[
  {
    "path": ".github/dependabot.yml",
    "content": "# Copyright 2022 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n---\n\nversion: 2\nupdates:\n- package-ecosystem: docker\n  directory: /nvidia-driver-installer/ubuntu\n  schedule:\n    interval: weekly\n- package-ecosystem: docker\n  directory: /nvidia-driver-installer/minikube\n  schedule:\n    interval: weekly\n- package-ecosystem: docker\n  directory: /partition_gpu\n  schedule:\n    interval: weekly\n- package-ecosystem: docker\n  directory: /fast-socket-installer/image\n  schedule:\n    interval: weekly\n- package-ecosystem: docker\n  directory: /demo/gpu-error/illegal-memory-access\n  schedule:\n    interval: weekly\n- package-ecosystem: docker\n  directory: /\n  schedule:\n    interval: weekly\n- package-ecosystem: gomod\n  directory: /\n  schedule:\n    interval: weekly\n  groups:\n    gomod-dependencies:\n      patterns:\n      - '*'\n"
  },
  {
    "path": ".github/workflows/go_tests.yml",
    "content": "name: Go lint and test\non:\n  push:\n    branches:\n      - master\n  pull_request:\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout code\n      uses: actions/checkout@v3\n    - name: Setup Go\n      uses: actions/setup-go@v3\n      with:\n        go-version: 1.23\n    - name: Setup Python # boilerplate.py needs this\n      uses: actions/setup-python@v4\n      with:\n        python-version: '3.10'\n    - name: Run presubmit lint\n      run: make presubmit\n    - name: Run go test\n      run: make test\n    - name: Run device-injector-test\n      run: |\n        sudo make device-injector-test\n        sudo make clean\n"
  },
  {
    "path": ".prow.yaml",
    "content": "presubmits:\n- name: googlecloudplatform-container-engine-accelerators-build\n  always_run: true\n  decorate: true\n  cluster: build-prow-hosted-runner\n  labels:\n    prow.k8s.io/gerrit-report-label: \"Verified\"\n    preset-dind-enabled: \"true\"\n  spec:\n    containers:\n    - image: gcr.io/gke-test-infra/kubekins-e2e:latest-master\n      command:\n      - runner.sh\n      - make\n      - build\n      - container-multi-arch\n      securityContext:\n        privileged: true\n- name: googlecloudplatform-container-engine-accelerators-test\n  always_run: true\n  decorate: true\n  cluster: build-prow-hosted-runner\n  labels:\n    prow.k8s.io/gerrit-report-label: \"Verified\"\n  spec:\n    containers:\n    - image: gcr.io/gke-test-infra/kubekins-e2e:latest-master\n      command:\n      - make\n      - test\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: go\n\ngo:\n  - 1.9\n\nscript:\n  - make presubmit\n  - make test\n\nnotifications:\n  email:\n    on_success: never\n    on_failure: never\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# How to Contribute\n\nWe'd love to accept your patches and contributions to this project. There are\njust a few small guidelines you need to follow.\n\n## Contributor License Agreement\n\nContributions to this project must be accompanied by a Contributor License\nAgreement. You (or your employer) retain the copyright to your contribution,\nthis simply gives us permission to use and redistribute your contributions as\npart of the project. Head over to <https://cla.developers.google.com/> to see\nyour current agreements on file or to sign a new one.\n\nYou generally only need to submit a CLA once, so if you've already submitted one\n(even if it was for a different project), you probably don't need to do it\nagain.\n\n## Code reviews\n\nAll submissions, including submissions by project members, require review. We\nuse GitHub pull requests for this purpose. Consult\n[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more\ninformation on using pull requests.\n"
  },
  {
    "path": "Dockerfile",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS builder\n\nARG TARGETOS\nARG TARGETARCH\n\nWORKDIR /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators\nCOPY . .\nRUN if [ \"${TARGETARCH}\" = \"arm64\" ] && [ \"${BUILDARCH}\" != \"arm64\" ]; then \\\n    apt update && \\\n    apt install -yq --no-install-recommends \\\n        gcc-aarch64-linux-gnu libc6-dev-arm64-cross; \\\n        CC=aarch64-linux-gnu-gcc; \\\n    fi && \\\n    GOTOOLCHAIN=local GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=1 CC=${CC} \\\n      go build cmd/nvidia_gpu/nvidia_gpu.go\nRUN chmod a+x /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_gpu\n\nFROM gcr.io/distroless/base:latest\nCOPY --from=builder /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_gpu /usr/bin/nvidia-gpu-device-plugin\nCMD [\"/usr/bin/nvidia-gpu-device-plugin\", \"-logtostderr\"]\n# Use the CMD below to make the device plugin expose prometheus endpoint with container level GPU metrics\n#CMD [\"/usr/bin/nvidia-gpu-device-plugin\", \"-logtostderr\", \"-v=10\", \"--enable-container-gpu-metrics\"]\n"
  },
  {
    "path": "Gopkg.toml",
    "content": "\n# Gopkg.toml example\n#\n# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md\n# for detailed Gopkg.toml documentation.\n#\n# required = [\"github.com/user/thing/cmd/thing\"]\n# ignored = [\"github.com/user/project/pkgX\", \"bitbucket.org/user/project/pkgA/pkgY\"]\n#\n# [[constraint]]\n#   name = \"github.com/user/project\"\n#   version = \"1.0.0\"\n#\n# [[constraint]]\n#   name = \"github.com/user/project2\"\n#   branch = \"dev\"\n#   source = \"github.com/myfork/project2\"\n#\n# [[override]]\n#  name = \"github.com/x/y\"\n#  version = \"2.4.0\"\n\n\n[[constraint]]\n  branch = \"master\"\n  name = \"github.com/golang/glog\"\n\n[[constraint]]\n  name = \"github.com/stretchr/testify\"\n  version = \"1.1.4\"\n\n[[constraint]]\n  branch = \"master\"\n  name = \"golang.org/x/net\"\n\n[[constraint]]\n  name = \"google.golang.org/grpc\"\n  version = \"1.7.0\"\n\n[[constraint]]\n  branch = \"master\"\n  name = \"k8s.io/kubernetes\"\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "Makefile",
    "content": "# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n\nGO := go\npkgs  = $(shell $(GO) list ./... | grep -v -e vendor -e nri_device_injector)\n\nall: presubmit\n\ntest:\n\t@echo \">> running tests\"\n\t@$(GO) test -short -race $(pkgs)\n\nformat:\n\t@echo \">> formatting code\"\n\t@$(GO) fmt $(pkgs)\n\nvet:\n\t@echo \">> vetting code\"\n\t@$(GO) vet $(pkgs)\n\npresubmit: vet\n\t@echo \">> checking go formatting\"\n\t@./build/check_gofmt.sh .\n\t@echo \">> checking file boilerplate\"\n\t@./build/check_boilerplate.sh\n\nTAG=$(shell cat VERSION)\nREGISTRY?=gcr.io/google-containers\nIMAGE=nvidia-gpu-device-plugin\nPARTITION_GPU_IMAGE=nvidia-partition-gpu\nFASTSOCKET_INSTALLER_IMAGE=fastsocket-installer\nDEVICE_INJECTOR_IMAGE=nri-device-injector\nNVIDIA_PERSISTENCED_IMAGE=nvidia-persistenced-installer\nALL_ARCHITECTURES=amd64 arm64\n\nbuild:\n\tcd cmd/nvidia_gpu; go build nvidia_gpu.go\n\ncontainer:\n\tdocker buildx build --pull --load -t ${REGISTRY}/${IMAGE}:${TAG} .\n\ncontainer-multi-arch:\n\t@for arch in $(ALL_ARCHITECTURES); do \\\n\t  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${IMAGE}-$${arch}:${TAG} . ; \\\n\tdone\n\npush:\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:${TAG}\n\npush-all:\n\t@for arch in $(ALL_ARCHITECTURES); do docker push ${REGISTRY}/${IMAGE}-$${arch}:${TAG}; done\n\npush-multi-arch:\n\tdocker manifest create --amend ${REGISTRY}/${IMAGE}:${TAG} $(shell echo $(ALL_ARCHITECTURES) | sed -e \"s~[^ ]*~${REGISTRY}/${IMAGE}\\-&:${TAG}~g\")\n\t@for arch in $(ALL_ARCHITECTURES); do docker manifest annotate --os linux --arch $${arch} ${REGISTRY}/${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}-$${arch}:${TAG}; done\n\tdocker manifest push --purge ${REGISTRY}/${IMAGE}:${TAG}\n\npartition-gpu:\n\tdocker buildx build --pull --load -t ${REGISTRY}/${PARTITION_GPU_IMAGE}:${TAG} -f partition_gpu/Dockerfile .\n\npartition-gpu-multi-arch:\n\t@for arch in $(ALL_ARCHITECTURES); do \\\n\t  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${PARTITION_GPU_IMAGE}-$${arch}:${TAG} -f partition_gpu/Dockerfile . ; \\\n\tdone\n\nfastsocket_installer:\n\tdocker build --pull -t ${REGISTRY}/${FASTSOCKET_INSTALLER_IMAGE}:${TAG} -f fast-socket-installer/image/Dockerfile .\n\nnri-device-injector:\n\tdocker build --pull -t ${REGISTRY}/${DEVICE_INJECTOR_IMAGE}:${TAG} -f nri_device_injector/Dockerfile .\n\nnri-device-injector-multi-arch:\n\t@for arch in $(ALL_ARCHITECTURES); do \\\n\t  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${DEVICE_INJECTOR_IMAGE}-$${arch}:${TAG} -f nri_device_injector/Dockerfile . ; \\\n\tdone\n\nnvidia_persistenced_installer:\n\tdocker buildx build --pull --load -t ${REGISTRY}/${NVIDIA_PERSISTENCED_IMAGE}:${TAG} -f nvidia-persistenced-installer/Dockerfile .\n\nnvidia-persistenced-installer-multi-arch:\n\t@for arch in $(ALL_ARCHITECTURES); do \\\n\t  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${NVIDIA_PERSISTENCED_IMAGE}-$${arch}:${TAG} -f nvidia-persistenced-installer/Dockerfile . ; \\\n\tdone\n\n.PHONY: all format test vet presubmit build container push partition-gpu\n\nbin/device-injector-test:\n\t$(GO) test -c ./nri_device_injector -o ./bin/device-injector-test \n\n.PHONY: device-injector-test\ndevice-injector-test: bin/device-injector-test\n\tsudo ./bin/device-injector-test -test.v \n\n.PHONY: clean\nclean:\n\t@rm -rf bin\n"
  },
  {
    "path": "README.md",
    "content": "# Hardware Accelerators in GKE\n\nThis repository is a collection of installation recipes and integration utilities for consuming Hardware Accelerators in Google Kubernetes Engine.\n\nThis is not an official Google product.\n\nMore details on the nvidia-gpu-device-plugin are [here](cmd/nvidia_gpu/README.md).\n\nThe official instructions for using GPUs on GKE are\n[here](https://cloud.google.com/kubernetes-engine/docs/how-to/gpus).\n"
  },
  {
    "path": "VERSION",
    "content": "1.35.0\n"
  },
  {
    "path": "asapd-lite-installer/asapd-lite-installer-a4x-max-bm-cos.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: asapd-lite\n  namespace: kube-system\n  labels:\n    k8s-app: asapd-lite\nspec:\n  selector:\n    matchLabels:\n      k8s-app: asapd-lite\n  template:\n    metadata:\n      labels:\n        k8s-app: asapd-lite\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: node.kubernetes.io/instance-type\n                    operator: In\n                    values:\n                      - a4x-maxgpu-4g-metal\n                      - a4x-maxgpu-4g-metal-nolssd\n                  - key: cloud.google.com/gke-os-distribution\n                    operator: In\n                    values:\n                      - cos\n      tolerations:\n      - operator: Exists\n\n      # Use the host's network namespace. This is essential for managing the\n      # host's CX PFs.\n      hostNetwork: true\n\n      # Use the host's PID namespace. This can be useful for\n      # debugging and interacting with host processes.\n      hostPID: true\n      containers:\n      - name: asapd-lite\n        image: us-docker.pkg.dev/gce-ai-infra/asapd-lite/asapd-lite:v0.0.7\n\n        command: [\"/bin/bash\", \"-c\"]\n        args:\n          - |\n            set -x\n            /usr/local/bin/run_asapd_lite.sh --run_hairpin_probe=true --hairpin_sender_port_start=12345 --hairpin_receiver_port_start=23456\n\n            # Wait for a bit to let interfaces come up.\n            sleep 15\n\n            DADFAILED_FOUND=0\n            INTERFACES=$(ip -o link show | awk -F': ' '{print $2}' | grep 'gpu')\n\n            for iface in $INTERFACES; do\n              if ip -6 addr show dev \"$iface\" | grep -q 'dadfailed'; then\n                echo \"Found dadfailed on interface $iface. Bringing it down and up.\"\n                ip link set dev \"$iface\" down\n                ip link set dev \"$iface\" up\n                DADFAILED_FOUND=1\n              fi\n            done\n\n            if [ \"$DADFAILED_FOUND\" -eq 1 ]; then\n              echo \"Found and attempted to fix dadfailed on one or more interfaces. Exiting to allow container restart.\"\n              exit 1\n            fi\n\n            # Keep the container running\n            echo \"No dadfailed detected on interfaces.\"\n            wait\n\n        env:\n        - name: LD_LIBRARY_PATH\n          value: /asapd-lite/controller\n        livenessProbe:\n          httpGet:\n            path: /healthz\n            port: 19540\n          initialDelaySeconds: 60\n        readinessProbe:\n          httpGet:\n            path: /healthz\n            port: 19540\n\n        securityContext:\n          # 'privileged: true' is required for modifying most host-level\n          # resources, including network devices and udev rules.\n          privileged: true\n\n        volumeMounts:\n        - name: host-sys\n          mountPath: /sys\n        - name: host-proc\n          mountPath: /proc\n        - name: host-udev-rules\n          mountPath: /etc/udev/rules.d\n        - name: host-run-udev\n          mountPath: /run/udev\n        - name: host-run-asapd-lite\n          mountPath: /run/asapd-lite\n        - mountPath: /hugepages-2Mi\n          name: hugepage-2mi\n        - name: var-log-google-asapd-lite\n          mountPath: /var/log/google/asapd-lite\n        - name: var-lib-google-asapd-lite\n          mountPath: /var/lib/google/asapd-lite\n        - name: host-systemd-system\n          mountPath: /etc/systemd/system\n        - name: host-run-systemd\n          mountPath: /run/systemd\n        resources:\n          limits:\n            hugepages-2Mi: 8192Mi\n            memory: 1024Mi\n\n      volumes:\n      - name: host-sys\n        hostPath:\n          path: /sys\n      - name: host-proc\n        hostPath:\n          path: /proc\n      - name: host-udev-rules\n        hostPath:\n          path: /etc/udev/rules.d\n      - name: host-run-udev\n        hostPath:\n          path: /run/udev\n      - name: host-run-asapd-lite\n        hostPath:\n          path: /run/asapd-lite\n          type: DirectoryOrCreate\n      - name: hugepage-2mi\n        emptyDir:\n          medium: HugePages-2Mi\n      - name: var-log-google-asapd-lite\n        hostPath:\n          path: /var/log/google/asapd-lite\n          type: DirectoryOrCreate\n      # Mount /var/lib/google/asapd-lite to provide a persistent location for\n      # the ipam binary on the host, allowing it to be executed from the host.\n      # This location was choosen based on this documentation\n      # https://docs.cloud.google.com/container-optimized-os/docs/concepts/disks-and-filesystem#working_with_the_file_system\n      # Hence, this may not necessarily be a suitable location for non-COS based\n      # systems.\n      - name: var-lib-google-asapd-lite\n        hostPath:\n          path: /var/lib/google/asapd-lite\n          type: DirectoryOrCreate\n      - name: host-systemd-system\n        hostPath:\n          path: /etc/systemd/system\n      - name: host-run-systemd\n        hostPath:\n          path: /run/systemd\n  updateStrategy:\n    type: RollingUpdate\n    rollingUpdate:\n      maxUnavailable: 1%\n"
  },
  {
    "path": "build/boilerplate/boilerplate.go.txt",
    "content": "// Copyright YEAR Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n"
  },
  {
    "path": "build/boilerplate/boilerplate.py",
    "content": "#!/usr/bin/env python\n\n# Copyright 2016 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom __future__ import print_function\n\nimport argparse\nimport glob\nimport json\nimport mmap\nimport os\nimport re\nimport sys\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"filenames\", help=\"list of files to check, all files if unspecified\", nargs='*')\nargs = parser.parse_args()\n\nrootdir = os.path.dirname(__file__) + \"/../../\"\nrootdir = os.path.abspath(rootdir)\n\ndef get_refs():\n    refs = {}\n    for path in glob.glob(os.path.join(rootdir, \"build/boilerplate/boilerplate.*.txt\")):\n        extension = os.path.basename(path).split(\".\")[1]\n\n        ref_file = open(path, 'r')\n        ref = ref_file.read().splitlines()\n        ref_file.close()\n        refs[extension] = ref\n\n    return refs\n\ndef file_passes(filename, refs, regexs):\n    try:\n        f = open(filename, 'r')\n    except:\n        return False\n\n    data = f.read()\n    f.close()\n\n    extension = file_extension(filename)\n    ref = refs[extension]\n\n    # remove build tags from the top of Go files\n    if extension == \"go\":\n        p = regexs[\"go_build_constraints\"]\n        (data, found) = p.subn(\"\", data, 1)\n\n    # remove shebang from the top of shell files\n    if extension == \"sh\":\n        p = regexs[\"shebang\"]\n        (data, found) = p.subn(\"\", data, 1)\n\n    data = data.splitlines()\n\n    # if our test file is smaller than the reference it surely fails!\n    if len(ref) > len(data):\n        return False\n\n    # trim our file to the same number of lines as the reference file\n    data = data[:len(ref)]\n\n    p = regexs[\"year\"]\n    for d in data:\n        if p.search(d):\n            return False\n\n    # Replace all occurrences of the regex \"2016|2015|2014\" with \"YEAR\"\n    p = regexs[\"date\"]\n    for i, d in enumerate(data):\n        (data[i], found) = p.subn('YEAR', d)\n        if found != 0:\n            break\n\n    # if we don't match the reference at this point, fail\n    if ref != data:\n        return False\n\n    return True\n\ndef file_extension(filename):\n    return os.path.splitext(filename)[1].split(\".\")[-1].lower()\n\nskipped_dirs = ['Godeps', 'vendor', 'third_party', '_gopath', '_output', '.git']\ndef normalize_files(files):\n    newfiles = []\n    for pathname in files:\n        if any(x in pathname for x in skipped_dirs):\n            continue\n        newfiles.append(pathname)\n    for i, pathname in enumerate(newfiles):\n        if not os.path.isabs(pathname):\n            newfiles[i] = os.path.join(rootdir, pathname)\n    return newfiles\n\ndef get_files(extensions):\n    files = []\n    if len(args.filenames) > 0:\n        files = args.filenames\n    else:\n        for root, dirs, walkfiles in os.walk(rootdir):\n            # don't visit certain dirs. This is just a performance improvement\n            # as we would prune these later in normalize_files(). But doing it\n            # cuts down the amount of filesystem walking we do and cuts down\n            # the size of the file list\n            for d in skipped_dirs:\n                if d in dirs:\n                    dirs.remove(d)\n\n            for name in walkfiles:\n                pathname = os.path.join(root, name)\n                files.append(pathname)\n\n    files = normalize_files(files)\n    outfiles = []\n    for pathname in files:\n        extension = file_extension(pathname)\n        if extension in extensions:\n            outfiles.append(pathname)\n    return outfiles\n\ndef get_regexs():\n    regexs = {}\n    # Search for \"YEAR\" which exists in the boilerplate, but shouldn't in the real thing\n    regexs[\"year\"] = re.compile( 'YEAR' )\n    # dates can be 2014, 2015 or 2016, company holder names can be anything\n    regexs[\"date\"] = re.compile( '(2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024|2025|2026)' )\n    # strip // +build \\n\\n build constraints\n    regexs[\"go_build_constraints\"] = re.compile(r\"^(// \\+build.*\\n)+\\n\", re.MULTILINE)\n    # strip #!.* from shell scripts\n    regexs[\"shebang\"] = re.compile(r\"^(#!.*\\n)\\n*\", re.MULTILINE)\n    return regexs\n\ndef main():\n    regexs = get_regexs()\n    refs = get_refs()\n    filenames = get_files(refs.keys())\n\n    for filename in filenames:\n        if not file_passes(filename, refs, regexs):\n            print(filename, file=sys.stdout)\n\nif __name__ == \"__main__\":\n  sys.exit(main())\n"
  },
  {
    "path": "build/boilerplate/boilerplate.py.txt",
    "content": "#!/usr/bin/env python\n\n# Copyright YEAR Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n"
  },
  {
    "path": "build/boilerplate/boilerplate.sh.txt",
    "content": "# Copyright YEAR Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n"
  },
  {
    "path": "build/check_boilerplate.sh",
    "content": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o nounset\nset -o pipefail\n\nGIT_ROOT=$(dirname \"${BASH_SOURCE}\")/..\nboiler=\"${GIT_ROOT}/build/boilerplate/boilerplate.py\"\n\nfiles_need_boilerplate=($(${boiler} \"$@\"))\n\nif [[ ${#files_need_boilerplate[@]} -gt 0 ]]; then\n  for file in \"${files_need_boilerplate[@]}\"; do\n    echo \"Boilerplate header is wrong for: ${file}\"\n  done\n\n  exit 1\nfi\n"
  },
  {
    "path": "build/check_errorf.sh",
    "content": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nGO_FILES=$(find . -not -wholename \"*Godeps*\" -not -wholename \"*vendor*\" -name \"*.go\")\n\nfor FILE in ${GO_FILES}; do\n\tERRS=`grep 'fmt.Errorf(\"[A-Z]' ${FILE}`\n\tif [ $? -eq 0 ]\n\tthen\n\t\techo Incorrect error format in file ${FILE}: $ERRS\n\t\texit 1\n\tfi\ndone\n\nexit 0\n"
  },
  {
    "path": "build/check_gofmt.sh",
    "content": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# Check formatting on non Godep'd code.\nGOFMT_PATHS=$(find . -not -wholename \"*.git*\" -not -wholename \"*Godeps*\" -not -wholename \"*vendor*\" -not -name \".\" -type d)\n\n# Find any files with gofmt problems\nBAD_FILES=$(gofmt -s -l $GOFMT_PATHS)\n\nif [ -n \"$BAD_FILES\" ]; then\n  echo \"The following files are not properly formatted:\"\n  echo $BAD_FILES\n  exit 1\nfi\n"
  },
  {
    "path": "cmd/nvidia_gpu/README.md",
    "content": "Kubernetes Device Plugin for NVIDIA GPUs\n----------------------------------------\n\nThis directory contains the code for a Kubernetes [device plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) for NVIDIA GPUs.\n\nThe daemonset manifest at https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml can be used to deploy this device plugin to a cluster (1.9 onwards).\n\nIn [GKE](https://g.co/gke), from 1.9 onwards, this daemonset is automatically deployed as an addon. Note that daemonset pods are only scheduled on nodes with accelerators attached, they are not scheduled on nodes that don't have any accelerators attached.\n\nThis device plugin requires that NVIDIA drivers and libraries are installed in a particular way.\n\nExamples of how driver installation needs to be done can be found at:\n- For [COS](https://cloud.google.com/container-optimized-os/):\n  - Installer code: https://github.com/GoogleCloudPlatform/cos-gpu-installer\n  - Installer daemonset: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/daemonset.yaml\n\n- For [Ubuntu](https://cloud.google.com/kubernetes-engine/docs/concepts/node-images#ubuntu) (experimental):\n  - Installer code: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/ubuntu/entrypoint.sh\n  - Installer daemonset: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/ubuntu/daemonset.yaml\n\nIn short, this device plugins expects that all the nvidia libraries needed by the containers are present under a single directory on the host. You can specify the directory on the host containing nvidia libraries using `-host-path`. You can specify the location to mount that directory in all the containers using `-container-path`. For example, let's say on the host all nvidia libraries are present under `/var/lib/nvidia/lib64` and you want to make these libraries available to containers under `/usr/local/nvidia/lib64`, then you would use `-host-path=/var/lib/nvidia/lib64` and `-container-path=/usr/local/nvidia/lib64`.\n"
  },
  {
    "path": "cmd/nvidia_gpu/device-plugin.yaml",
    "content": "# NOTE: This file is not the source of truth for GKE device plugins. Modifying this file would have no effect on GKE clusters.\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  labels:\n    k8s-app: nvidia-gpu-device-plugin\n  name: nvidia-gpu-device-plugin\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-gpu-device-plugin\n  template:\n    metadata:\n      labels:\n        k8s-app: nvidia-gpu-device-plugin\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: Exists\n      containers:\n        - command:\n            - /usr/bin/nvidia-gpu-device-plugin\n            - -logtostderr\n            - --enable-container-gpu-metrics\n            - --enable-health-monitoring\n          env:\n            - name: XID_CONFIG\n              valueFrom:\n                configMapKeyRef:\n                  key: HealthCriticalXid\n                  name: xid-config\n                  optional: true\n            - name: LD_LIBRARY_PATH\n              value: /usr/local/nvidia/lib64\n            - name: GOMAXPROCS\n              value: \"1\"\n          image: gcr.io/gke-release/nvidia-gpu-device-plugin@sha256:6b25281cd0fa3ca55f3e837a18be4a14b44952105568f466530dd85bcebde62f\n          name: nvidia-gpu-device-plugin\n          ports:\n            - containerPort: 2112\n              name: metrics\n          resources:\n            limits:\n              memory: 100Mi\n            requests:\n              cpu: 50m\n              memory: 100Mi\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - mountPath: /device-plugin\n              name: device-plugin\n            - mountPath: /dev\n              name: dev\n            - mountPath: /usr/local/nvidia\n              name: nvidia\n            - mountPath: /var/lib/kubelet/pod-resources\n              name: pod-resources\n            - mountPath: /proc\n              name: proc\n            - mountPath: /etc/nvidia\n              name: nvidia-config\n      priorityClassName: system-node-critical\n      restartPolicy: Always\n      securityContext:\n        seccompProfile:\n          type: RuntimeDefault\n      tolerations:\n        - effect: NoExecute\n          operator: Exists\n        - effect: NoSchedule\n          operator: Exists\n      volumes:\n        - hostPath:\n            path: /var/lib/kubelet/device-plugins\n            type: Directory\n          name: device-plugin\n        - hostPath:\n            path: /dev\n            type: Directory\n          name: dev\n        - hostPath:\n            path: /var/lib/kubelet/pod-resources\n            type: Directory\n          name: pod-resources\n        - hostPath:\n            path: /proc\n            type: Directory\n          name: proc\n        - hostPath:\n            path: /etc/nvidia\n            type: DirectoryOrCreate\n          name: nvidia-config\n        - hostPath:\n            path: /home/kubernetes/bin/nvidia\n            type: Directory\n          name: nvidia\n  updateStrategy:\n    type: RollingUpdate\n"
  },
  {
    "path": "cmd/nvidia_gpu/nvidia_gpu.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"time\"\n\n\tgpumanager \"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia\"\n\thealthcheck \"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/health_check\"\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/metrics\"\n\tutil \"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/util\"\n\tversionvisibility \"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/version_visibility\"\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/golang/glog\"\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nconst (\n\t// Device plugin settings.\n\tkubeletEndpoint      = \"kubelet.sock\"\n\tpluginEndpointPrefix = \"nvidiaGPU\"\n\tdevDirectory         = \"/dev\"\n\t// Proc directory is used to lookup the access files for each GPU partition.\n\tprocDirectory = \"/proc\"\n)\n\nvar (\n\thostPathPrefix                 = flag.String(\"host-path\", \"/home/kubernetes/bin/nvidia\", \"Path on the host that contains nvidia libraries. This will be mounted inside the container as '-container-path'\")\n\tcontainerPathPrefix            = flag.String(\"container-path\", \"/usr/local/nvidia\", \"Path on the container that mounts '-host-path'\")\n\thostVulkanICDPathPrefix        = flag.String(\"host-vulkan-icd-path\", \"/home/kubernetes/bin/nvidia/vulkan/icd.d\", \"Path on the host that contains the Nvidia Vulkan installable client driver. This will be mounted inside the container as '-container-vulkan-icd-path'\")\n\tcontainerVulkanICDPathPrefix   = flag.String(\"container-vulkan-icd-path\", \"/etc/vulkan/icd.d\", \"Path on the container that mounts '-host-vulkan-icd-path'\")\n\tpluginMountPath                = flag.String(\"plugin-directory\", \"/device-plugin\", \"The directory path to create plugin socket\")\n\tenableContainerGPUMetrics      = flag.Bool(\"enable-container-gpu-metrics\", false, \"If true, the device plugin will expose GPU metrics for containers with allocated GPU\")\n\tenableHealthMonitoring         = flag.Bool(\"enable-health-monitoring\", false, \"If true, the device plugin will detect critical Xid errors and mark the GPUs unallocatable\")\n\tgpuMetricsPort                 = flag.Int(\"gpu-metrics-port\", 2112, \"Port on which GPU metrics for containers are exposed\")\n\tgpuMetricsCollectionIntervalMs = flag.Int(\"gpu-metrics-collection-interval\", 30000, \"Collection interval (in milli seconds) for container GPU metrics\")\n\tgpuConfigFile                  = flag.String(\"gpu-config\", \"/etc/nvidia/gpu_config.json\", \"File with GPU configurations for device plugin\")\n\tpublishDriverVersion           = flag.Bool(\"publish-driver-version\", false, \"If true, the device plugin will publish NVIDIA driver versions to the Kubernetes Node annotation\")\n)\n\nfunc parseGPUConfig(gpuConfigFile string) (gpumanager.GPUConfig, error) {\n\tvar gpuConfig gpumanager.GPUConfig\n\n\tgpuConfigContent, err := ioutil.ReadFile(gpuConfigFile)\n\tif err != nil {\n\t\treturn gpuConfig, fmt.Errorf(\"unable to read gpu config file %s: %v\", gpuConfigFile, err)\n\t}\n\n\tif err = json.Unmarshal(gpuConfigContent, &gpuConfig); err != nil {\n\t\treturn gpuConfig, fmt.Errorf(\"failed to parse GPU config file contents: %s, error: %v\", gpuConfigContent, err)\n\t}\n\n\terr = gpuConfig.AddDefaultsAndValidate()\n\tif err != nil {\n\t\treturn gpumanager.GPUConfig{}, err\n\t}\n\treturn gpuConfig, nil\n}\n\nfunc main() {\n\tflag.Parse()\n\tglog.Infoln(\"device-plugin started\")\n\tmountPaths := []pluginapi.Mount{\n\t\t{HostPath: *hostPathPrefix, ContainerPath: *containerPathPrefix, ReadOnly: true},\n\t\t{HostPath: *hostVulkanICDPathPrefix, ContainerPath: *containerVulkanICDPathPrefix, ReadOnly: true}}\n\n\tvar gpuConfig gpumanager.GPUConfig\n\tif *gpuConfigFile != \"\" {\n\t\tglog.Infof(\"Reading GPU config file: %s\", *gpuConfigFile)\n\t\tvar err error\n\t\tgpuConfig, err = parseGPUConfig(*gpuConfigFile)\n\t\tif err != nil {\n\t\t\tglog.Infof(\"Failed to parse GPU config file %s: %v\", *gpuConfigFile, err)\n\t\t\tglog.Infof(\"Falling back to default GPU config.\")\n\t\t\tgpuConfig = gpumanager.GPUConfig{}\n\t\t}\n\t}\n\terr := gpuConfig.AddHealthCriticalXid()\n\tif err != nil {\n\t\tglog.Infof(\"Failed to Add HealthCriticalXid : %v\", err)\n\t}\n\n\tglog.Infof(\"Using gpu config: %v\", gpuConfig)\n\tngm := gpumanager.NewNvidiaGPUManager(devDirectory, procDirectory, mountPaths, gpuConfig)\n\n\t// Retry until nvidiactl and nvidia-uvm are detected. This is required\n\t// because Nvidia drivers may not be installed initially.\n\tfor {\n\t\terr := ngm.CheckDevicePaths()\n\t\tif err == nil {\n\t\t\tbreak\n\t\t}\n\t\t// Use non-default level to avoid log spam.\n\t\tglog.V(3).Infof(\"nvidiaGPUManager.CheckDevicePaths() failed: %v\", err)\n\t\ttime.Sleep(5 * time.Second)\n\t}\n\n\tif ret := nvml.Init(); ret != nvml.SUCCESS {\n\t\tglog.Fatalf(\"failed to initialize nvml: %v\", nvml.ErrorString(ret))\n\t}\n\tdefer nvml.Shutdown()\n\n\tfor {\n\t\terr := ngm.Start()\n\t\tif err == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tglog.Errorf(\"failed to start GPU device manager: %v\", err)\n\t\ttime.Sleep(5 * time.Second)\n\t}\n\n\tif *enableContainerGPUMetrics {\n\t\tif gpuConfig.GPUPartitionSize != \"\" {\n\t\t\tglog.Info(\"Using multi-instance GPU, metrics are not supported.\")\n\t\t} else {\n\t\t\tglog.Infof(\"Starting metrics server on port: %d, endpoint path: %s, collection frequency: %d\", *gpuMetricsPort, \"/metrics\", *gpuMetricsCollectionIntervalMs)\n\t\t\tmetricServer := metrics.NewMetricServer(*gpuMetricsCollectionIntervalMs, *gpuMetricsPort, \"/metrics\")\n\t\t\terr := metricServer.Start()\n\t\t\tif err != nil {\n\t\t\t\tglog.Infof(\"Failed to start metric server: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdefer metricServer.Stop()\n\t\t}\n\t}\n\n\tif *enableHealthMonitoring {\n\t\tkubeClient, err := util.BuildKubeClient()\n\t\tif err != nil {\n\t\t\tglog.Infof(\"Failed to build kube client: %v\", err)\n\t\t\treturn\n\t\t}\n\t\thc := healthcheck.NewGPUHealthChecker(ngm.ListPhysicalDevices(), ngm.Health, ngm.ListHealthCriticalXid(), kubeClient)\n\t\tif err := hc.Start(); err != nil {\n\t\t\tglog.Infof(\"Failed to start GPU Health Checker: %v\", err)\n\t\t\treturn\n\t\t}\n\t\tdefer hc.Stop()\n\t}\n\n\tif *publishDriverVersion {\n\t\tglog.Infoln(\"Publishing NVIDIA driver version annotations to Node\")\n\t\tkubeClient, err := util.BuildKubeClient()\n\t\tif err != nil {\n\t\t\tglog.Warningf(\"Failed to build kube client for annotating: %v\", err)\n\t\t} else {\n\t\t\tnodeName := os.Getenv(\"NODE_NAME\")\n\t\t\tif nodeName == \"\" {\n\t\t\t\tglog.Warning(\"NODE_NAME environment variable not set, skipping publishing driver version annotations\")\n\t\t\t} else {\n\t\t\t\tapiTimeout := 10 * time.Second\n\t\t\t\tctx, cancel := context.WithTimeout(context.Background(), apiTimeout)\n\t\t\t\tdefer cancel()\n\t\t\t\tgo func() {\n\t\t\t\t\terr := versionvisibility.PublishDriverVersionAnnotations(ctx, kubeClient, nodeName)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tglog.Errorf(\"Failed to publish driver version annotations: %v\", err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tglog.Info(\"Successfully published NVIDIA driver version annotations\")\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\t\t}\n\t}\n\n\tngm.Serve(*pluginMountPath, kubeletEndpoint, fmt.Sprintf(\"%s-%d.sock\", pluginEndpointPrefix, time.Now().Unix()))\n}\n"
  },
  {
    "path": "cmd/nvidia_gpu/rbac.yaml",
    "content": "# Copyright 2018 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http:#www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  labels:\n    k8s-app: gpu-device-plugin\n  name: gpu-device-plugin\n  namespace: kube-system\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: gpu-device-plugin\n  labels:\n    k8s-app: gpu-device-plugin\n    addonmanager.kubernetes.io/mode: Reconcile\nrules:\n- apiGroups: [\"\"]\n  resources: [\"nodes\"]\n  verbs: [\"update\", \"patch\", \"get\", \"list\", \"watch\"]\n- apiGroups: [\"\"]\n  resources: [\"nodes/status\"]\n  verbs: [\"update\", \"patch\", \"get\", \"list\", \"watch\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: gpu-device-plugin\n  namespace: kube-system\n  labels:\n    k8s-app: gpu-device-plugin\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: gpu-device-plugin\nsubjects:\n- kind: ServiceAccount\n  name: gpu-device-plugin\n  namespace: kube-system\n"
  },
  {
    "path": "daemonset.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://github.com/GoogleCloudPlatform/cos-gpu-installer\n#\n# This daemonset is only intended to be used by OSS K8s tests.\n# To install GPU drivers in GKE clusters, please use\n# https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gcr.io/cos-cloud/cos-gpu-installer@sha256:af09af53cb7c6ddce9c96968d5367253684d08108a414c8a1d70f96188427949  # 'v20200701'\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "demo/device-plugin-health-monitoring-enabled.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-gpu-device-plugin\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-gpu-device-plugin\n    addonmanager.kubernetes.io/mode: EnsureExists\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-gpu-device-plugin\n  template:\n    metadata:\n      labels:\n        k8s-app: nvidia-gpu-device-plugin\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n        effect: \"NoExecute\"\n      - operator: \"Exists\"\n        effect: \"NoSchedule\"\n      volumes:\n      - name: device-plugin\n        hostPath:\n          path: /var/lib/kubelet/device-plugins\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: nvidia\n        hostPath:\n            path: /home/kubernetes/bin/nvidia\n            type: Directory\n      - name: pod-resources\n        hostPath:\n            path: /var/lib/kubelet/pod-resources\n      containers:\n      - image: \"gcr.io/gke-release/nvidia-gpu-device-plugin@sha256:622d701b1ccebbb25c01e4326a3a6c2aa001b2507f66c89a3d65b9778e6b02ee\"\n        command: [\"/usr/bin/nvidia-gpu-device-plugin\", \"-logtostderr\", \"--enable-health-monitoring\"]\n        name: nvidia-gpu-device-plugin\n        ports:\n        - name: \"metrics\"\n          containerPort: 2112\n        env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        resources:\n          requests:\n            cpu: 50m\n            memory: 20Mi\n          limits:\n            cpu: 50m\n            memory: 20Mi\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: device-plugin\n          mountPath: /device-plugin\n        - name: dev\n          mountPath: /dev\n        - name: nvidia\n          mountPath: /usr/local/nvidia\n        - name: pod-resources\n          mountPath: /var/lib/kubelet/pod-resources\n  updateStrategy:\n    type: RollingUpdate\n"
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/Dockerfile",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# Use a recent CUDA development image (includes nvcc compiler)\n# --- Stage 1: Build ---\nFROM nvidia/cuda:13.1.1-devel-ubuntu22.04 AS builder\n\nWORKDIR /app\nCOPY vectorAdd.cu .\n\n# Compile the CUDA code\nRUN nvcc vectorAdd.cu -o vectorAdd\n\n# --- Stage 2: Runtime ---\n# Use a smaller base image containing only the CUDA runtime and nvidia-smi\nFROM nvidia/cuda:13.1.1-base-ubuntu22.04\n\nWORKDIR /app\n# Copy only the compiled executable from the build stage\nCOPY --from=builder /app/vectorAdd .\n\n# Command to run nvidia-smi for diagnostics and then the compiled program\nCMD [\"sh\", \"-c\", \"while true; do nvidia-smi && ./vectorAdd; echo '--- Waiting 30 seconds ---'; sleep 30; done\"]"
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/README",
    "content": "This demo will trigger illegal memory access error (Xid 31) when running.\n"
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/vectorAdd.cu",
    "content": "/* Copyright 2017 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * This sample does a very simple vector add, and will trigger illegal memory\n * access error. The purpose of this sample is to test the error handling of\n * the device plugin or other components.\n */\n\n #include <stdio.h>\n #include <cuda_runtime.h>\n\n /**\n  * Computes the vector addition and intentionally triggers memory error\n  */\n __global__ void\n vectorAddAndTriggerError(const float *A, const float *B, float *C, int numElements)\n {\n     // Intentionally triggering out of bounds\n     int i = (blockDim.x * blockIdx.x) + threadIdx.x + 1000000000000;\n     C[i] = A[i] + B[i];\n }\n\n int main(void)\n {\n     printf(\"Starting illegal memory access sample\\n\");\n     // Error code to check return values for CUDA calls\n     cudaError_t err = cudaSuccess;\n\n     int vecLength = 50000;\n     size_t size = vecLength * sizeof(float);\n\n     // Initializing two vectors on host\n     float *h_A = (float *)malloc(size);\n     float *h_B = (float *)malloc(size);\n     for (int i = 0; i < vecLength; ++i)\n     {\n         h_A[i] = rand()/(float)RAND_MAX;\n         h_B[i] = rand()/(float)RAND_MAX;\n     }\n\n     // Allocating three vectors on device\n     float *d_A = NULL;\n     err = cudaMalloc((void **)&d_A, size);\n     float *d_B = NULL;\n     err = cudaMalloc((void **)&d_B, size);\n     float *d_C = NULL;\n     err = cudaMalloc((void **)&d_C, size);\n\n     // copy data from host to device\n     err = cudaMemcpy(d_A, h_A, size, cudaMemcpyHostToDevice);\n     err = cudaMemcpy(d_B, h_B, size, cudaMemcpyHostToDevice);\n\n     // Run the vectorAdd func and trigger error\n     int threadsPerBlock = 256;\n     int blocksPerGrid =(vecLength + threadsPerBlock - 1) / threadsPerBlock;\n     printf(\"Run vectorAdd with %d blocks of %d threads\\n\", blocksPerGrid, threadsPerBlock);\n     vectorAddAndTriggerError<<<blocksPerGrid, threadsPerBlock>>>(d_A, d_B, d_C, vecLength);\n     err = cudaGetLastError();\n\n     if (err != cudaSuccess)\n     {\n         fprintf(stderr, \"Failed to launch vectorAdd kernel (error code %s)!\\n\", cudaGetErrorString(err));\n         exit(EXIT_FAILURE);\n     }\n\n     printf(\"Copy results from the device to the host\\n\");\n     float *h_C = (float *)malloc(size);\n     err = cudaMemcpy(h_C, d_C, size, cudaMemcpyDeviceToHost);\n\n     // Expecting error here\n     if (err != cudaSuccess)\n     {\n         fprintf(stderr, \"Failed to copy vector C from device to host (error code %s)!\\n\", cudaGetErrorString(err));\n         exit(EXIT_FAILURE);\n     }\n\n     return 0;\n }\n"
  },
  {
    "path": "demo/gpu-training/generate_job.sh",
    "content": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n#!/bin/bash\n\nEXPERIMENT_ID=\"resnet-$(date \"+%y-%m-%d-%H-%M-%S\")\"\n\nBASE_LEARNING_RATES=(0.001 0.01 0.1 0.05)\nBATCH_SIZES=(16 32)\nDEPTH_CHOICES=(34 50 101 152)\n\nEPOCHS=90\nNUM_IMAGES=1281167\n\necho \"Experiment number ${EXPERIMENT_ID}\"\nrm -rf $EXPERIMENT_ID\nmkdir $EXPERIMENT_ID\n\nfor DEPTH in \"${DEPTH_CHOICES[@]}\"\n  do\n    for BATCH_SIZE in \"${BATCH_SIZES[@]}\"\n      do\n        for BASE_LEARNING_RATE in \"${BASE_LEARNING_RATES[@]}\"\n          do\n          JOB_ID=${EXPERIMENT_ID}-$BATCH_SIZE-$DEPTH-$BASE_LEARNING_RATE\n          TRAIN_STEPS=$((EPOCHS*NUM_IMAGES/BATCH_SIZE))\n          cat >$EXPERIMENT_ID/$EXPERIMENT_ID-$BATCH_SIZE-$DEPTH-$BASE_LEARNING_RATE.yaml <<EOF\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: ${JOB_ID}\n  labels:\n    experiment-id: ${EXPERIMENT_ID}\nspec:\n  template:\n    metadata:\n      labels:\n        experiment-id: ${EXPERIMENT_ID}\n    spec:\n      restartPolicy: Never\n      containers:\n      - name: resnet-gpu\n        image: gcr.io/vishnuk-cloud/tf-models-gpu:1.0\n        command:\n          - python\n          - /tensorflow_models/models/official/resnet/resnet_main.py\n          - --use_tpu=False\n          - --tpu=\n          - --precision=float32\n          - --data_dir=gs://cloudtpu-imagenet-data/train\n          - --model_dir=gs://vishh/tensorflow/resnet-gpu-train/${EXPERIMENT_ID}/${BATCH_SIZE}-${BASE_LEARNING_RATE}-${DEPTH}\n          - --train_batch_size=${BATCH_SIZE}\n          - --train_steps=${TRAIN_STEPS}\n          - --resnet_depth=${DEPTH}\n          - --base_learning_rate=${BASE_LEARNING_RATE}\n          - --steps_per_eval=25000\n        env:\n        - name: EXPERIMENT_ID\n          valueFrom:\n            fieldRef:\n              fieldPath: metadata.labels['experiment-id']\n        resources:\n          limits:\n            nvidia.com/gpu: 8\n\nEOF\n\n        done\n    done\ndone\n"
  },
  {
    "path": "demo/image-prepull-ds.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: image-prepull\nspec:\n  selector:\n    matchLabels:\n      app: image-prepull\n  template:\n    metadata:\n      labels:\n        app: image-prepull\n    spec:\n      tolerations:\n      - operator: \"Exists\"\n        effect: \"NoExecute\"\n      - operator: \"Exists\"\n        effect: \"NoSchedule\"\n      containers:\n      - args:\n        - -mode\n        - sleep\n        command:\n        - /drop/sleeper\n        image: gcr.io/vishnuk-cloud/tf-models-gpu:1.0\n        imagePullPolicy: Always\n        name: gpu-image\n        resources:\n          limits:\n            cpu: 1m\n            memory: 10M\n        volumeMounts:\n        - mountPath: /drop/\n          name: the-sleeper\n      - args:\n        - -mode\n        - sleep\n        command:\n        - /drop/sleeper\n        image: gcr.io/tensorflow/tpu-models:r1.9\n        imagePullPolicy: Always\n        name: tpu-image\n        resources:\n          limits:\n            cpu: 1m\n            memory: 10M\n        volumeMounts:\n        - mountPath: /drop/\n          name: the-sleeper\n      - args:\n        - -mode\n        - sleep\n        command:\n        - /drop/sleeper\n        image: gcr.io/vishnuk-cloud/tf-serving:1.9-gpu-minimal\n        imagePullPolicy: Always\n        name: tf-serving-image\n        resources:\n          limits:\n            cpu: 1m\n            memory: 10M\n        volumeMounts:\n        - mountPath: /drop/\n          name: the-sleeper\n      - args:\n        - -mode\n        - sleep\n        command:\n        - /drop/sleeper\n        image: gcr.io/vishnuk-cloud/tf-serving-client@sha256:74dd15862f736ddc2eaa1c49605a516eb39c113aa4ea0eee625bf7a38df560fc\n        imagePullPolicy: Always\n        name: tf-serving-client\n        resources:\n          limits:\n            cpu: 1m\n            memory: 10M\n        volumeMounts:\n        - mountPath: /drop/\n          name: the-sleeper\n\n      initContainers:\n      - args:\n        - -mode\n        - copy\n        - -to\n        - /drop/sleeper\n        image: gcr.io/mattmoor-public/sleeper@sha256:d431f1c78bb16fbb0c9831a610bc9580379a4f9ab0a339efd2ffb36ea5ffeca2\n        imagePullPolicy: Always\n        name: the-sleeper\n        resources:\n          limits:\n            cpu: 1m\n            memory: 10M\n        volumeMounts:\n        - mountPath: /drop/\n          name: the-sleeper\n      volumes:\n      - emptyDir: {}\n        name: the-sleeper\n  updateStrategy:\n    type: OnDelete\n"
  },
  {
    "path": "demo/minikube/pv.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: nfs\nspec:\n  capacity:\n    storage: 100Gi\n  accessModes:\n    - ReadWriteMany\n  nfs:\n    server: 192.168.39.1\n    path: \"/usr/local/google/home/vishnuk/\"\n\n\n    \n"
  },
  {
    "path": "demo/minikube/pvc.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: nfs\nspec:\n  accessModes:\n  - ReadWriteMany\n  storageClassName: \"\"\n  resources:\n    requests:\n      storage: 1Gi\n"
  },
  {
    "path": "demo/minikube/resnet-gpu.yaml",
    "content": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: resnet-gpu\nspec:\n  template:\n    spec:\n      restartPolicy: Never\n      volumes:\n      - name: nfs-pvc\n        persistentVolumeClaim:\n          claimName: nfs\n      containers:\n      - name: resnet-gpu\n        image: gcr.io/vishnuk-cloud/tensorflow@sha256:c5655a73205a447e1552fc833d14ab66eee2304dbf64846edd88c41434c6f5f2\n        command:\n          - python\n          - /tensorflow_models/models/official/resnet/resnet_main.py\n          - --use_tpu=False\n          - --tpu=\n          - --precision=float32\n          - --data_dir=$(DATA_BUCKET)\n          - --model_dir=$(MODEL_BUCKET)\n          - --train_batch_size=$(TRAIN_BATCH_SIZE)\n          - --train_steps=$(TRAIN_STEPS)\n        volumeMounts:\n        - name: nfs-pvc\n          mountPath: /home/vishnuk\n        env:\n          # The Google Cloud Storage location where the fake ImageNet dataset is\n          # stored.\n        - name: DATA_BUCKET\n          value: \"/home/vishnuk/tf-demo/fake_imagenet/\"\n          # [REQUIRED] Must specify the Google Cloud Storage location where your\n          # output model will be stored.\n        - name: MODEL_BUCKET\n          value: \"/home/vishnuk/tf-demo/train/resnet-train\" # \"/home/vishnuk/tf-demo/resnet-train/\"\n        - name: TRAIN_BATCH_SIZE\n          value: \"32\"\n        - name: TRAIN_STEPS\n          value: \"400365\"\n        resources:\n          limits:\n            nvidia.com/gpu: 1\n"
  },
  {
    "path": "demo/serving/load_generator.yaml",
    "content": "# Copyright 2018 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# An example k8s batch job that generates prediction requests to a tensorflow\n# serving instance serving inception v3 model.\n\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: tensorflow-serving-load-generator\nspec:\n  template:\n    spec:\n      containers:\n      - name: inception-client\n        image: gcr.io/vishnuk-cloud/tf-serving-client@sha256:869467cd5d22c14a024493327e323c69887f71476790a0e5762f2884b8e5773a\n        args: [\"inception_profiler.py\", \"--server=tensorflow-service\", \"--port=9000\", \"-n\", \"1000000\", \"./cat_sample.jpg\"]\n        resources:\n          requests:\n            cpu: 0.2\n            memory: 100Mi\n      restartPolicy: OnFailure\n  backoffLimit: 4\n  completions: 100\n  parallelism: 30\n\n"
  },
  {
    "path": "demo/serving/tensorflow-serving.yaml",
    "content": "# Copyright 2018 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: tensorflow-serving\n  name: tensorflow-serving-deployment\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: tensorflow-serving\n  template:\n    metadata:\n      labels:\n        app: tensorflow-serving\n    spec:\n      containers:\n      - name: tensorflow-serving-container\n        image: gcr.io/vishnuk-cloud/tf-serving:1.9-gpu-minimal\n        command:\n          - /usr/local/bin/tensorflow_model_server\n        args:\n          - --port=9000\n          - --model_name=inception\n          - --model_base_path=gs://vishh/tensorflow/inception/\n        resources:\n          limits:\n            nvidia.com/gpu: 1\n        readinessProbe:\n          exec:\n            command:\n            - python\n            - -c\n            - |\n              from grpc.beta import implementations\n              from tensorflow_serving.apis import model_pb2\n              from tensorflow_serving.apis import prediction_service_pb2\n              from tensorflow_serving.apis import get_model_metadata_pb2\n              mreq = get_model_metadata_pb2.GetModelMetadataRequest()\n              mreq.model_spec.name = 'inception'\n              mreq.metadata_field.append('signature_def')\n              channel = implementations.insecure_channel('localhost', int(9000))\n              stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)\n              print(stub.GetModelMetadata(mreq, 10.0))\n        ports:\n        - containerPort: 9000\n---\napiVersion: autoscaling/v2beta1\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: tf-hpa\nspec:\n  scaleTargetRef:\n    apiVersion: apps/v1\n    kind: Deployment\n    name: tensorflow-serving-deployment\n  minReplicas: 1\n  maxReplicas: 10\n  metrics:\n  - external:  \n      metricName: container.googleapis.com|container|accelerator|duty_cycle\n      targetAverageValue: 20\n      metricSelector:\n        matchLabels:\n          metadata.user_labels.app: tensorflow-serving\n          resource.labels.container_name: tensorflow-serving-container\n    type: External\n---\napiVersion: v1\nkind: Service\nmetadata:\n  labels:\n    run: tensorflow-service\n  name: tensorflow-service\nspec:\n  ports:\n  - port: 9000\n    targetPort: 9000\n  selector:\n    app: tensorflow-serving\n\n"
  },
  {
    "path": "demo/tpu-training/inception-v3-tpu.yaml",
    "content": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Train Inception v3 with fake ImageNet dataset using Cloud TPU and Google\n# Kubernetes Engine.\n#\n# [Training Data]\n#   In this example, we use the randomly generated fake ImageNet dataset at\n#   gs://cloud-tpu-test-datasets/fake_imagenet as the training data.\n#\n# [Instructions]\n#   1. Follow the instructions on https://cloud.google.com/tpu/docs/kubernetes-engine-setup\n#      to create a Kubernetes Engine cluster.\n#   2. Change the environment variable MODEL_BUCKET in the Job spec to the\n#      Google Cloud Storage location where you want to store the output model.\n#   3. Run `kubectl create -f inception_v3_k8s.yaml`.\n\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: inception-v3-tpu\nspec:\n  template:\n    metadata:\n      annotations:\n        # The Cloud TPUs that will be created for this Job must support\n        # TensorFlow 1.9. This version MUST match the TensorFlow version that\n        # your model is built on.\n        tf-version.cloud-tpus.google.com: \"1.9\"\n    spec:\n      restartPolicy: Never\n      containers:\n      - name: inception-v3-tpu\n        # The official TensorFlow 1.9 TPU model image built from https://github.com/tensorflow/tpu/blob/r1.9/tools/docker/Dockerfile.\n        image: gcr.io/tensorflow/tpu-models:r1.9\n        command:\n          - python\n          - /tensorflow_tpu_models/models/experimental/inception/inception_v3.py\n          - --learning_rate=0.165\n          - --train_steps=250000\n          - --iterations=500\n          - --use_data=real\n          - --mode=train_and_eval\n          - --train_steps_per_eval=2000\n          - --data_dir=$(DATA_BUCKET)\n          - --model_dir=$(MODEL_BUCKET)\n        env:\n          # The Google Cloud Storage location where the fake ImageNet dataset is\n          # stored.\n        - name: DATA_BUCKET\n          value: \"gs://cloud-tpu-test-datasets/fake_imagenet\"\n          # [REQUIRED] Must specify the Google Cloud Storage location where your\n          # output model will be stored.\n        - name: MODEL_BUCKET\n          value: \"gs://vishh/tf-models/inception_v3\"\n        resources:\n          limits:\n            # Request a single v2-8 Cloud TPU device to train the model.\n            # A single v2-8 Cloud TPU device consists of 4 chips, each of which\n            # has 2 cores, so there are 8 cores in total.\n            cloud-tpus.google.com/v2: 8\n"
  },
  {
    "path": "demo/tpu-training/resnet-tpu.yaml",
    "content": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Train ResNet-50 with fake ImageNet dataset using Cloud TPU and Google\n# Kubernetes Engine.\n#\n# The tutorial is at https://cloud.google.com/tpu/docs/tutorials/kubernetes-engine-resnet.\n#\n# [Training Data]\n#   In this example, we use randomly generated fake ImageNet dataset at\n#   gs://cloud-tpu-test-datasets/fake_imagenet as the training data.\n#\n# [Instructions]\n#   1. Follow the instructions on https://cloud.google.com/tpu/docs/kubernetes-engine-setup\n#      to create a Kubernetes Engine cluster.\n#   2. Change the environment variable MODEL_BUCKET in the Job spec to the\n#      Google Cloud Storage location where you want to store the output model.\n#   3. Run `kubectl create -f resnet_k8s.yaml`.\n\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: resnet-tpu\nspec:\n  template:\n    metadata:\n      annotations:\n        # The Cloud TPUs that will be created for this Job must support\n        # TensorFlow 1.9. This version MUST match the TensorFlow version that\n        # your model is built on.\n        tf-version.cloud-tpus.google.com: \"1.9\"\n    spec:\n      restartPolicy: Never\n      containers:\n      - name: resnet-tpu\n        # The official TensorFlow 1.9 TPU model image built from https://github.com/tensorflow/tpu/blob/r1.9/tools/docker/Dockerfile.\n        image: gcr.io/tensorflow/tpu-models:r1.9\n        command:\n        - python\n        - /tensorflow_tpu_models/models/official/resnet/resnet_main.py\n        - --data_dir=$(DATA_BUCKET)\n        - --model_dir=$(MODEL_BUCKET)/$(POD_UID)\n        env:\n          # The Google Cloud Storage location where the fake ImageNet dataset is\n          # stored.\n        - name: DATA_BUCKET\n          value: \"gs://cloudtpu-imagenet-data/train\"\n          # [REQUIRED] Must specify the Google Cloud Storage location where your\n          # output model will be stored.\n        - name: MODEL_BUCKET\n          value: \"gs://vishh/tensorflow/models/resnet-train\"\n        - name: POD_UID\n          valueFrom:\n            fieldRef:\n              fieldPath: metadata.uid\n        resources:\n          limits:\n            # Request a single v2-8 Cloud TPU device to train the model.\n            # A single v2-8 Cloud TPU device consists of 4 chips, each of which\n            # has 2 cores, so there are 8 cores in total.\n            cloud-tpus.google.com/v2: 8\n"
  },
  {
    "path": "example/cuda-mps/Dockerfile",
    "content": "# Basic Dockerfile\nFROM nvidia/cuda:11.7.1-base-ubuntu22.04\n\nCOPY cuda_mem_and_sm_count /tmp\nCMD [\"/tmp/cuda_mem_and_sm_count\"]\n"
  },
  {
    "path": "example/cuda-mps/Makefile",
    "content": "CUDA_BIN_PATH=/usr/local/cuda/bin\nCC=$(CUDA_BIN_PATH)/nvcc\nCUDA_MEM_GET_INFO=cuda_mem_and_sm_count\nLINK_OPTS=\n\nall: $(CUDA_MEM_GET_INFO)\n\n$(CUDA_MEM_GET_INFO):\n\t$(CC) $@.c -o $@ $+ $(LINK_OPTS)\n\nclean:\n\trm -f $(CUDA_MEM_GET_INFO)\n"
  },
  {
    "path": "example/cuda-mps/cuda_mem_and_sm_count.c",
    "content": "#include <cuda.h>\n#include <cuda_runtime.h>\n\n#include <dlfcn.h>\n#include <errno.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n\n#define CHECK(x, err, errcode) do { \\\n  int retval = (x); \\\n  if (retval != 1) { \\\n    fprintf(stderr, \"Error: %s returned %d at %s:%d\\n\", #x, retval, __FILE__, __LINE__); \\\n    return(errcode); \\\n  } \\\n} while (0)\n\n\nint main(int argc, const char **argv)\n{\n        int deviceCount = 0;\n        cudaError_t error_id = cudaGetDeviceCount(&deviceCount);\n        if (error_id != cudaSuccess)\n        {\n                fprintf(stderr, \"cudaGetDeviceCount returned: %s\\n\", cudaGetErrorString(error_id));\n                return 1;\n        }\n\n        if (deviceCount == 0)\n        {\n                printf(\"No GPU devices found\\n\");\n                return 1;\n        }\n\n        for (int i = 0; i < deviceCount; i++)\n        {\n                cudaSetDevice(i);\n          // Get memory info, total memory and the memory can be used in this client.\n                size_t freeMem = 0;\n                size_t totalMem = 0;\n                error_id = cudaMemGetInfo(&freeMem, &totalMem);\n                if (error_id != cudaSuccess)\n                {\n                        fprintf(stderr, \"cudaMemGetInfo returned: %s\\n\", cudaGetErrorString(error_id));\n                \treturn error_id;\n                }\n                printf(\"For device %d:  Free memory: %ld M, Total memory: %ld M\\n\", i, freeMem/(1024*1024), totalMem/(1024*1024));\n        // Get device info, the multi process count can be used in this client.\n                int numProcs;\n                error_id = cudaDeviceGetAttribute(&numProcs, cudaDevAttrMultiProcessorCount, i);\n                if (error_id != cudaSuccess)\n                {\n                        fprintf(stderr, \"cudaGetDeviceProperties returned: %s\\n\", cudaGetErrorString(error_id));\n                \treturn error_id;\n                }\n                printf(\"For device %d:  multiProcessorCount: %d\\n\", i, numProcs);\n        }\n        return 0;\n}\n"
  },
  {
    "path": "example/tensorflow-notebook/README.md",
    "content": "# Jupyter Notebook Scientific Python Stack + Tensorflow with GPU\n\n## What it Gives You\n\n* Tensorflow for Python 2.7 and 3.5 (with GPU support)\n\n## Basic Use\n\nThe following command launches an instance of this notebook in a kubernetes cluster with stateful storage.\n\n```\nkubectl apply -f tensorflow-notebook.yaml\n```\n\nThis creates a public service (L4 Loadbalancer) using which you can access your notebook.\nNote: The notebook image is large and may take sometime to get running.\n\nTake note of the authentication token included in the notebook startup log messages. Include it in the URL you visit to access the Notebook server or enter it in the Notebook login form.\n\n\n## Tensorflow Single Machine Mode\n\n```\nimport tensorflow as tf\n\nhello = tf.Variable('Hello World!')\n\nsess = tf.Session()\ninit = tf.global_variables_initializer()\n\nsess.run(init)\nsess.run(hello)\n```\n\n```\n\n"
  },
  {
    "path": "example/tensorflow-notebook/tensorflow-notebook.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: tf-notebook\n  labels:\n    app: tf-notebook\nspec:\n  type: LoadBalancer\n  ports:\n  - port: 80\n    name: http\n    targetPort: 8888\n  selector:\n    app: tf-notebook\n---\napiVersion: apps/v1beta1\nkind: StatefulSet\nmetadata:\n  name: tf-notebook\nspec:\n  serviceName: \"tf-notebook\"\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: tf-notebook\n    spec:\n      tolerations:\n      - key: nvidia.com/gpu\n        effect: NoSchedule\n      securityContext:\n        fsGroup: 0\n      containers:\n      - name: tf-notebook\n        image: gcr.io/kubeflow/tensorflow-notebook-cpu:v1\n        resources:\n#          limits:\n #           nvidia.com/gpu: 1 # Number of GPUs\n          requests:\n            cpu: 1\n            memory: 1Gi\n        ports:\n        - containerPort: 8888\n          name: notebook\n        volumeMounts:\n        - name: stateful\n          mountPath: /home/jovyan/stateful\n  volumeClaimTemplates:\n  - metadata:\n      name: stateful\n    spec:\n      accessModes: [ \"ReadWriteOnce\" ]\n      resources:\n        requests:\n          storage: 1Gi\n"
  },
  {
    "path": "fast-socket-installer/README.md",
    "content": "# NCCL Fast Socket Installer\nNCCL Fast Socket is a transport layer plugin to improve NCCL collective\ncommunication performance on Google Cloud.\n\n\n## To deploy NCCL fast socket installer on all fast-socket labeled nodes in GKE cluster\n- ### Add fast-socket node label \n  After creating the GKE cluster, add\n `cloud.google.com/gke-nccl-fastsocket: \"true\"` on the node YAML file\n- ### Deploy NCCL fast socket installer\n  Run `kubectl apply -f fast-socket-installer.yaml`\n\n### Notes:\nFor GKE version 1.25.2-gke.1700 or later, NCCL Fast Socket is supported through\n[gcloud CLI](https://cloud.google.com/kubernetes-engine/docs/how-to/nccl-fast-socket).\n\n"
  },
  {
    "path": "fast-socket-installer/fast-socket-installer.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-fastsocket-manual-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nccl-fastsocket-manual-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-fastsocket-manual-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-fastsocket-manual-installer\n        k8s-app: nccl-fastsocket-manual-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-nccl-fastsocket\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: nvidia-install-lib64-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/lib64\n          type: DirectoryOrCreate\n      initContainers:\n      - image: gcr.io/gke-release/fastsocket-installer@sha256:cb8dca70b5611769fd2e0e8eb9aebf81a89d4378537cff104775c873abf2d9c5\n        name: nccl-fastsocket-installer\n        command:\n        - bash\n        - -c\n        - |\n          cp /usr/lib/libnccl-net.so $NCCL_INSTALL_DIR/\n        securityContext:\n          privileged: true\n        resources:\n          limits:\n            memory: 100Mi\n        env:\n        - name: NCCL_INSTALL_DIR\n          value: /usr/local/nvidia/lib64\n        volumeMounts:\n        - name: nvidia-install-lib64-dir-host\n          mountPath: /usr/local/nvidia/lib64\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "fast-socket-installer/image/Dockerfile",
    "content": "FROM gcr.io/gke-release/debian-base:bookworm-v1.0.7-gke.2\n\nRUN apt-get update && \\\n    apt-get install -y --no-install-recommends --allow-change-held-packages apt-transport-https ca-certificates curl gnupg && \\\n    echo \"deb https://packages.cloud.google.com/apt google-fast-socket main\" | tee /etc/apt/sources.list.d/google-fast-socket.list && \\\n    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add && \\\n    apt update &&  apt install -y --no-install-recommends google-fast-socket=0.0.5\n"
  },
  {
    "path": "fast-socket-installer/image/README.md",
    "content": "# NCCL Fast Socket Installer Image\n\nThe Dockerfile downloads and installs a specific stable release of NCCL Fast\nSocket (see documentation [here](https://github.com/google/nccl-fastsocket)).\n\n## To build NCCL Fast Socket Installer Image\nFrom root of the repository, run:\n  `docker build -f fast-socket-installer/image/Dockerfile .`"
  },
  {
    "path": "gke-topology-scheduler/README.md",
    "content": "## Overview\n\nThis document gives instructions on how to enable topology in GKE clusters on\nA3M & A3U machines clusters.\n\nThe general outline for this to be successful is:\n- We add labels for topology to nodes in the cluster with a daemonset\n- We handle pod scheduling with a scheduling daemon\n- Pods with the added scheduleGate are picked up and scheduled\n\n## Prerequisites\n\nFor topology awareness to be enabled in A3M, a GKE node pool has to be created with\ncompact placement. Specifically, the `physical_host` attribute\n[ref](https://cloud.google.com/compute/docs/instances/use-compact-placement-policies#verify-vm-location)\nshould be present for each GPU node in the cluster.\n\n## Configuration\n\nTo initialize Kubernetes authentication for scripts:\n\n```gcloud container clusters get-credentials [cluster name] --zone [cluster zone] --project [project id]```\n\n## Usage\n\nFirst copy this folder locally\n\nNext create config maps for scripts required by pods\n\n-   Run `kubectl create configmap topology-scheduler-scripts --namespace\n    kube-system --from-file=schedule-daemon.py=schedule-daemon.py\n    --from-file=label-nodes-daemon.py=label-nodes-daemon.py`\n\nNext apply the service account config to the cluster:\n\n-   Apply `service-account.yaml` config to the cluster by running `kubectl apply\n    -f service-account.yaml`.\n\nNow apply the scheduling and label daemons to the cluster so that pods will\nautomatically be scheduled with the correct schedulingGates\n\n-   Apply `schedule-daemon.yaml` daemonset to the cluster by running `kubectl\n    apply -f schedule-daemon.yaml`.\n-   If GKE <1.31, apply `label-nodes-daemon.yaml` daemonset\n    to the cluster by running `kubectl apply -f label-nodes-daemon.yaml`.\n\nTo let the daemon \"pick up\" the workload for scheduling, simply add a\nschedulingGate that starts with ”gke.io/topology-aware-auto-”, for example:\n\n```\n  schedulingGates:\n  - name: \"gke.io/topology-aware-auto-my-job-name\"\n```\n"
  },
  {
    "path": "gke-topology-scheduler/label-nodes-daemon.py",
    "content": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"Daemon to update Kubernetes node labels based on GCE VM metadata.\"\"\"\n\nimport time\nfrom typing import Dict\n\nfrom kubernetes import client\nfrom kubernetes import config\nimport requests\n\n\ndef update_node_labels(kube: client.CoreV1Api) -> None:\n  \"\"\"Updates Kubernetes node labels based on GCE VM metadata.\"\"\"\n  node_name_url = \"http://metadata.google.internal/computeMetadata/v1/instance/name\"\n  metadata_url = \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host\"\n  headers = {\"Metadata-Flavor\": \"Google\"}\n\n  response = requests.get(node_name_url, headers=headers)\n\n  if response.status_code == 200:\n    node_name = response.text\n  else:\n    print(\"Node name not found\")\n    return\n\n  response = requests.get(metadata_url, headers=headers)\n\n  if response.status_code == 200:\n    physical_host = response.text\n  else:\n    print(\"physical host not found\")\n    return\n\n  cluster, rack, host = physical_host.split(\"/\")[1:]\n\n  node_labels: Dict[str, str] = {\n      \"topology.gke.io/cluster\": cluster,\n      \"topology.gke.io/rack\": rack,\n      \"topology.gke.io/host\": host,\n  }\n\n  kube.patch_node(node_name, {\"metadata\": {\"labels\": node_labels}})  # type: ignore\n  print(f\"Updated labels on node {node_name}: {node_labels}\")\n\n\nif __name__ == \"__main__\":\n  # Kubernetes configuration\n  config.load_incluster_config()\n  client = client.CoreV1Api()\n\n  while True:\n    print(\"Starting node update\")\n    # Update node labels\n    update_node_labels(client)\n    time.sleep(600)\n"
  },
  {
    "path": "gke-topology-scheduler/label-nodes-daemon.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: label-nodes-daemon\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      name: label-nodes-daemon\n  template:\n    metadata:\n      labels:\n        name: label-nodes-daemon\n    spec:\n      tolerations:\n      - operator: \"Exists\"\n        key: nvidia.com/gpu\n      hostNetwork: true\n      containers:\n      - name: label-nodes-daemon\n        image: python:3.10\n        command:\n        - bash\n        - -c\n        - |\n          pip install kubernetes\n          python -u /scripts/label-nodes-daemon.py\n        volumeMounts:\n        - name: scripts-volume\n          mountPath: /scripts\n      volumes:\n      - name: scripts-volume\n        configMap:\n          name: topology-scheduler-scripts\n      serviceAccount: topology-scheduler\n"
  },
  {
    "path": "gke-topology-scheduler/schedule-daemon.py",
    "content": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"schedule-daemon.py is a Topology-aware Kubernetes pod scheduler.\"\"\"\n\nimport argparse\nimport collections\nimport itertools\nimport logging\nimport re\nimport time\nfrom typing import Any\nimport kubernetes\nimport kubernetes.client\nimport kubernetes.client.models\nimport kubernetes.client.rest\nfrom kubernetes.utils import quantity\n\n# Configure logging\nlogging.basicConfig(\n    level=logging.INFO,  # Set the root logger level to INFO\n    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n    handlers=[\n        logging.FileHandler('my_app.log'),  # Log to a file\n        logging.StreamHandler(),  # Log to the console\n    ],\n)\n\n# labels for GKE<1.31, require labeler sidecar\nPRERELEASE_CLUSTER_LABEL = 'topology.gke.io/cluster'\nPRERELEASE_RACK_LABEL = 'topology.gke.io/rack'\nPRERELEASE_HOST_LABEL = 'topology.gke.io/host'\n# labels for GKE>=1.31\nCLUSTER_LABEL = 'cloud.google.com/gce-topology-block'\nRACK_LABEL = 'cloud.google.com/gce-topology-subblock'\nHOST_LABEL = 'cloud.google.com/gce-topology-host'\n\n# Kubernetes labels used to identify jobs and their completion indices.\n# These labels are typically set by Kubernetes controllers like JobSet or\n# CronJob controllers. The job completion index is used to track the progress\n# of a job and ensure that pods are scheduled in the correct order.\nJOB_COMPLETION_INDEX_LABEL_KEY = 'batch.kubernetes.io/job-completion-index'\nJOB_NAME_LABEL_KEY = 'job-name'\n\n# Most ML workloads are launched on batch jobs or JobSet API. To support\n# kubeflow operators (eg MPIJobs) we introduce the alternative labels to read\nKUBEFLOW_REPLICA_INDEX_LABEL_KEY = 'training.kubeflow.org/replica-index'\nKUBEFLOW_JOB_NAME_LABEL_KEY = 'training.kubeflow.org/job-name'\n\n# collection of methods to extract job name from pod metadata\nUNKNOWN_JOB_NAME = 'jobless'  # in case when job name is not found\n\n\ndef extract_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:\n  \"\"\"Extracts the job name label from a pod.\n\n  Args:\n    pod: The pod to extract the job name.\n\n  Returns:\n    The job name label, or UNKNOWN_JOB_NAME if the label is not found.\n  \"\"\"\n  return pod.metadata.labels.get(JOB_NAME_LABEL_KEY, UNKNOWN_JOB_NAME)\n\n\ndef extract_kubeflow_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:\n  \"\"\"Extracts the kubeflow job name label from a pod.\n\n  Args:\n    pod: The pod to extract the job name.\n\n  Returns:\n    The kubeflow job name label, or UNKNOWN_JOB_NAME if the label is not found.\n  \"\"\"\n  return pod.metadata.labels.get(KUBEFLOW_JOB_NAME_LABEL_KEY, UNKNOWN_JOB_NAME)\n\n\ndef extract_owner_reference_uid(pod: kubernetes.client.models.V1Pod) -> str:\n  \"\"\"Extracts the owner reference UID from a pod.\n\n  Args:\n    pod: The pod to extract the job name.\n\n  Returns:\n    The owner reference UID, or UNKNOWN_JOB_NAME if the owner reference is not\n    found.\n  \"\"\"\n  if pod.metadata.owner_references:\n    return pod.metadata.owner_references[0].uid\n  return UNKNOWN_JOB_NAME\n\n\ndef extract_helm_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:\n  \"\"\"Extracts the helm job name label from a pod.\n\n  Args:\n    pod: The pod to extract the job name.\n\n  Returns:\n    The helm job name label, or UNKNOWN_JOB_NAME if the label is not found.\n  \"\"\"\n  if pod.metadata.labels:\n    return pod.metadata.labels.get('name', UNKNOWN_JOB_NAME)\n  return UNKNOWN_JOB_NAME\n\n\ndef pod_sorting_key(pod_info: dict[str, Any]) -> tuple[str, int]:\n  \"\"\"Returns key/rank to be used for sorting pods.\n\n  Given that numbers is often suffixed for multi-node deployments,\n  here we use a (prefix, number) tuple for the sorting key.\n  This means \"xxx-pod2\" should appear before \"xxx-pod10\"\n\n  Args:\n    pod_info: The pod info.\n\n  Returns:\n    A tuple of the pod's prefix and index.\n  \"\"\"\n\n  try:\n    index_value = pod_info.get('index')\n    if index_value is not None:\n      return int(index_value)\n  except (ValueError, TypeError) as e:\n    logging.exception(\n        'Error converting %s pod index to integer: %s', pod_info['name'], e\n    )\n  # if the suffix is a number, extract it from the name\n  name = pod_info['name']\n  if match := re.fullmatch(r'^(.*?)(\\d+)$', name):\n    prefix, suffix = match.groups()\n    return (prefix, int(suffix))\n  else:\n    logging.warning(\n        'Pod %s does not have a numeric suffix. Using 0 as index.', name\n    )\n    return (name, 0)  # No numeric suffix\n\n\ndef node_topology_distance(node1: dict[str, Any], node2: dict[str, Any]) -> int:\n  \"\"\"Calculates the distance between two nodes in the topology.\n\n  Args:\n    node1: The first node.\n    node2: The second node.\n\n  Returns:\n    The distance between the two nodes, or 0 if the nodes are in the same\n    topology block. It's also 0, if topology labels are missing.\n  \"\"\"\n  # distance between cluster/rack/host tuples\n  node1_topology_keys = node_topology_key(node1)\n  node2_topology_keys = node_topology_key(node2)\n  result = 1000000\n  for i, node1_topology_key in enumerate(node1_topology_keys):\n    if node1_topology_key != node2_topology_keys[i]:\n      return result\n    result /= 100\n  return 0\n\n\ndef node_topology_key(\n    node: dict[str, Any],\n) -> tuple[str, str, str] | tuple[()]:\n  \"\"\"Extract topology labels of a node.\n\n  Args:\n    node: The node.\n\n  Returns:\n    A tuple of the node's topology labels, or an empty tuple if the node does\n    not have topology labels.\n  \"\"\"\n  node_labels = node['node_labels']\n  for labels in [\n      (CLUSTER_LABEL, RACK_LABEL, HOST_LABEL),\n      (PRERELEASE_CLUSTER_LABEL, PRERELEASE_RACK_LABEL, PRERELEASE_HOST_LABEL),\n  ]:\n    if all(label in node_labels for label in labels):\n      return tuple(node_labels[label] for label in labels)\n  logging.info('Node %s does not have topology labels', node['name'])\n  return ()\n\n\ndef get_pod_used_resources(\n    pod: kubernetes.client.models.V1Pod,\n) -> tuple[int, int, int]:\n  \"\"\"Get the resources used by this pod.\n\n  Args:\n    pod: The pod.\n\n  Returns:\n    A tuple of the pod's used CPU, memory, and GPU.\n  \"\"\"\n  used_cpu, used_memory, used_gpu = 0, 0, 0\n  if pod.status is None or pod.status.container_statuses is None:\n    return used_cpu, used_memory, used_gpu\n  for container, container_status in zip(\n      pod.spec.containers, pod.status.container_statuses\n  ):\n    if container_status.state.terminated is not None:\n      # terminated pods don't use resources\n      continue\n    requests = container.resources.requests or {}\n    used_cpu += quantity.parse_quantity(requests.get('cpu', 0))\n    used_memory += quantity.parse_quantity(requests.get('memory', 0))\n    used_gpu += int(requests.get('nvidia.com/gpu', 0))\n  return used_cpu, used_memory, used_gpu\n\n\ndef all_pods_have_same_tolerations(\n    pods: list[kubernetes.client.models.V1Pod],\n) -> bool:\n  \"\"\"Checks if all pods in the list have the same tolerations.\n\n   Edge case: Empty list is considered to have having same tolerations.\n\n  Args:\n    pods: A list of V1Pod objects.\n\n  Returns:\n    True if all pods have the same tolerations, False otherwise.\n  \"\"\"\n  if not pods:\n    return True\n\n  first_pod_tolerations = pods[0].spec.tolerations\n  return all(pod.spec.tolerations == first_pod_tolerations for pod in pods[1:])\n\n\ndef find_schedulable_nodes(\n    nodes: list[kubernetes.client.models.V1Node],\n    other_running_pods: list[kubernetes.client.models.V1Pod],\n    new_pods_to_schedule: dict[str, dict[str, Any]],\n) -> dict[str, Any]:\n  \"\"\"Finds nodes that can be scheduled.\n\n  Args:\n    nodes: A list of V1Node objects.\n    other_running_pods: A list of running pods. They occupy node resources.\n    new_pods_to_schedule: Info dict of pods to schedule.\n\n  Returns:\n    A dict of node names to node infos for node where scheduling is possible.\n  \"\"\"\n  nodes_info = {}\n  # guarantee: we checked above that all pods have same tolerations\n  tolerated_taint_dict = {}\n  tolerated_taints = next(iter(new_pods_to_schedule.values()))[\n      'spec'\n  ].tolerations\n  if tolerated_taints:\n    tolerated_taint_dict = {t.key: t for t in tolerated_taints}\n\n  for node in nodes:\n    node_name = node.metadata.name\n    # skip nodes that have taints that are not covered by pod tolerations\n    if any(\n        t.key not in tolerated_taint_dict\n        or (\n            tolerated_taint_dict[t.key].operator == 'Equal'\n            and tolerated_taint_dict[t.key].value != t.value\n        )\n        for t in node.spec.taints or []\n    ):\n      logging.info(\n          'Skipping node %s because it has taints (%s) which are not covered'\n          ' by pod tolerations %s',\n          node_name,\n          node.spec.taints,\n          tolerated_taint_dict,\n      )\n      continue\n\n    # skip nodes that is not in Ready state\n    if any(\n      condition.type == \"Ready\" and condition.status != \"True\" for condition in node.status.conditions\n      ):\n        logging.info(\n          'Skipping node %s because it is NotReady',\n          node_name\n        )\n        continue\n\n    allocatable = node.status.allocatable\n    used_cpu, used_memory, used_gpu = 0, 0, 0\n\n    for pod in other_running_pods:\n      if pod.spec.node_name and pod.spec.node_name == node_name:\n        cpu, mem, gpu = get_pod_used_resources(pod)\n        used_cpu += cpu\n        used_memory += mem\n        used_gpu += gpu\n\n    free_cpu = quantity.parse_quantity(allocatable['cpu']) - used_cpu\n    free_memory = quantity.parse_quantity(allocatable['memory']) - used_memory\n    free_gpu = int(allocatable.get('nvidia.com/gpu', 0)) - used_gpu\n\n    node_info = {\n        'name': node_name,\n        'cpu': free_cpu,\n        'memory': free_memory,\n        'gpu': free_gpu,\n    }\n    if node.metadata.labels:\n      node_info['node_labels'] = node.metadata.labels\n    nodes_info[node_name] = node_info\n\n    logging.info(\n        'Node: %s, CPU: %s, Memory: %s, GPU: %s, Topology: %s',\n        node_name,\n        free_cpu,\n        free_memory,\n        free_gpu,\n        node_topology_key(node_info),\n    )\n\n  return nodes_info\n\n\ndef find_pod_gates(\n    pods: list[kubernetes.client.models.V1Pod], prefix: str\n) -> set[str]:\n  \"\"\"Finds pods with scheduling gates that starts with the prefix.\n\n  Args:\n    pods: A list of V1Pod objects.\n    prefix: The prefix of the scheduling gate.\n\n  Returns:\n    A set of scheduling gate names.\n  \"\"\"\n  s = set()\n  for pod in pods:\n    if pod.spec.scheduling_gates:\n      for g in pod.spec.scheduling_gates:\n        if g.name.startswith(prefix):\n          s.add(g.name)\n  return s\n\n\ndef find_schedulable_pods(\n    job_name: str,\n    pods: list[kubernetes.client.models.V1Pod],\n) -> dict[str, dict[str, Any]]:\n  \"\"\"Finds pods that can be scheduled for a given gate.\n\n  Args:\n    job_name: The name of the job.\n    pods: A list of V1Pod objects.\n\n  Returns:\n    A dict of pod names to pod infos for schedulable pods.\n  \"\"\"\n  pods_to_schedule = {}\n  for pod in pods:\n    pod_name = pod.metadata.name\n    pod_index = None\n    if JOB_COMPLETION_INDEX_LABEL_KEY in pod.metadata.labels:\n      pod_index = pod.metadata.labels[JOB_COMPLETION_INDEX_LABEL_KEY]\n    elif KUBEFLOW_REPLICA_INDEX_LABEL_KEY in pod.metadata.labels:\n      pod_index = pod.metadata.labels[KUBEFLOW_REPLICA_INDEX_LABEL_KEY]\n    else:\n      # it's not hard stop, we still can order pods by name\n      logging.info(\n          'No index in pod %s metadata. Ordering derived from name.',\n          pod_name,\n      )\n\n    used_cpu, used_memory, used_gpu = 0, 0, 0\n    for container in pod.spec.containers:\n      requests = container.resources.requests or {}\n      used_cpu += quantity.parse_quantity(requests.get('cpu', 0))\n      used_memory += quantity.parse_quantity(requests.get('memory', 0))\n      used_gpu += int(requests.get('nvidia.com/gpu', 0))\n\n    pod_info = {\n        'name': pod_name,\n        'namespace': pod.metadata.namespace,\n        'index': pod_index,\n        'cpu': used_cpu,\n        'memory': used_memory,\n        'gpu': used_gpu,\n        'spec': pod.spec,\n        'metadata': pod.metadata,\n        'job_name': job_name,\n        'creation_time': pod.metadata.creation_timestamp,\n    }\n    if pod.spec.node_selector:\n      pod_info['node_selector'] = pod.spec.node_selector\n    pods_to_schedule[pod_name] = pod_info\n\n    logging.info(\n        'Found schedulable pod: %s/%s, CPU: %s, Memory: %s, GPU: %s Index: %s',\n        pod.metadata.namespace,\n        pod_name,\n        used_cpu,\n        used_memory,\n        used_gpu,\n        pod_index,\n    )\n\n  return pods_to_schedule\n\n\ndef can_schedule(node: dict[str, Any], pod: dict[str, Any]) -> bool:\n  \"\"\"Checks if a given pod can be scheduled on a given node.\n\n  The decision is based on resource node availability and pod requriements. The\n  node_selector is also checked, if the pod has it.\n\n  Args:\n    node: The node to check if the pod can be scheduled on.\n    pod: The pod to check if it can be scheduled on the node.\n\n  Returns:\n    True if the pod can be scheduled on the node, False otherwise.\n  \"\"\"\n  node_selector = pod.get('node_selector', {})\n  node_labels = node.get('node_labels', {})\n\n  for key, value in node_selector.items():\n    if key not in node_labels or node_labels[key] != value:\n      return False\n\n  return (\n      node['cpu'] >= pod['cpu']\n      and node['memory'] >= pod['memory']\n      and node['gpu'] >= pod['gpu']\n  )\n\n\ndef schedule_pod_on_node(\n    v1: kubernetes.client.CoreV1Api,\n    pod_name: str,\n    pod_namespace: str,\n    node: dict[str, Any],\n    gate_name: str,\n) -> bool:\n  \"\"\"Schedules a pod on a given node using affinity for direct assignment.\n\n  Args:\n    v1: The kubernetes client.\n    pod_name: The name of the pod to schedule.\n    pod_namespace: The namespace of the pod to schedule.\n    node: The node to schedule the pod on.\n    gate_name: The name of the gate to remove from the pod.\n\n  Returns:\n    True if the pod was scheduled on the node, False otherwise.\n  \"\"\"\n  try:\n    pod = v1.read_namespaced_pod(pod_name, pod_namespace)\n    if any(gate.name == gate_name for gate in pod.spec.scheduling_gates):\n      new_gates = [\n          gate for gate in pod.spec.scheduling_gates if gate.name != gate_name\n      ]\n      pod.spec.affinity = {\n          'nodeAffinity': {\n              'requiredDuringSchedulingIgnoredDuringExecution': {\n                  'nodeSelectorTerms': [{\n                      'matchExpressions': [{\n                          'key': 'kubernetes.io/hostname',\n                          'operator': 'In',\n                          'values': [node['name']],\n                      }]\n                  }]\n              }\n          }\n      }\n      pod.spec.scheduling_gates = new_gates\n\n      v1.replace_namespaced_pod(pod_name, pod_namespace, pod)\n\n      logging.info(\n          'Pod %s/%s scheduled on %s with topology %s', pod_namespace, pod_name, node['name'], node_topology_key(node)\n      )\n  except kubernetes.client.rest.ApiException as e:\n    logging.exception(\n        'Exception when removing pod %s scheduling gate: %s', pod_name, e\n    )\n    return False\n  return True\n\n\ndef calculate_pods_assignment(\n    sorted_nodes: list[dict[str, Any]], sorted_pods: list[dict[str, Any]]\n) -> list[int]:\n  \"\"\"Gets the best pod assignment by minimizing the topology distance.\n\n  Args:\n    sorted_nodes: A list of sorted node infos.\n    sorted_pods: A list of sorted pod infos.\n\n  Returns:\n    A list of node indices that the pods should be assigned to.\n  \"\"\"\n  assignment = [-i for i in reversed(range(1, len(sorted_pods) + 1))]\n  best_assignment = []\n  minimum_distance = float('inf')\n\n  while True:\n    all_ok = True\n    i = len(assignment) - 1\n    while i >= 0 and all_ok:\n      assignment[i] += 1\n      if assignment[i] == len(sorted_nodes):\n        break  # no more nodes to consider\n      if assignment[i] >= 0 and can_schedule(\n          sorted_nodes[assignment[i]], sorted_pods[i]\n      ):\n        i -= 1\n      elif i < len(assignment) - 1 and assignment[i] == assignment[i + 1] - 1:\n        all_ok = False  # to ignore the half of triangle of all combinations\n\n    # we checked all combinations, return what found so far\n    if assignment[-1] == len(sorted_nodes):\n      break\n    # calculate total distance of the detected viable assignment\n    if all_ok:\n      new_distance = 0\n      for i in range(1, len(sorted_pods)):\n        new_distance += node_topology_distance(\n            sorted_nodes[assignment[i]], sorted_nodes[assignment[i - 1]]\n        )\n      if new_distance < minimum_distance:\n        best_assignment = assignment.copy()\n        minimum_distance = new_distance\n\n  return best_assignment\n\n\ndef list_pods(\n    v1: kubernetes.client.CoreV1Api, state_filter: str = None\n) -> list[kubernetes.client.models.V1Pod]:\n  \"\"\"Lists pods in all namespaces.\n\n  Args:\n    v1: The kubernetes client.\n    state_filter: The pod state to filter by.\n\n  Returns:\n    A list of V1Pod objects.\n  \"\"\"\n  pods = []\n  for n in v1.list_namespace().items:\n    namespace = n.metadata.name\n    for pod in v1.list_namespaced_pod(namespace).items:\n      if not state_filter or pod.status.phase == state_filter:\n        pods.append(pod)\n  return pods\n\n\ndef schedule_pod_with_gate(\n    v1: kubernetes.client.CoreV1Api,\n    gate_name: str,\n) -> None:\n  \"\"\"Find and schedule pods with a given gate.\n\n  Args:\n    v1: k8s client\n    gate_name: name of the gate to schedule pods with (see k8s yaml, eg\n      schedulingGates=gke.io/topology-aware-auto-*`)\n  \"\"\"\n  # query the pods again after the sleep, just in case not all gated pods\n  # are returned from previous query\n  pending_pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Pending')\n  pods_for_given_gate: list[kubernetes.client.models.V1Pod] = []\n  for p in pending_pods:\n    if p.spec.scheduling_gates:\n      if gate_name in {g.name for g in p.spec.scheduling_gates}:\n        pods_for_given_gate.append(p)\n\n  pods_per_job: dict[str, list[kubernetes.client.models.V1Pod]] = (\n      collections.defaultdict(list)\n  )\n  jobless_pod_names: set[str] = set(\n      [p.metadata.name for p in pods_for_given_gate]\n  )\n  for job_name_extractor in [\n      extract_job_name_label,\n      extract_kubeflow_job_name_label,\n      extract_owner_reference_uid,\n      extract_helm_job_name_label,\n  ]:\n    for job_name, job_pod_group in itertools.groupby(\n        pods_for_given_gate,\n        job_name_extractor,\n    ):\n      # ignore pod groups with not yet recognized job name\n      # (we have 3 iters/different ways to extract it, see outer loop)\n      if job_name == UNKNOWN_JOB_NAME:\n        continue\n      pod_group = list(job_pod_group)\n      # sanity check: all pods have creation_timestamp\n      if not all(p.metadata.creation_timestamp for p in pod_group):\n        logging.error(\n            'No pod creation_timestamp in job %s. Job ignored.Pods: %s',\n            job_name,\n            ', '.join([p.metadata.name for p in pod_group]),\n        )\n        # exclude such bad pods from consideration\n        jobless_pod_names -= {p.metadata.name for p in pod_group}\n        continue\n      # sanity check: all pods have same tolerations\n      if not all_pods_have_same_tolerations(pod_group):\n        logging.error(\n            'Pods in job %s have different tolerations. Job ignored.Pods: %s',\n            job_name,\n            ', '.join([p.metadata.name for p in pod_group]),\n        )\n        # exclude such bad pods from consideration\n        jobless_pod_names -= {p.metadata.name for p in pod_group}\n        continue\n      pod_names_in_group = set([p.metadata.name for p in pod_group])\n      # sanity check: if all job pods has been scheduled, we can ignore the job\n      if all(p not in jobless_pod_names for p in pod_names_in_group):\n        logging.info(\n            'All %d pods of job %s are already scheduled. Job ignored.',\n            len(pod_group),\n            job_name,\n        )\n        continue\n\n      # all checks passed\n      jobless_pod_names -= pod_names_in_group\n      pods_per_job[job_name] = list(pod_group)\n      logging.info(\n          'Found %d pods for job %s, created: %s',\n          len(pods_per_job[job_name]),\n          job_name,\n          pods_per_job[job_name][0].metadata.creation_timestamp,\n      )\n\n  # sanity check\n  if jobless_pod_names:\n    logging.warning(\n        'Found %d pods without explicit job name, going to schedule all'\n        ' together. Pods: %s',\n        len(jobless_pod_names),\n        ', '.join(list(jobless_pod_names)),\n    )\n    # only for robustness we try to schedule them separately\n    pods_per_job['pods-without-explicit-job-name'] = [\n        p for p in pods_for_given_gate if p.metadata.name in jobless_pod_names\n    ]\n\n  logging.info('Start scheduling %d jobs', len(pods_per_job))\n\n  nodes: list[kubernetes.client.models.V1Node] = v1.list_node().items\n  # Sort job names based on the creation time of the first pod in each job group\n  sorted_job_names = sorted(\n      pods_per_job.keys(),\n      key=lambda job_name: pods_per_job[job_name][\n          0\n      ].metadata.creation_timestamp,\n  )\n  running_pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Running')\n  logging.info('Already running pods number: %d', len(running_pods))\n  recently_scheduled_nodes_names = set()\n  for job_name in sorted_job_names:\n    job_pods: list[kubernetes.client.models.V1Pod] = pods_per_job.get(\n        job_name, []\n    )\n    logging.info(\n        'Attempting to schedule job: %s with %s pods ', job_name, len(job_pods)\n    )\n    try:\n      schedulable_pods_infos: dict[str, Any] = find_schedulable_pods(\n          job_name, job_pods\n      )\n\n      # filter out nodes that are already occupied by running pods\n      nodes = [\n          node\n          for node in nodes\n          if node.metadata.name not in recently_scheduled_nodes_names\n      ]\n      nodes_infos: dict[str, Any] = find_schedulable_nodes(\n          nodes, running_pods, schedulable_pods_infos\n      )\n\n      if len(schedulable_pods_infos) > len(nodes_infos):\n        logging.error(\n            'Not enough nodes available for job %s scheduling: %s nodes, %s'\n            ' pods. Skipping job.',\n            job_name,\n            len(nodes_infos),\n            len(schedulable_pods_infos),\n        )\n        continue\n\n      logging.info(\n          'Available nodes for job %s scheduling: %s',\n          job_name,\n          len(nodes_infos),\n      )\n\n      sorted_pods = sorted(schedulable_pods_infos.values(), key=pod_sorting_key)\n      sorted_nodes = sorted(nodes_infos.values(), key=node_topology_key)\n      best_assignment = calculate_pods_assignment(sorted_nodes, sorted_pods)\n\n      if not best_assignment:\n        logging.error(\n            'No scheduling for job %s with gate %s was found. Skipping job.',\n            job_name,\n            gate_name,\n        )\n        continue\n      logging.info(\n          'Assignment found, scheduling %s with %s pods.',\n          job_name,\n          len(job_pods),\n      )\n\n      for i, pod in enumerate(sorted_pods):\n        node = sorted_nodes[best_assignment[i]]\n        if not schedule_pod_on_node(\n            v1, pod['name'], pod['namespace'], node, gate_name\n        ):\n          logging.error(\n              'Failed to schedule pod %s on node %s. Skipping job %s',\n              pod['name'],\n              node['name'],\n              job_name,\n          )\n          break\n          # revisit: in case of failure clear up partially scheduled pods\n        recently_scheduled_nodes_names.add(node['name'])\n\n    except Exception as e:  # pylint: disable=broad-except\n      logging.exception(\n          'Exception when scheduling %s job,gate %s: %s', job_name, gate_name, e\n      )\n\n\ndef run_scheduling_loop() -> None:\n  \"\"\"Runs scheduling.\n\n  This function runs a infinite loop that periodically schedules pods with\n  topology-aware  scheduling gates.\n  \"\"\"\n  parser = argparse.ArgumentParser(prog='schedule-workload.py')\n\n  parser.add_argument(\n      '-g', '--gate', default='gke.io/topology-aware-auto-'\n  )  # prefix of the schedule gate\n  parser.add_argument(\n      '-i', '--interval', default=1.0\n  )  # intervals (in seconds) between scheduling\n  parser.add_argument(\n      '--ignored-namespace', nargs='*', default=[]\n  )  # namespace to search for pods\n  args = parser.parse_args()\n\n  try:\n    kubernetes.config.load_incluster_config()\n  except kubernetes.config.ConfigException:\n    kubernetes.config.load_kube_config()\n  v1 = kubernetes.client.CoreV1Api()\n  # wait needed during container restart to allow previously scheduled pods\n  # to be visible on nodes and occupy resources for their correct estimates\n  logging.info('[Cool off] 90sec')\n  time.sleep(90.0)\n  try:\n    last_run_ts = time.time()\n    while True:\n      time_since_prev_run = time.time() - last_run_ts\n      if time_since_prev_run < args.interval:\n        logging.info('[Cool off] %ssec', args.interval - time_since_prev_run)\n        time.sleep(args.interval - time_since_prev_run)\n      last_run_ts = time.time()\n\n      # Get pods to schedule\n      pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Pending')\n\n      gates = find_pod_gates(pods, args.gate)\n      logging.info('Found %s pending pods and %s gates', len(pods), len(gates))\n\n      if not gates:\n        # No pods to be scheduled\n        continue\n\n      # sleep for 5 seconds, assuming that all pods within one group would be\n      # all visible by then\n      logging.info('[Cool off] 5sec')\n      time.sleep(5.0)\n\n      for g in gates:\n        logging.info('Scheduling pods with gate %s', g)\n        schedule_pod_with_gate(v1, g)\n        logging.info('[Cool off] 60sec')\n        time.sleep(60.0)  # cool off\n\n  except kubernetes.client.rest.ApiException as e:\n    logging.exception('Exception when listing Kubernetes nodes or pods: %s', e)\n\n\nif __name__ == '__main__':\n  run_scheduling_loop()\n"
  },
  {
    "path": "gke-topology-scheduler/schedule-daemon.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: topology-scheduler\n  labels:\n    app: topology-scheduler\n  namespace: kube-system\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: topology-scheduler\n  template:\n    metadata:\n      labels:\n        app: topology-scheduler\n    spec:\n      tolerations:\n      - key: \"node-role.kubernetes.io/control-plane\"\n        operator: \"Exists\"\n        effect: \"NoSchedule\"\n      containers:\n      - name: topology-scheduler-container\n        image: python:3.10\n        command:\n        - /bin/sh\n        - -c\n        - |\n          pip install google-auth cachetools google-api-python-client kubernetes\n          python -u /scripts/schedule-daemon.py --ignored-namespace kube-system gmp-public gmp-system\n        volumeMounts:\n        - name: scripts-volume\n          mountPath: /scripts\n      volumes:\n      - name: scripts-volume\n        configMap:\n          name: topology-scheduler-scripts\n      serviceAccount: topology-scheduler\n      restartPolicy: Always\n"
  },
  {
    "path": "gke-topology-scheduler/service-account.yaml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: topology-scheduler\n  namespace: kube-system\n\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: topology-scheduler\nrules:\n- apiGroups: [\"\"]\n  resources: [\"pods\"]\n  verbs: [\"get\", \"watch\", \"list\", \"update\", \"patch\"]\n- apiGroups: [\"\"]\n  resources: [\"namespaces\"]\n  verbs: [\"get\", \"watch\", \"list\"]\n- apiGroups: [\"\"]\n  resources: [\"nodes\"]\n  verbs: [\"get\", \"list\", \"watch\", \"update\", \"patch\"]\n\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: topology-scheduler\nsubjects:\n- kind: ServiceAccount\n  name: topology-scheduler\n  namespace: kube-system\nroleRef:\n  kind: ClusterRole\n  name: topology-scheduler\n  apiGroup: rbac.authorization.k8s.io\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/GoogleCloudPlatform/container-engine-accelerators\n\ngo 1.25.8\n\nrequire (\n\tcloud.google.com/go/compute/metadata v0.9.0\n\tgithub.com/NVIDIA/go-nvml v0.12.0-2\n\tgithub.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48\n\tgithub.com/containerd/nri v0.5.0\n\tgithub.com/fsnotify/fsnotify v1.7.0\n\tgithub.com/golang/glog v1.2.5\n\tgithub.com/google/go-cmp v0.7.0\n\tgithub.com/prometheus/client_golang v1.16.0\n\tgithub.com/sirupsen/logrus v1.8.3\n\tgithub.com/stretchr/testify v1.8.4\n\tgolang.org/x/net v0.48.0\n\tgolang.org/x/sys v0.39.0\n\tgoogle.golang.org/grpc v1.79.3\n\tk8s.io/api v0.27.2\n\tk8s.io/apimachinery v0.27.2\n\tk8s.io/client-go v0.27.2\n\tk8s.io/kubelet v0.27.2\n\tsigs.k8s.io/yaml v1.3.0\n)\n\nrequire (\n\tgithub.com/beorn7/perks v1.0.1 // indirect\n\tgithub.com/cespare/xxhash/v2 v2.3.0 // indirect\n\tgithub.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/emicklei/go-restful/v3 v3.9.0 // indirect\n\tgithub.com/evanphx/json-patch v4.12.0+incompatible // indirect\n\tgithub.com/go-logr/logr v1.4.3 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.19.6 // indirect\n\tgithub.com/go-openapi/jsonreference v0.20.1 // indirect\n\tgithub.com/go-openapi/swag v0.22.3 // indirect\n\tgithub.com/gogo/protobuf v1.3.2 // indirect\n\tgithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect\n\tgithub.com/golang/protobuf v1.5.4 // indirect\n\tgithub.com/google/gnostic v0.5.7-v3refs // indirect\n\tgithub.com/google/gofuzz v1.1.0 // indirect\n\tgithub.com/google/uuid v1.6.0 // indirect\n\tgithub.com/josharian/intern v1.0.0 // indirect\n\tgithub.com/json-iterator/go v1.1.12 // indirect\n\tgithub.com/mailru/easyjson v0.7.7 // indirect\n\tgithub.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect\n\tgithub.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/prometheus/client_model v0.4.0 // indirect\n\tgithub.com/prometheus/common v0.44.0 // indirect\n\tgithub.com/prometheus/procfs v0.10.1 // indirect\n\tgolang.org/x/oauth2 v0.34.0 // indirect\n\tgolang.org/x/term v0.38.0 // indirect\n\tgolang.org/x/text v0.32.0 // indirect\n\tgolang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect\n\tgoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect\n\tgoogle.golang.org/protobuf v1.36.10 // indirect\n\tgopkg.in/inf.v0 v0.9.1 // indirect\n\tgopkg.in/yaml.v2 v2.4.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n\tk8s.io/cri-api v0.25.3 // indirect\n\tk8s.io/klog/v2 v2.90.1 // indirect\n\tk8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect\n\tk8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect\n\tsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect\n\tsigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=\ncloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=\ngithub.com/NVIDIA/go-nvml v0.12.0-2 h1:Sg239yy7jmopu/cuvYauoMj9fOpcGMngxVxxS1EBXeY=\ngithub.com/NVIDIA/go-nvml v0.12.0-2/go.mod h1:7ruy85eOM73muOc/I37euONSwEyFqZsv5ED9AogD4G0=\ngithub.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48 h1:JO/JF5CBte9mvATbhoh32swu9erf07ZdLgwFj8u21UQ=\ngithub.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48/go.mod h1:oKPJa5eOTkWvlT4/Y4D8Nds44Fzmww5HUK+xwO+DwTA=\ngithub.com/NVIDIA/gpu-monitoring-tools/bindings/go/dcgm v0.0.0-20210325210537-29b4f1784f18/go.mod h1:8qXwltEzU3idjUcVpMOv3FNgxxbDeXZPGMLyc/khWiY=\ngithub.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=\ngithub.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/containerd/nri v0.5.0 h1:bwCtKpi8i5FCA8g8WjIZNod91CEfIloYpV0+TH2prnQ=\ngithub.com/containerd/nri v0.5.0/go.mod h1:qIu2NlP3r/qK4YGnNuQf0De4VPqQWP2i2CVBfAZbGzg=\ngithub.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 h1:BhCp66ofL8oYcdelc3CBXc2/Pfvvgx+s+mrp9TvNgn8=\ngithub.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3/go.mod h1:YYyNVhZrTMiaf51Vj6WhAJqJw+vl/nzABhj8pWrzle4=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=\ngithub.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=\ngithub.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=\ngithub.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=\ngithub.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=\ngithub.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=\ngithub.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=\ngithub.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=\ngithub.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=\ngithub.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=\ngithub.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=\ngithub.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=\ngithub.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=\ngithub.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=\ngithub.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=\ngithub.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=\ngithub.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=\ngithub.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=\ngithub.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=\ngithub.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=\ngithub.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=\ngithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=\ngithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=\ngithub.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=\ngithub.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=\ngithub.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=\ngithub.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=\ngithub.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=\ngithub.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=\ngithub.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=\ngithub.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=\ngithub.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=\ngithub.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=\ngithub.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=\ngithub.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=\ngithub.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=\ngithub.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=\ngithub.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=\ngithub.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=\ngithub.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=\ngithub.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk=\ngithub.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo=\ngithub.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=\ngithub.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ=\ngithub.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb h1:1xSVPOd7/UA+39/hXEGnBJ13p6JFB0E1EvQFlrRDOXI=\ngithub.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=\ngithub.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=\ngithub.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=\ngithub.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=\ngithub.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=\ngithub.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=\ngithub.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=\ngithub.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=\ngithub.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=\ngithub.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=\ngithub.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=\ngithub.com/sirupsen/logrus v1.8.3 h1:DBBfY8eMYazKEJHb3JKpSPfpgd2mBCoNFlQx6C5fftU=\ngithub.com/sirupsen/logrus v1.8.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=\ngithub.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=\ngithub.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=\ngithub.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngo.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=\ngo.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=\ngo.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=\ngo.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=\ngo.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=\ngo.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=\ngo.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=\ngo.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=\ngo.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=\ngo.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=\ngo.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=\ngo.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=\ngolang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=\ngolang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=\ngolang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=\ngolang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=\ngolang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=\ngolang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44=\ngolang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=\ngolang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=\ngolang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=\ngonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=\ngoogle.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=\ngoogle.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=\ngoogle.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=\ngoogle.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=\ngoogle.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=\ngoogle.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=\ngoogle.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=\ngoogle.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=\ngoogle.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=\ngoogle.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=\ngoogle.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=\ngoogle.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=\ngoogle.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=\ngoogle.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=\ngoogle.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=\ngoogle.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nk8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo=\nk8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4=\nk8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg=\nk8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=\nk8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE=\nk8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ=\nk8s.io/cri-api v0.25.3 h1:YaiQ05CM4+5L2DAz0KoSa4sv4/VlQvLbf3WHKICPSXs=\nk8s.io/cri-api v0.25.3/go.mod h1:riC/P0yOGUf2K1735wW+CXs1aY2ctBgePtnnoFLd0dU=\nk8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=\nk8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=\nk8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=\nk8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=\nk8s.io/kubelet v0.27.2 h1:vpJnBkqQjxItEhehKG0toXoZ+G+tf4UXAOqtMJy6qgc=\nk8s.io/kubelet v0.27.2/go.mod h1:1SVrHaLnuw53nQJx8036k9HjE0teDXZtbN51cYC0HSc=\nk8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=\nk8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=\nsigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=\nsigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=\nsigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=\nsigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=\n"
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer-a4x.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-rdma-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nccl-rdma-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-rdma-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-rdma-installer\n        k8s-app: nccl-rdma-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-gb200\n                  - key: kubernetes.io/arch\n                    operator: In\n                    values:\n                      - arm64\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin/nvidia/lib64\n            type: DirectoryOrCreate\n        - name: gib\n          hostPath:\n            path: /home/kubernetes/bin/gib\n        - name: nvidia-dir\n          hostPath:\n            path: /home/kubernetes/bin/nvidia\n            type: Directory\n      initContainers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-arm64:v1.1.0\n          name: nccl-rdma-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: library-dir-host\n              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64\n            - name: gib\n              mountPath: /usr/local/home/kubernetes/bin/gib\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              /scripts/container_entry.sh install --install-nccl\n              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64\n              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer-autopilot.yaml",
    "content": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: rdma-system\n  labels:\n    name: rdma-system\n---\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-rdma-installer\n  namespace: rdma-system\n  labels:\n    k8s-app: nccl-rdma-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-rdma-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-rdma-installer\n        k8s-app: nccl-rdma-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h200-141gb\n                      - nvidia-b200\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin/nvidia/lib64\n            type: DirectoryOrCreate\n        - name: gib\n          hostPath:\n            path: /home/kubernetes/bin/gib\n      initContainers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib:v1.1.1\n          name: nccl-rdma-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: library-dir-host\n              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64\n            - name: gib\n              mountPath: /usr/local/home/kubernetes/bin/gib\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              /scripts/container_entry.sh install --install-nccl\n              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64\n              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause"
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-rdma-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nccl-rdma-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-rdma-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-rdma-installer\n        k8s-app: nccl-rdma-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h200-141gb\n                      - nvidia-b200\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin/nvidia/lib64\n            type: DirectoryOrCreate\n        - name: gib\n          hostPath:\n            path: /home/kubernetes/bin/gib\n      initContainers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib:v1.1.1\n          name: nccl-rdma-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: library-dir-host\n              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64\n            - name: gib\n              mountPath: /usr/local/home/kubernetes/bin/gib\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              /scripts/container_entry.sh install --install-nccl\n              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64\n              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4-autopilot.yaml",
    "content": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"gvnic-1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-b200\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: gib\n    hostPath:\n      path: /home/kubernetes/bin/gib\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n      readOnly: true\n    - name: gib\n      mountPath: /usr/local/gib\n      readOnly: true\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 8\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      source /usr/local/gib/scripts/set_nccl_env.sh\n      sleep infinity\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"gvnic-1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-b200\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: gib\n    hostPath:\n      path: /home/kubernetes/bin/gib\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n      readOnly: true\n    - name: gib\n      mountPath: /usr/local/gib\n      readOnly: true\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 8\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      source /usr/local/gib/scripts/set_nccl_env.sh\n      sleep infinity"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  hostNetwork: false\n  hostPID: false\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  hostNetwork: false\n  hostPID: false\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4x-max-jobset.yaml",
    "content": "apiVersion: resource.nvidia.com/v1beta1\nkind: ComputeDomain\nmetadata:\n  name: nccl-test-compute-domain\nspec:\n  numNodes: __NUM_NODES__\n  channel:\n    resourceClaimTemplate:\n      name: nccl-test-compute-domain-channel\n---\napiVersion: resource.k8s.io/v1\nkind: ResourceClaimTemplate\nmetadata:\n  name: nccl-test-all-mrdma\nspec:\n  spec:\n    devices:\n      requests:\n      - name: req-mrdma\n        exactly:\n          deviceClassName: mrdma.google.com\n          allocationMode: ExactCount\n          count: 8\n---\napiVersion: jobset.x-k8s.io/v1alpha2\nkind: JobSet\nmetadata:\n  name: allgather\n  # labels:\n  #   kueue.x-k8s.io/queue-name: a4x\nspec:\n  ttlSecondsAfterFinished: 1200\n  network:\n    enableDNSHostnames: true\n  replicatedJobs:\n    - name: worker\n      template:\n        spec:\n          parallelism: __NUM_NODES__\n          completions: __NUM_NODES__\n          template:\n            spec:\n              terminationGracePeriodSeconds: 5\n              activeDeadlineSeconds: 3600\n              restartPolicy: Never\n              nodeSelector:\n                cloud.google.com/gke-accelerator: nvidia-gb300\n              tolerations:\n              - key: nvidia.com/gpu\n                operator: Equal\n                value: present\n                effect: NoSchedule\n              - key: kubernetes.io/arch\n                operator: Equal\n                value: arm64\n                effect: NoSchedule\n              setHostnameAsFQDN: true\n              volumes:\n              # - name: gib\n              #   hostPath:\n              #     path: /home/kubernetes/bin/gib\n              - name: nvidia\n                hostPath:\n                  path: /home/kubernetes/bin/nvidia\n              - name: lib64\n                hostPath:\n                  path: /lib64\n              - name: shared-memory\n                emptyDir:\n                  medium: \"Memory\"\n                  sizeLimit: 250Gi\n              resourceClaims:\n              - name: compute-domain-channel\n                resourceClaimTemplateName: nccl-test-compute-domain-channel\n              - name: rdma\n                resourceClaimTemplateName: nccl-test-all-mrdma\n              containers:\n              - name: nccl-test\n                stdin: true\n                tty: true\n                image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1\n                env:\n                - name: MY_NODE_NAME\n                  valueFrom:\n                    fieldRef:\n                      fieldPath: spec.nodeName\n                - name: MY_JOB_NAME\n                  valueFrom:\n                    fieldRef:\n                      fieldPath: metadata.labels['job-name']\n                - name: MY_SUBDOMAIN\n                  value: \"allgather\"\n                - name: OMPI_ALLOW_RUN_AS_ROOT\n                  value: \"1\"\n                - name: OMPI_ALLOW_RUN_AS_ROOT_CONFIRM\n                  value: \"1\"\n                - name: N_NODES\n                  value: \"__NUM_NODES__\"\n                - name: LD_LIBRARY_PATH\n                  value: /usr/local/nvidia/lib64\n                command:\n                - bash\n                - -c\n                - |\n                  set -x\n                  echo \"Starting workload container on ${MY_NODE_NAME} for $N_NODES benchmark\"\n                  # Install ping\n                  apt update -y\n                  apt install -y iputils-ping\n                  # sleep infinity\n\n                  # Start sshd\n                  /scripts/container_entry.sh daemon &\n\n                  # Get helper variables to form all hostnames\n                  export NODE_RANK=$JOB_COMPLETION_INDEX\n\n                  # For every worker, wait till online and add to hostfile\n                  for i in $(seq 0 $(($N_NODES-1))); do\n                    OTHER=${MY_JOB_NAME}-${i}.${MY_SUBDOMAIN}\n                    until ssh -p 222 -o StrictHostKeyChecking=no $OTHER hostname; do\n                      echo Waiting for ${OTHER}...\n                      sleep 10\n                    done\n                    echo ${OTHER} port=222 slots=4 | tee -a /tmp/hostfile;\n                  done\n\n                  cat /tmp/hostfile\n\n                  # Launch from head node\n                  if [[ \"${NODE_RANK}\" -eq \"0\" ]]; then\n\n                      # World Level = 0x0, Rail Aligned = 0x7\n                      export NCCL_TESTS_SPLIT_MASK=\"0x0\";\n\n                      # Get all relevant NCCL / env vars to pass to all workers\n                      export NCCL_DEBUG_SUBSYS=\"INIT,NET\"\n                      export NCCL_DEBUG=\"INFO\"\n                      ENV_VARS=$(echo ${!NCCL*} ${!OMPI*} | sed 's/ / -x /g')\n\n                      mpirun --hostfile /tmp/hostfile \\\n                        -x PATH -x LD_LIBRARY_PATH=\"/usr/local/gib/lib64:${LD_LIBRARY_PATH}\" \\\n                        -x $ENV_VARS \\\n                        -x NCCL_DEBUG=\"${NCCL_DEBUG}\" \\\n                        -x NCCL_DEBUG_SUBSYS=\"${NCCL_DEBUG_SUBSYS}\" \\\n                        -x NCCL_TESTS_SPLIT_MASK=\"${NCCL_TESTS_SPLIT_MASK}\" \\\n                        -mca plm_rsh_no_tree_spawn 1 \\\n                        --mca orte_keep_fqdn_hostnames 1 \\\n                        --mca btl self,tcp \\\n                        --mca btl_tcp_if_include eth0 \\\n                        --bind-to none \\\n                        --mca plm_rsh_agent \"ssh -q -o LogLevel=ERROR -o StrictHostKeyChecking=no -p 222\" \\\n                        /third_party/nccl-tests/build/all_gather_perf -b 1K -e 8G -f 2 -g 1 -w 5 --iters 100 -c 1\n\n                  else\n                    HEAD_NODE=${MY_JOB_NAME}-0.${MY_SUBDOMAIN}\n                    # Wait for head node to exit\n                    while ssh -p 222 -o StrictHostKeyChecking=no $HEAD_NODE hostname; do\n                      sleep 5\n                    done\n                  fi\n\n                  exit 0\n                volumeMounts:\n                - name: nvidia\n                  mountPath: /usr/local/nvidia\n                - name: shared-memory\n                  mountPath: /dev/shm\n                resources:\n                  limits:\n                    nvidia.com/gpu: 4\n                  requests:\n                    nvidia.com/gpu: 4\n                  claims:\n                    - name: compute-domain-channel\n                    - name: rdma\n              restartPolicy: Never\n"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4x-max.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: resource.nvidia.com/v1beta1\nkind: ComputeDomain\nmetadata:\n  name: nccl-test-compute-domain\nspec:\n  numNodes: 2\n  channel:\n    resourceClaimTemplate:\n      name: nccl-test-compute-domain-channel\n---\napiVersion: resource.k8s.io/v1\nkind: ResourceClaimTemplate\nmetadata:\n  name: nccl-test-all-mrdma\nspec:\n  spec:\n    devices:\n      requests:\n      - name: req-mrdma\n        exactly:\n          deviceClassName: mrdma.google.com\n          allocationMode: ExactCount\n          count: 8\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\nspec:\n  tolerations:\n  - key: \"kubernetes.io/arch\"\n    operator: \"Equal\"\n    value: \"arm64\"\n    effect: \"NoSchedule\"\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb300\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1\n    securityContext:\n      capabilities:\n        add: [\"IPC_LOCK\"]\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n        - name: rdma\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n  - name: rdma\n    resourceClaimTemplateName: nccl-test-all-mrdma\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\nspec:\n  tolerations:\n  - key: \"kubernetes.io/arch\"\n    operator: \"Equal\"\n    value: \"arm64\"\n    effect: \"NoSchedule\"\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb300\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1\n    securityContext:\n      capabilities:\n        add: [\"IPC_LOCK\"]\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n        - name: rdma\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n  - name: rdma\n    resourceClaimTemplateName: nccl-test-all-mrdma\n"
  },
  {
    "path": "gpudirect-rdma/nccl-test-autopilot.yaml",
    "content": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"gvnic-1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h200-141gb\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n          readOnly: true\n        - name: gib\n          mountPath: /usr/local/gib\n          readOnly: true\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"gvnic-1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h200-141gb\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n          readOnly: true\n        - name: gib\n          mountPath: /usr/local/gib\n          readOnly: true\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity"
  },
  {
    "path": "gpudirect-rdma/nccl-test-imex-a4x-max.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: resource.nvidia.com/v1beta1\nkind: ComputeDomain\nmetadata:\n  name: nccl-test-compute-domain\nspec:\n  numNodes: 2\n  channel:\n    resourceClaimTemplate:\n      name: nccl-test-compute-domain-channel\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\nspec:\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb300\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostNetwork: false\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\nspec:\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb300\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostNetwork: false\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n"
  },
  {
    "path": "gpudirect-rdma/nccl-test-imex-a4x.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: resource.nvidia.com/v1beta1\nkind: ComputeDomain\nmetadata:\n  name: nccl-test-compute-domain\nspec:\n  numNodes: 2\n  channel:\n    resourceClaimTemplate:\n      name: nccl-test-compute-domain-channel\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"}\n      ]\nspec:\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb200\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostNetwork: false\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: gib\n    hostPath:\n      path: /home/kubernetes/bin/gib\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic-arm64:v1.1.0\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      source /usr/local/gib/scripts/set_nccl_env.sh\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"}\n      ]\nspec:\n  affinity:\n    nodeAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: cloud.google.com/gke-accelerator\n            operator: In\n            values:\n            - nvidia-gb200\n          - key: kubernetes.io/arch\n            operator: In\n            values:\n            - arm64\n  hostNetwork: false\n  hostPID: false\n  volumes:\n  - name: library-dir-host\n    hostPath:\n      path: /home/kubernetes/bin/nvidia\n  - name: gib\n    hostPath:\n      path: /home/kubernetes/bin/gib\n  - name: shared-memory\n    emptyDir:\n      medium: \"Memory\"\n      sizeLimit: 250Gi\n  containers:\n  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic-arm64:v1.1.0\n    name: test\n    resources:\n      requests:\n        cpu: 150m\n    volumeMounts:\n    - name: library-dir-host\n      mountPath: /usr/local/nvidia\n    - name: shared-memory\n      mountPath: /dev/shm\n    env:\n    - name: LD_LIBRARY_PATH\n      value: /usr/local/nvidia/lib64\n    resources:\n      limits:\n        nvidia.com/gpu: 4\n      claims:\n        - name: compute-domain-channel\n    command: [\"/bin/bash\", \"-c\"]\n    args:\n    - |\n      /scripts/container_entry.sh shell\n      source /usr/local/gib/scripts/set_nccl_env.sh\n      sleep infinity\n  resourceClaims:\n  - name: compute-domain-channel\n    resourceClaimTemplateName: nccl-test-compute-domain-channel\n"
  },
  {
    "path": "gpudirect-rdma/nccl-test-managed-rdma.yaml",
    "content": "# Copyright 2026 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: resource.k8s.io/v1\nkind: ResourceClaimTemplate\nmetadata:\n  name: nccl-test-all-mrdma\nspec:\n  spec:\n    devices:\n      requests:\n      - name: req-mrdma\n        exactly:\n          deviceClassName: mrdma.google.com\n          allocationMode: ExactCount\n          count: 8\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\nspec:\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  resourceClaims:\n  - name: rdma\n    resourceClaimTemplateName: nccl-test-all-mrdma\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.0\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n        claims:\n        - name: rdma\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\nspec:\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  resourceClaims:\n  - name: rdma\n    resourceClaimTemplateName: nccl-test-all-mrdma\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.0\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n        claims:\n        - name: rdma\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity\n"
  },
  {
    "path": "gpudirect-rdma/nccl-test.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"rdma-0\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"rdma-1\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"rdma-2\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"rdma-3\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"rdma-4\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"rdma-5\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"rdma-6\"},\n        {\"interfaceName\":\"eth9\",\"network\":\"rdma-7\"}\n      ]\nspec:\n  volumes:\n    - name: library-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: gib\n      hostPath:\n        path: /home/kubernetes/bin/gib\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 250Gi\n  containers:\n    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1\n      name: test\n      resources:\n        requests:\n          cpu: 150m\n      volumeMounts:\n        - name: library-dir-host\n          mountPath: /usr/local/nvidia\n        - name: gib\n          mountPath: /usr/local/gib\n        - name: shared-memory\n          mountPath: /dev/shm\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n      command: [\"/bin/bash\", \"-c\"]\n      args:\n        - |\n          /scripts/container_entry.sh shell\n          source /usr/local/gib/scripts/set_nccl_env.sh\n          sleep infinity"
  },
  {
    "path": "gpudirect-tcpx/nccl-config.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: nccl-configmap\ndata:\n  allgather.sh: |-\n    #!/bin/bash\n    for script in /configs/*; do\n      name=$(basename $script)\n      cp $script \"/scripts/$name\"\n      chmod +x \"/scripts/$name\"\n    done\n    /scripts/init_ssh.sh ${@};\n    pushd /scripts;\n    /scripts/gen_hostfiles.sh ${@};\n    popd;\n    /scripts/run-allgather.sh 8 eth1,eth2,eth3,eth4 1M 512M ${#};\n  run-nccl.sh: |-\n    #!/bin/bash\n    SCRIPT_DIR=$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" )\" &> /dev/null && pwd )\n    source \"${SCRIPT_DIR}\"/unix_client_prefix_selection.sh\n    benchmark=$1\n    ld_library_path_override=$2\n    gpu_per_node=$3\n    socket_ifnames=$4\n    data_b=$5\n    data_e=$6\n    nhosts=2\n    if ! [[ -z \"$7\" ]]; then nhosts=$7; fi\n    LD_LIBRARY_PATH=${ld_library_path_override} \\\n    mpirun --mca btl tcp,self --mca btl_tcp_if_include eth0 --allow-run-as-root \\\n    --mca orte_base_help_aggregate 0 \\\n    --mca pcompress_base_silence_warning 1 \\\n    -np $(( gpu_per_node * \"${nhosts}\" )) \\\n    --hostfile \"${SCRIPT_DIR}/hostfiles${nhosts}/hostfile${gpu_per_node}\" \\\n    -x LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" \\\n    -x NCCL_GPUDIRECTTCPX_FORCE_ACK=0 \\\n    -x NCCL_GPUDIRECTTCPX_TX_COMPLETION_NANOSLEEP=1000 \\\n    -x NCCL_SOCKET_IFNAME=eth0 \\\n    -x NCCL_DYNAMIC_CHUNK_SIZE=524288 \\\n    -x NCCL_P2P_NET_CHUNKSIZE=524288 \\\n    -x NCCL_P2P_PCI_CHUNKSIZE=524288 \\\n    -x NCCL_P2P_NVL_CHUNKSIZE=1048576 \\\n    -x NCCL_GPUDIRECTTCPX_TX_BINDINGS=\"eth1:8-21,112-125;eth2:8-21,112-125;eth3:60-73,164-177;eth4:60-73,164-177\" \\\n    -x NCCL_GPUDIRECTTCPX_RX_BINDINGS=\"eth1:22-35,126-139;eth2:22-35,126-139;eth3:74-87,178-191;eth4:74-87,178-191\" \\\n    -x NCCL_NSOCKS_PERTHREAD=4 \\\n    -x NCCL_SOCKET_NTHREADS=1 \\\n    -x NCCL_MAX_NCHANNELS=8 \\\n    -x NCCL_MIN_NCHANNELS=8 \\\n    -x NCCL_BUFFSIZE=4194304 \\\n    -x NCCL_DEBUG=INFO -x NCCL_DEBUG_SUBSYS=ENV \\\n    -x NCCL_GPUDIRECTTCPX_SOCKET_IFNAME=eth1,eth2,eth3,eth4 \\\n    -x NCCL_GPUDIRECTTCPX_CTRL_DEV=eth0 \\\n    -x NCCL_GPUDIRECTTCPX_PROGRAM_FLOW_STEERING_WAIT_MICROS=500000 \\\n    -x NCCL_CROSS_NIC=0 \\\n    -x NCCL_ALGO=Ring \\\n    -x NCCL_PROTO=Simple \\\n    -x NCCL_NET_GDR_LEVEL=PIX \\\n    -x NCCL_P2P_PXN_LEVEL=0 \\\n    taskset -c 0-7,104-111,52-59,156-163 \\\n    /third_party/nccl-tests-mpi/build/\"${benchmark}\" \\\n    -b \"${data_b}\" -e \"${data_e}\" -f 2 -g 1 -w 5 --iters 100 -c 0 2>&1 \\\n    | tee \"a_${nhosts}_${gpu_per_node}_${socket_ifnames}.txt\"\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-tcpx-installer-autopilot.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpx-installer\n  namespace: gpudirect-system\n  labels:\n    k8s-app: nccl-tcpx-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-tcpx-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-tcpx-installer\n        k8s-app: nccl-tcpx-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: var-lib\n          hostPath:\n            path: /var/lib\n        - name: tcpx\n          hostPath:\n            path: /var/lib/tcpx\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin\n      initContainers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n          name: nccl-tcpx-installer\n          resources:\n            limits:\n              cpu: 50m\n              memory: 64Mi\n              ephemeral-storage: 10Mi\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: var-lib\n              mountPath: /var/lib\n            - name: library-dir-host\n              mountPath: /usr/local\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              /scripts/container_entry.sh install --install-nccl\n              mkdir -p /usr/local/nvidia/lib64\n              cp -r /var/lib/tcpx/lib64/. /usr/local/nvidia/lib64\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n          resources:\n            limits:\n              cpu: 50m\n              memory: 64Mi\n              ephemeral-storage: 10Mi\n\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-tcpx-installer.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpx-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nccl-tcpx-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-tcpx-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-tcpx-installer\n        k8s-app: nccl-tcpx-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: var-lib\n          hostPath:\n            path: /var/lib\n        - name: tcpx\n          hostPath:\n            path: /var/lib/tcpx\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin\n      initContainers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n          name: nccl-tcpx-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: var-lib\n              mountPath: /var/lib\n            - name: library-dir-host\n              mountPath: /usr/local\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              /scripts/container_entry.sh install --install-nccl\n              mkdir -p /usr/local/nvidia/lib64\n              cp -r /var/lib/tcpx/lib64/. /usr/local/nvidia/lib64\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-test-latest-autopilot.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# This daemonset installs nvidia driver 450.80.02 and invokes the\n# partition_gpu tool to enable MIG mode and create GPU instances as specified\n# in the GPU config.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n          - path: /dev/nvidia0\n          - path: /dev/nvidia1\n          - path: /dev/nvidia2\n          - path: /dev/nvidia3\n          - path: /dev/nvidia4\n          - path: /dev/nvidia5\n          - path: /dev/nvidia6\n          - path: /dev/nvidia7\n          - path: /dev/nvidiactl\n          - path: /dev/nvidia-uvm\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h100-80gb\n    # land in same zone\n    topology.kubernetes.io/zone: us-central1-a\n    cloud.google.com/gke-spot: \"true\"\n    cloud.google.com/gke-gpu-driver-version: latest\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      resources:\n        requests:\n          cpu: 1\n          memory: 2Gi\n          ephemeral-storage: 10Gi\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc\n          mountPath: /hostprocsysfs\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        requests:\n          cpu: 100\n          memory: 200Gi\n          ephemeral-storage: 2000Gi\n        limits:\n          nvidia.com/gpu: 8\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc\n      hostPath:\n        path: /proc/sys\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n          - path: /dev/nvidia0\n          - path: /dev/nvidia1\n          - path: /dev/nvidia2\n          - path: /dev/nvidia3\n          - path: /dev/nvidia4\n          - path: /dev/nvidia5\n          - path: /dev/nvidia6\n          - path: /dev/nvidia7\n          - path: /dev/nvidiactl\n          - path: /dev/nvidia-uvm\nspec:\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h100-80gb\n    cloud.google.com/gke-spot: \"true\"\n    cloud.google.com/gke-gpu-driver-version: latest\n    # land in same zone\n    topology.kubernetes.io/zone: us-central1-a\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      resources:\n        requests:\n          cpu: 1\n          memory: 2Gi\n          ephemeral-storage: 10Gi\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      resources:\n        requests:\n          cpu: 100\n          memory: 200Gi\n          ephemeral-storage: 2000Gi\n        limits:\n          nvidia.com/gpu: 8\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-test-latest.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      hostPath:\n        path: /run/tcpx\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc\n      hostPath:\n        path: /proc/sys\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      hostPath:\n        path: /run/tcpx\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-test-unprivileged-without-hostnetwork.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n          - path: /dev/nvidia0\n          - path: /dev/nvidia1\n          - path: /dev/nvidia2\n          - path: /dev/nvidia3\n          - path: /dev/nvidia4\n          - path: /dev/nvidia5\n          - path: /dev/nvidia6\n          - path: /dev/nvidia7\n          - path: /dev/nvidiactl\n          - path: /dev/nvidia-uvm\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      hostPath:\n        path: /run/tcpx\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc\n      hostPath:\n        path: /proc/sys\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\n    devices.gke.io/container.tcpx-daemon: |+\n          - path: /dev/nvidia0\n          - path: /dev/nvidia1\n          - path: /dev/nvidia2\n          - path: /dev/nvidia3\n          - path: /dev/nvidia4\n          - path: /dev/nvidia5\n          - path: /dev/nvidia6\n          - path: /dev/nvidia7\n          - path: /dev/nvidiactl\n          - path: /dev/nvidia-uvm\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      hostPath:\n        path: /run/tcpx\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-test-without-hostnetwork.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n          readOnly: true\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc\n      hostPath:\n        path: /proc/sys\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n  annotations:\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"}\n      ]\nspec:\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n          readOnly: true\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n"
  },
  {
    "path": "gpudirect-tcpx/nccl-test.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\nspec:\n  hostNetwork: true\n  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.9\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n          readOnly: true\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\nspec:\n  hostNetwork: true\n  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpx-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.9\n      imagePullPolicy: Always\n      command:\n        - /tcpgpudmarxd/build/app/tcpgpudmarxd\n        - --gpu_nic_preset\n        - a3vm\n        - --gpu_shmem_type\n        - fd\n        - --uds_path\n        - /run/tcpx\n        - --setup_param\n        - \\\"--verbose 128 2 0 \\\"\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: libraries\n          mountPath: /usr/local/nvidia/lib64\n          readOnly: true\n        - name: tcpx-socket\n          mountPath: /run/tcpx\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.9\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        capabilities:\n          add:\n            - IPC_LOCK\n      volumeMounts:\n        - name: tcpx-socket\n          mountPath: /tmp\n        - name: config-volume\n          mountPath: /configs\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: config-volume\n      configMap:\n        name: nccl-configmap\n        defaultMode: 0777\n    - name: libraries\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: tcpx-socket\n      emptyDir:\n"
  },
  {
    "path": "gpudirect-tcpx/optmem-max-ds.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: optmem-max-ds\n  namespace: kube-system\n  labels:\n    k8s-app: optmem-max-ds\nspec:\n  selector:\n    matchLabels:\n      k8s-app: optmem-max-ds\n  template:\n    metadata:\n      labels:\n        name: optmem-max-ds\n        k8s-app: optmem-max-ds\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-80gb\n      hostNetwork: true\n      tolerations:\n        - operator: \"Exists\"\n      initContainers:\n        - name: optmem-max\n          image: gke.gcr.io/gke-distroless/bash\n          securityContext:\n            privileged: true\n          command:\n            - /bin/bash\n            - -c\n            - \"set -x; cat /proc/sys/net/core/optmem_max; echo 131072 > /proc/sys/net/core/optmem_max\"\n      containers:\n        - name: pause\n          image: registry.k8s.io/pause:3.9\n          securityContext:\n            runAsUser: 2023\n            runAsGroup: 2023\n            allowPrivilegeEscalation: false\n            capabilities:\n              drop: [\"all\"]\n            seccompProfile:\n              type: RuntimeDefault\n            readOnlyRootFilesystem: true\n"
  },
  {
    "path": "gpudirect-tcpx/tcpx-metrics-server.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: tcpx-metrics-server\n  namespace: kube-system\n  labels:\n    k8s-app: tcpx-metrics-server\nspec:\n  selector:\n    matchLabels:\n      k8s-app: tcpx-metrics-server\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: tcpx-metrics-server\n        k8s-app: tcpx-metrics-server\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      containers:\n        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpx-metrics:latest\n          name: tcpx-metrics-server\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            capabilities:\n              add:\n                - NET_ADMIN\n          env:\n            - name: POD_NAMESPACE\n              valueFrom:\n                fieldRef:\n                  fieldPath: metadata.namespace\n            - name: POD_NAME\n              valueFrom:\n                fieldRef:\n                  fieldPath: metadata.name\n            - name: NODE_NAME\n              valueFrom:\n                fieldRef:\n                  fieldPath: spec.nodeName\n            - name: CLOUD_MONITORING_ENDPOINT\n              value: \"monitoring.googleapis.com:443\"\n            - name: CONTAINER_NAME\n              value: \"tcpx-metrics-server\"\n              \n"
  },
  {
    "path": "gpudirect-tcpxo/README.md",
    "content": "# GPUDirect-TCPXO Release Notes\nThis release notes updates support for the following GPUDirect-TCPXO components: GKE version, NCCl plugin installer, TCPXO-daemon.\n\nFor new users, refer [Maximize GPU network bandwidth in Standard mode clusters](https://cloud.google.com/kubernetes-engine/docs/how-to/gpu-bandwidth-gpudirect-tcpx) to setup GPUDirect-TCPXO enabled GKE clusters. This guide always installs the latest versions of GPUDirect-TCPXO components.\n\nFor existing users, use this release notes to update your cluster with latest versions of GPUDirect-TCPXO components.\n\nFor best practices, refer to [Best practice to run workload with GPUDirect-TCPX(O)](./best-practice.md).\n\n## How to upgrade to a new release\n#### Recommended GKE versions:\n- When you want to upgrade NCCL plugin installer image and TCPXO-daemon image, it is not a hard requirement to upgrade your GKE cluster and GKE node to the recommended GKE version. But recommended GKE versions have the best guarantee for compatibility.\n- To upgrade GKE versions, refer to [Manually upgrading a cluster or node pool](https://cloud.google.com/kubernetes-engine/docs/how-to/upgrading-a-cluster) for general guides.\n#### NCCL plugin installer image:\n- Directly run `kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/nccl-tcpxo-installer.yaml` to get your nccl-tcpxo-installer daemonset updated. This manifest is always updated to use the latest NCCL plugin installer. The daemonset by default uses rolling upgrade strategies, and the upgrade process will be slow for a big nodepool. Consider delete the old daemonset and create a new one to accelerate the progress.\n- Upgrading your NCCL plugin installer version does **NOT** need any VM recreation or reboot. However, pods running within the same workload need to use the same version of the NCCL plugin. Please ensure no workloads are being scheduled/running when applying this upgrade. Otherwise, pods within the same workload may have different NCCL plugin versions installed.\n- This upgrade will upgrade the NCCL plugin version for **ALL** A3 Mega nodes in the cluster. If you only want to upgrade a specific nodepool, please update the [nodeSelector](https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/gpudirect-tcpxo/nccl-tcpxo-installer.yaml#L25-L29) before deploying the NCCL plugin installer manifest.\n#### TCPXO-daemon image:\n- Update your tcpxo-daemon with the new image when deploying your application.\n- The tcpxo-daemon version is coupled with the NCCL plugin installer version. Please ensure your NCCL plugin installer version is upgraded before applying this tcpxo-daemon version upgrade to your applications.\n#### Compatible NCCL version:\n- The NCCL plugin installer includes NCCL core as well and it is recommended to use this NCCL core.\n- If you need to use the open-source NCCL core, please use the compatible NCCL version for best performance.\n- To use open-source nccl core, update the following environment variables from `LD_LIBRARY_PATH=\\\"/usr/local/nvidia/lib64\\\"` to `LD_LIBRARY_PATH=\\\"${YOUR_OPEN_SOURCE_NCCL_CORE_PATH}:/usr/local/nvidia/lib64\\\"`\n#### NCCL configs:\n- NCCL configs are required for using GPUDirect-TCPX(O) feature. When deploying your workloads that use NCCL, set them as environment variables.\n- Optionally, you can set all the configurations at once by following these steps:\n  - Add the following key-value pair as an environment variable in your workload container manifest:\n  ```\n  NCCL_LIB_DIR=\"/usr/local/nvidia/lib64\"\n  ```\n  - Ensure the `nccl-env-profile.sh` script is executed when your workload container starts. For example, you can do this in your Pod specification by overriding the container's command to include the following:\n  ```\n  source ${NCCL_LIB_DIR}/nccl-env-profile.sh\n  ```\n\n\n\n## Releases\n- [Jan 9, 2026](./README.md#jan-9-2026)\n- [Nov 19, 2025](./README.md#nov-19-2025)\n- [Aug 21, 2025](./README.md#aug-21-2025)\n- [Jun 27, 2025](./README.md#jun-27-2025)\n- [May 01, 2025](./README.md#may-01-2025)\n- [Feb 27, 2025](./README.md#feb-27-2025)\n- [Feb 06, 2025](./README.md#feb-06-2025)\n- [Nov 27, 2024](./README.md#nov-27-2024)\n- [Oct 18, 2024](./README.md#oct-18-2024)\n- [Sept 19, 2024](./README.md#sept-19-2024)\n- [Sept 06, 2024](./README.md#sept-06-2024)\n- [Aug 06, 2024](./README.md#aug-06-2024)\n- [Jun 27, 2024](./README.md#jun-27-2024)\n- [May 30, 2024](./README.md#may-30-2024)\n- [May 20, 2024](./README.md#may-20-2024)\n- [Apr 17, 2024](./README.md#apr-17-2024)\n\n## Jan 9, 2026\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n```\n#### Compatible NCCL version:\n```\nDefault NCCl version: nccl-2.28, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.28.7-1\n```\n#### NCCL configs:\n```\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_PROTO=Simple,LL128\",\n\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/tcpxo/lib64/a3plus_tuner_config.textproto\",\n# Please replace `/usr/local/tcpxo/lib64/` as the NCCL lib directory installd inside the workload container,\n# the mounted library path are controlled in nccl installer destination, link. \n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/tcpxo/lib64/a3plus_guest_config.textproto\",\n# Please replace `/usr/local/tcpxo/lib64/` as the NCCL lib directory installed inside the workload container.\n# the mounted library path are controlled in nccl installer destination, link.\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NVLSTREE_MAX_CHUNKSIZE=131072\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=1\"\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new with in release:\n* Add official support for Rocky Linux\n  * See the official A3 Mega documentation [found here](https://docs.cloud.google.com/compute/docs/gpus/gpudirect) for more information and instructions for deploying TCPXO on Rocky Linux\n* The TCPXO Prober has now been open sourced. It can be found on [Github](https://github.com/google/nccl-plugin-gpudirect-tcpxo/tree/master/tcpxo_prober).\n\n## Nov 19, 2025\n\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.14\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.20\n```\n#### Compatible NCCL version:\n```\nDefault NCCl version: nccl-2.28, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.28.7-1\n```\n#### NCCL configs:\n```\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_PROTO=Simple,LL128\",\n\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/tcpxo/lib64/a3plus_tuner_config.textproto\",\n# Please replace `/usr/local/tcpxo/lib64/` as the NCCL lib directory installd inside the workload container,\n# the mounted library path are controlled in nccl installer destination, link. \n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/tcpxo/lib64/a3plus_guest_config.textproto\",\n# Please replace `/usr/local/tcpxo/lib64/` as the NCCL lib directory installed inside the workload container.\n# the mounted library path are controlled in nccl installer destination, link.\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NVLSTREE_MAX_CHUNKSIZE=131072\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=1\"\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new with in release:\n* Retired the flag in the RxDM container, `num_nics`. Specifying this flag will not cause an error, but it no longer has any effect. \n* Added a script to process output of GPUViz to the NCCL plugin docker image.\n\n## Aug 21, 2025\n\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.12\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.18\n```\n#### Compatible NCCL version:\n```\nDefault NCCl version: nccl-2.26, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.26.5\n```\n#### NCCL configs:\n```\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_PROTO=Simple,LL128\",\n\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installed inside the workload container,\n# the mounted library path are controlled in nccl installer destination, link.\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installed inside the workload container.\n# the mounted library path are controlled in nccl installer destination, link.\n\"NCCL_NVLSTREE_MAX_CHUNKSIZE=131072\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_DEBUG=WARN\",\n```\n#### What is new with in release:\n* This release coincides with the open-source release of GPUDirect-TCPXO: [https://github.com/google/nccl-plugin-gpudirect-tcpxo](https://github.com/google/nccl-plugin-gpudirect-tcpxo)\n  * The docker images provided are built from the open-source versions of RxDM and the NCCL network plugin.\n  * These open-source based image are **drop-in** **replacements** for the previous closed-source releases.\n* The open-source version of the RxDM image obsoletes two arguments.\n  * Previous:\n\n    ```\n    --num_hops=2 --num_nics=8  --uid= --alsologtostderr\n    ```\n\n  * Current:\n\n    ```\n    --num_hops=2 --num_nics=8\n    ```\n\n    Please update your deployments to reflect these changes.\n\n* This release now incorporates `NVLSTree` into the default configuration for the environment setup.\n  * This follows from the Jun 27, 2025 release where we provided NVLSTree as an option.\n  * For convenience and ease of transitioning, symlinks are still provided to the `_ll128` and `_nvlstree` profiles. Both of these are symlinks to the default profile.\n  * The default `nccl-env-profile.sh` now sets:\n\n    ```\n    # This has been added, and must be set in your deployments:\n    NCCL_NVLSTREE_MAX_CHUNKSIZE=131072\n    # The following have been removed:\n    # NCCL_NVLS_ENABLE=0\n    # NCCL_ALGO=Ring,Tree\n    ```\n\n  * The guest config checker **will enforce** that `NCCL_NVLSTREE_MAX_CHUNKSIZE` is set to this value and will abort any workload where it is not set.\n  * The presence of `NCCL_NVLS_ENABLE` or `NCCL_ALGO` will only be flagged as unexpected environment variables.\n    * Moving forward, we recommend that `NCCL_ALGO` remains unset to allow NCCL core and the tuner plugin to select the most appropriate algorithm.\n* If you do not wish to use NVLSTree nor LL128, you may use the `simple` profile (`nccl-env-profile-simple.sh`).\n  * This profiles does not enable LL128 nor NVLSTree, and uses a tuner config (`a3plus_tuner_config_simple.textproto`) and guest config (`a3plus_guest_config_simple.textproto`) that work with them disabled..\n\n## Jun 27, 2025\n\n#### Important Note:\nStarting from this release - [May 01, 2025](./README.md#may-01-2025), workloads have the following requirements:\n```\nglibc version 2.35 or higher\nUbuntu version 22.04 or higher\nDebian version Debian 12 or higher\n```\n\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.11\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.17\n```\n#### Compatible NCCL version:\n```\ndefault NCCl version: nccl-2.23, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.23.4 \n```\n#### NCCL configs:\n```\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple,LL128\",\n\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installd inside the workload container,\n# the mounted library path are controlled in nccl installer destination, link. \n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installed inside the workload container.\n# the mounted library path are controlled in nccl installer destination, link.\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n\"NCCL_DEBUG=WARN\",\n```\n#### What is new with in release:\n* This release adds support for NCCL NVLSTree Algorithm, which enables intra-node communication with NVLS Algorithm and inter-node communication with Tree Algorithm.\n  * For Hypercomputing customers, NVLSTree may require host machine upgrades to reach optimal performance. Reach out to your customer service representative for more details.\n  * To enable NVLSTree, please use: `nccl-env-profile-nvlstree.sh` instead of the default `nccl-env-profile.sh`, which will achieve the following environment setup:\n  ```\n  \"NCCL_FASTRAK_CTRL_DEV=eth0\",\n  \"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n  \"NCCL_SOCKET_IFNAME=eth0\",\n  \"NCCL_CROSS_NIC=0\",\n  \"NCCL_PROTO=Simple,LL128\",\n  \"NCCL_MIN_NCHANNELS=4\",\n  \"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n  \"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config_nvlstree.textproto\",\n  \"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config_nvlstree.textproto\",\n  \"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\"\n  \"NCCL_NVLSTREE_MAX_CHUNKSIZE=131072\"\n  \"NCCL_P2P_NET_CHUNKSIZE=524288\",\n  \"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n  \"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n  \"NCCL_FASTRAK_NUM_FLOWS=2\",\n  \"NCCL_FASTRAK_USE_SNAP=1\",\n  \"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n  \"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n  \"NCCL_BUFFSIZE=8388608\",\n  \"NCCL_NET_GDR_LEVEL=PIX\",\n  \"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n  \"NCCL_FASTRAK_USE_LLCM=1\",\n  \"NCCL_DEBUG=WARN\",\n  \"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n  ```\n\n\n## May 01, 2025\n\n#### Important Note:\nStarting from this release, workloads have the following requirements:\n```\nglibc version 2.35 or higher\nUbuntu version 22.04 or higher\nDebian version Debian 12 or higher\n```\n\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.9-1\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.15 \n```\n#### Compatible NCCL version:\n```\ndefault NCCl version: nccl-2.23, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.21.5-2.23.4 \n```\n#### NCCL configs:\n```\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple,LL128\",\n\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installd inside the workload container,\n# the mounted library path are controlled in nccl installer destination, link. \n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n# Please replace `/usr/local/nvidia/lib64/` as the NCCL lib directory installed inside the workload container.\n# the mounted library path are controlled in nccl installer destination, link.\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n\"NCCL_DEBUG=WARN\",\n```\n#### What is new with in release:\n* Following the release of v1.0.8 which introduced support for NCCL LL128, this release now makes LL128 the default tuning parameter. About NCCL LL128, check [Best practice to run workload with GPUDirect-TCPX(O)](./best-practice.md) for more details.\n  * This change has been reflected in the provided `nccl-env-profile.sh`.\n  * The new default profile sets the following environment variables:\n  ```\n  NCCL_PROTO=Simple,LL128\n  NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\n  NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\n  ```\n* Note that the default tuner configuration file (`a3plus_tuner_config.textproto`) and the config checker configuration file (`a3plus_guest_config.textproto`) expect `NCCL_PROTO=Simple,LL128` to be set.\n  * To disable LL128, please source `nccl-env-profile-simple.sh` instead.\n  * `nccl-env-profile-simple.sh ` links configuration files which do not leverage LL128 (`a3plus_tuner_config_simple.textproto` and `a3plus_guest_config_simple.textproto`)\n* For convenience and ease of use, the following LL128 specific files from the previous release exist as symbolic links\n  ```\n  nccl-env-profile-ll128.sh\n  a3plus_tuner_config_ll128.textproto\n  a3plus_guest_config_ll128.textproto\n  ```\n\n## Feb 27, 2025\n#### GKE 1.32 starts to support TCPXO:\n```\nFor 1.32 >= 1.31.2-gke.1489001\n```\n## Feb 06, 2025\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.8-1\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.14\n```\n#### Compatible NCCL version:\n```\ndefault NCCl version: nccl-2.23, which is provided by the NCCL plugin installer\nqualified and supported: NCCL 2.21.5-2.23.4 \n```\n#### NCCL configs:\n```\n## required nccl configs.\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n## recommended nccl configs, to log NCCL errors\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new with in release:\n* Support NCCL LL128 for small-medium sized collective performance improvements, including optimized NCCL tuning profile and updated guest configuration profiles. Refer to [Best practice to run workload with GPUDirect-TCPX(O)](./best-practice.md) for more details.\n* Qualified a wider range of NCCL core version.\n\n## Nov 27, 2024\n#### Recommended GKE version:\n```\nFor 1.28 >= 1.28.11-gke.1289000\nFor 1.29 >= 1.29.6-gke.1254000 \nFor 1.30 >= 1.30.4-gke.1348000\nStarts to support 1.31, for 1.31 >= 1.31.1-gke.2008000\n```\n#### NCCL plugin installer image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.7\n```\n#### TCPXO-daemon image:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.13_1\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n## required nccl configs.\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n## recommended nccl configs, to log NCCL errors\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new with in release:\n* All RxDM logs are now recorded in `/tmp/mtest_fastrak_gpumem_manager.INFO` with log rotation every 10 MB per file.\n* Properly handle `SIGTERM` passed into RxDM container and terminate RxDM immediately.\n* A critical fix which prevents the FasTrak stack to run out of BAR address space when running large scale workloads.\n* An SCTP timeout increase which improves stability of the FasTrak stack in large scale workloads.\n\n## Oct 18, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.11-gke.1289000\nFor 1.29 >= 1.29.6-gke.1254000\nFor 1.30 >= 1.30.4-gke.1348000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.6\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.12\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n## required nccl configs.\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n## recommended nccl configs, to log NCCL errors\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new with in release:\n* tcpxo-daemon resiliency improvements\n\n## Sept 19, 2024\n#### Compatible GKE versions:\n```\nFor 1.28 >= 1.28.11-gke.1289000\nFor 1.29 >= 1.29.6-gke.1254000\nFor 1.30 >= 1.30.4-gke.1129000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.5\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.11\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n## required\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n## recommended, to log NCCL errors\n\"NCCL_DEBUG=WARN\",\n\"NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH\"\n```\n#### What is new in this release:\n* We recommend users to set the following NCCL debug related params to enable WARN logging level for better debuggability:\n`NCCL_DEBUG=WARN`,\n`NCCL_DEBUG_SUBSYS=INIT,NET,ENV,COLL,GRAPH`. Note: This setting might have some performance impact on certain workload, and might also increase log volume in failure cases.\n* GKE startup probe support for the TCPXO-daemon. Refer to [Best practice to run workload with GPUDirect-TCPX(O)](./best-practice.md) for more details.\n\n\n## Sept 06, 2024\n#### GKE 1.30 starts to support TCPXO:\n```\nFor 1.30 >= 1.30.4-gke.1129000\n```\n\n## Aug 06, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.11-gke.1289000\nFor 1.29 >= 1.29.6-gke.1254000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.4\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.10\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n```\n#### What is new in this release:\n* Report `ncclSystemError` instead of `ncclInternalError` to NCCL core when TCPXO software stack encounters errors for network operations.\n\n## Jun 27, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.10-gke.1141000\nFor 1.29 >= 1.29.5-gke.1121000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.3\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.09\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n```\n### What is new in this release:\n* Add `NCCL_TUNER_CONFIG_PATH` config path validation. No-existing config file path will abort the workload process during startup.\n* Add `--enforce_kernel_ipv6_support=false` as the default setting into the TCPXO-daemon startup script.\n* A new demo script for 2 node NCCL allgather test.\n\n## May 30, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.9-gke.1289000\nFor 1.29 >= 1.29.4-gke.1670000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.2\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.8\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n```\n#### What is new in this release:  \n* Two additional environment variables are configured for validation and stability:\n`NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=/usr/local/nvidia/lib64/a3plus_guest_config.textproto`,\n`NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS=600000`\n\n## May 20, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.9-gke.1289000\nFor 1.29 >= 1.29.4-gke.1670000\n```\n#### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.1\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.8\n```\n#### Compatible NCCL version:\n```\nnccl-2.21.5\n```\n#### NCCL configs:\n```\n\"LD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\",\n\"NCCL_FASTRAK_CTRL_DEV=eth0\",\n\"NCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\",\n\"NCCL_SOCKET_IFNAME=eth0\",\n\"NCCL_CROSS_NIC=0\",\n\"NCCL_ALGO=Ring,Tree\",\n\"NCCL_PROTO=Simple\",\n\"NCCL_MIN_NCHANNELS=4\",\n\"NCCL_TUNER_PLUGIN=libnccl-tuner.so\",\n\"NCCL_DYNAMIC_CHUNK_SIZE=524288\",\n\"NCCL_P2P_NET_CHUNKSIZE=524288\",\n\"NCCL_P2P_PCI_CHUNKSIZE=524288\",\n\"NCCL_P2P_NVL_CHUNKSIZE=1048576\",\n\"NCCL_FASTRAK_NUM_FLOWS=2\",\n\"NCCL_FASTRAK_USE_SNAP=1\",\n\"NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\",\n\"NCCL_BUFFSIZE=8388608\",\n\"CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\",\n\"NCCL_NET_GDR_LEVEL=PIX\",\n\"NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\",\n\"NCCL_FASTRAK_USE_LLCM=1\",\n\"NCCL_NVLS_ENABLE=0\"\n```\n#### What is new in this release:\n* Releases tuner plugin for algorithm tuning. Please specify `NCCL_TUNER_PLUGIN=libnccl-tuner.so` and `NCCL_TUNER_CONFIG_PATH=/usr/local/nvidia/lib64/a3plus_tuner_config.textproto` to enable the tuner plugin; to opt-out, please specify `NCCL_TUNER_PLUGIN=UNUSED`.\n* Releases NCCL and NCCL net plugin built with Cuda `12.2`.\n* Releases NCCL core with NCCL `2.21`.\n* Release `NCCL_FASTRAK_DUMP_COMM_STATS` to control the stats dump upon communicator teardown, by default the comm stats will be printed, to opt-out, please set `NCCL_FASTRAK_DUMP_COMM_STATS=0`.\n* Release various bug fixes.\n\n## Apr 17, 2024\n#### Recommended GKE versions:\n```\nFor 1.28 >= 1.28.8-gke.1095000\nFor 1.29 >= 1.29.3-gke.1093000\n```\n### NCCL plugin installer image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.0\n```\n#### TCPXO-daemon image: \n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.6-sctp\n```\n#### NCCL configs:\n```\nLD_LIBRARY_PATH=\\\"${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64\\\"\nNCCL_FASTRAK_CTRL_DEV=eth0\nNCCL_FASTRAK_IFNAME=eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8\nNCCL_SOCKET_IFNAME=eth0\nNCCL_CROSS_NIC=0\nNCCL_ALGO=Ring\nNCCL_PROTO=Simple\nNCCL_MIN_NCHANNELS=4\nNCCL_DYNAMIC_CHUNK_SIZE=524288\nNCCL_P2P_NET_CHUNKSIZE=524288\nNCCL_P2P_PCI_CHUNKSIZE=524288\nNCCL_P2P_NVL_CHUNKSIZE=1048576\nNCCL_FASTRAK_NUM_FLOWS=2\nNCCL_FASTRAK_USE_SNAP=1\nNCCL_FASTRAK_ENABLE_CONTROL_CHANNEL=0\nNCCL_BUFFSIZE=8388608\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\nNCCL_NET_GDR_LEVEL=PIX\nNCCL_FASTRAK_ENABLE_HOTPATH_LOGGING=0\nNCCL_FASTRAK_USE_LLCM=1\n```\n"
  },
  {
    "path": "gpudirect-tcpxo/best-practice.md",
    "content": "# Best practice to run workload with GPUDirect-TCPX(O)\n* [Automatic Sidecar Termination](./best-practice.md#automatic-sidecar-termination)\n* [Use NVLSTree and LL128 (Default)](./best-practice.md#use-nvlstree-and-ll128)\n* [Setup Startup Probe for the TCPXO-daemon Sidecar](./best-practice.md#setup-startup-probe-for-the-tcpxo-daemon-sidecar)\n* [Topology awareness scheduling](./best-practice.md#topology-awareness-scheduling)\n\n## Automatic Sidecar Termination\nThe current TCPX(O) setup requires both the tcpxo-daemon and main application run in the same Pod, because these two containers need to use the same network namespace when `hostNetwork:false`. As the example in https://cloud.google.com/kubernetes-engine/docs/how-to/gpu-bandwidth-gpudirect-tcpx shows, we commonly put them as containers under the same Pod. The problem with this workaround is the tcpxo-daemon doesn’t keep the same lifecycle as the main application container. The tcpxo-daemon will keep running even if the main application container completes the work, blocking the Job/Pod to complete.\n\nWe leverage the [Sidecar Containers](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/) feature in kubernetes to resolve this problem. This feature is by default enabled in **GKE versions minor version 1.29 and later**.\n\n<table>\n<tr>\n<th> Before </th>\n<th> After </th>\n</tr>\n<tr>\n<td>\n\n```\napiVersion: v1\nkind: Pod\nmetadata:\n  name: a3-mega-workloads\n  annotations:\n...\n  containers:\n    - name: tcpxo-daemon\n    - name: main-application-container\n  volumes:\n....\n\n```\n\n</td>\n<td>\n\n```\napiVersion: v1\nkind: Pod\nmetadata:\n  name: a3-mega-workloads\n  annotations:\n  initContainers:\n    - name: tcpxo-daemon\n      restartPolicy: Always\n  containers:\n    - name: main-application-container\n  volumes:\n....\n\n```\n\n</td>\n</tr>\n</table>\n\nUsing the sidecar containers feature, the tcpxo-daemon is guaranteed to auto-terminate after the main application container completes. Reference: https://kccnceu2024.sched.com/event/1YeS0\n\n## Use NVLSTree and LL128\nFor TCPXO, NVLSTree and LL128 provide performance improvements to workloads for small and medium message sizes. For this reason, we have made the use of these two features part of our default configuration.\n\n- NVLSTree is an improved NCCL algorithm for all-reduce that provides improvements in performance for small msg sizes.\n- LL128 is a NCCL feature that gives non-trivial latency reductions for small-medium msg sizes.\n\nUse the default NCCL configs in your workload to enable these features: \n- Ensure the NCCL plugin installer image is in release >= Aug 21, 2025 in [GPUDirect-TCPXO release notes](./README.md), with this version or later:\n```\nus-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-\ndev:v1.0.12\n```\n- Set the following environment variable in your workload manifest:\n```\nNCCL_LIB_DIR=\"/usr/local/nvidia/lib64\"\n```\n- Configure your workload to execute the `nccl-env-profile.sh` script when the container starts. Set the following command in your workload manifest:\n```\nsource ${NCCL_LIB_DIR}/nccl-env-profile.sh\n```\n### Not using NVLSTree nor LL128\nFor users who prefer to not use LL128 nor NVLSTree, we have provided a environment profiles script without these features. The `nccl-env-profile-simple.sh` script has different values for the following environment variables compared to the `nccl-env-profile.sh` script:\n```\n# NCCL_NVLSTREE_MAX_CHUNKSIZE is removed\nNCCL_PROTO=Simple\nNCCL_NVLS_ENABLE=0\nNCCL_TUNER_CONFIG_PATH=${NCCL_LIB_DIR}/a3plus_tuner_config_simple.textproto\nNCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE=${NCCL_LIB_DIR}/a3plus_guest_config_simple.textproto\n```\n## Setup Startup Probe for the TCPXO-daemon Sidecar\nWhen TCPXO-daemon sidecar starts, it will execute an initialization process. If the container lands on a bad node(with host component issues), the TCPXO-daemon will not continue to work. Setup a [startup probe](https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#startup-probe) to fail the container earlier with such cases.\n\n- Add `HEALTH_CHECK_LOG_FILE` as an environment variable into your tcpxo-daemon container manifest. You can specify any file name you want as the value for this key, e.g. `/run/health-check`. Noted: the file name can't include a low line(e.g. `/run/health_check`).\n- If `HEALTH_CHECK_LOG_FILE` presents, once the TCPXO-daemon finishes the initialization (typically takes ~ 30s), it will create the corresponding file and add log `Buffer manager initialization completed`. Unsuccessful initialization will not create any file. \n- An example of startup probe:\n  ```\n      - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.8\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2 --num_nics=8\n      volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        - name: HEALTH_CHECK_LOG_FILE\n          value: /run/health-check\n      startupProbe:\n        initialDelaySeconds: 1\n        periodSeconds: 5\n        timeoutSeconds: 1\n        successThreshold: 1\n        failureThreshold: 6\n        exec:\n          command:\n            - cat\n            - /run/health-check\n  ```\n\n## Topology Awareness Scheduling\nIf you are using the compact placement when creating A3+ nodepool, you can set up topology awareness configuration to gain better network performance.\n\nPlease check [gke-topology-scheduler](https://github.com/GoogleCloudPlatform/container-engine-accelerators/tree/master/gke-topology-scheduler) on the external github for an example of how to take advantage of the performance boosts of this feature.\n\nIn our internal tests, setting topology awareness scheduling improves the performance by ~10% for 128 nodes all-gather test with  message size above 1MB.\n"
  },
  {
    "path": "gpudirect-tcpxo/cos-enable-kdump.yaml",
    "content": "# Copyright 2019 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     https://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Deploy this DaemonSet to enable kdump on the COS nodes with the\n# \"cloud.google.com/gke-kdump-enabled=true\" label.\n#\n# WARNING: Enabling kdump requires node reboot. Therefore, in order to avoid\n# disrupting your workloads, it is recommended to create a new node pool with\n# the \"cloud.google.com/gke-kdump-enabled=true\" label in your cluster,\n# deploy the DaemonSet to enable kdump in that node pool, and then migrate\n# your workloads to the new node pool.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: enable-kdump\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      name: enable-kdump\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: enable-kdump\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-80gb\n      tolerations:\n        - operator: \"Exists\"\n      volumes:\n        - name: host\n          hostPath:\n            path: /\n      initContainers:\n        - name: enable-kdump\n          image: ubuntu\n          command:\n            - /bin/bash\n            - -c\n            - |\n              function verify_base_image {\n                local id=\"$(grep \"^ID=\" /host/etc/os-release)\"\n                if [[ \"${id#*=}\" != \"cos\" ]]; then\n                  echo \"This kdump feature switch is designed to run on Container-Optimized OS only\"\n                  exit 0\n                fi\n              }\n              function check_kdump_feature {\n                chroot /host /usr/sbin/kdump_helper show\n              }\n              function enable_kdump_feature_and_reboot_if_needed {\n                chroot /host /usr/sbin/kdump_helper enable\n                local -r is_enabled=$(chroot /host /usr/sbin/kdump_helper show | grep \"kdump enabled\" | sed -rn \"s/kdump enabled: (.*)/\\1/p\")\n                local -r is_ready=$(chroot /host /usr/sbin/kdump_helper show | grep \"kdump ready\" | sed -rn \"s/kdump ready: (.*)/\\1/p\")\n                if [[ \"${is_enabled}\" == \"true\" && \"${is_ready}\" == \"false\" ]]; then\n                  echo \"kdump is enabled. Rebooting for it to take effect.\"\n                  chroot /host systemctl reboot\n                fi\n              }\n              verify_base_image\n              check_kdump_feature\n              enable_kdump_feature_and_reboot_if_needed\n          resources:\n            requests:\n              memory: 5Mi\n              cpu: 5m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: host\n              mountPath: /host\n      containers:\n        - image: gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\n          name: pause\n      nodeSelector:\n        \"gke-kdump-enabled\": \"true\"\n        \"cloud.google.com/gke-os-distribution\": \"cos\"\n"
  },
  {
    "path": "gpudirect-tcpxo/fix-hostname.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: fix-hostname\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      app: fix-hostname\n  template:\n    metadata:\n      labels:\n        app: fix-hostname\n    spec:\n      nodeSelector:\n        \"cloud.google.com/gke-gpu\": \"true\"\n      hostNetwork: true\n      containers:\n        - image: gcr.io/google-containers/pause:3.2\n          name: pause\n      initContainers:\n        - name: fix-hostname\n          image: ubuntu\n          env:\n            - name: NODE_NAME\n              valueFrom:\n                fieldRef:\n                  fieldPath: spec.nodeName\n          command:\n            - /bin/bash\n            - -c\n            - |\n              set -xeuo pipefail\n              hostname $(NODE_NAME)\n              cat << EOF > /host/etc/systemd/network/97-temp.network\n              [Match]\n              Name=eth* !eth0\n              \n              [Network]\n              DHCP=yes\n              IPv6AcceptRA=yes\n              \n              # non-eth0 modification\n              [DHCPv4]\n              RoutesToDNS=false\n              RoutesToNTP=false\n              \n              [DHCP]\n              UseMTU=true\n              UseDomains=true\n              \n              # non-eth0 modification\n              UseHostname=false\n              EOF\n              chroot /host networkctl reload\n              chroot /host networkctl status eth*\n              echo \"Success\"\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: host\n              mountPath: /host\n      tolerations:\n        - effect: NoExecute\n          operator: Exists\n        - effect: NoSchedule\n          operator: Exists\n      volumes:\n        - name: host\n          hostPath:\n            path: /\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-tcpxo-installer-autopilot.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpxo-installer\n  namespace: gpudirect-system\n  labels:\n    k8s-app: nccl-tcpxo-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-tcpxo-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-tcpxo-installer\n        k8s-app: nccl-tcpxo-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: In\n                values:\n                  - nvidia-h100-mega-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: var-lib\n          hostPath:\n            path: /var/lib\n        - name: tcpxo\n          hostPath:\n            path: /var/lib/tcpxo\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin\n      initContainers:\n        - image: \"ubuntu\"\n          name: pre-installation\n          resources:\n            limits:\n              cpu: 50m\n              memory: 64Mi\n              ephemeral-storage: 10Mi\n          securityContext:\n            privileged: true\n          command:\n            - nsenter\n            - -at\n            - '1'\n            - --\n            - sh\n            - -c\n            - |\n              /sbin/iptables -I INPUT -p tcp -m tcp -j ACCEPT && modprobe import-helper\n              sudo mkdir -p /dev/aperture_devices\n              while IFS= read -r line; do\n                BDF=$( echo \"$line\" | awk '{print $1}' );\n                target_aperture_path=\"/dev/aperture_devices/$BDF\"\n                host_aperture_device=$(readlink -f \"/sys/bus/pci/devices/$BDF\");\n                sudo mkdir -p $target_aperture_path;\n                sudo umount -R $target_aperture_path;\n                sudo mount --bind $host_aperture_device $target_aperture_path;\n              done < <(lspci -nn -D | grep '1ae0:0084')\n              if [ -d /dev/aperture_devices ]; then\n                  chmod -R a+r /dev/aperture_devices/\n                  chmod a+rw /dev/aperture_devices/*/resource*\n              fi\n        - name: nccl-tcpxo-installer\n          image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n          resources:\n            limits:\n              cpu: 50m\n              memory: 64Mi\n              ephemeral-storage: 10Mi\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: var-lib\n              mountPath: /var/lib\n            - name: library-dir-host\n              mountPath: /usr/local\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              chmod 755 /scripts/container_entry.sh\n              /scripts/container_entry.sh install --install-nccl\n              mkdir -p /usr/local/nvidia/lib64\n              cp -r /var/lib/tcpxo/lib64/. /usr/local/nvidia/lib64\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n          resources:\n            limits:\n              cpu: 50m\n              memory: 64Mi\n              ephemeral-storage: 10Mi\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-tcpxo-installer.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpxo-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nccl-tcpxo-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nccl-tcpxo-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nccl-tcpxo-installer\n        k8s-app: nccl-tcpxo-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-h100-mega-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: var-lib\n          hostPath:\n            path: /var/lib\n        - name: tcpxo\n          hostPath:\n            path: /var/lib/tcpxo\n        - name: library-dir-host\n          hostPath:\n            path: /home/kubernetes/bin\n      initContainers:\n        - image: \"ubuntu\"\n          name: pre-installation\n          securityContext:\n            privileged: true\n          command:\n            - nsenter\n            - -at\n            - '1'\n            - --\n            - sh\n            - -c\n            - |\n              /sbin/iptables -I INPUT -p tcp -m tcp -j ACCEPT && modprobe import-helper\n              sudo mkdir -p /dev/aperture_devices\n              while IFS= read -r line; do\n                BDF=$( echo \"$line\" | awk '{print $1}' );\n                target_aperture_path=\"/dev/aperture_devices/$BDF\"\n                host_aperture_device=$(readlink -f \"/sys/bus/pci/devices/$BDF\");\n                sudo mkdir -p $target_aperture_path;\n                sudo umount -R $target_aperture_path;\n                sudo mount --bind $host_aperture_device $target_aperture_path;\n              done < <(lspci -nn -D | grep '1ae0:0084')\n              if [ -d /dev/aperture_devices ]; then\n                  chmod -R a+r /dev/aperture_devices/\n                  chmod a+rw /dev/aperture_devices/*/resource*\n              fi\n        - name: nccl-tcpxo-installer\n          image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: var-lib\n              mountPath: /var/lib\n            - name: library-dir-host\n              mountPath: /usr/local\n          command: [\"/bin/sh\", \"-c\"]\n          args:\n            - |\n              set -ex\n              chmod 755 /scripts/container_entry.sh\n              /scripts/container_entry.sh install --install-nccl\n              mkdir -p /usr/local/nvidia/lib64\n              cp -r /var/lib/tcpxo/lib64/. /usr/local/nvidia/lib64\n              echo \"installation finishes\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-latest-autopilot.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h100-mega-80gb\n    cloud.google.com/gke-spot: \"true\"\n    cloud.google.com/gke-gpu-driver-version: latest\n    topology.kubernetes.io/zone: us-central1-c\n  hostname: host1\n  subdomain: nccl-host-1\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.17\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2 --num_nics=8 --enforce_kernel_ipv6_support=false\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          /scripts/run-nccl-fastrak.sh all_gather_perf \"${LD_LIBRARY_PATH}\" 8 eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8 1M 1G 3 2 10\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      volumeMounts:\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  nodeSelector:\n    cloud.google.com/gke-accelerator: nvidia-h100-mega-80gb\n    cloud.google.com/gke-spot: \"true\"\n    cloud.google.com/gke-gpu-driver-version: latest\n    topology.kubernetes.io/zone: us-central1-c\n  hostname: host2\n  subdomain: nccl-host-2\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.17\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2 --num_nics=8 --enforce_kernel_ipv6_support=false\n      securityContext:\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          /scripts/run-nccl-fastrak.sh all_gather_perf \"${LD_LIBRARY_PATH}\" 8 eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8 1M 1G 3 2 10\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      volumeMounts:\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-latest.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host1\n  subdomain: nccl-host-1\n  #  hostNetwork: true\n  #  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n        #        privileged: true\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      #      securityContext:\n      #        privileged: true\n      command:\n        - /bin/sh\n        - -c\n        - |\n          set -ex\n          chmod 755  /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        - name: NCCL_FASTRAK_LLCM_DEVICE_DIRECTORY\n          value: /dev/aperture_devices\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host2\n  subdomain: nccl-host-2\n  #  hostNetwork: true\n  #  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n        #        privileged: true\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      #      securityContext:\n      #        privileged: true\n      command:\n        - /bin/sh\n        - -c\n        - |\n          set -ex\n          chmod 755  /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        - name: NCCL_FASTRAK_LLCM_DEVICE_DIRECTORY\n          value: /dev/aperture_devices\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-unprivileged-without-hostnetwork.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host1\n  subdomain: nccl-host-1\n  #  hostNetwork: true\n  #  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n#        privileged: true\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n#      securityContext:\n#        privileged: true\n      command:\n        - /bin/sh\n        - -c\n        - |\n          set -ex\n          chmod 755  /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        - name: NCCL_FASTRAK_LLCM_DEVICE_DIRECTORY\n          value: /dev/aperture_devices\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n    tcpxo: daemon\n  annotations:\n    devices.gke.io/container.tcpxo-daemon: |+\n      - path: /dev/nvidia0\n      - path: /dev/nvidia1\n      - path: /dev/nvidia2\n      - path: /dev/nvidia3\n      - path: /dev/nvidia4\n      - path: /dev/nvidia5\n      - path: /dev/nvidia6\n      - path: /dev/nvidia7\n      - path: /dev/nvidiactl\n      - path: /dev/nvidia-uvm\n      - path: /dev/dmabuf_import_helper\n    networking.gke.io/default-interface: 'eth0'\n    networking.gke.io/interfaces: |\n      [\n        {\"interfaceName\":\"eth0\",\"network\":\"default\"},\n        {\"interfaceName\":\"eth1\",\"network\":\"vpc1\"},\n        {\"interfaceName\":\"eth2\",\"network\":\"vpc2\"},\n        {\"interfaceName\":\"eth3\",\"network\":\"vpc3\"},\n        {\"interfaceName\":\"eth4\",\"network\":\"vpc4\"},\n        {\"interfaceName\":\"eth5\",\"network\":\"vpc5\"},\n        {\"interfaceName\":\"eth6\",\"network\":\"vpc6\"},\n        {\"interfaceName\":\"eth7\",\"network\":\"vpc7\"},\n        {\"interfaceName\":\"eth8\",\"network\":\"vpc8\"}\n      ]\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host2\n  subdomain: nccl-host-2\n  #  hostNetwork: true\n  #  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n        #        privileged: true\n        capabilities:\n          add:\n            - NET_ADMIN\n            - NET_BIND_SERVICE\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: sys\n          mountPath: /hostsysfs\n        - name: proc-sys\n          mountPath: /hostprocsysfs\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n#      securityContext:\n#        privileged: true\n      command:\n        - /bin/sh\n        - -c\n        - |\n          set -ex\n          chmod 755  /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        - name: NCCL_FASTRAK_LLCM_DEVICE_DIRECTORY\n          value: /dev/aperture_devices\n      volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia/lib64\n        - name: shared-memory\n          mountPath: /dev/shm\n        - name: aperture-devices\n          mountPath: /dev/aperture_devices\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia\n      hostPath:\n        path: /home/kubernetes/bin/nvidia/lib64\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n    - name: sys\n      hostPath:\n        path: /sys\n    - name: proc-sys\n      hostPath:\n        path: /proc/sys\n    - name: aperture-devices\n      hostPath:\n        path: /dev/aperture_devices\n"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n---\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-2\nspec:\n  selector:\n    name: nccl-host-2\n  clusterIP: None\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-1\n  labels:\n    name: nccl-host-1\n    tcpxo: daemon \nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host1\n  subdomain: nccl-host-1\n  hostNetwork: true\n  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: shared-memory\n          mountPath: /dev/shm\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia-install-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nccl-test-host-2\n  labels:\n    name: nccl-host-2\n    tcpxo: daemon\nspec:\n  affinity:\n    podAntiAffinity:\n      requiredDuringSchedulingIgnoredDuringExecution:\n      - labelSelector:\n          matchExpressions:\n          - key: tcpxo\n            operator: In\n            values:\n            - daemon\n        topologyKey: \"kubernetes.io/hostname\"\n  hostname: host2\n  subdomain: nccl-host-2\n  hostNetwork: true\n  dnsPolicy: ClusterFirstWithHostNet\n  containers:\n    - name: tcpxo-daemon\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.21\n      imagePullPolicy: Always\n      command: [\"/bin/sh\", \"-c\"]\n      args:\n        - |\n          set -ex\n          chmod 755 /fts/entrypoint_rxdm_container.sh\n          /fts/entrypoint_rxdm_container.sh --num_hops=2\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n    - name: nccl-test\n      image: us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.15\n      imagePullPolicy: Always\n      command:\n        - /bin/sh\n        - -c\n        - |\n          cat >/scripts/allgather.sh <<EOF\n          #!/bin/bash\n          /scripts/init_ssh.sh \\${@};\n          pushd /scripts;\n          /scripts/gen_hostfiles.sh \\${@};\n          popd;\n          BENCHMARK=all_gather_perf NHOSTS=2 NCCL_LIB_DIR=\"${LD_LIBRARY_PATH}\" LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}\" /scripts/demo-run-nccl-test-tcpxo-via-mpi.sh\n          EOF\n          chmod +x /scripts/allgather.sh\n          service ssh restart;\n          sleep infinity;\n      env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n      securityContext:\n        privileged: true\n      volumeMounts:\n        - name: shared-memory\n          mountPath: /dev/shm\n      resources:\n        limits:\n          nvidia.com/gpu: 8\n  volumes:\n    - name: nvidia-install-dir-host\n      hostPath:\n        path: /home/kubernetes/bin/nvidia\n    - name: shared-memory\n      emptyDir:\n        medium: \"Memory\"\n        sizeLimit: 1Gi\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/README.md",
    "content": "## Overview\n\nThis document gives instructions on how to enable topology in GKE clusters.\n\nThe general outline for this to be successful is:\n- We add labels for topology to nodes in the cluster with a daemonset\n- We handle pod scheduling with a scheduling daemon\n- Pods with the added scheduleGate are picked up and scheduled\n\n## Prerequisites\n\nFor topology awareness to be enabled, a GKE node pool has to be created with\ncompact placement. Specifically, the `physical_host` arrtibute\n[ref](https://cloud.google.com/compute/docs/instances/use-compact-placement-policies#verify-vm-location)\nshould be present for each GPU node in the cluster.\n\n## Configuration\n\nTo initialize Kubernetes authentication for scripts:\n\n```gcloud container clusters get-credentials [cluster name] --zone [cluster zone] --project [project id]```\n\n## Usage\n\nFirst copy this folder locally\n\nNext create config maps for scripts required by pods\n\n-   Run `kubectl create configmap topology-scheduler-scripts --namespace\n    kube-system --from-file=schedule-daemon.py=schedule-daemon.py\n    --from-file=label-nodes-daemon.py=label-nodes-daemon.py`\n\nNext apply the service account config to the cluster:\n\n-   Apply `service-account.yaml` config to the cluster by running `kubectl apply\n    -f service-account.yaml`.\n\nNow apply the scheduling and label daemons to the cluster so that pods will\nautomatically be scheduled with the correct schedulingGates\n\n-   Apply `label-nodes-daemon.yaml` daemonset to the cluster by running\n    `kubectl apply -f label-nodes-daemon.yaml`.\n-   Apply `schedule-daemon.yaml` daemonset to the cluster by running `kubectl\n    apply -f schedule-daemon.yaml`.\n\nTo let the daemon \"pick up\" the workload for scheduling, simply add a\nschedulingGate that starts with ”gke.io/topology-aware-auto-”, for example:\n```\n  schedulingGates:\n  - name: \"gke.io/topology-aware-auto-my-job-name\"\n```\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.py",
    "content": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport time\n\nfrom kubernetes import client\nfrom kubernetes import config\nimport requests\n\n\ndef update_node_labels(kube):\n  \"\"\"Updates Kubernetes node labels based on GCE VM metadata.\"\"\"\n  node_name_url = \"http://metadata.google.internal/computeMetadata/v1/instance/name\"\n  metadata_url = \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host\"\n  headers = {\"Metadata-Flavor\": \"Google\"}\n\n  response = requests.get(node_name_url, headers=headers)\n\n  if response.status_code == 200:\n    node_name = response.text\n  else:\n    print(\"Node name not found\")\n    return\n\n  response = requests.get(metadata_url, headers=headers)\n\n  if response.status_code == 200:\n    physical_host = response.text\n  else:\n    print(\"physical host not found\")\n    return\n\n  cluster, rack, host = physical_host.split(\"/\")[1:]\n\n  node_labels = {\n      \"topology.gke.io/cluster\": cluster,\n      \"topology.gke.io/rack\": rack,\n      \"topology.gke.io/host\": host,\n  }\n\n  kube.patch_node(node_name, {\"metadata\": {\"labels\": node_labels}})\n  print(f\"Updated labels on node {node_name}: {node_labels}\")\n\n\nif __name__ == \"__main__\":\n  # Kubernetes configuration\n  config.load_incluster_config()\n  kube = client.CoreV1Api()\n\n  while True:\n    print(\"Starting node update\")\n    # Update node labels\n    update_node_labels(kube)\n    time.sleep(600)\n\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: label-nodes-daemon\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      name: label-nodes-daemon\n  template:\n    metadata:\n      labels:\n        name: label-nodes-daemon\n    spec:\n      tolerations:\n      - operator: \"Exists\"\n        key: nvidia.com/gpu\n      hostNetwork: true\n      containers:\n        - name: label-nodes-daemon\n          image: python:3.9\n          command:\n          - bash\n          - -c\n          - |\n            pip install kubernetes\n            python -u /scripts/label-nodes-daemon.py\n          volumeMounts:\n            - name: scripts-volume\n              mountPath: /scripts\n      volumes:\n        - name: scripts-volume\n          configMap:\n            name: topology-scheduler-scripts\n      serviceAccount: topology-scheduler\n\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/schedule-daemon.py",
    "content": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport argparse\nfrom itertools import groupby\nimport time\nimport kubernetes\nimport kubernetes.client\nfrom kubernetes.client.rest import ApiException\nfrom kubernetes.utils.quantity import parse_quantity\n\n\ndef split_pods_based_on_jobs(pods):\n  \"\"\"Splits pending pods into groups based on jobs.\"\"\"\n  return [\n      list(job_group)\n      for _, job_group in groupby(pods, lambda pod: pod.get('job_name'))\n  ]\n\n\ndef sort_jobs_by_time(job):\n  \"\"\"Return the key to be used for sorting jobs which is by creation time.\"\"\"\n  # All the pods in the job should have the same creation time.\n  return job[0].get('creation_time')\n\n\ndef pod_sorting_key(pod):\n  \"\"\"Returns key to be used for sorting pods.\n  Given that numbers is often suffixed for multi-node deployments,\n  here we use a (prefix, number) tuple for the sorting key.\n  This means \"xxx-pod2\" should appear before \"xxx-pod10\"\n  \"\"\"\n\n  if pod['index'] is not None:\n    return int(pod['index'])\n\n  # if the suffix is a number, extract it\n  idx = 0\n  suffix = \"\"\n  name = pod['name']\n  while name[-1 - len(suffix)].isdigit():\n    suffix = name[-1 - len(suffix)] + suffix\n\n  if suffix != \"\":\n    idx = int(suffix)\n\n  return (name[:len(name) - len(suffix)], idx)\n\n\ndef node_topology_distance(node1, node2):\n  node1_key = node_topology_key(node1)\n  node2_key = node_topology_key(node2)\n  result = 1000000\n  for i in range(len(node1_key)):\n    if node1_key[i] != node2_key[i]:\n      return result\n    result /= 100\n  return 0\n\n\ndef node_topology_key(node):\n  \"\"\"Builds a key to be used to sort nodes.\"\"\"\n  node_labels = node['node_labels']\n\n  if (\n      'cloud.google.com/gke-placement-group' in node_labels\n      and 'topology.gke.io/cluster' in node_labels\n      and 'topology.gke.io/rack' in node_labels\n      and 'topology.gke.io/host' in node_labels\n  ):\n    return (\n        node_labels['cloud.google.com/gke-placement-group'],\n        node_labels['topology.gke.io/cluster'],\n        node_labels['topology.gke.io/rack'],\n        node_labels['topology.gke.io/host'],\n    )\n\n  return ()\n\n\ndef get_pod_used_resources(pod):\n  \"\"\"Get the resources used by this pod\"\"\"\n  used_cpu = 0\n  used_memory = 0\n  used_gpu = 0\n  if pod.status is None or pod.status.container_statuses is None:\n    return used_cpu, used_memory, used_gpu\n  for container, container_status in zip(pod.spec.containers, pod.status.container_statuses):\n    if container_status.state.terminated is not None:\n      # terminated pods don't use resources\n      continue\n    requests = container.resources.requests or {}\n    used_cpu += parse_quantity(requests.get('cpu', 0))\n    used_memory += parse_quantity(requests.get('memory', 0))\n    used_gpu += int(requests.get('nvidia.com/gpu', 0))\n  return used_cpu, used_memory, used_gpu\n\n\ndef get_pods_taint_toleration(pods):\n  \"\"\"Get the taint tolerations of the pods.\n  For simplicity, we assume that the pods are homogeneous and\n  all have the same tolerations.\n  \"\"\"\n  ts = None\n  for pod in pods:\n    tolerations = pod['spec'].tolerations\n    if ts is None:\n      ts = tolerations\n    else:\n      assert(ts == tolerations)\n  return ts if ts is not None else []\n\n\ndef find_schedulable_nodes(nodes, pods, tolerated_taints):\n  \"\"\"Finds nodes that can be scheduled.\"\"\"\n  nodes_info = {}\n\n  if tolerated_taints is not None:\n    tolerated_taint_dict = {t.key: t for t in tolerated_taints}\n  else:\n    tolerated_taint_dict = {}\n\n  for node in nodes:\n    node_name = node.metadata.name\n    node_labels = node.metadata.labels\n\n    if 'cloud.google.com/gke-placement-group' not in node_labels:\n      print(\n          f'Skipping node {node_name} because it does not have topology'\n          ' metadata'\n      )\n      continue\n\n    skip_node = False\n    # check node taints\n    if node.spec.taints is not None:\n      for t in node.spec.taints:\n        if t.key not in tolerated_taint_dict:\n          print(f'Skipping node {node_name} because it is tainted with key {t.key}')\n          skip_node = True\n          break\n        else:\n          tol = tolerated_taint_dict[t.key]\n          if tol.operator == \"Equal\" and tol.value != t.value:\n            print(f'Skipping node {node_name} because it is tainted with key {t.key} with value {t.value}')\n            skip_node = True\n            break\n    # check node status\n    if any(condition.type == \"Ready\" and condition.status != \"True\" for condition in node.status.conditions):\n      print(f'Skipping node {node_name} because it is NotReady')\n      skip_node = True\n      break\n\n    if skip_node:\n      continue\n\n    allocatable = node.status.allocatable\n\n    used_cpu = 0\n    used_memory = 0\n    used_gpu = 0\n\n    for pod in pods:\n      if pod.spec.node_name == node_name:\n        cpu, mem, gpu = get_pod_used_resources(pod)\n        used_cpu += cpu\n        used_memory += mem\n        used_gpu += gpu\n\n    free_cpu = parse_quantity(allocatable['cpu']) - used_cpu\n    free_memory = parse_quantity(allocatable['memory']) - used_memory\n    free_gpu = int(allocatable.get('nvidia.com/gpu', 0)) - used_gpu\n\n    node_info = {\n        'name': node_name,\n        'cpu': free_cpu,\n        'memory': free_memory,\n        'gpu': free_gpu,\n        'node_labels': node_labels,\n    }\n    nodes_info[node_name] = node_info\n\n    print(\n        f'Node: {node_name}, CPU: {free_cpu}, Memory: {free_memory}, GPU:'\n        f' {free_gpu}, Topology: {node_topology_key(node_info)}'\n    )\n\n  return nodes_info\n\n\ndef find_pod_gates(pods, prefix):\n  \"\"\"Finds pods with scheduling gates that starts with the prefix\"\"\"\n  s = set()\n  for pod in pods:\n    if pod.spec.scheduling_gates:\n      for g in pod.spec.scheduling_gates:\n        if g.name.startswith(prefix):\n          s.add(g.name)\n  return s\n\n\ndef find_schedulable_pods(pods, gate_name):\n  \"\"\"Finds pods that can be scheduled.\"\"\"\n  pods_to_schedule = {}\n\n  for pod in pods:\n    if pod.spec.scheduling_gates:\n      gates = pod.spec.scheduling_gates\n      for gate in gates:\n        if gate.name == gate_name:\n          pod_name = pod.metadata.name\n          pod_namespace = pod.metadata.namespace\n\n          pod_index = None\n          job_name = None\n          if pod.metadata.labels is not None:\n            if (\n                'batch.kubernetes.io/job-completion-index'\n                in pod.metadata.labels\n            ):\n              pod_index = pod.metadata.labels[\n                  'batch.kubernetes.io/job-completion-index'\n              ]\n            else:\n              print('Unable to find index in metadata. Can not queue jobs')\n\n            if 'job-name' in pod.metadata.labels:\n              job_name = pod.metadata.labels['job-name']\n            else:\n              print('Unable to find job_name in metadata. Can not queue jobs')\n          else:\n            print('No labels on pod to extract job metadata from.')\n\n          creation_time = None\n          if pod.metadata.creation_timestamp is not None:\n            creation_time = pod.metadata.creation_timestamp\n          else:\n            print(\n                'Unable to find creation_time in metadata. Can not queue jobs'\n            )\n\n          used_cpu = 0\n          used_memory = 0\n          used_gpu = 0\n\n          for container in pod.spec.containers:\n            requests = container.resources.requests or {}\n            used_cpu += parse_quantity(requests.get('cpu', 0))\n            used_memory += parse_quantity(requests.get('memory', 0))\n            used_gpu += int(requests.get('nvidia.com/gpu', 0))\n\n          pods_to_schedule[pod_name] = {\n              'name': pod_name,\n              'namespace': pod_namespace,\n              'index': pod_index,\n              'cpu': used_cpu,\n              'memory': used_memory,\n              'gpu': used_gpu,\n              'node_selector': pod.spec.node_selector,\n              'spec': pod.spec,\n              'metadata': pod.metadata,\n              'job_name': job_name,\n              'creation_time': creation_time\n          }\n\n          print(\n              f'Found schedulable pod: {pod_namespace}/{pod_name}, CPU:'\n              f' {used_cpu}, Memory: {used_memory}, GPU: {used_gpu}'\n              f' Index: {pod_index}'\n          )\n\n  return pods_to_schedule\n\n\ndef can_schedule(node, pod):\n  \"\"\"Checks if a given pod can be scheduled on a given node.\"\"\"\n  node_selector = pod['node_selector']\n  node_labels = node['node_labels']\n\n  if node_selector:\n    for key, value in node_selector.items():\n      if key not in node_labels or node_labels[key] != value:\n        return False\n\n  return (\n      node['cpu'] >= pod['cpu']\n      and node['memory'] >= pod['memory']\n      and node['gpu'] >= pod['gpu']\n  )\n\n\ndef schedule_pod_on_node(v1, pod_name, pod_namespace, node, gate_name):\n  \"\"\"Schedules a pod on a given node.\"\"\"\n  try:\n    pod = v1.read_namespaced_pod(pod_name, pod_namespace)\n\n    if any(gate.name == gate_name for gate in pod.spec.scheduling_gates):\n      new_gates = [\n          gate for gate in pod.spec.scheduling_gates if gate.name != gate_name\n      ]\n      pod.spec.affinity = {\n          'nodeAffinity': {\n              'requiredDuringSchedulingIgnoredDuringExecution': {\n                  'nodeSelectorTerms': [{\n                      'matchExpressions': [{\n                          'key': 'kubernetes.io/hostname',\n                          'operator': 'In',\n                          'values': [node['name']],\n                      }]\n                  }]\n              }\n          }\n      }\n      pod.spec.scheduling_gates = new_gates\n\n      v1.replace_namespaced_pod(pod_name, pod_namespace, pod)\n\n      print(\n        'Pod %s/%s scheduled on %s with topology %s', pod_namespace, pod_name, node['name'], node_topology_key(node)\n      )\n  except ApiException as e:\n    print(f'Exception when removing scheduling gate: {e}')\n\n\ndef calculate_pods_assignment(sorted_nodes, sorted_pods):\n  \"\"\"Calculates the best assignment for pods.\"\"\"\n  assignment = [-i for i in reversed(range(1, len(sorted_pods) + 1))]\n  best_assignment = []\n  minimum_distance = 1000000000\n\n  while True:\n    all_ok = True\n    i = len(assignment) - 1\n    while i >= 0 and all_ok:\n      assignment[i] += 1\n      if assignment[i] == len(sorted_nodes):\n        break\n      if assignment[i] >= 0 and can_schedule(\n          sorted_nodes[assignment[i]], sorted_pods[i]\n      ):\n        i -= 1\n      elif i < len(assignment) - 1 and assignment[i] == assignment[i + 1] - 1:\n        all_ok = False\n    if assignment[-1] == len(sorted_nodes):\n      break\n    if all_ok:\n      new_distance = 0\n      for i in range(1, len(sorted_pods)):\n        new_distance += node_topology_distance(\n            sorted_nodes[assignment[i]], sorted_nodes[assignment[i - 1]]\n        )\n      if new_distance < minimum_distance:\n        best_assignment = assignment.copy()\n        minimum_distance = new_distance\n\n  return best_assignment\n\n\ndef schedule_pod_with_gate(v1, pods, gate):\n  pods_to_schedule = find_schedulable_pods(pods, gate)\n\n  nodes = v1.list_node().items\n  print(f'Pods to schedule: {len(pods_to_schedule)}')\n  jobs = split_pods_based_on_jobs(pods_to_schedule.values())\n  sorted_jobs = sorted(jobs, key=sort_jobs_by_time)\n  for job in sorted_jobs:\n    job_name = job[0].get('job_name')\n    creation_time = job[0].get('creation_time')\n    print(f'Attempting to schedule job: {job_name} created: {creation_time}')\n\n    tolerated_taints = get_pods_taint_toleration(job)\n    nodes_to_schedule = find_schedulable_nodes(nodes, pods, tolerated_taints)\n\n    sorted_pods = sorted(job, key=pod_sorting_key)\n    sorted_nodes = sorted(nodes_to_schedule.values(), key=node_topology_key)\n\n    print(f'Nodes to schedule: {len(nodes_to_schedule)}')\n\n    best_assignment = calculate_pods_assignment(sorted_nodes, sorted_pods)\n\n    if not best_assignment:\n      print(\n          f'No scheduling for job: {job_name} with gate {gate} has been found.'\n          ' Skipping job.'\n      )\n      continue\n    else:\n      print(f'Assignment found, scheduling {job_name} with {len(jobs)} pods.')\n\n    for i in range(0, len(sorted_pods)):\n      pod = sorted_pods[i]\n      node = sorted_nodes[best_assignment[i]]\n      schedule_pod_on_node(\n          v1, pod['name'], pod['namespace'], node, gate\n      )\n\n\ndef run_scheduling_loop():\n  \"\"\"Runs scheduling.\"\"\"\n  parser = argparse.ArgumentParser(\n      prog='schedule-workload.py')\n\n  parser.add_argument(\n      '-g', '--gate',\n      default='gke.io/topology-aware-auto-')    # prefix of the schedule gate\n  parser.add_argument(\n      '-i', '--interval',\n      default=1.0)    # intervals (in seconds) between scheduling\n  parser.add_argument(\n      '--ignored-namespace',\n      nargs='*',\n      default=[])     # namespace to search for pods\n  args = parser.parse_args()\n\n  try:\n    kubernetes.config.load_incluster_config()\n  except kubernetes.config.ConfigException:\n    kubernetes.config.load_kube_config()\n  v1 = kubernetes.client.CoreV1Api()\n\n  def list_pods():\n    # filtering of namespace is not cached as namespaces could be\n    # created and deleted\n    namespaces = v1.list_namespace().items\n    filtered_namespace_names = []\n    for n in namespaces:\n      if n.metadata.name not in args.ignored_namespace:\n        filtered_namespace_names.append(n.metadata.name)\n    pods = []\n    for n in filtered_namespace_names:\n      pods += v1.list_namespaced_pod(n).items\n    return pods\n\n  try:\n    t0 = time.time()\n    while True:\n      interval = time.time() - t0\n      if interval < args.interval:\n        time.sleep(args.interval - interval)\n      t0 = time.time()\n\n      pods = list_pods()\n\n      gates = find_pod_gates(pods, args.gate)\n      print(f\"Found {len(pods)} pods and {len(gates)} gates\")\n\n      if len(gates) == 0:\n        # No pods to be scheduled\n        continue\n\n      # sleep for one seconds, assuming that all pods within one group would be\n      # all visible by then\n      time.sleep(5.0)\n\n      for g in gates:\n        print(f\"scheduling pods with gate {g}\")\n        # query the pods again after the sleep, just in case not all gated pods\n        # are returned from previous query\n        pods = list_pods()\n        schedule_pod_with_gate(v1, pods, g)\n\n  except ApiException as e:\n    print(f'Exception when listing Kubernetes nodes or pods: {e}')\n\n\nif __name__ == '__main__':\n  run_scheduling_loop()\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/schedule-daemon.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: topology-scheduler\n  labels:\n    app: topology-scheduler\n  namespace: kube-system\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: topology-scheduler\n  template:\n    metadata:\n      labels:\n        app: topology-scheduler\n    spec:\n      tolerations:\n      - key: \"node-role.kubernetes.io/control-plane\"\n        operator: \"Exists\"\n        effect: \"NoSchedule\"\n      containers:\n        - name: topology-scheduler-container\n          image: python:3.9\n          command: [\"/bin/sh\", \"-c\", \"pip install google-auth google-api-python-client kubernetes; python /scripts/schedule-daemon.py --ignored-namespace kube-system gmp-public gmp-system\"]\n          volumeMounts:\n            - name: scripts-volume\n              mountPath: /scripts\n      volumes:\n        - name: scripts-volume\n          configMap:\n            name: topology-scheduler-scripts\n      serviceAccount: topology-scheduler\n      restartPolicy: Always\n\n"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/service-account.yaml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: topology-scheduler\n  namespace: kube-system\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: topology-scheduler\nrules:\n- apiGroups: [\"\"]\n  resources: [\"pods\"]\n  verbs: [\"get\", \"watch\", \"list\", \"update\", \"patch\"]\n- apiGroups: [\"\"]\n  resources: [\"namespaces\"]\n  verbs: [\"get\", \"watch\", \"list\"]\n- apiGroups: [\"\"]\n  resources: [\"nodes\"]\n  verbs: [\"get\", \"list\", \"watch\", \"update\", \"patch\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: topology-scheduler\nsubjects:\n- kind: ServiceAccount\n  name: topology-scheduler\n  namespace: kube-system\nroleRef:\n  kind: ClusterRole\n  name: topology-scheduler\n  apiGroup: rbac.authorization.k8s.io\n\n"
  },
  {
    "path": "nri_device_injector/Dockerfile",
    "content": "# Copyright 2023 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS builder\n\nARG TARGETOS\nARG TARGETARCH\n\nWORKDIR /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators\nCOPY . .\nRUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o device_injector nri_device_injector/nri_device_injector.go\nRUN chmod a+x /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/device_injector\n\nFROM gke.gcr.io/gke-distroless/bash:gke_distroless_20260207.00_p0@sha256:002b4b70bf122aaed02d9ba7158a5ce8424a5cc4342cc304ab6c254943f6a5da\nCOPY --from=builder /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/device_injector /usr/bin/device_injector\nCMD [\"/usr/bin/device_injector\"]\n"
  },
  {
    "path": "nri_device_injector/README.md",
    "content": "# NRI Device Injector Plugin\n\nBased on [containerd NRI](https://github.com/containerd/nri/tree/main) and the [example plugin](https://github.com/containerd/nri/tree/main/plugins/device-injector), this device injector plugin injects devices into containers specified by pod annotations. \n\n## To annotate pod with device injections\nDevices are annotated with the key `devices.gke.io/container.$CONTAINER_NAME` to have devices injected into `$CONTAINER_NAME`. Full annotation of a device is \n```\nannotations:\n    devices.gke.io/container.$CONTAINER_NAME: |+\n        - path: $PATH\n          type: $TYPE\n          major: $MAJOR\n          minor: $MINOR\n          file_mode: $FILE_MODE\n          uid: $UID\n          gid: $GID\n```\n`path` is madatory, and the rest can be omitted.\nExample annotation to inject 3 GPU devices into container `test`:\n```\nannotations:\n    devices.gke.io/container.test: |+\n        - path: /dev/nvidia0\n        - path: /dev/nvidia1\n        - path: /dev/nvidia2\n```\n\n## To deploy device injector plugin in GKE cluster\n### Build device injector plugin image\nFrom root of the repository, run:\n  `docker build -f nri_device_injector/Dockerfile .`\n### Apply device injector manifest\n  `kubectl apply -f nri-device-injector.yaml`\nThe device injector enables NRI on the node and runs the NRI device injector plugin."
  },
  {
    "path": "nri_device_injector/nri-device-injector-autopilot.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: device-injector\n  namespace: gpudirect-system\n  labels:\n    k8s-app: device-injector\nspec:\n  selector:\n    matchLabels:\n      k8s-app: device-injector\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: device-injector\n        k8s-app: device-injector\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-rtx-pro-6000\n                      - nvidia-h100-80gb\n                      - nvidia-h100-mega-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      containers:\n        - image: \"gcr.io/gke-release/nri-device-injector@sha256:6e79483d52abdc28454bf186320b10a56b0f117a10e8d65d5c74dbb821a76970\"\n          name: device-injector\n          resources:\n            limits:\n              cpu: 150m\n              memory: 160Mi\n              ephemeral-storage: 10Mi\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: dev\n              mountPath: /dev\n            - name: nri\n              mountPath: /var/run/nri\n      volumes:\n        - name: root\n          hostPath:\n            path: /\n        - name: nri\n          hostPath:\n            path: /var/run/nri\n        - name: dev\n          hostPath:\n            path: /dev\n"
  },
  {
    "path": "nri_device_injector/nri-device-injector.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# This daemonset installs nvidia driver 450.80.02 and invokes the\n# partition_gpu tool to enable MIG mode and create GPU instances as specified\n# in the GPU config.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: device-injector\n  namespace: kube-system\n  labels:\n    k8s-app: device-injector\nspec:\n  selector:\n    matchLabels:\n      k8s-app: device-injector\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: device-injector\n        k8s-app: device-injector\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: In\n                    values:\n                      - nvidia-rtx-pro-6000\n                      - nvidia-h100-80gb\n                      - nvidia-h100-mega-80gb\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      containers:\n        - image: \"gcr.io/gke-release/nri-device-injector@sha256:6e79483d52abdc28454bf186320b10a56b0f117a10e8d65d5c74dbb821a76970\"\n          name: device-injector\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: dev\n              mountPath: /dev\n            - name: nri\n              mountPath: /var/run/nri\n      volumes:\n        - name: root\n          hostPath:\n            path: /\n        - name: nri\n          hostPath:\n            path: /var/run/nri\n        - name: dev\n          hostPath:\n            path: /dev\n"
  },
  {
    "path": "nri_device_injector/nri_device_injector.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"golang.org/x/sys/unix\"\n\t\"sigs.k8s.io/yaml\"\n\n\t\"github.com/containerd/nri/pkg/api\"\n\t\"github.com/containerd/nri/pkg/stub\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tdeviceKeyPrefix = \"devices.gke.io\"\n\t// Key prefix for device injection to a container, followed by container name\n\tctrDeviceKeyPrefix = deviceKeyPrefix + \"/container.\"\n\tpluginName         = \"device_injector_nri\"\n\tpluginIdx          = \"10\"\n\t// Device types.\n\tblockDevice = \"b\"\n\tcharDevice  = \"c\"\n\tfifoDevice  = \"p\"\n)\n\ntype device struct {\n\tPath     string `json:\"path\"`\n\tType     string `json:\"type\"`\n\tMajor    int64  `json:\"major\"`\n\tMinor    int64  `json:\"minor\"`\n\tFileMode uint32 `json:\"file_mode\"`\n\tUID      uint32 `json:\"uid\"`\n\tGID      uint32 `json:\"gid\"`\n}\n\ntype plugin struct {\n\tstub stub.Stub\n}\n\nfunc main() {\n\tvar (\n\t\topts []stub.Option\n\t\terr  error\n\t)\n\n\topts = append(opts, stub.WithPluginName(pluginName))\n\topts = append(opts, stub.WithPluginIdx(pluginIdx))\n\n\tp := &plugin{}\n\n\tif p.stub, err = stub.New(p, append(opts, stub.WithOnClose(p.onClose))...); err != nil {\n\t\tlog.Errorf(\"Failed to create plugin stub: %v\", err)\n\t\tos.Exit(1)\n\t}\n\n\terr = p.stub.Run(context.Background())\n\tif err != nil {\n\t\tlog.Errorf(\"plugin exited with error %v\", err)\n\t\tos.Exit(1)\n\t}\n}\n\nfunc (p *plugin) onClose() {\n\tlog.Info(\"NRI connection closed\")\n}\n\n// CreateContainer handles CreateContainer requests relayed to the plugin by containerd NRI.\n// The plugin makes adjustment on containers with device injection annotations.\n// When multiple annotations annotate devices with the same path, only the first one will be injected.\nfunc (p *plugin) CreateContainer(_ context.Context, pod *api.PodSandbox, container *api.Container) (*api.ContainerAdjustment, []*api.ContainerUpdate, error) {\n\tif pod == nil {\n\t\treturn nil, nil, nil\n\t}\n\n\tvar (\n\t\tctrName = container.Name\n\t\tl       = log.WithFields(log.Fields{\"container\": ctrName, \"pod\": pod.Name, \"namespace\": pod.Namespace})\n\n\t\tdevices []device\n\t\terr     error\n\t)\n\n\tdefer l.Info(\"Finished CreateContainer\")\n\tl.Info(\"Started CreateContainer\")\n\tdevices, err = getDevices(ctrName, pod.Annotations)\n\tif err != nil {\n\t\tl.WithError(err).Warn(\"Failed to get device from pod annotation\")\n\t\treturn nil, nil, err\n\t}\n\tadjust := &api.ContainerAdjustment{}\n\n\tif len(devices) == 0 {\n\t\tl.Debug(\"No devices annotated...\")\n\t\treturn adjust, nil, nil\n\t}\n\tfor _, d := range devices {\n\t\tl.WithField(\"device\", d.Path).Info(\"Annotated device\")\n\t\tdeviceNRI, err := d.toNRIDevice()\n\t\tif err != nil {\n\t\t\tl.WithField(\"device\", d.Path).WithError(err).Warn(\"Failed to get device from path\")\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tadjust.AddDevice(deviceNRI)\n\t\tl.WithField(\"device\", d.Path).Info(\"Injected device\")\n\t}\n\treturn adjust, nil, nil\n}\n\n// getDevices returns parsed devices from pod annotations of device injections.\nfunc getDevices(ctrName string, podAnnotations map[string]string) ([]device, error) {\n\tvar (\n\t\tdeviceKey string = ctrDeviceKeyPrefix + ctrName\n\n\t\tannotation    []byte\n\t\tparsedDevices []device\n\t\tdevices       []device\n\t)\n\n\tif value, ok := podAnnotations[deviceKey]; ok {\n\t\tannotation = []byte(value)\n\t}\n\tif annotation == nil {\n\t\treturn nil, nil\n\t}\n\n\tif err := yaml.Unmarshal(annotation, &parsedDevices); err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid device annotation %q: %w\", deviceKey, err)\n\t}\n\tpaths := make(map[string]bool)\n\tfor _, d := range parsedDevices {\n\t\tif _, got := paths[d.Path]; got {\n\t\t\tcontinue\n\t\t} else {\n\t\t\tpaths[d.Path] = true\n\t\t\tdevices = append(devices, d)\n\t\t}\n\t}\n\treturn devices, nil\n}\n\n// toNRIDevice retrieves device's major, minor and type from its path, and returns a NRI device\nfunc (d *device) toNRIDevice() (*api.LinuxDevice, error) {\n\tvar (\n\t\tstat unix.Stat_t\n\t)\n\tif err := unix.Lstat(d.Path, &stat); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get info from device path %s: %v\", d.Path, err)\n\t}\n\n\tvar (\n\t\tdevNumber = uint64(stat.Rdev)\n\t\tmajor     = unix.Major(devNumber)\n\t\tminor     = unix.Minor(devNumber)\n\t\tmode      = stat.Mode\n\t\tdevType   string\n\t)\n\tswitch mode & unix.S_IFMT {\n\tcase unix.S_IFBLK:\n\t\tdevType = blockDevice\n\tcase unix.S_IFCHR:\n\t\tdevType = charDevice\n\tcase unix.S_IFIFO:\n\t\tdevType = fifoDevice\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"invalid device type %v from device path %v\", mode, d.Path)\n\t}\n\tapiDev := &api.LinuxDevice{\n\t\tPath:  d.Path,\n\t\tType:  devType,\n\t\tMajor: int64(major),\n\t\tMinor: int64(minor),\n\t}\n\tif d.FileMode != 0 {\n\t\tapiDev.FileMode = api.FileMode(d.FileMode)\n\t}\n\tif d.UID != 0 {\n\t\tapiDev.Uid = api.UInt32(d.UID)\n\t}\n\tif d.GID != 0 {\n\t\tapiDev.Gid = api.UInt32(d.GID)\n\t}\n\treturn apiDev, nil\n}\n"
  },
  {
    "path": "nri_device_injector/nri_device_injector_test.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"golang.org/x/sys/unix\"\n)\n\nfunc TestToNRIDevice(t *testing.T) {\n\tif os.Getuid() != 0 {\n\t\tt.Skip(\"Skipping TestToNRIDevice as it requires root privileges.\")\n\t}\n\ttempDir, err := os.MkdirTemp(\"\", \"device-test\")\n\tif err != nil {\n\t\tt.Fatalf(\"faield to make temporary device-test directory %s: %v\", tempDir, err)\n\t}\n\tdefer os.RemoveAll(tempDir)\n\n\ttests := map[string]struct {\n\t\tdevPath  string\n\t\tdevMajor int\n\t\tdevMinor int\n\t\tdevType  uint32\n\t}{\n\t\t\"char nvidia0 device\": {\n\t\t\tdevPath:  \"/nvidia0\",\n\t\t\tdevMajor: 195,\n\t\t\tdevMinor: 0,\n\t\t\tdevType:  unix.S_IFCHR,\n\t\t},\n\t\t\"char nvidiactl device\": {\n\t\t\tdevPath:  \"/nvidiactl\",\n\t\t\tdevMajor: 195,\n\t\t\tdevMinor: 255,\n\t\t\tdevType:  unix.S_IFCHR,\n\t\t},\n\t\t\"char nvidia-uvm device\": {\n\t\t\tdevPath:  \"/nvidia-uvm\",\n\t\t\tdevMajor: 100,\n\t\t\tdevMinor: 100,\n\t\t\tdevType:  unix.S_IFCHR,\n\t\t},\n\t\t\"block foo device\": {\n\t\t\tdevPath:  \"/foo\",\n\t\t\tdevMajor: 100,\n\t\t\tdevMinor: 100,\n\t\t\tdevType:  unix.S_IFBLK,\n\t\t},\n\t}\n\n\tfor name, tc := range tests {\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tdevPath := tempDir + tc.devPath\n\t\t\tdevNum := unix.Mkdev(uint32(tc.devMajor), uint32(tc.devMinor))\n\t\t\tif err := unix.Mknod(devPath, tc.devType|0644, int(devNum)); err != nil {\n\t\t\t\tt.Fatalf(\"failed to mknod for %s: %v \", devPath, err)\n\t\t\t}\n\t\t\tdev := device{Path: devPath}\n\t\t\tnriDevice, err := dev.toNRIDevice()\n\n\t\t\twantType := \"\"\n\t\t\tswitch tc.devType {\n\t\t\tcase unix.S_IFBLK:\n\t\t\t\twantType = blockDevice\n\t\t\tcase unix.S_IFCHR:\n\t\t\t\twantType = charDevice\n\t\t\tcase unix.S_IFIFO:\n\t\t\t\twantType = fifoDevice\n\t\t\t}\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.Equalf(t, devPath, nriDevice.Path, \"error asserting device dev path, expected %s, got %s\", devPath, nriDevice.Path)\n\t\t\tassert.Equalf(t, wantType, nriDevice.Type, \"error asserting device type, expected %s, got %s\", wantType, nriDevice.Type)\n\t\t\tassert.Equalf(t, int64(tc.devMajor), nriDevice.Major, \"error asserting device major, expected %d, got %d\", int64(tc.devMajor), nriDevice.Major)\n\t\t\tassert.Equalf(t, int64(tc.devMinor), nriDevice.Minor, \"error asserting device minor, expected %d, got %d\", int64(tc.devMinor), nriDevice.Minor)\n\t\t})\n\t}\n}\n\nfunc TestGetDevices(t *testing.T) {\n\ttests := map[string]struct {\n\t\tcontainer   string\n\t\tannotations map[string]string\n\t\twant        []device\n\t\twantErr     bool\n\t}{\n\t\t\"No device annotations\": {\n\t\t\tcontainer: \"test\",\n\t\t},\n\t\t\"Empty annotation\": {\n\t\t\tcontainer:   \"test\",\n\t\t\tannotations: map[string]string{},\n\t\t},\n\t\t\"Unrelated device annotation\": {\n\t\t\tcontainer:   \"test\",\n\t\t\tannotations: map[string]string{\"foo\": \"foo1\"},\n\t\t},\n\t\t\"One valid device annotation injecting to container\": {\n\t\t\tcontainer: \"test\",\n\t\t\tannotations: map[string]string{\n\t\t\t\t\"devices.gke.io/container.test\": `\n- path: /dev/test\n`}, want: []device{{\n\t\t\t\tPath: \"/dev/test\",\n\t\t\t}},\n\t\t},\n\t\t\"Multiple valid device annotation injecting to container\": {\n\t\t\tcontainer: \"test\",\n\t\t\tannotations: map[string]string{\n\t\t\t\t\"devices.gke.io/container.test\": `\n- path: /dev/test0\n- path: /dev/test1\n  major: 123\n  minor: 456\n- path: /dev/test2\n  Type: b\n`}, want: []device{{\n\t\t\t\tPath: \"/dev/test0\",\n\t\t\t}, {\n\t\t\t\tPath:  \"/dev/test1\",\n\t\t\t\tMajor: 123,\n\t\t\t\tMinor: 456,\n\t\t\t}, {\n\t\t\t\tPath: \"/dev/test2\",\n\t\t\t\tType: \"b\",\n\t\t\t}},\n\t\t},\n\t\t\"Multiple same device's annotation returning multiple same device\": {\n\t\t\tcontainer: \"test\",\n\t\t\tannotations: map[string]string{\n\t\t\t\t\"devices.gke.io/container.test\": `\n- path: /dev/test0\n- path: /dev/test0\n  major: 123\n  minor: 456\n- path: /dev/test0\n  major: 456\n  minor: 789\n`}, want: []device{{\n\t\t\t\tPath: \"/dev/test0\",\n\t\t\t}},\n\t\t},\n\t\t\"Invalid device annotation\": {\n\t\t\tcontainer: \"test\",\n\t\t\tannotations: map[string]string{\n\t\t\t\t\"devices.gke.io/container.test\": `\n- path: /dev/test0\n- path: /dev/test1\n  major: foo\n`}, wantErr: true,\n\t\t},\n\t\t\"Invalid annotation yaml\": {\n\t\t\tcontainer: \"test\",\n\t\t\tannotations: map[string]string{\n\t\t\t\t\"devices.gke.io/container.test\": `\n- path: /dev/test0\npath: /dev/test1\n`}, wantErr: true,\n\t\t},\n\t}\n\n\tfor name, tc := range tests {\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tdevices, err := getDevices(tc.container, tc.annotations)\n\t\t\tif (err != nil) != tc.wantErr {\n\t\t\t\tt.Errorf(\"getDevices() error = %v, wantErr %v\", err, tc.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !tc.wantErr {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.EqualValues(t, tc.want, devices)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-confidential-latest.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer-confidential\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n              - key: cloud.google.com/gke-confidential-nodes-instance-type\n                operator: In\n                values:\n                  - TDX\n                  - SEV\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n          - name: COS_TOOLS_DIR_HOST\n            value: /var/lib/cos-tools\n          - name: COS_TOOLS_DIR_CONTAINER\n            value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        command:\n        - bash\n        - -c\n        - |\n          echo \"Checking for existing GPU driver modules\"\n          LABELS=$( curl --retry 5 -H \"Metadata-Flavor:Google\" http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels || exit 1 )\n          IFS=,; for label in $LABELS; do\n            IFS==; read -r LABEL VALUE <<< \"$label\"\n            if [[ \"${LABEL}\" == \"cloud.google.com/gke-confidential-nodes-instance-type\" ]]; then\n                CONFIDENTIAL_INSTANCE_TYPE=$VALUE\n                echo \"${CONFIDENTIAL_INSTANCE_TYPE}\" > /etc/nvidia/confidential_node_type.txt\n            fi\n          done\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, the installed version may or may not be the driver version being tried to install, skipping installation\"\n            exit 0\n          else\n            if [[ \"${CONFIDENTIAL_INSTANCE_TYPE}\" == \"TDX\" || \"${CONFIDENTIAL_INSTANCE_TYPE}\" == \"SEV\" ]]; then\n              echo \"No GPU driver module detected, installing now\"\n              /cos-gpu-installer install --no-verify --version=latest || exit 1\n              /sbin/modprobe -d /root drm_kms_helper; /sbin/insmod /usr/local/nvidia/drivers/nvidia.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-uvm.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-modeset.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-drm.ko\n              /usr/local/nvidia/bin/nvidia-modprobe -c0 -u -m\n              chmod 755 /root/home/kubernetes/bin/nvidia\n            else\n              echo \"Confidential GPU is not supported on this VM, skipping driver installation\"\n            fi\n          fi\n      - image: \"gcr.io/gke-release/nvidia-persistenced-installer@sha256:e875101ea7bddcef6e628359e3a8f02fdfbcd05f6efe75bc7ad9457ef4020a04\"\n        name: \"nvidia-persistenced-installer\"\n        restartPolicy: Always\n        securityContext:\n          privileged: true\n        env:\n          - name: LD_LIBRARY_PATH\n            value: /usr/local/nvidia/lib64\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: root-mount\n          mountPath: /root\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        - name: dev\n          mountPath: /dev\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-confidential.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer-confidential\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n              - key: cloud.google.com/gke-confidential-nodes-instance-type\n                operator: In\n                values:\n                  - TDX\n                  - SEV\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n          - name: COS_TOOLS_DIR_HOST\n            value: /var/lib/cos-tools\n          - name: COS_TOOLS_DIR_CONTAINER\n            value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        command:\n        - bash\n        - -c\n        - |\n          echo \"Checking for existing GPU driver modules\"\n          LABELS=$( curl --retry 5 -H \"Metadata-Flavor:Google\" http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels || exit 1 )\n          IFS=,; for label in $LABELS; do\n            IFS==; read -r LABEL VALUE <<< \"$label\"\n            if [[ \"${LABEL}\" == \"cloud.google.com/gke-confidential-nodes-instance-type\" ]]; then\n                CONFIDENTIAL_INSTANCE_TYPE=$VALUE\n                echo \"${CONFIDENTIAL_INSTANCE_TYPE}\" > /etc/nvidia/confidential_node_type.txt\n            fi\n          done\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, the installed version may or may not be the driver version being tried to install, skipping installation\"\n            exit 0\n          else\n            if [[ \"${CONFIDENTIAL_INSTANCE_TYPE}\" == \"TDX\" || \"${CONFIDENTIAL_INSTANCE_TYPE}\" == \"SEV\" ]]; then\n              echo \"No GPU driver module detected, installing now\"\n              /cos-gpu-installer install --no-verify --version=default || exit 1\n              /sbin/modprobe -d /root drm_kms_helper; /sbin/insmod /usr/local/nvidia/drivers/nvidia.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-uvm.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-modeset.ko; /sbin/insmod /usr/local/nvidia/drivers/nvidia-drm.ko\n              /usr/local/nvidia/bin/nvidia-modprobe -c0 -u -m\n              chmod 755 /root/home/kubernetes/bin/nvidia\n            else\n              echo \"Confidential GPU is not supported on this VM, skipping driver installation\"\n            fi\n          fi\n      - image: \"gcr.io/gke-release/nvidia-persistenced-installer@sha256:e875101ea7bddcef6e628359e3a8f02fdfbcd05f6efe75bc7ad9457ef4020a04\"\n        name: \"nvidia-persistenced-installer\"\n        restartPolicy: Always\n        securityContext:\n          privileged: true\n        env:\n          - name: LD_LIBRARY_PATH\n            value: /usr/local/nvidia/lib64\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: root-mount\n          mountPath: /root\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        - name: dev\n          mountPath: /dev\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-nvidia-mig.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# This daemonset installs nvidia driver 450.80.02 and invokes the\n# partition_gpu tool to enable MIG mode and create GPU instances as specified\n# in the GPU config.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n          - name: COS_TOOLS_DIR_HOST\n            value: /var/lib/cos-tools\n          - name: COS_TOOLS_DIR_CONTAINER\n            value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n      - image: \"gcr.io/gke-release/nvidia-partition-gpu@sha256:116be6b7335c1d34366223b9a3780fe80d862fcf06cd2c580426fdc1697af693\"\n        name: partition-gpus\n        env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n      containers:\n      - image: \"registry.k8s.io/pause:3.9\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded-latest-a4x.yaml",
    "content": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: node.kubernetes.io/instance-type\n                operator: In\n                values:\n                - a4x-highgpu-4g\n                - a4x-highgpu-4g-nolssd\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n        - name: NVIDIA_INSTALL_DIR_HOST\n          value: /home/kubernetes/bin/nvidia\n        - name: NVIDIA_INSTALL_DIR_CONTAINER\n          value: /usr/local/nvidia\n        - name: VULKAN_ICD_DIR_HOST\n          value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n        - name: VULKAN_ICD_DIR_CONTAINER\n          value: /etc/vulkan/icd.d\n        - name: ROOT_MOUNT_DIR\n          value: /root\n        - name: COS_TOOLS_DIR_HOST\n          value: /var/lib/cos-tools\n        - name: COS_TOOLS_DIR_CONTAINER\n          value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        command:\n        - bash\n        - -c\n        - |\n          echo \"Checking for existing GPU driver modules\"\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, the installed version may or may not be the driver version being tried to install, skipping installation\"\n            exit 0\n          else\n            echo \"No GPU driver module detected, installing now\"\n            /cos-gpu-installer install --version=latest || exit 1\n            chmod 755 /root/home/kubernetes/bin/nvidia\n          fi\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded-latest.yaml",
    "content": "# Copyright 2022 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n              - key: cloud.google.com/gke-confidential-nodes-instance-type\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n        - name: NVIDIA_INSTALL_DIR_HOST\n          value: /home/kubernetes/bin/nvidia\n        - name: NVIDIA_INSTALL_DIR_CONTAINER\n          value: /usr/local/nvidia\n        - name: VULKAN_ICD_DIR_HOST\n          value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n        - name: VULKAN_ICD_DIR_CONTAINER\n          value: /etc/vulkan/icd.d\n        - name: ROOT_MOUNT_DIR\n          value: /root\n        - name: COS_TOOLS_DIR_HOST\n          value: /var/lib/cos-tools\n        - name: COS_TOOLS_DIR_CONTAINER\n          value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        command:\n        - bash\n        - -c\n        - |\n          echo \"Checking for existing GPU driver modules\"\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, the installed version may or may not be the driver version being tried to install, skipping installation\"\n            exit 0\n          else\n            echo \"No GPU driver module detected, installing now\"\n            /cos-gpu-installer install --version=latest || exit 1\n            chmod 755 /root/home/kubernetes/bin/nvidia\n          fi\n      - image: \"gcr.io/gke-release/nvidia-partition-gpu@sha256:de12f85ebfb4fb6c1893cd30c23aab662a72fa0448f97ef74fccb82d7522ef17\"\n        name: partition-gpus\n        env:\n          - name: LD_LIBRARY_PATH\n            value: /usr/local/nvidia/lib64\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n              - key: cloud.google.com/gke-confidential-nodes-instance-type\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: Never\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n          - name: COS_TOOLS_DIR_HOST\n            value: /var/lib/cos-tools\n          - name: COS_TOOLS_DIR_CONTAINER\n            value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        command:\n        - bash\n        - -c\n        - |\n          echo \"Checking for existing GPU driver modules\"\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, the installed version may or may not be the driver version being tried to install, skipping installation\"\n            exit 0\n          else\n            echo \"No GPU driver module detected, installing now\"\n            /cos-gpu-installer install || exit 1\n          fi\n      - image: \"gcr.io/gke-release/nvidia-partition-gpu@sha256:de12f85ebfb4fb6c1893cd30c23aab662a72fa0448f97ef74fccb82d7522ef17\"\n        name: partition-gpus\n        env:\n          - name: LD_LIBRARY_PATH\n            value: /usr/local/nvidia/lib64\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-vgpu-latest.yaml",
    "content": "# Copyright 2026 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://cos.googlesource.com/cos/tools/+/refs/heads/master/src/cmd/cos_gpu_installer/\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              # Targets nodes with GPUs\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              # Only runs if GKE hasn't already managed the driver\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: vulkan-icd-mount\n        hostPath:\n          path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      - name: cos-tools\n        hostPath:\n          path: /var/lib/cos-tools\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"cos-nvidia-installer:fixed\"\n        imagePullPolicy: IfNotPresent\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: VULKAN_ICD_DIR_HOST\n            value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n          - name: VULKAN_ICD_DIR_CONTAINER\n            value: /etc/vulkan/icd.d\n          - name: ROOT_MOUNT_DIR\n            value: /root\n          - name: COS_TOOLS_DIR_HOST\n            value: /var/lib/cos-tools\n          - name: COS_TOOLS_DIR_CONTAINER\n            value: /build/cos-tools\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: vulkan-icd-mount\n          mountPath: /etc/vulkan/icd.d\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        - name: cos-tools\n          mountPath: /build/cos-tools\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        command:\n        - bash\n        - -c\n        - |\n          set -e\n          echo \"Fetching machine type from metadata server...\"\n          FULL_MACHINE_TYPE=$( curl --retry 5 -H \"Metadata-Flavor:Google\" http://metadata.google.internal/computeMetadata/v1/instance/machine-type || exit 1 )\n          MACHINE_TYPE=${FULL_MACHINE_TYPE##*/}\n          echo \"${MACHINE_TYPE}\" > /etc/nvidia/machine_type.txt\n          echo \"Recorded machine type: ${MACHINE_TYPE}\"\n\n          echo \"Checking for existing GPU driver modules\"\n          if lsmod | grep nvidia; then\n            echo \"GPU driver is already installed, skipping installation\"\n            exit 0\n          else\n            echo \"No GPU driver module detected, installing now\"\n            /cos-gpu-installer install --version=latest\n            chmod 755 /root/home/kubernetes/bin/nvidia\n          fi\n      containers:\n      - image: \"gcr.io/gke-release/nvidia-persistenced-installer@sha256:cf78b70c83c132de3cdb0947212a44ecaa060ef89fb36636eb65f24824174ece\" \n        name: \"nvidia-daemon-installer\"\n        restartPolicy: Always\n        securityContext:\n          privileged: true\n        env:\n          - name: LD_LIBRARY_PATH\n            value: /usr/local/nvidia/lib64\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: root-mount\n          mountPath: /root\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n        - name: dev\n          mountPath: /dev\n      - image: \"gke.gcr.io/pause:3.8\"\n        name: pause"
  },
  {
    "path": "nvidia-driver-installer/cos/kustomization.yaml",
    "content": "resources:\n- daemonset-preloaded.yaml\n"
  },
  {
    "path": "nvidia-driver-installer/minikube/Dockerfile",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM ubuntu:18.04\n\nRUN apt-get update && \\\n    apt-get install -y kmod gcc make curl xz-utils libc6-dev bc libelf-dev bison flex openssl libssl-dev && \\\n    rm -rf /var/lib/apt/lists/*\n\nCOPY entrypoint.sh /entrypoint.sh\n\nCMD /entrypoint.sh\n"
  },
  {
    "path": "nvidia-driver-installer/minikube/Makefile",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nTAG?=$(shell git rev-parse HEAD)\nREGISTRY?=gcr.io/k8s-image-staging\nIMAGE=minikube-nvidia-driver-installer\n\ncontainer:\n\tdocker build --pull -t ${REGISTRY}/${IMAGE}:${TAG} .\n\npush:\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:${TAG}\n\n.PHONY: container push\n"
  },
  {
    "path": "nvidia-driver-installer/minikube/daemonset.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      tolerations:\n      - key: \"nvidia.com/gpu\"\n        effect: \"NoSchedule\"\n        operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: k8s.gcr.io/minikube-nvidia-driver-installer@sha256:492d46f2bc768d6610ec5940b6c3c33c75e03e201cc8786e04cc488659fd6342\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/minikube/entrypoint.sh",
    "content": "#!/bin/bash\n# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o pipefail\nset -u\n\nset -x\n# This driver version works for TITAN/GeForce/Quardro. This doesn't work for Tesla.\nNVIDIA_DRIVER_VERSION=\"${NVIDIA_DRIVER_VERSION:-390.67}\"\nNVIDIA_DRIVER_DOWNLOAD_URL_DEFAULT=\"https://us.download.nvidia.com/XFree86/Linux-x86_64/${NVIDIA_DRIVER_VERSION}/NVIDIA-Linux-x86_64-${NVIDIA_DRIVER_VERSION}.run\"\nNVIDIA_DRIVER_DOWNLOAD_URL=\"${NVIDIA_DRIVER_DOWNLOAD_URL:-$NVIDIA_DRIVER_DOWNLOAD_URL_DEFAULT}\"\nNVIDIA_INSTALL_DIR_HOST=\"${NVIDIA_INSTALL_DIR_HOST:-/var/lib/nvidia}\"\nNVIDIA_INSTALL_DIR_CONTAINER=\"${NVIDIA_INSTALL_DIR_CONTAINER:-/usr/local/nvidia}\"\nNVIDIA_INSTALLER_RUNFILE=\"$(basename \"${NVIDIA_DRIVER_DOWNLOAD_URL}\")\"\nROOT_MOUNT_DIR=\"${ROOT_MOUNT_DIR:-/root}\"\nCACHE_FILE=\"${NVIDIA_INSTALL_DIR_CONTAINER}/.cache\"\nKERNEL_VERSION=\"$(uname -r)\"\nMAJOR_KERNEL_VERSION=$(echo $(uname -r) | cut -d \".\" -f 1)\nset +x\n\nfix_kernel_version() {\n  PATTERN=\"^([0-9]+)\\.([0-9]+)\\.(.+)\"\n  PATCH_PATTERN=\"^[0-9]+$\"\n\n  if [[ ${KERNEL_VERSION} =~ ${PATTERN} ]]; then\n    FALLBACK_VERSION=${BASH_REMATCH[1]}.${BASH_REMATCH[2]}\n\n    # On cdn.kernel.org, the versions are like x.y when z is 0 and x.y.z when z\n    # is non-zero. Fix the version returned by 'uname -r' to reflect this\n    # reality.\n    if [[ ${BASH_REMATCH[3]} == 0 ]]; then\n      KERNEL_VERSION=${FALLBACK_VERSION}\n\n    # For a non-standard version like x.y.z-something\n    # Try best effort driver installation with headers from version x.y\n    elif ! [[ ${BASH_REMATCH[3]} =~ ${PATCH_PATTERN} ]]; then\n      KERNEL_VERSION=${FALLBACK_VERSION}\n    fi\n  fi\n  echo \"KERNEL_VERSION: ${KERNEL_VERSION}\"\n}\n\n\ncheck_cached_version() {\n  echo \"Checking cached version\"\n  if [[ ! -f \"${CACHE_FILE}\" ]]; then\n    echo \"Cache file ${CACHE_FILE} not found.\"\n    return 1\n  fi\n\n  # Source the cache file and check if the cached driver matches\n  # currently running kernel version and requested driver versions.\n  . \"${CACHE_FILE}\"\n  if [[ \"${KERNEL_VERSION}\" == \"${CACHE_KERNEL_VERSION}\" ]]; then\n    if [[ \"${NVIDIA_DRIVER_VERSION}\" == \"${CACHE_NVIDIA_DRIVER_VERSION}\" ]]; then\n      echo \"Found existing driver installation for kernel version ${KERNEL_VERSION} and driver version ${NVIDIA_DRIVER_VERSION}.\"\n      return 0\n    fi\n  fi\n  echo \"Cache file ${CACHE_FILE} found but existing versions didn't match.\"\n  return 1\n}\n\nupdate_cached_version() {\n  cat >\"${CACHE_FILE}\"<<__EOF__\nCACHE_KERNEL_VERSION=${KERNEL_VERSION}\nCACHE_NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION}\n__EOF__\n\n  echo \"Updated cached version as:\"\n  cat \"${CACHE_FILE}\"\n}\n\nupdate_container_ld_cache() {\n  echo \"Updating container's ld cache...\"\n  echo \"${NVIDIA_INSTALL_DIR_CONTAINER}/lib64\" > /etc/ld.so.conf.d/nvidia.conf\n  ldconfig\n  echo \"Updating container's ld cache... DONE.\"\n}\n\ndownload_kernel_src() {\n  echo \"Downloading kernel sources...\"\n  pushd /usr/src\n  curl https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_KERNEL_VERSION}.x/linux-${KERNEL_VERSION}.tar.xz > linux-${KERNEL_VERSION}.tar.xz\n  tar -xf linux-${KERNEL_VERSION}.tar.xz\n  popd\n  echo \"Downloading kernel sources... DONE.\"\n}\n\nconfigure_kernel_src() {\n  echo \"Configuring kernel sources...\"\n  pushd /usr/src/linux-${KERNEL_VERSION}\n  zcat /proc/config.gz > .config\n  make olddefconfig\n  make modules_prepare\n  popd\n  echo \"Configuring kernel sources... DONE\"\n}\n\nconfigure_nvidia_installation_dirs() {\n  echo \"Configuring installation directories...\"\n  mkdir -p \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of `nvidia-modprobe` utility and always installs it\n  # under /usr/bin. The following workaround ensures that\n  # `nvidia-modprobe` is accessible outside the installer container\n  # filesystem.\n  mkdir -p bin bin-workdir\n  mount -t overlay -o lowerdir=/usr/bin,upperdir=bin,workdir=bin-workdir none /usr/bin\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of libraries such as libnvidia-ml.so. The following\n  # workaround ensures that the libs are accessible from outside the\n  # installer container filesystem.\n  mkdir -p lib64 lib64-workdir\n  mkdir -p /usr/lib/x86_64-linux-gnu\n  mount -t overlay -o lowerdir=/usr/lib/x86_64-linux-gnu,upperdir=lib64,workdir=lib64-workdir none /usr/lib/x86_64-linux-gnu\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of driver kernel modules such as nvidia.ko. The following\n  # workaround ensures that the modules are accessible from outside the\n  # installer container filesystem.\n  mkdir -p drivers drivers-workdir\n  mkdir -p /lib/modules/${KERNEL_VERSION}/video\n  mount -t overlay -o lowerdir=/lib/modules/${KERNEL_VERSION}/video,upperdir=drivers,workdir=drivers-workdir none /lib/modules/${KERNEL_VERSION}/video\n\n  # Populate ld.so.conf to avoid warning messages in nvidia-installer logs.\n  update_container_ld_cache\n\n  # Install an exit handler to cleanup the overlayfs mount points.\n  trap \"{ umount /lib/modules/${KERNEL_VERSION}/video; umount /usr/lib/x86_64-linux-gnu ; umount /usr/bin; }\" EXIT\n  popd\n  echo \"Configuring installation directories... DONE.\"\n}\n\ndownload_nvidia_installer() {\n  echo \"Downloading Nvidia installer...\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  curl -L -S -f \"${NVIDIA_DRIVER_DOWNLOAD_URL}\" -o \"${NVIDIA_INSTALLER_RUNFILE}\"\n  popd\n  echo \"Downloading Nvidia installer... DONE.\"\n}\n\nrun_nvidia_installer() {\n  echo \"Running Nvidia installer...\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  sh \"${NVIDIA_INSTALLER_RUNFILE}\" \\\n    --utility-prefix=\"${NVIDIA_INSTALL_DIR_CONTAINER}\" \\\n    --opengl-prefix=\"${NVIDIA_INSTALL_DIR_CONTAINER}\" \\\n    --no-install-compat32-libs \\\n    --log-file-name=\"${NVIDIA_INSTALL_DIR_CONTAINER}/nvidia-installer.log\" \\\n    --kernel-source-path=/usr/src/linux-${KERNEL_VERSION} \\\n    --silent \\\n    --accept-license\n  popd\n  echo \"Running Nvidia installer... DONE.\"\n}\n\nconfigure_cached_installation() {\n  echo \"Configuring cached driver installation...\"\n  update_container_ld_cache\n  if ! lsmod | grep -w 'nvidia' > /dev/null; then\n    insmod \"${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia.ko\"\n  fi\n  if ! lsmod | grep -w 'nvidia_uvm' > /dev/null; then\n    insmod \"${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia-uvm.ko\"\n  fi\n  if ! lsmod | grep -w 'nvidia_drm' > /dev/null; then\n    insmod \"${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia-drm.ko\"\n  fi\n  echo \"Configuring cached driver installation... DONE\"\n}\n\nverify_nvidia_installation() {\n  echo \"Verifying Nvidia installation...\"\n  export PATH=\"${NVIDIA_INSTALL_DIR_CONTAINER}/bin:${PATH}\"\n  nvidia-smi\n  # Create unified memory device file.\n  nvidia-modprobe -c0 -u\n  echo \"Verifying Nvidia installation... DONE.\"\n}\n\nupdate_host_ld_cache() {\n  echo \"Updating host's ld cache...\"\n  echo \"${NVIDIA_INSTALL_DIR_HOST}/lib64\" >> \"${ROOT_MOUNT_DIR}/etc/ld.so.conf\"\n  ldconfig -r \"${ROOT_MOUNT_DIR}\"\n  echo \"Updating host's ld cache... DONE.\"\n}\n\nmain() {\n  fix_kernel_version\n  if check_cached_version; then\n    configure_cached_installation\n    verify_nvidia_installation\n  else\n    download_kernel_src\n    configure_nvidia_installation_dirs\n    download_nvidia_installer\n    configure_kernel_src\n    run_nvidia_installer\n    update_cached_version\n    verify_nvidia_installation\n  fi\n  update_host_ld_cache\n}\n\nmain \"$@\"\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/Dockerfile",
    "content": "# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nARG base_image=ubuntu:16.04\n\nFROM ${base_image}\n\nRUN apt-get update && \\\n    apt-get install -y kmod gcc make curl && \\\n    rm -rf /var/lib/apt/lists/*\n\nCOPY entrypoint.sh /entrypoint.sh\n\nCMD /entrypoint.sh\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/Makefile",
    "content": "# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nTAG?=latest\nREGISTRY?=gcr.io/google-containers\nIMAGE=ubuntu-nvidia-driver-installer\n\ncontainer:\n\tdocker build --build-arg base_image=ubuntu:16.04 --pull -t ${REGISTRY}/${IMAGE}:16.04-${TAG} -t ${REGISTRY}/${IMAGE}:${TAG} .\n\tdocker build --build-arg base_image=ubuntu:18.04 --pull -t ${REGISTRY}/${IMAGE}:18.04-${TAG} .\n\tdocker build --build-arg base_image=ubuntu:20.04 --pull -t ${REGISTRY}/${IMAGE}:20.04-${TAG} .\n\npush:\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:${TAG}\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:16.04-${TAG}\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:18.04-${TAG}\n\tgcloud docker -- push ${REGISTRY}/${IMAGE}:20.04-${TAG}\n\n.PHONY: container push\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/README.md",
    "content": "# container-engine-accelerators/nvidia-driver-installer/ubuntu\n\nThis directory contains the following files:\n\n- `Dockerfile`\n- `Makefile`\n- `entrypoint.sh`\n- `daemonset.yaml`\n- `daemonset-preloaded.yaml`\n\nThe first three files contain code for creating a docker container that can be\nused to install NVIDIA GPU drivers. The `daemonset.yaml` file can be used to run\nthat docker container on a Kubernetes cluster. This was an experimental thing.\n\nFrom GKE v1.11.3, GKE added native production-ready support for installing\nNVIDIA GPU drivers on Ubuntu nodes. The `daemonset-preloaded.yaml` file is used\nto trigger that installation. See instructions to use GPUs from GKE at\nhttps://cloud.google.com/kubernetes-engine/docs/how-to/gpus\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R525.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: boot\n        hostPath:\n          path: /boot\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gke-nvidia-installer:fixed\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: boot\n          mountPath: /boot\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        env:\n        - name: NVIDIA_DRIVER_VERSION\n          value: \"525.105.17\"\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R535.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: boot\n        hostPath:\n          path: /boot\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gke-nvidia-installer:fixed\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: boot\n          mountPath: /boot\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        env:\n        - name: NVIDIA_DRIVER_VERSION\n          value: \"535.161.07\"\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R550.yaml",
    "content": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: boot\n        hostPath:\n          path: /boot\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gke-nvidia-installer:fixed\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: boot\n          mountPath: /boot\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        env:\n        - name: NVIDIA_DRIVER_VERSION\n          value: \"550.90.12\"\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n    "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R570.yaml",
    "content": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: boot\n        hostPath:\n          path: /boot\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gke-nvidia-installer:fixed\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: boot\n          mountPath: /boot\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n        env:\n        - name: NVIDIA_DRIVER_VERSION\n          value: \"570.124.06\"\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n              - key: cloud.google.com/gke-gpu-driver-version\n                operator: DoesNotExist\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: boot\n        hostPath:\n          path: /boot\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gke-nvidia-installer:fixed\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: boot\n          mountPath: /boot\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      priorityClassName: system-node-critical\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: nvidia-install-dir-host\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: root-mount\n        hostPath:\n          path: /\n      initContainers:\n      - image: gcr.io/google-containers/ubuntu-nvidia-driver-installer@sha256:70a572cf27316a7eac168107f5da823effe49a8d69e38d3292cf1a9d52c4c1d7\n        name: nvidia-driver-installer\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        env:\n          - name: NVIDIA_INSTALL_DIR_HOST\n            value: /home/kubernetes/bin/nvidia\n          - name: NVIDIA_INSTALL_DIR_CONTAINER\n            value: /usr/local/nvidia\n          - name: ROOT_MOUNT_DIR\n            value: /root\n        volumeMounts:\n        - name: nvidia-install-dir-host\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: root-mount\n          mountPath: /root\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/entrypoint.sh",
    "content": "#!/bin/bash\n# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o pipefail\nset -u\n\nset -x\nNVIDIA_DRIVER_BRANCH=\"${NVIDIA_DRIVER_BRANCH:-tesla}\"\nNVIDIA_DRIVER_VERSION=\"${NVIDIA_DRIVER_VERSION:-384.111}\"\nNVIDIA_DRIVER_DOWNLOAD_URL_DEFAULT=\"https://us.download.nvidia.com/${NVIDIA_DRIVER_BRANCH}/${NVIDIA_DRIVER_VERSION}/NVIDIA-Linux-x86_64-${NVIDIA_DRIVER_VERSION}.run\"\nNVIDIA_DRIVER_DOWNLOAD_URL=\"${NVIDIA_DRIVER_DOWNLOAD_URL:-$NVIDIA_DRIVER_DOWNLOAD_URL_DEFAULT}\"\nNVIDIA_INSTALL_DIR_HOST=\"${NVIDIA_INSTALL_DIR_HOST:-/var/lib/nvidia}\"\nNVIDIA_INSTALL_DIR_CONTAINER=\"${NVIDIA_INSTALL_DIR_CONTAINER:-/usr/local/nvidia}\"\nNVIDIA_INSTALLER_RUNFILE=\"$(basename \"${NVIDIA_DRIVER_DOWNLOAD_URL}\")\"\nROOT_MOUNT_DIR=\"${ROOT_MOUNT_DIR:-/root}\"\nCACHE_FILE=\"${NVIDIA_INSTALL_DIR_CONTAINER}/.cache\"\nKERNEL_VERSION=\"$(uname -r)\"\nset +x\n\ncheck_cached_version() {\n  echo \"Checking cached version\"\n  if [[ ! -f \"${CACHE_FILE}\" ]]; then\n    echo \"Cache file ${CACHE_FILE} not found.\"\n    return 1\n  fi\n\n  # Source the cache file and check if the cached driver matches\n  # currently running kernel version and requested driver versions.\n  . \"${CACHE_FILE}\"\n  if [[ \"${KERNEL_VERSION}\" == \"${CACHE_KERNEL_VERSION}\" ]]; then\n    if [[ \"${NVIDIA_DRIVER_VERSION}\" == \"${CACHE_NVIDIA_DRIVER_VERSION}\" ]]; then\n      echo \"Found existing driver installation for kernel version ${KERNEL_VERSION} and driver version ${NVIDIA_DRIVER_VERSION}.\"\n      return 0\n    fi\n  fi\n  echo \"Cache file ${CACHE_FILE} found but existing versions didn't match.\"\n  return 1\n}\n\nupdate_cached_version() {\n  cat >\"${CACHE_FILE}\"<<__EOF__\nCACHE_KERNEL_VERSION=${KERNEL_VERSION}\nCACHE_NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION}\n__EOF__\n\n  echo \"Updated cached version as:\"\n  cat \"${CACHE_FILE}\"\n}\n\nupdate_container_ld_cache() {\n  echo \"Updating container's ld cache...\"\n  echo \"${NVIDIA_INSTALL_DIR_CONTAINER}/lib64\" > /etc/ld.so.conf.d/nvidia.conf\n  ldconfig\n  echo \"Updating container's ld cache... DONE.\"\n}\n\ndownload_kernel_src() {\n  echo \"Downloading kernel sources...\"\n  apt-get update && apt-get install -y linux-headers-${KERNEL_VERSION}\n  echo \"Downloading kernel sources... DONE.\"\n}\n\nconfigure_nvidia_installation_dirs() {\n  echo \"Configuring installation directories...\"\n  mkdir -p \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of `nvidia-modprobe` utility and always installs it\n  # under /usr/bin. The following workaround ensures that\n  # `nvidia-modprobe` is accessible outside the installer container\n  # filesystem.\n  mkdir -p bin bin-workdir\n  mount -t overlay -o lowerdir=/usr/bin,upperdir=bin,workdir=bin-workdir none /usr/bin\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of libraries such as libnvidia-ml.so. The following\n  # workaround ensures that the libs are accessible from outside the\n  # installer container filesystem.\n  mkdir -p lib64 lib64-workdir\n  mkdir -p /usr/lib/x86_64-linux-gnu\n  mount -t overlay -o lowerdir=/usr/lib/x86_64-linux-gnu,upperdir=lib64,workdir=lib64-workdir none /usr/lib/x86_64-linux-gnu\n\n  # nvidia-installer does not provide an option to configure the\n  # installation path of driver kernel modules such as nvidia.ko. The following\n  # workaround ensures that the modules are accessible from outside the\n  # installer container filesystem.\n  mkdir -p drivers drivers-workdir\n  mkdir -p /lib/modules/${KERNEL_VERSION}/video\n  mount -t overlay -o lowerdir=/lib/modules/${KERNEL_VERSION}/video,upperdir=drivers,workdir=drivers-workdir none /lib/modules/${KERNEL_VERSION}/video\n\n  # Populate ld.so.conf to avoid warning messages in nvidia-installer logs.\n  update_container_ld_cache\n\n  # Install an exit handler to cleanup the overlayfs mount points.\n  trap \"{ umount /lib/modules/${KERNEL_VERSION}/video; umount /usr/lib/x86_64-linux-gnu ; umount /usr/bin; }\" EXIT\n  popd\n  echo \"Configuring installation directories... DONE.\"\n}\n\ndownload_nvidia_installer() {\n  echo \"Downloading Nvidia installer...\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  curl -L -S -f \"${NVIDIA_DRIVER_DOWNLOAD_URL}\" -o \"${NVIDIA_INSTALLER_RUNFILE}\"\n  popd\n  echo \"Downloading Nvidia installer... DONE.\"\n}\n\nrun_nvidia_installer() {\n  echo \"Running Nvidia installer...\"\n  pushd \"${NVIDIA_INSTALL_DIR_CONTAINER}\"\n  sh \"${NVIDIA_INSTALLER_RUNFILE}\" \\\n    --utility-prefix=\"${NVIDIA_INSTALL_DIR_CONTAINER}\" \\\n    --opengl-prefix=\"${NVIDIA_INSTALL_DIR_CONTAINER}\" \\\n    --no-install-compat32-libs \\\n    --log-file-name=\"${NVIDIA_INSTALL_DIR_CONTAINER}/nvidia-installer.log\" \\\n    --no-drm \\\n    --silent \\\n    --accept-license\n  popd\n  echo \"Running Nvidia installer... DONE.\"\n}\n\nconfigure_cached_installation() {\n  echo \"Configuring cached driver installation...\"\n  update_container_ld_cache\n  if ! lsmod | grep -w 'nvidia' > /dev/null; then\n    insmod \"${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia.ko\"\n  fi\n  if ! lsmod | grep -w 'nvidia_uvm' > /dev/null; then\n    insmod \"${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia-uvm.ko\"\n  fi\n  echo \"Configuring cached driver installation... DONE\"\n}\n\nverify_nvidia_installation() {\n  echo \"Verifying Nvidia installation...\"\n  export PATH=\"${NVIDIA_INSTALL_DIR_CONTAINER}/bin:${PATH}\"\n  nvidia-smi\n  # Create unified memory device file.\n  nvidia-modprobe -c0 -u\n  echo \"Verifying Nvidia installation... DONE.\"\n}\n\nupdate_host_ld_cache() {\n  echo \"Updating host's ld cache...\"\n  echo \"${NVIDIA_INSTALL_DIR_HOST}/lib64\" >> \"${ROOT_MOUNT_DIR}/etc/ld.so.conf\"\n  ldconfig -r \"${ROOT_MOUNT_DIR}\"\n  echo \"Updating host's ld cache... DONE.\"\n}\n\nmain() {\n  if check_cached_version; then\n    configure_cached_installation\n    verify_nvidia_installation\n  else\n    download_kernel_src\n    configure_nvidia_installation_dirs\n    download_nvidia_installer\n    run_nvidia_installer\n    update_cached_version\n    verify_nvidia_installation\n  fi\n  update_host_ld_cache\n}\n\nmain \"$@\"\n"
  },
  {
    "path": "nvidia-persistenced-installer/Dockerfile",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS builder\n\nARG TARGETOS\nARG TARGETARCH\n\nWORKDIR /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators\nCOPY . .\nRUN if [ \"${TARGETARCH}\" = \"arm64\" ] && [ \"${BUILDARCH}\" != \"arm64\" ]; then \\\n    apt update && \\\n    apt install -yq --no-install-recommends \\\n        gcc-aarch64-linux-gnu libc6-dev-arm64-cross; \\\n        CC=aarch64-linux-gnu-gcc; \\\n    fi && \\\n    GOTOOLCHAIN=local GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=1 CC=${CC} \\\n      go build nvidia-persistenced-installer/nvidia_persistenced_installer.go\nRUN chmod a+x /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_persistenced_installer\n\n# Final image requires ldconfig binary so we will copy it from the debian distribution.\nFROM marketplace.gcr.io/google/debian12 AS sbin_builder\n\nFROM gcr.io/distroless/base:latest\nCOPY --from=sbin_builder /usr/sbin/ldconfig /usr/sbin/ldconfig\nCOPY --from=builder /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_persistenced_installer /usr/bin/nvidia-persistenced-installer\nCMD [\"/usr/bin/nvidia-persistenced-installer\", \"-logtostderr\"]\n"
  },
  {
    "path": "nvidia-persistenced-installer/README.md",
    "content": "## To build Confidential GPU NVIDIA Persistence Daemon Installer Image\nFrom root of the repository, run:\n  `docker buildx build --pull --load -f nvidia-persistenced-installer/Dockerfile -t ${REGISTRY}/${IMAGE}:${TAG} .`\n"
  },
  {
    "path": "nvidia-persistenced-installer/nvidia_persistenced_installer.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"context\"\n\t\"flag\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/golang/glog\"\n)\n\nconst (\n\tminUVMSupportedVersion = 550\n\tSIGRTMIN               = 34\n)\n\nvar (\n\treadFile = os.ReadFile\n\n\tcontainerPathPrefix = flag.String(\"container-path\", \"/usr/local/nvidia\", \"Path on the container that mounts host nvidia install directory\")\n\tcgpuConfigFile      = flag.String(\"cgpu-config\", \"/etc/nvidia/confidential_node_type.txt\", \"File with Confidential Node Type used on Node\")\n\tmachineTypeFile     = flag.String(\"machine-type-file\", \"/etc/nvidia/machine_type.txt\", \"File with the Machine Type used on Node\")\n\treadyDelay          = flag.Int64(\"ready-delay-ms\", 1000, \"How much time to wait before setting GPU to ready state. Adding a delay helps to reduce the chances of a start up error.\")\n)\n\nfunc main() {\n\tflag.Parse()\n\tctx := context.Background()\n\n\t// Only run persistence daemon on confidential GPU nodes.\n\tenabled, err := checkConfidentialGPUEnablement(ctx)\n\tif err != nil {\n\t\tglog.ExitContextf(ctx, \"parseCGPUConfig failed: %v\", err)\n\t}\n\n\tif enabled {\n\t\t// This is necessary to be able to use nvidia smi from the container to set the GPU to a ready state.\n\t\tif err := updateContainerLdCache(); err != nil {\n\t\t\tglog.ExitContextf(ctx, \"updateContainerLdCache failed: %v\", err)\n\t\t}\n\n\t\tif err := enablePersistenceMode(ctx); err != nil {\n\t\t\tglog.ExitContextf(ctx, \"failed to start persistence mode: %v\", err)\n\t\t}\n\t\t// Add small delay before setting the ready state for consistency.\n\t\t// If the workload starts too close to when the persistence daemon has started sometimes there can be errors.\n\t\ttime.Sleep(time.Duration(*readyDelay) * time.Millisecond)\n\n\t\t// Mark GPU with ready state. If encounter no devices were found issue, reboot the node.\n\t\tif output, err := setGPUReadyState(ctx); err != nil {\n\t\t\tglog.Infof(\"failed to set gpu to ready state: %v, output: %s\", err, output)\n\t\t\tif strings.Contains(output, \"No devices were found\") {\n\t\t\t\tglog.Infof(\"No devices were found, rebooting node to resolve\")\n\t\t\t\tif err := rebootNode(); err != nil {\n\t\t\t\t\tglog.Errorf(\"Failed to trigger node reboot: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Exit, since we cannot proceed when encounter error.\n\t\t\tos.Exit(1)\n\t\t}\n\t} else {\n\t\tglog.InfoContext(ctx, \"Confidential GPU is NOT enabled, skipping nvidia persistenced enablement.\")\n\t\t// Don't exit as this is intended for a side car which would cause it to restart infinitely.\n\t}\n\n\t// Read machine type from the file generated by the initContainer\n\tmachineType, err := getMachineTypeFromFile(ctx)\n\tif err != nil {\n\t\tglog.WarningContextf(ctx, \"Failed to get machine type: %v\", err)\n\t} else if err := enableGriddDaemon(ctx, machineType); err != nil {\n\t\tglog.WarningContextf(ctx, \"Failed to enable nvidia-gridd: %v\", err)\n\t}\n\n\t// Need to keep the container running so that the nvidia persistence daemon can keep running.\n\t// Create a channel to listen for termination signals (SIGINT and SIGTERM)\n\tsigChan := make(chan os.Signal, 1)\n\tsignal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)\n\n\t// Block indefinitely until a signal is received\n\tsig := <-sigChan\n\tfmt.Printf(\"Received signal: %v. Shutting down...\\n\", sig)\n}\n\nfunc enablePersistenceMode(ctx context.Context) error {\n\tglog.InfoContext(ctx, \"Starting NVIDIA persistence daemon.\")\n\tcmdArgs := []string{}\n\tif versionMajor, err := nvidiaVersionMajor(ctx); err != nil {\n\t\treturn err\n\t} else if versionMajor >= minUVMSupportedVersion {\n\t\t// UVM persistence mode is only available starting at R550.\n\t\tcmdArgs = append(cmdArgs, \"--uvm-persistence-mode\")\n\t\tglog.InfoContext(ctx, \"using --uvm-persistence-mode\")\n\t}\n\tcmdArgs = append(cmdArgs, \"--nvidia-cfg-path=\"+*containerPathPrefix+\"/lib64\")\n\tpersistencedCMD := exec.Command(*containerPathPrefix+\"/bin/nvidia-persistenced\", cmdArgs...)\n\tif err := persistencedCMD.Run(); err != nil {\n\t\treturn err\n\t}\n\tglog.InfoContext(ctx, \"NVIDIA Persistence Mode Enabled.\")\n\treturn nil\n}\n\nfunc setGPUReadyState(ctx context.Context) (string, error) {\n\tgpuReadyCMD := exec.Command(*containerPathPrefix+\"/bin/nvidia-smi\", \"conf-compute\", \"-srs\", \"1\")\n\tif output, err := gpuReadyCMD.CombinedOutput(); err != nil {\n\t\treturn string(output), err\n\t}\n\tglog.InfoContext(ctx, \"Confidential GPU is ready.\")\n\treturn \"\", nil\n}\n\nfunc updateContainerLdCache() error {\n\tf, err := os.Create(\"/etc/ld.so.conf.d/nvidia.conf\")\n\tif err != nil {\n\t\tf.Close()\n\t\treturn fmt.Errorf(\"failed to update ld cache: %w\", err)\n\t}\n\tf.WriteString(*containerPathPrefix + \"/lib64\")\n\tf.Close()\n\terr = exec.Command(\"ldconfig\").Run()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to update ld cache: %w\", err)\n\t}\n\treturn nil\n}\n\nfunc getLoadedNVIDIAKernelModuleVersion(ctx context.Context, versionFilePath string) string {\n\tglog.InfoContextf(ctx, \"Attempting to read nvidia gpu driver version from: %s\", versionFilePath)\n\tcontent, err := os.ReadFile(versionFilePath)\n\tif err != nil {\n\t\tglog.ErrorContextf(ctx, \"Failed to read version file: %v\", err)\n\t\treturn \"\"\n\t}\n\tcontentStr := string(content)\n\tkernelModuleVersionPattern := regexp.MustCompile(`\\d+\\.\\d+\\.\\d+`)\n\tkernelModuleVersion := kernelModuleVersionPattern.FindString(contentStr)\n\tglog.InfoContextf(ctx, \"nvidia gpu driver version: %s\", kernelModuleVersion)\n\treturn kernelModuleVersion\n}\n\nfunc nvidiaVersionMajor(ctx context.Context) (int, error) {\n\tversion := getLoadedNVIDIAKernelModuleVersion(ctx, \"/proc/driver/nvidia/version\")\n\tif version == \"\" {\n\t\treturn 0, fmt.Errorf(\"failed to read nvidia gpu driver version at /proc/driver/nvidia/version\")\n\t}\n\n\t// Will be in this format as it was validated by the regex beforehand: 535.230.02\n\tbefore, _, found := strings.Cut(version, \".\")\n\tif !found || len(before) != 3 {\n\t\treturn 0, fmt.Errorf(\"invalid nvidia gpu driver version: %v\", version)\n\t}\n\n\tversionMajor, err := strconv.Atoi(before)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid nvidia gpu driver version(%v), %w\", version, err)\n\t}\n\treturn versionMajor, nil\n}\n\nfunc checkConfidentialGPUEnablement(ctx context.Context) (bool, error) {\n\tfile, err := readFile(*cgpuConfigFile)\n\tif err != nil {\n\t\t// Treat non existence of file as disabled.\n\t\tif os.IsNotExist(err) {\n\t\t\tglog.InfoContextf(ctx, \"confidential node type file not found at %v, skipping persistenced installation\", *cgpuConfigFile)\n\t\t\treturn false, nil\n\t\t}\n\t\treturn false, err\n\t}\n\t// Remove any trailing spaces and null strings to avoid issues in comparison.\n\tconfidentialNodeType := strings.ToLower(strings.Trim(string(file), \" \\r\\n\\x00\"))\n\treturn confidentialNodeType == \"tdx\" || confidentialNodeType == \"sev\", nil\n}\n\nfunc rebootNode() error {\n\t// Gracefully reboot systemd: https://man7.org/linux/man-pages/man1/systemd.1.html#SIGNALS\n\treturn syscall.Kill(1, SIGRTMIN+5)\n}\n\nfunc getMachineTypeFromFile(ctx context.Context) (string, error) {\n\tfile, err := readFile(*machineTypeFile)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\tglog.InfoContextf(ctx, \"machine type file not found at %v\", *machineTypeFile)\n\t\t\treturn \"\", nil\n\t\t}\n\t\treturn \"\", err\n\t}\n\treturn strings.TrimSpace(string(file)), nil\n}\n\nfunc enableGriddDaemon(ctx context.Context, machineType string) error {\n\tconst (\n\t\tG4_STANDARD_6  = \"g4-standard-6\"\n\t\tG4_STANDARD_12 = \"g4-standard-12\"\n\t\tG4_STANDARD_24 = \"g4-standard-24\"\n\t)\n\n\tif machineType != G4_STANDARD_6 && machineType != G4_STANDARD_12 && machineType != G4_STANDARD_24 {\n\t\tglog.InfoContextf(ctx, \"Machine type %s does not require nvidia-gridd.\", machineType)\n\t\treturn nil\n\t}\n\n\tgriddPath := *containerPathPrefix + \"/bin/nvidia-gridd\"\n\tgriddLibsPath := *containerPathPrefix + \"/gridd-libs\"\n\n\tglog.InfoContextf(ctx, \"Waiting for %s to appear...\", griddPath)\n\tfor {\n\t\tif _, err := os.Stat(griddPath); err == nil {\n\t\t\tglog.InfoContextf(ctx, \"Found %s, proceeding to start daemon.\", griddPath)\n\t\t\tbreak\n\t\t}\n\t\ttime.Sleep(10 * time.Second)\n\t}\n\n\trootMountDir := os.Getenv(\"ROOT_MOUNT_DIR\")\n\tif rootMountDir == \"\" {\n\t\trootMountDir = \"/root\"\n\t}\n\n\t// Link necessary libraries manually\n\thostLib64 := rootMountDir + \"/lib64\"\n\thostUsrLib64 := rootMountDir + \"/usr/lib64\"\n\tlinkerPath := rootMountDir + \"/lib64/ld-linux-x86-64.so.2\"\n\n\tglog.InfoContextf(ctx, \"Waiting for dynamic linker %s to appear...\", linkerPath)\n\tfor {\n\t\tif _, err := os.Stat(linkerPath); err == nil {\n\t\t\tbreak\n\t\t}\n\t\ttime.Sleep(10 * time.Second)\n\t}\n\n\tglog.InfoContextf(ctx, \"Starting nvidia-gridd daemon via host dynamic linker: %s\", linkerPath)\n\n\tlibPathStr := strings.Join([]string{griddLibsPath, hostLib64, hostUsrLib64}, \":\")\n\tcmd := exec.Command(linkerPath, \"--library-path\", libPathStr, griddPath)\n\n\toutput, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to run nvidia-gridd: %w, output: %s\", err, string(output))\n\t}\n\n\tglog.InfoContext(ctx, \"nvidia-gridd daemon started.\")\n\treturn nil\n}\n"
  },
  {
    "path": "nvidia-persistenced-installer/nvidia_persistenced_installer_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"testing\"\n)\n\ntype fakeReadFileFunc func(name string) ([]byte, error)\n\nfunc TestCheckConfidentialGPUEnabled(t *testing.T) {\n\ttestcases := []struct {\n\t\tname         string\n\t\treadFileFunc fakeReadFileFunc\n\t\twantEnabled  bool\n\t\twantErr      bool\n\t}{\n\t\t{\n\t\t\tname: \"file not found\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn nil, os.ErrNotExist\n\t\t\t},\n\t\t\twantEnabled: false,\n\t\t},\n\t\t{\n\t\t\tname: \"failed to read file\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn nil, os.ErrPermission\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"empty file\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn []byte{}, nil\n\t\t\t},\n\t\t\twantEnabled: false,\n\t\t},\n\t\t{\n\t\t\tname: \"tdx\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn []byte(\"TDX\"), nil\n\t\t\t},\n\t\t\twantEnabled: true,\n\t\t},\n\t\t{\n\t\t\tname: \"snp_sev\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn []byte(\"snp_sev\"), nil\n\t\t\t},\n\t\t\twantEnabled: false,\n\t\t},\n\t\t{\n\t\t\tname: \"trailing spaces - enabled\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn []byte(\"tdx  \"), nil\n\t\t\t},\n\t\t\twantEnabled: true,\n\t\t},\n\t\t{\n\t\t\tname: \"trailing spaces - disabled\",\n\t\t\treadFileFunc: func(name string) ([]byte, error) {\n\t\t\t\treturn []byte(\"other  \"), nil\n\t\t\t},\n\t\t\twantEnabled: false,\n\t\t},\n\t}\n\n\tfor _, tc := range testcases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\treadFile = tc.readFileFunc\n\n\t\t\tenabled, err := checkConfidentialGPUEnablement(context.Background())\n\n\t\t\tif err != nil && !tc.wantErr {\n\t\t\t\tt.Errorf(\"checkConfidentialGPUEnablement returned unexpected error %v\", err)\n\t\t\t}\n\n\t\t\tif enabled != tc.wantEnabled {\n\t\t\t\tt.Errorf(\"checkConfidentialGPUEnablement returned unexpected enablement: want %v, got %v\", tc.wantEnabled, enabled)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "partition_gpu/Dockerfile",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS builder\n\nARG TARGETOS\nARG TARGETARCH\n\nWORKDIR /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators\nCOPY . .\nRUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o gpu_partitioner partition_gpu/partition_gpu.go\nRUN chmod a+x /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/gpu_partitioner\n\nFROM gke.gcr.io/gke-distroless/bash:gke_distroless_20260207.00_p0@sha256:002b4b70bf122aaed02d9ba7158a5ce8424a5cc4342cc304ab6c254943f6a5da\nCOPY --from=builder /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/gpu_partitioner /usr/bin/gpu_partitioner\nCMD [\"/usr/bin/gpu_partitioner\", \"-logtostderr\"]\n"
  },
  {
    "path": "partition_gpu/README.md",
    "content": "# Partition GPUs\n\nSimple command line tool to partition the GPUs as specified in a GPU configuration file. The GPU configuration file specifies the desired partition size, and this tool will use nvidia-smi to create the maximum number of partitions on the desired size on the node.\n\n## To build GPU partitoner image\nFrom root of the repository, run:\n  `docker buildx build --load -f partition_gpu/Dockerfile .`\n\n## To deploy GPU partitioner on all GPU nodes in GKE cluster\n  `kubectl apply -f partition_gpu.yaml`\n"
  },
  {
    "path": "partition_gpu/partition_gpu.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"bufio\"\n\t\"encoding/json\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"regexp\"\n\t\"strings\"\n\t\"syscall\"\n\n\t\"github.com/golang/glog\"\n)\n\nvar (\n\tnvidiaSmiPath = flag.String(\"nvidia-smi-path\", \"/usr/local/nvidia/bin/nvidia-smi\", \"Path where nvidia-smi is installed.\")\n\tgpuConfigFile = flag.String(\"gpu-config\", \"/etc/nvidia/gpu_config.json\", \"File with GPU configurations for device plugin\")\n)\n\nvar partitionSizeToProfileID = map[string]string{\n\t//nvidia-tesla-a100\n\t\"1g.5gb\":  \"19\",\n\t\"2g.10gb\": \"14\",\n\t\"3g.20gb\": \"9\",\n\t\"4g.20gb\": \"5\",\n\t\"7g.40gb\": \"0\",\n\t//nvidia-a100-80gb, nvidia-h100-80gb\n\t\"1g.10gb\": \"19\",\n\t\"2g.20gb\": \"14\",\n\t\"3g.40gb\": \"9\",\n\t\"4g.40gb\": \"5\",\n\t\"7g.80gb\": \"0\",\n\t//nvidia-h100-80gb\n\t\"1g.20gb\": \"15\",\n\n\t//nvidia-h200-141gb\n\t\"1g.18gb\":  \"19\",\n\t\"1g.35gb\":  \"15\",\n\t\"2g.35gb\":  \"14\",\n\t\"3g.71gb\":  \"9\",\n\t\"4g.71gb\":  \"5\",\n\t\"7g.141gb\": \"0\",\n\n\t//nvidia-b200, nvidia-gb200\n\t\"1g.23gb\": \"19\",\n\t//nvidia-b200\n\t\"1g.45gb\":  \"15\",\n\t\"2g.45gb\":  \"14\",\n\t\"3g.90gb\":  \"9\",\n\t\"4g.90gb\":  \"5\",\n\t\"7g.180gb\": \"0\",\n\n\t//nvidia-gb200\n\t\"1g.47gb\":  \"15\",\n\t\"2g.47gb\":  \"14\",\n\t\"3g.93gb\":  \"9\",\n\t\"4g.93gb\":  \"5\",\n\t\"7g.186gb\": \"0\",\n\n\t// nvidia-rtx-pro-6000\n\t\"1g.24gb\":        \"14\",\n\t\"1g.24gb+me\":     \"21\",\n\t\"1g.24gb+gfx\":    \"47\",\n\t\"1g.24gb+me.all\": \"65\",\n\t\"1g.24gb-me\":     \"67\",\n\t\"2g.48gb\":        \"5\",\n\t\"2g.48gb+gfx\":    \"35\",\n\t\"2g.48gb+me.all\": \"64\",\n\t\"2g.48gb-me\":     \"66\",\n\t\"4g.96gb\":        \"0\",\n\t\"4g.96gb+gfx\":    \"32\",\n}\n\nvar partitionSizeMaxCount = map[string]int{\n\t//nvidia-tesla-a100\n\t\"1g.5gb\":  7,\n\t\"2g.10gb\": 3,\n\t\"3g.20gb\": 2,\n\t\"4g.20gb\": 1,\n\t\"7g.40gb\": 1,\n\t//nvidia-a100-80gb, nvidia-h100-80gb\n\t\"1g.10gb\": 7,\n\t\"2g.20gb\": 3,\n\t\"3g.40gb\": 2,\n\t\"4g.40gb\": 1,\n\t\"7g.80gb\": 1,\n\t//nvidia-h100-80gb\n\t\"1g.20gb\": 4,\n\t//nvidia-h200-141gb\n\t\"1g.18gb\":  7,\n\t\"1g.35gb\":  4,\n\t\"2g.35gb\":  3,\n\t\"3g.71gb\":  2,\n\t\"4g.71gb\":  1,\n\t\"7g.141gb\": 1,\n\t//nvidia-b200, nvidia-gb200\n\t\"1g.23gb\": 7,\n\t//nvidia-b200\n\t\"1g.45gb\":  4,\n\t\"2g.45gb\":  3,\n\t\"3g.90gb\":  2,\n\t\"4g.90gb\":  1,\n\t\"7g.180gb\": 1,\n\t//nvidia-gb200\n\t\"1g.47gb\":  4,\n\t\"2g.47gb\":  3,\n\t\"3g.93gb\":  2,\n\t\"4g.93gb\":  1,\n\t\"7g.186gb\": 1,\n\t//nvidia-rtx-pro-6000\n\t\"1g.24gb\":        4,\n\t\"1g.24gb+me\":     1,\n\t\"1g.24gb+gfx\":    4,\n\t\"1g.24gb+me.all\": 1,\n\t\"1g.24gb-me\":     4,\n\t\"2g.48gb\":        2,\n\t\"2g.48gb+gfx\":    2,\n\t\"2g.48gb+me.all\": 1,\n\t\"2g.48gb-me\":     2,\n\t\"4g.96gb\":        1,\n\t\"4g.96gb+gfx\":    1,\n}\n\nconst (\n\tSIGRTMIN         = 34\n\tNvidiaGB200      = \"NVIDIA GB200\"          //nvidia-gb200\n\tNvidiaB200       = \"NVIDIA B200\"           //nvidia-b200\n\tNvidia141gbH200  = \"NVIDIA H200\"           //nvidia-h200-141gb\n\tNvidia80gbH100   = \"NVIDIA H100 80GB HBM3\" //nvidia-h100-80gb\n\tNvidia40gbA100   = \"NVIDIA A100-SXM4-40GB\" //nvidia-tesla-a100\n\tNvidia80gbA100   = \"NVIDIA A100-SXM4-80GB\" //nvidia-a100-80gb\n\tNvidiaRtxPro6000 = \"NVIDIA RTX PRO 6000\"   // nvidia-rtx-pro-6000\n)\n\n// GPUConfig stores the settings used to configure the GPUs on a node.\ntype GPUConfig struct {\n\tGPUPartitionSize string\n}\n\nfunc main() {\n\tflag.Parse()\n\n\tif _, err := os.Stat(*gpuConfigFile); os.IsNotExist(err) {\n\t\tglog.Infof(\"No GPU config file given, nothing to do.\")\n\t\treturn\n\t}\n\tgpuConfig, err := parseGPUConfig(*gpuConfigFile)\n\tif err != nil {\n\t\tglog.Infof(\"failed to parse GPU config file, taking no action.\")\n\t\treturn\n\t}\n\tglog.Infof(\"Using gpu config: %v\", gpuConfig)\n\tif gpuConfig.GPUPartitionSize == \"\" {\n\t\tglog.Infof(\"No GPU partitions are required, exiting\")\n\t\treturn\n\t}\n\n\tif _, err := os.Stat(*nvidiaSmiPath); os.IsNotExist(err) {\n\t\tglog.Errorf(\"nvidia-smi path %s not found: %v\", *nvidiaSmiPath, err)\n\t\tos.Exit(1)\n\t}\n\n\tmigModeEnabled, err := currentMigMode()\n\tif err != nil {\n\t\tglog.Errorf(\"Failed to check if MIG mode is enabled: %v\", err)\n\t\tos.Exit(1)\n\t}\n\tif !migModeEnabled {\n\t\tglog.Infof(\"MIG mode is not enabled. Enabling now.\")\n\t\tglog.Infof(\"Checking the GPU type now.\")\n\t\tgpuType, err := checkGpuType()\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Failed to check GPU Type: %v\", err)\n\t\t\tos.Exit(1)\n\t\t}\n\t\tglog.Infof(\"Got GPU type used: %s\", gpuType)\n\t\tif err := enableMigMode(); err != nil {\n\t\t\tglog.Errorf(\"Failed to enable MIG mode: %v\", err)\n\t\t\tos.Exit(1)\n\t\t}\n\t\t// On NVIDIA Ampere GPUs, when MIG mode is enabled, the driver will attempt to reset the GPU so that MIG mode can take effect.\n\t\t// Starting with the Hopper generation of GPUs, enabling MIG mode no longer requires a GPU reset to take effect.\n\t\t// See https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#enable-mig-mode for more information\n\t\tif gpuType == Nvidia40gbA100 || gpuType == Nvidia80gbA100 {\n\t\t\tglog.Infof(\"Rebooting node to enable MIG mode\")\n\t\t\tif err := rebootNode(); err != nil {\n\t\t\t\tglog.Errorf(\"Failed to trigger node reboot after enabling MIG mode: %v\", err)\n\t\t\t}\n\t\t\t// Exit, since we cannot proceed until node has rebooted, for MIG changes to take effect on NVIDIA Ampere GPUs.\n\t\t\tos.Exit(1)\n\t\t}\n\t}\n\n\tglog.Infof(\"MIG mode is enabled on all GPUs, proceeding to create GPU partitions.\")\n\n\t// get the current partitions\n\tdesiredMaxCount := partitionSizeMaxCount[gpuConfig.GPUPartitionSize]\n\tisDesiredPartition := checkCurrentPartitionProfileCounts(desiredMaxCount)\n\tif isDesiredPartition {\n\t\tglog.Infof(\"Current GPU partition configuration matches the desired state. No changes needed.\")\n\t\trunNvidiaSmiStatus()\n\t\treturn\n\t}\n\n\tglog.Infof(\"Current GPU partition configuration does not match the desired state. Reconfiguring partitions...\")\n\tglog.Infof(\"Cleaning up any existing GPU partitions\")\n\tif err := cleanupAllGPUPartitions(); err != nil {\n\t\tglog.Errorf(\"Failed to cleanup GPU partitions: %v\", err)\n\t\tos.Exit(1)\n\t}\n\n\tglog.Infof(\"Creating new GPU partitions\")\n\tif err := createGPUPartitions(gpuConfig.GPUPartitionSize); err != nil {\n\t\tglog.Errorf(\"Failed to create GPU partitions: %v\", err)\n\t\tos.Exit(1)\n\t}\n\n\trunNvidiaSmiStatus()\n}\n\nfunc parseGPUConfig(gpuConfigFile string) (GPUConfig, error) {\n\tvar gpuConfig GPUConfig\n\n\tgpuConfigContent, err := ioutil.ReadFile(gpuConfigFile)\n\tif err != nil {\n\t\treturn gpuConfig, fmt.Errorf(\"unable to read gpu config file %s: %v\", gpuConfigFile, err)\n\t}\n\n\tif err = json.Unmarshal(gpuConfigContent, &gpuConfig); err != nil {\n\t\treturn gpuConfig, fmt.Errorf(\"failed to parse GPU config file contents: %s, error: %v\", gpuConfigContent, err)\n\t}\n\treturn gpuConfig, nil\n}\n\n// currentMigMode returns whether mig mode is currently enabled all GPUs attached to this node.\nfunc currentMigMode() (bool, error) {\n\tout, err := exec.Command(*nvidiaSmiPath, \"--query-gpu=mig.mode.current\", \"--format=csv,noheader\").Output()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif strings.HasPrefix(string(out), \"Enabled\") {\n\t\treturn true, nil\n\t}\n\tif strings.HasPrefix(string(out), \"Disabled\") {\n\t\treturn false, nil\n\t}\n\treturn false, fmt.Errorf(\"nvidia-smi returned invalid output: %s\", out)\n}\n\n// enableMigMode enables MIG mode on all GPUs attached to the node. Requires node restart to take effect.\nfunc enableMigMode() error {\n\treturn exec.Command(*nvidiaSmiPath, \"-mig\", \"1\").Run()\n}\n\n// checkGpuType checkes the GPU type used\nfunc checkGpuType() (string, error) {\n\tgpuType, err := exec.Command(*nvidiaSmiPath, \"--query-gpu=gpu_name\", \"--format=csv,noheader\").Output()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tswitch {\n\tcase strings.HasPrefix(string(gpuType), NvidiaGB200):\n\t\treturn NvidiaGB200, nil\n\tcase strings.HasPrefix(string(gpuType), NvidiaB200):\n\t\treturn NvidiaB200, nil\n\tcase strings.HasPrefix(string(gpuType), Nvidia141gbH200):\n\t\treturn Nvidia141gbH200, nil\n\tcase strings.HasPrefix(string(gpuType), Nvidia80gbH100):\n\t\treturn Nvidia80gbH100, nil\n\tcase strings.HasPrefix(string(gpuType), Nvidia40gbA100):\n\t\treturn Nvidia40gbA100, nil\n\tcase strings.HasPrefix(string(gpuType), Nvidia80gbA100):\n\t\treturn Nvidia80gbA100, nil\n\tcase strings.HasPrefix(string(gpuType), NvidiaRtxPro6000):\n\t\treturn NvidiaRtxPro6000, nil\n\t}\n\treturn \"\", fmt.Errorf(\"nvidia-smi returned invalid GPU type for MIG: %s\", gpuType)\n}\n\nfunc rebootNode() error {\n\t// Gracefully reboot systemd: https://man7.org/linux/man-pages/man1/systemd.1.html#SIGNALS\n\treturn syscall.Kill(1, SIGRTMIN+5)\n}\n\nfunc cleanupAllGPUPartitions() error {\n\targs := []string{\"mig\", \"-dci\"}\n\tglog.Infof(\"Running %s %s\", *nvidiaSmiPath, strings.Join(args, \" \"))\n\tout, err := exec.Command(*nvidiaSmiPath, args...).Output()\n\tif err != nil && !strings.Contains(string(out), \"No GPU instances found\") &&\n\t\t!strings.Contains(string(out), \"No compute instances found\") {\n\t\treturn fmt.Errorf(\"failed to destroy compute instance, nvidia-smi output: %s, error: %v \", string(out), err)\n\t}\n\tglog.Infof(\"Output:\\n %s\", string(out))\n\n\targs = []string{\"mig\", \"-dgi\"}\n\tglog.Infof(\"Running %s %s\", *nvidiaSmiPath, strings.Join(args, \" \"))\n\tout, err = exec.Command(*nvidiaSmiPath, args...).Output()\n\tif err != nil && !strings.Contains(string(out), \"No GPU instances found\") &&\n\t\t!strings.Contains(string(out), \"No compute instances found\") {\n\t\treturn fmt.Errorf(\"failed to destroy gpu instance, nvidia-smi output: %s, error: %v \", string(out), err)\n\t}\n\tglog.Infof(\"Output:\\n %s\", string(out))\n\treturn nil\n}\n\nfunc createGPUPartitions(partitionSize string) error {\n\tp, err := buildPartitionStr(partitionSize)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\targs := []string{\"mig\", \"-cgi\", p}\n\tglog.Infof(\"Running %s %s\", *nvidiaSmiPath, strings.Join(args, \" \"))\n\tout, err := exec.Command(*nvidiaSmiPath, args...).Output()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create GPU Instances: output: %s, error: %v\", string(out), err)\n\t}\n\tglog.Infof(\"Output:\\n %s\", string(out))\n\n\targs = []string{\"mig\", \"-cci\"}\n\tglog.Infof(\"Running %s %s\", *nvidiaSmiPath, strings.Join(args, \" \"))\n\tout, err = exec.Command(*nvidiaSmiPath, args...).Output()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create compute instances: output: %s, error: %v\", string(out), err)\n\t}\n\tglog.Infof(\"Output:\\n %s\", string(out))\n\n\treturn nil\n\n}\n\nfunc buildPartitionStr(partitionSize string) (string, error) {\n\tif partitionSize == \"\" {\n\t\treturn \"\", nil\n\t}\n\n\tp, ok := partitionSizeToProfileID[partitionSize]\n\tif !ok {\n\t\treturn \"\", fmt.Errorf(\"%s is not a valid partition size\", partitionSize)\n\t}\n\n\tpartitionStr := p\n\tfor i := 1; i < partitionSizeMaxCount[partitionSize]; i++ {\n\t\tpartitionStr += fmt.Sprintf(\",%s\", p)\n\t}\n\n\treturn partitionStr, nil\n}\n\n// getCurrentPartitionProfileCounts checks for active MIG GPU instances,\n// and outputs a map of their profileIDs -> counts\nfunc checkCurrentPartitionProfileCounts(desiredMaxCount int) bool {\n\targs := []string{\"mig\", \"-lgi\"}\n\tout, err := exec.Command(*nvidiaSmiPath, args...).Output()\n\tif err != nil {\n\t\tglog.Errorf(\"failed to execute 'nvidia-smi mig -lgi': %v\", err)\n\t\treturn false\n\t}\n\n\tglog.Infof(\"Output:\\n %s\", string(out))\n\toutputText := string(out)\n\tpartitions, uniform, lgiError := parseLGIOutput(outputText)\n\tif lgiError != nil {\n\t\tglog.Errorf(\"failed to parse 'nvidia-smi mig -lgi' output: %v\", lgiError)\n\t\treturn false\n\t}\n\tif !uniform {\n\t\tglog.Info(\"Partitions are not uniform, partition reconstruction needed.\")\n\t\treturn uniform\n\t}\n\tdesiredPartition := checkDesired(partitions, desiredMaxCount)\n\n\treturn desiredPartition\n}\n\n// returns profile id map and if uniform\nfunc parseLGIOutput(lgiOutput string) (map[string][]string, bool, error) {\n\tdataLineRegex, err := regexp.Compile(`^\\s*(\\d+)\\s+(MIG\\s+[\\w\\.]+)\\s+(\\d+)\\s+(\\d+)\\s+([\\d:]+)\\s*$`)\n\tif err != nil {\n\t\tglog.Errorf(\"Internal error: failed to compile regex: %v\", err)\n\t\treturn make(map[string][]string), false, err\n\t}\n\n\tgpuProfileIDsMap := make(map[string][]string)\n\tprofileIDFirst := \"\"\n\n\tscanner := bufio.NewScanner(strings.NewReader(lgiOutput))\n\tfor scanner.Scan() {\n\t\tline := strings.TrimSpace(scanner.Text())\n\n\t\tif strings.Contains(line, \"====\") {\n\t\t\tcontinue\n\t\t}\n\t\tif !strings.HasPrefix(line, \"|\") || !strings.HasSuffix(line, \"|\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tcontentInPipes := strings.TrimSpace(line[1 : len(line)-1])\n\t\tmatches := dataLineRegex.FindStringSubmatch(contentInPipes)\n\n\t\tif len(matches) == 6 {\n\t\t\tgpuIndex := matches[1]\n\t\t\tprofileID := matches[3]\n\t\t\tif profileIDFirst == \"\" {\n\t\t\t\tprofileIDFirst = profileID\n\t\t\t} else {\n\t\t\t\tif profileIDFirst != profileID {\n\t\t\t\t\treturn gpuProfileIDsMap, false, nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tgpuProfileIDsMap[gpuIndex] = append(gpuProfileIDsMap[gpuIndex], profileID)\n\t\t\tglog.Infof(\"Parsed GI on GPU %s: Profile ID %s\", gpuIndex, profileID)\n\t\t} else if contentInPipes != \"\" {\n\t\t\tglog.Infof(\"Line did not match expected GI data format: '%s' (Content: '%s')\", line, contentInPipes)\n\t\t}\n\t}\n\n\tif err := scanner.Err(); err != nil {\n\t\treturn gpuProfileIDsMap, false, err\n\t}\n\n\tif len(gpuProfileIDsMap) == 0 {\n\t\treturn gpuProfileIDsMap, false, nil\n\t}\n\tglog.Infof(\"map: %v\", gpuProfileIDsMap)\n\treturn gpuProfileIDsMap, true, nil\n}\n\nfunc checkDesired(partitions map[string][]string, desiredMaxCount int) bool {\n\tif len(partitions) == 0 {\n\t\treturn false\n\t}\n\n\tfor _, profileIDsOnGpu := range partitions {\n\t\tif len(profileIDsOnGpu) != desiredMaxCount {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc runNvidiaSmiStatus() {\n\tglog.Infof(\"Running %s\", *nvidiaSmiPath)\n\tout, err := exec.Command(*nvidiaSmiPath).Output()\n\tif err != nil {\n\t\tglog.Errorf(\"Failed to run nvidia-smi, output: %s, error: %v\", string(out), err)\n\t}\n\tglog.Infof(\"Output:\\n %s\", string(out))\n}\n"
  },
  {
    "path": "partition_gpu/partition_gpu.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# This daemonset deploys the GPU partitioner on all GPU nodes and partitions\n# the GPUs as defined in the GPU config file.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: partition-gpus\n  namespace: kube-system\n  labels:\n    k8s-app: partition-gpus\nspec:\n  selector:\n    matchLabels:\n      k8s-app: partition-gpus\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: partition-gpus\n        k8s-app: partition-gpus\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: cloud.google.com/gke-accelerator\n                operator: Exists\n      tolerations:\n      - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n      - name: dev\n        hostPath:\n          path: /dev\n      - name: nvidia\n        hostPath:\n          path: /home/kubernetes/bin/nvidia\n      - name: nvidia-config\n        hostPath:\n          path: /etc/nvidia\n      initContainers:\n      - image: \"gcr.io/gke-release/nvidia-partition-gpu@sha256:e226275da6c45816959fe43cde907ee9a85c6a2aa8a429418a4cadef8ecdb86a\"\n        name: partition-gpus\n        env:\n        - name: LD_LIBRARY_PATH\n          value: /usr/local/nvidia/lib64\n        resources:\n          requests:\n            cpu: 150m\n        securityContext:\n          privileged: true\n        volumeMounts:\n        - name: nvidia\n          mountPath: /usr/local/nvidia\n        - name: dev\n          mountPath: /dev\n        - name: nvidia-config\n          mountPath: /etc/nvidia\n      containers:\n      - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n        name: pause\n"
  },
  {
    "path": "partition_gpu/partition_gpu_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc Test_buildPartitionStr(t *testing.T) {\n\ttests := []struct {\n\t\tname          string\n\t\tpartitionSize string\n\t\twant          string\n\t\twantErr       bool\n\t}{\n\t\t{\n\t\t\tname:          \"Empty partition size\",\n\t\t\tpartitionSize: \"\",\n\t\t\twant:          \"\",\n\t\t\twantErr:       false,\n\t\t},\n\t\t{\n\t\t\tname:          \"Single partition\",\n\t\t\tpartitionSize: \"7g.40gb\",\n\t\t\twant:          \"0\",\n\t\t\twantErr:       false,\n\t\t},\n\t\t{\n\t\t\tname:          \"Invalid partition\",\n\t\t\tpartitionSize: \"8g.40gb\",\n\t\t\twant:          \"\",\n\t\t\twantErr:       true,\n\t\t},\n\t\t{\n\t\t\tname:          \"Two partitions\",\n\t\t\tpartitionSize: \"3g.20gb\",\n\t\t\twant:          \"9,9\",\n\t\t\twantErr:       false,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := buildPartitionStr(tt.partitionSize)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buildPartitionStr() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"buildPartitionStr() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_parseLGIOutput(t *testing.T) {\n\ttests := []struct {\n\t\tname        string\n\t\tlgiOutput   string\n\t\twantMap     map[string][]string\n\t\twantUniform bool\n\t}{\n\t\t{\n\t\t\tname:        \"Empty input\",\n\t\t\tlgiOutput:   \"\",\n\t\t\twantMap:     make(map[string][]string),\n\t\t\twantUniform: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Header and footer only\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU instances:                                                              |\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     make(map[string][]string),\n\t\t\twantUniform: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Single GPU, single GI, uniform\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n|   0   MIG 1g.5gb     19           0       00000000                          |\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     map[string][]string{\"0\": {\"19\"}},\n\t\t\twantUniform: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Single GPU, multiple GIs, uniform\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n|   0   MIG 1g.5gb     19           0       00000000                          |\n|   0   MIG 1g.5gb     19           1       00000001                          |\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     map[string][]string{\"0\": {\"19\", \"19\"}},\n\t\t\twantUniform: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Single GPU, multiple GIs, non-uniform profile IDs\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n|   0   MIG 1g.5gb     19           0       00000000                          |\n|   0   MIG 2g.10gb    14           0       01000000                          |\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     map[string][]string{\"0\": {\"19\"}},\n\t\t\twantUniform: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple GPUs, multiple GIs, all uniform\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n|   0   MIG 1g.5gb     19           0       00000000                          |\n|   0   MIG 1g.5gb     19           1       01000000                          |\n|   1   MIG 1g.5gb     19           0       00000000                          |\n|   1   MIG 1g.5gb     19           1       01000000                          |\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     map[string][]string{\"0\": {\"19\", \"19\"}, \"1\": {\"19\", \"19\"}},\n\t\t\twantUniform: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple GPUs, non-uniform profile IDs between GPUs\",\n\t\t\tlgiOutput: `\n+-----------------------------------------------------------------------------+\n| GPU   Profile Name   Profile ID   CI_ID   Address                           |\n|=============================================================================|\n|   0   MIG 1g.5gb     19           0       00000000                          |\n|   1   MIG 2g.10gb    14           0       00000000                          |\n+-----------------------------------------------------------------------------+\n\t\t\t`,\n\t\t\twantMap:     map[string][]string{\"0\": {\"19\"}},\n\t\t\twantUniform: false,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgotMap, gotUniform, _ := parseLGIOutput(tt.lgiOutput)\n\t\t\tif !reflect.DeepEqual(gotMap, tt.wantMap) {\n\t\t\t\tt.Errorf(\"parseLGIOutput() gotMap = %v, want %v\", gotMap, tt.wantMap)\n\t\t\t}\n\t\t\tif gotUniform != tt.wantUniform {\n\t\t\t\tt.Errorf(\"parseLGIOutput() gotUniform = %v, want %v\", gotUniform, tt.wantUniform)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_checkDesired(t *testing.T) {\n\ttests := []struct {\n\t\tname            string\n\t\tpartitions      map[string][]string\n\t\tdesiredMaxCount int\n\t\twant            bool\n\t}{\n\t\t{name: \"Empty partitions map\", partitions: make(map[string][]string), desiredMaxCount: 2, want: false},\n\t\t{name: \"Single GPU, count matches\", partitions: map[string][]string{\"0\": {\"19\", \"19\"}}, desiredMaxCount: 2, want: true},\n\t\t{name: \"Single GPU, count less than desired\", partitions: map[string][]string{\"0\": {\"19\"}}, desiredMaxCount: 2, want: false},\n\t\t{name: \"Single GPU, count more than desired\", partitions: map[string][]string{\"0\": {\"19\", \"19\", \"19\"}}, desiredMaxCount: 2, want: false},\n\t\t{name: \"Multiple GPUs, all counts match\", partitions: map[string][]string{\"0\": {\"19\", \"19\"}, \"1\": {\"14\", \"14\"}}, desiredMaxCount: 2, want: true},\n\t\t{name: \"Multiple GPUs, first GPU matches, second does not\", partitions: map[string][]string{\"0\": {\"19\", \"19\"}, \"1\": {\"14\"}}, desiredMaxCount: 2, want: false},\n\t\t{name: \"Multiple GPUs, first GPU does not match, second matches\", partitions: map[string][]string{\"0\": {\"19\"}, \"1\": {\"14\", \"14\"}}, desiredMaxCount: 2, want: false},\n\t\t{name: \"Multiple GPUs, no counts match\", partitions: map[string][]string{\"0\": {\"19\"}, \"1\": {\"14\"}}, desiredMaxCount: 2, want: false},\n\t\t{name: \"Partitions map has GPUs, but desired count is 0 (should be false as GPUs exist)\", partitions: map[string][]string{\"0\": {}}, desiredMaxCount: 0, want: true},\n\t\t{name: \"Partitions map has GPUs with items, desired count is 0\", partitions: map[string][]string{\"0\": {\"19\"}}, desiredMaxCount: 0, want: false},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := checkDesired(tt.partitions, tt.desiredMaxCount); got != tt.want {\n\t\t\t\tt.Errorf(\"checkDesired() = %v, want %v for partitions %v, desiredMaxCount %d\", got, tt.want, tt.partitions, tt.desiredMaxCount)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/beta_plugin.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvidia\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"time\"\n\n\t\"github.com/golang/glog\"\n\t\"golang.org/x/net/context\"\n\t\"google.golang.org/grpc\"\n\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/gpusharing\"\n)\n\ntype pluginServiceV1Beta1 struct {\n\tngm *nvidiaGPUManager\n}\n\nfunc (s *pluginServiceV1Beta1) GetDevicePluginOptions(ctx context.Context, e *pluginapi.Empty) (*pluginapi.DevicePluginOptions, error) {\n\treturn &pluginapi.DevicePluginOptions{}, nil\n}\n\nfunc (s *pluginServiceV1Beta1) ListAndWatch(emtpy *pluginapi.Empty, stream pluginapi.DevicePlugin_ListAndWatchServer) error {\n\tglog.Infoln(\"device-plugin: ListAndWatch start\")\n\tif err := s.sendDevices(stream); err != nil {\n\t\treturn err\n\t}\n\tfor {\n\t\tselect {\n\t\tcase d := <-s.ngm.Health:\n\t\t\tglog.Infof(\"device-plugin: %s device marked as %s\", d.ID, d.Health)\n\t\t\ts.ngm.SetDeviceHealth(d.ID, d.Health, d.Topology)\n\t\t\tif err := s.sendDevices(stream); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *pluginServiceV1Beta1) Allocate(ctx context.Context, requests *pluginapi.AllocateRequest) (*pluginapi.AllocateResponse, error) {\n\tresps := new(pluginapi.AllocateResponse)\n\tfor _, rqt := range requests.ContainerRequests {\n\t\t// Validate if the request is for shared GPUs and check if the request meets the GPU sharing conditions.\n\t\tif err := gpusharing.ValidateRequest(rqt.DevicesIDs, len(s.ngm.ListPhysicalDevices())); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresp := new(pluginapi.ContainerAllocateResponse)\n\t\t// Add all requested devices to Allocate Response\n\t\tfor _, id := range rqt.DevicesIDs {\n\t\t\tdevices, err := s.ngm.DeviceSpec(id)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tfor i := range devices {\n\t\t\t\tresp.Devices = append(resp.Devices, &devices[i])\n\t\t\t}\n\t\t}\n\t\t// Add all default devices to Allocate Response\n\t\tfor _, d := range s.ngm.defaultDevices {\n\t\t\tresp.Devices = append(resp.Devices, &pluginapi.DeviceSpec{\n\t\t\t\tHostPath:      d,\n\t\t\t\tContainerPath: d,\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t})\n\t\t}\n\n\t\tfor i := range s.ngm.mountPaths {\n\t\t\tresp.Mounts = append(resp.Mounts, &s.ngm.mountPaths[i])\n\t\t}\n\n\t\tresp.Envs = s.ngm.Envs(len(rqt.DevicesIDs))\n\t\tresps.ContainerResponses = append(resps.ContainerResponses, resp)\n\t}\n\treturn resps, nil\n}\n\nfunc (s *pluginServiceV1Beta1) PreStartContainer(ctx context.Context, r *pluginapi.PreStartContainerRequest) (*pluginapi.PreStartContainerResponse, error) {\n\tglog.Errorf(\"device-plugin: PreStart should NOT be called for GKE nvidia GPU device plugin\\n\")\n\treturn &pluginapi.PreStartContainerResponse{}, nil\n}\n\nfunc (s *pluginServiceV1Beta1) GetPreferredAllocation(context.Context, *pluginapi.PreferredAllocationRequest) (*pluginapi.PreferredAllocationResponse, error) {\n\tglog.Errorf(\"device-plugin: GetPreferredAllocation should NOT be called for GKE nvidia GPU device plugin\\n\")\n\treturn &pluginapi.PreferredAllocationResponse{}, nil\n}\n\nfunc (s *pluginServiceV1Beta1) RegisterService() {\n\tpluginapi.RegisterDevicePluginServer(s.ngm.grpcServer, s)\n}\n\n// TODO: remove this function once we move to probe based registration.\nfunc RegisterWithV1Beta1Kubelet(kubeletEndpoint, pluginEndpoint, resourceName string) error {\n\tconn, err := grpc.Dial(kubeletEndpoint, grpc.WithInsecure(),\n\t\tgrpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {\n\t\t\treturn net.DialTimeout(\"unix\", addr, timeout)\n\t\t}))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"device-plugin: cannot connect to kubelet service: %v\", err)\n\t}\n\tdefer conn.Close()\n\tclient := pluginapi.NewRegistrationClient(conn)\n\n\trequest := &pluginapi.RegisterRequest{\n\t\tVersion:      pluginapi.Version,\n\t\tEndpoint:     pluginEndpoint,\n\t\tResourceName: resourceName,\n\t}\n\n\tif _, err = client.Register(context.Background(), request); err != nil {\n\t\treturn fmt.Errorf(\"device-plugin: cannot register to kubelet service: %v\", err)\n\t}\n\treturn nil\n}\n\nfunc (s *pluginServiceV1Beta1) sendDevices(stream pluginapi.DevicePlugin_ListAndWatchServer) error {\n\tresp := new(pluginapi.ListAndWatchResponse)\n\tfor _, dev := range s.ngm.ListDevices() {\n\t\tresp.Devices = append(resp.Devices, &pluginapi.Device{ID: dev.ID, Health: dev.Health, Topology: dev.Topology})\n\t}\n\tglog.Infof(\"ListAndWatch: send devices %v\\n\", resp)\n\tif err := stream.Send(resp); err != nil {\n\t\tglog.Errorf(\"device-plugin: cannot update device states: %v\\n\", err)\n\t\ts.ngm.grpcServer.Stop()\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/beta_plugin_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvidia\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/nvmlutil\"\n\t\"github.com/google/go-cmp/cmp\"\n\t\"golang.org/x/net/context\"\n\t\"google.golang.org/grpc\"\n\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\ntype KubeletStub struct {\n\tsync.Mutex\n\tsocket         string\n\tpluginEndpoint string\n\tserver         *grpc.Server\n}\n\n// NewKubeletStub returns an initialized KubeletStub for testing purpose.\nfunc NewKubeletStub(socket string) *KubeletStub {\n\treturn &KubeletStub{\n\t\tsocket: socket,\n\t}\n}\n\nfunc (k *KubeletStub) Register(ctx context.Context, r *pluginapi.RegisterRequest) (*pluginapi.Empty, error) {\n\tk.Lock()\n\tdefer k.Unlock()\n\tk.pluginEndpoint = r.Endpoint\n\treturn &pluginapi.Empty{}, nil\n}\n\nfunc (k *KubeletStub) Start() error {\n\tos.Remove(k.socket)\n\ts, err := net.Listen(\"unix\", k.socket)\n\tif err != nil {\n\t\tfmt.Printf(\"Can't listen at the socket: %+v\", err)\n\t\treturn err\n\t}\n\n\tk.server = grpc.NewServer([]grpc.ServerOption{}...)\n\n\tpluginapi.RegisterRegistrationServer(k.server, k)\n\tgo k.server.Serve(s)\n\treturn nil\n}\n\nfunc TestNvidiaGPUManagerBetaAPI(t *testing.T) {\n\tcases := []struct {\n\t\tname            string\n\t\tgpuConfig       GPUConfig\n\t\twantDevices     map[string]*pluginapi.Device\n\t\tvalidRequests   []*pluginapi.ContainerAllocateRequest\n\t\tusedRequests    []*pluginapi.ContainerAllocateRequest\n\t\tinvalidRequests []*pluginapi.ContainerAllocateRequest\n\t\tnewRequests     []*pluginapi.ContainerAllocateRequest\n\t\tmode            string\n\t}{\n\t\t{\n\t\t\tname:      \"GPU manager\",\n\t\t\tgpuConfig: GPUConfig{},\n\t\t\twantDevices: map[string]*pluginapi.Device{\n\t\t\t\t\"nvidia0\": {\n\t\t\t\t\tID:     \"nvidia0\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia1\": {\n\t\t\t\t\tID:     \"nvidia1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0\"}},\n\t\t\t},\n\t\t\tusedRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia1\"}},\n\t\t\t},\n\t\t\tinvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia1\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia2\"}},\n\t\t\t},\n\t\t\tnewRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia2\"}},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"GPU manager with time-sharing\",\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"time-sharing\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantDevices: map[string]*pluginapi.Device{\n\t\t\t\t\"nvidia0/vgpu0\": {\n\t\t\t\t\tID:     \"nvidia0/vgpu0\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia0/vgpu1\": {\n\t\t\t\t\tID:     \"nvidia0/vgpu1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia1/vgpu0\": {\n\t\t\t\t\tID:     \"nvidia1/vgpu0\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia1/vgpu1\": {\n\t\t\t\t\tID:     \"nvidia1/vgpu1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/vgpu0\"}},\n\t\t\t},\n\t\t\tusedRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/vgpu0\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/vgpu0\"}},\n\t\t\t},\n\t\t\tinvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/vgpu0\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia2/vgpu0\"}},\n\t\t\t},\n\t\t\tnewRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia2/vgpu0\"}},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"GPU manager for MIG\",\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUPartitionSize: \"3g.20gb\",\n\t\t\t},\n\t\t\twantDevices: map[string]*pluginapi.Device{\n\t\t\t\t\"nvidia0/gi1\": {\n\t\t\t\t\tID:     \"nvidia0/gi1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia0/gi2\": {\n\t\t\t\t\tID:     \"nvidia0/gi2\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi1\"}},\n\t\t\t},\n\t\t\tusedRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi1\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi2\"}},\n\t\t\t},\n\t\t\tinvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi2\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/gi1\"}},\n\t\t\t},\n\t\t\tnewRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/gi1\"}},\n\t\t\t},\n\t\t\tmode: \"MIG\",\n\t\t},\n\t\t{\n\t\t\tname: \"GPU manager for MIG with time-sharing\",\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"time-sharing\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 2,\n\t\t\t\t},\n\t\t\t\tGPUPartitionSize: \"3g.20gb\",\n\t\t\t},\n\t\t\twantDevices: map[string]*pluginapi.Device{\n\t\t\t\t\"nvidia0/gi1/vgpu0\": {\n\t\t\t\t\tID:     \"nvidia0/gi1/vgpu0\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia0/gi2/vgpu0\": {\n\t\t\t\t\tID:     \"nvidia0/gi2/vgpu0\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia0/gi1/vgpu1\": {\n\t\t\t\t\tID:     \"nvidia0/gi1/vgpu1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t\t\"nvidia0/gi2/vgpu1\": {\n\t\t\t\t\tID:     \"nvidia0/gi2/vgpu1\",\n\t\t\t\t\tHealth: pluginapi.Healthy,\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi1/vgpu1\"}},\n\t\t\t},\n\t\t\tusedRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi1/vgpu1\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi2/vgpu1\"}},\n\t\t\t},\n\t\t\tinvalidRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia0/gi2/vgpu1\"}},\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/gi1/vgpu1\"}},\n\t\t\t},\n\t\t\tnewRequests: []*pluginapi.ContainerAllocateRequest{\n\t\t\t\t{DevicesIDs: []string{\"nvidia1/gi1/vgpu1\"}},\n\t\t\t},\n\t\t\tmode: \"MIG\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tvar err error\n\t\t\tif tc.mode == \"MIG\" {\n\t\t\t\terr = testNvidiaGPUManagerBetaAPIWithMig(tc.gpuConfig, tc.wantDevices, tc.validRequests, tc.usedRequests, tc.invalidRequests, tc.newRequests)\n\t\t\t} else {\n\t\t\t\terr = testNvidiaGPUManagerBetaAPI(tc.gpuConfig, tc.wantDevices, tc.validRequests, tc.usedRequests, tc.invalidRequests, tc.newRequests)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tt.Error(\"unexpected error: \", err)\n\t\t\t}\n\t\t})\n\t}\n\n}\n\nfunc testNvidiaGPUManagerBetaAPI(gpuConfig GPUConfig, wantDevices map[string]*pluginapi.Device, validRequests []*pluginapi.ContainerAllocateRequest, usedRequests []*pluginapi.ContainerAllocateRequest, invalidRequests []*pluginapi.ContainerAllocateRequest, newRequests []*pluginapi.ContainerAllocateRequest) error {\n\ttestDevDir, err := ioutil.TempDir(\"\", \"dev\")\n\tdefer os.RemoveAll(testDevDir)\n\n\t// Create device nodes\n\tdeviceNodes := []string{\n\t\tnvidiaCtlDevice,\n\t\tnvidiaUVMDevice,\n\t\tnvidiaUVMToolsDevice,\n\t\tnvidiaModesetDevice,\n\t\t\"nvidia0\",\n\t\t\"nvidia1\",\n\t}\n\tfor _, device := range deviceNodes {\n\t\tos.Create(path.Join(testDevDir, device))\n\t}\n\tdefer func() {\n\t\tfor _, device := range deviceNodes {\n\t\t\tos.Remove(path.Join(testDevDir, device))\n\t\t}\n\t}()\n\n\t// Expects a valid GPUManager to be created.\n\tmountPaths := []pluginapi.Mount{\n\t\t{HostPath: \"/home/kubernetes/bin/nvidia\", ContainerPath: \"/usr/local/nvidia\", ReadOnly: true},\n\t\t{HostPath: \"/home/kubernetes/bin/vulkan/icd.d\", ContainerPath: \"/etc/vulkan/icd.d\", ReadOnly: true}}\n\ttestGpuManager := NewNvidiaGPUManager(testDevDir, \"\", mountPaths, gpuConfig)\n\tif testGpuManager == nil {\n\t\treturn fmt.Errorf(\"failed to initilize a GPU manager\")\n\t}\n\n\t// overriding nvmlutil.NvmlDeviceInfo to mockDeviceInfo interface\n\tnvmlutil.NvmlDeviceInfo = &nvmlutil.MockDeviceInfo{}\n\tmockInfo, _ := nvmlutil.NvmlDeviceInfo.(*nvmlutil.MockDeviceInfo)\n\n\tmockInfo.TestDevDir = testDevDir\n\n\t// Start GPU manager.\n\tif err := testGpuManager.Start(); err != nil {\n\t\treturn fmt.Errorf(\"unable to start gpu manager: %w\", err)\n\t}\n\n\t// Tests discoverGPUs()\n\tos.Stat(path.Join(testDevDir, nvidiaCtlDevice))\n\tdiscoverErr := testGpuManager.discoverGPUs()\n\tif discoverErr != nil {\n\t\treturn discoverErr\n\t}\n\n\tgpus := reflect.ValueOf(testGpuManager).Elem().FieldByName(\"devices\").Len()\n\tif gpus == 0 {\n\t\treturn fmt.Errorf(\"unable to discover GPU devices\")\n\t}\n\n\ttestdir, err := ioutil.TempDir(\"\", \"gpu_device_plugin\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for creating temp dir gpu_device_plugin: %w\", err)\n\t}\n\tdefer os.RemoveAll(testdir)\n\n\tkubeletEndpoint := path.Join(testdir, \"kubelet.sock\")\n\tkubeletStub := NewKubeletStub(kubeletEndpoint)\n\tkubeletStub.Start()\n\tdefer kubeletStub.server.Stop()\n\n\tgo func() {\n\t\ttestGpuManager.Serve(testdir, \"kubelet.sock\", \"plugin.sock\")\n\t}()\n\n\ttime.Sleep(5 * time.Second)\n\tdevicePluginSock := path.Join(testdir, \"plugin.sock\")\n\tdefer testGpuManager.Stop()\n\t// Verifies the grpcServer is ready to serve services.\n\tconn, err := grpc.Dial(devicePluginSock, grpc.WithInsecure(), grpc.WithBlock(),\n\t\tgrpc.WithTimeout(10*time.Second),\n\t\tgrpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {\n\t\t\treturn net.DialTimeout(\"unix\", addr, timeout)\n\t\t}))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for creating grpc connection: %w\", err)\n\t}\n\tdefer conn.Close()\n\n\tclient := pluginapi.NewDevicePluginClient(conn)\n\n\t// Tests ListAndWatch\n\tstream, err := client.ListAndWatch(context.Background(), &pluginapi.Empty{})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for making list and watch action: %w\", err)\n\t}\n\tdevs, err := stream.Recv()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for recieving stream: %w\", err)\n\t}\n\tdevices := make(map[string]*pluginapi.Device)\n\tfor _, d := range devs.Devices {\n\t\tdevices[d.ID] = d\n\t}\n\n\tif diff := cmp.Diff(wantDevices, devices); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected devices (-want, +got) = %s\", diff)\n\t}\n\n\t// Tests Allocate\n\tresp, err := client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: validRequests})\n\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a valid request: %w\", err)\n\t}\n\tif diff := cmp.Diff(5, len(resp.ContainerResponses[0].Devices)); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected devices in resp (-want, +got) = %s\", diff)\n\t}\n\tif diff := cmp.Diff(2, len(resp.ContainerResponses[0].Mounts)); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected mounts in resp (-want, +got) = %s\", diff)\n\t}\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: usedRequests})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a duplicated request: %w\", err)\n\t}\n\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: invalidRequests})\n\tif resp != nil {\n\t\treturn fmt.Errorf(\"non-nil resp when allocating an invalid request: %v\", resp)\n\t}\n\tif err == nil {\n\t\treturn fmt.Errorf(\"nil err when allocating an invalid request\")\n\t}\n\n\t// Tests detecting new GPU\n\tgpu2 := path.Join(testDevDir, \"nvidia2\")\n\tos.Create(gpu2)\n\tdefer os.Remove(gpu2)\n\t// The GPU device check is every 10s\n\ttime.Sleep(gpuCheckInterval + 1*time.Second)\n\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: newRequests})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a request after adding a new GPU device: %w\", err)\n\t}\n\n\treturn nil\n}\n\nfunc testNvidiaGPUManagerBetaAPIWithMig(gpuConfig GPUConfig, wantDevices map[string]*pluginapi.Device, validRequests []*pluginapi.ContainerAllocateRequest, usedRequests []*pluginapi.ContainerAllocateRequest, invalidRequests []*pluginapi.ContainerAllocateRequest, newRequests []*pluginapi.ContainerAllocateRequest) error {\n\ttestDevDir, err := ioutil.TempDir(\"\", \"dev\")\n\tdefer os.RemoveAll(testDevDir)\n\ttestProcDir, err := ioutil.TempDir(\"\", \"proc\")\n\tdefer os.RemoveAll(testProcDir)\n\n\tpaths := []string{\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi1/ci0\",\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi2/ci0\",\n\t}\n\tfor _, p := range paths {\n\t\tif err := os.MkdirAll(path.Join(testProcDir, p), 0755); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to make dir: %w\", err)\n\t\t}\n\t}\n\tdefer func() {\n\t\tfor _, p := range paths {\n\t\t\tos.RemoveAll(path.Join(testProcDir, p))\n\t\t}\n\t}()\n\n\tif err := os.MkdirAll(path.Join(testDevDir, \"nvidia-caps\"), 0755); err != nil {\n\t\treturn fmt.Errorf(\"failed to make dir: %w\", err)\n\t}\n\tdefer os.RemoveAll(path.Join(testDevDir, \"nvidia-caps\"))\n\n\t// Create device nodes\n\tdeviceNodes := []string{\n\t\tnvidiaCtlDevice,\n\t\tnvidiaUVMDevice,\n\t\tnvidiaUVMToolsDevice,\n\t\tnvidiaModesetDevice,\n\t\t\"nvidia0\",\n\t\t\"nvidia-caps/nvidia-cap12\",\n\t\t\"nvidia-caps/nvidia-cap13\",\n\t\t\"nvidia-caps/nvidia-cap21\",\n\t\t\"nvidia-caps/nvidia-cap22\",\n\t}\n\tfor _, device := range deviceNodes {\n\t\tos.Create(path.Join(testDevDir, device))\n\t}\n\tdefer func() {\n\t\tfor _, device := range deviceNodes {\n\t\t\tos.Remove(path.Join(testDevDir, device))\n\t\t}\n\t}()\n\n\tcapToMinorDevices := map[string]int{\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi1/access\":     12,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi1/ci0/access\": 13,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi2/access\":     21,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi2/ci0/access\": 22,\n\t}\n\tfor file, minor := range capToMinorDevices {\n\t\tif err := ioutil.WriteFile(path.Join(testProcDir, file), []byte(fmt.Sprintf(\"DeviceFileMinor: %d\\nDeviceFileMode: 292\", minor)), 0644); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to create proc capabilities file (%s): %v\", file, err)\n\t\t}\n\t}\n\n\t// Expects a valid GPUManager to be created.\n\tmountPaths := []pluginapi.Mount{\n\t\t{HostPath: \"/home/kubernetes/bin/nvidia\", ContainerPath: \"/usr/local/nvidia\", ReadOnly: true},\n\t\t{HostPath: \"/home/kubernetes/bin/vulkan/icd.d\", ContainerPath: \"/etc/vulkan/icd.d\", ReadOnly: true}}\n\ttestGpuManager := NewNvidiaGPUManager(testDevDir, testProcDir, mountPaths, gpuConfig)\n\tif testGpuManager == nil {\n\t\treturn fmt.Errorf(\"failed to initilize a GPU manager\")\n\t}\n\n\t// overriding nvmlDeviceInfo to mockDeviceInfo interface\n\tnvmlutil.NvmlDeviceInfo = &nvmlutil.MockDeviceInfo{}\n\tmockInfo, _ := nvmlutil.NvmlDeviceInfo.(*nvmlutil.MockDeviceInfo)\n\n\tmockInfo.TestDevDir = testDevDir\n\n\t// Start GPU manager.\n\tif err := testGpuManager.Start(); err != nil {\n\t\treturn fmt.Errorf(\"unable to start gpu manager: %w\", err)\n\t}\n\n\t// Tests discoverGPUs()\n\tdiscoverErr := testGpuManager.discoverGPUs()\n\tif discoverErr != nil {\n\t\treturn discoverErr\n\t}\n\tgpus := reflect.ValueOf(testGpuManager).Elem().FieldByName(\"devices\").Len()\n\tif gpus == 0 {\n\t\treturn fmt.Errorf(\"unable to discover GPU devices\")\n\t}\n\n\ttestdir, err := ioutil.TempDir(\"\", \"gpu_device_plugin\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for creating temp dir gpu_device_plugin: %w\", err)\n\t}\n\tdefer os.RemoveAll(testdir)\n\n\tkubeletEndpoint := path.Join(testdir, \"kubelet.sock\")\n\tkubeletStub := NewKubeletStub(kubeletEndpoint)\n\tkubeletStub.Start()\n\tdefer kubeletStub.server.Stop()\n\n\tgo func() {\n\t\ttestGpuManager.Serve(testdir, \"kubelet.sock\", \"plugin.sock\")\n\t}()\n\n\ttime.Sleep(5 * time.Second)\n\tdevicePluginSock := path.Join(testdir, \"plugin.sock\")\n\tdefer testGpuManager.Stop()\n\t// Verifies the grpcServer is ready to serve services.\n\tconn, err := grpc.Dial(devicePluginSock, grpc.WithInsecure(), grpc.WithBlock(),\n\t\tgrpc.WithTimeout(10*time.Second),\n\t\tgrpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {\n\t\t\treturn net.DialTimeout(\"unix\", addr, timeout)\n\t\t}))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for creating grpc connection: %w\", err)\n\t}\n\tdefer conn.Close()\n\n\tclient := pluginapi.NewDevicePluginClient(conn)\n\n\t// Tests ListAndWatch\n\tstream, err := client.ListAndWatch(context.Background(), &pluginapi.Empty{})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for making list and watch action: %w\", err)\n\t}\n\tdevs, err := stream.Recv()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for recieving stream: %w\", err)\n\t}\n\tdevices := make(map[string]*pluginapi.Device)\n\tfor _, d := range devs.Devices {\n\t\tdevices[d.ID] = d\n\t}\n\tif diff := cmp.Diff(wantDevices, devices); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected devices (-want, +got) = %s\", diff)\n\t}\n\n\t// Tests Allocate\n\tresp, err := client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: validRequests,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a valid request: %w\", err)\n\t}\n\tif diff := cmp.Diff(7, len(resp.ContainerResponses[0].Devices)); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected devices in resp (-want, +got) = %s\", diff)\n\t}\n\tif diff := cmp.Diff(2, len(resp.ContainerResponses[0].Mounts)); diff != \"\" {\n\t\treturn fmt.Errorf(\"unexpected mounts in resp (-want, +got) = %s\", diff)\n\t}\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: usedRequests,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a duplicated request: %w\", err)\n\t}\n\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: invalidRequests,\n\t})\n\tif resp != nil {\n\t\treturn fmt.Errorf(\"non-nil resp when allocating an invalid request: %v\", resp)\n\t}\n\tif err == nil {\n\t\treturn fmt.Errorf(\"nil err when allocating an invalid request\")\n\t}\n\n\t// Tests detecting new GPU\n\tnewPaths := []string{\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi1/ci0\",\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi2/ci0\",\n\t}\n\tfor _, p := range newPaths {\n\t\tif err := os.MkdirAll(path.Join(testProcDir, p), 0755); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to make dir: %w\", err)\n\t\t}\n\t}\n\tdefer func() {\n\t\tfor _, p := range paths {\n\t\t\tos.RemoveAll(path.Join(testProcDir, p))\n\t\t}\n\t}()\n\n\tnewDeviceNodes := []string{\n\t\t\"nvidia1\",\n\t\t\"nvidia-caps/nvidia-cap11\",\n\t\t\"nvidia-caps/nvidia-cap10\",\n\t\t\"nvidia-caps/nvidia-cap23\",\n\t\t\"nvidia-caps/nvidia-cap14\",\n\t}\n\tfor _, device := range newDeviceNodes {\n\t\tos.Create(path.Join(testDevDir, device))\n\t}\n\tdefer func() {\n\t\tfor _, device := range deviceNodes {\n\t\t\tos.Remove(path.Join(testDevDir, device))\n\t\t}\n\t}()\n\n\tnewCapToMinorDevices := map[string]int{\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi1/access\":     11,\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi1/ci0/access\": 10,\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi2/access\":     23,\n\t\t\"driver/nvidia/capabilities/gpu1/mig/gi2/ci0/access\": 14,\n\t}\n\tfor file, minor := range newCapToMinorDevices {\n\t\tif err := ioutil.WriteFile(path.Join(testProcDir, file), []byte(fmt.Sprintf(\"DeviceFileMinor: %d\\nDeviceFileMode: 292\", minor)), 0644); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to create proc capabilities file (%s): %v\", file, err)\n\t\t}\n\t}\n\ttestGpuManager.Start()\n\n\t// The GPU device check is every 10s\n\ttime.Sleep(gpuCheckInterval + 1*time.Second)\n\n\tresp, err = client.Allocate(context.Background(), &pluginapi.AllocateRequest{\n\t\tContainerRequests: newRequests,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error for allocating a request after adding a new GPU device: %w\", err)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/gpusharing/gpusharing.go",
    "content": "// Copyright 2021 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage gpusharing\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"regexp\"\n)\n\ntype GPUSharingStrategy string\n\nconst (\n\tUndefined   GPUSharingStrategy = \"\"\n\tTimeSharing GPUSharingStrategy = \"time-sharing\"\n\tMPS         GPUSharingStrategy = \"mps\"\n)\n\nvar SharingStrategy GPUSharingStrategy\n\n// ValidateRequest will first check if the input device IDs are virtual device IDs, and then validate the request.\n// A valid sharing request (time-sharing)should meet the following conditions:\n// 1. it is only valid to request one virtual devices in a single request.\n// A valid sharing request (mps) should meet the following conditions:\n// 1. if there is only one physical device, it is valid to request multiple virtual devices in a single request.\n// 2. if there are multiple physical devices, it is only valid to request one virtual device in a single request.\n// Note: in this validation, each MIG partition will be regarded as a physical device.\nfunc ValidateRequest(requestDevicesIDs []string, deviceCount int) error {\n\tif len(requestDevicesIDs) > 1 && IsVirtualDeviceID(requestDevicesIDs[0]) {\n\t\tif SharingStrategy == TimeSharing {\n\t\t\treturn errors.New(\"invalid request for sharing GPU (time-sharing), at most 1 nvidia.com/gpu can be requested on GPU nodes\")\n\t\t} else if SharingStrategy == MPS && deviceCount > 1 {\n\t\t\treturn errors.New(\"invalid request for sharing GPU (MPS), at most 1 nvidia.com/gpu can be requested on multi-GPU nodes\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// VirtualToPhysicalDeviceID takes a virtualDeviceID and converts it to a physicalDeviceID.\nfunc VirtualToPhysicalDeviceID(virtualDeviceID string) (string, error) {\n\tif !IsVirtualDeviceID(virtualDeviceID) {\n\t\treturn \"\", fmt.Errorf(\"virtual device ID (%s) is not valid\", virtualDeviceID)\n\t}\n\n\tvgpuRegex := regexp.MustCompile(\"/vgpu([0-9]+)$\")\n\treturn vgpuRegex.Split(virtualDeviceID, -1)[0], nil\n}\n\n// isVirtualDeviceID returns true if a input device ID comes from a virtual GPU device.\nfunc IsVirtualDeviceID(virtualDeviceID string) bool {\n\treturn isVirtualDeviceIDForDefaultMode(virtualDeviceID) || isVirtualDeviceIDForMIGMode(virtualDeviceID)\n}\n\nfunc isVirtualDeviceIDForDefaultMode(virtualDeviceID string) bool {\n\t// Generally, the virtualDeviceID will form as 'nvidia0/vgpu0', with the underlying physicalDeviceID as 'nvidia0'.\n\tvalidRegex := regexp.MustCompile(\"nvidia([0-9]+)\\\\/vgpu([0-9]+)$\")\n\treturn validRegex.MatchString(virtualDeviceID)\n}\n\nfunc isVirtualDeviceIDForMIGMode(virtualDeviceID string) bool {\n\t// In MIG case, the virtualDeviceID will form as `nvidia0/gi0/vgpu0`, with the underlying physicalDeviceID as 'nvidia0/gi0'.\n\tvalidMigRegex := regexp.MustCompile(\"nvidia([0-9]+)\\\\/gi([0-9]+)\\\\/vgpu([0-9]+)$\")\n\treturn validMigRegex.MatchString(virtualDeviceID)\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/gpusharing/gpusharing_test.go",
    "content": "// Copyright 2021 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage gpusharing\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n)\n\nfunc TestValidateRequest(t *testing.T) {\n\tcases := []struct {\n\t\tname              string\n\t\trequestDevicesIDs []string\n\t\tdeviceCount       int\n\t\tsharingStrategy   GPUSharingStrategy\n\t\twantError         error\n\t}{{\n\t\tname:              \"don't have virtual device IDs - both timesharing and mps\",\n\t\trequestDevicesIDs: []string{\"nvidia0\", \"nvidia1\"},\n\t\tdeviceCount:       1,\n\t\twantError:         nil,\n\t}, {\n\t\tname:              \"only have one physical device - mps\",\n\t\trequestDevicesIDs: []string{\"nvidia0/vgpu0\", \"nvidia0/vgpu1\"},\n\t\tdeviceCount:       1,\n\t\tsharingStrategy:   MPS,\n\t\twantError:         nil,\n\t}, {\n\t\tname:              \"only request one virtual device - both timesharing and mps\",\n\t\trequestDevicesIDs: []string{\"nvidia0/vgpu0\"},\n\t\tdeviceCount:       2,\n\t\twantError:         nil,\n\t}, {\n\t\tname:              \"request multiple virtual devices and have one physical devices - timesharing\",\n\t\trequestDevicesIDs: []string{\"nvidia0/vgpu0\", \"nvidia1/vgpu1\"},\n\t\tdeviceCount:       1,\n\t\twantError:         errors.New(\"invalid request for sharing GPU (time-sharing), at most 1 nvidia.com/gpu can be requested on GPU nodes\"),\n\t}, {\n\t\tname:              \"request multiple virtual devices and have multiple physical devices - mps\",\n\t\trequestDevicesIDs: []string{\"nvidia0/vgpu0\", \"nvidia1/vgpu1\"},\n\t\tsharingStrategy:   MPS,\n\t\tdeviceCount:       2,\n\t\twantError:         errors.New(\"invalid request for sharing GPU (MPS), at most 1 nvidia.com/gpu can be requested on multi-GPU nodes\"),\n\t}}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif tc.sharingStrategy != MPS {\n\t\t\t\ttc.sharingStrategy = TimeSharing\n\t\t\t}\n\t\t\tSharingStrategy = tc.sharingStrategy\n\t\t\terr := ValidateRequest(tc.requestDevicesIDs, tc.deviceCount)\n\t\t\tif err != nil && tc.wantError != nil {\n\t\t\t\tif diff := cmp.Diff(tc.wantError.Error(), err.Error()); diff != \"\" {\n\t\t\t\t\tt.Error(\"unexpected error (-want, +got) = \", diff)\n\t\t\t\t}\n\t\t\t} else if err != nil {\n\t\t\t\tt.Error(\"unexpected error: \", err)\n\t\t\t} else if tc.wantError != nil {\n\t\t\t\tt.Error(\"unexpected want error:\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestVirtualToPhysicalDeviceID(t *testing.T) {\n\tcases := []struct {\n\t\tname            string\n\t\tvirtualDeviceID string\n\t\twantDeviceID    string\n\t\twantError       error\n\t}{{\n\t\tname:            \"invalid virtual device ID\",\n\t\tvirtualDeviceID: \"nvidia0\",\n\t\twantDeviceID:    \"\",\n\t\twantError:       errors.New(\"virtual device ID (nvidia0) is not valid\"),\n\t}, {\n\t\tname:            \"virtual device ID for common cases\",\n\t\tvirtualDeviceID: \"nvidia0/vgpu0\",\n\t\twantDeviceID:    \"nvidia0\",\n\t\twantError:       nil,\n\t}, {\n\t\tname:            \"only request one  virtual device\",\n\t\tvirtualDeviceID: \"nvidia0/gi0/vgpu0\",\n\t\twantDeviceID:    \"nvidia0/gi0\",\n\t\twantError:       nil,\n\t}}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdeviceID, err := VirtualToPhysicalDeviceID(tc.virtualDeviceID)\n\t\t\tif diff := cmp.Diff(tc.wantDeviceID, deviceID); diff != \"\" {\n\t\t\t\tt.Error(\"unexpected deviceID (-want, +got) = \", diff)\n\t\t\t}\n\t\t\tif err != nil && tc.wantError != nil {\n\t\t\t\tif diff := cmp.Diff(tc.wantError.Error(), err.Error()); diff != \"\" {\n\t\t\t\t\tt.Error(\"unexpected error (-want, +got) = \", diff)\n\t\t\t\t}\n\t\t\t} else if err != nil {\n\t\t\t\tt.Error(\"unexpected error: \", err)\n\t\t\t} else if tc.wantError != nil {\n\t\t\t\tt.Error(\"unexpected want error:\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/health_check/health_checker.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage healthcheck\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"cloud.google.com/go/compute/metadata\"\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/util\"\n\t\"github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml\"\n\t\"github.com/golang/glog\"\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\tclientv1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tclient \"k8s.io/client-go/kubernetes\"\n\t\"k8s.io/client-go/tools/record\"\n\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nconst (\n\tXIDConditionType = \"XidCriticalError\"\n\teventSource      = \"nvidia-gpu-device-plugin\"\n\n\tresetXIDConditionTimeout = 2 * time.Minute\n)\n\n// GPUHealthChecker checks the health of nvidia GPUs. Note that with the current\n// device naming pattern in device manager, GPUHealthChecker will not work with\n// MIG devices.\ntype GPUHealthChecker struct {\n\tdevices           map[string]pluginapi.Device\n\tnvmlDevices       map[string]*nvml.Device\n\thealth            chan pluginapi.Device\n\teventSet          nvml.EventSet\n\tstop              chan bool\n\thealthCriticalXid map[uint64]bool\n\t// This map is used for conditions setting and monitoring reason, will not trigger auto-repair\n\tmonitorCriticalXid map[uint64]bool\n\tkubeClient         client.Interface\n\tnodeName           string\n\trecorder           record.EventRecorder\n}\n\n// NewGPUHealthChecker returns a GPUHealthChecker object for a given device name\nfunc NewGPUHealthChecker(devices map[string]pluginapi.Device, health chan pluginapi.Device, codes []int, kubeClient client.Interface) *GPUHealthChecker {\n\thc := &GPUHealthChecker{\n\t\tdevices:            make(map[string]pluginapi.Device),\n\t\tnvmlDevices:        make(map[string]*nvml.Device),\n\t\thealth:             health,\n\t\tstop:               make(chan bool),\n\t\thealthCriticalXid:  make(map[uint64]bool),\n\t\tmonitorCriticalXid: make(map[uint64]bool),\n\t}\n\thc.kubeClient = kubeClient\n\n\t// Create an event broadcaster\n\teventBroadcaster := record.NewBroadcaster()\n\teventBroadcaster.StartLogging(glog.Infof)\n\teventBroadcaster.StartRecordingToSink(&clientv1.EventSinkImpl{Interface: hc.kubeClient.CoreV1().Events(\"\")})\n\thc.recorder = eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: eventSource})\n\n\t// Cloning the device map to avoid interfering with the device manager\n\tfor id, d := range devices {\n\t\thc.devices[id] = d\n\t}\n\tfor _, c := range codes {\n\t\tglog.Infof(\"reading code %v\", c)\n\t\thc.healthCriticalXid[uint64(c)] = true\n\t}\n\n\tmonitorCriticalXid := []int{48, 63, 64, 79, 119, 120, 123, 140}\n\tfor _, xid := range monitorCriticalXid {\n\t\thc.monitorCriticalXid[uint64(xid)] = true\n\t}\n\n\t// By default, we check Double Bit ECC Error\n\thc.healthCriticalXid[48] = true\n\treturn hc\n}\n\n// resetXIDConditionWithBackoff tries to reset XID condition with exponential backoff.\n// It retries with a 1s sleep and backs off to 30s. It times out after 2 minutes.\nfunc (hc *GPUHealthChecker) resetXIDConditionWithBackoff() {\n\tbackoff := 1 * time.Second\n\ttimeout := time.After(resetXIDConditionTimeout)\n\tfor {\n\t\tselect {\n\t\tcase <-timeout:\n\t\t\tglog.Errorf(\"Timeout resetting XID condition after 2 minutes.\")\n\t\t\treturn\n\t\tdefault:\n\t\t\terr := hc.resetXIDCondition()\n\t\t\tif err == nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tglog.Errorf(\"Failed to reset XID condition, will retry in %v. Error: %v\", backoff, err)\n\t\t\ttime.Sleep(backoff)\n\t\t\tbackoff *= 2\n\t\t\tif backoff > 30*time.Second {\n\t\t\t\tbackoff = 30 * time.Second\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Check whether the XID condition should be removed. If the conditions exists,\n// 1. If the bootId changes, consider the node fixed through auto-repair\n// 2. If the bootId stay unchanged, consider a pure gpu-device-plugin restart\nfunc (hc *GPUHealthChecker) resetXIDCondition() error {\n\tnode, err := hc.kubeClient.CoreV1().Nodes().Get(context.Background(), hc.nodeName, metav1.GetOptions{})\n\tif err != nil {\n\t\treturn err\n\t}\n\tbootId := node.Status.NodeInfo.BootID\n\tlastBootId := \"\"\n\tnewConditions := []v1.NodeCondition{}\n\tfor _, condition := range node.Status.Conditions {\n\t\tif condition.Type == XIDConditionType && condition.Status == \"True\" {\n\t\t\tlastBootId = condition.Message\n\t\t\tif bootId != \"\" && lastBootId != \"\" && bootId != lastBootId {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tnewConditions = append(newConditions, condition)\n\t}\n\t// Remove condition\n\tif len(newConditions) != len(node.Status.Conditions) {\n\t\tnode.Status.Conditions = newConditions\n\t\t// TODO: Use patch to avoid possible conflicts?\n\t\t_, err := hc.kubeClient.CoreV1().Nodes().UpdateStatus(context.Background(), node, metav1.UpdateOptions{})\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Failed to update node %s status after removing XID condition: %v\", hc.nodeName, err)\n\t\t\treturn err\n\t\t}\n\t\tglog.Infof(\"Successfully removed XIDCriticalError condition from node %s.\", hc.nodeName)\n\t} else {\n\t\tglog.Infof(\"XIDCriticalError condition doesn't exist for node %s.\", hc.nodeName)\n\t}\n\treturn nil\n}\n\n// Start registers NVML events and starts listening to them\nfunc (hc *GPUHealthChecker) Start() error {\n\tnodeName, err := metadata.InstanceNameWithContext(context.Background())\n\tif err != nil {\n\t\tglog.Errorf(\"failed to get nodeName, err: %v\", err)\n\t}\n\thc.nodeName = nodeName\n\n\tgo hc.resetXIDConditionWithBackoff()\n\n\tgo hc.setXIDheartbeat()\n\n\tglog.Info(\"Starting GPU Health Checker\")\n\n\tfor name, device := range hc.devices {\n\t\tglog.Infof(\"Healthchecker receives device %s, device %v+\", name, device)\n\t}\n\n\t// Building mapping between device ID and their nvml represetation\n\tcount, err := nvml.GetDeviceCount()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to get device count: %s\", err)\n\t}\n\n\tglog.Infof(\"Found %d GPU devices\", count)\n\tfor i := uint(0); i < count; i++ {\n\t\tdevice, err := nvml.NewDeviceLite(i)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to read device with index %d: %v\", i, err)\n\t\t}\n\n\t\tdeviceName, err := util.DeviceNameFromPath(device.Path)\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Invalid GPU device path found: %s. Skipping this device\", device.Path)\n\t\t\tcontinue\n\t\t}\n\n\t\tmigEnabled, err := device.IsMigEnabled()\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Error checking if MIG is enabled on device %s. Skipping this device. Error: %v\", deviceName, err)\n\t\t\tcontinue\n\t\t}\n\n\t\tif migEnabled {\n\t\t\tif err := hc.addMigEnabledDevice(deviceName, device); err != nil {\n\t\t\t\tglog.Errorf(\"Failed to add MIG-enabled device %s for health check. Skipping this device. Error: %v\", deviceName, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\thc.addDevice(deviceName, device)\n\t\t}\n\t}\n\n\thc.eventSet = nvml.NewEventSet()\n\tfor _, d := range hc.nvmlDevices {\n\t\tgpu, _, _, err := nvml.ParseMigDeviceUUID(d.UUID)\n\t\tif err != nil {\n\t\t\tgpu = d.UUID\n\t\t}\n\n\t\tglog.Infof(\"Registering device %v. UUID: %s\", d.Path, d.UUID)\n\t\terr = nvml.RegisterEventForDevice(hc.eventSet, nvml.XidCriticalError, gpu)\n\t\tif err != nil {\n\t\t\tif strings.HasSuffix(err.Error(), \"Not Supported\") {\n\t\t\t\tglog.Warningf(\"Warning: %s is too old to support healthchecking: %v. It will always be marked healthy.\", d.Path, err)\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"failed to register device %s for NVML eventSet: %v\", d.Path, err)\n\t\t\t}\n\t\t}\n\t}\n\n\tgo func() {\n\t\tif err := hc.listenToEvents(); err != nil {\n\t\t\tglog.Errorf(\"GPUHealthChecker listenToEvents error: %v\", err)\n\t\t}\n\t}()\n\n\treturn nil\n}\n\nfunc (hc *GPUHealthChecker) addDevice(deviceName string, device *nvml.Device) {\n\tif _, ok := hc.devices[deviceName]; !ok {\n\t\t// Only monitor the devices passed in\n\t\tglog.Warningf(\"Ignoring device %s for health check.\", deviceName)\n\t\treturn\n\t}\n\tglog.Infof(\"Found non-mig device %s for health monitoring. UUID: %s\", deviceName, device.UUID)\n\thc.nvmlDevices[deviceName] = device\n}\n\nfunc (hc *GPUHealthChecker) addMigEnabledDevice(deviceName string, device *nvml.Device) error {\n\tglog.Infof(\"HealthChecker detects MIG is enabled on device %s\", deviceName)\n\n\tmigs, err := device.GetMigDevices()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting MIG devices on device %s. err: %v.\", deviceName, err)\n\t}\n\n\tfor _, mig := range migs {\n\t\tgpu, gi, _, err := nvml.ParseMigDeviceUUID(mig.UUID)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"error parsing MIG UUID on device %s, MIG UUID: %s, error %v\", gpu, mig.UUID, err)\n\t\t}\n\t\tmigDeviceName := fmt.Sprintf(\"%s/gi%d\", deviceName, gi)\n\n\t\tif _, ok := hc.devices[migDeviceName]; !ok {\n\t\t\t// Only monitor the devices passed in\n\t\t\tglog.Warningf(\"Ignoring device %s for health check.\", migDeviceName)\n\t\t\tcontinue\n\t\t}\n\t\tglog.Infof(\"Found mig device %s for health monitoring. UUID: %s\", migDeviceName, mig.UUID)\n\t\thc.nvmlDevices[migDeviceName] = mig\n\t}\n\treturn nil\n}\n\ntype callDevice interface {\n\tparseMigDeviceUUID(UUID string) (string, uint, uint, error)\n}\ntype GPUDevice struct{}\n\nfunc (gd *GPUDevice) parseMigDeviceUUID(UUID string) (string, uint, uint, error) {\n\treturn nvml.ParseMigDeviceUUID(UUID)\n}\n\nfunc (hc *GPUHealthChecker) monitorXidevent(e nvml.Event) {\n\tif _, ok := hc.monitorCriticalXid[e.Edata]; ok {\n\t\tglog.Info(\"Monitoring XID event\")\n\t\t// Set XID condition\n\t\tnode, err := hc.kubeClient.CoreV1().Nodes().Get(context.Background(), hc.nodeName, metav1.GetOptions{})\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Failed to get node %s: %v\", hc.nodeName, err)\n\t\t\treturn\n\t\t}\n\t\tconditionFound := false\n\t\tfor i := range node.Status.Conditions {\n\t\t\tcondition := &node.Status.Conditions[i]\n\t\t\tif condition.Type == XIDConditionType {\n\t\t\t\tconditionFound = true\n\t\t\t\tvar genericMap map[string]interface{}\n\t\t\t\terr := json.Unmarshal([]byte(condition.Reason), &genericMap)\n\t\t\t\tif err != nil {\n\t\t\t\t\tglog.Errorf(\"Can't decode the value of condition.Reason %s\", condition.Reason)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\txidStr := strconv.FormatUint(e.Edata, 10)\n\t\t\t\tif _, ok := genericMap[xidStr]; ok {\n\t\t\t\t\tglog.Infof(\"XIDCritialError Condition already includes this XID %v, skip\", e.Edata)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgenericMap[xidStr] = true\n\t\t\t\tjsonStr, err := json.Marshal(genericMap)\n\t\t\t\tif err != nil {\n\t\t\t\t\tglog.Errorf(\"Can't encode the value of condition.Reason %s\", condition.Reason)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tcondition.Reason = string(jsonStr)\n\t\t\t}\n\t\t}\n\t\tif !conditionFound {\n\t\t\tglog.Infof(\"XIDCritialError Condition not exists, adding:\", e.Edata)\n\t\t\tgenericMap := map[string]interface{}{strconv.FormatUint(e.Edata, 10): true}\n\t\t\tjsonStr, err := json.Marshal(genericMap)\n\t\t\tif err != nil {\n\t\t\t\tglog.Errorf(\"Can't encode the value of genericMap: %s\", genericMap)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tnode.Status.Conditions = append(node.Status.Conditions, v1.NodeCondition{\n\t\t\t\tType:               XIDConditionType,\n\t\t\t\tStatus:             \"True\",\n\t\t\t\tLastHeartbeatTime:  metav1.Now(),\n\t\t\t\tLastTransitionTime: metav1.Now(),\n\t\t\t\tReason:             string(jsonStr),\n\t\t\t\tMessage:            node.Status.NodeInfo.BootID,\n\t\t\t})\n\t\t}\n\t\t_, err = hc.kubeClient.CoreV1().Nodes().UpdateStatus(context.Background(), node, metav1.UpdateOptions{})\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"Failed to update node %s status to add XIDCriticalError condition: %v\", hc.nodeName, err)\n\t\t} else {\n\t\t\tglog.Infof(\"Successfully add XIDCriticalError condition from node %s.\", hc.nodeName)\n\t\t}\n\t}\n}\n\nfunc (hc *GPUHealthChecker) setXIDheartbeat() {\n\tfor {\n\t\tselect {\n\t\tcase <-hc.stop:\n\t\t\treturn\n\t\tdefault:\n\t\t\thc.updateLastHeartbeatTime()\n\t\t\ttime.Sleep(1 * time.Minute)\n\t\t}\n\t}\n}\n\nfunc (hc *GPUHealthChecker) updateLastHeartbeatTime() {\n\tnode, err := hc.kubeClient.CoreV1().Nodes().Get(context.Background(), hc.nodeName, metav1.GetOptions{})\n\tif err != nil {\n\t\tglog.Errorf(\"Failed to get node %s for heartbeat update: %v\", hc.nodeName, err)\n\t\treturn\n\t}\n\n\tnodeModified := false\n\tfor i := range node.Status.Conditions {\n\t\tif node.Status.Conditions[i].Type == XIDConditionType && node.Status.Conditions[i].Status == \"True\" {\n\t\t\tnode.Status.Conditions[i].LastHeartbeatTime = metav1.Now()\n\t\t\tnodeModified = true\n\t\t}\n\t}\n\n\tif !nodeModified {\n\t\treturn\n\t}\n\n\tglog.Info(\"XID heartbeat check\")\n\t_, err = hc.kubeClient.CoreV1().Nodes().UpdateStatus(context.Background(), node, metav1.UpdateOptions{})\n\tif err != nil {\n\t\tglog.Errorf(\"Failed to update node %s status to update XIDCondition heartbeat: %v\", hc.nodeName, err)\n\t}\n}\n\nfunc (hc *GPUHealthChecker) recordXIDEvent(e nvml.Event) error {\n\tnode, err := hc.kubeClient.CoreV1().Nodes().Get(context.Background(), hc.nodeName, metav1.GetOptions{})\n\tif err != nil {\n\t\treturn err\n\t}\n\thc.recorder.Eventf(node, v1.EventTypeWarning, \"XIDError\", \"Caught XID error, XID=%d\", e.Edata)\n\treturn nil\n}\n\nfunc (hc *GPUHealthChecker) catchError(e nvml.Event, cd callDevice) {\n\t// Skip the error if it's not Xid critical\n\tif e.Etype != nvml.XidCriticalError {\n\t\tglog.Infof(\"Skip error Xid=%d as it is not Xid Critical\", e.Edata)\n\t\treturn\n\t}\n\n\terr := hc.recordXIDEvent(e)\n\tif err != nil {\n\t\tglog.Errorf(\"Failed to record XID=%d for node %s with err %v\", e.Edata, hc.nodeName, err)\n\t}\n\thc.monitorXidevent(e)\n\n\t// Only marking device unhealthy on Double Bit ECC Error or customer-configured codes\n\t// See https://docs.nvidia.com/deploy/xid-errors/index.html#topic_4\n\tif _, ok := hc.healthCriticalXid[e.Edata]; !ok {\n\t\tglog.Infof(\"Health checker is skipping Xid %v error\", e.Edata)\n\t\treturn\n\t}\n\n\tif e.UUID == nil || len(*e.UUID) == 0 {\n\t\t// All devices are unhealthy\n\t\tglog.Errorf(\"XidCriticalError: Xid=%d, All devices will go unhealthy.\", e.Edata)\n\t\tfor id, d := range hc.devices {\n\t\t\td.Health = pluginapi.Unhealthy\n\t\t\thc.devices[id] = d\n\t\t\thc.health <- d\n\t\t}\n\t\treturn\n\t}\n\n\tfounderrordevice := false\n\tfor _, d := range hc.devices {\n\t\t// Please see https://github.com/NVIDIA/gpu-monitoring-tools/blob/148415f505c96052cb3b7fdf443b34ac853139ec/bindings/go/nvml/nvml.h#L1424\n\t\t// for the rationale why gi and ci can be set as such when the UUID is a full GPU UUID and not a MIG device UUID.\n\t\tuuid := hc.nvmlDevices[d.ID].UUID\n\t\tgpu, gi, ci, err := cd.parseMigDeviceUUID(uuid)\n\t\tif err != nil {\n\t\t\tgpu = uuid\n\t\t\tgi = 0xFFFFFFFF\n\t\t\tci = 0xFFFFFFFF\n\t\t}\n\n\t\tif gpu == *e.UUID && gi == *e.GpuInstanceId && ci == *e.ComputeInstanceId {\n\t\t\tglog.Errorf(\"XidCriticalError: Xid=%d on Device=%s, uuid=%s, the device will go unhealthy.\", e.Edata, d.ID, uuid)\n\t\t\td.Health = pluginapi.Unhealthy\n\t\t\thc.devices[d.ID] = d\n\t\t\thc.health <- d\n\t\t\tfounderrordevice = true\n\t\t}\n\t}\n\tif !founderrordevice {\n\t\tglog.Errorf(\"XidCriticalError: Xid=%d on unknown device.\", e.Edata)\n\t}\n}\n\n// listenToEvents listens to events from NVML to detect GPU critical errors\nfunc (hc *GPUHealthChecker) listenToEvents() error {\n\tfor {\n\t\tselect {\n\t\tcase <-hc.stop:\n\t\t\tclose(hc.stop)\n\t\t\treturn nil\n\t\tdefault:\n\t\t}\n\n\t\te, err := nvml.WaitForEvent(hc.eventSet, 5000)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tgd := GPUDevice{}\n\t\thc.catchError(e, &gd)\n\t}\n}\n\n// Stop deletes the NVML events and stops the listening go routine\nfunc (hc *GPUHealthChecker) Stop() {\n\thc.recorder.(record.EventBroadcaster).Shutdown()\n\tnvml.DeleteEventSet(hc.eventSet)\n\thc.stop <- true\n\t<-hc.stop\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/health_check/health_checker_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage healthcheck\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"reflect\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/client-go/kubernetes/fake\"\n\tk8sclienttesting \"k8s.io/client-go/testing\"\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nfunc pointer[T any](s T) *T {\n\treturn &s\n}\n\ntype mockGPUDevice struct{}\n\nfunc (gp *mockGPUDevice) parseMigDeviceUUID(UUID string) (string, uint, uint, error) {\n\treturn UUID, 3173334309191009974, 1015241, nil\n}\n\nfunc TestCatchError(t *testing.T) {\n\tgp := mockGPUDevice{}\n\tdevice1 := pluginapi.Device{\n\t\tID: \"device1\",\n\t}\n\tudevice1 := pluginapi.Device{\n\t\tID:     \"device1\",\n\t\tHealth: pluginapi.Unhealthy,\n\t}\n\tdevice2 := pluginapi.Device{\n\t\tID: \"device2\",\n\t}\n\tudevice2 := pluginapi.Device{\n\t\tID:     \"device2\",\n\t\tHealth: pluginapi.Unhealthy,\n\t}\n\ttests := []struct {\n\t\tname             string\n\t\tevent            nvml.Event\n\t\thc               GPUHealthChecker\n\t\twantErrorDevices []pluginapi.Device\n\t}{\n\t\t{\n\t\t\tname: \"non-critical error\",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              pointer(\"GPU-f053fce6-851c-1235-90ae-037069703604\"),\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             0,\n\t\t\t\tEdata:             uint64(72),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t\t\"device2\": device2,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t\t\"device2\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703633\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{\n\t\t\t\t\t72: true,\n\t\t\t\t\t48: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{},\n\t\t},\n\t\t{\n\t\t\tname: \"xid error not included \",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              pointer(\"GPU-f053fce6-851c-1235-90ae-037069703604\"),\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             nvml.XidCriticalError,\n\t\t\t\tEdata:             uint64(88),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t\t\"device2\": device2,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t\t\"device2\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703633\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{\n\t\t\t\t\t72: true,\n\t\t\t\t\t48: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{},\n\t\t},\n\t\t{\n\t\t\tname: \"catching xid 72\",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              pointer(\"GPU-f053fce6-851c-1235-90ae-037069703604\"),\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             nvml.XidCriticalError,\n\t\t\t\tEdata:             uint64(72),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t\t\"device2\": device2,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t\t\"device2\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703633\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{\n\t\t\t\t\t72: true,\n\t\t\t\t\t48: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{udevice1},\n\t\t},\n\t\t{\n\t\t\tname: \"unknown device\",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              pointer(\"GPU-f053fce6-90ae-037069703604\"),\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             nvml.XidCriticalError,\n\t\t\t\tEdata:             uint64(72),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t\t\"device2\": device2,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t\t\"device2\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703633\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{\n\t\t\t\t\t72: true,\n\t\t\t\t\t48: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{},\n\t\t},\n\t\t{\n\t\t\tname: \"not catching xid 72\",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              pointer(\"GPU-f053fce6-851c-1235-90ae-037069703604\"),\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             nvml.XidCriticalError,\n\t\t\t\tEdata:             uint64(72),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{},\n\t\t},\n\t\t{\n\t\t\tname: \"catching all devices error\",\n\t\t\tevent: nvml.Event{\n\t\t\t\tUUID:              nil,\n\t\t\t\tGpuInstanceId:     pointer(uint(3173334309191009974)),\n\t\t\t\tComputeInstanceId: pointer(uint(1015241)),\n\t\t\t\tEtype:             nvml.XidCriticalError,\n\t\t\t\tEdata:             uint64(48),\n\t\t\t},\n\t\t\thc: GPUHealthChecker{\n\t\t\t\tdevices: map[string]pluginapi.Device{\n\t\t\t\t\t\"device1\": device1,\n\t\t\t\t\t\"device2\": device2,\n\t\t\t\t},\n\t\t\t\tnvmlDevices: map[string]*nvml.Device{\n\t\t\t\t\t\"device1\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703604\",\n\t\t\t\t\t},\n\t\t\t\t\t\"device2\": {\n\t\t\t\t\t\tUUID: \"GPU-f053fce6-851c-1235-90ae-037069703633\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thealthCriticalXid: map[uint64]bool{\n\t\t\t\t\t72: true,\n\t\t\t\t\t48: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErrorDevices: []pluginapi.Device{udevice1, udevice2},\n\t\t},\n\t}\n\tnode := makeNode(nil, nil, nil)\n\tfakeClient := fake.NewSimpleClientset(&v1.NodeList{Items: []v1.Node{node}})\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.hc.kubeClient = fakeClient\n\t\t\ttt.hc.health = make(chan pluginapi.Device, len(tt.hc.devices))\n\t\t\ttt.hc.catchError(tt.event, &gp)\n\t\t\tgotErrorDevices := make(map[string]pluginapi.Device)\n\t\t\tfor range tt.wantErrorDevices {\n\t\t\t\tif len(tt.hc.health) == 0 {\n\t\t\t\t\tt.Errorf(\"Fewer error devices was caught than expected.\")\n\t\t\t\t} else {\n\t\t\t\t\tgotErrorDevice := <-tt.hc.health\n\t\t\t\t\tgotErrorDevices[gotErrorDevice.ID] = gotErrorDevice\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tt.hc.health) != 0 {\n\t\t\t\tt.Errorf(\"More error devices was caught than expected.\")\n\t\t\t}\n\t\t\twantErrorDevicesMap := make(map[string]pluginapi.Device)\n\t\t\tfor _, d := range tt.wantErrorDevices {\n\t\t\t\twantErrorDevicesMap[d.ID] = d\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(gotErrorDevices, wantErrorDevicesMap) {\n\t\t\t\tt.Errorf(\"Mismatched error devices. Got %v, want %v\", gotErrorDevices, wantErrorDevicesMap)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUpdateLastHeartbeatTime(t *testing.T) {\n\tnode := makeNode(nil, nil, nil)\n\tinitialTime := metav1.Now()\n\tnode.Status.Conditions = append(node.Status.Conditions, v1.NodeCondition{\n\t\tType:               XIDConditionType,\n\t\tStatus:             \"True\",\n\t\tLastHeartbeatTime:  initialTime,\n\t\tLastTransitionTime: initialTime,\n\t\tReason:             \"XID\",\n\t\tMessage:            node.Status.NodeInfo.BootID,\n\t})\n\tnode.Status.Conditions = append(node.Status.Conditions, v1.NodeCondition{\n\t\tType:   v1.NodeReady,\n\t\tStatus: \"True\",\n\t})\n\tfakeClient := fake.NewSimpleClientset(&v1.NodeList{Items: []v1.Node{node}})\n\n\thc := NewGPUHealthChecker(nil, nil, nil, fakeClient)\n\thc.nodeName = \"test-node\"\n\n\ttime.Sleep(2 * time.Second)\n\thc.updateLastHeartbeatTime()\n\tupdatedNode, _ := fakeClient.CoreV1().Nodes().Get(context.Background(), \"test-node\", metav1.GetOptions{})\n\tif updatedNode.Status.Conditions[0].LastHeartbeatTime == initialTime {\n\t\tt.Errorf(\"The XID condition HeartbeatTime was not updated\")\n\t}\n\tif updatedNode.Status.Conditions[1] != node.Status.Conditions[1] {\n\t\tt.Errorf(\"The Ready condition was wrongly updated\")\n\t}\n}\n\nfunc TestResetXIDConditionWithBackoff(t *testing.T) {\n\t// Initialize the node with condition\n\tnode := makeNode(nil, nil, nil)\n\tinitialTime := metav1.Now()\n\tnode.Status.Conditions = append(node.Status.Conditions, v1.NodeCondition{\n\t\tType:               XIDConditionType,\n\t\tStatus:             \"True\",\n\t\tLastHeartbeatTime:  initialTime,\n\t\tLastTransitionTime: initialTime,\n\t\tReason:             \"XID\",\n\t\tMessage:            \"0\",\n\t})\n\tnode.Status.NodeInfo.BootID = \"1\" // New boot ID to ensure condition is removed on success\n\n\tfakeClient := fake.NewSimpleClientset(&v1.NodeList{Items: []v1.Node{node}})\n\n\tcallCount := 0\n\t// Mock the first 2 calls to fail, and the 3rd to succeed.\n\tfakeClient.Fake.PrependReactor(\"get\", \"nodes\", func(action k8sclienttesting.Action) (handled bool, ret runtime.Object, err error) {\n\t\tcallCount++\n\t\tif callCount < 3 {\n\t\t\treturn true, nil, errors.New(\"fake API server error\")\n\t\t}\n\t\t// On the 3rd call, we let the default reactor handle it, which will return the node.\n\t\treturn false, nil, nil\n\t})\n\n\thc := NewGPUHealthChecker(nil, nil, nil, fakeClient)\n\thc.nodeName = \"test-node\"\n\n\tstartTime := time.Now()\n\thc.resetXIDConditionWithBackoff()\n\tduration := time.Since(startTime)\n\n\tif callCount != 3 {\n\t\tt.Errorf(\"Expected 3 calls to get node, but got %d\", callCount)\n\t}\n\n\t// The first sleep is 1s, the second is 2s. Total should be > 3s.\n\tif duration < 3*time.Second {\n\t\tt.Errorf(\"Expected backoff to take at least 3 seconds, but it took %v\", duration)\n\t}\n\n\t// Check that the condition is removed\n\tupdatedNode, err := fakeClient.CoreV1().Nodes().Get(context.Background(), \"test-node\", metav1.GetOptions{})\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get node after backoff: %v\", err)\n\t}\n\n\tconditionRemoved := true\n\tfor _, c := range updatedNode.Status.Conditions {\n\t\tif c.Type == XIDConditionType {\n\t\t\tconditionRemoved = false\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !conditionRemoved {\n\t\tt.Errorf(\"XID condition was not removed after successful retry\")\n\t}\n}\n\nfunc TestMonitorXidevent(t *testing.T) {\n\tfor _, test := range []struct {\n\t\tdesc                     string\n\t\tevents                   []nvml.Event\n\t\tinitialConditions        []v1.NodeCondition\n\t\texpectedLength           int\n\t\texpectedConditionType    v1.NodeConditionType\n\t\texpectedConditionStatus  v1.ConditionStatus\n\t\texpectedConditionReason  string\n\t\texpectedConditionMessage string\n\t}{\n\t\t{\n\t\t\tdesc: \"XID not in attention set\",\n\t\t\tevents: []nvml.Event{\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(72),\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedLength: 0,\n\t\t},\n\t\t{\n\t\t\tdesc: \"XID all in attention set\",\n\t\t\tevents: []nvml.Event{\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(79),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(123),\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedLength:           1,\n\t\t\texpectedConditionType:    XIDConditionType,\n\t\t\texpectedConditionStatus:  \"True\",\n\t\t\texpectedConditionReason:  \"{\\\"123\\\":true,\\\"79\\\":true}\",\n\t\t\texpectedConditionMessage: \"123456\",\n\t\t},\n\t\t{\n\t\t\tdesc: \"XID partially in attention set\",\n\t\t\tevents: []nvml.Event{\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(72),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(140),\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedLength:           1,\n\t\t\texpectedConditionType:    XIDConditionType,\n\t\t\texpectedConditionStatus:  \"True\",\n\t\t\texpectedConditionReason:  \"{\\\"140\\\":true}\",\n\t\t\texpectedConditionMessage: \"123456\",\n\t\t},\n\t\t{\n\t\t\tdesc: \"repetitive XID\",\n\t\t\tevents: []nvml.Event{\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(72),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(140),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEdata: uint64(123),\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedLength:           1,\n\t\t\texpectedConditionType:    XIDConditionType,\n\t\t\texpectedConditionStatus:  \"True\",\n\t\t\texpectedConditionReason:  \"{\\\"123\\\":true,\\\"140\\\":true}\",\n\t\t\texpectedConditionMessage: \"123456\",\n\t\t},\n\t} {\n\t\tnode := makeNode(nil, nil, test.initialConditions)\n\t\tnode.Status.NodeInfo.BootID = \"123456\"\n\t\tfakeClient := fake.NewSimpleClientset(&v1.NodeList{Items: []v1.Node{node}})\n\n\t\thc := NewGPUHealthChecker(nil, nil, nil, fakeClient)\n\t\thc.nodeName = \"test-node\"\n\n\t\tfor _, event := range test.events {\n\t\t\thc.monitorXidevent(event)\n\t\t}\n\t\tupdatedNode, _ := fakeClient.CoreV1().Nodes().Get(context.Background(), \"test-node\", metav1.GetOptions{})\n\t\tif len(updatedNode.Status.Conditions) != test.expectedLength || len(updatedNode.Status.Conditions) > 1 {\n\t\t\tt.Errorf(\"Expect condition length to have value %v, got %v\", test.expectedLength, len(updatedNode.Status.Conditions))\n\t\t}\n\t\tif len(updatedNode.Status.Conditions) != 0 {\n\t\t\tcondition := updatedNode.Status.Conditions[0]\n\t\t\tif condition.Type != test.expectedConditionType {\n\t\t\t\tt.Errorf(\"Expect condition.Type to have value %v, got %v\", test.expectedConditionType, condition.Type)\n\t\t\t}\n\t\t\tif condition.Status != test.expectedConditionStatus {\n\t\t\t\tt.Errorf(\"Expect condition.Status to have value %v, got %v\", test.expectedConditionStatus, condition.Status)\n\t\t\t}\n\t\t\tif condition.Reason != test.expectedConditionReason {\n\t\t\t\tt.Errorf(\"Expect condition.Reason to have value %v, got %v\", test.expectedConditionReason, condition.Reason)\n\t\t\t}\n\t\t\tif condition.Message != test.expectedConditionMessage {\n\t\t\t\tt.Errorf(\"Expect condition.Message to have value %v, got %v\", test.expectedConditionMessage, condition.Message)\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nfunc makeNode(labels map[string]string, annotations map[string]string, conditions []v1.NodeCondition) v1.Node {\n\tmetadata := metav1.ObjectMeta{\n\t\tName: \"test-node\",\n\t}\n\tnode := v1.Node{\n\t\tObjectMeta: metadata,\n\t}\n\tif labels != nil {\n\t\tnode.ObjectMeta.Labels = labels\n\t}\n\tif annotations != nil {\n\t\tnode.ObjectMeta.Annotations = annotations\n\t}\n\tif conditions != nil {\n\t\tnode.Status.Conditions = conditions\n\t}\n\treturn node\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/manager.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvidia\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/nvmlutil\"\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/util\"\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/fsnotify/fsnotify\"\n\t\"github.com/golang/glog\"\n\t\"google.golang.org/grpc\"\n\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/gpusharing\"\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/mig\"\n)\n\nconst (\n\t// All NVIDIA GPUs cards should be mounted with nvidiactl and nvidia-uvm\n\t// If the driver installed correctly, these two devices will be there.\n\tnvidiaCtlDevice = \"nvidiactl\"\n\tnvidiaUVMDevice = \"nvidia-uvm\"\n\n\t// Optional devices.\n\tnvidiaUVMToolsDevice = \"nvidia-uvm-tools\"\n\tnvidiaModesetDevice  = \"nvidia-modeset\"\n\n\tnvidiaDeviceRE            = `^nvidia[0-9]*$`\n\tgpuCheckInterval          = 10 * time.Second\n\tpluginSocketCheckInterval = 1 * time.Second\n\n\tnvidiaMpsDir       = \"/tmp/nvidia-mps\"\n\tmpsControlBin      = \"/usr/local/nvidia/bin/nvidia-cuda-mps-control\"\n\tmpsActiveThreadCmd = \"get_default_active_thread_percentage\"\n\tmpsMemLimitEnv     = \"CUDA_MPS_PINNED_DEVICE_MEM_LIMIT\"\n\tmpsThreadLimitEnv  = \"CUDA_MPS_ACTIVE_THREAD_PERCENTAGE\"\n)\n\nvar (\n\tresourceName   = \"nvidia.com/gpu\"\n\tpciDevicesRoot = \"/sys/bus/pci/devices\"\n)\n\n// GPUConfig stores the settings used to configure the GPUs on a node.\ntype GPUConfig struct {\n\tGPUPartitionSize string\n\t// MaxTimeSharedClientsPerGPU is the number of the time-shared GPU resources to expose for each physical GPU.\n\t// Deprecated in favor of GPUSharingConfig.\n\tMaxTimeSharedClientsPerGPU int\n\t// GPUSharingConfig informs how GPUs on this node can be shared between containers.\n\tGPUSharingConfig GPUSharingConfig\n\t// Xid error codes that will set the node to unhealthy\n\tHealthCriticalXid []int\n}\n\ntype GPUSharingConfig struct {\n\t// GPUSharingStrategy is the type of sharing strategy to enable on this node. Values are \"time-sharing\" or \"mps\".\n\tGPUSharingStrategy gpusharing.GPUSharingStrategy\n\t// MaxSharedClientsPerGPU is the maximum number of clients that are allowed to share a single GPU.\n\tMaxSharedClientsPerGPU int\n}\n\nfunc (config *GPUConfig) AddDefaultsAndValidate() error {\n\tif config.MaxTimeSharedClientsPerGPU > 0 {\n\t\tif config.GPUSharingConfig.GPUSharingStrategy != \"\" || config.GPUSharingConfig.MaxSharedClientsPerGPU > 0 {\n\t\t\tglog.Infof(\"Both MaxTimeSharedClientsPerGPU and GPUSharingConfig are set, use the value of MaxTimeSharedClientsPerGPU\")\n\t\t}\n\n\t\tconfig.GPUSharingConfig.GPUSharingStrategy = gpusharing.TimeSharing\n\t\tconfig.GPUSharingConfig.MaxSharedClientsPerGPU = config.MaxTimeSharedClientsPerGPU\n\t} else {\n\t\tswitch config.GPUSharingConfig.GPUSharingStrategy {\n\t\tcase gpusharing.TimeSharing, gpusharing.MPS:\n\t\t\tif config.GPUSharingConfig.MaxSharedClientsPerGPU <= 0 {\n\t\t\t\treturn fmt.Errorf(\"MaxSharedClientsPerGPU should be > 0 for time-sharing or mps GPU sharing strategies\")\n\t\t\t}\n\t\t\tbreak\n\t\tcase gpusharing.Undefined:\n\t\t\tif config.GPUSharingConfig.MaxSharedClientsPerGPU > 0 {\n\t\t\t\treturn fmt.Errorf(\"GPU sharing strategy needs to be specified when MaxSharedClientsPerGPU > 0\")\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid GPU Sharing strategy: %v, should be one of time-sharing or mps\", config.GPUSharingConfig.GPUSharingStrategy)\n\t\t}\n\t}\n\tgpusharing.SharingStrategy = config.GPUSharingConfig.GPUSharingStrategy\n\treturn nil\n}\n\nfunc (config *GPUConfig) AddHealthCriticalXid() error {\n\txidConfig := os.Getenv(\"XID_CONFIG\")\n\tif len(xidConfig) == 0 {\n\t\tglog.Infof(\"There is no Xid config specified \")\n\t\treturn nil\n\t}\n\n\tglog.Infof(\"Detect HealthCriticalXid : %s \", xidConfig)\n\txidStrs := strings.Split(xidConfig, \",\")\n\txidArry := make([]int, len(xidStrs))\n\tvar err error\n\tfor i := range xidArry {\n\t\txidStr := strings.TrimSpace(xidStrs[i])\n\t\txidArry[i], err = strconv.Atoi(xidStr)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"Invalid HealthCriticalXid input : %v\", err)\n\t\t}\n\t}\n\tconfig.HealthCriticalXid = xidArry\n\treturn nil\n}\n\n// nvidiaGPUManager manages nvidia gpu devices.\ntype nvidiaGPUManager struct {\n\tdevDirectory        string\n\tmountPaths          []pluginapi.Mount\n\tdefaultDevices      []string\n\tdevices             map[string]pluginapi.Device\n\tgrpcServer          *grpc.Server\n\tsocket              string\n\tstop                chan bool\n\tdevicesMutex        sync.Mutex\n\tnvidiaCtlDevicePath string\n\tnvidiaUVMDevicePath string\n\tgpuConfig           GPUConfig\n\tmigDeviceManager    mig.DeviceManager\n\tHealth              chan pluginapi.Device\n\ttotalMemPerGPU      uint64 // Total memory available per GPU (in MB)\n}\n\nfunc NewNvidiaGPUManager(devDirectory, procDirectory string, mountPaths []pluginapi.Mount, gpuConfig GPUConfig) *nvidiaGPUManager {\n\treturn &nvidiaGPUManager{\n\n\t\tdevDirectory:        devDirectory,\n\t\tmountPaths:          mountPaths,\n\t\tdevices:             make(map[string]pluginapi.Device),\n\t\tstop:                make(chan bool),\n\t\tnvidiaCtlDevicePath: path.Join(devDirectory, nvidiaCtlDevice),\n\t\tnvidiaUVMDevicePath: path.Join(devDirectory, nvidiaUVMDevice),\n\t\tgpuConfig:           gpuConfig,\n\t\tmigDeviceManager:    mig.NewDeviceManager(devDirectory, procDirectory),\n\t\tHealth:              make(chan pluginapi.Device),\n\t}\n}\n\n// ListPhysicalDevices lists all physical GPU devices (including partitions) available on this node.\nfunc (ngm *nvidiaGPUManager) ListPhysicalDevices() map[string]pluginapi.Device {\n\tif ngm.gpuConfig.GPUPartitionSize == \"\" {\n\t\treturn ngm.devices\n\t}\n\treturn ngm.migDeviceManager.ListGPUPartitionDevices()\n}\n\nfunc (ngm *nvidiaGPUManager) ListHealthCriticalXid() []int {\n\treturn ngm.gpuConfig.HealthCriticalXid\n}\n\n// ListDevices lists all GPU devices available on this node.\nfunc (ngm *nvidiaGPUManager) ListDevices() map[string]pluginapi.Device {\n\tphysicalGPUDevices := ngm.ListPhysicalDevices()\n\n\tswitch {\n\tcase ngm.gpuConfig.GPUSharingConfig.MaxSharedClientsPerGPU > 0:\n\t\tvirtualGPUDevices := map[string]pluginapi.Device{}\n\t\tfor _, device := range physicalGPUDevices {\n\t\t\tfor i := 0; i < ngm.gpuConfig.GPUSharingConfig.MaxSharedClientsPerGPU; i++ {\n\t\t\t\tvirtualDeviceID := fmt.Sprintf(\"%s/vgpu%d\", device.ID, i)\n\t\t\t\t// When sharing GPUs, the virtual GPU device will inherit the health status from its underlying physical GPU device.\n\t\t\t\tvirtualGPUDevices[virtualDeviceID] = pluginapi.Device{ID: virtualDeviceID, Health: device.Health, Topology: device.Topology}\n\t\t\t}\n\t\t}\n\t\treturn virtualGPUDevices\n\tdefault:\n\t\treturn physicalGPUDevices\n\t}\n}\n\n// DeviceSpec returns the device spec that inclues list of devices to allocate for a deviceID.\nfunc (ngm *nvidiaGPUManager) DeviceSpec(deviceID string) ([]pluginapi.DeviceSpec, error) {\n\tdeviceSpecs := make([]pluginapi.DeviceSpec, 0)\n\t// With GPU sharing, the input deviceID will be a virtual Device ID.\n\t// We need to map it to the corresponding physical device ID.\n\tif ngm.gpuConfig.GPUSharingConfig.MaxSharedClientsPerGPU > 0 {\n\t\tphysicalDeviceID, err := gpusharing.VirtualToPhysicalDeviceID(deviceID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdeviceID = physicalDeviceID\n\t}\n\tif ngm.gpuConfig.GPUPartitionSize == \"\" {\n\t\tdev, ok := ngm.devices[deviceID]\n\t\tif !ok {\n\t\t\treturn deviceSpecs, fmt.Errorf(\"invalid allocation request with non-existing device %s\", deviceID)\n\t\t}\n\t\tif dev.Health != pluginapi.Healthy {\n\t\t\treturn deviceSpecs, fmt.Errorf(\"invalid allocation request with unhealthy device %s\", deviceID)\n\t\t}\n\t\tdeviceSpecs = append(deviceSpecs, pluginapi.DeviceSpec{\n\t\t\tHostPath:      path.Join(ngm.devDirectory, deviceID),\n\t\t\tContainerPath: path.Join(ngm.devDirectory, deviceID),\n\t\t\tPermissions:   \"mrw\",\n\t\t})\n\t\treturn deviceSpecs, nil\n\t}\n\treturn ngm.migDeviceManager.DeviceSpec(deviceID)\n}\n\n// Discovers all NVIDIA GPU devices available on the local node by walking nvidiaGPUManager's devDirectory.\nfunc (ngm *nvidiaGPUManager) discoverGPUs() error {\n\tif nvmlutil.NvmlDeviceInfo == nil {\n\t\tnvmlutil.NvmlDeviceInfo = &nvmlutil.DeviceInfo{}\n\t}\n\n\tdevicesCount, ret := nvmlutil.NvmlDeviceInfo.DeviceCount()\n\tif ret != nvml.SUCCESS {\n\t\treturn fmt.Errorf(\"failed to get devices count: %v\", nvml.ErrorString(ret))\n\t}\n\n\tfor i := 0; i < devicesCount; i++ {\n\t\tdevice, ret := nvmlutil.NvmlDeviceInfo.DeviceHandleByIndex((i))\n\t\tif ret != nvml.SUCCESS {\n\t\t\treturn fmt.Errorf(\"failed to get the device handle for index %d: %v\", i, nvml.ErrorString(ret))\n\t\t}\n\n\t\tminor, ret := nvmlutil.NvmlDeviceInfo.MinorNumber(device)\n\t\tif ret != nvml.SUCCESS {\n\t\t\treturn fmt.Errorf(\"failed to get the minor number for device with index %d: %v\", i, nvml.ErrorString(ret))\n\t\t}\n\n\t\tpath := fmt.Sprintf(\"nvidia%d\", minor)\n\t\tglog.V(3).Infof(\"Found Nvidia GPU %q\\n\", path)\n\n\t\ttopologyInfo, err := nvmlutil.Topology(device, pciDevicesRoot)\n\t\tif err != nil {\n\t\t\tglog.Errorf(\"unable to get topology for device with index %d\", i, err)\n\t\t}\n\t\tngm.SetDeviceHealth(path, pluginapi.Healthy, topologyInfo)\n\t}\n\n\treturn nil\n}\n\nfunc (ngm *nvidiaGPUManager) hasAdditionalGPUsInstalled() bool {\n\tngm.devicesMutex.Lock()\n\toriginalDeviceCount := len(ngm.devices)\n\tngm.devicesMutex.Unlock()\n\tdeviceCount, err := ngm.discoverNumGPUs()\n\tif err != nil {\n\t\tglog.Errorln(err)\n\t\treturn false\n\t}\n\n\tif deviceCount > originalDeviceCount {\n\t\tglog.Infof(\"Found %v GPUs, while only %v are registered. Stopping device-plugin server.\", deviceCount, originalDeviceCount)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (ngm *nvidiaGPUManager) discoverNumGPUs() (int, error) {\n\treg := regexp.MustCompile(nvidiaDeviceRE)\n\tdeviceCount := 0\n\tfiles, err := ioutil.ReadDir(ngm.devDirectory)\n\tif err != nil {\n\t\treturn deviceCount, err\n\t}\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tif reg.MatchString(f.Name()) {\n\t\t\tdeviceCount++\n\t\t}\n\t}\n\treturn deviceCount, nil\n}\n\n// isMpsHealthy checks whether MPS control daemon is running and healhty on the node.\nfunc (ngm *nvidiaGPUManager) isMpsHealthy() error {\n\tvar out bytes.Buffer\n\treader, writer := io.Pipe()\n\tdefer writer.Close()\n\tdefer reader.Close()\n\n\tmpsCmd := exec.Command(mpsControlBin)\n\tmpsCmd.Stdin = reader\n\tmpsCmd.Stdout = &out\n\n\terr := mpsCmd.Start()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to start NVIDIA MPS health check command: %v\", err)\n\t}\n\n\twriter.Write([]byte(mpsActiveThreadCmd))\n\twriter.Close()\n\n\terr = mpsCmd.Wait()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to health check NVIDIA MPS: %v\", err)\n\t}\n\n\treader.Close()\n\tglog.Infof(\"MPS is healthy, active thread percentage = %s\", out.String())\n\treturn nil\n}\n\nfunc (ngm *nvidiaGPUManager) Envs(numDevicesRequested int) map[string]string {\n\tif ngm.gpuConfig.GPUSharingConfig.GPUSharingStrategy == gpusharing.MPS {\n\t\tactiveThreadLimit := numDevicesRequested * 100 / ngm.gpuConfig.GPUSharingConfig.MaxSharedClientsPerGPU\n\t\tmemoryLimitBytes := uint64(numDevicesRequested) * ngm.totalMemPerGPU / uint64(ngm.gpuConfig.GPUSharingConfig.MaxSharedClientsPerGPU)\n\t\treturn map[string]string{\n\t\t\tmpsThreadLimitEnv: strconv.Itoa(activeThreadLimit),\n\t\t\t// The mpsMemLimitEnv is the GPU memory limit per container, e.g. 0=8192M.\n\t\t\t// 0 represents the device ID which this container resides.\n\t\t\t// Since MPS container can only land in one GPU, it is always device 0 relatively.\n\t\t\tmpsMemLimitEnv: fmt.Sprintf(\"0=%dM\", memoryLimitBytes/(1024*1024)),\n\t\t}\n\t}\n\treturn map[string]string{}\n}\n\n// SetDeviceHealth sets the health status for a GPU device or partition if MIG is enabled\nfunc (ngm *nvidiaGPUManager) SetDeviceHealth(name string, health string, topology *pluginapi.TopologyInfo) {\n\tngm.devicesMutex.Lock()\n\tdefer ngm.devicesMutex.Unlock()\n\n\treg := regexp.MustCompile(nvidiaDeviceRE)\n\n\tif reg.MatchString(name) {\n\t\tngm.devices[name] = pluginapi.Device{ID: name, Health: health, Topology: topology}\n\t} else {\n\t\tngm.migDeviceManager.SetDeviceHealth(name, health, topology)\n\t}\n}\n\n// Checks if the two nvidia paths exist. Could be used to verify if the driver\n// has been installed correctly\nfunc (ngm *nvidiaGPUManager) CheckDevicePaths() error {\n\tif _, err := os.Stat(ngm.nvidiaCtlDevicePath); err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := os.Stat(ngm.nvidiaUVMDevicePath); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Discovers Nvidia GPU devices and sets up device access environment.\nfunc (ngm *nvidiaGPUManager) Start() error {\n\tngm.defaultDevices = []string{ngm.nvidiaCtlDevicePath, ngm.nvidiaUVMDevicePath}\n\n\tnvidiaModesetDevicePath := path.Join(ngm.devDirectory, nvidiaModesetDevice)\n\tif _, err := os.Stat(nvidiaModesetDevicePath); err == nil {\n\t\tngm.defaultDevices = append(ngm.defaultDevices, nvidiaModesetDevicePath)\n\t}\n\n\tnvidiaUVMToolsDevicePath := path.Join(ngm.devDirectory, nvidiaUVMToolsDevice)\n\tif _, err := os.Stat(nvidiaUVMToolsDevicePath); err == nil {\n\t\tngm.defaultDevices = append(ngm.defaultDevices, nvidiaUVMToolsDevicePath)\n\t}\n\n\tif err := ngm.discoverGPUs(); err != nil {\n\t\treturn err\n\t}\n\tif ngm.gpuConfig.GPUPartitionSize != \"\" {\n\t\tif err := ngm.migDeviceManager.Start(ngm.gpuConfig.GPUPartitionSize); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to start mig device manager: %v\", err)\n\t\t}\n\t}\n\n\tif ngm.gpuConfig.GPUSharingConfig.GPUSharingStrategy == \"mps\" {\n\t\tif err := ngm.isMpsHealthy(); err != nil {\n\t\t\treturn fmt.Errorf(\"NVIDIA MPS is not running on this node: %v\", err)\n\t\t}\n\t\tngm.mountPaths = append(ngm.mountPaths, pluginapi.Mount{HostPath: nvidiaMpsDir, ContainerPath: nvidiaMpsDir, ReadOnly: false})\n\t\tvar err error\n\t\tngm.totalMemPerGPU, err = totalMemPerGPU()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to query total memory available per GPU: %v\", err)\n\t\t}\n\t}\n\treturn nil\n}\n\n// totalMemPerGPU returns the GPU memory available on each GPU device.\nfunc totalMemPerGPU() (uint64, error) {\n\tcount, ret := nvml.DeviceGetCount()\n\tif ret != nvml.SUCCESS {\n\t\treturn 0, fmt.Errorf(\"failed to enumerate devices: %v\", nvml.ErrorString(ret))\n\t}\n\tif count <= 0 {\n\t\treturn 0, fmt.Errorf(\"no GPUs on node, count: %d\", count)\n\t}\n\tdevice, ret := nvml.DeviceGetHandleByIndex(0)\n\tif ret != nvml.SUCCESS {\n\t\treturn 0, fmt.Errorf(\"failed to query GPU with nvml: %v\", nvml.ErrorString(ret))\n\t}\n\tmemory, ret := device.GetMemoryInfo()\n\tif ret != nvml.SUCCESS {\n\t\treturn 0, fmt.Errorf(\"failed to get GPU memory: %v\", nvml.ErrorString(ret))\n\t}\n\treturn memory.Total, nil\n}\n\nfunc (ngm *nvidiaGPUManager) Serve(pMountPath, kEndpoint, pluginEndpoint string) {\n\tregisterWithKubelet := false\n\t// Check if the unix socket device-plugin/kubelet.sock is at the host path.\n\tkubeletEndpointPath := path.Join(pMountPath, kEndpoint)\n\tif _, err := os.Stat(kubeletEndpointPath); err == nil {\n\t\tglog.Infof(\"registered with kubelet, will use beta API\\n\")\n\t\tregisterWithKubelet = true\n\t} else {\n\t\tglog.Infof(\"no kubelet.sock to register.\\n\")\n\t}\n\n\t// Create a watcher to watch /device-plugin directory.\n\twatcher, _ := util.Files(pMountPath)\n\tdefer watcher.Close()\n\tglog.Info(\"Starting filesystem watcher.\")\n\n\tfor {\n\t\tselect {\n\t\tcase <-ngm.stop:\n\t\t\tclose(ngm.stop)\n\t\t\treturn\n\t\tdefault:\n\t\t\t{\n\t\t\t\tpluginEndpointPath := path.Join(pMountPath, pluginEndpoint)\n\t\t\t\tglog.Infof(\"starting device-plugin server at: %s\\n\", pluginEndpointPath)\n\t\t\t\tlis, err := net.Listen(\"unix\", pluginEndpointPath)\n\t\t\t\tif err != nil {\n\t\t\t\t\tglog.Fatalf(\"starting device-plugin server failed: %v\", err)\n\t\t\t\t}\n\t\t\t\tngm.socket = pluginEndpointPath\n\t\t\t\tngm.grpcServer = grpc.NewServer()\n\n\t\t\t\t// Registers the supported versions of service.\n\t\t\t\tpluginbeta := &pluginServiceV1Beta1{ngm: ngm}\n\t\t\t\tpluginbeta.RegisterService()\n\n\t\t\t\tvar wg sync.WaitGroup\n\t\t\t\twg.Add(1)\n\t\t\t\t// Starts device plugin service.\n\t\t\t\tgo func() {\n\t\t\t\t\tdefer wg.Done()\n\t\t\t\t\t// Blocking call to accept incoming connections.\n\t\t\t\t\terr := ngm.grpcServer.Serve(lis)\n\t\t\t\t\tglog.Errorf(\"device-plugin server stopped serving: %v\", err)\n\t\t\t\t}()\n\n\t\t\t\tif registerWithKubelet {\n\t\t\t\t\t// Wait till the grpcServer is ready to serve services.\n\t\t\t\t\tfor len(ngm.grpcServer.GetServiceInfo()) <= 0 {\n\t\t\t\t\t\ttime.Sleep(1 * time.Second)\n\t\t\t\t\t}\n\t\t\t\t\tglog.Infoln(\"device-plugin server started serving\")\n\t\t\t\t\t// Registers with Kubelet.\n\t\t\t\t\terr = RegisterWithV1Beta1Kubelet(path.Join(pMountPath, kEndpoint), pluginEndpoint, resourceName)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tngm.grpcServer.Stop()\n\t\t\t\t\t\twg.Wait()\n\t\t\t\t\t\tglog.Fatal(err)\n\t\t\t\t\t}\n\t\t\t\t\tglog.Infoln(\"device-plugin registered with the kubelet\")\n\t\t\t\t}\n\n\t\t\t\t// This is checking if the plugin socket was deleted\n\t\t\t\t// and also if there are additional GPU devices installed.\n\t\t\t\t// If so, stop the grpc server and start the whole thing again.\n\t\t\t\tgpuCheck := time.NewTicker(gpuCheckInterval)\n\t\t\t\tpluginSocketCheck := time.NewTicker(pluginSocketCheckInterval)\n\t\t\t\tdefer gpuCheck.Stop()\n\t\t\t\tdefer pluginSocketCheck.Stop()\n\t\t\tstatusCheck:\n\t\t\t\tfor {\n\t\t\t\t\tselect {\n\t\t\t\t\t// Restart the device plugin if plugin endpoint file disappears.\n\t\t\t\t\tcase <-pluginSocketCheck.C:\n\t\t\t\t\t\tif _, err := os.Lstat(pluginEndpointPath); err != nil {\n\t\t\t\t\t\t\tglog.Infof(\"stopping device-plugin server at: %s\\n\", pluginEndpointPath)\n\t\t\t\t\t\t\tglog.Errorln(err)\n\t\t\t\t\t\t\tngm.grpcServer.Stop()\n\t\t\t\t\t\t\tbreak statusCheck\n\t\t\t\t\t\t}\n\t\t\t\t\t// Restart the device plugin if additional GPU installers.\n\t\t\t\t\tcase <-gpuCheck.C:\n\t\t\t\t\t\tif ngm.hasAdditionalGPUsInstalled() {\n\t\t\t\t\t\t\tngm.grpcServer.Stop()\n\t\t\t\t\t\t\tfor {\n\t\t\t\t\t\t\t\terr := ngm.discoverGPUs()\n\t\t\t\t\t\t\t\tif err == nil {\n\t\t\t\t\t\t\t\t\tbreak statusCheck\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t// Restart the device plugin if kubelet socket gets recreated, which indicates a kubelet restart.\n\t\t\t\t\tcase event := <-watcher.Events:\n\t\t\t\t\t\tif event.Name == kubeletEndpointPath && event.Op&fsnotify.Create == fsnotify.Create {\n\t\t\t\t\t\t\tglog.Infof(\" %s recreated, stopping device-plugin server\", kubeletEndpointPath)\n\t\t\t\t\t\t\tngm.grpcServer.Stop()\n\t\t\t\t\t\t\tbreak statusCheck\n\t\t\t\t\t\t}\n\t\t\t\t\t// Log for any other fs errors and log them. This will not induce a device plugin restart.\n\t\t\t\t\tcase err := <-watcher.Errors:\n\t\t\t\t\t\tglog.Infof(\"inotify: %s\", err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twg.Wait()\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (ngm *nvidiaGPUManager) Stop() error {\n\tglog.Infof(\"removing device plugin socket %s\\n\", ngm.socket)\n\tif err := os.Remove(ngm.socket); err != nil && !os.IsNotExist(err) {\n\t\treturn err\n\t}\n\tngm.stop <- true\n\t<-ngm.stop\n\tclose(ngm.Health)\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/manager_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvidia\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/nvmlutil\"\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/google/go-cmp/cmp\"\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nfunc TestGPUConfig_AddDefaultsAndValidate(t *testing.T) {\n\ttype fields struct {\n\t\tGPUPartitionSize           string\n\t\tMaxTimeSharedClientsPerGPU int\n\t\tGPUSharingConfig           GPUSharingConfig\n\t}\n\ttests := []struct {\n\t\tname       string\n\t\tfields     fields\n\t\twantErr    bool\n\t\twantFields fields\n\t}{\n\t\t{\n\t\t\tname:       \"valid config, no sharing\",\n\t\t\tfields:     fields{},\n\t\t\twantErr:    false,\n\t\t\twantFields: fields{},\n\t\t},\n\t\t{\n\t\t\tname:    \"valid config, time-sharing\",\n\t\t\tfields:  fields{MaxTimeSharedClientsPerGPU: 10},\n\t\t\twantErr: false,\n\t\t\twantFields: fields{\n\t\t\t\tMaxTimeSharedClientsPerGPU: 10,\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"time-sharing\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 10,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"invalid sharing strategy\",\n\t\t\tfields: fields{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"invalid\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 10,\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tconfig := &GPUConfig{\n\t\t\t\tGPUPartitionSize:           tt.fields.GPUPartitionSize,\n\t\t\t\tMaxTimeSharedClientsPerGPU: tt.fields.MaxTimeSharedClientsPerGPU,\n\t\t\t\tGPUSharingConfig:           tt.fields.GPUSharingConfig,\n\t\t\t}\n\t\t\tif err := config.AddDefaultsAndValidate(); (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"GPUConfig.AddDefaultsAndValidate() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\twantConfig := &GPUConfig{\n\t\t\t\tGPUPartitionSize:           tt.wantFields.GPUPartitionSize,\n\t\t\t\tMaxTimeSharedClientsPerGPU: tt.wantFields.MaxTimeSharedClientsPerGPU,\n\t\t\t\tGPUSharingConfig:           tt.wantFields.GPUSharingConfig,\n\t\t\t}\n\t\t\tif !tt.wantErr && !reflect.DeepEqual(config, wantConfig) {\n\t\t\t\tt.Errorf(\"GPUConfig was not defaulted correctly, got = %v, want = %v\", config, wantConfig)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGPUConfig_AddHealthCriticalXid(t *testing.T) {\n\ttype fields struct {\n\t\tXID_CONFIG        string\n\t\tHealthCriticalXid []int\n\t}\n\ttests := []struct {\n\t\tname     string\n\t\tfields   fields\n\t\twantErr  bool\n\t\twantXids fields\n\t}{\n\t\t{\n\t\t\tname:     \"valid config, no HealthCriticalXid\",\n\t\t\tfields:   fields{},\n\t\t\twantErr:  false,\n\t\t\twantXids: fields{},\n\t\t},\n\t\t{\n\t\t\tname:    \"valid config, HealthCriticalXid\",\n\t\t\tfields:  fields{XID_CONFIG: \"61, 31\"},\n\t\t\twantErr: false,\n\t\t\twantXids: fields{\n\t\t\t\tHealthCriticalXid: []int{61, 31},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"valid config with empty space HealthCriticalXid\",\n\t\t\tfields:  fields{XID_CONFIG: \"31,  32,34\"},\n\t\t\twantErr: false,\n\t\t\twantXids: fields{\n\t\t\t\tHealthCriticalXid: []int{31, 32, 34},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"invalid config, HealthCriticalXid\",\n\t\t\tfields:  fields{XID_CONFIG: \"31,32,x\"},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tconfig := &GPUConfig{}\n\t\t\tos.Setenv(\"XID_CONFIG\", tt.fields.XID_CONFIG)\n\t\t\tif err := config.AddHealthCriticalXid(); (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"GPUConfig.AddHealthCriticalXid() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\twantConfig := &GPUConfig{\n\t\t\t\tHealthCriticalXid: tt.wantXids.HealthCriticalXid,\n\t\t\t}\n\t\t\tif !tt.wantErr && !reflect.DeepEqual(config, wantConfig) {\n\t\t\t\tt.Errorf(\"GPUConfig was not defaulted correctly, got = %v, want = %v\", config, wantConfig)\n\t\t\t}\n\t\t\tos.Unsetenv(\"XID_CONFIG\")\n\t\t})\n\t}\n}\n\nfunc Test_nvidiaGPUManager_Envs(t *testing.T) {\n\ttests := []struct {\n\t\tname                string\n\t\ttotalMemPerGPU      uint64\n\t\tgpuConfig           GPUConfig\n\t\tnumDevicesRequested int\n\t\twant                map[string]string\n\t}{\n\t\t{\n\t\t\tname:                \"No GPU sharing enabled\",\n\t\t\ttotalMemPerGPU:      80 * 1024,\n\t\t\tgpuConfig:           GPUConfig{},\n\t\t\tnumDevicesRequested: 1,\n\t\t\twant:                map[string]string{},\n\t\t},\n\t\t{\n\t\t\tname:           \"time-sharing enabled\",\n\t\t\ttotalMemPerGPU: 80 * 1024,\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"time-sharing\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 10,\n\t\t\t\t},\n\t\t\t},\n\t\t\tnumDevicesRequested: 1,\n\t\t\twant:                map[string]string{},\n\t\t},\n\t\t{\n\t\t\tname: \"MPS enabled, single GPU request\",\n\t\t\t// totalMemPerGPU is 80G.\n\t\t\ttotalMemPerGPU: 80 * 1024 * 1024 * 1024,\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"mps\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 10,\n\t\t\t\t},\n\t\t\t},\n\t\t\tnumDevicesRequested: 1,\n\t\t\twant: map[string]string{\n\t\t\t\tmpsThreadLimitEnv: \"10\",\n\t\t\t\tmpsMemLimitEnv:    \"0=8192M\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"MPS enabled, multiple GPU request\",\n\t\t\t// totalMemPerGPU is 80G.\n\t\t\ttotalMemPerGPU: 80 * 1024 * 1024 * 1024,\n\t\t\tgpuConfig: GPUConfig{\n\t\t\t\tGPUSharingConfig: GPUSharingConfig{\n\t\t\t\t\tGPUSharingStrategy:     \"mps\",\n\t\t\t\t\tMaxSharedClientsPerGPU: 10,\n\t\t\t\t},\n\t\t\t},\n\t\t\tnumDevicesRequested: 5,\n\t\t\twant: map[string]string{\n\t\t\t\tmpsThreadLimitEnv: \"50\",\n\t\t\t\tmpsMemLimitEnv:    \"0=40960M\",\n\t\t\t},\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tngm := &nvidiaGPUManager{\n\t\t\t\tgpuConfig:      tt.gpuConfig,\n\t\t\t\ttotalMemPerGPU: tt.totalMemPerGPU,\n\t\t\t}\n\t\t\tif got := ngm.Envs(tt.numDevicesRequested); !reflect.DeepEqual(got, tt.want) {\n\t\t\t\tt.Errorf(\"nvidiaGPUManager.Envs() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_topology(t *testing.T) {\n\ttestDevDir, err := ioutil.TempDir(\"\", \"pci\")\n\tdefer os.RemoveAll(testDevDir)\n\tif err != nil {\n\t\tt.Errorf(\"unable to create %q temp dir for testing...\", testDevDir)\n\t}\n\tdevice := nvml.Device{}\n\n\ttestCases := []struct {\n\t\tname             string\n\t\tpciDevicesRoot   string\n\t\tbusID            [32]int8\n\t\tnumaFileContent  string\n\t\tnumaFileDir      string\n\t\twantTopologyInfo *pluginapi.TopologyInfo\n\t\twantError        bool\n\t}{\n\t\t{\n\t\t\tname:           \"valid numa configuration and topology info\",\n\t\t\tpciDevicesRoot: testDevDir,\n\t\t\tbusID: [32]int8{'0', '0', '0', '0', '0', '0', '0', '0', ':', '3', 'b', ':', '0', '0', '.', '0', 0, // null terminator\n\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t\tnumaFileContent: \"0\",\n\t\t\tnumaFileDir:     \"0000:3b:00.0\",\n\t\t\twantTopologyInfo: &pluginapi.TopologyInfo{\n\t\t\t\tNodes: []*pluginapi.NUMANode{\n\t\t\t\t\t{\n\t\t\t\t\t\tID: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantError: false,\n\t\t},\n\t\t{\n\t\t\tname:           \"invalid valid numa configuration\",\n\t\t\tpciDevicesRoot: testDevDir,\n\t\t\tbusID: [32]int8{'0', ':', '3', 'b', ':', '0', '0', '.', '0', 0, // null terminator\n\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t\tnumaFileContent:  \"0\",\n\t\t\tnumaFileDir:      \"0000:3b:00.0\",\n\t\t\twantTopologyInfo: nil,\n\t\t\twantError:        true,\n\t\t},\n\t\t{\n\t\t\tname:           \"no numa configuration\",\n\t\t\tpciDevicesRoot: testDevDir,\n\t\t\tbusID: [32]int8{'0', '0', '0', '0', '0', '0', '0', '0', ':', '3', 'b', ':', '0', '0', '.', '0', 0, // null terminator\n\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t\tnumaFileContent:  \"-1\",\n\t\t\tnumaFileDir:      \"0000:3b:00.0\",\n\t\t\twantTopologyInfo: nil,\n\t\t\twantError:        true,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// overriding nvmlutil.NvmlDeviceInfo to nvmlutil.MockDeviceInfo interface\n\t\t\tnvmlutil.NvmlDeviceInfo = &nvmlutil.MockDeviceInfo{}\n\t\t\tpciDevicesRoot = testDevDir\n\t\t\tmockInfo := nvmlutil.NvmlDeviceInfo.(*nvmlutil.MockDeviceInfo)\n\t\t\tmockInfo.BusID = tc.busID\n\t\t\tif len(tc.numaFileContent) > 0 {\n\t\t\t\terr = os.MkdirAll(path.Join(testDevDir, tc.numaFileDir), 0755)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"unable to create %q directory in %q\", tc.numaFileDir, testDevDir)\n\t\t\t\t}\n\t\t\t\tfileName := path.Join(testDevDir, \"0000:3b:00.0\", \"numa_node\")\n\t\t\t\tfile, err := os.Create(fileName)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"unable to create %q file\", fileName)\n\t\t\t\t}\n\t\t\t\terr = ioutil.WriteFile(file.Name(), []byte(tc.numaFileContent), 0644)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"unable to write following content to %q file: %q\", fileName, tc.numaFileContent)\n\t\t\t\t}\n\t\t\t}\n\t\t\tgotTopologyInfo, gotError := nvmlutil.Topology(device, tc.pciDevicesRoot)\n\t\t\tif gotError != nil && !tc.wantError {\n\t\t\t\tt.Errorf(\"%v\", gotError)\n\t\t\t}\n\t\t\tif diff := cmp.Diff(tc.wantTopologyInfo, gotTopologyInfo); diff != \"\" {\n\t\t\t\tt.Errorf(\"unexpected topologyInfo (-want, +got) = %s\", diff)\n\t\t\t}\n\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/devices.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metrics\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"regexp\"\n\t\"time\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/gpusharing\"\n\t\"github.com/golang/glog\"\n\t\"google.golang.org/grpc\"\n\tpodresources \"k8s.io/kubelet/pkg/apis/podresources/v1alpha1\"\n)\n\nvar (\n\tsocketPath      = \"/var/lib/kubelet/pod-resources/kubelet.sock\"\n\tgpuResourceName = \"nvidia.com/gpu\"\n\tgpuPathRegex    = regexp.MustCompile(\"/dev/(nvidia[0-9]+)$\")\n\n\tconnectionTimeout = 10 * time.Second\n\n\tgpuDevices map[string]*nvml.Device\n)\n\n// ContainerID uniquely identifies a container.\ntype ContainerID struct {\n\tnamespace string\n\tpod       string\n\tcontainer string\n}\n\n// GetDevicesForAllContainers returns a map with container as the key and the list of devices allocated to that container as the value.\n// It will skip time-shared GPU devices when time-sharing solution is enabled.\nfunc GetDevicesForAllContainers() (map[ContainerID][]string, error) {\n\tcontainerDevices := make(map[ContainerID][]string)\n\tconn, err := grpc.Dial(\n\t\tsocketPath,\n\t\tgrpc.WithInsecure(),\n\t\tgrpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {\n\t\t\treturn net.DialTimeout(\"unix\", addr, timeout)\n\t\t}))\n\tdefer func() {\n\t\terr := conn.Close()\n\t\tif err != nil {\n\t\t\tglog.Warningf(\"Failed to close grpc connection to kubelet PodResourceLister endpoint: %v\", err)\n\t\t}\n\t}()\n\n\tif err != nil {\n\t\treturn containerDevices, fmt.Errorf(\"error connecting to kubelet PodResourceLister service: %v\", err)\n\t}\n\tclient := podresources.NewPodResourcesListerClient(conn)\n\n\tresp, err := client.List(context.Background(), &podresources.ListPodResourcesRequest{})\n\tif err != nil {\n\t\treturn containerDevices, fmt.Errorf(\"error listing pod resources: %v\", err)\n\t}\n\n\tfor _, pod := range resp.PodResources {\n\t\tcontainer := ContainerID{\n\t\t\tnamespace: pod.Namespace,\n\t\t\tpod:       pod.Name,\n\t\t}\n\n\t\tfor _, c := range pod.Containers {\n\t\t\tcontainer.container = c.Name\n\t\t\tfor _, d := range c.Devices {\n\t\t\t\tif len(d.DeviceIds) == 0 || d.ResourceName != gpuResourceName {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvar devices []string\n\t\t\t\tfor _, deviceID := range d.DeviceIds {\n\t\t\t\t\tif gpusharing.IsVirtualDeviceID(deviceID) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tdevices = append(devices, deviceID)\n\t\t\t\t}\n\t\t\t\tcontainerDevices[container] = append(containerDevices[container], devices...)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn containerDevices, nil\n}\n\nfunc GetAllGpuDevices() map[string]*nvml.Device {\n\treturn gpuDevices\n}\n\n// DiscoverGPUDevices discovers GPUs attached to the node, and updates `gpuDevices` map.\nfunc DiscoverGPUDevices() error {\n\tcount, ret := nvml.DeviceGetCount()\n\tif ret != nvml.SUCCESS {\n\t\treturn fmt.Errorf(\"failed to get device count: %s\", nvml.ErrorString(ret))\n\t}\n\n\tglog.Infof(\"Found %d GPU devices\", count)\n\tgpuDevices = make(map[string]*nvml.Device)\n\tfor i := int(0); i < count; i++ {\n\t\tdevice, ret := nvml.DeviceGetHandleByIndex(i)\n\t\tif ret != nvml.SUCCESS {\n\t\t\treturn fmt.Errorf(\"failed to read device with index %d: %v\", i, nvml.ErrorString(ret))\n\t\t}\n\t\tminor, ret := device.GetMinorNumber()\n\t\tif ret != nvml.SUCCESS {\n\t\t\tglog.Errorf(\"Invalid GPU device minor number found. Skipping this device\")\n\t\t}\n\t\tdeviceName := fmt.Sprintf(\"nvidia%d\", minor)\n\t\tglog.Infof(\"Found device %s for metrics collection\", deviceName)\n\t\tgpuDevices[deviceName] = &device\n\t}\n\treturn nil\n}\n\n// DeviceFromName returns the device object for a given device name.\nfunc DeviceFromName(deviceName string) (*nvml.Device, error) {\n\tdevice, ok := gpuDevices[deviceName]\n\tif !ok {\n\t\treturn &nvml.Device{}, fmt.Errorf(\"device %s not found\", deviceName)\n\t}\n\n\treturn device, nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/metrics.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metrics\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/golang/glog\"\n\t\"github.com/prometheus/client_golang/prometheus\"\n\t\"github.com/prometheus/client_golang/prometheus/promauto\"\n\t\"github.com/prometheus/client_golang/prometheus/promhttp\"\n)\n\ntype metricsCollector interface {\n\tcollectGPUDevice(deviceName string) (*nvml.Device, error)\n\tcollectDutyCycle(string, time.Duration) (uint, error)\n\tcollectGpuMetricsInfo(device string, d *nvml.Device) (metricsInfo, error)\n}\n\nvar gmc metricsCollector\n\ntype mCollector struct{}\n\ntype metricsInfo struct {\n\tdutyCycle   uint\n\tusedMemory  uint64\n\ttotalMemory uint64\n\tuuid        string\n\tdeviceModel string\n}\n\nfunc (t *mCollector) collectGPUDevice(deviceName string) (*nvml.Device, error) {\n\treturn DeviceFromName(deviceName)\n}\n\nfunc (t *mCollector) collectDutyCycle(uuid string, since time.Duration) (uint, error) {\n\treturn AverageGPUUtilization(uuid, since)\n}\n\nfunc (t *mCollector) collectGpuMetricsInfo(device string, d *nvml.Device) (metricsInfo, error) {\n\treturn getGpuMetricsInfo(device, d)\n}\n\nvar (\n\t// DutyCycleNodeGpu reports the percent of time when the GPU was actively processing per Node.\n\tDutyCycleNodeGpu = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"duty_cycle_gpu_node\",\n\t\t\tHelp: \"Percent of time when the GPU was actively processing\",\n\t\t},\n\t\t[]string{\"make\", \"accelerator_id\", \"model\"})\n\n\t// MemoryTotalNodeGpu reports the total memory available on the GPU per Node.\n\tMemoryTotalNodeGpu = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"memory_total_gpu_node\",\n\t\t\tHelp: \"Total memory available on the GPU in bytes\",\n\t\t},\n\t\t[]string{\"make\", \"accelerator_id\", \"model\"})\n\n\t// MemoryUsedNodeGpu reports GPU memory allocated per Node.\n\tMemoryUsedNodeGpu = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"memory_used_gpu_node\",\n\t\t\tHelp: \"Allocated GPU memory in bytes\",\n\t\t},\n\t\t[]string{\"make\", \"accelerator_id\", \"model\"})\n\n\t// DutyCycle reports the percent of time when the GPU was actively processing per container.\n\tDutyCycle = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"duty_cycle\",\n\t\t\tHelp: \"Percent of time when the GPU was actively processing\",\n\t\t},\n\t\t[]string{\"namespace\", \"pod\", \"container\", \"make\", \"accelerator_id\", \"model\"})\n\n\t// MemoryTotal reports the total memory available on the GPU per container.\n\tMemoryTotal = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"memory_total\",\n\t\t\tHelp: \"Total memory available on the GPU in bytes\",\n\t\t},\n\t\t[]string{\"namespace\", \"pod\", \"container\", \"make\", \"accelerator_id\", \"model\"})\n\n\t// MemoryUsed reports GPU memory allocated per container.\n\tMemoryUsed = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"memory_used\",\n\t\t\tHelp: \"Allocated GPU memory in bytes\",\n\t\t},\n\t\t[]string{\"namespace\", \"pod\", \"container\", \"make\", \"accelerator_id\", \"model\"})\n\n\t// AcceleratorRequests reports the number of GPU devices requested by the container.\n\tAcceleratorRequests = promauto.NewGaugeVec(\n\t\tprometheus.GaugeOpts{\n\t\t\tName: \"request\",\n\t\t\tHelp: \"Number of accelerator devices requested by the container\",\n\t\t},\n\t\t[]string{\"namespace\", \"pod\", \"container\", \"resource_name\"})\n)\n\nconst metricsResetInterval = time.Minute\n\n// MetricServer exposes GPU metrics for all containers and nodes in prometheus format on the specified port.\ntype MetricServer struct {\n\tcollectionInterval   int\n\tport                 int\n\tmetricsEndpointPath  string\n\tlastMetricsResetTime time.Time\n}\n\nfunc NewMetricServer(collectionInterval, port int, metricsEndpointPath string) *MetricServer {\n\treturn &MetricServer{\n\t\tcollectionInterval:   collectionInterval,\n\t\tport:                 port,\n\t\tmetricsEndpointPath:  metricsEndpointPath,\n\t\tlastMetricsResetTime: time.Now(),\n\t}\n}\n\n// Start performs necessary initializations and starts the metric server.\nfunc (m *MetricServer) Start() error {\n\tglog.Infoln(\"Starting metrics server\")\n\n\tdriverVersion, ret := nvml.SystemGetDriverVersion()\n\tif ret != nvml.SUCCESS {\n\t\treturn fmt.Errorf(\"failed to query nvml: %v\", nvml.ErrorString(ret))\n\t}\n\tglog.Infof(\"nvml initialized successfully. Driver version: %s\", driverVersion)\n\n\terr := DiscoverGPUDevices()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to discover GPU devices: %v\", err)\n\t}\n\n\tgo func() {\n\t\thttp.Handle(m.metricsEndpointPath, promhttp.Handler())\n\t\terr := http.ListenAndServe(fmt.Sprintf(\":%d\", m.port), nil)\n\t\tif err != nil {\n\t\t\tglog.Infof(\"Failed to start metric server: %v\", err)\n\t\t}\n\t}()\n\n\tgo m.collectMetrics()\n\treturn nil\n}\n\nfunc (m *MetricServer) collectMetrics() {\n\tgmc = &mCollector{}\n\tt := time.NewTicker(time.Millisecond * time.Duration(m.collectionInterval))\n\tdefer t.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-t.C:\n\t\t\tdevices, err := GetDevicesForAllContainers()\n\t\t\tif err != nil {\n\t\t\t\tglog.Errorf(\"Failed to get devices for containers: %v\", err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tgpuDevices := GetAllGpuDevices()\n\t\t\tm.updateMetrics(devices, gpuDevices)\n\t\t}\n\t}\n}\n\nfunc getGpuMetricsInfo(device string, d *nvml.Device) (metricsInfo, error) {\n\tuuid, ret := d.GetUUID()\n\tif ret != nvml.SUCCESS {\n\t\treturn metricsInfo{}, fmt.Errorf(\"failed to get GPU UUID: %v\", nvml.ErrorString(ret))\n\t}\n\tdeviceModel, ret := d.GetName()\n\tif ret != nvml.SUCCESS {\n\t\treturn metricsInfo{}, fmt.Errorf(\"failed to get GPU device model: %v\", nvml.ErrorString(ret))\n\t}\n\n\tmem, ret := d.GetMemoryInfo()\n\tif ret != nvml.SUCCESS {\n\t\treturn metricsInfo{}, fmt.Errorf(\"failed to get GPU memory: %v\", nvml.ErrorString(ret))\n\t}\n\tdutyCycle, err := gmc.collectDutyCycle(uuid, time.Second*10)\n\tif err != nil {\n\t\treturn metricsInfo{}, fmt.Errorf(\"failed to get dutyCycle: %v\", err)\n\t}\n\treturn metricsInfo{\n\t\tdutyCycle:   dutyCycle,\n\t\tusedMemory:  mem.Used,\n\t\ttotalMemory: mem.Total,\n\t\tuuid:        uuid,\n\t\tdeviceModel: deviceModel}, nil\n}\n\nfunc (m *MetricServer) updateMetrics(containerDevices map[ContainerID][]string, gpuDevices map[string]*nvml.Device) {\n\tm.resetMetricsIfNeeded()\n\tfor container, devices := range containerDevices {\n\t\tAcceleratorRequests.WithLabelValues(container.namespace, container.pod, container.container, gpuResourceName).Set(float64(len(devices)))\n\t\tfor _, device := range devices {\n\t\t\td, err := gmc.collectGPUDevice(device)\n\t\t\tif err != nil {\n\t\t\t\tglog.Errorf(\"Failed to get device for %s: %v\", device, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmi, err := gmc.collectGpuMetricsInfo(device, d)\n\t\t\tif err != nil {\n\t\t\t\tglog.Infof(\"Error calculating duty cycle for device: %s: %v. Skipping this device\", device, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tDutyCycle.WithLabelValues(container.namespace, container.pod, container.container, \"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.dutyCycle))\n\t\t\tMemoryTotal.WithLabelValues(container.namespace, container.pod, container.container, \"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.totalMemory)) // memory reported in bytes\n\t\t\tMemoryUsed.WithLabelValues(container.namespace, container.pod, container.container, \"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.usedMemory))   // memory reported in bytes\n\t\t}\n\t}\n\tfor device, d := range gpuDevices {\n\t\tmi, err := gmc.collectGpuMetricsInfo(device, d)\n\t\tif err != nil {\n\t\t\tglog.Infof(\"Error calculating duty cycle for device: %s: %v. Skipping this device\", device, err)\n\t\t\tcontinue\n\t\t}\n\n\t\tDutyCycleNodeGpu.WithLabelValues(\"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.dutyCycle))\n\t\tMemoryTotalNodeGpu.WithLabelValues(\"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.totalMemory)) // memory reported in bytes\n\t\tMemoryUsedNodeGpu.WithLabelValues(\"nvidia\", mi.uuid, mi.deviceModel).Set(float64(mi.usedMemory))   // memory reported in bytes\n\t}\n}\n\nfunc (m *MetricServer) resetMetricsIfNeeded() {\n\tif time.Now().After(m.lastMetricsResetTime.Add(metricsResetInterval)) {\n\t\tAcceleratorRequests.Reset()\n\t\tDutyCycle.Reset()\n\t\tMemoryTotal.Reset()\n\t\tMemoryUsed.Reset()\n\t\tDutyCycleNodeGpu.Reset()\n\t\tMemoryTotalNodeGpu.Reset()\n\t\tMemoryUsedNodeGpu.Reset()\n\n\t\tm.lastMetricsResetTime = time.Now()\n\t}\n}\n\n// Stop performs cleanup operations and stops the metric server.\nfunc (m *MetricServer) Stop() {\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/metrics_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metrics\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/prometheus/client_golang/prometheus/testutil\"\n)\n\ntype mockCollector struct{}\n\nfunc (t *mockCollector) collectGPUDevice(deviceName string) (*nvml.Device, error) {\n\treturn gpuDevicesMock[deviceName], nil\n}\n\nfunc (t *mockCollector) collectDutyCycle(uuid string, since time.Duration) (uint, error) {\n\tdutyCycle, ok := dutyCycleMock[uuid]\n\tif !ok {\n\t\treturn 0, fmt.Errorf(\"duty cycle for %s not found\", uuid)\n\t}\n\treturn dutyCycle, nil\n}\n\nfunc (t *mockCollector) collectGpuMetricsInfo(device string, d *nvml.Device) (metricsInfo, error) {\n\tinfo := metricsInfoMock[device]\n\treturn metricsInfo{\n\t\tdutyCycle:   info.dutyCycle,\n\t\tusedMemory:  info.usedMemory,\n\t\ttotalMemory: info.totalMemory,\n\t\tuuid:        info.uuid,\n\t\tdeviceModel: info.deviceModel}, nil\n}\n\nvar (\n\tcontainerDevicesMock = map[ContainerID][]string{\n\t\t{\n\t\t\tnamespace: \"default\",\n\t\t\tpod:       \"pod1\",\n\t\t\tcontainer: \"container1\",\n\t\t}: {\n\t\t\t\"nvidia0\",\n\t\t},\n\t\t{\n\t\t\tnamespace: \"non-default\",\n\t\t\tpod:       \"pod2\",\n\t\t\tcontainer: \"container2\",\n\t\t}: {\n\t\t\t\"nvidia1\",\n\t\t\t\"nvidia2\",\n\t\t},\n\t}\n\n\tgpuDevicesMock = map[string]*nvml.Device{\n\t\t\"nvidia0\": {},\n\t\t\"nvidia1\": {},\n\t\t\"nvidia2\": {},\n\t\t\"nvidia3\": {},\n\t}\n\n\tdutyCycleMock = map[string]uint{\n\t\t\"656547758\":  78,\n\t\t\"850729563\":  32,\n\t\t\"3572375710\": 13,\n\t\t\"8732906554\": 1,\n\t}\n\n\tmetricsInfoMock = map[string]metricsInfo{\n\t\t\"nvidia0\": {\n\t\t\tdutyCycle:   78,\n\t\t\tusedMemory:  uint64(50),\n\t\t\ttotalMemory: uint64(200),\n\t\t\tuuid:        \"656547758\",\n\t\t\tdeviceModel: \"model1\",\n\t\t},\n\t\t\"nvidia1\": {\n\t\t\tdutyCycle:   32,\n\t\t\tusedMemory:  uint64(150),\n\t\t\ttotalMemory: uint64(200),\n\t\t\tuuid:        \"850729563\",\n\t\t\tdeviceModel: \"model2\",\n\t\t},\n\t\t\"nvidia2\": {\n\t\t\tdutyCycle:   13,\n\t\t\tusedMemory:  uint64(100),\n\t\t\ttotalMemory: uint64(350),\n\t\t\tuuid:        \"3572375710\",\n\t\t\tdeviceModel: \"model1\",\n\t\t},\n\t\t\"nvidia3\": {\n\t\t\tdutyCycle:   1,\n\t\t\tusedMemory:  uint64(375),\n\t\t\ttotalMemory: uint64(700),\n\t\t\tuuid:        \"8732906554\",\n\t\t\tdeviceModel: \"model1\",\n\t\t},\n\t}\n)\n\nfunc TestMetricsUpdate(t *testing.T) {\n\tgmc = &mockCollector{}\n\tms := MetricServer{}\n\tms.updateMetrics(containerDevicesMock, gpuDevicesMock)\n\n\tif testutil.ToFloat64(\n\t\tAcceleratorRequests.WithLabelValues(\n\t\t\t\"default\", \"pod1\", \"container1\", gpuResourceName)) != 1 ||\n\t\ttestutil.ToFloat64(\n\t\t\tAcceleratorRequests.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", gpuResourceName)) != 2 {\n\t\tt.Fatalf(\"Wrong Result in AcceleratorRequsets\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tDutyCycle.WithLabelValues(\n\t\t\t\"default\", \"pod1\", \"container1\", \"nvidia\", \"656547758\", \"model1\")) != 78 ||\n\t\ttestutil.ToFloat64(\n\t\t\tDutyCycle.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"850729563\", \"model2\")) != 32 ||\n\t\ttestutil.ToFloat64(\n\t\t\tDutyCycle.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"3572375710\", \"model1\")) != 13 {\n\t\tt.Fatalf(\"Wrong Result in DutyCycle\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tMemoryTotal.WithLabelValues(\n\t\t\t\"default\", \"pod1\", \"container1\", \"nvidia\", \"656547758\", \"model1\")) != 200 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryTotal.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"850729563\", \"model2\")) != 200 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryTotal.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"3572375710\", \"model1\")) != 350 {\n\t\tt.Fatalf(\"Wrong Result in MemoryTotal\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tMemoryUsed.WithLabelValues(\n\t\t\t\"default\", \"pod1\", \"container1\", \"nvidia\", \"656547758\", \"model1\")) != 50 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryUsed.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"850729563\", \"model2\")) != 150 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryUsed.WithLabelValues(\n\t\t\t\t\"non-default\", \"pod2\", \"container2\", \"nvidia\", \"3572375710\", \"model1\")) != 100 {\n\t\tt.Fatalf(\"Wrong Result in MemoryTotal\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tDutyCycleNodeGpu.WithLabelValues(\n\t\t\t\"nvidia\", \"656547758\", \"model1\")) != 78 ||\n\t\ttestutil.ToFloat64(\n\t\t\tDutyCycleNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"850729563\", \"model2\")) != 32 ||\n\t\ttestutil.ToFloat64(\n\t\t\tDutyCycleNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"3572375710\", \"model1\")) != 13 ||\n\t\ttestutil.ToFloat64(\n\t\t\tDutyCycleNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"8732906554\", \"model1\")) != 1 {\n\t\tt.Fatalf(\"Wrong Result in DutyCycleNodeGpu\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tMemoryTotalNodeGpu.WithLabelValues(\n\t\t\t\"nvidia\", \"656547758\", \"model1\")) != 200 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryTotalNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"850729563\", \"model2\")) != 200 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryTotalNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"3572375710\", \"model1\")) != 350 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryTotalNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"8732906554\", \"model1\")) != 700 {\n\t\tt.Fatalf(\"Wrong Result in MemoryTotalNodeGpu\")\n\t}\n\n\tif testutil.ToFloat64(\n\t\tMemoryUsedNodeGpu.WithLabelValues(\n\t\t\t\"nvidia\", \"656547758\", \"model1\")) != 50 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryUsedNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"850729563\", \"model2\")) != 150 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryUsedNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"3572375710\", \"model1\")) != 100 ||\n\t\ttestutil.ToFloat64(\n\t\t\tMemoryUsedNodeGpu.WithLabelValues(\n\t\t\t\t\"nvidia\", \"8732906554\", \"model1\")) != 375 {\n\t\tt.Fatalf(\"Wrong Result in MemoryUsedNodeGpu\")\n\t}\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/util.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metrics\n\n/*\n#cgo linux LDFLAGS: -ldl -Wl,--unresolved-symbols=ignore-in-object-files\n#cgo darwin LDFLAGS: -ldl -Wl,-undefined,dynamic_lookup\n\n#include <stddef.h>\n#include <dlfcn.h>\n#include <stdlib.h>\n\n#include \"../../../../vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h\"\n\n// This function is here because the API provided by NVML is not very user\n// friendly. This function can be used to get average utilization for a gpu.\n//\n// `uuid`: The uuid identifier of the target GPU device.\n// `lastSeenTimeStamp`: Return average using samples with timestamp greather than this timestamp. Unix epoch in micro seconds.\n// `averageUsage`: Reference in which average is returned.\n//\n// In my experiments, I found that NVML_GPU_UTILIZATION_SAMPLES buffer stores\n// 100 samples that are uniformly spread with ~6 samples per second. So the\n// buffer stores last ~16s of data.\nnvmlReturn_t nvmlDeviceGetAverageUsage(char *uuid, unsigned long long lastSeenTimeStamp, unsigned int* averageUsage, unsigned int* sumValue, unsigned int* sampleCountValue) {\n  nvmlValueType_t sampleValType;\n\n  // This will be set to the number of samples that can be queried. We would\n  // need to allocate an array of this size to store the samples.\n  unsigned int sampleCount;\n\n  nvmlDevice_t device;\n  nvmlReturn_t r = nvmlDeviceGetHandleByUUID(uuid, &device);\n  if (r != NVML_SUCCESS) {\n\t  return r;\n  }\n\n  // Invoking this method with `samples` set to NULL, to get the size of samples that user needs to allocate.\n  // The returned samplesCount will provide the number of samples that can be queried. The user needs to\n  // allocate the buffer with size as samplesCount * sizeof(nvmlSample_t).\n  r = nvmlDeviceGetSamples(device, NVML_GPU_UTILIZATION_SAMPLES, lastSeenTimeStamp, &sampleValType, &sampleCount, NULL);\n  if (r != NVML_SUCCESS) {\n    // @return\n    //      - \\ref NVML_SUCCESS                 if samples are successfully retrieved\n    //      - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n    //      - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a samplesCount is NULL or\n    //                                          reference to \\a sampleCount is 0 for non null \\a samples\n    //      - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n    //      - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n    //      - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n    //      - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n    return r;\n  }\n  // Allocate memory to store sampleCount samples.\n  // In my experiments, the sampleCount at this stage was always 120 for\n  // NVML_TOTAL_POWER_SAMPLES and 100 for NVML_GPU_UTILIZATION_SAMPLES\n  // The reference to a sampleCount will not be 0, otherwise if will have NVML_ERROR_INVALID_ARGUMENT error\n  nvmlSample_t* samples = (nvmlSample_t*) malloc(sampleCount * sizeof(nvmlSample_t));\n  r = nvmlDeviceGetSamples(device, NVML_GPU_UTILIZATION_SAMPLES, lastSeenTimeStamp, &sampleValType, &sampleCount, samples);\n  if (r != NVML_SUCCESS) {\n    free(samples);\n    return r;\n  }\n  int i = 0;\n  unsigned int sum = 0;\n  for (; i < sampleCount; i++) {\n  // Power, Utilization and Clock samples are returned as type \"unsigned int\" for the union nvmlValue_t.\n    sum += samples[i].sampleValue.uiVal;\n  }\n  *averageUsage = sum/sampleCount;\n  *sumValue = sum;\n  *sampleCountValue = sampleCount;\n  free(samples);\n  return r;\n}\n*/\nimport \"C\"\nimport (\n\t\"fmt\"\n\t\"time\"\n\t\"unsafe\"\n)\n\n// AverageGPUUtilization reports the average GPU utilization over the last 10 seconds.\nfunc AverageGPUUtilization(uuid string, since time.Duration) (uint, error) {\n\tlastTs := C.ulonglong(time.Now().Add(-1*since).UnixNano() / 1000)\n\tuuidCStr := C.CString(uuid)\n\tvar util C.uint\n\tvar sum C.uint\n\tvar sampleCount C.uint\n\tr := C.nvmlDeviceGetAverageUsage(uuidCStr, lastTs, &util, &sum, &sampleCount)\n\tC.free(unsafe.Pointer(uuidCStr))\n\tif r != C.NVML_SUCCESS {\n\t\treturn 0, fmt.Errorf(\"failed to get GPU utilization for device %s, nvml return code: %v\", uuid, r)\n\t}\n\taverageUtilization := uint(util)\n\tif averageUtilization > 100 || averageUtilization < 0 {\n\t\treturn 0, fmt.Errorf(\"failed to get GPU utilization for device %s, out of range [0, 100] utilization: %d, sum: %d, sampleCount: %d\", uuid, averageUtilization, uint(sum), uint(sampleCount))\n\t}\n\treturn averageUtilization, nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/mig/mig.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage mig\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"regexp\"\n\t\"strconv\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/nvmlutil\"\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/golang/glog\"\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nconst nvidiaDeviceRE = `^nvidia[0-9]*$`\n\n// Max number of GPU partitions that can be created for each partition size.\n// Source: https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning\nvar (\n\tgpuPartitionSizeMaxCount = map[string]int{\n\t\t//nvidia-tesla-a100\n\t\t\"1g.5gb\":  7,\n\t\t\"2g.10gb\": 3,\n\t\t\"3g.20gb\": 2,\n\t\t\"7g.40gb\": 1,\n\t\t//nvidia-a100-80gb, nvidia-h100-80gb\n\t\t\"1g.10gb\": 7,\n\t\t\"2g.20gb\": 3,\n\t\t\"3g.40gb\": 2,\n\t\t\"7g.80gb\": 1,\n\t\t//nvidia-h100-80gb\n\t\t\"1g.20gb\": 4,\n\t\t//nvidia-h200-141gb\n\t\t\"1g.18gb\":  7,\n\t\t\"1g.35gb\":  4,\n\t\t\"2g.35gb\":  3,\n\t\t\"3g.71gb\":  2,\n\t\t\"4g.71gb\":  1,\n\t\t\"7g.141gb\": 1,\n\t\t//nvidia-b200, nvidia-gb200\n\t\t\"1g.23gb\": 7,\n\t\t//nvidia-b200\n\t\t\"1g.45gb\":  4,\n\t\t\"2g.45gb\":  3,\n\t\t\"3g.90gb\":  2,\n\t\t\"4g.90gb\":  1,\n\t\t\"7g.180gb\": 1,\n\t\t//nvidia-gb200\n\t\t\"1g.47gb\":  4,\n\t\t\"2g.47gb\":  3,\n\t\t\"3g.93gb\":  2,\n\t\t\"4g.93gb\":  1,\n\t\t\"7g.186gb\": 1,\n\t\t//nvidia-rtx-pro-6000\n\t\t\"1g.24gb\":        4,\n\t\t\"1g.24gb+me\":     1,\n\t\t\"1g.24gb+gfx\":    4,\n\t\t\"1g.24gb+me.all\": 1,\n\t\t\"1g.24gb-me\":     4,\n\t\t\"2g.48gb\":        2,\n\t\t\"2g.48gb+gfx\":    2,\n\t\t\"2g.48gb+me.all\": 1,\n\t\t\"2g.48gb-me\":     2,\n\t\t\"4g.96gb\":        1,\n\t\t\"4g.96gb+gfx\":    1,\n\t}\n\tpciDevicesRoot = \"/sys/bus/pci/devices\"\n)\n\n// DeviceManager performs various management operations on mig devices.\ntype DeviceManager struct {\n\tdevDirectory      string\n\tprocDirectory     string\n\tgpuPartitionSpecs map[string][]pluginapi.DeviceSpec\n\tgpuPartitions     map[string]pluginapi.Device\n}\n\n// NewDeviceManager creates a new DeviceManager to handle MIG devices on the node.\nfunc NewDeviceManager(devDirectory, procDirectory string) DeviceManager {\n\treturn DeviceManager{\n\t\tdevDirectory:      devDirectory,\n\t\tprocDirectory:     procDirectory,\n\t\tgpuPartitionSpecs: make(map[string][]pluginapi.DeviceSpec),\n\t\tgpuPartitions:     make(map[string]pluginapi.Device),\n\t}\n}\n\n// ListGPUPartitionDevices lists all the GPU partitions as devices that can be advertised as\n// resources available on the node.\nfunc (d *DeviceManager) ListGPUPartitionDevices() map[string]pluginapi.Device {\n\treturn d.gpuPartitions\n}\n\n// DeviceSpec returns the device spec that inclues list of devices to allocate for a deviceID.\nfunc (d *DeviceManager) DeviceSpec(deviceID string) ([]pluginapi.DeviceSpec, error) {\n\tdeviceSpecs, ok := d.gpuPartitionSpecs[deviceID]\n\tif !ok {\n\t\treturn []pluginapi.DeviceSpec{}, fmt.Errorf(\"invalid allocation request with non-existing GPU partition: %s\", deviceID)\n\t}\n\n\treturn deviceSpecs, nil\n}\n\n// Start method performs the necessary initializations and starts the mig.DeviceManager.\nfunc (d *DeviceManager) Start(partitionSize string) error {\n\tif partitionSize == \"\" {\n\t\treturn nil\n\t}\n\n\tmaxPartitionCount, ok := gpuPartitionSizeMaxCount[partitionSize]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%s is not a valid GPU partition size\", partitionSize)\n\t}\n\n\td.gpuPartitionSpecs = make(map[string][]pluginapi.DeviceSpec)\n\n\tnvidiaCapDir := path.Join(d.procDirectory, \"driver/nvidia/capabilities\")\n\tcapFiles, err := ioutil.ReadDir(nvidiaCapDir)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to read capabilities directory (%s): %v\", nvidiaCapDir, err)\n\t}\n\n\tgpuFileRegexp := regexp.MustCompile(\"gpu([0-9]+)\")\n\tgiFileRegexp := regexp.MustCompile(\"gi([0-9]+)\")\n\tdeviceRegexp := regexp.MustCompile(\"DeviceFileMinor: ([0-9]+)\")\n\n\tnumPartitionedGPUs := 0\n\n\tfor _, capFile := range capFiles {\n\t\tm := gpuFileRegexp.FindStringSubmatch(capFile.Name())\n\t\tif len(m) != 2 {\n\t\t\t// Not a gpu, continue to next file\n\t\t\tcontinue\n\t\t}\n\n\t\tgpuID := m[1]\n\t\tnumPartitionedGPUs++\n\n\t\tgiBasePath := path.Join(nvidiaCapDir, capFile.Name(), \"mig\")\n\t\tgiFiles, err := ioutil.ReadDir(giBasePath)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to read GPU instance capabilities dir (%s): %v\", giBasePath, err)\n\t\t}\n\n\t\tnumPartitions := 0\n\t\tfor _, giFile := range giFiles {\n\t\t\tif !giFileRegexp.MatchString(giFile.Name()) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tnumPartitions++\n\n\t\t\tgpuInstanceID := \"nvidia\" + gpuID + \"/\" + giFile.Name()\n\t\t\tgiAccessFile := path.Join(giBasePath, giFile.Name(), \"access\")\n\t\t\tcontent, err := ioutil.ReadFile(giAccessFile)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to read GPU Instance access file (%s): %v\", giAccessFile, err)\n\t\t\t}\n\n\t\t\tm := deviceRegexp.FindStringSubmatch(string(content))\n\t\t\tif len(m) != 2 {\n\t\t\t\treturn fmt.Errorf(\"unexpected contents in GPU instance access file(%s): %v\", giAccessFile, err)\n\t\t\t}\n\t\t\tgiMinorDevice, err := strconv.Atoi(m[1])\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to find minor device from GPU instance access file(%s): %v\", giAccessFile, err)\n\t\t\t}\n\n\t\t\tciAccessFile := path.Join(giBasePath, giFile.Name(), \"ci0\", \"access\")\n\t\t\tcontent, err = ioutil.ReadFile(ciAccessFile)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"unable to read Compute Instance access file (%s): %v\", ciAccessFile, err)\n\t\t\t}\n\n\t\t\tm = deviceRegexp.FindStringSubmatch(string(content))\n\t\t\tif len(m) != 2 {\n\t\t\t\treturn fmt.Errorf(\"unexpected contents in compute instance access file(%s): %v\", ciAccessFile, err)\n\t\t\t}\n\t\t\tciMinorDevice, err := strconv.Atoi(m[1])\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to find minor device from compute instance access file(%s): %v\", ciAccessFile, err)\n\t\t\t}\n\n\t\t\tgpuDevice := path.Join(d.devDirectory, \"nvidia\"+gpuID)\n\t\t\tif _, err := os.Stat(gpuDevice); err != nil {\n\t\t\t\treturn fmt.Errorf(\"GPU device (%s) not fount: %v\", gpuDevice, err)\n\t\t\t}\n\n\t\t\tgiDevice := path.Join(d.devDirectory, \"nvidia-caps\", \"nvidia-cap\"+strconv.Itoa(giMinorDevice))\n\t\t\tif _, err := os.Stat(giDevice); err != nil {\n\t\t\t\treturn fmt.Errorf(\"GPU instance device (%s) not fount: %v\", giDevice, err)\n\t\t\t}\n\n\t\t\tciDevice := path.Join(d.devDirectory, \"nvidia-caps\", \"nvidia-cap\"+strconv.Itoa(ciMinorDevice))\n\t\t\tif _, err := os.Stat(ciDevice); err != nil {\n\t\t\t\treturn fmt.Errorf(\"Compute instance device (%s) not fount: %v\", ciDevice, err)\n\t\t\t}\n\n\t\t\tglog.Infof(\"Discovered GPU partition: %s\", gpuInstanceID)\n\t\t\td.gpuPartitionSpecs[gpuInstanceID] = []pluginapi.DeviceSpec{\n\t\t\t\t{\n\t\t\t\t\tContainerPath: gpuDevice,\n\t\t\t\t\tHostPath:      gpuDevice,\n\t\t\t\t\tPermissions:   \"mrw\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tContainerPath: giDevice,\n\t\t\t\t\tHostPath:      giDevice,\n\t\t\t\t\tPermissions:   \"mrw\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tContainerPath: ciDevice,\n\t\t\t\t\tHostPath:      ciDevice,\n\t\t\t\t\tPermissions:   \"mrw\",\n\t\t\t\t},\n\t\t\t}\n\t\t\ttopologyInfo, err := d.topology(gpuID)\n\t\t\tif err != nil {\n\t\t\t\tglog.Errorf(\"unable to get topology for device with index %d: %v\", gpuID, err)\n\t\t\t}\n\t\t\td.gpuPartitions[gpuInstanceID] = pluginapi.Device{ID: gpuInstanceID, Health: pluginapi.Healthy, Topology: topologyInfo}\n\t\t}\n\n\t\tif numPartitions != maxPartitionCount {\n\t\t\treturn fmt.Errorf(\"Number of partitions (%d) for GPU %s does not match expected partition count (%d)\", numPartitions, gpuID, maxPartitionCount)\n\t\t}\n\t}\n\n\tnumGPUs, err := d.discoverNumGPUs()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif numPartitionedGPUs != numGPUs {\n\t\treturn fmt.Errorf(\"Not all GPUs are partitioned as expected. Total number of GPUs: %d, number of partitioned GPUs: %d\", numGPUs, numPartitionedGPUs)\n\t}\n\n\treturn nil\n}\n\n// SetDeviceHealth sets the health status for a GPU partition\nfunc (d *DeviceManager) SetDeviceHealth(name string, health string, topology *pluginapi.TopologyInfo) {\n\td.gpuPartitions[name] = pluginapi.Device{ID: name, Health: health, Topology: topology}\n}\n\n// Discovers all NVIDIA GPU devices available on the local node by walking nvidiaGPUManager's devDirectory.\nfunc (d *DeviceManager) discoverNumGPUs() (int, error) {\n\tnumGPUs := 0\n\n\treg := regexp.MustCompile(nvidiaDeviceRE)\n\tfiles, err := ioutil.ReadDir(d.devDirectory)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"failed to read devices on node: %v\", err)\n\t}\n\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tif reg.MatchString(f.Name()) {\n\t\t\tnumGPUs++\n\t\t}\n\t}\n\treturn numGPUs, nil\n}\n\nfunc (d *DeviceManager) topology(deviceIndex string) (*pluginapi.TopologyInfo, error) {\n\tindex, err := strconv.Atoi(deviceIndex)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to convert deviceIndex %q string to int: %v\", deviceIndex, err)\n\t}\n\n\tif nvmlutil.NvmlDeviceInfo == nil {\n\t\tnvmlutil.NvmlDeviceInfo = &nvmlutil.DeviceInfo{}\n\t}\n\tdevice, ret := nvmlutil.NvmlDeviceInfo.DeviceHandleByIndex(index)\n\tif ret != nvml.SUCCESS {\n\t\treturn nil, fmt.Errorf(\"failed to get mig device handle: %v\", nvml.ErrorString(ret))\n\t}\n\treturn nvmlutil.Topology(device, pciDevicesRoot)\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/mig/mig_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage mig\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/nvmlutil\"\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\nfunc TestDiscoverGPUPartitions(t *testing.T) {\n\ttestDevDir, err := ioutil.TempDir(\"\", \"dev\")\n\tdefer os.RemoveAll(testDevDir)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create temp dev dir: %v\", err)\n\t}\n\n\ttestProcDir, err := ioutil.TempDir(\"\", \"proc\")\n\tdefer os.RemoveAll(testProcDir)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create temp proc dir: %v\", err)\n\t}\n\n\tif err := os.MkdirAll(path.Join(testProcDir, \"driver/nvidia/capabilities/gpu0/mig/gi1/ci0\"), 0755); err != nil {\n\t\tt.Fatalf(\"failed to create capabilities dir: %v\", err)\n\t}\n\tif err := os.MkdirAll(path.Join(testProcDir, \"driver/nvidia/capabilities/gpu0/mig/gi2/ci0\"), 0755); err != nil {\n\t\tt.Fatalf(\"failed to create capabilities dir: %v\", err)\n\t}\n\n\terr = os.MkdirAll(path.Join(testDevDir, \"nvidia-caps\"), 0755)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create capabilities device dir: %v\", err)\n\t}\n\n\t// Create GI and CI acceess files\n\tcapToMinorDevices := map[string]int{\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi1/access\":     12,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi1/ci0/access\": 13,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi2/access\":     21,\n\t\t\"driver/nvidia/capabilities/gpu0/mig/gi2/ci0/access\": 22,\n\t}\n\tfor file, minor := range capToMinorDevices {\n\t\tif err := ioutil.WriteFile(path.Join(testProcDir, file), []byte(fmt.Sprintf(\"DeviceFileMinor: %d\\nDeviceFileMode: 292\", minor)), 0644); err != nil {\n\t\t\tt.Fatalf(\"failed to create proc capabilities file (%s): %v\", file, err)\n\t\t}\n\t}\n\n\t// Create device nodes\n\tdeviceNodes := []string{\n\t\t\"nvidia-uvm\",\n\t\t\"nvidia-uvm-tools\",\n\t\t\"nvidiactl\",\n\t\t\"nvidia0\",\n\t\t\"nvidia-caps/nvidia-cap12\",\n\t\t\"nvidia-caps/nvidia-cap13\",\n\t\t\"nvidia-caps/nvidia-cap21\",\n\t\t\"nvidia-caps/nvidia-cap22\",\n\t}\n\tfor _, device := range deviceNodes {\n\t\tif _, err := os.Create(path.Join(testDevDir, device)); err != nil {\n\t\t\tt.Fatalf(\"failed to create device node (%s): %v\", device, err)\n\t\t}\n\t}\n\n\t// overriding nvmlutil.NvmlDeviceInfo to nvmlutil.MockDeviceInfo interface\n\tnvmlutil.NvmlDeviceInfo = &nvmlutil.MockDeviceInfo{}\n\n\tdeviceManager := NewDeviceManager(testDevDir, testProcDir)\n\tif err := deviceManager.Start(\"3g.20gb\"); err != nil {\n\t\tt.Errorf(\"Mig device manager failed to start: %v\", err)\n\t}\n\n\tdevices := deviceManager.ListGPUPartitionDevices()\n\tif len(devices) != 2 {\n\t\tt.Errorf(\"incorrect number of GPU partitions. got = %d, want = %d\", len(devices), 2)\n\t}\n\n\texpectedDevices := map[string][]pluginapi.DeviceSpec{\n\t\t\"nvidia0/gi1\": {\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia0\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia0\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia-caps/nvidia-cap12\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia-caps/nvidia-cap12\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia-caps/nvidia-cap13\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia-caps/nvidia-cap13\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t},\n\t\t\"nvidia0/gi2\": {\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia0\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia0\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia-caps/nvidia-cap21\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia-caps/nvidia-cap21\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tContainerPath: path.Join(testDevDir, \"nvidia-caps/nvidia-cap22\"),\n\t\t\t\tHostPath:      path.Join(testDevDir, \"nvidia-caps/nvidia-cap22\"),\n\t\t\t\tPermissions:   \"mrw\",\n\t\t\t},\n\t\t},\n\t}\n\n\tfor id, specWant := range expectedDevices {\n\t\t_, ok := devices[id]\n\t\tif !ok {\n\t\t\tt.Errorf(\"device id %s not found\", id)\n\t\t}\n\n\t\tspecGot, err := deviceManager.DeviceSpec(id)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"failed to look up device spec for %s\", id)\n\t\t}\n\n\t\tif !reflect.DeepEqual(specGot, specWant) {\n\t\t\tt.Errorf(\"device specs for device %s do not match. got: %v, want %v\", id, specGot, specWant)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/nvmlutil/nvml_mock.go",
    "content": "// Copyright 2025 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This file mocks NVML library methods for unit tests.\n\npackage nvmlutil\n\nimport (\n\t\"io/ioutil\"\n\t\"regexp\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n)\n\nconst nvidiaDeviceRE = `^nvidia[0-9]*$`\n\ntype MockDeviceInfo struct {\n\tCurrentDevice int\n\tTestDevDir    string\n\tBusID         [32]int8\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) DeviceCount() (int, nvml.Return) {\n\treg := regexp.MustCompile(nvidiaDeviceRE)\n\n\tfiles, _ := ioutil.ReadDir(gpuDeviceInfo.TestDevDir)\n\n\tnumDevices := 0\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tif reg.MatchString(f.Name()) {\n\t\t\tnumDevices += 1\n\t\t}\n\t}\n\treturn numDevices, nvml.SUCCESS\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) DeviceHandleByIndex(i int) (nvml.Device, nvml.Return) {\n\tgpuDeviceInfo.CurrentDevice = i\n\treturn nvml.Device{}, nvml.SUCCESS\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) MigDeviceHandleByIndex(d nvml.Device, i int) (nvml.Device, nvml.Return) {\n\treturn nvml.Device{}, nvml.SUCCESS\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) MigMode(d nvml.Device) (int, int, nvml.Return) {\n\treturn 0, 0, nvml.SUCCESS\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) MinorNumber(d nvml.Device) (int, nvml.Return) {\n\treturn gpuDeviceInfo.CurrentDevice, nvml.SUCCESS\n}\n\nfunc (gpuDeviceInfo *MockDeviceInfo) PciInfo(d nvml.Device) (nvml.PciInfo, nvml.Return) {\n\treturn nvml.PciInfo{BusId: gpuDeviceInfo.BusID}, nvml.SUCCESS\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/nvmlutil/nvmlutil.go",
    "content": "// Copyright 2025 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvmlutil\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/golang/glog\"\n\n\tpluginapi \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\"\n)\n\ntype NvmlOperations interface {\n\tDeviceCount() (int, nvml.Return)\n\tDeviceHandleByIndex(int) (nvml.Device, nvml.Return)\n\tMigDeviceHandleByIndex(nvml.Device, int) (nvml.Device, nvml.Return)\n\tMigMode(nvml.Device) (int, int, nvml.Return)\n\tMinorNumber(nvml.Device) (int, nvml.Return)\n\tPciInfo(d nvml.Device) (nvml.PciInfo, nvml.Return)\n}\n\n// Declare an interface variable for NVML operations.\n// This allows the interface to be overriden with mock\n// implementations in the tests.\nvar NvmlDeviceInfo NvmlOperations\n\n// DeviceInfo is a struct that implements the nvmlOperations interface.\ntype DeviceInfo struct{}\n\nfunc (gpuDeviceInfo *DeviceInfo) DeviceCount() (int, nvml.Return) {\n\treturn nvml.DeviceGetCount()\n}\n\nfunc (gpuDeviceInfo *DeviceInfo) DeviceHandleByIndex(i int) (nvml.Device, nvml.Return) {\n\treturn nvml.DeviceGetHandleByIndex(i)\n}\n\nfunc (gpuDeviceInfo *DeviceInfo) MigDeviceHandleByIndex(d nvml.Device, i int) (nvml.Device, nvml.Return) {\n\treturn d.GetMigDeviceHandleByIndex(i)\n}\n\n// migMode call's NVML device's GetMigMode() which returns:\n// Current mode: The currently active MIG mode\n// Pending mode: The MIG mode that will be applied after the next\n// GPU reset or system reboot\n// Return: NVML return code indicating success or specific error\nfunc (gpuDeviceInfo *DeviceInfo) MigMode(d nvml.Device) (int, int, nvml.Return) {\n\treturn d.GetMigMode()\n}\n\nfunc (gpuDeviceInfo *DeviceInfo) MinorNumber(d nvml.Device) (int, nvml.Return) {\n\treturn d.GetMinorNumber()\n}\n\nfunc (gpuDeviceInfo *DeviceInfo) PciInfo(d nvml.Device) (nvml.PciInfo, nvml.Return) {\n\treturn d.GetPciInfo()\n}\n\n// topology determines the NUMA topology information for a GPU device.\n// Returns a TopologyInfo containing the NUMA node ID for the GPU device\n// if NUMA is enabled, nil otherwise.\n// Example for a GPU device associated with NUMA node 1\n//\n//\ttopologyInfo := &pluginapi.TopologyInfo{\n//\t    Nodes: []*pluginapi.NUMANode{\n//\t        {\n//\t            ID: 1,\n//\t        },\n//\t    },\n//\t}\nfunc Topology(d nvml.Device, pciDevicesRoot string) (*pluginapi.TopologyInfo, error) {\n\tif NvmlDeviceInfo == nil {\n\t\tNvmlDeviceInfo = &DeviceInfo{}\n\t}\n\n\tnumaEnabled, node, err := numaNode(d, pciDevicesRoot)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !numaEnabled {\n\t\treturn nil, nil\n\t}\n\n\treturn &pluginapi.TopologyInfo{\n\t\tNodes: []*pluginapi.NUMANode{\n\t\t\t{\n\t\t\t\tID: int64(node),\n\t\t\t},\n\t\t},\n\t}, nil\n}\n\n// numaNode retrieves the NUMA node information for a given GPU device.\n// It first gets the PCI bus ID from the device, formats it appropriately,\n// then reads the NUMA node value from the sysfs filesystem.\nfunc numaNode(d nvml.Device, pciDevicesRoot string) (numaEnabled bool, numaNode int, err error) {\n\tif NvmlDeviceInfo == nil {\n\t\tNvmlDeviceInfo = &DeviceInfo{}\n\t}\n\tpciInfo, ret := NvmlDeviceInfo.PciInfo(d)\n\tif ret != nvml.SUCCESS {\n\t\treturn false, 0, fmt.Errorf(\"error getting PCI Bus Info of device: %v\", ret)\n\t}\n\n\tvar bytesT []byte\n\tfor _, b := range pciInfo.BusId {\n\t\tif byte(b) == '\\x00' {\n\t\t\tbreak\n\t\t}\n\t\tbytesT = append(bytesT, byte(b))\n\t}\n\n\t// Discard leading zeros.\n\tbusID := strings.ToLower(strings.TrimPrefix(string(bytesT), \"0000\"))\n\n\tnumaNodeFile := fmt.Sprintf(\"%s/%s/numa_node\", pciDevicesRoot, busID)\n\tglog.V(3).Infof(\"Reading NUMA node information from %q\", numaNodeFile)\n\tb, err := os.ReadFile(numaNodeFile)\n\tif err != nil {\n\t\treturn false, 0, fmt.Errorf(\"failed to read NUMA information from %q file: %v\", numaNodeFile, err)\n\t}\n\n\tnumaNode, err = strconv.Atoi(string(bytes.TrimSpace(b)))\n\tif err != nil {\n\t\treturn false, 0, fmt.Errorf(\"eror parsing value for NUMA node: %v\", err)\n\t}\n\n\tif numaNode < 0 {\n\t\treturn false, 0, nil\n\t}\n\n\treturn true, numaNode, nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/util/util.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage util\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\n\t\"github.com/fsnotify/fsnotify\"\n\t\"github.com/golang/glog\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/client-go/kubernetes\"\n\tclient \"k8s.io/client-go/kubernetes\"\n\t\"k8s.io/client-go/rest\"\n)\n\nfunc DeviceNameFromPath(path string) (string, error) {\n\tgpuPathRegex := regexp.MustCompile(\"/dev/(nvidia[0-9]+)$\")\n\tm := gpuPathRegex.FindStringSubmatch(path)\n\tif len(m) != 2 {\n\t\treturn \"\", fmt.Errorf(\"path (%s) is not a valid GPU device path\", path)\n\t}\n\treturn m[1], nil\n}\n\n// Files creates a Watcher for the specified files.\nfunc Files(files ...string) (*fsnotify.Watcher, error) {\n\twatcher, err := fsnotify.NewWatcher()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, f := range files {\n\t\terr = watcher.Add(f)\n\t\tif err != nil {\n\t\t\twatcher.Close()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn watcher, nil\n}\n\nfunc BuildKubeClient() (client.Interface, error) {\n\tconfig, err := rest.InClusterConfig()\n\tif err != nil {\n\t\tglog.Errorf(\"failed to get kube config. Error: %v\", err)\n\t\treturn nil, err\n\t}\n\tconfig.ContentType = runtime.ContentTypeProtobuf\n\n\tkubeClient, err := kubernetes.NewForConfig(config)\n\tif err != nil {\n\t\tglog.Errorf(\"failed to get kube client. Error: %v\", err)\n\t\treturn nil, err\n\t}\n\n\treturn kubeClient, nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/util/util_test.go",
    "content": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage util\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestDeviceNameFromPath(t *testing.T) {\n\tas := assert.New(t)\n\tname, err := DeviceNameFromPath(\"/dev/nvidia0\")\n\tas.Nil(err)\n\tas.Equal(\"nvidia0\", name)\n\n\tname, err = DeviceNameFromPath(\"/dev/somethingelse0\")\n\tas.Error(err)\n\tas.Contains(err.Error(), \"is not a valid GPU device path\")\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/version_visibility/version_visibility.go",
    "content": "// Copyright 2026 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage version_visibility\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/nvml\"\n\t\"github.com/golang/glog\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcorev1apply \"k8s.io/client-go/applyconfigurations/core/v1\"\n\t\"k8s.io/client-go/kubernetes\"\n)\n\nconst (\n\tDriverVersionPrefix   = \"cloud.google.com/cuda.driver-version\"\n\tDriverVersionMajor    = DriverVersionPrefix + \".major\"\n\tDriverVersionMinor    = DriverVersionPrefix + \".minor\"\n\tDriverVersionRevision = DriverVersionPrefix + \".revision\"\n\tDriverVersionFull     = DriverVersionPrefix + \".full\"\n)\n\n// PublishDriverVersionAnnotations queries the NVIDIA driver version via NVML and publishes it as annotations to the Kubernetes Node object.\nfunc PublishDriverVersionAnnotations(ctx context.Context, kubeClient kubernetes.Interface, nodeName string) error {\n\tversion, ret := nvml.SystemGetDriverVersion()\n\tif ret != nvml.SUCCESS {\n\t\treturn fmt.Errorf(\"failed to get driver version from NVML: %v\", nvml.ErrorString(ret))\n\t}\n\n\tglog.Infof(\"Found NVIDIA Driver Version: %s\", version)\n\treturn patchNodeAnnotations(ctx, kubeClient, nodeName, parseDriverAnnotations(version))\n}\n\nfunc parseDriverAnnotations(version string) map[string]string {\n\tannotations := map[string]string{\n\t\tDriverVersionFull: version,\n\t}\n\n\tparts := strings.Split(version, \".\")\n\tif len(parts) >= 1 {\n\t\tannotations[DriverVersionMajor] = parts[0]\n\t}\n\tif len(parts) >= 2 {\n\t\tannotations[DriverVersionMinor] = parts[1]\n\t}\n\tif len(parts) >= 3 {\n\t\tannotations[DriverVersionRevision] = parts[2]\n\t}\n\n\treturn annotations\n}\n\nfunc patchNodeAnnotations(ctx context.Context, kubeClient kubernetes.Interface, nodeName string, annotations map[string]string) error {\n\tif nodeName == \"\" {\n\t\treturn fmt.Errorf(\"node name is empty\")\n\t}\n\n\tnodeApplyConfiguration := corev1apply.Node(nodeName).\n\t\tWithAnnotations(annotations)\n\n\tglog.Infof(\"Applying node %s annotations using SSA: %v\", nodeName, annotations)\n\t_, err := kubeClient.CoreV1().Nodes().Apply(\n\t\tctx,\n\t\tnodeApplyConfiguration,\n\t\tmetav1.ApplyOptions{FieldManager: \"gpu-device-plugin\", Force: true},\n\t)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to apply node %s annotations: %v\", nodeName, err)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gpu/nvidia/version_visibility/version_visibility_test.go",
    "content": "// Copyright 2026 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage version_visibility\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/client-go/kubernetes/fake\"\n)\n\nfunc TestParseDriverAnnotations(t *testing.T) {\n\ttests := []struct {\n\t\tname     string\n\t\tversion  string\n\t\texpected map[string]string\n\t}{\n\t\t{\n\t\t\tname:    \"Full version\",\n\t\t\tversion: \"550.107.02\",\n\t\t\texpected: map[string]string{\n\t\t\t\tDriverVersionFull:     \"550.107.02\",\n\t\t\t\tDriverVersionMajor:    \"550\",\n\t\t\t\tDriverVersionMinor:    \"107\",\n\t\t\t\tDriverVersionRevision: \"02\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"Major only\",\n\t\t\tversion: \"550\",\n\t\t\texpected: map[string]string{\n\t\t\t\tDriverVersionFull:  \"550\",\n\t\t\t\tDriverVersionMajor: \"550\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"Major and Minor\",\n\t\t\tversion: \"550.107\",\n\t\t\texpected: map[string]string{\n\t\t\t\tDriverVersionFull:  \"550.107\",\n\t\t\t\tDriverVersionMajor: \"550\",\n\t\t\t\tDriverVersionMinor: \"107\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"Extra parts\",\n\t\t\tversion: \"550.107.02.04\",\n\t\t\texpected: map[string]string{\n\t\t\t\tDriverVersionFull:     \"550.107.02.04\",\n\t\t\t\tDriverVersionMajor:    \"550\",\n\t\t\t\tDriverVersionMinor:    \"107\",\n\t\t\t\tDriverVersionRevision: \"02\",\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tannotations := parseDriverAnnotations(tc.version)\n\t\t\tif len(annotations) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"expected %d annotations, got %d\", len(tc.expected), len(annotations))\n\t\t\t}\n\t\t\tfor k, v := range tc.expected {\n\t\t\t\tif annotations[k] != v {\n\t\t\t\t\tt.Errorf(\"expected annotation %s=%s, got %s\", k, v, annotations[k])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPatchNodeAnnotations(t *testing.T) {\n\tnodeName := \"test-node\"\n\tkubeClient := fake.NewSimpleClientset()\n\n\t// Create initial node\n\t_, err := kubeClient.CoreV1().Nodes().Create(context.Background(), &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: nodeName,\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"existing-label\": \"value\",\n\t\t\t\t\"cloud.google.com/cuda.driver-version.major\": \"510\",\n\t\t\t},\n\t\t},\n\t}, metav1.CreateOptions{})\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create node: %v\", err)\n\t}\n\n\tannotations := map[string]string{\n\t\t\"cloud.google.com/cuda.driver-version.major\": \"550\",\n\t\t\"cloud.google.com/cuda.driver-version.full\":  \"550.107.02\",\n\t}\n\n\terr = patchNodeAnnotations(context.Background(), kubeClient, nodeName, annotations)\n\tif err != nil {\n\t\tt.Fatalf(\"patchNodeAnnotations failed: %v\", err)\n\t}\n\n\t// Verify node annotations\n\tnode, err := kubeClient.CoreV1().Nodes().Get(context.Background(), nodeName, metav1.GetOptions{})\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get node: %v\", err)\n\t}\n\n\tfor k, v := range annotations {\n\t\tif node.Annotations[k] != v {\n\t\t\tt.Errorf(\"expected annotation %s=%s, got %s\", k, v, node.Annotations[k])\n\t\t}\n\t}\n\n\tif node.Annotations[\"existing-label\"] != \"value\" {\n\t\tt.Errorf(\"expected existing annotation to be preserved\")\n\t}\n}\n"
  },
  {
    "path": "test/nvidia_gpu/daemonset-nvidia-mig-test.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# This daemonset installs nvidia driver 450.80.02 and invokes the\n# partition_gpu tool to enable MIG mode and create GPU instances as specified\n# in the GPU config.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator-test\n                    operator: Exists\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: dev\n          hostPath:\n            path: /dev\n        - name: vulkan-icd-mount\n          hostPath:\n            path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n        - name: nvidia-install-dir-host\n          hostPath:\n            path: /home/kubernetes/bin/nvidia\n        - name: root-mount\n          hostPath:\n            path: /\n        - name: cos-tools\n          hostPath:\n            path: /var/lib/cos-tools\n        - name: nvidia-config\n          hostPath:\n            path: /etc/nvidia\n      initContainers:\n        - image: \"cos-nvidia-installer:fixed\"\n          imagePullPolicy: Never\n          name: nvidia-driver-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          env:\n            - name: NVIDIA_INSTALL_DIR_HOST\n              value: /home/kubernetes/bin/nvidia\n            - name: NVIDIA_INSTALL_DIR_CONTAINER\n              value: /usr/local/nvidia\n            - name: VULKAN_ICD_DIR_HOST\n              value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n            - name: VULKAN_ICD_DIR_CONTAINER\n              value: /etc/vulkan/icd.d\n            - name: ROOT_MOUNT_DIR\n              value: /root\n            - name: COS_TOOLS_DIR_HOST\n              value: /var/lib/cos-tools\n            - name: COS_TOOLS_DIR_CONTAINER\n              value: /build/cos-tools\n          volumeMounts:\n            - name: nvidia-install-dir-host\n              mountPath: /usr/local/nvidia\n            - name: vulkan-icd-mount\n              mountPath: /etc/vulkan/icd.d\n            - name: dev\n              mountPath: /dev\n            - name: root-mount\n              mountPath: /root\n            - name: cos-tools\n              mountPath: /build/cos-tools\n        - image: \"gcr.io/gke-release/nvidia-partition-gpu@sha256:6317b8b1bbf0c487f220c419a00840e518924fcda1d4485b47486ef21c0891f2\"\n          name: partition-gpus\n          env:\n            - name: LD_LIBRARY_PATH\n              value: /usr/local/nvidia/lib64\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: nvidia-install-dir-host\n              mountPath: /usr/local/nvidia\n            - name: dev\n              mountPath: /dev\n            - name: nvidia-config\n              mountPath: /etc/nvidia\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "test/nvidia_gpu/daemonset-nvidia-preloaded-test.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# The Dockerfile and other source for this daemonset are in\n# https://github.com/GoogleCloudPlatform/cos-gpu-installer\n#\n# This is the same as ../../daemonset.yaml except that it assumes that the\n# docker image is present on the node instead of downloading from GCR. This\n# allows easier upgrades because GKE can preload the correct image on the\n# node and the daemonset can just use that image.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator-test\n                    operator: Exists\n      tolerations:\n        - operator: \"Exists\"\n      hostNetwork: true\n      hostPID: true\n      volumes:\n        - name: dev\n          hostPath:\n            path: /dev\n        - name: vulkan-icd-mount\n          hostPath:\n            path: /home/kubernetes/bin/nvidia/vulkan/icd.d\n        - name: nvidia-install-dir-host\n          hostPath:\n            path: /home/kubernetes/bin/nvidia\n        - name: root-mount\n          hostPath:\n            path: /\n        - name: cos-tools\n          hostPath:\n            path: /var/lib/cos-tools\n      initContainers:\n        - image: \"cos-nvidia-installer:fixed\"\n          imagePullPolicy: Never\n          name: nvidia-driver-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          env:\n            - name: NVIDIA_INSTALL_DIR_HOST\n              value: /home/kubernetes/bin/nvidia\n            - name: NVIDIA_INSTALL_DIR_CONTAINER\n              value: /usr/local/nvidia\n            - name: VULKAN_ICD_DIR_HOST\n              value: /home/kubernetes/bin/nvidia/vulkan/icd.d\n            - name: VULKAN_ICD_DIR_CONTAINER\n              value: /etc/vulkan/icd.d\n            - name: ROOT_MOUNT_DIR\n              value: /root\n            - name: COS_TOOLS_DIR_HOST\n              value: /var/lib/cos-tools\n            - name: COS_TOOLS_DIR_CONTAINER\n              value: /build/cos-tools\n          volumeMounts:\n            - name: nvidia-install-dir-host\n              mountPath: /usr/local/nvidia\n            - name: vulkan-icd-mount\n              mountPath: /etc/vulkan/icd.d\n            - name: dev\n              mountPath: /dev\n            - name: root-mount\n              mountPath: /root\n            - name: cos-tools\n              mountPath: /build/cos-tools\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "test/nvidia_gpu/daemonset-ubuntu-preloaded.yaml",
    "content": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-driver-installer\n  namespace: kube-system\n  labels:\n    k8s-app: nvidia-driver-installer\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-driver-installer\n  updateStrategy:\n    type: RollingUpdate\n  template:\n    metadata:\n      labels:\n        name: nvidia-driver-installer\n        k8s-app: nvidia-driver-installer\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: Exists\n      tolerations:\n        - operator: \"Exists\"\n      volumes:\n        - name: dev\n          hostPath:\n            path: /dev\n        - name: boot\n          hostPath:\n            path: /boot\n        - name: root-mount\n          hostPath:\n            path: /\n      initContainers:\n        - image: gke-nvidia-installer:fixed\n          name: nvidia-driver-installer\n          resources:\n            requests:\n              cpu: 150m\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - name: boot\n              mountPath: /boot\n            - name: dev\n              mountPath: /dev\n            - name: root-mount\n              mountPath: /root\n          env:\n            - name: NVIDIA_DRIVER_VERSION\n              value: \"470.103.01\"\n      containers:\n        - image: \"gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830\"\n          name: pause\n"
  },
  {
    "path": "test/nvidia_gpu/device-plugin-test.yaml",
    "content": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  labels:\n    k8s-app: nvidia-gpu-device-plugin\n  name: nvidia-gpu-device-plugin-test\n  namespace: kube-system\nspec:\n  selector:\n    matchLabels:\n      k8s-app: nvidia-gpu-device-plugin\n  template:\n    metadata:\n      labels:\n        k8s-app: nvidia-gpu-device-plugin\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n              - matchExpressions:\n                  - key: cloud.google.com/gke-accelerator\n                    operator: Exists\n      containers:\n        - command:\n            - /usr/bin/nvidia-gpu-device-plugin\n            - -logtostderr\n            - --enable-container-gpu-metrics\n            - --enable-health-monitoring\n          env:\n            - name: LD_LIBRARY_PATH\n              value: /usr/local/nvidia/lib64\n            - name: XID_CONFIG\n              valueFrom:\n                configMapKeyRef:\n                   name: xid-config\n                   key: HealthCriticalXid\n                   optional: true\n          image: gcr.io/gke-release/nvidia-gpu-device-plugin@sha256:d6cb575b0d8a436066a0d3a783bbaf84697e0d5a68857edfe5fd5d1183133c7d\n          name: nvidia-gpu-device-plugin\n          ports:\n            - containerPort: 2112\n              name: metrics\n          resources:\n            limits:\n              memory: 50Mi\n            requests:\n              cpu: 50m\n              memory: 50Mi\n          securityContext:\n            privileged: true\n          volumeMounts:\n            - mountPath: /device-plugin\n              name: device-plugin\n            - mountPath: /dev\n              name: dev\n            - mountPath: /usr/local/nvidia\n              name: nvidia\n            - mountPath: /var/lib/kubelet/pod-resources\n              name: pod-resources\n            - mountPath: /proc\n              name: proc\n            - mountPath: /etc/nvidia\n              name: nvidia-config\n            - mountPath: /tmp/nvidia-mps\n              name: mps\n      priorityClassName: system-node-critical\n      securityContext:\n        seccompProfile:\n          type: RuntimeDefault\n      tolerations:\n        - effect: NoExecute\n          operator: Exists\n        - effect: NoSchedule\n          operator: Exists\n      volumes:\n        - hostPath:\n            path: /var/lib/kubelet/device-plugins\n            type: Directory\n          name: device-plugin\n        - hostPath:\n            path: /dev\n            type: Directory\n          name: dev\n        - hostPath:\n            path: /home/kubernetes/bin/nvidia\n            type: Directory\n          name: nvidia\n        - hostPath:\n            path: /var/lib/kubelet/pod-resources\n            type: Directory\n          name: pod-resources\n        - hostPath:\n            path: /proc\n            type: Directory\n          name: proc\n        - hostPath:\n            path: /etc/nvidia\n            type: DirectoryOrCreate\n          name: nvidia-config\n        - hostPath:\n            path: /tmp/nvidia-mps\n          name: mps\n  updateStrategy:\n    type: RollingUpdate\n"
  },
  {
    "path": "test/nvidia_gpu/xid-config.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: xid-config\n namespace: kube-system\ndata:\n  HealthCriticalXid: \"32,79,74\"\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/CHANGES.md",
    "content": "# Changes\n\n## [0.9.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.4...compute/metadata/v0.9.0) (2025-09-24)\n\n\n### Features\n\n* **compute/metadata:** Retry on HTTP 429 ([#12932](https://github.com/googleapis/google-cloud-go/issues/12932)) ([1e91f5c](https://github.com/googleapis/google-cloud-go/commit/1e91f5c07acacd38ecdd4ff3e83e092b745e0bc2))\n\n## [0.8.4](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.3...compute/metadata/v0.8.4) (2025-09-18)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Set subClient for UseDefaultClient case ([#12911](https://github.com/googleapis/google-cloud-go/issues/12911)) ([9e2646b](https://github.com/googleapis/google-cloud-go/commit/9e2646b1821231183fd775bb107c062865eeaccd))\n\n## [0.8.3](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.2...compute/metadata/v0.8.3) (2025-09-17)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Disable Client timeouts for subscription client ([#12910](https://github.com/googleapis/google-cloud-go/issues/12910)) ([187a58a](https://github.com/googleapis/google-cloud-go/commit/187a58a540494e1e8562b046325b8cad8cf7af4a))\n\n## [0.8.2](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.1...compute/metadata/v0.8.2) (2025-09-17)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Racy test and uninitialized subClient ([#12892](https://github.com/googleapis/google-cloud-go/issues/12892)) ([4943ca2](https://github.com/googleapis/google-cloud-go/commit/4943ca2bf83908a23806247bc4252dfb440d09cc)), refs [#12888](https://github.com/googleapis/google-cloud-go/issues/12888)\n\n## [0.8.1](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.0...compute/metadata/v0.8.1) (2025-09-16)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Use separate client for subscribe methods  ([#12885](https://github.com/googleapis/google-cloud-go/issues/12885)) ([76b80f8](https://github.com/googleapis/google-cloud-go/commit/76b80f8df9bf9339d175407e8c15936fe1ac1c9c))\n\n## [0.8.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.7.0...compute/metadata/v0.8.0) (2025-08-06)\n\n\n### Features\n\n* **compute/metadata:** Add Options.UseDefaultClient ([#12657](https://github.com/googleapis/google-cloud-go/issues/12657)) ([1a88209](https://github.com/googleapis/google-cloud-go/commit/1a8820900f20e038291c4bb2c5284a449196e81f)), refs [#11078](https://github.com/googleapis/google-cloud-go/issues/11078)\n\n## [0.7.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.6.0...compute/metadata/v0.7.0) (2025-05-13)\n\n\n### Features\n\n* **compute/metadata:** Allow canceling GCE detection ([#11786](https://github.com/googleapis/google-cloud-go/issues/11786)) ([78100fe](https://github.com/googleapis/google-cloud-go/commit/78100fe7e28cd30f1e10b47191ac3c9839663b64))\n\n## [0.6.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.5.2...compute/metadata/v0.6.0) (2024-12-13)\n\n\n### Features\n\n* **compute/metadata:** Add debug logging ([#11078](https://github.com/googleapis/google-cloud-go/issues/11078)) ([a816814](https://github.com/googleapis/google-cloud-go/commit/a81681463906e4473570a2f426eb0dc2de64e53f))\n\n## [0.5.2](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.5.1...compute/metadata/v0.5.2) (2024-09-20)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Close Response Body for failed request ([#10891](https://github.com/googleapis/google-cloud-go/issues/10891)) ([e91d45e](https://github.com/googleapis/google-cloud-go/commit/e91d45e4757a9e354114509ba9800085d9e0ff1f))\n\n## [0.5.1](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.5.0...compute/metadata/v0.5.1) (2024-09-12)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Check error chain for retryable error ([#10840](https://github.com/googleapis/google-cloud-go/issues/10840)) ([2bdedef](https://github.com/googleapis/google-cloud-go/commit/2bdedeff621b223d63cebc4355fcf83bc68412cd))\n\n## [0.5.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.4.0...compute/metadata/v0.5.0) (2024-07-10)\n\n\n### Features\n\n* **compute/metadata:** Add sys check for windows OnGCE ([#10521](https://github.com/googleapis/google-cloud-go/issues/10521)) ([3b9a830](https://github.com/googleapis/google-cloud-go/commit/3b9a83063960d2a2ac20beb47cc15818a68bd302))\n\n## [0.4.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.3.0...compute/metadata/v0.4.0) (2024-07-01)\n\n\n### Features\n\n* **compute/metadata:** Add context for all functions/methods ([#10370](https://github.com/googleapis/google-cloud-go/issues/10370)) ([66b8efe](https://github.com/googleapis/google-cloud-go/commit/66b8efe7ad877e052b2987bb4475477e38c67bb3))\n\n\n### Documentation\n\n* **compute/metadata:** Update OnGCE description ([#10408](https://github.com/googleapis/google-cloud-go/issues/10408)) ([6a46dca](https://github.com/googleapis/google-cloud-go/commit/6a46dca4eae4f88ec6f88822e01e5bf8aeca787f))\n\n## [0.3.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.2.3...compute/metadata/v0.3.0) (2024-04-15)\n\n\n### Features\n\n* **compute/metadata:** Add context aware functions  ([#9733](https://github.com/googleapis/google-cloud-go/issues/9733)) ([e4eb5b4](https://github.com/googleapis/google-cloud-go/commit/e4eb5b46ee2aec9d2fc18300bfd66015e25a0510))\n\n## [0.2.3](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.2.2...compute/metadata/v0.2.3) (2022-12-15)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Switch DNS lookup to an absolute lookup ([119b410](https://github.com/googleapis/google-cloud-go/commit/119b41060c7895e45e48aee5621ad35607c4d021)), refs [#7165](https://github.com/googleapis/google-cloud-go/issues/7165)\n\n## [0.2.2](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.2.1...compute/metadata/v0.2.2) (2022-12-01)\n\n\n### Bug Fixes\n\n* **compute/metadata:** Set IdleConnTimeout for http.Client ([#7084](https://github.com/googleapis/google-cloud-go/issues/7084)) ([766516a](https://github.com/googleapis/google-cloud-go/commit/766516aaf3816bfb3159efeea65aa3d1d205a3e2)), refs [#5430](https://github.com/googleapis/google-cloud-go/issues/5430)\n\n## [0.1.0] (2022-10-26)\n\nInitial release of metadata being it's own module.\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/README.md",
    "content": "# Compute API\n\n[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/compute.svg)](https://pkg.go.dev/cloud.google.com/go/compute/metadata)\n\nThis is a utility library for communicating with Google Cloud metadata service\non Google Cloud.\n\n## Install\n\n```bash\ngo get cloud.google.com/go/compute/metadata\n```\n\n## Go Version Support\n\nSee the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported)\nsection in the root directory's README.\n\n## Contributing\n\nContributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md)\ndocument for details.\n\nPlease note that this project is released with a Contributor Code of Conduct.\nBy participating in this project you agree to abide by its terms. See\n[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct)\nfor more information.\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/log.go",
    "content": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metadata\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log/slog\"\n\t\"net/http\"\n\t\"strings\"\n)\n\n// Code below this point is copied from github.com/googleapis/gax-go/v2/internallog\n// to avoid the dependency. The compute/metadata module is used by too many\n// non-client library modules that can't justify the dependency.\n\n// The handler returned if logging is not enabled.\ntype noOpHandler struct{}\n\nfunc (h noOpHandler) Enabled(_ context.Context, _ slog.Level) bool {\n\treturn false\n}\n\nfunc (h noOpHandler) Handle(_ context.Context, _ slog.Record) error {\n\treturn nil\n}\n\nfunc (h noOpHandler) WithAttrs(_ []slog.Attr) slog.Handler {\n\treturn h\n}\n\nfunc (h noOpHandler) WithGroup(_ string) slog.Handler {\n\treturn h\n}\n\n// httpRequest returns a lazily evaluated [slog.LogValuer] for a\n// [http.Request] and the associated body.\nfunc httpRequest(req *http.Request, body []byte) slog.LogValuer {\n\treturn &request{\n\t\treq:     req,\n\t\tpayload: body,\n\t}\n}\n\ntype request struct {\n\treq     *http.Request\n\tpayload []byte\n}\n\nfunc (r *request) LogValue() slog.Value {\n\tif r == nil || r.req == nil {\n\t\treturn slog.Value{}\n\t}\n\tvar groupValueAttrs []slog.Attr\n\tgroupValueAttrs = append(groupValueAttrs, slog.String(\"method\", r.req.Method))\n\tgroupValueAttrs = append(groupValueAttrs, slog.String(\"url\", r.req.URL.String()))\n\n\tvar headerAttr []slog.Attr\n\tfor k, val := range r.req.Header {\n\t\theaderAttr = append(headerAttr, slog.String(k, strings.Join(val, \",\")))\n\t}\n\tif len(headerAttr) > 0 {\n\t\tgroupValueAttrs = append(groupValueAttrs, slog.Any(\"headers\", headerAttr))\n\t}\n\n\tif len(r.payload) > 0 {\n\t\tif attr, ok := processPayload(r.payload); ok {\n\t\t\tgroupValueAttrs = append(groupValueAttrs, attr)\n\t\t}\n\t}\n\treturn slog.GroupValue(groupValueAttrs...)\n}\n\n// httpResponse returns a lazily evaluated [slog.LogValuer] for a\n// [http.Response] and the associated body.\nfunc httpResponse(resp *http.Response, body []byte) slog.LogValuer {\n\treturn &response{\n\t\tresp:    resp,\n\t\tpayload: body,\n\t}\n}\n\ntype response struct {\n\tresp    *http.Response\n\tpayload []byte\n}\n\nfunc (r *response) LogValue() slog.Value {\n\tif r == nil {\n\t\treturn slog.Value{}\n\t}\n\tvar groupValueAttrs []slog.Attr\n\tgroupValueAttrs = append(groupValueAttrs, slog.String(\"status\", fmt.Sprint(r.resp.StatusCode)))\n\n\tvar headerAttr []slog.Attr\n\tfor k, val := range r.resp.Header {\n\t\theaderAttr = append(headerAttr, slog.String(k, strings.Join(val, \",\")))\n\t}\n\tif len(headerAttr) > 0 {\n\t\tgroupValueAttrs = append(groupValueAttrs, slog.Any(\"headers\", headerAttr))\n\t}\n\n\tif len(r.payload) > 0 {\n\t\tif attr, ok := processPayload(r.payload); ok {\n\t\t\tgroupValueAttrs = append(groupValueAttrs, attr)\n\t\t}\n\t}\n\treturn slog.GroupValue(groupValueAttrs...)\n}\n\nfunc processPayload(payload []byte) (slog.Attr, bool) {\n\tpeekChar := payload[0]\n\tif peekChar == '{' {\n\t\t// JSON object\n\t\tvar m map[string]any\n\t\tif err := json.Unmarshal(payload, &m); err == nil {\n\t\t\treturn slog.Any(\"payload\", m), true\n\t\t}\n\t} else if peekChar == '[' {\n\t\t// JSON array\n\t\tvar m []any\n\t\tif err := json.Unmarshal(payload, &m); err == nil {\n\t\t\treturn slog.Any(\"payload\", m), true\n\t\t}\n\t} else {\n\t\t// Everything else\n\t\tbuf := &bytes.Buffer{}\n\t\tif err := json.Compact(buf, payload); err != nil {\n\t\t\t// Write raw payload incase of error\n\t\t\tbuf.Write(payload)\n\t\t}\n\t\treturn slog.String(\"payload\", buf.String()), true\n\t}\n\treturn slog.Attr{}, false\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/metadata.go",
    "content": "// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package metadata provides access to Google Compute Engine (GCE)\n// metadata and API service accounts.\n//\n// This package is a wrapper around the GCE metadata service,\n// as documented at https://cloud.google.com/compute/docs/metadata/overview.\npackage metadata // import \"cloud.google.com/go/compute/metadata\"\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log/slog\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\t// metadataIP is the documented metadata server IP address.\n\tmetadataIP = \"169.254.169.254\"\n\n\t// metadataHostEnv is the environment variable specifying the\n\t// GCE metadata hostname.  If empty, the default value of\n\t// metadataIP (\"169.254.169.254\") is used instead.\n\t// This is variable name is not defined by any spec, as far as\n\t// I know; it was made up for the Go package.\n\tmetadataHostEnv = \"GCE_METADATA_HOST\"\n\n\tuserAgent = \"gcloud-golang/0.1\"\n)\n\ntype cachedValue struct {\n\tk    string\n\ttrim bool\n\tmu   sync.Mutex\n\tv    string\n}\n\nvar (\n\tprojID  = &cachedValue{k: \"project/project-id\", trim: true}\n\tprojNum = &cachedValue{k: \"project/numeric-project-id\", trim: true}\n\tinstID  = &cachedValue{k: \"instance/id\", trim: true}\n)\n\nvar defaultClient = &Client{\n\thc:        newDefaultHTTPClient(true),\n\tsubClient: newDefaultHTTPClient(false),\n\tlogger:    slog.New(noOpHandler{}),\n}\n\nfunc newDefaultHTTPClient(enableTimeouts bool) *http.Client {\n\ttransport := &http.Transport{\n\t\tDial: (&net.Dialer{\n\t\t\tTimeout:   2 * time.Second,\n\t\t\tKeepAlive: 30 * time.Second,\n\t\t}).Dial,\n\t}\n\tc := &http.Client{\n\t\tTransport: transport,\n\t}\n\tif enableTimeouts {\n\t\ttransport.IdleConnTimeout = 60 * time.Second\n\t\tc.Timeout = 5 * time.Second\n\t}\n\treturn c\n}\n\n// NotDefinedError is returned when requested metadata is not defined.\n//\n// The underlying string is the suffix after \"/computeMetadata/v1/\".\n//\n// This error is not returned if the value is defined to be the empty\n// string.\ntype NotDefinedError string\n\nfunc (suffix NotDefinedError) Error() string {\n\treturn fmt.Sprintf(\"metadata: GCE metadata %q not defined\", string(suffix))\n}\n\nfunc (c *cachedValue) get(ctx context.Context, cl *Client) (v string, err error) {\n\tdefer c.mu.Unlock()\n\tc.mu.Lock()\n\tif c.v != \"\" {\n\t\treturn c.v, nil\n\t}\n\tif c.trim {\n\t\tv, err = cl.getTrimmed(ctx, c.k)\n\t} else {\n\t\tv, err = cl.GetWithContext(ctx, c.k)\n\t}\n\tif err == nil {\n\t\tc.v = v\n\t}\n\treturn\n}\n\nvar (\n\tonGCEOnce sync.Once\n\tonGCE     bool\n)\n\n// OnGCE reports whether this process is running on Google Compute Platforms.\n// NOTE: True returned from `OnGCE` does not guarantee that the metadata server\n// is accessible from this process and have all the metadata defined.\nfunc OnGCE() bool {\n\treturn OnGCEWithContext(context.Background())\n}\n\n// OnGCEWithContext reports whether this process is running on Google Compute Platforms.\n// This function's return value is memoized for better performance.\n// NOTE: True returned from `OnGCEWithContext` does not guarantee that the metadata server\n// is accessible from this process and have all the metadata defined.\nfunc OnGCEWithContext(ctx context.Context) bool {\n\tonGCEOnce.Do(func() {\n\t\tonGCE = defaultClient.OnGCEWithContext(ctx)\n\t})\n\treturn onGCE\n}\n\n// Subscribe calls Client.SubscribeWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [SubscribeWithContext].\nfunc Subscribe(suffix string, fn func(v string, ok bool) error) error {\n\treturn defaultClient.SubscribeWithContext(context.Background(), suffix, func(ctx context.Context, v string, ok bool) error { return fn(v, ok) })\n}\n\n// SubscribeWithContext calls Client.SubscribeWithContext on the default client.\nfunc SubscribeWithContext(ctx context.Context, suffix string, fn func(ctx context.Context, v string, ok bool) error) error {\n\treturn defaultClient.SubscribeWithContext(ctx, suffix, fn)\n}\n\n// Get calls Client.GetWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [GetWithContext].\nfunc Get(suffix string) (string, error) {\n\treturn defaultClient.GetWithContext(context.Background(), suffix)\n}\n\n// GetWithContext calls Client.GetWithContext on the default client.\nfunc GetWithContext(ctx context.Context, suffix string) (string, error) {\n\treturn defaultClient.GetWithContext(ctx, suffix)\n}\n\n// ProjectID returns the current instance's project ID string.\n//\n// Deprecated: Please use the context aware variant [ProjectIDWithContext].\nfunc ProjectID() (string, error) {\n\treturn defaultClient.ProjectIDWithContext(context.Background())\n}\n\n// ProjectIDWithContext returns the current instance's project ID string.\nfunc ProjectIDWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.ProjectIDWithContext(ctx)\n}\n\n// NumericProjectID returns the current instance's numeric project ID.\n//\n// Deprecated: Please use the context aware variant [NumericProjectIDWithContext].\nfunc NumericProjectID() (string, error) {\n\treturn defaultClient.NumericProjectIDWithContext(context.Background())\n}\n\n// NumericProjectIDWithContext returns the current instance's numeric project ID.\nfunc NumericProjectIDWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.NumericProjectIDWithContext(ctx)\n}\n\n// InternalIP returns the instance's primary internal IP address.\n//\n// Deprecated: Please use the context aware variant [InternalIPWithContext].\nfunc InternalIP() (string, error) {\n\treturn defaultClient.InternalIPWithContext(context.Background())\n}\n\n// InternalIPWithContext returns the instance's primary internal IP address.\nfunc InternalIPWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.InternalIPWithContext(ctx)\n}\n\n// ExternalIP returns the instance's primary external (public) IP address.\n//\n// Deprecated: Please use the context aware variant [ExternalIPWithContext].\nfunc ExternalIP() (string, error) {\n\treturn defaultClient.ExternalIPWithContext(context.Background())\n}\n\n// ExternalIPWithContext returns the instance's primary external (public) IP address.\nfunc ExternalIPWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.ExternalIPWithContext(ctx)\n}\n\n// Email calls Client.EmailWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [EmailWithContext].\nfunc Email(serviceAccount string) (string, error) {\n\treturn defaultClient.EmailWithContext(context.Background(), serviceAccount)\n}\n\n// EmailWithContext calls Client.EmailWithContext on the default client.\nfunc EmailWithContext(ctx context.Context, serviceAccount string) (string, error) {\n\treturn defaultClient.EmailWithContext(ctx, serviceAccount)\n}\n\n// Hostname returns the instance's hostname. This will be of the form\n// \"<instanceID>.c.<projID>.internal\".\n//\n// Deprecated: Please use the context aware variant [HostnameWithContext].\nfunc Hostname() (string, error) {\n\treturn defaultClient.HostnameWithContext(context.Background())\n}\n\n// HostnameWithContext returns the instance's hostname. This will be of the form\n// \"<instanceID>.c.<projID>.internal\".\nfunc HostnameWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.HostnameWithContext(ctx)\n}\n\n// InstanceTags returns the list of user-defined instance tags,\n// assigned when initially creating a GCE instance.\n//\n// Deprecated: Please use the context aware variant [InstanceTagsWithContext].\nfunc InstanceTags() ([]string, error) {\n\treturn defaultClient.InstanceTagsWithContext(context.Background())\n}\n\n// InstanceTagsWithContext returns the list of user-defined instance tags,\n// assigned when initially creating a GCE instance.\nfunc InstanceTagsWithContext(ctx context.Context) ([]string, error) {\n\treturn defaultClient.InstanceTagsWithContext(ctx)\n}\n\n// InstanceID returns the current VM's numeric instance ID.\n//\n// Deprecated: Please use the context aware variant [InstanceIDWithContext].\nfunc InstanceID() (string, error) {\n\treturn defaultClient.InstanceIDWithContext(context.Background())\n}\n\n// InstanceIDWithContext returns the current VM's numeric instance ID.\nfunc InstanceIDWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.InstanceIDWithContext(ctx)\n}\n\n// InstanceName returns the current VM's instance ID string.\n//\n// Deprecated: Please use the context aware variant [InstanceNameWithContext].\nfunc InstanceName() (string, error) {\n\treturn defaultClient.InstanceNameWithContext(context.Background())\n}\n\n// InstanceNameWithContext returns the current VM's instance ID string.\nfunc InstanceNameWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.InstanceNameWithContext(ctx)\n}\n\n// Zone returns the current VM's zone, such as \"us-central1-b\".\n//\n// Deprecated: Please use the context aware variant [ZoneWithContext].\nfunc Zone() (string, error) {\n\treturn defaultClient.ZoneWithContext(context.Background())\n}\n\n// ZoneWithContext returns the current VM's zone, such as \"us-central1-b\".\nfunc ZoneWithContext(ctx context.Context) (string, error) {\n\treturn defaultClient.ZoneWithContext(ctx)\n}\n\n// InstanceAttributes calls Client.InstanceAttributesWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [InstanceAttributesWithContext.\nfunc InstanceAttributes() ([]string, error) {\n\treturn defaultClient.InstanceAttributesWithContext(context.Background())\n}\n\n// InstanceAttributesWithContext calls Client.ProjectAttributesWithContext on the default client.\nfunc InstanceAttributesWithContext(ctx context.Context) ([]string, error) {\n\treturn defaultClient.InstanceAttributesWithContext(ctx)\n}\n\n// ProjectAttributes calls Client.ProjectAttributesWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [ProjectAttributesWithContext].\nfunc ProjectAttributes() ([]string, error) {\n\treturn defaultClient.ProjectAttributesWithContext(context.Background())\n}\n\n// ProjectAttributesWithContext calls Client.ProjectAttributesWithContext on the default client.\nfunc ProjectAttributesWithContext(ctx context.Context) ([]string, error) {\n\treturn defaultClient.ProjectAttributesWithContext(ctx)\n}\n\n// InstanceAttributeValue calls Client.InstanceAttributeValueWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [InstanceAttributeValueWithContext].\nfunc InstanceAttributeValue(attr string) (string, error) {\n\treturn defaultClient.InstanceAttributeValueWithContext(context.Background(), attr)\n}\n\n// InstanceAttributeValueWithContext calls Client.InstanceAttributeValueWithContext on the default client.\nfunc InstanceAttributeValueWithContext(ctx context.Context, attr string) (string, error) {\n\treturn defaultClient.InstanceAttributeValueWithContext(ctx, attr)\n}\n\n// ProjectAttributeValue calls Client.ProjectAttributeValueWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [ProjectAttributeValueWithContext].\nfunc ProjectAttributeValue(attr string) (string, error) {\n\treturn defaultClient.ProjectAttributeValueWithContext(context.Background(), attr)\n}\n\n// ProjectAttributeValueWithContext calls Client.ProjectAttributeValueWithContext on the default client.\nfunc ProjectAttributeValueWithContext(ctx context.Context, attr string) (string, error) {\n\treturn defaultClient.ProjectAttributeValueWithContext(ctx, attr)\n}\n\n// Scopes calls Client.ScopesWithContext on the default client.\n//\n// Deprecated: Please use the context aware variant [ScopesWithContext].\nfunc Scopes(serviceAccount string) ([]string, error) {\n\treturn defaultClient.ScopesWithContext(context.Background(), serviceAccount)\n}\n\n// ScopesWithContext calls Client.ScopesWithContext on the default client.\nfunc ScopesWithContext(ctx context.Context, serviceAccount string) ([]string, error) {\n\treturn defaultClient.ScopesWithContext(ctx, serviceAccount)\n}\n\nfunc strsContains(ss []string, s string) bool {\n\tfor _, v := range ss {\n\t\tif v == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// A Client provides metadata.\ntype Client struct {\n\thc *http.Client\n\t// subClient by default is a HTTP Client that is only used for subscribe\n\t// methods that should not specify a timeout. If the user specifies a client\n\t// this with be the same as 'hc'.\n\tsubClient *http.Client\n\tlogger    *slog.Logger\n}\n\n// Options for configuring a [Client].\ntype Options struct {\n\t// Client is the HTTP client used to make requests. Optional.\n\t// If UseDefaultClient is true, this field is ignored.\n\t// If this field is nil, a new default http.Client will be created.\n\tClient *http.Client\n\t// Logger is used to log information about HTTP request and responses.\n\t// If not provided, nothing will be logged. Optional.\n\tLogger *slog.Logger\n\t// UseDefaultClient specifies that the client should use the same default\n\t// internal http.Client that is used in functions such as GetWithContext.\n\t// This is useful for sharing a single TCP connection pool across requests.\n\t// The difference vs GetWithContext is the ability to use this struct\n\t// to provide a custom logger. If this field is true, the Client\n\t// field is ignored.\n\tUseDefaultClient bool\n}\n\n// NewClient returns a Client that can be used to fetch metadata.\n// Returns the client that uses the specified http.Client for HTTP requests.\n// If nil is specified, returns the default internal Client that is\n// also used in functions such as GetWithContext. This is useful for sharing\n// a single TCP connection pool across requests.\nfunc NewClient(c *http.Client) *Client {\n\tif c == nil {\n\t\t// Preserve original behavior for nil argument.\n\t\treturn defaultClient\n\t}\n\t// Return a new client with a no-op logger for backward compatibility.\n\treturn &Client{hc: c, subClient: c, logger: slog.New(noOpHandler{})}\n}\n\n// NewWithOptions returns a Client that is configured with the provided Options.\nfunc NewWithOptions(opts *Options) *Client {\n\t// Preserve original behavior for nil opts.\n\tif opts == nil {\n\t\treturn defaultClient\n\t}\n\n\t// Handle explicit request for the internal default http.Client.\n\tif opts.UseDefaultClient {\n\t\tlogger := opts.Logger\n\t\tif logger == nil {\n\t\t\tlogger = slog.New(noOpHandler{})\n\t\t}\n\t\treturn &Client{hc: defaultClient.hc, subClient: defaultClient.subClient, logger: logger}\n\t}\n\n\t// Handle isolated client creation.\n\tclient := opts.Client\n\tsubClient := opts.Client\n\tif client == nil {\n\t\tclient = newDefaultHTTPClient(true)\n\t\tsubClient = newDefaultHTTPClient(false)\n\t}\n\tlogger := opts.Logger\n\tif logger == nil {\n\t\tlogger = slog.New(noOpHandler{})\n\t}\n\treturn &Client{hc: client, subClient: subClient, logger: logger}\n}\n\n// NOTE: metadataRequestStrategy is assigned to a variable for test stubbing purposes.\nvar metadataRequestStrategy = func(ctx context.Context, httpClient *http.Client, resc chan bool) {\n\treq, _ := http.NewRequest(\"GET\", \"http://\"+metadataIP, nil)\n\treq.Header.Set(\"User-Agent\", userAgent)\n\tres, err := httpClient.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\tresc <- false\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\tresc <- res.Header.Get(\"Metadata-Flavor\") == \"Google\"\n}\n\n// NOTE: dnsRequestStrategy is assigned to a variable for test stubbing purposes.\nvar dnsRequestStrategy = func(ctx context.Context, resc chan bool) {\n\tresolver := &net.Resolver{}\n\taddrs, err := resolver.LookupHost(ctx, \"metadata.google.internal.\")\n\tif err != nil || len(addrs) == 0 {\n\t\tresc <- false\n\t\treturn\n\t}\n\tresc <- strsContains(addrs, metadataIP)\n}\n\n// OnGCEWithContext reports whether this process is running on Google Compute Platforms.\n// NOTE: True returned from `OnGCEWithContext` does not guarantee that the metadata server\n// is accessible from this process and have all the metadata defined.\nfunc (c *Client) OnGCEWithContext(ctx context.Context) bool {\n\t// The user explicitly said they're on GCE, so trust them.\n\tif os.Getenv(metadataHostEnv) != \"\" {\n\t\treturn true\n\t}\n\n\tctx, cancel := context.WithCancel(ctx)\n\tdefer cancel()\n\n\tresc := make(chan bool, 2)\n\n\t// Try two strategies in parallel.\n\t// See https://github.com/googleapis/google-cloud-go/issues/194\n\tgo metadataRequestStrategy(ctx, c.hc, resc)\n\tgo dnsRequestStrategy(ctx, resc)\n\n\ttryHarder := systemInfoSuggestsGCE()\n\tif tryHarder {\n\t\tres := <-resc\n\t\tif res {\n\t\t\t// The first strategy succeeded, so let's use it.\n\t\t\treturn true\n\t\t}\n\n\t\t// Wait for either the DNS or metadata server probe to\n\t\t// contradict the other one and say we are running on\n\t\t// GCE. Give it a lot of time to do so, since the system\n\t\t// info already suggests we're running on a GCE BIOS.\n\t\t// Ensure cancellations from the calling context are respected.\n\t\twaitContext, cancelWait := context.WithTimeout(ctx, 5*time.Second)\n\t\tdefer cancelWait()\n\t\tselect {\n\t\tcase res = <-resc:\n\t\t\treturn res\n\t\tcase <-waitContext.Done():\n\t\t\t// Too slow. Who knows what this system is.\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// There's no hint from the system info that we're running on\n\t// GCE, so use the first probe's result as truth, whether it's\n\t// true or false. The goal here is to optimize for speed for\n\t// users who are NOT running on GCE. We can't assume that\n\t// either a DNS lookup or an HTTP request to a blackholed IP\n\t// address is fast. Worst case this should return when the\n\t// metaClient's Transport.ResponseHeaderTimeout or\n\t// Transport.Dial.Timeout fires (in two seconds).\n\treturn <-resc\n}\n\n// getETag returns a value from the metadata service as well as the associated ETag.\n// This func is otherwise equivalent to Get.\nfunc (c *Client) getETag(ctx context.Context, suffix string) (value, etag string, err error) {\n\treturn c.getETagWithSubClient(ctx, suffix, false)\n}\n\nfunc (c *Client) getETagWithSubClient(ctx context.Context, suffix string, enableSubClient bool) (value, etag string, err error) {\n\t// Using a fixed IP makes it very difficult to spoof the metadata service in\n\t// a container, which is an important use-case for local testing of cloud\n\t// deployments. To enable spoofing of the metadata service, the environment\n\t// variable GCE_METADATA_HOST is first inspected to decide where metadata\n\t// requests shall go.\n\thost := os.Getenv(metadataHostEnv)\n\tif host == \"\" {\n\t\t// Using 169.254.169.254 instead of \"metadata\" here because Go\n\t\t// binaries built with the \"netgo\" tag and without cgo won't\n\t\t// know the search suffix for \"metadata\" is\n\t\t// \".google.internal\", and this IP address is documented as\n\t\t// being stable anyway.\n\t\thost = metadataIP\n\t}\n\tsuffix = strings.TrimLeft(suffix, \"/\")\n\tu := \"http://\" + host + \"/computeMetadata/v1/\" + suffix\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", u, nil)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\treq.Header.Set(\"Metadata-Flavor\", \"Google\")\n\treq.Header.Set(\"User-Agent\", userAgent)\n\tvar res *http.Response\n\tvar reqErr error\n\tvar body []byte\n\tretryer := newRetryer()\n\thc := c.hc\n\tif enableSubClient {\n\t\thc = c.subClient\n\t}\n\tfor {\n\t\tc.logger.DebugContext(ctx, \"metadata request\", \"request\", httpRequest(req, nil))\n\t\tres, reqErr = hc.Do(req)\n\t\tvar code int\n\t\tif res != nil {\n\t\t\tcode = res.StatusCode\n\t\t\tbody, err = io.ReadAll(res.Body)\n\t\t\tif err != nil {\n\t\t\t\tres.Body.Close()\n\t\t\t\treturn \"\", \"\", err\n\t\t\t}\n\t\t\tc.logger.DebugContext(ctx, \"metadata response\", \"response\", httpResponse(res, body))\n\t\t\tres.Body.Close()\n\t\t}\n\t\tif delay, shouldRetry := retryer.Retry(code, reqErr); shouldRetry {\n\t\t\tif res != nil && res.Body != nil {\n\t\t\t\tres.Body.Close()\n\t\t\t}\n\t\t\tif err := sleep(ctx, delay); err != nil {\n\t\t\t\treturn \"\", \"\", err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\tif reqErr != nil {\n\t\treturn \"\", \"\", reqErr\n\t}\n\tif res.StatusCode == http.StatusNotFound {\n\t\treturn \"\", \"\", NotDefinedError(suffix)\n\t}\n\tif res.StatusCode != 200 {\n\t\treturn \"\", \"\", &Error{Code: res.StatusCode, Message: string(body)}\n\t}\n\treturn string(body), res.Header.Get(\"Etag\"), nil\n}\n\n// Get returns a value from the metadata service.\n// The suffix is appended to \"http://${GCE_METADATA_HOST}/computeMetadata/v1/\".\n//\n// If the GCE_METADATA_HOST environment variable is not defined, a default of\n// 169.254.169.254 will be used instead.\n//\n// If the requested metadata is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// Deprecated: Please use the context aware variant [Client.GetWithContext].\nfunc (c *Client) Get(suffix string) (string, error) {\n\treturn c.GetWithContext(context.Background(), suffix)\n}\n\n// GetWithContext returns a value from the metadata service.\n// The suffix is appended to \"http://${GCE_METADATA_HOST}/computeMetadata/v1/\".\n//\n// If the GCE_METADATA_HOST environment variable is not defined, a default of\n// 169.254.169.254 will be used instead.\n//\n// If the requested metadata is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// NOTE: Without an extra deadline in the context this call can take in the\n// worst case, with internal backoff retries, up to 15 seconds (e.g. when server\n// is responding slowly). Pass context with additional timeouts when needed.\nfunc (c *Client) GetWithContext(ctx context.Context, suffix string) (string, error) {\n\tval, _, err := c.getETag(ctx, suffix)\n\treturn val, err\n}\n\nfunc (c *Client) getTrimmed(ctx context.Context, suffix string) (s string, err error) {\n\ts, err = c.GetWithContext(ctx, suffix)\n\ts = strings.TrimSpace(s)\n\treturn\n}\n\nfunc (c *Client) lines(ctx context.Context, suffix string) ([]string, error) {\n\tj, err := c.GetWithContext(ctx, suffix)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ts := strings.Split(strings.TrimSpace(j), \"\\n\")\n\tfor i := range s {\n\t\ts[i] = strings.TrimSpace(s[i])\n\t}\n\treturn s, nil\n}\n\n// ProjectID returns the current instance's project ID string.\n//\n// Deprecated: Please use the context aware variant [Client.ProjectIDWithContext].\nfunc (c *Client) ProjectID() (string, error) { return c.ProjectIDWithContext(context.Background()) }\n\n// ProjectIDWithContext returns the current instance's project ID string.\nfunc (c *Client) ProjectIDWithContext(ctx context.Context) (string, error) { return projID.get(ctx, c) }\n\n// NumericProjectID returns the current instance's numeric project ID.\n//\n// Deprecated: Please use the context aware variant [Client.NumericProjectIDWithContext].\nfunc (c *Client) NumericProjectID() (string, error) {\n\treturn c.NumericProjectIDWithContext(context.Background())\n}\n\n// NumericProjectIDWithContext returns the current instance's numeric project ID.\nfunc (c *Client) NumericProjectIDWithContext(ctx context.Context) (string, error) {\n\treturn projNum.get(ctx, c)\n}\n\n// InstanceID returns the current VM's numeric instance ID.\n//\n// Deprecated: Please use the context aware variant [Client.InstanceIDWithContext].\nfunc (c *Client) InstanceID() (string, error) {\n\treturn c.InstanceIDWithContext(context.Background())\n}\n\n// InstanceIDWithContext returns the current VM's numeric instance ID.\nfunc (c *Client) InstanceIDWithContext(ctx context.Context) (string, error) {\n\treturn instID.get(ctx, c)\n}\n\n// InternalIP returns the instance's primary internal IP address.\n//\n// Deprecated: Please use the context aware variant [Client.InternalIPWithContext].\nfunc (c *Client) InternalIP() (string, error) {\n\treturn c.InternalIPWithContext(context.Background())\n}\n\n// InternalIPWithContext returns the instance's primary internal IP address.\nfunc (c *Client) InternalIPWithContext(ctx context.Context) (string, error) {\n\treturn c.getTrimmed(ctx, \"instance/network-interfaces/0/ip\")\n}\n\n// Email returns the email address associated with the service account.\n//\n// Deprecated: Please use the context aware variant [Client.EmailWithContext].\nfunc (c *Client) Email(serviceAccount string) (string, error) {\n\treturn c.EmailWithContext(context.Background(), serviceAccount)\n}\n\n// EmailWithContext returns the email address associated with the service account.\n// The serviceAccount parameter default value (empty string or \"default\" value)\n// will use the instance's main account.\nfunc (c *Client) EmailWithContext(ctx context.Context, serviceAccount string) (string, error) {\n\tif serviceAccount == \"\" {\n\t\tserviceAccount = \"default\"\n\t}\n\treturn c.getTrimmed(ctx, \"instance/service-accounts/\"+serviceAccount+\"/email\")\n}\n\n// ExternalIP returns the instance's primary external (public) IP address.\n//\n// Deprecated: Please use the context aware variant [Client.ExternalIPWithContext].\nfunc (c *Client) ExternalIP() (string, error) {\n\treturn c.ExternalIPWithContext(context.Background())\n}\n\n// ExternalIPWithContext returns the instance's primary external (public) IP address.\nfunc (c *Client) ExternalIPWithContext(ctx context.Context) (string, error) {\n\treturn c.getTrimmed(ctx, \"instance/network-interfaces/0/access-configs/0/external-ip\")\n}\n\n// Hostname returns the instance's hostname. This will be of the form\n// \"<instanceID>.c.<projID>.internal\".\n//\n// Deprecated: Please use the context aware variant [Client.HostnameWithContext].\nfunc (c *Client) Hostname() (string, error) {\n\treturn c.HostnameWithContext(context.Background())\n}\n\n// HostnameWithContext returns the instance's hostname. This will be of the form\n// \"<instanceID>.c.<projID>.internal\".\nfunc (c *Client) HostnameWithContext(ctx context.Context) (string, error) {\n\treturn c.getTrimmed(ctx, \"instance/hostname\")\n}\n\n// InstanceTags returns the list of user-defined instance tags.\n//\n// Deprecated: Please use the context aware variant [Client.InstanceTagsWithContext].\nfunc (c *Client) InstanceTags() ([]string, error) {\n\treturn c.InstanceTagsWithContext(context.Background())\n}\n\n// InstanceTagsWithContext returns the list of user-defined instance tags,\n// assigned when initially creating a GCE instance.\nfunc (c *Client) InstanceTagsWithContext(ctx context.Context) ([]string, error) {\n\tvar s []string\n\tj, err := c.GetWithContext(ctx, \"instance/tags\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := json.NewDecoder(strings.NewReader(j)).Decode(&s); err != nil {\n\t\treturn nil, err\n\t}\n\treturn s, nil\n}\n\n// InstanceName returns the current VM's instance ID string.\n//\n// Deprecated: Please use the context aware variant [Client.InstanceNameWithContext].\nfunc (c *Client) InstanceName() (string, error) {\n\treturn c.InstanceNameWithContext(context.Background())\n}\n\n// InstanceNameWithContext returns the current VM's instance ID string.\nfunc (c *Client) InstanceNameWithContext(ctx context.Context) (string, error) {\n\treturn c.getTrimmed(ctx, \"instance/name\")\n}\n\n// Zone returns the current VM's zone, such as \"us-central1-b\".\n//\n// Deprecated: Please use the context aware variant [Client.ZoneWithContext].\nfunc (c *Client) Zone() (string, error) {\n\treturn c.ZoneWithContext(context.Background())\n}\n\n// ZoneWithContext returns the current VM's zone, such as \"us-central1-b\".\nfunc (c *Client) ZoneWithContext(ctx context.Context) (string, error) {\n\tzone, err := c.getTrimmed(ctx, \"instance/zone\")\n\t// zone is of the form \"projects/<projNum>/zones/<zoneName>\".\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn zone[strings.LastIndex(zone, \"/\")+1:], nil\n}\n\n// InstanceAttributes returns the list of user-defined attributes,\n// assigned when initially creating a GCE VM instance. The value of an\n// attribute can be obtained with InstanceAttributeValue.\n//\n// Deprecated: Please use the context aware variant [Client.InstanceAttributesWithContext].\nfunc (c *Client) InstanceAttributes() ([]string, error) {\n\treturn c.InstanceAttributesWithContext(context.Background())\n}\n\n// InstanceAttributesWithContext returns the list of user-defined attributes,\n// assigned when initially creating a GCE VM instance. The value of an\n// attribute can be obtained with InstanceAttributeValue.\nfunc (c *Client) InstanceAttributesWithContext(ctx context.Context) ([]string, error) {\n\treturn c.lines(ctx, \"instance/attributes/\")\n}\n\n// ProjectAttributes returns the list of user-defined attributes\n// applying to the project as a whole, not just this VM.  The value of\n// an attribute can be obtained with ProjectAttributeValue.\n//\n// Deprecated: Please use the context aware variant [Client.ProjectAttributesWithContext].\nfunc (c *Client) ProjectAttributes() ([]string, error) {\n\treturn c.ProjectAttributesWithContext(context.Background())\n}\n\n// ProjectAttributesWithContext returns the list of user-defined attributes\n// applying to the project as a whole, not just this VM.  The value of\n// an attribute can be obtained with ProjectAttributeValue.\nfunc (c *Client) ProjectAttributesWithContext(ctx context.Context) ([]string, error) {\n\treturn c.lines(ctx, \"project/attributes/\")\n}\n\n// InstanceAttributeValue returns the value of the provided VM\n// instance attribute.\n//\n// If the requested attribute is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// InstanceAttributeValue may return (\"\", nil) if the attribute was\n// defined to be the empty string.\n//\n// Deprecated: Please use the context aware variant [Client.InstanceAttributeValueWithContext].\nfunc (c *Client) InstanceAttributeValue(attr string) (string, error) {\n\treturn c.InstanceAttributeValueWithContext(context.Background(), attr)\n}\n\n// InstanceAttributeValueWithContext returns the value of the provided VM\n// instance attribute.\n//\n// If the requested attribute is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// InstanceAttributeValue may return (\"\", nil) if the attribute was\n// defined to be the empty string.\nfunc (c *Client) InstanceAttributeValueWithContext(ctx context.Context, attr string) (string, error) {\n\treturn c.GetWithContext(ctx, \"instance/attributes/\"+attr)\n}\n\n// ProjectAttributeValue returns the value of the provided\n// project attribute.\n//\n// If the requested attribute is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// ProjectAttributeValue may return (\"\", nil) if the attribute was\n// defined to be the empty string.\n//\n// Deprecated: Please use the context aware variant [Client.ProjectAttributeValueWithContext].\nfunc (c *Client) ProjectAttributeValue(attr string) (string, error) {\n\treturn c.ProjectAttributeValueWithContext(context.Background(), attr)\n}\n\n// ProjectAttributeValueWithContext returns the value of the provided\n// project attribute.\n//\n// If the requested attribute is not defined, the returned error will\n// be of type NotDefinedError.\n//\n// ProjectAttributeValue may return (\"\", nil) if the attribute was\n// defined to be the empty string.\nfunc (c *Client) ProjectAttributeValueWithContext(ctx context.Context, attr string) (string, error) {\n\treturn c.GetWithContext(ctx, \"project/attributes/\"+attr)\n}\n\n// Scopes returns the service account scopes for the given account.\n// The account may be empty or the string \"default\" to use the instance's\n// main account.\n//\n// Deprecated: Please use the context aware variant [Client.ScopesWithContext].\nfunc (c *Client) Scopes(serviceAccount string) ([]string, error) {\n\treturn c.ScopesWithContext(context.Background(), serviceAccount)\n}\n\n// ScopesWithContext returns the service account scopes for the given account.\n// The account may be empty or the string \"default\" to use the instance's\n// main account.\nfunc (c *Client) ScopesWithContext(ctx context.Context, serviceAccount string) ([]string, error) {\n\tif serviceAccount == \"\" {\n\t\tserviceAccount = \"default\"\n\t}\n\treturn c.lines(ctx, \"instance/service-accounts/\"+serviceAccount+\"/scopes\")\n}\n\n// Subscribe subscribes to a value from the metadata service.\n// The suffix is appended to \"http://${GCE_METADATA_HOST}/computeMetadata/v1/\".\n// The suffix may contain query parameters.\n//\n// Deprecated: Please use the context aware variant [Client.SubscribeWithContext].\nfunc (c *Client) Subscribe(suffix string, fn func(v string, ok bool) error) error {\n\treturn c.SubscribeWithContext(context.Background(), suffix, func(ctx context.Context, v string, ok bool) error { return fn(v, ok) })\n}\n\n// SubscribeWithContext subscribes to a value from the metadata service.\n// The suffix is appended to \"http://${GCE_METADATA_HOST}/computeMetadata/v1/\".\n// The suffix may contain query parameters.\n//\n// SubscribeWithContext calls fn with the latest metadata value indicated by the\n// provided suffix. If the metadata value is deleted, fn is called with the\n// empty string and ok false. Subscribe blocks until fn returns a non-nil error\n// or the value is deleted. Subscribe returns the error value returned from the\n// last call to fn, which may be nil when ok == false.\nfunc (c *Client) SubscribeWithContext(ctx context.Context, suffix string, fn func(ctx context.Context, v string, ok bool) error) error {\n\tconst failedSubscribeSleep = time.Second * 5\n\n\t// First check to see if the metadata value exists at all.\n\tval, lastETag, err := c.getETagWithSubClient(ctx, suffix, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := fn(ctx, val, true); err != nil {\n\t\treturn err\n\t}\n\n\tok := true\n\tif strings.ContainsRune(suffix, '?') {\n\t\tsuffix += \"&wait_for_change=true&last_etag=\"\n\t} else {\n\t\tsuffix += \"?wait_for_change=true&last_etag=\"\n\t}\n\tfor {\n\t\tval, etag, err := c.getETagWithSubClient(ctx, suffix+url.QueryEscape(lastETag), true)\n\t\tif err != nil {\n\t\t\tif errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif _, deleted := err.(NotDefinedError); !deleted {\n\t\t\t\ttime.Sleep(failedSubscribeSleep)\n\t\t\t\tcontinue // Retry on other errors.\n\t\t\t}\n\t\t\tok = false\n\t\t}\n\t\tlastETag = etag\n\n\t\tif err := fn(ctx, val, ok); err != nil || !ok {\n\t\t\treturn err\n\t\t}\n\t}\n}\n\n// Error contains an error response from the server.\ntype Error struct {\n\t// Code is the HTTP response status code.\n\tCode int\n\t// Message is the server response message.\n\tMessage string\n}\n\nfunc (e *Error) Error() string {\n\treturn fmt.Sprintf(\"compute: Received %d `%s`\", e.Code, e.Message)\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/retry.go",
    "content": "// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage metadata\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"math/rand\"\n\t\"net/http\"\n\t\"time\"\n)\n\nconst (\n\tmaxRetryAttempts = 5\n)\n\nvar (\n\tsyscallRetryable = func(error) bool { return false }\n)\n\n// defaultBackoff is basically equivalent to gax.Backoff without the need for\n// the dependency.\ntype defaultBackoff struct {\n\tmax time.Duration\n\tmul float64\n\tcur time.Duration\n}\n\nfunc (b *defaultBackoff) Pause() time.Duration {\n\td := time.Duration(1 + rand.Int63n(int64(b.cur)))\n\tb.cur = time.Duration(float64(b.cur) * b.mul)\n\tif b.cur > b.max {\n\t\tb.cur = b.max\n\t}\n\treturn d\n}\n\n// sleep is the equivalent of gax.Sleep without the need for the dependency.\nfunc sleep(ctx context.Context, d time.Duration) error {\n\tt := time.NewTimer(d)\n\tselect {\n\tcase <-ctx.Done():\n\t\tt.Stop()\n\t\treturn ctx.Err()\n\tcase <-t.C:\n\t\treturn nil\n\t}\n}\n\nfunc newRetryer() *metadataRetryer {\n\treturn &metadataRetryer{bo: &defaultBackoff{\n\t\tcur: 100 * time.Millisecond,\n\t\tmax: 30 * time.Second,\n\t\tmul: 2,\n\t}}\n}\n\ntype backoff interface {\n\tPause() time.Duration\n}\n\ntype metadataRetryer struct {\n\tbo       backoff\n\tattempts int\n}\n\nfunc (r *metadataRetryer) Retry(status int, err error) (time.Duration, bool) {\n\tif status == http.StatusOK {\n\t\treturn 0, false\n\t}\n\tretryOk := shouldRetry(status, err)\n\tif !retryOk {\n\t\treturn 0, false\n\t}\n\tif r.attempts == maxRetryAttempts {\n\t\treturn 0, false\n\t}\n\tr.attempts++\n\treturn r.bo.Pause(), true\n}\n\nfunc shouldRetry(status int, err error) bool {\n\tif 500 <= status && status <= 599 {\n\t\treturn true\n\t}\n\tif status == http.StatusTooManyRequests {\n\t\treturn true\n\t}\n\tif err == io.ErrUnexpectedEOF {\n\t\treturn true\n\t}\n\t// Transient network errors should be retried.\n\tif syscallRetryable(err) {\n\t\treturn true\n\t}\n\tif err, ok := err.(interface{ Temporary() bool }); ok {\n\t\tif err.Temporary() {\n\t\t\treturn true\n\t\t}\n\t}\n\tif err, ok := err.(interface{ Unwrap() error }); ok {\n\t\treturn shouldRetry(status, err.Unwrap())\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/retry_linux.go",
    "content": "// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n// +build linux\n\npackage metadata\n\nimport (\n\t\"errors\"\n\t\"syscall\"\n)\n\nfunc init() {\n\t// Initialize syscallRetryable to return true on transient socket-level\n\t// errors. These errors are specific to Linux.\n\tsyscallRetryable = func(err error) bool {\n\t\treturn errors.Is(err, syscall.ECONNRESET) || errors.Is(err, syscall.ECONNREFUSED)\n\t}\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck.go",
    "content": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows && !linux\n\npackage metadata\n\n// systemInfoSuggestsGCE reports whether the local system (without\n// doing network requests) suggests that we're running on GCE. If this\n// returns true, testOnGCE tries a bit harder to reach its metadata\n// server.\n//\n// NOTE: systemInfoSuggestsGCE is assigned to a varible for test stubbing purposes.\nvar systemInfoSuggestsGCE = func() bool {\n\t// We don't currently have checks for other GOOS\n\treturn false\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck_linux.go",
    "content": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n\npackage metadata\n\nimport (\n\t\"os\"\n\t\"strings\"\n)\n\n// NOTE: systemInfoSuggestsGCE is assigned to a varible for test stubbing purposes.\nvar systemInfoSuggestsGCE = func() bool {\n\tb, _ := os.ReadFile(\"/sys/class/dmi/id/product_name\")\n\n\tname := strings.TrimSpace(string(b))\n\treturn name == \"Google\" || name == \"Google Compute Engine\"\n}\n"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck_windows.go",
    "content": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build windows\n\npackage metadata\n\nimport (\n\t\"strings\"\n\n\t\"golang.org/x/sys/windows/registry\"\n)\n\n// NOTE: systemInfoSuggestsGCE is assigned to a varible for test stubbing purposes.\nvar systemInfoSuggestsGCE = func() bool {\n\tk, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\\HardwareConfig\\Current`, registry.QUERY_VALUE)\n\tif err != nil {\n\t\treturn false\n\t}\n\tdefer k.Close()\n\n\ts, _, err := k.GetStringValue(\"SystemProductName\")\n\tif err != nil {\n\t\treturn false\n\t}\n\ts = strings.TrimSpace(s)\n\treturn strings.HasPrefix(s, \"Google\")\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage dl\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// #cgo LDFLAGS: -ldl\n// #include <dlfcn.h>\n// #include <stdlib.h>\nimport \"C\"\n\nconst (\n\tRTLD_LAZY     = C.RTLD_LAZY\n\tRTLD_NOW      = C.RTLD_NOW\n\tRTLD_GLOBAL   = C.RTLD_GLOBAL\n\tRTLD_LOCAL    = C.RTLD_LOCAL\n\tRTLD_NODELETE = C.RTLD_NODELETE\n\tRTLD_NOLOAD   = C.RTLD_NOLOAD\n)\n\ntype DynamicLibrary struct {\n\tName   string\n\tFlags  int\n\thandle unsafe.Pointer\n}\n\nfunc New(name string, flags int) *DynamicLibrary {\n\treturn &DynamicLibrary{\n\t\tName:   name,\n\t\tFlags:  flags,\n\t\thandle: nil,\n\t}\n}\n\nfunc withOSLock(action func() error) error {\n\truntime.LockOSThread()\n\tdefer runtime.UnlockOSThread()\n\n\treturn action()\n}\n\nfunc dlError() error {\n\tlastErr := C.dlerror()\n\tif lastErr == nil {\n\t\treturn nil\n\t}\n\treturn errors.New(C.GoString(lastErr))\n}\n\nfunc (dl *DynamicLibrary) Open() error {\n\tname := C.CString(dl.Name)\n\tdefer C.free(unsafe.Pointer(name))\n\n\tif err := withOSLock(func() error {\n\t\thandle := C.dlopen(name, C.int(dl.Flags))\n\t\tif handle == nil {\n\t\t\treturn dlError()\n\t\t}\n\t\tdl.handle = handle\n\t\treturn nil\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (dl *DynamicLibrary) Close() error {\n\tif dl.handle == nil {\n\t\treturn nil\n\t}\n\tif err := withOSLock(func() error {\n\t\tif C.dlclose(dl.handle) != 0 {\n\t\t\treturn dlError()\n\t\t}\n\t\tdl.handle = nil\n\t\treturn nil\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (dl *DynamicLibrary) Lookup(symbol string) error {\n\tsym := C.CString(symbol)\n\tdefer C.free(unsafe.Pointer(sym))\n\n\tvar pointer unsafe.Pointer\n\tif err := withOSLock(func() error {\n\t\t// Call dlError() to clear out any previous errors.\n\t\t_ = dlError()\n\t\tpointer = C.dlsym(dl.handle, sym)\n\t\tif pointer == nil {\n\t\t\treturn fmt.Errorf(\"symbol %q not found: %w\", symbol, dlError())\n\t\t}\n\t\treturn nil\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl_linux.go",
    "content": "/**\n# Copyright (c) NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n**/\n\npackage dl\n\n// #cgo LDFLAGS: -ldl\n// #include <dlfcn.h>\n// #include <stdlib.h>\nimport \"C\"\n\nconst (\n\tRTLD_DEEPBIND = C.RTLD_DEEPBIND\n)\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/api.go",
    "content": "/**\n# Copyright 2023 NVIDIA CORPORATION\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n**/\n\npackage nvml\n\n// Library defines a set of functions defined on the underlying dynamic library.\ntype Library interface {\n\tLookup(string) error\n}\n\n// dynamicLibrary is an interface for abstacting the underlying library.\n// This also allows for mocking and testing.\n\n//go:generate moq -stub -out dynamicLibrary_mock.go . dynamicLibrary\ntype dynamicLibrary interface {\n\tLookup(string) error\n\tOpen() error\n\tClose() error\n}\n\n// Interface represents the interface for the NVML library.\ntype Interface interface {\n\tGetLibrary() Library\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\nimport \"C\"\n\nvar cgoAllocsUnknown = new(struct{})\n\ntype stringHeader struct {\n\tData unsafe.Pointer\n\tLen  int\n}\n\nfunc clen(n []byte) int {\n\tfor i := 0; i < len(n); i++ {\n\t\tif n[i] == 0 {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(n)\n}\n\nfunc uint32SliceToIntSlice(s []uint32) []int {\n\tret := make([]int, len(s))\n\tfor i := range s {\n\t\tret[i] = int(s[i])\n\t}\n\treturn ret\n}\n\n// packPCharString creates a Go string backed by *C.char and avoids copying.\nfunc packPCharString(p *C.char) (raw string) {\n\tif p != nil && *p != 0 {\n\t\th := (*stringHeader)(unsafe.Pointer(&raw))\n\t\th.Data = unsafe.Pointer(p)\n\t\tfor *p != 0 {\n\t\t\tp = (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + 1)) // p++\n\t\t}\n\t\th.Len = int(uintptr(unsafe.Pointer(p)) - uintptr(h.Data))\n\t}\n\treturn\n}\n\n// unpackPCharString represents the data from Go string as *C.char and avoids copying.\nfunc unpackPCharString(str string) (*C.char, *struct{}) {\n\th := (*stringHeader)(unsafe.Pointer(&str))\n\treturn (*C.char)(h.Data), cgoAllocsUnknown\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers.h",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n//     http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// WARNING: THIS FILE WAS AUTOMATICALLY GENERATED.\n// Code generated by https://git.io/c-for-go. DO NOT EDIT.\n\n#include \"nvml.h\"\n#include <stdlib.h>\n#pragma once\n\n#define __CGOGEN 1\n\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// WARNING: THIS FILE WAS AUTOMATICALLY GENERATED.\n// Code generated by https://git.io/c-for-go. DO NOT EDIT.\n\npackage nvml\n\n/*\n#cgo linux LDFLAGS: -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files\n#cgo darwin LDFLAGS: -Wl,-undefined,dynamic_lookup\n#cgo CFLAGS: -DNVML_NO_UNVERSIONED_FUNC_DEFS=1\n#include \"nvml.h\"\n#include <stdlib.h>\n#include \"cgo_helpers.h\"\n*/\nimport \"C\"\n\nconst (\n\t// NO_UNVERSIONED_FUNC_DEFS as defined in go-nvml/<predefine>:24\n\tNO_UNVERSIONED_FUNC_DEFS = 1\n\t// API_VERSION as defined in nvml/nvml.h\n\tAPI_VERSION = 11\n\t// API_VERSION_STR as defined in nvml/nvml.h\n\tAPI_VERSION_STR = \"11\"\n\t// VALUE_NOT_AVAILABLE as defined in nvml/nvml.h\n\tVALUE_NOT_AVAILABLE = -1\n\t// DEVICE_PCI_BUS_ID_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_PCI_BUS_ID_BUFFER_SIZE = 32\n\t// DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE as defined in nvml/nvml.h\n\tDEVICE_PCI_BUS_ID_BUFFER_V2_SIZE = 16\n\t// DEVICE_PCI_BUS_ID_LEGACY_FMT as defined in nvml/nvml.h\n\tDEVICE_PCI_BUS_ID_LEGACY_FMT = \"%04X:%02X:%02X.0\"\n\t// DEVICE_PCI_BUS_ID_FMT as defined in nvml/nvml.h\n\tDEVICE_PCI_BUS_ID_FMT = \"%08X:%02X:%02X.0\"\n\t// NVLINK_MAX_LINKS as defined in nvml/nvml.h\n\tNVLINK_MAX_LINKS = 18\n\t// TOPOLOGY_CPU as defined in nvml/nvml.h\n\tTOPOLOGY_CPU = 0\n\t// MAX_PHYSICAL_BRIDGE as defined in nvml/nvml.h\n\tMAX_PHYSICAL_BRIDGE = 128\n\t// MAX_THERMAL_SENSORS_PER_GPU as defined in nvml/nvml.h\n\tMAX_THERMAL_SENSORS_PER_GPU = 3\n\t// FlagDefault as defined in nvml/nvml.h\n\tFlagDefault = 0\n\t// FlagForce as defined in nvml/nvml.h\n\tFlagForce = 1\n\t// SINGLE_BIT_ECC as defined in nvml/nvml.h\n\tSINGLE_BIT_ECC = 0\n\t// DOUBLE_BIT_ECC as defined in nvml/nvml.h\n\tDOUBLE_BIT_ECC = 0\n\t// MAX_GPU_PERF_PSTATES as defined in nvml/nvml.h\n\tMAX_GPU_PERF_PSTATES = 16\n\t// GRID_LICENSE_EXPIRY_NOT_AVAILABLE as defined in nvml/nvml.h\n\tGRID_LICENSE_EXPIRY_NOT_AVAILABLE = 0\n\t// GRID_LICENSE_EXPIRY_INVALID as defined in nvml/nvml.h\n\tGRID_LICENSE_EXPIRY_INVALID = 1\n\t// GRID_LICENSE_EXPIRY_VALID as defined in nvml/nvml.h\n\tGRID_LICENSE_EXPIRY_VALID = 2\n\t// GRID_LICENSE_EXPIRY_NOT_APPLICABLE as defined in nvml/nvml.h\n\tGRID_LICENSE_EXPIRY_NOT_APPLICABLE = 3\n\t// GRID_LICENSE_EXPIRY_PERMANENT as defined in nvml/nvml.h\n\tGRID_LICENSE_EXPIRY_PERMANENT = 4\n\t// GRID_LICENSE_BUFFER_SIZE as defined in nvml/nvml.h\n\tGRID_LICENSE_BUFFER_SIZE = 128\n\t// VGPU_NAME_BUFFER_SIZE as defined in nvml/nvml.h\n\tVGPU_NAME_BUFFER_SIZE = 64\n\t// GRID_LICENSE_FEATURE_MAX_COUNT as defined in nvml/nvml.h\n\tGRID_LICENSE_FEATURE_MAX_COUNT = 3\n\t// VGPU_SCHEDULER_POLICY_UNKNOWN as defined in nvml/nvml.h\n\tVGPU_SCHEDULER_POLICY_UNKNOWN = 0\n\t// VGPU_SCHEDULER_POLICY_BEST_EFFORT as defined in nvml/nvml.h\n\tVGPU_SCHEDULER_POLICY_BEST_EFFORT = 1\n\t// VGPU_SCHEDULER_POLICY_EQUAL_SHARE as defined in nvml/nvml.h\n\tVGPU_SCHEDULER_POLICY_EQUAL_SHARE = 2\n\t// VGPU_SCHEDULER_POLICY_FIXED_SHARE as defined in nvml/nvml.h\n\tVGPU_SCHEDULER_POLICY_FIXED_SHARE = 3\n\t// SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT as defined in nvml/nvml.h\n\tSUPPORTED_VGPU_SCHEDULER_POLICY_COUNT = 3\n\t// SCHEDULER_SW_MAX_LOG_ENTRIES as defined in nvml/nvml.h\n\tSCHEDULER_SW_MAX_LOG_ENTRIES = 200\n\t// GRID_LICENSE_STATE_UNKNOWN as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_UNKNOWN = 0\n\t// GRID_LICENSE_STATE_UNINITIALIZED as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_UNINITIALIZED = 1\n\t// GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED = 2\n\t// GRID_LICENSE_STATE_UNLICENSED_RESTRICTED as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_UNLICENSED_RESTRICTED = 3\n\t// GRID_LICENSE_STATE_UNLICENSED as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_UNLICENSED = 4\n\t// GRID_LICENSE_STATE_LICENSED as defined in nvml/nvml.h\n\tGRID_LICENSE_STATE_LICENSED = 5\n\t// GSP_FIRMWARE_VERSION_BUF_SIZE as defined in nvml/nvml.h\n\tGSP_FIRMWARE_VERSION_BUF_SIZE = 64\n\t// DEVICE_ARCH_KEPLER as defined in nvml/nvml.h\n\tDEVICE_ARCH_KEPLER = 2\n\t// DEVICE_ARCH_MAXWELL as defined in nvml/nvml.h\n\tDEVICE_ARCH_MAXWELL = 3\n\t// DEVICE_ARCH_PASCAL as defined in nvml/nvml.h\n\tDEVICE_ARCH_PASCAL = 4\n\t// DEVICE_ARCH_VOLTA as defined in nvml/nvml.h\n\tDEVICE_ARCH_VOLTA = 5\n\t// DEVICE_ARCH_TURING as defined in nvml/nvml.h\n\tDEVICE_ARCH_TURING = 6\n\t// DEVICE_ARCH_AMPERE as defined in nvml/nvml.h\n\tDEVICE_ARCH_AMPERE = 7\n\t// DEVICE_ARCH_ADA as defined in nvml/nvml.h\n\tDEVICE_ARCH_ADA = 8\n\t// DEVICE_ARCH_HOPPER as defined in nvml/nvml.h\n\tDEVICE_ARCH_HOPPER = 9\n\t// DEVICE_ARCH_UNKNOWN as defined in nvml/nvml.h\n\tDEVICE_ARCH_UNKNOWN = 4294967295\n\t// BUS_TYPE_UNKNOWN as defined in nvml/nvml.h\n\tBUS_TYPE_UNKNOWN = 0\n\t// BUS_TYPE_PCI as defined in nvml/nvml.h\n\tBUS_TYPE_PCI = 1\n\t// BUS_TYPE_PCIE as defined in nvml/nvml.h\n\tBUS_TYPE_PCIE = 2\n\t// BUS_TYPE_FPCI as defined in nvml/nvml.h\n\tBUS_TYPE_FPCI = 3\n\t// BUS_TYPE_AGP as defined in nvml/nvml.h\n\tBUS_TYPE_AGP = 4\n\t// FAN_POLICY_TEMPERATURE_CONTINOUS_SW as defined in nvml/nvml.h\n\tFAN_POLICY_TEMPERATURE_CONTINOUS_SW = 0\n\t// FAN_POLICY_MANUAL as defined in nvml/nvml.h\n\tFAN_POLICY_MANUAL = 1\n\t// POWER_SOURCE_AC as defined in nvml/nvml.h\n\tPOWER_SOURCE_AC = 0\n\t// POWER_SOURCE_BATTERY as defined in nvml/nvml.h\n\tPOWER_SOURCE_BATTERY = 1\n\t// PCIE_LINK_MAX_SPEED_INVALID as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_INVALID = 0\n\t// PCIE_LINK_MAX_SPEED_2500MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_2500MBPS = 1\n\t// PCIE_LINK_MAX_SPEED_5000MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_5000MBPS = 2\n\t// PCIE_LINK_MAX_SPEED_8000MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_8000MBPS = 3\n\t// PCIE_LINK_MAX_SPEED_16000MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_16000MBPS = 4\n\t// PCIE_LINK_MAX_SPEED_32000MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_32000MBPS = 5\n\t// PCIE_LINK_MAX_SPEED_64000MBPS as defined in nvml/nvml.h\n\tPCIE_LINK_MAX_SPEED_64000MBPS = 6\n\t// ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED as defined in nvml/nvml.h\n\tADAPTIVE_CLOCKING_INFO_STATUS_DISABLED = 0\n\t// ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED as defined in nvml/nvml.h\n\tADAPTIVE_CLOCKING_INFO_STATUS_ENABLED = 1\n\t// MAX_GPU_UTILIZATIONS as defined in nvml/nvml.h\n\tMAX_GPU_UTILIZATIONS = 8\n\t// FI_DEV_ECC_CURRENT as defined in nvml/nvml.h\n\tFI_DEV_ECC_CURRENT = 1\n\t// FI_DEV_ECC_PENDING as defined in nvml/nvml.h\n\tFI_DEV_ECC_PENDING = 2\n\t// FI_DEV_ECC_SBE_VOL_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_TOTAL = 3\n\t// FI_DEV_ECC_DBE_VOL_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_TOTAL = 4\n\t// FI_DEV_ECC_SBE_AGG_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_TOTAL = 5\n\t// FI_DEV_ECC_DBE_AGG_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_TOTAL = 6\n\t// FI_DEV_ECC_SBE_VOL_L1 as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_L1 = 7\n\t// FI_DEV_ECC_DBE_VOL_L1 as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_L1 = 8\n\t// FI_DEV_ECC_SBE_VOL_L2 as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_L2 = 9\n\t// FI_DEV_ECC_DBE_VOL_L2 as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_L2 = 10\n\t// FI_DEV_ECC_SBE_VOL_DEV as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_DEV = 11\n\t// FI_DEV_ECC_DBE_VOL_DEV as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_DEV = 12\n\t// FI_DEV_ECC_SBE_VOL_REG as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_REG = 13\n\t// FI_DEV_ECC_DBE_VOL_REG as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_REG = 14\n\t// FI_DEV_ECC_SBE_VOL_TEX as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_VOL_TEX = 15\n\t// FI_DEV_ECC_DBE_VOL_TEX as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_TEX = 16\n\t// FI_DEV_ECC_DBE_VOL_CBU as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_VOL_CBU = 17\n\t// FI_DEV_ECC_SBE_AGG_L1 as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_L1 = 18\n\t// FI_DEV_ECC_DBE_AGG_L1 as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_L1 = 19\n\t// FI_DEV_ECC_SBE_AGG_L2 as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_L2 = 20\n\t// FI_DEV_ECC_DBE_AGG_L2 as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_L2 = 21\n\t// FI_DEV_ECC_SBE_AGG_DEV as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_DEV = 22\n\t// FI_DEV_ECC_DBE_AGG_DEV as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_DEV = 23\n\t// FI_DEV_ECC_SBE_AGG_REG as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_REG = 24\n\t// FI_DEV_ECC_DBE_AGG_REG as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_REG = 25\n\t// FI_DEV_ECC_SBE_AGG_TEX as defined in nvml/nvml.h\n\tFI_DEV_ECC_SBE_AGG_TEX = 26\n\t// FI_DEV_ECC_DBE_AGG_TEX as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_TEX = 27\n\t// FI_DEV_ECC_DBE_AGG_CBU as defined in nvml/nvml.h\n\tFI_DEV_ECC_DBE_AGG_CBU = 28\n\t// FI_DEV_RETIRED_SBE as defined in nvml/nvml.h\n\tFI_DEV_RETIRED_SBE = 29\n\t// FI_DEV_RETIRED_DBE as defined in nvml/nvml.h\n\tFI_DEV_RETIRED_DBE = 30\n\t// FI_DEV_RETIRED_PENDING as defined in nvml/nvml.h\n\tFI_DEV_RETIRED_PENDING = 31\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0 = 32\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1 = 33\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2 = 34\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3 = 35\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4 = 36\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5 = 37\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL = 38\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0 = 39\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1 = 40\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2 = 41\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3 = 42\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4 = 43\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5 = 44\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL = 45\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0 = 46\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1 = 47\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2 = 48\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3 = 49\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4 = 50\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5 = 51\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL = 52\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0 = 53\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1 = 54\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2 = 55\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3 = 56\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4 = 57\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5 = 58\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL = 59\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L0 = 60\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L1 = 61\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L2 = 62\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L3 = 63\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L4 = 64\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L5 = 65\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_TOTAL = 66\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L0 = 67\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L1 = 68\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L2 = 69\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L3 = 70\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L4 = 71\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L5 = 72\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_TOTAL = 73\n\t// FI_DEV_PERF_POLICY_POWER as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_POWER = 74\n\t// FI_DEV_PERF_POLICY_THERMAL as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_THERMAL = 75\n\t// FI_DEV_PERF_POLICY_SYNC_BOOST as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_SYNC_BOOST = 76\n\t// FI_DEV_PERF_POLICY_BOARD_LIMIT as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_BOARD_LIMIT = 77\n\t// FI_DEV_PERF_POLICY_LOW_UTILIZATION as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_LOW_UTILIZATION = 78\n\t// FI_DEV_PERF_POLICY_RELIABILITY as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_RELIABILITY = 79\n\t// FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS = 80\n\t// FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS as defined in nvml/nvml.h\n\tFI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS = 81\n\t// FI_DEV_MEMORY_TEMP as defined in nvml/nvml.h\n\tFI_DEV_MEMORY_TEMP = 82\n\t// FI_DEV_TOTAL_ENERGY_CONSUMPTION as defined in nvml/nvml.h\n\tFI_DEV_TOTAL_ENERGY_CONSUMPTION = 83\n\t// FI_DEV_NVLINK_SPEED_MBPS_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L0 = 84\n\t// FI_DEV_NVLINK_SPEED_MBPS_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L1 = 85\n\t// FI_DEV_NVLINK_SPEED_MBPS_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L2 = 86\n\t// FI_DEV_NVLINK_SPEED_MBPS_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L3 = 87\n\t// FI_DEV_NVLINK_SPEED_MBPS_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L4 = 88\n\t// FI_DEV_NVLINK_SPEED_MBPS_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L5 = 89\n\t// FI_DEV_NVLINK_SPEED_MBPS_COMMON as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_COMMON = 90\n\t// FI_DEV_NVLINK_LINK_COUNT as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_LINK_COUNT = 91\n\t// FI_DEV_RETIRED_PENDING_SBE as defined in nvml/nvml.h\n\tFI_DEV_RETIRED_PENDING_SBE = 92\n\t// FI_DEV_RETIRED_PENDING_DBE as defined in nvml/nvml.h\n\tFI_DEV_RETIRED_PENDING_DBE = 93\n\t// FI_DEV_PCIE_REPLAY_COUNTER as defined in nvml/nvml.h\n\tFI_DEV_PCIE_REPLAY_COUNTER = 94\n\t// FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER as defined in nvml/nvml.h\n\tFI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER = 95\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6 = 96\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7 = 97\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8 = 98\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9 = 99\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10 = 100\n\t// FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11 = 101\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6 = 102\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7 = 103\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8 = 104\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9 = 105\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10 = 106\n\t// FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11 = 107\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6 = 108\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7 = 109\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8 = 110\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9 = 111\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10 = 112\n\t// FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11 = 113\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6 = 114\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7 = 115\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8 = 116\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9 = 117\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10 = 118\n\t// FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11 = 119\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L6 = 120\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L7 = 121\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L8 = 122\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L9 = 123\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L10 = 124\n\t// FI_DEV_NVLINK_BANDWIDTH_C0_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C0_L11 = 125\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L6 = 126\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L7 = 127\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L8 = 128\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L9 = 129\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L10 = 130\n\t// FI_DEV_NVLINK_BANDWIDTH_C1_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_BANDWIDTH_C1_L11 = 131\n\t// FI_DEV_NVLINK_SPEED_MBPS_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L6 = 132\n\t// FI_DEV_NVLINK_SPEED_MBPS_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L7 = 133\n\t// FI_DEV_NVLINK_SPEED_MBPS_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L8 = 134\n\t// FI_DEV_NVLINK_SPEED_MBPS_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L9 = 135\n\t// FI_DEV_NVLINK_SPEED_MBPS_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L10 = 136\n\t// FI_DEV_NVLINK_SPEED_MBPS_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_SPEED_MBPS_L11 = 137\n\t// FI_DEV_NVLINK_THROUGHPUT_DATA_TX as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_THROUGHPUT_DATA_TX = 138\n\t// FI_DEV_NVLINK_THROUGHPUT_DATA_RX as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_THROUGHPUT_DATA_RX = 139\n\t// FI_DEV_NVLINK_THROUGHPUT_RAW_TX as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_THROUGHPUT_RAW_TX = 140\n\t// FI_DEV_NVLINK_THROUGHPUT_RAW_RX as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_THROUGHPUT_RAW_RX = 141\n\t// FI_DEV_REMAPPED_COR as defined in nvml/nvml.h\n\tFI_DEV_REMAPPED_COR = 142\n\t// FI_DEV_REMAPPED_UNC as defined in nvml/nvml.h\n\tFI_DEV_REMAPPED_UNC = 143\n\t// FI_DEV_REMAPPED_PENDING as defined in nvml/nvml.h\n\tFI_DEV_REMAPPED_PENDING = 144\n\t// FI_DEV_REMAPPED_FAILURE as defined in nvml/nvml.h\n\tFI_DEV_REMAPPED_FAILURE = 145\n\t// FI_DEV_NVLINK_REMOTE_NVLINK_ID as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_REMOTE_NVLINK_ID = 146\n\t// FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT as defined in nvml/nvml.h\n\tFI_DEV_NVSWITCH_CONNECTED_LINK_COUNT = 147\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0 = 148\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1 = 149\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2 = 150\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3 = 151\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4 = 152\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5 = 153\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6 = 154\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7 = 155\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8 = 156\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9 = 157\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10 = 158\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11 as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11 = 159\n\t// FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL = 160\n\t// FI_DEV_NVLINK_ERROR_DL_REPLAY as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ERROR_DL_REPLAY = 161\n\t// FI_DEV_NVLINK_ERROR_DL_RECOVERY as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ERROR_DL_RECOVERY = 162\n\t// FI_DEV_NVLINK_ERROR_DL_CRC as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_ERROR_DL_CRC = 163\n\t// FI_DEV_NVLINK_GET_SPEED as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_GET_SPEED = 164\n\t// FI_DEV_NVLINK_GET_STATE as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_GET_STATE = 165\n\t// FI_DEV_NVLINK_GET_VERSION as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_GET_VERSION = 166\n\t// FI_DEV_NVLINK_GET_POWER_STATE as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_GET_POWER_STATE = 167\n\t// FI_DEV_NVLINK_GET_POWER_THRESHOLD as defined in nvml/nvml.h\n\tFI_DEV_NVLINK_GET_POWER_THRESHOLD = 168\n\t// FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER as defined in nvml/nvml.h\n\tFI_DEV_PCIE_L0_TO_RECOVERY_COUNTER = 169\n\t// FI_MAX as defined in nvml/nvml.h\n\tFI_MAX = 170\n\t// EventTypeSingleBitEccError as defined in nvml/nvml.h\n\tEventTypeSingleBitEccError = 1\n\t// EventTypeDoubleBitEccError as defined in nvml/nvml.h\n\tEventTypeDoubleBitEccError = 2\n\t// EventTypePState as defined in nvml/nvml.h\n\tEventTypePState = 4\n\t// EventTypeXidCriticalError as defined in nvml/nvml.h\n\tEventTypeXidCriticalError = 8\n\t// EventTypeClock as defined in nvml/nvml.h\n\tEventTypeClock = 16\n\t// EventTypePowerSourceChange as defined in nvml/nvml.h\n\tEventTypePowerSourceChange = 128\n\t// EventMigConfigChange as defined in nvml/nvml.h\n\tEventMigConfigChange = 256\n\t// EventTypeNone as defined in nvml/nvml.h\n\tEventTypeNone = 0\n\t// EventTypeAll as defined in nvml/nvml.h\n\tEventTypeAll = 415\n\t// ClocksThrottleReasonGpuIdle as defined in nvml/nvml.h\n\tClocksThrottleReasonGpuIdle = 1\n\t// ClocksThrottleReasonApplicationsClocksSetting as defined in nvml/nvml.h\n\tClocksThrottleReasonApplicationsClocksSetting = 2\n\t// ClocksThrottleReasonUserDefinedClocks as defined in nvml/nvml.h\n\tClocksThrottleReasonUserDefinedClocks = 2\n\t// ClocksThrottleReasonSwPowerCap as defined in nvml/nvml.h\n\tClocksThrottleReasonSwPowerCap = 4\n\t// ClocksThrottleReasonHwSlowdown as defined in nvml/nvml.h\n\tClocksThrottleReasonHwSlowdown = 8\n\t// ClocksThrottleReasonSyncBoost as defined in nvml/nvml.h\n\tClocksThrottleReasonSyncBoost = 16\n\t// ClocksThrottleReasonSwThermalSlowdown as defined in nvml/nvml.h\n\tClocksThrottleReasonSwThermalSlowdown = 32\n\t// ClocksThrottleReasonHwThermalSlowdown as defined in nvml/nvml.h\n\tClocksThrottleReasonHwThermalSlowdown = 64\n\t// ClocksThrottleReasonHwPowerBrakeSlowdown as defined in nvml/nvml.h\n\tClocksThrottleReasonHwPowerBrakeSlowdown = 128\n\t// ClocksThrottleReasonDisplayClockSetting as defined in nvml/nvml.h\n\tClocksThrottleReasonDisplayClockSetting = 256\n\t// ClocksThrottleReasonNone as defined in nvml/nvml.h\n\tClocksThrottleReasonNone = 0\n\t// ClocksThrottleReasonAll as defined in nvml/nvml.h\n\tClocksThrottleReasonAll = 511\n\t// NVFBC_SESSION_FLAG_DIFFMAP_ENABLED as defined in nvml/nvml.h\n\tNVFBC_SESSION_FLAG_DIFFMAP_ENABLED = 1\n\t// NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED as defined in nvml/nvml.h\n\tNVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED = 2\n\t// NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT as defined in nvml/nvml.h\n\tNVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT = 4\n\t// NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE as defined in nvml/nvml.h\n\tNVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE = 8\n\t// NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT as defined in nvml/nvml.h\n\tNVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT = 16\n\t// GPU_FABRIC_UUID_LEN as defined in nvml/nvml.h\n\tGPU_FABRIC_UUID_LEN = 16\n\t// GPU_FABRIC_STATE_NOT_SUPPORTED as defined in nvml/nvml.h\n\tGPU_FABRIC_STATE_NOT_SUPPORTED = 0\n\t// GPU_FABRIC_STATE_NOT_STARTED as defined in nvml/nvml.h\n\tGPU_FABRIC_STATE_NOT_STARTED = 1\n\t// GPU_FABRIC_STATE_IN_PROGRESS as defined in nvml/nvml.h\n\tGPU_FABRIC_STATE_IN_PROGRESS = 2\n\t// GPU_FABRIC_STATE_COMPLETED as defined in nvml/nvml.h\n\tGPU_FABRIC_STATE_COMPLETED = 3\n\t// INIT_FLAG_NO_GPUS as defined in nvml/nvml.h\n\tINIT_FLAG_NO_GPUS = 1\n\t// INIT_FLAG_NO_ATTACH as defined in nvml/nvml.h\n\tINIT_FLAG_NO_ATTACH = 2\n\t// DEVICE_INFOROM_VERSION_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_INFOROM_VERSION_BUFFER_SIZE = 16\n\t// DEVICE_UUID_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_UUID_BUFFER_SIZE = 80\n\t// DEVICE_UUID_V2_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_UUID_V2_BUFFER_SIZE = 96\n\t// DEVICE_PART_NUMBER_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_PART_NUMBER_BUFFER_SIZE = 80\n\t// SYSTEM_DRIVER_VERSION_BUFFER_SIZE as defined in nvml/nvml.h\n\tSYSTEM_DRIVER_VERSION_BUFFER_SIZE = 80\n\t// SYSTEM_NVML_VERSION_BUFFER_SIZE as defined in nvml/nvml.h\n\tSYSTEM_NVML_VERSION_BUFFER_SIZE = 80\n\t// DEVICE_NAME_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_NAME_BUFFER_SIZE = 64\n\t// DEVICE_NAME_V2_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_NAME_V2_BUFFER_SIZE = 96\n\t// DEVICE_SERIAL_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_SERIAL_BUFFER_SIZE = 30\n\t// DEVICE_VBIOS_VERSION_BUFFER_SIZE as defined in nvml/nvml.h\n\tDEVICE_VBIOS_VERSION_BUFFER_SIZE = 32\n\t// AFFINITY_SCOPE_NODE as defined in nvml/nvml.h\n\tAFFINITY_SCOPE_NODE = 0\n\t// AFFINITY_SCOPE_SOCKET as defined in nvml/nvml.h\n\tAFFINITY_SCOPE_SOCKET = 1\n\t// DEVICE_MIG_DISABLE as defined in nvml/nvml.h\n\tDEVICE_MIG_DISABLE = 0\n\t// DEVICE_MIG_ENABLE as defined in nvml/nvml.h\n\tDEVICE_MIG_ENABLE = 1\n\t// GPU_INSTANCE_PROFILE_1_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_1_SLICE = 0\n\t// GPU_INSTANCE_PROFILE_2_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_2_SLICE = 1\n\t// GPU_INSTANCE_PROFILE_3_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_3_SLICE = 2\n\t// GPU_INSTANCE_PROFILE_4_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_4_SLICE = 3\n\t// GPU_INSTANCE_PROFILE_7_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_7_SLICE = 4\n\t// GPU_INSTANCE_PROFILE_8_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_8_SLICE = 5\n\t// GPU_INSTANCE_PROFILE_6_SLICE as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_6_SLICE = 6\n\t// GPU_INSTANCE_PROFILE_1_SLICE_REV1 as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_1_SLICE_REV1 = 7\n\t// GPU_INSTANCE_PROFILE_2_SLICE_REV1 as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_2_SLICE_REV1 = 8\n\t// GPU_INSTANCE_PROFILE_1_SLICE_REV2 as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_1_SLICE_REV2 = 9\n\t// GPU_INSTANCE_PROFILE_COUNT as defined in nvml/nvml.h\n\tGPU_INSTANCE_PROFILE_COUNT = 10\n\t// COMPUTE_INSTANCE_PROFILE_1_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_1_SLICE = 0\n\t// COMPUTE_INSTANCE_PROFILE_2_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_2_SLICE = 1\n\t// COMPUTE_INSTANCE_PROFILE_3_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_3_SLICE = 2\n\t// COMPUTE_INSTANCE_PROFILE_4_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_4_SLICE = 3\n\t// COMPUTE_INSTANCE_PROFILE_7_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_7_SLICE = 4\n\t// COMPUTE_INSTANCE_PROFILE_8_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_8_SLICE = 5\n\t// COMPUTE_INSTANCE_PROFILE_6_SLICE as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_6_SLICE = 6\n\t// COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1 as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_1_SLICE_REV1 = 7\n\t// COMPUTE_INSTANCE_PROFILE_COUNT as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_PROFILE_COUNT = 8\n\t// COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_ENGINE_PROFILE_SHARED = 0\n\t// COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT as defined in nvml/nvml.h\n\tCOMPUTE_INSTANCE_ENGINE_PROFILE_COUNT = 1\n\t// GPM_METRICS_GET_VERSION as defined in nvml/nvml.h\n\tGPM_METRICS_GET_VERSION = 1\n\t// GPM_SUPPORT_VERSION as defined in nvml/nvml.h\n\tGPM_SUPPORT_VERSION = 1\n\t// COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE as defined in nvml/nvml.h\n\tCOUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE = 0\n\t// COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE as defined in nvml/nvml.h\n\tCOUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE = 1\n\t// NVLINK_POWER_STATE_HIGH_SPEED as defined in nvml/nvml.h\n\tNVLINK_POWER_STATE_HIGH_SPEED = 0\n\t// NVLINK_POWER_STATE_LOW as defined in nvml/nvml.h\n\tNVLINK_POWER_STATE_LOW = 1\n\t// NVLINK_LOW_POWER_THRESHOLD_MIN as defined in nvml/nvml.h\n\tNVLINK_LOW_POWER_THRESHOLD_MIN = 1\n\t// NVLINK_LOW_POWER_THRESHOLD_MAX as defined in nvml/nvml.h\n\tNVLINK_LOW_POWER_THRESHOLD_MAX = 8191\n\t// NVLINK_LOW_POWER_THRESHOLD_RESET as defined in nvml/nvml.h\n\tNVLINK_LOW_POWER_THRESHOLD_RESET = 4294967295\n)\n\n// BridgeChipType as declared in nvml/nvml.h\ntype BridgeChipType int32\n\n// BridgeChipType enumeration from nvml/nvml.h\nconst (\n\tBRIDGE_CHIP_PLX  BridgeChipType = iota\n\tBRIDGE_CHIP_BRO4 BridgeChipType = 1\n)\n\n// NvLinkUtilizationCountUnits as declared in nvml/nvml.h\ntype NvLinkUtilizationCountUnits int32\n\n// NvLinkUtilizationCountUnits enumeration from nvml/nvml.h\nconst (\n\tNVLINK_COUNTER_UNIT_CYCLES   NvLinkUtilizationCountUnits = iota\n\tNVLINK_COUNTER_UNIT_PACKETS  NvLinkUtilizationCountUnits = 1\n\tNVLINK_COUNTER_UNIT_BYTES    NvLinkUtilizationCountUnits = 2\n\tNVLINK_COUNTER_UNIT_RESERVED NvLinkUtilizationCountUnits = 3\n\tNVLINK_COUNTER_UNIT_COUNT    NvLinkUtilizationCountUnits = 4\n)\n\n// NvLinkUtilizationCountPktTypes as declared in nvml/nvml.h\ntype NvLinkUtilizationCountPktTypes int32\n\n// NvLinkUtilizationCountPktTypes enumeration from nvml/nvml.h\nconst (\n\tNVLINK_COUNTER_PKTFILTER_NOP        NvLinkUtilizationCountPktTypes = 1\n\tNVLINK_COUNTER_PKTFILTER_READ       NvLinkUtilizationCountPktTypes = 2\n\tNVLINK_COUNTER_PKTFILTER_WRITE      NvLinkUtilizationCountPktTypes = 4\n\tNVLINK_COUNTER_PKTFILTER_RATOM      NvLinkUtilizationCountPktTypes = 8\n\tNVLINK_COUNTER_PKTFILTER_NRATOM     NvLinkUtilizationCountPktTypes = 16\n\tNVLINK_COUNTER_PKTFILTER_FLUSH      NvLinkUtilizationCountPktTypes = 32\n\tNVLINK_COUNTER_PKTFILTER_RESPDATA   NvLinkUtilizationCountPktTypes = 64\n\tNVLINK_COUNTER_PKTFILTER_RESPNODATA NvLinkUtilizationCountPktTypes = 128\n\tNVLINK_COUNTER_PKTFILTER_ALL        NvLinkUtilizationCountPktTypes = 255\n)\n\n// NvLinkCapability as declared in nvml/nvml.h\ntype NvLinkCapability int32\n\n// NvLinkCapability enumeration from nvml/nvml.h\nconst (\n\tNVLINK_CAP_P2P_SUPPORTED  NvLinkCapability = iota\n\tNVLINK_CAP_SYSMEM_ACCESS  NvLinkCapability = 1\n\tNVLINK_CAP_P2P_ATOMICS    NvLinkCapability = 2\n\tNVLINK_CAP_SYSMEM_ATOMICS NvLinkCapability = 3\n\tNVLINK_CAP_SLI_BRIDGE     NvLinkCapability = 4\n\tNVLINK_CAP_VALID          NvLinkCapability = 5\n\tNVLINK_CAP_COUNT          NvLinkCapability = 6\n)\n\n// NvLinkErrorCounter as declared in nvml/nvml.h\ntype NvLinkErrorCounter int32\n\n// NvLinkErrorCounter enumeration from nvml/nvml.h\nconst (\n\tNVLINK_ERROR_DL_REPLAY   NvLinkErrorCounter = iota\n\tNVLINK_ERROR_DL_RECOVERY NvLinkErrorCounter = 1\n\tNVLINK_ERROR_DL_CRC_FLIT NvLinkErrorCounter = 2\n\tNVLINK_ERROR_DL_CRC_DATA NvLinkErrorCounter = 3\n\tNVLINK_ERROR_DL_ECC_DATA NvLinkErrorCounter = 4\n\tNVLINK_ERROR_COUNT       NvLinkErrorCounter = 5\n)\n\n// IntNvLinkDeviceType as declared in nvml/nvml.h\ntype IntNvLinkDeviceType int32\n\n// IntNvLinkDeviceType enumeration from nvml/nvml.h\nconst (\n\tNVLINK_DEVICE_TYPE_GPU     IntNvLinkDeviceType = iota\n\tNVLINK_DEVICE_TYPE_IBMNPU  IntNvLinkDeviceType = 1\n\tNVLINK_DEVICE_TYPE_SWITCH  IntNvLinkDeviceType = 2\n\tNVLINK_DEVICE_TYPE_UNKNOWN IntNvLinkDeviceType = 255\n)\n\n// GpuTopologyLevel as declared in nvml/nvml.h\ntype GpuTopologyLevel int32\n\n// GpuTopologyLevel enumeration from nvml/nvml.h\nconst (\n\tTOPOLOGY_INTERNAL   GpuTopologyLevel = iota\n\tTOPOLOGY_SINGLE     GpuTopologyLevel = 10\n\tTOPOLOGY_MULTIPLE   GpuTopologyLevel = 20\n\tTOPOLOGY_HOSTBRIDGE GpuTopologyLevel = 30\n\tTOPOLOGY_NODE       GpuTopologyLevel = 40\n\tTOPOLOGY_SYSTEM     GpuTopologyLevel = 50\n)\n\n// GpuP2PStatus as declared in nvml/nvml.h\ntype GpuP2PStatus int32\n\n// GpuP2PStatus enumeration from nvml/nvml.h\nconst (\n\tP2P_STATUS_OK                         GpuP2PStatus = iota\n\tP2P_STATUS_CHIPSET_NOT_SUPPORED       GpuP2PStatus = 1\n\tP2P_STATUS_GPU_NOT_SUPPORTED          GpuP2PStatus = 2\n\tP2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED GpuP2PStatus = 3\n\tP2P_STATUS_DISABLED_BY_REGKEY         GpuP2PStatus = 4\n\tP2P_STATUS_NOT_SUPPORTED              GpuP2PStatus = 5\n\tP2P_STATUS_UNKNOWN                    GpuP2PStatus = 6\n)\n\n// GpuP2PCapsIndex as declared in nvml/nvml.h\ntype GpuP2PCapsIndex int32\n\n// GpuP2PCapsIndex enumeration from nvml/nvml.h\nconst (\n\tP2P_CAPS_INDEX_READ    GpuP2PCapsIndex = iota\n\tP2P_CAPS_INDEX_WRITE   GpuP2PCapsIndex = 1\n\tP2P_CAPS_INDEX_NVLINK  GpuP2PCapsIndex = 2\n\tP2P_CAPS_INDEX_ATOMICS GpuP2PCapsIndex = 3\n\tP2P_CAPS_INDEX_PROP    GpuP2PCapsIndex = 4\n\tP2P_CAPS_INDEX_UNKNOWN GpuP2PCapsIndex = 5\n)\n\n// SamplingType as declared in nvml/nvml.h\ntype SamplingType int32\n\n// SamplingType enumeration from nvml/nvml.h\nconst (\n\tTOTAL_POWER_SAMPLES        SamplingType = iota\n\tGPU_UTILIZATION_SAMPLES    SamplingType = 1\n\tMEMORY_UTILIZATION_SAMPLES SamplingType = 2\n\tENC_UTILIZATION_SAMPLES    SamplingType = 3\n\tDEC_UTILIZATION_SAMPLES    SamplingType = 4\n\tPROCESSOR_CLK_SAMPLES      SamplingType = 5\n\tMEMORY_CLK_SAMPLES         SamplingType = 6\n\tSAMPLINGTYPE_COUNT         SamplingType = 7\n)\n\n// PcieUtilCounter as declared in nvml/nvml.h\ntype PcieUtilCounter int32\n\n// PcieUtilCounter enumeration from nvml/nvml.h\nconst (\n\tPCIE_UTIL_TX_BYTES PcieUtilCounter = iota\n\tPCIE_UTIL_RX_BYTES PcieUtilCounter = 1\n\tPCIE_UTIL_COUNT    PcieUtilCounter = 2\n)\n\n// ValueType as declared in nvml/nvml.h\ntype ValueType int32\n\n// ValueType enumeration from nvml/nvml.h\nconst (\n\tVALUE_TYPE_DOUBLE             ValueType = iota\n\tVALUE_TYPE_UNSIGNED_INT       ValueType = 1\n\tVALUE_TYPE_UNSIGNED_LONG      ValueType = 2\n\tVALUE_TYPE_UNSIGNED_LONG_LONG ValueType = 3\n\tVALUE_TYPE_SIGNED_LONG_LONG   ValueType = 4\n\tVALUE_TYPE_COUNT              ValueType = 5\n)\n\n// PerfPolicyType as declared in nvml/nvml.h\ntype PerfPolicyType int32\n\n// PerfPolicyType enumeration from nvml/nvml.h\nconst (\n\tPERF_POLICY_POWER             PerfPolicyType = iota\n\tPERF_POLICY_THERMAL           PerfPolicyType = 1\n\tPERF_POLICY_SYNC_BOOST        PerfPolicyType = 2\n\tPERF_POLICY_BOARD_LIMIT       PerfPolicyType = 3\n\tPERF_POLICY_LOW_UTILIZATION   PerfPolicyType = 4\n\tPERF_POLICY_RELIABILITY       PerfPolicyType = 5\n\tPERF_POLICY_TOTAL_APP_CLOCKS  PerfPolicyType = 10\n\tPERF_POLICY_TOTAL_BASE_CLOCKS PerfPolicyType = 11\n\tPERF_POLICY_COUNT             PerfPolicyType = 12\n)\n\n// EnableState as declared in nvml/nvml.h\ntype EnableState int32\n\n// EnableState enumeration from nvml/nvml.h\nconst (\n\tFEATURE_DISABLED EnableState = iota\n\tFEATURE_ENABLED  EnableState = 1\n)\n\n// BrandType as declared in nvml/nvml.h\ntype BrandType int32\n\n// BrandType enumeration from nvml/nvml.h\nconst (\n\tBRAND_UNKNOWN             BrandType = iota\n\tBRAND_QUADRO              BrandType = 1\n\tBRAND_TESLA               BrandType = 2\n\tBRAND_NVS                 BrandType = 3\n\tBRAND_GRID                BrandType = 4\n\tBRAND_GEFORCE             BrandType = 5\n\tBRAND_TITAN               BrandType = 6\n\tBRAND_NVIDIA_VAPPS        BrandType = 7\n\tBRAND_NVIDIA_VPC          BrandType = 8\n\tBRAND_NVIDIA_VCS          BrandType = 9\n\tBRAND_NVIDIA_VWS          BrandType = 10\n\tBRAND_NVIDIA_CLOUD_GAMING BrandType = 11\n\tBRAND_NVIDIA_VGAMING      BrandType = 11\n\tBRAND_QUADRO_RTX          BrandType = 12\n\tBRAND_NVIDIA_RTX          BrandType = 13\n\tBRAND_NVIDIA              BrandType = 14\n\tBRAND_GEFORCE_RTX         BrandType = 15\n\tBRAND_TITAN_RTX           BrandType = 16\n\tBRAND_COUNT               BrandType = 17\n)\n\n// TemperatureThresholds as declared in nvml/nvml.h\ntype TemperatureThresholds int32\n\n// TemperatureThresholds enumeration from nvml/nvml.h\nconst (\n\tTEMPERATURE_THRESHOLD_SHUTDOWN      TemperatureThresholds = iota\n\tTEMPERATURE_THRESHOLD_SLOWDOWN      TemperatureThresholds = 1\n\tTEMPERATURE_THRESHOLD_MEM_MAX       TemperatureThresholds = 2\n\tTEMPERATURE_THRESHOLD_GPU_MAX       TemperatureThresholds = 3\n\tTEMPERATURE_THRESHOLD_ACOUSTIC_MIN  TemperatureThresholds = 4\n\tTEMPERATURE_THRESHOLD_ACOUSTIC_CURR TemperatureThresholds = 5\n\tTEMPERATURE_THRESHOLD_ACOUSTIC_MAX  TemperatureThresholds = 6\n\tTEMPERATURE_THRESHOLD_COUNT         TemperatureThresholds = 7\n)\n\n// TemperatureSensors as declared in nvml/nvml.h\ntype TemperatureSensors int32\n\n// TemperatureSensors enumeration from nvml/nvml.h\nconst (\n\tTEMPERATURE_GPU   TemperatureSensors = iota\n\tTEMPERATURE_COUNT TemperatureSensors = 1\n)\n\n// ComputeMode as declared in nvml/nvml.h\ntype ComputeMode int32\n\n// ComputeMode enumeration from nvml/nvml.h\nconst (\n\tCOMPUTEMODE_DEFAULT           ComputeMode = iota\n\tCOMPUTEMODE_EXCLUSIVE_THREAD  ComputeMode = 1\n\tCOMPUTEMODE_PROHIBITED        ComputeMode = 2\n\tCOMPUTEMODE_EXCLUSIVE_PROCESS ComputeMode = 3\n\tCOMPUTEMODE_COUNT             ComputeMode = 4\n)\n\n// MemoryErrorType as declared in nvml/nvml.h\ntype MemoryErrorType int32\n\n// MemoryErrorType enumeration from nvml/nvml.h\nconst (\n\tMEMORY_ERROR_TYPE_CORRECTED   MemoryErrorType = iota\n\tMEMORY_ERROR_TYPE_UNCORRECTED MemoryErrorType = 1\n\tMEMORY_ERROR_TYPE_COUNT       MemoryErrorType = 2\n)\n\n// EccCounterType as declared in nvml/nvml.h\ntype EccCounterType int32\n\n// EccCounterType enumeration from nvml/nvml.h\nconst (\n\tVOLATILE_ECC           EccCounterType = iota\n\tAGGREGATE_ECC          EccCounterType = 1\n\tECC_COUNTER_TYPE_COUNT EccCounterType = 2\n)\n\n// ClockType as declared in nvml/nvml.h\ntype ClockType int32\n\n// ClockType enumeration from nvml/nvml.h\nconst (\n\tCLOCK_GRAPHICS ClockType = iota\n\tCLOCK_SM       ClockType = 1\n\tCLOCK_MEM      ClockType = 2\n\tCLOCK_VIDEO    ClockType = 3\n\tCLOCK_COUNT    ClockType = 4\n)\n\n// ClockId as declared in nvml/nvml.h\ntype ClockId int32\n\n// ClockId enumeration from nvml/nvml.h\nconst (\n\tCLOCK_ID_CURRENT            ClockId = iota\n\tCLOCK_ID_APP_CLOCK_TARGET   ClockId = 1\n\tCLOCK_ID_APP_CLOCK_DEFAULT  ClockId = 2\n\tCLOCK_ID_CUSTOMER_BOOST_MAX ClockId = 3\n\tCLOCK_ID_COUNT              ClockId = 4\n)\n\n// DriverModel as declared in nvml/nvml.h\ntype DriverModel int32\n\n// DriverModel enumeration from nvml/nvml.h\nconst (\n\tDRIVER_WDDM DriverModel = iota\n\tDRIVER_WDM  DriverModel = 1\n)\n\n// Pstates as declared in nvml/nvml.h\ntype Pstates int32\n\n// Pstates enumeration from nvml/nvml.h\nconst (\n\tPSTATE_0       Pstates = iota\n\tPSTATE_1       Pstates = 1\n\tPSTATE_2       Pstates = 2\n\tPSTATE_3       Pstates = 3\n\tPSTATE_4       Pstates = 4\n\tPSTATE_5       Pstates = 5\n\tPSTATE_6       Pstates = 6\n\tPSTATE_7       Pstates = 7\n\tPSTATE_8       Pstates = 8\n\tPSTATE_9       Pstates = 9\n\tPSTATE_10      Pstates = 10\n\tPSTATE_11      Pstates = 11\n\tPSTATE_12      Pstates = 12\n\tPSTATE_13      Pstates = 13\n\tPSTATE_14      Pstates = 14\n\tPSTATE_15      Pstates = 15\n\tPSTATE_UNKNOWN Pstates = 32\n)\n\n// GpuOperationMode as declared in nvml/nvml.h\ntype GpuOperationMode int32\n\n// GpuOperationMode enumeration from nvml/nvml.h\nconst (\n\tGOM_ALL_ON  GpuOperationMode = iota\n\tGOM_COMPUTE GpuOperationMode = 1\n\tGOM_LOW_DP  GpuOperationMode = 2\n)\n\n// InforomObject as declared in nvml/nvml.h\ntype InforomObject int32\n\n// InforomObject enumeration from nvml/nvml.h\nconst (\n\tINFOROM_OEM   InforomObject = iota\n\tINFOROM_ECC   InforomObject = 1\n\tINFOROM_POWER InforomObject = 2\n\tINFOROM_COUNT InforomObject = 3\n)\n\n// Return as declared in nvml/nvml.h\ntype Return int32\n\n// Return enumeration from nvml/nvml.h\nconst (\n\tSUCCESS                         Return = iota\n\tERROR_UNINITIALIZED             Return = 1\n\tERROR_INVALID_ARGUMENT          Return = 2\n\tERROR_NOT_SUPPORTED             Return = 3\n\tERROR_NO_PERMISSION             Return = 4\n\tERROR_ALREADY_INITIALIZED       Return = 5\n\tERROR_NOT_FOUND                 Return = 6\n\tERROR_INSUFFICIENT_SIZE         Return = 7\n\tERROR_INSUFFICIENT_POWER        Return = 8\n\tERROR_DRIVER_NOT_LOADED         Return = 9\n\tERROR_TIMEOUT                   Return = 10\n\tERROR_IRQ_ISSUE                 Return = 11\n\tERROR_LIBRARY_NOT_FOUND         Return = 12\n\tERROR_FUNCTION_NOT_FOUND        Return = 13\n\tERROR_CORRUPTED_INFOROM         Return = 14\n\tERROR_GPU_IS_LOST               Return = 15\n\tERROR_RESET_REQUIRED            Return = 16\n\tERROR_OPERATING_SYSTEM          Return = 17\n\tERROR_LIB_RM_VERSION_MISMATCH   Return = 18\n\tERROR_IN_USE                    Return = 19\n\tERROR_MEMORY                    Return = 20\n\tERROR_NO_DATA                   Return = 21\n\tERROR_VGPU_ECC_NOT_SUPPORTED    Return = 22\n\tERROR_INSUFFICIENT_RESOURCES    Return = 23\n\tERROR_FREQ_NOT_SUPPORTED        Return = 24\n\tERROR_ARGUMENT_VERSION_MISMATCH Return = 25\n\tERROR_DEPRECATED                Return = 26\n\tERROR_UNKNOWN                   Return = 999\n)\n\n// MemoryLocation as declared in nvml/nvml.h\ntype MemoryLocation int32\n\n// MemoryLocation enumeration from nvml/nvml.h\nconst (\n\tMEMORY_LOCATION_L1_CACHE       MemoryLocation = iota\n\tMEMORY_LOCATION_L2_CACHE       MemoryLocation = 1\n\tMEMORY_LOCATION_DRAM           MemoryLocation = 2\n\tMEMORY_LOCATION_DEVICE_MEMORY  MemoryLocation = 2\n\tMEMORY_LOCATION_REGISTER_FILE  MemoryLocation = 3\n\tMEMORY_LOCATION_TEXTURE_MEMORY MemoryLocation = 4\n\tMEMORY_LOCATION_TEXTURE_SHM    MemoryLocation = 5\n\tMEMORY_LOCATION_CBU            MemoryLocation = 6\n\tMEMORY_LOCATION_SRAM           MemoryLocation = 7\n\tMEMORY_LOCATION_COUNT          MemoryLocation = 8\n)\n\n// PageRetirementCause as declared in nvml/nvml.h\ntype PageRetirementCause int32\n\n// PageRetirementCause enumeration from nvml/nvml.h\nconst (\n\tPAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS PageRetirementCause = iota\n\tPAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR           PageRetirementCause = 1\n\tPAGE_RETIREMENT_CAUSE_COUNT                          PageRetirementCause = 2\n)\n\n// RestrictedAPI as declared in nvml/nvml.h\ntype RestrictedAPI int32\n\n// RestrictedAPI enumeration from nvml/nvml.h\nconst (\n\tRESTRICTED_API_SET_APPLICATION_CLOCKS  RestrictedAPI = iota\n\tRESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS RestrictedAPI = 1\n\tRESTRICTED_API_COUNT                   RestrictedAPI = 2\n)\n\n// GpuVirtualizationMode as declared in nvml/nvml.h\ntype GpuVirtualizationMode int32\n\n// GpuVirtualizationMode enumeration from nvml/nvml.h\nconst (\n\tGPU_VIRTUALIZATION_MODE_NONE        GpuVirtualizationMode = iota\n\tGPU_VIRTUALIZATION_MODE_PASSTHROUGH GpuVirtualizationMode = 1\n\tGPU_VIRTUALIZATION_MODE_VGPU        GpuVirtualizationMode = 2\n\tGPU_VIRTUALIZATION_MODE_HOST_VGPU   GpuVirtualizationMode = 3\n\tGPU_VIRTUALIZATION_MODE_HOST_VSGA   GpuVirtualizationMode = 4\n)\n\n// HostVgpuMode as declared in nvml/nvml.h\ntype HostVgpuMode int32\n\n// HostVgpuMode enumeration from nvml/nvml.h\nconst (\n\tHOST_VGPU_MODE_NON_SRIOV HostVgpuMode = iota\n\tHOST_VGPU_MODE_SRIOV     HostVgpuMode = 1\n)\n\n// VgpuVmIdType as declared in nvml/nvml.h\ntype VgpuVmIdType int32\n\n// VgpuVmIdType enumeration from nvml/nvml.h\nconst (\n\tVGPU_VM_ID_DOMAIN_ID VgpuVmIdType = iota\n\tVGPU_VM_ID_UUID      VgpuVmIdType = 1\n)\n\n// VgpuGuestInfoState as declared in nvml/nvml.h\ntype VgpuGuestInfoState int32\n\n// VgpuGuestInfoState enumeration from nvml/nvml.h\nconst (\n\tVGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED VgpuGuestInfoState = iota\n\tVGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED   VgpuGuestInfoState = 1\n)\n\n// VgpuCapability as declared in nvml/nvml.h\ntype VgpuCapability int32\n\n// VgpuCapability enumeration from nvml/nvml.h\nconst (\n\tVGPU_CAP_NVLINK_P2P           VgpuCapability = iota\n\tVGPU_CAP_GPUDIRECT            VgpuCapability = 1\n\tVGPU_CAP_MULTI_VGPU_EXCLUSIVE VgpuCapability = 2\n\tVGPU_CAP_EXCLUSIVE_TYPE       VgpuCapability = 3\n\tVGPU_CAP_EXCLUSIVE_SIZE       VgpuCapability = 4\n\tVGPU_CAP_COUNT                VgpuCapability = 5\n)\n\n// VgpuDriverCapability as declared in nvml/nvml.h\ntype VgpuDriverCapability int32\n\n// VgpuDriverCapability enumeration from nvml/nvml.h\nconst (\n\tVGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU VgpuDriverCapability = iota\n\tVGPU_DRIVER_CAP_COUNT                    VgpuDriverCapability = 1\n)\n\n// DeviceVgpuCapability as declared in nvml/nvml.h\ntype DeviceVgpuCapability int32\n\n// DeviceVgpuCapability enumeration from nvml/nvml.h\nconst (\n\tDEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU            DeviceVgpuCapability = iota\n\tDEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES DeviceVgpuCapability = 1\n\tDEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES    DeviceVgpuCapability = 2\n\tDEVICE_VGPU_CAP_COUNT                            DeviceVgpuCapability = 3\n)\n\n// GpuUtilizationDomainId as declared in nvml/nvml.h\ntype GpuUtilizationDomainId int32\n\n// GpuUtilizationDomainId enumeration from nvml/nvml.h\nconst (\n\tGPU_UTILIZATION_DOMAIN_GPU GpuUtilizationDomainId = iota\n\tGPU_UTILIZATION_DOMAIN_FB  GpuUtilizationDomainId = 1\n\tGPU_UTILIZATION_DOMAIN_VID GpuUtilizationDomainId = 2\n\tGPU_UTILIZATION_DOMAIN_BUS GpuUtilizationDomainId = 3\n)\n\n// FanState as declared in nvml/nvml.h\ntype FanState int32\n\n// FanState enumeration from nvml/nvml.h\nconst (\n\tFAN_NORMAL FanState = iota\n\tFAN_FAILED FanState = 1\n)\n\n// LedColor as declared in nvml/nvml.h\ntype LedColor int32\n\n// LedColor enumeration from nvml/nvml.h\nconst (\n\tLED_COLOR_GREEN LedColor = iota\n\tLED_COLOR_AMBER LedColor = 1\n)\n\n// EncoderType as declared in nvml/nvml.h\ntype EncoderType int32\n\n// EncoderType enumeration from nvml/nvml.h\nconst (\n\tENCODER_QUERY_H264 EncoderType = iota\n\tENCODER_QUERY_HEVC EncoderType = 1\n)\n\n// FBCSessionType as declared in nvml/nvml.h\ntype FBCSessionType int32\n\n// FBCSessionType enumeration from nvml/nvml.h\nconst (\n\tFBC_SESSION_TYPE_UNKNOWN FBCSessionType = iota\n\tFBC_SESSION_TYPE_TOSYS   FBCSessionType = 1\n\tFBC_SESSION_TYPE_CUDA    FBCSessionType = 2\n\tFBC_SESSION_TYPE_VID     FBCSessionType = 3\n\tFBC_SESSION_TYPE_HWENC   FBCSessionType = 4\n)\n\n// DetachGpuState as declared in nvml/nvml.h\ntype DetachGpuState int32\n\n// DetachGpuState enumeration from nvml/nvml.h\nconst (\n\tDETACH_GPU_KEEP   DetachGpuState = iota\n\tDETACH_GPU_REMOVE DetachGpuState = 1\n)\n\n// PcieLinkState as declared in nvml/nvml.h\ntype PcieLinkState int32\n\n// PcieLinkState enumeration from nvml/nvml.h\nconst (\n\tPCIE_LINK_KEEP      PcieLinkState = iota\n\tPCIE_LINK_SHUT_DOWN PcieLinkState = 1\n)\n\n// ClockLimitId as declared in nvml/nvml.h\ntype ClockLimitId int32\n\n// ClockLimitId enumeration from nvml/nvml.h\nconst (\n\tCLOCK_LIMIT_ID_RANGE_START ClockLimitId = -256\n\tCLOCK_LIMIT_ID_TDP         ClockLimitId = -255\n\tCLOCK_LIMIT_ID_UNLIMITED   ClockLimitId = -254\n)\n\n// VgpuVmCompatibility as declared in nvml/nvml.h\ntype VgpuVmCompatibility int32\n\n// VgpuVmCompatibility enumeration from nvml/nvml.h\nconst (\n\tVGPU_VM_COMPATIBILITY_NONE      VgpuVmCompatibility = iota\n\tVGPU_VM_COMPATIBILITY_COLD      VgpuVmCompatibility = 1\n\tVGPU_VM_COMPATIBILITY_HIBERNATE VgpuVmCompatibility = 2\n\tVGPU_VM_COMPATIBILITY_SLEEP     VgpuVmCompatibility = 4\n\tVGPU_VM_COMPATIBILITY_LIVE      VgpuVmCompatibility = 8\n)\n\n// VgpuPgpuCompatibilityLimitCode as declared in nvml/nvml.h\ntype VgpuPgpuCompatibilityLimitCode int32\n\n// VgpuPgpuCompatibilityLimitCode enumeration from nvml/nvml.h\nconst (\n\tVGPU_COMPATIBILITY_LIMIT_NONE         VgpuPgpuCompatibilityLimitCode = iota\n\tVGPU_COMPATIBILITY_LIMIT_HOST_DRIVER  VgpuPgpuCompatibilityLimitCode = 1\n\tVGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER VgpuPgpuCompatibilityLimitCode = 2\n\tVGPU_COMPATIBILITY_LIMIT_GPU          VgpuPgpuCompatibilityLimitCode = 4\n\tVGPU_COMPATIBILITY_LIMIT_OTHER        VgpuPgpuCompatibilityLimitCode = -2147483648\n)\n\n// ThermalTarget as declared in nvml/nvml.h\ntype ThermalTarget int32\n\n// ThermalTarget enumeration from nvml/nvml.h\nconst (\n\tTHERMAL_TARGET_NONE         ThermalTarget = iota\n\tTHERMAL_TARGET_GPU          ThermalTarget = 1\n\tTHERMAL_TARGET_MEMORY       ThermalTarget = 2\n\tTHERMAL_TARGET_POWER_SUPPLY ThermalTarget = 4\n\tTHERMAL_TARGET_BOARD        ThermalTarget = 8\n\tTHERMAL_TARGET_VCD_BOARD    ThermalTarget = 9\n\tTHERMAL_TARGET_VCD_INLET    ThermalTarget = 10\n\tTHERMAL_TARGET_VCD_OUTLET   ThermalTarget = 11\n\tTHERMAL_TARGET_ALL          ThermalTarget = 15\n\tTHERMAL_TARGET_UNKNOWN      ThermalTarget = -1\n)\n\n// ThermalController as declared in nvml/nvml.h\ntype ThermalController int32\n\n// ThermalController enumeration from nvml/nvml.h\nconst (\n\tTHERMAL_CONTROLLER_NONE            ThermalController = iota\n\tTHERMAL_CONTROLLER_GPU_INTERNAL    ThermalController = 1\n\tTHERMAL_CONTROLLER_ADM1032         ThermalController = 2\n\tTHERMAL_CONTROLLER_ADT7461         ThermalController = 3\n\tTHERMAL_CONTROLLER_MAX6649         ThermalController = 4\n\tTHERMAL_CONTROLLER_MAX1617         ThermalController = 5\n\tTHERMAL_CONTROLLER_LM99            ThermalController = 6\n\tTHERMAL_CONTROLLER_LM89            ThermalController = 7\n\tTHERMAL_CONTROLLER_LM64            ThermalController = 8\n\tTHERMAL_CONTROLLER_G781            ThermalController = 9\n\tTHERMAL_CONTROLLER_ADT7473         ThermalController = 10\n\tTHERMAL_CONTROLLER_SBMAX6649       ThermalController = 11\n\tTHERMAL_CONTROLLER_VBIOSEVT        ThermalController = 12\n\tTHERMAL_CONTROLLER_OS              ThermalController = 13\n\tTHERMAL_CONTROLLER_NVSYSCON_CANOAS ThermalController = 14\n\tTHERMAL_CONTROLLER_NVSYSCON_E551   ThermalController = 15\n\tTHERMAL_CONTROLLER_MAX6649R        ThermalController = 16\n\tTHERMAL_CONTROLLER_ADT7473S        ThermalController = 17\n\tTHERMAL_CONTROLLER_UNKNOWN         ThermalController = -1\n)\n\n// GridLicenseFeatureCode as declared in nvml/nvml.h\ntype GridLicenseFeatureCode int32\n\n// GridLicenseFeatureCode enumeration from nvml/nvml.h\nconst (\n\tGRID_LICENSE_FEATURE_CODE_UNKNOWN      GridLicenseFeatureCode = iota\n\tGRID_LICENSE_FEATURE_CODE_VGPU         GridLicenseFeatureCode = 1\n\tGRID_LICENSE_FEATURE_CODE_NVIDIA_RTX   GridLicenseFeatureCode = 2\n\tGRID_LICENSE_FEATURE_CODE_VWORKSTATION GridLicenseFeatureCode = 2\n\tGRID_LICENSE_FEATURE_CODE_GAMING       GridLicenseFeatureCode = 3\n\tGRID_LICENSE_FEATURE_CODE_COMPUTE      GridLicenseFeatureCode = 4\n)\n\n// GpmMetricId as declared in nvml/nvml.h\ntype GpmMetricId int32\n\n// GpmMetricId enumeration from nvml/nvml.h\nconst (\n\tGPM_METRIC_GRAPHICS_UTIL           GpmMetricId = 1\n\tGPM_METRIC_SM_UTIL                 GpmMetricId = 2\n\tGPM_METRIC_SM_OCCUPANCY            GpmMetricId = 3\n\tGPM_METRIC_INTEGER_UTIL            GpmMetricId = 4\n\tGPM_METRIC_ANY_TENSOR_UTIL         GpmMetricId = 5\n\tGPM_METRIC_DFMA_TENSOR_UTIL        GpmMetricId = 6\n\tGPM_METRIC_HMMA_TENSOR_UTIL        GpmMetricId = 7\n\tGPM_METRIC_IMMA_TENSOR_UTIL        GpmMetricId = 9\n\tGPM_METRIC_DRAM_BW_UTIL            GpmMetricId = 10\n\tGPM_METRIC_FP64_UTIL               GpmMetricId = 11\n\tGPM_METRIC_FP32_UTIL               GpmMetricId = 12\n\tGPM_METRIC_FP16_UTIL               GpmMetricId = 13\n\tGPM_METRIC_PCIE_TX_PER_SEC         GpmMetricId = 20\n\tGPM_METRIC_PCIE_RX_PER_SEC         GpmMetricId = 21\n\tGPM_METRIC_NVDEC_0_UTIL            GpmMetricId = 30\n\tGPM_METRIC_NVDEC_1_UTIL            GpmMetricId = 31\n\tGPM_METRIC_NVDEC_2_UTIL            GpmMetricId = 32\n\tGPM_METRIC_NVDEC_3_UTIL            GpmMetricId = 33\n\tGPM_METRIC_NVDEC_4_UTIL            GpmMetricId = 34\n\tGPM_METRIC_NVDEC_5_UTIL            GpmMetricId = 35\n\tGPM_METRIC_NVDEC_6_UTIL            GpmMetricId = 36\n\tGPM_METRIC_NVDEC_7_UTIL            GpmMetricId = 37\n\tGPM_METRIC_NVJPG_0_UTIL            GpmMetricId = 40\n\tGPM_METRIC_NVJPG_1_UTIL            GpmMetricId = 41\n\tGPM_METRIC_NVJPG_2_UTIL            GpmMetricId = 42\n\tGPM_METRIC_NVJPG_3_UTIL            GpmMetricId = 43\n\tGPM_METRIC_NVJPG_4_UTIL            GpmMetricId = 44\n\tGPM_METRIC_NVJPG_5_UTIL            GpmMetricId = 45\n\tGPM_METRIC_NVJPG_6_UTIL            GpmMetricId = 46\n\tGPM_METRIC_NVJPG_7_UTIL            GpmMetricId = 47\n\tGPM_METRIC_NVOFA_0_UTIL            GpmMetricId = 50\n\tGPM_METRIC_NVLINK_TOTAL_RX_PER_SEC GpmMetricId = 60\n\tGPM_METRIC_NVLINK_TOTAL_TX_PER_SEC GpmMetricId = 61\n\tGPM_METRIC_NVLINK_L0_RX_PER_SEC    GpmMetricId = 62\n\tGPM_METRIC_NVLINK_L0_TX_PER_SEC    GpmMetricId = 63\n\tGPM_METRIC_NVLINK_L1_RX_PER_SEC    GpmMetricId = 64\n\tGPM_METRIC_NVLINK_L1_TX_PER_SEC    GpmMetricId = 65\n\tGPM_METRIC_NVLINK_L2_RX_PER_SEC    GpmMetricId = 66\n\tGPM_METRIC_NVLINK_L2_TX_PER_SEC    GpmMetricId = 67\n\tGPM_METRIC_NVLINK_L3_RX_PER_SEC    GpmMetricId = 68\n\tGPM_METRIC_NVLINK_L3_TX_PER_SEC    GpmMetricId = 69\n\tGPM_METRIC_NVLINK_L4_RX_PER_SEC    GpmMetricId = 70\n\tGPM_METRIC_NVLINK_L4_TX_PER_SEC    GpmMetricId = 71\n\tGPM_METRIC_NVLINK_L5_RX_PER_SEC    GpmMetricId = 72\n\tGPM_METRIC_NVLINK_L5_TX_PER_SEC    GpmMetricId = 73\n\tGPM_METRIC_NVLINK_L6_RX_PER_SEC    GpmMetricId = 74\n\tGPM_METRIC_NVLINK_L6_TX_PER_SEC    GpmMetricId = 75\n\tGPM_METRIC_NVLINK_L7_RX_PER_SEC    GpmMetricId = 76\n\tGPM_METRIC_NVLINK_L7_TX_PER_SEC    GpmMetricId = 77\n\tGPM_METRIC_NVLINK_L8_RX_PER_SEC    GpmMetricId = 78\n\tGPM_METRIC_NVLINK_L8_TX_PER_SEC    GpmMetricId = 79\n\tGPM_METRIC_NVLINK_L9_RX_PER_SEC    GpmMetricId = 80\n\tGPM_METRIC_NVLINK_L9_TX_PER_SEC    GpmMetricId = 81\n\tGPM_METRIC_NVLINK_L10_RX_PER_SEC   GpmMetricId = 82\n\tGPM_METRIC_NVLINK_L10_TX_PER_SEC   GpmMetricId = 83\n\tGPM_METRIC_NVLINK_L11_RX_PER_SEC   GpmMetricId = 84\n\tGPM_METRIC_NVLINK_L11_TX_PER_SEC   GpmMetricId = 85\n\tGPM_METRIC_NVLINK_L12_RX_PER_SEC   GpmMetricId = 86\n\tGPM_METRIC_NVLINK_L12_TX_PER_SEC   GpmMetricId = 87\n\tGPM_METRIC_NVLINK_L13_RX_PER_SEC   GpmMetricId = 88\n\tGPM_METRIC_NVLINK_L13_TX_PER_SEC   GpmMetricId = 89\n\tGPM_METRIC_NVLINK_L14_RX_PER_SEC   GpmMetricId = 90\n\tGPM_METRIC_NVLINK_L14_TX_PER_SEC   GpmMetricId = 91\n\tGPM_METRIC_NVLINK_L15_RX_PER_SEC   GpmMetricId = 92\n\tGPM_METRIC_NVLINK_L15_TX_PER_SEC   GpmMetricId = 93\n\tGPM_METRIC_NVLINK_L16_RX_PER_SEC   GpmMetricId = 94\n\tGPM_METRIC_NVLINK_L16_TX_PER_SEC   GpmMetricId = 95\n\tGPM_METRIC_NVLINK_L17_RX_PER_SEC   GpmMetricId = 96\n\tGPM_METRIC_NVLINK_L17_TX_PER_SEC   GpmMetricId = 97\n\tGPM_METRIC_MAX                     GpmMetricId = 98\n)\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const_gen.go",
    "content": "// Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\nimport (\n\t\"reflect\"\n)\n\nconst (\n\tSYSTEM_PROCESS_NAME_BUFFER_SIZE = 256\n)\n\nfunc STRUCT_VERSION(data interface{}, version uint32) uint32 {\n\treturn uint32(uint32(reflect.Indirect(reflect.ValueOf(data)).Type().Size()) | (version << uint32(24)))\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\n// EccBitType\ntype EccBitType = MemoryErrorType\n\n// nvml.DeviceGetCount()\nfunc DeviceGetCount() (int, Return) {\n\tvar DeviceCount uint32\n\tret := nvmlDeviceGetCount(&DeviceCount)\n\treturn int(DeviceCount), ret\n}\n\n// nvml.DeviceGetHandleByIndex()\nfunc DeviceGetHandleByIndex(Index int) (Device, Return) {\n\tvar Device Device\n\tret := nvmlDeviceGetHandleByIndex(uint32(Index), &Device)\n\treturn Device, ret\n}\n\n// nvml.DeviceGetHandleBySerial()\nfunc DeviceGetHandleBySerial(Serial string) (Device, Return) {\n\tvar Device Device\n\tret := nvmlDeviceGetHandleBySerial(Serial+string(rune(0)), &Device)\n\treturn Device, ret\n}\n\n// nvml.DeviceGetHandleByUUID()\nfunc DeviceGetHandleByUUID(Uuid string) (Device, Return) {\n\tvar Device Device\n\tret := nvmlDeviceGetHandleByUUID(Uuid+string(rune(0)), &Device)\n\treturn Device, ret\n}\n\n// nvml.DeviceGetHandleByPciBusId()\nfunc DeviceGetHandleByPciBusId(PciBusId string) (Device, Return) {\n\tvar Device Device\n\tret := nvmlDeviceGetHandleByPciBusId(PciBusId+string(rune(0)), &Device)\n\treturn Device, ret\n}\n\n// nvml.DeviceGetName()\nfunc DeviceGetName(Device Device) (string, Return) {\n\tName := make([]byte, DEVICE_NAME_V2_BUFFER_SIZE)\n\tret := nvmlDeviceGetName(Device, &Name[0], DEVICE_NAME_V2_BUFFER_SIZE)\n\treturn string(Name[:clen(Name)]), ret\n}\n\nfunc (Device Device) GetName() (string, Return) {\n\treturn DeviceGetName(Device)\n}\n\n// nvml.DeviceGetBrand()\nfunc DeviceGetBrand(Device Device) (BrandType, Return) {\n\tvar _type BrandType\n\tret := nvmlDeviceGetBrand(Device, &_type)\n\treturn _type, ret\n}\n\nfunc (Device Device) GetBrand() (BrandType, Return) {\n\treturn DeviceGetBrand(Device)\n}\n\n// nvml.DeviceGetIndex()\nfunc DeviceGetIndex(Device Device) (int, Return) {\n\tvar Index uint32\n\tret := nvmlDeviceGetIndex(Device, &Index)\n\treturn int(Index), ret\n}\n\nfunc (Device Device) GetIndex() (int, Return) {\n\treturn DeviceGetIndex(Device)\n}\n\n// nvml.DeviceGetSerial()\nfunc DeviceGetSerial(Device Device) (string, Return) {\n\tSerial := make([]byte, DEVICE_SERIAL_BUFFER_SIZE)\n\tret := nvmlDeviceGetSerial(Device, &Serial[0], DEVICE_SERIAL_BUFFER_SIZE)\n\treturn string(Serial[:clen(Serial)]), ret\n}\n\nfunc (Device Device) GetSerial() (string, Return) {\n\treturn DeviceGetSerial(Device)\n}\n\n// nvml.DeviceGetCpuAffinity()\nfunc DeviceGetCpuAffinity(Device Device, NumCPUs int) ([]uint, Return) {\n\tCpuSetSize := uint32((NumCPUs-1)/int(unsafe.Sizeof(uint(0))) + 1)\n\tCpuSet := make([]uint, CpuSetSize)\n\tret := nvmlDeviceGetCpuAffinity(Device, CpuSetSize, &CpuSet[0])\n\treturn CpuSet, ret\n}\n\nfunc (Device Device) GetCpuAffinity(NumCPUs int) ([]uint, Return) {\n\treturn DeviceGetCpuAffinity(Device, NumCPUs)\n}\n\n// nvml.DeviceSetCpuAffinity()\nfunc DeviceSetCpuAffinity(Device Device) Return {\n\treturn nvmlDeviceSetCpuAffinity(Device)\n}\n\nfunc (Device Device) SetCpuAffinity() Return {\n\treturn DeviceSetCpuAffinity(Device)\n}\n\n// nvml.DeviceClearCpuAffinity()\nfunc DeviceClearCpuAffinity(Device Device) Return {\n\treturn nvmlDeviceClearCpuAffinity(Device)\n}\n\nfunc (Device Device) ClearCpuAffinity() Return {\n\treturn DeviceClearCpuAffinity(Device)\n}\n\n// nvml.DeviceGetMemoryAffinity()\nfunc DeviceGetMemoryAffinity(Device Device, NumNodes int, Scope AffinityScope) ([]uint, Return) {\n\tNodeSetSize := uint32((NumNodes-1)/int(unsafe.Sizeof(uint(0))) + 1)\n\tNodeSet := make([]uint, NodeSetSize)\n\tret := nvmlDeviceGetMemoryAffinity(Device, NodeSetSize, &NodeSet[0], Scope)\n\treturn NodeSet, ret\n}\n\nfunc (Device Device) GetMemoryAffinity(NumNodes int, Scope AffinityScope) ([]uint, Return) {\n\treturn DeviceGetMemoryAffinity(Device, NumNodes, Scope)\n}\n\n// nvml.DeviceGetCpuAffinityWithinScope()\nfunc DeviceGetCpuAffinityWithinScope(Device Device, NumCPUs int, Scope AffinityScope) ([]uint, Return) {\n\tCpuSetSize := uint32((NumCPUs-1)/int(unsafe.Sizeof(uint(0))) + 1)\n\tCpuSet := make([]uint, CpuSetSize)\n\tret := nvmlDeviceGetCpuAffinityWithinScope(Device, CpuSetSize, &CpuSet[0], Scope)\n\treturn CpuSet, ret\n}\n\nfunc (Device Device) GetCpuAffinityWithinScope(NumCPUs int, Scope AffinityScope) ([]uint, Return) {\n\treturn DeviceGetCpuAffinityWithinScope(Device, NumCPUs, Scope)\n}\n\n// nvml.DeviceGetTopologyCommonAncestor()\nfunc DeviceGetTopologyCommonAncestor(Device1 Device, Device2 Device) (GpuTopologyLevel, Return) {\n\tvar PathInfo GpuTopologyLevel\n\tret := nvmlDeviceGetTopologyCommonAncestor(Device1, Device2, &PathInfo)\n\treturn PathInfo, ret\n}\n\nfunc (Device1 Device) GetTopologyCommonAncestor(Device2 Device) (GpuTopologyLevel, Return) {\n\treturn DeviceGetTopologyCommonAncestor(Device1, Device2)\n}\n\n// nvml.DeviceGetTopologyNearestGpus()\nfunc DeviceGetTopologyNearestGpus(device Device, Level GpuTopologyLevel) ([]Device, Return) {\n\tvar Count uint32\n\tret := nvmlDeviceGetTopologyNearestGpus(device, Level, &Count, nil)\n\tif ret != SUCCESS {\n\t\treturn nil, ret\n\t}\n\tif Count == 0 {\n\t\treturn []Device{}, ret\n\t}\n\tDeviceArray := make([]Device, Count)\n\tret = nvmlDeviceGetTopologyNearestGpus(device, Level, &Count, &DeviceArray[0])\n\treturn DeviceArray, ret\n}\n\nfunc (Device Device) GetTopologyNearestGpus(Level GpuTopologyLevel) ([]Device, Return) {\n\treturn DeviceGetTopologyNearestGpus(Device, Level)\n}\n\n// nvml.DeviceGetP2PStatus()\nfunc DeviceGetP2PStatus(Device1 Device, Device2 Device, P2pIndex GpuP2PCapsIndex) (GpuP2PStatus, Return) {\n\tvar P2pStatus GpuP2PStatus\n\tret := nvmlDeviceGetP2PStatus(Device1, Device2, P2pIndex, &P2pStatus)\n\treturn P2pStatus, ret\n}\n\nfunc (Device1 Device) GetP2PStatus(Device2 Device, P2pIndex GpuP2PCapsIndex) (GpuP2PStatus, Return) {\n\treturn DeviceGetP2PStatus(Device1, Device2, P2pIndex)\n}\n\n// nvml.DeviceGetUUID()\nfunc DeviceGetUUID(Device Device) (string, Return) {\n\tUuid := make([]byte, DEVICE_UUID_V2_BUFFER_SIZE)\n\tret := nvmlDeviceGetUUID(Device, &Uuid[0], DEVICE_UUID_V2_BUFFER_SIZE)\n\treturn string(Uuid[:clen(Uuid)]), ret\n}\n\nfunc (Device Device) GetUUID() (string, Return) {\n\treturn DeviceGetUUID(Device)\n}\n\n// nvml.DeviceGetMinorNumber()\nfunc DeviceGetMinorNumber(Device Device) (int, Return) {\n\tvar MinorNumber uint32\n\tret := nvmlDeviceGetMinorNumber(Device, &MinorNumber)\n\treturn int(MinorNumber), ret\n}\n\nfunc (Device Device) GetMinorNumber() (int, Return) {\n\treturn DeviceGetMinorNumber(Device)\n}\n\n// nvml.DeviceGetBoardPartNumber()\nfunc DeviceGetBoardPartNumber(Device Device) (string, Return) {\n\tPartNumber := make([]byte, DEVICE_PART_NUMBER_BUFFER_SIZE)\n\tret := nvmlDeviceGetBoardPartNumber(Device, &PartNumber[0], DEVICE_PART_NUMBER_BUFFER_SIZE)\n\treturn string(PartNumber[:clen(PartNumber)]), ret\n}\n\nfunc (Device Device) GetBoardPartNumber() (string, Return) {\n\treturn DeviceGetBoardPartNumber(Device)\n}\n\n// nvml.DeviceGetInforomVersion()\nfunc DeviceGetInforomVersion(Device Device, Object InforomObject) (string, Return) {\n\tVersion := make([]byte, DEVICE_INFOROM_VERSION_BUFFER_SIZE)\n\tret := nvmlDeviceGetInforomVersion(Device, Object, &Version[0], DEVICE_INFOROM_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\nfunc (Device Device) GetInforomVersion(Object InforomObject) (string, Return) {\n\treturn DeviceGetInforomVersion(Device, Object)\n}\n\n// nvml.DeviceGetInforomImageVersion()\nfunc DeviceGetInforomImageVersion(Device Device) (string, Return) {\n\tVersion := make([]byte, DEVICE_INFOROM_VERSION_BUFFER_SIZE)\n\tret := nvmlDeviceGetInforomImageVersion(Device, &Version[0], DEVICE_INFOROM_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\nfunc (Device Device) GetInforomImageVersion() (string, Return) {\n\treturn DeviceGetInforomImageVersion(Device)\n}\n\n// nvml.DeviceGetInforomConfigurationChecksum()\nfunc DeviceGetInforomConfigurationChecksum(Device Device) (uint32, Return) {\n\tvar Checksum uint32\n\tret := nvmlDeviceGetInforomConfigurationChecksum(Device, &Checksum)\n\treturn Checksum, ret\n}\n\nfunc (Device Device) GetInforomConfigurationChecksum() (uint32, Return) {\n\treturn DeviceGetInforomConfigurationChecksum(Device)\n}\n\n// nvml.DeviceValidateInforom()\nfunc DeviceValidateInforom(Device Device) Return {\n\treturn nvmlDeviceValidateInforom(Device)\n}\n\nfunc (Device Device) ValidateInforom() Return {\n\treturn DeviceValidateInforom(Device)\n}\n\n// nvml.DeviceGetDisplayMode()\nfunc DeviceGetDisplayMode(Device Device) (EnableState, Return) {\n\tvar Display EnableState\n\tret := nvmlDeviceGetDisplayMode(Device, &Display)\n\treturn Display, ret\n}\n\nfunc (Device Device) GetDisplayMode() (EnableState, Return) {\n\treturn DeviceGetDisplayMode(Device)\n}\n\n// nvml.DeviceGetDisplayActive()\nfunc DeviceGetDisplayActive(Device Device) (EnableState, Return) {\n\tvar IsActive EnableState\n\tret := nvmlDeviceGetDisplayActive(Device, &IsActive)\n\treturn IsActive, ret\n}\n\nfunc (Device Device) GetDisplayActive() (EnableState, Return) {\n\treturn DeviceGetDisplayActive(Device)\n}\n\n// nvml.DeviceGetPersistenceMode()\nfunc DeviceGetPersistenceMode(Device Device) (EnableState, Return) {\n\tvar Mode EnableState\n\tret := nvmlDeviceGetPersistenceMode(Device, &Mode)\n\treturn Mode, ret\n}\n\nfunc (Device Device) GetPersistenceMode() (EnableState, Return) {\n\treturn DeviceGetPersistenceMode(Device)\n}\n\n// nvml.DeviceGetPciInfo()\nfunc DeviceGetPciInfo(Device Device) (PciInfo, Return) {\n\tvar Pci PciInfo\n\tret := nvmlDeviceGetPciInfo(Device, &Pci)\n\treturn Pci, ret\n}\n\nfunc (Device Device) GetPciInfo() (PciInfo, Return) {\n\treturn DeviceGetPciInfo(Device)\n}\n\n// nvml.DeviceGetMaxPcieLinkGeneration()\nfunc DeviceGetMaxPcieLinkGeneration(Device Device) (int, Return) {\n\tvar MaxLinkGen uint32\n\tret := nvmlDeviceGetMaxPcieLinkGeneration(Device, &MaxLinkGen)\n\treturn int(MaxLinkGen), ret\n}\n\nfunc (Device Device) GetMaxPcieLinkGeneration() (int, Return) {\n\treturn DeviceGetMaxPcieLinkGeneration(Device)\n}\n\n// nvml.DeviceGetMaxPcieLinkWidth()\nfunc DeviceGetMaxPcieLinkWidth(Device Device) (int, Return) {\n\tvar MaxLinkWidth uint32\n\tret := nvmlDeviceGetMaxPcieLinkWidth(Device, &MaxLinkWidth)\n\treturn int(MaxLinkWidth), ret\n}\n\nfunc (Device Device) GetMaxPcieLinkWidth() (int, Return) {\n\treturn DeviceGetMaxPcieLinkWidth(Device)\n}\n\n// nvml.DeviceGetCurrPcieLinkGeneration()\nfunc DeviceGetCurrPcieLinkGeneration(Device Device) (int, Return) {\n\tvar CurrLinkGen uint32\n\tret := nvmlDeviceGetCurrPcieLinkGeneration(Device, &CurrLinkGen)\n\treturn int(CurrLinkGen), ret\n}\n\nfunc (Device Device) GetCurrPcieLinkGeneration() (int, Return) {\n\treturn DeviceGetCurrPcieLinkGeneration(Device)\n}\n\n// nvml.DeviceGetCurrPcieLinkWidth()\nfunc DeviceGetCurrPcieLinkWidth(Device Device) (int, Return) {\n\tvar CurrLinkWidth uint32\n\tret := nvmlDeviceGetCurrPcieLinkWidth(Device, &CurrLinkWidth)\n\treturn int(CurrLinkWidth), ret\n}\n\nfunc (Device Device) GetCurrPcieLinkWidth() (int, Return) {\n\treturn DeviceGetCurrPcieLinkWidth(Device)\n}\n\n// nvml.DeviceGetPcieThroughput()\nfunc DeviceGetPcieThroughput(Device Device, Counter PcieUtilCounter) (uint32, Return) {\n\tvar Value uint32\n\tret := nvmlDeviceGetPcieThroughput(Device, Counter, &Value)\n\treturn Value, ret\n}\n\nfunc (Device Device) GetPcieThroughput(Counter PcieUtilCounter) (uint32, Return) {\n\treturn DeviceGetPcieThroughput(Device, Counter)\n}\n\n// nvml.DeviceGetPcieReplayCounter()\nfunc DeviceGetPcieReplayCounter(Device Device) (int, Return) {\n\tvar Value uint32\n\tret := nvmlDeviceGetPcieReplayCounter(Device, &Value)\n\treturn int(Value), ret\n}\n\nfunc (Device Device) GetPcieReplayCounter() (int, Return) {\n\treturn DeviceGetPcieReplayCounter(Device)\n}\n\n// nvml.nvmlDeviceGetClockInfo()\nfunc DeviceGetClockInfo(Device Device, _type ClockType) (uint32, Return) {\n\tvar Clock uint32\n\tret := nvmlDeviceGetClockInfo(Device, _type, &Clock)\n\treturn Clock, ret\n}\n\nfunc (Device Device) GetClockInfo(_type ClockType) (uint32, Return) {\n\treturn DeviceGetClockInfo(Device, _type)\n}\n\n// nvml.DeviceGetMaxClockInfo()\nfunc DeviceGetMaxClockInfo(Device Device, _type ClockType) (uint32, Return) {\n\tvar Clock uint32\n\tret := nvmlDeviceGetMaxClockInfo(Device, _type, &Clock)\n\treturn Clock, ret\n}\n\nfunc (Device Device) GetMaxClockInfo(_type ClockType) (uint32, Return) {\n\treturn DeviceGetMaxClockInfo(Device, _type)\n}\n\n// nvml.DeviceGetApplicationsClock()\nfunc DeviceGetApplicationsClock(Device Device, ClockType ClockType) (uint32, Return) {\n\tvar ClockMHz uint32\n\tret := nvmlDeviceGetApplicationsClock(Device, ClockType, &ClockMHz)\n\treturn ClockMHz, ret\n}\n\nfunc (Device Device) GetApplicationsClock(ClockType ClockType) (uint32, Return) {\n\treturn DeviceGetApplicationsClock(Device, ClockType)\n}\n\n// nvml.DeviceGetDefaultApplicationsClock()\nfunc DeviceGetDefaultApplicationsClock(Device Device, ClockType ClockType) (uint32, Return) {\n\tvar ClockMHz uint32\n\tret := nvmlDeviceGetDefaultApplicationsClock(Device, ClockType, &ClockMHz)\n\treturn ClockMHz, ret\n}\n\nfunc (Device Device) GetDefaultApplicationsClock(ClockType ClockType) (uint32, Return) {\n\treturn DeviceGetDefaultApplicationsClock(Device, ClockType)\n}\n\n// nvml.DeviceResetApplicationsClocks()\nfunc DeviceResetApplicationsClocks(Device Device) Return {\n\treturn nvmlDeviceResetApplicationsClocks(Device)\n}\n\nfunc (Device Device) ResetApplicationsClocks() Return {\n\treturn DeviceResetApplicationsClocks(Device)\n}\n\n// nvml.DeviceGetClock()\nfunc DeviceGetClock(Device Device, ClockType ClockType, ClockId ClockId) (uint32, Return) {\n\tvar ClockMHz uint32\n\tret := nvmlDeviceGetClock(Device, ClockType, ClockId, &ClockMHz)\n\treturn ClockMHz, ret\n}\n\nfunc (Device Device) GetClock(ClockType ClockType, ClockId ClockId) (uint32, Return) {\n\treturn DeviceGetClock(Device, ClockType, ClockId)\n}\n\n// nvml.DeviceGetMaxCustomerBoostClock()\nfunc DeviceGetMaxCustomerBoostClock(Device Device, ClockType ClockType) (uint32, Return) {\n\tvar ClockMHz uint32\n\tret := nvmlDeviceGetMaxCustomerBoostClock(Device, ClockType, &ClockMHz)\n\treturn ClockMHz, ret\n}\n\nfunc (Device Device) GetMaxCustomerBoostClock(ClockType ClockType) (uint32, Return) {\n\treturn DeviceGetMaxCustomerBoostClock(Device, ClockType)\n}\n\n// nvml.DeviceGetSupportedMemoryClocks()\nfunc DeviceGetSupportedMemoryClocks(Device Device) (int, uint32, Return) {\n\tvar Count, ClocksMHz uint32\n\tret := nvmlDeviceGetSupportedMemoryClocks(Device, &Count, &ClocksMHz)\n\treturn int(Count), ClocksMHz, ret\n}\n\nfunc (Device Device) GetSupportedMemoryClocks() (int, uint32, Return) {\n\treturn DeviceGetSupportedMemoryClocks(Device)\n}\n\n// nvml.DeviceGetSupportedGraphicsClocks()\nfunc DeviceGetSupportedGraphicsClocks(Device Device, MemoryClockMHz int) (int, uint32, Return) {\n\tvar Count, ClocksMHz uint32\n\tret := nvmlDeviceGetSupportedGraphicsClocks(Device, uint32(MemoryClockMHz), &Count, &ClocksMHz)\n\treturn int(Count), ClocksMHz, ret\n}\n\nfunc (Device Device) GetSupportedGraphicsClocks(MemoryClockMHz int) (int, uint32, Return) {\n\treturn DeviceGetSupportedGraphicsClocks(Device, MemoryClockMHz)\n}\n\n// nvml.DeviceGetAutoBoostedClocksEnabled()\nfunc DeviceGetAutoBoostedClocksEnabled(Device Device) (EnableState, EnableState, Return) {\n\tvar IsEnabled, DefaultIsEnabled EnableState\n\tret := nvmlDeviceGetAutoBoostedClocksEnabled(Device, &IsEnabled, &DefaultIsEnabled)\n\treturn IsEnabled, DefaultIsEnabled, ret\n}\n\nfunc (Device Device) GetAutoBoostedClocksEnabled() (EnableState, EnableState, Return) {\n\treturn DeviceGetAutoBoostedClocksEnabled(Device)\n}\n\n// nvml.DeviceSetAutoBoostedClocksEnabled()\nfunc DeviceSetAutoBoostedClocksEnabled(Device Device, Enabled EnableState) Return {\n\treturn nvmlDeviceSetAutoBoostedClocksEnabled(Device, Enabled)\n}\n\nfunc (Device Device) SetAutoBoostedClocksEnabled(Enabled EnableState) Return {\n\treturn DeviceSetAutoBoostedClocksEnabled(Device, Enabled)\n}\n\n// nvml.DeviceSetDefaultAutoBoostedClocksEnabled()\nfunc DeviceSetDefaultAutoBoostedClocksEnabled(Device Device, Enabled EnableState, Flags uint32) Return {\n\treturn nvmlDeviceSetDefaultAutoBoostedClocksEnabled(Device, Enabled, Flags)\n}\n\nfunc (Device Device) SetDefaultAutoBoostedClocksEnabled(Enabled EnableState, Flags uint32) Return {\n\treturn DeviceSetDefaultAutoBoostedClocksEnabled(Device, Enabled, Flags)\n}\n\n// nvml.DeviceGetFanSpeed()\nfunc DeviceGetFanSpeed(Device Device) (uint32, Return) {\n\tvar Speed uint32\n\tret := nvmlDeviceGetFanSpeed(Device, &Speed)\n\treturn Speed, ret\n}\n\nfunc (Device Device) GetFanSpeed() (uint32, Return) {\n\treturn DeviceGetFanSpeed(Device)\n}\n\n// nvml.DeviceGetFanSpeed_v2()\nfunc DeviceGetFanSpeed_v2(Device Device, Fan int) (uint32, Return) {\n\tvar Speed uint32\n\tret := nvmlDeviceGetFanSpeed_v2(Device, uint32(Fan), &Speed)\n\treturn Speed, ret\n}\n\nfunc (Device Device) GetFanSpeed_v2(Fan int) (uint32, Return) {\n\treturn DeviceGetFanSpeed_v2(Device, Fan)\n}\n\n// nvml.DeviceGetNumFans()\nfunc DeviceGetNumFans(Device Device) (int, Return) {\n\tvar NumFans uint32\n\tret := nvmlDeviceGetNumFans(Device, &NumFans)\n\treturn int(NumFans), ret\n}\n\nfunc (Device Device) GetNumFans() (int, Return) {\n\treturn DeviceGetNumFans(Device)\n}\n\n// nvml.DeviceGetTemperature()\nfunc DeviceGetTemperature(Device Device, SensorType TemperatureSensors) (uint32, Return) {\n\tvar Temp uint32\n\tret := nvmlDeviceGetTemperature(Device, SensorType, &Temp)\n\treturn Temp, ret\n}\n\nfunc (Device Device) GetTemperature(SensorType TemperatureSensors) (uint32, Return) {\n\treturn DeviceGetTemperature(Device, SensorType)\n}\n\n// nvml.DeviceGetTemperatureThreshold()\nfunc DeviceGetTemperatureThreshold(Device Device, ThresholdType TemperatureThresholds) (uint32, Return) {\n\tvar Temp uint32\n\tret := nvmlDeviceGetTemperatureThreshold(Device, ThresholdType, &Temp)\n\treturn Temp, ret\n}\n\nfunc (Device Device) GetTemperatureThreshold(ThresholdType TemperatureThresholds) (uint32, Return) {\n\treturn DeviceGetTemperatureThreshold(Device, ThresholdType)\n}\n\n// nvml.DeviceSetTemperatureThreshold()\nfunc DeviceSetTemperatureThreshold(Device Device, ThresholdType TemperatureThresholds, Temp int) Return {\n\tt := int32(Temp)\n\tret := nvmlDeviceSetTemperatureThreshold(Device, ThresholdType, &t)\n\treturn ret\n}\n\nfunc (Device Device) SetTemperatureThreshold(ThresholdType TemperatureThresholds, Temp int) Return {\n\treturn DeviceSetTemperatureThreshold(Device, ThresholdType, Temp)\n}\n\n// nvml.DeviceGetPerformanceState()\nfunc DeviceGetPerformanceState(Device Device) (Pstates, Return) {\n\tvar PState Pstates\n\tret := nvmlDeviceGetPerformanceState(Device, &PState)\n\treturn PState, ret\n}\n\nfunc (Device Device) GetPerformanceState() (Pstates, Return) {\n\treturn DeviceGetPerformanceState(Device)\n}\n\n// nvml.DeviceGetCurrentClocksThrottleReasons()\nfunc DeviceGetCurrentClocksThrottleReasons(Device Device) (uint64, Return) {\n\tvar ClocksThrottleReasons uint64\n\tret := nvmlDeviceGetCurrentClocksThrottleReasons(Device, &ClocksThrottleReasons)\n\treturn ClocksThrottleReasons, ret\n}\n\nfunc (Device Device) GetCurrentClocksThrottleReasons() (uint64, Return) {\n\treturn DeviceGetCurrentClocksThrottleReasons(Device)\n}\n\n// nvml.DeviceGetSupportedClocksThrottleReasons()\nfunc DeviceGetSupportedClocksThrottleReasons(Device Device) (uint64, Return) {\n\tvar SupportedClocksThrottleReasons uint64\n\tret := nvmlDeviceGetSupportedClocksThrottleReasons(Device, &SupportedClocksThrottleReasons)\n\treturn SupportedClocksThrottleReasons, ret\n}\n\nfunc (Device Device) GetSupportedClocksThrottleReasons() (uint64, Return) {\n\treturn DeviceGetSupportedClocksThrottleReasons(Device)\n}\n\n// nvml.DeviceGetPowerState()\nfunc DeviceGetPowerState(Device Device) (Pstates, Return) {\n\tvar PState Pstates\n\tret := nvmlDeviceGetPowerState(Device, &PState)\n\treturn PState, ret\n}\n\nfunc (Device Device) GetPowerState() (Pstates, Return) {\n\treturn DeviceGetPowerState(Device)\n}\n\n// nvml.DeviceGetPowerManagementMode()\nfunc DeviceGetPowerManagementMode(Device Device) (EnableState, Return) {\n\tvar Mode EnableState\n\tret := nvmlDeviceGetPowerManagementMode(Device, &Mode)\n\treturn Mode, ret\n}\n\nfunc (Device Device) GetPowerManagementMode() (EnableState, Return) {\n\treturn DeviceGetPowerManagementMode(Device)\n}\n\n// nvml.DeviceGetPowerManagementLimit()\nfunc DeviceGetPowerManagementLimit(Device Device) (uint32, Return) {\n\tvar Limit uint32\n\tret := nvmlDeviceGetPowerManagementLimit(Device, &Limit)\n\treturn Limit, ret\n}\n\nfunc (Device Device) GetPowerManagementLimit() (uint32, Return) {\n\treturn DeviceGetPowerManagementLimit(Device)\n}\n\n// nvml.DeviceGetPowerManagementLimitConstraints()\nfunc DeviceGetPowerManagementLimitConstraints(Device Device) (uint32, uint32, Return) {\n\tvar MinLimit, MaxLimit uint32\n\tret := nvmlDeviceGetPowerManagementLimitConstraints(Device, &MinLimit, &MaxLimit)\n\treturn MinLimit, MaxLimit, ret\n}\n\nfunc (Device Device) GetPowerManagementLimitConstraints() (uint32, uint32, Return) {\n\treturn DeviceGetPowerManagementLimitConstraints(Device)\n}\n\n// nvml.DeviceGetPowerManagementDefaultLimit()\nfunc DeviceGetPowerManagementDefaultLimit(Device Device) (uint32, Return) {\n\tvar DefaultLimit uint32\n\tret := nvmlDeviceGetPowerManagementDefaultLimit(Device, &DefaultLimit)\n\treturn DefaultLimit, ret\n}\n\nfunc (Device Device) GetPowerManagementDefaultLimit() (uint32, Return) {\n\treturn DeviceGetPowerManagementDefaultLimit(Device)\n}\n\n// nvml.DeviceGetPowerUsage()\nfunc DeviceGetPowerUsage(Device Device) (uint32, Return) {\n\tvar Power uint32\n\tret := nvmlDeviceGetPowerUsage(Device, &Power)\n\treturn Power, ret\n}\n\nfunc (Device Device) GetPowerUsage() (uint32, Return) {\n\treturn DeviceGetPowerUsage(Device)\n}\n\n// nvml.DeviceGetTotalEnergyConsumption()\nfunc DeviceGetTotalEnergyConsumption(Device Device) (uint64, Return) {\n\tvar Energy uint64\n\tret := nvmlDeviceGetTotalEnergyConsumption(Device, &Energy)\n\treturn Energy, ret\n}\n\nfunc (Device Device) GetTotalEnergyConsumption() (uint64, Return) {\n\treturn DeviceGetTotalEnergyConsumption(Device)\n}\n\n// nvml.DeviceGetEnforcedPowerLimit()\nfunc DeviceGetEnforcedPowerLimit(Device Device) (uint32, Return) {\n\tvar Limit uint32\n\tret := nvmlDeviceGetEnforcedPowerLimit(Device, &Limit)\n\treturn Limit, ret\n}\n\nfunc (Device Device) GetEnforcedPowerLimit() (uint32, Return) {\n\treturn DeviceGetEnforcedPowerLimit(Device)\n}\n\n// nvml.DeviceGetGpuOperationMode()\nfunc DeviceGetGpuOperationMode(Device Device) (GpuOperationMode, GpuOperationMode, Return) {\n\tvar Current, Pending GpuOperationMode\n\tret := nvmlDeviceGetGpuOperationMode(Device, &Current, &Pending)\n\treturn Current, Pending, ret\n}\n\nfunc (Device Device) GetGpuOperationMode() (GpuOperationMode, GpuOperationMode, Return) {\n\treturn DeviceGetGpuOperationMode(Device)\n}\n\n// nvml.DeviceGetMemoryInfo()\nfunc DeviceGetMemoryInfo(Device Device) (Memory, Return) {\n\tvar Memory Memory\n\tret := nvmlDeviceGetMemoryInfo(Device, &Memory)\n\treturn Memory, ret\n}\n\nfunc (Device Device) GetMemoryInfo() (Memory, Return) {\n\treturn DeviceGetMemoryInfo(Device)\n}\n\n// nvml.DeviceGetMemoryInfo_v2()\nfunc DeviceGetMemoryInfo_v2(Device Device) (Memory_v2, Return) {\n\tvar Memory Memory_v2\n\tMemory.Version = STRUCT_VERSION(Memory, 2)\n\tret := nvmlDeviceGetMemoryInfo_v2(Device, &Memory)\n\treturn Memory, ret\n}\n\nfunc (Device Device) GetMemoryInfo_v2() (Memory_v2, Return) {\n\treturn DeviceGetMemoryInfo_v2(Device)\n}\n\n// nvml.DeviceGetComputeMode()\nfunc DeviceGetComputeMode(Device Device) (ComputeMode, Return) {\n\tvar Mode ComputeMode\n\tret := nvmlDeviceGetComputeMode(Device, &Mode)\n\treturn Mode, ret\n}\n\nfunc (Device Device) GetComputeMode() (ComputeMode, Return) {\n\treturn DeviceGetComputeMode(Device)\n}\n\n// nvml.DeviceGetCudaComputeCapability()\nfunc DeviceGetCudaComputeCapability(Device Device) (int, int, Return) {\n\tvar Major, Minor int32\n\tret := nvmlDeviceGetCudaComputeCapability(Device, &Major, &Minor)\n\treturn int(Major), int(Minor), ret\n}\n\nfunc (Device Device) GetCudaComputeCapability() (int, int, Return) {\n\treturn DeviceGetCudaComputeCapability(Device)\n}\n\n// nvml.DeviceGetEccMode()\nfunc DeviceGetEccMode(Device Device) (EnableState, EnableState, Return) {\n\tvar Current, Pending EnableState\n\tret := nvmlDeviceGetEccMode(Device, &Current, &Pending)\n\treturn Current, Pending, ret\n}\n\nfunc (Device Device) GetEccMode() (EnableState, EnableState, Return) {\n\treturn DeviceGetEccMode(Device)\n}\n\n// nvml.DeviceGetBoardId()\nfunc DeviceGetBoardId(Device Device) (uint32, Return) {\n\tvar BoardId uint32\n\tret := nvmlDeviceGetBoardId(Device, &BoardId)\n\treturn BoardId, ret\n}\n\nfunc (Device Device) GetBoardId() (uint32, Return) {\n\treturn DeviceGetBoardId(Device)\n}\n\n// nvml.DeviceGetMultiGpuBoard()\nfunc DeviceGetMultiGpuBoard(Device Device) (int, Return) {\n\tvar MultiGpuBool uint32\n\tret := nvmlDeviceGetMultiGpuBoard(Device, &MultiGpuBool)\n\treturn int(MultiGpuBool), ret\n}\n\nfunc (Device Device) GetMultiGpuBoard() (int, Return) {\n\treturn DeviceGetMultiGpuBoard(Device)\n}\n\n// nvml.DeviceGetTotalEccErrors()\nfunc DeviceGetTotalEccErrors(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType) (uint64, Return) {\n\tvar EccCounts uint64\n\tret := nvmlDeviceGetTotalEccErrors(Device, ErrorType, CounterType, &EccCounts)\n\treturn EccCounts, ret\n}\n\nfunc (Device Device) GetTotalEccErrors(ErrorType MemoryErrorType, CounterType EccCounterType) (uint64, Return) {\n\treturn DeviceGetTotalEccErrors(Device, ErrorType, CounterType)\n}\n\n// nvml.DeviceGetDetailedEccErrors()\nfunc DeviceGetDetailedEccErrors(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType) (EccErrorCounts, Return) {\n\tvar EccCounts EccErrorCounts\n\tret := nvmlDeviceGetDetailedEccErrors(Device, ErrorType, CounterType, &EccCounts)\n\treturn EccCounts, ret\n}\n\nfunc (Device Device) GetDetailedEccErrors(ErrorType MemoryErrorType, CounterType EccCounterType) (EccErrorCounts, Return) {\n\treturn DeviceGetDetailedEccErrors(Device, ErrorType, CounterType)\n}\n\n// nvml.DeviceGetMemoryErrorCounter()\nfunc DeviceGetMemoryErrorCounter(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType, LocationType MemoryLocation) (uint64, Return) {\n\tvar Count uint64\n\tret := nvmlDeviceGetMemoryErrorCounter(Device, ErrorType, CounterType, LocationType, &Count)\n\treturn Count, ret\n}\n\nfunc (Device Device) GetMemoryErrorCounter(ErrorType MemoryErrorType, CounterType EccCounterType, LocationType MemoryLocation) (uint64, Return) {\n\treturn DeviceGetMemoryErrorCounter(Device, ErrorType, CounterType, LocationType)\n}\n\n// nvml.DeviceGetUtilizationRates()\nfunc DeviceGetUtilizationRates(Device Device) (Utilization, Return) {\n\tvar Utilization Utilization\n\tret := nvmlDeviceGetUtilizationRates(Device, &Utilization)\n\treturn Utilization, ret\n}\n\nfunc (Device Device) GetUtilizationRates() (Utilization, Return) {\n\treturn DeviceGetUtilizationRates(Device)\n}\n\n// nvml.DeviceGetEncoderUtilization()\nfunc DeviceGetEncoderUtilization(Device Device) (uint32, uint32, Return) {\n\tvar Utilization, SamplingPeriodUs uint32\n\tret := nvmlDeviceGetEncoderUtilization(Device, &Utilization, &SamplingPeriodUs)\n\treturn Utilization, SamplingPeriodUs, ret\n}\n\nfunc (Device Device) GetEncoderUtilization() (uint32, uint32, Return) {\n\treturn DeviceGetEncoderUtilization(Device)\n}\n\n// nvml.DeviceGetEncoderCapacity()\nfunc DeviceGetEncoderCapacity(Device Device, EncoderQueryType EncoderType) (int, Return) {\n\tvar EncoderCapacity uint32\n\tret := nvmlDeviceGetEncoderCapacity(Device, EncoderQueryType, &EncoderCapacity)\n\treturn int(EncoderCapacity), ret\n}\n\nfunc (Device Device) GetEncoderCapacity(EncoderQueryType EncoderType) (int, Return) {\n\treturn DeviceGetEncoderCapacity(Device, EncoderQueryType)\n}\n\n// nvml.DeviceGetEncoderStats()\nfunc DeviceGetEncoderStats(Device Device) (int, uint32, uint32, Return) {\n\tvar SessionCount, AverageFps, AverageLatency uint32\n\tret := nvmlDeviceGetEncoderStats(Device, &SessionCount, &AverageFps, &AverageLatency)\n\treturn int(SessionCount), AverageFps, AverageLatency, ret\n}\n\nfunc (Device Device) GetEncoderStats() (int, uint32, uint32, Return) {\n\treturn DeviceGetEncoderStats(Device)\n}\n\n// nvml.DeviceGetEncoderSessions()\nfunc DeviceGetEncoderSessions(Device Device) ([]EncoderSessionInfo, Return) {\n\tvar SessionCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tSessionInfos := make([]EncoderSessionInfo, SessionCount)\n\t\tret := nvmlDeviceGetEncoderSessions(Device, &SessionCount, &SessionInfos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn SessionInfos[:SessionCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tSessionCount *= 2\n\t}\n}\n\nfunc (Device Device) GetEncoderSessions() ([]EncoderSessionInfo, Return) {\n\treturn DeviceGetEncoderSessions(Device)\n}\n\n// nvml.DeviceGetDecoderUtilization()\nfunc DeviceGetDecoderUtilization(Device Device) (uint32, uint32, Return) {\n\tvar Utilization, SamplingPeriodUs uint32\n\tret := nvmlDeviceGetDecoderUtilization(Device, &Utilization, &SamplingPeriodUs)\n\treturn Utilization, SamplingPeriodUs, ret\n}\n\nfunc (Device Device) GetDecoderUtilization() (uint32, uint32, Return) {\n\treturn DeviceGetDecoderUtilization(Device)\n}\n\n// nvml.DeviceGetFBCStats()\nfunc DeviceGetFBCStats(Device Device) (FBCStats, Return) {\n\tvar FbcStats FBCStats\n\tret := nvmlDeviceGetFBCStats(Device, &FbcStats)\n\treturn FbcStats, ret\n}\n\nfunc (Device Device) GetFBCStats() (FBCStats, Return) {\n\treturn DeviceGetFBCStats(Device)\n}\n\n// nvml.DeviceGetFBCSessions()\nfunc DeviceGetFBCSessions(Device Device) ([]FBCSessionInfo, Return) {\n\tvar SessionCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tSessionInfo := make([]FBCSessionInfo, SessionCount)\n\t\tret := nvmlDeviceGetFBCSessions(Device, &SessionCount, &SessionInfo[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn SessionInfo[:SessionCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tSessionCount *= 2\n\t}\n}\n\nfunc (Device Device) GetFBCSessions() ([]FBCSessionInfo, Return) {\n\treturn DeviceGetFBCSessions(Device)\n}\n\n// nvml.DeviceGetDriverModel()\nfunc DeviceGetDriverModel(Device Device) (DriverModel, DriverModel, Return) {\n\tvar Current, Pending DriverModel\n\tret := nvmlDeviceGetDriverModel(Device, &Current, &Pending)\n\treturn Current, Pending, ret\n}\n\nfunc (Device Device) GetDriverModel() (DriverModel, DriverModel, Return) {\n\treturn DeviceGetDriverModel(Device)\n}\n\n// nvml.DeviceGetVbiosVersion()\nfunc DeviceGetVbiosVersion(Device Device) (string, Return) {\n\tVersion := make([]byte, DEVICE_VBIOS_VERSION_BUFFER_SIZE)\n\tret := nvmlDeviceGetVbiosVersion(Device, &Version[0], DEVICE_VBIOS_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\nfunc (Device Device) GetVbiosVersion() (string, Return) {\n\treturn DeviceGetVbiosVersion(Device)\n}\n\n// nvml.DeviceGetBridgeChipInfo()\nfunc DeviceGetBridgeChipInfo(Device Device) (BridgeChipHierarchy, Return) {\n\tvar BridgeHierarchy BridgeChipHierarchy\n\tret := nvmlDeviceGetBridgeChipInfo(Device, &BridgeHierarchy)\n\treturn BridgeHierarchy, ret\n}\n\nfunc (Device Device) GetBridgeChipInfo() (BridgeChipHierarchy, Return) {\n\treturn DeviceGetBridgeChipInfo(Device)\n}\n\n// nvml.DeviceGetComputeRunningProcesses()\nfunc deviceGetComputeRunningProcesses_v1(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v1, InfoCount)\n\t\tret := nvmlDeviceGetComputeRunningProcesses_v1(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v1Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetComputeRunningProcesses_v2(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v2, InfoCount)\n\t\tret := nvmlDeviceGetComputeRunningProcesses_v2(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v2Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetComputeRunningProcesses_v3(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo, InfoCount)\n\t\tret := nvmlDeviceGetComputeRunningProcesses_v3(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Infos[:InfoCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc (Device Device) GetComputeRunningProcesses() ([]ProcessInfo, Return) {\n\treturn DeviceGetComputeRunningProcesses(Device)\n}\n\n// nvml.DeviceGetGraphicsRunningProcesses()\nfunc deviceGetGraphicsRunningProcesses_v1(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v1, InfoCount)\n\t\tret := nvmlDeviceGetGraphicsRunningProcesses_v1(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v1Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetGraphicsRunningProcesses_v2(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v2, InfoCount)\n\t\tret := nvmlDeviceGetGraphicsRunningProcesses_v2(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v2Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetGraphicsRunningProcesses_v3(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo, InfoCount)\n\t\tret := nvmlDeviceGetGraphicsRunningProcesses_v3(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Infos[:InfoCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc (Device Device) GetGraphicsRunningProcesses() ([]ProcessInfo, Return) {\n\treturn DeviceGetGraphicsRunningProcesses(Device)\n}\n\n// nvml.DeviceGetMPSComputeRunningProcesses()\nfunc deviceGetMPSComputeRunningProcesses_v1(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v1, InfoCount)\n\t\tret := nvmlDeviceGetMPSComputeRunningProcesses_v1(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v1Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetMPSComputeRunningProcesses_v2(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo_v2, InfoCount)\n\t\tret := nvmlDeviceGetMPSComputeRunningProcesses_v2(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn ProcessInfo_v2Slice(Infos[:InfoCount]).ToProcessInfoSlice(), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc deviceGetMPSComputeRunningProcesses_v3(Device Device) ([]ProcessInfo, Return) {\n\tvar InfoCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tInfos := make([]ProcessInfo, InfoCount)\n\t\tret := nvmlDeviceGetMPSComputeRunningProcesses_v3(Device, &InfoCount, &Infos[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Infos[:InfoCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tInfoCount *= 2\n\t}\n}\n\nfunc (Device Device) GetMPSComputeRunningProcesses() ([]ProcessInfo, Return) {\n\treturn DeviceGetMPSComputeRunningProcesses(Device)\n}\n\n// nvml.DeviceOnSameBoard()\nfunc DeviceOnSameBoard(Device1 Device, Device2 Device) (int, Return) {\n\tvar OnSameBoard int32\n\tret := nvmlDeviceOnSameBoard(Device1, Device2, &OnSameBoard)\n\treturn int(OnSameBoard), ret\n}\n\nfunc (Device1 Device) OnSameBoard(Device2 Device) (int, Return) {\n\treturn DeviceOnSameBoard(Device1, Device2)\n}\n\n// nvml.DeviceGetAPIRestriction()\nfunc DeviceGetAPIRestriction(Device Device, ApiType RestrictedAPI) (EnableState, Return) {\n\tvar IsRestricted EnableState\n\tret := nvmlDeviceGetAPIRestriction(Device, ApiType, &IsRestricted)\n\treturn IsRestricted, ret\n}\n\nfunc (Device Device) GetAPIRestriction(ApiType RestrictedAPI) (EnableState, Return) {\n\treturn DeviceGetAPIRestriction(Device, ApiType)\n}\n\n// nvml.DeviceGetSamples()\nfunc DeviceGetSamples(Device Device, _type SamplingType, LastSeenTimeStamp uint64) (ValueType, []Sample, Return) {\n\tvar SampleValType ValueType\n\tvar SampleCount uint32\n\tret := nvmlDeviceGetSamples(Device, _type, LastSeenTimeStamp, &SampleValType, &SampleCount, nil)\n\tif ret != SUCCESS {\n\t\treturn SampleValType, nil, ret\n\t}\n\tif SampleCount == 0 {\n\t\treturn SampleValType, []Sample{}, ret\n\t}\n\tSamples := make([]Sample, SampleCount)\n\tret = nvmlDeviceGetSamples(Device, _type, LastSeenTimeStamp, &SampleValType, &SampleCount, &Samples[0])\n\treturn SampleValType, Samples, ret\n}\n\nfunc (Device Device) GetSamples(_type SamplingType, LastSeenTimeStamp uint64) (ValueType, []Sample, Return) {\n\treturn DeviceGetSamples(Device, _type, LastSeenTimeStamp)\n}\n\n// nvml.DeviceGetBAR1MemoryInfo()\nfunc DeviceGetBAR1MemoryInfo(Device Device) (BAR1Memory, Return) {\n\tvar Bar1Memory BAR1Memory\n\tret := nvmlDeviceGetBAR1MemoryInfo(Device, &Bar1Memory)\n\treturn Bar1Memory, ret\n}\n\nfunc (Device Device) GetBAR1MemoryInfo() (BAR1Memory, Return) {\n\treturn DeviceGetBAR1MemoryInfo(Device)\n}\n\n// nvml.DeviceGetViolationStatus()\nfunc DeviceGetViolationStatus(Device Device, PerfPolicyType PerfPolicyType) (ViolationTime, Return) {\n\tvar ViolTime ViolationTime\n\tret := nvmlDeviceGetViolationStatus(Device, PerfPolicyType, &ViolTime)\n\treturn ViolTime, ret\n}\n\nfunc (Device Device) GetViolationStatus(PerfPolicyType PerfPolicyType) (ViolationTime, Return) {\n\treturn DeviceGetViolationStatus(Device, PerfPolicyType)\n}\n\n// nvml.DeviceGetIrqNum()\nfunc DeviceGetIrqNum(Device Device) (int, Return) {\n\tvar IrqNum uint32\n\tret := nvmlDeviceGetIrqNum(Device, &IrqNum)\n\treturn int(IrqNum), ret\n}\n\nfunc (Device Device) GetIrqNum() (int, Return) {\n\treturn DeviceGetIrqNum(Device)\n}\n\n// nvml.DeviceGetNumGpuCores()\nfunc DeviceGetNumGpuCores(Device Device) (int, Return) {\n\tvar NumCores uint32\n\tret := nvmlDeviceGetNumGpuCores(Device, &NumCores)\n\treturn int(NumCores), ret\n}\n\nfunc (Device Device) GetNumGpuCores() (int, Return) {\n\treturn DeviceGetNumGpuCores(Device)\n}\n\n// nvml.DeviceGetPowerSource()\nfunc DeviceGetPowerSource(Device Device) (PowerSource, Return) {\n\tvar PowerSource PowerSource\n\tret := nvmlDeviceGetPowerSource(Device, &PowerSource)\n\treturn PowerSource, ret\n}\n\nfunc (Device Device) GetPowerSource() (PowerSource, Return) {\n\treturn DeviceGetPowerSource(Device)\n}\n\n// nvml.DeviceGetMemoryBusWidth()\nfunc DeviceGetMemoryBusWidth(Device Device) (uint32, Return) {\n\tvar BusWidth uint32\n\tret := nvmlDeviceGetMemoryBusWidth(Device, &BusWidth)\n\treturn BusWidth, ret\n}\n\nfunc (Device Device) GetMemoryBusWidth() (uint32, Return) {\n\treturn DeviceGetMemoryBusWidth(Device)\n}\n\n// nvml.DeviceGetPcieLinkMaxSpeed()\nfunc DeviceGetPcieLinkMaxSpeed(Device Device) (uint32, Return) {\n\tvar MaxSpeed uint32\n\tret := nvmlDeviceGetPcieLinkMaxSpeed(Device, &MaxSpeed)\n\treturn MaxSpeed, ret\n}\n\nfunc (Device Device) GetPcieLinkMaxSpeed() (uint32, Return) {\n\treturn DeviceGetPcieLinkMaxSpeed(Device)\n}\n\n// nvml.DeviceGetAdaptiveClockInfoStatus()\nfunc DeviceGetAdaptiveClockInfoStatus(Device Device) (uint32, Return) {\n\tvar AdaptiveClockStatus uint32\n\tret := nvmlDeviceGetAdaptiveClockInfoStatus(Device, &AdaptiveClockStatus)\n\treturn AdaptiveClockStatus, ret\n}\n\nfunc (Device Device) GetAdaptiveClockInfoStatus() (uint32, Return) {\n\treturn DeviceGetAdaptiveClockInfoStatus(Device)\n}\n\n// nvml.DeviceGetAccountingMode()\nfunc DeviceGetAccountingMode(Device Device) (EnableState, Return) {\n\tvar Mode EnableState\n\tret := nvmlDeviceGetAccountingMode(Device, &Mode)\n\treturn Mode, ret\n}\n\nfunc (Device Device) GetAccountingMode() (EnableState, Return) {\n\treturn DeviceGetAccountingMode(Device)\n}\n\n// nvml.DeviceGetAccountingStats()\nfunc DeviceGetAccountingStats(Device Device, Pid uint32) (AccountingStats, Return) {\n\tvar Stats AccountingStats\n\tret := nvmlDeviceGetAccountingStats(Device, Pid, &Stats)\n\treturn Stats, ret\n}\n\nfunc (Device Device) GetAccountingStats(Pid uint32) (AccountingStats, Return) {\n\treturn DeviceGetAccountingStats(Device, Pid)\n}\n\n// nvml.DeviceGetAccountingPids()\nfunc DeviceGetAccountingPids(Device Device) ([]int, Return) {\n\tvar Count uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tPids := make([]uint32, Count)\n\t\tret := nvmlDeviceGetAccountingPids(Device, &Count, &Pids[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn uint32SliceToIntSlice(Pids[:Count]), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tCount *= 2\n\t}\n}\n\nfunc (Device Device) GetAccountingPids() ([]int, Return) {\n\treturn DeviceGetAccountingPids(Device)\n}\n\n// nvml.DeviceGetAccountingBufferSize()\nfunc DeviceGetAccountingBufferSize(Device Device) (int, Return) {\n\tvar BufferSize uint32\n\tret := nvmlDeviceGetAccountingBufferSize(Device, &BufferSize)\n\treturn int(BufferSize), ret\n}\n\nfunc (Device Device) GetAccountingBufferSize() (int, Return) {\n\treturn DeviceGetAccountingBufferSize(Device)\n}\n\n// nvml.DeviceGetRetiredPages()\nfunc DeviceGetRetiredPages(Device Device, Cause PageRetirementCause) ([]uint64, Return) {\n\tvar PageCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tAddresses := make([]uint64, PageCount)\n\t\tret := nvmlDeviceGetRetiredPages(Device, Cause, &PageCount, &Addresses[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Addresses[:PageCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tPageCount *= 2\n\t}\n}\n\nfunc (Device Device) GetRetiredPages(Cause PageRetirementCause) ([]uint64, Return) {\n\treturn DeviceGetRetiredPages(Device, Cause)\n}\n\n// nvml.DeviceGetRetiredPages_v2()\nfunc DeviceGetRetiredPages_v2(Device Device, Cause PageRetirementCause) ([]uint64, []uint64, Return) {\n\tvar PageCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tAddresses := make([]uint64, PageCount)\n\t\tTimestamps := make([]uint64, PageCount)\n\t\tret := nvmlDeviceGetRetiredPages_v2(Device, Cause, &PageCount, &Addresses[0], &Timestamps[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Addresses[:PageCount], Timestamps[:PageCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, nil, ret\n\t\t}\n\t\tPageCount *= 2\n\t}\n}\n\nfunc (Device Device) GetRetiredPages_v2(Cause PageRetirementCause) ([]uint64, []uint64, Return) {\n\treturn DeviceGetRetiredPages_v2(Device, Cause)\n}\n\n// nvml.DeviceGetRetiredPagesPendingStatus()\nfunc DeviceGetRetiredPagesPendingStatus(Device Device) (EnableState, Return) {\n\tvar IsPending EnableState\n\tret := nvmlDeviceGetRetiredPagesPendingStatus(Device, &IsPending)\n\treturn IsPending, ret\n}\n\nfunc (Device Device) GetRetiredPagesPendingStatus() (EnableState, Return) {\n\treturn DeviceGetRetiredPagesPendingStatus(Device)\n}\n\n// nvml.DeviceSetPersistenceMode()\nfunc DeviceSetPersistenceMode(Device Device, Mode EnableState) Return {\n\treturn nvmlDeviceSetPersistenceMode(Device, Mode)\n}\n\nfunc (Device Device) SetPersistenceMode(Mode EnableState) Return {\n\treturn DeviceSetPersistenceMode(Device, Mode)\n}\n\n// nvml.DeviceSetComputeMode()\nfunc DeviceSetComputeMode(Device Device, Mode ComputeMode) Return {\n\treturn nvmlDeviceSetComputeMode(Device, Mode)\n}\n\nfunc (Device Device) SetComputeMode(Mode ComputeMode) Return {\n\treturn DeviceSetComputeMode(Device, Mode)\n}\n\n// nvml.DeviceSetEccMode()\nfunc DeviceSetEccMode(Device Device, Ecc EnableState) Return {\n\treturn nvmlDeviceSetEccMode(Device, Ecc)\n}\n\nfunc (Device Device) SetEccMode(Ecc EnableState) Return {\n\treturn DeviceSetEccMode(Device, Ecc)\n}\n\n// nvml.DeviceClearEccErrorCounts()\nfunc DeviceClearEccErrorCounts(Device Device, CounterType EccCounterType) Return {\n\treturn nvmlDeviceClearEccErrorCounts(Device, CounterType)\n}\n\nfunc (Device Device) ClearEccErrorCounts(CounterType EccCounterType) Return {\n\treturn DeviceClearEccErrorCounts(Device, CounterType)\n}\n\n// nvml.DeviceSetDriverModel()\nfunc DeviceSetDriverModel(Device Device, DriverModel DriverModel, Flags uint32) Return {\n\treturn nvmlDeviceSetDriverModel(Device, DriverModel, Flags)\n}\n\nfunc (Device Device) SetDriverModel(DriverModel DriverModel, Flags uint32) Return {\n\treturn DeviceSetDriverModel(Device, DriverModel, Flags)\n}\n\n// nvml.DeviceSetGpuLockedClocks()\nfunc DeviceSetGpuLockedClocks(Device Device, MinGpuClockMHz uint32, MaxGpuClockMHz uint32) Return {\n\treturn nvmlDeviceSetGpuLockedClocks(Device, MinGpuClockMHz, MaxGpuClockMHz)\n}\n\nfunc (Device Device) SetGpuLockedClocks(MinGpuClockMHz uint32, MaxGpuClockMHz uint32) Return {\n\treturn DeviceSetGpuLockedClocks(Device, MinGpuClockMHz, MaxGpuClockMHz)\n}\n\n// nvml.DeviceResetGpuLockedClocks()\nfunc DeviceResetGpuLockedClocks(Device Device) Return {\n\treturn nvmlDeviceResetGpuLockedClocks(Device)\n}\n\nfunc (Device Device) ResetGpuLockedClocks() Return {\n\treturn DeviceResetGpuLockedClocks(Device)\n}\n\n// nvmlDeviceSetMemoryLockedClocks()\nfunc DeviceSetMemoryLockedClocks(Device Device, MinMemClockMHz uint32, MaxMemClockMHz uint32) Return {\n\treturn nvmlDeviceSetMemoryLockedClocks(Device, MinMemClockMHz, MaxMemClockMHz)\n}\n\nfunc (Device Device) SetMemoryLockedClocks(NinMemClockMHz uint32, MaxMemClockMHz uint32) Return {\n\treturn DeviceSetMemoryLockedClocks(Device, NinMemClockMHz, MaxMemClockMHz)\n}\n\n// nvmlDeviceResetMemoryLockedClocks()\nfunc DeviceResetMemoryLockedClocks(Device Device) Return {\n\treturn nvmlDeviceResetMemoryLockedClocks(Device)\n}\n\nfunc (Device Device) ResetMemoryLockedClocks() Return {\n\treturn DeviceResetMemoryLockedClocks(Device)\n}\n\n// nvml.DeviceGetClkMonStatus()\nfunc DeviceGetClkMonStatus(Device Device) (ClkMonStatus, Return) {\n\tvar Status ClkMonStatus\n\tret := nvmlDeviceGetClkMonStatus(Device, &Status)\n\treturn Status, ret\n}\n\nfunc (Device Device) GetClkMonStatus() (ClkMonStatus, Return) {\n\treturn DeviceGetClkMonStatus(Device)\n}\n\n// nvml.DeviceSetApplicationsClocks()\nfunc DeviceSetApplicationsClocks(Device Device, MemClockMHz uint32, GraphicsClockMHz uint32) Return {\n\treturn nvmlDeviceSetApplicationsClocks(Device, MemClockMHz, GraphicsClockMHz)\n}\n\nfunc (Device Device) SetApplicationsClocks(MemClockMHz uint32, GraphicsClockMHz uint32) Return {\n\treturn DeviceSetApplicationsClocks(Device, MemClockMHz, GraphicsClockMHz)\n}\n\n// nvml.DeviceSetPowerManagementLimit()\nfunc DeviceSetPowerManagementLimit(Device Device, Limit uint32) Return {\n\treturn nvmlDeviceSetPowerManagementLimit(Device, Limit)\n}\n\nfunc (Device Device) SetPowerManagementLimit(Limit uint32) Return {\n\treturn DeviceSetPowerManagementLimit(Device, Limit)\n}\n\n// nvml.DeviceSetGpuOperationMode()\nfunc DeviceSetGpuOperationMode(Device Device, Mode GpuOperationMode) Return {\n\treturn nvmlDeviceSetGpuOperationMode(Device, Mode)\n}\n\nfunc (Device Device) SetGpuOperationMode(Mode GpuOperationMode) Return {\n\treturn DeviceSetGpuOperationMode(Device, Mode)\n}\n\n// nvml.DeviceSetAPIRestriction()\nfunc DeviceSetAPIRestriction(Device Device, ApiType RestrictedAPI, IsRestricted EnableState) Return {\n\treturn nvmlDeviceSetAPIRestriction(Device, ApiType, IsRestricted)\n}\n\nfunc (Device Device) SetAPIRestriction(ApiType RestrictedAPI, IsRestricted EnableState) Return {\n\treturn DeviceSetAPIRestriction(Device, ApiType, IsRestricted)\n}\n\n// nvml.DeviceSetAccountingMode()\nfunc DeviceSetAccountingMode(Device Device, Mode EnableState) Return {\n\treturn nvmlDeviceSetAccountingMode(Device, Mode)\n}\n\nfunc (Device Device) SetAccountingMode(Mode EnableState) Return {\n\treturn DeviceSetAccountingMode(Device, Mode)\n}\n\n// nvml.DeviceClearAccountingPids()\nfunc DeviceClearAccountingPids(Device Device) Return {\n\treturn nvmlDeviceClearAccountingPids(Device)\n}\n\nfunc (Device Device) ClearAccountingPids() Return {\n\treturn DeviceClearAccountingPids(Device)\n}\n\n// nvml.DeviceGetNvLinkState()\nfunc DeviceGetNvLinkState(Device Device, Link int) (EnableState, Return) {\n\tvar IsActive EnableState\n\tret := nvmlDeviceGetNvLinkState(Device, uint32(Link), &IsActive)\n\treturn IsActive, ret\n}\n\nfunc (Device Device) GetNvLinkState(Link int) (EnableState, Return) {\n\treturn DeviceGetNvLinkState(Device, Link)\n}\n\n// nvml.DeviceGetNvLinkVersion()\nfunc DeviceGetNvLinkVersion(Device Device, Link int) (uint32, Return) {\n\tvar Version uint32\n\tret := nvmlDeviceGetNvLinkVersion(Device, uint32(Link), &Version)\n\treturn Version, ret\n}\n\nfunc (Device Device) GetNvLinkVersion(Link int) (uint32, Return) {\n\treturn DeviceGetNvLinkVersion(Device, Link)\n}\n\n// nvml.DeviceGetNvLinkCapability()\nfunc DeviceGetNvLinkCapability(Device Device, Link int, Capability NvLinkCapability) (uint32, Return) {\n\tvar CapResult uint32\n\tret := nvmlDeviceGetNvLinkCapability(Device, uint32(Link), Capability, &CapResult)\n\treturn CapResult, ret\n}\n\nfunc (Device Device) GetNvLinkCapability(Link int, Capability NvLinkCapability) (uint32, Return) {\n\treturn DeviceGetNvLinkCapability(Device, Link, Capability)\n}\n\n// nvml.DeviceGetNvLinkRemotePciInfo()\nfunc DeviceGetNvLinkRemotePciInfo(Device Device, Link int) (PciInfo, Return) {\n\tvar Pci PciInfo\n\tret := nvmlDeviceGetNvLinkRemotePciInfo(Device, uint32(Link), &Pci)\n\treturn Pci, ret\n}\n\nfunc (Device Device) GetNvLinkRemotePciInfo(Link int) (PciInfo, Return) {\n\treturn DeviceGetNvLinkRemotePciInfo(Device, Link)\n}\n\n// nvml.DeviceGetNvLinkErrorCounter()\nfunc DeviceGetNvLinkErrorCounter(Device Device, Link int, Counter NvLinkErrorCounter) (uint64, Return) {\n\tvar CounterValue uint64\n\tret := nvmlDeviceGetNvLinkErrorCounter(Device, uint32(Link), Counter, &CounterValue)\n\treturn CounterValue, ret\n}\n\nfunc (Device Device) GetNvLinkErrorCounter(Link int, Counter NvLinkErrorCounter) (uint64, Return) {\n\treturn DeviceGetNvLinkErrorCounter(Device, Link, Counter)\n}\n\n// nvml.DeviceResetNvLinkErrorCounters()\nfunc DeviceResetNvLinkErrorCounters(Device Device, Link int) Return {\n\treturn nvmlDeviceResetNvLinkErrorCounters(Device, uint32(Link))\n}\n\nfunc (Device Device) ResetNvLinkErrorCounters(Link int) Return {\n\treturn DeviceResetNvLinkErrorCounters(Device, Link)\n}\n\n// nvml.DeviceSetNvLinkUtilizationControl()\nfunc DeviceSetNvLinkUtilizationControl(Device Device, Link int, Counter int, Control *NvLinkUtilizationControl, Reset bool) Return {\n\treset := uint32(0)\n\tif Reset {\n\t\treset = 1\n\t}\n\treturn nvmlDeviceSetNvLinkUtilizationControl(Device, uint32(Link), uint32(Counter), Control, reset)\n}\n\nfunc (Device Device) SetNvLinkUtilizationControl(Link int, Counter int, Control *NvLinkUtilizationControl, Reset bool) Return {\n\treturn DeviceSetNvLinkUtilizationControl(Device, Link, Counter, Control, Reset)\n}\n\n// nvml.DeviceGetNvLinkUtilizationControl()\nfunc DeviceGetNvLinkUtilizationControl(Device Device, Link int, Counter int) (NvLinkUtilizationControl, Return) {\n\tvar Control NvLinkUtilizationControl\n\tret := nvmlDeviceGetNvLinkUtilizationControl(Device, uint32(Link), uint32(Counter), &Control)\n\treturn Control, ret\n}\n\nfunc (Device Device) GetNvLinkUtilizationControl(Link int, Counter int) (NvLinkUtilizationControl, Return) {\n\treturn DeviceGetNvLinkUtilizationControl(Device, Link, Counter)\n}\n\n// nvml.DeviceGetNvLinkUtilizationCounter()\nfunc DeviceGetNvLinkUtilizationCounter(Device Device, Link int, Counter int) (uint64, uint64, Return) {\n\tvar Rxcounter, Txcounter uint64\n\tret := nvmlDeviceGetNvLinkUtilizationCounter(Device, uint32(Link), uint32(Counter), &Rxcounter, &Txcounter)\n\treturn Rxcounter, Txcounter, ret\n}\n\nfunc (Device Device) GetNvLinkUtilizationCounter(Link int, Counter int) (uint64, uint64, Return) {\n\treturn DeviceGetNvLinkUtilizationCounter(Device, Link, Counter)\n}\n\n// nvml.DeviceFreezeNvLinkUtilizationCounter()\nfunc DeviceFreezeNvLinkUtilizationCounter(Device Device, Link int, Counter int, Freeze EnableState) Return {\n\treturn nvmlDeviceFreezeNvLinkUtilizationCounter(Device, uint32(Link), uint32(Counter), Freeze)\n}\n\nfunc (Device Device) FreezeNvLinkUtilizationCounter(Link int, Counter int, Freeze EnableState) Return {\n\treturn DeviceFreezeNvLinkUtilizationCounter(Device, Link, Counter, Freeze)\n}\n\n// nvml.DeviceResetNvLinkUtilizationCounter()\nfunc DeviceResetNvLinkUtilizationCounter(Device Device, Link int, Counter int) Return {\n\treturn nvmlDeviceResetNvLinkUtilizationCounter(Device, uint32(Link), uint32(Counter))\n}\n\nfunc (Device Device) ResetNvLinkUtilizationCounter(Link int, Counter int) Return {\n\treturn DeviceResetNvLinkUtilizationCounter(Device, Link, Counter)\n}\n\n// nvml.DeviceGetNvLinkRemoteDeviceType()\nfunc DeviceGetNvLinkRemoteDeviceType(Device Device, Link int) (IntNvLinkDeviceType, Return) {\n\tvar NvLinkDeviceType IntNvLinkDeviceType\n\tret := nvmlDeviceGetNvLinkRemoteDeviceType(Device, uint32(Link), &NvLinkDeviceType)\n\treturn NvLinkDeviceType, ret\n}\n\nfunc (Device Device) GetNvLinkRemoteDeviceType(Link int) (IntNvLinkDeviceType, Return) {\n\treturn DeviceGetNvLinkRemoteDeviceType(Device, Link)\n}\n\n// nvml.DeviceRegisterEvents()\nfunc DeviceRegisterEvents(Device Device, EventTypes uint64, Set EventSet) Return {\n\treturn nvmlDeviceRegisterEvents(Device, EventTypes, Set)\n}\n\nfunc (Device Device) RegisterEvents(EventTypes uint64, Set EventSet) Return {\n\treturn DeviceRegisterEvents(Device, EventTypes, Set)\n}\n\n// nvmlDeviceGetSupportedEventTypes()\nfunc DeviceGetSupportedEventTypes(Device Device) (uint64, Return) {\n\tvar EventTypes uint64\n\tret := nvmlDeviceGetSupportedEventTypes(Device, &EventTypes)\n\treturn EventTypes, ret\n}\n\nfunc (Device Device) GetSupportedEventTypes() (uint64, Return) {\n\treturn DeviceGetSupportedEventTypes(Device)\n}\n\n// nvml.DeviceModifyDrainState()\nfunc DeviceModifyDrainState(PciInfo *PciInfo, NewState EnableState) Return {\n\treturn nvmlDeviceModifyDrainState(PciInfo, NewState)\n}\n\n// nvml.DeviceQueryDrainState()\nfunc DeviceQueryDrainState(PciInfo *PciInfo) (EnableState, Return) {\n\tvar CurrentState EnableState\n\tret := nvmlDeviceQueryDrainState(PciInfo, &CurrentState)\n\treturn CurrentState, ret\n}\n\n// nvml.DeviceRemoveGpu()\nfunc DeviceRemoveGpu(PciInfo *PciInfo) Return {\n\treturn nvmlDeviceRemoveGpu(PciInfo)\n}\n\n// nvml.DeviceRemoveGpu_v2()\nfunc DeviceRemoveGpu_v2(PciInfo *PciInfo, GpuState DetachGpuState, LinkState PcieLinkState) Return {\n\treturn nvmlDeviceRemoveGpu_v2(PciInfo, GpuState, LinkState)\n}\n\n// nvml.DeviceDiscoverGpus()\nfunc DeviceDiscoverGpus() (PciInfo, Return) {\n\tvar PciInfo PciInfo\n\tret := nvmlDeviceDiscoverGpus(&PciInfo)\n\treturn PciInfo, ret\n}\n\n// nvml.DeviceGetFieldValues()\nfunc DeviceGetFieldValues(Device Device, Values []FieldValue) Return {\n\tValuesCount := len(Values)\n\treturn nvmlDeviceGetFieldValues(Device, int32(ValuesCount), &Values[0])\n}\n\nfunc (Device Device) GetFieldValues(Values []FieldValue) Return {\n\treturn DeviceGetFieldValues(Device, Values)\n}\n\n// nvml.DeviceGetVirtualizationMode()\nfunc DeviceGetVirtualizationMode(Device Device) (GpuVirtualizationMode, Return) {\n\tvar PVirtualMode GpuVirtualizationMode\n\tret := nvmlDeviceGetVirtualizationMode(Device, &PVirtualMode)\n\treturn PVirtualMode, ret\n}\n\nfunc (Device Device) GetVirtualizationMode() (GpuVirtualizationMode, Return) {\n\treturn DeviceGetVirtualizationMode(Device)\n}\n\n// nvml.DeviceGetHostVgpuMode()\nfunc DeviceGetHostVgpuMode(Device Device) (HostVgpuMode, Return) {\n\tvar PHostVgpuMode HostVgpuMode\n\tret := nvmlDeviceGetHostVgpuMode(Device, &PHostVgpuMode)\n\treturn PHostVgpuMode, ret\n}\n\nfunc (Device Device) GetHostVgpuMode() (HostVgpuMode, Return) {\n\treturn DeviceGetHostVgpuMode(Device)\n}\n\n// nvml.DeviceSetVirtualizationMode()\nfunc DeviceSetVirtualizationMode(Device Device, VirtualMode GpuVirtualizationMode) Return {\n\treturn nvmlDeviceSetVirtualizationMode(Device, VirtualMode)\n}\n\nfunc (Device Device) SetVirtualizationMode(VirtualMode GpuVirtualizationMode) Return {\n\treturn DeviceSetVirtualizationMode(Device, VirtualMode)\n}\n\n// nvml.DeviceGetGridLicensableFeatures()\nfunc DeviceGetGridLicensableFeatures(Device Device) (GridLicensableFeatures, Return) {\n\tvar PGridLicensableFeatures GridLicensableFeatures\n\tret := nvmlDeviceGetGridLicensableFeatures(Device, &PGridLicensableFeatures)\n\treturn PGridLicensableFeatures, ret\n}\n\nfunc (Device Device) GetGridLicensableFeatures() (GridLicensableFeatures, Return) {\n\treturn DeviceGetGridLicensableFeatures(Device)\n}\n\n// nvml.DeviceGetProcessUtilization()\nfunc DeviceGetProcessUtilization(Device Device, LastSeenTimeStamp uint64) ([]ProcessUtilizationSample, Return) {\n\tvar ProcessSamplesCount uint32\n\tret := nvmlDeviceGetProcessUtilization(Device, nil, &ProcessSamplesCount, LastSeenTimeStamp)\n\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\treturn nil, ret\n\t}\n\tif ProcessSamplesCount == 0 {\n\t\treturn []ProcessUtilizationSample{}, ret\n\t}\n\tUtilization := make([]ProcessUtilizationSample, ProcessSamplesCount)\n\tret = nvmlDeviceGetProcessUtilization(Device, &Utilization[0], &ProcessSamplesCount, LastSeenTimeStamp)\n\treturn Utilization[:ProcessSamplesCount], ret\n}\n\nfunc (Device Device) GetProcessUtilization(LastSeenTimeStamp uint64) ([]ProcessUtilizationSample, Return) {\n\treturn DeviceGetProcessUtilization(Device, LastSeenTimeStamp)\n}\n\n// nvml.DeviceGetSupportedVgpus()\nfunc DeviceGetSupportedVgpus(Device Device) ([]VgpuTypeId, Return) {\n\tvar VgpuCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tVgpuTypeIds := make([]VgpuTypeId, VgpuCount)\n\t\tret := nvmlDeviceGetSupportedVgpus(Device, &VgpuCount, &VgpuTypeIds[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn VgpuTypeIds[:VgpuCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tVgpuCount *= 2\n\t}\n}\n\nfunc (Device Device) GetSupportedVgpus() ([]VgpuTypeId, Return) {\n\treturn DeviceGetSupportedVgpus(Device)\n}\n\n// nvml.DeviceGetCreatableVgpus()\nfunc DeviceGetCreatableVgpus(Device Device) ([]VgpuTypeId, Return) {\n\tvar VgpuCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tVgpuTypeIds := make([]VgpuTypeId, VgpuCount)\n\t\tret := nvmlDeviceGetCreatableVgpus(Device, &VgpuCount, &VgpuTypeIds[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn VgpuTypeIds[:VgpuCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tVgpuCount *= 2\n\t}\n}\n\nfunc (Device Device) GetCreatableVgpus() ([]VgpuTypeId, Return) {\n\treturn DeviceGetCreatableVgpus(Device)\n}\n\n// nvml.DeviceGetActiveVgpus()\nfunc DeviceGetActiveVgpus(Device Device) ([]VgpuInstance, Return) {\n\tvar VgpuCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tVgpuInstances := make([]VgpuInstance, VgpuCount)\n\t\tret := nvmlDeviceGetActiveVgpus(Device, &VgpuCount, &VgpuInstances[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn VgpuInstances[:VgpuCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tVgpuCount *= 2\n\t}\n}\n\nfunc (Device Device) GetActiveVgpus() ([]VgpuInstance, Return) {\n\treturn DeviceGetActiveVgpus(Device)\n}\n\n// nvml.DeviceGetVgpuMetadata()\nfunc DeviceGetVgpuMetadata(Device Device) (VgpuPgpuMetadata, Return) {\n\tvar VgpuPgpuMetadata VgpuPgpuMetadata\n\tOpaqueDataSize := unsafe.Sizeof(VgpuPgpuMetadata.nvmlVgpuPgpuMetadata.OpaqueData)\n\tVgpuPgpuMetadataSize := unsafe.Sizeof(VgpuPgpuMetadata.nvmlVgpuPgpuMetadata) - OpaqueDataSize\n\tfor {\n\t\tBufferSize := uint32(VgpuPgpuMetadataSize + OpaqueDataSize)\n\t\tBuffer := make([]byte, BufferSize)\n\t\tnvmlVgpuPgpuMetadataPtr := (*nvmlVgpuPgpuMetadata)(unsafe.Pointer(&Buffer[0]))\n\t\tret := nvmlDeviceGetVgpuMetadata(Device, nvmlVgpuPgpuMetadataPtr, &BufferSize)\n\t\tif ret == SUCCESS {\n\t\t\tVgpuPgpuMetadata.nvmlVgpuPgpuMetadata = *nvmlVgpuPgpuMetadataPtr\n\t\t\tVgpuPgpuMetadata.OpaqueData = Buffer[VgpuPgpuMetadataSize:BufferSize]\n\t\t\treturn VgpuPgpuMetadata, ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn VgpuPgpuMetadata, ret\n\t\t}\n\t\tOpaqueDataSize = 2 * OpaqueDataSize\n\t}\n}\n\nfunc (Device Device) GetVgpuMetadata() (VgpuPgpuMetadata, Return) {\n\treturn DeviceGetVgpuMetadata(Device)\n}\n\n// nvml.DeviceGetPgpuMetadataString()\nfunc DeviceGetPgpuMetadataString(Device Device) (string, Return) {\n\tvar BufferSize uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tPgpuMetadata := make([]byte, BufferSize)\n\t\tret := nvmlDeviceGetPgpuMetadataString(Device, &PgpuMetadata[0], &BufferSize)\n\t\tif ret == SUCCESS {\n\t\t\treturn string(PgpuMetadata[:clen(PgpuMetadata)]), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn \"\", ret\n\t\t}\n\t\tBufferSize *= 2\n\t}\n}\n\nfunc (Device Device) GetPgpuMetadataString() (string, Return) {\n\treturn DeviceGetPgpuMetadataString(Device)\n}\n\n// nvml.DeviceGetVgpuUtilization()\nfunc DeviceGetVgpuUtilization(Device Device, LastSeenTimeStamp uint64) (ValueType, []VgpuInstanceUtilizationSample, Return) {\n\tvar SampleValType ValueType\n\tvar VgpuInstanceSamplesCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tUtilizationSamples := make([]VgpuInstanceUtilizationSample, VgpuInstanceSamplesCount)\n\t\tret := nvmlDeviceGetVgpuUtilization(Device, LastSeenTimeStamp, &SampleValType, &VgpuInstanceSamplesCount, &UtilizationSamples[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn SampleValType, UtilizationSamples[:VgpuInstanceSamplesCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn SampleValType, nil, ret\n\t\t}\n\t\tVgpuInstanceSamplesCount *= 2\n\t}\n}\n\nfunc (Device Device) GetVgpuUtilization(LastSeenTimeStamp uint64) (ValueType, []VgpuInstanceUtilizationSample, Return) {\n\treturn DeviceGetVgpuUtilization(Device, LastSeenTimeStamp)\n}\n\n// nvml.DeviceGetAttributes()\nfunc DeviceGetAttributes(Device Device) (DeviceAttributes, Return) {\n\tvar Attributes DeviceAttributes\n\tret := nvmlDeviceGetAttributes(Device, &Attributes)\n\treturn Attributes, ret\n}\n\nfunc (Device Device) GetAttributes() (DeviceAttributes, Return) {\n\treturn DeviceGetAttributes(Device)\n}\n\n// nvml.DeviceGetRemappedRows()\nfunc DeviceGetRemappedRows(Device Device) (int, int, bool, bool, Return) {\n\tvar CorrRows, UncRows, IsPending, FailureOccured uint32\n\tret := nvmlDeviceGetRemappedRows(Device, &CorrRows, &UncRows, &IsPending, &FailureOccured)\n\treturn int(CorrRows), int(UncRows), (IsPending != 0), (FailureOccured != 0), ret\n}\n\nfunc (Device Device) GetRemappedRows() (int, int, bool, bool, Return) {\n\treturn DeviceGetRemappedRows(Device)\n}\n\n// nvml.DeviceGetRowRemapperHistogram()\nfunc DeviceGetRowRemapperHistogram(Device Device) (RowRemapperHistogramValues, Return) {\n\tvar Values RowRemapperHistogramValues\n\tret := nvmlDeviceGetRowRemapperHistogram(Device, &Values)\n\treturn Values, ret\n}\n\nfunc (Device Device) GetRowRemapperHistogram() (RowRemapperHistogramValues, Return) {\n\treturn DeviceGetRowRemapperHistogram(Device)\n}\n\n// nvml.DeviceGetArchitecture()\nfunc DeviceGetArchitecture(Device Device) (DeviceArchitecture, Return) {\n\tvar Arch DeviceArchitecture\n\tret := nvmlDeviceGetArchitecture(Device, &Arch)\n\treturn Arch, ret\n}\n\nfunc (Device Device) GetArchitecture() (DeviceArchitecture, Return) {\n\treturn DeviceGetArchitecture(Device)\n}\n\n// nvml.DeviceGetVgpuProcessUtilization()\nfunc DeviceGetVgpuProcessUtilization(Device Device, LastSeenTimeStamp uint64) ([]VgpuProcessUtilizationSample, Return) {\n\tvar VgpuProcessSamplesCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tUtilizationSamples := make([]VgpuProcessUtilizationSample, VgpuProcessSamplesCount)\n\t\tret := nvmlDeviceGetVgpuProcessUtilization(Device, LastSeenTimeStamp, &VgpuProcessSamplesCount, &UtilizationSamples[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn UtilizationSamples[:VgpuProcessSamplesCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tVgpuProcessSamplesCount *= 2\n\t}\n}\n\nfunc (Device Device) GetVgpuProcessUtilization(LastSeenTimeStamp uint64) ([]VgpuProcessUtilizationSample, Return) {\n\treturn DeviceGetVgpuProcessUtilization(Device, LastSeenTimeStamp)\n}\n\n// nvml.GetExcludedDeviceCount()\nfunc GetExcludedDeviceCount() (int, Return) {\n\tvar DeviceCount uint32\n\tret := nvmlGetExcludedDeviceCount(&DeviceCount)\n\treturn int(DeviceCount), ret\n}\n\n// nvml.GetExcludedDeviceInfoByIndex()\nfunc GetExcludedDeviceInfoByIndex(Index int) (ExcludedDeviceInfo, Return) {\n\tvar Info ExcludedDeviceInfo\n\tret := nvmlGetExcludedDeviceInfoByIndex(uint32(Index), &Info)\n\treturn Info, ret\n}\n\n// nvml.DeviceSetMigMode()\nfunc DeviceSetMigMode(Device Device, Mode int) (Return, Return) {\n\tvar ActivationStatus Return\n\tret := nvmlDeviceSetMigMode(Device, uint32(Mode), &ActivationStatus)\n\treturn ActivationStatus, ret\n}\n\nfunc (Device Device) SetMigMode(Mode int) (Return, Return) {\n\treturn DeviceSetMigMode(Device, Mode)\n}\n\n// nvml.DeviceGetMigMode()\nfunc DeviceGetMigMode(Device Device) (int, int, Return) {\n\tvar CurrentMode, PendingMode uint32\n\tret := nvmlDeviceGetMigMode(Device, &CurrentMode, &PendingMode)\n\treturn int(CurrentMode), int(PendingMode), ret\n}\n\nfunc (Device Device) GetMigMode() (int, int, Return) {\n\treturn DeviceGetMigMode(Device)\n}\n\n// nvml.DeviceGetGpuInstanceProfileInfo()\nfunc DeviceGetGpuInstanceProfileInfo(Device Device, Profile int) (GpuInstanceProfileInfo, Return) {\n\tvar Info GpuInstanceProfileInfo\n\tret := nvmlDeviceGetGpuInstanceProfileInfo(Device, uint32(Profile), &Info)\n\treturn Info, ret\n}\n\nfunc (Device Device) GetGpuInstanceProfileInfo(Profile int) (GpuInstanceProfileInfo, Return) {\n\treturn DeviceGetGpuInstanceProfileInfo(Device, Profile)\n}\n\n// nvml.DeviceGetGpuInstanceProfileInfoV()\ntype GpuInstanceProfileInfoV struct {\n\tdevice  Device\n\tprofile int\n}\n\nfunc (InfoV GpuInstanceProfileInfoV) V1() (GpuInstanceProfileInfo, Return) {\n\treturn DeviceGetGpuInstanceProfileInfo(InfoV.device, InfoV.profile)\n}\n\nfunc (InfoV GpuInstanceProfileInfoV) V2() (GpuInstanceProfileInfo_v2, Return) {\n\tvar Info GpuInstanceProfileInfo_v2\n\tInfo.Version = STRUCT_VERSION(Info, 2)\n\tret := nvmlDeviceGetGpuInstanceProfileInfoV(InfoV.device, uint32(InfoV.profile), &Info)\n\treturn Info, ret\n}\n\nfunc DeviceGetGpuInstanceProfileInfoV(Device Device, Profile int) GpuInstanceProfileInfoV {\n\treturn GpuInstanceProfileInfoV{Device, Profile}\n}\n\nfunc (Device Device) GetGpuInstanceProfileInfoV(Profile int) GpuInstanceProfileInfoV {\n\treturn DeviceGetGpuInstanceProfileInfoV(Device, Profile)\n}\n\n// nvml.DeviceGetGpuInstancePossiblePlacements()\nfunc DeviceGetGpuInstancePossiblePlacements(Device Device, Info *GpuInstanceProfileInfo) ([]GpuInstancePlacement, Return) {\n\tif Info == nil {\n\t\treturn nil, ERROR_INVALID_ARGUMENT\n\t}\n\tvar Count uint32\n\tret := nvmlDeviceGetGpuInstancePossiblePlacements(Device, Info.Id, nil, &Count)\n\tif ret != SUCCESS {\n\t\treturn nil, ret\n\t}\n\tif Count == 0 {\n\t\treturn []GpuInstancePlacement{}, ret\n\t}\n\tPlacements := make([]GpuInstancePlacement, Count)\n\tret = nvmlDeviceGetGpuInstancePossiblePlacements(Device, Info.Id, &Placements[0], &Count)\n\treturn Placements[:Count], ret\n}\n\nfunc (Device Device) GetGpuInstancePossiblePlacements(Info *GpuInstanceProfileInfo) ([]GpuInstancePlacement, Return) {\n\treturn DeviceGetGpuInstancePossiblePlacements(Device, Info)\n}\n\n// nvml.DeviceGetGpuInstanceRemainingCapacity()\nfunc DeviceGetGpuInstanceRemainingCapacity(Device Device, Info *GpuInstanceProfileInfo) (int, Return) {\n\tif Info == nil {\n\t\treturn 0, ERROR_INVALID_ARGUMENT\n\t}\n\tvar Count uint32\n\tret := nvmlDeviceGetGpuInstanceRemainingCapacity(Device, Info.Id, &Count)\n\treturn int(Count), ret\n}\n\nfunc (Device Device) GetGpuInstanceRemainingCapacity(Info *GpuInstanceProfileInfo) (int, Return) {\n\treturn DeviceGetGpuInstanceRemainingCapacity(Device, Info)\n}\n\n// nvml.DeviceCreateGpuInstance()\nfunc DeviceCreateGpuInstance(Device Device, Info *GpuInstanceProfileInfo) (GpuInstance, Return) {\n\tif Info == nil {\n\t\treturn GpuInstance{}, ERROR_INVALID_ARGUMENT\n\t}\n\tvar GpuInstance GpuInstance\n\tret := nvmlDeviceCreateGpuInstance(Device, Info.Id, &GpuInstance)\n\treturn GpuInstance, ret\n}\n\nfunc (Device Device) CreateGpuInstance(Info *GpuInstanceProfileInfo) (GpuInstance, Return) {\n\treturn DeviceCreateGpuInstance(Device, Info)\n}\n\n// nvml.DeviceCreateGpuInstanceWithPlacement()\nfunc DeviceCreateGpuInstanceWithPlacement(Device Device, Info *GpuInstanceProfileInfo, Placement *GpuInstancePlacement) (GpuInstance, Return) {\n\tif Info == nil {\n\t\treturn GpuInstance{}, ERROR_INVALID_ARGUMENT\n\t}\n\tvar GpuInstance GpuInstance\n\tret := nvmlDeviceCreateGpuInstanceWithPlacement(Device, Info.Id, Placement, &GpuInstance)\n\treturn GpuInstance, ret\n}\n\nfunc (Device Device) CreateGpuInstanceWithPlacement(Info *GpuInstanceProfileInfo, Placement *GpuInstancePlacement) (GpuInstance, Return) {\n\treturn DeviceCreateGpuInstanceWithPlacement(Device, Info, Placement)\n}\n\n// nvml.GpuInstanceDestroy()\nfunc GpuInstanceDestroy(GpuInstance GpuInstance) Return {\n\treturn nvmlGpuInstanceDestroy(GpuInstance)\n}\n\nfunc (GpuInstance GpuInstance) Destroy() Return {\n\treturn GpuInstanceDestroy(GpuInstance)\n}\n\n// nvml.DeviceGetGpuInstances()\nfunc DeviceGetGpuInstances(Device Device, Info *GpuInstanceProfileInfo) ([]GpuInstance, Return) {\n\tif Info == nil {\n\t\treturn nil, ERROR_INVALID_ARGUMENT\n\t}\n\tvar Count uint32 = Info.InstanceCount\n\tGpuInstances := make([]GpuInstance, Count)\n\tret := nvmlDeviceGetGpuInstances(Device, Info.Id, &GpuInstances[0], &Count)\n\treturn GpuInstances[:Count], ret\n}\n\nfunc (Device Device) GetGpuInstances(Info *GpuInstanceProfileInfo) ([]GpuInstance, Return) {\n\treturn DeviceGetGpuInstances(Device, Info)\n}\n\n// nvml.DeviceGetGpuInstanceById()\nfunc DeviceGetGpuInstanceById(Device Device, Id int) (GpuInstance, Return) {\n\tvar GpuInstance GpuInstance\n\tret := nvmlDeviceGetGpuInstanceById(Device, uint32(Id), &GpuInstance)\n\treturn GpuInstance, ret\n}\n\nfunc (Device Device) GetGpuInstanceById(Id int) (GpuInstance, Return) {\n\treturn DeviceGetGpuInstanceById(Device, Id)\n}\n\n// nvml.GpuInstanceGetInfo()\nfunc GpuInstanceGetInfo(GpuInstance GpuInstance) (GpuInstanceInfo, Return) {\n\tvar Info GpuInstanceInfo\n\tret := nvmlGpuInstanceGetInfo(GpuInstance, &Info)\n\treturn Info, ret\n}\n\nfunc (GpuInstance GpuInstance) GetInfo() (GpuInstanceInfo, Return) {\n\treturn GpuInstanceGetInfo(GpuInstance)\n}\n\n// nvml.GpuInstanceGetComputeInstanceProfileInfo()\nfunc GpuInstanceGetComputeInstanceProfileInfo(GpuInstance GpuInstance, Profile int, EngProfile int) (ComputeInstanceProfileInfo, Return) {\n\tvar Info ComputeInstanceProfileInfo\n\tret := nvmlGpuInstanceGetComputeInstanceProfileInfo(GpuInstance, uint32(Profile), uint32(EngProfile), &Info)\n\treturn Info, ret\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstanceProfileInfo(Profile int, EngProfile int) (ComputeInstanceProfileInfo, Return) {\n\treturn GpuInstanceGetComputeInstanceProfileInfo(GpuInstance, Profile, EngProfile)\n}\n\n// nvml.GpuInstanceGetComputeInstanceProfileInfoV()\ntype ComputeInstanceProfileInfoV struct {\n\tgpuInstance GpuInstance\n\tprofile     int\n\tengProfile  int\n}\n\nfunc (InfoV ComputeInstanceProfileInfoV) V1() (ComputeInstanceProfileInfo, Return) {\n\treturn GpuInstanceGetComputeInstanceProfileInfo(InfoV.gpuInstance, InfoV.profile, InfoV.engProfile)\n}\n\nfunc (InfoV ComputeInstanceProfileInfoV) V2() (ComputeInstanceProfileInfo_v2, Return) {\n\tvar Info ComputeInstanceProfileInfo_v2\n\tInfo.Version = STRUCT_VERSION(Info, 2)\n\tret := nvmlGpuInstanceGetComputeInstanceProfileInfoV(InfoV.gpuInstance, uint32(InfoV.profile), uint32(InfoV.engProfile), &Info)\n\treturn Info, ret\n}\n\nfunc GpuInstanceGetComputeInstanceProfileInfoV(GpuInstance GpuInstance, Profile int, EngProfile int) ComputeInstanceProfileInfoV {\n\treturn ComputeInstanceProfileInfoV{GpuInstance, Profile, EngProfile}\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstanceProfileInfoV(Profile int, EngProfile int) ComputeInstanceProfileInfoV {\n\treturn GpuInstanceGetComputeInstanceProfileInfoV(GpuInstance, Profile, EngProfile)\n}\n\n// nvml.GpuInstanceGetComputeInstanceRemainingCapacity()\nfunc GpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance GpuInstance, Info *ComputeInstanceProfileInfo) (int, Return) {\n\tif Info == nil {\n\t\treturn 0, ERROR_INVALID_ARGUMENT\n\t}\n\tvar Count uint32\n\tret := nvmlGpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance, Info.Id, &Count)\n\treturn int(Count), ret\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstanceRemainingCapacity(Info *ComputeInstanceProfileInfo) (int, Return) {\n\treturn GpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance, Info)\n}\n\n// nvml.GpuInstanceCreateComputeInstance()\nfunc GpuInstanceCreateComputeInstance(GpuInstance GpuInstance, Info *ComputeInstanceProfileInfo) (ComputeInstance, Return) {\n\tif Info == nil {\n\t\treturn ComputeInstance{}, ERROR_INVALID_ARGUMENT\n\t}\n\tvar ComputeInstance ComputeInstance\n\tret := nvmlGpuInstanceCreateComputeInstance(GpuInstance, Info.Id, &ComputeInstance)\n\treturn ComputeInstance, ret\n}\n\nfunc (GpuInstance GpuInstance) CreateComputeInstance(Info *ComputeInstanceProfileInfo) (ComputeInstance, Return) {\n\treturn GpuInstanceCreateComputeInstance(GpuInstance, Info)\n}\n\n// nvml.ComputeInstanceDestroy()\nfunc ComputeInstanceDestroy(ComputeInstance ComputeInstance) Return {\n\treturn nvmlComputeInstanceDestroy(ComputeInstance)\n}\n\nfunc (ComputeInstance ComputeInstance) Destroy() Return {\n\treturn ComputeInstanceDestroy(ComputeInstance)\n}\n\n// nvml.GpuInstanceGetComputeInstances()\nfunc GpuInstanceGetComputeInstances(GpuInstance GpuInstance, Info *ComputeInstanceProfileInfo) ([]ComputeInstance, Return) {\n\tif Info == nil {\n\t\treturn nil, ERROR_INVALID_ARGUMENT\n\t}\n\tvar Count uint32 = Info.InstanceCount\n\tComputeInstances := make([]ComputeInstance, Count)\n\tret := nvmlGpuInstanceGetComputeInstances(GpuInstance, Info.Id, &ComputeInstances[0], &Count)\n\treturn ComputeInstances[:Count], ret\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstances(Info *ComputeInstanceProfileInfo) ([]ComputeInstance, Return) {\n\treturn GpuInstanceGetComputeInstances(GpuInstance, Info)\n}\n\n// nvml.GpuInstanceGetComputeInstanceById()\nfunc GpuInstanceGetComputeInstanceById(GpuInstance GpuInstance, Id int) (ComputeInstance, Return) {\n\tvar ComputeInstance ComputeInstance\n\tret := nvmlGpuInstanceGetComputeInstanceById(GpuInstance, uint32(Id), &ComputeInstance)\n\treturn ComputeInstance, ret\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstanceById(Id int) (ComputeInstance, Return) {\n\treturn GpuInstanceGetComputeInstanceById(GpuInstance, Id)\n}\n\n// nvml.ComputeInstanceGetInfo()\nfunc ComputeInstanceGetInfo(ComputeInstance ComputeInstance) (ComputeInstanceInfo, Return) {\n\tvar Info ComputeInstanceInfo\n\tret := nvmlComputeInstanceGetInfo(ComputeInstance, &Info)\n\treturn Info, ret\n}\n\nfunc (ComputeInstance ComputeInstance) GetInfo() (ComputeInstanceInfo, Return) {\n\treturn ComputeInstanceGetInfo(ComputeInstance)\n}\n\n// nvml.DeviceIsMigDeviceHandle()\nfunc DeviceIsMigDeviceHandle(Device Device) (bool, Return) {\n\tvar IsMigDevice uint32\n\tret := nvmlDeviceIsMigDeviceHandle(Device, &IsMigDevice)\n\treturn (IsMigDevice != 0), ret\n}\n\nfunc (Device Device) IsMigDeviceHandle() (bool, Return) {\n\treturn DeviceIsMigDeviceHandle(Device)\n}\n\n// nvml DeviceGetGpuInstanceId()\nfunc DeviceGetGpuInstanceId(Device Device) (int, Return) {\n\tvar Id uint32\n\tret := nvmlDeviceGetGpuInstanceId(Device, &Id)\n\treturn int(Id), ret\n}\n\nfunc (Device Device) GetGpuInstanceId() (int, Return) {\n\treturn DeviceGetGpuInstanceId(Device)\n}\n\n// nvml.DeviceGetComputeInstanceId()\nfunc DeviceGetComputeInstanceId(Device Device) (int, Return) {\n\tvar Id uint32\n\tret := nvmlDeviceGetComputeInstanceId(Device, &Id)\n\treturn int(Id), ret\n}\n\nfunc (Device Device) GetComputeInstanceId() (int, Return) {\n\treturn DeviceGetComputeInstanceId(Device)\n}\n\n// nvml.DeviceGetMaxMigDeviceCount()\nfunc DeviceGetMaxMigDeviceCount(Device Device) (int, Return) {\n\tvar Count uint32\n\tret := nvmlDeviceGetMaxMigDeviceCount(Device, &Count)\n\treturn int(Count), ret\n}\n\nfunc (Device Device) GetMaxMigDeviceCount() (int, Return) {\n\treturn DeviceGetMaxMigDeviceCount(Device)\n}\n\n// nvml.DeviceGetMigDeviceHandleByIndex()\nfunc DeviceGetMigDeviceHandleByIndex(device Device, Index int) (Device, Return) {\n\tvar MigDevice Device\n\tret := nvmlDeviceGetMigDeviceHandleByIndex(device, uint32(Index), &MigDevice)\n\treturn MigDevice, ret\n}\n\nfunc (Device Device) GetMigDeviceHandleByIndex(Index int) (Device, Return) {\n\treturn DeviceGetMigDeviceHandleByIndex(Device, Index)\n}\n\n// nvml.DeviceGetDeviceHandleFromMigDeviceHandle()\nfunc DeviceGetDeviceHandleFromMigDeviceHandle(MigDevice Device) (Device, Return) {\n\tvar Device Device\n\tret := nvmlDeviceGetDeviceHandleFromMigDeviceHandle(MigDevice, &Device)\n\treturn Device, ret\n}\n\nfunc (MigDevice Device) GetDeviceHandleFromMigDeviceHandle() (Device, Return) {\n\treturn DeviceGetDeviceHandleFromMigDeviceHandle(MigDevice)\n}\n\n// nvml.DeviceGetBusType()\nfunc DeviceGetBusType(Device Device) (BusType, Return) {\n\tvar Type BusType\n\tret := nvmlDeviceGetBusType(Device, &Type)\n\treturn Type, ret\n}\n\nfunc (Device Device) GetBusType() (BusType, Return) {\n\treturn DeviceGetBusType(Device)\n}\n\n// nvml.DeviceSetDefaultFanSpeed_v2()\nfunc DeviceSetDefaultFanSpeed_v2(Device Device, Fan int) Return {\n\treturn nvmlDeviceSetDefaultFanSpeed_v2(Device, uint32(Fan))\n}\n\nfunc (Device Device) SetDefaultFanSpeed_v2(Fan int) Return {\n\treturn DeviceSetDefaultFanSpeed_v2(Device, Fan)\n}\n\n// nvml.DeviceGetMinMaxFanSpeed()\nfunc DeviceGetMinMaxFanSpeed(Device Device) (int, int, Return) {\n\tvar MinSpeed, MaxSpeed uint32\n\tret := nvmlDeviceGetMinMaxFanSpeed(Device, &MinSpeed, &MaxSpeed)\n\treturn int(MinSpeed), int(MaxSpeed), ret\n}\n\nfunc (Device Device) GetMinMaxFanSpeed() (int, int, Return) {\n\treturn DeviceGetMinMaxFanSpeed(Device)\n}\n\n// nvml.DeviceGetThermalSettings()\nfunc DeviceGetThermalSettings(Device Device, SensorIndex uint32) (GpuThermalSettings, Return) {\n\tvar PThermalSettings GpuThermalSettings\n\tret := nvmlDeviceGetThermalSettings(Device, SensorIndex, &PThermalSettings)\n\treturn PThermalSettings, ret\n}\n\nfunc (Device Device) GetThermalSettings(SensorIndex uint32) (GpuThermalSettings, Return) {\n\treturn DeviceGetThermalSettings(Device, SensorIndex)\n}\n\n// nvml.DeviceGetDefaultEccMode()\nfunc DeviceGetDefaultEccMode(Device Device) (EnableState, Return) {\n\tvar DefaultMode EnableState\n\tret := nvmlDeviceGetDefaultEccMode(Device, &DefaultMode)\n\treturn DefaultMode, ret\n}\n\nfunc (Device Device) GetDefaultEccMode() (EnableState, Return) {\n\treturn DeviceGetDefaultEccMode(Device)\n}\n\n// nvml.DeviceGetPcieSpeed()\nfunc DeviceGetPcieSpeed(Device Device) (int, Return) {\n\tvar PcieSpeed uint32\n\tret := nvmlDeviceGetPcieSpeed(Device, &PcieSpeed)\n\treturn int(PcieSpeed), ret\n}\n\nfunc (Device Device) GetPcieSpeed() (int, Return) {\n\treturn DeviceGetPcieSpeed(Device)\n}\n\n// nvml.DeviceGetGspFirmwareVersion()\nfunc DeviceGetGspFirmwareVersion(Device Device) (string, Return) {\n\tVersion := make([]byte, GSP_FIRMWARE_VERSION_BUF_SIZE)\n\tret := nvmlDeviceGetGspFirmwareVersion(Device, &Version[0])\n\treturn string(Version[:clen(Version)]), ret\n}\n\nfunc (Device Device) GetGspFirmwareVersion() (string, Return) {\n\treturn DeviceGetGspFirmwareVersion(Device)\n}\n\n// nvml.DeviceGetGspFirmwareMode()\nfunc DeviceGetGspFirmwareMode(Device Device) (bool, bool, Return) {\n\tvar IsEnabled, DefaultMode uint32\n\tret := nvmlDeviceGetGspFirmwareMode(Device, &IsEnabled, &DefaultMode)\n\treturn (IsEnabled != 0), (DefaultMode != 0), ret\n}\n\nfunc (Device Device) GetGspFirmwareMode() (bool, bool, Return) {\n\treturn DeviceGetGspFirmwareMode(Device)\n}\n\n// nvml.DeviceGetDynamicPstatesInfo()\nfunc DeviceGetDynamicPstatesInfo(Device Device) (GpuDynamicPstatesInfo, Return) {\n\tvar PDynamicPstatesInfo GpuDynamicPstatesInfo\n\tret := nvmlDeviceGetDynamicPstatesInfo(Device, &PDynamicPstatesInfo)\n\treturn PDynamicPstatesInfo, ret\n}\n\nfunc (Device Device) GetDynamicPstatesInfo() (GpuDynamicPstatesInfo, Return) {\n\treturn DeviceGetDynamicPstatesInfo(Device)\n}\n\n// nvml.DeviceSetFanSpeed_v2()\nfunc DeviceSetFanSpeed_v2(Device Device, Fan int, Speed int) Return {\n\treturn nvmlDeviceSetFanSpeed_v2(Device, uint32(Fan), uint32(Speed))\n}\n\nfunc (Device Device) SetFanSpeed_v2(Fan int, Speed int) Return {\n\treturn DeviceSetFanSpeed_v2(Device, Fan, Speed)\n}\n\n// nvml.DeviceGetGpcClkVfOffset()\nfunc DeviceGetGpcClkVfOffset(Device Device) (int, Return) {\n\tvar Offset int32\n\tret := nvmlDeviceGetGpcClkVfOffset(Device, &Offset)\n\treturn int(Offset), ret\n}\n\nfunc (Device Device) GetGpcClkVfOffset() (int, Return) {\n\treturn DeviceGetGpcClkVfOffset(Device)\n}\n\n// nvml.DeviceSetGpcClkVfOffset()\nfunc DeviceSetGpcClkVfOffset(Device Device, Offset int) Return {\n\treturn nvmlDeviceSetGpcClkVfOffset(Device, int32(Offset))\n}\n\nfunc (Device Device) SetGpcClkVfOffset(Offset int) Return {\n\treturn DeviceSetGpcClkVfOffset(Device, Offset)\n}\n\n// nvml.DeviceGetMinMaxClockOfPState()\nfunc DeviceGetMinMaxClockOfPState(Device Device, _type ClockType, Pstate Pstates) (uint32, uint32, Return) {\n\tvar MinClockMHz, MaxClockMHz uint32\n\tret := nvmlDeviceGetMinMaxClockOfPState(Device, _type, Pstate, &MinClockMHz, &MaxClockMHz)\n\treturn MinClockMHz, MaxClockMHz, ret\n}\n\nfunc (Device Device) GetMinMaxClockOfPState(_type ClockType, Pstate Pstates) (uint32, uint32, Return) {\n\treturn DeviceGetMinMaxClockOfPState(Device, _type, Pstate)\n}\n\n// nvml.DeviceGetSupportedPerformanceStates()\nfunc DeviceGetSupportedPerformanceStates(Device Device) ([]Pstates, Return) {\n\tPstates := make([]Pstates, MAX_GPU_PERF_PSTATES)\n\tret := nvmlDeviceGetSupportedPerformanceStates(Device, &Pstates[0], MAX_GPU_PERF_PSTATES)\n\tfor i := 0; i < MAX_GPU_PERF_PSTATES; i++ {\n\t\tif Pstates[i] == PSTATE_UNKNOWN {\n\t\t\treturn Pstates[0:i], ret\n\t\t}\n\t}\n\treturn Pstates, ret\n}\n\nfunc (Device Device) GetSupportedPerformanceStates() ([]Pstates, Return) {\n\treturn DeviceGetSupportedPerformanceStates(Device)\n}\n\n// nvml.DeviceGetTargetFanSpeed()\nfunc DeviceGetTargetFanSpeed(Device Device, Fan int) (int, Return) {\n\tvar TargetSpeed uint32\n\tret := nvmlDeviceGetTargetFanSpeed(Device, uint32(Fan), &TargetSpeed)\n\treturn int(TargetSpeed), ret\n}\n\nfunc (Device Device) GetTargetFanSpeed(Fan int) (int, Return) {\n\treturn DeviceGetTargetFanSpeed(Device, Fan)\n}\n\n// nvml.DeviceGetMemClkVfOffset()\nfunc DeviceGetMemClkVfOffset(Device Device) (int, Return) {\n\tvar Offset int32\n\tret := nvmlDeviceGetMemClkVfOffset(Device, &Offset)\n\treturn int(Offset), ret\n}\n\nfunc (Device Device) GetMemClkVfOffset() (int, Return) {\n\treturn DeviceGetMemClkVfOffset(Device)\n}\n\n// nvml.DeviceSetMemClkVfOffset()\nfunc DeviceSetMemClkVfOffset(Device Device, Offset int) Return {\n\treturn nvmlDeviceSetMemClkVfOffset(Device, int32(Offset))\n}\n\nfunc (Device Device) SetMemClkVfOffset(Offset int) Return {\n\treturn DeviceSetMemClkVfOffset(Device, Offset)\n}\n\n// nvml.DeviceGetGpcClkMinMaxVfOffset()\nfunc DeviceGetGpcClkMinMaxVfOffset(Device Device) (int, int, Return) {\n\tvar MinOffset, MaxOffset int32\n\tret := nvmlDeviceGetGpcClkMinMaxVfOffset(Device, &MinOffset, &MaxOffset)\n\treturn int(MinOffset), int(MaxOffset), ret\n}\n\nfunc (Device Device) GetGpcClkMinMaxVfOffset() (int, int, Return) {\n\treturn DeviceGetGpcClkMinMaxVfOffset(Device)\n}\n\n// nvml.DeviceGetMemClkMinMaxVfOffset()\nfunc DeviceGetMemClkMinMaxVfOffset(Device Device) (int, int, Return) {\n\tvar MinOffset, MaxOffset int32\n\tret := nvmlDeviceGetMemClkMinMaxVfOffset(Device, &MinOffset, &MaxOffset)\n\treturn int(MinOffset), int(MaxOffset), ret\n}\n\nfunc (Device Device) GetMemClkMinMaxVfOffset() (int, int, Return) {\n\treturn DeviceGetMemClkMinMaxVfOffset(Device)\n}\n\n// nvml.DeviceGetGpuMaxPcieLinkGeneration()\nfunc DeviceGetGpuMaxPcieLinkGeneration(Device Device) (int, Return) {\n\tvar MaxLinkGenDevice uint32\n\tret := nvmlDeviceGetGpuMaxPcieLinkGeneration(Device, &MaxLinkGenDevice)\n\treturn int(MaxLinkGenDevice), ret\n}\n\nfunc (Device Device) GetGpuMaxPcieLinkGeneration() (int, Return) {\n\treturn DeviceGetGpuMaxPcieLinkGeneration(Device)\n}\n\n// nvml.DeviceGetFanControlPolicy_v2()\nfunc DeviceGetFanControlPolicy_v2(Device Device, Fan int) (FanControlPolicy, Return) {\n\tvar Policy FanControlPolicy\n\tret := nvmlDeviceGetFanControlPolicy_v2(Device, uint32(Fan), &Policy)\n\treturn Policy, ret\n}\n\nfunc (Device Device) GetFanControlPolicy_v2(Fan int) (FanControlPolicy, Return) {\n\treturn DeviceGetFanControlPolicy_v2(Device, Fan)\n}\n\n// nvml.DeviceSetFanControlPolicy()\nfunc DeviceSetFanControlPolicy(Device Device, Fan int, Policy FanControlPolicy) Return {\n\treturn nvmlDeviceSetFanControlPolicy(Device, uint32(Fan), Policy)\n}\n\nfunc (Device Device) SetFanControlPolicy(Fan int, Policy FanControlPolicy) Return {\n\treturn DeviceSetFanControlPolicy(Device, Fan, Policy)\n}\n\n// nvml.DeviceClearFieldValues()\nfunc DeviceClearFieldValues(Device Device, Values []FieldValue) Return {\n\tValuesCount := len(Values)\n\treturn nvmlDeviceClearFieldValues(Device, int32(ValuesCount), &Values[0])\n}\n\nfunc (Device Device) ClearFieldValues(Values []FieldValue) Return {\n\treturn DeviceClearFieldValues(Device, Values)\n}\n\n// nvml.DeviceGetVgpuCapabilities()\nfunc DeviceGetVgpuCapabilities(Device Device, Capability DeviceVgpuCapability) (bool, Return) {\n\tvar CapResult uint32\n\tret := nvmlDeviceGetVgpuCapabilities(Device, Capability, &CapResult)\n\treturn (CapResult != 0), ret\n}\n\nfunc (Device Device) GetVgpuCapabilities(Capability DeviceVgpuCapability) (bool, Return) {\n\treturn DeviceGetVgpuCapabilities(Device, Capability)\n}\n\n// nvml.DeviceGetVgpuSchedulerLog()\nfunc DeviceGetVgpuSchedulerLog(Device Device) (VgpuSchedulerLog, Return) {\n\tvar PSchedulerLog VgpuSchedulerLog\n\tret := nvmlDeviceGetVgpuSchedulerLog(Device, &PSchedulerLog)\n\treturn PSchedulerLog, ret\n}\n\nfunc (Device Device) GetVgpuSchedulerLog() (VgpuSchedulerLog, Return) {\n\treturn DeviceGetVgpuSchedulerLog(Device)\n}\n\n// nvml.DeviceGetVgpuSchedulerState()\nfunc DeviceGetVgpuSchedulerState(Device Device) (VgpuSchedulerGetState, Return) {\n\tvar PSchedulerState VgpuSchedulerGetState\n\tret := nvmlDeviceGetVgpuSchedulerState(Device, &PSchedulerState)\n\treturn PSchedulerState, ret\n}\n\nfunc (Device Device) GetVgpuSchedulerState() (VgpuSchedulerGetState, Return) {\n\treturn DeviceGetVgpuSchedulerState(Device)\n}\n\n// nvml.DeviceSetVgpuSchedulerState()\nfunc DeviceSetVgpuSchedulerState(Device Device, PSchedulerState *VgpuSchedulerSetState) Return {\n\treturn nvmlDeviceSetVgpuSchedulerState(Device, PSchedulerState)\n}\n\nfunc (Device Device) SetVgpuSchedulerState(PSchedulerState *VgpuSchedulerSetState) Return {\n\treturn DeviceSetVgpuSchedulerState(Device, PSchedulerState)\n}\n\n// nvml.DeviceGetVgpuSchedulerCapabilities()\nfunc DeviceGetVgpuSchedulerCapabilities(Device Device) (VgpuSchedulerCapabilities, Return) {\n\tvar PCapabilities VgpuSchedulerCapabilities\n\tret := nvmlDeviceGetVgpuSchedulerCapabilities(Device, &PCapabilities)\n\treturn PCapabilities, ret\n}\n\nfunc (Device Device) GetVgpuSchedulerCapabilities() (VgpuSchedulerCapabilities, Return) {\n\treturn DeviceGetVgpuSchedulerCapabilities(Device)\n}\n\n// nvml.GpuInstanceGetComputeInstancePossiblePlacements()\nfunc GpuInstanceGetComputeInstancePossiblePlacements(GpuInstance GpuInstance, Info *ComputeInstanceProfileInfo) ([]ComputeInstancePlacement, Return) {\n\tvar Count uint32\n\tret := nvmlGpuInstanceGetComputeInstancePossiblePlacements(GpuInstance, Info.Id, nil, &Count)\n\tif ret != SUCCESS {\n\t\treturn nil, ret\n\t}\n\tif Count == 0 {\n\t\treturn []ComputeInstancePlacement{}, ret\n\t}\n\tPlacementArray := make([]ComputeInstancePlacement, Count)\n\tret = nvmlGpuInstanceGetComputeInstancePossiblePlacements(GpuInstance, Info.Id, &PlacementArray[0], &Count)\n\treturn PlacementArray, ret\n}\n\nfunc (GpuInstance GpuInstance) GetComputeInstancePossiblePlacements(Info *ComputeInstanceProfileInfo) ([]ComputeInstancePlacement, Return) {\n\treturn GpuInstanceGetComputeInstancePossiblePlacements(GpuInstance, Info)\n}\n\n// nvml.GpuInstanceCreateComputeInstanceWithPlacement()\nfunc GpuInstanceCreateComputeInstanceWithPlacement(GpuInstance GpuInstance, Info *ComputeInstanceProfileInfo, Placement *ComputeInstancePlacement, ComputeInstance *ComputeInstance) Return {\n\treturn nvmlGpuInstanceCreateComputeInstanceWithPlacement(GpuInstance, Info.Id, Placement, ComputeInstance)\n}\n\nfunc (GpuInstance GpuInstance) CreateComputeInstanceWithPlacement(Info *ComputeInstanceProfileInfo, Placement *ComputeInstancePlacement, ComputeInstance *ComputeInstance) Return {\n\treturn GpuInstanceCreateComputeInstanceWithPlacement(GpuInstance, Info, Placement, ComputeInstance)\n}\n\n// nvml.DeviceGetGpuFabricInfo()\nfunc DeviceGetGpuFabricInfo(Device Device) (GpuFabricInfo, Return) {\n\tvar GpuFabricInfo GpuFabricInfo\n\tret := nvmlDeviceGetGpuFabricInfo(Device, &GpuFabricInfo)\n\treturn GpuFabricInfo, ret\n}\n\nfunc (Device Device) GetGpuFabricInfo() (GpuFabricInfo, Return) {\n\treturn DeviceGetGpuFabricInfo(Device)\n}\n\n// nvml.DeviceCcuGetStreamState()\nfunc DeviceCcuGetStreamState(Device Device) (int, Return) {\n\tvar State uint32\n\tret := nvmlDeviceCcuGetStreamState(Device, &State)\n\treturn int(State), ret\n}\n\nfunc (Device Device) CcuGetStreamState() (int, Return) {\n\treturn DeviceCcuGetStreamState(Device)\n}\n\n// nvml.DeviceCcuSetStreamState()\nfunc DeviceCcuSetStreamState(Device Device, State int) Return {\n\treturn nvmlDeviceCcuSetStreamState(Device, uint32(State))\n}\n\nfunc (Device Device) CcuSetStreamState(State int) Return {\n\treturn DeviceCcuSetStreamState(Device, State)\n}\n\n// nvml.DeviceSetNvLinkDeviceLowPowerThreshold()\nfunc DeviceSetNvLinkDeviceLowPowerThreshold(Device Device, Info *NvLinkPowerThres) Return {\n\treturn nvmlDeviceSetNvLinkDeviceLowPowerThreshold(Device, Info)\n}\n\nfunc (Device Device) SetNvLinkDeviceLowPowerThreshold(Info *NvLinkPowerThres) Return {\n\treturn DeviceSetNvLinkDeviceLowPowerThreshold(Device, Info)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/doc.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// WARNING: THIS FILE WAS AUTOMATICALLY GENERATED.\n// Code generated by https://git.io/c-for-go. DO NOT EDIT.\n\n/*\nPackage NVML bindings\n*/\npackage nvml\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/dynamicLibrary_mock.go",
    "content": "// Code generated by moq; DO NOT EDIT.\n// github.com/matryer/moq\n\npackage nvml\n\nimport (\n\t\"sync\"\n)\n\n// Ensure, that dynamicLibraryMock does implement dynamicLibrary.\n// If this is not the case, regenerate this file with moq.\nvar _ dynamicLibrary = &dynamicLibraryMock{}\n\n// dynamicLibraryMock is a mock implementation of dynamicLibrary.\n//\n//\tfunc TestSomethingThatUsesdynamicLibrary(t *testing.T) {\n//\n//\t\t// make and configure a mocked dynamicLibrary\n//\t\tmockeddynamicLibrary := &dynamicLibraryMock{\n//\t\t\tCloseFunc: func() error {\n//\t\t\t\tpanic(\"mock out the Close method\")\n//\t\t\t},\n//\t\t\tLookupFunc: func(s string) error {\n//\t\t\t\tpanic(\"mock out the Lookup method\")\n//\t\t\t},\n//\t\t\tOpenFunc: func() error {\n//\t\t\t\tpanic(\"mock out the Open method\")\n//\t\t\t},\n//\t\t}\n//\n//\t\t// use mockeddynamicLibrary in code that requires dynamicLibrary\n//\t\t// and then make assertions.\n//\n//\t}\ntype dynamicLibraryMock struct {\n\t// CloseFunc mocks the Close method.\n\tCloseFunc func() error\n\n\t// LookupFunc mocks the Lookup method.\n\tLookupFunc func(s string) error\n\n\t// OpenFunc mocks the Open method.\n\tOpenFunc func() error\n\n\t// calls tracks calls to the methods.\n\tcalls struct {\n\t\t// Close holds details about calls to the Close method.\n\t\tClose []struct {\n\t\t}\n\t\t// Lookup holds details about calls to the Lookup method.\n\t\tLookup []struct {\n\t\t\t// S is the s argument value.\n\t\t\tS string\n\t\t}\n\t\t// Open holds details about calls to the Open method.\n\t\tOpen []struct {\n\t\t}\n\t}\n\tlockClose  sync.RWMutex\n\tlockLookup sync.RWMutex\n\tlockOpen   sync.RWMutex\n}\n\n// Close calls CloseFunc.\nfunc (mock *dynamicLibraryMock) Close() error {\n\tcallInfo := struct {\n\t}{}\n\tmock.lockClose.Lock()\n\tmock.calls.Close = append(mock.calls.Close, callInfo)\n\tmock.lockClose.Unlock()\n\tif mock.CloseFunc == nil {\n\t\tvar (\n\t\t\terrOut error\n\t\t)\n\t\treturn errOut\n\t}\n\treturn mock.CloseFunc()\n}\n\n// CloseCalls gets all the calls that were made to Close.\n// Check the length with:\n//\n//\tlen(mockeddynamicLibrary.CloseCalls())\nfunc (mock *dynamicLibraryMock) CloseCalls() []struct {\n} {\n\tvar calls []struct {\n\t}\n\tmock.lockClose.RLock()\n\tcalls = mock.calls.Close\n\tmock.lockClose.RUnlock()\n\treturn calls\n}\n\n// Lookup calls LookupFunc.\nfunc (mock *dynamicLibraryMock) Lookup(s string) error {\n\tcallInfo := struct {\n\t\tS string\n\t}{\n\t\tS: s,\n\t}\n\tmock.lockLookup.Lock()\n\tmock.calls.Lookup = append(mock.calls.Lookup, callInfo)\n\tmock.lockLookup.Unlock()\n\tif mock.LookupFunc == nil {\n\t\tvar (\n\t\t\terrOut error\n\t\t)\n\t\treturn errOut\n\t}\n\treturn mock.LookupFunc(s)\n}\n\n// LookupCalls gets all the calls that were made to Lookup.\n// Check the length with:\n//\n//\tlen(mockeddynamicLibrary.LookupCalls())\nfunc (mock *dynamicLibraryMock) LookupCalls() []struct {\n\tS string\n} {\n\tvar calls []struct {\n\t\tS string\n\t}\n\tmock.lockLookup.RLock()\n\tcalls = mock.calls.Lookup\n\tmock.lockLookup.RUnlock()\n\treturn calls\n}\n\n// Open calls OpenFunc.\nfunc (mock *dynamicLibraryMock) Open() error {\n\tcallInfo := struct {\n\t}{}\n\tmock.lockOpen.Lock()\n\tmock.calls.Open = append(mock.calls.Open, callInfo)\n\tmock.lockOpen.Unlock()\n\tif mock.OpenFunc == nil {\n\t\tvar (\n\t\t\terrOut error\n\t\t)\n\t\treturn errOut\n\t}\n\treturn mock.OpenFunc()\n}\n\n// OpenCalls gets all the calls that were made to Open.\n// Check the length with:\n//\n//\tlen(mockeddynamicLibrary.OpenCalls())\nfunc (mock *dynamicLibraryMock) OpenCalls() []struct {\n} {\n\tvar calls []struct {\n\t}\n\tmock.lockOpen.RLock()\n\tcalls = mock.calls.Open\n\tmock.lockOpen.RUnlock()\n\treturn calls\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\n// nvml.EventSetCreate()\nfunc EventSetCreate() (EventSet, Return) {\n\tvar Set EventSet\n\tret := nvmlEventSetCreate(&Set)\n\treturn Set, ret\n}\n\n// nvml.EventSetWait()\nfunc EventSetWait(Set EventSet, Timeoutms uint32) (EventData, Return) {\n\tvar Data EventData\n\tret := nvmlEventSetWait(Set, &Data, Timeoutms)\n\treturn Data, ret\n}\n\nfunc (Set EventSet) Wait(Timeoutms uint32) (EventData, Return) {\n\treturn EventSetWait(Set, Timeoutms)\n}\n\n// nvml.EventSetFree()\nfunc EventSetFree(Set EventSet) Return {\n\treturn nvmlEventSetFree(Set)\n}\n\nfunc (Set EventSet) Free() Return {\n\treturn EventSetFree(Set)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go",
    "content": "// Copyright (c) 2022, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\n// nvml.GpmMetricsGet()\ntype GpmMetricsGetVType struct {\n\tmetricsGet *GpmMetricsGetType\n}\n\nfunc GpmMetricsGetV(MetricsGet *GpmMetricsGetType) GpmMetricsGetVType {\n\treturn GpmMetricsGetVType{MetricsGet}\n}\n\nfunc (MetricsGetV GpmMetricsGetVType) V1() Return {\n\tMetricsGetV.metricsGet.Version = 1\n\treturn nvmlGpmMetricsGet(MetricsGetV.metricsGet)\n}\n\nfunc GpmMetricsGet(MetricsGet *GpmMetricsGetType) Return {\n\tMetricsGet.Version = GPM_METRICS_GET_VERSION\n\treturn nvmlGpmMetricsGet(MetricsGet)\n}\n\n// nvml.GpmSampleFree()\nfunc GpmSampleFree(GpmSample GpmSample) Return {\n\treturn nvmlGpmSampleFree(GpmSample)\n}\n\n// nvml.GpmSampleAlloc()\nfunc GpmSampleAlloc(GpmSample *GpmSample) Return {\n\treturn nvmlGpmSampleAlloc(GpmSample)\n}\n\n// nvml.GpmSampleGet()\nfunc GpmSampleGet(Device Device, GpmSample GpmSample) Return {\n\treturn nvmlGpmSampleGet(Device, GpmSample)\n}\n\nfunc (Device Device) GpmSampleGet(GpmSample GpmSample) Return {\n\treturn GpmSampleGet(Device, GpmSample)\n}\n\n// nvml.GpmQueryDeviceSupport()\ntype GpmSupportV struct {\n\tdevice Device\n}\n\nfunc GpmQueryDeviceSupportV(Device Device) GpmSupportV {\n\treturn GpmSupportV{Device}\n}\n\nfunc (Device Device) GpmQueryDeviceSupportV() GpmSupportV {\n\treturn GpmSupportV{Device}\n}\n\nfunc (GpmSupportV GpmSupportV) V1() (GpmSupport, Return) {\n\tvar GpmSupport GpmSupport\n\tGpmSupport.Version = 1\n\tret := nvmlGpmQueryDeviceSupport(GpmSupportV.device, &GpmSupport)\n\treturn GpmSupport, ret\n}\n\nfunc GpmQueryDeviceSupport(Device Device) (GpmSupport, Return) {\n\tvar GpmSupport GpmSupport\n\tGpmSupport.Version = GPM_SUPPORT_VERSION\n\tret := nvmlGpmQueryDeviceSupport(Device, &GpmSupport)\n\treturn GpmSupport, ret\n}\n\nfunc (Device Device) GpmQueryDeviceSupport() (GpmSupport, Return) {\n\treturn GpmQueryDeviceSupport(Device)\n}\n\n// nvml.GpmMigSampleGet()\nfunc GpmMigSampleGet(Device Device, GpuInstanceId int, GpmSample GpmSample) Return {\n\treturn nvmlGpmMigSampleGet(Device, uint32(GpuInstanceId), GpmSample)\n}\n\nfunc (Device Device) GpmMigSampleGet(GpuInstanceId int, GpmSample GpmSample) Return {\n\treturn GpmMigSampleGet(Device, GpuInstanceId, GpmSample)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/init.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\nimport \"C\"\n\n// nvml.Init()\nfunc Init() Return {\n\tif err := libnvml.load(); err != nil {\n\t\treturn ERROR_LIBRARY_NOT_FOUND\n\t}\n\treturn nvmlInit()\n}\n\n// nvml.InitWithFlags()\nfunc InitWithFlags(Flags uint32) Return {\n\tif err := libnvml.load(); err != nil {\n\t\treturn ERROR_LIBRARY_NOT_FOUND\n\t}\n\treturn nvmlInitWithFlags(Flags)\n}\n\n// nvml.Shutdown()\nfunc Shutdown() Return {\n\tret := nvmlShutdown()\n\tif ret != SUCCESS {\n\t\treturn ret\n\t}\n\n\terr := libnvml.close()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/lib.go",
    "content": "/**\n# Copyright 2023 NVIDIA CORPORATION\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n**/\n\npackage nvml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/NVIDIA/go-nvml/pkg/dl\"\n)\n\nimport \"C\"\n\nconst (\n\tdefaultNvmlLibraryName      = \"libnvidia-ml.so.1\"\n\tdefaultNvmlLibraryLoadFlags = dl.RTLD_LAZY | dl.RTLD_GLOBAL\n)\n\nvar errLibraryNotLoaded = errors.New(\"library not loaded\")\nvar errLibraryAlreadyLoaded = errors.New(\"library already loaded\")\n\n// library represents an nvml library.\n// This includes a reference to the underlying DynamicLibrary\ntype library struct {\n\tsync.Mutex\n\tpath  string\n\tflags int\n\tdl    dynamicLibrary\n}\n\n// libnvml is a global instance of the nvml library.\nvar libnvml = library{\n\tpath:  defaultNvmlLibraryName,\n\tflags: defaultNvmlLibraryLoadFlags,\n}\n\nvar _ Interface = (*library)(nil)\n\n// GetLibrary returns a the library as a Library interface.\nfunc (l *library) GetLibrary() Library {\n\treturn l\n}\n\n// GetLibrary returns a representation of the underlying library that implements the Library interface.\nfunc GetLibrary() Library {\n\treturn libnvml.GetLibrary()\n}\n\n// Lookup checks whether the specified library symbol exists in the library.\n// Note that this requires that the library be loaded.\nfunc (l *library) Lookup(name string) error {\n\tif l == nil || l.dl == nil {\n\t\treturn fmt.Errorf(\"error looking up %s: %w\", name, errLibraryNotLoaded)\n\t}\n\treturn l.dl.Lookup(name)\n}\n\n// newDynamicLibrary is a function variable that can be overridden for testing.\nvar newDynamicLibrary = func(path string, flags int) dynamicLibrary {\n\treturn dl.New(path, flags)\n}\n\n// load initializes the library and updates the versioned symbols.\n// Multiple calls to an already loaded library will return without error.\nfunc (l *library) load() error {\n\tl.Lock()\n\tdefer l.Unlock()\n\tif l.dl != nil {\n\t\treturn nil\n\t}\n\n\tdl := newDynamicLibrary(l.path, l.flags)\n\terr := dl.Open()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error opening %s: %w\", l.path, err)\n\t}\n\n\tl.dl = dl\n\tl.updateVersionedSymbols()\n\n\treturn nil\n}\n\n// close the underlying library and ensure that the global pointer to the\n// library is set to nil to ensure that subsequent calls to open will reinitialize it.\n// Multiple calls to an already closed nvml library will return without error.\nfunc (l *library) close() error {\n\tl.Lock()\n\tdefer l.Unlock()\n\n\tif l.dl == nil {\n\t\treturn nil\n\t}\n\n\terr := l.dl.Close()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error closing %s: %w\", l.path, err)\n\t}\n\n\tl.dl = nil\n\n\treturn nil\n}\n\n// Default all versioned APIs to v1 (to infer the types)\nvar nvmlInit = nvmlInit_v1\nvar nvmlDeviceGetPciInfo = nvmlDeviceGetPciInfo_v1\nvar nvmlDeviceGetCount = nvmlDeviceGetCount_v1\nvar nvmlDeviceGetHandleByIndex = nvmlDeviceGetHandleByIndex_v1\nvar nvmlDeviceGetHandleByPciBusId = nvmlDeviceGetHandleByPciBusId_v1\nvar nvmlDeviceGetNvLinkRemotePciInfo = nvmlDeviceGetNvLinkRemotePciInfo_v1\nvar nvmlDeviceRemoveGpu = nvmlDeviceRemoveGpu_v1\nvar nvmlDeviceGetGridLicensableFeatures = nvmlDeviceGetGridLicensableFeatures_v1\nvar nvmlEventSetWait = nvmlEventSetWait_v1\nvar nvmlDeviceGetAttributes = nvmlDeviceGetAttributes_v1\nvar nvmlComputeInstanceGetInfo = nvmlComputeInstanceGetInfo_v1\nvar DeviceGetComputeRunningProcesses = deviceGetComputeRunningProcesses_v1\nvar DeviceGetGraphicsRunningProcesses = deviceGetGraphicsRunningProcesses_v1\nvar DeviceGetMPSComputeRunningProcesses = deviceGetMPSComputeRunningProcesses_v1\nvar GetBlacklistDeviceCount = GetExcludedDeviceCount\nvar GetBlacklistDeviceInfoByIndex = GetExcludedDeviceInfoByIndex\nvar nvmlDeviceGetGpuInstancePossiblePlacements = nvmlDeviceGetGpuInstancePossiblePlacements_v1\nvar nvmlVgpuInstanceGetLicenseInfo = nvmlVgpuInstanceGetLicenseInfo_v1\n\n// BlacklistDeviceInfo was replaced by ExcludedDeviceInfo\ntype BlacklistDeviceInfo = ExcludedDeviceInfo\n\ntype ProcessInfo_v1Slice []ProcessInfo_v1\ntype ProcessInfo_v2Slice []ProcessInfo_v2\n\nfunc (pis ProcessInfo_v1Slice) ToProcessInfoSlice() []ProcessInfo {\n\tvar newInfos []ProcessInfo\n\tfor _, pi := range pis {\n\t\tinfo := ProcessInfo{\n\t\t\tPid:               pi.Pid,\n\t\t\tUsedGpuMemory:     pi.UsedGpuMemory,\n\t\t\tGpuInstanceId:     0xFFFFFFFF, // GPU instance ID is invalid in v1\n\t\t\tComputeInstanceId: 0xFFFFFFFF, // Compute instance ID is invalid in v1\n\t\t}\n\t\tnewInfos = append(newInfos, info)\n\t}\n\treturn newInfos\n}\n\nfunc (pis ProcessInfo_v2Slice) ToProcessInfoSlice() []ProcessInfo {\n\tvar newInfos []ProcessInfo\n\tfor _, pi := range pis {\n\t\tinfo := ProcessInfo(pi)\n\t\tnewInfos = append(newInfos, info)\n\t}\n\treturn newInfos\n}\n\n// updateVersionedSymbols checks for versioned symbols in the loaded dynamic library.\n// If newer versioned symbols exist, these replace the default `v1` symbols initialized above.\n// When new versioned symbols are added, these would have to be initialized above and have\n// corresponding checks and subsequent assignments added below.\nfunc (l *library) updateVersionedSymbols() {\n\terr := l.Lookup(\"nvmlInit_v2\")\n\tif err == nil {\n\t\tnvmlInit = nvmlInit_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetPciInfo_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetPciInfo = nvmlDeviceGetPciInfo_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetPciInfo_v3\")\n\tif err == nil {\n\t\tnvmlDeviceGetPciInfo = nvmlDeviceGetPciInfo_v3\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetCount_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetCount = nvmlDeviceGetCount_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetHandleByIndex_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetHandleByIndex = nvmlDeviceGetHandleByIndex_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetHandleByPciBusId_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetHandleByPciBusId = nvmlDeviceGetHandleByPciBusId_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetNvLinkRemotePciInfo_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetNvLinkRemotePciInfo = nvmlDeviceGetNvLinkRemotePciInfo_v2\n\t}\n\t// Unable to overwrite nvmlDeviceRemoveGpu() because the v2 function takes\n\t// a different set of parameters than the v1 function.\n\t//err = l.Lookup(\"nvmlDeviceRemoveGpu_v2\")\n\t//if err == nil {\n\t//    nvmlDeviceRemoveGpu = nvmlDeviceRemoveGpu_v2\n\t//}\n\terr = l.Lookup(\"nvmlDeviceGetGridLicensableFeatures_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetGridLicensableFeatures = nvmlDeviceGetGridLicensableFeatures_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetGridLicensableFeatures_v3\")\n\tif err == nil {\n\t\tnvmlDeviceGetGridLicensableFeatures = nvmlDeviceGetGridLicensableFeatures_v3\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetGridLicensableFeatures_v4\")\n\tif err == nil {\n\t\tnvmlDeviceGetGridLicensableFeatures = nvmlDeviceGetGridLicensableFeatures_v4\n\t}\n\terr = l.Lookup(\"nvmlEventSetWait_v2\")\n\tif err == nil {\n\t\tnvmlEventSetWait = nvmlEventSetWait_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetAttributes_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetAttributes = nvmlDeviceGetAttributes_v2\n\t}\n\terr = l.Lookup(\"nvmlComputeInstanceGetInfo_v2\")\n\tif err == nil {\n\t\tnvmlComputeInstanceGetInfo = nvmlComputeInstanceGetInfo_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetComputeRunningProcesses_v2\")\n\tif err == nil {\n\t\tDeviceGetComputeRunningProcesses = deviceGetComputeRunningProcesses_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetComputeRunningProcesses_v3\")\n\tif err == nil {\n\t\tDeviceGetComputeRunningProcesses = deviceGetComputeRunningProcesses_v3\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetGraphicsRunningProcesses_v2\")\n\tif err == nil {\n\t\tDeviceGetGraphicsRunningProcesses = deviceGetGraphicsRunningProcesses_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetGraphicsRunningProcesses_v3\")\n\tif err == nil {\n\t\tDeviceGetGraphicsRunningProcesses = deviceGetGraphicsRunningProcesses_v3\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetMPSComputeRunningProcesses_v2\")\n\tif err == nil {\n\t\tDeviceGetMPSComputeRunningProcesses = deviceGetMPSComputeRunningProcesses_v2\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetMPSComputeRunningProcesses_v3\")\n\tif err == nil {\n\t\tDeviceGetMPSComputeRunningProcesses = deviceGetMPSComputeRunningProcesses_v3\n\t}\n\terr = l.Lookup(\"nvmlDeviceGetGpuInstancePossiblePlacements_v2\")\n\tif err == nil {\n\t\tnvmlDeviceGetGpuInstancePossiblePlacements = nvmlDeviceGetGpuInstancePossiblePlacements_v2\n\t}\n\terr = l.Lookup(\"nvmlVgpuInstanceGetLicenseInfo_v2\")\n\tif err == nil {\n\t\tnvmlVgpuInstanceGetLicenseInfo = nvmlVgpuInstanceGetLicenseInfo_v2\n\t}\n}\n\n// LibraryOption represents a functional option to configure the underlying NVML library\ntype LibraryOption func(*library)\n\n// WithLibraryPath provides an option to set the library name to be used by the NVML library.\nfunc WithLibraryPath(path string) LibraryOption {\n\treturn func(l *library) {\n\t\tl.path = path\n\t}\n}\n\n// SetLibraryOptions applies the specified options to the NVML library.\n// If this is called when a library is already loaded, and error is raised.\nfunc SetLibraryOptions(opts ...LibraryOption) error {\n\tlibnvml.Lock()\n\tdefer libnvml.Unlock()\n\tif libnvml.dl != nil {\n\t\treturn errLibraryAlreadyLoaded\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&libnvml)\n\t}\n\n\tif libnvml.path == \"\" {\n\t\tlibnvml.path = defaultNvmlLibraryName\n\t}\n\tif libnvml.flags == 0 {\n\t\tlibnvml.flags = defaultNvmlLibraryLoadFlags\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// WARNING: THIS FILE WAS AUTOMATICALLY GENERATED.\n// Code generated by https://git.io/c-for-go. DO NOT EDIT.\n\npackage nvml\n\n/*\n#cgo linux LDFLAGS: -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files\n#cgo darwin LDFLAGS: -Wl,-undefined,dynamic_lookup\n#cgo CFLAGS: -DNVML_NO_UNVERSIONED_FUNC_DEFS=1\n#include \"nvml.h\"\n#include <stdlib.h>\n#include \"cgo_helpers.h\"\n*/\nimport \"C\"\nimport \"unsafe\"\n\n// nvmlInit_v2 function as declared in nvml/nvml.h\nfunc nvmlInit_v2() Return {\n\t__ret := C.nvmlInit_v2()\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlInitWithFlags function as declared in nvml/nvml.h\nfunc nvmlInitWithFlags(Flags uint32) Return {\n\tcFlags, _ := (C.uint)(Flags), cgoAllocsUnknown\n\t__ret := C.nvmlInitWithFlags(cFlags)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlShutdown function as declared in nvml/nvml.h\nfunc nvmlShutdown() Return {\n\t__ret := C.nvmlShutdown()\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlErrorString function as declared in nvml/nvml.h\nfunc nvmlErrorString(Result Return) string {\n\tcResult, _ := (C.nvmlReturn_t)(Result), cgoAllocsUnknown\n\t__ret := C.nvmlErrorString(cResult)\n\t__v := packPCharString(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetDriverVersion function as declared in nvml/nvml.h\nfunc nvmlSystemGetDriverVersion(Version *byte, Length uint32) Return {\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetDriverVersion(cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetNVMLVersion function as declared in nvml/nvml.h\nfunc nvmlSystemGetNVMLVersion(Version *byte, Length uint32) Return {\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetNVMLVersion(cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetCudaDriverVersion function as declared in nvml/nvml.h\nfunc nvmlSystemGetCudaDriverVersion(CudaDriverVersion *int32) Return {\n\tcCudaDriverVersion, _ := (*C.int)(unsafe.Pointer(CudaDriverVersion)), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetCudaDriverVersion(cCudaDriverVersion)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetCudaDriverVersion_v2 function as declared in nvml/nvml.h\nfunc nvmlSystemGetCudaDriverVersion_v2(CudaDriverVersion *int32) Return {\n\tcCudaDriverVersion, _ := (*C.int)(unsafe.Pointer(CudaDriverVersion)), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetCudaDriverVersion_v2(cCudaDriverVersion)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetProcessName function as declared in nvml/nvml.h\nfunc nvmlSystemGetProcessName(Pid uint32, Name *byte, Length uint32) Return {\n\tcPid, _ := (C.uint)(Pid), cgoAllocsUnknown\n\tcName, _ := (*C.char)(unsafe.Pointer(Name)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetProcessName(cPid, cName, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetCount function as declared in nvml/nvml.h\nfunc nvmlUnitGetCount(UnitCount *uint32) Return {\n\tcUnitCount, _ := (*C.uint)(unsafe.Pointer(UnitCount)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetCount(cUnitCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetHandleByIndex function as declared in nvml/nvml.h\nfunc nvmlUnitGetHandleByIndex(Index uint32, Unit *Unit) Return {\n\tcIndex, _ := (C.uint)(Index), cgoAllocsUnknown\n\tcUnit, _ := (*C.nvmlUnit_t)(unsafe.Pointer(Unit)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetHandleByIndex(cIndex, cUnit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetUnitInfo function as declared in nvml/nvml.h\nfunc nvmlUnitGetUnitInfo(Unit Unit, Info *UnitInfo) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlUnitInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetUnitInfo(cUnit, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetLedState function as declared in nvml/nvml.h\nfunc nvmlUnitGetLedState(Unit Unit, State *LedState) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcState, _ := (*C.nvmlLedState_t)(unsafe.Pointer(State)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetLedState(cUnit, cState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetPsuInfo function as declared in nvml/nvml.h\nfunc nvmlUnitGetPsuInfo(Unit Unit, Psu *PSUInfo) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcPsu, _ := (*C.nvmlPSUInfo_t)(unsafe.Pointer(Psu)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetPsuInfo(cUnit, cPsu)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetTemperature function as declared in nvml/nvml.h\nfunc nvmlUnitGetTemperature(Unit Unit, _type uint32, Temp *uint32) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tc_type, _ := (C.uint)(_type), cgoAllocsUnknown\n\tcTemp, _ := (*C.uint)(unsafe.Pointer(Temp)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetTemperature(cUnit, c_type, cTemp)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetFanSpeedInfo function as declared in nvml/nvml.h\nfunc nvmlUnitGetFanSpeedInfo(Unit Unit, FanSpeeds *UnitFanSpeeds) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcFanSpeeds, _ := (*C.nvmlUnitFanSpeeds_t)(unsafe.Pointer(FanSpeeds)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetFanSpeedInfo(cUnit, cFanSpeeds)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitGetDevices function as declared in nvml/nvml.h\nfunc nvmlUnitGetDevices(Unit Unit, DeviceCount *uint32, Devices *Device) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcDeviceCount, _ := (*C.uint)(unsafe.Pointer(DeviceCount)), cgoAllocsUnknown\n\tcDevices, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Devices)), cgoAllocsUnknown\n\t__ret := C.nvmlUnitGetDevices(cUnit, cDeviceCount, cDevices)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetHicVersion function as declared in nvml/nvml.h\nfunc nvmlSystemGetHicVersion(HwbcCount *uint32, HwbcEntries *HwbcEntry) Return {\n\tcHwbcCount, _ := (*C.uint)(unsafe.Pointer(HwbcCount)), cgoAllocsUnknown\n\tcHwbcEntries, _ := (*C.nvmlHwbcEntry_t)(unsafe.Pointer(HwbcEntries)), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetHicVersion(cHwbcCount, cHwbcEntries)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCount_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCount_v2(DeviceCount *uint32) Return {\n\tcDeviceCount, _ := (*C.uint)(unsafe.Pointer(DeviceCount)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCount_v2(cDeviceCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAttributes_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAttributes_v2(Device Device, Attributes *DeviceAttributes) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcAttributes, _ := (*C.nvmlDeviceAttributes_t)(unsafe.Pointer(Attributes)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAttributes_v2(cDevice, cAttributes)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleByIndex_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleByIndex_v2(Index uint32, Device *Device) Return {\n\tcIndex, _ := (C.uint)(Index), cgoAllocsUnknown\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleByIndex_v2(cIndex, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleBySerial function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleBySerial(Serial string, Device *Device) Return {\n\tcSerial, _ := unpackPCharString(Serial)\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleBySerial(cSerial, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleByUUID function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleByUUID(Uuid string, Device *Device) Return {\n\tcUuid, _ := unpackPCharString(Uuid)\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleByUUID(cUuid, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleByPciBusId_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleByPciBusId_v2(PciBusId string, Device *Device) Return {\n\tcPciBusId, _ := unpackPCharString(PciBusId)\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleByPciBusId_v2(cPciBusId, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetName function as declared in nvml/nvml.h\nfunc nvmlDeviceGetName(Device Device, Name *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcName, _ := (*C.char)(unsafe.Pointer(Name)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetName(cDevice, cName, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBrand function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBrand(Device Device, _type *BrandType) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (*C.nvmlBrandType_t)(unsafe.Pointer(_type)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBrand(cDevice, c_type)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetIndex function as declared in nvml/nvml.h\nfunc nvmlDeviceGetIndex(Device Device, Index *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIndex, _ := (*C.uint)(unsafe.Pointer(Index)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetIndex(cDevice, cIndex)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSerial function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSerial(Device Device, Serial *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSerial, _ := (*C.char)(unsafe.Pointer(Serial)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSerial(cDevice, cSerial, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemoryAffinity function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemoryAffinity(Device Device, NodeSetSize uint32, NodeSet *uint, Scope AffinityScope) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcNodeSetSize, _ := (C.uint)(NodeSetSize), cgoAllocsUnknown\n\tcNodeSet, _ := (*C.ulong)(unsafe.Pointer(NodeSet)), cgoAllocsUnknown\n\tcScope, _ := (C.nvmlAffinityScope_t)(Scope), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemoryAffinity(cDevice, cNodeSetSize, cNodeSet, cScope)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCpuAffinityWithinScope function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCpuAffinityWithinScope(Device Device, CpuSetSize uint32, CpuSet *uint, Scope AffinityScope) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCpuSetSize, _ := (C.uint)(CpuSetSize), cgoAllocsUnknown\n\tcCpuSet, _ := (*C.ulong)(unsafe.Pointer(CpuSet)), cgoAllocsUnknown\n\tcScope, _ := (C.nvmlAffinityScope_t)(Scope), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCpuAffinityWithinScope(cDevice, cCpuSetSize, cCpuSet, cScope)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCpuAffinity function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCpuAffinity(Device Device, CpuSetSize uint32, CpuSet *uint) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCpuSetSize, _ := (C.uint)(CpuSetSize), cgoAllocsUnknown\n\tcCpuSet, _ := (*C.ulong)(unsafe.Pointer(CpuSet)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCpuAffinity(cDevice, cCpuSetSize, cCpuSet)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetCpuAffinity function as declared in nvml/nvml.h\nfunc nvmlDeviceSetCpuAffinity(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetCpuAffinity(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceClearCpuAffinity function as declared in nvml/nvml.h\nfunc nvmlDeviceClearCpuAffinity(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceClearCpuAffinity(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTopologyCommonAncestor function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTopologyCommonAncestor(Device1 Device, Device2 Device, PathInfo *GpuTopologyLevel) Return {\n\tcDevice1, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device1)), cgoAllocsUnknown\n\tcDevice2, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device2)), cgoAllocsUnknown\n\tcPathInfo, _ := (*C.nvmlGpuTopologyLevel_t)(unsafe.Pointer(PathInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTopologyCommonAncestor(cDevice1, cDevice2, cPathInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTopologyNearestGpus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTopologyNearestGpus(Device Device, Level GpuTopologyLevel, Count *uint32, DeviceArray *Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLevel, _ := (C.nvmlGpuTopologyLevel_t)(Level), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcDeviceArray, _ := (*C.nvmlDevice_t)(unsafe.Pointer(DeviceArray)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTopologyNearestGpus(cDevice, cLevel, cCount, cDeviceArray)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSystemGetTopologyGpuSet function as declared in nvml/nvml.h\nfunc nvmlSystemGetTopologyGpuSet(CpuNumber uint32, Count *uint32, DeviceArray *Device) Return {\n\tcCpuNumber, _ := (C.uint)(CpuNumber), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcDeviceArray, _ := (*C.nvmlDevice_t)(unsafe.Pointer(DeviceArray)), cgoAllocsUnknown\n\t__ret := C.nvmlSystemGetTopologyGpuSet(cCpuNumber, cCount, cDeviceArray)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetP2PStatus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetP2PStatus(Device1 Device, Device2 Device, P2pIndex GpuP2PCapsIndex, P2pStatus *GpuP2PStatus) Return {\n\tcDevice1, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device1)), cgoAllocsUnknown\n\tcDevice2, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device2)), cgoAllocsUnknown\n\tcP2pIndex, _ := (C.nvmlGpuP2PCapsIndex_t)(P2pIndex), cgoAllocsUnknown\n\tcP2pStatus, _ := (*C.nvmlGpuP2PStatus_t)(unsafe.Pointer(P2pStatus)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetP2PStatus(cDevice1, cDevice2, cP2pIndex, cP2pStatus)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetUUID function as declared in nvml/nvml.h\nfunc nvmlDeviceGetUUID(Device Device, Uuid *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcUuid, _ := (*C.char)(unsafe.Pointer(Uuid)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetUUID(cDevice, cUuid, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetMdevUUID function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetMdevUUID(VgpuInstance VgpuInstance, MdevUuid *byte, Size uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcMdevUuid, _ := (*C.char)(unsafe.Pointer(MdevUuid)), cgoAllocsUnknown\n\tcSize, _ := (C.uint)(Size), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetMdevUUID(cVgpuInstance, cMdevUuid, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMinorNumber function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMinorNumber(Device Device, MinorNumber *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinorNumber, _ := (*C.uint)(unsafe.Pointer(MinorNumber)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMinorNumber(cDevice, cMinorNumber)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBoardPartNumber function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBoardPartNumber(Device Device, PartNumber *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPartNumber, _ := (*C.char)(unsafe.Pointer(PartNumber)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBoardPartNumber(cDevice, cPartNumber, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetInforomVersion function as declared in nvml/nvml.h\nfunc nvmlDeviceGetInforomVersion(Device Device, Object InforomObject, Version *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcObject, _ := (C.nvmlInforomObject_t)(Object), cgoAllocsUnknown\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetInforomVersion(cDevice, cObject, cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetInforomImageVersion function as declared in nvml/nvml.h\nfunc nvmlDeviceGetInforomImageVersion(Device Device, Version *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetInforomImageVersion(cDevice, cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetInforomConfigurationChecksum function as declared in nvml/nvml.h\nfunc nvmlDeviceGetInforomConfigurationChecksum(Device Device, Checksum *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcChecksum, _ := (*C.uint)(unsafe.Pointer(Checksum)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetInforomConfigurationChecksum(cDevice, cChecksum)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceValidateInforom function as declared in nvml/nvml.h\nfunc nvmlDeviceValidateInforom(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceValidateInforom(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDisplayMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDisplayMode(Device Device, Display *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcDisplay, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Display)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDisplayMode(cDevice, cDisplay)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDisplayActive function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDisplayActive(Device Device, IsActive *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIsActive, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(IsActive)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDisplayActive(cDevice, cIsActive)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPersistenceMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPersistenceMode(Device Device, Mode *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Mode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPersistenceMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPciInfo_v3 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPciInfo_v3(Device Device, Pci *PciInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPci, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(Pci)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPciInfo_v3(cDevice, cPci)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMaxPcieLinkGeneration function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMaxPcieLinkGeneration(Device Device, MaxLinkGen *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMaxLinkGen, _ := (*C.uint)(unsafe.Pointer(MaxLinkGen)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMaxPcieLinkGeneration(cDevice, cMaxLinkGen)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuMaxPcieLinkGeneration function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuMaxPcieLinkGeneration(Device Device, MaxLinkGenDevice *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMaxLinkGenDevice, _ := (*C.uint)(unsafe.Pointer(MaxLinkGenDevice)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuMaxPcieLinkGeneration(cDevice, cMaxLinkGenDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMaxPcieLinkWidth function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMaxPcieLinkWidth(Device Device, MaxLinkWidth *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMaxLinkWidth, _ := (*C.uint)(unsafe.Pointer(MaxLinkWidth)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMaxPcieLinkWidth(cDevice, cMaxLinkWidth)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCurrPcieLinkGeneration function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCurrPcieLinkGeneration(Device Device, CurrLinkGen *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrLinkGen, _ := (*C.uint)(unsafe.Pointer(CurrLinkGen)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCurrPcieLinkGeneration(cDevice, cCurrLinkGen)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCurrPcieLinkWidth function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCurrPcieLinkWidth(Device Device, CurrLinkWidth *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrLinkWidth, _ := (*C.uint)(unsafe.Pointer(CurrLinkWidth)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCurrPcieLinkWidth(cDevice, cCurrLinkWidth)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPcieThroughput function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPcieThroughput(Device Device, Counter PcieUtilCounter, Value *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCounter, _ := (C.nvmlPcieUtilCounter_t)(Counter), cgoAllocsUnknown\n\tcValue, _ := (*C.uint)(unsafe.Pointer(Value)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPcieThroughput(cDevice, cCounter, cValue)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPcieReplayCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPcieReplayCounter(Device Device, Value *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcValue, _ := (*C.uint)(unsafe.Pointer(Value)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPcieReplayCounter(cDevice, cValue)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetClockInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetClockInfo(Device Device, _type ClockType, Clock *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (C.nvmlClockType_t)(_type), cgoAllocsUnknown\n\tcClock, _ := (*C.uint)(unsafe.Pointer(Clock)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetClockInfo(cDevice, c_type, cClock)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMaxClockInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMaxClockInfo(Device Device, _type ClockType, Clock *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (C.nvmlClockType_t)(_type), cgoAllocsUnknown\n\tcClock, _ := (*C.uint)(unsafe.Pointer(Clock)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMaxClockInfo(cDevice, c_type, cClock)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetApplicationsClock function as declared in nvml/nvml.h\nfunc nvmlDeviceGetApplicationsClock(Device Device, ClockType ClockType, ClockMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcClockType, _ := (C.nvmlClockType_t)(ClockType), cgoAllocsUnknown\n\tcClockMHz, _ := (*C.uint)(unsafe.Pointer(ClockMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetApplicationsClock(cDevice, cClockType, cClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDefaultApplicationsClock function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDefaultApplicationsClock(Device Device, ClockType ClockType, ClockMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcClockType, _ := (C.nvmlClockType_t)(ClockType), cgoAllocsUnknown\n\tcClockMHz, _ := (*C.uint)(unsafe.Pointer(ClockMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDefaultApplicationsClock(cDevice, cClockType, cClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceResetApplicationsClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceResetApplicationsClocks(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceResetApplicationsClocks(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetClock function as declared in nvml/nvml.h\nfunc nvmlDeviceGetClock(Device Device, ClockType ClockType, ClockId ClockId, ClockMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcClockType, _ := (C.nvmlClockType_t)(ClockType), cgoAllocsUnknown\n\tcClockId, _ := (C.nvmlClockId_t)(ClockId), cgoAllocsUnknown\n\tcClockMHz, _ := (*C.uint)(unsafe.Pointer(ClockMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetClock(cDevice, cClockType, cClockId, cClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMaxCustomerBoostClock function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMaxCustomerBoostClock(Device Device, ClockType ClockType, ClockMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcClockType, _ := (C.nvmlClockType_t)(ClockType), cgoAllocsUnknown\n\tcClockMHz, _ := (*C.uint)(unsafe.Pointer(ClockMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMaxCustomerBoostClock(cDevice, cClockType, cClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedMemoryClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedMemoryClocks(Device Device, Count *uint32, ClocksMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcClocksMHz, _ := (*C.uint)(unsafe.Pointer(ClocksMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedMemoryClocks(cDevice, cCount, cClocksMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedGraphicsClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedGraphicsClocks(Device Device, MemoryClockMHz uint32, Count *uint32, ClocksMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMemoryClockMHz, _ := (C.uint)(MemoryClockMHz), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcClocksMHz, _ := (*C.uint)(unsafe.Pointer(ClocksMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedGraphicsClocks(cDevice, cMemoryClockMHz, cCount, cClocksMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAutoBoostedClocksEnabled function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAutoBoostedClocksEnabled(Device Device, IsEnabled *EnableState, DefaultIsEnabled *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIsEnabled, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(IsEnabled)), cgoAllocsUnknown\n\tcDefaultIsEnabled, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(DefaultIsEnabled)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAutoBoostedClocksEnabled(cDevice, cIsEnabled, cDefaultIsEnabled)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetAutoBoostedClocksEnabled function as declared in nvml/nvml.h\nfunc nvmlDeviceSetAutoBoostedClocksEnabled(Device Device, Enabled EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEnabled, _ := (C.nvmlEnableState_t)(Enabled), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetAutoBoostedClocksEnabled(cDevice, cEnabled)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetDefaultAutoBoostedClocksEnabled function as declared in nvml/nvml.h\nfunc nvmlDeviceSetDefaultAutoBoostedClocksEnabled(Device Device, Enabled EnableState, Flags uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEnabled, _ := (C.nvmlEnableState_t)(Enabled), cgoAllocsUnknown\n\tcFlags, _ := (C.uint)(Flags), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetDefaultAutoBoostedClocksEnabled(cDevice, cEnabled, cFlags)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFanSpeed function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFanSpeed(Device Device, Speed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSpeed, _ := (*C.uint)(unsafe.Pointer(Speed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFanSpeed(cDevice, cSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFanSpeed_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFanSpeed_v2(Device Device, Fan uint32, Speed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\tcSpeed, _ := (*C.uint)(unsafe.Pointer(Speed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFanSpeed_v2(cDevice, cFan, cSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTargetFanSpeed function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTargetFanSpeed(Device Device, Fan uint32, TargetSpeed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\tcTargetSpeed, _ := (*C.uint)(unsafe.Pointer(TargetSpeed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTargetFanSpeed(cDevice, cFan, cTargetSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetDefaultFanSpeed_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceSetDefaultFanSpeed_v2(Device Device, Fan uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetDefaultFanSpeed_v2(cDevice, cFan)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMinMaxFanSpeed function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMinMaxFanSpeed(Device Device, MinSpeed *uint32, MaxSpeed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinSpeed, _ := (*C.uint)(unsafe.Pointer(MinSpeed)), cgoAllocsUnknown\n\tcMaxSpeed, _ := (*C.uint)(unsafe.Pointer(MaxSpeed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMinMaxFanSpeed(cDevice, cMinSpeed, cMaxSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFanControlPolicy_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFanControlPolicy_v2(Device Device, Fan uint32, Policy *FanControlPolicy) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\tcPolicy, _ := (*C.nvmlFanControlPolicy_t)(unsafe.Pointer(Policy)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFanControlPolicy_v2(cDevice, cFan, cPolicy)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetFanControlPolicy function as declared in nvml/nvml.h\nfunc nvmlDeviceSetFanControlPolicy(Device Device, Fan uint32, Policy FanControlPolicy) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\tcPolicy, _ := (C.nvmlFanControlPolicy_t)(Policy), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetFanControlPolicy(cDevice, cFan, cPolicy)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNumFans function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNumFans(Device Device, NumFans *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcNumFans, _ := (*C.uint)(unsafe.Pointer(NumFans)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNumFans(cDevice, cNumFans)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTemperature function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTemperature(Device Device, SensorType TemperatureSensors, Temp *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSensorType, _ := (C.nvmlTemperatureSensors_t)(SensorType), cgoAllocsUnknown\n\tcTemp, _ := (*C.uint)(unsafe.Pointer(Temp)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTemperature(cDevice, cSensorType, cTemp)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTemperatureThreshold function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTemperatureThreshold(Device Device, ThresholdType TemperatureThresholds, Temp *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcThresholdType, _ := (C.nvmlTemperatureThresholds_t)(ThresholdType), cgoAllocsUnknown\n\tcTemp, _ := (*C.uint)(unsafe.Pointer(Temp)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTemperatureThreshold(cDevice, cThresholdType, cTemp)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetTemperatureThreshold function as declared in nvml/nvml.h\nfunc nvmlDeviceSetTemperatureThreshold(Device Device, ThresholdType TemperatureThresholds, Temp *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcThresholdType, _ := (C.nvmlTemperatureThresholds_t)(ThresholdType), cgoAllocsUnknown\n\tcTemp, _ := (*C.int)(unsafe.Pointer(Temp)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetTemperatureThreshold(cDevice, cThresholdType, cTemp)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetThermalSettings function as declared in nvml/nvml.h\nfunc nvmlDeviceGetThermalSettings(Device Device, SensorIndex uint32, PThermalSettings *GpuThermalSettings) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSensorIndex, _ := (C.uint)(SensorIndex), cgoAllocsUnknown\n\tcPThermalSettings, _ := (*C.nvmlGpuThermalSettings_t)(unsafe.Pointer(PThermalSettings)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetThermalSettings(cDevice, cSensorIndex, cPThermalSettings)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPerformanceState function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPerformanceState(Device Device, PState *Pstates) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPState, _ := (*C.nvmlPstates_t)(unsafe.Pointer(PState)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPerformanceState(cDevice, cPState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCurrentClocksThrottleReasons function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCurrentClocksThrottleReasons(Device Device, ClocksThrottleReasons *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcClocksThrottleReasons, _ := (*C.ulonglong)(unsafe.Pointer(ClocksThrottleReasons)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCurrentClocksThrottleReasons(cDevice, cClocksThrottleReasons)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedClocksThrottleReasons function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedClocksThrottleReasons(Device Device, SupportedClocksThrottleReasons *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSupportedClocksThrottleReasons, _ := (*C.ulonglong)(unsafe.Pointer(SupportedClocksThrottleReasons)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedClocksThrottleReasons(cDevice, cSupportedClocksThrottleReasons)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerState function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerState(Device Device, PState *Pstates) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPState, _ := (*C.nvmlPstates_t)(unsafe.Pointer(PState)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerState(cDevice, cPState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerManagementMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerManagementMode(Device Device, Mode *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Mode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerManagementMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerManagementLimit function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerManagementLimit(Device Device, Limit *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLimit, _ := (*C.uint)(unsafe.Pointer(Limit)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerManagementLimit(cDevice, cLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerManagementLimitConstraints function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerManagementLimitConstraints(Device Device, MinLimit *uint32, MaxLimit *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinLimit, _ := (*C.uint)(unsafe.Pointer(MinLimit)), cgoAllocsUnknown\n\tcMaxLimit, _ := (*C.uint)(unsafe.Pointer(MaxLimit)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerManagementLimitConstraints(cDevice, cMinLimit, cMaxLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerManagementDefaultLimit function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerManagementDefaultLimit(Device Device, DefaultLimit *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcDefaultLimit, _ := (*C.uint)(unsafe.Pointer(DefaultLimit)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerManagementDefaultLimit(cDevice, cDefaultLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerUsage function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerUsage(Device Device, Power *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPower, _ := (*C.uint)(unsafe.Pointer(Power)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerUsage(cDevice, cPower)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTotalEnergyConsumption function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTotalEnergyConsumption(Device Device, Energy *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEnergy, _ := (*C.ulonglong)(unsafe.Pointer(Energy)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTotalEnergyConsumption(cDevice, cEnergy)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEnforcedPowerLimit function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEnforcedPowerLimit(Device Device, Limit *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLimit, _ := (*C.uint)(unsafe.Pointer(Limit)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEnforcedPowerLimit(cDevice, cLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuOperationMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuOperationMode(Device Device, Current *GpuOperationMode, Pending *GpuOperationMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrent, _ := (*C.nvmlGpuOperationMode_t)(unsafe.Pointer(Current)), cgoAllocsUnknown\n\tcPending, _ := (*C.nvmlGpuOperationMode_t)(unsafe.Pointer(Pending)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuOperationMode(cDevice, cCurrent, cPending)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemoryInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemoryInfo(Device Device, Memory *Memory) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMemory, _ := (*C.nvmlMemory_t)(unsafe.Pointer(Memory)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemoryInfo(cDevice, cMemory)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemoryInfo_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemoryInfo_v2(Device Device, Memory *Memory_v2) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMemory, _ := (*C.nvmlMemory_v2_t)(unsafe.Pointer(Memory)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemoryInfo_v2(cDevice, cMemory)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetComputeMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetComputeMode(Device Device, Mode *ComputeMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (*C.nvmlComputeMode_t)(unsafe.Pointer(Mode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetComputeMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCudaComputeCapability function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCudaComputeCapability(Device Device, Major *int32, Minor *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMajor, _ := (*C.int)(unsafe.Pointer(Major)), cgoAllocsUnknown\n\tcMinor, _ := (*C.int)(unsafe.Pointer(Minor)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCudaComputeCapability(cDevice, cMajor, cMinor)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEccMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEccMode(Device Device, Current *EnableState, Pending *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrent, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Current)), cgoAllocsUnknown\n\tcPending, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Pending)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEccMode(cDevice, cCurrent, cPending)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDefaultEccMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDefaultEccMode(Device Device, DefaultMode *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcDefaultMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(DefaultMode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDefaultEccMode(cDevice, cDefaultMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBoardId function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBoardId(Device Device, BoardId *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcBoardId, _ := (*C.uint)(unsafe.Pointer(BoardId)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBoardId(cDevice, cBoardId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMultiGpuBoard function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMultiGpuBoard(Device Device, MultiGpuBool *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMultiGpuBool, _ := (*C.uint)(unsafe.Pointer(MultiGpuBool)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMultiGpuBoard(cDevice, cMultiGpuBool)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetTotalEccErrors function as declared in nvml/nvml.h\nfunc nvmlDeviceGetTotalEccErrors(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType, EccCounts *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcErrorType, _ := (C.nvmlMemoryErrorType_t)(ErrorType), cgoAllocsUnknown\n\tcCounterType, _ := (C.nvmlEccCounterType_t)(CounterType), cgoAllocsUnknown\n\tcEccCounts, _ := (*C.ulonglong)(unsafe.Pointer(EccCounts)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetTotalEccErrors(cDevice, cErrorType, cCounterType, cEccCounts)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDetailedEccErrors function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDetailedEccErrors(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType, EccCounts *EccErrorCounts) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcErrorType, _ := (C.nvmlMemoryErrorType_t)(ErrorType), cgoAllocsUnknown\n\tcCounterType, _ := (C.nvmlEccCounterType_t)(CounterType), cgoAllocsUnknown\n\tcEccCounts, _ := (*C.nvmlEccErrorCounts_t)(unsafe.Pointer(EccCounts)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDetailedEccErrors(cDevice, cErrorType, cCounterType, cEccCounts)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemoryErrorCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemoryErrorCounter(Device Device, ErrorType MemoryErrorType, CounterType EccCounterType, LocationType MemoryLocation, Count *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcErrorType, _ := (C.nvmlMemoryErrorType_t)(ErrorType), cgoAllocsUnknown\n\tcCounterType, _ := (C.nvmlEccCounterType_t)(CounterType), cgoAllocsUnknown\n\tcLocationType, _ := (C.nvmlMemoryLocation_t)(LocationType), cgoAllocsUnknown\n\tcCount, _ := (*C.ulonglong)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemoryErrorCounter(cDevice, cErrorType, cCounterType, cLocationType, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetUtilizationRates function as declared in nvml/nvml.h\nfunc nvmlDeviceGetUtilizationRates(Device Device, Utilization *Utilization) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcUtilization, _ := (*C.nvmlUtilization_t)(unsafe.Pointer(Utilization)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetUtilizationRates(cDevice, cUtilization)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEncoderUtilization function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEncoderUtilization(Device Device, Utilization *uint32, SamplingPeriodUs *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcUtilization, _ := (*C.uint)(unsafe.Pointer(Utilization)), cgoAllocsUnknown\n\tcSamplingPeriodUs, _ := (*C.uint)(unsafe.Pointer(SamplingPeriodUs)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEncoderUtilization(cDevice, cUtilization, cSamplingPeriodUs)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEncoderCapacity function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEncoderCapacity(Device Device, EncoderQueryType EncoderType, EncoderCapacity *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEncoderQueryType, _ := (C.nvmlEncoderType_t)(EncoderQueryType), cgoAllocsUnknown\n\tcEncoderCapacity, _ := (*C.uint)(unsafe.Pointer(EncoderCapacity)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEncoderCapacity(cDevice, cEncoderQueryType, cEncoderCapacity)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEncoderStats function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEncoderStats(Device Device, SessionCount *uint32, AverageFps *uint32, AverageLatency *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcAverageFps, _ := (*C.uint)(unsafe.Pointer(AverageFps)), cgoAllocsUnknown\n\tcAverageLatency, _ := (*C.uint)(unsafe.Pointer(AverageLatency)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEncoderStats(cDevice, cSessionCount, cAverageFps, cAverageLatency)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetEncoderSessions function as declared in nvml/nvml.h\nfunc nvmlDeviceGetEncoderSessions(Device Device, SessionCount *uint32, SessionInfos *EncoderSessionInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcSessionInfos, _ := (*C.nvmlEncoderSessionInfo_t)(unsafe.Pointer(SessionInfos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetEncoderSessions(cDevice, cSessionCount, cSessionInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDecoderUtilization function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDecoderUtilization(Device Device, Utilization *uint32, SamplingPeriodUs *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcUtilization, _ := (*C.uint)(unsafe.Pointer(Utilization)), cgoAllocsUnknown\n\tcSamplingPeriodUs, _ := (*C.uint)(unsafe.Pointer(SamplingPeriodUs)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDecoderUtilization(cDevice, cUtilization, cSamplingPeriodUs)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFBCStats function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFBCStats(Device Device, FbcStats *FBCStats) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFbcStats, _ := (*C.nvmlFBCStats_t)(unsafe.Pointer(FbcStats)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFBCStats(cDevice, cFbcStats)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFBCSessions function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFBCSessions(Device Device, SessionCount *uint32, SessionInfo *FBCSessionInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcSessionInfo, _ := (*C.nvmlFBCSessionInfo_t)(unsafe.Pointer(SessionInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFBCSessions(cDevice, cSessionCount, cSessionInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDriverModel function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDriverModel(Device Device, Current *DriverModel, Pending *DriverModel) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrent, _ := (*C.nvmlDriverModel_t)(unsafe.Pointer(Current)), cgoAllocsUnknown\n\tcPending, _ := (*C.nvmlDriverModel_t)(unsafe.Pointer(Pending)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDriverModel(cDevice, cCurrent, cPending)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVbiosVersion function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVbiosVersion(Device Device, Version *byte, Length uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVbiosVersion(cDevice, cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBridgeChipInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBridgeChipInfo(Device Device, BridgeHierarchy *BridgeChipHierarchy) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcBridgeHierarchy, _ := (*C.nvmlBridgeChipHierarchy_t)(unsafe.Pointer(BridgeHierarchy)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBridgeChipInfo(cDevice, cBridgeHierarchy)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetComputeRunningProcesses_v3 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetComputeRunningProcesses_v3(Device Device, InfoCount *uint32, Infos *ProcessInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetComputeRunningProcesses_v3(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGraphicsRunningProcesses_v3 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGraphicsRunningProcesses_v3(Device Device, InfoCount *uint32, Infos *ProcessInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGraphicsRunningProcesses_v3(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMPSComputeRunningProcesses_v3 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMPSComputeRunningProcesses_v3(Device Device, InfoCount *uint32, Infos *ProcessInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMPSComputeRunningProcesses_v3(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceOnSameBoard function as declared in nvml/nvml.h\nfunc nvmlDeviceOnSameBoard(Device1 Device, Device2 Device, OnSameBoard *int32) Return {\n\tcDevice1, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device1)), cgoAllocsUnknown\n\tcDevice2, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device2)), cgoAllocsUnknown\n\tcOnSameBoard, _ := (*C.int)(unsafe.Pointer(OnSameBoard)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceOnSameBoard(cDevice1, cDevice2, cOnSameBoard)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAPIRestriction function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAPIRestriction(Device Device, ApiType RestrictedAPI, IsRestricted *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcApiType, _ := (C.nvmlRestrictedAPI_t)(ApiType), cgoAllocsUnknown\n\tcIsRestricted, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(IsRestricted)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAPIRestriction(cDevice, cApiType, cIsRestricted)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSamples function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSamples(Device Device, _type SamplingType, LastSeenTimeStamp uint64, SampleValType *ValueType, SampleCount *uint32, Samples *Sample) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (C.nvmlSamplingType_t)(_type), cgoAllocsUnknown\n\tcLastSeenTimeStamp, _ := (C.ulonglong)(LastSeenTimeStamp), cgoAllocsUnknown\n\tcSampleValType, _ := (*C.nvmlValueType_t)(unsafe.Pointer(SampleValType)), cgoAllocsUnknown\n\tcSampleCount, _ := (*C.uint)(unsafe.Pointer(SampleCount)), cgoAllocsUnknown\n\tcSamples, _ := (*C.nvmlSample_t)(unsafe.Pointer(Samples)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSamples(cDevice, c_type, cLastSeenTimeStamp, cSampleValType, cSampleCount, cSamples)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBAR1MemoryInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBAR1MemoryInfo(Device Device, Bar1Memory *BAR1Memory) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcBar1Memory, _ := (*C.nvmlBAR1Memory_t)(unsafe.Pointer(Bar1Memory)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBAR1MemoryInfo(cDevice, cBar1Memory)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetViolationStatus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetViolationStatus(Device Device, PerfPolicyType PerfPolicyType, ViolTime *ViolationTime) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPerfPolicyType, _ := (C.nvmlPerfPolicyType_t)(PerfPolicyType), cgoAllocsUnknown\n\tcViolTime, _ := (*C.nvmlViolationTime_t)(unsafe.Pointer(ViolTime)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetViolationStatus(cDevice, cPerfPolicyType, cViolTime)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetIrqNum function as declared in nvml/nvml.h\nfunc nvmlDeviceGetIrqNum(Device Device, IrqNum *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIrqNum, _ := (*C.uint)(unsafe.Pointer(IrqNum)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetIrqNum(cDevice, cIrqNum)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNumGpuCores function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNumGpuCores(Device Device, NumCores *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcNumCores, _ := (*C.uint)(unsafe.Pointer(NumCores)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNumGpuCores(cDevice, cNumCores)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPowerSource function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPowerSource(Device Device, PowerSource *PowerSource) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPowerSource, _ := (*C.nvmlPowerSource_t)(unsafe.Pointer(PowerSource)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPowerSource(cDevice, cPowerSource)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemoryBusWidth function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemoryBusWidth(Device Device, BusWidth *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcBusWidth, _ := (*C.uint)(unsafe.Pointer(BusWidth)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemoryBusWidth(cDevice, cBusWidth)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPcieLinkMaxSpeed function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPcieLinkMaxSpeed(Device Device, MaxSpeed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMaxSpeed, _ := (*C.uint)(unsafe.Pointer(MaxSpeed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPcieLinkMaxSpeed(cDevice, cMaxSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPcieSpeed function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPcieSpeed(Device Device, PcieSpeed *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPcieSpeed, _ := (*C.uint)(unsafe.Pointer(PcieSpeed)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPcieSpeed(cDevice, cPcieSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAdaptiveClockInfoStatus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAdaptiveClockInfoStatus(Device Device, AdaptiveClockStatus *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcAdaptiveClockStatus, _ := (*C.uint)(unsafe.Pointer(AdaptiveClockStatus)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAdaptiveClockInfoStatus(cDevice, cAdaptiveClockStatus)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAccountingMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAccountingMode(Device Device, Mode *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Mode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAccountingMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAccountingStats function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAccountingStats(Device Device, Pid uint32, Stats *AccountingStats) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPid, _ := (C.uint)(Pid), cgoAllocsUnknown\n\tcStats, _ := (*C.nvmlAccountingStats_t)(unsafe.Pointer(Stats)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAccountingStats(cDevice, cPid, cStats)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAccountingPids function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAccountingPids(Device Device, Count *uint32, Pids *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcPids, _ := (*C.uint)(unsafe.Pointer(Pids)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAccountingPids(cDevice, cCount, cPids)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAccountingBufferSize function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAccountingBufferSize(Device Device, BufferSize *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcBufferSize, _ := (*C.uint)(unsafe.Pointer(BufferSize)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAccountingBufferSize(cDevice, cBufferSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetRetiredPages function as declared in nvml/nvml.h\nfunc nvmlDeviceGetRetiredPages(Device Device, Cause PageRetirementCause, PageCount *uint32, Addresses *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCause, _ := (C.nvmlPageRetirementCause_t)(Cause), cgoAllocsUnknown\n\tcPageCount, _ := (*C.uint)(unsafe.Pointer(PageCount)), cgoAllocsUnknown\n\tcAddresses, _ := (*C.ulonglong)(unsafe.Pointer(Addresses)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetRetiredPages(cDevice, cCause, cPageCount, cAddresses)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetRetiredPages_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetRetiredPages_v2(Device Device, Cause PageRetirementCause, PageCount *uint32, Addresses *uint64, Timestamps *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCause, _ := (C.nvmlPageRetirementCause_t)(Cause), cgoAllocsUnknown\n\tcPageCount, _ := (*C.uint)(unsafe.Pointer(PageCount)), cgoAllocsUnknown\n\tcAddresses, _ := (*C.ulonglong)(unsafe.Pointer(Addresses)), cgoAllocsUnknown\n\tcTimestamps, _ := (*C.ulonglong)(unsafe.Pointer(Timestamps)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetRetiredPages_v2(cDevice, cCause, cPageCount, cAddresses, cTimestamps)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetRetiredPagesPendingStatus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetRetiredPagesPendingStatus(Device Device, IsPending *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIsPending, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(IsPending)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetRetiredPagesPendingStatus(cDevice, cIsPending)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetRemappedRows function as declared in nvml/nvml.h\nfunc nvmlDeviceGetRemappedRows(Device Device, CorrRows *uint32, UncRows *uint32, IsPending *uint32, FailureOccurred *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCorrRows, _ := (*C.uint)(unsafe.Pointer(CorrRows)), cgoAllocsUnknown\n\tcUncRows, _ := (*C.uint)(unsafe.Pointer(UncRows)), cgoAllocsUnknown\n\tcIsPending, _ := (*C.uint)(unsafe.Pointer(IsPending)), cgoAllocsUnknown\n\tcFailureOccurred, _ := (*C.uint)(unsafe.Pointer(FailureOccurred)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetRemappedRows(cDevice, cCorrRows, cUncRows, cIsPending, cFailureOccurred)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetRowRemapperHistogram function as declared in nvml/nvml.h\nfunc nvmlDeviceGetRowRemapperHistogram(Device Device, Values *RowRemapperHistogramValues) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcValues, _ := (*C.nvmlRowRemapperHistogramValues_t)(unsafe.Pointer(Values)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetRowRemapperHistogram(cDevice, cValues)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetArchitecture function as declared in nvml/nvml.h\nfunc nvmlDeviceGetArchitecture(Device Device, Arch *DeviceArchitecture) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcArch, _ := (*C.nvmlDeviceArchitecture_t)(unsafe.Pointer(Arch)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetArchitecture(cDevice, cArch)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlUnitSetLedState function as declared in nvml/nvml.h\nfunc nvmlUnitSetLedState(Unit Unit, Color LedColor) Return {\n\tcUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&Unit)), cgoAllocsUnknown\n\tcColor, _ := (C.nvmlLedColor_t)(Color), cgoAllocsUnknown\n\t__ret := C.nvmlUnitSetLedState(cUnit, cColor)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetPersistenceMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetPersistenceMode(Device Device, Mode EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (C.nvmlEnableState_t)(Mode), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetPersistenceMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetComputeMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetComputeMode(Device Device, Mode ComputeMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (C.nvmlComputeMode_t)(Mode), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetComputeMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetEccMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetEccMode(Device Device, Ecc EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEcc, _ := (C.nvmlEnableState_t)(Ecc), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetEccMode(cDevice, cEcc)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceClearEccErrorCounts function as declared in nvml/nvml.h\nfunc nvmlDeviceClearEccErrorCounts(Device Device, CounterType EccCounterType) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCounterType, _ := (C.nvmlEccCounterType_t)(CounterType), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceClearEccErrorCounts(cDevice, cCounterType)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetDriverModel function as declared in nvml/nvml.h\nfunc nvmlDeviceSetDriverModel(Device Device, DriverModel DriverModel, Flags uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcDriverModel, _ := (C.nvmlDriverModel_t)(DriverModel), cgoAllocsUnknown\n\tcFlags, _ := (C.uint)(Flags), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetDriverModel(cDevice, cDriverModel, cFlags)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetGpuLockedClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceSetGpuLockedClocks(Device Device, MinGpuClockMHz uint32, MaxGpuClockMHz uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinGpuClockMHz, _ := (C.uint)(MinGpuClockMHz), cgoAllocsUnknown\n\tcMaxGpuClockMHz, _ := (C.uint)(MaxGpuClockMHz), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetGpuLockedClocks(cDevice, cMinGpuClockMHz, cMaxGpuClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceResetGpuLockedClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceResetGpuLockedClocks(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceResetGpuLockedClocks(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetMemoryLockedClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceSetMemoryLockedClocks(Device Device, MinMemClockMHz uint32, MaxMemClockMHz uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinMemClockMHz, _ := (C.uint)(MinMemClockMHz), cgoAllocsUnknown\n\tcMaxMemClockMHz, _ := (C.uint)(MaxMemClockMHz), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetMemoryLockedClocks(cDevice, cMinMemClockMHz, cMaxMemClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceResetMemoryLockedClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceResetMemoryLockedClocks(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceResetMemoryLockedClocks(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetApplicationsClocks function as declared in nvml/nvml.h\nfunc nvmlDeviceSetApplicationsClocks(Device Device, MemClockMHz uint32, GraphicsClockMHz uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMemClockMHz, _ := (C.uint)(MemClockMHz), cgoAllocsUnknown\n\tcGraphicsClockMHz, _ := (C.uint)(GraphicsClockMHz), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetApplicationsClocks(cDevice, cMemClockMHz, cGraphicsClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetClkMonStatus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetClkMonStatus(Device Device, Status *ClkMonStatus) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcStatus, _ := (*C.nvmlClkMonStatus_t)(unsafe.Pointer(Status)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetClkMonStatus(cDevice, cStatus)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetPowerManagementLimit function as declared in nvml/nvml.h\nfunc nvmlDeviceSetPowerManagementLimit(Device Device, Limit uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLimit, _ := (C.uint)(Limit), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetPowerManagementLimit(cDevice, cLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetGpuOperationMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetGpuOperationMode(Device Device, Mode GpuOperationMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (C.nvmlGpuOperationMode_t)(Mode), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetGpuOperationMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetAPIRestriction function as declared in nvml/nvml.h\nfunc nvmlDeviceSetAPIRestriction(Device Device, ApiType RestrictedAPI, IsRestricted EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcApiType, _ := (C.nvmlRestrictedAPI_t)(ApiType), cgoAllocsUnknown\n\tcIsRestricted, _ := (C.nvmlEnableState_t)(IsRestricted), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetAPIRestriction(cDevice, cApiType, cIsRestricted)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetAccountingMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetAccountingMode(Device Device, Mode EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (C.nvmlEnableState_t)(Mode), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetAccountingMode(cDevice, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceClearAccountingPids function as declared in nvml/nvml.h\nfunc nvmlDeviceClearAccountingPids(Device Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceClearAccountingPids(cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkState function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkState(Device Device, Link uint32, IsActive *EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcIsActive, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(IsActive)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkState(cDevice, cLink, cIsActive)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkVersion function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkVersion(Device Device, Link uint32, Version *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcVersion, _ := (*C.uint)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkVersion(cDevice, cLink, cVersion)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkCapability function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkCapability(Device Device, Link uint32, Capability NvLinkCapability, CapResult *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCapability, _ := (C.nvmlNvLinkCapability_t)(Capability), cgoAllocsUnknown\n\tcCapResult, _ := (*C.uint)(unsafe.Pointer(CapResult)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkCapability(cDevice, cLink, cCapability, cCapResult)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkRemotePciInfo_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkRemotePciInfo_v2(Device Device, Link uint32, Pci *PciInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcPci, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(Pci)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkRemotePciInfo_v2(cDevice, cLink, cPci)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkErrorCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkErrorCounter(Device Device, Link uint32, Counter NvLinkErrorCounter, CounterValue *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.nvmlNvLinkErrorCounter_t)(Counter), cgoAllocsUnknown\n\tcCounterValue, _ := (*C.ulonglong)(unsafe.Pointer(CounterValue)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkErrorCounter(cDevice, cLink, cCounter, cCounterValue)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceResetNvLinkErrorCounters function as declared in nvml/nvml.h\nfunc nvmlDeviceResetNvLinkErrorCounters(Device Device, Link uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceResetNvLinkErrorCounters(cDevice, cLink)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetNvLinkUtilizationControl function as declared in nvml/nvml.h\nfunc nvmlDeviceSetNvLinkUtilizationControl(Device Device, Link uint32, Counter uint32, Control *NvLinkUtilizationControl, Reset uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.uint)(Counter), cgoAllocsUnknown\n\tcControl, _ := (*C.nvmlNvLinkUtilizationControl_t)(unsafe.Pointer(Control)), cgoAllocsUnknown\n\tcReset, _ := (C.uint)(Reset), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetNvLinkUtilizationControl(cDevice, cLink, cCounter, cControl, cReset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkUtilizationControl function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkUtilizationControl(Device Device, Link uint32, Counter uint32, Control *NvLinkUtilizationControl) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.uint)(Counter), cgoAllocsUnknown\n\tcControl, _ := (*C.nvmlNvLinkUtilizationControl_t)(unsafe.Pointer(Control)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkUtilizationControl(cDevice, cLink, cCounter, cControl)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkUtilizationCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkUtilizationCounter(Device Device, Link uint32, Counter uint32, Rxcounter *uint64, Txcounter *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.uint)(Counter), cgoAllocsUnknown\n\tcRxcounter, _ := (*C.ulonglong)(unsafe.Pointer(Rxcounter)), cgoAllocsUnknown\n\tcTxcounter, _ := (*C.ulonglong)(unsafe.Pointer(Txcounter)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkUtilizationCounter(cDevice, cLink, cCounter, cRxcounter, cTxcounter)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceFreezeNvLinkUtilizationCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceFreezeNvLinkUtilizationCounter(Device Device, Link uint32, Counter uint32, Freeze EnableState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.uint)(Counter), cgoAllocsUnknown\n\tcFreeze, _ := (C.nvmlEnableState_t)(Freeze), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceFreezeNvLinkUtilizationCounter(cDevice, cLink, cCounter, cFreeze)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceResetNvLinkUtilizationCounter function as declared in nvml/nvml.h\nfunc nvmlDeviceResetNvLinkUtilizationCounter(Device Device, Link uint32, Counter uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcCounter, _ := (C.uint)(Counter), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceResetNvLinkUtilizationCounter(cDevice, cLink, cCounter)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkRemoteDeviceType function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkRemoteDeviceType(Device Device, Link uint32, PNvLinkDeviceType *IntNvLinkDeviceType) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcPNvLinkDeviceType, _ := (*C.nvmlIntNvLinkDeviceType_t)(unsafe.Pointer(PNvLinkDeviceType)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkRemoteDeviceType(cDevice, cLink, cPNvLinkDeviceType)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlEventSetCreate function as declared in nvml/nvml.h\nfunc nvmlEventSetCreate(Set *EventSet) Return {\n\tcSet, _ := (*C.nvmlEventSet_t)(unsafe.Pointer(Set)), cgoAllocsUnknown\n\t__ret := C.nvmlEventSetCreate(cSet)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceRegisterEvents function as declared in nvml/nvml.h\nfunc nvmlDeviceRegisterEvents(Device Device, EventTypes uint64, Set EventSet) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEventTypes, _ := (C.ulonglong)(EventTypes), cgoAllocsUnknown\n\tcSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceRegisterEvents(cDevice, cEventTypes, cSet)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedEventTypes function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedEventTypes(Device Device, EventTypes *uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcEventTypes, _ := (*C.ulonglong)(unsafe.Pointer(EventTypes)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedEventTypes(cDevice, cEventTypes)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlEventSetWait_v2 function as declared in nvml/nvml.h\nfunc nvmlEventSetWait_v2(Set EventSet, Data *EventData, Timeoutms uint32) Return {\n\tcSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown\n\tcData, _ := (*C.nvmlEventData_t)(unsafe.Pointer(Data)), cgoAllocsUnknown\n\tcTimeoutms, _ := (C.uint)(Timeoutms), cgoAllocsUnknown\n\t__ret := C.nvmlEventSetWait_v2(cSet, cData, cTimeoutms)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlEventSetFree function as declared in nvml/nvml.h\nfunc nvmlEventSetFree(Set EventSet) Return {\n\tcSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown\n\t__ret := C.nvmlEventSetFree(cSet)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceModifyDrainState function as declared in nvml/nvml.h\nfunc nvmlDeviceModifyDrainState(PciInfo *PciInfo, NewState EnableState) Return {\n\tcPciInfo, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(PciInfo)), cgoAllocsUnknown\n\tcNewState, _ := (C.nvmlEnableState_t)(NewState), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceModifyDrainState(cPciInfo, cNewState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceQueryDrainState function as declared in nvml/nvml.h\nfunc nvmlDeviceQueryDrainState(PciInfo *PciInfo, CurrentState *EnableState) Return {\n\tcPciInfo, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(PciInfo)), cgoAllocsUnknown\n\tcCurrentState, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(CurrentState)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceQueryDrainState(cPciInfo, cCurrentState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceRemoveGpu_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceRemoveGpu_v2(PciInfo *PciInfo, GpuState DetachGpuState, LinkState PcieLinkState) Return {\n\tcPciInfo, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(PciInfo)), cgoAllocsUnknown\n\tcGpuState, _ := (C.nvmlDetachGpuState_t)(GpuState), cgoAllocsUnknown\n\tcLinkState, _ := (C.nvmlPcieLinkState_t)(LinkState), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceRemoveGpu_v2(cPciInfo, cGpuState, cLinkState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceDiscoverGpus function as declared in nvml/nvml.h\nfunc nvmlDeviceDiscoverGpus(PciInfo *PciInfo) Return {\n\tcPciInfo, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(PciInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceDiscoverGpus(cPciInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetFieldValues function as declared in nvml/nvml.h\nfunc nvmlDeviceGetFieldValues(Device Device, ValuesCount int32, Values *FieldValue) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcValuesCount, _ := (C.int)(ValuesCount), cgoAllocsUnknown\n\tcValues, _ := (*C.nvmlFieldValue_t)(unsafe.Pointer(Values)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetFieldValues(cDevice, cValuesCount, cValues)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceClearFieldValues function as declared in nvml/nvml.h\nfunc nvmlDeviceClearFieldValues(Device Device, ValuesCount int32, Values *FieldValue) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcValuesCount, _ := (C.int)(ValuesCount), cgoAllocsUnknown\n\tcValues, _ := (*C.nvmlFieldValue_t)(unsafe.Pointer(Values)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceClearFieldValues(cDevice, cValuesCount, cValues)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVirtualizationMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVirtualizationMode(Device Device, PVirtualMode *GpuVirtualizationMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPVirtualMode, _ := (*C.nvmlGpuVirtualizationMode_t)(unsafe.Pointer(PVirtualMode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVirtualizationMode(cDevice, cPVirtualMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHostVgpuMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHostVgpuMode(Device Device, PHostVgpuMode *HostVgpuMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPHostVgpuMode, _ := (*C.nvmlHostVgpuMode_t)(unsafe.Pointer(PHostVgpuMode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHostVgpuMode(cDevice, cPHostVgpuMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetVirtualizationMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetVirtualizationMode(Device Device, VirtualMode GpuVirtualizationMode) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVirtualMode, _ := (C.nvmlGpuVirtualizationMode_t)(VirtualMode), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetVirtualizationMode(cDevice, cVirtualMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGridLicensableFeatures_v4 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGridLicensableFeatures_v4(Device Device, PGridLicensableFeatures *GridLicensableFeatures) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPGridLicensableFeatures, _ := (*C.nvmlGridLicensableFeatures_t)(unsafe.Pointer(PGridLicensableFeatures)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGridLicensableFeatures_v4(cDevice, cPGridLicensableFeatures)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetProcessUtilization function as declared in nvml/nvml.h\nfunc nvmlDeviceGetProcessUtilization(Device Device, Utilization *ProcessUtilizationSample, ProcessSamplesCount *uint32, LastSeenTimeStamp uint64) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcUtilization, _ := (*C.nvmlProcessUtilizationSample_t)(unsafe.Pointer(Utilization)), cgoAllocsUnknown\n\tcProcessSamplesCount, _ := (*C.uint)(unsafe.Pointer(ProcessSamplesCount)), cgoAllocsUnknown\n\tcLastSeenTimeStamp, _ := (C.ulonglong)(LastSeenTimeStamp), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetProcessUtilization(cDevice, cUtilization, cProcessSamplesCount, cLastSeenTimeStamp)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGspFirmwareVersion function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGspFirmwareVersion(Device Device, Version *byte) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGspFirmwareVersion(cDevice, cVersion)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGspFirmwareMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGspFirmwareMode(Device Device, IsEnabled *uint32, DefaultMode *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIsEnabled, _ := (*C.uint)(unsafe.Pointer(IsEnabled)), cgoAllocsUnknown\n\tcDefaultMode, _ := (*C.uint)(unsafe.Pointer(DefaultMode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGspFirmwareMode(cDevice, cIsEnabled, cDefaultMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGetVgpuDriverCapabilities function as declared in nvml/nvml.h\nfunc nvmlGetVgpuDriverCapabilities(Capability VgpuDriverCapability, CapResult *uint32) Return {\n\tcCapability, _ := (C.nvmlVgpuDriverCapability_t)(Capability), cgoAllocsUnknown\n\tcCapResult, _ := (*C.uint)(unsafe.Pointer(CapResult)), cgoAllocsUnknown\n\t__ret := C.nvmlGetVgpuDriverCapabilities(cCapability, cCapResult)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuCapabilities function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuCapabilities(Device Device, Capability DeviceVgpuCapability, CapResult *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCapability, _ := (C.nvmlDeviceVgpuCapability_t)(Capability), cgoAllocsUnknown\n\tcCapResult, _ := (*C.uint)(unsafe.Pointer(CapResult)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuCapabilities(cDevice, cCapability, cCapResult)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedVgpus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedVgpus(Device Device, VgpuCount *uint32, VgpuTypeIds *VgpuTypeId) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVgpuCount, _ := (*C.uint)(unsafe.Pointer(VgpuCount)), cgoAllocsUnknown\n\tcVgpuTypeIds, _ := (*C.nvmlVgpuTypeId_t)(unsafe.Pointer(VgpuTypeIds)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedVgpus(cDevice, cVgpuCount, cVgpuTypeIds)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCreatableVgpus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCreatableVgpus(Device Device, VgpuCount *uint32, VgpuTypeIds *VgpuTypeId) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVgpuCount, _ := (*C.uint)(unsafe.Pointer(VgpuCount)), cgoAllocsUnknown\n\tcVgpuTypeIds, _ := (*C.nvmlVgpuTypeId_t)(unsafe.Pointer(VgpuTypeIds)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCreatableVgpus(cDevice, cVgpuCount, cVgpuTypeIds)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetClass function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetClass(VgpuTypeId VgpuTypeId, VgpuTypeClass *byte, Size *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcVgpuTypeClass, _ := (*C.char)(unsafe.Pointer(VgpuTypeClass)), cgoAllocsUnknown\n\tcSize, _ := (*C.uint)(unsafe.Pointer(Size)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetClass(cVgpuTypeId, cVgpuTypeClass, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetName function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetName(VgpuTypeId VgpuTypeId, VgpuTypeName *byte, Size *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcVgpuTypeName, _ := (*C.char)(unsafe.Pointer(VgpuTypeName)), cgoAllocsUnknown\n\tcSize, _ := (*C.uint)(unsafe.Pointer(Size)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetName(cVgpuTypeId, cVgpuTypeName, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetGpuInstanceProfileId function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetGpuInstanceProfileId(VgpuTypeId VgpuTypeId, GpuInstanceProfileId *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcGpuInstanceProfileId, _ := (*C.uint)(unsafe.Pointer(GpuInstanceProfileId)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetGpuInstanceProfileId(cVgpuTypeId, cGpuInstanceProfileId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetDeviceID function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetDeviceID(VgpuTypeId VgpuTypeId, DeviceID *uint64, SubsystemID *uint64) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcDeviceID, _ := (*C.ulonglong)(unsafe.Pointer(DeviceID)), cgoAllocsUnknown\n\tcSubsystemID, _ := (*C.ulonglong)(unsafe.Pointer(SubsystemID)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetDeviceID(cVgpuTypeId, cDeviceID, cSubsystemID)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetFramebufferSize function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetFramebufferSize(VgpuTypeId VgpuTypeId, FbSize *uint64) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcFbSize, _ := (*C.ulonglong)(unsafe.Pointer(FbSize)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetFramebufferSize(cVgpuTypeId, cFbSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetNumDisplayHeads function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetNumDisplayHeads(VgpuTypeId VgpuTypeId, NumDisplayHeads *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcNumDisplayHeads, _ := (*C.uint)(unsafe.Pointer(NumDisplayHeads)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetNumDisplayHeads(cVgpuTypeId, cNumDisplayHeads)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetResolution function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetResolution(VgpuTypeId VgpuTypeId, DisplayIndex uint32, Xdim *uint32, Ydim *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcDisplayIndex, _ := (C.uint)(DisplayIndex), cgoAllocsUnknown\n\tcXdim, _ := (*C.uint)(unsafe.Pointer(Xdim)), cgoAllocsUnknown\n\tcYdim, _ := (*C.uint)(unsafe.Pointer(Ydim)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetResolution(cVgpuTypeId, cDisplayIndex, cXdim, cYdim)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetLicense function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetLicense(VgpuTypeId VgpuTypeId, VgpuTypeLicenseString *byte, Size uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcVgpuTypeLicenseString, _ := (*C.char)(unsafe.Pointer(VgpuTypeLicenseString)), cgoAllocsUnknown\n\tcSize, _ := (C.uint)(Size), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetLicense(cVgpuTypeId, cVgpuTypeLicenseString, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetFrameRateLimit function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetFrameRateLimit(VgpuTypeId VgpuTypeId, FrameRateLimit *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcFrameRateLimit, _ := (*C.uint)(unsafe.Pointer(FrameRateLimit)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetFrameRateLimit(cVgpuTypeId, cFrameRateLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetMaxInstances function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetMaxInstances(Device Device, VgpuTypeId VgpuTypeId, VgpuInstanceCount *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcVgpuInstanceCount, _ := (*C.uint)(unsafe.Pointer(VgpuInstanceCount)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetMaxInstances(cDevice, cVgpuTypeId, cVgpuInstanceCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetMaxInstancesPerVm function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetMaxInstancesPerVm(VgpuTypeId VgpuTypeId, VgpuInstanceCountPerVm *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcVgpuInstanceCountPerVm, _ := (*C.uint)(unsafe.Pointer(VgpuInstanceCountPerVm)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetMaxInstancesPerVm(cVgpuTypeId, cVgpuInstanceCountPerVm)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetActiveVgpus function as declared in nvml/nvml.h\nfunc nvmlDeviceGetActiveVgpus(Device Device, VgpuCount *uint32, VgpuInstances *VgpuInstance) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcVgpuCount, _ := (*C.uint)(unsafe.Pointer(VgpuCount)), cgoAllocsUnknown\n\tcVgpuInstances, _ := (*C.nvmlVgpuInstance_t)(unsafe.Pointer(VgpuInstances)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetActiveVgpus(cDevice, cVgpuCount, cVgpuInstances)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetVmID function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetVmID(VgpuInstance VgpuInstance, VmId *byte, Size uint32, VmIdType *VgpuVmIdType) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcVmId, _ := (*C.char)(unsafe.Pointer(VmId)), cgoAllocsUnknown\n\tcSize, _ := (C.uint)(Size), cgoAllocsUnknown\n\tcVmIdType, _ := (*C.nvmlVgpuVmIdType_t)(unsafe.Pointer(VmIdType)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetVmID(cVgpuInstance, cVmId, cSize, cVmIdType)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetUUID function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetUUID(VgpuInstance VgpuInstance, Uuid *byte, Size uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcUuid, _ := (*C.char)(unsafe.Pointer(Uuid)), cgoAllocsUnknown\n\tcSize, _ := (C.uint)(Size), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetUUID(cVgpuInstance, cUuid, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetVmDriverVersion function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetVmDriverVersion(VgpuInstance VgpuInstance, Version *byte, Length uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcVersion, _ := (*C.char)(unsafe.Pointer(Version)), cgoAllocsUnknown\n\tcLength, _ := (C.uint)(Length), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetVmDriverVersion(cVgpuInstance, cVersion, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetFbUsage function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetFbUsage(VgpuInstance VgpuInstance, FbUsage *uint64) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcFbUsage, _ := (*C.ulonglong)(unsafe.Pointer(FbUsage)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetFbUsage(cVgpuInstance, cFbUsage)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetLicenseStatus function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetLicenseStatus(VgpuInstance VgpuInstance, Licensed *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcLicensed, _ := (*C.uint)(unsafe.Pointer(Licensed)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetLicenseStatus(cVgpuInstance, cLicensed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetType function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetType(VgpuInstance VgpuInstance, VgpuTypeId *VgpuTypeId) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcVgpuTypeId, _ := (*C.nvmlVgpuTypeId_t)(unsafe.Pointer(VgpuTypeId)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetType(cVgpuInstance, cVgpuTypeId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetFrameRateLimit function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetFrameRateLimit(VgpuInstance VgpuInstance, FrameRateLimit *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcFrameRateLimit, _ := (*C.uint)(unsafe.Pointer(FrameRateLimit)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetFrameRateLimit(cVgpuInstance, cFrameRateLimit)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetEccMode function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetEccMode(VgpuInstance VgpuInstance, EccMode *EnableState) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcEccMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(EccMode)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetEccMode(cVgpuInstance, cEccMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetEncoderCapacity function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetEncoderCapacity(VgpuInstance VgpuInstance, EncoderCapacity *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcEncoderCapacity, _ := (*C.uint)(unsafe.Pointer(EncoderCapacity)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetEncoderCapacity(cVgpuInstance, cEncoderCapacity)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceSetEncoderCapacity function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceSetEncoderCapacity(VgpuInstance VgpuInstance, EncoderCapacity uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcEncoderCapacity, _ := (C.uint)(EncoderCapacity), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceSetEncoderCapacity(cVgpuInstance, cEncoderCapacity)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetEncoderStats function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetEncoderStats(VgpuInstance VgpuInstance, SessionCount *uint32, AverageFps *uint32, AverageLatency *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcAverageFps, _ := (*C.uint)(unsafe.Pointer(AverageFps)), cgoAllocsUnknown\n\tcAverageLatency, _ := (*C.uint)(unsafe.Pointer(AverageLatency)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetEncoderStats(cVgpuInstance, cSessionCount, cAverageFps, cAverageLatency)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetEncoderSessions function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetEncoderSessions(VgpuInstance VgpuInstance, SessionCount *uint32, SessionInfo *EncoderSessionInfo) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcSessionInfo, _ := (*C.nvmlEncoderSessionInfo_t)(unsafe.Pointer(SessionInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetEncoderSessions(cVgpuInstance, cSessionCount, cSessionInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetFBCStats function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetFBCStats(VgpuInstance VgpuInstance, FbcStats *FBCStats) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcFbcStats, _ := (*C.nvmlFBCStats_t)(unsafe.Pointer(FbcStats)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetFBCStats(cVgpuInstance, cFbcStats)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetFBCSessions function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetFBCSessions(VgpuInstance VgpuInstance, SessionCount *uint32, SessionInfo *FBCSessionInfo) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcSessionCount, _ := (*C.uint)(unsafe.Pointer(SessionCount)), cgoAllocsUnknown\n\tcSessionInfo, _ := (*C.nvmlFBCSessionInfo_t)(unsafe.Pointer(SessionInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetFBCSessions(cVgpuInstance, cSessionCount, cSessionInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetGpuInstanceId function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetGpuInstanceId(VgpuInstance VgpuInstance, GpuInstanceId *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcGpuInstanceId, _ := (*C.uint)(unsafe.Pointer(GpuInstanceId)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetGpuInstanceId(cVgpuInstance, cGpuInstanceId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetGpuPciId function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetGpuPciId(VgpuInstance VgpuInstance, VgpuPciId *byte, Length *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcVgpuPciId, _ := (*C.char)(unsafe.Pointer(VgpuPciId)), cgoAllocsUnknown\n\tcLength, _ := (*C.uint)(unsafe.Pointer(Length)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetGpuPciId(cVgpuInstance, cVgpuPciId, cLength)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuTypeGetCapabilities function as declared in nvml/nvml.h\nfunc nvmlVgpuTypeGetCapabilities(VgpuTypeId VgpuTypeId, Capability VgpuCapability, CapResult *uint32) Return {\n\tcVgpuTypeId, _ := (C.nvmlVgpuTypeId_t)(VgpuTypeId), cgoAllocsUnknown\n\tcCapability, _ := (C.nvmlVgpuCapability_t)(Capability), cgoAllocsUnknown\n\tcCapResult, _ := (*C.uint)(unsafe.Pointer(CapResult)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuTypeGetCapabilities(cVgpuTypeId, cCapability, cCapResult)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetMetadata function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetMetadata(VgpuInstance VgpuInstance, nvmlVgpuMetadata *nvmlVgpuMetadata, BufferSize *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcnvmlVgpuMetadata, _ := (*C.nvmlVgpuMetadata_t)(unsafe.Pointer(nvmlVgpuMetadata)), cgoAllocsUnknown\n\tcBufferSize, _ := (*C.uint)(unsafe.Pointer(BufferSize)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetMetadata(cVgpuInstance, cnvmlVgpuMetadata, cBufferSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuMetadata function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuMetadata(Device Device, PgpuMetadata *nvmlVgpuPgpuMetadata, BufferSize *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPgpuMetadata, _ := (*C.nvmlVgpuPgpuMetadata_t)(unsafe.Pointer(PgpuMetadata)), cgoAllocsUnknown\n\tcBufferSize, _ := (*C.uint)(unsafe.Pointer(BufferSize)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuMetadata(cDevice, cPgpuMetadata, cBufferSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGetVgpuCompatibility function as declared in nvml/nvml.h\nfunc nvmlGetVgpuCompatibility(nvmlVgpuMetadata *nvmlVgpuMetadata, PgpuMetadata *nvmlVgpuPgpuMetadata, CompatibilityInfo *VgpuPgpuCompatibility) Return {\n\tcnvmlVgpuMetadata, _ := (*C.nvmlVgpuMetadata_t)(unsafe.Pointer(nvmlVgpuMetadata)), cgoAllocsUnknown\n\tcPgpuMetadata, _ := (*C.nvmlVgpuPgpuMetadata_t)(unsafe.Pointer(PgpuMetadata)), cgoAllocsUnknown\n\tcCompatibilityInfo, _ := (*C.nvmlVgpuPgpuCompatibility_t)(unsafe.Pointer(CompatibilityInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlGetVgpuCompatibility(cnvmlVgpuMetadata, cPgpuMetadata, cCompatibilityInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPgpuMetadataString function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPgpuMetadataString(Device Device, PgpuMetadata *byte, BufferSize *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPgpuMetadata, _ := (*C.char)(unsafe.Pointer(PgpuMetadata)), cgoAllocsUnknown\n\tcBufferSize, _ := (*C.uint)(unsafe.Pointer(BufferSize)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPgpuMetadataString(cDevice, cPgpuMetadata, cBufferSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuSchedulerLog function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuSchedulerLog(Device Device, PSchedulerLog *VgpuSchedulerLog) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPSchedulerLog, _ := (*C.nvmlVgpuSchedulerLog_t)(unsafe.Pointer(PSchedulerLog)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuSchedulerLog(cDevice, cPSchedulerLog)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuSchedulerState function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuSchedulerState(Device Device, PSchedulerState *VgpuSchedulerGetState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPSchedulerState, _ := (*C.nvmlVgpuSchedulerGetState_t)(unsafe.Pointer(PSchedulerState)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuSchedulerState(cDevice, cPSchedulerState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetVgpuSchedulerState function as declared in nvml/nvml.h\nfunc nvmlDeviceSetVgpuSchedulerState(Device Device, PSchedulerState *VgpuSchedulerSetState) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPSchedulerState, _ := (*C.nvmlVgpuSchedulerSetState_t)(unsafe.Pointer(PSchedulerState)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetVgpuSchedulerState(cDevice, cPSchedulerState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuSchedulerCapabilities function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuSchedulerCapabilities(Device Device, PCapabilities *VgpuSchedulerCapabilities) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPCapabilities, _ := (*C.nvmlVgpuSchedulerCapabilities_t)(unsafe.Pointer(PCapabilities)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuSchedulerCapabilities(cDevice, cPCapabilities)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGetVgpuVersion function as declared in nvml/nvml.h\nfunc nvmlGetVgpuVersion(Supported *VgpuVersion, Current *VgpuVersion) Return {\n\tcSupported, _ := (*C.nvmlVgpuVersion_t)(unsafe.Pointer(Supported)), cgoAllocsUnknown\n\tcCurrent, _ := (*C.nvmlVgpuVersion_t)(unsafe.Pointer(Current)), cgoAllocsUnknown\n\t__ret := C.nvmlGetVgpuVersion(cSupported, cCurrent)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlSetVgpuVersion function as declared in nvml/nvml.h\nfunc nvmlSetVgpuVersion(VgpuVersion *VgpuVersion) Return {\n\tcVgpuVersion, _ := (*C.nvmlVgpuVersion_t)(unsafe.Pointer(VgpuVersion)), cgoAllocsUnknown\n\t__ret := C.nvmlSetVgpuVersion(cVgpuVersion)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuUtilization function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuUtilization(Device Device, LastSeenTimeStamp uint64, SampleValType *ValueType, VgpuInstanceSamplesCount *uint32, UtilizationSamples *VgpuInstanceUtilizationSample) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLastSeenTimeStamp, _ := (C.ulonglong)(LastSeenTimeStamp), cgoAllocsUnknown\n\tcSampleValType, _ := (*C.nvmlValueType_t)(unsafe.Pointer(SampleValType)), cgoAllocsUnknown\n\tcVgpuInstanceSamplesCount, _ := (*C.uint)(unsafe.Pointer(VgpuInstanceSamplesCount)), cgoAllocsUnknown\n\tcUtilizationSamples, _ := (*C.nvmlVgpuInstanceUtilizationSample_t)(unsafe.Pointer(UtilizationSamples)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuUtilization(cDevice, cLastSeenTimeStamp, cSampleValType, cVgpuInstanceSamplesCount, cUtilizationSamples)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetVgpuProcessUtilization function as declared in nvml/nvml.h\nfunc nvmlDeviceGetVgpuProcessUtilization(Device Device, LastSeenTimeStamp uint64, VgpuProcessSamplesCount *uint32, UtilizationSamples *VgpuProcessUtilizationSample) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLastSeenTimeStamp, _ := (C.ulonglong)(LastSeenTimeStamp), cgoAllocsUnknown\n\tcVgpuProcessSamplesCount, _ := (*C.uint)(unsafe.Pointer(VgpuProcessSamplesCount)), cgoAllocsUnknown\n\tcUtilizationSamples, _ := (*C.nvmlVgpuProcessUtilizationSample_t)(unsafe.Pointer(UtilizationSamples)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetVgpuProcessUtilization(cDevice, cLastSeenTimeStamp, cVgpuProcessSamplesCount, cUtilizationSamples)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetAccountingMode function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetAccountingMode(VgpuInstance VgpuInstance, Mode *EnableState) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcMode, _ := (*C.nvmlEnableState_t)(unsafe.Pointer(Mode)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetAccountingMode(cVgpuInstance, cMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetAccountingPids function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetAccountingPids(VgpuInstance VgpuInstance, Count *uint32, Pids *uint32) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\tcPids, _ := (*C.uint)(unsafe.Pointer(Pids)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetAccountingPids(cVgpuInstance, cCount, cPids)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetAccountingStats function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetAccountingStats(VgpuInstance VgpuInstance, Pid uint32, Stats *AccountingStats) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcPid, _ := (C.uint)(Pid), cgoAllocsUnknown\n\tcStats, _ := (*C.nvmlAccountingStats_t)(unsafe.Pointer(Stats)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetAccountingStats(cVgpuInstance, cPid, cStats)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceClearAccountingPids function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceClearAccountingPids(VgpuInstance VgpuInstance) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceClearAccountingPids(cVgpuInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetLicenseInfo_v2 function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetLicenseInfo_v2(VgpuInstance VgpuInstance, LicenseInfo *VgpuLicenseInfo) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcLicenseInfo, _ := (*C.nvmlVgpuLicenseInfo_t)(unsafe.Pointer(LicenseInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetLicenseInfo_v2(cVgpuInstance, cLicenseInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGetExcludedDeviceCount function as declared in nvml/nvml.h\nfunc nvmlGetExcludedDeviceCount(DeviceCount *uint32) Return {\n\tcDeviceCount, _ := (*C.uint)(unsafe.Pointer(DeviceCount)), cgoAllocsUnknown\n\t__ret := C.nvmlGetExcludedDeviceCount(cDeviceCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGetExcludedDeviceInfoByIndex function as declared in nvml/nvml.h\nfunc nvmlGetExcludedDeviceInfoByIndex(Index uint32, Info *ExcludedDeviceInfo) Return {\n\tcIndex, _ := (C.uint)(Index), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlExcludedDeviceInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlGetExcludedDeviceInfoByIndex(cIndex, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetMigMode function as declared in nvml/nvml.h\nfunc nvmlDeviceSetMigMode(Device Device, Mode uint32, ActivationStatus *Return) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMode, _ := (C.uint)(Mode), cgoAllocsUnknown\n\tcActivationStatus, _ := (*C.nvmlReturn_t)(unsafe.Pointer(ActivationStatus)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetMigMode(cDevice, cMode, cActivationStatus)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMigMode function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMigMode(Device Device, CurrentMode *uint32, PendingMode *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCurrentMode, _ := (*C.uint)(unsafe.Pointer(CurrentMode)), cgoAllocsUnknown\n\tcPendingMode, _ := (*C.uint)(unsafe.Pointer(PendingMode)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMigMode(cDevice, cCurrentMode, cPendingMode)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstanceProfileInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstanceProfileInfo(Device Device, Profile uint32, Info *GpuInstanceProfileInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfile, _ := (C.uint)(Profile), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlGpuInstanceProfileInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstanceProfileInfo(cDevice, cProfile, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstanceProfileInfoV function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstanceProfileInfoV(Device Device, Profile uint32, Info *GpuInstanceProfileInfo_v2) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfile, _ := (C.uint)(Profile), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlGpuInstanceProfileInfo_v2_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstanceProfileInfoV(cDevice, cProfile, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstancePossiblePlacements_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstancePossiblePlacements_v2(Device Device, ProfileId uint32, Placements *GpuInstancePlacement, Count *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcPlacements, _ := (*C.nvmlGpuInstancePlacement_t)(unsafe.Pointer(Placements)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstancePossiblePlacements_v2(cDevice, cProfileId, cPlacements, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstanceRemainingCapacity function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstanceRemainingCapacity(Device Device, ProfileId uint32, Count *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstanceRemainingCapacity(cDevice, cProfileId, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceCreateGpuInstance function as declared in nvml/nvml.h\nfunc nvmlDeviceCreateGpuInstance(Device Device, ProfileId uint32, GpuInstance *GpuInstance) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcGpuInstance, _ := (*C.nvmlGpuInstance_t)(unsafe.Pointer(GpuInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceCreateGpuInstance(cDevice, cProfileId, cGpuInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceCreateGpuInstanceWithPlacement function as declared in nvml/nvml.h\nfunc nvmlDeviceCreateGpuInstanceWithPlacement(Device Device, ProfileId uint32, Placement *GpuInstancePlacement, GpuInstance *GpuInstance) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcPlacement, _ := (*C.nvmlGpuInstancePlacement_t)(unsafe.Pointer(Placement)), cgoAllocsUnknown\n\tcGpuInstance, _ := (*C.nvmlGpuInstance_t)(unsafe.Pointer(GpuInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceCreateGpuInstanceWithPlacement(cDevice, cProfileId, cPlacement, cGpuInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceDestroy function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceDestroy(GpuInstance GpuInstance) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceDestroy(cGpuInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstances function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstances(Device Device, ProfileId uint32, GpuInstances *GpuInstance, Count *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcGpuInstances, _ := (*C.nvmlGpuInstance_t)(unsafe.Pointer(GpuInstances)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstances(cDevice, cProfileId, cGpuInstances, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstanceById function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstanceById(Device Device, Id uint32, GpuInstance *GpuInstance) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcId, _ := (C.uint)(Id), cgoAllocsUnknown\n\tcGpuInstance, _ := (*C.nvmlGpuInstance_t)(unsafe.Pointer(GpuInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstanceById(cDevice, cId, cGpuInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetInfo function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetInfo(GpuInstance GpuInstance, Info *GpuInstanceInfo) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlGpuInstanceInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetInfo(cGpuInstance, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstanceProfileInfo function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstanceProfileInfo(GpuInstance GpuInstance, Profile uint32, EngProfile uint32, Info *ComputeInstanceProfileInfo) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfile, _ := (C.uint)(Profile), cgoAllocsUnknown\n\tcEngProfile, _ := (C.uint)(EngProfile), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlComputeInstanceProfileInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstanceProfileInfo(cGpuInstance, cProfile, cEngProfile, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstanceProfileInfoV function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstanceProfileInfoV(GpuInstance GpuInstance, Profile uint32, EngProfile uint32, Info *ComputeInstanceProfileInfo_v2) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfile, _ := (C.uint)(Profile), cgoAllocsUnknown\n\tcEngProfile, _ := (C.uint)(EngProfile), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlComputeInstanceProfileInfo_v2_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstanceProfileInfoV(cGpuInstance, cProfile, cEngProfile, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstanceRemainingCapacity function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance GpuInstance, ProfileId uint32, Count *uint32) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstanceRemainingCapacity(cGpuInstance, cProfileId, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstancePossiblePlacements function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstancePossiblePlacements(GpuInstance GpuInstance, ProfileId uint32, Placements *ComputeInstancePlacement, Count *uint32) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcPlacements, _ := (*C.nvmlComputeInstancePlacement_t)(unsafe.Pointer(Placements)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstancePossiblePlacements(cGpuInstance, cProfileId, cPlacements, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceCreateComputeInstance function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceCreateComputeInstance(GpuInstance GpuInstance, ProfileId uint32, ComputeInstance *ComputeInstance) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcComputeInstance, _ := (*C.nvmlComputeInstance_t)(unsafe.Pointer(ComputeInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceCreateComputeInstance(cGpuInstance, cProfileId, cComputeInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceCreateComputeInstanceWithPlacement function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceCreateComputeInstanceWithPlacement(GpuInstance GpuInstance, ProfileId uint32, Placement *ComputeInstancePlacement, ComputeInstance *ComputeInstance) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcPlacement, _ := (*C.nvmlComputeInstancePlacement_t)(unsafe.Pointer(Placement)), cgoAllocsUnknown\n\tcComputeInstance, _ := (*C.nvmlComputeInstance_t)(unsafe.Pointer(ComputeInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceCreateComputeInstanceWithPlacement(cGpuInstance, cProfileId, cPlacement, cComputeInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlComputeInstanceDestroy function as declared in nvml/nvml.h\nfunc nvmlComputeInstanceDestroy(ComputeInstance ComputeInstance) Return {\n\tcComputeInstance, _ := *(*C.nvmlComputeInstance_t)(unsafe.Pointer(&ComputeInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlComputeInstanceDestroy(cComputeInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstances function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstances(GpuInstance GpuInstance, ProfileId uint32, ComputeInstances *ComputeInstance, Count *uint32) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcComputeInstances, _ := (*C.nvmlComputeInstance_t)(unsafe.Pointer(ComputeInstances)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstances(cGpuInstance, cProfileId, cComputeInstances, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpuInstanceGetComputeInstanceById function as declared in nvml/nvml.h\nfunc nvmlGpuInstanceGetComputeInstanceById(GpuInstance GpuInstance, Id uint32, ComputeInstance *ComputeInstance) Return {\n\tcGpuInstance, _ := *(*C.nvmlGpuInstance_t)(unsafe.Pointer(&GpuInstance)), cgoAllocsUnknown\n\tcId, _ := (C.uint)(Id), cgoAllocsUnknown\n\tcComputeInstance, _ := (*C.nvmlComputeInstance_t)(unsafe.Pointer(ComputeInstance)), cgoAllocsUnknown\n\t__ret := C.nvmlGpuInstanceGetComputeInstanceById(cGpuInstance, cId, cComputeInstance)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlComputeInstanceGetInfo_v2 function as declared in nvml/nvml.h\nfunc nvmlComputeInstanceGetInfo_v2(ComputeInstance ComputeInstance, Info *ComputeInstanceInfo) Return {\n\tcComputeInstance, _ := *(*C.nvmlComputeInstance_t)(unsafe.Pointer(&ComputeInstance)), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlComputeInstanceInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlComputeInstanceGetInfo_v2(cComputeInstance, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceIsMigDeviceHandle function as declared in nvml/nvml.h\nfunc nvmlDeviceIsMigDeviceHandle(Device Device, IsMigDevice *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIsMigDevice, _ := (*C.uint)(unsafe.Pointer(IsMigDevice)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceIsMigDeviceHandle(cDevice, cIsMigDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstanceId function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstanceId(Device Device, Id *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcId, _ := (*C.uint)(unsafe.Pointer(Id)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstanceId(cDevice, cId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetComputeInstanceId function as declared in nvml/nvml.h\nfunc nvmlDeviceGetComputeInstanceId(Device Device, Id *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcId, _ := (*C.uint)(unsafe.Pointer(Id)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetComputeInstanceId(cDevice, cId)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMaxMigDeviceCount function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMaxMigDeviceCount(Device Device, Count *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMaxMigDeviceCount(cDevice, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMigDeviceHandleByIndex function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMigDeviceHandleByIndex(Device Device, Index uint32, MigDevice *Device) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcIndex, _ := (C.uint)(Index), cgoAllocsUnknown\n\tcMigDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(MigDevice)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMigDeviceHandleByIndex(cDevice, cIndex, cMigDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDeviceHandleFromMigDeviceHandle function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDeviceHandleFromMigDeviceHandle(MigDevice Device, Device *Device) Return {\n\tcMigDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&MigDevice)), cgoAllocsUnknown\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDeviceHandleFromMigDeviceHandle(cMigDevice, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetBusType function as declared in nvml/nvml.h\nfunc nvmlDeviceGetBusType(Device Device, _type *BusType) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (*C.nvmlBusType_t)(unsafe.Pointer(_type)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetBusType(cDevice, c_type)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetDynamicPstatesInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetDynamicPstatesInfo(Device Device, PDynamicPstatesInfo *GpuDynamicPstatesInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPDynamicPstatesInfo, _ := (*C.nvmlGpuDynamicPstatesInfo_t)(unsafe.Pointer(PDynamicPstatesInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetDynamicPstatesInfo(cDevice, cPDynamicPstatesInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetFanSpeed_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceSetFanSpeed_v2(Device Device, Fan uint32, Speed uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcFan, _ := (C.uint)(Fan), cgoAllocsUnknown\n\tcSpeed, _ := (C.uint)(Speed), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetFanSpeed_v2(cDevice, cFan, cSpeed)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpcClkVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpcClkVfOffset(Device Device, Offset *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcOffset, _ := (*C.int)(unsafe.Pointer(Offset)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpcClkVfOffset(cDevice, cOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetGpcClkVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceSetGpcClkVfOffset(Device Device, Offset int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcOffset, _ := (C.int)(Offset), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetGpcClkVfOffset(cDevice, cOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemClkVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemClkVfOffset(Device Device, Offset *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcOffset, _ := (*C.int)(unsafe.Pointer(Offset)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemClkVfOffset(cDevice, cOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetMemClkVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceSetMemClkVfOffset(Device Device, Offset int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcOffset, _ := (C.int)(Offset), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetMemClkVfOffset(cDevice, cOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMinMaxClockOfPState function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMinMaxClockOfPState(Device Device, _type ClockType, Pstate Pstates, MinClockMHz *uint32, MaxClockMHz *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tc_type, _ := (C.nvmlClockType_t)(_type), cgoAllocsUnknown\n\tcPstate, _ := (C.nvmlPstates_t)(Pstate), cgoAllocsUnknown\n\tcMinClockMHz, _ := (*C.uint)(unsafe.Pointer(MinClockMHz)), cgoAllocsUnknown\n\tcMaxClockMHz, _ := (*C.uint)(unsafe.Pointer(MaxClockMHz)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMinMaxClockOfPState(cDevice, c_type, cPstate, cMinClockMHz, cMaxClockMHz)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetSupportedPerformanceStates function as declared in nvml/nvml.h\nfunc nvmlDeviceGetSupportedPerformanceStates(Device Device, Pstates *Pstates, Size uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPstates, _ := (*C.nvmlPstates_t)(unsafe.Pointer(Pstates)), cgoAllocsUnknown\n\tcSize, _ := (C.uint)(Size), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetSupportedPerformanceStates(cDevice, cPstates, cSize)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpcClkMinMaxVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpcClkMinMaxVfOffset(Device Device, MinOffset *int32, MaxOffset *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinOffset, _ := (*C.int)(unsafe.Pointer(MinOffset)), cgoAllocsUnknown\n\tcMaxOffset, _ := (*C.int)(unsafe.Pointer(MaxOffset)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpcClkMinMaxVfOffset(cDevice, cMinOffset, cMaxOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMemClkMinMaxVfOffset function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMemClkMinMaxVfOffset(Device Device, MinOffset *int32, MaxOffset *int32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcMinOffset, _ := (*C.int)(unsafe.Pointer(MinOffset)), cgoAllocsUnknown\n\tcMaxOffset, _ := (*C.int)(unsafe.Pointer(MaxOffset)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMemClkMinMaxVfOffset(cDevice, cMinOffset, cMaxOffset)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuFabricInfo function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuFabricInfo(Device Device, GpuFabricInfo *GpuFabricInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcGpuFabricInfo, _ := (*C.nvmlGpuFabricInfo_t)(unsafe.Pointer(GpuFabricInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuFabricInfo(cDevice, cGpuFabricInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmMetricsGet function as declared in nvml/nvml.h\nfunc nvmlGpmMetricsGet(MetricsGet *GpmMetricsGetType) Return {\n\tcMetricsGet, _ := (*C.nvmlGpmMetricsGet_t)(unsafe.Pointer(MetricsGet)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmMetricsGet(cMetricsGet)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmSampleFree function as declared in nvml/nvml.h\nfunc nvmlGpmSampleFree(GpmSample GpmSample) Return {\n\tcGpmSample, _ := *(*C.nvmlGpmSample_t)(unsafe.Pointer(&GpmSample)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmSampleFree(cGpmSample)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmSampleAlloc function as declared in nvml/nvml.h\nfunc nvmlGpmSampleAlloc(GpmSample *GpmSample) Return {\n\tcGpmSample, _ := (*C.nvmlGpmSample_t)(unsafe.Pointer(GpmSample)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmSampleAlloc(cGpmSample)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmSampleGet function as declared in nvml/nvml.h\nfunc nvmlGpmSampleGet(Device Device, GpmSample GpmSample) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcGpmSample, _ := *(*C.nvmlGpmSample_t)(unsafe.Pointer(&GpmSample)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmSampleGet(cDevice, cGpmSample)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmMigSampleGet function as declared in nvml/nvml.h\nfunc nvmlGpmMigSampleGet(Device Device, GpuInstanceId uint32, GpmSample GpmSample) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcGpuInstanceId, _ := (C.uint)(GpuInstanceId), cgoAllocsUnknown\n\tcGpmSample, _ := *(*C.nvmlGpmSample_t)(unsafe.Pointer(&GpmSample)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmMigSampleGet(cDevice, cGpuInstanceId, cGpmSample)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlGpmQueryDeviceSupport function as declared in nvml/nvml.h\nfunc nvmlGpmQueryDeviceSupport(Device Device, GpmSupport *GpmSupport) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcGpmSupport, _ := (*C.nvmlGpmSupport_t)(unsafe.Pointer(GpmSupport)), cgoAllocsUnknown\n\t__ret := C.nvmlGpmQueryDeviceSupport(cDevice, cGpmSupport)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceCcuGetStreamState function as declared in nvml/nvml.h\nfunc nvmlDeviceCcuGetStreamState(Device Device, State *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcState, _ := (*C.uint)(unsafe.Pointer(State)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceCcuGetStreamState(cDevice, cState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceCcuSetStreamState function as declared in nvml/nvml.h\nfunc nvmlDeviceCcuSetStreamState(Device Device, State uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcState, _ := (C.uint)(State), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceCcuSetStreamState(cDevice, cState)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceSetNvLinkDeviceLowPowerThreshold function as declared in nvml/nvml.h\nfunc nvmlDeviceSetNvLinkDeviceLowPowerThreshold(Device Device, Info *NvLinkPowerThres) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlNvLinkPowerThres_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceSetNvLinkDeviceLowPowerThreshold(cDevice, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlInit_v1 function as declared in nvml/nvml.h\nfunc nvmlInit_v1() Return {\n\t__ret := C.nvmlInit()\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetCount_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetCount_v1(DeviceCount *uint32) Return {\n\tcDeviceCount, _ := (*C.uint)(unsafe.Pointer(DeviceCount)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetCount(cDeviceCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleByIndex_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleByIndex_v1(Index uint32, Device *Device) Return {\n\tcIndex, _ := (C.uint)(Index), cgoAllocsUnknown\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleByIndex(cIndex, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetHandleByPciBusId_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetHandleByPciBusId_v1(PciBusId string, Device *Device) Return {\n\tcPciBusId, _ := unpackPCharString(PciBusId)\n\tcDevice, _ := (*C.nvmlDevice_t)(unsafe.Pointer(Device)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetHandleByPciBusId(cPciBusId, cDevice)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPciInfo_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPciInfo_v1(Device Device, Pci *PciInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPci, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(Pci)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPciInfo(cDevice, cPci)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetPciInfo_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetPciInfo_v2(Device Device, Pci *PciInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPci, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(Pci)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetPciInfo_v2(cDevice, cPci)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetNvLinkRemotePciInfo_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetNvLinkRemotePciInfo_v1(Device Device, Link uint32, Pci *PciInfo) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcLink, _ := (C.uint)(Link), cgoAllocsUnknown\n\tcPci, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(Pci)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetNvLinkRemotePciInfo(cDevice, cLink, cPci)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGridLicensableFeatures_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGridLicensableFeatures_v1(Device Device, PGridLicensableFeatures *GridLicensableFeatures) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPGridLicensableFeatures, _ := (*C.nvmlGridLicensableFeatures_t)(unsafe.Pointer(PGridLicensableFeatures)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGridLicensableFeatures(cDevice, cPGridLicensableFeatures)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGridLicensableFeatures_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGridLicensableFeatures_v2(Device Device, PGridLicensableFeatures *GridLicensableFeatures) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPGridLicensableFeatures, _ := (*C.nvmlGridLicensableFeatures_t)(unsafe.Pointer(PGridLicensableFeatures)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGridLicensableFeatures_v2(cDevice, cPGridLicensableFeatures)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGridLicensableFeatures_v3 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGridLicensableFeatures_v3(Device Device, PGridLicensableFeatures *GridLicensableFeatures) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcPGridLicensableFeatures, _ := (*C.nvmlGridLicensableFeatures_t)(unsafe.Pointer(PGridLicensableFeatures)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGridLicensableFeatures_v3(cDevice, cPGridLicensableFeatures)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceRemoveGpu_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceRemoveGpu_v1(PciInfo *PciInfo) Return {\n\tcPciInfo, _ := (*C.nvmlPciInfo_t)(unsafe.Pointer(PciInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceRemoveGpu(cPciInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlEventSetWait_v1 function as declared in nvml/nvml.h\nfunc nvmlEventSetWait_v1(Set EventSet, Data *EventData, Timeoutms uint32) Return {\n\tcSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown\n\tcData, _ := (*C.nvmlEventData_t)(unsafe.Pointer(Data)), cgoAllocsUnknown\n\tcTimeoutms, _ := (C.uint)(Timeoutms), cgoAllocsUnknown\n\t__ret := C.nvmlEventSetWait(cSet, cData, cTimeoutms)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetAttributes_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetAttributes_v1(Device Device, Attributes *DeviceAttributes) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcAttributes, _ := (*C.nvmlDeviceAttributes_t)(unsafe.Pointer(Attributes)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetAttributes(cDevice, cAttributes)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlComputeInstanceGetInfo_v1 function as declared in nvml/nvml.h\nfunc nvmlComputeInstanceGetInfo_v1(ComputeInstance ComputeInstance, Info *ComputeInstanceInfo) Return {\n\tcComputeInstance, _ := *(*C.nvmlComputeInstance_t)(unsafe.Pointer(&ComputeInstance)), cgoAllocsUnknown\n\tcInfo, _ := (*C.nvmlComputeInstanceInfo_t)(unsafe.Pointer(Info)), cgoAllocsUnknown\n\t__ret := C.nvmlComputeInstanceGetInfo(cComputeInstance, cInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetComputeRunningProcesses_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetComputeRunningProcesses_v1(Device Device, InfoCount *uint32, Infos *ProcessInfo_v1) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v1_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetComputeRunningProcesses(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetComputeRunningProcesses_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetComputeRunningProcesses_v2(Device Device, InfoCount *uint32, Infos *ProcessInfo_v2) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v2_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetComputeRunningProcesses_v2(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGraphicsRunningProcesses_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGraphicsRunningProcesses_v1(Device Device, InfoCount *uint32, Infos *ProcessInfo_v1) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v1_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGraphicsRunningProcesses(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGraphicsRunningProcesses_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGraphicsRunningProcesses_v2(Device Device, InfoCount *uint32, Infos *ProcessInfo_v2) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v2_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGraphicsRunningProcesses_v2(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMPSComputeRunningProcesses_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMPSComputeRunningProcesses_v1(Device Device, InfoCount *uint32, Infos *ProcessInfo_v1) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v1_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMPSComputeRunningProcesses(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetMPSComputeRunningProcesses_v2 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetMPSComputeRunningProcesses_v2(Device Device, InfoCount *uint32, Infos *ProcessInfo_v2) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcInfoCount, _ := (*C.uint)(unsafe.Pointer(InfoCount)), cgoAllocsUnknown\n\tcInfos, _ := (*C.nvmlProcessInfo_v2_t)(unsafe.Pointer(Infos)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetMPSComputeRunningProcesses_v2(cDevice, cInfoCount, cInfos)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlDeviceGetGpuInstancePossiblePlacements_v1 function as declared in nvml/nvml.h\nfunc nvmlDeviceGetGpuInstancePossiblePlacements_v1(Device Device, ProfileId uint32, Placements *GpuInstancePlacement, Count *uint32) Return {\n\tcDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&Device)), cgoAllocsUnknown\n\tcProfileId, _ := (C.uint)(ProfileId), cgoAllocsUnknown\n\tcPlacements, _ := (*C.nvmlGpuInstancePlacement_t)(unsafe.Pointer(Placements)), cgoAllocsUnknown\n\tcCount, _ := (*C.uint)(unsafe.Pointer(Count)), cgoAllocsUnknown\n\t__ret := C.nvmlDeviceGetGpuInstancePossiblePlacements(cDevice, cProfileId, cPlacements, cCount)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n\n// nvmlVgpuInstanceGetLicenseInfo_v1 function as declared in nvml/nvml.h\nfunc nvmlVgpuInstanceGetLicenseInfo_v1(VgpuInstance VgpuInstance, LicenseInfo *VgpuLicenseInfo) Return {\n\tcVgpuInstance, _ := (C.nvmlVgpuInstance_t)(VgpuInstance), cgoAllocsUnknown\n\tcLicenseInfo, _ := (*C.nvmlVgpuLicenseInfo_t)(unsafe.Pointer(LicenseInfo)), cgoAllocsUnknown\n\t__ret := C.nvmlVgpuInstanceGetLicenseInfo(cVgpuInstance, cLicenseInfo)\n\t__v := (Return)(__ret)\n\treturn __v\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h",
    "content": "/*** NVML VERSION: 12.0.76 ***/\n/*** From https://api.anaconda.org/download/nvidia/cuda-nvml-dev/12.0.76/linux-64/cuda-nvml-dev-12.0.76-0.tar.bz2 ***/\n/*\n * Copyright 1993-2022 NVIDIA Corporation.  All rights reserved.\n *\n * NOTICE TO USER:\n *\n * This source code is subject to NVIDIA ownership rights under U.S. and\n * international Copyright laws.  Users and possessors of this source code\n * are hereby granted a nonexclusive, royalty-free license to use this code\n * in individual and commercial software.\n *\n * NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE\n * CODE FOR ANY PURPOSE.  IT IS PROVIDED \"AS IS\" WITHOUT EXPRESS OR\n * IMPLIED WARRANTY OF ANY KIND.  NVIDIA DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.\n * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,\n * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n * OF USE, DATA OR PROFITS,  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n * OR OTHER TORTIOUS ACTION,  ARISING OUT OF OR IN CONNECTION WITH THE USE\n * OR PERFORMANCE OF THIS SOURCE CODE.\n *\n * U.S. Government End Users.   This source code is a \"commercial item\" as\n * that term is defined at  48 C.F.R. 2.101 (OCT 1995), consisting  of\n * \"commercial computer  software\"  and \"commercial computer software\n * documentation\" as such terms are  used in 48 C.F.R. 12.212 (SEPT 1995)\n * and is provided to the U.S. Government only as a commercial end item.\n * Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through\n * 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the\n * source code with only those rights set forth herein.\n *\n * Any use of this source code in individual and commercial software must\n * include, in the user documentation and internal comments to the code,\n * the above Disclaimer and U.S. Government End Users Notice.\n */\n\n/*\nNVML API Reference\n\nThe NVIDIA Management Library (NVML) is a C-based programmatic interface for monitoring and\nmanaging various states within NVIDIA Tesla &tm; GPUs. It is intended to be a platform for building\n3rd party applications, and is also the underlying library for the NVIDIA-supported nvidia-smi\ntool. NVML is thread-safe so it is safe to make simultaneous NVML calls from multiple threads.\n\nAPI Documentation\n\nSupported platforms:\n- Windows:     Windows Server 2008 R2 64bit, Windows Server 2012 R2 64bit, Windows 7 64bit, Windows 8 64bit, Windows 10 64bit\n- Linux:       32-bit and 64-bit\n- Hypervisors: Windows Server 2008R2/2012 Hyper-V 64bit, Citrix XenServer 6.2 SP1+, VMware ESX 5.1/5.5\n\nSupported products:\n- Full Support\n    - All Tesla products, starting with the Fermi architecture\n    - All Quadro products, starting with the Fermi architecture\n    - All vGPU Software products, starting with the Kepler architecture\n    - Selected GeForce Titan products\n- Limited Support\n    - All Geforce products, starting with the Fermi architecture\n\nThe NVML library can be found at \\%ProgramW6432\\%\\\\\"NVIDIA Corporation\"\\\\NVSMI\\\\ on Windows. It is\nnot be added to the system path by default. To dynamically link to NVML, add this path to the PATH\nenvironmental variable. To dynamically load NVML, call LoadLibrary with this path.\n\nOn Linux the NVML library will be found on the standard library path. For 64 bit Linux, both the 32 bit\nand 64 bit NVML libraries will be installed.\n\nOnline documentation for this library is available at http://docs.nvidia.com/deploy/nvml-api/index.html\n*/\n\n#ifndef __nvml_nvml_h__\n#define __nvml_nvml_h__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n/*\n * On Windows, set up methods for DLL export\n * define NVML_STATIC_IMPORT when using nvml_loader library\n */\n#if defined _WINDOWS\n    #if !defined NVML_STATIC_IMPORT\n        #if defined NVML_LIB_EXPORT\n            #define DECLDIR __declspec(dllexport)\n        #else\n            #define DECLDIR __declspec(dllimport)\n        #endif\n    #else\n        #define DECLDIR\n    #endif\n#else\n    #define DECLDIR\n#endif\n\n/**\n * NVML API versioning support\n */\n#define NVML_API_VERSION            11\n#define NVML_API_VERSION_STR        \"11\"\n/**\n * Defining NVML_NO_UNVERSIONED_FUNC_DEFS will disable \"auto upgrading\" of APIs.\n * e.g. the user will have to call nvmlInit_v2 instead of nvmlInit. Enable this\n * guard if you need to support older versions of the API\n */\n#ifndef NVML_NO_UNVERSIONED_FUNC_DEFS\n    #define nvmlInit                                    nvmlInit_v2\n    #define nvmlDeviceGetPciInfo                        nvmlDeviceGetPciInfo_v3\n    #define nvmlDeviceGetCount                          nvmlDeviceGetCount_v2\n    #define nvmlDeviceGetHandleByIndex                  nvmlDeviceGetHandleByIndex_v2\n    #define nvmlDeviceGetHandleByPciBusId               nvmlDeviceGetHandleByPciBusId_v2\n    #define nvmlDeviceGetNvLinkRemotePciInfo            nvmlDeviceGetNvLinkRemotePciInfo_v2\n    #define nvmlDeviceRemoveGpu                         nvmlDeviceRemoveGpu_v2\n    #define nvmlDeviceGetGridLicensableFeatures         nvmlDeviceGetGridLicensableFeatures_v4\n    #define nvmlEventSetWait                            nvmlEventSetWait_v2\n    #define nvmlDeviceGetAttributes                     nvmlDeviceGetAttributes_v2\n    #define nvmlComputeInstanceGetInfo                  nvmlComputeInstanceGetInfo_v2\n    #define nvmlDeviceGetComputeRunningProcesses        nvmlDeviceGetComputeRunningProcesses_v3\n    #define nvmlDeviceGetGraphicsRunningProcesses       nvmlDeviceGetGraphicsRunningProcesses_v3\n    #define nvmlDeviceGetMPSComputeRunningProcesses     nvmlDeviceGetMPSComputeRunningProcesses_v3\n    #define nvmlBlacklistDeviceInfo_t                   nvmlExcludedDeviceInfo_t\n    #define nvmlGetBlacklistDeviceCount                 nvmlGetExcludedDeviceCount\n    #define nvmlGetBlacklistDeviceInfoByIndex           nvmlGetExcludedDeviceInfoByIndex\n    #define nvmlDeviceGetGpuInstancePossiblePlacements  nvmlDeviceGetGpuInstancePossiblePlacements_v2\n    #define nvmlVgpuInstanceGetLicenseInfo              nvmlVgpuInstanceGetLicenseInfo_v2\n#endif // #ifndef NVML_NO_UNVERSIONED_FUNC_DEFS\n\n#define NVML_STRUCT_VERSION(data, ver) (unsigned int)(sizeof(nvml ## data ## _v ## ver ## _t) | \\\n                                                      (ver << 24U))\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceStructs Device Structs\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Special constant that some fields take when they are not available.\n * Used when only part of the struct is not available.\n *\n * Each structure explicitly states when to check for this value.\n */\n#define NVML_VALUE_NOT_AVAILABLE (-1)\n\ntypedef struct\n{\n    struct nvmlDevice_st* handle;\n} nvmlDevice_t;\n\n/**\n * Buffer size guaranteed to be large enough for pci bus id\n */\n#define NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE      32\n\n/**\n * Buffer size guaranteed to be large enough for pci bus id for ::busIdLegacy\n */\n#define NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE   16\n\n/**\n * PCI information about a GPU device.\n */\ntypedef struct nvmlPciInfo_st\n{\n    char busIdLegacy[NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE]; //!< The legacy tuple domain:bus:device.function PCI identifier (&amp; NULL terminator)\n    unsigned int domain;             //!< The PCI domain on which the device's bus resides, 0 to 0xffffffff\n    unsigned int bus;                //!< The bus on which the device resides, 0 to 0xff\n    unsigned int device;             //!< The device's id on the bus, 0 to 31\n    unsigned int pciDeviceId;        //!< The combined 16-bit device id and 16-bit vendor id\n\n    // Added in NVML 2.285 API\n    unsigned int pciSubSystemId;     //!< The 32-bit Sub System Device ID\n\n    char busId[NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE]; //!< The tuple domain:bus:device.function PCI identifier (&amp; NULL terminator)\n} nvmlPciInfo_t;\n\n/**\n * PCI format string for ::busIdLegacy\n */\n#define NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT           \"%04X:%02X:%02X.0\"\n\n/**\n * PCI format string for ::busId\n */\n#define NVML_DEVICE_PCI_BUS_ID_FMT                  \"%08X:%02X:%02X.0\"\n\n/**\n * Utility macro for filling the pci bus id format from a nvmlPciInfo_t\n */\n#define NVML_DEVICE_PCI_BUS_ID_FMT_ARGS(pciInfo)    (pciInfo)->domain, \\\n                                                    (pciInfo)->bus,    \\\n                                                    (pciInfo)->device\n\n/**\n * Detailed ECC error counts for a device.\n *\n * @deprecated  Different GPU families can have different memory error counters\n *              See \\ref nvmlDeviceGetMemoryErrorCounter\n */\ntypedef struct nvmlEccErrorCounts_st\n{\n    unsigned long long l1Cache;      //!< L1 cache errors\n    unsigned long long l2Cache;      //!< L2 cache errors\n    unsigned long long deviceMemory; //!< Device memory errors\n    unsigned long long registerFile; //!< Register file errors\n} nvmlEccErrorCounts_t;\n\n/**\n * Utilization information for a device.\n * Each sample period may be between 1 second and 1/6 second, depending on the product being queried.\n */\ntypedef struct nvmlUtilization_st\n{\n    unsigned int gpu;                //!< Percent of time over the past sample period during which one or more kernels was executing on the GPU\n    unsigned int memory;             //!< Percent of time over the past sample period during which global (device) memory was being read or written\n} nvmlUtilization_t;\n\n/**\n * Memory allocation information for a device (v1).\n * The total amount is equal to the sum of the amounts of free and used memory.\n */\ntypedef struct nvmlMemory_st\n{\n    unsigned long long total;        //!< Total physical device memory (in bytes)\n    unsigned long long free;         //!< Unallocated device memory (in bytes)\n    unsigned long long used;         //!< Sum of Reserved and Allocated device memory (in bytes).\n                                     //!< Note that the driver/GPU always sets aside a small amount of memory for bookkeeping\n} nvmlMemory_t;\n\n/**\n * Memory allocation information for a device (v2).\n *\n * Version 2 adds versioning for the struct and the amount of system-reserved memory as an output.\n * @note The \\ref nvmlMemory_v2_t.used amount also includes the \\ref nvmlMemory_v2_t.reserved amount.\n */\ntypedef struct nvmlMemory_v2_st\n{\n    unsigned int version;            //!< Structure format version (must be 2)\n    unsigned long long total;        //!< Total physical device memory (in bytes)\n    unsigned long long reserved;     //!< Device memory (in bytes) reserved for system use (driver or firmware)\n    unsigned long long free;         //!< Unallocated device memory (in bytes)\n    unsigned long long used;         //!< Allocated device memory (in bytes). Note that the driver/GPU always sets aside a small amount of memory for bookkeeping\n} nvmlMemory_v2_t;\n\n#define nvmlMemory_v2 NVML_STRUCT_VERSION(Memory, 2)\n\n/**\n * BAR1 Memory allocation Information for a device\n */\ntypedef struct nvmlBAR1Memory_st\n{\n    unsigned long long bar1Total;    //!< Total BAR1 Memory (in bytes)\n    unsigned long long bar1Free;     //!< Unallocated BAR1 Memory (in bytes)\n    unsigned long long bar1Used;     //!< Allocated Used Memory (in bytes)\n}nvmlBAR1Memory_t;\n\n/**\n * Information about running compute processes on the GPU, legacy version\n * for older versions of the API.\n */\ntypedef struct nvmlProcessInfo_v1_st\n{\n    unsigned int        pid;                //!< Process ID\n    unsigned long long  usedGpuMemory;      //!< Amount of used GPU memory in bytes.\n                                            //! Under WDDM, \\ref NVML_VALUE_NOT_AVAILABLE is always reported\n                                            //! because Windows KMD manages all the memory and not the NVIDIA driver\n} nvmlProcessInfo_v1_t;\n\n/**\n * Information about running compute processes on the GPU\n */\ntypedef struct nvmlProcessInfo_v2_st\n{\n    unsigned int        pid;                //!< Process ID\n    unsigned long long  usedGpuMemory;      //!< Amount of used GPU memory in bytes.\n                                            //! Under WDDM, \\ref NVML_VALUE_NOT_AVAILABLE is always reported\n                                            //! because Windows KMD manages all the memory and not the NVIDIA driver\n    unsigned int        gpuInstanceId;      //!< If MIG is enabled, stores a valid GPU instance ID. gpuInstanceId is set to\n                                            //  0xFFFFFFFF otherwise.\n    unsigned int        computeInstanceId;  //!< If MIG is enabled, stores a valid compute instance ID. computeInstanceId is set to\n                                            //  0xFFFFFFFF otherwise.\n} nvmlProcessInfo_v2_t;\n\n/**\n * Information about running compute processes on the GPU\n * Version 2 adds versioning for the struct\n */\ntypedef struct nvmlProcessInfo_st\n{\n    unsigned int        pid;                //!< Process ID\n    unsigned long long  usedGpuMemory;      //!< Amount of used GPU memory in bytes.\n                                            //! Under WDDM, \\ref NVML_VALUE_NOT_AVAILABLE is always reported\n                                            //! because Windows KMD manages all the memory and not the NVIDIA driver\n    unsigned int        gpuInstanceId;      //!< If MIG is enabled, stores a valid GPU instance ID. gpuInstanceId is set to\n                                            //  0xFFFFFFFF otherwise.\n    unsigned int        computeInstanceId;  //!< If MIG is enabled, stores a valid compute instance ID. computeInstanceId is set to\n                                            //  0xFFFFFFFF otherwise.\n} nvmlProcessInfo_t;\n\ntypedef struct nvmlDeviceAttributes_st\n{\n    unsigned int multiprocessorCount;       //!< Streaming Multiprocessor count\n    unsigned int sharedCopyEngineCount;     //!< Shared Copy Engine count\n    unsigned int sharedDecoderCount;        //!< Shared Decoder Engine count\n    unsigned int sharedEncoderCount;        //!< Shared Encoder Engine count\n    unsigned int sharedJpegCount;           //!< Shared JPEG Engine count\n    unsigned int sharedOfaCount;            //!< Shared OFA Engine count\n    unsigned int gpuInstanceSliceCount;     //!< GPU instance slice count\n    unsigned int computeInstanceSliceCount; //!< Compute instance slice count\n    unsigned long long memorySizeMB;        //!< Device memory size (in MiB)\n} nvmlDeviceAttributes_t;\n\n/**\n * Possible values that classify the remap availability for each bank. The max\n * field will contain the number of banks that have maximum remap availability\n * (all reserved rows are available). None means that there are no reserved\n * rows available.\n */\ntypedef struct nvmlRowRemapperHistogramValues_st\n{\n    unsigned int max;\n    unsigned int high;\n    unsigned int partial;\n    unsigned int low;\n    unsigned int none;\n} nvmlRowRemapperHistogramValues_t;\n\n/**\n * Enum to represent type of bridge chip\n */\ntypedef enum nvmlBridgeChipType_enum\n{\n    NVML_BRIDGE_CHIP_PLX = 0,\n    NVML_BRIDGE_CHIP_BRO4 = 1\n}nvmlBridgeChipType_t;\n\n/**\n * Maximum number of NvLink links supported\n */\n#define NVML_NVLINK_MAX_LINKS 18\n\n/**\n * Enum to represent the NvLink utilization counter packet units\n */\ntypedef enum nvmlNvLinkUtilizationCountUnits_enum\n{\n    NVML_NVLINK_COUNTER_UNIT_CYCLES =  0,     // count by cycles\n    NVML_NVLINK_COUNTER_UNIT_PACKETS = 1,     // count by packets\n    NVML_NVLINK_COUNTER_UNIT_BYTES   = 2,     // count by bytes\n    NVML_NVLINK_COUNTER_UNIT_RESERVED = 3,    // count reserved for internal use\n    // this must be last\n    NVML_NVLINK_COUNTER_UNIT_COUNT\n} nvmlNvLinkUtilizationCountUnits_t;\n\n/**\n * Enum to represent the NvLink utilization counter packet types to count\n *  ** this is ONLY applicable with the units as packets or bytes\n *  ** as specified in \\a nvmlNvLinkUtilizationCountUnits_t\n *  ** all packet filter descriptions are target GPU centric\n *  ** these can be \"OR'd\" together\n */\ntypedef enum nvmlNvLinkUtilizationCountPktTypes_enum\n{\n    NVML_NVLINK_COUNTER_PKTFILTER_NOP        = 0x1,     // no operation packets\n    NVML_NVLINK_COUNTER_PKTFILTER_READ       = 0x2,     // read packets\n    NVML_NVLINK_COUNTER_PKTFILTER_WRITE      = 0x4,     // write packets\n    NVML_NVLINK_COUNTER_PKTFILTER_RATOM      = 0x8,     // reduction atomic requests\n    NVML_NVLINK_COUNTER_PKTFILTER_NRATOM     = 0x10,    // non-reduction atomic requests\n    NVML_NVLINK_COUNTER_PKTFILTER_FLUSH      = 0x20,    // flush requests\n    NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA   = 0x40,    // responses with data\n    NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA = 0x80,    // responses without data\n    NVML_NVLINK_COUNTER_PKTFILTER_ALL        = 0xFF     // all packets\n} nvmlNvLinkUtilizationCountPktTypes_t;\n\n/**\n * Struct to define the NVLINK counter controls\n */\ntypedef struct nvmlNvLinkUtilizationControl_st\n{\n    nvmlNvLinkUtilizationCountUnits_t units;\n    nvmlNvLinkUtilizationCountPktTypes_t pktfilter;\n} nvmlNvLinkUtilizationControl_t;\n\n/**\n * Enum to represent NvLink queryable capabilities\n */\ntypedef enum nvmlNvLinkCapability_enum\n{\n    NVML_NVLINK_CAP_P2P_SUPPORTED = 0,     // P2P over NVLink is supported\n    NVML_NVLINK_CAP_SYSMEM_ACCESS = 1,     // Access to system memory is supported\n    NVML_NVLINK_CAP_P2P_ATOMICS   = 2,     // P2P atomics are supported\n    NVML_NVLINK_CAP_SYSMEM_ATOMICS= 3,     // System memory atomics are supported\n    NVML_NVLINK_CAP_SLI_BRIDGE    = 4,     // SLI is supported over this link\n    NVML_NVLINK_CAP_VALID         = 5,     // Link is supported on this device\n    // should be last\n    NVML_NVLINK_CAP_COUNT\n} nvmlNvLinkCapability_t;\n\n/**\n * Enum to represent NvLink queryable error counters\n */\ntypedef enum nvmlNvLinkErrorCounter_enum\n{\n    NVML_NVLINK_ERROR_DL_REPLAY   = 0,     // Data link transmit replay error counter\n    NVML_NVLINK_ERROR_DL_RECOVERY = 1,     // Data link transmit recovery error counter\n    NVML_NVLINK_ERROR_DL_CRC_FLIT = 2,     // Data link receive flow control digit CRC error counter\n    NVML_NVLINK_ERROR_DL_CRC_DATA = 3,     // Data link receive data CRC error counter\n    NVML_NVLINK_ERROR_DL_ECC_DATA = 4,     // Data link receive data ECC error counter\n\n    // this must be last\n    NVML_NVLINK_ERROR_COUNT\n} nvmlNvLinkErrorCounter_t;\n\n/**\n * Enum to represent NvLink's remote device type\n */\ntypedef enum nvmlIntNvLinkDeviceType_enum\n{\n    NVML_NVLINK_DEVICE_TYPE_GPU     = 0x00,\n    NVML_NVLINK_DEVICE_TYPE_IBMNPU  = 0x01,\n    NVML_NVLINK_DEVICE_TYPE_SWITCH  = 0x02,\n    NVML_NVLINK_DEVICE_TYPE_UNKNOWN = 0xFF\n} nvmlIntNvLinkDeviceType_t;\n\n/**\n * Represents level relationships within a system between two GPUs\n * The enums are spaced to allow for future relationships\n */\ntypedef enum nvmlGpuLevel_enum\n{\n    NVML_TOPOLOGY_INTERNAL           = 0, // e.g. Tesla K80\n    NVML_TOPOLOGY_SINGLE             = 10, // all devices that only need traverse a single PCIe switch\n    NVML_TOPOLOGY_MULTIPLE           = 20, // all devices that need not traverse a host bridge\n    NVML_TOPOLOGY_HOSTBRIDGE         = 30, // all devices that are connected to the same host bridge\n    NVML_TOPOLOGY_NODE               = 40, // all devices that are connected to the same NUMA node but possibly multiple host bridges\n    NVML_TOPOLOGY_SYSTEM             = 50  // all devices in the system\n\n    // there is purposefully no COUNT here because of the need for spacing above\n} nvmlGpuTopologyLevel_t;\n\n/* Compatibility for CPU->NODE renaming */\n#define NVML_TOPOLOGY_CPU NVML_TOPOLOGY_NODE\n\n/* P2P Capability Index Status*/\ntypedef enum nvmlGpuP2PStatus_enum\n{\n    NVML_P2P_STATUS_OK     = 0,\n    NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED,\n    NVML_P2P_STATUS_GPU_NOT_SUPPORTED,\n    NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED,\n    NVML_P2P_STATUS_DISABLED_BY_REGKEY,\n    NVML_P2P_STATUS_NOT_SUPPORTED,\n    NVML_P2P_STATUS_UNKNOWN\n\n} nvmlGpuP2PStatus_t;\n\n/* P2P Capability Index*/\ntypedef enum nvmlGpuP2PCapsIndex_enum\n{\n    NVML_P2P_CAPS_INDEX_READ = 0,\n    NVML_P2P_CAPS_INDEX_WRITE,\n    NVML_P2P_CAPS_INDEX_NVLINK,\n    NVML_P2P_CAPS_INDEX_ATOMICS,\n    NVML_P2P_CAPS_INDEX_PROP,\n    NVML_P2P_CAPS_INDEX_UNKNOWN\n}nvmlGpuP2PCapsIndex_t;\n\n/**\n * Maximum limit on Physical Bridges per Board\n */\n#define NVML_MAX_PHYSICAL_BRIDGE                         (128)\n\n/**\n * Information about the Bridge Chip Firmware\n */\ntypedef struct nvmlBridgeChipInfo_st\n{\n    nvmlBridgeChipType_t type;                  //!< Type of Bridge Chip\n    unsigned int fwVersion;                     //!< Firmware Version. 0=Version is unavailable\n}nvmlBridgeChipInfo_t;\n\n/**\n * This structure stores the complete Hierarchy of the Bridge Chip within the board. The immediate\n * bridge is stored at index 0 of bridgeInfoList, parent to immediate bridge is at index 1 and so forth.\n */\ntypedef struct nvmlBridgeChipHierarchy_st\n{\n    unsigned char  bridgeCount;                 //!< Number of Bridge Chips on the Board\n    nvmlBridgeChipInfo_t bridgeChipInfo[NVML_MAX_PHYSICAL_BRIDGE]; //!< Hierarchy of Bridge Chips on the board\n}nvmlBridgeChipHierarchy_t;\n\n/**\n *  Represents Type of Sampling Event\n */\ntypedef enum nvmlSamplingType_enum\n{\n    NVML_TOTAL_POWER_SAMPLES        = 0, //!< To represent total power drawn by GPU\n    NVML_GPU_UTILIZATION_SAMPLES    = 1, //!< To represent percent of time during which one or more kernels was executing on the GPU\n    NVML_MEMORY_UTILIZATION_SAMPLES = 2, //!< To represent percent of time during which global (device) memory was being read or written\n    NVML_ENC_UTILIZATION_SAMPLES    = 3, //!< To represent percent of time during which NVENC remains busy\n    NVML_DEC_UTILIZATION_SAMPLES    = 4, //!< To represent percent of time during which NVDEC remains busy\n    NVML_PROCESSOR_CLK_SAMPLES      = 5, //!< To represent processor clock samples\n    NVML_MEMORY_CLK_SAMPLES         = 6, //!< To represent memory clock samples\n\n    // Keep this last\n    NVML_SAMPLINGTYPE_COUNT\n}nvmlSamplingType_t;\n\n/**\n * Represents the queryable PCIe utilization counters\n */\ntypedef enum nvmlPcieUtilCounter_enum\n{\n    NVML_PCIE_UTIL_TX_BYTES             = 0, // 1KB granularity\n    NVML_PCIE_UTIL_RX_BYTES             = 1, // 1KB granularity\n\n    // Keep this last\n    NVML_PCIE_UTIL_COUNT\n} nvmlPcieUtilCounter_t;\n\n/**\n * Represents the type for sample value returned\n */\ntypedef enum nvmlValueType_enum\n{\n    NVML_VALUE_TYPE_DOUBLE = 0,\n    NVML_VALUE_TYPE_UNSIGNED_INT = 1,\n    NVML_VALUE_TYPE_UNSIGNED_LONG = 2,\n    NVML_VALUE_TYPE_UNSIGNED_LONG_LONG = 3,\n    NVML_VALUE_TYPE_SIGNED_LONG_LONG = 4,\n\n    // Keep this last\n    NVML_VALUE_TYPE_COUNT\n}nvmlValueType_t;\n\n\n/**\n * Union to represent different types of Value\n */\ntypedef union nvmlValue_st\n{\n    double dVal;                    //!< If the value is double\n    unsigned int uiVal;             //!< If the value is unsigned int\n    unsigned long ulVal;            //!< If the value is unsigned long\n    unsigned long long ullVal;      //!< If the value is unsigned long long\n    signed long long sllVal;        //!< If the value is signed long long\n}nvmlValue_t;\n\n/**\n * Information for Sample\n */\ntypedef struct nvmlSample_st\n{\n    unsigned long long timeStamp;       //!< CPU Timestamp in microseconds\n    nvmlValue_t sampleValue;            //!< Sample Value\n}nvmlSample_t;\n\n/**\n * Represents type of perf policy for which violation times can be queried\n */\ntypedef enum nvmlPerfPolicyType_enum\n{\n    NVML_PERF_POLICY_POWER = 0,              //!< How long did power violations cause the GPU to be below application clocks\n    NVML_PERF_POLICY_THERMAL = 1,            //!< How long did thermal violations cause the GPU to be below application clocks\n    NVML_PERF_POLICY_SYNC_BOOST = 2,         //!< How long did sync boost cause the GPU to be below application clocks\n    NVML_PERF_POLICY_BOARD_LIMIT = 3,        //!< How long did the board limit cause the GPU to be below application clocks\n    NVML_PERF_POLICY_LOW_UTILIZATION = 4,    //!< How long did low utilization cause the GPU to be below application clocks\n    NVML_PERF_POLICY_RELIABILITY = 5,        //!< How long did the board reliability limit cause the GPU to be below application clocks\n\n    NVML_PERF_POLICY_TOTAL_APP_CLOCKS = 10,  //!< Total time the GPU was held below application clocks by any limiter (0 - 5 above)\n    NVML_PERF_POLICY_TOTAL_BASE_CLOCKS = 11, //!< Total time the GPU was held below base clocks\n\n    // Keep this last\n    NVML_PERF_POLICY_COUNT\n}nvmlPerfPolicyType_t;\n\n/**\n * Struct to hold perf policy violation status data\n */\ntypedef struct nvmlViolationTime_st\n{\n    unsigned long long referenceTime;  //!< referenceTime represents CPU timestamp in microseconds\n    unsigned long long violationTime;  //!< violationTime in Nanoseconds\n}nvmlViolationTime_t;\n\n#define NVML_MAX_THERMAL_SENSORS_PER_GPU  3\n\ntypedef enum\n{\n    NVML_THERMAL_TARGET_NONE          = 0,\n    NVML_THERMAL_TARGET_GPU           = 1,     //!< GPU core temperature requires NvPhysicalGpuHandle\n    NVML_THERMAL_TARGET_MEMORY        = 2,     //!< GPU memory temperature requires NvPhysicalGpuHandle\n    NVML_THERMAL_TARGET_POWER_SUPPLY  = 4,     //!< GPU power supply temperature requires NvPhysicalGpuHandle\n    NVML_THERMAL_TARGET_BOARD         = 8,     //!< GPU board ambient temperature requires NvPhysicalGpuHandle\n    NVML_THERMAL_TARGET_VCD_BOARD     = 9,     //!< Visual Computing Device Board temperature requires NvVisualComputingDeviceHandle\n    NVML_THERMAL_TARGET_VCD_INLET     = 10,    //!< Visual Computing Device Inlet temperature requires NvVisualComputingDeviceHandle\n    NVML_THERMAL_TARGET_VCD_OUTLET    = 11,    //!< Visual Computing Device Outlet temperature requires NvVisualComputingDeviceHandle\n\n    NVML_THERMAL_TARGET_ALL           = 15,\n    NVML_THERMAL_TARGET_UNKNOWN       = -1,\n} nvmlThermalTarget_t;\n\ntypedef enum\n{\n    NVML_THERMAL_CONTROLLER_NONE = 0,\n    NVML_THERMAL_CONTROLLER_GPU_INTERNAL,\n    NVML_THERMAL_CONTROLLER_ADM1032,\n    NVML_THERMAL_CONTROLLER_ADT7461,\n    NVML_THERMAL_CONTROLLER_MAX6649,\n    NVML_THERMAL_CONTROLLER_MAX1617,\n    NVML_THERMAL_CONTROLLER_LM99,\n    NVML_THERMAL_CONTROLLER_LM89,\n    NVML_THERMAL_CONTROLLER_LM64,\n    NVML_THERMAL_CONTROLLER_G781,\n    NVML_THERMAL_CONTROLLER_ADT7473,\n    NVML_THERMAL_CONTROLLER_SBMAX6649,\n    NVML_THERMAL_CONTROLLER_VBIOSEVT,\n    NVML_THERMAL_CONTROLLER_OS,\n    NVML_THERMAL_CONTROLLER_NVSYSCON_CANOAS,\n    NVML_THERMAL_CONTROLLER_NVSYSCON_E551,\n    NVML_THERMAL_CONTROLLER_MAX6649R,\n    NVML_THERMAL_CONTROLLER_ADT7473S,\n    NVML_THERMAL_CONTROLLER_UNKNOWN = -1,\n} nvmlThermalController_t;\n\ntypedef struct {\n    nvmlThermalController_t controller;\n    int defaultMinTemp;\n    int defaultMaxTemp;\n    int currentTemp;\n    nvmlThermalTarget_t target;\n} nvmlGpuThermalSettingsSensor_t;\n\ntypedef struct\n{\n    unsigned int   count;\n    nvmlGpuThermalSettingsSensor_t sensor[NVML_MAX_THERMAL_SENSORS_PER_GPU];\n\n} nvmlGpuThermalSettings_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceEnumvs Device Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Generic enable/disable enum.\n */\ntypedef enum nvmlEnableState_enum\n{\n    NVML_FEATURE_DISABLED    = 0,     //!< Feature disabled\n    NVML_FEATURE_ENABLED     = 1      //!< Feature enabled\n} nvmlEnableState_t;\n\n//! Generic flag used to specify the default behavior of some functions. See description of particular functions for details.\n#define nvmlFlagDefault     0x00\n//! Generic flag used to force some behavior. See description of particular functions for details.\n#define nvmlFlagForce       0x01\n\n/**\n *  * The Brand of the GPU\n *   */\ntypedef enum nvmlBrandType_enum\n{\n    NVML_BRAND_UNKNOWN              = 0,\n    NVML_BRAND_QUADRO               = 1,\n    NVML_BRAND_TESLA                = 2,\n    NVML_BRAND_NVS                  = 3,\n    NVML_BRAND_GRID                 = 4,   // Deprecated from API reporting. Keeping definition for backward compatibility.\n    NVML_BRAND_GEFORCE              = 5,\n    NVML_BRAND_TITAN                = 6,\n    NVML_BRAND_NVIDIA_VAPPS         = 7,   // NVIDIA Virtual Applications\n    NVML_BRAND_NVIDIA_VPC           = 8,   // NVIDIA Virtual PC\n    NVML_BRAND_NVIDIA_VCS           = 9,   // NVIDIA Virtual Compute Server\n    NVML_BRAND_NVIDIA_VWS           = 10,  // NVIDIA RTX Virtual Workstation\n    NVML_BRAND_NVIDIA_CLOUD_GAMING  = 11,  // NVIDIA Cloud Gaming\n    NVML_BRAND_NVIDIA_VGAMING       = NVML_BRAND_NVIDIA_CLOUD_GAMING,  // Deprecated from API reporting. Keeping definition for backward compatibility.\n    NVML_BRAND_QUADRO_RTX           = 12,\n    NVML_BRAND_NVIDIA_RTX           = 13,\n    NVML_BRAND_NVIDIA               = 14,\n    NVML_BRAND_GEFORCE_RTX          = 15,  // Unused\n    NVML_BRAND_TITAN_RTX            = 16,  // Unused\n\n    // Keep this last\n    NVML_BRAND_COUNT\n} nvmlBrandType_t;\n\n/**\n * Temperature thresholds.\n */\ntypedef enum nvmlTemperatureThresholds_enum\n{\n    NVML_TEMPERATURE_THRESHOLD_SHUTDOWN      = 0, // Temperature at which the GPU will\n                                                  // shut down for HW protection\n    NVML_TEMPERATURE_THRESHOLD_SLOWDOWN      = 1, // Temperature at which the GPU will\n                                                  // begin HW slowdown\n    NVML_TEMPERATURE_THRESHOLD_MEM_MAX       = 2, // Memory Temperature at which the GPU will\n                                                  // begin SW slowdown\n    NVML_TEMPERATURE_THRESHOLD_GPU_MAX       = 3, // GPU Temperature at which the GPU\n                                                  // can be throttled below base clock\n    NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN  = 4, // Minimum GPU Temperature that can be\n                                                  // set as acoustic threshold\n    NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR = 5, // Current temperature that is set as\n                                                  // acoustic threshold.\n    NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX  = 6, // Maximum GPU temperature that can be\n                                                  // set as acoustic threshold.\n    // Keep this last\n    NVML_TEMPERATURE_THRESHOLD_COUNT\n} nvmlTemperatureThresholds_t;\n\n/**\n * Temperature sensors.\n */\ntypedef enum nvmlTemperatureSensors_enum\n{\n    NVML_TEMPERATURE_GPU      = 0,    //!< Temperature sensor for the GPU die\n\n    // Keep this last\n    NVML_TEMPERATURE_COUNT\n} nvmlTemperatureSensors_t;\n\n/**\n * Compute mode.\n *\n * NVML_COMPUTEMODE_EXCLUSIVE_PROCESS was added in CUDA 4.0.\n * Earlier CUDA versions supported a single exclusive mode,\n * which is equivalent to NVML_COMPUTEMODE_EXCLUSIVE_THREAD in CUDA 4.0 and beyond.\n */\ntypedef enum nvmlComputeMode_enum\n{\n    NVML_COMPUTEMODE_DEFAULT           = 0,  //!< Default compute mode -- multiple contexts per device\n    NVML_COMPUTEMODE_EXCLUSIVE_THREAD  = 1,  //!< Support Removed\n    NVML_COMPUTEMODE_PROHIBITED        = 2,  //!< Compute-prohibited mode -- no contexts per device\n    NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3,  //!< Compute-exclusive-process mode -- only one context per device, usable from multiple threads at a time\n\n    // Keep this last\n    NVML_COMPUTEMODE_COUNT\n} nvmlComputeMode_t;\n\n/**\n * Max Clock Monitors available\n */\n#define MAX_CLK_DOMAINS\t\t\t32\n\n/**\n * Clock Monitor error types\n */\ntypedef struct nvmlClkMonFaultInfo_struct {\n    /**\n     * The Domain which faulted\n     */\n    unsigned int   clkApiDomain;\n\n    /**\n     * Faults Information\n     */\n    unsigned int   clkDomainFaultMask;\n} nvmlClkMonFaultInfo_t;\n\n/**\n * Clock Monitor Status\n */\ntypedef struct nvmlClkMonStatus_status {\n    /**\n     * Fault status Indicator\n     */\n    unsigned int  bGlobalStatus;\n\n    /**\n     * Total faulted domain numbers\n     */\n    unsigned int   clkMonListSize;\n\n    /**\n     * The fault Information structure\n     */\n    nvmlClkMonFaultInfo_t clkMonList[MAX_CLK_DOMAINS];\n} nvmlClkMonStatus_t;\n\n/**\n * ECC bit types.\n *\n * @deprecated See \\ref nvmlMemoryErrorType_t for a more flexible type\n */\n#define nvmlEccBitType_t nvmlMemoryErrorType_t\n\n/**\n * Single bit ECC errors\n *\n * @deprecated Mapped to \\ref NVML_MEMORY_ERROR_TYPE_CORRECTED\n */\n#define NVML_SINGLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_CORRECTED\n\n/**\n * Double bit ECC errors\n *\n * @deprecated Mapped to \\ref NVML_MEMORY_ERROR_TYPE_UNCORRECTED\n */\n#define NVML_DOUBLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_UNCORRECTED\n\n/**\n * Memory error types\n */\ntypedef enum nvmlMemoryErrorType_enum\n{\n    /**\n     * A memory error that was corrected\n     *\n     * For ECC errors, these are single bit errors\n     * For Texture memory, these are errors fixed by resend\n     */\n    NVML_MEMORY_ERROR_TYPE_CORRECTED = 0,\n    /**\n     * A memory error that was not corrected\n     *\n     * For ECC errors, these are double bit errors\n     * For Texture memory, these are errors where the resend fails\n     */\n    NVML_MEMORY_ERROR_TYPE_UNCORRECTED = 1,\n\n\n    // Keep this last\n    NVML_MEMORY_ERROR_TYPE_COUNT //!< Count of memory error types\n\n} nvmlMemoryErrorType_t;\n\n/**\n * ECC counter types.\n *\n * Note: Volatile counts are reset each time the driver loads. On Windows this is once per boot. On Linux this can be more frequent.\n *       On Linux the driver unloads when no active clients exist. If persistence mode is enabled or there is always a driver\n *       client active (e.g. X11), then Linux also sees per-boot behavior. If not, volatile counts are reset each time a compute app\n *       is run.\n */\ntypedef enum nvmlEccCounterType_enum\n{\n    NVML_VOLATILE_ECC      = 0,      //!< Volatile counts are reset each time the driver loads.\n    NVML_AGGREGATE_ECC     = 1,      //!< Aggregate counts persist across reboots (i.e. for the lifetime of the device)\n\n    // Keep this last\n    NVML_ECC_COUNTER_TYPE_COUNT      //!< Count of memory counter types\n} nvmlEccCounterType_t;\n\n/**\n * Clock types.\n *\n * All speeds are in Mhz.\n */\ntypedef enum nvmlClockType_enum\n{\n    NVML_CLOCK_GRAPHICS  = 0,        //!< Graphics clock domain\n    NVML_CLOCK_SM        = 1,        //!< SM clock domain\n    NVML_CLOCK_MEM       = 2,        //!< Memory clock domain\n    NVML_CLOCK_VIDEO     = 3,        //!< Video encoder/decoder clock domain\n\n    // Keep this last\n    NVML_CLOCK_COUNT //!< Count of clock types\n} nvmlClockType_t;\n\n/**\n * Clock Ids.  These are used in combination with nvmlClockType_t\n * to specify a single clock value.\n */\ntypedef enum nvmlClockId_enum\n{\n    NVML_CLOCK_ID_CURRENT            = 0,   //!< Current actual clock value\n    NVML_CLOCK_ID_APP_CLOCK_TARGET   = 1,   //!< Target application clock\n    NVML_CLOCK_ID_APP_CLOCK_DEFAULT  = 2,   //!< Default application clock target\n    NVML_CLOCK_ID_CUSTOMER_BOOST_MAX = 3,   //!< OEM-defined maximum clock rate\n\n    //Keep this last\n    NVML_CLOCK_ID_COUNT //!< Count of Clock Ids.\n} nvmlClockId_t;\n\n/**\n * Driver models.\n *\n * Windows only.\n */\n\ntypedef enum nvmlDriverModel_enum\n{\n    NVML_DRIVER_WDDM = 0,       //!< WDDM driver model -- GPU treated as a display device\n    NVML_DRIVER_WDM = 1        //!< WDM (TCC) model (recommended) -- GPU treated as a generic device\n} nvmlDriverModel_t;\n\n#define NVML_MAX_GPU_PERF_PSTATES 16\n\n/**\n * Allowed PStates.\n */\ntypedef enum nvmlPStates_enum\n{\n    NVML_PSTATE_0               = 0,       //!< Performance state 0 -- Maximum Performance\n    NVML_PSTATE_1               = 1,       //!< Performance state 1\n    NVML_PSTATE_2               = 2,       //!< Performance state 2\n    NVML_PSTATE_3               = 3,       //!< Performance state 3\n    NVML_PSTATE_4               = 4,       //!< Performance state 4\n    NVML_PSTATE_5               = 5,       //!< Performance state 5\n    NVML_PSTATE_6               = 6,       //!< Performance state 6\n    NVML_PSTATE_7               = 7,       //!< Performance state 7\n    NVML_PSTATE_8               = 8,       //!< Performance state 8\n    NVML_PSTATE_9               = 9,       //!< Performance state 9\n    NVML_PSTATE_10              = 10,      //!< Performance state 10\n    NVML_PSTATE_11              = 11,      //!< Performance state 11\n    NVML_PSTATE_12              = 12,      //!< Performance state 12\n    NVML_PSTATE_13              = 13,      //!< Performance state 13\n    NVML_PSTATE_14              = 14,      //!< Performance state 14\n    NVML_PSTATE_15              = 15,      //!< Performance state 15 -- Minimum Performance\n    NVML_PSTATE_UNKNOWN         = 32       //!< Unknown performance state\n} nvmlPstates_t;\n\n/**\n * GPU Operation Mode\n *\n * GOM allows to reduce power usage and optimize GPU throughput by disabling GPU features.\n *\n * Each GOM is designed to meet specific user needs.\n */\ntypedef enum nvmlGom_enum\n{\n    NVML_GOM_ALL_ON                    = 0, //!< Everything is enabled and running at full speed\n\n    NVML_GOM_COMPUTE                   = 1, //!< Designed for running only compute tasks. Graphics operations\n                                            //!< are not allowed\n\n    NVML_GOM_LOW_DP                    = 2  //!< Designed for running graphics applications that don't require\n                                            //!< high bandwidth double precision\n} nvmlGpuOperationMode_t;\n\n/**\n * Available infoROM objects.\n */\ntypedef enum nvmlInforomObject_enum\n{\n    NVML_INFOROM_OEM            = 0,       //!< An object defined by OEM\n    NVML_INFOROM_ECC            = 1,       //!< The ECC object determining the level of ECC support\n    NVML_INFOROM_POWER          = 2,       //!< The power management object\n\n    // Keep this last\n    NVML_INFOROM_COUNT                     //!< This counts the number of infoROM objects the driver knows about\n} nvmlInforomObject_t;\n\n/**\n * Return values for NVML API calls.\n */\ntypedef enum nvmlReturn_enum\n{\n    // cppcheck-suppress *\n    NVML_SUCCESS = 0,                          //!< The operation was successful\n    NVML_ERROR_UNINITIALIZED = 1,              //!< NVML was not first initialized with nvmlInit()\n    NVML_ERROR_INVALID_ARGUMENT = 2,           //!< A supplied argument is invalid\n    NVML_ERROR_NOT_SUPPORTED = 3,              //!< The requested operation is not available on target device\n    NVML_ERROR_NO_PERMISSION = 4,              //!< The current user does not have permission for operation\n    NVML_ERROR_ALREADY_INITIALIZED = 5,        //!< Deprecated: Multiple initializations are now allowed through ref counting\n    NVML_ERROR_NOT_FOUND = 6,                  //!< A query to find an object was unsuccessful\n    NVML_ERROR_INSUFFICIENT_SIZE = 7,          //!< An input argument is not large enough\n    NVML_ERROR_INSUFFICIENT_POWER = 8,         //!< A device's external power cables are not properly attached\n    NVML_ERROR_DRIVER_NOT_LOADED = 9,          //!< NVIDIA driver is not loaded\n    NVML_ERROR_TIMEOUT = 10,                   //!< User provided timeout passed\n    NVML_ERROR_IRQ_ISSUE = 11,                 //!< NVIDIA Kernel detected an interrupt issue with a GPU\n    NVML_ERROR_LIBRARY_NOT_FOUND = 12,         //!< NVML Shared Library couldn't be found or loaded\n    NVML_ERROR_FUNCTION_NOT_FOUND = 13,        //!< Local version of NVML doesn't implement this function\n    NVML_ERROR_CORRUPTED_INFOROM = 14,         //!< infoROM is corrupted\n    NVML_ERROR_GPU_IS_LOST = 15,               //!< The GPU has fallen off the bus or has otherwise become inaccessible\n    NVML_ERROR_RESET_REQUIRED = 16,            //!< The GPU requires a reset before it can be used again\n    NVML_ERROR_OPERATING_SYSTEM = 17,          //!< The GPU control device has been blocked by the operating system/cgroups\n    NVML_ERROR_LIB_RM_VERSION_MISMATCH = 18,   //!< RM detects a driver/library version mismatch\n    NVML_ERROR_IN_USE = 19,                    //!< An operation cannot be performed because the GPU is currently in use\n    NVML_ERROR_MEMORY = 20,                    //!< Insufficient memory\n    NVML_ERROR_NO_DATA = 21,                   //!< No data\n    NVML_ERROR_VGPU_ECC_NOT_SUPPORTED = 22,    //!< The requested vgpu operation is not available on target device, becasue ECC is enabled\n    NVML_ERROR_INSUFFICIENT_RESOURCES = 23,    //!< Ran out of critical resources, other than memory\n    NVML_ERROR_FREQ_NOT_SUPPORTED = 24,        //!< Ran out of critical resources, other than memory\n    NVML_ERROR_ARGUMENT_VERSION_MISMATCH = 25, //!< The provided version is invalid/unsupported\n    NVML_ERROR_DEPRECATED  = 26,\t           //!< The requested functionality has been deprecated\n    NVML_ERROR_UNKNOWN = 999                   //!< An internal driver error occurred\n} nvmlReturn_t;\n\n/**\n * See \\ref nvmlDeviceGetMemoryErrorCounter\n */\ntypedef enum nvmlMemoryLocation_enum\n{\n    NVML_MEMORY_LOCATION_L1_CACHE        = 0,    //!< GPU L1 Cache\n    NVML_MEMORY_LOCATION_L2_CACHE        = 1,    //!< GPU L2 Cache\n    NVML_MEMORY_LOCATION_DRAM            = 2,    //!< Turing+ DRAM\n    NVML_MEMORY_LOCATION_DEVICE_MEMORY   = 2,    //!< GPU Device Memory\n    NVML_MEMORY_LOCATION_REGISTER_FILE   = 3,    //!< GPU Register File\n    NVML_MEMORY_LOCATION_TEXTURE_MEMORY  = 4,    //!< GPU Texture Memory\n    NVML_MEMORY_LOCATION_TEXTURE_SHM     = 5,    //!< Shared memory\n    NVML_MEMORY_LOCATION_CBU             = 6,    //!< CBU\n    NVML_MEMORY_LOCATION_SRAM            = 7,    //!< Turing+ SRAM\n    // Keep this last\n    NVML_MEMORY_LOCATION_COUNT              //!< This counts the number of memory locations the driver knows about\n} nvmlMemoryLocation_t;\n\n/**\n * Causes for page retirement\n */\ntypedef enum nvmlPageRetirementCause_enum\n{\n    NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0, //!< Page was retired due to multiple single bit ECC error\n    NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1,           //!< Page was retired due to double bit ECC error\n\n    // Keep this last\n    NVML_PAGE_RETIREMENT_CAUSE_COUNT\n} nvmlPageRetirementCause_t;\n\n/**\n * API types that allow changes to default permission restrictions\n */\ntypedef enum nvmlRestrictedAPI_enum\n{\n    NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS = 0,   //!< APIs that change application clocks, see nvmlDeviceSetApplicationsClocks\n                                                      //!< and see nvmlDeviceResetApplicationsClocks\n    NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS = 1,  //!< APIs that enable/disable Auto Boosted clocks\n                                                      //!< see nvmlDeviceSetAutoBoostedClocksEnabled\n    // Keep this last\n    NVML_RESTRICTED_API_COUNT\n} nvmlRestrictedAPI_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup virtualGPU\n *  @{\n */\n/***************************************************************************************************/\n/** @defgroup nvmlVirtualGpuEnums vGPU Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/*!\n * GPU virtualization mode types.\n */\ntypedef enum nvmlGpuVirtualizationMode {\n    NVML_GPU_VIRTUALIZATION_MODE_NONE = 0,  //!< Represents Bare Metal GPU\n    NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH = 1,  //!< Device is associated with GPU-Passthorugh\n    NVML_GPU_VIRTUALIZATION_MODE_VGPU = 2,  //!< Device is associated with vGPU inside virtual machine.\n    NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU = 3,  //!< Device is associated with VGX hypervisor in vGPU mode\n    NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGA = 4   //!< Device is associated with VGX hypervisor in vSGA mode\n} nvmlGpuVirtualizationMode_t;\n\n/**\n * Host vGPU modes\n */\ntypedef enum nvmlHostVgpuMode_enum\n{\n    NVML_HOST_VGPU_MODE_NON_SRIOV    = 0,     //!< Non SR-IOV mode\n    NVML_HOST_VGPU_MODE_SRIOV        = 1      //!< SR-IOV mode\n} nvmlHostVgpuMode_t;\n\n/*!\n * Types of VM identifiers\n */\ntypedef enum nvmlVgpuVmIdType {\n    NVML_VGPU_VM_ID_DOMAIN_ID = 0, //!< VM ID represents DOMAIN ID\n    NVML_VGPU_VM_ID_UUID = 1       //!< VM ID represents UUID\n} nvmlVgpuVmIdType_t;\n\n/**\n * vGPU GUEST info state\n */\ntypedef enum nvmlVgpuGuestInfoState_enum\n{\n    NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED = 0,  //!< Guest-dependent fields uninitialized\n    NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED   = 1   //!< Guest-dependent fields initialized\n} nvmlVgpuGuestInfoState_t;\n\n/**\n * vGPU software licensable features\n */\ntypedef enum {\n    NVML_GRID_LICENSE_FEATURE_CODE_UNKNOWN      = 0,                                         //!< Unknown\n    NVML_GRID_LICENSE_FEATURE_CODE_VGPU         = 1,                                         //!< Virtual GPU\n    NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX   = 2,                                         //!< Nvidia RTX\n    NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION = NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX, //!< Deprecated, do not use.\n    NVML_GRID_LICENSE_FEATURE_CODE_GAMING       = 3,                                         //!< Gaming\n    NVML_GRID_LICENSE_FEATURE_CODE_COMPUTE      = 4                                          //!< Compute\n} nvmlGridLicenseFeatureCode_t;\n\n/**\n * Status codes for license expiry\n */\n#define NVML_GRID_LICENSE_EXPIRY_NOT_AVAILABLE   0   //!< Expiry information not available\n#define NVML_GRID_LICENSE_EXPIRY_INVALID         1   //!< Invalid expiry or error fetching expiry\n#define NVML_GRID_LICENSE_EXPIRY_VALID           2   //!< Valid expiry\n#define NVML_GRID_LICENSE_EXPIRY_NOT_APPLICABLE  3   //!< Expiry not applicable\n#define NVML_GRID_LICENSE_EXPIRY_PERMANENT       4   //!< Permanent expiry\n\n/**\n * vGPU queryable capabilities\n */\ntypedef enum nvmlVgpuCapability_enum\n{\n    NVML_VGPU_CAP_NVLINK_P2P                    = 0,  //!< P2P over NVLink is supported\n    NVML_VGPU_CAP_GPUDIRECT                     = 1,  //!< GPUDirect capability is supported\n    NVML_VGPU_CAP_MULTI_VGPU_EXCLUSIVE          = 2,  //!< vGPU profile cannot be mixed with other vGPU profiles in same VM\n    NVML_VGPU_CAP_EXCLUSIVE_TYPE                = 3,  //!< vGPU profile cannot run on a GPU alongside other profiles of different type\n    NVML_VGPU_CAP_EXCLUSIVE_SIZE                = 4,  //!< vGPU profile cannot run on a GPU alongside other profiles of different size\n    // Keep this last\n    NVML_VGPU_CAP_COUNT\n} nvmlVgpuCapability_t;\n\n\n/**\n* vGPU driver queryable capabilities\n*/\ntypedef enum nvmlVgpuDriverCapability_enum\n{\n    NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU = 0,      //!< Supports mixing of different vGPU profiles within one guest VM\n    // Keep this last\n    NVML_VGPU_DRIVER_CAP_COUNT\n} nvmlVgpuDriverCapability_t;\n\n\n/**\n* Device vGPU queryable capabilities\n*/\ntypedef enum nvmlDeviceVgpuCapability_enum\n{\n    NVML_DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU            = 0,    //!< Fractional vGPU profiles on this GPU can be used in multi-vGPU configurations\n    NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES = 1,    //!< Supports concurrent execution of timesliced vGPU profiles of differing types\n    NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES    = 2,    //!< Supports concurrent execution of timesliced vGPU profiles of differing framebuffer sizes\n    // Keep this last\n    NVML_DEVICE_VGPU_CAP_COUNT\n} nvmlDeviceVgpuCapability_t;\n\n/** @} */\n\n/***************************************************************************************************/\n\n/** @defgroup nvmlVgpuConstants vGPU Constants\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlVgpuTypeGetLicense\n */\n#define NVML_GRID_LICENSE_BUFFER_SIZE       128\n\n#define NVML_VGPU_NAME_BUFFER_SIZE          64\n\n#define NVML_GRID_LICENSE_FEATURE_MAX_COUNT 3\n\n#define INVALID_GPU_INSTANCE_PROFILE_ID     0xFFFFFFFF\n\n#define INVALID_GPU_INSTANCE_ID             0xFFFFFFFF\n\n/*!\n * Macros for vGPU instance's virtualization capabilities bitfield.\n */\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION         0:0\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_NO      0x0\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_YES     0x1\n\n/*!\n * Macros for pGPU's virtualization capabilities bitfield.\n */\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION         0:0\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_NO      0x0\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_YES     0x1\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlVgpuStructs vGPU Structs\n *  @{\n */\n/***************************************************************************************************/\n\ntypedef unsigned int nvmlVgpuTypeId_t;\n\ntypedef unsigned int nvmlVgpuInstance_t;\n\n/**\n * Structure to store Utilization Value and vgpuInstance\n */\ntypedef struct nvmlVgpuInstanceUtilizationSample_st\n{\n    nvmlVgpuInstance_t  vgpuInstance;       //!< vGPU Instance\n    unsigned long long  timeStamp;          //!< CPU Timestamp in microseconds\n    nvmlValue_t         smUtil;             //!< SM (3D/Compute) Util Value\n    nvmlValue_t         memUtil;            //!< Frame Buffer Memory Util Value\n    nvmlValue_t         encUtil;            //!< Encoder Util Value\n    nvmlValue_t         decUtil;            //!< Decoder Util Value\n} nvmlVgpuInstanceUtilizationSample_t;\n\n/**\n * Structure to store Utilization Value, vgpuInstance and subprocess information\n */\ntypedef struct nvmlVgpuProcessUtilizationSample_st\n{\n    nvmlVgpuInstance_t  vgpuInstance;                               //!< vGPU Instance\n    unsigned int        pid;                                        //!< PID of process running within the vGPU VM\n    char                processName[NVML_VGPU_NAME_BUFFER_SIZE];    //!< Name of process running within the vGPU VM\n    unsigned long long  timeStamp;                                  //!< CPU Timestamp in microseconds\n    unsigned int        smUtil;                                     //!< SM (3D/Compute) Util Value\n    unsigned int        memUtil;                                    //!< Frame Buffer Memory Util Value\n    unsigned int        encUtil;                                    //!< Encoder Util Value\n    unsigned int        decUtil;                                    //!< Decoder Util Value\n} nvmlVgpuProcessUtilizationSample_t;\n\n/**\n * vGPU scheduler policies\n */\n#define NVML_VGPU_SCHEDULER_POLICY_UNKNOWN      0\n#define NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORT  1\n#define NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHARE  2\n#define NVML_VGPU_SCHEDULER_POLICY_FIXED_SHARE  3\n\n#define NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT 3\n\n#define NVML_SCHEDULER_SW_MAX_LOG_ENTRIES 200\n\ntypedef struct {\n    unsigned int avgFactor;\n    unsigned int timeslice;\n} nvmlVgpuSchedulerParamsVgpuSchedDataWithARR_t;\n\ntypedef struct {\n    unsigned int timeslice;\n} nvmlVgpuSchedulerParamsVgpuSchedData_t;\n\n/**\n * Union to represent the vGPU Scheduler Parameters\n */\ntypedef union\n{\n    nvmlVgpuSchedulerParamsVgpuSchedDataWithARR_t vgpuSchedDataWithARR;\n\n    nvmlVgpuSchedulerParamsVgpuSchedData_t vgpuSchedData;\n\n} nvmlVgpuSchedulerParams_t;\n\n/**\n * Structure to store the state and logs of a software runlist\n */\ntypedef struct nvmlVgpuSchedulerLogEntries_st\n{\n    unsigned long long          timestamp;                  //!< Timestamp in ns when this software runlist was preeempted\n    unsigned long long          timeRunTotal;               //!< Total time in ns this software runlist has run\n    unsigned long long          timeRun;                    //!< Time in ns this software runlist ran before preemption\n    unsigned int                swRunlistId;                //!< Software runlist Id\n    unsigned long long          targetTimeSlice;            //!< The actual timeslice after deduction\n    unsigned long long          cumulativePreemptionTime;   //!< Preemption time in ns for this SW runlist\n} nvmlVgpuSchedulerLogEntry_t;\n\n/**\n * Structure to store a vGPU software scheduler log\n */\ntypedef struct nvmlVgpuSchedulerLog_st\n{\n    unsigned int                engineId;                                       //!< Engine whose software runlist log entries are fetched\n    unsigned int                schedulerPolicy;                                //!< Scheduler policy\n    unsigned int                isEnabledARR;                                   //!< Flag to check Adaptive Round Robin scheduler mode\n    nvmlVgpuSchedulerParams_t   schedulerParams;\n    unsigned int                entriesCount;                                   //!< Count of log entries fetched\n    nvmlVgpuSchedulerLogEntry_t logEntries[NVML_SCHEDULER_SW_MAX_LOG_ENTRIES];\n} nvmlVgpuSchedulerLog_t;\n\n/**\n * Structure to store the vGPU scheduler state\n */\ntypedef struct nvmlVgpuSchedulerGetState_st\n{\n    unsigned int                schedulerPolicy;    //!< Scheduler policy\n    unsigned int                isEnabledARR;       //!< Flag to check Adaptive Round Robin scheduler mode\n    nvmlVgpuSchedulerParams_t   schedulerParams;\n} nvmlVgpuSchedulerGetState_t;\n\ntypedef struct {\n    unsigned int avgFactor;\n    unsigned int frequency;\n} nvmlVgpuSchedulerSetParamsVgpuSchedDataWithARR_t;\n\ntypedef struct {\n    unsigned int timeslice;\n} nvmlVgpuSchedulerSetParamsVgpuSchedData_t;\n\n/**\n * Union to represent the vGPU Scheduler set Parameters\n */\ntypedef union\n{\n    nvmlVgpuSchedulerSetParamsVgpuSchedDataWithARR_t vgpuSchedDataWithARR;\n\n    nvmlVgpuSchedulerSetParamsVgpuSchedData_t vgpuSchedData;\n\n} nvmlVgpuSchedulerSetParams_t;\n\n/**\n * Structure to set the vGPU scheduler state\n */\ntypedef struct nvmlVgpuSchedulerSetState_st\n{\n    unsigned int                    schedulerPolicy;    //!< Scheduler policy\n    unsigned int                    enableARRMode;      //!< Flag to enable/disable Adaptive Round Robin scheduler\n    nvmlVgpuSchedulerSetParams_t    schedulerParams;\n} nvmlVgpuSchedulerSetState_t;\n\n/**\n * Structure to store the vGPU scheduler capabilities\n */\ntypedef struct nvmlVgpuSchedulerCapabilities_st\n{\n    unsigned int        supportedSchedulers[NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT]; //!< List the supported vGPU schedulers on the device\n    unsigned int        maxTimeslice;                                                    //!< Maximum timeslice value in ns\n    unsigned int        minTimeslice;                                                    //!< Minimum timeslice value in ns\n    unsigned int        isArrModeSupported;                                              //!< Flag to check Adaptive Round Robin mode enabled/disabled.\n    unsigned int        maxFrequencyForARR;                                              //!< Maximum frequency for Adaptive Round Robin mode\n    unsigned int        minFrequencyForARR;                                              //!< Minimum frequency for Adaptive Round Robin mode\n    unsigned int        maxAvgFactorForARR;                                              //!< Maximum averaging factor for Adaptive Round Robin mode\n    unsigned int        minAvgFactorForARR;                                              //!< Minimum averaging factor for Adaptive Round Robin mode\n} nvmlVgpuSchedulerCapabilities_t;\n\n/**\n * Structure to store the vGPU license expiry details\n */\ntypedef struct nvmlVgpuLicenseExpiry_st\n{\n    unsigned int    year;        //!< Year of license expiry\n    unsigned short  month;       //!< Month of license expiry\n    unsigned short  day;         //!< Day of license expiry\n    unsigned short  hour;        //!< Hour of license expiry\n    unsigned short  min;         //!< Minutes of license expiry\n    unsigned short  sec;         //!< Seconds of license expiry\n    unsigned char   status;      //!< License expiry status\n} nvmlVgpuLicenseExpiry_t;\n\n/**\n * vGPU license state\n */\n#define NVML_GRID_LICENSE_STATE_UNKNOWN                 0   //!< Unknown state\n#define NVML_GRID_LICENSE_STATE_UNINITIALIZED           1   //!< Uninitialized state\n#define NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED 2   //!< Unlicensed unrestricted state\n#define NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED   3   //!< Unlicensed restricted state\n#define NVML_GRID_LICENSE_STATE_UNLICENSED              4   //!< Unlicensed state\n#define NVML_GRID_LICENSE_STATE_LICENSED                5   //!< Licensed state\n\ntypedef struct nvmlVgpuLicenseInfo_st\n{\n    unsigned char               isLicensed;     //!< License status\n    nvmlVgpuLicenseExpiry_t     licenseExpiry;  //!< License expiry information\n    unsigned int                currentState;   //!< Current license state\n} nvmlVgpuLicenseInfo_t;\n\n/**\n * Structure to store utilization value and process Id\n */\ntypedef struct nvmlProcessUtilizationSample_st\n{\n    unsigned int        pid;            //!< PID of process\n    unsigned long long  timeStamp;      //!< CPU Timestamp in microseconds\n    unsigned int        smUtil;         //!< SM (3D/Compute) Util Value\n    unsigned int        memUtil;        //!< Frame Buffer Memory Util Value\n    unsigned int        encUtil;        //!< Encoder Util Value\n    unsigned int        decUtil;        //!< Decoder Util Value\n} nvmlProcessUtilizationSample_t;\n\n/**\n * Structure to store license expiry date and time values\n */\ntypedef struct nvmlGridLicenseExpiry_st\n{\n    unsigned int   year;        //!< Year value of license expiry\n    unsigned short month;       //!< Month value of license expiry\n    unsigned short day;         //!< Day value of license expiry\n    unsigned short hour;        //!< Hour value of license expiry\n    unsigned short min;         //!< Minutes value of license expiry\n    unsigned short sec;         //!< Seconds value of license expiry\n    unsigned char  status;      //!< License expiry status\n} nvmlGridLicenseExpiry_t;\n\n/**\n * Structure containing vGPU software licensable feature information\n */\ntypedef struct nvmlGridLicensableFeature_st\n{\n    nvmlGridLicenseFeatureCode_t    featureCode;                                 //!< Licensed feature code\n    unsigned int                    featureState;                                //!< Non-zero if feature is currently licensed, otherwise zero\n    char                            licenseInfo[NVML_GRID_LICENSE_BUFFER_SIZE];  //!< Deprecated.\n    char                            productName[NVML_GRID_LICENSE_BUFFER_SIZE];  //!< Product name of feature\n    unsigned int                    featureEnabled;                              //!< Non-zero if feature is enabled, otherwise zero\n    nvmlGridLicenseExpiry_t         licenseExpiry;                               //!< License expiry structure containing date and time\n} nvmlGridLicensableFeature_t;\n\n/**\n * Structure to store vGPU software licensable features\n */\ntypedef struct nvmlGridLicensableFeatures_st\n{\n    int                         isGridLicenseSupported;                                       //!< Non-zero if vGPU Software Licensing is supported on the system, otherwise zero\n    unsigned int                licensableFeaturesCount;                                      //!< Entries returned in \\a gridLicensableFeatures array\n    nvmlGridLicensableFeature_t gridLicensableFeatures[NVML_GRID_LICENSE_FEATURE_MAX_COUNT];  //!< Array of vGPU software licensable features.\n} nvmlGridLicensableFeatures_t;\n\n/**\n * GSP firmware\n */\n#define NVML_GSP_FIRMWARE_VERSION_BUF_SIZE 0x40\n\n/**\n * Simplified chip architecture\n */\n#define NVML_DEVICE_ARCH_KEPLER    2 // Devices based on the NVIDIA Kepler architecture\n#define NVML_DEVICE_ARCH_MAXWELL   3 // Devices based on the NVIDIA Maxwell architecture\n#define NVML_DEVICE_ARCH_PASCAL    4 // Devices based on the NVIDIA Pascal architecture\n#define NVML_DEVICE_ARCH_VOLTA     5 // Devices based on the NVIDIA Volta architecture\n#define NVML_DEVICE_ARCH_TURING    6 // Devices based on the NVIDIA Turing architecture\n\n#define NVML_DEVICE_ARCH_AMPERE    7 // Devices based on the NVIDIA Ampere architecture\n\n#define NVML_DEVICE_ARCH_ADA       8 // Devices based on the NVIDIA Ada architecture\n\n#define NVML_DEVICE_ARCH_HOPPER    9 // Devices based on the NVIDIA Hopper architecture\n\n#define NVML_DEVICE_ARCH_UNKNOWN   0xffffffff // Anything else, presumably something newer\n\ntypedef unsigned int nvmlDeviceArchitecture_t;\n\n/**\n * PCI bus types\n */\n#define NVML_BUS_TYPE_UNKNOWN  0\n#define NVML_BUS_TYPE_PCI      1\n#define NVML_BUS_TYPE_PCIE     2\n#define NVML_BUS_TYPE_FPCI     3\n#define NVML_BUS_TYPE_AGP      4\n\ntypedef unsigned int nvmlBusType_t;\n\n/**\n * Device Power Modes\n */\n\n/**\n * Device Fan control policy\n */\n#define NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SW 0\n#define NVML_FAN_POLICY_MANUAL                   1\n\ntypedef unsigned int nvmlFanControlPolicy_t;\n\n/**\n * Device Power Source\n */\n#define NVML_POWER_SOURCE_AC      0x00000000\n#define NVML_POWER_SOURCE_BATTERY 0x00000001\n\ntypedef unsigned int nvmlPowerSource_t;\n\n/*\n * Device PCIE link Max Speed\n */\n#define NVML_PCIE_LINK_MAX_SPEED_INVALID   0x00000000\n#define NVML_PCIE_LINK_MAX_SPEED_2500MBPS  0x00000001\n#define NVML_PCIE_LINK_MAX_SPEED_5000MBPS  0x00000002\n#define NVML_PCIE_LINK_MAX_SPEED_8000MBPS  0x00000003\n#define NVML_PCIE_LINK_MAX_SPEED_16000MBPS 0x00000004\n#define NVML_PCIE_LINK_MAX_SPEED_32000MBPS 0x00000005\n#define NVML_PCIE_LINK_MAX_SPEED_64000MBPS 0x00000006\n\n/*\n * Adaptive clocking status\n */\n#define NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED 0x00000000\n#define NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED  0x00000001\n\n#define NVML_MAX_GPU_UTILIZATIONS 8\ntypedef enum nvmlGpuUtilizationDomainId_t\n{\n    NVML_GPU_UTILIZATION_DOMAIN_GPU    = 0, //!< Graphics engine domain\n    NVML_GPU_UTILIZATION_DOMAIN_FB     = 1, //!< Frame buffer domain\n    NVML_GPU_UTILIZATION_DOMAIN_VID    = 2, //!< Video engine domain\n    NVML_GPU_UTILIZATION_DOMAIN_BUS    = 3, //!< Bus interface domain\n} nvmlGpuUtilizationDomainId_t;\n\ntypedef struct {\n    unsigned int bIsPresent;\n    unsigned int percentage;\n    unsigned int incThreshold;\n    unsigned int decThreshold;\n} nvmlGpuDynamicPstatesInfoUtilization_t;\n\ntypedef struct nvmlGpuDynamicPstatesInfo_st\n{\n    unsigned int       flags;          //!< Reserved for future use\n    nvmlGpuDynamicPstatesInfoUtilization_t utilization[NVML_MAX_GPU_UTILIZATIONS];\n} nvmlGpuDynamicPstatesInfo_t;\n\n/** @} */\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFieldValueEnums Field Value Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Field Identifiers.\n *\n * All Identifiers pertain to a device. Each ID is only used once and is guaranteed never to change.\n */\n#define NVML_FI_DEV_ECC_CURRENT           1   //!< Current ECC mode. 1=Active. 0=Inactive\n#define NVML_FI_DEV_ECC_PENDING           2   //!< Pending ECC mode. 1=Active. 0=Inactive\n/* ECC Count Totals */\n#define NVML_FI_DEV_ECC_SBE_VOL_TOTAL     3   //!< Total single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_TOTAL     4   //!< Total double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_TOTAL     5   //!< Total single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_TOTAL     6   //!< Total double bit aggregate (persistent) ECC errors\n/* Individual ECC locations */\n#define NVML_FI_DEV_ECC_SBE_VOL_L1        7   //!< L1 cache single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_L1        8   //!< L1 cache double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_L2        9   //!< L2 cache single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_L2        10  //!< L2 cache double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_DEV       11  //!< Device memory single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_DEV       12  //!< Device memory double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_REG       13  //!< Register file single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_REG       14  //!< Register file double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_TEX       15  //!< Texture memory single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_TEX       16  //!< Texture memory double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_CBU       17  //!< CBU double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_L1        18  //!< L1 cache single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_L1        19  //!< L1 cache double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_L2        20  //!< L2 cache single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_L2        21  //!< L2 cache double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_DEV       22  //!< Device memory single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_DEV       23  //!< Device memory double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_REG       24  //!< Register File single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_REG       25  //!< Register File double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_TEX       26  //!< Texture memory single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_TEX       27  //!< Texture memory double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_CBU       28  //!< CBU double bit aggregate ECC errors\n\n/* Page Retirement */\n#define NVML_FI_DEV_RETIRED_SBE           29  //!< Number of retired pages because of single bit errors\n#define NVML_FI_DEV_RETIRED_DBE           30  //!< Number of retired pages because of double bit errors\n#define NVML_FI_DEV_RETIRED_PENDING       31  //!< If any pages are pending retirement. 1=yes. 0=no.\n\n/* NvLink Flit Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0    32 //!< NVLink flow control CRC  Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1    33 //!< NVLink flow control CRC  Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2    34 //!< NVLink flow control CRC  Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3    35 //!< NVLink flow control CRC  Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4    36 //!< NVLink flow control CRC  Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5    37 //!< NVLink flow control CRC  Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL 38 //!< NVLink flow control CRC  Error Counter total for all Lanes\n\n/* NvLink CRC Data Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0    39 //!< NVLink data CRC Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1    40 //!< NVLink data CRC Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2    41 //!< NVLink data CRC Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3    42 //!< NVLink data CRC Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4    43 //!< NVLink data CRC Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5    44 //!< NVLink data CRC Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL 45 //!< NvLink data CRC Error Counter total for all Lanes\n\n/* NvLink Replay Error Counters */\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0      46 //!< NVLink Replay Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1      47 //!< NVLink Replay Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2      48 //!< NVLink Replay Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3      49 //!< NVLink Replay Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4      50 //!< NVLink Replay Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5      51 //!< NVLink Replay Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL   52 //!< NVLink Replay Error Counter total for all Lanes\n\n/* NvLink Recovery Error Counters */\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0    53 //!< NVLink Recovery Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1    54 //!< NVLink Recovery Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2    55 //!< NVLink Recovery Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3    56 //!< NVLink Recovery Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4    57 //!< NVLink Recovery Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5    58 //!< NVLink Recovery Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL 59 //!< NVLink Recovery Error Counter total for all Lanes\n\n/* NvLink Bandwidth Counters */\n/*\n * NVML_FI_DEV_NVLINK_BANDWIDTH_* field values are now deprecated.\n * Please use the following field values instead:\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX\n */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0     60 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 0\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1     61 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 1\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2     62 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 2\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3     63 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 3\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4     64 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 4\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5     65 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 5\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL  66 //!< NVLink Bandwidth Counter Total for Counter Set 0, All Lanes\n\n/* NvLink Bandwidth Counters */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0     67 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 0\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1     68 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 1\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2     69 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 2\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3     70 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 3\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4     71 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 4\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5     72 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 5\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL  73 //!< NVLink Bandwidth Counter Total for Counter Set 1, All Lanes\n\n/* NVML Perf Policy Counters */\n#define NVML_FI_DEV_PERF_POLICY_POWER              74   //!< Perf Policy Counter for Power Policy\n#define NVML_FI_DEV_PERF_POLICY_THERMAL            75   //!< Perf Policy Counter for Thermal Policy\n#define NVML_FI_DEV_PERF_POLICY_SYNC_BOOST         76   //!< Perf Policy Counter for Sync boost Policy\n#define NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT        77   //!< Perf Policy Counter for Board Limit\n#define NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION    78   //!< Perf Policy Counter for Low GPU Utilization Policy\n#define NVML_FI_DEV_PERF_POLICY_RELIABILITY        79   //!< Perf Policy Counter for Reliability Policy\n#define NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS   80   //!< Perf Policy Counter for Total App Clock Policy\n#define NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS  81   //!< Perf Policy Counter for Total Base Clocks Policy\n\n/* Memory temperatures */\n#define NVML_FI_DEV_MEMORY_TEMP  82 //!< Memory temperature for the device\n\n/* Energy Counter */\n#define NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION 83 //!< Total energy consumption for the GPU in mJ since the driver was last reloaded\n\n/* NVLink Speed */\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L0     84  //!< NVLink Speed in MBps for Link 0\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L1     85  //!< NVLink Speed in MBps for Link 1\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L2     86  //!< NVLink Speed in MBps for Link 2\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L3     87  //!< NVLink Speed in MBps for Link 3\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L4     88  //!< NVLink Speed in MBps for Link 4\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L5     89  //!< NVLink Speed in MBps for Link 5\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON 90  //!< Common NVLink Speed in MBps for active links\n\n#define NVML_FI_DEV_NVLINK_LINK_COUNT        91  //!< Number of NVLinks present on the device\n\n#define NVML_FI_DEV_RETIRED_PENDING_SBE      92  //!< If any pages are pending retirement due to SBE. 1=yes. 0=no.\n#define NVML_FI_DEV_RETIRED_PENDING_DBE      93  //!< If any pages are pending retirement due to DBE. 1=yes. 0=no.\n\n#define NVML_FI_DEV_PCIE_REPLAY_COUNTER             94  //!< PCIe replay counter\n#define NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER    95  //!< PCIe replay rollover counter\n\n/* NvLink Flit Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6     96 //!< NVLink flow control CRC  Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7     97 //!< NVLink flow control CRC  Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8     98 //!< NVLink flow control CRC  Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9     99 //!< NVLink flow control CRC  Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10   100 //!< NVLink flow control CRC  Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11   101 //!< NVLink flow control CRC  Error Counter for Lane 11\n\n/* NvLink CRC Data Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6    102 //!< NVLink data CRC Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7    103 //!< NVLink data CRC Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8    104 //!< NVLink data CRC Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9    105 //!< NVLink data CRC Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10   106 //!< NVLink data CRC Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11   107 //!< NVLink data CRC Error Counter for Lane 11\n\n/* NvLink Replay Error Counters */\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6      108 //!< NVLink Replay Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7      109 //!< NVLink Replay Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8      110 //!< NVLink Replay Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9      111 //!< NVLink Replay Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10     112 //!< NVLink Replay Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11     113 //!< NVLink Replay Error Counter for Lane 11\n\n/* NvLink Recovery Error Counters */\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6    114 //!< NVLink Recovery Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7    115 //!< NVLink Recovery Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8    116 //!< NVLink Recovery Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9    117 //!< NVLink Recovery Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10   118 //!< NVLink Recovery Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11   119 //!< NVLink Recovery Error Counter for Lane 11\n\n/* NvLink Bandwidth Counters */\n/*\n * NVML_FI_DEV_NVLINK_BANDWIDTH_* field values are now deprecated.\n * Please use the following field values instead:\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX\n */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6     120 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 6\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7     121 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 7\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8     122 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 8\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9     123 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 9\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10    124 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 10\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11    125 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 11\n\n/* NvLink Bandwidth Counters */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6     126 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 6\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7     127 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 7\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8     128 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 8\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9     129 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 9\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10    130 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 10\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11    131 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 11\n\n/* NVLink Speed */\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L6     132  //!< NVLink Speed in MBps for Link 6\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L7     133  //!< NVLink Speed in MBps for Link 7\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L8     134  //!< NVLink Speed in MBps for Link 8\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L9     135  //!< NVLink Speed in MBps for Link 9\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L10    136  //!< NVLink Speed in MBps for Link 10\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L11    137  //!< NVLink Speed in MBps for Link 11\n\n/**\n * NVLink throughput counters field values\n *\n * Link ID needs to be specified in the scopeId field in nvmlFieldValue_t.\n * A scopeId of UINT_MAX returns aggregate value summed up across all links\n * for the specified counter type in fieldId.\n */\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX      138 //!< NVLink TX Data throughput in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX      139 //!< NVLink RX Data throughput in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX       140 //!< NVLink TX Data + protocol overhead in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX       141 //!< NVLink RX Data + protocol overhead in KiB\n\n/* Row Remapper */\n#define NVML_FI_DEV_REMAPPED_COR        142 //!< Number of remapped rows due to correctable errors\n#define NVML_FI_DEV_REMAPPED_UNC        143 //!< Number of remapped rows due to uncorrectable errors\n#define NVML_FI_DEV_REMAPPED_PENDING    144 //!< If any rows are pending remapping. 1=yes 0=no\n#define NVML_FI_DEV_REMAPPED_FAILURE    145 //!< If any rows failed to be remapped 1=yes 0=no\n\n/**\n * Remote device NVLink ID\n *\n * Link ID needs to be specified in the scopeId field in nvmlFieldValue_t.\n */\n#define NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID     146 //!< Remote device NVLink ID\n\n/**\n * NVSwitch: connected NVLink count\n */\n#define NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT   147  //!< Number of NVLinks connected to NVSwitch\n\n/* NvLink ECC Data Error Counters\n *\n * Lane ID needs to be specified in the scopeId field in nvmlFieldValue_t.\n *\n */\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0    148 //!< NVLink data ECC Error Counter for Link 0\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1    149 //!< NVLink data ECC Error Counter for Link 1\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2    150 //!< NVLink data ECC Error Counter for Link 2\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3    151 //!< NVLink data ECC Error Counter for Link 3\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4    152 //!< NVLink data ECC Error Counter for Link 4\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5    153 //!< NVLink data ECC Error Counter for Link 5\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6    154 //!< NVLink data ECC Error Counter for Link 6\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7    155 //!< NVLink data ECC Error Counter for Link 7\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8    156 //!< NVLink data ECC Error Counter for Link 8\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9    157 //!< NVLink data ECC Error Counter for Link 9\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10   158 //!< NVLink data ECC Error Counter for Link 10\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11   159 //!< NVLink data ECC Error Counter for Link 11\n#define NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL 160 //!< NvLink data ECC Error Counter total for all Links\n\n#define NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY            161\n#define NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERY          162\n#define NVML_FI_DEV_NVLINK_ERROR_DL_CRC               163\n#define NVML_FI_DEV_NVLINK_GET_SPEED                  164\n#define NVML_FI_DEV_NVLINK_GET_STATE                  165\n#define NVML_FI_DEV_NVLINK_GET_VERSION                166\n\n#define NVML_FI_DEV_NVLINK_GET_POWER_STATE            167\n#define NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD        168\n\n#define NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER       169\n\n#define NVML_FI_MAX 170 //!< One greater than the largest field ID defined above\n\n/**\n * Information for a Field Value Sample\n */\ntypedef struct nvmlFieldValue_st\n{\n    unsigned int fieldId;       //!< ID of the NVML field to retrieve. This must be set before any call that uses this struct. See the constants starting with NVML_FI_ above.\n    unsigned int scopeId;       //!< Scope ID can represent data used by NVML depending on fieldId's context. For example, for NVLink throughput counter data, scopeId can represent linkId.\n    long long timestamp;        //!< CPU Timestamp of this value in microseconds since 1970\n    long long latencyUsec;      //!< How long this field value took to update (in usec) within NVML. This may be averaged across several fields that are serviced by the same driver call.\n    nvmlValueType_t valueType;  //!< Type of the value stored in value\n    nvmlReturn_t nvmlReturn;    //!< Return code for retrieving this value. This must be checked before looking at value, as value is undefined if nvmlReturn != NVML_SUCCESS\n    nvmlValue_t value;          //!< Value for this field. This is only valid if nvmlReturn == NVML_SUCCESS\n} nvmlFieldValue_t;\n\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitStructs Unit Structs\n *  @{\n */\n/***************************************************************************************************/\n\ntypedef struct\n{\n    struct nvmlUnit_st* handle;\n} nvmlUnit_t;\n\n/**\n * Description of HWBC entry\n */\ntypedef struct nvmlHwbcEntry_st\n{\n    unsigned int hwbcId;\n    char firmwareVersion[32];\n} nvmlHwbcEntry_t;\n\n/**\n * Fan state enum.\n */\ntypedef enum nvmlFanState_enum\n{\n    NVML_FAN_NORMAL       = 0,     //!< Fan is working properly\n    NVML_FAN_FAILED       = 1      //!< Fan has failed\n} nvmlFanState_t;\n\n/**\n * Led color enum.\n */\ntypedef enum nvmlLedColor_enum\n{\n    NVML_LED_COLOR_GREEN       = 0,     //!< GREEN, indicates good health\n    NVML_LED_COLOR_AMBER       = 1      //!< AMBER, indicates problem\n} nvmlLedColor_t;\n\n\n/**\n * LED states for an S-class unit.\n */\ntypedef struct nvmlLedState_st\n{\n    char cause[256];               //!< If amber, a text description of the cause\n    nvmlLedColor_t color;          //!< GREEN or AMBER\n} nvmlLedState_t;\n\n/**\n * Static S-class unit info.\n */\ntypedef struct nvmlUnitInfo_st\n{\n    char name[96];                      //!< Product name\n    char id[96];                        //!< Product identifier\n    char serial[96];                    //!< Product serial number\n    char firmwareVersion[96];           //!< Firmware version\n} nvmlUnitInfo_t;\n\n/**\n * Power usage information for an S-class unit.\n * The power supply state is a human readable string that equals \"Normal\" or contains\n * a combination of \"Abnormal\" plus one or more of the following:\n *\n *    - High voltage\n *    - Fan failure\n *    - Heatsink temperature\n *    - Current limit\n *    - Voltage below UV alarm threshold\n *    - Low-voltage\n *    - SI2C remote off command\n *    - MOD_DISABLE input\n *    - Short pin transition\n*/\ntypedef struct nvmlPSUInfo_st\n{\n    char state[256];                 //!< The power supply state\n    unsigned int current;            //!< PSU current (A)\n    unsigned int voltage;            //!< PSU voltage (V)\n    unsigned int power;              //!< PSU power draw (W)\n} nvmlPSUInfo_t;\n\n/**\n * Fan speed reading for a single fan in an S-class unit.\n */\ntypedef struct nvmlUnitFanInfo_st\n{\n    unsigned int speed;              //!< Fan speed (RPM)\n    nvmlFanState_t state;            //!< Flag that indicates whether fan is working properly\n} nvmlUnitFanInfo_t;\n\n/**\n * Fan speed readings for an entire S-class unit.\n */\ntypedef struct nvmlUnitFanSpeeds_st\n{\n    nvmlUnitFanInfo_t fans[24];      //!< Fan speed data for each fan\n    unsigned int count;              //!< Number of fans in unit\n} nvmlUnitFanSpeeds_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup nvmlEvents\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Handle to an event set\n */\ntypedef struct\n{\n    struct nvmlEventSet_st* handle;\n} nvmlEventSet_t;\n\n/** @defgroup nvmlEventType Event Types\n * @{\n * Event Types which user can be notified about.\n * See description of particular functions for details.\n *\n * See \\ref nvmlDeviceRegisterEvents and \\ref nvmlDeviceGetSupportedEventTypes to check which devices\n * support each event.\n *\n * Types can be combined with bitwise or operator '|' when passed to \\ref nvmlDeviceRegisterEvents\n */\n//! Event about single bit ECC errors\n/**\n * \\note A corrected texture memory error is not an ECC error, so it does not generate a single bit event\n */\n#define nvmlEventTypeSingleBitEccError     0x0000000000000001LL\n\n//! Event about double bit ECC errors\n/**\n * \\note An uncorrected texture memory error is not an ECC error, so it does not generate a double bit event\n */\n#define nvmlEventTypeDoubleBitEccError     0x0000000000000002LL\n\n//! Event about PState changes\n/**\n *  \\note On Fermi architecture PState changes are also an indicator that GPU is throttling down due to\n *  no work being executed on the GPU, power capping or thermal capping. In a typical situation,\n *  Fermi-based GPU should stay in P0 for the duration of the execution of the compute process.\n */\n#define nvmlEventTypePState                0x0000000000000004LL\n\n//! Event that Xid critical error occurred\n#define nvmlEventTypeXidCriticalError      0x0000000000000008LL\n\n//! Event about clock changes\n/**\n * Kepler only\n */\n#define nvmlEventTypeClock                 0x0000000000000010LL\n\n//! Event about AC/Battery power source changes\n#define nvmlEventTypePowerSourceChange     0x0000000000000080LL\n\n//! Event about MIG configuration changes\n#define nvmlEventMigConfigChange           0x0000000000000100LL\n\n//! Mask with no events\n#define nvmlEventTypeNone                  0x0000000000000000LL\n\n//! Mask of all events\n#define nvmlEventTypeAll (nvmlEventTypeNone    \\\n        | nvmlEventTypeSingleBitEccError       \\\n        | nvmlEventTypeDoubleBitEccError       \\\n        | nvmlEventTypePState                  \\\n        | nvmlEventTypeClock                   \\\n        | nvmlEventTypeXidCriticalError        \\\n        | nvmlEventTypePowerSourceChange       \\\n        | nvmlEventMigConfigChange             \\\n        )\n/** @} */\n\n/**\n * Information about occurred event\n */\ntypedef struct nvmlEventData_st\n{\n    nvmlDevice_t        device;             //!< Specific device where the event occurred\n    unsigned long long  eventType;          //!< Information about what specific event occurred\n    unsigned long long  eventData;          //!< Stores XID error for the device in the event of nvmlEventTypeXidCriticalError,\n                                            //   eventData is 0 for any other event. eventData is set as 999 for unknown xid error.\n    unsigned int        gpuInstanceId;      //!< If MIG is enabled and nvmlEventTypeXidCriticalError event is attributable to a GPU\n                                            //   instance, stores a valid GPU instance ID. gpuInstanceId is set to 0xFFFFFFFF\n                                            //   otherwise.\n    unsigned int        computeInstanceId;  //!< If MIG is enabled and nvmlEventTypeXidCriticalError event is attributable to a\n                                            //   compute instance, stores a valid compute instance ID. computeInstanceId is set to\n                                            //   0xFFFFFFFF otherwise.\n} nvmlEventData_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup nvmlClocksThrottleReasons\n *  @{\n */\n/***************************************************************************************************/\n\n/** Nothing is running on the GPU and the clocks are dropping to Idle state\n * \\note This limiter may be removed in a later release\n */\n#define nvmlClocksThrottleReasonGpuIdle                   0x0000000000000001LL\n\n/** GPU clocks are limited by current setting of applications clocks\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetApplicationsClock\n */\n#define nvmlClocksThrottleReasonApplicationsClocksSetting 0x0000000000000002LL\n\n/**\n * @deprecated Renamed to \\ref nvmlClocksThrottleReasonApplicationsClocksSetting\n *             as the name describes the situation more accurately.\n */\n#define nvmlClocksThrottleReasonUserDefinedClocks         nvmlClocksThrottleReasonApplicationsClocksSetting\n\n/** SW Power Scaling algorithm is reducing the clocks below requested clocks\n *\n * @see nvmlDeviceGetPowerUsage\n * @see nvmlDeviceSetPowerManagementLimit\n * @see nvmlDeviceGetPowerManagementLimit\n */\n#define nvmlClocksThrottleReasonSwPowerCap                0x0000000000000004LL\n\n/** HW Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - temperature being too high\n *   - External Power Brake Assertion is triggered (e.g. by the system power supply)\n *   - Power draw is too high and Fast Trigger protection is reducing the clocks\n *   - May be also reported during PState or clock change\n *      - This behavior may be removed in a later release.\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwSlowdown                0x0000000000000008LL\n\n/** Sync Boost\n *\n * This GPU has been added to a Sync boost group with nvidia-smi or DCGM in\n * order to maximize performance per watt. All GPUs in the sync boost group\n * will boost to the minimum possible clocks across the entire group. Look at\n * the throttle reasons for other GPUs in the system to see why those GPUs are\n * holding this one at lower clocks.\n *\n */\n#define nvmlClocksThrottleReasonSyncBoost                 0x0000000000000010LL\n\n/** SW Thermal Slowdown\n *\n * This is an indicator of one or more of the following:\n *  - Current GPU temperature above the GPU Max Operating Temperature\n *  - Current memory temperature above the Memory Max Operating Temperature\n *\n */\n#define nvmlClocksThrottleReasonSwThermalSlowdown         0x0000000000000020LL\n\n/** HW Thermal Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - temperature being too high\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwThermalSlowdown         0x0000000000000040LL\n\n/** HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - External Power Brake Assertion being triggered (e.g. by the system power supply)\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwPowerBrakeSlowdown      0x0000000000000080LL\n\n/** GPU clocks are limited by current setting of Display clocks\n *\n * @see bug 1997531\n */\n#define nvmlClocksThrottleReasonDisplayClockSetting       0x0000000000000100LL\n\n/** Bit mask representing no clocks throttling\n *\n * Clocks are as high as possible.\n * */\n#define nvmlClocksThrottleReasonNone                      0x0000000000000000LL\n\n/** Bit mask representing all supported clocks throttling reasons\n * New reasons might be added to this list in the future\n */\n#define nvmlClocksThrottleReasonAll (nvmlClocksThrottleReasonNone \\\n      | nvmlClocksThrottleReasonGpuIdle                           \\\n      | nvmlClocksThrottleReasonApplicationsClocksSetting         \\\n      | nvmlClocksThrottleReasonSwPowerCap                        \\\n      | nvmlClocksThrottleReasonHwSlowdown                        \\\n      | nvmlClocksThrottleReasonSyncBoost                         \\\n      | nvmlClocksThrottleReasonSwThermalSlowdown                 \\\n      | nvmlClocksThrottleReasonHwThermalSlowdown                 \\\n      | nvmlClocksThrottleReasonHwPowerBrakeSlowdown              \\\n      | nvmlClocksThrottleReasonDisplayClockSetting               \\\n)\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlAccountingStats Accounting Statistics\n *  @{\n *\n *  Set of APIs designed to provide per process information about usage of GPU.\n *\n *  @note All accounting statistics and accounting mode live in nvidia driver and reset\n *        to default (Disabled) when driver unloads.\n *        It is advised to run with persistence mode enabled.\n *\n *  @note Enabling accounting mode has no negative impact on the GPU performance.\n */\n/***************************************************************************************************/\n\n/**\n * Describes accounting statistics of a process.\n */\ntypedef struct nvmlAccountingStats_st {\n    unsigned int gpuUtilization;                //!< Percent of time over the process's lifetime during which one or more kernels was executing on the GPU.\n                                                //! Utilization stats just like returned by \\ref nvmlDeviceGetUtilizationRates but for the life time of a\n                                                //! process (not just the last sample period).\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlDeviceGetUtilizationRates is not supported\n\n    unsigned int memoryUtilization;             //!< Percent of time over the process's lifetime during which global (device) memory was being read or written.\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlDeviceGetUtilizationRates is not supported\n\n    unsigned long long maxMemoryUsage;          //!< Maximum total memory in bytes that was ever allocated by the process.\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlProcessInfo_t->usedGpuMemory is not supported\n\n\n    unsigned long long time;                    //!< Amount of time in ms during which the compute context was active. The time is reported as 0 if\n                                                //!< the process is not terminated\n\n    unsigned long long startTime;               //!< CPU Timestamp in usec representing start time for the process\n\n    unsigned int isRunning;                     //!< Flag to represent if the process is running (1 for running, 0 for terminated)\n\n    unsigned int reserved[5];                   //!< Reserved for future use\n} nvmlAccountingStats_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlEncoderStructs Encoder Structs\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Represents type of encoder for capacity can be queried\n */\ntypedef enum nvmlEncoderQueryType_enum\n{\n    NVML_ENCODER_QUERY_H264 = 0,        //!< H264 encoder\n    NVML_ENCODER_QUERY_HEVC = 1         //!< HEVC encoder\n}nvmlEncoderType_t;\n\n/**\n * Structure to hold encoder session data\n */\ntypedef struct nvmlEncoderSessionInfo_st\n{\n    unsigned int       sessionId;       //!< Unique session ID\n    unsigned int       pid;             //!< Owning process ID\n    nvmlVgpuInstance_t vgpuInstance;    //!< Owning vGPU instance ID (only valid on vGPU hosts, otherwise zero)\n    nvmlEncoderType_t  codecType;       //!< Video encoder type\n    unsigned int       hResolution;     //!< Current encode horizontal resolution\n    unsigned int       vResolution;     //!< Current encode vertical resolution\n    unsigned int       averageFps;      //!< Moving average encode frames per second\n    unsigned int       averageLatency;  //!< Moving average encode latency in microseconds\n}nvmlEncoderSessionInfo_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFBCStructs Frame Buffer Capture Structures\n*  @{\n*/\n/***************************************************************************************************/\n\n/**\n * Represents frame buffer capture session type\n */\ntypedef enum nvmlFBCSessionType_enum\n{\n    NVML_FBC_SESSION_TYPE_UNKNOWN = 0,     //!< Unknwon\n    NVML_FBC_SESSION_TYPE_TOSYS,           //!< ToSys\n    NVML_FBC_SESSION_TYPE_CUDA,            //!< Cuda\n    NVML_FBC_SESSION_TYPE_VID,             //!< Vid\n    NVML_FBC_SESSION_TYPE_HWENC            //!< HEnc\n} nvmlFBCSessionType_t;\n\n/**\n * Structure to hold frame buffer capture sessions stats\n */\ntypedef struct nvmlFBCStats_st\n{\n    unsigned int      sessionsCount;    //!< Total no of sessions\n    unsigned int      averageFPS;       //!< Moving average new frames captured per second\n    unsigned int      averageLatency;   //!< Moving average new frame capture latency in microseconds\n} nvmlFBCStats_t;\n\n#define NVML_NVFBC_SESSION_FLAG_DIFFMAP_ENABLED                0x00000001    //!< Bit specifying differential map state.\n#define NVML_NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED      0x00000002    //!< Bit specifying classification map state.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT      0x00000004    //!< Bit specifying if capture was requested as non-blocking call.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE     0x00000008    //!< Bit specifying if capture was requested as blocking call.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT      0x00000010    //!< Bit specifying if capture was requested as blocking call with timeout period.\n\n/**\n * Structure to hold FBC session data\n */\ntypedef struct nvmlFBCSessionInfo_st\n{\n    unsigned int          sessionId;                           //!< Unique session ID\n    unsigned int          pid;                                 //!< Owning process ID\n    nvmlVgpuInstance_t    vgpuInstance;                        //!< Owning vGPU instance ID (only valid on vGPU hosts, otherwise zero)\n    unsigned int          displayOrdinal;                      //!< Display identifier\n    nvmlFBCSessionType_t  sessionType;                         //!< Type of frame buffer capture session\n    unsigned int          sessionFlags;                        //!< Session flags (one or more of NVML_NVFBC_SESSION_FLAG_XXX).\n    unsigned int          hMaxResolution;                      //!< Max horizontal resolution supported by the capture session\n    unsigned int          vMaxResolution;                      //!< Max vertical resolution supported by the capture session\n    unsigned int          hResolution;                         //!< Horizontal resolution requested by caller in capture call\n    unsigned int          vResolution;                         //!< Vertical resolution requested by caller in capture call\n    unsigned int          averageFPS;                          //!< Moving average new frames captured per second\n    unsigned int          averageLatency;                      //!< Moving average new frame capture latency in microseconds\n} nvmlFBCSessionInfo_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDrainDefs definitions related to the drain state\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n *  Is the GPU device to be removed from the kernel by nvmlDeviceRemoveGpu()\n */\ntypedef enum nvmlDetachGpuState_enum\n{\n    NVML_DETACH_GPU_KEEP         = 0,\n    NVML_DETACH_GPU_REMOVE\n} nvmlDetachGpuState_t;\n\n/**\n *  Parent bridge PCIe link state requested by nvmlDeviceRemoveGpu()\n */\ntypedef enum nvmlPcieLinkState_enum\n{\n    NVML_PCIE_LINK_KEEP         = 0,\n    NVML_PCIE_LINK_SHUT_DOWN\n} nvmlPcieLinkState_t;\n\n/** @} */\n\n#define NVML_GPU_FABRIC_UUID_LEN 16\n\n#define NVML_GPU_FABRIC_STATE_NOT_SUPPORTED 0\n#define NVML_GPU_FABRIC_STATE_NOT_STARTED   1\n#define NVML_GPU_FABRIC_STATE_IN_PROGRESS   2\n#define NVML_GPU_FABRIC_STATE_COMPLETED     3\n\ntypedef unsigned char nvmlGpuFabricState_t;\n\ntypedef struct {\n    char                 clusterUuid[NVML_GPU_FABRIC_UUID_LEN]; //!< Uuid of the cluster to which this GPU belongs\n    nvmlReturn_t         status;                                //!< Error status, if any. Must be checked only if state returns \"complete\".\n    unsigned int         partitionId;                           //!< ID of the fabric partition to which this GPU belongs\n    nvmlGpuFabricState_t state;                                 //!< Current state of GPU registration process\n} nvmlGpuFabricInfo_t;\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlInitializationAndCleanup Initialization and Cleanup\n * This chapter describes the methods that handle NVML initialization and cleanup.\n * It is the user's responsibility to call \\ref nvmlInit_v2() before calling any other methods, and\n * nvmlShutdown() once NVML is no longer being used.\n *  @{\n */\n/***************************************************************************************************/\n\n#define NVML_INIT_FLAG_NO_GPUS      1   //!< Don't fail nvmlInit() when no GPUs are found\n#define NVML_INIT_FLAG_NO_ATTACH    2   //!< Don't attach GPUs\n\n/**\n * Initialize NVML, but don't initialize any GPUs yet.\n *\n * \\note nvmlInit_v3 introduces a \"flags\" argument, that allows passing boolean values\n *       modifying the behaviour of nvmlInit().\n * \\note In NVML 5.319 new nvmlInit_v2 has replaced nvmlInit\"_v1\" (default in NVML 4.304 and older) that\n *       did initialize all GPU devices in the system.\n *\n * This allows NVML to communicate with a GPU\n * when other GPUs in the system are unstable or in a bad state.  When using this API, GPUs are\n * discovered and initialized in nvmlDeviceGetHandleBy* functions instead.\n *\n * \\note To contrast nvmlInit_v2 with nvmlInit\"_v1\", NVML 4.304 nvmlInit\"_v1\" will fail when any detected GPU is in\n *       a bad or unstable state.\n *\n * For all products.\n *\n * This method, should be called once before invoking any other methods in the library.\n * A reference count of the number of initializations is maintained.  Shutdown only occurs\n * when the reference count reaches zero.\n *\n * @return\n *         - \\ref NVML_SUCCESS                   if NVML has been properly initialized\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED   if NVIDIA driver is not running\n *         - \\ref NVML_ERROR_NO_PERMISSION       if NVML does not have permission to talk to the driver\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlInit_v2(void);\n\n/**\n * nvmlInitWithFlags is a variant of nvmlInit(), that allows passing a set of boolean values\n *       modifying the behaviour of nvmlInit().\n *       Other than the \"flags\" parameter it is completely similar to \\ref nvmlInit_v2.\n *\n * For all products.\n *\n * @param flags                                 behaviour modifier flags\n *\n * @return\n *         - \\ref NVML_SUCCESS                   if NVML has been properly initialized\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED   if NVIDIA driver is not running\n *         - \\ref NVML_ERROR_NO_PERMISSION       if NVML does not have permission to talk to the driver\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlInitWithFlags(unsigned int flags);\n\n/**\n * Shut down NVML by releasing all GPU resources previously allocated with \\ref nvmlInit_v2().\n *\n * For all products.\n *\n * This method should be called after NVML work is done, once for each call to \\ref nvmlInit_v2()\n * A reference count of the number of initializations is maintained.  Shutdown only occurs\n * when the reference count reaches zero.  For backwards compatibility, no error is reported if\n * nvmlShutdown() is called more times than nvmlInit().\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if NVML has been properly shut down\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlShutdown(void);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlErrorReporting Error reporting\n * This chapter describes helper functions for error reporting routines.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Helper method for converting NVML error codes into readable strings.\n *\n * For all products.\n *\n * @param result                               NVML error code to convert\n *\n * @return String representation of the error.\n *\n */\nconst DECLDIR char* nvmlErrorString(nvmlReturn_t result);\n/** @} */\n\n\n/***************************************************************************************************/\n/** @defgroup nvmlConstants Constants\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetInforomVersion and \\ref nvmlDeviceGetInforomImageVersion\n */\n#define NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE       16\n\n/**\n * Buffer size guaranteed to be large enough for storing GPU identifiers.\n */\n#define NVML_DEVICE_UUID_BUFFER_SIZE                  80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetUUID\n */\n#define NVML_DEVICE_UUID_V2_BUFFER_SIZE               96\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetBoardPartNumber\n */\n#define NVML_DEVICE_PART_NUMBER_BUFFER_SIZE           80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlSystemGetDriverVersion\n */\n#define NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE        80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlSystemGetNVMLVersion\n */\n#define NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE          80\n\n/**\n * Buffer size guaranteed to be large enough for storing GPU device names.\n */\n#define NVML_DEVICE_NAME_BUFFER_SIZE                  64\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetName\n */\n#define NVML_DEVICE_NAME_V2_BUFFER_SIZE               96\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetSerial\n */\n#define NVML_DEVICE_SERIAL_BUFFER_SIZE                30\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetVbiosVersion\n */\n#define NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE         32\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlSystemQueries System Queries\n * This chapter describes the queries that NVML can perform against the local system. These queries\n * are not device-specific.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves the version of the system's graphics driver.\n *\n * For all products.\n *\n * The version identifier is an alphanumeric string.  It will not exceed 80 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.\n *\n * @param version                              Reference in which to return the version identifier\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetDriverVersion(char *version, unsigned int length);\n\n/**\n * Retrieves the version of the NVML library.\n *\n * For all products.\n *\n * The version identifier is an alphanumeric string.  It will not exceed 80 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE.\n *\n * @param version                              Reference in which to return the version identifier\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion(char *version, unsigned int length);\n\n/**\n * Retrieves the version of the CUDA driver.\n *\n * For all products.\n *\n * The CUDA driver version returned will be retreived from the currently installed version of CUDA.\n * If the cuda library is not found, this function will return a known supported version number.\n *\n * @param cudaDriverVersion                    Reference in which to return the version identifier\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cudaDriverVersion has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a cudaDriverVersion is NULL\n */\nnvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion(int *cudaDriverVersion);\n\n/**\n * Retrieves the version of the CUDA driver from the shared library.\n *\n * For all products.\n *\n * The returned CUDA driver version by calling cuDriverGetVersion()\n *\n * @param cudaDriverVersion                    Reference in which to return the version identifier\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a cudaDriverVersion has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a cudaDriverVersion is NULL\n *         - \\ref NVML_ERROR_LIBRARY_NOT_FOUND  if \\a libcuda.so.1 or libcuda.dll is not found\n *         - \\ref NVML_ERROR_FUNCTION_NOT_FOUND if \\a cuDriverGetVersion() is not found in the shared library\n */\nnvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion_v2(int *cudaDriverVersion);\n\n/**\n * Macros for converting the CUDA driver version number to Major and Minor version numbers.\n */\n#define NVML_CUDA_DRIVER_VERSION_MAJOR(v) ((v)/1000)\n#define NVML_CUDA_DRIVER_VERSION_MINOR(v) (((v)%1000)/10)\n\n/**\n * Gets name of the process with provided process id\n *\n * For all products.\n *\n * Returned process name is cropped to provided length.\n * name string is encoded in ANSI.\n *\n * @param pid                                  The identifier of the process\n * @param name                                 Reference in which to return the process name\n * @param length                               The maximum allowed length of the string returned in \\a name\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a name is NULL or \\a length is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND         if process doesn't exists\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlSystemGetProcessName(unsigned int pid, char *name, unsigned int length);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitQueries Unit Queries\n * This chapter describes that queries that NVML can perform against each unit. For S-class systems only.\n * In each case the device is identified with an nvmlUnit_t handle. This handle is obtained by\n * calling \\ref nvmlUnitGetHandleByIndex().\n *  @{\n */\n/***************************************************************************************************/\n\n /**\n * Retrieves the number of units in the system.\n *\n * For S-class products.\n *\n * @param unitCount                            Reference in which to return the number of units\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a unitCount has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unitCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetCount(unsigned int *unitCount);\n\n/**\n * Acquire the handle for a particular unit, based on its index.\n *\n * For S-class products.\n *\n * Valid indices are derived from the \\a unitCount returned by \\ref nvmlUnitGetCount().\n *   For example, if \\a unitCount is 2 the valid indices are 0 and 1, corresponding to UNIT 0 and UNIT 1.\n *\n * The order in which NVML enumerates units has no guarantees of consistency between reboots.\n *\n * @param index                                The index of the target unit, >= 0 and < \\a unitCount\n * @param unit                                 Reference in which to return the unit handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a unit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a index is invalid or \\a unit is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetHandleByIndex(unsigned int index, nvmlUnit_t *unit);\n\n/**\n * Retrieves the static information associated with a unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlUnitInfo_t for details on available unit info.\n *\n * @param unit                                 The identifier of the target unit\n * @param info                                 Reference in which to return the unit information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a info has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a info is NULL\n */\nnvmlReturn_t DECLDIR nvmlUnitGetUnitInfo(nvmlUnit_t unit, nvmlUnitInfo_t *info);\n\n/**\n * Retrieves the LED state associated with this unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlLedState_t for details on allowed states.\n *\n * @param unit                                 The identifier of the target unit\n * @param state                                Reference in which to return the current LED state\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a state has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a state is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlUnitSetLedState()\n */\nnvmlReturn_t DECLDIR nvmlUnitGetLedState(nvmlUnit_t unit, nvmlLedState_t *state);\n\n/**\n * Retrieves the PSU stats for the unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlPSUInfo_t for details on available PSU info.\n *\n * @param unit                                 The identifier of the target unit\n * @param psu                                  Reference in which to return the PSU information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a psu has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a psu is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetPsuInfo(nvmlUnit_t unit, nvmlPSUInfo_t *psu);\n\n/**\n * Retrieves the temperature readings for the unit, in degrees C.\n *\n * For S-class products.\n *\n * Depending on the product, readings may be available for intake (type=0),\n * exhaust (type=1) and board (type=2).\n *\n * @param unit                                 The identifier of the target unit\n * @param type                                 The type of reading to take\n * @param temp                                 Reference in which to return the intake temperature\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit or \\a type is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetTemperature(nvmlUnit_t unit, unsigned int type, unsigned int *temp);\n\n/**\n * Retrieves the fan speed readings for the unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlUnitFanSpeeds_t for details on available fan speed info.\n *\n * @param unit                                 The identifier of the target unit\n * @param fanSpeeds                            Reference in which to return the fan speed information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a fanSpeeds has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a fanSpeeds is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetFanSpeedInfo(nvmlUnit_t unit, nvmlUnitFanSpeeds_t *fanSpeeds);\n\n/**\n * Retrieves the set of GPU devices that are attached to the specified unit.\n *\n * For S-class products.\n *\n * The \\a deviceCount argument is expected to be set to the size of the input \\a devices array.\n *\n * @param unit                                 The identifier of the target unit\n * @param deviceCount                          Reference in which to provide the \\a devices array size, and\n *                                             to return the number of attached GPU devices\n * @param devices                              Reference in which to return the references to the attached GPU devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount and \\a devices have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a deviceCount indicates that the \\a devices array is too small\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid, either of \\a deviceCount or \\a devices is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetDevices(nvmlUnit_t unit, unsigned int *deviceCount, nvmlDevice_t *devices);\n\n/**\n * Retrieves the IDs and firmware versions for any Host Interface Cards (HICs) in the system.\n *\n * For S-class products.\n *\n * The \\a hwbcCount argument is expected to be set to the size of the input \\a hwbcEntries array.\n * The HIC must be connected to an S-class system for it to be reported by this function.\n *\n * @param hwbcCount                            Size of hwbcEntries array\n * @param hwbcEntries                          Array holding information about hwbc\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a hwbcCount and \\a hwbcEntries have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if either \\a hwbcCount or \\a hwbcEntries is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a hwbcCount indicates that the \\a hwbcEntries array is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetHicVersion(unsigned int *hwbcCount, nvmlHwbcEntry_t *hwbcEntries);\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceQueries Device Queries\n * This chapter describes that queries that NVML can perform against each device.\n * In each case the device is identified with an nvmlDevice_t handle. This handle is obtained by\n * calling one of \\ref nvmlDeviceGetHandleByIndex_v2(), \\ref nvmlDeviceGetHandleBySerial(),\n * \\ref nvmlDeviceGetHandleByPciBusId_v2(). or \\ref nvmlDeviceGetHandleByUUID().\n *  @{\n */\n/***************************************************************************************************/\n\n /**\n * Retrieves the number of compute devices in the system. A compute device is a single GPU.\n *\n * For all products.\n *\n * Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system\n *       even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device.\n *       Update your code to handle this error, or use NVML 4.304 or older nvml header file.\n *       For backward binary compatibility reasons _v1 version of the API is still present in the shared\n *       library.\n *       Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.\n *\n * @param deviceCount                          Reference in which to return the number of accessible devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a deviceCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCount_v2(unsigned int *deviceCount);\n\n/**\n * Get attributes (engine counts etc.) for the given NVML device handle.\n *\n * @note This API currently only supports MIG device handles.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               NVML device handle\n * @param attributes                           Device attributes\n *\n * @return\n *        - \\ref NVML_SUCCESS                  if \\a device attributes were successfully retrieved\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device handle is invalid\n *        - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_NOT_SUPPORTED      if this query is not supported by the device\n *        - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAttributes_v2(nvmlDevice_t device, nvmlDeviceAttributes_t *attributes);\n\n/**\n * Acquire the handle for a particular device, based on its index.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a accessibleDevices count returned by\n *   \\ref nvmlDeviceGetCount_v2(). For example, if \\a accessibleDevices is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * The order in which NVML enumerates devices has no guarantees of consistency between reboots. For that reason it\n *   is recommended that devices be looked up by their PCI ids or UUID. See\n *   \\ref nvmlDeviceGetHandleByUUID() and \\ref nvmlDeviceGetHandleByPciBusId_v2().\n *\n * Note: The NVML index may not correlate with other APIs, such as the CUDA device index.\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs if:\n *  - The target GPU is an SLI slave\n *\n * Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system\n *       even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device.\n *       Update your code to handle this error, or use NVML 4.304 or older nvml header file.\n *       For backward binary compatibility reasons _v1 version of the API is still present in the shared\n *       library.\n *       Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.\n *\n *       This means that nvmlDeviceGetHandleByIndex_v2 and _v1 can return different devices for the same index.\n *       If you don't touch macros that map old (_v1) versions to _v2 versions at the top of the file you don't\n *       need to worry about that.\n *\n * @param index                                The index of the target GPU, >= 0 and < \\a accessibleDevices\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a index is invalid or \\a device is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetIndex\n * @see nvmlDeviceGetCount\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex_v2(unsigned int index, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its board serial number.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * This number corresponds to the value printed directly on the board, and to the value returned by\n *   \\ref nvmlDeviceGetSerial().\n *\n * @deprecated Since more than one GPU can exist on a single board this function is deprecated in favor\n *             of \\ref nvmlDeviceGetHandleByUUID.\n *             For dual GPU boards this function will return NVML_ERROR_INVALID_ARGUMENT.\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs as it searches for the target GPU\n *\n * @param serial                               The board serial number of the target GPU\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a serial is invalid, \\a device is NULL or more than one\n *                                              device has the same serial (dual GPU boards)\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a serial does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if any GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetSerial\n * @see nvmlDeviceGetHandleByUUID\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleBySerial(const char *serial, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its globally unique immutable UUID associated with each device.\n *\n * For all products.\n *\n * @param uuid                                 The UUID of the target GPU or MIG instance\n * @param device                               Reference in which to return the device handle or MIG device handle\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs as it searches for the target GPU\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a uuid is invalid or \\a device is null\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a uuid does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if any GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetUUID\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByUUID(const char *uuid, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its PCI bus id.\n *\n * For all products.\n *\n * This value corresponds to the nvmlPciInfo_t::busId returned by \\ref nvmlDeviceGetPciInfo_v3().\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs if:\n *  - The target GPU is an SLI slave\n *\n * \\note NVML 4.304 and older version of nvmlDeviceGetHandleByPciBusId\"_v1\" returns NVML_ERROR_NOT_FOUND\n *       instead of NVML_ERROR_NO_PERMISSION.\n *\n * @param pciBusId                             The PCI bus id of the target GPU\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a pciBusId is invalid or \\a device is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a pciBusId does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if the attached device has improperly attached external power cables\n *         - \\ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId_v2(const char *pciBusId, nvmlDevice_t *device);\n\n/**\n * Retrieves the name of this device.\n *\n * For all products.\n *\n * The name is an alphanumeric string that denotes a particular product, e.g. Tesla &tm; C2070. It will not\n * exceed 96 characters in length (including the NULL terminator).  See \\ref\n * nvmlConstants::NVML_DEVICE_NAME_V2_BUFFER_SIZE.\n *\n * When used with MIG device handles the API returns MIG device names which can be used to identify devices\n * based on their attributes.\n *\n * @param device                               The identifier of the target device\n * @param name                                 Reference in which to return the product name\n * @param length                               The maximum allowed length of the string returned in \\a name\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a name is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetName(nvmlDevice_t device, char *name, unsigned int length);\n\n/**\n * Retrieves the brand of this device.\n *\n * For all products.\n *\n * The type is a member of \\ref nvmlBrandType_t defined above.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Reference in which to return the product brand type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a type is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBrand(nvmlDevice_t device, nvmlBrandType_t *type);\n\n/**\n * Retrieves the NVML index of this device.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a accessibleDevices count returned by\n *   \\ref nvmlDeviceGetCount_v2(). For example, if \\a accessibleDevices is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * The order in which NVML enumerates devices has no guarantees of consistency between reboots. For that reason it\n *   is recommended that devices be looked up by their PCI ids or GPU UUID. See\n *   \\ref nvmlDeviceGetHandleByPciBusId_v2() and \\ref nvmlDeviceGetHandleByUUID().\n *\n * When used with MIG device handles this API returns indices that can be\n * passed to \\ref nvmlDeviceGetMigDeviceHandleByIndex to retrieve an identical handle.\n * MIG device indices are unique within a device.\n *\n * Note: The NVML index may not correlate with other APIs, such as the CUDA device index.\n *\n * @param device                               The identifier of the target device\n * @param index                                Reference in which to return the NVML index of the device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a index has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a index is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetHandleByIndex()\n * @see nvmlDeviceGetCount()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetIndex(nvmlDevice_t device, unsigned int *index);\n\n/**\n * Retrieves the globally unique board serial number associated with this device's board.\n *\n * For all products with an inforom.\n *\n * The serial number is an alphanumeric string that will not exceed 30 characters (including the NULL terminator).\n * This number matches the serial number tag that is physically attached to the board.  See \\ref\n * nvmlConstants::NVML_DEVICE_SERIAL_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param serial                               Reference in which to return the board/module serial number\n * @param length                               The maximum allowed length of the string returned in \\a serial\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a serial has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a serial is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSerial(nvmlDevice_t device, char *serial, unsigned int length);\n\n\n/***************************************************************************************************/\n\n/** @defgroup nvmlAffinity CPU and Memory Affinity\n *  This chapter describes NVML operations that are associated with CPU and memory\n *  affinity.\n *  @{\n */\n/***************************************************************************************************/\n\n//! Scope of NUMA node for affinity queries\n#define NVML_AFFINITY_SCOPE_NODE     0\n//! Scope of processor socket for affinity queries\n#define NVML_AFFINITY_SCOPE_SOCKET   1\n\ntypedef unsigned int nvmlAffinityScope_t;\n\n/**\n * Retrieves an array of unsigned ints (sized to nodeSetSize) of bitmasks with\n * the ideal memory affinity within node or socket for the device.\n * For example, if NUMA node 0, 1 are ideal within the socket for the device and nodeSetSize ==  1,\n *     result[0] = 0x3\n *\n * \\note If requested scope is not applicable to the target topology, the API\n *       will fall back to reporting the memory affinity for the immediate non-I/O\n *       ancestor of the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param nodeSetSize                          The size of the nodeSet array that is safe to access\n * @param nodeSet                              Array reference in which to return a bitmask of NODEs, 64 NODEs per\n *                                             unsigned long on 64-bit machines, 32 on 32-bit machines\n * @param scope                                Scope that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a NUMA node Affinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, nodeSetSize == 0, nodeSet is NULL or scope is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\n\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryAffinity(nvmlDevice_t device, unsigned int nodeSetSize, unsigned long *nodeSet, nvmlAffinityScope_t scope);\n\n/**\n * Retrieves an array of unsigned ints (sized to cpuSetSize) of bitmasks with the\n * ideal CPU affinity within node or socket for the device.\n * For example, if processors 0, 1, 32, and 33 are ideal for the device and cpuSetSize == 2,\n *     result[0] = 0x3, result[1] = 0x3\n *\n * \\note If requested scope is not applicable to the target topology, the API\n *       will fall back to reporting the CPU affinity for the immediate non-I/O\n *       ancestor of the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param cpuSetSize                           The size of the cpuSet array that is safe to access\n * @param cpuSet                               Array reference in which to return a bitmask of CPUs, 64 CPUs per\n *                                                 unsigned long on 64-bit machines, 32 on 32-bit machines\n * @param scope                                Scope that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cpuAffinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, cpuSetSize == 0, cpuSet is NULL or sope is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\n\nnvmlReturn_t DECLDIR nvmlDeviceGetCpuAffinityWithinScope(nvmlDevice_t device, unsigned int cpuSetSize, unsigned long *cpuSet, nvmlAffinityScope_t scope);\n\n/**\n * Retrieves an array of unsigned ints (sized to cpuSetSize) of bitmasks with the ideal CPU affinity for the device\n * For example, if processors 0, 1, 32, and 33 are ideal for the device and cpuSetSize == 2,\n *     result[0] = 0x3, result[1] = 0x3\n * This is equivalent to calling \\ref nvmlDeviceGetCpuAffinityWithinScope with \\ref NVML_AFFINITY_SCOPE_NODE.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param cpuSetSize                           The size of the cpuSet array that is safe to access\n * @param cpuSet                               Array reference in which to return a bitmask of CPUs, 64 CPUs per\n *                                                 unsigned long on 64-bit machines, 32 on 32-bit machines\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cpuAffinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, cpuSetSize == 0, or cpuSet is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCpuAffinity(nvmlDevice_t device, unsigned int cpuSetSize, unsigned long *cpuSet);\n\n/**\n * Sets the ideal affinity for the calling thread and device using the guidelines\n * given in nvmlDeviceGetCpuAffinity().  Note, this is a change as of version 8.0.\n * Older versions set the affinity for a calling process and all children.\n * Currently supports up to 1024 processors.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the calling process has been successfully bound\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetCpuAffinity(nvmlDevice_t device);\n\n/**\n * Clear all affinity bindings for the calling thread.  Note, this is a change as of version\n * 8.0 as older versions cleared the affinity for a calling process and all children.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the calling process has been successfully unbound\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearCpuAffinity(nvmlDevice_t device);\n\n/**\n * Retrieve the common ancestor for two devices\n * For all products.\n * Supported on Linux only.\n *\n * @param device1                              The identifier of the first device\n * @param device2                              The identifier of the second device\n * @param pathInfo                             A \\ref nvmlGpuTopologyLevel_t that gives the path type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pathInfo has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device1, or \\a device2 is invalid, or \\a pathInfo is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\n\n/** @} */\nnvmlReturn_t DECLDIR nvmlDeviceGetTopologyCommonAncestor(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuTopologyLevel_t *pathInfo);\n\n/**\n * Retrieve the set of GPUs that are nearest to a given device at a specific interconnectivity level\n * For all products.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the first device\n * @param level                                The \\ref nvmlGpuTopologyLevel_t level to search for other GPUs\n * @param count                                When zero, is set to the number of matching GPUs such that \\a deviceArray\n *                                             can be malloc'd.  When non-zero, \\a deviceArray will be filled with \\a count\n *                                             number of device handles.\n * @param deviceArray                          An array of device handles for GPUs found at \\a level\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceArray or \\a count (if initially zero) has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a level, or \\a count is invalid, or \\a deviceArray is NULL with a non-zero \\a count\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTopologyNearestGpus(nvmlDevice_t device, nvmlGpuTopologyLevel_t level, unsigned int *count, nvmlDevice_t *deviceArray);\n\n/**\n * Retrieve the set of GPUs that have a CPU affinity with the given CPU number\n * For all products.\n * Supported on Linux only.\n *\n * @param cpuNumber                            The CPU number\n * @param count                                When zero, is set to the number of matching GPUs such that \\a deviceArray\n *                                             can be malloc'd.  When non-zero, \\a deviceArray will be filled with \\a count\n *                                             number of device handles.\n * @param deviceArray                          An array of device handles for GPUs found with affinity to \\a cpuNumber\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceArray or \\a count (if initially zero) has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a cpuNumber, or \\a count is invalid, or \\a deviceArray is NULL with a non-zero \\a count\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\nnvmlReturn_t DECLDIR nvmlSystemGetTopologyGpuSet(unsigned int cpuNumber, unsigned int *count, nvmlDevice_t *deviceArray);\n\n/**\n * Retrieve the status for a given p2p capability index between a given pair of GPU\n *\n * @param device1                              The first device\n * @param device2                              The second device\n * @param p2pIndex                             p2p Capability Index being looked for between \\a device1 and \\a device2\n * @param p2pStatus                            Reference in which to return the status of the \\a p2pIndex\n *                                             between \\a device1 and \\a device2\n * @return\n *         - \\ref NVML_SUCCESS         if \\a p2pStatus has been populated\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT     if \\a device1 or \\a device2 or \\a p2pIndex is invalid or \\a p2pStatus is NULL\n *         - \\ref NVML_ERROR_UNKNOWN              on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetP2PStatus(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuP2PCapsIndex_t p2pIndex,nvmlGpuP2PStatus_t *p2pStatus);\n\n/**\n * Retrieves the globally unique immutable UUID associated with this device, as a 5 part hexadecimal string,\n * that augments the immutable, board serial identifier.\n *\n * For all products.\n *\n * The UUID is a globally unique identifier. It is the only available identifier for pre-Fermi-architecture products.\n * It does NOT correspond to any identifier printed on the board.  It will not exceed 96 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_DEVICE_UUID_V2_BUFFER_SIZE.\n *\n * When used with MIG device handles the API returns globally unique UUIDs which can be used to identify MIG\n * devices across both GPU and MIG devices. UUIDs are immutable for the lifetime of a MIG device.\n *\n * @param device                               The identifier of the target device\n * @param uuid                                 Reference in which to return the GPU UUID\n * @param length                               The maximum allowed length of the string returned in \\a uuid\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a uuid has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a uuid is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetUUID(nvmlDevice_t device, char *uuid, unsigned int length);\n\n/**\n * Retrieve the MDEV UUID of a vGPU instance.\n *\n * The MDEV UUID is a globally unique identifier of the mdev device assigned to the VM, and is returned as a 5-part hexadecimal string,\n * not exceeding 80 characters in length (including the NULL terminator).\n * MDEV UUID is displayed only on KVM platform.\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param mdevUuid                 Pointer to caller-supplied buffer to hold MDEV UUID\n * @param size                     Size of buffer in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     on any hypervisor other than KVM\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mdevUuid is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetMdevUUID(nvmlVgpuInstance_t vgpuInstance, char *mdevUuid, unsigned int size);\n\n/**\n * Retrieves minor number for the device. The minor number for the device is such that the Nvidia device node file for\n * each GPU will have the form /dev/nvidia[minor number].\n *\n * For all products.\n * Supported only for Linux\n *\n * @param device                                The identifier of the target device\n * @param minorNumber                           Reference in which to return the minor number for the device\n * @return\n *         - \\ref NVML_SUCCESS                 if the minor number is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minorNumber is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMinorNumber(nvmlDevice_t device, unsigned int *minorNumber);\n\n/**\n * Retrieves the the device board part number which is programmed into the board's InfoROM\n *\n * For all products.\n *\n * @param device                                Identifier of the target device\n * @param partNumber                            Reference to the buffer to return\n * @param length                                Length of the buffer reference\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a partNumber has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if the needed VBIOS fields have not been filled\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a serial is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBoardPartNumber(nvmlDevice_t device, char* partNumber, unsigned int length);\n\n/**\n * Retrieves the version information for the device's infoROM object.\n *\n * For all products with an inforom.\n *\n * Fermi and higher parts have non-volatile on-board memory for persisting device info, such as aggregate\n * ECC counts. The version of the data structures in this memory may change from time to time. It will not\n * exceed 16 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.\n *\n * See \\ref nvmlInforomObject_t for details on the available infoROM objects.\n *\n * @param device                               The identifier of the target device\n * @param object                               The target infoROM object\n * @param version                              Reference in which to return the infoROM version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have an infoROM\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetInforomImageVersion\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomVersion(nvmlDevice_t device, nvmlInforomObject_t object, char *version, unsigned int length);\n\n/**\n * Retrieves the global infoROM image version\n *\n * For all products with an inforom.\n *\n * Image version just like VBIOS version uniquely describes the exact version of the infoROM flashed on the board\n * in contrast to infoROM object version which is only an indicator of supported features.\n * Version string will not exceed 16 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param version                              Reference in which to return the infoROM image version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have an infoROM\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetInforomVersion\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomImageVersion(nvmlDevice_t device, char *version, unsigned int length);\n\n/**\n * Retrieves the checksum of the configuration stored in the device's infoROM.\n *\n * For all products with an inforom.\n *\n * Can be used to make sure that two GPUs have the exact same configuration.\n * Current checksum takes into account configuration stored in PWR and ECC infoROM objects.\n * Checksum can change between driver releases or when user changes configuration (e.g. disable/enable ECC)\n *\n * @param device                               The identifier of the target device\n * @param checksum                             Reference in which to return the infoROM configuration checksum\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a checksum has been set\n *         - \\ref NVML_ERROR_CORRUPTED_INFOROM if the device's checksum couldn't be retrieved due to infoROM corruption\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a checksum is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomConfigurationChecksum(nvmlDevice_t device, unsigned int *checksum);\n\n/**\n * Reads the infoROM from the flash and verifies the checksums.\n *\n * For all products with an inforom.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if infoROM is not corrupted\n *         - \\ref NVML_ERROR_CORRUPTED_INFOROM if the device's infoROM is corrupted\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceValidateInforom(nvmlDevice_t device);\n\n/**\n * Retrieves the display mode for the device.\n *\n * For all products.\n *\n * This method indicates whether a physical display (e.g. monitor) is currently connected to\n * any of the device's connectors.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param display                              Reference in which to return the display mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a display has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a display is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDisplayMode(nvmlDevice_t device, nvmlEnableState_t *display);\n\n/**\n * Retrieves the display active state for the device.\n *\n * For all products.\n *\n * This method indicates whether a display is initialized on the device.\n * For example whether X Server is attached to this device and has allocated memory for the screen.\n *\n * Display can be active even when no monitor is physically attached.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param isActive                             Reference in which to return the display active state\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isActive has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isActive is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDisplayActive(nvmlDevice_t device, nvmlEnableState_t *isActive);\n\n/**\n * Retrieves the persistence mode associated with this device.\n *\n * For all products.\n * For Linux only.\n *\n * When driver persistence mode is enabled the driver software state is not torn down when the last\n * client disconnects. By default this feature is disabled.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current driver persistence mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetPersistenceMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Retrieves the PCI attributes of this device.\n *\n * For all products.\n *\n * See \\ref nvmlPciInfo_t for details on the available PCI info.\n *\n * @param device                               The identifier of the target device\n * @param pci                                  Reference in which to return the PCI info\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pci has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pci is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo_v3(nvmlDevice_t device, nvmlPciInfo_t *pci);\n\n/**\n * Retrieves the maximum PCIe link generation possible with this device and system\n *\n * I.E. for a generation 2 PCIe device attached to a generation 1 PCIe bus the max link generation this function will\n * report is generation 1.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param maxLinkGen                           Reference in which to return the max PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a maxLinkGen has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a maxLinkGen is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkGeneration(nvmlDevice_t device, unsigned int *maxLinkGen);\n\n/**\n * Retrieves the maximum PCIe link generation supported by this device\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param maxLinkGenDevice                     Reference in which to return the max PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a maxLinkGenDevice has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a maxLinkGenDevice is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuMaxPcieLinkGeneration(nvmlDevice_t device, unsigned int *maxLinkGenDevice);\n\n/**\n * Retrieves the maximum PCIe link width possible with this device and system\n *\n * I.E. for a device with a 16x PCIe bus width attached to a 8x PCIe system bus this function will report\n * a max link width of 8.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param maxLinkWidth                         Reference in which to return the max PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a maxLinkWidth has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a maxLinkWidth is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkWidth(nvmlDevice_t device, unsigned int *maxLinkWidth);\n\n/**\n * Retrieves the current PCIe link generation\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param currLinkGen                          Reference in which to return the current PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a currLinkGen has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a currLinkGen is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkGeneration(nvmlDevice_t device, unsigned int *currLinkGen);\n\n/**\n * Retrieves the current PCIe link width\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param currLinkWidth                        Reference in which to return the current PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a currLinkWidth has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a currLinkWidth is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkWidth(nvmlDevice_t device, unsigned int *currLinkWidth);\n\n/**\n * Retrieve PCIe utilization information.\n * This function is querying a byte counter over a 20ms interval and thus is the\n *   PCIe throughput over that interval.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * This method is not supported in virtual machines running virtual GPU (vGPU).\n *\n * @param device                               The identifier of the target device\n * @param counter                              The specific counter that should be queried \\ref nvmlPcieUtilCounter_t\n * @param value                                Reference in which to return throughput in KB/s\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a value has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a counter is invalid, or \\a value is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieThroughput(nvmlDevice_t device, nvmlPcieUtilCounter_t counter, unsigned int *value);\n\n/**\n * Retrieve the PCIe replay counter.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param value                                Reference in which to return the counter's value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a value has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a value is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieReplayCounter(nvmlDevice_t device, unsigned int *value);\n\n/**\n * Retrieves the current clock speeds for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlClockType_t for details on available clock information.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Identify which clock domain to query\n * @param clock                                Reference in which to return the clock speed in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clock has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device cannot report the specified clock\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);\n\n/**\n * Retrieves the maximum clock speeds for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlClockType_t for details on available clock information.\n *\n * \\note On GPUs from Fermi family current P0 clocks (reported by \\ref nvmlDeviceGetClockInfo) can differ from max clocks\n *       by few MHz.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Identify which clock domain to query\n * @param clock                                Reference in which to return the clock speed in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clock has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device cannot report the specified clock\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);\n\n/**\n * Retrieves the current setting of a clock that applications will use unless an overspec situation occurs.\n * Can be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Retrieves the default applications clock that GPU boots with or\n * defaults to after \\ref nvmlDeviceResetApplicationsClocks call.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the default clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * \\see nvmlDeviceGetApplicationsClock\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDefaultApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Resets the application clock to the default value\n *\n * This is the applications clock that will be used after system reboot or driver reload.\n * Default value is constant, but the current value an be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * On Pascal and newer hardware, if clocks were previously locked with \\ref nvmlDeviceSetApplicationsClocks,\n * this call will unlock clocks. This returns clocks their default behavior ofautomatically boosting above\n * base clocks as thermal limits allow.\n *\n * @see nvmlDeviceGetApplicationsClock\n * @see nvmlDeviceSetApplicationsClocks\n *\n * For Fermi &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetApplicationsClocks(nvmlDevice_t device);\n\n/**\n * Retrieves the clock speed for the clock specified by the clock type and clock ID.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockId                              Identify which clock in the domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetClock(nvmlDevice_t device, nvmlClockType_t clockType, nvmlClockId_t clockId, unsigned int *clockMHz);\n\n/**\n * Retrieves the customer defined maximum boost clock speed specified by the given clock type.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or the \\a clockType on this device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxCustomerBoostClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Retrieves the list of possible memory clocks that can be used as an argument for \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param count                                Reference in which to provide the \\a clocksMHz array size, and\n *                                             to return the number of elements\n * @param clocksMHz                            Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count and \\a clocksMHz have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to the number of\n *                                                required elements)\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetSupportedGraphicsClocks\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedMemoryClocks(nvmlDevice_t device, unsigned int *count, unsigned int *clocksMHz);\n\n/**\n * Retrieves the list of possible graphics clocks that can be used as an argument for \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param memoryClockMHz                       Memory clock for which to return possible graphics clocks\n * @param count                                Reference in which to provide the \\a clocksMHz array size, and\n *                                             to return the number of elements\n * @param clocksMHz                            Reference in which to return the clocks in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count and \\a clocksMHz have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_FOUND         if the specified \\a memoryClockMHz is not a supported frequency\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetSupportedMemoryClocks\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedGraphicsClocks(nvmlDevice_t device, unsigned int memoryClockMHz, unsigned int *count, unsigned int *clocksMHz);\n\n/**\n * Retrieve the current state of Auto Boosted clocks on a device and store it in \\a isEnabled\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow.\n *\n * On Pascal and newer hardware, Auto Aoosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param isEnabled                            Where to store the current state of Auto Boosted clocks of the target device\n * @param defaultIsEnabled                     Where to store the default Auto Boosted clocks behavior of the target device that the device will\n *                                                 revert to when no applications are using the GPU\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If \\a isEnabled has been been set with the Auto Boosted clocks state of \\a device\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isEnabled is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t *isEnabled, nvmlEnableState_t *defaultIsEnabled);\n\n/**\n * Try to set the current state of Auto Boosted clocks on a device.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow. Auto Boosted clocks should be disabled if fixed clock\n * rates are desired.\n *\n * Non-root users may use this API by default but can be restricted by root from using this API by calling\n * \\ref nvmlDeviceSetAPIRestriction with apiType=NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS.\n * Note: Persistence Mode is required to modify current Auto Boost settings, therefore, it must be enabled.\n *\n * On Pascal and newer hardware, Auto Boosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param enabled                              What state to try to set Auto Boosted clocks of the target device to\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If the Auto Boosted clocks were successfully set to the state specified by \\a enabled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled);\n\n/**\n * Try to set the default state of Auto Boosted clocks on a device. This is the default state that Auto Boosted clocks will\n * return to when no compute running processes (e.g. CUDA application which have an active context) are running\n *\n * For Kepler &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n * Requires root/admin permissions.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow. Auto Boosted clocks should be disabled if fixed clock\n * rates are desired.\n *\n * On Pascal and newer hardware, Auto Boosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param enabled                              What state to try to set default Auto Boosted clocks of the target device to\n * @param flags                                Flags that change the default behavior. Currently Unused.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If the Auto Boosted clock's default state was successfully set to the state specified by \\a enabled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NO_PERMISSION     If the calling user does not have permission to change Auto Boosted clock's default state.\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetDefaultAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled, unsigned int flags);\n\n\n/**\n * Retrieves the intended operating speed of the device's fan.\n *\n * Note: The reported speed is the intended fan speed.  If the fan is physically blocked and unable to spin, the\n * output will not match the actual fan speed.\n *\n * For all discrete products with dedicated fans.\n *\n * The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed.\n * This value may exceed 100% in certain cases.\n *\n * @param device                               The identifier of the target device\n * @param speed                                Reference in which to return the fan speed percentage\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a speed has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a speed is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a fan\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed(nvmlDevice_t device, unsigned int *speed);\n\n\n/**\n * Retrieves the intended operating speed of the device's specified fan.\n *\n * Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the\n * output will not match the actual fan speed.\n *\n * For all discrete products with dedicated fans.\n *\n * The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed.\n * This value may exceed 100% in certain cases.\n *\n * @param device                                The identifier of the target device\n * @param fan                                   The index of the target fan, zero indexed.\n * @param speed                                 Reference in which to return the fan speed percentage\n *\n * @return\n *        - \\ref NVML_SUCCESS                   if \\a speed has been set\n *        - \\ref NVML_ERROR_UNINITIALIZED       if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a device is invalid, \\a fan is not an acceptable index, or \\a speed is NULL\n *        - \\ref NVML_ERROR_NOT_SUPPORTED       if the device does not have a fan or is newer than Maxwell\n *        - \\ref NVML_ERROR_GPU_IS_LOST         if the target GPU has fallen off the bus or is otherwise inaccessible\n *        - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int * speed);\n\n/**\n * Retrieves the intended target speed of the device's specified fan.\n *\n * Normally, the driver dynamically adjusts the fan based on\n * the needs of the GPU.  But when user set fan speed using nvmlDeviceSetFanSpeed_v2,\n * the driver will attempt to make the fan achieve the setting in\n * nvmlDeviceSetFanSpeed_v2.  The actual current speed of the fan\n * is reported in nvmlDeviceGetFanSpeed_v2.\n *\n * For all discrete products with dedicated fans.\n *\n * The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed.\n * This value may exceed 100% in certain cases.\n *\n * @param device                                The identifier of the target device\n * @param fan                                   The index of the target fan, zero indexed.\n * @param targetSpeed                           Reference in which to return the fan speed percentage\n *\n * @return\n *        - \\ref NVML_SUCCESS                   if \\a speed has been set\n *        - \\ref NVML_ERROR_UNINITIALIZED       if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a device is invalid, \\a fan is not an acceptable index, or \\a speed is NULL\n *        - \\ref NVML_ERROR_NOT_SUPPORTED       if the device does not have a fan or is newer than Maxwell\n *        - \\ref NVML_ERROR_GPU_IS_LOST         if the target GPU has fallen off the bus or is otherwise inaccessible\n *        - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTargetFanSpeed(nvmlDevice_t device, unsigned int fan, unsigned int *targetSpeed);\n\n/**\n * Sets the speed of the fan control policy to default.\n *\n * For all cuda-capable discrete products with fans\n *\n * @param device                        The identifier of the target device\n * @param fan                           The index of the fan, starting at zero\n *\n * return\n *         NVML_SUCCESS                 if speed has been adjusted\n *         NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         NVML_ERROR_INVALID_ARGUMENT  if device is invalid\n *         NVML_ERROR_NOT_SUPPORTED     if the device does not support this\n *                                      (doesn't have fans)\n *         NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetDefaultFanSpeed_v2(nvmlDevice_t device, unsigned int fan);\n\n/**\n * Retrieves the min and max fan speed that user can set for the GPU fan.\n *\n * For all cuda-capable discrete products with fans\n *\n * @param device                        The identifier of the target device\n * @param minSpeed                      The minimum speed allowed to set\n * @param maxSpeed                      The maximum speed allowed to set\n *\n * return\n *         NVML_SUCCESS                 if speed has been adjusted\n *         NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         NVML_ERROR_INVALID_ARGUMENT  if device is invalid\n *         NVML_ERROR_NOT_SUPPORTED     if the device does not support this\n *                                      (doesn't have fans)\n *         NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMinMaxFanSpeed(nvmlDevice_t device, unsigned int * minSpeed,\n                                                 unsigned int * maxSpeed);\n\n/**\n * Gets current fan control policy.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * For all cuda-capable discrete products with fans\n *\n * device                               The identifier of the target \\a device\n * policy                               Reference in which to return the fan control \\a policy\n *\n * return\n *         NVML_SUCCESS                 if \\a policy has been populated\n *         NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a policy is null or the \\a fan given doesn't reference\n *                                            a fan that exists.\n *         NVML_ERROR_NOT_SUPPORTED     if the \\a device is older than Maxwell\n *         NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFanControlPolicy_v2(nvmlDevice_t device, unsigned int fan,\n                                                      nvmlFanControlPolicy_t *policy);\n\n/**\n * Sets current fan control policy.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Requires privileged user.\n *\n * For all cuda-capable discrete products with fans\n *\n * device                               The identifier of the target \\a device\n * policy                               The fan control \\a policy to set\n *\n * return\n *         NVML_SUCCESS                 if \\a policy has been set\n *         NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a policy is null or the \\a fan given doesn't reference\n *                                            a fan that exists.\n *         NVML_ERROR_NOT_SUPPORTED     if the \\a device is older than Maxwell\n *         NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetFanControlPolicy(nvmlDevice_t device, unsigned int fan,\n                                                   nvmlFanControlPolicy_t policy);\n\n/**\n * Retrieves the number of fans on the device.\n *\n * For all discrete products with dedicated fans.\n *\n * @param device                               The identifier of the target device\n * @param numFans                              The number of fans\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a fan number query was successful\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a numFans is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a fan\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNumFans(nvmlDevice_t device, unsigned int *numFans);\n\n/**\n * Retrieves the current temperature readings for the device, in degrees C.\n *\n * For all products.\n *\n * See \\ref nvmlTemperatureSensors_t for details on available temperature sensors.\n *\n * @param device                               The identifier of the target device\n * @param sensorType                           Flag that indicates which sensor reading to retrieve\n * @param temp                                 Reference in which to return the temperature reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a sensorType is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have the specified sensor\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTemperature(nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int *temp);\n\n/**\n * Retrieves the temperature threshold for the GPU with the specified threshold type in degrees C.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * See \\ref nvmlTemperatureThresholds_t for details on available temperature thresholds.\n *\n * @param device                               The identifier of the target device\n * @param thresholdType                        The type of threshold value queried\n * @param temp                                 Reference in which to return the temperature reading\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a thresholdType is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a temperature sensor or is unsupported\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTemperatureThreshold(nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int *temp);\n\n/**\n * Sets the temperature threshold for the GPU with the specified threshold type in degrees C.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * See \\ref nvmlTemperatureThresholds_t for details on available temperature thresholds.\n *\n * @param device                               The identifier of the target device\n * @param thresholdType                        The type of threshold value to be set\n * @param temp                                 Reference which hold the value to be set\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a thresholdType is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a temperature sensor or is unsupported\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetTemperatureThreshold(nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, int *temp);\n\n/**\n * Used to execute a list of thermal system instructions.\n *\n * @param device                               The identifier of the target device\n * @param sensorIndex                          The index of the thermal sensor\n * @param pThermalSettings                     Reference in which to return the thermal sensor information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pThermalSettings has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pThermalSettings is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetThermalSettings(nvmlDevice_t device, unsigned int sensorIndex, nvmlGpuThermalSettings_t *pThermalSettings);\n\n/**\n * Retrieves the current performance state for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlPstates_t for details on allowed performance states.\n *\n * @param device                               The identifier of the target device\n * @param pState                               Reference in which to return the performance state reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pState has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pState is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPerformanceState(nvmlDevice_t device, nvmlPstates_t *pState);\n\n/**\n * Retrieves current clocks throttling reasons.\n *\n * For all fully supported products.\n *\n * \\note More than one bit can be enabled at the same time. Multiple reasons can be affecting clocks at once.\n *\n * @param device                                The identifier of the target device\n * @param clocksThrottleReasons                 Reference in which to return bitmask of active clocks throttle\n *                                                  reasons\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clocksThrottleReasons has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clocksThrottleReasons is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlClocksThrottleReasons\n * @see nvmlDeviceGetSupportedClocksThrottleReasons\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrentClocksThrottleReasons(nvmlDevice_t device, unsigned long long *clocksThrottleReasons);\n\n/**\n * Retrieves bitmask of supported clocks throttle reasons that can be returned by\n * \\ref nvmlDeviceGetCurrentClocksThrottleReasons\n *\n * For all fully supported products.\n *\n * This method is not supported in virtual machines running virtual GPU (vGPU).\n *\n * @param device                               The identifier of the target device\n * @param supportedClocksThrottleReasons       Reference in which to return bitmask of supported\n *                                              clocks throttle reasons\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a supportedClocksThrottleReasons has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a supportedClocksThrottleReasons is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlClocksThrottleReasons\n * @see nvmlDeviceGetCurrentClocksThrottleReasons\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedClocksThrottleReasons(nvmlDevice_t device, unsigned long long *supportedClocksThrottleReasons);\n\n/**\n * Deprecated: Use \\ref nvmlDeviceGetPerformanceState. This function exposes an incorrect generalization.\n *\n * Retrieve the current performance state for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlPstates_t for details on allowed performance states.\n *\n * @param device                               The identifier of the target device\n * @param pState                               Reference in which to return the performance state reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pState has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pState is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerState(nvmlDevice_t device, nvmlPstates_t *pState);\n\n/**\n * This API has been deprecated.\n *\n * Retrieves the power management mode associated with this device.\n *\n * For products from the Fermi family.\n *     - Requires \\a NVML_INFOROM_POWER version 3.0 or higher.\n *\n * For from the Kepler or newer families.\n *     - Does not require \\a NVML_INFOROM_POWER object.\n *\n * This flag indicates whether any power management algorithm is currently active on the device. An\n * enabled state does not necessarily mean the device is being actively throttled -- only that\n * that the driver will do so if the appropriate conditions are met.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current power management mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Retrieves the power management limit associated with this device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * The power limit defines the upper boundary for the card's power draw. If\n * the card's total power draw reaches this limit the power management algorithm kicks in.\n *\n * This reading is only available if power management mode is supported.\n * See \\ref nvmlDeviceGetPowerManagementMode.\n *\n * @param device                               The identifier of the target device\n * @param limit                                Reference in which to return the power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a limit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimit(nvmlDevice_t device, unsigned int *limit);\n\n/**\n * Retrieves information about possible values of power management limits on this device.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param minLimit                             Reference in which to return the minimum power management limit in milliwatts\n * @param maxLimit                             Reference in which to return the maximum power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a minLimit and \\a maxLimit have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minLimit or \\a maxLimit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetPowerManagementLimit\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimitConstraints(nvmlDevice_t device, unsigned int *minLimit, unsigned int *maxLimit);\n\n/**\n * Retrieves default power management limit on this device, in milliwatts.\n * Default power management limit is a power management limit that the device boots with.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param defaultLimit                         Reference in which to return the default power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a defaultLimit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a defaultLimit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementDefaultLimit(nvmlDevice_t device, unsigned int *defaultLimit);\n\n/**\n * Retrieves power usage for this GPU in milliwatts and its associated circuitry (e.g. memory)\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw.\n *\n * It is only available if power management mode is supported. See \\ref nvmlDeviceGetPowerManagementMode.\n *\n * @param device                               The identifier of the target device\n * @param power                                Reference in which to return the power usage information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a power has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a power is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support power readings\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerUsage(nvmlDevice_t device, unsigned int *power);\n\n/**\n * Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param energy                               Reference in which to return the energy consumption information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a energy has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a energy is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support energy readings\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTotalEnergyConsumption(nvmlDevice_t device, unsigned long long *energy);\n\n/**\n * Get the effective power limit that the driver enforces after taking into account all limiters\n *\n * Note: This can be different from the \\ref nvmlDeviceGetPowerManagementLimit if other limits are set elsewhere\n * This includes the out of band power limit interface\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                           The device to communicate with\n * @param limit                            Reference in which to return the power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a limit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEnforcedPowerLimit(nvmlDevice_t device, unsigned int *limit);\n\n/**\n * Retrieves the current GOM and pending GOM (the one that GPU will switch to after reboot).\n *\n * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.\n * Modes \\ref NVML_GOM_LOW_DP and \\ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.\n * Not supported on Quadro &reg; and Tesla &tm; C-class products.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current GOM\n * @param pending                              Reference in which to return the pending GOM\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a current or \\a pending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlGpuOperationMode_t\n * @see nvmlDeviceSetGpuOperationMode\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t *current, nvmlGpuOperationMode_t *pending);\n\n/**\n * Retrieves the amount of used, free, reserved and total memory available on the device, in bytes.\n * The reserved amount is supported on version 2 only.\n *\n * For all products.\n *\n * Enabling ECC reduces the amount of total available memory, due to the extra required parity bits.\n * Under WDDM most device memory is allocated and managed on startup by Windows.\n *\n * Under Linux and Windows TCC, the reported amount of used memory is equal to the sum of memory allocated\n * by all active channels on the device.\n *\n * See \\ref nvmlMemory_v2_t for details on available memory info.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate\n *       information, only if the caller has appropriate privileges. Per-instance\n *       information can be queried by using specific MIG device handles.\n *\n * @note nvmlDeviceGetMemoryInfo_v2 adds additional memory information.\n *\n * @param device                               The identifier of the target device\n * @param memory                               Reference in which to return the memory information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a memory has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a memory is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo(nvmlDevice_t device, nvmlMemory_t *memory);\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo_v2(nvmlDevice_t device, nvmlMemory_v2_t *memory);\n\n/**\n * Retrieves the current compute mode for the device.\n *\n * For all products.\n *\n * See \\ref nvmlComputeMode_t for details on allowed compute modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current compute mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetComputeMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeMode(nvmlDevice_t device, nvmlComputeMode_t *mode);\n\n/**\n * Retrieves the CUDA compute capability of the device.\n *\n * For all products.\n *\n * Returns the major and minor compute capability version numbers of the\n * device.  The major and minor versions are equivalent to the\n * CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR and\n * CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR attributes that would be\n * returned by CUDA's cuDeviceGetAttribute().\n *\n * @param device                               The identifier of the target device\n * @param major                                Reference in which to return the major CUDA compute capability\n * @param minor                                Reference in which to return the minor CUDA compute capability\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a major and \\a minor have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a major or \\a minor are NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCudaComputeCapability(nvmlDevice_t device, int *major, int *minor);\n\n/**\n * Retrieves the current and pending ECC modes for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n *\n * Changing ECC modes requires a reboot. The \"pending\" ECC mode refers to the target mode following\n * the next reboot.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current ECC mode\n * @param pending                              Reference in which to return the pending ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a current and \\a pending have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or either \\a current or \\a pending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetEccMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEccMode(nvmlDevice_t device, nvmlEnableState_t *current, nvmlEnableState_t *pending);\n\n/**\n * Retrieves the default ECC modes for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param defaultMode                          Reference in which to return the default ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a current and \\a pending have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a default is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetEccMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDefaultEccMode(nvmlDevice_t device, nvmlEnableState_t *defaultMode);\n\n/**\n * Retrieves the device boardId from 0-N.\n * Devices with the same boardId indicate GPUs connected to the same PLX.  Use in conjunction with\n *  \\ref nvmlDeviceGetMultiGpuBoard() to decide if they are on the same board as well.\n *  The boardId returned is a unique ID for the current configuration.  Uniqueness and ordering across\n *  reboots and system configurations is not guaranteed (i.e. if a Tesla K40c returns 0x100 and\n *  the two GPUs on a Tesla K10 in the same system returns 0x200 it is not guaranteed they will\n *  always return those values but they will always be different from each other).\n *\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param boardId                              Reference in which to return the device's board ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a boardId has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a boardId is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBoardId(nvmlDevice_t device, unsigned int *boardId);\n\n/**\n * Retrieves whether the device is on a Multi-GPU Board\n * Devices that are on multi-GPU boards will set \\a multiGpuBool to a non-zero value.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param multiGpuBool                         Reference in which to return a zero or non-zero value\n *                                                 to indicate whether the device is on a multi GPU board\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a multiGpuBool has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a multiGpuBool is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMultiGpuBoard(nvmlDevice_t device, unsigned int *multiGpuBool);\n\n/**\n * Retrieves the total ECC error counts for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n * Requires ECC Mode to be enabled.\n *\n * The total error count is the sum of errors across each of the separate memory systems, i.e. the total set of\n * errors across the entire device.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available error types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of the errors.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param eccCounts                            Reference in which to return the specified ECC errors\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a eccCounts has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a errorType or \\a counterType is invalid, or \\a eccCounts is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceClearEccErrorCounts()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTotalEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, unsigned long long *eccCounts);\n\n/**\n * Retrieves the detailed ECC error counts for the device.\n *\n * @deprecated   This API supports only a fixed set of ECC error locations\n *               On different GPU architectures different locations are supported\n *               See \\ref nvmlDeviceGetMemoryErrorCounter\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based ECC counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to report all other ECC counts.\n * Requires ECC Mode to be enabled.\n *\n * Detailed errors provide separate ECC counts for specific parts of the memory system.\n *\n * Reports zero for unsupported ECC error counters when a subset of ECC error counters are supported.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available bit types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\\n\n * See \\ref nvmlEccErrorCounts_t for a description of provided detailed ECC counts.\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of the errors.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param eccCounts                            Reference in which to return the specified ECC errors\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a eccCounts has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a errorType or \\a counterType is invalid, or \\a eccCounts is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceClearEccErrorCounts()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t *eccCounts);\n\n/**\n * Retrieves the requested memory error counter for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.\n *\n * Only applicable to devices with ECC.\n *\n * Requires ECC Mode to be enabled.\n *\n * @note On MIG-enabled GPUs, per instance information can be queried using specific\n *       MIG device handles. Per instance information is currently only supported for\n *       non-DRAM uncorrectable volatile errors. Querying volatile errors using device\n *       handles is currently not supported.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available memory error types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\\n\n * See \\ref nvmlMemoryLocation_t for a description of available counter locations.\\n\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of error.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param locationType                         Specifies the location of the counter.\n * @param count                                Reference in which to return the ECC counter\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a bitTyp,e \\a counterType or \\a locationType is\n *                                             invalid, or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support ECC error reporting in the specified memory\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryErrorCounter(nvmlDevice_t device, nvmlMemoryErrorType_t errorType,\n                                                   nvmlEccCounterType_t counterType,\n                                                   nvmlMemoryLocation_t locationType, unsigned long long *count);\n\n/**\n * Retrieves the current utilization rates for the device's major subsystems.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlUtilization_t for details on available utilization rates.\n *\n * \\note During driver initialization when ECC is enabled one can see high GPU and Memory Utilization readings.\n *       This is caused by ECC Memory Scrubbing mechanism that is performed during driver initialization.\n *\n * @note On MIG-enabled GPUs, querying device utilization rates is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference in which to return the utilization information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a utilization is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetUtilizationRates(nvmlDevice_t device, nvmlUtilization_t *utilization);\n\n/**\n * Retrieves the current utilization and sampling size in microseconds for the Encoder\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @note On MIG-enabled GPUs, querying encoder utilization is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference to an unsigned int for encoder utilization info\n * @param samplingPeriodUs                     Reference to an unsigned int for the sampling period in US\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);\n\n/**\n * Retrieves the current capacity of the device's encoder, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param encoderQueryType                  Type of encoder to query\n * @param encoderCapacity                   Reference to an unsigned int for the encoder capacity\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a encoderCapacity is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a encoderCapacity is NULL, or \\a device or \\a encoderQueryType\n *                                              are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if device does not support the encoder specified in \\a encodeQueryType\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderCapacity (nvmlDevice_t device, nvmlEncoderType_t encoderQueryType, unsigned int *encoderCapacity);\n\n/**\n * Retrieves the current encoder statistics for a given device.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param sessionCount                      Reference to an unsigned int for count of active encoder sessions\n * @param averageFps                        Reference to an unsigned int for trailing average FPS of all active sessions\n * @param averageLatency                    Reference to an unsigned int for encode latency in microseconds\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionCount, \\a averageFps and \\a averageLatency is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount, or \\a device or \\a averageFps,\n *                                              or \\a averageLatency is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderStats (nvmlDevice_t device, unsigned int *sessionCount,\n                                                unsigned int *averageFps, unsigned int *averageLatency);\n\n/**\n * Retrieves information about active encoder sessions on a target device.\n *\n * An array of active encoder sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfos. The\n * array elememt count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the active session array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \\a sessionCount.\n * To query the number of active encoder sessions, call this function with *sessionCount = 0.  The code will return\n * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n * @param sessionInfos                      Reference in which to return the session information\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionInfos is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL.\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if this query is not supported by \\a device\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfos);\n\n/**\n * Retrieves the current utilization and sampling size in microseconds for the Decoder\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @note On MIG-enabled GPUs, querying decoder utilization is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference to an unsigned int for decoder utilization info\n * @param samplingPeriodUs                     Reference to an unsigned int for the sampling period in US\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDecoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);\n\n/**\n* Retrieves the active frame buffer capture sessions statistics for a given device.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @param device                            The identifier of the target device\n* @param fbcStats                          Reference to nvmlFBCStats_t structure contianing NvFBC stats\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a fbcStats is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a fbcStats is NULL\n*         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetFBCStats(nvmlDevice_t device, nvmlFBCStats_t *fbcStats);\n\n/**\n* Retrieves information about active frame buffer capture sessions on a target device.\n*\n* An array of active FBC sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n* array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n* written to the buffer.\n*\n* If the supplied buffer is not large enough to accomodate the active session array, the function returns\n* NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \\a sessionCount.\n* To query the number of active FBC sessions, call this function with *sessionCount = 0.  The code will return\n* NVML_SUCCESS with number of active FBC sessions updated in *sessionCount.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @note hResolution, vResolution, averageFPS and averageLatency data for a FBC session returned in \\a sessionInfo may\n*       be zero if there are no new frames captured since the session started.\n*\n* @param device                            The identifier of the target device\n* @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n* @param sessionInfo                       Reference in which to return the session information\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL.\n*         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetFBCSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);\n\n/**\n * Retrieves the current and pending driver model for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * For windows only.\n *\n * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached\n * to the device it must run in WDDM mode. TCC mode is preferred if a display is not attached.\n *\n * See \\ref nvmlDriverModel_t for details on available driver models.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current driver model\n * @param pending                              Reference in which to return the pending driver model\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if either \\a current and/or \\a pending have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or both \\a current and \\a pending are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform is not windows\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetDriverModel()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDriverModel(nvmlDevice_t device, nvmlDriverModel_t *current, nvmlDriverModel_t *pending);\n\n/**\n * Get VBIOS version of the device.\n *\n * For all products.\n *\n * The VBIOS version may change from time to time. It will not exceed 32 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param version                              Reference to which to return the VBIOS version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVbiosVersion(nvmlDevice_t device, char *version, unsigned int length);\n\n/**\n * Get Bridge Chip Information for all the bridge chips on the board.\n *\n * For all fully supported products.\n * Only applicable to multi-GPU products.\n *\n * @param device                                The identifier of the target device\n * @param bridgeHierarchy                       Reference to the returned bridge chip Hierarchy\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if bridge chip exists\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a bridgeInfo is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if bridge chip not supported on the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBridgeChipInfo(nvmlDevice_t device, nvmlBridgeChipHierarchy_t *bridgeHierarchy);\n\n/**\n * Get information about processes with a compute context on a device\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * This function returns information only about compute running processes (e.g. CUDA application which have\n * active context). Any graphics applications (e.g. using OpenGL, DirectX) won't be listed by this function.\n *\n * To query the current number of running compute processes, call this function with *infoCount = 0. The\n * return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call\n * \\a infos is allowed to be NULL.\n *\n * The usedGpuMemory field returned is all of the memory used by the application.\n *\n * Keep in mind that information returned by this call is dynamic and the number of elements might change in\n * time. Allocate more space for \\a infos table in case new compute processes are spawned.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate information, only if\n *       the caller has appropriate privileges. Per-instance information can be queried by using\n *       specific MIG device handles.\n *       Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.\n *\n * @param device                               The device handle or MIG device handle\n * @param infoCount                            Reference in which to provide the \\a infos array size, and\n *                                             to return the number of returned elements\n * @param infos                                Reference in which to return the process information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a infoCount and \\a infos have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a infoCount indicates that the \\a infos array is too small\n *                                             \\a infoCount will contain minimal amount of space necessary for\n *                                             the call to complete\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, either of \\a infoCount or \\a infos is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by \\a device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see \\ref nvmlSystemGetProcessName\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses_v3(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);\n\n/**\n * Get information about processes with a graphics context on a device\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * This function returns information only about graphics based processes\n * (eg. applications using OpenGL, DirectX)\n *\n * To query the current number of running graphics processes, call this function with *infoCount = 0. The\n * return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call\n * \\a infos is allowed to be NULL.\n *\n * The usedGpuMemory field returned is all of the memory used by the application.\n *\n * Keep in mind that information returned by this call is dynamic and the number of elements might change in\n * time. Allocate more space for \\a infos table in case new graphics processes are spawned.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate information, only if\n *       the caller has appropriate privileges. Per-instance information can be queried by using\n *       specific MIG device handles.\n *       Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.\n *\n * @param device                               The device handle or MIG device handle\n * @param infoCount                            Reference in which to provide the \\a infos array size, and\n *                                             to return the number of returned elements\n * @param infos                                Reference in which to return the process information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a infoCount and \\a infos have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a infoCount indicates that the \\a infos array is too small\n *                                             \\a infoCount will contain minimal amount of space necessary for\n *                                             the call to complete\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, either of \\a infoCount or \\a infos is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by \\a device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see \\ref nvmlSystemGetProcessName\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGraphicsRunningProcesses_v3(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);\n\n/**\n * Get information about processes with a MPS compute context on a device\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * This function returns information only about compute running processes (e.g. CUDA application which have\n * active context) utilizing MPS. Any graphics applications (e.g. using OpenGL, DirectX) won't be listed by\n * this function.\n *\n * To query the current number of running compute processes, call this function with *infoCount = 0. The\n * return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call\n * \\a infos is allowed to be NULL.\n *\n * The usedGpuMemory field returned is all of the memory used by the application.\n *\n * Keep in mind that information returned by this call is dynamic and the number of elements might change in\n * time. Allocate more space for \\a infos table in case new compute processes are spawned.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate information, only if\n *       the caller has appropriate privileges. Per-instance information can be queried by using\n *       specific MIG device handles.\n *       Querying per-instance information using MIG device handles is not supported if the device is in vGPU Host virtualization mode.\n *\n * @param device                               The device handle or MIG device handle\n * @param infoCount                            Reference in which to provide the \\a infos array size, and\n *                                             to return the number of returned elements\n * @param infos                                Reference in which to return the process information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a infoCount and \\a infos have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a infoCount indicates that the \\a infos array is too small\n *                                             \\a infoCount will contain minimal amount of space necessary for\n *                                             the call to complete\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, either of \\a infoCount or \\a infos is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by \\a device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see \\ref nvmlSystemGetProcessName\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMPSComputeRunningProcesses_v3(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);\n\n/**\n * Check if the GPU devices are on the same physical board.\n *\n * For all fully supported products.\n *\n * @param device1                               The first GPU device\n * @param device2                               The second GPU device\n * @param onSameBoard                           Reference in which to return the status.\n *                                              Non-zero indicates that the GPUs are on the same board.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a onSameBoard has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a dev1 or \\a dev2 are invalid or \\a onSameBoard is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this check is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the either GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceOnSameBoard(nvmlDevice_t device1, nvmlDevice_t device2, int *onSameBoard);\n\n/**\n * Retrieves the root/admin permissions on the target API. See \\a nvmlRestrictedAPI_t for the list of supported APIs.\n * If an API is restricted only root users can call that API. See \\a nvmlDeviceSetAPIRestriction to change current permissions.\n *\n * For all fully supported products.\n *\n * @param device                               The identifier of the target device\n * @param apiType                              Target API type for this operation\n * @param isRestricted                         Reference in which to return the current restriction\n *                                             NVML_FEATURE_ENABLED indicates that the API is root-only\n *                                             NVML_FEATURE_DISABLED indicates that the API is accessible to all users\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isRestricted has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a apiType incorrect or \\a isRestricted is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device or the device does not support\n *                                                 the feature that is being queried (E.G. Enabling/disabling Auto Boosted clocks is\n *                                                 not supported by the device)\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlRestrictedAPI_t\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t *isRestricted);\n\n/**\n * Gets recent samples for the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Based on type, this method can be used to fetch the power, utilization or clock samples maintained in the buffer by\n * the driver.\n *\n * Power, Utilization and Clock samples are returned as type \"unsigned int\" for the union nvmlValue_t.\n *\n * To get the size of samples that user needs to allocate, the method is invoked with samples set to NULL.\n * The returned samplesCount will provide the number of samples that can be queried. The user needs to\n * allocate the buffer with size as samplesCount * sizeof(nvmlSample_t).\n *\n * lastSeenTimeStamp represents CPU timestamp in microseconds. Set it to 0 to fetch all the samples maintained by the\n * underlying buffer. Set lastSeenTimeStamp to one of the timeStamps retrieved from the date of the previous query\n * to get more recent samples.\n *\n * This method fetches the number of entries which can be accommodated in the provided samples array, and the\n * reference samplesCount is updated to indicate how many samples were actually retrieved. The advantage of using this\n * method for samples in contrast to polling via existing methods is to get get higher frequency data at lower polling cost.\n *\n * @note On MIG-enabled GPUs, querying the following sample types, NVML_GPU_UTILIZATION_SAMPLES, NVML_MEMORY_UTILIZATION_SAMPLES\n *       NVML_ENC_UTILIZATION_SAMPLES and NVML_DEC_UTILIZATION_SAMPLES, is not currently supported.\n *\n * @param device                        The identifier for the target device\n * @param type                          Type of sampling event\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param sampleValType                 Output parameter to represent the type of sample value as described in nvmlSampleVal_t\n * @param sampleCount                   Reference to provide the number of elements which can be queried in samples array\n * @param samples                       Reference in which samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a samplesCount is NULL or\n *                                             reference to \\a sampleCount is 0 for non null \\a samples\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSamples(nvmlDevice_t device, nvmlSamplingType_t type, unsigned long long lastSeenTimeStamp,\n        nvmlValueType_t *sampleValType, unsigned int *sampleCount, nvmlSample_t *samples);\n\n/**\n * Gets Total, Available and Used size of BAR1 memory.\n *\n * BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or by 3rd party\n * devices (peer-to-peer on the PCIE bus).\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate\n *       information, only if the caller has appropriate privileges. Per-instance\n *       information can be queried by using specific MIG device handles.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param bar1Memory                           Reference in which BAR1 memory\n *                                             information is returned.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if BAR1 memory is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a bar1Memory is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBAR1MemoryInfo(nvmlDevice_t device, nvmlBAR1Memory_t *bar1Memory);\n\n/**\n * Gets the duration of time during which the device was throttled (lower than requested clocks) due to power\n * or thermal constraints.\n *\n * The method is important to users who are tying to understand if their GPUs throttle at any point during their applications. The\n * difference in violation times at two different reference times gives the indication of GPU throttling event.\n *\n * Violation for thermal capping is not supported at this time.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param perfPolicyType                       Represents Performance policy which can trigger GPU throttling\n * @param violTime                             Reference to which violation time related information is returned\n *\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if violation time is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a perfPolicyType is invalid, or \\a violTime is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetViolationStatus(nvmlDevice_t device, nvmlPerfPolicyType_t perfPolicyType, nvmlViolationTime_t *violTime);\n\n/**\n * Gets the device's interrupt number\n *\n * @param device                               The identifier of the target device\n * @param irqNum                               The interrupt number associated with the specified device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if irq number is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a irqNum is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetIrqNum(nvmlDevice_t device, unsigned int *irqNum);\n\n/**\n * Gets the device's core count\n *\n * @param device                               The identifier of the target device\n * @param numCores                             The number of cores for the specified device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if Gpu core count is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a numCores is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNumGpuCores(nvmlDevice_t device, unsigned int *numCores);\n\n/**\n * Gets the devices power source\n *\n * @param device                               The identifier of the target device\n * @param powerSource                          The power source of the device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the current power source was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a powerSource is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerSource(nvmlDevice_t device, nvmlPowerSource_t *powerSource);\n\n/**\n * Gets the device's memory bus width\n *\n * @param device                               The identifier of the target device\n * @param busWidth                             The devices's memory bus width\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the memory bus width is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a busWidth is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryBusWidth(nvmlDevice_t device, unsigned int *busWidth);\n\n/**\n * Gets the device's PCIE Max Link speed in MBPS\n *\n * @param device                               The identifier of the target device\n * @param maxSpeed                             The devices's PCIE Max Link speed in MBPS\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if Pcie Max Link Speed is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a maxSpeed is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieLinkMaxSpeed(nvmlDevice_t device, unsigned int *maxSpeed);\n\n/**\n * Gets the device's PCIe Link speed in Mbps\n *\n * @param device                               The identifier of the target device\n * @param pcieSpeed                            The devices's PCIe Max Link speed in Mbps\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pcieSpeed has been retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pcieSpeed is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support PCIe speed getting\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieSpeed(nvmlDevice_t device, unsigned int *pcieSpeed);\n\n/**\n * Gets the device's Adaptive Clock status\n *\n * @param device                               The identifier of the target device\n * @param adaptiveClockStatus                  The current adaptive clocking status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the current adaptive clocking status is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a adaptiveClockStatus is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAdaptiveClockInfoStatus(nvmlDevice_t device, unsigned int *adaptiveClockStatus);\n\n/**\n * @}\n */\n\n/** @addtogroup nvmlAccountingStats\n *  @{\n */\n\n/**\n * Queries the state of per process accounting mode.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * See \\ref nvmlDeviceGetAccountingStats for more details.\n * See \\ref nvmlDeviceSetAccountingMode\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Queries process's accounting stats.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Accounting stats capture GPU utilization and other statistics across the lifetime of a process.\n * Accounting stats can be queried during life time of the process and after its termination.\n * The time field in \\ref nvmlAccountingStats_t is reported as 0 during the lifetime of the process and\n * updated to actual running time after its termination.\n * Accounting stats are kept in a circular buffer, newly created processes overwrite information about old\n * processes.\n *\n * See \\ref nvmlAccountingStats_t for description of each returned metric.\n * List of processes that can be queried can be retrieved from \\ref nvmlDeviceGetAccountingPids.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlDeviceGetAccountingMode.\n * @note Only compute and graphics applications stats can be queried. Monitoring applications stats can't be\n *         queried since they don't contribute to GPU utilization.\n * @note In case of pid collision stats of only the latest process (that terminated last) will be reported\n *\n * @warning On Kepler devices per process statistics are accurate only if there's one process running on a GPU.\n *\n * @param device                               The identifier of the target device\n * @param pid                                  Process Id of the target process to query stats for\n * @param stats                                Reference in which to return the process's accounting stats\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if stats have been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a stats are NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if process stats were not found\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if \\a device doesn't support this feature or accounting mode is disabled\n *                                              or on vGPU host.\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingBufferSize\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingStats(nvmlDevice_t device, unsigned int pid, nvmlAccountingStats_t *stats);\n\n/**\n * Queries list of processes that can be queried for accounting stats. The list of processes returned\n * can be in running or terminated state.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * To just query the number of processes ready to be queried, call this function with *count = 0 and\n * pids=NULL. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if list is empty.\n *\n * For more details see \\ref nvmlDeviceGetAccountingStats.\n *\n * @note In case of PID collision some processes might not be accessible before the circular buffer is full.\n *\n * @param device                               The identifier of the target device\n * @param count                                Reference in which to provide the \\a pids array size, and\n *                                               to return the number of elements ready to be queried\n * @param pids                                 Reference in which to return list of process ids\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if pids were successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if \\a device doesn't support this feature or accounting mode is disabled\n *                                              or on vGPU host.\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to\n *                                                 expected value)\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingBufferSize\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingPids(nvmlDevice_t device, unsigned int *count, unsigned int *pids);\n\n/**\n * Returns the number of processes that the circular buffer with accounting pids can hold.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * This is the maximum number of processes that accounting information will be stored for before information\n * about oldest processes will get overwritten by information about new processes.\n *\n * @param device                               The identifier of the target device\n * @param bufferSize                           Reference in which to provide the size (in number of elements)\n *                                               of the circular buffer for accounting stats.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if buffer size was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a bufferSize is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingStats\n * @see nvmlDeviceGetAccountingPids\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingBufferSize(nvmlDevice_t device, unsigned int *bufferSize);\n\n/** @} */\n\n/** @addtogroup nvmlDeviceQueries\n *  @{\n */\n\n/**\n * Returns the list of retired pages by source, including pages that are pending retirement\n * The address information provided from this API is the hardware address of the page that was retired.  Note\n * that this does not match the virtual address used in CUDA, but will match the address information in XID 63\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param cause                             Filter page addresses by cause of retirement\n * @param pageCount                         Reference in which to provide the \\a addresses buffer size, and\n *                                          to return the number of retired pages that match \\a cause\n *                                          Set to 0 to query the size without allocating an \\a addresses buffer\n * @param addresses                         Buffer to write the page addresses into\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pageCount was populated and \\a addresses was filled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a pageCount indicates the buffer is not large enough to store all the\n *                                             matching page addresses.  \\a pageCount is set to the needed size.\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a pageCount is NULL, \\a cause is invalid, or\n *                                             \\a addresses is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages(nvmlDevice_t device, nvmlPageRetirementCause_t cause,\n    unsigned int *pageCount, unsigned long long *addresses);\n\n/**\n * Returns the list of retired pages by source, including pages that are pending retirement\n * The address information provided from this API is the hardware address of the page that was retired.  Note\n * that this does not match the virtual address used in CUDA, but will match the address information in XID 63\n *\n * \\note nvmlDeviceGetRetiredPages_v2 adds an additional timestamps paramter to return the time of each page's\n *       retirement.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param cause                             Filter page addresses by cause of retirement\n * @param pageCount                         Reference in which to provide the \\a addresses buffer size, and\n *                                          to return the number of retired pages that match \\a cause\n *                                          Set to 0 to query the size without allocating an \\a addresses buffer\n * @param addresses                         Buffer to write the page addresses into\n * @param timestamps                        Buffer to write the timestamps of page retirement, additional for _v2\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pageCount was populated and \\a addresses was filled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a pageCount indicates the buffer is not large enough to store all the\n *                                             matching page addresses.  \\a pageCount is set to the needed size.\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a pageCount is NULL, \\a cause is invalid, or\n *                                             \\a addresses is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages_v2(nvmlDevice_t device, nvmlPageRetirementCause_t cause,\n    unsigned int *pageCount, unsigned long long *addresses, unsigned long long *timestamps);\n\n/**\n * Check if any pages are pending retirement and need a reboot to fully retire.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param isPending                         Reference in which to return the pending status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isPending was populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isPending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPagesPendingStatus(nvmlDevice_t device, nvmlEnableState_t *isPending);\n\n/**\n * Get number of remapped rows. The number of rows reported will be based on\n * the cause of the remapping. isPending indicates whether or not there are\n * pending remappings. A reset will be required to actually remap the row.\n * failureOccurred will be set if a row remapping ever failed in the past. A\n * pending remapping won't affect future work on the GPU since\n * error-containment and dynamic page blacklisting will take care of that.\n *\n * @note On MIG-enabled GPUs with active instances, querying the number of\n * remapped rows is not supported\n *\n * For Ampere &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param corrRows                             Reference for number of rows remapped due to correctable errors\n * @param uncRows                              Reference for number of rows remapped due to uncorrectable errors\n * @param isPending                            Reference for whether or not remappings are pending\n * @param failureOccurred                      Reference that is set when a remapping has failed in the past\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a corrRows, \\a uncRows, \\a isPending or \\a failureOccurred is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If MIG is enabled or if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           Unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRemappedRows(nvmlDevice_t device, unsigned int *corrRows, unsigned int *uncRows,\n                                               unsigned int *isPending, unsigned int *failureOccurred);\n\n/**\n * Get the row remapper histogram. Returns the remap availability for each bank\n * on the GPU.\n *\n * @param device                               Device handle\n * @param values                               Histogram values\n *\n * @return\n *        - \\ref NVML_SUCCESS                  On success\n *        - \\ref NVML_ERROR_UNKNOWN            On any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRowRemapperHistogram(nvmlDevice_t device, nvmlRowRemapperHistogramValues_t *values);\n\n/**\n * Get architecture for device\n *\n * @param device                               The identifier of the target device\n * @param arch                                 Reference where architecture is returned, if call successful.\n *                                             Set to NVML_DEVICE_ARCH_* upon success\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device or \\a arch (output refererence) are invalid\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetArchitecture(nvmlDevice_t device, nvmlDeviceArchitecture_t *arch);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitCommands Unit Commands\n *  This chapter describes NVML operations that change the state of the unit. For S-class products.\n *  Each of these requires root/admin access. Non-admin users will see an NVML_ERROR_NO_PERMISSION\n *  error code when invoking any of these methods.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Set the LED state for the unit. The LED can be either green (0) or amber (1).\n *\n * For S-class products.\n * Requires root/admin permissions.\n *\n * This operation takes effect immediately.\n *\n *\n * <b>Current S-Class products don't provide unique LEDs for each unit. As such, both front\n * and back LEDs will be toggled in unison regardless of which unit is specified with this command.</b>\n *\n * See \\ref nvmlLedColor_t for available colors.\n *\n * @param unit                                 The identifier of the target unit\n * @param color                                The target LED color\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the LED color has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit or \\a color is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlUnitGetLedState()\n */\nnvmlReturn_t DECLDIR nvmlUnitSetLedState(nvmlUnit_t unit, nvmlLedColor_t color);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceCommands Device Commands\n *  This chapter describes NVML operations that change the state of the device.\n *  Each of these requires root/admin access. Non-admin users will see an NVML_ERROR_NO_PERMISSION\n *  error code when invoking any of these methods.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Set the persistence mode for the device.\n *\n * For all products.\n * For Linux only.\n * Requires root/admin permissions.\n *\n * The persistence mode determines whether the GPU driver software is torn down after the last client\n * exits.\n *\n * This operation takes effect immediately. It is not persistent across reboots. After each reboot the\n * persistence mode is reset to \"Disabled\".\n *\n * See \\ref nvmlEnableState_t for available modes.\n *\n * After calling this API with mode set to NVML_FEATURE_DISABLED on a device that has its own NUMA\n * memory, the given device handle will no longer be valid, and to continue to interact with this\n * device, a new handle should be obtained from one of the nvmlDeviceGetHandleBy*() APIs. This\n * limitation is currently only applicable to devices that have a coherent NVLink connection to\n * system memory.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target persistence mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the persistence mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetPersistenceMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t mode);\n\n/**\n * Set the compute mode for the device.\n *\n * For all products.\n * Requires root/admin permissions.\n *\n * The compute mode determines whether a GPU can be used for compute operations and whether it can\n * be shared across contexts.\n *\n * This operation takes effect immediately. Under Linux it is not persistent across reboots and\n * always resets to \"Default\". Under windows it is persistent.\n *\n * Under windows compute mode may only be set to DEFAULT when running in WDDM\n *\n * @note On MIG-enabled GPUs, compute mode would be set to DEFAULT and changing it is not supported.\n *\n * See \\ref nvmlComputeMode_t for details on available compute modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target compute mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the compute mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetComputeMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetComputeMode(nvmlDevice_t device, nvmlComputeMode_t mode);\n\n/**\n * Set the ECC mode for the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n * Requires root/admin permissions.\n *\n * The ECC mode determines whether the GPU enables its ECC support.\n *\n * This operation takes effect after the next reboot.\n *\n * See \\ref nvmlEnableState_t for details on available modes.\n *\n * @param device                               The identifier of the target device\n * @param ecc                                  The target ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the ECC mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a ecc is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetEccMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetEccMode(nvmlDevice_t device, nvmlEnableState_t ecc);\n\n/**\n * Clear the ECC error and other memory error counts for the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to clear aggregate location-based ECC counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to clear all other ECC counts.\n * Requires root/admin permissions.\n * Requires ECC Mode to be enabled.\n *\n * Sets all of the specified ECC counters to 0, including both detailed and total counts.\n *\n * This operation takes effect immediately.\n *\n * See \\ref nvmlMemoryErrorType_t for details on available counter types.\n *\n * @param device                               The identifier of the target device\n * @param counterType                          Flag that indicates which type of errors should be cleared.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the error counts were cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a counterType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see\n *      - nvmlDeviceGetDetailedEccErrors()\n *      - nvmlDeviceGetTotalEccErrors()\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts(nvmlDevice_t device, nvmlEccCounterType_t counterType);\n\n/**\n * Set the driver model for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * For windows only.\n * Requires root/admin permissions.\n *\n * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached\n * to the device it must run in WDDM mode.\n *\n * It is possible to force the change to WDM (TCC) while the display is still attached with a force flag (nvmlFlagForce).\n * This should only be done if the host is subsequently powered down and the display is detached from the device\n * before the next reboot.\n *\n * This operation takes effect after the next reboot.\n *\n * Windows driver model may only be set to WDDM when running in DEFAULT compute mode.\n *\n * Change driver model to WDDM is not supported when GPU doesn't support graphics acceleration or\n * will not support it after reboot. See \\ref nvmlDeviceSetGpuOperationMode.\n *\n * See \\ref nvmlDriverModel_t for details on available driver models.\n * See \\ref nvmlFlagDefault and \\ref nvmlFlagForce\n *\n * @param device                               The identifier of the target device\n * @param driverModel                          The target driver model\n * @param flags                                Flags that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the driver model has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a driverModel is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform is not windows or the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetDriverModel()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetDriverModel(nvmlDevice_t device, nvmlDriverModel_t driverModel, unsigned int flags);\n\ntypedef enum nvmlClockLimitId_enum {\n    NVML_CLOCK_LIMIT_ID_RANGE_START = 0xffffff00,\n    NVML_CLOCK_LIMIT_ID_TDP,\n    NVML_CLOCK_LIMIT_ID_UNLIMITED\n} nvmlClockLimitId_t;\n\n/**\n * Set clocks that device will lock to.\n *\n * Sets the clocks that the device will be running at to the value in the range of minGpuClockMHz to maxGpuClockMHz.\n * Setting this will supercede application clock values and take effect regardless if a cuda app is running.\n * See /ref nvmlDeviceSetApplicationsClocks\n *\n * Can be used as a setting to request constant performance.\n *\n * This can be called with a pair of integer clock frequencies in MHz, or a pair of /ref nvmlClockLimitId_t values.\n * See the table below for valid combinations of these values.\n *\n * minGpuClock | maxGpuClock | Effect\n * ------------+-------------+--------------------------------------------------\n *     tdp     |     tdp     | Lock clock to TDP\n *  unlimited  |     tdp     | Upper bound is TDP but clock may drift below this\n *     tdp     |  unlimited  | Lower bound is TDP but clock may boost above this\n *  unlimited  |  unlimited  | Unlocked (== nvmlDeviceResetGpuLockedClocks)\n *\n * If one arg takes one of these values, the other must be one of these values as\n * well. Mixed numeric and symbolic calls return NVML_ERROR_INVALID_ARGUMENT.\n *\n * Requires root/admin permissions.\n *\n * After system reboot or driver reload applications clocks go back to their default value.\n * See \\ref nvmlDeviceResetGpuLockedClocks.\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param minGpuClockMHz                       Requested minimum gpu clock in MHz\n * @param maxGpuClockMHz                       Requested maximum gpu clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minGpuClockMHz and \\a maxGpuClockMHz\n *                                                 is not a valid clock combination\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetGpuLockedClocks(nvmlDevice_t device, unsigned int minGpuClockMHz, unsigned int maxGpuClockMHz);\n\n/**\n * Resets the gpu clock to the default value\n *\n * This is the gpu clock that will be used after system reboot or driver reload.\n * Default values are idle clocks, but the current values can be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * @see nvmlDeviceSetGpuLockedClocks\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetGpuLockedClocks(nvmlDevice_t device);\n\n/**\n * Set memory clocks that device will lock to.\n *\n * Sets the device's memory clocks to the value in the range of minMemClockMHz to maxMemClockMHz.\n * Setting this will supersede application clock values and take effect regardless of whether a cuda app is running.\n * See /ref nvmlDeviceSetApplicationsClocks\n *\n * Can be used as a setting to request constant performance.\n *\n * Requires root/admin permissions.\n *\n * After system reboot or driver reload applications clocks go back to their default value.\n * See \\ref nvmlDeviceResetMemoryLockedClocks.\n *\n * For Ampere &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param minMemClockMHz                       Requested minimum memory clock in MHz\n * @param maxMemClockMHz                       Requested maximum memory clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minGpuClockMHz and \\a maxGpuClockMHz\n *                                                 is not a valid clock combination\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetMemoryLockedClocks(nvmlDevice_t device, unsigned int minMemClockMHz, unsigned int maxMemClockMHz);\n\n/**\n * Resets the memory clock to the default value\n *\n * This is the memory clock that will be used after system reboot or driver reload.\n * Default values are idle clocks, but the current values can be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * @see nvmlDeviceSetMemoryLockedClocks\n *\n * For Ampere &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetMemoryLockedClocks(nvmlDevice_t device);\n\n/**\n * Set clocks that applications will lock to.\n *\n * Sets the clocks that compute and graphics applications will be running at.\n * e.g. CUDA driver requests these clocks during context creation which means this property\n * defines clocks at which CUDA applications will be running unless some overspec event\n * occurs (e.g. over power, over thermal or external HW brake).\n *\n * Can be used as a setting to request constant performance.\n *\n * On Pascal and newer hardware, this will automatically disable automatic boosting of clocks.\n *\n * On K80 and newer Kepler and Maxwell GPUs, users desiring fixed performance should also call\n * \\ref nvmlDeviceSetAutoBoostedClocksEnabled to prevent clocks from automatically boosting\n * above the clock value being set.\n *\n * For Kepler &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetSupportedMemoryClocks and \\ref nvmlDeviceGetSupportedGraphicsClocks\n * for details on how to list available clocks combinations.\n *\n * After system reboot or driver reload applications clocks go back to their default value.\n * See \\ref nvmlDeviceResetApplicationsClocks.\n *\n * @param device                               The identifier of the target device\n * @param memClockMHz                          Requested memory clock in MHz\n * @param graphicsClockMHz                     Requested graphics clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a memClockMHz and \\a graphicsClockMHz\n *                                                 is not a valid clock combination\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetApplicationsClocks(nvmlDevice_t device, unsigned int memClockMHz, unsigned int graphicsClockMHz);\n\n/**\n * Retrieves the frequency monitor fault status for the device.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Requires root user.\n *\n * See \\ref nvmlClkMonStatus_t for details on decoding the status output.\n *\n * @param device                               The identifier of the target device\n * @param status                               Reference in which to return the clkmon fault status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a status has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a status is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetClkMonStatus()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetClkMonStatus(nvmlDevice_t device, nvmlClkMonStatus_t *status);\n\n/**\n * Set new power limit of this device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetPowerManagementLimitConstraints to check the allowed ranges of values.\n *\n * \\note Limit is not persistent across reboots or driver unloads.\n * Enable persistent mode to prevent driver from unloading when no application is using the device.\n *\n * @param device                               The identifier of the target device\n * @param limit                                Power management limit in milliwatts to set\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a defaultLimit is out of range\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetPowerManagementLimitConstraints\n * @see nvmlDeviceGetPowerManagementDefaultLimit\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetPowerManagementLimit(nvmlDevice_t device, unsigned int limit);\n\n/**\n * Sets new GOM. See \\a nvmlGpuOperationMode_t for details.\n *\n * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.\n * Modes \\ref NVML_GOM_LOW_DP and \\ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.\n * Not supported on Quadro &reg; and Tesla &tm; C-class products.\n * Requires root/admin permissions.\n *\n * Changing GOMs requires a reboot.\n * The reboot requirement might be removed in the future.\n *\n * Compute only GOMs don't support graphics acceleration. Under windows switching to these GOMs when\n * pending driver model is WDDM is not supported. See \\ref nvmlDeviceSetDriverModel.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Target GOM\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode incorrect\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support GOM or specific mode\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlGpuOperationMode_t\n * @see nvmlDeviceGetGpuOperationMode\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t mode);\n\n/**\n * Changes the root/admin restructions on certain APIs. See \\a nvmlRestrictedAPI_t for the list of supported APIs.\n * This method can be used by a root/admin user to give non-root/admin access to certain otherwise-restricted APIs.\n * The new setting lasts for the lifetime of the NVIDIA driver; it is not persistent. See \\a nvmlDeviceGetAPIRestriction\n * to query the current restriction settings.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @param device                               The identifier of the target device\n * @param apiType                              Target API type for this operation\n * @param isRestricted                         The target restriction\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isRestricted has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a apiType incorrect\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support changing API restrictions or the device does not support\n *                                                 the feature that api restrictions are being set for (E.G. Enabling/disabling auto\n *                                                 boosted clocks is not supported by the device)\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlRestrictedAPI_t\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted);\n\n/**\n * @}\n */\n\n/** @addtogroup nvmlAccountingStats\n *  @{\n */\n\n/**\n * Enables or disables per process accounting.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @note This setting is not persistent and will default to disabled after driver unloads.\n *       Enable persistence mode to be sure the setting doesn't switch off to disabled.\n *\n * @note Enabling accounting mode has no negative impact on the GPU performance.\n *\n * @note Disabling accounting clears all accounting pids information.\n *\n * @note On MIG-enabled GPUs, accounting mode would be set to DISABLED and changing it is not supported.\n *\n * See \\ref nvmlDeviceGetAccountingMode\n * See \\ref nvmlDeviceGetAccountingStats\n * See \\ref nvmlDeviceClearAccountingPids\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the new mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a mode are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAccountingMode(nvmlDevice_t device, nvmlEnableState_t mode);\n\n/**\n * Clears accounting information about all processes that have already terminated.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetAccountingMode\n * See \\ref nvmlDeviceGetAccountingStats\n * See \\ref nvmlDeviceSetAccountingMode\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if accounting information has been cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearAccountingPids(nvmlDevice_t device);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup NvLink NvLink Methods\n * This chapter describes methods that NVML can perform on NVLINK enabled devices.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves the state of the device's NvLink for the link specified\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param isActive                             \\a nvmlEnableState_t where NVML_FEATURE_ENABLED indicates that\n *                                             the link is active and NVML_FEATURE_DISABLED indicates it\n *                                             is inactive\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isActive has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a isActive is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkState(nvmlDevice_t device, unsigned int link, nvmlEnableState_t *isActive);\n\n/**\n * Retrieves the version of the device's NvLink for the link specified\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param version                              Requested NvLink version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a version is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkVersion(nvmlDevice_t device, unsigned int link, unsigned int *version);\n\n/**\n * Retrieves the requested capability from the device's NvLink for the link specified\n * Please refer to the \\a nvmlNvLinkCapability_t structure for the specific caps that can be queried\n * The return value should be treated as a boolean.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param capability                           Specifies the \\a nvmlNvLinkCapability_t to be queried\n * @param capResult                            A boolean for the queried capability indicating that feature is available\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a capResult has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a capability is invalid or \\a capResult is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkCapability(nvmlDevice_t device, unsigned int link,\n                                                   nvmlNvLinkCapability_t capability, unsigned int *capResult);\n\n/**\n * Retrieves the PCI information for the remote node on a NvLink link\n * Note: pciSubSystemId is not filled in this function and is indeterminate\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param pci                                  \\a nvmlPciInfo_t of the remote node for the specified link\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pci has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a pci is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemotePciInfo_v2(nvmlDevice_t device, unsigned int link, nvmlPciInfo_t *pci);\n\n/**\n * Retrieves the specified error counter value\n * Please refer to \\a nvmlNvLinkErrorCounter_t for error counters that are available\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the NvLink counter to be queried\n * @param counterValue                         Returned counter value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a counter has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a counter is invalid or \\a counterValue is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkErrorCounter(nvmlDevice_t device, unsigned int link,\n                                                     nvmlNvLinkErrorCounter_t counter, unsigned long long *counterValue);\n\n/**\n * Resets all error counters to zero\n * Please refer to \\a nvmlNvLinkErrorCounter_t for the list of error counters that are reset\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the reset is successful\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetNvLinkErrorCounters(nvmlDevice_t device, unsigned int link);\n\n/**\n * Deprecated: Setting utilization counter control is no longer supported.\n *\n * Set the NVLINK utilization counter control information for the specified counter, 0 or 1.\n * Please refer to \\a nvmlNvLinkUtilizationControl_t for the structure definition.  Performs a reset\n * of the counters if the reset parameter is non-zero.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param counter                              Specifies the counter that should be set (0 or 1).\n * @param link                                 Specifies the NvLink link to be queried\n * @param control                              A reference to the \\a nvmlNvLinkUtilizationControl_t to set\n * @param reset                                Resets the counters on set if non-zero\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the control has been set successfully\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, \\a link, or \\a control is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           nvmlNvLinkUtilizationControl_t *control, unsigned int reset);\n\n/**\n * Deprecated: Getting utilization counter control is no longer supported.\n *\n * Get the NVLINK utilization counter control information for the specified counter, 0 or 1.\n * Please refer to \\a nvmlNvLinkUtilizationControl_t for the structure definition\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param counter                              Specifies the counter that should be set (0 or 1).\n * @param link                                 Specifies the NvLink link to be queried\n * @param control                              A reference to the \\a nvmlNvLinkUtilizationControl_t to place information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the control has been set successfully\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, \\a link, or \\a control is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           nvmlNvLinkUtilizationControl_t *control);\n\n\n/**\n * Deprecated: Use \\ref nvmlDeviceGetFieldValues with NVML_FI_DEV_NVLINK_THROUGHPUT_* as field values instead.\n *\n * Retrieve the NVLINK utilization counter based on the current control for a specified counter.\n * In general it is good practice to use \\a nvmlDeviceSetNvLinkUtilizationControl\n *  before reading the utilization counters as they have no default state\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the counter that should be read (0 or 1).\n * @param rxcounter                            Receive counter return value\n * @param txcounter                            Transmit counter return value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a rxcounter and \\a txcounter have been successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, or \\a link is invalid or \\a rxcounter or \\a txcounter are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationCounter(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           unsigned long long *rxcounter, unsigned long long *txcounter);\n\n/**\n * Deprecated: Freezing NVLINK utilization counters is no longer supported.\n *\n * Freeze the NVLINK utilization counters\n * Both the receive and transmit counters are operated on by this function\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the counter that should be frozen (0 or 1).\n * @param freeze                               NVML_FEATURE_ENABLED = freeze the receive and transmit counters\n *                                             NVML_FEATURE_DISABLED = unfreeze the receive and transmit counters\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully frozen or unfrozen\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, \\a counter, or \\a freeze is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceFreezeNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link,\n                                            unsigned int counter, nvmlEnableState_t freeze);\n\n/**\n * Deprecated: Resetting NVLINK utilization counters is no longer supported.\n *\n * Reset the NVLINK utilization counters\n * Both the receive and transmit counters are operated on by this function\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be reset\n * @param counter                              Specifies the counter that should be reset (0 or 1)\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a counter is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link, unsigned int counter);\n\n/**\n* Get the NVLink device type of the remote device connected over the given link.\n*\n* @param device                                The device handle of the target GPU\n* @param link                                  The NVLink link index on the target GPU\n* @param pNvLinkDeviceType                     Pointer in which the output remote device type is returned\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a pNvLinkDeviceType has been set\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_NOT_SUPPORTED      if NVLink is not supported\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device or \\a link is invalid, or\n*                                              \\a pNvLinkDeviceType is NULL\n*         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is\n*                                              otherwise inaccessible\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemoteDeviceType(nvmlDevice_t device, unsigned int link, nvmlIntNvLinkDeviceType_t *pNvLinkDeviceType);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlEvents Event Handling Methods\n * This chapter describes methods that NVML can perform against each device to register and wait for\n * some event to occur.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Create an empty set of events.\n * Event set should be freed by \\ref nvmlEventSetFree\n *\n * For Fermi &tm; or newer fully supported devices.\n * @param set                                  Reference in which to return the event handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a set is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventSetFree\n */\nnvmlReturn_t DECLDIR nvmlEventSetCreate(nvmlEventSet_t *set);\n\n/**\n * Starts recording of events on a specified devices and add the events to specified \\ref nvmlEventSet_t\n *\n * For Fermi &tm; or newer fully supported devices.\n * Ecc events are available only on ECC enabled devices (see \\ref nvmlDeviceGetTotalEccErrors)\n * Power capping events are available only on Power Management enabled devices (see \\ref nvmlDeviceGetPowerManagementMode)\n *\n * For Linux only.\n *\n * \\b IMPORTANT: Operations on \\a set are not thread safe\n *\n * This call starts recording of events on specific device.\n * All events that occurred before this call are not recorded.\n * Checking if some event occurred can be done with \\ref nvmlEventSetWait_v2\n *\n * If function reports NVML_ERROR_UNKNOWN, event set is in undefined state and should be freed.\n * If function reports NVML_ERROR_NOT_SUPPORTED, event set can still be used. None of the requested eventTypes\n *     are registered in that case.\n *\n * @param device                               The identifier of the target device\n * @param eventTypes                           Bitmask of \\ref nvmlEventType to record\n * @param set                                  Set to which add new event types\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a eventTypes is invalid or \\a set is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform does not support this feature or some of requested event types\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceGetSupportedEventTypes\n * @see nvmlEventSetWait\n * @see nvmlEventSetFree\n */\nnvmlReturn_t DECLDIR nvmlDeviceRegisterEvents(nvmlDevice_t device, unsigned long long eventTypes, nvmlEventSet_t set);\n\n/**\n * Returns information about events supported on device\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * Events are not supported on Windows. So this function returns an empty mask in \\a eventTypes on Windows.\n *\n * @param device                               The identifier of the target device\n * @param eventTypes                           Reference in which to return bitmask of supported events\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the eventTypes has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a eventType is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes(nvmlDevice_t device, unsigned long long *eventTypes);\n\n/**\n * Waits on events and delivers events\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * If some events are ready to be delivered at the time of the call, function returns immediately.\n * If there are no events ready to be delivered, function sleeps till event arrives\n * but not longer than specified timeout. This function in certain conditions can return before\n * specified timeout passes (e.g. when interrupt arrives)\n *\n * On Windows, in case of xid error, the function returns the most recent xid error type seen by the system.\n * If there are multiple xid errors generated before nvmlEventSetWait is invoked then the last seen xid error\n * type is returned for all xid error events.\n *\n * On Linux, every xid error event would return the associated event data and other information if applicable.\n *\n * In MIG mode, if device handle is provided, the API reports all the events for the available instances,\n * only if the caller has appropriate privileges. In absence of required privileges, only the events which\n * affect all the instances (i.e. whole device) are reported.\n *\n * This API does not currently support per-instance event reporting using MIG device handles.\n *\n * @param set                                  Reference to set of events to wait on\n * @param data                                 Reference in which to return event data\n * @param timeoutms                            Maximum amount of wait time in milliseconds for registered event\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the data has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a data is NULL\n *         - \\ref NVML_ERROR_TIMEOUT           if no event arrived in specified timeout or interrupt arrived\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if a GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlEventSetWait_v2(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\n\n/**\n * Releases events in the set\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param set                                  Reference to events to be released\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been successfully released\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlEventSetFree(nvmlEventSet_t set);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlZPI Drain states\n * This chapter describes methods that NVML can perform against each device to control their drain state\n * and recognition by NVML and NVIDIA kernel driver. These methods can be used with out-of-band tools to\n * power on/off GPUs, enable robust reset scenarios, etc.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Modify the drain state of a GPU.  This method forces a GPU to no longer accept new incoming requests.\n * Any new NVML process will no longer see this GPU.  Persistence mode for this GPU must be turned off before\n * this call is made.\n * Must be called as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU drain state to be modified\n * @param newState                             The drain state that should be entered, see \\ref nvmlEnableState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex or \\a newState is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the calling process has insufficient permissions to perform operation\n *         - \\ref NVML_ERROR_IN_USE            if the device has persistence mode turned on\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceModifyDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t newState);\n\n/**\n * Query the drain state of a GPU.  This method is used to check if a GPU is in a currently draining\n * state.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU drain state to be queried\n * @param currentState                         The current drain state for this GPU, see \\ref nvmlEnableState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex or \\a currentState is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceQueryDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t *currentState);\n\n/**\n * This method will remove the specified GPU from the view of both NVML and the NVIDIA kernel driver\n * as long as no other processes are attached. If other processes are attached, this call will return\n * NVML_ERROR_IN_USE and the GPU will be returned to its original \"draining\" state. Note: the\n * only situation where a process can still be attached after nvmlDeviceModifyDrainState() is called\n * to initiate the draining state is if that process was using, and is still using, a GPU before the\n * call was made. Also note, persistence mode counts as an attachment to the GPU thus it must be disabled\n * prior to this call.\n *\n * For long-running NVML processes please note that this will change the enumeration of current GPUs.\n * For example, if there are four GPUs present and GPU1 is removed, the new enumeration will be 0-2.\n * Also, device handles after the removed GPU will not be valid and must be re-established.\n * Must be run as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU to be removed\n * @param gpuState                             Whether the GPU is to be removed, from the OS\n *                                             see \\ref nvmlDetachGpuState_t\n * @param linkState                            Requested upstream PCIe link state, see \\ref nvmlPcieLinkState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_IN_USE            if the device is still in use and cannot be removed\n */\nnvmlReturn_t DECLDIR nvmlDeviceRemoveGpu_v2(nvmlPciInfo_t *pciInfo, nvmlDetachGpuState_t gpuState, nvmlPcieLinkState_t linkState);\n\n/**\n * Request the OS and the NVIDIA kernel driver to rediscover a portion of the PCI subsystem looking for GPUs that\n * were previously removed. The portion of the PCI tree can be narrowed by specifying a domain, bus, and device.\n * If all are zeroes then the entire PCI tree will be searched.  Please note that for long-running NVML processes\n * the enumeration will change based on how many GPUs are discovered and where they are inserted in bus order.\n *\n * In addition, all newly discovered GPUs will be initialized and their ECC scrubbed which may take several seconds\n * per GPU. Also, all device handles are no longer guaranteed to be valid post discovery.\n *\n * Must be run as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI tree to be searched.  Only the domain, bus, and device\n *                                             fields are used in this call.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a pciInfo is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the operating system does not support this feature\n *         - \\ref NVML_ERROR_OPERATING_SYSTEM  if the operating system is denying this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the calling process has insufficient permissions to perform operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceDiscoverGpus (nvmlPciInfo_t *pciInfo);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFieldValueQueries Field Value Queries\n *  This chapter describes NVML operations that are associated with retrieving Field Values from NVML\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Request values for a list of fields for a device. This API allows multiple fields to be queried at once.\n * If any of the underlying fieldIds are populated by the same driver call, the results for those field IDs\n * will be populated from a single call rather than making a driver call for each fieldId.\n *\n * @param device                               The device handle of the GPU to request field values for\n * @param valuesCount                          Number of entries in values that should be retrieved\n * @param values                               Array of \\a valuesCount structures to hold field values.\n *                                             Each value's fieldId must be populated prior to this call\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if any values in \\a values were populated. Note that you must\n *                                             check the nvmlReturn field of each value for each individual\n *                                             status\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a values is NULL\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFieldValues(nvmlDevice_t device, int valuesCount, nvmlFieldValue_t *values);\n\n/**\n * Clear values for a list of fields for a device. This API allows multiple fields to be cleared at once.\n *\n * @param device                               The device handle of the GPU to request field values for\n * @param valuesCount                          Number of entries in values that should be cleared\n * @param values                               Array of \\a valuesCount structures to hold field values.\n *                                             Each value's fieldId must be populated prior to this call\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if any values in \\a values were cleared. Note that you must\n *                                             check the nvmlReturn field of each value for each individual\n *                                             status\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a values is NULL\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearFieldValues(nvmlDevice_t device, int valuesCount, nvmlFieldValue_t *values);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup vGPU Enums, Constants and Structs\n *  @{\n */\n/** @} */\n/***************************************************************************************************/\n\n/***************************************************************************************************/\n/** @defgroup nvmlVirtualGpuQueries vGPU APIs\n * This chapter describes operations that are associated with NVIDIA vGPU Software products.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * This method is used to get the virtualization mode corresponding to the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                    Identifier of the target device\n * @param pVirtualMode              Reference to virtualization mode. One of NVML_GPU_VIRTUALIZATION_?\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a pVirtualMode is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a pVirtualMode is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t *pVirtualMode);\n\n/**\n * Queries if SR-IOV host operation is supported on a vGPU supported device.\n *\n * Checks whether SR-IOV host capability is supported by the device and the\n * driver, and indicates device is in SR-IOV mode if both of these conditions\n * are true.\n *\n * @param device                                The identifier of the target device\n * @param pHostVgpuMode                         Reference in which to return the current vGPU mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if device's vGPU mode has been successfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device handle is 0 or \\a pVgpuMode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if \\a device doesn't support this feature.\n *         - \\ref NVML_ERROR_UNKNOWN            if any unexpected error occurred\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHostVgpuMode(nvmlDevice_t device, nvmlHostVgpuMode_t *pHostVgpuMode);\n\n/**\n * This method is used to set the virtualization mode corresponding to the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                    Identifier of the target device\n * @param virtualMode               virtualization mode. One of NVML_GPU_VIRTUALIZATION_?\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a pVirtualMode is set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a pVirtualMode is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if setting of virtualization mode is not supported.\n *         - \\ref NVML_ERROR_NO_PERMISSION      if setting of virtualization mode is not allowed for this client.\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t virtualMode);\n\n/**\n * Retrieve the vGPU Software licensable features.\n *\n * Identifies whether the system supports vGPU Software Licensing. If it does, return the list of licensable feature(s)\n * and their current license status.\n *\n * @param device                    Identifier of the target device\n * @param pGridLicensableFeatures   Pointer to structure in which vGPU software licensable features are returned\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if licensable features are successfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a pGridLicensableFeatures is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures_v4(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\n\n/**\n * Retrieves the current utilization and process ID\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for processes running.\n * Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer pointed at\n * by \\a utilization. One utilization sample structure is returned per process running, that had some non-zero utilization\n * during the last sample period. It includes the CPU timestamp at which  the samples were recorded. Individual utilization values\n * are returned as \"unsigned int\" values.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilization set to NULL. The caller should allocate a buffer of size\n * processSamplesCount * sizeof(nvmlProcessUtilizationSample_t). Invoke the function again with the allocated buffer passed\n * in \\a utilization, and \\a processSamplesCount set to the number of entries the buffer is sized for.\n *\n * On successful return, the function updates \\a processSamplesCount with the number of process utilization sample\n * structures that were actually written. This may differ from a previously read value as instances are created or\n * destroyed.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @note On MIG-enabled GPUs, querying process utilization is not currently supported.\n *\n * @param device                    The identifier of the target device\n * @param utilization               Pointer to caller-supplied buffer in which guest process utilization samples are returned\n * @param processSamplesCount       Pointer to caller-supplied array size, and returns number of processes running\n * @param lastSeenTimeStamp         Return only samples with timestamp greater than lastSeenTimeStamp.\n\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetProcessUtilization(nvmlDevice_t device, nvmlProcessUtilizationSample_t *utilization,\n                                              unsigned int *processSamplesCount, unsigned long long lastSeenTimeStamp);\n\n/**\n * Retrieve GSP firmware version.\n *\n * The caller passes in buffer via \\a version and corresponding GSP firmware numbered version\n * is returned with the same parameter in string format.\n *\n * @param device                               Device handle\n * @param version                              The retrieved GSP firmware version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if GSP firmware version is sucessfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or GSP \\a version pointer is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if GSP firmware is not enabled for GPU\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGspFirmwareVersion(nvmlDevice_t device, char *version);\n\n/**\n * Retrieve GSP firmware mode.\n *\n * The caller passes in integer pointers. GSP firmware enablement and default mode information is returned with\n * corresponding parameters. The return value in \\a isEnabled and \\a defaultMode should be treated as boolean.\n *\n * @param device                               Device handle\n * @param isEnabled                            Pointer to specify if GSP firmware is enabled\n * @param defaultMode                          Pointer to specify if GSP firmware is supported by default on \\a device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if GSP firmware mode is sucessfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or any of \\a isEnabled or \\a defaultMode is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGspFirmwareMode(nvmlDevice_t device, unsigned int *isEnabled, unsigned int *defaultMode);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlVgpu vGPU Management\n * @{\n *\n * This chapter describes APIs supporting NVIDIA vGPU.\n */\n/***************************************************************************************************/\n\n/**\n * Retrieve the requested vGPU driver capability.\n *\n * Refer to the \\a nvmlVgpuDriverCapability_t structure for the specific capabilities that can be queried.\n * The return value in \\a capResult should be treated as a boolean, with a non-zero value indicating that the capability\n * is supported.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param capability      Specifies the \\a nvmlVgpuDriverCapability_t to be queried\n * @param capResult       A boolean for the queried capability indicating that feature is supported\n *\n * @return\n *      - \\ref NVML_SUCCESS                      successful completion\n *      - \\ref NVML_ERROR_UNINITIALIZED          if the library has not been successfully initialized\n *      - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a capability is invalid, or \\a capResult is NULL\n *      - \\ref NVML_ERROR_NOT_SUPPORTED          the API is not supported in current state or \\a devices not in vGPU mode\n *      - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlGetVgpuDriverCapabilities(nvmlVgpuDriverCapability_t capability, unsigned int *capResult);\n\n/**\n * Retrieve the requested vGPU capability for GPU.\n *\n * Refer to the \\a nvmlDeviceVgpuCapability_t structure for the specific capabilities that can be queried.\n * The return value in \\a capResult should be treated as a boolean, with a non-zero value indicating that the capability\n * is supported.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device     The identifier of the target device\n * @param capability Specifies the \\a nvmlDeviceVgpuCapability_t to be queried\n * @param capResult  A boolean for the queried capability indicating that feature is supported\n *\n * @return\n *      - \\ref NVML_SUCCESS                      successful completion\n *      - \\ref NVML_ERROR_UNINITIALIZED          if the library has not been successfully initialized\n *      - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a device is invalid, or \\a capability is invalid, or \\a capResult is NULL\n *      - \\ref NVML_ERROR_NOT_SUPPORTED          the API is not supported in current state or \\a device not in vGPU mode\n *      - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuCapabilities(nvmlDevice_t device, nvmlDeviceVgpuCapability_t capability, unsigned int *capResult);\n\n/**\n * Retrieve the supported vGPU types on a physical GPU (device).\n *\n * An array of supported vGPU types for the physical GPU indicated by \\a device is returned in the caller-supplied buffer\n * pointed at by \\a vgpuTypeIds. The element count of nvmlVgpuTypeId_t array is passed in \\a vgpuCount, and \\a vgpuCount\n * is used to return the number of vGPU types written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \\a vgpuCount.\n * To query the number of vGPU types supported for the GPU, call this function with *vgpuCount = 0.\n * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are supported.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer to caller-supplied array size, and returns number of vGPU types\n * @param vgpuTypeIds              Pointer to caller-supplied array in which to return list of vGPU types\n *\n * @return\n *         - \\ref NVML_SUCCESS                      successful completion\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE      \\a vgpuTypeIds buffer is too small, array element count is returned in \\a vgpuCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a vgpuCount is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED          if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);\n\n/**\n * Retrieve the currently creatable vGPU types on a physical GPU (device).\n *\n * An array of creatable vGPU types for the physical GPU indicated by \\a device is returned in the caller-supplied buffer\n * pointed at by \\a vgpuTypeIds. The element count of nvmlVgpuTypeId_t array is passed in \\a vgpuCount, and \\a vgpuCount\n * is used to return the number of vGPU types written to the buffer.\n *\n * The creatable vGPU types for a device may differ over time, as there may be restrictions on what type of vGPU types\n * can concurrently run on a device.  For example, if only one vGPU type is allowed at a time on a device, then the creatable\n * list will be restricted to whatever vGPU type is already running on the device.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \\a vgpuCount.\n * To query the number of vGPU types createable for the GPU, call this function with *vgpuCount = 0.\n * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are creatable.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer to caller-supplied array size, and returns number of vGPU types\n * @param vgpuTypeIds              Pointer to caller-supplied array in which to return list of vGPU types\n *\n * @return\n *         - \\ref NVML_SUCCESS                      successful completion\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE      \\a vgpuTypeIds buffer is too small, array element count is returned in \\a vgpuCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a vgpuCount is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED          if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCreatableVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);\n\n/**\n * Retrieve the class of a vGPU type. It will not exceed 64 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeClass            Pointer to string array to return class in\n * @param size                     Size of string\n *\n * @return\n *         - \\ref NVML_SUCCESS                   successful completion\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a vgpuTypeId is invalid, or \\a vgpuTypeClass is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetClass(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeClass, unsigned int *size);\n\n/**\n * Retrieve the vGPU type name.\n *\n * The name is an alphanumeric string that denotes a particular vGPU, e.g. GRID M60-2Q. It will not\n * exceed 64 characters in length (including the NUL terminator).  See \\ref\n * nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeName             Pointer to buffer to return name\n * @param size                     Size of buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a name is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetName(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeName, unsigned int *size);\n\n/**\n * Retrieve the GPU Instance Profile ID for the given vGPU type ID.\n * The API will return a valid GPU Instance Profile ID for the MIG capable vGPU types, else INVALID_GPU_INSTANCE_PROFILE_ID is\n * returned.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param gpuInstanceProfileId     GPU Instance Profile ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if \\a device is not in vGPU Host virtualization mode\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a gpuInstanceProfileId is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetGpuInstanceProfileId(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *gpuInstanceProfileId);\n\n/**\n * Retrieve the device ID of a vGPU type.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param deviceID                 Device ID and vendor ID of the device contained in single 32 bit value\n * @param subsystemID              Subsytem ID and subsytem vendor ID of the device contained in single 32 bit value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a deviceId or \\a subsystemID are NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetDeviceID(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *deviceID, unsigned long long *subsystemID);\n\n/**\n * Retrieve the vGPU framebuffer size in bytes.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param fbSize                   Pointer to framebuffer size in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a fbSize is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetFramebufferSize(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *fbSize);\n\n/**\n * Retrieve count of vGPU's supported display heads.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param numDisplayHeads          Pointer to number of display heads\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a numDisplayHeads is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetNumDisplayHeads(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *numDisplayHeads);\n\n/**\n * Retrieve vGPU display head's maximum supported resolution.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param displayIndex             Zero-based index of display head\n * @param xdim                     Pointer to maximum number of pixels in X dimension\n * @param ydim                     Pointer to maximum number of pixels in Y dimension\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a xdim or \\a ydim are NULL, or \\a displayIndex\n *                                             is out of range.\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetResolution(nvmlVgpuTypeId_t vgpuTypeId, unsigned int displayIndex, unsigned int *xdim, unsigned int *ydim);\n\n/**\n * Retrieve license requirements for a vGPU type\n *\n * The license type and version required to run the specified vGPU type is returned as an alphanumeric string, in the form\n * \"<license name>,<version>\", for example \"GRID-Virtual-PC,2.0\". If a vGPU is runnable with* more than one type of license,\n * the licenses are delimited by a semicolon, for example \"GRID-Virtual-PC,2.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0\".\n *\n * The total length of the returned string will not exceed 128 characters, including the NUL terminator.\n * See \\ref nvmlVgpuConstants::NVML_GRID_LICENSE_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeLicenseString    Pointer to buffer to return license info\n * @param size                     Size of \\a vgpuTypeLicenseString buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a vgpuTypeLicenseString is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetLicense(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeLicenseString, unsigned int size);\n\n/**\n * Retrieve the static frame rate limit value of the vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param frameRateLimit           Reference to return the frame rate limit value\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if frame rate limiter is turned off for the vGPU type\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a frameRateLimit is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetFrameRateLimit(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *frameRateLimit);\n\n/**\n * Retrieve the maximum number of vGPU instances creatable on a device for given vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                   The identifier of the target device\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuInstanceCount        Pointer to get the max number of vGPU instances\n *                                 that can be created on a deicve for given vgpuTypeId\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid or is not supported on target device,\n *                                             or \\a vgpuInstanceCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstances(nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCount);\n\n/**\n * Retrieve the maximum number of vGPU instances supported per VM for given vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuInstanceCountPerVm   Pointer to get the max number of vGPU instances supported per VM for given \\a vgpuTypeId\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a vgpuInstanceCountPerVm is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstancesPerVm(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCountPerVm);\n\n/**\n * Retrieve the active vGPU instances on a device.\n *\n * An array of active vGPU instances is returned in the caller-supplied buffer pointed at by \\a vgpuInstances. The\n * array elememt count is passed in \\a vgpuCount, and \\a vgpuCount is used to return the number of vGPU instances\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU instance array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuInstance_t array required in \\a vgpuCount.\n * To query the number of active vGPU instances, call this function with *vgpuCount = 0.  The code will return\n * NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU Types are supported.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer which passes in the array size as well as get\n *                                 back the number of types\n * @param vgpuInstances            Pointer to array in which to return list of vGPU instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                  successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid, or \\a vgpuCount is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a size is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetActiveVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuInstance_t *vgpuInstances);\n\n/**\n * Retrieve the VM ID associated with a vGPU instance.\n *\n * The VM ID is returned as a string, not exceeding 80 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * The format of the VM ID varies by platform, and is indicated by the type identifier returned in \\a vmIdType.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param vmId                     Pointer to caller-supplied buffer to hold VM ID\n * @param size                     Size of buffer in bytes\n * @param vmIdType                 Pointer to hold VM ID type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vmId or \\a vmIdType is NULL, or \\a vgpuInstance is 0\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmID(nvmlVgpuInstance_t vgpuInstance, char *vmId, unsigned int size, nvmlVgpuVmIdType_t *vmIdType);\n\n/**\n * Retrieve the UUID of a vGPU instance.\n *\n * The UUID is a globally unique identifier associated with the vGPU, and is returned as a 5-part hexadecimal string,\n * not exceeding 80 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param uuid                     Pointer to caller-supplied buffer to hold vGPU UUID\n * @param size                     Size of buffer in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a uuid is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetUUID(nvmlVgpuInstance_t vgpuInstance, char *uuid, unsigned int size);\n\n/**\n * Retrieve the NVIDIA driver version installed in the VM associated with a vGPU.\n *\n * The version is returned as an alphanumeric string in the caller-supplied buffer \\a version. The length of the version\n * string will not exceed 80 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.\n *\n * nvmlVgpuInstanceGetVmDriverVersion() may be called at any time for a vGPU instance. The guest VM driver version is\n * returned as \"Not Available\" if no NVIDIA driver is installed in the VM, or the VM has not yet booted to the point where the\n * NVIDIA driver is loaded and initialized.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param version                  Caller-supplied buffer to return driver version string\n * @param length                   Size of \\a version buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmDriverVersion(nvmlVgpuInstance_t vgpuInstance, char* version, unsigned int length);\n\n/**\n * Retrieve the framebuffer usage in bytes.\n *\n * Framebuffer usage is the amont of vGPU framebuffer memory that is currently in use by the VM.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             The identifier of the target instance\n * @param fbUsage                  Pointer to framebuffer usage in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a fbUsage is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFbUsage(nvmlVgpuInstance_t vgpuInstance, unsigned long long *fbUsage);\n\n/**\n * @deprecated Use \\ref nvmlVgpuInstanceGetLicenseInfo_v2.\n *\n * Retrieve the current licensing state of the vGPU instance.\n *\n * If the vGPU is currently licensed, \\a licensed is set to 1, otherwise it is set to 0.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param licensed                 Reference to return the licensing status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a licensed has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a licensed is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetLicenseStatus(nvmlVgpuInstance_t vgpuInstance, unsigned int *licensed);\n\n/**\n * Retrieve the vGPU type of a vGPU instance.\n *\n * Returns the vGPU type ID of vgpu assigned to the vGPU instance.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param vgpuTypeId               Reference to return the vgpuTypeId\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a vgpuTypeId has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a vgpuTypeId is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetType(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuTypeId_t *vgpuTypeId);\n\n/**\n * Retrieve the frame rate limit set for the vGPU instance.\n *\n * Returns the value of the frame rate limit set for the vGPU instance\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param frameRateLimit           Reference to return the frame rate limit\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a frameRateLimit has been set\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if frame rate limiter is turned off for the vGPU type\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a frameRateLimit is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFrameRateLimit(nvmlVgpuInstance_t vgpuInstance, unsigned int *frameRateLimit);\n\n/**\n * Retrieve the current ECC mode of vGPU instance.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param eccMode                 Reference in which to return the current ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the vgpuInstance's ECC mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEccMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *eccMode);\n\n/**\n * Retrieve the encoder capacity of a vGPU instance, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param encoderCapacity          Reference to an unsigned int for the encoder capacity\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a encoderCapacity has been retrived\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a encoderQueryType is invalid\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int *encoderCapacity);\n\n/**\n * Set the encoder capacity of a vGPU instance, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param encoderCapacity          Unsigned int for the encoder capacity value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a encoderCapacity has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a encoderCapacity is out of range of 0-100.\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceSetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int  encoderCapacity);\n\n/**\n * Retrieves the current encoder statistics of a vGPU Instance\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance                      Identifier of the target vGPU instance\n * @param sessionCount                      Reference to an unsigned int for count of active encoder sessions\n * @param averageFps                        Reference to an unsigned int for trailing average FPS of all active sessions\n * @param averageLatency                    Reference to an unsigned int for encode latency in microseconds\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionCount, \\a averageFps and \\a averageLatency is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount , or \\a averageFps or \\a averageLatency is NULL\n *                                              or \\a vgpuInstance is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderStats(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount,\n                                                     unsigned int *averageFps, unsigned int *averageLatency);\n\n/**\n * Retrieves information about all active encoder sessions on a vGPU Instance.\n *\n * An array of active encoder sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n * array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the active session array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \\a sessionCount.\n * To query the number of active encoder sessions, call this function with *sessionCount = 0. The code will return\n * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance                      Identifier of the target vGPU instance\n * @param sessionCount                      Reference to caller supplied array size, and returns\n *                                          the number of sessions.\n * @param sessionInfo                       Reference to caller supplied array in which the list\n *                                          of session information us returned.\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is\n                                                returned in \\a sessionCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL, or \\a vgpuInstance is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfo);\n\n/**\n* Retrieves the active frame buffer capture sessions statistics of a vGPU Instance\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @param vgpuInstance                      Identifier of the target vGPU instance\n* @param fbcStats                          Reference to nvmlFBCStats_t structure contianing NvFBC stats\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a fbcStats is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a vgpuInstance is 0, or \\a fbcStats is NULL\n*         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCStats(nvmlVgpuInstance_t vgpuInstance, nvmlFBCStats_t *fbcStats);\n\n/**\n* Retrieves information about active frame buffer capture sessions on a vGPU Instance.\n*\n* An array of active FBC sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n* array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n* written to the buffer.\n*\n* If the supplied buffer is not large enough to accomodate the active session array, the function returns\n* NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \\a sessionCount.\n* To query the number of active FBC sessions, call this function with *sessionCount = 0.  The code will return\n* NVML_SUCCESS with number of active FBC sessions updated in *sessionCount.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @note hResolution, vResolution, averageFPS and averageLatency data for a FBC session returned in \\a sessionInfo may\n*       be zero if there are no new frames captured since the session started.\n*\n* @param vgpuInstance                      Identifier of the target vGPU instance\n* @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n* @param sessionInfo                       Reference in which to return the session information\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a vgpuInstance is 0, or \\a sessionCount is NULL.\n*         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);\n\n/**\n* Retrieve the GPU Instance ID for the given vGPU Instance.\n* The API will return a valid GPU Instance ID for MIG backed vGPU Instance, else INVALID_GPU_INSTANCE_ID is returned.\n*\n* For Kepler &tm; or newer fully supported devices.\n*\n* @param vgpuInstance                      Identifier of the target vGPU instance\n* @param gpuInstanceId                     GPU Instance ID\n*\n* @return\n*         - \\ref NVML_SUCCESS                  successful completion\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a vgpuInstance is 0, or \\a gpuInstanceId is NULL.\n*         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetGpuInstanceId(nvmlVgpuInstance_t vgpuInstance, unsigned int *gpuInstanceId);\n\n/**\n* Retrieves the PCI Id of the given vGPU Instance i.e. the PCI Id of the GPU as seen inside the VM.\n*\n* The vGPU PCI id is returned as \"00000000:00:00.0\" if NVIDIA driver is not installed on the vGPU instance.\n*\n* @param vgpuInstance                         Identifier of the target vGPU instance\n* @param vgpuPciId                            Caller-supplied buffer to return vGPU PCI Id string\n* @param length                               Size of the vgpuPciId buffer\n*\n* @return\n*         - \\ref NVML_SUCCESS                 if vGPU PCI Id is sucessfully retrieved\n*         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a vgpuPciId is NULL\n*         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running on the vGPU instance\n*         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small, \\a length is set to required length\n*         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetGpuPciId(nvmlVgpuInstance_t vgpuInstance, char *vgpuPciId, unsigned int *length);\n\n/**\n* Retrieve the requested capability for a given vGPU type. Refer to the \\a nvmlVgpuCapability_t structure\n* for the specific capabilities that can be queried. The return value in \\a capResult should be treated as\n* a boolean, with a non-zero value indicating that the capability is supported.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @param vgpuTypeId                           Handle to vGPU type\n* @param capability                           Specifies the \\a nvmlVgpuCapability_t to be queried\n* @param capResult                            A boolean for the queried capability indicating that feature is supported\n*\n* @return\n*         - \\ref NVML_SUCCESS                 successful completion\n*         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a capability is invalid, or \\a capResult is NULL\n*         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetCapabilities(nvmlVgpuTypeId_t vgpuTypeId, nvmlVgpuCapability_t capability, unsigned int *capResult);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvml vGPU Migration\n * This chapter describes operations that are associated with vGPU Migration.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Structure representing range of vGPU versions.\n */\ntypedef struct nvmlVgpuVersion_st\n{\n    unsigned int minVersion; //!< Minimum vGPU version.\n    unsigned int maxVersion; //!< Maximum vGPU version.\n} nvmlVgpuVersion_t;\n\n/**\n * vGPU metadata structure.\n */\ntypedef struct nvmlVgpuMetadata_st\n{\n    unsigned int             version;                                                    //!< Current version of the structure\n    unsigned int             revision;                                                   //!< Current revision of the structure\n    nvmlVgpuGuestInfoState_t guestInfoState;                                             //!< Current state of Guest-dependent fields\n    char                     guestDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE]; //!< Version of driver installed in guest\n    char                     hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];  //!< Version of driver installed in host\n    unsigned int             reserved[6];                                                //!< Reserved for internal use\n    unsigned int             vgpuVirtualizationCaps;                                     //!< vGPU virtualizaion capabilities bitfileld\n    unsigned int             guestVgpuVersion;                                           //!< vGPU version of guest driver\n    unsigned int             opaqueDataSize;                                             //!< Size of opaque data field in bytes\n    char                     opaqueData[4];                                              //!< Opaque data\n} nvmlVgpuMetadata_t;\n\n/**\n * Physical GPU metadata structure\n */\ntypedef struct nvmlVgpuPgpuMetadata_st\n{\n    unsigned int            version;                                                    //!< Current version of the structure\n    unsigned int            revision;                                                   //!< Current revision of the structure\n    char                    hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];  //!< Host driver version\n    unsigned int            pgpuVirtualizationCaps;                                     //!< Pgpu virtualizaion capabilities bitfileld\n    unsigned int            reserved[5];                                                //!< Reserved for internal use\n    nvmlVgpuVersion_t       hostSupportedVgpuRange;                                     //!< vGPU version range supported by host driver\n    unsigned int            opaqueDataSize;                                             //!< Size of opaque data field in bytes\n    char                    opaqueData[4];                                              //!< Opaque data\n} nvmlVgpuPgpuMetadata_t;\n\n/**\n * vGPU VM compatibility codes\n */\ntypedef enum nvmlVgpuVmCompatibility_enum\n{\n    NVML_VGPU_VM_COMPATIBILITY_NONE         = 0x0,    //!< vGPU is not runnable\n    NVML_VGPU_VM_COMPATIBILITY_COLD         = 0x1,    //!< vGPU is runnable from a cold / powered-off state (ACPI S5)\n    NVML_VGPU_VM_COMPATIBILITY_HIBERNATE    = 0x2,    //!< vGPU is runnable from a hibernated state (ACPI S4)\n    NVML_VGPU_VM_COMPATIBILITY_SLEEP        = 0x4,    //!< vGPU is runnable from a sleeped state (ACPI S3)\n    NVML_VGPU_VM_COMPATIBILITY_LIVE         = 0x8     //!< vGPU is runnable from a live/paused (ACPI S0)\n} nvmlVgpuVmCompatibility_t;\n\n/**\n *  vGPU-pGPU compatibility limit codes\n */\ntypedef enum nvmlVgpuPgpuCompatibilityLimitCode_enum\n{\n    NVML_VGPU_COMPATIBILITY_LIMIT_NONE          = 0x0,           //!< Compatibility is not limited.\n    NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER   = 0x1,           //!< ompatibility is limited by host driver version.\n    NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER  = 0x2,           //!< Compatibility is limited by guest driver version.\n    NVML_VGPU_COMPATIBILITY_LIMIT_GPU           = 0x4,           //!< Compatibility is limited by GPU hardware.\n    NVML_VGPU_COMPATIBILITY_LIMIT_OTHER         = 0x80000000     //!< Compatibility is limited by an undefined factor.\n} nvmlVgpuPgpuCompatibilityLimitCode_t;\n\n/**\n * vGPU-pGPU compatibility structure\n */\ntypedef struct nvmlVgpuPgpuCompatibility_st\n{\n    nvmlVgpuVmCompatibility_t               vgpuVmCompatibility;    //!< Compatibility of vGPU VM. See \\ref nvmlVgpuVmCompatibility_t\n    nvmlVgpuPgpuCompatibilityLimitCode_t    compatibilityLimitCode; //!< Limiting factor for vGPU-pGPU compatibility. See \\ref nvmlVgpuPgpuCompatibilityLimitCode_t\n} nvmlVgpuPgpuCompatibility_t;\n\n/**\n * Returns vGPU metadata structure for a running vGPU. The structure contains information about the vGPU and its associated VM\n * such as the currently installed NVIDIA guest driver version, together with host driver version and an opaque data section\n * containing internal state.\n *\n * nvmlVgpuInstanceGetMetadata() may be called at any time for a vGPU instance. Some fields in the returned structure are\n * dependent on information obtained from the guest VM, which may not yet have reached a state where that information\n * is available. The current state of these dependent fields is reflected in the info structure's \\ref nvmlVgpuGuestInfoState_t field.\n *\n * The VMM may choose to read and save the vGPU's VM info as persistent metadata associated with the VM, and provide\n * it to Virtual GPU Manager when creating a vGPU for subsequent instances of the VM.\n *\n * The caller passes in a buffer via \\a vgpuMetadata, with the size of the buffer in \\a bufferSize. If the vGPU Metadata structure\n * is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param vgpuInstance             vGPU instance handle\n * @param vgpuMetadata             Pointer to caller-supplied buffer into which vGPU metadata is written\n * @param bufferSize               Size of vgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   vgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a vgpuInstance is 0; if \\a vgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_FOUND           if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetMetadata(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuMetadata_t *vgpuMetadata, unsigned int *bufferSize);\n\n/**\n * Returns a vGPU metadata structure for the physical GPU indicated by \\a device. The structure contains information about\n * the GPU and the currently installed NVIDIA host driver version that's controlling it, together with an opaque data section\n * containing internal state.\n *\n * The caller passes in a buffer via \\a pgpuMetadata, with the size of the buffer in \\a bufferSize. If the \\a pgpuMetadata\n * structure is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param device                The identifier of the target device\n * @param pgpuMetadata          Pointer to caller-supplied buffer into which \\a pgpuMetadata is written\n * @param bufferSize            Pointer to size of \\a pgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   GPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   pgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a device is invalid; if \\a pgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       vGPU is not supported by the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata(nvmlDevice_t device, nvmlVgpuPgpuMetadata_t *pgpuMetadata, unsigned int *bufferSize);\n\n/**\n * Takes a vGPU instance metadata structure read from \\ref nvmlVgpuInstanceGetMetadata(), and a vGPU metadata structure for a\n * physical GPU read from \\ref nvmlDeviceGetVgpuMetadata(), and returns compatibility information of the vGPU instance and the\n * physical GPU.\n *\n * The caller passes in a buffer via \\a compatibilityInfo, into which a compatibility information structure is written. The\n * structure defines the states in which the vGPU / VM may be booted on the physical GPU. If the vGPU / VM compatibility\n * with the physical GPU is limited, a limit code indicates the factor limiting compability.\n * (see \\ref nvmlVgpuPgpuCompatibilityLimitCode_t for details).\n *\n * Note: vGPU compatibility does not take into account dynamic capacity conditions that may limit a system's ability to\n *       boot a given vGPU or associated VM.\n *\n * @param vgpuMetadata          Pointer to caller-supplied vGPU metadata structure\n * @param pgpuMetadata          Pointer to caller-supplied GPU metadata structure\n * @param compatibilityInfo     Pointer to caller-supplied buffer to hold compatibility info\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a vgpuMetadata or \\a pgpuMetadata or \\a bufferSize are NULL\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlGetVgpuCompatibility(nvmlVgpuMetadata_t *vgpuMetadata, nvmlVgpuPgpuMetadata_t *pgpuMetadata, nvmlVgpuPgpuCompatibility_t *compatibilityInfo);\n\n/**\n * Returns the properties of the physical GPU indicated by the device in an ascii-encoded string format.\n *\n * The caller passes in a buffer via \\a pgpuMetadata, with the size of the buffer in \\a bufferSize. If the\n * string is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param device                The identifier of the target device\n * @param pgpuMetadata          Pointer to caller-supplied buffer into which \\a pgpuMetadata is written\n * @param bufferSize            Pointer to size of \\a pgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   GPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   \\a pgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a device is invalid; if \\a pgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       if vGPU is not supported by the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPgpuMetadataString(nvmlDevice_t device, char *pgpuMetadata, unsigned int *bufferSize);\n\n/**\n * Returns the vGPU Software scheduler logs.\n * \\a pSchedulerLog points to a caller-allocated structure to contain the logs. The number of elements returned will\n * never exceed \\a NVML_SCHEDULER_SW_MAX_LOG_ENTRIES.\n *\n * To get the entire logs, call the function atleast 5 times a second.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                The identifier of the target \\a device\n * @param pSchedulerLog         Reference in which \\a pSchedulerLog is written\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU scheduler logs were successfully obtained\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a pSchedulerLog is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       The API is not supported in current state or \\a device not in vGPU host mode\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuSchedulerLog(nvmlDevice_t device, nvmlVgpuSchedulerLog_t *pSchedulerLog);\n\n/**\n * Returns the vGPU scheduler state.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                The identifier of the target \\a device\n * @param pSchedulerState       Reference in which \\a pSchedulerState is returned\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU scheduler state is successfully obtained\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a pSchedulerState is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       The API is not supported in current state or \\a device not in vGPU host mode\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuSchedulerState(nvmlDevice_t device, nvmlVgpuSchedulerGetState_t *pSchedulerState);\n\n/**\n * Sets the vGPU scheduler state.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * The scheduler state change won’t persist across module load/unload.\n * Scheduler state and params will be allowed to set only when no VM is running.\n * In \\a nvmlVgpuSchedulerSetState_t, IFF enableARRMode=1 then\n * provide avgFactorForARR and frequency as input. If enableARRMode is disabled\n * then provide timeslice as input.\n *\n * @param device                The identifier of the target \\a device\n * @param pSchedulerState       vGPU \\a pSchedulerState to set\n *\n * @return\n *         - \\ref NVML_SUCCESS                  vGPU scheduler state has been successfully set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a pSchedulerState is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_RESET_REQUIRED     if setting \\a pSchedulerState failed with fatal error,\n *                                              reboot is required to overcome from this error.\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      The API is not supported in current state or \\a device not in vGPU host mode\n *                                              or if any vGPU instance currently exists on the \\a device\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetVgpuSchedulerState(nvmlDevice_t device, nvmlVgpuSchedulerSetState_t *pSchedulerState);\n\n/**\n * Returns the vGPU scheduler capabilities.\n * The list of supported vGPU schedulers returned in \\a nvmlVgpuSchedulerCapabilities_t is from\n * the NVML_VGPU_SCHEDULER_POLICY_*. This list enumerates the supported scheduler policies\n * if the engine is Graphics type.\n * The other values in \\a nvmlVgpuSchedulerCapabilities_t are also applicable if the engine is\n * Graphics type. For other engine types, it is BEST EFFORT policy.\n * If ARR is supported and enabled, scheduling frequency and averaging factor are applicable\n * else timeSlice is applicable.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                The identifier of the target \\a device\n * @param pCapabilities         Reference in which \\a pCapabilities is written\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU scheduler capabilities were successfully obtained\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a pCapabilities is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       The API is not supported in current state or \\a device not in vGPU host mode\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuSchedulerCapabilities(nvmlDevice_t device, nvmlVgpuSchedulerCapabilities_t *pCapabilities);\n\n/*\n * Virtual GPU (vGPU) version\n *\n * The NVIDIA vGPU Manager and the guest drivers are tagged with a range of supported vGPU versions. This determines the range of NVIDIA guest driver versions that\n * are compatible for vGPU feature support with a given NVIDIA vGPU Manager. For vGPU feature support, the range of supported versions for the NVIDIA vGPU Manager\n * and the guest driver must overlap. Otherwise, the guest driver fails to load in the VM.\n *\n * When the NVIDIA guest driver loads, either when the VM is booted or when the driver is installed or upgraded, a negotiation occurs between the guest driver\n * and the NVIDIA vGPU Manager to select the highest mutually compatible vGPU version. The negotiated vGPU version stays the same across VM migration.\n */\n\n/**\n * Query the ranges of supported vGPU versions.\n *\n * This function gets the linear range of supported vGPU versions that is preset for the NVIDIA vGPU Manager and the range set by an administrator.\n * If the preset range has not been overridden by \\ref nvmlSetVgpuVersion, both ranges are the same.\n *\n * The caller passes pointers to the following \\ref nvmlVgpuVersion_t structures, into which the NVIDIA vGPU Manager writes the ranges:\n * 1. \\a supported structure that represents the preset range of vGPU versions supported by the NVIDIA vGPU Manager.\n * 2. \\a current structure that represents the range of supported vGPU versions set by an administrator. By default, this range is the same as the preset range.\n *\n * @param supported  Pointer to the structure in which the preset range of vGPU versions supported by the NVIDIA vGPU Manager is written\n * @param current    Pointer to the structure in which the range of supported vGPU versions set by an administrator is written\n *\n * @return\n * - \\ref NVML_SUCCESS                 The vGPU version range structures were successfully obtained.\n * - \\ref NVML_ERROR_NOT_SUPPORTED     The API is not supported.\n * - \\ref NVML_ERROR_INVALID_ARGUMENT  The \\a supported parameter or the \\a current parameter is NULL.\n * - \\ref NVML_ERROR_UNKNOWN           An error occurred while the data was being fetched.\n */\nnvmlReturn_t DECLDIR nvmlGetVgpuVersion(nvmlVgpuVersion_t *supported, nvmlVgpuVersion_t *current);\n\n/**\n * Override the preset range of vGPU versions supported by the NVIDIA vGPU Manager with a range set by an administrator.\n *\n * This function configures the NVIDIA vGPU Manager with a range of supported vGPU versions set by an administrator. This range must be a subset of the\n * preset range that the NVIDIA vGPU Manager supports. The custom range set by an administrator takes precedence over the preset range and is advertised to\n * the guest VM for negotiating the vGPU version. See \\ref nvmlGetVgpuVersion for details of how to query the preset range of versions supported.\n *\n * This function takes a pointer to vGPU version range structure \\ref nvmlVgpuVersion_t as input to override the preset vGPU version range that the NVIDIA vGPU Manager supports.\n *\n * After host system reboot or driver reload, the range of supported versions reverts to the range that is preset for the NVIDIA vGPU Manager.\n *\n * @note 1. The range set by the administrator must be a subset of the preset range that the NVIDIA vGPU Manager supports. Otherwise, an error is returned.\n *       2. If the range of supported guest driver versions does not overlap the range set by the administrator, the guest driver fails to load.\n *       3. If the range of supported guest driver versions overlaps the range set by the administrator, the guest driver will load with a negotiated\n *          vGPU version that is the maximum value in the overlapping range.\n *       4. No VMs must be running on the host when this function is called. If a VM is running on the host, the call to this function fails.\n *\n * @param vgpuVersion   Pointer to a caller-supplied range of supported vGPU versions.\n *\n * @return\n * - \\ref NVML_SUCCESS                 The preset range of supported vGPU versions was successfully overridden.\n * - \\ref NVML_ERROR_NOT_SUPPORTED     The API is not supported.\n * - \\ref NVML_ERROR_IN_USE            The range was not overridden because a VM is running on the host.\n * - \\ref NVML_ERROR_INVALID_ARGUMENT  The \\a vgpuVersion parameter specifies a range that is outside the range supported by the NVIDIA vGPU Manager or if \\a vgpuVersion is NULL.\n */\nnvmlReturn_t DECLDIR nvmlSetVgpuVersion(nvmlVgpuVersion_t *vgpuVersion);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUtil vGPU Utilization and Accounting\n * This chapter describes operations that are associated with vGPU Utilization and Accounting.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves current utilization for vGPUs on a physical GPU (device).\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for vGPU instances running\n * on a device. Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer\n * pointed at by \\a utilizationSamples. One utilization sample structure is returned per vGPU instance, and includes the\n * CPU timestamp at which the samples were recorded. Individual utilization values are returned as \"unsigned int\" values\n * in nvmlValue_t unions. The function sets the caller-supplied \\a sampleValType to NVML_VALUE_TYPE_UNSIGNED_INT to\n * indicate the returned value type.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilizationSamples set to NULL. The function will return NVML_ERROR_INSUFFICIENT_SIZE, with the current vGPU instance\n * count in \\a vgpuInstanceSamplesCount, or NVML_SUCCESS if the current vGPU instance count is zero. The caller should allocate\n * a buffer of size vgpuInstanceSamplesCount * sizeof(nvmlVgpuInstanceUtilizationSample_t). Invoke the function again with\n * the allocated buffer passed in \\a utilizationSamples, and \\a vgpuInstanceSamplesCount set to the number of entries the\n * buffer is sized for.\n *\n * On successful return, the function updates \\a vgpuInstanceSampleCount with the number of vGPU utilization sample\n * structures that were actually written. This may differ from a previously read value as vGPU instances are created or\n * destroyed.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @param device                        The identifier for the target device\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param sampleValType                 Pointer to caller-supplied buffer to hold the type of returned sample values\n * @param vgpuInstanceSamplesCount      Pointer to caller-supplied array size, and returns number of vGPU instances\n * @param utilizationSamples            Pointer to caller-supplied buffer in which vGPU utilization samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if utilization samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a vgpuInstanceSamplesCount or \\a sampleValType is\n *                                             NULL, or a sample count of 0 is passed with a non-NULL \\a utilizationSamples\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if supplied \\a vgpuInstanceSamplesCount is too small to return samples for all\n *                                             vGPU instances currently executing on the device\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,\n                                                  nvmlValueType_t *sampleValType, unsigned int *vgpuInstanceSamplesCount,\n                                                  nvmlVgpuInstanceUtilizationSample_t *utilizationSamples);\n\n/**\n * Retrieves current utilization for processes running on vGPUs on a physical GPU (device).\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for processes running on\n * vGPU instances active on a device. Utilization values are returned as an array of utilization sample structures in the\n * caller-supplied buffer pointed at by \\a utilizationSamples. One utilization sample structure is returned per process running\n * on vGPU instances, that had some non-zero utilization during the last sample period. It includes the CPU timestamp at which\n * the samples were recorded. Individual utilization values are returned as \"unsigned int\" values.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilizationSamples set to NULL. The function will return NVML_ERROR_INSUFFICIENT_SIZE, with the current vGPU instance\n * count in \\a vgpuProcessSamplesCount. The caller should allocate a buffer of size\n * vgpuProcessSamplesCount * sizeof(nvmlVgpuProcessUtilizationSample_t). Invoke the function again with\n * the allocated buffer passed in \\a utilizationSamples, and \\a vgpuProcessSamplesCount set to the number of entries the\n * buffer is sized for.\n *\n * On successful return, the function updates \\a vgpuSubProcessSampleCount with the number of vGPU sub process utilization sample\n * structures that were actually written. This may differ from a previously read value depending on the number of processes that are active\n * in any given sample period.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @param device                        The identifier for the target device\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param vgpuProcessSamplesCount       Pointer to caller-supplied array size, and returns number of processes running on vGPU instances\n * @param utilizationSamples            Pointer to caller-supplied buffer in which vGPU sub process utilization samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if utilization samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a vgpuProcessSamplesCount or a sample count of 0 is\n *                                             passed with a non-NULL \\a utilizationSamples\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if supplied \\a vgpuProcessSamplesCount is too small to return samples for all\n *                                             vGPU instances currently executing on the device\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuProcessUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,\n                                                         unsigned int *vgpuProcessSamplesCount,\n                                                         nvmlVgpuProcessUtilizationSample_t *utilizationSamples);\n/**\n * Queries the state of per process accounting mode on vGPU.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param mode                    Reference in which to return the current accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running on the vGPU instance\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *mode);\n\n/**\n * Queries list of processes running on vGPU that can be queried for accounting stats. The list of processes\n * returned can be in running or terminated state.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * To just query the maximum number of processes that can be queried, call this function with *count = 0 and\n * pids=NULL. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if list is empty.\n *\n * For more details see \\ref nvmlVgpuInstanceGetAccountingStats.\n *\n * @note In case of PID collision some processes might not be accessible before the circular buffer is full.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param count                   Reference in which to provide the \\a pids array size, and\n *                                to return the number of elements ready to be queried\n * @param pids                    Reference in which to return list of process ids\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if pids were successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to expected value)\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlVgpuInstanceGetAccountingPids\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingPids(nvmlVgpuInstance_t vgpuInstance, unsigned int *count, unsigned int *pids);\n\n/**\n * Queries process's accounting stats.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Accounting stats capture GPU utilization and other statistics across the lifetime of a process, and\n * can be queried during life time of the process or after its termination.\n * The time field in \\ref nvmlAccountingStats_t is reported as 0 during the lifetime of the process and\n * updated to actual running time after its termination.\n * Accounting stats are kept in a circular buffer, newly created processes overwrite information about old\n * processes.\n *\n * See \\ref nvmlAccountingStats_t for description of each returned metric.\n * List of processes that can be queried can be retrieved from \\ref nvmlVgpuInstanceGetAccountingPids.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlVgpuInstanceGetAccountingMode.\n * @note Only compute and graphics applications stats can be queried. Monitoring applications stats can't be\n *         queried since they don't contribute to GPU utilization.\n * @note In case of pid collision stats of only the latest process (that terminated last) will be reported\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param pid                     Process Id of the target process to query stats for\n * @param stats                   Reference in which to return the process's accounting stats\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if stats have been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a stats is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *                                             or \\a stats is not found\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingStats(nvmlVgpuInstance_t vgpuInstance, unsigned int pid, nvmlAccountingStats_t *stats);\n\n/**\n * Clears accounting information of the vGPU instance that have already terminated.\n *\n * For Maxwell &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlVgpuInstanceGetAccountingMode.\n * @note Only compute and graphics applications stats are reported and can be cleared since monitoring applications\n *         stats don't contribute to GPU utilization.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if accounting information has been cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceClearAccountingPids(nvmlVgpuInstance_t vgpuInstance);\n\n/**\n * Query the license information of the vGPU instance.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance              Identifier of the target vGPU instance\n * @param licenseInfo               Pointer to vGPU license information structure\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if information is successfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a licenseInfo is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running on the vGPU instance\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetLicenseInfo_v2(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuLicenseInfo_t *licenseInfo);\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlExcludedGpuQueries Excluded GPU Queries\n * This chapter describes NVML operations that are associated with excluded GPUs.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Excluded GPU device information\n **/\ntypedef struct nvmlExcludedDeviceInfo_st\n{\n    nvmlPciInfo_t pciInfo;                   //!< The PCI information for the excluded GPU\n    char uuid[NVML_DEVICE_UUID_BUFFER_SIZE]; //!< The ASCII string UUID for the excluded GPU\n} nvmlExcludedDeviceInfo_t;\n\n /**\n * Retrieves the number of excluded GPU devices in the system.\n *\n * For all products.\n *\n * @param deviceCount                          Reference in which to return the number of excluded devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a deviceCount is NULL\n */\nnvmlReturn_t DECLDIR nvmlGetExcludedDeviceCount(unsigned int *deviceCount);\n\n/**\n * Acquire the device information for an excluded GPU device, based on its index.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a deviceCount returned by\n *   \\ref nvmlGetExcludedDeviceCount(). For example, if \\a deviceCount is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * @param index                                The index of the target GPU, >= 0 and < \\a deviceCount\n * @param info                                 Reference in which to return the device information\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a index is invalid or \\a info is NULL\n *\n * @see nvmlGetExcludedDeviceCount\n */\nnvmlReturn_t DECLDIR nvmlGetExcludedDeviceInfoByIndex(unsigned int index, nvmlExcludedDeviceInfo_t *info);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlMultiInstanceGPU Multi Instance GPU Management\n * This chapter describes NVML operations that are associated with Multi Instance GPU management.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Disable Multi Instance GPU mode.\n */\n#define NVML_DEVICE_MIG_DISABLE 0x0\n\n/**\n * Enable Multi Instance GPU mode.\n */\n#define NVML_DEVICE_MIG_ENABLE 0x1\n\n/**\n * GPU instance profiles.\n *\n * These macros should be passed to \\ref nvmlDeviceGetGpuInstanceProfileInfo to retrieve the\n * detailed information about a GPU instance such as profile ID, engine counts.\n */\n#define NVML_GPU_INSTANCE_PROFILE_1_SLICE      0x0\n#define NVML_GPU_INSTANCE_PROFILE_2_SLICE      0x1\n#define NVML_GPU_INSTANCE_PROFILE_3_SLICE      0x2\n#define NVML_GPU_INSTANCE_PROFILE_4_SLICE      0x3\n#define NVML_GPU_INSTANCE_PROFILE_7_SLICE      0x4\n#define NVML_GPU_INSTANCE_PROFILE_8_SLICE      0x5\n#define NVML_GPU_INSTANCE_PROFILE_6_SLICE      0x6\n#define NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1 0x7\n#define NVML_GPU_INSTANCE_PROFILE_2_SLICE_REV1 0x8\n#define NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV2 0x9\n#define NVML_GPU_INSTANCE_PROFILE_COUNT        0xA\n\ntypedef struct nvmlGpuInstancePlacement_st\n{\n    unsigned int start;               //!< Index of first occupied memory slice\n    unsigned int size;                //!< Number of memory slices occupied\n} nvmlGpuInstancePlacement_t;\n\n/**\n * GPU instance profile information.\n */\ntypedef struct nvmlGpuInstanceProfileInfo_st\n{\n    unsigned int id;                  //!< Unique profile ID within the device\n    unsigned int isP2pSupported;      //!< Peer-to-Peer support\n    unsigned int sliceCount;          //!< GPU Slice count\n    unsigned int instanceCount;       //!< GPU instance count\n    unsigned int multiprocessorCount; //!< Streaming Multiprocessor count\n    unsigned int copyEngineCount;     //!< Copy Engine count\n    unsigned int decoderCount;        //!< Decoder Engine count\n    unsigned int encoderCount;        //!< Encoder Engine count\n    unsigned int jpegCount;           //!< JPEG Engine count\n    unsigned int ofaCount;            //!< OFA Engine count\n    unsigned long long memorySizeMB;  //!< Memory size in MBytes\n} nvmlGpuInstanceProfileInfo_t;\n\n/**\n * GPU instance profile information (v2).\n *\n * Version 2 adds the \\ref nvmlGpuInstanceProfileInfo_v2_t.version field\n * to the start of the structure, and the \\ref nvmlGpuInstanceProfileInfo_v2_t.name\n * field to the end. This structure is not backwards-compatible with\n * \\ref nvmlGpuInstanceProfileInfo_t.\n */\ntypedef struct nvmlGpuInstanceProfileInfo_v2_st\n{\n    unsigned int version;                       //!< Structure version identifier (set to \\ref nvmlGpuInstanceProfileInfo_v2)\n    unsigned int id;                            //!< Unique profile ID within the device\n    unsigned int isP2pSupported;                //!< Peer-to-Peer support\n    unsigned int sliceCount;                    //!< GPU Slice count\n    unsigned int instanceCount;                 //!< GPU instance count\n    unsigned int multiprocessorCount;           //!< Streaming Multiprocessor count\n    unsigned int copyEngineCount;               //!< Copy Engine count\n    unsigned int decoderCount;                  //!< Decoder Engine count\n    unsigned int encoderCount;                  //!< Encoder Engine count\n    unsigned int jpegCount;                     //!< JPEG Engine count\n    unsigned int ofaCount;                      //!< OFA Engine count\n    unsigned long long memorySizeMB;            //!< Memory size in MBytes\n    char name[NVML_DEVICE_NAME_V2_BUFFER_SIZE]; //!< Profile name\n} nvmlGpuInstanceProfileInfo_v2_t;\n\n/**\n * Version identifier value for \\ref nvmlGpuInstanceProfileInfo_v2_t.version.\n */\n#define nvmlGpuInstanceProfileInfo_v2 NVML_STRUCT_VERSION(GpuInstanceProfileInfo, 2)\n\ntypedef struct nvmlGpuInstanceInfo_st\n{\n    nvmlDevice_t device;                      //!< Parent device\n    unsigned int id;                          //!< Unique instance ID within the device\n    unsigned int profileId;                   //!< Unique profile ID within the device\n    nvmlGpuInstancePlacement_t placement;     //!< Placement for this instance\n} nvmlGpuInstanceInfo_t;\n\ntypedef struct\n{\n    struct nvmlGpuInstance_st* handle;\n} nvmlGpuInstance_t;\n\n/**\n * Compute instance profiles.\n *\n * These macros should be passed to \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo to retrieve the\n * detailed information about a compute instance such as profile ID, engine counts\n */\n#define NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE 0x0\n#define NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE 0x1\n#define NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE 0x2\n#define NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE 0x3\n#define NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE 0x4\n#define NVML_COMPUTE_INSTANCE_PROFILE_8_SLICE 0x5\n#define NVML_COMPUTE_INSTANCE_PROFILE_6_SLICE 0x6\n#define NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1  0x7\n#define NVML_COMPUTE_INSTANCE_PROFILE_COUNT         0x8\n\n#define NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED 0x0 //!< All the engines except multiprocessors would be shared\n#define NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT  0x1\n\ntypedef struct nvmlComputeInstancePlacement_st\n{\n    unsigned int start;                 //!< Index of first occupied compute slice\n    unsigned int size;                  //!< Number of compute slices occupied\n} nvmlComputeInstancePlacement_t;\n\n/**\n * Compute instance profile information.\n */\ntypedef struct nvmlComputeInstanceProfileInfo_st\n{\n    unsigned int id;                    //!< Unique profile ID within the GPU instance\n    unsigned int sliceCount;            //!< GPU Slice count\n    unsigned int instanceCount;         //!< Compute instance count\n    unsigned int multiprocessorCount;   //!< Streaming Multiprocessor count\n    unsigned int sharedCopyEngineCount; //!< Shared Copy Engine count\n    unsigned int sharedDecoderCount;    //!< Shared Decoder Engine count\n    unsigned int sharedEncoderCount;    //!< Shared Encoder Engine count\n    unsigned int sharedJpegCount;       //!< Shared JPEG Engine count\n    unsigned int sharedOfaCount;        //!< Shared OFA Engine count\n} nvmlComputeInstanceProfileInfo_t;\n\n/**\n * Compute instance profile information (v2).\n *\n * Version 2 adds the \\ref nvmlComputeInstanceProfileInfo_v2_t.version field\n * to the start of the structure, and the \\ref nvmlComputeInstanceProfileInfo_v2_t.name\n * field to the end. This structure is not backwards-compatible with\n * \\ref nvmlComputeInstanceProfileInfo_t.\n */\ntypedef struct nvmlComputeInstanceProfileInfo_v2_st\n{\n    unsigned int version;                       //!< Structure version identifier (set to \\ref nvmlComputeInstanceProfileInfo_v2)\n    unsigned int id;                            //!< Unique profile ID within the GPU instance\n    unsigned int sliceCount;                    //!< GPU Slice count\n    unsigned int instanceCount;                 //!< Compute instance count\n    unsigned int multiprocessorCount;           //!< Streaming Multiprocessor count\n    unsigned int sharedCopyEngineCount;         //!< Shared Copy Engine count\n    unsigned int sharedDecoderCount;            //!< Shared Decoder Engine count\n    unsigned int sharedEncoderCount;            //!< Shared Encoder Engine count\n    unsigned int sharedJpegCount;               //!< Shared JPEG Engine count\n    unsigned int sharedOfaCount;                //!< Shared OFA Engine count\n    char name[NVML_DEVICE_NAME_V2_BUFFER_SIZE]; //!< Profile name\n} nvmlComputeInstanceProfileInfo_v2_t;\n\n/**\n * Version identifier value for \\ref nvmlComputeInstanceProfileInfo_v2_t.version.\n */\n#define nvmlComputeInstanceProfileInfo_v2 NVML_STRUCT_VERSION(ComputeInstanceProfileInfo, 2)\n\ntypedef struct nvmlComputeInstanceInfo_st\n{\n    nvmlDevice_t device;                      //!< Parent device\n    nvmlGpuInstance_t gpuInstance;            //!< Parent GPU instance\n    unsigned int id;                          //!< Unique instance ID within the GPU instance\n    unsigned int profileId;                   //!< Unique profile ID within the GPU instance\n    nvmlComputeInstancePlacement_t placement; //!< Placement for this instance within the GPU instance's compute slice range {0, sliceCount}\n} nvmlComputeInstanceInfo_t;\n\ntypedef struct\n{\n    struct nvmlComputeInstance_st* handle;\n} nvmlComputeInstance_t;\n\n/**\n * Set MIG mode for the device.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Requires root user.\n *\n * This mode determines whether a GPU instance can be created.\n *\n * This API may unbind or reset the device to activate the requested mode. Thus, the attributes associated with the\n * device, such as minor number, might change. The caller of this API is expected to query such attributes again.\n *\n * On certain platforms like pass-through virtualization, where reset functionality may not be exposed directly, VM\n * reboot is required. \\a activationStatus would return \\ref NVML_ERROR_RESET_REQUIRED for such cases.\n *\n * \\a activationStatus would return the appropriate error code upon unsuccessful activation. For example, if device\n * unbind fails because the device isn't idle, \\ref NVML_ERROR_IN_USE would be returned. The caller of this API\n * is expected to idle the device and retry setting the \\a mode.\n *\n * @note On Windows, only disabling MIG mode is supported. \\a activationStatus would return \\ref\n *       NVML_ERROR_NOT_SUPPORTED as GPU reset is not supported on Windows through this API.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The mode to be set, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n * @param activationStatus                     The activationStatus status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device,\\a mode or \\a activationStatus are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't support MIG mode\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetMigMode(nvmlDevice_t device, unsigned int mode, nvmlReturn_t *activationStatus);\n\n/**\n * Get MIG mode for the device.\n *\n * For Ampere &tm; or newer fully supported devices.\n *\n * Changing MIG modes may require device unbind or reset. The \"pending\" MIG mode refers to the target mode following the\n * next activation trigger.\n *\n * @param device                               The identifier of the target device\n * @param currentMode                          Returns the current mode, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n * @param pendingMode                          Returns the pending mode, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a currentMode or \\a pendingMode are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't support MIG mode\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMigMode(nvmlDevice_t device, unsigned int *currentMode, unsigned int *pendingMode);\n\n/**\n * Get GPU instance profile information.\n *\n * Information provided by this API is immutable throughout the lifetime of a MIG mode.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param profile                              One of the NVML_GPU_INSTANCE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profile or \\a info are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceProfileInfo(nvmlDevice_t device, unsigned int profile,\n                                                         nvmlGpuInstanceProfileInfo_t *info);\n\n/**\n * Versioned wrapper around \\ref nvmlDeviceGetGpuInstanceProfileInfo that accepts a versioned\n * \\ref nvmlGpuInstanceProfileInfo_v2_t or later output structure.\n *\n * @note The caller must set the \\ref nvmlGpuInstanceProfileInfo_v2_t.version field to the\n * appropriate version prior to calling this function. For example:\n * \\code\n *     nvmlGpuInstanceProfileInfo_v2_t profileInfo =\n *         { .version = nvmlGpuInstanceProfileInfo_v2 };\n *     nvmlReturn_t result = nvmlDeviceGetGpuInstanceProfileInfoV(device,\n *                                                                profile,\n *                                                                &profileInfo);\n * \\endcode\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param profile                              One of the NVML_GPU_INSTANCE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profile, \\a info, or \\a info->version are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceProfileInfoV(nvmlDevice_t device, unsigned int profile,\n                                                          nvmlGpuInstanceProfileInfo_v2_t *info);\n\n/**\n * Get GPU instance placements.\n *\n * A placement represents the location of a GPU instance within a device. This API only returns all the possible\n * placements for the given profile.\n * A created GPU instance occupies memory slices described by its placement. Creation of new GPU instance will\n * fail if there is overlap with the already occupied memory slices.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param placements                           Returns placements allowed for the profile. Can be NULL to discover number\n *                                             of allowed placements for this profile. If non-NULL must be large enough\n *                                             to accommodate the placements supported by the profile.\n * @param count                                Returns number of allowed placemenets for the profile.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstancePossiblePlacements_v2(nvmlDevice_t device, unsigned int profileId,\n                                                                   nvmlGpuInstancePlacement_t *placements,\n                                                                   unsigned int *count);\n\n/**\n * Get GPU instance profile capacity.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param count                                Returns remaining instance count for the profile ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceRemainingCapacity(nvmlDevice_t device, unsigned int profileId,\n                                                               unsigned int *count);\n\n/**\n * Create GPU instance.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the GPU instance is destroyed explicitly, the GPU instance handle would\n * become invalid. The GPU instance must be recreated to acquire a valid handle.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param gpuInstance                          Returns the GPU instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a device, \\a profile, \\a profileId or \\a gpuInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a device doesn't have MIG mode enabled or in vGPU guest\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested GPU instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlDeviceCreateGpuInstance(nvmlDevice_t device, unsigned int profileId,\n                                                 nvmlGpuInstance_t *gpuInstance);\n\n/**\n * Create GPU instance with the specified placement.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the GPU instance is destroyed explicitly, the GPU instance handle would\n * become invalid. The GPU instance must be recreated to acquire a valid handle.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param placement                            The requested placement. See \\ref nvmlDeviceGetGpuInstancePossiblePlacements_v2\n * @param gpuInstance                          Returns the GPU instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a device, \\a profile, \\a profileId, \\a placement or \\a gpuInstance\n *                                                   are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a device doesn't have MIG mode enabled or in vGPU guest\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested GPU instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlDeviceCreateGpuInstanceWithPlacement(nvmlDevice_t device, unsigned int profileId,\n                                                              const nvmlGpuInstancePlacement_t *placement,\n                                                              nvmlGpuInstance_t *gpuInstance);\n/**\n * Destroy GPU instance.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The GPU instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or in vGPU guest\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_IN_USE            If the GPU instance is in use. This error would be returned if processes\n *                                             (e.g. CUDA application) or compute instances are active on the\n *                                             GPU instance.\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceDestroy(nvmlGpuInstance_t gpuInstance);\n\n/**\n * Get GPU instances for given profile ID.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param gpuInstances                         Returns pre-exiting GPU instances, the buffer must be large enough to\n *                                             accommodate the instances supported by the profile.\n *                                             See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param count                                The count of returned GPU instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId, \\a gpuInstances or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstances(nvmlDevice_t device, unsigned int profileId,\n                                               nvmlGpuInstance_t *gpuInstances, unsigned int *count);\n\n/**\n * Get GPU instances for given instance ID.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param id                                   The GPU instance ID\n * @param gpuInstance                          Returns GPU instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a id or \\a gpuInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_FOUND         If the GPU instance is not found.\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceById(nvmlDevice_t device, unsigned int id, nvmlGpuInstance_t *gpuInstance);\n\n/**\n * Get GPU instance information.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param gpuInstance                          The GPU instance handle\n * @param info                                 Return GPU instance information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance or \\a info are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetInfo(nvmlGpuInstance_t gpuInstance, nvmlGpuInstanceInfo_t *info);\n\n/**\n * Get compute instance profile information.\n *\n * Information provided by this API is immutable throughout the lifetime of a MIG mode.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profile                              One of the NVML_COMPUTE_INSTANCE_PROFILE_*\n * @param engProfile                           One of the NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profile, \\a engProfile or \\a info are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceProfileInfo(nvmlGpuInstance_t gpuInstance, unsigned int profile,\n                                                                  unsigned int engProfile,\n                                                                  nvmlComputeInstanceProfileInfo_t *info);\n\n/**\n * Versioned wrapper around \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo that accepts a versioned\n * \\ref nvmlComputeInstanceProfileInfo_v2_t or later output structure.\n *\n * @note The caller must set the \\ref nvmlGpuInstanceProfileInfo_v2_t.version field to the\n * appropriate version prior to calling this function. For example:\n * \\code\n *     nvmlComputeInstanceProfileInfo_v2_t profileInfo =\n *         { .version = nvmlComputeInstanceProfileInfo_v2 };\n *     nvmlReturn_t result = nvmlGpuInstanceGetComputeInstanceProfileInfoV(gpuInstance,\n *                                                                         profile,\n *                                                                         engProfile,\n *                                                                         &profileInfo);\n * \\endcode\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profile                              One of the NVML_COMPUTE_INSTANCE_PROFILE_*\n * @param engProfile                           One of the NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profile, \\a engProfile, \\a info, or \\a info->version are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceProfileInfoV(nvmlGpuInstance_t gpuInstance, unsigned int profile,\n                                                                   unsigned int engProfile,\n                                                                   nvmlComputeInstanceProfileInfo_v2_t *info);\n\n/**\n * Get compute instance profile capacity.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param count                                Returns remaining instance count for the profile ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profileId or \\a availableCount are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceRemainingCapacity(nvmlGpuInstance_t gpuInstance,\n                                                                        unsigned int profileId, unsigned int *count);\n\n/**\n * Get compute instance placements.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * A placement represents the location of a compute instance within a GPU instance. This API only returns all the possible\n * placements for the given profile.\n * A created compute instance occupies compute slices described by its placement. Creation of new compute instance will\n * fail if there is overlap with the already occupied compute slices.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID. See \\ref  nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param placements                           Returns placements allowed for the profile. Can be NULL to discover number\n *                                             of allowed placements for this profile. If non-NULL must be large enough\n *                                             to accommodate the placements supported by the profile.\n * @param count                                Returns number of allowed placemenets for the profile.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profileId or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstancePossiblePlacements(nvmlGpuInstance_t gpuInstance,\n                                                                         unsigned int profileId,\n                                                                         nvmlComputeInstancePlacement_t *placements,\n                                                                         unsigned int *count);\n\n/**\n * Create compute instance.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the parent GPU instance is destroyed or the compute instance is destroyed\n * explicitly, the compute instance handle would become invalid. The compute instance must be recreated to acquire\n * a valid handle.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param computeInstance                      Returns the compute instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a gpuInstance, \\a profile, \\a profileId or \\a computeInstance\n *                                                   are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested compute instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceCreateComputeInstance(nvmlGpuInstance_t gpuInstance, unsigned int profileId,\n                                                          nvmlComputeInstance_t *computeInstance);\n\n/**\n * Create compute instance with the specified placement.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the parent GPU instance is destroyed or the compute instance is destroyed\n * explicitly, the compute instance handle would become invalid. The compute instance must be recreated to acquire\n * a valid handle.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param placement                            The requested placement. See \\ref nvmlGpuInstanceGetComputeInstancePossiblePlacements\n * @param computeInstance                      Returns the compute instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a gpuInstance, \\a profile, \\a profileId or \\a computeInstance\n *                                                   are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested compute instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceCreateComputeInstanceWithPlacement(nvmlGpuInstance_t gpuInstance, unsigned int profileId,\n                                                                       const nvmlComputeInstancePlacement_t *placement,\n                                                                       nvmlComputeInstance_t *computeInstance);\n\n/**\n * Destroy compute instance.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param computeInstance                      The compute instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a computeInstance is invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_IN_USE            If the compute instance is in use. This error would be returned if\n *                                             processes (e.g. CUDA application) are active on the compute instance.\n */\nnvmlReturn_t DECLDIR nvmlComputeInstanceDestroy(nvmlComputeInstance_t computeInstance);\n\n/**\n * Get compute instances for given profile ID.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param computeInstances                     Returns pre-exiting compute instances, the buffer must be large enough to\n *                                             accommodate the instances supported by the profile.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param count                                The count of returned compute instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profileId, \\a computeInstances or \\a count\n *                                             are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstances(nvmlGpuInstance_t gpuInstance, unsigned int profileId,\n                                                        nvmlComputeInstance_t *computeInstances, unsigned int *count);\n\n/**\n * Get compute instance for given instance ID.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param id                                   The compute instance ID\n * @param computeInstance                      Returns compute instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a ID or \\a computeInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_FOUND         If the compute instance is not found.\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceById(nvmlGpuInstance_t gpuInstance, unsigned int id,\n                                                           nvmlComputeInstance_t *computeInstance);\n\n/**\n * Get compute instance information.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param computeInstance                      The compute instance handle\n * @param info                                 Return compute instance information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a computeInstance or \\a info are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlComputeInstanceGetInfo_v2(nvmlComputeInstance_t computeInstance, nvmlComputeInstanceInfo_t *info);\n\n/**\n * Test if the given handle refers to a MIG device.\n *\n * A MIG device handle is an NVML abstraction which maps to a MIG compute instance.\n * These overloaded references can be used (with some restrictions) interchangeably\n * with a GPU device handle to execute queries at a per-compute instance granularity.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               NVML handle to test\n * @param isMigDevice                          True when handle refers to a MIG device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a device status was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device handle or \\a isMigDevice reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this check is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceIsMigDeviceHandle(nvmlDevice_t device, unsigned int *isMigDevice);\n\n/**\n * Get GPU instance ID for the given MIG device handle.\n *\n * GPU instance IDs are unique per device and remain valid until the GPU instance is destroyed.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target MIG device handle\n * @param id                                   GPU instance ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if instance ID was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a id reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceId(nvmlDevice_t device, unsigned int *id);\n\n/**\n * Get compute instance ID for the given MIG device handle.\n *\n * Compute instance IDs are unique per GPU instance and remain valid until the compute instance\n * is destroyed.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target MIG device handle\n * @param id                                   Compute instance ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if instance ID was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a id reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeInstanceId(nvmlDevice_t device, unsigned int *id);\n\n/**\n * Get the maximum number of MIG devices that can exist under a given parent NVML device.\n *\n * Returns zero if MIG is not supported or enabled.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target device handle\n * @param count                                Count of MIG devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a count reference is invalid\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxMigDeviceCount(nvmlDevice_t device, unsigned int *count);\n\n/**\n * Get MIG device handle for the given index under its parent NVML device.\n *\n * If the compute instance is destroyed either explicitly or by destroying,\n * resetting or unbinding the parent GPU instance or the GPU device itself\n * the MIG device handle would remain invalid and must be requested again\n * using this API. Handles may be reused and their properties can change in\n * the process.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Reference to the parent GPU device handle\n * @param index                                Index of the MIG device\n * @param migDevice                            Reference to the MIG device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a migDevice handle was successfully created\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a index or \\a migDevice reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_NOT_FOUND         if no valid MIG device was found at \\a index\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMigDeviceHandleByIndex(nvmlDevice_t device, unsigned int index,\n                                                         nvmlDevice_t *migDevice);\n\n/**\n * Get parent device handle from a MIG device handle.\n *\n * For Ampere &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param migDevice                            MIG device handle\n * @param device                               Device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a device handle was successfully created\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a migDevice or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDeviceHandleFromMigDeviceHandle(nvmlDevice_t migDevice, nvmlDevice_t *device);\n\n/**\n * Get the type of the GPU Bus (PCIe, PCI, ...)\n *\n * @param device                               The identifier of the target device\n * @param type                                 The PCI Bus type\n *\n * return\n *         - \\ref NVML_SUCCESS                 if the bus \\a type is successfully retreived\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\device is invalid or \\type is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBusType(nvmlDevice_t device, nvmlBusType_t *type);\n\n/**\n * Retrieve performance monitor samples from the associated subdevice.\n *\n * @param device\n * @param pDynamicPstatesInfo\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pDynamicPstatesInfo has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pDynamicPstatesInfo is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDynamicPstatesInfo(nvmlDevice_t device, nvmlGpuDynamicPstatesInfo_t *pDynamicPstatesInfo);\n\n/**\n * Sets the speed of a specified fan.\n *\n * WARNING: This function changes the fan control policy to manual. It means that YOU have to monitor\n *          the temperature and adjust the fan speed accordingly.\n *          If you set the fan speed too low you can burn your GPU!\n *          Use nvmlDeviceSetDefaultFanSpeed_v2 to restore default control policy.\n *\n * For all cuda-capable discrete products with fans that are Maxwell or Newer.\n *\n * device                                The identifier of the target device\n * fan                                   The index of the fan, starting at zero\n * speed                                 The target speed of the fan [0-100] in % of max speed\n *\n * return\n *        NVML_SUCCESS                   if the fan speed has been set\n *        NVML_ERROR_UNINITIALIZED       if the library has not been successfully initialized\n *        NVML_ERROR_INVALID_ARGUMENT    if the device is not valid, or the speed is outside acceptable ranges,\n *                                              or if the fan index doesn't reference an actual fan.\n *        NVML_ERROR_NOT_SUPPORTED       if the device is older than Maxwell.\n *        NVML_ERROR_UNKNOWN             if there was an unexpected error.\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int speed);\n\n/**\n * Retrieve the GPCCLK VF offset value\n * @param[in]   device                         The identifier of the target device\n * @param[out]  offset                         The retrieved GPCCLK VF offset value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been successfully queried\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpcClkVfOffset(nvmlDevice_t device, int *offset);\n\n/**\n * Set the GPCCLK VF offset value\n * @param[in]   device                         The identifier of the target device\n * @param[in]   offset                         The GPCCLK VF offset value to set\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetGpcClkVfOffset(nvmlDevice_t device, int offset);\n\n/**\n * Retrieve the MemClk (Memory Clock) VF offset value.\n * @param[in]   device                         The identifier of the target device\n * @param[out]  offset                         The retrieved MemClk VF offset value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been successfully queried\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemClkVfOffset(nvmlDevice_t device, int *offset);\n\n/**\n * Set the MemClk (Memory Clock) VF offset value. It requires elevated privileges.\n * @param[in]   device                         The identifier of the target device\n * @param[in]   offset                         The MemClk VF offset value to set\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetMemClkVfOffset(nvmlDevice_t device, int offset);\n\n/**\n * Retrieve min and max clocks of some clock domain for a given PState\n *\n * @param device                               The identifier of the target device\n * @param type                                 Clock domain\n * @param pstate                               PState to query\n * @param minClockMHz                          Reference in which to return min clock frequency\n * @param maxClockMHz                          Reference in which to return max clock frequency\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if everything worked\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a type or \\a pstate are invalid or both\n *                                                  \\a minClockMHz and \\a maxClockMHz are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMinMaxClockOfPState(nvmlDevice_t device, nvmlClockType_t type, nvmlPstates_t pstate,\n                                                      unsigned int * minClockMHz, unsigned int * maxClockMHz);\n\n/**\n * Get all supported Performance States (P-States) for the device.\n *\n * The returned array would contain a contiguous list of valid P-States supported by\n * the device. If the number of supported P-States is fewer than the size of the array\n * supplied missing elements would contain \\a NVML_PSTATE_UNKNOWN.\n *\n * The number of elements in the returned list will never exceed \\a NVML_MAX_GPU_PERF_PSTATES.\n *\n * @param device                               The identifier of the target device\n * @param pstates                              Container to return the list of performance states\n *                                             supported by device\n * @param size                                 Size of the supplied \\a pstates array in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pstates array has been retrieved\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if the the container supplied was not large enough to\n *                                             hold the resulting list\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a pstates is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support performance state readings\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedPerformanceStates(nvmlDevice_t device,\n                                                             nvmlPstates_t *pstates, unsigned int size);\n\n/**\n * Retrieve the GPCCLK min max VF offset value.\n * @param[in]   device                         The identifier of the target device\n * @param[out]  minOffset                      The retrieved GPCCLK VF min offset value\n * @param[out]  maxOffset                      The retrieved GPCCLK VF max offset value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been successfully queried\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpcClkMinMaxVfOffset(nvmlDevice_t device,\n                                                       int *minOffset, int *maxOffset);\n\n/**\n * Retrieve the MemClk (Memory Clock) min max VF offset value.\n * @param[in]   device                         The identifier of the target device\n * @param[out]  minOffset                      The retrieved MemClk VF min offset value\n * @param[out]  maxOffset                      The retrieved MemClk VF max offset value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a offset has been successfully queried\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a offset is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemClkMinMaxVfOffset(nvmlDevice_t device,\n                                                       int *minOffset, int *maxOffset);\n\n/**\n * Get fabric information associated with the device.\n *\n * %HOPPER_OR_NEWER%\n *\n * On Hopper + NVSwitch systems, GPU is registered with the NVIDIA Fabric Manager\n * Upon successful registration, the GPU is added to the NVLink fabric to enable\n * peer-to-peer communication.\n * This API reports the current state of the GPU in the NVLink fabric\n * along with other useful information.\n *\n * @param device                               The identifier of the target device\n * @param gpuFabricInfo                        Information about GPU fabric state\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't support gpu fabric\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfo(nvmlDevice_t device, nvmlGpuFabricInfo_t *gpuFabricInfo);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup GPM NVML GPM\n *  @{\n */\n/***************************************************************************************************/\n/** @defgroup nvmlGpmEnums GPM Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/* GPM Metric Identifiers */\ntypedef enum\n{\n    NVML_GPM_METRIC_GRAPHICS_UTIL           = 1, /* Percentage of time any compute/graphics app was active on the GPU. 0.0 - 100.0 */\n    NVML_GPM_METRIC_SM_UTIL                 = 2, /* Percentage of SMs that were busy. 0.0 - 100.0 */\n    NVML_GPM_METRIC_SM_OCCUPANCY            = 3, /* Percentage of warps that were active vs theoretical maximum. 0.0 - 100.0 */\n    NVML_GPM_METRIC_INTEGER_UTIL            = 4, /* Percentage of time the GPU's SMs were doing integer operations. 0.0 - 100.0 */\n    NVML_GPM_METRIC_ANY_TENSOR_UTIL         = 5, /* Percentage of time the GPU's SMs were doing ANY tensor operations. 0.0 - 100.0 */\n    NVML_GPM_METRIC_DFMA_TENSOR_UTIL        = 6, /* Percentage of time the GPU's SMs were doing DFMA tensor operations. 0.0 - 100.0 */\n    NVML_GPM_METRIC_HMMA_TENSOR_UTIL        = 7, /* Percentage of time the GPU's SMs were doing HMMA tensor operations. 0.0 - 100.0 */\n    NVML_GPM_METRIC_IMMA_TENSOR_UTIL        = 9, /* Percentage of time the GPU's SMs were doing IMMA tensor operations. 0.0 - 100.0 */\n    NVML_GPM_METRIC_DRAM_BW_UTIL            = 10, /* Percentage of DRAM bw used vs theoretical maximum. 0.0 - 100.0 */\n    NVML_GPM_METRIC_FP64_UTIL               = 11, /* Percentage of time the GPU's SMs were doing non-tensor FP64 math. 0.0 - 100.0 */\n    NVML_GPM_METRIC_FP32_UTIL               = 12, /* Percentage of time the GPU's SMs were doing non-tensor FP32 math. 0.0 - 100.0 */\n    NVML_GPM_METRIC_FP16_UTIL               = 13, /* Percentage of time the GPU's SMs were doing non-tensor FP16 math. 0.0 - 100.0 */\n    NVML_GPM_METRIC_PCIE_TX_PER_SEC         = 20, /* PCIe traffic from this GPU in MiB/sec */\n    NVML_GPM_METRIC_PCIE_RX_PER_SEC         = 21, /* PCIe traffic to this GPU in MiB/sec */\n    NVML_GPM_METRIC_NVDEC_0_UTIL            = 30, /* Percent utilization of NVDEC 0. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_1_UTIL            = 31, /* Percent utilization of NVDEC 1. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_2_UTIL            = 32, /* Percent utilization of NVDEC 2. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_3_UTIL            = 33, /* Percent utilization of NVDEC 3. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_4_UTIL            = 34, /* Percent utilization of NVDEC 4. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_5_UTIL            = 35, /* Percent utilization of NVDEC 5. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_6_UTIL            = 36, /* Percent utilization of NVDEC 6. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVDEC_7_UTIL            = 37, /* Percent utilization of NVDEC 7. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_0_UTIL            = 40, /* Percent utilization of NVJPG 0. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_1_UTIL            = 41, /* Percent utilization of NVJPG 1. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_2_UTIL            = 42, /* Percent utilization of NVJPG 2. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_3_UTIL            = 43, /* Percent utilization of NVJPG 3. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_4_UTIL            = 44, /* Percent utilization of NVJPG 4. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_5_UTIL            = 45, /* Percent utilization of NVJPG 5. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_6_UTIL            = 46, /* Percent utilization of NVJPG 6. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVJPG_7_UTIL            = 47, /* Percent utilization of NVJPG 7. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVOFA_0_UTIL            = 50, /* Percent utilization of NVOFA 0. 0.0 - 100.0 */\n    NVML_GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC = 60, /* NvLink read bandwidth for all links in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC = 61, /* NvLink write bandwidth for all links in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L0_RX_PER_SEC    = 62, /* NvLink read bandwidth for link 0 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L0_TX_PER_SEC    = 63, /* NvLink write bandwidth for link 0 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L1_RX_PER_SEC    = 64, /* NvLink read bandwidth for link 1 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L1_TX_PER_SEC    = 65, /* NvLink write bandwidth for link 1 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L2_RX_PER_SEC    = 66, /* NvLink read bandwidth for link 2 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L2_TX_PER_SEC    = 67, /* NvLink write bandwidth for link 2 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L3_RX_PER_SEC    = 68, /* NvLink read bandwidth for link 3 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L3_TX_PER_SEC    = 69, /* NvLink write bandwidth for link 3 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L4_RX_PER_SEC    = 70, /* NvLink read bandwidth for link 4 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L4_TX_PER_SEC    = 71, /* NvLink write bandwidth for link 4 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L5_RX_PER_SEC    = 72, /* NvLink read bandwidth for link 5 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L5_TX_PER_SEC    = 73, /* NvLink write bandwidth for link 5 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L6_RX_PER_SEC    = 74, /* NvLink read bandwidth for link 6 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L6_TX_PER_SEC    = 75, /* NvLink write bandwidth for link 6 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L7_RX_PER_SEC    = 76, /* NvLink read bandwidth for link 7 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L7_TX_PER_SEC    = 77, /* NvLink write bandwidth for link 7 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L8_RX_PER_SEC    = 78, /* NvLink read bandwidth for link 8 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L8_TX_PER_SEC    = 79, /* NvLink write bandwidth for link 8 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L9_RX_PER_SEC    = 80, /* NvLink read bandwidth for link 9 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L9_TX_PER_SEC    = 81, /* NvLink write bandwidth for link 9 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L10_RX_PER_SEC   = 82, /* NvLink read bandwidth for link 10 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L10_TX_PER_SEC   = 83, /* NvLink write bandwidth for link 10 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L11_RX_PER_SEC   = 84, /* NvLink read bandwidth for link 11 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L11_TX_PER_SEC   = 85, /* NvLink write bandwidth for link 11 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L12_RX_PER_SEC   = 86, /* NvLink read bandwidth for link 12 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L12_TX_PER_SEC   = 87, /* NvLink write bandwidth for link 12 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L13_RX_PER_SEC   = 88, /* NvLink read bandwidth for link 13 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L13_TX_PER_SEC   = 89, /* NvLink write bandwidth for link 13 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L14_RX_PER_SEC   = 90, /* NvLink read bandwidth for link 14 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L14_TX_PER_SEC   = 91, /* NvLink write bandwidth for link 14 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L15_RX_PER_SEC   = 92, /* NvLink read bandwidth for link 15 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L15_TX_PER_SEC   = 93, /* NvLink write bandwidth for link 15 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L16_RX_PER_SEC   = 94, /* NvLink read bandwidth for link 16 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L16_TX_PER_SEC   = 95, /* NvLink write bandwidth for link 16 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L17_RX_PER_SEC   = 96, /* NvLink read bandwidth for link 17 in MiB/sec */\n    NVML_GPM_METRIC_NVLINK_L17_TX_PER_SEC   = 97, /* NvLink write bandwidth for link 17 in MiB/sec */\n    NVML_GPM_METRIC_MAX                     = 98, /* Maximum value above +1. Note that changing this\n                                                     should also change NVML_GPM_METRICS_GET_VERSION\n                                                     due to struct size change */\n} nvmlGpmMetricId_t;\n\n/** @} */ // @defgroup nvmlGpmEnums\n\n\n/***************************************************************************************************/\n/** @defgroup nvmlGpmStructs GPM Structs\n *  @{\n */\n/***************************************************************************************************/\n\n/* Handle to an allocated GPM sample allocated with nvmlGpmSampleAlloc()\n   Free this with nvmlGpmSampleFree() */\ntypedef struct\n{\n    struct nvmlGpmSample_st* handle;\n} nvmlGpmSample_t;\n\ntypedef struct {\n    char *shortName;\n    char *longName;\n    char *unit;\n} nvmlGpmMetricMetricInfo_t;\n\ntypedef struct\n{\n    unsigned int metricId;   /*  IN: NVML_GPM_METRIC_? #define of which metric to retrieve */\n    nvmlReturn_t nvmlReturn; /* OUT: Status of this metric. If this is nonzero, then value is not valid */\n    double value;            /* OUT: Value of this metric. Is only valid if nvmlReturn is 0 (NVML_SUCCESS) */\n    nvmlGpmMetricMetricInfo_t metricInfo;            /* OUT: Metric name and unit. Those can be NULL if not defined */\n} nvmlGpmMetric_t;\n\ntypedef struct\n{\n    unsigned int version;       /* IN: Set to NVML_GPM_METRICS_GET_VERSION */\n    unsigned int numMetrics;    /* IN: How many metrics to retrieve in metrics[] */\n    nvmlGpmSample_t sample1;       /* IN: Sample buffer */\n    nvmlGpmSample_t sample2;       /* IN: Sample buffer */\n    nvmlGpmMetric_t metrics[NVML_GPM_METRIC_MAX]; /* IN/OUT: Array of metrics. Set metricId on call.\n                                                       see nvmlReturn and value on return */\n} nvmlGpmMetricsGet_t;\n\n#define NVML_GPM_METRICS_GET_VERSION 1\n\ntypedef struct\n{\n    unsigned int version;           /* IN: Set to NVML_GPM_SUPPORT_VERSION */\n    unsigned int isSupportedDevice; /* OUT: Indicates device support */\n} nvmlGpmSupport_t;\n\n#define NVML_GPM_SUPPORT_VERSION 1\n\n/** @} */ // @defgroup nvmlGPMStructs\n\n/***************************************************************************************************/\n/** @defgroup nvmlGpmFunctions GPM Functions\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Calculate GPM metrics from two samples.\n *\n *\n * @param metricsGet             IN/OUT: populated nvmlGpmMetricsGet_t struct\n *\n * %HOPPER_OR_NEWER%\n *\n * @return\n *         - \\ref NVML_SUCCESS on success\n *         - Nonzero NVML_ERROR_? enum on error\n */\nnvmlReturn_t DECLDIR nvmlGpmMetricsGet(nvmlGpmMetricsGet_t *metricsGet);\n\n\n/**\n * Free an allocated sample buffer that was allocated with \\ref nvmlGpmSampleAlloc()\n *\n * %HOPPER_OR_NEWER%\n *\n * @param gpmSample              Sample to free\n *\n * @return\n *         - \\ref NVML_SUCCESS                on success\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT if an invalid pointer is provided\n */\nnvmlReturn_t DECLDIR nvmlGpmSampleFree(nvmlGpmSample_t gpmSample);\n\n\n/**\n * Allocate a sample buffer to be used with NVML GPM . You will need to allocate\n * at least two of these buffers to use with the NVML GPM feature\n *\n * %HOPPER_OR_NEWER%\n *\n * @param gpmSample             Where  the allocated sample will be stored\n *\n * @return\n *         - \\ref NVML_SUCCESS                on success\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT if an invalid pointer is provided\n *         - \\ref NVML_ERROR_MEMORY           if system memory is insufficient\n */\nnvmlReturn_t DECLDIR nvmlGpmSampleAlloc(nvmlGpmSample_t *gpmSample);\n\n/**\n * Read a sample of GPM metrics into the provided \\a gpmSample buffer. After\n * two samples are gathered, you can call nvmlGpmMetricGet on those samples to\n * retrive metrics\n *\n * %HOPPER_OR_NEWER%\n *\n * @param device                Device to get samples for\n * @param gpmSample             Buffer to read samples into\n *\n * @return\n *         - \\ref NVML_SUCCESS on success\n *         - Nonzero NVML_ERROR_? enum on error\n */\nnvmlReturn_t DECLDIR nvmlGpmSampleGet(nvmlDevice_t device, nvmlGpmSample_t gpmSample);\n\n/**\n * Read a sample of GPM metrics into the provided \\a gpmSample buffer for a MIG GPU Instance.\n *\n * After two samples are gathered, you can call nvmlGpmMetricGet on those\n * samples to retrive metrics\n *\n * %HOPPER_OR_NEWER%\n *\n * @param device                Device to get samples for\n * @param gpuInstanceId         MIG GPU Instance ID\n * @param gpmSample             Buffer to read samples into\n *\n * @return\n *         - \\ref NVML_SUCCESS on success\n *         - Nonzero NVML_ERROR_? enum on error\n */\nnvmlReturn_t DECLDIR nvmlGpmMigSampleGet(nvmlDevice_t device, unsigned int gpuInstanceId, nvmlGpmSample_t gpmSample);\n\n/**\n * Indicate whether the supplied device supports GPM\n *\n * @param device                NVML device to query for\n * @param gpmSupport            Structure to indicate GPM support. Indicates\n *                              GPM support per system for the supplied device\n *\n * @return\n *         - NVML_SUCCESS on success\n *         - Nonzero NVML_ERROR_? enum if there is an error in processing the query\n */\nnvmlReturn_t DECLDIR nvmlGpmQueryDeviceSupport(nvmlDevice_t device, nvmlGpmSupport_t *gpmSupport);\n\n/** @} */ // @defgroup nvmlGpmFunctions\n/** @} */ // @defgroup GPM\n\n/***************************************************************************************************/\n/** @defgroup nvmlDevice definitions related to Counter Collection Unit\n *  @{\n */\n/***************************************************************************************************/\n\n/* CCU Stream State */\n#define NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE 0\n#define NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE  1\n\n/**\n * Get counter collection unit stream state.\n *\n * %HOPPER_OR_NEWER%\n * Supported on Linux, Windows TCC.\n *\n * @param device                               The identifier of the target device\n * @param state                                Returns counter collection unit stream state\n *                                             NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE or\n *                                             NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a current counter collection unit stream state were successfully queried\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a  device is invalid or \\a state is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n */\nnvmlReturn_t DECLDIR nvmlDeviceCcuGetStreamState(nvmlDevice_t device, unsigned int *state);\n\n/**\n * Set counter collection unit stream state.\n *\n * %HOPPER_OR_NEWER%\n * Supported on Linux, Windows TCC.\n *\n * @param device                               The identifier of the target device\n * @param state                                Counter collection unit stream state,\n *                                             NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE or\n *                                             NVML_COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a current counter collection unit stream state is successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n */\nnvmlReturn_t DECLDIR nvmlDeviceCcuSetStreamState(nvmlDevice_t device, unsigned int state);\n\n/** @} */ // @defgroup CCU\n\n#define NVML_NVLINK_POWER_STATE_HIGH_SPEED    0x0\n#define NVML_NVLINK_POWER_STATE_LOW           0x1\n\n#define NVML_NVLINK_LOW_POWER_THRESHOLD_MIN   0x1\n#define NVML_NVLINK_LOW_POWER_THRESHOLD_MAX   0x1FFF\n#define NVML_NVLINK_LOW_POWER_THRESHOLD_RESET 0xFFFFFFFF\n\n/* Structure containing Low Power parameters */\ntypedef struct nvmlNvLinkPowerThres_st\n{\n    unsigned int lowPwrThreshold;           //!< Low power threshold (in units of 100us)\n} nvmlNvLinkPowerThres_t;\n\n/**\n * Set NvLink Low Power Threshold for device.\n *\n * %HOPPER_OR_NEWER%\n *\n * @param device                               The identifier of the target device\n * @param info                                 Reference to \\a nvmlNvLinkPowerThres_t struct\n *                                             input parameters\n *\n * @return\n *        - \\ref NVML_SUCCESS                 if the \\a Threshold is successfully set\n *        - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a Threshold is not within range\n *        - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *\n **/\nnvmlReturn_t DECLDIR nvmlDeviceSetNvLinkDeviceLowPowerThreshold(nvmlDevice_t device, nvmlNvLinkPowerThres_t *info);\n\n/**\n * NVML API versioning support\n */\n\n#ifdef NVML_NO_UNVERSIONED_FUNC_DEFS\nnvmlReturn_t DECLDIR nvmlInit(void);\nnvmlReturn_t DECLDIR nvmlDeviceGetCount(unsigned int *deviceCount);\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex(unsigned int index, nvmlDevice_t *device);\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId(const char *pciBusId, nvmlDevice_t *device);\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo(nvmlDevice_t device, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo_v2(nvmlDevice_t device, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemotePciInfo(nvmlDevice_t device, unsigned int link, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures_v2(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures_v3(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\nnvmlReturn_t DECLDIR nvmlDeviceRemoveGpu(nvmlPciInfo_t *pciInfo);\nnvmlReturn_t DECLDIR nvmlEventSetWait(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\nnvmlReturn_t DECLDIR nvmlDeviceGetAttributes(nvmlDevice_t device, nvmlDeviceAttributes_t *attributes);\nnvmlReturn_t DECLDIR nvmlComputeInstanceGetInfo(nvmlComputeInstance_t computeInstance, nvmlComputeInstanceInfo_t *info);\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v1_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses_v2(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v2_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetGraphicsRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v1_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetGraphicsRunningProcesses_v2(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v2_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetMPSComputeRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v1_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetMPSComputeRunningProcesses_v2(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_v2_t *infos);\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstancePossiblePlacements(nvmlDevice_t device, unsigned int profileId, nvmlGpuInstancePlacement_t *placements, unsigned int *count);\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetLicenseInfo(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuLicenseInfo_t *licenseInfo);\n\n#endif // #ifdef NVML_NO_UNVERSIONED_FUNC_DEFS\n\n#if defined(NVML_NO_UNVERSIONED_FUNC_DEFS)\n// We don't define APIs to run new versions if this guard is present so there is\n// no need to undef\n#elif defined(__NVML_API_VERSION_INTERNAL)\n#undef nvmlDeviceGetGraphicsRunningProcesses\n#undef nvmlDeviceGetComputeRunningProcesses\n#undef nvmlDeviceGetMPSComputeRunningProcesses\n#undef nvmlDeviceGetAttributes\n#undef nvmlComputeInstanceGetInfo\n#undef nvmlEventSetWait\n#undef nvmlDeviceGetGridLicensableFeatures\n#undef nvmlDeviceRemoveGpu\n#undef nvmlDeviceGetNvLinkRemotePciInfo\n#undef nvmlDeviceGetPciInfo\n#undef nvmlDeviceGetCount\n#undef nvmlDeviceGetHandleByIndex\n#undef nvmlDeviceGetHandleByPciBusId\n#undef nvmlInit\n#undef nvmlBlacklistDeviceInfo_t\n#undef nvmlGetBlacklistDeviceCount\n#undef nvmlGetBlacklistDeviceInfoByIndex\n#undef nvmlDeviceGetGpuInstancePossiblePlacements\n#undef nvmlVgpuInstanceGetLicenseInfo\n\n#endif\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/return.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\n// nvml.ErrorString()\nfunc ErrorString(Result Return) string {\n\treturn nvmlErrorString(Result)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\n// nvml.SystemGetDriverVersion()\nfunc SystemGetDriverVersion() (string, Return) {\n\tVersion := make([]byte, SYSTEM_DRIVER_VERSION_BUFFER_SIZE)\n\tret := nvmlSystemGetDriverVersion(&Version[0], SYSTEM_DRIVER_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\n// nvml.SystemGetNVMLVersion()\nfunc SystemGetNVMLVersion() (string, Return) {\n\tVersion := make([]byte, SYSTEM_NVML_VERSION_BUFFER_SIZE)\n\tret := nvmlSystemGetNVMLVersion(&Version[0], SYSTEM_NVML_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\n// nvml.SystemGetCudaDriverVersion()\nfunc SystemGetCudaDriverVersion() (int, Return) {\n\tvar CudaDriverVersion int32\n\tret := nvmlSystemGetCudaDriverVersion(&CudaDriverVersion)\n\treturn int(CudaDriverVersion), ret\n}\n\n// nvml.SystemGetCudaDriverVersion_v2()\nfunc SystemGetCudaDriverVersion_v2() (int, Return) {\n\tvar CudaDriverVersion int32\n\tret := nvmlSystemGetCudaDriverVersion_v2(&CudaDriverVersion)\n\treturn int(CudaDriverVersion), ret\n}\n\n// nvml.SystemGetProcessName()\nfunc SystemGetProcessName(Pid int) (string, Return) {\n\tName := make([]byte, SYSTEM_PROCESS_NAME_BUFFER_SIZE)\n\tret := nvmlSystemGetProcessName(uint32(Pid), &Name[0], SYSTEM_PROCESS_NAME_BUFFER_SIZE)\n\treturn string(Name[:clen(Name)]), ret\n}\n\n// nvml.SystemGetHicVersion()\nfunc SystemGetHicVersion() ([]HwbcEntry, Return) {\n\tvar HwbcCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tHwbcEntries := make([]HwbcEntry, HwbcCount)\n\t\tret := nvmlSystemGetHicVersion(&HwbcCount, &HwbcEntries[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn HwbcEntries[:HwbcCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tHwbcCount *= 2\n\t}\n}\n\n// nvml.SystemGetTopologyGpuSet()\nfunc SystemGetTopologyGpuSet(CpuNumber int) ([]Device, Return) {\n\tvar Count uint32\n\tret := nvmlSystemGetTopologyGpuSet(uint32(CpuNumber), &Count, nil)\n\tif ret != SUCCESS {\n\t\treturn nil, ret\n\t}\n\tif Count == 0 {\n\t\treturn []Device{}, ret\n\t}\n\tDeviceArray := make([]Device, Count)\n\tret = nvmlSystemGetTopologyGpuSet(uint32(CpuNumber), &Count, &DeviceArray[0])\n\treturn DeviceArray, ret\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go",
    "content": "// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs types.go\n\npackage nvml\n\nimport \"unsafe\"\n\ntype Device struct {\n\tHandle *_Ctype_struct_nvmlDevice_st\n}\n\ntype PciInfo struct {\n\tBusIdLegacy    [16]int8\n\tDomain         uint32\n\tBus            uint32\n\tDevice         uint32\n\tPciDeviceId    uint32\n\tPciSubSystemId uint32\n\tBusId          [32]int8\n}\n\ntype EccErrorCounts struct {\n\tL1Cache      uint64\n\tL2Cache      uint64\n\tDeviceMemory uint64\n\tRegisterFile uint64\n}\n\ntype Utilization struct {\n\tGpu    uint32\n\tMemory uint32\n}\n\ntype Memory struct {\n\tTotal uint64\n\tFree  uint64\n\tUsed  uint64\n}\n\ntype Memory_v2 struct {\n\tVersion  uint32\n\tTotal    uint64\n\tReserved uint64\n\tFree     uint64\n\tUsed     uint64\n}\n\ntype BAR1Memory struct {\n\tBar1Total uint64\n\tBar1Free  uint64\n\tBar1Used  uint64\n}\n\ntype ProcessInfo_v1 struct {\n\tPid           uint32\n\tUsedGpuMemory uint64\n}\n\ntype ProcessInfo_v2 struct {\n\tPid               uint32\n\tUsedGpuMemory     uint64\n\tGpuInstanceId     uint32\n\tComputeInstanceId uint32\n}\n\ntype ProcessInfo struct {\n\tPid               uint32\n\tUsedGpuMemory     uint64\n\tGpuInstanceId     uint32\n\tComputeInstanceId uint32\n}\n\ntype DeviceAttributes struct {\n\tMultiprocessorCount       uint32\n\tSharedCopyEngineCount     uint32\n\tSharedDecoderCount        uint32\n\tSharedEncoderCount        uint32\n\tSharedJpegCount           uint32\n\tSharedOfaCount            uint32\n\tGpuInstanceSliceCount     uint32\n\tComputeInstanceSliceCount uint32\n\tMemorySizeMB              uint64\n}\n\ntype RowRemapperHistogramValues struct {\n\tMax     uint32\n\tHigh    uint32\n\tPartial uint32\n\tLow     uint32\n\tNone    uint32\n}\n\ntype NvLinkUtilizationControl struct {\n\tUnits     uint32\n\tPktfilter uint32\n}\n\ntype BridgeChipInfo struct {\n\tType      uint32\n\tFwVersion uint32\n}\n\ntype BridgeChipHierarchy struct {\n\tBridgeCount    uint8\n\tBridgeChipInfo [128]BridgeChipInfo\n}\n\nconst sizeofValue = unsafe.Sizeof([8]byte{})\n\ntype Value [sizeofValue]byte\n\ntype Sample struct {\n\tTimeStamp   uint64\n\tSampleValue [8]byte\n}\n\ntype ViolationTime struct {\n\tReferenceTime uint64\n\tViolationTime uint64\n}\n\ntype GpuThermalSettingsSensor struct {\n\tController     int32\n\tDefaultMinTemp int32\n\tDefaultMaxTemp int32\n\tCurrentTemp    int32\n\tTarget         int32\n}\n\ntype GpuThermalSettings struct {\n\tCount  uint32\n\tSensor [3]GpuThermalSettingsSensor\n}\n\ntype ClkMonFaultInfo struct {\n\tClkApiDomain       uint32\n\tClkDomainFaultMask uint32\n}\n\ntype ClkMonStatus struct {\n\tBGlobalStatus  uint32\n\tClkMonListSize uint32\n\tClkMonList     [32]ClkMonFaultInfo\n}\n\ntype VgpuTypeId uint32\n\ntype VgpuInstance uint32\n\ntype VgpuInstanceUtilizationSample struct {\n\tVgpuInstance uint32\n\tTimeStamp    uint64\n\tSmUtil       [8]byte\n\tMemUtil      [8]byte\n\tEncUtil      [8]byte\n\tDecUtil      [8]byte\n}\n\ntype VgpuProcessUtilizationSample struct {\n\tVgpuInstance uint32\n\tPid          uint32\n\tProcessName  [64]int8\n\tTimeStamp    uint64\n\tSmUtil       uint32\n\tMemUtil      uint32\n\tEncUtil      uint32\n\tDecUtil      uint32\n}\n\ntype VgpuSchedulerParamsVgpuSchedDataWithARR struct {\n\tAvgFactor uint32\n\tTimeslice uint32\n}\n\ntype VgpuSchedulerParamsVgpuSchedData struct {\n\tTimeslice uint32\n}\n\nconst sizeofVgpuSchedulerParams = unsafe.Sizeof([8]byte{})\n\ntype VgpuSchedulerParams [sizeofVgpuSchedulerParams]byte\n\ntype VgpuSchedulerLogEntry struct {\n\tTimestamp                uint64\n\tTimeRunTotal             uint64\n\tTimeRun                  uint64\n\tSwRunlistId              uint32\n\tTargetTimeSlice          uint64\n\tCumulativePreemptionTime uint64\n}\n\ntype VgpuSchedulerLog struct {\n\tEngineId        uint32\n\tSchedulerPolicy uint32\n\tIsEnabledARR    uint32\n\tSchedulerParams [8]byte\n\tEntriesCount    uint32\n\tLogEntries      [200]VgpuSchedulerLogEntry\n}\n\ntype VgpuSchedulerGetState struct {\n\tSchedulerPolicy uint32\n\tIsEnabledARR    uint32\n\tSchedulerParams [8]byte\n}\n\ntype VgpuSchedulerSetParamsVgpuSchedDataWithARR struct {\n\tAvgFactor uint32\n\tFrequency uint32\n}\n\ntype VgpuSchedulerSetParamsVgpuSchedData struct {\n\tTimeslice uint32\n}\n\nconst sizeofVgpuSchedulerSetParams = unsafe.Sizeof([8]byte{})\n\ntype VgpuSchedulerSetParams [sizeofVgpuSchedulerSetParams]byte\n\ntype VgpuSchedulerSetState struct {\n\tSchedulerPolicy uint32\n\tEnableARRMode   uint32\n\tSchedulerParams [8]byte\n}\n\ntype VgpuSchedulerCapabilities struct {\n\tSupportedSchedulers [3]uint32\n\tMaxTimeslice        uint32\n\tMinTimeslice        uint32\n\tIsArrModeSupported  uint32\n\tMaxFrequencyForARR  uint32\n\tMinFrequencyForARR  uint32\n\tMaxAvgFactorForARR  uint32\n\tMinAvgFactorForARR  uint32\n}\n\ntype VgpuLicenseExpiry struct {\n\tYear      uint32\n\tMonth     uint16\n\tDay       uint16\n\tHour      uint16\n\tMin       uint16\n\tSec       uint16\n\tStatus    uint8\n\tPad_cgo_0 [1]byte\n}\n\ntype VgpuLicenseInfo struct {\n\tIsLicensed    uint8\n\tLicenseExpiry VgpuLicenseExpiry\n\tCurrentState  uint32\n}\n\ntype ProcessUtilizationSample struct {\n\tPid       uint32\n\tTimeStamp uint64\n\tSmUtil    uint32\n\tMemUtil   uint32\n\tEncUtil   uint32\n\tDecUtil   uint32\n}\n\ntype GridLicenseExpiry struct {\n\tYear      uint32\n\tMonth     uint16\n\tDay       uint16\n\tHour      uint16\n\tMin       uint16\n\tSec       uint16\n\tStatus    uint8\n\tPad_cgo_0 [1]byte\n}\n\ntype GridLicensableFeature struct {\n\tFeatureCode    uint32\n\tFeatureState   uint32\n\tLicenseInfo    [128]int8\n\tProductName    [128]int8\n\tFeatureEnabled uint32\n\tLicenseExpiry  GridLicenseExpiry\n}\n\ntype GridLicensableFeatures struct {\n\tIsGridLicenseSupported  int32\n\tLicensableFeaturesCount uint32\n\tGridLicensableFeatures  [3]GridLicensableFeature\n}\n\ntype DeviceArchitecture uint32\n\ntype BusType uint32\n\ntype FanControlPolicy uint32\n\ntype PowerSource uint32\n\ntype GpuDynamicPstatesInfoUtilization struct {\n\tBIsPresent   uint32\n\tPercentage   uint32\n\tIncThreshold uint32\n\tDecThreshold uint32\n}\n\ntype GpuDynamicPstatesInfo struct {\n\tFlags       uint32\n\tUtilization [8]GpuDynamicPstatesInfoUtilization\n}\n\ntype FieldValue struct {\n\tFieldId     uint32\n\tScopeId     uint32\n\tTimestamp   int64\n\tLatencyUsec int64\n\tValueType   uint32\n\tNvmlReturn  uint32\n\tValue       [8]byte\n}\n\ntype Unit struct {\n\tHandle *_Ctype_struct_nvmlUnit_st\n}\n\ntype HwbcEntry struct {\n\tHwbcId          uint32\n\tFirmwareVersion [32]int8\n}\n\ntype LedState struct {\n\tCause [256]int8\n\tColor uint32\n}\n\ntype UnitInfo struct {\n\tName            [96]int8\n\tId              [96]int8\n\tSerial          [96]int8\n\tFirmwareVersion [96]int8\n}\n\ntype PSUInfo struct {\n\tState   [256]int8\n\tCurrent uint32\n\tVoltage uint32\n\tPower   uint32\n}\n\ntype UnitFanInfo struct {\n\tSpeed uint32\n\tState uint32\n}\n\ntype UnitFanSpeeds struct {\n\tFans  [24]UnitFanInfo\n\tCount uint32\n}\n\ntype EventSet struct {\n\tHandle *_Ctype_struct_nvmlEventSet_st\n}\n\ntype EventData struct {\n\tDevice            Device\n\tEventType         uint64\n\tEventData         uint64\n\tGpuInstanceId     uint32\n\tComputeInstanceId uint32\n}\n\ntype AccountingStats struct {\n\tGpuUtilization    uint32\n\tMemoryUtilization uint32\n\tMaxMemoryUsage    uint64\n\tTime              uint64\n\tStartTime         uint64\n\tIsRunning         uint32\n\tReserved          [5]uint32\n}\n\ntype EncoderSessionInfo struct {\n\tSessionId      uint32\n\tPid            uint32\n\tVgpuInstance   uint32\n\tCodecType      uint32\n\tHResolution    uint32\n\tVResolution    uint32\n\tAverageFps     uint32\n\tAverageLatency uint32\n}\n\ntype FBCStats struct {\n\tSessionsCount  uint32\n\tAverageFPS     uint32\n\tAverageLatency uint32\n}\n\ntype FBCSessionInfo struct {\n\tSessionId      uint32\n\tPid            uint32\n\tVgpuInstance   uint32\n\tDisplayOrdinal uint32\n\tSessionType    uint32\n\tSessionFlags   uint32\n\tHMaxResolution uint32\n\tVMaxResolution uint32\n\tHResolution    uint32\n\tVResolution    uint32\n\tAverageFPS     uint32\n\tAverageLatency uint32\n}\n\ntype GpuFabricState byte\n\ntype GpuFabricInfo struct {\n\tClusterUuid [16]int8\n\tStatus      uint32\n\tPartitionId uint32\n\tState       uint8\n\tPad_cgo_0   [3]byte\n}\n\ntype AffinityScope uint32\n\ntype VgpuVersion struct {\n\tMinVersion uint32\n\tMaxVersion uint32\n}\n\ntype nvmlVgpuMetadata struct {\n\tVersion                uint32\n\tRevision               uint32\n\tGuestInfoState         uint32\n\tGuestDriverVersion     [80]int8\n\tHostDriverVersion      [80]int8\n\tReserved               [6]uint32\n\tVgpuVirtualizationCaps uint32\n\tGuestVgpuVersion       uint32\n\tOpaqueDataSize         uint32\n\tOpaqueData             [4]int8\n}\n\ntype nvmlVgpuPgpuMetadata struct {\n\tVersion                uint32\n\tRevision               uint32\n\tHostDriverVersion      [80]int8\n\tPgpuVirtualizationCaps uint32\n\tReserved               [5]uint32\n\tHostSupportedVgpuRange VgpuVersion\n\tOpaqueDataSize         uint32\n\tOpaqueData             [4]int8\n}\n\ntype VgpuPgpuCompatibility struct {\n\tVgpuVmCompatibility    uint32\n\tCompatibilityLimitCode uint32\n}\n\ntype ExcludedDeviceInfo struct {\n\tPciInfo PciInfo\n\tUuid    [80]int8\n}\n\ntype GpuInstancePlacement struct {\n\tStart uint32\n\tSize  uint32\n}\n\ntype GpuInstanceProfileInfo struct {\n\tId                  uint32\n\tIsP2pSupported      uint32\n\tSliceCount          uint32\n\tInstanceCount       uint32\n\tMultiprocessorCount uint32\n\tCopyEngineCount     uint32\n\tDecoderCount        uint32\n\tEncoderCount        uint32\n\tJpegCount           uint32\n\tOfaCount            uint32\n\tMemorySizeMB        uint64\n}\n\ntype GpuInstanceProfileInfo_v2 struct {\n\tVersion             uint32\n\tId                  uint32\n\tIsP2pSupported      uint32\n\tSliceCount          uint32\n\tInstanceCount       uint32\n\tMultiprocessorCount uint32\n\tCopyEngineCount     uint32\n\tDecoderCount        uint32\n\tEncoderCount        uint32\n\tJpegCount           uint32\n\tOfaCount            uint32\n\tMemorySizeMB        uint64\n\tName                [96]int8\n}\n\ntype GpuInstanceInfo struct {\n\tDevice    Device\n\tId        uint32\n\tProfileId uint32\n\tPlacement GpuInstancePlacement\n}\n\ntype GpuInstance struct {\n\tHandle *_Ctype_struct_nvmlGpuInstance_st\n}\n\ntype ComputeInstancePlacement struct {\n\tStart uint32\n\tSize  uint32\n}\n\ntype ComputeInstanceProfileInfo struct {\n\tId                    uint32\n\tSliceCount            uint32\n\tInstanceCount         uint32\n\tMultiprocessorCount   uint32\n\tSharedCopyEngineCount uint32\n\tSharedDecoderCount    uint32\n\tSharedEncoderCount    uint32\n\tSharedJpegCount       uint32\n\tSharedOfaCount        uint32\n}\n\ntype ComputeInstanceProfileInfo_v2 struct {\n\tVersion               uint32\n\tId                    uint32\n\tSliceCount            uint32\n\tInstanceCount         uint32\n\tMultiprocessorCount   uint32\n\tSharedCopyEngineCount uint32\n\tSharedDecoderCount    uint32\n\tSharedEncoderCount    uint32\n\tSharedJpegCount       uint32\n\tSharedOfaCount        uint32\n\tName                  [96]int8\n}\n\ntype ComputeInstanceInfo struct {\n\tDevice      Device\n\tGpuInstance GpuInstance\n\tId          uint32\n\tProfileId   uint32\n\tPlacement   ComputeInstancePlacement\n}\n\ntype ComputeInstance struct {\n\tHandle *_Ctype_struct_nvmlComputeInstance_st\n}\n\ntype GpmSample struct {\n\tHandle *_Ctype_struct_nvmlGpmSample_st\n}\n\ntype GpmMetricMetricInfo struct {\n\tShortName *int8\n\tLongName  *int8\n\tUnit      *int8\n}\n\ntype GpmMetric struct {\n\tMetricId   uint32\n\tNvmlReturn uint32\n\tValue      float64\n\tMetricInfo GpmMetricMetricInfo\n}\n\ntype GpmMetricsGetType struct {\n\tVersion    uint32\n\tNumMetrics uint32\n\tSample1    GpmSample\n\tSample2    GpmSample\n\tMetrics    [98]GpmMetric\n}\n\ntype GpmSupport struct {\n\tVersion           uint32\n\tIsSupportedDevice uint32\n}\n\ntype NvLinkPowerThres struct {\n\tLowPwrThreshold uint32\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/unit.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\n// nvml.UnitGetCount()\nfunc UnitGetCount() (int, Return) {\n\tvar UnitCount uint32\n\tret := nvmlUnitGetCount(&UnitCount)\n\treturn int(UnitCount), ret\n}\n\n// nvml.UnitGetHandleByIndex()\nfunc UnitGetHandleByIndex(Index int) (Unit, Return) {\n\tvar Unit Unit\n\tret := nvmlUnitGetHandleByIndex(uint32(Index), &Unit)\n\treturn Unit, ret\n}\n\n// nvml.UnitGetUnitInfo()\nfunc UnitGetUnitInfo(Unit Unit) (UnitInfo, Return) {\n\tvar Info UnitInfo\n\tret := nvmlUnitGetUnitInfo(Unit, &Info)\n\treturn Info, ret\n}\n\nfunc (Unit Unit) GetUnitInfo() (UnitInfo, Return) {\n\treturn UnitGetUnitInfo(Unit)\n}\n\n// nvml.UnitGetLedState()\nfunc UnitGetLedState(Unit Unit) (LedState, Return) {\n\tvar State LedState\n\tret := nvmlUnitGetLedState(Unit, &State)\n\treturn State, ret\n}\n\nfunc (Unit Unit) GetLedState() (LedState, Return) {\n\treturn UnitGetLedState(Unit)\n}\n\n// nvml.UnitGetPsuInfo()\nfunc UnitGetPsuInfo(Unit Unit) (PSUInfo, Return) {\n\tvar Psu PSUInfo\n\tret := nvmlUnitGetPsuInfo(Unit, &Psu)\n\treturn Psu, ret\n}\n\nfunc (Unit Unit) GetPsuInfo() (PSUInfo, Return) {\n\treturn UnitGetPsuInfo(Unit)\n}\n\n// nvml.UnitGetTemperature()\nfunc UnitGetTemperature(Unit Unit, Type int) (uint32, Return) {\n\tvar Temp uint32\n\tret := nvmlUnitGetTemperature(Unit, uint32(Type), &Temp)\n\treturn Temp, ret\n}\n\nfunc (Unit Unit) GetTemperature(Type int) (uint32, Return) {\n\treturn UnitGetTemperature(Unit, Type)\n}\n\n// nvml.UnitGetFanSpeedInfo()\nfunc UnitGetFanSpeedInfo(Unit Unit) (UnitFanSpeeds, Return) {\n\tvar FanSpeeds UnitFanSpeeds\n\tret := nvmlUnitGetFanSpeedInfo(Unit, &FanSpeeds)\n\treturn FanSpeeds, ret\n}\n\nfunc (Unit Unit) GetFanSpeedInfo() (UnitFanSpeeds, Return) {\n\treturn UnitGetFanSpeedInfo(Unit)\n}\n\n// nvml.UnitGetDevices()\nfunc UnitGetDevices(Unit Unit) ([]Device, Return) {\n\tvar DeviceCount uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tDevices := make([]Device, DeviceCount)\n\t\tret := nvmlUnitGetDevices(Unit, &DeviceCount, &Devices[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn Devices[:DeviceCount], ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tDeviceCount *= 2\n\t}\n}\n\nfunc (Unit Unit) GetDevices() ([]Device, Return) {\n\treturn UnitGetDevices(Unit)\n}\n\n// nvml.UnitSetLedState()\nfunc UnitSetLedState(Unit Unit, Color LedColor) Return {\n\treturn nvmlUnitSetLedState(Unit, Color)\n}\n\nfunc (Unit Unit) SetLedState(Color LedColor) Return {\n\treturn UnitSetLedState(Unit, Color)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go",
    "content": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\n// nvml.VgpuMetadata\ntype VgpuMetadata struct {\n\tnvmlVgpuMetadata\n\tOpaqueData []byte\n}\n\n// nvml.VgpuPgpuMetadata\ntype VgpuPgpuMetadata struct {\n\tnvmlVgpuPgpuMetadata\n\tOpaqueData []byte\n}\n\n// nvml.VgpuTypeGetClass()\nfunc VgpuTypeGetClass(VgpuTypeId VgpuTypeId) (string, Return) {\n\tvar Size uint32 = DEVICE_NAME_BUFFER_SIZE\n\tVgpuTypeClass := make([]byte, DEVICE_NAME_BUFFER_SIZE)\n\tret := nvmlVgpuTypeGetClass(VgpuTypeId, &VgpuTypeClass[0], &Size)\n\treturn string(VgpuTypeClass[:clen(VgpuTypeClass)]), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetClass() (string, Return) {\n\treturn VgpuTypeGetClass(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetName()\nfunc VgpuTypeGetName(VgpuTypeId VgpuTypeId) (string, Return) {\n\tvar Size uint32 = DEVICE_NAME_BUFFER_SIZE\n\tVgpuTypeName := make([]byte, DEVICE_NAME_BUFFER_SIZE)\n\tret := nvmlVgpuTypeGetName(VgpuTypeId, &VgpuTypeName[0], &Size)\n\treturn string(VgpuTypeName[:clen(VgpuTypeName)]), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetName() (string, Return) {\n\treturn VgpuTypeGetName(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetGpuInstanceProfileId()\nfunc VgpuTypeGetGpuInstanceProfileId(VgpuTypeId VgpuTypeId) (uint32, Return) {\n\tvar Size uint32\n\tret := nvmlVgpuTypeGetGpuInstanceProfileId(VgpuTypeId, &Size)\n\treturn Size, ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetGpuInstanceProfileId() (uint32, Return) {\n\treturn VgpuTypeGetGpuInstanceProfileId(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetDeviceID()\nfunc VgpuTypeGetDeviceID(VgpuTypeId VgpuTypeId) (uint64, uint64, Return) {\n\tvar DeviceID, SubsystemID uint64\n\tret := nvmlVgpuTypeGetDeviceID(VgpuTypeId, &DeviceID, &SubsystemID)\n\treturn DeviceID, SubsystemID, ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetDeviceID() (uint64, uint64, Return) {\n\treturn VgpuTypeGetDeviceID(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetFramebufferSize()\nfunc VgpuTypeGetFramebufferSize(VgpuTypeId VgpuTypeId) (uint64, Return) {\n\tvar FbSize uint64\n\tret := nvmlVgpuTypeGetFramebufferSize(VgpuTypeId, &FbSize)\n\treturn FbSize, ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetFramebufferSize() (uint64, Return) {\n\treturn VgpuTypeGetFramebufferSize(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetNumDisplayHeads()\nfunc VgpuTypeGetNumDisplayHeads(VgpuTypeId VgpuTypeId) (int, Return) {\n\tvar NumDisplayHeads uint32\n\tret := nvmlVgpuTypeGetNumDisplayHeads(VgpuTypeId, &NumDisplayHeads)\n\treturn int(NumDisplayHeads), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetNumDisplayHeads() (int, Return) {\n\treturn VgpuTypeGetNumDisplayHeads(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetResolution()\nfunc VgpuTypeGetResolution(VgpuTypeId VgpuTypeId, DisplayIndex int) (uint32, uint32, Return) {\n\tvar Xdim, Ydim uint32\n\tret := nvmlVgpuTypeGetResolution(VgpuTypeId, uint32(DisplayIndex), &Xdim, &Ydim)\n\treturn Xdim, Ydim, ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetResolution(DisplayIndex int) (uint32, uint32, Return) {\n\treturn VgpuTypeGetResolution(VgpuTypeId, DisplayIndex)\n}\n\n// nvml.VgpuTypeGetLicense()\nfunc VgpuTypeGetLicense(VgpuTypeId VgpuTypeId) (string, Return) {\n\tVgpuTypeLicenseString := make([]byte, GRID_LICENSE_BUFFER_SIZE)\n\tret := nvmlVgpuTypeGetLicense(VgpuTypeId, &VgpuTypeLicenseString[0], GRID_LICENSE_BUFFER_SIZE)\n\treturn string(VgpuTypeLicenseString[:clen(VgpuTypeLicenseString)]), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetLicense() (string, Return) {\n\treturn VgpuTypeGetLicense(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetFrameRateLimit()\nfunc VgpuTypeGetFrameRateLimit(VgpuTypeId VgpuTypeId) (uint32, Return) {\n\tvar FrameRateLimit uint32\n\tret := nvmlVgpuTypeGetFrameRateLimit(VgpuTypeId, &FrameRateLimit)\n\treturn FrameRateLimit, ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetFrameRateLimit() (uint32, Return) {\n\treturn VgpuTypeGetFrameRateLimit(VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetMaxInstances()\nfunc VgpuTypeGetMaxInstances(Device Device, VgpuTypeId VgpuTypeId) (int, Return) {\n\tvar VgpuInstanceCount uint32\n\tret := nvmlVgpuTypeGetMaxInstances(Device, VgpuTypeId, &VgpuInstanceCount)\n\treturn int(VgpuInstanceCount), ret\n}\n\nfunc (Device Device) VgpuTypeGetMaxInstances(VgpuTypeId VgpuTypeId) (int, Return) {\n\treturn VgpuTypeGetMaxInstances(Device, VgpuTypeId)\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetMaxInstances(Device Device) (int, Return) {\n\treturn VgpuTypeGetMaxInstances(Device, VgpuTypeId)\n}\n\n// nvml.VgpuTypeGetMaxInstancesPerVm()\nfunc VgpuTypeGetMaxInstancesPerVm(VgpuTypeId VgpuTypeId) (int, Return) {\n\tvar VgpuInstanceCountPerVm uint32\n\tret := nvmlVgpuTypeGetMaxInstancesPerVm(VgpuTypeId, &VgpuInstanceCountPerVm)\n\treturn int(VgpuInstanceCountPerVm), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetMaxInstancesPerVm() (int, Return) {\n\treturn VgpuTypeGetMaxInstancesPerVm(VgpuTypeId)\n}\n\n// nvml.VgpuInstanceGetVmID()\nfunc VgpuInstanceGetVmID(VgpuInstance VgpuInstance) (string, VgpuVmIdType, Return) {\n\tvar VmIdType VgpuVmIdType\n\tVmId := make([]byte, DEVICE_UUID_BUFFER_SIZE)\n\tret := nvmlVgpuInstanceGetVmID(VgpuInstance, &VmId[0], DEVICE_UUID_BUFFER_SIZE, &VmIdType)\n\treturn string(VmId[:clen(VmId)]), VmIdType, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetVmID() (string, VgpuVmIdType, Return) {\n\treturn VgpuInstanceGetVmID(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetUUID()\nfunc VgpuInstanceGetUUID(VgpuInstance VgpuInstance) (string, Return) {\n\tUuid := make([]byte, DEVICE_UUID_BUFFER_SIZE)\n\tret := nvmlVgpuInstanceGetUUID(VgpuInstance, &Uuid[0], DEVICE_UUID_BUFFER_SIZE)\n\treturn string(Uuid[:clen(Uuid)]), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetUUID() (string, Return) {\n\treturn VgpuInstanceGetUUID(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetVmDriverVersion()\nfunc VgpuInstanceGetVmDriverVersion(VgpuInstance VgpuInstance) (string, Return) {\n\tVersion := make([]byte, SYSTEM_DRIVER_VERSION_BUFFER_SIZE)\n\tret := nvmlVgpuInstanceGetVmDriverVersion(VgpuInstance, &Version[0], SYSTEM_DRIVER_VERSION_BUFFER_SIZE)\n\treturn string(Version[:clen(Version)]), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetVmDriverVersion() (string, Return) {\n\treturn VgpuInstanceGetVmDriverVersion(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetFbUsage()\nfunc VgpuInstanceGetFbUsage(VgpuInstance VgpuInstance) (uint64, Return) {\n\tvar FbUsage uint64\n\tret := nvmlVgpuInstanceGetFbUsage(VgpuInstance, &FbUsage)\n\treturn FbUsage, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetFbUsage() (uint64, Return) {\n\treturn VgpuInstanceGetFbUsage(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetLicenseInfo()\nfunc VgpuInstanceGetLicenseInfo(VgpuInstance VgpuInstance) (VgpuLicenseInfo, Return) {\n\tvar LicenseInfo VgpuLicenseInfo\n\tret := nvmlVgpuInstanceGetLicenseInfo(VgpuInstance, &LicenseInfo)\n\treturn LicenseInfo, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetLicenseInfo() (VgpuLicenseInfo, Return) {\n\treturn VgpuInstanceGetLicenseInfo(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetLicenseStatus()\nfunc VgpuInstanceGetLicenseStatus(VgpuInstance VgpuInstance) (int, Return) {\n\tvar Licensed uint32\n\tret := nvmlVgpuInstanceGetLicenseStatus(VgpuInstance, &Licensed)\n\treturn int(Licensed), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetLicenseStatus() (int, Return) {\n\treturn VgpuInstanceGetLicenseStatus(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetType()\nfunc VgpuInstanceGetType(VgpuInstance VgpuInstance) (VgpuTypeId, Return) {\n\tvar VgpuTypeId VgpuTypeId\n\tret := nvmlVgpuInstanceGetType(VgpuInstance, &VgpuTypeId)\n\treturn VgpuTypeId, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetType() (VgpuTypeId, Return) {\n\treturn VgpuInstanceGetType(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetFrameRateLimit()\nfunc VgpuInstanceGetFrameRateLimit(VgpuInstance VgpuInstance) (uint32, Return) {\n\tvar FrameRateLimit uint32\n\tret := nvmlVgpuInstanceGetFrameRateLimit(VgpuInstance, &FrameRateLimit)\n\treturn FrameRateLimit, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetFrameRateLimit() (uint32, Return) {\n\treturn VgpuInstanceGetFrameRateLimit(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetEccMode()\nfunc VgpuInstanceGetEccMode(VgpuInstance VgpuInstance) (EnableState, Return) {\n\tvar EccMode EnableState\n\tret := nvmlVgpuInstanceGetEccMode(VgpuInstance, &EccMode)\n\treturn EccMode, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetEccMode() (EnableState, Return) {\n\treturn VgpuInstanceGetEccMode(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetEncoderCapacity()\nfunc VgpuInstanceGetEncoderCapacity(VgpuInstance VgpuInstance) (int, Return) {\n\tvar EncoderCapacity uint32\n\tret := nvmlVgpuInstanceGetEncoderCapacity(VgpuInstance, &EncoderCapacity)\n\treturn int(EncoderCapacity), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetEncoderCapacity() (int, Return) {\n\treturn VgpuInstanceGetEncoderCapacity(VgpuInstance)\n}\n\n// nvml.VgpuInstanceSetEncoderCapacity()\nfunc VgpuInstanceSetEncoderCapacity(VgpuInstance VgpuInstance, EncoderCapacity int) Return {\n\treturn nvmlVgpuInstanceSetEncoderCapacity(VgpuInstance, uint32(EncoderCapacity))\n}\n\nfunc (VgpuInstance VgpuInstance) SetEncoderCapacity(EncoderCapacity int) Return {\n\treturn VgpuInstanceSetEncoderCapacity(VgpuInstance, EncoderCapacity)\n}\n\n// nvml.VgpuInstanceGetEncoderStats()\nfunc VgpuInstanceGetEncoderStats(VgpuInstance VgpuInstance) (int, uint32, uint32, Return) {\n\tvar SessionCount, AverageFps, AverageLatency uint32\n\tret := nvmlVgpuInstanceGetEncoderStats(VgpuInstance, &SessionCount, &AverageFps, &AverageLatency)\n\treturn int(SessionCount), AverageFps, AverageLatency, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetEncoderStats() (int, uint32, uint32, Return) {\n\treturn VgpuInstanceGetEncoderStats(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetEncoderSessions()\nfunc VgpuInstanceGetEncoderSessions(VgpuInstance VgpuInstance) (int, EncoderSessionInfo, Return) {\n\tvar SessionCount uint32\n\tvar SessionInfo EncoderSessionInfo\n\tret := nvmlVgpuInstanceGetEncoderSessions(VgpuInstance, &SessionCount, &SessionInfo)\n\treturn int(SessionCount), SessionInfo, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetEncoderSessions() (int, EncoderSessionInfo, Return) {\n\treturn VgpuInstanceGetEncoderSessions(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetFBCStats()\nfunc VgpuInstanceGetFBCStats(VgpuInstance VgpuInstance) (FBCStats, Return) {\n\tvar FbcStats FBCStats\n\tret := nvmlVgpuInstanceGetFBCStats(VgpuInstance, &FbcStats)\n\treturn FbcStats, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetFBCStats() (FBCStats, Return) {\n\treturn VgpuInstanceGetFBCStats(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetFBCSessions()\nfunc VgpuInstanceGetFBCSessions(VgpuInstance VgpuInstance) (int, FBCSessionInfo, Return) {\n\tvar SessionCount uint32\n\tvar SessionInfo FBCSessionInfo\n\tret := nvmlVgpuInstanceGetFBCSessions(VgpuInstance, &SessionCount, &SessionInfo)\n\treturn int(SessionCount), SessionInfo, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetFBCSessions() (int, FBCSessionInfo, Return) {\n\treturn VgpuInstanceGetFBCSessions(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetGpuInstanceId()\nfunc VgpuInstanceGetGpuInstanceId(VgpuInstance VgpuInstance) (int, Return) {\n\tvar gpuInstanceId uint32\n\tret := nvmlVgpuInstanceGetGpuInstanceId(VgpuInstance, &gpuInstanceId)\n\treturn int(gpuInstanceId), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetGpuInstanceId() (int, Return) {\n\treturn VgpuInstanceGetGpuInstanceId(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetGpuPciId()\nfunc VgpuInstanceGetGpuPciId(VgpuInstance VgpuInstance) (string, Return) {\n\tvar Length uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tVgpuPciId := make([]byte, Length)\n\t\tret := nvmlVgpuInstanceGetGpuPciId(VgpuInstance, &VgpuPciId[0], &Length)\n\t\tif ret == SUCCESS {\n\t\t\treturn string(VgpuPciId[:clen(VgpuPciId)]), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn \"\", ret\n\t\t}\n\t\tLength *= 2\n\t}\n}\n\nfunc (VgpuInstance VgpuInstance) GetGpuPciId() (string, Return) {\n\treturn VgpuInstanceGetGpuPciId(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetMetadata()\nfunc VgpuInstanceGetMetadata(VgpuInstance VgpuInstance) (VgpuMetadata, Return) {\n\tvar VgpuMetadata VgpuMetadata\n\tOpaqueDataSize := unsafe.Sizeof(VgpuMetadata.nvmlVgpuMetadata.OpaqueData)\n\tVgpuMetadataSize := unsafe.Sizeof(VgpuMetadata.nvmlVgpuMetadata) - OpaqueDataSize\n\tfor {\n\t\tBufferSize := uint32(VgpuMetadataSize + OpaqueDataSize)\n\t\tBuffer := make([]byte, BufferSize)\n\t\tnvmlVgpuMetadataPtr := (*nvmlVgpuMetadata)(unsafe.Pointer(&Buffer[0]))\n\t\tret := nvmlVgpuInstanceGetMetadata(VgpuInstance, nvmlVgpuMetadataPtr, &BufferSize)\n\t\tif ret == SUCCESS {\n\t\t\tVgpuMetadata.nvmlVgpuMetadata = *nvmlVgpuMetadataPtr\n\t\t\tVgpuMetadata.OpaqueData = Buffer[VgpuMetadataSize:BufferSize]\n\t\t\treturn VgpuMetadata, ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn VgpuMetadata, ret\n\t\t}\n\t\tOpaqueDataSize = 2 * OpaqueDataSize\n\t}\n}\n\nfunc (VgpuInstance VgpuInstance) GetMetadata() (VgpuMetadata, Return) {\n\treturn VgpuInstanceGetMetadata(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetAccountingMode()\nfunc VgpuInstanceGetAccountingMode(VgpuInstance VgpuInstance) (EnableState, Return) {\n\tvar Mode EnableState\n\tret := nvmlVgpuInstanceGetAccountingMode(VgpuInstance, &Mode)\n\treturn Mode, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetAccountingMode() (EnableState, Return) {\n\treturn VgpuInstanceGetAccountingMode(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetAccountingPids()\nfunc VgpuInstanceGetAccountingPids(VgpuInstance VgpuInstance) ([]int, Return) {\n\tvar Count uint32 = 1 // Will be reduced upon returning\n\tfor {\n\t\tPids := make([]uint32, Count)\n\t\tret := nvmlVgpuInstanceGetAccountingPids(VgpuInstance, &Count, &Pids[0])\n\t\tif ret == SUCCESS {\n\t\t\treturn uint32SliceToIntSlice(Pids[:Count]), ret\n\t\t}\n\t\tif ret != ERROR_INSUFFICIENT_SIZE {\n\t\t\treturn nil, ret\n\t\t}\n\t\tCount *= 2\n\t}\n}\n\nfunc (VgpuInstance VgpuInstance) GetAccountingPids() ([]int, Return) {\n\treturn VgpuInstanceGetAccountingPids(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetAccountingStats()\nfunc VgpuInstanceGetAccountingStats(VgpuInstance VgpuInstance, Pid int) (AccountingStats, Return) {\n\tvar Stats AccountingStats\n\tret := nvmlVgpuInstanceGetAccountingStats(VgpuInstance, uint32(Pid), &Stats)\n\treturn Stats, ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetAccountingStats(Pid int) (AccountingStats, Return) {\n\treturn VgpuInstanceGetAccountingStats(VgpuInstance, Pid)\n}\n\n// nvml.GetVgpuCompatibility()\nfunc GetVgpuCompatibility(nvmlVgpuMetadata *nvmlVgpuMetadata, PgpuMetadata *nvmlVgpuPgpuMetadata) (VgpuPgpuCompatibility, Return) {\n\tvar CompatibilityInfo VgpuPgpuCompatibility\n\tret := nvmlGetVgpuCompatibility(nvmlVgpuMetadata, PgpuMetadata, &CompatibilityInfo)\n\treturn CompatibilityInfo, ret\n}\n\n// nvml.GetVgpuVersion()\nfunc GetVgpuVersion() (VgpuVersion, VgpuVersion, Return) {\n\tvar Supported, Current VgpuVersion\n\tret := nvmlGetVgpuVersion(&Supported, &Current)\n\treturn Supported, Current, ret\n}\n\n// nvml.SetVgpuVersion()\nfunc SetVgpuVersion(VgpuVersion *VgpuVersion) Return {\n\treturn nvmlSetVgpuVersion(VgpuVersion)\n}\n\n// nvml.VgpuInstanceClearAccountingPids()\nfunc VgpuInstanceClearAccountingPids(VgpuInstance VgpuInstance) Return {\n\treturn nvmlVgpuInstanceClearAccountingPids(VgpuInstance)\n}\n\nfunc (VgpuInstance VgpuInstance) ClearAccountingPids() Return {\n\treturn VgpuInstanceClearAccountingPids(VgpuInstance)\n}\n\n// nvml.VgpuInstanceGetMdevUUID()\nfunc VgpuInstanceGetMdevUUID(VgpuInstance VgpuInstance) (string, Return) {\n\tMdevUuid := make([]byte, DEVICE_UUID_BUFFER_SIZE)\n\tret := nvmlVgpuInstanceGetMdevUUID(VgpuInstance, &MdevUuid[0], DEVICE_UUID_BUFFER_SIZE)\n\treturn string(MdevUuid[:clen(MdevUuid)]), ret\n}\n\nfunc (VgpuInstance VgpuInstance) GetMdevUUID() (string, Return) {\n\treturn VgpuInstanceGetMdevUUID(VgpuInstance)\n}\n\n// nvml.VgpuTypeGetCapabilities()\nfunc VgpuTypeGetCapabilities(VgpuTypeId VgpuTypeId, Capability VgpuCapability) (bool, Return) {\n\tvar CapResult uint32\n\tret := nvmlVgpuTypeGetCapabilities(VgpuTypeId, Capability, &CapResult)\n\treturn (CapResult != 0), ret\n}\n\nfunc (VgpuTypeId VgpuTypeId) GetCapabilities(Capability VgpuCapability) (bool, Return) {\n\treturn VgpuTypeGetCapabilities(VgpuTypeId, Capability)\n}\n\n// nvml.GetVgpuDriverCapabilities()\nfunc GetVgpuDriverCapabilities(Capability VgpuDriverCapability) (bool, Return) {\n\tvar CapResult uint32\n\tret := nvmlGetVgpuDriverCapabilities(Capability, &CapResult)\n\treturn (CapResult != 0), ret\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/bindings.go",
    "content": "/*\n * Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage nvml\n\n/*\n#cgo linux LDFLAGS: -ldl -Wl,--unresolved-symbols=ignore-in-object-files\n#cgo darwin LDFLAGS: -ldl -Wl,-undefined,dynamic_lookup\n#cgo windows LDFLAGS: -LC:/Program\\ Files/NVIDIA\\ Corporation/NVSMI -lnvml\n#include \"nvml.h\"\n\n#undef nvmlEventSetWait\nnvmlReturn_t DECLDIR nvmlEventSetWait(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\nnvmlReturn_t DECLDIR nvmlEventSetWait_v2(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\n*/\nimport \"C\"\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tszDriver   = C.NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE\n\tszName     = C.NVML_DEVICE_NAME_BUFFER_SIZE\n\tszUUID     = C.NVML_DEVICE_UUID_V2_BUFFER_SIZE\n\tszProcs    = 32\n\tszProcName = 64\n\n\tXidCriticalError = C.nvmlEventTypeXidCriticalError\n)\n\nvar nvmlEventSetWait = nvmlEventSetWait_v1\n\ntype handle struct{ dev C.nvmlDevice_t }\ntype EventSet struct{ set C.nvmlEventSet_t }\ntype Event struct {\n\tUUID              *string\n\tGpuInstanceId     *uint\n\tComputeInstanceId *uint\n\tEtype             uint64\n\tEdata             uint64\n}\n\nfunc nvmlEventSetWait_v1(Set C.nvmlEventSet_t, Data *C.nvmlEventData_t, Timeoutms C.uint) C.nvmlReturn_t {\n\treturn C.nvmlEventSetWait(Set, Data, Timeoutms)\n}\n\nfunc nvmlEventSetWait_v2(Set C.nvmlEventSet_t, Data *C.nvmlEventData_t, Timeoutms C.uint) C.nvmlReturn_t {\n\treturn C.nvmlEventSetWait_v2(Set, Data, Timeoutms)\n}\n\nfunc uintPtr(c C.uint) *uint {\n\ti := uint(c)\n\treturn &i\n}\n\nfunc uint64Ptr(c C.ulonglong) *uint64 {\n\ti := uint64(c)\n\treturn &i\n}\n\nfunc stringPtr(c *C.char) *string {\n\ts := C.GoString(c)\n\treturn &s\n}\n\nfunc errorString(ret C.nvmlReturn_t) error {\n\tif ret == C.NVML_SUCCESS {\n\t\treturn nil\n\t}\n\terr := C.GoString(C.nvmlErrorString(ret))\n\treturn fmt.Errorf(\"nvml: %v\", err)\n}\n\nfunc init_() error {\n\tr := dl.nvmlInit()\n\tif r == C.NVML_ERROR_LIBRARY_NOT_FOUND {\n\t\treturn errors.New(\"could not load NVML library\")\n\t}\n\n\tfound := dl.lookupSymbol(\"nvmlEventSetWait_v2\")\n\tif found == C.NVML_SUCCESS {\n\t\tnvmlEventSetWait = nvmlEventSetWait_v2\n\t}\n\n\treturn errorString(r)\n}\n\nfunc NewEventSet() EventSet {\n\tvar set C.nvmlEventSet_t\n\tC.nvmlEventSetCreate(&set)\n\n\treturn EventSet{set}\n}\n\nfunc RegisterEvent(es EventSet, event int) error {\n\tn, err := deviceGetCount()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar i uint\n\tfor i = 0; i < n; i++ {\n\t\th, err := deviceGetHandleByIndex(i)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tr := C.nvmlDeviceRegisterEvents(h.dev, C.ulonglong(event), es.set)\n\t\tif r != C.NVML_SUCCESS {\n\t\t\treturn errorString(r)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc RegisterEventForDevice(es EventSet, event int, uuid string) error {\n\tn, err := deviceGetCount()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar i uint\n\tfor i = 0; i < n; i++ {\n\t\th, err := deviceGetHandleByIndex(i)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tduuid, err := h.deviceGetUUID()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif *duuid != uuid {\n\t\t\tcontinue\n\t\t}\n\n\t\tr := C.nvmlDeviceRegisterEvents(h.dev, C.ulonglong(event), es.set)\n\t\tif r != C.NVML_SUCCESS {\n\t\t\treturn errorString(r)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn fmt.Errorf(\"nvml: device not found\")\n}\n\nfunc DeleteEventSet(es EventSet) {\n\tC.nvmlEventSetFree(es.set)\n}\n\nfunc WaitForEvent(es EventSet, timeout uint) (Event, error) {\n\tvar data C.nvmlEventData_t\n\tdata.gpuInstanceId = 0xFFFFFFFF\n\tdata.computeInstanceId = 0xFFFFFFFF\n\n\tr := nvmlEventSetWait(es.set, &data, C.uint(timeout))\n\tif r != C.NVML_SUCCESS {\n\t\treturn Event{}, errorString(r)\n\t}\n\n\tuuid, _ := handle{data.device}.deviceGetUUID()\n\n\treturn Event{\n\t\tUUID:              uuid,\n\t\tEtype:             uint64(data.eventType),\n\t\tEdata:             uint64(data.eventData),\n\t\tGpuInstanceId:     uintPtr(data.gpuInstanceId),\n\t\tComputeInstanceId: uintPtr(data.computeInstanceId),\n\t}, nil\n}\n\nfunc shutdown() error {\n\treturn errorString(dl.nvmlShutdown())\n}\n\nfunc systemGetCudaDriverVersion() (*uint, *uint, error) {\n\tvar v C.int\n\n\tr := C.nvmlSystemGetCudaDriverVersion_v2(&v)\n\tif r != C.NVML_SUCCESS {\n\t\treturn nil, nil, errorString(r)\n\t}\n\n\tmajor := uint(v / 1000)\n\tminor := uint(v % 1000 / 10)\n\n\treturn &major, &minor, errorString(r)\n}\n\nfunc systemGetDriverVersion() (string, error) {\n\tvar driver [szDriver]C.char\n\n\tr := C.nvmlSystemGetDriverVersion(&driver[0], szDriver)\n\treturn C.GoString(&driver[0]), errorString(r)\n}\n\nfunc systemGetProcessName(pid uint) (string, error) {\n\tvar proc [szProcName]C.char\n\n\tr := C.nvmlSystemGetProcessName(C.uint(pid), &proc[0], szProcName)\n\treturn C.GoString(&proc[0]), errorString(r)\n}\n\nfunc deviceGetCount() (uint, error) {\n\tvar n C.uint\n\n\tr := C.nvmlDeviceGetCount(&n)\n\treturn uint(n), errorString(r)\n}\n\nfunc deviceGetHandleByIndex(idx uint) (handle, error) {\n\tvar dev C.nvmlDevice_t\n\n\tr := C.nvmlDeviceGetHandleByIndex(C.uint(idx), &dev)\n\treturn handle{dev}, errorString(r)\n}\n\nfunc deviceGetHandleByUUID(uuid string) (handle, error) {\n\tvar dev C.nvmlDevice_t\n\n\tr := C.nvmlDeviceGetHandleByUUID(C.CString(uuid), &dev)\n\treturn handle{dev}, errorString(r)\n}\n\nfunc deviceGetTopologyCommonAncestor(h1, h2 handle) (*uint, error) {\n\tr := dl.lookupSymbol(\"nvmlDeviceGetTopologyCommonAncestor\")\n\tif r == C.NVML_ERROR_FUNCTION_NOT_FOUND {\n\t\treturn nil, nil\n\t}\n\n\tvar level C.nvmlGpuTopologyLevel_t\n\tr = C.nvmlDeviceGetTopologyCommonAncestor(h1.dev, h2.dev, &level)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\n\treturn uintPtr(C.uint(level)), errorString(r)\n}\n\nfunc (h handle) deviceGetCudaComputeCapability() (*int, *int, error) {\n\tvar major, minor C.int\n\n\tr := C.nvmlDeviceGetCudaComputeCapability(h.dev, &major, &minor)\n\tif r != C.NVML_SUCCESS {\n\t\treturn nil, nil, errorString(r)\n\t}\n\n\tintMajor := int(major)\n\tintMinor := int(minor)\n\n\treturn &intMajor, &intMinor, errorString(r)\n}\n\nfunc (h handle) deviceGetName() (*string, error) {\n\tvar name [szName]C.char\n\n\tr := C.nvmlDeviceGetName(h.dev, &name[0], szName)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn stringPtr(&name[0]), errorString(r)\n}\n\nfunc (h handle) deviceGetIndex() (*uint, error) {\n\tvar index C.uint\n\tr := C.nvmlDeviceGetIndex(h.dev, &index)\n\tif r != C.NVML_SUCCESS {\n\t\treturn nil, errorString(r)\n\t}\n\treturn uintPtr(index), nil\n}\n\nfunc (h handle) deviceGetUUID() (*string, error) {\n\tvar uuid [szUUID]C.char\n\n\tr := C.nvmlDeviceGetUUID(h.dev, &uuid[0], szUUID)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn stringPtr(&uuid[0]), errorString(r)\n}\n\nfunc (h handle) deviceGetPciInfo() (*string, error) {\n\tvar pci C.nvmlPciInfo_t\n\n\tr := C.nvmlDeviceGetPciInfo(h.dev, &pci)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn stringPtr(&pci.busId[0]), errorString(r)\n}\n\nfunc (h handle) deviceGetMinorNumber() (*uint, error) {\n\tvar minor C.uint\n\n\tr := C.nvmlDeviceGetMinorNumber(h.dev, &minor)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(minor), errorString(r)\n}\n\nfunc (h handle) deviceGetBAR1MemoryInfo() (*uint64, *uint64, error) {\n\tvar bar1 C.nvmlBAR1Memory_t\n\n\tr := C.nvmlDeviceGetBAR1MemoryInfo(h.dev, &bar1)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\treturn uint64Ptr(bar1.bar1Total), uint64Ptr(bar1.bar1Used), errorString(r)\n}\n\nfunc (h handle) deviceGetNvLinkState(link uint) (*uint, error) {\n\tvar isActive C.nvmlEnableState_t\n\n\tr := C.nvmlDeviceGetNvLinkState(h.dev, C.uint(link), &isActive)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED || r == C.NVML_ERROR_INVALID_ARGUMENT {\n\t\treturn nil, nil\n\t}\n\n\treturn uintPtr(C.uint(isActive)), errorString(r)\n}\n\nfunc (h handle) deviceGetNvLinkRemotePciInfo(link uint) (*string, error) {\n\tvar pci C.nvmlPciInfo_t\n\n\tr := C.nvmlDeviceGetNvLinkRemotePciInfo(h.dev, C.uint(link), &pci)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED || r == C.NVML_ERROR_INVALID_ARGUMENT {\n\t\treturn nil, nil\n\t}\n\n\treturn stringPtr(&pci.busId[0]), errorString(r)\n}\n\nfunc (h handle) deviceGetAllNvLinkRemotePciInfo() ([]*string, error) {\n\tbusIds := []*string{}\n\n\tfor i := uint(0); i < C.NVML_NVLINK_MAX_LINKS; i++ {\n\t\tstate, err := h.deviceGetNvLinkState(i)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif state == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif *state == C.NVML_FEATURE_ENABLED {\n\t\t\tpci, err := h.deviceGetNvLinkRemotePciInfo(i)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif pci == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tbusIds = append(busIds, pci)\n\t\t}\n\t}\n\n\treturn busIds, nil\n}\n\nfunc (h handle) deviceGetPowerManagementLimit() (*uint, error) {\n\tvar power C.uint\n\n\tr := C.nvmlDeviceGetPowerManagementLimit(h.dev, &power)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(power), errorString(r)\n}\n\nfunc (h handle) deviceGetMaxClockInfo() (*uint, *uint, error) {\n\tvar sm, mem C.uint\n\n\tr := C.nvmlDeviceGetMaxClockInfo(h.dev, C.NVML_CLOCK_SM, &sm)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\tif r == C.NVML_SUCCESS {\n\t\tr = C.nvmlDeviceGetMaxClockInfo(h.dev, C.NVML_CLOCK_MEM, &mem)\n\t}\n\treturn uintPtr(sm), uintPtr(mem), errorString(r)\n}\n\nfunc (h handle) deviceGetMaxPcieLinkGeneration() (*uint, error) {\n\tvar link C.uint\n\n\tr := C.nvmlDeviceGetMaxPcieLinkGeneration(h.dev, &link)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(link), errorString(r)\n}\n\nfunc (h handle) deviceGetMaxPcieLinkWidth() (*uint, error) {\n\tvar width C.uint\n\n\tr := C.nvmlDeviceGetMaxPcieLinkWidth(h.dev, &width)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(width), errorString(r)\n}\n\nfunc (h handle) deviceGetPowerUsage() (*uint, error) {\n\tvar power C.uint\n\n\tr := C.nvmlDeviceGetPowerUsage(h.dev, &power)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(power), errorString(r)\n}\n\nfunc (h handle) deviceGetFanSpeed() (*uint, error) {\n\tvar speed C.uint\n\n\tr := C.nvmlDeviceGetFanSpeed(h.dev, &speed)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(speed), errorString(r)\n}\n\nfunc (h handle) deviceGetTemperature() (*uint, error) {\n\tvar temp C.uint\n\n\tr := C.nvmlDeviceGetTemperature(h.dev, C.NVML_TEMPERATURE_GPU, &temp)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(temp), errorString(r)\n}\n\nfunc (h handle) deviceGetUtilizationRates() (*uint, *uint, error) {\n\tvar usage C.nvmlUtilization_t\n\n\tr := C.nvmlDeviceGetUtilizationRates(h.dev, &usage)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\treturn uintPtr(usage.gpu), uintPtr(usage.memory), errorString(r)\n}\n\nfunc (h handle) deviceGetEncoderUtilization() (*uint, error) {\n\tvar usage, sampling C.uint\n\n\tr := C.nvmlDeviceGetEncoderUtilization(h.dev, &usage, &sampling)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(usage), errorString(r)\n}\n\nfunc (h handle) deviceGetDecoderUtilization() (*uint, error) {\n\tvar usage, sampling C.uint\n\n\tr := C.nvmlDeviceGetDecoderUtilization(h.dev, &usage, &sampling)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil\n\t}\n\treturn uintPtr(usage), errorString(r)\n}\n\nfunc (h handle) deviceGetMemoryInfo() (totalMem *uint64, devMem DeviceMemory, err error) {\n\tvar mem C.nvmlMemory_t\n\n\tr := C.nvmlDeviceGetMemoryInfo(h.dev, &mem)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\n\terr = errorString(r)\n\tif r != C.NVML_SUCCESS {\n\t\treturn\n\t}\n\n\ttotalMem = uint64Ptr(mem.total)\n\tif totalMem != nil {\n\t\t*totalMem /= 1024 * 1024 // MiB\n\t}\n\n\tdevMem = DeviceMemory{\n\t\tUsed: uint64Ptr(mem.used),\n\t\tFree: uint64Ptr(mem.free),\n\t}\n\n\tif devMem.Used != nil {\n\t\t*devMem.Used /= 1024 * 1024 // MiB\n\t}\n\n\tif devMem.Free != nil {\n\t\t*devMem.Free /= 1024 * 1024 // MiB\n\t}\n\treturn\n}\n\nfunc (h handle) deviceGetClockInfo() (*uint, *uint, error) {\n\tvar sm, mem C.uint\n\n\tr := C.nvmlDeviceGetClockInfo(h.dev, C.NVML_CLOCK_SM, &sm)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\tif r == C.NVML_SUCCESS {\n\t\tr = C.nvmlDeviceGetClockInfo(h.dev, C.NVML_CLOCK_MEM, &mem)\n\t}\n\treturn uintPtr(sm), uintPtr(mem), errorString(r)\n}\n\nfunc (h handle) deviceGetMemoryErrorCounter() (*uint64, *uint64, *uint64, error) {\n\tvar l1, l2, mem C.ulonglong\n\n\tr := C.nvmlDeviceGetMemoryErrorCounter(h.dev, C.NVML_MEMORY_ERROR_TYPE_UNCORRECTED,\n\t\tC.NVML_VOLATILE_ECC, C.NVML_MEMORY_LOCATION_L1_CACHE, &l1)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil, nil\n\t}\n\tif r == C.NVML_SUCCESS {\n\t\tr = C.nvmlDeviceGetMemoryErrorCounter(h.dev, C.NVML_MEMORY_ERROR_TYPE_UNCORRECTED,\n\t\t\tC.NVML_VOLATILE_ECC, C.NVML_MEMORY_LOCATION_L2_CACHE, &l2)\n\t}\n\tif r == C.NVML_SUCCESS {\n\t\tr = C.nvmlDeviceGetMemoryErrorCounter(h.dev, C.NVML_MEMORY_ERROR_TYPE_UNCORRECTED,\n\t\t\tC.NVML_VOLATILE_ECC, C.NVML_MEMORY_LOCATION_DEVICE_MEMORY, &mem)\n\t}\n\treturn uint64Ptr(l1), uint64Ptr(l2), uint64Ptr(mem), errorString(r)\n}\n\nfunc (h handle) deviceGetPcieThroughput() (*uint, *uint, error) {\n\tvar rx, tx C.uint\n\n\tr := C.nvmlDeviceGetPcieThroughput(h.dev, C.NVML_PCIE_UTIL_RX_BYTES, &rx)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\tif r == C.NVML_SUCCESS {\n\t\tr = C.nvmlDeviceGetPcieThroughput(h.dev, C.NVML_PCIE_UTIL_TX_BYTES, &tx)\n\t}\n\treturn uintPtr(rx), uintPtr(tx), errorString(r)\n}\n\nfunc (h handle) deviceGetComputeRunningProcesses() ([]uint, []uint64, error) {\n\tvar procs [szProcs]C.nvmlProcessInfo_t\n\tvar count = C.uint(szProcs)\n\n\tr := C.nvmlDeviceGetComputeRunningProcesses(h.dev, &count, &procs[0])\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\tn := int(count)\n\tpids := make([]uint, n)\n\tmems := make([]uint64, n)\n\tfor i := 0; i < n; i++ {\n\t\tpids[i] = uint(procs[i].pid)\n\t\tmems[i] = uint64(procs[i].usedGpuMemory)\n\t}\n\treturn pids, mems, errorString(r)\n}\n\nfunc (h handle) deviceGetGraphicsRunningProcesses() ([]uint, []uint64, error) {\n\tvar procs [szProcs]C.nvmlProcessInfo_t\n\tvar count = C.uint(szProcs)\n\n\tr := C.nvmlDeviceGetGraphicsRunningProcesses(h.dev, &count, &procs[0])\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn nil, nil, nil\n\t}\n\tn := int(count)\n\tpids := make([]uint, n)\n\tmems := make([]uint64, n)\n\tfor i := 0; i < n; i++ {\n\t\tpids[i] = uint(procs[i].pid)\n\t\tmems[i] = uint64(procs[i].usedGpuMemory)\n\t}\n\treturn pids, mems, errorString(r)\n}\n\nfunc (h handle) deviceGetAllRunningProcesses() ([]ProcessInfo, error) {\n\tcPids, cpMems, err := h.deviceGetComputeRunningProcesses()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgPids, gpMems, err := h.deviceGetGraphicsRunningProcesses()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tallPids := make(map[uint]ProcessInfo)\n\n\tfor i, pid := range cPids {\n\t\tname, err := processName(pid)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tallPids[pid] = ProcessInfo{\n\t\t\tPID:        pid,\n\t\t\tName:       name,\n\t\t\tMemoryUsed: cpMems[i] / (1024 * 1024), // MiB\n\t\t\tType:       Compute,\n\t\t}\n\n\t}\n\n\tfor i, pid := range gPids {\n\t\tpInfo, exists := allPids[pid]\n\t\tif exists {\n\t\t\tpInfo.Type = ComputeAndGraphics\n\t\t\tallPids[pid] = pInfo\n\t\t} else {\n\t\t\tname, err := processName(pid)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tallPids[pid] = ProcessInfo{\n\t\t\t\tPID:        pid,\n\t\t\t\tName:       name,\n\t\t\t\tMemoryUsed: gpMems[i] / (1024 * 1024), // MiB\n\t\t\t\tType:       Graphics,\n\t\t\t}\n\t\t}\n\t}\n\n\tvar processInfo []ProcessInfo\n\tfor _, v := range allPids {\n\t\tprocessInfo = append(processInfo, v)\n\t}\n\tsort.Slice(processInfo, func(i, j int) bool {\n\t\treturn processInfo[i].PID < processInfo[j].PID\n\t})\n\n\treturn processInfo, nil\n}\n\nfunc (h handle) getClocksThrottleReasons() (reason ThrottleReason, err error) {\n\tvar clocksThrottleReasons C.ulonglong\n\n\tr := C.nvmlDeviceGetCurrentClocksThrottleReasons(h.dev, &clocksThrottleReasons)\n\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn ThrottleReasonUnknown, nil\n\t}\n\n\tif r != C.NVML_SUCCESS {\n\t\treturn ThrottleReasonUnknown, errorString(r)\n\t}\n\n\tswitch clocksThrottleReasons {\n\tcase C.nvmlClocksThrottleReasonGpuIdle:\n\t\treason = ThrottleReasonGpuIdle\n\tcase C.nvmlClocksThrottleReasonApplicationsClocksSetting:\n\t\treason = ThrottleReasonApplicationsClocksSetting\n\tcase C.nvmlClocksThrottleReasonSwPowerCap:\n\t\treason = ThrottleReasonSwPowerCap\n\tcase C.nvmlClocksThrottleReasonHwSlowdown:\n\t\treason = ThrottleReasonHwSlowdown\n\tcase C.nvmlClocksThrottleReasonSyncBoost:\n\t\treason = ThrottleReasonSyncBoost\n\tcase C.nvmlClocksThrottleReasonSwThermalSlowdown:\n\t\treason = ThrottleReasonSwThermalSlowdown\n\tcase C.nvmlClocksThrottleReasonHwThermalSlowdown:\n\t\treason = ThrottleReasonHwThermalSlowdown\n\tcase C.nvmlClocksThrottleReasonHwPowerBrakeSlowdown:\n\t\treason = ThrottleReasonHwPowerBrakeSlowdown\n\tcase C.nvmlClocksThrottleReasonDisplayClockSetting:\n\t\treason = ThrottleReasonDisplayClockSetting\n\tcase C.nvmlClocksThrottleReasonNone:\n\t\treason = ThrottleReasonNone\n\t}\n\treturn\n}\n\nfunc (h handle) getPerformanceState() (PerfState, error) {\n\tvar pstate C.nvmlPstates_t\n\n\tr := C.nvmlDeviceGetPerformanceState(h.dev, &pstate)\n\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn PerfStateUnknown, nil\n\t}\n\n\tif r != C.NVML_SUCCESS {\n\t\treturn PerfStateUnknown, errorString(r)\n\t}\n\treturn PerfState(pstate), nil\n}\n\nfunc processName(pid uint) (string, error) {\n\tf := `/proc/` + strconv.FormatUint(uint64(pid), 10) + `/comm`\n\td, err := ioutil.ReadFile(f)\n\n\tif err != nil {\n\t\t// TOCTOU: process terminated\n\t\tif os.IsNotExist(err) {\n\t\t\treturn \"\", nil\n\t\t}\n\t\treturn \"\", err\n\t}\n\treturn strings.TrimSuffix(string(d), \"\\n\"), err\n}\n\nfunc (h handle) getAccountingInfo() (accountingInfo Accounting, err error) {\n\tvar mode C.nvmlEnableState_t\n\tvar buffer C.uint\n\n\tr := C.nvmlDeviceGetAccountingMode(h.dev, &mode)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\n\tif r != C.NVML_SUCCESS {\n\t\treturn accountingInfo, errorString(r)\n\t}\n\n\tr = C.nvmlDeviceGetAccountingBufferSize(h.dev, &buffer)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\n\tif r != C.NVML_SUCCESS {\n\t\treturn accountingInfo, errorString(r)\n\t}\n\n\taccountingInfo = Accounting{\n\t\tMode:       ModeState(mode),\n\t\tBufferSize: uintPtr(buffer),\n\t}\n\treturn\n}\n\nfunc (h handle) getDisplayInfo() (display Display, err error) {\n\tvar mode, isActive C.nvmlEnableState_t\n\n\tr := C.nvmlDeviceGetDisplayActive(h.dev, &mode)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\n\tif r != C.NVML_SUCCESS {\n\t\treturn display, errorString(r)\n\t}\n\n\tr = C.nvmlDeviceGetDisplayMode(h.dev, &isActive)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\tif r != C.NVML_SUCCESS {\n\t\treturn display, errorString(r)\n\t}\n\tdisplay = Display{\n\t\tMode:   ModeState(mode),\n\t\tActive: ModeState(isActive),\n\t}\n\treturn\n}\n\nfunc (h handle) getPeristenceMode() (state ModeState, err error) {\n\tvar mode C.nvmlEnableState_t\n\n\tr := C.nvmlDeviceGetPersistenceMode(h.dev, &mode)\n\tif r == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn\n\t}\n\treturn ModeState(mode), errorString(r)\n}\n\nfunc (h *handle) isMigEnabled() (bool, error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetMigMode\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn false, nil\n\t}\n\n\tvar cm, pm C.uint\n\tret = C.nvmlDeviceGetMigMode(h.dev, &cm, &pm)\n\tif ret == C.NVML_ERROR_NOT_SUPPORTED {\n\t\treturn false, nil\n\t}\n\tif ret != C.NVML_SUCCESS {\n\t\treturn false, errorString(ret)\n\t}\n\n\treturn (cm == C.NVML_DEVICE_MIG_ENABLE) && (cm == pm), nil\n}\n\nfunc (h *handle) getMigDevices() ([]handle, error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetMaxMigDeviceCount\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tvar c C.uint\n\tret = C.nvmlDeviceGetMaxMigDeviceCount(h.dev, &c)\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tret = dl.lookupSymbol(\"nvmlDeviceGetMigDeviceHandleByIndex\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tvar handles []handle\n\tfor i := 0; i < int(c); i++ {\n\t\tvar mig C.nvmlDevice_t\n\t\tret := C.nvmlDeviceGetMigDeviceHandleByIndex(h.dev, C.uint(i), &mig)\n\t\tif ret == C.NVML_ERROR_NOT_FOUND {\n\t\t\tcontinue\n\t\t}\n\t\tif ret != C.NVML_SUCCESS {\n\t\t\treturn nil, errorString(ret)\n\t\t}\n\n\t\thandles = append(handles, handle{mig})\n\t}\n\n\treturn handles, nil\n}\n\nfunc (h *handle) deviceGetDeviceHandleFromMigDeviceHandle() (handle, error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetDeviceHandleFromMigDeviceHandle\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn handle{}, errorString(ret)\n\t}\n\n\tvar parent C.nvmlDevice_t\n\tret = C.nvmlDeviceGetDeviceHandleFromMigDeviceHandle(h.dev, &parent)\n\tif ret != C.NVML_SUCCESS {\n\t\treturn handle{}, errorString(ret)\n\t}\n\n\treturn handle{parent}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/mig.go",
    "content": "// Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\n// #include \"nvml.h\"\nimport \"C\"\n\n// Enable or disable MIG mode\nconst (\n\tDEVICE_MIG_DISABLE = C.NVML_DEVICE_MIG_DISABLE\n\tDEVICE_MIG_ENABLE  = C.NVML_DEVICE_MIG_ENABLE\n)\n\n// GPU Instance Profiles\nconst (\n\tGPU_INSTANCE_PROFILE_1_SLICE = C.NVML_GPU_INSTANCE_PROFILE_1_SLICE\n\tGPU_INSTANCE_PROFILE_2_SLICE = C.NVML_GPU_INSTANCE_PROFILE_2_SLICE\n\tGPU_INSTANCE_PROFILE_3_SLICE = C.NVML_GPU_INSTANCE_PROFILE_3_SLICE\n\tGPU_INSTANCE_PROFILE_4_SLICE = C.NVML_GPU_INSTANCE_PROFILE_4_SLICE\n\tGPU_INSTANCE_PROFILE_7_SLICE = C.NVML_GPU_INSTANCE_PROFILE_7_SLICE\n\tGPU_INSTANCE_PROFILE_COUNT   = C.NVML_GPU_INSTANCE_PROFILE_COUNT\n)\n\n// Compute Instance Profiles\nconst (\n\tCOMPUTE_INSTANCE_PROFILE_1_SLICE = C.NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE\n\tCOMPUTE_INSTANCE_PROFILE_2_SLICE = C.NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE\n\tCOMPUTE_INSTANCE_PROFILE_3_SLICE = C.NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE\n\tCOMPUTE_INSTANCE_PROFILE_4_SLICE = C.NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE\n\tCOMPUTE_INSTANCE_PROFILE_7_SLICE = C.NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE\n\tCOMPUTE_INSTANCE_PROFILE_COUNT   = C.NVML_COMPUTE_INSTANCE_PROFILE_COUNT\n)\n\n// Compute Instance Engine Profiles\nconst (\n\tCOMPUTE_INSTANCE_ENGINE_PROFILE_SHARED = C.NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED\n\tCOMPUTE_INSTANCE_ENGINE_PROFILE_COUNT  = C.NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT\n)\n\n// Opaque GPUInstance type\ntype GPUInstance struct {\n\thandle C.nvmlGpuInstance_t\n\tdevice *Device\n}\n\n// type GPUInstancePlacement C.nvmlGpuInstancePlacement_t\n// Generated using `go tool cgo -godefs mig.go`\ntype GPUInstancePlacement struct {\n\tStart uint32\n\tSize  uint32\n}\n\n// type GPUInstanceProfileInfo C.nvmlGpuInstanceProfileInfo_t\n// Generated using `go tool cgo -godefs mig.go`\ntype GPUInstanceProfileInfo struct {\n\tID                  uint32\n\tIsP2pSupported      uint32\n\tSliceCount          uint32\n\tInstanceCount       uint32\n\tMultiprocessorCount uint32\n\tCopyEngineCount     uint32\n\tDecoderCount        uint32\n\tEncoderCount        uint32\n\tJpegCount           uint32\n\tOfaCount            uint32\n\tMemorySizeMB        uint64\n}\n\n// type GPUInstanceInfo_t C.nvmlGpuInstanceInfo_t\n// Generated using `go tool cgo -godefs mig.go`\ntype GPUInstanceInfo struct {\n\tDevice    *Device\n\tID        uint32\n\tProfileID uint32\n\tPlacement GPUInstancePlacement\n}\n\n// Opaque ComputeInstance type\ntype ComputeInstance struct {\n\thandle      C.nvmlComputeInstance_t\n\tgpuInstance GPUInstance\n}\n\n// type ComputeInstanceProfileInfo C.nvmlComputeInstanceProfileInfo_t\n// Generated using `go tool cgo -godefs mig.go`\ntype ComputeInstanceProfileInfo struct {\n\tID                    uint32\n\tSliceCount            uint32\n\tInstanceCount         uint32\n\tMultiprocessorCount   uint32\n\tSharedCopyEngineCount uint32\n\tSharedDecoderCount    uint32\n\tSharedEncoderCount    uint32\n\tSharedJpegCount       uint32\n\tSharedOfaCount        uint32\n}\n\n// type ComputeInstanceInfo C.nvmlComputeInstanceInfo_t\n// Generated using `go tool cgo -godefs mig.go`\ntype ComputeInstanceInfo struct {\n\tDevice      *Device\n\tGPUInstance GPUInstance\n\tID          uint32\n\tProfileID   uint32\n}\n\n// type DeviceAttributes C.nvmlDeviceAttributes_t\n// Generated using `go tool cgo -godefs mig.go`\ntype DeviceAttributes struct {\n\tMultiprocessorCount       uint32\n\tSharedCopyEngineCount     uint32\n\tSharedDecoderCount        uint32\n\tSharedEncoderCount        uint32\n\tSharedJpegCount           uint32\n\tSharedOfaCount            uint32\n\tGpuInstanceSliceCount     uint32\n\tComputeInstanceSliceCount uint32\n\tMemorySizeMB              uint64\n}\n\n// Device.SetMigMode()\nfunc (d *Device) SetMigMode(mode int) (activationStatus error, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceSetMigMode\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tvar as C.nvmlReturn_t\n\tret = C.nvmlDeviceSetMigMode(d.handle.dev, C.uint(mode), &as)\n\treturn errorString(as), errorString(ret)\n}\n\n// Device.GetMigMode()\nfunc (d *Device) GetMigMode() (currentMode, pendingMode int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetMigMode\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, 0, errorString(ret)\n\t}\n\n\tvar cm, pm C.uint\n\tret = C.nvmlDeviceGetMigMode(d.handle.dev, &cm, &pm)\n\treturn int(cm), int(pm), errorString(ret)\n}\n\n// Device.GetGPUInstanceProfileInfo()\nfunc (d *Device) GetGPUInstanceProfileInfo(profile int) (profileInfo GPUInstanceProfileInfo, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstanceProfileInfo\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn GPUInstanceProfileInfo{}, errorString(ret)\n\t}\n\n\tvar pi C.nvmlGpuInstanceProfileInfo_t\n\tret = C.nvmlDeviceGetGpuInstanceProfileInfo(d.handle.dev, C.uint(profile), &pi)\n\treturn *(*GPUInstanceProfileInfo)(unsafe.Pointer(&pi)), errorString(ret)\n}\n\n// Device.GetGPUInstancePossiblePlacements()\nfunc (d *Device) GetGPUInstancePossiblePlacements(profileInfo *GPUInstanceProfileInfo) (placement GPUInstancePlacement, count int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstancePossiblePlacements\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn GPUInstancePlacement{}, 0, errorString(ret)\n\t}\n\n\tvar pi C.nvmlGpuInstancePlacement_t\n\tvar c C.uint\n\tret = C.nvmlDeviceGetGpuInstancePossiblePlacements(d.handle.dev, C.uint(profileInfo.ID), &pi, &c)\n\treturn *(*GPUInstancePlacement)(unsafe.Pointer(&pi)), int(c), errorString(ret)\n}\n\n// Device.GPUInstanceRemainingCapacity()\nfunc (d *Device) GPUInstanceRemainingCapacity(profileInfo *GPUInstanceProfileInfo) (count int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstanceRemainingCapacity\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, errorString(ret)\n\t}\n\n\tvar c C.uint\n\tret = C.nvmlDeviceGetGpuInstanceRemainingCapacity(d.handle.dev, C.uint(profileInfo.ID), &c)\n\treturn int(c), errorString(ret)\n}\n\n// Device.CreateGPUInstance()\nfunc (d *Device) CreateGPUInstance(profileInfo *GPUInstanceProfileInfo) (gpuInstance GPUInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceCreateGpuInstance\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn GPUInstance{}, errorString(ret)\n\t}\n\n\tvar gi C.nvmlGpuInstance_t\n\tret = C.nvmlDeviceCreateGpuInstance(d.handle.dev, C.uint(profileInfo.ID), &gi)\n\treturn GPUInstance{gi, d}, errorString(ret)\n}\n\n// GPUInstance.Destroy()\nfunc (g *GPUInstance) Destroy() (err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceDestroy\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn errorString(ret)\n\t}\n\n\tret = C.nvmlGpuInstanceDestroy(g.handle)\n\treturn errorString(ret)\n}\n\n// Device.GetGPUInstances()\nfunc (d *Device) GetGPUInstances(profileInfo *GPUInstanceProfileInfo) (gpuInstances []GPUInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstances\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tgis := make([]C.nvmlGpuInstance_t, profileInfo.InstanceCount)\n\tvar c C.uint\n\tret = C.nvmlDeviceGetGpuInstances(d.handle.dev, C.uint(profileInfo.ID), &gis[0], &c)\n\tfor i := 0; i < int(c); i++ {\n\t\tgpuInstances = append(gpuInstances, GPUInstance{gis[i], d})\n\t}\n\treturn gpuInstances, errorString(ret)\n}\n\n// Device.GetGPUInstanceByID()\nfunc (d *Device) GetGPUInstanceByID(id int) (gpuInstance GPUInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstanceById\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn GPUInstance{}, errorString(ret)\n\t}\n\n\tvar gi C.nvmlGpuInstance_t\n\tret = C.nvmlDeviceGetGpuInstanceById(d.handle.dev, C.uint(id), &gi)\n\treturn GPUInstance{gi, d}, errorString(ret)\n}\n\n// GPUInstance.GetInfo()\nfunc (g *GPUInstance) GetInfo() (info GPUInstanceInfo, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceGetInfo\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn GPUInstanceInfo{}, errorString(ret)\n\t}\n\n\tvar gii C.nvmlGpuInstanceInfo_t\n\tret = C.nvmlGpuInstanceGetInfo(g.handle, &gii)\n\tinfo = *(*GPUInstanceInfo)(unsafe.Pointer(&gii))\n\tinfo.Device = g.device\n\treturn info, errorString(ret)\n}\n\n// GPUInstance.GetComputeInstanceProfileInfo()\nfunc (g *GPUInstance) GetComputeInstanceProfileInfo(profile int, engProfile int) (profileInfo ComputeInstanceProfileInfo, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceGetComputeInstanceProfileInfo\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ComputeInstanceProfileInfo{}, errorString(ret)\n\t}\n\n\tvar pi C.nvmlComputeInstanceProfileInfo_t\n\tret = C.nvmlGpuInstanceGetComputeInstanceProfileInfo(g.handle, C.uint(profile), C.uint(engProfile), &pi)\n\treturn *(*ComputeInstanceProfileInfo)(unsafe.Pointer(&pi)), errorString(ret)\n}\n\n// GPUInstance.ComputeInstanceRemainingCapacity()\nfunc (g *GPUInstance) ComputeInstanceRemainingCapacity(profileInfo *GPUInstanceProfileInfo) (count int, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceGetComputeInstanceRemainingCapacity\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, errorString(ret)\n\t}\n\n\tvar c C.uint\n\tret = C.nvmlGpuInstanceGetComputeInstanceRemainingCapacity(g.handle, C.uint(profileInfo.ID), &c)\n\treturn int(c), errorString(ret)\n}\n\n// GPUInstance.CreateComputeInstance()\nfunc (g *GPUInstance) CreateComputeInstance(profileInfo *ComputeInstanceProfileInfo) (computeInstance ComputeInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceCreateComputeInstance\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ComputeInstance{}, errorString(ret)\n\t}\n\n\tvar ci C.nvmlComputeInstance_t\n\tret = C.nvmlGpuInstanceCreateComputeInstance(g.handle, C.uint(profileInfo.ID), &ci)\n\treturn ComputeInstance{ci, *g}, errorString(ret)\n}\n\n// ComputeInstance.Destroy()\nfunc (c *ComputeInstance) Destroy() (err error) {\n\tret := dl.lookupSymbol(\"nvmlComputeInstanceDestroy\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn errorString(ret)\n\t}\n\n\tret = C.nvmlComputeInstanceDestroy(c.handle)\n\treturn errorString(ret)\n}\n\n// GPUInstance.GetComputeInstances()\nfunc (g *GPUInstance) GetComputeInstances(profileInfo *ComputeInstanceProfileInfo) (computeInstances []ComputeInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceGetComputeInstances\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tcis := make([]C.nvmlComputeInstance_t, profileInfo.InstanceCount)\n\tvar c C.uint\n\tret = C.nvmlGpuInstanceGetComputeInstances(g.handle, C.uint(profileInfo.ID), &cis[0], &c)\n\tfor i := 0; i < int(c); i++ {\n\t\tcomputeInstances = append(computeInstances, ComputeInstance{cis[i], *g})\n\t}\n\treturn computeInstances, errorString(ret)\n}\n\n// GPUInstance.GetComputeInstanceByID()\nfunc (g *GPUInstance) GetComputeInstanceByID(id int) (computeInstance ComputeInstance, err error) {\n\tret := dl.lookupSymbol(\"nvmlGpuInstanceGetComputeInstanceById\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ComputeInstance{}, errorString(ret)\n\t}\n\n\tvar ci C.nvmlComputeInstance_t\n\tret = C.nvmlGpuInstanceGetComputeInstanceById(g.handle, C.uint(id), &ci)\n\treturn ComputeInstance{ci, *g}, errorString(ret)\n}\n\n// ComputeInstance.GetInfo()\nfunc (c *ComputeInstance) GetInfo() (info ComputeInstanceInfo, err error) {\n\tret := dl.lookupSymbol(\"nvmlComputeInstanceGetInfo\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ComputeInstanceInfo{}, errorString(ret)\n\t}\n\n\tvar cii C.nvmlComputeInstanceInfo_t\n\tret = C.nvmlComputeInstanceGetInfo(c.handle, &cii)\n\tinfo = *(*ComputeInstanceInfo)(unsafe.Pointer(&cii))\n\tinfo.Device = c.gpuInstance.device\n\tinfo.GPUInstance = c.gpuInstance\n\treturn info, errorString(ret)\n}\n\n// Device.IsMigDeviceHandle()\nfunc (d *Device) IsMigDeviceHandle() (isMigDevice bool, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceIsMigDeviceHandle\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn false, errorString(ret)\n\t}\n\n\tvar is C.uint\n\tret = C.nvmlDeviceIsMigDeviceHandle(d.handle.dev, &is)\n\treturn (is != 0), errorString(ret)\n}\n\n// Device.GetGPUInstanceId()\nfunc (d *Device) GetGPUInstanceId() (id int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetGpuInstanceId\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, errorString(ret)\n\t}\n\n\tvar gi C.uint\n\tret = C.nvmlDeviceGetGpuInstanceId(d.handle.dev, &gi)\n\treturn int(gi), errorString(ret)\n}\n\n// Device.GetComputeInstanceId()\nfunc (d *Device) GetComputeInstanceId() (id int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetComputeInstanceId\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, errorString(ret)\n\t}\n\n\tvar ci C.uint\n\tret = C.nvmlDeviceGetComputeInstanceId(d.handle.dev, &ci)\n\treturn int(ci), errorString(ret)\n}\n\n// Device.GetMaxMigDeviceCount()\nfunc (d *Device) GetMaxMigDeviceCount() (count int, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetMaxMigDeviceCount\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn 0, errorString(ret)\n\t}\n\n\tvar c C.uint\n\tret = C.nvmlDeviceGetMaxMigDeviceCount(d.handle.dev, &c)\n\treturn int(c), errorString(ret)\n}\n\n// Device.GetMigDeviceHandleByIndex()\nfunc (d *Device) GetMigDeviceHandleByIndex(index int) (migDevice *Device, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetMigDeviceHandleByIndex\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tvar m C.nvmlDevice_t\n\tret = C.nvmlDeviceGetMigDeviceHandleByIndex(d.handle.dev, C.uint(index), &m)\n\treturn &Device{handle: handle{m}}, errorString(ret)\n}\n\n// Device.GetMigDeviceHandleByIndex()\nfunc (d *Device) GetDeviceHandleFromMigDeviceHandle() (device *Device, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetDeviceHandleFromMigDeviceHandle\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn nil, errorString(ret)\n\t}\n\n\tvar parent C.nvmlDevice_t\n\tret = C.nvmlDeviceGetDeviceHandleFromMigDeviceHandle(d.handle.dev, &parent)\n\treturn &Device{handle: handle{parent}}, errorString(ret)\n}\n\n// Device.GetAttributes()\nfunc (d *Device) GetAttributes() (attr DeviceAttributes, err error) {\n\tret := dl.lookupSymbol(\"nvmlDeviceGetAttributes\")\n\tif ret != C.NVML_SUCCESS {\n\t\treturn DeviceAttributes{}, errorString(ret)\n\t}\n\n\tvar a C.nvmlDeviceAttributes_t\n\tret = C.nvmlDeviceGetAttributes(d.handle.dev, &a)\n\treturn *(*DeviceAttributes)(unsafe.Pointer(&a)), errorString(ret)\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml.go",
    "content": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\npackage nvml\n\n// #include \"nvml.h\"\nimport \"C\"\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\tErrCPUAffinity        = errors.New(\"failed to retrieve CPU affinity\")\n\tErrUnsupportedP2PLink = errors.New(\"unsupported P2P link type\")\n\tErrUnsupportedGPU     = errors.New(\"unsupported GPU device\")\n)\n\ntype ModeState uint\n\nconst (\n\tDisabled ModeState = iota\n\tEnabled\n)\n\nfunc (m ModeState) String() string {\n\tswitch m {\n\tcase Enabled:\n\t\treturn \"Enabled\"\n\tcase Disabled:\n\t\treturn \"Disabled\"\n\t}\n\treturn \"N/A\"\n}\n\ntype Display struct {\n\tMode   ModeState\n\tActive ModeState\n}\n\ntype Accounting struct {\n\tMode       ModeState\n\tBufferSize *uint\n}\n\ntype DeviceMode struct {\n\tDisplayInfo    Display\n\tPersistence    ModeState\n\tAccountingInfo Accounting\n}\n\ntype ThrottleReason uint\n\nconst (\n\tThrottleReasonGpuIdle ThrottleReason = iota\n\tThrottleReasonApplicationsClocksSetting\n\tThrottleReasonSwPowerCap\n\tThrottleReasonHwSlowdown\n\tThrottleReasonSyncBoost\n\tThrottleReasonSwThermalSlowdown\n\tThrottleReasonHwThermalSlowdown\n\tThrottleReasonHwPowerBrakeSlowdown\n\tThrottleReasonDisplayClockSetting\n\tThrottleReasonNone\n\tThrottleReasonUnknown\n)\n\nfunc (r ThrottleReason) String() string {\n\tswitch r {\n\tcase ThrottleReasonGpuIdle:\n\t\treturn \"Gpu Idle\"\n\tcase ThrottleReasonApplicationsClocksSetting:\n\t\treturn \"Applications Clocks Setting\"\n\tcase ThrottleReasonSwPowerCap:\n\t\treturn \"SW Power Cap\"\n\tcase ThrottleReasonHwSlowdown:\n\t\treturn \"HW Slowdown\"\n\tcase ThrottleReasonSyncBoost:\n\t\treturn \"Sync Boost\"\n\tcase ThrottleReasonSwThermalSlowdown:\n\t\treturn \"SW Thermal Slowdown\"\n\tcase ThrottleReasonHwThermalSlowdown:\n\t\treturn \"HW Thermal Slowdown\"\n\tcase ThrottleReasonHwPowerBrakeSlowdown:\n\t\treturn \"HW Power Brake Slowdown\"\n\tcase ThrottleReasonDisplayClockSetting:\n\t\treturn \"Display Clock Setting\"\n\tcase ThrottleReasonNone:\n\t\treturn \"No clocks throttling\"\n\t}\n\treturn \"N/A\"\n}\n\ntype PerfState uint\n\nconst (\n\tPerfStateMax     = 0\n\tPerfStateMin     = 15\n\tPerfStateUnknown = 32\n)\n\nfunc (p PerfState) String() string {\n\tif p >= PerfStateMax && p <= PerfStateMin {\n\t\treturn fmt.Sprintf(\"P%d\", p)\n\t}\n\treturn \"Unknown\"\n}\n\ntype ProcessType uint\n\nconst (\n\tCompute ProcessType = iota\n\tGraphics\n\tComputeAndGraphics\n)\n\nfunc (t ProcessType) String() string {\n\ttyp := \"C+G\"\n\tif t == Compute {\n\t\ttyp = \"C\"\n\t} else if t == Graphics {\n\t\ttyp = \"G\"\n\t}\n\treturn typ\n}\n\ntype P2PLinkType uint\n\nconst (\n\tP2PLinkUnknown P2PLinkType = iota\n\tP2PLinkCrossCPU\n\tP2PLinkSameCPU\n\tP2PLinkHostBridge\n\tP2PLinkMultiSwitch\n\tP2PLinkSingleSwitch\n\tP2PLinkSameBoard\n\tSingleNVLINKLink\n\tTwoNVLINKLinks\n\tThreeNVLINKLinks\n\tFourNVLINKLinks\n\tFiveNVLINKLinks\n\tSixNVLINKLinks\n\tSevenNVLINKLinks\n\tEightNVLINKLinks\n\tNineNVLINKLinks\n\tTenNVLINKLinks\n\tElevenNVLINKLinks\n\tTwelveNVLINKLinks\n)\n\ntype P2PLink struct {\n\tBusID string\n\tLink  P2PLinkType\n}\n\nfunc (t P2PLinkType) String() string {\n\tswitch t {\n\tcase P2PLinkCrossCPU:\n\t\treturn \"Cross CPU socket\"\n\tcase P2PLinkSameCPU:\n\t\treturn \"Same CPU socket\"\n\tcase P2PLinkHostBridge:\n\t\treturn \"Host PCI bridge\"\n\tcase P2PLinkMultiSwitch:\n\t\treturn \"Multiple PCI switches\"\n\tcase P2PLinkSingleSwitch:\n\t\treturn \"Single PCI switch\"\n\tcase P2PLinkSameBoard:\n\t\treturn \"Same board\"\n\tcase SingleNVLINKLink:\n\t\treturn \"Single NVLink\"\n\tcase TwoNVLINKLinks:\n\t\treturn \"Two NVLinks\"\n\tcase ThreeNVLINKLinks:\n\t\treturn \"Three NVLinks\"\n\tcase FourNVLINKLinks:\n\t\treturn \"Four NVLinks\"\n\tcase FiveNVLINKLinks:\n\t\treturn \"Five NVLinks\"\n\tcase SixNVLINKLinks:\n\t\treturn \"Six NVLinks\"\n\tcase SevenNVLINKLinks:\n\t\treturn \"Seven NVLinks\"\n\tcase EightNVLINKLinks:\n\t\treturn \"Eight NVLinks\"\n\tcase NineNVLINKLinks:\n\t\treturn \"Nine NVLinks\"\n\tcase TenNVLINKLinks:\n\t\treturn \"Ten NVLinks\"\n\tcase ElevenNVLINKLinks:\n\t\treturn \"Eleven NVLinks\"\n\tcase TwelveNVLINKLinks:\n\t\treturn \"Twelve NVLinks\"\n\tcase P2PLinkUnknown:\n\t}\n\treturn \"N/A\"\n}\n\ntype ClockInfo struct {\n\tCores  *uint\n\tMemory *uint\n}\n\ntype PCIInfo struct {\n\tBusID     string\n\tBAR1      *uint64\n\tBandwidth *uint\n}\n\ntype CudaComputeCapabilityInfo struct {\n\tMajor *int\n\tMinor *int\n}\n\ntype Device struct {\n\thandle\n\n\tUUID                  string\n\tPath                  string\n\tModel                 *string\n\tPower                 *uint\n\tMemory                *uint64\n\tCPUAffinity           *uint\n\tPCI                   PCIInfo\n\tClocks                ClockInfo\n\tTopology              []P2PLink\n\tCudaComputeCapability CudaComputeCapabilityInfo\n}\n\ntype UtilizationInfo struct {\n\tGPU     *uint\n\tMemory  *uint\n\tEncoder *uint\n\tDecoder *uint\n}\n\ntype PCIThroughputInfo struct {\n\tRX *uint\n\tTX *uint\n}\n\ntype PCIStatusInfo struct {\n\tBAR1Used   *uint64\n\tThroughput PCIThroughputInfo\n}\n\ntype ECCErrorsInfo struct {\n\tL1Cache *uint64\n\tL2Cache *uint64\n\tDevice  *uint64\n}\n\ntype DeviceMemory struct {\n\tUsed *uint64\n\tFree *uint64\n}\n\ntype MemoryInfo struct {\n\tGlobal    DeviceMemory\n\tECCErrors ECCErrorsInfo\n}\n\ntype ProcessInfo struct {\n\tPID        uint\n\tName       string\n\tMemoryUsed uint64\n\tType       ProcessType\n}\n\ntype DeviceStatus struct {\n\tPower       *uint\n\tFanSpeed    *uint\n\tTemperature *uint\n\tUtilization UtilizationInfo\n\tMemory      MemoryInfo\n\tClocks      ClockInfo\n\tPCI         PCIStatusInfo\n\tProcesses   []ProcessInfo\n\tThrottle    ThrottleReason\n\tPerformance PerfState\n}\n\nfunc assert(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Init() error {\n\treturn init_()\n}\n\nfunc Shutdown() error {\n\treturn shutdown()\n}\n\nfunc GetDeviceCount() (uint, error) {\n\treturn deviceGetCount()\n}\n\nfunc GetDriverVersion() (string, error) {\n\treturn systemGetDriverVersion()\n}\n\nfunc GetCudaDriverVersion() (*uint, *uint, error) {\n\treturn systemGetCudaDriverVersion()\n}\n\nfunc numaNode(busid string) (*uint, error) {\n\t// discard leading zeros of busid\n\tb, err := ioutil.ReadFile(fmt.Sprintf(\"/sys/bus/pci/devices/%s/numa_node\", strings.ToLower(busid[4:])))\n\tif err != nil {\n\t\t// XXX report nil if NUMA support isn't enabled\n\t\treturn nil, nil\n\t}\n\tnode, err := strconv.ParseInt(string(bytes.TrimSpace(b)), 10, 8)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%v: %v\", ErrCPUAffinity, err)\n\t}\n\tif node < 0 {\n\t\t// XXX report nil instead of NUMA_NO_NODE\n\t\treturn nil, nil\n\t}\n\n\tnumaNode := uint(node)\n\treturn &numaNode, nil\n}\n\nfunc pciBandwidth(gen, width *uint) *uint {\n\tm := map[uint]uint{\n\t\t1: 250, // MB/s\n\t\t2: 500,\n\t\t3: 985,\n\t\t4: 1969,\n\t}\n\tif gen == nil || width == nil {\n\t\treturn nil\n\t}\n\tbw := m[*gen] * *width\n\treturn &bw\n}\n\nfunc NewDevice(idx uint) (device *Device, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\th, err := deviceGetHandleByIndex(idx)\n\tassert(err)\n\n\tdevice, err = newDevice(h)\n\tassert(err)\n\n\treturn device, err\n}\n\nfunc NewDeviceByUUID(uuid string) (device *Device, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\th, err := deviceGetHandleByUUID(uuid)\n\tassert(err)\n\n\tdevice, err = newDevice(h)\n\tassert(err)\n\n\treturn device, err\n}\n\nfunc newDevice(h handle) (device *Device, err error) {\n\tmodel, err := h.deviceGetName()\n\tassert(err)\n\tuuid, err := h.deviceGetUUID()\n\tassert(err)\n\tminor, err := h.deviceGetMinorNumber()\n\tassert(err)\n\tpower, err := h.deviceGetPowerManagementLimit()\n\tassert(err)\n\ttotalMem, _, err := h.deviceGetMemoryInfo()\n\tassert(err)\n\tbusid, err := h.deviceGetPciInfo()\n\tassert(err)\n\tbar1, _, err := h.deviceGetBAR1MemoryInfo()\n\tassert(err)\n\tpcig, err := h.deviceGetMaxPcieLinkGeneration()\n\tassert(err)\n\tpciw, err := h.deviceGetMaxPcieLinkWidth()\n\tassert(err)\n\tccore, cmem, err := h.deviceGetMaxClockInfo()\n\tassert(err)\n\tcccMajor, cccMinor, err := h.deviceGetCudaComputeCapability()\n\tassert(err)\n\n\tvar path string\n\tif runtime.GOOS == \"windows\" {\n\t\tif busid == nil || uuid == nil {\n\t\t\treturn nil, ErrUnsupportedGPU\n\t\t}\n\t} else {\n\t\tif minor == nil || busid == nil || uuid == nil {\n\t\t\treturn nil, ErrUnsupportedGPU\n\t\t}\n\t\tpath = fmt.Sprintf(\"/dev/nvidia%d\", *minor)\n\t}\n\tnode, err := numaNode(*busid)\n\tassert(err)\n\n\tdevice = &Device{\n\t\thandle:      h,\n\t\tUUID:        *uuid,\n\t\tPath:        path,\n\t\tModel:       model,\n\t\tPower:       power,\n\t\tMemory:      totalMem,\n\t\tCPUAffinity: node,\n\t\tPCI: PCIInfo{\n\t\t\tBusID:     *busid,\n\t\t\tBAR1:      bar1,\n\t\t\tBandwidth: pciBandwidth(pcig, pciw), // MB/s\n\t\t},\n\t\tClocks: ClockInfo{\n\t\t\tCores:  ccore, // MHz\n\t\t\tMemory: cmem,  // MHz\n\t\t},\n\t\tCudaComputeCapability: CudaComputeCapabilityInfo{\n\t\t\tMajor: cccMajor,\n\t\t\tMinor: cccMinor,\n\t\t},\n\t}\n\tif power != nil {\n\t\t*device.Power /= 1000 // W\n\t}\n\tif bar1 != nil {\n\t\t*device.PCI.BAR1 /= 1024 * 1024 // MiB\n\t}\n\treturn\n}\n\nfunc NewDeviceLite(idx uint) (device *Device, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\th, err := deviceGetHandleByIndex(idx)\n\tassert(err)\n\n\tdevice, err = newDeviceLite(h)\n\tassert(err)\n\n\treturn device, err\n}\n\nfunc NewDeviceLiteByUUID(uuid string) (device *Device, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\th, err := deviceGetHandleByUUID(uuid)\n\tassert(err)\n\n\tdevice, err = newDeviceLite(h)\n\tassert(err)\n\n\treturn device, err\n}\n\nfunc newDeviceLite(h handle) (device *Device, err error) {\n\tuuid, err := h.deviceGetUUID()\n\tassert(err)\n\tminor, err := h.deviceGetMinorNumber()\n\tassert(err)\n\tbusid, err := h.deviceGetPciInfo()\n\tassert(err)\n\n\tif minor == nil || busid == nil || uuid == nil {\n\t\treturn nil, ErrUnsupportedGPU\n\t}\n\tpath := fmt.Sprintf(\"/dev/nvidia%d\", *minor)\n\tnode, err := numaNode(*busid)\n\tassert(err)\n\n\tdevice = &Device{\n\t\thandle:      h,\n\t\tUUID:        *uuid,\n\t\tPath:        path,\n\t\tCPUAffinity: node,\n\t\tPCI: PCIInfo{\n\t\t\tBusID: *busid,\n\t\t},\n\t}\n\treturn\n}\n\nfunc (d *Device) Status() (status *DeviceStatus, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\tpower, err := d.deviceGetPowerUsage()\n\tassert(err)\n\tfanSpeed, err := d.deviceGetFanSpeed()\n\tassert(err)\n\ttemp, err := d.deviceGetTemperature()\n\tassert(err)\n\tugpu, umem, err := d.deviceGetUtilizationRates()\n\tassert(err)\n\tuenc, err := d.deviceGetEncoderUtilization()\n\tassert(err)\n\tudec, err := d.deviceGetDecoderUtilization()\n\tassert(err)\n\t_, devMem, err := d.deviceGetMemoryInfo()\n\tassert(err)\n\tccore, cmem, err := d.deviceGetClockInfo()\n\tassert(err)\n\t_, bar1, err := d.deviceGetBAR1MemoryInfo()\n\tassert(err)\n\tel1, el2, emem, err := d.deviceGetMemoryErrorCounter()\n\tassert(err)\n\tpcirx, pcitx, err := d.deviceGetPcieThroughput()\n\tassert(err)\n\tthrottle, err := d.getClocksThrottleReasons()\n\tassert(err)\n\tperfState, err := d.getPerformanceState()\n\tassert(err)\n\tprocessInfo, err := d.deviceGetAllRunningProcesses()\n\tassert(err)\n\n\tstatus = &DeviceStatus{\n\t\tPower:       power,\n\t\tFanSpeed:    fanSpeed, // %\n\t\tTemperature: temp,     // °C\n\t\tUtilization: UtilizationInfo{\n\t\t\tGPU:     ugpu, // %\n\t\t\tMemory:  umem, // %\n\t\t\tEncoder: uenc, // %\n\t\t\tDecoder: udec, // %\n\t\t},\n\t\tMemory: MemoryInfo{\n\t\t\tGlobal: devMem,\n\t\t\tECCErrors: ECCErrorsInfo{\n\t\t\t\tL1Cache: el1,\n\t\t\t\tL2Cache: el2,\n\t\t\t\tDevice:  emem,\n\t\t\t},\n\t\t},\n\t\tClocks: ClockInfo{\n\t\t\tCores:  ccore, // MHz\n\t\t\tMemory: cmem,  // MHz\n\t\t},\n\t\tPCI: PCIStatusInfo{\n\t\t\tBAR1Used: bar1,\n\t\t\tThroughput: PCIThroughputInfo{\n\t\t\t\tRX: pcirx,\n\t\t\t\tTX: pcitx,\n\t\t\t},\n\t\t},\n\t\tThrottle:    throttle,\n\t\tPerformance: perfState,\n\t\tProcesses:   processInfo,\n\t}\n\tif power != nil {\n\t\t*status.Power /= 1000 // W\n\t}\n\tif bar1 != nil {\n\t\t*status.PCI.BAR1Used /= 1024 * 1024 // MiB\n\t}\n\tif pcirx != nil {\n\t\t*status.PCI.Throughput.RX /= 1000 // MB/s\n\t}\n\tif pcitx != nil {\n\t\t*status.PCI.Throughput.TX /= 1000 // MB/s\n\t}\n\treturn\n}\n\nfunc GetP2PLink(dev1, dev2 *Device) (link P2PLinkType, err error) {\n\tlevel, err := deviceGetTopologyCommonAncestor(dev1.handle, dev2.handle)\n\tif err != nil || level == nil {\n\t\treturn P2PLinkUnknown, err\n\t}\n\n\tswitch *level {\n\tcase C.NVML_TOPOLOGY_INTERNAL:\n\t\tlink = P2PLinkSameBoard\n\tcase C.NVML_TOPOLOGY_SINGLE:\n\t\tlink = P2PLinkSingleSwitch\n\tcase C.NVML_TOPOLOGY_MULTIPLE:\n\t\tlink = P2PLinkMultiSwitch\n\tcase C.NVML_TOPOLOGY_HOSTBRIDGE:\n\t\tlink = P2PLinkHostBridge\n\tcase C.NVML_TOPOLOGY_CPU:\n\t\tlink = P2PLinkSameCPU\n\tcase C.NVML_TOPOLOGY_SYSTEM:\n\t\tlink = P2PLinkCrossCPU\n\tdefault:\n\t\terr = ErrUnsupportedP2PLink\n\t}\n\treturn\n}\n\nfunc GetNVLink(dev1, dev2 *Device) (link P2PLinkType, err error) {\n\tnvbusIds1, err := dev1.handle.deviceGetAllNvLinkRemotePciInfo()\n\tif err != nil || nvbusIds1 == nil {\n\t\treturn P2PLinkUnknown, err\n\t}\n\n\tnvlink := P2PLinkUnknown\n\tfor _, nvbusID1 := range nvbusIds1 {\n\t\tif *nvbusID1 == dev2.PCI.BusID {\n\t\t\tswitch nvlink {\n\t\t\tcase P2PLinkUnknown:\n\t\t\t\tnvlink = SingleNVLINKLink\n\t\t\tcase SingleNVLINKLink:\n\t\t\t\tnvlink = TwoNVLINKLinks\n\t\t\tcase TwoNVLINKLinks:\n\t\t\t\tnvlink = ThreeNVLINKLinks\n\t\t\tcase ThreeNVLINKLinks:\n\t\t\t\tnvlink = FourNVLINKLinks\n\t\t\tcase FourNVLINKLinks:\n\t\t\t\tnvlink = FiveNVLINKLinks\n\t\t\tcase FiveNVLINKLinks:\n\t\t\t\tnvlink = SixNVLINKLinks\n\t\t\tcase SixNVLINKLinks:\n\t\t\t\tnvlink = SevenNVLINKLinks\n\t\t\tcase SevenNVLINKLinks:\n\t\t\t\tnvlink = EightNVLINKLinks\n\t\t\tcase EightNVLINKLinks:\n\t\t\t\tnvlink = NineNVLINKLinks\n\t\t\tcase NineNVLINKLinks:\n\t\t\t\tnvlink = TenNVLINKLinks\n\t\t\tcase TenNVLINKLinks:\n\t\t\t\tnvlink = ElevenNVLINKLinks\n\t\t\tcase ElevenNVLINKLinks:\n\t\t\t\tnvlink = TwelveNVLINKLinks\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO(klueska): Handle NVSwitch semantics\n\n\treturn nvlink, nil\n}\n\nfunc (d *Device) GetComputeRunningProcesses() ([]uint, []uint64, error) {\n\treturn d.handle.deviceGetComputeRunningProcesses()\n}\n\nfunc (d *Device) GetGraphicsRunningProcesses() ([]uint, []uint64, error) {\n\treturn d.handle.deviceGetGraphicsRunningProcesses()\n}\n\nfunc (d *Device) GetAllRunningProcesses() ([]ProcessInfo, error) {\n\treturn d.handle.deviceGetAllRunningProcesses()\n}\n\nfunc (d *Device) GetDeviceMode() (mode *DeviceMode, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\n\tdisplay, err := d.getDisplayInfo()\n\tassert(err)\n\n\tp, err := d.getPeristenceMode()\n\tassert(err)\n\n\taccounting, err := d.getAccountingInfo()\n\tassert(err)\n\n\tmode = &DeviceMode{\n\t\tDisplayInfo:    display,\n\t\tPersistence:    p,\n\t\tAccountingInfo: accounting,\n\t}\n\treturn\n}\n\nfunc (d *Device) IsMigEnabled() (bool, error) {\n\treturn d.handle.isMigEnabled()\n}\n\nfunc (d *Device) GetMigDevices() ([]*Device, error) {\n\thandles, err := d.handle.getMigDevices()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar devices []*Device\n\tfor _, h := range handles {\n\t\tuuid, err := h.deviceGetUUID()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmodel, err := d.deviceGetName()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\ttotalMem, _, err := h.deviceGetMemoryInfo()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdevice := &Device{\n\t\t\thandle:      h,\n\t\t\tUUID:        *uuid,\n\t\t\tModel:       model,\n\t\t\tMemory:      totalMem,\n\t\t\tCPUAffinity: d.CPUAffinity,\n\t\t\tPath:        d.Path,\n\t\t}\n\n\t\tdevices = append(devices, device)\n\t}\n\n\treturn devices, nil\n}\n\nfunc (d *Device) GetMigParentDevice() (*Device, error) {\n\tparent, err := d.handle.deviceGetDeviceHandleFromMigDeviceHandle()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tindex, err := parent.deviceGetIndex()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewDevice(*index)\n}\n\nfunc (d *Device) GetMigParentDeviceLite() (*Device, error) {\n\tparent, err := d.handle.deviceGetDeviceHandleFromMigDeviceHandle()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tindex, err := parent.deviceGetIndex()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewDeviceLite(*index)\n}\n\nfunc ParseMigDeviceUUID(uuid string) (string, uint, uint, error) {\n\tmigHandle, err := deviceGetHandleByUUID(uuid)\n\tif err == nil {\n\t\treturn getMIGDeviceInfo(migHandle)\n\t}\n\treturn parseMigDeviceUUID(uuid)\n}\n\nfunc getMIGDeviceInfo(migHandle handle) (string, uint, uint, error) {\n\tparentHandle, err := migHandle.deviceGetDeviceHandleFromMigDeviceHandle()\n\tif err != nil {\n\t\treturn \"\", 0, 0, err\n\t}\n\n\tparentUUID, err := parentHandle.deviceGetUUID()\n\tif err != nil {\n\t\treturn \"\", 0, 0, err\n\t}\n\n\tmigDevice := Device{handle: migHandle}\n\n\tgi, err := migDevice.GetGPUInstanceId()\n\tif err != nil {\n\t\treturn \"\", 0, 0, err\n\t}\n\n\tci, err := migDevice.GetComputeInstanceId()\n\tif err != nil {\n\t\treturn \"\", 0, 0, err\n\t}\n\n\treturn *parentUUID, uint(gi), uint(ci), err\n}\n\nfunc parseMigDeviceUUID(mig string) (string, uint, uint, error) {\n\ttokens := strings.SplitN(mig, \"-\", 2)\n\tif len(tokens) != 2 || tokens[0] != \"MIG\" {\n\t\treturn \"\", 0, 0, fmt.Errorf(\"Unable to parse UUID as MIG device\")\n\t}\n\n\ttokens = strings.SplitN(tokens[1], \"/\", 3)\n\tif len(tokens) != 3 || !strings.HasPrefix(tokens[0], \"GPU-\") {\n\t\treturn \"\", 0, 0, fmt.Errorf(\"Unable to parse UUID as MIG device\")\n\t}\n\n\tgi, err := strconv.Atoi(tokens[1])\n\tif err != nil {\n\t\treturn \"\", 0, 0, fmt.Errorf(\"Unable to parse UUID as MIG device\")\n\t}\n\n\tci, err := strconv.Atoi(tokens[2])\n\tif err != nil {\n\t\treturn \"\", 0, 0, fmt.Errorf(\"Unable to parse UUID as MIG device\")\n\t}\n\n\treturn tokens[0], uint(gi), uint(ci), nil\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml.h",
    "content": "/*\n * Copyright 1993-2020 NVIDIA Corporation.  All rights reserved.\n *\n * NOTICE TO USER:\n *\n * This source code is subject to NVIDIA ownership rights under U.S. and\n * international Copyright laws.  Users and possessors of this source code\n * are hereby granted a nonexclusive, royalty-free license to use this code\n * in individual and commercial software.\n *\n * NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE\n * CODE FOR ANY PURPOSE.  IT IS PROVIDED \"AS IS\" WITHOUT EXPRESS OR\n * IMPLIED WARRANTY OF ANY KIND.  NVIDIA DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.\n * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,\n * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n * OF USE, DATA OR PROFITS,  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n * OR OTHER TORTIOUS ACTION,  ARISING OUT OF OR IN CONNECTION WITH THE USE\n * OR PERFORMANCE OF THIS SOURCE CODE.\n *\n * U.S. Government End Users.   This source code is a \"commercial item\" as\n * that term is defined at  48 C.F.R. 2.101 (OCT 1995), consisting  of\n * \"commercial computer  software\"  and \"commercial computer software\n * documentation\" as such terms are  used in 48 C.F.R. 12.212 (SEPT 1995)\n * and is provided to the U.S. Government only as a commercial end item.\n * Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through\n * 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the\n * source code with only those rights set forth herein.\n *\n * Any use of this source code in individual and commercial software must\n * include, in the user documentation and internal comments to the code,\n * the above Disclaimer and U.S. Government End Users Notice.\n */\n\n/*\nNVML API Reference\n\nThe NVIDIA Management Library (NVML) is a C-based programmatic interface for monitoring and\nmanaging various states within NVIDIA Tesla &tm; GPUs. It is intended to be a platform for building\n3rd party applications, and is also the underlying library for the NVIDIA-supported nvidia-smi\ntool. NVML is thread-safe so it is safe to make simultaneous NVML calls from multiple threads.\n\nAPI Documentation\n\nSupported platforms:\n- Windows:     Windows Server 2008 R2 64bit, Windows Server 2012 R2 64bit, Windows 7 64bit, Windows 8 64bit, Windows 10 64bit\n- Linux:       32-bit and 64-bit\n- Hypervisors: Windows Server 2008R2/2012 Hyper-V 64bit, Citrix XenServer 6.2 SP1+, VMware ESX 5.1/5.5\n\nSupported products:\n- Full Support\n    - All Tesla products, starting with the Fermi architecture\n    - All Quadro products, starting with the Fermi architecture\n    - All GRID products, starting with the Kepler architecture\n    - Selected GeForce Titan products\n- Limited Support\n    - All Geforce products, starting with the Fermi architecture\n\nThe NVML library can be found at \\%ProgramW6432\\%\\\\\"NVIDIA Corporation\"\\\\NVSMI\\\\ on Windows. It is\nnot be added to the system path by default. To dynamically link to NVML, add this path to the PATH\nenvironmental variable. To dynamically load NVML, call LoadLibrary with this path.\n\nOn Linux the NVML library will be found on the standard library path. For 64 bit Linux, both the 32 bit\nand 64 bit NVML libraries will be installed.\n\nOnline documentation for this library is available at http://docs.nvidia.com/deploy/nvml-api/index.html\n*/\n\n#ifndef __nvml_nvml_h__\n#define __nvml_nvml_h__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n/*\n * On Windows, set up methods for DLL export\n * define NVML_STATIC_IMPORT when using nvml_loader library\n */\n#if defined _WINDOWS\n    #if !defined NVML_STATIC_IMPORT\n        #if defined NVML_LIB_EXPORT\n            #define DECLDIR __declspec(dllexport)\n        #else\n            #define DECLDIR __declspec(dllimport)\n        #endif\n    #else\n        #define DECLDIR\n    #endif\n#else\n    #define DECLDIR\n#endif\n\n/**\n * NVML API versioning support\n */\n#define NVML_API_VERSION            11\n#define NVML_API_VERSION_STR        \"11\"\n/**\n * Defining NVML_NO_UNVERSIONED_FUNC_DEFS will disable \"auto upgrading\" of APIs.\n * e.g. the user will have to call nvmlInit_v2 instead of nvmlInit. Enable this\n * guard if you need to support older versions of the API\n */\n#ifndef NVML_NO_UNVERSIONED_FUNC_DEFS\n    #define nvmlInit                    nvmlInit_v2\n    #define nvmlDeviceGetPciInfo        nvmlDeviceGetPciInfo_v3\n    #define nvmlDeviceGetCount          nvmlDeviceGetCount_v2\n    #define nvmlDeviceGetHandleByIndex  nvmlDeviceGetHandleByIndex_v2\n    #define nvmlDeviceGetHandleByPciBusId nvmlDeviceGetHandleByPciBusId_v2\n    #define nvmlDeviceGetNvLinkRemotePciInfo nvmlDeviceGetNvLinkRemotePciInfo_v2\n    #define nvmlDeviceRemoveGpu         nvmlDeviceRemoveGpu_v2\n    #define nvmlDeviceGetGridLicensableFeatures nvmlDeviceGetGridLicensableFeatures_v3\n    #define nvmlEventSetWait nvmlEventSetWait_v2\n    #define nvmlDeviceGetAttributes nvmlDeviceGetAttributes_v2\n#endif // #ifndef NVML_NO_UNVERSIONED_FUNC_DEFS\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceStructs Device Structs\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Special constant that some fields take when they are not available.\n * Used when only part of the struct is not available.\n *\n * Each structure explicitly states when to check for this value.\n */\n#define NVML_VALUE_NOT_AVAILABLE (-1)\n\ntypedef struct nvmlDevice_st* nvmlDevice_t;\n\n/**\n * Buffer size guaranteed to be large enough for pci bus id\n */\n#define NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE      32\n\n/**\n * Buffer size guaranteed to be large enough for pci bus id for ::busIdLegacy\n */\n#define NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE   16\n\n/**\n * PCI information about a GPU device.\n */\ntypedef struct nvmlPciInfo_st\n{\n    char busIdLegacy[NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE]; //!< The legacy tuple domain:bus:device.function PCI identifier (&amp; NULL terminator)\n    unsigned int domain;             //!< The PCI domain on which the device's bus resides, 0 to 0xffffffff\n    unsigned int bus;                //!< The bus on which the device resides, 0 to 0xff\n    unsigned int device;             //!< The device's id on the bus, 0 to 31\n    unsigned int pciDeviceId;        //!< The combined 16-bit device id and 16-bit vendor id\n\n    // Added in NVML 2.285 API\n    unsigned int pciSubSystemId;     //!< The 32-bit Sub System Device ID\n\n    char busId[NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE]; //!< The tuple domain:bus:device.function PCI identifier (&amp; NULL terminator)\n} nvmlPciInfo_t;\n\n/**\n * PCI format string for ::busIdLegacy\n */\n#define NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT           \"%04X:%02X:%02X.0\"\n\n/**\n * PCI format string for ::busId\n */\n#define NVML_DEVICE_PCI_BUS_ID_FMT                  \"%08X:%02X:%02X.0\"\n\n/**\n * Utility macro for filling the pci bus id format from a nvmlPciInfo_t\n */\n#define NVML_DEVICE_PCI_BUS_ID_FMT_ARGS(pciInfo)    (pciInfo)->domain, \\\n                                                    (pciInfo)->bus,    \\\n                                                    (pciInfo)->device\n\n/**\n * Detailed ECC error counts for a device.\n *\n * @deprecated  Different GPU families can have different memory error counters\n *              See \\ref nvmlDeviceGetMemoryErrorCounter\n */\ntypedef struct nvmlEccErrorCounts_st\n{\n    unsigned long long l1Cache;      //!< L1 cache errors\n    unsigned long long l2Cache;      //!< L2 cache errors\n    unsigned long long deviceMemory; //!< Device memory errors\n    unsigned long long registerFile; //!< Register file errors\n} nvmlEccErrorCounts_t;\n\n/**\n * Utilization information for a device.\n * Each sample period may be between 1 second and 1/6 second, depending on the product being queried.\n */\ntypedef struct nvmlUtilization_st\n{\n    unsigned int gpu;                //!< Percent of time over the past sample period during which one or more kernels was executing on the GPU\n    unsigned int memory;             //!< Percent of time over the past sample period during which global (device) memory was being read or written\n} nvmlUtilization_t;\n\n/**\n * Memory allocation information for a device.\n */\ntypedef struct nvmlMemory_st\n{\n    unsigned long long total;        //!< Total installed FB memory (in bytes)\n    unsigned long long free;         //!< Unallocated FB memory (in bytes)\n    unsigned long long used;         //!< Allocated FB memory (in bytes). Note that the driver/GPU always sets aside a small amount of memory for bookkeeping\n} nvmlMemory_t;\n\n/**\n * BAR1 Memory allocation Information for a device\n */\ntypedef struct nvmlBAR1Memory_st\n{\n    unsigned long long bar1Total;    //!< Total BAR1 Memory (in bytes)\n    unsigned long long bar1Free;     //!< Unallocated BAR1 Memory (in bytes)\n    unsigned long long bar1Used;     //!< Allocated Used Memory (in bytes)\n}nvmlBAR1Memory_t;\n\n/**\n * Information about running compute processes on the GPU\n */\ntypedef struct nvmlProcessInfo_st\n{\n    unsigned int pid;                 //!< Process ID\n    unsigned long long usedGpuMemory; //!< Amount of used GPU memory in bytes.\n                                      //! Under WDDM, \\ref NVML_VALUE_NOT_AVAILABLE is always reported\n                                      //! because Windows KMD manages all the memory and not the NVIDIA driver\n} nvmlProcessInfo_t;\n\ntypedef struct nvmlDeviceAttributes_st\n{\n    unsigned int multiprocessorCount;       //!< Streaming Multiprocessor count\n    unsigned int sharedCopyEngineCount;     //!< Shared Copy Engine count\n    unsigned int sharedDecoderCount;        //!< Shared Decoder Engine count\n    unsigned int sharedEncoderCount;        //!< Shared Encoder Engine count\n    unsigned int sharedJpegCount;           //!< Shared JPEG Engine count\n    unsigned int sharedOfaCount;            //!< Shared OFA Engine count\n    unsigned int gpuInstanceSliceCount;     //!< GPU instance slice count\n    unsigned int computeInstanceSliceCount; //!< Compute instance slice count\n    unsigned long long memorySizeMB;        //!< Device memory size (in MiB)\n} nvmlDeviceAttributes_t;\n\n/**\n * Possible values that classify the remap availability for each bank. The max\n * field will contain the number of banks that have maximum remap availability\n * (all reserved rows are available). None means that there are no reserved\n * rows available.\n */\ntypedef struct nvmlRowRemapperHistogramValues_st\n{\n    unsigned int max;\n    unsigned int high;\n    unsigned int partial;\n    unsigned int low;\n    unsigned int none;\n} nvmlRowRemapperHistogramValues_t;\n\n/**\n * Enum to represent type of bridge chip\n */\ntypedef enum nvmlBridgeChipType_enum\n{\n    NVML_BRIDGE_CHIP_PLX = 0,\n    NVML_BRIDGE_CHIP_BRO4 = 1\n}nvmlBridgeChipType_t;\n\n/**\n * Maximum number of NvLink links supported\n */\n#define NVML_NVLINK_MAX_LINKS 12\n\n/**\n * Enum to represent the NvLink utilization counter packet units\n */\ntypedef enum nvmlNvLinkUtilizationCountUnits_enum\n{\n    NVML_NVLINK_COUNTER_UNIT_CYCLES =  0,     // count by cycles\n    NVML_NVLINK_COUNTER_UNIT_PACKETS = 1,     // count by packets\n    NVML_NVLINK_COUNTER_UNIT_BYTES   = 2,     // count by bytes\n    NVML_NVLINK_COUNTER_UNIT_RESERVED = 3,    // count reserved for internal use\n    // this must be last\n    NVML_NVLINK_COUNTER_UNIT_COUNT\n} nvmlNvLinkUtilizationCountUnits_t;\n\n/**\n * Enum to represent the NvLink utilization counter packet types to count\n *  ** this is ONLY applicable with the units as packets or bytes\n *  ** as specified in \\a nvmlNvLinkUtilizationCountUnits_t\n *  ** all packet filter descriptions are target GPU centric\n *  ** these can be \"OR'd\" together\n */\ntypedef enum nvmlNvLinkUtilizationCountPktTypes_enum\n{\n    NVML_NVLINK_COUNTER_PKTFILTER_NOP        = 0x1,     // no operation packets\n    NVML_NVLINK_COUNTER_PKTFILTER_READ       = 0x2,     // read packets\n    NVML_NVLINK_COUNTER_PKTFILTER_WRITE      = 0x4,     // write packets\n    NVML_NVLINK_COUNTER_PKTFILTER_RATOM      = 0x8,     // reduction atomic requests\n    NVML_NVLINK_COUNTER_PKTFILTER_NRATOM     = 0x10,    // non-reduction atomic requests\n    NVML_NVLINK_COUNTER_PKTFILTER_FLUSH      = 0x20,    // flush requests\n    NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA   = 0x40,    // responses with data\n    NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA = 0x80,    // responses without data\n    NVML_NVLINK_COUNTER_PKTFILTER_ALL        = 0xFF     // all packets\n} nvmlNvLinkUtilizationCountPktTypes_t;\n\n/**\n * Struct to define the NVLINK counter controls\n */\ntypedef struct nvmlNvLinkUtilizationControl_st\n{\n    nvmlNvLinkUtilizationCountUnits_t units;\n    nvmlNvLinkUtilizationCountPktTypes_t pktfilter;\n} nvmlNvLinkUtilizationControl_t;\n\n/**\n * Enum to represent NvLink queryable capabilities\n */\ntypedef enum nvmlNvLinkCapability_enum\n{\n    NVML_NVLINK_CAP_P2P_SUPPORTED = 0,     // P2P over NVLink is supported\n    NVML_NVLINK_CAP_SYSMEM_ACCESS = 1,     // Access to system memory is supported\n    NVML_NVLINK_CAP_P2P_ATOMICS   = 2,     // P2P atomics are supported\n    NVML_NVLINK_CAP_SYSMEM_ATOMICS= 3,     // System memory atomics are supported\n    NVML_NVLINK_CAP_SLI_BRIDGE    = 4,     // SLI is supported over this link\n    NVML_NVLINK_CAP_VALID         = 5,     // Link is supported on this device\n    // should be last\n    NVML_NVLINK_CAP_COUNT\n} nvmlNvLinkCapability_t;\n\n/**\n * Enum to represent NvLink queryable error counters\n */\ntypedef enum nvmlNvLinkErrorCounter_enum\n{\n    NVML_NVLINK_ERROR_DL_REPLAY   = 0,     // Data link transmit replay error counter\n    NVML_NVLINK_ERROR_DL_RECOVERY = 1,     // Data link transmit recovery error counter\n    NVML_NVLINK_ERROR_DL_CRC_FLIT = 2,     // Data link receive flow control digit CRC error counter\n    NVML_NVLINK_ERROR_DL_CRC_DATA = 3,     // Data link receive data CRC error counter\n\n    // this must be last\n    NVML_NVLINK_ERROR_COUNT\n} nvmlNvLinkErrorCounter_t;\n\n/**\n * Represents level relationships within a system between two GPUs\n * The enums are spaced to allow for future relationships\n */\ntypedef enum nvmlGpuLevel_enum\n{\n    NVML_TOPOLOGY_INTERNAL           = 0, // e.g. Tesla K80\n    NVML_TOPOLOGY_SINGLE             = 10, // all devices that only need traverse a single PCIe switch\n    NVML_TOPOLOGY_MULTIPLE           = 20, // all devices that need not traverse a host bridge\n    NVML_TOPOLOGY_HOSTBRIDGE         = 30, // all devices that are connected to the same host bridge\n    NVML_TOPOLOGY_NODE               = 40, // all devices that are connected to the same NUMA node but possibly multiple host bridges\n    NVML_TOPOLOGY_SYSTEM             = 50, // all devices in the system\n\n    // there is purposefully no COUNT here because of the need for spacing above\n} nvmlGpuTopologyLevel_t;\n\n/* Compatibility for CPU->NODE renaming */\n#define NVML_TOPOLOGY_CPU NVML_TOPOLOGY_NODE\n\n/* P2P Capability Index Status*/\ntypedef enum nvmlGpuP2PStatus_enum\n{\n    NVML_P2P_STATUS_OK     = 0,\n    NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED,\n    NVML_P2P_STATUS_GPU_NOT_SUPPORTED,\n    NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED,\n    NVML_P2P_STATUS_DISABLED_BY_REGKEY,\n    NVML_P2P_STATUS_NOT_SUPPORTED,\n    NVML_P2P_STATUS_UNKNOWN\n\n} nvmlGpuP2PStatus_t;\n\n/* P2P Capability Index*/\ntypedef enum nvmlGpuP2PCapsIndex_enum\n{\n    NVML_P2P_CAPS_INDEX_READ = 0,\n    NVML_P2P_CAPS_INDEX_WRITE,\n    NVML_P2P_CAPS_INDEX_NVLINK,\n    NVML_P2P_CAPS_INDEX_ATOMICS,\n    NVML_P2P_CAPS_INDEX_PROP,\n    NVML_P2P_CAPS_INDEX_UNKNOWN\n}nvmlGpuP2PCapsIndex_t;\n\n/**\n * Maximum limit on Physical Bridges per Board\n */\n#define NVML_MAX_PHYSICAL_BRIDGE                         (128)\n\n/**\n * Information about the Bridge Chip Firmware\n */\ntypedef struct nvmlBridgeChipInfo_st\n{\n    nvmlBridgeChipType_t type;                  //!< Type of Bridge Chip\n    unsigned int fwVersion;                     //!< Firmware Version. 0=Version is unavailable\n}nvmlBridgeChipInfo_t;\n\n/**\n * This structure stores the complete Hierarchy of the Bridge Chip within the board. The immediate\n * bridge is stored at index 0 of bridgeInfoList, parent to immediate bridge is at index 1 and so forth.\n */\ntypedef struct nvmlBridgeChipHierarchy_st\n{\n    unsigned char  bridgeCount;                 //!< Number of Bridge Chips on the Board\n    nvmlBridgeChipInfo_t bridgeChipInfo[NVML_MAX_PHYSICAL_BRIDGE]; //!< Hierarchy of Bridge Chips on the board\n}nvmlBridgeChipHierarchy_t;\n\n/**\n *  Represents Type of Sampling Event\n */\ntypedef enum nvmlSamplingType_enum\n{\n    NVML_TOTAL_POWER_SAMPLES        = 0, //!< To represent total power drawn by GPU\n    NVML_GPU_UTILIZATION_SAMPLES    = 1, //!< To represent percent of time during which one or more kernels was executing on the GPU\n    NVML_MEMORY_UTILIZATION_SAMPLES = 2, //!< To represent percent of time during which global (device) memory was being read or written\n    NVML_ENC_UTILIZATION_SAMPLES    = 3, //!< To represent percent of time during which NVENC remains busy\n    NVML_DEC_UTILIZATION_SAMPLES    = 4, //!< To represent percent of time during which NVDEC remains busy\n    NVML_PROCESSOR_CLK_SAMPLES      = 5, //!< To represent processor clock samples\n    NVML_MEMORY_CLK_SAMPLES         = 6, //!< To represent memory clock samples\n\n    // Keep this last\n    NVML_SAMPLINGTYPE_COUNT\n}nvmlSamplingType_t;\n\n/**\n * Represents the queryable PCIe utilization counters\n */\ntypedef enum nvmlPcieUtilCounter_enum\n{\n    NVML_PCIE_UTIL_TX_BYTES             = 0, // 1KB granularity\n    NVML_PCIE_UTIL_RX_BYTES             = 1, // 1KB granularity\n\n    // Keep this last\n    NVML_PCIE_UTIL_COUNT\n} nvmlPcieUtilCounter_t;\n\n/**\n * Represents the type for sample value returned\n */\ntypedef enum nvmlValueType_enum\n{\n    NVML_VALUE_TYPE_DOUBLE = 0,\n    NVML_VALUE_TYPE_UNSIGNED_INT = 1,\n    NVML_VALUE_TYPE_UNSIGNED_LONG = 2,\n    NVML_VALUE_TYPE_UNSIGNED_LONG_LONG = 3,\n    NVML_VALUE_TYPE_SIGNED_LONG_LONG = 4,\n\n    // Keep this last\n    NVML_VALUE_TYPE_COUNT\n}nvmlValueType_t;\n\n\n/**\n * Union to represent different types of Value\n */\ntypedef union nvmlValue_st\n{\n    double dVal;                    //!< If the value is double\n    unsigned int uiVal;             //!< If the value is unsigned int\n    unsigned long ulVal;            //!< If the value is unsigned long\n    unsigned long long ullVal;      //!< If the value is unsigned long long\n    signed long long sllVal;        //!< If the value is signed long long\n}nvmlValue_t;\n\n/**\n * Information for Sample\n */\ntypedef struct nvmlSample_st\n{\n    unsigned long long timeStamp;       //!< CPU Timestamp in microseconds\n    nvmlValue_t sampleValue;        //!< Sample Value\n}nvmlSample_t;\n\n/**\n * Represents type of perf policy for which violation times can be queried\n */\ntypedef enum nvmlPerfPolicyType_enum\n{\n    NVML_PERF_POLICY_POWER = 0,              //!< How long did power violations cause the GPU to be below application clocks\n    NVML_PERF_POLICY_THERMAL = 1,            //!< How long did thermal violations cause the GPU to be below application clocks\n    NVML_PERF_POLICY_SYNC_BOOST = 2,         //!< How long did sync boost cause the GPU to be below application clocks\n    NVML_PERF_POLICY_BOARD_LIMIT = 3,        //!< How long did the board limit cause the GPU to be below application clocks\n    NVML_PERF_POLICY_LOW_UTILIZATION = 4,    //!< How long did low utilization cause the GPU to be below application clocks\n    NVML_PERF_POLICY_RELIABILITY = 5,        //!< How long did the board reliability limit cause the GPU to be below application clocks\n\n    NVML_PERF_POLICY_TOTAL_APP_CLOCKS = 10,  //!< Total time the GPU was held below application clocks by any limiter (0 - 5 above)\n    NVML_PERF_POLICY_TOTAL_BASE_CLOCKS = 11, //!< Total time the GPU was held below base clocks\n\n    // Keep this last\n    NVML_PERF_POLICY_COUNT\n}nvmlPerfPolicyType_t;\n\n/**\n * Struct to hold perf policy violation status data\n */\ntypedef struct nvmlViolationTime_st\n{\n    unsigned long long referenceTime;  //!< referenceTime represents CPU timestamp in microseconds\n    unsigned long long violationTime;  //!< violationTime in Nanoseconds\n}nvmlViolationTime_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceEnumvs Device Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Generic enable/disable enum.\n */\ntypedef enum nvmlEnableState_enum\n{\n    NVML_FEATURE_DISABLED    = 0,     //!< Feature disabled\n    NVML_FEATURE_ENABLED     = 1      //!< Feature enabled\n} nvmlEnableState_t;\n\n//! Generic flag used to specify the default behavior of some functions. See description of particular functions for details.\n#define nvmlFlagDefault     0x00\n//! Generic flag used to force some behavior. See description of particular functions for details.\n#define nvmlFlagForce       0x01\n\n/**\n *  * The Brand of the GPU\n *   */\ntypedef enum nvmlBrandType_enum\n{\n    NVML_BRAND_UNKNOWN = 0,\n    NVML_BRAND_QUADRO  = 1,\n    NVML_BRAND_TESLA   = 2,\n    NVML_BRAND_NVS     = 3,\n    NVML_BRAND_GRID    = 4,\n    NVML_BRAND_GEFORCE = 5,\n    NVML_BRAND_TITAN   = 6,\n\n    // Keep this last\n    NVML_BRAND_COUNT\n} nvmlBrandType_t;\n\n/**\n * Temperature thresholds.\n */\ntypedef enum nvmlTemperatureThresholds_enum\n{\n    NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0,    // Temperature at which the GPU will shut down\n                                                // for HW protection\n    NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1,    // Temperature at which the GPU will begin HW slowdown\n    NVML_TEMPERATURE_THRESHOLD_MEM_MAX  = 2,    // Memory Temperature at which the GPU will begin SW slowdown\n    NVML_TEMPERATURE_THRESHOLD_GPU_MAX  = 3,    // GPU Temperature at which the GPU can be throttled below base clock\n    // Keep this last\n    NVML_TEMPERATURE_THRESHOLD_COUNT\n} nvmlTemperatureThresholds_t;\n\n/**\n * Temperature sensors.\n */\ntypedef enum nvmlTemperatureSensors_enum\n{\n    NVML_TEMPERATURE_GPU      = 0,    //!< Temperature sensor for the GPU die\n\n    // Keep this last\n    NVML_TEMPERATURE_COUNT\n} nvmlTemperatureSensors_t;\n\n/**\n * Compute mode.\n *\n * NVML_COMPUTEMODE_EXCLUSIVE_PROCESS was added in CUDA 4.0.\n * Earlier CUDA versions supported a single exclusive mode,\n * which is equivalent to NVML_COMPUTEMODE_EXCLUSIVE_THREAD in CUDA 4.0 and beyond.\n */\ntypedef enum nvmlComputeMode_enum\n{\n    NVML_COMPUTEMODE_DEFAULT           = 0,  //!< Default compute mode -- multiple contexts per device\n    NVML_COMPUTEMODE_EXCLUSIVE_THREAD  = 1,  //!< Support Removed\n    NVML_COMPUTEMODE_PROHIBITED        = 2,  //!< Compute-prohibited mode -- no contexts per device\n    NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3,  //!< Compute-exclusive-process mode -- only one context per device, usable from multiple threads at a time\n\n    // Keep this last\n    NVML_COMPUTEMODE_COUNT\n} nvmlComputeMode_t;\n\n/**\n * ECC bit types.\n *\n * @deprecated See \\ref nvmlMemoryErrorType_t for a more flexible type\n */\n#define nvmlEccBitType_t nvmlMemoryErrorType_t\n\n/**\n * Single bit ECC errors\n *\n * @deprecated Mapped to \\ref NVML_MEMORY_ERROR_TYPE_CORRECTED\n */\n#define NVML_SINGLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_CORRECTED\n\n/**\n * Double bit ECC errors\n *\n * @deprecated Mapped to \\ref NVML_MEMORY_ERROR_TYPE_UNCORRECTED\n */\n#define NVML_DOUBLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_UNCORRECTED\n\n/**\n * Memory error types\n */\ntypedef enum nvmlMemoryErrorType_enum\n{\n    /**\n     * A memory error that was corrected\n     *\n     * For ECC errors, these are single bit errors\n     * For Texture memory, these are errors fixed by resend\n     */\n    NVML_MEMORY_ERROR_TYPE_CORRECTED = 0,\n    /**\n     * A memory error that was not corrected\n     *\n     * For ECC errors, these are double bit errors\n     * For Texture memory, these are errors where the resend fails\n     */\n    NVML_MEMORY_ERROR_TYPE_UNCORRECTED = 1,\n\n\n    // Keep this last\n    NVML_MEMORY_ERROR_TYPE_COUNT //!< Count of memory error types\n\n} nvmlMemoryErrorType_t;\n\n/**\n * ECC counter types.\n *\n * Note: Volatile counts are reset each time the driver loads. On Windows this is once per boot. On Linux this can be more frequent.\n *       On Linux the driver unloads when no active clients exist. If persistence mode is enabled or there is always a driver\n *       client active (e.g. X11), then Linux also sees per-boot behavior. If not, volatile counts are reset each time a compute app\n *       is run.\n */\ntypedef enum nvmlEccCounterType_enum\n{\n    NVML_VOLATILE_ECC      = 0,      //!< Volatile counts are reset each time the driver loads.\n    NVML_AGGREGATE_ECC     = 1,      //!< Aggregate counts persist across reboots (i.e. for the lifetime of the device)\n\n    // Keep this last\n    NVML_ECC_COUNTER_TYPE_COUNT      //!< Count of memory counter types\n} nvmlEccCounterType_t;\n\n/**\n * Clock types.\n *\n * All speeds are in Mhz.\n */\ntypedef enum nvmlClockType_enum\n{\n    NVML_CLOCK_GRAPHICS  = 0,        //!< Graphics clock domain\n    NVML_CLOCK_SM        = 1,        //!< SM clock domain\n    NVML_CLOCK_MEM       = 2,        //!< Memory clock domain\n    NVML_CLOCK_VIDEO     = 3,        //!< Video encoder/decoder clock domain\n\n    // Keep this last\n    NVML_CLOCK_COUNT //!< Count of clock types\n} nvmlClockType_t;\n\n/**\n * Clock Ids.  These are used in combination with nvmlClockType_t\n * to specify a single clock value.\n */\ntypedef enum nvmlClockId_enum\n{\n    NVML_CLOCK_ID_CURRENT            = 0,   //!< Current actual clock value\n    NVML_CLOCK_ID_APP_CLOCK_TARGET   = 1,   //!< Target application clock\n    NVML_CLOCK_ID_APP_CLOCK_DEFAULT  = 2,   //!< Default application clock target\n    NVML_CLOCK_ID_CUSTOMER_BOOST_MAX = 3,   //!< OEM-defined maximum clock rate\n\n    //Keep this last\n    NVML_CLOCK_ID_COUNT //!< Count of Clock Ids.\n} nvmlClockId_t;\n\n/**\n * Driver models.\n *\n * Windows only.\n */\ntypedef enum nvmlDriverModel_enum\n{\n    NVML_DRIVER_WDDM      = 0,       //!< WDDM driver model -- GPU treated as a display device\n    NVML_DRIVER_WDM       = 1        //!< WDM (TCC) model (recommended) -- GPU treated as a generic device\n} nvmlDriverModel_t;\n\n/**\n * Allowed PStates.\n */\ntypedef enum nvmlPStates_enum\n{\n    NVML_PSTATE_0               = 0,       //!< Performance state 0 -- Maximum Performance\n    NVML_PSTATE_1               = 1,       //!< Performance state 1\n    NVML_PSTATE_2               = 2,       //!< Performance state 2\n    NVML_PSTATE_3               = 3,       //!< Performance state 3\n    NVML_PSTATE_4               = 4,       //!< Performance state 4\n    NVML_PSTATE_5               = 5,       //!< Performance state 5\n    NVML_PSTATE_6               = 6,       //!< Performance state 6\n    NVML_PSTATE_7               = 7,       //!< Performance state 7\n    NVML_PSTATE_8               = 8,       //!< Performance state 8\n    NVML_PSTATE_9               = 9,       //!< Performance state 9\n    NVML_PSTATE_10              = 10,      //!< Performance state 10\n    NVML_PSTATE_11              = 11,      //!< Performance state 11\n    NVML_PSTATE_12              = 12,      //!< Performance state 12\n    NVML_PSTATE_13              = 13,      //!< Performance state 13\n    NVML_PSTATE_14              = 14,      //!< Performance state 14\n    NVML_PSTATE_15              = 15,      //!< Performance state 15 -- Minimum Performance\n    NVML_PSTATE_UNKNOWN         = 32       //!< Unknown performance state\n} nvmlPstates_t;\n\n/**\n * GPU Operation Mode\n *\n * GOM allows to reduce power usage and optimize GPU throughput by disabling GPU features.\n *\n * Each GOM is designed to meet specific user needs.\n */\ntypedef enum nvmlGom_enum\n{\n    NVML_GOM_ALL_ON                    = 0, //!< Everything is enabled and running at full speed\n\n    NVML_GOM_COMPUTE                   = 1, //!< Designed for running only compute tasks. Graphics operations\n                                            //!< are not allowed\n\n    NVML_GOM_LOW_DP                    = 2  //!< Designed for running graphics applications that don't require\n                                            //!< high bandwidth double precision\n} nvmlGpuOperationMode_t;\n\n/**\n * Available infoROM objects.\n */\ntypedef enum nvmlInforomObject_enum\n{\n    NVML_INFOROM_OEM            = 0,       //!< An object defined by OEM\n    NVML_INFOROM_ECC            = 1,       //!< The ECC object determining the level of ECC support\n    NVML_INFOROM_POWER          = 2,       //!< The power management object\n\n    // Keep this last\n    NVML_INFOROM_COUNT                     //!< This counts the number of infoROM objects the driver knows about\n} nvmlInforomObject_t;\n\n/**\n * Return values for NVML API calls.\n */\ntypedef enum nvmlReturn_enum\n{\n    // cppcheck-suppress *\n    NVML_SUCCESS = 0,                        //!< The operation was successful\n    NVML_ERROR_UNINITIALIZED = 1,            //!< NVML was not first initialized with nvmlInit()\n    NVML_ERROR_INVALID_ARGUMENT = 2,         //!< A supplied argument is invalid\n    NVML_ERROR_NOT_SUPPORTED = 3,            //!< The requested operation is not available on target device\n    NVML_ERROR_NO_PERMISSION = 4,            //!< The current user does not have permission for operation\n    NVML_ERROR_ALREADY_INITIALIZED = 5,      //!< Deprecated: Multiple initializations are now allowed through ref counting\n    NVML_ERROR_NOT_FOUND = 6,                //!< A query to find an object was unsuccessful\n    NVML_ERROR_INSUFFICIENT_SIZE = 7,        //!< An input argument is not large enough\n    NVML_ERROR_INSUFFICIENT_POWER = 8,       //!< A device's external power cables are not properly attached\n    NVML_ERROR_DRIVER_NOT_LOADED = 9,        //!< NVIDIA driver is not loaded\n    NVML_ERROR_TIMEOUT = 10,                 //!< User provided timeout passed\n    NVML_ERROR_IRQ_ISSUE = 11,               //!< NVIDIA Kernel detected an interrupt issue with a GPU\n    NVML_ERROR_LIBRARY_NOT_FOUND = 12,       //!< NVML Shared Library couldn't be found or loaded\n    NVML_ERROR_FUNCTION_NOT_FOUND = 13,      //!< Local version of NVML doesn't implement this function\n    NVML_ERROR_CORRUPTED_INFOROM = 14,       //!< infoROM is corrupted\n    NVML_ERROR_GPU_IS_LOST = 15,             //!< The GPU has fallen off the bus or has otherwise become inaccessible\n    NVML_ERROR_RESET_REQUIRED = 16,          //!< The GPU requires a reset before it can be used again\n    NVML_ERROR_OPERATING_SYSTEM = 17,        //!< The GPU control device has been blocked by the operating system/cgroups\n    NVML_ERROR_LIB_RM_VERSION_MISMATCH = 18, //!< RM detects a driver/library version mismatch\n    NVML_ERROR_IN_USE = 19,                  //!< An operation cannot be performed because the GPU is currently in use\n    NVML_ERROR_MEMORY = 20,                  //!< Insufficient memory\n    NVML_ERROR_NO_DATA = 21,                 //!< No data\n    NVML_ERROR_VGPU_ECC_NOT_SUPPORTED = 22,  //!< The requested vgpu operation is not available on target device, becasue ECC is enabled\n    NVML_ERROR_INSUFFICIENT_RESOURCES = 23,  //!< Ran out of critical resources, other than memory\n    NVML_ERROR_UNKNOWN = 999                 //!< An internal driver error occurred\n} nvmlReturn_t;\n\n/**\n * See \\ref nvmlDeviceGetMemoryErrorCounter\n */\ntypedef enum nvmlMemoryLocation_enum\n{\n    NVML_MEMORY_LOCATION_L1_CACHE        = 0,    //!< GPU L1 Cache\n    NVML_MEMORY_LOCATION_L2_CACHE        = 1,    //!< GPU L2 Cache\n    NVML_MEMORY_LOCATION_DRAM            = 2,    //!< Turing+ DRAM\n    NVML_MEMORY_LOCATION_DEVICE_MEMORY   = 2,    //!< GPU Device Memory\n    NVML_MEMORY_LOCATION_REGISTER_FILE   = 3,    //!< GPU Register File\n    NVML_MEMORY_LOCATION_TEXTURE_MEMORY  = 4,    //!< GPU Texture Memory\n    NVML_MEMORY_LOCATION_TEXTURE_SHM     = 5,    //!< Shared memory\n    NVML_MEMORY_LOCATION_CBU             = 6,    //!< CBU\n    NVML_MEMORY_LOCATION_SRAM            = 7,    //!< Turing+ SRAM\n    // Keep this last\n    NVML_MEMORY_LOCATION_COUNT              //!< This counts the number of memory locations the driver knows about\n} nvmlMemoryLocation_t;\n\n/**\n * Causes for page retirement\n */\ntypedef enum nvmlPageRetirementCause_enum\n{\n    NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0, //!< Page was retired due to multiple single bit ECC error\n    NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1,           //!< Page was retired due to double bit ECC error\n\n    // Keep this last\n    NVML_PAGE_RETIREMENT_CAUSE_COUNT\n} nvmlPageRetirementCause_t;\n\n/**\n * API types that allow changes to default permission restrictions\n */\ntypedef enum nvmlRestrictedAPI_enum\n{\n    NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS = 0,   //!< APIs that change application clocks, see nvmlDeviceSetApplicationsClocks\n                                                      //!< and see nvmlDeviceResetApplicationsClocks\n    NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS = 1,  //!< APIs that enable/disable Auto Boosted clocks\n                                                      //!< see nvmlDeviceSetAutoBoostedClocksEnabled\n    // Keep this last\n    NVML_RESTRICTED_API_COUNT\n} nvmlRestrictedAPI_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup gridVirtual\n *  @{\n */\n/***************************************************************************************************/\n/** @defgroup nvmlGridEnums GRID Virtualization Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/*!\n * GPU virtualization mode types.\n */\ntypedef enum nvmlGpuVirtualizationMode {\n    NVML_GPU_VIRTUALIZATION_MODE_NONE = 0,  //!< Represents Bare Metal GPU\n    NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH = 1,  //!< Device is associated with GPU-Passthorugh\n    NVML_GPU_VIRTUALIZATION_MODE_VGPU = 2,  //!< Device is associated with vGPU inside virtual machine.\n    NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU = 3,  //!< Device is associated with VGX hypervisor in vGPU mode\n    NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGA = 4,  //!< Device is associated with VGX hypervisor in vSGA mode\n} nvmlGpuVirtualizationMode_t;\n\n/**\n * Host vGPU modes\n */\ntypedef enum nvmlHostVgpuMode_enum\n{\n    NVML_HOST_VGPU_MODE_NON_SRIOV    = 0,     //!< Non SR-IOV mode\n    NVML_HOST_VGPU_MODE_SRIOV        = 1      //!< SR-IOV mode\n} nvmlHostVgpuMode_t;\n\n/*!\n * Types of VM identifiers\n */\ntypedef enum nvmlVgpuVmIdType {\n    NVML_VGPU_VM_ID_DOMAIN_ID = 0, //!< VM ID represents DOMAIN ID\n    NVML_VGPU_VM_ID_UUID = 1,      //!< VM ID represents UUID\n} nvmlVgpuVmIdType_t;\n\n/**\n * vGPU GUEST info state.\n */\ntypedef enum nvmlVgpuGuestInfoState_enum\n{\n    NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED = 0,  //!< Guest-dependent fields uninitialized\n    NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED   = 1,  //!< Guest-dependent fields initialized\n} nvmlVgpuGuestInfoState_t;\n\n/**\n * GRID license feature code\n */\ntypedef enum {\n    NVML_GRID_LICENSE_FEATURE_CODE_VGPU = 1,         //!< Virtual GPU\n    NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION = 2  //!< Virtual Workstation\n} nvmlGridLicenseFeatureCode_t;\n\n/** @} */\n\n/***************************************************************************************************/\n\n/** @defgroup nvmlVgpuConstants GRID Virtualization Constants\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlVgpuTypeGetLicense\n */\n#define NVML_GRID_LICENSE_BUFFER_SIZE       128\n\n#define NVML_VGPU_NAME_BUFFER_SIZE          64\n\n#define NVML_GRID_LICENSE_FEATURE_MAX_COUNT 3\n\n/*!\n * Macros for vGPU instance's virtualization capabilities bitfield.\n */\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION         0:0\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_NO      0x0\n#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_YES     0x1\n\n/*!\n * Macros for pGPU's virtualization capabilities bitfield.\n */\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION         0:0\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_NO      0x0\n#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_YES     0x1\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlVgpuStructs GRID Virtualization Structs\n *  @{\n */\n/***************************************************************************************************/\n\ntypedef unsigned int nvmlVgpuTypeId_t;\n\ntypedef unsigned int nvmlVgpuInstance_t;\n\n/**\n * Structure to store Utilization Value and vgpuInstance\n */\ntypedef struct nvmlVgpuInstanceUtilizationSample_st\n{\n    nvmlVgpuInstance_t vgpuInstance;    //!< vGPU Instance\n    unsigned long long timeStamp;       //!< CPU Timestamp in microseconds\n    nvmlValue_t smUtil;                 //!< SM (3D/Compute) Util Value\n    nvmlValue_t memUtil;                //!< Frame Buffer Memory Util Value\n    nvmlValue_t encUtil;                //!< Encoder Util Value\n    nvmlValue_t decUtil;                //!< Decoder Util Value\n} nvmlVgpuInstanceUtilizationSample_t;\n\n/**\n * Structure to store Utilization Value, vgpuInstance and subprocess information\n */\ntypedef struct nvmlVgpuProcessUtilizationSample_st\n{\n    nvmlVgpuInstance_t vgpuInstance;                //!< vGPU Instance\n    unsigned int pid;                               //!< PID of process running within the vGPU VM\n    char processName[NVML_VGPU_NAME_BUFFER_SIZE];   //!< Name of process running within the vGPU VM\n    unsigned long long timeStamp;                   //!< CPU Timestamp in microseconds\n    unsigned int smUtil;                            //!< SM (3D/Compute) Util Value\n    unsigned int memUtil;                           //!< Frame Buffer Memory Util Value\n    unsigned int encUtil;                           //!< Encoder Util Value\n    unsigned int decUtil;                           //!< Decoder Util Value\n} nvmlVgpuProcessUtilizationSample_t;\n\n/**\n * Structure to store utilization value and process Id\n */\ntypedef struct nvmlProcessUtilizationSample_st\n{\n    unsigned int pid;                   //!< PID of process\n    unsigned long long timeStamp;       //!< CPU Timestamp in microseconds\n    unsigned int smUtil;                //!< SM (3D/Compute) Util Value\n    unsigned int memUtil;               //!< Frame Buffer Memory Util Value\n    unsigned int encUtil;               //!< Encoder Util Value\n    unsigned int decUtil;               //!< Decoder Util Value\n} nvmlProcessUtilizationSample_t;\n\n/**\n * Structure containing GRID licensable feature information\n */\ntypedef struct nvmlGridLicensableFeature_st\n{\n    nvmlGridLicenseFeatureCode_t    featureCode;                                 //!< Licensed feature code\n    unsigned int                    featureState;                                //!< Non-zero if feature is currently licensed, otherwise zero\n    char                            licenseInfo[NVML_GRID_LICENSE_BUFFER_SIZE];\n    char                            productName[NVML_GRID_LICENSE_BUFFER_SIZE];\n    unsigned int                    featureEnabled;                              //!< Non-zero if feature is enabled, otherwise zero\n} nvmlGridLicensableFeature_t;\n\n/**\n * Structure to store GRID licensable features\n */\ntypedef struct nvmlGridLicensableFeatures_st\n{\n    int                         isGridLicenseSupported;                                       //!< Non-zero if GRID Software Licensing is supported on the system, otherwise zero\n    unsigned int                licensableFeaturesCount;                                      //!< Entries returned in \\a gridLicensableFeatures array\n    nvmlGridLicensableFeature_t gridLicensableFeatures[NVML_GRID_LICENSE_FEATURE_MAX_COUNT];  //!< Array of GRID licensable features.\n} nvmlGridLicensableFeatures_t;\n\n/**\n * Simplified chip architecture\n */\n#define NVML_DEVICE_ARCH_KEPLER    2 // Devices based on the NVIDIA Kepler architecture\n#define NVML_DEVICE_ARCH_MAXWELL   3 // Devices based on the NVIDIA Maxwell architecture\n#define NVML_DEVICE_ARCH_PASCAL    4 // Devices based on the NVIDIA Pascal architecture\n#define NVML_DEVICE_ARCH_VOLTA     5 // Devices based on the NVIDIA Volta architecture\n#define NVML_DEVICE_ARCH_TURING    6 // Devices based on the NVIDIA Turing architecture\n\n#define NVML_DEVICE_ARCH_AMPERE    7 // Devices based on the NVIDIA Ampere architecture\n\n#define NVML_DEVICE_ARCH_UNKNOWN   0xffffffff // Anything else, presumably something newer\n\ntypedef unsigned int nvmlDeviceArchitecture_t;\n\n/** @} */\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFieldValueEnums Field Value Enums\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Field Identifiers.\n *\n * All Identifiers pertain to a device. Each ID is only used once and is guaranteed never to change.\n */\n#define NVML_FI_DEV_ECC_CURRENT           1   //!< Current ECC mode. 1=Active. 0=Inactive\n#define NVML_FI_DEV_ECC_PENDING           2   //!< Pending ECC mode. 1=Active. 0=Inactive\n/* ECC Count Totals */\n#define NVML_FI_DEV_ECC_SBE_VOL_TOTAL     3   //!< Total single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_TOTAL     4   //!< Total double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_TOTAL     5   //!< Total single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_TOTAL     6   //!< Total double bit aggregate (persistent) ECC errors\n/* Individual ECC locations */\n#define NVML_FI_DEV_ECC_SBE_VOL_L1        7   //!< L1 cache single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_L1        8   //!< L1 cache double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_L2        9   //!< L2 cache single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_L2        10  //!< L2 cache double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_DEV       11  //!< Device memory single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_DEV       12  //!< Device memory double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_REG       13  //!< Register file single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_REG       14  //!< Register file double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_VOL_TEX       15  //!< Texture memory single bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_TEX       16  //!< Texture memory double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_DBE_VOL_CBU       17  //!< CBU double bit volatile ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_L1        18  //!< L1 cache single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_L1        19  //!< L1 cache double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_L2        20  //!< L2 cache single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_L2        21  //!< L2 cache double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_DEV       22  //!< Device memory single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_DEV       23  //!< Device memory double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_REG       24  //!< Register File single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_REG       25  //!< Register File double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_SBE_AGG_TEX       26  //!< Texture memory single bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_TEX       27  //!< Texture memory double bit aggregate (persistent) ECC errors\n#define NVML_FI_DEV_ECC_DBE_AGG_CBU       28  //!< CBU double bit aggregate ECC errors\n\n/* Page Retirement */\n#define NVML_FI_DEV_RETIRED_SBE           29  //!< Number of retired pages because of single bit errors\n#define NVML_FI_DEV_RETIRED_DBE           30  //!< Number of retired pages because of double bit errors\n#define NVML_FI_DEV_RETIRED_PENDING       31  //!< If any pages are pending retirement. 1=yes. 0=no.\n\n/* NvLink Flit Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0    32 //!< NVLink flow control CRC  Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1    33 //!< NVLink flow control CRC  Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2    34 //!< NVLink flow control CRC  Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3    35 //!< NVLink flow control CRC  Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4    36 //!< NVLink flow control CRC  Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5    37 //!< NVLink flow control CRC  Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL 38 //!< NVLink flow control CRC  Error Counter total for all Lanes\n\n/* NvLink CRC Data Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0    39 //!< NVLink data CRC Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1    40 //!< NVLink data CRC Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2    41 //!< NVLink data CRC Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3    42 //!< NVLink data CRC Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4    43 //!< NVLink data CRC Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5    44 //!< NVLink data CRC Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL 45 //!< NvLink data CRC Error Counter total for all Lanes\n\n/* NvLink Replay Error Counters */\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0      46 //!< NVLink Replay Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1      47 //!< NVLink Replay Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2      48 //!< NVLink Replay Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3      49 //!< NVLink Replay Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4      50 //!< NVLink Replay Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5      51 //!< NVLink Replay Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL   52 //!< NVLink Replay Error Counter total for all Lanes\n\n/* NvLink Recovery Error Counters */\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0    53 //!< NVLink Recovery Error Counter for Lane 0\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1    54 //!< NVLink Recovery Error Counter for Lane 1\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2    55 //!< NVLink Recovery Error Counter for Lane 2\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3    56 //!< NVLink Recovery Error Counter for Lane 3\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4    57 //!< NVLink Recovery Error Counter for Lane 4\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5    58 //!< NVLink Recovery Error Counter for Lane 5\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL 59 //!< NVLink Recovery Error Counter total for all Lanes\n\n/* NvLink Bandwidth Counters */\n/*\n * NVML_FI_DEV_NVLINK_BANDWIDTH_* field values are now deprecated.\n * Please use the following field values instead:\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX\n */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0     60 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 0\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1     61 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 1\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2     62 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 2\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3     63 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 3\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4     64 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 4\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5     65 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 5\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL  66 //!< NVLink Bandwidth Counter Total for Counter Set 0, All Lanes\n\n/* NvLink Bandwidth Counters */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0     67 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 0\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1     68 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 1\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2     69 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 2\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3     70 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 3\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4     71 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 4\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5     72 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 5\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL  73 //!< NVLink Bandwidth Counter Total for Counter Set 1, All Lanes\n\n/* NVML Perf Policy Counters */\n#define NVML_FI_DEV_PERF_POLICY_POWER              74   //!< Perf Policy Counter for Power Policy\n#define NVML_FI_DEV_PERF_POLICY_THERMAL            75   //!< Perf Policy Counter for Thermal Policy\n#define NVML_FI_DEV_PERF_POLICY_SYNC_BOOST         76   //!< Perf Policy Counter for Sync boost Policy\n#define NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT        77   //!< Perf Policy Counter for Board Limit\n#define NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION    78   //!< Perf Policy Counter for Low GPU Utilization Policy\n#define NVML_FI_DEV_PERF_POLICY_RELIABILITY        79   //!< Perf Policy Counter for Reliability Policy\n#define NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS   80   //!< Perf Policy Counter for Total App Clock Policy\n#define NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS  81   //!< Perf Policy Counter for Total Base Clocks Policy\n\n/* Memory temperatures */\n#define NVML_FI_DEV_MEMORY_TEMP  82 //!< Memory temperature for the device\n\n/* Energy Counter */\n#define NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION 83 //!< Total energy consumption for the GPU in mJ since the driver was last reloaded\n\n/* NVLink Speed */\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L0     84  //!< NVLink Speed in MBps for Link 0\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L1     85  //!< NVLink Speed in MBps for Link 1\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L2     86  //!< NVLink Speed in MBps for Link 2\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L3     87  //!< NVLink Speed in MBps for Link 3\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L4     88  //!< NVLink Speed in MBps for Link 4\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L5     89  //!< NVLink Speed in MBps for Link 5\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON 90  //!< Common NVLink Speed in MBps for active links\n\n#define NVML_FI_DEV_NVLINK_LINK_COUNT        91  //!< Number of NVLinks present on the device\n\n#define NVML_FI_DEV_RETIRED_PENDING_SBE      92  //!< If any pages are pending retirement due to SBE. 1=yes. 0=no.\n#define NVML_FI_DEV_RETIRED_PENDING_DBE      93  //!< If any pages are pending retirement due to DBE. 1=yes. 0=no.\n\n#define NVML_FI_DEV_PCIE_REPLAY_COUNTER             94  //!< PCIe replay counter\n#define NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER    95  //!< PCIe replay rollover counter\n\n/* NvLink Flit Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6     96 //!< NVLink flow control CRC  Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7     97 //!< NVLink flow control CRC  Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8     98 //!< NVLink flow control CRC  Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9     99 //!< NVLink flow control CRC  Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10   100 //!< NVLink flow control CRC  Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11   101 //!< NVLink flow control CRC  Error Counter for Lane 11\n\n/* NvLink CRC Data Error Counters */\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6    102 //!< NVLink data CRC Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7    103 //!< NVLink data CRC Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8    104 //!< NVLink data CRC Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9    105 //!< NVLink data CRC Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10   106 //!< NVLink data CRC Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11   107 //!< NVLink data CRC Error Counter for Lane 11\n\n/* NvLink Replay Error Counters */\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6      108 //!< NVLink Replay Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7      109 //!< NVLink Replay Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8      110 //!< NVLink Replay Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9      111 //!< NVLink Replay Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10     112 //!< NVLink Replay Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11     113 //!< NVLink Replay Error Counter for Lane 11\n\n/* NvLink Recovery Error Counters */\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6    114 //!< NVLink Recovery Error Counter for Lane 6\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7    115 //!< NVLink Recovery Error Counter for Lane 7\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8    116 //!< NVLink Recovery Error Counter for Lane 8\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9    117 //!< NVLink Recovery Error Counter for Lane 9\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10   118 //!< NVLink Recovery Error Counter for Lane 10\n#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11   119 //!< NVLink Recovery Error Counter for Lane 11\n\n/* NvLink Bandwidth Counters */\n/*\n * NVML_FI_DEV_NVLINK_BANDWIDTH_* field values are now deprecated.\n * Please use the following field values instead:\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX\n * NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX\n */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6     120 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 6\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7     121 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 7\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8     122 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 8\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9     123 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 9\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10    124 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 10\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11    125 //!< NVLink Bandwidth Counter for Counter Set 0, Lane 11\n\n/* NvLink Bandwidth Counters */\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6     126 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 6\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7     127 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 7\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8     128 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 8\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9     129 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 9\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10    130 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 10\n#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11    131 //!< NVLink Bandwidth Counter for Counter Set 1, Lane 11\n\n/* NVLink Speed */\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L6     132  //!< NVLink Speed in MBps for Link 6\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L7     133  //!< NVLink Speed in MBps for Link 7\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L8     134  //!< NVLink Speed in MBps for Link 8\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L9     135  //!< NVLink Speed in MBps for Link 9\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L10    136  //!< NVLink Speed in MBps for Link 10\n#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L11    137  //!< NVLink Speed in MBps for Link 11\n\n/**\n * NVLink throughput counters field values\n *\n * Link ID needs to be specified in the scopeId field in nvmlFieldValue_t.\n * A scopeId of UINT_MAX returns aggregate value summed up across all links\n * for the specified counter type in fieldId.\n */\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX      138 //!< NVLink TX Data throughput in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX      139 //!< NVLink RX Data throughput in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX       140 //!< NVLink TX Data + protocol overhead in KiB\n#define NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX       141 //!< NVLink RX Data + protocol overhead in KiB\n\n/* Row Remapper */\n#define NVML_FI_DEV_REMAPPED_COR        142 //!< Number of remapped rows due to correctable errors\n#define NVML_FI_DEV_REMAPPED_UNC        143 //!< Number of remapped rows due to uncorrectable errors\n#define NVML_FI_DEV_REMAPPED_PENDING    144 //!< If any rows are pending remapping. 1=yes 0=no\n#define NVML_FI_DEV_REMAPPED_FAILURE    145 //!< If any rows failed to be remapped 1=yes 0=no\n\n#define NVML_FI_MAX 146 //!< One greater than the largest field ID defined above\n\n/**\n * Information for a Field Value Sample\n */\ntypedef struct nvmlFieldValue_st\n{\n    unsigned int fieldId;       //!< ID of the NVML field to retrieve. This must be set before any call that uses this struct. See the constants starting with NVML_FI_ above.\n    unsigned int scopeId;       //!< Scope ID can represent data used by NVML depending on fieldId's context. For example, for NVLink throughput counter data, scopeId can represent linkId.\n    long long timestamp;        //!< CPU Timestamp of this value in microseconds since 1970\n    long long latencyUsec;      //!< How long this field value took to update (in usec) within NVML. This may be averaged across several fields that are serviced by the same driver call.\n    nvmlValueType_t valueType;  //!< Type of the value stored in value\n    nvmlReturn_t nvmlReturn;    //!< Return code for retrieving this value. This must be checked before looking at value, as value is undefined if nvmlReturn != NVML_SUCCESS\n    nvmlValue_t value;          //!< Value for this field. This is only valid if nvmlReturn == NVML_SUCCESS\n} nvmlFieldValue_t;\n\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitStructs Unit Structs\n *  @{\n */\n/***************************************************************************************************/\n\ntypedef struct nvmlUnit_st* nvmlUnit_t;\n\n/**\n * Description of HWBC entry\n */\ntypedef struct nvmlHwbcEntry_st\n{\n    unsigned int hwbcId;\n    char firmwareVersion[32];\n} nvmlHwbcEntry_t;\n\n/**\n * Fan state enum.\n */\ntypedef enum nvmlFanState_enum\n{\n    NVML_FAN_NORMAL       = 0,     //!< Fan is working properly\n    NVML_FAN_FAILED       = 1      //!< Fan has failed\n} nvmlFanState_t;\n\n/**\n * Led color enum.\n */\ntypedef enum nvmlLedColor_enum\n{\n    NVML_LED_COLOR_GREEN       = 0,     //!< GREEN, indicates good health\n    NVML_LED_COLOR_AMBER       = 1      //!< AMBER, indicates problem\n} nvmlLedColor_t;\n\n\n/**\n * LED states for an S-class unit.\n */\ntypedef struct nvmlLedState_st\n{\n    char cause[256];               //!< If amber, a text description of the cause\n    nvmlLedColor_t color;          //!< GREEN or AMBER\n} nvmlLedState_t;\n\n/**\n * Static S-class unit info.\n */\ntypedef struct nvmlUnitInfo_st\n{\n    char name[96];                      //!< Product name\n    char id[96];                        //!< Product identifier\n    char serial[96];                    //!< Product serial number\n    char firmwareVersion[96];           //!< Firmware version\n} nvmlUnitInfo_t;\n\n/**\n * Power usage information for an S-class unit.\n * The power supply state is a human readable string that equals \"Normal\" or contains\n * a combination of \"Abnormal\" plus one or more of the following:\n *\n *    - High voltage\n *    - Fan failure\n *    - Heatsink temperature\n *    - Current limit\n *    - Voltage below UV alarm threshold\n *    - Low-voltage\n *    - SI2C remote off command\n *    - MOD_DISABLE input\n *    - Short pin transition\n*/\ntypedef struct nvmlPSUInfo_st\n{\n    char state[256];                 //!< The power supply state\n    unsigned int current;            //!< PSU current (A)\n    unsigned int voltage;            //!< PSU voltage (V)\n    unsigned int power;              //!< PSU power draw (W)\n} nvmlPSUInfo_t;\n\n/**\n * Fan speed reading for a single fan in an S-class unit.\n */\ntypedef struct nvmlUnitFanInfo_st\n{\n    unsigned int speed;              //!< Fan speed (RPM)\n    nvmlFanState_t state;            //!< Flag that indicates whether fan is working properly\n} nvmlUnitFanInfo_t;\n\n/**\n * Fan speed readings for an entire S-class unit.\n */\ntypedef struct nvmlUnitFanSpeeds_st\n{\n    nvmlUnitFanInfo_t fans[24];      //!< Fan speed data for each fan\n    unsigned int count;              //!< Number of fans in unit\n} nvmlUnitFanSpeeds_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup nvmlEvents\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Handle to an event set\n */\ntypedef struct nvmlEventSet_st* nvmlEventSet_t;\n\n/** @defgroup nvmlEventType Event Types\n * @{\n * Event Types which user can be notified about.\n * See description of particular functions for details.\n *\n * See \\ref nvmlDeviceRegisterEvents and \\ref nvmlDeviceGetSupportedEventTypes to check which devices\n * support each event.\n *\n * Types can be combined with bitwise or operator '|' when passed to \\ref nvmlDeviceRegisterEvents\n */\n//! Event about single bit ECC errors\n/**\n * \\note A corrected texture memory error is not an ECC error, so it does not generate a single bit event\n */\n#define nvmlEventTypeSingleBitEccError     0x0000000000000001LL\n\n//! Event about double bit ECC errors\n/**\n * \\note An uncorrected texture memory error is not an ECC error, so it does not generate a double bit event\n */\n#define nvmlEventTypeDoubleBitEccError     0x0000000000000002LL\n\n//! Event about PState changes\n/**\n *  \\note On Fermi architecture PState changes are also an indicator that GPU is throttling down due to\n *  no work being executed on the GPU, power capping or thermal capping. In a typical situation,\n *  Fermi-based GPU should stay in P0 for the duration of the execution of the compute process.\n */\n#define nvmlEventTypePState                0x0000000000000004LL\n\n//! Event that Xid critical error occurred\n#define nvmlEventTypeXidCriticalError      0x0000000000000008LL\n\n//! Event about clock changes\n/**\n * Kepler only\n */\n#define nvmlEventTypeClock                 0x0000000000000010LL\n\n//! Event about AC/Battery power source changes\n#define nvmlEventTypePowerSourceChange     0x0000000000000080LL\n\n//! Event about MIG configuration changes\n#define nvmlEventMigConfigChange           0x0000000000000100LL\n\n//! Mask with no events\n#define nvmlEventTypeNone                  0x0000000000000000LL\n\n//! Mask of all events\n#define nvmlEventTypeAll (nvmlEventTypeNone    \\\n        | nvmlEventTypeSingleBitEccError       \\\n        | nvmlEventTypeDoubleBitEccError       \\\n        | nvmlEventTypePState                  \\\n        | nvmlEventTypeClock                   \\\n        | nvmlEventTypeXidCriticalError        \\\n        | nvmlEventTypePowerSourceChange       \\\n        | nvmlEventMigConfigChange             \\\n        )\n/** @} */\n\n/**\n * Information about occurred event\n */\ntypedef struct nvmlEventData_st\n{\n    nvmlDevice_t        device;             //!< Specific device where the event occurred\n    unsigned long long  eventType;          //!< Information about what specific event occurred\n    unsigned long long  eventData;          //!< Stores XID error for the device in the event of nvmlEventTypeXidCriticalError,\n                                            //   eventData is 0 for any other event. eventData is set as 999 for unknown xid error.\n    unsigned int        gpuInstanceId;      //!< If MIG is enabled and nvmlEventTypeXidCriticalError event is attributable to a GPU\n                                            //   instance, stores a valid GPU instance ID. gpuInstanceId is set to 0xFFFFFFFF\n                                            //   otherwise.\n    unsigned int        computeInstanceId;  //!< If MIG is enabled and nvmlEventTypeXidCriticalError event is attributable to a\n                                            //   compute instance, stores a valid compute instance ID. computeInstanceId is set to\n                                            //   0xFFFFFFFF otherwise.\n} nvmlEventData_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @addtogroup nvmlClocksThrottleReasons\n *  @{\n */\n/***************************************************************************************************/\n\n/** Nothing is running on the GPU and the clocks are dropping to Idle state\n * \\note This limiter may be removed in a later release\n */\n#define nvmlClocksThrottleReasonGpuIdle                   0x0000000000000001LL\n\n/** GPU clocks are limited by current setting of applications clocks\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetApplicationsClock\n */\n#define nvmlClocksThrottleReasonApplicationsClocksSetting 0x0000000000000002LL\n\n/**\n * @deprecated Renamed to \\ref nvmlClocksThrottleReasonApplicationsClocksSetting\n *             as the name describes the situation more accurately.\n */\n#define nvmlClocksThrottleReasonUserDefinedClocks         nvmlClocksThrottleReasonApplicationsClocksSetting\n\n/** SW Power Scaling algorithm is reducing the clocks below requested clocks\n *\n * @see nvmlDeviceGetPowerUsage\n * @see nvmlDeviceSetPowerManagementLimit\n * @see nvmlDeviceGetPowerManagementLimit\n */\n#define nvmlClocksThrottleReasonSwPowerCap                0x0000000000000004LL\n\n/** HW Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - temperature being too high\n *   - External Power Brake Assertion is triggered (e.g. by the system power supply)\n *   - Power draw is too high and Fast Trigger protection is reducing the clocks\n *   - May be also reported during PState or clock change\n *      - This behavior may be removed in a later release.\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwSlowdown                0x0000000000000008LL\n\n/** Sync Boost\n *\n * This GPU has been added to a Sync boost group with nvidia-smi or DCGM in\n * order to maximize performance per watt. All GPUs in the sync boost group\n * will boost to the minimum possible clocks across the entire group. Look at\n * the throttle reasons for other GPUs in the system to see why those GPUs are\n * holding this one at lower clocks.\n *\n */\n#define nvmlClocksThrottleReasonSyncBoost                 0x0000000000000010LL\n\n/** SW Thermal Slowdown\n *\n * This is an indicator of one or more of the following:\n *  - Current GPU temperature above the GPU Max Operating Temperature\n *  - Current memory temperature above the Memory Max Operating Temperature\n *\n */\n#define nvmlClocksThrottleReasonSwThermalSlowdown         0x0000000000000020LL\n\n/** HW Thermal Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - temperature being too high\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwThermalSlowdown         0x0000000000000040LL\n\n/** HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged\n *\n * This is an indicator of:\n *   - External Power Brake Assertion being triggered (e.g. by the system power supply)\n *\n * @see nvmlDeviceGetTemperature\n * @see nvmlDeviceGetTemperatureThreshold\n * @see nvmlDeviceGetPowerUsage\n */\n#define nvmlClocksThrottleReasonHwPowerBrakeSlowdown      0x0000000000000080LL\n\n/** GPU clocks are limited by current setting of Display clocks\n *\n * @see bug 1997531\n */\n#define nvmlClocksThrottleReasonDisplayClockSetting       0x0000000000000100LL\n\n/** Bit mask representing no clocks throttling\n *\n * Clocks are as high as possible.\n * */\n#define nvmlClocksThrottleReasonNone                      0x0000000000000000LL\n\n/** Bit mask representing all supported clocks throttling reasons\n * New reasons might be added to this list in the future\n */\n#define nvmlClocksThrottleReasonAll (nvmlClocksThrottleReasonNone \\\n      | nvmlClocksThrottleReasonGpuIdle                           \\\n      | nvmlClocksThrottleReasonApplicationsClocksSetting         \\\n      | nvmlClocksThrottleReasonSwPowerCap                        \\\n      | nvmlClocksThrottleReasonHwSlowdown                        \\\n      | nvmlClocksThrottleReasonSyncBoost                         \\\n      | nvmlClocksThrottleReasonSwThermalSlowdown                 \\\n      | nvmlClocksThrottleReasonHwThermalSlowdown                 \\\n      | nvmlClocksThrottleReasonHwPowerBrakeSlowdown              \\\n      | nvmlClocksThrottleReasonDisplayClockSetting               \\\n)\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlAccountingStats Accounting Statistics\n *  @{\n *\n *  Set of APIs designed to provide per process information about usage of GPU.\n *\n *  @note All accounting statistics and accounting mode live in nvidia driver and reset\n *        to default (Disabled) when driver unloads.\n *        It is advised to run with persistence mode enabled.\n *\n *  @note Enabling accounting mode has no negative impact on the GPU performance.\n */\n/***************************************************************************************************/\n\n/**\n * Describes accounting statistics of a process.\n */\ntypedef struct nvmlAccountingStats_st {\n    unsigned int gpuUtilization;                //!< Percent of time over the process's lifetime during which one or more kernels was executing on the GPU.\n                                                //! Utilization stats just like returned by \\ref nvmlDeviceGetUtilizationRates but for the life time of a\n                                                //! process (not just the last sample period).\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlDeviceGetUtilizationRates is not supported\n\n    unsigned int memoryUtilization;             //!< Percent of time over the process's lifetime during which global (device) memory was being read or written.\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlDeviceGetUtilizationRates is not supported\n\n    unsigned long long maxMemoryUsage;          //!< Maximum total memory in bytes that was ever allocated by the process.\n                                                //! Set to NVML_VALUE_NOT_AVAILABLE if nvmlProcessInfo_t->usedGpuMemory is not supported\n\n\n    unsigned long long time;                    //!< Amount of time in ms during which the compute context was active. The time is reported as 0 if\n                                                //!< the process is not terminated\n\n    unsigned long long startTime;               //!< CPU Timestamp in usec representing start time for the process\n\n    unsigned int isRunning;                     //!< Flag to represent if the process is running (1 for running, 0 for terminated)\n\n    unsigned int reserved[5];                   //!< Reserved for future use\n} nvmlAccountingStats_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlEncoderStructs Encoder Structs\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Represents type of encoder for capacity can be queried\n */\ntypedef enum nvmlEncoderQueryType_enum\n{\n    NVML_ENCODER_QUERY_H264 = 0,        //!< H264 encoder\n    NVML_ENCODER_QUERY_HEVC = 1,        //!< HEVC encoder\n}nvmlEncoderType_t;\n\n/**\n * Structure to hold encoder session data\n */\ntypedef struct nvmlEncoderSessionInfo_st\n{\n    unsigned int       sessionId;       //!< Unique session ID\n    unsigned int       pid;             //!< Owning process ID\n    nvmlVgpuInstance_t vgpuInstance;    //!< Owning vGPU instance ID (only valid on vGPU hosts, otherwise zero)\n    nvmlEncoderType_t  codecType;       //!< Video encoder type\n    unsigned int       hResolution;     //!< Current encode horizontal resolution\n    unsigned int       vResolution;     //!< Current encode vertical resolution\n    unsigned int       averageFps;      //!< Moving average encode frames per second\n    unsigned int       averageLatency;  //!< Moving average encode latency in microseconds\n}nvmlEncoderSessionInfo_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFBCStructs Frame Buffer Capture Structures\n*  @{\n*/\n/***************************************************************************************************/\n\n/**\n * Represents frame buffer capture session type\n */\ntypedef enum nvmlFBCSessionType_enum\n{\n    NVML_FBC_SESSION_TYPE_UNKNOWN = 0,     //!< Unknwon\n    NVML_FBC_SESSION_TYPE_TOSYS,           //!< ToSys\n    NVML_FBC_SESSION_TYPE_CUDA,            //!< Cuda\n    NVML_FBC_SESSION_TYPE_VID,             //!< Vid\n    NVML_FBC_SESSION_TYPE_HWENC,           //!< HEnc\n} nvmlFBCSessionType_t;\n\n/**\n * Structure to hold frame buffer capture sessions stats\n */\ntypedef struct nvmlFBCStats_st\n{\n    unsigned int      sessionsCount;    //!< Total no of sessions\n    unsigned int      averageFPS;       //!< Moving average new frames captured per second\n    unsigned int      averageLatency;   //!< Moving average new frame capture latency in microseconds\n} nvmlFBCStats_t;\n\n#define NVML_NVFBC_SESSION_FLAG_DIFFMAP_ENABLED                0x00000001    //!< Bit specifying differential map state.\n#define NVML_NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED      0x00000002    //!< Bit specifying classification map state.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT      0x00000004    //!< Bit specifying if capture was requested as non-blocking call.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE     0x00000008    //!< Bit specifying if capture was requested as blocking call.\n#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT      0x00000010    //!< Bit specifying if capture was requested as blocking call with timeout period.\n\n/**\n * Structure to hold FBC session data\n */\ntypedef struct nvmlFBCSessionInfo_st\n{\n    unsigned int          sessionId;                           //!< Unique session ID\n    unsigned int          pid;                                 //!< Owning process ID\n    nvmlVgpuInstance_t    vgpuInstance;                        //!< Owning vGPU instance ID (only valid on vGPU hosts, otherwise zero)\n    unsigned int          displayOrdinal;                      //!< Display identifier\n    nvmlFBCSessionType_t  sessionType;                         //!< Type of frame buffer capture session\n    unsigned int          sessionFlags;                        //!< Session flags (one or more of NVML_NVFBC_SESSION_FLAG_XXX).\n    unsigned int          hMaxResolution;                      //!< Max horizontal resolution supported by the capture session\n    unsigned int          vMaxResolution;                      //!< Max vertical resolution supported by the capture session\n    unsigned int          hResolution;                         //!< Horizontal resolution requested by caller in capture call\n    unsigned int          vResolution;                         //!< Vertical resolution requested by caller in capture call\n    unsigned int          averageFPS;                          //!< Moving average new frames captured per second\n    unsigned int          averageLatency;                      //!< Moving average new frame capture latency in microseconds\n} nvmlFBCSessionInfo_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDrainDefs definitions related to the drain state\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n *  Is the GPU device to be removed from the kernel by nvmlDeviceRemoveGpu()\n */\ntypedef enum nvmlDetachGpuState_enum\n{\n    NVML_DETACH_GPU_KEEP         = 0,\n    NVML_DETACH_GPU_REMOVE,\n} nvmlDetachGpuState_t;\n\n/**\n *  Parent bridge PCIe link state requested by nvmlDeviceRemoveGpu()\n */\ntypedef enum nvmlPcieLinkState_enum\n{\n    NVML_PCIE_LINK_KEEP         = 0,\n    NVML_PCIE_LINK_SHUT_DOWN,\n} nvmlPcieLinkState_t;\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlInitializationAndCleanup Initialization and Cleanup\n * This chapter describes the methods that handle NVML initialization and cleanup.\n * It is the user's responsibility to call \\ref nvmlInit_v2() before calling any other methods, and\n * nvmlShutdown() once NVML is no longer being used.\n *  @{\n */\n/***************************************************************************************************/\n\n#define NVML_INIT_FLAG_NO_GPUS      1   //!< Don't fail nvmlInit() when no GPUs are found\n#define NVML_INIT_FLAG_NO_ATTACH    2   //!< Don't attach GPUs\n\n/**\n * Initialize NVML, but don't initialize any GPUs yet.\n *\n * \\note nvmlInit_v3 introduces a \"flags\" argument, that allows passing boolean values\n *       modifying the behaviour of nvmlInit().\n * \\note In NVML 5.319 new nvmlInit_v2 has replaced nvmlInit\"_v1\" (default in NVML 4.304 and older) that\n *       did initialize all GPU devices in the system.\n *\n * This allows NVML to communicate with a GPU\n * when other GPUs in the system are unstable or in a bad state.  When using this API, GPUs are\n * discovered and initialized in nvmlDeviceGetHandleBy* functions instead.\n *\n * \\note To contrast nvmlInit_v2 with nvmlInit\"_v1\", NVML 4.304 nvmlInit\"_v1\" will fail when any detected GPU is in\n *       a bad or unstable state.\n *\n * For all products.\n *\n * This method, should be called once before invoking any other methods in the library.\n * A reference count of the number of initializations is maintained.  Shutdown only occurs\n * when the reference count reaches zero.\n *\n * @return\n *         - \\ref NVML_SUCCESS                   if NVML has been properly initialized\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED   if NVIDIA driver is not running\n *         - \\ref NVML_ERROR_NO_PERMISSION       if NVML does not have permission to talk to the driver\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlInit_v2(void);\n\n/**\n * nvmlInitWithFlags is a variant of nvmlInit(), that allows passing a set of boolean values\n *       modifying the behaviour of nvmlInit().\n *       Other than the \"flags\" parameter it is completely similar to \\ref nvmlInit_v2.\n *\n * For all products.\n *\n * @param flags                                 behaviour modifier flags\n *\n * @return\n *         - \\ref NVML_SUCCESS                   if NVML has been properly initialized\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED   if NVIDIA driver is not running\n *         - \\ref NVML_ERROR_NO_PERMISSION       if NVML does not have permission to talk to the driver\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlInitWithFlags(unsigned int flags);\n\n/**\n * Shut down NVML by releasing all GPU resources previously allocated with \\ref nvmlInit_v2().\n *\n * For all products.\n *\n * This method should be called after NVML work is done, once for each call to \\ref nvmlInit_v2()\n * A reference count of the number of initializations is maintained.  Shutdown only occurs\n * when the reference count reaches zero.  For backwards compatibility, no error is reported if\n * nvmlShutdown() is called more times than nvmlInit().\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if NVML has been properly shut down\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlShutdown(void);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlErrorReporting Error reporting\n * This chapter describes helper functions for error reporting routines.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Helper method for converting NVML error codes into readable strings.\n *\n * For all products.\n *\n * @param result                               NVML error code to convert\n *\n * @return String representation of the error.\n *\n */\nconst DECLDIR char* nvmlErrorString(nvmlReturn_t result);\n/** @} */\n\n\n/***************************************************************************************************/\n/** @defgroup nvmlConstants Constants\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetInforomVersion and \\ref nvmlDeviceGetInforomImageVersion\n */\n#define NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE       16\n\n/**\n * Buffer size guaranteed to be large enough for storing GPU identifiers.\n */\n#define NVML_DEVICE_UUID_BUFFER_SIZE                  80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetUUID\n */\n#define NVML_DEVICE_UUID_V2_BUFFER_SIZE               96\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetBoardPartNumber\n */\n#define NVML_DEVICE_PART_NUMBER_BUFFER_SIZE           80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlSystemGetDriverVersion\n */\n#define NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE        80\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlSystemGetNVMLVersion\n */\n#define NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE          80\n\n/**\n * Buffer size guaranteed to be large enough for storing GPU device names.\n */\n#define NVML_DEVICE_NAME_BUFFER_SIZE                  64\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetName\n */\n#define NVML_DEVICE_NAME_V2_BUFFER_SIZE               96\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetSerial\n */\n#define NVML_DEVICE_SERIAL_BUFFER_SIZE                30\n\n/**\n * Buffer size guaranteed to be large enough for \\ref nvmlDeviceGetVbiosVersion\n */\n#define NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE         32\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlSystemQueries System Queries\n * This chapter describes the queries that NVML can perform against the local system. These queries\n * are not device-specific.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves the version of the system's graphics driver.\n *\n * For all products.\n *\n * The version identifier is an alphanumeric string.  It will not exceed 80 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.\n *\n * @param version                              Reference in which to return the version identifier\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetDriverVersion(char *version, unsigned int length);\n\n/**\n * Retrieves the version of the NVML library.\n *\n * For all products.\n *\n * The version identifier is an alphanumeric string.  It will not exceed 80 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE.\n *\n * @param version                              Reference in which to return the version identifier\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion(char *version, unsigned int length);\n\n/**\n * Retrieves the version of the CUDA driver.\n *\n * For all products.\n *\n * The CUDA driver version returned will be retreived from the currently installed version of CUDA.\n * If the cuda library is not found, this function will return a known supported version number.\n *\n * @param cudaDriverVersion                    Reference in which to return the version identifier\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cudaDriverVersion has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a cudaDriverVersion is NULL\n */\nnvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion(int *cudaDriverVersion);\n\n/**\n * Retrieves the version of the CUDA driver from the shared library.\n *\n * For all products.\n *\n * The returned CUDA driver version by calling cuDriverGetVersion()\n *\n * @param cudaDriverVersion                    Reference in which to return the version identifier\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a cudaDriverVersion has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a cudaDriverVersion is NULL\n *         - \\ref NVML_ERROR_LIBRARY_NOT_FOUND  if \\a libcuda.so.1 or libcuda.dll is not found\n *         - \\ref NVML_ERROR_FUNCTION_NOT_FOUND if \\a cuDriverGetVersion() is not found in the shared library\n */\nnvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion_v2(int *cudaDriverVersion);\n\n/**\n * Macros for converting the CUDA driver version number to Major and Minor version numbers.\n */\n#define NVML_CUDA_DRIVER_VERSION_MAJOR(v) ((v)/1000)\n#define NVML_CUDA_DRIVER_VERSION_MINOR(v) (((v)%1000)/10)\n\n/**\n * Gets name of the process with provided process id\n *\n * For all products.\n *\n * Returned process name is cropped to provided length.\n * name string is encoded in ANSI.\n *\n * @param pid                                  The identifier of the process\n * @param name                                 Reference in which to return the process name\n * @param length                               The maximum allowed length of the string returned in \\a name\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a name is NULL or \\a length is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND         if process doesn't exists\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlSystemGetProcessName(unsigned int pid, char *name, unsigned int length);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitQueries Unit Queries\n * This chapter describes that queries that NVML can perform against each unit. For S-class systems only.\n * In each case the device is identified with an nvmlUnit_t handle. This handle is obtained by\n * calling \\ref nvmlUnitGetHandleByIndex().\n *  @{\n */\n/***************************************************************************************************/\n\n /**\n * Retrieves the number of units in the system.\n *\n * For S-class products.\n *\n * @param unitCount                            Reference in which to return the number of units\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a unitCount has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unitCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetCount(unsigned int *unitCount);\n\n/**\n * Acquire the handle for a particular unit, based on its index.\n *\n * For S-class products.\n *\n * Valid indices are derived from the \\a unitCount returned by \\ref nvmlUnitGetCount().\n *   For example, if \\a unitCount is 2 the valid indices are 0 and 1, corresponding to UNIT 0 and UNIT 1.\n *\n * The order in which NVML enumerates units has no guarantees of consistency between reboots.\n *\n * @param index                                The index of the target unit, >= 0 and < \\a unitCount\n * @param unit                                 Reference in which to return the unit handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a unit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a index is invalid or \\a unit is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetHandleByIndex(unsigned int index, nvmlUnit_t *unit);\n\n/**\n * Retrieves the static information associated with a unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlUnitInfo_t for details on available unit info.\n *\n * @param unit                                 The identifier of the target unit\n * @param info                                 Reference in which to return the unit information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a info has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a info is NULL\n */\nnvmlReturn_t DECLDIR nvmlUnitGetUnitInfo(nvmlUnit_t unit, nvmlUnitInfo_t *info);\n\n/**\n * Retrieves the LED state associated with this unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlLedState_t for details on allowed states.\n *\n * @param unit                                 The identifier of the target unit\n * @param state                                Reference in which to return the current LED state\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a state has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a state is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlUnitSetLedState()\n */\nnvmlReturn_t DECLDIR nvmlUnitGetLedState(nvmlUnit_t unit, nvmlLedState_t *state);\n\n/**\n * Retrieves the PSU stats for the unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlPSUInfo_t for details on available PSU info.\n *\n * @param unit                                 The identifier of the target unit\n * @param psu                                  Reference in which to return the PSU information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a psu has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a psu is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetPsuInfo(nvmlUnit_t unit, nvmlPSUInfo_t *psu);\n\n/**\n * Retrieves the temperature readings for the unit, in degrees C.\n *\n * For S-class products.\n *\n * Depending on the product, readings may be available for intake (type=0),\n * exhaust (type=1) and board (type=2).\n *\n * @param unit                                 The identifier of the target unit\n * @param type                                 The type of reading to take\n * @param temp                                 Reference in which to return the intake temperature\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit or \\a type is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetTemperature(nvmlUnit_t unit, unsigned int type, unsigned int *temp);\n\n/**\n * Retrieves the fan speed readings for the unit.\n *\n * For S-class products.\n *\n * See \\ref nvmlUnitFanSpeeds_t for details on available fan speed info.\n *\n * @param unit                                 The identifier of the target unit\n * @param fanSpeeds                            Reference in which to return the fan speed information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a fanSpeeds has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid or \\a fanSpeeds is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetFanSpeedInfo(nvmlUnit_t unit, nvmlUnitFanSpeeds_t *fanSpeeds);\n\n/**\n * Retrieves the set of GPU devices that are attached to the specified unit.\n *\n * For S-class products.\n *\n * The \\a deviceCount argument is expected to be set to the size of the input \\a devices array.\n *\n * @param unit                                 The identifier of the target unit\n * @param deviceCount                          Reference in which to provide the \\a devices array size, and\n *                                             to return the number of attached GPU devices\n * @param devices                              Reference in which to return the references to the attached GPU devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount and \\a devices have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a deviceCount indicates that the \\a devices array is too small\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit is invalid, either of \\a deviceCount or \\a devices is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlUnitGetDevices(nvmlUnit_t unit, unsigned int *deviceCount, nvmlDevice_t *devices);\n\n/**\n * Retrieves the IDs and firmware versions for any Host Interface Cards (HICs) in the system.\n *\n * For S-class products.\n *\n * The \\a hwbcCount argument is expected to be set to the size of the input \\a hwbcEntries array.\n * The HIC must be connected to an S-class system for it to be reported by this function.\n *\n * @param hwbcCount                            Size of hwbcEntries array\n * @param hwbcEntries                          Array holding information about hwbc\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a hwbcCount and \\a hwbcEntries have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if either \\a hwbcCount or \\a hwbcEntries is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a hwbcCount indicates that the \\a hwbcEntries array is too small\n */\nnvmlReturn_t DECLDIR nvmlSystemGetHicVersion(unsigned int *hwbcCount, nvmlHwbcEntry_t *hwbcEntries);\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceQueries Device Queries\n * This chapter describes that queries that NVML can perform against each device.\n * In each case the device is identified with an nvmlDevice_t handle. This handle is obtained by\n * calling one of \\ref nvmlDeviceGetHandleByIndex_v2(), \\ref nvmlDeviceGetHandleBySerial(),\n * \\ref nvmlDeviceGetHandleByPciBusId_v2(). or \\ref nvmlDeviceGetHandleByUUID().\n *  @{\n */\n/***************************************************************************************************/\n\n /**\n * Retrieves the number of compute devices in the system. A compute device is a single GPU.\n *\n * For all products.\n *\n * Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system\n *       even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device.\n *       Update your code to handle this error, or use NVML 4.304 or older nvml header file.\n *       For backward binary compatibility reasons _v1 version of the API is still present in the shared\n *       library.\n *       Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.\n *\n * @param deviceCount                          Reference in which to return the number of accessible devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a deviceCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCount_v2(unsigned int *deviceCount);\n\n/**\n * Get attributes (engine counts etc.) for the given NVML device handle.\n *\n * @note This API currently only supports MIG device handles.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               NVML device handle\n * @param attributes                           Device attributes\n *\n * @return\n *        - \\ref NVML_SUCCESS                  if \\a device attributes were successfully retrieved\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device handle is invalid\n *        - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_NOT_SUPPORTED      if this query is not supported by the device\n *        - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAttributes_v2(nvmlDevice_t device, nvmlDeviceAttributes_t *attributes);\n\n/**\n * Acquire the handle for a particular device, based on its index.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a accessibleDevices count returned by\n *   \\ref nvmlDeviceGetCount_v2(). For example, if \\a accessibleDevices is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * The order in which NVML enumerates devices has no guarantees of consistency between reboots. For that reason it\n *   is recommended that devices be looked up by their PCI ids or UUID. See\n *   \\ref nvmlDeviceGetHandleByUUID() and \\ref nvmlDeviceGetHandleByPciBusId_v2().\n *\n * Note: The NVML index may not correlate with other APIs, such as the CUDA device index.\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs if:\n *  - The target GPU is an SLI slave\n *\n * Note: New nvmlDeviceGetCount_v2 (default in NVML 5.319) returns count of all devices in the system\n *       even if nvmlDeviceGetHandleByIndex_v2 returns NVML_ERROR_NO_PERMISSION for such device.\n *       Update your code to handle this error, or use NVML 4.304 or older nvml header file.\n *       For backward binary compatibility reasons _v1 version of the API is still present in the shared\n *       library.\n *       Old _v1 version of nvmlDeviceGetCount doesn't count devices that NVML has no permission to talk to.\n *\n *       This means that nvmlDeviceGetHandleByIndex_v2 and _v1 can return different devices for the same index.\n *       If you don't touch macros that map old (_v1) versions to _v2 versions at the top of the file you don't\n *       need to worry about that.\n *\n * @param index                                The index of the target GPU, >= 0 and < \\a accessibleDevices\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a index is invalid or \\a device is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetIndex\n * @see nvmlDeviceGetCount\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex_v2(unsigned int index, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its board serial number.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * This number corresponds to the value printed directly on the board, and to the value returned by\n *   \\ref nvmlDeviceGetSerial().\n *\n * @deprecated Since more than one GPU can exist on a single board this function is deprecated in favor\n *             of \\ref nvmlDeviceGetHandleByUUID.\n *             For dual GPU boards this function will return NVML_ERROR_INVALID_ARGUMENT.\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs as it searches for the target GPU\n *\n * @param serial                               The board serial number of the target GPU\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a serial is invalid, \\a device is NULL or more than one\n *                                              device has the same serial (dual GPU boards)\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a serial does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if any GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetSerial\n * @see nvmlDeviceGetHandleByUUID\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleBySerial(const char *serial, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its globally unique immutable UUID associated with each device.\n *\n * For all products.\n *\n * @param uuid                                 The UUID of the target GPU\n * @param device                               Reference in which to return the device handle\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs as it searches for the target GPU\n *\n * This API does not currently support acquiring MIG device handles using MIG device UUIDs.\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a uuid is invalid or \\a device is null\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a uuid does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if any attached devices have improperly attached external power cables\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if any GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n *\n * @see nvmlDeviceGetUUID\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByUUID(const char *uuid, nvmlDevice_t *device);\n\n/**\n * Acquire the handle for a particular device, based on its PCI bus id.\n *\n * For all products.\n *\n * This value corresponds to the nvmlPciInfo_t::busId returned by \\ref nvmlDeviceGetPciInfo_v3().\n *\n * Starting from NVML 5, this API causes NVML to initialize the target GPU\n * NVML may initialize additional GPUs if:\n *  - The target GPU is an SLI slave\n *\n * \\note NVML 4.304 and older version of nvmlDeviceGetHandleByPciBusId\"_v1\" returns NVML_ERROR_NOT_FOUND\n *       instead of NVML_ERROR_NO_PERMISSION.\n *\n * @param pciBusId                             The PCI bus id of the target GPU\n * @param device                               Reference in which to return the device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a pciBusId is invalid or \\a device is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a pciBusId does not match a valid device on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_POWER if the attached device has improperly attached external power cables\n *         - \\ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device\n *         - \\ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId_v2(const char *pciBusId, nvmlDevice_t *device);\n\n/**\n * Retrieves the name of this device.\n *\n * For all products.\n *\n * The name is an alphanumeric string that denotes a particular product, e.g. Tesla &tm; C2070. It will not\n * exceed 96 characters in length (including the NULL terminator).  See \\ref\n * nvmlConstants::NVML_DEVICE_NAME_V2_BUFFER_SIZE.\n *\n * When used with MIG device handles the API returns MIG device names which can be used to identify devices\n * based on their attributes.\n *\n * @param device                               The identifier of the target device\n * @param name                                 Reference in which to return the product name\n * @param length                               The maximum allowed length of the string returned in \\a name\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a name is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetName(nvmlDevice_t device, char *name, unsigned int length);\n\n/**\n * Retrieves the brand of this device.\n *\n * For all products.\n *\n * The type is a member of \\ref nvmlBrandType_t defined above.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Reference in which to return the product brand type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a name has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a type is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBrand(nvmlDevice_t device, nvmlBrandType_t *type);\n\n/**\n * Retrieves the NVML index of this device.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a accessibleDevices count returned by\n *   \\ref nvmlDeviceGetCount_v2(). For example, if \\a accessibleDevices is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * The order in which NVML enumerates devices has no guarantees of consistency between reboots. For that reason it\n *   is recommended that devices be looked up by their PCI ids or GPU UUID. See\n *   \\ref nvmlDeviceGetHandleByPciBusId_v2() and \\ref nvmlDeviceGetHandleByUUID().\n *\n * When used with MIG device handles this API returns indices that can be\n * passed to \\ref nvmlDeviceGetMigDeviceHandleByIndex to retrieve an identical handle.\n * MIG device indices are unique within a device.\n *\n * Note: The NVML index may not correlate with other APIs, such as the CUDA device index.\n *\n * @param device                               The identifier of the target device\n * @param index                                Reference in which to return the NVML index of the device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a index has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a index is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetHandleByIndex()\n * @see nvmlDeviceGetCount()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetIndex(nvmlDevice_t device, unsigned int *index);\n\n/**\n * Retrieves the globally unique board serial number associated with this device's board.\n *\n * For all products with an inforom.\n *\n * The serial number is an alphanumeric string that will not exceed 30 characters (including the NULL terminator).\n * This number matches the serial number tag that is physically attached to the board.  See \\ref\n * nvmlConstants::NVML_DEVICE_SERIAL_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param serial                               Reference in which to return the board/module serial number\n * @param length                               The maximum allowed length of the string returned in \\a serial\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a serial has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a serial is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSerial(nvmlDevice_t device, char *serial, unsigned int length);\n\n\n/***************************************************************************************************/\n\n/** @defgroup nvmlAffinity CPU and Memory Affinity\n *  This chapter describes NVML operations that are associated with CPU and memory\n *  affinity.\n *  @{\n */\n/***************************************************************************************************/\n\n//! Scope of NUMA node for affinity queries\n#define NVML_AFFINITY_SCOPE_NODE     0\n//! Scope of processor socket for affinity queries\n#define NVML_AFFINITY_SCOPE_SOCKET   1\n\ntypedef unsigned int nvmlAffinityScope_t;\n\n/**\n * Retrieves an array of unsigned ints (sized to nodeSetSize) of bitmasks with\n * the ideal memory affinity within node or socket for the device.\n * For example, if NUMA node 0, 1 are ideal within the socket for the device and nodeSetSize ==  1,\n *     result[0] = 0x3\n *\n * \\note If requested scope is not applicable to the target topology, the API\n *       will fall back to reporting the memory affinity for the immediate non-I/O\n *       ancestor of the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param nodeSetSize                          The size of the nodeSet array that is safe to access\n * @param nodeSet                              Array reference in which to return a bitmask of NODEs, 64 NODEs per\n *                                             unsigned long on 64-bit machines, 32 on 32-bit machines\n * @param scope                                Scope that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a NUMA node Affinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, nodeSetSize == 0, nodeSet is NULL or scope is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\n\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryAffinity(nvmlDevice_t device, unsigned int nodeSetSize, unsigned long *nodeSet, nvmlAffinityScope_t scope);\n\n/**\n * Retrieves an array of unsigned ints (sized to cpuSetSize) of bitmasks with the\n * ideal CPU affinity within node or socket for the device.\n * For example, if processors 0, 1, 32, and 33 are ideal for the device and cpuSetSize == 2,\n *     result[0] = 0x3, result[1] = 0x3\n *\n * \\note If requested scope is not applicable to the target topology, the API\n *       will fall back to reporting the CPU affinity for the immediate non-I/O\n *       ancestor of the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param cpuSetSize                           The size of the cpuSet array that is safe to access\n * @param cpuSet                               Array reference in which to return a bitmask of CPUs, 64 CPUs per\n *                                                 unsigned long on 64-bit machines, 32 on 32-bit machines\n * @param scope                                Scope that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cpuAffinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, cpuSetSize == 0, cpuSet is NULL or sope is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\n\nnvmlReturn_t DECLDIR nvmlDeviceGetCpuAffinityWithinScope(nvmlDevice_t device, unsigned int cpuSetSize, unsigned long *cpuSet, nvmlAffinityScope_t scope);\n\n/**\n * Retrieves an array of unsigned ints (sized to cpuSetSize) of bitmasks with the ideal CPU affinity for the device\n * For example, if processors 0, 1, 32, and 33 are ideal for the device and cpuSetSize == 2,\n *     result[0] = 0x3, result[1] = 0x3\n * This is equivalent to calling \\ref nvmlDeviceGetCpuAffinityWithinScope with \\ref NVML_AFFINITY_SCOPE_NODE.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n * @param cpuSetSize                           The size of the cpuSet array that is safe to access\n * @param cpuSet                               Array reference in which to return a bitmask of CPUs, 64 CPUs per\n *                                                 unsigned long on 64-bit machines, 32 on 32-bit machines\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a cpuAffinity has been filled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, cpuSetSize == 0, or cpuSet is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCpuAffinity(nvmlDevice_t device, unsigned int cpuSetSize, unsigned long *cpuSet);\n\n/**\n * Sets the ideal affinity for the calling thread and device using the guidelines\n * given in nvmlDeviceGetCpuAffinity().  Note, this is a change as of version 8.0.\n * Older versions set the affinity for a calling process and all children.\n * Currently supports up to 1024 processors.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the calling process has been successfully bound\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetCpuAffinity(nvmlDevice_t device);\n\n/**\n * Clear all affinity bindings for the calling thread.  Note, this is a change as of version\n * 8.0 as older versions cleared the affinity for a calling process and all children.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the calling process has been successfully unbound\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearCpuAffinity(nvmlDevice_t device);\n\n/**\n * Retrieve the common ancestor for two devices\n * For all products.\n * Supported on Linux only.\n *\n * @param device1                              The identifier of the first device\n * @param device2                              The identifier of the second device\n * @param pathInfo                             A \\ref nvmlGpuTopologyLevel_t that gives the path type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pathInfo has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device1, or \\a device2 is invalid, or \\a pathInfo is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\n\n/** @} */\nnvmlReturn_t DECLDIR nvmlDeviceGetTopologyCommonAncestor(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuTopologyLevel_t *pathInfo);\n\n/**\n * Retrieve the set of GPUs that are nearest to a given device at a specific interconnectivity level\n * For all products.\n * Supported on Linux only.\n *\n * @param device                               The identifier of the first device\n * @param level                                The \\ref nvmlGpuTopologyLevel_t level to search for other GPUs\n * @param count                                When zero, is set to the number of matching GPUs such that \\a deviceArray\n *                                             can be malloc'd.  When non-zero, \\a deviceArray will be filled with \\a count\n *                                             number of device handles.\n * @param deviceArray                          An array of device handles for GPUs found at \\a level\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceArray or \\a count (if initially zero) has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a level, or \\a count is invalid, or \\a deviceArray is NULL with a non-zero \\a count\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTopologyNearestGpus(nvmlDevice_t device, nvmlGpuTopologyLevel_t level, unsigned int *count, nvmlDevice_t *deviceArray);\n\n/**\n * Retrieve the set of GPUs that have a CPU affinity with the given CPU number\n * For all products.\n * Supported on Linux only.\n *\n * @param cpuNumber                            The CPU number\n * @param count                                When zero, is set to the number of matching GPUs such that \\a deviceArray\n *                                             can be malloc'd.  When non-zero, \\a deviceArray will be filled with \\a count\n *                                             number of device handles.\n * @param deviceArray                          An array of device handles for GPUs found with affinity to \\a cpuNumber\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceArray or \\a count (if initially zero) has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a cpuNumber, or \\a count is invalid, or \\a deviceArray is NULL with a non-zero \\a count\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or OS does not support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           an error has occurred in underlying topology discovery\n */\nnvmlReturn_t DECLDIR nvmlSystemGetTopologyGpuSet(unsigned int cpuNumber, unsigned int *count, nvmlDevice_t *deviceArray);\n\n/**\n * Retrieve the status for a given p2p capability index between a given pair of GPU\n *\n * @param device1                              The first device\n * @param device2                              The second device\n * @param p2pIndex                             p2p Capability Index being looked for between \\a device1 and \\a device2\n * @param p2pStatus                            Reference in which to return the status of the \\a p2pIndex\n *                                             between \\a device1 and \\a device2\n * @return\n *         - \\ref NVML_SUCCESS         if \\a p2pStatus has been populated\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT     if \\a device1 or \\a device2 or \\a p2pIndex is invalid or \\a p2pStatus is NULL\n *         - \\ref NVML_ERROR_UNKNOWN              on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetP2PStatus(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuP2PCapsIndex_t p2pIndex,nvmlGpuP2PStatus_t *p2pStatus);\n\n/**\n * Retrieves the globally unique immutable UUID associated with this device, as a 5 part hexadecimal string,\n * that augments the immutable, board serial identifier.\n *\n * For all products.\n *\n * The UUID is a globally unique identifier. It is the only available identifier for pre-Fermi-architecture products.\n * It does NOT correspond to any identifier printed on the board.  It will not exceed 96 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_DEVICE_UUID_V2_BUFFER_SIZE.\n *\n * When used with MIG device handles the API returns globally unique UUIDs which can be used to identify MIG\n * devices across both GPU and MIG devices. UUIDs are immutable for the lifetime of a MIG device.\n *\n * @param device                               The identifier of the target device\n * @param uuid                                 Reference in which to return the GPU UUID\n * @param length                               The maximum allowed length of the string returned in \\a uuid\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a uuid has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a uuid is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetUUID(nvmlDevice_t device, char *uuid, unsigned int length);\n\n/**\n * Retrieve the MDEV UUID of a vGPU instance.\n *\n * The MDEV UUID is a globally unique identifier of the mdev device assigned to the VM, and is returned as a 5-part hexadecimal string,\n * not exceeding 80 characters in length (including the NULL terminator).\n * MDEV UUID is displayed only on KVM platform.\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param mdevUuid                 Pointer to caller-supplied buffer to hold MDEV UUID\n * @param size                     Size of buffer in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     on any hypervisor other than KVM\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mdevUuid is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetMdevUUID(nvmlVgpuInstance_t vgpuInstance, char *mdevUuid, unsigned int size);\n\n/**\n * Retrieves minor number for the device. The minor number for the device is such that the Nvidia device node file for\n * each GPU will have the form /dev/nvidia[minor number].\n *\n * For all products.\n * Supported only for Linux\n *\n * @param device                                The identifier of the target device\n * @param minorNumber                           Reference in which to return the minor number for the device\n * @return\n *         - \\ref NVML_SUCCESS                 if the minor number is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minorNumber is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMinorNumber(nvmlDevice_t device, unsigned int *minorNumber);\n\n/**\n * Retrieves the the device board part number which is programmed into the board's InfoROM\n *\n * For all products.\n *\n * @param device                                Identifier of the target device\n * @param partNumber                            Reference to the buffer to return\n * @param length                                Length of the buffer reference\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a partNumber has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if the needed VBIOS fields have not been filled\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a serial is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBoardPartNumber(nvmlDevice_t device, char* partNumber, unsigned int length);\n\n/**\n * Retrieves the version information for the device's infoROM object.\n *\n * For all products with an inforom.\n *\n * Fermi and higher parts have non-volatile on-board memory for persisting device info, such as aggregate\n * ECC counts. The version of the data structures in this memory may change from time to time. It will not\n * exceed 16 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.\n *\n * See \\ref nvmlInforomObject_t for details on the available infoROM objects.\n *\n * @param device                               The identifier of the target device\n * @param object                               The target infoROM object\n * @param version                              Reference in which to return the infoROM version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have an infoROM\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetInforomImageVersion\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomVersion(nvmlDevice_t device, nvmlInforomObject_t object, char *version, unsigned int length);\n\n/**\n * Retrieves the global infoROM image version\n *\n * For all products with an inforom.\n *\n * Image version just like VBIOS version uniquely describes the exact version of the infoROM flashed on the board\n * in contrast to infoROM object version which is only an indicator of supported features.\n * Version string will not exceed 16 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param version                              Reference in which to return the infoROM image version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have an infoROM\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetInforomVersion\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomImageVersion(nvmlDevice_t device, char *version, unsigned int length);\n\n/**\n * Retrieves the checksum of the configuration stored in the device's infoROM.\n *\n * For all products with an inforom.\n *\n * Can be used to make sure that two GPUs have the exact same configuration.\n * Current checksum takes into account configuration stored in PWR and ECC infoROM objects.\n * Checksum can change between driver releases or when user changes configuration (e.g. disable/enable ECC)\n *\n * @param device                               The identifier of the target device\n * @param checksum                             Reference in which to return the infoROM configuration checksum\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a checksum has been set\n *         - \\ref NVML_ERROR_CORRUPTED_INFOROM if the device's checksum couldn't be retrieved due to infoROM corruption\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a checksum is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetInforomConfigurationChecksum(nvmlDevice_t device, unsigned int *checksum);\n\n/**\n * Reads the infoROM from the flash and verifies the checksums.\n *\n * For all products with an inforom.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if infoROM is not corrupted\n *         - \\ref NVML_ERROR_CORRUPTED_INFOROM if the device's infoROM is corrupted\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceValidateInforom(nvmlDevice_t device);\n\n/**\n * Retrieves the display mode for the device.\n *\n * For all products.\n *\n * This method indicates whether a physical display (e.g. monitor) is currently connected to\n * any of the device's connectors.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param display                              Reference in which to return the display mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a display has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a display is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDisplayMode(nvmlDevice_t device, nvmlEnableState_t *display);\n\n/**\n * Retrieves the display active state for the device.\n *\n * For all products.\n *\n * This method indicates whether a display is initialized on the device.\n * For example whether X Server is attached to this device and has allocated memory for the screen.\n *\n * Display can be active even when no monitor is physically attached.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param isActive                             Reference in which to return the display active state\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isActive has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isActive is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDisplayActive(nvmlDevice_t device, nvmlEnableState_t *isActive);\n\n/**\n * Retrieves the persistence mode associated with this device.\n *\n * For all products.\n * For Linux only.\n *\n * When driver persistence mode is enabled the driver software state is not torn down when the last\n * client disconnects. By default this feature is disabled.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current driver persistence mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetPersistenceMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Retrieves the PCI attributes of this device.\n *\n * For all products.\n *\n * See \\ref nvmlPciInfo_t for details on the available PCI info.\n *\n * @param device                               The identifier of the target device\n * @param pci                                  Reference in which to return the PCI info\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pci has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pci is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo_v3(nvmlDevice_t device, nvmlPciInfo_t *pci);\n\n/**\n * Retrieves the maximum PCIe link generation possible with this device and system\n *\n * I.E. for a generation 2 PCIe device attached to a generation 1 PCIe bus the max link generation this function will\n * report is generation 1.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param maxLinkGen                           Reference in which to return the max PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a maxLinkGen has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a maxLinkGen is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkGeneration(nvmlDevice_t device, unsigned int *maxLinkGen);\n\n/**\n * Retrieves the maximum PCIe link width possible with this device and system\n *\n * I.E. for a device with a 16x PCIe bus width attached to a 8x PCIe system bus this function will report\n * a max link width of 8.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param maxLinkWidth                         Reference in which to return the max PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a maxLinkWidth has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a maxLinkWidth is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkWidth(nvmlDevice_t device, unsigned int *maxLinkWidth);\n\n/**\n * Retrieves the current PCIe link generation\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param currLinkGen                          Reference in which to return the current PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a currLinkGen has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a currLinkGen is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkGeneration(nvmlDevice_t device, unsigned int *currLinkGen);\n\n/**\n * Retrieves the current PCIe link width\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param currLinkWidth                        Reference in which to return the current PCIe link generation\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a currLinkWidth has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a currLinkWidth is null\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if PCIe link information is not available\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkWidth(nvmlDevice_t device, unsigned int *currLinkWidth);\n\n/**\n * Retrieve PCIe utilization information.\n * This function is querying a byte counter over a 20ms interval and thus is the\n *   PCIe throughput over that interval.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * This method is not supported in virtual machines running virtual GPU (vGPU).\n *\n * @param device                               The identifier of the target device\n * @param counter                              The specific counter that should be queried \\ref nvmlPcieUtilCounter_t\n * @param value                                Reference in which to return throughput in KB/s\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a value has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a counter is invalid, or \\a value is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieThroughput(nvmlDevice_t device, nvmlPcieUtilCounter_t counter, unsigned int *value);\n\n/**\n * Retrieve the PCIe replay counter.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param value                                Reference in which to return the counter's value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a value has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a value is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPcieReplayCounter(nvmlDevice_t device, unsigned int *value);\n\n/**\n * Retrieves the current clock speeds for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlClockType_t for details on available clock information.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Identify which clock domain to query\n * @param clock                                Reference in which to return the clock speed in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clock has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device cannot report the specified clock\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);\n\n/**\n * Retrieves the maximum clock speeds for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlClockType_t for details on available clock information.\n *\n * \\note On GPUs from Fermi family current P0 clocks (reported by \\ref nvmlDeviceGetClockInfo) can differ from max clocks\n *       by few MHz.\n *\n * @param device                               The identifier of the target device\n * @param type                                 Identify which clock domain to query\n * @param clock                                Reference in which to return the clock speed in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clock has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device cannot report the specified clock\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);\n\n/**\n * Retrieves the current setting of a clock that applications will use unless an overspec situation occurs.\n * Can be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Retrieves the default applications clock that GPU boots with or\n * defaults to after \\ref nvmlDeviceResetApplicationsClocks call.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the default clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * \\see nvmlDeviceGetApplicationsClock\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDefaultApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Resets the application clock to the default value\n *\n * This is the applications clock that will be used after system reboot or driver reload.\n * Default value is constant, but the current value an be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * On Pascal and newer hardware, if clocks were previously locked with \\ref nvmlDeviceSetApplicationsClocks,\n * this call will unlock clocks. This returns clocks their default behavior ofautomatically boosting above\n * base clocks as thermal limits allow.\n *\n * @see nvmlDeviceGetApplicationsClock\n * @see nvmlDeviceSetApplicationsClocks\n *\n * For Fermi &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetApplicationsClocks(nvmlDevice_t device);\n\n/**\n * Retrieves the clock speed for the clock specified by the clock type and clock ID.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockId                              Identify which clock in the domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetClock(nvmlDevice_t device, nvmlClockType_t clockType, nvmlClockId_t clockId, unsigned int *clockMHz);\n\n/**\n * Retrieves the customer defined maximum boost clock speed specified by the given clock type.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param clockType                            Identify which clock domain to query\n * @param clockMHz                             Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clockMHz has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clockMHz is NULL or \\a clockType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device or the \\a clockType on this device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxCustomerBoostClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);\n\n/**\n * Retrieves the list of possible memory clocks that can be used as an argument for \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param count                                Reference in which to provide the \\a clocksMHz array size, and\n *                                             to return the number of elements\n * @param clocksMHz                            Reference in which to return the clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count and \\a clocksMHz have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to the number of\n *                                                required elements)\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetSupportedGraphicsClocks\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedMemoryClocks(nvmlDevice_t device, unsigned int *count, unsigned int *clocksMHz);\n\n/**\n * Retrieves the list of possible graphics clocks that can be used as an argument for \\ref nvmlDeviceSetApplicationsClocks.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param memoryClockMHz                       Memory clock for which to return possible graphics clocks\n * @param count                                Reference in which to provide the \\a clocksMHz array size, and\n *                                             to return the number of elements\n * @param clocksMHz                            Reference in which to return the clocks in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count and \\a clocksMHz have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NOT_FOUND         if the specified \\a memoryClockMHz is not a supported frequency\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clock is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetApplicationsClocks\n * @see nvmlDeviceGetSupportedMemoryClocks\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedGraphicsClocks(nvmlDevice_t device, unsigned int memoryClockMHz, unsigned int *count, unsigned int *clocksMHz);\n\n/**\n * Retrieve the current state of Auto Boosted clocks on a device and store it in \\a isEnabled\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow.\n *\n * On Pascal and newer hardware, Auto Aoosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param isEnabled                            Where to store the current state of Auto Boosted clocks of the target device\n * @param defaultIsEnabled                     Where to store the default Auto Boosted clocks behavior of the target device that the device will\n *                                                 revert to when no applications are using the GPU\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If \\a isEnabled has been been set with the Auto Boosted clocks state of \\a device\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isEnabled is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t *isEnabled, nvmlEnableState_t *defaultIsEnabled);\n\n/**\n * Try to set the current state of Auto Boosted clocks on a device.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow. Auto Boosted clocks should be disabled if fixed clock\n * rates are desired.\n *\n * Non-root users may use this API by default but can be restricted by root from using this API by calling\n * \\ref nvmlDeviceSetAPIRestriction with apiType=NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS.\n * Note: Persistence Mode is required to modify current Auto Boost settings, therefore, it must be enabled.\n *\n * On Pascal and newer hardware, Auto Boosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param enabled                              What state to try to set Auto Boosted clocks of the target device to\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If the Auto Boosted clocks were successfully set to the state specified by \\a enabled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled);\n\n/**\n * Try to set the default state of Auto Boosted clocks on a device. This is the default state that Auto Boosted clocks will\n * return to when no compute running processes (e.g. CUDA application which have an active context) are running\n *\n * For Kepler &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n * Requires root/admin permissions.\n *\n * Auto Boosted clocks are enabled by default on some hardware, allowing the GPU to run at higher clock rates\n * to maximize performance as thermal limits allow. Auto Boosted clocks should be disabled if fixed clock\n * rates are desired.\n *\n * On Pascal and newer hardware, Auto Boosted clocks are controlled through application clocks.\n * Use \\ref nvmlDeviceSetApplicationsClocks and \\ref nvmlDeviceResetApplicationsClocks to control Auto Boost\n * behavior.\n *\n * @param device                               The identifier of the target device\n * @param enabled                              What state to try to set default Auto Boosted clocks of the target device to\n * @param flags                                Flags that change the default behavior. Currently Unused.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 If the Auto Boosted clock's default state was successfully set to the state specified by \\a enabled\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NO_PERMISSION     If the calling user does not have permission to change Auto Boosted clock's default state.\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support Auto Boosted clocks\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetDefaultAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled, unsigned int flags);\n\n\n/**\n * Retrieves the intended operating speed of the device's fan.\n *\n * Note: The reported speed is the intended fan speed.  If the fan is physically blocked and unable to spin, the\n * output will not match the actual fan speed.\n *\n * For all discrete products with dedicated fans.\n *\n * The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed.\n * This value may exceed 100% in certain cases.\n *\n * @param device                               The identifier of the target device\n * @param speed                                Reference in which to return the fan speed percentage\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a speed has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a speed is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a fan\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed(nvmlDevice_t device, unsigned int *speed);\n\n\n/**\n * Retrieves the intended operating speed of the device's specified fan.\n *\n * Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the\n * output will not match the actual fan speed.\n *\n * For all discrete products with dedicated fans.\n *\n * The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed.\n * This value may exceed 100% in certain cases.\n *\n * @param device                                The identifier of the target device\n * @param fan                                   The index of the target fan, zero indexed.\n * @param speed                                 Reference in which to return the fan speed percentage\n *\n * @return\n *        - \\ref NVML_SUCCESS                   if \\a speed has been set\n *        - \\ref NVML_ERROR_UNINITIALIZED       if the library has not been successfully initialized\n *        - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a device is invalid, \\a fan is not an acceptable index, or \\a speed is NULL\n *        - \\ref NVML_ERROR_NOT_SUPPORTED       if the device does not have a fan or is newer than Maxwell\n *        - \\ref NVML_ERROR_GPU_IS_LOST         if the target GPU has fallen off the bus or is otherwise inaccessible\n *        - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int * speed);\n\n\n/**\n * Retrieves the current temperature readings for the device, in degrees C.\n *\n * For all products.\n *\n * See \\ref nvmlTemperatureSensors_t for details on available temperature sensors.\n *\n * @param device                               The identifier of the target device\n * @param sensorType                           Flag that indicates which sensor reading to retrieve\n * @param temp                                 Reference in which to return the temperature reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a sensorType is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have the specified sensor\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTemperature(nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int *temp);\n\n/**\n * Retrieves the temperature threshold for the GPU with the specified threshold type in degrees C.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * See \\ref nvmlTemperatureThresholds_t for details on available temperature thresholds.\n *\n * @param device                               The identifier of the target device\n * @param thresholdType                        The type of threshold value queried\n * @param temp                                 Reference in which to return the temperature reading\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a temp has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a thresholdType is invalid or \\a temp is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not have a temperature sensor or is unsupported\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTemperatureThreshold(nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int *temp);\n\n/**\n * Retrieves the current performance state for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlPstates_t for details on allowed performance states.\n *\n * @param device                               The identifier of the target device\n * @param pState                               Reference in which to return the performance state reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pState has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pState is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPerformanceState(nvmlDevice_t device, nvmlPstates_t *pState);\n\n/**\n * Retrieves current clocks throttling reasons.\n *\n * For all fully supported products.\n *\n * \\note More than one bit can be enabled at the same time. Multiple reasons can be affecting clocks at once.\n *\n * @param device                                The identifier of the target device\n * @param clocksThrottleReasons                 Reference in which to return bitmask of active clocks throttle\n *                                                  reasons\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a clocksThrottleReasons has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a clocksThrottleReasons is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlClocksThrottleReasons\n * @see nvmlDeviceGetSupportedClocksThrottleReasons\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCurrentClocksThrottleReasons(nvmlDevice_t device, unsigned long long *clocksThrottleReasons);\n\n/**\n * Retrieves bitmask of supported clocks throttle reasons that can be returned by\n * \\ref nvmlDeviceGetCurrentClocksThrottleReasons\n *\n * For all fully supported products.\n *\n * This method is not supported in virtual machines running virtual GPU (vGPU).\n *\n * @param device                               The identifier of the target device\n * @param supportedClocksThrottleReasons       Reference in which to return bitmask of supported\n *                                              clocks throttle reasons\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a supportedClocksThrottleReasons has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a supportedClocksThrottleReasons is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlClocksThrottleReasons\n * @see nvmlDeviceGetCurrentClocksThrottleReasons\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedClocksThrottleReasons(nvmlDevice_t device, unsigned long long *supportedClocksThrottleReasons);\n\n/**\n * Deprecated: Use \\ref nvmlDeviceGetPerformanceState. This function exposes an incorrect generalization.\n *\n * Retrieve the current performance state for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlPstates_t for details on allowed performance states.\n *\n * @param device                               The identifier of the target device\n * @param pState                               Reference in which to return the performance state reading\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pState has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a pState is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerState(nvmlDevice_t device, nvmlPstates_t *pState);\n\n/**\n * This API has been deprecated.\n *\n * Retrieves the power management mode associated with this device.\n *\n * For products from the Fermi family.\n *     - Requires \\a NVML_INFOROM_POWER version 3.0 or higher.\n *\n * For from the Kepler or newer families.\n *     - Does not require \\a NVML_INFOROM_POWER object.\n *\n * This flag indicates whether any power management algorithm is currently active on the device. An\n * enabled state does not necessarily mean the device is being actively throttled -- only that\n * that the driver will do so if the appropriate conditions are met.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current power management mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Retrieves the power management limit associated with this device.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * The power limit defines the upper boundary for the card's power draw. If\n * the card's total power draw reaches this limit the power management algorithm kicks in.\n *\n * This reading is only available if power management mode is supported.\n * See \\ref nvmlDeviceGetPowerManagementMode.\n *\n * @param device                               The identifier of the target device\n * @param limit                                Reference in which to return the power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a limit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimit(nvmlDevice_t device, unsigned int *limit);\n\n/**\n * Retrieves information about possible values of power management limits on this device.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param minLimit                             Reference in which to return the minimum power management limit in milliwatts\n * @param maxLimit                             Reference in which to return the maximum power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a minLimit and \\a maxLimit have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minLimit or \\a maxLimit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetPowerManagementLimit\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimitConstraints(nvmlDevice_t device, unsigned int *minLimit, unsigned int *maxLimit);\n\n/**\n * Retrieves default power management limit on this device, in milliwatts.\n * Default power management limit is a power management limit that the device boots with.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param defaultLimit                         Reference in which to return the default power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a defaultLimit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a defaultLimit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementDefaultLimit(nvmlDevice_t device, unsigned int *defaultLimit);\n\n/**\n * Retrieves power usage for this GPU in milliwatts and its associated circuitry (e.g. memory)\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw.\n *\n * It is only available if power management mode is supported. See \\ref nvmlDeviceGetPowerManagementMode.\n *\n * @param device                               The identifier of the target device\n * @param power                                Reference in which to return the power usage information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a power has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a power is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support power readings\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPowerUsage(nvmlDevice_t device, unsigned int *power);\n\n/**\n * Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param energy                               Reference in which to return the energy consumption information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a energy has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a energy is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support energy readings\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTotalEnergyConsumption(nvmlDevice_t device, unsigned long long *energy);\n\n/**\n * Get the effective power limit that the driver enforces after taking into account all limiters\n *\n * Note: This can be different from the \\ref nvmlDeviceGetPowerManagementLimit if other limits are set elsewhere\n * This includes the out of band power limit interface\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                           The device to communicate with\n * @param limit                            Reference in which to return the power management limit in milliwatts\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a limit is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEnforcedPowerLimit(nvmlDevice_t device, unsigned int *limit);\n\n/**\n * Retrieves the current GOM and pending GOM (the one that GPU will switch to after reboot).\n *\n * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.\n * Modes \\ref NVML_GOM_LOW_DP and \\ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.\n * Not supported on Quadro &reg; and Tesla &tm; C-class products.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current GOM\n * @param pending                              Reference in which to return the pending GOM\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a current or \\a pending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlGpuOperationMode_t\n * @see nvmlDeviceSetGpuOperationMode\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t *current, nvmlGpuOperationMode_t *pending);\n\n/**\n * Retrieves the amount of used, free and total memory available on the device, in bytes.\n *\n * For all products.\n *\n * Enabling ECC reduces the amount of total available memory, due to the extra required parity bits.\n * Under WDDM most device memory is allocated and managed on startup by Windows.\n *\n * Under Linux and Windows TCC, the reported amount of used memory is equal to the sum of memory allocated\n * by all active channels on the device.\n *\n * See \\ref nvmlMemory_t for details on available memory info.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate\n *       information, only if the caller has appropriate privileges. Per-instance\n *       information can be queried by using specific MIG device handles.\n *\n * @param device                               The identifier of the target device\n * @param memory                               Reference in which to return the memory information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a memory has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a memory is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo(nvmlDevice_t device, nvmlMemory_t *memory);\n\n/**\n * Retrieves the current compute mode for the device.\n *\n * For all products.\n *\n * See \\ref nvmlComputeMode_t for details on allowed compute modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current compute mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetComputeMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeMode(nvmlDevice_t device, nvmlComputeMode_t *mode);\n\n/**\n * Retrieves the CUDA compute capability of the device.\n *\n * For all products.\n *\n * Returns the major and minor compute capability version numbers of the\n * device.  The major and minor versions are equivalent to the\n * CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR and\n * CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR attributes that would be\n * returned by CUDA's cuDeviceGetAttribute().\n *\n * @param device                               The identifier of the target device\n * @param major                                Reference in which to return the major CUDA compute capability\n * @param minor                                Reference in which to return the minor CUDA compute capability\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a major and \\a minor have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a major or \\a minor are NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCudaComputeCapability(nvmlDevice_t device, int *major, int *minor);\n\n/**\n * Retrieves the current and pending ECC modes for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n *\n * Changing ECC modes requires a reboot. The \"pending\" ECC mode refers to the target mode following\n * the next reboot.\n *\n * See \\ref nvmlEnableState_t for details on allowed modes.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current ECC mode\n * @param pending                              Reference in which to return the pending ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a current and \\a pending have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or either \\a current or \\a pending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetEccMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEccMode(nvmlDevice_t device, nvmlEnableState_t *current, nvmlEnableState_t *pending);\n\n/**\n * Retrieves the device boardId from 0-N.\n * Devices with the same boardId indicate GPUs connected to the same PLX.  Use in conjunction with\n *  \\ref nvmlDeviceGetMultiGpuBoard() to decide if they are on the same board as well.\n *  The boardId returned is a unique ID for the current configuration.  Uniqueness and ordering across\n *  reboots and system configurations is not guaranteed (i.e. if a Tesla K40c returns 0x100 and\n *  the two GPUs on a Tesla K10 in the same system returns 0x200 it is not guaranteed they will\n *  always return those values but they will always be different from each other).\n *\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param boardId                              Reference in which to return the device's board ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a boardId has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a boardId is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBoardId(nvmlDevice_t device, unsigned int *boardId);\n\n/**\n * Retrieves whether the device is on a Multi-GPU Board\n * Devices that are on multi-GPU boards will set \\a multiGpuBool to a non-zero value.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param multiGpuBool                         Reference in which to return a zero or non-zero value\n *                                                 to indicate whether the device is on a multi GPU board\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a multiGpuBool has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a multiGpuBool is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMultiGpuBoard(nvmlDevice_t device, unsigned int *multiGpuBool);\n\n/**\n * Retrieves the total ECC error counts for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n * Requires ECC Mode to be enabled.\n *\n * The total error count is the sum of errors across each of the separate memory systems, i.e. the total set of\n * errors across the entire device.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available error types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of the errors.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param eccCounts                            Reference in which to return the specified ECC errors\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a eccCounts has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a errorType or \\a counterType is invalid, or \\a eccCounts is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceClearEccErrorCounts()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetTotalEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, unsigned long long *eccCounts);\n\n/**\n * Retrieves the detailed ECC error counts for the device.\n *\n * @deprecated   This API supports only a fixed set of ECC error locations\n *               On different GPU architectures different locations are supported\n *               See \\ref nvmlDeviceGetMemoryErrorCounter\n *\n * For Fermi &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based ECC counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to report all other ECC counts.\n * Requires ECC Mode to be enabled.\n *\n * Detailed errors provide separate ECC counts for specific parts of the memory system.\n *\n * Reports zero for unsupported ECC error counters when a subset of ECC error counters are supported.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available bit types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\\n\n * See \\ref nvmlEccErrorCounts_t for a description of provided detailed ECC counts.\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of the errors.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param eccCounts                            Reference in which to return the specified ECC errors\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a eccCounts has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a errorType or \\a counterType is invalid, or \\a eccCounts is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceClearEccErrorCounts()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t *eccCounts);\n\n/**\n * Retrieves the requested memory error counter for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.\n *\n * Only applicable to devices with ECC.\n *\n * Requires ECC Mode to be enabled.\n *\n * @note On MIG-enabled GPUs, per instance information can be queried using specific\n *       MIG device handles. Per instance information is currently only supported for\n *       non-DRAM uncorrectable volatile errors. Querying volatile errors using device\n *       handles is currently not supported.\n *\n * See \\ref nvmlMemoryErrorType_t for a description of available memory error types.\\n\n * See \\ref nvmlEccCounterType_t for a description of available counter types.\\n\n * See \\ref nvmlMemoryLocation_t for a description of available counter locations.\\n\n *\n * @param device                               The identifier of the target device\n * @param errorType                            Flag that specifies the type of error.\n * @param counterType                          Flag that specifies the counter-type of the errors.\n * @param locationType                         Specifies the location of the counter.\n * @param count                                Reference in which to return the ECC counter\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a bitTyp,e \\a counterType or \\a locationType is\n *                                             invalid, or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support ECC error reporting in the specified memory\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMemoryErrorCounter(nvmlDevice_t device, nvmlMemoryErrorType_t errorType,\n                                                   nvmlEccCounterType_t counterType,\n                                                   nvmlMemoryLocation_t locationType, unsigned long long *count);\n\n/**\n * Retrieves the current utilization rates for the device's major subsystems.\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * See \\ref nvmlUtilization_t for details on available utilization rates.\n *\n * \\note During driver initialization when ECC is enabled one can see high GPU and Memory Utilization readings.\n *       This is caused by ECC Memory Scrubbing mechanism that is performed during driver initialization.\n *\n * @note On MIG-enabled GPUs, querying device utilization rates is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference in which to return the utilization information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a utilization is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetUtilizationRates(nvmlDevice_t device, nvmlUtilization_t *utilization);\n\n/**\n * Retrieves the current utilization and sampling size in microseconds for the Encoder\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @note On MIG-enabled GPUs, querying encoder utilization is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference to an unsigned int for encoder utilization info\n * @param samplingPeriodUs                     Reference to an unsigned int for the sampling period in US\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);\n\n/**\n * Retrieves the current capacity of the device's encoder, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param encoderQueryType                  Type of encoder to query\n * @param encoderCapacity                   Reference to an unsigned int for the encoder capacity\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a encoderCapacity is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a encoderCapacity is NULL, or \\a device or \\a encoderQueryType\n *                                              are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if device does not support the encoder specified in \\a encodeQueryType\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderCapacity (nvmlDevice_t device, nvmlEncoderType_t encoderQueryType, unsigned int *encoderCapacity);\n\n/**\n * Retrieves the current encoder statistics for a given device.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param sessionCount                      Reference to an unsigned int for count of active encoder sessions\n * @param averageFps                        Reference to an unsigned int for trailing average FPS of all active sessions\n * @param averageLatency                    Reference to an unsigned int for encode latency in microseconds\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionCount, \\a averageFps and \\a averageLatency is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount, or \\a device or \\a averageFps,\n *                                              or \\a averageLatency is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderStats (nvmlDevice_t device, unsigned int *sessionCount,\n                                                unsigned int *averageFps, unsigned int *averageLatency);\n\n/**\n * Retrieves information about active encoder sessions on a target device.\n *\n * An array of active encoder sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfos. The\n * array elememt count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the active session array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \\a sessionCount.\n * To query the number of active encoder sessions, call this function with *sessionCount = 0.  The code will return\n * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n * @param sessionInfos                      Reference in which to return the session information\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionInfos is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL.\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetEncoderSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfos);\n\n/**\n * Retrieves the current utilization and sampling size in microseconds for the Decoder\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @note On MIG-enabled GPUs, querying decoder utilization is not currently supported.\n *\n * @param device                               The identifier of the target device\n * @param utilization                          Reference to an unsigned int for decoder utilization info\n * @param samplingPeriodUs                     Reference to an unsigned int for the sampling period in US\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDecoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);\n\n/**\n* Retrieves the active frame buffer capture sessions statistics for a given device.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @param device                            The identifier of the target device\n* @param fbcStats                          Reference to nvmlFBCStats_t structure contianing NvFBC stats\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a fbcStats is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a fbcStats is NULL\n*         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetFBCStats(nvmlDevice_t device, nvmlFBCStats_t *fbcStats);\n\n/**\n* Retrieves information about active frame buffer capture sessions on a target device.\n*\n* An array of active FBC sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n* array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n* written to the buffer.\n*\n* If the supplied buffer is not large enough to accomodate the active session array, the function returns\n* NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \\a sessionCount.\n* To query the number of active FBC sessions, call this function with *sessionCount = 0.  The code will return\n* NVML_SUCCESS with number of active FBC sessions updated in *sessionCount.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @note hResolution, vResolution, averageFPS and averageLatency data for a FBC session returned in \\a sessionInfo may\n*       be zero if there are no new frames captured since the session started.\n*\n* @param device                            The identifier of the target device\n* @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n* @param sessionInfo                       Reference in which to return the session information\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL.\n*         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlDeviceGetFBCSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);\n\n/**\n * Retrieves the current and pending driver model for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * For windows only.\n *\n * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached\n * to the device it must run in WDDM mode. TCC mode is preferred if a display is not attached.\n *\n * See \\ref nvmlDriverModel_t for details on available driver models.\n *\n * @param device                               The identifier of the target device\n * @param current                              Reference in which to return the current driver model\n * @param pending                              Reference in which to return the pending driver model\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if either \\a current and/or \\a pending have been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or both \\a current and \\a pending are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform is not windows\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceSetDriverModel()\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDriverModel(nvmlDevice_t device, nvmlDriverModel_t *current, nvmlDriverModel_t *pending);\n\n/**\n * Get VBIOS version of the device.\n *\n * For all products.\n *\n * The VBIOS version may change from time to time. It will not exceed 32 characters in length\n * (including the NULL terminator).  See \\ref nvmlConstants::NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE.\n *\n * @param device                               The identifier of the target device\n * @param version                              Reference to which to return the VBIOS version\n * @param length                               The maximum allowed length of the string returned in \\a version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a version is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVbiosVersion(nvmlDevice_t device, char *version, unsigned int length);\n\n/**\n * Get Bridge Chip Information for all the bridge chips on the board.\n *\n * For all fully supported products.\n * Only applicable to multi-GPU products.\n *\n * @param device                                The identifier of the target device\n * @param bridgeHierarchy                       Reference to the returned bridge chip Hierarchy\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if bridge chip exists\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, or \\a bridgeInfo is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if bridge chip not supported on the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBridgeChipInfo(nvmlDevice_t device, nvmlBridgeChipHierarchy_t *bridgeHierarchy);\n\n/**\n * Get information about processes with a compute context on a device\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * This function returns information only about compute running processes (e.g. CUDA application which have\n * active context). Any graphics applications (e.g. using OpenGL, DirectX) won't be listed by this function.\n *\n * To query the current number of running compute processes, call this function with *infoCount = 0. The\n * return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call\n * \\a infos is allowed to be NULL.\n *\n * The usedGpuMemory field returned is all of the memory used by the application.\n *\n * Keep in mind that information returned by this call is dynamic and the number of elements might change in\n * time. Allocate more space for \\a infos table in case new compute processes are spawned.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate information, only if\n *       the caller has appropriate privileges. Per-instance information can be queried by using\n *       specific MIG device handles.\n *\n * @param device                               The device handle or MIG device handle\n * @param infoCount                            Reference in which to provide the \\a infos array size, and\n *                                             to return the number of returned elements\n * @param infos                                Reference in which to return the process information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a infoCount and \\a infos have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a infoCount indicates that the \\a infos array is too small\n *                                             \\a infoCount will contain minimal amount of space necessary for\n *                                             the call to complete\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, either of \\a infoCount or \\a infos is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see \\ref nvmlSystemGetProcessName\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);\n\n/**\n * Get information about processes with a graphics context on a device\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * This function returns information only about graphics based processes\n * (eg. applications using OpenGL, DirectX)\n *\n * To query the current number of running graphics processes, call this function with *infoCount = 0. The\n * return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if none are running. For this call\n * \\a infos is allowed to be NULL.\n *\n * The usedGpuMemory field returned is all of the memory used by the application.\n *\n * Keep in mind that information returned by this call is dynamic and the number of elements might change in\n * time. Allocate more space for \\a infos table in case new graphics processes are spawned.\n *\n * @note In MIG mode, if device handle is provided, the API returns aggregate information, only if\n *       the caller has appropriate privileges. Per-instance information can be queried by using\n *       specific MIG device handles.\n *\n * @param device                               The identifier of the target device\n * @param infoCount                            Reference in which to provide the \\a infos array size, and\n *                                             to return the number of returned elements\n * @param infos                                Reference in which to return the process information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a infoCount and \\a infos have been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a infoCount indicates that the \\a infos array is too small\n *                                             \\a infoCount will contain minimal amount of space necessary for\n *                                             the call to complete\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, either of \\a infoCount or \\a infos is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see \\ref nvmlSystemGetProcessName\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGraphicsRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);\n\n/**\n * Check if the GPU devices are on the same physical board.\n *\n * For all fully supported products.\n *\n * @param device1                               The first GPU device\n * @param device2                               The second GPU device\n * @param onSameBoard                           Reference in which to return the status.\n *                                              Non-zero indicates that the GPUs are on the same board.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a onSameBoard has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a dev1 or \\a dev2 are invalid or \\a onSameBoard is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this check is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the either GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceOnSameBoard(nvmlDevice_t device1, nvmlDevice_t device2, int *onSameBoard);\n\n/**\n * Retrieves the root/admin permissions on the target API. See \\a nvmlRestrictedAPI_t for the list of supported APIs.\n * If an API is restricted only root users can call that API. See \\a nvmlDeviceSetAPIRestriction to change current permissions.\n *\n * For all fully supported products.\n *\n * @param device                               The identifier of the target device\n * @param apiType                              Target API type for this operation\n * @param isRestricted                         Reference in which to return the current restriction\n *                                             NVML_FEATURE_ENABLED indicates that the API is root-only\n *                                             NVML_FEATURE_DISABLED indicates that the API is accessible to all users\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isRestricted has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a apiType incorrect or \\a isRestricted is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device or the device does not support\n *                                                 the feature that is being queried (E.G. Enabling/disabling Auto Boosted clocks is\n *                                                 not supported by the device)\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlRestrictedAPI_t\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t *isRestricted);\n\n/**\n * Gets recent samples for the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Based on type, this method can be used to fetch the power, utilization or clock samples maintained in the buffer by\n * the driver.\n *\n * Power, Utilization and Clock samples are returned as type \"unsigned int\" for the union nvmlValue_t.\n *\n * To get the size of samples that user needs to allocate, the method is invoked with samples set to NULL.\n * The returned samplesCount will provide the number of samples that can be queried. The user needs to\n * allocate the buffer with size as samplesCount * sizeof(nvmlSample_t).\n *\n * lastSeenTimeStamp represents CPU timestamp in microseconds. Set it to 0 to fetch all the samples maintained by the\n * underlying buffer. Set lastSeenTimeStamp to one of the timeStamps retrieved from the date of the previous query\n * to get more recent samples.\n *\n * This method fetches the number of entries which can be accommodated in the provided samples array, and the\n * reference samplesCount is updated to indicate how many samples were actually retrieved. The advantage of using this\n * method for samples in contrast to polling via existing methods is to get get higher frequency data at lower polling cost.\n *\n * @note On MIG-enabled GPUs, querying the following sample types, NVML_GPU_UTILIZATION_SAMPLES, NVML_MEMORY_UTILIZATION_SAMPLES\n *       NVML_ENC_UTILIZATION_SAMPLES and NVML_DEC_UTILIZATION_SAMPLES, is not currently supported.\n *\n * @param device                        The identifier for the target device\n * @param type                          Type of sampling event\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param sampleValType                 Output parameter to represent the type of sample value as described in nvmlSampleVal_t\n * @param sampleCount                   Reference to provide the number of elements which can be queried in samples array\n * @param samples                       Reference in which samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a samplesCount is NULL or\n *                                             reference to \\a sampleCount is 0 for non null \\a samples\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSamples(nvmlDevice_t device, nvmlSamplingType_t type, unsigned long long lastSeenTimeStamp,\n        nvmlValueType_t *sampleValType, unsigned int *sampleCount, nvmlSample_t *samples);\n\n/**\n * Gets Total, Available and Used size of BAR1 memory.\n *\n * BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or by 3rd party\n * devices (peer-to-peer on the PCIE bus).\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param bar1Memory                           Reference in which BAR1 memory\n *                                             information is returned.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if BAR1 memory is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a bar1Memory is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetBAR1MemoryInfo(nvmlDevice_t device, nvmlBAR1Memory_t *bar1Memory);\n\n\n/**\n * Gets the duration of time during which the device was throttled (lower than requested clocks) due to power\n * or thermal constraints.\n *\n * The method is important to users who are tying to understand if their GPUs throttle at any point during their applications. The\n * difference in violation times at two different reference times gives the indication of GPU throttling event.\n *\n * Violation for thermal capping is not supported at this time.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param perfPolicyType                       Represents Performance policy which can trigger GPU throttling\n * @param violTime                             Reference to which violation time related information is returned\n *\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if violation time is successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a perfPolicyType is invalid, or \\a violTime is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetViolationStatus(nvmlDevice_t device, nvmlPerfPolicyType_t perfPolicyType, nvmlViolationTime_t *violTime);\n\n/**\n * @}\n */\n\n/** @addtogroup nvmlAccountingStats\n *  @{\n */\n\n/**\n * Queries the state of per process accounting mode.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * See \\ref nvmlDeviceGetAccountingStats for more details.\n * See \\ref nvmlDeviceSetAccountingMode\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Reference in which to return the current accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingMode(nvmlDevice_t device, nvmlEnableState_t *mode);\n\n/**\n * Queries process's accounting stats.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Accounting stats capture GPU utilization and other statistics across the lifetime of a process.\n * Accounting stats can be queried during life time of the process and after its termination.\n * The time field in \\ref nvmlAccountingStats_t is reported as 0 during the lifetime of the process and\n * updated to actual running time after its termination.\n * Accounting stats are kept in a circular buffer, newly created processes overwrite information about old\n * processes.\n *\n * See \\ref nvmlAccountingStats_t for description of each returned metric.\n * List of processes that can be queried can be retrieved from \\ref nvmlDeviceGetAccountingPids.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlDeviceGetAccountingMode.\n * @note Only compute and graphics applications stats can be queried. Monitoring applications stats can't be\n *         queried since they don't contribute to GPU utilization.\n * @note In case of pid collision stats of only the latest process (that terminated last) will be reported\n *\n * @warning On Kepler devices per process statistics are accurate only if there's one process running on a GPU.\n *\n * @param device                               The identifier of the target device\n * @param pid                                  Process Id of the target process to query stats for\n * @param stats                                Reference in which to return the process's accounting stats\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if stats have been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a stats are NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if process stats were not found\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if \\a device doesn't support this feature or accounting mode is disabled\n *                                              or on vGPU host.\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingBufferSize\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingStats(nvmlDevice_t device, unsigned int pid, nvmlAccountingStats_t *stats);\n\n/**\n * Queries list of processes that can be queried for accounting stats. The list of processes returned\n * can be in running or terminated state.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * To just query the number of processes ready to be queried, call this function with *count = 0 and\n * pids=NULL. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if list is empty.\n *\n * For more details see \\ref nvmlDeviceGetAccountingStats.\n *\n * @note In case of PID collision some processes might not be accessible before the circular buffer is full.\n *\n * @param device                               The identifier of the target device\n * @param count                                Reference in which to provide the \\a pids array size, and\n *                                               to return the number of elements ready to be queried\n * @param pids                                 Reference in which to return list of process ids\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if pids were successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if \\a device doesn't support this feature or accounting mode is disabled\n *                                              or on vGPU host.\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to\n *                                                 expected value)\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingBufferSize\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingPids(nvmlDevice_t device, unsigned int *count, unsigned int *pids);\n\n/**\n * Returns the number of processes that the circular buffer with accounting pids can hold.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * This is the maximum number of processes that accounting information will be stored for before information\n * about oldest processes will get overwritten by information about new processes.\n *\n * @param device                               The identifier of the target device\n * @param bufferSize                           Reference in which to provide the size (in number of elements)\n *                                               of the circular buffer for accounting stats.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if buffer size was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a bufferSize is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetAccountingStats\n * @see nvmlDeviceGetAccountingPids\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetAccountingBufferSize(nvmlDevice_t device, unsigned int *bufferSize);\n\n/** @} */\n\n/** @addtogroup nvmlDeviceQueries\n *  @{\n */\n\n/**\n * Returns the list of retired pages by source, including pages that are pending retirement\n * The address information provided from this API is the hardware address of the page that was retired.  Note\n * that this does not match the virtual address used in CUDA, but will match the address information in XID 63\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param cause                             Filter page addresses by cause of retirement\n * @param pageCount                         Reference in which to provide the \\a addresses buffer size, and\n *                                          to return the number of retired pages that match \\a cause\n *                                          Set to 0 to query the size without allocating an \\a addresses buffer\n * @param addresses                         Buffer to write the page addresses into\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pageCount was populated and \\a addresses was filled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a pageCount indicates the buffer is not large enough to store all the\n *                                             matching page addresses.  \\a pageCount is set to the needed size.\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a pageCount is NULL, \\a cause is invalid, or\n *                                             \\a addresses is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages(nvmlDevice_t device, nvmlPageRetirementCause_t cause,\n    unsigned int *pageCount, unsigned long long *addresses);\n\n/**\n * Returns the list of retired pages by source, including pages that are pending retirement\n * The address information provided from this API is the hardware address of the page that was retired.  Note\n * that this does not match the virtual address used in CUDA, but will match the address information in XID 63\n *\n * \\note nvmlDeviceGetRetiredPages_v2 adds an additional timestamps paramter to return the time of each page's\n *       retirement.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param cause                             Filter page addresses by cause of retirement\n * @param pageCount                         Reference in which to provide the \\a addresses buffer size, and\n *                                          to return the number of retired pages that match \\a cause\n *                                          Set to 0 to query the size without allocating an \\a addresses buffer\n * @param addresses                         Buffer to write the page addresses into\n * @param timestamps                        Buffer to write the timestamps of page retirement, additional for _v2\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pageCount was populated and \\a addresses was filled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a pageCount indicates the buffer is not large enough to store all the\n *                                             matching page addresses.  \\a pageCount is set to the needed size.\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a pageCount is NULL, \\a cause is invalid, or\n *                                             \\a addresses is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages_v2(nvmlDevice_t device, nvmlPageRetirementCause_t cause,\n    unsigned int *pageCount, unsigned long long *addresses, unsigned long long *timestamps);\n\n/**\n * Check if any pages are pending retirement and need a reboot to fully retire.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                            The identifier of the target device\n * @param isPending                         Reference in which to return the pending status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isPending was populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a isPending is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRetiredPagesPendingStatus(nvmlDevice_t device, nvmlEnableState_t *isPending);\n\n/**\n * Get number of remapped rows. The number of rows reported will be based on\n * the cause of the remapping. isPending indicates whether or not there are\n * pending remappings. A reset will be required to actually remap the row.\n * failureOccurred will be set if a row remapping ever failed in the past. A\n * pending remapping won't affect future work on the GPU since\n * error-containment and dynamic page blacklisting will take care of that.\n *\n * @note On MIG-enabled GPUs with active instances, querying the number of\n * remapped rows is not supported\n *\n * For newer than Volta &tm; fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param corrRows                             Reference for number of rows remapped due to correctable errors\n * @param uncRows                              Reference for number of rows remapped due to uncorrectable errors\n * @param isPending                            Reference for whether or not remappings are pending\n * @param failureOccurred                      Reference that is set when a remapping has failed in the past\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a corrRows, \\a uncRows, \\a isPending or \\a failureOccurred is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If MIG is enabled or if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           Unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRemappedRows(nvmlDevice_t device, unsigned int *corrRows, unsigned int *uncRows,\n                                               unsigned int *isPending, unsigned int *failureOccurred);\n\n/**\n * Get the row remapper histogram. Returns the remap availability for each bank\n * on the GPU.\n *\n * @param device                               Device handle\n * @param values                               Histogram values\n *\n * @return\n *        - \\ref NVML_SUCCESS                  On success\n *        - \\ref NVML_ERROR_UNKNOWN            On any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetRowRemapperHistogram(nvmlDevice_t device, nvmlRowRemapperHistogramValues_t *values);\n\n/**\n * Get architecture for device\n *\n * @param device                               The identifier of the target device\n * @param arch                                 Reference where architecture is returned, if call successful.\n *                                             Set to NVML_DEVICE_ARCH_* upon success\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device or \\a arch (output refererence) are invalid\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetArchitecture(nvmlDevice_t device, nvmlDeviceArchitecture_t *arch);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUnitCommands Unit Commands\n *  This chapter describes NVML operations that change the state of the unit. For S-class products.\n *  Each of these requires root/admin access. Non-admin users will see an NVML_ERROR_NO_PERMISSION\n *  error code when invoking any of these methods.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Set the LED state for the unit. The LED can be either green (0) or amber (1).\n *\n * For S-class products.\n * Requires root/admin permissions.\n *\n * This operation takes effect immediately.\n *\n *\n * <b>Current S-Class products don't provide unique LEDs for each unit. As such, both front\n * and back LEDs will be toggled in unison regardless of which unit is specified with this command.</b>\n *\n * See \\ref nvmlLedColor_t for available colors.\n *\n * @param unit                                 The identifier of the target unit\n * @param color                                The target LED color\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the LED color has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a unit or \\a color is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this is not an S-class product\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlUnitGetLedState()\n */\nnvmlReturn_t DECLDIR nvmlUnitSetLedState(nvmlUnit_t unit, nvmlLedColor_t color);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlDeviceCommands Device Commands\n *  This chapter describes NVML operations that change the state of the device.\n *  Each of these requires root/admin access. Non-admin users will see an NVML_ERROR_NO_PERMISSION\n *  error code when invoking any of these methods.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Set the persistence mode for the device.\n *\n * For all products.\n * For Linux only.\n * Requires root/admin permissions.\n *\n * The persistence mode determines whether the GPU driver software is torn down after the last client\n * exits.\n *\n * This operation takes effect immediately. It is not persistent across reboots. After each reboot the\n * persistence mode is reset to \"Disabled\".\n *\n * See \\ref nvmlEnableState_t for available modes.\n *\n * After calling this API with mode set to NVML_FEATURE_DISABLED on a device that has its own NUMA\n * memory, the given device handle will no longer be valid, and to continue to interact with this\n * device, a new handle should be obtained from one of the nvmlDeviceGetHandleBy*() APIs. This\n * limitation is currently only applicable to devices that have a coherent NVLink connection to\n * system memory.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target persistence mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the persistence mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetPersistenceMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t mode);\n\n/**\n * Set the compute mode for the device.\n *\n * For all products.\n * Requires root/admin permissions.\n *\n * The compute mode determines whether a GPU can be used for compute operations and whether it can\n * be shared across contexts.\n *\n * This operation takes effect immediately. Under Linux it is not persistent across reboots and\n * always resets to \"Default\". Under windows it is persistent.\n *\n * Under windows compute mode may only be set to DEFAULT when running in WDDM\n *\n * @note On MIG-enabled GPUs, compute mode would be set to DEFAULT and changing it is not supported.\n *\n * See \\ref nvmlComputeMode_t for details on available compute modes.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target compute mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the compute mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetComputeMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetComputeMode(nvmlDevice_t device, nvmlComputeMode_t mode);\n\n/**\n * Set the ECC mode for the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher.\n * Requires root/admin permissions.\n *\n * The ECC mode determines whether the GPU enables its ECC support.\n *\n * This operation takes effect after the next reboot.\n *\n * See \\ref nvmlEnableState_t for details on available modes.\n *\n * @param device                               The identifier of the target device\n * @param ecc                                  The target ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the ECC mode was set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a ecc is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetEccMode()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetEccMode(nvmlDevice_t device, nvmlEnableState_t ecc);\n\n/**\n * Clear the ECC error and other memory error counts for the device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Only applicable to devices with ECC.\n * Requires \\a NVML_INFOROM_ECC version 2.0 or higher to clear aggregate location-based ECC counts.\n * Requires \\a NVML_INFOROM_ECC version 1.0 or higher to clear all other ECC counts.\n * Requires root/admin permissions.\n * Requires ECC Mode to be enabled.\n *\n * Sets all of the specified ECC counters to 0, including both detailed and total counts.\n *\n * This operation takes effect immediately.\n *\n * See \\ref nvmlMemoryErrorType_t for details on available counter types.\n *\n * @param device                               The identifier of the target device\n * @param counterType                          Flag that indicates which type of errors should be cleared.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the error counts were cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a counterType is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see\n *      - nvmlDeviceGetDetailedEccErrors()\n *      - nvmlDeviceGetTotalEccErrors()\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts(nvmlDevice_t device, nvmlEccCounterType_t counterType);\n\n/**\n * Set the driver model for the device.\n *\n * For Fermi &tm; or newer fully supported devices.\n * For windows only.\n * Requires root/admin permissions.\n *\n * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached\n * to the device it must run in WDDM mode.\n *\n * It is possible to force the change to WDM (TCC) while the display is still attached with a force flag (nvmlFlagForce).\n * This should only be done if the host is subsequently powered down and the display is detached from the device\n * before the next reboot.\n *\n * This operation takes effect after the next reboot.\n *\n * Windows driver model may only be set to WDDM when running in DEFAULT compute mode.\n *\n * Change driver model to WDDM is not supported when GPU doesn't support graphics acceleration or\n * will not support it after reboot. See \\ref nvmlDeviceSetGpuOperationMode.\n *\n * See \\ref nvmlDriverModel_t for details on available driver models.\n * See \\ref nvmlFlagDefault and \\ref nvmlFlagForce\n *\n * @param device                               The identifier of the target device\n * @param driverModel                          The target driver model\n * @param flags                                Flags that change the default behavior\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the driver model has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a driverModel is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform is not windows or the device does not support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetDriverModel()\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetDriverModel(nvmlDevice_t device, nvmlDriverModel_t driverModel, unsigned int flags);\n\ntypedef enum nvmlClockLimitId_enum {\n    NVML_CLOCK_LIMIT_ID_RANGE_START = 0xffffff00,\n    NVML_CLOCK_LIMIT_ID_TDP,\n    NVML_CLOCK_LIMIT_ID_UNLIMITED\n} nvmlClockLimitId_t;\n\n/**\n * Set clocks that device will lock to.\n *\n * Sets the clocks that the device will be running at to the value in the range of minGpuClockMHz to maxGpuClockMHz.\n * Setting this will supercede application clock values and take effect regardless if a cuda app is running.\n * See /ref nvmlDeviceSetApplicationsClocks\n *\n * Can be used as a setting to request constant performance.\n *\n * This can be called with a pair of integer clock frequencies in MHz, or a pair of /ref nvmlClockLimitId_t values.\n * See the table below for valid combinations of these values.\n *\n * minGpuClock | maxGpuClock | Effect\n * ------------+-------------+--------------------------------------------------\n *     tdp     |     tdp     | Lock clock to TDP\n *  unlimited  |     tdp     | Upper bound is TDP but clock may drift below this\n *     tdp     |  unlimited  | Lower bound is TDP but clock may boost above this\n *  unlimited  |  unlimited  | Unlocked (== nvmlDeviceResetGpuLockedClocks)\n *\n * If one arg takes one of these values, the other must be one of these values as\n * well. Mixed numeric and symbolic calls return NVML_ERROR_INVALID_ARGUMENT.\n *\n * Requires root/admin permissions.\n *\n * After system reboot or driver reload applications clocks go back to their default value.\n * See \\ref nvmlDeviceResetGpuLockedClocks.\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param minGpuClockMHz                       Requested minimum gpu clock in MHz\n * @param maxGpuClockMHz                       Requested maximum gpu clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a minGpuClockMHz and \\a maxGpuClockMHz\n *                                                 is not a valid clock combination\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetGpuLockedClocks(nvmlDevice_t device, unsigned int minGpuClockMHz, unsigned int maxGpuClockMHz);\n\n/**\n * Resets the gpu clock to the default value\n *\n * This is the gpu clock that will be used after system reboot or driver reload.\n * Default values are idle clocks, but the current values can be changed using \\ref nvmlDeviceSetApplicationsClocks.\n *\n * @see nvmlDeviceSetGpuLockedClocks\n *\n * For Volta &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetGpuLockedClocks(nvmlDevice_t device);\n\n/**\n * Set clocks that applications will lock to.\n *\n * Sets the clocks that compute and graphics applications will be running at.\n * e.g. CUDA driver requests these clocks during context creation which means this property\n * defines clocks at which CUDA applications will be running unless some overspec event\n * occurs (e.g. over power, over thermal or external HW brake).\n *\n * Can be used as a setting to request constant performance.\n *\n * On Pascal and newer hardware, this will automatically disable automatic boosting of clocks.\n *\n * On K80 and newer Kepler and Maxwell GPUs, users desiring fixed performance should also call\n * \\ref nvmlDeviceSetAutoBoostedClocksEnabled to prevent clocks from automatically boosting\n * above the clock value being set.\n *\n * For Kepler &tm; or newer non-GeForce fully supported devices and Maxwell or newer GeForce devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetSupportedMemoryClocks and \\ref nvmlDeviceGetSupportedGraphicsClocks\n * for details on how to list available clocks combinations.\n *\n * After system reboot or driver reload applications clocks go back to their default value.\n * See \\ref nvmlDeviceResetApplicationsClocks.\n *\n * @param device                               The identifier of the target device\n * @param memClockMHz                          Requested memory clock in MHz\n * @param graphicsClockMHz                     Requested graphics clock in MHz\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if new settings were successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a memClockMHz and \\a graphicsClockMHz\n *                                                 is not a valid clock combination\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetApplicationsClocks(nvmlDevice_t device, unsigned int memClockMHz, unsigned int graphicsClockMHz);\n\n/**\n * Set new power limit of this device.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetPowerManagementLimitConstraints to check the allowed ranges of values.\n *\n * \\note Limit is not persistent across reboots or driver unloads.\n * Enable persistent mode to prevent driver from unloading when no application is using the device.\n *\n * @param device                               The identifier of the target device\n * @param limit                                Power management limit in milliwatts to set\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a limit has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a defaultLimit is out of range\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceGetPowerManagementLimitConstraints\n * @see nvmlDeviceGetPowerManagementDefaultLimit\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetPowerManagementLimit(nvmlDevice_t device, unsigned int limit);\n\n/**\n * Sets new GOM. See \\a nvmlGpuOperationMode_t for details.\n *\n * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.\n * Modes \\ref NVML_GOM_LOW_DP and \\ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.\n * Not supported on Quadro &reg; and Tesla &tm; C-class products.\n * Requires root/admin permissions.\n *\n * Changing GOMs requires a reboot.\n * The reboot requirement might be removed in the future.\n *\n * Compute only GOMs don't support graphics acceleration. Under windows switching to these GOMs when\n * pending driver model is WDDM is not supported. See \\ref nvmlDeviceSetDriverModel.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 Target GOM\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a mode incorrect\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support GOM or specific mode\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlGpuOperationMode_t\n * @see nvmlDeviceGetGpuOperationMode\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t mode);\n\n/**\n * Changes the root/admin restructions on certain APIs. See \\a nvmlRestrictedAPI_t for the list of supported APIs.\n * This method can be used by a root/admin user to give non-root/admin access to certain otherwise-restricted APIs.\n * The new setting lasts for the lifetime of the NVIDIA driver; it is not persistent. See \\a nvmlDeviceGetAPIRestriction\n * to query the current restriction settings.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @param device                               The identifier of the target device\n * @param apiType                              Target API type for this operation\n * @param isRestricted                         The target restriction\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isRestricted has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a apiType incorrect\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support changing API restrictions or the device does not support\n *                                                 the feature that api restrictions are being set for (E.G. Enabling/disabling auto\n *                                                 boosted clocks is not supported by the device)\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlRestrictedAPI_t\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted);\n\n/**\n * @}\n */\n\n/** @addtogroup nvmlAccountingStats\n *  @{\n */\n\n/**\n * Enables or disables per process accounting.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @note This setting is not persistent and will default to disabled after driver unloads.\n *       Enable persistence mode to be sure the setting doesn't switch off to disabled.\n *\n * @note Enabling accounting mode has no negative impact on the GPU performance.\n *\n * @note Disabling accounting clears all accounting pids information.\n *\n * @note On MIG-enabled GPUs, accounting mode would be set to DISABLED and changing it is not supported.\n *\n * See \\ref nvmlDeviceGetAccountingMode\n * See \\ref nvmlDeviceGetAccountingStats\n * See \\ref nvmlDeviceClearAccountingPids\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The target accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the new mode has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a mode are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetAccountingMode(nvmlDevice_t device, nvmlEnableState_t mode);\n\n/**\n * Clears accounting information about all processes that have already terminated.\n *\n * For Kepler &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * See \\ref nvmlDeviceGetAccountingMode\n * See \\ref nvmlDeviceGetAccountingStats\n * See \\ref nvmlDeviceSetAccountingMode\n *\n * @param device                               The identifier of the target device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if accounting information has been cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceClearAccountingPids(nvmlDevice_t device);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup NvLink NvLink Methods\n * This chapter describes methods that NVML can perform on NVLINK enabled devices.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves the state of the device's NvLink for the link specified\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param isActive                             \\a nvmlEnableState_t where NVML_FEATURE_ENABLED indicates that\n *                                             the link is active and NVML_FEATURE_DISABLED indicates it\n *                                             is inactive\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a isActive has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a isActive is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkState(nvmlDevice_t device, unsigned int link, nvmlEnableState_t *isActive);\n\n/**\n * Retrieves the version of the device's NvLink for the link specified\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param version                              Requested NvLink version\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a version is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkVersion(nvmlDevice_t device, unsigned int link, unsigned int *version);\n\n/**\n * Retrieves the requested capability from the device's NvLink for the link specified\n * Please refer to the \\a nvmlNvLinkCapability_t structure for the specific caps that can be queried\n * The return value should be treated as a boolean.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param capability                           Specifies the \\a nvmlNvLinkCapability_t to be queried\n * @param capResult                            A boolean for the queried capability indicating that feature is available\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a capResult has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a capability is invalid or \\a capResult is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkCapability(nvmlDevice_t device, unsigned int link,\n                                                   nvmlNvLinkCapability_t capability, unsigned int *capResult);\n\n/**\n * Retrieves the PCI information for the remote node on a NvLink link\n * Note: pciSubSystemId is not filled in this function and is indeterminate\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param pci                                  \\a nvmlPciInfo_t of the remote node for the specified link\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a pci has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid or \\a pci is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemotePciInfo_v2(nvmlDevice_t device, unsigned int link, nvmlPciInfo_t *pci);\n\n/**\n * Retrieves the specified error counter value\n * Please refer to \\a nvmlNvLinkErrorCounter_t for error counters that are available\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the NvLink counter to be queried\n * @param counterValue                         Returned counter value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a counter has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a counter is invalid or \\a counterValue is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkErrorCounter(nvmlDevice_t device, unsigned int link,\n                                                     nvmlNvLinkErrorCounter_t counter, unsigned long long *counterValue);\n\n/**\n * Resets all error counters to zero\n * Please refer to \\a nvmlNvLinkErrorCounter_t for the list of error counters that are reset\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the reset is successful\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a link is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetNvLinkErrorCounters(nvmlDevice_t device, unsigned int link);\n\n/**\n * Deprecated: Setting utilization counter control is no longer supported.\n *\n * Set the NVLINK utilization counter control information for the specified counter, 0 or 1.\n * Please refer to \\a nvmlNvLinkUtilizationControl_t for the structure definition.  Performs a reset\n * of the counters if the reset parameter is non-zero.\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param counter                              Specifies the counter that should be set (0 or 1).\n * @param link                                 Specifies the NvLink link to be queried\n * @param control                              A reference to the \\a nvmlNvLinkUtilizationControl_t to set\n * @param reset                                Resets the counters on set if non-zero\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the control has been set successfully\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, \\a link, or \\a control is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           nvmlNvLinkUtilizationControl_t *control, unsigned int reset);\n\n/**\n * Deprecated: Getting utilization counter control is no longer supported.\n *\n * Get the NVLINK utilization counter control information for the specified counter, 0 or 1.\n * Please refer to \\a nvmlNvLinkUtilizationControl_t for the structure definition\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param counter                              Specifies the counter that should be set (0 or 1).\n * @param link                                 Specifies the NvLink link to be queried\n * @param control                              A reference to the \\a nvmlNvLinkUtilizationControl_t to place information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the control has been set successfully\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, \\a link, or \\a control is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           nvmlNvLinkUtilizationControl_t *control);\n\n\n/**\n * Deprecated: Use \\ref nvmlDeviceGetFieldValues with NVML_FI_DEV_NVLINK_THROUGHPUT_* as field values instead.\n *\n * Retrieve the NVLINK utilization counter based on the current control for a specified counter.\n * In general it is good practice to use \\a nvmlDeviceSetNvLinkUtilizationControl\n *  before reading the utilization counters as they have no default state\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the counter that should be read (0 or 1).\n * @param rxcounter                            Receive counter return value\n * @param txcounter                            Transmit counter return value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a rxcounter and \\a txcounter have been successfully set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a counter, or \\a link is invalid or \\a rxcounter or \\a txcounter are NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationCounter(nvmlDevice_t device, unsigned int link, unsigned int counter,\n                                                           unsigned long long *rxcounter, unsigned long long *txcounter);\n\n/**\n * Deprecated: Freezing NVLINK utilization counters is no longer supported.\n *\n * Freeze the NVLINK utilization counters\n * Both the receive and transmit counters are operated on by this function\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be queried\n * @param counter                              Specifies the counter that should be frozen (0 or 1).\n * @param freeze                               NVML_FEATURE_ENABLED = freeze the receive and transmit counters\n *                                             NVML_FEATURE_DISABLED = unfreeze the receive and transmit counters\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully frozen or unfrozen\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, \\a counter, or \\a freeze is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceFreezeNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link,\n                                            unsigned int counter, nvmlEnableState_t freeze);\n\n/**\n * Deprecated: Resetting NVLINK utilization counters is no longer supported.\n *\n * Reset the NVLINK utilization counters\n * Both the receive and transmit counters are operated on by this function\n *\n * For Pascal &tm; or newer fully supported devices.\n *\n * @param device                               The identifier of the target device\n * @param link                                 Specifies the NvLink link to be reset\n * @param counter                              Specifies the counter that should be reset (0 or 1)\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a link, or \\a counter is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceResetNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link, unsigned int counter);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlEvents Event Handling Methods\n * This chapter describes methods that NVML can perform against each device to register and wait for\n * some event to occur.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Create an empty set of events.\n * Event set should be freed by \\ref nvmlEventSetFree\n *\n * For Fermi &tm; or newer fully supported devices.\n * @param set                                  Reference in which to return the event handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a set is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventSetFree\n */\nnvmlReturn_t DECLDIR nvmlEventSetCreate(nvmlEventSet_t *set);\n\n/**\n * Starts recording of events on a specified devices and add the events to specified \\ref nvmlEventSet_t\n *\n * For Fermi &tm; or newer fully supported devices.\n * Ecc events are available only on ECC enabled devices (see \\ref nvmlDeviceGetTotalEccErrors)\n * Power capping events are available only on Power Management enabled devices (see \\ref nvmlDeviceGetPowerManagementMode)\n *\n * For Linux only.\n *\n * \\b IMPORTANT: Operations on \\a set are not thread safe\n *\n * This call starts recording of events on specific device.\n * All events that occurred before this call are not recorded.\n * Checking if some event occurred can be done with \\ref nvmlEventSetWait_v2\n *\n * If function reports NVML_ERROR_UNKNOWN, event set is in undefined state and should be freed.\n * If function reports NVML_ERROR_NOT_SUPPORTED, event set can still be used. None of the requested eventTypes\n *     are registered in that case.\n *\n * @param device                               The identifier of the target device\n * @param eventTypes                           Bitmask of \\ref nvmlEventType to record\n * @param set                                  Set to which add new event types\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a eventTypes is invalid or \\a set is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the platform does not support this feature or some of requested event types\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceGetSupportedEventTypes\n * @see nvmlEventSetWait\n * @see nvmlEventSetFree\n */\nnvmlReturn_t DECLDIR nvmlDeviceRegisterEvents(nvmlDevice_t device, unsigned long long eventTypes, nvmlEventSet_t set);\n\n/**\n * Returns information about events supported on device\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * Events are not supported on Windows. So this function returns an empty mask in \\a eventTypes on Windows.\n *\n * @param device                               The identifier of the target device\n * @param eventTypes                           Reference in which to return bitmask of supported events\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the eventTypes has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a eventType is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes(nvmlDevice_t device, unsigned long long *eventTypes);\n\n/**\n * Waits on events and delivers events\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * If some events are ready to be delivered at the time of the call, function returns immediately.\n * If there are no events ready to be delivered, function sleeps till event arrives\n * but not longer than specified timeout. This function in certain conditions can return before\n * specified timeout passes (e.g. when interrupt arrives)\n *\n * On Windows, in case of xid error, the function returns the most recent xid error type seen by the system.\n * If there are multiple xid errors generated before nvmlEventSetWait is invoked then the last seen xid error\n * type is returned for all xid error events.\n *\n * On Linux, every xid error event would return the associated event data and other information if applicable.\n *\n * In MIG mode, if device handle is provided, the API reports all the events for the available instances,\n * only if the caller has appropriate privileges. In absence of required privileges, only the events which\n * affect all the instances (i.e. whole device) are reported.\n *\n * This API does not currently support per-instance event reporting using MIG device handles.\n *\n * @param set                                  Reference to set of events to wait on\n * @param data                                 Reference in which to return event data\n * @param timeoutms                            Maximum amount of wait time in milliseconds for registered event\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the data has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a data is NULL\n *         - \\ref NVML_ERROR_TIMEOUT           if no event arrived in specified timeout or interrupt arrived\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if a GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlEventType\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlEventSetWait_v2(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\n\n/**\n * Releases events in the set\n *\n * For Fermi &tm; or newer fully supported devices.\n *\n * @param set                                  Reference to events to be released\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the event has been successfully released\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlDeviceRegisterEvents\n */\nnvmlReturn_t DECLDIR nvmlEventSetFree(nvmlEventSet_t set);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlZPI Drain states\n * This chapter describes methods that NVML can perform against each device to control their drain state\n * and recognition by NVML and NVIDIA kernel driver. These methods can be used with out-of-band tools to\n * power on/off GPUs, enable robust reset scenarios, etc.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Modify the drain state of a GPU.  This method forces a GPU to no longer accept new incoming requests.\n * Any new NVML process will no longer see this GPU.  Persistence mode for this GPU must be turned off before\n * this call is made.\n * Must be called as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU drain state to be modified\n * @param newState                             The drain state that should be entered, see \\ref nvmlEnableState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex or \\a newState is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the calling process has insufficient permissions to perform operation\n *         - \\ref NVML_ERROR_IN_USE            if the device has persistence mode turned on\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceModifyDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t newState);\n\n/**\n * Query the drain state of a GPU.  This method is used to check if a GPU is in a currently draining\n * state.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU drain state to be queried\n * @param currentState                         The current drain state for this GPU, see \\ref nvmlEnableState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex or \\a currentState is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceQueryDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t *currentState);\n\n/**\n * This method will remove the specified GPU from the view of both NVML and the NVIDIA kernel driver\n * as long as no other processes are attached. If other processes are attached, this call will return\n * NVML_ERROR_IN_USE and the GPU will be returned to its original \"draining\" state. Note: the\n * only situation where a process can still be attached after nvmlDeviceModifyDrainState() is called\n * to initiate the draining state is if that process was using, and is still using, a GPU before the\n * call was made. Also note, persistence mode counts as an attachment to the GPU thus it must be disabled\n * prior to this call.\n *\n * For long-running NVML processes please note that this will change the enumeration of current GPUs.\n * For example, if there are four GPUs present and GPU1 is removed, the new enumeration will be 0-2.\n * Also, device handles after the removed GPU will not be valid and must be re-established.\n * Must be run as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI address of the GPU to be removed\n * @param gpuState                             Whether the GPU is to be removed, from the OS\n *                                             see \\ref nvmlDetachGpuState_t\n * @param linkState                            Requested upstream PCIe link state, see \\ref nvmlPcieLinkState_t\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a nvmlIndex is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device doesn't support this feature\n *         - \\ref NVML_ERROR_IN_USE            if the device is still in use and cannot be removed\n */\nnvmlReturn_t DECLDIR nvmlDeviceRemoveGpu_v2(nvmlPciInfo_t *pciInfo, nvmlDetachGpuState_t gpuState, nvmlPcieLinkState_t linkState);\n\n/**\n * Request the OS and the NVIDIA kernel driver to rediscover a portion of the PCI subsystem looking for GPUs that\n * were previously removed. The portion of the PCI tree can be narrowed by specifying a domain, bus, and device.\n * If all are zeroes then the entire PCI tree will be searched.  Please note that for long-running NVML processes\n * the enumeration will change based on how many GPUs are discovered and where they are inserted in bus order.\n *\n * In addition, all newly discovered GPUs will be initialized and their ECC scrubbed which may take several seconds\n * per GPU. Also, all device handles are no longer guaranteed to be valid post discovery.\n *\n * Must be run as administrator.\n * For Linux only.\n *\n * For Pascal &tm; or newer fully supported devices.\n * Some Kepler devices supported.\n *\n * @param pciInfo                              The PCI tree to be searched.  Only the domain, bus, and device\n *                                             fields are used in this call.\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if counters were successfully reset\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a pciInfo is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the operating system does not support this feature\n *         - \\ref NVML_ERROR_OPERATING_SYSTEM  if the operating system is denying this feature\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the calling process has insufficient permissions to perform operation\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceDiscoverGpus (nvmlPciInfo_t *pciInfo);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlFieldValueQueries Field Value Queries\n *  This chapter describes NVML operations that are associated with retrieving Field Values from NVML\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Request values for a list of fields for a device. This API allows multiple fields to be queried at once.\n * If any of the underlying fieldIds are populated by the same driver call, the results for those field IDs\n * will be populated from a single call rather than making a driver call for each fieldId.\n *\n * @param device                               The device handle of the GPU to request field values for\n * @param valuesCount                          Number of entries in values that should be retrieved\n * @param values                               Array of \\a valuesCount structures to hold field values.\n *                                             Each value's fieldId must be populated prior to this call\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if any values in \\a values were populated. Note that you must\n *                                             check the nvmlReturn field of each value for each individual\n *                                             status\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid or \\a values is NULL\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetFieldValues(nvmlDevice_t device, int valuesCount, nvmlFieldValue_t *values);\n\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup gridVirtual GRID Virtualization Enums, Constants and Structs\n *  @{\n */\n/** @} */\n/***************************************************************************************************/\n\n/***************************************************************************************************/\n/** @defgroup nvmlGridQueries GRID Virtualization APIs\n * This chapter describes operations that are associated with NVIDIA GRID products.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * This method is used to get the virtualization mode corresponding to the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                    Identifier of the target device\n * @param pVirtualMode              Reference to virtualization mode. One of NVML_GPU_VIRTUALIZATION_?\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a pVirtualMode is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a pVirtualMode is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t *pVirtualMode);\n\n/**\n * Queries if SR-IOV host operation is supported on a vGPU supported device.\n *\n * Checks whether SR-IOV host capability is supported by the device and the\n * driver, and indicates device is in SR-IOV mode if both of these conditions\n * are true.\n *\n * @param device                                The identifier of the target device\n * @param pHostVgpuMode                         Reference in which to return the current vGPU mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if device's vGPU mode has been successfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device handle is 0 or \\a pVgpuMode is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if \\a device doesn't support this feature.\n *         - \\ref NVML_ERROR_UNKNOWN            if any unexpected error occurred\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetHostVgpuMode(nvmlDevice_t device, nvmlHostVgpuMode_t *pHostVgpuMode);\n\n/**\n * This method is used to set the virtualization mode corresponding to the GPU.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                    Identifier of the target device\n * @param virtualMode               virtualization mode. One of NVML_GPU_VIRTUALIZATION_?\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a pVirtualMode is set\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid or \\a pVirtualMode is NULL\n *         - \\ref NVML_ERROR_GPU_IS_LOST        if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if setting of virtualization mode is not supported.\n *         - \\ref NVML_ERROR_NO_PERMISSION      if setting of virtualization mode is not allowed for this client.\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t virtualMode);\n\n/**\n * Retrieve the GRID licensable features.\n *\n * Identifies whether the system supports GRID Software Licensing. If it does, return the list of licensable feature(s)\n * and their current license status.\n *\n * @param device                    Identifier of the target device\n * @param pGridLicensableFeatures   Pointer to structure in which GRID licensable features are returned\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if licensable features are successfully retrieved\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a pGridLicensableFeatures is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures_v3(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\n\n/**\n * Retrieves the current utilization and process ID\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for processes running.\n * Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer pointed at\n * by \\a utilization. One utilization sample structure is returned per process running, that had some non-zero utilization\n * during the last sample period. It includes the CPU timestamp at which  the samples were recorded. Individual utilization values\n * are returned as \"unsigned int\" values.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilization set to NULL. The caller should allocate a buffer of size\n * processSamplesCount * sizeof(nvmlProcessUtilizationSample_t). Invoke the function again with the allocated buffer passed\n * in \\a utilization, and \\a processSamplesCount set to the number of entries the buffer is sized for.\n *\n * On successful return, the function updates \\a processSamplesCount with the number of process utilization sample\n * structures that were actually written. This may differ from a previously read value as instances are created or\n * destroyed.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @note On MIG-enabled GPUs, querying process utilization is not currently supported.\n *\n * @param device                    The identifier of the target device\n * @param utilization               Pointer to caller-supplied buffer in which guest process utilization samples are returned\n * @param processSamplesCount       Pointer to caller-supplied array size, and returns number of processes running\n * @param lastSeenTimeStamp         Return only samples with timestamp greater than lastSeenTimeStamp.\n\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a utilization has been populated\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a utilization is NULL, or \\a samplingPeriodUs is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetProcessUtilization(nvmlDevice_t device, nvmlProcessUtilizationSample_t *utilization,\n                                              unsigned int *processSamplesCount, unsigned long long lastSeenTimeStamp);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlVgpu GRID vGPU Management\n * @{\n *\n * This chapter describes APIs supporting NVIDIA GRID vGPU.\n */\n/***************************************************************************************************/\n\n/**\n * Retrieve the supported vGPU types on a physical GPU (device).\n *\n * An array of supported vGPU types for the physical GPU indicated by \\a device is returned in the caller-supplied buffer\n * pointed at by \\a vgpuTypeIds. The element count of nvmlVgpuTypeId_t array is passed in \\a vgpuCount, and \\a vgpuCount\n * is used to return the number of vGPU types written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \\a vgpuCount.\n * To query the number of vGPU types supported for the GPU, call this function with *vgpuCount = 0.\n * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are supported.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer to caller-supplied array size, and returns number of vGPU types\n * @param vgpuTypeIds              Pointer to caller-supplied array in which to return list of vGPU types\n *\n * @return\n *         - \\ref NVML_SUCCESS                      successful completion\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE      \\a vgpuTypeIds buffer is too small, array element count is returned in \\a vgpuCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a vgpuCount is NULL or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED          if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetSupportedVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);\n\n/**\n * Retrieve the currently creatable vGPU types on a physical GPU (device).\n *\n * An array of creatable vGPU types for the physical GPU indicated by \\a device is returned in the caller-supplied buffer\n * pointed at by \\a vgpuTypeIds. The element count of nvmlVgpuTypeId_t array is passed in \\a vgpuCount, and \\a vgpuCount\n * is used to return the number of vGPU types written to the buffer.\n *\n * The creatable vGPU types for a device may differ over time, as there may be restrictions on what type of vGPU types\n * can concurrently run on a device.  For example, if only one vGPU type is allowed at a time on a device, then the creatable\n * list will be restricted to whatever vGPU type is already running on the device.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \\a vgpuCount.\n * To query the number of vGPU types createable for the GPU, call this function with *vgpuCount = 0.\n * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are creatable.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer to caller-supplied array size, and returns number of vGPU types\n * @param vgpuTypeIds              Pointer to caller-supplied array in which to return list of vGPU types\n *\n * @return\n *         - \\ref NVML_SUCCESS                      successful completion\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE      \\a vgpuTypeIds buffer is too small, array element count is returned in \\a vgpuCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT       if \\a vgpuCount is NULL\n *         - \\ref NVML_ERROR_NOT_SUPPORTED          if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN                on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetCreatableVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);\n\n/**\n * Retrieve the class of a vGPU type. It will not exceed 64 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeClass            Pointer to string array to return class in\n * @param size                     Size of string\n *\n * @return\n *         - \\ref NVML_SUCCESS                   successful completion\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a vgpuTypeId is invalid, or \\a vgpuTypeClass is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetClass(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeClass, unsigned int *size);\n\n/**\n * Retrieve the vGPU type name.\n *\n * The name is an alphanumeric string that denotes a particular vGPU, e.g. GRID M60-2Q. It will not\n * exceed 64 characters in length (including the NUL terminator).  See \\ref\n * nvmlConstants::NVML_DEVICE_NAME_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeName             Pointer to buffer to return name\n * @param size                     Size of buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a name is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetName(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeName, unsigned int *size);\n\n/**\n * Retrieve the device ID of a vGPU type.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param deviceID                 Device ID and vendor ID of the device contained in single 32 bit value\n * @param subsystemID              Subsytem ID and subsytem vendor ID of the device contained in single 32 bit value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a deviceId or \\a subsystemID are NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetDeviceID(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *deviceID, unsigned long long *subsystemID);\n\n/**\n * Retrieve the vGPU framebuffer size in bytes.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param fbSize                   Pointer to framebuffer size in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a fbSize is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetFramebufferSize(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *fbSize);\n\n/**\n * Retrieve count of vGPU's supported display heads.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param numDisplayHeads          Pointer to number of display heads\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a numDisplayHeads is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetNumDisplayHeads(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *numDisplayHeads);\n\n/**\n * Retrieve vGPU display head's maximum supported resolution.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param displayIndex             Zero-based index of display head\n * @param xdim                     Pointer to maximum number of pixels in X dimension\n * @param ydim                     Pointer to maximum number of pixels in Y dimension\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a xdim or \\a ydim are NULL, or \\a displayIndex\n *                                             is out of range.\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetResolution(nvmlVgpuTypeId_t vgpuTypeId, unsigned int displayIndex, unsigned int *xdim, unsigned int *ydim);\n\n/**\n * Retrieve license requirements for a vGPU type\n *\n * The license type and version required to run the specified vGPU type is returned as an alphanumeric string, in the form\n * \"<license name>,<version>\", for example \"GRID-Virtual-PC,2.0\". If a vGPU is runnable with* more than one type of license,\n * the licenses are delimited by a semicolon, for example \"GRID-Virtual-PC,2.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0\".\n *\n * The total length of the returned string will not exceed 128 characters, including the NUL terminator.\n * See \\ref nvmlVgpuConstants::NVML_GRID_LICENSE_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuTypeLicenseString    Pointer to buffer to return license info\n * @param size                     Size of \\a vgpuTypeLicenseString buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a vgpuTypeLicenseString is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetLicense(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeLicenseString, unsigned int size);\n\n/**\n * Retrieve the static frame rate limit value of the vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param frameRateLimit           Reference to return the frame rate limit value\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if frame rate limiter is turned off for the vGPU type\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a frameRateLimit is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetFrameRateLimit(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *frameRateLimit);\n\n/**\n * Retrieve the maximum number of vGPU instances creatable on a device for given vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                   The identifier of the target device\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuInstanceCount        Pointer to get the max number of vGPU instances\n *                                 that can be created on a deicve for given vgpuTypeId\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid or is not supported on target device,\n *                                             or \\a vgpuInstanceCount is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstances(nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCount);\n\n/**\n * Retrieve the maximum number of vGPU instances supported per VM for given vGPU type\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuTypeId               Handle to vGPU type\n * @param vgpuInstanceCountPerVm   Pointer to get the max number of vGPU instances supported per VM for given \\a vgpuTypeId\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuTypeId is invalid, or \\a vgpuInstanceCountPerVm is NULL\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstancesPerVm(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCountPerVm);\n\n/**\n * Retrieve the active vGPU instances on a device.\n *\n * An array of active vGPU instances is returned in the caller-supplied buffer pointed at by \\a vgpuInstances. The\n * array elememt count is passed in \\a vgpuCount, and \\a vgpuCount is used to return the number of vGPU instances\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the vGPU instance array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuInstance_t array required in \\a vgpuCount.\n * To query the number of active vGPU instances, call this function with *vgpuCount = 0.  The code will return\n * NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU Types are supported.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param device                   The identifier of the target device\n * @param vgpuCount                Pointer which passes in the array size as well as get\n *                                 back the number of types\n * @param vgpuInstances            Pointer to array in which to return list of vGPU instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                  successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a device is invalid, or \\a vgpuCount is NULL\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a size is too small\n *         - \\ref NVML_ERROR_NOT_SUPPORTED      if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetActiveVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuInstance_t *vgpuInstances);\n\n/**\n * Retrieve the VM ID associated with a vGPU instance.\n *\n * The VM ID is returned as a string, not exceeding 80 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * The format of the VM ID varies by platform, and is indicated by the type identifier returned in \\a vmIdType.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param vmId                     Pointer to caller-supplied buffer to hold VM ID\n * @param size                     Size of buffer in bytes\n * @param vmIdType                 Pointer to hold VM ID type\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vmId or \\a vmIdType is NULL, or \\a vgpuInstance is 0\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmID(nvmlVgpuInstance_t vgpuInstance, char *vmId, unsigned int size, nvmlVgpuVmIdType_t *vmIdType);\n\n/**\n * Retrieve the UUID of a vGPU instance.\n *\n * The UUID is a globally unique identifier associated with the vGPU, and is returned as a 5-part hexadecimal string,\n * not exceeding 80 characters in length (including the NULL terminator).\n * See \\ref nvmlConstants::NVML_DEVICE_UUID_BUFFER_SIZE.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param uuid                     Pointer to caller-supplied buffer to hold vGPU UUID\n * @param size                     Size of buffer in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a uuid is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a size is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetUUID(nvmlVgpuInstance_t vgpuInstance, char *uuid, unsigned int size);\n\n/**\n * Retrieve the NVIDIA driver version installed in the VM associated with a vGPU.\n *\n * The version is returned as an alphanumeric string in the caller-supplied buffer \\a version. The length of the version\n * string will not exceed 80 characters in length (including the NUL terminator).\n * See \\ref nvmlConstants::NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE.\n *\n * nvmlVgpuInstanceGetVmDriverVersion() may be called at any time for a vGPU instance. The guest VM driver version is\n * returned as \"Not Available\" if no NVIDIA driver is installed in the VM, or the VM has not yet booted to the point where the\n * NVIDIA driver is loaded and initialized.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param version                  Caller-supplied buffer to return driver version string\n * @param length                   Size of \\a version buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a version has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a length is too small\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmDriverVersion(nvmlVgpuInstance_t vgpuInstance, char* version, unsigned int length);\n\n/**\n * Retrieve the framebuffer usage in bytes.\n *\n * Framebuffer usage is the amont of vGPU framebuffer memory that is currently in use by the VM.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             The identifier of the target instance\n * @param fbUsage                  Pointer to framebuffer usage in bytes\n *\n * @return\n *         - \\ref NVML_SUCCESS                 successful completion\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a fbUsage is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFbUsage(nvmlVgpuInstance_t vgpuInstance, unsigned long long *fbUsage);\n\n/**\n * Retrieve the current licensing state of the vGPU instance.\n *\n * If the vGPU is currently licensed, \\a licensed is set to 1, otherwise it is set to 0.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param licensed                 Reference to return the licensing status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a licensed has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a licensed is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetLicenseStatus(nvmlVgpuInstance_t vgpuInstance, unsigned int *licensed);\n\n/**\n * Retrieve the vGPU type of a vGPU instance.\n *\n * Returns the vGPU type ID of vgpu assigned to the vGPU instance.\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param vgpuTypeId               Reference to return the vgpuTypeId\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a vgpuTypeId has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a vgpuTypeId is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetType(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuTypeId_t *vgpuTypeId);\n\n/**\n * Retrieve the frame rate limit set for the vGPU instance.\n *\n * Returns the value of the frame rate limit set for the vGPU instance\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param frameRateLimit           Reference to return the frame rate limit\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a frameRateLimit has been set\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if frame rate limiter is turned off for the vGPU type\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a frameRateLimit is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFrameRateLimit(nvmlVgpuInstance_t vgpuInstance, unsigned int *frameRateLimit);\n\n/**\n * Retrieve the current ECC mode of vGPU instance.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param eccMode                 Reference in which to return the current ECC mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the vgpuInstance's ECC mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEccMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *eccMode);\n\n/**\n * Retrieve the encoder capacity of a vGPU instance, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param encoderCapacity          Reference to an unsigned int for the encoder capacity\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a encoderCapacity has been retrived\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a encoderQueryType is invalid\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int *encoderCapacity);\n\n/**\n * Set the encoder capacity of a vGPU instance, as a percentage of maximum encoder capacity with valid values in the range 0-100.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance             Identifier of the target vGPU instance\n * @param encoderCapacity          Unsigned int for the encoder capacity value\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a encoderCapacity has been set\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a encoderCapacity is out of range of 0-100.\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceSetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int  encoderCapacity);\n\n/**\n * Retrieves the current encoder statistics of a vGPU Instance\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance                      Identifier of the target vGPU instance\n * @param sessionCount                      Reference to an unsigned int for count of active encoder sessions\n * @param averageFps                        Reference to an unsigned int for trailing average FPS of all active sessions\n * @param averageLatency                    Reference to an unsigned int for encode latency in microseconds\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionCount, \\a averageFps and \\a averageLatency is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount , or \\a averageFps or \\a averageLatency is NULL\n *                                              or \\a vgpuInstance is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderStats(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount,\n                                                     unsigned int *averageFps, unsigned int *averageLatency);\n\n/**\n * Retrieves information about all active encoder sessions on a vGPU Instance.\n *\n * An array of active encoder sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n * array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n * written to the buffer.\n *\n * If the supplied buffer is not large enough to accomodate the active session array, the function returns\n * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \\a sessionCount.\n * To query the number of active encoder sessions, call this function with *sessionCount = 0. The code will return\n * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance                      Identifier of the target vGPU instance\n * @param sessionCount                      Reference to caller supplied array size, and returns\n *                                          the number of sessions.\n * @param sessionInfo                       Reference to caller supplied array in which the list\n *                                          of session information us returned.\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n *         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is\n                                                returned in \\a sessionCount\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a sessionCount is NULL, or \\a vgpuInstance is 0.\n *         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfo);\n\n/**\n* Retrieves the active frame buffer capture sessions statistics of a vGPU Instance\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @param vgpuInstance                      Identifier of the target vGPU instance\n* @param fbcStats                          Reference to nvmlFBCStats_t structure contianing NvFBC stats\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a fbcStats is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a vgpuInstance is 0, or \\a fbcStats is NULL\n*         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCStats(nvmlVgpuInstance_t vgpuInstance, nvmlFBCStats_t *fbcStats);\n\n/**\n* Retrieves information about active frame buffer capture sessions on a vGPU Instance.\n*\n* An array of active FBC sessions is returned in the caller-supplied buffer pointed at by \\a sessionInfo. The\n* array element count is passed in \\a sessionCount, and \\a sessionCount is used to return the number of sessions\n* written to the buffer.\n*\n* If the supplied buffer is not large enough to accomodate the active session array, the function returns\n* NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \\a sessionCount.\n* To query the number of active FBC sessions, call this function with *sessionCount = 0.  The code will return\n* NVML_SUCCESS with number of active FBC sessions updated in *sessionCount.\n*\n* For Maxwell &tm; or newer fully supported devices.\n*\n* @note hResolution, vResolution, averageFPS and averageLatency data for a FBC session returned in \\a sessionInfo may\n*       be zero if there are no new frames captured since the session started.\n*\n* @param vgpuInstance                      Identifier of the target vGPU instance\n* @param sessionCount                      Reference to caller supplied array size, and returns the number of sessions.\n* @param sessionInfo                       Reference in which to return the session information\n*\n* @return\n*         - \\ref NVML_SUCCESS                  if \\a sessionInfo is fetched\n*         - \\ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized\n*         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a vgpuInstance is 0, or \\a sessionCount is NULL.\n*         - \\ref NVML_ERROR_NOT_FOUND          if \\a vgpuInstance does not match a valid active vGPU instance on the system\n*         - \\ref NVML_ERROR_INSUFFICIENT_SIZE  if \\a sessionCount is too small, array element count is returned in \\a sessionCount\n*         - \\ref NVML_ERROR_UNKNOWN            on any unexpected error\n*/\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvml GRID Virtualization Migration\n * This chapter describes operations that are associated with vGPU Migration.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Structure representing range of vGPU versions.\n */\ntypedef struct nvmlVgpuVersion_st\n{\n    unsigned int minVersion; //!< Minimum vGPU version.\n    unsigned int maxVersion; //!< Maximum vGPU version.\n} nvmlVgpuVersion_t;\n\n/**\n * vGPU metadata structure.\n */\ntypedef struct nvmlVgpuMetadata_st\n{\n    unsigned int             version;                                                    //!< Current version of the structure\n    unsigned int             revision;                                                   //!< Current revision of the structure\n    nvmlVgpuGuestInfoState_t guestInfoState;                                             //!< Current state of Guest-dependent fields\n    char                     guestDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE]; //!< Version of driver installed in guest\n    char                     hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];  //!< Version of driver installed in host\n    unsigned int             reserved[6];                                                //!< Reserved for internal use\n    unsigned int             vgpuVirtualizationCaps;                                     //!< vGPU virtualizaion capabilities bitfileld\n    unsigned int             guestVgpuVersion;                                           //!< vGPU version of guest driver\n    unsigned int             opaqueDataSize;                                             //!< Size of opaque data field in bytes\n    char                     opaqueData[4];                                              //!< Opaque data\n} nvmlVgpuMetadata_t;\n\n/**\n * Physical GPU metadata structure\n */\ntypedef struct nvmlVgpuPgpuMetadata_st\n{\n    unsigned int            version;                                                    //!< Current version of the structure\n    unsigned int            revision;                                                   //!< Current revision of the structure\n    char                    hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];  //!< Host driver version\n    unsigned int            pgpuVirtualizationCaps;                                     //!< Pgpu virtualizaion capabilities bitfileld\n    unsigned int            reserved[5];                                                //!< Reserved for internal use\n    nvmlVgpuVersion_t       hostSupportedVgpuRange;                                     //!< vGPU version range supported by host driver\n    unsigned int            opaqueDataSize;                                             //!< Size of opaque data field in bytes\n    char                    opaqueData[4];                                              //!< Opaque data\n} nvmlVgpuPgpuMetadata_t;\n\n/**\n * vGPU VM compatibility codes\n */\ntypedef enum nvmlVgpuVmCompatibility_enum\n{\n    NVML_VGPU_VM_COMPATIBILITY_NONE         = 0x0,    //!< vGPU is not runnable\n    NVML_VGPU_VM_COMPATIBILITY_COLD         = 0x1,    //!< vGPU is runnable from a cold / powered-off state (ACPI S5)\n    NVML_VGPU_VM_COMPATIBILITY_HIBERNATE    = 0x2,    //!< vGPU is runnable from a hibernated state (ACPI S4)\n    NVML_VGPU_VM_COMPATIBILITY_SLEEP        = 0x4,    //!< vGPU is runnable from a sleeped state (ACPI S3)\n    NVML_VGPU_VM_COMPATIBILITY_LIVE         = 0x8,    //!< vGPU is runnable from a live/paused (ACPI S0)\n} nvmlVgpuVmCompatibility_t;\n\n/**\n *  vGPU-pGPU compatibility limit codes\n */\ntypedef enum nvmlVgpuPgpuCompatibilityLimitCode_enum\n{\n    NVML_VGPU_COMPATIBILITY_LIMIT_NONE          = 0x0,           //!< Compatibility is not limited.\n    NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER   = 0x1,           //!< ompatibility is limited by host driver version.\n    NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER  = 0x2,           //!< Compatibility is limited by guest driver version.\n    NVML_VGPU_COMPATIBILITY_LIMIT_GPU           = 0x4,           //!< Compatibility is limited by GPU hardware.\n    NVML_VGPU_COMPATIBILITY_LIMIT_OTHER         = 0x80000000,    //!< Compatibility is limited by an undefined factor.\n} nvmlVgpuPgpuCompatibilityLimitCode_t;\n\n/**\n * vGPU-pGPU compatibility structure\n */\ntypedef struct nvmlVgpuPgpuCompatibility_st\n{\n    nvmlVgpuVmCompatibility_t               vgpuVmCompatibility;    //!< Compatibility of vGPU VM. See \\ref nvmlVgpuVmCompatibility_t\n    nvmlVgpuPgpuCompatibilityLimitCode_t    compatibilityLimitCode; //!< Limiting factor for vGPU-pGPU compatibility. See \\ref nvmlVgpuPgpuCompatibilityLimitCode_t\n} nvmlVgpuPgpuCompatibility_t;\n\n/**\n * Returns vGPU metadata structure for a running vGPU. The structure contains information about the vGPU and its associated VM\n * such as the currently installed NVIDIA guest driver version, together with host driver version and an opaque data section\n * containing internal state.\n *\n * nvmlVgpuInstanceGetMetadata() may be called at any time for a vGPU instance. Some fields in the returned structure are\n * dependent on information obtained from the guest VM, which may not yet have reached a state where that information\n * is available. The current state of these dependent fields is reflected in the info structure's \\ref nvmlVgpuGuestInfoState_t field.\n *\n * The VMM may choose to read and save the vGPU's VM info as persistent metadata associated with the VM, and provide\n * it to GRID Virtual GPU Manager when creating a vGPU for subsequent instances of the VM.\n *\n * The caller passes in a buffer via \\a vgpuMetadata, with the size of the buffer in \\a bufferSize. If the vGPU Metadata structure\n * is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param vgpuInstance             vGPU instance handle\n * @param vgpuMetadata             Pointer to caller-supplied buffer into which vGPU metadata is written\n * @param bufferSize               Size of vgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   vgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a vgpuInstance is 0; if \\a vgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_FOUND           if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetMetadata(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuMetadata_t *vgpuMetadata, unsigned int *bufferSize);\n\n/**\n * Returns a vGPU metadata structure for the physical GPU indicated by \\a device. The structure contains information about\n * the GPU and the currently installed NVIDIA host driver version that's controlling it, together with an opaque data section\n * containing internal state.\n *\n * The caller passes in a buffer via \\a pgpuMetadata, with the size of the buffer in \\a bufferSize. If the \\a pgpuMetadata\n * structure is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param device                The identifier of the target device\n * @param pgpuMetadata          Pointer to caller-supplied buffer into which \\a pgpuMetadata is written\n * @param bufferSize            Pointer to size of \\a pgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   GPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   pgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a device is invalid; if \\a pgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       vGPU is not supported by the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata(nvmlDevice_t device, nvmlVgpuPgpuMetadata_t *pgpuMetadata, unsigned int *bufferSize);\n\n/**\n * Takes a vGPU instance metadata structure read from \\ref nvmlVgpuInstanceGetMetadata(), and a vGPU metadata structure for a\n * physical GPU read from \\ref nvmlDeviceGetVgpuMetadata(), and returns compatibility information of the vGPU instance and the\n * physical GPU.\n *\n * The caller passes in a buffer via \\a compatibilityInfo, into which a compatibility information structure is written. The\n * structure defines the states in which the vGPU / VM may be booted on the physical GPU. If the vGPU / VM compatibility\n * with the physical GPU is limited, a limit code indicates the factor limiting compability.\n * (see \\ref nvmlVgpuPgpuCompatibilityLimitCode_t for details).\n *\n * Note: vGPU compatibility does not take into account dynamic capacity conditions that may limit a system's ability to\n *       boot a given vGPU or associated VM.\n *\n * @param vgpuMetadata          Pointer to caller-supplied vGPU metadata structure\n * @param pgpuMetadata          Pointer to caller-supplied GPU metadata structure\n * @param compatibilityInfo     Pointer to caller-supplied buffer to hold compatibility info\n *\n * @return\n *         - \\ref NVML_SUCCESS                   vGPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a vgpuMetadata or \\a pgpuMetadata or \\a bufferSize are NULL\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlGetVgpuCompatibility(nvmlVgpuMetadata_t *vgpuMetadata, nvmlVgpuPgpuMetadata_t *pgpuMetadata, nvmlVgpuPgpuCompatibility_t *compatibilityInfo);\n\n/**\n * Returns the properties of the physical GPU indicated by the device in an ascii-encoded string format.\n *\n * The caller passes in a buffer via \\a pgpuMetadata, with the size of the buffer in \\a bufferSize. If the\n * string is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed\n * in \\a bufferSize.\n *\n * @param device                The identifier of the target device\n * @param pgpuMetadata          Pointer to caller-supplied buffer into which \\a pgpuMetadata is written\n * @param bufferSize            Pointer to size of \\a pgpuMetadata buffer\n *\n * @return\n *         - \\ref NVML_SUCCESS                   GPU metadata structure was successfully returned\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE   \\a pgpuMetadata buffer is too small, required size is returned in \\a bufferSize\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT    if \\a bufferSize is NULL or \\a device is invalid; if \\a pgpuMetadata is NULL and the value of \\a bufferSize is not 0.\n *         - \\ref NVML_ERROR_NOT_SUPPORTED       if vGPU is not supported by the system\n *         - \\ref NVML_ERROR_UNKNOWN             on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetPgpuMetadataString(nvmlDevice_t device, char *pgpuMetadata, unsigned int *bufferSize);\n\n/*\n * Virtual GPU (vGPU) version\n *\n * The NVIDIA vGPU Manager and the guest drivers are tagged with a range of supported vGPU versions. This determines the range of NVIDIA guest driver versions that\n * are compatible for vGPU feature support with a given NVIDIA vGPU Manager. For vGPU feature support, the range of supported versions for the NVIDIA vGPU Manager\n * and the guest driver must overlap. Otherwise, the guest driver fails to load in the VM.\n *\n * When the NVIDIA guest driver loads, either when the VM is booted or when the driver is installed or upgraded, a negotiation occurs between the guest driver\n * and the NVIDIA vGPU Manager to select the highest mutually compatible vGPU version. The negotiated vGPU version stays the same across VM migration.\n */\n\n/**\n * Query the ranges of supported vGPU versions.\n *\n * This function gets the linear range of supported vGPU versions that is preset for the NVIDIA vGPU Manager and the range set by an administrator.\n * If the preset range has not been overridden by \\ref nvmlSetVgpuVersion, both ranges are the same.\n *\n * The caller passes pointers to the following \\ref nvmlVgpuVersion_t structures, into which the NVIDIA vGPU Manager writes the ranges:\n * 1. \\a supported structure that represents the preset range of vGPU versions supported by the NVIDIA vGPU Manager.\n * 2. \\a current structure that represents the range of supported vGPU versions set by an administrator. By default, this range is the same as the preset range.\n *\n * @param supported  Pointer to the structure in which the preset range of vGPU versions supported by the NVIDIA vGPU Manager is written\n * @param current    Pointer to the structure in which the range of supported vGPU versions set by an administrator is written\n *\n * @return\n * - \\ref NVML_SUCCESS                 The vGPU version range structures were successfully obtained.\n * - \\ref NVML_ERROR_NOT_SUPPORTED     The API is not supported.\n * - \\ref NVML_ERROR_INVALID_ARGUMENT  The \\a supported parameter or the \\a current parameter is NULL.\n * - \\ref NVML_ERROR_UNKNOWN           An error occurred while the data was being fetched.\n */\nnvmlReturn_t DECLDIR nvmlGetVgpuVersion(nvmlVgpuVersion_t *supported, nvmlVgpuVersion_t *current);\n\n/**\n * Override the preset range of vGPU versions supported by the NVIDIA vGPU Manager with a range set by an administrator.\n *\n * This function configures the NVIDIA vGPU Manager with a range of supported vGPU versions set by an administrator. This range must be a subset of the\n * preset range that the NVIDIA vGPU Manager supports. The custom range set by an administrator takes precedence over the preset range and is advertised to\n * the guest VM for negotiating the vGPU version. See \\ref nvmlGetVgpuVersion for details of how to query the preset range of versions supported.\n *\n * This function takes a pointer to vGPU version range structure \\ref nvmlVgpuVersion_t as input to override the preset vGPU version range that the NVIDIA vGPU Manager supports.\n *\n * After host system reboot or driver reload, the range of supported versions reverts to the range that is preset for the NVIDIA vGPU Manager.\n *\n * @note 1. The range set by the administrator must be a subset of the preset range that the NVIDIA vGPU Manager supports. Otherwise, an error is returned.\n *       2. If the range of supported guest driver versions does not overlap the range set by the administrator, the guest driver fails to load.\n *       3. If the range of supported guest driver versions overlaps the range set by the administrator, the guest driver will load with a negotiated\n *          vGPU version that is the maximum value in the overlapping range.\n *       4. No VMs must be running on the host when this function is called. If a VM is running on the host, the call to this function fails.\n *\n * @param vgpuVersion   Pointer to a caller-supplied range of supported vGPU versions.\n *\n * @return\n * - \\ref NVML_SUCCESS                 The preset range of supported vGPU versions was successfully overridden.\n * - \\ref NVML_ERROR_NOT_SUPPORTED     The API is not supported.\n * - \\ref NVML_ERROR_IN_USE            The range was not overridden because a VM is running on the host.\n * - \\ref NVML_ERROR_INVALID_ARGUMENT  The \\a vgpuVersion parameter specifies a range that is outside the range supported by the NVIDIA vGPU Manager or if \\a vgpuVersion is NULL.\n */\nnvmlReturn_t DECLDIR nvmlSetVgpuVersion(nvmlVgpuVersion_t *vgpuVersion);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlUtil GRID Virtualization Utilization and Accounting\n * This chapter describes operations that are associated with vGPU Utilization and Accounting.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Retrieves current utilization for vGPUs on a physical GPU (device).\n *\n * For Kepler &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for vGPU instances running\n * on a device. Utilization values are returned as an array of utilization sample structures in the caller-supplied buffer\n * pointed at by \\a utilizationSamples. One utilization sample structure is returned per vGPU instance, and includes the\n * CPU timestamp at which the samples were recorded. Individual utilization values are returned as \"unsigned int\" values\n * in nvmlValue_t unions. The function sets the caller-supplied \\a sampleValType to NVML_VALUE_TYPE_UNSIGNED_INT to\n * indicate the returned value type.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilizationSamples set to NULL. The function will return NVML_ERROR_INSUFFICIENT_SIZE, with the current vGPU instance\n * count in \\a vgpuInstanceSamplesCount, or NVML_SUCCESS if the current vGPU instance count is zero. The caller should allocate\n * a buffer of size vgpuInstanceSamplesCount * sizeof(nvmlVgpuInstanceUtilizationSample_t). Invoke the function again with\n * the allocated buffer passed in \\a utilizationSamples, and \\a vgpuInstanceSamplesCount set to the number of entries the\n * buffer is sized for.\n *\n * On successful return, the function updates \\a vgpuInstanceSampleCount with the number of vGPU utilization sample\n * structures that were actually written. This may differ from a previously read value as vGPU instances are created or\n * destroyed.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @param device                        The identifier for the target device\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param sampleValType                 Pointer to caller-supplied buffer to hold the type of returned sample values\n * @param vgpuInstanceSamplesCount      Pointer to caller-supplied array size, and returns number of vGPU instances\n * @param utilizationSamples            Pointer to caller-supplied buffer in which vGPU utilization samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if utilization samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a vgpuInstanceSamplesCount or \\a sampleValType is\n *                                             NULL, or a sample count of 0 is passed with a non-NULL \\a utilizationSamples\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if supplied \\a vgpuInstanceSamplesCount is too small to return samples for all\n *                                             vGPU instances currently executing on the device\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,\n                                                  nvmlValueType_t *sampleValType, unsigned int *vgpuInstanceSamplesCount,\n                                                  nvmlVgpuInstanceUtilizationSample_t *utilizationSamples);\n\n/**\n * Retrieves current utilization for processes running on vGPUs on a physical GPU (device).\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Reads recent utilization of GPU SM (3D/Compute), framebuffer, video encoder, and video decoder for processes running on\n * vGPU instances active on a device. Utilization values are returned as an array of utilization sample structures in the\n * caller-supplied buffer pointed at by \\a utilizationSamples. One utilization sample structure is returned per process running\n * on vGPU instances, that had some non-zero utilization during the last sample period. It includes the CPU timestamp at which\n * the samples were recorded. Individual utilization values are returned as \"unsigned int\" values.\n *\n * To read utilization values, first determine the size of buffer required to hold the samples by invoking the function with\n * \\a utilizationSamples set to NULL. The function will return NVML_ERROR_INSUFFICIENT_SIZE, with the current vGPU instance\n * count in \\a vgpuProcessSamplesCount. The caller should allocate a buffer of size\n * vgpuProcessSamplesCount * sizeof(nvmlVgpuProcessUtilizationSample_t). Invoke the function again with\n * the allocated buffer passed in \\a utilizationSamples, and \\a vgpuProcessSamplesCount set to the number of entries the\n * buffer is sized for.\n *\n * On successful return, the function updates \\a vgpuSubProcessSampleCount with the number of vGPU sub process utilization sample\n * structures that were actually written. This may differ from a previously read value depending on the number of processes that are active\n * in any given sample period.\n *\n * lastSeenTimeStamp represents the CPU timestamp in microseconds at which utilization samples were last read. Set it to 0\n * to read utilization based on all the samples maintained by the driver's internal sample buffer. Set lastSeenTimeStamp\n * to a timeStamp retrieved from a previous query to read utilization since the previous query.\n *\n * @param device                        The identifier for the target device\n * @param lastSeenTimeStamp             Return only samples with timestamp greater than lastSeenTimeStamp.\n * @param vgpuProcessSamplesCount       Pointer to caller-supplied array size, and returns number of processes running on vGPU instances\n * @param utilizationSamples            Pointer to caller-supplied buffer in which vGPU sub process utilization samples are returned\n\n * @return\n *         - \\ref NVML_SUCCESS                 if utilization samples are successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device is invalid, \\a vgpuProcessSamplesCount or a sample count of 0 is\n *                                             passed with a non-NULL \\a utilizationSamples\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if supplied \\a vgpuProcessSamplesCount is too small to return samples for all\n *                                             vGPU instances currently executing on the device\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if vGPU is not supported by the device\n *         - \\ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible\n *         - \\ref NVML_ERROR_NOT_FOUND         if sample entries are not found\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetVgpuProcessUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,\n                                                         unsigned int *vgpuProcessSamplesCount,\n                                                         nvmlVgpuProcessUtilizationSample_t *utilizationSamples);\n/**\n * Queries the state of per process accounting mode on vGPU.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param mode                    Reference in which to return the current accounting mode\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if the mode has been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a mode is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature\n *         - \\ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running on the vGPU instance\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *mode);\n\n/**\n * Queries list of processes running on vGPU that can be queried for accounting stats. The list of processes\n * returned can be in running or terminated state.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * To just query the maximum number of processes that can be queried, call this function with *count = 0 and\n * pids=NULL. The return code will be NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if list is empty.\n *\n * For more details see \\ref nvmlVgpuInstanceGetAccountingStats.\n *\n * @note In case of PID collision some processes might not be accessible before the circular buffer is full.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param count                   Reference in which to provide the \\a pids array size, and\n *                                to return the number of elements ready to be queried\n * @param pids                    Reference in which to return list of process ids\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if pids were successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a count is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_INSUFFICIENT_SIZE if \\a count is too small (\\a count is set to expected value)\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n *\n * @see nvmlVgpuInstanceGetAccountingPids\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingPids(nvmlVgpuInstance_t vgpuInstance, unsigned int *count, unsigned int *pids);\n\n/**\n * Queries process's accounting stats.\n *\n * For Maxwell &tm; or newer fully supported devices.\n *\n * Accounting stats capture GPU utilization and other statistics across the lifetime of a process, and\n * can be queried during life time of the process or after its termination.\n * The time field in \\ref nvmlAccountingStats_t is reported as 0 during the lifetime of the process and\n * updated to actual running time after its termination.\n * Accounting stats are kept in a circular buffer, newly created processes overwrite information about old\n * processes.\n *\n * See \\ref nvmlAccountingStats_t for description of each returned metric.\n * List of processes that can be queried can be retrieved from \\ref nvmlVgpuInstanceGetAccountingPids.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlVgpuInstanceGetAccountingMode.\n * @note Only compute and graphics applications stats can be queried. Monitoring applications stats can't be\n *         queried since they don't contribute to GPU utilization.\n * @note In case of pid collision stats of only the latest process (that terminated last) will be reported\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n * @param pid                     Process Id of the target process to query stats for\n * @param stats                   Reference in which to return the process's accounting stats\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if stats have been successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is 0, or \\a stats is NULL\n *         - \\ref NVML_ERROR_NOT_FOUND         if \\a vgpuInstance does not match a valid active vGPU instance on the system\n *                                             or \\a stats is not found\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingStats(nvmlVgpuInstance_t vgpuInstance, unsigned int pid, nvmlAccountingStats_t *stats);\n\n/**\n * Clears accounting information of the vGPU instance that have already terminated.\n *\n * For Maxwell &tm; or newer fully supported devices.\n * Requires root/admin permissions.\n *\n * @note Accounting Mode needs to be on. See \\ref nvmlVgpuInstanceGetAccountingMode.\n * @note Only compute and graphics applications stats are reported and can be cleared since monitoring applications\n *         stats don't contribute to GPU utilization.\n *\n * @param vgpuInstance            The identifier of the target vGPU instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if accounting information has been cleared\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a vgpuInstance is invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if the vGPU doesn't support this feature or accounting mode is disabled\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlVgpuInstanceClearAccountingPids(nvmlVgpuInstance_t vgpuInstance);\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlGpuBlacklistQueries GPU Blacklist Queries\n * This chapter describes NVML operations that are associated with blacklisted GPUs.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Blacklist GPU device information\n **/\ntypedef struct nvmlBlacklistDeviceInfo_st\n{\n    nvmlPciInfo_t pciInfo;                   //!< The PCI information for the blacklisted GPU\n    char uuid[NVML_DEVICE_UUID_BUFFER_SIZE]; //!< The ASCII string UUID for the blacklisted GPU\n} nvmlBlacklistDeviceInfo_t;\n\n /**\n * Retrieves the number of blacklisted GPU devices in the system.\n *\n * For all products.\n *\n * @param deviceCount                          Reference in which to return the number of blacklisted devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a deviceCount has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a deviceCount is NULL\n */\nnvmlReturn_t DECLDIR nvmlGetBlacklistDeviceCount(unsigned int *deviceCount);\n\n/**\n * Acquire the device information for a blacklisted device, based on its index.\n *\n * For all products.\n *\n * Valid indices are derived from the \\a deviceCount returned by\n *   \\ref nvmlGetBlacklistDeviceCount(). For example, if \\a deviceCount is 2 the valid indices\n *   are 0 and 1, corresponding to GPU 0 and GPU 1.\n *\n * @param index                                The index of the target GPU, >= 0 and < \\a deviceCount\n * @param info                                 Reference in which to return the device information\n *\n * @return\n *         - \\ref NVML_SUCCESS                  if \\a device has been set\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT   if \\a index is invalid or \\a info is NULL\n *\n * @see nvmlGetBlacklistDeviceCount\n */\nnvmlReturn_t DECLDIR nvmlGetBlacklistDeviceInfoByIndex(unsigned int index, nvmlBlacklistDeviceInfo_t *info);\n\n/** @} */\n\n/***************************************************************************************************/\n/** @defgroup nvmlMultiInstanceGPU Multi Instance GPU Management\n * This chapter describes NVML operations that are associated with Multi Instance GPU management.\n *  @{\n */\n/***************************************************************************************************/\n\n/**\n * Disable Multi Instance GPU mode.\n */\n#define NVML_DEVICE_MIG_DISABLE 0x0\n\n/**\n * Enable Multi Instance GPU mode.\n */\n#define NVML_DEVICE_MIG_ENABLE 0x1\n\n/**\n * GPU instance profiles.\n *\n * These macros should be passed to \\ref nvmlDeviceGetGpuInstanceProfileInfo to retrieve the\n * detailed information about a GPU instance such as profile ID, engine counts.\n */\n#define NVML_GPU_INSTANCE_PROFILE_1_SLICE 0x0\n#define NVML_GPU_INSTANCE_PROFILE_2_SLICE 0x1\n#define NVML_GPU_INSTANCE_PROFILE_3_SLICE 0x2\n#define NVML_GPU_INSTANCE_PROFILE_4_SLICE 0x3\n#define NVML_GPU_INSTANCE_PROFILE_7_SLICE 0x4\n#define NVML_GPU_INSTANCE_PROFILE_COUNT   0x5\n\ntypedef struct nvmlGpuInstancePlacement_st\n{\n    unsigned int start;\n    unsigned int size;\n} nvmlGpuInstancePlacement_t;\n\ntypedef struct nvmlGpuInstanceProfileInfo_st\n{\n    unsigned int id;                  //!< Unique profile ID within the device\n    unsigned int isP2pSupported;      //!< Peer-to-Peer support\n    unsigned int sliceCount;          //!< GPU Slice count\n    unsigned int instanceCount;       //!< GPU instance count\n    unsigned int multiprocessorCount; //!< Streaming Multiprocessor count\n    unsigned int copyEngineCount;     //!< Copy Engine count\n    unsigned int decoderCount;        //!< Decoder Engine count\n    unsigned int encoderCount;        //!< Encoder Engine count\n    unsigned int jpegCount;           //!< JPEG Engine count\n    unsigned int ofaCount;            //!< OFA Engine count\n    unsigned long long memorySizeMB;  //!< Memory size in MBytes\n} nvmlGpuInstanceProfileInfo_t;\n\ntypedef struct nvmlGpuInstanceInfo_st\n{\n    nvmlDevice_t device;                  //!< Parent device\n    unsigned int id;                      //!< Unique instance ID within the device\n    unsigned int profileId;               //!< Unique profile ID within the device\n    nvmlGpuInstancePlacement_t placement; //!< Placement for this instance\n} nvmlGpuInstanceInfo_t;\n\ntypedef struct nvmlGpuInstance_st* nvmlGpuInstance_t;\n\n/**\n * Compute instance profiles.\n *\n * These macros should be passed to \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo to retrieve the\n * detailed information about a compute instance such as profile ID, engine counts\n */\n#define NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE 0x0\n#define NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE 0x1\n#define NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE 0x2\n#define NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE 0x3\n#define NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE 0x4\n#define NVML_COMPUTE_INSTANCE_PROFILE_COUNT   0x5\n\n#define NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED 0x0 //!< All the engines except multiprocessors would be shared\n#define NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT  0x1\n\ntypedef struct nvmlComputeInstanceProfileInfo_st\n{\n    unsigned int id;                    //!< Unique profile ID within the GPU instance\n    unsigned int sliceCount;            //!< GPU Slice count\n    unsigned int instanceCount;         //!< Compute instance count\n    unsigned int multiprocessorCount;   //!< Streaming Multiprocessor count\n    unsigned int sharedCopyEngineCount; //!< Shared Copy Engine count\n    unsigned int sharedDecoderCount;    //!< Shared Decoder Engine count\n    unsigned int sharedEncoderCount;    //!< Shared Encoder Engine count\n    unsigned int sharedJpegCount;       //!< Shared JPEG Engine count\n    unsigned int sharedOfaCount;        //!< Shared OFA Engine count\n} nvmlComputeInstanceProfileInfo_t;\n\ntypedef struct nvmlComputeInstanceInfo_st\n{\n    nvmlDevice_t device;           //!< Parent device\n    nvmlGpuInstance_t gpuInstance; //!< Parent GPU instance\n    unsigned int id;               //!< Unique instance ID within the GPU instance\n    unsigned int profileId;        //!< Unique profile ID within the GPU instance\n} nvmlComputeInstanceInfo_t;\n\ntypedef struct nvmlComputeInstance_st* nvmlComputeInstance_t;\n\n/**\n * Set MIG mode for the device.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires root user.\n *\n * This mode determines whether a GPU instance can be created.\n *\n * This API may unbind or reset the device to activate the requested mode. Thus, the attributes associated with the\n * device, such as minor number, might change. The caller of this API is expected to query such attributes again.\n *\n * On certain platforms like pass-through virtualization, where reset functionality may not be exposed directly, VM\n * reboot is required. \\a activationStatus would return \\ref NVML_ERROR_RESET_REQUIRED for such cases.\n *\n * \\a activationStatus would return the appropriate error code upon unsuccessful activation. For example, if device\n * unbind fails because the device isn't idle, \\ref NVML_ERROR_IN_USE would be returned. The caller of this API\n * is expected to idle the device and retry setting the \\a mode.\n *\n * @param device                               The identifier of the target device\n * @param mode                                 The mode to be set, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n * @param activationStatus                     The activationStatus status\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device,\\a mode or \\a activationStatus are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't support MIG mode\n */\nnvmlReturn_t DECLDIR nvmlDeviceSetMigMode(nvmlDevice_t device, unsigned int mode, nvmlReturn_t *activationStatus);\n\n/**\n * Get MIG mode for the device.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * Changing MIG modes may require device unbind or reset. The \"pending\" MIG mode refers to the target mode following the\n * next activation trigger.\n *\n * @param device                               The identifier of the target device\n * @param currentMode                          Returns the current mode, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n * @param pendingMode                          Returns the pending mode, \\ref NVML_DEVICE_MIG_DISABLE or\n *                                             \\ref NVML_DEVICE_MIG_ENABLE\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a currentMode or \\a pendingMode are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't support MIG mode\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMigMode(nvmlDevice_t device, unsigned int *currentMode, unsigned int *pendingMode);\n\n/**\n * Get GPU instance profile information.\n *\n * Information provided by this API is immutable throughout the lifetime of a MIG mode.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profile                              One of the NVML_GPU_INSTANCE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profile or \\a info are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceProfileInfo(nvmlDevice_t device, unsigned int profile,\n                                                         nvmlGpuInstanceProfileInfo_t *info);\n\n/**\n * Get GPU instance placements.\n *\n * A placement represents the location of a GPU instance within a device. This API only returns all the possible\n * placements for the given profile.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param placements                           Returns placements, the buffer must be large enough to accommodate\n *                                             the instances supported by the profile.\n *                                             See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param count                                The count of returned placements\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId, \\a placements or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstancePossiblePlacements(nvmlDevice_t device, unsigned int profileId,\n                                                                nvmlGpuInstancePlacement_t *placements,\n                                                                unsigned int *count);\n\n/**\n * Get GPU instance profile capacity.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param count                                Returns remaining instance count for the profile ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled or \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceRemainingCapacity(nvmlDevice_t device, unsigned int profileId,\n                                                               unsigned int *count);\n\n/**\n * Create GPU instance.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the GPU instance is destroyed explicitly, the GPU instance handle would\n * become invalid. The GPU instance must be recreated to acquire a valid handle.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param gpuInstance                          Returns the GPU instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a device, \\a profile, \\a profileId or \\a gpuInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested GPU instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlDeviceCreateGpuInstance(nvmlDevice_t device, unsigned int profileId,\n                                                 nvmlGpuInstance_t *gpuInstance);\n\n/**\n * Destroy GPU instance.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The GPU instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_IN_USE            If the GPU instance is in use. This error would be returned if processes\n *                                             (e.g. CUDA application) or compute instances are active on the\n *                                             GPU instance.\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceDestroy(nvmlGpuInstance_t gpuInstance);\n\n/**\n * Get GPU instances for given profile ID.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param profileId                            The GPU instance profile ID. See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param gpuInstances                         Returns pre-exiting GPU instances, the buffer must be large enough to\n *                                             accommodate the instances supported by the profile.\n *                                             See \\ref nvmlDeviceGetGpuInstanceProfileInfo\n * @param count                                The count of returned GPU instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a profileId, \\a gpuInstances or \\a count are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstances(nvmlDevice_t device, unsigned int profileId,\n                                               nvmlGpuInstance_t *gpuInstances, unsigned int *count);\n\n/**\n * Get GPU instances for given instance ID.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param device                               The identifier of the target device\n * @param id                                   The GPU instance ID\n * @param gpuInstance                          Returns GPU instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a id or \\a gpuInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_FOUND         If the GPU instance is not found.\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceById(nvmlDevice_t device, unsigned int id, nvmlGpuInstance_t *gpuInstance);\n\n/**\n * Get GPU instance information.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param gpuInstance                          The GPU instance handle\n * @param info                                 Return GPU instance information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance or \\a info are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetInfo(nvmlGpuInstance_t gpuInstance, nvmlGpuInstanceInfo_t *info);\n\n/**\n * Get compute instance profile information.\n *\n * Information provided by this API is immutable throughout the lifetime of a MIG mode.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profile                              One of the NVML_COMPUTE_INSTANCE_PROFILE_*\n * @param engProfile                           One of the NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_*\n * @param info                                 Returns detailed profile information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profile, \\a engProfile or \\a info are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profile isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceProfileInfo(nvmlGpuInstance_t gpuInstance, unsigned int profile,\n                                                                  unsigned int engProfile,\n                                                                  nvmlComputeInstanceProfileInfo_t *info);\n\n/**\n * Get compute instance profile capacity.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param count                                Returns remaining instance count for the profile ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profileId or \\a availableCount are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceRemainingCapacity(nvmlGpuInstance_t gpuInstance,\n                                                                        unsigned int profileId, unsigned int *count);\n\n/**\n * Create compute instance.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * If the parent device is unbound, reset or the parent GPU instance is destroyed or the compute instance is destroyed\n * explicitly, the compute instance handle would become invalid. The compute instance must be recreated to acquire\n * a valid handle.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param computeInstance                      Returns the compute instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                       Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED           If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT        If \\a gpuInstance, \\a profile, \\a profileId or \\a computeInstance\n *                                                   are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED           If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION           If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_INSUFFICIENT_RESOURCES  If the requested compute instance could not be created\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceCreateComputeInstance(nvmlGpuInstance_t gpuInstance, unsigned int profileId,\n                                                          nvmlComputeInstance_t *computeInstance);\n\n/**\n * Destroy compute instance.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param computeInstance                      The compute instance handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a computeInstance is invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_IN_USE            If the compute instance is in use. This error would be returned if\n *                                             processes (e.g. CUDA application) are active on the compute instance.\n */\nnvmlReturn_t DECLDIR nvmlComputeInstanceDestroy(nvmlComputeInstance_t computeInstance);\n\n/**\n * Get compute instances for given profile ID.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param profileId                            The compute instance profile ID.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param computeInstances                     Returns pre-exiting compute instances, the buffer must be large enough to\n *                                             accommodate the instances supported by the profile.\n *                                             See \\ref nvmlGpuInstanceGetComputeInstanceProfileInfo\n * @param count                                The count of returned compute instances\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a gpuInstance, \\a profileId, \\a computeInstances or \\a count\n *                                             are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a profileId isn't supported\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstances(nvmlGpuInstance_t gpuInstance, unsigned int profileId,\n                                                        nvmlComputeInstance_t *computeInstances, unsigned int *count);\n\n/**\n * Get compute instance for given instance ID.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n * Requires privileged user.\n *\n * @param gpuInstance                          The identifier of the target GPU instance\n * @param id                                   The compute instance ID\n * @param computeInstance                      Returns compute instance\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a device, \\a ID or \\a computeInstance are invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     If \\a device doesn't have MIG mode enabled\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n *         - \\ref NVML_ERROR_NOT_FOUND         If the compute instance is not found.\n */\nnvmlReturn_t DECLDIR nvmlGpuInstanceGetComputeInstanceById(nvmlGpuInstance_t gpuInstance, unsigned int id,\n                                                           nvmlComputeInstance_t *computeInstance);\n\n/**\n * Get compute instance information.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param computeInstance                      The compute instance handle\n * @param info                                 Return compute instance information\n *\n * @return\n *         - \\ref NVML_SUCCESS                 Upon success\n *         - \\ref NVML_ERROR_UNINITIALIZED     If library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  If \\a computeInstance or \\a info are invalid\n *         - \\ref NVML_ERROR_NO_PERMISSION     If user doesn't have permission to perform the operation\n */\nnvmlReturn_t DECLDIR nvmlComputeInstanceGetInfo(nvmlComputeInstance_t computeInstance, nvmlComputeInstanceInfo_t *info);\n\n/**\n * Test if the given handle refers to a MIG device.\n *\n * A MIG device handle is an NVML abstraction which maps to a MIG compute instance.\n * These overloaded references can be used (with some restrictions) interchangeably\n * with a GPU device handle to execute queries at a per-compute instance granularity.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               NVML handle to test\n * @param isMigDevice                          True when handle refers to a MIG device\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a device status was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device handle or \\a isMigDevice reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this check is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceIsMigDeviceHandle(nvmlDevice_t device, unsigned int *isMigDevice);\n\n/**\n * Get GPU instance ID for the given MIG device handle.\n *\n * GPU instance IDs are unique per device and remain valid until the GPU instance is destroyed.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target MIG device handle\n * @param id                                   GPU instance ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if instance ID was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a id reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetGpuInstanceId(nvmlDevice_t device, unsigned int *id);\n\n/**\n * Get compute instance ID for the given MIG device handle.\n *\n * Compute instance IDs are unique per GPU instance and remain valid until the compute instance\n * is destroyed.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target MIG device handle\n * @param id                                   Compute instance ID\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if instance ID was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a id reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetComputeInstanceId(nvmlDevice_t device, unsigned int *id);\n\n/**\n * Get the maximum number of MIG devices that can exist under a given parent NVML device.\n *\n * Returns zero if MIG is not supported or enabled.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Target device handle\n * @param count                                Count of MIG devices\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a count was successfully retrieved\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device or \\a count reference is invalid\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMaxMigDeviceCount(nvmlDevice_t device, unsigned int *count);\n\n/**\n * Get MIG device handle for the given index under its parent NVML device.\n *\n * If the compute instance is destroyed either explicitly or by destroying,\n * resetting or unbinding the parent GPU instance or the GPU device itself\n * the MIG device handle would remain invalid and must be requested again\n * using this API. Handles may be reused and their properties can change in\n * the process.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param device                               Reference to the parent GPU device handle\n * @param index                                Index of the MIG device\n * @param migDevice                            Reference to the MIG device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a migDevice handle was successfully created\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a device, \\a index or \\a migDevice reference is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_NOT_FOUND         if no valid MIG device was found at \\a index\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetMigDeviceHandleByIndex(nvmlDevice_t device, unsigned int index,\n                                                         nvmlDevice_t *migDevice);\n\n/**\n * Get parent device handle from a MIG device handle.\n *\n * For newer than Volta &tm; fully supported devices.\n * Supported on Linux only.\n *\n * @param migDevice                            MIG device handle\n * @param device                               Device handle\n *\n * @return\n *         - \\ref NVML_SUCCESS                 if \\a device handle was successfully created\n *         - \\ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized\n *         - \\ref NVML_ERROR_INVALID_ARGUMENT  if \\a migDevice or \\a device is invalid\n *         - \\ref NVML_ERROR_NOT_SUPPORTED     if this query is not supported by the device\n *         - \\ref NVML_ERROR_UNKNOWN           on any unexpected error\n */\nnvmlReturn_t DECLDIR nvmlDeviceGetDeviceHandleFromMigDeviceHandle(nvmlDevice_t migDevice, nvmlDevice_t *device);\n\n/** @} */\n\n/**\n * NVML API versioning support\n */\n\n#ifdef NVML_NO_UNVERSIONED_FUNC_DEFS\nnvmlReturn_t DECLDIR nvmlInit(void);\nnvmlReturn_t DECLDIR nvmlDeviceGetCount(unsigned int *deviceCount);\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex(unsigned int index, nvmlDevice_t *device);\nnvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId(const char *pciBusId, nvmlDevice_t *device);\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo(nvmlDevice_t device, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetPciInfo_v2(nvmlDevice_t device, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemotePciInfo(nvmlDevice_t device, unsigned int link, nvmlPciInfo_t *pci);\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\nnvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures_v2(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);\nnvmlReturn_t DECLDIR nvmlDeviceRemoveGpu(nvmlPciInfo_t *pciInfo);\nnvmlReturn_t DECLDIR nvmlEventSetWait(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);\nnvmlReturn_t DECLDIR nvmlDeviceGetAttributes(nvmlDevice_t device, nvmlDeviceAttributes_t *attributes);\n#endif // #ifdef NVML_NO_UNVERSIONED_FUNC_DEFS\n\n#if defined(NVML_NO_UNVERSIONED_FUNC_DEFS)\n// We don't define APIs to run new versions if this guard is present so there is\n// no need to undef\n#elif defined(__NVML_API_VERSION_INTERNAL)\n#undef nvmlDeviceGetAttributes\n#undef nvmlEventSetWait\n#undef nvmlDeviceGetGridLicensableFeatures\n#undef nvmlDeviceRemoveGpu\n#undef nvmlDeviceGetNvLinkRemotePciInfo\n#undef nvmlDeviceGetPciInfo\n#undef nvmlDeviceGetCount\n#undef nvmlDeviceGetHandleByIndex\n#undef nvmlDeviceGetHandleByPciBusId\n#undef nvmlInit\n#endif\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml_dl.go",
    "content": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\n// +build linux darwin\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\n/*\n#include <dlfcn.h>\n#include \"nvml.h\"\n\n// We wrap the call to nvmlInit() here to ensure that we pick up the correct\n// version of this call. The macro magic in nvml.h that #defines the symbol\n// 'nvmlInit' to 'nvmlInit_v2' is unfortunately lost on cgo.\nstatic nvmlReturn_t nvmlInit_dl(void) {\n\treturn nvmlInit();\n}\n*/\nimport \"C\"\n\ntype dlhandles struct{ handles []unsafe.Pointer }\n\nvar dl dlhandles\n\n// Initialize NVML, opening a dynamic reference to the NVML library in the process.\nfunc (dl *dlhandles) nvmlInit() C.nvmlReturn_t {\n\thandle := C.dlopen(C.CString(\"libnvidia-ml.so.1\"), C.RTLD_LAZY|C.RTLD_GLOBAL)\n\tif handle == C.NULL {\n\t\treturn C.NVML_ERROR_LIBRARY_NOT_FOUND\n\t}\n\tdl.handles = append(dl.handles, handle)\n\treturn C.nvmlInit_dl()\n}\n\n// Shutdown NVML, closing our dynamic reference to the NVML library in the process.\nfunc (dl *dlhandles) nvmlShutdown() C.nvmlReturn_t {\n\tret := C.nvmlShutdown()\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ret\n\t}\n\n\tfor _, handle := range dl.handles {\n\t\terr := C.dlclose(handle)\n\t\tif err != 0 {\n\t\t\treturn C.NVML_ERROR_UNKNOWN\n\t\t}\n\t}\n\n\treturn C.NVML_SUCCESS\n}\n\n// Check to see if a specific symbol is present in the NVML library.\nfunc (dl *dlhandles) lookupSymbol(symbol string) C.nvmlReturn_t {\n\tfor _, handle := range dl.handles {\n\t\tC.dlerror()\n\t\tC.dlsym(handle, C.CString(symbol))\n\t\tif unsafe.Pointer(C.dlerror()) == C.NULL {\n\t\t\treturn C.NVML_SUCCESS\n\t\t}\n\t}\n\treturn C.NVML_ERROR_FUNCTION_NOT_FOUND\n}\n"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml_dl_windows.go",
    "content": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\n// +build windows\n\npackage nvml\n\nimport (\n\t\"syscall\"\n)\n\n/*\n#include \"nvml.h\"\n\n// We wrap the call to nvmlInit() here to ensure that we pick up the correct\n// version of this call. The macro magic in nvml.h that #defines the symbol\n// 'nvmlInit' to 'nvmlInit_v2' is unfortunately lost on cgo.\nstatic nvmlReturn_t nvmlInit_dl(void) {\n\treturn nvmlInit();\n}\n*/\nimport \"C\"\n\ntype dlhandles struct{ handles []*syscall.LazyDLL }\n\nvar dl dlhandles\n\n// Initialize NVML, opening a dynamic reference to the NVML library in the process.\nfunc (dl *dlhandles) nvmlInit() C.nvmlReturn_t {\n\thandle := syscall.NewLazyDLL(\"nvml.dll\")\n\tif handle == nil {\n\t\treturn C.NVML_ERROR_LIBRARY_NOT_FOUND\n\t}\n\tdl.handles = append(dl.handles, handle)\n\treturn C.nvmlInit_dl()\n}\n\n// Shutdown NVML, closing our dynamic reference to the NVML library in the process.\nfunc (dl *dlhandles) nvmlShutdown() C.nvmlReturn_t {\n\tret := C.nvmlShutdown()\n\tif ret != C.NVML_SUCCESS {\n\t\treturn ret\n\t}\n\n\tdl.handles = dl.handles[:0]\n\n\treturn C.NVML_SUCCESS\n}\n\n// Check to see if a specific symbol is present in the NVML library.\nfunc (dl *dlhandles) lookupSymbol(symbol string) C.nvmlReturn_t {\n\tfor _, handle := range dl.handles {\n\t\tif proc := handle.NewProc(symbol); proc != nil {\n\t\t\treturn C.NVML_SUCCESS\n\t\t}\n\t}\n\treturn C.NVML_ERROR_FUNCTION_NOT_FOUND\n}\n"
  },
  {
    "path": "vendor/github.com/beorn7/perks/LICENSE",
    "content": "Copyright (C) 2013 Blake Mizerany\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/beorn7/perks/quantile/exampledata.txt",
    "content": "8\n5\n26\n12\n5\n235\n13\n6\n28\n30\n3\n3\n3\n3\n5\n2\n33\n7\n2\n4\n7\n12\n14\n5\n8\n3\n10\n4\n5\n3\n6\n6\n209\n20\n3\n10\n14\n3\n4\n6\n8\n5\n11\n7\n3\n2\n3\n3\n212\n5\n222\n4\n10\n10\n5\n6\n3\n8\n3\n10\n254\n220\n2\n3\n5\n24\n5\n4\n222\n7\n3\n3\n223\n8\n15\n12\n14\n14\n3\n2\n2\n3\n13\n3\n11\n4\n4\n6\n5\n7\n13\n5\n3\n5\n2\n5\n3\n5\n2\n7\n15\n17\n14\n3\n6\n6\n3\n17\n5\n4\n7\n6\n4\n4\n8\n6\n8\n3\n9\n3\n6\n3\n4\n5\n3\n3\n660\n4\n6\n10\n3\n6\n3\n2\n5\n13\n2\n4\n4\n10\n4\n8\n4\n3\n7\n9\n9\n3\n10\n37\n3\n13\n4\n12\n3\n6\n10\n8\n5\n21\n2\n3\n8\n3\n2\n3\n3\n4\n12\n2\n4\n8\n8\n4\n3\n2\n20\n1\n6\n32\n2\n11\n6\n18\n3\n8\n11\n3\n212\n3\n4\n2\n6\n7\n12\n11\n3\n2\n16\n10\n6\n4\n6\n3\n2\n7\n3\n2\n2\n2\n2\n5\n6\n4\n3\n10\n3\n4\n6\n5\n3\n4\n4\n5\n6\n4\n3\n4\n4\n5\n7\n5\n5\n3\n2\n7\n2\n4\n12\n4\n5\n6\n2\n4\n4\n8\n4\n15\n13\n7\n16\n5\n3\n23\n5\n5\n7\n3\n2\n9\n8\n7\n5\n8\n11\n4\n10\n76\n4\n47\n4\n3\n2\n7\n4\n2\n3\n37\n10\n4\n2\n20\n5\n4\n4\n10\n10\n4\n3\n7\n23\n240\n7\n13\n5\n5\n3\n3\n2\n5\n4\n2\n8\n7\n19\n2\n23\n8\n7\n2\n5\n3\n8\n3\n8\n13\n5\n5\n5\n2\n3\n23\n4\n9\n8\n4\n3\n3\n5\n220\n2\n3\n4\n6\n14\n3\n53\n6\n2\n5\n18\n6\n3\n219\n6\n5\n2\n5\n3\n6\n5\n15\n4\n3\n17\n3\n2\n4\n7\n2\n3\n3\n4\n4\n3\n2\n664\n6\n3\n23\n5\n5\n16\n5\n8\n2\n4\n2\n24\n12\n3\n2\n3\n5\n8\n3\n5\n4\n3\n14\n3\n5\n8\n2\n3\n7\n9\n4\n2\n3\n6\n8\n4\n3\n4\n6\n5\n3\n3\n6\n3\n19\n4\n4\n6\n3\n6\n3\n5\n22\n5\n4\n4\n3\n8\n11\n4\n9\n7\n6\n13\n4\n4\n4\n6\n17\n9\n3\n3\n3\n4\n3\n221\n5\n11\n3\n4\n2\n12\n6\n3\n5\n7\n5\n7\n4\n9\n7\n14\n37\n19\n217\n16\n3\n5\n2\n2\n7\n19\n7\n6\n7\n4\n24\n5\n11\n4\n7\n7\n9\n13\n3\n4\n3\n6\n28\n4\n4\n5\n5\n2\n5\n6\n4\n4\n6\n10\n5\n4\n3\n2\n3\n3\n6\n5\n5\n4\n3\n2\n3\n7\n4\n6\n18\n16\n8\n16\n4\n5\n8\n6\n9\n13\n1545\n6\n215\n6\n5\n6\n3\n45\n31\n5\n2\n2\n4\n3\n3\n2\n5\n4\n3\n5\n7\n7\n4\n5\n8\n5\n4\n749\n2\n31\n9\n11\n2\n11\n5\n4\n4\n7\n9\n11\n4\n5\n4\n7\n3\n4\n6\n2\n15\n3\n4\n3\n4\n3\n5\n2\n13\n5\n5\n3\n3\n23\n4\n4\n5\n7\n4\n13\n2\n4\n3\n4\n2\n6\n2\n7\n3\n5\n5\n3\n29\n5\n4\n4\n3\n10\n2\n3\n79\n16\n6\n6\n7\n7\n3\n5\n5\n7\n4\n3\n7\n9\n5\n6\n5\n9\n6\n3\n6\n4\n17\n2\n10\n9\n3\n6\n2\n3\n21\n22\n5\n11\n4\n2\n17\n2\n224\n2\n14\n3\n4\n4\n2\n4\n4\n4\n4\n5\n3\n4\n4\n10\n2\n6\n3\n3\n5\n7\n2\n7\n5\n6\n3\n218\n2\n2\n5\n2\n6\n3\n5\n222\n14\n6\n33\n3\n2\n5\n3\n3\n3\n9\n5\n3\n3\n2\n7\n4\n3\n4\n3\n5\n6\n5\n26\n4\n13\n9\n7\n3\n221\n3\n3\n4\n4\n4\n4\n2\n18\n5\n3\n7\n9\n6\n8\n3\n10\n3\n11\n9\n5\n4\n17\n5\n5\n6\n6\n3\n2\n4\n12\n17\n6\n7\n218\n4\n2\n4\n10\n3\n5\n15\n3\n9\n4\n3\n3\n6\n29\n3\n3\n4\n5\n5\n3\n8\n5\n6\n6\n7\n5\n3\n5\n3\n29\n2\n31\n5\n15\n24\n16\n5\n207\n4\n3\n3\n2\n15\n4\n4\n13\n5\n5\n4\n6\n10\n2\n7\n8\n4\n6\n20\n5\n3\n4\n3\n12\n12\n5\n17\n7\n3\n3\n3\n6\n10\n3\n5\n25\n80\n4\n9\n3\n2\n11\n3\n3\n2\n3\n8\n7\n5\n5\n19\n5\n3\n3\n12\n11\n2\n6\n5\n5\n5\n3\n3\n3\n4\n209\n14\n3\n2\n5\n19\n4\n4\n3\n4\n14\n5\n6\n4\n13\n9\n7\n4\n7\n10\n2\n9\n5\n7\n2\n8\n4\n6\n5\n5\n222\n8\n7\n12\n5\n216\n3\n4\n4\n6\n3\n14\n8\n7\n13\n4\n3\n3\n3\n3\n17\n5\n4\n3\n33\n6\n6\n33\n7\n5\n3\n8\n7\n5\n2\n9\n4\n2\n233\n24\n7\n4\n8\n10\n3\n4\n15\n2\n16\n3\n3\n13\n12\n7\n5\n4\n207\n4\n2\n4\n27\n15\n2\n5\n2\n25\n6\n5\n5\n6\n13\n6\n18\n6\n4\n12\n225\n10\n7\n5\n2\n2\n11\n4\n14\n21\n8\n10\n3\n5\n4\n232\n2\n5\n5\n3\n7\n17\n11\n6\n6\n23\n4\n6\n3\n5\n4\n2\n17\n3\n6\n5\n8\n3\n2\n2\n14\n9\n4\n4\n2\n5\n5\n3\n7\n6\n12\n6\n10\n3\n6\n2\n2\n19\n5\n4\n4\n9\n2\n4\n13\n3\n5\n6\n3\n6\n5\n4\n9\n6\n3\n5\n7\n3\n6\n6\n4\n3\n10\n6\n3\n221\n3\n5\n3\n6\n4\n8\n5\n3\n6\n4\n4\n2\n54\n5\n6\n11\n3\n3\n4\n4\n4\n3\n7\n3\n11\n11\n7\n10\n6\n13\n223\n213\n15\n231\n7\n3\n7\n228\n2\n3\n4\n4\n5\n6\n7\n4\n13\n3\n4\n5\n3\n6\n4\n6\n7\n2\n4\n3\n4\n3\n3\n6\n3\n7\n3\n5\n18\n5\n6\n8\n10\n3\n3\n3\n2\n4\n2\n4\n4\n5\n6\n6\n4\n10\n13\n3\n12\n5\n12\n16\n8\n4\n19\n11\n2\n4\n5\n6\n8\n5\n6\n4\n18\n10\n4\n2\n216\n6\n6\n6\n2\n4\n12\n8\n3\n11\n5\n6\n14\n5\n3\n13\n4\n5\n4\n5\n3\n28\n6\n3\n7\n219\n3\n9\n7\n3\n10\n6\n3\n4\n19\n5\n7\n11\n6\n15\n19\n4\n13\n11\n3\n7\n5\n10\n2\n8\n11\n2\n6\n4\n6\n24\n6\n3\n3\n3\n3\n6\n18\n4\n11\n4\n2\n5\n10\n8\n3\n9\n5\n3\n4\n5\n6\n2\n5\n7\n4\n4\n14\n6\n4\n4\n5\n5\n7\n2\n4\n3\n7\n3\n3\n6\n4\n5\n4\n4\n4\n3\n3\n3\n3\n8\n14\n2\n3\n5\n3\n2\n4\n5\n3\n7\n3\n3\n18\n3\n4\n4\n5\n7\n3\n3\n3\n13\n5\n4\n8\n211\n5\n5\n3\n5\n2\n5\n4\n2\n655\n6\n3\n5\n11\n2\n5\n3\n12\n9\n15\n11\n5\n12\n217\n2\n6\n17\n3\n3\n207\n5\n5\n4\n5\n9\n3\n2\n8\n5\n4\n3\n2\n5\n12\n4\n14\n5\n4\n2\n13\n5\n8\n4\n225\n4\n3\n4\n5\n4\n3\n3\n6\n23\n9\n2\n6\n7\n233\n4\n4\n6\n18\n3\n4\n6\n3\n4\n4\n2\n3\n7\n4\n13\n227\n4\n3\n5\n4\n2\n12\n9\n17\n3\n7\n14\n6\n4\n5\n21\n4\n8\n9\n2\n9\n25\n16\n3\n6\n4\n7\n8\n5\n2\n3\n5\n4\n3\n3\n5\n3\n3\n3\n2\n3\n19\n2\n4\n3\n4\n2\n3\n4\n4\n2\n4\n3\n3\n3\n2\n6\n3\n17\n5\n6\n4\n3\n13\n5\n3\n3\n3\n4\n9\n4\n2\n14\n12\n4\n5\n24\n4\n3\n37\n12\n11\n21\n3\n4\n3\n13\n4\n2\n3\n15\n4\n11\n4\n4\n3\n8\n3\n4\n4\n12\n8\n5\n3\n3\n4\n2\n220\n3\n5\n223\n3\n3\n3\n10\n3\n15\n4\n241\n9\n7\n3\n6\n6\n23\n4\n13\n7\n3\n4\n7\n4\n9\n3\n3\n4\n10\n5\n5\n1\n5\n24\n2\n4\n5\n5\n6\n14\n3\n8\n2\n3\n5\n13\n13\n3\n5\n2\n3\n15\n3\n4\n2\n10\n4\n4\n4\n5\n5\n3\n5\n3\n4\n7\n4\n27\n3\n6\n4\n15\n3\n5\n6\n6\n5\n4\n8\n3\n9\n2\n6\n3\n4\n3\n7\n4\n18\n3\n11\n3\n3\n8\n9\n7\n24\n3\n219\n7\n10\n4\n5\n9\n12\n2\n5\n4\n4\n4\n3\n3\n19\n5\n8\n16\n8\n6\n22\n3\n23\n3\n242\n9\n4\n3\n3\n5\n7\n3\n3\n5\n8\n3\n7\n5\n14\n8\n10\n3\n4\n3\n7\n4\n6\n7\n4\n10\n4\n3\n11\n3\n7\n10\n3\n13\n6\n8\n12\n10\n5\n7\n9\n3\n4\n7\n7\n10\n8\n30\n9\n19\n4\n3\n19\n15\n4\n13\n3\n215\n223\n4\n7\n4\n8\n17\n16\n3\n7\n6\n5\n5\n4\n12\n3\n7\n4\n4\n13\n4\n5\n2\n5\n6\n5\n6\n6\n7\n10\n18\n23\n9\n3\n3\n6\n5\n2\n4\n2\n7\n3\n3\n2\n5\n5\n14\n10\n224\n6\n3\n4\n3\n7\n5\n9\n3\n6\n4\n2\n5\n11\n4\n3\n3\n2\n8\n4\n7\n4\n10\n7\n3\n3\n18\n18\n17\n3\n3\n3\n4\n5\n3\n3\n4\n12\n7\n3\n11\n13\n5\n4\n7\n13\n5\n4\n11\n3\n12\n3\n6\n4\n4\n21\n4\n6\n9\n5\n3\n10\n8\n4\n6\n4\n4\n6\n5\n4\n8\n6\n4\n6\n4\n4\n5\n9\n6\n3\n4\n2\n9\n3\n18\n2\n4\n3\n13\n3\n6\n6\n8\n7\n9\n3\n2\n16\n3\n4\n6\n3\n2\n33\n22\n14\n4\n9\n12\n4\n5\n6\n3\n23\n9\n4\n3\n5\n5\n3\n4\n5\n3\n5\n3\n10\n4\n5\n5\n8\n4\n4\n6\n8\n5\n4\n3\n4\n6\n3\n3\n3\n5\n9\n12\n6\n5\n9\n3\n5\n3\n2\n2\n2\n18\n3\n2\n21\n2\n5\n4\n6\n4\n5\n10\n3\n9\n3\n2\n10\n7\n3\n6\n6\n4\n4\n8\n12\n7\n3\n7\n3\n3\n9\n3\n4\n5\n4\n4\n5\n5\n10\n15\n4\n4\n14\n6\n227\n3\n14\n5\n216\n22\n5\n4\n2\n2\n6\n3\n4\n2\n9\n9\n4\n3\n28\n13\n11\n4\n5\n3\n3\n2\n3\n3\n5\n3\n4\n3\n5\n23\n26\n3\n4\n5\n6\n4\n6\n3\n5\n5\n3\n4\n3\n2\n2\n2\n7\n14\n3\n6\n7\n17\n2\n2\n15\n14\n16\n4\n6\n7\n13\n6\n4\n5\n6\n16\n3\n3\n28\n3\n6\n15\n3\n9\n2\n4\n6\n3\n3\n22\n4\n12\n6\n7\n2\n5\n4\n10\n3\n16\n6\n9\n2\n5\n12\n7\n5\n5\n5\n5\n2\n11\n9\n17\n4\n3\n11\n7\n3\n5\n15\n4\n3\n4\n211\n8\n7\n5\n4\n7\n6\n7\n6\n3\n6\n5\n6\n5\n3\n4\n4\n26\n4\n6\n10\n4\n4\n3\n2\n3\n3\n4\n5\n9\n3\n9\n4\n4\n5\n5\n8\n2\n4\n2\n3\n8\n4\n11\n19\n5\n8\n6\n3\n5\n6\n12\n3\n2\n4\n16\n12\n3\n4\n4\n8\n6\n5\n6\n6\n219\n8\n222\n6\n16\n3\n13\n19\n5\n4\n3\n11\n6\n10\n4\n7\n7\n12\n5\n3\n3\n5\n6\n10\n3\n8\n2\n5\n4\n7\n2\n4\n4\n2\n12\n9\n6\n4\n2\n40\n2\n4\n10\n4\n223\n4\n2\n20\n6\n7\n24\n5\n4\n5\n2\n20\n16\n6\n5\n13\n2\n3\n3\n19\n3\n2\n4\n5\n6\n7\n11\n12\n5\n6\n7\n7\n3\n5\n3\n5\n3\n14\n3\n4\n4\n2\n11\n1\n7\n3\n9\n6\n11\n12\n5\n8\n6\n221\n4\n2\n12\n4\n3\n15\n4\n5\n226\n7\n218\n7\n5\n4\n5\n18\n4\n5\n9\n4\n4\n2\n9\n18\n18\n9\n5\n6\n6\n3\n3\n7\n3\n5\n4\n4\n4\n12\n3\n6\n31\n5\n4\n7\n3\n6\n5\n6\n5\n11\n2\n2\n11\n11\n6\n7\n5\n8\n7\n10\n5\n23\n7\n4\n3\n5\n34\n2\n5\n23\n7\n3\n6\n8\n4\n4\n4\n2\n5\n3\n8\n5\n4\n8\n25\n2\n3\n17\n8\n3\n4\n8\n7\n3\n15\n6\n5\n7\n21\n9\n5\n6\n6\n5\n3\n2\n3\n10\n3\n6\n3\n14\n7\n4\n4\n8\n7\n8\n2\n6\n12\n4\n213\n6\n5\n21\n8\n2\n5\n23\n3\n11\n2\n3\n6\n25\n2\n3\n6\n7\n6\n6\n4\n4\n6\n3\n17\n9\n7\n6\n4\n3\n10\n7\n2\n3\n3\n3\n11\n8\n3\n7\n6\n4\n14\n36\n3\n4\n3\n3\n22\n13\n21\n4\n2\n7\n4\n4\n17\n15\n3\n7\n11\n2\n4\n7\n6\n209\n6\n3\n2\n2\n24\n4\n9\n4\n3\n3\n3\n29\n2\n2\n4\n3\n3\n5\n4\n6\n3\n3\n2\n4\n"
  },
  {
    "path": "vendor/github.com/beorn7/perks/quantile/stream.go",
    "content": "// Package quantile computes approximate quantiles over an unbounded data\n// stream within low memory and CPU bounds.\n//\n// A small amount of accuracy is traded to achieve the above properties.\n//\n// Multiple streams can be merged before calling Query to generate a single set\n// of results. This is meaningful when the streams represent the same type of\n// data. See Merge and Samples.\n//\n// For more detailed information about the algorithm used, see:\n//\n// Effective Computation of Biased Quantiles over Data Streams\n//\n// http://www.cs.rutgers.edu/~muthu/bquant.pdf\npackage quantile\n\nimport (\n\t\"math\"\n\t\"sort\"\n)\n\n// Sample holds an observed value and meta information for compression. JSON\n// tags have been added for convenience.\ntype Sample struct {\n\tValue float64 `json:\",string\"`\n\tWidth float64 `json:\",string\"`\n\tDelta float64 `json:\",string\"`\n}\n\n// Samples represents a slice of samples. It implements sort.Interface.\ntype Samples []Sample\n\nfunc (a Samples) Len() int           { return len(a) }\nfunc (a Samples) Less(i, j int) bool { return a[i].Value < a[j].Value }\nfunc (a Samples) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\n\ntype invariant func(s *stream, r float64) float64\n\n// NewLowBiased returns an initialized Stream for low-biased quantiles\n// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but\n// error guarantees can still be given even for the lower ranks of the data\n// distribution.\n//\n// The provided epsilon is a relative error, i.e. the true quantile of a value\n// returned by a query is guaranteed to be within (1±Epsilon)*Quantile.\n//\n// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error\n// properties.\nfunc NewLowBiased(epsilon float64) *Stream {\n\tƒ := func(s *stream, r float64) float64 {\n\t\treturn 2 * epsilon * r\n\t}\n\treturn newStream(ƒ)\n}\n\n// NewHighBiased returns an initialized Stream for high-biased quantiles\n// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but\n// error guarantees can still be given even for the higher ranks of the data\n// distribution.\n//\n// The provided epsilon is a relative error, i.e. the true quantile of a value\n// returned by a query is guaranteed to be within 1-(1±Epsilon)*(1-Quantile).\n//\n// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error\n// properties.\nfunc NewHighBiased(epsilon float64) *Stream {\n\tƒ := func(s *stream, r float64) float64 {\n\t\treturn 2 * epsilon * (s.n - r)\n\t}\n\treturn newStream(ƒ)\n}\n\n// NewTargeted returns an initialized Stream concerned with a particular set of\n// quantile values that are supplied a priori. Knowing these a priori reduces\n// space and computation time. The targets map maps the desired quantiles to\n// their absolute errors, i.e. the true quantile of a value returned by a query\n// is guaranteed to be within (Quantile±Epsilon).\n//\n// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error properties.\nfunc NewTargeted(targetMap map[float64]float64) *Stream {\n\t// Convert map to slice to avoid slow iterations on a map.\n\t// ƒ is called on the hot path, so converting the map to a slice\n\t// beforehand results in significant CPU savings.\n\ttargets := targetMapToSlice(targetMap)\n\n\tƒ := func(s *stream, r float64) float64 {\n\t\tvar m = math.MaxFloat64\n\t\tvar f float64\n\t\tfor _, t := range targets {\n\t\t\tif t.quantile*s.n <= r {\n\t\t\t\tf = (2 * t.epsilon * r) / t.quantile\n\t\t\t} else {\n\t\t\t\tf = (2 * t.epsilon * (s.n - r)) / (1 - t.quantile)\n\t\t\t}\n\t\t\tif f < m {\n\t\t\t\tm = f\n\t\t\t}\n\t\t}\n\t\treturn m\n\t}\n\treturn newStream(ƒ)\n}\n\ntype target struct {\n\tquantile float64\n\tepsilon  float64\n}\n\nfunc targetMapToSlice(targetMap map[float64]float64) []target {\n\ttargets := make([]target, 0, len(targetMap))\n\n\tfor quantile, epsilon := range targetMap {\n\t\tt := target{\n\t\t\tquantile: quantile,\n\t\t\tepsilon:  epsilon,\n\t\t}\n\t\ttargets = append(targets, t)\n\t}\n\n\treturn targets\n}\n\n// Stream computes quantiles for a stream of float64s. It is not thread-safe by\n// design. Take care when using across multiple goroutines.\ntype Stream struct {\n\t*stream\n\tb      Samples\n\tsorted bool\n}\n\nfunc newStream(ƒ invariant) *Stream {\n\tx := &stream{ƒ: ƒ}\n\treturn &Stream{x, make(Samples, 0, 500), true}\n}\n\n// Insert inserts v into the stream.\nfunc (s *Stream) Insert(v float64) {\n\ts.insert(Sample{Value: v, Width: 1})\n}\n\nfunc (s *Stream) insert(sample Sample) {\n\ts.b = append(s.b, sample)\n\ts.sorted = false\n\tif len(s.b) == cap(s.b) {\n\t\ts.flush()\n\t}\n}\n\n// Query returns the computed qth percentiles value. If s was created with\n// NewTargeted, and q is not in the set of quantiles provided a priori, Query\n// will return an unspecified result.\nfunc (s *Stream) Query(q float64) float64 {\n\tif !s.flushed() {\n\t\t// Fast path when there hasn't been enough data for a flush;\n\t\t// this also yields better accuracy for small sets of data.\n\t\tl := len(s.b)\n\t\tif l == 0 {\n\t\t\treturn 0\n\t\t}\n\t\ti := int(math.Ceil(float64(l) * q))\n\t\tif i > 0 {\n\t\t\ti -= 1\n\t\t}\n\t\ts.maybeSort()\n\t\treturn s.b[i].Value\n\t}\n\ts.flush()\n\treturn s.stream.query(q)\n}\n\n// Merge merges samples into the underlying streams samples. This is handy when\n// merging multiple streams from separate threads, database shards, etc.\n//\n// ATTENTION: This method is broken and does not yield correct results. The\n// underlying algorithm is not capable of merging streams correctly.\nfunc (s *Stream) Merge(samples Samples) {\n\tsort.Sort(samples)\n\ts.stream.merge(samples)\n}\n\n// Reset reinitializes and clears the list reusing the samples buffer memory.\nfunc (s *Stream) Reset() {\n\ts.stream.reset()\n\ts.b = s.b[:0]\n}\n\n// Samples returns stream samples held by s.\nfunc (s *Stream) Samples() Samples {\n\tif !s.flushed() {\n\t\treturn s.b\n\t}\n\ts.flush()\n\treturn s.stream.samples()\n}\n\n// Count returns the total number of samples observed in the stream\n// since initialization.\nfunc (s *Stream) Count() int {\n\treturn len(s.b) + s.stream.count()\n}\n\nfunc (s *Stream) flush() {\n\ts.maybeSort()\n\ts.stream.merge(s.b)\n\ts.b = s.b[:0]\n}\n\nfunc (s *Stream) maybeSort() {\n\tif !s.sorted {\n\t\ts.sorted = true\n\t\tsort.Sort(s.b)\n\t}\n}\n\nfunc (s *Stream) flushed() bool {\n\treturn len(s.stream.l) > 0\n}\n\ntype stream struct {\n\tn float64\n\tl []Sample\n\tƒ invariant\n}\n\nfunc (s *stream) reset() {\n\ts.l = s.l[:0]\n\ts.n = 0\n}\n\nfunc (s *stream) insert(v float64) {\n\ts.merge(Samples{{v, 1, 0}})\n}\n\nfunc (s *stream) merge(samples Samples) {\n\t// TODO(beorn7): This tries to merge not only individual samples, but\n\t// whole summaries. The paper doesn't mention merging summaries at\n\t// all. Unittests show that the merging is inaccurate. Find out how to\n\t// do merges properly.\n\tvar r float64\n\ti := 0\n\tfor _, sample := range samples {\n\t\tfor ; i < len(s.l); i++ {\n\t\t\tc := s.l[i]\n\t\t\tif c.Value > sample.Value {\n\t\t\t\t// Insert at position i.\n\t\t\t\ts.l = append(s.l, Sample{})\n\t\t\t\tcopy(s.l[i+1:], s.l[i:])\n\t\t\t\ts.l[i] = Sample{\n\t\t\t\t\tsample.Value,\n\t\t\t\t\tsample.Width,\n\t\t\t\t\tmath.Max(sample.Delta, math.Floor(s.ƒ(s, r))-1),\n\t\t\t\t\t// TODO(beorn7): How to calculate delta correctly?\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t\tgoto inserted\n\t\t\t}\n\t\t\tr += c.Width\n\t\t}\n\t\ts.l = append(s.l, Sample{sample.Value, sample.Width, 0})\n\t\ti++\n\tinserted:\n\t\ts.n += sample.Width\n\t\tr += sample.Width\n\t}\n\ts.compress()\n}\n\nfunc (s *stream) count() int {\n\treturn int(s.n)\n}\n\nfunc (s *stream) query(q float64) float64 {\n\tt := math.Ceil(q * s.n)\n\tt += math.Ceil(s.ƒ(s, t) / 2)\n\tp := s.l[0]\n\tvar r float64\n\tfor _, c := range s.l[1:] {\n\t\tr += p.Width\n\t\tif r+c.Width+c.Delta > t {\n\t\t\treturn p.Value\n\t\t}\n\t\tp = c\n\t}\n\treturn p.Value\n}\n\nfunc (s *stream) compress() {\n\tif len(s.l) < 2 {\n\t\treturn\n\t}\n\tx := s.l[len(s.l)-1]\n\txi := len(s.l) - 1\n\tr := s.n - 1 - x.Width\n\n\tfor i := len(s.l) - 2; i >= 0; i-- {\n\t\tc := s.l[i]\n\t\tif c.Width+x.Width+x.Delta <= s.ƒ(s, r) {\n\t\t\tx.Width += c.Width\n\t\t\ts.l[xi] = x\n\t\t\t// Remove element at i.\n\t\t\tcopy(s.l[i:], s.l[i+1:])\n\t\t\ts.l = s.l[:len(s.l)-1]\n\t\t\txi -= 1\n\t\t} else {\n\t\t\tx = c\n\t\t\txi = i\n\t\t}\n\t\tr -= c.Width\n\t}\n}\n\nfunc (s *stream) samples() Samples {\n\tsamples := make(Samples, len(s.l))\n\tcopy(samples, s.l)\n\treturn samples\n}\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/LICENSE.txt",
    "content": "Copyright (c) 2016 Caleb Spare\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/README.md",
    "content": "# xxhash\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/cespare/xxhash/v2.svg)](https://pkg.go.dev/github.com/cespare/xxhash/v2)\n[![Test](https://github.com/cespare/xxhash/actions/workflows/test.yml/badge.svg)](https://github.com/cespare/xxhash/actions/workflows/test.yml)\n\nxxhash is a Go implementation of the 64-bit [xxHash] algorithm, XXH64. This is a\nhigh-quality hashing algorithm that is much faster than anything in the Go\nstandard library.\n\nThis package provides a straightforward API:\n\n```\nfunc Sum64(b []byte) uint64\nfunc Sum64String(s string) uint64\ntype Digest struct{ ... }\n    func New() *Digest\n```\n\nThe `Digest` type implements hash.Hash64. Its key methods are:\n\n```\nfunc (*Digest) Write([]byte) (int, error)\nfunc (*Digest) WriteString(string) (int, error)\nfunc (*Digest) Sum64() uint64\n```\n\nThe package is written with optimized pure Go and also contains even faster\nassembly implementations for amd64 and arm64. If desired, the `purego` build tag\nopts into using the Go code even on those architectures.\n\n[xxHash]: http://cyan4973.github.io/xxHash/\n\n## Compatibility\n\nThis package is in a module and the latest code is in version 2 of the module.\nYou need a version of Go with at least \"minimal module compatibility\" to use\ngithub.com/cespare/xxhash/v2:\n\n* 1.9.7+ for Go 1.9\n* 1.10.3+ for Go 1.10\n* Go 1.11 or later\n\nI recommend using the latest release of Go.\n\n## Benchmarks\n\nHere are some quick benchmarks comparing the pure-Go and assembly\nimplementations of Sum64.\n\n| input size | purego    | asm       |\n| ---------- | --------- | --------- |\n| 4 B        |  1.3 GB/s |  1.2 GB/s |\n| 16 B       |  2.9 GB/s |  3.5 GB/s |\n| 100 B      |  6.9 GB/s |  8.1 GB/s |\n| 4 KB       | 11.7 GB/s | 16.7 GB/s |\n| 10 MB      | 12.0 GB/s | 17.3 GB/s |\n\nThese numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C\nCPU using the following commands under Go 1.19.2:\n\n```\nbenchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$')\nbenchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$')\n```\n\n## Projects using this package\n\n- [InfluxDB](https://github.com/influxdata/influxdb)\n- [Prometheus](https://github.com/prometheus/prometheus)\n- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)\n- [FreeCache](https://github.com/coocood/freecache)\n- [FastCache](https://github.com/VictoriaMetrics/fastcache)\n- [Ristretto](https://github.com/dgraph-io/ristretto)\n- [Badger](https://github.com/dgraph-io/badger)\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/testall.sh",
    "content": "#!/bin/bash\nset -eu -o pipefail\n\n# Small convenience script for running the tests with various combinations of\n# arch/tags. This assumes we're running on amd64 and have qemu available.\n\ngo test ./...\ngo test -tags purego ./...\nGOARCH=arm64 go test\nGOARCH=arm64 go test -tags purego\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash.go",
    "content": "// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described\n// at http://cyan4973.github.io/xxHash/.\npackage xxhash\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"math/bits\"\n)\n\nconst (\n\tprime1 uint64 = 11400714785074694791\n\tprime2 uint64 = 14029467366897019727\n\tprime3 uint64 = 1609587929392839161\n\tprime4 uint64 = 9650029242287828579\n\tprime5 uint64 = 2870177450012600261\n)\n\n// Store the primes in an array as well.\n//\n// The consts are used when possible in Go code to avoid MOVs but we need a\n// contiguous array for the assembly code.\nvar primes = [...]uint64{prime1, prime2, prime3, prime4, prime5}\n\n// Digest implements hash.Hash64.\n//\n// Note that a zero-valued Digest is not ready to receive writes.\n// Call Reset or create a Digest using New before calling other methods.\ntype Digest struct {\n\tv1    uint64\n\tv2    uint64\n\tv3    uint64\n\tv4    uint64\n\ttotal uint64\n\tmem   [32]byte\n\tn     int // how much of mem is used\n}\n\n// New creates a new Digest with a zero seed.\nfunc New() *Digest {\n\treturn NewWithSeed(0)\n}\n\n// NewWithSeed creates a new Digest with the given seed.\nfunc NewWithSeed(seed uint64) *Digest {\n\tvar d Digest\n\td.ResetWithSeed(seed)\n\treturn &d\n}\n\n// Reset clears the Digest's state so that it can be reused.\n// It uses a seed value of zero.\nfunc (d *Digest) Reset() {\n\td.ResetWithSeed(0)\n}\n\n// ResetWithSeed clears the Digest's state so that it can be reused.\n// It uses the given seed to initialize the state.\nfunc (d *Digest) ResetWithSeed(seed uint64) {\n\td.v1 = seed + prime1 + prime2\n\td.v2 = seed + prime2\n\td.v3 = seed\n\td.v4 = seed - prime1\n\td.total = 0\n\td.n = 0\n}\n\n// Size always returns 8 bytes.\nfunc (d *Digest) Size() int { return 8 }\n\n// BlockSize always returns 32 bytes.\nfunc (d *Digest) BlockSize() int { return 32 }\n\n// Write adds more data to d. It always returns len(b), nil.\nfunc (d *Digest) Write(b []byte) (n int, err error) {\n\tn = len(b)\n\td.total += uint64(n)\n\n\tmemleft := d.mem[d.n&(len(d.mem)-1):]\n\n\tif d.n+n < 32 {\n\t\t// This new data doesn't even fill the current block.\n\t\tcopy(memleft, b)\n\t\td.n += n\n\t\treturn\n\t}\n\n\tif d.n > 0 {\n\t\t// Finish off the partial block.\n\t\tc := copy(memleft, b)\n\t\td.v1 = round(d.v1, u64(d.mem[0:8]))\n\t\td.v2 = round(d.v2, u64(d.mem[8:16]))\n\t\td.v3 = round(d.v3, u64(d.mem[16:24]))\n\t\td.v4 = round(d.v4, u64(d.mem[24:32]))\n\t\tb = b[c:]\n\t\td.n = 0\n\t}\n\n\tif len(b) >= 32 {\n\t\t// One or more full blocks left.\n\t\tnw := writeBlocks(d, b)\n\t\tb = b[nw:]\n\t}\n\n\t// Store any remaining partial block.\n\tcopy(d.mem[:], b)\n\td.n = len(b)\n\n\treturn\n}\n\n// Sum appends the current hash to b and returns the resulting slice.\nfunc (d *Digest) Sum(b []byte) []byte {\n\ts := d.Sum64()\n\treturn append(\n\t\tb,\n\t\tbyte(s>>56),\n\t\tbyte(s>>48),\n\t\tbyte(s>>40),\n\t\tbyte(s>>32),\n\t\tbyte(s>>24),\n\t\tbyte(s>>16),\n\t\tbyte(s>>8),\n\t\tbyte(s),\n\t)\n}\n\n// Sum64 returns the current hash.\nfunc (d *Digest) Sum64() uint64 {\n\tvar h uint64\n\n\tif d.total >= 32 {\n\t\tv1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4\n\t\th = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)\n\t\th = mergeRound(h, v1)\n\t\th = mergeRound(h, v2)\n\t\th = mergeRound(h, v3)\n\t\th = mergeRound(h, v4)\n\t} else {\n\t\th = d.v3 + prime5\n\t}\n\n\th += d.total\n\n\tb := d.mem[:d.n&(len(d.mem)-1)]\n\tfor ; len(b) >= 8; b = b[8:] {\n\t\tk1 := round(0, u64(b[:8]))\n\t\th ^= k1\n\t\th = rol27(h)*prime1 + prime4\n\t}\n\tif len(b) >= 4 {\n\t\th ^= uint64(u32(b[:4])) * prime1\n\t\th = rol23(h)*prime2 + prime3\n\t\tb = b[4:]\n\t}\n\tfor ; len(b) > 0; b = b[1:] {\n\t\th ^= uint64(b[0]) * prime5\n\t\th = rol11(h) * prime1\n\t}\n\n\th ^= h >> 33\n\th *= prime2\n\th ^= h >> 29\n\th *= prime3\n\th ^= h >> 32\n\n\treturn h\n}\n\nconst (\n\tmagic         = \"xxh\\x06\"\n\tmarshaledSize = len(magic) + 8*5 + 32\n)\n\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (d *Digest) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 0, marshaledSize)\n\tb = append(b, magic...)\n\tb = appendUint64(b, d.v1)\n\tb = appendUint64(b, d.v2)\n\tb = appendUint64(b, d.v3)\n\tb = appendUint64(b, d.v4)\n\tb = appendUint64(b, d.total)\n\tb = append(b, d.mem[:d.n]...)\n\tb = b[:len(b)+len(d.mem)-d.n]\n\treturn b, nil\n}\n\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (d *Digest) UnmarshalBinary(b []byte) error {\n\tif len(b) < len(magic) || string(b[:len(magic)]) != magic {\n\t\treturn errors.New(\"xxhash: invalid hash state identifier\")\n\t}\n\tif len(b) != marshaledSize {\n\t\treturn errors.New(\"xxhash: invalid hash state size\")\n\t}\n\tb = b[len(magic):]\n\tb, d.v1 = consumeUint64(b)\n\tb, d.v2 = consumeUint64(b)\n\tb, d.v3 = consumeUint64(b)\n\tb, d.v4 = consumeUint64(b)\n\tb, d.total = consumeUint64(b)\n\tcopy(d.mem[:], b)\n\td.n = int(d.total % uint64(len(d.mem)))\n\treturn nil\n}\n\nfunc appendUint64(b []byte, x uint64) []byte {\n\tvar a [8]byte\n\tbinary.LittleEndian.PutUint64(a[:], x)\n\treturn append(b, a[:]...)\n}\n\nfunc consumeUint64(b []byte) ([]byte, uint64) {\n\tx := u64(b)\n\treturn b[8:], x\n}\n\nfunc u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) }\nfunc u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) }\n\nfunc round(acc, input uint64) uint64 {\n\tacc += input * prime2\n\tacc = rol31(acc)\n\tacc *= prime1\n\treturn acc\n}\n\nfunc mergeRound(acc, val uint64) uint64 {\n\tval = round(0, val)\n\tacc ^= val\n\tacc = acc*prime1 + prime4\n\treturn acc\n}\n\nfunc rol1(x uint64) uint64  { return bits.RotateLeft64(x, 1) }\nfunc rol7(x uint64) uint64  { return bits.RotateLeft64(x, 7) }\nfunc rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }\nfunc rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }\nfunc rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }\nfunc rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }\nfunc rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }\nfunc rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s",
    "content": "//go:build !appengine && gc && !purego\n// +build !appengine\n// +build gc\n// +build !purego\n\n#include \"textflag.h\"\n\n// Registers:\n#define h      AX\n#define d      AX\n#define p      SI // pointer to advance through b\n#define n      DX\n#define end    BX // loop end\n#define v1     R8\n#define v2     R9\n#define v3     R10\n#define v4     R11\n#define x      R12\n#define prime1 R13\n#define prime2 R14\n#define prime4 DI\n\n#define round(acc, x) \\\n\tIMULQ prime2, x   \\\n\tADDQ  x, acc      \\\n\tROLQ  $31, acc    \\\n\tIMULQ prime1, acc\n\n// round0 performs the operation x = round(0, x).\n#define round0(x) \\\n\tIMULQ prime2, x \\\n\tROLQ  $31, x    \\\n\tIMULQ prime1, x\n\n// mergeRound applies a merge round on the two registers acc and x.\n// It assumes that prime1, prime2, and prime4 have been loaded.\n#define mergeRound(acc, x) \\\n\tround0(x)         \\\n\tXORQ  x, acc      \\\n\tIMULQ prime1, acc \\\n\tADDQ  prime4, acc\n\n// blockLoop processes as many 32-byte blocks as possible,\n// updating v1, v2, v3, and v4. It assumes that there is at least one block\n// to process.\n#define blockLoop() \\\nloop:  \\\n\tMOVQ +0(p), x  \\\n\tround(v1, x)   \\\n\tMOVQ +8(p), x  \\\n\tround(v2, x)   \\\n\tMOVQ +16(p), x \\\n\tround(v3, x)   \\\n\tMOVQ +24(p), x \\\n\tround(v4, x)   \\\n\tADDQ $32, p    \\\n\tCMPQ p, end    \\\n\tJLE  loop\n\n// func Sum64(b []byte) uint64\nTEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32\n\t// Load fixed primes.\n\tMOVQ ·primes+0(SB), prime1\n\tMOVQ ·primes+8(SB), prime2\n\tMOVQ ·primes+24(SB), prime4\n\n\t// Load slice.\n\tMOVQ b_base+0(FP), p\n\tMOVQ b_len+8(FP), n\n\tLEAQ (p)(n*1), end\n\n\t// The first loop limit will be len(b)-32.\n\tSUBQ $32, end\n\n\t// Check whether we have at least one block.\n\tCMPQ n, $32\n\tJLT  noBlocks\n\n\t// Set up initial state (v1, v2, v3, v4).\n\tMOVQ prime1, v1\n\tADDQ prime2, v1\n\tMOVQ prime2, v2\n\tXORQ v3, v3\n\tXORQ v4, v4\n\tSUBQ prime1, v4\n\n\tblockLoop()\n\n\tMOVQ v1, h\n\tROLQ $1, h\n\tMOVQ v2, x\n\tROLQ $7, x\n\tADDQ x, h\n\tMOVQ v3, x\n\tROLQ $12, x\n\tADDQ x, h\n\tMOVQ v4, x\n\tROLQ $18, x\n\tADDQ x, h\n\n\tmergeRound(h, v1)\n\tmergeRound(h, v2)\n\tmergeRound(h, v3)\n\tmergeRound(h, v4)\n\n\tJMP afterBlocks\n\nnoBlocks:\n\tMOVQ ·primes+32(SB), h\n\nafterBlocks:\n\tADDQ n, h\n\n\tADDQ $24, end\n\tCMPQ p, end\n\tJG   try4\n\nloop8:\n\tMOVQ  (p), x\n\tADDQ  $8, p\n\tround0(x)\n\tXORQ  x, h\n\tROLQ  $27, h\n\tIMULQ prime1, h\n\tADDQ  prime4, h\n\n\tCMPQ p, end\n\tJLE  loop8\n\ntry4:\n\tADDQ $4, end\n\tCMPQ p, end\n\tJG   try1\n\n\tMOVL  (p), x\n\tADDQ  $4, p\n\tIMULQ prime1, x\n\tXORQ  x, h\n\n\tROLQ  $23, h\n\tIMULQ prime2, h\n\tADDQ  ·primes+16(SB), h\n\ntry1:\n\tADDQ $4, end\n\tCMPQ p, end\n\tJGE  finalize\n\nloop1:\n\tMOVBQZX (p), x\n\tADDQ    $1, p\n\tIMULQ   ·primes+32(SB), x\n\tXORQ    x, h\n\tROLQ    $11, h\n\tIMULQ   prime1, h\n\n\tCMPQ p, end\n\tJL   loop1\n\nfinalize:\n\tMOVQ  h, x\n\tSHRQ  $33, x\n\tXORQ  x, h\n\tIMULQ prime2, h\n\tMOVQ  h, x\n\tSHRQ  $29, x\n\tXORQ  x, h\n\tIMULQ ·primes+16(SB), h\n\tMOVQ  h, x\n\tSHRQ  $32, x\n\tXORQ  x, h\n\n\tMOVQ h, ret+24(FP)\n\tRET\n\n// func writeBlocks(d *Digest, b []byte) int\nTEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40\n\t// Load fixed primes needed for round.\n\tMOVQ ·primes+0(SB), prime1\n\tMOVQ ·primes+8(SB), prime2\n\n\t// Load slice.\n\tMOVQ b_base+8(FP), p\n\tMOVQ b_len+16(FP), n\n\tLEAQ (p)(n*1), end\n\tSUBQ $32, end\n\n\t// Load vN from d.\n\tMOVQ s+0(FP), d\n\tMOVQ 0(d), v1\n\tMOVQ 8(d), v2\n\tMOVQ 16(d), v3\n\tMOVQ 24(d), v4\n\n\t// We don't need to check the loop condition here; this function is\n\t// always called with at least one block of data to process.\n\tblockLoop()\n\n\t// Copy vN back to d.\n\tMOVQ v1, 0(d)\n\tMOVQ v2, 8(d)\n\tMOVQ v3, 16(d)\n\tMOVQ v4, 24(d)\n\n\t// The number of bytes written is p minus the old base pointer.\n\tSUBQ b_base+8(FP), p\n\tMOVQ p, ret+32(FP)\n\n\tRET\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s",
    "content": "//go:build !appengine && gc && !purego\n// +build !appengine\n// +build gc\n// +build !purego\n\n#include \"textflag.h\"\n\n// Registers:\n#define digest\tR1\n#define h\tR2 // return value\n#define p\tR3 // input pointer\n#define n\tR4 // input length\n#define nblocks\tR5 // n / 32\n#define prime1\tR7\n#define prime2\tR8\n#define prime3\tR9\n#define prime4\tR10\n#define prime5\tR11\n#define v1\tR12\n#define v2\tR13\n#define v3\tR14\n#define v4\tR15\n#define x1\tR20\n#define x2\tR21\n#define x3\tR22\n#define x4\tR23\n\n#define round(acc, x) \\\n\tMADD prime2, acc, x, acc \\\n\tROR  $64-31, acc         \\\n\tMUL  prime1, acc\n\n// round0 performs the operation x = round(0, x).\n#define round0(x) \\\n\tMUL prime2, x \\\n\tROR $64-31, x \\\n\tMUL prime1, x\n\n#define mergeRound(acc, x) \\\n\tround0(x)                     \\\n\tEOR  x, acc                   \\\n\tMADD acc, prime4, prime1, acc\n\n// blockLoop processes as many 32-byte blocks as possible,\n// updating v1, v2, v3, and v4. It assumes that n >= 32.\n#define blockLoop() \\\n\tLSR     $5, n, nblocks  \\\n\tPCALIGN $16             \\\n\tloop:                   \\\n\tLDP.P   16(p), (x1, x2) \\\n\tLDP.P   16(p), (x3, x4) \\\n\tround(v1, x1)           \\\n\tround(v2, x2)           \\\n\tround(v3, x3)           \\\n\tround(v4, x4)           \\\n\tSUB     $1, nblocks     \\\n\tCBNZ    nblocks, loop\n\n// func Sum64(b []byte) uint64\nTEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32\n\tLDP b_base+0(FP), (p, n)\n\n\tLDP  ·primes+0(SB), (prime1, prime2)\n\tLDP  ·primes+16(SB), (prime3, prime4)\n\tMOVD ·primes+32(SB), prime5\n\n\tCMP  $32, n\n\tCSEL LT, prime5, ZR, h // if n < 32 { h = prime5 } else { h = 0 }\n\tBLT  afterLoop\n\n\tADD  prime1, prime2, v1\n\tMOVD prime2, v2\n\tMOVD $0, v3\n\tNEG  prime1, v4\n\n\tblockLoop()\n\n\tROR $64-1, v1, x1\n\tROR $64-7, v2, x2\n\tADD x1, x2\n\tROR $64-12, v3, x3\n\tROR $64-18, v4, x4\n\tADD x3, x4\n\tADD x2, x4, h\n\n\tmergeRound(h, v1)\n\tmergeRound(h, v2)\n\tmergeRound(h, v3)\n\tmergeRound(h, v4)\n\nafterLoop:\n\tADD n, h\n\n\tTBZ   $4, n, try8\n\tLDP.P 16(p), (x1, x2)\n\n\tround0(x1)\n\n\t// NOTE: here and below, sequencing the EOR after the ROR (using a\n\t// rotated register) is worth a small but measurable speedup for small\n\t// inputs.\n\tROR  $64-27, h\n\tEOR  x1 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\n\tround0(x2)\n\tROR  $64-27, h\n\tEOR  x2 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\ntry8:\n\tTBZ    $3, n, try4\n\tMOVD.P 8(p), x1\n\n\tround0(x1)\n\tROR  $64-27, h\n\tEOR  x1 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\ntry4:\n\tTBZ     $2, n, try2\n\tMOVWU.P 4(p), x2\n\n\tMUL  prime1, x2\n\tROR  $64-23, h\n\tEOR  x2 @> 64-23, h, h\n\tMADD h, prime3, prime2, h\n\ntry2:\n\tTBZ     $1, n, try1\n\tMOVHU.P 2(p), x3\n\tAND     $255, x3, x1\n\tLSR     $8, x3, x2\n\n\tMUL prime5, x1\n\tROR $64-11, h\n\tEOR x1 @> 64-11, h, h\n\tMUL prime1, h\n\n\tMUL prime5, x2\n\tROR $64-11, h\n\tEOR x2 @> 64-11, h, h\n\tMUL prime1, h\n\ntry1:\n\tTBZ   $0, n, finalize\n\tMOVBU (p), x4\n\n\tMUL prime5, x4\n\tROR $64-11, h\n\tEOR x4 @> 64-11, h, h\n\tMUL prime1, h\n\nfinalize:\n\tEOR h >> 33, h\n\tMUL prime2, h\n\tEOR h >> 29, h\n\tMUL prime3, h\n\tEOR h >> 32, h\n\n\tMOVD h, ret+24(FP)\n\tRET\n\n// func writeBlocks(d *Digest, b []byte) int\nTEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40\n\tLDP ·primes+0(SB), (prime1, prime2)\n\n\t// Load state. Assume v[1-4] are stored contiguously.\n\tMOVD d+0(FP), digest\n\tLDP  0(digest), (v1, v2)\n\tLDP  16(digest), (v3, v4)\n\n\tLDP b_base+8(FP), (p, n)\n\n\tblockLoop()\n\n\t// Store updated state.\n\tSTP (v1, v2), 0(digest)\n\tSTP (v3, v4), 16(digest)\n\n\tBIC  $31, n\n\tMOVD n, ret+32(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_asm.go",
    "content": "//go:build (amd64 || arm64) && !appengine && gc && !purego\n// +build amd64 arm64\n// +build !appengine\n// +build gc\n// +build !purego\n\npackage xxhash\n\n// Sum64 computes the 64-bit xxHash digest of b with a zero seed.\n//\n//go:noescape\nfunc Sum64(b []byte) uint64\n\n//go:noescape\nfunc writeBlocks(d *Digest, b []byte) int\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_other.go",
    "content": "//go:build (!amd64 && !arm64) || appengine || !gc || purego\n// +build !amd64,!arm64 appengine !gc purego\n\npackage xxhash\n\n// Sum64 computes the 64-bit xxHash digest of b with a zero seed.\nfunc Sum64(b []byte) uint64 {\n\t// A simpler version would be\n\t//   d := New()\n\t//   d.Write(b)\n\t//   return d.Sum64()\n\t// but this is faster, particularly for small inputs.\n\n\tn := len(b)\n\tvar h uint64\n\n\tif n >= 32 {\n\t\tv1 := primes[0] + prime2\n\t\tv2 := prime2\n\t\tv3 := uint64(0)\n\t\tv4 := -primes[0]\n\t\tfor len(b) >= 32 {\n\t\t\tv1 = round(v1, u64(b[0:8:len(b)]))\n\t\t\tv2 = round(v2, u64(b[8:16:len(b)]))\n\t\t\tv3 = round(v3, u64(b[16:24:len(b)]))\n\t\t\tv4 = round(v4, u64(b[24:32:len(b)]))\n\t\t\tb = b[32:len(b):len(b)]\n\t\t}\n\t\th = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)\n\t\th = mergeRound(h, v1)\n\t\th = mergeRound(h, v2)\n\t\th = mergeRound(h, v3)\n\t\th = mergeRound(h, v4)\n\t} else {\n\t\th = prime5\n\t}\n\n\th += uint64(n)\n\n\tfor ; len(b) >= 8; b = b[8:] {\n\t\tk1 := round(0, u64(b[:8]))\n\t\th ^= k1\n\t\th = rol27(h)*prime1 + prime4\n\t}\n\tif len(b) >= 4 {\n\t\th ^= uint64(u32(b[:4])) * prime1\n\t\th = rol23(h)*prime2 + prime3\n\t\tb = b[4:]\n\t}\n\tfor ; len(b) > 0; b = b[1:] {\n\t\th ^= uint64(b[0]) * prime5\n\t\th = rol11(h) * prime1\n\t}\n\n\th ^= h >> 33\n\th *= prime2\n\th ^= h >> 29\n\th *= prime3\n\th ^= h >> 32\n\n\treturn h\n}\n\nfunc writeBlocks(d *Digest, b []byte) int {\n\tv1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4\n\tn := len(b)\n\tfor len(b) >= 32 {\n\t\tv1 = round(v1, u64(b[0:8:len(b)]))\n\t\tv2 = round(v2, u64(b[8:16:len(b)]))\n\t\tv3 = round(v3, u64(b[16:24:len(b)]))\n\t\tv4 = round(v4, u64(b[24:32:len(b)]))\n\t\tb = b[32:len(b):len(b)]\n\t}\n\td.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4\n\treturn n - len(b)\n}\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_safe.go",
    "content": "//go:build appengine\n// +build appengine\n\n// This file contains the safe implementations of otherwise unsafe-using code.\n\npackage xxhash\n\n// Sum64String computes the 64-bit xxHash digest of s with a zero seed.\nfunc Sum64String(s string) uint64 {\n\treturn Sum64([]byte(s))\n}\n\n// WriteString adds more data to d. It always returns len(s), nil.\nfunc (d *Digest) WriteString(s string) (n int, err error) {\n\treturn d.Write([]byte(s))\n}\n"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go",
    "content": "//go:build !appengine\n// +build !appengine\n\n// This file encapsulates usage of unsafe.\n// xxhash_safe.go contains the safe implementations.\n\npackage xxhash\n\nimport (\n\t\"unsafe\"\n)\n\n// In the future it's possible that compiler optimizations will make these\n// XxxString functions unnecessary by realizing that calls such as\n// Sum64([]byte(s)) don't need to copy s. See https://go.dev/issue/2205.\n// If that happens, even if we keep these functions they can be replaced with\n// the trivial safe code.\n\n// NOTE: The usual way of doing an unsafe string-to-[]byte conversion is:\n//\n//   var b []byte\n//   bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))\n//   bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data\n//   bh.Len = len(s)\n//   bh.Cap = len(s)\n//\n// Unfortunately, as of Go 1.15.3 the inliner's cost model assigns a high enough\n// weight to this sequence of expressions that any function that uses it will\n// not be inlined. Instead, the functions below use a different unsafe\n// conversion designed to minimize the inliner weight and allow both to be\n// inlined. There is also a test (TestInlining) which verifies that these are\n// inlined.\n//\n// See https://github.com/golang/go/issues/42739 for discussion.\n\n// Sum64String computes the 64-bit xxHash digest of s with a zero seed.\n// It may be faster than Sum64([]byte(s)) by avoiding a copy.\nfunc Sum64String(s string) uint64 {\n\tb := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)}))\n\treturn Sum64(b)\n}\n\n// WriteString adds more data to d. It always returns len(s), nil.\n// It may be faster than Write([]byte(s)) by avoiding a copy.\nfunc (d *Digest) WriteString(s string) (n int, err error) {\n\td.Write(*(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})))\n\t// d.Write always returns len(s), nil.\n\t// Ignoring the return output and returning these fixed values buys a\n\t// savings of 6 in the inliner's cost model.\n\treturn len(s), nil\n}\n\n// sliceHeader is similar to reflect.SliceHeader, but it assumes that the layout\n// of the first two words is the same as the layout of a string.\ntype sliceHeader struct {\n\ts   string\n\tcap int\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/adjustment.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\n//\n// Notes:\n//   Adjustment of metadata that is stored in maps (labels and annotations)\n//   currently assumes that a single plugin will never do an add prior to a\n//   delete for any key. IOW, it is always assumed that if both a deletion\n//   and an addition/setting was recorded for a key then the final desired\n//   state is the addition. This seems like a reasonably safe assumption. A\n//   removal is usually done only to protect against triggering the conflict\n//   in the runtime when a plugin intends to touch a key which is known to\n//   have been put there or already modified by another plugin.\n//\n//   An alternative without this implicit ordering assumption would be to\n//   store the adjustment for such data as a sequence of add/del operations\n//   in a slice. At the moment that does not seem to be necessary.\n//\n\n// AddAnnotation records the addition of the annotation key=value.\nfunc (a *ContainerAdjustment) AddAnnotation(key, value string) {\n\ta.initAnnotations()\n\ta.Annotations[key] = value\n}\n\n// RemoveAnnotation records the removal of the annotation for the given key.\n// Normally it is an error for a plugin to try and alter an annotation\n// touched by another plugin. However, this is not an error if the plugin\n// removes that annotation prior to touching it.\nfunc (a *ContainerAdjustment) RemoveAnnotation(key string) {\n\ta.initAnnotations()\n\ta.Annotations[MarkForRemoval(key)] = \"\"\n}\n\n// AddMount records the addition of a mount to a container.\nfunc (a *ContainerAdjustment) AddMount(m *Mount) {\n\ta.Mounts = append(a.Mounts, m) // TODO: should we dup m here ?\n}\n\n// RemoveMount records the removal of a mount from a container.\n// Normally it is an error for a plugin to try and alter a mount\n// touched by another plugin. However, this is not an error if the\n// plugin removes that mount prior to touching it.\nfunc (a *ContainerAdjustment) RemoveMount(ContainerPath string) {\n\ta.Mounts = append(a.Mounts, &Mount{\n\t\tDestination: MarkForRemoval(ContainerPath),\n\t})\n}\n\n// AddEnv records the addition of an environment variable to a container.\nfunc (a *ContainerAdjustment) AddEnv(key, value string) {\n\ta.Env = append(a.Env, &KeyValue{\n\t\tKey:   key,\n\t\tValue: value,\n\t})\n}\n\n// RemoveEnv records the removal of an environment variable from a container.\n// Normally it is an error for a plugin to try and alter an environment\n// variable touched by another container. However, this is not an error if\n// the plugin removes that variable prior to touching it.\nfunc (a *ContainerAdjustment) RemoveEnv(key string) {\n\ta.Env = append(a.Env, &KeyValue{\n\t\tKey: MarkForRemoval(key),\n\t})\n}\n\n// AddHooks records the addition of the given hooks to a container.\nfunc (a *ContainerAdjustment) AddHooks(h *Hooks) {\n\ta.initHooks()\n\tif h.Prestart != nil {\n\t\ta.Hooks.Prestart = append(a.Hooks.Prestart, h.Prestart...)\n\t}\n\tif h.CreateRuntime != nil {\n\t\ta.Hooks.CreateRuntime = append(a.Hooks.CreateRuntime, h.CreateRuntime...)\n\t}\n\tif h.CreateContainer != nil {\n\t\ta.Hooks.CreateContainer = append(a.Hooks.CreateContainer, h.CreateContainer...)\n\t}\n\tif h.StartContainer != nil {\n\t\ta.Hooks.StartContainer = append(a.Hooks.StartContainer, h.StartContainer...)\n\t}\n\tif h.Poststart != nil {\n\t\ta.Hooks.Poststart = append(a.Hooks.Poststart, h.Poststart...)\n\t}\n\tif h.Poststop != nil {\n\t\ta.Hooks.Poststop = append(a.Hooks.Poststop, h.Poststop...)\n\t}\n}\n\nfunc (a *ContainerAdjustment) AddRlimit(typ string, hard, soft uint64) {\n\ta.initRlimits()\n\ta.Rlimits = append(a.Rlimits, &POSIXRlimit{\n\t\tType: typ,\n\t\tHard: hard,\n\t\tSoft: soft,\n\t})\n}\n\n// AddDevice records the addition of the given device to a container.\nfunc (a *ContainerAdjustment) AddDevice(d *LinuxDevice) {\n\ta.initLinux()\n\ta.Linux.Devices = append(a.Linux.Devices, d) // TODO: should we dup d here ?\n}\n\n// RemoveDevice records the removal of a device from a container.\n// Normally it is an error for a plugin to try and alter an device\n// touched by another container. However, this is not an error if\n// the plugin removes that device prior to touching it.\nfunc (a *ContainerAdjustment) RemoveDevice(path string) {\n\ta.initLinux()\n\ta.Linux.Devices = append(a.Linux.Devices, &LinuxDevice{\n\t\tPath: MarkForRemoval(path),\n\t})\n}\n\n// SetLinuxMemoryLimit records setting the memory limit for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryLimit(value int64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.Limit = Int64(value)\n}\n\n// SetLinuxMemoryReservation records setting the memory reservation for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryReservation(value int64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.Reservation = Int64(value)\n}\n\n// SetLinuxMemorySwap records records setting the memory swap limit for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemorySwap(value int64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.Swap = Int64(value)\n}\n\n// SetLinuxMemoryKernel records setting the memory kernel limit for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryKernel(value int64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.Kernel = Int64(value)\n}\n\n// SetLinuxMemoryKernelTCP records setting the memory kernel TCP limit for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryKernelTCP(value int64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.KernelTcp = Int64(value)\n}\n\n// SetLinuxMemorySwappiness records setting the memory swappiness for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemorySwappiness(value uint64) {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.Swappiness = UInt64(value)\n}\n\n// SetLinuxMemoryDisableOomKiller records disabling the OOM killer for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryDisableOomKiller() {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.DisableOomKiller = Bool(true)\n}\n\n// SetLinuxMemoryUseHierarchy records enabling hierarchical memory accounting for a container.\nfunc (a *ContainerAdjustment) SetLinuxMemoryUseHierarchy() {\n\ta.initLinuxResourcesMemory()\n\ta.Linux.Resources.Memory.UseHierarchy = Bool(true)\n}\n\n// SetLinuxCPUShares records setting the scheduler's CPU shares for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPUShares(value uint64) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.Shares = UInt64(value)\n}\n\n// SetLinuxCPUQuota records setting the scheduler's CPU quota for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPUQuota(value int64) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.Quota = Int64(value)\n}\n\n// SetLinuxCPUPeriod records setting the scheduler's CPU period for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPUPeriod(value int64) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.Period = UInt64(value)\n}\n\n// SetLinuxCPURealtimeRuntime records setting the scheduler's realtime runtime for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPURealtimeRuntime(value int64) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.RealtimeRuntime = Int64(value)\n}\n\n// SetLinuxCPURealtimePeriod records setting the scheduler's realtime period for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPURealtimePeriod(value uint64) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.RealtimePeriod = UInt64(value)\n}\n\n// SetLinuxCPUSetCPUs records setting the cpuset CPUs for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPUSetCPUs(value string) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.Cpus = value\n}\n\n// SetLinuxCPUSetMems records setting the cpuset memory for a container.\nfunc (a *ContainerAdjustment) SetLinuxCPUSetMems(value string) {\n\ta.initLinuxResourcesCPU()\n\ta.Linux.Resources.Cpu.Mems = value\n}\n\n// AddLinuxHugepageLimit records adding a hugepage limit for a container.\nfunc (a *ContainerAdjustment) AddLinuxHugepageLimit(pageSize string, value uint64) {\n\ta.initLinuxResources()\n\ta.Linux.Resources.HugepageLimits = append(a.Linux.Resources.HugepageLimits,\n\t\t&HugepageLimit{\n\t\t\tPageSize: pageSize,\n\t\t\tLimit:    value,\n\t\t})\n}\n\n// SetLinuxBlockIOClass records setting the Block I/O class for a container.\nfunc (a *ContainerAdjustment) SetLinuxBlockIOClass(value string) {\n\ta.initLinuxResources()\n\ta.Linux.Resources.BlockioClass = String(value)\n}\n\n// SetLinuxRDTClass records setting the RDT class for a container.\nfunc (a *ContainerAdjustment) SetLinuxRDTClass(value string) {\n\ta.initLinuxResources()\n\ta.Linux.Resources.RdtClass = String(value)\n}\n\n// AddLinuxUnified sets a cgroupv2 unified resource.\nfunc (a *ContainerAdjustment) AddLinuxUnified(key, value string) {\n\ta.initLinuxResourcesUnified()\n\ta.Linux.Resources.Unified[key] = value\n}\n\n// SetLinuxCgroupsPath records setting the cgroups path for a container.\nfunc (a *ContainerAdjustment) SetLinuxCgroupsPath(value string) {\n\ta.initLinux()\n\ta.Linux.CgroupsPath = value\n}\n\n//\n// Initializing a container adjustment and container update.\n//\n\nfunc (a *ContainerAdjustment) initAnnotations() {\n\tif a.Annotations == nil {\n\t\ta.Annotations = make(map[string]string)\n\t}\n}\n\nfunc (a *ContainerAdjustment) initHooks() {\n\tif a.Hooks == nil {\n\t\ta.Hooks = &Hooks{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initRlimits() {\n\tif a.Rlimits == nil {\n\t\ta.Rlimits = []*POSIXRlimit{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initLinux() {\n\tif a.Linux == nil {\n\t\ta.Linux = &LinuxContainerAdjustment{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initLinuxResources() {\n\ta.initLinux()\n\tif a.Linux.Resources == nil {\n\t\ta.Linux.Resources = &LinuxResources{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initLinuxResourcesMemory() {\n\ta.initLinuxResources()\n\tif a.Linux.Resources.Memory == nil {\n\t\ta.Linux.Resources.Memory = &LinuxMemory{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initLinuxResourcesCPU() {\n\ta.initLinuxResources()\n\tif a.Linux.Resources.Cpu == nil {\n\t\ta.Linux.Resources.Cpu = &LinuxCPU{}\n\t}\n}\n\nfunc (a *ContainerAdjustment) initLinuxResourcesUnified() {\n\ta.initLinuxResources()\n\tif a.Linux.Resources.Unified == nil {\n\t\ta.Linux.Resources.Unified = make(map[string]string)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/api.pb.go",
    "content": "//\n//Copyright The containerd Authors.\n//\n//Licensed under the Apache License, Version 2.0 (the \"License\");\n//you may not use this file except in compliance with the License.\n//You may obtain a copy of the License at\n//\n//http://www.apache.org/licenses/LICENSE-2.0\n//\n//Unless required by applicable law or agreed to in writing, software\n//distributed under the License is distributed on an \"AS IS\" BASIS,\n//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//See the License for the specific language governing permissions and\n//limitations under the License.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.28.1\n// \tprotoc        v3.20.1\n// source: pkg/api/api.proto\n\npackage api\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\n// Events that plugins can subscribe to in ConfigureResponse.\ntype Event int32\n\nconst (\n\tEvent_UNKNOWN               Event = 0\n\tEvent_RUN_POD_SANDBOX       Event = 1\n\tEvent_STOP_POD_SANDBOX      Event = 2\n\tEvent_REMOVE_POD_SANDBOX    Event = 3\n\tEvent_CREATE_CONTAINER      Event = 4\n\tEvent_POST_CREATE_CONTAINER Event = 5\n\tEvent_START_CONTAINER       Event = 6\n\tEvent_POST_START_CONTAINER  Event = 7\n\tEvent_UPDATE_CONTAINER      Event = 8\n\tEvent_POST_UPDATE_CONTAINER Event = 9\n\tEvent_STOP_CONTAINER        Event = 10\n\tEvent_REMOVE_CONTAINER      Event = 11\n\tEvent_LAST                  Event = 12\n)\n\n// Enum value maps for Event.\nvar (\n\tEvent_name = map[int32]string{\n\t\t0:  \"UNKNOWN\",\n\t\t1:  \"RUN_POD_SANDBOX\",\n\t\t2:  \"STOP_POD_SANDBOX\",\n\t\t3:  \"REMOVE_POD_SANDBOX\",\n\t\t4:  \"CREATE_CONTAINER\",\n\t\t5:  \"POST_CREATE_CONTAINER\",\n\t\t6:  \"START_CONTAINER\",\n\t\t7:  \"POST_START_CONTAINER\",\n\t\t8:  \"UPDATE_CONTAINER\",\n\t\t9:  \"POST_UPDATE_CONTAINER\",\n\t\t10: \"STOP_CONTAINER\",\n\t\t11: \"REMOVE_CONTAINER\",\n\t\t12: \"LAST\",\n\t}\n\tEvent_value = map[string]int32{\n\t\t\"UNKNOWN\":               0,\n\t\t\"RUN_POD_SANDBOX\":       1,\n\t\t\"STOP_POD_SANDBOX\":      2,\n\t\t\"REMOVE_POD_SANDBOX\":    3,\n\t\t\"CREATE_CONTAINER\":      4,\n\t\t\"POST_CREATE_CONTAINER\": 5,\n\t\t\"START_CONTAINER\":       6,\n\t\t\"POST_START_CONTAINER\":  7,\n\t\t\"UPDATE_CONTAINER\":      8,\n\t\t\"POST_UPDATE_CONTAINER\": 9,\n\t\t\"STOP_CONTAINER\":        10,\n\t\t\"REMOVE_CONTAINER\":      11,\n\t\t\"LAST\":                  12,\n\t}\n)\n\nfunc (x Event) Enum() *Event {\n\tp := new(Event)\n\t*p = x\n\treturn p\n}\n\nfunc (x Event) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Event) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_pkg_api_api_proto_enumTypes[0].Descriptor()\n}\n\nfunc (Event) Type() protoreflect.EnumType {\n\treturn &file_pkg_api_api_proto_enumTypes[0]\n}\n\nfunc (x Event) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use Event.Descriptor instead.\nfunc (Event) EnumDescriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{0}\n}\n\n// Possible container states.\ntype ContainerState int32\n\nconst (\n\tContainerState_CONTAINER_UNKNOWN ContainerState = 0\n\tContainerState_CONTAINER_CREATED ContainerState = 1\n\tContainerState_CONTAINER_PAUSED  ContainerState = 2 // is this useful/necessary ?\n\tContainerState_CONTAINER_RUNNING ContainerState = 3\n\tContainerState_CONTAINER_STOPPED ContainerState = 4\n)\n\n// Enum value maps for ContainerState.\nvar (\n\tContainerState_name = map[int32]string{\n\t\t0: \"CONTAINER_UNKNOWN\",\n\t\t1: \"CONTAINER_CREATED\",\n\t\t2: \"CONTAINER_PAUSED\",\n\t\t3: \"CONTAINER_RUNNING\",\n\t\t4: \"CONTAINER_STOPPED\",\n\t}\n\tContainerState_value = map[string]int32{\n\t\t\"CONTAINER_UNKNOWN\": 0,\n\t\t\"CONTAINER_CREATED\": 1,\n\t\t\"CONTAINER_PAUSED\":  2,\n\t\t\"CONTAINER_RUNNING\": 3,\n\t\t\"CONTAINER_STOPPED\": 4,\n\t}\n)\n\nfunc (x ContainerState) Enum() *ContainerState {\n\tp := new(ContainerState)\n\t*p = x\n\treturn p\n}\n\nfunc (x ContainerState) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (ContainerState) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_pkg_api_api_proto_enumTypes[1].Descriptor()\n}\n\nfunc (ContainerState) Type() protoreflect.EnumType {\n\treturn &file_pkg_api_api_proto_enumTypes[1]\n}\n\nfunc (x ContainerState) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use ContainerState.Descriptor instead.\nfunc (ContainerState) EnumDescriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{1}\n}\n\ntype RegisterPluginRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Name of the plugin to register.\n\tPluginName string `protobuf:\"bytes,1,opt,name=plugin_name,json=pluginName,proto3\" json:\"plugin_name,omitempty\"`\n\t// Plugin invocation index. Plugins are called in ascending index order.\n\tPluginIdx string `protobuf:\"bytes,2,opt,name=plugin_idx,json=pluginIdx,proto3\" json:\"plugin_idx,omitempty\"`\n}\n\nfunc (x *RegisterPluginRequest) Reset() {\n\t*x = RegisterPluginRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RegisterPluginRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RegisterPluginRequest) ProtoMessage() {}\n\nfunc (x *RegisterPluginRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RegisterPluginRequest.ProtoReflect.Descriptor instead.\nfunc (*RegisterPluginRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *RegisterPluginRequest) GetPluginName() string {\n\tif x != nil {\n\t\treturn x.PluginName\n\t}\n\treturn \"\"\n}\n\nfunc (x *RegisterPluginRequest) GetPluginIdx() string {\n\tif x != nil {\n\t\treturn x.PluginIdx\n\t}\n\treturn \"\"\n}\n\ntype UpdateContainersRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// List of containers to update.\n\tUpdate []*ContainerUpdate `protobuf:\"bytes,1,rep,name=update,proto3\" json:\"update,omitempty\"`\n\t// List of containers to evict.\n\tEvict []*ContainerEviction `protobuf:\"bytes,2,rep,name=evict,proto3\" json:\"evict,omitempty\"`\n}\n\nfunc (x *UpdateContainersRequest) Reset() {\n\t*x = UpdateContainersRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *UpdateContainersRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UpdateContainersRequest) ProtoMessage() {}\n\nfunc (x *UpdateContainersRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UpdateContainersRequest.ProtoReflect.Descriptor instead.\nfunc (*UpdateContainersRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *UpdateContainersRequest) GetUpdate() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Update\n\t}\n\treturn nil\n}\n\nfunc (x *UpdateContainersRequest) GetEvict() []*ContainerEviction {\n\tif x != nil {\n\t\treturn x.Evict\n\t}\n\treturn nil\n}\n\ntype UpdateContainersResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Containers that the runtime failed to udpate.\n\tFailed []*ContainerUpdate `protobuf:\"bytes,1,rep,name=failed,proto3\" json:\"failed,omitempty\"`\n}\n\nfunc (x *UpdateContainersResponse) Reset() {\n\t*x = UpdateContainersResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *UpdateContainersResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UpdateContainersResponse) ProtoMessage() {}\n\nfunc (x *UpdateContainersResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UpdateContainersResponse.ProtoReflect.Descriptor instead.\nfunc (*UpdateContainersResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *UpdateContainersResponse) GetFailed() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Failed\n\t}\n\treturn nil\n}\n\ntype ConfigureRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Any plugin-specific data, if present among the NRI configuration.\n\tConfig string `protobuf:\"bytes,1,opt,name=config,proto3\" json:\"config,omitempty\"`\n\t// Name of the runtime NRI is running in.\n\tRuntimeName string `protobuf:\"bytes,2,opt,name=runtime_name,json=runtimeName,proto3\" json:\"runtime_name,omitempty\"`\n\t// Version of the runtime NRI is running in.\n\tRuntimeVersion string `protobuf:\"bytes,3,opt,name=runtime_version,json=runtimeVersion,proto3\" json:\"runtime_version,omitempty\"`\n}\n\nfunc (x *ConfigureRequest) Reset() {\n\t*x = ConfigureRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ConfigureRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ConfigureRequest) ProtoMessage() {}\n\nfunc (x *ConfigureRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ConfigureRequest.ProtoReflect.Descriptor instead.\nfunc (*ConfigureRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *ConfigureRequest) GetConfig() string {\n\tif x != nil {\n\t\treturn x.Config\n\t}\n\treturn \"\"\n}\n\nfunc (x *ConfigureRequest) GetRuntimeName() string {\n\tif x != nil {\n\t\treturn x.RuntimeName\n\t}\n\treturn \"\"\n}\n\nfunc (x *ConfigureRequest) GetRuntimeVersion() string {\n\tif x != nil {\n\t\treturn x.RuntimeVersion\n\t}\n\treturn \"\"\n}\n\ntype ConfigureResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Events to subscribe the plugin for. Each bit set corresponds to an\n\t// enumerated Event.\n\tEvents int32 `protobuf:\"varint,2,opt,name=events,proto3\" json:\"events,omitempty\"`\n}\n\nfunc (x *ConfigureResponse) Reset() {\n\t*x = ConfigureResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ConfigureResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ConfigureResponse) ProtoMessage() {}\n\nfunc (x *ConfigureResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ConfigureResponse.ProtoReflect.Descriptor instead.\nfunc (*ConfigureResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *ConfigureResponse) GetEvents() int32 {\n\tif x != nil {\n\t\treturn x.Events\n\t}\n\treturn 0\n}\n\ntype SynchronizeRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Pods known to the runtime.\n\tPods []*PodSandbox `protobuf:\"bytes,1,rep,name=pods,proto3\" json:\"pods,omitempty\"`\n\t// Containers known to the runtime.\n\tContainers []*Container `protobuf:\"bytes,2,rep,name=containers,proto3\" json:\"containers,omitempty\"`\n}\n\nfunc (x *SynchronizeRequest) Reset() {\n\t*x = SynchronizeRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SynchronizeRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SynchronizeRequest) ProtoMessage() {}\n\nfunc (x *SynchronizeRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SynchronizeRequest.ProtoReflect.Descriptor instead.\nfunc (*SynchronizeRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *SynchronizeRequest) GetPods() []*PodSandbox {\n\tif x != nil {\n\t\treturn x.Pods\n\t}\n\treturn nil\n}\n\nfunc (x *SynchronizeRequest) GetContainers() []*Container {\n\tif x != nil {\n\t\treturn x.Containers\n\t}\n\treturn nil\n}\n\ntype SynchronizeResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Updates to containers requested by the plugin.\n\tUpdate []*ContainerUpdate `protobuf:\"bytes,1,rep,name=update,proto3\" json:\"update,omitempty\"`\n}\n\nfunc (x *SynchronizeResponse) Reset() {\n\t*x = SynchronizeResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SynchronizeResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SynchronizeResponse) ProtoMessage() {}\n\nfunc (x *SynchronizeResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SynchronizeResponse.ProtoReflect.Descriptor instead.\nfunc (*SynchronizeResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *SynchronizeResponse) GetUpdate() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Update\n\t}\n\treturn nil\n}\n\ntype CreateContainerRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Pod of container being created.\n\tPod *PodSandbox `protobuf:\"bytes,1,opt,name=pod,proto3\" json:\"pod,omitempty\"`\n\t// Container being created.\n\tContainer *Container `protobuf:\"bytes,2,opt,name=container,proto3\" json:\"container,omitempty\"`\n}\n\nfunc (x *CreateContainerRequest) Reset() {\n\t*x = CreateContainerRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CreateContainerRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CreateContainerRequest) ProtoMessage() {}\n\nfunc (x *CreateContainerRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CreateContainerRequest.ProtoReflect.Descriptor instead.\nfunc (*CreateContainerRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *CreateContainerRequest) GetPod() *PodSandbox {\n\tif x != nil {\n\t\treturn x.Pod\n\t}\n\treturn nil\n}\n\nfunc (x *CreateContainerRequest) GetContainer() *Container {\n\tif x != nil {\n\t\treturn x.Container\n\t}\n\treturn nil\n}\n\ntype CreateContainerResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Requested adjustments to container being created.\n\tAdjust *ContainerAdjustment `protobuf:\"bytes,1,opt,name=adjust,proto3\" json:\"adjust,omitempty\"`\n\t// Requested updates to other existing containers.\n\tUpdate []*ContainerUpdate `protobuf:\"bytes,2,rep,name=update,proto3\" json:\"update,omitempty\"`\n\t// Requested eviction of existing containers.\n\tEvict []*ContainerEviction `protobuf:\"bytes,3,rep,name=evict,proto3\" json:\"evict,omitempty\"`\n}\n\nfunc (x *CreateContainerResponse) Reset() {\n\t*x = CreateContainerResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CreateContainerResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CreateContainerResponse) ProtoMessage() {}\n\nfunc (x *CreateContainerResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CreateContainerResponse.ProtoReflect.Descriptor instead.\nfunc (*CreateContainerResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *CreateContainerResponse) GetAdjust() *ContainerAdjustment {\n\tif x != nil {\n\t\treturn x.Adjust\n\t}\n\treturn nil\n}\n\nfunc (x *CreateContainerResponse) GetUpdate() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Update\n\t}\n\treturn nil\n}\n\nfunc (x *CreateContainerResponse) GetEvict() []*ContainerEviction {\n\tif x != nil {\n\t\treturn x.Evict\n\t}\n\treturn nil\n}\n\ntype UpdateContainerRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Pod of container being updated.\n\tPod *PodSandbox `protobuf:\"bytes,1,opt,name=pod,proto3\" json:\"pod,omitempty\"`\n\t// Container being updated.\n\tContainer *Container `protobuf:\"bytes,2,opt,name=container,proto3\" json:\"container,omitempty\"`\n\t// Resources to update.\n\tLinuxResources *LinuxResources `protobuf:\"bytes,3,opt,name=linux_resources,json=linuxResources,proto3\" json:\"linux_resources,omitempty\"`\n}\n\nfunc (x *UpdateContainerRequest) Reset() {\n\t*x = UpdateContainerRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *UpdateContainerRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UpdateContainerRequest) ProtoMessage() {}\n\nfunc (x *UpdateContainerRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UpdateContainerRequest.ProtoReflect.Descriptor instead.\nfunc (*UpdateContainerRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *UpdateContainerRequest) GetPod() *PodSandbox {\n\tif x != nil {\n\t\treturn x.Pod\n\t}\n\treturn nil\n}\n\nfunc (x *UpdateContainerRequest) GetContainer() *Container {\n\tif x != nil {\n\t\treturn x.Container\n\t}\n\treturn nil\n}\n\nfunc (x *UpdateContainerRequest) GetLinuxResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.LinuxResources\n\t}\n\treturn nil\n}\n\ntype UpdateContainerResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Requested updates to containers.\n\tUpdate []*ContainerUpdate `protobuf:\"bytes,1,rep,name=update,proto3\" json:\"update,omitempty\"`\n\t// Requested eviction of containers.\n\tEvict []*ContainerEviction `protobuf:\"bytes,2,rep,name=evict,proto3\" json:\"evict,omitempty\"`\n}\n\nfunc (x *UpdateContainerResponse) Reset() {\n\t*x = UpdateContainerResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *UpdateContainerResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UpdateContainerResponse) ProtoMessage() {}\n\nfunc (x *UpdateContainerResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UpdateContainerResponse.ProtoReflect.Descriptor instead.\nfunc (*UpdateContainerResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *UpdateContainerResponse) GetUpdate() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Update\n\t}\n\treturn nil\n}\n\nfunc (x *UpdateContainerResponse) GetEvict() []*ContainerEviction {\n\tif x != nil {\n\t\treturn x.Evict\n\t}\n\treturn nil\n}\n\ntype StopContainerRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Pod of container being stopped.\n\tPod *PodSandbox `protobuf:\"bytes,1,opt,name=pod,proto3\" json:\"pod,omitempty\"`\n\t// Container being stopped.\n\tContainer *Container `protobuf:\"bytes,2,opt,name=container,proto3\" json:\"container,omitempty\"`\n}\n\nfunc (x *StopContainerRequest) Reset() {\n\t*x = StopContainerRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StopContainerRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StopContainerRequest) ProtoMessage() {}\n\nfunc (x *StopContainerRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StopContainerRequest.ProtoReflect.Descriptor instead.\nfunc (*StopContainerRequest) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *StopContainerRequest) GetPod() *PodSandbox {\n\tif x != nil {\n\t\treturn x.Pod\n\t}\n\treturn nil\n}\n\nfunc (x *StopContainerRequest) GetContainer() *Container {\n\tif x != nil {\n\t\treturn x.Container\n\t}\n\treturn nil\n}\n\ntype StopContainerResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Requested updates to containers.\n\tUpdate []*ContainerUpdate `protobuf:\"bytes,1,rep,name=update,proto3\" json:\"update,omitempty\"`\n}\n\nfunc (x *StopContainerResponse) Reset() {\n\t*x = StopContainerResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StopContainerResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StopContainerResponse) ProtoMessage() {}\n\nfunc (x *StopContainerResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StopContainerResponse.ProtoReflect.Descriptor instead.\nfunc (*StopContainerResponse) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *StopContainerResponse) GetUpdate() []*ContainerUpdate {\n\tif x != nil {\n\t\treturn x.Update\n\t}\n\treturn nil\n}\n\ntype StateChangeEvent struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Event type of notification.\n\tEvent Event `protobuf:\"varint,1,opt,name=event,proto3,enum=nri.pkg.api.v1alpha1.Event\" json:\"event,omitempty\"`\n\t// Pod this notification is sent for. If this event is related to a container,\n\t// pod is set to the pod of the container.\n\tPod *PodSandbox `protobuf:\"bytes,2,opt,name=pod,proto3\" json:\"pod,omitempty\"`\n\t// Container this notification is sent for. If the event is related to a pod,\n\t// container is nil.\n\tContainer *Container `protobuf:\"bytes,3,opt,name=container,proto3\" json:\"container,omitempty\"`\n}\n\nfunc (x *StateChangeEvent) Reset() {\n\t*x = StateChangeEvent{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StateChangeEvent) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StateChangeEvent) ProtoMessage() {}\n\nfunc (x *StateChangeEvent) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StateChangeEvent.ProtoReflect.Descriptor instead.\nfunc (*StateChangeEvent) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *StateChangeEvent) GetEvent() Event {\n\tif x != nil {\n\t\treturn x.Event\n\t}\n\treturn Event_UNKNOWN\n}\n\nfunc (x *StateChangeEvent) GetPod() *PodSandbox {\n\tif x != nil {\n\t\treturn x.Pod\n\t}\n\treturn nil\n}\n\nfunc (x *StateChangeEvent) GetContainer() *Container {\n\tif x != nil {\n\t\treturn x.Container\n\t}\n\treturn nil\n}\n\n// Empty response for those *Requests that are semantically events.\ntype Empty struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n}\n\nfunc (x *Empty) Reset() {\n\t*x = Empty{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Empty) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Empty) ProtoMessage() {}\n\nfunc (x *Empty) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Empty.ProtoReflect.Descriptor instead.\nfunc (*Empty) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{14}\n}\n\n// Pod metadata that is considered relevant for a plugin.\ntype PodSandbox struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tId             string            `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tName           string            `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUid            string            `protobuf:\"bytes,3,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tNamespace      string            `protobuf:\"bytes,4,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tLabels         map[string]string `protobuf:\"bytes,5,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tAnnotations    map[string]string `protobuf:\"bytes,6,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tRuntimeHandler string            `protobuf:\"bytes,7,opt,name=runtime_handler,json=runtimeHandler,proto3\" json:\"runtime_handler,omitempty\"`\n\tLinux          *LinuxPodSandbox  `protobuf:\"bytes,8,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\tPid            uint32            `protobuf:\"varint,9,opt,name=pid,proto3\" json:\"pid,omitempty\"` // for NRI v1 emulation\n}\n\nfunc (x *PodSandbox) Reset() {\n\t*x = PodSandbox{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PodSandbox) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PodSandbox) ProtoMessage() {}\n\nfunc (x *PodSandbox) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PodSandbox.ProtoReflect.Descriptor instead.\nfunc (*PodSandbox) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *PodSandbox) GetId() string {\n\tif x != nil {\n\t\treturn x.Id\n\t}\n\treturn \"\"\n}\n\nfunc (x *PodSandbox) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *PodSandbox) GetUid() string {\n\tif x != nil {\n\t\treturn x.Uid\n\t}\n\treturn \"\"\n}\n\nfunc (x *PodSandbox) GetNamespace() string {\n\tif x != nil {\n\t\treturn x.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *PodSandbox) GetLabels() map[string]string {\n\tif x != nil {\n\t\treturn x.Labels\n\t}\n\treturn nil\n}\n\nfunc (x *PodSandbox) GetAnnotations() map[string]string {\n\tif x != nil {\n\t\treturn x.Annotations\n\t}\n\treturn nil\n}\n\nfunc (x *PodSandbox) GetRuntimeHandler() string {\n\tif x != nil {\n\t\treturn x.RuntimeHandler\n\t}\n\treturn \"\"\n}\n\nfunc (x *PodSandbox) GetLinux() *LinuxPodSandbox {\n\tif x != nil {\n\t\treturn x.Linux\n\t}\n\treturn nil\n}\n\nfunc (x *PodSandbox) GetPid() uint32 {\n\tif x != nil {\n\t\treturn x.Pid\n\t}\n\treturn 0\n}\n\n// PodSandbox linux-specific metadata\ntype LinuxPodSandbox struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPodOverhead  *LinuxResources   `protobuf:\"bytes,1,opt,name=pod_overhead,json=podOverhead,proto3\" json:\"pod_overhead,omitempty\"`\n\tPodResources *LinuxResources   `protobuf:\"bytes,2,opt,name=pod_resources,json=podResources,proto3\" json:\"pod_resources,omitempty\"`\n\tCgroupParent string            `protobuf:\"bytes,3,opt,name=cgroup_parent,json=cgroupParent,proto3\" json:\"cgroup_parent,omitempty\"`\n\tCgroupsPath  string            `protobuf:\"bytes,4,opt,name=cgroups_path,json=cgroupsPath,proto3\" json:\"cgroups_path,omitempty\"` // for NRI v1 emulation\n\tNamespaces   []*LinuxNamespace `protobuf:\"bytes,5,rep,name=namespaces,proto3\" json:\"namespaces,omitempty\"`                      // for NRI v1 emulation\n\tResources    *LinuxResources   `protobuf:\"bytes,6,opt,name=resources,proto3\" json:\"resources,omitempty\"`                        // for NRI v1 emulation\n}\n\nfunc (x *LinuxPodSandbox) Reset() {\n\t*x = LinuxPodSandbox{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxPodSandbox) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxPodSandbox) ProtoMessage() {}\n\nfunc (x *LinuxPodSandbox) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxPodSandbox.ProtoReflect.Descriptor instead.\nfunc (*LinuxPodSandbox) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *LinuxPodSandbox) GetPodOverhead() *LinuxResources {\n\tif x != nil {\n\t\treturn x.PodOverhead\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxPodSandbox) GetPodResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.PodResources\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxPodSandbox) GetCgroupParent() string {\n\tif x != nil {\n\t\treturn x.CgroupParent\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxPodSandbox) GetCgroupsPath() string {\n\tif x != nil {\n\t\treturn x.CgroupsPath\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxPodSandbox) GetNamespaces() []*LinuxNamespace {\n\tif x != nil {\n\t\treturn x.Namespaces\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxPodSandbox) GetResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.Resources\n\t}\n\treturn nil\n}\n\n// Container metadata that is considered relevant for a plugin.\ntype Container struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tId           string            `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tPodSandboxId string            `protobuf:\"bytes,2,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\tName         string            `protobuf:\"bytes,3,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tState        ContainerState    `protobuf:\"varint,4,opt,name=state,proto3,enum=nri.pkg.api.v1alpha1.ContainerState\" json:\"state,omitempty\"`\n\tLabels       map[string]string `protobuf:\"bytes,5,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tAnnotations  map[string]string `protobuf:\"bytes,6,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tArgs         []string          `protobuf:\"bytes,7,rep,name=args,proto3\" json:\"args,omitempty\"`\n\tEnv          []string          `protobuf:\"bytes,8,rep,name=env,proto3\" json:\"env,omitempty\"`\n\tMounts       []*Mount          `protobuf:\"bytes,9,rep,name=mounts,proto3\" json:\"mounts,omitempty\"`\n\tHooks        *Hooks            `protobuf:\"bytes,10,opt,name=hooks,proto3\" json:\"hooks,omitempty\"`\n\tLinux        *LinuxContainer   `protobuf:\"bytes,11,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\tPid          uint32            `protobuf:\"varint,12,opt,name=pid,proto3\" json:\"pid,omitempty\"` // for NRI v1 emulation\n\tRlimits      []*POSIXRlimit    `protobuf:\"bytes,13,rep,name=rlimits,proto3\" json:\"rlimits,omitempty\"`\n}\n\nfunc (x *Container) Reset() {\n\t*x = Container{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Container) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Container) ProtoMessage() {}\n\nfunc (x *Container) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Container.ProtoReflect.Descriptor instead.\nfunc (*Container) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *Container) GetId() string {\n\tif x != nil {\n\t\treturn x.Id\n\t}\n\treturn \"\"\n}\n\nfunc (x *Container) GetPodSandboxId() string {\n\tif x != nil {\n\t\treturn x.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Container) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Container) GetState() ContainerState {\n\tif x != nil {\n\t\treturn x.State\n\t}\n\treturn ContainerState_CONTAINER_UNKNOWN\n}\n\nfunc (x *Container) GetLabels() map[string]string {\n\tif x != nil {\n\t\treturn x.Labels\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetAnnotations() map[string]string {\n\tif x != nil {\n\t\treturn x.Annotations\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetArgs() []string {\n\tif x != nil {\n\t\treturn x.Args\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetEnv() []string {\n\tif x != nil {\n\t\treturn x.Env\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetMounts() []*Mount {\n\tif x != nil {\n\t\treturn x.Mounts\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetHooks() *Hooks {\n\tif x != nil {\n\t\treturn x.Hooks\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetLinux() *LinuxContainer {\n\tif x != nil {\n\t\treturn x.Linux\n\t}\n\treturn nil\n}\n\nfunc (x *Container) GetPid() uint32 {\n\tif x != nil {\n\t\treturn x.Pid\n\t}\n\treturn 0\n}\n\nfunc (x *Container) GetRlimits() []*POSIXRlimit {\n\tif x != nil {\n\t\treturn x.Rlimits\n\t}\n\treturn nil\n}\n\n// A container mount.\ntype Mount struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDestination string   `protobuf:\"bytes,1,opt,name=destination,proto3\" json:\"destination,omitempty\"`\n\tType        string   `protobuf:\"bytes,2,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tSource      string   `protobuf:\"bytes,3,opt,name=source,proto3\" json:\"source,omitempty\"`\n\tOptions     []string `protobuf:\"bytes,4,rep,name=options,proto3\" json:\"options,omitempty\"`\n}\n\nfunc (x *Mount) Reset() {\n\t*x = Mount{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Mount) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Mount) ProtoMessage() {}\n\nfunc (x *Mount) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Mount.ProtoReflect.Descriptor instead.\nfunc (*Mount) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *Mount) GetDestination() string {\n\tif x != nil {\n\t\treturn x.Destination\n\t}\n\treturn \"\"\n}\n\nfunc (x *Mount) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Mount) GetSource() string {\n\tif x != nil {\n\t\treturn x.Source\n\t}\n\treturn \"\"\n}\n\nfunc (x *Mount) GetOptions() []string {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Container OCI hooks.\ntype Hooks struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPrestart        []*Hook `protobuf:\"bytes,1,rep,name=prestart,proto3\" json:\"prestart,omitempty\"`\n\tCreateRuntime   []*Hook `protobuf:\"bytes,2,rep,name=create_runtime,json=createRuntime,proto3\" json:\"create_runtime,omitempty\"`\n\tCreateContainer []*Hook `protobuf:\"bytes,3,rep,name=create_container,json=createContainer,proto3\" json:\"create_container,omitempty\"`\n\tStartContainer  []*Hook `protobuf:\"bytes,4,rep,name=start_container,json=startContainer,proto3\" json:\"start_container,omitempty\"`\n\tPoststart       []*Hook `protobuf:\"bytes,5,rep,name=poststart,proto3\" json:\"poststart,omitempty\"`\n\tPoststop        []*Hook `protobuf:\"bytes,6,rep,name=poststop,proto3\" json:\"poststop,omitempty\"`\n}\n\nfunc (x *Hooks) Reset() {\n\t*x = Hooks{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Hooks) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Hooks) ProtoMessage() {}\n\nfunc (x *Hooks) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Hooks.ProtoReflect.Descriptor instead.\nfunc (*Hooks) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (x *Hooks) GetPrestart() []*Hook {\n\tif x != nil {\n\t\treturn x.Prestart\n\t}\n\treturn nil\n}\n\nfunc (x *Hooks) GetCreateRuntime() []*Hook {\n\tif x != nil {\n\t\treturn x.CreateRuntime\n\t}\n\treturn nil\n}\n\nfunc (x *Hooks) GetCreateContainer() []*Hook {\n\tif x != nil {\n\t\treturn x.CreateContainer\n\t}\n\treturn nil\n}\n\nfunc (x *Hooks) GetStartContainer() []*Hook {\n\tif x != nil {\n\t\treturn x.StartContainer\n\t}\n\treturn nil\n}\n\nfunc (x *Hooks) GetPoststart() []*Hook {\n\tif x != nil {\n\t\treturn x.Poststart\n\t}\n\treturn nil\n}\n\nfunc (x *Hooks) GetPoststop() []*Hook {\n\tif x != nil {\n\t\treturn x.Poststop\n\t}\n\treturn nil\n}\n\n// One OCI hook.\ntype Hook struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath    string       `protobuf:\"bytes,1,opt,name=path,proto3\" json:\"path,omitempty\"`\n\tArgs    []string     `protobuf:\"bytes,2,rep,name=args,proto3\" json:\"args,omitempty\"`\n\tEnv     []string     `protobuf:\"bytes,3,rep,name=env,proto3\" json:\"env,omitempty\"`\n\tTimeout *OptionalInt `protobuf:\"bytes,4,opt,name=timeout,proto3\" json:\"timeout,omitempty\"`\n}\n\nfunc (x *Hook) Reset() {\n\t*x = Hook{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[20]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Hook) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Hook) ProtoMessage() {}\n\nfunc (x *Hook) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[20]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Hook.ProtoReflect.Descriptor instead.\nfunc (*Hook) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *Hook) GetPath() string {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn \"\"\n}\n\nfunc (x *Hook) GetArgs() []string {\n\tif x != nil {\n\t\treturn x.Args\n\t}\n\treturn nil\n}\n\nfunc (x *Hook) GetEnv() []string {\n\tif x != nil {\n\t\treturn x.Env\n\t}\n\treturn nil\n}\n\nfunc (x *Hook) GetTimeout() *OptionalInt {\n\tif x != nil {\n\t\treturn x.Timeout\n\t}\n\treturn nil\n}\n\n// Container (linux) metadata.\ntype LinuxContainer struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNamespaces  []*LinuxNamespace `protobuf:\"bytes,1,rep,name=namespaces,proto3\" json:\"namespaces,omitempty\"`\n\tDevices     []*LinuxDevice    `protobuf:\"bytes,2,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\tResources   *LinuxResources   `protobuf:\"bytes,3,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\tOomScoreAdj *OptionalInt      `protobuf:\"bytes,4,opt,name=oom_score_adj,json=oomScoreAdj,proto3\" json:\"oom_score_adj,omitempty\"`\n\tCgroupsPath string            `protobuf:\"bytes,5,opt,name=cgroups_path,json=cgroupsPath,proto3\" json:\"cgroups_path,omitempty\"`\n}\n\nfunc (x *LinuxContainer) Reset() {\n\t*x = LinuxContainer{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxContainer) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxContainer) ProtoMessage() {}\n\nfunc (x *LinuxContainer) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxContainer.ProtoReflect.Descriptor instead.\nfunc (*LinuxContainer) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *LinuxContainer) GetNamespaces() []*LinuxNamespace {\n\tif x != nil {\n\t\treturn x.Namespaces\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainer) GetDevices() []*LinuxDevice {\n\tif x != nil {\n\t\treturn x.Devices\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainer) GetResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.Resources\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainer) GetOomScoreAdj() *OptionalInt {\n\tif x != nil {\n\t\treturn x.OomScoreAdj\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainer) GetCgroupsPath() string {\n\tif x != nil {\n\t\treturn x.CgroupsPath\n\t}\n\treturn \"\"\n}\n\n// A linux namespace.\ntype LinuxNamespace struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType string `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tPath string `protobuf:\"bytes,2,opt,name=path,proto3\" json:\"path,omitempty\"`\n}\n\nfunc (x *LinuxNamespace) Reset() {\n\t*x = LinuxNamespace{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[22]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxNamespace) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxNamespace) ProtoMessage() {}\n\nfunc (x *LinuxNamespace) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[22]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxNamespace.ProtoReflect.Descriptor instead.\nfunc (*LinuxNamespace) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *LinuxNamespace) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxNamespace) GetPath() string {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn \"\"\n}\n\n// A container (linux) device.\ntype LinuxDevice struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath     string            `protobuf:\"bytes,1,opt,name=path,proto3\" json:\"path,omitempty\"`\n\tType     string            `protobuf:\"bytes,2,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tMajor    int64             `protobuf:\"varint,3,opt,name=major,proto3\" json:\"major,omitempty\"`\n\tMinor    int64             `protobuf:\"varint,4,opt,name=minor,proto3\" json:\"minor,omitempty\"`\n\tFileMode *OptionalFileMode `protobuf:\"bytes,5,opt,name=file_mode,json=fileMode,proto3\" json:\"file_mode,omitempty\"`\n\tUid      *OptionalUInt32   `protobuf:\"bytes,6,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tGid      *OptionalUInt32   `protobuf:\"bytes,7,opt,name=gid,proto3\" json:\"gid,omitempty\"`\n}\n\nfunc (x *LinuxDevice) Reset() {\n\t*x = LinuxDevice{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[23]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxDevice) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxDevice) ProtoMessage() {}\n\nfunc (x *LinuxDevice) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[23]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxDevice.ProtoReflect.Descriptor instead.\nfunc (*LinuxDevice) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{23}\n}\n\nfunc (x *LinuxDevice) GetPath() string {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxDevice) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxDevice) GetMajor() int64 {\n\tif x != nil {\n\t\treturn x.Major\n\t}\n\treturn 0\n}\n\nfunc (x *LinuxDevice) GetMinor() int64 {\n\tif x != nil {\n\t\treturn x.Minor\n\t}\n\treturn 0\n}\n\nfunc (x *LinuxDevice) GetFileMode() *OptionalFileMode {\n\tif x != nil {\n\t\treturn x.FileMode\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxDevice) GetUid() *OptionalUInt32 {\n\tif x != nil {\n\t\treturn x.Uid\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxDevice) GetGid() *OptionalUInt32 {\n\tif x != nil {\n\t\treturn x.Gid\n\t}\n\treturn nil\n}\n\n// A linux device cgroup controller rule.\ntype LinuxDeviceCgroup struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAllow  bool           `protobuf:\"varint,1,opt,name=allow,proto3\" json:\"allow,omitempty\"`\n\tType   string         `protobuf:\"bytes,2,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tMajor  *OptionalInt64 `protobuf:\"bytes,3,opt,name=major,proto3\" json:\"major,omitempty\"`\n\tMinor  *OptionalInt64 `protobuf:\"bytes,4,opt,name=minor,proto3\" json:\"minor,omitempty\"`\n\tAccess string         `protobuf:\"bytes,5,opt,name=access,proto3\" json:\"access,omitempty\"`\n}\n\nfunc (x *LinuxDeviceCgroup) Reset() {\n\t*x = LinuxDeviceCgroup{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxDeviceCgroup) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxDeviceCgroup) ProtoMessage() {}\n\nfunc (x *LinuxDeviceCgroup) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxDeviceCgroup.ProtoReflect.Descriptor instead.\nfunc (*LinuxDeviceCgroup) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{24}\n}\n\nfunc (x *LinuxDeviceCgroup) GetAllow() bool {\n\tif x != nil {\n\t\treturn x.Allow\n\t}\n\treturn false\n}\n\nfunc (x *LinuxDeviceCgroup) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxDeviceCgroup) GetMajor() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Major\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxDeviceCgroup) GetMinor() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Minor\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxDeviceCgroup) GetAccess() string {\n\tif x != nil {\n\t\treturn x.Access\n\t}\n\treturn \"\"\n}\n\n// Container (linux) resources.\ntype LinuxResources struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tMemory         *LinuxMemory         `protobuf:\"bytes,1,opt,name=memory,proto3\" json:\"memory,omitempty\"`\n\tCpu            *LinuxCPU            `protobuf:\"bytes,2,opt,name=cpu,proto3\" json:\"cpu,omitempty\"`\n\tHugepageLimits []*HugepageLimit     `protobuf:\"bytes,3,rep,name=hugepage_limits,json=hugepageLimits,proto3\" json:\"hugepage_limits,omitempty\"`\n\tBlockioClass   *OptionalString      `protobuf:\"bytes,4,opt,name=blockio_class,json=blockioClass,proto3\" json:\"blockio_class,omitempty\"`\n\tRdtClass       *OptionalString      `protobuf:\"bytes,5,opt,name=rdt_class,json=rdtClass,proto3\" json:\"rdt_class,omitempty\"`\n\tUnified        map[string]string    `protobuf:\"bytes,6,rep,name=unified,proto3\" json:\"unified,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tDevices        []*LinuxDeviceCgroup `protobuf:\"bytes,7,rep,name=devices,proto3\" json:\"devices,omitempty\"` // for NRI v1 emulation\n}\n\nfunc (x *LinuxResources) Reset() {\n\t*x = LinuxResources{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxResources) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxResources) ProtoMessage() {}\n\nfunc (x *LinuxResources) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxResources.ProtoReflect.Descriptor instead.\nfunc (*LinuxResources) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{25}\n}\n\nfunc (x *LinuxResources) GetMemory() *LinuxMemory {\n\tif x != nil {\n\t\treturn x.Memory\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetCpu() *LinuxCPU {\n\tif x != nil {\n\t\treturn x.Cpu\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetHugepageLimits() []*HugepageLimit {\n\tif x != nil {\n\t\treturn x.HugepageLimits\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetBlockioClass() *OptionalString {\n\tif x != nil {\n\t\treturn x.BlockioClass\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetRdtClass() *OptionalString {\n\tif x != nil {\n\t\treturn x.RdtClass\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetUnified() map[string]string {\n\tif x != nil {\n\t\treturn x.Unified\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxResources) GetDevices() []*LinuxDeviceCgroup {\n\tif x != nil {\n\t\treturn x.Devices\n\t}\n\treturn nil\n}\n\n// Memory-related parts of (linux) resources.\ntype LinuxMemory struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tLimit            *OptionalInt64  `protobuf:\"bytes,1,opt,name=limit,proto3\" json:\"limit,omitempty\"`\n\tReservation      *OptionalInt64  `protobuf:\"bytes,2,opt,name=reservation,proto3\" json:\"reservation,omitempty\"`\n\tSwap             *OptionalInt64  `protobuf:\"bytes,3,opt,name=swap,proto3\" json:\"swap,omitempty\"`\n\tKernel           *OptionalInt64  `protobuf:\"bytes,4,opt,name=kernel,proto3\" json:\"kernel,omitempty\"`\n\tKernelTcp        *OptionalInt64  `protobuf:\"bytes,5,opt,name=kernel_tcp,json=kernelTcp,proto3\" json:\"kernel_tcp,omitempty\"`\n\tSwappiness       *OptionalUInt64 `protobuf:\"bytes,6,opt,name=swappiness,proto3\" json:\"swappiness,omitempty\"`\n\tDisableOomKiller *OptionalBool   `protobuf:\"bytes,7,opt,name=disable_oom_killer,json=disableOomKiller,proto3\" json:\"disable_oom_killer,omitempty\"`\n\tUseHierarchy     *OptionalBool   `protobuf:\"bytes,8,opt,name=use_hierarchy,json=useHierarchy,proto3\" json:\"use_hierarchy,omitempty\"`\n}\n\nfunc (x *LinuxMemory) Reset() {\n\t*x = LinuxMemory{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxMemory) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxMemory) ProtoMessage() {}\n\nfunc (x *LinuxMemory) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxMemory.ProtoReflect.Descriptor instead.\nfunc (*LinuxMemory) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{26}\n}\n\nfunc (x *LinuxMemory) GetLimit() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Limit\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetReservation() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Reservation\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetSwap() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Swap\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetKernel() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Kernel\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetKernelTcp() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.KernelTcp\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetSwappiness() *OptionalUInt64 {\n\tif x != nil {\n\t\treturn x.Swappiness\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetDisableOomKiller() *OptionalBool {\n\tif x != nil {\n\t\treturn x.DisableOomKiller\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxMemory) GetUseHierarchy() *OptionalBool {\n\tif x != nil {\n\t\treturn x.UseHierarchy\n\t}\n\treturn nil\n}\n\n// CPU-related parts of (linux) resources.\ntype LinuxCPU struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tShares          *OptionalUInt64 `protobuf:\"bytes,1,opt,name=shares,proto3\" json:\"shares,omitempty\"`\n\tQuota           *OptionalInt64  `protobuf:\"bytes,2,opt,name=quota,proto3\" json:\"quota,omitempty\"`\n\tPeriod          *OptionalUInt64 `protobuf:\"bytes,3,opt,name=period,proto3\" json:\"period,omitempty\"`\n\tRealtimeRuntime *OptionalInt64  `protobuf:\"bytes,4,opt,name=realtime_runtime,json=realtimeRuntime,proto3\" json:\"realtime_runtime,omitempty\"`\n\tRealtimePeriod  *OptionalUInt64 `protobuf:\"bytes,5,opt,name=realtime_period,json=realtimePeriod,proto3\" json:\"realtime_period,omitempty\"`\n\tCpus            string          `protobuf:\"bytes,6,opt,name=cpus,proto3\" json:\"cpus,omitempty\"`\n\tMems            string          `protobuf:\"bytes,7,opt,name=mems,proto3\" json:\"mems,omitempty\"`\n}\n\nfunc (x *LinuxCPU) Reset() {\n\t*x = LinuxCPU{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxCPU) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxCPU) ProtoMessage() {}\n\nfunc (x *LinuxCPU) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxCPU.ProtoReflect.Descriptor instead.\nfunc (*LinuxCPU) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{27}\n}\n\nfunc (x *LinuxCPU) GetShares() *OptionalUInt64 {\n\tif x != nil {\n\t\treturn x.Shares\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxCPU) GetQuota() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.Quota\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxCPU) GetPeriod() *OptionalUInt64 {\n\tif x != nil {\n\t\treturn x.Period\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxCPU) GetRealtimeRuntime() *OptionalInt64 {\n\tif x != nil {\n\t\treturn x.RealtimeRuntime\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxCPU) GetRealtimePeriod() *OptionalUInt64 {\n\tif x != nil {\n\t\treturn x.RealtimePeriod\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxCPU) GetCpus() string {\n\tif x != nil {\n\t\treturn x.Cpus\n\t}\n\treturn \"\"\n}\n\nfunc (x *LinuxCPU) GetMems() string {\n\tif x != nil {\n\t\treturn x.Mems\n\t}\n\treturn \"\"\n}\n\n// Container huge page limit.\ntype HugepageLimit struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPageSize string `protobuf:\"bytes,1,opt,name=page_size,json=pageSize,proto3\" json:\"page_size,omitempty\"`\n\tLimit    uint64 `protobuf:\"varint,2,opt,name=limit,proto3\" json:\"limit,omitempty\"`\n}\n\nfunc (x *HugepageLimit) Reset() {\n\t*x = HugepageLimit{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HugepageLimit) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HugepageLimit) ProtoMessage() {}\n\nfunc (x *HugepageLimit) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HugepageLimit.ProtoReflect.Descriptor instead.\nfunc (*HugepageLimit) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{28}\n}\n\nfunc (x *HugepageLimit) GetPageSize() string {\n\tif x != nil {\n\t\treturn x.PageSize\n\t}\n\treturn \"\"\n}\n\nfunc (x *HugepageLimit) GetLimit() uint64 {\n\tif x != nil {\n\t\treturn x.Limit\n\t}\n\treturn 0\n}\n\n// Container rlimits\ntype POSIXRlimit struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType string `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tHard uint64 `protobuf:\"varint,2,opt,name=hard,proto3\" json:\"hard,omitempty\"`\n\tSoft uint64 `protobuf:\"varint,3,opt,name=soft,proto3\" json:\"soft,omitempty\"`\n}\n\nfunc (x *POSIXRlimit) Reset() {\n\t*x = POSIXRlimit{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[29]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *POSIXRlimit) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*POSIXRlimit) ProtoMessage() {}\n\nfunc (x *POSIXRlimit) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[29]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use POSIXRlimit.ProtoReflect.Descriptor instead.\nfunc (*POSIXRlimit) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{29}\n}\n\nfunc (x *POSIXRlimit) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *POSIXRlimit) GetHard() uint64 {\n\tif x != nil {\n\t\treturn x.Hard\n\t}\n\treturn 0\n}\n\nfunc (x *POSIXRlimit) GetSoft() uint64 {\n\tif x != nil {\n\t\treturn x.Soft\n\t}\n\treturn 0\n}\n\n// Requested adjustments to a container being created.\ntype ContainerAdjustment struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAnnotations map[string]string         `protobuf:\"bytes,2,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tMounts      []*Mount                  `protobuf:\"bytes,3,rep,name=mounts,proto3\" json:\"mounts,omitempty\"`\n\tEnv         []*KeyValue               `protobuf:\"bytes,4,rep,name=env,proto3\" json:\"env,omitempty\"`\n\tHooks       *Hooks                    `protobuf:\"bytes,5,opt,name=hooks,proto3\" json:\"hooks,omitempty\"`\n\tLinux       *LinuxContainerAdjustment `protobuf:\"bytes,6,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\tRlimits     []*POSIXRlimit            `protobuf:\"bytes,7,rep,name=rlimits,proto3\" json:\"rlimits,omitempty\"`\n}\n\nfunc (x *ContainerAdjustment) Reset() {\n\t*x = ContainerAdjustment{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[30]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContainerAdjustment) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContainerAdjustment) ProtoMessage() {}\n\nfunc (x *ContainerAdjustment) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[30]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContainerAdjustment.ProtoReflect.Descriptor instead.\nfunc (*ContainerAdjustment) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{30}\n}\n\nfunc (x *ContainerAdjustment) GetAnnotations() map[string]string {\n\tif x != nil {\n\t\treturn x.Annotations\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerAdjustment) GetMounts() []*Mount {\n\tif x != nil {\n\t\treturn x.Mounts\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerAdjustment) GetEnv() []*KeyValue {\n\tif x != nil {\n\t\treturn x.Env\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerAdjustment) GetHooks() *Hooks {\n\tif x != nil {\n\t\treturn x.Hooks\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerAdjustment) GetLinux() *LinuxContainerAdjustment {\n\tif x != nil {\n\t\treturn x.Linux\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerAdjustment) GetRlimits() []*POSIXRlimit {\n\tif x != nil {\n\t\treturn x.Rlimits\n\t}\n\treturn nil\n}\n\n// Adjustments to (linux) resources.\ntype LinuxContainerAdjustment struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDevices     []*LinuxDevice  `protobuf:\"bytes,1,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\tResources   *LinuxResources `protobuf:\"bytes,2,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\tCgroupsPath string          `protobuf:\"bytes,3,opt,name=cgroups_path,json=cgroupsPath,proto3\" json:\"cgroups_path,omitempty\"`\n}\n\nfunc (x *LinuxContainerAdjustment) Reset() {\n\t*x = LinuxContainerAdjustment{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[31]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxContainerAdjustment) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxContainerAdjustment) ProtoMessage() {}\n\nfunc (x *LinuxContainerAdjustment) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[31]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxContainerAdjustment.ProtoReflect.Descriptor instead.\nfunc (*LinuxContainerAdjustment) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{31}\n}\n\nfunc (x *LinuxContainerAdjustment) GetDevices() []*LinuxDevice {\n\tif x != nil {\n\t\treturn x.Devices\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainerAdjustment) GetResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.Resources\n\t}\n\treturn nil\n}\n\nfunc (x *LinuxContainerAdjustment) GetCgroupsPath() string {\n\tif x != nil {\n\t\treturn x.CgroupsPath\n\t}\n\treturn \"\"\n}\n\n// Requested update to an already created container.\ntype ContainerUpdate struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tContainerId   string                `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tLinux         *LinuxContainerUpdate `protobuf:\"bytes,2,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\tIgnoreFailure bool                  `protobuf:\"varint,3,opt,name=ignore_failure,json=ignoreFailure,proto3\" json:\"ignore_failure,omitempty\"`\n}\n\nfunc (x *ContainerUpdate) Reset() {\n\t*x = ContainerUpdate{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[32]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContainerUpdate) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContainerUpdate) ProtoMessage() {}\n\nfunc (x *ContainerUpdate) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[32]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContainerUpdate.ProtoReflect.Descriptor instead.\nfunc (*ContainerUpdate) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{32}\n}\n\nfunc (x *ContainerUpdate) GetContainerId() string {\n\tif x != nil {\n\t\treturn x.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (x *ContainerUpdate) GetLinux() *LinuxContainerUpdate {\n\tif x != nil {\n\t\treturn x.Linux\n\t}\n\treturn nil\n}\n\nfunc (x *ContainerUpdate) GetIgnoreFailure() bool {\n\tif x != nil {\n\t\treturn x.IgnoreFailure\n\t}\n\treturn false\n}\n\n// Updates to (linux) resources.\ntype LinuxContainerUpdate struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tResources *LinuxResources `protobuf:\"bytes,1,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n}\n\nfunc (x *LinuxContainerUpdate) Reset() {\n\t*x = LinuxContainerUpdate{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[33]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinuxContainerUpdate) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinuxContainerUpdate) ProtoMessage() {}\n\nfunc (x *LinuxContainerUpdate) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[33]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinuxContainerUpdate.ProtoReflect.Descriptor instead.\nfunc (*LinuxContainerUpdate) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{33}\n}\n\nfunc (x *LinuxContainerUpdate) GetResources() *LinuxResources {\n\tif x != nil {\n\t\treturn x.Resources\n\t}\n\treturn nil\n}\n\n// Request to evict (IOW unsolicitedly stop) a container.\ntype ContainerEviction struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Container to evict.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Human-readable reason for eviction.\n\tReason string `protobuf:\"bytes,2,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n}\n\nfunc (x *ContainerEviction) Reset() {\n\t*x = ContainerEviction{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[34]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContainerEviction) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContainerEviction) ProtoMessage() {}\n\nfunc (x *ContainerEviction) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[34]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContainerEviction.ProtoReflect.Descriptor instead.\nfunc (*ContainerEviction) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{34}\n}\n\nfunc (x *ContainerEviction) GetContainerId() string {\n\tif x != nil {\n\t\treturn x.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (x *ContainerEviction) GetReason() string {\n\tif x != nil {\n\t\treturn x.Reason\n\t}\n\treturn \"\"\n}\n\n// KeyValue represents an environment variable.\ntype KeyValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tKey   string `protobuf:\"bytes,1,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *KeyValue) Reset() {\n\t*x = KeyValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[35]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *KeyValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*KeyValue) ProtoMessage() {}\n\nfunc (x *KeyValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[35]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use KeyValue.ProtoReflect.Descriptor instead.\nfunc (*KeyValue) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{35}\n}\n\nfunc (x *KeyValue) GetKey() string {\n\tif x != nil {\n\t\treturn x.Key\n\t}\n\treturn \"\"\n}\n\nfunc (x *KeyValue) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// An optional string value.\ntype OptionalString struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue string `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalString) Reset() {\n\t*x = OptionalString{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[36]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalString) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalString) ProtoMessage() {}\n\nfunc (x *OptionalString) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[36]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalString.ProtoReflect.Descriptor instead.\nfunc (*OptionalString) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{36}\n}\n\nfunc (x *OptionalString) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// An optional signed integer value.\ntype OptionalInt struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue int64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalInt) Reset() {\n\t*x = OptionalInt{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[37]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalInt) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalInt) ProtoMessage() {}\n\nfunc (x *OptionalInt) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[37]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalInt.ProtoReflect.Descriptor instead.\nfunc (*OptionalInt) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{37}\n}\n\nfunc (x *OptionalInt) GetValue() int64 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\n// An optional 32-bit signed integer value.\ntype OptionalInt32 struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue int32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalInt32) Reset() {\n\t*x = OptionalInt32{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[38]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalInt32) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalInt32) ProtoMessage() {}\n\nfunc (x *OptionalInt32) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[38]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalInt32.ProtoReflect.Descriptor instead.\nfunc (*OptionalInt32) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{38}\n}\n\nfunc (x *OptionalInt32) GetValue() int32 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\n// An optional 32-bit unsigned integer value.\ntype OptionalUInt32 struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue uint32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalUInt32) Reset() {\n\t*x = OptionalUInt32{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[39]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalUInt32) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalUInt32) ProtoMessage() {}\n\nfunc (x *OptionalUInt32) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[39]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalUInt32.ProtoReflect.Descriptor instead.\nfunc (*OptionalUInt32) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{39}\n}\n\nfunc (x *OptionalUInt32) GetValue() uint32 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\n// An optional 64-bit signed integer value.\ntype OptionalInt64 struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue int64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalInt64) Reset() {\n\t*x = OptionalInt64{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[40]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalInt64) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalInt64) ProtoMessage() {}\n\nfunc (x *OptionalInt64) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[40]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalInt64.ProtoReflect.Descriptor instead.\nfunc (*OptionalInt64) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{40}\n}\n\nfunc (x *OptionalInt64) GetValue() int64 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\n// An optional 64-bit unsigned integer value.\ntype OptionalUInt64 struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue uint64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalUInt64) Reset() {\n\t*x = OptionalUInt64{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[41]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalUInt64) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalUInt64) ProtoMessage() {}\n\nfunc (x *OptionalUInt64) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[41]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalUInt64.ProtoReflect.Descriptor instead.\nfunc (*OptionalUInt64) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{41}\n}\n\nfunc (x *OptionalUInt64) GetValue() uint64 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\n// An optional boolean value.\ntype OptionalBool struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue bool `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalBool) Reset() {\n\t*x = OptionalBool{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[42]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalBool) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalBool) ProtoMessage() {}\n\nfunc (x *OptionalBool) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[42]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalBool.ProtoReflect.Descriptor instead.\nfunc (*OptionalBool) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{42}\n}\n\nfunc (x *OptionalBool) GetValue() bool {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn false\n}\n\n// An optional value of file permissions.\ntype OptionalFileMode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue uint32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *OptionalFileMode) Reset() {\n\t*x = OptionalFileMode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_pkg_api_api_proto_msgTypes[43]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OptionalFileMode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OptionalFileMode) ProtoMessage() {}\n\nfunc (x *OptionalFileMode) ProtoReflect() protoreflect.Message {\n\tmi := &file_pkg_api_api_proto_msgTypes[43]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OptionalFileMode.ProtoReflect.Descriptor instead.\nfunc (*OptionalFileMode) Descriptor() ([]byte, []int) {\n\treturn file_pkg_api_api_proto_rawDescGZIP(), []int{43}\n}\n\nfunc (x *OptionalFileMode) GetValue() uint32 {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn 0\n}\n\nvar File_pkg_api_api_proto protoreflect.FileDescriptor\n\nvar file_pkg_api_api_proto_rawDesc = []byte{\n\t0x0a, 0x11, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x12, 0x14, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0x57, 0x0a, 0x15, 0x52, 0x65, 0x67,\n\t0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,\n\t0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x69, 0x64,\n\t0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49,\n\t0x64, 0x78, 0x22, 0x97, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d,\n\t0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25,\n\t0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,\n\t0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55,\n\t0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a,\n\t0x05, 0x65, 0x76, 0x69, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x76, 0x69,\n\t0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x65, 0x76, 0x69, 0x63, 0x74, 0x22, 0x59, 0x0a, 0x18,\n\t0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c,\n\t0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,\n\t0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x76, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x66, 0x69,\n\t0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63,\n\t0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e,\n\t0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69,\n\t0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d,\n\t0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0x2b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8b, 0x01, 0x0a,\n\t0x12, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75,\n\t0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64,\n\t0x62, 0x6f, 0x78, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0a,\n\t0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x54, 0x0a, 0x13, 0x53, 0x79,\n\t0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,\n\t0x65, 0x12, 0x3d, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,\n\t0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,\n\t0x22, 0x8b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61,\n\t0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x70,\n\t0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12,\n\t0x3d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0xda,\n\t0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,\n\t0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x64,\n\t0x6a, 0x75, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73,\n\t0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x3d, 0x0a,\n\t0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70,\n\t0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x05,\n\t0x65, 0x76, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x76, 0x69, 0x63,\n\t0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x65, 0x76, 0x69, 0x63, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16,\n\t0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x61,\n\t0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x6f,\n\t0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09,\n\t0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0f, 0x6c, 0x69, 0x6e,\n\t0x75, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52,\n\t0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x52,\n\t0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64,\n\t0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74,\n\t0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64,\n\t0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x65, 0x76, 0x69, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x45, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x65, 0x76, 0x69,\n\t0x63, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61,\n\t0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x70,\n\t0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12,\n\t0x3d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0x56,\n\t0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74,\n\t0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b,\n\t0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43,\n\t0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06,\n\t0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65,\n\t0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x65,\n\t0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x32,\n\t0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x03, 0x70,\n\t0x6f, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,\n\t0x72, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xee, 0x03, 0x0a, 0x0a, 0x50,\n\t0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a,\n\t0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,\n\t0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x44, 0x0a,\n\t0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e,\n\t0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62,\n\t0x65, 0x6c, 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e,\n\t0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74,\n\t0x69, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,\n\t0x72, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x25, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x50, 0x6f, 0x64,\n\t0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x12, 0x10,\n\t0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64,\n\t0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,\n\t0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,\n\t0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41,\n\t0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,\n\t0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,\n\t0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf7, 0x02, 0x0a, 0x0f,\n\t0x4c, 0x69, 0x6e, 0x75, 0x78, 0x50, 0x6f, 0x64, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12,\n\t0x47, 0x0a, 0x0c, 0x70, 0x6f, 0x64, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e,\n\t0x75, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x6f, 0x64,\n\t0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x6f, 0x64, 0x5f,\n\t0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52, 0x65, 0x73, 0x6f,\n\t0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x0c, 0x70, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,\n\t0x63, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x61,\n\t0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x67, 0x72, 0x6f,\n\t0x75, 0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f,\n\t0x75, 0x70, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,\n\t0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x0a, 0x6e,\n\t0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65,\n\t0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,\n\t0x73, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75,\n\t0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f,\n\t0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xbe, 0x05, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x6f, 0x64, 0x5f, 0x73, 0x61, 0x6e, 0x64, 0x62,\n\t0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64,\n\t0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a,\n\t0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61,\n\t0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6c, 0x61, 0x62,\n\t0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x72, 0x69, 0x2e,\n\t0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,\n\t0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,\n\t0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x52,\n\t0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,\n\t0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,\n\t0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,\n\t0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x08, 0x20,\n\t0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e,\n\t0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a,\n\t0x05, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x05, 0x68, 0x6f, 0x6f, 0x6b, 0x73,\n\t0x12, 0x3a, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74,\n\t0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x12, 0x10, 0x0a, 0x03,\n\t0x70, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x3b,\n\t0x0a, 0x07, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x21, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x52, 0x6c, 0x69, 0x6d,\n\t0x69, 0x74, 0x52, 0x07, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c,\n\t0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,\n\t0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,\n\t0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6f, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a,\n\t0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,\n\t0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x03, 0x0a, 0x05, 0x48, 0x6f, 0x6f, 0x6b,\n\t0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52,\n\t0x08, 0x70, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x72, 0x65,\n\t0x61, 0x74, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x0d, 0x63,\n\t0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x10,\n\t0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,\n\t0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67,\n\t0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f,\n\t0x6f, 0x6b, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43,\n\t0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x74,\n\t0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x74, 0x61,\n\t0x72, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x06,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b,\n\t0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x74, 0x6f, 0x70, 0x22, 0x7d, 0x0a, 0x04, 0x48, 0x6f,\n\t0x6f, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e,\n\t0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x3b, 0x0a, 0x07,\n\t0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74,\n\t0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0e, 0x4c, 0x69,\n\t0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a,\n\t0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4e, 0x61, 0x6d,\n\t0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,\n\t0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78,\n\t0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12,\n\t0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52,\n\t0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,\n\t0x63, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0d, 0x6f, 0x6f, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65,\n\t0x5f, 0x61, 0x64, 0x6a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x52, 0x0b, 0x6f,\n\t0x6f, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6a, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x67,\n\t0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x22, 0x38, 0x0a,\n\t0x0e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x96, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x6e, 0x75,\n\t0x78, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,\n\t0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,\n\t0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x04,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x66,\n\t0x69, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,\n\t0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,\n\t0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69,\n\t0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65,\n\t0x12, 0x36, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x49, 0x6e,\n\t0x74, 0x33, 0x32, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18,\n\t0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x03, 0x67, 0x69, 0x64,\n\t0x22, 0xcb, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,\n\t0x43, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04,\n\t0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x12, 0x39, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49,\n\t0x6e, 0x74, 0x36, 0x34, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x05, 0x6d,\n\t0x69, 0x6e, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52,\n\t0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa5,\n\t0x04, 0x0a, 0x0e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,\n\t0x73, 0x12, 0x39, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4d, 0x65,\n\t0x6d, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x03,\n\t0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x72, 0x69, 0x2e,\n\t0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,\n\t0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x4c,\n\t0x0a, 0x0f, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74,\n\t0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b,\n\t0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48,\n\t0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0e, 0x68, 0x75,\n\t0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0d,\n\t0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6f, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b,\n\t0x69, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x64, 0x74, 0x5f, 0x63,\n\t0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,\n\t0x52, 0x08, 0x72, 0x64, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x75, 0x6e,\n\t0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,\n\t0x73, 0x2e, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,\n\t0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63,\n\t0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70,\n\t0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,\n\t0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x67, 0x72, 0x6f, 0x75,\n\t0x70, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x55, 0x6e,\n\t0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,\n\t0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, 0x04, 0x0a, 0x0b, 0x4c, 0x69, 0x6e, 0x75, 0x78,\n\t0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69,\n\t0x74, 0x12, 0x45, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67,\n\t0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0b, 0x72, 0x65, 0x73,\n\t0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67,\n\t0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x04, 0x73, 0x77, 0x61,\n\t0x70, 0x12, 0x3b, 0x0a, 0x06, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x06, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x12, 0x42,\n\t0x0a, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x63, 0x70, 0x18, 0x05, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x09, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x54,\n\t0x63, 0x70, 0x12, 0x44, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x73,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67,\n\t0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0a, 0x73, 0x77,\n\t0x61, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61,\n\t0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6f, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x07,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,\n\t0x65, 0x4f, 0x6f, 0x6d, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0d, 0x75, 0x73,\n\t0x65, 0x5f, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72,\n\t0x63, 0x68, 0x79, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x50, 0x55,\n\t0x12, 0x3c, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x39,\n\t0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74,\n\t0x36, 0x34, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x65, 0x72,\n\t0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e,\n\t0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,\n\t0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52,\n\t0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x4e, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x6c, 0x74,\n\t0x69, 0x6d, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65,\n\t0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x6c, 0x74,\n\t0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x24, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65,\n\t0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x06,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x70, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65,\n\t0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x73, 0x22, 0x42,\n\t0x0a, 0x0d, 0x48, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,\n\t0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05,\n\t0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d,\n\t0x69, 0x74, 0x22, 0x49, 0x0a, 0x0b, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x52, 0x6c, 0x69, 0x6d, 0x69,\n\t0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20,\n\t0x01, 0x28, 0x04, 0x52, 0x04, 0x68, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x66,\n\t0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6f, 0x66, 0x74, 0x22, 0xd0, 0x03,\n\t0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73,\n\t0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6e, 0x72, 0x69,\n\t0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,\n\t0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73,\n\t0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74,\n\t0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18,\n\t0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79,\n\t0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x31, 0x0a, 0x05, 0x68, 0x6f,\n\t0x6f, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e,\n\t0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,\n\t0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x05, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x44, 0x0a,\n\t0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,\n\t0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x6c, 0x69,\n\t0x6e, 0x75, 0x78, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x07,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x4f, 0x53, 0x49,\n\t0x58, 0x52, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73,\n\t0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45,\n\t0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,\n\t0x22, 0xbe, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a,\n\t0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,\n\t0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,\n\t0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x65, 0x76, 0x69, 0x63,\n\t0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65,\n\t0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,\n\t0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x21,\n\t0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74,\n\t0x68, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55,\n\t0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,\n\t0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x75,\n\t0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b,\n\t0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c,\n\t0x69, 0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64,\n\t0x61, 0x74, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x67,\n\t0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,\n\t0x65, 0x22, 0x5a, 0x0a, 0x14, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73,\n\t0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,\n\t0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x4e, 0x0a,\n\t0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x76, 0x69, 0x63, 0x74, 0x69,\n\t0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f,\n\t0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x32, 0x0a,\n\t0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x22, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72,\n\t0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x25,\n\t0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12,\n\t0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x25, 0x0a,\n\t0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x14,\n\t0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x24, 0x0a, 0x0c,\n\t0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x28, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69,\n\t0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x9c, 0x02, 0x0a,\n\t0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,\n\t0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x55, 0x4e, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x53,\n\t0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x4f, 0x50,\n\t0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x10, 0x02, 0x12, 0x16,\n\t0x0a, 0x12, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x53, 0x41, 0x4e,\n\t0x44, 0x42, 0x4f, 0x58, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45,\n\t0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15,\n\t0x50, 0x4f, 0x53, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54,\n\t0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x52, 0x54,\n\t0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14,\n\t0x50, 0x4f, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41,\n\t0x49, 0x4e, 0x45, 0x52, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,\n\t0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15,\n\t0x50, 0x4f, 0x53, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54,\n\t0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x4f, 0x50, 0x5f,\n\t0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x52,\n\t0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10,\n\t0x0b, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x0c, 0x2a, 0x82, 0x01, 0x0a, 0x0e,\n\t0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15,\n\t0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,\n\t0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e,\n\t0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10,\n\t0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44,\n\t0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f,\n\t0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e,\n\t0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04,\n\t0x32, 0xd8, 0x01, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x0e,\n\t0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x2b,\n\t0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,\n\t0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c,\n\t0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x71, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61,\n\t0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x6e,\n\t0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,\n\t0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,\n\t0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xae, 0x05, 0x0a, 0x06,\n\t0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x5c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,\n\t0x75, 0x72, 0x65, 0x12, 0x26, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,\n\t0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e,\n\t0x69, 0x7a, 0x65, 0x12, 0x28, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68,\n\t0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e,\n\t0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,\n\t0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74,\n\t0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74,\n\t0x79, 0x1a, 0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6e,\n\t0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,\n\t0x72, 0x12, 0x2c, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43,\n\t0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,\n\t0x2d, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e,\n\t0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,\n\t0x72, 0x12, 0x2c, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,\n\t0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,\n\t0x2d, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68,\n\t0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12,\n\t0x2a, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61,\n\t0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6e, 0x72,\n\t0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,\n\t0x61, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74,\n\t0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b,\n\t0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53,\n\t0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a,\n\t0x1b, 0x2e, 0x6e, 0x72, 0x69, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,\n\t0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x27, 0x5a, 0x25,\n\t0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61,\n\t0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x6e, 0x72, 0x69, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70,\n\t0x69, 0x3b, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_pkg_api_api_proto_rawDescOnce sync.Once\n\tfile_pkg_api_api_proto_rawDescData = file_pkg_api_api_proto_rawDesc\n)\n\nfunc file_pkg_api_api_proto_rawDescGZIP() []byte {\n\tfile_pkg_api_api_proto_rawDescOnce.Do(func() {\n\t\tfile_pkg_api_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_api_api_proto_rawDescData)\n\t})\n\treturn file_pkg_api_api_proto_rawDescData\n}\n\nvar file_pkg_api_api_proto_enumTypes = make([]protoimpl.EnumInfo, 2)\nvar file_pkg_api_api_proto_msgTypes = make([]protoimpl.MessageInfo, 50)\nvar file_pkg_api_api_proto_goTypes = []interface{}{\n\t(Event)(0),                       // 0: nri.pkg.api.v1alpha1.Event\n\t(ContainerState)(0),              // 1: nri.pkg.api.v1alpha1.ContainerState\n\t(*RegisterPluginRequest)(nil),    // 2: nri.pkg.api.v1alpha1.RegisterPluginRequest\n\t(*UpdateContainersRequest)(nil),  // 3: nri.pkg.api.v1alpha1.UpdateContainersRequest\n\t(*UpdateContainersResponse)(nil), // 4: nri.pkg.api.v1alpha1.UpdateContainersResponse\n\t(*ConfigureRequest)(nil),         // 5: nri.pkg.api.v1alpha1.ConfigureRequest\n\t(*ConfigureResponse)(nil),        // 6: nri.pkg.api.v1alpha1.ConfigureResponse\n\t(*SynchronizeRequest)(nil),       // 7: nri.pkg.api.v1alpha1.SynchronizeRequest\n\t(*SynchronizeResponse)(nil),      // 8: nri.pkg.api.v1alpha1.SynchronizeResponse\n\t(*CreateContainerRequest)(nil),   // 9: nri.pkg.api.v1alpha1.CreateContainerRequest\n\t(*CreateContainerResponse)(nil),  // 10: nri.pkg.api.v1alpha1.CreateContainerResponse\n\t(*UpdateContainerRequest)(nil),   // 11: nri.pkg.api.v1alpha1.UpdateContainerRequest\n\t(*UpdateContainerResponse)(nil),  // 12: nri.pkg.api.v1alpha1.UpdateContainerResponse\n\t(*StopContainerRequest)(nil),     // 13: nri.pkg.api.v1alpha1.StopContainerRequest\n\t(*StopContainerResponse)(nil),    // 14: nri.pkg.api.v1alpha1.StopContainerResponse\n\t(*StateChangeEvent)(nil),         // 15: nri.pkg.api.v1alpha1.StateChangeEvent\n\t(*Empty)(nil),                    // 16: nri.pkg.api.v1alpha1.Empty\n\t(*PodSandbox)(nil),               // 17: nri.pkg.api.v1alpha1.PodSandbox\n\t(*LinuxPodSandbox)(nil),          // 18: nri.pkg.api.v1alpha1.LinuxPodSandbox\n\t(*Container)(nil),                // 19: nri.pkg.api.v1alpha1.Container\n\t(*Mount)(nil),                    // 20: nri.pkg.api.v1alpha1.Mount\n\t(*Hooks)(nil),                    // 21: nri.pkg.api.v1alpha1.Hooks\n\t(*Hook)(nil),                     // 22: nri.pkg.api.v1alpha1.Hook\n\t(*LinuxContainer)(nil),           // 23: nri.pkg.api.v1alpha1.LinuxContainer\n\t(*LinuxNamespace)(nil),           // 24: nri.pkg.api.v1alpha1.LinuxNamespace\n\t(*LinuxDevice)(nil),              // 25: nri.pkg.api.v1alpha1.LinuxDevice\n\t(*LinuxDeviceCgroup)(nil),        // 26: nri.pkg.api.v1alpha1.LinuxDeviceCgroup\n\t(*LinuxResources)(nil),           // 27: nri.pkg.api.v1alpha1.LinuxResources\n\t(*LinuxMemory)(nil),              // 28: nri.pkg.api.v1alpha1.LinuxMemory\n\t(*LinuxCPU)(nil),                 // 29: nri.pkg.api.v1alpha1.LinuxCPU\n\t(*HugepageLimit)(nil),            // 30: nri.pkg.api.v1alpha1.HugepageLimit\n\t(*POSIXRlimit)(nil),              // 31: nri.pkg.api.v1alpha1.POSIXRlimit\n\t(*ContainerAdjustment)(nil),      // 32: nri.pkg.api.v1alpha1.ContainerAdjustment\n\t(*LinuxContainerAdjustment)(nil), // 33: nri.pkg.api.v1alpha1.LinuxContainerAdjustment\n\t(*ContainerUpdate)(nil),          // 34: nri.pkg.api.v1alpha1.ContainerUpdate\n\t(*LinuxContainerUpdate)(nil),     // 35: nri.pkg.api.v1alpha1.LinuxContainerUpdate\n\t(*ContainerEviction)(nil),        // 36: nri.pkg.api.v1alpha1.ContainerEviction\n\t(*KeyValue)(nil),                 // 37: nri.pkg.api.v1alpha1.KeyValue\n\t(*OptionalString)(nil),           // 38: nri.pkg.api.v1alpha1.OptionalString\n\t(*OptionalInt)(nil),              // 39: nri.pkg.api.v1alpha1.OptionalInt\n\t(*OptionalInt32)(nil),            // 40: nri.pkg.api.v1alpha1.OptionalInt32\n\t(*OptionalUInt32)(nil),           // 41: nri.pkg.api.v1alpha1.OptionalUInt32\n\t(*OptionalInt64)(nil),            // 42: nri.pkg.api.v1alpha1.OptionalInt64\n\t(*OptionalUInt64)(nil),           // 43: nri.pkg.api.v1alpha1.OptionalUInt64\n\t(*OptionalBool)(nil),             // 44: nri.pkg.api.v1alpha1.OptionalBool\n\t(*OptionalFileMode)(nil),         // 45: nri.pkg.api.v1alpha1.OptionalFileMode\n\tnil,                              // 46: nri.pkg.api.v1alpha1.PodSandbox.LabelsEntry\n\tnil,                              // 47: nri.pkg.api.v1alpha1.PodSandbox.AnnotationsEntry\n\tnil,                              // 48: nri.pkg.api.v1alpha1.Container.LabelsEntry\n\tnil,                              // 49: nri.pkg.api.v1alpha1.Container.AnnotationsEntry\n\tnil,                              // 50: nri.pkg.api.v1alpha1.LinuxResources.UnifiedEntry\n\tnil,                              // 51: nri.pkg.api.v1alpha1.ContainerAdjustment.AnnotationsEntry\n}\nvar file_pkg_api_api_proto_depIdxs = []int32{\n\t34, // 0: nri.pkg.api.v1alpha1.UpdateContainersRequest.update:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t36, // 1: nri.pkg.api.v1alpha1.UpdateContainersRequest.evict:type_name -> nri.pkg.api.v1alpha1.ContainerEviction\n\t34, // 2: nri.pkg.api.v1alpha1.UpdateContainersResponse.failed:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t17, // 3: nri.pkg.api.v1alpha1.SynchronizeRequest.pods:type_name -> nri.pkg.api.v1alpha1.PodSandbox\n\t19, // 4: nri.pkg.api.v1alpha1.SynchronizeRequest.containers:type_name -> nri.pkg.api.v1alpha1.Container\n\t34, // 5: nri.pkg.api.v1alpha1.SynchronizeResponse.update:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t17, // 6: nri.pkg.api.v1alpha1.CreateContainerRequest.pod:type_name -> nri.pkg.api.v1alpha1.PodSandbox\n\t19, // 7: nri.pkg.api.v1alpha1.CreateContainerRequest.container:type_name -> nri.pkg.api.v1alpha1.Container\n\t32, // 8: nri.pkg.api.v1alpha1.CreateContainerResponse.adjust:type_name -> nri.pkg.api.v1alpha1.ContainerAdjustment\n\t34, // 9: nri.pkg.api.v1alpha1.CreateContainerResponse.update:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t36, // 10: nri.pkg.api.v1alpha1.CreateContainerResponse.evict:type_name -> nri.pkg.api.v1alpha1.ContainerEviction\n\t17, // 11: nri.pkg.api.v1alpha1.UpdateContainerRequest.pod:type_name -> nri.pkg.api.v1alpha1.PodSandbox\n\t19, // 12: nri.pkg.api.v1alpha1.UpdateContainerRequest.container:type_name -> nri.pkg.api.v1alpha1.Container\n\t27, // 13: nri.pkg.api.v1alpha1.UpdateContainerRequest.linux_resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t34, // 14: nri.pkg.api.v1alpha1.UpdateContainerResponse.update:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t36, // 15: nri.pkg.api.v1alpha1.UpdateContainerResponse.evict:type_name -> nri.pkg.api.v1alpha1.ContainerEviction\n\t17, // 16: nri.pkg.api.v1alpha1.StopContainerRequest.pod:type_name -> nri.pkg.api.v1alpha1.PodSandbox\n\t19, // 17: nri.pkg.api.v1alpha1.StopContainerRequest.container:type_name -> nri.pkg.api.v1alpha1.Container\n\t34, // 18: nri.pkg.api.v1alpha1.StopContainerResponse.update:type_name -> nri.pkg.api.v1alpha1.ContainerUpdate\n\t0,  // 19: nri.pkg.api.v1alpha1.StateChangeEvent.event:type_name -> nri.pkg.api.v1alpha1.Event\n\t17, // 20: nri.pkg.api.v1alpha1.StateChangeEvent.pod:type_name -> nri.pkg.api.v1alpha1.PodSandbox\n\t19, // 21: nri.pkg.api.v1alpha1.StateChangeEvent.container:type_name -> nri.pkg.api.v1alpha1.Container\n\t46, // 22: nri.pkg.api.v1alpha1.PodSandbox.labels:type_name -> nri.pkg.api.v1alpha1.PodSandbox.LabelsEntry\n\t47, // 23: nri.pkg.api.v1alpha1.PodSandbox.annotations:type_name -> nri.pkg.api.v1alpha1.PodSandbox.AnnotationsEntry\n\t18, // 24: nri.pkg.api.v1alpha1.PodSandbox.linux:type_name -> nri.pkg.api.v1alpha1.LinuxPodSandbox\n\t27, // 25: nri.pkg.api.v1alpha1.LinuxPodSandbox.pod_overhead:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t27, // 26: nri.pkg.api.v1alpha1.LinuxPodSandbox.pod_resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t24, // 27: nri.pkg.api.v1alpha1.LinuxPodSandbox.namespaces:type_name -> nri.pkg.api.v1alpha1.LinuxNamespace\n\t27, // 28: nri.pkg.api.v1alpha1.LinuxPodSandbox.resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t1,  // 29: nri.pkg.api.v1alpha1.Container.state:type_name -> nri.pkg.api.v1alpha1.ContainerState\n\t48, // 30: nri.pkg.api.v1alpha1.Container.labels:type_name -> nri.pkg.api.v1alpha1.Container.LabelsEntry\n\t49, // 31: nri.pkg.api.v1alpha1.Container.annotations:type_name -> nri.pkg.api.v1alpha1.Container.AnnotationsEntry\n\t20, // 32: nri.pkg.api.v1alpha1.Container.mounts:type_name -> nri.pkg.api.v1alpha1.Mount\n\t21, // 33: nri.pkg.api.v1alpha1.Container.hooks:type_name -> nri.pkg.api.v1alpha1.Hooks\n\t23, // 34: nri.pkg.api.v1alpha1.Container.linux:type_name -> nri.pkg.api.v1alpha1.LinuxContainer\n\t31, // 35: nri.pkg.api.v1alpha1.Container.rlimits:type_name -> nri.pkg.api.v1alpha1.POSIXRlimit\n\t22, // 36: nri.pkg.api.v1alpha1.Hooks.prestart:type_name -> nri.pkg.api.v1alpha1.Hook\n\t22, // 37: nri.pkg.api.v1alpha1.Hooks.create_runtime:type_name -> nri.pkg.api.v1alpha1.Hook\n\t22, // 38: nri.pkg.api.v1alpha1.Hooks.create_container:type_name -> nri.pkg.api.v1alpha1.Hook\n\t22, // 39: nri.pkg.api.v1alpha1.Hooks.start_container:type_name -> nri.pkg.api.v1alpha1.Hook\n\t22, // 40: nri.pkg.api.v1alpha1.Hooks.poststart:type_name -> nri.pkg.api.v1alpha1.Hook\n\t22, // 41: nri.pkg.api.v1alpha1.Hooks.poststop:type_name -> nri.pkg.api.v1alpha1.Hook\n\t39, // 42: nri.pkg.api.v1alpha1.Hook.timeout:type_name -> nri.pkg.api.v1alpha1.OptionalInt\n\t24, // 43: nri.pkg.api.v1alpha1.LinuxContainer.namespaces:type_name -> nri.pkg.api.v1alpha1.LinuxNamespace\n\t25, // 44: nri.pkg.api.v1alpha1.LinuxContainer.devices:type_name -> nri.pkg.api.v1alpha1.LinuxDevice\n\t27, // 45: nri.pkg.api.v1alpha1.LinuxContainer.resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t39, // 46: nri.pkg.api.v1alpha1.LinuxContainer.oom_score_adj:type_name -> nri.pkg.api.v1alpha1.OptionalInt\n\t45, // 47: nri.pkg.api.v1alpha1.LinuxDevice.file_mode:type_name -> nri.pkg.api.v1alpha1.OptionalFileMode\n\t41, // 48: nri.pkg.api.v1alpha1.LinuxDevice.uid:type_name -> nri.pkg.api.v1alpha1.OptionalUInt32\n\t41, // 49: nri.pkg.api.v1alpha1.LinuxDevice.gid:type_name -> nri.pkg.api.v1alpha1.OptionalUInt32\n\t42, // 50: nri.pkg.api.v1alpha1.LinuxDeviceCgroup.major:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t42, // 51: nri.pkg.api.v1alpha1.LinuxDeviceCgroup.minor:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t28, // 52: nri.pkg.api.v1alpha1.LinuxResources.memory:type_name -> nri.pkg.api.v1alpha1.LinuxMemory\n\t29, // 53: nri.pkg.api.v1alpha1.LinuxResources.cpu:type_name -> nri.pkg.api.v1alpha1.LinuxCPU\n\t30, // 54: nri.pkg.api.v1alpha1.LinuxResources.hugepage_limits:type_name -> nri.pkg.api.v1alpha1.HugepageLimit\n\t38, // 55: nri.pkg.api.v1alpha1.LinuxResources.blockio_class:type_name -> nri.pkg.api.v1alpha1.OptionalString\n\t38, // 56: nri.pkg.api.v1alpha1.LinuxResources.rdt_class:type_name -> nri.pkg.api.v1alpha1.OptionalString\n\t50, // 57: nri.pkg.api.v1alpha1.LinuxResources.unified:type_name -> nri.pkg.api.v1alpha1.LinuxResources.UnifiedEntry\n\t26, // 58: nri.pkg.api.v1alpha1.LinuxResources.devices:type_name -> nri.pkg.api.v1alpha1.LinuxDeviceCgroup\n\t42, // 59: nri.pkg.api.v1alpha1.LinuxMemory.limit:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t42, // 60: nri.pkg.api.v1alpha1.LinuxMemory.reservation:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t42, // 61: nri.pkg.api.v1alpha1.LinuxMemory.swap:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t42, // 62: nri.pkg.api.v1alpha1.LinuxMemory.kernel:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t42, // 63: nri.pkg.api.v1alpha1.LinuxMemory.kernel_tcp:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t43, // 64: nri.pkg.api.v1alpha1.LinuxMemory.swappiness:type_name -> nri.pkg.api.v1alpha1.OptionalUInt64\n\t44, // 65: nri.pkg.api.v1alpha1.LinuxMemory.disable_oom_killer:type_name -> nri.pkg.api.v1alpha1.OptionalBool\n\t44, // 66: nri.pkg.api.v1alpha1.LinuxMemory.use_hierarchy:type_name -> nri.pkg.api.v1alpha1.OptionalBool\n\t43, // 67: nri.pkg.api.v1alpha1.LinuxCPU.shares:type_name -> nri.pkg.api.v1alpha1.OptionalUInt64\n\t42, // 68: nri.pkg.api.v1alpha1.LinuxCPU.quota:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t43, // 69: nri.pkg.api.v1alpha1.LinuxCPU.period:type_name -> nri.pkg.api.v1alpha1.OptionalUInt64\n\t42, // 70: nri.pkg.api.v1alpha1.LinuxCPU.realtime_runtime:type_name -> nri.pkg.api.v1alpha1.OptionalInt64\n\t43, // 71: nri.pkg.api.v1alpha1.LinuxCPU.realtime_period:type_name -> nri.pkg.api.v1alpha1.OptionalUInt64\n\t51, // 72: nri.pkg.api.v1alpha1.ContainerAdjustment.annotations:type_name -> nri.pkg.api.v1alpha1.ContainerAdjustment.AnnotationsEntry\n\t20, // 73: nri.pkg.api.v1alpha1.ContainerAdjustment.mounts:type_name -> nri.pkg.api.v1alpha1.Mount\n\t37, // 74: nri.pkg.api.v1alpha1.ContainerAdjustment.env:type_name -> nri.pkg.api.v1alpha1.KeyValue\n\t21, // 75: nri.pkg.api.v1alpha1.ContainerAdjustment.hooks:type_name -> nri.pkg.api.v1alpha1.Hooks\n\t33, // 76: nri.pkg.api.v1alpha1.ContainerAdjustment.linux:type_name -> nri.pkg.api.v1alpha1.LinuxContainerAdjustment\n\t31, // 77: nri.pkg.api.v1alpha1.ContainerAdjustment.rlimits:type_name -> nri.pkg.api.v1alpha1.POSIXRlimit\n\t25, // 78: nri.pkg.api.v1alpha1.LinuxContainerAdjustment.devices:type_name -> nri.pkg.api.v1alpha1.LinuxDevice\n\t27, // 79: nri.pkg.api.v1alpha1.LinuxContainerAdjustment.resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t35, // 80: nri.pkg.api.v1alpha1.ContainerUpdate.linux:type_name -> nri.pkg.api.v1alpha1.LinuxContainerUpdate\n\t27, // 81: nri.pkg.api.v1alpha1.LinuxContainerUpdate.resources:type_name -> nri.pkg.api.v1alpha1.LinuxResources\n\t2,  // 82: nri.pkg.api.v1alpha1.Runtime.RegisterPlugin:input_type -> nri.pkg.api.v1alpha1.RegisterPluginRequest\n\t3,  // 83: nri.pkg.api.v1alpha1.Runtime.UpdateContainers:input_type -> nri.pkg.api.v1alpha1.UpdateContainersRequest\n\t5,  // 84: nri.pkg.api.v1alpha1.Plugin.Configure:input_type -> nri.pkg.api.v1alpha1.ConfigureRequest\n\t7,  // 85: nri.pkg.api.v1alpha1.Plugin.Synchronize:input_type -> nri.pkg.api.v1alpha1.SynchronizeRequest\n\t16, // 86: nri.pkg.api.v1alpha1.Plugin.Shutdown:input_type -> nri.pkg.api.v1alpha1.Empty\n\t9,  // 87: nri.pkg.api.v1alpha1.Plugin.CreateContainer:input_type -> nri.pkg.api.v1alpha1.CreateContainerRequest\n\t11, // 88: nri.pkg.api.v1alpha1.Plugin.UpdateContainer:input_type -> nri.pkg.api.v1alpha1.UpdateContainerRequest\n\t13, // 89: nri.pkg.api.v1alpha1.Plugin.StopContainer:input_type -> nri.pkg.api.v1alpha1.StopContainerRequest\n\t15, // 90: nri.pkg.api.v1alpha1.Plugin.StateChange:input_type -> nri.pkg.api.v1alpha1.StateChangeEvent\n\t16, // 91: nri.pkg.api.v1alpha1.Runtime.RegisterPlugin:output_type -> nri.pkg.api.v1alpha1.Empty\n\t4,  // 92: nri.pkg.api.v1alpha1.Runtime.UpdateContainers:output_type -> nri.pkg.api.v1alpha1.UpdateContainersResponse\n\t6,  // 93: nri.pkg.api.v1alpha1.Plugin.Configure:output_type -> nri.pkg.api.v1alpha1.ConfigureResponse\n\t8,  // 94: nri.pkg.api.v1alpha1.Plugin.Synchronize:output_type -> nri.pkg.api.v1alpha1.SynchronizeResponse\n\t16, // 95: nri.pkg.api.v1alpha1.Plugin.Shutdown:output_type -> nri.pkg.api.v1alpha1.Empty\n\t10, // 96: nri.pkg.api.v1alpha1.Plugin.CreateContainer:output_type -> nri.pkg.api.v1alpha1.CreateContainerResponse\n\t12, // 97: nri.pkg.api.v1alpha1.Plugin.UpdateContainer:output_type -> nri.pkg.api.v1alpha1.UpdateContainerResponse\n\t14, // 98: nri.pkg.api.v1alpha1.Plugin.StopContainer:output_type -> nri.pkg.api.v1alpha1.StopContainerResponse\n\t16, // 99: nri.pkg.api.v1alpha1.Plugin.StateChange:output_type -> nri.pkg.api.v1alpha1.Empty\n\t91, // [91:100] is the sub-list for method output_type\n\t82, // [82:91] is the sub-list for method input_type\n\t82, // [82:82] is the sub-list for extension type_name\n\t82, // [82:82] is the sub-list for extension extendee\n\t0,  // [0:82] is the sub-list for field type_name\n}\n\nfunc init() { file_pkg_api_api_proto_init() }\nfunc file_pkg_api_api_proto_init() {\n\tif File_pkg_api_api_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_pkg_api_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RegisterPluginRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*UpdateContainersRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*UpdateContainersResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ConfigureRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ConfigureResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SynchronizeRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SynchronizeResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CreateContainerRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CreateContainerResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*UpdateContainerRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*UpdateContainerResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StopContainerRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StopContainerResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StateChangeEvent); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Empty); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PodSandbox); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxPodSandbox); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Container); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Mount); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Hooks); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Hook); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxContainer); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxNamespace); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxDevice); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxDeviceCgroup); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxResources); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxMemory); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxCPU); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HugepageLimit); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*POSIXRlimit); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ContainerAdjustment); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxContainerAdjustment); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ContainerUpdate); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinuxContainerUpdate); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ContainerEviction); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*KeyValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalString); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalInt); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalInt32); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalUInt32); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalInt64); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalUInt64); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalBool); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_pkg_api_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OptionalFileMode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_pkg_api_api_proto_rawDesc,\n\t\t\tNumEnums:      2,\n\t\t\tNumMessages:   50,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   2,\n\t\t},\n\t\tGoTypes:           file_pkg_api_api_proto_goTypes,\n\t\tDependencyIndexes: file_pkg_api_api_proto_depIdxs,\n\t\tEnumInfos:         file_pkg_api_api_proto_enumTypes,\n\t\tMessageInfos:      file_pkg_api_api_proto_msgTypes,\n\t}.Build()\n\tFile_pkg_api_api_proto = out.File\n\tfile_pkg_api_api_proto_rawDesc = nil\n\tfile_pkg_api_api_proto_goTypes = nil\n\tfile_pkg_api_api_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/api.proto",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\nsyntax = \"proto3\";\n\npackage nri.pkg.api.v1alpha1;\n\noption go_package = \"github.com/containerd/nri/pkg/api;api\";\n\n// Runtime service is the public API runtimes expose for NRI plugins.\n// On this interface RPC requests are initiated by the plugin. This\n// only covers plugin registration and unsolicited container updates.\n// The rest of the API is defined by the Plugin service.\nservice Runtime {\n    // RegisterPlugin registers the plugin with the runtime.\n    rpc RegisterPlugin(RegisterPluginRequest) returns (Empty);\n    // UpdateContainers requests unsolicited updates to a set of containers.\n    rpc UpdateContainers(UpdateContainersRequest) returns (UpdateContainersResponse);\n}\n\nmessage RegisterPluginRequest {\n    // Name of the plugin to register.\n    string plugin_name = 1;\n    // Plugin invocation index. Plugins are called in ascending index order.\n    string plugin_idx = 2;\n}\n\nmessage UpdateContainersRequest {\n  // List of containers to update.\n  repeated ContainerUpdate update = 1;\n  // List of containers to evict.\n  repeated ContainerEviction evict = 2;\n}\n\nmessage UpdateContainersResponse {\n  // Containers that the runtime failed to udpate.\n  repeated ContainerUpdate failed = 1;\n}\n\n\n//\n// Plugin is the API NRI uses to interact with plugins. It is used to\n// - configure a plugin and subscribe it for lifecycle events\n// - synchronize the state of a plugin with that of the runtime\n// - hook a plugin into the lifecycle events of its interest\n//\n// During configuration the plugin tells the runtime which lifecycle events\n// it wishes to get hooked into. Once configured, the plugin is synchronized\n// with the runtime by receiving the list of pods and containers known to\n// the runtime. The plugin can request changes to any of the containers in\n// response. After initial synchronization the plugin starts receiving the\n// events it subscribed for as they occur in the runtime. For container\n// creation, update, and stop events, the plugin can request changes, both\n// to the container that triggered the event or any other existing container\n// in the runtime.\n//\n// For a subset of the container lifecycle events, NRI defines an additional\n// Post-variant of the event. These variants are defined for CreateContainer,\n// StartContainer, and UpdateContainer. For creation and update, these events\n// can be used by plugins to discover the full extent of changes applied to\n// the container, including any changes made by other active plugins.\n//\nservice Plugin {\n  // Configure the plugin and get its event subscription.\n  rpc Configure(ConfigureRequest) returns (ConfigureResponse);\n\n  // Synchronize the plugin with the state of the runtime.\n  rpc Synchronize(SynchronizeRequest) returns (SynchronizeResponse);\n\n  // Shutdown a plugin (let it know the runtime is going down).\n  rpc Shutdown(Empty) returns (Empty);\n\n  // CreateContainer relays the corresponding request to the plugin. In\n  // response, the plugin can adjust the container being created, and\n  // update other containers in the runtime. Container adjustment can\n  // alter labels, annotations, mounts, devices, environment variables,\n  // OCI hooks, and assigned container resources. Updates can alter\n  // assigned container resources.\n  rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse);\n\n  // UpdateContainer relays the corresponding request to the plugin.\n  // The plugin can alter how the container is updated and request updates\n  // to additional containers in the runtime.\n  rpc UpdateContainer(UpdateContainerRequest) returns (UpdateContainerResponse);\n\n  // StopContainer relays the corresponding request to the plugin. The plugin\n  // can update any of the remaining containers in the runtime in response.\n  rpc StopContainer(StopContainerRequest) returns (StopContainerResponse);\n\n  // StateChange relays any remaining pod or container lifecycle/state change\n  // events the plugin has subscribed for. These can be used to trigger any\n  // plugin-specific processing which needs to occur in connection with any of\n  // these events.\n  rpc StateChange(StateChangeEvent) returns (Empty);\n}\n\nmessage ConfigureRequest {\n  // Any plugin-specific data, if present among the NRI configuration.\n  string config = 1;\n  // Name of the runtime NRI is running in.\n  string runtime_name = 2;\n  // Version of the runtime NRI is running in.\n  string runtime_version = 3;\n}\n\nmessage ConfigureResponse {\n  // Events to subscribe the plugin for. Each bit set corresponds to an\n  // enumerated Event.\n  int32 events = 2;\n}\n\nmessage SynchronizeRequest {\n  // Pods known to the runtime.\n  repeated PodSandbox pods = 1;\n  // Containers known to the runtime.\n  repeated Container containers = 2;\n}\n\nmessage SynchronizeResponse {\n  // Updates to containers requested by the plugin.\n  repeated ContainerUpdate update = 1;\n}\n\nmessage CreateContainerRequest {\n  // Pod of container being created.\n  PodSandbox pod = 1;\n  // Container being created.\n  Container container = 2;\n}\n\nmessage CreateContainerResponse {\n  // Requested adjustments to container being created.\n  ContainerAdjustment adjust = 1;\n  // Requested updates to other existing containers.\n  repeated ContainerUpdate update = 2;\n  // Requested eviction of existing containers.\n  repeated ContainerEviction evict = 3;\n}\n\nmessage UpdateContainerRequest {\n  // Pod of container being updated.\n  PodSandbox pod = 1;\n  // Container being updated.\n  Container container = 2;\n  // Resources to update.\n  LinuxResources linux_resources = 3;\n}\n\nmessage UpdateContainerResponse {\n  // Requested updates to containers.\n  repeated ContainerUpdate update = 1;\n  // Requested eviction of containers.\n  repeated ContainerEviction evict = 2;\n}\n\nmessage StopContainerRequest {\n  // Pod of container being stopped.\n  PodSandbox pod = 1;\n  // Container being stopped.\n  Container container = 2;\n}\n\nmessage StopContainerResponse {\n  // Requested updates to containers.\n  repeated ContainerUpdate update = 1;\n}\n\nmessage StateChangeEvent {\n  // Event type of notification.\n  Event event = 1;\n  // Pod this notification is sent for. If this event is related to a container,\n  // pod is set to the pod of the container.\n  PodSandbox pod = 2;\n  // Container this notification is sent for. If the event is related to a pod,\n  // container is nil.\n  Container container = 3;\n}\n\n// Empty response for those *Requests that are semantically events.\nmessage Empty {}\n\n// Events that plugins can subscribe to in ConfigureResponse.\nenum Event {\n  UNKNOWN = 0;\n  RUN_POD_SANDBOX = 1;\n  STOP_POD_SANDBOX = 2;\n  REMOVE_POD_SANDBOX = 3;\n  CREATE_CONTAINER = 4;\n  POST_CREATE_CONTAINER = 5;\n  START_CONTAINER = 6;\n  POST_START_CONTAINER = 7;\n  UPDATE_CONTAINER = 8;\n  POST_UPDATE_CONTAINER = 9;\n  STOP_CONTAINER = 10;\n  REMOVE_CONTAINER = 11;\n  LAST = 12;\n}\n\n// Pod metadata that is considered relevant for a plugin.\nmessage PodSandbox {\n  string id = 1;\n  string name = 2;\n  string uid = 3;\n  string namespace = 4;\n  map<string, string> labels = 5;\n  map<string, string> annotations = 6;\n  string runtime_handler = 7;\n  LinuxPodSandbox linux = 8;\n  uint32 pid = 9; // for NRI v1 emulation\n}\n\n// PodSandbox linux-specific metadata\nmessage LinuxPodSandbox {\n  LinuxResources pod_overhead = 1;\n  LinuxResources pod_resources = 2;\n  string cgroup_parent = 3;\n  string cgroups_path = 4; // for NRI v1 emulation\n  repeated LinuxNamespace namespaces = 5; // for NRI v1 emulation\n  LinuxResources resources = 6; // for NRI v1 emulation\n}\n\n// Container metadata that is considered relevant for a plugin.\nmessage Container {\n  string id = 1;\n  string pod_sandbox_id = 2;\n  string name = 3;\n  ContainerState state = 4;\n  map<string, string> labels = 5;\n  map<string, string> annotations = 6;\n  repeated string args = 7;\n  repeated string env = 8;\n  repeated Mount mounts = 9;\n  Hooks hooks = 10;\n  LinuxContainer linux = 11;\n  uint32 pid = 12; // for NRI v1 emulation\n  repeated POSIXRlimit rlimits = 13;\n}\n\n// Possible container states.\nenum ContainerState {\n  CONTAINER_UNKNOWN = 0;\n  CONTAINER_CREATED = 1;\n  CONTAINER_PAUSED = 2; // is this useful/necessary ?\n  CONTAINER_RUNNING = 3;\n  CONTAINER_STOPPED = 4;\n}\n\n// A container mount.\nmessage Mount {\n  string destination = 1;\n  string type = 2;\n  string source = 3;\n  repeated string options = 4;\n}\n\n// Container OCI hooks.\nmessage Hooks {\n  repeated Hook prestart = 1;\n  repeated Hook create_runtime = 2;\n  repeated Hook create_container = 3;\n  repeated Hook start_container = 4;\n  repeated Hook poststart = 5;\n  repeated Hook poststop = 6;\n}\n\n// One OCI hook.\nmessage Hook {\n  string path = 1;\n  repeated string args = 2;\n  repeated string env = 3;\n  OptionalInt timeout = 4;\n}\n\n// Container (linux) metadata.\nmessage LinuxContainer {\n  repeated LinuxNamespace namespaces = 1;\n  repeated LinuxDevice devices = 2;\n  LinuxResources resources = 3;\n  OptionalInt oom_score_adj = 4;\n  string cgroups_path = 5;\n}\n\n// A linux namespace.\nmessage LinuxNamespace {\n  string type = 1;\n  string path = 2;\n}\n\n// A container (linux) device.\nmessage LinuxDevice {\n  string path = 1;\n  string type = 2;\n  int64 major = 3;\n  int64 minor = 4;\n  OptionalFileMode file_mode = 5;\n  OptionalUInt32 uid = 6;\n  OptionalUInt32 gid = 7;\n}\n\n// A linux device cgroup controller rule.\nmessage LinuxDeviceCgroup {\n  bool allow = 1;\n  string type = 2;\n  OptionalInt64 major = 3;\n  OptionalInt64 minor = 4;\n  string access = 5;\n}\n\n// Container (linux) resources.\nmessage LinuxResources {\n  LinuxMemory memory = 1;\n  LinuxCPU cpu = 2;\n  repeated HugepageLimit hugepage_limits = 3;\n  OptionalString blockio_class = 4;\n  OptionalString rdt_class = 5;\n  map<string, string> unified = 6;\n  repeated LinuxDeviceCgroup devices = 7; // for NRI v1 emulation\n}\n\n// Memory-related parts of (linux) resources.\nmessage LinuxMemory {\n  OptionalInt64 limit = 1;\n  OptionalInt64 reservation = 2;\n  OptionalInt64 swap = 3;\n  OptionalInt64 kernel = 4;\n  OptionalInt64 kernel_tcp = 5;\n  OptionalUInt64 swappiness = 6;\n  OptionalBool disable_oom_killer = 7;\n  OptionalBool use_hierarchy = 8;\n}\n\n// CPU-related parts of (linux) resources.\nmessage LinuxCPU {\n  OptionalUInt64 shares = 1;\n  OptionalInt64 quota = 2;\n  OptionalUInt64 period = 3;\n  OptionalInt64 realtime_runtime = 4;\n  OptionalUInt64 realtime_period = 5;\n  string cpus = 6;\n  string mems = 7;\n}\n\n// Container huge page limit.\nmessage HugepageLimit {\n  string page_size = 1;\n  uint64 limit = 2;\n}\n\n// Container rlimits\nmessage POSIXRlimit {\n  string type = 1;\n  uint64 hard = 2;\n  uint64 soft = 3;\n}\n\n// Requested adjustments to a container being created.\nmessage ContainerAdjustment {\n  map<string, string> annotations = 2;\n  repeated Mount mounts = 3;\n  repeated KeyValue env = 4;\n  Hooks hooks = 5;\n  LinuxContainerAdjustment linux = 6;\n  repeated POSIXRlimit rlimits = 7;\n}\n\n// Adjustments to (linux) resources.\nmessage LinuxContainerAdjustment {\n  repeated LinuxDevice devices = 1;\n  LinuxResources resources = 2;\n  string cgroups_path = 3;\n}\n\n// Requested update to an already created container.\nmessage ContainerUpdate {\n  string container_id = 1;\n  LinuxContainerUpdate linux = 2;\n  bool ignore_failure = 3;\n}\n\n// Updates to (linux) resources.\nmessage LinuxContainerUpdate {\n  LinuxResources resources = 1;\n}\n\n// Request to evict (IOW unsolicitedly stop) a container.\nmessage ContainerEviction {\n  // Container to evict.\n  string container_id = 1;\n  // Human-readable reason for eviction.\n  string reason = 2;\n}\n\n// KeyValue represents an environment variable.\nmessage KeyValue {\n  string key = 1;\n  string value = 2;\n}\n\n// An optional string value.\nmessage OptionalString {\n  string value = 1;\n}\n\n// An optional signed integer value.\nmessage OptionalInt {\n  int64 value = 1;\n}\n\n// An optional 32-bit signed integer value.\nmessage OptionalInt32 {\n  int32 value = 1;\n}\n\n// An optional 32-bit unsigned integer value.\nmessage OptionalUInt32 {\n  uint32 value = 1;\n}\n\n// An optional 64-bit signed integer value.\nmessage OptionalInt64 {\n  int64 value = 1;\n}\n\n// An optional 64-bit unsigned integer value.\nmessage OptionalUInt64 {\n  uint64 value = 1;\n}\n\n// An optional boolean value.\nmessage OptionalBool {\n  bool value = 1;\n}\n\n// An optional value of file permissions.\nmessage OptionalFileMode {\n  uint32 value = 1;\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/api_ttrpc.pb.go",
    "content": "// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.\n// source: pkg/api/api.proto\npackage api\n\nimport (\n\tcontext \"context\"\n\tttrpc \"github.com/containerd/ttrpc\"\n)\n\ntype RuntimeService interface {\n\tRegisterPlugin(context.Context, *RegisterPluginRequest) (*Empty, error)\n\tUpdateContainers(context.Context, *UpdateContainersRequest) (*UpdateContainersResponse, error)\n}\n\nfunc RegisterRuntimeService(srv *ttrpc.Server, svc RuntimeService) {\n\tsrv.RegisterService(\"nri.pkg.api.v1alpha1.Runtime\", &ttrpc.ServiceDesc{\n\t\tMethods: map[string]ttrpc.Method{\n\t\t\t\"RegisterPlugin\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req RegisterPluginRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.RegisterPlugin(ctx, &req)\n\t\t\t},\n\t\t\t\"UpdateContainers\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req UpdateContainersRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.UpdateContainers(ctx, &req)\n\t\t\t},\n\t\t},\n\t})\n}\n\ntype runtimeClient struct {\n\tclient *ttrpc.Client\n}\n\nfunc NewRuntimeClient(client *ttrpc.Client) RuntimeService {\n\treturn &runtimeClient{\n\t\tclient: client,\n\t}\n}\n\nfunc (c *runtimeClient) RegisterPlugin(ctx context.Context, req *RegisterPluginRequest) (*Empty, error) {\n\tvar resp Empty\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Runtime\", \"RegisterPlugin\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *runtimeClient) UpdateContainers(ctx context.Context, req *UpdateContainersRequest) (*UpdateContainersResponse, error) {\n\tvar resp UpdateContainersResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Runtime\", \"UpdateContainers\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\ntype PluginService interface {\n\tConfigure(context.Context, *ConfigureRequest) (*ConfigureResponse, error)\n\tSynchronize(context.Context, *SynchronizeRequest) (*SynchronizeResponse, error)\n\tShutdown(context.Context, *Empty) (*Empty, error)\n\tCreateContainer(context.Context, *CreateContainerRequest) (*CreateContainerResponse, error)\n\tUpdateContainer(context.Context, *UpdateContainerRequest) (*UpdateContainerResponse, error)\n\tStopContainer(context.Context, *StopContainerRequest) (*StopContainerResponse, error)\n\tStateChange(context.Context, *StateChangeEvent) (*Empty, error)\n}\n\nfunc RegisterPluginService(srv *ttrpc.Server, svc PluginService) {\n\tsrv.RegisterService(\"nri.pkg.api.v1alpha1.Plugin\", &ttrpc.ServiceDesc{\n\t\tMethods: map[string]ttrpc.Method{\n\t\t\t\"Configure\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req ConfigureRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.Configure(ctx, &req)\n\t\t\t},\n\t\t\t\"Synchronize\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req SynchronizeRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.Synchronize(ctx, &req)\n\t\t\t},\n\t\t\t\"Shutdown\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req Empty\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.Shutdown(ctx, &req)\n\t\t\t},\n\t\t\t\"CreateContainer\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req CreateContainerRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.CreateContainer(ctx, &req)\n\t\t\t},\n\t\t\t\"UpdateContainer\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req UpdateContainerRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.UpdateContainer(ctx, &req)\n\t\t\t},\n\t\t\t\"StopContainer\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req StopContainerRequest\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.StopContainer(ctx, &req)\n\t\t\t},\n\t\t\t\"StateChange\": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {\n\t\t\t\tvar req StateChangeEvent\n\t\t\t\tif err := unmarshal(&req); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn svc.StateChange(ctx, &req)\n\t\t\t},\n\t\t},\n\t})\n}\n\ntype pluginClient struct {\n\tclient *ttrpc.Client\n}\n\nfunc NewPluginClient(client *ttrpc.Client) PluginService {\n\treturn &pluginClient{\n\t\tclient: client,\n\t}\n}\n\nfunc (c *pluginClient) Configure(ctx context.Context, req *ConfigureRequest) (*ConfigureResponse, error) {\n\tvar resp ConfigureResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"Configure\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) Synchronize(ctx context.Context, req *SynchronizeRequest) (*SynchronizeResponse, error) {\n\tvar resp SynchronizeResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"Synchronize\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) Shutdown(ctx context.Context, req *Empty) (*Empty, error) {\n\tvar resp Empty\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"Shutdown\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) CreateContainer(ctx context.Context, req *CreateContainerRequest) (*CreateContainerResponse, error) {\n\tvar resp CreateContainerResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"CreateContainer\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) UpdateContainer(ctx context.Context, req *UpdateContainerRequest) (*UpdateContainerResponse, error) {\n\tvar resp UpdateContainerResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"UpdateContainer\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) StopContainer(ctx context.Context, req *StopContainerRequest) (*StopContainerResponse, error) {\n\tvar resp StopContainerResponse\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"StopContainer\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n\nfunc (c *pluginClient) StateChange(ctx context.Context, req *StateChangeEvent) (*Empty, error) {\n\tvar resp Empty\n\tif err := c.client.Call(ctx, \"nri.pkg.api.v1alpha1.Plugin\", \"StateChange\", req, &resp); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &resp, nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/device.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\trspec \"github.com/opencontainers/runtime-spec/specs-go\"\n)\n\n// FromOCILinuxDevices returns a device slice from an OCI runtime Spec.\nfunc FromOCILinuxDevices(o []rspec.LinuxDevice) []*LinuxDevice {\n\tvar devices []*LinuxDevice\n\tfor _, d := range o {\n\t\tdevices = append(devices, &LinuxDevice{\n\t\t\tPath:     d.Path,\n\t\t\tType:     d.Type,\n\t\t\tMajor:    d.Major,\n\t\t\tMinor:    d.Minor,\n\t\t\tFileMode: FileMode(d.FileMode),\n\t\t\tUid:      UInt32(d.UID),\n\t\t\tGid:      UInt32(d.GID),\n\t\t})\n\t}\n\treturn devices\n}\n\n// ToOCI returns the linux devices for an OCI runtime Spec.\nfunc (d *LinuxDevice) ToOCI() rspec.LinuxDevice {\n\tif d == nil {\n\t\treturn rspec.LinuxDevice{}\n\t}\n\n\treturn rspec.LinuxDevice{\n\t\tPath:     d.Path,\n\t\tType:     d.Type,\n\t\tMajor:    d.Major,\n\t\tMinor:    d.Minor,\n\t\tFileMode: d.FileMode.Get(),\n\t\tUID:      d.Uid.Get(),\n\t\tGID:      d.Gid.Get(),\n\t}\n}\n\n// AccessString returns an OCI access string for the device.\nfunc (d *LinuxDevice) AccessString() string {\n\tr, w, m := \"r\", \"w\", \"\"\n\n\tif mode := d.FileMode.Get(); mode != nil {\n\t\tperm := mode.Perm()\n\t\tif (perm & 0444) != 0 {\n\t\t\tr = \"r\"\n\t\t}\n\t\tif (perm & 0222) != 0 {\n\t\t\tw = \"w\"\n\t\t}\n\t}\n\tif d.Type == \"b\" {\n\t\tm = \"m\"\n\t}\n\n\treturn r + w + m\n}\n\n// Cmp returns true if the devices are equal.\nfunc (d *LinuxDevice) Cmp(v *LinuxDevice) bool {\n\tif v == nil {\n\t\treturn false\n\t}\n\treturn d.Major != v.Major || d.Minor != v.Minor\n}\n\n// IsMarkedForRemoval checks if a LinuxDevice is marked for removal.\nfunc (d *LinuxDevice) IsMarkedForRemoval() (string, bool) {\n\tkey, marked := IsMarkedForRemoval(d.Path)\n\treturn key, marked\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/doc.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/env.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"strings\"\n)\n\n// ToOCI returns an OCI Env entry for the KeyValue.\nfunc (e *KeyValue) ToOCI() string {\n\treturn e.Key + \"=\" + e.Value\n}\n\n// FromOCIEnv returns KeyValues from an OCI runtime Spec environment.\nfunc FromOCIEnv(in []string) []*KeyValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := []*KeyValue{}\n\tfor _, keyval := range in {\n\t\tvar key, val string\n\t\tsplit := strings.SplitN(keyval, \"=\", 2)\n\t\tswitch len(split) {\n\t\tcase 0:\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\tkey = split[0]\n\t\tcase 2:\n\t\t\tkey = split[0]\n\t\t\tval = split[1]\n\t\tdefault:\n\t\t\tval = strings.Join(split[1:], \"=\")\n\t\t}\n\t\tout = append(out, &KeyValue{\n\t\t\tKey:   key,\n\t\t\tValue: val,\n\t\t})\n\t}\n\treturn out\n}\n\n// IsMarkedForRemoval checks if an environment variable is marked for removal.\nfunc (e *KeyValue) IsMarkedForRemoval() (string, bool) {\n\tkey, marked := IsMarkedForRemoval(e.Key)\n\treturn key, marked\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/event.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\t// ValidEvents is the event mask of all valid events.\n\tValidEvents = EventMask((1 << (Event_LAST - 1)) - 1)\n)\n\n// nolint\ntype (\n\t// Define *Request/*Response type aliases for *Event/Empty pairs.\n\n\tStateChangeResponse         = Empty\n\tRunPodSandboxRequest        = StateChangeEvent\n\tRunPodSandboxResponse       = Empty\n\tStopPodSandboxRequest       = StateChangeEvent\n\tStopPodSandboxResponse      = Empty\n\tRemovePodSandboxRequest     = StateChangeEvent\n\tRemovePodSandboxResponse    = Empty\n\tStartContainerRequest       = StateChangeEvent\n\tStartContainerResponse      = Empty\n\tRemoveContainerRequest      = StateChangeEvent\n\tRemoveContainerResponse     = Empty\n\tPostCreateContainerRequest  = StateChangeEvent\n\tPostCreateContainerResponse = Empty\n\tPostStartContainerRequest   = StateChangeEvent\n\tPostStartContainerResponse  = Empty\n\tPostUpdateContainerRequest  = StateChangeEvent\n\tPostUpdateContainerResponse = Empty\n\n\tShutdownRequest  = Empty\n\tShutdownResponse = Empty\n)\n\n// EventMask corresponds to a set of enumerated Events.\ntype EventMask int32\n\n// ParseEventMask parses a string representation into an EventMask.\nfunc ParseEventMask(events ...string) (EventMask, error) {\n\tvar mask EventMask\n\n\tbits := map[string]Event{\n\t\t\"runpodsandbox\":       Event_RUN_POD_SANDBOX,\n\t\t\"stoppodsandbox\":      Event_STOP_POD_SANDBOX,\n\t\t\"removepodsandbox\":    Event_REMOVE_POD_SANDBOX,\n\t\t\"createcontainer\":     Event_CREATE_CONTAINER,\n\t\t\"postcreatecontainer\": Event_POST_CREATE_CONTAINER,\n\t\t\"startcontainer\":      Event_START_CONTAINER,\n\t\t\"poststartcontainer\":  Event_POST_START_CONTAINER,\n\t\t\"updatecontainer\":     Event_UPDATE_CONTAINER,\n\t\t\"postupdatecontainer\": Event_POST_UPDATE_CONTAINER,\n\t\t\"stopcontainer\":       Event_STOP_CONTAINER,\n\t\t\"removecontainer\":     Event_REMOVE_CONTAINER,\n\t}\n\n\tfor _, event := range events {\n\t\tlcEvents := strings.ToLower(event)\n\t\tfor _, name := range strings.Split(lcEvents, \",\") {\n\t\t\tswitch name {\n\t\t\tcase \"all\":\n\t\t\t\tmask |= ValidEvents\n\t\t\t\tcontinue\n\t\t\tcase \"pod\", \"podsandbox\":\n\t\t\t\tfor name, bit := range bits {\n\t\t\t\t\tif strings.Contains(name, \"pod\") {\n\t\t\t\t\t\tmask.Set(bit)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\tcase \"container\":\n\t\t\t\tfor name, bit := range bits {\n\t\t\t\t\tif strings.Contains(name, \"container\") {\n\t\t\t\t\t\tmask.Set(bit)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tbit, ok := bits[strings.TrimSpace(name)]\n\t\t\tif !ok {\n\t\t\t\treturn 0, fmt.Errorf(\"unknown event %q\", name)\n\t\t\t}\n\t\t\tmask.Set(bit)\n\t\t}\n\t}\n\n\treturn mask, nil\n}\n\n// MustParseEventMask parses the given events, panic()ing on errors.\nfunc MustParseEventMask(events ...string) EventMask {\n\tmask, err := ParseEventMask(events...)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to parse events %s\", strings.Join(events, \" \")))\n\t}\n\treturn mask\n}\n\n// PrettyString returns a human-readable string representation of an EventMask.\nfunc (m *EventMask) PrettyString() string {\n\tnames := map[Event]string{\n\t\tEvent_RUN_POD_SANDBOX:       \"RunPodSandbox\",\n\t\tEvent_STOP_POD_SANDBOX:      \"StopPodSandbox\",\n\t\tEvent_REMOVE_POD_SANDBOX:    \"RemovePodSandbox\",\n\t\tEvent_CREATE_CONTAINER:      \"CreateContainer\",\n\t\tEvent_POST_CREATE_CONTAINER: \"PostCreateContainer\",\n\t\tEvent_START_CONTAINER:       \"StartContainer\",\n\t\tEvent_POST_START_CONTAINER:  \"PostStartContainer\",\n\t\tEvent_UPDATE_CONTAINER:      \"UpdateContainer\",\n\t\tEvent_POST_UPDATE_CONTAINER: \"PostUpdateContainer\",\n\t\tEvent_STOP_CONTAINER:        \"StopContainer\",\n\t\tEvent_REMOVE_CONTAINER:      \"RemoveContainer\",\n\t}\n\n\tmask := *m\n\tevents, sep := \"\", \"\"\n\n\tfor bit := Event_UNKNOWN + 1; bit <= Event_LAST; bit++ {\n\t\tif mask.IsSet(bit) {\n\t\t\tevents += sep + names[bit]\n\t\t\tsep = \",\"\n\t\t\tmask.Clear(bit)\n\t\t}\n\t}\n\n\tif mask != 0 {\n\t\tevents += sep + fmt.Sprintf(\"unknown(0x%x)\", mask)\n\t}\n\n\treturn events\n}\n\n// Set sets the given Events in the mask.\nfunc (m *EventMask) Set(events ...Event) *EventMask {\n\tfor _, e := range events {\n\t\t*m |= (1 << (e - 1))\n\t}\n\treturn m\n}\n\n// Clear clears the given Events in the mask.\nfunc (m *EventMask) Clear(events ...Event) *EventMask {\n\tfor _, e := range events {\n\t\t*m &^= (1 << (e - 1))\n\t}\n\treturn m\n}\n\n// IsSet check if the given Event is set in the mask.\nfunc (m *EventMask) IsSet(e Event) bool {\n\treturn *m&(1<<(e-1)) != 0\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/helpers.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\n// DupStringSlice creates a copy of a string slice.\nfunc DupStringSlice(in []string) []string {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := make([]string, len(in))\n\tcopy(out, in)\n\treturn out\n}\n\n// DupStringMap creates a copy of a map with string keys and values.\nfunc DupStringMap(in map[string]string) map[string]string {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := map[string]string{}\n\tfor k, v := range in {\n\t\tout[k] = v\n\t}\n\treturn out\n}\n\n// IsMarkedForRemoval checks if a key is marked for removal.\n//\n// The key can be an annotation name, a mount container path, a device path,\n// or an environment variable name. These are all marked for removal in\n// adjustments by preceding their corresponding key with a '-'.\nfunc IsMarkedForRemoval(key string) (string, bool) {\n\tif key == \"\" {\n\t\treturn \"\", false\n\t}\n\tif key[0] != '-' {\n\t\treturn key, false\n\t}\n\treturn key[1:], true\n}\n\n// MarkForRemoval returns a key marked for removal.\nfunc MarkForRemoval(key string) string {\n\treturn \"-\" + key\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/hooks.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\trspec \"github.com/opencontainers/runtime-spec/specs-go\"\n)\n\n// Append appends the given hooks to the existing ones.\nfunc (hooks *Hooks) Append(h *Hooks) *Hooks {\n\tif h == nil {\n\t\treturn hooks\n\t}\n\thooks.Prestart = append(hooks.Prestart, h.Prestart...)\n\thooks.CreateRuntime = append(hooks.CreateRuntime, h.CreateRuntime...)\n\thooks.CreateContainer = append(hooks.CreateContainer, h.CreateContainer...)\n\thooks.StartContainer = append(hooks.StartContainer, h.StartContainer...)\n\thooks.Poststart = append(hooks.Poststart, h.Poststart...)\n\thooks.Poststop = append(hooks.Poststop, h.Poststop...)\n\n\treturn hooks\n}\n\n// Hooks returns itself it any of its hooks is set. Otherwise it returns nil.\nfunc (hooks *Hooks) Hooks() *Hooks {\n\tif hooks == nil {\n\t\treturn nil\n\t}\n\n\tif len(hooks.Prestart) > 0 {\n\t\treturn hooks\n\t}\n\tif len(hooks.CreateRuntime) > 0 {\n\t\treturn hooks\n\t}\n\tif len(hooks.CreateContainer) > 0 {\n\t\treturn hooks\n\t}\n\tif len(hooks.StartContainer) > 0 {\n\t\treturn hooks\n\t}\n\tif len(hooks.Poststart) > 0 {\n\t\treturn hooks\n\t}\n\tif len(hooks.Poststop) > 0 {\n\t\treturn hooks\n\t}\n\n\treturn nil\n}\n\n// ToOCI returns the hook for an OCI runtime Spec.\nfunc (h *Hook) ToOCI() rspec.Hook {\n\treturn rspec.Hook{\n\t\tPath:    h.Path,\n\t\tArgs:    DupStringSlice(h.Args),\n\t\tEnv:     DupStringSlice(h.Env),\n\t\tTimeout: h.Timeout.Get(),\n\t}\n}\n\n// FromOCIHooks returns hooks from an OCI runtime Spec.\nfunc FromOCIHooks(o *rspec.Hooks) *Hooks {\n\tif o == nil {\n\t\treturn nil\n\t}\n\treturn &Hooks{\n\t\tPrestart:        FromOCIHookSlice(o.Prestart),\n\t\tCreateRuntime:   FromOCIHookSlice(o.CreateRuntime),\n\t\tCreateContainer: FromOCIHookSlice(o.CreateContainer),\n\t\tStartContainer:  FromOCIHookSlice(o.StartContainer),\n\t\tPoststart:       FromOCIHookSlice(o.Poststart),\n\t\tPoststop:        FromOCIHookSlice(o.Poststop),\n\t}\n}\n\n// FromOCIHookSlice returns a hook slice from an OCI runtime Spec.\nfunc FromOCIHookSlice(o []rspec.Hook) []*Hook {\n\tvar hooks []*Hook\n\tfor _, h := range o {\n\t\thooks = append(hooks, &Hook{\n\t\t\tPath:    h.Path,\n\t\t\tArgs:    DupStringSlice(h.Args),\n\t\t\tEnv:     DupStringSlice(h.Env),\n\t\t\tTimeout: Int(h.Timeout),\n\t\t})\n\t}\n\treturn hooks\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/mount.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"sort\"\n\n\trspec \"github.com/opencontainers/runtime-spec/specs-go\"\n)\n\nconst (\n\t// SELinuxRelabel is a Mount pseudo-option to request relabeling.\n\tSELinuxRelabel = \"relabel\"\n)\n\n// FromOCIMounts returns a Mount slice for an OCI runtime Spec.\nfunc FromOCIMounts(o []rspec.Mount) []*Mount {\n\tvar mounts []*Mount\n\tfor _, m := range o {\n\t\tmounts = append(mounts, &Mount{\n\t\t\tDestination: m.Destination,\n\t\t\tType:        m.Type,\n\t\t\tSource:      m.Source,\n\t\t\tOptions:     DupStringSlice(m.Options),\n\t\t})\n\t}\n\treturn mounts\n}\n\n// ToOCI returns a Mount for an OCI runtime Spec.\nfunc (m *Mount) ToOCI(propagationQuery *string) rspec.Mount {\n\to := rspec.Mount{\n\t\tDestination: m.Destination,\n\t\tType:        m.Type,\n\t\tSource:      m.Source,\n\t}\n\tfor _, opt := range m.Options {\n\t\to.Options = append(o.Options, opt)\n\t\tif propagationQuery != nil && (opt == \"rprivate\" || opt == \"rshared\" || opt == \"rslave\") {\n\t\t\t*propagationQuery = opt\n\t\t}\n\t}\n\treturn o\n}\n\n// Cmp returns true if the mounts are equal.\nfunc (m *Mount) Cmp(v *Mount) bool {\n\tif v == nil {\n\t\treturn false\n\t}\n\tif m.Destination != v.Destination || m.Type != v.Type || m.Source != v.Source ||\n\t\tlen(m.Options) != len(v.Options) {\n\t\treturn false\n\t}\n\n\tmOpts := make([]string, len(m.Options))\n\tvOpts := make([]string, len(m.Options))\n\tsort.Strings(mOpts)\n\tsort.Strings(vOpts)\n\n\tfor i, o := range mOpts {\n\t\tif vOpts[i] != o {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// IsMarkedForRemoval checks if a Mount is marked for removal.\nfunc (m *Mount) IsMarkedForRemoval() (string, bool) {\n\tkey, marked := IsMarkedForRemoval(m.Destination)\n\treturn key, marked\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/namespace.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\trspec \"github.com/opencontainers/runtime-spec/specs-go\"\n)\n\n// FromOCILinuxNamespaces returns a namespace slice from an OCI runtime Spec.\nfunc FromOCILinuxNamespaces(o []rspec.LinuxNamespace) []*LinuxNamespace {\n\tvar namespaces []*LinuxNamespace\n\tfor _, ns := range o {\n\t\tnamespaces = append(namespaces, &LinuxNamespace{\n\t\t\tType: string(ns.Type),\n\t\t\tPath: ns.Path,\n\t\t})\n\t}\n\treturn namespaces\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/optional.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"os\"\n)\n\n//\n// XXX FIXME:\n//\n// The optional interface constructor should be updated/split up\n// to avoid having to take an interface{} argument. Instead The\n// optional types should have a\n//   - constructor taking the underlying native type\n//   - a Copy() function for copying them\n//   - a FromPointer constructor to create them from an optionally nil\n//     pointer to the underlying native type (to help constructing from\n//     structures that use a pointer to the native underlying type to\n//     denote optionality (OCI Spec mostly))\n// Creating from any other type should use one of these with any explicit\n// cast for the argument as necessary.\n//\n\n// String creates an Optional wrapper from its argument.\nfunc String(v interface{}) *OptionalString {\n\tvar value string\n\n\tswitch o := v.(type) {\n\tcase string:\n\t\tvalue = o\n\tcase *string:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *OptionalString:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalString{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalString) Get() *string {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// Int creates an Optional wrapper from its argument.\nfunc Int(v interface{}) *OptionalInt {\n\tvar value int64\n\n\tswitch o := v.(type) {\n\tcase int:\n\t\tvalue = int64(o)\n\tcase *int:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = int64(*o)\n\tcase *OptionalInt:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalInt{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalInt) Get() *int {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := int(o.Value)\n\treturn &v\n}\n\n// Int32 creates an Optional wrapper from its argument.\nfunc Int32(v interface{}) *OptionalInt32 {\n\tvar value int32\n\n\tswitch o := v.(type) {\n\tcase int32:\n\t\tvalue = o\n\tcase *int32:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *OptionalInt32:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalInt32{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalInt32) Get() *int32 {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// UInt32 creates an Optional wrapper from its argument.\nfunc UInt32(v interface{}) *OptionalUInt32 {\n\tvar value uint32\n\n\tswitch o := v.(type) {\n\tcase uint32:\n\t\tvalue = o\n\tcase *uint32:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *OptionalUInt32:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalUInt32{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalUInt32) Get() *uint32 {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// Int64 creates an Optional wrapper from its argument.\nfunc Int64(v interface{}) *OptionalInt64 {\n\tvar value int64\n\n\tswitch o := v.(type) {\n\tcase int:\n\t\tvalue = int64(o)\n\tcase uint:\n\t\tvalue = int64(o)\n\tcase uint64:\n\t\tvalue = int64(o)\n\tcase int64:\n\t\tvalue = o\n\tcase *int64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *uint64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = int64(*o)\n\tcase *OptionalInt64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalInt64{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalInt64) Get() *int64 {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// UInt64 creates an Optional wrapper from its argument.\nfunc UInt64(v interface{}) *OptionalUInt64 {\n\tvar value uint64\n\n\tswitch o := v.(type) {\n\tcase int:\n\t\tvalue = uint64(o)\n\tcase uint:\n\t\tvalue = uint64(o)\n\tcase int64:\n\t\tvalue = uint64(o)\n\tcase uint64:\n\t\tvalue = o\n\tcase *int64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = uint64(*o)\n\tcase *uint64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *OptionalUInt64:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalUInt64{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalUInt64) Get() *uint64 {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// Bool creates an Optional wrapper from its argument.\nfunc Bool(v interface{}) *OptionalBool {\n\tvar value bool\n\n\tswitch o := v.(type) {\n\tcase bool:\n\t\tvalue = o\n\tcase *bool:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase *OptionalBool:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = o.Value\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalBool{\n\t\tValue: value,\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalBool) Get() *bool {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := o.Value\n\treturn &v\n}\n\n// FileMode creates an Optional wrapper from its argument.\nfunc FileMode(v interface{}) *OptionalFileMode {\n\tvar value os.FileMode\n\n\tswitch o := v.(type) {\n\tcase *os.FileMode:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = *o\n\tcase os.FileMode:\n\t\tvalue = o\n\tcase *OptionalFileMode:\n\t\tif o == nil {\n\t\t\treturn nil\n\t\t}\n\t\tvalue = os.FileMode(o.Value)\n\tcase uint32:\n\t\tvalue = os.FileMode(o)\n\tdefault:\n\t\treturn nil\n\t}\n\n\treturn &OptionalFileMode{\n\t\tValue: uint32(value),\n\t}\n}\n\n// Get returns nil if its value is unset or a pointer to the value itself.\nfunc (o *OptionalFileMode) Get() *os.FileMode {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tv := os.FileMode(o.Value)\n\treturn &v\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/plugin.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\t// DefaultSocketPath is the default socket path for external plugins.\n\tDefaultSocketPath = \"/var/run/nri/nri.sock\"\n\t// PluginSocketEnvVar is used to inform plugins about pre-connected sockets.\n\tPluginSocketEnvVar = \"NRI_PLUGIN_SOCKET\"\n\t// PluginNameEnvVar is used to inform NRI-launched plugins about their name.\n\tPluginNameEnvVar = \"NRI_PLUGIN_NAME\"\n\t// PluginIdxEnvVar is used to inform NRI-launched plugins about their ID.\n\tPluginIdxEnvVar = \"NRI_PLUGIN_IDX\"\n)\n\n// ParsePluginName parses the (file)name of a plugin into an index and a base.\nfunc ParsePluginName(name string) (string, string, error) {\n\tsplit := strings.SplitN(name, \"-\", 2)\n\tif len(split) < 2 {\n\t\treturn \"\", \"\", fmt.Errorf(\"invalid plugin name %q, idx-pluginname expected\", name)\n\t}\n\n\tif err := CheckPluginIndex(split[0]); err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\treturn split[0], split[1], nil\n}\n\n// CheckPluginIndex checks the validity of a plugin index.\nfunc CheckPluginIndex(idx string) error {\n\tif len(idx) != 2 {\n\t\treturn fmt.Errorf(\"invalid plugin index %q, must be 2 digits\", idx)\n\t}\n\tif !('0' <= idx[0] && idx[0] <= '9') || !('0' <= idx[1] && idx[1] <= '9') {\n\t\treturn fmt.Errorf(\"invalid plugin index %q (not [0-9][0-9])\", idx)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/resources.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\nimport (\n\trspec \"github.com/opencontainers/runtime-spec/specs-go\"\n\tcri \"k8s.io/cri-api/pkg/apis/runtime/v1\"\n)\n\n// FromOCILinuxResources returns resources from an OCI runtime Spec.\nfunc FromOCILinuxResources(o *rspec.LinuxResources, ann map[string]string) *LinuxResources {\n\tif o == nil {\n\t\treturn nil\n\t}\n\tl := &LinuxResources{}\n\tif m := o.Memory; m != nil {\n\t\tl.Memory = &LinuxMemory{\n\t\t\tLimit:            Int64(m.Limit),\n\t\t\tReservation:      Int64(m.Reservation),\n\t\t\tSwap:             Int64(m.Swap),\n\t\t\tKernel:           Int64(m.Kernel),\n\t\t\tKernelTcp:        Int64(m.KernelTCP),\n\t\t\tSwappiness:       UInt64(m.Swappiness),\n\t\t\tDisableOomKiller: Bool(m.DisableOOMKiller),\n\t\t\tUseHierarchy:     Bool(m.UseHierarchy),\n\t\t}\n\t}\n\tif c := o.CPU; c != nil {\n\t\tl.Cpu = &LinuxCPU{\n\t\t\tShares:          UInt64(c.Shares),\n\t\t\tQuota:           Int64(c.Quota),\n\t\t\tPeriod:          UInt64(c.Period),\n\t\t\tRealtimeRuntime: Int64(c.RealtimeRuntime),\n\t\t\tRealtimePeriod:  UInt64(c.RealtimePeriod),\n\t\t\tCpus:            c.Cpus,\n\t\t\tMems:            c.Mems,\n\t\t}\n\t}\n\tfor _, h := range o.HugepageLimits {\n\t\tl.HugepageLimits = append(l.HugepageLimits, &HugepageLimit{\n\t\t\tPageSize: h.Pagesize,\n\t\t\tLimit:    h.Limit,\n\t\t})\n\t}\n\tfor _, d := range o.Devices {\n\t\tl.Devices = append(l.Devices, &LinuxDeviceCgroup{\n\t\t\tAllow:  d.Allow,\n\t\t\tType:   d.Type,\n\t\t\tMajor:  Int64(d.Major),\n\t\t\tMinor:  Int64(d.Minor),\n\t\t\tAccess: d.Access,\n\t\t})\n\t}\n\treturn l\n}\n\nfunc FromCRILinuxResources(c *cri.LinuxContainerResources) *LinuxResources {\n\tif c == nil {\n\t\treturn nil\n\t}\n\tshares, quota, period := uint64(c.CpuShares), c.CpuQuota, uint64(c.CpuPeriod)\n\tr := &LinuxResources{\n\t\tCpu: &LinuxCPU{\n\t\t\tShares: UInt64(&shares),\n\t\t\tQuota:  Int64(&quota),\n\t\t\tPeriod: UInt64(&period),\n\t\t\tCpus:   c.CpusetCpus,\n\t\t\tMems:   c.CpusetMems,\n\t\t},\n\t\tMemory: &LinuxMemory{\n\t\t\tLimit: Int64(&c.MemoryLimitInBytes),\n\t\t},\n\t}\n\tfor _, l := range c.HugepageLimits {\n\t\tr.HugepageLimits = append(r.HugepageLimits,\n\t\t\t&HugepageLimit{\n\t\t\t\tPageSize: l.PageSize,\n\t\t\t\tLimit:    l.Limit,\n\t\t\t})\n\t}\n\treturn r\n}\n\n// ToOCI returns resources for an OCI runtime Spec.\nfunc (r *LinuxResources) ToOCI() *rspec.LinuxResources {\n\tif r == nil {\n\t\treturn nil\n\t}\n\to := &rspec.LinuxResources{\n\t\tCPU:    &rspec.LinuxCPU{},\n\t\tMemory: &rspec.LinuxMemory{},\n\t}\n\tif r.Memory != nil {\n\t\to.Memory = &rspec.LinuxMemory{\n\t\t\tLimit:            r.Memory.Limit.Get(),\n\t\t\tReservation:      r.Memory.Reservation.Get(),\n\t\t\tSwap:             r.Memory.Swap.Get(),\n\t\t\tKernel:           r.Memory.Kernel.Get(),\n\t\t\tKernelTCP:        r.Memory.KernelTcp.Get(),\n\t\t\tSwappiness:       r.Memory.Swappiness.Get(),\n\t\t\tDisableOOMKiller: r.Memory.DisableOomKiller.Get(),\n\t\t\tUseHierarchy:     r.Memory.UseHierarchy.Get(),\n\t\t}\n\t}\n\tif r.Cpu != nil {\n\t\to.CPU = &rspec.LinuxCPU{\n\t\t\tShares:          r.Cpu.Shares.Get(),\n\t\t\tQuota:           r.Cpu.Quota.Get(),\n\t\t\tPeriod:          r.Cpu.Period.Get(),\n\t\t\tRealtimeRuntime: r.Cpu.RealtimeRuntime.Get(),\n\t\t\tRealtimePeriod:  r.Cpu.RealtimePeriod.Get(),\n\t\t\tCpus:            r.Cpu.Cpus,\n\t\t\tMems:            r.Cpu.Mems,\n\t\t}\n\t}\n\tfor _, l := range r.HugepageLimits {\n\t\to.HugepageLimits = append(o.HugepageLimits, rspec.LinuxHugepageLimit{\n\t\t\tPagesize: l.PageSize,\n\t\t\tLimit:    l.Limit,\n\t\t})\n\t}\n\tif len(r.Unified) != 0 {\n\t\to.Unified = make(map[string]string)\n\t\tfor k, v := range r.Unified {\n\t\t\to.Unified[k] = v\n\t\t}\n\t}\n\tfor _, d := range r.Devices {\n\t\to.Devices = append(o.Devices, rspec.LinuxDeviceCgroup{\n\t\t\tAllow:  d.Allow,\n\t\t\tType:   d.Type,\n\t\t\tMajor:  d.Major.Get(),\n\t\t\tMinor:  d.Minor.Get(),\n\t\t\tAccess: d.Access,\n\t\t})\n\t}\n\n\treturn o\n}\n\n// ToCRI returns resources for CRI.\nfunc (r *LinuxResources) ToCRI(oomScoreAdj int64) *cri.LinuxContainerResources {\n\tif r == nil {\n\t\treturn nil\n\t}\n\to := &cri.LinuxContainerResources{}\n\tif r.Memory != nil {\n\t\to.MemoryLimitInBytes = r.Memory.GetLimit().GetValue()\n\t\to.OomScoreAdj = oomScoreAdj\n\t}\n\tif r.Cpu != nil {\n\t\to.CpuShares = int64(r.Cpu.GetShares().GetValue())\n\t\to.CpuPeriod = int64(r.Cpu.GetPeriod().GetValue())\n\t\to.CpuQuota = r.Cpu.GetQuota().GetValue()\n\t\to.CpusetCpus = r.Cpu.Cpus\n\t\to.CpusetMems = r.Cpu.Mems\n\t}\n\tfor _, l := range r.HugepageLimits {\n\t\to.HugepageLimits = append(o.HugepageLimits, &cri.HugepageLimit{\n\t\t\tPageSize: l.PageSize,\n\t\t\tLimit:    l.Limit,\n\t\t})\n\t}\n\tif len(r.Unified) != 0 {\n\t\to.Unified = make(map[string]string)\n\t\tfor k, v := range r.Unified {\n\t\t\to.Unified[k] = v\n\t\t}\n\t}\n\n\treturn o\n}\n\n// Copy creates a copy of the resources.\nfunc (r *LinuxResources) Copy() *LinuxResources {\n\tif r == nil {\n\t\treturn nil\n\t}\n\to := &LinuxResources{}\n\tif r.Memory != nil {\n\t\to.Memory = &LinuxMemory{\n\t\t\tLimit:            Int64(r.Memory.GetLimit()),\n\t\t\tReservation:      Int64(r.Memory.GetReservation()),\n\t\t\tSwap:             Int64(r.Memory.GetSwap()),\n\t\t\tKernel:           Int64(r.Memory.GetKernel()),\n\t\t\tKernelTcp:        Int64(r.Memory.GetKernelTcp()),\n\t\t\tSwappiness:       UInt64(r.Memory.GetSwappiness()),\n\t\t\tDisableOomKiller: Bool(r.Memory.GetDisableOomKiller()),\n\t\t\tUseHierarchy:     Bool(r.Memory.GetUseHierarchy()),\n\t\t}\n\t}\n\tif r.Cpu != nil {\n\t\to.Cpu = &LinuxCPU{\n\t\t\tShares:          UInt64(r.Cpu.GetShares()),\n\t\t\tQuota:           Int64(r.Cpu.GetQuota()),\n\t\t\tPeriod:          UInt64(r.Cpu.GetPeriod()),\n\t\t\tRealtimeRuntime: Int64(r.Cpu.GetRealtimeRuntime()),\n\t\t\tRealtimePeriod:  UInt64(r.Cpu.GetRealtimePeriod()),\n\t\t\tCpus:            r.Cpu.GetCpus(),\n\t\t\tMems:            r.Cpu.GetMems(),\n\t\t}\n\t}\n\tfor _, l := range r.HugepageLimits {\n\t\to.HugepageLimits = append(o.HugepageLimits, &HugepageLimit{\n\t\t\tPageSize: l.PageSize,\n\t\t\tLimit:    l.Limit,\n\t\t})\n\t}\n\tif len(r.Unified) != 0 {\n\t\to.Unified = make(map[string]string)\n\t\tfor k, v := range r.Unified {\n\t\t\to.Unified[k] = v\n\t\t}\n\t}\n\to.BlockioClass = String(r.BlockioClass)\n\to.RdtClass = String(r.RdtClass)\n\n\treturn o\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/api/update.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage api\n\n//nolint\n// SetContainerId sets the id of the container to update.\nfunc (u *ContainerUpdate) SetContainerId(id string) {\n\tu.ContainerId = id\n}\n\n// SetLinuxMemoryLimit records setting the memory limit for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryLimit(value int64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.Limit = Int64(value)\n}\n\n// SetLinuxMemoryReservation records setting the memory reservation for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryReservation(value int64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.Reservation = Int64(value)\n}\n\n// SetLinuxMemorySwap records records setting the memory swap limit for a container.\nfunc (u *ContainerUpdate) SetLinuxMemorySwap(value int64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.Swap = Int64(value)\n}\n\n// SetLinuxMemoryKernel records setting the memory kernel limit for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryKernel(value int64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.Kernel = Int64(value)\n}\n\n// SetLinuxMemoryKernelTCP records setting the memory kernel TCP limit for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryKernelTCP(value int64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.KernelTcp = Int64(value)\n}\n\n// SetLinuxMemorySwappiness records setting the memory swappiness for a container.\nfunc (u *ContainerUpdate) SetLinuxMemorySwappiness(value uint64) {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.Swappiness = UInt64(value)\n}\n\n// SetLinuxMemoryDisableOomKiller records disabling the OOM killer for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryDisableOomKiller() {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.DisableOomKiller = Bool(true)\n}\n\n// SetLinuxMemoryUseHierarchy records enabling hierarchical memory accounting for a container.\nfunc (u *ContainerUpdate) SetLinuxMemoryUseHierarchy() {\n\tu.initLinuxResourcesMemory()\n\tu.Linux.Resources.Memory.UseHierarchy = Bool(true)\n}\n\n// SetLinuxCPUShares records setting the scheduler's CPU shares for a container.\nfunc (u *ContainerUpdate) SetLinuxCPUShares(value uint64) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.Shares = UInt64(value)\n}\n\n// SetLinuxCPUQuota records setting the scheduler's CPU quota for a container.\nfunc (u *ContainerUpdate) SetLinuxCPUQuota(value int64) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.Quota = Int64(value)\n}\n\n// SetLinuxCPUPeriod records setting the scheduler's CPU period for a container.\nfunc (u *ContainerUpdate) SetLinuxCPUPeriod(value int64) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.Period = UInt64(value)\n}\n\n// SetLinuxCPURealtimeRuntime records setting the scheduler's realtime runtime for a container.\nfunc (u *ContainerUpdate) SetLinuxCPURealtimeRuntime(value int64) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.RealtimeRuntime = Int64(value)\n}\n\n// SetLinuxCPURealtimePeriod records setting the scheduler's realtime period for a container.\nfunc (u *ContainerUpdate) SetLinuxCPURealtimePeriod(value uint64) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.RealtimePeriod = UInt64(value)\n}\n\n// SetLinuxCPUSetCPUs records setting the cpuset CPUs for a container.\nfunc (u *ContainerUpdate) SetLinuxCPUSetCPUs(value string) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.Cpus = value\n}\n\n// SetLinuxCPUSetMems records setting the cpuset memory for a container.\nfunc (u *ContainerUpdate) SetLinuxCPUSetMems(value string) {\n\tu.initLinuxResourcesCPU()\n\tu.Linux.Resources.Cpu.Mems = value\n}\n\n// AddLinuxHugepageLimit records adding a hugepage limit for a container.\nfunc (u *ContainerUpdate) AddLinuxHugepageLimit(pageSize string, value uint64) {\n\tu.initLinuxResources()\n\tu.Linux.Resources.HugepageLimits = append(u.Linux.Resources.HugepageLimits,\n\t\t&HugepageLimit{\n\t\t\tPageSize: pageSize,\n\t\t\tLimit:    value,\n\t\t})\n}\n\n// SetLinuxBlockIOClass records setting the Block I/O class for a container.\nfunc (u *ContainerUpdate) SetLinuxBlockIOClass(value string) {\n\tu.initLinuxResources()\n\tu.Linux.Resources.BlockioClass = String(value)\n}\n\n// SetLinuxRDTClass records setting the RDT class for a container.\nfunc (u *ContainerUpdate) SetLinuxRDTClass(value string) {\n\tu.initLinuxResources()\n\tu.Linux.Resources.RdtClass = String(value)\n}\n\n// AddLinuxUnified sets a cgroupv2 unified resource.\nfunc (u *ContainerUpdate) AddLinuxUnified(key, value string) {\n\tu.initLinuxResourcesUnified()\n\tu.Linux.Resources.Unified[key] = value\n}\n\n// SetIgnoreFailure marks an Update as ignored for failures.\n// Such updates will not prevent the related container operation\n// from succeeding if the update fails.\nfunc (u *ContainerUpdate) SetIgnoreFailure() {\n\tu.IgnoreFailure = true\n}\n\n//\n// Initializing a container update.\n//\n\nfunc (u *ContainerUpdate) initLinux() {\n\tif u.Linux == nil {\n\t\tu.Linux = &LinuxContainerUpdate{}\n\t}\n}\n\nfunc (u *ContainerUpdate) initLinuxResources() {\n\tu.initLinux()\n\tif u.Linux.Resources == nil {\n\t\tu.Linux.Resources = &LinuxResources{}\n\t}\n}\n\nfunc (u *ContainerUpdate) initLinuxResourcesMemory() {\n\tu.initLinuxResources()\n\tif u.Linux.Resources.Memory == nil {\n\t\tu.Linux.Resources.Memory = &LinuxMemory{}\n\t}\n}\n\nfunc (u *ContainerUpdate) initLinuxResourcesCPU() {\n\tu.initLinuxResources()\n\tif u.Linux.Resources.Cpu == nil {\n\t\tu.Linux.Resources.Cpu = &LinuxCPU{}\n\t}\n}\n\nfunc (u *ContainerUpdate) initLinuxResourcesUnified() {\n\tu.initLinuxResources()\n\tif u.Linux.Resources.Unified == nil {\n\t\tu.Linux.Resources.Unified = make(map[string]string)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/log/log.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage log\n\nimport (\n\t\"context\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar (\n\tlog Logger = &fallbackLogger{}\n)\n\n// Logger is the interface NRI uses for logging.\ntype Logger interface {\n\tDebugf(ctx context.Context, format string, args ...interface{})\n\tInfof(ctx context.Context, format string, args ...interface{})\n\tWarnf(ctx context.Context, format string, args ...interface{})\n\tErrorf(ctx context.Context, format string, args ...interface{})\n}\n\n// Set the logger used by NRI.\nfunc Set(l Logger) {\n\tlog = l\n}\n\n// Get the logger used by NRI.\nfunc Get() Logger {\n\treturn log\n}\n\n// Debugf logs a formatted debug message.\nfunc Debugf(ctx context.Context, format string, args ...interface{}) {\n\tlog.Debugf(ctx, format, args...)\n}\n\n// Infof logs a formatted informational message.\nfunc Infof(ctx context.Context, format string, args ...interface{}) {\n\tlog.Infof(ctx, format, args...)\n}\n\n// Warnf logs a formatted warning message.\nfunc Warnf(ctx context.Context, format string, args ...interface{}) {\n\tlog.Warnf(ctx, format, args...)\n}\n\n// Errorf logs a formatted error message.\nfunc Errorf(ctx context.Context, format string, args ...interface{}) {\n\tlog.Errorf(ctx, format, args...)\n}\n\ntype fallbackLogger struct{}\n\n// Debugf logs a formatted debug message.\nfunc (f *fallbackLogger) Debugf(ctx context.Context, format string, args ...interface{}) {\n\tlogrus.WithContext(ctx).Debugf(format, args...)\n}\n\n// Infof logs a formatted informational message.\nfunc (f *fallbackLogger) Infof(ctx context.Context, format string, args ...interface{}) {\n\tlogrus.WithContext(ctx).Infof(format, args...)\n}\n\n// Warnf logs a formatted warning message.\nfunc (f *fallbackLogger) Warnf(ctx context.Context, format string, args ...interface{}) {\n\tlogrus.WithContext(ctx).Warnf(format, args...)\n}\n\n// Errorf logs a formatted error message.\nfunc (f *fallbackLogger) Errorf(ctx context.Context, format string, args ...interface{}) {\n\tlogrus.WithContext(ctx).Errorf(format, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/net/conn.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// NewFdConn creates a net.Conn for the given (socket) fd.\nfunc NewFdConn(fd int) (net.Conn, error) {\n\tf := os.NewFile(uintptr(fd), \"fd #\"+strconv.Itoa(fd))\n\n\tconn, err := net.FileConn(f)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create net.Conn for fd #%d: %w\", fd, err)\n\t}\n\tf.Close()\n\n\treturn conn, nil\n}\n\n// connListener wraps a pre-connected socket in a net.Listener.\ntype connListener struct {\n\tnext   chan net.Conn\n\tconn   net.Conn\n\taddr   net.Addr\n\tlock   sync.RWMutex // for Close()\n\tclosed bool\n}\n\n// NewConnListener wraps an existing net.Conn in a net.Listener.\n//\n// The first call to Accept() on the listener will return the wrapped\n// connection. Subsequent calls to Accept() block until the listener\n// is closed, then return io.EOF. Close() closes the listener and the\n// wrapped connection.\nfunc NewConnListener(conn net.Conn) net.Listener {\n\tnext := make(chan net.Conn, 1)\n\tnext <- conn\n\n\treturn &connListener{\n\t\tnext: next,\n\t\tconn: conn,\n\t\taddr: conn.LocalAddr(),\n\t}\n}\n\n// Accept returns the wrapped connection when it is called the first\n// time. Later calls to Accept block until the listener is closed, then\n// return io.EOF.\nfunc (l *connListener) Accept() (net.Conn, error) {\n\tconn := <-l.next\n\tif conn == nil {\n\t\treturn nil, io.EOF\n\t}\n\treturn conn, nil\n}\n\n// Close closes the listener and the wrapped connection.\nfunc (l *connListener) Close() error {\n\tl.lock.Lock()\n\tdefer l.lock.Unlock()\n\tif l.closed {\n\t\treturn nil\n\t}\n\tclose(l.next)\n\tl.closed = true\n\treturn l.conn.Close()\n}\n\n// Addr returns the local address of the wrapped connection.\nfunc (l *connListener) Addr() net.Addr {\n\treturn l.addr\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/net/multiplex/mux.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage multiplex\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\tnrinet \"github.com/containerd/nri/pkg/net\"\n\t\"github.com/containerd/ttrpc\"\n)\n\n// Mux multiplexes several logical connections over a single net.Conn.\n//\n// Connections are identified within a Mux by ConnIDs which are simple\n// 32-bit unsigned integers. Opening a connection returns a net.Conn\n// corrponding to the ConnID. This can then be used to write and read\n// data through the connection with the Mux performing multiplexing\n// and demultiplexing of data.\n//\n// Writing to a connection is fully synchronous. The caller can safely\n// reuse the buffer once the call returns. Reading from a connection\n// returns the oldest demultiplexed buffer for the connection, blocking\n// if the connections incoming queue is empty. If any incoming queue is\n// ever overflown the underlying trunk and all multiplexed connections\n// are closed and an error is recorded. This error is later returned by\n// any subsequent read from any connection. All connections of the Mux\n// have the same fixed incoming queue length which can be configured\n// using the WithReadQueueLength Option during Mux creation.\n//\n// The Mux interface also provides functions that emulate net.Dial and\n// net.Listen for a connection. Usually these can be used for passing\n// multiplexed connections to packages that insist to Dial or Accept\n// themselves for connection establishment.\n//\n// Note that opening a connection is a virtual operation in the sense\n// that it has no effects outside the Mux. It is performed without any\n// signalling or other communication. It merely acquires the net.Conn\n// corresponding to the connection and blindly assumes that the same\n// ConnID is or will be opened at the other end of the Mux.\ntype Mux interface {\n\t// Open the connection for the given ConnID.\n\tOpen(ConnID) (net.Conn, error)\n\n\t// Close the Mux and all connections associated with it.\n\tClose() error\n\n\t// Dialer returns a net.Dial-like function for the connection.\n\t//\n\t// Calling the returned function (with arguments) will return a\n\t// net.Conn for the connection.\n\tDialer(ConnID) func(string, string) (net.Conn, error)\n\n\t// Listener returns a net.Listener for the connection. The first\n\t// call to Accept() on the listener will return a net.Conn for the\n\t// connection. Subsequent calls to Accept() will block until the\n\t// connection is closed then return io.EOF.\n\tListen(ConnID) (net.Listener, error)\n\n\t// Trunk returns the trunk connection for the Mux.\n\tTrunk() net.Conn\n\n\t// Unblock unblocks the Mux reader.\n\tUnblock()\n}\n\n// ConnID uniquely identifies a logical connection within a Mux.\ntype ConnID uint32\n\nconst (\n\t// ConnID 0 is reserved for future use.\n\treservedConnID ConnID = iota\n\t// LowestConnID is the lowest externally usable ConnID.\n\tLowestConnID\n)\n\n// Option to apply to a Mux.\ntype Option func(*mux)\n\n// WithBlockedRead causes the Mux to be blocked for reading until gets Unblock()'ed.\nfunc WithBlockedRead() Option {\n\treturn func(m *mux) {\n\t\tif m.blockC == nil {\n\t\t\tm.blockC = make(chan struct{})\n\t\t}\n\t}\n}\n\n// WithReadQueueLength overrides the default read queue size.\nfunc WithReadQueueLength(length int) Option {\n\treturn func(m *mux) {\n\t\tm.qlen = length\n\t}\n}\n\n// Multiplex returns a multiplexer for the given connection.\nfunc Multiplex(trunk net.Conn, options ...Option) Mux {\n\treturn newMux(trunk, options...)\n}\n\n// mux is our implementation of Mux.\ntype mux struct {\n\ttrunk     net.Conn\n\twriteLock sync.Mutex\n\tconns     map[ConnID]*conn\n\tconnLock  sync.RWMutex\n\tqlen      int\n\terrOnce   sync.Once\n\terr       error\n\tunblkOnce sync.Once\n\tblockC    chan struct{}\n\tcloseOnce sync.Once\n\tdoneC     chan struct{}\n}\n\nconst (\n\t// default read queue length for a single connection\n\treadQueueLen = 256\n\t// length of frame header: 4-byte ConnID, 4-byte payload length\n\theaderLen = 8\n\t// max. allowed payload size\n\tmaxPayloadSize = 1 << 24\n)\n\n// conn represents a single multiplexed connection.\ntype conn struct {\n\tid        ConnID\n\tmux       *mux\n\treadC     chan []byte\n\tcloseOnce sync.Once\n\tdoneC     chan error\n}\n\nfunc newMux(trunk net.Conn, options ...Option) *mux {\n\tm := &mux{\n\t\ttrunk: trunk,\n\t\tconns: make(map[ConnID]*conn),\n\t\tqlen:  readQueueLen,\n\t\tdoneC: make(chan struct{}),\n\t}\n\n\tfor _, o := range options {\n\t\to(m)\n\t}\n\n\tif m.blockC == nil {\n\t\tWithBlockedRead()(m)\n\t\tm.Unblock()\n\t}\n\n\tgo m.reader()\n\n\treturn m\n}\n\nfunc (m *mux) Trunk() net.Conn {\n\treturn m.trunk\n}\n\nfunc (m *mux) Unblock() {\n\tm.unblkOnce.Do(func() {\n\t\tclose(m.blockC)\n\t})\n}\n\nfunc (m *mux) Open(id ConnID) (net.Conn, error) {\n\tif id == reservedConnID {\n\t\treturn nil, fmt.Errorf(\"ConnID %d is reserved\", id)\n\t}\n\n\tm.connLock.Lock()\n\tdefer m.connLock.Unlock()\n\n\tc, ok := m.conns[id]\n\tif !ok {\n\t\tc = &conn{\n\t\t\tid:    id,\n\t\t\tmux:   m,\n\t\t\tdoneC: make(chan error, 1),\n\t\t\treadC: make(chan []byte, m.qlen),\n\t\t}\n\t\tm.conns[id] = c\n\t}\n\n\treturn c, nil\n}\n\nfunc (m *mux) Close() error {\n\tm.closeOnce.Do(func() {\n\t\tm.connLock.Lock()\n\t\tdefer m.connLock.Unlock()\n\t\tfor _, conn := range m.conns {\n\t\t\tconn.close()\n\t\t}\n\t\tclose(m.doneC)\n\t\tm.trunk.Close()\n\t})\n\n\treturn nil\n}\n\nfunc (m *mux) Dialer(id ConnID) func(string, string) (net.Conn, error) {\n\treturn func(string, string) (net.Conn, error) {\n\t\treturn m.Open(id)\n\t}\n}\n\nfunc (m *mux) Listen(id ConnID) (net.Listener, error) {\n\tconn, err := m.Open(id)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn nrinet.NewConnListener(conn), nil\n}\n\nfunc (m *mux) write(id ConnID, buf []byte) (int, error) {\n\tvar hdr [headerLen]byte\n\n\tif len(buf) > maxPayloadSize {\n\t\treturn 0, syscall.EMSGSIZE\n\t}\n\n\tbinary.BigEndian.PutUint32(hdr[0:4], uint32(id))\n\tbinary.BigEndian.PutUint32(hdr[4:8], uint32(len(buf)))\n\n\tm.writeLock.Lock()\n\tdefer m.writeLock.Unlock()\n\n\tn, err := m.trunk.Write(hdr[:])\n\tif err != nil {\n\t\terr = fmt.Errorf(\"failed to write header to trunk: %w\", err)\n\t\tif n != 0 {\n\t\t\tm.setError(err)\n\t\t\tm.Close()\n\t\t}\n\t\treturn 0, err\n\t}\n\n\tn, err = m.trunk.Write(buf)\n\tif err != nil {\n\t\terr = fmt.Errorf(\"failed to write payload to trunk: %w\", err)\n\t\tif n != 0 {\n\t\t\tm.setError(err)\n\t\t\tm.Close()\n\t\t}\n\t}\n\n\treturn n, err\n}\n\nfunc (m *mux) reader() {\n\tvar (\n\t\thdr [headerLen]byte\n\t\tcid uint32\n\t\tcnt uint32\n\t\tbuf []byte\n\t\terr error\n\t)\n\n\t<-m.blockC\n\n\tfor {\n\t\tselect {\n\t\tcase <-m.doneC:\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\n\t\t_, err = io.ReadFull(m.trunk, hdr[:])\n\t\tif err != nil {\n\t\t\tswitch {\n\t\t\tcase errors.Is(err, io.EOF):\n\t\t\tcase errors.Is(err, ttrpc.ErrClosed):\n\t\t\t\terr = io.EOF\n\t\t\tcase errors.Is(err, ttrpc.ErrServerClosed):\n\t\t\t\terr = io.EOF\n\t\t\tcase errors.Is(err, net.ErrClosed):\n\t\t\t\terr = io.EOF\n\t\t\tdefault:\n\t\t\t\terr = fmt.Errorf(\"failed to read header from trunk: %w\", err)\n\t\t\t}\n\t\t\tm.setError(err)\n\t\t\tm.Close()\n\t\t\treturn\n\t\t}\n\n\t\tcid = binary.BigEndian.Uint32(hdr[0:4])\n\t\tcnt = binary.BigEndian.Uint32(hdr[4:8])\n\t\tbuf = make([]byte, int(cnt))\n\n\t\t_, err = io.ReadFull(m.trunk, buf)\n\t\tif err != nil {\n\t\t\tswitch {\n\t\t\tcase errors.Is(err, io.EOF):\n\t\t\tcase errors.Is(err, ttrpc.ErrClosed):\n\t\t\t\terr = io.EOF\n\t\t\tcase errors.Is(err, ttrpc.ErrServerClosed):\n\t\t\t\terr = io.EOF\n\t\t\tcase errors.Is(err, net.ErrClosed):\n\t\t\t\terr = io.EOF\n\t\t\tdefault:\n\t\t\t\terr = fmt.Errorf(\"failed to read payload from trunk: %w\", err)\n\t\t\t}\n\t\t\tm.setError(err)\n\t\t\tm.Close()\n\t\t\treturn\n\t\t}\n\n\t\tm.connLock.RLock()\n\t\tconn, ok := m.conns[ConnID(cid)]\n\t\tm.connLock.RUnlock()\n\t\tif ok {\n\t\t\tselect {\n\t\t\tcase conn.readC <- buf:\n\t\t\tdefault:\n\t\t\t\tm.setError(errors.New(\"failed to queue payload for reading\"))\n\t\t\t\tm.Close()\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (m *mux) setError(err error) {\n\tm.errOnce.Do(func() {\n\t\tm.err = err\n\t})\n}\n\n// nolint\nfunc (m *mux) error() error {\n\tm.errOnce.Do(func() {\n\t\tif m.err == nil {\n\t\t\tm.err = io.EOF\n\t\t}\n\t})\n\treturn m.err\n}\n\n//\n// multiplexed connections\n//\n\n// Reads reads the next message from the multiplexed connection.\nfunc (c *conn) Read(buf []byte) (int, error) {\n\tvar (\n\t\tmsg []byte\n\t\terr error\n\t\tok  bool\n\t)\n\n\tselect {\n\tcase err, ok = <-c.doneC:\n\t\tif !ok || err == nil {\n\t\t\terr = c.mux.error()\n\t\t}\n\t\treturn 0, err\n\tcase msg, ok = <-c.readC:\n\t\tif !ok {\n\t\t\treturn 0, c.mux.error()\n\t\t}\n\t\tif cap(buf) < len(msg) {\n\t\t\treturn 0, syscall.ENOMEM\n\t\t}\n\t}\n\n\tcopy(buf, msg)\n\treturn len(msg), nil\n}\n\n// Write writes the given data to the multiplexed connection.\nfunc (c *conn) Write(b []byte) (int, error) {\n\tselect {\n\tcase err := <-c.doneC:\n\t\tif err == nil {\n\t\t\terr = io.EOF\n\t\t}\n\t\treturn 0, err\n\tdefault:\n\t}\n\treturn c.mux.write(c.id, b)\n}\n\n// Close closes the multiplexed connection.\nfunc (c *conn) Close() error {\n\tc.mux.connLock.Lock()\n\tdefer c.mux.connLock.Unlock()\n\tif c.mux.conns[c.id] == c {\n\t\tdelete(c.mux.conns, c.id)\n\t}\n\treturn c.close()\n}\n\nfunc (c *conn) close() error {\n\tc.closeOnce.Do(func() {\n\t\tclose(c.doneC)\n\t})\n\treturn nil\n}\n\n// LocalAddr is the unimplemented stub for the corresponding net.Conn function.\nfunc (c *conn) LocalAddr() net.Addr {\n\treturn nil\n}\n\n// RemoteAddr is the unimplemented stub for the corresponding net.Conn function.\nfunc (c *conn) RemoteAddr() net.Addr {\n\treturn nil\n}\n\n// SetDeadline is the unimplemented stub for the corresponding net.Conn function.\nfunc (c *conn) SetDeadline(t time.Time) error {\n\treturn nil\n}\n\n// SetReadDeadline is the unimplemented stub for the corresponding net.Conn function.\nfunc (c *conn) SetReadDeadline(t time.Time) error {\n\treturn nil\n}\n\n// SetWriteDeadline is the unimplemented stub for the corresponding net.Conn function.\nfunc (c *conn) SetWriteDeadline(t time.Time) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/net/multiplex/ttrpc.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage multiplex\n\nconst (\n\t// PluginServiceConn is the mux connection ID for NRI plugin services.\n\tPluginServiceConn ConnID = iota + 1\n\t// RuntimeServiceConn is the mux connection ID for NRI runtime services.\n\tRuntimeServiceConn\n)\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/net/socketpair_unix.go",
    "content": "//go:build !windows\n\n/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\n\tsyscall \"golang.org/x/sys/unix\"\n)\n\nconst (\n\tlocal = 0\n\tpeer  = 1\n)\n\n// SocketPair contains the file descriptors of a connected pair of sockets.\ntype SocketPair [2]int\n\n// NewSocketPair returns a connected pair of sockets.\nfunc NewSocketPair() (SocketPair, error) {\n\tfds, err := syscall.Socketpair(syscall.AF_UNIX, syscall.SOCK_STREAM, 0)\n\tif err != nil {\n\t\treturn [2]int{-1, -1}, fmt.Errorf(\"failed to create socketpair: %w\", err)\n\t}\n\n\treturn fds, nil\n}\n\n// LocalFile returns the socketpair fd for local usage as an *os.File.\nfunc (fds SocketPair) LocalFile() *os.File {\n\treturn os.NewFile(uintptr(fds[local]), fds.fileName()+\"[0]\")\n}\n\n// PeerFile returns the socketpair fd for peer usage as an *os.File.\nfunc (fds SocketPair) PeerFile() *os.File {\n\treturn os.NewFile(uintptr(fds[peer]), fds.fileName()+\"[1]\")\n}\n\n// LocalConn returns a net.Conn for the local end of the socketpair.\nfunc (fds SocketPair) LocalConn() (net.Conn, error) {\n\tfile := fds.LocalFile()\n\tdefer file.Close()\n\tconn, err := net.FileConn(file)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create net.Conn for %s[0]: %w\", fds.fileName(), err)\n\t}\n\treturn conn, nil\n}\n\n// PeerConn returns a net.Conn for the peer end of the socketpair.\nfunc (fds SocketPair) PeerConn() (net.Conn, error) {\n\tfile := fds.PeerFile()\n\tdefer file.Close()\n\tconn, err := net.FileConn(file)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create net.Conn for %s[1]: %w\", fds.fileName(), err)\n\t}\n\treturn conn, nil\n}\n\n// Close closes both ends of the socketpair.\nfunc (fds SocketPair) Close() {\n\tfds.LocalClose()\n\tfds.PeerClose()\n}\n\n// LocalClose closes the local end of the socketpair.\nfunc (fds SocketPair) LocalClose() {\n\tsyscall.Close(fds[local])\n}\n\n// PeerClose closes the peer end of the socketpair.\nfunc (fds SocketPair) PeerClose() {\n\tsyscall.Close(fds[peer])\n}\n\nfunc (fds SocketPair) fileName() string {\n\treturn fmt.Sprintf(\"socketpair-#%d:%d[0]\", fds[local], fds[peer])\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/net/socketpair_windows.go",
    "content": "//go:build windows\n\n/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"unsafe\"\n\n\tsys \"golang.org/x/sys/windows\"\n)\n\n// SocketPair contains a connected pair of sockets.\ntype SocketPair [2]sys.Handle\n\nconst (\n\tlocal = 0\n\tpeer  = 1\n)\n\n// NewSocketPair returns a connected pair of sockets.\nfunc NewSocketPair() (SocketPair, error) {\n\t/*\treturn [2]sys.Handle{sys.InvalidHandle, sys.InvalidHandle},\n\t\terrors.New(\"failed to emulatesocketpair, unimplemented for windows\")*/\n\n\t// untested: return emulateWithPreConnect()\n\treturn emulateWithPreConnect()\n}\n\nfunc emulateWithPreConnect() (SocketPair, error) {\n\tvar (\n\t\tinvalid = SocketPair{sys.InvalidHandle, sys.InvalidHandle}\n\t\tsa      sys.SockaddrInet4\n\t\t//sn      sys.Sockaddr\n\t\tl   sys.Handle\n\t\ta   sys.Handle\n\t\tp   sys.Handle\n\t\terr error\n\t)\n\n\tl, err = socket(sys.AF_INET, sys.SOCK_STREAM, 0)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emulate socketpair (local Socket()): %w\", err)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tsys.CloseHandle(l)\n\t\t}\n\t}()\n\n\tsa.Addr[0] = 127\n\tsa.Addr[3] = 1\n\tsa.Port = 9999\n\n\terr = sys.Bind(l, &sa)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emulate socketpair (Bind()): %w\", err)\n\t}\n\n\t/*sn, err = sys.Getsockname(l)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emulate socketpair (Getsockname()): %w\", err)\n\t}*/\n\n\tp, err = socket(sys.AF_INET, sys.SOCK_STREAM, 0)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emulate socketpair (peer Socket()): %w\", err)\n\t}\n\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tsys.CloseHandle(p)\n\t\t}\n\t}()\n\n\terr = sys.Listen(l, 0)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emulate socketpair (Listen()): %w\", err)\n\t}\n\n\tgo func() {\n\t\terr = connect(p, &sa)\n\t}()\n\n\ta, err = accept(l, sys.AF_INET, sys.SOCK_STREAM, 0)\n\tif err != nil {\n\t\treturn invalid, fmt.Errorf(\"failed to emualte socketpair (Accept()): %w\", err)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tsys.CloseHandle(a)\n\t\t}\n\t}()\n\n\tsys.CloseHandle(l)\n\treturn SocketPair{a, p}, nil\n}\n\n// Close closes both ends of the socketpair.\nfunc (sp SocketPair) Close() {\n\tsp.LocalClose()\n\tsp.PeerClose()\n}\n\n// LocalFile returns the socketpair fd for local usage as an *os.File.\nfunc (sp SocketPair) LocalFile() *os.File {\n\treturn os.NewFile(uintptr(sp[local]), sp.fileName()+\"[0]\")\n}\n\n// PeerFile returns the socketpair fd for peer usage as an *os.File.\nfunc (sp SocketPair) PeerFile() *os.File {\n\treturn os.NewFile(uintptr(sp[peer]), sp.fileName()+\"[1]\")\n}\n\n// LocalConn returns a net.Conn for the local end of the socketpair.\nfunc (sp SocketPair) LocalConn() (net.Conn, error) {\n\tfile := sp.LocalFile()\n\tdefer file.Close()\n\tconn, err := net.FileConn(file)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create net.Conn for %s[0]: %w\", sp.fileName(), err)\n\t}\n\treturn conn, nil\n}\n\n// PeerConn returns a net.Conn for the peer end of the socketpair.\nfunc (sp SocketPair) PeerConn() (net.Conn, error) {\n\tfile := sp.PeerFile()\n\tdefer file.Close()\n\tconn, err := net.FileConn(file)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create net.Conn for %s[1]: %w\", sp.fileName(), err)\n\t}\n\treturn conn, nil\n}\n\n// LocalClose closes the local end of the socketpair.\nfunc (sp SocketPair) LocalClose() {\n\tsys.CloseHandle(sp[local])\n}\n\n// PeerClose closes the peer end of the socketpair.\nfunc (sp SocketPair) PeerClose() {\n\tsys.CloseHandle(sp[peer])\n}\n\nfunc (sp SocketPair) fileName() string {\n\treturn fmt.Sprintf(\"socketpair-#%d:%d[0]\", sp[local], sp[peer])\n}\n\nfunc socket(domain, typ, proto int) (sys.Handle, error) {\n\treturn sys.WSASocket(int32(domain), int32(typ), int32(proto), nil, 0, sys.WSA_FLAG_OVERLAPPED)\n}\n\nfunc connect(s sys.Handle, sa sys.Sockaddr) error {\n\to := &sys.Overlapped{}\n\treturn sys.ConnectEx(s, sa, nil, 0, nil, o)\n}\n\nfunc accept(l sys.Handle, domain, typ, proto int) (sys.Handle, error) {\n\tvar (\n\t\ta       sys.Handle\n\t\terr     error\n\t\tbuf     = [1024]byte{}\n\t\toverlap = sys.Overlapped{}\n\t\tcnt     = uint32(16 + 256)\n\t)\n\n\ta, err = socket(sys.AF_INET, sys.SOCK_STREAM, 0)\n\tif err != nil {\n\t\treturn sys.InvalidHandle, fmt.Errorf(\"failed to emulate socketpair (accept): %w\", err)\n\t}\n\n\terr = sys.AcceptEx(l, a, (*byte)(unsafe.Pointer(&buf)), 0, cnt, cnt, &cnt, &overlap)\n\tif err != nil {\n\t\treturn sys.InvalidHandle, fmt.Errorf(\"failed to emulate socketpair (AcceptEx()): %w\", err)\n\t}\n\n\treturn a, nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/nri/pkg/stub/stub.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage stub\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\tstdnet \"net\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/containerd/nri/pkg/api\"\n\tnrilog \"github.com/containerd/nri/pkg/log\"\n\t\"github.com/containerd/nri/pkg/net\"\n\t\"github.com/containerd/nri/pkg/net/multiplex\"\n\t\"github.com/containerd/ttrpc\"\n)\n\n// Plugin can implement a number of interfaces related to Pod and Container\n// lifecycle events. No any single such inteface is mandatory, therefore the\n// Plugin interface itself is empty. Plugins are required to implement at\n// least one of these interfaces and this is verified during stub creation.\n// Trying to create a stub for a plugin violating this requirement will fail\n// with and error.\ntype Plugin interface{}\n\n// ConfigureInterface handles Configure API request.\ntype ConfigureInterface interface {\n\t// Configure the plugin with the given NRI-supplied configuration.\n\t// If a non-zero EventMask is returned, the plugin will be subscribed\n\t// to the corresponding.\n\tConfigure(ctx context.Context, config, runtime, version string) (api.EventMask, error)\n}\n\n// SynchronizeInterface handles Synchronize API requests.\ntype SynchronizeInterface interface {\n\t// Synchronize the state of the plugin with the runtime.\n\t// The plugin can request updates to containers in response.\n\tSynchronize(context.Context, []*api.PodSandbox, []*api.Container) ([]*api.ContainerUpdate, error)\n}\n\n// ShutdownInterface handles a Shutdown API request.\ntype ShutdownInterface interface {\n\t// Shutdown notifies the plugin about the runtime shutting down.\n\tShutdown(context.Context)\n}\n\n// RunPodInterface handles RunPodSandbox API events.\ntype RunPodInterface interface {\n\t// RunPodSandbox relays a RunPodSandbox event to the plugin.\n\tRunPodSandbox(context.Context, *api.PodSandbox) error\n}\n\n// StopPodInterface handles StopPodSandbox API events.\ntype StopPodInterface interface {\n\t// StopPodSandbox relays a StopPodSandbox event to the plugin.\n\tStopPodSandbox(context.Context, *api.PodSandbox) error\n}\n\n// RemovePodInterface handles RemovePodSandbox API events.\ntype RemovePodInterface interface {\n\t// RemovePodSandbox relays a RemovePodSandbox event to the plugin.\n\tRemovePodSandbox(context.Context, *api.PodSandbox) error\n}\n\n// CreateContainerInterface handles CreateContainer API requests.\ntype CreateContainerInterface interface {\n\t// CreateContainer relays a CreateContainer request to the plugin.\n\t// The plugin can request adjustments to the container being created\n\t// and updates to other unstopped containers in response.\n\tCreateContainer(context.Context, *api.PodSandbox, *api.Container) (*api.ContainerAdjustment, []*api.ContainerUpdate, error)\n}\n\n// StartContainerInterface handles StartContainer API requests.\ntype StartContainerInterface interface {\n\t// StartContainer relays a StartContainer event to the plugin.\n\tStartContainer(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// UpdateContainerInterface handles UpdateContainer API requests.\ntype UpdateContainerInterface interface {\n\t// UpdateContainer relays an UpdateContainer request to the plugin.\n\t// The plugin can request updates both to the container being updated\n\t// (which then supersedes the original update) and to other unstopped\n\t// containers in response.\n\tUpdateContainer(context.Context, *api.PodSandbox, *api.Container, *api.LinuxResources) ([]*api.ContainerUpdate, error)\n}\n\n// StopContainerInterface handles StopContainer API requests.\ntype StopContainerInterface interface {\n\t// StopContainer relays a StopContainer request to the plugin.\n\t// The plugin can request updates to unstopped containers in response.\n\tStopContainer(context.Context, *api.PodSandbox, *api.Container) ([]*api.ContainerUpdate, error)\n}\n\n// RemoveContainerInterface handles RemoveContainer API events.\ntype RemoveContainerInterface interface {\n\t// RemoveContainer relays a RemoveContainer event to the plugin.\n\tRemoveContainer(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// PostCreateContainerInterface handles PostCreateContainer API events.\ntype PostCreateContainerInterface interface {\n\t// PostCreateContainer relays a PostCreateContainer event to the plugin.\n\tPostCreateContainer(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// PostStartContainerInterface handles PostStartContainer API events.\ntype PostStartContainerInterface interface {\n\t// PostStartContainer relays a PostStartContainer event to the plugin.\n\tPostStartContainer(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// PostUpdateContainerInterface handles PostUpdateContainer API events.\ntype PostUpdateContainerInterface interface {\n\t// PostUpdateContainer relays a PostUpdateContainer event to the plugin.\n\tPostUpdateContainer(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// Stub is the interface the stub provides for the plugin implementation.\ntype Stub interface {\n\t// Run the plugin. Starts the plugin then waits for an error or the plugin to stop\n\tRun(context.Context) error\n\t// Start the plugin.\n\tStart(context.Context) error\n\t// Stop the plugin.\n\tStop()\n\t// Wait for the plugin to stop.\n\tWait()\n\n\t// UpdateContainer requests unsolicited updates to containers.\n\tUpdateContainers([]*api.ContainerUpdate) ([]*api.ContainerUpdate, error)\n}\n\nconst (\n\t// Plugin registration timeout.\n\tregistrationTimeout = 2 * time.Second\n)\n\nvar (\n\t// Logger for messages generated internally by the stub itself.\n\tlog = nrilog.Get()\n\n\t// Used instead of a nil Context in logging.\n\tnoCtx = context.TODO()\n\n\t// ErrNoService indicates that the stub has no runtime service/connection,\n\t// for instance by UpdateContainers on a stub which has not been started.\n\tErrNoService = errors.New(\"stub: no service/connection\")\n)\n\n// EventMask holds a mask of events for plugin subscription.\ntype EventMask = api.EventMask\n\n// Option to apply to a plugin during its creation.\ntype Option func(*stub) error\n\n// WithOnClose sets a notification function to call if the ttRPC connection goes down.\nfunc WithOnClose(onClose func()) Option {\n\treturn func(s *stub) error {\n\t\ts.onClose = onClose\n\t\treturn nil\n\t}\n}\n\n// WithPluginName sets the name to use in plugin registration.\nfunc WithPluginName(name string) Option {\n\treturn func(s *stub) error {\n\t\tif s.name != \"\" {\n\t\t\treturn fmt.Errorf(\"plugin name already set (%q)\", s.name)\n\t\t}\n\t\ts.name = name\n\t\treturn nil\n\t}\n}\n\n// WithPluginIdx sets the index to use in plugin registration.\nfunc WithPluginIdx(idx string) Option {\n\treturn func(s *stub) error {\n\t\tif s.idx != \"\" {\n\t\t\treturn fmt.Errorf(\"plugin ID already set (%q)\", s.idx)\n\t\t}\n\t\ts.idx = idx\n\t\treturn nil\n\t}\n}\n\n// WithSocketPath sets the NRI socket path to connect to.\nfunc WithSocketPath(path string) Option {\n\treturn func(s *stub) error {\n\t\ts.socketPath = path\n\t\treturn nil\n\t}\n}\n\n// WithConnection sets an existing NRI connection to use.\nfunc WithConnection(conn stdnet.Conn) Option {\n\treturn func(s *stub) error {\n\t\ts.conn = conn\n\t\treturn nil\n\t}\n}\n\n// WithDialer sets the dialer to use.\nfunc WithDialer(d func(string) (stdnet.Conn, error)) Option {\n\treturn func(s *stub) error {\n\t\ts.dialer = d\n\t\treturn nil\n\t}\n}\n\n// stub implements Stub.\ntype stub struct {\n\tsync.Mutex\n\tplugin     interface{}\n\thandlers   handlers\n\tevents     api.EventMask\n\tname       string\n\tidx        string\n\tsocketPath string\n\tdialer     func(string) (stdnet.Conn, error)\n\tconn       stdnet.Conn\n\tonClose    func()\n\trpcm       multiplex.Mux\n\trpcl       stdnet.Listener\n\trpcs       *ttrpc.Server\n\trpcc       *ttrpc.Client\n\truntime    api.RuntimeService\n\tcloseOnce  sync.Once\n\tstarted    bool\n\tdoneC      chan struct{}\n\tsrvErrC    chan error\n\tcfgErrC    chan error\n}\n\n// Handlers for NRI plugin event and request.\ntype handlers struct {\n\tConfigure           func(context.Context, string, string, string) (api.EventMask, error)\n\tSynchronize         func(context.Context, []*api.PodSandbox, []*api.Container) ([]*api.ContainerUpdate, error)\n\tShutdown            func(context.Context)\n\tRunPodSandbox       func(context.Context, *api.PodSandbox) error\n\tStopPodSandbox      func(context.Context, *api.PodSandbox) error\n\tRemovePodSandbox    func(context.Context, *api.PodSandbox) error\n\tCreateContainer     func(context.Context, *api.PodSandbox, *api.Container) (*api.ContainerAdjustment, []*api.ContainerUpdate, error)\n\tStartContainer      func(context.Context, *api.PodSandbox, *api.Container) error\n\tUpdateContainer     func(context.Context, *api.PodSandbox, *api.Container, *api.LinuxResources) ([]*api.ContainerUpdate, error)\n\tStopContainer       func(context.Context, *api.PodSandbox, *api.Container) ([]*api.ContainerUpdate, error)\n\tRemoveContainer     func(context.Context, *api.PodSandbox, *api.Container) error\n\tPostCreateContainer func(context.Context, *api.PodSandbox, *api.Container) error\n\tPostStartContainer  func(context.Context, *api.PodSandbox, *api.Container) error\n\tPostUpdateContainer func(context.Context, *api.PodSandbox, *api.Container) error\n}\n\n// New creates a stub with the given plugin and options.\nfunc New(p interface{}, opts ...Option) (Stub, error) {\n\tstub := &stub{\n\t\tplugin:     p,\n\t\tname:       os.Getenv(api.PluginNameEnvVar),\n\t\tidx:        os.Getenv(api.PluginIdxEnvVar),\n\t\tsocketPath: api.DefaultSocketPath,\n\t\tdialer:     func(p string) (stdnet.Conn, error) { return stdnet.Dial(\"unix\", p) },\n\t\tdoneC:      make(chan struct{}),\n\t}\n\n\tfor _, o := range opts {\n\t\tif err := o(stub); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := stub.setupHandlers(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := stub.ensureIdentity(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tlog.Infof(noCtx, \"Created plugin %s (%s, handles %s)\", stub.Name(),\n\t\tfilepath.Base(os.Args[0]), stub.events.PrettyString())\n\n\treturn stub, nil\n}\n\n// Start event processing, register to NRI and wait for getting configured.\nfunc (stub *stub) Start(ctx context.Context) (retErr error) {\n\tstub.Lock()\n\tdefer stub.Unlock()\n\n\tif stub.started {\n\t\treturn fmt.Errorf(\"stub already started\")\n\t}\n\tstub.started = true\n\n\terr := stub.connect()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trpcm := multiplex.Multiplex(stub.conn)\n\tdefer func() {\n\t\tif retErr != nil {\n\t\t\trpcm.Close()\n\t\t\tstub.rpcm = nil\n\t\t}\n\t}()\n\n\trpcl, err := rpcm.Listen(multiplex.PluginServiceConn)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer func() {\n\t\tif retErr != nil {\n\t\t\trpcl.Close()\n\t\t\tstub.rpcl = nil\n\t\t}\n\t}()\n\n\trpcs, err := ttrpc.NewServer()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create ttrpc server: %w\", err)\n\t}\n\tdefer func() {\n\t\tif retErr != nil {\n\t\t\trpcs.Close()\n\t\t\tstub.rpcs = nil\n\t\t}\n\t}()\n\n\tapi.RegisterPluginService(rpcs, stub)\n\n\tconn, err := rpcm.Open(multiplex.RuntimeServiceConn)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to multiplex ttrpc client connection: %w\", err)\n\t}\n\trpcc := ttrpc.NewClient(conn,\n\t\tttrpc.WithOnClose(func() {\n\t\t\tstub.connClosed()\n\t\t}),\n\t)\n\tdefer func() {\n\t\tif retErr != nil {\n\t\t\trpcc.Close()\n\t\t\tstub.rpcc = nil\n\t\t}\n\t}()\n\n\tstub.srvErrC = make(chan error, 1)\n\tstub.cfgErrC = make(chan error, 1)\n\tgo func() {\n\t\tstub.srvErrC <- rpcs.Serve(ctx, rpcl)\n\t\tclose(stub.doneC)\n\t}()\n\n\tstub.rpcm = rpcm\n\tstub.rpcl = rpcl\n\tstub.rpcs = rpcs\n\tstub.rpcc = rpcc\n\n\tstub.runtime = api.NewRuntimeClient(rpcc)\n\n\tif err = stub.register(ctx); err != nil {\n\t\tstub.close()\n\t\treturn err\n\t}\n\n\tif err = <-stub.cfgErrC; err != nil {\n\t\treturn err\n\t}\n\n\tlog.Infof(ctx, \"Started plugin %s...\", stub.Name())\n\n\treturn nil\n}\n\n// Stop the plugin.\nfunc (stub *stub) Stop() {\n\tlog.Infof(noCtx, \"Stopping plugin %s...\", stub.Name())\n\n\tstub.Lock()\n\tdefer stub.Unlock()\n\tstub.close()\n}\n\nfunc (stub *stub) close() {\n\tstub.closeOnce.Do(func() {\n\t\tif stub.rpcl != nil {\n\t\t\tstub.rpcl.Close()\n\t\t}\n\t\tif stub.rpcs != nil {\n\t\t\tstub.rpcs.Close()\n\t\t}\n\t\tif stub.rpcc != nil {\n\t\t\tstub.rpcc.Close()\n\t\t}\n\t\tif stub.rpcm != nil {\n\t\t\tstub.rpcm.Close()\n\t\t}\n\t\tif stub.srvErrC != nil {\n\t\t\t<-stub.doneC\n\t\t}\n\t})\n}\n\n// Run the plugin. Start event processing then wait for an error or getting stopped.\nfunc (stub *stub) Run(ctx context.Context) error {\n\tvar err error\n\n\tif err = stub.Start(ctx); err != nil {\n\t\treturn err\n\t}\n\n\terr = <-stub.srvErrC\n\tif err == ttrpc.ErrServerClosed {\n\t\treturn nil\n\t}\n\n\treturn err\n}\n\n// Wait for the plugin to stop.\nfunc (stub *stub) Wait() {\n\tstub.Lock()\n\tif stub.srvErrC == nil {\n\t\treturn\n\t}\n\tstub.Unlock()\n\t<-stub.doneC\n}\n\n// Name returns the full indexed name of the plugin.\nfunc (stub *stub) Name() string {\n\treturn stub.idx + \"-\" + stub.name\n}\n\n// Connect the plugin to NRI.\nfunc (stub *stub) connect() error {\n\tif stub.conn != nil {\n\t\tlog.Infof(noCtx, \"Using given plugin connection...\")\n\t\treturn nil\n\t}\n\n\tif env := os.Getenv(api.PluginSocketEnvVar); env != \"\" {\n\t\tlog.Infof(noCtx, \"Using connection %q from environment...\", env)\n\n\t\tfd, err := strconv.Atoi(env)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid socket in environment (%s=%q): %w\",\n\t\t\t\tapi.PluginSocketEnvVar, env, err)\n\t\t}\n\n\t\tstub.conn, err = net.NewFdConn(fd)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid socket (%d) in environment: %w\", fd, err)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tconn, err := stub.dialer(stub.socketPath)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to connect to NRI service: %w\", err)\n\t}\n\n\tstub.conn = conn\n\n\treturn nil\n}\n\n// Register the plugin with NRI.\nfunc (stub *stub) register(ctx context.Context) error {\n\tlog.Infof(ctx, \"Registering plugin %s...\", stub.Name())\n\n\tctx, cancel := context.WithTimeout(ctx, registrationTimeout)\n\tdefer cancel()\n\n\treq := &api.RegisterPluginRequest{\n\t\tPluginName: stub.name,\n\t\tPluginIdx:  stub.idx,\n\t}\n\tif _, err := stub.runtime.RegisterPlugin(ctx, req); err != nil {\n\t\treturn fmt.Errorf(\"failed to register with NRI/Runtime: %w\", err)\n\t}\n\n\treturn nil\n}\n\n// Handle a lost connection.\nfunc (stub *stub) connClosed() {\n\tstub.close()\n\tif stub.onClose != nil {\n\t\tstub.onClose()\n\t\treturn\n\t}\n\n\tos.Exit(0)\n}\n\n//\n// plugin event and request handlers\n//\n\n// UpdateContainers requests unsolicited updates to containers.\nfunc (stub *stub) UpdateContainers(update []*api.ContainerUpdate) ([]*api.ContainerUpdate, error) {\n\tif stub.runtime == nil {\n\t\treturn nil, ErrNoService\n\t}\n\n\tctx := context.Background()\n\treq := &api.UpdateContainersRequest{\n\t\tUpdate: update,\n\t}\n\trpl, err := stub.runtime.UpdateContainers(ctx, req)\n\tif rpl != nil {\n\t\treturn rpl.Failed, err\n\t}\n\treturn nil, err\n}\n\n// Configure the plugin.\nfunc (stub *stub) Configure(ctx context.Context, req *api.ConfigureRequest) (rpl *api.ConfigureResponse, retErr error) {\n\tvar (\n\t\tevents api.EventMask\n\t\terr    error\n\t)\n\n\tlog.Infof(ctx, \"Configuring plugin %s for runtime %s/%s...\", stub.Name(),\n\t\treq.RuntimeName, req.RuntimeVersion)\n\n\tdefer func() {\n\t\tstub.cfgErrC <- retErr\n\t}()\n\n\tif handler := stub.handlers.Configure; handler == nil {\n\t\tevents = stub.events\n\t} else {\n\t\tevents, err = handler(ctx, req.Config, req.RuntimeName, req.RuntimeVersion)\n\t\tif err != nil {\n\t\t\tlog.Errorf(ctx, \"Plugin configuration failed: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif events == 0 {\n\t\t\tevents = stub.events\n\t\t}\n\n\t\t// Only allow plugins to subscribe to events they can handle.\n\t\tif extra := events & ^stub.events; extra != 0 {\n\t\t\tlog.Errorf(ctx, \"Plugin subscribed for unhandled events %s (0x%x)\",\n\t\t\t\textra.PrettyString(), extra)\n\t\t\treturn nil, fmt.Errorf(\"internal error: unhandled events %s (0x%x)\",\n\t\t\t\textra.PrettyString(), extra)\n\t\t}\n\n\t\tlog.Infof(ctx, \"Subscribing plugin %s (%s) for events %s\", stub.Name(),\n\t\t\tfilepath.Base(os.Args[0]), events.PrettyString())\n\t}\n\n\treturn &api.ConfigureResponse{\n\t\tEvents: int32(events),\n\t}, nil\n}\n\n// Synchronize the state of the plugin with the runtime.\nfunc (stub *stub) Synchronize(ctx context.Context, req *api.SynchronizeRequest) (*api.SynchronizeResponse, error) {\n\thandler := stub.handlers.Synchronize\n\tif handler == nil {\n\t\treturn &api.SynchronizeResponse{}, nil\n\t}\n\tupdate, err := handler(ctx, req.Pods, req.Containers)\n\treturn &api.SynchronizeResponse{\n\t\tUpdate: update,\n\t}, err\n}\n\n// Shutdown the plugin.\nfunc (stub *stub) Shutdown(ctx context.Context, req *api.ShutdownRequest) (*api.ShutdownResponse, error) {\n\thandler := stub.handlers.Shutdown\n\tif handler != nil {\n\t\thandler(ctx)\n\t}\n\treturn &api.ShutdownResponse{}, nil\n}\n\n// CreateContainer request handler.\nfunc (stub *stub) CreateContainer(ctx context.Context, req *api.CreateContainerRequest) (*api.CreateContainerResponse, error) {\n\thandler := stub.handlers.CreateContainer\n\tif handler == nil {\n\t\treturn nil, nil\n\t}\n\tadjust, update, err := handler(ctx, req.Pod, req.Container)\n\treturn &api.CreateContainerResponse{\n\t\tAdjust: adjust,\n\t\tUpdate: update,\n\t}, err\n}\n\n// UpdateContainer request handler.\nfunc (stub *stub) UpdateContainer(ctx context.Context, req *api.UpdateContainerRequest) (*api.UpdateContainerResponse, error) {\n\thandler := stub.handlers.UpdateContainer\n\tif handler == nil {\n\t\treturn nil, nil\n\t}\n\tupdate, err := handler(ctx, req.Pod, req.Container, req.LinuxResources)\n\treturn &api.UpdateContainerResponse{\n\t\tUpdate: update,\n\t}, err\n}\n\n// StopContainer request handler.\nfunc (stub *stub) StopContainer(ctx context.Context, req *api.StopContainerRequest) (*api.StopContainerResponse, error) {\n\thandler := stub.handlers.StopContainer\n\tif handler == nil {\n\t\treturn nil, nil\n\t}\n\tupdate, err := handler(ctx, req.Pod, req.Container)\n\treturn &api.StopContainerResponse{\n\t\tUpdate: update,\n\t}, err\n}\n\n// StateChange event handler.\nfunc (stub *stub) StateChange(ctx context.Context, evt *api.StateChangeEvent) (*api.Empty, error) {\n\tvar err error\n\tswitch evt.Event {\n\tcase api.Event_RUN_POD_SANDBOX:\n\t\tif handler := stub.handlers.RunPodSandbox; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod)\n\t\t}\n\tcase api.Event_STOP_POD_SANDBOX:\n\t\tif handler := stub.handlers.StopPodSandbox; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod)\n\t\t}\n\tcase api.Event_REMOVE_POD_SANDBOX:\n\t\tif handler := stub.handlers.RemovePodSandbox; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod)\n\t\t}\n\tcase api.Event_POST_CREATE_CONTAINER:\n\t\tif handler := stub.handlers.PostCreateContainer; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod, evt.Container)\n\t\t}\n\tcase api.Event_START_CONTAINER:\n\t\tif handler := stub.handlers.StartContainer; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod, evt.Container)\n\t\t}\n\tcase api.Event_POST_START_CONTAINER:\n\t\tif handler := stub.handlers.PostStartContainer; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod, evt.Container)\n\t\t}\n\tcase api.Event_POST_UPDATE_CONTAINER:\n\t\tif handler := stub.handlers.PostUpdateContainer; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod, evt.Container)\n\t\t}\n\tcase api.Event_REMOVE_CONTAINER:\n\t\tif handler := stub.handlers.RemoveContainer; handler != nil {\n\t\t\terr = handler(ctx, evt.Pod, evt.Container)\n\t\t}\n\t}\n\n\treturn &api.StateChangeResponse{}, err\n}\n\n// ensureIdentity sets plugin index and name from the binary if those are unset.\nfunc (stub *stub) ensureIdentity() error {\n\tif stub.idx != \"\" && stub.name != \"\" {\n\t\treturn nil\n\t}\n\n\tif stub.idx != \"\" {\n\t\tstub.name = filepath.Base(os.Args[0])\n\t\treturn nil\n\t}\n\n\tidx, name, err := api.ParsePluginName(filepath.Base(os.Args[0]))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tstub.name = name\n\tstub.idx = idx\n\n\treturn nil\n}\n\n// Set up event handlers and the subscription mask for the plugin.\nfunc (stub *stub) setupHandlers() error {\n\tif plugin, ok := stub.plugin.(ConfigureInterface); ok {\n\t\tstub.handlers.Configure = plugin.Configure\n\t}\n\tif plugin, ok := stub.plugin.(SynchronizeInterface); ok {\n\t\tstub.handlers.Synchronize = plugin.Synchronize\n\t}\n\tif plugin, ok := stub.plugin.(ShutdownInterface); ok {\n\t\tstub.handlers.Shutdown = plugin.Shutdown\n\t}\n\n\tif plugin, ok := stub.plugin.(RunPodInterface); ok {\n\t\tstub.handlers.RunPodSandbox = plugin.RunPodSandbox\n\t\tstub.events.Set(api.Event_RUN_POD_SANDBOX)\n\t}\n\tif plugin, ok := stub.plugin.(StopPodInterface); ok {\n\t\tstub.handlers.StopPodSandbox = plugin.StopPodSandbox\n\t\tstub.events.Set(api.Event_STOP_POD_SANDBOX)\n\t}\n\tif plugin, ok := stub.plugin.(RemovePodInterface); ok {\n\t\tstub.handlers.RemovePodSandbox = plugin.RemovePodSandbox\n\t\tstub.events.Set(api.Event_REMOVE_POD_SANDBOX)\n\t}\n\tif plugin, ok := stub.plugin.(CreateContainerInterface); ok {\n\t\tstub.handlers.CreateContainer = plugin.CreateContainer\n\t\tstub.events.Set(api.Event_CREATE_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(StartContainerInterface); ok {\n\t\tstub.handlers.StartContainer = plugin.StartContainer\n\t\tstub.events.Set(api.Event_START_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(UpdateContainerInterface); ok {\n\t\tstub.handlers.UpdateContainer = plugin.UpdateContainer\n\t\tstub.events.Set(api.Event_UPDATE_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(StopContainerInterface); ok {\n\t\tstub.handlers.StopContainer = plugin.StopContainer\n\t\tstub.events.Set(api.Event_STOP_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(RemoveContainerInterface); ok {\n\t\tstub.handlers.RemoveContainer = plugin.RemoveContainer\n\t\tstub.events.Set(api.Event_REMOVE_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(PostCreateContainerInterface); ok {\n\t\tstub.handlers.PostCreateContainer = plugin.PostCreateContainer\n\t\tstub.events.Set(api.Event_POST_CREATE_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(PostStartContainerInterface); ok {\n\t\tstub.handlers.PostStartContainer = plugin.PostStartContainer\n\t\tstub.events.Set(api.Event_POST_START_CONTAINER)\n\t}\n\tif plugin, ok := stub.plugin.(PostUpdateContainerInterface); ok {\n\t\tstub.handlers.PostUpdateContainer = plugin.PostUpdateContainer\n\t\tstub.events.Set(api.Event_POST_UPDATE_CONTAINER)\n\t}\n\n\tif stub.events == 0 {\n\t\treturn fmt.Errorf(\"internal error: plugin %T does not implement any NRI request handlers\",\n\t\t\tstub.plugin)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/.gitattributes",
    "content": "*.go text eol=lf\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/.gitignore",
    "content": "# Binaries for programs and plugins\n/bin/\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\ncoverage.txt\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/.golangci.yml",
    "content": "linters:\n  enable:\n    - structcheck\n    - varcheck\n    - staticcheck\n    - unconvert\n    - gofmt\n    - goimports\n    - revive\n    - ineffassign\n    - vet\n    - unused\n    - misspell\n  disable:\n    - errcheck\n\nlinters-settings:\n  revive:\n    ignore-generated-headers: true\n    rules:\n      - name: blank-imports\n      - name: context-as-argument\n      - name: context-keys-type\n      - name: dot-imports\n      - name: error-return\n      - name: error-strings\n      - name: error-naming\n      - name: exported\n      - name: if-return\n      - name: increment-decrement\n      - name: var-naming\n        arguments: [[\"UID\", \"GID\"], []]\n      - name: var-declaration\n      - name: package-comments\n      - name: range\n      - name: receiver-naming\n      - name: time-naming\n      - name: unexported-return\n      - name: indent-error-flow\n      - name: errorf\n      - name: empty-block\n      - name: superfluous-else\n      - name: unused-parameter\n      - name: unreachable-code\n      - name: redefines-builtin-id\n\nissues:\n  include:\n    - EXC0002\n\nrun:\n  timeout: 8m\n  skip-dirs:\n    - example\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/Makefile",
    "content": "#   Copyright The containerd Authors.\n\n#   Licensed under the Apache License, Version 2.0 (the \"License\");\n#   you may not use this file except in compliance with the License.\n#   You may obtain a copy of the License at\n\n#       http://www.apache.org/licenses/LICENSE-2.0\n\n#   Unless required by applicable law or agreed to in writing, software\n#   distributed under the License is distributed on an \"AS IS\" BASIS,\n#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n#   See the License for the specific language governing permissions and\n#   limitations under the License.\n\n\n# Go command to use for build\nGO ?= go\nINSTALL ?= install\n\n# Root directory of the project (absolute path).\nROOTDIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))\n\nWHALE = \"🇩\"\nONI = \"👹\"\n\n# Project binaries.\nCOMMANDS=protoc-gen-go-ttrpc protoc-gen-gogottrpc\n\nifdef BUILDTAGS\n    GO_BUILDTAGS = ${BUILDTAGS}\nendif\nGO_BUILDTAGS ?=\nGO_TAGS=$(if $(GO_BUILDTAGS),-tags \"$(strip $(GO_BUILDTAGS))\",)\n\n# Project packages.\nPACKAGES=$(shell $(GO) list ${GO_TAGS} ./... | grep -v /example)\nTESTPACKAGES=$(shell $(GO) list ${GO_TAGS} ./... | grep -v /cmd | grep -v /integration | grep -v /example)\nBINPACKAGES=$(addprefix ./cmd/,$(COMMANDS))\n\n#Replaces \":\" (*nix), \";\" (windows) with newline for easy parsing\nGOPATHS=$(shell echo ${GOPATH} | tr \":\" \"\\n\" | tr \";\" \"\\n\")\n\nTESTFLAGS_RACE=\nGO_BUILD_FLAGS=\n# See Golang issue re: '-trimpath': https://github.com/golang/go/issues/13809\nGO_GCFLAGS=$(shell\t\t\t\t\\\n\tset -- ${GOPATHS};\t\t\t\\\n\techo \"-gcflags=-trimpath=$${1}/src\";\t\\\n\t)\n\nBINARIES=$(addprefix bin/,$(COMMANDS))\n\n# Flags passed to `go test`\nTESTFLAGS ?= $(TESTFLAGS_RACE) $(EXTRA_TESTFLAGS)\nTESTFLAGS_PARALLEL ?= 8\n\n# Use this to replace `go test` with, for instance, `gotestsum`\nGOTEST ?= $(GO) test\n\n.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install vendor install-protobuf install-protobuild\n.DEFAULT: default\n\n# Forcibly set the default goal to all, in case an include above brought in a rule definition.\n.DEFAULT_GOAL := all\n\nall: binaries\n\ncheck: proto-fmt ## run all linters\n\t@echo \"$(WHALE) $@\"\n\tGOGC=75 golangci-lint run\n\nci: check binaries checkprotos coverage # coverage-integration ## to be used by the CI\n\nAUTHORS: .mailmap .git/HEAD\n\tgit log --format='%aN <%aE>' | sort -fu > $@\n\ngenerate: protos\n\t@echo \"$(WHALE) $@\"\n\t@PATH=\"${ROOTDIR}/bin:${PATH}\" $(GO) generate -x ${PACKAGES}\n\nprotos: bin/protoc-gen-gogottrpc bin/protoc-gen-go-ttrpc ## generate protobuf\n\t@echo \"$(WHALE) $@\"\n\t@(PATH=\"${ROOTDIR}/bin:${PATH}\" protobuild --quiet ${PACKAGES})\n\ncheck-protos: protos ## check if protobufs needs to be generated again\n\t@echo \"$(WHALE) $@\"\n\t@test -z \"$$(git status --short | grep \".pb.go\" | tee /dev/stderr)\" || \\\n\t\t((git diff | cat) && \\\n\t\t(echo \"$(ONI) please run 'make protos' when making changes to proto files\" && false))\n\ncheck-api-descriptors: protos ## check that protobuf changes aren't present.\n\t@echo \"$(WHALE) $@\"\n\t@test -z \"$$(git status --short | grep \".pb.txt\" | tee /dev/stderr)\" || \\\n\t\t((git diff $$(find . -name '*.pb.txt') | cat) && \\\n\t\t(echo \"$(ONI) please run 'make protos' when making changes to proto files and check-in the generated descriptor file changes\" && false))\n\nproto-fmt: ## check format of proto files\n\t@echo \"$(WHALE) $@\"\n\t@test -z \"$$(find . -name '*.proto' -type f -exec grep -Hn -e \"^ \" {} \\; | tee /dev/stderr)\" || \\\n\t\t(echo \"$(ONI) please indent proto files with tabs only\" && false)\n\t@test -z \"$$(find . -name '*.proto' -type f -exec grep -Hn \"Meta meta = \" {} \\; | grep -v '(gogoproto.nullable) = false' | tee /dev/stderr)\" || \\\n\t\t(echo \"$(ONI) meta fields in proto files must have option (gogoproto.nullable) = false\" && false)\n\nbuild: ## build the go packages\n\t@echo \"$(WHALE) $@\"\n\t@$(GO) build ${DEBUG_GO_GCFLAGS} ${GO_GCFLAGS} ${GO_BUILD_FLAGS} ${EXTRA_FLAGS} ${PACKAGES}\n\ntest: ## run tests, except integration tests and tests that require root\n\t@echo \"$(WHALE) $@\"\n\t@$(GOTEST) ${TESTFLAGS} ${TESTPACKAGES}\n\nintegration: ## run integration tests\n\t@echo \"$(WHALE) $@\"\n\t@cd \"${ROOTDIR}/integration\" && $(GOTEST) -v ${TESTFLAGS}  -parallel ${TESTFLAGS_PARALLEL} .\n\nbenchmark: ## run benchmarks tests\n\t@echo \"$(WHALE) $@\"\n\t@$(GO) test ${TESTFLAGS} -bench . -run Benchmark\n\nFORCE:\n\ndefine BUILD_BINARY\n@echo \"$(WHALE) $@\"\n@$(GO) build ${DEBUG_GO_GCFLAGS} ${GO_GCFLAGS} ${GO_BUILD_FLAGS} -o $@ ${GO_TAGS}  ./$<\nendef\n\n# Build a binary from a cmd.\nbin/%: cmd/% FORCE\n\t$(call BUILD_BINARY)\n\nbinaries: $(BINARIES) ## build binaries\n\t@echo \"$(WHALE) $@\"\n\nclean: ## clean up binaries\n\t@echo \"$(WHALE) $@\"\n\t@rm -f $(BINARIES)\n\ninstall: ## install binaries\n\t@echo \"$(WHALE) $@ $(BINPACKAGES)\"\n\t@$(GO) install $(BINPACKAGES)\n\ninstall-protobuf:\n\t@echo \"$(WHALE) $@\"\n\t@script/install-protobuf\n\ninstall-protobuild:\n\t@echo \"$(WHALE) $@\"\n\t@$(GO) install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1\n\t@$(GO) install github.com/containerd/protobuild@7e5ee24bc1f70e9e289fef15e2631eb3491320bf\n\ncoverage: ## generate coverprofiles from the unit tests, except tests that require root\n\t@echo \"$(WHALE) $@\"\n\t@rm -f coverage.txt\n\t@$(GO) test -i ${TESTFLAGS} ${TESTPACKAGES} 2> /dev/null\n\t@( for pkg in ${PACKAGES}; do \\\n\t\t$(GO) test ${TESTFLAGS} \\\n\t\t\t-cover \\\n\t\t\t-coverprofile=profile.out \\\n\t\t\t-covermode=atomic $$pkg || exit; \\\n\t\tif [ -f profile.out ]; then \\\n\t\t\tcat profile.out >> coverage.txt; \\\n\t\t\trm profile.out; \\\n\t\tfi; \\\n\tdone )\n\nvendor: ## ensure all the go.mod/go.sum files are up-to-date\n\t@echo \"$(WHALE) $@\"\n\t@$(GO) mod tidy\n\t@$(GO) mod verify\n\nverify-vendor: ## verify if all the go.mod/go.sum files are up-to-date\n\t@echo \"$(WHALE) $@\"\n\t@$(GO) mod tidy\n\t@$(GO) mod verify\n\t@test -z \"$$(git status --short | grep \"go.sum\" | tee /dev/stderr)\" || \\\n\t\t((git diff | cat) && \\\n\t\t(echo \"$(ONI) make sure to checkin changes after go mod tidy\" && false))\n\nhelp: ## this help\n\t@awk 'BEGIN {FS = \":.*?## \"} /^[a-zA-Z_-]+:.*?## / {printf \"\\033[36m%-30s\\033[0m %s\\n\", $$1, $$2}' $(MAKEFILE_LIST) | sort\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/PROTOCOL.md",
    "content": "# Protocol Specification\n\nThe ttrpc protocol is client/server protocol to support multiple request streams\nover a single connection with lightweight framing. The client represents the\nprocess which initiated the underlying connection and the server is the process\nwhich accepted the connection. The protocol is currently defined as\nasymmetrical, with clients sending requests and servers sending responses. Both\nclients and servers are able to send stream data. The roles are also used in\ndetermining the stream identifiers, with client initiated streams using odd\nnumber identifiers and server initiated using even number. The protocol may be\nextended in the future to support server initiated streams, that is not\nsupported in the latest version.\n\n## Purpose\n\nThe ttrpc protocol is designed to be lightweight and optimized for low latency\nand reliable connections between processes on the same host. The protocol does\nnot include features for handling unreliable connections such as handshakes,\nresets, pings, or flow control. The protocol is designed to make low-overhead\nimplementations as simple as possible. It is not intended as a suitable\nreplacement for HTTP2/3 over the network.\n\n## Message Frame\n\nEach Message Frame consists of a 10-byte message header followed\nby message data. The data length and stream ID are both big-endian\n4-byte unsigned integers. The message type is an unsigned 1-byte\ninteger. The flags are also an unsigned 1-byte integer and\nuse is defined by the message type.\n\n    +---------------------------------------------------------------+\n    |                       Data Length (32)                        |\n    +---------------------------------------------------------------+\n    |                        Stream ID (32)                         |\n    +---------------+-----------------------------------------------+\n    | Msg Type (8)  |\n    +---------------+\n    |   Flags (8)   |\n    +---------------+-----------------------------------------------+\n    |                           Data (*)                            |\n    +---------------------------------------------------------------+\n\nThe Data Length field represents the number of bytes in the Data field. The\ntotal frame size will always be Data Length + 10 bytes. The maximum data length\nis 4MB and any larger size should be rejected. Due to the maximum data size\nbeing less than 16MB, the first frame byte should always be zero. This first\nbyte should be considered reserved for future use.\n\nThe Stream ID must be odd for client initiated streams and even for server\ninitiated streams. Server initiated streams are not currently supported.\n\n## Mesage Types\n\n| Message Type | Name     | Description                      |\n|--------------|----------|----------------------------------|\n| 0x01         | Request  | Initiates stream                 |\n| 0x02         | Response | Final stream data and terminates |\n| 0x03         | Data     | Stream data                      |\n\n### Request\n\nThe request message is used to initiate stream and send along request data for\nproperly routing and handling the stream. The stream may indicate unary without\nany inbound or outbound stream data with only a response is expected on the\nstream. The request may also indicate the stream is still open for more data and\nno response is expected until data is finished. If the remote indicates the\nstream is closed, the request may be considered non-unary but without anymore\nstream data sent. In the case of `remote closed`, the remote still expects to\nreceive a response or stream data. For compatibility with non streaming clients,\na request with empty flags indicates a unary request.\n\n#### Request Flags\n\n| Flag | Name            | Description                                      |\n|------|-----------------|--------------------------------------------------|\n| 0x01 | `remote closed` | Non-unary, but no more data expected from remote |\n| 0x02 | `remote open`   | Non-unary, remote is still sending data          |\n\n### Response\n\nThe response message is used to end a stream with data, an empty response, or\nan error. A response message is the only expected message after a unary request.\nA non-unary request does not require a response message if the server is sending\nback stream data. A non-unary stream may return a single response message but no\nother stream data may follow.\n\n#### Response Flags\n\nNo response flags are defined at this time, flags should be empty.\n\n### Data\n\nThe data message is used to send data on an already initialized stream. Either\nclient or server may send data. A data message is not allowed on a unary stream.\nA data message should not be sent after indicating `remote closed` to the peer.\nThe last data message on a stream must set the `remote closed` flag.\n\nThe `no data` flag is used to indicate that the data message does not include\nany data. This is normally used with the `remote closed` flag to indicate the\nstream is now closed without transmitting any data. Since ttrpc normally\ntransmits a single object per message, a zero length data message may be\ninterpreted as an empty object. For example, transmitting the number zero as a\nprotobuf message ends up with a data length of zero, but the message is still\nconsidered data and should be processed.\n\n#### Data Flags\n\n| Flag | Name            | Description                       |\n|------|-----------------|-----------------------------------|\n| 0x01 | `remote closed` | No more data expected from remote |\n| 0x04 | `no data`       | This message does not have data   |\n\n## Streaming\n\nAll ttrpc requests use streams to transfer data. Unary streams will only have\ntwo messages sent per stream, a request from a client and a response from the\nserver. Non-unary streams, however, may send any numbers of messages from the\nclient and the server. This makes stream management more complicated than unary\nstreams since both client and server need to track additional state. To keep\nthis management as simple as possible, ttrpc minimizes the number of states and\nuses two flags instead of control frames. Each stream has two states while a\nstream is still alive: `local closed` and `remote closed`. Each peer considers\nlocal and remote from their own perspective and sets flags from the other peer's\nperspective. For example, if a client sends a data frame with the\n`remote closed` flag, that is indicating that the client is now `local closed`\nand the server will be `remote closed`. A unary operation does not need to send\nthese flags since each received message always indicates `remote closed`. Once a\npeer is both `local closed` and `remote closed`, the stream is considered\nfinished and may be cleaned up.\n\nDue to the asymmetric nature of the current protocol, a client should\nalways be in the `local closed` state before `remote closed` and a server should\nalways be in the `remote closed` state before `local closed`. This happens\nbecause the client is always initiating requests and a client always expects a\nfinal response back from a server to indicate the initiated request has been\nfulfilled. This may mean server sends a final empty response to finish a stream\neven after it has already completed sending data before the client.\n\n### Unary State Diagram\n\n         +--------+                                    +--------+\n         | Client |                                    | Server |\n         +---+----+                                    +----+---+\n             |               +---------+                    |\n      local  >---------------+ Request +--------------------> remote\n      closed |               +---------+                    | closed\n             |                                              |\n             |              +----------+                    |\n    finished <--------------+ Response +--------------------< finished\n             |              +----------+                    |\n             |                                              |\n\n### Non-Unary State Diagrams\n\nRC: `remote closed` flag\nRO: `remote open` flag\n\n         +--------+                                    +--------+\n         | Client |                                    | Server |\n         +---+----+                                    +----+---+\n             |             +--------------+                 |\n             >-------------+ Request [RO] +----------------->\n             |             +--------------+                 |\n             |                                              |\n             |                 +------+                     |\n             >-----------------+ Data +--------------------->\n             |                 +------+                     |\n             |                                              |\n             |               +-----------+                  |\n      local  >---------------+ Data [RC] +------------------> remote\n      closed |               +-----------+                  | closed\n             |                                              |\n             |              +----------+                    |\n    finished <--------------+ Response +--------------------< finished\n             |              +----------+                    |\n             |                                              |\n\n         +--------+                                    +--------+\n         | Client |                                    | Server |\n         +---+----+                                    +----+---+\n             |             +--------------+                 |\n      local  >-------------+ Request [RC] +-----------------> remote\n      closed |             +--------------+                 | closed\n             |                                              |\n             |                 +------+                     |\n             <-----------------+ Data +---------------------<\n             |                 +------+                     |\n             |                                              |\n             |               +-----------+                  |\n    finished <---------------+ Data [RC] +------------------< finished\n             |               +-----------+                  |\n             |                                              |\n\n         +--------+                                    +--------+\n         | Client |                                    | Server |\n         +---+----+                                    +----+---+\n             |             +--------------+                 |\n             >-------------+ Request [RO] +----------------->\n             |             +--------------+                 |\n             |                                              |\n             |                 +------+                     |\n             >-----------------+ Data +--------------------->\n             |                 +------+                     |\n             |                                              |\n             |                 +------+                     |\n             <-----------------+ Data +---------------------<\n             |                 +------+                     |\n             |                                              |\n             |                 +------+                     |\n             >-----------------+ Data +--------------------->\n             |                 +------+                     |\n             |                                              |\n             |               +-----------+                  |\n      local  >---------------+ Data [RC] +------------------> remote\n      closed |               +-----------+                  | closed\n             |                                              |\n             |                 +------+                     |\n             <-----------------+ Data +---------------------<\n             |                 +------+                     |\n             |                                              |\n             |               +-----------+                  |\n    finished <---------------+ Data [RC] +------------------< finished\n             |               +-----------+                  |\n             |                                              |\n\n## RPC\n\nWhile this protocol is defined primarily to support Remote Procedure Calls, the\nprotocol does not define the request and response types beyond the messages\ndefined in the protocol. The implementation provides a default protobuf\ndefinition of request and response which may be used for cross language rpc.\nAll implementations should at least define a request type which support\nrouting by procedure name and a response type which supports call status.\n\n## Version History\n\n| Version | Features            |\n|---------|---------------------|\n| 1.0     | Unary requests only |\n| 1.2     | Streaming support   |\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/Protobuild.toml",
    "content": "version = \"2\"\ngenerators = [\"go\"]\n\n# Control protoc include paths. Below are usually some good defaults, but feel\n# free to try it without them if it works for your project.\n[includes]\n  # Include paths that will be added before all others. Typically, you want to\n  # treat the root of the project as an include, but this may not be necessary.\n  before = [\".\"]\n\n  # Paths that will be added untouched to the end of the includes. We use\n  # `/usr/local/include` to pickup the common install location of protobuf.\n  # This is the default.\n  after = [\"/usr/local/include\"]\n\n# This section maps protobuf imports to Go packages. These will become\n# `-M` directives in the call to the go protobuf generator.\n[packages]\n  \"google/protobuf/any.proto\" = \"github.com/gogo/protobuf/types\"\n  \"proto/status.proto\" = \"google.golang.org/genproto/googleapis/rpc/status\"\n\n[[overrides]]\n# enable ttrpc and disable fieldpath and grpc for the shim\nprefixes = [\"github.com/containerd/ttrpc/integration/streaming\"]\ngenerators = [\"go\", \"go-ttrpc\"]\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/README.md",
    "content": "# ttrpc\n\n[![Build Status](https://github.com/containerd/ttrpc/workflows/CI/badge.svg)](https://github.com/containerd/ttrpc/actions?query=workflow%3ACI)\n[![codecov](https://codecov.io/gh/containerd/ttrpc/branch/main/graph/badge.svg)](https://codecov.io/gh/containerd/ttrpc)\n\nGRPC for low-memory environments.\n\nThe existing grpc-go project requires a lot of memory overhead for importing\npackages and at runtime. While this is great for many services with low density\nrequirements, this can be a problem when running a large number of services on\na single machine or on a machine with a small amount of memory.\n\nUsing the same GRPC definitions, this project reduces the binary size and\nprotocol overhead required. We do this by eliding the `net/http`, `net/http2`\nand `grpc` package used by grpc replacing it with a lightweight framing\nprotocol. The result are smaller binaries that use less resident memory with\nthe same ease of use as GRPC.\n\nPlease note that while this project supports generating either end of the\nprotocol, the generated service definitions will be incompatible with regular\nGRPC services, as they do not speak the same protocol.\n\n# Protocol\n\nSee the [protocol specification](./PROTOCOL.md).\n\n# Usage\n\nCreate a gogo vanity binary (see\n[`cmd/protoc-gen-gogottrpc/main.go`](cmd/protoc-gen-gogottrpc/main.go) for an\nexample with the ttrpc plugin enabled.\n\nIt's recommended to use [`protobuild`](https://github.com//stevvooe/protobuild)\nto build the protobufs for this project, but this will work with protoc\ndirectly, if required.\n\n# Differences from GRPC\n\n- The protocol stack has been replaced with a lighter protocol that doesn't\n  require http, http2 and tls.\n- The client and server interface are identical whereas in GRPC there is a\n  client and server interface that are different.\n- The Go stdlib context package is used instead.\n- No support for streams yet.\n\n# Status\n\nTODO:\n\n- [ ] Add testing under concurrent load to ensure\n- [ ] Verify connection error handling\n\n# Project details\n\nttrpc is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).\nAs a containerd sub-project, you will find the:\n * [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),\n * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),\n * and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)\n\ninformation in our [`containerd/project`](https://github.com/containerd/project) repository.\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/channel.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"bufio\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/status\"\n)\n\nconst (\n\tmessageHeaderLength = 10\n\tmessageLengthMax    = 4 << 20\n)\n\ntype messageType uint8\n\nconst (\n\tmessageTypeRequest  messageType = 0x1\n\tmessageTypeResponse messageType = 0x2\n\tmessageTypeData     messageType = 0x3\n)\n\nfunc (mt messageType) String() string {\n\tswitch mt {\n\tcase messageTypeRequest:\n\t\treturn \"request\"\n\tcase messageTypeResponse:\n\t\treturn \"response\"\n\tcase messageTypeData:\n\t\treturn \"data\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\nconst (\n\tflagRemoteClosed uint8 = 0x1\n\tflagRemoteOpen   uint8 = 0x2\n\tflagNoData       uint8 = 0x4\n)\n\n// messageHeader represents the fixed-length message header of 10 bytes sent\n// with every request.\ntype messageHeader struct {\n\tLength   uint32      // length excluding this header. b[:4]\n\tStreamID uint32      // identifies which request stream message is a part of. b[4:8]\n\tType     messageType // message type b[8]\n\tFlags    uint8       // type specific flags b[9]\n}\n\nfunc readMessageHeader(p []byte, r io.Reader) (messageHeader, error) {\n\t_, err := io.ReadFull(r, p[:messageHeaderLength])\n\tif err != nil {\n\t\treturn messageHeader{}, err\n\t}\n\n\treturn messageHeader{\n\t\tLength:   binary.BigEndian.Uint32(p[:4]),\n\t\tStreamID: binary.BigEndian.Uint32(p[4:8]),\n\t\tType:     messageType(p[8]),\n\t\tFlags:    p[9],\n\t}, nil\n}\n\nfunc writeMessageHeader(w io.Writer, p []byte, mh messageHeader) error {\n\tbinary.BigEndian.PutUint32(p[:4], mh.Length)\n\tbinary.BigEndian.PutUint32(p[4:8], mh.StreamID)\n\tp[8] = byte(mh.Type)\n\tp[9] = mh.Flags\n\n\t_, err := w.Write(p[:])\n\treturn err\n}\n\nvar buffers sync.Pool\n\ntype channel struct {\n\tconn  net.Conn\n\tbw    *bufio.Writer\n\tbr    *bufio.Reader\n\thrbuf [messageHeaderLength]byte // avoid alloc when reading header\n\thwbuf [messageHeaderLength]byte\n}\n\nfunc newChannel(conn net.Conn) *channel {\n\treturn &channel{\n\t\tconn: conn,\n\t\tbw:   bufio.NewWriter(conn),\n\t\tbr:   bufio.NewReader(conn),\n\t}\n}\n\n// recv a message from the channel. The returned buffer contains the message.\n//\n// If a valid grpc status is returned, the message header\n// returned will be valid and caller should send that along to\n// the correct consumer. The bytes on the underlying channel\n// will be discarded.\nfunc (ch *channel) recv() (messageHeader, []byte, error) {\n\tmh, err := readMessageHeader(ch.hrbuf[:], ch.br)\n\tif err != nil {\n\t\treturn messageHeader{}, nil, err\n\t}\n\n\tif mh.Length > uint32(messageLengthMax) {\n\t\tif _, err := ch.br.Discard(int(mh.Length)); err != nil {\n\t\t\treturn mh, nil, fmt.Errorf(\"failed to discard after receiving oversized message: %w\", err)\n\t\t}\n\n\t\treturn mh, nil, status.Errorf(codes.ResourceExhausted, \"message length %v exceed maximum message size of %v\", mh.Length, messageLengthMax)\n\t}\n\n\tvar p []byte\n\tif mh.Length > 0 {\n\t\tp = ch.getmbuf(int(mh.Length))\n\t\tif _, err := io.ReadFull(ch.br, p); err != nil {\n\t\t\treturn messageHeader{}, nil, fmt.Errorf(\"failed reading message: %w\", err)\n\t\t}\n\t}\n\n\treturn mh, p, nil\n}\n\nfunc (ch *channel) send(streamID uint32, t messageType, flags uint8, p []byte) error {\n\t// TODO: Error on send rather than on recv\n\t//if len(p) > messageLengthMax {\n\t//\treturn status.Errorf(codes.InvalidArgument, \"refusing to send, message length %v exceed maximum message size of %v\", len(p), messageLengthMax)\n\t//}\n\tif err := writeMessageHeader(ch.bw, ch.hwbuf[:], messageHeader{Length: uint32(len(p)), StreamID: streamID, Type: t, Flags: flags}); err != nil {\n\t\treturn err\n\t}\n\n\tif len(p) > 0 {\n\t\t_, err := ch.bw.Write(p)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn ch.bw.Flush()\n}\n\nfunc (ch *channel) getmbuf(size int) []byte {\n\t// we can't use the standard New method on pool because we want to allocate\n\t// based on size.\n\tb, ok := buffers.Get().(*[]byte)\n\tif !ok || cap(*b) < size {\n\t\t// TODO(stevvooe): It may be better to allocate these in fixed length\n\t\t// buckets to reduce fragmentation but its not clear that would help\n\t\t// with performance. An ilogb approach or similar would work well.\n\t\tbb := make([]byte, size)\n\t\tb = &bb\n\t} else {\n\t\t*b = (*b)[:size]\n\t}\n\treturn *b\n}\n\nfunc (ch *channel) putmbuf(p []byte) {\n\tbuffers.Put(&p)\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/client.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/sirupsen/logrus\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// Client for a ttrpc server\ntype Client struct {\n\tcodec   codec\n\tconn    net.Conn\n\tchannel *channel\n\n\tstreamLock   sync.RWMutex\n\tstreams      map[streamID]*stream\n\tnextStreamID streamID\n\tsendLock     sync.Mutex\n\n\tctx    context.Context\n\tclosed func()\n\n\tcloseOnce       sync.Once\n\tuserCloseFunc   func()\n\tuserCloseWaitCh chan struct{}\n\n\tinterceptor UnaryClientInterceptor\n}\n\n// ClientOpts configures a client\ntype ClientOpts func(c *Client)\n\n// WithOnClose sets the close func whenever the client's Close() method is called\nfunc WithOnClose(onClose func()) ClientOpts {\n\treturn func(c *Client) {\n\t\tc.userCloseFunc = onClose\n\t}\n}\n\n// WithUnaryClientInterceptor sets the provided client interceptor\nfunc WithUnaryClientInterceptor(i UnaryClientInterceptor) ClientOpts {\n\treturn func(c *Client) {\n\t\tc.interceptor = i\n\t}\n}\n\n// NewClient creates a new ttrpc client using the given connection\nfunc NewClient(conn net.Conn, opts ...ClientOpts) *Client {\n\tctx, cancel := context.WithCancel(context.Background())\n\tchannel := newChannel(conn)\n\tc := &Client{\n\t\tcodec:           codec{},\n\t\tconn:            conn,\n\t\tchannel:         channel,\n\t\tstreams:         make(map[streamID]*stream),\n\t\tnextStreamID:    1,\n\t\tclosed:          cancel,\n\t\tctx:             ctx,\n\t\tuserCloseFunc:   func() {},\n\t\tuserCloseWaitCh: make(chan struct{}),\n\t\tinterceptor:     defaultClientInterceptor,\n\t}\n\n\tfor _, o := range opts {\n\t\to(c)\n\t}\n\n\tgo c.run()\n\treturn c\n}\n\nfunc (c *Client) send(sid uint32, mt messageType, flags uint8, b []byte) error {\n\tc.sendLock.Lock()\n\tdefer c.sendLock.Unlock()\n\treturn c.channel.send(sid, mt, flags, b)\n}\n\n// Call makes a unary request and returns with response\nfunc (c *Client) Call(ctx context.Context, service, method string, req, resp interface{}) error {\n\tpayload, err := c.codec.Marshal(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar (\n\t\tcreq = &Request{\n\t\t\tService: service,\n\t\t\tMethod:  method,\n\t\t\tPayload: payload,\n\t\t\t// TODO: metadata from context\n\t\t}\n\n\t\tcresp = &Response{}\n\t)\n\n\tif metadata, ok := GetMetadata(ctx); ok {\n\t\tmetadata.setRequest(creq)\n\t}\n\n\tif dl, ok := ctx.Deadline(); ok {\n\t\tcreq.TimeoutNano = time.Until(dl).Nanoseconds()\n\t}\n\n\tinfo := &UnaryClientInfo{\n\t\tFullMethod: fullPath(service, method),\n\t}\n\tif err := c.interceptor(ctx, creq, cresp, info, c.dispatch); err != nil {\n\t\treturn err\n\t}\n\n\tif err := c.codec.Unmarshal(cresp.Payload, resp); err != nil {\n\t\treturn err\n\t}\n\n\tif cresp.Status != nil && cresp.Status.Code != int32(codes.OK) {\n\t\treturn status.ErrorProto(cresp.Status)\n\t}\n\treturn nil\n}\n\n// StreamDesc describes the stream properties, whether the stream has\n// a streaming client, a streaming server, or both\ntype StreamDesc struct {\n\tStreamingClient bool\n\tStreamingServer bool\n}\n\n// ClientStream is used to send or recv messages on the underlying stream\ntype ClientStream interface {\n\tCloseSend() error\n\tSendMsg(m interface{}) error\n\tRecvMsg(m interface{}) error\n}\n\ntype clientStream struct {\n\tctx          context.Context\n\ts            *stream\n\tc            *Client\n\tdesc         *StreamDesc\n\tlocalClosed  bool\n\tremoteClosed bool\n}\n\nfunc (cs *clientStream) CloseSend() error {\n\tif !cs.desc.StreamingClient {\n\t\treturn fmt.Errorf(\"%w: cannot close non-streaming client\", ErrProtocol)\n\t}\n\tif cs.localClosed {\n\t\treturn ErrStreamClosed\n\t}\n\terr := cs.s.send(messageTypeData, flagRemoteClosed|flagNoData, nil)\n\tif err != nil {\n\t\treturn filterCloseErr(err)\n\t}\n\tcs.localClosed = true\n\treturn nil\n}\n\nfunc (cs *clientStream) SendMsg(m interface{}) error {\n\tif !cs.desc.StreamingClient {\n\t\treturn fmt.Errorf(\"%w: cannot send data from non-streaming client\", ErrProtocol)\n\t}\n\tif cs.localClosed {\n\t\treturn ErrStreamClosed\n\t}\n\n\tvar (\n\t\tpayload []byte\n\t\terr     error\n\t)\n\tif m != nil {\n\t\tpayload, err = cs.c.codec.Marshal(m)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\terr = cs.s.send(messageTypeData, 0, payload)\n\tif err != nil {\n\t\treturn filterCloseErr(err)\n\t}\n\n\treturn nil\n}\n\nfunc (cs *clientStream) RecvMsg(m interface{}) error {\n\tif cs.remoteClosed {\n\t\treturn io.EOF\n\t}\n\tselect {\n\tcase <-cs.ctx.Done():\n\t\treturn cs.ctx.Err()\n\tcase msg, ok := <-cs.s.recv:\n\t\tif !ok {\n\t\t\treturn cs.s.recvErr\n\t\t}\n\n\t\tif msg.header.Type == messageTypeResponse {\n\t\t\tresp := &Response{}\n\t\t\terr := proto.Unmarshal(msg.payload[:msg.header.Length], resp)\n\t\t\t// return the payload buffer for reuse\n\t\t\tcs.c.channel.putmbuf(msg.payload)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := cs.c.codec.Unmarshal(resp.Payload, m); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif resp.Status != nil && resp.Status.Code != int32(codes.OK) {\n\t\t\t\treturn status.ErrorProto(resp.Status)\n\t\t\t}\n\n\t\t\tcs.c.deleteStream(cs.s)\n\t\t\tcs.remoteClosed = true\n\n\t\t\treturn nil\n\t\t} else if msg.header.Type == messageTypeData {\n\t\t\tif !cs.desc.StreamingServer {\n\t\t\t\tcs.c.deleteStream(cs.s)\n\t\t\t\tcs.remoteClosed = true\n\t\t\t\treturn fmt.Errorf(\"received data from non-streaming server: %w\", ErrProtocol)\n\t\t\t}\n\t\t\tif msg.header.Flags&flagRemoteClosed == flagRemoteClosed {\n\t\t\t\tcs.c.deleteStream(cs.s)\n\t\t\t\tcs.remoteClosed = true\n\n\t\t\t\tif msg.header.Flags&flagNoData == flagNoData {\n\t\t\t\t\treturn io.EOF\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr := cs.c.codec.Unmarshal(msg.payload[:msg.header.Length], m)\n\t\t\tcs.c.channel.putmbuf(msg.payload)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn fmt.Errorf(\"unexpected %q message received: %w\", msg.header.Type, ErrProtocol)\n\t}\n}\n\n// Close closes the ttrpc connection and underlying connection\nfunc (c *Client) Close() error {\n\tc.closeOnce.Do(func() {\n\t\tc.closed()\n\n\t\tc.conn.Close()\n\t})\n\treturn nil\n}\n\n// UserOnCloseWait is used to blocks untils the user's on-close callback\n// finishes.\nfunc (c *Client) UserOnCloseWait(ctx context.Context) error {\n\tselect {\n\tcase <-c.userCloseWaitCh:\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\t}\n}\n\nfunc (c *Client) run() {\n\terr := c.receiveLoop()\n\tc.Close()\n\tc.cleanupStreams(err)\n\n\tc.userCloseFunc()\n\tclose(c.userCloseWaitCh)\n}\n\nfunc (c *Client) receiveLoop() error {\n\tfor {\n\t\tselect {\n\t\tcase <-c.ctx.Done():\n\t\t\treturn ErrClosed\n\t\tdefault:\n\t\t\tvar (\n\t\t\t\tmsg = &streamMessage{}\n\t\t\t\terr error\n\t\t\t)\n\n\t\t\tmsg.header, msg.payload, err = c.channel.recv()\n\t\t\tif err != nil {\n\t\t\t\t_, ok := status.FromError(err)\n\t\t\t\tif !ok {\n\t\t\t\t\t// treat all errors that are not an rpc status as terminal.\n\t\t\t\t\t// all others poison the connection.\n\t\t\t\t\treturn filterCloseErr(err)\n\t\t\t\t}\n\t\t\t}\n\t\t\tsid := streamID(msg.header.StreamID)\n\t\t\ts := c.getStream(sid)\n\t\t\tif s == nil {\n\t\t\t\tlogrus.WithField(\"stream\", sid).Errorf(\"ttrpc: received message on inactive stream\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\ts.closeWithError(err)\n\t\t\t} else {\n\t\t\t\tif err := s.receive(c.ctx, msg); err != nil {\n\t\t\t\t\tlogrus.WithError(err).WithField(\"stream\", sid).Errorf(\"ttrpc: failed to handle message\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// createStream creates a new stream and registers it with the client\n// Introduce stream types for multiple or single response\nfunc (c *Client) createStream(flags uint8, b []byte) (*stream, error) {\n\tc.streamLock.Lock()\n\n\t// Check if closed since lock acquired to prevent adding\n\t// anything after cleanup completes\n\tselect {\n\tcase <-c.ctx.Done():\n\t\tc.streamLock.Unlock()\n\t\treturn nil, ErrClosed\n\tdefault:\n\t}\n\n\t// Stream ID should be allocated at same time\n\ts := newStream(c.nextStreamID, c)\n\tc.streams[s.id] = s\n\tc.nextStreamID = c.nextStreamID + 2\n\n\tc.sendLock.Lock()\n\tdefer c.sendLock.Unlock()\n\tc.streamLock.Unlock()\n\n\tif err := c.channel.send(uint32(s.id), messageTypeRequest, flags, b); err != nil {\n\t\treturn s, filterCloseErr(err)\n\t}\n\n\treturn s, nil\n}\n\nfunc (c *Client) deleteStream(s *stream) {\n\tc.streamLock.Lock()\n\tdelete(c.streams, s.id)\n\tc.streamLock.Unlock()\n\ts.closeWithError(nil)\n}\n\nfunc (c *Client) getStream(sid streamID) *stream {\n\tc.streamLock.RLock()\n\ts := c.streams[sid]\n\tc.streamLock.RUnlock()\n\treturn s\n}\n\nfunc (c *Client) cleanupStreams(err error) {\n\tc.streamLock.Lock()\n\tdefer c.streamLock.Unlock()\n\n\tfor sid, s := range c.streams {\n\t\ts.closeWithError(err)\n\t\tdelete(c.streams, sid)\n\t}\n}\n\n// filterCloseErr rewrites EOF and EPIPE errors to ErrClosed. Use when\n// returning from call or handling errors from main read loop.\n//\n// This purposely ignores errors with a wrapped cause.\nfunc filterCloseErr(err error) error {\n\tswitch {\n\tcase err == nil:\n\t\treturn nil\n\tcase err == io.EOF:\n\t\treturn ErrClosed\n\tcase errors.Is(err, io.ErrClosedPipe):\n\t\treturn ErrClosed\n\tcase errors.Is(err, io.EOF):\n\t\treturn ErrClosed\n\tcase strings.Contains(err.Error(), \"use of closed network connection\"):\n\t\treturn ErrClosed\n\tdefault:\n\t\t// if we have an epipe on a write or econnreset on a read , we cast to errclosed\n\t\tvar oerr *net.OpError\n\t\tif errors.As(err, &oerr) {\n\t\t\tif (oerr.Op == \"write\" && errors.Is(err, syscall.EPIPE)) ||\n\t\t\t\t(oerr.Op == \"read\" && errors.Is(err, syscall.ECONNRESET)) {\n\t\t\t\treturn ErrClosed\n\t\t\t}\n\t\t}\n\t}\n\n\treturn err\n}\n\n// NewStream creates a new stream with the given stream descriptor to the\n// specified service and method. If not a streaming client, the request object\n// may be provided.\nfunc (c *Client) NewStream(ctx context.Context, desc *StreamDesc, service, method string, req interface{}) (ClientStream, error) {\n\tvar payload []byte\n\tif req != nil {\n\t\tvar err error\n\t\tpayload, err = c.codec.Marshal(req)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\trequest := &Request{\n\t\tService: service,\n\t\tMethod:  method,\n\t\tPayload: payload,\n\t\t// TODO: metadata from context\n\t}\n\tp, err := c.codec.Marshal(request)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar flags uint8\n\tif desc.StreamingClient {\n\t\tflags = flagRemoteOpen\n\t} else {\n\t\tflags = flagRemoteClosed\n\t}\n\ts, err := c.createStream(flags, p)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &clientStream{\n\t\tctx:  ctx,\n\t\ts:    s,\n\t\tc:    c,\n\t\tdesc: desc,\n\t}, nil\n}\n\nfunc (c *Client) dispatch(ctx context.Context, req *Request, resp *Response) error {\n\tp, err := c.codec.Marshal(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts, err := c.createStream(0, p)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer c.deleteStream(s)\n\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tcase <-c.ctx.Done():\n\t\treturn ErrClosed\n\tcase msg, ok := <-s.recv:\n\t\tif !ok {\n\t\t\treturn s.recvErr\n\t\t}\n\n\t\tif msg.header.Type == messageTypeResponse {\n\t\t\terr = proto.Unmarshal(msg.payload[:msg.header.Length], resp)\n\t\t} else {\n\t\t\terr = fmt.Errorf(\"unexpected %q message received: %w\", msg.header.Type, ErrProtocol)\n\t\t}\n\n\t\t// return the payload buffer for reuse\n\t\tc.channel.putmbuf(msg.payload)\n\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/codec.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/proto\"\n)\n\ntype codec struct{}\n\nfunc (c codec) Marshal(msg interface{}) ([]byte, error) {\n\tswitch v := msg.(type) {\n\tcase proto.Message:\n\t\treturn proto.Marshal(v)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ttrpc: cannot marshal unknown type: %T\", msg)\n\t}\n}\n\nfunc (c codec) Unmarshal(p []byte, msg interface{}) error {\n\tswitch v := msg.(type) {\n\tcase proto.Message:\n\t\treturn proto.Unmarshal(p, v)\n\tdefault:\n\t\treturn fmt.Errorf(\"ttrpc: cannot unmarshal into unknown type: %T\", msg)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/config.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport \"errors\"\n\ntype serverConfig struct {\n\thandshaker  Handshaker\n\tinterceptor UnaryServerInterceptor\n}\n\n// ServerOpt for configuring a ttrpc server\ntype ServerOpt func(*serverConfig) error\n\n// WithServerHandshaker can be passed to NewServer to ensure that the\n// handshaker is called before every connection attempt.\n//\n// Only one handshaker is allowed per server.\nfunc WithServerHandshaker(handshaker Handshaker) ServerOpt {\n\treturn func(c *serverConfig) error {\n\t\tif c.handshaker != nil {\n\t\t\treturn errors.New(\"only one handshaker allowed per server\")\n\t\t}\n\t\tc.handshaker = handshaker\n\t\treturn nil\n\t}\n}\n\n// WithUnaryServerInterceptor sets the provided interceptor on the server\nfunc WithUnaryServerInterceptor(i UnaryServerInterceptor) ServerOpt {\n\treturn func(c *serverConfig) error {\n\t\tif c.interceptor != nil {\n\t\t\treturn errors.New(\"only one interceptor allowed per server\")\n\t\t}\n\t\tc.interceptor = i\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/doc.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n/*\npackage ttrpc defines and implements a low level simple transfer protocol\noptimized for low latency and reliable connections between processes on the same\nhost. The protocol uses simple framing for sending requests, responses, and data\nusing multiple streams.\n*/\npackage ttrpc\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/errors.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport \"errors\"\n\nvar (\n\t// ErrProtocol is a general error in the handling the protocol.\n\tErrProtocol = errors.New(\"protocol error\")\n\n\t// ErrClosed is returned by client methods when the underlying connection is\n\t// closed.\n\tErrClosed = errors.New(\"ttrpc: closed\")\n\n\t// ErrServerClosed is returned when the Server has closed its connection.\n\tErrServerClosed = errors.New(\"ttrpc: server closed\")\n\n\t// ErrStreamClosed is when the streaming connection is closed.\n\tErrStreamClosed = errors.New(\"ttrpc: stream closed\")\n)\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/handshake.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"net\"\n)\n\n// Handshaker defines the interface for connection handshakes performed on the\n// server or client when first connecting.\ntype Handshaker interface {\n\t// Handshake should confirm or decorate a connection that may be incoming\n\t// to a server or outgoing from a client.\n\t//\n\t// If this returns without an error, the caller should use the connection\n\t// in place of the original connection.\n\t//\n\t// The second return value can contain credential specific data, such as\n\t// unix socket credentials or TLS information.\n\t//\n\t// While we currently only have implementations on the server-side, this\n\t// interface should be sufficient to implement similar handshakes on the\n\t// client-side.\n\tHandshake(ctx context.Context, conn net.Conn) (net.Conn, interface{}, error)\n}\n\ntype handshakerFunc func(ctx context.Context, conn net.Conn) (net.Conn, interface{}, error)\n\nfunc (fn handshakerFunc) Handshake(ctx context.Context, conn net.Conn) (net.Conn, interface{}, error) {\n\treturn fn(ctx, conn)\n}\n\nfunc noopHandshake(_ context.Context, conn net.Conn) (net.Conn, interface{}, error) {\n\treturn conn, nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/interceptor.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport \"context\"\n\n// UnaryServerInfo provides information about the server request\ntype UnaryServerInfo struct {\n\tFullMethod string\n}\n\n// UnaryClientInfo provides information about the client request\ntype UnaryClientInfo struct {\n\tFullMethod string\n}\n\n// StreamServerInfo provides information about the server request\ntype StreamServerInfo struct {\n\tFullMethod      string\n\tStreamingClient bool\n\tStreamingServer bool\n}\n\n// Unmarshaler contains the server request data and allows it to be unmarshaled\n// into a concrete type\ntype Unmarshaler func(interface{}) error\n\n// Invoker invokes the client's request and response from the ttrpc server\ntype Invoker func(context.Context, *Request, *Response) error\n\n// UnaryServerInterceptor specifies the interceptor function for server request/response\ntype UnaryServerInterceptor func(context.Context, Unmarshaler, *UnaryServerInfo, Method) (interface{}, error)\n\n// UnaryClientInterceptor specifies the interceptor function for client request/response\ntype UnaryClientInterceptor func(context.Context, *Request, *Response, *UnaryClientInfo, Invoker) error\n\nfunc defaultServerInterceptor(ctx context.Context, unmarshal Unmarshaler, _ *UnaryServerInfo, method Method) (interface{}, error) {\n\treturn method(ctx, unmarshal)\n}\n\nfunc defaultClientInterceptor(ctx context.Context, req *Request, resp *Response, _ *UnaryClientInfo, invoker Invoker) error {\n\treturn invoker(ctx, req, resp)\n}\n\ntype StreamServerInterceptor func(context.Context, StreamServer, *StreamServerInfo, StreamHandler) (interface{}, error)\n\nfunc defaultStreamServerInterceptor(ctx context.Context, ss StreamServer, _ *StreamServerInfo, stream StreamHandler) (interface{}, error) {\n\treturn stream(ctx, ss)\n}\n\ntype StreamClientInterceptor func(context.Context)\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/metadata.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"strings\"\n)\n\n// MD is the user type for ttrpc metadata\ntype MD map[string][]string\n\n// Get returns the metadata for a given key when they exist.\n// If there is no metadata, a nil slice and false are returned.\nfunc (m MD) Get(key string) ([]string, bool) {\n\tkey = strings.ToLower(key)\n\tlist, ok := m[key]\n\tif !ok || len(list) == 0 {\n\t\treturn nil, false\n\t}\n\n\treturn list, true\n}\n\n// Set sets the provided values for a given key.\n// The values will overwrite any existing values.\n// If no values provided, a key will be deleted.\nfunc (m MD) Set(key string, values ...string) {\n\tkey = strings.ToLower(key)\n\tif len(values) == 0 {\n\t\tdelete(m, key)\n\t\treturn\n\t}\n\tm[key] = values\n}\n\n// Append appends additional values to the given key.\nfunc (m MD) Append(key string, values ...string) {\n\tkey = strings.ToLower(key)\n\tif len(values) == 0 {\n\t\treturn\n\t}\n\tcurrent, ok := m[key]\n\tif ok {\n\t\tm.Set(key, append(current, values...)...)\n\t} else {\n\t\tm.Set(key, values...)\n\t}\n}\n\nfunc (m MD) setRequest(r *Request) {\n\tfor k, values := range m {\n\t\tfor _, v := range values {\n\t\t\tr.Metadata = append(r.Metadata, &KeyValue{\n\t\t\t\tKey:   k,\n\t\t\t\tValue: v,\n\t\t\t})\n\t\t}\n\t}\n}\n\nfunc (m MD) fromRequest(r *Request) {\n\tfor _, kv := range r.Metadata {\n\t\tm[kv.Key] = append(m[kv.Key], kv.Value)\n\t}\n}\n\ntype metadataKey struct{}\n\n// GetMetadata retrieves metadata from context.Context (previously attached with WithMetadata)\nfunc GetMetadata(ctx context.Context) (MD, bool) {\n\tmetadata, ok := ctx.Value(metadataKey{}).(MD)\n\treturn metadata, ok\n}\n\n// GetMetadataValue gets a specific metadata value by name from context.Context\nfunc GetMetadataValue(ctx context.Context, name string) (string, bool) {\n\tmetadata, ok := GetMetadata(ctx)\n\tif !ok {\n\t\treturn \"\", false\n\t}\n\n\tif list, ok := metadata.Get(name); ok {\n\t\treturn list[0], true\n\t}\n\n\treturn \"\", false\n}\n\n// WithMetadata attaches metadata map to a context.Context\nfunc WithMetadata(ctx context.Context, md MD) context.Context {\n\treturn context.WithValue(ctx, metadataKey{}, md)\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/request.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.27.1\n// \tprotoc        v3.11.4\n// source: github.com/containerd/ttrpc/request.proto\n\npackage ttrpc\n\nimport (\n\tstatus \"google.golang.org/genproto/googleapis/rpc/status\"\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype Request struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tService     string      `protobuf:\"bytes,1,opt,name=service,proto3\" json:\"service,omitempty\"`\n\tMethod      string      `protobuf:\"bytes,2,opt,name=method,proto3\" json:\"method,omitempty\"`\n\tPayload     []byte      `protobuf:\"bytes,3,opt,name=payload,proto3\" json:\"payload,omitempty\"`\n\tTimeoutNano int64       `protobuf:\"varint,4,opt,name=timeout_nano,json=timeoutNano,proto3\" json:\"timeout_nano,omitempty\"`\n\tMetadata    []*KeyValue `protobuf:\"bytes,5,rep,name=metadata,proto3\" json:\"metadata,omitempty\"`\n}\n\nfunc (x *Request) Reset() {\n\t*x = Request{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Request) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Request) ProtoMessage() {}\n\nfunc (x *Request) ProtoReflect() protoreflect.Message {\n\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Request.ProtoReflect.Descriptor instead.\nfunc (*Request) Descriptor() ([]byte, []int) {\n\treturn file_github_com_containerd_ttrpc_request_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Request) GetService() string {\n\tif x != nil {\n\t\treturn x.Service\n\t}\n\treturn \"\"\n}\n\nfunc (x *Request) GetMethod() string {\n\tif x != nil {\n\t\treturn x.Method\n\t}\n\treturn \"\"\n}\n\nfunc (x *Request) GetPayload() []byte {\n\tif x != nil {\n\t\treturn x.Payload\n\t}\n\treturn nil\n}\n\nfunc (x *Request) GetTimeoutNano() int64 {\n\tif x != nil {\n\t\treturn x.TimeoutNano\n\t}\n\treturn 0\n}\n\nfunc (x *Request) GetMetadata() []*KeyValue {\n\tif x != nil {\n\t\treturn x.Metadata\n\t}\n\treturn nil\n}\n\ntype Response struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tStatus  *status.Status `protobuf:\"bytes,1,opt,name=status,proto3\" json:\"status,omitempty\"`\n\tPayload []byte         `protobuf:\"bytes,2,opt,name=payload,proto3\" json:\"payload,omitempty\"`\n}\n\nfunc (x *Response) Reset() {\n\t*x = Response{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Response) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Response) ProtoMessage() {}\n\nfunc (x *Response) ProtoReflect() protoreflect.Message {\n\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Response.ProtoReflect.Descriptor instead.\nfunc (*Response) Descriptor() ([]byte, []int) {\n\treturn file_github_com_containerd_ttrpc_request_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Response) GetStatus() *status.Status {\n\tif x != nil {\n\t\treturn x.Status\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetPayload() []byte {\n\tif x != nil {\n\t\treturn x.Payload\n\t}\n\treturn nil\n}\n\ntype StringList struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tList []string `protobuf:\"bytes,1,rep,name=list,proto3\" json:\"list,omitempty\"`\n}\n\nfunc (x *StringList) Reset() {\n\t*x = StringList{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StringList) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StringList) ProtoMessage() {}\n\nfunc (x *StringList) ProtoReflect() protoreflect.Message {\n\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StringList.ProtoReflect.Descriptor instead.\nfunc (*StringList) Descriptor() ([]byte, []int) {\n\treturn file_github_com_containerd_ttrpc_request_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *StringList) GetList() []string {\n\tif x != nil {\n\t\treturn x.List\n\t}\n\treturn nil\n}\n\ntype KeyValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tKey   string `protobuf:\"bytes,1,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *KeyValue) Reset() {\n\t*x = KeyValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *KeyValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*KeyValue) ProtoMessage() {}\n\nfunc (x *KeyValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_github_com_containerd_ttrpc_request_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use KeyValue.ProtoReflect.Descriptor instead.\nfunc (*KeyValue) Descriptor() ([]byte, []int) {\n\treturn file_github_com_containerd_ttrpc_request_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *KeyValue) GetKey() string {\n\tif x != nil {\n\t\treturn x.Key\n\t}\n\treturn \"\"\n}\n\nfunc (x *KeyValue) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\nvar File_github_com_containerd_ttrpc_request_proto protoreflect.FileDescriptor\n\nvar file_github_com_containerd_ttrpc_request_proto_rawDesc = []byte{\n\t0x0a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,\n\t0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x74, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65,\n\t0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x74, 0x72,\n\t0x70, 0x63, 0x1a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65,\n\t0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06,\n\t0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65,\n\t0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21,\n\t0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x04,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6e,\n\t0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x56,\n\t0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x45,\n\t0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x06, 0x73, 0x74,\n\t0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x53, 0x74, 0x61,\n\t0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70,\n\t0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61,\n\t0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x20, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c,\n\t0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x32, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61,\n\t0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x1d, 0x5a, 0x1b, 0x67,\n\t0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,\n\t0x6e, 0x65, 0x72, 0x64, 0x2f, 0x74, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x33,\n}\n\nvar (\n\tfile_github_com_containerd_ttrpc_request_proto_rawDescOnce sync.Once\n\tfile_github_com_containerd_ttrpc_request_proto_rawDescData = file_github_com_containerd_ttrpc_request_proto_rawDesc\n)\n\nfunc file_github_com_containerd_ttrpc_request_proto_rawDescGZIP() []byte {\n\tfile_github_com_containerd_ttrpc_request_proto_rawDescOnce.Do(func() {\n\t\tfile_github_com_containerd_ttrpc_request_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_ttrpc_request_proto_rawDescData)\n\t})\n\treturn file_github_com_containerd_ttrpc_request_proto_rawDescData\n}\n\nvar file_github_com_containerd_ttrpc_request_proto_msgTypes = make([]protoimpl.MessageInfo, 4)\nvar file_github_com_containerd_ttrpc_request_proto_goTypes = []interface{}{\n\t(*Request)(nil),       // 0: ttrpc.Request\n\t(*Response)(nil),      // 1: ttrpc.Response\n\t(*StringList)(nil),    // 2: ttrpc.StringList\n\t(*KeyValue)(nil),      // 3: ttrpc.KeyValue\n\t(*status.Status)(nil), // 4: Status\n}\nvar file_github_com_containerd_ttrpc_request_proto_depIdxs = []int32{\n\t3, // 0: ttrpc.Request.metadata:type_name -> ttrpc.KeyValue\n\t4, // 1: ttrpc.Response.status:type_name -> Status\n\t2, // [2:2] is the sub-list for method output_type\n\t2, // [2:2] is the sub-list for method input_type\n\t2, // [2:2] is the sub-list for extension type_name\n\t2, // [2:2] is the sub-list for extension extendee\n\t0, // [0:2] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_containerd_ttrpc_request_proto_init() }\nfunc file_github_com_containerd_ttrpc_request_proto_init() {\n\tif File_github_com_containerd_ttrpc_request_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_github_com_containerd_ttrpc_request_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Request); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_github_com_containerd_ttrpc_request_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Response); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_github_com_containerd_ttrpc_request_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StringList); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_github_com_containerd_ttrpc_request_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*KeyValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_containerd_ttrpc_request_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   4,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_containerd_ttrpc_request_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_containerd_ttrpc_request_proto_depIdxs,\n\t\tMessageInfos:      file_github_com_containerd_ttrpc_request_proto_msgTypes,\n\t}.Build()\n\tFile_github_com_containerd_ttrpc_request_proto = out.File\n\tfile_github_com_containerd_ttrpc_request_proto_rawDesc = nil\n\tfile_github_com_containerd_ttrpc_request_proto_goTypes = nil\n\tfile_github_com_containerd_ttrpc_request_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/request.proto",
    "content": "syntax = \"proto3\";\n\npackage ttrpc;\n\nimport \"proto/status.proto\";\n\noption go_package = \"github.com/containerd/ttrpc\";\n\nmessage Request {\n\tstring service = 1;\n\tstring method = 2;\n\tbytes payload = 3;\n\tint64 timeout_nano = 4;\n\trepeated KeyValue metadata = 5;\n}\n\nmessage Response {\n\tStatus status = 1;\n\tbytes payload = 2;\n}\n\nmessage StringList {\n\trepeated string list = 1;\n}\n\nmessage KeyValue {\n\tstring key = 1;\n\tstring value = 2;\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/server.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"math/rand\"\n\t\"net\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/sirupsen/logrus\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/status\"\n)\n\ntype Server struct {\n\tconfig   *serverConfig\n\tservices *serviceSet\n\tcodec    codec\n\n\tmu          sync.Mutex\n\tlisteners   map[net.Listener]struct{}\n\tconnections map[*serverConn]struct{} // all connections to current state\n\tdone        chan struct{}            // marks point at which we stop serving requests\n}\n\nfunc NewServer(opts ...ServerOpt) (*Server, error) {\n\tconfig := &serverConfig{}\n\tfor _, opt := range opts {\n\t\tif err := opt(config); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif config.interceptor == nil {\n\t\tconfig.interceptor = defaultServerInterceptor\n\t}\n\n\treturn &Server{\n\t\tconfig:      config,\n\t\tservices:    newServiceSet(config.interceptor),\n\t\tdone:        make(chan struct{}),\n\t\tlisteners:   make(map[net.Listener]struct{}),\n\t\tconnections: make(map[*serverConn]struct{}),\n\t}, nil\n}\n\n// Register registers a map of methods to method handlers\n// TODO: Remove in 2.0, does not support streams\nfunc (s *Server) Register(name string, methods map[string]Method) {\n\ts.services.register(name, &ServiceDesc{Methods: methods})\n}\n\nfunc (s *Server) RegisterService(name string, desc *ServiceDesc) {\n\ts.services.register(name, desc)\n}\n\nfunc (s *Server) Serve(ctx context.Context, l net.Listener) error {\n\ts.addListener(l)\n\tdefer s.closeListener(l)\n\n\tvar (\n\t\tbackoff    time.Duration\n\t\thandshaker = s.config.handshaker\n\t)\n\n\tif handshaker == nil {\n\t\thandshaker = handshakerFunc(noopHandshake)\n\t}\n\n\tfor {\n\t\tconn, err := l.Accept()\n\t\tif err != nil {\n\t\t\tselect {\n\t\t\tcase <-s.done:\n\t\t\t\treturn ErrServerClosed\n\t\t\tdefault:\n\t\t\t}\n\n\t\t\tif terr, ok := err.(interface {\n\t\t\t\tTemporary() bool\n\t\t\t}); ok && terr.Temporary() {\n\t\t\t\tif backoff == 0 {\n\t\t\t\t\tbackoff = time.Millisecond\n\t\t\t\t} else {\n\t\t\t\t\tbackoff *= 2\n\t\t\t\t}\n\n\t\t\t\tif max := time.Second; backoff > max {\n\t\t\t\t\tbackoff = max\n\t\t\t\t}\n\n\t\t\t\tsleep := time.Duration(rand.Int63n(int64(backoff)))\n\t\t\t\tlogrus.WithError(err).Errorf(\"ttrpc: failed accept; backoff %v\", sleep)\n\t\t\t\ttime.Sleep(sleep)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\treturn err\n\t\t}\n\n\t\tbackoff = 0\n\n\t\tapproved, handshake, err := handshaker.Handshake(ctx, conn)\n\t\tif err != nil {\n\t\t\tlogrus.WithError(err).Errorf(\"ttrpc: refusing connection after handshake\")\n\t\t\tconn.Close()\n\t\t\tcontinue\n\t\t}\n\n\t\tsc := s.newConn(approved, handshake)\n\t\tgo sc.run(ctx)\n\t}\n}\n\nfunc (s *Server) Shutdown(ctx context.Context) error {\n\ts.mu.Lock()\n\tselect {\n\tcase <-s.done:\n\tdefault:\n\t\t// protected by mutex\n\t\tclose(s.done)\n\t}\n\tlnerr := s.closeListeners()\n\ts.mu.Unlock()\n\n\tticker := time.NewTicker(200 * time.Millisecond)\n\tdefer ticker.Stop()\n\tfor {\n\t\tif s.closeIdleConns() {\n\t\t\treturn lnerr\n\t\t}\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-ticker.C:\n\t\t}\n\t}\n}\n\n// Close the server without waiting for active connections.\nfunc (s *Server) Close() error {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tselect {\n\tcase <-s.done:\n\tdefault:\n\t\t// protected by mutex\n\t\tclose(s.done)\n\t}\n\n\terr := s.closeListeners()\n\tfor c := range s.connections {\n\t\tc.close()\n\t\tdelete(s.connections, c)\n\t}\n\n\treturn err\n}\n\nfunc (s *Server) addListener(l net.Listener) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\ts.listeners[l] = struct{}{}\n}\n\nfunc (s *Server) closeListener(l net.Listener) error {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\treturn s.closeListenerLocked(l)\n}\n\nfunc (s *Server) closeListenerLocked(l net.Listener) error {\n\tdefer delete(s.listeners, l)\n\treturn l.Close()\n}\n\nfunc (s *Server) closeListeners() error {\n\tvar err error\n\tfor l := range s.listeners {\n\t\tif cerr := s.closeListenerLocked(l); cerr != nil && err == nil {\n\t\t\terr = cerr\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (s *Server) addConnection(c *serverConn) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\ts.connections[c] = struct{}{}\n}\n\nfunc (s *Server) delConnection(c *serverConn) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tdelete(s.connections, c)\n}\n\nfunc (s *Server) countConnection() int {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\treturn len(s.connections)\n}\n\nfunc (s *Server) closeIdleConns() bool {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tquiescent := true\n\tfor c := range s.connections {\n\t\tst, ok := c.getState()\n\t\tif !ok || st != connStateIdle {\n\t\t\tquiescent = false\n\t\t\tcontinue\n\t\t}\n\t\tc.close()\n\t\tdelete(s.connections, c)\n\t}\n\treturn quiescent\n}\n\ntype connState int\n\nconst (\n\tconnStateActive = iota + 1 // outstanding requests\n\tconnStateIdle              // no requests\n\tconnStateClosed            // closed connection\n)\n\nfunc (cs connState) String() string {\n\tswitch cs {\n\tcase connStateActive:\n\t\treturn \"active\"\n\tcase connStateIdle:\n\t\treturn \"idle\"\n\tcase connStateClosed:\n\t\treturn \"closed\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\nfunc (s *Server) newConn(conn net.Conn, handshake interface{}) *serverConn {\n\tc := &serverConn{\n\t\tserver:    s,\n\t\tconn:      conn,\n\t\thandshake: handshake,\n\t\tshutdown:  make(chan struct{}),\n\t}\n\tc.setState(connStateIdle)\n\ts.addConnection(c)\n\treturn c\n}\n\ntype serverConn struct {\n\tserver    *Server\n\tconn      net.Conn\n\thandshake interface{} // data from handshake, not used for now\n\tstate     atomic.Value\n\n\tshutdownOnce sync.Once\n\tshutdown     chan struct{} // forced shutdown, used by close\n}\n\nfunc (c *serverConn) getState() (connState, bool) {\n\tcs, ok := c.state.Load().(connState)\n\treturn cs, ok\n}\n\nfunc (c *serverConn) setState(newstate connState) {\n\tc.state.Store(newstate)\n}\n\nfunc (c *serverConn) close() error {\n\tc.shutdownOnce.Do(func() {\n\t\tclose(c.shutdown)\n\t})\n\n\treturn nil\n}\n\nfunc (c *serverConn) run(sctx context.Context) {\n\ttype (\n\t\tresponse struct {\n\t\t\tid          uint32\n\t\t\tstatus      *status.Status\n\t\t\tdata        []byte\n\t\t\tcloseStream bool\n\t\t\tstreaming   bool\n\t\t}\n\t)\n\n\tvar (\n\t\tch                     = newChannel(c.conn)\n\t\tctx, cancel            = context.WithCancel(sctx)\n\t\tstate        connState = connStateIdle\n\t\tresponses              = make(chan response)\n\t\trecvErr                = make(chan error, 1)\n\t\tdone                   = make(chan struct{})\n\t\tactive       int32\n\t\tlastStreamID uint32\n\t)\n\n\tdefer c.conn.Close()\n\tdefer cancel()\n\tdefer close(done)\n\tdefer c.server.delConnection(c)\n\n\tsendStatus := func(id uint32, st *status.Status) bool {\n\t\tselect {\n\t\tcase responses <- response{\n\t\t\t// even though we've had an invalid stream id, we send it\n\t\t\t// back on the same stream id so the client knows which\n\t\t\t// stream id was bad.\n\t\t\tid:          id,\n\t\t\tstatus:      st,\n\t\t\tcloseStream: true,\n\t\t}:\n\t\t\treturn true\n\t\tcase <-c.shutdown:\n\t\t\treturn false\n\t\tcase <-done:\n\t\t\treturn false\n\t\t}\n\t}\n\n\tgo func(recvErr chan error) {\n\t\tdefer close(recvErr)\n\t\tstreams := map[uint32]*streamHandler{}\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-c.shutdown:\n\t\t\t\treturn\n\t\t\tcase <-done:\n\t\t\t\treturn\n\t\t\tdefault: // proceed\n\t\t\t}\n\n\t\t\tmh, p, err := ch.recv()\n\t\t\tif err != nil {\n\t\t\t\tstatus, ok := status.FromError(err)\n\t\t\t\tif !ok {\n\t\t\t\t\trecvErr <- err\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// in this case, we send an error for that particular message\n\t\t\t\t// when the status is defined.\n\t\t\t\tif !sendStatus(mh.StreamID, status) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif mh.StreamID%2 != 1 {\n\t\t\t\t// enforce odd client initiated identifiers.\n\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"StreamID must be odd for client initiated streams\")) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif mh.Type == messageTypeData {\n\t\t\t\tsh, ok := streams[mh.StreamID]\n\t\t\t\tif !ok {\n\t\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"StreamID is no longer active\")) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif mh.Flags&flagNoData != flagNoData {\n\t\t\t\t\tunmarshal := func(obj interface{}) error {\n\t\t\t\t\t\terr := protoUnmarshal(p, obj)\n\t\t\t\t\t\tch.putmbuf(p)\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif err := sh.data(unmarshal); err != nil {\n\t\t\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"data handling error: %v\", err)) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif mh.Flags&flagRemoteClosed == flagRemoteClosed {\n\t\t\t\t\tsh.closeSend()\n\t\t\t\t\tif len(p) > 0 {\n\t\t\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"data close message cannot include data\")) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if mh.Type == messageTypeRequest {\n\t\t\t\tif mh.StreamID <= lastStreamID {\n\t\t\t\t\t// enforce odd client initiated identifiers.\n\t\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"StreamID cannot be re-used and must increment\")) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\n\t\t\t\t}\n\t\t\t\tlastStreamID = mh.StreamID\n\n\t\t\t\t// TODO: Make request type configurable\n\t\t\t\t// Unmarshaller which takes in a byte array and returns an interface?\n\t\t\t\tvar req Request\n\t\t\t\tif err := c.server.codec.Unmarshal(p, &req); err != nil {\n\t\t\t\t\tch.putmbuf(p)\n\t\t\t\t\tif !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, \"unmarshal request error: %v\", err)) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tch.putmbuf(p)\n\n\t\t\t\tid := mh.StreamID\n\t\t\t\trespond := func(status *status.Status, data []byte, streaming, closeStream bool) error {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase responses <- response{\n\t\t\t\t\t\tid:          id,\n\t\t\t\t\t\tstatus:      status,\n\t\t\t\t\t\tdata:        data,\n\t\t\t\t\t\tcloseStream: closeStream,\n\t\t\t\t\t\tstreaming:   streaming,\n\t\t\t\t\t}:\n\t\t\t\t\tcase <-done:\n\t\t\t\t\t\treturn ErrClosed\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tsh, err := c.server.services.handle(ctx, &req, respond)\n\t\t\t\tif err != nil {\n\t\t\t\t\tstatus, _ := status.FromError(err)\n\t\t\t\t\tif !sendStatus(mh.StreamID, status) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tstreams[id] = sh\n\t\t\t\tatomic.AddInt32(&active, 1)\n\t\t\t}\n\t\t\t// TODO: else we must ignore this for future compat. log this?\n\t\t}\n\t}(recvErr)\n\n\tfor {\n\t\tvar (\n\t\t\tnewstate connState\n\t\t\tshutdown chan struct{}\n\t\t)\n\n\t\tactiveN := atomic.LoadInt32(&active)\n\t\tif activeN > 0 {\n\t\t\tnewstate = connStateActive\n\t\t\tshutdown = nil\n\t\t} else {\n\t\t\tnewstate = connStateIdle\n\t\t\tshutdown = c.shutdown // only enable this branch in idle mode\n\t\t}\n\t\tif newstate != state {\n\t\t\tc.setState(newstate)\n\t\t\tstate = newstate\n\t\t}\n\n\t\tselect {\n\t\tcase response := <-responses:\n\t\t\tif !response.streaming || response.status.Code() != codes.OK {\n\t\t\t\tp, err := c.server.codec.Marshal(&Response{\n\t\t\t\t\tStatus:  response.status.Proto(),\n\t\t\t\t\tPayload: response.data,\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogrus.WithError(err).Error(\"failed marshaling response\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif err := ch.send(response.id, messageTypeResponse, 0, p); err != nil {\n\t\t\t\t\tlogrus.WithError(err).Error(\"failed sending message on channel\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar flags uint8\n\t\t\t\tif response.closeStream {\n\t\t\t\t\tflags = flagRemoteClosed\n\t\t\t\t}\n\t\t\t\tif response.data == nil {\n\t\t\t\t\tflags = flags | flagNoData\n\t\t\t\t}\n\t\t\t\tif err := ch.send(response.id, messageTypeData, flags, response.data); err != nil {\n\t\t\t\t\tlogrus.WithError(err).Error(\"failed sending message on channel\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif response.closeStream {\n\t\t\t\t// The ttrpc protocol currently does not support the case where\n\t\t\t\t// the server is localClosed but not remoteClosed. Once the server\n\t\t\t\t// is closing, the whole stream may be considered finished\n\t\t\t\tatomic.AddInt32(&active, -1)\n\t\t\t}\n\t\tcase err := <-recvErr:\n\t\t\t// TODO(stevvooe): Not wildly clear what we should do in this\n\t\t\t// branch. Basically, it means that we are no longer receiving\n\t\t\t// requests due to a terminal error.\n\t\t\trecvErr = nil // connection is now \"closing\"\n\t\t\tif err == io.EOF || err == io.ErrUnexpectedEOF {\n\t\t\t\t// The client went away and we should stop processing\n\t\t\t\t// requests, so that the client connection is closed\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tlogrus.WithError(err).Error(\"error receiving message\")\n\t\t\t}\n\t\t\t// else, initiate shutdown\n\t\tcase <-shutdown:\n\t\t\treturn\n\t\t}\n\t}\n}\n\nvar noopFunc = func() {}\n\nfunc getRequestContext(ctx context.Context, req *Request) (retCtx context.Context, cancel func()) {\n\tif len(req.Metadata) > 0 {\n\t\tmd := MD{}\n\t\tmd.fromRequest(req)\n\t\tctx = WithMetadata(ctx, md)\n\t}\n\n\tcancel = noopFunc\n\tif req.TimeoutNano == 0 {\n\t\treturn ctx, cancel\n\t}\n\n\tctx, cancel = context.WithTimeout(ctx, time.Duration(req.TimeoutNano))\n\treturn ctx, cancel\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/services.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"unsafe\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\ntype Method func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error)\n\ntype StreamHandler func(context.Context, StreamServer) (interface{}, error)\n\ntype Stream struct {\n\tHandler         StreamHandler\n\tStreamingClient bool\n\tStreamingServer bool\n}\n\ntype ServiceDesc struct {\n\tMethods map[string]Method\n\tStreams map[string]Stream\n}\n\ntype serviceSet struct {\n\tservices          map[string]*ServiceDesc\n\tunaryInterceptor  UnaryServerInterceptor\n\tstreamInterceptor StreamServerInterceptor\n}\n\nfunc newServiceSet(interceptor UnaryServerInterceptor) *serviceSet {\n\treturn &serviceSet{\n\t\tservices:          make(map[string]*ServiceDesc),\n\t\tunaryInterceptor:  interceptor,\n\t\tstreamInterceptor: defaultStreamServerInterceptor,\n\t}\n}\n\nfunc (s *serviceSet) register(name string, desc *ServiceDesc) {\n\tif _, ok := s.services[name]; ok {\n\t\tpanic(fmt.Errorf(\"duplicate service %v registered\", name))\n\t}\n\n\ts.services[name] = desc\n}\n\nfunc (s *serviceSet) unaryCall(ctx context.Context, method Method, info *UnaryServerInfo, data []byte) (p []byte, st *status.Status) {\n\tunmarshal := func(obj interface{}) error {\n\t\treturn protoUnmarshal(data, obj)\n\t}\n\n\tresp, err := s.unaryInterceptor(ctx, unmarshal, info, method)\n\tif err == nil {\n\t\tif isNil(resp) {\n\t\t\terr = errors.New(\"ttrpc: marshal called with nil\")\n\t\t} else {\n\t\t\tp, err = protoMarshal(resp)\n\t\t}\n\t}\n\n\tst, ok := status.FromError(err)\n\tif !ok {\n\t\tst = status.New(convertCode(err), err.Error())\n\t}\n\n\treturn p, st\n}\n\nfunc (s *serviceSet) streamCall(ctx context.Context, stream StreamHandler, info *StreamServerInfo, ss StreamServer) (p []byte, st *status.Status) {\n\tresp, err := s.streamInterceptor(ctx, ss, info, stream)\n\tif err == nil {\n\t\tp, err = protoMarshal(resp)\n\t}\n\tst, ok := status.FromError(err)\n\tif !ok {\n\t\tst = status.New(convertCode(err), err.Error())\n\t}\n\treturn\n}\n\nfunc (s *serviceSet) handle(ctx context.Context, req *Request, respond func(*status.Status, []byte, bool, bool) error) (*streamHandler, error) {\n\tsrv, ok := s.services[req.Service]\n\tif !ok {\n\t\treturn nil, status.Errorf(codes.Unimplemented, \"service %v\", req.Service)\n\t}\n\n\tif method, ok := srv.Methods[req.Method]; ok {\n\t\tgo func() {\n\t\t\tctx, cancel := getRequestContext(ctx, req)\n\t\t\tdefer cancel()\n\n\t\t\tinfo := &UnaryServerInfo{\n\t\t\t\tFullMethod: fullPath(req.Service, req.Method),\n\t\t\t}\n\t\t\tp, st := s.unaryCall(ctx, method, info, req.Payload)\n\n\t\t\trespond(st, p, false, true)\n\t\t}()\n\t\treturn nil, nil\n\t}\n\tif stream, ok := srv.Streams[req.Method]; ok {\n\t\tctx, cancel := getRequestContext(ctx, req)\n\t\tinfo := &StreamServerInfo{\n\t\t\tFullMethod:      fullPath(req.Service, req.Method),\n\t\t\tStreamingClient: stream.StreamingClient,\n\t\t\tStreamingServer: stream.StreamingServer,\n\t\t}\n\t\tsh := &streamHandler{\n\t\t\tctx:     ctx,\n\t\t\trespond: respond,\n\t\t\trecv:    make(chan Unmarshaler, 5),\n\t\t\tinfo:    info,\n\t\t}\n\t\tgo func() {\n\t\t\tdefer cancel()\n\t\t\tp, st := s.streamCall(ctx, stream.Handler, info, sh)\n\t\t\trespond(st, p, stream.StreamingServer, true)\n\t\t}()\n\n\t\tif req.Payload != nil {\n\t\t\tunmarshal := func(obj interface{}) error {\n\t\t\t\treturn protoUnmarshal(req.Payload, obj)\n\t\t\t}\n\t\t\tif err := sh.data(unmarshal); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\treturn sh, nil\n\t}\n\treturn nil, status.Errorf(codes.Unimplemented, \"method %v\", req.Method)\n}\n\ntype streamHandler struct {\n\tctx     context.Context\n\trespond func(*status.Status, []byte, bool, bool) error\n\trecv    chan Unmarshaler\n\tinfo    *StreamServerInfo\n\n\tremoteClosed bool\n\tlocalClosed  bool\n}\n\nfunc (s *streamHandler) closeSend() {\n\tif !s.remoteClosed {\n\t\ts.remoteClosed = true\n\t\tclose(s.recv)\n\t}\n}\n\nfunc (s *streamHandler) data(unmarshal Unmarshaler) error {\n\tif s.remoteClosed {\n\t\treturn ErrStreamClosed\n\t}\n\tselect {\n\tcase s.recv <- unmarshal:\n\t\treturn nil\n\tcase <-s.ctx.Done():\n\t\treturn s.ctx.Err()\n\t}\n}\n\nfunc (s *streamHandler) SendMsg(m interface{}) error {\n\tif s.localClosed {\n\t\treturn ErrStreamClosed\n\t}\n\tp, err := protoMarshal(m)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.respond(nil, p, true, false)\n}\n\nfunc (s *streamHandler) RecvMsg(m interface{}) error {\n\tselect {\n\tcase unmarshal, ok := <-s.recv:\n\t\tif !ok {\n\t\t\treturn io.EOF\n\t\t}\n\t\treturn unmarshal(m)\n\tcase <-s.ctx.Done():\n\t\treturn s.ctx.Err()\n\n\t}\n}\n\nfunc protoUnmarshal(p []byte, obj interface{}) error {\n\tswitch v := obj.(type) {\n\tcase proto.Message:\n\t\tif err := proto.Unmarshal(p, v); err != nil {\n\t\t\treturn status.Errorf(codes.Internal, \"ttrpc: error unmarshalling payload: %v\", err.Error())\n\t\t}\n\tdefault:\n\t\treturn status.Errorf(codes.Internal, \"ttrpc: error unsupported request type: %T\", v)\n\t}\n\treturn nil\n}\n\nfunc protoMarshal(obj interface{}) ([]byte, error) {\n\tif obj == nil {\n\t\treturn nil, nil\n\t}\n\n\tswitch v := obj.(type) {\n\tcase proto.Message:\n\t\tr, err := proto.Marshal(v)\n\t\tif err != nil {\n\t\t\treturn nil, status.Errorf(codes.Internal, \"ttrpc: error marshaling payload: %v\", err.Error())\n\t\t}\n\n\t\treturn r, nil\n\tdefault:\n\t\treturn nil, status.Errorf(codes.Internal, \"ttrpc: error unsupported response type: %T\", v)\n\t}\n}\n\n// convertCode maps stdlib go errors into grpc space.\n//\n// This is ripped from the grpc-go code base.\nfunc convertCode(err error) codes.Code {\n\tswitch err {\n\tcase nil:\n\t\treturn codes.OK\n\tcase io.EOF:\n\t\treturn codes.OutOfRange\n\tcase io.ErrClosedPipe, io.ErrNoProgress, io.ErrShortBuffer, io.ErrShortWrite, io.ErrUnexpectedEOF:\n\t\treturn codes.FailedPrecondition\n\tcase os.ErrInvalid:\n\t\treturn codes.InvalidArgument\n\tcase context.Canceled:\n\t\treturn codes.Canceled\n\tcase context.DeadlineExceeded:\n\t\treturn codes.DeadlineExceeded\n\t}\n\tswitch {\n\tcase os.IsExist(err):\n\t\treturn codes.AlreadyExists\n\tcase os.IsNotExist(err):\n\t\treturn codes.NotFound\n\tcase os.IsPermission(err):\n\t\treturn codes.PermissionDenied\n\t}\n\treturn codes.Unknown\n}\n\nfunc fullPath(service, method string) string {\n\treturn \"/\" + path.Join(service, method)\n}\n\nfunc isNil(resp interface{}) bool {\n\treturn (*[2]uintptr)(unsafe.Pointer(&resp))[1] == 0\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/stream.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"sync\"\n)\n\ntype streamID uint32\n\ntype streamMessage struct {\n\theader  messageHeader\n\tpayload []byte\n}\n\ntype stream struct {\n\tid     streamID\n\tsender sender\n\trecv   chan *streamMessage\n\n\tcloseOnce sync.Once\n\trecvErr   error\n}\n\nfunc newStream(id streamID, send sender) *stream {\n\treturn &stream{\n\t\tid:     id,\n\t\tsender: send,\n\t\trecv:   make(chan *streamMessage, 1),\n\t}\n}\n\nfunc (s *stream) closeWithError(err error) error {\n\ts.closeOnce.Do(func() {\n\t\tif s.recv != nil {\n\t\t\tclose(s.recv)\n\t\t\tif err != nil {\n\t\t\t\ts.recvErr = err\n\t\t\t} else {\n\t\t\t\ts.recvErr = ErrClosed\n\t\t\t}\n\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (s *stream) send(mt messageType, flags uint8, b []byte) error {\n\treturn s.sender.send(uint32(s.id), mt, flags, b)\n}\n\nfunc (s *stream) receive(ctx context.Context, msg *streamMessage) error {\n\tif s.recvErr != nil {\n\t\treturn s.recvErr\n\t}\n\tselect {\n\tcase s.recv <- msg:\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\t}\n}\n\ntype sender interface {\n\tsend(uint32, messageType, uint8, []byte) error\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/stream_server.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\ntype StreamServer interface {\n\tSendMsg(m interface{}) error\n\tRecvMsg(m interface{}) error\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/test.proto",
    "content": "syntax = \"proto3\";\n\npackage ttrpc;\n\noption go_package = \"github.com/containerd/ttrpc/internal\";\n\nmessage TestPayload {\n\tstring foo = 1;\n\tint64 deadline = 2;\n\tstring metadata = 3;\n}\n\nmessage EchoPayload {\n\tint64 seq = 1;\n\tstring msg = 2;\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/ttrpc/unixcreds_linux.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage ttrpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"syscall\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\ntype UnixCredentialsFunc func(*unix.Ucred) error\n\nfunc (fn UnixCredentialsFunc) Handshake(_ context.Context, conn net.Conn) (net.Conn, interface{}, error) {\n\tuc, err := requireUnixSocket(conn)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"ttrpc.UnixCredentialsFunc: require unix socket: %w\", err)\n\t}\n\n\trs, err := uc.SyscallConn()\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"ttrpc.UnixCredentialsFunc: (net.UnixConn).SyscallConn failed: %w\", err)\n\t}\n\tvar (\n\t\tucred    *unix.Ucred\n\t\tucredErr error\n\t)\n\tif err := rs.Control(func(fd uintptr) {\n\t\tucred, ucredErr = unix.GetsockoptUcred(int(fd), unix.SOL_SOCKET, unix.SO_PEERCRED)\n\t}); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"ttrpc.UnixCredentialsFunc: (*syscall.RawConn).Control failed: %w\", err)\n\t}\n\n\tif ucredErr != nil {\n\t\treturn nil, nil, fmt.Errorf(\"ttrpc.UnixCredentialsFunc: failed to retrieve socket peer credentials: %w\", ucredErr)\n\t}\n\n\tif err := fn(ucred); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"ttrpc.UnixCredentialsFunc: credential check failed: %w\", err)\n\t}\n\n\treturn uc, ucred, nil\n}\n\n// UnixSocketRequireUidGid requires specific *effective* UID/GID, rather than the real UID/GID.\n//\n// For example, if a daemon binary is owned by the root (UID 0) with SUID bit but running as an\n// unprivileged user (UID 1001), the effective UID becomes 0, and the real UID becomes 1001.\n// So calling this function with uid=0 allows a connection from effective UID 0 but rejects\n// a connection from effective UID 1001.\n//\n// See socket(7), SO_PEERCRED: \"The returned credentials are those that were in effect at the time of the call to connect(2) or socketpair(2).\"\nfunc UnixSocketRequireUidGid(uid, gid int) UnixCredentialsFunc {\n\treturn func(ucred *unix.Ucred) error {\n\t\treturn requireUidGid(ucred, uid, gid)\n\t}\n}\n\nfunc UnixSocketRequireRoot() UnixCredentialsFunc {\n\treturn UnixSocketRequireUidGid(0, 0)\n}\n\n// UnixSocketRequireSameUser resolves the current effective unix user and returns a\n// UnixCredentialsFunc that will validate incoming unix connections against the\n// current credentials.\n//\n// This is useful when using abstract sockets that are accessible by all users.\nfunc UnixSocketRequireSameUser() UnixCredentialsFunc {\n\teuid, egid := os.Geteuid(), os.Getegid()\n\treturn UnixSocketRequireUidGid(euid, egid)\n}\n\nfunc requireUidGid(ucred *unix.Ucred, uid, gid int) error {\n\tif (uid != -1 && uint32(uid) != ucred.Uid) || (gid != -1 && uint32(gid) != ucred.Gid) {\n\t\treturn fmt.Errorf(\"ttrpc: invalid credentials: %v\", syscall.EPERM)\n\t}\n\treturn nil\n}\n\nfunc requireUnixSocket(conn net.Conn) (*net.UnixConn, error) {\n\tuc, ok := conn.(*net.UnixConn)\n\tif !ok {\n\t\treturn nil, errors.New(\"a unix socket connection is required\")\n\t}\n\n\treturn uc, nil\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/LICENSE",
    "content": "ISC License\n\nCopyright (c) 2012-2016 Dave Collins <dave@davec.name>\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypass.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is not running on Google App Engine, compiled by GopherJS, and\n// \"-tags safe\" is not added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// Go versions prior to 1.4 are disabled because they use a different layout\n// for interfaces which make the implementation of unsafeReflectValue more complex.\n// +build !js,!appengine,!safe,!disableunsafe,go1.4\n\npackage spew\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = false\n\n\t// ptrSize is the size of a pointer on the current arch.\n\tptrSize = unsafe.Sizeof((*byte)(nil))\n)\n\ntype flag uintptr\n\nvar (\n\t// flagRO indicates whether the value field of a reflect.Value\n\t// is read-only.\n\tflagRO flag\n\n\t// flagAddr indicates whether the address of the reflect.Value's\n\t// value may be taken.\n\tflagAddr flag\n)\n\n// flagKindMask holds the bits that make up the kind\n// part of the flags field. In all the supported versions,\n// it is in the lower 5 bits.\nconst flagKindMask = flag(0x1f)\n\n// Different versions of Go have used different\n// bit layouts for the flags type. This table\n// records the known combinations.\nvar okFlags = []struct {\n\tro, addr flag\n}{{\n\t// From Go 1.4 to 1.5\n\tro:   1 << 5,\n\taddr: 1 << 7,\n}, {\n\t// Up to Go tip.\n\tro:   1<<5 | 1<<6,\n\taddr: 1 << 8,\n}}\n\nvar flagValOffset = func() uintptr {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\treturn field.Offset\n}()\n\n// flagField returns a pointer to the flag field of a reflect.Value.\nfunc flagField(v *reflect.Value) *flag {\n\treturn (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset))\n}\n\n// unsafeReflectValue converts the passed reflect.Value into a one that bypasses\n// the typical safety restrictions preventing access to unaddressable and\n// unexported data.  It works by digging the raw pointer to the underlying\n// value out of the protected value and generating a new unprotected (unsafe)\n// reflect.Value to it.\n//\n// This allows us to check for implementations of the Stringer and error\n// interfaces to be used for pretty printing ordinarily unaddressable and\n// inaccessible values such as unexported struct fields.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\tif !v.IsValid() || (v.CanInterface() && v.CanAddr()) {\n\t\treturn v\n\t}\n\tflagFieldPtr := flagField(&v)\n\t*flagFieldPtr &^= flagRO\n\t*flagFieldPtr |= flagAddr\n\treturn v\n}\n\n// Sanity checks against future reflect package changes\n// to the type or semantics of the Value.flag field.\nfunc init() {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\tif field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() {\n\t\tpanic(\"reflect.Value flag field has changed kind\")\n\t}\n\ttype t0 int\n\tvar t struct {\n\t\tA t0\n\t\t// t0 will have flagEmbedRO set.\n\t\tt0\n\t\t// a will have flagStickyRO set\n\t\ta t0\n\t}\n\tvA := reflect.ValueOf(t).FieldByName(\"A\")\n\tva := reflect.ValueOf(t).FieldByName(\"a\")\n\tvt0 := reflect.ValueOf(t).FieldByName(\"t0\")\n\n\t// Infer flagRO from the difference between the flags\n\t// for the (otherwise identical) fields in t.\n\tflagPublic := *flagField(&vA)\n\tflagWithRO := *flagField(&va) | *flagField(&vt0)\n\tflagRO = flagPublic ^ flagWithRO\n\n\t// Infer flagAddr from the difference between a value\n\t// taken from a pointer and not.\n\tvPtrA := reflect.ValueOf(&t).Elem().FieldByName(\"A\")\n\tflagNoPtr := *flagField(&vA)\n\tflagPtr := *flagField(&vPtrA)\n\tflagAddr = flagNoPtr ^ flagPtr\n\n\t// Check that the inferred flags tally with one of the known versions.\n\tfor _, f := range okFlags {\n\t\tif flagRO == f.ro && flagAddr == f.addr {\n\t\t\treturn\n\t\t}\n\t}\n\tpanic(\"reflect.Value read-only flag has changed semantics\")\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypasssafe.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is running on Google App Engine, compiled by GopherJS, or\n// \"-tags safe\" is added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// +build js appengine safe disableunsafe !go1.4\n\npackage spew\n\nimport \"reflect\"\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = true\n)\n\n// unsafeReflectValue typically converts the passed reflect.Value into a one\n// that bypasses the typical safety restrictions preventing access to\n// unaddressable and unexported data.  However, doing this relies on access to\n// the unsafe package.  This is a stub version which simply returns the passed\n// reflect.Value when the unsafe package is not available.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/common.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n)\n\n// Some constants in the form of bytes to avoid string overhead.  This mirrors\n// the technique used in the fmt package.\nvar (\n\tpanicBytes            = []byte(\"(PANIC=\")\n\tplusBytes             = []byte(\"+\")\n\tiBytes                = []byte(\"i\")\n\ttrueBytes             = []byte(\"true\")\n\tfalseBytes            = []byte(\"false\")\n\tinterfaceBytes        = []byte(\"(interface {})\")\n\tcommaNewlineBytes     = []byte(\",\\n\")\n\tnewlineBytes          = []byte(\"\\n\")\n\topenBraceBytes        = []byte(\"{\")\n\topenBraceNewlineBytes = []byte(\"{\\n\")\n\tcloseBraceBytes       = []byte(\"}\")\n\tasteriskBytes         = []byte(\"*\")\n\tcolonBytes            = []byte(\":\")\n\tcolonSpaceBytes       = []byte(\": \")\n\topenParenBytes        = []byte(\"(\")\n\tcloseParenBytes       = []byte(\")\")\n\tspaceBytes            = []byte(\" \")\n\tpointerChainBytes     = []byte(\"->\")\n\tnilAngleBytes         = []byte(\"<nil>\")\n\tmaxNewlineBytes       = []byte(\"<max depth reached>\\n\")\n\tmaxShortBytes         = []byte(\"<max>\")\n\tcircularBytes         = []byte(\"<already shown>\")\n\tcircularShortBytes    = []byte(\"<shown>\")\n\tinvalidAngleBytes     = []byte(\"<invalid>\")\n\topenBracketBytes      = []byte(\"[\")\n\tcloseBracketBytes     = []byte(\"]\")\n\tpercentBytes          = []byte(\"%\")\n\tprecisionBytes        = []byte(\".\")\n\topenAngleBytes        = []byte(\"<\")\n\tcloseAngleBytes       = []byte(\">\")\n\topenMapBytes          = []byte(\"map[\")\n\tcloseMapBytes         = []byte(\"]\")\n\tlenEqualsBytes        = []byte(\"len=\")\n\tcapEqualsBytes        = []byte(\"cap=\")\n)\n\n// hexDigits is used to map a decimal value to a hex digit.\nvar hexDigits = \"0123456789abcdef\"\n\n// catchPanic handles any panics that might occur during the handleMethods\n// calls.\nfunc catchPanic(w io.Writer, v reflect.Value) {\n\tif err := recover(); err != nil {\n\t\tw.Write(panicBytes)\n\t\tfmt.Fprintf(w, \"%v\", err)\n\t\tw.Write(closeParenBytes)\n\t}\n}\n\n// handleMethods attempts to call the Error and String methods on the underlying\n// type the passed reflect.Value represents and outputes the result to Writer w.\n//\n// It handles panics in any called methods by catching and displaying the error\n// as the formatted value.\nfunc handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) {\n\t// We need an interface to check if the type implements the error or\n\t// Stringer interface.  However, the reflect package won't give us an\n\t// interface on certain things like unexported struct fields in order\n\t// to enforce visibility rules.  We use unsafe, when it's available,\n\t// to bypass these restrictions since this package does not mutate the\n\t// values.\n\tif !v.CanInterface() {\n\t\tif UnsafeDisabled {\n\t\t\treturn false\n\t\t}\n\n\t\tv = unsafeReflectValue(v)\n\t}\n\n\t// Choose whether or not to do error and Stringer interface lookups against\n\t// the base type or a pointer to the base type depending on settings.\n\t// Technically calling one of these methods with a pointer receiver can\n\t// mutate the value, however, types which choose to satisify an error or\n\t// Stringer interface with a pointer receiver should not be mutating their\n\t// state inside these interface methods.\n\tif !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() {\n\t\tv = unsafeReflectValue(v)\n\t}\n\tif v.CanAddr() {\n\t\tv = v.Addr()\n\t}\n\n\t// Is it an error or Stringer?\n\tswitch iface := v.Interface().(type) {\n\tcase error:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.Error()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\n\t\tw.Write([]byte(iface.Error()))\n\t\treturn true\n\n\tcase fmt.Stringer:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.String()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\t\tw.Write([]byte(iface.String()))\n\t\treturn true\n\t}\n\treturn false\n}\n\n// printBool outputs a boolean value as true or false to Writer w.\nfunc printBool(w io.Writer, val bool) {\n\tif val {\n\t\tw.Write(trueBytes)\n\t} else {\n\t\tw.Write(falseBytes)\n\t}\n}\n\n// printInt outputs a signed integer value to Writer w.\nfunc printInt(w io.Writer, val int64, base int) {\n\tw.Write([]byte(strconv.FormatInt(val, base)))\n}\n\n// printUint outputs an unsigned integer value to Writer w.\nfunc printUint(w io.Writer, val uint64, base int) {\n\tw.Write([]byte(strconv.FormatUint(val, base)))\n}\n\n// printFloat outputs a floating point value using the specified precision,\n// which is expected to be 32 or 64bit, to Writer w.\nfunc printFloat(w io.Writer, val float64, precision int) {\n\tw.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))\n}\n\n// printComplex outputs a complex value using the specified float precision\n// for the real and imaginary parts to Writer w.\nfunc printComplex(w io.Writer, c complex128, floatPrecision int) {\n\tr := real(c)\n\tw.Write(openParenBytes)\n\tw.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))\n\ti := imag(c)\n\tif i >= 0 {\n\t\tw.Write(plusBytes)\n\t}\n\tw.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))\n\tw.Write(iBytes)\n\tw.Write(closeParenBytes)\n}\n\n// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x'\n// prefix to Writer w.\nfunc printHexPtr(w io.Writer, p uintptr) {\n\t// Null pointer.\n\tnum := uint64(p)\n\tif num == 0 {\n\t\tw.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix\n\tbuf := make([]byte, 18)\n\n\t// It's simpler to construct the hex string right to left.\n\tbase := uint64(16)\n\ti := len(buf) - 1\n\tfor num >= base {\n\t\tbuf[i] = hexDigits[num%base]\n\t\tnum /= base\n\t\ti--\n\t}\n\tbuf[i] = hexDigits[num]\n\n\t// Add '0x' prefix.\n\ti--\n\tbuf[i] = 'x'\n\ti--\n\tbuf[i] = '0'\n\n\t// Strip unused leading bytes.\n\tbuf = buf[i:]\n\tw.Write(buf)\n}\n\n// valuesSorter implements sort.Interface to allow a slice of reflect.Value\n// elements to be sorted.\ntype valuesSorter struct {\n\tvalues  []reflect.Value\n\tstrings []string // either nil or same len and values\n\tcs      *ConfigState\n}\n\n// newValuesSorter initializes a valuesSorter instance, which holds a set of\n// surrogate keys on which the data should be sorted.  It uses flags in\n// ConfigState to decide if and how to populate those surrogate keys.\nfunc newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface {\n\tvs := &valuesSorter{values: values, cs: cs}\n\tif canSortSimply(vs.values[0].Kind()) {\n\t\treturn vs\n\t}\n\tif !cs.DisableMethods {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tb := bytes.Buffer{}\n\t\t\tif !handleMethods(cs, &b, vs.values[i]) {\n\t\t\t\tvs.strings = nil\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvs.strings[i] = b.String()\n\t\t}\n\t}\n\tif vs.strings == nil && cs.SpewKeys {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tvs.strings[i] = Sprintf(\"%#v\", vs.values[i].Interface())\n\t\t}\n\t}\n\treturn vs\n}\n\n// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted\n// directly, or whether it should be considered for sorting by surrogate keys\n// (if the ConfigState allows it).\nfunc canSortSimply(kind reflect.Kind) bool {\n\t// This switch parallels valueSortLess, except for the default case.\n\tswitch kind {\n\tcase reflect.Bool:\n\t\treturn true\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn true\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn true\n\tcase reflect.String:\n\t\treturn true\n\tcase reflect.Uintptr:\n\t\treturn true\n\tcase reflect.Array:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Len returns the number of values in the slice.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Len() int {\n\treturn len(s.values)\n}\n\n// Swap swaps the values at the passed indices.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Swap(i, j int) {\n\ts.values[i], s.values[j] = s.values[j], s.values[i]\n\tif s.strings != nil {\n\t\ts.strings[i], s.strings[j] = s.strings[j], s.strings[i]\n\t}\n}\n\n// valueSortLess returns whether the first value should sort before the second\n// value.  It is used by valueSorter.Less as part of the sort.Interface\n// implementation.\nfunc valueSortLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.String:\n\t\treturn a.String() < b.String()\n\tcase reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Array:\n\t\t// Compare the contents of both arrays.\n\t\tl := a.Len()\n\t\tfor i := 0; i < l; i++ {\n\t\t\tav := a.Index(i)\n\t\t\tbv := b.Index(i)\n\t\t\tif av.Interface() == bv.Interface() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn valueSortLess(av, bv)\n\t\t}\n\t}\n\treturn a.String() < b.String()\n}\n\n// Less returns whether the value at index i should sort before the\n// value at index j.  It is part of the sort.Interface implementation.\nfunc (s *valuesSorter) Less(i, j int) bool {\n\tif s.strings == nil {\n\t\treturn valueSortLess(s.values[i], s.values[j])\n\t}\n\treturn s.strings[i] < s.strings[j]\n}\n\n// sortValues is a sort function that handles both native types and any type that\n// can be converted to error or Stringer.  Other inputs are sorted according to\n// their Value.String() value to ensure display stability.\nfunc sortValues(values []reflect.Value, cs *ConfigState) {\n\tif len(values) == 0 {\n\t\treturn\n\t}\n\tsort.Sort(newValuesSorter(values, cs))\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/config.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// ConfigState houses the configuration options used by spew to format and\n// display values.  There is a global instance, Config, that is used to control\n// all top-level Formatter and Dump functionality.  Each ConfigState instance\n// provides methods equivalent to the top-level functions.\n//\n// The zero value for ConfigState provides no indentation.  You would typically\n// want to set it to a space or a tab.\n//\n// Alternatively, you can use NewDefaultConfig to get a ConfigState instance\n// with default settings.  See the documentation of NewDefaultConfig for default\n// values.\ntype ConfigState struct {\n\t// Indent specifies the string to use for each indentation level.  The\n\t// global config instance that all top-level functions use set this to a\n\t// single space by default.  If you would like more indentation, you might\n\t// set this to a tab with \"\\t\" or perhaps two spaces with \"  \".\n\tIndent string\n\n\t// MaxDepth controls the maximum number of levels to descend into nested\n\t// data structures.  The default, 0, means there is no limit.\n\t//\n\t// NOTE: Circular data structures are properly detected, so it is not\n\t// necessary to set this value unless you specifically want to limit deeply\n\t// nested data structures.\n\tMaxDepth int\n\n\t// DisableMethods specifies whether or not error and Stringer interfaces are\n\t// invoked for types that implement them.\n\tDisableMethods bool\n\n\t// DisablePointerMethods specifies whether or not to check for and invoke\n\t// error and Stringer interfaces on types which only accept a pointer\n\t// receiver when the current type is not a pointer.\n\t//\n\t// NOTE: This might be an unsafe action since calling one of these methods\n\t// with a pointer receiver could technically mutate the value, however,\n\t// in practice, types which choose to satisify an error or Stringer\n\t// interface with a pointer receiver should not be mutating their state\n\t// inside these interface methods.  As a result, this option relies on\n\t// access to the unsafe package, so it will not have any effect when\n\t// running in environments without access to the unsafe package such as\n\t// Google App Engine or with the \"safe\" build tag specified.\n\tDisablePointerMethods bool\n\n\t// DisablePointerAddresses specifies whether to disable the printing of\n\t// pointer addresses. This is useful when diffing data structures in tests.\n\tDisablePointerAddresses bool\n\n\t// DisableCapacities specifies whether to disable the printing of capacities\n\t// for arrays, slices, maps and channels. This is useful when diffing\n\t// data structures in tests.\n\tDisableCapacities bool\n\n\t// ContinueOnMethod specifies whether or not recursion should continue once\n\t// a custom error or Stringer interface is invoked.  The default, false,\n\t// means it will print the results of invoking the custom error or Stringer\n\t// interface and return immediately instead of continuing to recurse into\n\t// the internals of the data type.\n\t//\n\t// NOTE: This flag does not have any effect if method invocation is disabled\n\t// via the DisableMethods or DisablePointerMethods options.\n\tContinueOnMethod bool\n\n\t// SortKeys specifies map keys should be sorted before being printed. Use\n\t// this to have a more deterministic, diffable output.  Note that only\n\t// native types (bool, int, uint, floats, uintptr and string) and types\n\t// that support the error or Stringer interfaces (if methods are\n\t// enabled) are supported, with other types sorted according to the\n\t// reflect.Value.String() output which guarantees display stability.\n\tSortKeys bool\n\n\t// SpewKeys specifies that, as a last resort attempt, map keys should\n\t// be spewed to strings and sorted by those strings.  This is only\n\t// considered if SortKeys is true.\n\tSpewKeys bool\n}\n\n// Config is the active configuration of the top-level functions.\n// The configuration can be changed by modifying the contents of spew.Config.\nvar Config = ConfigState{Indent: \" \"}\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the formatted string as a value that satisfies error.  See NewFormatter\n// for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, c.convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, c.convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, c.convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a Formatter interface returned by c.NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, c.convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(c.convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, c.convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(c.convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(c.convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, c.convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a Formatter interface returned by c.NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(c.convertArgs(a)...)\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nc.Printf, c.Println, or c.Printf.\n*/\nfunc (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(c, v)\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {\n\tfdump(c, w, a...)\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by modifying the public members\nof c.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc (c *ConfigState) Dump(a ...interface{}) {\n\tfdump(c, os.Stdout, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc (c *ConfigState) Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(c, &buf, a...)\n\treturn buf.String()\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a spew Formatter interface using\n// the ConfigState associated with s.\nfunc (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = newFormatter(c, arg)\n\t}\n\treturn formatters\n}\n\n// NewDefaultConfig returns a ConfigState with the following default settings.\n//\n// \tIndent: \" \"\n// \tMaxDepth: 0\n// \tDisableMethods: false\n// \tDisablePointerMethods: false\n// \tContinueOnMethod: false\n// \tSortKeys: false\nfunc NewDefaultConfig() *ConfigState {\n\treturn &ConfigState{Indent: \" \"}\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/doc.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\n/*\nPackage spew implements a deep pretty printer for Go data structures to aid in\ndebugging.\n\nA quick overview of the additional features spew provides over the built-in\nprinting facilities for Go data types are as follows:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output (only when using\n\t  Dump style)\n\nThere are two different approaches spew allows for dumping Go data structures:\n\n\t* Dump style which prints with newlines, customizable indentation,\n\t  and additional debug information such as types and all pointer addresses\n\t  used to indirect to the final value\n\t* A custom Formatter interface that integrates cleanly with the standard fmt\n\t  package and replaces %v, %+v, %#v, and %#+v to provide inline printing\n\t  similar to the default %v while providing the additional functionality\n\t  outlined above and passing unsupported format verbs such as %x and %q\n\t  along to fmt\n\nQuick Start\n\nThis section demonstrates how to quickly get started with spew.  See the\nsections below for further details on formatting and configuration options.\n\nTo dump a variable with full newlines, indentation, type, and pointer\ninformation use Dump, Fdump, or Sdump:\n\tspew.Dump(myVar1, myVar2, ...)\n\tspew.Fdump(someWriter, myVar1, myVar2, ...)\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nAlternatively, if you would prefer to use format strings with a compacted inline\nprinting style, use the convenience wrappers Printf, Fprintf, etc with\n%v (most compact), %+v (adds pointer addresses), %#v (adds types), or\n%#+v (adds types and pointer addresses):\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Fprintf(someWriter, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(someWriter, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nConfiguration Options\n\nConfiguration of spew is handled by fields in the ConfigState type.  For\nconvenience, all of the top-level functions use a global state available\nvia the spew.Config global.\n\nIt is also possible to create a ConfigState instance that provides methods\nequivalent to the top-level functions.  This allows concurrent configuration\noptions.  See the ConfigState documentation for more details.\n\nThe following configuration options are available:\n\t* Indent\n\t\tString to use for each indentation level for Dump functions.\n\t\tIt is a single space by default.  A popular alternative is \"\\t\".\n\n\t* MaxDepth\n\t\tMaximum number of levels to descend into nested data structures.\n\t\tThere is no limit by default.\n\n\t* DisableMethods\n\t\tDisables invocation of error and Stringer interface methods.\n\t\tMethod invocation is enabled by default.\n\n\t* DisablePointerMethods\n\t\tDisables invocation of error and Stringer interface methods on types\n\t\twhich only accept pointer receivers from non-pointer variables.\n\t\tPointer method invocation is enabled by default.\n\n\t* DisablePointerAddresses\n\t\tDisablePointerAddresses specifies whether to disable the printing of\n\t\tpointer addresses. This is useful when diffing data structures in tests.\n\n\t* DisableCapacities\n\t\tDisableCapacities specifies whether to disable the printing of\n\t\tcapacities for arrays, slices, maps and channels. This is useful when\n\t\tdiffing data structures in tests.\n\n\t* ContinueOnMethod\n\t\tEnables recursion into types after invoking error and Stringer interface\n\t\tmethods. Recursion after method invocation is disabled by default.\n\n\t* SortKeys\n\t\tSpecifies map keys should be sorted before being printed. Use\n\t\tthis to have a more deterministic, diffable output.  Note that\n\t\tonly native types (bool, int, uint, floats, uintptr and string)\n\t\tand types which implement error or Stringer interfaces are\n\t\tsupported with other types sorted according to the\n\t\treflect.Value.String() output which guarantees display\n\t\tstability.  Natural map order is used by default.\n\n\t* SpewKeys\n\t\tSpecifies that, as a last resort attempt, map keys should be\n\t\tspewed to strings and sorted by those strings.  This is only\n\t\tconsidered if SortKeys is true.\n\nDump Usage\n\nSimply call spew.Dump with a list of variables you want to dump:\n\n\tspew.Dump(myVar1, myVar2, ...)\n\nYou may also call spew.Fdump if you would prefer to output to an arbitrary\nio.Writer.  For example, to dump to standard error:\n\n\tspew.Fdump(os.Stderr, myVar1, myVar2, ...)\n\nA third option is to call spew.Sdump to get the formatted output as a string:\n\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nSample Dump Output\n\nSee the Dump example for details on the setup of the types and variables being\nshown here.\n\n\t(main.Foo) {\n\t unexportedField: (*main.Bar)(0xf84002e210)({\n\t  flag: (main.Flag) flagTwo,\n\t  data: (uintptr) <nil>\n\t }),\n\t ExportedField: (map[interface {}]interface {}) (len=1) {\n\t  (string) (len=3) \"one\": (bool) true\n\t }\n\t}\n\nByte (and uint8) arrays and slices are displayed uniquely like the hexdump -C\ncommand as shown.\n\t([]uint8) (len=32 cap=32) {\n\t 00000000  11 12 13 14 15 16 17 18  19 1a 1b 1c 1d 1e 1f 20  |............... |\n\t 00000010  21 22 23 24 25 26 27 28  29 2a 2b 2c 2d 2e 2f 30  |!\"#$%&'()*+,-./0|\n\t 00000020  31 32                                             |12|\n\t}\n\nCustom Formatter\n\nSpew provides a custom formatter that implements the fmt.Formatter interface\nso that it integrates cleanly with standard fmt package printing functions. The\nformatter is useful for inline printing of smaller data types similar to the\nstandard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nCustom Formatter Usage\n\nThe simplest way to make use of the spew custom formatter is to call one of the\nconvenience functions such as spew.Printf, spew.Println, or spew.Printf.  The\nfunctions have syntax you are most likely already familiar with:\n\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Println(myVar, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nSee the Index for the full list convenience functions.\n\nSample Formatter Output\n\nDouble pointer to a uint8:\n\t  %v: <**>5\n\t %+v: <**>(0xf8400420d0->0xf8400420c8)5\n\t %#v: (**uint8)5\n\t%#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5\n\nPointer to circular struct with a uint8 field and a pointer to itself:\n\t  %v: <*>{1 <*><shown>}\n\t %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>}\n\t %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>}\n\t%#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>}\n\nSee the Printf example for details on the setup of variables being shown\nhere.\n\nErrors\n\nSince it is possible for custom Stringer/error interfaces to panic, spew\ndetects them and handles them internally by printing the panic information\ninline with the output.  Since spew is intended to provide deep pretty printing\ncapabilities on structures, it intentionally does not return any errors.\n*/\npackage spew\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/dump.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// uint8Type is a reflect.Type representing a uint8.  It is used to\n\t// convert cgo types to uint8 slices for hexdumping.\n\tuint8Type = reflect.TypeOf(uint8(0))\n\n\t// cCharRE is a regular expression that matches a cgo char.\n\t// It is used to detect character arrays to hexdump them.\n\tcCharRE = regexp.MustCompile(`^.*\\._Ctype_char$`)\n\n\t// cUnsignedCharRE is a regular expression that matches a cgo unsigned\n\t// char.  It is used to detect unsigned character arrays to hexdump\n\t// them.\n\tcUnsignedCharRE = regexp.MustCompile(`^.*\\._Ctype_unsignedchar$`)\n\n\t// cUint8tCharRE is a regular expression that matches a cgo uint8_t.\n\t// It is used to detect uint8_t arrays to hexdump them.\n\tcUint8tCharRE = regexp.MustCompile(`^.*\\._Ctype_uint8_t$`)\n)\n\n// dumpState contains information about the state of a dump operation.\ntype dumpState struct {\n\tw                io.Writer\n\tdepth            int\n\tpointers         map[uintptr]int\n\tignoreNextType   bool\n\tignoreNextIndent bool\n\tcs               *ConfigState\n}\n\n// indent performs indentation according to the depth level and cs.Indent\n// option.\nfunc (d *dumpState) indent() {\n\tif d.ignoreNextIndent {\n\t\td.ignoreNextIndent = false\n\t\treturn\n\t}\n\td.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth))\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (d *dumpState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\tv = v.Elem()\n\t}\n\treturn v\n}\n\n// dumpPtr handles formatting of pointers by indirecting them as necessary.\nfunc (d *dumpState) dumpPtr(v reflect.Value) {\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range d.pointers {\n\t\tif depth >= d.depth {\n\t\t\tdelete(d.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by dereferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := d.pointers[addr]; ok && pd < d.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\td.pointers[addr] = d.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type information.\n\td.w.Write(openParenBytes)\n\td.w.Write(bytes.Repeat(asteriskBytes, indirects))\n\td.w.Write([]byte(ve.Type().String()))\n\td.w.Write(closeParenBytes)\n\n\t// Display pointer information.\n\tif !d.cs.DisablePointerAddresses && len(pointerChain) > 0 {\n\t\td.w.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\td.w.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(d.w, addr)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\td.w.Write(openParenBytes)\n\tswitch {\n\tcase nilFound:\n\t\td.w.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\td.w.Write(circularBytes)\n\n\tdefault:\n\t\td.ignoreNextType = true\n\t\td.dump(ve)\n\t}\n\td.w.Write(closeParenBytes)\n}\n\n// dumpSlice handles formatting of arrays and slices.  Byte (uint8 under\n// reflection) arrays and slices are dumped in hexdump -C fashion.\nfunc (d *dumpState) dumpSlice(v reflect.Value) {\n\t// Determine whether this type should be hex dumped or not.  Also,\n\t// for types which should be hexdumped, try to use the underlying data\n\t// first, then fall back to trying to convert them to a uint8 slice.\n\tvar buf []uint8\n\tdoConvert := false\n\tdoHexDump := false\n\tnumEntries := v.Len()\n\tif numEntries > 0 {\n\t\tvt := v.Index(0).Type()\n\t\tvts := vt.String()\n\t\tswitch {\n\t\t// C types that need to be converted.\n\t\tcase cCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUnsignedCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUint8tCharRE.MatchString(vts):\n\t\t\tdoConvert = true\n\n\t\t// Try to use existing uint8 slices and fall back to converting\n\t\t// and copying if that fails.\n\t\tcase vt.Kind() == reflect.Uint8:\n\t\t\t// We need an addressable interface to convert the type\n\t\t\t// to a byte slice.  However, the reflect package won't\n\t\t\t// give us an interface on certain things like\n\t\t\t// unexported struct fields in order to enforce\n\t\t\t// visibility rules.  We use unsafe, when available, to\n\t\t\t// bypass these restrictions since this package does not\n\t\t\t// mutate the values.\n\t\t\tvs := v\n\t\t\tif !vs.CanInterface() || !vs.CanAddr() {\n\t\t\t\tvs = unsafeReflectValue(vs)\n\t\t\t}\n\t\t\tif !UnsafeDisabled {\n\t\t\t\tvs = vs.Slice(0, numEntries)\n\n\t\t\t\t// Use the existing uint8 slice if it can be\n\t\t\t\t// type asserted.\n\t\t\t\tiface := vs.Interface()\n\t\t\t\tif slice, ok := iface.([]uint8); ok {\n\t\t\t\t\tbuf = slice\n\t\t\t\t\tdoHexDump = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// The underlying data needs to be converted if it can't\n\t\t\t// be type asserted to a uint8 slice.\n\t\t\tdoConvert = true\n\t\t}\n\n\t\t// Copy and convert the underlying type if needed.\n\t\tif doConvert && vt.ConvertibleTo(uint8Type) {\n\t\t\t// Convert and copy each element into a uint8 byte\n\t\t\t// slice.\n\t\t\tbuf = make([]uint8, numEntries)\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tvv := v.Index(i)\n\t\t\t\tbuf[i] = uint8(vv.Convert(uint8Type).Uint())\n\t\t\t}\n\t\t\tdoHexDump = true\n\t\t}\n\t}\n\n\t// Hexdump the entire slice as needed.\n\tif doHexDump {\n\t\tindent := strings.Repeat(d.cs.Indent, d.depth)\n\t\tstr := indent + hex.Dump(buf)\n\t\tstr = strings.Replace(str, \"\\n\", \"\\n\"+indent, -1)\n\t\tstr = strings.TrimRight(str, d.cs.Indent)\n\t\td.w.Write([]byte(str))\n\t\treturn\n\t}\n\n\t// Recursively call dump for each item.\n\tfor i := 0; i < numEntries; i++ {\n\t\td.dump(d.unpackValue(v.Index(i)))\n\t\tif i < (numEntries - 1) {\n\t\t\td.w.Write(commaNewlineBytes)\n\t\t} else {\n\t\t\td.w.Write(newlineBytes)\n\t\t}\n\t}\n}\n\n// dump is the main workhorse for dumping a value.  It uses the passed reflect\n// value to figure out what kind of object we are dealing with and formats it\n// appropriately.  It is a recursive function, however circular data structures\n// are detected and handled properly.\nfunc (d *dumpState) dump(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\td.w.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\td.indent()\n\t\td.dumpPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !d.ignoreNextType {\n\t\td.indent()\n\t\td.w.Write(openParenBytes)\n\t\td.w.Write([]byte(v.Type().String()))\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\td.ignoreNextType = false\n\n\t// Display length and capacity if the built-in len and cap functions\n\t// work with the value's kind and the len/cap itself is non-zero.\n\tvalueLen, valueCap := 0, 0\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Slice, reflect.Chan:\n\t\tvalueLen, valueCap = v.Len(), v.Cap()\n\tcase reflect.Map, reflect.String:\n\t\tvalueLen = v.Len()\n\t}\n\tif valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 {\n\t\td.w.Write(openParenBytes)\n\t\tif valueLen != 0 {\n\t\t\td.w.Write(lenEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueLen), 10)\n\t\t}\n\t\tif !d.cs.DisableCapacities && valueCap != 0 {\n\t\t\tif valueLen != 0 {\n\t\t\t\td.w.Write(spaceBytes)\n\t\t\t}\n\t\t\td.w.Write(capEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueCap), 10)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\n\t// Call Stringer/error interfaces if they exist and the handle methods flag\n\t// is enabled\n\tif !d.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(d.cs, d.w, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(d.w, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(d.w, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(d.w, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(d.w, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(d.w, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(d.w, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(d.w, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\td.dumpSlice(v)\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.String:\n\t\td.w.Write([]byte(strconv.Quote(v.String())))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tkeys := v.MapKeys()\n\t\t\tif d.cs.SortKeys {\n\t\t\t\tsortValues(keys, d.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\td.dump(d.unpackValue(key))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.MapIndex(key)))\n\t\t\t\tif i < (numEntries - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Struct:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tnumFields := v.NumField()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\td.indent()\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\td.w.Write([]byte(vtf.Name))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.Field(i)))\n\t\t\t\tif i < (numFields - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(d.w, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(d.w, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it in case any new\n\t// types are added.\n\tdefault:\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.String())\n\t\t}\n\t}\n}\n\n// fdump is a helper function to consolidate the logic from the various public\n// methods which take varying writers and config states.\nfunc fdump(cs *ConfigState, w io.Writer, a ...interface{}) {\n\tfor _, arg := range a {\n\t\tif arg == nil {\n\t\t\tw.Write(interfaceBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\tw.Write(nilAngleBytes)\n\t\t\tw.Write(newlineBytes)\n\t\t\tcontinue\n\t\t}\n\n\t\td := dumpState{w: w, cs: cs}\n\t\td.pointers = make(map[uintptr]int)\n\t\td.dump(reflect.ValueOf(arg))\n\t\td.w.Write(newlineBytes)\n\t}\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc Fdump(w io.Writer, a ...interface{}) {\n\tfdump(&Config, w, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(&Config, &buf, a...)\n\treturn buf.String()\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by an exported package global,\nspew.Config.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc Dump(a ...interface{}) {\n\tfdump(&Config, os.Stdout, a...)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/format.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// supportedFlags is a list of all the character flags supported by fmt package.\nconst supportedFlags = \"0-+# \"\n\n// formatState implements the fmt.Formatter interface and contains information\n// about the state of a formatting operation.  The NewFormatter function can\n// be used to get a new Formatter which can be used directly as arguments\n// in standard fmt package printing calls.\ntype formatState struct {\n\tvalue          interface{}\n\tfs             fmt.State\n\tdepth          int\n\tpointers       map[uintptr]int\n\tignoreNextType bool\n\tcs             *ConfigState\n}\n\n// buildDefaultFormat recreates the original format string without precision\n// and width information to pass in to fmt.Sprintf in the case of an\n// unrecognized type.  Unless new types are added to the language, this\n// function won't ever be called.\nfunc (f *formatState) buildDefaultFormat() (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tbuf.WriteRune('v')\n\n\tformat = buf.String()\n\treturn format\n}\n\n// constructOrigFormat recreates the original format string including precision\n// and width information to pass along to the standard fmt package.  This allows\n// automatic deferral of all format strings this package doesn't support.\nfunc (f *formatState) constructOrigFormat(verb rune) (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tif width, ok := f.fs.Width(); ok {\n\t\tbuf.WriteString(strconv.Itoa(width))\n\t}\n\n\tif precision, ok := f.fs.Precision(); ok {\n\t\tbuf.Write(precisionBytes)\n\t\tbuf.WriteString(strconv.Itoa(precision))\n\t}\n\n\tbuf.WriteRune(verb)\n\n\tformat = buf.String()\n\treturn format\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible and\n// ensures that types for values which have been unpacked from an interface\n// are displayed when the show types flag is also set.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (f *formatState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface {\n\t\tf.ignoreNextType = false\n\t\tif !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t}\n\treturn v\n}\n\n// formatPtr handles formatting of pointers by indirecting them as necessary.\nfunc (f *formatState) formatPtr(v reflect.Value) {\n\t// Display nil if top level pointer is nil.\n\tshowTypes := f.fs.Flag('#')\n\tif v.IsNil() && (!showTypes || f.ignoreNextType) {\n\t\tf.fs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range f.pointers {\n\t\tif depth >= f.depth {\n\t\t\tdelete(f.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to possibly show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by derferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := f.pointers[addr]; ok && pd < f.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\tf.pointers[addr] = f.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type or indirection level depending on flags.\n\tif showTypes && !f.ignoreNextType {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write(bytes.Repeat(asteriskBytes, indirects))\n\t\tf.fs.Write([]byte(ve.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t} else {\n\t\tif nilFound || cycleFound {\n\t\t\tindirects += strings.Count(ve.Type().String(), \"*\")\n\t\t}\n\t\tf.fs.Write(openAngleBytes)\n\t\tf.fs.Write([]byte(strings.Repeat(\"*\", indirects)))\n\t\tf.fs.Write(closeAngleBytes)\n\t}\n\n\t// Display pointer information depending on flags.\n\tif f.fs.Flag('+') && (len(pointerChain) > 0) {\n\t\tf.fs.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\tf.fs.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(f.fs, addr)\n\t\t}\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\tswitch {\n\tcase nilFound:\n\t\tf.fs.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\tf.fs.Write(circularShortBytes)\n\n\tdefault:\n\t\tf.ignoreNextType = true\n\t\tf.format(ve)\n\t}\n}\n\n// format is the main workhorse for providing the Formatter interface.  It\n// uses the passed reflect value to figure out what kind of object we are\n// dealing with and formats it appropriately.  It is a recursive function,\n// however circular data structures are detected and handled properly.\nfunc (f *formatState) format(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\tf.fs.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\tf.formatPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !f.ignoreNextType && f.fs.Flag('#') {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write([]byte(v.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\tf.ignoreNextType = false\n\n\t// Call Stringer/error interfaces if they exist and the handle methods\n\t// flag is enabled.\n\tif !f.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(f.cs, f.fs, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(f.fs, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(f.fs, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(f.fs, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(f.fs, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(f.fs, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(f.fs, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(f.fs, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\tf.fs.Write(openBracketBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.Index(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBracketBytes)\n\n\tcase reflect.String:\n\t\tf.fs.Write([]byte(v.String()))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\tf.fs.Write(openMapBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tkeys := v.MapKeys()\n\t\t\tif f.cs.SortKeys {\n\t\t\t\tsortValues(keys, f.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(key))\n\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.MapIndex(key)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeMapBytes)\n\n\tcase reflect.Struct:\n\t\tnumFields := v.NumField()\n\t\tf.fs.Write(openBraceBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\tif f.fs.Flag('+') || f.fs.Flag('#') {\n\t\t\t\t\tf.fs.Write([]byte(vtf.Name))\n\t\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\t}\n\t\t\t\tf.format(f.unpackValue(v.Field(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(f.fs, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(f.fs, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it if any get added.\n\tdefault:\n\t\tformat := f.buildDefaultFormat()\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(f.fs, format, v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(f.fs, format, v.String())\n\t\t}\n\t}\n}\n\n// Format satisfies the fmt.Formatter interface. See NewFormatter for usage\n// details.\nfunc (f *formatState) Format(fs fmt.State, verb rune) {\n\tf.fs = fs\n\n\t// Use standard formatting for verbs that are not v.\n\tif verb != 'v' {\n\t\tformat := f.constructOrigFormat(verb)\n\t\tfmt.Fprintf(fs, format, f.value)\n\t\treturn\n\t}\n\n\tif f.value == nil {\n\t\tif fs.Flag('#') {\n\t\t\tfs.Write(interfaceBytes)\n\t\t}\n\t\tfs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\tf.format(reflect.ValueOf(f.value))\n}\n\n// newFormatter is a helper function to consolidate the logic from the various\n// public methods which take varying config states.\nfunc newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {\n\tfs := &formatState{value: v, cs: cs}\n\tfs.pointers = make(map[uintptr]int)\n\treturn fs\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nPrintf, Println, or Fprintf.\n*/\nfunc NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(&Config, v)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/spew.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the formatted string as a value that satisfies error.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a default Formatter interface returned by NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(convertArgs(a)...)\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a default spew Formatter interface.\nfunc convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = NewFormatter(arg)\n\t}\n\treturn formatters\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n\nrestful.html\n\n*.out\n\ntmp.prof\n\ngo-restful.test\n\nexamples/restful-basic-authentication\n\nexamples/restful-encoding-filter\n\nexamples/restful-filters\n\nexamples/restful-hello-world\n\nexamples/restful-resource-functions\n\nexamples/restful-serve-static\n\nexamples/restful-user-service\n\n*.DS_Store\nexamples/restful-user-resource\n\nexamples/restful-multi-containers\n\nexamples/restful-form-handling\n\nexamples/restful-CORS-filter\n\nexamples/restful-options-filter\n\nexamples/restful-curly-router\n\nexamples/restful-cpuprofiler-service\n\nexamples/restful-pre-post-filters\n\ncurly.prof\n\nexamples/restful-NCSA-logging\n\nexamples/restful-html-template\n\ns.html\nrestful-path-tail\n.idea\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.goconvey",
    "content": "ignore"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.x\n\nbefore_install:\n  - go test -v\n\nscript:\n  - go test -race -coverprofile=coverage.txt -covermode=atomic\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/CHANGES.md",
    "content": "# Change history of go-restful\n\n## [v3.9.0] - 20221-07-21\n\n- add support for http.Handler implementations to work as FilterFunction, issue #504 (thanks to https://github.com/ggicci)\n\n## [v3.8.0] - 20221-06-06\n\n- use exact matching of allowed domain entries, issue #489 (#493)\n\t- this changes fixes [security] Authorization Bypass Through User-Controlled Key\n\t  by changing the behaviour of the AllowedDomains setting in the CORS filter.\n\t  To support the previous behaviour, the CORS filter type now has a AllowedDomainFunc\n\t  callback mechanism which is called when a simple domain match fails. \n- add test and fix for POST without body and Content-type, issue #492 (#496)\n- [Minor] Bad practice to have a mix of Receiver types. (#491)\n\n## [v3.7.2] - 2021-11-24\n\n- restored FilterChain (#482 by SVilgelm)\n\n\n## [v3.7.1] - 2021-10-04\n\n- fix problem with contentEncodingEnabled setting (#479)\n\n## [v3.7.0] - 2021-09-24\n\n- feat(parameter): adds additional openapi mappings (#478)\n\n## [v3.6.0] - 2021-09-18\n\n- add support for vendor extensions (#477 thx erraggy)\n\n## [v3.5.2] - 2021-07-14\n\n- fix removing absent route from webservice (#472)\n\n## [v3.5.1] - 2021-04-12\n\n- fix handling no match access selected path\n- remove obsolete field\n\n## [v3.5.0] - 2021-04-10\n\n- add check for wildcard (#463) in CORS\n- add access to Route from Request, issue #459 (#462)\n\n## [v3.4.0] - 2020-11-10\n\n- Added OPTIONS to WebService\n\n## [v3.3.2] - 2020-01-23\n\n- Fixed duplicate compression in dispatch. #449\n\n\n## [v3.3.1] - 2020-08-31\n\n- Added check on writer to prevent compression of response twice. #447\n\n## [v3.3.0] - 2020-08-19\n\n- Enable content encoding on Handle and ServeHTTP (#446)\n- List available representations in 406 body (#437)\n- Convert to string using rune() (#443)\n\n## [v3.2.0] - 2020-06-21\n\n- 405 Method Not Allowed must have Allow header (#436) (thx Bracken <abdawson@gmail.com>)\n- add field allowedMethodsWithoutContentType (#424)\n\n## [v3.1.0]\n\n- support describing response headers (#426)\n- fix openapi examples (#425)\n\nv3.0.0\n\n- fix: use request/response resulting from filter chain\n- add Go module\n  Module consumer should use github.com/emicklei/go-restful/v3 as import path\n\nv2.10.0\n\n- support for Custom Verbs (thanks Vinci Xu <277040271@qq.com>)\n- fixed static example (thanks Arthur <yang_yapo@126.com>)\n- simplify code (thanks Christian Muehlhaeuser <muesli@gmail.com>)\n- added JWT HMAC with SHA-512 authentication code example (thanks Amim Knabben <amim.knabben@gmail.com>)\n\nv2.9.6\n\n- small optimization in filter code\n\nv2.11.1\n\n- fix WriteError return value (#415)\n\nv2.11.0 \n\n- allow prefix and suffix in path variable expression (#414)\n\nv2.9.6\n\n- support google custome verb (#413)\n\nv2.9.5\n\n- fix panic in Response.WriteError if err == nil\n\nv2.9.4\n\n- fix issue #400 , parsing mime type quality\n- Route Builder added option for contentEncodingEnabled (#398)\n\nv2.9.3\n\n- Avoid return of 415 Unsupported Media Type when request body is empty (#396)\n\nv2.9.2\n\n- Reduce allocations in per-request methods to improve performance (#395)\n\nv2.9.1\n\n- Fix issue with default responses and invalid status code 0. (#393)\n\nv2.9.0\n\n- add per Route content encoding setting (overrides container setting)\n\nv2.8.0\n\n- add Request.QueryParameters()\n- add json-iterator (via build tag)\n- disable vgo module (until log is moved)\n\nv2.7.1\n\n- add vgo module\n\nv2.6.1\n\n- add JSONNewDecoderFunc to allow custom JSON Decoder usage (go 1.10+)\n\nv2.6.0\n\n- Make JSR 311 routing and path param processing consistent\n- Adding description to RouteBuilder.Reads()\n- Update example for Swagger12 and OpenAPI\n\n2017-09-13\n\n- added route condition functions using `.If(func)` in route building.\n\n2017-02-16\n\n- solved issue #304, make operation names unique\n\n2017-01-30\n \n\t[IMPORTANT] For swagger users, change your import statement to:\t\n\tswagger \"github.com/emicklei/go-restful-swagger12\"\n\n- moved swagger 1.2 code to go-restful-swagger12\n- created TAG 2.0.0\n\n2017-01-27\n\n- remove defer request body close\n- expose Dispatch for testing filters and Routefunctions\n- swagger response model cannot be array \n- created TAG 1.0.0\n\n2016-12-22\n\n- (API change) Remove code related to caching request content. Removes SetCacheReadEntity(doCache bool)\n\n2016-11-26\n\n- Default change! now use CurlyRouter (was RouterJSR311)\n- Default change! no more caching of request content\n- Default change! do not recover from panics\n\n2016-09-22\n\n- fix the DefaultRequestContentType feature\n\n2016-02-14\n\n- take the qualify factor of the Accept header mediatype into account when deciding the contentype of the response\n- add constructors for custom entity accessors for xml and json \n\n2015-09-27\n\n- rename new WriteStatusAnd... to WriteHeaderAnd... for consistency\n\n2015-09-25\n\n- fixed problem with changing Header after WriteHeader (issue 235)\n\n2015-09-14\n\n- changed behavior of WriteHeader (immediate write) and WriteEntity (no status write)\n- added support for custom EntityReaderWriters.\n\n2015-08-06\n\n- add support for reading entities from compressed request content\n- use sync.Pool for compressors of http response and request body\n- add Description to Parameter for documentation in Swagger UI\n\n2015-03-20\n\n- add configurable logging\n\n2015-03-18\n\n- if not specified, the Operation is derived from the Route function\n\n2015-03-17\n\n- expose Parameter creation functions\n- make trace logger an interface\n- fix OPTIONSFilter\n- customize rendering of ServiceError\n- JSR311 router now handles wildcards\n- add Notes to Route\n\n2014-11-27\n\n- (api add) PrettyPrint per response. (as proposed in #167)\n\n2014-11-12\n\n- (api add) ApiVersion(.) for documentation in Swagger UI\n\n2014-11-10\n\n- (api change) struct fields tagged with \"description\" show up in Swagger UI\n\n2014-10-31\n\n- (api change) ReturnsError -> Returns\n- (api add)    RouteBuilder.Do(aBuilder) for DRY use of RouteBuilder\n- fix swagger nested structs\n- sort Swagger response messages by code\n\n2014-10-23\n\n- (api add) ReturnsError allows you to document Http codes in swagger\n- fixed problem with greedy CurlyRouter\n- (api add) Access-Control-Max-Age in CORS\n- add tracing functionality (injectable) for debugging purposes\n- support JSON parse 64bit int \n- fix empty parameters for swagger\n- WebServicesUrl is now optional for swagger\n- fixed duplicate AccessControlAllowOrigin in CORS\n- (api change) expose ServeMux in container\n- (api add) added AllowedDomains in CORS\n- (api add) ParameterNamed for detailed documentation\n\n2014-04-16\n\n- (api add) expose constructor of Request for testing.\n\n2014-06-27\n\n- (api add) ParameterNamed gives access to a Parameter definition and its data (for further specification).\n- (api add) SetCacheReadEntity allow scontrol over whether or not the request body is being cached (default true for compatibility reasons).\n\n2014-07-03\n\n- (api add) CORS can be configured with a list of allowed domains\n\n2014-03-12\n\n- (api add) Route path parameters can use wildcard or regular expressions. (requires CurlyRouter)\n\n2014-02-26\n\n- (api add) Request now provides information about the matched Route, see method SelectedRoutePath \n\n2014-02-17\n\n- (api change) renamed parameter constants (go-lint checks)\n\n2014-01-10\n\n- (api add) support for CloseNotify, see http://golang.org/pkg/net/http/#CloseNotifier\n\n2014-01-07\n\n- (api change) Write* methods in Response now return the error or nil.\n- added example of serving HTML from a Go template.\n- fixed comparing Allowed headers in CORS (is now case-insensitive)\n\n2013-11-13\n\n- (api add) Response knows how many bytes are written to the response body.\n\n2013-10-29\n\n- (api add) RecoverHandler(handler RecoverHandleFunction) to change how panic recovery is handled. Default behavior is to log and return a stacktrace. This may be a security issue as it exposes sourcecode information.\n\n2013-10-04\n\n- (api add) Response knows what HTTP status has been written\n- (api add) Request can have attributes (map of string->interface, also called request-scoped variables\n\n2013-09-12\n\n- (api change) Router interface simplified\n- Implemented CurlyRouter, a Router that does not use|allow regular expressions in paths\n\n2013-08-05\n - add OPTIONS support\n - add CORS support\n\n2013-08-27\n\n- fixed some reported issues (see github)\n- (api change) deprecated use of WriteError; use WriteErrorString instead\n\n2014-04-15\n\n- (fix) v1.0.1 tag: fix Issue 111: WriteErrorString\n\n2013-08-08\n\n- (api add) Added implementation Container: a WebServices collection with its own http.ServeMux allowing multiple endpoints per program. Existing uses of go-restful will register their services to the DefaultContainer.\n- (api add) the swagger package has be extended to have a UI per container.\n- if panic is detected then a small stack trace is printed (thanks to runner-mei)\n- (api add) WriteErrorString to Response\n\nImportant API changes:\n\n- (api remove) package variable DoNotRecover no longer works ; use restful.DefaultContainer.DoNotRecover(true) instead.\n- (api remove) package variable EnableContentEncoding no longer works ; use restful.DefaultContainer.EnableContentEncoding(true) instead.\n \n \n2013-07-06\n\n- (api add) Added support for response encoding (gzip and deflate(zlib)). This feature is disabled on default (for backwards compatibility). Use restful.EnableContentEncoding = true in your initialization to enable this feature.\n\n2013-06-19\n\n- (improve) DoNotRecover option, moved request body closer, improved ReadEntity\n\n2013-06-03\n\n- (api change) removed Dispatcher interface, hide PathExpression\n- changed receiver names of type functions to be more idiomatic Go\n\n2013-06-02\n\n- (optimize) Cache the RegExp compilation of Paths.\n\n2013-05-22\n\t\n- (api add) Added support for request/response filter functions\n\n2013-05-18\n\n\n- (api add) Added feature to change the default Http Request Dispatch function (travis cline)\n- (api change) Moved Swagger Webservice to swagger package (see example restful-user)\n\n[2012-11-14 .. 2013-05-18>\n \n- See https://github.com/emicklei/go-restful/commits\n\n2012-11-14\n\n- Initial commit\n\n\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/LICENSE",
    "content": "Copyright (c) 2012,2013 Ernest Micklei\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Makefile",
    "content": "all: test\n\ntest:\n\tgo vet .\n\tgo test -cover -v .\n\nex:\n\tfind ./examples -type f -name \"*.go\" | xargs -I {} go build -o /tmp/ignore {}"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/README.md",
    "content": "go-restful\n==========\npackage for building REST-style Web Services using Google Go\n\n[![Build Status](https://travis-ci.org/emicklei/go-restful.png)](https://travis-ci.org/emicklei/go-restful)\n[![Go Report Card](https://goreportcard.com/badge/github.com/emicklei/go-restful)](https://goreportcard.com/report/github.com/emicklei/go-restful)\n[![GoDoc](https://godoc.org/github.com/emicklei/go-restful?status.svg)](https://pkg.go.dev/github.com/emicklei/go-restful)\n[![codecov](https://codecov.io/gh/emicklei/go-restful/branch/master/graph/badge.svg)](https://codecov.io/gh/emicklei/go-restful)\n\n- [Code examples use v3](https://github.com/emicklei/go-restful/tree/v3/examples)\n\nREST asks developers to use HTTP methods explicitly and in a way that's consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between create, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:\n\n- GET = Retrieve a representation of a resource\n- POST = Create if you are sending content to the server to create a subordinate of the specified resource collection, using some server-side algorithm.\n- PUT = Create if you are sending the full content of the specified resource (URI).\n- PUT = Update if you are updating the full content of the specified resource.\n- DELETE = Delete if you are requesting the server to delete the resource\n- PATCH = Update partial content of a resource\n- OPTIONS = Get information about the communication options for the request URI\n    \n### Usage\n\n#### Without Go Modules\n\nAll versions up to `v2.*.*` (on the master) are not supporting Go modules.\n\n```\nimport (\n\trestful \"github.com/emicklei/go-restful\"\n)\n```\n\n#### Using Go Modules\n\nAs of version `v3.0.0` (on the v3 branch), this package supports Go modules.\n\n```\nimport (\n\trestful \"github.com/emicklei/go-restful/v3\"\n)\n```\n\n### Example\n\n```Go\nws := new(restful.WebService)\nws.\n\tPath(\"/users\").\n\tConsumes(restful.MIME_XML, restful.MIME_JSON).\n\tProduces(restful.MIME_JSON, restful.MIME_XML)\n\nws.Route(ws.GET(\"/{user-id}\").To(u.findUser).\n\tDoc(\"get a user\").\n\tParam(ws.PathParameter(\"user-id\", \"identifier of the user\").DataType(\"string\")).\n\tWrites(User{}))\t\t\n...\n\t\nfunc (u UserResource) findUser(request *restful.Request, response *restful.Response) {\n\tid := request.PathParameter(\"user-id\")\n\t...\n}\n```\n\t\n[Full API of a UserResource](https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go) \n\t\t\n### Features\n\n- Routes for request &#8594; function mapping with path parameter (e.g. {id} but also prefix_{var} and {var}_suffix) support\n- Configurable router:\n\t- (default) Fast routing algorithm that allows static elements, [google custom method](https://cloud.google.com/apis/design/custom_methods), regular expressions and dynamic parameters in the URL path (e.g. /resource/name:customVerb, /meetings/{id} or /static/{subpath:*})\n\t- Routing algorithm after [JSR311](http://jsr311.java.net/nonav/releases/1.1/spec/spec.html) that is implemented using (but does **not** accept) regular expressions\n- Request API for reading structs from JSON/XML and accessing parameters (path,query,header)\n- Response API for writing structs to JSON/XML and setting headers\n- Customizable encoding using EntityReaderWriter registration\n- Filters for intercepting the request &#8594; response flow on Service or Route level\n- Request-scoped variables using attributes\n- Containers for WebServices on different HTTP endpoints\n- Content encoding (gzip,deflate) of request and response payloads\n- Automatic responses on OPTIONS (using a filter)\n- Automatic CORS request handling (using a filter)\n- API declaration for Swagger UI ([go-restful-openapi](https://github.com/emicklei/go-restful-openapi), see [go-restful-swagger12](https://github.com/emicklei/go-restful-swagger12))\n- Panic recovery to produce HTTP 500, customizable using RecoverHandler(...)\n- Route errors produce HTTP 404/405/406/415 errors, customizable using ServiceErrorHandler(...)\n- Configurable (trace) logging\n- Customizable gzip/deflate readers and writers using CompressorProvider registration\n- Inject your own http.Handler using the `HttpMiddlewareHandlerToFilter` function\n\n## How to customize\nThere are several hooks to customize the behavior of the go-restful package.\n\n- Router algorithm\n- Panic recovery\n- JSON decoder\n- Trace logging\n- Compression\n- Encoders for other serializers\n- Use [jsoniter](https://github.com/json-iterator/go) by building this package using a build tag, e.g. `go build -tags=jsoniter .` \n\n## Resources\n\n- [Example programs](./examples)\n- [Example posted on blog](http://ernestmicklei.com/2012/11/go-restful-first-working-example/)\n- [Design explained on blog](http://ernestmicklei.com/2012/11/go-restful-api-design/)\n- [sourcegraph](https://sourcegraph.com/github.com/emicklei/go-restful)\n- [showcase: Zazkia - tcp proxy for testing resiliency](https://github.com/emicklei/zazkia)\n- [showcase: Mora - MongoDB REST Api server](https://github.com/emicklei/mora)\n\nType ```git shortlog -s``` for a full list of contributors.\n\n© 2012 - 2022, http://ernestmicklei.com. MIT License. Contributions are welcome.\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\n| Version | Supported          |\n| ------- | ------------------ |\n| v3.7.x     | :white_check_mark: |\n| < v3.0.1   | :x:                |\n\n## Reporting a Vulnerability\n\nCreate an Issue and put the label `[security]` in the title of the issue.\nValid reported security issues are expected to be solved within a week.\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Srcfile",
    "content": "{\"SkipDirs\": [\"examples\"]}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/bench_test.sh",
    "content": "#go test -run=none -file bench_test.go -test.bench . -cpuprofile=bench_test.out\n\ngo test -c\n./go-restful.test -test.run=none -test.cpuprofile=tmp.prof -test.bench=BenchmarkMany\n./go-restful.test -test.run=none -test.cpuprofile=curly.prof -test.bench=BenchmarkManyCurly\n\n#go tool pprof go-restful.test tmp.prof\ngo tool pprof go-restful.test curly.prof\n\n\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compress.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bufio\"\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"strings\"\n)\n\n// OBSOLETE : use restful.DefaultContainer.EnableContentEncoding(true) to change this setting.\nvar EnableContentEncoding = false\n\n// CompressingResponseWriter is a http.ResponseWriter that can perform content encoding (gzip and zlib)\ntype CompressingResponseWriter struct {\n\twriter     http.ResponseWriter\n\tcompressor io.WriteCloser\n\tencoding   string\n}\n\n// Header is part of http.ResponseWriter interface\nfunc (c *CompressingResponseWriter) Header() http.Header {\n\treturn c.writer.Header()\n}\n\n// WriteHeader is part of http.ResponseWriter interface\nfunc (c *CompressingResponseWriter) WriteHeader(status int) {\n\tc.writer.WriteHeader(status)\n}\n\n// Write is part of http.ResponseWriter interface\n// It is passed through the compressor\nfunc (c *CompressingResponseWriter) Write(bytes []byte) (int, error) {\n\tif c.isCompressorClosed() {\n\t\treturn -1, errors.New(\"Compressing error: tried to write data using closed compressor\")\n\t}\n\treturn c.compressor.Write(bytes)\n}\n\n// CloseNotify is part of http.CloseNotifier interface\nfunc (c *CompressingResponseWriter) CloseNotify() <-chan bool {\n\treturn c.writer.(http.CloseNotifier).CloseNotify()\n}\n\n// Close the underlying compressor\nfunc (c *CompressingResponseWriter) Close() error {\n\tif c.isCompressorClosed() {\n\t\treturn errors.New(\"Compressing error: tried to close already closed compressor\")\n\t}\n\n\tc.compressor.Close()\n\tif ENCODING_GZIP == c.encoding {\n\t\tcurrentCompressorProvider.ReleaseGzipWriter(c.compressor.(*gzip.Writer))\n\t}\n\tif ENCODING_DEFLATE == c.encoding {\n\t\tcurrentCompressorProvider.ReleaseZlibWriter(c.compressor.(*zlib.Writer))\n\t}\n\t// gc hint needed?\n\tc.compressor = nil\n\treturn nil\n}\n\nfunc (c *CompressingResponseWriter) isCompressorClosed() bool {\n\treturn nil == c.compressor\n}\n\n// Hijack implements the Hijacker interface\n// This is especially useful when combining Container.EnabledContentEncoding\n// in combination with websockets (for instance gorilla/websocket)\nfunc (c *CompressingResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\thijacker, ok := c.writer.(http.Hijacker)\n\tif !ok {\n\t\treturn nil, nil, errors.New(\"ResponseWriter doesn't support Hijacker interface\")\n\t}\n\treturn hijacker.Hijack()\n}\n\n// WantsCompressedResponse reads the Accept-Encoding header to see if and which encoding is requested.\n// It also inspects the httpWriter whether its content-encoding is already set (non-empty).\nfunc wantsCompressedResponse(httpRequest *http.Request, httpWriter http.ResponseWriter) (bool, string) {\n\tif contentEncoding := httpWriter.Header().Get(HEADER_ContentEncoding); contentEncoding != \"\" {\n\t\treturn false, \"\"\n\t}\n\theader := httpRequest.Header.Get(HEADER_AcceptEncoding)\n\tgi := strings.Index(header, ENCODING_GZIP)\n\tzi := strings.Index(header, ENCODING_DEFLATE)\n\t// use in order of appearance\n\tif gi == -1 {\n\t\treturn zi != -1, ENCODING_DEFLATE\n\t} else if zi == -1 {\n\t\treturn gi != -1, ENCODING_GZIP\n\t} else {\n\t\tif gi < zi {\n\t\t\treturn true, ENCODING_GZIP\n\t\t}\n\t\treturn true, ENCODING_DEFLATE\n\t}\n}\n\n// NewCompressingResponseWriter create a CompressingResponseWriter for a known encoding = {gzip,deflate}\nfunc NewCompressingResponseWriter(httpWriter http.ResponseWriter, encoding string) (*CompressingResponseWriter, error) {\n\thttpWriter.Header().Set(HEADER_ContentEncoding, encoding)\n\tc := new(CompressingResponseWriter)\n\tc.writer = httpWriter\n\tvar err error\n\tif ENCODING_GZIP == encoding {\n\t\tw := currentCompressorProvider.AcquireGzipWriter()\n\t\tw.Reset(httpWriter)\n\t\tc.compressor = w\n\t\tc.encoding = ENCODING_GZIP\n\t} else if ENCODING_DEFLATE == encoding {\n\t\tw := currentCompressorProvider.AcquireZlibWriter()\n\t\tw.Reset(httpWriter)\n\t\tc.compressor = w\n\t\tc.encoding = ENCODING_DEFLATE\n\t} else {\n\t\treturn nil, errors.New(\"Unknown encoding:\" + encoding)\n\t}\n\treturn c, err\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_cache.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n)\n\n// BoundedCachedCompressors is a CompressorProvider that uses a cache with a fixed amount\n// of writers and readers (resources).\n// If a new resource is acquired and all are in use, it will return a new unmanaged resource.\ntype BoundedCachedCompressors struct {\n\tgzipWriters     chan *gzip.Writer\n\tgzipReaders     chan *gzip.Reader\n\tzlibWriters     chan *zlib.Writer\n\twritersCapacity int\n\treadersCapacity int\n}\n\n// NewBoundedCachedCompressors returns a new, with filled cache,  BoundedCachedCompressors.\nfunc NewBoundedCachedCompressors(writersCapacity, readersCapacity int) *BoundedCachedCompressors {\n\tb := &BoundedCachedCompressors{\n\t\tgzipWriters:     make(chan *gzip.Writer, writersCapacity),\n\t\tgzipReaders:     make(chan *gzip.Reader, readersCapacity),\n\t\tzlibWriters:     make(chan *zlib.Writer, writersCapacity),\n\t\twritersCapacity: writersCapacity,\n\t\treadersCapacity: readersCapacity,\n\t}\n\tfor ix := 0; ix < writersCapacity; ix++ {\n\t\tb.gzipWriters <- newGzipWriter()\n\t\tb.zlibWriters <- newZlibWriter()\n\t}\n\tfor ix := 0; ix < readersCapacity; ix++ {\n\t\tb.gzipReaders <- newGzipReader()\n\t}\n\treturn b\n}\n\n// AcquireGzipWriter returns an resettable *gzip.Writer. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireGzipWriter() *gzip.Writer {\n\tvar writer *gzip.Writer\n\tselect {\n\tcase writer, _ = <-b.gzipWriters:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\twriter = newGzipWriter()\n\t}\n\treturn writer\n}\n\n// ReleaseGzipWriter accepts a writer (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseGzipWriter(w *gzip.Writer) {\n\t// forget the unmanaged ones\n\tif len(b.gzipWriters) < b.writersCapacity {\n\t\tb.gzipWriters <- w\n\t}\n}\n\n// AcquireGzipReader returns a *gzip.Reader. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireGzipReader() *gzip.Reader {\n\tvar reader *gzip.Reader\n\tselect {\n\tcase reader, _ = <-b.gzipReaders:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\treader = newGzipReader()\n\t}\n\treturn reader\n}\n\n// ReleaseGzipReader accepts a reader (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseGzipReader(r *gzip.Reader) {\n\t// forget the unmanaged ones\n\tif len(b.gzipReaders) < b.readersCapacity {\n\t\tb.gzipReaders <- r\n\t}\n}\n\n// AcquireZlibWriter returns an resettable *zlib.Writer. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireZlibWriter() *zlib.Writer {\n\tvar writer *zlib.Writer\n\tselect {\n\tcase writer, _ = <-b.zlibWriters:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\twriter = newZlibWriter()\n\t}\n\treturn writer\n}\n\n// ReleaseZlibWriter accepts a writer (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseZlibWriter(w *zlib.Writer) {\n\t// forget the unmanaged ones\n\tif len(b.zlibWriters) < b.writersCapacity {\n\t\tb.zlibWriters <- w\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_pools.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n\t\"sync\"\n)\n\n// SyncPoolCompessors is a CompressorProvider that use the standard sync.Pool.\ntype SyncPoolCompessors struct {\n\tGzipWriterPool *sync.Pool\n\tGzipReaderPool *sync.Pool\n\tZlibWriterPool *sync.Pool\n}\n\n// NewSyncPoolCompessors returns a new (\"empty\") SyncPoolCompessors.\nfunc NewSyncPoolCompessors() *SyncPoolCompessors {\n\treturn &SyncPoolCompessors{\n\t\tGzipWriterPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newGzipWriter() },\n\t\t},\n\t\tGzipReaderPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newGzipReader() },\n\t\t},\n\t\tZlibWriterPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newZlibWriter() },\n\t\t},\n\t}\n}\n\nfunc (s *SyncPoolCompessors) AcquireGzipWriter() *gzip.Writer {\n\treturn s.GzipWriterPool.Get().(*gzip.Writer)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseGzipWriter(w *gzip.Writer) {\n\ts.GzipWriterPool.Put(w)\n}\n\nfunc (s *SyncPoolCompessors) AcquireGzipReader() *gzip.Reader {\n\treturn s.GzipReaderPool.Get().(*gzip.Reader)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseGzipReader(r *gzip.Reader) {\n\ts.GzipReaderPool.Put(r)\n}\n\nfunc (s *SyncPoolCompessors) AcquireZlibWriter() *zlib.Writer {\n\treturn s.ZlibWriterPool.Get().(*zlib.Writer)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseZlibWriter(w *zlib.Writer) {\n\ts.ZlibWriterPool.Put(w)\n}\n\nfunc newGzipWriter() *gzip.Writer {\n\t// create with an empty bytes writer; it will be replaced before using the gzipWriter\n\twriter, err := gzip.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn writer\n}\n\nfunc newGzipReader() *gzip.Reader {\n\t// create with an empty reader (but with GZIP header); it will be replaced before using the gzipReader\n\t// we can safely use currentCompressProvider because it is set on package initialization.\n\tw := currentCompressorProvider.AcquireGzipWriter()\n\tdefer currentCompressorProvider.ReleaseGzipWriter(w)\n\tb := new(bytes.Buffer)\n\tw.Reset(b)\n\tw.Flush()\n\tw.Close()\n\treader, err := gzip.NewReader(bytes.NewReader(b.Bytes()))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn reader\n}\n\nfunc newZlibWriter() *zlib.Writer {\n\twriter, err := zlib.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn writer\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressors.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n)\n\n// CompressorProvider describes a component that can provider compressors for the std methods.\ntype CompressorProvider interface {\n\t// Returns a *gzip.Writer which needs to be released later.\n\t// Before using it, call Reset().\n\tAcquireGzipWriter() *gzip.Writer\n\n\t// Releases an acquired *gzip.Writer.\n\tReleaseGzipWriter(w *gzip.Writer)\n\n\t// Returns a *gzip.Reader which needs to be released later.\n\tAcquireGzipReader() *gzip.Reader\n\n\t// Releases an acquired *gzip.Reader.\n\tReleaseGzipReader(w *gzip.Reader)\n\n\t// Returns a *zlib.Writer which needs to be released later.\n\t// Before using it, call Reset().\n\tAcquireZlibWriter() *zlib.Writer\n\n\t// Releases an acquired *zlib.Writer.\n\tReleaseZlibWriter(w *zlib.Writer)\n}\n\n// DefaultCompressorProvider is the actual provider of compressors (zlib or gzip).\nvar currentCompressorProvider CompressorProvider\n\nfunc init() {\n\tcurrentCompressorProvider = NewSyncPoolCompessors()\n}\n\n// CurrentCompressorProvider returns the current CompressorProvider.\n// It is initialized using a SyncPoolCompessors.\nfunc CurrentCompressorProvider() CompressorProvider {\n\treturn currentCompressorProvider\n}\n\n// SetCompressorProvider sets the actual provider of compressors (zlib or gzip).\nfunc SetCompressorProvider(p CompressorProvider) {\n\tif p == nil {\n\t\tpanic(\"cannot set compressor provider to nil\")\n\t}\n\tcurrentCompressorProvider = p\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/constants.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nconst (\n\tMIME_XML   = \"application/xml\"          // Accept or Content-Type used in Consumes() and/or Produces()\n\tMIME_JSON  = \"application/json\"         // Accept or Content-Type used in Consumes() and/or Produces()\n\tMIME_OCTET = \"application/octet-stream\" // If Content-Type is not present in request, use the default\n\n\tHEADER_Allow                         = \"Allow\"\n\tHEADER_Accept                        = \"Accept\"\n\tHEADER_Origin                        = \"Origin\"\n\tHEADER_ContentType                   = \"Content-Type\"\n\tHEADER_LastModified                  = \"Last-Modified\"\n\tHEADER_AcceptEncoding                = \"Accept-Encoding\"\n\tHEADER_ContentEncoding               = \"Content-Encoding\"\n\tHEADER_AccessControlExposeHeaders    = \"Access-Control-Expose-Headers\"\n\tHEADER_AccessControlRequestMethod    = \"Access-Control-Request-Method\"\n\tHEADER_AccessControlRequestHeaders   = \"Access-Control-Request-Headers\"\n\tHEADER_AccessControlAllowMethods     = \"Access-Control-Allow-Methods\"\n\tHEADER_AccessControlAllowOrigin      = \"Access-Control-Allow-Origin\"\n\tHEADER_AccessControlAllowCredentials = \"Access-Control-Allow-Credentials\"\n\tHEADER_AccessControlAllowHeaders     = \"Access-Control-Allow-Headers\"\n\tHEADER_AccessControlMaxAge           = \"Access-Control-Max-Age\"\n\n\tENCODING_GZIP    = \"gzip\"\n\tENCODING_DEFLATE = \"deflate\"\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/container.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// Container holds a collection of WebServices and a http.ServeMux to dispatch http requests.\n// The requests are further dispatched to routes of WebServices using a RouteSelector\ntype Container struct {\n\twebServicesLock        sync.RWMutex\n\twebServices            []*WebService\n\tServeMux               *http.ServeMux\n\tisRegisteredOnRoot     bool\n\tcontainerFilters       []FilterFunction\n\tdoNotRecover           bool // default is true\n\trecoverHandleFunc      RecoverHandleFunction\n\tserviceErrorHandleFunc ServiceErrorHandleFunction\n\trouter                 RouteSelector // default is a CurlyRouter (RouterJSR311 is a slower alternative)\n\tcontentEncodingEnabled bool          // default is false\n}\n\n// NewContainer creates a new Container using a new ServeMux and default router (CurlyRouter)\nfunc NewContainer() *Container {\n\treturn &Container{\n\t\twebServices:            []*WebService{},\n\t\tServeMux:               http.NewServeMux(),\n\t\tisRegisteredOnRoot:     false,\n\t\tcontainerFilters:       []FilterFunction{},\n\t\tdoNotRecover:           true,\n\t\trecoverHandleFunc:      logStackOnRecover,\n\t\tserviceErrorHandleFunc: writeServiceError,\n\t\trouter:                 CurlyRouter{},\n\t\tcontentEncodingEnabled: false}\n}\n\n// RecoverHandleFunction declares functions that can be used to handle a panic situation.\n// The first argument is what recover() returns. The second must be used to communicate an error response.\ntype RecoverHandleFunction func(interface{}, http.ResponseWriter)\n\n// RecoverHandler changes the default function (logStackOnRecover) to be called\n// when a panic is detected. DoNotRecover must be have its default value (=false).\nfunc (c *Container) RecoverHandler(handler RecoverHandleFunction) {\n\tc.recoverHandleFunc = handler\n}\n\n// ServiceErrorHandleFunction declares functions that can be used to handle a service error situation.\n// The first argument is the service error, the second is the request that resulted in the error and\n// the third must be used to communicate an error response.\ntype ServiceErrorHandleFunction func(ServiceError, *Request, *Response)\n\n// ServiceErrorHandler changes the default function (writeServiceError) to be called\n// when a ServiceError is detected.\nfunc (c *Container) ServiceErrorHandler(handler ServiceErrorHandleFunction) {\n\tc.serviceErrorHandleFunc = handler\n}\n\n// DoNotRecover controls whether panics will be caught to return HTTP 500.\n// If set to true, Route functions are responsible for handling any error situation.\n// Default value is true.\nfunc (c *Container) DoNotRecover(doNot bool) {\n\tc.doNotRecover = doNot\n}\n\n// Router changes the default Router (currently CurlyRouter)\nfunc (c *Container) Router(aRouter RouteSelector) {\n\tc.router = aRouter\n}\n\n// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses.\nfunc (c *Container) EnableContentEncoding(enabled bool) {\n\tc.contentEncodingEnabled = enabled\n}\n\n// Add a WebService to the Container. It will detect duplicate root paths and exit in that case.\nfunc (c *Container) Add(service *WebService) *Container {\n\tc.webServicesLock.Lock()\n\tdefer c.webServicesLock.Unlock()\n\n\t// if rootPath was not set then lazy initialize it\n\tif len(service.rootPath) == 0 {\n\t\tservice.Path(\"/\")\n\t}\n\n\t// cannot have duplicate root paths\n\tfor _, each := range c.webServices {\n\t\tif each.RootPath() == service.RootPath() {\n\t\t\tlog.Printf(\"WebService with duplicate root path detected:['%v']\", each)\n\t\t\tos.Exit(1)\n\t\t}\n\t}\n\n\t// If not registered on root then add specific mapping\n\tif !c.isRegisteredOnRoot {\n\t\tc.isRegisteredOnRoot = c.addHandler(service, c.ServeMux)\n\t}\n\tc.webServices = append(c.webServices, service)\n\treturn c\n}\n\n// addHandler may set a new HandleFunc for the serveMux\n// this function must run inside the critical region protected by the webServicesLock.\n// returns true if the function was registered on root (\"/\")\nfunc (c *Container) addHandler(service *WebService, serveMux *http.ServeMux) bool {\n\tpattern := fixedPrefixPath(service.RootPath())\n\t// check if root path registration is needed\n\tif \"/\" == pattern || \"\" == pattern {\n\t\tserveMux.HandleFunc(\"/\", c.dispatch)\n\t\treturn true\n\t}\n\t// detect if registration already exists\n\talreadyMapped := false\n\tfor _, each := range c.webServices {\n\t\tif each.RootPath() == service.RootPath() {\n\t\t\talreadyMapped = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !alreadyMapped {\n\t\tserveMux.HandleFunc(pattern, c.dispatch)\n\t\tif !strings.HasSuffix(pattern, \"/\") {\n\t\t\tserveMux.HandleFunc(pattern+\"/\", c.dispatch)\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c *Container) Remove(ws *WebService) error {\n\tif c.ServeMux == http.DefaultServeMux {\n\t\terrMsg := fmt.Sprintf(\"cannot remove a WebService from a Container using the DefaultServeMux: ['%v']\", ws)\n\t\tlog.Print(errMsg)\n\t\treturn errors.New(errMsg)\n\t}\n\tc.webServicesLock.Lock()\n\tdefer c.webServicesLock.Unlock()\n\t// build a new ServeMux and re-register all WebServices\n\tnewServeMux := http.NewServeMux()\n\tnewServices := []*WebService{}\n\tnewIsRegisteredOnRoot := false\n\tfor _, each := range c.webServices {\n\t\tif each.rootPath != ws.rootPath {\n\t\t\t// If not registered on root then add specific mapping\n\t\t\tif !newIsRegisteredOnRoot {\n\t\t\t\tnewIsRegisteredOnRoot = c.addHandler(each, newServeMux)\n\t\t\t}\n\t\t\tnewServices = append(newServices, each)\n\t\t}\n\t}\n\tc.webServices, c.ServeMux, c.isRegisteredOnRoot = newServices, newServeMux, newIsRegisteredOnRoot\n\treturn nil\n}\n\n// logStackOnRecover is the default RecoverHandleFunction and is called\n// when DoNotRecover is false and the recoverHandleFunc is not set for the container.\n// Default implementation logs the stacktrace and writes the stacktrace on the response.\n// This may be a security issue as it exposes sourcecode information.\nfunc logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) {\n\tvar buffer bytes.Buffer\n\tbuffer.WriteString(fmt.Sprintf(\"recover from panic situation: - %v\\r\\n\", panicReason))\n\tfor i := 2; ; i += 1 {\n\t\t_, file, line, ok := runtime.Caller(i)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tbuffer.WriteString(fmt.Sprintf(\"    %s:%d\\r\\n\", file, line))\n\t}\n\tlog.Print(buffer.String())\n\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\thttpWriter.Write(buffer.Bytes())\n}\n\n// writeServiceError is the default ServiceErrorHandleFunction and is called\n// when a ServiceError is returned during route selection. Default implementation\n// calls resp.WriteErrorString(err.Code, err.Message)\nfunc writeServiceError(err ServiceError, req *Request, resp *Response) {\n\tfor header, values := range err.Header {\n\t\tfor _, value := range values {\n\t\t\tresp.Header().Add(header, value)\n\t\t}\n\t}\n\tresp.WriteErrorString(err.Code, err.Message)\n}\n\n// Dispatch the incoming Http Request to a matching WebService.\nfunc (c *Container) Dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\tif httpWriter == nil {\n\t\tpanic(\"httpWriter cannot be nil\")\n\t}\n\tif httpRequest == nil {\n\t\tpanic(\"httpRequest cannot be nil\")\n\t}\n\tc.dispatch(httpWriter, httpRequest)\n}\n\n// Dispatch the incoming Http Request to a matching WebService.\nfunc (c *Container) dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t// so we can assign a compressing one later\n\twriter := httpWriter\n\n\t// CompressingResponseWriter should be closed after all operations are done\n\tdefer func() {\n\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\tcompressWriter.Close()\n\t\t}\n\t}()\n\n\t// Instal panic recovery unless told otherwise\n\tif !c.doNotRecover { // catch all for 500 response\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\tc.recoverHandleFunc(r, writer)\n\t\t\t\treturn\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Find best match Route ; err is non nil if no match was found\n\tvar webService *WebService\n\tvar route *Route\n\tvar err error\n\tfunc() {\n\t\tc.webServicesLock.RLock()\n\t\tdefer c.webServicesLock.RUnlock()\n\t\twebService, route, err = c.router.SelectRoute(\n\t\t\tc.webServices,\n\t\t\thttpRequest)\n\t}()\n\tif err != nil {\n\t\t// a non-200 response (may be compressed) has already been written\n\t\t// run container filters anyway ; they should not touch the response...\n\t\tchain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {\n\t\t\tswitch err.(type) {\n\t\t\tcase ServiceError:\n\t\t\t\tser := err.(ServiceError)\n\t\t\t\tc.serviceErrorHandleFunc(ser, req, resp)\n\t\t\t}\n\t\t\t// TODO\n\t\t}}\n\t\tchain.ProcessFilter(NewRequest(httpRequest), NewResponse(writer))\n\t\treturn\n\t}\n\n\t// Unless httpWriter is already an CompressingResponseWriter see if we need to install one\n\tif _, isCompressing := httpWriter.(*CompressingResponseWriter); !isCompressing {\n\t\t// Detect if compression is needed\n\t\t// assume without compression, test for override\n\t\tcontentEncodingEnabled := c.contentEncodingEnabled\n\t\tif route != nil && route.contentEncodingEnabled != nil {\n\t\t\tcontentEncodingEnabled = *route.contentEncodingEnabled\n\t\t}\n\t\tif contentEncodingEnabled {\n\t\t\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\t\t\tif doCompress {\n\t\t\t\tvar err error\n\t\t\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpathProcessor, routerProcessesPath := c.router.(PathProcessor)\n\tif !routerProcessesPath {\n\t\tpathProcessor = defaultPathProcessor{}\n\t}\n\tpathParams := pathProcessor.ExtractParameters(route, webService, httpRequest.URL.Path)\n\twrappedRequest, wrappedResponse := route.wrapRequestResponse(writer, httpRequest, pathParams)\n\t// pass through filters (if any)\n\tif size := len(c.containerFilters) + len(webService.filters) + len(route.Filters); size > 0 {\n\t\t// compose filter chain\n\t\tallFilters := make([]FilterFunction, 0, size)\n\t\tallFilters = append(allFilters, c.containerFilters...)\n\t\tallFilters = append(allFilters, webService.filters...)\n\t\tallFilters = append(allFilters, route.Filters...)\n\t\tchain := FilterChain{\n\t\t\tFilters:       allFilters,\n\t\t\tTarget:        route.Function,\n\t\t\tParameterDocs: route.ParameterDocs,\n\t\t\tOperation:     route.Operation,\n\t\t}\n\t\tchain.ProcessFilter(wrappedRequest, wrappedResponse)\n\t} else {\n\t\t// no filters, handle request by route\n\t\troute.Function(wrappedRequest, wrappedResponse)\n\t}\n}\n\n// fixedPrefixPath returns the fixed part of the partspec ; it may include template vars {}\nfunc fixedPrefixPath(pathspec string) string {\n\tvarBegin := strings.Index(pathspec, \"{\")\n\tif -1 == varBegin {\n\t\treturn pathspec\n\t}\n\treturn pathspec[:varBegin]\n}\n\n// ServeHTTP implements net/http.Handler therefore a Container can be a Handler in a http.Server\nfunc (c *Container) ServeHTTP(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t// Skip, if content encoding is disabled\n\tif !c.contentEncodingEnabled {\n\t\tc.ServeMux.ServeHTTP(httpWriter, httpRequest)\n\t\treturn\n\t}\n\t// content encoding is enabled\n\n\t// Skip, if httpWriter is already an CompressingResponseWriter\n\tif _, ok := httpWriter.(*CompressingResponseWriter); ok {\n\t\tc.ServeMux.ServeHTTP(httpWriter, httpRequest)\n\t\treturn\n\t}\n\n\twriter := httpWriter\n\t// CompressingResponseWriter should be closed after all operations are done\n\tdefer func() {\n\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\tcompressWriter.Close()\n\t\t}\n\t}()\n\n\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\tif doCompress {\n\t\tvar err error\n\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\tif err != nil {\n\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\treturn\n\t\t}\n\t}\n\n\tc.ServeMux.ServeHTTP(writer, httpRequest)\n}\n\n// Handle registers the handler for the given pattern. If a handler already exists for pattern, Handle panics.\nfunc (c *Container) Handle(pattern string, handler http.Handler) {\n\tc.ServeMux.Handle(pattern, http.HandlerFunc(func(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t\t// Skip, if httpWriter is already an CompressingResponseWriter\n\t\tif _, ok := httpWriter.(*CompressingResponseWriter); ok {\n\t\t\thandler.ServeHTTP(httpWriter, httpRequest)\n\t\t\treturn\n\t\t}\n\n\t\twriter := httpWriter\n\n\t\t// CompressingResponseWriter should be closed after all operations are done\n\t\tdefer func() {\n\t\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\t\tcompressWriter.Close()\n\t\t\t}\n\t\t}()\n\n\t\tif c.contentEncodingEnabled {\n\t\t\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\t\t\tif doCompress {\n\t\t\t\tvar err error\n\t\t\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thandler.ServeHTTP(writer, httpRequest)\n\t}))\n}\n\n// HandleWithFilter registers the handler for the given pattern.\n// Container's filter chain is applied for handler.\n// If a handler already exists for pattern, HandleWithFilter panics.\nfunc (c *Container) HandleWithFilter(pattern string, handler http.Handler) {\n\tf := func(httpResponse http.ResponseWriter, httpRequest *http.Request) {\n\t\tif len(c.containerFilters) == 0 {\n\t\t\thandler.ServeHTTP(httpResponse, httpRequest)\n\t\t\treturn\n\t\t}\n\n\t\tchain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {\n\t\t\thandler.ServeHTTP(resp, req.Request)\n\t\t}}\n\t\tchain.ProcessFilter(NewRequest(httpRequest), NewResponse(httpResponse))\n\t}\n\n\tc.Handle(pattern, http.HandlerFunc(f))\n}\n\n// Filter appends a container FilterFunction. These are called before dispatching\n// a http.Request to a WebService from the container\nfunc (c *Container) Filter(filter FilterFunction) {\n\tc.containerFilters = append(c.containerFilters, filter)\n}\n\n// RegisteredWebServices returns the collections of added WebServices\nfunc (c *Container) RegisteredWebServices() []*WebService {\n\tc.webServicesLock.RLock()\n\tdefer c.webServicesLock.RUnlock()\n\tresult := make([]*WebService, len(c.webServices))\n\tfor ix := range c.webServices {\n\t\tresult[ix] = c.webServices[ix]\n\t}\n\treturn result\n}\n\n// computeAllowedMethods returns a list of HTTP methods that are valid for a Request\nfunc (c *Container) computeAllowedMethods(req *Request) []string {\n\t// Go through all RegisteredWebServices() and all its Routes to collect the options\n\tmethods := []string{}\n\trequestPath := req.Request.URL.Path\n\tfor _, ws := range c.RegisteredWebServices() {\n\t\tmatches := ws.pathExpr.Matcher.FindStringSubmatch(requestPath)\n\t\tif matches != nil {\n\t\t\tfinalMatch := matches[len(matches)-1]\n\t\t\tfor _, rt := range ws.Routes() {\n\t\t\t\tmatches := rt.pathExpr.Matcher.FindStringSubmatch(finalMatch)\n\t\t\t\tif matches != nil {\n\t\t\t\t\tlastMatch := matches[len(matches)-1]\n\t\t\t\t\tif lastMatch == \"\" || lastMatch == \"/\" { // do not include if value is neither empty nor ‘/’.\n\t\t\t\t\t\tmethods = append(methods, rt.Method)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// methods = append(methods, \"OPTIONS\")  not sure about this\n\treturn methods\n}\n\n// newBasicRequestResponse creates a pair of Request,Response from its http versions.\n// It is basic because no parameter or (produces) content-type information is given.\nfunc newBasicRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request) (*Request, *Response) {\n\tresp := NewResponse(httpWriter)\n\tresp.requestAccept = httpRequest.Header.Get(HEADER_Accept)\n\treturn NewRequest(httpRequest), resp\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/cors_filter.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// CrossOriginResourceSharing is used to create a Container Filter that implements CORS.\n// Cross-origin resource sharing (CORS) is a mechanism that allows JavaScript on a web page\n// to make XMLHttpRequests to another domain, not the domain the JavaScript originated from.\n//\n// http://en.wikipedia.org/wiki/Cross-origin_resource_sharing\n// http://enable-cors.org/server.html\n// http://www.html5rocks.com/en/tutorials/cors/#toc-handling-a-not-so-simple-request\ntype CrossOriginResourceSharing struct {\n\tExposeHeaders []string // list of Header names\n\n\t// AllowedHeaders is alist of Header names. Checking is case-insensitive.\n\t// The list may contain the special wildcard string \".*\" ; all is allowed\n\tAllowedHeaders []string\n\n\t// AllowedDomains is a list of allowed values for Http Origin.\n\t// The list may contain the special wildcard string \".*\" ; all is allowed\n\t// If empty all are allowed.\n\tAllowedDomains []string\n\n\t// AllowedDomainFunc is optional and is a function that will do the check\n\t// when the origin is not part of the AllowedDomains and it does not contain the wildcard \".*\".\n\tAllowedDomainFunc func(origin string) bool\n\n\t// AllowedMethods is either empty or has a list of http methods names. Checking is case-insensitive.\n\tAllowedMethods []string\n\tMaxAge         int // number of seconds before requiring new Options request\n\tCookiesAllowed bool\n\tContainer      *Container\n\n\tallowedOriginPatterns []*regexp.Regexp // internal field for origin regexp check.\n}\n\n// Filter is a filter function that implements the CORS flow as documented on http://enable-cors.org/server.html\n// and http://www.html5rocks.com/static/images/cors_server_flowchart.png\nfunc (c CrossOriginResourceSharing) Filter(req *Request, resp *Response, chain *FilterChain) {\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\tif len(origin) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Print(\"no Http header Origin set\")\n\t\t}\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif !c.isOriginAllowed(origin) { // check whether this origin is allowed\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"HTTP Origin:%s is not part of %v, neither matches any part of %v\", origin, c.AllowedDomains, c.allowedOriginPatterns)\n\t\t}\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif req.Request.Method != \"OPTIONS\" {\n\t\tc.doActualRequest(req, resp)\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif acrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod); acrm != \"\" {\n\t\tc.doPreflightRequest(req, resp)\n\t} else {\n\t\tc.doActualRequest(req, resp)\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) doActualRequest(req *Request, resp *Response) {\n\tc.setOptionsHeaders(req, resp)\n\t// continue processing the response\n}\n\nfunc (c *CrossOriginResourceSharing) doPreflightRequest(req *Request, resp *Response) {\n\tif len(c.AllowedMethods) == 0 {\n\t\tif c.Container == nil {\n\t\t\tc.AllowedMethods = DefaultContainer.computeAllowedMethods(req)\n\t\t} else {\n\t\t\tc.AllowedMethods = c.Container.computeAllowedMethods(req)\n\t\t}\n\t}\n\n\tacrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod)\n\tif !c.isValidAccessControlRequestMethod(acrm, c.AllowedMethods) {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"Http header %s:%s is not in %v\",\n\t\t\t\tHEADER_AccessControlRequestMethod,\n\t\t\t\tacrm,\n\t\t\t\tc.AllowedMethods)\n\t\t}\n\t\treturn\n\t}\n\tacrhs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)\n\tif len(acrhs) > 0 {\n\t\tfor _, each := range strings.Split(acrhs, \",\") {\n\t\t\tif !c.isValidAccessControlRequestHeader(strings.Trim(each, \" \")) {\n\t\t\t\tif trace {\n\t\t\t\t\ttraceLogger.Printf(\"Http header %s:%s is not in %v\",\n\t\t\t\t\t\tHEADER_AccessControlRequestHeaders,\n\t\t\t\t\t\tacrhs,\n\t\t\t\t\t\tc.AllowedHeaders)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\tresp.AddHeader(HEADER_AccessControlAllowMethods, strings.Join(c.AllowedMethods, \",\"))\n\tresp.AddHeader(HEADER_AccessControlAllowHeaders, acrhs)\n\tc.setOptionsHeaders(req, resp)\n\n\t// return http 200 response, no body\n}\n\nfunc (c CrossOriginResourceSharing) setOptionsHeaders(req *Request, resp *Response) {\n\tc.checkAndSetExposeHeaders(resp)\n\tc.setAllowOriginHeader(req, resp)\n\tc.checkAndSetAllowCredentials(resp)\n\tif c.MaxAge > 0 {\n\t\tresp.AddHeader(HEADER_AccessControlMaxAge, strconv.Itoa(c.MaxAge))\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) isOriginAllowed(origin string) bool {\n\tif len(origin) == 0 {\n\t\treturn false\n\t}\n\tlowerOrigin := strings.ToLower(origin)\n\tif len(c.AllowedDomains) == 0 {\n\t\tif c.AllowedDomainFunc != nil {\n\t\t\treturn c.AllowedDomainFunc(lowerOrigin)\n\t\t}\n\t\treturn true\n\t}\n\n\t// exact match on each allowed domain\n\tfor _, domain := range c.AllowedDomains {\n\t\tif domain == \".*\" || strings.ToLower(domain) == lowerOrigin {\n\t\t\treturn true\n\t\t}\n\t}\n\tif c.AllowedDomainFunc != nil {\n\t\treturn c.AllowedDomainFunc(origin)\n\t}\n\treturn false\n}\n\nfunc (c CrossOriginResourceSharing) setAllowOriginHeader(req *Request, resp *Response) {\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\tif c.isOriginAllowed(origin) {\n\t\tresp.AddHeader(HEADER_AccessControlAllowOrigin, origin)\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) checkAndSetExposeHeaders(resp *Response) {\n\tif len(c.ExposeHeaders) > 0 {\n\t\tresp.AddHeader(HEADER_AccessControlExposeHeaders, strings.Join(c.ExposeHeaders, \",\"))\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) checkAndSetAllowCredentials(resp *Response) {\n\tif c.CookiesAllowed {\n\t\tresp.AddHeader(HEADER_AccessControlAllowCredentials, \"true\")\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) isValidAccessControlRequestMethod(method string, allowedMethods []string) bool {\n\tfor _, each := range allowedMethods {\n\t\tif each == method {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c CrossOriginResourceSharing) isValidAccessControlRequestHeader(header string) bool {\n\tfor _, each := range c.AllowedHeaders {\n\t\tif strings.ToLower(each) == strings.ToLower(header) {\n\t\t\treturn true\n\t\t}\n\t\tif each == \"*\" {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/coverage.sh",
    "content": "go test -coverprofile=coverage.out\ngo tool cover -html=coverage.out"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// CurlyRouter expects Routes with paths that contain zero or more parameters in curly brackets.\ntype CurlyRouter struct{}\n\n// SelectRoute is part of the Router interface and returns the best match\n// for the WebService and its Route for the given Request.\nfunc (c CurlyRouter) SelectRoute(\n\twebServices []*WebService,\n\thttpRequest *http.Request) (selectedService *WebService, selected *Route, err error) {\n\n\trequestTokens := tokenizePath(httpRequest.URL.Path)\n\n\tdetectedService := c.detectWebService(requestTokens, webServices)\n\tif detectedService == nil {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no WebService was found to match URL path:%s\\n\", httpRequest.URL.Path)\n\t\t}\n\t\treturn nil, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\tcandidateRoutes := c.selectRoutes(detectedService, requestTokens)\n\tif len(candidateRoutes) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route in WebService with path %s was found to match URL path:%s\\n\", detectedService.rootPath, httpRequest.URL.Path)\n\t\t}\n\t\treturn detectedService, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\tselectedRoute, err := c.detectRoute(candidateRoutes, httpRequest)\n\tif selectedRoute == nil {\n\t\treturn detectedService, nil, err\n\t}\n\treturn detectedService, selectedRoute, nil\n}\n\n// selectRoutes return a collection of Route from a WebService that matches the path tokens from the request.\nfunc (c CurlyRouter) selectRoutes(ws *WebService, requestTokens []string) sortableCurlyRoutes {\n\tcandidates := make(sortableCurlyRoutes, 0, 8)\n\tfor _, each := range ws.routes {\n\t\tmatches, paramCount, staticCount := c.matchesRouteByPathTokens(each.pathParts, requestTokens, each.hasCustomVerb)\n\t\tif matches {\n\t\t\tcandidates.add(curlyRoute{each, paramCount, staticCount}) // TODO make sure Routes() return pointers?\n\t\t}\n\t}\n\tsort.Sort(candidates)\n\treturn candidates\n}\n\n// matchesRouteByPathTokens computes whether it matches, howmany parameters do match and what the number of static path elements are.\nfunc (c CurlyRouter) matchesRouteByPathTokens(routeTokens, requestTokens []string, routeHasCustomVerb bool) (matches bool, paramCount int, staticCount int) {\n\tif len(routeTokens) < len(requestTokens) {\n\t\t// proceed in matching only if last routeToken is wildcard\n\t\tcount := len(routeTokens)\n\t\tif count == 0 || !strings.HasSuffix(routeTokens[count-1], \"*}\") {\n\t\t\treturn false, 0, 0\n\t\t}\n\t\t// proceed\n\t}\n\tfor i, routeToken := range routeTokens {\n\t\tif i == len(requestTokens) {\n\t\t\t// reached end of request path\n\t\t\treturn false, 0, 0\n\t\t}\n\t\trequestToken := requestTokens[i]\n\t\tif routeHasCustomVerb && hasCustomVerb(routeToken){\n\t\t\tif !isMatchCustomVerb(routeToken, requestToken) {\n\t\t\t\treturn false, 0, 0\n\t\t\t}\n\t\t\tstaticCount++\n\t\t\trequestToken = removeCustomVerb(requestToken)\n\t\t\trouteToken = removeCustomVerb(routeToken)\n\t\t}\n\n\t\tif strings.HasPrefix(routeToken, \"{\") {\n\t\t\tparamCount++\n\t\t\tif colon := strings.Index(routeToken, \":\"); colon != -1 {\n\t\t\t\t// match by regex\n\t\t\t\tmatchesToken, matchesRemainder := c.regularMatchesPathToken(routeToken, colon, requestToken)\n\t\t\t\tif !matchesToken {\n\t\t\t\t\treturn false, 0, 0\n\t\t\t\t}\n\t\t\t\tif matchesRemainder {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t} else { // no { prefix\n\t\t\tif requestToken != routeToken {\n\t\t\t\treturn false, 0, 0\n\t\t\t}\n\t\t\tstaticCount++\n\t\t}\n\t}\n\treturn true, paramCount, staticCount\n}\n\n// regularMatchesPathToken tests whether the regular expression part of routeToken matches the requestToken or all remaining tokens\n// format routeToken is {someVar:someExpression}, e.g. {zipcode:[\\d][\\d][\\d][\\d][A-Z][A-Z]}\nfunc (c CurlyRouter) regularMatchesPathToken(routeToken string, colon int, requestToken string) (matchesToken bool, matchesRemainder bool) {\n\tregPart := routeToken[colon+1 : len(routeToken)-1]\n\tif regPart == \"*\" {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"wildcard parameter detected in route token %s that matches %s\\n\", routeToken, requestToken)\n\t\t}\n\t\treturn true, true\n\t}\n\tmatched, err := regexp.MatchString(regPart, requestToken)\n\treturn (matched && err == nil), false\n}\n\nvar jsr311Router = RouterJSR311{}\n\n// detectRoute selectes from a list of Route the first match by inspecting both the Accept and Content-Type\n// headers of the Request. See also RouterJSR311 in jsr311.go\nfunc (c CurlyRouter) detectRoute(candidateRoutes sortableCurlyRoutes, httpRequest *http.Request) (*Route, error) {\n\t// tracing is done inside detectRoute\n\treturn jsr311Router.detectRoute(candidateRoutes.routes(), httpRequest)\n}\n\n// detectWebService returns the best matching webService given the list of path tokens.\n// see also computeWebserviceScore\nfunc (c CurlyRouter) detectWebService(requestTokens []string, webServices []*WebService) *WebService {\n\tvar best *WebService\n\tscore := -1\n\tfor _, each := range webServices {\n\t\tmatches, eachScore := c.computeWebserviceScore(requestTokens, each.pathExpr.tokens)\n\t\tif matches && (eachScore > score) {\n\t\t\tbest = each\n\t\t\tscore = eachScore\n\t\t}\n\t}\n\treturn best\n}\n\n// computeWebserviceScore returns whether tokens match and\n// the weighted score of the longest matching consecutive tokens from the beginning.\nfunc (c CurlyRouter) computeWebserviceScore(requestTokens []string, tokens []string) (bool, int) {\n\tif len(tokens) > len(requestTokens) {\n\t\treturn false, 0\n\t}\n\tscore := 0\n\tfor i := 0; i < len(tokens); i++ {\n\t\teach := requestTokens[i]\n\t\tother := tokens[i]\n\t\tif len(each) == 0 && len(other) == 0 {\n\t\t\tscore++\n\t\t\tcontinue\n\t\t}\n\t\tif len(other) > 0 && strings.HasPrefix(other, \"{\") {\n\t\t\t// no empty match\n\t\t\tif len(each) == 0 {\n\t\t\t\treturn false, score\n\t\t\t}\n\t\t\tscore += 1\n\t\t} else {\n\t\t\t// not a parameter\n\t\t\tif each != other {\n\t\t\t\treturn false, score\n\t\t\t}\n\t\t\tscore += (len(tokens) - i) * 10 //fuzzy\n\t\t}\n\t}\n\treturn true, score\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly_route.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// curlyRoute exits for sorting Routes by the CurlyRouter based on number of parameters and number of static path elements.\ntype curlyRoute struct {\n\troute       Route\n\tparamCount  int\n\tstaticCount int\n}\n\n// sortableCurlyRoutes orders by most parameters and path elements first.\ntype sortableCurlyRoutes []curlyRoute\n\nfunc (s *sortableCurlyRoutes) add(route curlyRoute) {\n\t*s = append(*s, route)\n}\n\nfunc (s sortableCurlyRoutes) routes() (routes []Route) {\n\troutes = make([]Route, 0, len(s))\n\tfor _, each := range s {\n\t\troutes = append(routes, each.route) // TODO change return type\n\t}\n\treturn routes\n}\n\nfunc (s sortableCurlyRoutes) Len() int {\n\treturn len(s)\n}\nfunc (s sortableCurlyRoutes) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\nfunc (s sortableCurlyRoutes) Less(i, j int) bool {\n\ta := s[j]\n\tb := s[i]\n\n\t// primary key\n\tif a.staticCount < b.staticCount {\n\t\treturn true\n\t}\n\tif a.staticCount > b.staticCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif a.paramCount < b.paramCount {\n\t\treturn true\n\t}\n\tif a.paramCount > b.paramCount {\n\t\treturn false\n\t}\n\treturn a.route.Path < b.route.Path\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/custom_verb.go",
    "content": "package restful\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n)\n\nvar (\n\tcustomVerbReg = regexp.MustCompile(\":([A-Za-z]+)$\")\n)\n\nfunc hasCustomVerb(routeToken string) bool {\n\treturn customVerbReg.MatchString(routeToken)\n}\n\nfunc isMatchCustomVerb(routeToken string, pathToken string) bool {\n\trs := customVerbReg.FindStringSubmatch(routeToken)\n\tif len(rs) < 2 {\n\t\treturn false\n\t}\n\n\tcustomVerb := rs[1]\n\tspecificVerbReg := regexp.MustCompile(fmt.Sprintf(\":%s$\", customVerb))\n\treturn specificVerbReg.MatchString(pathToken)\n}\n\nfunc removeCustomVerb(str string) string {\n\treturn customVerbReg.ReplaceAllString(str, \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/doc.go",
    "content": "/*\nPackage restful , a lean package for creating REST-style WebServices without magic.\n\nWebServices and Routes\n\nA WebService has a collection of Route objects that dispatch incoming Http Requests to a function calls.\nTypically, a WebService has a root path (e.g. /users) and defines common MIME types for its routes.\nWebServices must be added to a container (see below) in order to handler Http requests from a server.\n\nA Route is defined by a HTTP method, an URL path and (optionally) the MIME types it consumes (Content-Type) and produces (Accept).\nThis package has the logic to find the best matching Route and if found, call its Function.\n\n\tws := new(restful.WebService)\n\tws.\n\t\tPath(\"/users\").\n\t\tConsumes(restful.MIME_JSON, restful.MIME_XML).\n\t\tProduces(restful.MIME_JSON, restful.MIME_XML)\n\n\tws.Route(ws.GET(\"/{user-id}\").To(u.findUser))  // u is a UserResource\n\n\t...\n\n\t// GET http://localhost:8080/users/1\n\tfunc (u UserResource) findUser(request *restful.Request, response *restful.Response) {\n\t\tid := request.PathParameter(\"user-id\")\n\t\t...\n\t}\n\nThe (*Request, *Response) arguments provide functions for reading information from the request and writing information back to the response.\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go with a full implementation.\n\nRegular expression matching Routes\n\nA Route parameter can be specified using the format \"uri/{var[:regexp]}\" or the special version \"uri/{var:*}\" for matching the tail of the path.\nFor example, /persons/{name:[A-Z][A-Z]} can be used to restrict values for the parameter \"name\" to only contain capital alphabetic characters.\nRegular expressions must use the standard Go syntax as described in the regexp package. (https://code.google.com/p/re2/wiki/Syntax)\nThis feature requires the use of a CurlyRouter.\n\nContainers\n\nA Container holds a collection of WebServices, Filters and a http.ServeMux for multiplexing http requests.\nUsing the statements \"restful.Add(...) and restful.Filter(...)\" will register WebServices and Filters to the Default Container.\nThe Default container of go-restful uses the http.DefaultServeMux.\nYou can create your own Container and create a new http.Server for that particular container.\n\n\tcontainer := restful.NewContainer()\n\tserver := &http.Server{Addr: \":8081\", Handler: container}\n\nFilters\n\nA filter dynamically intercepts requests and responses to transform or use the information contained in the requests or responses.\nYou can use filters to perform generic logging, measurement, authentication, redirect, set response headers etc.\nIn the restful package there are three hooks into the request,response flow where filters can be added.\nEach filter must define a FilterFunction:\n\n\tfunc (req *restful.Request, resp *restful.Response, chain *restful.FilterChain)\n\nUse the following statement to pass the request,response pair to the next filter or RouteFunction\n\n\tchain.ProcessFilter(req, resp)\n\nContainer Filters\n\nThese are processed before any registered WebService.\n\n\t// install a (global) filter for the default container (processed before any webservice)\n\trestful.Filter(globalLogging)\n\nWebService Filters\n\nThese are processed before any Route of a WebService.\n\n\t// install a webservice filter (processed before any route)\n\tws.Filter(webserviceLogging).Filter(measureTime)\n\n\nRoute Filters\n\nThese are processed before calling the function associated with the Route.\n\n\t// install 2 chained route filters (processed before calling findUser)\n\tws.Route(ws.GET(\"/{user-id}\").Filter(routeLogging).Filter(NewCountFilter().routeCounter).To(findUser))\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/filters/restful-filters.go with full implementations.\n\nResponse Encoding\n\nTwo encodings are supported: gzip and deflate. To enable this for all responses:\n\n\trestful.DefaultContainer.EnableContentEncoding(true)\n\nIf a Http request includes the Accept-Encoding header then the response content will be compressed using the specified encoding.\nAlternatively, you can create a Filter that performs the encoding and install it per WebService or Route.\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/encoding/restful-encoding-filter.go\n\nOPTIONS support\n\nBy installing a pre-defined container filter, your Webservice(s) can respond to the OPTIONS Http request.\n\n\tFilter(OPTIONSFilter())\n\nCORS\n\nBy installing the filter of a CrossOriginResourceSharing (CORS), your WebService(s) can handle CORS requests.\n\n\tcors := CrossOriginResourceSharing{ExposeHeaders: []string{\"X-My-Header\"}, CookiesAllowed: false, Container: DefaultContainer}\n\tFilter(cors.Filter)\n\nError Handling\n\nUnexpected things happen. If a request cannot be processed because of a failure, your service needs to tell via the response what happened and why.\nFor this reason HTTP status codes exist and it is important to use the correct code in every exceptional situation.\n\n\t400: Bad Request\n\nIf path or query parameters are not valid (content or type) then use http.StatusBadRequest.\n\n\t404: Not Found\n\nDespite a valid URI, the resource requested may not be available\n\n\t500: Internal Server Error\n\nIf the application logic could not process the request (or write the response) then use http.StatusInternalServerError.\n\n\t405: Method Not Allowed\n\nThe request has a valid URL but the method (GET,PUT,POST,...) is not allowed.\n\n\t406: Not Acceptable\n\nThe request does not have or has an unknown Accept Header set for this operation.\n\n\t415: Unsupported Media Type\n\nThe request does not have or has an unknown Content-Type Header set for this operation.\n\nServiceError\n\nIn addition to setting the correct (error) Http status code, you can choose to write a ServiceError message on the response.\n\nPerformance options\n\nThis package has several options that affect the performance of your service. It is important to understand them and how you can change it.\n\n\trestful.DefaultContainer.DoNotRecover(false)\n\nDoNotRecover controls whether panics will be caught to return HTTP 500.\nIf set to false, the container will recover from panics.\nDefault value is true\n\n\trestful.SetCompressorProvider(NewBoundedCachedCompressors(20, 20))\n\nIf content encoding is enabled then the default strategy for getting new gzip/zlib writers and readers is to use a sync.Pool.\nBecause writers are expensive structures, performance is even more improved when using a preloaded cache. You can also inject your own implementation.\n\nTrouble shooting\n\nThis package has the means to produce detail logging of the complete Http request matching process and filter invocation.\nEnabling this feature requires you to set an implementation of restful.StdLogger (e.g. log.Logger) instance such as:\n\n\trestful.TraceLogger(log.New(os.Stdout, \"[restful] \", log.LstdFlags|log.Lshortfile))\n\nLogging\n\nThe restful.SetLogger() method allows you to override the logger used by the package. By default restful\nuses the standard library `log` package and logs to stdout. Different logging packages are supported as\nlong as they conform to `StdLogger` interface defined in the `log` sub-package, writing an adapter for your\npreferred package is simple.\n\nResources\n\n[project]: https://github.com/emicklei/go-restful\n\n[examples]: https://github.com/emicklei/go-restful/blob/master/examples\n\n[design]:  http://ernestmicklei.com/2012/11/11/go-restful-api-design/\n\n[showcases]: https://github.com/emicklei/mora, https://github.com/emicklei/landskape\n\n(c) 2012-2015, http://ernestmicklei.com. MIT License\n*/\npackage restful\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/entity_accessors.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"encoding/xml\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// EntityReaderWriter can read and write values using an encoding such as JSON,XML.\ntype EntityReaderWriter interface {\n\t// Read a serialized version of the value from the request.\n\t// The Request may have a decompressing reader. Depends on Content-Encoding.\n\tRead(req *Request, v interface{}) error\n\n\t// Write a serialized version of the value on the response.\n\t// The Response may have a compressing writer. Depends on Accept-Encoding.\n\t// status should be a valid Http Status code\n\tWrite(resp *Response, status int, v interface{}) error\n}\n\n// entityAccessRegistry is a singleton\nvar entityAccessRegistry = &entityReaderWriters{\n\tprotection: new(sync.RWMutex),\n\taccessors:  map[string]EntityReaderWriter{},\n}\n\n// entityReaderWriters associates MIME to an EntityReaderWriter\ntype entityReaderWriters struct {\n\tprotection *sync.RWMutex\n\taccessors  map[string]EntityReaderWriter\n}\n\nfunc init() {\n\tRegisterEntityAccessor(MIME_JSON, NewEntityAccessorJSON(MIME_JSON))\n\tRegisterEntityAccessor(MIME_XML, NewEntityAccessorXML(MIME_XML))\n}\n\n// RegisterEntityAccessor add/overrides the ReaderWriter for encoding content with this MIME type.\nfunc RegisterEntityAccessor(mime string, erw EntityReaderWriter) {\n\tentityAccessRegistry.protection.Lock()\n\tdefer entityAccessRegistry.protection.Unlock()\n\tentityAccessRegistry.accessors[mime] = erw\n}\n\n// NewEntityAccessorJSON returns a new EntityReaderWriter for accessing JSON content.\n// This package is already initialized with such an accessor using the MIME_JSON contentType.\nfunc NewEntityAccessorJSON(contentType string) EntityReaderWriter {\n\treturn entityJSONAccess{ContentType: contentType}\n}\n\n// NewEntityAccessorXML returns a new EntityReaderWriter for accessing XML content.\n// This package is already initialized with such an accessor using the MIME_XML contentType.\nfunc NewEntityAccessorXML(contentType string) EntityReaderWriter {\n\treturn entityXMLAccess{ContentType: contentType}\n}\n\n// accessorAt returns the registered ReaderWriter for this MIME type.\nfunc (r *entityReaderWriters) accessorAt(mime string) (EntityReaderWriter, bool) {\n\tr.protection.RLock()\n\tdefer r.protection.RUnlock()\n\ter, ok := r.accessors[mime]\n\tif !ok {\n\t\t// retry with reverse lookup\n\t\t// more expensive but we are in an exceptional situation anyway\n\t\tfor k, v := range r.accessors {\n\t\t\tif strings.Contains(mime, k) {\n\t\t\t\treturn v, true\n\t\t\t}\n\t\t}\n\t}\n\treturn er, ok\n}\n\n// entityXMLAccess is a EntityReaderWriter for XML encoding\ntype entityXMLAccess struct {\n\t// This is used for setting the Content-Type header when writing\n\tContentType string\n}\n\n// Read unmarshalls the value from XML\nfunc (e entityXMLAccess) Read(req *Request, v interface{}) error {\n\treturn xml.NewDecoder(req.Request.Body).Decode(v)\n}\n\n// Write marshalls the value to JSON and set the Content-Type Header.\nfunc (e entityXMLAccess) Write(resp *Response, status int, v interface{}) error {\n\treturn writeXML(resp, status, e.ContentType, v)\n}\n\n// writeXML marshalls the value to JSON and set the Content-Type Header.\nfunc writeXML(resp *Response, status int, contentType string, v interface{}) error {\n\tif v == nil {\n\t\tresp.WriteHeader(status)\n\t\t// do not write a nil representation\n\t\treturn nil\n\t}\n\tif resp.prettyPrint {\n\t\t// pretty output must be created and written explicitly\n\t\toutput, err := xml.MarshalIndent(v, \" \", \" \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp.Header().Set(HEADER_ContentType, contentType)\n\t\tresp.WriteHeader(status)\n\t\t_, err = resp.Write([]byte(xml.Header))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resp.Write(output)\n\t\treturn err\n\t}\n\t// not-so-pretty\n\tresp.Header().Set(HEADER_ContentType, contentType)\n\tresp.WriteHeader(status)\n\treturn xml.NewEncoder(resp).Encode(v)\n}\n\n// entityJSONAccess is a EntityReaderWriter for JSON encoding\ntype entityJSONAccess struct {\n\t// This is used for setting the Content-Type header when writing\n\tContentType string\n}\n\n// Read unmarshalls the value from JSON\nfunc (e entityJSONAccess) Read(req *Request, v interface{}) error {\n\tdecoder := NewDecoder(req.Request.Body)\n\tdecoder.UseNumber()\n\treturn decoder.Decode(v)\n}\n\n// Write marshalls the value to JSON and set the Content-Type Header.\nfunc (e entityJSONAccess) Write(resp *Response, status int, v interface{}) error {\n\treturn writeJSON(resp, status, e.ContentType, v)\n}\n\n// write marshalls the value to JSON and set the Content-Type Header.\nfunc writeJSON(resp *Response, status int, contentType string, v interface{}) error {\n\tif v == nil {\n\t\tresp.WriteHeader(status)\n\t\t// do not write a nil representation\n\t\treturn nil\n\t}\n\tif resp.prettyPrint {\n\t\t// pretty output must be created and written explicitly\n\t\toutput, err := MarshalIndent(v, \"\", \" \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp.Header().Set(HEADER_ContentType, contentType)\n\t\tresp.WriteHeader(status)\n\t\t_, err = resp.Write(output)\n\t\treturn err\n\t}\n\t// not-so-pretty\n\tresp.Header().Set(HEADER_ContentType, contentType)\n\tresp.WriteHeader(status)\n\treturn NewEncoder(resp).Encode(v)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/extensions.go",
    "content": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// ExtensionProperties provides storage of vendor extensions for entities\ntype ExtensionProperties struct {\n\t// Extensions vendor extensions used to describe extra functionality\n\t// (https://swagger.io/docs/specification/2-0/swagger-extensions/)\n\tExtensions map[string]interface{}\n}\n\n// AddExtension adds or updates a key=value pair to the extension map.\nfunc (ep *ExtensionProperties) AddExtension(key string, value interface{}) {\n\tif ep.Extensions == nil {\n\t\tep.Extensions = map[string]interface{}{key: value}\n\t} else {\n\t\tep.Extensions[key] = value\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// FilterChain is a request scoped object to process one or more filters before calling the target RouteFunction.\ntype FilterChain struct {\n\tFilters       []FilterFunction // ordered list of FilterFunction\n\tIndex         int              // index into filters that is currently in progress\n\tTarget        RouteFunction    // function to call after passing all filters\n\tParameterDocs []*Parameter     // the parameter docs for the route\n\tOperation     string           // the name of the operation\n}\n\n// ProcessFilter passes the request,response pair through the next of Filters.\n// Each filter can decide to proceed to the next Filter or handle the Response itself.\nfunc (f *FilterChain) ProcessFilter(request *Request, response *Response) {\n\tif f.Index < len(f.Filters) {\n\t\tf.Index++\n\t\tf.Filters[f.Index-1](request, response, f)\n\t} else {\n\t\tf.Target(request, response)\n\t}\n}\n\n// FilterFunction definitions must call ProcessFilter on the FilterChain to pass on the control and eventually call the RouteFunction\ntype FilterFunction func(*Request, *Response, *FilterChain)\n\n// NoBrowserCacheFilter is a filter function to set HTTP headers that disable browser caching\n// See examples/restful-no-cache-filter.go for usage\nfunc NoBrowserCacheFilter(req *Request, resp *Response, chain *FilterChain) {\n\tresp.Header().Set(\"Cache-Control\", \"no-cache, no-store, must-revalidate\") // HTTP 1.1.\n\tresp.Header().Set(\"Pragma\", \"no-cache\")                                   // HTTP 1.0.\n\tresp.Header().Set(\"Expires\", \"0\")                                         // Proxies.\n\tchain.ProcessFilter(req, resp)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter_adapter.go",
    "content": "package restful\n\nimport (\n\t\"net/http\"\n)\n\n// HttpMiddlewareHandler is a function that takes a http.Handler and returns a http.Handler\ntype HttpMiddlewareHandler func(http.Handler) http.Handler\n\n// HttpMiddlewareHandlerToFilter converts a HttpMiddlewareHandler to a FilterFunction.\nfunc HttpMiddlewareHandlerToFilter(middleware HttpMiddlewareHandler) FilterFunction {\n\treturn func(req *Request, resp *Response, chain *FilterChain) {\n\t\tnext := http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {\n\t\t\treq.Request = r\n\t\t\tresp.ResponseWriter = rw\n\t\t\tchain.ProcessFilter(req, resp)\n\t\t})\n\n\t\tmiddleware(next).ServeHTTP(resp.ResponseWriter, req.Request)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/json.go",
    "content": "// +build !jsoniter\n\npackage restful\n\nimport \"encoding/json\"\n\nvar (\n\tMarshalIndent = json.MarshalIndent\n\tNewDecoder    = json.NewDecoder\n\tNewEncoder    = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsoniter.go",
    "content": "// +build jsoniter\n\npackage restful\n\nimport \"github.com/json-iterator/go\"\n\nvar (\n\tjson          = jsoniter.ConfigCompatibleWithStandardLibrary\n\tMarshalIndent = json.MarshalIndent\n\tNewDecoder    = json.NewDecoder\n\tNewEncoder    = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsr311.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// RouterJSR311 implements the flow for matching Requests to Routes (and consequently Resource Functions)\n// as specified by the JSR311 http://jsr311.java.net/nonav/releases/1.1/spec/spec.html.\n// RouterJSR311 implements the Router interface.\n// Concept of locators is not implemented.\ntype RouterJSR311 struct{}\n\n// SelectRoute is part of the Router interface and returns the best match\n// for the WebService and its Route for the given Request.\nfunc (r RouterJSR311) SelectRoute(\n\twebServices []*WebService,\n\thttpRequest *http.Request) (selectedService *WebService, selectedRoute *Route, err error) {\n\n\t// Identify the root resource class (WebService)\n\tdispatcher, finalMatch, err := r.detectDispatcher(httpRequest.URL.Path, webServices)\n\tif err != nil {\n\t\treturn nil, nil, NewError(http.StatusNotFound, \"\")\n\t}\n\t// Obtain the set of candidate methods (Routes)\n\troutes := r.selectRoutes(dispatcher, finalMatch)\n\tif len(routes) == 0 {\n\t\treturn dispatcher, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\n\t// Identify the method (Route) that will handle the request\n\troute, ok := r.detectRoute(routes, httpRequest)\n\treturn dispatcher, route, ok\n}\n\n// ExtractParameters is used to obtain the path parameters from the route using the same matching\n// engine as the JSR 311 router.\nfunc (r RouterJSR311) ExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string {\n\twebServiceExpr := webService.pathExpr\n\twebServiceMatches := webServiceExpr.Matcher.FindStringSubmatch(urlPath)\n\tpathParameters := r.extractParams(webServiceExpr, webServiceMatches)\n\trouteExpr := route.pathExpr\n\trouteMatches := routeExpr.Matcher.FindStringSubmatch(webServiceMatches[len(webServiceMatches)-1])\n\trouteParams := r.extractParams(routeExpr, routeMatches)\n\tfor key, value := range routeParams {\n\t\tpathParameters[key] = value\n\t}\n\treturn pathParameters\n}\n\nfunc (RouterJSR311) extractParams(pathExpr *pathExpression, matches []string) map[string]string {\n\tparams := map[string]string{}\n\tfor i := 1; i < len(matches); i++ {\n\t\tif len(pathExpr.VarNames) >= i {\n\t\t\tparams[pathExpr.VarNames[i-1]] = matches[i]\n\t\t}\n\t}\n\treturn params\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2\nfunc (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Request) (*Route, error) {\n\tcandidates := make([]*Route, 0, 8)\n\tfor i, each := range routes {\n\t\tok := true\n\t\tfor _, fn := range each.If {\n\t\t\tif !fn(httpRequest) {\n\t\t\t\tok = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif ok {\n\t\t\tcandidates = append(candidates, &routes[i])\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that passes conditional checks\", len(routes))\n\t\t}\n\t\treturn nil, NewError(http.StatusNotFound, \"404: Not Found\")\n\t}\n\n\t// http method\n\tprevious := candidates\n\tcandidates = candidates[:0]\n\tfor _, each := range previous {\n\t\tif httpRequest.Method == each.Method {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (in %d routes) that matches HTTP method %s\\n\", len(previous), httpRequest.Method)\n\t\t}\n\t\tallowed := []string{}\n\tallowedLoop:\n\t\tfor _, candidate := range previous {\n\t\t\tfor _, method := range allowed {\n\t\t\t\tif method == candidate.Method {\n\t\t\t\t\tcontinue allowedLoop\n\t\t\t\t}\n\t\t\t}\n\t\t\tallowed = append(allowed, candidate.Method)\n\t\t}\n\t\theader := http.Header{\"Allow\": []string{strings.Join(allowed, \", \")}}\n\t\treturn nil, NewErrorWithHeader(http.StatusMethodNotAllowed, \"405: Method Not Allowed\", header)\n\t}\n\n\t// content-type\n\tcontentType := httpRequest.Header.Get(HEADER_ContentType)\n\tprevious = candidates\n\tcandidates = candidates[:0]\n\tfor _, each := range previous {\n\t\tif each.matchesContentType(contentType) {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that matches HTTP Content-Type: %s\\n\", len(previous), contentType)\n\t\t}\n\t\tif httpRequest.ContentLength > 0 {\n\t\t\treturn nil, NewError(http.StatusUnsupportedMediaType, \"415: Unsupported Media Type\")\n\t\t}\n\t}\n\n\t// accept\n\tprevious = candidates\n\tcandidates = candidates[:0]\n\taccept := httpRequest.Header.Get(HEADER_Accept)\n\tif len(accept) == 0 {\n\t\taccept = \"*/*\"\n\t}\n\tfor _, each := range previous {\n\t\tif each.matchesAccept(accept) {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that matches HTTP Accept: %s\\n\", len(previous), accept)\n\t\t}\n\t\tavailable := []string{}\n\t\tfor _, candidate := range previous {\n\t\t\tavailable = append(available, candidate.Produces...)\n\t\t}\n\t\t// if POST,PUT,PATCH without body\n\t\tmethod, length := httpRequest.Method, httpRequest.Header.Get(\"Content-Length\")\n\t\tif (method == http.MethodPost ||\n\t\t\tmethod == http.MethodPut ||\n\t\t\tmethod == http.MethodPatch) && length == \"\" {\n\t\t\treturn nil, NewError(\n\t\t\t\thttp.StatusUnsupportedMediaType,\n\t\t\t\tfmt.Sprintf(\"415: Unsupported Media Type\\n\\nAvailable representations: %s\", strings.Join(available, \", \")),\n\t\t\t)\n\t\t}\n\t\treturn nil, NewError(\n\t\t\thttp.StatusNotAcceptable,\n\t\t\tfmt.Sprintf(\"406: Not Acceptable\\n\\nAvailable representations: %s\", strings.Join(available, \", \")),\n\t\t)\n\t}\n\t// return r.bestMatchByMedia(outputMediaOk, contentType, accept), nil\n\treturn candidates[0], nil\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2\n// n/m > n/* > */*\nfunc (r RouterJSR311) bestMatchByMedia(routes []Route, contentType string, accept string) *Route {\n\t// TODO\n\treturn &routes[0]\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2  (step 2)\nfunc (r RouterJSR311) selectRoutes(dispatcher *WebService, pathRemainder string) []Route {\n\tfiltered := &sortableRouteCandidates{}\n\tfor _, each := range dispatcher.Routes() {\n\t\tpathExpr := each.pathExpr\n\t\tmatches := pathExpr.Matcher.FindStringSubmatch(pathRemainder)\n\t\tif matches != nil {\n\t\t\tlastMatch := matches[len(matches)-1]\n\t\t\tif len(lastMatch) == 0 || lastMatch == \"/\" { // do not include if value is neither empty nor ‘/’.\n\t\t\t\tfiltered.candidates = append(filtered.candidates,\n\t\t\t\t\trouteCandidate{each, len(matches) - 1, pathExpr.LiteralCount, pathExpr.VarCount})\n\t\t\t}\n\t\t}\n\t}\n\tif len(filtered.candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"WebService on path %s has no routes that match URL path remainder:%s\\n\", dispatcher.rootPath, pathRemainder)\n\t\t}\n\t\treturn []Route{}\n\t}\n\tsort.Sort(sort.Reverse(filtered))\n\n\t// select other routes from candidates whoes expression matches rmatch\n\tmatchingRoutes := []Route{filtered.candidates[0].route}\n\tfor c := 1; c < len(filtered.candidates); c++ {\n\t\teach := filtered.candidates[c]\n\t\tif each.route.pathExpr.Matcher.MatchString(pathRemainder) {\n\t\t\tmatchingRoutes = append(matchingRoutes, each.route)\n\t\t}\n\t}\n\treturn matchingRoutes\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2 (step 1)\nfunc (r RouterJSR311) detectDispatcher(requestPath string, dispatchers []*WebService) (*WebService, string, error) {\n\tfiltered := &sortableDispatcherCandidates{}\n\tfor _, each := range dispatchers {\n\t\tmatches := each.pathExpr.Matcher.FindStringSubmatch(requestPath)\n\t\tif matches != nil {\n\t\t\tfiltered.candidates = append(filtered.candidates,\n\t\t\t\tdispatcherCandidate{each, matches[len(matches)-1], len(matches), each.pathExpr.LiteralCount, each.pathExpr.VarCount})\n\t\t}\n\t}\n\tif len(filtered.candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no WebService was found to match URL path:%s\\n\", requestPath)\n\t\t}\n\t\treturn nil, \"\", errors.New(\"not found\")\n\t}\n\tsort.Sort(sort.Reverse(filtered))\n\treturn filtered.candidates[0].dispatcher, filtered.candidates[0].finalMatch, nil\n}\n\n// Types and functions to support the sorting of Routes\n\ntype routeCandidate struct {\n\troute           Route\n\tmatchesCount    int // the number of capturing groups\n\tliteralCount    int // the number of literal characters (means those not resulting from template variable substitution)\n\tnonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^  /]+?)’)\n}\n\nfunc (r routeCandidate) expressionToMatch() string {\n\treturn r.route.pathExpr.Source\n}\n\nfunc (r routeCandidate) String() string {\n\treturn fmt.Sprintf(\"(m=%d,l=%d,n=%d)\", r.matchesCount, r.literalCount, r.nonDefaultCount)\n}\n\ntype sortableRouteCandidates struct {\n\tcandidates []routeCandidate\n}\n\nfunc (rcs *sortableRouteCandidates) Len() int {\n\treturn len(rcs.candidates)\n}\nfunc (rcs *sortableRouteCandidates) Swap(i, j int) {\n\trcs.candidates[i], rcs.candidates[j] = rcs.candidates[j], rcs.candidates[i]\n}\nfunc (rcs *sortableRouteCandidates) Less(i, j int) bool {\n\tci := rcs.candidates[i]\n\tcj := rcs.candidates[j]\n\t// primary key\n\tif ci.literalCount < cj.literalCount {\n\t\treturn true\n\t}\n\tif ci.literalCount > cj.literalCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif ci.matchesCount < cj.matchesCount {\n\t\treturn true\n\t}\n\tif ci.matchesCount > cj.matchesCount {\n\t\treturn false\n\t}\n\t// tertiary key\n\tif ci.nonDefaultCount < cj.nonDefaultCount {\n\t\treturn true\n\t}\n\tif ci.nonDefaultCount > cj.nonDefaultCount {\n\t\treturn false\n\t}\n\t// quaternary key (\"source\" is interpreted as Path)\n\treturn ci.route.Path < cj.route.Path\n}\n\n// Types and functions to support the sorting of Dispatchers\n\ntype dispatcherCandidate struct {\n\tdispatcher      *WebService\n\tfinalMatch      string\n\tmatchesCount    int // the number of capturing groups\n\tliteralCount    int // the number of literal characters (means those not resulting from template variable substitution)\n\tnonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^  /]+?)’)\n}\ntype sortableDispatcherCandidates struct {\n\tcandidates []dispatcherCandidate\n}\n\nfunc (dc *sortableDispatcherCandidates) Len() int {\n\treturn len(dc.candidates)\n}\nfunc (dc *sortableDispatcherCandidates) Swap(i, j int) {\n\tdc.candidates[i], dc.candidates[j] = dc.candidates[j], dc.candidates[i]\n}\nfunc (dc *sortableDispatcherCandidates) Less(i, j int) bool {\n\tci := dc.candidates[i]\n\tcj := dc.candidates[j]\n\t// primary key\n\tif ci.matchesCount < cj.matchesCount {\n\t\treturn true\n\t}\n\tif ci.matchesCount > cj.matchesCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif ci.literalCount < cj.literalCount {\n\t\treturn true\n\t}\n\tif ci.literalCount > cj.literalCount {\n\t\treturn false\n\t}\n\t// tertiary key\n\treturn ci.nonDefaultCount < cj.nonDefaultCount\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/log/log.go",
    "content": "package log\n\nimport (\n\tstdlog \"log\"\n\t\"os\"\n)\n\n// StdLogger corresponds to a minimal subset of the interface satisfied by stdlib log.Logger\ntype StdLogger interface {\n\tPrint(v ...interface{})\n\tPrintf(format string, v ...interface{})\n}\n\nvar Logger StdLogger\n\nfunc init() {\n\t// default Logger\n\tSetLogger(stdlog.New(os.Stderr, \"[restful] \", stdlog.LstdFlags|stdlog.Lshortfile))\n}\n\n// SetLogger sets the logger for this package\nfunc SetLogger(customLogger StdLogger) {\n\tLogger = customLogger\n}\n\n// Print delegates to the Logger\nfunc Print(v ...interface{}) {\n\tLogger.Print(v...)\n}\n\n// Printf delegates to the Logger\nfunc Printf(format string, v ...interface{}) {\n\tLogger.Printf(format, v...)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/logger.go",
    "content": "package restful\n\n// Copyright 2014 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\nimport (\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\nvar trace bool = false\nvar traceLogger log.StdLogger\n\nfunc init() {\n\ttraceLogger = log.Logger // use the package logger by default\n}\n\n// TraceLogger enables detailed logging of Http request matching and filter invocation. Default no logger is set.\n// You may call EnableTracing() directly to enable trace logging to the package-wide logger.\nfunc TraceLogger(logger log.StdLogger) {\n\ttraceLogger = logger\n\tEnableTracing(logger != nil)\n}\n\n// SetLogger exposes the setter for the global logger on the top-level package\nfunc SetLogger(customLogger log.StdLogger) {\n\tlog.SetLogger(customLogger)\n}\n\n// EnableTracing can be used to Trace logging on and off.\nfunc EnableTracing(enabled bool) {\n\ttrace = enabled\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/mime.go",
    "content": "package restful\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype mime struct {\n\tmedia   string\n\tquality float64\n}\n\n// insertMime adds a mime to a list and keeps it sorted by quality.\nfunc insertMime(l []mime, e mime) []mime {\n\tfor i, each := range l {\n\t\t// if current mime has lower quality then insert before\n\t\tif e.quality > each.quality {\n\t\t\tleft := append([]mime{}, l[0:i]...)\n\t\t\treturn append(append(left, e), l[i:]...)\n\t\t}\n\t}\n\treturn append(l, e)\n}\n\nconst qFactorWeightingKey = \"q\"\n\n// sortedMimes returns a list of mime sorted (desc) by its specified quality.\n// e.g. text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\nfunc sortedMimes(accept string) (sorted []mime) {\n\tfor _, each := range strings.Split(accept, \",\") {\n\t\ttypeAndQuality := strings.Split(strings.Trim(each, \" \"), \";\")\n\t\tif len(typeAndQuality) == 1 {\n\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})\n\t\t} else {\n\t\t\t// take factor\n\t\t\tqAndWeight := strings.Split(typeAndQuality[1], \"=\")\n\t\t\tif len(qAndWeight) == 2 && strings.Trim(qAndWeight[0], \" \") == qFactorWeightingKey {\n\t\t\t\tf, err := strconv.ParseFloat(qAndWeight[1], 64)\n\t\t\t\tif err != nil {\n\t\t\t\t\ttraceLogger.Printf(\"unable to parse quality in %s, %v\", each, err)\n\t\t\t\t} else {\n\t\t\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], f})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/options_filter.go",
    "content": "package restful\n\nimport \"strings\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method\n// and provides the response with a set of allowed methods for the request URL Path.\n// As for any filter, you can also install it for a particular WebService within a Container.\n// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).\nfunc (c *Container) OPTIONSFilter(req *Request, resp *Response, chain *FilterChain) {\n\tif \"OPTIONS\" != req.Request.Method {\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\n\tarchs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)\n\tmethods := strings.Join(c.computeAllowedMethods(req), \",\")\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\n\tresp.AddHeader(HEADER_Allow, methods)\n\tresp.AddHeader(HEADER_AccessControlAllowOrigin, origin)\n\tresp.AddHeader(HEADER_AccessControlAllowHeaders, archs)\n\tresp.AddHeader(HEADER_AccessControlAllowMethods, methods)\n}\n\n// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method\n// and provides the response with a set of allowed methods for the request URL Path.\n// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).\nfunc OPTIONSFilter() FilterFunction {\n\treturn DefaultContainer.OPTIONSFilter\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/parameter.go",
    "content": "package restful\n\nimport \"sort\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nconst (\n\t// PathParameterKind = indicator of Request parameter type \"path\"\n\tPathParameterKind = iota\n\n\t// QueryParameterKind = indicator of Request parameter type \"query\"\n\tQueryParameterKind\n\n\t// BodyParameterKind = indicator of Request parameter type \"body\"\n\tBodyParameterKind\n\n\t// HeaderParameterKind = indicator of Request parameter type \"header\"\n\tHeaderParameterKind\n\n\t// FormParameterKind = indicator of Request parameter type \"form\"\n\tFormParameterKind\n\n\t// MultiPartFormParameterKind = indicator of Request parameter type \"multipart/form-data\"\n\tMultiPartFormParameterKind\n\n\t// CollectionFormatCSV comma separated values `foo,bar`\n\tCollectionFormatCSV = CollectionFormat(\"csv\")\n\n\t// CollectionFormatSSV space separated values `foo bar`\n\tCollectionFormatSSV = CollectionFormat(\"ssv\")\n\n\t// CollectionFormatTSV tab separated values `foo\\tbar`\n\tCollectionFormatTSV = CollectionFormat(\"tsv\")\n\n\t// CollectionFormatPipes pipe separated values `foo|bar`\n\tCollectionFormatPipes = CollectionFormat(\"pipes\")\n\n\t// CollectionFormatMulti corresponds to multiple parameter instances instead of multiple values for a single\n\t// instance `foo=bar&foo=baz`. This is valid only for QueryParameters and FormParameters\n\tCollectionFormatMulti = CollectionFormat(\"multi\")\n)\n\ntype CollectionFormat string\n\nfunc (cf CollectionFormat) String() string {\n\treturn string(cf)\n}\n\n// Parameter is for documententing the parameter used in a Http Request\n// ParameterData kinds are Path,Query and Body\ntype Parameter struct {\n\tdata *ParameterData\n}\n\n// ParameterData represents the state of a Parameter.\n// It is made public to make it accessible to e.g. the Swagger package.\ntype ParameterData struct {\n\tExtensionProperties\n\tName, Description, DataType, DataFormat string\n\tKind                                    int\n\tRequired                                bool\n\t// AllowableValues is deprecated. Use PossibleValues instead\n\tAllowableValues  map[string]string\n\tPossibleValues   []string\n\tAllowMultiple    bool\n\tAllowEmptyValue  bool\n\tDefaultValue     string\n\tCollectionFormat string\n\tPattern          string\n\tMinimum          *float64\n\tMaximum          *float64\n\tMinLength        *int64\n\tMaxLength        *int64\n\tMinItems         *int64\n\tMaxItems         *int64\n\tUniqueItems      bool\n}\n\n// Data returns the state of the Parameter\nfunc (p *Parameter) Data() ParameterData {\n\treturn *p.data\n}\n\n// Kind returns the parameter type indicator (see const for valid values)\nfunc (p *Parameter) Kind() int {\n\treturn p.data.Kind\n}\n\nfunc (p *Parameter) bePath() *Parameter {\n\tp.data.Kind = PathParameterKind\n\treturn p\n}\nfunc (p *Parameter) beQuery() *Parameter {\n\tp.data.Kind = QueryParameterKind\n\treturn p\n}\nfunc (p *Parameter) beBody() *Parameter {\n\tp.data.Kind = BodyParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beHeader() *Parameter {\n\tp.data.Kind = HeaderParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beForm() *Parameter {\n\tp.data.Kind = FormParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beMultiPartForm() *Parameter {\n\tp.data.Kind = MultiPartFormParameterKind\n\treturn p\n}\n\n// Required sets the required field and returns the receiver\nfunc (p *Parameter) Required(required bool) *Parameter {\n\tp.data.Required = required\n\treturn p\n}\n\n// AllowMultiple sets the allowMultiple field and returns the receiver\nfunc (p *Parameter) AllowMultiple(multiple bool) *Parameter {\n\tp.data.AllowMultiple = multiple\n\treturn p\n}\n\n// AddExtension adds or updates a key=value pair to the extension map\nfunc (p *Parameter) AddExtension(key string, value interface{}) *Parameter {\n\tp.data.AddExtension(key, value)\n\treturn p\n}\n\n// AllowEmptyValue sets the AllowEmptyValue field and returns the receiver\nfunc (p *Parameter) AllowEmptyValue(multiple bool) *Parameter {\n\tp.data.AllowEmptyValue = multiple\n\treturn p\n}\n\n// AllowableValues is deprecated. Use PossibleValues instead. Both will be set.\nfunc (p *Parameter) AllowableValues(values map[string]string) *Parameter {\n\tp.data.AllowableValues = values\n\n\tallowableSortedKeys := make([]string, 0, len(values))\n\tfor k := range values {\n\t\tallowableSortedKeys = append(allowableSortedKeys, k)\n\t}\n\tsort.Strings(allowableSortedKeys)\n\n\tp.data.PossibleValues = make([]string, 0, len(values))\n\tfor _, k := range allowableSortedKeys {\n\t\tp.data.PossibleValues = append(p.data.PossibleValues, values[k])\n\t}\n\treturn p\n}\n\n// PossibleValues sets the possible values field and returns the receiver\nfunc (p *Parameter) PossibleValues(values []string) *Parameter {\n\tp.data.PossibleValues = values\n\treturn p\n}\n\n// DataType sets the dataType field and returns the receiver\nfunc (p *Parameter) DataType(typeName string) *Parameter {\n\tp.data.DataType = typeName\n\treturn p\n}\n\n// DataFormat sets the dataFormat field for Swagger UI\nfunc (p *Parameter) DataFormat(formatName string) *Parameter {\n\tp.data.DataFormat = formatName\n\treturn p\n}\n\n// DefaultValue sets the default value field and returns the receiver\nfunc (p *Parameter) DefaultValue(stringRepresentation string) *Parameter {\n\tp.data.DefaultValue = stringRepresentation\n\treturn p\n}\n\n// Description sets the description value field and returns the receiver\nfunc (p *Parameter) Description(doc string) *Parameter {\n\tp.data.Description = doc\n\treturn p\n}\n\n// CollectionFormat sets the collection format for an array type\nfunc (p *Parameter) CollectionFormat(format CollectionFormat) *Parameter {\n\tp.data.CollectionFormat = format.String()\n\treturn p\n}\n\n// Pattern sets the pattern field and returns the receiver\nfunc (p *Parameter) Pattern(pattern string) *Parameter {\n\tp.data.Pattern = pattern\n\treturn p\n}\n\n// Minimum sets the minimum field and returns the receiver\nfunc (p *Parameter) Minimum(minimum float64) *Parameter {\n\tp.data.Minimum = &minimum\n\treturn p\n}\n\n// Maximum sets the maximum field and returns the receiver\nfunc (p *Parameter) Maximum(maximum float64) *Parameter {\n\tp.data.Maximum = &maximum\n\treturn p\n}\n\n// MinLength sets the minLength field and returns the receiver\nfunc (p *Parameter) MinLength(minLength int64) *Parameter {\n\tp.data.MinLength = &minLength\n\treturn p\n}\n\n// MaxLength sets the maxLength field and returns the receiver\nfunc (p *Parameter) MaxLength(maxLength int64) *Parameter {\n\tp.data.MaxLength = &maxLength\n\treturn p\n}\n\n// MinItems sets the minItems field and returns the receiver\nfunc (p *Parameter) MinItems(minItems int64) *Parameter {\n\tp.data.MinItems = &minItems\n\treturn p\n}\n\n// MaxItems sets the maxItems field and returns the receiver\nfunc (p *Parameter) MaxItems(maxItems int64) *Parameter {\n\tp.data.MaxItems = &maxItems\n\treturn p\n}\n\n// UniqueItems sets the uniqueItems field and returns the receiver\nfunc (p *Parameter) UniqueItems(uniqueItems bool) *Parameter {\n\tp.data.UniqueItems = uniqueItems\n\treturn p\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_expression.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// PathExpression holds a compiled path expression (RegExp) needed to match against\n// Http request paths and to extract path parameter values.\ntype pathExpression struct {\n\tLiteralCount int      // the number of literal characters (means those not resulting from template variable substitution)\n\tVarNames     []string // the names of parameters (enclosed by {}) in the path\n\tVarCount     int      // the number of named parameters (enclosed by {}) in the path\n\tMatcher      *regexp.Regexp\n\tSource       string // Path as defined by the RouteBuilder\n\ttokens       []string\n}\n\n// NewPathExpression creates a PathExpression from the input URL path.\n// Returns an error if the path is invalid.\nfunc newPathExpression(path string) (*pathExpression, error) {\n\texpression, literalCount, varNames, varCount, tokens := templateToRegularExpression(path)\n\tcompiled, err := regexp.Compile(expression)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &pathExpression{literalCount, varNames, varCount, compiled, expression, tokens}, nil\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-370003.7.3\nfunc templateToRegularExpression(template string) (expression string, literalCount int, varNames []string, varCount int, tokens []string) {\n\tvar buffer bytes.Buffer\n\tbuffer.WriteString(\"^\")\n\t//tokens = strings.Split(template, \"/\")\n\ttokens = tokenizePath(template)\n\tfor _, each := range tokens {\n\t\tif each == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tbuffer.WriteString(\"/\")\n\t\tif strings.HasPrefix(each, \"{\") {\n\t\t\t// check for regular expression in variable\n\t\t\tcolon := strings.Index(each, \":\")\n\t\t\tvar varName string\n\t\t\tif colon != -1 {\n\t\t\t\t// extract expression\n\t\t\t\tvarName = strings.TrimSpace(each[1:colon])\n\t\t\t\tparamExpr := strings.TrimSpace(each[colon+1 : len(each)-1])\n\t\t\t\tif paramExpr == \"*\" { // special case\n\t\t\t\t\tbuffer.WriteString(\"(.*)\")\n\t\t\t\t} else {\n\t\t\t\t\tbuffer.WriteString(fmt.Sprintf(\"(%s)\", paramExpr)) // between colon and closing moustache\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// plain var\n\t\t\t\tvarName = strings.TrimSpace(each[1 : len(each)-1])\n\t\t\t\tbuffer.WriteString(\"([^/]+?)\")\n\t\t\t}\n\t\t\tvarNames = append(varNames, varName)\n\t\t\tvarCount += 1\n\t\t} else {\n\t\t\tliteralCount += len(each)\n\t\t\tencoded := each // TODO URI encode\n\t\t\tbuffer.WriteString(regexp.QuoteMeta(encoded))\n\t\t}\n\t}\n\treturn strings.TrimRight(buffer.String(), \"/\") + \"(/.*)?$\", literalCount, varNames, varCount, tokens\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_processor.go",
    "content": "package restful\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// Copyright 2018 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// PathProcessor is extra behaviour that a Router can provide to extract path parameters from the path.\n// If a Router does not implement this interface then the default behaviour will be used.\ntype PathProcessor interface {\n\t// ExtractParameters gets the path parameters defined in the route and webService from the urlPath\n\tExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string\n}\n\ntype defaultPathProcessor struct{}\n\n// Extract the parameters from the request url path\nfunc (d defaultPathProcessor) ExtractParameters(r *Route, _ *WebService, urlPath string) map[string]string {\n\turlParts := tokenizePath(urlPath)\n\tpathParameters := map[string]string{}\n\tfor i, key := range r.pathParts {\n\t\tvar value string\n\t\tif i >= len(urlParts) {\n\t\t\tvalue = \"\"\n\t\t} else {\n\t\t\tvalue = urlParts[i]\n\t\t}\n\t\tif r.hasCustomVerb && hasCustomVerb(key) {\n\t\t\tkey = removeCustomVerb(key)\n\t\t\tvalue = removeCustomVerb(value)\n\t\t}\n\n\t\tif strings.Index(key, \"{\") > -1 { // path-parameter\n\t\t\tif colon := strings.Index(key, \":\"); colon != -1 {\n\t\t\t\t// extract by regex\n\t\t\t\tregPart := key[colon+1 : len(key)-1]\n\t\t\t\tkeyPart := key[1:colon]\n\t\t\t\tif regPart == \"*\" {\n\t\t\t\t\tpathParameters[keyPart] = untokenizePath(i, urlParts)\n\t\t\t\t\tbreak\n\t\t\t\t} else {\n\t\t\t\t\tpathParameters[keyPart] = value\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// without enclosing {}\n\t\t\t\tstartIndex := strings.Index(key, \"{\")\n\t\t\t\tendKeyIndex := strings.Index(key, \"}\")\n\n\t\t\t\tsuffixLength := len(key) - endKeyIndex - 1\n\t\t\t\tendValueIndex := len(value) - suffixLength\n\n\t\t\t\tpathParameters[key[startIndex+1:endKeyIndex]] = value[startIndex:endValueIndex]\n\t\t\t}\n\t\t}\n\t}\n\treturn pathParameters\n}\n\n// Untokenize back into an URL path using the slash separator\nfunc untokenizePath(offset int, parts []string) string {\n\tvar buffer bytes.Buffer\n\tfor p := offset; p < len(parts); p++ {\n\t\tbuffer.WriteString(parts[p])\n\t\t// do not end\n\t\tif p < len(parts)-1 {\n\t\t\tbuffer.WriteString(\"/\")\n\t\t}\n\t}\n\treturn buffer.String()\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/request.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/zlib\"\n\t\"net/http\"\n)\n\nvar defaultRequestContentType string\n\n// Request is a wrapper for a http Request that provides convenience methods\ntype Request struct {\n\tRequest        *http.Request\n\tpathParameters map[string]string\n\tattributes     map[string]interface{} // for storing request-scoped values\n\tselectedRoute  *Route                 // is nil when no route was matched\n}\n\nfunc NewRequest(httpRequest *http.Request) *Request {\n\treturn &Request{\n\t\tRequest:        httpRequest,\n\t\tpathParameters: map[string]string{},\n\t\tattributes:     map[string]interface{}{},\n\t} // empty parameters, attributes\n}\n\n// If ContentType is missing or */* is given then fall back to this type, otherwise\n// a \"Unable to unmarshal content of type:\" response is returned.\n// Valid values are restful.MIME_JSON and restful.MIME_XML\n// Example:\n// \trestful.DefaultRequestContentType(restful.MIME_JSON)\nfunc DefaultRequestContentType(mime string) {\n\tdefaultRequestContentType = mime\n}\n\n// PathParameter accesses the Path parameter value by its name\nfunc (r *Request) PathParameter(name string) string {\n\treturn r.pathParameters[name]\n}\n\n// PathParameters accesses the Path parameter values\nfunc (r *Request) PathParameters() map[string]string {\n\treturn r.pathParameters\n}\n\n// QueryParameter returns the (first) Query parameter value by its name\nfunc (r *Request) QueryParameter(name string) string {\n\treturn r.Request.FormValue(name)\n}\n\n// QueryParameters returns the all the query parameters values by name\nfunc (r *Request) QueryParameters(name string) []string {\n\treturn r.Request.URL.Query()[name]\n}\n\n// BodyParameter parses the body of the request (once for typically a POST or a PUT) and returns the value of the given name or an error.\nfunc (r *Request) BodyParameter(name string) (string, error) {\n\terr := r.Request.ParseForm()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn r.Request.PostFormValue(name), nil\n}\n\n// HeaderParameter returns the HTTP Header value of a Header name or empty if missing\nfunc (r *Request) HeaderParameter(name string) string {\n\treturn r.Request.Header.Get(name)\n}\n\n// ReadEntity checks the Accept header and reads the content into the entityPointer.\nfunc (r *Request) ReadEntity(entityPointer interface{}) (err error) {\n\tcontentType := r.Request.Header.Get(HEADER_ContentType)\n\tcontentEncoding := r.Request.Header.Get(HEADER_ContentEncoding)\n\n\t// check if the request body needs decompression\n\tif ENCODING_GZIP == contentEncoding {\n\t\tgzipReader := currentCompressorProvider.AcquireGzipReader()\n\t\tdefer currentCompressorProvider.ReleaseGzipReader(gzipReader)\n\t\tgzipReader.Reset(r.Request.Body)\n\t\tr.Request.Body = gzipReader\n\t} else if ENCODING_DEFLATE == contentEncoding {\n\t\tzlibReader, err := zlib.NewReader(r.Request.Body)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Request.Body = zlibReader\n\t}\n\n\t// lookup the EntityReader, use defaultRequestContentType if needed and provided\n\tentityReader, ok := entityAccessRegistry.accessorAt(contentType)\n\tif !ok {\n\t\tif len(defaultRequestContentType) != 0 {\n\t\t\tentityReader, ok = entityAccessRegistry.accessorAt(defaultRequestContentType)\n\t\t}\n\t\tif !ok {\n\t\t\treturn NewError(http.StatusBadRequest, \"Unable to unmarshal content of type:\"+contentType)\n\t\t}\n\t}\n\treturn entityReader.Read(r, entityPointer)\n}\n\n// SetAttribute adds or replaces the attribute with the given value.\nfunc (r *Request) SetAttribute(name string, value interface{}) {\n\tr.attributes[name] = value\n}\n\n// Attribute returns the value associated to the given name. Returns nil if absent.\nfunc (r Request) Attribute(name string) interface{} {\n\treturn r.attributes[name]\n}\n\n// SelectedRoutePath root path + route path that matched the request, e.g. /meetings/{id}/attendees\n// If no route was matched then return an empty string.\nfunc (r Request) SelectedRoutePath() string {\n\tif r.selectedRoute == nil {\n\t\treturn \"\"\n\t}\n\t// skip creating an accessor\n\treturn r.selectedRoute.Path\n}\n\n// SelectedRoute returns a reader to access the selected Route by the container\n// Returns nil if no route was matched.\nfunc (r Request) SelectedRoute() RouteReader {\n\tif r.selectedRoute == nil {\n\t\treturn nil\n\t}\n\treturn routeAccessor{route: r.selectedRoute}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/response.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"net\"\n\t\"net/http\"\n)\n\n// DefaultResponseMimeType is DEPRECATED, use DefaultResponseContentType(mime)\nvar DefaultResponseMimeType string\n\n//PrettyPrintResponses controls the indentation feature of XML and JSON serialization\nvar PrettyPrintResponses = true\n\n// Response is a wrapper on the actual http ResponseWriter\n// It provides several convenience methods to prepare and write response content.\ntype Response struct {\n\thttp.ResponseWriter\n\trequestAccept string        // mime-type what the Http Request says it wants to receive\n\trouteProduces []string      // mime-types what the Route says it can produce\n\tstatusCode    int           // HTTP status code that has been written explicitly (if zero then net/http has written 200)\n\tcontentLength int           // number of bytes written for the response body\n\tprettyPrint   bool          // controls the indentation feature of XML and JSON serialization. It is initialized using var PrettyPrintResponses.\n\terr           error         // err property is kept when WriteError is called\n\thijacker      http.Hijacker // if underlying ResponseWriter supports it\n}\n\n// NewResponse creates a new response based on a http ResponseWriter.\nfunc NewResponse(httpWriter http.ResponseWriter) *Response {\n\thijacker, _ := httpWriter.(http.Hijacker)\n\treturn &Response{ResponseWriter: httpWriter, routeProduces: []string{}, statusCode: http.StatusOK, prettyPrint: PrettyPrintResponses, hijacker: hijacker}\n}\n\n// DefaultResponseContentType set a default.\n// If Accept header matching fails, fall back to this type.\n// Valid values are restful.MIME_JSON and restful.MIME_XML\n// Example:\n// \trestful.DefaultResponseContentType(restful.MIME_JSON)\nfunc DefaultResponseContentType(mime string) {\n\tDefaultResponseMimeType = mime\n}\n\n// InternalServerError writes the StatusInternalServerError header.\n// DEPRECATED, use WriteErrorString(http.StatusInternalServerError,reason)\nfunc (r Response) InternalServerError() Response {\n\tr.WriteHeader(http.StatusInternalServerError)\n\treturn r\n}\n\n// Hijack implements the http.Hijacker interface.  This expands\n// the Response to fulfill http.Hijacker if the underlying\n// http.ResponseWriter supports it.\nfunc (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\tif r.hijacker == nil {\n\t\treturn nil, nil, errors.New(\"http.Hijacker not implemented by underlying http.ResponseWriter\")\n\t}\n\treturn r.hijacker.Hijack()\n}\n\n// PrettyPrint changes whether this response must produce pretty (line-by-line, indented) JSON or XML output.\nfunc (r *Response) PrettyPrint(bePretty bool) {\n\tr.prettyPrint = bePretty\n}\n\n// AddHeader is a shortcut for .Header().Add(header,value)\nfunc (r Response) AddHeader(header string, value string) Response {\n\tr.Header().Add(header, value)\n\treturn r\n}\n\n// SetRequestAccepts tells the response what Mime-type(s) the HTTP request said it wants to accept. Exposed for testing.\nfunc (r *Response) SetRequestAccepts(mime string) {\n\tr.requestAccept = mime\n}\n\n// EntityWriter returns the registered EntityWriter that the entity (requested resource)\n// can write according to what the request wants (Accept) and what the Route can produce or what the restful defaults say.\n// If called before WriteEntity and WriteHeader then a false return value can be used to write a 406: Not Acceptable.\nfunc (r *Response) EntityWriter() (EntityReaderWriter, bool) {\n\tsorted := sortedMimes(r.requestAccept)\n\tfor _, eachAccept := range sorted {\n\t\tfor _, eachProduce := range r.routeProduces {\n\t\t\tif eachProduce == eachAccept.media {\n\t\t\t\tif w, ok := entityAccessRegistry.accessorAt(eachAccept.media); ok {\n\t\t\t\t\treturn w, true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif eachAccept.media == \"*/*\" {\n\t\t\tfor _, each := range r.routeProduces {\n\t\t\t\tif w, ok := entityAccessRegistry.accessorAt(each); ok {\n\t\t\t\t\treturn w, true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// if requestAccept is empty\n\twriter, ok := entityAccessRegistry.accessorAt(r.requestAccept)\n\tif !ok {\n\t\t// if not registered then fallback to the defaults (if set)\n\t\tif DefaultResponseMimeType == MIME_JSON {\n\t\t\treturn entityAccessRegistry.accessorAt(MIME_JSON)\n\t\t}\n\t\tif DefaultResponseMimeType == MIME_XML {\n\t\t\treturn entityAccessRegistry.accessorAt(MIME_XML)\n\t\t}\n\t\t// Fallback to whatever the route says it can produce.\n\t\t// https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\t\tfor _, each := range r.routeProduces {\n\t\t\tif w, ok := entityAccessRegistry.accessorAt(each); ok {\n\t\t\t\treturn w, true\n\t\t\t}\n\t\t}\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no registered EntityReaderWriter found for %s\", r.requestAccept)\n\t\t}\n\t}\n\treturn writer, ok\n}\n\n// WriteEntity calls WriteHeaderAndEntity with Http Status OK (200)\nfunc (r *Response) WriteEntity(value interface{}) error {\n\treturn r.WriteHeaderAndEntity(http.StatusOK, value)\n}\n\n// WriteHeaderAndEntity marshals the value using the representation denoted by the Accept Header and the registered EntityWriters.\n// If no Accept header is specified (or */*) then respond with the Content-Type as specified by the first in the Route.Produces.\n// If an Accept header is specified then respond with the Content-Type as specified by the first in the Route.Produces that is matched with the Accept header.\n// If the value is nil then no response is send except for the Http status. You may want to call WriteHeader(http.StatusNotFound) instead.\n// If there is no writer available that can represent the value in the requested MIME type then Http Status NotAcceptable is written.\n// Current implementation ignores any q-parameters in the Accept Header.\n// Returns an error if the value could not be written on the response.\nfunc (r *Response) WriteHeaderAndEntity(status int, value interface{}) error {\n\twriter, ok := r.EntityWriter()\n\tif !ok {\n\t\tr.WriteHeader(http.StatusNotAcceptable)\n\t\treturn nil\n\t}\n\treturn writer.Write(r, status, value)\n}\n\n// WriteAsXml is a convenience method for writing a value in xml (requires Xml tags on the value)\n// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteAsXml(value interface{}) error {\n\treturn writeXML(r, http.StatusOK, MIME_XML, value)\n}\n\n// WriteHeaderAndXml is a convenience method for writing a status and value in xml (requires Xml tags on the value)\n// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteHeaderAndXml(status int, value interface{}) error {\n\treturn writeXML(r, status, MIME_XML, value)\n}\n\n// WriteAsJson is a convenience method for writing a value in json.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteAsJson(value interface{}) error {\n\treturn writeJSON(r, http.StatusOK, MIME_JSON, value)\n}\n\n// WriteJson is a convenience method for writing a value in Json with a given Content-Type.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteJson(value interface{}, contentType string) error {\n\treturn writeJSON(r, http.StatusOK, contentType, value)\n}\n\n// WriteHeaderAndJson is a convenience method for writing the status and a value in Json with a given Content-Type.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteHeaderAndJson(status int, value interface{}, contentType string) error {\n\treturn writeJSON(r, status, contentType, value)\n}\n\n// WriteError writes the http status and the error string on the response. err can be nil.\n// Return an error if writing was not successful.\nfunc (r *Response) WriteError(httpStatus int, err error) (writeErr error) {\n\tr.err = err\n\tif err == nil {\n\t\twriteErr = r.WriteErrorString(httpStatus, \"\")\n\t} else {\n\t\twriteErr = r.WriteErrorString(httpStatus, err.Error())\n\t}\n\treturn writeErr\n}\n\n// WriteServiceError is a convenience method for a responding with a status and a ServiceError\nfunc (r *Response) WriteServiceError(httpStatus int, err ServiceError) error {\n\tr.err = err\n\treturn r.WriteHeaderAndEntity(httpStatus, err)\n}\n\n// WriteErrorString is a convenience method for an error status with the actual error\nfunc (r *Response) WriteErrorString(httpStatus int, errorReason string) error {\n\tif r.err == nil {\n\t\t// if not called from WriteError\n\t\tr.err = errors.New(errorReason)\n\t}\n\tr.WriteHeader(httpStatus)\n\tif _, err := r.Write([]byte(errorReason)); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Flush implements http.Flusher interface, which sends any buffered data to the client.\nfunc (r *Response) Flush() {\n\tif f, ok := r.ResponseWriter.(http.Flusher); ok {\n\t\tf.Flush()\n\t} else if trace {\n\t\ttraceLogger.Printf(\"ResponseWriter %v doesn't support Flush\", r)\n\t}\n}\n\n// WriteHeader is overridden to remember the Status Code that has been written.\n// Changes to the Header of the response have no effect after this.\nfunc (r *Response) WriteHeader(httpStatus int) {\n\tr.statusCode = httpStatus\n\tr.ResponseWriter.WriteHeader(httpStatus)\n}\n\n// StatusCode returns the code that has been written using WriteHeader.\nfunc (r Response) StatusCode() int {\n\tif 0 == r.statusCode {\n\t\t// no status code has been written yet; assume OK\n\t\treturn http.StatusOK\n\t}\n\treturn r.statusCode\n}\n\n// Write writes the data to the connection as part of an HTTP reply.\n// Write is part of http.ResponseWriter interface.\nfunc (r *Response) Write(bytes []byte) (int, error) {\n\twritten, err := r.ResponseWriter.Write(bytes)\n\tr.contentLength += written\n\treturn written, err\n}\n\n// ContentLength returns the number of bytes written for the response content.\n// Note that this value is only correct if all data is written through the Response using its Write* methods.\n// Data written directly using the underlying http.ResponseWriter is not accounted for.\nfunc (r Response) ContentLength() int {\n\treturn r.contentLength\n}\n\n// CloseNotify is part of http.CloseNotifier interface\nfunc (r Response) CloseNotify() <-chan bool {\n\treturn r.ResponseWriter.(http.CloseNotifier).CloseNotify()\n}\n\n// Error returns the err created by WriteError\nfunc (r Response) Error() error {\n\treturn r.err\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n)\n\n// RouteFunction declares the signature of a function that can be bound to a Route.\ntype RouteFunction func(*Request, *Response)\n\n// RouteSelectionConditionFunction declares the signature of a function that\n// can be used to add extra conditional logic when selecting whether the route\n// matches the HTTP request.\ntype RouteSelectionConditionFunction func(httpRequest *http.Request) bool\n\n// Route binds a HTTP Method,Path,Consumes combination to a RouteFunction.\ntype Route struct {\n\tExtensionProperties\n\tMethod   string\n\tProduces []string\n\tConsumes []string\n\tPath     string // webservice root path + described path\n\tFunction RouteFunction\n\tFilters  []FilterFunction\n\tIf       []RouteSelectionConditionFunction\n\n\t// cached values for dispatching\n\trelativePath string\n\tpathParts    []string\n\tpathExpr     *pathExpression // cached compilation of relativePath as RegExp\n\n\t// documentation\n\tDoc                     string\n\tNotes                   string\n\tOperation               string\n\tParameterDocs           []*Parameter\n\tResponseErrors          map[int]ResponseError\n\tDefaultResponse         *ResponseError\n\tReadSample, WriteSample interface{} // structs that model an example request or response payload\n\n\t// Extra information used to store custom information about the route.\n\tMetadata map[string]interface{}\n\n\t// marks a route as deprecated\n\tDeprecated bool\n\n\t//Overrides the container.contentEncodingEnabled\n\tcontentEncodingEnabled *bool\n\n\t// indicate route path has custom verb\n\thasCustomVerb bool\n\n\t// if a request does not include a content-type header then\n\t// depending on the method, it may return a 415 Unsupported Media\n\t// Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...\n\tallowedMethodsWithoutContentType []string\n}\n\n// Initialize for Route\nfunc (r *Route) postBuild() {\n\tr.pathParts = tokenizePath(r.Path)\n\tr.hasCustomVerb = hasCustomVerb(r.Path)\n}\n\n// Create Request and Response from their http versions\nfunc (r *Route) wrapRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request, pathParams map[string]string) (*Request, *Response) {\n\twrappedRequest := NewRequest(httpRequest)\n\twrappedRequest.pathParameters = pathParams\n\twrappedRequest.selectedRoute = r\n\twrappedResponse := NewResponse(httpWriter)\n\twrappedResponse.requestAccept = httpRequest.Header.Get(HEADER_Accept)\n\twrappedResponse.routeProduces = r.Produces\n\treturn wrappedRequest, wrappedResponse\n}\n\nfunc stringTrimSpaceCutset(r rune) bool {\n\treturn r == ' '\n}\n\n// Return whether the mimeType matches to what this Route can produce.\nfunc (r Route) matchesAccept(mimeTypesWithQuality string) bool {\n\tremaining := mimeTypesWithQuality\n\tfor {\n\t\tvar mimeType string\n\t\tif end := strings.Index(remaining, \",\"); end == -1 {\n\t\t\tmimeType, remaining = remaining, \"\"\n\t\t} else {\n\t\t\tmimeType, remaining = remaining[:end], remaining[end+1:]\n\t\t}\n\t\tif quality := strings.Index(mimeType, \";\"); quality != -1 {\n\t\t\tmimeType = mimeType[:quality]\n\t\t}\n\t\tmimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)\n\t\tif mimeType == \"*/*\" {\n\t\t\treturn true\n\t\t}\n\t\tfor _, producibleType := range r.Produces {\n\t\t\tif producibleType == \"*/*\" || producibleType == mimeType {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif len(remaining) == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// Return whether this Route can consume content with a type specified by mimeTypes (can be empty).\nfunc (r Route) matchesContentType(mimeTypes string) bool {\n\n\tif len(r.Consumes) == 0 {\n\t\t// did not specify what it can consume ;  any media type (“*/*”) is assumed\n\t\treturn true\n\t}\n\n\tif len(mimeTypes) == 0 {\n\t\t// idempotent methods with (most-likely or guaranteed) empty content match missing Content-Type\n\t\tm := r.Method\n\t\t// if route specifies less or non-idempotent methods then use that\n\t\tif len(r.allowedMethodsWithoutContentType) > 0 {\n\t\t\tfor _, each := range r.allowedMethodsWithoutContentType {\n\t\t\t\tif m == each {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif m == \"GET\" || m == \"HEAD\" || m == \"OPTIONS\" || m == \"DELETE\" || m == \"TRACE\" {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t// proceed with default\n\t\tmimeTypes = MIME_OCTET\n\t}\n\n\tremaining := mimeTypes\n\tfor {\n\t\tvar mimeType string\n\t\tif end := strings.Index(remaining, \",\"); end == -1 {\n\t\t\tmimeType, remaining = remaining, \"\"\n\t\t} else {\n\t\t\tmimeType, remaining = remaining[:end], remaining[end+1:]\n\t\t}\n\t\tif quality := strings.Index(mimeType, \";\"); quality != -1 {\n\t\t\tmimeType = mimeType[:quality]\n\t\t}\n\t\tmimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)\n\t\tfor _, consumeableType := range r.Consumes {\n\t\t\tif consumeableType == \"*/*\" || consumeableType == mimeType {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif len(remaining) == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// Tokenize an URL path using the slash separator ; the result does not have empty tokens\nfunc tokenizePath(path string) []string {\n\tif \"/\" == path {\n\t\treturn nil\n\t}\n\treturn strings.Split(strings.Trim(path, \"/\"), \"/\")\n}\n\n// for debugging\nfunc (r *Route) String() string {\n\treturn r.Method + \" \" + r.Path\n}\n\n// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses. Overrides the container.contentEncodingEnabled value.\nfunc (r *Route) EnableContentEncoding(enabled bool) {\n\tr.contentEncodingEnabled = &enabled\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_builder.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync/atomic\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// RouteBuilder is a helper to construct Routes.\ntype RouteBuilder struct {\n\trootPath                         string\n\tcurrentPath                      string\n\tproduces                         []string\n\tconsumes                         []string\n\thttpMethod                       string        // required\n\tfunction                         RouteFunction // required\n\tfilters                          []FilterFunction\n\tconditions                       []RouteSelectionConditionFunction\n\tallowedMethodsWithoutContentType []string // see Route\n\n\ttypeNameHandleFunc TypeNameHandleFunction // required\n\n\t// documentation\n\tdoc                     string\n\tnotes                   string\n\toperation               string\n\treadSample, writeSample interface{}\n\tparameters              []*Parameter\n\terrorMap                map[int]ResponseError\n\tdefaultResponse         *ResponseError\n\tmetadata                map[string]interface{}\n\textensions              map[string]interface{}\n\tdeprecated              bool\n\tcontentEncodingEnabled  *bool\n}\n\n// Do evaluates each argument with the RouteBuilder itself.\n// This allows you to follow DRY principles without breaking the fluent programming style.\n// Example:\n// \t\tws.Route(ws.DELETE(\"/{name}\").To(t.deletePerson).Do(Returns200, Returns500))\n//\n//\t\tfunc Returns500(b *RouteBuilder) {\n//\t\t\tb.Returns(500, \"Internal Server Error\", restful.ServiceError{})\n//\t\t}\nfunc (b *RouteBuilder) Do(oneArgBlocks ...func(*RouteBuilder)) *RouteBuilder {\n\tfor _, each := range oneArgBlocks {\n\t\teach(b)\n\t}\n\treturn b\n}\n\n// To bind the route to a function.\n// If this route is matched with the incoming Http Request then call this function with the *Request,*Response pair. Required.\nfunc (b *RouteBuilder) To(function RouteFunction) *RouteBuilder {\n\tb.function = function\n\treturn b\n}\n\n// Method specifies what HTTP method to match. Required.\nfunc (b *RouteBuilder) Method(method string) *RouteBuilder {\n\tb.httpMethod = method\n\treturn b\n}\n\n// Produces specifies what MIME types can be produced ; the matched one will appear in the Content-Type Http header.\nfunc (b *RouteBuilder) Produces(mimeTypes ...string) *RouteBuilder {\n\tb.produces = mimeTypes\n\treturn b\n}\n\n// Consumes specifies what MIME types can be consumes ; the Accept Http header must matched any of these\nfunc (b *RouteBuilder) Consumes(mimeTypes ...string) *RouteBuilder {\n\tb.consumes = mimeTypes\n\treturn b\n}\n\n// Path specifies the relative (w.r.t WebService root path) URL path to match. Default is \"/\".\nfunc (b *RouteBuilder) Path(subPath string) *RouteBuilder {\n\tb.currentPath = subPath\n\treturn b\n}\n\n// Doc tells what this route is all about. Optional.\nfunc (b *RouteBuilder) Doc(documentation string) *RouteBuilder {\n\tb.doc = documentation\n\treturn b\n}\n\n// Notes is a verbose explanation of the operation behavior. Optional.\nfunc (b *RouteBuilder) Notes(notes string) *RouteBuilder {\n\tb.notes = notes\n\treturn b\n}\n\n// Reads tells what resource type will be read from the request payload. Optional.\n// A parameter of type \"body\" is added ,required is set to true and the dataType is set to the qualified name of the sample's type.\nfunc (b *RouteBuilder) Reads(sample interface{}, optionalDescription ...string) *RouteBuilder {\n\tfn := b.typeNameHandleFunc\n\tif fn == nil {\n\t\tfn = reflectTypeName\n\t}\n\ttypeAsName := fn(sample)\n\tdescription := \"\"\n\tif len(optionalDescription) > 0 {\n\t\tdescription = optionalDescription[0]\n\t}\n\tb.readSample = sample\n\tbodyParameter := &Parameter{&ParameterData{Name: \"body\", Description: description}}\n\tbodyParameter.beBody()\n\tbodyParameter.Required(true)\n\tbodyParameter.DataType(typeAsName)\n\tb.Param(bodyParameter)\n\treturn b\n}\n\n// ParameterNamed returns a Parameter already known to the RouteBuilder. Returns nil if not.\n// Use this to modify or extend information for the Parameter (through its Data()).\nfunc (b RouteBuilder) ParameterNamed(name string) (p *Parameter) {\n\tfor _, each := range b.parameters {\n\t\tif each.Data().Name == name {\n\t\t\treturn each\n\t\t}\n\t}\n\treturn p\n}\n\n// Writes tells what resource type will be written as the response payload. Optional.\nfunc (b *RouteBuilder) Writes(sample interface{}) *RouteBuilder {\n\tb.writeSample = sample\n\treturn b\n}\n\n// Param allows you to document the parameters of the Route. It adds a new Parameter (does not check for duplicates).\nfunc (b *RouteBuilder) Param(parameter *Parameter) *RouteBuilder {\n\tif b.parameters == nil {\n\t\tb.parameters = []*Parameter{}\n\t}\n\tb.parameters = append(b.parameters, parameter)\n\treturn b\n}\n\n// Operation allows you to document what the actual method/function call is of the Route.\n// Unless called, the operation name is derived from the RouteFunction set using To(..).\nfunc (b *RouteBuilder) Operation(name string) *RouteBuilder {\n\tb.operation = name\n\treturn b\n}\n\n// ReturnsError is deprecated, use Returns instead.\nfunc (b *RouteBuilder) ReturnsError(code int, message string, model interface{}) *RouteBuilder {\n\tlog.Print(\"ReturnsError is deprecated, use Returns instead.\")\n\treturn b.Returns(code, message, model)\n}\n\n// Returns allows you to document what responses (errors or regular) can be expected.\n// The model parameter is optional ; either pass a struct instance or use nil if not applicable.\nfunc (b *RouteBuilder) Returns(code int, message string, model interface{}) *RouteBuilder {\n\terr := ResponseError{\n\t\tCode:      code,\n\t\tMessage:   message,\n\t\tModel:     model,\n\t\tIsDefault: false, // this field is deprecated, use default response instead.\n\t}\n\t// lazy init because there is no NewRouteBuilder (yet)\n\tif b.errorMap == nil {\n\t\tb.errorMap = map[int]ResponseError{}\n\t}\n\tb.errorMap[code] = err\n\treturn b\n}\n\n// ReturnsWithHeaders is similar to Returns, but can specify response headers\nfunc (b *RouteBuilder) ReturnsWithHeaders(code int, message string, model interface{}, headers map[string]Header) *RouteBuilder {\n\tb.Returns(code, message, model)\n\terr := b.errorMap[code]\n\terr.Headers = headers\n\tb.errorMap[code] = err\n\treturn b\n}\n\n// DefaultReturns is a special Returns call that sets the default of the response.\nfunc (b *RouteBuilder) DefaultReturns(message string, model interface{}) *RouteBuilder {\n\tb.defaultResponse = &ResponseError{\n\t\tMessage: message,\n\t\tModel:   model,\n\t}\n\treturn b\n}\n\n// Metadata adds or updates a key=value pair to the metadata map.\nfunc (b *RouteBuilder) Metadata(key string, value interface{}) *RouteBuilder {\n\tif b.metadata == nil {\n\t\tb.metadata = map[string]interface{}{}\n\t}\n\tb.metadata[key] = value\n\treturn b\n}\n\n// AddExtension adds or updates a key=value pair to the extensions map.\nfunc (b *RouteBuilder) AddExtension(key string, value interface{}) *RouteBuilder {\n\tif b.extensions == nil {\n\t\tb.extensions = map[string]interface{}{}\n\t}\n\tb.extensions[key] = value\n\treturn b\n}\n\n// Deprecate sets the value of deprecated to true.  Deprecated routes have a special UI treatment to warn against use\nfunc (b *RouteBuilder) Deprecate() *RouteBuilder {\n\tb.deprecated = true\n\treturn b\n}\n\n// AllowedMethodsWithoutContentType overrides the default list GET,HEAD,OPTIONS,DELETE,TRACE\n// If a request does not include a content-type header then\n// depending on the method, it may return a 415 Unsupported Media.\n// Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...\nfunc (b *RouteBuilder) AllowedMethodsWithoutContentType(methods []string) *RouteBuilder {\n\tb.allowedMethodsWithoutContentType = methods\n\treturn b\n}\n\n// ResponseError represents a response; not necessarily an error.\ntype ResponseError struct {\n\tExtensionProperties\n\tCode      int\n\tMessage   string\n\tModel     interface{}\n\tHeaders   map[string]Header\n\tIsDefault bool\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\t*Items\n\tDescription string\n}\n\n// Items describe swagger simple schemas for headers\ntype Items struct {\n\tType             string\n\tFormat           string\n\tItems            *Items\n\tCollectionFormat string\n\tDefault          interface{}\n}\n\nfunc (b *RouteBuilder) servicePath(path string) *RouteBuilder {\n\tb.rootPath = path\n\treturn b\n}\n\n// Filter appends a FilterFunction to the end of filters for this Route to build.\nfunc (b *RouteBuilder) Filter(filter FilterFunction) *RouteBuilder {\n\tb.filters = append(b.filters, filter)\n\treturn b\n}\n\n// If sets a condition function that controls matching the Route based on custom logic.\n// The condition function is provided the HTTP request and should return true if the route\n// should be considered.\n//\n// Efficiency note: the condition function is called before checking the method, produces, and\n// consumes criteria, so that the correct HTTP status code can be returned.\n//\n// Lifecycle note: no filter functions have been called prior to calling the condition function,\n// so the condition function should not depend on any context that might be set up by container\n// or route filters.\nfunc (b *RouteBuilder) If(condition RouteSelectionConditionFunction) *RouteBuilder {\n\tb.conditions = append(b.conditions, condition)\n\treturn b\n}\n\n// ContentEncodingEnabled allows you to override the Containers value for auto-compressing this route response.\nfunc (b *RouteBuilder) ContentEncodingEnabled(enabled bool) *RouteBuilder {\n\tb.contentEncodingEnabled = &enabled\n\treturn b\n}\n\n// If no specific Route path then set to rootPath\n// If no specific Produces then set to rootProduces\n// If no specific Consumes then set to rootConsumes\nfunc (b *RouteBuilder) copyDefaults(rootProduces, rootConsumes []string) {\n\tif len(b.produces) == 0 {\n\t\tb.produces = rootProduces\n\t}\n\tif len(b.consumes) == 0 {\n\t\tb.consumes = rootConsumes\n\t}\n}\n\n// typeNameHandler sets the function that will convert types to strings in the parameter\n// and model definitions.\nfunc (b *RouteBuilder) typeNameHandler(handler TypeNameHandleFunction) *RouteBuilder {\n\tb.typeNameHandleFunc = handler\n\treturn b\n}\n\n// Build creates a new Route using the specification details collected by the RouteBuilder\nfunc (b *RouteBuilder) Build() Route {\n\tpathExpr, err := newPathExpression(b.currentPath)\n\tif err != nil {\n\t\tlog.Printf(\"Invalid path:%s because:%v\", b.currentPath, err)\n\t\tos.Exit(1)\n\t}\n\tif b.function == nil {\n\t\tlog.Printf(\"No function specified for route:\" + b.currentPath)\n\t\tos.Exit(1)\n\t}\n\toperationName := b.operation\n\tif len(operationName) == 0 && b.function != nil {\n\t\t// extract from definition\n\t\toperationName = nameOfFunction(b.function)\n\t}\n\troute := Route{\n\t\tMethod:                           b.httpMethod,\n\t\tPath:                             concatPath(b.rootPath, b.currentPath),\n\t\tProduces:                         b.produces,\n\t\tConsumes:                         b.consumes,\n\t\tFunction:                         b.function,\n\t\tFilters:                          b.filters,\n\t\tIf:                               b.conditions,\n\t\trelativePath:                     b.currentPath,\n\t\tpathExpr:                         pathExpr,\n\t\tDoc:                              b.doc,\n\t\tNotes:                            b.notes,\n\t\tOperation:                        operationName,\n\t\tParameterDocs:                    b.parameters,\n\t\tResponseErrors:                   b.errorMap,\n\t\tDefaultResponse:                  b.defaultResponse,\n\t\tReadSample:                       b.readSample,\n\t\tWriteSample:                      b.writeSample,\n\t\tMetadata:                         b.metadata,\n\t\tDeprecated:                       b.deprecated,\n\t\tcontentEncodingEnabled:           b.contentEncodingEnabled,\n\t\tallowedMethodsWithoutContentType: b.allowedMethodsWithoutContentType,\n\t}\n\troute.Extensions = b.extensions\n\troute.postBuild()\n\treturn route\n}\n\nfunc concatPath(path1, path2 string) string {\n\treturn strings.TrimRight(path1, \"/\") + \"/\" + strings.TrimLeft(path2, \"/\")\n}\n\nvar anonymousFuncCount int32\n\n// nameOfFunction returns the short name of the function f for documentation.\n// It uses a runtime feature for debugging ; its value may change for later Go versions.\nfunc nameOfFunction(f interface{}) string {\n\tfun := runtime.FuncForPC(reflect.ValueOf(f).Pointer())\n\ttokenized := strings.Split(fun.Name(), \".\")\n\tlast := tokenized[len(tokenized)-1]\n\tlast = strings.TrimSuffix(last, \")·fm\") // < Go 1.5\n\tlast = strings.TrimSuffix(last, \")-fm\") // Go 1.5\n\tlast = strings.TrimSuffix(last, \"·fm\")  // < Go 1.5\n\tlast = strings.TrimSuffix(last, \"-fm\")  // Go 1.5\n\tif last == \"func1\" {                    // this could mean conflicts in API docs\n\t\tval := atomic.AddInt32(&anonymousFuncCount, 1)\n\t\tlast = \"func\" + fmt.Sprintf(\"%d\", val)\n\t\tatomic.StoreInt32(&anonymousFuncCount, val)\n\t}\n\treturn last\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_reader.go",
    "content": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\ntype RouteReader interface {\n\tMethod() string\n\tConsumes() []string\n\tPath() string\n\tDoc() string\n\tNotes() string\n\tOperation() string\n\tParameterDocs() []*Parameter\n\t// Returns a copy\n\tMetadata() map[string]interface{}\n\tDeprecated() bool\n}\n\ntype routeAccessor struct {\n\troute *Route\n}\n\nfunc (r routeAccessor) Method() string {\n\treturn r.route.Method\n}\nfunc (r routeAccessor) Consumes() []string {\n\treturn r.route.Consumes[:]\n}\nfunc (r routeAccessor) Path() string {\n\treturn r.route.Path\n}\nfunc (r routeAccessor) Doc() string {\n\treturn r.route.Doc\n}\nfunc (r routeAccessor) Notes() string {\n\treturn r.route.Notes\n}\nfunc (r routeAccessor) Operation() string {\n\treturn r.route.Operation\n}\nfunc (r routeAccessor) ParameterDocs() []*Parameter {\n\treturn r.route.ParameterDocs[:]\n}\n\n// Returns a copy\nfunc (r routeAccessor) Metadata() map[string]interface{} {\n\treturn copyMap(r.route.Metadata)\n}\nfunc (r routeAccessor) Deprecated() bool {\n\treturn r.route.Deprecated\n}\n\n// https://stackoverflow.com/questions/23057785/how-to-copy-a-map\nfunc copyMap(m map[string]interface{}) map[string]interface{} {\n\tcp := make(map[string]interface{})\n\tfor k, v := range m {\n\t\tvm, ok := v.(map[string]interface{})\n\t\tif ok {\n\t\t\tcp[k] = copyMap(vm)\n\t\t} else {\n\t\t\tcp[k] = v\n\t\t}\n\t}\n\treturn cp\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/router.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport \"net/http\"\n\n// A RouteSelector finds the best matching Route given the input HTTP Request\n// RouteSelectors can optionally also implement the PathProcessor interface to also calculate the\n// path parameters after the route has been selected.\ntype RouteSelector interface {\n\n\t// SelectRoute finds a Route given the input HTTP Request and a list of WebServices.\n\t// It returns a selected Route and its containing WebService or an error indicating\n\t// a problem.\n\tSelectRoute(\n\t\twebServices []*WebService,\n\t\thttpRequest *http.Request) (selectedService *WebService, selected *Route, err error)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/service_error.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\n// ServiceError is a transport object to pass information about a non-Http error occurred in a WebService while processing a request.\ntype ServiceError struct {\n\tCode    int\n\tMessage string\n\tHeader  http.Header\n}\n\n// NewError returns a ServiceError using the code and reason\nfunc NewError(code int, message string) ServiceError {\n\treturn ServiceError{Code: code, Message: message}\n}\n\n// NewErrorWithHeader returns a ServiceError using the code, reason and header\nfunc NewErrorWithHeader(code int, message string, header http.Header) ServiceError {\n\treturn ServiceError{Code: code, Message: message, Header: header}\n}\n\n// Error returns a text representation of the service error\nfunc (s ServiceError) Error() string {\n\treturn fmt.Sprintf(\"[ServiceError:%v] %v\", s.Code, s.Message)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service.go",
    "content": "package restful\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// WebService holds a collection of Route values that bind a Http Method + URL Path to a function.\ntype WebService struct {\n\trootPath       string\n\tpathExpr       *pathExpression // cached compilation of rootPath as RegExp\n\troutes         []Route\n\tproduces       []string\n\tconsumes       []string\n\tpathParameters []*Parameter\n\tfilters        []FilterFunction\n\tdocumentation  string\n\tapiVersion     string\n\n\ttypeNameHandleFunc TypeNameHandleFunction\n\n\tdynamicRoutes bool\n\n\t// protects 'routes' if dynamic routes are enabled\n\troutesLock sync.RWMutex\n}\n\nfunc (w *WebService) SetDynamicRoutes(enable bool) {\n\tw.dynamicRoutes = enable\n}\n\n// TypeNameHandleFunction declares functions that can handle translating the name of a sample object\n// into the restful documentation for the service.\ntype TypeNameHandleFunction func(sample interface{}) string\n\n// TypeNameHandler sets the function that will convert types to strings in the parameter\n// and model definitions. If not set, the web service will invoke\n// reflect.TypeOf(object).String().\nfunc (w *WebService) TypeNameHandler(handler TypeNameHandleFunction) *WebService {\n\tw.typeNameHandleFunc = handler\n\treturn w\n}\n\n// reflectTypeName is the default TypeNameHandleFunction and for a given object\n// returns the name that Go identifies it with (e.g. \"string\" or \"v1.Object\") via\n// the reflection API.\nfunc reflectTypeName(sample interface{}) string {\n\treturn reflect.TypeOf(sample).String()\n}\n\n// compilePathExpression ensures that the path is compiled into a RegEx for those routers that need it.\nfunc (w *WebService) compilePathExpression() {\n\tcompiled, err := newPathExpression(w.rootPath)\n\tif err != nil {\n\t\tlog.Printf(\"invalid path:%s because:%v\", w.rootPath, err)\n\t\tos.Exit(1)\n\t}\n\tw.pathExpr = compiled\n}\n\n// ApiVersion sets the API version for documentation purposes.\nfunc (w *WebService) ApiVersion(apiVersion string) *WebService {\n\tw.apiVersion = apiVersion\n\treturn w\n}\n\n// Version returns the API version for documentation purposes.\nfunc (w *WebService) Version() string { return w.apiVersion }\n\n// Path specifies the root URL template path of the WebService.\n// All Routes will be relative to this path.\nfunc (w *WebService) Path(root string) *WebService {\n\tw.rootPath = root\n\tif len(w.rootPath) == 0 {\n\t\tw.rootPath = \"/\"\n\t}\n\tw.compilePathExpression()\n\treturn w\n}\n\n// Param adds a PathParameter to document parameters used in the root path.\nfunc (w *WebService) Param(parameter *Parameter) *WebService {\n\tif w.pathParameters == nil {\n\t\tw.pathParameters = []*Parameter{}\n\t}\n\tw.pathParameters = append(w.pathParameters, parameter)\n\treturn w\n}\n\n// PathParameter creates a new Parameter of kind Path for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) PathParameter(name, description string) *Parameter {\n\treturn PathParameter(name, description)\n}\n\n// PathParameter creates a new Parameter of kind Path for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc PathParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: true, DataType: \"string\"}}\n\tp.bePath()\n\treturn p\n}\n\n// QueryParameter creates a new Parameter of kind Query for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc (w *WebService) QueryParameter(name, description string) *Parameter {\n\treturn QueryParameter(name, description)\n}\n\n// QueryParameter creates a new Parameter of kind Query for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc QueryParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\", CollectionFormat: CollectionFormatCSV.String()}}\n\tp.beQuery()\n\treturn p\n}\n\n// BodyParameter creates a new Parameter of kind Body for documentation purposes.\n// It is initialized as required without a DataType.\nfunc (w *WebService) BodyParameter(name, description string) *Parameter {\n\treturn BodyParameter(name, description)\n}\n\n// BodyParameter creates a new Parameter of kind Body for documentation purposes.\n// It is initialized as required without a DataType.\nfunc BodyParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: true}}\n\tp.beBody()\n\treturn p\n}\n\n// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc (w *WebService) HeaderParameter(name, description string) *Parameter {\n\treturn HeaderParameter(name, description)\n}\n\n// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc HeaderParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beHeader()\n\treturn p\n}\n\n// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) FormParameter(name, description string) *Parameter {\n\treturn FormParameter(name, description)\n}\n\n// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc FormParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beForm()\n\treturn p\n}\n\n// MultiPartFormParameter creates a new Parameter of kind Form (using multipart/form-data) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) MultiPartFormParameter(name, description string) *Parameter {\n\treturn MultiPartFormParameter(name, description)\n}\n\nfunc MultiPartFormParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beMultiPartForm()\n\treturn p\n}\n\n// Route creates a new Route using the RouteBuilder and add to the ordered list of Routes.\nfunc (w *WebService) Route(builder *RouteBuilder) *WebService {\n\tw.routesLock.Lock()\n\tdefer w.routesLock.Unlock()\n\tbuilder.copyDefaults(w.produces, w.consumes)\n\tw.routes = append(w.routes, builder.Build())\n\treturn w\n}\n\n// RemoveRoute removes the specified route, looks for something that matches 'path' and 'method'\nfunc (w *WebService) RemoveRoute(path, method string) error {\n    if !w.dynamicRoutes {\n        return errors.New(\"dynamic routes are not enabled.\")\n    }\n    w.routesLock.Lock()\n    defer w.routesLock.Unlock()\n    newRoutes := []Route{}\n    for _, route := range w.routes {\n        if route.Method == method && route.Path == path {\n            continue\n        }\n        newRoutes = append(newRoutes, route)\n    }\n    w.routes = newRoutes\n    return nil\n}\n\n// Method creates a new RouteBuilder and initialize its http method\nfunc (w *WebService) Method(httpMethod string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(httpMethod)\n}\n\n// Produces specifies that this WebService can produce one or more MIME types.\n// Http requests must have one of these values set for the Accept header.\nfunc (w *WebService) Produces(contentTypes ...string) *WebService {\n\tw.produces = contentTypes\n\treturn w\n}\n\n// Consumes specifies that this WebService can consume one or more MIME types.\n// Http requests must have one of these values set for the Content-Type header.\nfunc (w *WebService) Consumes(accepts ...string) *WebService {\n\tw.consumes = accepts\n\treturn w\n}\n\n// Routes returns the Routes associated with this WebService\nfunc (w *WebService) Routes() []Route {\n\tif !w.dynamicRoutes {\n\t\treturn w.routes\n\t}\n\t// Make a copy of the array to prevent concurrency problems\n\tw.routesLock.RLock()\n\tdefer w.routesLock.RUnlock()\n\tresult := make([]Route, len(w.routes))\n\tfor ix := range w.routes {\n\t\tresult[ix] = w.routes[ix]\n\t}\n\treturn result\n}\n\n// RootPath returns the RootPath associated with this WebService. Default \"/\"\nfunc (w *WebService) RootPath() string {\n\treturn w.rootPath\n}\n\n// PathParameters return the path parameter names for (shared among its Routes)\nfunc (w *WebService) PathParameters() []*Parameter {\n\treturn w.pathParameters\n}\n\n// Filter adds a filter function to the chain of filters applicable to all its Routes\nfunc (w *WebService) Filter(filter FilterFunction) *WebService {\n\tw.filters = append(w.filters, filter)\n\treturn w\n}\n\n// Doc is used to set the documentation of this service.\nfunc (w *WebService) Doc(plainText string) *WebService {\n\tw.documentation = plainText\n\treturn w\n}\n\n// Documentation returns it.\nfunc (w *WebService) Documentation() string {\n\treturn w.documentation\n}\n\n/*\n\tConvenience methods\n*/\n\n// HEAD is a shortcut for .Method(\"HEAD\").Path(subPath)\nfunc (w *WebService) HEAD(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"HEAD\").Path(subPath)\n}\n\n// GET is a shortcut for .Method(\"GET\").Path(subPath)\nfunc (w *WebService) GET(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"GET\").Path(subPath)\n}\n\n// POST is a shortcut for .Method(\"POST\").Path(subPath)\nfunc (w *WebService) POST(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"POST\").Path(subPath)\n}\n\n// PUT is a shortcut for .Method(\"PUT\").Path(subPath)\nfunc (w *WebService) PUT(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"PUT\").Path(subPath)\n}\n\n// PATCH is a shortcut for .Method(\"PATCH\").Path(subPath)\nfunc (w *WebService) PATCH(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"PATCH\").Path(subPath)\n}\n\n// DELETE is a shortcut for .Method(\"DELETE\").Path(subPath)\nfunc (w *WebService) DELETE(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"DELETE\").Path(subPath)\n}\n\n// OPTIONS is a shortcut for .Method(\"OPTIONS\").Path(subPath)\nfunc (w *WebService) OPTIONS(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"OPTIONS\").Path(subPath)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service_container.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n)\n\n// DefaultContainer is a restful.Container that uses http.DefaultServeMux\nvar DefaultContainer *Container\n\nfunc init() {\n\tDefaultContainer = NewContainer()\n\tDefaultContainer.ServeMux = http.DefaultServeMux\n}\n\n// If set the true then panics will not be caught to return HTTP 500.\n// In that case, Route functions are responsible for handling any error situation.\n// Default value is false = recover from panics. This has performance implications.\n// OBSOLETE ; use restful.DefaultContainer.DoNotRecover(true)\nvar DoNotRecover = false\n\n// Add registers a new WebService add it to the DefaultContainer.\nfunc Add(service *WebService) {\n\tDefaultContainer.Add(service)\n}\n\n// Filter appends a container FilterFunction from the DefaultContainer.\n// These are called before dispatching a http.Request to a WebService.\nfunc Filter(filter FilterFunction) {\n\tDefaultContainer.Filter(filter)\n}\n\n// RegisteredWebServices returns the collections of WebServices from the DefaultContainer\nfunc RegisteredWebServices() []*WebService {\n\treturn DefaultContainer.RegisteredWebServices()\n}\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/.gitignore",
    "content": "# editor and IDE paraphernalia\n.idea\n.vscode\n\n# macOS paraphernalia\n.DS_Store\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/LICENSE",
    "content": "Copyright (c) 2014, Evan Phoenix\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without \nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n* Neither the name of the Evan Phoenix nor the names of its contributors \n  may be used to endorse or promote products derived from this software \n  without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" \nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE \nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE \nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR \nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER \nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, \nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/README.md",
    "content": "# JSON-Patch\n`jsonpatch` is a library which provides functionality for both applying\n[RFC6902 JSON patches](http://tools.ietf.org/html/rfc6902) against documents, as\nwell as for calculating & applying [RFC7396 JSON merge patches](https://tools.ietf.org/html/rfc7396).\n\n[![GoDoc](https://godoc.org/github.com/evanphx/json-patch?status.svg)](http://godoc.org/github.com/evanphx/json-patch)\n[![Build Status](https://travis-ci.org/evanphx/json-patch.svg?branch=master)](https://travis-ci.org/evanphx/json-patch)\n[![Report Card](https://goreportcard.com/badge/github.com/evanphx/json-patch)](https://goreportcard.com/report/github.com/evanphx/json-patch)\n\n# Get It!\n\n**Latest and greatest**: \n```bash\ngo get -u github.com/evanphx/json-patch/v5\n```\n\n**Stable Versions**:\n* Version 5: `go get -u gopkg.in/evanphx/json-patch.v5`\n* Version 4: `go get -u gopkg.in/evanphx/json-patch.v4`\n\n(previous versions below `v3` are unavailable)\n\n# Use It!\n* [Create and apply a merge patch](#create-and-apply-a-merge-patch)\n* [Create and apply a JSON Patch](#create-and-apply-a-json-patch)\n* [Comparing JSON documents](#comparing-json-documents)\n* [Combine merge patches](#combine-merge-patches)\n\n\n# Configuration\n\n* There is a global configuration variable `jsonpatch.SupportNegativeIndices`.\n  This defaults to `true` and enables the non-standard practice of allowing\n  negative indices to mean indices starting at the end of an array. This\n  functionality can be disabled by setting `jsonpatch.SupportNegativeIndices =\n  false`.\n\n* There is a global configuration variable `jsonpatch.AccumulatedCopySizeLimit`,\n  which limits the total size increase in bytes caused by \"copy\" operations in a\n  patch. It defaults to 0, which means there is no limit.\n\nThese global variables control the behavior of `jsonpatch.Apply`.\n\nAn alternative to `jsonpatch.Apply` is `jsonpatch.ApplyWithOptions` whose behavior\nis controlled by an `options` parameter of type `*jsonpatch.ApplyOptions`.\n\nStructure `jsonpatch.ApplyOptions` includes the configuration options above \nand adds two new options: `AllowMissingPathOnRemove` and `EnsurePathExistsOnAdd`.\n\nWhen `AllowMissingPathOnRemove` is set to `true`, `jsonpatch.ApplyWithOptions` will ignore\n`remove` operations whose `path` points to a non-existent location in the JSON document.\n`AllowMissingPathOnRemove` defaults to `false` which will lead to `jsonpatch.ApplyWithOptions`\nreturning an error when hitting a missing `path` on `remove`.\n\nWhen `EnsurePathExistsOnAdd` is set to `true`, `jsonpatch.ApplyWithOptions` will make sure\nthat `add` operations produce all the `path` elements that are missing from the target object.\n\nUse `jsonpatch.NewApplyOptions` to create an instance of `jsonpatch.ApplyOptions`\nwhose values are populated from the global configuration variables.\n\n## Create and apply a merge patch\nGiven both an original JSON document and a modified JSON document, you can create\na [Merge Patch](https://tools.ietf.org/html/rfc7396) document. \n\nIt can describe the changes needed to convert from the original to the \nmodified JSON document.\n\nOnce you have a merge patch, you can apply it to other JSON documents using the\n`jsonpatch.MergePatch(document, patch)` function.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\t// Let's create a merge patch from these two documents...\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\ttarget := []byte(`{\"name\": \"Jane\", \"age\": 24}`)\n\n\tpatch, err := jsonpatch.CreateMergePatch(original, target)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Now lets apply the patch against a different JSON document...\n\n\talternative := []byte(`{\"name\": \"Tina\", \"age\": 28, \"height\": 3.75}`)\n\tmodifiedAlternative, err := jsonpatch.MergePatch(alternative, patch)\n\n\tfmt.Printf(\"patch document:   %s\\n\", patch)\n\tfmt.Printf(\"updated alternative doc: %s\\n\", modifiedAlternative)\n}\n```\n\nWhen ran, you get the following output:\n\n```bash\n$ go run main.go\npatch document:   {\"height\":null,\"name\":\"Jane\"}\nupdated alternative doc: {\"age\":28,\"name\":\"Jane\"}\n```\n\n## Create and apply a JSON Patch\nYou can create patch objects using `DecodePatch([]byte)`, which can then \nbe applied against JSON documents.\n\nThe following is an example of creating a patch from two operations, and\napplying it against a JSON document.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\tpatchJSON := []byte(`[\n\t\t{\"op\": \"replace\", \"path\": \"/name\", \"value\": \"Jane\"},\n\t\t{\"op\": \"remove\", \"path\": \"/height\"}\n\t]`)\n\n\tpatch, err := jsonpatch.DecodePatch(patchJSON)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmodified, err := patch.Apply(original)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"Original document: %s\\n\", original)\n\tfmt.Printf(\"Modified document: %s\\n\", modified)\n}\n```\n\nWhen ran, you get the following output:\n\n```bash\n$ go run main.go\nOriginal document: {\"name\": \"John\", \"age\": 24, \"height\": 3.21}\nModified document: {\"age\":24,\"name\":\"Jane\"}\n```\n\n## Comparing JSON documents\nDue to potential whitespace and ordering differences, one cannot simply compare\nJSON strings or byte-arrays directly. \n\nAs such, you can instead use `jsonpatch.Equal(document1, document2)` to \ndetermine if two JSON documents are _structurally_ equal. This ignores\nwhitespace differences, and key-value ordering.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\tsimilar := []byte(`\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"height\": 3.21,\n\t\t\t\"name\": \"John\"\n\t\t}\n\t`)\n\tdifferent := []byte(`{\"name\": \"Jane\", \"age\": 20, \"height\": 3.37}`)\n\n\tif jsonpatch.Equal(original, similar) {\n\t\tfmt.Println(`\"original\" is structurally equal to \"similar\"`)\n\t}\n\n\tif !jsonpatch.Equal(original, different) {\n\t\tfmt.Println(`\"original\" is _not_ structurally equal to \"different\"`)\n\t}\n}\n```\n\nWhen ran, you get the following output:\n```bash\n$ go run main.go\n\"original\" is structurally equal to \"similar\"\n\"original\" is _not_ structurally equal to \"different\"\n```\n\n## Combine merge patches\nGiven two JSON merge patch documents, it is possible to combine them into a \nsingle merge patch which can describe both set of changes.\n\nThe resulting merge patch can be used such that applying it results in a\ndocument structurally similar as merging each merge patch to the document\nin succession. \n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\n\tnameAndHeight := []byte(`{\"height\":null,\"name\":\"Jane\"}`)\n\tageAndEyes := []byte(`{\"age\":4.23,\"eyes\":\"blue\"}`)\n\n\t// Let's combine these merge patch documents...\n\tcombinedPatch, err := jsonpatch.MergeMergePatches(nameAndHeight, ageAndEyes)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Apply each patch individual against the original document\n\twithoutCombinedPatch, err := jsonpatch.MergePatch(original, nameAndHeight)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\twithoutCombinedPatch, err = jsonpatch.MergePatch(withoutCombinedPatch, ageAndEyes)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Apply the combined patch against the original document\n\n\twithCombinedPatch, err := jsonpatch.MergePatch(original, combinedPatch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Do both result in the same thing? They should!\n\tif jsonpatch.Equal(withCombinedPatch, withoutCombinedPatch) {\n\t\tfmt.Println(\"Both JSON documents are structurally the same!\")\n\t}\n\n\tfmt.Printf(\"combined merge patch: %s\", combinedPatch)\n}\n```\n\nWhen ran, you get the following output:\n```bash\n$ go run main.go\nBoth JSON documents are structurally the same!\ncombined merge patch: {\"age\":4.23,\"eyes\":\"blue\",\"height\":null,\"name\":\"Jane\"}\n```\n\n# CLI for comparing JSON documents\nYou can install the commandline program `json-patch`.\n\nThis program can take multiple JSON patch documents as arguments, \nand fed a JSON document from `stdin`. It will apply the patch(es) against \nthe document and output the modified doc.\n\n**patch.1.json**\n```json\n[\n    {\"op\": \"replace\", \"path\": \"/name\", \"value\": \"Jane\"},\n    {\"op\": \"remove\", \"path\": \"/height\"}\n]\n```\n\n**patch.2.json**\n```json\n[\n    {\"op\": \"add\", \"path\": \"/address\", \"value\": \"123 Main St\"},\n    {\"op\": \"replace\", \"path\": \"/age\", \"value\": \"21\"}\n]\n```\n\n**document.json**\n```json\n{\n    \"name\": \"John\",\n    \"age\": 24,\n    \"height\": 3.21\n}\n```\n\nYou can then run:\n\n```bash\n$ go install github.com/evanphx/json-patch/cmd/json-patch\n$ cat document.json | json-patch -p patch.1.json -p patch.2.json\n{\"address\":\"123 Main St\",\"age\":\"21\",\"name\":\"Jane\"}\n```\n\n# Help It!\nContributions are welcomed! Leave [an issue](https://github.com/evanphx/json-patch/issues)\nor [create a PR](https://github.com/evanphx/json-patch/compare).\n\n\nBefore creating a pull request, we'd ask that you make sure tests are passing\nand that you have added new tests when applicable.\n\nContributors can run tests using:\n\n```bash\ngo test -cover ./...\n```\n\nBuilds for pull requests are tested automatically \nusing [TravisCI](https://travis-ci.org/evanphx/json-patch).\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/errors.go",
    "content": "package jsonpatch\n\nimport \"fmt\"\n\n// AccumulatedCopySizeError is an error type returned when the accumulated size\n// increase caused by copy operations in a patch operation has exceeded the\n// limit.\ntype AccumulatedCopySizeError struct {\n\tlimit       int64\n\taccumulated int64\n}\n\n// NewAccumulatedCopySizeError returns an AccumulatedCopySizeError.\nfunc NewAccumulatedCopySizeError(l, a int64) *AccumulatedCopySizeError {\n\treturn &AccumulatedCopySizeError{limit: l, accumulated: a}\n}\n\n// Error implements the error interface.\nfunc (a *AccumulatedCopySizeError) Error() string {\n\treturn fmt.Sprintf(\"Unable to complete the copy, the accumulated size increase of copy is %d, exceeding the limit %d\", a.accumulated, a.limit)\n}\n\n// ArraySizeError is an error type returned when the array size has exceeded\n// the limit.\ntype ArraySizeError struct {\n\tlimit int\n\tsize  int\n}\n\n// NewArraySizeError returns an ArraySizeError.\nfunc NewArraySizeError(l, s int) *ArraySizeError {\n\treturn &ArraySizeError{limit: l, size: s}\n}\n\n// Error implements the error interface.\nfunc (a *ArraySizeError) Error() string {\n\treturn fmt.Sprintf(\"Unable to create array of size %d, limit is %d\", a.size, a.limit)\n}\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/merge.go",
    "content": "package jsonpatch\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\nfunc merge(cur, patch *lazyNode, mergeMerge bool) *lazyNode {\n\tcurDoc, err := cur.intoDoc()\n\n\tif err != nil {\n\t\tpruneNulls(patch)\n\t\treturn patch\n\t}\n\n\tpatchDoc, err := patch.intoDoc()\n\n\tif err != nil {\n\t\treturn patch\n\t}\n\n\tmergeDocs(curDoc, patchDoc, mergeMerge)\n\n\treturn cur\n}\n\nfunc mergeDocs(doc, patch *partialDoc, mergeMerge bool) {\n\tfor k, v := range *patch {\n\t\tif v == nil {\n\t\t\tif mergeMerge {\n\t\t\t\t(*doc)[k] = nil\n\t\t\t} else {\n\t\t\t\tdelete(*doc, k)\n\t\t\t}\n\t\t} else {\n\t\t\tcur, ok := (*doc)[k]\n\n\t\t\tif !ok || cur == nil {\n\t\t\t\tif !mergeMerge {\n\t\t\t\t\tpruneNulls(v)\n\t\t\t\t}\n\n\t\t\t\t(*doc)[k] = v\n\t\t\t} else {\n\t\t\t\t(*doc)[k] = merge(cur, v, mergeMerge)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc pruneNulls(n *lazyNode) {\n\tsub, err := n.intoDoc()\n\n\tif err == nil {\n\t\tpruneDocNulls(sub)\n\t} else {\n\t\tary, err := n.intoAry()\n\n\t\tif err == nil {\n\t\t\tpruneAryNulls(ary)\n\t\t}\n\t}\n}\n\nfunc pruneDocNulls(doc *partialDoc) *partialDoc {\n\tfor k, v := range *doc {\n\t\tif v == nil {\n\t\t\tdelete(*doc, k)\n\t\t} else {\n\t\t\tpruneNulls(v)\n\t\t}\n\t}\n\n\treturn doc\n}\n\nfunc pruneAryNulls(ary *partialArray) *partialArray {\n\tnewAry := []*lazyNode{}\n\n\tfor _, v := range *ary {\n\t\tif v != nil {\n\t\t\tpruneNulls(v)\n\t\t}\n\t\tnewAry = append(newAry, v)\n\t}\n\n\t*ary = newAry\n\n\treturn ary\n}\n\nvar ErrBadJSONDoc = fmt.Errorf(\"Invalid JSON Document\")\nvar ErrBadJSONPatch = fmt.Errorf(\"Invalid JSON Patch\")\nvar errBadMergeTypes = fmt.Errorf(\"Mismatched JSON Documents\")\n\n// MergeMergePatches merges two merge patches together, such that\n// applying this resulting merged merge patch to a document yields the same\n// as merging each merge patch to the document in succession.\nfunc MergeMergePatches(patch1Data, patch2Data []byte) ([]byte, error) {\n\treturn doMergePatch(patch1Data, patch2Data, true)\n}\n\n// MergePatch merges the patchData into the docData.\nfunc MergePatch(docData, patchData []byte) ([]byte, error) {\n\treturn doMergePatch(docData, patchData, false)\n}\n\nfunc doMergePatch(docData, patchData []byte, mergeMerge bool) ([]byte, error) {\n\tdoc := &partialDoc{}\n\n\tdocErr := json.Unmarshal(docData, doc)\n\n\tpatch := &partialDoc{}\n\n\tpatchErr := json.Unmarshal(patchData, patch)\n\n\tif _, ok := docErr.(*json.SyntaxError); ok {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tif _, ok := patchErr.(*json.SyntaxError); ok {\n\t\treturn nil, ErrBadJSONPatch\n\t}\n\n\tif docErr == nil && *doc == nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tif patchErr == nil && *patch == nil {\n\t\treturn nil, ErrBadJSONPatch\n\t}\n\n\tif docErr != nil || patchErr != nil {\n\t\t// Not an error, just not a doc, so we turn straight into the patch\n\t\tif patchErr == nil {\n\t\t\tif mergeMerge {\n\t\t\t\tdoc = patch\n\t\t\t} else {\n\t\t\t\tdoc = pruneDocNulls(patch)\n\t\t\t}\n\t\t} else {\n\t\t\tpatchAry := &partialArray{}\n\t\t\tpatchErr = json.Unmarshal(patchData, patchAry)\n\n\t\t\tif patchErr != nil {\n\t\t\t\treturn nil, ErrBadJSONPatch\n\t\t\t}\n\n\t\t\tpruneAryNulls(patchAry)\n\n\t\t\tout, patchErr := json.Marshal(patchAry)\n\n\t\t\tif patchErr != nil {\n\t\t\t\treturn nil, ErrBadJSONPatch\n\t\t\t}\n\n\t\t\treturn out, nil\n\t\t}\n\t} else {\n\t\tmergeDocs(doc, patch, mergeMerge)\n\t}\n\n\treturn json.Marshal(doc)\n}\n\n// resemblesJSONArray indicates whether the byte-slice \"appears\" to be\n// a JSON array or not.\n// False-positives are possible, as this function does not check the internal\n// structure of the array. It only checks that the outer syntax is present and\n// correct.\nfunc resemblesJSONArray(input []byte) bool {\n\tinput = bytes.TrimSpace(input)\n\n\thasPrefix := bytes.HasPrefix(input, []byte(\"[\"))\n\thasSuffix := bytes.HasSuffix(input, []byte(\"]\"))\n\n\treturn hasPrefix && hasSuffix\n}\n\n// CreateMergePatch will return a merge patch document capable of converting\n// the original document(s) to the modified document(s).\n// The parameters can be bytes of either two JSON Documents, or two arrays of\n// JSON documents.\n// The merge patch returned follows the specification defined at http://tools.ietf.org/html/draft-ietf-appsawg-json-merge-patch-07\nfunc CreateMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalResemblesArray := resemblesJSONArray(originalJSON)\n\tmodifiedResemblesArray := resemblesJSONArray(modifiedJSON)\n\n\t// Do both byte-slices seem like JSON arrays?\n\tif originalResemblesArray && modifiedResemblesArray {\n\t\treturn createArrayMergePatch(originalJSON, modifiedJSON)\n\t}\n\n\t// Are both byte-slices are not arrays? Then they are likely JSON objects...\n\tif !originalResemblesArray && !modifiedResemblesArray {\n\t\treturn createObjectMergePatch(originalJSON, modifiedJSON)\n\t}\n\n\t// None of the above? Then return an error because of mismatched types.\n\treturn nil, errBadMergeTypes\n}\n\n// createObjectMergePatch will return a merge-patch document capable of\n// converting the original document to the modified document.\nfunc createObjectMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalDoc := map[string]interface{}{}\n\tmodifiedDoc := map[string]interface{}{}\n\n\terr := json.Unmarshal(originalJSON, &originalDoc)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\terr = json.Unmarshal(modifiedJSON, &modifiedDoc)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tdest, err := getDiff(originalDoc, modifiedDoc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(dest)\n}\n\n// createArrayMergePatch will return an array of merge-patch documents capable\n// of converting the original document to the modified document for each\n// pair of JSON documents provided in the arrays.\n// Arrays of mismatched sizes will result in an error.\nfunc createArrayMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalDocs := []json.RawMessage{}\n\tmodifiedDocs := []json.RawMessage{}\n\n\terr := json.Unmarshal(originalJSON, &originalDocs)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\terr = json.Unmarshal(modifiedJSON, &modifiedDocs)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\ttotal := len(originalDocs)\n\tif len(modifiedDocs) != total {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tresult := []json.RawMessage{}\n\tfor i := 0; i < len(originalDocs); i++ {\n\t\toriginal := originalDocs[i]\n\t\tmodified := modifiedDocs[i]\n\n\t\tpatch, err := createObjectMergePatch(original, modified)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult = append(result, json.RawMessage(patch))\n\t}\n\n\treturn json.Marshal(result)\n}\n\n// Returns true if the array matches (must be json types).\n// As is idiomatic for go, an empty array is not the same as a nil array.\nfunc matchesArray(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tif (a == nil && b != nil) || (a != nil && b == nil) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif !matchesValue(a[i], b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Returns true if the values matches (must be json types)\n// The types of the values must match, otherwise it will always return false\n// If two map[string]interface{} are given, all elements must match.\nfunc matchesValue(av, bv interface{}) bool {\n\tif reflect.TypeOf(av) != reflect.TypeOf(bv) {\n\t\treturn false\n\t}\n\tswitch at := av.(type) {\n\tcase string:\n\t\tbt := bv.(string)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase float64:\n\t\tbt := bv.(float64)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase bool:\n\t\tbt := bv.(bool)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase nil:\n\t\t// Both nil, fine.\n\t\treturn true\n\tcase map[string]interface{}:\n\t\tbt := bv.(map[string]interface{})\n\t\tif len(bt) != len(at) {\n\t\t\treturn false\n\t\t}\n\t\tfor key := range bt {\n\t\t\tav, aOK := at[key]\n\t\t\tbv, bOK := bt[key]\n\t\t\tif aOK != bOK {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !matchesValue(av, bv) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase []interface{}:\n\t\tbt := bv.([]interface{})\n\t\treturn matchesArray(at, bt)\n\t}\n\treturn false\n}\n\n// getDiff returns the (recursive) difference between a and b as a map[string]interface{}.\nfunc getDiff(a, b map[string]interface{}) (map[string]interface{}, error) {\n\tinto := map[string]interface{}{}\n\tfor key, bv := range b {\n\t\tav, ok := a[key]\n\t\t// value was added\n\t\tif !ok {\n\t\t\tinto[key] = bv\n\t\t\tcontinue\n\t\t}\n\t\t// If types have changed, replace completely\n\t\tif reflect.TypeOf(av) != reflect.TypeOf(bv) {\n\t\t\tinto[key] = bv\n\t\t\tcontinue\n\t\t}\n\t\t// Types are the same, compare values\n\t\tswitch at := av.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tbt := bv.(map[string]interface{})\n\t\t\tdst := make(map[string]interface{}, len(bt))\n\t\t\tdst, err := getDiff(at, bt)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif len(dst) > 0 {\n\t\t\t\tinto[key] = dst\n\t\t\t}\n\t\tcase string, float64, bool:\n\t\t\tif !matchesValue(av, bv) {\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tcase []interface{}:\n\t\t\tbt := bv.([]interface{})\n\t\t\tif !matchesArray(at, bt) {\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tcase nil:\n\t\t\tswitch bv.(type) {\n\t\t\tcase nil:\n\t\t\t\t// Both nil, fine.\n\t\t\tdefault:\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"Unknown type:%T in key %s\", av, key))\n\t\t}\n\t}\n\t// Now add all deleted values as nil\n\tfor key := range a {\n\t\t_, found := b[key]\n\t\tif !found {\n\t\t\tinto[key] = nil\n\t\t}\n\t}\n\treturn into, nil\n}\n"
  },
  {
    "path": "vendor/github.com/evanphx/json-patch/patch.go",
    "content": "package jsonpatch\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/pkg/errors\"\n)\n\nconst (\n\teRaw = iota\n\teDoc\n\teAry\n)\n\nvar (\n\t// SupportNegativeIndices decides whether to support non-standard practice of\n\t// allowing negative indices to mean indices starting at the end of an array.\n\t// Default to true.\n\tSupportNegativeIndices bool = true\n\t// AccumulatedCopySizeLimit limits the total size increase in bytes caused by\n\t// \"copy\" operations in a patch.\n\tAccumulatedCopySizeLimit int64 = 0\n)\n\nvar (\n\tErrTestFailed   = errors.New(\"test failed\")\n\tErrMissing      = errors.New(\"missing value\")\n\tErrUnknownType  = errors.New(\"unknown object type\")\n\tErrInvalid      = errors.New(\"invalid state detected\")\n\tErrInvalidIndex = errors.New(\"invalid index referenced\")\n)\n\ntype lazyNode struct {\n\traw   *json.RawMessage\n\tdoc   partialDoc\n\tary   partialArray\n\twhich int\n}\n\n// Operation is a single JSON-Patch step, such as a single 'add' operation.\ntype Operation map[string]*json.RawMessage\n\n// Patch is an ordered collection of Operations.\ntype Patch []Operation\n\ntype partialDoc map[string]*lazyNode\ntype partialArray []*lazyNode\n\ntype container interface {\n\tget(key string) (*lazyNode, error)\n\tset(key string, val *lazyNode) error\n\tadd(key string, val *lazyNode) error\n\tremove(key string) error\n}\n\nfunc newLazyNode(raw *json.RawMessage) *lazyNode {\n\treturn &lazyNode{raw: raw, doc: nil, ary: nil, which: eRaw}\n}\n\nfunc (n *lazyNode) MarshalJSON() ([]byte, error) {\n\tswitch n.which {\n\tcase eRaw:\n\t\treturn json.Marshal(n.raw)\n\tcase eDoc:\n\t\treturn json.Marshal(n.doc)\n\tcase eAry:\n\t\treturn json.Marshal(n.ary)\n\tdefault:\n\t\treturn nil, ErrUnknownType\n\t}\n}\n\nfunc (n *lazyNode) UnmarshalJSON(data []byte) error {\n\tdest := make(json.RawMessage, len(data))\n\tcopy(dest, data)\n\tn.raw = &dest\n\tn.which = eRaw\n\treturn nil\n}\n\nfunc deepCopy(src *lazyNode) (*lazyNode, int, error) {\n\tif src == nil {\n\t\treturn nil, 0, nil\n\t}\n\ta, err := src.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\tsz := len(a)\n\tra := make(json.RawMessage, sz)\n\tcopy(ra, a)\n\treturn newLazyNode(&ra), sz, nil\n}\n\nfunc (n *lazyNode) intoDoc() (*partialDoc, error) {\n\tif n.which == eDoc {\n\t\treturn &n.doc, nil\n\t}\n\n\tif n.raw == nil {\n\t\treturn nil, ErrInvalid\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.doc)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn.which = eDoc\n\treturn &n.doc, nil\n}\n\nfunc (n *lazyNode) intoAry() (*partialArray, error) {\n\tif n.which == eAry {\n\t\treturn &n.ary, nil\n\t}\n\n\tif n.raw == nil {\n\t\treturn nil, ErrInvalid\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.ary)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn.which = eAry\n\treturn &n.ary, nil\n}\n\nfunc (n *lazyNode) compact() []byte {\n\tbuf := &bytes.Buffer{}\n\n\tif n.raw == nil {\n\t\treturn nil\n\t}\n\n\terr := json.Compact(buf, *n.raw)\n\n\tif err != nil {\n\t\treturn *n.raw\n\t}\n\n\treturn buf.Bytes()\n}\n\nfunc (n *lazyNode) tryDoc() bool {\n\tif n.raw == nil {\n\t\treturn false\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.doc)\n\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tn.which = eDoc\n\treturn true\n}\n\nfunc (n *lazyNode) tryAry() bool {\n\tif n.raw == nil {\n\t\treturn false\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.ary)\n\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tn.which = eAry\n\treturn true\n}\n\nfunc (n *lazyNode) equal(o *lazyNode) bool {\n\tif n.which == eRaw {\n\t\tif !n.tryDoc() && !n.tryAry() {\n\t\t\tif o.which != eRaw {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn bytes.Equal(n.compact(), o.compact())\n\t\t}\n\t}\n\n\tif n.which == eDoc {\n\t\tif o.which == eRaw {\n\t\t\tif !o.tryDoc() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif o.which != eDoc {\n\t\t\treturn false\n\t\t}\n\n\t\tif len(n.doc) != len(o.doc) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor k, v := range n.doc {\n\t\t\tov, ok := o.doc[k]\n\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (v == nil) != (ov == nil) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif v == nil && ov == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif !v.equal(ov) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tif o.which != eAry && !o.tryAry() {\n\t\treturn false\n\t}\n\n\tif len(n.ary) != len(o.ary) {\n\t\treturn false\n\t}\n\n\tfor idx, val := range n.ary {\n\t\tif !val.equal(o.ary[idx]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Kind reads the \"op\" field of the Operation.\nfunc (o Operation) Kind() string {\n\tif obj, ok := o[\"op\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\"\n\t\t}\n\n\t\treturn op\n\t}\n\n\treturn \"unknown\"\n}\n\n// Path reads the \"path\" field of the Operation.\nfunc (o Operation) Path() (string, error) {\n\tif obj, ok := o[\"path\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\", err\n\t\t}\n\n\t\treturn op, nil\n\t}\n\n\treturn \"unknown\", errors.Wrapf(ErrMissing, \"operation missing path field\")\n}\n\n// From reads the \"from\" field of the Operation.\nfunc (o Operation) From() (string, error) {\n\tif obj, ok := o[\"from\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\", err\n\t\t}\n\n\t\treturn op, nil\n\t}\n\n\treturn \"unknown\", errors.Wrapf(ErrMissing, \"operation, missing from field\")\n}\n\nfunc (o Operation) value() *lazyNode {\n\tif obj, ok := o[\"value\"]; ok {\n\t\treturn newLazyNode(obj)\n\t}\n\n\treturn nil\n}\n\n// ValueInterface decodes the operation value into an interface.\nfunc (o Operation) ValueInterface() (interface{}, error) {\n\tif obj, ok := o[\"value\"]; ok && obj != nil {\n\t\tvar v interface{}\n\n\t\terr := json.Unmarshal(*obj, &v)\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn v, nil\n\t}\n\n\treturn nil, errors.Wrapf(ErrMissing, \"operation, missing value field\")\n}\n\nfunc isArray(buf []byte) bool {\nLoop:\n\tfor _, c := range buf {\n\t\tswitch c {\n\t\tcase ' ':\n\t\tcase '\\n':\n\t\tcase '\\t':\n\t\t\tcontinue\n\t\tcase '[':\n\t\t\treturn true\n\t\tdefault:\n\t\t\tbreak Loop\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc findObject(pd *container, path string) (container, string) {\n\tdoc := *pd\n\n\tsplit := strings.Split(path, \"/\")\n\n\tif len(split) < 2 {\n\t\treturn nil, \"\"\n\t}\n\n\tparts := split[1 : len(split)-1]\n\n\tkey := split[len(split)-1]\n\n\tvar err error\n\n\tfor _, part := range parts {\n\n\t\tnext, ok := doc.get(decodePatchKey(part))\n\n\t\tif next == nil || ok != nil {\n\t\t\treturn nil, \"\"\n\t\t}\n\n\t\tif isArray(*next.raw) {\n\t\t\tdoc, err = next.intoAry()\n\n\t\t\tif err != nil {\n\t\t\t\treturn nil, \"\"\n\t\t\t}\n\t\t} else {\n\t\t\tdoc, err = next.intoDoc()\n\n\t\t\tif err != nil {\n\t\t\t\treturn nil, \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\treturn doc, decodePatchKey(key)\n}\n\nfunc (d *partialDoc) set(key string, val *lazyNode) error {\n\t(*d)[key] = val\n\treturn nil\n}\n\nfunc (d *partialDoc) add(key string, val *lazyNode) error {\n\t(*d)[key] = val\n\treturn nil\n}\n\nfunc (d *partialDoc) get(key string) (*lazyNode, error) {\n\treturn (*d)[key], nil\n}\n\nfunc (d *partialDoc) remove(key string) error {\n\t_, ok := (*d)[key]\n\tif !ok {\n\t\treturn errors.Wrapf(ErrMissing, \"Unable to remove nonexistent key: %s\", key)\n\t}\n\n\tdelete(*d, key)\n\treturn nil\n}\n\n// set should only be used to implement the \"replace\" operation, so \"key\" must\n// be an already existing index in \"d\".\nfunc (d *partialArray) set(key string, val *lazyNode) error {\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(*d) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(*d)\n\t}\n\n\t(*d)[idx] = val\n\treturn nil\n}\n\nfunc (d *partialArray) add(key string, val *lazyNode) error {\n\tif key == \"-\" {\n\t\t*d = append(*d, val)\n\t\treturn nil\n\t}\n\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"value was not a proper array index: '%s'\", key)\n\t}\n\n\tsz := len(*d) + 1\n\n\tary := make([]*lazyNode, sz)\n\n\tcur := *d\n\n\tif idx >= len(ary) {\n\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(ary) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(ary)\n\t}\n\n\tcopy(ary[0:idx], cur[0:idx])\n\tary[idx] = val\n\tcopy(ary[idx+1:], cur[idx:])\n\n\t*d = ary\n\treturn nil\n}\n\nfunc (d *partialArray) get(key string) (*lazyNode, error) {\n\tidx, err := strconv.Atoi(key)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(*d) {\n\t\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(*d)\n\t}\n\n\tif idx >= len(*d) {\n\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\treturn (*d)[idx], nil\n}\n\nfunc (d *partialArray) remove(key string) error {\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcur := *d\n\n\tif idx >= len(cur) {\n\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(cur) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(cur)\n\t}\n\n\tary := make([]*lazyNode, len(cur)-1)\n\n\tcopy(ary[0:idx], cur[0:idx])\n\tcopy(ary[idx:], cur[idx+1:])\n\n\t*d = ary\n\treturn nil\n\n}\n\nfunc (p Patch) add(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"add operation failed to decode path\")\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"add operation does not apply: doc is missing path: \\\"%s\\\"\", path)\n\t}\n\n\terr = con.add(key, op.value())\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in add for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) remove(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"remove operation failed to decode path\")\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"remove operation does not apply: doc is missing path: \\\"%s\\\"\", path)\n\t}\n\n\terr = con.remove(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in remove for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) replace(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"replace operation failed to decode path\")\n\t}\n\n\tif path == \"\" {\n\t\tval := op.value()\n\n\t\tif val.which == eRaw {\n\t\t\tif !val.tryDoc() {\n\t\t\t\tif !val.tryAry() {\n\t\t\t\t\treturn errors.Wrapf(err, \"replace operation value must be object or array\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tswitch val.which {\n\t\tcase eAry:\n\t\t\t*doc = &val.ary\n\t\tcase eDoc:\n\t\t\t*doc = &val.doc\n\t\tcase eRaw:\n\t\t\treturn errors.Wrapf(err, \"replace operation hit impossible case\")\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"replace operation does not apply: doc is missing path: %s\", path)\n\t}\n\n\t_, ok := con.get(key)\n\tif ok != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"replace operation does not apply: doc is missing key: %s\", path)\n\t}\n\n\terr = con.set(key, op.value())\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in remove for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) move(doc *container, op Operation) error {\n\tfrom, err := op.From()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"move operation failed to decode from\")\n\t}\n\n\tcon, key := findObject(doc, from)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"move operation does not apply: doc is missing from path: %s\", from)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", key)\n\t}\n\n\terr = con.remove(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", key)\n\t}\n\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"move operation failed to decode path\")\n\t}\n\n\tcon, key = findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"move operation does not apply: doc is missing destination path: %s\", path)\n\t}\n\n\terr = con.add(key, val)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) test(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"test operation failed to decode path\")\n\t}\n\n\tif path == \"\" {\n\t\tvar self lazyNode\n\n\t\tswitch sv := (*doc).(type) {\n\t\tcase *partialDoc:\n\t\t\tself.doc = *sv\n\t\t\tself.which = eDoc\n\t\tcase *partialArray:\n\t\t\tself.ary = *sv\n\t\t\tself.which = eAry\n\t\t}\n\n\t\tif self.equal(op.value()) {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"test operation does not apply: is missing path: %s\", path)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in test for path: '%s'\", path)\n\t}\n\n\tif val == nil {\n\t\tif op.value().raw == nil {\n\t\t\treturn nil\n\t\t}\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t} else if op.value() == nil {\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t}\n\n\tif val.equal(op.value()) {\n\t\treturn nil\n\t}\n\n\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n}\n\nfunc (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) error {\n\tfrom, err := op.From()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"copy operation failed to decode from\")\n\t}\n\n\tcon, key := findObject(doc, from)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation does not apply: doc is missing from path: %s\", from)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in copy for from: '%s'\", from)\n\t}\n\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation failed to decode path\")\n\t}\n\n\tcon, key = findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation does not apply: doc is missing destination path: %s\", path)\n\t}\n\n\tvalCopy, sz, err := deepCopy(val)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error while performing deep copy\")\n\t}\n\n\t(*accumulatedCopySize) += int64(sz)\n\tif AccumulatedCopySizeLimit > 0 && *accumulatedCopySize > AccumulatedCopySizeLimit {\n\t\treturn NewAccumulatedCopySizeError(AccumulatedCopySizeLimit, *accumulatedCopySize)\n\t}\n\n\terr = con.add(key, valCopy)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error while adding value during copy\")\n\t}\n\n\treturn nil\n}\n\n// Equal indicates if 2 JSON documents have the same structural equality.\nfunc Equal(a, b []byte) bool {\n\tra := make(json.RawMessage, len(a))\n\tcopy(ra, a)\n\tla := newLazyNode(&ra)\n\n\trb := make(json.RawMessage, len(b))\n\tcopy(rb, b)\n\tlb := newLazyNode(&rb)\n\n\treturn la.equal(lb)\n}\n\n// DecodePatch decodes the passed JSON document as an RFC 6902 patch.\nfunc DecodePatch(buf []byte) (Patch, error) {\n\tvar p Patch\n\n\terr := json.Unmarshal(buf, &p)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn p, nil\n}\n\n// Apply mutates a JSON document according to the patch, and returns the new\n// document.\nfunc (p Patch) Apply(doc []byte) ([]byte, error) {\n\treturn p.ApplyIndent(doc, \"\")\n}\n\n// ApplyIndent mutates a JSON document according to the patch, and returns the new\n// document indented.\nfunc (p Patch) ApplyIndent(doc []byte, indent string) ([]byte, error) {\n\tif len(doc) == 0 {\n\t\treturn doc, nil\n\t}\n\n\tvar pd container\n\tif doc[0] == '[' {\n\t\tpd = &partialArray{}\n\t} else {\n\t\tpd = &partialDoc{}\n\t}\n\n\terr := json.Unmarshal(doc, pd)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = nil\n\n\tvar accumulatedCopySize int64\n\n\tfor _, op := range p {\n\t\tswitch op.Kind() {\n\t\tcase \"add\":\n\t\t\terr = p.add(&pd, op)\n\t\tcase \"remove\":\n\t\t\terr = p.remove(&pd, op)\n\t\tcase \"replace\":\n\t\t\terr = p.replace(&pd, op)\n\t\tcase \"move\":\n\t\t\terr = p.move(&pd, op)\n\t\tcase \"test\":\n\t\t\terr = p.test(&pd, op)\n\t\tcase \"copy\":\n\t\t\terr = p.copy(&pd, op, &accumulatedCopySize)\n\t\tdefault:\n\t\t\terr = fmt.Errorf(\"Unexpected kind: %s\", op.Kind())\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif indent != \"\" {\n\t\treturn json.MarshalIndent(pd, \"\", indent)\n\t}\n\n\treturn json.Marshal(pd)\n}\n\n// From http://tools.ietf.org/html/rfc6901#section-4 :\n//\n// Evaluation of each reference token begins by decoding any escaped\n// character sequence.  This is performed by first transforming any\n// occurrence of the sequence '~1' to '/', and then transforming any\n// occurrence of the sequence '~0' to '~'.\n\nvar (\n\trfc6901Decoder = strings.NewReplacer(\"~1\", \"/\", \"~0\", \"~\")\n)\n\nfunc decodePatchKey(k string) string {\n\treturn rfc6901Decoder.Replace(k)\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/.cirrus.yml",
    "content": "freebsd_task:\n  name: 'FreeBSD'\n  freebsd_instance:\n    image_family: freebsd-13-2\n  install_script:\n    - pkg update -f\n    - pkg install -y go\n  test_script:\n      # run tests as user \"cirrus\" instead of root\n    - pw useradd cirrus -m\n    - chown -R cirrus:cirrus .\n    - FSNOTIFY_BUFFER=4096 sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./...\n    -                      sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./...\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/.editorconfig",
    "content": "root = true\n\n[*.go]\nindent_style = tab\nindent_size = 4\ninsert_final_newline = true\n\n[*.{yml,yaml}]\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/.gitattributes",
    "content": "go.sum linguist-generated\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/.gitignore",
    "content": "# go test -c output\n*.test\n*.test.exe\n\n# Output of go build ./cmd/fsnotify\n/fsnotify\n/fsnotify.exe\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/.mailmap",
    "content": "Chris Howey <howeyc@gmail.com> <chris@howey.me>\nNathan Youngman <git@nathany.com> <4566+nathany@users.noreply.github.com>\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/CHANGELOG.md",
    "content": "# Changelog\n\nUnreleased\n----------\nNothing yet.\n\n1.7.0 - 2023-10-22\n------------------\nThis version of fsnotify needs Go 1.17.\n\n### Additions\n\n- illumos: add FEN backend to support illumos and Solaris. ([#371])\n\n- all: add `NewBufferedWatcher()` to use a buffered channel, which can be useful\n  in cases where you can't control the kernel buffer and receive a large number\n  of events in bursts. ([#550], [#572])\n\n- all: add `AddWith()`, which is identical to `Add()` but allows passing\n  options. ([#521])\n\n- windows: allow setting the ReadDirectoryChangesW() buffer size with\n  `fsnotify.WithBufferSize()`; the default of 64K is the highest value that\n  works on all platforms and is enough for most purposes, but in some cases a\n  highest buffer is needed. ([#521])\n\n### Changes and fixes\n\n- inotify: remove watcher if a watched path is renamed ([#518])\n\n  After a rename the reported name wasn't updated, or even an empty string.\n  Inotify doesn't provide any good facilities to update it, so just remove the\n  watcher. This is already how it worked on kqueue and FEN.\n\n  On Windows this does work, and remains working.\n\n- windows: don't listen for file attribute changes ([#520])\n\n  File attribute changes are sent as `FILE_ACTION_MODIFIED` by the Windows API,\n  with no way to see if they're a file write or attribute change, so would show\n  up as a fsnotify.Write event. This is never useful, and could result in many\n  spurious Write events.\n\n- windows: return `ErrEventOverflow` if the buffer is full ([#525])\n\n  Before it would merely return \"short read\", making it hard to detect this\n  error.\n\n- kqueue: make sure events for all files are delivered properly when removing a\n  watched directory ([#526])\n\n  Previously they would get sent with `\"\"` (empty string) or `\".\"` as the path\n  name.\n\n- kqueue: don't emit spurious Create events for symbolic links ([#524])\n\n  The link would get resolved but kqueue would \"forget\" it already saw the link\n  itself, resulting on a Create for every Write event for the directory.\n\n- all: return `ErrClosed` on `Add()` when the watcher is closed ([#516])\n\n- other: add `Watcher.Errors` and `Watcher.Events` to the no-op `Watcher` in\n  `backend_other.go`, making it easier to use on unsupported platforms such as\n  WASM, AIX, etc. ([#528])\n\n- other: use the `backend_other.go` no-op if the `appengine` build tag is set;\n  Google AppEngine forbids usage of the unsafe package so the inotify backend\n  won't compile there.\n\n[#371]: https://github.com/fsnotify/fsnotify/pull/371\n[#516]: https://github.com/fsnotify/fsnotify/pull/516\n[#518]: https://github.com/fsnotify/fsnotify/pull/518\n[#520]: https://github.com/fsnotify/fsnotify/pull/520\n[#521]: https://github.com/fsnotify/fsnotify/pull/521\n[#524]: https://github.com/fsnotify/fsnotify/pull/524\n[#525]: https://github.com/fsnotify/fsnotify/pull/525\n[#526]: https://github.com/fsnotify/fsnotify/pull/526\n[#528]: https://github.com/fsnotify/fsnotify/pull/528\n[#537]: https://github.com/fsnotify/fsnotify/pull/537\n[#550]: https://github.com/fsnotify/fsnotify/pull/550\n[#572]: https://github.com/fsnotify/fsnotify/pull/572\n\n1.6.0 - 2022-10-13\n------------------\nThis version of fsnotify needs Go 1.16 (this was already the case since 1.5.1,\nbut not documented). It also increases the minimum Linux version to 2.6.32.\n\n### Additions\n\n- all: add `Event.Has()` and `Op.Has()` ([#477])\n\n  This makes checking events a lot easier; for example:\n\n\t    if event.Op&Write == Write && !(event.Op&Remove == Remove) {\n\t    }\n\n\tBecomes:\n\n\t    if event.Has(Write) && !event.Has(Remove) {\n\t    }\n\n- all: add cmd/fsnotify ([#463])\n\n  A command-line utility for testing and some examples.\n\n### Changes and fixes\n\n- inotify: don't ignore events for files that don't exist ([#260], [#470])\n\n  Previously the inotify watcher would call `os.Lstat()` to check if a file\n  still exists before emitting events.\n\n  This was inconsistent with other platforms and resulted in inconsistent event\n  reporting (e.g. when a file is quickly removed and re-created), and generally\n  a source of confusion. It was added in 2013 to fix a memory leak that no\n  longer exists.\n\n- all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's\n  not watched ([#460])\n\n- inotify: replace epoll() with non-blocking inotify ([#434])\n\n  Non-blocking inotify was not generally available at the time this library was\n  written in 2014, but now it is. As a result, the minimum Linux version is\n  bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster.\n\n- kqueue: don't check for events every 100ms ([#480])\n\n  The watcher would wake up every 100ms, even when there was nothing to do. Now\n  it waits until there is something to do.\n\n- macos: retry opening files on EINTR ([#475])\n\n- kqueue: skip unreadable files ([#479])\n\n  kqueue requires a file descriptor for every file in a directory; this would\n  fail if a file was unreadable by the current user. Now these files are simply\n  skipped.\n\n- windows: fix renaming a watched directory if the parent is also watched ([#370])\n\n- windows: increase buffer size from 4K to 64K ([#485])\n\n- windows: close file handle on Remove() ([#288])\n\n- kqueue: put pathname in the error if watching a file fails ([#471])\n\n- inotify, windows: calling Close() more than once could race ([#465])\n\n- kqueue: improve Close() performance ([#233])\n\n- all: various documentation additions and clarifications.\n\n[#233]: https://github.com/fsnotify/fsnotify/pull/233\n[#260]: https://github.com/fsnotify/fsnotify/pull/260\n[#288]: https://github.com/fsnotify/fsnotify/pull/288\n[#370]: https://github.com/fsnotify/fsnotify/pull/370\n[#434]: https://github.com/fsnotify/fsnotify/pull/434\n[#460]: https://github.com/fsnotify/fsnotify/pull/460\n[#463]: https://github.com/fsnotify/fsnotify/pull/463\n[#465]: https://github.com/fsnotify/fsnotify/pull/465\n[#470]: https://github.com/fsnotify/fsnotify/pull/470\n[#471]: https://github.com/fsnotify/fsnotify/pull/471\n[#475]: https://github.com/fsnotify/fsnotify/pull/475\n[#477]: https://github.com/fsnotify/fsnotify/pull/477\n[#479]: https://github.com/fsnotify/fsnotify/pull/479\n[#480]: https://github.com/fsnotify/fsnotify/pull/480\n[#485]: https://github.com/fsnotify/fsnotify/pull/485\n\n## [1.5.4] - 2022-04-25\n\n* Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447)\n* go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444)\n* Fix compilation for OpenBSD [#443](https://github.com/fsnotify/fsnotify/pull/443)\n\n## [1.5.3] - 2022-04-22\n\n* This version is retracted. An incorrect branch is published accidentally [#445](https://github.com/fsnotify/fsnotify/issues/445)\n\n## [1.5.2] - 2022-04-21\n\n* Add a feature to return the directories and files that are being monitored [#374](https://github.com/fsnotify/fsnotify/pull/374)\n* Fix potential crash on windows if `raw.FileNameLength` exceeds `syscall.MAX_PATH` [#361](https://github.com/fsnotify/fsnotify/pull/361)\n* Allow build on unsupported GOOS [#424](https://github.com/fsnotify/fsnotify/pull/424)\n* Don't set `poller.fd` twice in `newFdPoller` [#406](https://github.com/fsnotify/fsnotify/pull/406)\n* fix go vet warnings: call to `(*T).Fatalf` from a non-test goroutine [#416](https://github.com/fsnotify/fsnotify/pull/416)\n\n## [1.5.1] - 2021-08-24\n\n* Revert Add AddRaw to not follow symlinks [#394](https://github.com/fsnotify/fsnotify/pull/394)\n\n## [1.5.0] - 2021-08-20\n\n* Go: Increase minimum required version to Go 1.12 [#381](https://github.com/fsnotify/fsnotify/pull/381)\n* Feature: Add AddRaw method which does not follow symlinks when adding a watch [#289](https://github.com/fsnotify/fsnotify/pull/298)\n* Windows: Follow symlinks by default like on all other systems [#289](https://github.com/fsnotify/fsnotify/pull/289)\n* CI: Use GitHub Actions for CI and cover go 1.12-1.17\n   [#378](https://github.com/fsnotify/fsnotify/pull/378)\n   [#381](https://github.com/fsnotify/fsnotify/pull/381)\n   [#385](https://github.com/fsnotify/fsnotify/pull/385)\n* Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325)\n\n## [1.4.9] - 2020-03-11\n\n* Move example usage to the readme #329. This may resolve #328.\n\n## [1.4.8] - 2020-03-10\n\n* CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216)\n* Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265)\n* Tests:  t.Fatalf -> t.Errorf in go routines (@gdey #266)\n* CI: Less verbosity (@nathany #267)\n* Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267)\n* Tests: Check if channels are closed in the example (@alexeykazakov #244)\n* CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284)\n* CI: Add windows to travis matrix (@cpuguy83 #284)\n* Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93)\n* Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219)\n* Linux: open files with close-on-exec (@linxiulei #273)\n* Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 )\n* Project: Add go.mod (@nathany #309)\n* Project: Revise editor config (@nathany #309)\n* Project: Update copyright for 2019 (@nathany #309)\n* CI: Drop go1.8 from CI matrix (@nathany #309)\n* Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e )\n\n## [1.4.7] - 2018-01-09\n\n* BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine)\n* Tests: Fix missing verb on format string (thanks @rchiossi)\n* Linux: Fix deadlock in Remove (thanks @aarondl)\n* Linux: Watch.Add improvements (avoid race, fix consistency, reduce garbage) (thanks @twpayne)\n* Docs: Moved FAQ into the README (thanks @vahe)\n* Linux: Properly handle inotify's IN_Q_OVERFLOW event (thanks @zeldovich)\n* Docs: replace references to OS X with macOS\n\n## [1.4.2] - 2016-10-10\n\n* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack)\n\n## [1.4.1] - 2016-10-04\n\n* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack)\n\n## [1.4.0] - 2016-10-01\n\n* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie)\n\n## [1.3.1] - 2016-06-28\n\n* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc)\n\n## [1.3.0] - 2016-04-19\n\n* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135)\n\n## [1.2.10] - 2016-03-02\n\n* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj)\n\n## [1.2.9] - 2016-01-13\n\nkqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep)\n\n## [1.2.8] - 2015-12-17\n\n* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test)\n* inotify: fix race in test\n* enable race detection for continuous integration (Linux, Mac, Windows)\n\n## [1.2.5] - 2015-10-17\n\n* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki)\n* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken)\n* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie)\n* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion)\n\n## [1.2.1] - 2015-10-14\n\n* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx)\n\n## [1.2.0] - 2015-02-08\n\n* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD)\n* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD)\n* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59)\n\n## [1.1.1] - 2015-02-05\n\n* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD)\n\n## [1.1.0] - 2014-12-12\n\n* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43)\n    * add low-level functions\n    * only need to store flags on directories\n    * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13)\n    * done can be an unbuffered channel\n    * remove calls to os.NewSyscallError\n* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher)\n* kqueue: fix regression in  rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48)\n* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51)\n\n## [1.0.4] - 2014-09-07\n\n* kqueue: add dragonfly to the build tags.\n* Rename source code files, rearrange code so exported APIs are at the top.\n* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang)\n\n## [1.0.3] - 2014-08-19\n\n* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36)\n\n## [1.0.2] - 2014-08-17\n\n* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso)\n* [Fix] Make ./path and path equivalent. (thanks @zhsso)\n\n## [1.0.0] - 2014-08-15\n\n* [API] Remove AddWatch on Windows, use Add.\n* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30)\n* Minor updates based on feedback from golint.\n\n## dev / 2014-07-09\n\n* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify).\n* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno)\n\n## dev / 2014-07-04\n\n* kqueue: fix incorrect mutex used in Close()\n* Update example to demonstrate usage of Op.\n\n## dev / 2014-06-28\n\n* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4)\n* Fix for String() method on Event (thanks Alex Brainman)\n* Don't build on Plan 9 or Solaris (thanks @4ad)\n\n## dev / 2014-06-21\n\n* Events channel of type Event rather than *Event.\n* [internal] use syscall constants directly for inotify and kqueue.\n* [internal] kqueue: rename events to kevents and fileEvent to event.\n\n## dev / 2014-06-19\n\n* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally).\n* [internal] remove cookie from Event struct (unused).\n* [internal] Event struct has the same definition across every OS.\n* [internal] remove internal watch and removeWatch methods.\n\n## dev / 2014-06-12\n\n* [API] Renamed Watch() to Add() and RemoveWatch() to Remove().\n* [API] Pluralized channel names: Events and Errors.\n* [API] Renamed FileEvent struct to Event.\n* [API] Op constants replace methods like IsCreate().\n\n## dev / 2014-06-12\n\n* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98)\n\n## dev / 2014-05-23\n\n* [API] Remove current implementation of WatchFlags.\n    * current implementation doesn't take advantage of OS for efficiency\n    * provides little benefit over filtering events as they are received, but has  extra bookkeeping and mutexes\n    * no tests for the current implementation\n    * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195)\n\n## [0.9.3] - 2014-12-31\n\n* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51)\n\n## [0.9.2] - 2014-08-17\n\n* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso)\n\n## [0.9.1] - 2014-06-12\n\n* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98)\n\n## [0.9.0] - 2014-01-17\n\n* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany)\n* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare)\n* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library.\n\n## [0.8.12] - 2013-11-13\n\n* [API] Remove FD_SET and friends from Linux adapter\n\n## [0.8.11] - 2013-11-02\n\n* [Doc] Add Changelog [#72][] (thanks @nathany)\n* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond)\n\n## [0.8.10] - 2013-10-19\n\n* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott)\n* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer)\n* [Doc] specify OS-specific limits in README (thanks @debrando)\n\n## [0.8.9] - 2013-09-08\n\n* [Doc] Contributing (thanks @nathany)\n* [Doc] update package path in example code [#63][] (thanks @paulhammond)\n* [Doc] GoCI badge in README (Linux only) [#60][]\n* [Doc] Cross-platform testing with Vagrant  [#59][] (thanks @nathany)\n\n## [0.8.8] - 2013-06-17\n\n* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie)\n\n## [0.8.7] - 2013-06-03\n\n* [API] Make syscall flags internal\n* [Fix] inotify: ignore event changes\n* [Fix] race in symlink test [#45][] (reported by @srid)\n* [Fix] tests on Windows\n* lower case error messages\n\n## [0.8.6] - 2013-05-23\n\n* kqueue: Use EVT_ONLY flag on Darwin\n* [Doc] Update README with full example\n\n## [0.8.5] - 2013-05-09\n\n* [Fix] inotify: allow monitoring of \"broken\" symlinks (thanks @tsg)\n\n## [0.8.4] - 2013-04-07\n\n* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz)\n\n## [0.8.3] - 2013-03-13\n\n* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin)\n* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin)\n\n## [0.8.2] - 2013-02-07\n\n* [Doc] add Authors\n* [Fix] fix data races for map access [#29][] (thanks @fsouza)\n\n## [0.8.1] - 2013-01-09\n\n* [Fix] Windows path separators\n* [Doc] BSD License\n\n## [0.8.0] - 2012-11-09\n\n* kqueue: directory watching improvements (thanks @vmirage)\n* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto)\n* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr)\n\n## [0.7.4] - 2012-10-09\n\n* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji)\n* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig)\n* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig)\n* [Fix] kqueue: modify after recreation of file\n\n## [0.7.3] - 2012-09-27\n\n* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage)\n* [Fix] kqueue: no longer get duplicate CREATE events\n\n## [0.7.2] - 2012-09-01\n\n* kqueue: events for created directories\n\n## [0.7.1] - 2012-07-14\n\n* [Fix] for renaming files\n\n## [0.7.0] - 2012-07-02\n\n* [Feature] FSNotify flags\n* [Fix] inotify: Added file name back to event path\n\n## [0.6.0] - 2012-06-06\n\n* kqueue: watch files after directory created (thanks @tmc)\n\n## [0.5.1] - 2012-05-22\n\n* [Fix] inotify: remove all watches before Close()\n\n## [0.5.0] - 2012-05-03\n\n* [API] kqueue: return errors during watch instead of sending over channel\n* kqueue: match symlink behavior on Linux\n* inotify: add `DELETE_SELF` (requested by @taralx)\n* [Fix] kqueue: handle EINTR (reported by @robfig)\n* [Doc] Godoc example [#1][] (thanks @davecheney)\n\n## [0.4.0] - 2012-03-30\n\n* Go 1 released: build with go tool\n* [Feature] Windows support using winfsnotify\n* Windows does not have attribute change notifications\n* Roll attribute notifications into IsModify\n\n## [0.3.0] - 2012-02-19\n\n* kqueue: add files when watch directory\n\n## [0.2.0] - 2011-12-30\n\n* update to latest Go weekly code\n\n## [0.1.0] - 2011-10-19\n\n* kqueue: add watch on file creation to match inotify\n* kqueue: create file event\n* inotify: ignore `IN_IGNORED` events\n* event String()\n* linux: common FileEvent functions\n* initial commit\n\n[#79]: https://github.com/howeyc/fsnotify/pull/79\n[#77]: https://github.com/howeyc/fsnotify/pull/77\n[#72]: https://github.com/howeyc/fsnotify/issues/72\n[#71]: https://github.com/howeyc/fsnotify/issues/71\n[#70]: https://github.com/howeyc/fsnotify/issues/70\n[#63]: https://github.com/howeyc/fsnotify/issues/63\n[#62]: https://github.com/howeyc/fsnotify/issues/62\n[#60]: https://github.com/howeyc/fsnotify/issues/60\n[#59]: https://github.com/howeyc/fsnotify/issues/59\n[#49]: https://github.com/howeyc/fsnotify/issues/49\n[#45]: https://github.com/howeyc/fsnotify/issues/45\n[#40]: https://github.com/howeyc/fsnotify/issues/40\n[#36]: https://github.com/howeyc/fsnotify/issues/36\n[#33]: https://github.com/howeyc/fsnotify/issues/33\n[#29]: https://github.com/howeyc/fsnotify/issues/29\n[#25]: https://github.com/howeyc/fsnotify/issues/25\n[#24]: https://github.com/howeyc/fsnotify/issues/24\n[#21]: https://github.com/howeyc/fsnotify/issues/21\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md",
    "content": "Thank you for your interest in contributing to fsnotify! We try to review and\nmerge PRs in a reasonable timeframe, but please be aware that:\n\n- To avoid \"wasted\" work, please discus changes on the issue tracker first. You\n  can just send PRs, but they may end up being rejected for one reason or the\n  other.\n\n- fsnotify is a cross-platform library, and changes must work reasonably well on\n  all supported platforms.\n\n- Changes will need to be compatible; old code should still compile, and the\n  runtime behaviour can't change in ways that are likely to lead to problems for\n  users.\n\nTesting\n-------\nJust `go test ./...` runs all the tests; the CI runs this on all supported\nplatforms. Testing different platforms locally can be done with something like\n[goon] or [Vagrant], but this isn't super-easy to set up at the moment.\n\nUse the `-short` flag to make the \"stress test\" run faster.\n\n\n[goon]: https://github.com/arp242/goon\n[Vagrant]: https://www.vagrantup.com/\n[integration_test.go]: /integration_test.go\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/LICENSE",
    "content": "Copyright © 2012 The Go Authors. All rights reserved.\nCopyright © fsnotify Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this\n  list of conditions and the following disclaimer in the documentation and/or\n  other materials provided with the distribution.\n* Neither the name of Google Inc. nor the names of its contributors may be used\n  to endorse or promote products derived from this software without specific\n  prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/README.md",
    "content": "fsnotify is a Go library to provide cross-platform filesystem notifications on\nWindows, Linux, macOS, BSD, and illumos.\n\nGo 1.17 or newer is required; the full documentation is at\nhttps://pkg.go.dev/github.com/fsnotify/fsnotify\n\n---\n\nPlatform support:\n\n| Backend               | OS         | Status                                                                    |\n| :-------------------- | :--------- | :------------------------------------------------------------------------ |\n| inotify               | Linux      | Supported                                                                 |\n| kqueue                | BSD, macOS | Supported                                                                 |\n| ReadDirectoryChangesW | Windows    | Supported                                                                 |\n| FEN                   | illumos    | Supported                                                                 |\n| fanotify              | Linux 5.9+ | [Not yet](https://github.com/fsnotify/fsnotify/issues/114)                |\n| AHAFS                 | AIX        | [aix branch]; experimental due to lack of maintainer and test environment |\n| FSEvents              | macOS      | [Needs support in x/sys/unix][fsevents]                                   |\n| USN Journals          | Windows    | [Needs support in x/sys/windows][usn]                                     |\n| Polling               | *All*      | [Not yet](https://github.com/fsnotify/fsnotify/issues/9)                  |\n\nLinux and illumos should include Android and Solaris, but these are currently\nuntested.\n\n[fsevents]:   https://github.com/fsnotify/fsnotify/issues/11#issuecomment-1279133120\n[usn]:        https://github.com/fsnotify/fsnotify/issues/53#issuecomment-1279829847\n[aix branch]: https://github.com/fsnotify/fsnotify/issues/353#issuecomment-1284590129\n\nUsage\n-----\nA basic example:\n\n```go\npackage main\n\nimport (\n    \"log\"\n\n    \"github.com/fsnotify/fsnotify\"\n)\n\nfunc main() {\n    // Create new watcher.\n    watcher, err := fsnotify.NewWatcher()\n    if err != nil {\n        log.Fatal(err)\n    }\n    defer watcher.Close()\n\n    // Start listening for events.\n    go func() {\n        for {\n            select {\n            case event, ok := <-watcher.Events:\n                if !ok {\n                    return\n                }\n                log.Println(\"event:\", event)\n                if event.Has(fsnotify.Write) {\n                    log.Println(\"modified file:\", event.Name)\n                }\n            case err, ok := <-watcher.Errors:\n                if !ok {\n                    return\n                }\n                log.Println(\"error:\", err)\n            }\n        }\n    }()\n\n    // Add a path.\n    err = watcher.Add(\"/tmp\")\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    // Block main goroutine forever.\n    <-make(chan struct{})\n}\n```\n\nSome more examples can be found in [cmd/fsnotify](cmd/fsnotify), which can be\nrun with:\n\n    % go run ./cmd/fsnotify\n\nFurther detailed documentation can be found in godoc:\nhttps://pkg.go.dev/github.com/fsnotify/fsnotify\n\nFAQ\n---\n### Will a file still be watched when it's moved to another directory?\nNo, not unless you are watching the location it was moved to.\n\n### Are subdirectories watched?\nNo, you must add watches for any directory you want to watch (a recursive\nwatcher is on the roadmap: [#18]).\n\n[#18]: https://github.com/fsnotify/fsnotify/issues/18\n\n### Do I have to watch the Error and Event channels in a goroutine?\nYes. You can read both channels in the same goroutine using `select` (you don't\nneed a separate goroutine for both channels; see the example).\n\n### Why don't notifications work with NFS, SMB, FUSE, /proc, or /sys?\nfsnotify requires support from underlying OS to work. The current NFS and SMB\nprotocols does not provide network level support for file notifications, and\nneither do the /proc and /sys virtual filesystems.\n\nThis could be fixed with a polling watcher ([#9]), but it's not yet implemented.\n\n[#9]: https://github.com/fsnotify/fsnotify/issues/9\n\n### Why do I get many Chmod events?\nSome programs may generate a lot of attribute changes; for example Spotlight on\nmacOS, anti-virus programs, backup applications, and some others are known to do\nthis. As a rule, it's typically best to ignore Chmod events. They're often not\nuseful, and tend to cause problems.\n\nSpotlight indexing on macOS can result in multiple events (see [#15]). A\ntemporary workaround is to add your folder(s) to the *Spotlight Privacy\nsettings* until we have a native FSEvents implementation (see [#11]).\n\n[#11]: https://github.com/fsnotify/fsnotify/issues/11\n[#15]: https://github.com/fsnotify/fsnotify/issues/15\n\n### Watching a file doesn't work well\nWatching individual files (rather than directories) is generally not recommended\nas many programs (especially editors) update files atomically: it will write to\na temporary file which is then moved to to destination, overwriting the original\n(or some variant thereof). The watcher on the original file is now lost, as that\nno longer exists.\n\nThe upshot of this is that a power failure or crash won't leave a half-written\nfile.\n\nWatch the parent directory and use `Event.Name` to filter out files you're not\ninterested in. There is an example of this in `cmd/fsnotify/file.go`.\n\nPlatform-specific notes\n-----------------------\n### Linux\nWhen a file is removed a REMOVE event won't be emitted until all file\ndescriptors are closed; it will emit a CHMOD instead:\n\n    fp := os.Open(\"file\")\n    os.Remove(\"file\")        // CHMOD\n    fp.Close()               // REMOVE\n\nThis is the event that inotify sends, so not much can be changed about this.\n\nThe `fs.inotify.max_user_watches` sysctl variable specifies the upper limit for\nthe number of watches per user, and `fs.inotify.max_user_instances` specifies\nthe maximum number of inotify instances per user. Every Watcher you create is an\n\"instance\", and every path you add is a \"watch\".\n\nThese are also exposed in `/proc` as `/proc/sys/fs/inotify/max_user_watches` and\n`/proc/sys/fs/inotify/max_user_instances`\n\nTo increase them you can use `sysctl` or write the value to proc file:\n\n    # The default values on Linux 5.18\n    sysctl fs.inotify.max_user_watches=124983\n    sysctl fs.inotify.max_user_instances=128\n\nTo make the changes persist on reboot edit `/etc/sysctl.conf` or\n`/usr/lib/sysctl.d/50-default.conf` (details differ per Linux distro; check your\ndistro's documentation):\n\n    fs.inotify.max_user_watches=124983\n    fs.inotify.max_user_instances=128\n\nReaching the limit will result in a \"no space left on device\" or \"too many open\nfiles\" error.\n\n### kqueue (macOS, all BSD systems)\nkqueue requires opening a file descriptor for every file that's being watched;\nso if you're watching a directory with five files then that's six file\ndescriptors. You will run in to your system's \"max open files\" limit faster on\nthese platforms.\n\nThe sysctl variables `kern.maxfiles` and `kern.maxfilesperproc` can be used to\ncontrol the maximum number of open files.\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/backend_fen.go",
    "content": "//go:build solaris\n// +build solaris\n\n// Note: the documentation on the Watcher type and methods is generated from\n// mkdoc.zsh\n\npackage fsnotify\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\path\\to\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\ntype Watcher struct {\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\n\tEvents chan Event\n\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\n\tErrors chan error\n\n\tmu      sync.Mutex\n\tport    *unix.EventPort\n\tdone    chan struct{}       // Channel for sending a \"quit message\" to the reader goroutine\n\tdirs    map[string]struct{} // Explicitly watched directories\n\twatches map[string]struct{} // Explicitly watched non-directories\n}\n\n// NewWatcher creates a new Watcher.\nfunc NewWatcher() (*Watcher, error) {\n\treturn NewBufferedWatcher(0)\n}\n\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nfunc NewBufferedWatcher(sz uint) (*Watcher, error) {\n\tw := &Watcher{\n\t\tEvents:  make(chan Event, sz),\n\t\tErrors:  make(chan error),\n\t\tdirs:    make(map[string]struct{}),\n\t\twatches: make(map[string]struct{}),\n\t\tdone:    make(chan struct{}),\n\t}\n\n\tvar err error\n\tw.port, err = unix.NewEventPort()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"fsnotify.NewWatcher: %w\", err)\n\t}\n\n\tgo w.readEvents()\n\treturn w, nil\n}\n\n// sendEvent attempts to send an event to the user, returning true if the event\n// was put in the channel successfully and false if the watcher has been closed.\nfunc (w *Watcher) sendEvent(name string, op Op) (sent bool) {\n\tselect {\n\tcase w.Events <- Event{Name: name, Op: op}:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\n// sendError attempts to send an error to the user, returning true if the error\n// was put in the channel successfully and false if the watcher has been closed.\nfunc (w *Watcher) sendError(err error) (sent bool) {\n\tselect {\n\tcase w.Errors <- err:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\nfunc (w *Watcher) isClosed() bool {\n\tselect {\n\tcase <-w.done:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Close removes all watches and closes the Events channel.\nfunc (w *Watcher) Close() error {\n\t// Take the lock used by associateFile to prevent lingering events from\n\t// being processed after the close\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\tclose(w.done)\n\treturn w.port.Close()\n}\n\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nfunc (w *Watcher) Add(name string) error { return w.AddWith(name) }\n\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nfunc (w *Watcher) AddWith(name string, opts ...addOpt) error {\n\tif w.isClosed() {\n\t\treturn ErrClosed\n\t}\n\tif w.port.PathIsWatched(name) {\n\t\treturn nil\n\t}\n\n\t_ = getOptions(opts...)\n\n\t// Currently we resolve symlinks that were explicitly requested to be\n\t// watched. Otherwise we would use LStat here.\n\tstat, err := os.Stat(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Associate all files in the directory.\n\tif stat.IsDir() {\n\t\terr := w.handleDirectory(name, stat, true, w.associateFile)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tw.mu.Lock()\n\t\tw.dirs[name] = struct{}{}\n\t\tw.mu.Unlock()\n\t\treturn nil\n\t}\n\n\terr = w.associateFile(name, stat, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tw.mu.Lock()\n\tw.watches[name] = struct{}{}\n\tw.mu.Unlock()\n\treturn nil\n}\n\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) Remove(name string) error {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\tif !w.port.PathIsWatched(name) {\n\t\treturn fmt.Errorf(\"%w: %s\", ErrNonExistentWatch, name)\n\t}\n\n\t// The user has expressed an intent. Immediately remove this name from\n\t// whichever watch list it might be in. If it's not in there the delete\n\t// doesn't cause harm.\n\tw.mu.Lock()\n\tdelete(w.watches, name)\n\tdelete(w.dirs, name)\n\tw.mu.Unlock()\n\n\tstat, err := os.Stat(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Remove associations for every file in the directory.\n\tif stat.IsDir() {\n\t\terr := w.handleDirectory(name, stat, false, w.dissociateFile)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\n\terr = w.port.DissociatePath(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// readEvents contains the main loop that runs in a goroutine watching for events.\nfunc (w *Watcher) readEvents() {\n\t// If this function returns, the watcher has been closed and we can close\n\t// these channels\n\tdefer func() {\n\t\tclose(w.Errors)\n\t\tclose(w.Events)\n\t}()\n\n\tpevents := make([]unix.PortEvent, 8)\n\tfor {\n\t\tcount, err := w.port.Get(pevents, 1, nil)\n\t\tif err != nil && err != unix.ETIME {\n\t\t\t// Interrupted system call (count should be 0) ignore and continue\n\t\t\tif errors.Is(err, unix.EINTR) && count == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Get failed because we called w.Close()\n\t\t\tif errors.Is(err, unix.EBADF) && w.isClosed() {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// There was an error not caused by calling w.Close()\n\t\t\tif !w.sendError(err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tp := pevents[:count]\n\t\tfor _, pevent := range p {\n\t\t\tif pevent.Source != unix.PORT_SOURCE_FILE {\n\t\t\t\t// Event from unexpected source received; should never happen.\n\t\t\t\tif !w.sendError(errors.New(\"Event from unexpected source received\")) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\terr = w.handleEvent(&pevent)\n\t\t\tif err != nil {\n\t\t\t\tif !w.sendError(err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (w *Watcher) handleDirectory(path string, stat os.FileInfo, follow bool, handler func(string, os.FileInfo, bool) error) error {\n\tfiles, err := os.ReadDir(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Handle all children of the directory.\n\tfor _, entry := range files {\n\t\tfinfo, err := entry.Info()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = handler(filepath.Join(path, finfo.Name()), finfo, false)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// And finally handle the directory itself.\n\treturn handler(path, stat, follow)\n}\n\n// handleEvent might need to emit more than one fsnotify event if the events\n// bitmap matches more than one event type (e.g. the file was both modified and\n// had the attributes changed between when the association was created and the\n// when event was returned)\nfunc (w *Watcher) handleEvent(event *unix.PortEvent) error {\n\tvar (\n\t\tevents     = event.Events\n\t\tpath       = event.Path\n\t\tfmode      = event.Cookie.(os.FileMode)\n\t\treRegister = true\n\t)\n\n\tw.mu.Lock()\n\t_, watchedDir := w.dirs[path]\n\t_, watchedPath := w.watches[path]\n\tw.mu.Unlock()\n\tisWatched := watchedDir || watchedPath\n\n\tif events&unix.FILE_DELETE != 0 {\n\t\tif !w.sendEvent(path, Remove) {\n\t\t\treturn nil\n\t\t}\n\t\treRegister = false\n\t}\n\tif events&unix.FILE_RENAME_FROM != 0 {\n\t\tif !w.sendEvent(path, Rename) {\n\t\t\treturn nil\n\t\t}\n\t\t// Don't keep watching the new file name\n\t\treRegister = false\n\t}\n\tif events&unix.FILE_RENAME_TO != 0 {\n\t\t// We don't report a Rename event for this case, because Rename events\n\t\t// are interpreted as referring to the _old_ name of the file, and in\n\t\t// this case the event would refer to the new name of the file. This\n\t\t// type of rename event is not supported by fsnotify.\n\n\t\t// inotify reports a Remove event in this case, so we simulate this\n\t\t// here.\n\t\tif !w.sendEvent(path, Remove) {\n\t\t\treturn nil\n\t\t}\n\t\t// Don't keep watching the file that was removed\n\t\treRegister = false\n\t}\n\n\t// The file is gone, nothing left to do.\n\tif !reRegister {\n\t\tif watchedDir {\n\t\t\tw.mu.Lock()\n\t\t\tdelete(w.dirs, path)\n\t\t\tw.mu.Unlock()\n\t\t}\n\t\tif watchedPath {\n\t\t\tw.mu.Lock()\n\t\t\tdelete(w.watches, path)\n\t\t\tw.mu.Unlock()\n\t\t}\n\t\treturn nil\n\t}\n\n\t// If we didn't get a deletion the file still exists and we're going to have\n\t// to watch it again. Let's Stat it now so that we can compare permissions\n\t// and have what we need to continue watching the file\n\n\tstat, err := os.Lstat(path)\n\tif err != nil {\n\t\t// This is unexpected, but we should still emit an event. This happens\n\t\t// most often on \"rm -r\" of a subdirectory inside a watched directory We\n\t\t// get a modify event of something happening inside, but by the time we\n\t\t// get here, the sudirectory is already gone. Clearly we were watching\n\t\t// this path but now it is gone. Let's tell the user that it was\n\t\t// removed.\n\t\tif !w.sendEvent(path, Remove) {\n\t\t\treturn nil\n\t\t}\n\t\t// Suppress extra write events on removed directories; they are not\n\t\t// informative and can be confusing.\n\t\treturn nil\n\t}\n\n\t// resolve symlinks that were explicitly watched as we would have at Add()\n\t// time. this helps suppress spurious Chmod events on watched symlinks\n\tif isWatched {\n\t\tstat, err = os.Stat(path)\n\t\tif err != nil {\n\t\t\t// The symlink still exists, but the target is gone. Report the\n\t\t\t// Remove similar to above.\n\t\t\tif !w.sendEvent(path, Remove) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\t// Don't return the error\n\t\t}\n\t}\n\n\tif events&unix.FILE_MODIFIED != 0 {\n\t\tif fmode.IsDir() {\n\t\t\tif watchedDir {\n\t\t\t\tif err := w.updateDirectory(path); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif !w.sendEvent(path, Write) {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif !w.sendEvent(path, Write) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tif events&unix.FILE_ATTRIB != 0 && stat != nil {\n\t\t// Only send Chmod if perms changed\n\t\tif stat.Mode().Perm() != fmode.Perm() {\n\t\t\tif !w.sendEvent(path, Chmod) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\n\tif stat != nil {\n\t\t// If we get here, it means we've hit an event above that requires us to\n\t\t// continue watching the file or directory\n\t\treturn w.associateFile(path, stat, isWatched)\n\t}\n\treturn nil\n}\n\nfunc (w *Watcher) updateDirectory(path string) error {\n\t// The directory was modified, so we must find unwatched entities and watch\n\t// them. If something was removed from the directory, nothing will happen,\n\t// as everything else should still be watched.\n\tfiles, err := os.ReadDir(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, entry := range files {\n\t\tpath := filepath.Join(path, entry.Name())\n\t\tif w.port.PathIsWatched(path) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfinfo, err := entry.Info()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = w.associateFile(path, finfo, false)\n\t\tif err != nil {\n\t\t\tif !w.sendError(err) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tif !w.sendEvent(path, Create) {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (w *Watcher) associateFile(path string, stat os.FileInfo, follow bool) error {\n\tif w.isClosed() {\n\t\treturn ErrClosed\n\t}\n\t// This is primarily protecting the call to AssociatePath but it is\n\t// important and intentional that the call to PathIsWatched is also\n\t// protected by this mutex. Without this mutex, AssociatePath has been seen\n\t// to error out that the path is already associated.\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\n\tif w.port.PathIsWatched(path) {\n\t\t// Remove the old association in favor of this one If we get ENOENT,\n\t\t// then while the x/sys/unix wrapper still thought that this path was\n\t\t// associated, the underlying event port did not. This call will have\n\t\t// cleared up that discrepancy. The most likely cause is that the event\n\t\t// has fired but we haven't processed it yet.\n\t\terr := w.port.DissociatePath(path)\n\t\tif err != nil && err != unix.ENOENT {\n\t\t\treturn err\n\t\t}\n\t}\n\t// FILE_NOFOLLOW means we watch symlinks themselves rather than their\n\t// targets.\n\tevents := unix.FILE_MODIFIED | unix.FILE_ATTRIB | unix.FILE_NOFOLLOW\n\tif follow {\n\t\t// We *DO* follow symlinks for explicitly watched entries.\n\t\tevents = unix.FILE_MODIFIED | unix.FILE_ATTRIB\n\t}\n\treturn w.port.AssociatePath(path, stat,\n\t\tevents,\n\t\tstat.Mode())\n}\n\nfunc (w *Watcher) dissociateFile(path string, stat os.FileInfo, unused bool) error {\n\tif !w.port.PathIsWatched(path) {\n\t\treturn nil\n\t}\n\treturn w.port.DissociatePath(path)\n}\n\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) WatchList() []string {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\n\tentries := make([]string, 0, len(w.watches)+len(w.dirs))\n\tfor pathname := range w.dirs {\n\t\tentries = append(entries, pathname)\n\t}\n\tfor pathname := range w.watches {\n\t\tentries = append(entries, pathname)\n\t}\n\n\treturn entries\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/backend_inotify.go",
    "content": "//go:build linux && !appengine\n// +build linux,!appengine\n\n// Note: the documentation on the Watcher type and methods is generated from\n// mkdoc.zsh\n\npackage fsnotify\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\path\\to\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\ntype Watcher struct {\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\n\tEvents chan Event\n\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\n\tErrors chan error\n\n\t// Store fd here as os.File.Read() will no longer return on close after\n\t// calling Fd(). See: https://github.com/golang/go/issues/26439\n\tfd          int\n\tinotifyFile *os.File\n\twatches     *watches\n\tdone        chan struct{} // Channel for sending a \"quit message\" to the reader goroutine\n\tcloseMu     sync.Mutex\n\tdoneResp    chan struct{} // Channel to respond to Close\n}\n\ntype (\n\twatches struct {\n\t\tmu   sync.RWMutex\n\t\twd   map[uint32]*watch // wd → watch\n\t\tpath map[string]uint32 // pathname → wd\n\t}\n\twatch struct {\n\t\twd    uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall)\n\t\tflags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags)\n\t\tpath  string // Watch path.\n\t}\n)\n\nfunc newWatches() *watches {\n\treturn &watches{\n\t\twd:   make(map[uint32]*watch),\n\t\tpath: make(map[string]uint32),\n\t}\n}\n\nfunc (w *watches) len() int {\n\tw.mu.RLock()\n\tdefer w.mu.RUnlock()\n\treturn len(w.wd)\n}\n\nfunc (w *watches) add(ww *watch) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tw.wd[ww.wd] = ww\n\tw.path[ww.path] = ww.wd\n}\n\nfunc (w *watches) remove(wd uint32) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tdelete(w.path, w.wd[wd].path)\n\tdelete(w.wd, wd)\n}\n\nfunc (w *watches) removePath(path string) (uint32, bool) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\n\twd, ok := w.path[path]\n\tif !ok {\n\t\treturn 0, false\n\t}\n\n\tdelete(w.path, path)\n\tdelete(w.wd, wd)\n\n\treturn wd, true\n}\n\nfunc (w *watches) byPath(path string) *watch {\n\tw.mu.RLock()\n\tdefer w.mu.RUnlock()\n\treturn w.wd[w.path[path]]\n}\n\nfunc (w *watches) byWd(wd uint32) *watch {\n\tw.mu.RLock()\n\tdefer w.mu.RUnlock()\n\treturn w.wd[wd]\n}\n\nfunc (w *watches) updatePath(path string, f func(*watch) (*watch, error)) error {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\n\tvar existing *watch\n\twd, ok := w.path[path]\n\tif ok {\n\t\texisting = w.wd[wd]\n\t}\n\n\tupd, err := f(existing)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif upd != nil {\n\t\tw.wd[upd.wd] = upd\n\t\tw.path[upd.path] = upd.wd\n\n\t\tif upd.wd != wd {\n\t\t\tdelete(w.wd, wd)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// NewWatcher creates a new Watcher.\nfunc NewWatcher() (*Watcher, error) {\n\treturn NewBufferedWatcher(0)\n}\n\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nfunc NewBufferedWatcher(sz uint) (*Watcher, error) {\n\t// Need to set nonblocking mode for SetDeadline to work, otherwise blocking\n\t// I/O operations won't terminate on close.\n\tfd, errno := unix.InotifyInit1(unix.IN_CLOEXEC | unix.IN_NONBLOCK)\n\tif fd == -1 {\n\t\treturn nil, errno\n\t}\n\n\tw := &Watcher{\n\t\tfd:          fd,\n\t\tinotifyFile: os.NewFile(uintptr(fd), \"\"),\n\t\twatches:     newWatches(),\n\t\tEvents:      make(chan Event, sz),\n\t\tErrors:      make(chan error),\n\t\tdone:        make(chan struct{}),\n\t\tdoneResp:    make(chan struct{}),\n\t}\n\n\tgo w.readEvents()\n\treturn w, nil\n}\n\n// Returns true if the event was sent, or false if watcher is closed.\nfunc (w *Watcher) sendEvent(e Event) bool {\n\tselect {\n\tcase w.Events <- e:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\n// Returns true if the error was sent, or false if watcher is closed.\nfunc (w *Watcher) sendError(err error) bool {\n\tselect {\n\tcase w.Errors <- err:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\nfunc (w *Watcher) isClosed() bool {\n\tselect {\n\tcase <-w.done:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Close removes all watches and closes the Events channel.\nfunc (w *Watcher) Close() error {\n\tw.closeMu.Lock()\n\tif w.isClosed() {\n\t\tw.closeMu.Unlock()\n\t\treturn nil\n\t}\n\tclose(w.done)\n\tw.closeMu.Unlock()\n\n\t// Causes any blocking reads to return with an error, provided the file\n\t// still supports deadline operations.\n\terr := w.inotifyFile.Close()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Wait for goroutine to close\n\t<-w.doneResp\n\n\treturn nil\n}\n\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nfunc (w *Watcher) Add(name string) error { return w.AddWith(name) }\n\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nfunc (w *Watcher) AddWith(name string, opts ...addOpt) error {\n\tif w.isClosed() {\n\t\treturn ErrClosed\n\t}\n\n\tname = filepath.Clean(name)\n\t_ = getOptions(opts...)\n\n\tvar flags uint32 = unix.IN_MOVED_TO | unix.IN_MOVED_FROM |\n\t\tunix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY |\n\t\tunix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF\n\n\treturn w.watches.updatePath(name, func(existing *watch) (*watch, error) {\n\t\tif existing != nil {\n\t\t\tflags |= existing.flags | unix.IN_MASK_ADD\n\t\t}\n\n\t\twd, err := unix.InotifyAddWatch(w.fd, name, flags)\n\t\tif wd == -1 {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif existing == nil {\n\t\t\treturn &watch{\n\t\t\t\twd:    uint32(wd),\n\t\t\t\tpath:  name,\n\t\t\t\tflags: flags,\n\t\t\t}, nil\n\t\t}\n\n\t\texisting.wd = uint32(wd)\n\t\texisting.flags = flags\n\t\treturn existing, nil\n\t})\n}\n\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) Remove(name string) error {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\treturn w.remove(filepath.Clean(name))\n}\n\nfunc (w *Watcher) remove(name string) error {\n\twd, ok := w.watches.removePath(name)\n\tif !ok {\n\t\treturn fmt.Errorf(\"%w: %s\", ErrNonExistentWatch, name)\n\t}\n\n\tsuccess, errno := unix.InotifyRmWatch(w.fd, wd)\n\tif success == -1 {\n\t\t// TODO: Perhaps it's not helpful to return an error here in every case;\n\t\t//       The only two possible errors are:\n\t\t//\n\t\t//       - EBADF, which happens when w.fd is not a valid file descriptor\n\t\t//         of any kind.\n\t\t//       - EINVAL, which is when fd is not an inotify descriptor or wd\n\t\t//         is not a valid watch descriptor. Watch descriptors are\n\t\t//         invalidated when they are removed explicitly or implicitly;\n\t\t//         explicitly by inotify_rm_watch, implicitly when the file they\n\t\t//         are watching is deleted.\n\t\treturn errno\n\t}\n\treturn nil\n}\n\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) WatchList() []string {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\n\tentries := make([]string, 0, w.watches.len())\n\tw.watches.mu.RLock()\n\tfor pathname := range w.watches.path {\n\t\tentries = append(entries, pathname)\n\t}\n\tw.watches.mu.RUnlock()\n\n\treturn entries\n}\n\n// readEvents reads from the inotify file descriptor, converts the\n// received events into Event objects and sends them via the Events channel\nfunc (w *Watcher) readEvents() {\n\tdefer func() {\n\t\tclose(w.doneResp)\n\t\tclose(w.Errors)\n\t\tclose(w.Events)\n\t}()\n\n\tvar (\n\t\tbuf   [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events\n\t\terrno error                                // Syscall errno\n\t)\n\tfor {\n\t\t// See if we have been closed.\n\t\tif w.isClosed() {\n\t\t\treturn\n\t\t}\n\n\t\tn, err := w.inotifyFile.Read(buf[:])\n\t\tswitch {\n\t\tcase errors.Unwrap(err) == os.ErrClosed:\n\t\t\treturn\n\t\tcase err != nil:\n\t\t\tif !w.sendError(err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif n < unix.SizeofInotifyEvent {\n\t\t\tvar err error\n\t\t\tif n == 0 {\n\t\t\t\terr = io.EOF // If EOF is received. This should really never happen.\n\t\t\t} else if n < 0 {\n\t\t\t\terr = errno // If an error occurred while reading.\n\t\t\t} else {\n\t\t\t\terr = errors.New(\"notify: short read in readEvents()\") // Read was too short.\n\t\t\t}\n\t\t\tif !w.sendError(err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tvar offset uint32\n\t\t// We don't know how many events we just read into the buffer\n\t\t// While the offset points to at least one whole event...\n\t\tfor offset <= uint32(n-unix.SizeofInotifyEvent) {\n\t\t\tvar (\n\t\t\t\t// Point \"raw\" to the event in the buffer\n\t\t\t\traw     = (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset]))\n\t\t\t\tmask    = uint32(raw.Mask)\n\t\t\t\tnameLen = uint32(raw.Len)\n\t\t\t)\n\n\t\t\tif mask&unix.IN_Q_OVERFLOW != 0 {\n\t\t\t\tif !w.sendError(ErrEventOverflow) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the event happened to the watched directory or the watched file, the kernel\n\t\t\t// doesn't append the filename to the event, but we would like to always fill the\n\t\t\t// the \"Name\" field with a valid filename. We retrieve the path of the watch from\n\t\t\t// the \"paths\" map.\n\t\t\twatch := w.watches.byWd(uint32(raw.Wd))\n\n\t\t\t// inotify will automatically remove the watch on deletes; just need\n\t\t\t// to clean our state here.\n\t\t\tif watch != nil && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF {\n\t\t\t\tw.watches.remove(watch.wd)\n\t\t\t}\n\t\t\t// We can't really update the state when a watched path is moved;\n\t\t\t// only IN_MOVE_SELF is sent and not IN_MOVED_{FROM,TO}. So remove\n\t\t\t// the watch.\n\t\t\tif watch != nil && mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF {\n\t\t\t\terr := w.remove(watch.path)\n\t\t\t\tif err != nil && !errors.Is(err, ErrNonExistentWatch) {\n\t\t\t\t\tif !w.sendError(err) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar name string\n\t\t\tif watch != nil {\n\t\t\t\tname = watch.path\n\t\t\t}\n\t\t\tif nameLen > 0 {\n\t\t\t\t// Point \"bytes\" at the first byte of the filename\n\t\t\t\tbytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen]\n\t\t\t\t// The filename is padded with NULL bytes. TrimRight() gets rid of those.\n\t\t\t\tname += \"/\" + strings.TrimRight(string(bytes[0:nameLen]), \"\\000\")\n\t\t\t}\n\n\t\t\tevent := w.newEvent(name, mask)\n\n\t\t\t// Send the events that are not ignored on the events channel\n\t\t\tif mask&unix.IN_IGNORED == 0 {\n\t\t\t\tif !w.sendEvent(event) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Move to the next event in the buffer\n\t\t\toffset += unix.SizeofInotifyEvent + nameLen\n\t\t}\n\t}\n}\n\n// newEvent returns an platform-independent Event based on an inotify mask.\nfunc (w *Watcher) newEvent(name string, mask uint32) Event {\n\te := Event{Name: name}\n\tif mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO {\n\t\te.Op |= Create\n\t}\n\tif mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE {\n\t\te.Op |= Remove\n\t}\n\tif mask&unix.IN_MODIFY == unix.IN_MODIFY {\n\t\te.Op |= Write\n\t}\n\tif mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM {\n\t\te.Op |= Rename\n\t}\n\tif mask&unix.IN_ATTRIB == unix.IN_ATTRIB {\n\t\te.Op |= Chmod\n\t}\n\treturn e\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/backend_kqueue.go",
    "content": "//go:build freebsd || openbsd || netbsd || dragonfly || darwin\n// +build freebsd openbsd netbsd dragonfly darwin\n\n// Note: the documentation on the Watcher type and methods is generated from\n// mkdoc.zsh\n\npackage fsnotify\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\path\\to\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\ntype Watcher struct {\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\n\tEvents chan Event\n\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\n\tErrors chan error\n\n\tdone         chan struct{}\n\tkq           int                         // File descriptor (as returned by the kqueue() syscall).\n\tclosepipe    [2]int                      // Pipe used for closing.\n\tmu           sync.Mutex                  // Protects access to watcher data\n\twatches      map[string]int              // Watched file descriptors (key: path).\n\twatchesByDir map[string]map[int]struct{} // Watched file descriptors indexed by the parent directory (key: dirname(path)).\n\tuserWatches  map[string]struct{}         // Watches added with Watcher.Add()\n\tdirFlags     map[string]uint32           // Watched directories to fflags used in kqueue.\n\tpaths        map[int]pathInfo            // File descriptors to path names for processing kqueue events.\n\tfileExists   map[string]struct{}         // Keep track of if we know this file exists (to stop duplicate create events).\n\tisClosed     bool                        // Set to true when Close() is first called\n}\n\ntype pathInfo struct {\n\tname  string\n\tisDir bool\n}\n\n// NewWatcher creates a new Watcher.\nfunc NewWatcher() (*Watcher, error) {\n\treturn NewBufferedWatcher(0)\n}\n\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nfunc NewBufferedWatcher(sz uint) (*Watcher, error) {\n\tkq, closepipe, err := newKqueue()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tw := &Watcher{\n\t\tkq:           kq,\n\t\tclosepipe:    closepipe,\n\t\twatches:      make(map[string]int),\n\t\twatchesByDir: make(map[string]map[int]struct{}),\n\t\tdirFlags:     make(map[string]uint32),\n\t\tpaths:        make(map[int]pathInfo),\n\t\tfileExists:   make(map[string]struct{}),\n\t\tuserWatches:  make(map[string]struct{}),\n\t\tEvents:       make(chan Event, sz),\n\t\tErrors:       make(chan error),\n\t\tdone:         make(chan struct{}),\n\t}\n\n\tgo w.readEvents()\n\treturn w, nil\n}\n\n// newKqueue creates a new kernel event queue and returns a descriptor.\n//\n// This registers a new event on closepipe, which will trigger an event when\n// it's closed. This way we can use kevent() without timeout/polling; without\n// the closepipe, it would block forever and we wouldn't be able to stop it at\n// all.\nfunc newKqueue() (kq int, closepipe [2]int, err error) {\n\tkq, err = unix.Kqueue()\n\tif kq == -1 {\n\t\treturn kq, closepipe, err\n\t}\n\n\t// Register the close pipe.\n\terr = unix.Pipe(closepipe[:])\n\tif err != nil {\n\t\tunix.Close(kq)\n\t\treturn kq, closepipe, err\n\t}\n\n\t// Register changes to listen on the closepipe.\n\tchanges := make([]unix.Kevent_t, 1)\n\t// SetKevent converts int to the platform-specific types.\n\tunix.SetKevent(&changes[0], closepipe[0], unix.EVFILT_READ,\n\t\tunix.EV_ADD|unix.EV_ENABLE|unix.EV_ONESHOT)\n\n\tok, err := unix.Kevent(kq, changes, nil, nil)\n\tif ok == -1 {\n\t\tunix.Close(kq)\n\t\tunix.Close(closepipe[0])\n\t\tunix.Close(closepipe[1])\n\t\treturn kq, closepipe, err\n\t}\n\treturn kq, closepipe, nil\n}\n\n// Returns true if the event was sent, or false if watcher is closed.\nfunc (w *Watcher) sendEvent(e Event) bool {\n\tselect {\n\tcase w.Events <- e:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\n// Returns true if the error was sent, or false if watcher is closed.\nfunc (w *Watcher) sendError(err error) bool {\n\tselect {\n\tcase w.Errors <- err:\n\t\treturn true\n\tcase <-w.done:\n\t\treturn false\n\t}\n}\n\n// Close removes all watches and closes the Events channel.\nfunc (w *Watcher) Close() error {\n\tw.mu.Lock()\n\tif w.isClosed {\n\t\tw.mu.Unlock()\n\t\treturn nil\n\t}\n\tw.isClosed = true\n\n\t// copy paths to remove while locked\n\tpathsToRemove := make([]string, 0, len(w.watches))\n\tfor name := range w.watches {\n\t\tpathsToRemove = append(pathsToRemove, name)\n\t}\n\tw.mu.Unlock() // Unlock before calling Remove, which also locks\n\tfor _, name := range pathsToRemove {\n\t\tw.Remove(name)\n\t}\n\n\t// Send \"quit\" message to the reader goroutine.\n\tunix.Close(w.closepipe[1])\n\tclose(w.done)\n\n\treturn nil\n}\n\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nfunc (w *Watcher) Add(name string) error { return w.AddWith(name) }\n\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nfunc (w *Watcher) AddWith(name string, opts ...addOpt) error {\n\t_ = getOptions(opts...)\n\n\tw.mu.Lock()\n\tw.userWatches[name] = struct{}{}\n\tw.mu.Unlock()\n\t_, err := w.addWatch(name, noteAllEvents)\n\treturn err\n}\n\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) Remove(name string) error {\n\treturn w.remove(name, true)\n}\n\nfunc (w *Watcher) remove(name string, unwatchFiles bool) error {\n\tname = filepath.Clean(name)\n\tw.mu.Lock()\n\tif w.isClosed {\n\t\tw.mu.Unlock()\n\t\treturn nil\n\t}\n\twatchfd, ok := w.watches[name]\n\tw.mu.Unlock()\n\tif !ok {\n\t\treturn fmt.Errorf(\"%w: %s\", ErrNonExistentWatch, name)\n\t}\n\n\terr := w.register([]int{watchfd}, unix.EV_DELETE, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tunix.Close(watchfd)\n\n\tw.mu.Lock()\n\tisDir := w.paths[watchfd].isDir\n\tdelete(w.watches, name)\n\tdelete(w.userWatches, name)\n\n\tparentName := filepath.Dir(name)\n\tdelete(w.watchesByDir[parentName], watchfd)\n\n\tif len(w.watchesByDir[parentName]) == 0 {\n\t\tdelete(w.watchesByDir, parentName)\n\t}\n\n\tdelete(w.paths, watchfd)\n\tdelete(w.dirFlags, name)\n\tdelete(w.fileExists, name)\n\tw.mu.Unlock()\n\n\t// Find all watched paths that are in this directory that are not external.\n\tif unwatchFiles && isDir {\n\t\tvar pathsToRemove []string\n\t\tw.mu.Lock()\n\t\tfor fd := range w.watchesByDir[name] {\n\t\t\tpath := w.paths[fd]\n\t\t\tif _, ok := w.userWatches[path.name]; !ok {\n\t\t\t\tpathsToRemove = append(pathsToRemove, path.name)\n\t\t\t}\n\t\t}\n\t\tw.mu.Unlock()\n\t\tfor _, name := range pathsToRemove {\n\t\t\t// Since these are internal, not much sense in propagating error to\n\t\t\t// the user, as that will just confuse them with an error about a\n\t\t\t// path they did not explicitly watch themselves.\n\t\t\tw.Remove(name)\n\t\t}\n\t}\n\treturn nil\n}\n\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) WatchList() []string {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tif w.isClosed {\n\t\treturn nil\n\t}\n\n\tentries := make([]string, 0, len(w.userWatches))\n\tfor pathname := range w.userWatches {\n\t\tentries = append(entries, pathname)\n\t}\n\n\treturn entries\n}\n\n// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE)\nconst noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME\n\n// addWatch adds name to the watched file set; the flags are interpreted as\n// described in kevent(2).\n//\n// Returns the real path to the file which was added, with symlinks resolved.\nfunc (w *Watcher) addWatch(name string, flags uint32) (string, error) {\n\tvar isDir bool\n\tname = filepath.Clean(name)\n\n\tw.mu.Lock()\n\tif w.isClosed {\n\t\tw.mu.Unlock()\n\t\treturn \"\", ErrClosed\n\t}\n\twatchfd, alreadyWatching := w.watches[name]\n\t// We already have a watch, but we can still override flags.\n\tif alreadyWatching {\n\t\tisDir = w.paths[watchfd].isDir\n\t}\n\tw.mu.Unlock()\n\n\tif !alreadyWatching {\n\t\tfi, err := os.Lstat(name)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\t// Don't watch sockets or named pipes\n\t\tif (fi.Mode()&os.ModeSocket == os.ModeSocket) || (fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe) {\n\t\t\treturn \"\", nil\n\t\t}\n\n\t\t// Follow Symlinks.\n\t\tif fi.Mode()&os.ModeSymlink == os.ModeSymlink {\n\t\t\tlink, err := os.Readlink(name)\n\t\t\tif err != nil {\n\t\t\t\t// Return nil because Linux can add unresolvable symlinks to the\n\t\t\t\t// watch list without problems, so maintain consistency with\n\t\t\t\t// that. There will be no file events for broken symlinks.\n\t\t\t\t// TODO: more specific check; returns os.PathError; ENOENT?\n\t\t\t\treturn \"\", nil\n\t\t\t}\n\n\t\t\tw.mu.Lock()\n\t\t\t_, alreadyWatching = w.watches[link]\n\t\t\tw.mu.Unlock()\n\n\t\t\tif alreadyWatching {\n\t\t\t\t// Add to watches so we don't get spurious Create events later\n\t\t\t\t// on when we diff the directories.\n\t\t\t\tw.watches[name] = 0\n\t\t\t\tw.fileExists[name] = struct{}{}\n\t\t\t\treturn link, nil\n\t\t\t}\n\n\t\t\tname = link\n\t\t\tfi, err = os.Lstat(name)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", nil\n\t\t\t}\n\t\t}\n\n\t\t// Retry on EINTR; open() can return EINTR in practice on macOS.\n\t\t// See #354, and Go issues 11180 and 39237.\n\t\tfor {\n\t\t\twatchfd, err = unix.Open(name, openMode, 0)\n\t\t\tif err == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif errors.Is(err, unix.EINTR) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tisDir = fi.IsDir()\n\t}\n\n\terr := w.register([]int{watchfd}, unix.EV_ADD|unix.EV_CLEAR|unix.EV_ENABLE, flags)\n\tif err != nil {\n\t\tunix.Close(watchfd)\n\t\treturn \"\", err\n\t}\n\n\tif !alreadyWatching {\n\t\tw.mu.Lock()\n\t\tparentName := filepath.Dir(name)\n\t\tw.watches[name] = watchfd\n\n\t\twatchesByDir, ok := w.watchesByDir[parentName]\n\t\tif !ok {\n\t\t\twatchesByDir = make(map[int]struct{}, 1)\n\t\t\tw.watchesByDir[parentName] = watchesByDir\n\t\t}\n\t\twatchesByDir[watchfd] = struct{}{}\n\t\tw.paths[watchfd] = pathInfo{name: name, isDir: isDir}\n\t\tw.mu.Unlock()\n\t}\n\n\tif isDir {\n\t\t// Watch the directory if it has not been watched before, or if it was\n\t\t// watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles)\n\t\tw.mu.Lock()\n\n\t\twatchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE &&\n\t\t\t(!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE)\n\t\t// Store flags so this watch can be updated later\n\t\tw.dirFlags[name] = flags\n\t\tw.mu.Unlock()\n\n\t\tif watchDir {\n\t\t\tif err := w.watchDirectoryFiles(name); err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t}\n\t}\n\treturn name, nil\n}\n\n// readEvents reads from kqueue and converts the received kevents into\n// Event values that it sends down the Events channel.\nfunc (w *Watcher) readEvents() {\n\tdefer func() {\n\t\tclose(w.Events)\n\t\tclose(w.Errors)\n\t\t_ = unix.Close(w.kq)\n\t\tunix.Close(w.closepipe[0])\n\t}()\n\n\teventBuffer := make([]unix.Kevent_t, 10)\n\tfor closed := false; !closed; {\n\t\tkevents, err := w.read(eventBuffer)\n\t\t// EINTR is okay, the syscall was interrupted before timeout expired.\n\t\tif err != nil && err != unix.EINTR {\n\t\t\tif !w.sendError(fmt.Errorf(\"fsnotify.readEvents: %w\", err)) {\n\t\t\t\tclosed = true\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Flush the events we received to the Events channel\n\t\tfor _, kevent := range kevents {\n\t\t\tvar (\n\t\t\t\twatchfd = int(kevent.Ident)\n\t\t\t\tmask    = uint32(kevent.Fflags)\n\t\t\t)\n\n\t\t\t// Shut down the loop when the pipe is closed, but only after all\n\t\t\t// other events have been processed.\n\t\t\tif watchfd == w.closepipe[0] {\n\t\t\t\tclosed = true\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tw.mu.Lock()\n\t\t\tpath := w.paths[watchfd]\n\t\t\tw.mu.Unlock()\n\n\t\t\tevent := w.newEvent(path.name, mask)\n\n\t\t\tif event.Has(Rename) || event.Has(Remove) {\n\t\t\t\tw.remove(event.Name, false)\n\t\t\t\tw.mu.Lock()\n\t\t\t\tdelete(w.fileExists, event.Name)\n\t\t\t\tw.mu.Unlock()\n\t\t\t}\n\n\t\t\tif path.isDir && event.Has(Write) && !event.Has(Remove) {\n\t\t\t\tw.sendDirectoryChangeEvents(event.Name)\n\t\t\t} else {\n\t\t\t\tif !w.sendEvent(event) {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif event.Has(Remove) {\n\t\t\t\t// Look for a file that may have overwritten this; for example,\n\t\t\t\t// mv f1 f2 will delete f2, then create f2.\n\t\t\t\tif path.isDir {\n\t\t\t\t\tfileDir := filepath.Clean(event.Name)\n\t\t\t\t\tw.mu.Lock()\n\t\t\t\t\t_, found := w.watches[fileDir]\n\t\t\t\t\tw.mu.Unlock()\n\t\t\t\t\tif found {\n\t\t\t\t\t\terr := w.sendDirectoryChangeEvents(fileDir)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\tif !w.sendError(err) {\n\t\t\t\t\t\t\t\tclosed = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfilePath := filepath.Clean(event.Name)\n\t\t\t\t\tif fi, err := os.Lstat(filePath); err == nil {\n\t\t\t\t\t\terr := w.sendFileCreatedEventIfNew(filePath, fi)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\tif !w.sendError(err) {\n\t\t\t\t\t\t\t\tclosed = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// newEvent returns an platform-independent Event based on kqueue Fflags.\nfunc (w *Watcher) newEvent(name string, mask uint32) Event {\n\te := Event{Name: name}\n\tif mask&unix.NOTE_DELETE == unix.NOTE_DELETE {\n\t\te.Op |= Remove\n\t}\n\tif mask&unix.NOTE_WRITE == unix.NOTE_WRITE {\n\t\te.Op |= Write\n\t}\n\tif mask&unix.NOTE_RENAME == unix.NOTE_RENAME {\n\t\te.Op |= Rename\n\t}\n\tif mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB {\n\t\te.Op |= Chmod\n\t}\n\t// No point sending a write and delete event at the same time: if it's gone,\n\t// then it's gone.\n\tif e.Op.Has(Write) && e.Op.Has(Remove) {\n\t\te.Op &^= Write\n\t}\n\treturn e\n}\n\n// watchDirectoryFiles to mimic inotify when adding a watch on a directory\nfunc (w *Watcher) watchDirectoryFiles(dirPath string) error {\n\t// Get all files\n\tfiles, err := os.ReadDir(dirPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, f := range files {\n\t\tpath := filepath.Join(dirPath, f.Name())\n\n\t\tfi, err := f.Info()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"%q: %w\", path, err)\n\t\t}\n\n\t\tcleanPath, err := w.internalWatch(path, fi)\n\t\tif err != nil {\n\t\t\t// No permission to read the file; that's not a problem: just skip.\n\t\t\t// But do add it to w.fileExists to prevent it from being picked up\n\t\t\t// as a \"new\" file later (it still shows up in the directory\n\t\t\t// listing).\n\t\t\tswitch {\n\t\t\tcase errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM):\n\t\t\t\tcleanPath = filepath.Clean(path)\n\t\t\tdefault:\n\t\t\t\treturn fmt.Errorf(\"%q: %w\", path, err)\n\t\t\t}\n\t\t}\n\n\t\tw.mu.Lock()\n\t\tw.fileExists[cleanPath] = struct{}{}\n\t\tw.mu.Unlock()\n\t}\n\n\treturn nil\n}\n\n// Search the directory for new files and send an event for them.\n//\n// This functionality is to have the BSD watcher match the inotify, which sends\n// a create event for files created in a watched directory.\nfunc (w *Watcher) sendDirectoryChangeEvents(dir string) error {\n\tfiles, err := os.ReadDir(dir)\n\tif err != nil {\n\t\t// Directory no longer exists: we can ignore this safely. kqueue will\n\t\t// still give us the correct events.\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"fsnotify.sendDirectoryChangeEvents: %w\", err)\n\t}\n\n\tfor _, f := range files {\n\t\tfi, err := f.Info()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"fsnotify.sendDirectoryChangeEvents: %w\", err)\n\t\t}\n\n\t\terr = w.sendFileCreatedEventIfNew(filepath.Join(dir, fi.Name()), fi)\n\t\tif err != nil {\n\t\t\t// Don't need to send an error if this file isn't readable.\n\t\t\tif errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn fmt.Errorf(\"fsnotify.sendDirectoryChangeEvents: %w\", err)\n\t\t}\n\t}\n\treturn nil\n}\n\n// sendFileCreatedEvent sends a create event if the file isn't already being tracked.\nfunc (w *Watcher) sendFileCreatedEventIfNew(filePath string, fi os.FileInfo) (err error) {\n\tw.mu.Lock()\n\t_, doesExist := w.fileExists[filePath]\n\tw.mu.Unlock()\n\tif !doesExist {\n\t\tif !w.sendEvent(Event{Name: filePath, Op: Create}) {\n\t\t\treturn\n\t\t}\n\t}\n\n\t// like watchDirectoryFiles (but without doing another ReadDir)\n\tfilePath, err = w.internalWatch(filePath, fi)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tw.mu.Lock()\n\tw.fileExists[filePath] = struct{}{}\n\tw.mu.Unlock()\n\n\treturn nil\n}\n\nfunc (w *Watcher) internalWatch(name string, fi os.FileInfo) (string, error) {\n\tif fi.IsDir() {\n\t\t// mimic Linux providing delete events for subdirectories, but preserve\n\t\t// the flags used if currently watching subdirectory\n\t\tw.mu.Lock()\n\t\tflags := w.dirFlags[name]\n\t\tw.mu.Unlock()\n\n\t\tflags |= unix.NOTE_DELETE | unix.NOTE_RENAME\n\t\treturn w.addWatch(name, flags)\n\t}\n\n\t// watch file to mimic Linux inotify\n\treturn w.addWatch(name, noteAllEvents)\n}\n\n// Register events with the queue.\nfunc (w *Watcher) register(fds []int, flags int, fflags uint32) error {\n\tchanges := make([]unix.Kevent_t, len(fds))\n\tfor i, fd := range fds {\n\t\t// SetKevent converts int to the platform-specific types.\n\t\tunix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags)\n\t\tchanges[i].Fflags = fflags\n\t}\n\n\t// Register the events.\n\tsuccess, err := unix.Kevent(w.kq, changes, nil, nil)\n\tif success == -1 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// read retrieves pending events, or waits until an event occurs.\nfunc (w *Watcher) read(events []unix.Kevent_t) ([]unix.Kevent_t, error) {\n\tn, err := unix.Kevent(w.kq, nil, events, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn events[0:n], nil\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/backend_other.go",
    "content": "//go:build appengine || (!darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows)\n// +build appengine !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows\n\n// Note: the documentation on the Watcher type and methods is generated from\n// mkdoc.zsh\n\npackage fsnotify\n\nimport \"errors\"\n\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\path\\to\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\ntype Watcher struct {\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\n\tEvents chan Event\n\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\n\tErrors chan error\n}\n\n// NewWatcher creates a new Watcher.\nfunc NewWatcher() (*Watcher, error) {\n\treturn nil, errors.New(\"fsnotify not supported on the current platform\")\n}\n\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nfunc NewBufferedWatcher(sz uint) (*Watcher, error) { return NewWatcher() }\n\n// Close removes all watches and closes the Events channel.\nfunc (w *Watcher) Close() error { return nil }\n\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) WatchList() []string { return nil }\n\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nfunc (w *Watcher) Add(name string) error { return nil }\n\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nfunc (w *Watcher) AddWith(name string, opts ...addOpt) error { return nil }\n\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) Remove(name string) error { return nil }\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/backend_windows.go",
    "content": "//go:build windows\n// +build windows\n\n// Windows backend based on ReadDirectoryChangesW()\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw\n//\n// Note: the documentation on the Watcher type and methods is generated from\n// mkdoc.zsh\n\npackage fsnotify\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\path\\to\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\ntype Watcher struct {\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\n\tEvents chan Event\n\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\n\tErrors chan error\n\n\tport  windows.Handle // Handle to completion port\n\tinput chan *input    // Inputs to the reader are sent on this channel\n\tquit  chan chan<- error\n\n\tmu      sync.Mutex // Protects access to watches, closed\n\twatches watchMap   // Map of watches (key: i-number)\n\tclosed  bool       // Set to true when Close() is first called\n}\n\n// NewWatcher creates a new Watcher.\nfunc NewWatcher() (*Watcher, error) {\n\treturn NewBufferedWatcher(50)\n}\n\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nfunc NewBufferedWatcher(sz uint) (*Watcher, error) {\n\tport, err := windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0)\n\tif err != nil {\n\t\treturn nil, os.NewSyscallError(\"CreateIoCompletionPort\", err)\n\t}\n\tw := &Watcher{\n\t\tport:    port,\n\t\twatches: make(watchMap),\n\t\tinput:   make(chan *input, 1),\n\t\tEvents:  make(chan Event, sz),\n\t\tErrors:  make(chan error),\n\t\tquit:    make(chan chan<- error, 1),\n\t}\n\tgo w.readEvents()\n\treturn w, nil\n}\n\nfunc (w *Watcher) isClosed() bool {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\treturn w.closed\n}\n\nfunc (w *Watcher) sendEvent(name string, mask uint64) bool {\n\tif mask == 0 {\n\t\treturn false\n\t}\n\n\tevent := w.newEvent(name, uint32(mask))\n\tselect {\n\tcase ch := <-w.quit:\n\t\tw.quit <- ch\n\tcase w.Events <- event:\n\t}\n\treturn true\n}\n\n// Returns true if the error was sent, or false if watcher is closed.\nfunc (w *Watcher) sendError(err error) bool {\n\tselect {\n\tcase w.Errors <- err:\n\t\treturn true\n\tcase <-w.quit:\n\t}\n\treturn false\n}\n\n// Close removes all watches and closes the Events channel.\nfunc (w *Watcher) Close() error {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\n\tw.mu.Lock()\n\tw.closed = true\n\tw.mu.Unlock()\n\n\t// Send \"quit\" message to the reader goroutine\n\tch := make(chan error)\n\tw.quit <- ch\n\tif err := w.wakeupReader(); err != nil {\n\t\treturn err\n\t}\n\treturn <-ch\n}\n\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nfunc (w *Watcher) Add(name string) error { return w.AddWith(name) }\n\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nfunc (w *Watcher) AddWith(name string, opts ...addOpt) error {\n\tif w.isClosed() {\n\t\treturn ErrClosed\n\t}\n\n\twith := getOptions(opts...)\n\tif with.bufsize < 4096 {\n\t\treturn fmt.Errorf(\"fsnotify.WithBufferSize: buffer size cannot be smaller than 4096 bytes\")\n\t}\n\n\tin := &input{\n\t\top:      opAddWatch,\n\t\tpath:    filepath.Clean(name),\n\t\tflags:   sysFSALLEVENTS,\n\t\treply:   make(chan error),\n\t\tbufsize: with.bufsize,\n\t}\n\tw.input <- in\n\tif err := w.wakeupReader(); err != nil {\n\t\treturn err\n\t}\n\treturn <-in.reply\n}\n\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) Remove(name string) error {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\n\tin := &input{\n\t\top:    opRemoveWatch,\n\t\tpath:  filepath.Clean(name),\n\t\treply: make(chan error),\n\t}\n\tw.input <- in\n\tif err := w.wakeupReader(); err != nil {\n\t\treturn err\n\t}\n\treturn <-in.reply\n}\n\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nfunc (w *Watcher) WatchList() []string {\n\tif w.isClosed() {\n\t\treturn nil\n\t}\n\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\n\tentries := make([]string, 0, len(w.watches))\n\tfor _, entry := range w.watches {\n\t\tfor _, watchEntry := range entry {\n\t\t\tentries = append(entries, watchEntry.path)\n\t\t}\n\t}\n\n\treturn entries\n}\n\n// These options are from the old golang.org/x/exp/winfsnotify, where you could\n// add various options to the watch. This has long since been removed.\n//\n// The \"sys\" in the name is misleading as they're not part of any \"system\".\n//\n// This should all be removed at some point, and just use windows.FILE_NOTIFY_*\nconst (\n\tsysFSALLEVENTS  = 0xfff\n\tsysFSCREATE     = 0x100\n\tsysFSDELETE     = 0x200\n\tsysFSDELETESELF = 0x400\n\tsysFSMODIFY     = 0x2\n\tsysFSMOVE       = 0xc0\n\tsysFSMOVEDFROM  = 0x40\n\tsysFSMOVEDTO    = 0x80\n\tsysFSMOVESELF   = 0x800\n\tsysFSIGNORED    = 0x8000\n)\n\nfunc (w *Watcher) newEvent(name string, mask uint32) Event {\n\te := Event{Name: name}\n\tif mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO {\n\t\te.Op |= Create\n\t}\n\tif mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF {\n\t\te.Op |= Remove\n\t}\n\tif mask&sysFSMODIFY == sysFSMODIFY {\n\t\te.Op |= Write\n\t}\n\tif mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM {\n\t\te.Op |= Rename\n\t}\n\treturn e\n}\n\nconst (\n\topAddWatch = iota\n\topRemoveWatch\n)\n\nconst (\n\tprovisional uint64 = 1 << (32 + iota)\n)\n\ntype input struct {\n\top      int\n\tpath    string\n\tflags   uint32\n\tbufsize int\n\treply   chan error\n}\n\ntype inode struct {\n\thandle windows.Handle\n\tvolume uint32\n\tindex  uint64\n}\n\ntype watch struct {\n\tov      windows.Overlapped\n\tino     *inode            // i-number\n\trecurse bool              // Recursive watch?\n\tpath    string            // Directory path\n\tmask    uint64            // Directory itself is being watched with these notify flags\n\tnames   map[string]uint64 // Map of names being watched and their notify flags\n\trename  string            // Remembers the old name while renaming a file\n\tbuf     []byte            // buffer, allocated later\n}\n\ntype (\n\tindexMap map[uint64]*watch\n\twatchMap map[uint32]indexMap\n)\n\nfunc (w *Watcher) wakeupReader() error {\n\terr := windows.PostQueuedCompletionStatus(w.port, 0, 0, nil)\n\tif err != nil {\n\t\treturn os.NewSyscallError(\"PostQueuedCompletionStatus\", err)\n\t}\n\treturn nil\n}\n\nfunc (w *Watcher) getDir(pathname string) (dir string, err error) {\n\tattr, err := windows.GetFileAttributes(windows.StringToUTF16Ptr(pathname))\n\tif err != nil {\n\t\treturn \"\", os.NewSyscallError(\"GetFileAttributes\", err)\n\t}\n\tif attr&windows.FILE_ATTRIBUTE_DIRECTORY != 0 {\n\t\tdir = pathname\n\t} else {\n\t\tdir, _ = filepath.Split(pathname)\n\t\tdir = filepath.Clean(dir)\n\t}\n\treturn\n}\n\nfunc (w *Watcher) getIno(path string) (ino *inode, err error) {\n\th, err := windows.CreateFile(windows.StringToUTF16Ptr(path),\n\t\twindows.FILE_LIST_DIRECTORY,\n\t\twindows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE|windows.FILE_SHARE_DELETE,\n\t\tnil, windows.OPEN_EXISTING,\n\t\twindows.FILE_FLAG_BACKUP_SEMANTICS|windows.FILE_FLAG_OVERLAPPED, 0)\n\tif err != nil {\n\t\treturn nil, os.NewSyscallError(\"CreateFile\", err)\n\t}\n\n\tvar fi windows.ByHandleFileInformation\n\terr = windows.GetFileInformationByHandle(h, &fi)\n\tif err != nil {\n\t\twindows.CloseHandle(h)\n\t\treturn nil, os.NewSyscallError(\"GetFileInformationByHandle\", err)\n\t}\n\tino = &inode{\n\t\thandle: h,\n\t\tvolume: fi.VolumeSerialNumber,\n\t\tindex:  uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow),\n\t}\n\treturn ino, nil\n}\n\n// Must run within the I/O thread.\nfunc (m watchMap) get(ino *inode) *watch {\n\tif i := m[ino.volume]; i != nil {\n\t\treturn i[ino.index]\n\t}\n\treturn nil\n}\n\n// Must run within the I/O thread.\nfunc (m watchMap) set(ino *inode, watch *watch) {\n\ti := m[ino.volume]\n\tif i == nil {\n\t\ti = make(indexMap)\n\t\tm[ino.volume] = i\n\t}\n\ti[ino.index] = watch\n}\n\n// Must run within the I/O thread.\nfunc (w *Watcher) addWatch(pathname string, flags uint64, bufsize int) error {\n\t//pathname, recurse := recursivePath(pathname)\n\trecurse := false\n\n\tdir, err := w.getDir(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tino, err := w.getIno(dir)\n\tif err != nil {\n\t\treturn err\n\t}\n\tw.mu.Lock()\n\twatchEntry := w.watches.get(ino)\n\tw.mu.Unlock()\n\tif watchEntry == nil {\n\t\t_, err := windows.CreateIoCompletionPort(ino.handle, w.port, 0, 0)\n\t\tif err != nil {\n\t\t\twindows.CloseHandle(ino.handle)\n\t\t\treturn os.NewSyscallError(\"CreateIoCompletionPort\", err)\n\t\t}\n\t\twatchEntry = &watch{\n\t\t\tino:     ino,\n\t\t\tpath:    dir,\n\t\t\tnames:   make(map[string]uint64),\n\t\t\trecurse: recurse,\n\t\t\tbuf:     make([]byte, bufsize),\n\t\t}\n\t\tw.mu.Lock()\n\t\tw.watches.set(ino, watchEntry)\n\t\tw.mu.Unlock()\n\t\tflags |= provisional\n\t} else {\n\t\twindows.CloseHandle(ino.handle)\n\t}\n\tif pathname == dir {\n\t\twatchEntry.mask |= flags\n\t} else {\n\t\twatchEntry.names[filepath.Base(pathname)] |= flags\n\t}\n\n\terr = w.startRead(watchEntry)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif pathname == dir {\n\t\twatchEntry.mask &= ^provisional\n\t} else {\n\t\twatchEntry.names[filepath.Base(pathname)] &= ^provisional\n\t}\n\treturn nil\n}\n\n// Must run within the I/O thread.\nfunc (w *Watcher) remWatch(pathname string) error {\n\tpathname, recurse := recursivePath(pathname)\n\n\tdir, err := w.getDir(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\tino, err := w.getIno(dir)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tw.mu.Lock()\n\twatch := w.watches.get(ino)\n\tw.mu.Unlock()\n\n\tif recurse && !watch.recurse {\n\t\treturn fmt.Errorf(\"can't use \\\\... with non-recursive watch %q\", pathname)\n\t}\n\n\terr = windows.CloseHandle(ino.handle)\n\tif err != nil {\n\t\tw.sendError(os.NewSyscallError(\"CloseHandle\", err))\n\t}\n\tif watch == nil {\n\t\treturn fmt.Errorf(\"%w: %s\", ErrNonExistentWatch, pathname)\n\t}\n\tif pathname == dir {\n\t\tw.sendEvent(watch.path, watch.mask&sysFSIGNORED)\n\t\twatch.mask = 0\n\t} else {\n\t\tname := filepath.Base(pathname)\n\t\tw.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED)\n\t\tdelete(watch.names, name)\n\t}\n\n\treturn w.startRead(watch)\n}\n\n// Must run within the I/O thread.\nfunc (w *Watcher) deleteWatch(watch *watch) {\n\tfor name, mask := range watch.names {\n\t\tif mask&provisional == 0 {\n\t\t\tw.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED)\n\t\t}\n\t\tdelete(watch.names, name)\n\t}\n\tif watch.mask != 0 {\n\t\tif watch.mask&provisional == 0 {\n\t\t\tw.sendEvent(watch.path, watch.mask&sysFSIGNORED)\n\t\t}\n\t\twatch.mask = 0\n\t}\n}\n\n// Must run within the I/O thread.\nfunc (w *Watcher) startRead(watch *watch) error {\n\terr := windows.CancelIo(watch.ino.handle)\n\tif err != nil {\n\t\tw.sendError(os.NewSyscallError(\"CancelIo\", err))\n\t\tw.deleteWatch(watch)\n\t}\n\tmask := w.toWindowsFlags(watch.mask)\n\tfor _, m := range watch.names {\n\t\tmask |= w.toWindowsFlags(m)\n\t}\n\tif mask == 0 {\n\t\terr := windows.CloseHandle(watch.ino.handle)\n\t\tif err != nil {\n\t\t\tw.sendError(os.NewSyscallError(\"CloseHandle\", err))\n\t\t}\n\t\tw.mu.Lock()\n\t\tdelete(w.watches[watch.ino.volume], watch.ino.index)\n\t\tw.mu.Unlock()\n\t\treturn nil\n\t}\n\n\t// We need to pass the array, rather than the slice.\n\thdr := (*reflect.SliceHeader)(unsafe.Pointer(&watch.buf))\n\trdErr := windows.ReadDirectoryChanges(watch.ino.handle,\n\t\t(*byte)(unsafe.Pointer(hdr.Data)), uint32(hdr.Len),\n\t\twatch.recurse, mask, nil, &watch.ov, 0)\n\tif rdErr != nil {\n\t\terr := os.NewSyscallError(\"ReadDirectoryChanges\", rdErr)\n\t\tif rdErr == windows.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 {\n\t\t\t// Watched directory was probably removed\n\t\t\tw.sendEvent(watch.path, watch.mask&sysFSDELETESELF)\n\t\t\terr = nil\n\t\t}\n\t\tw.deleteWatch(watch)\n\t\tw.startRead(watch)\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// readEvents reads from the I/O completion port, converts the\n// received events into Event objects and sends them via the Events channel.\n// Entry point to the I/O thread.\nfunc (w *Watcher) readEvents() {\n\tvar (\n\t\tn   uint32\n\t\tkey uintptr\n\t\tov  *windows.Overlapped\n\t)\n\truntime.LockOSThread()\n\n\tfor {\n\t\t// This error is handled after the watch == nil check below.\n\t\tqErr := windows.GetQueuedCompletionStatus(w.port, &n, &key, &ov, windows.INFINITE)\n\n\t\twatch := (*watch)(unsafe.Pointer(ov))\n\t\tif watch == nil {\n\t\t\tselect {\n\t\t\tcase ch := <-w.quit:\n\t\t\t\tw.mu.Lock()\n\t\t\t\tvar indexes []indexMap\n\t\t\t\tfor _, index := range w.watches {\n\t\t\t\t\tindexes = append(indexes, index)\n\t\t\t\t}\n\t\t\t\tw.mu.Unlock()\n\t\t\t\tfor _, index := range indexes {\n\t\t\t\t\tfor _, watch := range index {\n\t\t\t\t\t\tw.deleteWatch(watch)\n\t\t\t\t\t\tw.startRead(watch)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\terr := windows.CloseHandle(w.port)\n\t\t\t\tif err != nil {\n\t\t\t\t\terr = os.NewSyscallError(\"CloseHandle\", err)\n\t\t\t\t}\n\t\t\t\tclose(w.Events)\n\t\t\t\tclose(w.Errors)\n\t\t\t\tch <- err\n\t\t\t\treturn\n\t\t\tcase in := <-w.input:\n\t\t\t\tswitch in.op {\n\t\t\t\tcase opAddWatch:\n\t\t\t\t\tin.reply <- w.addWatch(in.path, uint64(in.flags), in.bufsize)\n\t\t\t\tcase opRemoveWatch:\n\t\t\t\t\tin.reply <- w.remWatch(in.path)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch qErr {\n\t\tcase nil:\n\t\t\t// No error\n\t\tcase windows.ERROR_MORE_DATA:\n\t\t\tif watch == nil {\n\t\t\t\tw.sendError(errors.New(\"ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer\"))\n\t\t\t} else {\n\t\t\t\t// The i/o succeeded but the buffer is full.\n\t\t\t\t// In theory we should be building up a full packet.\n\t\t\t\t// In practice we can get away with just carrying on.\n\t\t\t\tn = uint32(unsafe.Sizeof(watch.buf))\n\t\t\t}\n\t\tcase windows.ERROR_ACCESS_DENIED:\n\t\t\t// Watched directory was probably removed\n\t\t\tw.sendEvent(watch.path, watch.mask&sysFSDELETESELF)\n\t\t\tw.deleteWatch(watch)\n\t\t\tw.startRead(watch)\n\t\t\tcontinue\n\t\tcase windows.ERROR_OPERATION_ABORTED:\n\t\t\t// CancelIo was called on this handle\n\t\t\tcontinue\n\t\tdefault:\n\t\t\tw.sendError(os.NewSyscallError(\"GetQueuedCompletionPort\", qErr))\n\t\t\tcontinue\n\t\t}\n\n\t\tvar offset uint32\n\t\tfor {\n\t\t\tif n == 0 {\n\t\t\t\tw.sendError(ErrEventOverflow)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Point \"raw\" to the event in the buffer\n\t\t\traw := (*windows.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset]))\n\n\t\t\t// Create a buf that is the size of the path name\n\t\t\tsize := int(raw.FileNameLength / 2)\n\t\t\tvar buf []uint16\n\t\t\t// TODO: Use unsafe.Slice in Go 1.17; https://stackoverflow.com/questions/51187973\n\t\t\tsh := (*reflect.SliceHeader)(unsafe.Pointer(&buf))\n\t\t\tsh.Data = uintptr(unsafe.Pointer(&raw.FileName))\n\t\t\tsh.Len = size\n\t\t\tsh.Cap = size\n\t\t\tname := windows.UTF16ToString(buf)\n\t\t\tfullname := filepath.Join(watch.path, name)\n\n\t\t\tvar mask uint64\n\t\t\tswitch raw.Action {\n\t\t\tcase windows.FILE_ACTION_REMOVED:\n\t\t\t\tmask = sysFSDELETESELF\n\t\t\tcase windows.FILE_ACTION_MODIFIED:\n\t\t\t\tmask = sysFSMODIFY\n\t\t\tcase windows.FILE_ACTION_RENAMED_OLD_NAME:\n\t\t\t\twatch.rename = name\n\t\t\tcase windows.FILE_ACTION_RENAMED_NEW_NAME:\n\t\t\t\t// Update saved path of all sub-watches.\n\t\t\t\told := filepath.Join(watch.path, watch.rename)\n\t\t\t\tw.mu.Lock()\n\t\t\t\tfor _, watchMap := range w.watches {\n\t\t\t\t\tfor _, ww := range watchMap {\n\t\t\t\t\t\tif strings.HasPrefix(ww.path, old) {\n\t\t\t\t\t\t\tww.path = filepath.Join(fullname, strings.TrimPrefix(ww.path, old))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tw.mu.Unlock()\n\n\t\t\t\tif watch.names[watch.rename] != 0 {\n\t\t\t\t\twatch.names[name] |= watch.names[watch.rename]\n\t\t\t\t\tdelete(watch.names, watch.rename)\n\t\t\t\t\tmask = sysFSMOVESELF\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsendNameEvent := func() {\n\t\t\t\tw.sendEvent(fullname, watch.names[name]&mask)\n\t\t\t}\n\t\t\tif raw.Action != windows.FILE_ACTION_RENAMED_NEW_NAME {\n\t\t\t\tsendNameEvent()\n\t\t\t}\n\t\t\tif raw.Action == windows.FILE_ACTION_REMOVED {\n\t\t\t\tw.sendEvent(fullname, watch.names[name]&sysFSIGNORED)\n\t\t\t\tdelete(watch.names, name)\n\t\t\t}\n\n\t\t\tw.sendEvent(fullname, watch.mask&w.toFSnotifyFlags(raw.Action))\n\t\t\tif raw.Action == windows.FILE_ACTION_RENAMED_NEW_NAME {\n\t\t\t\tfullname = filepath.Join(watch.path, watch.rename)\n\t\t\t\tsendNameEvent()\n\t\t\t}\n\n\t\t\t// Move to the next event in the buffer\n\t\t\tif raw.NextEntryOffset == 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toffset += raw.NextEntryOffset\n\n\t\t\t// Error!\n\t\t\tif offset >= n {\n\t\t\t\t//lint:ignore ST1005 Windows should be capitalized\n\t\t\t\tw.sendError(errors.New(\n\t\t\t\t\t\"Windows system assumed buffer larger than it is, events have likely been missed\"))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif err := w.startRead(watch); err != nil {\n\t\t\tw.sendError(err)\n\t\t}\n\t}\n}\n\nfunc (w *Watcher) toWindowsFlags(mask uint64) uint32 {\n\tvar m uint32\n\tif mask&sysFSMODIFY != 0 {\n\t\tm |= windows.FILE_NOTIFY_CHANGE_LAST_WRITE\n\t}\n\tif mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 {\n\t\tm |= windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME\n\t}\n\treturn m\n}\n\nfunc (w *Watcher) toFSnotifyFlags(action uint32) uint64 {\n\tswitch action {\n\tcase windows.FILE_ACTION_ADDED:\n\t\treturn sysFSCREATE\n\tcase windows.FILE_ACTION_REMOVED:\n\t\treturn sysFSDELETE\n\tcase windows.FILE_ACTION_MODIFIED:\n\t\treturn sysFSMODIFY\n\tcase windows.FILE_ACTION_RENAMED_OLD_NAME:\n\t\treturn sysFSMOVEDFROM\n\tcase windows.FILE_ACTION_RENAMED_NEW_NAME:\n\t\treturn sysFSMOVEDTO\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/fsnotify.go",
    "content": "// Package fsnotify provides a cross-platform interface for file system\n// notifications.\n//\n// Currently supported systems:\n//\n//\tLinux 2.6.32+    via inotify\n//\tBSD, macOS       via kqueue\n//\tWindows          via ReadDirectoryChangesW\n//\tillumos          via FEN\npackage fsnotify\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// Event represents a file system notification.\ntype Event struct {\n\t// Path to the file or directory.\n\t//\n\t// Paths are relative to the input; for example with Add(\"dir\") the Name\n\t// will be set to \"dir/file\" if you create that file, but if you use\n\t// Add(\"/path/to/dir\") it will be \"/path/to/dir/file\".\n\tName string\n\n\t// File operation that triggered the event.\n\t//\n\t// This is a bitmask and some systems may send multiple operations at once.\n\t// Use the Event.Has() method instead of comparing with ==.\n\tOp Op\n}\n\n// Op describes a set of file operations.\ntype Op uint32\n\n// The operations fsnotify can trigger; see the documentation on [Watcher] for a\n// full description, and check them with [Event.Has].\nconst (\n\t// A new pathname was created.\n\tCreate Op = 1 << iota\n\n\t// The pathname was written to; this does *not* mean the write has finished,\n\t// and a write can be followed by more writes.\n\tWrite\n\n\t// The path was removed; any watches on it will be removed. Some \"remove\"\n\t// operations may trigger a Rename if the file is actually moved (for\n\t// example \"remove to trash\" is often a rename).\n\tRemove\n\n\t// The path was renamed to something else; any watched on it will be\n\t// removed.\n\tRename\n\n\t// File attributes were changed.\n\t//\n\t// It's generally not recommended to take action on this event, as it may\n\t// get triggered very frequently by some software. For example, Spotlight\n\t// indexing on macOS, anti-virus software, backup software, etc.\n\tChmod\n)\n\n// Common errors that can be reported.\nvar (\n\tErrNonExistentWatch = errors.New(\"fsnotify: can't remove non-existent watch\")\n\tErrEventOverflow    = errors.New(\"fsnotify: queue or buffer overflow\")\n\tErrClosed           = errors.New(\"fsnotify: watcher already closed\")\n)\n\nfunc (o Op) String() string {\n\tvar b strings.Builder\n\tif o.Has(Create) {\n\t\tb.WriteString(\"|CREATE\")\n\t}\n\tif o.Has(Remove) {\n\t\tb.WriteString(\"|REMOVE\")\n\t}\n\tif o.Has(Write) {\n\t\tb.WriteString(\"|WRITE\")\n\t}\n\tif o.Has(Rename) {\n\t\tb.WriteString(\"|RENAME\")\n\t}\n\tif o.Has(Chmod) {\n\t\tb.WriteString(\"|CHMOD\")\n\t}\n\tif b.Len() == 0 {\n\t\treturn \"[no events]\"\n\t}\n\treturn b.String()[1:]\n}\n\n// Has reports if this operation has the given operation.\nfunc (o Op) Has(h Op) bool { return o&h != 0 }\n\n// Has reports if this event has the given operation.\nfunc (e Event) Has(op Op) bool { return e.Op.Has(op) }\n\n// String returns a string representation of the event with their path.\nfunc (e Event) String() string {\n\treturn fmt.Sprintf(\"%-13s %q\", e.Op.String(), e.Name)\n}\n\ntype (\n\taddOpt   func(opt *withOpts)\n\twithOpts struct {\n\t\tbufsize int\n\t}\n)\n\nvar defaultOpts = withOpts{\n\tbufsize: 65536, // 64K\n}\n\nfunc getOptions(opts ...addOpt) withOpts {\n\twith := defaultOpts\n\tfor _, o := range opts {\n\t\to(&with)\n\t}\n\treturn with\n}\n\n// WithBufferSize sets the [ReadDirectoryChangesW] buffer size.\n//\n// This only has effect on Windows systems, and is a no-op for other backends.\n//\n// The default value is 64K (65536 bytes) which is the highest value that works\n// on all filesystems and should be enough for most applications, but if you\n// have a large burst of events it may not be enough. You can increase it if\n// you're hitting \"queue or buffer overflow\" errors ([ErrEventOverflow]).\n//\n// [ReadDirectoryChangesW]: https://learn.microsoft.com/en-gb/windows/win32/api/winbase/nf-winbase-readdirectorychangesw\nfunc WithBufferSize(bytes int) addOpt {\n\treturn func(opt *withOpts) { opt.bufsize = bytes }\n}\n\n// Check if this path is recursive (ends with \"/...\" or \"\\...\"), and return the\n// path with the /... stripped.\nfunc recursivePath(path string) (string, bool) {\n\tif filepath.Base(path) == \"...\" {\n\t\treturn filepath.Dir(path), true\n\t}\n\treturn path, false\n}\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/mkdoc.zsh",
    "content": "#!/usr/bin/env zsh\n[ \"${ZSH_VERSION:-}\" = \"\" ] && echo >&2 \"Only works with zsh\" && exit 1\nsetopt err_exit no_unset pipefail extended_glob\n\n# Simple script to update the godoc comments on all watchers so you don't need\n# to update the same comment 5 times.\n\nwatcher=$(<<EOF\n// Watcher watches a set of paths, delivering events on a channel.\n//\n// A watcher should not be copied (e.g. pass it by pointer, rather than by\n// value).\n//\n// # Linux notes\n//\n// When a file is removed a Remove event won't be emitted until all file\n// descriptors are closed, and deletes will always emit a Chmod. For example:\n//\n//\tfp := os.Open(\"file\")\n//\tos.Remove(\"file\")        // Triggers Chmod\n//\tfp.Close()               // Triggers Remove\n//\n// This is the event that inotify sends, so not much can be changed about this.\n//\n// The fs.inotify.max_user_watches sysctl variable specifies the upper limit\n// for the number of watches per user, and fs.inotify.max_user_instances\n// specifies the maximum number of inotify instances per user. Every Watcher you\n// create is an \"instance\", and every path you add is a \"watch\".\n//\n// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and\n// /proc/sys/fs/inotify/max_user_instances\n//\n// To increase them you can use sysctl or write the value to the /proc file:\n//\n//\t# Default values on Linux 5.18\n//\tsysctl fs.inotify.max_user_watches=124983\n//\tsysctl fs.inotify.max_user_instances=128\n//\n// To make the changes persist on reboot edit /etc/sysctl.conf or\n// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check\n// your distro's documentation):\n//\n//\tfs.inotify.max_user_watches=124983\n//\tfs.inotify.max_user_instances=128\n//\n// Reaching the limit will result in a \"no space left on device\" or \"too many open\n// files\" error.\n//\n// # kqueue notes (macOS, BSD)\n//\n// kqueue requires opening a file descriptor for every file that's being watched;\n// so if you're watching a directory with five files then that's six file\n// descriptors. You will run in to your system's \"max open files\" limit faster on\n// these platforms.\n//\n// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to\n// control the maximum number of open files, as well as /etc/login.conf on BSD\n// systems.\n//\n// # Windows notes\n//\n// Paths can be added as \"C:\\\\path\\\\to\\\\dir\", but forward slashes\n// (\"C:/path/to/dir\") will also work.\n//\n// When a watched directory is removed it will always send an event for the\n// directory itself, but may not send events for all files in that directory.\n// Sometimes it will send events for all times, sometimes it will send no\n// events, and often only for some files.\n//\n// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest\n// value that is guaranteed to work with SMB filesystems. If you have many\n// events in quick succession this may not be enough, and you will have to use\n// [WithBufferSize] to increase the value.\nEOF\n)\n\nnew=$(<<EOF\n// NewWatcher creates a new Watcher.\nEOF\n)\n\nnewbuffered=$(<<EOF\n// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events\n// channel.\n//\n// The main use case for this is situations with a very large number of events\n// where the kernel buffer size can't be increased (e.g. due to lack of\n// permissions). An unbuffered Watcher will perform better for almost all use\n// cases, and whenever possible you will be better off increasing the kernel\n// buffers instead of adding a large userspace buffer.\nEOF\n)\n\nadd=$(<<EOF\n// Add starts monitoring the path for changes.\n//\n// A path can only be watched once; watching it more than once is a no-op and will\n// not return an error. Paths that do not yet exist on the filesystem cannot be\n// watched.\n//\n// A watch will be automatically removed if the watched path is deleted or\n// renamed. The exception is the Windows backend, which doesn't remove the\n// watcher on renames.\n//\n// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special\n// filesystems (/proc, /sys, etc.) generally don't work.\n//\n// Returns [ErrClosed] if [Watcher.Close] was called.\n//\n// See [Watcher.AddWith] for a version that allows adding options.\n//\n// # Watching directories\n//\n// All files in a directory are monitored, including new files that are created\n// after the watcher is started. Subdirectories are not watched (i.e. it's\n// non-recursive).\n//\n// # Watching files\n//\n// Watching individual files (rather than directories) is generally not\n// recommended as many programs (especially editors) update files atomically: it\n// will write to a temporary file which is then moved to to destination,\n// overwriting the original (or some variant thereof). The watcher on the\n// original file is now lost, as that no longer exists.\n//\n// The upshot of this is that a power failure or crash won't leave a\n// half-written file.\n//\n// Watch the parent directory and use Event.Name to filter out files you're not\n// interested in. There is an example of this in cmd/fsnotify/file.go.\nEOF\n)\n\naddwith=$(<<EOF\n// AddWith is like [Watcher.Add], but allows adding options. When using Add()\n// the defaults described below are used.\n//\n// Possible options are:\n//\n//   - [WithBufferSize] sets the buffer size for the Windows backend; no-op on\n//     other platforms. The default is 64K (65536 bytes).\nEOF\n)\n\nremove=$(<<EOF\n// Remove stops monitoring the path for changes.\n//\n// Directories are always removed non-recursively. For example, if you added\n// /tmp/dir and /tmp/dir/subdir then you will need to remove both.\n//\n// Removing a path that has not yet been added returns [ErrNonExistentWatch].\n//\n// Returns nil if [Watcher.Close] was called.\nEOF\n)\n\nclose=$(<<EOF\n// Close removes all watches and closes the Events channel.\nEOF\n)\n\nwatchlist=$(<<EOF\n// WatchList returns all paths explicitly added with [Watcher.Add] (and are not\n// yet removed).\n//\n// Returns nil if [Watcher.Close] was called.\nEOF\n)\n\nevents=$(<<EOF\n\t// Events sends the filesystem change events.\n\t//\n\t// fsnotify can send the following events; a \"path\" here can refer to a\n\t// file, directory, symbolic link, or special file like a FIFO.\n\t//\n\t//   fsnotify.Create    A new path was created; this may be followed by one\n\t//                      or more Write events if data also gets written to a\n\t//                      file.\n\t//\n\t//   fsnotify.Remove    A path was removed.\n\t//\n\t//   fsnotify.Rename    A path was renamed. A rename is always sent with the\n\t//                      old path as Event.Name, and a Create event will be\n\t//                      sent with the new name. Renames are only sent for\n\t//                      paths that are currently watched; e.g. moving an\n\t//                      unmonitored file into a monitored directory will\n\t//                      show up as just a Create. Similarly, renaming a file\n\t//                      to outside a monitored directory will show up as\n\t//                      only a Rename.\n\t//\n\t//   fsnotify.Write     A file or named pipe was written to. A Truncate will\n\t//                      also trigger a Write. A single \"write action\"\n\t//                      initiated by the user may show up as one or multiple\n\t//                      writes, depending on when the system syncs things to\n\t//                      disk. For example when compiling a large Go program\n\t//                      you may get hundreds of Write events, and you may\n\t//                      want to wait until you've stopped receiving them\n\t//                      (see the dedup example in cmd/fsnotify).\n\t//\n\t//                      Some systems may send Write event for directories\n\t//                      when the directory content changes.\n\t//\n\t//   fsnotify.Chmod     Attributes were changed. On Linux this is also sent\n\t//                      when a file is removed (or more accurately, when a\n\t//                      link to an inode is removed). On kqueue it's sent\n\t//                      when a file is truncated. On Windows it's never\n\t//                      sent.\nEOF\n)\n\nerrors=$(<<EOF\n\t// Errors sends any errors.\n\t//\n\t// ErrEventOverflow is used to indicate there are too many events:\n\t//\n\t//  - inotify:      There are too many queued events (fs.inotify.max_queued_events sysctl)\n\t//  - windows:      The buffer size is too small; WithBufferSize() can be used to increase it.\n\t//  - kqueue, fen:  Not used.\nEOF\n)\n\nset-cmt() {\n\tlocal pat=$1\n\tlocal cmt=$2\n\n\tIFS=$'\\n' local files=($(grep -n $pat backend_*~*_test.go))\n\tfor f in $files; do\n\t\tIFS=':' local fields=($=f)\n\t\tlocal file=$fields[1]\n\t\tlocal end=$(( $fields[2] - 1 ))\n\n\t\t# Find start of comment.\n\t\tlocal start=0\n\t\tIFS=$'\\n' local lines=($(head -n$end $file))\n\t\tfor (( i = 1; i <= $#lines; i++ )); do\n\t\t\tlocal line=$lines[-$i]\n\t\t\tif ! grep -q '^[[:space:]]*//' <<<$line; then\n\t\t\t\tstart=$(( end - (i - 2) ))\n\t\t\t\tbreak\n\t\t\tfi\n\t\tdone\n\n\t\thead -n $(( start - 1 )) $file  >/tmp/x\n\t\tprint -r -- $cmt                >>/tmp/x\n\t\ttail -n+$(( end + 1 ))   $file  >>/tmp/x\n\t\tmv /tmp/x $file\n\tdone\n}\n\nset-cmt '^type Watcher struct '             $watcher\nset-cmt '^func NewWatcher('                 $new\nset-cmt '^func NewBufferedWatcher('         $newbuffered\nset-cmt '^func (w \\*Watcher) Add('          $add\nset-cmt '^func (w \\*Watcher) AddWith('      $addwith\nset-cmt '^func (w \\*Watcher) Remove('       $remove\nset-cmt '^func (w \\*Watcher) Close('        $close\nset-cmt '^func (w \\*Watcher) WatchList('    $watchlist\nset-cmt '^[[:space:]]*Events *chan Event$'  $events\nset-cmt '^[[:space:]]*Errors *chan error$'  $errors\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/system_bsd.go",
    "content": "//go:build freebsd || openbsd || netbsd || dragonfly\n// +build freebsd openbsd netbsd dragonfly\n\npackage fsnotify\n\nimport \"golang.org/x/sys/unix\"\n\nconst openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC\n"
  },
  {
    "path": "vendor/github.com/fsnotify/fsnotify/system_darwin.go",
    "content": "//go:build darwin\n// +build darwin\n\npackage fsnotify\n\nimport \"golang.org/x/sys/unix\"\n\n// note: this constant is not defined on BSD\nconst openMode = unix.O_EVTONLY | unix.O_CLOEXEC\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/.golangci.yaml",
    "content": "version: \"2\"\n\nrun:\n  timeout: 1m\n  tests: true\n\nlinters:\n  default: none\n  enable: # please keep this alphabetized\n    - asasalint\n    - asciicheck\n    - copyloopvar\n    - dupl\n    - errcheck\n    - forcetypeassert\n    - goconst\n    - gocritic\n    - govet\n    - ineffassign\n    - misspell\n    - musttag\n    - revive\n    - staticcheck\n    - unused\n\nissues:\n  max-issues-per-linter: 0\n  max-same-issues: 10\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CHANGELOG.md",
    "content": "# CHANGELOG\n\n## v1.0.0-rc1\n\nThis is the first logged release.  Major changes (including breaking changes)\nhave occurred since earlier tags.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CONTRIBUTING.md",
    "content": "# Contributing\n\nLogr is open to pull-requests, provided they fit within the intended scope of\nthe project.  Specifically, this library aims to be VERY small and minimalist,\nwith no external dependencies.\n\n## Compatibility\n\nThis project intends to follow [semantic versioning](http://semver.org) and\nis very strict about compatibility.  Any proposed changes MUST follow those\nrules.\n\n## Performance\n\nAs a logging library, logr must be as light-weight as possible.  Any proposed\ncode change must include results of running the [benchmark](./benchmark)\nbefore and after the change.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/README.md",
    "content": "# A minimal logging API for Go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-logr/logr)](https://goreportcard.com/report/github.com/go-logr/logr)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-logr/logr/badge)](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)\n\nlogr offers an(other) opinion on how Go programs and libraries can do logging\nwithout becoming coupled to a particular logging implementation.  This is not\nan implementation of logging - it is an API.  In fact it is two APIs with two\ndifferent sets of users.\n\nThe `Logger` type is intended for application and library authors.  It provides\na relatively small API which can be used everywhere you want to emit logs.  It\ndefers the actual act of writing logs (to files, to stdout, or whatever) to the\n`LogSink` interface.\n\nThe `LogSink` interface is intended for logging library implementers.  It is a\npure interface which can be implemented by logging frameworks to provide the actual logging\nfunctionality.\n\nThis decoupling allows application and library developers to write code in\nterms of `logr.Logger` (which has very low dependency fan-out) while the\nimplementation of logging is managed \"up stack\" (e.g. in or near `main()`.)\nApplication developers can then switch out implementations as necessary.\n\nMany people assert that libraries should not be logging, and as such efforts\nlike this are pointless.  Those people are welcome to convince the authors of\nthe tens-of-thousands of libraries that *DO* write logs that they are all\nwrong.  In the meantime, logr takes a more practical approach.\n\n## Typical usage\n\nSomewhere, early in an application's life, it will make a decision about which\nlogging library (implementation) it actually wants to use.  Something like:\n\n```\n    func main() {\n        // ... other setup code ...\n\n        // Create the \"root\" logger.  We have chosen the \"logimpl\" implementation,\n        // which takes some initial parameters and returns a logr.Logger.\n        logger := logimpl.New(param1, param2)\n\n        // ... other setup code ...\n```\n\nMost apps will call into other libraries, create structures to govern the flow,\netc.  The `logr.Logger` object can be passed to these other libraries, stored\nin structs, or even used as a package-global variable, if needed.  For example:\n\n```\n    app := createTheAppObject(logger)\n    app.Run()\n```\n\nOutside of this early setup, no other packages need to know about the choice of\nimplementation.  They write logs in terms of the `logr.Logger` that they\nreceived:\n\n```\n    type appObject struct {\n        // ... other fields ...\n        logger logr.Logger\n        // ... other fields ...\n    }\n\n    func (app *appObject) Run() {\n        app.logger.Info(\"starting up\", \"timestamp\", time.Now())\n\n        // ... app code ...\n```\n\n## Background\n\nIf the Go standard library had defined an interface for logging, this project\nprobably would not be needed.  Alas, here we are.\n\nWhen the Go developers started developing such an interface with\n[slog](https://github.com/golang/go/issues/56345), they adopted some of the\nlogr design but also left out some parts and changed others:\n\n| Feature | logr | slog |\n|---------|------|------|\n| High-level API | `Logger` (passed by value) | `Logger` (passed by [pointer](https://github.com/golang/go/issues/59126)) |\n| Low-level API | `LogSink` | `Handler` |\n| Stack unwinding | done by `LogSink` | done by `Logger` |\n| Skipping helper functions | `WithCallDepth`, `WithCallStackHelper` | [not supported by Logger](https://github.com/golang/go/issues/59145) |\n| Generating a value for logging on demand | `Marshaler` | `LogValuer` |\n| Log levels | >= 0, higher meaning \"less important\" | positive and negative, with 0 for \"info\" and higher meaning \"more important\" |\n| Error log entries | always logged, don't have a verbosity level | normal log entries with level >= `LevelError` |\n| Passing logger via context | `NewContext`, `FromContext` | no API |\n| Adding a name to a logger | `WithName` | no API |\n| Modify verbosity of log entries in a call chain | `V` | no API |\n| Grouping of key/value pairs | not supported | `WithGroup`, `GroupValue` |\n| Pass context for extracting additional values | no API | API variants like `InfoCtx` |\n\nThe high-level slog API is explicitly meant to be one of many different APIs\nthat can be layered on top of a shared `slog.Handler`. logr is one such\nalternative API, with [interoperability](#slog-interoperability) provided by\nsome conversion functions.\n\n### Inspiration\n\nBefore you consider this package, please read [this blog post by the\ninimitable Dave Cheney][warning-makes-no-sense].  We really appreciate what\nhe has to say, and it largely aligns with our own experiences.\n\n### Differences from Dave's ideas\n\nThe main differences are:\n\n1. Dave basically proposes doing away with the notion of a logging API in favor\nof `fmt.Printf()`.  We disagree, especially when you consider things like output\nlocations, timestamps, file and line decorations, and structured logging.  This\npackage restricts the logging API to just 2 types of logs: info and error.\n\nInfo logs are things you want to tell the user which are not errors.  Error\nlogs are, well, errors.  If your code receives an `error` from a subordinate\nfunction call and is logging that `error` *and not returning it*, use error\nlogs.\n\n2. Verbosity-levels on info logs.  This gives developers a chance to indicate\narbitrary grades of importance for info logs, without assigning names with\nsemantic meaning such as \"warning\", \"trace\", and \"debug.\"  Superficially this\nmay feel very similar, but the primary difference is the lack of semantics.\nBecause verbosity is a numerical value, it's safe to assume that an app running\nwith higher verbosity means more (and less important) logs will be generated.\n\n## Implementations (non-exhaustive)\n\nThere are implementations for the following logging libraries:\n\n- **a function** (can bridge to non-structured libraries): [funcr](https://github.com/go-logr/logr/tree/master/funcr)\n- **a testing.T** (for use in Go tests, with JSON-like output): [testr](https://github.com/go-logr/logr/tree/master/testr)\n- **github.com/google/glog**: [glogr](https://github.com/go-logr/glogr)\n- **k8s.io/klog** (for Kubernetes): [klogr](https://git.k8s.io/klog/klogr)\n- **a testing.T** (with klog-like text output): [ktesting](https://git.k8s.io/klog/ktesting)\n- **go.uber.org/zap**: [zapr](https://github.com/go-logr/zapr)\n- **log** (the Go standard library logger): [stdr](https://github.com/go-logr/stdr)\n- **github.com/sirupsen/logrus**: [logrusr](https://github.com/bombsimon/logrusr)\n- **github.com/wojas/genericr**: [genericr](https://github.com/wojas/genericr) (makes it easy to implement your own backend)\n- **logfmt** (Heroku style [logging](https://www.brandur.org/logfmt)): [logfmtr](https://github.com/iand/logfmtr)\n- **github.com/rs/zerolog**: [zerologr](https://github.com/go-logr/zerologr)\n- **github.com/go-kit/log**: [gokitlogr](https://github.com/tonglil/gokitlogr) (also compatible with github.com/go-kit/kit/log since v0.12.0)\n- **bytes.Buffer** (writing to a buffer): [bufrlogr](https://github.com/tonglil/buflogr) (useful for ensuring values were logged, like during testing)\n\n## slog interoperability\n\nInteroperability goes both ways, using the `logr.Logger` API with a `slog.Handler`\nand using the `slog.Logger` API with a `logr.LogSink`. `FromSlogHandler` and\n`ToSlogHandler` convert between a `logr.Logger` and a `slog.Handler`.\nAs usual, `slog.New` can be used to wrap such a `slog.Handler` in the high-level\nslog API.\n\n### Using a `logr.LogSink` as backend for slog\n\nIdeally, a logr sink implementation should support both logr and slog by\nimplementing both the normal logr interface(s) and `SlogSink`.  Because\nof a conflict in the parameters of the common `Enabled` method, it is [not\npossible to implement both slog.Handler and logr.Sink in the same\ntype](https://github.com/golang/go/issues/59110).\n\nIf both are supported, log calls can go from the high-level APIs to the backend\nwithout the need to convert parameters. `FromSlogHandler` and `ToSlogHandler` can\nconvert back and forth without adding additional wrappers, with one exception:\nwhen `Logger.V` was used to adjust the verbosity for a `slog.Handler`, then\n`ToSlogHandler` has to use a wrapper which adjusts the verbosity for future\nlog calls.\n\nSuch an implementation should also support values that implement specific\ninterfaces from both packages for logging (`logr.Marshaler`, `slog.LogValuer`,\n`slog.GroupValue`). logr does not convert those.\n\nNot supporting slog has several drawbacks:\n- Recording source code locations works correctly if the handler gets called\n  through `slog.Logger`, but may be wrong in other cases. That's because a\n  `logr.Sink` does its own stack unwinding instead of using the program counter\n  provided by the high-level API.\n- slog levels <= 0 can be mapped to logr levels by negating the level without a\n  loss of information. But all slog levels > 0 (e.g. `slog.LevelWarning` as\n  used by `slog.Logger.Warn`) must be mapped to 0 before calling the sink\n  because logr does not support \"more important than info\" levels.\n- The slog group concept is supported by prefixing each key in a key/value\n  pair with the group names, separated by a dot. For structured output like\n  JSON it would be better to group the key/value pairs inside an object.\n- Special slog values and interfaces don't work as expected.\n- The overhead is likely to be higher.\n\nThese drawbacks are severe enough that applications using a mixture of slog and\nlogr should switch to a different backend.\n\n### Using a `slog.Handler` as backend for logr\n\nUsing a plain `slog.Handler` without support for logr works better than the\nother direction:\n- All logr verbosity levels can be mapped 1:1 to their corresponding slog level\n  by negating them.\n- Stack unwinding is done by the `SlogSink` and the resulting program\n  counter is passed to the `slog.Handler`.\n- Names added via `Logger.WithName` are gathered and recorded in an additional\n  attribute with `logger` as key and the names separated by slash as value.\n- `Logger.Error` is turned into a log record with `slog.LevelError` as level\n  and an additional attribute with `err` as key, if an error was provided.\n\nThe main drawback is that `logr.Marshaler` will not be supported. Types should\nideally support both `logr.Marshaler` and `slog.Valuer`. If compatibility\nwith logr implementations without slog support is not important, then\n`slog.Valuer` is sufficient.\n\n### Context support for slog\n\nStoring a logger in a `context.Context` is not supported by\nslog. `NewContextWithSlogLogger` and `FromContextAsSlogLogger` can be\nused to fill this gap. They store and retrieve a `slog.Logger` pointer\nunder the same context key that is also used by `NewContext` and\n`FromContext` for `logr.Logger` value.\n\nWhen `NewContextWithSlogLogger` is followed by `FromContext`, the latter will\nautomatically convert the `slog.Logger` to a\n`logr.Logger`. `FromContextAsSlogLogger` does the same for the other direction.\n\nWith this approach, binaries which use either slog or logr are as efficient as\npossible with no unnecessary allocations. This is also why the API stores a\n`slog.Logger` pointer: when storing a `slog.Handler`, creating a `slog.Logger`\non retrieval would need to allocate one.\n\nThe downside is that switching back and forth needs more allocations. Because\nlogr is the API that is already in use by different packages, in particular\nKubernetes, the recommendation is to use the `logr.Logger` API in code which\nuses contextual logging.\n\nAn alternative to adding values to a logger and storing that logger in the\ncontext is to store the values in the context and to configure a logging\nbackend to extract those values when emitting log entries. This only works when\nlog calls are passed the context, which is not supported by the logr API.\n\nWith the slog API, it is possible, but not\nrequired. https://github.com/veqryn/slog-context is a package for slog which\nprovides additional support code for this approach. It also contains wrappers\nfor the context functions in logr, so developers who prefer to not use the logr\nAPIs directly can use those instead and the resulting code will still be\ninteroperable with logr.\n\n## FAQ\n\n### Conceptual\n\n#### Why structured logging?\n\n- **Structured logs are more easily queryable**: Since you've got\n  key-value pairs, it's much easier to query your structured logs for\n  particular values by filtering on the contents of a particular key --\n  think searching request logs for error codes, Kubernetes reconcilers for\n  the name and namespace of the reconciled object, etc.\n\n- **Structured logging makes it easier to have cross-referenceable logs**:\n  Similarly to searchability, if you maintain conventions around your\n  keys, it becomes easy to gather all log lines related to a particular\n  concept.\n\n- **Structured logs allow better dimensions of filtering**: if you have\n  structure to your logs, you've got more precise control over how much\n  information is logged -- you might choose in a particular configuration\n  to log certain keys but not others, only log lines where a certain key\n  matches a certain value, etc., instead of just having v-levels and names\n  to key off of.\n\n- **Structured logs better represent structured data**: sometimes, the\n  data that you want to log is inherently structured (think tuple-link\n  objects.)  Structured logs allow you to preserve that structure when\n  outputting.\n\n#### Why V-levels?\n\n**V-levels give operators an easy way to control the chattiness of log\noperations**.  V-levels provide a way for a given package to distinguish\nthe relative importance or verbosity of a given log message.  Then, if\na particular logger or package is logging too many messages, the user\nof the package can simply change the v-levels for that library.\n\n#### Why not named levels, like Info/Warning/Error?\n\nRead [Dave Cheney's post][warning-makes-no-sense].  Then read [Differences\nfrom Dave's ideas](#differences-from-daves-ideas).\n\n#### Why not allow format strings, too?\n\n**Format strings negate many of the benefits of structured logs**:\n\n- They're not easily searchable without resorting to fuzzy searching,\n  regular expressions, etc.\n\n- They don't store structured data well, since contents are flattened into\n  a string.\n\n- They're not cross-referenceable.\n\n- They don't compress easily, since the message is not constant.\n\n(Unless you turn positional parameters into key-value pairs with numerical\nkeys, at which point you've gotten key-value logging with meaningless\nkeys.)\n\n### Practical\n\n#### Why key-value pairs, and not a map?\n\nKey-value pairs are *much* easier to optimize, especially around\nallocations.  Zap (a structured logger that inspired logr's interface) has\n[performance measurements](https://github.com/uber-go/zap#performance)\nthat show this quite nicely.\n\nWhile the interface ends up being a little less obvious, you get\npotentially better performance, plus avoid making users type\n`map[string]string{}` every time they want to log.\n\n#### What if my V-levels differ between libraries?\n\nThat's fine.  Control your V-levels on a per-logger basis, and use the\n`WithName` method to pass different loggers to different libraries.\n\nGenerally, you should take care to ensure that you have relatively\nconsistent V-levels within a given logger, however, as this makes deciding\non what verbosity of logs to request easier.\n\n#### But I really want to use a format string!\n\nThat's not actually a question.  Assuming your question is \"how do\nI convert my mental model of logging with format strings to logging with\nconstant messages\":\n\n1. Figure out what the error actually is, as you'd write in a TL;DR style,\n   and use that as a message.\n\n2. For every place you'd write a format specifier, look to the word before\n   it, and add that as a key value pair.\n\nFor instance, consider the following examples (all taken from spots in the\nKubernetes codebase):\n\n- `klog.V(4).Infof(\"Client is returning errors: code %v, error %v\",\n  responseCode, err)` becomes `logger.Error(err, \"client returned an\n  error\", \"code\", responseCode)`\n\n- `klog.V(4).Infof(\"Got a Retry-After %ds response for attempt %d to %v\",\n  seconds, retries, url)` becomes `logger.V(4).Info(\"got a retry-after\n  response when requesting url\", \"attempt\", retries, \"after\n  seconds\", seconds, \"url\", url)`\n\nIf you *really* must use a format string, use it in a key's value, and\ncall `fmt.Sprintf` yourself.  For instance: `log.Printf(\"unable to\nreflect over type %T\")` becomes `logger.Info(\"unable to reflect over\ntype\", \"type\", fmt.Sprintf(\"%T\"))`.  In general though, the cases where\nthis is necessary should be few and far between.\n\n#### How do I choose my V-levels?\n\nThis is basically the only hard constraint: increase V-levels to denote\nmore verbose or more debug-y logs.\n\nOtherwise, you can start out with `0` as \"you always want to see this\",\n`1` as \"common logging that you might *possibly* want to turn off\", and\n`10` as \"I would like to performance-test your log collection stack.\"\n\nThen gradually choose levels in between as you need them, working your way\ndown from 10 (for debug and trace style logs) and up from 1 (for chattier\ninfo-type logs). For reference, slog pre-defines -4 for debug logs\n(corresponds to 4 in logr), which matches what is\n[recommended for Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md#what-method-to-use).\n\n#### How do I choose my keys?\n\nKeys are fairly flexible, and can hold more or less any string\nvalue. For best compatibility with implementations and consistency\nwith existing code in other projects, there are a few conventions you\nshould consider.\n\n- Make your keys human-readable.\n- Constant keys are generally a good idea.\n- Be consistent across your codebase.\n- Keys should naturally match parts of the message string.\n- Use lower case for simple keys and\n  [lowerCamelCase](https://en.wiktionary.org/wiki/lowerCamelCase) for\n  more complex ones. Kubernetes is one example of a project that has\n  [adopted that\n  convention](https://github.com/kubernetes/community/blob/HEAD/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments).\n\nWhile key names are mostly unrestricted (and spaces are acceptable),\nit's generally a good idea to stick to printable ascii characters, or at\nleast match the general character set of your log lines.\n\n#### Why should keys be constant values?\n\nThe point of structured logging is to make later log processing easier.  Your\nkeys are, effectively, the schema of each log message.  If you use different\nkeys across instances of the same log line, you will make your structured logs\nmuch harder to use.  `Sprintf()` is for values, not for keys!\n\n#### Why is this not a pure interface?\n\nThe Logger type is implemented as a struct in order to allow the Go compiler to\noptimize things like high-V `Info` logs that are not triggered.  Not all of\nthese implementations are implemented yet, but this structure was suggested as\na way to ensure they *can* be implemented.  All of the real work is behind the\n`LogSink` interface.\n\n[warning-makes-no-sense]: http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/SECURITY.md",
    "content": "# Security Policy\n\nIf you have discovered a security vulnerability in this project, please report it\nprivately. **Do not disclose it as a public issue.** This gives us time to work with you\nto fix the issue before public exposure, reducing the chance that the exploit will be\nused before a patch is released.\n\nYou may submit the report in the following ways:\n\n- send an email to go-logr-security@googlegroups.com\n- send us a [private vulnerability report](https://github.com/go-logr/logr/security/advisories/new)\n\nPlease provide the following information in your report:\n\n- A description of the vulnerability and its impact\n- How to reproduce the issue\n\nWe ask that you give us 90 days to work on a fix before public exposure.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context.go",
    "content": "/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// contextKey is how we find Loggers in a context.Context. With Go < 1.21,\n// the value is always a Logger value. With Go >= 1.21, the value can be a\n// Logger value or a slog.Logger pointer.\ntype contextKey struct{}\n\n// notFoundError exists to carry an IsNotFound method.\ntype notFoundError struct{}\n\nfunc (notFoundError) Error() string {\n\treturn \"no logr.Logger was present\"\n}\n\nfunc (notFoundError) IsNotFound() bool {\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_noslog.go",
    "content": "//go:build !go1.21\n// +build !go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v, nil\n\t}\n\n\treturn Logger{}, notFoundError{}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v\n\t}\n\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log/slog\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn Logger{}, notFoundError{}\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn v, nil\n\tcase *slog.Logger:\n\t\treturn FromSlogHandler(v.Handler()), nil\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextAsSlogLogger returns a slog.Logger from ctx or nil if no such Logger is found.\nfunc FromContextAsSlogLogger(ctx context.Context) *slog.Logger {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn slog.New(ToSlogHandler(v))\n\tcase *slog.Logger:\n\t\treturn v\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif logger, err := FromContext(ctx); err == nil {\n\t\treturn logger\n\t}\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n\n// NewContextWithSlogLogger returns a new Context, derived from ctx, which carries the\n// provided slog.Logger.\nfunc NewContextWithSlogLogger(ctx context.Context, logger *slog.Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/discard.go",
    "content": "/*\nCopyright 2020 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// Discard returns a Logger that discards all messages logged to it.  It can be\n// used whenever the caller is not interested in the logs.  Logger instances\n// produced by this function always compare as equal.\nfunc Discard() Logger {\n\treturn New(nil)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/logr.go",
    "content": "/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This design derives from Dave Cheney's blog:\n//     http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n\n// Package logr defines a general-purpose logging API and abstract interfaces\n// to back that API.  Packages in the Go ecosystem can depend on this package,\n// while callers can implement logging with whatever backend is appropriate.\n//\n// # Usage\n//\n// Logging is done using a Logger instance.  Logger is a concrete type with\n// methods, which defers the actual logging to a LogSink interface.  The main\n// methods of Logger are Info() and Error().  Arguments to Info() and Error()\n// are key/value pairs rather than printf-style formatted strings, emphasizing\n// \"structured logging\".\n//\n// With Go's standard log package, we might write:\n//\n//\tlog.Printf(\"setting target value %s\", targetValue)\n//\n// With logr's structured logging, we'd write:\n//\n//\tlogger.Info(\"setting target\", \"value\", targetValue)\n//\n// Errors are much the same.  Instead of:\n//\n//\tlog.Printf(\"failed to open the pod bay door for user %s: %v\", user, err)\n//\n// We'd write:\n//\n//\tlogger.Error(err, \"failed to open the pod bay door\", \"user\", user)\n//\n// Info() and Error() are very similar, but they are separate methods so that\n// LogSink implementations can choose to do things like attach additional\n// information (such as stack traces) on calls to Error(). Error() messages are\n// always logged, regardless of the current verbosity.  If there is no error\n// instance available, passing nil is valid.\n//\n// # Verbosity\n//\n// Often we want to log information only when the application in \"verbose\n// mode\".  To write log lines that are more verbose, Logger has a V() method.\n// The higher the V-level of a log line, the less critical it is considered.\n// Log-lines with V-levels that are not enabled (as per the LogSink) will not\n// be written.  Level V(0) is the default, and logger.V(0).Info() has the same\n// meaning as logger.Info().  Negative V-levels have the same meaning as V(0).\n// Error messages do not have a verbosity level and are always logged.\n//\n// Where we might have written:\n//\n//\tif flVerbose >= 2 {\n//\t    log.Printf(\"an unusual thing happened\")\n//\t}\n//\n// We can write:\n//\n//\tlogger.V(2).Info(\"an unusual thing happened\")\n//\n// # Logger Names\n//\n// Logger instances can have name strings so that all messages logged through\n// that instance have additional context.  For example, you might want to add\n// a subsystem name:\n//\n//\tlogger.WithName(\"compactor\").Info(\"started\", \"time\", time.Now())\n//\n// The WithName() method returns a new Logger, which can be passed to\n// constructors or other functions for further use.  Repeated use of WithName()\n// will accumulate name \"segments\".  These name segments will be joined in some\n// way by the LogSink implementation.  It is strongly recommended that name\n// segments contain simple identifiers (letters, digits, and hyphen), and do\n// not contain characters that could muddle the log output or confuse the\n// joining operation (e.g. whitespace, commas, periods, slashes, brackets,\n// quotes, etc).\n//\n// # Saved Values\n//\n// Logger instances can store any number of key/value pairs, which will be\n// logged alongside all messages logged through that instance.  For example,\n// you might want to create a Logger instance per managed object:\n//\n// With the standard log package, we might write:\n//\n//\tlog.Printf(\"decided to set field foo to value %q for object %s/%s\",\n//\t    targetValue, object.Namespace, object.Name)\n//\n// With logr we'd write:\n//\n//\t// Elsewhere: set up the logger to log the object name.\n//\tobj.logger = mainLogger.WithValues(\n//\t    \"name\", obj.name, \"namespace\", obj.namespace)\n//\n//\t// later on...\n//\tobj.logger.Info(\"setting foo\", \"value\", targetValue)\n//\n// # Best Practices\n//\n// Logger has very few hard rules, with the goal that LogSink implementations\n// might have a lot of freedom to differentiate.  There are, however, some\n// things to consider.\n//\n// The log message consists of a constant message attached to the log line.\n// This should generally be a simple description of what's occurring, and should\n// never be a format string.  Variable information can then be attached using\n// named values.\n//\n// Keys are arbitrary strings, but should generally be constant values.  Values\n// may be any Go value, but how the value is formatted is determined by the\n// LogSink implementation.\n//\n// Logger instances are meant to be passed around by value. Code that receives\n// such a value can call its methods without having to check whether the\n// instance is ready for use.\n//\n// The zero logger (= Logger{}) is identical to Discard() and discards all log\n// entries. Code that receives a Logger by value can simply call it, the methods\n// will never crash. For cases where passing a logger is optional, a pointer to Logger\n// should be used.\n//\n// # Key Naming Conventions\n//\n// Keys are not strictly required to conform to any specification or regex, but\n// it is recommended that they:\n//   - be human-readable and meaningful (not auto-generated or simple ordinals)\n//   - be constant (not dependent on input data)\n//   - contain only printable characters\n//   - not contain whitespace or punctuation\n//   - use lower case for simple keys and lowerCamelCase for more complex ones\n//\n// These guidelines help ensure that log data is processed properly regardless\n// of the log implementation.  For example, log implementations will try to\n// output JSON data or will store data for later database (e.g. SQL) queries.\n//\n// While users are generally free to use key names of their choice, it's\n// generally best to avoid using the following keys, as they're frequently used\n// by implementations:\n//   - \"caller\": the calling information (file/line) of a particular log line\n//   - \"error\": the underlying error value in the `Error` method\n//   - \"level\": the log level\n//   - \"logger\": the name of the associated logger\n//   - \"msg\": the log message\n//   - \"stacktrace\": the stack trace associated with a particular log line or\n//     error (often from the `Error` message)\n//   - \"ts\": the timestamp for a log line\n//\n// Implementations are encouraged to make use of these keys to represent the\n// above concepts, when necessary (for example, in a pure-JSON output form, it\n// would be necessary to represent at least message and timestamp as ordinary\n// named values).\n//\n// # Break Glass\n//\n// Implementations may choose to give callers access to the underlying\n// logging implementation.  The recommended pattern for this is:\n//\n//\t// Underlier exposes access to the underlying logging implementation.\n//\t// Since callers only have a logr.Logger, they have to know which\n//\t// implementation is in use, so this interface is less of an abstraction\n//\t// and more of way to test type conversion.\n//\ttype Underlier interface {\n//\t    GetUnderlying() <underlying-type>\n//\t}\n//\n// Logger grants access to the sink to enable type assertions like this:\n//\n//\tfunc DoSomethingWithImpl(log logr.Logger) {\n//\t    if underlier, ok := log.GetSink().(impl.Underlier); ok {\n//\t       implLogger := underlier.GetUnderlying()\n//\t       ...\n//\t    }\n//\t}\n//\n// Custom `With*` functions can be implemented by copying the complete\n// Logger struct and replacing the sink in the copy:\n//\n//\t// WithFooBar changes the foobar parameter in the log sink and returns a\n//\t// new logger with that modified sink.  It does nothing for loggers where\n//\t// the sink doesn't support that parameter.\n//\tfunc WithFoobar(log logr.Logger, foobar int) logr.Logger {\n//\t   if foobarLogSink, ok := log.GetSink().(FoobarSink); ok {\n//\t      log = log.WithSink(foobarLogSink.WithFooBar(foobar))\n//\t   }\n//\t   return log\n//\t}\n//\n// Don't use New to construct a new Logger with a LogSink retrieved from an\n// existing Logger. Source code attribution might not work correctly and\n// unexported fields in Logger get lost.\n//\n// Beware that the same LogSink instance may be shared by different logger\n// instances. Calling functions that modify the LogSink will affect all of\n// those.\npackage logr\n\n// New returns a new Logger instance.  This is primarily used by libraries\n// implementing LogSink, rather than end users.  Passing a nil sink will create\n// a Logger which discards all log lines.\nfunc New(sink LogSink) Logger {\n\tlogger := Logger{}\n\tlogger.setSink(sink)\n\tif sink != nil {\n\t\tsink.Init(runtimeInfo)\n\t}\n\treturn logger\n}\n\n// setSink stores the sink and updates any related fields. It mutates the\n// logger and thus is only safe to use for loggers that are not currently being\n// used concurrently.\nfunc (l *Logger) setSink(sink LogSink) {\n\tl.sink = sink\n}\n\n// GetSink returns the stored sink.\nfunc (l Logger) GetSink() LogSink {\n\treturn l.sink\n}\n\n// WithSink returns a copy of the logger with the new sink.\nfunc (l Logger) WithSink(sink LogSink) Logger {\n\tl.setSink(sink)\n\treturn l\n}\n\n// Logger is an interface to an abstract logging implementation.  This is a\n// concrete type for performance reasons, but all the real work is passed on to\n// a LogSink.  Implementations of LogSink should provide their own constructors\n// that return Logger, not LogSink.\n//\n// The underlying sink can be accessed through GetSink and be modified through\n// WithSink. This enables the implementation of custom extensions (see \"Break\n// Glass\" in the package documentation). Normally the sink should be used only\n// indirectly.\ntype Logger struct {\n\tsink  LogSink\n\tlevel int\n}\n\n// Enabled tests whether this Logger is enabled.  For example, commandline\n// flags might be used to set the logging verbosity and disable some info logs.\nfunc (l Logger) Enabled() bool {\n\t// Some implementations of LogSink look at the caller in Enabled (e.g.\n\t// different verbosity levels per package or file), but we only pass one\n\t// CallDepth in (via Init).  This means that all calls from Logger to the\n\t// LogSink's Enabled, Info, and Error methods must have the same number of\n\t// frames.  In other words, Logger methods can't call other Logger methods\n\t// which call these LogSink methods unless we do it the same in all paths.\n\treturn l.sink != nil && l.sink.Enabled(l.level)\n}\n\n// Info logs a non-error message with the given key/value pairs as context.\n//\n// The msg argument should be used to add some constant description to the log\n// line.  The key/value pairs can then be used to add additional variable\n// information.  The key/value pairs must alternate string keys and arbitrary\n// values.\nfunc (l Logger) Info(msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif l.sink.Enabled(l.level) { // see comment in Enabled\n\t\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\t\twithHelper.GetCallStackHelper()()\n\t\t}\n\t\tl.sink.Info(l.level, msg, keysAndValues...)\n\t}\n}\n\n// Error logs an error, with the given message and key/value pairs as context.\n// It functions similarly to Info, but may have unique behavior, and should be\n// preferred for logging errors (see the package documentations for more\n// information). The log message will always be emitted, regardless of\n// verbosity level.\n//\n// The msg argument should be used to add context to any underlying error,\n// while the err argument should be used to attach the actual error that\n// triggered this log line, if present. The err parameter is optional\n// and nil may be passed instead of an error instance.\nfunc (l Logger) Error(err error, msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\twithHelper.GetCallStackHelper()()\n\t}\n\tl.sink.Error(err, msg, keysAndValues...)\n}\n\n// V returns a new Logger instance for a specific verbosity level, relative to\n// this Logger.  In other words, V-levels are additive.  A higher verbosity\n// level means a log message is less important.  Negative V-levels are treated\n// as 0.\nfunc (l Logger) V(level int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif level < 0 {\n\t\tlevel = 0\n\t}\n\tl.level += level\n\treturn l\n}\n\n// GetV returns the verbosity level of the logger. If the logger's LogSink is\n// nil as in the Discard logger, this will always return 0.\nfunc (l Logger) GetV() int {\n\t// 0 if l.sink nil because of the if check in V above.\n\treturn l.level\n}\n\n// WithValues returns a new Logger instance with additional key/value pairs.\n// See Info for documentation on how key/value pairs work.\nfunc (l Logger) WithValues(keysAndValues ...any) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithValues(keysAndValues...))\n\treturn l\n}\n\n// WithName returns a new Logger instance with the specified name element added\n// to the Logger's name.  Successive calls with WithName append additional\n// suffixes to the Logger's name.  It's strongly recommended that name segments\n// contain only letters, digits, and hyphens (see the package documentation for\n// more information).\nfunc (l Logger) WithName(name string) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithName(name))\n\treturn l\n}\n\n// WithCallDepth returns a Logger instance that offsets the call stack by the\n// specified number of frames when logging call site information, if possible.\n// This is useful for users who have helper functions between the \"real\" call\n// site and the actual calls to Logger methods.  If depth is 0 the attribution\n// should be to the direct caller of this function.  If depth is 1 the\n// attribution should skip 1 call frame, and so on.  Successive calls to this\n// are additive.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// it will be called and the result returned.  If the implementation does not\n// support CallDepthLogSink, the original Logger will be returned.\n//\n// To skip one level, WithCallStackHelper() should be used instead of\n// WithCallDepth(1) because it works with implementions that support the\n// CallDepthLogSink and/or CallStackHelperLogSink interfaces.\nfunc (l Logger) WithCallDepth(depth int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(depth))\n\t}\n\treturn l\n}\n\n// WithCallStackHelper returns a new Logger instance that skips the direct\n// caller when logging call site information, if possible.  This is useful for\n// users who have helper functions between the \"real\" call site and the actual\n// calls to Logger methods and want to support loggers which depend on marking\n// each individual helper function, like loggers based on testing.T.\n//\n// In addition to using that new logger instance, callers also must call the\n// returned function.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// WithCallDepth(1) will be called to produce a new logger. If it supports a\n// WithCallStackHelper() method, that will be also called. If the\n// implementation does not support either of these, the original Logger will be\n// returned.\nfunc (l Logger) WithCallStackHelper() (func(), Logger) {\n\tif l.sink == nil {\n\t\treturn func() {}, l\n\t}\n\tvar helper func()\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(1))\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\thelper = withHelper.GetCallStackHelper()\n\t} else {\n\t\thelper = func() {}\n\t}\n\treturn helper, l\n}\n\n// IsZero returns true if this logger is an uninitialized zero value\nfunc (l Logger) IsZero() bool {\n\treturn l.sink == nil\n}\n\n// RuntimeInfo holds information that the logr \"core\" library knows which\n// LogSinks might want to know.\ntype RuntimeInfo struct {\n\t// CallDepth is the number of call frames the logr library adds between the\n\t// end-user and the LogSink.  LogSink implementations which choose to print\n\t// the original logging site (e.g. file & line) should climb this many\n\t// additional frames to find it.\n\tCallDepth int\n}\n\n// runtimeInfo is a static global.  It must not be changed at run time.\nvar runtimeInfo = RuntimeInfo{\n\tCallDepth: 1,\n}\n\n// LogSink represents a logging implementation.  End-users will generally not\n// interact with this type.\ntype LogSink interface {\n\t// Init receives optional information about the logr library for LogSink\n\t// implementations that need it.\n\tInit(info RuntimeInfo)\n\n\t// Enabled tests whether this LogSink is enabled at the specified V-level.\n\t// For example, commandline flags might be used to set the logging\n\t// verbosity and disable some info logs.\n\tEnabled(level int) bool\n\n\t// Info logs a non-error message with the given key/value pairs as context.\n\t// The level argument is provided for optional logging.  This method will\n\t// only be called when Enabled(level) is true. See Logger.Info for more\n\t// details.\n\tInfo(level int, msg string, keysAndValues ...any)\n\n\t// Error logs an error, with the given message and key/value pairs as\n\t// context.  See Logger.Error for more details.\n\tError(err error, msg string, keysAndValues ...any)\n\n\t// WithValues returns a new LogSink with additional key/value pairs.  See\n\t// Logger.WithValues for more details.\n\tWithValues(keysAndValues ...any) LogSink\n\n\t// WithName returns a new LogSink with the specified name appended.  See\n\t// Logger.WithName for more details.\n\tWithName(name string) LogSink\n}\n\n// CallDepthLogSink represents a LogSink that knows how to climb the call stack\n// to identify the original call site and can offset the depth by a specified\n// number of frames.  This is useful for users who have helper functions\n// between the \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as file,\n// function, or line) would otherwise log information about the intermediate\n// helper functions.\n//\n// This is an optional interface and implementations are not required to\n// support it.\ntype CallDepthLogSink interface {\n\t// WithCallDepth returns a LogSink that will offset the call\n\t// stack by the specified number of frames when logging call\n\t// site information.\n\t//\n\t// If depth is 0, the LogSink should skip exactly the number\n\t// of call frames defined in RuntimeInfo.CallDepth when Info\n\t// or Error are called, i.e. the attribution should be to the\n\t// direct caller of Logger.Info or Logger.Error.\n\t//\n\t// If depth is 1 the attribution should skip 1 call frame, and so on.\n\t// Successive calls to this are additive.\n\tWithCallDepth(depth int) LogSink\n}\n\n// CallStackHelperLogSink represents a LogSink that knows how to climb\n// the call stack to identify the original call site and can skip\n// intermediate helper functions if they mark themselves as\n// helper. Go's testing package uses that approach.\n//\n// This is useful for users who have helper functions between the\n// \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as\n// file, function, or line) would otherwise log information about the\n// intermediate helper functions.\n//\n// This is an optional interface and implementations are not required\n// to support it. Implementations that choose to support this must not\n// simply implement it as WithCallDepth(1), because\n// Logger.WithCallStackHelper will call both methods if they are\n// present. This should only be implemented for LogSinks that actually\n// need it, as with testing.T.\ntype CallStackHelperLogSink interface {\n\t// GetCallStackHelper returns a function that must be called\n\t// to mark the direct caller as helper function when logging\n\t// call site information.\n\tGetCallStackHelper() func()\n}\n\n// Marshaler is an optional interface that logged values may choose to\n// implement. Loggers with structured output, such as JSON, should\n// log the object return by the MarshalLog method instead of the\n// original value.\ntype Marshaler interface {\n\t// MarshalLog can be used to:\n\t//   - ensure that structs are not logged as strings when the original\n\t//     value has a String method: return a different type without a\n\t//     String method\n\t//   - select which fields of a complex type should get logged:\n\t//     return a simpler struct with fewer fields\n\t//   - log unexported fields: return a different struct\n\t//     with exported fields\n\t//\n\t// It may return any value of any type.\n\tMarshalLog() any\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/sloghandler.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\ntype slogHandler struct {\n\t// May be nil, in which case all logs get discarded.\n\tsink LogSink\n\t// Non-nil if sink is non-nil and implements SlogSink.\n\tslogSink SlogSink\n\n\t// groupPrefix collects values from WithGroup calls. It gets added as\n\t// prefix to value keys when handling a log record.\n\tgroupPrefix string\n\n\t// levelBias can be set when constructing the handler to influence the\n\t// slog.Level of log records. A positive levelBias reduces the\n\t// slog.Level value. slog has no API to influence this value after the\n\t// handler got created, so it can only be set indirectly through\n\t// Logger.V.\n\tlevelBias slog.Level\n}\n\nvar _ slog.Handler = &slogHandler{}\n\n// groupSeparator is used to concatenate WithGroup names and attribute keys.\nconst groupSeparator = \".\"\n\n// GetLevel is used for black box unit testing.\nfunc (l *slogHandler) GetLevel() slog.Level {\n\treturn l.levelBias\n}\n\nfunc (l *slogHandler) Enabled(_ context.Context, level slog.Level) bool {\n\treturn l.sink != nil && (level >= slog.LevelError || l.sink.Enabled(l.levelFromSlog(level)))\n}\n\nfunc (l *slogHandler) Handle(ctx context.Context, record slog.Record) error {\n\tif l.slogSink != nil {\n\t\t// Only adjust verbosity level of log entries < slog.LevelError.\n\t\tif record.Level < slog.LevelError {\n\t\t\trecord.Level -= l.levelBias\n\t\t}\n\t\treturn l.slogSink.Handle(ctx, record)\n\t}\n\n\t// No need to check for nil sink here because Handle will only be called\n\t// when Enabled returned true.\n\n\tkvList := make([]any, 0, 2*record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\treturn true\n\t})\n\tif record.Level >= slog.LevelError {\n\t\tl.sinkWithCallDepth().Error(nil, record.Message, kvList...)\n\t} else {\n\t\tlevel := l.levelFromSlog(record.Level)\n\t\tl.sinkWithCallDepth().Info(level, record.Message, kvList...)\n\t}\n\treturn nil\n}\n\n// sinkWithCallDepth adjusts the stack unwinding so that when Error or Info\n// are called by Handle, code in slog gets skipped.\n//\n// This offset currently (Go 1.21.0) works for calls through\n// slog.New(ToSlogHandler(...)).  There's no guarantee that the call\n// chain won't change. Wrapping the handler will also break unwinding. It's\n// still better than not adjusting at all....\n//\n// This cannot be done when constructing the handler because FromSlogHandler needs\n// access to the original sink without this adjustment. A second copy would\n// work, but then WithAttrs would have to be called for both of them.\nfunc (l *slogHandler) sinkWithCallDepth() LogSink {\n\tif sink, ok := l.sink.(CallDepthLogSink); ok {\n\t\treturn sink.WithCallDepth(2)\n\t}\n\treturn l.sink\n}\n\nfunc (l *slogHandler) WithAttrs(attrs []slog.Attr) slog.Handler {\n\tif l.sink == nil || len(attrs) == 0 {\n\t\treturn l\n\t}\n\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithAttrs(attrs)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tkvList := make([]any, 0, 2*len(attrs))\n\t\tfor _, attr := range attrs {\n\t\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\t}\n\t\tclone.sink = l.sink.WithValues(kvList...)\n\t}\n\treturn &clone\n}\n\nfunc (l *slogHandler) WithGroup(name string) slog.Handler {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif name == \"\" {\n\t\t// slog says to inline empty groups\n\t\treturn l\n\t}\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithGroup(name)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tclone.groupPrefix = addPrefix(clone.groupPrefix, name)\n\t}\n\treturn &clone\n}\n\n// attrToKVs appends a slog.Attr to a logr-style kvList.  It handle slog Groups\n// and other details of slog.\nfunc attrToKVs(attr slog.Attr, groupPrefix string, kvList []any) []any {\n\tattrVal := attr.Value.Resolve()\n\tif attrVal.Kind() == slog.KindGroup {\n\t\tgroupVal := attrVal.Group()\n\t\tgrpKVs := make([]any, 0, 2*len(groupVal))\n\t\tprefix := groupPrefix\n\t\tif attr.Key != \"\" {\n\t\t\tprefix = addPrefix(groupPrefix, attr.Key)\n\t\t}\n\t\tfor _, attr := range groupVal {\n\t\t\tgrpKVs = attrToKVs(attr, prefix, grpKVs)\n\t\t}\n\t\tkvList = append(kvList, grpKVs...)\n\t} else if attr.Key != \"\" {\n\t\tkvList = append(kvList, addPrefix(groupPrefix, attr.Key), attrVal.Any())\n\t}\n\n\treturn kvList\n}\n\nfunc addPrefix(prefix, name string) string {\n\tif prefix == \"\" {\n\t\treturn name\n\t}\n\tif name == \"\" {\n\t\treturn prefix\n\t}\n\treturn prefix + groupSeparator + name\n}\n\n// levelFromSlog adjusts the level by the logger's verbosity and negates it.\n// It ensures that the result is >= 0. This is necessary because the result is\n// passed to a LogSink and that API did not historically document whether\n// levels could be negative or what that meant.\n//\n// Some example usage:\n//\n//\tlogrV0 := getMyLogger()\n//\tlogrV2 := logrV0.V(2)\n//\tslogV2 := slog.New(logr.ToSlogHandler(logrV2))\n//\tslogV2.Debug(\"msg\") // =~ logrV2.V(4) =~ logrV0.V(6)\n//\tslogV2.Info(\"msg\")  // =~  logrV2.V(0) =~ logrV0.V(2)\n//\tslogv2.Warn(\"msg\")  // =~ logrV2.V(-4) =~ logrV0.V(0)\nfunc (l *slogHandler) levelFromSlog(level slog.Level) int {\n\tresult := -level\n\tresult += l.levelBias // in case the original Logger had a V level\n\tif result < 0 {\n\t\tresult = 0 // because LogSink doesn't expect negative V levels\n\t}\n\treturn int(result)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogr.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\n// FromSlogHandler returns a Logger which writes to the slog.Handler.\n//\n// The logr verbosity level is mapped to slog levels such that V(0) becomes\n// slog.LevelInfo and V(4) becomes slog.LevelDebug.\nfunc FromSlogHandler(handler slog.Handler) Logger {\n\tif handler, ok := handler.(*slogHandler); ok {\n\t\tif handler.sink == nil {\n\t\t\treturn Discard()\n\t\t}\n\t\treturn New(handler.sink).V(int(handler.levelBias))\n\t}\n\treturn New(&slogSink{handler: handler})\n}\n\n// ToSlogHandler returns a slog.Handler which writes to the same sink as the Logger.\n//\n// The returned logger writes all records with level >= slog.LevelError as\n// error log entries with LogSink.Error, regardless of the verbosity level of\n// the Logger:\n//\n//\tlogger := <some Logger with 0 as verbosity level>\n//\tslog.New(ToSlogHandler(logger.V(10))).Error(...) -> logSink.Error(...)\n//\n// The level of all other records gets reduced by the verbosity\n// level of the Logger and the result is negated. If it happens\n// to be negative, then it gets replaced by zero because a LogSink\n// is not expected to handled negative levels:\n//\n//\tslog.New(ToSlogHandler(logger)).Debug(...) -> logger.GetSink().Info(level=4, ...)\n//\tslog.New(ToSlogHandler(logger)).Warning(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger)).Info(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger.V(4))).Info(...) -> logger.GetSink().Info(level=4, ...)\nfunc ToSlogHandler(logger Logger) slog.Handler {\n\tif sink, ok := logger.GetSink().(*slogSink); ok && logger.GetV() == 0 {\n\t\treturn sink.handler\n\t}\n\n\thandler := &slogHandler{sink: logger.GetSink(), levelBias: slog.Level(logger.GetV())}\n\tif slogSink, ok := handler.sink.(SlogSink); ok {\n\t\thandler.slogSink = slogSink\n\t}\n\treturn handler\n}\n\n// SlogSink is an optional interface that a LogSink can implement to support\n// logging through the slog.Logger or slog.Handler APIs better. It then should\n// also support special slog values like slog.Group. When used as a\n// slog.Handler, the advantages are:\n//\n//   - stack unwinding gets avoided in favor of logging the pre-recorded PC,\n//     as intended by slog\n//   - proper grouping of key/value pairs via WithGroup\n//   - verbosity levels > slog.LevelInfo can be recorded\n//   - less overhead\n//\n// Both APIs (Logger and slog.Logger/Handler) then are supported equally\n// well. Developers can pick whatever API suits them better and/or mix\n// packages which use either API in the same binary with a common logging\n// implementation.\n//\n// This interface is necessary because the type implementing the LogSink\n// interface cannot also implement the slog.Handler interface due to the\n// different prototype of the common Enabled method.\n//\n// An implementation could support both interfaces in two different types, but then\n// additional interfaces would be needed to convert between those types in FromSlogHandler\n// and ToSlogHandler.\ntype SlogSink interface {\n\tLogSink\n\n\tHandle(ctx context.Context, record slog.Record) error\n\tWithAttrs(attrs []slog.Attr) SlogSink\n\tWithGroup(name string) SlogSink\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogsink.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\t\"runtime\"\n\t\"time\"\n)\n\nvar (\n\t_ LogSink          = &slogSink{}\n\t_ CallDepthLogSink = &slogSink{}\n\t_ Underlier        = &slogSink{}\n)\n\n// Underlier is implemented by the LogSink returned by NewFromLogHandler.\ntype Underlier interface {\n\t// GetUnderlying returns the Handler used by the LogSink.\n\tGetUnderlying() slog.Handler\n}\n\nconst (\n\t// nameKey is used to log the `WithName` values as an additional attribute.\n\tnameKey = \"logger\"\n\n\t// errKey is used to log the error parameter of Error as an additional attribute.\n\terrKey = \"err\"\n)\n\ntype slogSink struct {\n\tcallDepth int\n\tname      string\n\thandler   slog.Handler\n}\n\nfunc (l *slogSink) Init(info RuntimeInfo) {\n\tl.callDepth = info.CallDepth\n}\n\nfunc (l *slogSink) GetUnderlying() slog.Handler {\n\treturn l.handler\n}\n\nfunc (l *slogSink) WithCallDepth(depth int) LogSink {\n\tnewLogger := *l\n\tnewLogger.callDepth += depth\n\treturn &newLogger\n}\n\nfunc (l *slogSink) Enabled(level int) bool {\n\treturn l.handler.Enabled(context.Background(), slog.Level(-level))\n}\n\nfunc (l *slogSink) Info(level int, msg string, kvList ...interface{}) {\n\tl.log(nil, msg, slog.Level(-level), kvList...)\n}\n\nfunc (l *slogSink) Error(err error, msg string, kvList ...interface{}) {\n\tl.log(err, msg, slog.LevelError, kvList...)\n}\n\nfunc (l *slogSink) log(err error, msg string, level slog.Level, kvList ...interface{}) {\n\tvar pcs [1]uintptr\n\t// skip runtime.Callers, this function, Info/Error, and all helper functions above that.\n\truntime.Callers(3+l.callDepth, pcs[:])\n\n\trecord := slog.NewRecord(time.Now(), level, msg, pcs[0])\n\tif l.name != \"\" {\n\t\trecord.AddAttrs(slog.String(nameKey, l.name))\n\t}\n\tif err != nil {\n\t\trecord.AddAttrs(slog.Any(errKey, err))\n\t}\n\trecord.Add(kvList...)\n\t_ = l.handler.Handle(context.Background(), record)\n}\n\nfunc (l slogSink) WithName(name string) LogSink {\n\tif l.name != \"\" {\n\t\tl.name += \"/\"\n\t}\n\tl.name += name\n\treturn &l\n}\n\nfunc (l slogSink) WithValues(kvList ...interface{}) LogSink {\n\tl.handler = l.handler.WithAttrs(kvListToAttrs(kvList...))\n\treturn &l\n}\n\nfunc kvListToAttrs(kvList ...interface{}) []slog.Attr {\n\t// We don't need the record itself, only its Add method.\n\trecord := slog.NewRecord(time.Time{}, 0, \"\", 0)\n\trecord.Add(kvList...)\n\tattrs := make([]slog.Attr, 0, record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tattrs = append(attrs, attr)\n\t\treturn true\n\t})\n\treturn attrs\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.editorconfig",
    "content": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 2\ntrim_trailing_whitespace = true\n\n# Set default charset\n[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]\ncharset = utf-8\n\n# Tab indentation (no size specified)\n[*.go]\nindent_style = tab\n\n[*.md]\ntrim_trailing_whitespace = false\n\n# Matches the exact files either package.json or .travis.yml\n[{package.json,.travis.yml}]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/README.md",
    "content": "# gojsonpointer [![Build Status](https://travis-ci.org/go-openapi/jsonpointer.svg?branch=master)](https://travis-ci.org/go-openapi/jsonpointer) [![codecov](https://codecov.io/gh/go-openapi/jsonpointer/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonpointer) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonpointer/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/jsonpointer?status.svg)](http://godoc.org/github.com/go-openapi/jsonpointer)\nAn implementation of JSON Pointer - Go language\n\n## Status\nCompleted YES\n\nTested YES\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\n### Note\nThe 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array, the reference token MUST contain either...' is not implemented.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/pointer.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonpointer\n// repository-desc  An implementation of JSON Pointer - Go language\n//\n// description    Main and unique file.\n//\n// created        25-02-2013\n\npackage jsonpointer\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\temptyPointer     = ``\n\tpointerSeparator = `/`\n\n\tinvalidStart = `JSON pointer must be empty or start with a \"` + pointerSeparator\n)\n\nvar jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()\nvar jsonSetableType = reflect.TypeOf(new(JSONSetable)).Elem()\n\n// JSONPointable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONPointable interface {\n\tJSONLookup(string) (interface{}, error)\n}\n\n// JSONSetable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONSetable interface {\n\tJSONSet(string, interface{}) error\n}\n\n// New creates a new json pointer for the given string\nfunc New(jsonPointerString string) (Pointer, error) {\n\n\tvar p Pointer\n\terr := p.parse(jsonPointerString)\n\treturn p, err\n\n}\n\n// Pointer the json pointer reprsentation\ntype Pointer struct {\n\treferenceTokens []string\n}\n\n// \"Constructor\", parses the given string JSON pointer\nfunc (p *Pointer) parse(jsonPointerString string) error {\n\n\tvar err error\n\n\tif jsonPointerString != emptyPointer {\n\t\tif !strings.HasPrefix(jsonPointerString, pointerSeparator) {\n\t\t\terr = errors.New(invalidStart)\n\t\t} else {\n\t\t\treferenceTokens := strings.Split(jsonPointerString, pointerSeparator)\n\t\t\tfor _, referenceToken := range referenceTokens[1:] {\n\t\t\t\tp.referenceTokens = append(p.referenceTokens, referenceToken)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn err\n}\n\n// Get uses the pointer to retrieve a value from a JSON document\nfunc (p *Pointer) Get(document interface{}) (interface{}, reflect.Kind, error) {\n\treturn p.get(document, swag.DefaultJSONNameProvider)\n}\n\n// Set uses the pointer to set a value from a JSON document\nfunc (p *Pointer) Set(document interface{}, value interface{}) (interface{}, error) {\n\treturn document, p.set(document, value, swag.DefaultJSONNameProvider)\n}\n\n// GetForToken gets a value for a json pointer token 1 level deep\nfunc GetForToken(document interface{}, decodedToken string) (interface{}, reflect.Kind, error) {\n\treturn getSingleImpl(document, decodedToken, swag.DefaultJSONNameProvider)\n}\n\n// SetForToken gets a value for a json pointer token 1 level deep\nfunc SetForToken(document interface{}, decodedToken string, value interface{}) (interface{}, error) {\n\treturn document, setSingleImpl(document, value, decodedToken, swag.DefaultJSONNameProvider)\n}\n\nfunc getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.NameProvider) (interface{}, reflect.Kind, error) {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\tkind := rValue.Kind()\n\n\tif rValue.Type().Implements(jsonPointableType) {\n\t\tr, err := node.(JSONPointable).JSONLookup(decodedToken)\n\t\tif err != nil {\n\t\t\treturn nil, kind, err\n\t\t}\n\t\treturn r, kind, nil\n\t}\n\n\tswitch kind {\n\tcase reflect.Struct:\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn nil, kind, fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\treturn fld.Interface(), kind, nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\tmv := rValue.MapIndex(kv)\n\n\t\tif mv.IsValid() {\n\t\t\treturn mv.Interface(), kind, nil\n\t\t}\n\t\treturn nil, kind, fmt.Errorf(\"object has no key %q\", decodedToken)\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn nil, kind, err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn nil, kind, fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength-1, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\treturn elem.Interface(), kind, nil\n\n\tdefault:\n\t\treturn nil, kind, fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc setSingleImpl(node, data interface{}, decodedToken string, nameProvider *swag.NameProvider) error {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\n\tif ns, ok := node.(JSONSetable); ok { // pointer impl\n\t\treturn ns.JSONSet(decodedToken, data)\n\t}\n\n\tif rValue.Type().Implements(jsonSetableType) {\n\t\treturn node.(JSONSetable).JSONSet(decodedToken, data)\n\t}\n\n\tswitch rValue.Kind() {\n\tcase reflect.Struct:\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\tif fld.IsValid() {\n\t\t\tfld.Set(reflect.ValueOf(data))\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\trValue.SetMapIndex(kv, reflect.ValueOf(data))\n\t\treturn nil\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\tif !elem.CanSet() {\n\t\t\treturn fmt.Errorf(\"can't set slice index %s to %v\", decodedToken, data)\n\t\t}\n\t\telem.Set(reflect.ValueOf(data))\n\t\treturn nil\n\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc (p *Pointer) get(node interface{}, nameProvider *swag.NameProvider) (interface{}, reflect.Kind, error) {\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\tkind := reflect.Invalid\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn node, kind, nil\n\t}\n\n\tfor _, token := range p.referenceTokens {\n\n\t\tdecodedToken := Unescape(token)\n\n\t\tr, knd, err := getSingleImpl(node, decodedToken, nameProvider)\n\t\tif err != nil {\n\t\t\treturn nil, knd, err\n\t\t}\n\t\tnode, kind = r, knd\n\n\t}\n\n\trValue := reflect.ValueOf(node)\n\tkind = rValue.Kind()\n\n\treturn node, kind, nil\n}\n\nfunc (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) error {\n\tknd := reflect.ValueOf(node).Kind()\n\n\tif knd != reflect.Ptr && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {\n\t\treturn fmt.Errorf(\"only structs, pointers, maps and slices are supported for setting values\")\n\t}\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn nil\n\t}\n\n\tlastI := len(p.referenceTokens) - 1\n\tfor i, token := range p.referenceTokens {\n\t\tisLastToken := i == lastI\n\t\tdecodedToken := Unescape(token)\n\n\t\tif isLastToken {\n\n\t\t\treturn setSingleImpl(node, data, decodedToken, nameProvider)\n\t\t}\n\n\t\trValue := reflect.Indirect(reflect.ValueOf(node))\n\t\tkind := rValue.Kind()\n\n\t\tif rValue.Type().Implements(jsonPointableType) {\n\t\t\tr, err := node.(JSONPointable).JSONLookup(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfld := reflect.ValueOf(r)\n\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = r\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch kind {\n\t\tcase reflect.Struct:\n\t\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t\t}\n\t\t\tfld := rValue.FieldByName(nm)\n\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = fld.Interface()\n\n\t\tcase reflect.Map:\n\t\t\tkv := reflect.ValueOf(decodedToken)\n\t\t\tmv := rValue.MapIndex(kv)\n\n\t\t\tif !mv.IsValid() {\n\t\t\t\treturn fmt.Errorf(\"object has no key %q\", decodedToken)\n\t\t\t}\n\t\t\tif mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Ptr {\n\t\t\t\tnode = mv.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = mv.Interface()\n\n\t\tcase reflect.Slice:\n\t\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tsLength := rValue.Len()\n\t\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t\t}\n\n\t\t\telem := rValue.Index(tokenIndex)\n\t\t\tif elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Ptr {\n\t\t\t\tnode = elem.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = elem.Interface()\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t\t}\n\n\t}\n\n\treturn nil\n}\n\n// DecodedTokens returns the decoded tokens\nfunc (p *Pointer) DecodedTokens() []string {\n\tresult := make([]string, 0, len(p.referenceTokens))\n\tfor _, t := range p.referenceTokens {\n\t\tresult = append(result, Unescape(t))\n\t}\n\treturn result\n}\n\n// IsEmpty returns true if this is an empty json pointer\n// this indicates that it points to the root document\nfunc (p *Pointer) IsEmpty() bool {\n\treturn len(p.referenceTokens) == 0\n}\n\n// Pointer to string representation function\nfunc (p *Pointer) String() string {\n\n\tif len(p.referenceTokens) == 0 {\n\t\treturn emptyPointer\n\t}\n\n\tpointerString := pointerSeparator + strings.Join(p.referenceTokens, pointerSeparator)\n\n\treturn pointerString\n}\n\n// Specific JSON pointer encoding here\n// ~0 => ~\n// ~1 => /\n// ... and vice versa\n\nconst (\n\tencRefTok0 = `~0`\n\tencRefTok1 = `~1`\n\tdecRefTok0 = `~`\n\tdecRefTok1 = `/`\n)\n\n// Unescape unescapes a json pointer reference token string to the original representation\nfunc Unescape(token string) string {\n\tstep1 := strings.Replace(token, encRefTok1, decRefTok1, -1)\n\tstep2 := strings.Replace(step1, encRefTok0, decRefTok0, -1)\n\treturn step2\n}\n\n// Escape escapes a pointer reference token string\nfunc Escape(token string) string {\n\tstep1 := strings.Replace(token, decRefTok0, encRefTok0, -1)\n\tstep2 := strings.Replace(step1, decRefTok1, encRefTok1, -1)\n\treturn step2\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.golangci.yml",
    "content": "linters-settings:\n  govet:\n    check-shadowing: true\n  gocyclo:\n    min-complexity: 30\n  maligned:\n    suggest-new: true\n  dupl:\n    threshold: 100\n  goconst:\n    min-len: 2\n    min-occurrences: 4\n  paralleltest:\n    ignore-missing: true\nlinters:\n  enable-all: true\n  disable:\n    - maligned\n    - lll\n    - gochecknoglobals\n    - godox\n    - gocognit\n    - whitespace\n    - wsl\n    - funlen\n    - gochecknoglobals\n    - gochecknoinits\n    - scopelint\n    - wrapcheck\n    - exhaustivestruct\n    - exhaustive\n    - nlreturn\n    - testpackage\n    - gci\n    - gofumpt\n    - goerr113\n    - gomnd\n    - tparallel\n    - nestif\n    - godot\n    - errorlint\n    - varcheck\n    - interfacer\n    - deadcode\n    - golint\n    - ifshort\n    - structcheck\n    - nosnakecase\n    - varnamelen\n    - exhaustruct\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/README.md",
    "content": "# gojsonreference [![Build Status](https://travis-ci.org/go-openapi/jsonreference.svg?branch=master)](https://travis-ci.org/go-openapi/jsonreference) [![codecov](https://codecov.io/gh/go-openapi/jsonreference/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonreference) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonreference/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/jsonreference?status.svg)](http://godoc.org/github.com/go-openapi/jsonreference)\nAn implementation of JSON Reference - Go language\n\n## Status\nFeature complete. Stable API\n\n## Dependencies\nhttps://github.com/go-openapi/jsonpointer\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\nhttp://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go",
    "content": "package internal\n\nimport (\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nconst (\n\tdefaultHTTPPort  = \":80\"\n\tdefaultHTTPSPort = \":443\"\n)\n\n// Regular expressions used by the normalizations\nvar rxPort = regexp.MustCompile(`(:\\d+)/?$`)\nvar rxDupSlashes = regexp.MustCompile(`/{2,}`)\n\n// NormalizeURL will normalize the specified URL\n// This was added to replace a previous call to the no longer maintained purell library:\n// The call that was used looked like the following:\n//\n//\turl.Parse(purell.NormalizeURL(parsed, purell.FlagsSafe|purell.FlagRemoveDuplicateSlashes))\n//\n// To explain all that was included in the call above, purell.FlagsSafe was really just the following:\n//   - FlagLowercaseScheme\n//   - FlagLowercaseHost\n//   - FlagRemoveDefaultPort\n//   - FlagRemoveDuplicateSlashes (and this was mixed in with the |)\nfunc NormalizeURL(u *url.URL) {\n\tlowercaseScheme(u)\n\tlowercaseHost(u)\n\tremoveDefaultPort(u)\n\tremoveDuplicateSlashes(u)\n}\n\nfunc lowercaseScheme(u *url.URL) {\n\tif len(u.Scheme) > 0 {\n\t\tu.Scheme = strings.ToLower(u.Scheme)\n\t}\n}\n\nfunc lowercaseHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tu.Host = strings.ToLower(u.Host)\n\t}\n}\n\nfunc removeDefaultPort(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tscheme := strings.ToLower(u.Scheme)\n\t\tu.Host = rxPort.ReplaceAllStringFunc(u.Host, func(val string) string {\n\t\t\tif (scheme == \"http\" && val == defaultHTTPPort) || (scheme == \"https\" && val == defaultHTTPSPort) {\n\t\t\t\treturn \"\"\n\t\t\t}\n\t\t\treturn val\n\t\t})\n\t}\n}\n\nfunc removeDuplicateSlashes(u *url.URL) {\n\tif len(u.Path) > 0 {\n\t\tu.Path = rxDupSlashes.ReplaceAllString(u.Path, \"/\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/reference.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonreference\n// repository-desc  An implementation of JSON Reference - Go language\n//\n// description    Main and unique file.\n//\n// created        26-02-2013\n\npackage jsonreference\n\nimport (\n\t\"errors\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/jsonreference/internal\"\n)\n\nconst (\n\tfragmentRune = `#`\n)\n\n// New creates a new reference for the given string\nfunc New(jsonReferenceString string) (Ref, error) {\n\n\tvar r Ref\n\terr := r.parse(jsonReferenceString)\n\treturn r, err\n\n}\n\n// MustCreateRef parses the ref string and panics when it's invalid.\n// Use the New method for a version that returns an error\nfunc MustCreateRef(ref string) Ref {\n\tr, err := New(ref)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn r\n}\n\n// Ref represents a json reference object\ntype Ref struct {\n\treferenceURL     *url.URL\n\treferencePointer jsonpointer.Pointer\n\n\tHasFullURL      bool\n\tHasURLPathOnly  bool\n\tHasFragmentOnly bool\n\tHasFileScheme   bool\n\tHasFullFilePath bool\n}\n\n// GetURL gets the URL for this reference\nfunc (r *Ref) GetURL() *url.URL {\n\treturn r.referenceURL\n}\n\n// GetPointer gets the json pointer for this reference\nfunc (r *Ref) GetPointer() *jsonpointer.Pointer {\n\treturn &r.referencePointer\n}\n\n// String returns the best version of the url for this reference\nfunc (r *Ref) String() string {\n\n\tif r.referenceURL != nil {\n\t\treturn r.referenceURL.String()\n\t}\n\n\tif r.HasFragmentOnly {\n\t\treturn fragmentRune + r.referencePointer.String()\n\t}\n\n\treturn r.referencePointer.String()\n}\n\n// IsRoot returns true if this reference is a root document\nfunc (r *Ref) IsRoot() bool {\n\treturn r.referenceURL != nil &&\n\t\t!r.IsCanonical() &&\n\t\t!r.HasURLPathOnly &&\n\t\tr.referenceURL.Fragment == \"\"\n}\n\n// IsCanonical returns true when this pointer starts with http(s):// or file://\nfunc (r *Ref) IsCanonical() bool {\n\treturn (r.HasFileScheme && r.HasFullFilePath) || (!r.HasFileScheme && r.HasFullURL)\n}\n\n// \"Constructor\", parses the given string JSON reference\nfunc (r *Ref) parse(jsonReferenceString string) error {\n\n\tparsed, err := url.Parse(jsonReferenceString)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tinternal.NormalizeURL(parsed)\n\n\tr.referenceURL = parsed\n\trefURL := r.referenceURL\n\n\tif refURL.Scheme != \"\" && refURL.Host != \"\" {\n\t\tr.HasFullURL = true\n\t} else {\n\t\tif refURL.Path != \"\" {\n\t\t\tr.HasURLPathOnly = true\n\t\t} else if refURL.RawQuery == \"\" && refURL.Fragment != \"\" {\n\t\t\tr.HasFragmentOnly = true\n\t\t}\n\t}\n\n\tr.HasFileScheme = refURL.Scheme == \"file\"\n\tr.HasFullFilePath = strings.HasPrefix(refURL.Path, \"/\")\n\n\t// invalid json-pointer error means url has no json-pointer fragment. simply ignore error\n\tr.referencePointer, _ = jsonpointer.New(refURL.Fragment)\n\n\treturn nil\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tchildURL := child.GetURL()\n\tparentURL := r.GetURL()\n\tif childURL == nil {\n\t\treturn nil, errors.New(\"child url is nil\")\n\t}\n\tif parentURL == nil {\n\t\treturn &child, nil\n\t}\n\n\tref, err := New(parentURL.ResolveReference(childURL).String())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ref, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/AUTHORS",
    "content": "# This is the official list of GoGo authors for copyright purposes.\n# This file is distinct from the CONTRIBUTORS file, which\n# lists people.  For example, employees are listed in CONTRIBUTORS,\n# but not in AUTHORS, because the employer holds the copyright.\n\n# Names should be added to this file as one of\n#     Organization's name\n#     Individual's name <submission email address>\n#     Individual's name <submission email address> <email2> <emailN>\n\n# Please keep the list sorted.\n\nSendgrid, Inc\nVastech SA (PTY) LTD\nWalter Schulze <awalterschulze@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/CONTRIBUTORS",
    "content": "Anton Povarov <anton.povarov@gmail.com>\nBrian Goff <cpuguy83@gmail.com>\nClayton Coleman <ccoleman@redhat.com>\nDenis Smirnov <denis.smirnov.91@gmail.com>\nDongYun Kang <ceram1000@gmail.com>\nDwayne Schultz <dschultz@pivotal.io>\nGeorg Apitz <gapitz@pivotal.io>\nGustav Paul <gustav.paul@gmail.com>\nJohan Brandhorst <johan.brandhorst@gmail.com>\nJohn Shahid <jvshahid@gmail.com>\nJohn Tuley <john@tuley.org>\nLaurent <laurent@adyoulike.com>\nPatrick Lee <patrick@dropbox.com>\nPeter Edge <peter.edge@gmail.com>\nRoger Johansson <rogeralsing@gmail.com>\nSam Nguyen <sam.nguyen@sendgrid.com>\nSergio Arbeo <serabe@gmail.com>\nStephen J Day <stephen.day@docker.com>\nTamir Duberstein <tamird@gmail.com>\nTodd Eisenberger <teisenberger@dropbox.com>\nTormod Erevik Lea <tormodlea@gmail.com>\nVyacheslav Kim <kane@sendgrid.com>\nWalter Schulze <awalterschulze@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/LICENSE",
    "content": "Copyright (c) 2013, The GoGo Authors. All rights reserved.\n\nProtocol Buffers for Go with Gadgets\n\nGo support for Protocol Buffers - Google's data interchange format\n\nCopyright 2010 The Go Authors.  All rights reserved.\nhttps://github.com/golang/protobuf\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n    * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/Makefile",
    "content": "# Protocol Buffers for Go with Gadgets\n#\n# Copyright (c) 2013, The GoGo Authors. All rights reserved.\n# http://github.com/gogo/protobuf\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n#     * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#     * Redistributions in binary form must reproduce the above\n# copyright notice, this list of conditions and the following disclaimer\n# in the documentation and/or other materials provided with the\n# distribution.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nregenerate:\n\tgo install github.com/gogo/protobuf/protoc-gen-gogo\n\tprotoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:../../../../ --proto_path=../../../../:../protobuf/:. *.proto\n\nrestore:\n\tcp gogo.pb.golden gogo.pb.go\n\npreserve:\n\tcp gogo.pb.go gogo.pb.golden\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/doc.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/*\nPackage gogoproto provides extensions for protocol buffers to achieve:\n\n  - fast marshalling and unmarshalling.\n  - peace of mind by optionally generating test and benchmark code.\n  - more canonical Go structures.\n  - less typing by optionally generating extra helper code.\n  - goprotobuf compatibility\n\nMore Canonical Go Structures\n\nA lot of time working with a goprotobuf struct will lead you to a place where you create another struct that is easier to work with and then have a function to copy the values between the two structs.\nYou might also find that basic structs that started their life as part of an API need to be sent over the wire. With gob, you could just send it. With goprotobuf, you need to make a parallel struct.\nGogoprotobuf tries to fix these problems with the nullable, embed, customtype and customname field extensions.\n\n  - nullable, if false, a field is generated without a pointer (see warning below).\n  - embed, if true, the field is generated as an embedded field.\n  - customtype, It works with the Marshal and Unmarshal methods, to allow you to have your own types in your struct, but marshal to bytes. For example, custom.Uuid or custom.Fixed128\n  - customname (beta), Changes the generated fieldname. This is especially useful when generated methods conflict with fieldnames.\n  - casttype (beta), Changes the generated fieldtype.  All generated code assumes that this type is castable to the protocol buffer field type.  It does not work for structs or enums.\n  - castkey (beta), Changes the generated fieldtype for a map key.  All generated code assumes that this type is castable to the protocol buffer field type.  Only supported on maps.\n  - castvalue (beta), Changes the generated fieldtype for a map value.  All generated code assumes that this type is castable to the protocol buffer field type.  Only supported on maps.\n\nWarning about nullable: According to the Protocol Buffer specification, you should be able to tell whether a field is set or unset. With the option nullable=false this feature is lost, since your non-nullable fields will always be set. It can be seen as a layer on top of Protocol Buffers, where before and after marshalling all non-nullable fields are set and they cannot be unset.\n\nLet us look at:\n\n\tgithub.com/gogo/protobuf/test/example/example.proto\n\nfor a quicker overview.\n\nThe following message:\n\n  package test;\n\n  import \"github.com/gogo/protobuf/gogoproto/gogo.proto\";\n\n\tmessage A {\n\t\toptional string Description = 1 [(gogoproto.nullable) = false];\n\t\toptional int64 Number = 2 [(gogoproto.nullable) = false];\n\t\toptional bytes Id = 3 [(gogoproto.customtype) = \"github.com/gogo/protobuf/test/custom.Uuid\", (gogoproto.nullable) = false];\n\t}\n\nWill generate a go struct which looks a lot like this:\n\n\ttype A struct {\n\t\tDescription string\n\t\tNumber      int64\n\t\tId          github_com_gogo_protobuf_test_custom.Uuid\n\t}\n\nYou will see there are no pointers, since all fields are non-nullable.\nYou will also see a custom type which marshals to a string.\nBe warned it is your responsibility to test your custom types thoroughly.\nYou should think of every possible empty and nil case for your marshaling, unmarshaling and size methods.\n\nNext we will embed the message A in message B.\n\n\tmessage B {\n\t\toptional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true];\n\t\trepeated bytes G = 2 [(gogoproto.customtype) = \"github.com/gogo/protobuf/test/custom.Uint128\", (gogoproto.nullable) = false];\n\t}\n\nSee below that A is embedded in B.\n\n\ttype B struct {\n\t\tA\n\t\tG []github_com_gogo_protobuf_test_custom.Uint128\n\t}\n\nAlso see the repeated custom type.\n\n\ttype Uint128 [2]uint64\n\nNext we will create a custom name for one of our fields.\n\n\tmessage C {\n\t\toptional int64 size = 1 [(gogoproto.customname) = \"MySize\"];\n\t}\n\nSee below that the field's name is MySize and not Size.\n\n\ttype C struct {\n\t\tMySize\t\t*int64\n\t}\n\nThe is useful when having a protocol buffer message with a field name which conflicts with a generated method.\nAs an example, having a field name size and using the sizer plugin to generate a Size method will cause a go compiler error.\nUsing customname you can fix this error without changing the field name.\nThis is typically useful when working with a protocol buffer that was designed before these methods and/or the go language were avialable.\n\nGogoprotobuf also has some more subtle changes, these could be changed back:\n\n  - the generated package name for imports do not have the extra /filename.pb,\n  but are actually the imports specified in the .proto file.\n\nGogoprotobuf also has lost some features which should be brought back with time:\n\n  - Marshalling and unmarshalling with reflect and without the unsafe package,\n  this requires work in pointer_reflect.go\n\nWhy does nullable break protocol buffer specifications:\n\nThe protocol buffer specification states, somewhere, that you should be able to tell whether a\nfield is set or unset.  With the option nullable=false this feature is lost,\nsince your non-nullable fields will always be set.  It can be seen as a layer on top of\nprotocol buffers, where before and after marshalling all non-nullable fields are set\nand they cannot be unset.\n\nGoprotobuf Compatibility:\n\nGogoprotobuf is compatible with Goprotobuf, because it is compatible with protocol buffers.\nGogoprotobuf generates the same code as goprotobuf if no extensions are used.\nThe enumprefix, getters and stringer extensions can be used to remove some of the unnecessary code generated by goprotobuf:\n\n  - gogoproto_import, if false, the generated code imports github.com/golang/protobuf/proto instead of github.com/gogo/protobuf/proto.\n  - goproto_enum_prefix, if false, generates the enum constant names without the messagetype prefix\n  - goproto_enum_stringer (experimental), if false, the enum is generated without the default string method, this is useful for rather using enum_stringer, or allowing you to write your own string method.\n  - goproto_getters, if false, the message is generated without get methods, this is useful when you would rather want to use face\n  - goproto_stringer, if false, the message is generated without the default string method, this is useful for rather using stringer, or allowing you to write your own string method.\n  - goproto_extensions_map (beta), if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension\n  - goproto_unrecognized (beta), if false, XXX_unrecognized field is not generated. This is useful in conjunction with gogoproto.nullable=false, to generate structures completely devoid of pointers and reduce GC pressure at the cost of losing information about unrecognized fields.\n  - goproto_registration (beta), if true, the generated files will register all messages and types against both gogo/protobuf and golang/protobuf. This is necessary when using third-party packages which read registrations from golang/protobuf (such as the grpc-gateway).\n\nLess Typing and Peace of Mind is explained in their specific plugin folders godoc:\n\n\t- github.com/gogo/protobuf/plugin/<extension_name>\n\nIf you do not use any of these extension the code that is generated\nwill be the same as if goprotobuf has generated it.\n\nThe most complete way to see examples is to look at\n\n\tgithub.com/gogo/protobuf/test/thetest.proto\n\nGogoprototest is a seperate project,\nbecause we want to keep gogoprotobuf independent of goprotobuf,\nbut we still want to test it thoroughly.\n\n*/\npackage gogoproto\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: gogo.proto\n\npackage gogoproto\n\nimport (\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tdescriptor \"github.com/gogo/protobuf/protoc-gen-gogo/descriptor\"\n\tmath \"math\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nvar E_GoprotoEnumPrefix = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         62001,\n\tName:          \"gogoproto.goproto_enum_prefix\",\n\tTag:           \"varint,62001,opt,name=goproto_enum_prefix\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoEnumStringer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         62021,\n\tName:          \"gogoproto.goproto_enum_stringer\",\n\tTag:           \"varint,62021,opt,name=goproto_enum_stringer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EnumStringer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         62022,\n\tName:          \"gogoproto.enum_stringer\",\n\tTag:           \"varint,62022,opt,name=enum_stringer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EnumCustomname = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         62023,\n\tName:          \"gogoproto.enum_customname\",\n\tTag:           \"bytes,62023,opt,name=enum_customname\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Enumdecl = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         62024,\n\tName:          \"gogoproto.enumdecl\",\n\tTag:           \"varint,62024,opt,name=enumdecl\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EnumvalueCustomname = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.EnumValueOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         66001,\n\tName:          \"gogoproto.enumvalue_customname\",\n\tTag:           \"bytes,66001,opt,name=enumvalue_customname\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoGettersAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63001,\n\tName:          \"gogoproto.goproto_getters_all\",\n\tTag:           \"varint,63001,opt,name=goproto_getters_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63002,\n\tName:          \"gogoproto.goproto_enum_prefix_all\",\n\tTag:           \"varint,63002,opt,name=goproto_enum_prefix_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoStringerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63003,\n\tName:          \"gogoproto.goproto_stringer_all\",\n\tTag:           \"varint,63003,opt,name=goproto_stringer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_VerboseEqualAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63004,\n\tName:          \"gogoproto.verbose_equal_all\",\n\tTag:           \"varint,63004,opt,name=verbose_equal_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_FaceAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63005,\n\tName:          \"gogoproto.face_all\",\n\tTag:           \"varint,63005,opt,name=face_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GostringAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63006,\n\tName:          \"gogoproto.gostring_all\",\n\tTag:           \"varint,63006,opt,name=gostring_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_PopulateAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63007,\n\tName:          \"gogoproto.populate_all\",\n\tTag:           \"varint,63007,opt,name=populate_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_StringerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63008,\n\tName:          \"gogoproto.stringer_all\",\n\tTag:           \"varint,63008,opt,name=stringer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_OnlyoneAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63009,\n\tName:          \"gogoproto.onlyone_all\",\n\tTag:           \"varint,63009,opt,name=onlyone_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EqualAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63013,\n\tName:          \"gogoproto.equal_all\",\n\tTag:           \"varint,63013,opt,name=equal_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_DescriptionAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63014,\n\tName:          \"gogoproto.description_all\",\n\tTag:           \"varint,63014,opt,name=description_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_TestgenAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63015,\n\tName:          \"gogoproto.testgen_all\",\n\tTag:           \"varint,63015,opt,name=testgen_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_BenchgenAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63016,\n\tName:          \"gogoproto.benchgen_all\",\n\tTag:           \"varint,63016,opt,name=benchgen_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_MarshalerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63017,\n\tName:          \"gogoproto.marshaler_all\",\n\tTag:           \"varint,63017,opt,name=marshaler_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_UnmarshalerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63018,\n\tName:          \"gogoproto.unmarshaler_all\",\n\tTag:           \"varint,63018,opt,name=unmarshaler_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_StableMarshalerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63019,\n\tName:          \"gogoproto.stable_marshaler_all\",\n\tTag:           \"varint,63019,opt,name=stable_marshaler_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_SizerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63020,\n\tName:          \"gogoproto.sizer_all\",\n\tTag:           \"varint,63020,opt,name=sizer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoEnumStringerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63021,\n\tName:          \"gogoproto.goproto_enum_stringer_all\",\n\tTag:           \"varint,63021,opt,name=goproto_enum_stringer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EnumStringerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63022,\n\tName:          \"gogoproto.enum_stringer_all\",\n\tTag:           \"varint,63022,opt,name=enum_stringer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_UnsafeMarshalerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63023,\n\tName:          \"gogoproto.unsafe_marshaler_all\",\n\tTag:           \"varint,63023,opt,name=unsafe_marshaler_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63024,\n\tName:          \"gogoproto.unsafe_unmarshaler_all\",\n\tTag:           \"varint,63024,opt,name=unsafe_unmarshaler_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63025,\n\tName:          \"gogoproto.goproto_extensions_map_all\",\n\tTag:           \"varint,63025,opt,name=goproto_extensions_map_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63026,\n\tName:          \"gogoproto.goproto_unrecognized_all\",\n\tTag:           \"varint,63026,opt,name=goproto_unrecognized_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GogoprotoImport = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63027,\n\tName:          \"gogoproto.gogoproto_import\",\n\tTag:           \"varint,63027,opt,name=gogoproto_import\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_ProtosizerAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63028,\n\tName:          \"gogoproto.protosizer_all\",\n\tTag:           \"varint,63028,opt,name=protosizer_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_CompareAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63029,\n\tName:          \"gogoproto.compare_all\",\n\tTag:           \"varint,63029,opt,name=compare_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_TypedeclAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63030,\n\tName:          \"gogoproto.typedecl_all\",\n\tTag:           \"varint,63030,opt,name=typedecl_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_EnumdeclAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63031,\n\tName:          \"gogoproto.enumdecl_all\",\n\tTag:           \"varint,63031,opt,name=enumdecl_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoRegistration = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63032,\n\tName:          \"gogoproto.goproto_registration\",\n\tTag:           \"varint,63032,opt,name=goproto_registration\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_MessagenameAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63033,\n\tName:          \"gogoproto.messagename_all\",\n\tTag:           \"varint,63033,opt,name=messagename_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoSizecacheAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63034,\n\tName:          \"gogoproto.goproto_sizecache_all\",\n\tTag:           \"varint,63034,opt,name=goproto_sizecache_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoUnkeyedAll = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FileOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         63035,\n\tName:          \"gogoproto.goproto_unkeyed_all\",\n\tTag:           \"varint,63035,opt,name=goproto_unkeyed_all\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoGetters = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64001,\n\tName:          \"gogoproto.goproto_getters\",\n\tTag:           \"varint,64001,opt,name=goproto_getters\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoStringer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64003,\n\tName:          \"gogoproto.goproto_stringer\",\n\tTag:           \"varint,64003,opt,name=goproto_stringer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_VerboseEqual = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64004,\n\tName:          \"gogoproto.verbose_equal\",\n\tTag:           \"varint,64004,opt,name=verbose_equal\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Face = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64005,\n\tName:          \"gogoproto.face\",\n\tTag:           \"varint,64005,opt,name=face\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Gostring = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64006,\n\tName:          \"gogoproto.gostring\",\n\tTag:           \"varint,64006,opt,name=gostring\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Populate = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64007,\n\tName:          \"gogoproto.populate\",\n\tTag:           \"varint,64007,opt,name=populate\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Stringer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         67008,\n\tName:          \"gogoproto.stringer\",\n\tTag:           \"varint,67008,opt,name=stringer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Onlyone = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64009,\n\tName:          \"gogoproto.onlyone\",\n\tTag:           \"varint,64009,opt,name=onlyone\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Equal = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64013,\n\tName:          \"gogoproto.equal\",\n\tTag:           \"varint,64013,opt,name=equal\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Description = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64014,\n\tName:          \"gogoproto.description\",\n\tTag:           \"varint,64014,opt,name=description\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Testgen = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64015,\n\tName:          \"gogoproto.testgen\",\n\tTag:           \"varint,64015,opt,name=testgen\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Benchgen = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64016,\n\tName:          \"gogoproto.benchgen\",\n\tTag:           \"varint,64016,opt,name=benchgen\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Marshaler = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64017,\n\tName:          \"gogoproto.marshaler\",\n\tTag:           \"varint,64017,opt,name=marshaler\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Unmarshaler = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64018,\n\tName:          \"gogoproto.unmarshaler\",\n\tTag:           \"varint,64018,opt,name=unmarshaler\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_StableMarshaler = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64019,\n\tName:          \"gogoproto.stable_marshaler\",\n\tTag:           \"varint,64019,opt,name=stable_marshaler\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Sizer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64020,\n\tName:          \"gogoproto.sizer\",\n\tTag:           \"varint,64020,opt,name=sizer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_UnsafeMarshaler = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64023,\n\tName:          \"gogoproto.unsafe_marshaler\",\n\tTag:           \"varint,64023,opt,name=unsafe_marshaler\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_UnsafeUnmarshaler = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64024,\n\tName:          \"gogoproto.unsafe_unmarshaler\",\n\tTag:           \"varint,64024,opt,name=unsafe_unmarshaler\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoExtensionsMap = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64025,\n\tName:          \"gogoproto.goproto_extensions_map\",\n\tTag:           \"varint,64025,opt,name=goproto_extensions_map\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoUnrecognized = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64026,\n\tName:          \"gogoproto.goproto_unrecognized\",\n\tTag:           \"varint,64026,opt,name=goproto_unrecognized\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Protosizer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64028,\n\tName:          \"gogoproto.protosizer\",\n\tTag:           \"varint,64028,opt,name=protosizer\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Compare = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64029,\n\tName:          \"gogoproto.compare\",\n\tTag:           \"varint,64029,opt,name=compare\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Typedecl = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64030,\n\tName:          \"gogoproto.typedecl\",\n\tTag:           \"varint,64030,opt,name=typedecl\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Messagename = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64033,\n\tName:          \"gogoproto.messagename\",\n\tTag:           \"varint,64033,opt,name=messagename\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoSizecache = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64034,\n\tName:          \"gogoproto.goproto_sizecache\",\n\tTag:           \"varint,64034,opt,name=goproto_sizecache\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_GoprotoUnkeyed = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.MessageOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         64035,\n\tName:          \"gogoproto.goproto_unkeyed\",\n\tTag:           \"varint,64035,opt,name=goproto_unkeyed\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Nullable = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         65001,\n\tName:          \"gogoproto.nullable\",\n\tTag:           \"varint,65001,opt,name=nullable\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Embed = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         65002,\n\tName:          \"gogoproto.embed\",\n\tTag:           \"varint,65002,opt,name=embed\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Customtype = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65003,\n\tName:          \"gogoproto.customtype\",\n\tTag:           \"bytes,65003,opt,name=customtype\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Customname = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65004,\n\tName:          \"gogoproto.customname\",\n\tTag:           \"bytes,65004,opt,name=customname\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Jsontag = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65005,\n\tName:          \"gogoproto.jsontag\",\n\tTag:           \"bytes,65005,opt,name=jsontag\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Moretags = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65006,\n\tName:          \"gogoproto.moretags\",\n\tTag:           \"bytes,65006,opt,name=moretags\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Casttype = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65007,\n\tName:          \"gogoproto.casttype\",\n\tTag:           \"bytes,65007,opt,name=casttype\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Castkey = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65008,\n\tName:          \"gogoproto.castkey\",\n\tTag:           \"bytes,65008,opt,name=castkey\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Castvalue = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         65009,\n\tName:          \"gogoproto.castvalue\",\n\tTag:           \"bytes,65009,opt,name=castvalue\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Stdtime = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         65010,\n\tName:          \"gogoproto.stdtime\",\n\tTag:           \"varint,65010,opt,name=stdtime\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Stdduration = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         65011,\n\tName:          \"gogoproto.stdduration\",\n\tTag:           \"varint,65011,opt,name=stdduration\",\n\tFilename:      \"gogo.proto\",\n}\n\nvar E_Wktpointer = &proto.ExtensionDesc{\n\tExtendedType:  (*descriptor.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         65012,\n\tName:          \"gogoproto.wktpointer\",\n\tTag:           \"varint,65012,opt,name=wktpointer\",\n\tFilename:      \"gogo.proto\",\n}\n\nfunc init() {\n\tproto.RegisterExtension(E_GoprotoEnumPrefix)\n\tproto.RegisterExtension(E_GoprotoEnumStringer)\n\tproto.RegisterExtension(E_EnumStringer)\n\tproto.RegisterExtension(E_EnumCustomname)\n\tproto.RegisterExtension(E_Enumdecl)\n\tproto.RegisterExtension(E_EnumvalueCustomname)\n\tproto.RegisterExtension(E_GoprotoGettersAll)\n\tproto.RegisterExtension(E_GoprotoEnumPrefixAll)\n\tproto.RegisterExtension(E_GoprotoStringerAll)\n\tproto.RegisterExtension(E_VerboseEqualAll)\n\tproto.RegisterExtension(E_FaceAll)\n\tproto.RegisterExtension(E_GostringAll)\n\tproto.RegisterExtension(E_PopulateAll)\n\tproto.RegisterExtension(E_StringerAll)\n\tproto.RegisterExtension(E_OnlyoneAll)\n\tproto.RegisterExtension(E_EqualAll)\n\tproto.RegisterExtension(E_DescriptionAll)\n\tproto.RegisterExtension(E_TestgenAll)\n\tproto.RegisterExtension(E_BenchgenAll)\n\tproto.RegisterExtension(E_MarshalerAll)\n\tproto.RegisterExtension(E_UnmarshalerAll)\n\tproto.RegisterExtension(E_StableMarshalerAll)\n\tproto.RegisterExtension(E_SizerAll)\n\tproto.RegisterExtension(E_GoprotoEnumStringerAll)\n\tproto.RegisterExtension(E_EnumStringerAll)\n\tproto.RegisterExtension(E_UnsafeMarshalerAll)\n\tproto.RegisterExtension(E_UnsafeUnmarshalerAll)\n\tproto.RegisterExtension(E_GoprotoExtensionsMapAll)\n\tproto.RegisterExtension(E_GoprotoUnrecognizedAll)\n\tproto.RegisterExtension(E_GogoprotoImport)\n\tproto.RegisterExtension(E_ProtosizerAll)\n\tproto.RegisterExtension(E_CompareAll)\n\tproto.RegisterExtension(E_TypedeclAll)\n\tproto.RegisterExtension(E_EnumdeclAll)\n\tproto.RegisterExtension(E_GoprotoRegistration)\n\tproto.RegisterExtension(E_MessagenameAll)\n\tproto.RegisterExtension(E_GoprotoSizecacheAll)\n\tproto.RegisterExtension(E_GoprotoUnkeyedAll)\n\tproto.RegisterExtension(E_GoprotoGetters)\n\tproto.RegisterExtension(E_GoprotoStringer)\n\tproto.RegisterExtension(E_VerboseEqual)\n\tproto.RegisterExtension(E_Face)\n\tproto.RegisterExtension(E_Gostring)\n\tproto.RegisterExtension(E_Populate)\n\tproto.RegisterExtension(E_Stringer)\n\tproto.RegisterExtension(E_Onlyone)\n\tproto.RegisterExtension(E_Equal)\n\tproto.RegisterExtension(E_Description)\n\tproto.RegisterExtension(E_Testgen)\n\tproto.RegisterExtension(E_Benchgen)\n\tproto.RegisterExtension(E_Marshaler)\n\tproto.RegisterExtension(E_Unmarshaler)\n\tproto.RegisterExtension(E_StableMarshaler)\n\tproto.RegisterExtension(E_Sizer)\n\tproto.RegisterExtension(E_UnsafeMarshaler)\n\tproto.RegisterExtension(E_UnsafeUnmarshaler)\n\tproto.RegisterExtension(E_GoprotoExtensionsMap)\n\tproto.RegisterExtension(E_GoprotoUnrecognized)\n\tproto.RegisterExtension(E_Protosizer)\n\tproto.RegisterExtension(E_Compare)\n\tproto.RegisterExtension(E_Typedecl)\n\tproto.RegisterExtension(E_Messagename)\n\tproto.RegisterExtension(E_GoprotoSizecache)\n\tproto.RegisterExtension(E_GoprotoUnkeyed)\n\tproto.RegisterExtension(E_Nullable)\n\tproto.RegisterExtension(E_Embed)\n\tproto.RegisterExtension(E_Customtype)\n\tproto.RegisterExtension(E_Customname)\n\tproto.RegisterExtension(E_Jsontag)\n\tproto.RegisterExtension(E_Moretags)\n\tproto.RegisterExtension(E_Casttype)\n\tproto.RegisterExtension(E_Castkey)\n\tproto.RegisterExtension(E_Castvalue)\n\tproto.RegisterExtension(E_Stdtime)\n\tproto.RegisterExtension(E_Stdduration)\n\tproto.RegisterExtension(E_Wktpointer)\n}\n\nfunc init() { proto.RegisterFile(\"gogo.proto\", fileDescriptor_592445b5231bc2b9) }\n\nvar fileDescriptor_592445b5231bc2b9 = []byte{\n\t// 1328 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x49, 0x6f, 0x1c, 0x45,\n\t0x14, 0x80, 0x85, 0x48, 0x64, 0x4f, 0x79, 0x8b, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9,\n\t0x3e, 0x45, 0x28, 0x65, 0x45, 0x96, 0x63, 0x39, 0x56, 0x10, 0x0e, 0xc6, 0x89, 0xc3, 0x76, 0x18,\n\t0xf5, 0xf4, 0x94, 0xdb, 0x8d, 0xbb, 0xbb, 0x9a, 0xee, 0xea, 0x10, 0xe7, 0x86, 0xc2, 0x22, 0x84,\n\t0xd8, 0x91, 0x20, 0x21, 0x09, 0x04, 0xc4, 0xbe, 0x86, 0x7d, 0xb9, 0x70, 0x61, 0xb9, 0xf2, 0x1f,\n\t0xb8, 0x00, 0x66, 0xf7, 0xcd, 0x17, 0xf4, 0xba, 0xdf, 0xeb, 0xa9, 0x69, 0x8f, 0x54, 0x35, 0xb7,\n\t0xf6, 0xb8, 0xbe, 0x6f, 0xaa, 0xdf, 0xeb, 0x7a, 0xef, 0x4d, 0x33, 0xe6, 0x49, 0x4f, 0x4e, 0xc6,\n\t0x89, 0x54, 0xb2, 0x5e, 0x83, 0xeb, 0xfc, 0x72, 0xdf, 0x7e, 0x4f, 0x4a, 0x2f, 0x10, 0x53, 0xf9,\n\t0x5f, 0xcd, 0x6c, 0x75, 0xaa, 0x25, 0x52, 0x37, 0xf1, 0x63, 0x25, 0x93, 0x62, 0x31, 0x3f, 0xc6,\n\t0xc6, 0x70, 0x71, 0x43, 0x44, 0x59, 0xd8, 0x88, 0x13, 0xb1, 0xea, 0x9f, 0xae, 0x5f, 0x3f, 0x59,\n\t0x90, 0x93, 0x44, 0x4e, 0xce, 0x47, 0x59, 0x78, 0x47, 0xac, 0x7c, 0x19, 0xa5, 0x7b, 0xaf, 0xfc,\n\t0x72, 0xf5, 0xfe, 0xab, 0x6e, 0xe9, 0x5f, 0x1e, 0x45, 0x14, 0xfe, 0xb7, 0x94, 0x83, 0x7c, 0x99,\n\t0x5d, 0xd3, 0xe1, 0x4b, 0x55, 0xe2, 0x47, 0x9e, 0x48, 0x0c, 0xc6, 0xef, 0xd1, 0x38, 0xa6, 0x19,\n\t0x8f, 0x23, 0xca, 0xe7, 0xd8, 0x50, 0x2f, 0xae, 0x1f, 0xd0, 0x35, 0x28, 0x74, 0xc9, 0x02, 0x1b,\n\t0xc9, 0x25, 0x6e, 0x96, 0x2a, 0x19, 0x46, 0x4e, 0x28, 0x0c, 0x9a, 0x1f, 0x73, 0x4d, 0x6d, 0x79,\n\t0x18, 0xb0, 0xb9, 0x92, 0xe2, 0x9c, 0xf5, 0xc3, 0x27, 0x2d, 0xe1, 0x06, 0x06, 0xc3, 0x4f, 0xb8,\n\t0x91, 0x72, 0x3d, 0x3f, 0xc9, 0xc6, 0xe1, 0xfa, 0x94, 0x13, 0x64, 0x42, 0xdf, 0xc9, 0x4d, 0x5d,\n\t0x3d, 0x27, 0x61, 0x19, 0xc9, 0x7e, 0x3e, 0xbb, 0x2b, 0xdf, 0xce, 0x58, 0x29, 0xd0, 0xf6, 0xa4,\n\t0x65, 0xd1, 0x13, 0x4a, 0x89, 0x24, 0x6d, 0x38, 0x41, 0xb7, 0xed, 0x1d, 0xf1, 0x83, 0xd2, 0x78,\n\t0x6e, 0xb3, 0x33, 0x8b, 0x0b, 0x05, 0x39, 0x1b, 0x04, 0x7c, 0x85, 0x5d, 0xdb, 0xe5, 0xa9, 0xb0,\n\t0x70, 0x9e, 0x47, 0xe7, 0xf8, 0x8e, 0x27, 0x03, 0xb4, 0x4b, 0x8c, 0x3e, 0x2f, 0x73, 0x69, 0xe1,\n\t0x7c, 0x19, 0x9d, 0x75, 0x64, 0x29, 0xa5, 0x60, 0xbc, 0x8d, 0x8d, 0x9e, 0x12, 0x49, 0x53, 0xa6,\n\t0xa2, 0x21, 0x1e, 0xc8, 0x9c, 0xc0, 0x42, 0x77, 0x01, 0x75, 0x23, 0x08, 0xce, 0x03, 0x07, 0xae,\n\t0x83, 0xac, 0x7f, 0xd5, 0x71, 0x85, 0x85, 0xe2, 0x22, 0x2a, 0xfa, 0x60, 0x3d, 0xa0, 0xb3, 0x6c,\n\t0xd0, 0x93, 0xc5, 0x2d, 0x59, 0xe0, 0x97, 0x10, 0x1f, 0x20, 0x06, 0x15, 0xb1, 0x8c, 0xb3, 0xc0,\n\t0x51, 0x36, 0x3b, 0x78, 0x85, 0x14, 0xc4, 0xa0, 0xa2, 0x87, 0xb0, 0xbe, 0x4a, 0x8a, 0x54, 0x8b,\n\t0xe7, 0x0c, 0x1b, 0x90, 0x51, 0xb0, 0x21, 0x23, 0x9b, 0x4d, 0x5c, 0x46, 0x03, 0x43, 0x04, 0x04,\n\t0xd3, 0xac, 0x66, 0x9b, 0x88, 0x37, 0x36, 0xe9, 0x78, 0x50, 0x06, 0x16, 0xd8, 0x08, 0x15, 0x28,\n\t0x5f, 0x46, 0x16, 0x8a, 0x37, 0x51, 0x31, 0xac, 0x61, 0x78, 0x1b, 0x4a, 0xa4, 0xca, 0x13, 0x36,\n\t0x92, 0xb7, 0xe8, 0x36, 0x10, 0xc1, 0x50, 0x36, 0x45, 0xe4, 0xae, 0xd9, 0x19, 0xde, 0xa6, 0x50,\n\t0x12, 0x03, 0x8a, 0x39, 0x36, 0x14, 0x3a, 0x49, 0xba, 0xe6, 0x04, 0x56, 0xe9, 0x78, 0x07, 0x1d,\n\t0x83, 0x25, 0x84, 0x11, 0xc9, 0xa2, 0x5e, 0x34, 0xef, 0x52, 0x44, 0x34, 0x0c, 0x8f, 0x5e, 0xaa,\n\t0x9c, 0x66, 0x20, 0x1a, 0xbd, 0xd8, 0xde, 0xa3, 0xa3, 0x57, 0xb0, 0x8b, 0xba, 0x71, 0x9a, 0xd5,\n\t0x52, 0xff, 0x8c, 0x95, 0xe6, 0x7d, 0xca, 0x74, 0x0e, 0x00, 0x7c, 0x0f, 0xbb, 0xae, 0x6b, 0x9b,\n\t0xb0, 0x90, 0x7d, 0x80, 0xb2, 0x89, 0x2e, 0xad, 0x02, 0x4b, 0x42, 0xaf, 0xca, 0x0f, 0xa9, 0x24,\n\t0x88, 0x8a, 0x6b, 0x89, 0x8d, 0x67, 0x51, 0xea, 0xac, 0xf6, 0x16, 0xb5, 0x8f, 0x28, 0x6a, 0x05,\n\t0xdb, 0x11, 0xb5, 0x13, 0x6c, 0x02, 0x8d, 0xbd, 0xe5, 0xf5, 0x63, 0x2a, 0xac, 0x05, 0xbd, 0xd2,\n\t0x99, 0xdd, 0xfb, 0xd8, 0xbe, 0x32, 0x9c, 0xa7, 0x95, 0x88, 0x52, 0x60, 0x1a, 0xa1, 0x13, 0x5b,\n\t0x98, 0xaf, 0xa0, 0x99, 0x2a, 0xfe, 0x7c, 0x29, 0x58, 0x74, 0x62, 0x90, 0xdf, 0xcd, 0xf6, 0x92,\n\t0x3c, 0x8b, 0x12, 0xe1, 0x4a, 0x2f, 0xf2, 0xcf, 0x88, 0x96, 0x85, 0xfa, 0x93, 0x4a, 0xaa, 0x56,\n\t0x34, 0x1c, 0xcc, 0x47, 0xd9, 0x9e, 0x72, 0x56, 0x69, 0xf8, 0x61, 0x2c, 0x13, 0x65, 0x30, 0x7e,\n\t0x4a, 0x99, 0x2a, 0xb9, 0xa3, 0x39, 0xc6, 0xe7, 0xd9, 0x70, 0xfe, 0xa7, 0xed, 0x23, 0xf9, 0x19,\n\t0x8a, 0x86, 0xda, 0x14, 0x16, 0x0e, 0x57, 0x86, 0xb1, 0x93, 0xd8, 0xd4, 0xbf, 0xcf, 0xa9, 0x70,\n\t0x20, 0x82, 0x85, 0x43, 0x6d, 0xc4, 0x02, 0xba, 0xbd, 0x85, 0xe1, 0x0b, 0x2a, 0x1c, 0xc4, 0xa0,\n\t0x82, 0x06, 0x06, 0x0b, 0xc5, 0x97, 0xa4, 0x20, 0x06, 0x14, 0x77, 0xb6, 0x1b, 0x6d, 0x22, 0x3c,\n\t0x3f, 0x55, 0x89, 0x03, 0xab, 0x0d, 0xaa, 0xaf, 0x36, 0x3b, 0x87, 0xb0, 0x65, 0x0d, 0x85, 0x4a,\n\t0x14, 0x8a, 0x34, 0x75, 0x3c, 0x01, 0x13, 0x87, 0xc5, 0xc6, 0xbe, 0xa6, 0x4a, 0xa4, 0x61, 0xb0,\n\t0x37, 0x6d, 0x42, 0x84, 0xb0, 0xbb, 0x8e, 0xbb, 0x66, 0xa3, 0xfb, 0xa6, 0xb2, 0xb9, 0xe3, 0xc4,\n\t0x82, 0x53, 0x9b, 0x7f, 0xb2, 0x68, 0x5d, 0x6c, 0x58, 0x3d, 0x9d, 0xdf, 0x56, 0xe6, 0x9f, 0x95,\n\t0x82, 0x2c, 0x6a, 0xc8, 0x48, 0x65, 0x9e, 0xaa, 0xdf, 0xb8, 0xc3, 0xb5, 0x58, 0xdc, 0x17, 0xe9,\n\t0x1e, 0xda, 0xc2, 0xfb, 0xed, 0x1c, 0xa7, 0xf8, 0xed, 0xf0, 0x90, 0x77, 0x0e, 0x3d, 0x66, 0xd9,\n\t0xd9, 0xad, 0xf2, 0x39, 0xef, 0x98, 0x79, 0xf8, 0x11, 0x36, 0xd4, 0x31, 0xf0, 0x98, 0x55, 0x0f,\n\t0xa3, 0x6a, 0x50, 0x9f, 0x77, 0xf8, 0x01, 0xb6, 0x0b, 0x86, 0x17, 0x33, 0xfe, 0x08, 0xe2, 0xf9,\n\t0x72, 0x7e, 0x88, 0xf5, 0xd3, 0xd0, 0x62, 0x46, 0x1f, 0x45, 0xb4, 0x44, 0x00, 0xa7, 0x81, 0xc5,\n\t0x8c, 0x3f, 0x46, 0x38, 0x21, 0x80, 0xdb, 0x87, 0xf0, 0xbb, 0x27, 0x76, 0x61, 0xd3, 0xa1, 0xd8,\n\t0x4d, 0xb3, 0x3e, 0x9c, 0x54, 0xcc, 0xf4, 0xe3, 0xf8, 0xe5, 0x44, 0xf0, 0x5b, 0xd9, 0x6e, 0xcb,\n\t0x80, 0x3f, 0x89, 0x68, 0xb1, 0x9e, 0xcf, 0xb1, 0x01, 0x6d, 0x3a, 0x31, 0xe3, 0x4f, 0x21, 0xae,\n\t0x53, 0xb0, 0x75, 0x9c, 0x4e, 0xcc, 0x82, 0xa7, 0x69, 0xeb, 0x48, 0x40, 0xd8, 0x68, 0x30, 0x31,\n\t0xd3, 0xcf, 0x50, 0xd4, 0x09, 0xe1, 0x33, 0xac, 0x56, 0x36, 0x1b, 0x33, 0xff, 0x2c, 0xf2, 0x6d,\n\t0x06, 0x22, 0xa0, 0x35, 0x3b, 0xb3, 0xe2, 0x39, 0x8a, 0x80, 0x46, 0xc1, 0x31, 0xaa, 0x0e, 0x30,\n\t0x66, 0xd3, 0xf3, 0x74, 0x8c, 0x2a, 0xf3, 0x0b, 0x64, 0x33, 0xaf, 0xf9, 0x66, 0xc5, 0x0b, 0x94,\n\t0xcd, 0x7c, 0x3d, 0x6c, 0xa3, 0x3a, 0x11, 0x98, 0x1d, 0x2f, 0xd2, 0x36, 0x2a, 0x03, 0x01, 0x5f,\n\t0x62, 0xf5, 0x9d, 0xd3, 0x80, 0xd9, 0xf7, 0x12, 0xfa, 0x46, 0x77, 0x0c, 0x03, 0xfc, 0x2e, 0x36,\n\t0xd1, 0x7d, 0x12, 0x30, 0x5b, 0xcf, 0x6d, 0x55, 0x7e, 0xbb, 0xe9, 0x83, 0x00, 0x3f, 0xd1, 0x6e,\n\t0x29, 0xfa, 0x14, 0x60, 0xd6, 0x9e, 0xdf, 0xea, 0x2c, 0xdc, 0xfa, 0x10, 0xc0, 0x67, 0x19, 0x6b,\n\t0x37, 0x60, 0xb3, 0xeb, 0x02, 0xba, 0x34, 0x08, 0x8e, 0x06, 0xf6, 0x5f, 0x33, 0x7f, 0x91, 0x8e,\n\t0x06, 0x12, 0x70, 0x34, 0xa8, 0xf5, 0x9a, 0xe9, 0x4b, 0x74, 0x34, 0x08, 0x81, 0x27, 0x5b, 0xeb,\n\t0x6e, 0x66, 0xc3, 0x65, 0x7a, 0xb2, 0x35, 0x8a, 0x1f, 0x63, 0xa3, 0x3b, 0x1a, 0xa2, 0x59, 0xf5,\n\t0x1a, 0xaa, 0xf6, 0x54, 0xfb, 0xa1, 0xde, 0xbc, 0xb0, 0x19, 0x9a, 0x6d, 0xaf, 0x57, 0x9a, 0x17,\n\t0xf6, 0x42, 0x3e, 0xcd, 0xfa, 0xa3, 0x2c, 0x08, 0xe0, 0xf0, 0xd4, 0x6f, 0xe8, 0xd2, 0x4d, 0x45,\n\t0xd0, 0x22, 0xc5, 0xaf, 0xdb, 0x18, 0x1d, 0x02, 0xf8, 0x01, 0xb6, 0x5b, 0x84, 0x4d, 0xd1, 0x32,\n\t0x91, 0xbf, 0x6d, 0x53, 0xc1, 0x84, 0xd5, 0x7c, 0x86, 0xb1, 0xe2, 0xd5, 0x08, 0x84, 0xd9, 0xc4,\n\t0xfe, 0xbe, 0x5d, 0xbc, 0xa5, 0xd1, 0x90, 0xb6, 0x20, 0x4f, 0x8a, 0x41, 0xb0, 0xd9, 0x29, 0xc8,\n\t0x33, 0x72, 0x90, 0xf5, 0xdd, 0x9f, 0xca, 0x48, 0x39, 0x9e, 0x89, 0xfe, 0x03, 0x69, 0x5a, 0x0f,\n\t0x01, 0x0b, 0x65, 0x22, 0x94, 0xe3, 0xa5, 0x26, 0xf6, 0x4f, 0x64, 0x4b, 0x00, 0x60, 0xd7, 0x49,\n\t0x95, 0xcd, 0x7d, 0xff, 0x45, 0x30, 0x01, 0xb0, 0x69, 0xb8, 0x5e, 0x17, 0x1b, 0x26, 0xf6, 0x6f,\n\t0xda, 0x34, 0xae, 0xe7, 0x87, 0x58, 0x0d, 0x2e, 0xf3, 0xb7, 0x4a, 0x26, 0xf8, 0x1f, 0x84, 0xdb,\n\t0x04, 0x7c, 0x73, 0xaa, 0x5a, 0xca, 0x37, 0x07, 0xfb, 0x5f, 0xcc, 0x34, 0xad, 0xe7, 0xb3, 0x6c,\n\t0x20, 0x55, 0xad, 0x56, 0x86, 0xf3, 0xa9, 0x01, 0xff, 0x6f, 0xbb, 0x7c, 0x65, 0x51, 0x32, 0x90,\n\t0xed, 0x07, 0xd7, 0x55, 0x2c, 0xfd, 0x48, 0x89, 0xc4, 0x64, 0xd8, 0x42, 0x83, 0x86, 0x1c, 0x9e,\n\t0x67, 0x63, 0xae, 0x0c, 0xab, 0xdc, 0x61, 0xb6, 0x20, 0x17, 0xe4, 0x52, 0x5e, 0x67, 0xee, 0xbd,\n\t0xd9, 0xf3, 0xd5, 0x5a, 0xd6, 0x9c, 0x74, 0x65, 0x38, 0x05, 0xbf, 0x3c, 0xda, 0x2f, 0x54, 0xcb,\n\t0xdf, 0x21, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xaf, 0x70, 0x4e, 0x83, 0x15, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden",
    "content": "// Code generated by protoc-gen-go.\n// source: gogo.proto\n// DO NOT EDIT!\n\npackage gogoproto\n\nimport proto \"github.com/gogo/protobuf/proto\"\nimport json \"encoding/json\"\nimport math \"math\"\nimport google_protobuf \"github.com/gogo/protobuf/protoc-gen-gogo/descriptor\"\n\n// Reference proto, json, and math imports to suppress error if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = &json.SyntaxError{}\nvar _ = math.Inf\n\nvar E_Nullable = &proto.ExtensionDesc{\n\tExtendedType:  (*google_protobuf.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         51235,\n\tName:          \"gogoproto.nullable\",\n\tTag:           \"varint,51235,opt,name=nullable\",\n}\n\nvar E_Embed = &proto.ExtensionDesc{\n\tExtendedType:  (*google_protobuf.FieldOptions)(nil),\n\tExtensionType: (*bool)(nil),\n\tField:         51236,\n\tName:          \"gogoproto.embed\",\n\tTag:           \"varint,51236,opt,name=embed\",\n}\n\nvar E_Customtype = &proto.ExtensionDesc{\n\tExtendedType:  (*google_protobuf.FieldOptions)(nil),\n\tExtensionType: (*string)(nil),\n\tField:         51237,\n\tName:          \"gogoproto.customtype\",\n\tTag:           \"bytes,51237,opt,name=customtype\",\n}\n\nfunc init() {\n\tproto.RegisterExtension(E_Nullable)\n\tproto.RegisterExtension(E_Embed)\n\tproto.RegisterExtension(E_Customtype)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/gogo.proto",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto2\";\npackage gogoproto;\n\nimport \"google/protobuf/descriptor.proto\";\n\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"GoGoProtos\";\noption go_package = \"github.com/gogo/protobuf/gogoproto\";\n\nextend google.protobuf.EnumOptions {\n\toptional bool goproto_enum_prefix = 62001;\n\toptional bool goproto_enum_stringer = 62021;\n\toptional bool enum_stringer = 62022;\n\toptional string enum_customname = 62023;\n\toptional bool enumdecl = 62024;\n}\n\nextend google.protobuf.EnumValueOptions {\n\toptional string enumvalue_customname = 66001;\n}\n\nextend google.protobuf.FileOptions {\n\toptional bool goproto_getters_all = 63001;\n\toptional bool goproto_enum_prefix_all = 63002;\n\toptional bool goproto_stringer_all = 63003;\n\toptional bool verbose_equal_all = 63004;\n\toptional bool face_all = 63005;\n\toptional bool gostring_all = 63006;\n\toptional bool populate_all = 63007;\n\toptional bool stringer_all = 63008;\n\toptional bool onlyone_all = 63009;\n\n\toptional bool equal_all = 63013;\n\toptional bool description_all = 63014;\n\toptional bool testgen_all = 63015;\n\toptional bool benchgen_all = 63016;\n\toptional bool marshaler_all = 63017;\n\toptional bool unmarshaler_all = 63018;\n\toptional bool stable_marshaler_all = 63019;\n\n\toptional bool sizer_all = 63020;\n\n\toptional bool goproto_enum_stringer_all = 63021;\n\toptional bool enum_stringer_all = 63022;\n\n\toptional bool unsafe_marshaler_all = 63023;\n\toptional bool unsafe_unmarshaler_all = 63024;\n\n\toptional bool goproto_extensions_map_all = 63025;\n\toptional bool goproto_unrecognized_all = 63026;\n\toptional bool gogoproto_import = 63027;\n\toptional bool protosizer_all = 63028;\n\toptional bool compare_all = 63029;\n    optional bool typedecl_all = 63030;\n    optional bool enumdecl_all = 63031;\n\n\toptional bool goproto_registration = 63032;\n\toptional bool messagename_all = 63033;\n\n\toptional bool goproto_sizecache_all = 63034;\n\toptional bool goproto_unkeyed_all = 63035;\n}\n\nextend google.protobuf.MessageOptions {\n\toptional bool goproto_getters = 64001;\n\toptional bool goproto_stringer = 64003;\n\toptional bool verbose_equal = 64004;\n\toptional bool face = 64005;\n\toptional bool gostring = 64006;\n\toptional bool populate = 64007;\n\toptional bool stringer = 67008;\n\toptional bool onlyone = 64009;\n\n\toptional bool equal = 64013;\n\toptional bool description = 64014;\n\toptional bool testgen = 64015;\n\toptional bool benchgen = 64016;\n\toptional bool marshaler = 64017;\n\toptional bool unmarshaler = 64018;\n\toptional bool stable_marshaler = 64019;\n\n\toptional bool sizer = 64020;\n\n\toptional bool unsafe_marshaler = 64023;\n\toptional bool unsafe_unmarshaler = 64024;\n\n\toptional bool goproto_extensions_map = 64025;\n\toptional bool goproto_unrecognized = 64026;\n\n\toptional bool protosizer = 64028;\n\toptional bool compare = 64029;\n\n\toptional bool typedecl = 64030;\n\n\toptional bool messagename = 64033;\n\n\toptional bool goproto_sizecache = 64034;\n\toptional bool goproto_unkeyed = 64035;\n}\n\nextend google.protobuf.FieldOptions {\n\toptional bool nullable = 65001;\n\toptional bool embed = 65002;\n\toptional string customtype = 65003;\n\toptional string customname = 65004;\n\toptional string jsontag = 65005;\n\toptional string moretags = 65006;\n\toptional string casttype = 65007;\n\toptional string castkey = 65008;\n\toptional string castvalue = 65009;\n\n\toptional bool stdtime = 65010;\n\toptional bool stdduration = 65011;\n\toptional bool wktpointer = 65012;\n\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/gogoproto/helper.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage gogoproto\n\nimport google_protobuf \"github.com/gogo/protobuf/protoc-gen-gogo/descriptor\"\nimport proto \"github.com/gogo/protobuf/proto\"\n\nfunc IsEmbed(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Embed, false)\n}\n\nfunc IsNullable(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Nullable, true)\n}\n\nfunc IsStdTime(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Stdtime, false)\n}\n\nfunc IsStdDuration(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Stdduration, false)\n}\n\nfunc IsStdDouble(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.DoubleValue\"\n}\n\nfunc IsStdFloat(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.FloatValue\"\n}\n\nfunc IsStdInt64(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.Int64Value\"\n}\n\nfunc IsStdUInt64(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.UInt64Value\"\n}\n\nfunc IsStdInt32(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.Int32Value\"\n}\n\nfunc IsStdUInt32(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.UInt32Value\"\n}\n\nfunc IsStdBool(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.BoolValue\"\n}\n\nfunc IsStdString(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.StringValue\"\n}\n\nfunc IsStdBytes(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == \".google.protobuf.BytesValue\"\n}\n\nfunc IsStdType(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn (IsStdTime(field) || IsStdDuration(field) ||\n\t\tIsStdDouble(field) || IsStdFloat(field) ||\n\t\tIsStdInt64(field) || IsStdUInt64(field) ||\n\t\tIsStdInt32(field) || IsStdUInt32(field) ||\n\t\tIsStdBool(field) ||\n\t\tIsStdString(field) || IsStdBytes(field))\n}\n\nfunc IsWktPtr(field *google_protobuf.FieldDescriptorProto) bool {\n\treturn proto.GetBoolExtension(field.Options, E_Wktpointer, false)\n}\n\nfunc NeedsNilCheck(proto3 bool, field *google_protobuf.FieldDescriptorProto) bool {\n\tnullable := IsNullable(field)\n\tif field.IsMessage() || IsCustomType(field) {\n\t\treturn nullable\n\t}\n\tif proto3 {\n\t\treturn false\n\t}\n\treturn nullable || *field.Type == google_protobuf.FieldDescriptorProto_TYPE_BYTES\n}\n\nfunc IsCustomType(field *google_protobuf.FieldDescriptorProto) bool {\n\ttyp := GetCustomType(field)\n\tif len(typ) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc IsCastType(field *google_protobuf.FieldDescriptorProto) bool {\n\ttyp := GetCastType(field)\n\tif len(typ) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc IsCastKey(field *google_protobuf.FieldDescriptorProto) bool {\n\ttyp := GetCastKey(field)\n\tif len(typ) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc IsCastValue(field *google_protobuf.FieldDescriptorProto) bool {\n\ttyp := GetCastValue(field)\n\tif len(typ) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc HasEnumDecl(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {\n\treturn proto.GetBoolExtension(enum.Options, E_Enumdecl, proto.GetBoolExtension(file.Options, E_EnumdeclAll, true))\n}\n\nfunc HasTypeDecl(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Typedecl, proto.GetBoolExtension(file.Options, E_TypedeclAll, true))\n}\n\nfunc GetCustomType(field *google_protobuf.FieldDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Customtype)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetCastType(field *google_protobuf.FieldDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Casttype)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetCastKey(field *google_protobuf.FieldDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Castkey)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetCastValue(field *google_protobuf.FieldDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Castvalue)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc IsCustomName(field *google_protobuf.FieldDescriptorProto) bool {\n\tname := GetCustomName(field)\n\tif len(name) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc IsEnumCustomName(field *google_protobuf.EnumDescriptorProto) bool {\n\tname := GetEnumCustomName(field)\n\tif len(name) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc IsEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) bool {\n\tname := GetEnumValueCustomName(field)\n\tif len(name) > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc GetCustomName(field *google_protobuf.FieldDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Customname)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetEnumCustomName(field *google_protobuf.EnumDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_EnumCustomname)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) string {\n\tif field == nil {\n\t\treturn \"\"\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_EnumvalueCustomname)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn *(v.(*string))\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string {\n\tif field == nil {\n\t\treturn nil\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Jsontag)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn (v.(*string))\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc GetMoreTags(field *google_protobuf.FieldDescriptorProto) *string {\n\tif field == nil {\n\t\treturn nil\n\t}\n\tif field.Options != nil {\n\t\tv, err := proto.GetExtension(field.Options, E_Moretags)\n\t\tif err == nil && v.(*string) != nil {\n\t\t\treturn (v.(*string))\n\t\t}\n\t}\n\treturn nil\n}\n\ntype EnableFunc func(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool\n\nfunc EnabledGoEnumPrefix(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {\n\treturn proto.GetBoolExtension(enum.Options, E_GoprotoEnumPrefix, proto.GetBoolExtension(file.Options, E_GoprotoEnumPrefixAll, true))\n}\n\nfunc EnabledGoStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoStringer, proto.GetBoolExtension(file.Options, E_GoprotoStringerAll, true))\n}\n\nfunc HasGoGetters(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoGetters, proto.GetBoolExtension(file.Options, E_GoprotoGettersAll, true))\n}\n\nfunc IsUnion(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Onlyone, proto.GetBoolExtension(file.Options, E_OnlyoneAll, false))\n}\n\nfunc HasGoString(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Gostring, proto.GetBoolExtension(file.Options, E_GostringAll, false))\n}\n\nfunc HasEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Equal, proto.GetBoolExtension(file.Options, E_EqualAll, false))\n}\n\nfunc HasVerboseEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_VerboseEqual, proto.GetBoolExtension(file.Options, E_VerboseEqualAll, false))\n}\n\nfunc IsStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Stringer, proto.GetBoolExtension(file.Options, E_StringerAll, false))\n}\n\nfunc IsFace(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Face, proto.GetBoolExtension(file.Options, E_FaceAll, false))\n}\n\nfunc HasDescription(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Description, proto.GetBoolExtension(file.Options, E_DescriptionAll, false))\n}\n\nfunc HasPopulate(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Populate, proto.GetBoolExtension(file.Options, E_PopulateAll, false))\n}\n\nfunc HasTestGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Testgen, proto.GetBoolExtension(file.Options, E_TestgenAll, false))\n}\n\nfunc HasBenchGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Benchgen, proto.GetBoolExtension(file.Options, E_BenchgenAll, false))\n}\n\nfunc IsMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Marshaler, proto.GetBoolExtension(file.Options, E_MarshalerAll, false))\n}\n\nfunc IsUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Unmarshaler, proto.GetBoolExtension(file.Options, E_UnmarshalerAll, false))\n}\n\nfunc IsStableMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_StableMarshaler, proto.GetBoolExtension(file.Options, E_StableMarshalerAll, false))\n}\n\nfunc IsSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Sizer, proto.GetBoolExtension(file.Options, E_SizerAll, false))\n}\n\nfunc IsProtoSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Protosizer, proto.GetBoolExtension(file.Options, E_ProtosizerAll, false))\n}\n\nfunc IsGoEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {\n\treturn proto.GetBoolExtension(enum.Options, E_GoprotoEnumStringer, proto.GetBoolExtension(file.Options, E_GoprotoEnumStringerAll, true))\n}\n\nfunc IsEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {\n\treturn proto.GetBoolExtension(enum.Options, E_EnumStringer, proto.GetBoolExtension(file.Options, E_EnumStringerAll, false))\n}\n\nfunc IsUnsafeMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_UnsafeMarshaler, proto.GetBoolExtension(file.Options, E_UnsafeMarshalerAll, false))\n}\n\nfunc IsUnsafeUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_UnsafeUnmarshaler, proto.GetBoolExtension(file.Options, E_UnsafeUnmarshalerAll, false))\n}\n\nfunc HasExtensionsMap(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoExtensionsMap, proto.GetBoolExtension(file.Options, E_GoprotoExtensionsMapAll, true))\n}\n\nfunc HasUnrecognized(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoUnrecognized, proto.GetBoolExtension(file.Options, E_GoprotoUnrecognizedAll, true))\n}\n\nfunc IsProto3(file *google_protobuf.FileDescriptorProto) bool {\n\treturn file.GetSyntax() == \"proto3\"\n}\n\nfunc ImportsGoGoProto(file *google_protobuf.FileDescriptorProto) bool {\n\treturn proto.GetBoolExtension(file.Options, E_GogoprotoImport, true)\n}\n\nfunc HasCompare(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Compare, proto.GetBoolExtension(file.Options, E_CompareAll, false))\n}\n\nfunc RegistersGolangProto(file *google_protobuf.FileDescriptorProto) bool {\n\treturn proto.GetBoolExtension(file.Options, E_GoprotoRegistration, false)\n}\n\nfunc HasMessageName(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_Messagename, proto.GetBoolExtension(file.Options, E_MessagenameAll, false))\n}\n\nfunc HasSizecache(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoSizecache, proto.GetBoolExtension(file.Options, E_GoprotoSizecacheAll, true))\n}\n\nfunc HasUnkeyed(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {\n\treturn proto.GetBoolExtension(message.Options, E_GoprotoUnkeyed, proto.GetBoolExtension(file.Options, E_GoprotoUnkeyedAll, true))\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/Makefile",
    "content": "# Go support for Protocol Buffers - Google's data interchange format\n#\n# Copyright 2010 The Go Authors.  All rights reserved.\n# https://github.com/golang/protobuf\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n#     * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#     * Redistributions in binary form must reproduce the above\n# copyright notice, this list of conditions and the following disclaimer\n# in the documentation and/or other materials provided with the\n# distribution.\n#     * Neither the name of Google Inc. nor the names of its\n# contributors may be used to endorse or promote products derived from\n# this software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\ninstall:\n\tgo install\n\ntest: install generate-test-pbs\n\tgo test\n\n\ngenerate-test-pbs:\n\tmake install\n\tmake -C test_proto\n\tmake -C proto3_proto\n\tmake\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/clone.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer deep copy and merge.\n// TODO: RawMessage.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Clone returns a deep copy of a protocol buffer.\nfunc Clone(src Message) Message {\n\tin := reflect.ValueOf(src)\n\tif in.IsNil() {\n\t\treturn src\n\t}\n\tout := reflect.New(in.Type().Elem())\n\tdst := out.Interface().(Message)\n\tMerge(dst, src)\n\treturn dst\n}\n\n// Merger is the interface representing objects that can merge messages of the same type.\ntype Merger interface {\n\t// Merge merges src into this message.\n\t// Required and optional fields that are set in src will be set to that value in dst.\n\t// Elements of repeated fields will be appended.\n\t//\n\t// Merge may panic if called with a different argument type than the receiver.\n\tMerge(src Message)\n}\n\n// generatedMerger is the custom merge method that generated protos will have.\n// We must add this method since a generate Merge method will conflict with\n// many existing protos that have a Merge data field already defined.\ntype generatedMerger interface {\n\tXXX_Merge(src Message)\n}\n\n// Merge merges src into dst.\n// Required and optional fields that are set in src will be set to that value in dst.\n// Elements of repeated fields will be appended.\n// Merge panics if src and dst are not the same type, or if dst is nil.\nfunc Merge(dst, src Message) {\n\tif m, ok := dst.(Merger); ok {\n\t\tm.Merge(src)\n\t\treturn\n\t}\n\n\tin := reflect.ValueOf(src)\n\tout := reflect.ValueOf(dst)\n\tif out.IsNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif in.Type() != out.Type() {\n\t\tpanic(fmt.Sprintf(\"proto.Merge(%T, %T) type mismatch\", dst, src))\n\t}\n\tif in.IsNil() {\n\t\treturn // Merge from nil src is a noop\n\t}\n\tif m, ok := dst.(generatedMerger); ok {\n\t\tm.XXX_Merge(src)\n\t\treturn\n\t}\n\tmergeStruct(out.Elem(), in.Elem())\n}\n\nfunc mergeStruct(out, in reflect.Value) {\n\tsprop := GetProperties(in.Type())\n\tfor i := 0; i < in.NumField(); i++ {\n\t\tf := in.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tmergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i])\n\t}\n\n\tif emIn, ok := in.Addr().Interface().(extensionsBytes); ok {\n\t\temOut := out.Addr().Interface().(extensionsBytes)\n\t\tbIn := emIn.GetExtensions()\n\t\tbOut := emOut.GetExtensions()\n\t\t*bOut = append(*bOut, *bIn...)\n\t} else if emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tuf := in.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn\n\t}\n\tuin := uf.Bytes()\n\tif len(uin) > 0 {\n\t\tout.FieldByName(\"XXX_unrecognized\").SetBytes(append([]byte(nil), uin...))\n\t}\n}\n\n// mergeAny performs a merge between two values of the same type.\n// viaPtr indicates whether the values were indirected through a pointer (implying proto2).\n// prop is set if this is a struct field (it may be nil).\nfunc mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) {\n\tif in.Type() == protoMessageType {\n\t\tif !in.IsNil() {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.ValueOf(Clone(in.Interface().(Message))))\n\t\t\t} else {\n\t\t\t\tMerge(out.Interface().(Message), in.Interface().(Message))\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\tif !viaPtr && isProto3Zero(in) {\n\t\t\treturn\n\t\t}\n\t\tout.Set(in)\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; copy non-nil values.\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\t// Allocate destination if it is not set, or set to a different type.\n\t\t// Otherwise we will merge as normal.\n\t\tif out.IsNil() || out.Elem().Type() != in.Elem().Type() {\n\t\t\tout.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T)\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), false, nil)\n\tcase reflect.Map:\n\t\tif in.Len() == 0 {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeMap(in.Type()))\n\t\t}\n\t\t// For maps with value types of *T or []byte we need to deep copy each value.\n\t\telemKind := in.Type().Elem().Kind()\n\t\tfor _, key := range in.MapKeys() {\n\t\t\tvar val reflect.Value\n\t\t\tswitch elemKind {\n\t\t\tcase reflect.Ptr:\n\t\t\t\tval = reflect.New(in.Type().Elem().Elem())\n\t\t\t\tmergeAny(val, in.MapIndex(key), false, nil)\n\t\t\tcase reflect.Slice:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\tdefault:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t}\n\t\t\tout.SetMapIndex(key, val)\n\t\t}\n\tcase reflect.Ptr:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.New(in.Elem().Type()))\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), true, nil)\n\tcase reflect.Slice:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif in.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// []byte is a scalar bytes field, not a repeated field.\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value, and should not\n\t\t\t// be merged.\n\t\t\tif prop != nil && prop.proto3 && in.Len() == 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Make a deep copy.\n\t\t\t// Append to []byte{} instead of []byte(nil) so that we never end up\n\t\t\t// with a nil result.\n\t\t\tout.SetBytes(append([]byte{}, in.Bytes()...))\n\t\t\treturn\n\t\t}\n\t\tn := in.Len()\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeSlice(in.Type(), 0, n))\n\t\t}\n\t\tswitch in.Type().Elem().Kind() {\n\t\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\t\tout.Set(reflect.AppendSlice(out, in))\n\t\tdefault:\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tx := reflect.Indirect(reflect.New(in.Type().Elem()))\n\t\t\t\tmergeAny(x, in.Index(i), false, nil)\n\t\t\t\tout.Set(reflect.Append(out, x))\n\t\t\t}\n\t\t}\n\tcase reflect.Struct:\n\t\tmergeStruct(out, in)\n\tdefault:\n\t\t// unknown type, so not a protocol buffer\n\t\tlog.Printf(\"proto: don't know how to copy %v\", in)\n\t}\n}\n\nfunc mergeExtension(out, in map[int32]Extension) {\n\tfor extNum, eIn := range in {\n\t\teOut := Extension{desc: eIn.desc}\n\t\tif eIn.value != nil {\n\t\t\tv := reflect.New(reflect.TypeOf(eIn.value)).Elem()\n\t\t\tmergeAny(v, reflect.ValueOf(eIn.value), false, nil)\n\t\t\teOut.value = v.Interface()\n\t\t}\n\t\tif eIn.enc != nil {\n\t\t\teOut.enc = make([]byte, len(eIn.enc))\n\t\t\tcopy(eOut.enc, eIn.enc)\n\t\t}\n\n\t\tout[extNum] = eOut\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/custom_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport \"reflect\"\n\ntype custom interface {\n\tMarshal() ([]byte, error)\n\tUnmarshal(data []byte) error\n\tSize() int\n}\n\nvar customType = reflect.TypeOf((*custom)(nil)).Elem()\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/decode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for decoding protocol buffer data to construct in-memory representations.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n)\n\n// errOverflow is returned when an integer is too large to be represented.\nvar errOverflow = errors.New(\"proto: integer overflow\")\n\n// ErrInternalBadWireType is returned by generated code when an incorrect\n// wire type is encountered. It does not get returned to user code.\nvar ErrInternalBadWireType = errors.New(\"proto: internal error: bad wiretype for oneof\")\n\n// DecodeVarint reads a varint-encoded integer from the slice.\n// It returns the integer and the number of bytes consumed, or\n// zero if there is not enough.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc DecodeVarint(buf []byte) (x uint64, n int) {\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif n >= len(buf) {\n\t\t\treturn 0, 0\n\t\t}\n\t\tb := uint64(buf[n])\n\t\tn++\n\t\tx |= (b & 0x7F) << shift\n\t\tif (b & 0x80) == 0 {\n\t\t\treturn x, n\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\treturn 0, 0\n}\n\nfunc (p *Buffer) decodeVarintSlow() (x uint64, err error) {\n\ti := p.index\n\tl := len(p.buf)\n\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= l {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\treturn\n\t\t}\n\t\tb := p.buf[i]\n\t\ti++\n\t\tx |= (uint64(b) & 0x7F) << shift\n\t\tif b < 0x80 {\n\t\t\tp.index = i\n\t\t\treturn\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\terr = errOverflow\n\treturn\n}\n\n// DecodeVarint reads a varint-encoded integer from the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) DecodeVarint() (x uint64, err error) {\n\ti := p.index\n\tbuf := p.buf\n\n\tif i >= len(buf) {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t} else if buf[i] < 0x80 {\n\t\tp.index++\n\t\treturn uint64(buf[i]), nil\n\t} else if len(buf)-i < 10 {\n\t\treturn p.decodeVarintSlow()\n\t}\n\n\tvar b uint64\n\t// we already checked the first byte\n\tx = uint64(buf[i]) - 0x80\n\ti++\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 7\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 7\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 14\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 14\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 21\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 21\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 28\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 28\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 35\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 35\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 42\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 42\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 49\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 49\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 56\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 56\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 63\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\n\treturn 0, errOverflow\n\ndone:\n\tp.index = i\n\treturn x, nil\n}\n\n// DecodeFixed64 reads a 64-bit integer from the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) DecodeFixed64() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 8\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-8])\n\tx |= uint64(p.buf[i-7]) << 8\n\tx |= uint64(p.buf[i-6]) << 16\n\tx |= uint64(p.buf[i-5]) << 24\n\tx |= uint64(p.buf[i-4]) << 32\n\tx |= uint64(p.buf[i-3]) << 40\n\tx |= uint64(p.buf[i-2]) << 48\n\tx |= uint64(p.buf[i-1]) << 56\n\treturn\n}\n\n// DecodeFixed32 reads a 32-bit integer from the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) DecodeFixed32() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 4\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-4])\n\tx |= uint64(p.buf[i-3]) << 8\n\tx |= uint64(p.buf[i-2]) << 16\n\tx |= uint64(p.buf[i-1]) << 24\n\treturn\n}\n\n// DecodeZigzag64 reads a zigzag-encoded 64-bit integer\n// from the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag64() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = (x >> 1) ^ uint64((int64(x&1)<<63)>>63)\n\treturn\n}\n\n// DecodeZigzag32 reads a zigzag-encoded 32-bit integer\n// from  the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag32() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31))\n\treturn\n}\n\n// DecodeRawBytes reads a count-delimited byte buffer from the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {\n\tn, err := p.DecodeVarint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnb := int(n)\n\tif nb < 0 {\n\t\treturn nil, fmt.Errorf(\"proto: bad byte length %d\", nb)\n\t}\n\tend := p.index + nb\n\tif end < p.index || end > len(p.buf) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\n\tif !alloc {\n\t\t// todo: check if can get more uses of alloc=false\n\t\tbuf = p.buf[p.index:end]\n\t\tp.index += nb\n\t\treturn\n\t}\n\n\tbuf = make([]byte, nb)\n\tcopy(buf, p.buf[p.index:])\n\tp.index += nb\n\treturn\n}\n\n// DecodeStringBytes reads an encoded string from the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) DecodeStringBytes() (s string, err error) {\n\tbuf, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn string(buf), nil\n}\n\n// Unmarshaler is the interface representing objects that can\n// unmarshal themselves.  The argument points to data that may be\n// overwritten, so implementations should not keep references to the\n// buffer.\n// Unmarshal implementations should not clear the receiver.\n// Any unmarshaled data should be merged into the receiver.\n// Callers of Unmarshal that do not want to retain existing data\n// should Reset the receiver before calling Unmarshal.\ntype Unmarshaler interface {\n\tUnmarshal([]byte) error\n}\n\n// newUnmarshaler is the interface representing objects that can\n// unmarshal themselves. The semantics are identical to Unmarshaler.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newUnmarshaler interface {\n\tXXX_Unmarshal([]byte) error\n}\n\n// Unmarshal parses the protocol buffer representation in buf and places the\n// decoded result in pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// Unmarshal resets pb before starting to unmarshal, so any\n// existing data in pb is always removed. Use UnmarshalMerge\n// to preserve and append to existing data.\nfunc Unmarshal(buf []byte, pb Message) error {\n\tpb.Reset()\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// UnmarshalMerge parses the protocol buffer representation in buf and\n// writes the decoded result to pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// UnmarshalMerge merges into existing data in pb.\n// Most code should use Unmarshal instead.\nfunc UnmarshalMerge(buf []byte, pb Message) error {\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// DecodeMessage reads a count-delimited message from the Buffer.\nfunc (p *Buffer) DecodeMessage(pb Message) error {\n\tenc, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn NewBuffer(enc).Unmarshal(pb)\n}\n\n// DecodeGroup reads a tag-delimited group from the Buffer.\n// StartGroup tag is already consumed. This function consumes\n// EndGroup tag.\nfunc (p *Buffer) DecodeGroup(pb Message) error {\n\tb := p.buf[p.index:]\n\tx, y := findEndGroup(b)\n\tif x < 0 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\terr := Unmarshal(b[:x], pb)\n\tp.index += y\n\treturn err\n}\n\n// Unmarshal parses the protocol buffer representation in the\n// Buffer and places the decoded result in pb.  If the struct\n// underlying pb does not match the data in the buffer, the results can be\n// unpredictable.\n//\n// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal.\nfunc (p *Buffer) Unmarshal(pb Message) error {\n\t// If the object can unmarshal itself, let it.\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\terr := u.XXX_Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\terr := u.Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\n\t// Slow workaround for messages that aren't Unmarshalers.\n\t// This includes some hand-coded .pb.go files and\n\t// bootstrap protos.\n\t// TODO: fix all of those and then add Unmarshal to\n\t// the Message interface. Then:\n\t// The cast above and code below can be deleted.\n\t// The old unmarshaler can be deleted.\n\t// Clients can call Unmarshal directly (can already do that, actually).\n\tvar info InternalMessageInfo\n\terr := info.Unmarshal(pb, p.buf[p.index:])\n\tp.index = len(p.buf)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/deprecated.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2018 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport \"errors\"\n\n// Deprecated: do not use.\ntype Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }\n\n// Deprecated: do not use.\nfunc GetStats() Stats { return Stats{} }\n\n// Deprecated: do not use.\nfunc MarshalMessageSet(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSet([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc MarshalMessageSetJSON(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSetJSON([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc RegisterMessageSetType(Message, int32, string) {}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/discard.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2017 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\ntype generatedDiscarder interface {\n\tXXX_DiscardUnknown()\n}\n\n// DiscardUnknown recursively discards all unknown fields from this message\n// and all embedded messages.\n//\n// When unmarshaling a message with unrecognized fields, the tags and values\n// of such fields are preserved in the Message. This allows a later call to\n// marshal to be able to produce a message that continues to have those\n// unrecognized fields. To avoid this, DiscardUnknown is used to\n// explicitly clear the unknown fields after unmarshaling.\n//\n// For proto2 messages, the unknown fields of message extensions are only\n// discarded from messages that have been accessed via GetExtension.\nfunc DiscardUnknown(m Message) {\n\tif m, ok := m.(generatedDiscarder); ok {\n\t\tm.XXX_DiscardUnknown()\n\t\treturn\n\t}\n\t// TODO: Dynamically populate a InternalMessageInfo for legacy messages,\n\t// but the master branch has no implementation for InternalMessageInfo,\n\t// so it would be more work to replicate that approach.\n\tdiscardLegacy(m)\n}\n\n// DiscardUnknown recursively discards all unknown fields.\nfunc (a *InternalMessageInfo) DiscardUnknown(m Message) {\n\tdi := atomicLoadDiscardInfo(&a.discard)\n\tif di == nil {\n\t\tdi = getDiscardInfo(reflect.TypeOf(m).Elem())\n\t\tatomicStoreDiscardInfo(&a.discard, di)\n\t}\n\tdi.discard(toPointer(&m))\n}\n\ntype discardInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []discardFieldInfo\n\tunrecognized field\n}\n\ntype discardFieldInfo struct {\n\tfield   field // Offset of field, guaranteed to be valid\n\tdiscard func(src pointer)\n}\n\nvar (\n\tdiscardInfoMap  = map[reflect.Type]*discardInfo{}\n\tdiscardInfoLock sync.Mutex\n)\n\nfunc getDiscardInfo(t reflect.Type) *discardInfo {\n\tdiscardInfoLock.Lock()\n\tdefer discardInfoLock.Unlock()\n\tdi := discardInfoMap[t]\n\tif di == nil {\n\t\tdi = &discardInfo{typ: t}\n\t\tdiscardInfoMap[t] = di\n\t}\n\treturn di\n}\n\nfunc (di *discardInfo) discard(src pointer) {\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&di.initialized) == 0 {\n\t\tdi.computeDiscardInfo()\n\t}\n\n\tfor _, fi := range di.fields {\n\t\tsfp := src.offset(fi.field)\n\t\tfi.discard(sfp)\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(src.asPointerTo(di.typ).Interface()); err == nil {\n\t\t// Ignore lock since DiscardUnknown is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tDiscardUnknown(m)\n\t\t\t}\n\t\t}\n\t}\n\n\tif di.unrecognized.IsValid() {\n\t\t*src.offset(di.unrecognized).toBytes() = nil\n\t}\n}\n\nfunc (di *discardInfo) computeDiscardInfo() {\n\tdi.lock.Lock()\n\tdefer di.lock.Unlock()\n\tif di.initialized != 0 {\n\t\treturn\n\t}\n\tt := di.typ\n\tn := t.NumField()\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tdfi := discardFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a slice of pointers to primitive types\", t, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a direct struct value\", t, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tdiscardInfo := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\tdiscardInfo.discard(sp)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdiscardInfo := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdiscardInfo.discard(sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a map or a slice of map values\", t, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tif tf.Elem().Kind() == reflect.Ptr { // Proto struct (e.g., *T)\n\t\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tDiscardUnknown(val.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdfi.discard = func(pointer) {} // Noop\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a interface or a slice of interface values\", t, f.Name))\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tDiscardUnknown(sv.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\t\tdi.fields = append(di.fields, dfi)\n\t}\n\n\tdi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tdi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&di.initialized, 1)\n}\n\nfunc discardLegacy(m Message) {\n\tv := reflect.ValueOf(m)\n\tif v.Kind() != reflect.Ptr || v.IsNil() {\n\t\treturn\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Struct {\n\t\treturn\n\t}\n\tt := v.Type()\n\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tvf := v.Field(i)\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a slice of pointers to primitive types\", m, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a direct struct value\", m, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tfor j := 0; j < vf.Len(); j++ {\n\t\t\t\t\tdiscardLegacy(vf.Index(j).Interface().(Message))\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a map or a slice of map values\", m, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\ttv := vf.Type().Elem()\n\t\t\t\tif tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T)\n\t\t\t\t\tfor _, key := range vf.MapKeys() {\n\t\t\t\t\t\tval := vf.MapIndex(key)\n\t\t\t\t\t\tdiscardLegacy(val.Interface().(Message))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a interface or a slice of interface values\", m, f.Name))\n\t\t\tdefault: // E.g., test_proto.isCommunique_Union interface\n\t\t\t\tif !vf.IsNil() && f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t\tvf = vf.Elem() // E.g., *test_proto.Communique_Msg\n\t\t\t\t\tif !vf.IsNil() {\n\t\t\t\t\t\tvf = vf.Elem()   // E.g., test_proto.Communique_Msg\n\t\t\t\t\t\tvf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value\n\t\t\t\t\t\tif vf.Kind() == reflect.Ptr {\n\t\t\t\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif vf := v.FieldByName(\"XXX_unrecognized\"); vf.IsValid() {\n\t\tif vf.Type() != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tvf.Set(reflect.ValueOf([]byte(nil)))\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(m); err == nil {\n\t\t// Ignore lock since discardLegacy is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tdiscardLegacy(m)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// This file implements conversions between google.protobuf.Duration\n// and time.Duration.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n)\n\nconst (\n\t// Range of a Duration in seconds, as specified in\n\t// google/protobuf/duration.proto. This is about 10,000 years in seconds.\n\tmaxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)\n\tminSeconds = -maxSeconds\n)\n\n// validateDuration determines whether the Duration is valid according to the\n// definition in google/protobuf/duration.proto. A valid Duration\n// may still be too large to fit into a time.Duration (the range of Duration\n// is about 10,000 years, and the range of time.Duration is about 290).\nfunc validateDuration(d *duration) error {\n\tif d == nil {\n\t\treturn errors.New(\"duration: nil Duration\")\n\t}\n\tif d.Seconds < minSeconds || d.Seconds > maxSeconds {\n\t\treturn fmt.Errorf(\"duration: %#v: seconds out of range\", d)\n\t}\n\tif d.Nanos <= -1e9 || d.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"duration: %#v: nanos out of range\", d)\n\t}\n\t// Seconds and Nanos must have the same sign, unless d.Nanos is zero.\n\tif (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) {\n\t\treturn fmt.Errorf(\"duration: %#v: seconds and nanos have different signs\", d)\n\t}\n\treturn nil\n}\n\n// DurationFromProto converts a Duration to a time.Duration. DurationFromProto\n// returns an error if the Duration is invalid or is too large to be\n// represented in a time.Duration.\nfunc durationFromProto(p *duration) (time.Duration, error) {\n\tif err := validateDuration(p); err != nil {\n\t\treturn 0, err\n\t}\n\td := time.Duration(p.Seconds) * time.Second\n\tif int64(d/time.Second) != p.Seconds {\n\t\treturn 0, fmt.Errorf(\"duration: %#v is out of range for time.Duration\", p)\n\t}\n\tif p.Nanos != 0 {\n\t\td += time.Duration(p.Nanos)\n\t\tif (d < 0) != (p.Nanos < 0) {\n\t\t\treturn 0, fmt.Errorf(\"duration: %#v is out of range for time.Duration\", p)\n\t\t}\n\t}\n\treturn d, nil\n}\n\n// DurationProto converts a time.Duration to a Duration.\nfunc durationProto(d time.Duration) *duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &duration{\n\t\tSeconds: secs,\n\t\tNanos:   int32(nanos),\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\nvar durationType = reflect.TypeOf((*time.Duration)(nil)).Elem()\n\ntype duration struct {\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\tNanos   int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\nfunc (m *duration) Reset()       { *m = duration{} }\nfunc (*duration) ProtoMessage()  {}\nfunc (*duration) String() string { return \"duration<string>\" }\n\nfunc init() {\n\tRegisterType((*duration)(nil), \"gogo.protobuf.proto.duration\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n)\n\nvar (\n\t// errRepeatedHasNil is the error returned if Marshal is called with\n\t// a struct with a repeated field containing a nil element.\n\terrRepeatedHasNil = errors.New(\"proto: repeated field has nil element\")\n\n\t// errOneofHasNil is the error returned if Marshal is called with\n\t// a struct with a oneof field containing a nil element.\n\terrOneofHasNil = errors.New(\"proto: oneof field has nil value\")\n\n\t// ErrNil is the error returned if Marshal is called with nil.\n\tErrNil = errors.New(\"proto: Marshal called with nil\")\n\n\t// ErrTooLarge is the error returned if Marshal is called with a\n\t// message that encodes to >2GB.\n\tErrTooLarge = errors.New(\"proto: message encodes to over 2 GB\")\n)\n\n// The fundamental encoders that put bytes on the wire.\n// Those that take integer types all accept uint64 and are\n// therefore of type valueEncoder.\n\nconst maxVarintBytes = 10 // maximum length of a varint\n\n// EncodeVarint returns the varint encoding of x.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\n// Not used by the package itself, but helpful to clients\n// wishing to use the same encoding.\nfunc EncodeVarint(x uint64) []byte {\n\tvar buf [maxVarintBytes]byte\n\tvar n int\n\tfor n = 0; x > 127; n++ {\n\t\tbuf[n] = 0x80 | uint8(x&0x7F)\n\t\tx >>= 7\n\t}\n\tbuf[n] = uint8(x)\n\tn++\n\treturn buf[0:n]\n}\n\n// EncodeVarint writes a varint-encoded integer to the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) EncodeVarint(x uint64) error {\n\tfor x >= 1<<7 {\n\t\tp.buf = append(p.buf, uint8(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\tp.buf = append(p.buf, uint8(x))\n\treturn nil\n}\n\n// SizeVarint returns the varint encoding size of an integer.\nfunc SizeVarint(x uint64) int {\n\tswitch {\n\tcase x < 1<<7:\n\t\treturn 1\n\tcase x < 1<<14:\n\t\treturn 2\n\tcase x < 1<<21:\n\t\treturn 3\n\tcase x < 1<<28:\n\t\treturn 4\n\tcase x < 1<<35:\n\t\treturn 5\n\tcase x < 1<<42:\n\t\treturn 6\n\tcase x < 1<<49:\n\t\treturn 7\n\tcase x < 1<<56:\n\t\treturn 8\n\tcase x < 1<<63:\n\t\treturn 9\n\t}\n\treturn 10\n}\n\n// EncodeFixed64 writes a 64-bit integer to the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) EncodeFixed64(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24),\n\t\tuint8(x>>32),\n\t\tuint8(x>>40),\n\t\tuint8(x>>48),\n\t\tuint8(x>>56))\n\treturn nil\n}\n\n// EncodeFixed32 writes a 32-bit integer to the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) EncodeFixed32(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24))\n\treturn nil\n}\n\n// EncodeZigzag64 writes a zigzag-encoded 64-bit integer\n// to the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag64(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\n\n// EncodeZigzag32 writes a zigzag-encoded 32-bit integer\n// to the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag32(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))\n}\n\n// EncodeRawBytes writes a count-delimited byte buffer to the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) EncodeRawBytes(b []byte) error {\n\tp.EncodeVarint(uint64(len(b)))\n\tp.buf = append(p.buf, b...)\n\treturn nil\n}\n\n// EncodeStringBytes writes an encoded string to the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) EncodeStringBytes(s string) error {\n\tp.EncodeVarint(uint64(len(s)))\n\tp.buf = append(p.buf, s...)\n\treturn nil\n}\n\n// Marshaler is the interface representing objects that can marshal themselves.\ntype Marshaler interface {\n\tMarshal() ([]byte, error)\n}\n\n// EncodeMessage writes the protocol buffer to the Buffer,\n// prefixed by a varint-encoded length.\nfunc (p *Buffer) EncodeMessage(pb Message) error {\n\tsiz := Size(pb)\n\tsizVar := SizeVarint(uint64(siz))\n\tp.grow(siz + sizVar)\n\tp.EncodeVarint(uint64(siz))\n\treturn p.Marshal(pb)\n}\n\n// All protocol buffer fields are nillable, but be careful.\nfunc isNil(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nfunc NewRequiredNotSetError(field string) *RequiredNotSetError {\n\treturn &RequiredNotSetError{field}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/equal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer comparison.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n/*\nEqual returns true iff protocol buffers a and b are equal.\nThe arguments must both be pointers to protocol buffer structs.\n\nEquality is defined in this way:\n  - Two messages are equal iff they are the same type,\n    corresponding fields are equal, unknown field sets\n    are equal, and extensions sets are equal.\n  - Two set scalar fields are equal iff their values are equal.\n    If the fields are of a floating-point type, remember that\n    NaN != x for all x, including NaN. If the message is defined\n    in a proto3 .proto file, fields are not \"set\"; specifically,\n    zero length proto3 \"bytes\" fields are equal (nil == {}).\n  - Two repeated fields are equal iff their lengths are the same,\n    and their corresponding elements are equal. Note a \"bytes\" field,\n    although represented by []byte, is not a repeated field and the\n    rule for the scalar fields described above applies.\n  - Two unset fields are equal.\n  - Two unknown field sets are equal if their current\n    encoded state is equal.\n  - Two extension sets are equal iff they have corresponding\n    elements that are pairwise equal.\n  - Two map fields are equal iff their lengths are the same,\n    and they contain the same set of elements. Zero-length map\n    fields are equal.\n  - Every other combination of things are not equal.\n\nThe return value is undefined if a and b are not protocol buffers.\n*/\nfunc Equal(a, b Message) bool {\n\tif a == nil || b == nil {\n\t\treturn a == b\n\t}\n\tv1, v2 := reflect.ValueOf(a), reflect.ValueOf(b)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif v1.Kind() == reflect.Ptr {\n\t\tif v1.IsNil() {\n\t\t\treturn v2.IsNil()\n\t\t}\n\t\tif v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\tv1, v2 = v1.Elem(), v2.Elem()\n\t}\n\tif v1.Kind() != reflect.Struct {\n\t\treturn false\n\t}\n\treturn equalStruct(v1, v2)\n}\n\n// v1 and v2 are known to have the same type.\nfunc equalStruct(v1, v2 reflect.Value) bool {\n\tsprop := GetProperties(v1.Type())\n\tfor i := 0; i < v1.NumField(); i++ {\n\t\tf := v1.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tf1, f2 := v1.Field(i), v2.Field(i)\n\t\tif f.Type.Kind() == reflect.Ptr {\n\t\t\tif n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 {\n\t\t\t\t// both unset\n\t\t\t\tcontinue\n\t\t\t} else if n1 != n2 {\n\t\t\t\t// set/unset mismatch\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tf1, f2 = f1.Elem(), f2.Elem()\n\t\t}\n\t\tif !equalAny(f1, f2, sprop.Prop[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_InternalExtensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_InternalExtensions\")\n\t\tif !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_extensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_extensions\")\n\t\tif !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tuf := v1.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn true\n\t}\n\n\tu1 := uf.Bytes()\n\tu2 := v2.FieldByName(\"XXX_unrecognized\").Bytes()\n\treturn bytes.Equal(u1, u2)\n}\n\n// v1 and v2 are known to have the same type.\n// prop may be nil.\nfunc equalAny(v1, v2 reflect.Value, prop *Properties) bool {\n\tif v1.Type() == protoMessageType {\n\t\tm1, _ := v1.Interface().(Message)\n\t\tm2, _ := v2.Interface().(Message)\n\t\treturn Equal(m1, m2)\n\t}\n\tswitch v1.Kind() {\n\tcase reflect.Bool:\n\t\treturn v1.Bool() == v2.Bool()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v1.Float() == v2.Float()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v1.Int() == v2.Int()\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; compare the inner values.\n\t\tn1, n2 := v1.IsNil(), v2.IsNil()\n\t\tif n1 || n2 {\n\t\t\treturn n1 == n2\n\t\t}\n\t\te1, e2 := v1.Elem(), v2.Elem()\n\t\tif e1.Type() != e2.Type() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(e1, e2, nil)\n\tcase reflect.Map:\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor _, key := range v1.MapKeys() {\n\t\t\tval2 := v2.MapIndex(key)\n\t\t\tif !val2.IsValid() {\n\t\t\t\t// This key was not found in the second map.\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !equalAny(v1.MapIndex(key), val2, nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Ptr:\n\t\t// Maps may have nil values in them, so check for nil.\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(v1.Elem(), v2.Elem(), prop)\n\tcase reflect.Slice:\n\t\tif v1.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// short circuit: []byte\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value.\n\t\t\tif prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte))\n\t\t}\n\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !equalAny(v1.Index(i), v2.Index(i), prop) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.String:\n\t\treturn v1.Interface().(string) == v2.Interface().(string)\n\tcase reflect.Struct:\n\t\treturn equalStruct(v1, v2)\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v1.Uint() == v2.Uint()\n\t}\n\n\t// unknown type, so not a protocol buffer\n\tlog.Printf(\"proto: don't know how to compare %v\", v1)\n\treturn false\n}\n\n// base is the struct type that the extensions are based on.\n// x1 and x2 are InternalExtensions.\nfunc equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool {\n\tem1, _ := x1.extensionsRead()\n\tem2, _ := x2.extensionsRead()\n\treturn equalExtMap(base, em1, em2)\n}\n\nfunc equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool {\n\tif len(em1) != len(em2) {\n\t\treturn false\n\t}\n\n\tfor extNum, e1 := range em1 {\n\t\te2, ok := em2[extNum]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\n\t\tm1, m2 := e1.value, e2.value\n\n\t\tif m1 == nil && m2 == nil {\n\t\t\t// Both have only encoded form.\n\t\t\tif bytes.Equal(e1.enc, e2.enc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The bytes are different, but the extensions might still be\n\t\t\t// equal. We need to decode them to compare.\n\t\t}\n\n\t\tif m1 != nil && m2 != nil {\n\t\t\t// Both are unencoded.\n\t\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// At least one is encoded. To do a semantically correct comparison\n\t\t// we need to unmarshal them first.\n\t\tvar desc *ExtensionDesc\n\t\tif m := extensionMaps[base]; m != nil {\n\t\t\tdesc = m[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// If both have only encoded form and the bytes are the same,\n\t\t\t// it is handled above. We get here when the bytes are different.\n\t\t\t// We don't know how to decode it, so just compare them as byte\n\t\t\t// slices.\n\t\t\tlog.Printf(\"proto: don't know how to compare extension %d of %v\", extNum, base)\n\t\t\treturn false\n\t\t}\n\t\tvar err error\n\t\tif m1 == nil {\n\t\t\tm1, err = decodeExtension(e1.enc, desc)\n\t\t}\n\t\tif m2 == nil && err == nil {\n\t\t\tm2, err = decodeExtension(e2.enc, desc)\n\t\t}\n\t\tif err != nil {\n\t\t\t// The encoded form is invalid.\n\t\t\tlog.Printf(\"proto: badly encoded extension %d of %v: %v\", extNum, base, err)\n\t\t\treturn false\n\t\t}\n\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Types and routines for supporting protocol buffer extensions.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message.\nvar ErrMissingExtension = errors.New(\"proto: missing extension\")\n\n// ExtensionRange represents a range of message extensions for a protocol buffer.\n// Used in code generated by the protocol compiler.\ntype ExtensionRange struct {\n\tStart, End int32 // both inclusive\n}\n\n// extendableProto is an interface implemented by any protocol buffer generated by the current\n// proto compiler that may be extended.\ntype extendableProto interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\textensionsWrite() map[int32]Extension\n\textensionsRead() (map[int32]Extension, sync.Locker)\n}\n\n// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous\n// version of the proto compiler that may be extended.\ntype extendableProtoV1 interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\tExtensionMap() map[int32]Extension\n}\n\n// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto.\ntype extensionAdapter struct {\n\textendableProtoV1\n}\n\nfunc (e extensionAdapter) extensionsWrite() map[int32]Extension {\n\treturn e.ExtensionMap()\n}\n\nfunc (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {\n\treturn e.ExtensionMap(), notLocker{}\n}\n\n// notLocker is a sync.Locker whose Lock and Unlock methods are nops.\ntype notLocker struct{}\n\nfunc (n notLocker) Lock()   {}\nfunc (n notLocker) Unlock() {}\n\n// extendable returns the extendableProto interface for the given generated proto message.\n// If the proto message has the old extension format, it returns a wrapper that implements\n// the extendableProto interface.\nfunc extendable(p interface{}) (extendableProto, error) {\n\tswitch p := p.(type) {\n\tcase extendableProto:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn p, nil\n\tcase extendableProtoV1:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn extensionAdapter{p}, nil\n\tcase extensionsBytes:\n\t\treturn slowExtensionAdapter{p}, nil\n\t}\n\t// Don't allocate a specific error containing %T:\n\t// this is the hot path for Clone and MarshalText.\n\treturn nil, errNotExtendable\n}\n\nvar errNotExtendable = errors.New(\"proto: not an extendable proto.Message\")\n\nfunc isNilPtr(x interface{}) bool {\n\tv := reflect.ValueOf(x)\n\treturn v.Kind() == reflect.Ptr && v.IsNil()\n}\n\n// XXX_InternalExtensions is an internal representation of proto extensions.\n//\n// Each generated message struct type embeds an anonymous XXX_InternalExtensions field,\n// thus gaining the unexported 'extensions' method, which can be called only from the proto package.\n//\n// The methods of XXX_InternalExtensions are not concurrency safe in general,\n// but calls to logically read-only methods such as has and get may be executed concurrently.\ntype XXX_InternalExtensions struct {\n\t// The struct must be indirect so that if a user inadvertently copies a\n\t// generated message and its embedded XXX_InternalExtensions, they\n\t// avoid the mayhem of a copied mutex.\n\t//\n\t// The mutex serializes all logically read-only operations to p.extensionMap.\n\t// It is up to the client to ensure that write operations to p.extensionMap are\n\t// mutually exclusive with other accesses.\n\tp *struct {\n\t\tmu           sync.Mutex\n\t\textensionMap map[int32]Extension\n\t}\n}\n\n// extensionsWrite returns the extension map, creating it on first use.\nfunc (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension {\n\tif e.p == nil {\n\t\te.p = new(struct {\n\t\t\tmu           sync.Mutex\n\t\t\textensionMap map[int32]Extension\n\t\t})\n\t\te.p.extensionMap = make(map[int32]Extension)\n\t}\n\treturn e.p.extensionMap\n}\n\n// extensionsRead returns the extensions map for read-only use.  It may be nil.\n// The caller must hold the returned mutex's lock when accessing Elements within the map.\nfunc (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) {\n\tif e.p == nil {\n\t\treturn nil, nil\n\t}\n\treturn e.p.extensionMap, &e.p.mu\n}\n\n// ExtensionDesc represents an extension specification.\n// Used in generated code from the protocol compiler.\ntype ExtensionDesc struct {\n\tExtendedType  Message     // nil pointer to the type that is being extended\n\tExtensionType interface{} // nil pointer to the extension type\n\tField         int32       // field number\n\tName          string      // fully-qualified name of extension, for text formatting\n\tTag           string      // protobuf tag style\n\tFilename      string      // name of the file in which the extension is defined\n}\n\nfunc (ed *ExtensionDesc) repeated() bool {\n\tt := reflect.TypeOf(ed.ExtensionType)\n\treturn t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n}\n\n// Extension represents an extension in a message.\ntype Extension struct {\n\t// When an extension is stored in a message using SetExtension\n\t// only desc and value are set. When the message is marshaled\n\t// enc will be set to the encoded form of the message.\n\t//\n\t// When a message is unmarshaled and contains extensions, each\n\t// extension will have only enc set. When such an extension is\n\t// accessed using GetExtension (or GetExtensions) desc and value\n\t// will be set.\n\tdesc  *ExtensionDesc\n\tvalue interface{}\n\tenc   []byte\n}\n\n// SetRawExtension is for testing only.\nfunc SetRawExtension(base Message, id int32, b []byte) {\n\tif ebase, ok := base.(extensionsBytes); ok {\n\t\tclearExtension(base, id)\n\t\text := ebase.GetExtensions()\n\t\t*ext = append(*ext, b...)\n\t\treturn\n\t}\n\tepb, err := extendable(base)\n\tif err != nil {\n\t\treturn\n\t}\n\textmap := epb.extensionsWrite()\n\textmap[id] = Extension{enc: b}\n}\n\n// isExtensionField returns true iff the given field number is in an extension range.\nfunc isExtensionField(pb extendableProto, field int32) bool {\n\tfor _, er := range pb.ExtensionRangeArray() {\n\t\tif er.Start <= field && field <= er.End {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// checkExtensionTypes checks that the given extension is valid for pb.\nfunc checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error {\n\tvar pbi interface{} = pb\n\t// Check the extended type.\n\tif ea, ok := pbi.(extensionAdapter); ok {\n\t\tpbi = ea.extendableProtoV1\n\t}\n\tif ea, ok := pbi.(slowExtensionAdapter); ok {\n\t\tpbi = ea.extensionsBytes\n\t}\n\tif a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %v does not extend %v\", b, a)\n\t}\n\t// Check the range.\n\tif !isExtensionField(pb, extension.Field) {\n\t\treturn errors.New(\"proto: bad extension number; not in declared ranges\")\n\t}\n\treturn nil\n}\n\n// extPropKey is sufficient to uniquely identify an extension.\ntype extPropKey struct {\n\tbase  reflect.Type\n\tfield int32\n}\n\nvar extProp = struct {\n\tsync.RWMutex\n\tm map[extPropKey]*Properties\n}{\n\tm: make(map[extPropKey]*Properties),\n}\n\nfunc extensionProperties(ed *ExtensionDesc) *Properties {\n\tkey := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field}\n\n\textProp.RLock()\n\tif prop, ok := extProp.m[key]; ok {\n\t\textProp.RUnlock()\n\t\treturn prop\n\t}\n\textProp.RUnlock()\n\n\textProp.Lock()\n\tdefer extProp.Unlock()\n\t// Check again.\n\tif prop, ok := extProp.m[key]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(Properties)\n\tprop.Init(reflect.TypeOf(ed.ExtensionType), \"unknown_name\", ed.Tag, nil)\n\textProp.m[key] = prop\n\treturn prop\n}\n\n// HasExtension returns whether the given extension is present in pb.\nfunc HasExtension(pb Message, extension *ExtensionDesc) bool {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\tbuf := *ext\n\t\to := 0\n\t\tfor o < len(buf) {\n\t\t\ttag, n := DecodeVarint(buf[o:])\n\t\t\tfieldNum := int32(tag >> 3)\n\t\t\tif int32(fieldNum) == extension.Field {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\twireType := int(tag & 0x7)\n\t\t\to += n\n\t\t\tl, err := size(buf[o:], wireType)\n\t\t\tif err != nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\to += l\n\t\t}\n\t\treturn false\n\t}\n\t// TODO: Check types, field numbers, etc.?\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn false\n\t}\n\textmap, mu := epb.extensionsRead()\n\tif extmap == nil {\n\t\treturn false\n\t}\n\tmu.Lock()\n\t_, ok := extmap[extension.Field]\n\tmu.Unlock()\n\treturn ok\n}\n\n// ClearExtension removes the given extension from pb.\nfunc ClearExtension(pb Message, extension *ExtensionDesc) {\n\tclearExtension(pb, extension.Field)\n}\n\nfunc clearExtension(pb Message, fieldNum int32) {\n\tif epb, ok := pb.(extensionsBytes); ok {\n\t\toffset := 0\n\t\tfor offset != -1 {\n\t\t\toffset = deleteExtension(epb, fieldNum, offset)\n\t\t}\n\t\treturn\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO: Check types, field numbers, etc.?\n\textmap := epb.extensionsWrite()\n\tdelete(extmap, fieldNum)\n}\n\n// GetExtension retrieves a proto2 extended field from pb.\n//\n// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil),\n// then GetExtension parses the encoded field and returns a Go value of the specified type.\n// If the field is not present, then the default value is returned (if one is specified),\n// otherwise ErrMissingExtension is reported.\n//\n// If the descriptor is not type complete (i.e., ExtensionDesc.ExtensionType is nil),\n// then GetExtension returns the raw encoded bytes of the field extension.\nfunc GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\treturn decodeExtensionFromBytes(extension, *ext)\n\t}\n\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif extension.ExtendedType != nil {\n\t\t// can only check type if this is a complete descriptor\n\t\tif cerr := checkExtensionTypes(epb, extension); cerr != nil {\n\t\t\treturn nil, cerr\n\t\t}\n\t}\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn defaultExtensionValue(extension)\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\te, ok := emap[extension.Field]\n\tif !ok {\n\t\t// defaultExtensionValue returns the default value or\n\t\t// ErrMissingExtension if there is no default.\n\t\treturn defaultExtensionValue(extension)\n\t}\n\n\tif e.value != nil {\n\t\t// Already decoded. Check the descriptor, though.\n\t\tif e.desc != extension {\n\t\t\t// This shouldn't happen. If it does, it means that\n\t\t\t// GetExtension was called twice with two different\n\t\t\t// descriptors with the same field number.\n\t\t\treturn nil, errors.New(\"proto: descriptor conflict\")\n\t\t}\n\t\treturn e.value, nil\n\t}\n\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor\n\t\treturn e.enc, nil\n\t}\n\n\tv, err := decodeExtension(e.enc, extension)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Remember the decoded version and drop the encoded version.\n\t// That way it is safe to mutate what we return.\n\te.value = v\n\te.desc = extension\n\te.enc = nil\n\temap[extension.Field] = e\n\treturn e.value, nil\n}\n\n// defaultExtensionValue returns the default value for extension.\n// If no default for an extension is defined ErrMissingExtension is returned.\nfunc defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) {\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor, so no default\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tprops := extensionProperties(extension)\n\n\tsf, _, err := fieldDefault(t, props)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif sf == nil || sf.value == nil {\n\t\t// There is no default value.\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tif t.Kind() != reflect.Ptr {\n\t\t// We do not need to return a Ptr, we can directly return sf.value.\n\t\treturn sf.value, nil\n\t}\n\n\t// We need to return an interface{} that is a pointer to sf.value.\n\tvalue := reflect.New(t).Elem()\n\tvalue.Set(reflect.New(value.Type().Elem()))\n\tif sf.kind == reflect.Int32 {\n\t\t// We may have an int32 or an enum, but the underlying data is int32.\n\t\t// Since we can't set an int32 into a non int32 reflect.value directly\n\t\t// set it as a int32.\n\t\tvalue.Elem().SetInt(int64(sf.value.(int32)))\n\t} else {\n\t\tvalue.Elem().Set(reflect.ValueOf(sf.value))\n\t}\n\treturn value.Interface(), nil\n}\n\n// decodeExtension decodes an extension encoded in b.\nfunc decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) {\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tunmarshal := typeUnmarshaler(t, extension.Tag)\n\n\t// t is a pointer to a struct, pointer to basic type or a slice.\n\t// Allocate space to store the pointer/slice.\n\tvalue := reflect.New(t).Elem()\n\n\tvar err error\n\tfor {\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\twire := int(x) & 7\n\n\t\tb, err = unmarshal(b, valToPointer(value.Addr()), wire)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif len(b) == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn value.Interface(), nil\n}\n\n// GetExtensions returns a slice of the extensions present in pb that are also listed in es.\n// The returned slice has the same length as es; missing extensions will appear as nil elements.\nfunc GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textensions = make([]interface{}, len(es))\n\tfor i, e := range es {\n\t\textensions[i], err = GetExtension(epb, e)\n\t\tif err == ErrMissingExtension {\n\t\t\terr = nil\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order.\n// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing\n// just the Field field, which defines the extension's field number.\nfunc ExtensionDescs(pb Message) ([]*ExtensionDesc, error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tregisteredExtensions := RegisteredExtensions(pb)\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn nil, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\textensions := make([]*ExtensionDesc, 0, len(emap))\n\tfor extid, e := range emap {\n\t\tdesc := e.desc\n\t\tif desc == nil {\n\t\t\tdesc = registeredExtensions[extid]\n\t\t\tif desc == nil {\n\t\t\t\tdesc = &ExtensionDesc{Field: extid}\n\t\t\t}\n\t\t}\n\n\t\textensions = append(extensions, desc)\n\t}\n\treturn extensions, nil\n}\n\n// SetExtension sets the specified extension of pb to the specified value.\nfunc SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error {\n\tif epb, ok := pb.(extensionsBytes); ok {\n\t\tClearExtension(pb, extension)\n\t\tnewb, err := encodeExtension(extension, value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbb := epb.GetExtensions()\n\t\t*bb = append(*bb, newb...)\n\t\treturn nil\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := checkExtensionTypes(epb, extension); err != nil {\n\t\treturn err\n\t}\n\ttyp := reflect.TypeOf(extension.ExtensionType)\n\tif typ != reflect.TypeOf(value) {\n\t\treturn fmt.Errorf(\"proto: bad extension value type. got: %T, want: %T\", value, extension.ExtensionType)\n\t}\n\t// nil extension values need to be caught early, because the\n\t// encoder can't distinguish an ErrNil due to a nil extension\n\t// from an ErrNil due to a missing field. Extensions are\n\t// always optional, so the encoder would just swallow the error\n\t// and drop all the extensions from the encoded message.\n\tif reflect.ValueOf(value).IsNil() {\n\t\treturn fmt.Errorf(\"proto: SetExtension called with nil value of type %T\", value)\n\t}\n\n\textmap := epb.extensionsWrite()\n\textmap[extension.Field] = Extension{desc: extension, value: value}\n\treturn nil\n}\n\n// ClearAllExtensions clears all extensions from pb.\nfunc ClearAllExtensions(pb Message) {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\t*ext = []byte{}\n\t\treturn\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\tm := epb.extensionsWrite()\n\tfor k := range m {\n\t\tdelete(m, k)\n\t}\n}\n\n// A global registry of extensions.\n// The generated code will register the generated descriptors by calling RegisterExtension.\n\nvar extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc)\n\n// RegisterExtension is called from the generated code.\nfunc RegisterExtension(desc *ExtensionDesc) {\n\tst := reflect.TypeOf(desc.ExtendedType).Elem()\n\tm := extensionMaps[st]\n\tif m == nil {\n\t\tm = make(map[int32]*ExtensionDesc)\n\t\textensionMaps[st] = m\n\t}\n\tif _, ok := m[desc.Field]; ok {\n\t\tpanic(\"proto: duplicate extension registered: \" + st.String() + \" \" + strconv.Itoa(int(desc.Field)))\n\t}\n\tm[desc.Field] = desc\n}\n\n// RegisteredExtensions returns a map of the registered extensions of a\n// protocol buffer struct, indexed by the extension number.\n// The argument pb should be a nil pointer to the struct type.\nfunc RegisteredExtensions(pb Message) map[int32]*ExtensionDesc {\n\treturn extensionMaps[reflect.TypeOf(pb).Elem()]\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n)\n\ntype extensionsBytes interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\tGetExtensions() *[]byte\n}\n\ntype slowExtensionAdapter struct {\n\textensionsBytes\n}\n\nfunc (s slowExtensionAdapter) extensionsWrite() map[int32]Extension {\n\tpanic(\"Please report a bug to github.com/gogo/protobuf if you see this message: Writing extensions is not supported for extensions stored in a byte slice field.\")\n}\n\nfunc (s slowExtensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {\n\tb := s.GetExtensions()\n\tm, err := BytesToExtensionsMap(*b)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn m, notLocker{}\n}\n\nfunc GetBoolExtension(pb Message, extension *ExtensionDesc, ifnotset bool) bool {\n\tif reflect.ValueOf(pb).IsNil() {\n\t\treturn ifnotset\n\t}\n\tvalue, err := GetExtension(pb, extension)\n\tif err != nil {\n\t\treturn ifnotset\n\t}\n\tif value == nil {\n\t\treturn ifnotset\n\t}\n\tif value.(*bool) == nil {\n\t\treturn ifnotset\n\t}\n\treturn *(value.(*bool))\n}\n\nfunc (this *Extension) Equal(that *Extension) bool {\n\tif err := this.Encode(); err != nil {\n\t\treturn false\n\t}\n\tif err := that.Encode(); err != nil {\n\t\treturn false\n\t}\n\treturn bytes.Equal(this.enc, that.enc)\n}\n\nfunc (this *Extension) Compare(that *Extension) int {\n\tif err := this.Encode(); err != nil {\n\t\treturn 1\n\t}\n\tif err := that.Encode(); err != nil {\n\t\treturn -1\n\t}\n\treturn bytes.Compare(this.enc, that.enc)\n}\n\nfunc SizeOfInternalExtension(m extendableProto) (n int) {\n\tinfo := getMarshalInfo(reflect.TypeOf(m))\n\treturn info.sizeV1Extensions(m.extensionsWrite())\n}\n\ntype sortableMapElem struct {\n\tfield int32\n\text   Extension\n}\n\nfunc newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensions {\n\ts := make(sortableExtensions, 0, len(m))\n\tfor k, v := range m {\n\t\ts = append(s, &sortableMapElem{field: k, ext: v})\n\t}\n\treturn s\n}\n\ntype sortableExtensions []*sortableMapElem\n\nfunc (this sortableExtensions) Len() int { return len(this) }\n\nfunc (this sortableExtensions) Swap(i, j int) { this[i], this[j] = this[j], this[i] }\n\nfunc (this sortableExtensions) Less(i, j int) bool { return this[i].field < this[j].field }\n\nfunc (this sortableExtensions) String() string {\n\tsort.Sort(this)\n\tss := make([]string, len(this))\n\tfor i := range this {\n\t\tss[i] = fmt.Sprintf(\"%d: %v\", this[i].field, this[i].ext)\n\t}\n\treturn \"map[\" + strings.Join(ss, \",\") + \"]\"\n}\n\nfunc StringFromInternalExtension(m extendableProto) string {\n\treturn StringFromExtensionsMap(m.extensionsWrite())\n}\n\nfunc StringFromExtensionsMap(m map[int32]Extension) string {\n\treturn newSortableExtensionsFromMap(m).String()\n}\n\nfunc StringFromExtensionsBytes(ext []byte) string {\n\tm, err := BytesToExtensionsMap(ext)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn StringFromExtensionsMap(m)\n}\n\nfunc EncodeInternalExtension(m extendableProto, data []byte) (n int, err error) {\n\treturn EncodeExtensionMap(m.extensionsWrite(), data)\n}\n\nfunc EncodeInternalExtensionBackwards(m extendableProto, data []byte) (n int, err error) {\n\treturn EncodeExtensionMapBackwards(m.extensionsWrite(), data)\n}\n\nfunc EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err error) {\n\to := 0\n\tfor _, e := range m {\n\t\tif err := e.Encode(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn := copy(data[o:], e.enc)\n\t\tif n != len(e.enc) {\n\t\t\treturn 0, io.ErrShortBuffer\n\t\t}\n\t\to += n\n\t}\n\treturn o, nil\n}\n\nfunc EncodeExtensionMapBackwards(m map[int32]Extension, data []byte) (n int, err error) {\n\to := 0\n\tend := len(data)\n\tfor _, e := range m {\n\t\tif err := e.Encode(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn := copy(data[end-len(e.enc):], e.enc)\n\t\tif n != len(e.enc) {\n\t\t\treturn 0, io.ErrShortBuffer\n\t\t}\n\t\tend -= n\n\t\to += n\n\t}\n\treturn o, nil\n}\n\nfunc GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) {\n\te := m[id]\n\tif err := e.Encode(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn e.enc, nil\n}\n\nfunc size(buf []byte, wire int) (int, error) {\n\tswitch wire {\n\tcase WireVarint:\n\t\t_, n := DecodeVarint(buf)\n\t\treturn n, nil\n\tcase WireFixed64:\n\t\treturn 8, nil\n\tcase WireBytes:\n\t\tv, n := DecodeVarint(buf)\n\t\treturn int(v) + n, nil\n\tcase WireFixed32:\n\t\treturn 4, nil\n\tcase WireStartGroup:\n\t\toffset := 0\n\t\tfor {\n\t\t\tu, n := DecodeVarint(buf[offset:])\n\t\t\tfwire := int(u & 0x7)\n\t\t\toffset += n\n\t\t\tif fwire == WireEndGroup {\n\t\t\t\treturn offset, nil\n\t\t\t}\n\t\t\ts, err := size(buf[offset:], wire)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\toffset += s\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"proto: can't get size for unknown wire type %d\", wire)\n}\n\nfunc BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) {\n\tm := make(map[int32]Extension)\n\ti := 0\n\tfor i < len(buf) {\n\t\ttag, n := DecodeVarint(buf[i:])\n\t\tif n <= 0 {\n\t\t\treturn nil, fmt.Errorf(\"unable to decode varint\")\n\t\t}\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tl, err := size(buf[i+n:], wireType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tend := i + int(l) + n\n\t\tm[int32(fieldNum)] = Extension{enc: buf[i:end]}\n\t\ti = end\n\t}\n\treturn m, nil\n}\n\nfunc NewExtension(e []byte) Extension {\n\tee := Extension{enc: make([]byte, len(e))}\n\tcopy(ee.enc, e)\n\treturn ee\n}\n\nfunc AppendExtension(e Message, tag int32, buf []byte) {\n\tif ee, eok := e.(extensionsBytes); eok {\n\t\text := ee.GetExtensions()\n\t\t*ext = append(*ext, buf...)\n\t\treturn\n\t}\n\tif ee, eok := e.(extendableProto); eok {\n\t\tm := ee.extensionsWrite()\n\t\text := m[int32(tag)] // may be missing\n\t\text.enc = append(ext.enc, buf...)\n\t\tm[int32(tag)] = ext\n\t}\n}\n\nfunc encodeExtension(extension *ExtensionDesc, value interface{}) ([]byte, error) {\n\tu := getMarshalInfo(reflect.TypeOf(extension.ExtendedType))\n\tei := u.getExtElemInfo(extension)\n\tv := value\n\tp := toAddrPointer(&v, ei.isptr)\n\tsiz := ei.sizer(p, SizeVarint(ei.wiretag))\n\tbuf := make([]byte, 0, siz)\n\treturn ei.marshaler(buf, p, ei.wiretag, false)\n}\n\nfunc decodeExtensionFromBytes(extension *ExtensionDesc, buf []byte) (interface{}, error) {\n\to := 0\n\tfor o < len(buf) {\n\t\ttag, n := DecodeVarint((buf)[o:])\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tif o+n > len(buf) {\n\t\t\treturn nil, fmt.Errorf(\"unable to decode extension\")\n\t\t}\n\t\tl, err := size((buf)[o+n:], wireType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif int32(fieldNum) == extension.Field {\n\t\t\tif o+n+l > len(buf) {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to decode extension\")\n\t\t\t}\n\t\t\tv, err := decodeExtension((buf)[o:o+n+l], extension)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn v, nil\n\t\t}\n\t\to += n + l\n\t}\n\treturn defaultExtensionValue(extension)\n}\n\nfunc (this *Extension) Encode() error {\n\tif this.enc == nil {\n\t\tvar err error\n\t\tthis.enc, err = encodeExtension(this.desc, this.value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (this Extension) GoString() string {\n\tif err := this.Encode(); err != nil {\n\t\treturn fmt.Sprintf(\"error encoding extension: %v\", err)\n\t}\n\treturn fmt.Sprintf(\"proto.NewExtension(%#v)\", this.enc)\n}\n\nfunc SetUnsafeExtension(pb Message, fieldNum int32, value interface{}) error {\n\ttyp := reflect.TypeOf(pb).Elem()\n\text, ok := extensionMaps[typ]\n\tif !ok {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %s is not extendable\", typ.String())\n\t}\n\tdesc, ok := ext[fieldNum]\n\tif !ok {\n\t\treturn errors.New(\"proto: bad extension number; not in declared ranges\")\n\t}\n\treturn SetExtension(pb, desc, value)\n}\n\nfunc GetUnsafeExtension(pb Message, fieldNum int32) (interface{}, error) {\n\ttyp := reflect.TypeOf(pb).Elem()\n\text, ok := extensionMaps[typ]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"proto: bad extended type; %s is not extendable\", typ.String())\n\t}\n\tdesc, ok := ext[fieldNum]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unregistered field number %d\", fieldNum)\n\t}\n\treturn GetExtension(pb, desc)\n}\n\nfunc NewUnsafeXXX_InternalExtensions(m map[int32]Extension) XXX_InternalExtensions {\n\tx := &XXX_InternalExtensions{\n\t\tp: new(struct {\n\t\t\tmu           sync.Mutex\n\t\t\textensionMap map[int32]Extension\n\t\t}),\n\t}\n\tx.p.extensionMap = m\n\treturn *x\n}\n\nfunc GetUnsafeExtensionsMap(extendable Message) map[int32]Extension {\n\tpb := extendable.(extendableProto)\n\treturn pb.extensionsWrite()\n}\n\nfunc deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) int {\n\text := pb.GetExtensions()\n\tfor offset < len(*ext) {\n\t\ttag, n1 := DecodeVarint((*ext)[offset:])\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tn2, err := size((*ext)[offset+n1:], wireType)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tnewOffset := offset + n1 + n2\n\t\tif fieldNum == theFieldNum {\n\t\t\t*ext = append((*ext)[:offset], (*ext)[newOffset:]...)\n\t\t\treturn offset\n\t\t}\n\t\toffset = newOffset\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/*\nPackage proto converts data structures to and from the wire format of\nprotocol buffers.  It works in concert with the Go source code generated\nfor .proto files by the protocol compiler.\n\nA summary of the properties of the protocol buffer interface\nfor a protocol buffer variable v:\n\n  - Names are turned from camel_case to CamelCase for export.\n  - There are no methods on v to set fields; just treat\n\tthem as structure fields.\n  - There are getters that return a field's value if set,\n\tand return the field's default value if unset.\n\tThe getters work even if the receiver is a nil message.\n  - The zero value for a struct is its correct initialization state.\n\tAll desired fields must be set before marshaling.\n  - A Reset() method will restore a protobuf struct to its zero state.\n  - Non-repeated fields are pointers to the values; nil means unset.\n\tThat is, optional or required field int32 f becomes F *int32.\n  - Repeated fields are slices.\n  - Helper functions are available to aid the setting of fields.\n\tmsg.Foo = proto.String(\"hello\") // set field\n  - Constants are defined to hold the default values of all fields that\n\thave them.  They have the form Default_StructName_FieldName.\n\tBecause the getter methods handle defaulted values,\n\tdirect use of these constants should be rare.\n  - Enums are given type names and maps from names to values.\n\tEnum values are prefixed by the enclosing message's name, or by the\n\tenum's type name if it is a top-level enum. Enum types have a String\n\tmethod, and a Enum method to assist in message construction.\n  - Nested messages, groups and enums have type names prefixed with the name of\n\tthe surrounding message type.\n  - Extensions are given descriptor names that start with E_,\n\tfollowed by an underscore-delimited list of the nested messages\n\tthat contain it (if any) followed by the CamelCased name of the\n\textension field itself.  HasExtension, ClearExtension, GetExtension\n\tand SetExtension are functions for manipulating extensions.\n  - Oneof field sets are given a single field in their message,\n\twith distinguished wrapper types for each possible field value.\n  - Marshal and Unmarshal are functions to encode and decode the wire format.\n\nWhen the .proto file specifies `syntax=\"proto3\"`, there are some differences:\n\n  - Non-repeated fields of non-message type are values instead of pointers.\n  - Enum types do not get an Enum method.\n\nThe simplest way to describe this is to see an example.\nGiven file test.proto, containing\n\n\tpackage example;\n\n\tenum FOO { X = 17; }\n\n\tmessage Test {\n\t  required string label = 1;\n\t  optional int32 type = 2 [default=77];\n\t  repeated int64 reps = 3;\n\t  optional group OptionalGroup = 4 {\n\t    required string RequiredField = 5;\n\t  }\n\t  oneof union {\n\t    int32 number = 6;\n\t    string name = 7;\n\t  }\n\t}\n\nThe resulting file, test.pb.go, is:\n\n\tpackage example\n\n\timport proto \"github.com/gogo/protobuf/proto\"\n\timport math \"math\"\n\n\ttype FOO int32\n\tconst (\n\t\tFOO_X FOO = 17\n\t)\n\tvar FOO_name = map[int32]string{\n\t\t17: \"X\",\n\t}\n\tvar FOO_value = map[string]int32{\n\t\t\"X\": 17,\n\t}\n\n\tfunc (x FOO) Enum() *FOO {\n\t\tp := new(FOO)\n\t\t*p = x\n\t\treturn p\n\t}\n\tfunc (x FOO) String() string {\n\t\treturn proto.EnumName(FOO_name, int32(x))\n\t}\n\tfunc (x *FOO) UnmarshalJSON(data []byte) error {\n\t\tvalue, err := proto.UnmarshalJSONEnum(FOO_value, data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*x = FOO(value)\n\t\treturn nil\n\t}\n\n\ttype Test struct {\n\t\tLabel         *string             `protobuf:\"bytes,1,req,name=label\" json:\"label,omitempty\"`\n\t\tType          *int32              `protobuf:\"varint,2,opt,name=type,def=77\" json:\"type,omitempty\"`\n\t\tReps          []int64             `protobuf:\"varint,3,rep,name=reps\" json:\"reps,omitempty\"`\n\t\tOptionalgroup *Test_OptionalGroup `protobuf:\"group,4,opt,name=OptionalGroup\" json:\"optionalgroup,omitempty\"`\n\t\t// Types that are valid to be assigned to Union:\n\t\t//\t*Test_Number\n\t\t//\t*Test_Name\n\t\tUnion            isTest_Union `protobuf_oneof:\"union\"`\n\t\tXXX_unrecognized []byte       `json:\"-\"`\n\t}\n\tfunc (m *Test) Reset()         { *m = Test{} }\n\tfunc (m *Test) String() string { return proto.CompactTextString(m) }\n\tfunc (*Test) ProtoMessage() {}\n\n\ttype isTest_Union interface {\n\t\tisTest_Union()\n\t}\n\n\ttype Test_Number struct {\n\t\tNumber int32 `protobuf:\"varint,6,opt,name=number\"`\n\t}\n\ttype Test_Name struct {\n\t\tName string `protobuf:\"bytes,7,opt,name=name\"`\n\t}\n\n\tfunc (*Test_Number) isTest_Union() {}\n\tfunc (*Test_Name) isTest_Union()   {}\n\n\tfunc (m *Test) GetUnion() isTest_Union {\n\t\tif m != nil {\n\t\t\treturn m.Union\n\t\t}\n\t\treturn nil\n\t}\n\tconst Default_Test_Type int32 = 77\n\n\tfunc (m *Test) GetLabel() string {\n\t\tif m != nil && m.Label != nil {\n\t\t\treturn *m.Label\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetType() int32 {\n\t\tif m != nil && m.Type != nil {\n\t\t\treturn *m.Type\n\t\t}\n\t\treturn Default_Test_Type\n\t}\n\n\tfunc (m *Test) GetOptionalgroup() *Test_OptionalGroup {\n\t\tif m != nil {\n\t\t\treturn m.Optionalgroup\n\t\t}\n\t\treturn nil\n\t}\n\n\ttype Test_OptionalGroup struct {\n\t\tRequiredField *string `protobuf:\"bytes,5,req\" json:\"RequiredField,omitempty\"`\n\t}\n\tfunc (m *Test_OptionalGroup) Reset()         { *m = Test_OptionalGroup{} }\n\tfunc (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) }\n\n\tfunc (m *Test_OptionalGroup) GetRequiredField() string {\n\t\tif m != nil && m.RequiredField != nil {\n\t\t\treturn *m.RequiredField\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetNumber() int32 {\n\t\tif x, ok := m.GetUnion().(*Test_Number); ok {\n\t\t\treturn x.Number\n\t\t}\n\t\treturn 0\n\t}\n\n\tfunc (m *Test) GetName() string {\n\t\tif x, ok := m.GetUnion().(*Test_Name); ok {\n\t\t\treturn x.Name\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc init() {\n\t\tproto.RegisterEnum(\"example.FOO\", FOO_name, FOO_value)\n\t}\n\nTo create and play with a Test object:\n\n\tpackage main\n\n\timport (\n\t\t\"log\"\n\n\t\t\"github.com/gogo/protobuf/proto\"\n\t\tpb \"./example.pb\"\n\t)\n\n\tfunc main() {\n\t\ttest := &pb.Test{\n\t\t\tLabel: proto.String(\"hello\"),\n\t\t\tType:  proto.Int32(17),\n\t\t\tReps:  []int64{1, 2, 3},\n\t\t\tOptionalgroup: &pb.Test_OptionalGroup{\n\t\t\t\tRequiredField: proto.String(\"good bye\"),\n\t\t\t},\n\t\t\tUnion: &pb.Test_Name{\"fred\"},\n\t\t}\n\t\tdata, err := proto.Marshal(test)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"marshaling error: \", err)\n\t\t}\n\t\tnewTest := &pb.Test{}\n\t\terr = proto.Unmarshal(data, newTest)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"unmarshaling error: \", err)\n\t\t}\n\t\t// Now test and newTest contain the same data.\n\t\tif test.GetLabel() != newTest.GetLabel() {\n\t\t\tlog.Fatalf(\"data mismatch %q != %q\", test.GetLabel(), newTest.GetLabel())\n\t\t}\n\t\t// Use a type switch to determine which oneof was set.\n\t\tswitch u := test.Union.(type) {\n\t\tcase *pb.Test_Number: // u.Number contains the number.\n\t\tcase *pb.Test_Name: // u.Name contains the string.\n\t\t}\n\t\t// etc.\n\t}\n*/\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// RequiredNotSetError is an error type returned by either Marshal or Unmarshal.\n// Marshal reports this when a required field is not initialized.\n// Unmarshal reports this when a required field is missing from the wire data.\ntype RequiredNotSetError struct{ field string }\n\nfunc (e *RequiredNotSetError) Error() string {\n\tif e.field == \"\" {\n\t\treturn fmt.Sprintf(\"proto: required field not set\")\n\t}\n\treturn fmt.Sprintf(\"proto: required field %q not set\", e.field)\n}\nfunc (e *RequiredNotSetError) RequiredNotSet() bool {\n\treturn true\n}\n\ntype invalidUTF8Error struct{ field string }\n\nfunc (e *invalidUTF8Error) Error() string {\n\tif e.field == \"\" {\n\t\treturn \"proto: invalid UTF-8 detected\"\n\t}\n\treturn fmt.Sprintf(\"proto: field %q contains invalid UTF-8\", e.field)\n}\nfunc (e *invalidUTF8Error) InvalidUTF8() bool {\n\treturn true\n}\n\n// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8.\n// This error should not be exposed to the external API as such errors should\n// be recreated with the field information.\nvar errInvalidUTF8 = &invalidUTF8Error{}\n\n// isNonFatal reports whether the error is either a RequiredNotSet error\n// or a InvalidUTF8 error.\nfunc isNonFatal(err error) bool {\n\tif re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() {\n\t\treturn true\n\t}\n\tif re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype nonFatal struct{ E error }\n\n// Merge merges err into nf and reports whether it was successful.\n// Otherwise it returns false for any fatal non-nil errors.\nfunc (nf *nonFatal) Merge(err error) (ok bool) {\n\tif err == nil {\n\t\treturn true // not an error\n\t}\n\tif !isNonFatal(err) {\n\t\treturn false // fatal error\n\t}\n\tif nf.E == nil {\n\t\tnf.E = err // store first instance of non-fatal error\n\t}\n\treturn true\n}\n\n// Message is implemented by generated protocol buffer messages.\ntype Message interface {\n\tReset()\n\tString() string\n\tProtoMessage()\n}\n\n// A Buffer is a buffer manager for marshaling and unmarshaling\n// protocol buffers.  It may be reused between invocations to\n// reduce memory usage.  It is not necessary to use a Buffer;\n// the global functions Marshal and Unmarshal create a\n// temporary Buffer and are fine for most applications.\ntype Buffer struct {\n\tbuf   []byte // encode/decode byte stream\n\tindex int    // read point\n\n\tdeterministic bool\n}\n\n// NewBuffer allocates a new Buffer and initializes its internal data to\n// the contents of the argument slice.\nfunc NewBuffer(e []byte) *Buffer {\n\treturn &Buffer{buf: e}\n}\n\n// Reset resets the Buffer, ready for marshaling a new protocol buffer.\nfunc (p *Buffer) Reset() {\n\tp.buf = p.buf[0:0] // for reading/writing\n\tp.index = 0        // for reading\n}\n\n// SetBuf replaces the internal buffer with the slice,\n// ready for unmarshaling the contents of the slice.\nfunc (p *Buffer) SetBuf(s []byte) {\n\tp.buf = s\n\tp.index = 0\n}\n\n// Bytes returns the contents of the Buffer.\nfunc (p *Buffer) Bytes() []byte { return p.buf }\n\n// SetDeterministic sets whether to use deterministic serialization.\n//\n// Deterministic serialization guarantees that for a given binary, equal\n// messages will always be serialized to the same bytes. This implies:\n//\n//   - Repeated serialization of a message will return the same bytes.\n//   - Different processes of the same binary (which may be executing on\n//     different machines) will serialize equal messages to the same bytes.\n//\n// Note that the deterministic serialization is NOT canonical across\n// languages. It is not guaranteed to remain stable over time. It is unstable\n// across different builds with schema changes due to unknown fields.\n// Users who need canonical serialization (e.g., persistent storage in a\n// canonical form, fingerprinting, etc.) should define their own\n// canonicalization specification and implement their own serializer rather\n// than relying on this API.\n//\n// If deterministic serialization is requested, map entries will be sorted\n// by keys in lexographical order. This is an implementation detail and\n// subject to change.\nfunc (p *Buffer) SetDeterministic(deterministic bool) {\n\tp.deterministic = deterministic\n}\n\n/*\n * Helper routines for simplifying the creation of optional fields of basic type.\n */\n\n// Bool is a helper routine that allocates a new bool value\n// to store v and returns a pointer to it.\nfunc Bool(v bool) *bool {\n\treturn &v\n}\n\n// Int32 is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it.\nfunc Int32(v int32) *int32 {\n\treturn &v\n}\n\n// Int is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it, but unlike Int32\n// its argument value is an int.\nfunc Int(v int) *int32 {\n\tp := new(int32)\n\t*p = int32(v)\n\treturn p\n}\n\n// Int64 is a helper routine that allocates a new int64 value\n// to store v and returns a pointer to it.\nfunc Int64(v int64) *int64 {\n\treturn &v\n}\n\n// Float32 is a helper routine that allocates a new float32 value\n// to store v and returns a pointer to it.\nfunc Float32(v float32) *float32 {\n\treturn &v\n}\n\n// Float64 is a helper routine that allocates a new float64 value\n// to store v and returns a pointer to it.\nfunc Float64(v float64) *float64 {\n\treturn &v\n}\n\n// Uint32 is a helper routine that allocates a new uint32 value\n// to store v and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 {\n\treturn &v\n}\n\n// Uint64 is a helper routine that allocates a new uint64 value\n// to store v and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 {\n\treturn &v\n}\n\n// String is a helper routine that allocates a new string value\n// to store v and returns a pointer to it.\nfunc String(v string) *string {\n\treturn &v\n}\n\n// EnumName is a helper function to simplify printing protocol buffer enums\n// by name.  Given an enum map and a value, it returns a useful string.\nfunc EnumName(m map[int32]string, v int32) string {\n\ts, ok := m[v]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(v))\n}\n\n// UnmarshalJSONEnum is a helper function to simplify recovering enum int values\n// from their JSON-encoded representation. Given a map from the enum's symbolic\n// names to its int values, and a byte buffer containing the JSON-encoded\n// value, it returns an int32 that can be cast to the enum type by the caller.\n//\n// The function can deal with both JSON representations, numeric and symbolic.\nfunc UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {\n\tif data[0] == '\"' {\n\t\t// New style: enums are strings.\n\t\tvar repr string\n\t\tif err := json.Unmarshal(data, &repr); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t\tval, ok := m[repr]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unrecognized enum %s value %q\", enumName, repr)\n\t\t}\n\t\treturn val, nil\n\t}\n\t// Old style: enums are ints.\n\tvar val int32\n\tif err := json.Unmarshal(data, &val); err != nil {\n\t\treturn 0, fmt.Errorf(\"cannot unmarshal %#q into enum %s\", data, enumName)\n\t}\n\treturn val, nil\n}\n\n// DebugPrint dumps the encoded data in b in a debugging format with a header\n// including the string s. Used in testing but made available for general debugging.\nfunc (p *Buffer) DebugPrint(s string, b []byte) {\n\tvar u uint64\n\n\tobuf := p.buf\n\tsindex := p.index\n\tp.buf = b\n\tp.index = 0\n\tdepth := 0\n\n\tfmt.Printf(\"\\n--- %s ---\\n\", s)\n\nout:\n\tfor {\n\t\tfor i := 0; i < depth; i++ {\n\t\t\tfmt.Print(\"  \")\n\t\t}\n\n\t\tindex := p.index\n\t\tif index == len(p.buf) {\n\t\t\tbreak\n\t\t}\n\n\t\top, err := p.DecodeVarint()\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"%3d: fetching op err %v\\n\", index, err)\n\t\t\tbreak out\n\t\t}\n\t\ttag := op >> 3\n\t\twire := op & 7\n\n\t\tswitch wire {\n\t\tdefault:\n\t\t\tfmt.Printf(\"%3d: t=%3d unknown wire=%d\\n\",\n\t\t\t\tindex, tag, wire)\n\t\t\tbreak out\n\n\t\tcase WireBytes:\n\t\t\tvar r []byte\n\n\t\t\tr, err = p.DecodeRawBytes(false)\n\t\t\tif err != nil {\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d bytes [%d]\", index, tag, len(r))\n\t\t\tif len(r) <= 6 {\n\t\t\t\tfor i := 0; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor i := 0; i < 3; i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t\tfmt.Printf(\" ..\")\n\t\t\t\tfor i := len(r) - 3; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\tfmt.Printf(\"\\n\")\n\n\t\tcase WireFixed32:\n\t\t\tu, err = p.DecodeFixed32()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix32 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix32 %d\\n\", index, tag, u)\n\n\t\tcase WireFixed64:\n\t\t\tu, err = p.DecodeFixed64()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix64 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix64 %d\\n\", index, tag, u)\n\n\t\tcase WireVarint:\n\t\t\tu, err = p.DecodeVarint()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d varint err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d varint %d\\n\", index, tag, u)\n\n\t\tcase WireStartGroup:\n\t\t\tfmt.Printf(\"%3d: t=%3d start\\n\", index, tag)\n\t\t\tdepth++\n\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tfmt.Printf(\"%3d: t=%3d end\\n\", index, tag)\n\t\t}\n\t}\n\n\tif depth != 0 {\n\t\tfmt.Printf(\"%3d: start-end not balanced %d\\n\", p.index, depth)\n\t}\n\tfmt.Printf(\"\\n\")\n\n\tp.buf = obuf\n\tp.index = sindex\n}\n\n// SetDefaults sets unset protocol buffer fields to their default values.\n// It only modifies fields that are both unset and have defined defaults.\n// It recursively sets default values in any non-nil sub-messages.\nfunc SetDefaults(pb Message) {\n\tsetDefaults(reflect.ValueOf(pb), true, false)\n}\n\n// v is a struct.\nfunc setDefaults(v reflect.Value, recur, zeros bool) {\n\tif v.Kind() == reflect.Ptr {\n\t\tv = v.Elem()\n\t}\n\n\tdefaultMu.RLock()\n\tdm, ok := defaults[v.Type()]\n\tdefaultMu.RUnlock()\n\tif !ok {\n\t\tdm = buildDefaultMessage(v.Type())\n\t\tdefaultMu.Lock()\n\t\tdefaults[v.Type()] = dm\n\t\tdefaultMu.Unlock()\n\t}\n\n\tfor _, sf := range dm.scalars {\n\t\tf := v.Field(sf.index)\n\t\tif !f.IsNil() {\n\t\t\t// field already set\n\t\t\tcontinue\n\t\t}\n\t\tdv := sf.value\n\t\tif dv == nil && !zeros {\n\t\t\t// no explicit default, and don't want to set zeros\n\t\t\tcontinue\n\t\t}\n\t\tfptr := f.Addr().Interface() // **T\n\t\t// TODO: Consider batching the allocations we do here.\n\t\tswitch sf.kind {\n\t\tcase reflect.Bool:\n\t\t\tb := new(bool)\n\t\t\tif dv != nil {\n\t\t\t\t*b = dv.(bool)\n\t\t\t}\n\t\t\t*(fptr.(**bool)) = b\n\t\tcase reflect.Float32:\n\t\t\tf := new(float32)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float32)\n\t\t\t}\n\t\t\t*(fptr.(**float32)) = f\n\t\tcase reflect.Float64:\n\t\t\tf := new(float64)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float64)\n\t\t\t}\n\t\t\t*(fptr.(**float64)) = f\n\t\tcase reflect.Int32:\n\t\t\t// might be an enum\n\t\t\tif ft := f.Type(); ft != int32PtrType {\n\t\t\t\t// enum\n\t\t\t\tf.Set(reflect.New(ft.Elem()))\n\t\t\t\tif dv != nil {\n\t\t\t\t\tf.Elem().SetInt(int64(dv.(int32)))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// int32 field\n\t\t\t\ti := new(int32)\n\t\t\t\tif dv != nil {\n\t\t\t\t\t*i = dv.(int32)\n\t\t\t\t}\n\t\t\t\t*(fptr.(**int32)) = i\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\ti := new(int64)\n\t\t\tif dv != nil {\n\t\t\t\t*i = dv.(int64)\n\t\t\t}\n\t\t\t*(fptr.(**int64)) = i\n\t\tcase reflect.String:\n\t\t\ts := new(string)\n\t\t\tif dv != nil {\n\t\t\t\t*s = dv.(string)\n\t\t\t}\n\t\t\t*(fptr.(**string)) = s\n\t\tcase reflect.Uint8:\n\t\t\t// exceptional case: []byte\n\t\t\tvar b []byte\n\t\t\tif dv != nil {\n\t\t\t\tdb := dv.([]byte)\n\t\t\t\tb = make([]byte, len(db))\n\t\t\t\tcopy(b, db)\n\t\t\t} else {\n\t\t\t\tb = []byte{}\n\t\t\t}\n\t\t\t*(fptr.(*[]byte)) = b\n\t\tcase reflect.Uint32:\n\t\t\tu := new(uint32)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint32)\n\t\t\t}\n\t\t\t*(fptr.(**uint32)) = u\n\t\tcase reflect.Uint64:\n\t\t\tu := new(uint64)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint64)\n\t\t\t}\n\t\t\t*(fptr.(**uint64)) = u\n\t\tdefault:\n\t\t\tlog.Printf(\"proto: can't set default for field %v (sf.kind=%v)\", f, sf.kind)\n\t\t}\n\t}\n\n\tfor _, ni := range dm.nested {\n\t\tf := v.Field(ni)\n\t\t// f is *T or T or []*T or []T\n\t\tswitch f.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tsetDefaults(f, recur, zeros)\n\n\t\tcase reflect.Ptr:\n\t\t\tif f.IsNil() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsetDefaults(f, recur, zeros)\n\n\t\tcase reflect.Slice:\n\t\t\tfor i := 0; i < f.Len(); i++ {\n\t\t\t\te := f.Index(i)\n\t\t\t\tif e.Kind() == reflect.Ptr && e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\n\t\tcase reflect.Map:\n\t\t\tfor _, k := range f.MapKeys() {\n\t\t\t\te := f.MapIndex(k)\n\t\t\t\tif e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar (\n\t// defaults maps a protocol buffer struct type to a slice of the fields,\n\t// with its scalar fields set to their proto-declared non-zero default values.\n\tdefaultMu sync.RWMutex\n\tdefaults  = make(map[reflect.Type]defaultMessage)\n\n\tint32PtrType = reflect.TypeOf((*int32)(nil))\n)\n\n// defaultMessage represents information about the default values of a message.\ntype defaultMessage struct {\n\tscalars []scalarField\n\tnested  []int // struct field index of nested messages\n}\n\ntype scalarField struct {\n\tindex int          // struct field index\n\tkind  reflect.Kind // element type (the T in *T or []T)\n\tvalue interface{}  // the proto-declared default value, or nil\n}\n\n// t is a struct type.\nfunc buildDefaultMessage(t reflect.Type) (dm defaultMessage) {\n\tsprop := GetProperties(t)\n\tfor _, prop := range sprop.Prop {\n\t\tfi, ok := sprop.decoderTags.get(prop.Tag)\n\t\tif !ok {\n\t\t\t// XXX_unrecognized\n\t\t\tcontinue\n\t\t}\n\t\tft := t.Field(fi).Type\n\n\t\tsf, nested, err := fieldDefault(ft, prop)\n\t\tswitch {\n\t\tcase err != nil:\n\t\t\tlog.Print(err)\n\t\tcase nested:\n\t\t\tdm.nested = append(dm.nested, fi)\n\t\tcase sf != nil:\n\t\t\tsf.index = fi\n\t\t\tdm.scalars = append(dm.scalars, *sf)\n\t\t}\n\t}\n\n\treturn dm\n}\n\n// fieldDefault returns the scalarField for field type ft.\n// sf will be nil if the field can not have a default.\n// nestedMessage will be true if this is a nested message.\n// Note that sf.index is not set on return.\nfunc fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) {\n\tvar canHaveDefault bool\n\tswitch ft.Kind() {\n\tcase reflect.Struct:\n\t\tnestedMessage = true // non-nullable\n\n\tcase reflect.Ptr:\n\t\tif ft.Elem().Kind() == reflect.Struct {\n\t\t\tnestedMessage = true\n\t\t} else {\n\t\t\tcanHaveDefault = true // proto2 scalar field\n\t\t}\n\n\tcase reflect.Slice:\n\t\tswitch ft.Elem().Kind() {\n\t\tcase reflect.Ptr, reflect.Struct:\n\t\t\tnestedMessage = true // repeated message\n\t\tcase reflect.Uint8:\n\t\t\tcanHaveDefault = true // bytes field\n\t\t}\n\n\tcase reflect.Map:\n\t\tif ft.Elem().Kind() == reflect.Ptr {\n\t\t\tnestedMessage = true // map with message values\n\t\t}\n\t}\n\n\tif !canHaveDefault {\n\t\tif nestedMessage {\n\t\t\treturn nil, true, nil\n\t\t}\n\t\treturn nil, false, nil\n\t}\n\n\t// We now know that ft is a pointer or slice.\n\tsf = &scalarField{kind: ft.Elem().Kind()}\n\n\t// scalar fields without defaults\n\tif !prop.HasDefault {\n\t\treturn sf, false, nil\n\t}\n\n\t// a scalar field: either *T or []byte\n\tswitch ft.Elem().Kind() {\n\tcase reflect.Bool:\n\t\tx, err := strconv.ParseBool(prop.Default)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default bool %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Float32:\n\t\tx, err := strconv.ParseFloat(prop.Default, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = float32(x)\n\tcase reflect.Float64:\n\t\tx, err := strconv.ParseFloat(prop.Default, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Int32:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = int32(x)\n\tcase reflect.Int64:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.String:\n\t\tsf.value = prop.Default\n\tcase reflect.Uint8:\n\t\t// []byte (not *uint8)\n\t\tsf.value = []byte(prop.Default)\n\tcase reflect.Uint32:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = uint32(x)\n\tcase reflect.Uint64:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tdefault:\n\t\treturn nil, false, fmt.Errorf(\"proto: unhandled def kind %v\", ft.Elem().Kind())\n\t}\n\n\treturn sf, false, nil\n}\n\n// mapKeys returns a sort.Interface to be used for sorting the map keys.\n// Map fields may have key types of non-float scalars, strings and enums.\nfunc mapKeys(vs []reflect.Value) sort.Interface {\n\ts := mapKeySorter{vs: vs}\n\n\t// Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps.\n\tif len(vs) == 0 {\n\t\treturn s\n\t}\n\tswitch vs[0].Kind() {\n\tcase reflect.Int32, reflect.Int64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() }\n\tcase reflect.Uint32, reflect.Uint64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() }\n\tcase reflect.Bool:\n\t\ts.less = func(a, b reflect.Value) bool { return !a.Bool() && b.Bool() } // false < true\n\tcase reflect.String:\n\t\ts.less = func(a, b reflect.Value) bool { return a.String() < b.String() }\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported map key type: %v\", vs[0].Kind()))\n\t}\n\n\treturn s\n}\n\ntype mapKeySorter struct {\n\tvs   []reflect.Value\n\tless func(a, b reflect.Value) bool\n}\n\nfunc (s mapKeySorter) Len() int      { return len(s.vs) }\nfunc (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] }\nfunc (s mapKeySorter) Less(i, j int) bool {\n\treturn s.less(s.vs[i], s.vs[j])\n}\n\n// isProto3Zero reports whether v is a zero proto3 value.\nfunc isProto3Zero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.String:\n\t\treturn v.String() == \"\"\n\t}\n\treturn false\n}\n\nconst (\n\t// ProtoPackageIsVersion3 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion3 = true\n\n\t// ProtoPackageIsVersion2 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion2 = true\n\n\t// ProtoPackageIsVersion1 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion1 = true\n)\n\n// InternalMessageInfo is a type used internally by generated .pb.go files.\n// This type is not intended to be used by non-generated code.\n// This type is not subject to any compatibility guarantee.\ntype InternalMessageInfo struct {\n\tmarshal   *marshalInfo\n\tunmarshal *unmarshalInfo\n\tmerge     *mergeInfo\n\tdiscard   *discardInfo\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"strconv\"\n)\n\ntype Sizer interface {\n\tSize() int\n}\n\ntype ProtoSizer interface {\n\tProtoSize() int\n}\n\nfunc MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) {\n\ts, ok := m[value]\n\tif !ok {\n\t\ts = strconv.Itoa(int(value))\n\t}\n\treturn json.Marshal(s)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/message_set.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Support for message sets.\n */\n\nimport (\n\t\"errors\"\n)\n\n// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID.\n// A message type ID is required for storing a protocol buffer in a message set.\nvar errNoMessageTypeID = errors.New(\"proto does not have a message type ID\")\n\n// The first two types (_MessageSet_Item and messageSet)\n// model what the protocol compiler produces for the following protocol message:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n// That is the MessageSet wire format. We can't use a proto to generate these\n// because that would introduce a circular dependency between it and this package.\n\ntype _MessageSet_Item struct {\n\tTypeId  *int32 `protobuf:\"varint,2,req,name=type_id\"`\n\tMessage []byte `protobuf:\"bytes,3,req,name=message\"`\n}\n\ntype messageSet struct {\n\tItem             []*_MessageSet_Item `protobuf:\"group,1,rep\"`\n\tXXX_unrecognized []byte\n\t// TODO: caching?\n}\n\n// Make sure messageSet is a Message.\nvar _ Message = (*messageSet)(nil)\n\n// messageTypeIder is an interface satisfied by a protocol buffer type\n// that may be stored in a MessageSet.\ntype messageTypeIder interface {\n\tMessageTypeId() int32\n}\n\nfunc (ms *messageSet) find(pb Message) *_MessageSet_Item {\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn nil\n\t}\n\tid := mti.MessageTypeId()\n\tfor _, item := range ms.Item {\n\t\tif *item.TypeId == id {\n\t\t\treturn item\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (ms *messageSet) Has(pb Message) bool {\n\treturn ms.find(pb) != nil\n}\n\nfunc (ms *messageSet) Unmarshal(pb Message) error {\n\tif item := ms.find(pb); item != nil {\n\t\treturn Unmarshal(item.Message, pb)\n\t}\n\tif _, ok := pb.(messageTypeIder); !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\treturn nil // TODO: return error instead?\n}\n\nfunc (ms *messageSet) Marshal(pb Message) error {\n\tmsg, err := Marshal(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif item := ms.find(pb); item != nil {\n\t\t// reuse existing item\n\t\titem.Message = msg\n\t\treturn nil\n\t}\n\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\n\tmtid := mti.MessageTypeId()\n\tms.Item = append(ms.Item, &_MessageSet_Item{\n\t\tTypeId:  &mtid,\n\t\tMessage: msg,\n\t})\n\treturn nil\n}\n\nfunc (ms *messageSet) Reset()         { *ms = messageSet{} }\nfunc (ms *messageSet) String() string { return CompactTextString(ms) }\nfunc (*messageSet) ProtoMessage()     {}\n\n// Support for the message_set_wire_format message option.\n\nfunc skipVarint(buf []byte) []byte {\n\ti := 0\n\tfor ; buf[i]&0x80 != 0; i++ {\n\t}\n\treturn buf[i+1:]\n}\n\n// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.\n// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option.\nfunc unmarshalMessageSet(buf []byte, exts interface{}) error {\n\tvar m map[int32]Extension\n\tswitch exts := exts.(type) {\n\tcase *XXX_InternalExtensions:\n\t\tm = exts.extensionsWrite()\n\tcase map[int32]Extension:\n\t\tm = exts\n\tdefault:\n\t\treturn errors.New(\"proto: not an extension map\")\n\t}\n\n\tms := new(messageSet)\n\tif err := Unmarshal(buf, ms); err != nil {\n\t\treturn err\n\t}\n\tfor _, item := range ms.Item {\n\t\tid := *item.TypeId\n\t\tmsg := item.Message\n\n\t\t// Restore wire type and field number varint, plus length varint.\n\t\t// Be careful to preserve duplicate items.\n\t\tb := EncodeVarint(uint64(id)<<3 | WireBytes)\n\t\tif ext, ok := m[id]; ok {\n\t\t\t// Existing data; rip off the tag and length varint\n\t\t\t// so we join the new data correctly.\n\t\t\t// We can assume that ext.enc is set because we are unmarshaling.\n\t\t\to := ext.enc[len(b):]   // skip wire type and field number\n\t\t\t_, n := DecodeVarint(o) // calculate length of length varint\n\t\t\to = o[n:]               // skip length varint\n\t\t\tmsg = append(o, msg...) // join old data and new data\n\t\t}\n\t\tb = append(b, EncodeVarint(uint64(len(msg)))...)\n\t\tb = append(b, msg...)\n\n\t\tm[id] = Extension{enc: b}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build purego appengine js\n\n// This file contains an implementation of proto field accesses using package reflect.\n// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can\n// be used on App Engine.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n)\n\nconst unsafeAllowed = false\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by the sequence of field indices\n// passed to reflect's FieldByIndex.\ntype field []int\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn f.Index\n}\n\n// invalidField is an invalid field identifier.\nvar invalidField = field(nil)\n\n// zeroField is a noop when calling pointer.offset.\nvar zeroField = field([]int{})\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool { return f != nil }\n\n// The pointer type is for the table-driven decoder.\n// The implementation here uses a reflect.Value of pointer type to\n// create a generic pointer. In pointer_unsafe.go we use unsafe\n// instead of reflect to implement the same (but faster) interface.\ntype pointer struct {\n\tv reflect.Value\n}\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\treturn pointer{v: reflect.ValueOf(*i)}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr bool) pointer {\n\tv := reflect.ValueOf(*i)\n\tu := reflect.New(v.Type())\n\tu.Elem().Set(v)\n\treturn pointer{v: u}\n}\n\n// valToPointer converts v to a pointer.  v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{v: v}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\treturn pointer{v: p.v.Elem().FieldByIndex(f).Addr()}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.v.IsNil()\n}\n\n// grow updates the slice s in place to make it one element longer.\n// s must be addressable.\n// Returns the (addressable) new element.\nfunc grow(s reflect.Value) reflect.Value {\n\tn, m := s.Len(), s.Cap()\n\tif n < m {\n\t\ts.SetLen(n + 1)\n\t} else {\n\t\ts.Set(reflect.Append(s, reflect.Zero(s.Type().Elem())))\n\t}\n\treturn s.Index(n)\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn p.v.Interface().(*int64)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn p.v.Interface().(**int64)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn p.v.Interface().(*[]int64)\n}\n\nvar int32ptr = reflect.TypeOf((*int32)(nil))\n\nfunc (p pointer) toInt32() *int32 {\n\treturn p.v.Convert(int32ptr).Interface().(*int32)\n}\n\n// The toInt32Ptr/Slice methods don't work because of enums.\n// Instead, we must use set/get methods for the int32ptr/slice case.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn p.v.Interface().(**int32)\n}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn p.v.Interface().(*[]int32)\n}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().(*int32)\n\t}\n\t// an enum\n\treturn p.v.Elem().Convert(int32PtrType).Interface().(*int32)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t// Allocate value in a *int32. Possibly convert that to a *enum.\n\t// Then assign it to a **int32 or **enum.\n\t// Note: we can convert *int32 to *enum, but we can't convert\n\t// **int32 to **enum!\n\tp.v.Elem().Set(reflect.ValueOf(&v).Convert(p.v.Type().Elem()))\n}\n\n// getInt32Slice copies []int32 from p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().([]int32)\n\t}\n\t// an enum\n\t// Allocate a []int32, then assign []enum's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := p.v.Elem()\n\ts := make([]int32, slice.Len())\n\tfor i := 0; i < slice.Len(); i++ {\n\t\ts[i] = int32(slice.Index(i).Int())\n\t}\n\treturn s\n}\n\n// setInt32Slice copies []int32 into p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\tp.v.Elem().Set(reflect.ValueOf(v))\n\t\treturn\n\t}\n\t// an enum\n\t// Allocate a []enum, then assign []int32's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := reflect.MakeSlice(p.v.Type().Elem(), len(v), cap(v))\n\tfor i, x := range v {\n\t\tslice.Index(i).SetInt(int64(x))\n\t}\n\tp.v.Elem().Set(slice)\n}\nfunc (p pointer) appendInt32Slice(v int32) {\n\tgrow(p.v.Elem()).SetInt(int64(v))\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn p.v.Interface().(*uint64)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn p.v.Interface().(**uint64)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn p.v.Interface().(*[]uint64)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn p.v.Interface().(*uint32)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn p.v.Interface().(**uint32)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn p.v.Interface().(*[]uint32)\n}\nfunc (p pointer) toBool() *bool {\n\treturn p.v.Interface().(*bool)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn p.v.Interface().(**bool)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn p.v.Interface().(*[]bool)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn p.v.Interface().(*float64)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn p.v.Interface().(**float64)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn p.v.Interface().(*[]float64)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn p.v.Interface().(*float32)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn p.v.Interface().(**float32)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn p.v.Interface().(*[]float32)\n}\nfunc (p pointer) toString() *string {\n\treturn p.v.Interface().(*string)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn p.v.Interface().(**string)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn p.v.Interface().(*[]string)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn p.v.Interface().(*[]byte)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn p.v.Interface().(*[][]byte)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn p.v.Interface().(*XXX_InternalExtensions)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn p.v.Interface().(*map[int32]Extension)\n}\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{v: p.v.Elem()}\n}\nfunc (p pointer) setPointer(q pointer) {\n\tp.v.Elem().Set(q.v)\n}\nfunc (p pointer) appendPointer(q pointer) {\n\tgrow(p.v.Elem()).Set(q.v)\n}\n\n// getPointerSlice copies []*T from p as a new []pointer.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\tif p.v.IsNil() {\n\t\treturn nil\n\t}\n\tn := p.v.Elem().Len()\n\ts := make([]pointer, n)\n\tfor i := 0; i < n; i++ {\n\t\ts[i] = pointer{v: p.v.Elem().Index(i)}\n\t}\n\treturn s\n}\n\n// setPointerSlice copies []pointer into p as a new []*T.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\tif v == nil {\n\t\tp.v.Elem().Set(reflect.New(p.v.Elem().Type()).Elem())\n\t\treturn\n\t}\n\ts := reflect.MakeSlice(p.v.Elem().Type(), 0, len(v))\n\tfor _, p := range v {\n\t\ts = reflect.Append(s, p.v)\n\t}\n\tp.v.Elem().Set(s)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\tif p.v.Elem().IsNil() {\n\t\treturn pointer{v: p.v.Elem()}\n\t}\n\treturn pointer{v: p.v.Elem().Elem().Elem().Field(0).Addr()} // *interface -> interface -> *struct -> struct\n}\n\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\t// TODO: check that p.v.Type().Elem() == t?\n\treturn p.v\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\n\nvar atomicLock sync.Mutex\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build purego appengine js\n\n// This file contains an implementation of proto field accesses using package reflect.\n// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can\n// be used on App Engine.\n\npackage proto\n\nimport (\n\t\"reflect\"\n)\n\n// TODO: untested, so probably incorrect.\n\nfunc (p pointer) getRef() pointer {\n\treturn pointer{v: p.v.Addr()}\n}\n\nfunc (p pointer) appendRef(v pointer, typ reflect.Type) {\n\tslice := p.getSlice(typ)\n\telem := v.asPointerTo(typ).Elem()\n\tnewSlice := reflect.Append(slice, elem)\n\tslice.Set(newSlice)\n}\n\nfunc (p pointer) getSlice(typ reflect.Type) reflect.Value {\n\tsliceTyp := reflect.SliceOf(typ)\n\tslice := p.asPointerTo(sliceTyp)\n\tslice = slice.Elem()\n\treturn slice\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build !purego,!appengine,!js\n\n// This file contains the implementation of the proto field accesses using package unsafe.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nconst unsafeAllowed = true\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by its byte offset from the start of the struct.\ntype field uintptr\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn field(f.Offset)\n}\n\n// invalidField is an invalid field identifier.\nconst invalidField = ^field(0)\n\n// zeroField is a noop when calling pointer.offset.\nconst zeroField = field(0)\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool {\n\treturn f != invalidField\n}\n\n// The pointer type below is for the new table-driven encoder/decoder.\n// The implementation here uses unsafe.Pointer to create a generic pointer.\n// In pointer_reflect.go we use reflect instead of unsafe to implement\n// the same (but slower) interface.\ntype pointer struct {\n\tp unsafe.Pointer\n}\n\n// size of pointer\nvar ptrSize = unsafe.Sizeof(uintptr(0))\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\t// Saves ~25ns over the equivalent:\n\t// return valToPointer(reflect.ValueOf(*i))\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr bool) pointer {\n\t// Super-tricky - read or get the address of data word of interface value.\n\tif isptr {\n\t\t// The interface is of pointer type, thus it is a direct interface.\n\t\t// The data word is the pointer data itself. We take its address.\n\t\treturn pointer{p: unsafe.Pointer(uintptr(unsafe.Pointer(i)) + ptrSize)}\n\t}\n\t// The interface is not of pointer type. The data word is the pointer\n\t// to the data.\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\n// valToPointer converts v to a pointer. v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{p: unsafe.Pointer(v.Pointer())}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\t// For safety, we should panic if !f.IsValid, however calling panic causes\n\t// this to no longer be inlineable, which is a serious performance cost.\n\t/*\n\t\tif !f.IsValid() {\n\t\t\tpanic(\"invalid field\")\n\t\t}\n\t*/\n\treturn pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.p == nil\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn (*int64)(p.p)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn (**int64)(p.p)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn (*[]int64)(p.p)\n}\nfunc (p pointer) toInt32() *int32 {\n\treturn (*int32)(p.p)\n}\n\n// See pointer_reflect.go for why toInt32Ptr/Slice doesn't exist.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn (**int32)(p.p)\n\t}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn (*[]int32)(p.p)\n\t}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\treturn *(**int32)(p.p)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t*(**int32)(p.p) = &v\n}\n\n// getInt32Slice loads a []int32 from p.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\treturn *(*[]int32)(p.p)\n}\n\n// setInt32Slice stores a []int32 to p.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\t*(*[]int32)(p.p) = v\n}\n\n// TODO: Can we get rid of appendInt32Slice and use setInt32Slice instead?\nfunc (p pointer) appendInt32Slice(v int32) {\n\ts := (*[]int32)(p.p)\n\t*s = append(*s, v)\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn (*uint64)(p.p)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn (**uint64)(p.p)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn (*[]uint64)(p.p)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn (*uint32)(p.p)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn (**uint32)(p.p)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn (*[]uint32)(p.p)\n}\nfunc (p pointer) toBool() *bool {\n\treturn (*bool)(p.p)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn (**bool)(p.p)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn (*[]bool)(p.p)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn (*float64)(p.p)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn (**float64)(p.p)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn (*[]float64)(p.p)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn (*float32)(p.p)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn (**float32)(p.p)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn (*[]float32)(p.p)\n}\nfunc (p pointer) toString() *string {\n\treturn (*string)(p.p)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn (**string)(p.p)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn (*[]string)(p.p)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn (*[]byte)(p.p)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn (*[][]byte)(p.p)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn (*XXX_InternalExtensions)(p.p)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn (*map[int32]Extension)(p.p)\n}\n\n// getPointerSlice loads []*T from p as a []pointer.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We load it as []pointer.\n\treturn *(*[]pointer)(p.p)\n}\n\n// setPointerSlice stores []pointer into p as a []*T.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We store it as []pointer.\n\t*(*[]pointer)(p.p) = v\n}\n\n// getPointer loads the pointer at p and returns it.\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{p: *(*unsafe.Pointer)(p.p)}\n}\n\n// setPointer stores the pointer q at p.\nfunc (p pointer) setPointer(q pointer) {\n\t*(*unsafe.Pointer)(p.p) = q.p\n}\n\n// append q to the slice pointed to by p.\nfunc (p pointer) appendPointer(q pointer) {\n\ts := (*[]unsafe.Pointer)(p.p)\n\t*s = append(*s, q.p)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\treturn pointer{p: (*(*[2]unsafe.Pointer)(p.p))[1]}\n}\n\n// asPointerTo returns a reflect.Value that is a pointer to an\n// object of type t stored at p.\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\treturn reflect.NewAt(t, p.p)\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\treturn (*unmarshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\treturn (*marshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\treturn (*mergeInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\treturn (*discardInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build !purego,!appengine,!js\n\n// This file contains the implementation of the proto field accesses using package unsafe.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nfunc (p pointer) getRef() pointer {\n\treturn pointer{p: (unsafe.Pointer)(&p.p)}\n}\n\nfunc (p pointer) appendRef(v pointer, typ reflect.Type) {\n\tslice := p.getSlice(typ)\n\telem := v.asPointerTo(typ).Elem()\n\tnewSlice := reflect.Append(slice, elem)\n\tslice.Set(newSlice)\n}\n\nfunc (p pointer) getSlice(typ reflect.Type) reflect.Value {\n\tsliceTyp := reflect.SliceOf(typ)\n\tslice := p.asPointerTo(sliceTyp)\n\tslice = slice.Elem()\n\treturn slice\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\nconst debug bool = false\n\n// Constants that identify the encoding of a value on the wire.\nconst (\n\tWireVarint     = 0\n\tWireFixed64    = 1\n\tWireBytes      = 2\n\tWireStartGroup = 3\n\tWireEndGroup   = 4\n\tWireFixed32    = 5\n)\n\n// tagMap is an optimization over map[int]int for typical protocol buffer\n// use-cases. Encoded protocol buffers are often in tag order with small tag\n// numbers.\ntype tagMap struct {\n\tfastTags []int\n\tslowTags map[int]int\n}\n\n// tagMapFastLimit is the upper bound on the tag number that will be stored in\n// the tagMap slice rather than its map.\nconst tagMapFastLimit = 1024\n\nfunc (p *tagMap) get(t int) (int, bool) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tif t >= len(p.fastTags) {\n\t\t\treturn 0, false\n\t\t}\n\t\tfi := p.fastTags[t]\n\t\treturn fi, fi >= 0\n\t}\n\tfi, ok := p.slowTags[t]\n\treturn fi, ok\n}\n\nfunc (p *tagMap) put(t int, fi int) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tfor len(p.fastTags) < t+1 {\n\t\t\tp.fastTags = append(p.fastTags, -1)\n\t\t}\n\t\tp.fastTags[t] = fi\n\t\treturn\n\t}\n\tif p.slowTags == nil {\n\t\tp.slowTags = make(map[int]int)\n\t}\n\tp.slowTags[t] = fi\n}\n\n// StructProperties represents properties for all the fields of a struct.\n// decoderTags and decoderOrigNames should only be used by the decoder.\ntype StructProperties struct {\n\tProp             []*Properties  // properties for each field\n\treqCount         int            // required count\n\tdecoderTags      tagMap         // map from proto tag to struct field number\n\tdecoderOrigNames map[string]int // map from original name to struct field number\n\torder            []int          // list of struct field numbers in tag order\n\n\t// OneofTypes contains information about the oneof fields in this message.\n\t// It is keyed by the original name of a field.\n\tOneofTypes map[string]*OneofProperties\n}\n\n// OneofProperties represents information about a specific field in a oneof.\ntype OneofProperties struct {\n\tType  reflect.Type // pointer to generated struct type for this oneof field\n\tField int          // struct field number of the containing oneof in the message\n\tProp  *Properties\n}\n\n// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec.\n// See encode.go, (*Buffer).enc_struct.\n\nfunc (sp *StructProperties) Len() int { return len(sp.order) }\nfunc (sp *StructProperties) Less(i, j int) bool {\n\treturn sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag\n}\nfunc (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] }\n\n// Properties represents the protocol-specific behavior of a single struct field.\ntype Properties struct {\n\tName     string // name of the field, for error messages\n\tOrigName string // original name before protocol compiler (always set)\n\tJSONName string // name to use for JSON; determined by protoc\n\tWire     string\n\tWireType int\n\tTag      int\n\tRequired bool\n\tOptional bool\n\tRepeated bool\n\tPacked   bool   // relevant for repeated primitives only\n\tEnum     string // set for enum types only\n\tproto3   bool   // whether this is known to be a proto3 field\n\toneof    bool   // whether this is a oneof field\n\n\tDefault     string // default value\n\tHasDefault  bool   // whether an explicit default was provided\n\tCustomType  string\n\tCastType    string\n\tStdTime     bool\n\tStdDuration bool\n\tWktPointer  bool\n\n\tstype reflect.Type      // set for struct types only\n\tctype reflect.Type      // set for custom types only\n\tsprop *StructProperties // set for struct types only\n\n\tmtype      reflect.Type // set for map types only\n\tMapKeyProp *Properties  // set for map types only\n\tMapValProp *Properties  // set for map types only\n}\n\n// String formats the properties in the protobuf struct field tag style.\nfunc (p *Properties) String() string {\n\ts := p.Wire\n\ts += \",\"\n\ts += strconv.Itoa(p.Tag)\n\tif p.Required {\n\t\ts += \",req\"\n\t}\n\tif p.Optional {\n\t\ts += \",opt\"\n\t}\n\tif p.Repeated {\n\t\ts += \",rep\"\n\t}\n\tif p.Packed {\n\t\ts += \",packed\"\n\t}\n\ts += \",name=\" + p.OrigName\n\tif p.JSONName != p.OrigName {\n\t\ts += \",json=\" + p.JSONName\n\t}\n\tif p.proto3 {\n\t\ts += \",proto3\"\n\t}\n\tif p.oneof {\n\t\ts += \",oneof\"\n\t}\n\tif len(p.Enum) > 0 {\n\t\ts += \",enum=\" + p.Enum\n\t}\n\tif p.HasDefault {\n\t\ts += \",def=\" + p.Default\n\t}\n\treturn s\n}\n\n// Parse populates p by parsing a string in the protobuf struct field tag style.\nfunc (p *Properties) Parse(s string) {\n\t// \"bytes,49,opt,name=foo,def=hello!\"\n\tfields := strings.Split(s, \",\") // breaks def=, but handled below.\n\tif len(fields) < 2 {\n\t\tlog.Printf(\"proto: tag has too few fields: %q\", s)\n\t\treturn\n\t}\n\n\tp.Wire = fields[0]\n\tswitch p.Wire {\n\tcase \"varint\":\n\t\tp.WireType = WireVarint\n\tcase \"fixed32\":\n\t\tp.WireType = WireFixed32\n\tcase \"fixed64\":\n\t\tp.WireType = WireFixed64\n\tcase \"zigzag32\":\n\t\tp.WireType = WireVarint\n\tcase \"zigzag64\":\n\t\tp.WireType = WireVarint\n\tcase \"bytes\", \"group\":\n\t\tp.WireType = WireBytes\n\t\t// no numeric converter for non-numeric types\n\tdefault:\n\t\tlog.Printf(\"proto: tag has unknown wire type: %q\", s)\n\t\treturn\n\t}\n\n\tvar err error\n\tp.Tag, err = strconv.Atoi(fields[1])\n\tif err != nil {\n\t\treturn\n\t}\n\nouter:\n\tfor i := 2; i < len(fields); i++ {\n\t\tf := fields[i]\n\t\tswitch {\n\t\tcase f == \"req\":\n\t\t\tp.Required = true\n\t\tcase f == \"opt\":\n\t\t\tp.Optional = true\n\t\tcase f == \"rep\":\n\t\t\tp.Repeated = true\n\t\tcase f == \"packed\":\n\t\t\tp.Packed = true\n\t\tcase strings.HasPrefix(f, \"name=\"):\n\t\t\tp.OrigName = f[5:]\n\t\tcase strings.HasPrefix(f, \"json=\"):\n\t\t\tp.JSONName = f[5:]\n\t\tcase strings.HasPrefix(f, \"enum=\"):\n\t\t\tp.Enum = f[5:]\n\t\tcase f == \"proto3\":\n\t\t\tp.proto3 = true\n\t\tcase f == \"oneof\":\n\t\t\tp.oneof = true\n\t\tcase strings.HasPrefix(f, \"def=\"):\n\t\t\tp.HasDefault = true\n\t\t\tp.Default = f[4:] // rest of string\n\t\t\tif i+1 < len(fields) {\n\t\t\t\t// Commas aren't escaped, and def is always last.\n\t\t\t\tp.Default += \",\" + strings.Join(fields[i+1:], \",\")\n\t\t\t\tbreak outer\n\t\t\t}\n\t\tcase strings.HasPrefix(f, \"embedded=\"):\n\t\t\tp.OrigName = strings.Split(f, \"=\")[1]\n\t\tcase strings.HasPrefix(f, \"customtype=\"):\n\t\t\tp.CustomType = strings.Split(f, \"=\")[1]\n\t\tcase strings.HasPrefix(f, \"casttype=\"):\n\t\t\tp.CastType = strings.Split(f, \"=\")[1]\n\t\tcase f == \"stdtime\":\n\t\t\tp.StdTime = true\n\t\tcase f == \"stdduration\":\n\t\t\tp.StdDuration = true\n\t\tcase f == \"wktptr\":\n\t\t\tp.WktPointer = true\n\t\t}\n\t}\n}\n\nvar protoMessageType = reflect.TypeOf((*Message)(nil)).Elem()\n\n// setFieldProps initializes the field properties for submessages and maps.\nfunc (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, lockGetProp bool) {\n\tisMap := typ.Kind() == reflect.Map\n\tif len(p.CustomType) > 0 && !isMap {\n\t\tp.ctype = typ\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.StdTime && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.StdDuration && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.WktPointer && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tswitch t1 := typ; t1.Kind() {\n\tcase reflect.Struct:\n\t\tp.stype = typ\n\tcase reflect.Ptr:\n\t\tif t1.Elem().Kind() == reflect.Struct {\n\t\t\tp.stype = t1.Elem()\n\t\t}\n\tcase reflect.Slice:\n\t\tswitch t2 := t1.Elem(); t2.Kind() {\n\t\tcase reflect.Ptr:\n\t\t\tswitch t3 := t2.Elem(); t3.Kind() {\n\t\t\tcase reflect.Struct:\n\t\t\t\tp.stype = t3\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tp.stype = t2\n\t\t}\n\n\tcase reflect.Map:\n\n\t\tp.mtype = t1\n\t\tp.MapKeyProp = &Properties{}\n\t\tp.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), \"Key\", f.Tag.Get(\"protobuf_key\"), nil, lockGetProp)\n\t\tp.MapValProp = &Properties{}\n\t\tvtype := p.mtype.Elem()\n\t\tif vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice {\n\t\t\t// The value type is not a message (*T) or bytes ([]byte),\n\t\t\t// so we need encoders for the pointer to this type.\n\t\t\tvtype = reflect.PtrTo(vtype)\n\t\t}\n\n\t\tp.MapValProp.CustomType = p.CustomType\n\t\tp.MapValProp.StdDuration = p.StdDuration\n\t\tp.MapValProp.StdTime = p.StdTime\n\t\tp.MapValProp.WktPointer = p.WktPointer\n\t\tp.MapValProp.init(vtype, \"Value\", f.Tag.Get(\"protobuf_val\"), nil, lockGetProp)\n\t}\n\tp.setTag(lockGetProp)\n}\n\nfunc (p *Properties) setTag(lockGetProp bool) {\n\tif p.stype != nil {\n\t\tif lockGetProp {\n\t\t\tp.sprop = GetProperties(p.stype)\n\t\t} else {\n\t\t\tp.sprop = getPropertiesLocked(p.stype)\n\t\t}\n\t}\n}\n\nvar (\n\tmarshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem()\n)\n\n// Init populates the properties from a protocol buffer struct tag.\nfunc (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {\n\tp.init(typ, name, tag, f, true)\n}\n\nfunc (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) {\n\t// \"bytes,49,opt,def=hello!\"\n\tp.Name = name\n\tp.OrigName = name\n\tif tag == \"\" {\n\t\treturn\n\t}\n\tp.Parse(tag)\n\tp.setFieldProps(typ, f, lockGetProp)\n}\n\nvar (\n\tpropertiesMu  sync.RWMutex\n\tpropertiesMap = make(map[reflect.Type]*StructProperties)\n)\n\n// GetProperties returns the list of properties for the type represented by t.\n// t must represent a generated struct type of a protocol message.\nfunc GetProperties(t reflect.Type) *StructProperties {\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(\"proto: type must have kind struct\")\n\t}\n\n\t// Most calls to GetProperties in a long-running program will be\n\t// retrieving details for types we have seen before.\n\tpropertiesMu.RLock()\n\tsprop, ok := propertiesMap[t]\n\tpropertiesMu.RUnlock()\n\tif ok {\n\t\treturn sprop\n\t}\n\n\tpropertiesMu.Lock()\n\tsprop = getPropertiesLocked(t)\n\tpropertiesMu.Unlock()\n\treturn sprop\n}\n\ntype (\n\toneofFuncsIface interface {\n\t\tXXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})\n\t}\n\toneofWrappersIface interface {\n\t\tXXX_OneofWrappers() []interface{}\n\t}\n)\n\n// getPropertiesLocked requires that propertiesMu is held.\nfunc getPropertiesLocked(t reflect.Type) *StructProperties {\n\tif prop, ok := propertiesMap[t]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(StructProperties)\n\t// in case of recursive protos, fill this in now.\n\tpropertiesMap[t] = prop\n\n\t// build properties\n\tprop.Prop = make([]*Properties, t.NumField())\n\tprop.order = make([]int, t.NumField())\n\n\tisOneofMessage := false\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tp := new(Properties)\n\t\tname := f.Name\n\t\tp.init(f.Type, name, f.Tag.Get(\"protobuf\"), &f, false)\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\") // special case\n\t\tif oneof != \"\" {\n\t\t\tisOneofMessage = true\n\t\t\t// Oneof fields don't use the traditional protobuf tag.\n\t\t\tp.OrigName = oneof\n\t\t}\n\t\tprop.Prop[i] = p\n\t\tprop.order[i] = i\n\t\tif debug {\n\t\t\tprint(i, \" \", f.Name, \" \", t.String(), \" \")\n\t\t\tif p.Tag > 0 {\n\t\t\t\tprint(p.String())\n\t\t\t}\n\t\t\tprint(\"\\n\")\n\t\t}\n\t}\n\n\t// Re-order prop.order.\n\tsort.Sort(prop)\n\n\tif isOneofMessage {\n\t\tvar oots []interface{}\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oots = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toots = m.XXX_OneofWrappers()\n\t\t}\n\t\tif len(oots) > 0 {\n\t\t\t// Interpret oneof metadata.\n\t\t\tprop.OneofTypes = make(map[string]*OneofProperties)\n\t\t\tfor _, oot := range oots {\n\t\t\t\toop := &OneofProperties{\n\t\t\t\t\tType: reflect.ValueOf(oot).Type(), // *T\n\t\t\t\t\tProp: new(Properties),\n\t\t\t\t}\n\t\t\t\tsft := oop.Type.Elem().Field(0)\n\t\t\t\toop.Prop.Name = sft.Name\n\t\t\t\toop.Prop.Parse(sft.Tag.Get(\"protobuf\"))\n\t\t\t\t// There will be exactly one interface field that\n\t\t\t\t// this new value is assignable to.\n\t\t\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\t\t\tf := t.Field(i)\n\t\t\t\t\tif f.Type.Kind() != reflect.Interface {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif !oop.Type.AssignableTo(f.Type) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\toop.Field = i\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tprop.OneofTypes[oop.Prop.OrigName] = oop\n\t\t\t}\n\t\t}\n\t}\n\n\t// build required counts\n\t// build tags\n\treqCount := 0\n\tprop.decoderOrigNames = make(map[string]int)\n\tfor i, p := range prop.Prop {\n\t\tif strings.HasPrefix(p.Name, \"XXX_\") {\n\t\t\t// Internal fields should not appear in tags/origNames maps.\n\t\t\t// They are handled specially when encoding and decoding.\n\t\t\tcontinue\n\t\t}\n\t\tif p.Required {\n\t\t\treqCount++\n\t\t}\n\t\tprop.decoderTags.put(p.Tag, i)\n\t\tprop.decoderOrigNames[p.OrigName] = i\n\t}\n\tprop.reqCount = reqCount\n\n\treturn prop\n}\n\n// A global registry of enum types.\n// The generated code will register the generated maps by calling RegisterEnum.\n\nvar enumValueMaps = make(map[string]map[string]int32)\nvar enumStringMaps = make(map[string]map[int32]string)\n\n// RegisterEnum is called from the generated code to install the enum descriptor\n// maps into the global table to aid parsing text format protocol buffers.\nfunc RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) {\n\tif _, ok := enumValueMaps[typeName]; ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + typeName)\n\t}\n\tenumValueMaps[typeName] = valueMap\n\tif _, ok := enumStringMaps[typeName]; ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + typeName)\n\t}\n\tenumStringMaps[typeName] = unusedNameMap\n}\n\n// EnumValueMap returns the mapping from names to integers of the\n// enum type enumType, or a nil if not found.\nfunc EnumValueMap(enumType string) map[string]int32 {\n\treturn enumValueMaps[enumType]\n}\n\n// A registry of all linked message types.\n// The string is a fully-qualified proto name (\"pkg.Message\").\nvar (\n\tprotoTypedNils = make(map[string]Message)      // a map from proto names to typed nil pointers\n\tprotoMapTypes  = make(map[string]reflect.Type) // a map from proto names to map types\n\trevProtoTypes  = make(map[reflect.Type]string)\n)\n\n// RegisterType is called from generated code and maps from the fully qualified\n// proto name to the type (pointer to struct) of the protocol buffer.\nfunc RegisterType(x Message, name string) {\n\tif _, ok := protoTypedNils[name]; ok {\n\t\t// TODO: Some day, make this a panic.\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tif v := reflect.ValueOf(x); v.Kind() == reflect.Ptr && v.Pointer() == 0 {\n\t\t// Generated code always calls RegisterType with nil x.\n\t\t// This check is just for extra safety.\n\t\tprotoTypedNils[name] = x\n\t} else {\n\t\tprotoTypedNils[name] = reflect.Zero(t).Interface().(Message)\n\t}\n\trevProtoTypes[t] = name\n}\n\n// RegisterMapType is called from generated code and maps from the fully qualified\n// proto name to the native map type of the proto map definition.\nfunc RegisterMapType(x interface{}, name string) {\n\tif reflect.TypeOf(x).Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"RegisterMapType(%T, %q); want map\", x, name))\n\t}\n\tif _, ok := protoMapTypes[name]; ok {\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tprotoMapTypes[name] = t\n\trevProtoTypes[t] = name\n}\n\n// MessageName returns the fully-qualified proto name for the given message type.\nfunc MessageName(x Message) string {\n\ttype xname interface {\n\t\tXXX_MessageName() string\n\t}\n\tif m, ok := x.(xname); ok {\n\t\treturn m.XXX_MessageName()\n\t}\n\treturn revProtoTypes[reflect.TypeOf(x)]\n}\n\n// MessageType returns the message type (pointer to struct) for a named message.\n// The type is not guaranteed to implement proto.Message if the name refers to a\n// map entry.\nfunc MessageType(name string) reflect.Type {\n\tif t, ok := protoTypedNils[name]; ok {\n\t\treturn reflect.TypeOf(t)\n\t}\n\treturn protoMapTypes[name]\n}\n\n// A registry of all linked proto files.\nvar (\n\tprotoFiles = make(map[string][]byte) // file name => fileDescriptor\n)\n\n// RegisterFile is called from generated code and maps from the\n// full file name of a .proto file to its compressed FileDescriptorProto.\nfunc RegisterFile(filename string, fileDescriptor []byte) {\n\tprotoFiles[filename] = fileDescriptor\n}\n\n// FileDescriptor returns the compressed FileDescriptorProto for a .proto file.\nfunc FileDescriptor(filename string) []byte { return protoFiles[filename] }\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n)\n\nvar sizerType = reflect.TypeOf((*Sizer)(nil)).Elem()\nvar protosizerType = reflect.TypeOf((*ProtoSizer)(nil)).Elem()\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/skip_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\nfunc Skip(data []byte) (n int, err error) {\n\tl := len(data)\n\tindex := 0\n\tfor index < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif index >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[index]\n\t\t\tindex++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor {\n\t\t\t\tif index >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tindex++\n\t\t\t\tif data[index-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn index, nil\n\t\tcase 1:\n\t\t\tindex += 8\n\t\t\treturn index, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif index >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[index]\n\t\t\t\tindex++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tindex += length\n\t\t\treturn index, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = index\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif index >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := data[index]\n\t\t\t\t\tindex++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := Skip(data[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tindex = start + next\n\t\t\t}\n\t\t\treturn index, nil\n\t\tcase 4:\n\t\t\treturn index, nil\n\t\tcase 5:\n\t\t\tindex += 4\n\t\t\treturn index, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// a sizer takes a pointer to a field and the size of its tag, computes the size of\n// the encoded data.\ntype sizer func(pointer, int) int\n\n// a marshaler takes a byte slice, a pointer to a field, and its tag (in wire format),\n// marshals the field to the end of the slice, returns the slice and error (if any).\ntype marshaler func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error)\n\n// marshalInfo is the information used for marshaling a message.\ntype marshalInfo struct {\n\ttyp          reflect.Type\n\tfields       []*marshalFieldInfo\n\tunrecognized field                      // offset of XXX_unrecognized\n\textensions   field                      // offset of XXX_InternalExtensions\n\tv1extensions field                      // offset of XXX_extensions\n\tsizecache    field                      // offset of XXX_sizecache\n\tinitialized  int32                      // 0 -- only typ is set, 1 -- fully initialized\n\tmessageset   bool                       // uses message set wire format\n\thasmarshaler bool                       // has custom marshaler\n\tsync.RWMutex                            // protect extElems map, also for initialization\n\textElems     map[int32]*marshalElemInfo // info of extension elements\n\n\thassizer      bool // has custom sizer\n\thasprotosizer bool // has custom protosizer\n\n\tbytesExtensions field // offset of XXX_extensions where the field type is []byte\n}\n\n// marshalFieldInfo is the information used for marshaling a field of a message.\ntype marshalFieldInfo struct {\n\tfield      field\n\twiretag    uint64 // tag in wire format\n\ttagsize    int    // size of tag in wire format\n\tsizer      sizer\n\tmarshaler  marshaler\n\tisPointer  bool\n\trequired   bool                              // field is required\n\tname       string                            // name of the field, for error reporting\n\toneofElems map[reflect.Type]*marshalElemInfo // info of oneof elements\n}\n\n// marshalElemInfo is the information used for marshaling an extension or oneof element.\ntype marshalElemInfo struct {\n\twiretag   uint64 // tag in wire format\n\ttagsize   int    // size of tag in wire format\n\tsizer     sizer\n\tmarshaler marshaler\n\tisptr     bool // elem is pointer typed, thus interface of this type is a direct interface (extension only)\n}\n\nvar (\n\tmarshalInfoMap  = map[reflect.Type]*marshalInfo{}\n\tmarshalInfoLock sync.Mutex\n\n\tuint8SliceType = reflect.TypeOf(([]uint8)(nil)).Kind()\n)\n\n// getMarshalInfo returns the information to marshal a given type of message.\n// The info it returns may not necessarily initialized.\n// t is the type of the message (NOT the pointer to it).\nfunc getMarshalInfo(t reflect.Type) *marshalInfo {\n\tmarshalInfoLock.Lock()\n\tu, ok := marshalInfoMap[t]\n\tif !ok {\n\t\tu = &marshalInfo{typ: t}\n\t\tmarshalInfoMap[t] = u\n\t}\n\tmarshalInfoLock.Unlock()\n\treturn u\n}\n\n// Size is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It computes the size of encoded data of msg.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Size(msg Message) int {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn 0\n\t}\n\treturn u.size(ptr)\n}\n\n// Marshal is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It marshals msg to the end of b.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Marshal(b []byte, msg Message, deterministic bool) ([]byte, error) {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn b, ErrNil\n\t}\n\treturn u.marshal(b, ptr, deterministic)\n}\n\nfunc getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *marshalInfo {\n\t// u := a.marshal, but atomically.\n\t// We use an atomic here to ensure memory consistency.\n\tu := atomicLoadMarshalInfo(&a.marshal)\n\tif u == nil {\n\t\t// Get marshal information from type of message.\n\t\tt := reflect.ValueOf(msg).Type()\n\t\tif t.Kind() != reflect.Ptr {\n\t\t\tpanic(fmt.Sprintf(\"cannot handle non-pointer message type %v\", t))\n\t\t}\n\t\tu = getMarshalInfo(t.Elem())\n\t\t// Store it in the cache for later users.\n\t\t// a.marshal = u, but atomically.\n\t\tatomicStoreMarshalInfo(&a.marshal, u)\n\t}\n\treturn u\n}\n\n// size is the main function to compute the size of the encoded data of a message.\n// ptr is the pointer to the message.\nfunc (u *marshalInfo) size(ptr pointer) int {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\t// Uses the message's Size method if available\n\t\tif u.hassizer {\n\t\t\ts := ptr.asPointerTo(u.typ).Interface().(Sizer)\n\t\t\treturn s.Size()\n\t\t}\n\t\t// Uses the message's ProtoSize method if available\n\t\tif u.hasprotosizer {\n\t\t\ts := ptr.asPointerTo(u.typ).Interface().(ProtoSizer)\n\t\t\treturn s.ProtoSize()\n\t\t}\n\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\n\tn := 0\n\tfor _, f := range u.fields {\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tn += f.sizer(ptr.offset(f.field), f.tagsize)\n\t}\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tn += u.sizeMessageSet(e)\n\t\t} else {\n\t\t\tn += u.sizeExtensions(e)\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tn += u.sizeV1Extensions(m)\n\t}\n\tif u.bytesExtensions.IsValid() {\n\t\ts := *ptr.offset(u.bytesExtensions).toBytes()\n\t\tn += len(s)\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tn += len(s)\n\t}\n\n\t// cache the result for use in marshal\n\tif u.sizecache.IsValid() {\n\t\tatomic.StoreInt32(ptr.offset(u.sizecache).toInt32(), int32(n))\n\t}\n\treturn n\n}\n\n// cachedsize gets the size from cache. If there is no cache (i.e. message is not generated),\n// fall back to compute the size.\nfunc (u *marshalInfo) cachedsize(ptr pointer) int {\n\tif u.sizecache.IsValid() {\n\t\treturn int(atomic.LoadInt32(ptr.offset(u.sizecache).toInt32()))\n\t}\n\treturn u.size(ptr)\n}\n\n// marshal is the main function to marshal a message. It takes a byte slice and appends\n// the encoded data to the end of the slice, returns the slice and error (if any).\n// ptr is the pointer to the message.\n// If deterministic is true, map is marshaled in deterministic order.\nfunc (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte, error) {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb1, err := m.Marshal()\n\t\tb = append(b, b1...)\n\t\treturn b, err\n\t}\n\n\tvar err, errLater error\n\t// The old marshaler encodes extensions at beginning.\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tb, err = u.appendMessageSet(b, e, deterministic)\n\t\t} else {\n\t\t\tb, err = u.appendExtensions(b, e, deterministic)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tb, err = u.appendV1Extensions(b, m, deterministic)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.bytesExtensions.IsValid() {\n\t\ts := *ptr.offset(u.bytesExtensions).toBytes()\n\t\tb = append(b, s...)\n\t}\n\tfor _, f := range u.fields {\n\t\tif f.required {\n\t\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t\t// Required field is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tb, err = f.marshaler(b, ptr.offset(f.field), f.wiretag, deterministic)\n\t\tif err != nil {\n\t\t\tif err1, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Required field in submessage is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name + \".\" + err1.field}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err == errRepeatedHasNil {\n\t\t\t\terr = errors.New(\"proto: repeated field \" + f.name + \" has nil element\")\n\t\t\t}\n\t\t\tif err == errInvalidUTF8 {\n\t\t\t\tif errLater == nil {\n\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tb = append(b, s...)\n\t}\n\treturn b, errLater\n}\n\n// computeMarshalInfo initializes the marshal info.\nfunc (u *marshalInfo) computeMarshalInfo() {\n\tu.Lock()\n\tdefer u.Unlock()\n\tif u.initialized != 0 { // non-atomic read is ok as it is protected by the lock\n\t\treturn\n\t}\n\n\tt := u.typ\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.v1extensions = invalidField\n\tu.bytesExtensions = invalidField\n\tu.sizecache = invalidField\n\tisOneofMessage := false\n\n\tif reflect.PtrTo(t).Implements(sizerType) {\n\t\tu.hassizer = true\n\t}\n\tif reflect.PtrTo(t).Implements(protosizerType) {\n\t\tu.hasprotosizer = true\n\t}\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif reflect.PtrTo(t).Implements(marshalerType) {\n\t\tu.hasmarshaler = true\n\t\tatomic.StoreInt32(&u.initialized, 1)\n\t\treturn\n\t}\n\n\tn := t.NumField()\n\n\t// deal with XXX fields first\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\tisOneofMessage = true\n\t\t}\n\t\tif !strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tswitch f.Name {\n\t\tcase \"XXX_sizecache\":\n\t\t\tu.sizecache = toField(&f)\n\t\tcase \"XXX_unrecognized\":\n\t\t\tu.unrecognized = toField(&f)\n\t\tcase \"XXX_InternalExtensions\":\n\t\t\tu.extensions = toField(&f)\n\t\t\tu.messageset = f.Tag.Get(\"protobuf_messageset\") == \"1\"\n\t\tcase \"XXX_extensions\":\n\t\t\tif f.Type.Kind() == reflect.Map {\n\t\t\t\tu.v1extensions = toField(&f)\n\t\t\t} else {\n\t\t\t\tu.bytesExtensions = toField(&f)\n\t\t\t}\n\t\tcase \"XXX_NoUnkeyedLiteral\":\n\t\t\t// nothing to do\n\t\tdefault:\n\t\t\tpanic(\"unknown XXX field: \" + f.Name)\n\t\t}\n\t\tn--\n\t}\n\n\t// get oneof implementers\n\tvar oneofImplementers []interface{}\n\t// gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler\n\tif isOneofMessage {\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toneofImplementers = m.XXX_OneofWrappers()\n\t\t}\n\t}\n\n\t// normal fields\n\tfields := make([]marshalFieldInfo, n) // batch allocation\n\tu.fields = make([]*marshalFieldInfo, 0, n)\n\tfor i, j := 0, 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := &fields[j]\n\t\tj++\n\t\tfield.name = f.Name\n\t\tu.fields = append(u.fields, field)\n\t\tif f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\tfield.computeOneofFieldInfo(&f, oneofImplementers)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Tag.Get(\"protobuf\") == \"\" {\n\t\t\t// field has no tag (not in generated message), ignore it\n\t\t\tu.fields = u.fields[:len(u.fields)-1]\n\t\t\tj--\n\t\t\tcontinue\n\t\t}\n\t\tfield.computeMarshalFieldInfo(&f)\n\t}\n\n\t// fields are marshaled in tag order on the wire.\n\tsort.Sort(byTag(u.fields))\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// helper for sorting fields by tag\ntype byTag []*marshalFieldInfo\n\nfunc (a byTag) Len() int           { return len(a) }\nfunc (a byTag) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\nfunc (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag }\n\n// getExtElemInfo returns the information to marshal an extension element.\n// The info it returns is initialized.\nfunc (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElemInfo {\n\t// get from cache first\n\tu.RLock()\n\te, ok := u.extElems[desc.Field]\n\tu.RUnlock()\n\tif ok {\n\t\treturn e\n\t}\n\n\tt := reflect.TypeOf(desc.ExtensionType) // pointer or slice to basic type or struct\n\ttags := strings.Split(desc.Tag, \",\")\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tsizr, marshalr := typeMarshaler(t, tags, false, false)\n\te = &marshalElemInfo{\n\t\twiretag:   uint64(tag)<<3 | wt,\n\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\tsizer:     sizr,\n\t\tmarshaler: marshalr,\n\t\tisptr:     t.Kind() == reflect.Ptr,\n\t}\n\n\t// update cache\n\tu.Lock()\n\tif u.extElems == nil {\n\t\tu.extElems = make(map[int32]*marshalElemInfo)\n\t}\n\tu.extElems[desc.Field] = e\n\tu.Unlock()\n\treturn e\n}\n\n// computeMarshalFieldInfo fills up the information to marshal a field.\nfunc (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) {\n\t// parse protobuf tag of the field.\n\t// tag has format of \"bytes,49,opt,name=foo,def=hello!\"\n\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tif tags[0] == \"\" {\n\t\treturn\n\t}\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tif tags[2] == \"req\" {\n\t\tfi.required = true\n\t}\n\tfi.setTag(f, tag, wt)\n\tfi.setMarshaler(f, tags)\n}\n\nfunc (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) {\n\tfi.field = toField(f)\n\tfi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire.\n\tfi.isPointer = true\n\tfi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f)\n\tfi.oneofElems = make(map[reflect.Type]*marshalElemInfo)\n\n\tityp := f.Type // interface type\n\tfor _, o := range oneofImplementers {\n\t\tt := reflect.TypeOf(o)\n\t\tif !t.Implements(ityp) {\n\t\t\tcontinue\n\t\t}\n\t\tsf := t.Elem().Field(0) // oneof implementer is a struct with a single field\n\t\ttags := strings.Split(sf.Tag.Get(\"protobuf\"), \",\")\n\t\ttag, err := strconv.Atoi(tags[1])\n\t\tif err != nil {\n\t\t\tpanic(\"tag is not an integer\")\n\t\t}\n\t\twt := wiretype(tags[0])\n\t\tsizr, marshalr := typeMarshaler(sf.Type, tags, false, true) // oneof should not omit any zero value\n\t\tfi.oneofElems[t.Elem()] = &marshalElemInfo{\n\t\t\twiretag:   uint64(tag)<<3 | wt,\n\t\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\t\tsizer:     sizr,\n\t\t\tmarshaler: marshalr,\n\t\t}\n\t}\n}\n\n// wiretype returns the wire encoding of the type.\nfunc wiretype(encoding string) uint64 {\n\tswitch encoding {\n\tcase \"fixed32\":\n\t\treturn WireFixed32\n\tcase \"fixed64\":\n\t\treturn WireFixed64\n\tcase \"varint\", \"zigzag32\", \"zigzag64\":\n\t\treturn WireVarint\n\tcase \"bytes\":\n\t\treturn WireBytes\n\tcase \"group\":\n\t\treturn WireStartGroup\n\t}\n\tpanic(\"unknown wire type \" + encoding)\n}\n\n// setTag fills up the tag (in wire format) and its size in the info of a field.\nfunc (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt uint64) {\n\tfi.field = toField(f)\n\tfi.wiretag = uint64(tag)<<3 | wt\n\tfi.tagsize = SizeVarint(uint64(tag) << 3)\n}\n\n// setMarshaler fills up the sizer and marshaler in the info of a field.\nfunc (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags []string) {\n\tswitch f.Type.Kind() {\n\tcase reflect.Map:\n\t\t// map field\n\t\tfi.isPointer = true\n\t\tfi.sizer, fi.marshaler = makeMapMarshaler(f)\n\t\treturn\n\tcase reflect.Ptr, reflect.Slice:\n\t\tfi.isPointer = true\n\t}\n\tfi.sizer, fi.marshaler = typeMarshaler(f.Type, tags, true, false)\n}\n\n// typeMarshaler returns the sizer and marshaler of a given field.\n// t is the type of the field.\n// tags is the generated \"protobuf\" tag of the field.\n// If nozero is true, zero value is not marshaled to the wire.\n// If oneof is true, it is a oneof field.\nfunc typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, marshaler) {\n\tencoding := tags[0]\n\n\tpointer := false\n\tslice := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\tpacked := false\n\tproto3 := false\n\tctype := false\n\tisTime := false\n\tisDuration := false\n\tisWktPointer := false\n\tvalidateUTF8 := true\n\tfor i := 2; i < len(tags); i++ {\n\t\tif tags[i] == \"packed\" {\n\t\t\tpacked = true\n\t\t}\n\t\tif tags[i] == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t\tif strings.HasPrefix(tags[i], \"customtype=\") {\n\t\t\tctype = true\n\t\t}\n\t\tif tags[i] == \"stdtime\" {\n\t\t\tisTime = true\n\t\t}\n\t\tif tags[i] == \"stdduration\" {\n\t\t\tisDuration = true\n\t\t}\n\t\tif tags[i] == \"wktptr\" {\n\t\t\tisWktPointer = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\tif !proto3 && !pointer && !slice {\n\t\tnozero = false\n\t}\n\n\tif ctype {\n\t\tif reflect.PtrTo(t).Implements(customType) {\n\t\t\tif slice {\n\t\t\t\treturn makeMessageRefSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif pointer {\n\t\t\t\treturn makeCustomPtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeCustomMarshaler(getMarshalInfo(t))\n\t\t} else {\n\t\t\tpanic(fmt.Sprintf(\"custom type: type: %v, does not implement the proto.custom interface\", t))\n\t\t}\n\t}\n\n\tif isTime {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeTimePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeTimePtrMarshaler(getMarshalInfo(t))\n\t\t}\n\t\tif slice {\n\t\t\treturn makeTimeSliceMarshaler(getMarshalInfo(t))\n\t\t}\n\t\treturn makeTimeMarshaler(getMarshalInfo(t))\n\t}\n\n\tif isDuration {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeDurationPtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeDurationPtrMarshaler(getMarshalInfo(t))\n\t\t}\n\t\tif slice {\n\t\t\treturn makeDurationSliceMarshaler(getMarshalInfo(t))\n\t\t}\n\t\treturn makeDurationMarshaler(getMarshalInfo(t))\n\t}\n\n\tif isWktPointer {\n\t\tswitch t.Kind() {\n\t\tcase reflect.Float64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdDoubleValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdDoubleValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdDoubleValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdDoubleValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Float32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdFloatValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdFloatValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdFloatValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdFloatValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Int64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt64ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdInt64ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt64ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdInt64ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Uint64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt64ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt64ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt64ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdUInt64ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Int32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt32ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdInt32ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt32ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdInt32ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Uint32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt32ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt32ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt32ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdUInt32ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Bool:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBoolValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdBoolValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBoolValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdBoolValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.String:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdStringValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdStringValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdStringValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdStringValueMarshaler(getMarshalInfo(t))\n\t\tcase uint8SliceType:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBytesValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdBytesValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBytesValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdBytesValueMarshaler(getMarshalInfo(t))\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown wktpointer type %#v\", t))\n\t\t}\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn sizeBoolPtr, appendBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeBoolPackedSlice, appendBoolPackedSlice\n\t\t\t}\n\t\t\treturn sizeBoolSlice, appendBoolSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeBoolValueNoZero, appendBoolValueNoZero\n\t\t}\n\t\treturn sizeBoolValue, appendBoolValue\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed32Ptr, appendFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed32PackedSlice, appendFixed32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed32Slice, appendFixed32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed32ValueNoZero, appendFixed32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed32Value, appendFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint32Ptr, appendVarint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint32PackedSlice, appendVarint32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint32Slice, appendVarint32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint32ValueNoZero, appendVarint32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint32Value, appendVarint32Value\n\t\t}\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS32Ptr, appendFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS32PackedSlice, appendFixedS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS32Slice, appendFixedS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS32ValueNoZero, appendFixedS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS32Value, appendFixedS32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS32Ptr, appendVarintS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS32PackedSlice, appendVarintS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS32Slice, appendVarintS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS32ValueNoZero, appendVarintS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS32Value, appendVarintS32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag32Ptr, appendZigzag32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag32PackedSlice, appendZigzag32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag32Slice, appendZigzag32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag32ValueNoZero, appendZigzag32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag32Value, appendZigzag32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed64Ptr, appendFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed64PackedSlice, appendFixed64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed64Slice, appendFixed64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed64ValueNoZero, appendFixed64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed64Value, appendFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint64Ptr, appendVarint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint64PackedSlice, appendVarint64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint64Slice, appendVarint64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint64ValueNoZero, appendVarint64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint64Value, appendVarint64Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS64Ptr, appendFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS64PackedSlice, appendFixedS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS64Slice, appendFixedS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS64ValueNoZero, appendFixedS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS64Value, appendFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS64Ptr, appendVarintS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS64PackedSlice, appendVarintS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS64Slice, appendVarintS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS64ValueNoZero, appendVarintS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS64Value, appendVarintS64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag64Ptr, appendZigzag64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag64PackedSlice, appendZigzag64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag64Slice, appendZigzag64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag64ValueNoZero, appendZigzag64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag64Value, appendZigzag64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn sizeFloat32Ptr, appendFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat32PackedSlice, appendFloat32PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat32Slice, appendFloat32Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat32ValueNoZero, appendFloat32ValueNoZero\n\t\t}\n\t\treturn sizeFloat32Value, appendFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn sizeFloat64Ptr, appendFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat64PackedSlice, appendFloat64PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat64Slice, appendFloat64Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat64ValueNoZero, appendFloat64ValueNoZero\n\t\t}\n\t\treturn sizeFloat64Value, appendFloat64Value\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn sizeStringPtr, appendUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn sizeStringSlice, appendUTF8StringSlice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeStringValueNoZero, appendUTF8StringValueNoZero\n\t\t\t}\n\t\t\treturn sizeStringValue, appendUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn sizeStringPtr, appendStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn sizeStringSlice, appendStringSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeStringValueNoZero, appendStringValueNoZero\n\t\t}\n\t\treturn sizeStringValue, appendStringValue\n\tcase reflect.Slice:\n\t\tif slice {\n\t\t\treturn sizeBytesSlice, appendBytesSlice\n\t\t}\n\t\tif oneof {\n\t\t\t// Oneof bytes field may also have \"proto3\" tag.\n\t\t\t// We want to marshal it as a oneof field. Do this\n\t\t\t// check before the proto3 check.\n\t\t\treturn sizeBytesOneof, appendBytesOneof\n\t\t}\n\t\tif proto3 {\n\t\t\treturn sizeBytes3, appendBytes3\n\t\t}\n\t\treturn sizeBytes, appendBytes\n\tcase reflect.Struct:\n\t\tswitch encoding {\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeGroupSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeGroupMarshaler(getMarshalInfo(t))\n\t\tcase \"bytes\":\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeMessageSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeMessageMarshaler(getMarshalInfo(t))\n\t\t\t} else {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeMessageRefSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeMessageRefMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unknown or mismatched type: type: %v, wire type: %v\", t, encoding))\n}\n\n// Below are functions to size/marshal a specific type of a field.\n// They are stored in the field's info, and called by function pointers.\n// They have type sizer or marshaler.\n\nfunc sizeFixed32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixed32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixed32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixedS32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixedS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFloat32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFloat32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFloat32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixed64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixed64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixed64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFixedS64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixedS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFloat64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFloat64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFloat64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeVarint32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarint32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarint64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(*p) + tagsize\n}\nfunc sizeVarint64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeBoolValue(_ pointer, tagsize int) int {\n\treturn 1 + tagsize\n}\nfunc sizeBoolValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\treturn (1 + tagsize) * len(s)\n}\nfunc sizeBoolPackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn len(s) + SizeVarint(uint64(len(s))) + tagsize\n}\nfunc sizeStringValue(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toStringSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeBytes(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytes3(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesOneof(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBytesSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\n\n// appendFixed32 appends an encoded fixed32 to b.\nfunc appendFixed32(b []byte, v uint32) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24))\n\treturn b\n}\n\n// appendFixed64 appends an encoded fixed64 to b.\nfunc appendFixed64(b []byte, v uint64) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24),\n\t\tbyte(v>>32),\n\t\tbyte(v>>40),\n\t\tbyte(v>>48),\n\t\tbyte(v>>56))\n\treturn b\n}\n\n// appendVarint appends an encoded varint to b.\nfunc appendVarint(b []byte, v uint64) []byte {\n\t// TODO: make 1-byte (maybe 2-byte) case inline-able, once we\n\t// have non-leaf inliner.\n\tswitch {\n\tcase v < 1<<7:\n\t\tb = append(b, byte(v))\n\tcase v < 1<<14:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte(v>>7))\n\tcase v < 1<<21:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte(v>>14))\n\tcase v < 1<<28:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte(v>>21))\n\tcase v < 1<<35:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte(v>>28))\n\tcase v < 1<<42:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte(v>>35))\n\tcase v < 1<<49:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte(v>>42))\n\tcase v < 1<<56:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte(v>>49))\n\tcase v < 1<<63:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte(v>>56))\n\tdefault:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte((v>>56)&0x7f|0x80),\n\t\t\t1)\n\t}\n\treturn b\n}\n\nfunc appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, *p)\n\treturn b, nil\n}\nfunc appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(*p))\n\treturn b, nil\n}\nfunc appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, math.Float32bits(*p))\n\treturn b, nil\n}\nfunc appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, *p)\n\treturn b, nil\n}\nfunc appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, math.Float64bits(*p))\n\treturn b, nil\n}\nfunc appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, *p)\n\treturn b, nil\n}\nfunc appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tb = appendVarint(b, wiretag)\n\tif v {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = append(b, 1)\n\treturn b, nil\n}\n\nfunc appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tif *p {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(len(s)))\n\tfor _, v := range s {\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tif !utf8.ValidString(v) {\n\t\t\tinvalidUTF8 = true\n\t\t}\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBytesSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\n\n// makeGroupMarshaler returns the sizer and marshaler for a group.\n// u is the marshal info of the underlying message.\nfunc makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn u.size(p) + 2*tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tvar err error\n\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\tb, err = u.marshal(b, p, deterministic)\n\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\treturn b, err\n\t\t}\n}\n\n// makeGroupSliceMarshaler returns the sizer and marshaler for a group slice.\n// u is the marshal info of the underlying message.\nfunc makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tn += u.size(v) + 2*tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\t\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMessageMarshaler returns the sizer and marshaler for a message field.\n// u is the marshal info of the message.\nfunc makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.size(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tsiz := u.cachedsize(p)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\treturn u.marshal(b, p, deterministic)\n\t\t}\n}\n\n// makeMessageSliceMarshaler returns the sizer and marshaler for a message slice.\n// u is the marshal info of the message.\nfunc makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tsiz := u.cachedsize(v)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMapMarshaler returns the sizer and marshaler for a map field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) {\n\t// figure out key and value type\n\tt := f.Type\n\tkeyType := t.Key()\n\tvalType := t.Elem()\n\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tkeyTags := strings.Split(f.Tag.Get(\"protobuf_key\"), \",\")\n\tvalTags := strings.Split(f.Tag.Get(\"protobuf_val\"), \",\")\n\tstdOptions := false\n\tfor _, t := range tags {\n\t\tif strings.HasPrefix(t, \"customtype=\") {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdtime\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t\tstdOptions = true\n\t\t}\n\t\tif t == \"stdduration\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t\tstdOptions = true\n\t\t}\n\t\tif t == \"wktptr\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t}\n\tkeySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map\n\tvalSizer, valMarshaler := typeMarshaler(valType, valTags, false, false) // don't omit zero value in map\n\tkeyWireTag := 1<<3 | wiretype(keyTags[0])\n\tvalWireTag := 2<<3 | wiretype(valTags[0])\n\n\t// We create an interface to get the addresses of the map key and value.\n\t// If value is pointer-typed, the interface is a direct interface, the\n\t// idata itself is the value. Otherwise, the idata is the pointer to the\n\t// value.\n\t// Key cannot be pointer-typed.\n\tvalIsPtr := valType.Kind() == reflect.Ptr\n\n\t// If value is a message with nested maps, calling\n\t// valSizer in marshal may be quadratic. We should use\n\t// cached version in marshal (but not in size).\n\t// If value is not message type, we don't have size cache,\n\t// but it cannot be nested either. Just use valSizer.\n\tvalCachedSizer := valSizer\n\tif valIsPtr && !stdOptions && valType.Elem().Kind() == reflect.Struct {\n\t\tu := getMarshalInfo(valType.Elem())\n\t\tvalCachedSizer = func(ptr pointer, tagsize int) int {\n\t\t\t// Same as message sizer, but use cache.\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.cachedsize(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t}\n\t}\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tn := 0\n\t\t\tfor _, k := range m.MapKeys() {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false)             // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr)          // pointer to value\n\t\t\t\tsiz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, tag uint64, deterministic bool) ([]byte, error) {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tvar err error\n\t\t\tkeys := m.MapKeys()\n\t\t\tif len(keys) > 1 && deterministic {\n\t\t\t\tsort.Sort(mapKeys(keys))\n\t\t\t}\n\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, k := range keys {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false)    // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr) // pointer to value\n\t\t\t\tb = appendVarint(b, tag)\n\t\t\t\tsiz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = keyMarshaler(b, kaddr, keyWireTag, deterministic)\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t\tb, err = valMarshaler(b, vaddr, valWireTag, deterministic)\n\t\t\t\tif err != ErrNil && !nerr.Merge(err) { // allow nil value in map\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeOneOfMarshaler returns the sizer and marshaler for a oneof field.\n// fi is the marshal info of the field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (sizer, marshaler) {\n\t// Oneof field is an interface. We need to get the actual data type on the fly.\n\tt := f.Type\n\treturn func(ptr pointer, _ int) int {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.sizer(p, e.tagsize)\n\t\t},\n\t\tfunc(b []byte, ptr pointer, _ uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\tif telem.Field(0).Type.Kind() == reflect.Ptr && p.getPointer().isNil() {\n\t\t\t\treturn b, errOneofHasNil\n\t\t\t}\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.marshaler(b, p, e.wiretag, deterministic)\n\t\t}\n}\n\n// sizeExtensions computes the size of encoded data for a XXX_InternalExtensions field.\nfunc (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendExtensions marshals a XXX_InternalExtensions field to the end of byte slice b.\nfunc (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor _, e := range m {\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tb = append(b, e.enc...)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr)\n\t\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\t// Not sure this is required, but the old code does it.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// message set format is:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n\n// sizeMessageSet computes the size of encoded data for a XXX_InternalExtensions field\n// in message set format (above).\nfunc (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor id, e := range m {\n\t\tn += 2                          // start group, end group. tag = 1 (size=1)\n\t\tn += SizeVarint(uint64(id)) + 1 // type_id, tag = 2 (size=1)\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tsiz := len(msgWithLen)\n\t\t\tn += siz + 1 // message, tag = 3 (size=1)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, 1) // message, tag = 3 (size=1)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendMessageSet marshals a XXX_InternalExtensions field in message set format (above)\n// to the end of byte slice b.\nfunc (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor id, e := range m {\n\t\t\tb = append(b, 1<<3|WireStartGroup)\n\t\t\tb = append(b, 2<<3|WireVarint)\n\t\t\tb = appendVarint(b, uint64(id))\n\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\t\tb = append(b, msgWithLen...)\n\t\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr)\n\t\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, id := range keys {\n\t\te := m[int32(id)]\n\t\tb = append(b, 1<<3|WireStartGroup)\n\t\tb = append(b, 2<<3|WireVarint)\n\t\tb = appendVarint(b, uint64(id))\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\tb = append(b, msgWithLen...)\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\tb = append(b, 1<<3|WireEndGroup)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// sizeV1Extensions computes the size of encoded data for a V1-API extension field.\nfunc (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int {\n\tif m == nil {\n\t\treturn 0\n\t}\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\treturn n\n}\n\n// appendV1Extensions marshals a V1-API extension field to the end of byte slice b.\nfunc (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, deterministic bool) ([]byte, error) {\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tvar err error\n\tvar nerr nonFatal\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// newMarshaler is the interface representing objects that can marshal themselves.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newMarshaler interface {\n\tXXX_Size() int\n\tXXX_Marshal(b []byte, deterministic bool) ([]byte, error)\n}\n\n// Size returns the encoded size of a protocol buffer message.\n// This is the main entry point.\nfunc Size(pb Message) int {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\treturn m.XXX_Size()\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn 0\n\t}\n\tvar info InternalMessageInfo\n\treturn info.Size(pb)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, returning the data.\n// This is the main entry point.\nfunc Marshal(pb Message) ([]byte, error) {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tb := make([]byte, 0, siz)\n\t\treturn m.XXX_Marshal(b, false)\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\treturn m.Marshal()\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn nil, ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tb := make([]byte, 0, siz)\n\treturn info.Marshal(b, pb, false)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, writing the result to the\n// Buffer.\n// This is an alternative entry point. It is not necessary to use\n// a Buffer for most applications.\nfunc (p *Buffer) Marshal(pb Message) error {\n\tvar err error\n\tif p.deterministic {\n\t\tif _, ok := pb.(Marshaler); ok {\n\t\t\treturn fmt.Errorf(\"proto: deterministic not supported by the Marshal method of %T\", pb)\n\t\t}\n\t}\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tp.grow(siz) // make sure buf has enough capacity\n\t\tpp := p.buf[len(p.buf) : len(p.buf) : len(p.buf)+siz]\n\t\tpp, err = m.XXX_Marshal(pp, p.deterministic)\n\t\tp.buf = append(p.buf, pp...)\n\t\treturn err\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tvar b []byte\n\t\tb, err = m.Marshal()\n\t\tp.buf = append(p.buf, b...)\n\t\treturn err\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tp.grow(siz) // make sure buf has enough capacity\n\tp.buf, err = info.Marshal(p.buf, pb, p.deterministic)\n\treturn err\n}\n\n// grow grows the buffer's capacity, if necessary, to guarantee space for\n// another n bytes. After grow(n), at least n bytes can be written to the\n// buffer without another allocation.\nfunc (p *Buffer) grow(n int) {\n\tneed := len(p.buf) + n\n\tif need <= cap(p.buf) {\n\t\treturn\n\t}\n\tnewCap := len(p.buf) * 2\n\tif newCap < need {\n\t\tnewCap = need\n\t}\n\tp.buf = append(make([]byte, 0, newCap), p.buf...)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\n// makeMessageRefMarshaler differs a bit from makeMessageMarshaler\n// It marshal a message T instead of a *T\nfunc makeMessageRefMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tsiz := u.size(ptr)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tsiz := u.cachedsize(ptr)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\treturn u.marshal(b, ptr, deterministic)\n\t\t}\n}\n\n// makeMessageRefSliceMarshaler differs quite a lot from makeMessageSliceMarshaler\n// It marshals a slice of messages []T instead of []*T\nfunc makeMessageRefSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\te := elem.Interface()\n\t\t\t\tv := toAddrPointer(&e, false)\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tvar err, errreq error\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\te := elem.Interface()\n\t\t\t\tv := toAddrPointer(&e, false)\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\n\t\t\t\tif err != nil {\n\t\t\t\t\tif _, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t\t\t// Required field in submessage is not set.\n\t\t\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\t\t\tif errreq == nil {\n\t\t\t\t\t\t\terrreq = err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn b, errreq\n\t\t}\n}\n\nfunc makeCustomPtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tm := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tm := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\tbuf, err := m.Marshal()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeCustomMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tm := ptr.asPointerTo(u.typ).Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tm := ptr.asPointerTo(u.typ).Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\tbuf, err := m.Marshal()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimeMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := Size(ts)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tbuf, err := Marshal(ts)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := Size(ts)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tbuf, err := Marshal(ts)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimeSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(time.Time)\n\t\t\t\tts, err := timestampProto(t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(time.Time)\n\t\t\t\tts, err := timestampProto(t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tbuf, err := Marshal(ts)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*time.Time)\n\t\t\t\tts, err := timestampProto(*t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*time.Time)\n\t\t\t\tts, err := timestampProto(*t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tbuf, err := Marshal(ts)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\td := ptr.asPointerTo(u.typ).Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tsiz := Size(dur)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\td := ptr.asPointerTo(u.typ).Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tbuf, err := Marshal(dur)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationPtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\td := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tsiz := Size(dur)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\td := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tbuf, err := Marshal(dur)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(time.Duration)\n\t\t\t\tdur := durationProto(d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(time.Duration)\n\t\t\t\tdur := durationProto(d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tbuf, err := Marshal(dur)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationPtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(*time.Duration)\n\t\t\t\tdur := durationProto(*d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(*time.Duration)\n\t\t\t\tdur := durationProto(*d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tbuf, err := Marshal(dur)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_merge.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Merge merges the src message into dst.\n// This assumes that dst and src of the same type and are non-nil.\nfunc (a *InternalMessageInfo) Merge(dst, src Message) {\n\tmi := atomicLoadMergeInfo(&a.merge)\n\tif mi == nil {\n\t\tmi = getMergeInfo(reflect.TypeOf(dst).Elem())\n\t\tatomicStoreMergeInfo(&a.merge, mi)\n\t}\n\tmi.merge(toPointer(&dst), toPointer(&src))\n}\n\ntype mergeInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []mergeFieldInfo\n\tunrecognized field // Offset of XXX_unrecognized\n}\n\ntype mergeFieldInfo struct {\n\tfield field // Offset of field, guaranteed to be valid\n\n\t// isPointer reports whether the value in the field is a pointer.\n\t// This is true for the following situations:\n\t//\t* Pointer to struct\n\t//\t* Pointer to basic type (proto2 only)\n\t//\t* Slice (first value in slice header is a pointer)\n\t//\t* String (first value in string header is a pointer)\n\tisPointer bool\n\n\t// basicWidth reports the width of the field assuming that it is directly\n\t// embedded in the struct (as is the case for basic types in proto3).\n\t// The possible values are:\n\t// \t0: invalid\n\t//\t1: bool\n\t//\t4: int32, uint32, float32\n\t//\t8: int64, uint64, float64\n\tbasicWidth int\n\n\t// Where dst and src are pointers to the types being merged.\n\tmerge func(dst, src pointer)\n}\n\nvar (\n\tmergeInfoMap  = map[reflect.Type]*mergeInfo{}\n\tmergeInfoLock sync.Mutex\n)\n\nfunc getMergeInfo(t reflect.Type) *mergeInfo {\n\tmergeInfoLock.Lock()\n\tdefer mergeInfoLock.Unlock()\n\tmi := mergeInfoMap[t]\n\tif mi == nil {\n\t\tmi = &mergeInfo{typ: t}\n\t\tmergeInfoMap[t] = mi\n\t}\n\treturn mi\n}\n\n// merge merges src into dst assuming they are both of type *mi.typ.\nfunc (mi *mergeInfo) merge(dst, src pointer) {\n\tif dst.isNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&mi.initialized) == 0 {\n\t\tmi.computeMergeInfo()\n\t}\n\n\tfor _, fi := range mi.fields {\n\t\tsfp := src.offset(fi.field)\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tif fi.isPointer && sfp.getPointer().isNil() { // Could be slice or string\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif fi.basicWidth > 0 {\n\t\t\t\tswitch {\n\t\t\t\tcase fi.basicWidth == 1 && !*sfp.toBool():\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 4 && *sfp.toUint32() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 8 && *sfp.toUint64() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdfp := dst.offset(fi.field)\n\t\tfi.merge(dfp, sfp)\n\t}\n\n\t// TODO: Make this faster?\n\tout := dst.asPointerTo(mi.typ).Elem()\n\tin := src.asPointerTo(mi.typ).Elem()\n\tif emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tif mi.unrecognized.IsValid() {\n\t\tif b := *src.offset(mi.unrecognized).toBytes(); len(b) > 0 {\n\t\t\t*dst.offset(mi.unrecognized).toBytes() = append([]byte(nil), b...)\n\t\t}\n\t}\n}\n\nfunc (mi *mergeInfo) computeMergeInfo() {\n\tmi.lock.Lock()\n\tdefer mi.lock.Unlock()\n\tif mi.initialized != 0 {\n\t\treturn\n\t}\n\tt := mi.typ\n\tn := t.NumField()\n\n\tprops := GetProperties(t)\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tmfi := mergeFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tswitch tf.Kind() {\n\t\t\tcase reflect.Ptr, reflect.Slice, reflect.String:\n\t\t\t\t// As a special case, we assume slices and strings are pointers\n\t\t\t\t// since we know that the first field in the SliceSlice or\n\t\t\t\t// StringHeader is a data pointer.\n\t\t\t\tmfi.isPointer = true\n\t\t\tcase reflect.Bool:\n\t\t\t\tmfi.basicWidth = 1\n\t\t\tcase reflect.Int32, reflect.Uint32, reflect.Float32:\n\t\t\t\tmfi.basicWidth = 4\n\t\t\tcase reflect.Int64, reflect.Uint64, reflect.Float64:\n\t\t\t\tmfi.basicWidth = 8\n\t\t\t}\n\t\t}\n\n\t\t// Unwrap tf to get at its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(\"both pointer and slice for basic type in \" + tf.Name())\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Int32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Slice is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfsp := src.toInt32Slice()\n\t\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\t\tdfsp := dst.toInt32Slice()\n\t\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfs := src.getInt32Slice()\n\t\t\t\t\tif sfs != nil {\n\t\t\t\t\t\tdfs := dst.getInt32Slice()\n\t\t\t\t\t\tdfs = append(dfs, sfs...)\n\t\t\t\t\t\tif dfs == nil {\n\t\t\t\t\t\t\tdfs = []int32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setInt32Slice(dfs)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Ptr is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfpp := src.toInt32Ptr()\n\t\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\t\tdfpp := dst.toInt32Ptr()\n\t\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t\t*dfpp = Int32(**sfpp)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfp := src.getInt32Ptr()\n\t\t\t\t\tif sfp != nil {\n\t\t\t\t\t\tdfp := dst.getInt32Ptr()\n\t\t\t\t\t\tif dfp == nil {\n\t\t\t\t\t\t\tdst.setInt32Ptr(*sfp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t*dfp = *sfp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt32(); v != 0 {\n\t\t\t\t\t\t*dst.toInt32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toInt64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toInt64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toInt64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toInt64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Int64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt64(); v != 0 {\n\t\t\t\t\t\t*dst.toInt64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint32(); v != 0 {\n\t\t\t\t\t\t*dst.toUint32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint64(); v != 0 {\n\t\t\t\t\t\t*dst.toUint64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat32(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat64(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Bool:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toBoolSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toBoolSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []bool{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toBoolPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toBoolPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Bool(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toBool(); v {\n\t\t\t\t\t\t*dst.toBool() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.String:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toStringSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toStringSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []string{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toStringPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toStringPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = String(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toString(); v != \"\" {\n\t\t\t\t\t\t*dst.toString() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Slice:\n\t\t\tisProto3 := props.Prop[i].proto3\n\t\t\tswitch {\n\t\t\tcase isPointer:\n\t\t\t\tpanic(\"bad pointer in byte slice case in \" + tf.Name())\n\t\t\tcase tf.Elem().Kind() != reflect.Uint8:\n\t\t\t\tpanic(\"bad element kind in byte slice case in \" + tf.Name())\n\t\t\tcase isSlice: // E.g., [][]byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbsp := src.toBytesSlice()\n\t\t\t\t\tif *sbsp != nil {\n\t\t\t\t\t\tdbsp := dst.toBytesSlice()\n\t\t\t\t\t\tfor _, sb := range *sbsp {\n\t\t\t\t\t\t\tif sb == nil {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, nil)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, append([]byte{}, sb...))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif *dbsp == nil {\n\t\t\t\t\t\t\t*dbsp = [][]byte{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., []byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbp := src.toBytes()\n\t\t\t\t\tif *sbp != nil {\n\t\t\t\t\t\tdbp := dst.toBytes()\n\t\t\t\t\t\tif !isProto3 || len(*sbp) > 0 {\n\t\t\t\t\t\t\t*dbp = append([]byte{}, *sbp...)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase isSlice && !isPointer: // E.g. []pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tzero := reflect.Zero(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// TODO: Make this faster?\n\t\t\t\t\tdstsp := dst.asPointerTo(f.Type)\n\t\t\t\t\tdsts := dstsp.Elem()\n\t\t\t\t\tsrcs := src.asPointerTo(f.Type).Elem()\n\t\t\t\t\tfor i := 0; i < srcs.Len(); i++ {\n\t\t\t\t\t\tdsts = reflect.Append(dsts, zero)\n\t\t\t\t\t\tsrcElement := srcs.Index(i).Addr()\n\t\t\t\t\t\tdstElement := dsts.Index(dsts.Len() - 1).Addr()\n\t\t\t\t\t\tmergeInfo.merge(valToPointer(dstElement), valToPointer(srcElement))\n\t\t\t\t\t}\n\t\t\t\t\tif dsts.IsNil() {\n\t\t\t\t\t\tdsts = reflect.MakeSlice(f.Type, 0, 0)\n\t\t\t\t\t}\n\t\t\t\t\tdstsp.Elem().Set(dsts)\n\t\t\t\t}\n\t\t\tcase !isPointer:\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tmergeInfo.merge(dst, src)\n\t\t\t\t}\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tif sps != nil {\n\t\t\t\t\t\tdps := dst.getPointerSlice()\n\t\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\t\tvar dp pointer\n\t\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\t\tmergeInfo.merge(dp, sp)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdps = append(dps, dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif dps == nil {\n\t\t\t\t\t\t\tdps = []pointer{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setPointerSlice(dps)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdp := dst.getPointer()\n\t\t\t\t\t\tif dp.isNil() {\n\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\tdst.setPointer(dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmergeInfo.merge(dp, sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in map case in \" + tf.Name())\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tdm := dst.asPointerTo(tf).Elem()\n\t\t\t\t\tif dm.IsNil() {\n\t\t\t\t\t\tdm.Set(reflect.MakeMap(tf))\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch tf.Elem().Kind() {\n\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(Clone(val.Interface().(Message)))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in interface case in \" + tf.Name())\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tdu := dst.asPointerTo(tf).Elem()\n\t\t\t\t\t\ttyp := su.Elem().Type()\n\t\t\t\t\t\tif du.IsNil() || du.Elem().Type() != typ {\n\t\t\t\t\t\t\tdu.Set(reflect.New(typ.Elem())) // Initialize interface if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdv := du.Elem().Elem().Field(0)\n\t\t\t\t\t\tif dv.Kind() == reflect.Ptr && dv.IsNil() {\n\t\t\t\t\t\t\tdv.Set(reflect.New(sv.Type().Elem())) // Initialize proto message if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tMerge(dv.Interface().(Message), sv.Interface().(Message))\n\t\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\t\tdv.Set(reflect.ValueOf(append([]byte{}, sv.Bytes()...)))\n\t\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\t\tdv.Set(sv)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"merger not found for type:%s\", tf))\n\t\t}\n\t\tmi.fields = append(mi.fields, mfi)\n\t}\n\n\tmi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tmi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&mi.initialized, 1)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// Unmarshal is the entry point from the generated .pb.go files.\n// This function is not intended to be used by non-generated code.\n// This function is not subject to any compatibility guarantee.\n// msg contains a pointer to a protocol buffer struct.\n// b is the data to be unmarshaled into the protocol buffer.\n// a is a pointer to a place to store cached unmarshal information.\nfunc (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error {\n\t// Load the unmarshal information for this message type.\n\t// The atomic load ensures memory consistency.\n\tu := atomicLoadUnmarshalInfo(&a.unmarshal)\n\tif u == nil {\n\t\t// Slow path: find unmarshal info for msg, update a with it.\n\t\tu = getUnmarshalInfo(reflect.TypeOf(msg).Elem())\n\t\tatomicStoreUnmarshalInfo(&a.unmarshal, u)\n\t}\n\t// Then do the unmarshaling.\n\terr := u.unmarshal(toPointer(&msg), b)\n\treturn err\n}\n\ntype unmarshalInfo struct {\n\ttyp reflect.Type // type of the protobuf struct\n\n\t// 0 = only typ field is initialized\n\t// 1 = completely initialized\n\tinitialized     int32\n\tlock            sync.Mutex                    // prevents double initialization\n\tdense           []unmarshalFieldInfo          // fields indexed by tag #\n\tsparse          map[uint64]unmarshalFieldInfo // fields indexed by tag #\n\treqFields       []string                      // names of required fields\n\treqMask         uint64                        // 1<<len(reqFields)-1\n\tunrecognized    field                         // offset of []byte to put unrecognized data (or invalidField if we should throw it away)\n\textensions      field                         // offset of extensions field (of type proto.XXX_InternalExtensions), or invalidField if it does not exist\n\toldExtensions   field                         // offset of old-form extensions field (of type map[int]Extension)\n\textensionRanges []ExtensionRange              // if non-nil, implies extensions field is valid\n\tisMessageSet    bool                          // if true, implies extensions field is valid\n\n\tbytesExtensions field // offset of XXX_extensions with type []byte\n}\n\n// An unmarshaler takes a stream of bytes and a pointer to a field of a message.\n// It decodes the field, stores it at f, and returns the unused bytes.\n// w is the wire encoding.\n// b is the data after the tag and wire encoding have been read.\ntype unmarshaler func(b []byte, f pointer, w int) ([]byte, error)\n\ntype unmarshalFieldInfo struct {\n\t// location of the field in the proto message structure.\n\tfield field\n\n\t// function to unmarshal the data for the field.\n\tunmarshal unmarshaler\n\n\t// if a required field, contains a single set bit at this field's index in the required field list.\n\treqMask uint64\n\n\tname string // name of the field, for error reporting\n}\n\nvar (\n\tunmarshalInfoMap  = map[reflect.Type]*unmarshalInfo{}\n\tunmarshalInfoLock sync.Mutex\n)\n\n// getUnmarshalInfo returns the data structure which can be\n// subsequently used to unmarshal a message of the given type.\n// t is the type of the message (note: not pointer to message).\nfunc getUnmarshalInfo(t reflect.Type) *unmarshalInfo {\n\t// It would be correct to return a new unmarshalInfo\n\t// unconditionally. We would end up allocating one\n\t// per occurrence of that type as a message or submessage.\n\t// We use a cache here just to reduce memory usage.\n\tunmarshalInfoLock.Lock()\n\tdefer unmarshalInfoLock.Unlock()\n\tu := unmarshalInfoMap[t]\n\tif u == nil {\n\t\tu = &unmarshalInfo{typ: t}\n\t\t// Note: we just set the type here. The rest of the fields\n\t\t// will be initialized on first use.\n\t\tunmarshalInfoMap[t] = u\n\t}\n\treturn u\n}\n\n// unmarshal does the main work of unmarshaling a message.\n// u provides type information used to unmarshal the message.\n// m is a pointer to a protocol buffer message.\n// b is a byte stream to unmarshal into m.\n// This is top routine used when recursively unmarshaling submessages.\nfunc (u *unmarshalInfo) unmarshal(m pointer, b []byte) error {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeUnmarshalInfo()\n\t}\n\tif u.isMessageSet {\n\t\treturn unmarshalMessageSet(b, m.offset(u.extensions).toExtensions())\n\t}\n\tvar reqMask uint64 // bitmask of required fields we've seen.\n\tvar errLater error\n\tfor len(b) > 0 {\n\t\t// Read tag and wire type.\n\t\t// Special case 1 and 2 byte varints.\n\t\tvar x uint64\n\t\tif b[0] < 128 {\n\t\t\tx = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\tx = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\ttag := x >> 3\n\t\twire := int(x) & 7\n\n\t\t// Dispatch on the tag to one of the unmarshal* functions below.\n\t\tvar f unmarshalFieldInfo\n\t\tif tag < uint64(len(u.dense)) {\n\t\t\tf = u.dense[tag]\n\t\t} else {\n\t\t\tf = u.sparse[tag]\n\t\t}\n\t\tif fn := f.unmarshal; fn != nil {\n\t\t\tvar err error\n\t\t\tb, err = fn(b, m.offset(f.field), wire)\n\t\t\tif err == nil {\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Remember this error, but keep parsing. We need to produce\n\t\t\t\t// a full parse even if a required field is missing.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = r\n\t\t\t\t}\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\tif err == errInvalidUTF8 {\n\t\t\t\t\tif errLater == nil {\n\t\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// Fragments with bad wire type are treated as unknown fields.\n\t\t}\n\n\t\t// Unknown tag.\n\t\tif !u.unrecognized.IsValid() {\n\t\t\t// Don't keep unrecognized data; just skip it.\n\t\t\tvar err error\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// Keep unrecognized data around.\n\t\t// maybe in extensions, maybe in the unrecognized field.\n\t\tz := m.offset(u.unrecognized).toBytes()\n\t\tvar emap map[int32]Extension\n\t\tvar e Extension\n\t\tfor _, r := range u.extensionRanges {\n\t\t\tif uint64(r.Start) <= tag && tag <= uint64(r.End) {\n\t\t\t\tif u.extensions.IsValid() {\n\t\t\t\t\tmp := m.offset(u.extensions).toExtensions()\n\t\t\t\t\temap = mp.extensionsWrite()\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif u.oldExtensions.IsValid() {\n\t\t\t\t\tp := m.offset(u.oldExtensions).toOldExtensions()\n\t\t\t\t\temap = *p\n\t\t\t\t\tif emap == nil {\n\t\t\t\t\t\temap = map[int32]Extension{}\n\t\t\t\t\t\t*p = emap\n\t\t\t\t\t}\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif u.bytesExtensions.IsValid() {\n\t\t\t\t\tz = m.offset(u.bytesExtensions).toBytes()\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tpanic(\"no extensions field available\")\n\t\t\t}\n\t\t}\n\t\t// Use wire type to skip data.\n\t\tvar err error\n\t\tb0 := b\n\t\tb, err = skipField(b, wire)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*z = encodeVarint(*z, tag<<3|uint64(wire))\n\t\t*z = append(*z, b0[:len(b0)-len(b)]...)\n\n\t\tif emap != nil {\n\t\t\temap[int32(tag)] = e\n\t\t}\n\t}\n\tif reqMask != u.reqMask && errLater == nil {\n\t\t// A required field of this message is missing.\n\t\tfor _, n := range u.reqFields {\n\t\t\tif reqMask&1 == 0 {\n\t\t\t\terrLater = &RequiredNotSetError{n}\n\t\t\t}\n\t\t\treqMask >>= 1\n\t\t}\n\t}\n\treturn errLater\n}\n\n// computeUnmarshalInfo fills in u with information for use\n// in unmarshaling protocol buffers of type u.typ.\nfunc (u *unmarshalInfo) computeUnmarshalInfo() {\n\tu.lock.Lock()\n\tdefer u.lock.Unlock()\n\tif u.initialized != 0 {\n\t\treturn\n\t}\n\tt := u.typ\n\tn := t.NumField()\n\n\t// Set up the \"not found\" value for the unrecognized byte buffer.\n\t// This is the default for proto3.\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.oldExtensions = invalidField\n\tu.bytesExtensions = invalidField\n\n\t// List of the generated type and offset for each oneof field.\n\ttype oneofField struct {\n\t\tityp  reflect.Type // interface type of oneof field\n\t\tfield field        // offset in containing message\n\t}\n\tvar oneofFields []oneofField\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif f.Name == \"XXX_unrecognized\" {\n\t\t\t// The byte slice used to hold unrecognized input is special.\n\t\t\tif f.Type != reflect.TypeOf(([]byte)(nil)) {\n\t\t\t\tpanic(\"bad type for XXX_unrecognized field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.unrecognized = toField(&f)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_InternalExtensions\" {\n\t\t\t// Ditto here.\n\t\t\tif f.Type != reflect.TypeOf(XXX_InternalExtensions{}) {\n\t\t\t\tpanic(\"bad type for XXX_InternalExtensions field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.extensions = toField(&f)\n\t\t\tif f.Tag.Get(\"protobuf_messageset\") == \"1\" {\n\t\t\t\tu.isMessageSet = true\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_extensions\" {\n\t\t\t// An older form of the extensions field.\n\t\t\tif f.Type == reflect.TypeOf((map[int32]Extension)(nil)) {\n\t\t\t\tu.oldExtensions = toField(&f)\n\t\t\t\tcontinue\n\t\t\t} else if f.Type == reflect.TypeOf(([]byte)(nil)) {\n\t\t\t\tu.bytesExtensions = toField(&f)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpanic(\"bad type for XXX_extensions field: \" + f.Type.Name())\n\t\t}\n\t\tif f.Name == \"XXX_NoUnkeyedLiteral\" || f.Name == \"XXX_sizecache\" {\n\t\t\tcontinue\n\t\t}\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\")\n\t\tif oneof != \"\" {\n\t\t\toneofFields = append(oneofFields, oneofField{f.Type, toField(&f)})\n\t\t\t// The rest of oneof processing happens below.\n\t\t\tcontinue\n\t\t}\n\n\t\ttags := f.Tag.Get(\"protobuf\")\n\t\ttagArray := strings.Split(tags, \",\")\n\t\tif len(tagArray) < 2 {\n\t\t\tpanic(\"protobuf tag not enough fields in \" + t.Name() + \".\" + f.Name + \": \" + tags)\n\t\t}\n\t\ttag, err := strconv.Atoi(tagArray[1])\n\t\tif err != nil {\n\t\t\tpanic(\"protobuf tag field not an integer: \" + tagArray[1])\n\t\t}\n\n\t\tname := \"\"\n\t\tfor _, tag := range tagArray[3:] {\n\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\tname = tag[5:]\n\t\t\t}\n\t\t}\n\n\t\t// Extract unmarshaling function from the field (its type and tags).\n\t\tunmarshal := fieldUnmarshaler(&f)\n\n\t\t// Required field?\n\t\tvar reqMask uint64\n\t\tif tagArray[2] == \"req\" {\n\t\t\tbit := len(u.reqFields)\n\t\t\tu.reqFields = append(u.reqFields, name)\n\t\t\treqMask = uint64(1) << uint(bit)\n\t\t\t// TODO: if we have more than 64 required fields, we end up\n\t\t\t// not verifying that all required fields are present.\n\t\t\t// Fix this, perhaps using a count of required fields?\n\t\t}\n\n\t\t// Store the info in the correct slot in the message.\n\t\tu.setTag(tag, toField(&f), unmarshal, reqMask, name)\n\t}\n\n\t// Find any types associated with oneof fields.\n\t// gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler\n\tif len(oneofFields) > 0 {\n\t\tvar oneofImplementers []interface{}\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toneofImplementers = m.XXX_OneofWrappers()\n\t\t}\n\t\tfor _, v := range oneofImplementers {\n\t\t\ttptr := reflect.TypeOf(v) // *Msg_X\n\t\t\ttyp := tptr.Elem()        // Msg_X\n\n\t\t\tf := typ.Field(0) // oneof implementers have one field\n\t\t\tbaseUnmarshal := fieldUnmarshaler(&f)\n\t\t\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\t\t\tfieldNum, err := strconv.Atoi(tags[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(\"protobuf tag field not an integer: \" + tags[1])\n\t\t\t}\n\t\t\tvar name string\n\t\t\tfor _, tag := range tags {\n\t\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\t\tname = strings.TrimPrefix(tag, \"name=\")\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Find the oneof field that this struct implements.\n\t\t\t// Might take O(n^2) to process all of the oneofs, but who cares.\n\t\t\tfor _, of := range oneofFields {\n\t\t\t\tif tptr.Implements(of.ityp) {\n\t\t\t\t\t// We have found the corresponding interface for this struct.\n\t\t\t\t\t// That lets us know where this struct should be stored\n\t\t\t\t\t// when we encounter it during unmarshaling.\n\t\t\t\t\tunmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal)\n\t\t\t\t\tu.setTag(fieldNum, of.field, unmarshal, 0, name)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t// Get extension ranges, if any.\n\tfn := reflect.Zero(reflect.PtrTo(t)).MethodByName(\"ExtensionRangeArray\")\n\tif fn.IsValid() {\n\t\tif !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() {\n\t\t\tpanic(\"a message with extensions, but no extensions field in \" + t.Name())\n\t\t}\n\t\tu.extensionRanges = fn.Call(nil)[0].Interface().([]ExtensionRange)\n\t}\n\n\t// Explicitly disallow tag 0. This will ensure we flag an error\n\t// when decoding a buffer of all zeros. Without this code, we\n\t// would decode and skip an all-zero buffer of even length.\n\t// [0 0] is [tag=0/wiretype=varint varint-encoded-0].\n\tu.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) {\n\t\treturn nil, fmt.Errorf(\"proto: %s: illegal tag 0 (wire type %d)\", t, w)\n\t}, 0, \"\")\n\n\t// Set mask for required field check.\n\tu.reqMask = uint64(1)<<uint(len(u.reqFields)) - 1\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// setTag stores the unmarshal information for the given tag.\n// tag = tag # for field\n// field/unmarshal = unmarshal info for that field.\n// reqMask = if required, bitmask for field position in required field list. 0 otherwise.\n// name = short name of the field.\nfunc (u *unmarshalInfo) setTag(tag int, field field, unmarshal unmarshaler, reqMask uint64, name string) {\n\ti := unmarshalFieldInfo{field: field, unmarshal: unmarshal, reqMask: reqMask, name: name}\n\tn := u.typ.NumField()\n\tif tag >= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here?\n\t\tfor len(u.dense) <= tag {\n\t\t\tu.dense = append(u.dense, unmarshalFieldInfo{})\n\t\t}\n\t\tu.dense[tag] = i\n\t\treturn\n\t}\n\tif u.sparse == nil {\n\t\tu.sparse = map[uint64]unmarshalFieldInfo{}\n\t}\n\tu.sparse[uint64(tag)] = i\n}\n\n// fieldUnmarshaler returns an unmarshaler for the given field.\nfunc fieldUnmarshaler(f *reflect.StructField) unmarshaler {\n\tif f.Type.Kind() == reflect.Map {\n\t\treturn makeUnmarshalMap(f)\n\t}\n\treturn typeUnmarshaler(f.Type, f.Tag.Get(\"protobuf\"))\n}\n\n// typeUnmarshaler returns an unmarshaler for the given field type / field tag pair.\nfunc typeUnmarshaler(t reflect.Type, tags string) unmarshaler {\n\ttagArray := strings.Split(tags, \",\")\n\tencoding := tagArray[0]\n\tname := \"unknown\"\n\tctype := false\n\tisTime := false\n\tisDuration := false\n\tisWktPointer := false\n\tproto3 := false\n\tvalidateUTF8 := true\n\tfor _, tag := range tagArray[3:] {\n\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\tname = tag[5:]\n\t\t}\n\t\tif tag == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t\tif strings.HasPrefix(tag, \"customtype=\") {\n\t\t\tctype = true\n\t\t}\n\t\tif tag == \"stdtime\" {\n\t\t\tisTime = true\n\t\t}\n\t\tif tag == \"stdduration\" {\n\t\t\tisDuration = true\n\t\t}\n\t\tif tag == \"wktptr\" {\n\t\t\tisWktPointer = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\n\t// Figure out packaging (pointer, slice, or both)\n\tslice := false\n\tpointer := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\tif ctype {\n\t\tif reflect.PtrTo(t).Implements(customType) {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalCustomSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif pointer {\n\t\t\t\treturn makeUnmarshalCustomPtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalCustom(getUnmarshalInfo(t), name)\n\t\t} else {\n\t\t\tpanic(fmt.Sprintf(\"custom type: type: %v, does not implement the proto.custom interface\", t))\n\t\t}\n\t}\n\n\tif isTime {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalTimePtrSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalTimePtr(getUnmarshalInfo(t), name)\n\t\t}\n\t\tif slice {\n\t\t\treturn makeUnmarshalTimeSlice(getUnmarshalInfo(t), name)\n\t\t}\n\t\treturn makeUnmarshalTime(getUnmarshalInfo(t), name)\n\t}\n\n\tif isDuration {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalDurationPtrSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalDurationPtr(getUnmarshalInfo(t), name)\n\t\t}\n\t\tif slice {\n\t\t\treturn makeUnmarshalDurationSlice(getUnmarshalInfo(t), name)\n\t\t}\n\t\treturn makeUnmarshalDuration(getUnmarshalInfo(t), name)\n\t}\n\n\tif isWktPointer {\n\t\tswitch t.Kind() {\n\t\tcase reflect.Float64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdDoubleValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdDoubleValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdDoubleValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdDoubleValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Float32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdFloatValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdFloatValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdFloatValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdFloatValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Int64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdInt64ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Uint64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdUInt64ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Int32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdInt32ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Uint32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdUInt32ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Bool:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBoolValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdBoolValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBoolValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdBoolValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.String:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdStringValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdStringValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdStringValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdStringValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase uint8SliceType:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBytesValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdBytesValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBytesValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdBytesValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown wktpointer type %#v\", t))\n\t\t}\n\t}\n\n\t// We'll never have both pointer and slice for basic types.\n\tif pointer && slice && t.Kind() != reflect.Struct {\n\t\tpanic(\"both pointer and slice for basic type in \" + t.Name())\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn unmarshalBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBoolSlice\n\t\t}\n\t\treturn unmarshalBoolValue\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS32Value\n\t\tcase \"varint\":\n\t\t\t// this could be int32 or enum\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt32Slice\n\t\t\t}\n\t\t\treturn unmarshalInt32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint32Slice\n\t\t\t}\n\t\t\treturn unmarshalSint32Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt64Slice\n\t\t\t}\n\t\t\treturn unmarshalInt64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint64Slice\n\t\t\t}\n\t\t\treturn unmarshalSint64Value\n\t\t}\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint32Slice\n\t\t\t}\n\t\t\treturn unmarshalUint32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint64Slice\n\t\t\t}\n\t\t\treturn unmarshalUint64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat32Slice\n\t\t}\n\t\treturn unmarshalFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat64Slice\n\t\t}\n\t\treturn unmarshalFloat64Value\n\tcase reflect.Map:\n\t\tpanic(\"map type in typeUnmarshaler in \" + t.Name())\n\tcase reflect.Slice:\n\t\tif pointer {\n\t\t\tpanic(\"bad pointer in slice case in \" + t.Name())\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBytesSlice\n\t\t}\n\t\treturn unmarshalBytesValue\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUTF8StringSlice\n\t\t\t}\n\t\t\treturn unmarshalUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn unmarshalStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalStringSlice\n\t\t}\n\t\treturn unmarshalStringValue\n\tcase reflect.Struct:\n\t\t// message or group field\n\t\tif !pointer {\n\t\t\tswitch encoding {\n\t\t\tcase \"bytes\":\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeUnmarshalMessageSlice(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeUnmarshalMessage(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t}\n\t\tswitch encoding {\n\t\tcase \"bytes\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalMessageSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalMessagePtr(getUnmarshalInfo(t), name)\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalGroupSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalGroupPtr(getUnmarshalInfo(t), name)\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unmarshaler not found type:%s encoding:%s\", t, encoding))\n}\n\n// Below are all the unmarshalers for individual fields of various types.\n\nfunc unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x)\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint64(x)\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x)\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint32(x)\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := 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\n\t*f.toUint64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := 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\n\t*f.toUint64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := 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\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := 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\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t*f.toInt32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.setInt32Ptr(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t\t\tf.appendInt32Slice(v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.appendInt32Slice(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\t// Note: any length varint is allowed, even though any sane\n\t// encoder will use one byte.\n\t// See https://github.com/golang/protobuf/issues/76\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// TODO: check if x>1? Tests seem to indicate no.\n\tv := x != 0\n\t*f.toBool() = v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\t*f.toBoolPtr() = &v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := x != 0\n\t\t\ts := f.toBoolSlice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\ts := f.toBoolSlice()\n\t*s = append(*s, v)\n\treturn b[n:], nil\n}\n\nfunc unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(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)\n\t*f.toFloat64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(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)\n\t*f.toFloat64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float64frombits(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)\n\t\t\ts := f.toFloat64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(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)\n\ts := f.toFloat64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t\t\ts := f.toFloat32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\ts := f.toFloat32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nvar emptyBuf [0]byte\n\nfunc unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// The use of append here is a trick which avoids the zeroing\n\t// that would be required if we used a make/copy pair.\n\t// We append to emptyBuf instead of nil because we want\n\t// a non-nil result even when the length is 0.\n\tv := append(emptyBuf[:], b[:x]...)\n\t*f.toBytes() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := append(emptyBuf[:], b[:x]...)\n\ts := f.toBytesSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\t// First read the message field to see if something is there.\n\t\t// The semantics of multiple submessages are weird.  Instead of\n\t\t// the last one winning (as it is for all other fields), multiple\n\t\t// submessages are merged.\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalMap(f *reflect.StructField) unmarshaler {\n\tt := f.Type\n\tkt := t.Key()\n\tvt := t.Elem()\n\ttagArray := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tvalTags := strings.Split(f.Tag.Get(\"protobuf_val\"), \",\")\n\tfor _, t := range tagArray {\n\t\tif strings.HasPrefix(t, \"customtype=\") {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdtime\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdduration\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"wktptr\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t}\n\tunmarshalKey := typeUnmarshaler(kt, f.Tag.Get(\"protobuf_key\"))\n\tunmarshalVal := typeUnmarshaler(vt, strings.Join(valTags, \",\"))\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// The map entry is a submessage. Figure out how big it is.\n\t\tif w != WireBytes {\n\t\t\treturn nil, fmt.Errorf(\"proto: bad wiretype for map field: got %d want %d\", w, WireBytes)\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tr := b[x:] // unused data to return\n\t\tb = b[:x]  // data for map entry\n\n\t\t// Note: we could use #keys * #values ~= 200 functions\n\t\t// to do map decoding without reflection. Probably not worth it.\n\t\t// Maps will be somewhat slow. Oh well.\n\n\t\t// Read key and value from data.\n\t\tvar nerr nonFatal\n\t\tk := reflect.New(kt)\n\t\tv := reflect.New(vt)\n\t\tfor len(b) > 0 {\n\t\t\tx, n := decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\twire := int(x) & 7\n\t\t\tb = b[n:]\n\n\t\t\tvar err error\n\t\t\tswitch x >> 3 {\n\t\t\tcase 1:\n\t\t\t\tb, err = unmarshalKey(b, valToPointer(k), wire)\n\t\t\tcase 2:\n\t\t\t\tb, err = unmarshalVal(b, valToPointer(v), wire)\n\t\t\tdefault:\n\t\t\t\terr = errInternalBadWireType // skip unknown tag\n\t\t\t}\n\n\t\t\tif nerr.Merge(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Skip past unknown fields.\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Get map, allocate if needed.\n\t\tm := f.asPointerTo(t).Elem() // an addressable map[K]T\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(t))\n\t\t}\n\n\t\t// Insert into map.\n\t\tm.SetMapIndex(k.Elem(), v.Elem())\n\n\t\treturn r, nerr.E\n\t}\n}\n\n// makeUnmarshalOneof makes an unmarshaler for oneof fields.\n// for:\n// message Msg {\n//   oneof F {\n//     int64 X = 1;\n//     float64 Y = 2;\n//   }\n// }\n// typ is the type of the concrete entry for a oneof case (e.g. Msg_X).\n// ityp is the interface type of the oneof field (e.g. isMsg_F).\n// unmarshal is the unmarshaler for the base type of the oneof case (e.g. int64).\n// Note that this function will be called once for each case in the oneof.\nfunc makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshaler {\n\tsf := typ.Field(0)\n\tfield0 := toField(&sf)\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// Allocate holder for value.\n\t\tv := reflect.New(typ)\n\n\t\t// Unmarshal data into holder.\n\t\t// We unmarshal into the first field of the holder object.\n\t\tvar err error\n\t\tvar nerr nonFatal\n\t\tb, err = unmarshal(b, valToPointer(v).offset(field0), w)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Write pointer to holder into target field.\n\t\tf.asPointerTo(ityp).Elem().Set(v)\n\n\t\treturn b, nerr.E\n\t}\n}\n\n// Error used by decode internally.\nvar errInternalBadWireType = errors.New(\"proto: internal error: bad wiretype\")\n\n// skipField skips past a field of type wire and returns the remaining bytes.\nfunc skipField(b []byte, wire int) ([]byte, error) {\n\tswitch wire {\n\tcase WireVarint:\n\t\t_, k := decodeVarint(b)\n\t\tif k == 0 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[k:]\n\tcase WireFixed32:\n\t\tif len(b) < 4 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[4:]\n\tcase WireFixed64:\n\t\tif len(b) < 8 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[8:]\n\tcase WireBytes:\n\t\tm, k := decodeVarint(b)\n\t\tif k == 0 || uint64(len(b)-k) < m {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[uint64(k)+m:]\n\tcase WireStartGroup:\n\t\t_, i := findEndGroup(b)\n\t\tif i == -1 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[i:]\n\tdefault:\n\t\treturn b, fmt.Errorf(\"proto: can't skip unknown wire type %d\", wire)\n\t}\n\treturn b, nil\n}\n\n// findEndGroup finds the index of the next EndGroup tag.\n// Groups may be nested, so the \"next\" EndGroup tag is the first\n// unpaired EndGroup.\n// findEndGroup returns the indexes of the start and end of the EndGroup tag.\n// Returns (-1,-1) if it can't find one.\nfunc findEndGroup(b []byte) (int, int) {\n\tdepth := 1\n\ti := 0\n\tfor {\n\t\tx, n := decodeVarint(b[i:])\n\t\tif n == 0 {\n\t\t\treturn -1, -1\n\t\t}\n\t\tj := i\n\t\ti += n\n\t\tswitch x & 7 {\n\t\tcase WireVarint:\n\t\t\t_, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\tcase WireFixed32:\n\t\t\tif len(b)-4 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 4\n\t\tcase WireFixed64:\n\t\t\tif len(b)-8 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 8\n\t\tcase WireBytes:\n\t\t\tm, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\t\tif uint64(len(b)-i) < m {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += int(m)\n\t\tcase WireStartGroup:\n\t\t\tdepth++\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tif depth == 0 {\n\t\t\t\treturn j, i\n\t\t\t}\n\t\tdefault:\n\t\t\treturn -1, -1\n\t\t}\n\t}\n}\n\n// encodeVarint appends a varint-encoded integer to b and returns the result.\nfunc encodeVarint(b []byte, x uint64) []byte {\n\tfor x >= 1<<7 {\n\t\tb = append(b, byte(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\treturn append(b, byte(x))\n}\n\n// decodeVarint reads a varint-encoded integer from b.\n// Returns the decoded integer and the number of bytes read.\n// If there is an error, it returns 0,0.\nfunc decodeVarint(b []byte) (uint64, int) {\n\tvar x, y uint64\n\tif len(b) == 0 {\n\t\tgoto bad\n\t}\n\tx = uint64(b[0])\n\tif x < 0x80 {\n\t\treturn x, 1\n\t}\n\tx -= 0x80\n\n\tif len(b) <= 1 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[1])\n\tx += y << 7\n\tif y < 0x80 {\n\t\treturn x, 2\n\t}\n\tx -= 0x80 << 7\n\n\tif len(b) <= 2 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[2])\n\tx += y << 14\n\tif y < 0x80 {\n\t\treturn x, 3\n\t}\n\tx -= 0x80 << 14\n\n\tif len(b) <= 3 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[3])\n\tx += y << 21\n\tif y < 0x80 {\n\t\treturn x, 4\n\t}\n\tx -= 0x80 << 21\n\n\tif len(b) <= 4 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[4])\n\tx += y << 28\n\tif y < 0x80 {\n\t\treturn x, 5\n\t}\n\tx -= 0x80 << 28\n\n\tif len(b) <= 5 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[5])\n\tx += y << 35\n\tif y < 0x80 {\n\t\treturn x, 6\n\t}\n\tx -= 0x80 << 35\n\n\tif len(b) <= 6 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[6])\n\tx += y << 42\n\tif y < 0x80 {\n\t\treturn x, 7\n\t}\n\tx -= 0x80 << 42\n\n\tif len(b) <= 7 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[7])\n\tx += y << 49\n\tif y < 0x80 {\n\t\treturn x, 8\n\t}\n\tx -= 0x80 << 49\n\n\tif len(b) <= 8 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[8])\n\tx += y << 56\n\tif y < 0x80 {\n\t\treturn x, 9\n\t}\n\tx -= 0x80 << 56\n\n\tif len(b) <= 9 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[9])\n\tx += y << 63\n\tif y < 2 {\n\t\treturn x, 10\n\t}\n\nbad:\n\treturn 0, 0\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"io\"\n\t\"reflect\"\n)\n\nfunc makeUnmarshalMessage(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\t// First read the message field to see if something is there.\n\t\t// The semantics of multiple submessages are weird.  Instead of\n\t\t// the last one winning (as it is for all other fields), multiple\n\t\t// submessages are merged.\n\t\tv := f // gogo: changed from v := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalMessageSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendRef(v, sub.typ) // gogo: changed from f.appendPointer(v)\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalCustomPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.New(sub.typ))\n\t\tm := s.Interface().(custom)\n\t\tif err := m.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalCustomSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := reflect.New(sub.typ)\n\t\tc := m.Interface().(custom)\n\t\tif err := c.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tv := valToPointer(m)\n\t\tf.appendRef(v, sub.typ)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalCustom(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\n\t\tm := f.asPointerTo(sub.typ).Interface().(custom)\n\t\tif err := m.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTime(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(t))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&t))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimePtrSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&t))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimeSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(t))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&d))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDuration(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(d))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationPtrSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&d))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(d))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for writing the text protocol buffer format.\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar (\n\tnewline         = []byte(\"\\n\")\n\tspaces          = []byte(\"                                        \")\n\tendBraceNewline = []byte(\"}\\n\")\n\tbackslashN      = []byte{'\\\\', 'n'}\n\tbackslashR      = []byte{'\\\\', 'r'}\n\tbackslashT      = []byte{'\\\\', 't'}\n\tbackslashDQ     = []byte{'\\\\', '\"'}\n\tbackslashBS     = []byte{'\\\\', '\\\\'}\n\tposInf          = []byte(\"inf\")\n\tnegInf          = []byte(\"-inf\")\n\tnan             = []byte(\"nan\")\n)\n\ntype writer interface {\n\tio.Writer\n\tWriteByte(byte) error\n}\n\n// textWriter is an io.Writer that tracks its indentation level.\ntype textWriter struct {\n\tind      int\n\tcomplete bool // if the current position is a complete line\n\tcompact  bool // whether to write out as a one-liner\n\tw        writer\n}\n\nfunc (w *textWriter) WriteString(s string) (n int, err error) {\n\tif !strings.Contains(s, \"\\n\") {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.complete = false\n\t\treturn io.WriteString(w.w, s)\n\t}\n\t// WriteString is typically called without newlines, so this\n\t// codepath and its copy are rare.  We copy to avoid\n\t// duplicating all of Write's logic here.\n\treturn w.Write([]byte(s))\n}\n\nfunc (w *textWriter) Write(p []byte) (n int, err error) {\n\tnewlines := bytes.Count(p, newline)\n\tif newlines == 0 {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tn, err = w.w.Write(p)\n\t\tw.complete = false\n\t\treturn n, err\n\t}\n\n\tfrags := bytes.SplitN(p, newline, newlines+1)\n\tif w.compact {\n\t\tfor i, frag := range frags {\n\t\t\tif i > 0 {\n\t\t\t\tif err := w.w.WriteByte(' '); err != nil {\n\t\t\t\t\treturn n, err\n\t\t\t\t}\n\t\t\t\tn++\n\t\t\t}\n\t\t\tnn, err := w.w.Write(frag)\n\t\t\tn += nn\n\t\t\tif err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tfor i, frag := range frags {\n\t\tif w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tnn, err := w.w.Write(frag)\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tif i+1 < len(frags) {\n\t\t\tif err := w.w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t}\n\t}\n\tw.complete = len(frags[len(frags)-1]) == 0\n\treturn n, nil\n}\n\nfunc (w *textWriter) WriteByte(c byte) error {\n\tif w.compact && c == '\\n' {\n\t\tc = ' '\n\t}\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\terr := w.w.WriteByte(c)\n\tw.complete = c == '\\n'\n\treturn err\n}\n\nfunc (w *textWriter) indent() { w.ind++ }\n\nfunc (w *textWriter) unindent() {\n\tif w.ind == 0 {\n\t\tlog.Print(\"proto: textWriter unindented too far\")\n\t\treturn\n\t}\n\tw.ind--\n}\n\nfunc writeName(w *textWriter, props *Properties) error {\n\tif _, err := w.WriteString(props.OrigName); err != nil {\n\t\treturn err\n\t}\n\tif props.Wire != \"group\" {\n\t\treturn w.WriteByte(':')\n\t}\n\treturn nil\n}\n\nfunc requiresQuotes(u string) bool {\n\t// When type URL contains any characters except [0-9A-Za-z./\\-]*, it must be quoted.\n\tfor _, ch := range u {\n\t\tswitch {\n\t\tcase ch == '.' || ch == '/' || ch == '_':\n\t\t\tcontinue\n\t\tcase '0' <= ch && ch <= '9':\n\t\t\tcontinue\n\t\tcase 'A' <= ch && ch <= 'Z':\n\t\t\tcontinue\n\t\tcase 'a' <= ch && ch <= 'z':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isAny reports whether sv is a google.protobuf.Any message\nfunc isAny(sv reflect.Value) bool {\n\ttype wkt interface {\n\t\tXXX_WellKnownType() string\n\t}\n\tt, ok := sv.Addr().Interface().(wkt)\n\treturn ok && t.XXX_WellKnownType() == \"Any\"\n}\n\n// writeProto3Any writes an expanded google.protobuf.Any message.\n//\n// It returns (false, nil) if sv value can't be unmarshaled (e.g. because\n// required messages are not linked in).\n//\n// It returns (true, error) when sv was written in expanded format or an error\n// was encountered.\nfunc (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) {\n\tturl := sv.FieldByName(\"TypeUrl\")\n\tval := sv.FieldByName(\"Value\")\n\tif !turl.IsValid() || !val.IsValid() {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tb, ok := val.Interface().([]byte)\n\tif !ok {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tparts := strings.Split(turl.String(), \"/\")\n\tmt := MessageType(parts[len(parts)-1])\n\tif mt == nil {\n\t\treturn false, nil\n\t}\n\tm := reflect.New(mt.Elem())\n\tif err := Unmarshal(b, m.Interface().(Message)); err != nil {\n\t\treturn false, nil\n\t}\n\tw.Write([]byte(\"[\"))\n\tu := turl.String()\n\tif requiresQuotes(u) {\n\t\twriteString(w, u)\n\t} else {\n\t\tw.Write([]byte(u))\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"]:<\"))\n\t} else {\n\t\tw.Write([]byte(\"]: <\\n\"))\n\t\tw.ind++\n\t}\n\tif err := tm.writeStruct(w, m.Elem()); err != nil {\n\t\treturn true, err\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"> \"))\n\t} else {\n\t\tw.ind--\n\t\tw.Write([]byte(\">\\n\"))\n\t}\n\treturn true, nil\n}\n\nfunc (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {\n\tif tm.ExpandAny && isAny(sv) {\n\t\tif canExpand, err := tm.writeProto3Any(w, sv); canExpand {\n\t\t\treturn err\n\t\t}\n\t}\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < sv.NumField(); i++ {\n\t\tfv := sv.Field(i)\n\t\tprops := sprops.Prop[i]\n\t\tname := st.Field(i).Name\n\n\t\tif name == \"XXX_NoUnkeyedLiteral\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tif strings.HasPrefix(name, \"XXX_\") {\n\t\t\t// There are two XXX_ fields:\n\t\t\t//   XXX_unrecognized []byte\n\t\t\t//   XXX_extensions   map[int32]proto.Extension\n\t\t\t// The first is handled here;\n\t\t\t// the second is handled at the bottom of this function.\n\t\t\tif name == \"XXX_unrecognized\" && !fv.IsNil() {\n\t\t\t\tif err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t// Field not filled in. This could be an optional field or\n\t\t\t// a required field that wasn't filled in. Either way, there\n\t\t\t// isn't anything we can show for it.\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Slice && fv.IsNil() {\n\t\t\t// Repeated field that is empty, or a bytes field that is unused.\n\t\t\tcontinue\n\t\t}\n\n\t\tif props.Repeated && fv.Kind() == reflect.Slice {\n\t\t\t// Repeated field.\n\t\t\tfor j := 0; j < fv.Len(); j++ {\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tv := fv.Index(j)\n\t\t\t\tif v.Kind() == reflect.Ptr && v.IsNil() {\n\t\t\t\t\t// A nil message in a repeated field is not valid,\n\t\t\t\t\t// but we can handle that more gracefully than panicking.\n\t\t\t\t\tif _, err := w.Write([]byte(\"<nil>\\n\")); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif len(props.Enum) > 0 {\n\t\t\t\t\tif err := tm.writeEnum(w, v, props); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t} else if err := tm.writeAny(w, v, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Map {\n\t\t\t// Map fields are rendered as a repeated struct with key/value fields.\n\t\t\tkeys := fv.MapKeys()\n\t\t\tsort.Sort(mapKeys(keys))\n\t\t\tfor _, key := range keys {\n\t\t\t\tval := fv.MapIndex(key)\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// open struct\n\t\t\t\tif err := w.WriteByte('<'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tw.indent()\n\t\t\t\t// key\n\t\t\t\tif _, err := w.WriteString(\"key:\"); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err := tm.writeAny(w, key, props.MapKeyProp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// nil values aren't legal, but we can avoid panicking because of them.\n\t\t\t\tif val.Kind() != reflect.Ptr || !val.IsNil() {\n\t\t\t\t\t// value\n\t\t\t\t\tif _, err := w.WriteString(\"value:\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif !w.compact {\n\t\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif err := tm.writeAny(w, val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// close struct\n\t\t\t\tw.unindent()\n\t\t\t\tif err := w.WriteByte('>'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 {\n\t\t\t// empty bytes field\n\t\t\tcontinue\n\t\t}\n\t\tif props.proto3 && fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice {\n\t\t\t// proto3 non-repeated scalar field; skip if zero value\n\t\t\tif isProto3Zero(fv) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif fv.Kind() == reflect.Interface {\n\t\t\t// Check if it is a oneof.\n\t\t\tif st.Field(i).Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t// fv is nil, or holds a pointer to generated struct.\n\t\t\t\t// That generated struct has exactly one field,\n\t\t\t\t// which has a protobuf struct tag.\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tinner := fv.Elem().Elem() // interface -> *T -> T\n\t\t\t\ttag := inner.Type().Field(0).Tag.Get(\"protobuf\")\n\t\t\t\tprops = new(Properties) // Overwrite the outer props var, but not its pointee.\n\t\t\t\tprops.Parse(tag)\n\t\t\t\t// Write the value in the oneof, not the oneof itself.\n\t\t\t\tfv = inner.Field(0)\n\n\t\t\t\t// Special case to cope with malformed messages gracefully:\n\t\t\t\t// If the value in the oneof is a nil pointer, don't panic\n\t\t\t\t// in writeAny.\n\t\t\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t\t\t// Use errors.New so writeAny won't render quotes.\n\t\t\t\t\tmsg := errors.New(\"/* nil */\")\n\t\t\t\t\tfv = reflect.ValueOf(&msg).Elem()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := writeName(w, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif len(props.Enum) > 0 {\n\t\t\tif err := tm.writeEnum(w, fv, props); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else if err := tm.writeAny(w, fv, props); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Extensions (the XXX_extensions field).\n\tpv := sv\n\tif pv.CanAddr() {\n\t\tpv = sv.Addr()\n\t} else {\n\t\tpv = reflect.New(sv.Type())\n\t\tpv.Elem().Set(sv)\n\t}\n\tif _, err := extendable(pv.Interface()); err == nil {\n\t\tif err := tm.writeExtensions(w, pv); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nvar textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\n// writeAny writes an arbitrary field.\nfunc (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {\n\tv = reflect.Indirect(v)\n\n\tif props != nil {\n\t\tif len(props.CustomType) > 0 {\n\t\t\tcustom, ok := v.Interface().(Marshaler)\n\t\t\tif ok {\n\t\t\t\tdata, err := custom.Marshal()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := writeString(w, string(data)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t} else if len(props.CastType) > 0 {\n\t\t\tif _, ok := v.Interface().(interface {\n\t\t\t\tString() string\n\t\t\t}); ok {\n\t\t\t\tswitch v.Kind() {\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\t_, err := fmt.Fprintf(w, \"%d\", v.Interface())\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t} else if props.StdTime {\n\t\t\tt, ok := v.Interface().(time.Time)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"stdtime is not time.Time, but %T\", v.Interface())\n\t\t\t}\n\t\t\ttproto, err := timestampProto(t)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tpropsCopy := *props // Make a copy so that this is goroutine-safe\n\t\t\tpropsCopy.StdTime = false\n\t\t\terr = tm.writeAny(w, reflect.ValueOf(tproto), &propsCopy)\n\t\t\treturn err\n\t\t} else if props.StdDuration {\n\t\t\td, ok := v.Interface().(time.Duration)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"stdtime is not time.Duration, but %T\", v.Interface())\n\t\t\t}\n\t\t\tdproto := durationProto(d)\n\t\t\tpropsCopy := *props // Make a copy so that this is goroutine-safe\n\t\t\tpropsCopy.StdDuration = false\n\t\t\terr := tm.writeAny(w, reflect.ValueOf(dproto), &propsCopy)\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Floats have special cases.\n\tif v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 {\n\t\tx := v.Float()\n\t\tvar b []byte\n\t\tswitch {\n\t\tcase math.IsInf(x, 1):\n\t\t\tb = posInf\n\t\tcase math.IsInf(x, -1):\n\t\t\tb = negInf\n\t\tcase math.IsNaN(x):\n\t\t\tb = nan\n\t\t}\n\t\tif b != nil {\n\t\t\t_, err := w.Write(b)\n\t\t\treturn err\n\t\t}\n\t\t// Other values are handled below.\n\t}\n\n\t// We don't attempt to serialise every possible value type; only those\n\t// that can occur in protocol buffers.\n\tswitch v.Kind() {\n\tcase reflect.Slice:\n\t\t// Should only be a []byte; repeated fields are handled in writeStruct.\n\t\tif err := writeString(w, string(v.Bytes())); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.String:\n\t\tif err := writeString(w, v.String()); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.Struct:\n\t\t// Required/optional group/message.\n\t\tvar bra, ket byte = '<', '>'\n\t\tif props != nil && props.Wire == \"group\" {\n\t\t\tbra, ket = '{', '}'\n\t\t}\n\t\tif err := w.WriteByte(bra); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.indent()\n\t\tif v.CanAddr() {\n\t\t\t// Calling v.Interface on a struct causes the reflect package to\n\t\t\t// copy the entire struct. This is racy with the new Marshaler\n\t\t\t// since we atomically update the XXX_sizecache.\n\t\t\t//\n\t\t\t// Thus, we retrieve a pointer to the struct if possible to avoid\n\t\t\t// a race since v.Interface on the pointer doesn't copy the struct.\n\t\t\t//\n\t\t\t// If v is not addressable, then we are not worried about a race\n\t\t\t// since it implies that the binary Marshaler cannot possibly be\n\t\t\t// mutating this value.\n\t\t\tv = v.Addr()\n\t\t}\n\t\tif v.Type().Implements(textMarshalerType) {\n\t\t\ttext, err := v.Interface().(encoding.TextMarshaler).MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif _, err = w.Write(text); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tv = v.Elem()\n\t\t\t}\n\t\t\tif err := tm.writeStruct(w, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.unindent()\n\t\tif err := w.WriteByte(ket); err != nil {\n\t\t\treturn err\n\t\t}\n\tdefault:\n\t\t_, err := fmt.Fprint(w, v.Interface())\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// equivalent to C's isprint.\nfunc isprint(c byte) bool {\n\treturn c >= 0x20 && c < 0x7f\n}\n\n// writeString writes a string in the protocol buffer text format.\n// It is similar to strconv.Quote except we don't use Go escape sequences,\n// we treat the string as a byte sequence, and we use octal escapes.\n// These differences are to maintain interoperability with the other\n// languages' implementations of the text format.\nfunc writeString(w *textWriter, s string) error {\n\t// use WriteByte here to get any needed indent\n\tif err := w.WriteByte('\"'); err != nil {\n\t\treturn err\n\t}\n\t// Loop over the bytes, not the runes.\n\tfor i := 0; i < len(s); i++ {\n\t\tvar err error\n\t\t// Divergence from C++: we don't escape apostrophes.\n\t\t// There's no need to escape them, and the C++ parser\n\t\t// copes with a naked apostrophe.\n\t\tswitch c := s[i]; c {\n\t\tcase '\\n':\n\t\t\t_, err = w.w.Write(backslashN)\n\t\tcase '\\r':\n\t\t\t_, err = w.w.Write(backslashR)\n\t\tcase '\\t':\n\t\t\t_, err = w.w.Write(backslashT)\n\t\tcase '\"':\n\t\t\t_, err = w.w.Write(backslashDQ)\n\t\tcase '\\\\':\n\t\t\t_, err = w.w.Write(backslashBS)\n\t\tdefault:\n\t\t\tif isprint(c) {\n\t\t\t\terr = w.w.WriteByte(c)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w.w, \"\\\\%03o\", c)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn w.WriteByte('\"')\n}\n\nfunc writeUnknownStruct(w *textWriter, data []byte) (err error) {\n\tif !w.compact {\n\t\tif _, err := fmt.Fprintf(w, \"/* %d unknown bytes */\\n\", len(data)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tb := NewBuffer(data)\n\tfor b.index < len(b.buf) {\n\t\tx, err := b.DecodeVarint()\n\t\tif err != nil {\n\t\t\t_, ferr := fmt.Fprintf(w, \"/* %v */\\n\", err)\n\t\t\treturn ferr\n\t\t}\n\t\twire, tag := x&7, x>>3\n\t\tif wire == WireEndGroup {\n\t\t\tw.unindent()\n\t\t\tif _, werr := w.Write(endBraceNewline); werr != nil {\n\t\t\t\treturn werr\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif _, ferr := fmt.Fprint(w, tag); ferr != nil {\n\t\t\treturn ferr\n\t\t}\n\t\tif wire != WireStartGroup {\n\t\t\tif err = w.WriteByte(':'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif !w.compact || wire == WireStartGroup {\n\t\t\tif err = w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tswitch wire {\n\t\tcase WireBytes:\n\t\t\tbuf, e := b.DecodeRawBytes(false)\n\t\t\tif e == nil {\n\t\t\t\t_, err = fmt.Fprintf(w, \"%q\", buf)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w, \"/* %v */\", e)\n\t\t\t}\n\t\tcase WireFixed32:\n\t\t\tx, err = b.DecodeFixed32()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireFixed64:\n\t\t\tx, err = b.DecodeFixed64()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireStartGroup:\n\t\t\terr = w.WriteByte('{')\n\t\t\tw.indent()\n\t\tcase WireVarint:\n\t\t\tx, err = b.DecodeVarint()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tdefault:\n\t\t\t_, err = fmt.Fprintf(w, \"/* unknown wire type %d */\", wire)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc writeUnknownInt(w *textWriter, x uint64, err error) error {\n\tif err == nil {\n\t\t_, err = fmt.Fprint(w, x)\n\t} else {\n\t\t_, err = fmt.Fprintf(w, \"/* %v */\", err)\n\t}\n\treturn err\n}\n\ntype int32Slice []int32\n\nfunc (s int32Slice) Len() int           { return len(s) }\nfunc (s int32Slice) Less(i, j int) bool { return s[i] < s[j] }\nfunc (s int32Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// writeExtensions writes all the extensions in pv.\n// pv is assumed to be a pointer to a protocol message struct that is extendable.\nfunc (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error {\n\temap := extensionMaps[pv.Type().Elem()]\n\te := pv.Interface().(Message)\n\n\tvar m map[int32]Extension\n\tvar mu sync.Locker\n\tif em, ok := e.(extensionsBytes); ok {\n\t\teb := em.GetExtensions()\n\t\tvar err error\n\t\tm, err = BytesToExtensionsMap(*eb)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmu = notLocker{}\n\t} else if _, ok := e.(extendableProto); ok {\n\t\tep, _ := extendable(e)\n\t\tm, mu = ep.extensionsRead()\n\t\tif m == nil {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Order the extensions by ID.\n\t// This isn't strictly necessary, but it will give us\n\t// canonical output, which will also make testing easier.\n\n\tmu.Lock()\n\tids := make([]int32, 0, len(m))\n\tfor id := range m {\n\t\tids = append(ids, id)\n\t}\n\tsort.Sort(int32Slice(ids))\n\tmu.Unlock()\n\n\tfor _, extNum := range ids {\n\t\text := m[extNum]\n\t\tvar desc *ExtensionDesc\n\t\tif emap != nil {\n\t\t\tdesc = emap[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// Unknown extension.\n\t\t\tif err := writeUnknownStruct(w, ext.enc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tpb, err := GetExtension(e, desc)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed getting extension: %v\", err)\n\t\t}\n\n\t\t// Repeated extensions will appear as a slice.\n\t\tif !desc.repeated() {\n\t\t\tif err := tm.writeExtension(w, desc.Name, pb); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tv := reflect.ValueOf(pb)\n\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\tif err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error {\n\tif _, err := fmt.Fprintf(w, \"[%s]:\", name); err != nil {\n\t\treturn err\n\t}\n\tif !w.compact {\n\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil {\n\t\treturn err\n\t}\n\tif err := w.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (w *textWriter) writeIndent() {\n\tif !w.complete {\n\t\treturn\n\t}\n\tremain := w.ind * 2\n\tfor remain > 0 {\n\t\tn := remain\n\t\tif n > len(spaces) {\n\t\t\tn = len(spaces)\n\t\t}\n\t\tw.w.Write(spaces[:n])\n\t\tremain -= n\n\t}\n\tw.complete = false\n}\n\n// TextMarshaler is a configurable text format marshaler.\ntype TextMarshaler struct {\n\tCompact   bool // use compact text format (one line).\n\tExpandAny bool // expand google.protobuf.Any messages of known types\n}\n\n// Marshal writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error {\n\tval := reflect.ValueOf(pb)\n\tif pb == nil || val.IsNil() {\n\t\tw.Write([]byte(\"<nil>\"))\n\t\treturn nil\n\t}\n\tvar bw *bufio.Writer\n\tww, ok := w.(writer)\n\tif !ok {\n\t\tbw = bufio.NewWriter(w)\n\t\tww = bw\n\t}\n\taw := &textWriter{\n\t\tw:        ww,\n\t\tcomplete: true,\n\t\tcompact:  tm.Compact,\n\t}\n\n\tif etm, ok := pb.(encoding.TextMarshaler); ok {\n\t\ttext, err := etm.MarshalText()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err = aw.Write(text); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif bw != nil {\n\t\t\treturn bw.Flush()\n\t\t}\n\t\treturn nil\n\t}\n\t// Dereference the received pointer so we don't have outer < and >.\n\tv := reflect.Indirect(val)\n\tif err := tm.writeStruct(aw, v); err != nil {\n\t\treturn err\n\t}\n\tif bw != nil {\n\t\treturn bw.Flush()\n\t}\n\treturn nil\n}\n\n// Text is the same as Marshal, but returns the string directly.\nfunc (tm *TextMarshaler) Text(pb Message) string {\n\tvar buf bytes.Buffer\n\ttm.Marshal(&buf, pb)\n\treturn buf.String()\n}\n\nvar (\n\tdefaultTextMarshaler = TextMarshaler{}\n\tcompactTextMarshaler = TextMarshaler{Compact: true}\n)\n\n// TODO: consider removing some of the Marshal functions below.\n\n// MarshalText writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) }\n\n// MarshalTextString is the same as MarshalText, but returns the string directly.\nfunc MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) }\n\n// CompactText writes a given protocol buffer in compact text format (one line).\nfunc CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) }\n\n// CompactTextString is the same as CompactText, but returns the string directly.\nfunc CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) }\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\nfunc (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props *Properties) error {\n\tm, ok := enumStringMaps[props.Enum]\n\tif !ok {\n\t\tif err := tm.writeAny(w, v, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tkey := int32(0)\n\tif v.Kind() == reflect.Ptr {\n\t\tkey = int32(v.Elem().Int())\n\t} else {\n\t\tkey = int32(v.Int())\n\t}\n\ts, ok := m[key]\n\tif !ok {\n\t\tif err := tm.writeAny(w, v, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t_, err := fmt.Fprint(w, s)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_parser.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for parsing the Text protocol buffer format.\n// TODO: message sets.\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// Error string emitted when deserializing Any and fields are already set\nconst anyRepeatedlyUnpacked = \"Any message unpacked multiple times, or %q already set\"\n\ntype ParseError struct {\n\tMessage string\n\tLine    int // 1-based line number\n\tOffset  int // 0-based byte offset from start of input\n}\n\nfunc (p *ParseError) Error() string {\n\tif p.Line == 1 {\n\t\t// show offset only for first line\n\t\treturn fmt.Sprintf(\"line 1.%d: %v\", p.Offset, p.Message)\n\t}\n\treturn fmt.Sprintf(\"line %d: %v\", p.Line, p.Message)\n}\n\ntype token struct {\n\tvalue    string\n\terr      *ParseError\n\tline     int    // line number\n\toffset   int    // byte number from start of input, not start of line\n\tunquoted string // the unquoted version of value, if it was a quoted string\n}\n\nfunc (t *token) String() string {\n\tif t.err == nil {\n\t\treturn fmt.Sprintf(\"%q (line=%d, offset=%d)\", t.value, t.line, t.offset)\n\t}\n\treturn fmt.Sprintf(\"parse error: %v\", t.err)\n}\n\ntype textParser struct {\n\ts            string // remaining input\n\tdone         bool   // whether the parsing is finished (success or error)\n\tbacked       bool   // whether back() was called\n\toffset, line int\n\tcur          token\n}\n\nfunc newTextParser(s string) *textParser {\n\tp := new(textParser)\n\tp.s = s\n\tp.line = 1\n\tp.cur.line = 1\n\treturn p\n}\n\nfunc (p *textParser) errorf(format string, a ...interface{}) *ParseError {\n\tpe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}\n\tp.cur.err = pe\n\tp.done = true\n\treturn pe\n}\n\n// Numbers and identifiers are matched by [-+._A-Za-z0-9]\nfunc isIdentOrNumberChar(c byte) bool {\n\tswitch {\n\tcase 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':\n\t\treturn true\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\t}\n\tswitch c {\n\tcase '-', '+', '.', '_':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isWhitespace(c byte) bool {\n\tswitch c {\n\tcase ' ', '\\t', '\\n', '\\r':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isQuote(c byte) bool {\n\tswitch c {\n\tcase '\"', '\\'':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (p *textParser) skipWhitespace() {\n\ti := 0\n\tfor i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {\n\t\tif p.s[i] == '#' {\n\t\t\t// comment; skip to end of line or input\n\t\t\tfor i < len(p.s) && p.s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(p.s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif p.s[i] == '\\n' {\n\t\t\tp.line++\n\t\t}\n\t\ti++\n\t}\n\tp.offset += i\n\tp.s = p.s[i:len(p.s)]\n\tif len(p.s) == 0 {\n\t\tp.done = true\n\t}\n}\n\nfunc (p *textParser) advance() {\n\t// Skip whitespace\n\tp.skipWhitespace()\n\tif p.done {\n\t\treturn\n\t}\n\n\t// Start of non-whitespace\n\tp.cur.err = nil\n\tp.cur.offset, p.cur.line = p.offset, p.line\n\tp.cur.unquoted = \"\"\n\tswitch p.s[0] {\n\tcase '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':\n\t\t// Single symbol\n\t\tp.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]\n\tcase '\"', '\\'':\n\t\t// Quoted string\n\t\ti := 1\n\t\tfor i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\\n' {\n\t\t\tif p.s[i] == '\\\\' && i+1 < len(p.s) {\n\t\t\t\t// skip escaped char\n\t\t\t\ti++\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\tif i >= len(p.s) || p.s[i] != p.s[0] {\n\t\t\tp.errorf(\"unmatched quote\")\n\t\t\treturn\n\t\t}\n\t\tunq, err := unquoteC(p.s[1:i], rune(p.s[0]))\n\t\tif err != nil {\n\t\t\tp.errorf(\"invalid quoted string %s: %v\", p.s[0:i+1], err)\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]\n\t\tp.cur.unquoted = unq\n\tdefault:\n\t\ti := 0\n\t\tfor i < len(p.s) && isIdentOrNumberChar(p.s[i]) {\n\t\t\ti++\n\t\t}\n\t\tif i == 0 {\n\t\t\tp.errorf(\"unexpected byte %#x\", p.s[0])\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]\n\t}\n\tp.offset += len(p.cur.value)\n}\n\nvar (\n\terrBadUTF8 = errors.New(\"proto: bad UTF-8\")\n)\n\nfunc unquoteC(s string, quote rune) (string, error) {\n\t// This is based on C++'s tokenizer.cc.\n\t// Despite its name, this is *not* parsing C syntax.\n\t// For instance, \"\\0\" is an invalid quoted string.\n\n\t// Avoid allocation in trivial cases.\n\tsimple := true\n\tfor _, r := range s {\n\t\tif r == '\\\\' || r == quote {\n\t\t\tsimple = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif simple {\n\t\treturn s, nil\n\t}\n\n\tbuf := make([]byte, 0, 3*len(s)/2)\n\tfor len(s) > 0 {\n\t\tr, n := utf8.DecodeRuneInString(s)\n\t\tif r == utf8.RuneError && n == 1 {\n\t\t\treturn \"\", errBadUTF8\n\t\t}\n\t\ts = s[n:]\n\t\tif r != '\\\\' {\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tbuf = append(buf, byte(r))\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, string(r)...)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, tail, err := unescape(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbuf = append(buf, ch...)\n\t\ts = tail\n\t}\n\treturn string(buf), nil\n}\n\nfunc unescape(s string) (ch string, tail string, err error) {\n\tr, n := utf8.DecodeRuneInString(s)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn \"\", \"\", errBadUTF8\n\t}\n\ts = s[n:]\n\tswitch r {\n\tcase 'a':\n\t\treturn \"\\a\", s, nil\n\tcase 'b':\n\t\treturn \"\\b\", s, nil\n\tcase 'f':\n\t\treturn \"\\f\", s, nil\n\tcase 'n':\n\t\treturn \"\\n\", s, nil\n\tcase 'r':\n\t\treturn \"\\r\", s, nil\n\tcase 't':\n\t\treturn \"\\t\", s, nil\n\tcase 'v':\n\t\treturn \"\\v\", s, nil\n\tcase '?':\n\t\treturn \"?\", s, nil // trigraph workaround\n\tcase '\\'', '\"', '\\\\':\n\t\treturn string(r), s, nil\n\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\tif len(s) < 2 {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires 2 following digits`, r)\n\t\t}\n\t\tss := string(r) + s[:2]\n\t\ts = s[2:]\n\t\ti, err := strconv.ParseUint(ss, 8, 8)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%s contains non-octal digits`, ss)\n\t\t}\n\t\treturn string([]byte{byte(i)}), s, nil\n\tcase 'x', 'X', 'u', 'U':\n\t\tvar n int\n\t\tswitch r {\n\t\tcase 'x', 'X':\n\t\t\tn = 2\n\t\tcase 'u':\n\t\t\tn = 4\n\t\tcase 'U':\n\t\t\tn = 8\n\t\t}\n\t\tif len(s) < n {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires %d following digits`, r, n)\n\t\t}\n\t\tss := s[:n]\n\t\ts = s[n:]\n\t\ti, err := strconv.ParseUint(ss, 16, 64)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s contains non-hexadecimal digits`, r, ss)\n\t\t}\n\t\tif r == 'x' || r == 'X' {\n\t\t\treturn string([]byte{byte(i)}), s, nil\n\t\t}\n\t\tif i > utf8.MaxRune {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s is not a valid Unicode code point`, r, ss)\n\t\t}\n\t\treturn string(rune(i)), s, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(`unknown escape \\%c`, r)\n}\n\n// Back off the parser by one token. Can only be done between calls to next().\n// It makes the next advance() a no-op.\nfunc (p *textParser) back() { p.backed = true }\n\n// Advances the parser and returns the new current token.\nfunc (p *textParser) next() *token {\n\tif p.backed || p.done {\n\t\tp.backed = false\n\t\treturn &p.cur\n\t}\n\tp.advance()\n\tif p.done {\n\t\tp.cur.value = \"\"\n\t} else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {\n\t\t// Look for multiple quoted strings separated by whitespace,\n\t\t// and concatenate them.\n\t\tcat := p.cur\n\t\tfor {\n\t\t\tp.skipWhitespace()\n\t\t\tif p.done || !isQuote(p.s[0]) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tp.advance()\n\t\t\tif p.cur.err != nil {\n\t\t\t\treturn &p.cur\n\t\t\t}\n\t\t\tcat.value += \" \" + p.cur.value\n\t\t\tcat.unquoted += p.cur.unquoted\n\t\t}\n\t\tp.done = false // parser may have seen EOF, but we want to return cat\n\t\tp.cur = cat\n\t}\n\treturn &p.cur\n}\n\nfunc (p *textParser) consumeToken(s string) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != s {\n\t\tp.back()\n\t\treturn p.errorf(\"expected %q, found %q\", s, tok.value)\n\t}\n\treturn nil\n}\n\n// Return a RequiredNotSetError indicating which required field was not set.\nfunc (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tif !isNil(sv.Field(i)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tprops := sprops.Prop[i]\n\t\tif props.Required {\n\t\t\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.%v\", st, props.OrigName)}\n\t\t}\n\t}\n\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.<unknown field name>\", st)} // should not happen\n}\n\n// Returns the index in the struct for the named field, as well as the parsed tag properties.\nfunc structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) {\n\ti, ok := sprops.decoderOrigNames[name]\n\tif ok {\n\t\treturn i, sprops.Prop[i], true\n\t}\n\treturn -1, nil, false\n}\n\n// Consume a ':' from the input stream (if the next token is a colon),\n// returning an error if a colon is needed but not present.\nfunc (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \":\" {\n\t\t// Colon is optional when the field is a group or message.\n\t\tneedColon := true\n\t\tswitch props.Wire {\n\t\tcase \"group\":\n\t\t\tneedColon = false\n\t\tcase \"bytes\":\n\t\t\t// A \"bytes\" field is either a message, a string, or a repeated field;\n\t\t\t// those three become *T, *string and []T respectively, so we can check for\n\t\t\t// this field being a pointer to a non-string.\n\t\t\tif typ.Kind() == reflect.Ptr {\n\t\t\t\t// *T or *string\n\t\t\t\tif typ.Elem().Kind() == reflect.String {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.Slice {\n\t\t\t\t// []T or []*T\n\t\t\t\tif typ.Elem().Kind() != reflect.Ptr {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.String {\n\t\t\t\t// The proto3 exception is for a string field,\n\t\t\t\t// which requires a colon.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tneedColon = false\n\t\t}\n\t\tif needColon {\n\t\t\treturn p.errorf(\"expected ':', found %q\", tok.value)\n\t\t}\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readStruct(sv reflect.Value, terminator string) error {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\treqCount := sprops.reqCount\n\tvar reqFieldErr error\n\tfieldSet := make(map[string]bool)\n\t// A struct is a sequence of \"name: value\", terminated by one of\n\t// '>' or '}', or the end of the input.  A name may also be\n\t// \"[extension]\" or \"[type/url]\".\n\t//\n\t// The whole struct can also be an expanded Any message, like:\n\t// [type/url] < ... struct contents ... >\n\tfor {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\tif tok.value == terminator {\n\t\t\tbreak\n\t\t}\n\t\tif tok.value == \"[\" {\n\t\t\t// Looks like an extension or an Any.\n\t\t\t//\n\t\t\t// TODO: Check whether we need to handle\n\t\t\t// namespace rooted names (e.g. \".something.Foo\").\n\t\t\textName, err := p.consumeExtName()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif s := strings.LastIndex(extName, \"/\"); s >= 0 {\n\t\t\t\t// If it contains a slash, it's an Any type URL.\n\t\t\t\tmessageName := extName[s+1:]\n\t\t\t\tmt := MessageType(messageName)\n\t\t\t\tif mt == nil {\n\t\t\t\t\treturn p.errorf(\"unrecognized message %q in google.protobuf.Any\", messageName)\n\t\t\t\t}\n\t\t\t\ttok = p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\t// consume an optional colon\n\t\t\t\tif tok.value == \":\" {\n\t\t\t\t\ttok = p.next()\n\t\t\t\t\tif tok.err != nil {\n\t\t\t\t\t\treturn tok.err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar terminator string\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"<\":\n\t\t\t\t\tterminator = \">\"\n\t\t\t\tcase \"{\":\n\t\t\t\t\tterminator = \"}\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t\t}\n\t\t\t\tv := reflect.New(mt.Elem())\n\t\t\t\tif pe := p.readStruct(v.Elem(), terminator); pe != nil {\n\t\t\t\t\treturn pe\n\t\t\t\t}\n\t\t\t\tb, err := Marshal(v.Interface().(Message))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn p.errorf(\"failed to marshal message of type %q: %v\", messageName, err)\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"type_url\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"type_url\")\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"value\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"value\")\n\t\t\t\t}\n\t\t\t\tsv.FieldByName(\"TypeUrl\").SetString(extName)\n\t\t\t\tsv.FieldByName(\"Value\").SetBytes(b)\n\t\t\t\tfieldSet[\"type_url\"] = true\n\t\t\t\tfieldSet[\"value\"] = true\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar desc *ExtensionDesc\n\t\t\t// This could be faster, but it's functional.\n\t\t\t// TODO: Do something smarter than a linear scan.\n\t\t\tfor _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) {\n\t\t\t\tif d.Name == extName {\n\t\t\t\t\tdesc = d\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif desc == nil {\n\t\t\t\treturn p.errorf(\"unrecognized extension %q\", extName)\n\t\t\t}\n\n\t\t\tprops := &Properties{}\n\t\t\tprops.Parse(desc.Tag)\n\n\t\t\ttyp := reflect.TypeOf(desc.ExtensionType)\n\t\t\tif err := p.checkForColon(props, typ); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\trep := desc.repeated()\n\n\t\t\t// Read the extension structure, and set it in\n\t\t\t// the value we're constructing.\n\t\t\tvar ext reflect.Value\n\t\t\tif !rep {\n\t\t\t\text = reflect.New(typ).Elem()\n\t\t\t} else {\n\t\t\t\text = reflect.New(typ.Elem()).Elem()\n\t\t\t}\n\t\t\tif err := p.readAny(ext, props); err != nil {\n\t\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treqFieldErr = err\n\t\t\t}\n\t\t\tep := sv.Addr().Interface().(Message)\n\t\t\tif !rep {\n\t\t\t\tSetExtension(ep, desc, ext.Interface())\n\t\t\t} else {\n\t\t\t\told, err := GetExtension(ep, desc)\n\t\t\t\tvar sl reflect.Value\n\t\t\t\tif err == nil {\n\t\t\t\t\tsl = reflect.ValueOf(old) // existing slice\n\t\t\t\t} else {\n\t\t\t\t\tsl = reflect.MakeSlice(typ, 0, 1)\n\t\t\t\t}\n\t\t\t\tsl = reflect.Append(sl, ext)\n\t\t\t\tSetExtension(ep, desc, sl.Interface())\n\t\t\t}\n\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// This is a normal, non-extension field.\n\t\tname := tok.value\n\t\tvar dst reflect.Value\n\t\tfi, props, ok := structFieldByName(sprops, name)\n\t\tif ok {\n\t\t\tdst = sv.Field(fi)\n\t\t} else if oop, ok := sprops.OneofTypes[name]; ok {\n\t\t\t// It is a oneof.\n\t\t\tprops = oop.Prop\n\t\t\tnv := reflect.New(oop.Type.Elem())\n\t\t\tdst = nv.Elem().Field(0)\n\t\t\tfield := sv.Field(oop.Field)\n\t\t\tif !field.IsNil() {\n\t\t\t\treturn p.errorf(\"field '%s' would overwrite already parsed oneof '%s'\", name, sv.Type().Field(oop.Field).Name)\n\t\t\t}\n\t\t\tfield.Set(nv)\n\t\t}\n\t\tif !dst.IsValid() {\n\t\t\treturn p.errorf(\"unknown field name %q in %v\", name, st)\n\t\t}\n\n\t\tif dst.Kind() == reflect.Map {\n\t\t\t// Consume any colon.\n\t\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Construct the map if it doesn't already exist.\n\t\t\tif dst.IsNil() {\n\t\t\t\tdst.Set(reflect.MakeMap(dst.Type()))\n\t\t\t}\n\t\t\tkey := reflect.New(dst.Type().Key()).Elem()\n\t\t\tval := reflect.New(dst.Type().Elem()).Elem()\n\n\t\t\t// The map entry should be this sequence of tokens:\n\t\t\t//\t< key : KEY value : VALUE >\n\t\t\t// However, implementations may omit key or value, and technically\n\t\t\t// we should support them in any order.  See b/28924776 for a time\n\t\t\t// this went wrong.\n\n\t\t\ttok := p.next()\n\t\t\tvar terminator string\n\t\t\tswitch tok.value {\n\t\t\tcase \"<\":\n\t\t\t\tterminator = \">\"\n\t\t\tcase \"{\":\n\t\t\t\tterminator = \"}\"\n\t\t\tdefault:\n\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t}\n\t\t\tfor {\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == terminator {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"key\":\n\t\t\t\t\tif err := p.consumeToken(\":\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(key, props.MapKeyProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tcase \"value\":\n\t\t\t\t\tif err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tp.back()\n\t\t\t\t\treturn p.errorf(`expected \"key\", \"value\", or %q, found %q`, terminator, tok.value)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdst.SetMapIndex(key, val)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check that it's not already set if it's not a repeated field.\n\t\tif !props.Repeated && fieldSet[name] {\n\t\t\treturn p.errorf(\"non-repeated field %q was repeated\", name)\n\t\t}\n\n\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Parse into the field.\n\t\tfieldSet[name] = true\n\t\tif err := p.readAny(dst, props); err != nil {\n\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treqFieldErr = err\n\t\t}\n\t\tif props.Required {\n\t\t\treqCount--\n\t\t}\n\n\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\n\tif reqCount > 0 {\n\t\treturn p.missingRequiredFieldError(sv)\n\t}\n\treturn reqFieldErr\n}\n\n// consumeExtName consumes extension name or expanded Any type URL and the\n// following ']'. It returns the name or URL consumed.\nfunc (p *textParser) consumeExtName() (string, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn \"\", tok.err\n\t}\n\n\t// If extension name or type url is quoted, it's a single token.\n\tif len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {\n\t\tname, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn name, p.consumeToken(\"]\")\n\t}\n\n\t// Consume everything up to \"]\"\n\tvar parts []string\n\tfor tok.value != \"]\" {\n\t\tparts = append(parts, tok.value)\n\t\ttok = p.next()\n\t\tif tok.err != nil {\n\t\t\treturn \"\", p.errorf(\"unrecognized type_url or extension name: %s\", tok.err)\n\t\t}\n\t\tif p.done && tok.value != \"]\" {\n\t\t\treturn \"\", p.errorf(\"unclosed type_url or extension name\")\n\t\t}\n\t}\n\treturn strings.Join(parts, \"\"), nil\n}\n\n// consumeOptionalSeparator consumes an optional semicolon or comma.\n// It is used in readStruct to provide backward compatibility.\nfunc (p *textParser) consumeOptionalSeparator() error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \";\" && tok.value != \",\" {\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readAny(v reflect.Value, props *Properties) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn p.errorf(\"unexpected EOF\")\n\t}\n\tif len(props.CustomType) > 0 {\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\ttc := reflect.TypeOf(new(Marshaler))\n\t\t\t\tok := t.Elem().Implements(tc.Elem())\n\t\t\t\tif ok {\n\t\t\t\t\tfv := v\n\t\t\t\t\tflen := fv.Len()\n\t\t\t\t\tif flen == fv.Cap() {\n\t\t\t\t\t\tnav := reflect.MakeSlice(v.Type(), flen, 2*flen+1)\n\t\t\t\t\t\treflect.Copy(nav, fv)\n\t\t\t\t\t\tfv.Set(nav)\n\t\t\t\t\t}\n\t\t\t\t\tfv.SetLen(flen + 1)\n\n\t\t\t\t\t// Read one.\n\t\t\t\t\tp.back()\n\t\t\t\t\treturn p.readAny(fv.Index(flen), props)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tcustom := reflect.New(props.ctype.Elem()).Interface().(Unmarshaler)\n\t\t\terr := custom.Unmarshal([]byte(tok.unquoted))\n\t\t\tif err != nil {\n\t\t\t\treturn p.errorf(\"%v %v: %v\", err, v.Type(), tok.value)\n\t\t\t}\n\t\t\tv.Set(reflect.ValueOf(custom))\n\t\t} else {\n\t\t\tcustom := reflect.New(reflect.TypeOf(v.Interface())).Interface().(Unmarshaler)\n\t\t\terr := custom.Unmarshal([]byte(tok.unquoted))\n\t\t\tif err != nil {\n\t\t\t\treturn p.errorf(\"%v %v: %v\", err, v.Type(), tok.value)\n\t\t\t}\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(custom)))\n\t\t}\n\t\treturn nil\n\t}\n\tif props.StdTime {\n\t\tfv := v\n\t\tp.back()\n\t\tprops.StdTime = false\n\t\ttproto := &timestamp{}\n\t\terr := p.readAny(reflect.ValueOf(tproto).Elem(), props)\n\t\tprops.StdTime = true\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttim, err := timestampFromProto(tproto)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\tif t.Elem().Kind() == reflect.Ptr {\n\t\t\t\t\tts := fv.Interface().([]*time.Time)\n\t\t\t\t\tts = append(ts, &tim)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ts))\n\t\t\t\t\treturn nil\n\t\t\t\t} else {\n\t\t\t\t\tts := fv.Interface().([]time.Time)\n\t\t\t\t\tts = append(ts, tim)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ts))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tv.Set(reflect.ValueOf(&tim))\n\t\t} else {\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(&tim)))\n\t\t}\n\t\treturn nil\n\t}\n\tif props.StdDuration {\n\t\tfv := v\n\t\tp.back()\n\t\tprops.StdDuration = false\n\t\tdproto := &duration{}\n\t\terr := p.readAny(reflect.ValueOf(dproto).Elem(), props)\n\t\tprops.StdDuration = true\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdur, err := durationFromProto(dproto)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\tif t.Elem().Kind() == reflect.Ptr {\n\t\t\t\t\tds := fv.Interface().([]*time.Duration)\n\t\t\t\t\tds = append(ds, &dur)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ds))\n\t\t\t\t\treturn nil\n\t\t\t\t} else {\n\t\t\t\t\tds := fv.Interface().([]time.Duration)\n\t\t\t\t\tds = append(ds, dur)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ds))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tv.Set(reflect.ValueOf(&dur))\n\t\t} else {\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(&dur)))\n\t\t}\n\t\treturn nil\n\t}\n\tswitch fv := v; fv.Kind() {\n\tcase reflect.Slice:\n\t\tat := v.Type()\n\t\tif at.Elem().Kind() == reflect.Uint8 {\n\t\t\t// Special case for []byte\n\t\t\tif tok.value[0] != '\"' && tok.value[0] != '\\'' {\n\t\t\t\t// Deliberately written out here, as the error after\n\t\t\t\t// this switch statement would write \"invalid []byte: ...\",\n\t\t\t\t// which is not as user-friendly.\n\t\t\t\treturn p.errorf(\"invalid string: %v\", tok.value)\n\t\t\t}\n\t\t\tbytes := []byte(tok.unquoted)\n\t\t\tfv.Set(reflect.ValueOf(bytes))\n\t\t\treturn nil\n\t\t}\n\t\t// Repeated field.\n\t\tif tok.value == \"[\" {\n\t\t\t// Repeated field with list notation, like [1,2,3].\n\t\t\tfor {\n\t\t\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\t\t\terr := p.readAny(fv.Index(fv.Len()-1), props)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tntok := p.next()\n\t\t\t\tif ntok.err != nil {\n\t\t\t\t\treturn ntok.err\n\t\t\t\t}\n\t\t\t\tif ntok.value == \"]\" {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif ntok.value != \",\" {\n\t\t\t\t\treturn p.errorf(\"Expected ']' or ',' found %q\", ntok.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\t// One value of the repeated field.\n\t\tp.back()\n\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\treturn p.readAny(fv.Index(fv.Len()-1), props)\n\tcase reflect.Bool:\n\t\t// true/1/t/True or false/f/0/False.\n\t\tswitch tok.value {\n\t\tcase \"true\", \"1\", \"t\", \"True\":\n\t\t\tfv.SetBool(true)\n\t\t\treturn nil\n\t\tcase \"false\", \"0\", \"f\", \"False\":\n\t\t\tfv.SetBool(false)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tv := tok.value\n\t\t// Ignore 'f' for compatibility with output generated by C++, but don't\n\t\t// remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tif strings.HasSuffix(v, \"f\") && tok.value != \"-inf\" && tok.value != \"inf\" {\n\t\t\tv = v[:len(v)-1]\n\t\t}\n\t\tif f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil {\n\t\t\tfv.SetFloat(f)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int8:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 8); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int16:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 16); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int32:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\t\tif len(props.Enum) == 0 {\n\t\t\tbreak\n\t\t}\n\t\tm, ok := enumValueMaps[props.Enum]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tx, ok := m[tok.value]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tfv.SetInt(int64(x))\n\t\treturn nil\n\tcase reflect.Int64:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// A basic field (indirected through pointer), or a repeated message/group\n\t\tp.back()\n\t\tfv.Set(reflect.New(fv.Type().Elem()))\n\t\treturn p.readAny(fv.Elem(), props)\n\tcase reflect.String:\n\t\tif tok.value[0] == '\"' || tok.value[0] == '\\'' {\n\t\t\tfv.SetString(tok.unquoted)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Struct:\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tdefault:\n\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\t\t// TODO: Handle nested messages which implement encoding.TextUnmarshaler.\n\t\treturn p.readStruct(fv, terminator)\n\tcase reflect.Uint8:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 8); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint16:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 16); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint32:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetUint(uint64(x))\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint64:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn p.errorf(\"invalid %v: %v\", v.Type(), tok.value)\n}\n\n// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb\n// before starting to unmarshal, so any existing data in pb is always removed.\n// If a required field is not set and no other error occurs,\n// UnmarshalText returns *RequiredNotSetError.\nfunc UnmarshalText(s string, pb Message) error {\n\tif um, ok := pb.(encoding.TextUnmarshaler); ok {\n\t\treturn um.UnmarshalText([]byte(s))\n\t}\n\tpb.Reset()\n\tv := reflect.ValueOf(pb)\n\treturn newTextParser(s).readStruct(v.Elem(), \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// This file implements operations on google.protobuf.Timestamp.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n)\n\nconst (\n\t// Seconds field of the earliest valid Timestamp.\n\t// This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tminValidSeconds = -62135596800\n\t// Seconds field just after the latest valid Timestamp.\n\t// This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tmaxValidSeconds = 253402300800\n)\n\n// validateTimestamp determines whether a Timestamp is valid.\n// A valid timestamp represents a time in the range\n// [0001-01-01, 10000-01-01) and has a Nanos field\n// in the range [0, 1e9).\n//\n// If the Timestamp is valid, validateTimestamp returns nil.\n// Otherwise, it returns an error that describes\n// the problem.\n//\n// Every valid Timestamp can be represented by a time.Time, but the converse is not true.\nfunc validateTimestamp(ts *timestamp) error {\n\tif ts == nil {\n\t\treturn errors.New(\"timestamp: nil Timestamp\")\n\t}\n\tif ts.Seconds < minValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %#v before 0001-01-01\", ts)\n\t}\n\tif ts.Seconds >= maxValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %#v after 10000-01-01\", ts)\n\t}\n\tif ts.Nanos < 0 || ts.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"timestamp: %#v: nanos not in range [0, 1e9)\", ts)\n\t}\n\treturn nil\n}\n\n// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time.\n// It returns an error if the argument is invalid.\n//\n// Unlike most Go functions, if Timestamp returns an error, the first return value\n// is not the zero time.Time. Instead, it is the value obtained from the\n// time.Unix function when passed the contents of the Timestamp, in the UTC\n// locale. This may or may not be a meaningful time; many invalid Timestamps\n// do map to valid time.Times.\n//\n// A nil Timestamp returns an error. The first return value in that case is\n// undefined.\nfunc timestampFromProto(ts *timestamp) (time.Time, error) {\n\t// Don't return the zero value on error, because corresponds to a valid\n\t// timestamp. Instead return whatever time.Unix gives us.\n\tvar t time.Time\n\tif ts == nil {\n\t\tt = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp\n\t} else {\n\t\tt = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC()\n\t}\n\treturn t, validateTimestamp(ts)\n}\n\n// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.\n// It returns an error if the resulting Timestamp is invalid.\nfunc timestampProto(t time.Time) (*timestamp, error) {\n\tseconds := t.Unix()\n\tnanos := int32(t.Sub(time.Unix(seconds, 0)))\n\tts := &timestamp{\n\t\tSeconds: seconds,\n\t\tNanos:   nanos,\n\t}\n\tif err := validateTimestamp(ts); err != nil {\n\t\treturn nil, err\n\t}\n\treturn ts, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\nvar timeType = reflect.TypeOf((*time.Time)(nil)).Elem()\n\ntype timestamp struct {\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\tNanos   int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\nfunc (m *timestamp) Reset()       { *m = timestamp{} }\nfunc (*timestamp) ProtoMessage()  {}\nfunc (*timestamp) String() string { return \"timestamp<string>\" }\n\nfunc init() {\n\tRegisterType((*timestamp)(nil), \"gogo.protobuf.proto.timestamp\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"io\"\n\t\"reflect\"\n)\n\nfunc makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float64)\n\t\t\t\tv := &float64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float64)\n\t\t\t\tv := &float64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float64)\n\t\t\t\tv := &float64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float64)\n\t\t\t\tv := &float64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float32)\n\t\t\t\tv := &float32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float32)\n\t\t\t\tv := &float32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float32)\n\t\t\t\tv := &float32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float32)\n\t\t\t\tv := &float32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int64)\n\t\t\t\tv := &int64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int64)\n\t\t\t\tv := &int64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int64)\n\t\t\t\tv := &int64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int64)\n\t\t\t\tv := &int64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint64)\n\t\t\t\tv := &uint64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint64)\n\t\t\t\tv := &uint64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint64)\n\t\t\t\tv := &uint64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint64)\n\t\t\t\tv := &uint64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int32)\n\t\t\t\tv := &int32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int32)\n\t\t\t\tv := &int32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int32)\n\t\t\t\tv := &int32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int32)\n\t\t\t\tv := &int32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint32)\n\t\t\t\tv := &uint32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint32)\n\t\t\t\tv := &uint32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint32)\n\t\t\t\tv := &uint32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint32)\n\t\t\t\tv := &uint32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(bool)\n\t\t\t\tv := &boolValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(bool)\n\t\t\t\tv := &boolValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*bool)\n\t\t\t\tv := &boolValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*bool)\n\t\t\t\tv := &boolValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(string)\n\t\t\t\tv := &stringValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(string)\n\t\t\t\tv := &stringValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*string)\n\t\t\t\tv := &stringValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*string)\n\t\t\t\tv := &stringValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().([]byte)\n\t\t\t\tv := &bytesValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().([]byte)\n\t\t\t\tv := &bytesValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*[]byte)\n\t\t\t\tv := &bytesValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*[]byte)\n\t\t\t\tv := &bytesValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\ntype float64Value struct {\n\tValue float64 `protobuf:\"fixed64,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *float64Value) Reset()       { *m = float64Value{} }\nfunc (*float64Value) ProtoMessage()  {}\nfunc (*float64Value) String() string { return \"float64<string>\" }\n\ntype float32Value struct {\n\tValue float32 `protobuf:\"fixed32,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *float32Value) Reset()       { *m = float32Value{} }\nfunc (*float32Value) ProtoMessage()  {}\nfunc (*float32Value) String() string { return \"float32<string>\" }\n\ntype int64Value struct {\n\tValue int64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *int64Value) Reset()       { *m = int64Value{} }\nfunc (*int64Value) ProtoMessage()  {}\nfunc (*int64Value) String() string { return \"int64<string>\" }\n\ntype uint64Value struct {\n\tValue uint64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *uint64Value) Reset()       { *m = uint64Value{} }\nfunc (*uint64Value) ProtoMessage()  {}\nfunc (*uint64Value) String() string { return \"uint64<string>\" }\n\ntype int32Value struct {\n\tValue int32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *int32Value) Reset()       { *m = int32Value{} }\nfunc (*int32Value) ProtoMessage()  {}\nfunc (*int32Value) String() string { return \"int32<string>\" }\n\ntype uint32Value struct {\n\tValue uint32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *uint32Value) Reset()       { *m = uint32Value{} }\nfunc (*uint32Value) ProtoMessage()  {}\nfunc (*uint32Value) String() string { return \"uint32<string>\" }\n\ntype boolValue struct {\n\tValue bool `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *boolValue) Reset()       { *m = boolValue{} }\nfunc (*boolValue) ProtoMessage()  {}\nfunc (*boolValue) String() string { return \"bool<string>\" }\n\ntype stringValue struct {\n\tValue string `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *stringValue) Reset()       { *m = stringValue{} }\nfunc (*stringValue) ProtoMessage()  {}\nfunc (*stringValue) String() string { return \"string<string>\" }\n\ntype bytesValue struct {\n\tValue []byte `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *bytesValue) Reset()       { *m = bytesValue{} }\nfunc (*bytesValue) ProtoMessage()  {}\nfunc (*bytesValue) String() string { return \"[]byte<string>\" }\n\nfunc init() {\n\tRegisterType((*float64Value)(nil), \"gogo.protobuf.proto.DoubleValue\")\n\tRegisterType((*float32Value)(nil), \"gogo.protobuf.proto.FloatValue\")\n\tRegisterType((*int64Value)(nil), \"gogo.protobuf.proto.Int64Value\")\n\tRegisterType((*uint64Value)(nil), \"gogo.protobuf.proto.UInt64Value\")\n\tRegisterType((*int32Value)(nil), \"gogo.protobuf.proto.Int32Value\")\n\tRegisterType((*uint32Value)(nil), \"gogo.protobuf.proto.UInt32Value\")\n\tRegisterType((*boolValue)(nil), \"gogo.protobuf.proto.BoolValue\")\n\tRegisterType((*stringValue)(nil), \"gogo.protobuf.proto.StringValue\")\n\tRegisterType((*bytesValue)(nil), \"gogo.protobuf.proto.BytesValue\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile",
    "content": "# Go support for Protocol Buffers - Google's data interchange format\n#\n# Copyright 2010 The Go Authors.  All rights reserved.\n# https://github.com/golang/protobuf\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n#     * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#     * Redistributions in binary form must reproduce the above\n# copyright notice, this list of conditions and the following disclaimer\n# in the documentation and/or other materials provided with the\n# distribution.\n#     * Neither the name of Google Inc. nor the names of its\n# contributors may be used to endorse or promote products derived from\n# this software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nregenerate:\n\tgo install github.com/gogo/protobuf/protoc-gen-gogo\n\tgo install github.com/gogo/protobuf/protoc-gen-gostring\n\tprotoc --gogo_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto\n\tprotoc --gostring_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Package descriptor provides functions for obtaining protocol buffer\n// descriptors for generated Go types.\n//\n// These functions cannot go in package proto because they depend on the\n// generated protobuf descriptor messages, which themselves depend on proto.\npackage descriptor\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\n\t\"github.com/gogo/protobuf/proto\"\n)\n\n// extractFile extracts a FileDescriptorProto from a gzip'd buffer.\nfunc extractFile(gz []byte) (*FileDescriptorProto, error) {\n\tr, err := gzip.NewReader(bytes.NewReader(gz))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to open gzip reader: %v\", err)\n\t}\n\tdefer r.Close()\n\n\tb, err := ioutil.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to uncompress descriptor: %v\", err)\n\t}\n\n\tfd := new(FileDescriptorProto)\n\tif err := proto.Unmarshal(b, fd); err != nil {\n\t\treturn nil, fmt.Errorf(\"malformed FileDescriptorProto: %v\", err)\n\t}\n\n\treturn fd, nil\n}\n\n// Message is a proto.Message with a method to return its descriptor.\n//\n// Message types generated by the protocol compiler always satisfy\n// the Message interface.\ntype Message interface {\n\tproto.Message\n\tDescriptor() ([]byte, []int)\n}\n\n// ForMessage returns a FileDescriptorProto and a DescriptorProto from within it\n// describing the given message.\nfunc ForMessage(msg Message) (fd *FileDescriptorProto, md *DescriptorProto) {\n\tgz, path := msg.Descriptor()\n\tfd, err := extractFile(gz)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"invalid FileDescriptorProto for %T: %v\", msg, err))\n\t}\n\n\tmd = fd.MessageType[path[0]]\n\tfor _, i := range path[1:] {\n\t\tmd = md.NestedType[i]\n\t}\n\treturn fd, md\n}\n\n// Is this field a scalar numeric type?\nfunc (field *FieldDescriptorProto) IsScalar() bool {\n\tif field.Type == nil {\n\t\treturn false\n\t}\n\tswitch *field.Type {\n\tcase FieldDescriptorProto_TYPE_DOUBLE,\n\t\tFieldDescriptorProto_TYPE_FLOAT,\n\t\tFieldDescriptorProto_TYPE_INT64,\n\t\tFieldDescriptorProto_TYPE_UINT64,\n\t\tFieldDescriptorProto_TYPE_INT32,\n\t\tFieldDescriptorProto_TYPE_FIXED64,\n\t\tFieldDescriptorProto_TYPE_FIXED32,\n\t\tFieldDescriptorProto_TYPE_BOOL,\n\t\tFieldDescriptorProto_TYPE_UINT32,\n\t\tFieldDescriptorProto_TYPE_ENUM,\n\t\tFieldDescriptorProto_TYPE_SFIXED32,\n\t\tFieldDescriptorProto_TYPE_SFIXED64,\n\t\tFieldDescriptorProto_TYPE_SINT32,\n\t\tFieldDescriptorProto_TYPE_SINT64:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: descriptor.proto\n\npackage descriptor\n\nimport (\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tmath \"math\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\ntype FieldDescriptorProto_Type int32\n\nconst (\n\t// 0 is reserved for errors.\n\t// Order is weird for historical reasons.\n\tFieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1\n\tFieldDescriptorProto_TYPE_FLOAT  FieldDescriptorProto_Type = 2\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT64  FieldDescriptorProto_Type = 3\n\tFieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT32   FieldDescriptorProto_Type = 5\n\tFieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6\n\tFieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7\n\tFieldDescriptorProto_TYPE_BOOL    FieldDescriptorProto_Type = 8\n\tFieldDescriptorProto_TYPE_STRING  FieldDescriptorProto_Type = 9\n\t// Tag-delimited aggregate.\n\t// Group type is deprecated and not supported in proto3. However, Proto3\n\t// implementations should still be able to parse the group wire format and\n\t// treat group fields as unknown fields.\n\tFieldDescriptorProto_TYPE_GROUP   FieldDescriptorProto_Type = 10\n\tFieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11\n\t// New in version 2.\n\tFieldDescriptorProto_TYPE_BYTES    FieldDescriptorProto_Type = 12\n\tFieldDescriptorProto_TYPE_UINT32   FieldDescriptorProto_Type = 13\n\tFieldDescriptorProto_TYPE_ENUM     FieldDescriptorProto_Type = 14\n\tFieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15\n\tFieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16\n\tFieldDescriptorProto_TYPE_SINT32   FieldDescriptorProto_Type = 17\n\tFieldDescriptorProto_TYPE_SINT64   FieldDescriptorProto_Type = 18\n)\n\nvar FieldDescriptorProto_Type_name = map[int32]string{\n\t1:  \"TYPE_DOUBLE\",\n\t2:  \"TYPE_FLOAT\",\n\t3:  \"TYPE_INT64\",\n\t4:  \"TYPE_UINT64\",\n\t5:  \"TYPE_INT32\",\n\t6:  \"TYPE_FIXED64\",\n\t7:  \"TYPE_FIXED32\",\n\t8:  \"TYPE_BOOL\",\n\t9:  \"TYPE_STRING\",\n\t10: \"TYPE_GROUP\",\n\t11: \"TYPE_MESSAGE\",\n\t12: \"TYPE_BYTES\",\n\t13: \"TYPE_UINT32\",\n\t14: \"TYPE_ENUM\",\n\t15: \"TYPE_SFIXED32\",\n\t16: \"TYPE_SFIXED64\",\n\t17: \"TYPE_SINT32\",\n\t18: \"TYPE_SINT64\",\n}\n\nvar FieldDescriptorProto_Type_value = map[string]int32{\n\t\"TYPE_DOUBLE\":   1,\n\t\"TYPE_FLOAT\":    2,\n\t\"TYPE_INT64\":    3,\n\t\"TYPE_UINT64\":   4,\n\t\"TYPE_INT32\":    5,\n\t\"TYPE_FIXED64\":  6,\n\t\"TYPE_FIXED32\":  7,\n\t\"TYPE_BOOL\":     8,\n\t\"TYPE_STRING\":   9,\n\t\"TYPE_GROUP\":    10,\n\t\"TYPE_MESSAGE\":  11,\n\t\"TYPE_BYTES\":    12,\n\t\"TYPE_UINT32\":   13,\n\t\"TYPE_ENUM\":     14,\n\t\"TYPE_SFIXED32\": 15,\n\t\"TYPE_SFIXED64\": 16,\n\t\"TYPE_SINT32\":   17,\n\t\"TYPE_SINT64\":   18,\n}\n\nfunc (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type {\n\tp := new(FieldDescriptorProto_Type)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Type) String() string {\n\treturn proto.EnumName(FieldDescriptorProto_Type_name, int32(x))\n}\n\nfunc (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, \"FieldDescriptorProto_Type\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Type(value)\n\treturn nil\n}\n\nfunc (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{4, 0}\n}\n\ntype FieldDescriptorProto_Label int32\n\nconst (\n\t// 0 is reserved for errors\n\tFieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1\n\tFieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2\n\tFieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3\n)\n\nvar FieldDescriptorProto_Label_name = map[int32]string{\n\t1: \"LABEL_OPTIONAL\",\n\t2: \"LABEL_REQUIRED\",\n\t3: \"LABEL_REPEATED\",\n}\n\nvar FieldDescriptorProto_Label_value = map[string]int32{\n\t\"LABEL_OPTIONAL\": 1,\n\t\"LABEL_REQUIRED\": 2,\n\t\"LABEL_REPEATED\": 3,\n}\n\nfunc (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label {\n\tp := new(FieldDescriptorProto_Label)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Label) String() string {\n\treturn proto.EnumName(FieldDescriptorProto_Label_name, int32(x))\n}\n\nfunc (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, \"FieldDescriptorProto_Label\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Label(value)\n\treturn nil\n}\n\nfunc (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{4, 1}\n}\n\n// Generated classes can be optimized for speed or code size.\ntype FileOptions_OptimizeMode int32\n\nconst (\n\tFileOptions_SPEED FileOptions_OptimizeMode = 1\n\t// etc.\n\tFileOptions_CODE_SIZE    FileOptions_OptimizeMode = 2\n\tFileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3\n)\n\nvar FileOptions_OptimizeMode_name = map[int32]string{\n\t1: \"SPEED\",\n\t2: \"CODE_SIZE\",\n\t3: \"LITE_RUNTIME\",\n}\n\nvar FileOptions_OptimizeMode_value = map[string]int32{\n\t\"SPEED\":        1,\n\t\"CODE_SIZE\":    2,\n\t\"LITE_RUNTIME\": 3,\n}\n\nfunc (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode {\n\tp := new(FileOptions_OptimizeMode)\n\t*p = x\n\treturn p\n}\n\nfunc (x FileOptions_OptimizeMode) String() string {\n\treturn proto.EnumName(FileOptions_OptimizeMode_name, int32(x))\n}\n\nfunc (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, \"FileOptions_OptimizeMode\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FileOptions_OptimizeMode(value)\n\treturn nil\n}\n\nfunc (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{10, 0}\n}\n\ntype FieldOptions_CType int32\n\nconst (\n\t// Default mode.\n\tFieldOptions_STRING       FieldOptions_CType = 0\n\tFieldOptions_CORD         FieldOptions_CType = 1\n\tFieldOptions_STRING_PIECE FieldOptions_CType = 2\n)\n\nvar FieldOptions_CType_name = map[int32]string{\n\t0: \"STRING\",\n\t1: \"CORD\",\n\t2: \"STRING_PIECE\",\n}\n\nvar FieldOptions_CType_value = map[string]int32{\n\t\"STRING\":       0,\n\t\"CORD\":         1,\n\t\"STRING_PIECE\": 2,\n}\n\nfunc (x FieldOptions_CType) Enum() *FieldOptions_CType {\n\tp := new(FieldOptions_CType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_CType) String() string {\n\treturn proto.EnumName(FieldOptions_CType_name, int32(x))\n}\n\nfunc (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, \"FieldOptions_CType\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_CType(value)\n\treturn nil\n}\n\nfunc (FieldOptions_CType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{12, 0}\n}\n\ntype FieldOptions_JSType int32\n\nconst (\n\t// Use the default type.\n\tFieldOptions_JS_NORMAL FieldOptions_JSType = 0\n\t// Use JavaScript strings.\n\tFieldOptions_JS_STRING FieldOptions_JSType = 1\n\t// Use JavaScript numbers.\n\tFieldOptions_JS_NUMBER FieldOptions_JSType = 2\n)\n\nvar FieldOptions_JSType_name = map[int32]string{\n\t0: \"JS_NORMAL\",\n\t1: \"JS_STRING\",\n\t2: \"JS_NUMBER\",\n}\n\nvar FieldOptions_JSType_value = map[string]int32{\n\t\"JS_NORMAL\": 0,\n\t\"JS_STRING\": 1,\n\t\"JS_NUMBER\": 2,\n}\n\nfunc (x FieldOptions_JSType) Enum() *FieldOptions_JSType {\n\tp := new(FieldOptions_JSType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_JSType) String() string {\n\treturn proto.EnumName(FieldOptions_JSType_name, int32(x))\n}\n\nfunc (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, \"FieldOptions_JSType\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_JSType(value)\n\treturn nil\n}\n\nfunc (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{12, 1}\n}\n\n// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n// or neither? HTTP based RPC implementation may choose GET verb for safe\n// methods, and PUT verb for idempotent methods instead of the default POST.\ntype MethodOptions_IdempotencyLevel int32\n\nconst (\n\tMethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0\n\tMethodOptions_NO_SIDE_EFFECTS     MethodOptions_IdempotencyLevel = 1\n\tMethodOptions_IDEMPOTENT          MethodOptions_IdempotencyLevel = 2\n)\n\nvar MethodOptions_IdempotencyLevel_name = map[int32]string{\n\t0: \"IDEMPOTENCY_UNKNOWN\",\n\t1: \"NO_SIDE_EFFECTS\",\n\t2: \"IDEMPOTENT\",\n}\n\nvar MethodOptions_IdempotencyLevel_value = map[string]int32{\n\t\"IDEMPOTENCY_UNKNOWN\": 0,\n\t\"NO_SIDE_EFFECTS\":     1,\n\t\"IDEMPOTENT\":          2,\n}\n\nfunc (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel {\n\tp := new(MethodOptions_IdempotencyLevel)\n\t*p = x\n\treturn p\n}\n\nfunc (x MethodOptions_IdempotencyLevel) String() string {\n\treturn proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x))\n}\n\nfunc (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error {\n\tvalue, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, \"MethodOptions_IdempotencyLevel\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = MethodOptions_IdempotencyLevel(value)\n\treturn nil\n}\n\nfunc (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{17, 0}\n}\n\n// The protocol compiler can output a FileDescriptorSet containing the .proto\n// files it parses.\ntype FileDescriptorSet struct {\n\tFile                 []*FileDescriptorProto `protobuf:\"bytes,1,rep,name=file\" json:\"file,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}               `json:\"-\"`\n\tXXX_unrecognized     []byte                 `json:\"-\"`\n\tXXX_sizecache        int32                  `json:\"-\"`\n}\n\nfunc (m *FileDescriptorSet) Reset()         { *m = FileDescriptorSet{} }\nfunc (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) }\nfunc (*FileDescriptorSet) ProtoMessage()    {}\nfunc (*FileDescriptorSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{0}\n}\nfunc (m *FileDescriptorSet) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_FileDescriptorSet.Unmarshal(m, b)\n}\nfunc (m *FileDescriptorSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_FileDescriptorSet.Marshal(b, m, deterministic)\n}\nfunc (m *FileDescriptorSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FileDescriptorSet.Merge(m, src)\n}\nfunc (m *FileDescriptorSet) XXX_Size() int {\n\treturn xxx_messageInfo_FileDescriptorSet.Size(m)\n}\nfunc (m *FileDescriptorSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_FileDescriptorSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FileDescriptorSet proto.InternalMessageInfo\n\nfunc (m *FileDescriptorSet) GetFile() []*FileDescriptorProto {\n\tif m != nil {\n\t\treturn m.File\n\t}\n\treturn nil\n}\n\n// Describes a complete .proto file.\ntype FileDescriptorProto struct {\n\tName    *string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tPackage *string `protobuf:\"bytes,2,opt,name=package\" json:\"package,omitempty\"`\n\t// Names of files imported by this file.\n\tDependency []string `protobuf:\"bytes,3,rep,name=dependency\" json:\"dependency,omitempty\"`\n\t// Indexes of the public imported files in the dependency list above.\n\tPublicDependency []int32 `protobuf:\"varint,10,rep,name=public_dependency,json=publicDependency\" json:\"public_dependency,omitempty\"`\n\t// Indexes of the weak imported files in the dependency list.\n\t// For Google-internal migration only. Do not use.\n\tWeakDependency []int32 `protobuf:\"varint,11,rep,name=weak_dependency,json=weakDependency\" json:\"weak_dependency,omitempty\"`\n\t// All top-level definitions in this file.\n\tMessageType []*DescriptorProto        `protobuf:\"bytes,4,rep,name=message_type,json=messageType\" json:\"message_type,omitempty\"`\n\tEnumType    []*EnumDescriptorProto    `protobuf:\"bytes,5,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tService     []*ServiceDescriptorProto `protobuf:\"bytes,6,rep,name=service\" json:\"service,omitempty\"`\n\tExtension   []*FieldDescriptorProto   `protobuf:\"bytes,7,rep,name=extension\" json:\"extension,omitempty\"`\n\tOptions     *FileOptions              `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\t// This field contains optional information about the original source code.\n\t// You may safely remove this entire field without harming runtime\n\t// functionality of the descriptors -- the information is needed only by\n\t// development tools.\n\tSourceCodeInfo *SourceCodeInfo `protobuf:\"bytes,9,opt,name=source_code_info,json=sourceCodeInfo\" json:\"source_code_info,omitempty\"`\n\t// The syntax of the proto file.\n\t// The supported values are \"proto2\" and \"proto3\".\n\tSyntax               *string  `protobuf:\"bytes,12,opt,name=syntax\" json:\"syntax,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *FileDescriptorProto) Reset()         { *m = FileDescriptorProto{} }\nfunc (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*FileDescriptorProto) ProtoMessage()    {}\nfunc (*FileDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{1}\n}\nfunc (m *FileDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_FileDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *FileDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_FileDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *FileDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FileDescriptorProto.Merge(m, src)\n}\nfunc (m *FileDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_FileDescriptorProto.Size(m)\n}\nfunc (m *FileDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_FileDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FileDescriptorProto proto.InternalMessageInfo\n\nfunc (m *FileDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileDescriptorProto) GetPackage() string {\n\tif m != nil && m.Package != nil {\n\t\treturn *m.Package\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileDescriptorProto) GetDependency() []string {\n\tif m != nil {\n\t\treturn m.Dependency\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetPublicDependency() []int32 {\n\tif m != nil {\n\t\treturn m.PublicDependency\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetWeakDependency() []int32 {\n\tif m != nil {\n\t\treturn m.WeakDependency\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetMessageType() []*DescriptorProto {\n\tif m != nil {\n\t\treturn m.MessageType\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif m != nil {\n\t\treturn m.EnumType\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto {\n\tif m != nil {\n\t\treturn m.Service\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif m != nil {\n\t\treturn m.Extension\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetOptions() *FileOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo {\n\tif m != nil {\n\t\treturn m.SourceCodeInfo\n\t}\n\treturn nil\n}\n\nfunc (m *FileDescriptorProto) GetSyntax() string {\n\tif m != nil && m.Syntax != nil {\n\t\treturn *m.Syntax\n\t}\n\treturn \"\"\n}\n\n// Describes a message type.\ntype DescriptorProto struct {\n\tName           *string                           `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tField          []*FieldDescriptorProto           `protobuf:\"bytes,2,rep,name=field\" json:\"field,omitempty\"`\n\tExtension      []*FieldDescriptorProto           `protobuf:\"bytes,6,rep,name=extension\" json:\"extension,omitempty\"`\n\tNestedType     []*DescriptorProto                `protobuf:\"bytes,3,rep,name=nested_type,json=nestedType\" json:\"nested_type,omitempty\"`\n\tEnumType       []*EnumDescriptorProto            `protobuf:\"bytes,4,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tExtensionRange []*DescriptorProto_ExtensionRange `protobuf:\"bytes,5,rep,name=extension_range,json=extensionRange\" json:\"extension_range,omitempty\"`\n\tOneofDecl      []*OneofDescriptorProto           `protobuf:\"bytes,8,rep,name=oneof_decl,json=oneofDecl\" json:\"oneof_decl,omitempty\"`\n\tOptions        *MessageOptions                   `protobuf:\"bytes,7,opt,name=options\" json:\"options,omitempty\"`\n\tReservedRange  []*DescriptorProto_ReservedRange  `protobuf:\"bytes,9,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved field names, which may not be used by fields in the same message.\n\t// A given name may only be reserved once.\n\tReservedName         []string `protobuf:\"bytes,10,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *DescriptorProto) Reset()         { *m = DescriptorProto{} }\nfunc (m *DescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*DescriptorProto) ProtoMessage()    {}\nfunc (*DescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{2}\n}\nfunc (m *DescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_DescriptorProto.Unmarshal(m, b)\n}\nfunc (m *DescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_DescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *DescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DescriptorProto.Merge(m, src)\n}\nfunc (m *DescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_DescriptorProto.Size(m)\n}\nfunc (m *DescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_DescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DescriptorProto proto.InternalMessageInfo\n\nfunc (m *DescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *DescriptorProto) GetField() []*FieldDescriptorProto {\n\tif m != nil {\n\t\treturn m.Field\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif m != nil {\n\t\treturn m.Extension\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetNestedType() []*DescriptorProto {\n\tif m != nil {\n\t\treturn m.NestedType\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif m != nil {\n\t\treturn m.EnumType\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange {\n\tif m != nil {\n\t\treturn m.ExtensionRange\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto {\n\tif m != nil {\n\t\treturn m.OneofDecl\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetOptions() *MessageOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange {\n\tif m != nil {\n\t\treturn m.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (m *DescriptorProto) GetReservedName() []string {\n\tif m != nil {\n\t\treturn m.ReservedName\n\t}\n\treturn nil\n}\n\ntype DescriptorProto_ExtensionRange struct {\n\tStart                *int32                 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"`\n\tEnd                  *int32                 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`\n\tOptions              *ExtensionRangeOptions `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}               `json:\"-\"`\n\tXXX_unrecognized     []byte                 `json:\"-\"`\n\tXXX_sizecache        int32                  `json:\"-\"`\n}\n\nfunc (m *DescriptorProto_ExtensionRange) Reset()         { *m = DescriptorProto_ExtensionRange{} }\nfunc (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) }\nfunc (*DescriptorProto_ExtensionRange) ProtoMessage()    {}\nfunc (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{2, 0}\n}\nfunc (m *DescriptorProto_ExtensionRange) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_DescriptorProto_ExtensionRange.Unmarshal(m, b)\n}\nfunc (m *DescriptorProto_ExtensionRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_DescriptorProto_ExtensionRange.Marshal(b, m, deterministic)\n}\nfunc (m *DescriptorProto_ExtensionRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DescriptorProto_ExtensionRange.Merge(m, src)\n}\nfunc (m *DescriptorProto_ExtensionRange) XXX_Size() int {\n\treturn xxx_messageInfo_DescriptorProto_ExtensionRange.Size(m)\n}\nfunc (m *DescriptorProto_ExtensionRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_DescriptorProto_ExtensionRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DescriptorProto_ExtensionRange proto.InternalMessageInfo\n\nfunc (m *DescriptorProto_ExtensionRange) GetStart() int32 {\n\tif m != nil && m.Start != nil {\n\t\treturn *m.Start\n\t}\n\treturn 0\n}\n\nfunc (m *DescriptorProto_ExtensionRange) GetEnd() int32 {\n\tif m != nil && m.End != nil {\n\t\treturn *m.End\n\t}\n\treturn 0\n}\n\nfunc (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// Range of reserved tag numbers. Reserved tag numbers may not be used by\n// fields or extension ranges in the same message. Reserved ranges may\n// not overlap.\ntype DescriptorProto_ReservedRange struct {\n\tStart                *int32   `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"`\n\tEnd                  *int32   `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *DescriptorProto_ReservedRange) Reset()         { *m = DescriptorProto_ReservedRange{} }\nfunc (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) }\nfunc (*DescriptorProto_ReservedRange) ProtoMessage()    {}\nfunc (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{2, 1}\n}\nfunc (m *DescriptorProto_ReservedRange) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_DescriptorProto_ReservedRange.Unmarshal(m, b)\n}\nfunc (m *DescriptorProto_ReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_DescriptorProto_ReservedRange.Marshal(b, m, deterministic)\n}\nfunc (m *DescriptorProto_ReservedRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DescriptorProto_ReservedRange.Merge(m, src)\n}\nfunc (m *DescriptorProto_ReservedRange) XXX_Size() int {\n\treturn xxx_messageInfo_DescriptorProto_ReservedRange.Size(m)\n}\nfunc (m *DescriptorProto_ReservedRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_DescriptorProto_ReservedRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DescriptorProto_ReservedRange proto.InternalMessageInfo\n\nfunc (m *DescriptorProto_ReservedRange) GetStart() int32 {\n\tif m != nil && m.Start != nil {\n\t\treturn *m.Start\n\t}\n\treturn 0\n}\n\nfunc (m *DescriptorProto_ReservedRange) GetEnd() int32 {\n\tif m != nil && m.End != nil {\n\t\treturn *m.End\n\t}\n\treturn 0\n}\n\ntype ExtensionRangeOptions struct {\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *ExtensionRangeOptions) Reset()         { *m = ExtensionRangeOptions{} }\nfunc (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) }\nfunc (*ExtensionRangeOptions) ProtoMessage()    {}\nfunc (*ExtensionRangeOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{3}\n}\n\nvar extRange_ExtensionRangeOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_ExtensionRangeOptions\n}\n\nfunc (m *ExtensionRangeOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_ExtensionRangeOptions.Unmarshal(m, b)\n}\nfunc (m *ExtensionRangeOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_ExtensionRangeOptions.Marshal(b, m, deterministic)\n}\nfunc (m *ExtensionRangeOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtensionRangeOptions.Merge(m, src)\n}\nfunc (m *ExtensionRangeOptions) XXX_Size() int {\n\treturn xxx_messageInfo_ExtensionRangeOptions.Size(m)\n}\nfunc (m *ExtensionRangeOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtensionRangeOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtensionRangeOptions proto.InternalMessageInfo\n\nfunc (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\n// Describes a field within a message.\ntype FieldDescriptorProto struct {\n\tName   *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber *int32                      `protobuf:\"varint,3,opt,name=number\" json:\"number,omitempty\"`\n\tLabel  *FieldDescriptorProto_Label `protobuf:\"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label\" json:\"label,omitempty\"`\n\t// If type_name is set, this need not be set.  If both this and type_name\n\t// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n\tType *FieldDescriptorProto_Type `protobuf:\"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type\" json:\"type,omitempty\"`\n\t// For message and enum types, this is the name of the type.  If the name\n\t// starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping\n\t// rules are used to find the type (i.e. first the nested types within this\n\t// message are searched, then within the parent, on up to the root\n\t// namespace).\n\tTypeName *string `protobuf:\"bytes,6,opt,name=type_name,json=typeName\" json:\"type_name,omitempty\"`\n\t// For extensions, this is the name of the type being extended.  It is\n\t// resolved in the same manner as type_name.\n\tExtendee *string `protobuf:\"bytes,2,opt,name=extendee\" json:\"extendee,omitempty\"`\n\t// For numeric types, contains the original text representation of the value.\n\t// For booleans, \"true\" or \"false\".\n\t// For strings, contains the default text contents (not escaped in any way).\n\t// For bytes, contains the C escaped value.  All bytes >= 128 are escaped.\n\t// TODO(kenton):  Base-64 encode?\n\tDefaultValue *string `protobuf:\"bytes,7,opt,name=default_value,json=defaultValue\" json:\"default_value,omitempty\"`\n\t// If set, gives the index of a oneof in the containing type's oneof_decl\n\t// list.  This field is a member of that oneof.\n\tOneofIndex *int32 `protobuf:\"varint,9,opt,name=oneof_index,json=oneofIndex\" json:\"oneof_index,omitempty\"`\n\t// JSON name of this field. The value is set by protocol compiler. If the\n\t// user has set a \"json_name\" option on this field, that option's value\n\t// will be used. Otherwise, it's deduced from the field's name by converting\n\t// it to camelCase.\n\tJsonName             *string       `protobuf:\"bytes,10,opt,name=json_name,json=jsonName\" json:\"json_name,omitempty\"`\n\tOptions              *FieldOptions `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}      `json:\"-\"`\n\tXXX_unrecognized     []byte        `json:\"-\"`\n\tXXX_sizecache        int32         `json:\"-\"`\n}\n\nfunc (m *FieldDescriptorProto) Reset()         { *m = FieldDescriptorProto{} }\nfunc (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*FieldDescriptorProto) ProtoMessage()    {}\nfunc (*FieldDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{4}\n}\nfunc (m *FieldDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_FieldDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *FieldDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_FieldDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *FieldDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldDescriptorProto.Merge(m, src)\n}\nfunc (m *FieldDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_FieldDescriptorProto.Size(m)\n}\nfunc (m *FieldDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldDescriptorProto proto.InternalMessageInfo\n\nfunc (m *FieldDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *FieldDescriptorProto) GetNumber() int32 {\n\tif m != nil && m.Number != nil {\n\t\treturn *m.Number\n\t}\n\treturn 0\n}\n\nfunc (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label {\n\tif m != nil && m.Label != nil {\n\t\treturn *m.Label\n\t}\n\treturn FieldDescriptorProto_LABEL_OPTIONAL\n}\n\nfunc (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type {\n\tif m != nil && m.Type != nil {\n\t\treturn *m.Type\n\t}\n\treturn FieldDescriptorProto_TYPE_DOUBLE\n}\n\nfunc (m *FieldDescriptorProto) GetTypeName() string {\n\tif m != nil && m.TypeName != nil {\n\t\treturn *m.TypeName\n\t}\n\treturn \"\"\n}\n\nfunc (m *FieldDescriptorProto) GetExtendee() string {\n\tif m != nil && m.Extendee != nil {\n\t\treturn *m.Extendee\n\t}\n\treturn \"\"\n}\n\nfunc (m *FieldDescriptorProto) GetDefaultValue() string {\n\tif m != nil && m.DefaultValue != nil {\n\t\treturn *m.DefaultValue\n\t}\n\treturn \"\"\n}\n\nfunc (m *FieldDescriptorProto) GetOneofIndex() int32 {\n\tif m != nil && m.OneofIndex != nil {\n\t\treturn *m.OneofIndex\n\t}\n\treturn 0\n}\n\nfunc (m *FieldDescriptorProto) GetJsonName() string {\n\tif m != nil && m.JsonName != nil {\n\t\treturn *m.JsonName\n\t}\n\treturn \"\"\n}\n\nfunc (m *FieldDescriptorProto) GetOptions() *FieldOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// Describes a oneof.\ntype OneofDescriptorProto struct {\n\tName                 *string       `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tOptions              *OneofOptions `protobuf:\"bytes,2,opt,name=options\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}      `json:\"-\"`\n\tXXX_unrecognized     []byte        `json:\"-\"`\n\tXXX_sizecache        int32         `json:\"-\"`\n}\n\nfunc (m *OneofDescriptorProto) Reset()         { *m = OneofDescriptorProto{} }\nfunc (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*OneofDescriptorProto) ProtoMessage()    {}\nfunc (*OneofDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{5}\n}\nfunc (m *OneofDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_OneofDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *OneofDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_OneofDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *OneofDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OneofDescriptorProto.Merge(m, src)\n}\nfunc (m *OneofDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_OneofDescriptorProto.Size(m)\n}\nfunc (m *OneofDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_OneofDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OneofDescriptorProto proto.InternalMessageInfo\n\nfunc (m *OneofDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *OneofDescriptorProto) GetOptions() *OneofOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// Describes an enum type.\ntype EnumDescriptorProto struct {\n\tName    *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tValue   []*EnumValueDescriptorProto `protobuf:\"bytes,2,rep,name=value\" json:\"value,omitempty\"`\n\tOptions *EnumOptions                `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\t// Range of reserved numeric values. Reserved numeric values may not be used\n\t// by enum values in the same enum declaration. Reserved ranges may not\n\t// overlap.\n\tReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:\"bytes,4,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved enum value names, which may not be reused. A given name may only\n\t// be reserved once.\n\tReservedName         []string `protobuf:\"bytes,5,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *EnumDescriptorProto) Reset()         { *m = EnumDescriptorProto{} }\nfunc (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*EnumDescriptorProto) ProtoMessage()    {}\nfunc (*EnumDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{6}\n}\nfunc (m *EnumDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_EnumDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *EnumDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_EnumDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *EnumDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnumDescriptorProto.Merge(m, src)\n}\nfunc (m *EnumDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_EnumDescriptorProto.Size(m)\n}\nfunc (m *EnumDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnumDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnumDescriptorProto proto.InternalMessageInfo\n\nfunc (m *EnumDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto {\n\tif m != nil {\n\t\treturn m.Value\n\t}\n\treturn nil\n}\n\nfunc (m *EnumDescriptorProto) GetOptions() *EnumOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\nfunc (m *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange {\n\tif m != nil {\n\t\treturn m.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (m *EnumDescriptorProto) GetReservedName() []string {\n\tif m != nil {\n\t\treturn m.ReservedName\n\t}\n\treturn nil\n}\n\n// Range of reserved numeric values. Reserved values may not be used by\n// entries in the same enum. Reserved ranges may not overlap.\n//\n// Note that this is distinct from DescriptorProto.ReservedRange in that it\n// is inclusive such that it can appropriately represent the entire int32\n// domain.\ntype EnumDescriptorProto_EnumReservedRange struct {\n\tStart                *int32   `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"`\n\tEnd                  *int32   `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *EnumDescriptorProto_EnumReservedRange) Reset()         { *m = EnumDescriptorProto_EnumReservedRange{} }\nfunc (m *EnumDescriptorProto_EnumReservedRange) String() string { return proto.CompactTextString(m) }\nfunc (*EnumDescriptorProto_EnumReservedRange) ProtoMessage()    {}\nfunc (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{6, 0}\n}\nfunc (m *EnumDescriptorProto_EnumReservedRange) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Unmarshal(m, b)\n}\nfunc (m *EnumDescriptorProto_EnumReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Marshal(b, m, deterministic)\n}\nfunc (m *EnumDescriptorProto_EnumReservedRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Merge(m, src)\n}\nfunc (m *EnumDescriptorProto_EnumReservedRange) XXX_Size() int {\n\treturn xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Size(m)\n}\nfunc (m *EnumDescriptorProto_EnumReservedRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnumDescriptorProto_EnumReservedRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnumDescriptorProto_EnumReservedRange proto.InternalMessageInfo\n\nfunc (m *EnumDescriptorProto_EnumReservedRange) GetStart() int32 {\n\tif m != nil && m.Start != nil {\n\t\treturn *m.Start\n\t}\n\treturn 0\n}\n\nfunc (m *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 {\n\tif m != nil && m.End != nil {\n\t\treturn *m.End\n\t}\n\treturn 0\n}\n\n// Describes a value within an enum.\ntype EnumValueDescriptorProto struct {\n\tName                 *string           `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber               *int32            `protobuf:\"varint,2,opt,name=number\" json:\"number,omitempty\"`\n\tOptions              *EnumValueOptions `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_unrecognized     []byte            `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *EnumValueDescriptorProto) Reset()         { *m = EnumValueDescriptorProto{} }\nfunc (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*EnumValueDescriptorProto) ProtoMessage()    {}\nfunc (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{7}\n}\nfunc (m *EnumValueDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_EnumValueDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *EnumValueDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_EnumValueDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *EnumValueDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnumValueDescriptorProto.Merge(m, src)\n}\nfunc (m *EnumValueDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_EnumValueDescriptorProto.Size(m)\n}\nfunc (m *EnumValueDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnumValueDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnumValueDescriptorProto proto.InternalMessageInfo\n\nfunc (m *EnumValueDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *EnumValueDescriptorProto) GetNumber() int32 {\n\tif m != nil && m.Number != nil {\n\t\treturn *m.Number\n\t}\n\treturn 0\n}\n\nfunc (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// Describes a service.\ntype ServiceDescriptorProto struct {\n\tName                 *string                  `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tMethod               []*MethodDescriptorProto `protobuf:\"bytes,2,rep,name=method\" json:\"method,omitempty\"`\n\tOptions              *ServiceOptions          `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                 `json:\"-\"`\n\tXXX_unrecognized     []byte                   `json:\"-\"`\n\tXXX_sizecache        int32                    `json:\"-\"`\n}\n\nfunc (m *ServiceDescriptorProto) Reset()         { *m = ServiceDescriptorProto{} }\nfunc (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*ServiceDescriptorProto) ProtoMessage()    {}\nfunc (*ServiceDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{8}\n}\nfunc (m *ServiceDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_ServiceDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *ServiceDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_ServiceDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *ServiceDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceDescriptorProto.Merge(m, src)\n}\nfunc (m *ServiceDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_ServiceDescriptorProto.Size(m)\n}\nfunc (m *ServiceDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceDescriptorProto proto.InternalMessageInfo\n\nfunc (m *ServiceDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto {\n\tif m != nil {\n\t\treturn m.Method\n\t}\n\treturn nil\n}\n\nfunc (m *ServiceDescriptorProto) GetOptions() *ServiceOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// Describes a method of a service.\ntype MethodDescriptorProto struct {\n\tName *string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\t// Input and output type names.  These are resolved in the same way as\n\t// FieldDescriptorProto.type_name, but must refer to a message type.\n\tInputType  *string        `protobuf:\"bytes,2,opt,name=input_type,json=inputType\" json:\"input_type,omitempty\"`\n\tOutputType *string        `protobuf:\"bytes,3,opt,name=output_type,json=outputType\" json:\"output_type,omitempty\"`\n\tOptions    *MethodOptions `protobuf:\"bytes,4,opt,name=options\" json:\"options,omitempty\"`\n\t// Identifies if client streams multiple client messages\n\tClientStreaming *bool `protobuf:\"varint,5,opt,name=client_streaming,json=clientStreaming,def=0\" json:\"client_streaming,omitempty\"`\n\t// Identifies if server streams multiple server messages\n\tServerStreaming      *bool    `protobuf:\"varint,6,opt,name=server_streaming,json=serverStreaming,def=0\" json:\"server_streaming,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *MethodDescriptorProto) Reset()         { *m = MethodDescriptorProto{} }\nfunc (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) }\nfunc (*MethodDescriptorProto) ProtoMessage()    {}\nfunc (*MethodDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{9}\n}\nfunc (m *MethodDescriptorProto) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_MethodDescriptorProto.Unmarshal(m, b)\n}\nfunc (m *MethodDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_MethodDescriptorProto.Marshal(b, m, deterministic)\n}\nfunc (m *MethodDescriptorProto) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MethodDescriptorProto.Merge(m, src)\n}\nfunc (m *MethodDescriptorProto) XXX_Size() int {\n\treturn xxx_messageInfo_MethodDescriptorProto.Size(m)\n}\nfunc (m *MethodDescriptorProto) XXX_DiscardUnknown() {\n\txxx_messageInfo_MethodDescriptorProto.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MethodDescriptorProto proto.InternalMessageInfo\n\nconst Default_MethodDescriptorProto_ClientStreaming bool = false\nconst Default_MethodDescriptorProto_ServerStreaming bool = false\n\nfunc (m *MethodDescriptorProto) GetName() string {\n\tif m != nil && m.Name != nil {\n\t\treturn *m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *MethodDescriptorProto) GetInputType() string {\n\tif m != nil && m.InputType != nil {\n\t\treturn *m.InputType\n\t}\n\treturn \"\"\n}\n\nfunc (m *MethodDescriptorProto) GetOutputType() string {\n\tif m != nil && m.OutputType != nil {\n\t\treturn *m.OutputType\n\t}\n\treturn \"\"\n}\n\nfunc (m *MethodDescriptorProto) GetOptions() *MethodOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\nfunc (m *MethodDescriptorProto) GetClientStreaming() bool {\n\tif m != nil && m.ClientStreaming != nil {\n\t\treturn *m.ClientStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ClientStreaming\n}\n\nfunc (m *MethodDescriptorProto) GetServerStreaming() bool {\n\tif m != nil && m.ServerStreaming != nil {\n\t\treturn *m.ServerStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ServerStreaming\n}\n\ntype FileOptions struct {\n\t// Sets the Java package where classes generated from this .proto will be\n\t// placed.  By default, the proto package is used, but this is often\n\t// inappropriate because proto packages do not normally start with backwards\n\t// domain names.\n\tJavaPackage *string `protobuf:\"bytes,1,opt,name=java_package,json=javaPackage\" json:\"java_package,omitempty\"`\n\t// If set, all the classes from the .proto file are wrapped in a single\n\t// outer class with the given name.  This applies to both Proto1\n\t// (equivalent to the old \"--one_java_file\" option) and Proto2 (where\n\t// a .proto always translates to a single class, but you may want to\n\t// explicitly choose the class name).\n\tJavaOuterClassname *string `protobuf:\"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname\" json:\"java_outer_classname,omitempty\"`\n\t// If set true, then the Java code generator will generate a separate .java\n\t// file for each top-level message, enum, and service defined in the .proto\n\t// file.  Thus, these types will *not* be nested inside the outer class\n\t// named by java_outer_classname.  However, the outer class will still be\n\t// generated to contain the file's getDescriptor() method as well as any\n\t// top-level extensions defined in the file.\n\tJavaMultipleFiles *bool `protobuf:\"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0\" json:\"java_multiple_files,omitempty\"`\n\t// This option does nothing.\n\tJavaGenerateEqualsAndHash *bool `protobuf:\"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash\" json:\"java_generate_equals_and_hash,omitempty\"` // Deprecated: Do not use.\n\t// If set true, then the Java2 code generator will generate code that\n\t// throws an exception whenever an attempt is made to assign a non-UTF-8\n\t// byte sequence to a string field.\n\t// Message reflection will do the same.\n\t// However, an extension field still accepts non-UTF-8 byte sequences.\n\t// This option has no effect on when used with the lite runtime.\n\tJavaStringCheckUtf8 *bool                     `protobuf:\"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0\" json:\"java_string_check_utf8,omitempty\"`\n\tOptimizeFor         *FileOptions_OptimizeMode `protobuf:\"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1\" json:\"optimize_for,omitempty\"`\n\t// Sets the Go package where structs generated from this .proto will be\n\t// placed. If omitted, the Go package will be derived from the following:\n\t//   - The basename of the package import path, if provided.\n\t//   - Otherwise, the package statement in the .proto file, if present.\n\t//   - Otherwise, the basename of the .proto file, without extension.\n\tGoPackage *string `protobuf:\"bytes,11,opt,name=go_package,json=goPackage\" json:\"go_package,omitempty\"`\n\t// Should generic services be generated in each language?  \"Generic\" services\n\t// are not specific to any particular RPC system.  They are generated by the\n\t// main code generators in each language (without additional plugins).\n\t// Generic services were the only kind of service generation supported by\n\t// early versions of google.protobuf.\n\t//\n\t// Generic services are now considered deprecated in favor of using plugins\n\t// that generate code specific to your particular RPC system.  Therefore,\n\t// these default to false.  Old code which depends on generic services should\n\t// explicitly set them to true.\n\tCcGenericServices   *bool `protobuf:\"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0\" json:\"cc_generic_services,omitempty\"`\n\tJavaGenericServices *bool `protobuf:\"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0\" json:\"java_generic_services,omitempty\"`\n\tPyGenericServices   *bool `protobuf:\"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0\" json:\"py_generic_services,omitempty\"`\n\tPhpGenericServices  *bool `protobuf:\"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0\" json:\"php_generic_services,omitempty\"`\n\t// Is this file deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for everything in the file, or it will be completely ignored; in the very\n\t// least, this is a formalization for deprecating files.\n\tDeprecated *bool `protobuf:\"varint,23,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Enables the use of arenas for the proto messages in this file. This applies\n\t// only to generated classes for C++.\n\tCcEnableArenas *bool `protobuf:\"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0\" json:\"cc_enable_arenas,omitempty\"`\n\t// Sets the objective c class prefix which is prepended to all objective c\n\t// generated classes from this .proto. There is no default.\n\tObjcClassPrefix *string `protobuf:\"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix\" json:\"objc_class_prefix,omitempty\"`\n\t// Namespace for generated classes; defaults to the package.\n\tCsharpNamespace *string `protobuf:\"bytes,37,opt,name=csharp_namespace,json=csharpNamespace\" json:\"csharp_namespace,omitempty\"`\n\t// By default Swift generators will take the proto package and CamelCase it\n\t// replacing '.' with underscore and use that to prefix the types/symbols\n\t// defined. When this options is provided, they will use this value instead\n\t// to prefix the types/symbols defined.\n\tSwiftPrefix *string `protobuf:\"bytes,39,opt,name=swift_prefix,json=swiftPrefix\" json:\"swift_prefix,omitempty\"`\n\t// Sets the php class prefix which is prepended to all php generated classes\n\t// from this .proto. Default is empty.\n\tPhpClassPrefix *string `protobuf:\"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix\" json:\"php_class_prefix,omitempty\"`\n\t// Use this option to change the namespace of php generated classes. Default\n\t// is empty. When this option is empty, the package name will be used for\n\t// determining the namespace.\n\tPhpNamespace *string `protobuf:\"bytes,41,opt,name=php_namespace,json=phpNamespace\" json:\"php_namespace,omitempty\"`\n\t// Use this option to change the namespace of php generated metadata classes.\n\t// Default is empty. When this option is empty, the proto file name will be\n\t// used for determining the namespace.\n\tPhpMetadataNamespace *string `protobuf:\"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace\" json:\"php_metadata_namespace,omitempty\"`\n\t// Use this option to change the package of ruby generated classes. Default\n\t// is empty. When this option is not set, the package name will be used for\n\t// determining the ruby package.\n\tRubyPackage *string `protobuf:\"bytes,45,opt,name=ruby_package,json=rubyPackage\" json:\"ruby_package,omitempty\"`\n\t// The parser stores options it doesn't recognize here.\n\t// See the documentation for the \"Options\" section above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *FileOptions) Reset()         { *m = FileOptions{} }\nfunc (m *FileOptions) String() string { return proto.CompactTextString(m) }\nfunc (*FileOptions) ProtoMessage()    {}\nfunc (*FileOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{10}\n}\n\nvar extRange_FileOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_FileOptions\n}\n\nfunc (m *FileOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_FileOptions.Unmarshal(m, b)\n}\nfunc (m *FileOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_FileOptions.Marshal(b, m, deterministic)\n}\nfunc (m *FileOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FileOptions.Merge(m, src)\n}\nfunc (m *FileOptions) XXX_Size() int {\n\treturn xxx_messageInfo_FileOptions.Size(m)\n}\nfunc (m *FileOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_FileOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FileOptions proto.InternalMessageInfo\n\nconst Default_FileOptions_JavaMultipleFiles bool = false\nconst Default_FileOptions_JavaStringCheckUtf8 bool = false\nconst Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED\nconst Default_FileOptions_CcGenericServices bool = false\nconst Default_FileOptions_JavaGenericServices bool = false\nconst Default_FileOptions_PyGenericServices bool = false\nconst Default_FileOptions_PhpGenericServices bool = false\nconst Default_FileOptions_Deprecated bool = false\nconst Default_FileOptions_CcEnableArenas bool = false\n\nfunc (m *FileOptions) GetJavaPackage() string {\n\tif m != nil && m.JavaPackage != nil {\n\t\treturn *m.JavaPackage\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetJavaOuterClassname() string {\n\tif m != nil && m.JavaOuterClassname != nil {\n\t\treturn *m.JavaOuterClassname\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetJavaMultipleFiles() bool {\n\tif m != nil && m.JavaMultipleFiles != nil {\n\t\treturn *m.JavaMultipleFiles\n\t}\n\treturn Default_FileOptions_JavaMultipleFiles\n}\n\n// Deprecated: Do not use.\nfunc (m *FileOptions) GetJavaGenerateEqualsAndHash() bool {\n\tif m != nil && m.JavaGenerateEqualsAndHash != nil {\n\t\treturn *m.JavaGenerateEqualsAndHash\n\t}\n\treturn false\n}\n\nfunc (m *FileOptions) GetJavaStringCheckUtf8() bool {\n\tif m != nil && m.JavaStringCheckUtf8 != nil {\n\t\treturn *m.JavaStringCheckUtf8\n\t}\n\treturn Default_FileOptions_JavaStringCheckUtf8\n}\n\nfunc (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode {\n\tif m != nil && m.OptimizeFor != nil {\n\t\treturn *m.OptimizeFor\n\t}\n\treturn Default_FileOptions_OptimizeFor\n}\n\nfunc (m *FileOptions) GetGoPackage() string {\n\tif m != nil && m.GoPackage != nil {\n\t\treturn *m.GoPackage\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetCcGenericServices() bool {\n\tif m != nil && m.CcGenericServices != nil {\n\t\treturn *m.CcGenericServices\n\t}\n\treturn Default_FileOptions_CcGenericServices\n}\n\nfunc (m *FileOptions) GetJavaGenericServices() bool {\n\tif m != nil && m.JavaGenericServices != nil {\n\t\treturn *m.JavaGenericServices\n\t}\n\treturn Default_FileOptions_JavaGenericServices\n}\n\nfunc (m *FileOptions) GetPyGenericServices() bool {\n\tif m != nil && m.PyGenericServices != nil {\n\t\treturn *m.PyGenericServices\n\t}\n\treturn Default_FileOptions_PyGenericServices\n}\n\nfunc (m *FileOptions) GetPhpGenericServices() bool {\n\tif m != nil && m.PhpGenericServices != nil {\n\t\treturn *m.PhpGenericServices\n\t}\n\treturn Default_FileOptions_PhpGenericServices\n}\n\nfunc (m *FileOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_FileOptions_Deprecated\n}\n\nfunc (m *FileOptions) GetCcEnableArenas() bool {\n\tif m != nil && m.CcEnableArenas != nil {\n\t\treturn *m.CcEnableArenas\n\t}\n\treturn Default_FileOptions_CcEnableArenas\n}\n\nfunc (m *FileOptions) GetObjcClassPrefix() string {\n\tif m != nil && m.ObjcClassPrefix != nil {\n\t\treturn *m.ObjcClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetCsharpNamespace() string {\n\tif m != nil && m.CsharpNamespace != nil {\n\t\treturn *m.CsharpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetSwiftPrefix() string {\n\tif m != nil && m.SwiftPrefix != nil {\n\t\treturn *m.SwiftPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetPhpClassPrefix() string {\n\tif m != nil && m.PhpClassPrefix != nil {\n\t\treturn *m.PhpClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetPhpNamespace() string {\n\tif m != nil && m.PhpNamespace != nil {\n\t\treturn *m.PhpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetPhpMetadataNamespace() string {\n\tif m != nil && m.PhpMetadataNamespace != nil {\n\t\treturn *m.PhpMetadataNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetRubyPackage() string {\n\tif m != nil && m.RubyPackage != nil {\n\t\treturn *m.RubyPackage\n\t}\n\treturn \"\"\n}\n\nfunc (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MessageOptions struct {\n\t// Set true to use the old proto1 MessageSet wire format for extensions.\n\t// This is provided for backwards-compatibility with the MessageSet wire\n\t// format.  You should not use this for any other reason:  It's less\n\t// efficient, has fewer features, and is more complicated.\n\t//\n\t// The message must be defined exactly as follows:\n\t//   message Foo {\n\t//     option message_set_wire_format = true;\n\t//     extensions 4 to max;\n\t//   }\n\t// Note that the message cannot have any defined fields; MessageSets only\n\t// have extensions.\n\t//\n\t// All extensions of your type must be singular messages; e.g. they cannot\n\t// be int32s, enums, or repeated messages.\n\t//\n\t// Because this is an option, the above two restrictions are not enforced by\n\t// the protocol compiler.\n\tMessageSetWireFormat *bool `protobuf:\"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0\" json:\"message_set_wire_format,omitempty\"`\n\t// Disables the generation of the standard \"descriptor()\" accessor, which can\n\t// conflict with a field of the same name.  This is meant to make migration\n\t// from proto1 easier; new code should avoid fields named \"descriptor\".\n\tNoStandardDescriptorAccessor *bool `protobuf:\"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0\" json:\"no_standard_descriptor_accessor,omitempty\"`\n\t// Is this message deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the message, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating messages.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Whether the message is an automatically generated map entry type for the\n\t// maps field.\n\t//\n\t// For maps fields:\n\t//     map<KeyType, ValueType> map_field = 1;\n\t// The parsed descriptor looks like:\n\t//     message MapFieldEntry {\n\t//         option map_entry = true;\n\t//         optional KeyType key = 1;\n\t//         optional ValueType value = 2;\n\t//     }\n\t//     repeated MapFieldEntry map_field = 1;\n\t//\n\t// Implementations may choose not to generate the map_entry=true message, but\n\t// use a native map in the target language to hold the keys and values.\n\t// The reflection APIs in such implementations still need to work as\n\t// if the field is a repeated message field.\n\t//\n\t// NOTE: Do not set the option in .proto files. Always use the maps syntax\n\t// instead. The option should only be implicitly set by the proto compiler\n\t// parser.\n\tMapEntry *bool `protobuf:\"varint,7,opt,name=map_entry,json=mapEntry\" json:\"map_entry,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *MessageOptions) Reset()         { *m = MessageOptions{} }\nfunc (m *MessageOptions) String() string { return proto.CompactTextString(m) }\nfunc (*MessageOptions) ProtoMessage()    {}\nfunc (*MessageOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{11}\n}\n\nvar extRange_MessageOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_MessageOptions\n}\n\nfunc (m *MessageOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_MessageOptions.Unmarshal(m, b)\n}\nfunc (m *MessageOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_MessageOptions.Marshal(b, m, deterministic)\n}\nfunc (m *MessageOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MessageOptions.Merge(m, src)\n}\nfunc (m *MessageOptions) XXX_Size() int {\n\treturn xxx_messageInfo_MessageOptions.Size(m)\n}\nfunc (m *MessageOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_MessageOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MessageOptions proto.InternalMessageInfo\n\nconst Default_MessageOptions_MessageSetWireFormat bool = false\nconst Default_MessageOptions_NoStandardDescriptorAccessor bool = false\nconst Default_MessageOptions_Deprecated bool = false\n\nfunc (m *MessageOptions) GetMessageSetWireFormat() bool {\n\tif m != nil && m.MessageSetWireFormat != nil {\n\t\treturn *m.MessageSetWireFormat\n\t}\n\treturn Default_MessageOptions_MessageSetWireFormat\n}\n\nfunc (m *MessageOptions) GetNoStandardDescriptorAccessor() bool {\n\tif m != nil && m.NoStandardDescriptorAccessor != nil {\n\t\treturn *m.NoStandardDescriptorAccessor\n\t}\n\treturn Default_MessageOptions_NoStandardDescriptorAccessor\n}\n\nfunc (m *MessageOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_MessageOptions_Deprecated\n}\n\nfunc (m *MessageOptions) GetMapEntry() bool {\n\tif m != nil && m.MapEntry != nil {\n\t\treturn *m.MapEntry\n\t}\n\treturn false\n}\n\nfunc (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype FieldOptions struct {\n\t// The ctype option instructs the C++ code generator to use a different\n\t// representation of the field than it normally would.  See the specific\n\t// options below.  This option is not yet implemented in the open source\n\t// release -- sorry, we'll try to include it in a future version!\n\tCtype *FieldOptions_CType `protobuf:\"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0\" json:\"ctype,omitempty\"`\n\t// The packed option can be enabled for repeated primitive fields to enable\n\t// a more efficient representation on the wire. Rather than repeatedly\n\t// writing the tag and type for each element, the entire array is encoded as\n\t// a single length-delimited blob. In proto3, only explicit setting it to\n\t// false will avoid using packed encoding.\n\tPacked *bool `protobuf:\"varint,2,opt,name=packed\" json:\"packed,omitempty\"`\n\t// The jstype option determines the JavaScript type used for values of the\n\t// field.  The option is permitted only for 64 bit integral and fixed types\n\t// (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING\n\t// is represented as JavaScript string, which avoids loss of precision that\n\t// can happen when a large value is converted to a floating point JavaScript.\n\t// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n\t// use the JavaScript \"number\" type.  The behavior of the default option\n\t// JS_NORMAL is implementation dependent.\n\t//\n\t// This option is an enum to permit additional types to be added, e.g.\n\t// goog.math.Integer.\n\tJstype *FieldOptions_JSType `protobuf:\"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0\" json:\"jstype,omitempty\"`\n\t// Should this field be parsed lazily?  Lazy applies only to message-type\n\t// fields.  It means that when the outer message is initially parsed, the\n\t// inner message's contents will not be parsed but instead stored in encoded\n\t// form.  The inner message will actually be parsed when it is first accessed.\n\t//\n\t// This is only a hint.  Implementations are free to choose whether to use\n\t// eager or lazy parsing regardless of the value of this option.  However,\n\t// setting this option true suggests that the protocol author believes that\n\t// using lazy parsing on this field is worth the additional bookkeeping\n\t// overhead typically needed to implement it.\n\t//\n\t// This option does not affect the public interface of any generated code;\n\t// all method signatures remain the same.  Furthermore, thread-safety of the\n\t// interface is not affected by this option; const methods remain safe to\n\t// call from multiple threads concurrently, while non-const methods continue\n\t// to require exclusive access.\n\t//\n\t//\n\t// Note that implementations may choose not to check required fields within\n\t// a lazy sub-message.  That is, calling IsInitialized() on the outer message\n\t// may return true even if the inner message has missing required fields.\n\t// This is necessary because otherwise the inner message would have to be\n\t// parsed in order to perform the check, defeating the purpose of lazy\n\t// parsing.  An implementation which chooses not to check required fields\n\t// must be consistent about it.  That is, for any particular sub-message, the\n\t// implementation must either *always* check its required fields, or *never*\n\t// check its required fields, regardless of whether or not the message has\n\t// been parsed.\n\tLazy *bool `protobuf:\"varint,5,opt,name=lazy,def=0\" json:\"lazy,omitempty\"`\n\t// Is this field deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for accessors, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating fields.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// For Google-internal migration only. Do not use.\n\tWeak *bool `protobuf:\"varint,10,opt,name=weak,def=0\" json:\"weak,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *FieldOptions) Reset()         { *m = FieldOptions{} }\nfunc (m *FieldOptions) String() string { return proto.CompactTextString(m) }\nfunc (*FieldOptions) ProtoMessage()    {}\nfunc (*FieldOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{12}\n}\n\nvar extRange_FieldOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_FieldOptions\n}\n\nfunc (m *FieldOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_FieldOptions.Unmarshal(m, b)\n}\nfunc (m *FieldOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_FieldOptions.Marshal(b, m, deterministic)\n}\nfunc (m *FieldOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldOptions.Merge(m, src)\n}\nfunc (m *FieldOptions) XXX_Size() int {\n\treturn xxx_messageInfo_FieldOptions.Size(m)\n}\nfunc (m *FieldOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldOptions proto.InternalMessageInfo\n\nconst Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING\nconst Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL\nconst Default_FieldOptions_Lazy bool = false\nconst Default_FieldOptions_Deprecated bool = false\nconst Default_FieldOptions_Weak bool = false\n\nfunc (m *FieldOptions) GetCtype() FieldOptions_CType {\n\tif m != nil && m.Ctype != nil {\n\t\treturn *m.Ctype\n\t}\n\treturn Default_FieldOptions_Ctype\n}\n\nfunc (m *FieldOptions) GetPacked() bool {\n\tif m != nil && m.Packed != nil {\n\t\treturn *m.Packed\n\t}\n\treturn false\n}\n\nfunc (m *FieldOptions) GetJstype() FieldOptions_JSType {\n\tif m != nil && m.Jstype != nil {\n\t\treturn *m.Jstype\n\t}\n\treturn Default_FieldOptions_Jstype\n}\n\nfunc (m *FieldOptions) GetLazy() bool {\n\tif m != nil && m.Lazy != nil {\n\t\treturn *m.Lazy\n\t}\n\treturn Default_FieldOptions_Lazy\n}\n\nfunc (m *FieldOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_FieldOptions_Deprecated\n}\n\nfunc (m *FieldOptions) GetWeak() bool {\n\tif m != nil && m.Weak != nil {\n\t\treturn *m.Weak\n\t}\n\treturn Default_FieldOptions_Weak\n}\n\nfunc (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype OneofOptions struct {\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *OneofOptions) Reset()         { *m = OneofOptions{} }\nfunc (m *OneofOptions) String() string { return proto.CompactTextString(m) }\nfunc (*OneofOptions) ProtoMessage()    {}\nfunc (*OneofOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{13}\n}\n\nvar extRange_OneofOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_OneofOptions\n}\n\nfunc (m *OneofOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_OneofOptions.Unmarshal(m, b)\n}\nfunc (m *OneofOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_OneofOptions.Marshal(b, m, deterministic)\n}\nfunc (m *OneofOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OneofOptions.Merge(m, src)\n}\nfunc (m *OneofOptions) XXX_Size() int {\n\treturn xxx_messageInfo_OneofOptions.Size(m)\n}\nfunc (m *OneofOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_OneofOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OneofOptions proto.InternalMessageInfo\n\nfunc (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumOptions struct {\n\t// Set this option to true to allow mapping different tag names to the same\n\t// value.\n\tAllowAlias *bool `protobuf:\"varint,2,opt,name=allow_alias,json=allowAlias\" json:\"allow_alias,omitempty\"`\n\t// Is this enum deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating enums.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *EnumOptions) Reset()         { *m = EnumOptions{} }\nfunc (m *EnumOptions) String() string { return proto.CompactTextString(m) }\nfunc (*EnumOptions) ProtoMessage()    {}\nfunc (*EnumOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{14}\n}\n\nvar extRange_EnumOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_EnumOptions\n}\n\nfunc (m *EnumOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_EnumOptions.Unmarshal(m, b)\n}\nfunc (m *EnumOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_EnumOptions.Marshal(b, m, deterministic)\n}\nfunc (m *EnumOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnumOptions.Merge(m, src)\n}\nfunc (m *EnumOptions) XXX_Size() int {\n\treturn xxx_messageInfo_EnumOptions.Size(m)\n}\nfunc (m *EnumOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnumOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnumOptions proto.InternalMessageInfo\n\nconst Default_EnumOptions_Deprecated bool = false\n\nfunc (m *EnumOptions) GetAllowAlias() bool {\n\tif m != nil && m.AllowAlias != nil {\n\t\treturn *m.AllowAlias\n\t}\n\treturn false\n}\n\nfunc (m *EnumOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_EnumOptions_Deprecated\n}\n\nfunc (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumValueOptions struct {\n\t// Is this enum value deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum value, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating enum values.\n\tDeprecated *bool `protobuf:\"varint,1,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *EnumValueOptions) Reset()         { *m = EnumValueOptions{} }\nfunc (m *EnumValueOptions) String() string { return proto.CompactTextString(m) }\nfunc (*EnumValueOptions) ProtoMessage()    {}\nfunc (*EnumValueOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{15}\n}\n\nvar extRange_EnumValueOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_EnumValueOptions\n}\n\nfunc (m *EnumValueOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_EnumValueOptions.Unmarshal(m, b)\n}\nfunc (m *EnumValueOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_EnumValueOptions.Marshal(b, m, deterministic)\n}\nfunc (m *EnumValueOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnumValueOptions.Merge(m, src)\n}\nfunc (m *EnumValueOptions) XXX_Size() int {\n\treturn xxx_messageInfo_EnumValueOptions.Size(m)\n}\nfunc (m *EnumValueOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnumValueOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnumValueOptions proto.InternalMessageInfo\n\nconst Default_EnumValueOptions_Deprecated bool = false\n\nfunc (m *EnumValueOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_EnumValueOptions_Deprecated\n}\n\nfunc (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype ServiceOptions struct {\n\t// Is this service deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the service, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating services.\n\tDeprecated *bool `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *ServiceOptions) Reset()         { *m = ServiceOptions{} }\nfunc (m *ServiceOptions) String() string { return proto.CompactTextString(m) }\nfunc (*ServiceOptions) ProtoMessage()    {}\nfunc (*ServiceOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{16}\n}\n\nvar extRange_ServiceOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_ServiceOptions\n}\n\nfunc (m *ServiceOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_ServiceOptions.Unmarshal(m, b)\n}\nfunc (m *ServiceOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_ServiceOptions.Marshal(b, m, deterministic)\n}\nfunc (m *ServiceOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceOptions.Merge(m, src)\n}\nfunc (m *ServiceOptions) XXX_Size() int {\n\treturn xxx_messageInfo_ServiceOptions.Size(m)\n}\nfunc (m *ServiceOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceOptions proto.InternalMessageInfo\n\nconst Default_ServiceOptions_Deprecated bool = false\n\nfunc (m *ServiceOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_ServiceOptions_Deprecated\n}\n\nfunc (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MethodOptions struct {\n\t// Is this method deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the method, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating methods.\n\tDeprecated       *bool                           `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\tIdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:\"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0\" json:\"idempotency_level,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption          []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\tXXX_NoUnkeyedLiteral         struct{}               `json:\"-\"`\n\tproto.XXX_InternalExtensions `json:\"-\"`\n\tXXX_unrecognized             []byte `json:\"-\"`\n\tXXX_sizecache                int32  `json:\"-\"`\n}\n\nfunc (m *MethodOptions) Reset()         { *m = MethodOptions{} }\nfunc (m *MethodOptions) String() string { return proto.CompactTextString(m) }\nfunc (*MethodOptions) ProtoMessage()    {}\nfunc (*MethodOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{17}\n}\n\nvar extRange_MethodOptions = []proto.ExtensionRange{\n\t{Start: 1000, End: 536870911},\n}\n\nfunc (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange {\n\treturn extRange_MethodOptions\n}\n\nfunc (m *MethodOptions) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_MethodOptions.Unmarshal(m, b)\n}\nfunc (m *MethodOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_MethodOptions.Marshal(b, m, deterministic)\n}\nfunc (m *MethodOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MethodOptions.Merge(m, src)\n}\nfunc (m *MethodOptions) XXX_Size() int {\n\treturn xxx_messageInfo_MethodOptions.Size(m)\n}\nfunc (m *MethodOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_MethodOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MethodOptions proto.InternalMessageInfo\n\nconst Default_MethodOptions_Deprecated bool = false\nconst Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN\n\nfunc (m *MethodOptions) GetDeprecated() bool {\n\tif m != nil && m.Deprecated != nil {\n\t\treturn *m.Deprecated\n\t}\n\treturn Default_MethodOptions_Deprecated\n}\n\nfunc (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel {\n\tif m != nil && m.IdempotencyLevel != nil {\n\t\treturn *m.IdempotencyLevel\n\t}\n\treturn Default_MethodOptions_IdempotencyLevel\n}\n\nfunc (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif m != nil {\n\t\treturn m.UninterpretedOption\n\t}\n\treturn nil\n}\n\n// A message representing a option the parser does not recognize. This only\n// appears in options protos created by the compiler::Parser class.\n// DescriptorPool resolves these when building Descriptor objects. Therefore,\n// options protos in descriptor objects (e.g. returned by Descriptor::options(),\n// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n// in them.\ntype UninterpretedOption struct {\n\tName []*UninterpretedOption_NamePart `protobuf:\"bytes,2,rep,name=name\" json:\"name,omitempty\"`\n\t// The value of the uninterpreted option, in whatever type the tokenizer\n\t// identified it as during parsing. Exactly one of these should be set.\n\tIdentifierValue      *string  `protobuf:\"bytes,3,opt,name=identifier_value,json=identifierValue\" json:\"identifier_value,omitempty\"`\n\tPositiveIntValue     *uint64  `protobuf:\"varint,4,opt,name=positive_int_value,json=positiveIntValue\" json:\"positive_int_value,omitempty\"`\n\tNegativeIntValue     *int64   `protobuf:\"varint,5,opt,name=negative_int_value,json=negativeIntValue\" json:\"negative_int_value,omitempty\"`\n\tDoubleValue          *float64 `protobuf:\"fixed64,6,opt,name=double_value,json=doubleValue\" json:\"double_value,omitempty\"`\n\tStringValue          []byte   `protobuf:\"bytes,7,opt,name=string_value,json=stringValue\" json:\"string_value,omitempty\"`\n\tAggregateValue       *string  `protobuf:\"bytes,8,opt,name=aggregate_value,json=aggregateValue\" json:\"aggregate_value,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *UninterpretedOption) Reset()         { *m = UninterpretedOption{} }\nfunc (m *UninterpretedOption) String() string { return proto.CompactTextString(m) }\nfunc (*UninterpretedOption) ProtoMessage()    {}\nfunc (*UninterpretedOption) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{18}\n}\nfunc (m *UninterpretedOption) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_UninterpretedOption.Unmarshal(m, b)\n}\nfunc (m *UninterpretedOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_UninterpretedOption.Marshal(b, m, deterministic)\n}\nfunc (m *UninterpretedOption) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UninterpretedOption.Merge(m, src)\n}\nfunc (m *UninterpretedOption) XXX_Size() int {\n\treturn xxx_messageInfo_UninterpretedOption.Size(m)\n}\nfunc (m *UninterpretedOption) XXX_DiscardUnknown() {\n\txxx_messageInfo_UninterpretedOption.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UninterpretedOption proto.InternalMessageInfo\n\nfunc (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn nil\n}\n\nfunc (m *UninterpretedOption) GetIdentifierValue() string {\n\tif m != nil && m.IdentifierValue != nil {\n\t\treturn *m.IdentifierValue\n\t}\n\treturn \"\"\n}\n\nfunc (m *UninterpretedOption) GetPositiveIntValue() uint64 {\n\tif m != nil && m.PositiveIntValue != nil {\n\t\treturn *m.PositiveIntValue\n\t}\n\treturn 0\n}\n\nfunc (m *UninterpretedOption) GetNegativeIntValue() int64 {\n\tif m != nil && m.NegativeIntValue != nil {\n\t\treturn *m.NegativeIntValue\n\t}\n\treturn 0\n}\n\nfunc (m *UninterpretedOption) GetDoubleValue() float64 {\n\tif m != nil && m.DoubleValue != nil {\n\t\treturn *m.DoubleValue\n\t}\n\treturn 0\n}\n\nfunc (m *UninterpretedOption) GetStringValue() []byte {\n\tif m != nil {\n\t\treturn m.StringValue\n\t}\n\treturn nil\n}\n\nfunc (m *UninterpretedOption) GetAggregateValue() string {\n\tif m != nil && m.AggregateValue != nil {\n\t\treturn *m.AggregateValue\n\t}\n\treturn \"\"\n}\n\n// The name of the uninterpreted option.  Each string represents a segment in\n// a dot-separated name.  is_extension is true iff a segment represents an\n// extension (denoted with parentheses in options specs in .proto files).\n// E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"qux\", false] } represents\n// \"foo.(bar.baz).qux\".\ntype UninterpretedOption_NamePart struct {\n\tNamePart             *string  `protobuf:\"bytes,1,req,name=name_part,json=namePart\" json:\"name_part,omitempty\"`\n\tIsExtension          *bool    `protobuf:\"varint,2,req,name=is_extension,json=isExtension\" json:\"is_extension,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *UninterpretedOption_NamePart) Reset()         { *m = UninterpretedOption_NamePart{} }\nfunc (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) }\nfunc (*UninterpretedOption_NamePart) ProtoMessage()    {}\nfunc (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{18, 0}\n}\nfunc (m *UninterpretedOption_NamePart) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_UninterpretedOption_NamePart.Unmarshal(m, b)\n}\nfunc (m *UninterpretedOption_NamePart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_UninterpretedOption_NamePart.Marshal(b, m, deterministic)\n}\nfunc (m *UninterpretedOption_NamePart) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UninterpretedOption_NamePart.Merge(m, src)\n}\nfunc (m *UninterpretedOption_NamePart) XXX_Size() int {\n\treturn xxx_messageInfo_UninterpretedOption_NamePart.Size(m)\n}\nfunc (m *UninterpretedOption_NamePart) XXX_DiscardUnknown() {\n\txxx_messageInfo_UninterpretedOption_NamePart.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UninterpretedOption_NamePart proto.InternalMessageInfo\n\nfunc (m *UninterpretedOption_NamePart) GetNamePart() string {\n\tif m != nil && m.NamePart != nil {\n\t\treturn *m.NamePart\n\t}\n\treturn \"\"\n}\n\nfunc (m *UninterpretedOption_NamePart) GetIsExtension() bool {\n\tif m != nil && m.IsExtension != nil {\n\t\treturn *m.IsExtension\n\t}\n\treturn false\n}\n\n// Encapsulates information about the original source file from which a\n// FileDescriptorProto was generated.\ntype SourceCodeInfo struct {\n\t// A Location identifies a piece of source code in a .proto file which\n\t// corresponds to a particular definition.  This information is intended\n\t// to be useful to IDEs, code indexers, documentation generators, and similar\n\t// tools.\n\t//\n\t// For example, say we have a file like:\n\t//   message Foo {\n\t//     optional string foo = 1;\n\t//   }\n\t// Let's look at just the field definition:\n\t//   optional string foo = 1;\n\t//   ^       ^^     ^^  ^  ^^^\n\t//   a       bc     de  f  ghi\n\t// We have the following locations:\n\t//   span   path               represents\n\t//   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.\n\t//   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).\n\t//   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).\n\t//   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).\n\t//   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).\n\t//\n\t// Notes:\n\t// - A location may refer to a repeated field itself (i.e. not to any\n\t//   particular index within it).  This is used whenever a set of elements are\n\t//   logically enclosed in a single code segment.  For example, an entire\n\t//   extend block (possibly containing multiple extension definitions) will\n\t//   have an outer location whose path refers to the \"extensions\" repeated\n\t//   field without an index.\n\t// - Multiple locations may have the same path.  This happens when a single\n\t//   logical declaration is spread out across multiple places.  The most\n\t//   obvious example is the \"extend\" block again -- there may be multiple\n\t//   extend blocks in the same scope, each of which will have the same path.\n\t// - A location's span is not always a subset of its parent's span.  For\n\t//   example, the \"extendee\" of an extension declaration appears at the\n\t//   beginning of the \"extend\" block and is shared by all extensions within\n\t//   the block.\n\t// - Just because a location's span is a subset of some other location's span\n\t//   does not mean that it is a descendant.  For example, a \"group\" defines\n\t//   both a type and a field in a single declaration.  Thus, the locations\n\t//   corresponding to the type and field and their components will overlap.\n\t// - Code which tries to interpret locations should probably be designed to\n\t//   ignore those that it doesn't understand, as more types of locations could\n\t//   be recorded in the future.\n\tLocation             []*SourceCodeInfo_Location `protobuf:\"bytes,1,rep,name=location\" json:\"location,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                   `json:\"-\"`\n\tXXX_unrecognized     []byte                     `json:\"-\"`\n\tXXX_sizecache        int32                      `json:\"-\"`\n}\n\nfunc (m *SourceCodeInfo) Reset()         { *m = SourceCodeInfo{} }\nfunc (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) }\nfunc (*SourceCodeInfo) ProtoMessage()    {}\nfunc (*SourceCodeInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{19}\n}\nfunc (m *SourceCodeInfo) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_SourceCodeInfo.Unmarshal(m, b)\n}\nfunc (m *SourceCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_SourceCodeInfo.Marshal(b, m, deterministic)\n}\nfunc (m *SourceCodeInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SourceCodeInfo.Merge(m, src)\n}\nfunc (m *SourceCodeInfo) XXX_Size() int {\n\treturn xxx_messageInfo_SourceCodeInfo.Size(m)\n}\nfunc (m *SourceCodeInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_SourceCodeInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SourceCodeInfo proto.InternalMessageInfo\n\nfunc (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {\n\tif m != nil {\n\t\treturn m.Location\n\t}\n\treturn nil\n}\n\ntype SourceCodeInfo_Location struct {\n\t// Identifies which part of the FileDescriptorProto was defined at this\n\t// location.\n\t//\n\t// Each element is a field number or an index.  They form a path from\n\t// the root FileDescriptorProto to the place where the definition.  For\n\t// example, this path:\n\t//   [ 4, 3, 2, 7, 1 ]\n\t// refers to:\n\t//   file.message_type(3)  // 4, 3\n\t//       .field(7)         // 2, 7\n\t//       .name()           // 1\n\t// This is because FileDescriptorProto.message_type has field number 4:\n\t//   repeated DescriptorProto message_type = 4;\n\t// and DescriptorProto.field has field number 2:\n\t//   repeated FieldDescriptorProto field = 2;\n\t// and FieldDescriptorProto.name has field number 1:\n\t//   optional string name = 1;\n\t//\n\t// Thus, the above path gives the location of a field name.  If we removed\n\t// the last element:\n\t//   [ 4, 3, 2, 7 ]\n\t// this path refers to the whole field declaration (from the beginning\n\t// of the label to the terminating semicolon).\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Always has exactly three or four elements: start line, start column,\n\t// end line (optional, otherwise assumed same as start line), end column.\n\t// These are packed into a single field for efficiency.  Note that line\n\t// and column numbers are zero-based -- typically you will want to add\n\t// 1 to each before displaying to a user.\n\tSpan []int32 `protobuf:\"varint,2,rep,packed,name=span\" json:\"span,omitempty\"`\n\t// If this SourceCodeInfo represents a complete declaration, these are any\n\t// comments appearing before and after the declaration which appear to be\n\t// attached to the declaration.\n\t//\n\t// A series of line comments appearing on consecutive lines, with no other\n\t// tokens appearing on those lines, will be treated as a single comment.\n\t//\n\t// leading_detached_comments will keep paragraphs of comments that appear\n\t// before (but not connected to) the current element. Each paragraph,\n\t// separated by empty lines, will be one comment element in the repeated\n\t// field.\n\t//\n\t// Only the comment content is provided; comment markers (e.g. //) are\n\t// stripped out.  For block comments, leading whitespace and an asterisk\n\t// will be stripped from the beginning of each line other than the first.\n\t// Newlines are included in the output.\n\t//\n\t// Examples:\n\t//\n\t//   optional int32 foo = 1;  // Comment attached to foo.\n\t//   // Comment attached to bar.\n\t//   optional int32 bar = 2;\n\t//\n\t//   optional string baz = 3;\n\t//   // Comment attached to baz.\n\t//   // Another line attached to baz.\n\t//\n\t//   // Comment attached to qux.\n\t//   //\n\t//   // Another line attached to qux.\n\t//   optional double qux = 4;\n\t//\n\t//   // Detached comment for corge. This is not leading or trailing comments\n\t//   // to qux or corge because there are blank lines separating it from\n\t//   // both.\n\t//\n\t//   // Detached comment for corge paragraph 2.\n\t//\n\t//   optional string corge = 5;\n\t//   /* Block comment attached\n\t//    * to corge.  Leading asterisks\n\t//    * will be removed. */\n\t//   /* Block comment attached to\n\t//    * grault. */\n\t//   optional int32 grault = 6;\n\t//\n\t//   // ignored detached comments.\n\tLeadingComments         *string  `protobuf:\"bytes,3,opt,name=leading_comments,json=leadingComments\" json:\"leading_comments,omitempty\"`\n\tTrailingComments        *string  `protobuf:\"bytes,4,opt,name=trailing_comments,json=trailingComments\" json:\"trailing_comments,omitempty\"`\n\tLeadingDetachedComments []string `protobuf:\"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments\" json:\"leading_detached_comments,omitempty\"`\n\tXXX_NoUnkeyedLiteral    struct{} `json:\"-\"`\n\tXXX_unrecognized        []byte   `json:\"-\"`\n\tXXX_sizecache           int32    `json:\"-\"`\n}\n\nfunc (m *SourceCodeInfo_Location) Reset()         { *m = SourceCodeInfo_Location{} }\nfunc (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) }\nfunc (*SourceCodeInfo_Location) ProtoMessage()    {}\nfunc (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{19, 0}\n}\nfunc (m *SourceCodeInfo_Location) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_SourceCodeInfo_Location.Unmarshal(m, b)\n}\nfunc (m *SourceCodeInfo_Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_SourceCodeInfo_Location.Marshal(b, m, deterministic)\n}\nfunc (m *SourceCodeInfo_Location) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SourceCodeInfo_Location.Merge(m, src)\n}\nfunc (m *SourceCodeInfo_Location) XXX_Size() int {\n\treturn xxx_messageInfo_SourceCodeInfo_Location.Size(m)\n}\nfunc (m *SourceCodeInfo_Location) XXX_DiscardUnknown() {\n\txxx_messageInfo_SourceCodeInfo_Location.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SourceCodeInfo_Location proto.InternalMessageInfo\n\nfunc (m *SourceCodeInfo_Location) GetPath() []int32 {\n\tif m != nil {\n\t\treturn m.Path\n\t}\n\treturn nil\n}\n\nfunc (m *SourceCodeInfo_Location) GetSpan() []int32 {\n\tif m != nil {\n\t\treturn m.Span\n\t}\n\treturn nil\n}\n\nfunc (m *SourceCodeInfo_Location) GetLeadingComments() string {\n\tif m != nil && m.LeadingComments != nil {\n\t\treturn *m.LeadingComments\n\t}\n\treturn \"\"\n}\n\nfunc (m *SourceCodeInfo_Location) GetTrailingComments() string {\n\tif m != nil && m.TrailingComments != nil {\n\t\treturn *m.TrailingComments\n\t}\n\treturn \"\"\n}\n\nfunc (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string {\n\tif m != nil {\n\t\treturn m.LeadingDetachedComments\n\t}\n\treturn nil\n}\n\n// Describes the relationship between generated code and its original source\n// file. A GeneratedCodeInfo message is associated with only one generated\n// source file, but may contain references to different source .proto files.\ntype GeneratedCodeInfo struct {\n\t// An Annotation connects some span of text in generated code to an element\n\t// of its generating .proto file.\n\tAnnotation           []*GeneratedCodeInfo_Annotation `protobuf:\"bytes,1,rep,name=annotation\" json:\"annotation,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                        `json:\"-\"`\n\tXXX_unrecognized     []byte                          `json:\"-\"`\n\tXXX_sizecache        int32                           `json:\"-\"`\n}\n\nfunc (m *GeneratedCodeInfo) Reset()         { *m = GeneratedCodeInfo{} }\nfunc (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) }\nfunc (*GeneratedCodeInfo) ProtoMessage()    {}\nfunc (*GeneratedCodeInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{20}\n}\nfunc (m *GeneratedCodeInfo) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_GeneratedCodeInfo.Unmarshal(m, b)\n}\nfunc (m *GeneratedCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_GeneratedCodeInfo.Marshal(b, m, deterministic)\n}\nfunc (m *GeneratedCodeInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GeneratedCodeInfo.Merge(m, src)\n}\nfunc (m *GeneratedCodeInfo) XXX_Size() int {\n\treturn xxx_messageInfo_GeneratedCodeInfo.Size(m)\n}\nfunc (m *GeneratedCodeInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_GeneratedCodeInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GeneratedCodeInfo proto.InternalMessageInfo\n\nfunc (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation {\n\tif m != nil {\n\t\treturn m.Annotation\n\t}\n\treturn nil\n}\n\ntype GeneratedCodeInfo_Annotation struct {\n\t// Identifies the element in the original source .proto file. This field\n\t// is formatted the same as SourceCodeInfo.Location.path.\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Identifies the filesystem path to the original source .proto.\n\tSourceFile *string `protobuf:\"bytes,2,opt,name=source_file,json=sourceFile\" json:\"source_file,omitempty\"`\n\t// Identifies the starting offset in bytes in the generated code\n\t// that relates to the identified object.\n\tBegin *int32 `protobuf:\"varint,3,opt,name=begin\" json:\"begin,omitempty\"`\n\t// Identifies the ending offset in bytes in the generated code that\n\t// relates to the identified offset. The end offset should be one past\n\t// the last relevant byte (so the length of the text = end - begin).\n\tEnd                  *int32   `protobuf:\"varint,4,opt,name=end\" json:\"end,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_unrecognized     []byte   `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *GeneratedCodeInfo_Annotation) Reset()         { *m = GeneratedCodeInfo_Annotation{} }\nfunc (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) }\nfunc (*GeneratedCodeInfo_Annotation) ProtoMessage()    {}\nfunc (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_308767df5ffe18af, []int{20, 0}\n}\nfunc (m *GeneratedCodeInfo_Annotation) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_GeneratedCodeInfo_Annotation.Unmarshal(m, b)\n}\nfunc (m *GeneratedCodeInfo_Annotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_GeneratedCodeInfo_Annotation.Marshal(b, m, deterministic)\n}\nfunc (m *GeneratedCodeInfo_Annotation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GeneratedCodeInfo_Annotation.Merge(m, src)\n}\nfunc (m *GeneratedCodeInfo_Annotation) XXX_Size() int {\n\treturn xxx_messageInfo_GeneratedCodeInfo_Annotation.Size(m)\n}\nfunc (m *GeneratedCodeInfo_Annotation) XXX_DiscardUnknown() {\n\txxx_messageInfo_GeneratedCodeInfo_Annotation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GeneratedCodeInfo_Annotation proto.InternalMessageInfo\n\nfunc (m *GeneratedCodeInfo_Annotation) GetPath() []int32 {\n\tif m != nil {\n\t\treturn m.Path\n\t}\n\treturn nil\n}\n\nfunc (m *GeneratedCodeInfo_Annotation) GetSourceFile() string {\n\tif m != nil && m.SourceFile != nil {\n\t\treturn *m.SourceFile\n\t}\n\treturn \"\"\n}\n\nfunc (m *GeneratedCodeInfo_Annotation) GetBegin() int32 {\n\tif m != nil && m.Begin != nil {\n\t\treturn *m.Begin\n\t}\n\treturn 0\n}\n\nfunc (m *GeneratedCodeInfo_Annotation) GetEnd() int32 {\n\tif m != nil && m.End != nil {\n\t\treturn *m.End\n\t}\n\treturn 0\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"google.protobuf.FieldDescriptorProto_Type\", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value)\n\tproto.RegisterEnum(\"google.protobuf.FieldDescriptorProto_Label\", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value)\n\tproto.RegisterEnum(\"google.protobuf.FileOptions_OptimizeMode\", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value)\n\tproto.RegisterEnum(\"google.protobuf.FieldOptions_CType\", FieldOptions_CType_name, FieldOptions_CType_value)\n\tproto.RegisterEnum(\"google.protobuf.FieldOptions_JSType\", FieldOptions_JSType_name, FieldOptions_JSType_value)\n\tproto.RegisterEnum(\"google.protobuf.MethodOptions_IdempotencyLevel\", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value)\n\tproto.RegisterType((*FileDescriptorSet)(nil), \"google.protobuf.FileDescriptorSet\")\n\tproto.RegisterType((*FileDescriptorProto)(nil), \"google.protobuf.FileDescriptorProto\")\n\tproto.RegisterType((*DescriptorProto)(nil), \"google.protobuf.DescriptorProto\")\n\tproto.RegisterType((*DescriptorProto_ExtensionRange)(nil), \"google.protobuf.DescriptorProto.ExtensionRange\")\n\tproto.RegisterType((*DescriptorProto_ReservedRange)(nil), \"google.protobuf.DescriptorProto.ReservedRange\")\n\tproto.RegisterType((*ExtensionRangeOptions)(nil), \"google.protobuf.ExtensionRangeOptions\")\n\tproto.RegisterType((*FieldDescriptorProto)(nil), \"google.protobuf.FieldDescriptorProto\")\n\tproto.RegisterType((*OneofDescriptorProto)(nil), \"google.protobuf.OneofDescriptorProto\")\n\tproto.RegisterType((*EnumDescriptorProto)(nil), \"google.protobuf.EnumDescriptorProto\")\n\tproto.RegisterType((*EnumDescriptorProto_EnumReservedRange)(nil), \"google.protobuf.EnumDescriptorProto.EnumReservedRange\")\n\tproto.RegisterType((*EnumValueDescriptorProto)(nil), \"google.protobuf.EnumValueDescriptorProto\")\n\tproto.RegisterType((*ServiceDescriptorProto)(nil), \"google.protobuf.ServiceDescriptorProto\")\n\tproto.RegisterType((*MethodDescriptorProto)(nil), \"google.protobuf.MethodDescriptorProto\")\n\tproto.RegisterType((*FileOptions)(nil), \"google.protobuf.FileOptions\")\n\tproto.RegisterType((*MessageOptions)(nil), \"google.protobuf.MessageOptions\")\n\tproto.RegisterType((*FieldOptions)(nil), \"google.protobuf.FieldOptions\")\n\tproto.RegisterType((*OneofOptions)(nil), \"google.protobuf.OneofOptions\")\n\tproto.RegisterType((*EnumOptions)(nil), \"google.protobuf.EnumOptions\")\n\tproto.RegisterType((*EnumValueOptions)(nil), \"google.protobuf.EnumValueOptions\")\n\tproto.RegisterType((*ServiceOptions)(nil), \"google.protobuf.ServiceOptions\")\n\tproto.RegisterType((*MethodOptions)(nil), \"google.protobuf.MethodOptions\")\n\tproto.RegisterType((*UninterpretedOption)(nil), \"google.protobuf.UninterpretedOption\")\n\tproto.RegisterType((*UninterpretedOption_NamePart)(nil), \"google.protobuf.UninterpretedOption.NamePart\")\n\tproto.RegisterType((*SourceCodeInfo)(nil), \"google.protobuf.SourceCodeInfo\")\n\tproto.RegisterType((*SourceCodeInfo_Location)(nil), \"google.protobuf.SourceCodeInfo.Location\")\n\tproto.RegisterType((*GeneratedCodeInfo)(nil), \"google.protobuf.GeneratedCodeInfo\")\n\tproto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), \"google.protobuf.GeneratedCodeInfo.Annotation\")\n}\n\nfunc init() { proto.RegisterFile(\"descriptor.proto\", fileDescriptor_308767df5ffe18af) }\n\nvar fileDescriptor_308767df5ffe18af = []byte{\n\t// 2522 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0xdb, 0xc8,\n\t0x15, 0x5f, 0x7d, 0x5a, 0x7a, 0x92, 0x65, 0x7a, 0xec, 0x75, 0x18, 0xef, 0x47, 0x1c, 0xed, 0x66,\n\t0xe3, 0x24, 0xbb, 0xca, 0xc2, 0x49, 0x9c, 0xac, 0x53, 0x6c, 0x2b, 0x4b, 0x8c, 0x57, 0xa9, 0xbe,\n\t0x4a, 0xc9, 0xdd, 0x64, 0x8b, 0x82, 0x18, 0x93, 0x23, 0x89, 0x09, 0x45, 0x72, 0x49, 0x2a, 0x89,\n\t0x83, 0x1e, 0x02, 0xf4, 0x54, 0xa0, 0x7f, 0x40, 0x51, 0x14, 0x3d, 0xf4, 0xb2, 0x40, 0xff, 0x80,\n\t0x02, 0xed, 0xbd, 0xd7, 0x02, 0xbd, 0xf7, 0x50, 0xa0, 0x05, 0xda, 0x3f, 0xa1, 0xc7, 0x62, 0x66,\n\t0x48, 0x8a, 0xd4, 0x47, 0xe2, 0x5d, 0x20, 0xd9, 0x93, 0x3d, 0xef, 0xfd, 0xde, 0x9b, 0x37, 0x8f,\n\t0xbf, 0x79, 0xf3, 0x66, 0x04, 0x82, 0x46, 0x5c, 0xd5, 0xd1, 0x6d, 0xcf, 0x72, 0x2a, 0xb6, 0x63,\n\t0x79, 0x16, 0x5a, 0x1b, 0x5a, 0xd6, 0xd0, 0x20, 0x7c, 0x74, 0x32, 0x19, 0x94, 0x5b, 0xb0, 0x7e,\n\t0x4f, 0x37, 0x48, 0x3d, 0x04, 0xf6, 0x88, 0x87, 0xee, 0x40, 0x7a, 0xa0, 0x1b, 0x44, 0x4c, 0xec,\n\t0xa4, 0x76, 0x0b, 0x7b, 0x1f, 0x56, 0x66, 0x8c, 0x2a, 0x71, 0x8b, 0x2e, 0x15, 0xcb, 0xcc, 0xa2,\n\t0xfc, 0xef, 0x34, 0x6c, 0x2c, 0xd0, 0x22, 0x04, 0x69, 0x13, 0x8f, 0xa9, 0xc7, 0xc4, 0x6e, 0x5e,\n\t0x66, 0xff, 0x23, 0x11, 0x56, 0x6c, 0xac, 0x3e, 0xc6, 0x43, 0x22, 0x26, 0x99, 0x38, 0x18, 0xa2,\n\t0xf7, 0x01, 0x34, 0x62, 0x13, 0x53, 0x23, 0xa6, 0x7a, 0x2a, 0xa6, 0x76, 0x52, 0xbb, 0x79, 0x39,\n\t0x22, 0x41, 0xd7, 0x60, 0xdd, 0x9e, 0x9c, 0x18, 0xba, 0xaa, 0x44, 0x60, 0xb0, 0x93, 0xda, 0xcd,\n\t0xc8, 0x02, 0x57, 0xd4, 0xa7, 0xe0, 0xcb, 0xb0, 0xf6, 0x94, 0xe0, 0xc7, 0x51, 0x68, 0x81, 0x41,\n\t0x4b, 0x54, 0x1c, 0x01, 0xd6, 0xa0, 0x38, 0x26, 0xae, 0x8b, 0x87, 0x44, 0xf1, 0x4e, 0x6d, 0x22,\n\t0xa6, 0xd9, 0xea, 0x77, 0xe6, 0x56, 0x3f, 0xbb, 0xf2, 0x82, 0x6f, 0xd5, 0x3f, 0xb5, 0x09, 0xaa,\n\t0x42, 0x9e, 0x98, 0x93, 0x31, 0xf7, 0x90, 0x59, 0x92, 0x3f, 0xc9, 0x9c, 0x8c, 0x67, 0xbd, 0xe4,\n\t0xa8, 0x99, 0xef, 0x62, 0xc5, 0x25, 0xce, 0x13, 0x5d, 0x25, 0x62, 0x96, 0x39, 0xb8, 0x3c, 0xe7,\n\t0xa0, 0xc7, 0xf5, 0xb3, 0x3e, 0x02, 0x3b, 0x54, 0x83, 0x3c, 0x79, 0xe6, 0x11, 0xd3, 0xd5, 0x2d,\n\t0x53, 0x5c, 0x61, 0x4e, 0x2e, 0x2d, 0xf8, 0x8a, 0xc4, 0xd0, 0x66, 0x5d, 0x4c, 0xed, 0xd0, 0x3e,\n\t0xac, 0x58, 0xb6, 0xa7, 0x5b, 0xa6, 0x2b, 0xe6, 0x76, 0x12, 0xbb, 0x85, 0xbd, 0x77, 0x17, 0x12,\n\t0xa1, 0xc3, 0x31, 0x72, 0x00, 0x46, 0x0d, 0x10, 0x5c, 0x6b, 0xe2, 0xa8, 0x44, 0x51, 0x2d, 0x8d,\n\t0x28, 0xba, 0x39, 0xb0, 0xc4, 0x3c, 0x73, 0x70, 0x61, 0x7e, 0x21, 0x0c, 0x58, 0xb3, 0x34, 0xd2,\n\t0x30, 0x07, 0x96, 0x5c, 0x72, 0x63, 0x63, 0xb4, 0x05, 0x59, 0xf7, 0xd4, 0xf4, 0xf0, 0x33, 0xb1,\n\t0xc8, 0x18, 0xe2, 0x8f, 0xca, 0x7f, 0xce, 0xc2, 0xda, 0x59, 0x28, 0x76, 0x17, 0x32, 0x03, 0xba,\n\t0x4a, 0x31, 0xf9, 0x6d, 0x72, 0xc0, 0x6d, 0xe2, 0x49, 0xcc, 0x7e, 0xc7, 0x24, 0x56, 0xa1, 0x60,\n\t0x12, 0xd7, 0x23, 0x1a, 0x67, 0x44, 0xea, 0x8c, 0x9c, 0x02, 0x6e, 0x34, 0x4f, 0xa9, 0xf4, 0x77,\n\t0xa2, 0xd4, 0x03, 0x58, 0x0b, 0x43, 0x52, 0x1c, 0x6c, 0x0e, 0x03, 0x6e, 0x5e, 0x7f, 0x55, 0x24,\n\t0x15, 0x29, 0xb0, 0x93, 0xa9, 0x99, 0x5c, 0x22, 0xb1, 0x31, 0xaa, 0x03, 0x58, 0x26, 0xb1, 0x06,\n\t0x8a, 0x46, 0x54, 0x43, 0xcc, 0x2d, 0xc9, 0x52, 0x87, 0x42, 0xe6, 0xb2, 0x64, 0x71, 0xa9, 0x6a,\n\t0xa0, 0xcf, 0xa6, 0x54, 0x5b, 0x59, 0xc2, 0x94, 0x16, 0xdf, 0x64, 0x73, 0x6c, 0x3b, 0x86, 0x92,\n\t0x43, 0x28, 0xef, 0x89, 0xe6, 0xaf, 0x2c, 0xcf, 0x82, 0xa8, 0xbc, 0x72, 0x65, 0xb2, 0x6f, 0xc6,\n\t0x17, 0xb6, 0xea, 0x44, 0x87, 0xe8, 0x03, 0x08, 0x05, 0x0a, 0xa3, 0x15, 0xb0, 0x2a, 0x54, 0x0c,\n\t0x84, 0x6d, 0x3c, 0x26, 0xdb, 0xcf, 0xa1, 0x14, 0x4f, 0x0f, 0xda, 0x84, 0x8c, 0xeb, 0x61, 0xc7,\n\t0x63, 0x2c, 0xcc, 0xc8, 0x7c, 0x80, 0x04, 0x48, 0x11, 0x53, 0x63, 0x55, 0x2e, 0x23, 0xd3, 0x7f,\n\t0xd1, 0x8f, 0xa6, 0x0b, 0x4e, 0xb1, 0x05, 0x7f, 0x34, 0xff, 0x45, 0x63, 0x9e, 0x67, 0xd7, 0xbd,\n\t0x7d, 0x1b, 0x56, 0x63, 0x0b, 0x38, 0xeb, 0xd4, 0xe5, 0x5f, 0xc0, 0xdb, 0x0b, 0x5d, 0xa3, 0x07,\n\t0xb0, 0x39, 0x31, 0x75, 0xd3, 0x23, 0x8e, 0xed, 0x10, 0xca, 0x58, 0x3e, 0x95, 0xf8, 0x9f, 0x95,\n\t0x25, 0x9c, 0x3b, 0x8e, 0xa2, 0xb9, 0x17, 0x79, 0x63, 0x32, 0x2f, 0xbc, 0x9a, 0xcf, 0xfd, 0x77,\n\t0x45, 0x78, 0xf1, 0xe2, 0xc5, 0x8b, 0x64, 0xf9, 0x37, 0x59, 0xd8, 0x5c, 0xb4, 0x67, 0x16, 0x6e,\n\t0xdf, 0x2d, 0xc8, 0x9a, 0x93, 0xf1, 0x09, 0x71, 0x58, 0x92, 0x32, 0xb2, 0x3f, 0x42, 0x55, 0xc8,\n\t0x18, 0xf8, 0x84, 0x18, 0x62, 0x7a, 0x27, 0xb1, 0x5b, 0xda, 0xbb, 0x76, 0xa6, 0x5d, 0x59, 0x69,\n\t0x52, 0x13, 0x99, 0x5b, 0xa2, 0xcf, 0x21, 0xed, 0x97, 0x68, 0xea, 0xe1, 0xea, 0xd9, 0x3c, 0xd0,\n\t0xbd, 0x24, 0x33, 0x3b, 0xf4, 0x0e, 0xe4, 0xe9, 0x5f, 0xce, 0x8d, 0x2c, 0x8b, 0x39, 0x47, 0x05,\n\t0x94, 0x17, 0x68, 0x1b, 0x72, 0x6c, 0x9b, 0x68, 0x24, 0x38, 0xda, 0xc2, 0x31, 0x25, 0x96, 0x46,\n\t0x06, 0x78, 0x62, 0x78, 0xca, 0x13, 0x6c, 0x4c, 0x08, 0x23, 0x7c, 0x5e, 0x2e, 0xfa, 0xc2, 0x9f,\n\t0x52, 0x19, 0xba, 0x00, 0x05, 0xbe, 0xab, 0x74, 0x53, 0x23, 0xcf, 0x58, 0xf5, 0xcc, 0xc8, 0x7c,\n\t0xa3, 0x35, 0xa8, 0x84, 0x4e, 0xff, 0xc8, 0xb5, 0xcc, 0x80, 0x9a, 0x6c, 0x0a, 0x2a, 0x60, 0xd3,\n\t0xdf, 0x9e, 0x2d, 0xdc, 0xef, 0x2d, 0x5e, 0xde, 0x2c, 0xa7, 0xca, 0x7f, 0x4a, 0x42, 0x9a, 0xd5,\n\t0x8b, 0x35, 0x28, 0xf4, 0x1f, 0x76, 0x25, 0xa5, 0xde, 0x39, 0x3e, 0x6c, 0x4a, 0x42, 0x02, 0x95,\n\t0x00, 0x98, 0xe0, 0x5e, 0xb3, 0x53, 0xed, 0x0b, 0xc9, 0x70, 0xdc, 0x68, 0xf7, 0xf7, 0x6f, 0x0a,\n\t0xa9, 0xd0, 0xe0, 0x98, 0x0b, 0xd2, 0x51, 0xc0, 0x8d, 0x3d, 0x21, 0x83, 0x04, 0x28, 0x72, 0x07,\n\t0x8d, 0x07, 0x52, 0x7d, 0xff, 0xa6, 0x90, 0x8d, 0x4b, 0x6e, 0xec, 0x09, 0x2b, 0x68, 0x15, 0xf2,\n\t0x4c, 0x72, 0xd8, 0xe9, 0x34, 0x85, 0x5c, 0xe8, 0xb3, 0xd7, 0x97, 0x1b, 0xed, 0x23, 0x21, 0x1f,\n\t0xfa, 0x3c, 0x92, 0x3b, 0xc7, 0x5d, 0x01, 0x42, 0x0f, 0x2d, 0xa9, 0xd7, 0xab, 0x1e, 0x49, 0x42,\n\t0x21, 0x44, 0x1c, 0x3e, 0xec, 0x4b, 0x3d, 0xa1, 0x18, 0x0b, 0xeb, 0xc6, 0x9e, 0xb0, 0x1a, 0x4e,\n\t0x21, 0xb5, 0x8f, 0x5b, 0x42, 0x09, 0xad, 0xc3, 0x2a, 0x9f, 0x22, 0x08, 0x62, 0x6d, 0x46, 0xb4,\n\t0x7f, 0x53, 0x10, 0xa6, 0x81, 0x70, 0x2f, 0xeb, 0x31, 0xc1, 0xfe, 0x4d, 0x01, 0x95, 0x6b, 0x90,\n\t0x61, 0xec, 0x42, 0x08, 0x4a, 0xcd, 0xea, 0xa1, 0xd4, 0x54, 0x3a, 0xdd, 0x7e, 0xa3, 0xd3, 0xae,\n\t0x36, 0x85, 0xc4, 0x54, 0x26, 0x4b, 0x3f, 0x39, 0x6e, 0xc8, 0x52, 0x5d, 0x48, 0x46, 0x65, 0x5d,\n\t0xa9, 0xda, 0x97, 0xea, 0x42, 0xaa, 0xac, 0xc2, 0xe6, 0xa2, 0x3a, 0xb9, 0x70, 0x67, 0x44, 0x3e,\n\t0x71, 0x72, 0xc9, 0x27, 0x66, 0xbe, 0xe6, 0x3e, 0xf1, 0xbf, 0x92, 0xb0, 0xb1, 0xe0, 0xac, 0x58,\n\t0x38, 0xc9, 0x0f, 0x21, 0xc3, 0x29, 0xca, 0x4f, 0xcf, 0x2b, 0x0b, 0x0f, 0x1d, 0x46, 0xd8, 0xb9,\n\t0x13, 0x94, 0xd9, 0x45, 0x3b, 0x88, 0xd4, 0x92, 0x0e, 0x82, 0xba, 0x98, 0xab, 0xe9, 0x3f, 0x9f,\n\t0xab, 0xe9, 0xfc, 0xd8, 0xdb, 0x3f, 0xcb, 0xb1, 0xc7, 0x64, 0xdf, 0xae, 0xb6, 0x67, 0x16, 0xd4,\n\t0xf6, 0xbb, 0xb0, 0x3e, 0xe7, 0xe8, 0xcc, 0x35, 0xf6, 0x97, 0x09, 0x10, 0x97, 0x25, 0xe7, 0x15,\n\t0x95, 0x2e, 0x19, 0xab, 0x74, 0x77, 0x67, 0x33, 0x78, 0x71, 0xf9, 0x47, 0x98, 0xfb, 0xd6, 0xdf,\n\t0x24, 0x60, 0x6b, 0x71, 0xa7, 0xb8, 0x30, 0x86, 0xcf, 0x21, 0x3b, 0x26, 0xde, 0xc8, 0x0a, 0xba,\n\t0xa5, 0x8f, 0x16, 0x9c, 0xc1, 0x54, 0x3d, 0xfb, 0xb1, 0x7d, 0xab, 0xe8, 0x21, 0x9e, 0x5a, 0xd6,\n\t0xee, 0xf1, 0x68, 0xe6, 0x22, 0xfd, 0x55, 0x12, 0xde, 0x5e, 0xe8, 0x7c, 0x61, 0xa0, 0xef, 0x01,\n\t0xe8, 0xa6, 0x3d, 0xf1, 0x78, 0x47, 0xc4, 0x0b, 0x6c, 0x9e, 0x49, 0x58, 0xf1, 0xa2, 0xc5, 0x73,\n\t0xe2, 0x85, 0xfa, 0x14, 0xd3, 0x03, 0x17, 0x31, 0xc0, 0x9d, 0x69, 0xa0, 0x69, 0x16, 0xe8, 0xfb,\n\t0x4b, 0x56, 0x3a, 0x47, 0xcc, 0x4f, 0x41, 0x50, 0x0d, 0x9d, 0x98, 0x9e, 0xe2, 0x7a, 0x0e, 0xc1,\n\t0x63, 0xdd, 0x1c, 0xb2, 0x13, 0x24, 0x77, 0x90, 0x19, 0x60, 0xc3, 0x25, 0xf2, 0x1a, 0x57, 0xf7,\n\t0x02, 0x2d, 0xb5, 0x60, 0x04, 0x72, 0x22, 0x16, 0xd9, 0x98, 0x05, 0x57, 0x87, 0x16, 0xe5, 0x5f,\n\t0xe7, 0xa1, 0x10, 0xe9, 0xab, 0xd1, 0x45, 0x28, 0x3e, 0xc2, 0x4f, 0xb0, 0x12, 0xdc, 0x95, 0x78,\n\t0x26, 0x0a, 0x54, 0xd6, 0xf5, 0xef, 0x4b, 0x9f, 0xc2, 0x26, 0x83, 0x58, 0x13, 0x8f, 0x38, 0x8a,\n\t0x6a, 0x60, 0xd7, 0x65, 0x49, 0xcb, 0x31, 0x28, 0xa2, 0xba, 0x0e, 0x55, 0xd5, 0x02, 0x0d, 0xba,\n\t0x05, 0x1b, 0xcc, 0x62, 0x3c, 0x31, 0x3c, 0xdd, 0x36, 0x88, 0x42, 0x6f, 0x6f, 0x2e, 0x3b, 0x49,\n\t0xc2, 0xc8, 0xd6, 0x29, 0xa2, 0xe5, 0x03, 0x68, 0x44, 0x2e, 0xaa, 0xc3, 0x7b, 0xcc, 0x6c, 0x48,\n\t0x4c, 0xe2, 0x60, 0x8f, 0x28, 0xe4, 0xeb, 0x09, 0x36, 0x5c, 0x05, 0x9b, 0x9a, 0x32, 0xc2, 0xee,\n\t0x48, 0xdc, 0xa4, 0x0e, 0x0e, 0x93, 0x62, 0x42, 0x3e, 0x4f, 0x81, 0x47, 0x3e, 0x4e, 0x62, 0xb0,\n\t0xaa, 0xa9, 0x7d, 0x81, 0xdd, 0x11, 0x3a, 0x80, 0x2d, 0xe6, 0xc5, 0xf5, 0x1c, 0xdd, 0x1c, 0x2a,\n\t0xea, 0x88, 0xa8, 0x8f, 0x95, 0x89, 0x37, 0xb8, 0x23, 0xbe, 0x13, 0x9d, 0x9f, 0x45, 0xd8, 0x63,\n\t0x98, 0x1a, 0x85, 0x1c, 0x7b, 0x83, 0x3b, 0xa8, 0x07, 0x45, 0xfa, 0x31, 0xc6, 0xfa, 0x73, 0xa2,\n\t0x0c, 0x2c, 0x87, 0x1d, 0x8d, 0xa5, 0x05, 0xa5, 0x29, 0x92, 0xc1, 0x4a, 0xc7, 0x37, 0x68, 0x59,\n\t0x1a, 0x39, 0xc8, 0xf4, 0xba, 0x92, 0x54, 0x97, 0x0b, 0x81, 0x97, 0x7b, 0x96, 0x43, 0x09, 0x35,\n\t0xb4, 0xc2, 0x04, 0x17, 0x38, 0xa1, 0x86, 0x56, 0x90, 0xde, 0x5b, 0xb0, 0xa1, 0xaa, 0x7c, 0xcd,\n\t0xba, 0xaa, 0xf8, 0x77, 0x2c, 0x57, 0x14, 0x62, 0xc9, 0x52, 0xd5, 0x23, 0x0e, 0xf0, 0x39, 0xee,\n\t0xa2, 0xcf, 0xe0, 0xed, 0x69, 0xb2, 0xa2, 0x86, 0xeb, 0x73, 0xab, 0x9c, 0x35, 0xbd, 0x05, 0x1b,\n\t0xf6, 0xe9, 0xbc, 0x21, 0x8a, 0xcd, 0x68, 0x9f, 0xce, 0x9a, 0xdd, 0x86, 0x4d, 0x7b, 0x64, 0xcf,\n\t0xdb, 0x5d, 0x8d, 0xda, 0x21, 0x7b, 0x64, 0xcf, 0x1a, 0x5e, 0x62, 0x17, 0x6e, 0x87, 0xa8, 0xd8,\n\t0x23, 0x9a, 0x78, 0x2e, 0x0a, 0x8f, 0x28, 0xd0, 0x75, 0x10, 0x54, 0x55, 0x21, 0x26, 0x3e, 0x31,\n\t0x88, 0x82, 0x1d, 0x62, 0x62, 0x57, 0xbc, 0x10, 0x05, 0x97, 0x54, 0x55, 0x62, 0xda, 0x2a, 0x53,\n\t0xa2, 0xab, 0xb0, 0x6e, 0x9d, 0x3c, 0x52, 0x39, 0x25, 0x15, 0xdb, 0x21, 0x03, 0xfd, 0x99, 0xf8,\n\t0x21, 0xcb, 0xef, 0x1a, 0x55, 0x30, 0x42, 0x76, 0x99, 0x18, 0x5d, 0x01, 0x41, 0x75, 0x47, 0xd8,\n\t0xb1, 0x59, 0x4d, 0x76, 0x6d, 0xac, 0x12, 0xf1, 0x12, 0x87, 0x72, 0x79, 0x3b, 0x10, 0xd3, 0x2d,\n\t0xe1, 0x3e, 0xd5, 0x07, 0x5e, 0xe0, 0xf1, 0x32, 0xdf, 0x12, 0x4c, 0xe6, 0x7b, 0xdb, 0x05, 0x81,\n\t0xa6, 0x22, 0x36, 0xf1, 0x2e, 0x83, 0x95, 0xec, 0x91, 0x1d, 0x9d, 0xf7, 0x03, 0x58, 0xa5, 0xc8,\n\t0xe9, 0xa4, 0x57, 0x78, 0x43, 0x66, 0x8f, 0x22, 0x33, 0xde, 0x84, 0x2d, 0x0a, 0x1a, 0x13, 0x0f,\n\t0x6b, 0xd8, 0xc3, 0x11, 0xf4, 0xc7, 0x0c, 0x4d, 0xf3, 0xde, 0xf2, 0x95, 0xb1, 0x38, 0x9d, 0xc9,\n\t0xc9, 0x69, 0xc8, 0xac, 0x4f, 0x78, 0x9c, 0x54, 0x16, 0x70, 0xeb, 0xb5, 0x35, 0xdd, 0xe5, 0x03,\n\t0x28, 0x46, 0x89, 0x8f, 0xf2, 0xc0, 0xa9, 0x2f, 0x24, 0x68, 0x17, 0x54, 0xeb, 0xd4, 0x69, 0xff,\n\t0xf2, 0x95, 0x24, 0x24, 0x69, 0x1f, 0xd5, 0x6c, 0xf4, 0x25, 0x45, 0x3e, 0x6e, 0xf7, 0x1b, 0x2d,\n\t0x49, 0x48, 0x45, 0x1b, 0xf6, 0xbf, 0x26, 0xa1, 0x14, 0xbf, 0x7b, 0xa1, 0x1f, 0xc0, 0xb9, 0xe0,\n\t0xa1, 0xc4, 0x25, 0x9e, 0xf2, 0x54, 0x77, 0xd8, 0x5e, 0x1c, 0x63, 0x7e, 0x2e, 0x86, 0x6c, 0xd8,\n\t0xf4, 0x51, 0x3d, 0xe2, 0x7d, 0xa9, 0x3b, 0x74, 0xa7, 0x8d, 0xb1, 0x87, 0x9a, 0x70, 0xc1, 0xb4,\n\t0x14, 0xd7, 0xc3, 0xa6, 0x86, 0x1d, 0x4d, 0x99, 0x3e, 0x51, 0x29, 0x58, 0x55, 0x89, 0xeb, 0x5a,\n\t0xfc, 0x0c, 0x0c, 0xbd, 0xbc, 0x6b, 0x5a, 0x3d, 0x1f, 0x3c, 0x3d, 0x1c, 0xaa, 0x3e, 0x74, 0x86,\n\t0xb9, 0xa9, 0x65, 0xcc, 0x7d, 0x07, 0xf2, 0x63, 0x6c, 0x2b, 0xc4, 0xf4, 0x9c, 0x53, 0xd6, 0x71,\n\t0xe7, 0xe4, 0xdc, 0x18, 0xdb, 0x12, 0x1d, 0xbf, 0x99, 0x8b, 0xcf, 0x3f, 0x52, 0x50, 0x8c, 0x76,\n\t0xdd, 0xf4, 0x12, 0xa3, 0xb2, 0x03, 0x2a, 0xc1, 0x4a, 0xd8, 0x07, 0x2f, 0xed, 0xd1, 0x2b, 0x35,\n\t0x7a, 0x72, 0x1d, 0x64, 0x79, 0x2f, 0x2c, 0x73, 0x4b, 0xda, 0x35, 0x50, 0x6a, 0x11, 0xde, 0x7b,\n\t0xe4, 0x64, 0x7f, 0x84, 0x8e, 0x20, 0xfb, 0xc8, 0x65, 0xbe, 0xb3, 0xcc, 0xf7, 0x87, 0x2f, 0xf7,\n\t0x7d, 0xbf, 0xc7, 0x9c, 0xe7, 0xef, 0xf7, 0x94, 0x76, 0x47, 0x6e, 0x55, 0x9b, 0xb2, 0x6f, 0x8e,\n\t0xce, 0x43, 0xda, 0xc0, 0xcf, 0x4f, 0xe3, 0x67, 0x1c, 0x13, 0x9d, 0x35, 0xf1, 0xe7, 0x21, 0xfd,\n\t0x94, 0xe0, 0xc7, 0xf1, 0x93, 0x85, 0x89, 0x5e, 0x23, 0xf5, 0xaf, 0x43, 0x86, 0xe5, 0x0b, 0x01,\n\t0xf8, 0x19, 0x13, 0xde, 0x42, 0x39, 0x48, 0xd7, 0x3a, 0x32, 0xa5, 0xbf, 0x00, 0x45, 0x2e, 0x55,\n\t0xba, 0x0d, 0xa9, 0x26, 0x09, 0xc9, 0xf2, 0x2d, 0xc8, 0xf2, 0x24, 0xd0, 0xad, 0x11, 0xa6, 0x41,\n\t0x78, 0xcb, 0x1f, 0xfa, 0x3e, 0x12, 0x81, 0xf6, 0xb8, 0x75, 0x28, 0xc9, 0x42, 0x32, 0xfa, 0x79,\n\t0x5d, 0x28, 0x46, 0x1b, 0xee, 0x37, 0xc3, 0xa9, 0xbf, 0x24, 0xa0, 0x10, 0x69, 0xa0, 0x69, 0xe7,\n\t0x83, 0x0d, 0xc3, 0x7a, 0xaa, 0x60, 0x43, 0xc7, 0xae, 0x4f, 0x0a, 0x60, 0xa2, 0x2a, 0x95, 0x9c,\n\t0xf5, 0xa3, 0xbd, 0x91, 0xe0, 0x7f, 0x9f, 0x00, 0x61, 0xb6, 0x77, 0x9d, 0x09, 0x30, 0xf1, 0xbd,\n\t0x06, 0xf8, 0xbb, 0x04, 0x94, 0xe2, 0x0d, 0xeb, 0x4c, 0x78, 0x17, 0xbf, 0xd7, 0xf0, 0xfe, 0x99,\n\t0x84, 0xd5, 0x58, 0x9b, 0x7a, 0xd6, 0xe8, 0xbe, 0x86, 0x75, 0x5d, 0x23, 0x63, 0xdb, 0xf2, 0x88,\n\t0xa9, 0x9e, 0x2a, 0x06, 0x79, 0x42, 0x0c, 0xb1, 0xcc, 0x0a, 0xc5, 0xf5, 0x97, 0x37, 0xc2, 0x95,\n\t0xc6, 0xd4, 0xae, 0x49, 0xcd, 0x0e, 0x36, 0x1a, 0x75, 0xa9, 0xd5, 0xed, 0xf4, 0xa5, 0x76, 0xed,\n\t0xa1, 0x72, 0xdc, 0xfe, 0x71, 0xbb, 0xf3, 0x65, 0x5b, 0x16, 0xf4, 0x19, 0xd8, 0x6b, 0xdc, 0xea,\n\t0x5d, 0x10, 0x66, 0x83, 0x42, 0xe7, 0x60, 0x51, 0x58, 0xc2, 0x5b, 0x68, 0x03, 0xd6, 0xda, 0x1d,\n\t0xa5, 0xd7, 0xa8, 0x4b, 0x8a, 0x74, 0xef, 0x9e, 0x54, 0xeb, 0xf7, 0xf8, 0xd3, 0x46, 0x88, 0xee,\n\t0xc7, 0x37, 0xf5, 0x6f, 0x53, 0xb0, 0xb1, 0x20, 0x12, 0x54, 0xf5, 0x2f, 0x25, 0xfc, 0x9e, 0xf4,\n\t0xc9, 0x59, 0xa2, 0xaf, 0xd0, 0xae, 0xa0, 0x8b, 0x1d, 0xcf, 0xbf, 0xc3, 0x5c, 0x01, 0x9a, 0x25,\n\t0xd3, 0xd3, 0x07, 0x3a, 0x71, 0xfc, 0x97, 0x20, 0x7e, 0x53, 0x59, 0x9b, 0xca, 0xf9, 0x63, 0xd0,\n\t0xc7, 0x80, 0x6c, 0xcb, 0xd5, 0x3d, 0xfd, 0x09, 0x51, 0x74, 0x33, 0x78, 0x36, 0xa2, 0x37, 0x97,\n\t0xb4, 0x2c, 0x04, 0x9a, 0x86, 0xe9, 0x85, 0x68, 0x93, 0x0c, 0xf1, 0x0c, 0x9a, 0x16, 0xf0, 0x94,\n\t0x2c, 0x04, 0x9a, 0x10, 0x7d, 0x11, 0x8a, 0x9a, 0x35, 0xa1, 0xed, 0x1c, 0xc7, 0xd1, 0xf3, 0x22,\n\t0x21, 0x17, 0xb8, 0x2c, 0x84, 0xf8, 0x8d, 0xfa, 0xf4, 0xbd, 0xaa, 0x28, 0x17, 0xb8, 0x8c, 0x43,\n\t0x2e, 0xc3, 0x1a, 0x1e, 0x0e, 0x1d, 0xea, 0x3c, 0x70, 0xc4, 0xaf, 0x1e, 0xa5, 0x50, 0xcc, 0x80,\n\t0xdb, 0xf7, 0x21, 0x17, 0xe4, 0x81, 0x1e, 0xc9, 0x34, 0x13, 0x8a, 0xcd, 0xef, 0xd3, 0xc9, 0xdd,\n\t0xbc, 0x9c, 0x33, 0x03, 0xe5, 0x45, 0x28, 0xea, 0xae, 0x32, 0x7d, 0x7e, 0x4f, 0xee, 0x24, 0x77,\n\t0x73, 0x72, 0x41, 0x77, 0xc3, 0xa7, 0xcb, 0xf2, 0x37, 0x49, 0x28, 0xc5, 0x7f, 0x3e, 0x40, 0x75,\n\t0xc8, 0x19, 0x96, 0x8a, 0x19, 0xb5, 0xf8, 0x6f, 0x57, 0xbb, 0xaf, 0xf8, 0xc5, 0xa1, 0xd2, 0xf4,\n\t0xf1, 0x72, 0x68, 0xb9, 0xfd, 0xb7, 0x04, 0xe4, 0x02, 0x31, 0xda, 0x82, 0xb4, 0x8d, 0xbd, 0x11,\n\t0x73, 0x97, 0x39, 0x4c, 0x0a, 0x09, 0x99, 0x8d, 0xa9, 0xdc, 0xb5, 0xb1, 0xc9, 0x28, 0xe0, 0xcb,\n\t0xe9, 0x98, 0x7e, 0x57, 0x83, 0x60, 0x8d, 0xdd, 0x6b, 0xac, 0xf1, 0x98, 0x98, 0x9e, 0x1b, 0x7c,\n\t0x57, 0x5f, 0x5e, 0xf3, 0xc5, 0xe8, 0x1a, 0xac, 0x7b, 0x0e, 0xd6, 0x8d, 0x18, 0x36, 0xcd, 0xb0,\n\t0x42, 0xa0, 0x08, 0xc1, 0x07, 0x70, 0x3e, 0xf0, 0xab, 0x11, 0x0f, 0xab, 0x23, 0xa2, 0x4d, 0x8d,\n\t0xb2, 0xec, 0xfd, 0xe2, 0x9c, 0x0f, 0xa8, 0xfb, 0xfa, 0xc0, 0xb6, 0xfc, 0xf7, 0x04, 0xac, 0x07,\n\t0x37, 0x31, 0x2d, 0x4c, 0x56, 0x0b, 0x00, 0x9b, 0xa6, 0xe5, 0x45, 0xd3, 0x35, 0x4f, 0xe5, 0x39,\n\t0xbb, 0x4a, 0x35, 0x34, 0x92, 0x23, 0x0e, 0xb6, 0xc7, 0x00, 0x53, 0xcd, 0xd2, 0xb4, 0x5d, 0x80,\n\t0x82, 0xff, 0xdb, 0x10, 0xfb, 0x81, 0x91, 0xdf, 0xdd, 0x81, 0x8b, 0xe8, 0x95, 0x0d, 0x6d, 0x42,\n\t0xe6, 0x84, 0x0c, 0x75, 0xd3, 0x7f, 0xf1, 0xe5, 0x83, 0xe0, 0x85, 0x25, 0x1d, 0xbe, 0xb0, 0x1c,\n\t0xfe, 0x0c, 0x36, 0x54, 0x6b, 0x3c, 0x1b, 0xee, 0xa1, 0x30, 0xf3, 0x7e, 0xe0, 0x7e, 0x91, 0xf8,\n\t0x0a, 0xa6, 0x2d, 0xe6, 0xff, 0x12, 0x89, 0x3f, 0x24, 0x53, 0x47, 0xdd, 0xc3, 0x3f, 0x26, 0xb7,\n\t0x8f, 0xb8, 0x69, 0x37, 0x58, 0xa9, 0x4c, 0x06, 0x06, 0x51, 0x69, 0xf4, 0xff, 0x0f, 0x00, 0x00,\n\t0xff, 0xff, 0x88, 0x17, 0xc1, 0xbe, 0x38, 0x1d, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: descriptor.proto\n\npackage descriptor\n\nimport (\n\tfmt \"fmt\"\n\tgithub_com_gogo_protobuf_proto \"github.com/gogo/protobuf/proto\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tsort \"sort\"\n\tstrconv \"strconv\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\nfunc (this *FileDescriptorSet) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&descriptor.FileDescriptorSet{\")\n\tif this.File != nil {\n\t\ts = append(s, \"File: \"+fmt.Sprintf(\"%#v\", this.File)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FileDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 16)\n\ts = append(s, \"&descriptor.FileDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Package != nil {\n\t\ts = append(s, \"Package: \"+valueToGoStringDescriptor(this.Package, \"string\")+\",\\n\")\n\t}\n\tif this.Dependency != nil {\n\t\ts = append(s, \"Dependency: \"+fmt.Sprintf(\"%#v\", this.Dependency)+\",\\n\")\n\t}\n\tif this.PublicDependency != nil {\n\t\ts = append(s, \"PublicDependency: \"+fmt.Sprintf(\"%#v\", this.PublicDependency)+\",\\n\")\n\t}\n\tif this.WeakDependency != nil {\n\t\ts = append(s, \"WeakDependency: \"+fmt.Sprintf(\"%#v\", this.WeakDependency)+\",\\n\")\n\t}\n\tif this.MessageType != nil {\n\t\ts = append(s, \"MessageType: \"+fmt.Sprintf(\"%#v\", this.MessageType)+\",\\n\")\n\t}\n\tif this.EnumType != nil {\n\t\ts = append(s, \"EnumType: \"+fmt.Sprintf(\"%#v\", this.EnumType)+\",\\n\")\n\t}\n\tif this.Service != nil {\n\t\ts = append(s, \"Service: \"+fmt.Sprintf(\"%#v\", this.Service)+\",\\n\")\n\t}\n\tif this.Extension != nil {\n\t\ts = append(s, \"Extension: \"+fmt.Sprintf(\"%#v\", this.Extension)+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.SourceCodeInfo != nil {\n\t\ts = append(s, \"SourceCodeInfo: \"+fmt.Sprintf(\"%#v\", this.SourceCodeInfo)+\",\\n\")\n\t}\n\tif this.Syntax != nil {\n\t\ts = append(s, \"Syntax: \"+valueToGoStringDescriptor(this.Syntax, \"string\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *DescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 14)\n\ts = append(s, \"&descriptor.DescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Field != nil {\n\t\ts = append(s, \"Field: \"+fmt.Sprintf(\"%#v\", this.Field)+\",\\n\")\n\t}\n\tif this.Extension != nil {\n\t\ts = append(s, \"Extension: \"+fmt.Sprintf(\"%#v\", this.Extension)+\",\\n\")\n\t}\n\tif this.NestedType != nil {\n\t\ts = append(s, \"NestedType: \"+fmt.Sprintf(\"%#v\", this.NestedType)+\",\\n\")\n\t}\n\tif this.EnumType != nil {\n\t\ts = append(s, \"EnumType: \"+fmt.Sprintf(\"%#v\", this.EnumType)+\",\\n\")\n\t}\n\tif this.ExtensionRange != nil {\n\t\ts = append(s, \"ExtensionRange: \"+fmt.Sprintf(\"%#v\", this.ExtensionRange)+\",\\n\")\n\t}\n\tif this.OneofDecl != nil {\n\t\ts = append(s, \"OneofDecl: \"+fmt.Sprintf(\"%#v\", this.OneofDecl)+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.ReservedRange != nil {\n\t\ts = append(s, \"ReservedRange: \"+fmt.Sprintf(\"%#v\", this.ReservedRange)+\",\\n\")\n\t}\n\tif this.ReservedName != nil {\n\t\ts = append(s, \"ReservedName: \"+fmt.Sprintf(\"%#v\", this.ReservedName)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *DescriptorProto_ExtensionRange) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&descriptor.DescriptorProto_ExtensionRange{\")\n\tif this.Start != nil {\n\t\ts = append(s, \"Start: \"+valueToGoStringDescriptor(this.Start, \"int32\")+\",\\n\")\n\t}\n\tif this.End != nil {\n\t\ts = append(s, \"End: \"+valueToGoStringDescriptor(this.End, \"int32\")+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *DescriptorProto_ReservedRange) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.DescriptorProto_ReservedRange{\")\n\tif this.Start != nil {\n\t\ts = append(s, \"Start: \"+valueToGoStringDescriptor(this.Start, \"int32\")+\",\\n\")\n\t}\n\tif this.End != nil {\n\t\ts = append(s, \"End: \"+valueToGoStringDescriptor(this.End, \"int32\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ExtensionRangeOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&descriptor.ExtensionRangeOptions{\")\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FieldDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 14)\n\ts = append(s, \"&descriptor.FieldDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Number != nil {\n\t\ts = append(s, \"Number: \"+valueToGoStringDescriptor(this.Number, \"int32\")+\",\\n\")\n\t}\n\tif this.Label != nil {\n\t\ts = append(s, \"Label: \"+valueToGoStringDescriptor(this.Label, \"FieldDescriptorProto_Label\")+\",\\n\")\n\t}\n\tif this.Type != nil {\n\t\ts = append(s, \"Type: \"+valueToGoStringDescriptor(this.Type, \"FieldDescriptorProto_Type\")+\",\\n\")\n\t}\n\tif this.TypeName != nil {\n\t\ts = append(s, \"TypeName: \"+valueToGoStringDescriptor(this.TypeName, \"string\")+\",\\n\")\n\t}\n\tif this.Extendee != nil {\n\t\ts = append(s, \"Extendee: \"+valueToGoStringDescriptor(this.Extendee, \"string\")+\",\\n\")\n\t}\n\tif this.DefaultValue != nil {\n\t\ts = append(s, \"DefaultValue: \"+valueToGoStringDescriptor(this.DefaultValue, \"string\")+\",\\n\")\n\t}\n\tif this.OneofIndex != nil {\n\t\ts = append(s, \"OneofIndex: \"+valueToGoStringDescriptor(this.OneofIndex, \"int32\")+\",\\n\")\n\t}\n\tif this.JsonName != nil {\n\t\ts = append(s, \"JsonName: \"+valueToGoStringDescriptor(this.JsonName, \"string\")+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *OneofDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.OneofDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *EnumDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&descriptor.EnumDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Value != nil {\n\t\ts = append(s, \"Value: \"+fmt.Sprintf(\"%#v\", this.Value)+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.ReservedRange != nil {\n\t\ts = append(s, \"ReservedRange: \"+fmt.Sprintf(\"%#v\", this.ReservedRange)+\",\\n\")\n\t}\n\tif this.ReservedName != nil {\n\t\ts = append(s, \"ReservedName: \"+fmt.Sprintf(\"%#v\", this.ReservedName)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *EnumDescriptorProto_EnumReservedRange) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.EnumDescriptorProto_EnumReservedRange{\")\n\tif this.Start != nil {\n\t\ts = append(s, \"Start: \"+valueToGoStringDescriptor(this.Start, \"int32\")+\",\\n\")\n\t}\n\tif this.End != nil {\n\t\ts = append(s, \"End: \"+valueToGoStringDescriptor(this.End, \"int32\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *EnumValueDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&descriptor.EnumValueDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Number != nil {\n\t\ts = append(s, \"Number: \"+valueToGoStringDescriptor(this.Number, \"int32\")+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ServiceDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&descriptor.ServiceDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.Method != nil {\n\t\ts = append(s, \"Method: \"+fmt.Sprintf(\"%#v\", this.Method)+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *MethodDescriptorProto) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 10)\n\ts = append(s, \"&descriptor.MethodDescriptorProto{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+valueToGoStringDescriptor(this.Name, \"string\")+\",\\n\")\n\t}\n\tif this.InputType != nil {\n\t\ts = append(s, \"InputType: \"+valueToGoStringDescriptor(this.InputType, \"string\")+\",\\n\")\n\t}\n\tif this.OutputType != nil {\n\t\ts = append(s, \"OutputType: \"+valueToGoStringDescriptor(this.OutputType, \"string\")+\",\\n\")\n\t}\n\tif this.Options != nil {\n\t\ts = append(s, \"Options: \"+fmt.Sprintf(\"%#v\", this.Options)+\",\\n\")\n\t}\n\tif this.ClientStreaming != nil {\n\t\ts = append(s, \"ClientStreaming: \"+valueToGoStringDescriptor(this.ClientStreaming, \"bool\")+\",\\n\")\n\t}\n\tif this.ServerStreaming != nil {\n\t\ts = append(s, \"ServerStreaming: \"+valueToGoStringDescriptor(this.ServerStreaming, \"bool\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FileOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 25)\n\ts = append(s, \"&descriptor.FileOptions{\")\n\tif this.JavaPackage != nil {\n\t\ts = append(s, \"JavaPackage: \"+valueToGoStringDescriptor(this.JavaPackage, \"string\")+\",\\n\")\n\t}\n\tif this.JavaOuterClassname != nil {\n\t\ts = append(s, \"JavaOuterClassname: \"+valueToGoStringDescriptor(this.JavaOuterClassname, \"string\")+\",\\n\")\n\t}\n\tif this.JavaMultipleFiles != nil {\n\t\ts = append(s, \"JavaMultipleFiles: \"+valueToGoStringDescriptor(this.JavaMultipleFiles, \"bool\")+\",\\n\")\n\t}\n\tif this.JavaGenerateEqualsAndHash != nil {\n\t\ts = append(s, \"JavaGenerateEqualsAndHash: \"+valueToGoStringDescriptor(this.JavaGenerateEqualsAndHash, \"bool\")+\",\\n\")\n\t}\n\tif this.JavaStringCheckUtf8 != nil {\n\t\ts = append(s, \"JavaStringCheckUtf8: \"+valueToGoStringDescriptor(this.JavaStringCheckUtf8, \"bool\")+\",\\n\")\n\t}\n\tif this.OptimizeFor != nil {\n\t\ts = append(s, \"OptimizeFor: \"+valueToGoStringDescriptor(this.OptimizeFor, \"FileOptions_OptimizeMode\")+\",\\n\")\n\t}\n\tif this.GoPackage != nil {\n\t\ts = append(s, \"GoPackage: \"+valueToGoStringDescriptor(this.GoPackage, \"string\")+\",\\n\")\n\t}\n\tif this.CcGenericServices != nil {\n\t\ts = append(s, \"CcGenericServices: \"+valueToGoStringDescriptor(this.CcGenericServices, \"bool\")+\",\\n\")\n\t}\n\tif this.JavaGenericServices != nil {\n\t\ts = append(s, \"JavaGenericServices: \"+valueToGoStringDescriptor(this.JavaGenericServices, \"bool\")+\",\\n\")\n\t}\n\tif this.PyGenericServices != nil {\n\t\ts = append(s, \"PyGenericServices: \"+valueToGoStringDescriptor(this.PyGenericServices, \"bool\")+\",\\n\")\n\t}\n\tif this.PhpGenericServices != nil {\n\t\ts = append(s, \"PhpGenericServices: \"+valueToGoStringDescriptor(this.PhpGenericServices, \"bool\")+\",\\n\")\n\t}\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.CcEnableArenas != nil {\n\t\ts = append(s, \"CcEnableArenas: \"+valueToGoStringDescriptor(this.CcEnableArenas, \"bool\")+\",\\n\")\n\t}\n\tif this.ObjcClassPrefix != nil {\n\t\ts = append(s, \"ObjcClassPrefix: \"+valueToGoStringDescriptor(this.ObjcClassPrefix, \"string\")+\",\\n\")\n\t}\n\tif this.CsharpNamespace != nil {\n\t\ts = append(s, \"CsharpNamespace: \"+valueToGoStringDescriptor(this.CsharpNamespace, \"string\")+\",\\n\")\n\t}\n\tif this.SwiftPrefix != nil {\n\t\ts = append(s, \"SwiftPrefix: \"+valueToGoStringDescriptor(this.SwiftPrefix, \"string\")+\",\\n\")\n\t}\n\tif this.PhpClassPrefix != nil {\n\t\ts = append(s, \"PhpClassPrefix: \"+valueToGoStringDescriptor(this.PhpClassPrefix, \"string\")+\",\\n\")\n\t}\n\tif this.PhpNamespace != nil {\n\t\ts = append(s, \"PhpNamespace: \"+valueToGoStringDescriptor(this.PhpNamespace, \"string\")+\",\\n\")\n\t}\n\tif this.PhpMetadataNamespace != nil {\n\t\ts = append(s, \"PhpMetadataNamespace: \"+valueToGoStringDescriptor(this.PhpMetadataNamespace, \"string\")+\",\\n\")\n\t}\n\tif this.RubyPackage != nil {\n\t\ts = append(s, \"RubyPackage: \"+valueToGoStringDescriptor(this.RubyPackage, \"string\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *MessageOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&descriptor.MessageOptions{\")\n\tif this.MessageSetWireFormat != nil {\n\t\ts = append(s, \"MessageSetWireFormat: \"+valueToGoStringDescriptor(this.MessageSetWireFormat, \"bool\")+\",\\n\")\n\t}\n\tif this.NoStandardDescriptorAccessor != nil {\n\t\ts = append(s, \"NoStandardDescriptorAccessor: \"+valueToGoStringDescriptor(this.NoStandardDescriptorAccessor, \"bool\")+\",\\n\")\n\t}\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.MapEntry != nil {\n\t\ts = append(s, \"MapEntry: \"+valueToGoStringDescriptor(this.MapEntry, \"bool\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FieldOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 11)\n\ts = append(s, \"&descriptor.FieldOptions{\")\n\tif this.Ctype != nil {\n\t\ts = append(s, \"Ctype: \"+valueToGoStringDescriptor(this.Ctype, \"FieldOptions_CType\")+\",\\n\")\n\t}\n\tif this.Packed != nil {\n\t\ts = append(s, \"Packed: \"+valueToGoStringDescriptor(this.Packed, \"bool\")+\",\\n\")\n\t}\n\tif this.Jstype != nil {\n\t\ts = append(s, \"Jstype: \"+valueToGoStringDescriptor(this.Jstype, \"FieldOptions_JSType\")+\",\\n\")\n\t}\n\tif this.Lazy != nil {\n\t\ts = append(s, \"Lazy: \"+valueToGoStringDescriptor(this.Lazy, \"bool\")+\",\\n\")\n\t}\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.Weak != nil {\n\t\ts = append(s, \"Weak: \"+valueToGoStringDescriptor(this.Weak, \"bool\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *OneofOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&descriptor.OneofOptions{\")\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *EnumOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&descriptor.EnumOptions{\")\n\tif this.AllowAlias != nil {\n\t\ts = append(s, \"AllowAlias: \"+valueToGoStringDescriptor(this.AllowAlias, \"bool\")+\",\\n\")\n\t}\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *EnumValueOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.EnumValueOptions{\")\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ServiceOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.ServiceOptions{\")\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *MethodOptions) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&descriptor.MethodOptions{\")\n\tif this.Deprecated != nil {\n\t\ts = append(s, \"Deprecated: \"+valueToGoStringDescriptor(this.Deprecated, \"bool\")+\",\\n\")\n\t}\n\tif this.IdempotencyLevel != nil {\n\t\ts = append(s, \"IdempotencyLevel: \"+valueToGoStringDescriptor(this.IdempotencyLevel, \"MethodOptions_IdempotencyLevel\")+\",\\n\")\n\t}\n\tif this.UninterpretedOption != nil {\n\t\ts = append(s, \"UninterpretedOption: \"+fmt.Sprintf(\"%#v\", this.UninterpretedOption)+\",\\n\")\n\t}\n\ts = append(s, \"XXX_InternalExtensions: \"+extensionToGoStringDescriptor(this)+\",\\n\")\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UninterpretedOption) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 11)\n\ts = append(s, \"&descriptor.UninterpretedOption{\")\n\tif this.Name != nil {\n\t\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\t}\n\tif this.IdentifierValue != nil {\n\t\ts = append(s, \"IdentifierValue: \"+valueToGoStringDescriptor(this.IdentifierValue, \"string\")+\",\\n\")\n\t}\n\tif this.PositiveIntValue != nil {\n\t\ts = append(s, \"PositiveIntValue: \"+valueToGoStringDescriptor(this.PositiveIntValue, \"uint64\")+\",\\n\")\n\t}\n\tif this.NegativeIntValue != nil {\n\t\ts = append(s, \"NegativeIntValue: \"+valueToGoStringDescriptor(this.NegativeIntValue, \"int64\")+\",\\n\")\n\t}\n\tif this.DoubleValue != nil {\n\t\ts = append(s, \"DoubleValue: \"+valueToGoStringDescriptor(this.DoubleValue, \"float64\")+\",\\n\")\n\t}\n\tif this.StringValue != nil {\n\t\ts = append(s, \"StringValue: \"+valueToGoStringDescriptor(this.StringValue, \"byte\")+\",\\n\")\n\t}\n\tif this.AggregateValue != nil {\n\t\ts = append(s, \"AggregateValue: \"+valueToGoStringDescriptor(this.AggregateValue, \"string\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UninterpretedOption_NamePart) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&descriptor.UninterpretedOption_NamePart{\")\n\tif this.NamePart != nil {\n\t\ts = append(s, \"NamePart: \"+valueToGoStringDescriptor(this.NamePart, \"string\")+\",\\n\")\n\t}\n\tif this.IsExtension != nil {\n\t\ts = append(s, \"IsExtension: \"+valueToGoStringDescriptor(this.IsExtension, \"bool\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *SourceCodeInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&descriptor.SourceCodeInfo{\")\n\tif this.Location != nil {\n\t\ts = append(s, \"Location: \"+fmt.Sprintf(\"%#v\", this.Location)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *SourceCodeInfo_Location) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&descriptor.SourceCodeInfo_Location{\")\n\tif this.Path != nil {\n\t\ts = append(s, \"Path: \"+fmt.Sprintf(\"%#v\", this.Path)+\",\\n\")\n\t}\n\tif this.Span != nil {\n\t\ts = append(s, \"Span: \"+fmt.Sprintf(\"%#v\", this.Span)+\",\\n\")\n\t}\n\tif this.LeadingComments != nil {\n\t\ts = append(s, \"LeadingComments: \"+valueToGoStringDescriptor(this.LeadingComments, \"string\")+\",\\n\")\n\t}\n\tif this.TrailingComments != nil {\n\t\ts = append(s, \"TrailingComments: \"+valueToGoStringDescriptor(this.TrailingComments, \"string\")+\",\\n\")\n\t}\n\tif this.LeadingDetachedComments != nil {\n\t\ts = append(s, \"LeadingDetachedComments: \"+fmt.Sprintf(\"%#v\", this.LeadingDetachedComments)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GeneratedCodeInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&descriptor.GeneratedCodeInfo{\")\n\tif this.Annotation != nil {\n\t\ts = append(s, \"Annotation: \"+fmt.Sprintf(\"%#v\", this.Annotation)+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GeneratedCodeInfo_Annotation) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&descriptor.GeneratedCodeInfo_Annotation{\")\n\tif this.Path != nil {\n\t\ts = append(s, \"Path: \"+fmt.Sprintf(\"%#v\", this.Path)+\",\\n\")\n\t}\n\tif this.SourceFile != nil {\n\t\ts = append(s, \"SourceFile: \"+valueToGoStringDescriptor(this.SourceFile, \"string\")+\",\\n\")\n\t}\n\tif this.Begin != nil {\n\t\ts = append(s, \"Begin: \"+valueToGoStringDescriptor(this.Begin, \"int32\")+\",\\n\")\n\t}\n\tif this.End != nil {\n\t\ts = append(s, \"End: \"+valueToGoStringDescriptor(this.End, \"int32\")+\",\\n\")\n\t}\n\tif this.XXX_unrecognized != nil {\n\t\ts = append(s, \"XXX_unrecognized:\"+fmt.Sprintf(\"%#v\", this.XXX_unrecognized)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc valueToGoStringDescriptor(v interface{}, typ string) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"func(v %v) *%v { return &v } ( %#v )\", typ, typ, pv)\n}\nfunc extensionToGoStringDescriptor(m github_com_gogo_protobuf_proto.Message) string {\n\te := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m)\n\tif e == nil {\n\t\treturn \"nil\"\n\t}\n\ts := \"proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{\"\n\tkeys := make([]int, 0, len(e))\n\tfor k := range e {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\tss := []string{}\n\tfor _, k := range keys {\n\t\tss = append(ss, strconv.Itoa(k)+\": \"+e[int32(k)].GoString())\n\t}\n\ts += strings.Join(ss, \",\") + \"})\"\n\treturn s\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage descriptor\n\nimport (\n\t\"strings\"\n)\n\nfunc (msg *DescriptorProto) GetMapFields() (*FieldDescriptorProto, *FieldDescriptorProto) {\n\tif !msg.GetOptions().GetMapEntry() {\n\t\treturn nil, nil\n\t}\n\treturn msg.GetField()[0], msg.GetField()[1]\n}\n\nfunc dotToUnderscore(r rune) rune {\n\tif r == '.' {\n\t\treturn '_'\n\t}\n\treturn r\n}\n\nfunc (field *FieldDescriptorProto) WireType() (wire int) {\n\tswitch *field.Type {\n\tcase FieldDescriptorProto_TYPE_DOUBLE:\n\t\treturn 1\n\tcase FieldDescriptorProto_TYPE_FLOAT:\n\t\treturn 5\n\tcase FieldDescriptorProto_TYPE_INT64:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_UINT64:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_INT32:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_UINT32:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_FIXED64:\n\t\treturn 1\n\tcase FieldDescriptorProto_TYPE_FIXED32:\n\t\treturn 5\n\tcase FieldDescriptorProto_TYPE_BOOL:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_STRING:\n\t\treturn 2\n\tcase FieldDescriptorProto_TYPE_GROUP:\n\t\treturn 2\n\tcase FieldDescriptorProto_TYPE_MESSAGE:\n\t\treturn 2\n\tcase FieldDescriptorProto_TYPE_BYTES:\n\t\treturn 2\n\tcase FieldDescriptorProto_TYPE_ENUM:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_SFIXED32:\n\t\treturn 5\n\tcase FieldDescriptorProto_TYPE_SFIXED64:\n\t\treturn 1\n\tcase FieldDescriptorProto_TYPE_SINT32:\n\t\treturn 0\n\tcase FieldDescriptorProto_TYPE_SINT64:\n\t\treturn 0\n\t}\n\tpanic(\"unreachable\")\n}\n\nfunc (field *FieldDescriptorProto) GetKeyUint64() (x uint64) {\n\tpacked := field.IsPacked()\n\twireType := field.WireType()\n\tfieldNumber := field.GetNumber()\n\tif packed {\n\t\twireType = 2\n\t}\n\tx = uint64(uint32(fieldNumber)<<3 | uint32(wireType))\n\treturn x\n}\n\nfunc (field *FieldDescriptorProto) GetKey3Uint64() (x uint64) {\n\tpacked := field.IsPacked3()\n\twireType := field.WireType()\n\tfieldNumber := field.GetNumber()\n\tif packed {\n\t\twireType = 2\n\t}\n\tx = uint64(uint32(fieldNumber)<<3 | uint32(wireType))\n\treturn x\n}\n\nfunc (field *FieldDescriptorProto) GetKey() []byte {\n\tx := field.GetKeyUint64()\n\ti := 0\n\tkeybuf := make([]byte, 0)\n\tfor i = 0; x > 127; i++ {\n\t\tkeybuf = append(keybuf, 0x80|uint8(x&0x7F))\n\t\tx >>= 7\n\t}\n\tkeybuf = append(keybuf, uint8(x))\n\treturn keybuf\n}\n\nfunc (field *FieldDescriptorProto) GetKey3() []byte {\n\tx := field.GetKey3Uint64()\n\ti := 0\n\tkeybuf := make([]byte, 0)\n\tfor i = 0; x > 127; i++ {\n\t\tkeybuf = append(keybuf, 0x80|uint8(x&0x7F))\n\t\tx >>= 7\n\t}\n\tkeybuf = append(keybuf, uint8(x))\n\treturn keybuf\n}\n\nfunc (desc *FileDescriptorSet) GetField(packageName, messageName, fieldName string) *FieldDescriptorProto {\n\tmsg := desc.GetMessage(packageName, messageName)\n\tif msg == nil {\n\t\treturn nil\n\t}\n\tfor _, field := range msg.GetField() {\n\t\tif field.GetName() == fieldName {\n\t\t\treturn field\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (file *FileDescriptorProto) GetMessage(typeName string) *DescriptorProto {\n\tfor _, msg := range file.GetMessageType() {\n\t\tif msg.GetName() == typeName {\n\t\t\treturn msg\n\t\t}\n\t\tnes := file.GetNestedMessage(msg, strings.TrimPrefix(typeName, msg.GetName()+\".\"))\n\t\tif nes != nil {\n\t\t\treturn nes\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (file *FileDescriptorProto) GetNestedMessage(msg *DescriptorProto, typeName string) *DescriptorProto {\n\tfor _, nes := range msg.GetNestedType() {\n\t\tif nes.GetName() == typeName {\n\t\t\treturn nes\n\t\t}\n\t\tres := file.GetNestedMessage(nes, strings.TrimPrefix(typeName, nes.GetName()+\".\"))\n\t\tif res != nil {\n\t\t\treturn res\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (desc *FileDescriptorSet) GetMessage(packageName string, typeName string) *DescriptorProto {\n\tfor _, file := range desc.GetFile() {\n\t\tif strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, msg := range file.GetMessageType() {\n\t\t\tif msg.GetName() == typeName {\n\t\t\t\treturn msg\n\t\t\t}\n\t\t}\n\t\tfor _, msg := range file.GetMessageType() {\n\t\t\tfor _, nes := range msg.GetNestedType() {\n\t\t\t\tif nes.GetName() == typeName {\n\t\t\t\t\treturn nes\n\t\t\t\t}\n\t\t\t\tif msg.GetName()+\".\"+nes.GetName() == typeName {\n\t\t\t\t\treturn nes\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (desc *FileDescriptorSet) IsProto3(packageName string, typeName string) bool {\n\tfor _, file := range desc.GetFile() {\n\t\tif strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, msg := range file.GetMessageType() {\n\t\t\tif msg.GetName() == typeName {\n\t\t\t\treturn file.GetSyntax() == \"proto3\"\n\t\t\t}\n\t\t}\n\t\tfor _, msg := range file.GetMessageType() {\n\t\t\tfor _, nes := range msg.GetNestedType() {\n\t\t\t\tif nes.GetName() == typeName {\n\t\t\t\t\treturn file.GetSyntax() == \"proto3\"\n\t\t\t\t}\n\t\t\t\tif msg.GetName()+\".\"+nes.GetName() == typeName {\n\t\t\t\t\treturn file.GetSyntax() == \"proto3\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (msg *DescriptorProto) IsExtendable() bool {\n\treturn len(msg.GetExtensionRange()) > 0\n}\n\nfunc (desc *FileDescriptorSet) FindExtension(packageName string, typeName string, fieldName string) (extPackageName string, field *FieldDescriptorProto) {\n\tparent := desc.GetMessage(packageName, typeName)\n\tif parent == nil {\n\t\treturn \"\", nil\n\t}\n\tif !parent.IsExtendable() {\n\t\treturn \"\", nil\n\t}\n\textendee := \".\" + packageName + \".\" + typeName\n\tfor _, file := range desc.GetFile() {\n\t\tfor _, ext := range file.GetExtension() {\n\t\t\tif strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) {\n\t\t\t\tif !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ext.GetExtendee() != extendee {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ext.GetName() == fieldName {\n\t\t\t\treturn file.GetPackage(), ext\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", nil\n}\n\nfunc (desc *FileDescriptorSet) FindExtensionByFieldNumber(packageName string, typeName string, fieldNum int32) (extPackageName string, field *FieldDescriptorProto) {\n\tparent := desc.GetMessage(packageName, typeName)\n\tif parent == nil {\n\t\treturn \"\", nil\n\t}\n\tif !parent.IsExtendable() {\n\t\treturn \"\", nil\n\t}\n\textendee := \".\" + packageName + \".\" + typeName\n\tfor _, file := range desc.GetFile() {\n\t\tfor _, ext := range file.GetExtension() {\n\t\t\tif strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) {\n\t\t\t\tif !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ext.GetExtendee() != extendee {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ext.GetNumber() == fieldNum {\n\t\t\t\treturn file.GetPackage(), ext\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", nil\n}\n\nfunc (desc *FileDescriptorSet) FindMessage(packageName string, typeName string, fieldName string) (msgPackageName string, msgName string) {\n\tparent := desc.GetMessage(packageName, typeName)\n\tif parent == nil {\n\t\treturn \"\", \"\"\n\t}\n\tfield := parent.GetFieldDescriptor(fieldName)\n\tif field == nil {\n\t\tvar extPackageName string\n\t\textPackageName, field = desc.FindExtension(packageName, typeName, fieldName)\n\t\tif field == nil {\n\t\t\treturn \"\", \"\"\n\t\t}\n\t\tpackageName = extPackageName\n\t}\n\ttypeNames := strings.Split(field.GetTypeName(), \".\")\n\tif len(typeNames) == 1 {\n\t\tmsg := desc.GetMessage(packageName, typeName)\n\t\tif msg == nil {\n\t\t\treturn \"\", \"\"\n\t\t}\n\t\treturn packageName, msg.GetName()\n\t}\n\tif len(typeNames) > 2 {\n\t\tfor i := 1; i < len(typeNames)-1; i++ {\n\t\t\tpackageName = strings.Join(typeNames[1:len(typeNames)-i], \".\")\n\t\t\ttypeName = strings.Join(typeNames[len(typeNames)-i:], \".\")\n\t\t\tmsg := desc.GetMessage(packageName, typeName)\n\t\t\tif msg != nil {\n\t\t\t\ttypeNames := strings.Split(msg.GetName(), \".\")\n\t\t\t\tif len(typeNames) == 1 {\n\t\t\t\t\treturn packageName, msg.GetName()\n\t\t\t\t}\n\t\t\t\treturn strings.Join(typeNames[1:len(typeNames)-1], \".\"), typeNames[len(typeNames)-1]\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", \"\"\n}\n\nfunc (msg *DescriptorProto) GetFieldDescriptor(fieldName string) *FieldDescriptorProto {\n\tfor _, field := range msg.GetField() {\n\t\tif field.GetName() == fieldName {\n\t\t\treturn field\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (desc *FileDescriptorSet) GetEnum(packageName string, typeName string) *EnumDescriptorProto {\n\tfor _, file := range desc.GetFile() {\n\t\tif strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, enum := range file.GetEnumType() {\n\t\t\tif enum.GetName() == typeName {\n\t\t\t\treturn enum\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (f *FieldDescriptorProto) IsEnum() bool {\n\treturn *f.Type == FieldDescriptorProto_TYPE_ENUM\n}\n\nfunc (f *FieldDescriptorProto) IsMessage() bool {\n\treturn *f.Type == FieldDescriptorProto_TYPE_MESSAGE\n}\n\nfunc (f *FieldDescriptorProto) IsBytes() bool {\n\treturn *f.Type == FieldDescriptorProto_TYPE_BYTES\n}\n\nfunc (f *FieldDescriptorProto) IsRepeated() bool {\n\treturn f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REPEATED\n}\n\nfunc (f *FieldDescriptorProto) IsString() bool {\n\treturn *f.Type == FieldDescriptorProto_TYPE_STRING\n}\n\nfunc (f *FieldDescriptorProto) IsBool() bool {\n\treturn *f.Type == FieldDescriptorProto_TYPE_BOOL\n}\n\nfunc (f *FieldDescriptorProto) IsRequired() bool {\n\treturn f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REQUIRED\n}\n\nfunc (f *FieldDescriptorProto) IsPacked() bool {\n\treturn f.Options != nil && f.GetOptions().GetPacked()\n}\n\nfunc (f *FieldDescriptorProto) IsPacked3() bool {\n\tif f.IsRepeated() && f.IsScalar() {\n\t\tif f.Options == nil || f.GetOptions().Packed == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn f.Options != nil && f.GetOptions().GetPacked()\n\t}\n\treturn false\n}\n\nfunc (m *DescriptorProto) HasExtension() bool {\n\treturn len(m.ExtensionRange) > 0\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage sortkeys\n\nimport (\n\t\"sort\"\n)\n\nfunc Strings(l []string) {\n\tsort.Strings(l)\n}\n\nfunc Float64s(l []float64) {\n\tsort.Float64s(l)\n}\n\nfunc Float32s(l []float32) {\n\tsort.Sort(Float32Slice(l))\n}\n\nfunc Int64s(l []int64) {\n\tsort.Sort(Int64Slice(l))\n}\n\nfunc Int32s(l []int32) {\n\tsort.Sort(Int32Slice(l))\n}\n\nfunc Uint64s(l []uint64) {\n\tsort.Sort(Uint64Slice(l))\n}\n\nfunc Uint32s(l []uint32) {\n\tsort.Sort(Uint32Slice(l))\n}\n\nfunc Bools(l []bool) {\n\tsort.Sort(BoolSlice(l))\n}\n\ntype BoolSlice []bool\n\nfunc (p BoolSlice) Len() int           { return len(p) }\nfunc (p BoolSlice) Less(i, j int) bool { return p[j] }\nfunc (p BoolSlice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Int64Slice []int64\n\nfunc (p Int64Slice) Len() int           { return len(p) }\nfunc (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Int64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Int32Slice []int32\n\nfunc (p Int32Slice) Len() int           { return len(p) }\nfunc (p Int32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Int32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Uint64Slice []uint64\n\nfunc (p Uint64Slice) Len() int           { return len(p) }\nfunc (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Uint64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Uint32Slice []uint32\n\nfunc (p Uint32Slice) Len() int           { return len(p) }\nfunc (p Uint32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Uint32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Float32Slice []float32\n\nfunc (p Float32Slice) Len() int           { return len(p) }\nfunc (p Float32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Float32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n"
  },
  {
    "path": "vendor/github.com/golang/glog/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/golang/glog/README.md",
    "content": "# glog\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/golang/glog)](https://pkg.go.dev/github.com/golang/glog)\n\nLeveled execution logs for Go.\n\nThis is an efficient pure Go implementation of leveled logs in the\nmanner of the open source C++ package [_glog_](https://github.com/google/glog).\n\nBy binding methods to booleans it is possible to use the log package without paying the expense of evaluating the arguments to the log. Through the `-vmodule` flag, the package also provides fine-grained\ncontrol over logging at the file level.\n\nThe comment from `glog.go` introduces the ideas:\n\nPackage _glog_ implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.  It provides the functions Info, Warning, Error, Fatal, plus formatting variants such as Infof. It also provides V-style loggingcontrolled by the `-v` and `-vmodule=file=2` flags.\n\t\nBasic examples:\n\n```go\nglog.Info(\"Prepare to repel boarders\")\n\t\nglog.Fatalf(\"Initialization failed: %s\", err)\n```\n\t\nSee the documentation for the V function for an explanation of these examples:\n\n```go\nif glog.V(2) {\n\tglog.Info(\"Starting transaction...\")\n}\nglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n```\n\nThe repository contains an open source version of the log package used inside Google. The master copy of the source lives inside Google, not here. The code in this repo is for export only and is not itself under development. Feature requests will be ignored.\n\nSend bug reports to golang-nuts@googlegroups.com.\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.\n// It provides functions that have a name matched by regex:\n//\n//\t(Info|Warning|Error|Fatal)(Context)?(Depth)?(f)?\n//\n// If Context is present, function takes context.Context argument. The\n// context is used to pass through the Trace Context to log sinks that can make use\n// of it.\n// It is recommended to use the context variant of the functions over the non-context\n// variants if a context is available to make sure the Trace Contexts are present\n// in logs.\n//\n// If Depth is present, this function calls log from a different depth in the call stack.\n// This enables a callee to emit logs that use the callsite information of its caller\n// or any other callers in the stack. When depth == 0, the original callee's line\n// information is emitted. When depth > 0, depth frames are skipped in the call stack\n// and the final frame is treated like the original callee to Info.\n//\n// If 'f' is present, function formats according to a format specifier.\n//\n// This package also provides V-style logging controlled by the -v and -vmodule=file=2 flags.\n//\n// Basic examples:\n//\n//\tglog.Info(\"Prepare to repel boarders\")\n//\n//\tglog.Fatalf(\"Initialization failed: %s\", err)\n//\n// See the documentation for the V function for an explanation of these examples:\n//\n//\tif glog.V(2) {\n//\t\tglog.Info(\"Starting transaction...\")\n//\t}\n//\n//\tglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n//\n// Log output is buffered and written periodically using Flush. Programs\n// should call Flush before exiting to guarantee all log output is written.\n//\n// By default, all log statements write to files in a temporary directory.\n// This package provides several flags that modify this behavior.\n// As a result, flag.Parse must be called before any logging is done.\n//\n//\t-logtostderr=false\n//\t\tLogs are written to standard error instead of to files.\n//\t-alsologtostderr=false\n//\t\tLogs are written to standard error as well as to files.\n//\t-stderrthreshold=ERROR\n//\t\tLog events at or above this severity are logged to standard\n//\t\terror as well as to files.\n//\t-log_dir=\"\"\n//\t\tLog files will be written to this directory instead of the\n//\t\tdefault temporary directory.\n//\n// Other flags provide aids to debugging.\n//\n//\t-log_backtrace_at=\"\"\n//\t\tA comma-separated list of file and line numbers holding a logging\n//\t\tstatement, such as\n//\t\t\t-log_backtrace_at=gopherflakes.go:234\n//\t\tA stack trace will be written to the Info log whenever execution\n//\t\thits one of these statements. (Unlike with -vmodule, the \".go\"\n//\t\tmust be present.)\n//\t-v=0\n//\t\tEnable V-leveled logging at the specified level.\n//\t-vmodule=\"\"\n//\t\tThe syntax of the argument is a comma-separated list of pattern=N,\n//\t\twhere pattern is a literal file name (minus the \".go\" suffix) or\n//\t\t\"glob\" pattern and N is a V level. For instance,\n//\t\t\t-vmodule=gopher*=3\n//\t\tsets the V level to 3 in all Go files whose names begin with \"gopher\",\n//\t\tand\n//\t\t\t-vmodule=/path/to/glog/glog_test=1\n//\t\tsets the V level to 1 in the Go file /path/to/glog/glog_test.go.\n//\t\tIf a glob pattern contains a slash, it is matched against the full path,\n//\t\tand the file name. Otherwise, the pattern is\n//\t\tmatched only against the file's basename.  When both -vmodule and -v\n//\t\tare specified, the -vmodule values take precedence for the specified\n//\t\tmodules.\npackage glog\n\n// This file contains the parts of the log package that are shared among all\n// implementations (file, envelope, and appengine).\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\tstdLog \"log\"\n\t\"os\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"runtime/pprof\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n\t\"github.com/golang/glog/internal/stackdump\"\n)\n\nvar timeNow = time.Now // Stubbed out for testing.\n\n// MaxSize is the maximum size of a log file in bytes.\nvar MaxSize uint64 = 1024 * 1024 * 1800\n\n// ErrNoLog is the error we return if no log file has yet been created\n// for the specified log type.\nvar ErrNoLog = errors.New(\"log file not yet created\")\n\n// OutputStats tracks the number of output lines and bytes written.\ntype OutputStats struct {\n\tlines int64\n\tbytes int64\n}\n\n// Lines returns the number of lines written.\nfunc (s *OutputStats) Lines() int64 {\n\treturn atomic.LoadInt64(&s.lines)\n}\n\n// Bytes returns the number of bytes written.\nfunc (s *OutputStats) Bytes() int64 {\n\treturn atomic.LoadInt64(&s.bytes)\n}\n\n// Stats tracks the number of lines of output and number of bytes\n// per severity level. Values must be read with atomic.LoadInt64.\nvar Stats struct {\n\tInfo, Warning, Error OutputStats\n}\n\nvar severityStats = [...]*OutputStats{\n\tlogsink.Info:    &Stats.Info,\n\tlogsink.Warning: &Stats.Warning,\n\tlogsink.Error:   &Stats.Error,\n\tlogsink.Fatal:   nil,\n}\n\n// Level specifies a level of verbosity for V logs.  The -v flag is of type\n// Level and should be modified only through the flag.Value interface.\ntype Level int32\n\nvar metaPool sync.Pool // Pool of *logsink.Meta.\n\n// metaPoolGet returns a *logsink.Meta from metaPool as both an interface and a\n// pointer, allocating a new one if necessary.  (Returning the interface value\n// directly avoids an allocation if there was an existing pointer in the pool.)\nfunc metaPoolGet() (any, *logsink.Meta) {\n\tif metai := metaPool.Get(); metai != nil {\n\t\treturn metai, metai.(*logsink.Meta)\n\t}\n\tmeta := new(logsink.Meta)\n\treturn meta, meta\n}\n\ntype stack bool\n\nconst (\n\tnoStack   = stack(false)\n\twithStack = stack(true)\n)\n\nfunc appendBacktrace(depth int, format string, args []any) (string, []any) {\n\t// Capture a backtrace as a stackdump.Stack (both text and PC slice).\n\t// Structured log sinks can extract the backtrace in whichever format they\n\t// prefer (PCs or text), and Text sinks will include it as just another part\n\t// of the log message.\n\t//\n\t// Use depth instead of depth+1 so that the backtrace always includes the\n\t// log function itself - otherwise the reason for the trace appearing in the\n\t// log may not be obvious to the reader.\n\tdump := stackdump.Caller(depth)\n\n\t// Add an arg and an entry in the format string for the stack dump.\n\t//\n\t// Copy the \"args\" slice to avoid a rare but serious aliasing bug\n\t// (corrupting the caller's slice if they passed it to a non-Fatal call\n\t// using \"...\").\n\tformat = format + \"\\n\\n%v\\n\"\n\targs = append(append([]any(nil), args...), dump)\n\n\treturn format, args\n}\n\n// logf acts as ctxlogf, but doesn't expect a context.\nfunc logf(depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {\n\tctxlogf(nil, depth+1, severity, verbose, stack, format, args...)\n}\n\n// ctxlogf writes a log message for a log function call (or log function wrapper)\n// at the given depth in the current goroutine's stack.\nfunc ctxlogf(ctx context.Context, depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {\n\tnow := timeNow()\n\t_, file, line, ok := runtime.Caller(depth + 1)\n\tif !ok {\n\t\tfile = \"???\"\n\t\tline = 1\n\t}\n\n\tif stack == withStack || backtraceAt(file, line) {\n\t\tformat, args = appendBacktrace(depth+1, format, args)\n\t}\n\n\tmetai, meta := metaPoolGet()\n\t*meta = logsink.Meta{\n\t\tContext:  ctx,\n\t\tTime:     now,\n\t\tFile:     file,\n\t\tLine:     line,\n\t\tDepth:    depth + 1,\n\t\tSeverity: severity,\n\t\tVerbose:  verbose,\n\t\tThread:   int64(pid),\n\t}\n\tsinkf(meta, format, args...)\n\t// Clear pointer fields so they can be garbage collected early.\n\tmeta.Context = nil\n\tmeta.Stack = nil\n\tmetaPool.Put(metai)\n}\n\nvar sinkErrOnce sync.Once\n\nfunc sinkf(meta *logsink.Meta, format string, args ...any) {\n\tmeta.Depth++\n\tn, err := logsink.Printf(meta, format, args...)\n\tif stats := severityStats[meta.Severity]; stats != nil {\n\t\tatomic.AddInt64(&stats.lines, 1)\n\t\tatomic.AddInt64(&stats.bytes, int64(n))\n\t}\n\n\tif err != nil {\n\t\t// Best-effort to generate a reasonable Fatalf-like\n\t\t// error message in all sinks that are still here for\n\t\t// the first goroutine that comes here and terminate\n\t\t// the process.\n\t\tsinkErrOnce.Do(func() {\n\t\t\tm := &logsink.Meta{}\n\t\t\tm.Time = timeNow()\n\t\t\tm.Severity = logsink.Fatal\n\t\t\tm.Thread = int64(pid)\n\t\t\t_, m.File, m.Line, _ = runtime.Caller(0)\n\t\t\tformat, args := appendBacktrace(1, \"log: exiting because of error writing previous log to sinks: %v\", []any{err})\n\t\t\tlogsink.Printf(m, format, args...)\n\t\t\tflushAndAbort()\n\t\t})\n\t}\n}\n\n// CopyStandardLogTo arranges for messages written to the Go \"log\" package's\n// default logs to also appear in the Google logs for the named and lower\n// severities.  Subsequent changes to the standard log's default output location\n// or format may break this behavior.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\".  If the name is not\n// recognized, CopyStandardLogTo panics.\nfunc CopyStandardLogTo(name string) {\n\tsev, err := logsink.ParseSeverity(name)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"log.CopyStandardLogTo(%q): %v\", name, err))\n\t}\n\t// Set a log format that captures the user's file and line:\n\t//   d.go:23: message\n\tstdLog.SetFlags(stdLog.Lshortfile)\n\tstdLog.SetOutput(logBridge(sev))\n}\n\n// NewStandardLogger returns a Logger that writes to the Google logs for the\n// named and lower severities.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\". If the name is not\n// recognized, NewStandardLogger panics.\nfunc NewStandardLogger(name string) *stdLog.Logger {\n\tsev, err := logsink.ParseSeverity(name)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"log.NewStandardLogger(%q): %v\", name, err))\n\t}\n\treturn stdLog.New(logBridge(sev), \"\", stdLog.Lshortfile)\n}\n\n// logBridge provides the Write method that enables CopyStandardLogTo to connect\n// Go's standard logs to the logs provided by this package.\ntype logBridge logsink.Severity\n\n// Write parses the standard logging line and passes its components to the\n// logger for severity(lb).\nfunc (lb logBridge) Write(b []byte) (n int, err error) {\n\tvar (\n\t\tfile = \"???\"\n\t\tline = 1\n\t\ttext string\n\t)\n\t// Split \"d.go:23: message\" into \"d.go\", \"23\", and \"message\".\n\tif parts := bytes.SplitN(b, []byte{':'}, 3); len(parts) != 3 || len(parts[0]) < 1 || len(parts[2]) < 1 {\n\t\ttext = fmt.Sprintf(\"bad log format: %s\", b)\n\t} else {\n\t\tfile = string(parts[0])\n\t\ttext = string(parts[2][1:]) // skip leading space\n\t\tline, err = strconv.Atoi(string(parts[1]))\n\t\tif err != nil {\n\t\t\ttext = fmt.Sprintf(\"bad line number: %s\", b)\n\t\t\tline = 1\n\t\t}\n\t}\n\n\t// The depth below hard-codes details of how stdlog gets here.  The alternative would be to walk\n\t// up the stack looking for src/log/log.go but that seems like it would be\n\t// unfortunately slow.\n\tconst stdLogDepth = 4\n\n\tmetai, meta := metaPoolGet()\n\t*meta = logsink.Meta{\n\t\tTime:     timeNow(),\n\t\tFile:     file,\n\t\tLine:     line,\n\t\tDepth:    stdLogDepth,\n\t\tSeverity: logsink.Severity(lb),\n\t\tThread:   int64(pid),\n\t}\n\n\tformat := \"%s\"\n\targs := []any{text}\n\tif backtraceAt(file, line) {\n\t\tformat, args = appendBacktrace(meta.Depth, format, args)\n\t}\n\n\tsinkf(meta, format, args...)\n\tmetaPool.Put(metai)\n\n\treturn len(b), nil\n}\n\n// defaultFormat returns a fmt.Printf format specifier that formats its\n// arguments as if they were passed to fmt.Print.\nfunc defaultFormat(args []any) string {\n\tn := len(args)\n\tswitch n {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1:\n\t\treturn \"%v\"\n\t}\n\n\tb := make([]byte, 0, n*3-1)\n\twasString := true // Suppress leading space.\n\tfor _, arg := range args {\n\t\tisString := arg != nil && reflect.TypeOf(arg).Kind() == reflect.String\n\t\tif wasString || isString {\n\t\t\tb = append(b, \"%v\"...)\n\t\t} else {\n\t\t\tb = append(b, \" %v\"...)\n\t\t}\n\t\twasString = isString\n\t}\n\treturn string(b)\n}\n\n// lnFormat returns a fmt.Printf format specifier that formats its arguments\n// as if they were passed to fmt.Println.\nfunc lnFormat(args []any) string {\n\tif len(args) == 0 {\n\t\treturn \"\\n\"\n\t}\n\n\tb := make([]byte, 0, len(args)*3)\n\tfor range args {\n\t\tb = append(b, \"%v \"...)\n\t}\n\tb[len(b)-1] = '\\n' // Replace the last space with a newline.\n\treturn string(b)\n}\n\n// Verbose is a boolean type that implements Infof (like Printf) etc.\n// See the documentation of V for more information.\ntype Verbose bool\n\n// V reports whether verbosity at the call site is at least the requested level.\n// The returned value is a boolean of type Verbose, which implements Info, Infoln\n// and Infof. These methods will write to the Info log if called.\n// Thus, one may write either\n//\n//\tif glog.V(2) { glog.Info(\"log this\") }\n//\n// or\n//\n//\tglog.V(2).Info(\"log this\")\n//\n// The second form is shorter but the first is cheaper if logging is off because it does\n// not evaluate its arguments.\n//\n// Whether an individual call to V generates a log record depends on the setting of\n// the -v and --vmodule flags; both are off by default. If the level in the call to\n// V is at most the value of -v, or of -vmodule for the source file containing the\n// call, the V call will log.\nfunc V(level Level) Verbose {\n\treturn VDepth(1, level)\n}\n\n// VDepth acts as V but uses depth to determine which call frame to check vmodule for.\n// VDepth(0, level) is the same as V(level).\nfunc VDepth(depth int, level Level) Verbose {\n\treturn Verbose(verboseEnabled(depth+1, level))\n}\n\n// Info is equivalent to the global Info function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Info(args ...any) {\n\tv.InfoDepth(1, args...)\n}\n\n// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepth(depth int, args ...any) {\n\tif v {\n\t\tlogf(depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)\n\t}\n}\n\n// InfoDepthf is equivalent to the global InfoDepthf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepthf(depth int, format string, args ...any) {\n\tif v {\n\t\tlogf(depth+1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// Infoln is equivalent to the global Infoln function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infoln(args ...any) {\n\tif v {\n\t\tlogf(1, logsink.Info, true, noStack, lnFormat(args), args...)\n\t}\n}\n\n// Infof is equivalent to the global Infof function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infof(format string, args ...any) {\n\tif v {\n\t\tlogf(1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// InfoContext is equivalent to the global InfoContext function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContext(ctx context.Context, args ...any) {\n\tv.InfoContextDepth(ctx, 1, args...)\n}\n\n// InfoContextf is equivalent to the global InfoContextf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextf(ctx context.Context, format string, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, 1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// InfoContextDepth is equivalent to the global InfoContextDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextDepth(ctx context.Context, depth int, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)\n\t}\n}\n\n// InfoContextDepthf is equivalent to the global InfoContextDepthf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, depth+1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// Info logs to the INFO log.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Info(args ...any) {\n\tInfoDepth(1, args...)\n}\n\n// InfoDepth calls Info from a different depth in the call stack.\n// This enables a callee to emit logs that use the callsite information of its caller\n// or any other callers in the stack. When depth == 0, the original callee's line\n// information is emitted. When depth > 0, depth frames are skipped in the call stack\n// and the final frame is treated like the original callee to Info.\nfunc InfoDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)\n}\n\n// InfoDepthf acts as InfoDepth but with format string.\nfunc InfoDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Info, false, noStack, format, args...)\n}\n\n// Infoln logs to the INFO log.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Infoln(args ...any) {\n\tlogf(1, logsink.Info, false, noStack, lnFormat(args), args...)\n}\n\n// Infof logs to the INFO log.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Infof(format string, args ...any) {\n\tlogf(1, logsink.Info, false, noStack, format, args...)\n}\n\n// InfoContext is like [Info], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContext(ctx context.Context, args ...any) {\n\tInfoContextDepth(ctx, 1, args...)\n}\n\n// InfoContextf is like [Infof], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Info, false, noStack, format, args...)\n}\n\n// InfoContextDepth is like [InfoDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)\n}\n\n// InfoContextDepthf is like [InfoDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Info, false, noStack, format, args...)\n}\n\n// Warning logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Warning(args ...any) {\n\tWarningDepth(1, args...)\n}\n\n// WarningDepth acts as Warning but uses depth to determine which call frame to log.\n// WarningDepth(0, \"msg\") is the same as Warning(\"msg\").\nfunc WarningDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)\n}\n\n// WarningDepthf acts as Warningf but uses depth to determine which call frame to log.\n// WarningDepthf(0, \"msg\") is the same as Warningf(\"msg\").\nfunc WarningDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Warning, false, noStack, format, args...)\n}\n\n// Warningln logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Warningln(args ...any) {\n\tlogf(1, logsink.Warning, false, noStack, lnFormat(args), args...)\n}\n\n// Warningf logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Warningf(format string, args ...any) {\n\tlogf(1, logsink.Warning, false, noStack, format, args...)\n}\n\n// WarningContext is like [Warning], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContext(ctx context.Context, args ...any) {\n\tWarningContextDepth(ctx, 1, args...)\n}\n\n// WarningContextf is like [Warningf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Warning, false, noStack, format, args...)\n}\n\n// WarningContextDepth is like [WarningDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)\n}\n\n// WarningContextDepthf is like [WarningDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Warning, false, noStack, format, args...)\n}\n\n// Error logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Error(args ...any) {\n\tErrorDepth(1, args...)\n}\n\n// ErrorDepth acts as Error but uses depth to determine which call frame to log.\n// ErrorDepth(0, \"msg\") is the same as Error(\"msg\").\nfunc ErrorDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)\n}\n\n// ErrorDepthf acts as Errorf but uses depth to determine which call frame to log.\n// ErrorDepthf(0, \"msg\") is the same as Errorf(\"msg\").\nfunc ErrorDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Error, false, noStack, format, args...)\n}\n\n// Errorln logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Errorln(args ...any) {\n\tlogf(1, logsink.Error, false, noStack, lnFormat(args), args...)\n}\n\n// Errorf logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Errorf(format string, args ...any) {\n\tlogf(1, logsink.Error, false, noStack, format, args...)\n}\n\n// ErrorContext is like [Error], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContext(ctx context.Context, args ...any) {\n\tErrorContextDepth(ctx, 1, args...)\n}\n\n// ErrorContextf is like [Errorf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Error, false, noStack, format, args...)\n}\n\n// ErrorContextDepth is like [ErrorDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)\n}\n\n// ErrorContextDepthf is like [ErrorDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Error, false, noStack, format, args...)\n}\n\nfunc ctxfatalf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Fatal, false, withStack, format, args...)\n\tflushAndAbort()\n}\n\nfunc flushAndAbort() {\n\tsinks.file.Flush()\n\n\terr := abortProcess() // Should not return.\n\n\t// Failed to abort the process using signals.  Dump a stack trace and exit.\n\tErrorf(\"abortProcess returned unexpectedly: %v\", err)\n\tsinks.file.Flush()\n\tpprof.Lookup(\"goroutine\").WriteTo(os.Stderr, 1)\n\tos.Exit(2) // Exit with the same code as the default SIGABRT handler.\n}\n\nfunc fatalf(depth int, format string, args ...any) {\n\tctxfatalf(nil, depth+1, format, args...)\n}\n\n// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Fatal(args ...any) {\n\tFatalDepth(1, args...)\n}\n\n// FatalDepth acts as Fatal but uses depth to determine which call frame to log.\n// FatalDepth(0, \"msg\") is the same as Fatal(\"msg\").\nfunc FatalDepth(depth int, args ...any) {\n\tfatalf(depth+1, defaultFormat(args), args...)\n}\n\n// FatalDepthf acts as Fatalf but uses depth to determine which call frame to log.\n// FatalDepthf(0, \"msg\") is the same as Fatalf(\"msg\").\nfunc FatalDepthf(depth int, format string, args ...any) {\n\tfatalf(depth+1, format, args...)\n}\n\n// Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Fatalln(args ...any) {\n\tfatalf(1, lnFormat(args), args...)\n}\n\n// Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Fatalf(format string, args ...any) {\n\tfatalf(1, format, args...)\n}\n\n// FatalContext is like [Fatal], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContext(ctx context.Context, args ...any) {\n\tFatalContextDepth(ctx, 1, args...)\n}\n\n// FatalContextf is like [Fatalf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContextf(ctx context.Context, format string, args ...any) {\n\tctxfatalf(ctx, 1, format, args...)\n}\n\n// FatalContextDepth is like [FatalDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxfatalf(ctx, depth+1, defaultFormat(args), args...)\n}\n\n// FatalContextDepthf is like [FatalDepthf], but with an extra [context.Context] parameter.\nfunc FatalContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxfatalf(ctx, depth+1, format, args...)\n}\n\nfunc ctxexitf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Fatal, false, noStack, format, args...)\n\tsinks.file.Flush()\n\tos.Exit(1)\n}\n\nfunc exitf(depth int, format string, args ...any) {\n\tctxexitf(nil, depth+1, format, args...)\n}\n\n// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Exit(args ...any) {\n\tExitDepth(1, args...)\n}\n\n// ExitDepth acts as Exit but uses depth to determine which call frame to log.\n// ExitDepth(0, \"msg\") is the same as Exit(\"msg\").\nfunc ExitDepth(depth int, args ...any) {\n\texitf(depth+1, defaultFormat(args), args...)\n}\n\n// ExitDepthf acts as Exitf but uses depth to determine which call frame to log.\n// ExitDepthf(0, \"msg\") is the same as Exitf(\"msg\").\nfunc ExitDepthf(depth int, format string, args ...any) {\n\texitf(depth+1, format, args...)\n}\n\n// Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\nfunc Exitln(args ...any) {\n\texitf(1, lnFormat(args), args...)\n}\n\n// Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Exitf(format string, args ...any) {\n\texitf(1, format, args...)\n}\n\n// ExitContext is like [Exit], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContext(ctx context.Context, args ...any) {\n\tExitContextDepth(ctx, 1, args...)\n}\n\n// ExitContextf is like [Exitf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextf(ctx context.Context, format string, args ...any) {\n\tctxexitf(ctx, 1, format, args...)\n}\n\n// ExitContextDepth is like [ExitDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxexitf(ctx, depth+1, defaultFormat(args), args...)\n}\n\n// ExitContextDepthf is like [ExitDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxexitf(ctx, depth+1, format, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// File I/O for logs.\n\npackage glog\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n)\n\n// logDirs lists the candidate directories for new log files.\nvar logDirs []string\n\nvar (\n\t// If non-empty, overrides the choice of directory in which to write logs.\n\t// See createLogDirs for the full list of possible destinations.\n\tlogDir      = flag.String(\"log_dir\", \"\", \"If non-empty, write log files in this directory\")\n\tlogLink     = flag.String(\"log_link\", \"\", \"If non-empty, add symbolic links in this directory to the log files\")\n\tlogBufLevel = flag.Int(\"logbuflevel\", int(logsink.Info), \"Buffer log messages logged at this level or lower\"+\n\t\t\" (-1 means don't buffer; 0 means buffer INFO only; ...). Has limited applicability on non-prod platforms.\")\n)\n\nfunc createLogDirs() {\n\tif *logDir != \"\" {\n\t\tlogDirs = append(logDirs, *logDir)\n\t}\n\tlogDirs = append(logDirs, os.TempDir())\n}\n\nvar (\n\tpid      = os.Getpid()\n\tprogram  = filepath.Base(os.Args[0])\n\thost     = \"unknownhost\"\n\tuserName = \"unknownuser\"\n)\n\nfunc init() {\n\th, err := os.Hostname()\n\tif err == nil {\n\t\thost = shortHostname(h)\n\t}\n\n\tif u := lookupUser(); u != \"\" {\n\t\tuserName = u\n\t}\n\t// Sanitize userName since it is used to construct file paths.\n\tuserName = strings.Map(func(r rune) rune {\n\t\tswitch {\n\t\tcase r >= 'a' && r <= 'z':\n\t\tcase r >= 'A' && r <= 'Z':\n\t\tcase r >= '0' && r <= '9':\n\t\tdefault:\n\t\t\treturn '_'\n\t\t}\n\t\treturn r\n\t}, userName)\n}\n\n// shortHostname returns its argument, truncating at the first period.\n// For instance, given \"www.google.com\" it returns \"www\".\nfunc shortHostname(hostname string) string {\n\tif i := strings.Index(hostname, \".\"); i >= 0 {\n\t\treturn hostname[:i]\n\t}\n\treturn hostname\n}\n\n// logName returns a new log file name containing tag, with start time t, and\n// the name for the symlink for tag.\nfunc logName(tag string, t time.Time) (name, link string) {\n\tname = fmt.Sprintf(\"%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d\",\n\t\tprogram,\n\t\thost,\n\t\tuserName,\n\t\ttag,\n\t\tt.Year(),\n\t\tt.Month(),\n\t\tt.Day(),\n\t\tt.Hour(),\n\t\tt.Minute(),\n\t\tt.Second(),\n\t\tpid)\n\treturn name, program + \".\" + tag\n}\n\nvar onceLogDirs sync.Once\n\n// create creates a new log file and returns the file and its filename, which\n// contains tag (\"INFO\", \"FATAL\", etc.) and t.  If the file is created\n// successfully, create also attempts to update the symlink for that tag, ignoring\n// errors.\nfunc create(tag string, t time.Time, dir string) (f *os.File, filename string, err error) {\n\tif dir != \"\" {\n\t\tf, name, err := createInDir(dir, tag, t)\n\t\tif err == nil {\n\t\t\treturn f, name, err\n\t\t}\n\t\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", err)\n\t}\n\n\tonceLogDirs.Do(createLogDirs)\n\tif len(logDirs) == 0 {\n\t\treturn nil, \"\", errors.New(\"log: no log dirs\")\n\t}\n\tvar lastErr error\n\tfor _, dir := range logDirs {\n\t\tf, name, err := createInDir(dir, tag, t)\n\t\tif err == nil {\n\t\t\treturn f, name, err\n\t\t}\n\t\tlastErr = err\n\t}\n\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", lastErr)\n}\n\nfunc createInDir(dir, tag string, t time.Time) (f *os.File, name string, err error) {\n\tname, link := logName(tag, t)\n\tfname := filepath.Join(dir, name)\n\t// O_EXCL is important here, as it prevents a vulnerability. The general idea is that logs often\n\t// live in an insecure directory (like /tmp), so an unprivileged attacker could create fname in\n\t// advance as a symlink to a file the logging process can access, but the attacker cannot. O_EXCL\n\t// fails the open if it already exists, thus prevent our this code from opening the existing file\n\t// the attacker points us to.\n\tf, err = os.OpenFile(fname, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)\n\tif err == nil {\n\t\tsymlink := filepath.Join(dir, link)\n\t\tos.Remove(symlink)        // ignore err\n\t\tos.Symlink(name, symlink) // ignore err\n\t\tif *logLink != \"\" {\n\t\t\tlsymlink := filepath.Join(*logLink, link)\n\t\t\tos.Remove(lsymlink)         // ignore err\n\t\t\tos.Symlink(fname, lsymlink) // ignore err\n\t\t}\n\t\treturn f, fname, nil\n\t}\n\treturn nil, \"\", err\n}\n\n// flushSyncWriter is the interface satisfied by logging destinations.\ntype flushSyncWriter interface {\n\tFlush() error\n\tSync() error\n\tio.Writer\n\tfilenames() []string\n}\n\nvar sinks struct {\n\tstderr stderrSink\n\tfile   fileSink\n}\n\nfunc init() {\n\t// Register stderr first: that way if we crash during file-writing at least\n\t// the log will have gone somewhere.\n\tif shouldRegisterStderrSink() {\n\t\tlogsink.TextSinks = append(logsink.TextSinks, &sinks.stderr)\n\t}\n\tlogsink.TextSinks = append(logsink.TextSinks, &sinks.file)\n\n\tsinks.file.flushChan = make(chan logsink.Severity, 1)\n\tgo sinks.file.flushDaemon()\n}\n\n// stderrSink is a logsink.Text that writes log entries to stderr\n// if they meet certain conditions.\ntype stderrSink struct {\n\tmu sync.Mutex\n\tw  io.Writer // if nil Emit uses os.Stderr directly\n}\n\n// Enabled implements logsink.Text.Enabled.  It returns true if any of the\n// various stderr flags are enabled for logs of the given severity, if the log\n// message is from the standard \"log\" package, or if google.Init has not yet run\n// (and hence file logging is not yet initialized).\nfunc (s *stderrSink) Enabled(m *logsink.Meta) bool {\n\treturn toStderr || alsoToStderr || m.Severity >= stderrThreshold.get()\n}\n\n// Emit implements logsink.Text.Emit.\nfunc (s *stderrSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tw := s.w\n\tif w == nil {\n\t\tw = os.Stderr\n\t}\n\tdn, err := w.Write(data)\n\tn += dn\n\treturn n, err\n}\n\n// severityWriters is an array of flushSyncWriter with a value for each\n// logsink.Severity.\ntype severityWriters [4]flushSyncWriter\n\n// fileSink is a logsink.Text that prints to a set of Google log files.\ntype fileSink struct {\n\tmu sync.Mutex\n\t// file holds writer for each of the log types.\n\tfile      severityWriters\n\tflushChan chan logsink.Severity\n}\n\n// Enabled implements logsink.Text.Enabled.  It returns true if google.Init\n// has run and both --disable_log_to_disk and --logtostderr are false.\nfunc (s *fileSink) Enabled(m *logsink.Meta) bool {\n\treturn !toStderr\n}\n\n// Emit implements logsink.Text.Emit\nfunc (s *fileSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif err = s.createMissingFiles(m.Severity); err != nil {\n\t\treturn 0, err\n\t}\n\tfor sev := m.Severity; sev >= logsink.Info; sev-- {\n\t\tif _, fErr := s.file[sev].Write(data); fErr != nil && err == nil {\n\t\t\terr = fErr // Take the first error.\n\t\t}\n\t}\n\tn = len(data)\n\tif int(m.Severity) > *logBufLevel {\n\t\tselect {\n\t\tcase s.flushChan <- m.Severity:\n\t\tdefault:\n\t\t}\n\t}\n\n\treturn n, err\n}\n\n// syncBuffer joins a bufio.Writer to its underlying file, providing access to the\n// file's Sync method and providing a wrapper for the Write method that provides log\n// file rotation. There are conflicting methods, so the file cannot be embedded.\n// s.mu is held for all its methods.\ntype syncBuffer struct {\n\tsink *fileSink\n\t*bufio.Writer\n\tfile   *os.File\n\tnames  []string\n\tsev    logsink.Severity\n\tnbytes uint64 // The number of bytes written to this file\n\tmadeAt time.Time\n}\n\nfunc (sb *syncBuffer) Sync() error {\n\treturn sb.file.Sync()\n}\n\nfunc (sb *syncBuffer) Write(p []byte) (n int, err error) {\n\t// Rotate the file if it is too large, but ensure we only do so,\n\t// if rotate doesn't create a conflicting filename.\n\tif sb.nbytes+uint64(len(p)) >= MaxSize {\n\t\tnow := timeNow()\n\t\tif now.After(sb.madeAt.Add(1*time.Second)) || now.Second() != sb.madeAt.Second() {\n\t\t\tif err := sb.rotateFile(now); err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t}\n\t}\n\tn, err = sb.Writer.Write(p)\n\tsb.nbytes += uint64(n)\n\treturn n, err\n}\n\nfunc (sb *syncBuffer) filenames() []string {\n\treturn sb.names\n}\n\nconst footer = \"\\nCONTINUED IN NEXT FILE\\n\"\n\n// rotateFile closes the syncBuffer's file and starts a new one.\nfunc (sb *syncBuffer) rotateFile(now time.Time) error {\n\tvar err error\n\tpn := \"<none>\"\n\tfile, name, err := create(sb.sev.String(), now, \"\")\n\tsb.madeAt = now\n\n\tif sb.file != nil {\n\t\t// The current log file becomes the previous log at the end of\n\t\t// this block, so save its name for use in the header of the next\n\t\t// file.\n\t\tpn = sb.file.Name()\n\t\tsb.Flush()\n\t\t// If there's an existing file, write a footer with the name of\n\t\t// the next file in the chain, followed by the constant string\n\t\t// \\nCONTINUED IN NEXT FILE\\n to make continuation detection simple.\n\t\tsb.file.Write([]byte(\"Next log: \"))\n\t\tsb.file.Write([]byte(name))\n\t\tsb.file.Write([]byte(footer))\n\t\tsb.file.Close()\n\t}\n\n\tsb.file = file\n\tsb.names = append(sb.names, name)\n\tsb.nbytes = 0\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsb.Writer = bufio.NewWriterSize(sb.file, bufferSize)\n\n\t// Write header.\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"Log file created at: %s\\n\", now.Format(\"2006/01/02 15:04:05\"))\n\tfmt.Fprintf(&buf, \"Running on machine: %s\\n\", host)\n\tfmt.Fprintf(&buf, \"Binary: Built with %s %s for %s/%s\\n\", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)\n\tfmt.Fprintf(&buf, \"Previous log: %s\\n\", pn)\n\tfmt.Fprintf(&buf, \"Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\\n\")\n\tn, err := sb.file.Write(buf.Bytes())\n\tsb.nbytes += uint64(n)\n\treturn err\n}\n\n// bufferSize sizes the buffer associated with each log file. It's large\n// so that log records can accumulate without the logging thread blocking\n// on disk I/O. The flushDaemon will block instead.\nconst bufferSize = 256 * 1024\n\n// createMissingFiles creates all the log files for severity from infoLog up to\n// upTo that have not already been created.\n// s.mu is held.\nfunc (s *fileSink) createMissingFiles(upTo logsink.Severity) error {\n\tif s.file[upTo] != nil {\n\t\treturn nil\n\t}\n\tnow := time.Now()\n\t// Files are created in increasing severity order, so we can be assured that\n\t// if a high severity logfile exists, then so do all of lower severity.\n\tfor sev := logsink.Info; sev <= upTo; sev++ {\n\t\tif s.file[sev] != nil {\n\t\t\tcontinue\n\t\t}\n\t\tsb := &syncBuffer{\n\t\t\tsink: s,\n\t\t\tsev:  sev,\n\t\t}\n\t\tif err := sb.rotateFile(now); err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts.file[sev] = sb\n\t}\n\treturn nil\n}\n\n// flushDaemon periodically flushes the log file buffers.\nfunc (s *fileSink) flushDaemon() {\n\ttick := time.NewTicker(30 * time.Second)\n\tdefer tick.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-tick.C:\n\t\t\ts.Flush()\n\t\tcase sev := <-s.flushChan:\n\t\t\ts.flush(sev)\n\t\t}\n\t}\n}\n\n// Flush flushes all pending log I/O.\nfunc Flush() {\n\tsinks.file.Flush()\n}\n\n// Flush flushes all the logs and attempts to \"sync\" their data to disk.\nfunc (s *fileSink) Flush() error {\n\treturn s.flush(logsink.Info)\n}\n\n// flush flushes all logs of severity threshold or greater.\nfunc (s *fileSink) flush(threshold logsink.Severity) error {\n\tvar firstErr error\n\tupdateErr := func(err error) {\n\t\tif err != nil && firstErr == nil {\n\t\t\tfirstErr = err\n\t\t}\n\t}\n\n\t// Remember where we flushed, so we can call sync without holding\n\t// the lock.\n\tvar files []flushSyncWriter\n\tfunc() {\n\t\ts.mu.Lock()\n\t\tdefer s.mu.Unlock()\n\t\t// Flush from fatal down, in case there's trouble flushing.\n\t\tfor sev := logsink.Fatal; sev >= threshold; sev-- {\n\t\t\tif file := s.file[sev]; file != nil {\n\t\t\t\tupdateErr(file.Flush())\n\t\t\t\tfiles = append(files, file)\n\t\t\t}\n\t\t}\n\t}()\n\n\tfor _, file := range files {\n\t\tupdateErr(file.Sync())\n\t}\n\n\treturn firstErr\n}\n\n// Names returns the names of the log files holding the FATAL, ERROR,\n// WARNING, or INFO logs. Returns ErrNoLog if the log for the given\n// level doesn't exist (e.g. because no messages of that level have been\n// written). This may return multiple names if the log type requested\n// has rolled over.\nfunc Names(s string) ([]string, error) {\n\tseverity, err := logsink.ParseSeverity(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsinks.file.mu.Lock()\n\tdefer sinks.file.mu.Unlock()\n\tf := sinks.file.file[severity]\n\tif f == nil {\n\t\treturn nil, ErrNoLog\n\t}\n\n\treturn f.filenames(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_linux.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n\npackage glog\n\nimport (\n\t\"errors\"\n\t\"runtime\"\n\t\"syscall\"\n)\n\n// abortProcess attempts to kill the current process in a way that will dump the\n// currently-running goroutines someplace useful (like stderr).\n//\n// It does this by sending SIGABRT to the current thread.\n//\n// If successful, abortProcess does not return.\nfunc abortProcess() error {\n\truntime.LockOSThread()\n\tif err := syscall.Tgkill(syscall.Getpid(), syscall.Gettid(), syscall.SIGABRT); err != nil {\n\t\treturn err\n\t}\n\treturn errors.New(\"log: killed current thread with SIGABRT, but still running\")\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_nonwindows.go",
    "content": "//go:build !windows\n\npackage glog\n\nimport \"os/user\"\n\n// shouldRegisterStderrSink determines whether we should register a log sink that writes to stderr.\n// Today, this always returns true on non-Windows platforms, as it specifically checks for a\n// condition that is only present on Windows.\nfunc shouldRegisterStderrSink() bool {\n\treturn true\n}\n\nfunc lookupUser() string {\n\tif current, err := user.Current(); err == nil {\n\t\treturn current.Username\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_other.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !(unix || windows)\n\npackage glog\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n)\n\n// abortProcess returns an error on platforms that presumably don't support signals.\nfunc abortProcess() error {\n\treturn fmt.Errorf(\"not sending SIGABRT (%s/%s does not support signals), falling back\", runtime.GOOS, runtime.GOARCH)\n\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_posix.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build (unix || windows) && !linux\n\npackage glog\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"time\"\n)\n\n// abortProcess attempts to kill the current process in a way that will dump the\n// currently-running goroutines someplace useful (like stderr).\n//\n// It does this by sending SIGABRT to the current process. Unfortunately, the\n// signal may or may not be delivered to the current thread; in order to do that\n// portably, we would need to add a cgo dependency and call pthread_kill.\n//\n// If successful, abortProcess does not return.\nfunc abortProcess() error {\n\tp, err := os.FindProcess(os.Getpid())\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := p.Signal(syscall.SIGABRT); err != nil {\n\t\treturn err\n\t}\n\n\t// Sent the signal.  Now we wait for it to arrive and any SIGABRT handlers to\n\t// run (and eventually terminate the process themselves).\n\t//\n\t// We could just \"select{}\" here, but there's an outside chance that would\n\t// trigger the runtime's deadlock detector if there happen not to be any\n\t// background goroutines running.  So we'll sleep a while first to give\n\t// the signal some time.\n\ttime.Sleep(10 * time.Second)\n\tselect {}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_windows.go",
    "content": "//go:build windows\n\npackage glog\n\nimport (\n\t\"os\"\n\t\"syscall\"\n)\n\n// shouldRegisterStderrSink determines whether we should register a log sink that writes to stderr.\n// Today, this checks if stderr is \"valid\", in that it maps to a non-NULL Handle.\n// Windows Services are spawned without Stdout and Stderr, so any attempt to use them equates to\n// referencing an invalid file Handle.\n// os.Stderr's FD is derived from a call to `syscall.GetStdHandle(syscall.STD_ERROR_HANDLE)`.\n// Documentation[1] for the GetStdHandle function indicates the return value may be NULL if the\n// application lacks the standard handle, so consider Stderr valid if its FD is non-NULL.\n// [1]: https://learn.microsoft.com/en-us/windows/console/getstdhandle\nfunc shouldRegisterStderrSink() bool {\n\treturn os.Stderr.Fd() != 0\n}\n\n// This follows the logic in the standard library's user.Current() function, except\n// that it leaves out the potentially expensive calls required to look up the user's\n// display name in Active Directory.\nfunc lookupUser() string {\n\ttoken, err := syscall.OpenCurrentProcessToken()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tdefer token.Close()\n\ttokenUser, err := token.GetTokenUser()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tusername, _, accountType, err := tokenUser.User.Sid.LookupAccount(\"\")\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tif accountType != syscall.SidTypeUser {\n\t\treturn \"\"\n\t}\n\treturn username\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_flags.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage glog\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n)\n\n// modulePat contains a filter for the -vmodule flag.\n// It holds a verbosity level and a file pattern to match.\ntype modulePat struct {\n\tpattern string\n\tliteral bool // The pattern is a literal string\n\tfull    bool // The pattern wants to match the full path\n\tlevel   Level\n}\n\n// match reports whether the file matches the pattern. It uses a string\n// comparison if the pattern contains no metacharacters.\nfunc (m *modulePat) match(full, file string) bool {\n\tif m.literal {\n\t\tif m.full {\n\t\t\treturn full == m.pattern\n\t\t}\n\t\treturn file == m.pattern\n\t}\n\tif m.full {\n\t\tmatch, _ := filepath.Match(m.pattern, full)\n\t\treturn match\n\t}\n\tmatch, _ := filepath.Match(m.pattern, file)\n\treturn match\n}\n\n// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters\n// that require filepath.Match to be called to match the pattern.\nfunc isLiteral(pattern string) bool {\n\treturn !strings.ContainsAny(pattern, `\\*?[]`)\n}\n\n// isFull reports whether the pattern matches the full file path, that is,\n// whether it contains /.\nfunc isFull(pattern string) bool {\n\treturn strings.ContainsRune(pattern, '/')\n}\n\n// verboseFlags represents the setting of the -v and -vmodule flags.\ntype verboseFlags struct {\n\t// moduleLevelCache is a sync.Map storing the -vmodule Level for each V()\n\t// call site, identified by PC. If there is no matching -vmodule filter,\n\t// the cached value is exactly v. moduleLevelCache is replaced with a new\n\t// Map whenever the -vmodule or -v flag changes state.\n\tmoduleLevelCache atomic.Value\n\n\t// mu guards all fields below.\n\tmu sync.Mutex\n\n\t// v stores the value of the -v flag.  It may be read safely using\n\t// sync.LoadInt32, but is only modified under mu.\n\tv Level\n\n\t// module stores the parsed -vmodule flag.\n\tmodule []modulePat\n\n\t// moduleLength caches len(module).  If greater than zero, it\n\t// means vmodule is enabled. It may be read safely using sync.LoadInt32, but\n\t// is only modified under mu.\n\tmoduleLength int32\n}\n\n// NOTE: For compatibility with the open-sourced v1 version of this\n// package (github.com/golang/glog) we need to retain that flag.Level\n// implements the flag.Value interface. See also go/log-vs-glog.\n\n// String is part of the flag.Value interface.\nfunc (l *Level) String() string {\n\treturn strconv.FormatInt(int64(l.Get().(Level)), 10)\n}\n\n// Get is part of the flag.Value interface.\nfunc (l *Level) Get() any {\n\tif l == &vflags.v {\n\t\t// l is the value registered for the -v flag.\n\t\treturn Level(atomic.LoadInt32((*int32)(l)))\n\t}\n\treturn *l\n}\n\n// Set is part of the flag.Value interface.\nfunc (l *Level) Set(value string) error {\n\tv, err := strconv.Atoi(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif l == &vflags.v {\n\t\t// l is the value registered for the -v flag.\n\t\tvflags.mu.Lock()\n\t\tdefer vflags.mu.Unlock()\n\t\tvflags.moduleLevelCache.Store(&sync.Map{})\n\t\tatomic.StoreInt32((*int32)(l), int32(v))\n\t\treturn nil\n\t}\n\t*l = Level(v)\n\treturn nil\n}\n\n// vModuleFlag is the flag.Value for the --vmodule flag.\ntype vModuleFlag struct{ *verboseFlags }\n\nfunc (f vModuleFlag) String() string {\n\t// Do not panic on the zero value.\n\t// https://groups.google.com/g/golang-nuts/c/Atlr8uAjn6U/m/iId17Td5BQAJ.\n\tif f.verboseFlags == nil {\n\t\treturn \"\"\n\t}\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tvar b bytes.Buffer\n\tfor i, f := range f.module {\n\t\tif i > 0 {\n\t\t\tb.WriteRune(',')\n\t\t}\n\t\tfmt.Fprintf(&b, \"%s=%d\", f.pattern, f.level)\n\t}\n\treturn b.String()\n}\n\n// Get returns nil for this flag type since the struct is not exported.\nfunc (f vModuleFlag) Get() any { return nil }\n\nvar errVmoduleSyntax = errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\n// Syntax: -vmodule=recordio=2,foo/bar/baz=1,gfs*=3\nfunc (f vModuleFlag) Set(value string) error {\n\tvar filter []modulePat\n\tfor _, pat := range strings.Split(value, \",\") {\n\t\tif len(pat) == 0 {\n\t\t\t// Empty strings such as from a trailing comma can be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tpatLev := strings.Split(pat, \"=\")\n\t\tif len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {\n\t\t\treturn errVmoduleSyntax\n\t\t}\n\t\tpattern := patLev[0]\n\t\tv, err := strconv.Atoi(patLev[1])\n\t\tif err != nil {\n\t\t\treturn errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\t\t}\n\t\t// TODO: check syntax of filter?\n\t\tfilter = append(filter, modulePat{pattern, isLiteral(pattern), isFull(pattern), Level(v)})\n\t}\n\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\tf.module = filter\n\tatomic.StoreInt32((*int32)(&f.moduleLength), int32(len(f.module)))\n\tf.moduleLevelCache.Store(&sync.Map{})\n\treturn nil\n}\n\nfunc (f *verboseFlags) levelForPC(pc uintptr) Level {\n\tif level, ok := f.moduleLevelCache.Load().(*sync.Map).Load(pc); ok {\n\t\treturn level.(Level)\n\t}\n\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\tlevel := Level(f.v)\n\tfn := runtime.FuncForPC(pc)\n\tfile, _ := fn.FileLine(pc)\n\t// The file is something like /a/b/c/d.go. We want just the d for\n\t// regular matches, /a/b/c/d for full matches.\n\tfile = strings.TrimSuffix(file, \".go\")\n\tfull := file\n\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\tfile = file[slash+1:]\n\t}\n\tfor _, filter := range f.module {\n\t\tif filter.match(full, file) {\n\t\t\tlevel = filter.level\n\t\t\tbreak // Use the first matching level.\n\t\t}\n\t}\n\tf.moduleLevelCache.Load().(*sync.Map).Store(pc, level)\n\treturn level\n}\n\nfunc (f *verboseFlags) enabled(callerDepth int, level Level) bool {\n\tif atomic.LoadInt32(&f.moduleLength) == 0 {\n\t\t// No vmodule values specified, so compare against v level.\n\t\treturn Level(atomic.LoadInt32((*int32)(&f.v))) >= level\n\t}\n\n\tpcs := [1]uintptr{}\n\tif runtime.Callers(callerDepth+2, pcs[:]) < 1 {\n\t\treturn false\n\t}\n\tframe, _ := runtime.CallersFrames(pcs[:]).Next()\n\treturn f.levelForPC(frame.Entry) >= level\n}\n\n// traceLocation represents an entry in the -log_backtrace_at flag.\ntype traceLocation struct {\n\tfile string\n\tline int\n}\n\nvar errTraceSyntax = errors.New(\"syntax error: expect file.go:234\")\n\nfunc parseTraceLocation(value string) (traceLocation, error) {\n\tfields := strings.Split(value, \":\")\n\tif len(fields) != 2 {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tfile, lineStr := fields[0], fields[1]\n\tif !strings.Contains(file, \".\") {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tline, err := strconv.Atoi(lineStr)\n\tif err != nil {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tif line < 0 {\n\t\treturn traceLocation{}, errors.New(\"negative value for line\")\n\t}\n\treturn traceLocation{file, line}, nil\n}\n\n// match reports whether the specified file and line matches the trace location.\n// The argument file name is the full path, not the basename specified in the flag.\nfunc (t traceLocation) match(file string, line int) bool {\n\tif t.line != line {\n\t\treturn false\n\t}\n\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\tfile = file[i+1:]\n\t}\n\treturn t.file == file\n}\n\nfunc (t traceLocation) String() string {\n\treturn fmt.Sprintf(\"%s:%d\", t.file, t.line)\n}\n\n// traceLocations represents the -log_backtrace_at flag.\n// Syntax: -log_backtrace_at=recordio.go:234,sstable.go:456\n// Note that unlike vmodule the file extension is included here.\ntype traceLocations struct {\n\tmu      sync.Mutex\n\tlocsLen int32 // Safe for atomic read without mu.\n\tlocs    []traceLocation\n}\n\nfunc (t *traceLocations) String() string {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\tvar buf bytes.Buffer\n\tfor i, tl := range t.locs {\n\t\tif i > 0 {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\t\tbuf.WriteString(tl.String())\n\t}\n\treturn buf.String()\n}\n\n// Get always returns nil for this flag type since the struct is not exported\nfunc (t *traceLocations) Get() any { return nil }\n\nfunc (t *traceLocations) Set(value string) error {\n\tvar locs []traceLocation\n\tfor _, s := range strings.Split(value, \",\") {\n\t\tif s == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tloc, err := parseTraceLocation(s)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlocs = append(locs, loc)\n\t}\n\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tatomic.StoreInt32(&t.locsLen, int32(len(locs)))\n\tt.locs = locs\n\treturn nil\n}\n\nfunc (t *traceLocations) match(file string, line int) bool {\n\tif atomic.LoadInt32(&t.locsLen) == 0 {\n\t\treturn false\n\t}\n\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tfor _, tl := range t.locs {\n\t\tif tl.match(file, line) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// severityFlag is an atomic flag.Value implementation for logsink.Severity.\ntype severityFlag int32\n\nfunc (s *severityFlag) get() logsink.Severity {\n\treturn logsink.Severity(atomic.LoadInt32((*int32)(s)))\n}\nfunc (s *severityFlag) String() string { return strconv.FormatInt(int64(*s), 10) }\nfunc (s *severityFlag) Get() any       { return s.get() }\nfunc (s *severityFlag) Set(value string) error {\n\tthreshold, err := logsink.ParseSeverity(value)\n\tif err != nil {\n\t\t// Not a severity name.  Try a raw number.\n\t\tv, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthreshold = logsink.Severity(v)\n\t\tif threshold < logsink.Info || threshold > logsink.Fatal {\n\t\t\treturn fmt.Errorf(\"Severity %d out of range (min %d, max %d).\", v, logsink.Info, logsink.Fatal)\n\t\t}\n\t}\n\tatomic.StoreInt32((*int32)(s), int32(threshold))\n\treturn nil\n}\n\nvar (\n\tvflags verboseFlags // The -v and -vmodule flags.\n\n\tlogBacktraceAt traceLocations // The -log_backtrace_at flag.\n\n\t// Boolean flags. Not handled atomically because the flag.Value interface\n\t// does not let us avoid the =true, and that shorthand is necessary for\n\t// compatibility. TODO: does this matter enough to fix? Seems unlikely.\n\ttoStderr     bool // The -logtostderr flag.\n\talsoToStderr bool // The -alsologtostderr flag.\n\n\tstderrThreshold severityFlag // The -stderrthreshold flag.\n)\n\n// verboseEnabled returns whether the caller at the given depth should emit\n// verbose logs at the given level, with depth 0 identifying the caller of\n// verboseEnabled.\nfunc verboseEnabled(callerDepth int, level Level) bool {\n\treturn vflags.enabled(callerDepth+1, level)\n}\n\n// backtraceAt returns whether the logging call at the given function and line\n// should also emit a backtrace of the current call stack.\nfunc backtraceAt(file string, line int) bool {\n\treturn logBacktraceAt.match(file, line)\n}\n\nfunc init() {\n\tvflags.moduleLevelCache.Store(&sync.Map{})\n\n\tflag.Var(&vflags.v, \"v\", \"log level for V logs\")\n\tflag.Var(vModuleFlag{&vflags}, \"vmodule\", \"comma-separated list of pattern=N settings for file-filtered logging\")\n\n\tflag.Var(&logBacktraceAt, \"log_backtrace_at\", \"when logging hits line file:N, emit a stack trace\")\n\n\tstderrThreshold = severityFlag(logsink.Error)\n\n\tflag.BoolVar(&toStderr, \"logtostderr\", false, \"log to standard error instead of files\")\n\tflag.BoolVar(&alsoToStderr, \"alsologtostderr\", false, \"log to standard error as well as files\")\n\tflag.Var(&stderrThreshold, \"stderrthreshold\", \"logs at or above this threshold go to stderr\")\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/logsink/logsink.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage logsink\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/stackdump\"\n)\n\n// MaxLogMessageLen is the limit on length of a formatted log message, including\n// the standard line prefix and trailing newline.\n//\n// Chosen to match C++ glog.\nconst MaxLogMessageLen = 15000\n\n// A Severity is a severity at which a message can be logged.\ntype Severity int8\n\n// These constants identify the log levels in order of increasing severity.\n// A message written to a high-severity log file is also written to each\n// lower-severity log file.\nconst (\n\tInfo Severity = iota\n\tWarning\n\tError\n\n\t// Fatal contains logs written immediately before the process terminates.\n\t//\n\t// Sink implementations should not terminate the process themselves: the log\n\t// package will perform any necessary cleanup and terminate the process as\n\t// appropriate.\n\tFatal\n)\n\nfunc (s Severity) String() string {\n\tswitch s {\n\tcase Info:\n\t\treturn \"INFO\"\n\tcase Warning:\n\t\treturn \"WARNING\"\n\tcase Error:\n\t\treturn \"ERROR\"\n\tcase Fatal:\n\t\treturn \"FATAL\"\n\t}\n\treturn fmt.Sprintf(\"%T(%d)\", s, s)\n}\n\n// ParseSeverity returns the case-insensitive Severity value for the given string.\nfunc ParseSeverity(name string) (Severity, error) {\n\tname = strings.ToUpper(name)\n\tfor s := Info; s <= Fatal; s++ {\n\t\tif s.String() == name {\n\t\t\treturn s, nil\n\t\t}\n\t}\n\treturn -1, fmt.Errorf(\"logsink: invalid severity %q\", name)\n}\n\n// Meta is metadata about a logging call.\ntype Meta struct {\n\t// The context with which the log call was made (or nil). If set, the context\n\t// is only valid during the logsink.Structured.Printf call, it should not be\n\t// retained.\n\tContext context.Context\n\n\t// Time is the time at which the log call was made.\n\tTime time.Time\n\n\t// File is the source file from which the log entry originates.\n\tFile string\n\t// Line is the line offset within the source file.\n\tLine int\n\t// Depth is the number of stack frames between the logsink and the log call.\n\tDepth int\n\n\tSeverity Severity\n\n\t// Verbose indicates whether the call was made via \"log.V\".  Log entries below\n\t// the current verbosity threshold are not sent to the sink.\n\tVerbose bool\n\n\t// Thread ID. This can be populated with a thread ID from another source,\n\t// such as a system we are importing logs from. In the normal case, this\n\t// will be set to the process ID (PID), since Go doesn't have threads.\n\tThread int64\n\n\t// Stack trace starting in the logging function. May be nil.\n\t// A logsink should implement the StackWanter interface to request this.\n\t//\n\t// Even if WantStack returns false, this field may be set (e.g. if another\n\t// sink wants a stack trace).\n\tStack *stackdump.Stack\n}\n\n// Structured is a logging destination that accepts structured data as input.\ntype Structured interface {\n\t// Printf formats according to a fmt.Printf format specifier and writes a log\n\t// entry.  The precise result of formatting depends on the sink, but should\n\t// aim for consistency with fmt.Printf.\n\t//\n\t// Printf returns the number of bytes occupied by the log entry, which\n\t// may not be equal to the total number of bytes written.\n\t//\n\t// Printf returns any error encountered *if* it is severe enough that the log\n\t// package should terminate the process.\n\t//\n\t// The sink must not modify the *Meta parameter, nor reference it after\n\t// Printf has returned: it may be reused in subsequent calls.\n\tPrintf(meta *Meta, format string, a ...any) (n int, err error)\n}\n\n// StackWanter can be implemented by a logsink.Structured to indicate that it\n// wants a stack trace to accompany at least some of the log messages it receives.\ntype StackWanter interface {\n\t// WantStack returns true if the sink requires a stack trace for a log message\n\t// with this metadata.\n\t//\n\t// NOTE: Returning true implies that meta.Stack will be non-nil. Returning\n\t// false does NOT imply that meta.Stack will be nil.\n\tWantStack(meta *Meta) bool\n}\n\n// Text is a logging destination that accepts pre-formatted log lines (instead of\n// structured data).\ntype Text interface {\n\t// Enabled returns whether this sink should output messages for the given\n\t// Meta.  If the sink returns false for a given Meta, the Printf function will\n\t// not call Emit on it for the corresponding log message.\n\tEnabled(*Meta) bool\n\n\t// Emit writes a pre-formatted text log entry (including any applicable\n\t// header) to the log.  It returns the number of bytes occupied by the entry\n\t// (which may differ from the length of the passed-in slice).\n\t//\n\t// Emit returns any error encountered *if* it is severe enough that the log\n\t// package should terminate the process.\n\t//\n\t// The sink must not modify the *Meta parameter, nor reference it after\n\t// Printf has returned: it may be reused in subsequent calls.\n\t//\n\t// NOTE: When developing a text sink, keep in mind the surface in which the\n\t// logs will be displayed, and whether it's important that the sink be\n\t// resistent to tampering in the style of b/211428300. Standard text sinks\n\t// (like `stderrSink`) do not protect against this (e.g. by escaping\n\t// characters) because the cases where they would show user-influenced bytes\n\t// are vanishingly small.\n\tEmit(*Meta, []byte) (n int, err error)\n}\n\n// bufs is a pool of *bytes.Buffer used in formatting log entries.\nvar bufs sync.Pool // Pool of *bytes.Buffer.\n\n// textPrintf formats a text log entry and emits it to all specified Text sinks.\n//\n// The returned n is the maximum across all Emit calls.\n// The returned err is the first non-nil error encountered.\n// Sinks that are disabled by configuration should return (0, nil).\nfunc textPrintf(m *Meta, textSinks []Text, format string, args ...any) (n int, err error) {\n\t// We expect at most file, stderr, and perhaps syslog.  If there are more,\n\t// we'll end up allocating - no big deal.\n\tconst maxExpectedTextSinks = 3\n\tvar noAllocSinks [maxExpectedTextSinks]Text\n\n\tsinks := noAllocSinks[:0]\n\tfor _, s := range textSinks {\n\t\tif s.Enabled(m) {\n\t\t\tsinks = append(sinks, s)\n\t\t}\n\t}\n\tif len(sinks) == 0 && m.Severity != Fatal {\n\t\treturn 0, nil // No TextSinks specified; don't bother formatting.\n\t}\n\n\tbufi := bufs.Get()\n\tvar buf *bytes.Buffer\n\tif bufi == nil {\n\t\tbuf = bytes.NewBuffer(nil)\n\t\tbufi = buf\n\t} else {\n\t\tbuf = bufi.(*bytes.Buffer)\n\t\tbuf.Reset()\n\t}\n\n\t// Lmmdd hh:mm:ss.uuuuuu PID/GID file:line]\n\t//\n\t// The \"PID\" entry arguably ought to be TID for consistency with other\n\t// environments, but TID is not meaningful in a Go program due to the\n\t// multiplexing of goroutines across threads.\n\t//\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\tconst severityChar = \"IWEF\"\n\tbuf.WriteByte(severityChar[m.Severity])\n\n\t_, month, day := m.Time.Date()\n\thour, minute, second := m.Time.Clock()\n\ttwoDigits(buf, int(month))\n\ttwoDigits(buf, day)\n\tbuf.WriteByte(' ')\n\ttwoDigits(buf, hour)\n\tbuf.WriteByte(':')\n\ttwoDigits(buf, minute)\n\tbuf.WriteByte(':')\n\ttwoDigits(buf, second)\n\tbuf.WriteByte('.')\n\tnDigits(buf, 6, uint64(m.Time.Nanosecond()/1000), '0')\n\tbuf.WriteByte(' ')\n\n\tnDigits(buf, 7, uint64(m.Thread), ' ')\n\tbuf.WriteByte(' ')\n\n\t{\n\t\tfile := m.File\n\t\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\t\tfile = file[i+1:]\n\t\t}\n\t\tbuf.WriteString(file)\n\t}\n\n\tbuf.WriteByte(':')\n\t{\n\t\tvar tmp [19]byte\n\t\tbuf.Write(strconv.AppendInt(tmp[:0], int64(m.Line), 10))\n\t}\n\tbuf.WriteString(\"] \")\n\n\tmsgStart := buf.Len()\n\tfmt.Fprintf(buf, format, args...)\n\tif buf.Len() > MaxLogMessageLen-1 {\n\t\tbuf.Truncate(MaxLogMessageLen - 1)\n\t}\n\tmsgEnd := buf.Len()\n\tif b := buf.Bytes(); b[len(b)-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\n\tfor _, s := range sinks {\n\t\tsn, sErr := s.Emit(m, buf.Bytes())\n\t\tif sn > n {\n\t\t\tn = sn\n\t\t}\n\t\tif sErr != nil && err == nil {\n\t\t\terr = sErr\n\t\t}\n\t}\n\n\tif m.Severity == Fatal {\n\t\tsavedM := *m\n\t\tfatalMessageStore(savedEntry{\n\t\t\tmeta: &savedM,\n\t\t\tmsg:  buf.Bytes()[msgStart:msgEnd],\n\t\t})\n\t} else {\n\t\tbufs.Put(bufi)\n\t}\n\treturn n, err\n}\n\nconst digits = \"0123456789\"\n\n// twoDigits formats a zero-prefixed two-digit integer to buf.\nfunc twoDigits(buf *bytes.Buffer, d int) {\n\tbuf.WriteByte(digits[(d/10)%10])\n\tbuf.WriteByte(digits[d%10])\n}\n\n// nDigits formats an n-digit integer to buf, padding with pad on the left. It\n// assumes d != 0.\nfunc nDigits(buf *bytes.Buffer, n int, d uint64, pad byte) {\n\tvar tmp [20]byte\n\n\tcutoff := len(tmp) - n\n\tj := len(tmp) - 1\n\tfor ; d > 0; j-- {\n\t\ttmp[j] = digits[d%10]\n\t\td /= 10\n\t}\n\tfor ; j >= cutoff; j-- {\n\t\ttmp[j] = pad\n\t}\n\tj++\n\tbuf.Write(tmp[j:])\n}\n\n// Printf writes a log entry to all registered TextSinks in this package, then\n// to all registered StructuredSinks.\n//\n// The returned n is the maximum across all Emit and Printf calls.\n// The returned err is the first non-nil error encountered.\n// Sinks that are disabled by configuration should return (0, nil).\nfunc Printf(m *Meta, format string, args ...any) (n int, err error) {\n\tm.Depth++\n\tn, err = textPrintf(m, TextSinks, format, args...)\n\n\tfor _, sink := range StructuredSinks {\n\t\t// TODO: Support TextSinks that implement StackWanter?\n\t\tif sw, ok := sink.(StackWanter); ok && sw.WantStack(m) {\n\t\t\tif m.Stack == nil {\n\t\t\t\t// First, try to find a stacktrace in args, otherwise generate one.\n\t\t\t\tfor _, arg := range args {\n\t\t\t\t\tif stack, ok := arg.(stackdump.Stack); ok {\n\t\t\t\t\t\tm.Stack = &stack\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif m.Stack == nil {\n\t\t\t\t\tstack := stackdump.Caller( /* skipDepth = */ m.Depth)\n\t\t\t\t\tm.Stack = &stack\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsn, sErr := sink.Printf(m, format, args...)\n\t\tif sn > n {\n\t\t\tn = sn\n\t\t}\n\t\tif sErr != nil && err == nil {\n\t\t\terr = sErr\n\t\t}\n\t}\n\treturn n, err\n}\n\n// The sets of sinks to which logs should be written.\n//\n// These must only be modified during package init, and are read-only thereafter.\nvar (\n\t// StructuredSinks is the set of Structured sink instances to which logs\n\t// should be written.\n\tStructuredSinks []Structured\n\n\t// TextSinks is the set of Text sink instances to which logs should be\n\t// written.\n\t//\n\t// These are registered separately from Structured sink implementations to\n\t// avoid the need to repeat the work of formatting a message for each Text\n\t// sink that writes it.  The package-level Printf function writes to both sets\n\t// independenty, so a given log destination should only register a Structured\n\t// *or* a Text sink (not both).\n\tTextSinks []Text\n)\n\ntype savedEntry struct {\n\tmeta *Meta\n\tmsg  []byte\n}\n\n// StructuredTextWrapper is a Structured sink which forwards logs to a set of Text sinks.\n//\n// The purpose of this sink is to allow applications to intercept logging calls before they are\n// serialized and sent to Text sinks. For example, if one needs to redact PII from logging\n// arguments before they reach STDERR, one solution would be to do the redacting in a Structured\n// sink that forwards logs to a StructuredTextWrapper instance, and make STDERR a child of that\n// StructuredTextWrapper instance. This is how one could set this up in their application:\n//\n// func init() {\n//\n//\twrapper := logsink.StructuredTextWrapper{TextSinks: logsink.TextSinks}\n//\t// sanitizersink will intercept logs and remove PII\n//\tsanitizer := sanitizersink{Sink: &wrapper}\n//\tlogsink.StructuredSinks = append(logsink.StructuredSinks, &sanitizer)\n//\tlogsink.TextSinks = nil\n//\n// }\ntype StructuredTextWrapper struct {\n\t// TextSinks is the set of Text sinks that should receive logs from this\n\t// StructuredTextWrapper instance.\n\tTextSinks []Text\n}\n\n// Printf forwards logs to all Text sinks registered in the StructuredTextWrapper.\nfunc (w *StructuredTextWrapper) Printf(meta *Meta, format string, args ...any) (n int, err error) {\n\treturn textPrintf(meta, w.TextSinks, format, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go",
    "content": "package logsink\n\nimport (\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nfunc fatalMessageStore(e savedEntry) {\n\t// Only put a new one in if we haven't assigned before.\n\tatomic.CompareAndSwapPointer(&fatalMessage, nil, unsafe.Pointer(&e))\n}\n\nvar fatalMessage unsafe.Pointer // savedEntry stored with CompareAndSwapPointer\n\n// FatalMessage returns the Meta and message contents of the first message\n// logged with Fatal severity, or false if none has occurred.\nfunc FatalMessage() (*Meta, []byte, bool) {\n\te := (*savedEntry)(atomic.LoadPointer(&fatalMessage))\n\tif e == nil {\n\t\treturn nil, nil, false\n\t}\n\treturn e.meta, e.msg, true\n}\n\n// DoNotUseRacyFatalMessage is FatalMessage, but worse.\n//\n//go:norace\n//go:nosplit\nfunc DoNotUseRacyFatalMessage() (*Meta, []byte, bool) {\n\te := (*savedEntry)(fatalMessage)\n\tif e == nil {\n\t\treturn nil, nil, false\n\t}\n\treturn e.meta, e.msg, true\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/stackdump/stackdump.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package stackdump provides wrappers for runtime.Stack and runtime.Callers\n// with uniform support for skipping caller frames.\n//\n// ⚠ Unlike the functions in the runtime package, these may allocate a\n// non-trivial quantity of memory: use them with care. ⚠\npackage stackdump\n\nimport (\n\t\"bytes\"\n\t\"runtime\"\n)\n\n// runtimeStackSelfFrames is 1 if runtime.Stack includes the call to\n// runtime.Stack itself or 0 if it does not.\n//\n// As of 2016-04-27, the gccgo compiler includes runtime.Stack but the gc\n// compiler does not.\nvar runtimeStackSelfFrames = func() int {\n\tfor n := 1 << 10; n < 1<<20; n *= 2 {\n\t\tbuf := make([]byte, n)\n\t\tn := runtime.Stack(buf, false)\n\t\tif bytes.Contains(buf[:n], []byte(\"runtime.Stack\")) {\n\t\t\treturn 1\n\t\t} else if n < len(buf) || bytes.Count(buf, []byte(\"\\n\")) >= 3 {\n\t\t\treturn 0\n\t\t}\n\t}\n\treturn 0\n}()\n\n// Stack is a stack dump for a single goroutine.\ntype Stack struct {\n\t// Text is a representation of the stack dump in a human-readable format.\n\tText []byte\n\n\t// PC is a representation of the stack dump using raw program counter values.\n\tPC []uintptr\n}\n\nfunc (s Stack) String() string { return string(s.Text) }\n\n// Caller returns the Stack dump for the calling goroutine, starting skipDepth\n// frames before the caller of Caller.  (Caller(0) provides a dump starting at\n// the caller of this function.)\nfunc Caller(skipDepth int) Stack {\n\treturn Stack{\n\t\tText: CallerText(skipDepth + 1),\n\t\tPC:   CallerPC(skipDepth + 1),\n\t}\n}\n\n// CallerText returns a textual dump of the stack starting skipDepth frames before\n// the caller.  (CallerText(0) provides a dump starting at the caller of this\n// function.)\nfunc CallerText(skipDepth int) []byte {\n\tfor n := 1 << 10; ; n *= 2 {\n\t\tbuf := make([]byte, n)\n\t\tn := runtime.Stack(buf, false)\n\t\tif n < len(buf) {\n\t\t\treturn pruneFrames(skipDepth+1+runtimeStackSelfFrames, buf[:n])\n\t\t}\n\t}\n}\n\n// CallerPC returns a dump of the program counters of the stack starting\n// skipDepth frames before the caller.  (CallerPC(0) provides a dump starting at\n// the caller of this function.)\nfunc CallerPC(skipDepth int) []uintptr {\n\tfor n := 1 << 8; ; n *= 2 {\n\t\tbuf := make([]uintptr, n)\n\t\tn := runtime.Callers(skipDepth+2, buf)\n\t\tif n < len(buf) {\n\t\t\treturn buf[:n]\n\t\t}\n\t}\n}\n\n// pruneFrames removes the topmost skipDepth frames of the first goroutine in a\n// textual stack dump.  It overwrites the passed-in slice.\n//\n// If there are fewer than skipDepth frames in the first goroutine's stack,\n// pruneFrames prunes it to an empty stack and leaves the remaining contents\n// intact.\nfunc pruneFrames(skipDepth int, stack []byte) []byte {\n\theaderLen := 0\n\tfor i, c := range stack {\n\t\tif c == '\\n' {\n\t\t\theaderLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\tif headerLen == 0 {\n\t\treturn stack // No header line - not a well-formed stack trace.\n\t}\n\n\tskipLen := headerLen\n\tskipNewlines := skipDepth * 2\n\tfor ; skipLen < len(stack) && skipNewlines > 0; skipLen++ {\n\t\tc := stack[skipLen]\n\t\tif c != '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tskipNewlines--\n\t\tskipLen++\n\t\tif skipNewlines == 0 || skipLen == len(stack) || stack[skipLen] == '\\n' {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tpruned := stack[skipLen-headerLen:]\n\tcopy(pruned, stack[:headerLen])\n\treturn pruned\n}\n"
  },
  {
    "path": "vendor/github.com/golang/groupcache/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/golang/groupcache/lru/lru.go",
    "content": "/*\nCopyright 2013 Google Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package lru implements an LRU cache.\npackage lru\n\nimport \"container/list\"\n\n// Cache is an LRU cache. It is not safe for concurrent access.\ntype Cache struct {\n\t// MaxEntries is the maximum number of cache entries before\n\t// an item is evicted. Zero means no limit.\n\tMaxEntries int\n\n\t// OnEvicted optionally specifies a callback function to be\n\t// executed when an entry is purged from the cache.\n\tOnEvicted func(key Key, value interface{})\n\n\tll    *list.List\n\tcache map[interface{}]*list.Element\n}\n\n// A Key may be any value that is comparable. See http://golang.org/ref/spec#Comparison_operators\ntype Key interface{}\n\ntype entry struct {\n\tkey   Key\n\tvalue interface{}\n}\n\n// New creates a new Cache.\n// If maxEntries is zero, the cache has no limit and it's assumed\n// that eviction is done by the caller.\nfunc New(maxEntries int) *Cache {\n\treturn &Cache{\n\t\tMaxEntries: maxEntries,\n\t\tll:         list.New(),\n\t\tcache:      make(map[interface{}]*list.Element),\n\t}\n}\n\n// Add adds a value to the cache.\nfunc (c *Cache) Add(key Key, value interface{}) {\n\tif c.cache == nil {\n\t\tc.cache = make(map[interface{}]*list.Element)\n\t\tc.ll = list.New()\n\t}\n\tif ee, ok := c.cache[key]; ok {\n\t\tc.ll.MoveToFront(ee)\n\t\tee.Value.(*entry).value = value\n\t\treturn\n\t}\n\tele := c.ll.PushFront(&entry{key, value})\n\tc.cache[key] = ele\n\tif c.MaxEntries != 0 && c.ll.Len() > c.MaxEntries {\n\t\tc.RemoveOldest()\n\t}\n}\n\n// Get looks up a key's value from the cache.\nfunc (c *Cache) Get(key Key) (value interface{}, ok bool) {\n\tif c.cache == nil {\n\t\treturn\n\t}\n\tif ele, hit := c.cache[key]; hit {\n\t\tc.ll.MoveToFront(ele)\n\t\treturn ele.Value.(*entry).value, true\n\t}\n\treturn\n}\n\n// Remove removes the provided key from the cache.\nfunc (c *Cache) Remove(key Key) {\n\tif c.cache == nil {\n\t\treturn\n\t}\n\tif ele, hit := c.cache[key]; hit {\n\t\tc.removeElement(ele)\n\t}\n}\n\n// RemoveOldest removes the oldest item from the cache.\nfunc (c *Cache) RemoveOldest() {\n\tif c.cache == nil {\n\t\treturn\n\t}\n\tele := c.ll.Back()\n\tif ele != nil {\n\t\tc.removeElement(ele)\n\t}\n}\n\nfunc (c *Cache) removeElement(e *list.Element) {\n\tc.ll.Remove(e)\n\tkv := e.Value.(*entry)\n\tdelete(c.cache, kv.key)\n\tif c.OnEvicted != nil {\n\t\tc.OnEvicted(kv.key, kv.value)\n\t}\n}\n\n// Len returns the number of items in the cache.\nfunc (c *Cache) Len() int {\n\tif c.cache == nil {\n\t\treturn 0\n\t}\n\treturn c.ll.Len()\n}\n\n// Clear purges all stored items from the cache.\nfunc (c *Cache) Clear() {\n\tif c.OnEvicted != nil {\n\t\tfor _, e := range c.cache {\n\t\t\tkv := e.Value.(*entry)\n\t\t\tc.OnEvicted(kv.key, kv.value)\n\t\t}\n\t}\n\tc.ll = nil\n\tc.cache = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/LICENSE",
    "content": "Copyright 2010 The Go Authors.  All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n    * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/buffer.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\nconst (\n\tWireVarint     = 0\n\tWireFixed32    = 5\n\tWireFixed64    = 1\n\tWireBytes      = 2\n\tWireStartGroup = 3\n\tWireEndGroup   = 4\n)\n\n// EncodeVarint returns the varint encoded bytes of v.\nfunc EncodeVarint(v uint64) []byte {\n\treturn protowire.AppendVarint(nil, v)\n}\n\n// SizeVarint returns the length of the varint encoded bytes of v.\n// This is equal to len(EncodeVarint(v)).\nfunc SizeVarint(v uint64) int {\n\treturn protowire.SizeVarint(v)\n}\n\n// DecodeVarint parses a varint encoded integer from b,\n// returning the integer value and the length of the varint.\n// It returns (0, 0) if there is a parse error.\nfunc DecodeVarint(b []byte) (uint64, int) {\n\tv, n := protowire.ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn 0, 0\n\t}\n\treturn v, n\n}\n\n// Buffer is a buffer for encoding and decoding the protobuf wire format.\n// It may be reused between invocations to reduce memory usage.\ntype Buffer struct {\n\tbuf           []byte\n\tidx           int\n\tdeterministic bool\n}\n\n// NewBuffer allocates a new Buffer initialized with buf,\n// where the contents of buf are considered the unread portion of the buffer.\nfunc NewBuffer(buf []byte) *Buffer {\n\treturn &Buffer{buf: buf}\n}\n\n// SetDeterministic specifies whether to use deterministic serialization.\n//\n// Deterministic serialization guarantees that for a given binary, equal\n// messages will always be serialized to the same bytes. This implies:\n//\n//   - Repeated serialization of a message will return the same bytes.\n//   - Different processes of the same binary (which may be executing on\n//     different machines) will serialize equal messages to the same bytes.\n//\n// Note that the deterministic serialization is NOT canonical across\n// languages. It is not guaranteed to remain stable over time. It is unstable\n// across different builds with schema changes due to unknown fields.\n// Users who need canonical serialization (e.g., persistent storage in a\n// canonical form, fingerprinting, etc.) should define their own\n// canonicalization specification and implement their own serializer rather\n// than relying on this API.\n//\n// If deterministic serialization is requested, map entries will be sorted\n// by keys in lexographical order. This is an implementation detail and\n// subject to change.\nfunc (b *Buffer) SetDeterministic(deterministic bool) {\n\tb.deterministic = deterministic\n}\n\n// SetBuf sets buf as the internal buffer,\n// where the contents of buf are considered the unread portion of the buffer.\nfunc (b *Buffer) SetBuf(buf []byte) {\n\tb.buf = buf\n\tb.idx = 0\n}\n\n// Reset clears the internal buffer of all written and unread data.\nfunc (b *Buffer) Reset() {\n\tb.buf = b.buf[:0]\n\tb.idx = 0\n}\n\n// Bytes returns the internal buffer.\nfunc (b *Buffer) Bytes() []byte {\n\treturn b.buf\n}\n\n// Unread returns the unread portion of the buffer.\nfunc (b *Buffer) Unread() []byte {\n\treturn b.buf[b.idx:]\n}\n\n// Marshal appends the wire-format encoding of m to the buffer.\nfunc (b *Buffer) Marshal(m Message) error {\n\tvar err error\n\tb.buf, err = marshalAppend(b.buf, m, b.deterministic)\n\treturn err\n}\n\n// Unmarshal parses the wire-format message in the buffer and\n// places the decoded results in m.\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) Unmarshal(m Message) error {\n\terr := UnmarshalMerge(b.Unread(), m)\n\tb.idx = len(b.buf)\n\treturn err\n}\n\ntype unknownFields struct{ XXX_unrecognized protoimpl.UnknownFields }\n\nfunc (m *unknownFields) String() string { panic(\"not implemented\") }\nfunc (m *unknownFields) Reset()         { panic(\"not implemented\") }\nfunc (m *unknownFields) ProtoMessage()  { panic(\"not implemented\") }\n\n// DebugPrint dumps the encoded bytes of b with a header and footer including s\n// to stdout. This is only intended for debugging.\nfunc (*Buffer) DebugPrint(s string, b []byte) {\n\tm := MessageReflect(new(unknownFields))\n\tm.SetUnknown(b)\n\tb, _ = prototext.MarshalOptions{AllowPartial: true, Indent: \"\\t\"}.Marshal(m.Interface())\n\tfmt.Printf(\"==== %s ====\\n%s==== %s ====\\n\", s, b, s)\n}\n\n// EncodeVarint appends an unsigned varint encoding to the buffer.\nfunc (b *Buffer) EncodeVarint(v uint64) error {\n\tb.buf = protowire.AppendVarint(b.buf, v)\n\treturn nil\n}\n\n// EncodeZigzag32 appends a 32-bit zig-zag varint encoding to the buffer.\nfunc (b *Buffer) EncodeZigzag32(v uint64) error {\n\treturn b.EncodeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n}\n\n// EncodeZigzag64 appends a 64-bit zig-zag varint encoding to the buffer.\nfunc (b *Buffer) EncodeZigzag64(v uint64) error {\n\treturn b.EncodeVarint(uint64((uint64(v) << 1) ^ uint64((int64(v) >> 63))))\n}\n\n// EncodeFixed32 appends a 32-bit little-endian integer to the buffer.\nfunc (b *Buffer) EncodeFixed32(v uint64) error {\n\tb.buf = protowire.AppendFixed32(b.buf, uint32(v))\n\treturn nil\n}\n\n// EncodeFixed64 appends a 64-bit little-endian integer to the buffer.\nfunc (b *Buffer) EncodeFixed64(v uint64) error {\n\tb.buf = protowire.AppendFixed64(b.buf, uint64(v))\n\treturn nil\n}\n\n// EncodeRawBytes appends a length-prefixed raw bytes to the buffer.\nfunc (b *Buffer) EncodeRawBytes(v []byte) error {\n\tb.buf = protowire.AppendBytes(b.buf, v)\n\treturn nil\n}\n\n// EncodeStringBytes appends a length-prefixed raw bytes to the buffer.\n// It does not validate whether v contains valid UTF-8.\nfunc (b *Buffer) EncodeStringBytes(v string) error {\n\tb.buf = protowire.AppendString(b.buf, v)\n\treturn nil\n}\n\n// EncodeMessage appends a length-prefixed encoded message to the buffer.\nfunc (b *Buffer) EncodeMessage(m Message) error {\n\tvar err error\n\tb.buf = protowire.AppendVarint(b.buf, uint64(Size(m)))\n\tb.buf, err = marshalAppend(b.buf, m, b.deterministic)\n\treturn err\n}\n\n// DecodeVarint consumes an encoded unsigned varint from the buffer.\nfunc (b *Buffer) DecodeVarint() (uint64, error) {\n\tv, n := protowire.ConsumeVarint(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeZigzag32 consumes an encoded 32-bit zig-zag varint from the buffer.\nfunc (b *Buffer) DecodeZigzag32() (uint64, error) {\n\tv, err := b.DecodeVarint()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64((uint32(v) >> 1) ^ uint32((int32(v&1)<<31)>>31)), nil\n}\n\n// DecodeZigzag64 consumes an encoded 64-bit zig-zag varint from the buffer.\nfunc (b *Buffer) DecodeZigzag64() (uint64, error) {\n\tv, err := b.DecodeVarint()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64((uint64(v) >> 1) ^ uint64((int64(v&1)<<63)>>63)), nil\n}\n\n// DecodeFixed32 consumes a 32-bit little-endian integer from the buffer.\nfunc (b *Buffer) DecodeFixed32() (uint64, error) {\n\tv, n := protowire.ConsumeFixed32(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeFixed64 consumes a 64-bit little-endian integer from the buffer.\nfunc (b *Buffer) DecodeFixed64() (uint64, error) {\n\tv, n := protowire.ConsumeFixed64(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeRawBytes consumes a length-prefixed raw bytes from the buffer.\n// If alloc is specified, it returns a copy the raw bytes\n// rather than a sub-slice of the buffer.\nfunc (b *Buffer) DecodeRawBytes(alloc bool) ([]byte, error) {\n\tv, n := protowire.ConsumeBytes(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn nil, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\tif alloc {\n\t\tv = append([]byte(nil), v...)\n\t}\n\treturn v, nil\n}\n\n// DecodeStringBytes consumes a length-prefixed raw bytes from the buffer.\n// It does not validate whether the raw bytes contain valid UTF-8.\nfunc (b *Buffer) DecodeStringBytes() (string, error) {\n\tv, n := protowire.ConsumeString(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn \"\", protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn v, nil\n}\n\n// DecodeMessage consumes a length-prefixed message from the buffer.\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) DecodeMessage(m Message) error {\n\tv, err := b.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn UnmarshalMerge(v, m)\n}\n\n// DecodeGroup consumes a message group from the buffer.\n// It assumes that the start group marker has already been consumed and\n// consumes all bytes until (and including the end group marker).\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) DecodeGroup(m Message) error {\n\tv, n, err := consumeGroup(b.buf[b.idx:])\n\tif err != nil {\n\t\treturn err\n\t}\n\tb.idx += n\n\treturn UnmarshalMerge(v, m)\n}\n\n// consumeGroup parses b until it finds an end group marker, returning\n// the raw bytes of the message (excluding the end group marker) and the\n// the total length of the message (including the end group marker).\nfunc consumeGroup(b []byte) ([]byte, int, error) {\n\tb0 := b\n\tdepth := 1 // assume this follows a start group marker\n\tfor {\n\t\t_, wtyp, tagLen := protowire.ConsumeTag(b)\n\t\tif tagLen < 0 {\n\t\t\treturn nil, 0, protowire.ParseError(tagLen)\n\t\t}\n\t\tb = b[tagLen:]\n\n\t\tvar valLen int\n\t\tswitch wtyp {\n\t\tcase protowire.VarintType:\n\t\t\t_, valLen = protowire.ConsumeVarint(b)\n\t\tcase protowire.Fixed32Type:\n\t\t\t_, valLen = protowire.ConsumeFixed32(b)\n\t\tcase protowire.Fixed64Type:\n\t\t\t_, valLen = protowire.ConsumeFixed64(b)\n\t\tcase protowire.BytesType:\n\t\t\t_, valLen = protowire.ConsumeBytes(b)\n\t\tcase protowire.StartGroupType:\n\t\t\tdepth++\n\t\tcase protowire.EndGroupType:\n\t\t\tdepth--\n\t\tdefault:\n\t\t\treturn nil, 0, errors.New(\"proto: cannot parse reserved wire type\")\n\t\t}\n\t\tif valLen < 0 {\n\t\t\treturn nil, 0, protowire.ParseError(valLen)\n\t\t}\n\t\tb = b[valLen:]\n\n\t\tif depth == 0 {\n\t\t\treturn b0[:len(b0)-len(b)-tagLen], len(b0) - len(b), nil\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/defaults.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// SetDefaults sets unpopulated scalar fields to their default values.\n// Fields within a oneof are not set even if they have a default value.\n// SetDefaults is recursively called upon any populated message fields.\nfunc SetDefaults(m Message) {\n\tif m != nil {\n\t\tsetDefaults(MessageReflect(m))\n\t}\n}\n\nfunc setDefaults(m protoreflect.Message) {\n\tfds := m.Descriptor().Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tif !m.Has(fd) {\n\t\t\tif fd.HasDefault() && fd.ContainingOneof() == nil {\n\t\t\t\tv := fd.Default()\n\t\t\t\tif fd.Kind() == protoreflect.BytesKind {\n\t\t\t\t\tv = protoreflect.ValueOf(append([]byte(nil), v.Bytes()...)) // copy the default bytes\n\t\t\t\t}\n\t\t\t\tm.Set(fd, v)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t}\n\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\t// Handle singular message.\n\t\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\t\tif fd.Message() != nil {\n\t\t\t\tsetDefaults(m.Get(fd).Message())\n\t\t\t}\n\t\t// Handle list of messages.\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() != nil {\n\t\t\t\tls := m.Get(fd).List()\n\t\t\t\tfor i := 0; i < ls.Len(); i++ {\n\t\t\t\t\tsetDefaults(ls.Get(i).Message())\n\t\t\t\t}\n\t\t\t}\n\t\t// Handle map of messages.\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() != nil {\n\t\t\t\tms := m.Get(fd).Map()\n\t\t\t\tms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\t\tsetDefaults(v.Message())\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/deprecated.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n)\n\nvar (\n\t// Deprecated: No longer returned.\n\tErrNil = errors.New(\"proto: Marshal called with nil\")\n\n\t// Deprecated: No longer returned.\n\tErrTooLarge = errors.New(\"proto: message encodes to over 2 GB\")\n\n\t// Deprecated: No longer returned.\n\tErrInternalBadWireType = errors.New(\"proto: internal error: bad wiretype for oneof\")\n)\n\n// Deprecated: Do not use.\ntype Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }\n\n// Deprecated: Do not use.\nfunc GetStats() Stats { return Stats{} }\n\n// Deprecated: Do not use.\nfunc MarshalMessageSet(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalMessageSet([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc MarshalMessageSetJSON(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalMessageSetJSON([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc RegisterMessageSetType(Message, int32, string) {}\n\n// Deprecated: Do not use.\nfunc EnumName(m map[int32]string, v int32) string {\n\ts, ok := m[v]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(v))\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {\n\tif data[0] == '\"' {\n\t\t// New style: enums are strings.\n\t\tvar repr string\n\t\tif err := json.Unmarshal(data, &repr); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t\tval, ok := m[repr]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unrecognized enum %s value %q\", enumName, repr)\n\t\t}\n\t\treturn val, nil\n\t}\n\t// Old style: enums are ints.\n\tvar val int32\n\tif err := json.Unmarshal(data, &val); err != nil {\n\t\treturn 0, fmt.Errorf(\"cannot unmarshal %#q into enum %s\", data, enumName)\n\t}\n\treturn val, nil\n}\n\n// Deprecated: Do not use; this type existed for intenal-use only.\ntype InternalMessageInfo struct{}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) DiscardUnknown(m Message) {\n\tDiscardUnknown(m)\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) {\n\treturn protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Merge(dst, src Message) {\n\tprotoV2.Merge(MessageV2(dst), MessageV2(src))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Size(m Message) int {\n\treturn protoV2.Size(MessageV2(m))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Unmarshal(m Message, b []byte) error {\n\treturn protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m))\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/discard.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// DiscardUnknown recursively discards all unknown fields from this message\n// and all embedded messages.\n//\n// When unmarshaling a message with unrecognized fields, the tags and values\n// of such fields are preserved in the Message. This allows a later call to\n// marshal to be able to produce a message that continues to have those\n// unrecognized fields. To avoid this, DiscardUnknown is used to\n// explicitly clear the unknown fields after unmarshaling.\nfunc DiscardUnknown(m Message) {\n\tif m != nil {\n\t\tdiscardUnknown(MessageReflect(m))\n\t}\n}\n\nfunc discardUnknown(m protoreflect.Message) {\n\tm.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool {\n\t\tswitch {\n\t\t// Handle singular message.\n\t\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\t\tif fd.Message() != nil {\n\t\t\t\tdiscardUnknown(m.Get(fd).Message())\n\t\t\t}\n\t\t// Handle list of messages.\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() != nil {\n\t\t\t\tls := m.Get(fd).List()\n\t\t\t\tfor i := 0; i < ls.Len(); i++ {\n\t\t\t\t\tdiscardUnknown(ls.Get(i).Message())\n\t\t\t\t}\n\t\t\t}\n\t\t// Handle map of messages.\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() != nil {\n\t\t\t\tms := m.Get(fd).Map()\n\t\t\t\tms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\t\tdiscardUnknown(v.Message())\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\n\t// Discard unknown fields.\n\tif len(m.GetUnknown()) > 0 {\n\t\tm.SetUnknown(nil)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/extensions.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\ntype (\n\t// ExtensionDesc represents an extension descriptor and\n\t// is used to interact with an extension field in a message.\n\t//\n\t// Variables of this type are generated in code by protoc-gen-go.\n\tExtensionDesc = protoimpl.ExtensionInfo\n\n\t// ExtensionRange represents a range of message extensions.\n\t// Used in code generated by protoc-gen-go.\n\tExtensionRange = protoiface.ExtensionRangeV1\n\n\t// Deprecated: Do not use; this is an internal type.\n\tExtension = protoimpl.ExtensionFieldV1\n\n\t// Deprecated: Do not use; this is an internal type.\n\tXXX_InternalExtensions = protoimpl.ExtensionFields\n)\n\n// ErrMissingExtension reports whether the extension was not present.\nvar ErrMissingExtension = errors.New(\"proto: missing extension\")\n\nvar errNotExtendable = errors.New(\"proto: not an extendable proto.Message\")\n\n// HasExtension reports whether the extension field is present in m\n// either as an explicitly populated field or as an unknown field.\nfunc HasExtension(m Message, xt *ExtensionDesc) (has bool) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn false\n\t}\n\n\t// Check whether any populated known field matches the field number.\n\txtd := xt.TypeDescriptor()\n\tif isValidExtension(mr.Descriptor(), xtd) {\n\t\thas = mr.Has(xtd)\n\t} else {\n\t\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\t\thas = int32(fd.Number()) == xt.Field\n\t\t\treturn !has\n\t\t})\n\t}\n\n\t// Check whether any unknown field matches the field number.\n\tfor b := mr.GetUnknown(); !has && len(b) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b)\n\t\thas = int32(num) == xt.Field\n\t\tb = b[n:]\n\t}\n\treturn has\n}\n\n// ClearExtension removes the extension field from m\n// either as an explicitly populated field or as an unknown field.\nfunc ClearExtension(m Message, xt *ExtensionDesc) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\txtd := xt.TypeDescriptor()\n\tif isValidExtension(mr.Descriptor(), xtd) {\n\t\tmr.Clear(xtd)\n\t} else {\n\t\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\t\tif int32(fd.Number()) == xt.Field {\n\t\t\t\tmr.Clear(fd)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\tclearUnknown(mr, fieldNum(xt.Field))\n}\n\n// ClearAllExtensions clears all extensions from m.\n// This includes populated fields and unknown fields in the extension range.\nfunc ClearAllExtensions(m Message) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\tmr.Clear(fd)\n\t\t}\n\t\treturn true\n\t})\n\tclearUnknown(mr, mr.Descriptor().ExtensionRanges())\n}\n\n// GetExtension retrieves a proto2 extended field from m.\n//\n// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil),\n// then GetExtension parses the encoded field and returns a Go value of the specified type.\n// If the field is not present, then the default value is returned (if one is specified),\n// otherwise ErrMissingExtension is reported.\n//\n// If the descriptor is type incomplete (i.e., ExtensionDesc.ExtensionType is nil),\n// then GetExtension returns the raw encoded bytes for the extension field.\nfunc GetExtension(m Message, xt *ExtensionDesc) (interface{}, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn nil, errNotExtendable\n\t}\n\n\t// Retrieve the unknown fields for this extension field.\n\tvar bo protoreflect.RawFields\n\tfor bi := mr.GetUnknown(); len(bi) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(bi)\n\t\tif int32(num) == xt.Field {\n\t\t\tbo = append(bo, bi[:n]...)\n\t\t}\n\t\tbi = bi[n:]\n\t}\n\n\t// For type incomplete descriptors, only retrieve the unknown fields.\n\tif xt.ExtensionType == nil {\n\t\treturn []byte(bo), nil\n\t}\n\n\t// If the extension field only exists as unknown fields, unmarshal it.\n\t// This is rarely done since proto.Unmarshal eagerly unmarshals extensions.\n\txtd := xt.TypeDescriptor()\n\tif !isValidExtension(mr.Descriptor(), xtd) {\n\t\treturn nil, fmt.Errorf(\"proto: bad extended type; %T does not extend %T\", xt.ExtendedType, m)\n\t}\n\tif !mr.Has(xtd) && len(bo) > 0 {\n\t\tm2 := mr.New()\n\t\tif err := (proto.UnmarshalOptions{\n\t\t\tResolver: extensionResolver{xt},\n\t\t}.Unmarshal(bo, m2.Interface())); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m2.Has(xtd) {\n\t\t\tmr.Set(xtd, m2.Get(xtd))\n\t\t\tclearUnknown(mr, fieldNum(xt.Field))\n\t\t}\n\t}\n\n\t// Check whether the message has the extension field set or a default.\n\tvar pv protoreflect.Value\n\tswitch {\n\tcase mr.Has(xtd):\n\t\tpv = mr.Get(xtd)\n\tcase xtd.HasDefault():\n\t\tpv = xtd.Default()\n\tdefault:\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tv := xt.InterfaceOf(pv)\n\trv := reflect.ValueOf(v)\n\tif isScalarKind(rv.Kind()) {\n\t\trv2 := reflect.New(rv.Type())\n\t\trv2.Elem().Set(rv)\n\t\tv = rv2.Interface()\n\t}\n\treturn v, nil\n}\n\n// extensionResolver is a custom extension resolver that stores a single\n// extension type that takes precedence over the global registry.\ntype extensionResolver struct{ xt protoreflect.ExtensionType }\n\nfunc (r extensionResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) {\n\tif xtd := r.xt.TypeDescriptor(); xtd.FullName() == field {\n\t\treturn r.xt, nil\n\t}\n\treturn protoregistry.GlobalTypes.FindExtensionByName(field)\n}\n\nfunc (r extensionResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) {\n\tif xtd := r.xt.TypeDescriptor(); xtd.ContainingMessage().FullName() == message && xtd.Number() == field {\n\t\treturn r.xt, nil\n\t}\n\treturn protoregistry.GlobalTypes.FindExtensionByNumber(message, field)\n}\n\n// GetExtensions returns a list of the extensions values present in m,\n// corresponding with the provided list of extension descriptors, xts.\n// If an extension is missing in m, the corresponding value is nil.\nfunc GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn nil, errNotExtendable\n\t}\n\n\tvs := make([]interface{}, len(xts))\n\tfor i, xt := range xts {\n\t\tv, err := GetExtension(m, xt)\n\t\tif err != nil {\n\t\t\tif err == ErrMissingExtension {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn vs, err\n\t\t}\n\t\tvs[i] = v\n\t}\n\treturn vs, nil\n}\n\n// SetExtension sets an extension field in m to the provided value.\nfunc SetExtension(m Message, xt *ExtensionDesc, v interface{}) error {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn errNotExtendable\n\t}\n\n\trv := reflect.ValueOf(v)\n\tif reflect.TypeOf(v) != reflect.TypeOf(xt.ExtensionType) {\n\t\treturn fmt.Errorf(\"proto: bad extension value type. got: %T, want: %T\", v, xt.ExtensionType)\n\t}\n\tif rv.Kind() == reflect.Ptr {\n\t\tif rv.IsNil() {\n\t\t\treturn fmt.Errorf(\"proto: SetExtension called with nil value of type %T\", v)\n\t\t}\n\t\tif isScalarKind(rv.Elem().Kind()) {\n\t\t\tv = rv.Elem().Interface()\n\t\t}\n\t}\n\n\txtd := xt.TypeDescriptor()\n\tif !isValidExtension(mr.Descriptor(), xtd) {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %T does not extend %T\", xt.ExtendedType, m)\n\t}\n\tmr.Set(xtd, xt.ValueOf(v))\n\tclearUnknown(mr, fieldNum(xt.Field))\n\treturn nil\n}\n\n// SetRawExtension inserts b into the unknown fields of m.\n//\n// Deprecated: Use Message.ProtoReflect.SetUnknown instead.\nfunc SetRawExtension(m Message, fnum int32, b []byte) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\t// Verify that the raw field is valid.\n\tfor b0 := b; len(b0) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b0)\n\t\tif int32(num) != fnum {\n\t\t\tpanic(fmt.Sprintf(\"mismatching field number: got %d, want %d\", num, fnum))\n\t\t}\n\t\tb0 = b0[n:]\n\t}\n\n\tClearExtension(m, &ExtensionDesc{Field: fnum})\n\tmr.SetUnknown(append(mr.GetUnknown(), b...))\n}\n\n// ExtensionDescs returns a list of extension descriptors found in m,\n// containing descriptors for both populated extension fields in m and\n// also unknown fields of m that are in the extension range.\n// For the later case, an type incomplete descriptor is provided where only\n// the ExtensionDesc.Field field is populated.\n// The order of the extension descriptors is undefined.\nfunc ExtensionDescs(m Message) ([]*ExtensionDesc, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn nil, errNotExtendable\n\t}\n\n\t// Collect a set of known extension descriptors.\n\textDescs := make(map[protoreflect.FieldNumber]*ExtensionDesc)\n\tmr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\txt := fd.(protoreflect.ExtensionTypeDescriptor)\n\t\t\tif xd, ok := xt.Type().(*ExtensionDesc); ok {\n\t\t\t\textDescs[fd.Number()] = xd\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\n\t// Collect a set of unknown extension descriptors.\n\textRanges := mr.Descriptor().ExtensionRanges()\n\tfor b := mr.GetUnknown(); len(b) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b)\n\t\tif extRanges.Has(num) && extDescs[num] == nil {\n\t\t\textDescs[num] = nil\n\t\t}\n\t\tb = b[n:]\n\t}\n\n\t// Transpose the set of descriptors into a list.\n\tvar xts []*ExtensionDesc\n\tfor num, xt := range extDescs {\n\t\tif xt == nil {\n\t\t\txt = &ExtensionDesc{Field: int32(num)}\n\t\t}\n\t\txts = append(xts, xt)\n\t}\n\treturn xts, nil\n}\n\n// isValidExtension reports whether xtd is a valid extension descriptor for md.\nfunc isValidExtension(md protoreflect.MessageDescriptor, xtd protoreflect.ExtensionTypeDescriptor) bool {\n\treturn xtd.ContainingMessage() == md && md.ExtensionRanges().Has(xtd.Number())\n}\n\n// isScalarKind reports whether k is a protobuf scalar kind (except bytes).\n// This function exists for historical reasons since the representation of\n// scalars differs between v1 and v2, where v1 uses *T and v2 uses T.\nfunc isScalarKind(k reflect.Kind) bool {\n\tswitch k {\n\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// clearUnknown removes unknown fields from m where remover.Has reports true.\nfunc clearUnknown(m protoreflect.Message, remover interface {\n\tHas(protoreflect.FieldNumber) bool\n}) {\n\tvar bo protoreflect.RawFields\n\tfor bi := m.GetUnknown(); len(bi) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(bi)\n\t\tif !remover.Has(num) {\n\t\t\tbo = append(bo, bi[:n]...)\n\t\t}\n\t\tbi = bi[n:]\n\t}\n\tif bi := m.GetUnknown(); len(bi) != len(bo) {\n\t\tm.SetUnknown(bo)\n\t}\n}\n\ntype fieldNum protoreflect.FieldNumber\n\nfunc (n1 fieldNum) Has(n2 protoreflect.FieldNumber) bool {\n\treturn protoreflect.FieldNumber(n1) == n2\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/properties.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\n// StructProperties represents protocol buffer type information for a\n// generated protobuf message in the open-struct API.\n//\n// Deprecated: Do not use.\ntype StructProperties struct {\n\t// Prop are the properties for each field.\n\t//\n\t// Fields belonging to a oneof are stored in OneofTypes instead, with a\n\t// single Properties representing the parent oneof held here.\n\t//\n\t// The order of Prop matches the order of fields in the Go struct.\n\t// Struct fields that are not related to protobufs have a \"XXX_\" prefix\n\t// in the Properties.Name and must be ignored by the user.\n\tProp []*Properties\n\n\t// OneofTypes contains information about the oneof fields in this message.\n\t// It is keyed by the protobuf field name.\n\tOneofTypes map[string]*OneofProperties\n}\n\n// Properties represents the type information for a protobuf message field.\n//\n// Deprecated: Do not use.\ntype Properties struct {\n\t// Name is a placeholder name with little meaningful semantic value.\n\t// If the name has an \"XXX_\" prefix, the entire Properties must be ignored.\n\tName string\n\t// OrigName is the protobuf field name or oneof name.\n\tOrigName string\n\t// JSONName is the JSON name for the protobuf field.\n\tJSONName string\n\t// Enum is a placeholder name for enums.\n\t// For historical reasons, this is neither the Go name for the enum,\n\t// nor the protobuf name for the enum.\n\tEnum string // Deprecated: Do not use.\n\t// Weak contains the full name of the weakly referenced message.\n\tWeak string\n\t// Wire is a string representation of the wire type.\n\tWire string\n\t// WireType is the protobuf wire type for the field.\n\tWireType int\n\t// Tag is the protobuf field number.\n\tTag int\n\t// Required reports whether this is a required field.\n\tRequired bool\n\t// Optional reports whether this is a optional field.\n\tOptional bool\n\t// Repeated reports whether this is a repeated field.\n\tRepeated bool\n\t// Packed reports whether this is a packed repeated field of scalars.\n\tPacked bool\n\t// Proto3 reports whether this field operates under the proto3 syntax.\n\tProto3 bool\n\t// Oneof reports whether this field belongs within a oneof.\n\tOneof bool\n\n\t// Default is the default value in string form.\n\tDefault string\n\t// HasDefault reports whether the field has a default value.\n\tHasDefault bool\n\n\t// MapKeyProp is the properties for the key field for a map field.\n\tMapKeyProp *Properties\n\t// MapValProp is the properties for the value field for a map field.\n\tMapValProp *Properties\n}\n\n// OneofProperties represents the type information for a protobuf oneof.\n//\n// Deprecated: Do not use.\ntype OneofProperties struct {\n\t// Type is a pointer to the generated wrapper type for the field value.\n\t// This is nil for messages that are not in the open-struct API.\n\tType reflect.Type\n\t// Field is the index into StructProperties.Prop for the containing oneof.\n\tField int\n\t// Prop is the properties for the field.\n\tProp *Properties\n}\n\n// String formats the properties in the protobuf struct field tag style.\nfunc (p *Properties) String() string {\n\ts := p.Wire\n\ts += \",\" + strconv.Itoa(p.Tag)\n\tif p.Required {\n\t\ts += \",req\"\n\t}\n\tif p.Optional {\n\t\ts += \",opt\"\n\t}\n\tif p.Repeated {\n\t\ts += \",rep\"\n\t}\n\tif p.Packed {\n\t\ts += \",packed\"\n\t}\n\ts += \",name=\" + p.OrigName\n\tif p.JSONName != \"\" {\n\t\ts += \",json=\" + p.JSONName\n\t}\n\tif len(p.Enum) > 0 {\n\t\ts += \",enum=\" + p.Enum\n\t}\n\tif len(p.Weak) > 0 {\n\t\ts += \",weak=\" + p.Weak\n\t}\n\tif p.Proto3 {\n\t\ts += \",proto3\"\n\t}\n\tif p.Oneof {\n\t\ts += \",oneof\"\n\t}\n\tif p.HasDefault {\n\t\ts += \",def=\" + p.Default\n\t}\n\treturn s\n}\n\n// Parse populates p by parsing a string in the protobuf struct field tag style.\nfunc (p *Properties) Parse(tag string) {\n\t// For example: \"bytes,49,opt,name=foo,def=hello!\"\n\tfor len(tag) > 0 {\n\t\ti := strings.IndexByte(tag, ',')\n\t\tif i < 0 {\n\t\t\ti = len(tag)\n\t\t}\n\t\tswitch s := tag[:i]; {\n\t\tcase strings.HasPrefix(s, \"name=\"):\n\t\t\tp.OrigName = s[len(\"name=\"):]\n\t\tcase strings.HasPrefix(s, \"json=\"):\n\t\t\tp.JSONName = s[len(\"json=\"):]\n\t\tcase strings.HasPrefix(s, \"enum=\"):\n\t\t\tp.Enum = s[len(\"enum=\"):]\n\t\tcase strings.HasPrefix(s, \"weak=\"):\n\t\t\tp.Weak = s[len(\"weak=\"):]\n\t\tcase strings.Trim(s, \"0123456789\") == \"\":\n\t\t\tn, _ := strconv.ParseUint(s, 10, 32)\n\t\t\tp.Tag = int(n)\n\t\tcase s == \"opt\":\n\t\t\tp.Optional = true\n\t\tcase s == \"req\":\n\t\t\tp.Required = true\n\t\tcase s == \"rep\":\n\t\t\tp.Repeated = true\n\t\tcase s == \"varint\" || s == \"zigzag32\" || s == \"zigzag64\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireVarint\n\t\tcase s == \"fixed32\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireFixed32\n\t\tcase s == \"fixed64\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireFixed64\n\t\tcase s == \"bytes\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireBytes\n\t\tcase s == \"group\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireStartGroup\n\t\tcase s == \"packed\":\n\t\t\tp.Packed = true\n\t\tcase s == \"proto3\":\n\t\t\tp.Proto3 = true\n\t\tcase s == \"oneof\":\n\t\t\tp.Oneof = true\n\t\tcase strings.HasPrefix(s, \"def=\"):\n\t\t\t// The default tag is special in that everything afterwards is the\n\t\t\t// default regardless of the presence of commas.\n\t\t\tp.HasDefault = true\n\t\t\tp.Default, i = tag[len(\"def=\"):], len(tag)\n\t\t}\n\t\ttag = strings.TrimPrefix(tag[i:], \",\")\n\t}\n}\n\n// Init populates the properties from a protocol buffer struct tag.\n//\n// Deprecated: Do not use.\nfunc (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {\n\tp.Name = name\n\tp.OrigName = name\n\tif tag == \"\" {\n\t\treturn\n\t}\n\tp.Parse(tag)\n\n\tif typ != nil && typ.Kind() == reflect.Map {\n\t\tp.MapKeyProp = new(Properties)\n\t\tp.MapKeyProp.Init(nil, \"Key\", f.Tag.Get(\"protobuf_key\"), nil)\n\t\tp.MapValProp = new(Properties)\n\t\tp.MapValProp.Init(nil, \"Value\", f.Tag.Get(\"protobuf_val\"), nil)\n\t}\n}\n\nvar propertiesCache sync.Map // map[reflect.Type]*StructProperties\n\n// GetProperties returns the list of properties for the type represented by t,\n// which must be a generated protocol buffer message in the open-struct API,\n// where protobuf message fields are represented by exported Go struct fields.\n//\n// Deprecated: Use protobuf reflection instead.\nfunc GetProperties(t reflect.Type) *StructProperties {\n\tif p, ok := propertiesCache.Load(t); ok {\n\t\treturn p.(*StructProperties)\n\t}\n\tp, _ := propertiesCache.LoadOrStore(t, newProperties(t))\n\treturn p.(*StructProperties)\n}\n\nfunc newProperties(t reflect.Type) *StructProperties {\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"%v is not a generated message in the open-struct API\", t))\n\t}\n\n\tvar hasOneof bool\n\tprop := new(StructProperties)\n\n\t// Construct a list of properties for each field in the struct.\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tp := new(Properties)\n\t\tf := t.Field(i)\n\t\ttagField := f.Tag.Get(\"protobuf\")\n\t\tp.Init(f.Type, f.Name, tagField, &f)\n\n\t\ttagOneof := f.Tag.Get(\"protobuf_oneof\")\n\t\tif tagOneof != \"\" {\n\t\t\thasOneof = true\n\t\t\tp.OrigName = tagOneof\n\t\t}\n\n\t\t// Rename unrelated struct fields with the \"XXX_\" prefix since so much\n\t\t// user code simply checks for this to exclude special fields.\n\t\tif tagField == \"\" && tagOneof == \"\" && !strings.HasPrefix(p.Name, \"XXX_\") {\n\t\t\tp.Name = \"XXX_\" + p.Name\n\t\t\tp.OrigName = \"XXX_\" + p.OrigName\n\t\t} else if p.Weak != \"\" {\n\t\t\tp.Name = p.OrigName // avoid possible \"XXX_\" prefix on weak field\n\t\t}\n\n\t\tprop.Prop = append(prop.Prop, p)\n\t}\n\n\t// Construct a mapping of oneof field names to properties.\n\tif hasOneof {\n\t\tvar oneofWrappers []interface{}\n\t\tif fn, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\t\toneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[3].Interface().([]interface{})\n\t\t}\n\t\tif fn, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\t\toneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0].Interface().([]interface{})\n\t\t}\n\t\tif m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(protoreflect.ProtoMessage); ok {\n\t\t\tif m, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *protoimpl.MessageInfo }); ok {\n\t\t\t\toneofWrappers = m.ProtoMessageInfo().OneofWrappers\n\t\t\t}\n\t\t}\n\n\t\tprop.OneofTypes = make(map[string]*OneofProperties)\n\t\tfor _, wrapper := range oneofWrappers {\n\t\t\tp := &OneofProperties{\n\t\t\t\tType: reflect.ValueOf(wrapper).Type(), // *T\n\t\t\t\tProp: new(Properties),\n\t\t\t}\n\t\t\tf := p.Type.Elem().Field(0)\n\t\t\tp.Prop.Name = f.Name\n\t\t\tp.Prop.Parse(f.Tag.Get(\"protobuf\"))\n\n\t\t\t// Determine the struct field that contains this oneof.\n\t\t\t// Each wrapper is assignable to exactly one parent field.\n\t\t\tvar foundOneof bool\n\t\t\tfor i := 0; i < t.NumField() && !foundOneof; i++ {\n\t\t\t\tif p.Type.AssignableTo(t.Field(i).Type) {\n\t\t\t\t\tp.Field = i\n\t\t\t\t\tfoundOneof = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !foundOneof {\n\t\t\t\tpanic(fmt.Sprintf(\"%v is not a generated message in the open-struct API\", t))\n\t\t\t}\n\t\t\tprop.OneofTypes[p.Prop.OrigName] = p\n\t\t}\n\t}\n\n\treturn prop\n}\n\nfunc (sp *StructProperties) Len() int           { return len(sp.Prop) }\nfunc (sp *StructProperties) Less(i, j int) bool { return false }\nfunc (sp *StructProperties) Swap(i, j int)      { return }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/proto.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package proto provides functionality for handling protocol buffer messages.\n// In particular, it provides marshaling and unmarshaling between a protobuf\n// message and the binary wire format.\n//\n// See https://developers.google.com/protocol-buffers/docs/gotutorial for\n// more information.\n//\n// Deprecated: Use the \"google.golang.org/protobuf/proto\" package instead.\npackage proto\n\nimport (\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\nconst (\n\tProtoPackageIsVersion1 = true\n\tProtoPackageIsVersion2 = true\n\tProtoPackageIsVersion3 = true\n\tProtoPackageIsVersion4 = true\n)\n\n// GeneratedEnum is any enum type generated by protoc-gen-go\n// which is a named int32 kind.\n// This type exists for documentation purposes.\ntype GeneratedEnum interface{}\n\n// GeneratedMessage is any message type generated by protoc-gen-go\n// which is a pointer to a named struct kind.\n// This type exists for documentation purposes.\ntype GeneratedMessage interface{}\n\n// Message is a protocol buffer message.\n//\n// This is the v1 version of the message interface and is marginally better\n// than an empty interface as it lacks any method to programatically interact\n// with the contents of the message.\n//\n// A v2 message is declared in \"google.golang.org/protobuf/proto\".Message and\n// exposes protobuf reflection as a first-class feature of the interface.\n//\n// To convert a v1 message to a v2 message, use the MessageV2 function.\n// To convert a v2 message to a v1 message, use the MessageV1 function.\ntype Message = protoiface.MessageV1\n\n// MessageV1 converts either a v1 or v2 message to a v1 message.\n// It returns nil if m is nil.\nfunc MessageV1(m GeneratedMessage) protoiface.MessageV1 {\n\treturn protoimpl.X.ProtoMessageV1Of(m)\n}\n\n// MessageV2 converts either a v1 or v2 message to a v2 message.\n// It returns nil if m is nil.\nfunc MessageV2(m GeneratedMessage) protoV2.Message {\n\treturn protoimpl.X.ProtoMessageV2Of(m)\n}\n\n// MessageReflect returns a reflective view for a message.\n// It returns nil if m is nil.\nfunc MessageReflect(m Message) protoreflect.Message {\n\treturn protoimpl.X.MessageOf(m)\n}\n\n// Marshaler is implemented by messages that can marshal themselves.\n// This interface is used by the following functions: Size, Marshal,\n// Buffer.Marshal, and Buffer.EncodeMessage.\n//\n// Deprecated: Do not implement.\ntype Marshaler interface {\n\t// Marshal formats the encoded bytes of the message.\n\t// It should be deterministic and emit valid protobuf wire data.\n\t// The caller takes ownership of the returned buffer.\n\tMarshal() ([]byte, error)\n}\n\n// Unmarshaler is implemented by messages that can unmarshal themselves.\n// This interface is used by the following functions: Unmarshal, UnmarshalMerge,\n// Buffer.Unmarshal, Buffer.DecodeMessage, and Buffer.DecodeGroup.\n//\n// Deprecated: Do not implement.\ntype Unmarshaler interface {\n\t// Unmarshal parses the encoded bytes of the protobuf wire input.\n\t// The provided buffer is only valid for during method call.\n\t// It should not reset the receiver message.\n\tUnmarshal([]byte) error\n}\n\n// Merger is implemented by messages that can merge themselves.\n// This interface is used by the following functions: Clone and Merge.\n//\n// Deprecated: Do not implement.\ntype Merger interface {\n\t// Merge merges the contents of src into the receiver message.\n\t// It clones all data structures in src such that it aliases no mutable\n\t// memory referenced by src.\n\tMerge(src Message)\n}\n\n// RequiredNotSetError is an error type returned when\n// marshaling or unmarshaling a message with missing required fields.\ntype RequiredNotSetError struct {\n\terr error\n}\n\nfunc (e *RequiredNotSetError) Error() string {\n\tif e.err != nil {\n\t\treturn e.err.Error()\n\t}\n\treturn \"proto: required field not set\"\n}\nfunc (e *RequiredNotSetError) RequiredNotSet() bool {\n\treturn true\n}\n\nfunc checkRequiredNotSet(m protoV2.Message) error {\n\tif err := protoV2.CheckInitialized(m); err != nil {\n\t\treturn &RequiredNotSetError{err: err}\n\t}\n\treturn nil\n}\n\n// Clone returns a deep copy of src.\nfunc Clone(src Message) Message {\n\treturn MessageV1(protoV2.Clone(MessageV2(src)))\n}\n\n// Merge merges src into dst, which must be messages of the same type.\n//\n// Populated scalar fields in src are copied to dst, while populated\n// singular messages in src are merged into dst by recursively calling Merge.\n// The elements of every list field in src is appended to the corresponded\n// list fields in dst. The entries of every map field in src is copied into\n// the corresponding map field in dst, possibly replacing existing entries.\n// The unknown fields of src are appended to the unknown fields of dst.\nfunc Merge(dst, src Message) {\n\tprotoV2.Merge(MessageV2(dst), MessageV2(src))\n}\n\n// Equal reports whether two messages are equal.\n// If two messages marshal to the same bytes under deterministic serialization,\n// then Equal is guaranteed to report true.\n//\n// Two messages are equal if they are the same protobuf message type,\n// have the same set of populated known and extension field values,\n// and the same set of unknown fields values.\n//\n// Scalar values are compared with the equivalent of the == operator in Go,\n// except bytes values which are compared using bytes.Equal and\n// floating point values which specially treat NaNs as equal.\n// Message values are compared by recursively calling Equal.\n// Lists are equal if each element value is also equal.\n// Maps are equal if they have the same set of keys, where the pair of values\n// for each key is also equal.\nfunc Equal(x, y Message) bool {\n\treturn protoV2.Equal(MessageV2(x), MessageV2(y))\n}\n\nfunc isMessageSet(md protoreflect.MessageDescriptor) bool {\n\tms, ok := md.(interface{ IsMessageSet() bool })\n\treturn ok && ms.IsMessageSet()\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/registry.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protodesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\n// filePath is the path to the proto source file.\ntype filePath = string // e.g., \"google/protobuf/descriptor.proto\"\n\n// fileDescGZIP is the compressed contents of the encoded FileDescriptorProto.\ntype fileDescGZIP = []byte\n\nvar fileCache sync.Map // map[filePath]fileDescGZIP\n\n// RegisterFile is called from generated code to register the compressed\n// FileDescriptorProto with the file path for a proto source file.\n//\n// Deprecated: Use protoregistry.GlobalFiles.RegisterFile instead.\nfunc RegisterFile(s filePath, d fileDescGZIP) {\n\t// Decompress the descriptor.\n\tzr, err := gzip.NewReader(bytes.NewReader(d))\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"proto: invalid compressed file descriptor: %v\", err))\n\t}\n\tb, err := ioutil.ReadAll(zr)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"proto: invalid compressed file descriptor: %v\", err))\n\t}\n\n\t// Construct a protoreflect.FileDescriptor from the raw descriptor.\n\t// Note that DescBuilder.Build automatically registers the constructed\n\t// file descriptor with the v2 registry.\n\tprotoimpl.DescBuilder{RawDescriptor: b}.Build()\n\n\t// Locally cache the raw descriptor form for the file.\n\tfileCache.Store(s, d)\n}\n\n// FileDescriptor returns the compressed FileDescriptorProto given the file path\n// for a proto source file. It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalFiles.FindFileByPath instead.\nfunc FileDescriptor(s filePath) fileDescGZIP {\n\tif v, ok := fileCache.Load(s); ok {\n\t\treturn v.(fileDescGZIP)\n\t}\n\n\t// Find the descriptor in the v2 registry.\n\tvar b []byte\n\tif fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil {\n\t\tb, _ = Marshal(protodesc.ToFileDescriptorProto(fd))\n\t}\n\n\t// Locally cache the raw descriptor form for the file.\n\tif len(b) > 0 {\n\t\tv, _ := fileCache.LoadOrStore(s, protoimpl.X.CompressGZIP(b))\n\t\treturn v.(fileDescGZIP)\n\t}\n\treturn nil\n}\n\n// enumName is the name of an enum. For historical reasons, the enum name is\n// neither the full Go name nor the full protobuf name of the enum.\n// The name is the dot-separated combination of just the proto package that the\n// enum is declared within followed by the Go type name of the generated enum.\ntype enumName = string // e.g., \"my.proto.package.GoMessage_GoEnum\"\n\n// enumsByName maps enum values by name to their numeric counterpart.\ntype enumsByName = map[string]int32\n\n// enumsByNumber maps enum values by number to their name counterpart.\ntype enumsByNumber = map[int32]string\n\nvar enumCache sync.Map     // map[enumName]enumsByName\nvar numFilesCache sync.Map // map[protoreflect.FullName]int\n\n// RegisterEnum is called from the generated code to register the mapping of\n// enum value names to enum numbers for the enum identified by s.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterEnum instead.\nfunc RegisterEnum(s enumName, _ enumsByNumber, m enumsByName) {\n\tif _, ok := enumCache.Load(s); ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + s)\n\t}\n\tenumCache.Store(s, m)\n\n\t// This does not forward registration to the v2 registry since this API\n\t// lacks sufficient information to construct a complete v2 enum descriptor.\n}\n\n// EnumValueMap returns the mapping from enum value names to enum numbers for\n// the enum of the given name. It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindEnumByName instead.\nfunc EnumValueMap(s enumName) enumsByName {\n\tif v, ok := enumCache.Load(s); ok {\n\t\treturn v.(enumsByName)\n\t}\n\n\t// Check whether the cache is stale. If the number of files in the current\n\t// package differs, then it means that some enums may have been recently\n\t// registered upstream that we do not know about.\n\tvar protoPkg protoreflect.FullName\n\tif i := strings.LastIndexByte(s, '.'); i >= 0 {\n\t\tprotoPkg = protoreflect.FullName(s[:i])\n\t}\n\tv, _ := numFilesCache.Load(protoPkg)\n\tnumFiles, _ := v.(int)\n\tif protoregistry.GlobalFiles.NumFilesByPackage(protoPkg) == numFiles {\n\t\treturn nil // cache is up-to-date; was not found earlier\n\t}\n\n\t// Update the enum cache for all enums declared in the given proto package.\n\tnumFiles = 0\n\tprotoregistry.GlobalFiles.RangeFilesByPackage(protoPkg, func(fd protoreflect.FileDescriptor) bool {\n\t\twalkEnums(fd, func(ed protoreflect.EnumDescriptor) {\n\t\t\tname := protoimpl.X.LegacyEnumName(ed)\n\t\t\tif _, ok := enumCache.Load(name); !ok {\n\t\t\t\tm := make(enumsByName)\n\t\t\t\tevs := ed.Values()\n\t\t\t\tfor i := evs.Len() - 1; i >= 0; i-- {\n\t\t\t\t\tev := evs.Get(i)\n\t\t\t\t\tm[string(ev.Name())] = int32(ev.Number())\n\t\t\t\t}\n\t\t\t\tenumCache.LoadOrStore(name, m)\n\t\t\t}\n\t\t})\n\t\tnumFiles++\n\t\treturn true\n\t})\n\tnumFilesCache.Store(protoPkg, numFiles)\n\n\t// Check cache again for enum map.\n\tif v, ok := enumCache.Load(s); ok {\n\t\treturn v.(enumsByName)\n\t}\n\treturn nil\n}\n\n// walkEnums recursively walks all enums declared in d.\nfunc walkEnums(d interface {\n\tEnums() protoreflect.EnumDescriptors\n\tMessages() protoreflect.MessageDescriptors\n}, f func(protoreflect.EnumDescriptor)) {\n\teds := d.Enums()\n\tfor i := eds.Len() - 1; i >= 0; i-- {\n\t\tf(eds.Get(i))\n\t}\n\tmds := d.Messages()\n\tfor i := mds.Len() - 1; i >= 0; i-- {\n\t\twalkEnums(mds.Get(i), f)\n\t}\n}\n\n// messageName is the full name of protobuf message.\ntype messageName = string\n\nvar messageTypeCache sync.Map // map[messageName]reflect.Type\n\n// RegisterType is called from generated code to register the message Go type\n// for a message of the given name.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterMessage instead.\nfunc RegisterType(m Message, s messageName) {\n\tmt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s))\n\tif err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil {\n\t\tpanic(err)\n\t}\n\tmessageTypeCache.Store(s, reflect.TypeOf(m))\n}\n\n// RegisterMapType is called from generated code to register the Go map type\n// for a protobuf message representing a map entry.\n//\n// Deprecated: Do not use.\nfunc RegisterMapType(m interface{}, s messageName) {\n\tt := reflect.TypeOf(m)\n\tif t.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"invalid map kind: %v\", t))\n\t}\n\tif _, ok := messageTypeCache.Load(s); ok {\n\t\tpanic(fmt.Errorf(\"proto: duplicate proto message registered: %s\", s))\n\t}\n\tmessageTypeCache.Store(s, t)\n}\n\n// MessageType returns the message type for a named message.\n// It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead.\nfunc MessageType(s messageName) reflect.Type {\n\tif v, ok := messageTypeCache.Load(s); ok {\n\t\treturn v.(reflect.Type)\n\t}\n\n\t// Derive the message type from the v2 registry.\n\tvar t reflect.Type\n\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(s)); mt != nil {\n\t\tt = messageGoType(mt)\n\t}\n\n\t// If we could not get a concrete type, it is possible that it is a\n\t// pseudo-message for a map entry.\n\tif t == nil {\n\t\td, _ := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(s))\n\t\tif md, _ := d.(protoreflect.MessageDescriptor); md != nil && md.IsMapEntry() {\n\t\t\tkt := goTypeForField(md.Fields().ByNumber(1))\n\t\t\tvt := goTypeForField(md.Fields().ByNumber(2))\n\t\t\tt = reflect.MapOf(kt, vt)\n\t\t}\n\t}\n\n\t// Locally cache the message type for the given name.\n\tif t != nil {\n\t\tv, _ := messageTypeCache.LoadOrStore(s, t)\n\t\treturn v.(reflect.Type)\n\t}\n\treturn nil\n}\n\nfunc goTypeForField(fd protoreflect.FieldDescriptor) reflect.Type {\n\tswitch k := fd.Kind(); k {\n\tcase protoreflect.EnumKind:\n\t\tif et, _ := protoregistry.GlobalTypes.FindEnumByName(fd.Enum().FullName()); et != nil {\n\t\t\treturn enumGoType(et)\n\t\t}\n\t\treturn reflect.TypeOf(protoreflect.EnumNumber(0))\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()); mt != nil {\n\t\t\treturn messageGoType(mt)\n\t\t}\n\t\treturn reflect.TypeOf((*protoreflect.Message)(nil)).Elem()\n\tdefault:\n\t\treturn reflect.TypeOf(fd.Default().Interface())\n\t}\n}\n\nfunc enumGoType(et protoreflect.EnumType) reflect.Type {\n\treturn reflect.TypeOf(et.New(0))\n}\n\nfunc messageGoType(mt protoreflect.MessageType) reflect.Type {\n\treturn reflect.TypeOf(MessageV1(mt.Zero().Interface()))\n}\n\n// MessageName returns the full protobuf name for the given message type.\n//\n// Deprecated: Use protoreflect.MessageDescriptor.FullName instead.\nfunc MessageName(m Message) messageName {\n\tif m == nil {\n\t\treturn \"\"\n\t}\n\tif m, ok := m.(interface{ XXX_MessageName() messageName }); ok {\n\t\treturn m.XXX_MessageName()\n\t}\n\treturn messageName(protoimpl.X.MessageDescriptorOf(m).FullName())\n}\n\n// RegisterExtension is called from the generated code to register\n// the extension descriptor.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterExtension instead.\nfunc RegisterExtension(d *ExtensionDesc) {\n\tif err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil {\n\t\tpanic(err)\n\t}\n}\n\ntype extensionsByNumber = map[int32]*ExtensionDesc\n\nvar extensionCache sync.Map // map[messageName]extensionsByNumber\n\n// RegisteredExtensions returns a map of the registered extensions for the\n// provided protobuf message, indexed by the extension field number.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RangeExtensionsByMessage instead.\nfunc RegisteredExtensions(m Message) extensionsByNumber {\n\t// Check whether the cache is stale. If the number of extensions for\n\t// the given message differs, then it means that some extensions were\n\t// recently registered upstream that we do not know about.\n\ts := MessageName(m)\n\tv, _ := extensionCache.Load(s)\n\txs, _ := v.(extensionsByNumber)\n\tif protoregistry.GlobalTypes.NumExtensionsByMessage(protoreflect.FullName(s)) == len(xs) {\n\t\treturn xs // cache is up-to-date\n\t}\n\n\t// Cache is stale, re-compute the extensions map.\n\txs = make(extensionsByNumber)\n\tprotoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(s), func(xt protoreflect.ExtensionType) bool {\n\t\tif xd, ok := xt.(*ExtensionDesc); ok {\n\t\t\txs[int32(xt.TypeDescriptor().Number())] = xd\n\t\t} else {\n\t\t\t// TODO: This implies that the protoreflect.ExtensionType is a\n\t\t\t// custom type not generated by protoc-gen-go. We could try and\n\t\t\t// convert the type to an ExtensionDesc.\n\t\t}\n\t\treturn true\n\t})\n\textensionCache.Store(s, xs)\n\treturn xs\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text_decode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst wrapTextUnmarshalV2 = false\n\n// ParseError is returned by UnmarshalText.\ntype ParseError struct {\n\tMessage string\n\n\t// Deprecated: Do not use.\n\tLine, Offset int\n}\n\nfunc (e *ParseError) Error() string {\n\tif wrapTextUnmarshalV2 {\n\t\treturn e.Message\n\t}\n\tif e.Line == 1 {\n\t\treturn fmt.Sprintf(\"line 1.%d: %v\", e.Offset, e.Message)\n\t}\n\treturn fmt.Sprintf(\"line %d: %v\", e.Line, e.Message)\n}\n\n// UnmarshalText parses a proto text formatted string into m.\nfunc UnmarshalText(s string, m Message) error {\n\tif u, ok := m.(encoding.TextUnmarshaler); ok {\n\t\treturn u.UnmarshalText([]byte(s))\n\t}\n\n\tm.Reset()\n\tmi := MessageV2(m)\n\n\tif wrapTextUnmarshalV2 {\n\t\terr := prototext.UnmarshalOptions{\n\t\t\tAllowPartial: true,\n\t\t}.Unmarshal([]byte(s), mi)\n\t\tif err != nil {\n\t\t\treturn &ParseError{Message: err.Error()}\n\t\t}\n\t\treturn checkRequiredNotSet(mi)\n\t} else {\n\t\tif err := newTextParser(s).unmarshalMessage(mi.ProtoReflect(), \"\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn checkRequiredNotSet(mi)\n\t}\n}\n\ntype textParser struct {\n\ts            string // remaining input\n\tdone         bool   // whether the parsing is finished (success or error)\n\tbacked       bool   // whether back() was called\n\toffset, line int\n\tcur          token\n}\n\ntype token struct {\n\tvalue    string\n\terr      *ParseError\n\tline     int    // line number\n\toffset   int    // byte number from start of input, not start of line\n\tunquoted string // the unquoted version of value, if it was a quoted string\n}\n\nfunc newTextParser(s string) *textParser {\n\tp := new(textParser)\n\tp.s = s\n\tp.line = 1\n\tp.cur.line = 1\n\treturn p\n}\n\nfunc (p *textParser) unmarshalMessage(m protoreflect.Message, terminator string) (err error) {\n\tmd := m.Descriptor()\n\tfds := md.Fields()\n\n\t// A struct is a sequence of \"name: value\", terminated by one of\n\t// '>' or '}', or the end of the input.  A name may also be\n\t// \"[extension]\" or \"[type/url]\".\n\t//\n\t// The whole struct can also be an expanded Any message, like:\n\t// [type/url] < ... struct contents ... >\n\tseen := make(map[protoreflect.FieldNumber]bool)\n\tfor {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\tif tok.value == terminator {\n\t\t\tbreak\n\t\t}\n\t\tif tok.value == \"[\" {\n\t\t\tif err := p.unmarshalExtensionOrAny(m, seen); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// This is a normal, non-extension field.\n\t\tname := protoreflect.Name(tok.value)\n\t\tfd := fds.ByName(name)\n\t\tswitch {\n\t\tcase fd == nil:\n\t\t\tgd := fds.ByName(protoreflect.Name(strings.ToLower(string(name))))\n\t\t\tif gd != nil && gd.Kind() == protoreflect.GroupKind && gd.Message().Name() == name {\n\t\t\t\tfd = gd\n\t\t\t}\n\t\tcase fd.Kind() == protoreflect.GroupKind && fd.Message().Name() != name:\n\t\t\tfd = nil\n\t\tcase fd.IsWeak() && fd.Message().IsPlaceholder():\n\t\t\tfd = nil\n\t\t}\n\t\tif fd == nil {\n\t\t\ttypeName := string(md.FullName())\n\t\t\tif m, ok := m.Interface().(Message); ok {\n\t\t\t\tt := reflect.TypeOf(m)\n\t\t\t\tif t.Kind() == reflect.Ptr {\n\t\t\t\t\ttypeName = t.Elem().String()\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn p.errorf(\"unknown field name %q in %v\", name, typeName)\n\t\t}\n\t\tif od := fd.ContainingOneof(); od != nil && m.WhichOneof(od) != nil {\n\t\t\treturn p.errorf(\"field '%s' would overwrite already parsed oneof '%s'\", name, od.Name())\n\t\t}\n\t\tif fd.Cardinality() != protoreflect.Repeated && seen[fd.Number()] {\n\t\t\treturn p.errorf(\"non-repeated field %q was repeated\", fd.Name())\n\t\t}\n\t\tseen[fd.Number()] = true\n\n\t\t// Consume any colon.\n\t\tif err := p.checkForColon(fd); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Parse into the field.\n\t\tv := m.Get(fd)\n\t\tif !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) {\n\t\t\tv = m.Mutable(fd)\n\t\t}\n\t\tif v, err = p.unmarshalValue(v, fd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tm.Set(fd, v)\n\n\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) unmarshalExtensionOrAny(m protoreflect.Message, seen map[protoreflect.FieldNumber]bool) error {\n\tname, err := p.consumeExtensionOrAnyName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// If it contains a slash, it's an Any type URL.\n\tif slashIdx := strings.LastIndex(name, \"/\"); slashIdx >= 0 {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\t// consume an optional colon\n\t\tif tok.value == \":\" {\n\t\t\ttok = p.next()\n\t\t\tif tok.err != nil {\n\t\t\t\treturn tok.err\n\t\t\t}\n\t\t}\n\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tdefault:\n\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\n\t\tmt, err := protoregistry.GlobalTypes.FindMessageByURL(name)\n\t\tif err != nil {\n\t\t\treturn p.errorf(\"unrecognized message %q in google.protobuf.Any\", name[slashIdx+len(\"/\"):])\n\t\t}\n\t\tm2 := mt.New()\n\t\tif err := p.unmarshalMessage(m2, terminator); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb, err := protoV2.Marshal(m2.Interface())\n\t\tif err != nil {\n\t\t\treturn p.errorf(\"failed to marshal message of type %q: %v\", name[slashIdx+len(\"/\"):], err)\n\t\t}\n\n\t\turlFD := m.Descriptor().Fields().ByName(\"type_url\")\n\t\tvalFD := m.Descriptor().Fields().ByName(\"value\")\n\t\tif seen[urlFD.Number()] {\n\t\t\treturn p.errorf(\"Any message unpacked multiple times, or %q already set\", urlFD.Name())\n\t\t}\n\t\tif seen[valFD.Number()] {\n\t\t\treturn p.errorf(\"Any message unpacked multiple times, or %q already set\", valFD.Name())\n\t\t}\n\t\tm.Set(urlFD, protoreflect.ValueOfString(name))\n\t\tm.Set(valFD, protoreflect.ValueOfBytes(b))\n\t\tseen[urlFD.Number()] = true\n\t\tseen[valFD.Number()] = true\n\t\treturn nil\n\t}\n\n\txname := protoreflect.FullName(name)\n\txt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname)\n\tif xt == nil && isMessageSet(m.Descriptor()) {\n\t\txt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append(\"message_set_extension\"))\n\t}\n\tif xt == nil {\n\t\treturn p.errorf(\"unrecognized extension %q\", name)\n\t}\n\tfd := xt.TypeDescriptor()\n\tif fd.ContainingMessage().FullName() != m.Descriptor().FullName() {\n\t\treturn p.errorf(\"extension field %q does not extend message %q\", name, m.Descriptor().FullName())\n\t}\n\n\tif err := p.checkForColon(fd); err != nil {\n\t\treturn err\n\t}\n\n\tv := m.Get(fd)\n\tif !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) {\n\t\tv = m.Mutable(fd)\n\t}\n\tv, err = p.unmarshalValue(v, fd)\n\tif err != nil {\n\t\treturn err\n\t}\n\tm.Set(fd, v)\n\treturn p.consumeOptionalSeparator()\n}\n\nfunc (p *textParser) unmarshalValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn v, tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn v, p.errorf(\"unexpected EOF\")\n\t}\n\n\tswitch {\n\tcase fd.IsList():\n\t\tlv := v.List()\n\t\tvar err error\n\t\tif tok.value == \"[\" {\n\t\t\t// Repeated field with list notation, like [1,2,3].\n\t\t\tfor {\n\t\t\t\tvv := lv.NewElement()\n\t\t\t\tvv, err = p.unmarshalSingularValue(vv, fd)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tlv.Append(vv)\n\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn v, tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == \"]\" {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif tok.value != \",\" {\n\t\t\t\t\treturn v, p.errorf(\"Expected ']' or ',' found %q\", tok.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn v, nil\n\t\t}\n\n\t\t// One value of the repeated field.\n\t\tp.back()\n\t\tvv := lv.NewElement()\n\t\tvv, err = p.unmarshalSingularValue(vv, fd)\n\t\tif err != nil {\n\t\t\treturn v, err\n\t\t}\n\t\tlv.Append(vv)\n\t\treturn v, nil\n\tcase fd.IsMap():\n\t\t// The map entry should be this sequence of tokens:\n\t\t//\t< key : KEY value : VALUE >\n\t\t// However, implementations may omit key or value, and technically\n\t\t// we should support them in any order.\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tdefault:\n\t\t\treturn v, p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\n\t\tkeyFD := fd.MapKey()\n\t\tvalFD := fd.MapValue()\n\n\t\tmv := v.Map()\n\t\tkv := keyFD.Default()\n\t\tvv := mv.NewValue()\n\t\tfor {\n\t\t\ttok := p.next()\n\t\t\tif tok.err != nil {\n\t\t\t\treturn v, tok.err\n\t\t\t}\n\t\t\tif tok.value == terminator {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar err error\n\t\t\tswitch tok.value {\n\t\t\tcase \"key\":\n\t\t\t\tif err := p.consumeToken(\":\"); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif kv, err = p.unmarshalSingularValue(kv, keyFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\tcase \"value\":\n\t\t\t\tif err := p.checkForColon(valFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif vv, err = p.unmarshalSingularValue(vv, valFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tp.back()\n\t\t\t\treturn v, p.errorf(`expected \"key\", \"value\", or %q, found %q`, terminator, tok.value)\n\t\t\t}\n\t\t}\n\t\tmv.Set(kv.MapKey(), vv)\n\t\treturn v, nil\n\tdefault:\n\t\tp.back()\n\t\treturn p.unmarshalSingularValue(v, fd)\n\t}\n}\n\nfunc (p *textParser) unmarshalSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn v, tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn v, p.errorf(\"unexpected EOF\")\n\t}\n\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tswitch tok.value {\n\t\tcase \"true\", \"1\", \"t\", \"True\":\n\t\t\treturn protoreflect.ValueOfBool(true), nil\n\t\tcase \"false\", \"0\", \"f\", \"False\":\n\t\t\treturn protoreflect.ValueOfBool(false), nil\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfInt32(int32(x)), nil\n\t\t}\n\n\t\t// The C++ parser accepts large positive hex numbers that uses\n\t\t// two's complement arithmetic to represent negative numbers.\n\t\t// This feature is here for backwards compatibility with C++.\n\t\tif strings.HasPrefix(tok.value, \"0x\") {\n\t\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\t\treturn protoreflect.ValueOfInt32(int32(-(int64(^x) + 1))), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfInt64(int64(x)), nil\n\t\t}\n\n\t\t// The C++ parser accepts large positive hex numbers that uses\n\t\t// two's complement arithmetic to represent negative numbers.\n\t\t// This feature is here for backwards compatibility with C++.\n\t\tif strings.HasPrefix(tok.value, \"0x\") {\n\t\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\t\treturn protoreflect.ValueOfInt64(int64(-(int64(^x) + 1))), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfUint32(uint32(x)), nil\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfUint64(uint64(x)), nil\n\t\t}\n\tcase protoreflect.FloatKind:\n\t\t// Ignore 'f' for compatibility with output generated by C++,\n\t\t// but don't remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tv := tok.value\n\t\tif strings.HasSuffix(v, \"f\") && v != \"-inf\" && v != \"inf\" {\n\t\t\tv = v[:len(v)-len(\"f\")]\n\t\t}\n\t\tif x, err := strconv.ParseFloat(v, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfFloat32(float32(x)), nil\n\t\t}\n\tcase protoreflect.DoubleKind:\n\t\t// Ignore 'f' for compatibility with output generated by C++,\n\t\t// but don't remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tv := tok.value\n\t\tif strings.HasSuffix(v, \"f\") && v != \"-inf\" && v != \"inf\" {\n\t\t\tv = v[:len(v)-len(\"f\")]\n\t\t}\n\t\tif x, err := strconv.ParseFloat(v, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfFloat64(float64(x)), nil\n\t\t}\n\tcase protoreflect.StringKind:\n\t\tif isQuote(tok.value[0]) {\n\t\t\treturn protoreflect.ValueOfString(tok.unquoted), nil\n\t\t}\n\tcase protoreflect.BytesKind:\n\t\tif isQuote(tok.value[0]) {\n\t\t\treturn protoreflect.ValueOfBytes([]byte(tok.unquoted)), nil\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(x)), nil\n\t\t}\n\t\tvd := fd.Enum().Values().ByName(protoreflect.Name(tok.value))\n\t\tif vd != nil {\n\t\t\treturn protoreflect.ValueOfEnum(vd.Number()), nil\n\t\t}\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tdefault:\n\t\t\treturn v, p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\t\terr := p.unmarshalMessage(v.Message(), terminator)\n\t\treturn v, err\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid kind %v\", fd.Kind()))\n\t}\n\treturn v, p.errorf(\"invalid %v: %v\", fd.Kind(), tok.value)\n}\n\n// Consume a ':' from the input stream (if the next token is a colon),\n// returning an error if a colon is needed but not present.\nfunc (p *textParser) checkForColon(fd protoreflect.FieldDescriptor) *ParseError {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \":\" {\n\t\tif fd.Message() == nil {\n\t\t\treturn p.errorf(\"expected ':', found %q\", tok.value)\n\t\t}\n\t\tp.back()\n\t}\n\treturn nil\n}\n\n// consumeExtensionOrAnyName consumes an extension name or an Any type URL and\n// the following ']'. It returns the name or URL consumed.\nfunc (p *textParser) consumeExtensionOrAnyName() (string, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn \"\", tok.err\n\t}\n\n\t// If extension name or type url is quoted, it's a single token.\n\tif len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {\n\t\tname, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn name, p.consumeToken(\"]\")\n\t}\n\n\t// Consume everything up to \"]\"\n\tvar parts []string\n\tfor tok.value != \"]\" {\n\t\tparts = append(parts, tok.value)\n\t\ttok = p.next()\n\t\tif tok.err != nil {\n\t\t\treturn \"\", p.errorf(\"unrecognized type_url or extension name: %s\", tok.err)\n\t\t}\n\t\tif p.done && tok.value != \"]\" {\n\t\t\treturn \"\", p.errorf(\"unclosed type_url or extension name\")\n\t\t}\n\t}\n\treturn strings.Join(parts, \"\"), nil\n}\n\n// consumeOptionalSeparator consumes an optional semicolon or comma.\n// It is used in unmarshalMessage to provide backward compatibility.\nfunc (p *textParser) consumeOptionalSeparator() error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \";\" && tok.value != \",\" {\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) errorf(format string, a ...interface{}) *ParseError {\n\tpe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}\n\tp.cur.err = pe\n\tp.done = true\n\treturn pe\n}\n\nfunc (p *textParser) skipWhitespace() {\n\ti := 0\n\tfor i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {\n\t\tif p.s[i] == '#' {\n\t\t\t// comment; skip to end of line or input\n\t\t\tfor i < len(p.s) && p.s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(p.s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif p.s[i] == '\\n' {\n\t\t\tp.line++\n\t\t}\n\t\ti++\n\t}\n\tp.offset += i\n\tp.s = p.s[i:len(p.s)]\n\tif len(p.s) == 0 {\n\t\tp.done = true\n\t}\n}\n\nfunc (p *textParser) advance() {\n\t// Skip whitespace\n\tp.skipWhitespace()\n\tif p.done {\n\t\treturn\n\t}\n\n\t// Start of non-whitespace\n\tp.cur.err = nil\n\tp.cur.offset, p.cur.line = p.offset, p.line\n\tp.cur.unquoted = \"\"\n\tswitch p.s[0] {\n\tcase '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':\n\t\t// Single symbol\n\t\tp.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]\n\tcase '\"', '\\'':\n\t\t// Quoted string\n\t\ti := 1\n\t\tfor i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\\n' {\n\t\t\tif p.s[i] == '\\\\' && i+1 < len(p.s) {\n\t\t\t\t// skip escaped char\n\t\t\t\ti++\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\tif i >= len(p.s) || p.s[i] != p.s[0] {\n\t\t\tp.errorf(\"unmatched quote\")\n\t\t\treturn\n\t\t}\n\t\tunq, err := unquoteC(p.s[1:i], rune(p.s[0]))\n\t\tif err != nil {\n\t\t\tp.errorf(\"invalid quoted string %s: %v\", p.s[0:i+1], err)\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]\n\t\tp.cur.unquoted = unq\n\tdefault:\n\t\ti := 0\n\t\tfor i < len(p.s) && isIdentOrNumberChar(p.s[i]) {\n\t\t\ti++\n\t\t}\n\t\tif i == 0 {\n\t\t\tp.errorf(\"unexpected byte %#x\", p.s[0])\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]\n\t}\n\tp.offset += len(p.cur.value)\n}\n\n// Back off the parser by one token. Can only be done between calls to next().\n// It makes the next advance() a no-op.\nfunc (p *textParser) back() { p.backed = true }\n\n// Advances the parser and returns the new current token.\nfunc (p *textParser) next() *token {\n\tif p.backed || p.done {\n\t\tp.backed = false\n\t\treturn &p.cur\n\t}\n\tp.advance()\n\tif p.done {\n\t\tp.cur.value = \"\"\n\t} else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {\n\t\t// Look for multiple quoted strings separated by whitespace,\n\t\t// and concatenate them.\n\t\tcat := p.cur\n\t\tfor {\n\t\t\tp.skipWhitespace()\n\t\t\tif p.done || !isQuote(p.s[0]) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tp.advance()\n\t\t\tif p.cur.err != nil {\n\t\t\t\treturn &p.cur\n\t\t\t}\n\t\t\tcat.value += \" \" + p.cur.value\n\t\t\tcat.unquoted += p.cur.unquoted\n\t\t}\n\t\tp.done = false // parser may have seen EOF, but we want to return cat\n\t\tp.cur = cat\n\t}\n\treturn &p.cur\n}\n\nfunc (p *textParser) consumeToken(s string) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != s {\n\t\tp.back()\n\t\treturn p.errorf(\"expected %q, found %q\", s, tok.value)\n\t}\n\treturn nil\n}\n\nvar errBadUTF8 = errors.New(\"proto: bad UTF-8\")\n\nfunc unquoteC(s string, quote rune) (string, error) {\n\t// This is based on C++'s tokenizer.cc.\n\t// Despite its name, this is *not* parsing C syntax.\n\t// For instance, \"\\0\" is an invalid quoted string.\n\n\t// Avoid allocation in trivial cases.\n\tsimple := true\n\tfor _, r := range s {\n\t\tif r == '\\\\' || r == quote {\n\t\t\tsimple = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif simple {\n\t\treturn s, nil\n\t}\n\n\tbuf := make([]byte, 0, 3*len(s)/2)\n\tfor len(s) > 0 {\n\t\tr, n := utf8.DecodeRuneInString(s)\n\t\tif r == utf8.RuneError && n == 1 {\n\t\t\treturn \"\", errBadUTF8\n\t\t}\n\t\ts = s[n:]\n\t\tif r != '\\\\' {\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tbuf = append(buf, byte(r))\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, string(r)...)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, tail, err := unescape(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbuf = append(buf, ch...)\n\t\ts = tail\n\t}\n\treturn string(buf), nil\n}\n\nfunc unescape(s string) (ch string, tail string, err error) {\n\tr, n := utf8.DecodeRuneInString(s)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn \"\", \"\", errBadUTF8\n\t}\n\ts = s[n:]\n\tswitch r {\n\tcase 'a':\n\t\treturn \"\\a\", s, nil\n\tcase 'b':\n\t\treturn \"\\b\", s, nil\n\tcase 'f':\n\t\treturn \"\\f\", s, nil\n\tcase 'n':\n\t\treturn \"\\n\", s, nil\n\tcase 'r':\n\t\treturn \"\\r\", s, nil\n\tcase 't':\n\t\treturn \"\\t\", s, nil\n\tcase 'v':\n\t\treturn \"\\v\", s, nil\n\tcase '?':\n\t\treturn \"?\", s, nil // trigraph workaround\n\tcase '\\'', '\"', '\\\\':\n\t\treturn string(r), s, nil\n\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\tif len(s) < 2 {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires 2 following digits`, r)\n\t\t}\n\t\tss := string(r) + s[:2]\n\t\ts = s[2:]\n\t\ti, err := strconv.ParseUint(ss, 8, 8)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%s contains non-octal digits`, ss)\n\t\t}\n\t\treturn string([]byte{byte(i)}), s, nil\n\tcase 'x', 'X', 'u', 'U':\n\t\tvar n int\n\t\tswitch r {\n\t\tcase 'x', 'X':\n\t\t\tn = 2\n\t\tcase 'u':\n\t\t\tn = 4\n\t\tcase 'U':\n\t\t\tn = 8\n\t\t}\n\t\tif len(s) < n {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires %d following digits`, r, n)\n\t\t}\n\t\tss := s[:n]\n\t\ts = s[n:]\n\t\ti, err := strconv.ParseUint(ss, 16, 64)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s contains non-hexadecimal digits`, r, ss)\n\t\t}\n\t\tif r == 'x' || r == 'X' {\n\t\t\treturn string([]byte{byte(i)}), s, nil\n\t\t}\n\t\tif i > utf8.MaxRune {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s is not a valid Unicode code point`, r, ss)\n\t\t}\n\t\treturn string(rune(i)), s, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(`unknown escape \\%c`, r)\n}\n\nfunc isIdentOrNumberChar(c byte) bool {\n\tswitch {\n\tcase 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':\n\t\treturn true\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\t}\n\tswitch c {\n\tcase '-', '+', '.', '_':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isWhitespace(c byte) bool {\n\tswitch c {\n\tcase ' ', '\\t', '\\n', '\\r':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isQuote(c byte) bool {\n\tswitch c {\n\tcase '\"', '\\'':\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text_encode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst wrapTextMarshalV2 = false\n\n// TextMarshaler is a configurable text format marshaler.\ntype TextMarshaler struct {\n\tCompact   bool // use compact text format (one line)\n\tExpandAny bool // expand google.protobuf.Any messages of known types\n}\n\n// Marshal writes the proto text format of m to w.\nfunc (tm *TextMarshaler) Marshal(w io.Writer, m Message) error {\n\tb, err := tm.marshal(m)\n\tif len(b) > 0 {\n\t\tif _, err := w.Write(b); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn err\n}\n\n// Text returns a proto text formatted string of m.\nfunc (tm *TextMarshaler) Text(m Message) string {\n\tb, _ := tm.marshal(m)\n\treturn string(b)\n}\n\nfunc (tm *TextMarshaler) marshal(m Message) ([]byte, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn []byte(\"<nil>\"), nil\n\t}\n\n\tif wrapTextMarshalV2 {\n\t\tif m, ok := m.(encoding.TextMarshaler); ok {\n\t\t\treturn m.MarshalText()\n\t\t}\n\n\t\topts := prototext.MarshalOptions{\n\t\t\tAllowPartial: true,\n\t\t\tEmitUnknown:  true,\n\t\t}\n\t\tif !tm.Compact {\n\t\t\topts.Indent = \"  \"\n\t\t}\n\t\tif !tm.ExpandAny {\n\t\t\topts.Resolver = (*protoregistry.Types)(nil)\n\t\t}\n\t\treturn opts.Marshal(mr.Interface())\n\t} else {\n\t\tw := &textWriter{\n\t\t\tcompact:   tm.Compact,\n\t\t\texpandAny: tm.ExpandAny,\n\t\t\tcomplete:  true,\n\t\t}\n\n\t\tif m, ok := m.(encoding.TextMarshaler); ok {\n\t\t\tb, err := m.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tw.Write(b)\n\t\t\treturn w.buf, nil\n\t\t}\n\n\t\terr := w.writeMessage(mr)\n\t\treturn w.buf, err\n\t}\n}\n\nvar (\n\tdefaultTextMarshaler = TextMarshaler{}\n\tcompactTextMarshaler = TextMarshaler{Compact: true}\n)\n\n// MarshalText writes the proto text format of m to w.\nfunc MarshalText(w io.Writer, m Message) error { return defaultTextMarshaler.Marshal(w, m) }\n\n// MarshalTextString returns a proto text formatted string of m.\nfunc MarshalTextString(m Message) string { return defaultTextMarshaler.Text(m) }\n\n// CompactText writes the compact proto text format of m to w.\nfunc CompactText(w io.Writer, m Message) error { return compactTextMarshaler.Marshal(w, m) }\n\n// CompactTextString returns a compact proto text formatted string of m.\nfunc CompactTextString(m Message) string { return compactTextMarshaler.Text(m) }\n\nvar (\n\tnewline         = []byte(\"\\n\")\n\tendBraceNewline = []byte(\"}\\n\")\n\tposInf          = []byte(\"inf\")\n\tnegInf          = []byte(\"-inf\")\n\tnan             = []byte(\"nan\")\n)\n\n// textWriter is an io.Writer that tracks its indentation level.\ntype textWriter struct {\n\tcompact   bool // same as TextMarshaler.Compact\n\texpandAny bool // same as TextMarshaler.ExpandAny\n\tcomplete  bool // whether the current position is a complete line\n\tindent    int  // indentation level; never negative\n\tbuf       []byte\n}\n\nfunc (w *textWriter) Write(p []byte) (n int, _ error) {\n\tnewlines := bytes.Count(p, newline)\n\tif newlines == 0 {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.buf = append(w.buf, p...)\n\t\tw.complete = false\n\t\treturn len(p), nil\n\t}\n\n\tfrags := bytes.SplitN(p, newline, newlines+1)\n\tif w.compact {\n\t\tfor i, frag := range frags {\n\t\t\tif i > 0 {\n\t\t\t\tw.buf = append(w.buf, ' ')\n\t\t\t\tn++\n\t\t\t}\n\t\t\tw.buf = append(w.buf, frag...)\n\t\t\tn += len(frag)\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tfor i, frag := range frags {\n\t\tif w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.buf = append(w.buf, frag...)\n\t\tn += len(frag)\n\t\tif i+1 < len(frags) {\n\t\t\tw.buf = append(w.buf, '\\n')\n\t\t\tn++\n\t\t}\n\t}\n\tw.complete = len(frags[len(frags)-1]) == 0\n\treturn n, nil\n}\n\nfunc (w *textWriter) WriteByte(c byte) error {\n\tif w.compact && c == '\\n' {\n\t\tc = ' '\n\t}\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\tw.buf = append(w.buf, c)\n\tw.complete = c == '\\n'\n\treturn nil\n}\n\nfunc (w *textWriter) writeName(fd protoreflect.FieldDescriptor) {\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\tw.complete = false\n\n\tif fd.Kind() != protoreflect.GroupKind {\n\t\tw.buf = append(w.buf, fd.Name()...)\n\t\tw.WriteByte(':')\n\t} else {\n\t\t// Use message type name for group field name.\n\t\tw.buf = append(w.buf, fd.Message().Name()...)\n\t}\n\n\tif !w.compact {\n\t\tw.WriteByte(' ')\n\t}\n}\n\nfunc requiresQuotes(u string) bool {\n\t// When type URL contains any characters except [0-9A-Za-z./\\-]*, it must be quoted.\n\tfor _, ch := range u {\n\t\tswitch {\n\t\tcase ch == '.' || ch == '/' || ch == '_':\n\t\t\tcontinue\n\t\tcase '0' <= ch && ch <= '9':\n\t\t\tcontinue\n\t\tcase 'A' <= ch && ch <= 'Z':\n\t\t\tcontinue\n\t\tcase 'a' <= ch && ch <= 'z':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// writeProto3Any writes an expanded google.protobuf.Any message.\n//\n// It returns (false, nil) if sv value can't be unmarshaled (e.g. because\n// required messages are not linked in).\n//\n// It returns (true, error) when sv was written in expanded format or an error\n// was encountered.\nfunc (w *textWriter) writeProto3Any(m protoreflect.Message) (bool, error) {\n\tmd := m.Descriptor()\n\tfdURL := md.Fields().ByName(\"type_url\")\n\tfdVal := md.Fields().ByName(\"value\")\n\n\turl := m.Get(fdURL).String()\n\tmt, err := protoregistry.GlobalTypes.FindMessageByURL(url)\n\tif err != nil {\n\t\treturn false, nil\n\t}\n\n\tb := m.Get(fdVal).Bytes()\n\tm2 := mt.New()\n\tif err := proto.Unmarshal(b, m2.Interface()); err != nil {\n\t\treturn false, nil\n\t}\n\tw.Write([]byte(\"[\"))\n\tif requiresQuotes(url) {\n\t\tw.writeQuotedString(url)\n\t} else {\n\t\tw.Write([]byte(url))\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"]:<\"))\n\t} else {\n\t\tw.Write([]byte(\"]: <\\n\"))\n\t\tw.indent++\n\t}\n\tif err := w.writeMessage(m2); err != nil {\n\t\treturn true, err\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"> \"))\n\t} else {\n\t\tw.indent--\n\t\tw.Write([]byte(\">\\n\"))\n\t}\n\treturn true, nil\n}\n\nfunc (w *textWriter) writeMessage(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif w.expandAny && md.FullName() == \"google.protobuf.Any\" {\n\t\tif canExpand, err := w.writeProto3Any(m); canExpand {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); {\n\t\tfd := fds.Get(i)\n\t\tif od := fd.ContainingOneof(); od != nil {\n\t\t\tfd = m.WhichOneof(od)\n\t\t\ti += od.Fields().Len()\n\t\t} else {\n\t\t\ti++\n\t\t}\n\t\tif fd == nil || !m.Has(fd) {\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tlv := m.Get(fd).List()\n\t\t\tfor j := 0; j < lv.Len(); j++ {\n\t\t\t\tw.writeName(fd)\n\t\t\t\tv := lv.Get(j)\n\t\t\t\tif err := w.writeSingularValue(v, fd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tkfd := fd.MapKey()\n\t\t\tvfd := fd.MapValue()\n\t\t\tmv := m.Get(fd).Map()\n\n\t\t\ttype entry struct{ key, val protoreflect.Value }\n\t\t\tvar entries []entry\n\t\t\tmv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\tentries = append(entries, entry{k.Value(), v})\n\t\t\t\treturn true\n\t\t\t})\n\t\t\tsort.Slice(entries, func(i, j int) bool {\n\t\t\t\tswitch kfd.Kind() {\n\t\t\t\tcase protoreflect.BoolKind:\n\t\t\t\t\treturn !entries[i].key.Bool() && entries[j].key.Bool()\n\t\t\t\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\t\t\t\treturn entries[i].key.Int() < entries[j].key.Int()\n\t\t\t\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\t\t\t\treturn entries[i].key.Uint() < entries[j].key.Uint()\n\t\t\t\tcase protoreflect.StringKind:\n\t\t\t\t\treturn entries[i].key.String() < entries[j].key.String()\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"invalid kind\")\n\t\t\t\t}\n\t\t\t})\n\t\t\tfor _, entry := range entries {\n\t\t\t\tw.writeName(fd)\n\t\t\t\tw.WriteByte('<')\n\t\t\t\tif !w.compact {\n\t\t\t\t\tw.WriteByte('\\n')\n\t\t\t\t}\n\t\t\t\tw.indent++\n\t\t\t\tw.writeName(kfd)\n\t\t\t\tif err := w.writeSingularValue(entry.key, kfd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t\tw.writeName(vfd)\n\t\t\t\tif err := w.writeSingularValue(entry.val, vfd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t\tw.indent--\n\t\t\t\tw.WriteByte('>')\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t}\n\t\tdefault:\n\t\t\tw.writeName(fd)\n\t\t\tif err := w.writeSingularValue(m.Get(fd), fd); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tw.WriteByte('\\n')\n\t\t}\n\t}\n\n\tif b := m.GetUnknown(); len(b) > 0 {\n\t\tw.writeUnknownFields(b)\n\t}\n\treturn w.writeExtensions(m)\n}\n\nfunc (w *textWriter) writeSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tswitch fd.Kind() {\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tswitch vf := v.Float(); {\n\t\tcase math.IsInf(vf, +1):\n\t\t\tw.Write(posInf)\n\t\tcase math.IsInf(vf, -1):\n\t\t\tw.Write(negInf)\n\t\tcase math.IsNaN(vf):\n\t\t\tw.Write(nan)\n\t\tdefault:\n\t\t\tfmt.Fprint(w, v.Interface())\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// NOTE: This does not validate UTF-8 for historical reasons.\n\t\tw.writeQuotedString(string(v.String()))\n\tcase protoreflect.BytesKind:\n\t\tw.writeQuotedString(string(v.Bytes()))\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tvar bra, ket byte = '<', '>'\n\t\tif fd.Kind() == protoreflect.GroupKind {\n\t\t\tbra, ket = '{', '}'\n\t\t}\n\t\tw.WriteByte(bra)\n\t\tif !w.compact {\n\t\t\tw.WriteByte('\\n')\n\t\t}\n\t\tw.indent++\n\t\tm := v.Message()\n\t\tif m2, ok := m.Interface().(encoding.TextMarshaler); ok {\n\t\t\tb, err := m2.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tw.Write(b)\n\t\t} else {\n\t\t\tw.writeMessage(m)\n\t\t}\n\t\tw.indent--\n\t\tw.WriteByte(ket)\n\tcase protoreflect.EnumKind:\n\t\tif ev := fd.Enum().Values().ByNumber(v.Enum()); ev != nil {\n\t\t\tfmt.Fprint(w, ev.Name())\n\t\t} else {\n\t\t\tfmt.Fprint(w, v.Enum())\n\t\t}\n\tdefault:\n\t\tfmt.Fprint(w, v.Interface())\n\t}\n\treturn nil\n}\n\n// writeQuotedString writes a quoted string in the protocol buffer text format.\nfunc (w *textWriter) writeQuotedString(s string) {\n\tw.WriteByte('\"')\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch c := s[i]; c {\n\t\tcase '\\n':\n\t\t\tw.buf = append(w.buf, `\\n`...)\n\t\tcase '\\r':\n\t\t\tw.buf = append(w.buf, `\\r`...)\n\t\tcase '\\t':\n\t\t\tw.buf = append(w.buf, `\\t`...)\n\t\tcase '\"':\n\t\t\tw.buf = append(w.buf, `\\\"`...)\n\t\tcase '\\\\':\n\t\t\tw.buf = append(w.buf, `\\\\`...)\n\t\tdefault:\n\t\t\tif isPrint := c >= 0x20 && c < 0x7f; isPrint {\n\t\t\t\tw.buf = append(w.buf, c)\n\t\t\t} else {\n\t\t\t\tw.buf = append(w.buf, fmt.Sprintf(`\\%03o`, c)...)\n\t\t\t}\n\t\t}\n\t}\n\tw.WriteByte('\"')\n}\n\nfunc (w *textWriter) writeUnknownFields(b []byte) {\n\tif !w.compact {\n\t\tfmt.Fprintf(w, \"/* %d unknown bytes */\\n\", len(b))\n\t}\n\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn\n\t\t}\n\t\tb = b[n:]\n\n\t\tif wtyp == protowire.EndGroupType {\n\t\t\tw.indent--\n\t\t\tw.Write(endBraceNewline)\n\t\t\tcontinue\n\t\t}\n\t\tfmt.Fprint(w, num)\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\tw.WriteByte(':')\n\t\t}\n\t\tif !w.compact || wtyp == protowire.StartGroupType {\n\t\t\tw.WriteByte(' ')\n\t\t}\n\t\tswitch wtyp {\n\t\tcase protowire.VarintType:\n\t\t\tv, n := protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.Fixed32Type:\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.Fixed64Type:\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.BytesType:\n\t\t\tv, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprintf(w, \"%q\", v)\n\t\tcase protowire.StartGroupType:\n\t\t\tw.WriteByte('{')\n\t\t\tw.indent++\n\t\tdefault:\n\t\t\tfmt.Fprintf(w, \"/* unknown wire type %d */\", wtyp)\n\t\t}\n\t\tw.WriteByte('\\n')\n\t}\n}\n\n// writeExtensions writes all the extensions in m.\nfunc (w *textWriter) writeExtensions(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif md.ExtensionRanges().Len() == 0 {\n\t\treturn nil\n\t}\n\n\ttype ext struct {\n\t\tdesc protoreflect.FieldDescriptor\n\t\tval  protoreflect.Value\n\t}\n\tvar exts []ext\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\texts = append(exts, ext{fd, v})\n\t\t}\n\t\treturn true\n\t})\n\tsort.Slice(exts, func(i, j int) bool {\n\t\treturn exts[i].desc.Number() < exts[j].desc.Number()\n\t})\n\n\tfor _, ext := range exts {\n\t\t// For message set, use the name of the message as the extension name.\n\t\tname := string(ext.desc.FullName())\n\t\tif isMessageSet(ext.desc.ContainingMessage()) {\n\t\t\tname = strings.TrimSuffix(name, \".message_set_extension\")\n\t\t}\n\n\t\tif !ext.desc.IsList() {\n\t\t\tif err := w.writeSingularExtension(name, ext.val, ext.desc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tlv := ext.val.List()\n\t\t\tfor i := 0; i < lv.Len(); i++ {\n\t\t\t\tif err := w.writeSingularExtension(name, lv.Get(i), ext.desc); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (w *textWriter) writeSingularExtension(name string, v protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tfmt.Fprintf(w, \"[%s]:\", name)\n\tif !w.compact {\n\t\tw.WriteByte(' ')\n\t}\n\tif err := w.writeSingularValue(v, fd); err != nil {\n\t\treturn err\n\t}\n\tw.WriteByte('\\n')\n\treturn nil\n}\n\nfunc (w *textWriter) writeIndent() {\n\tif !w.complete {\n\t\treturn\n\t}\n\tfor i := 0; i < w.indent*2; i++ {\n\t\tw.buf = append(w.buf, ' ')\n\t}\n\tw.complete = false\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/wire.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Size returns the size in bytes of the wire-format encoding of m.\nfunc Size(m Message) int {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmi := MessageV2(m)\n\treturn protoV2.Size(mi)\n}\n\n// Marshal returns the wire-format encoding of m.\nfunc Marshal(m Message) ([]byte, error) {\n\tb, err := marshalAppend(nil, m, false)\n\tif b == nil {\n\t\tb = zeroBytes\n\t}\n\treturn b, err\n}\n\nvar zeroBytes = make([]byte, 0, 0)\n\nfunc marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) {\n\tif m == nil {\n\t\treturn nil, ErrNil\n\t}\n\tmi := MessageV2(m)\n\tnbuf, err := protoV2.MarshalOptions{\n\t\tDeterministic: deterministic,\n\t\tAllowPartial:  true,\n\t}.MarshalAppend(buf, mi)\n\tif err != nil {\n\t\treturn buf, err\n\t}\n\tif len(buf) == len(nbuf) {\n\t\tif !mi.ProtoReflect().IsValid() {\n\t\t\treturn buf, ErrNil\n\t\t}\n\t}\n\treturn nbuf, checkRequiredNotSet(mi)\n}\n\n// Unmarshal parses a wire-format message in b and places the decoded results in m.\n//\n// Unmarshal resets m before starting to unmarshal, so any existing data in m is always\n// removed. Use UnmarshalMerge to preserve and append to existing data.\nfunc Unmarshal(b []byte, m Message) error {\n\tm.Reset()\n\treturn UnmarshalMerge(b, m)\n}\n\n// UnmarshalMerge parses a wire-format message in b and places the decoded results in m.\nfunc UnmarshalMerge(b []byte, m Message) error {\n\tmi := MessageV2(m)\n\tout, err := protoV2.UnmarshalOptions{\n\t\tAllowPartial: true,\n\t\tMerge:        true,\n\t}.UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: mi.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tif out.Flags&protoiface.UnmarshalInitialized > 0 {\n\t\treturn nil\n\t}\n\treturn checkRequiredNotSet(mi)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\n// Bool stores v in a new bool value and returns a pointer to it.\nfunc Bool(v bool) *bool { return &v }\n\n// Int stores v in a new int32 value and returns a pointer to it.\n//\n// Deprecated: Use Int32 instead.\nfunc Int(v int) *int32 { return Int32(int32(v)) }\n\n// Int32 stores v in a new int32 value and returns a pointer to it.\nfunc Int32(v int32) *int32 { return &v }\n\n// Int64 stores v in a new int64 value and returns a pointer to it.\nfunc Int64(v int64) *int64 { return &v }\n\n// Uint32 stores v in a new uint32 value and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 { return &v }\n\n// Uint64 stores v in a new uint64 value and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 { return &v }\n\n// Float32 stores v in a new float32 value and returns a pointer to it.\nfunc Float32(v float32) *float32 { return &v }\n\n// Float64 stores v in a new float64 value and returns a pointer to it.\nfunc Float64(v float64) *float64 { return &v }\n\n// String stores v in a new string value and returns a pointer to it.\nfunc String(v string) *string { return &v }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/any/any.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/any/any.proto\n\npackage any\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/any.proto.\n\ntype Any = anypb.Any\n\nvar File_github_com_golang_protobuf_ptypes_any_any_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = []byte{\n\t0x0a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x2b, 0x5a, 0x29,\n\t0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e,\n\t0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65,\n\t0x73, 0x2f, 0x61, 0x6e, 0x79, 0x3b, 0x61, 0x6e, 0x79, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_any_any_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_any_any_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_any_any_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_any_any_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/any.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\tanypb \"github.com/golang/protobuf/ptypes/any\"\n)\n\nconst urlPrefix = \"type.googleapis.com/\"\n\n// AnyMessageName returns the message name contained in an anypb.Any message.\n// Most type assertions should use the Is function instead.\n//\n// Deprecated: Call the any.MessageName method instead.\nfunc AnyMessageName(any *anypb.Any) (string, error) {\n\tname, err := anyMessageName(any)\n\treturn string(name), err\n}\nfunc anyMessageName(any *anypb.Any) (protoreflect.FullName, error) {\n\tif any == nil {\n\t\treturn \"\", fmt.Errorf(\"message is nil\")\n\t}\n\tname := protoreflect.FullName(any.TypeUrl)\n\tif i := strings.LastIndex(any.TypeUrl, \"/\"); i >= 0 {\n\t\tname = name[i+len(\"/\"):]\n\t}\n\tif !name.IsValid() {\n\t\treturn \"\", fmt.Errorf(\"message type url %q is invalid\", any.TypeUrl)\n\t}\n\treturn name, nil\n}\n\n// MarshalAny marshals the given message m into an anypb.Any message.\n//\n// Deprecated: Call the anypb.New function instead.\nfunc MarshalAny(m proto.Message) (*anypb.Any, error) {\n\tswitch dm := m.(type) {\n\tcase DynamicAny:\n\t\tm = dm.Message\n\tcase *DynamicAny:\n\t\tif dm == nil {\n\t\t\treturn nil, proto.ErrNil\n\t\t}\n\t\tm = dm.Message\n\t}\n\tb, err := proto.Marshal(m)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &anypb.Any{TypeUrl: urlPrefix + proto.MessageName(m), Value: b}, nil\n}\n\n// Empty returns a new message of the type specified in an anypb.Any message.\n// It returns protoregistry.NotFound if the corresponding message type could not\n// be resolved in the global registry.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead\n// to resolve the message name and create a new instance of it.\nfunc Empty(any *anypb.Any) (proto.Message, error) {\n\tname, err := anyMessageName(any)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmt, err := protoregistry.GlobalTypes.FindMessageByName(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.MessageV1(mt.New().Interface()), nil\n}\n\n// UnmarshalAny unmarshals the encoded value contained in the anypb.Any message\n// into the provided message m. It returns an error if the target message\n// does not match the type in the Any message or if an unmarshal error occurs.\n//\n// The target message m may be a *DynamicAny message. If the underlying message\n// type could not be resolved, then this returns protoregistry.NotFound.\n//\n// Deprecated: Call the any.UnmarshalTo method instead.\nfunc UnmarshalAny(any *anypb.Any, m proto.Message) error {\n\tif dm, ok := m.(*DynamicAny); ok {\n\t\tif dm.Message == nil {\n\t\t\tvar err error\n\t\t\tdm.Message, err = Empty(any)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tm = dm.Message\n\t}\n\n\tanyName, err := AnyMessageName(any)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmsgName := proto.MessageName(m)\n\tif anyName != msgName {\n\t\treturn fmt.Errorf(\"mismatched message type: got %q want %q\", anyName, msgName)\n\t}\n\treturn proto.Unmarshal(any.Value, m)\n}\n\n// Is reports whether the Any message contains a message of the specified type.\n//\n// Deprecated: Call the any.MessageIs method instead.\nfunc Is(any *anypb.Any, m proto.Message) bool {\n\tif any == nil || m == nil {\n\t\treturn false\n\t}\n\tname := proto.MessageName(m)\n\tif !strings.HasSuffix(any.TypeUrl, name) {\n\t\treturn false\n\t}\n\treturn len(any.TypeUrl) == len(name) || any.TypeUrl[len(any.TypeUrl)-len(name)-1] == '/'\n}\n\n// DynamicAny is a value that can be passed to UnmarshalAny to automatically\n// allocate a proto.Message for the type specified in an anypb.Any message.\n// The allocated message is stored in the embedded proto.Message.\n//\n// Example:\n//\n//\tvar x ptypes.DynamicAny\n//\tif err := ptypes.UnmarshalAny(a, &x); err != nil { ... }\n//\tfmt.Printf(\"unmarshaled message: %v\", x.Message)\n//\n// Deprecated: Use the any.UnmarshalNew method instead to unmarshal\n// the any message contents into a new instance of the underlying message.\ntype DynamicAny struct{ proto.Message }\n\nfunc (m DynamicAny) String() string {\n\tif m.Message == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn m.Message.String()\n}\nfunc (m DynamicAny) Reset() {\n\tif m.Message == nil {\n\t\treturn\n\t}\n\tm.Message.Reset()\n}\nfunc (m DynamicAny) ProtoMessage() {\n\treturn\n}\nfunc (m DynamicAny) ProtoReflect() protoreflect.Message {\n\tif m.Message == nil {\n\t\treturn nil\n\t}\n\treturn dynamicAny{proto.MessageReflect(m.Message)}\n}\n\ntype dynamicAny struct{ protoreflect.Message }\n\nfunc (m dynamicAny) Type() protoreflect.MessageType {\n\treturn dynamicAnyType{m.Message.Type()}\n}\nfunc (m dynamicAny) New() protoreflect.Message {\n\treturn dynamicAnyType{m.Message.Type()}.New()\n}\nfunc (m dynamicAny) Interface() protoreflect.ProtoMessage {\n\treturn DynamicAny{proto.MessageV1(m.Message.Interface())}\n}\n\ntype dynamicAnyType struct{ protoreflect.MessageType }\n\nfunc (t dynamicAnyType) New() protoreflect.Message {\n\treturn dynamicAny{t.MessageType.New()}\n}\nfunc (t dynamicAnyType) Zero() protoreflect.Message {\n\treturn dynamicAny{t.MessageType.Zero()}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/doc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package ptypes provides functionality for interacting with well-known types.\n//\n// Deprecated: Well-known types have specialized functionality directly\n// injected into the generated packages for each message type.\n// See the deprecation notice for each function for the suggested alternative.\npackage ptypes\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/duration/duration.proto\n\npackage duration\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tdurationpb \"google.golang.org/protobuf/types/known/durationpb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/duration.proto.\n\ntype Duration = durationpb.Duration\n\nvar File_github_com_golang_protobuf_ptypes_duration_duration_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = []byte{\n\t0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x75, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x35, 0x5a, 0x33, 0x67,\n\t0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,\n\t0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73,\n\t0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_duration_duration_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_duration_duration_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/duration.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\tdurationpb \"github.com/golang/protobuf/ptypes/duration\"\n)\n\n// Range of google.protobuf.Duration as specified in duration.proto.\n// This is about 10,000 years in seconds.\nconst (\n\tmaxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)\n\tminSeconds = -maxSeconds\n)\n\n// Duration converts a durationpb.Duration to a time.Duration.\n// Duration returns an error if dur is invalid or overflows a time.Duration.\n//\n// Deprecated: Call the dur.AsDuration and dur.CheckValid methods instead.\nfunc Duration(dur *durationpb.Duration) (time.Duration, error) {\n\tif err := validateDuration(dur); err != nil {\n\t\treturn 0, err\n\t}\n\td := time.Duration(dur.Seconds) * time.Second\n\tif int64(d/time.Second) != dur.Seconds {\n\t\treturn 0, fmt.Errorf(\"duration: %v is out of range for time.Duration\", dur)\n\t}\n\tif dur.Nanos != 0 {\n\t\td += time.Duration(dur.Nanos) * time.Nanosecond\n\t\tif (d < 0) != (dur.Nanos < 0) {\n\t\t\treturn 0, fmt.Errorf(\"duration: %v is out of range for time.Duration\", dur)\n\t\t}\n\t}\n\treturn d, nil\n}\n\n// DurationProto converts a time.Duration to a durationpb.Duration.\n//\n// Deprecated: Call the durationpb.New function instead.\nfunc DurationProto(d time.Duration) *durationpb.Duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &durationpb.Duration{\n\t\tSeconds: int64(secs),\n\t\tNanos:   int32(nanos),\n\t}\n}\n\n// validateDuration determines whether the durationpb.Duration is valid\n// according to the definition in google/protobuf/duration.proto.\n// A valid durpb.Duration may still be too large to fit into a time.Duration\n// Note that the range of durationpb.Duration is about 10,000 years,\n// while the range of time.Duration is about 290 years.\nfunc validateDuration(dur *durationpb.Duration) error {\n\tif dur == nil {\n\t\treturn errors.New(\"duration: nil Duration\")\n\t}\n\tif dur.Seconds < minSeconds || dur.Seconds > maxSeconds {\n\t\treturn fmt.Errorf(\"duration: %v: seconds out of range\", dur)\n\t}\n\tif dur.Nanos <= -1e9 || dur.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"duration: %v: nanos out of range\", dur)\n\t}\n\t// Seconds and Nanos must have the same sign, unless d.Nanos is zero.\n\tif (dur.Seconds < 0 && dur.Nanos > 0) || (dur.Seconds > 0 && dur.Nanos < 0) {\n\t\treturn fmt.Errorf(\"duration: %v: seconds and nanos have different signs\", dur)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto\n\npackage timestamp\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\ttimestamppb \"google.golang.org/protobuf/types/known/timestamppb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/timestamp.proto.\n\ntype Timestamp = timestamppb.Timestamp\n\nvar File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = []byte{\n\t0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69,\n\t0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x37,\n\t0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69,\n\t0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/timestamp.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\ttimestamppb \"github.com/golang/protobuf/ptypes/timestamp\"\n)\n\n// Range of google.protobuf.Duration as specified in timestamp.proto.\nconst (\n\t// Seconds field of the earliest valid Timestamp.\n\t// This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tminValidSeconds = -62135596800\n\t// Seconds field just after the latest valid Timestamp.\n\t// This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tmaxValidSeconds = 253402300800\n)\n\n// Timestamp converts a timestamppb.Timestamp to a time.Time.\n// It returns an error if the argument is invalid.\n//\n// Unlike most Go functions, if Timestamp returns an error, the first return\n// value is not the zero time.Time. Instead, it is the value obtained from the\n// time.Unix function when passed the contents of the Timestamp, in the UTC\n// locale. This may or may not be a meaningful time; many invalid Timestamps\n// do map to valid time.Times.\n//\n// A nil Timestamp returns an error. The first return value in that case is\n// undefined.\n//\n// Deprecated: Call the ts.AsTime and ts.CheckValid methods instead.\nfunc Timestamp(ts *timestamppb.Timestamp) (time.Time, error) {\n\t// Don't return the zero value on error, because corresponds to a valid\n\t// timestamp. Instead return whatever time.Unix gives us.\n\tvar t time.Time\n\tif ts == nil {\n\t\tt = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp\n\t} else {\n\t\tt = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC()\n\t}\n\treturn t, validateTimestamp(ts)\n}\n\n// TimestampNow returns a google.protobuf.Timestamp for the current time.\n//\n// Deprecated: Call the timestamppb.Now function instead.\nfunc TimestampNow() *timestamppb.Timestamp {\n\tts, err := TimestampProto(time.Now())\n\tif err != nil {\n\t\tpanic(\"ptypes: time.Now() out of Timestamp range\")\n\t}\n\treturn ts\n}\n\n// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.\n// It returns an error if the resulting Timestamp is invalid.\n//\n// Deprecated: Call the timestamppb.New function instead.\nfunc TimestampProto(t time.Time) (*timestamppb.Timestamp, error) {\n\tts := &timestamppb.Timestamp{\n\t\tSeconds: t.Unix(),\n\t\tNanos:   int32(t.Nanosecond()),\n\t}\n\tif err := validateTimestamp(ts); err != nil {\n\t\treturn nil, err\n\t}\n\treturn ts, nil\n}\n\n// TimestampString returns the RFC 3339 string for valid Timestamps.\n// For invalid Timestamps, it returns an error message in parentheses.\n//\n// Deprecated: Call the ts.AsTime method instead,\n// followed by a call to the Format method on the time.Time value.\nfunc TimestampString(ts *timestamppb.Timestamp) string {\n\tt, err := Timestamp(ts)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"(%v)\", err)\n\t}\n\treturn t.Format(time.RFC3339Nano)\n}\n\n// validateTimestamp determines whether a Timestamp is valid.\n// A valid timestamp represents a time in the range [0001-01-01, 10000-01-01)\n// and has a Nanos field in the range [0, 1e9).\n//\n// If the Timestamp is valid, validateTimestamp returns nil.\n// Otherwise, it returns an error that describes the problem.\n//\n// Every valid Timestamp can be represented by a time.Time,\n// but the converse is not true.\nfunc validateTimestamp(ts *timestamppb.Timestamp) error {\n\tif ts == nil {\n\t\treturn errors.New(\"timestamp: nil Timestamp\")\n\t}\n\tif ts.Seconds < minValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %v before 0001-01-01\", ts)\n\t}\n\tif ts.Seconds >= maxValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %v after 10000-01-01\", ts)\n\t}\n\tif ts.Nanos < 0 || ts.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"timestamp: %v: nanos not in range [0, 1e9)\", ts)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/README.md",
    "content": "# Compiler support code\n\nThis directory contains compiler support code used by Gnostic and Gnostic\nextensions.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/context.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\tyaml \"gopkg.in/yaml.v3\"\n)\n\n// Context contains state of the compiler as it traverses a document.\ntype Context struct {\n\tParent            *Context\n\tName              string\n\tNode              *yaml.Node\n\tExtensionHandlers *[]ExtensionHandler\n}\n\n// NewContextWithExtensions returns a new object representing the compiler state\nfunc NewContextWithExtensions(name string, node *yaml.Node, parent *Context, extensionHandlers *[]ExtensionHandler) *Context {\n\treturn &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: extensionHandlers}\n}\n\n// NewContext returns a new object representing the compiler state\nfunc NewContext(name string, node *yaml.Node, parent *Context) *Context {\n\tif parent != nil {\n\t\treturn &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: parent.ExtensionHandlers}\n\t}\n\treturn &Context{Name: name, Parent: parent, ExtensionHandlers: nil}\n}\n\n// Description returns a text description of the compiler state\nfunc (context *Context) Description() string {\n\tname := context.Name\n\tif context.Parent != nil {\n\t\tname = context.Parent.Description() + \".\" + name\n\t}\n\treturn name\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/error.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport \"fmt\"\n\n// Error represents compiler errors and their location in the document.\ntype Error struct {\n\tContext *Context\n\tMessage string\n}\n\n// NewError creates an Error.\nfunc NewError(context *Context, message string) *Error {\n\treturn &Error{Context: context, Message: message}\n}\n\nfunc (err *Error) locationDescription() string {\n\tif err.Context.Node != nil {\n\t\treturn fmt.Sprintf(\"[%d,%d] %s\", err.Context.Node.Line, err.Context.Node.Column, err.Context.Description())\n\t}\n\treturn err.Context.Description()\n}\n\n// Error returns the string value of an Error.\nfunc (err *Error) Error() string {\n\tif err.Context == nil {\n\t\treturn err.Message\n\t}\n\treturn err.locationDescription() + \" \" + err.Message\n}\n\n// ErrorGroup is a container for groups of Error values.\ntype ErrorGroup struct {\n\tErrors []error\n}\n\n// NewErrorGroupOrNil returns a new ErrorGroup for a slice of errors or nil if the slice is empty.\nfunc NewErrorGroupOrNil(errors []error) error {\n\tif len(errors) == 0 {\n\t\treturn nil\n\t} else if len(errors) == 1 {\n\t\treturn errors[0]\n\t} else {\n\t\treturn &ErrorGroup{Errors: errors}\n\t}\n}\n\nfunc (group *ErrorGroup) Error() string {\n\tresult := \"\"\n\tfor i, err := range group.Errors {\n\t\tif i > 0 {\n\t\t\tresult += \"\\n\"\n\t\t}\n\t\tresult += err.Error()\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/extensions.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"github.com/golang/protobuf/ptypes/any\"\n\tyaml \"gopkg.in/yaml.v3\"\n\n\textensions \"github.com/google/gnostic/extensions\"\n)\n\n// ExtensionHandler describes a binary that is called by the compiler to handle specification extensions.\ntype ExtensionHandler struct {\n\tName string\n}\n\n// CallExtension calls a binary extension handler.\nfunc CallExtension(context *Context, in *yaml.Node, extensionName string) (handled bool, response *any.Any, err error) {\n\tif context == nil || context.ExtensionHandlers == nil {\n\t\treturn false, nil, nil\n\t}\n\thandled = false\n\tfor _, handler := range *(context.ExtensionHandlers) {\n\t\tresponse, err = handler.handle(in, extensionName)\n\t\tif response == nil {\n\t\t\tcontinue\n\t\t} else {\n\t\t\thandled = true\n\t\t\tbreak\n\t\t}\n\t}\n\treturn handled, response, err\n}\n\nfunc (extensionHandlers *ExtensionHandler) handle(in *yaml.Node, extensionName string) (*any.Any, error) {\n\tif extensionHandlers.Name != \"\" {\n\t\tyamlData, _ := yaml.Marshal(in)\n\t\trequest := &extensions.ExtensionHandlerRequest{\n\t\t\tCompilerVersion: &extensions.Version{\n\t\t\t\tMajor: 0,\n\t\t\t\tMinor: 1,\n\t\t\t\tPatch: 0,\n\t\t\t},\n\t\t\tWrapper: &extensions.Wrapper{\n\t\t\t\tVersion:       \"unknown\", // TODO: set this to the type/version of spec being parsed.\n\t\t\t\tYaml:          string(yamlData),\n\t\t\t\tExtensionName: extensionName,\n\t\t\t},\n\t\t}\n\t\trequestBytes, _ := proto.Marshal(request)\n\t\tcmd := exec.Command(extensionHandlers.Name)\n\t\tcmd.Stdin = bytes.NewReader(requestBytes)\n\t\toutput, err := cmd.Output()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresponse := &extensions.ExtensionHandlerResponse{}\n\t\terr = proto.Unmarshal(output, response)\n\t\tif err != nil || !response.Handled {\n\t\t\treturn nil, err\n\t\t}\n\t\tif len(response.Errors) != 0 {\n\t\t\treturn nil, fmt.Errorf(\"Errors when parsing: %+v for field %s by vendor extension handler %s. Details %+v\", in, extensionName, extensionHandlers.Name, strings.Join(response.Errors, \",\"))\n\t\t}\n\t\treturn response.Value, nil\n\t}\n\treturn nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/helpers.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic/jsonschema\"\n)\n\n// compiler helper functions, usually called from generated code\n\n// UnpackMap gets a *yaml.Node if possible.\nfunc UnpackMap(in *yaml.Node) (*yaml.Node, bool) {\n\tif in == nil {\n\t\treturn nil, false\n\t}\n\treturn in, true\n}\n\n// SortedKeysForMap returns the sorted keys of a yamlv2.MapSlice.\nfunc SortedKeysForMap(m *yaml.Node) []string {\n\tkeys := make([]string, 0)\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tkeys = append(keys, m.Content[i].Value)\n\t\t}\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// MapHasKey returns true if a yamlv2.MapSlice contains a specified key.\nfunc MapHasKey(m *yaml.Node, key string) bool {\n\tif m == nil {\n\t\treturn false\n\t}\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\titemKey := m.Content[i].Value\n\t\t\tif key == itemKey {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// MapValueForKey gets the value of a map value for a specified key.\nfunc MapValueForKey(m *yaml.Node, key string) *yaml.Node {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\titemKey := m.Content[i].Value\n\t\t\tif key == itemKey {\n\t\t\t\treturn m.Content[i+1]\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConvertInterfaceArrayToStringArray converts an array of interfaces to an array of strings, if possible.\nfunc ConvertInterfaceArrayToStringArray(interfaceArray []interface{}) []string {\n\tstringArray := make([]string, 0)\n\tfor _, item := range interfaceArray {\n\t\tv, ok := item.(string)\n\t\tif ok {\n\t\t\tstringArray = append(stringArray, v)\n\t\t}\n\t}\n\treturn stringArray\n}\n\n// SequenceNodeForNode returns a node if it is a SequenceNode.\nfunc SequenceNodeForNode(node *yaml.Node) (*yaml.Node, bool) {\n\tif node.Kind != yaml.SequenceNode {\n\t\treturn nil, false\n\t}\n\treturn node, true\n}\n\n// BoolForScalarNode returns the bool value of a node.\nfunc BoolForScalarNode(node *yaml.Node) (bool, bool) {\n\tif node == nil {\n\t\treturn false, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn BoolForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn false, false\n\t}\n\tif node.Tag != \"!!bool\" {\n\t\treturn false, false\n\t}\n\tv, err := strconv.ParseBool(node.Value)\n\tif err != nil {\n\t\treturn false, false\n\t}\n\treturn v, true\n}\n\n// IntForScalarNode returns the integer value of a node.\nfunc IntForScalarNode(node *yaml.Node) (int64, bool) {\n\tif node == nil {\n\t\treturn 0, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn IntForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn 0, false\n\t}\n\tif node.Tag != \"!!int\" {\n\t\treturn 0, false\n\t}\n\tv, err := strconv.ParseInt(node.Value, 10, 64)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn v, true\n}\n\n// FloatForScalarNode returns the float value of a node.\nfunc FloatForScalarNode(node *yaml.Node) (float64, bool) {\n\tif node == nil {\n\t\treturn 0.0, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn FloatForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn 0.0, false\n\t}\n\tif (node.Tag != \"!!int\") && (node.Tag != \"!!float\") {\n\t\treturn 0.0, false\n\t}\n\tv, err := strconv.ParseFloat(node.Value, 64)\n\tif err != nil {\n\t\treturn 0.0, false\n\t}\n\treturn v, true\n}\n\n// StringForScalarNode returns the string value of a node.\nfunc StringForScalarNode(node *yaml.Node) (string, bool) {\n\tif node == nil {\n\t\treturn \"\", false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn StringForScalarNode(node.Content[0])\n\t}\n\tswitch node.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch node.Tag {\n\t\tcase \"!!int\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!str\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!timestamp\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!null\":\n\t\t\treturn \"\", true\n\t\tdefault:\n\t\t\treturn \"\", false\n\t\t}\n\tdefault:\n\t\treturn \"\", false\n\t}\n}\n\n// StringArrayForSequenceNode converts a sequence node to an array of strings, if possible.\nfunc StringArrayForSequenceNode(node *yaml.Node) []string {\n\tstringArray := make([]string, 0)\n\tfor _, item := range node.Content {\n\t\tv, ok := StringForScalarNode(item)\n\t\tif ok {\n\t\t\tstringArray = append(stringArray, v)\n\t\t}\n\t}\n\treturn stringArray\n}\n\n// MissingKeysInMap identifies which keys from a list of required keys are not in a map.\nfunc MissingKeysInMap(m *yaml.Node, requiredKeys []string) []string {\n\tmissingKeys := make([]string, 0)\n\tfor _, k := range requiredKeys {\n\t\tif !MapHasKey(m, k) {\n\t\t\tmissingKeys = append(missingKeys, k)\n\t\t}\n\t}\n\treturn missingKeys\n}\n\n// InvalidKeysInMap returns keys in a map that don't match a list of allowed keys and patterns.\nfunc InvalidKeysInMap(m *yaml.Node, allowedKeys []string, allowedPatterns []*regexp.Regexp) []string {\n\tinvalidKeys := make([]string, 0)\n\tif m == nil || m.Kind != yaml.MappingNode {\n\t\treturn invalidKeys\n\t}\n\tfor i := 0; i < len(m.Content); i += 2 {\n\t\tkey := m.Content[i].Value\n\t\tfound := false\n\t\t// does the key match an allowed key?\n\t\tfor _, allowedKey := range allowedKeys {\n\t\t\tif key == allowedKey {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\t// does the key match an allowed pattern?\n\t\t\tfor _, allowedPattern := range allowedPatterns {\n\t\t\t\tif allowedPattern.MatchString(key) {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\tinvalidKeys = append(invalidKeys, key)\n\t\t\t}\n\t\t}\n\t}\n\treturn invalidKeys\n}\n\n// NewNullNode creates a new Null node.\nfunc NewNullNode() *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind: yaml.ScalarNode,\n\t\tTag:  \"!!null\",\n\t}\n\treturn node\n}\n\n// NewMappingNode creates a new Mapping node.\nfunc NewMappingNode() *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.MappingNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n}\n\n// NewSequenceNode creates a new Sequence node.\nfunc NewSequenceNode() *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n\treturn node\n}\n\n// NewScalarNodeForString creates a new node to hold a string.\nfunc NewScalarNodeForString(s string) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!str\",\n\t\tValue: s,\n\t}\n}\n\n// NewSequenceNodeForStringArray creates a new node to hold an array of strings.\nfunc NewSequenceNodeForStringArray(strings []string) *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n\tfor _, s := range strings {\n\t\tnode.Content = append(node.Content, NewScalarNodeForString(s))\n\t}\n\treturn node\n}\n\n// NewScalarNodeForBool creates a new node to hold a bool.\nfunc NewScalarNodeForBool(b bool) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!bool\",\n\t\tValue: fmt.Sprintf(\"%t\", b),\n\t}\n}\n\n// NewScalarNodeForFloat creates a new node to hold a float.\nfunc NewScalarNodeForFloat(f float64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!float\",\n\t\tValue: fmt.Sprintf(\"%g\", f),\n\t}\n}\n\n// NewScalarNodeForInt creates a new node to hold an integer.\nfunc NewScalarNodeForInt(i int64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!int\",\n\t\tValue: fmt.Sprintf(\"%d\", i),\n\t}\n}\n\n// PluralProperties returns the string \"properties\" pluralized.\nfunc PluralProperties(count int) string {\n\tif count == 1 {\n\t\treturn \"property\"\n\t}\n\treturn \"properties\"\n}\n\n// StringArrayContainsValue returns true if a string array contains a specified value.\nfunc StringArrayContainsValue(array []string, value string) bool {\n\tfor _, item := range array {\n\t\tif item == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// StringArrayContainsValues returns true if a string array contains all of a list of specified values.\nfunc StringArrayContainsValues(array []string, values []string) bool {\n\tfor _, value := range values {\n\t\tif !StringArrayContainsValue(array, value) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// StringValue returns the string value of an item.\nfunc StringValue(item interface{}) (value string, ok bool) {\n\tvalue, ok = item.(string)\n\tif ok {\n\t\treturn value, ok\n\t}\n\tintValue, ok := item.(int)\n\tif ok {\n\t\treturn strconv.Itoa(intValue), true\n\t}\n\treturn \"\", false\n}\n\n// Description returns a human-readable represention of an item.\nfunc Description(item interface{}) string {\n\tvalue, ok := item.(*yaml.Node)\n\tif ok {\n\t\treturn jsonschema.Render(value)\n\t}\n\treturn fmt.Sprintf(\"%+v\", item)\n}\n\n// Display returns a description of a node for use in error messages.\nfunc Display(node *yaml.Node) string {\n\tswitch node.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch node.Tag {\n\t\tcase \"!!str\":\n\t\t\treturn fmt.Sprintf(\"%s (string)\", node.Value)\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"%+v (%T)\", node, node)\n}\n\n// Marshal creates a yaml version of a structure in our preferred style\nfunc Marshal(in *yaml.Node) []byte {\n\tclearStyle(in)\n\t//bytes, _ := yaml.Marshal(&yaml.Node{Kind: yaml.DocumentNode, Content: []*yaml.Node{in}})\n\tbytes, _ := yaml.Marshal(in)\n\n\treturn bytes\n}\n\nfunc clearStyle(node *yaml.Node) {\n\tnode.Style = 0\n\tfor _, c := range node.Content {\n\t\tclearStyle(c)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/main.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package compiler provides support functions to generated compiler code.\npackage compiler\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/compiler/reader.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\n\tyaml \"gopkg.in/yaml.v3\"\n)\n\nvar verboseReader = false\n\nvar fileCache map[string][]byte\nvar infoCache map[string]*yaml.Node\n\nvar fileCacheEnable = true\nvar infoCacheEnable = true\n\n// These locks are used to synchronize accesses to the fileCache and infoCache\n// maps (above). They are global state and can throw thread-related errors\n// when modified from separate goroutines. The general strategy is to protect\n// all public functions in this file with mutex Lock() calls. As a result, to\n// avoid deadlock, these public functions should not call other public\n// functions, so some public functions have private equivalents.\n// In the future, we might consider replacing the maps with sync.Map and\n// eliminating these mutexes.\nvar fileCacheMutex sync.Mutex\nvar infoCacheMutex sync.Mutex\n\nfunc initializeFileCache() {\n\tif fileCache == nil {\n\t\tfileCache = make(map[string][]byte, 0)\n\t}\n}\n\nfunc initializeInfoCache() {\n\tif infoCache == nil {\n\t\tinfoCache = make(map[string]*yaml.Node, 0)\n\t}\n}\n\n// EnableFileCache turns on file caching.\nfunc EnableFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCacheEnable = true\n}\n\n// EnableInfoCache turns on parsed info caching.\nfunc EnableInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCacheEnable = true\n}\n\n// DisableFileCache turns off file caching.\nfunc DisableFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCacheEnable = false\n}\n\n// DisableInfoCache turns off parsed info caching.\nfunc DisableInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCacheEnable = false\n}\n\n// RemoveFromFileCache removes an entry from the file cache.\nfunc RemoveFromFileCache(fileurl string) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tif !fileCacheEnable {\n\t\treturn\n\t}\n\tinitializeFileCache()\n\tdelete(fileCache, fileurl)\n}\n\n// RemoveFromInfoCache removes an entry from the info cache.\nfunc RemoveFromInfoCache(filename string) {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tif !infoCacheEnable {\n\t\treturn\n\t}\n\tinitializeInfoCache()\n\tdelete(infoCache, filename)\n}\n\n// GetInfoCache returns the info cache map.\nfunc GetInfoCache() map[string]*yaml.Node {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tif infoCache == nil {\n\t\tinitializeInfoCache()\n\t}\n\treturn infoCache\n}\n\n// ClearFileCache clears the file cache.\nfunc ClearFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCache = make(map[string][]byte, 0)\n}\n\n// ClearInfoCache clears the info cache.\nfunc ClearInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCache = make(map[string]*yaml.Node)\n}\n\n// ClearCaches clears all caches.\nfunc ClearCaches() {\n\tClearFileCache()\n\tClearInfoCache()\n}\n\n// FetchFile gets a specified file from the local filesystem or a remote location.\nfunc FetchFile(fileurl string) ([]byte, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\treturn fetchFile(fileurl)\n}\n\nfunc fetchFile(fileurl string) ([]byte, error) {\n\tvar bytes []byte\n\tinitializeFileCache()\n\tif fileCacheEnable {\n\t\tbytes, ok := fileCache[fileurl]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit %s\", fileurl)\n\t\t\t}\n\t\t\treturn bytes, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Fetching %s\", fileurl)\n\t\t}\n\t}\n\tresponse, err := http.Get(fileurl)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer response.Body.Close()\n\tif response.StatusCode != 200 {\n\t\treturn nil, fmt.Errorf(\"Error downloading %s: %s\", fileurl, response.Status)\n\t}\n\tbytes, err = ioutil.ReadAll(response.Body)\n\tif fileCacheEnable && err == nil {\n\t\tfileCache[fileurl] = bytes\n\t}\n\treturn bytes, err\n}\n\n// ReadBytesForFile reads the bytes of a file.\nfunc ReadBytesForFile(filename string) ([]byte, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\treturn readBytesForFile(filename)\n}\n\nfunc readBytesForFile(filename string) ([]byte, error) {\n\t// is the filename a url?\n\tfileurl, _ := url.Parse(filename)\n\tif fileurl.Scheme != \"\" {\n\t\t// yes, fetch it\n\t\tbytes, err := fetchFile(filename)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn bytes, nil\n\t}\n\t// no, it's a local filename\n\tbytes, err := ioutil.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn bytes, nil\n}\n\n// ReadInfoFromBytes unmarshals a file as a *yaml.Node.\nfunc ReadInfoFromBytes(filename string, bytes []byte) (*yaml.Node, error) {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\treturn readInfoFromBytes(filename, bytes)\n}\n\nfunc readInfoFromBytes(filename string, bytes []byte) (*yaml.Node, error) {\n\tinitializeInfoCache()\n\tif infoCacheEnable {\n\t\tcachedInfo, ok := infoCache[filename]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit info for file %s\", filename)\n\t\t\t}\n\t\t\treturn cachedInfo, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Reading info for file %s\", filename)\n\t\t}\n\t}\n\tvar info yaml.Node\n\terr := yaml.Unmarshal(bytes, &info)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif infoCacheEnable && len(filename) > 0 {\n\t\tinfoCache[filename] = &info\n\t}\n\treturn &info, nil\n}\n\n// ReadInfoForRef reads a file and return the fragment needed to resolve a $ref.\nfunc ReadInfoForRef(basefile string, ref string) (*yaml.Node, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinitializeInfoCache()\n\tif infoCacheEnable {\n\t\tinfo, ok := infoCache[ref]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit for ref %s#%s\", basefile, ref)\n\t\t\t}\n\t\t\treturn info, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Reading info for ref %s#%s\", basefile, ref)\n\t\t}\n\t}\n\tbasedir, _ := filepath.Split(basefile)\n\tparts := strings.Split(ref, \"#\")\n\tvar filename string\n\tif parts[0] != \"\" {\n\t\tfilename = parts[0]\n\t\tif _, err := url.ParseRequestURI(parts[0]); err != nil {\n\t\t\t// It is not an URL, so the file is local\n\t\t\tfilename = basedir + parts[0]\n\t\t}\n\t} else {\n\t\tfilename = basefile\n\t}\n\tbytes, err := readBytesForFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tinfo, err := readInfoFromBytes(filename, bytes)\n\tif info != nil && info.Kind == yaml.DocumentNode {\n\t\tinfo = info.Content[0]\n\t}\n\tif err != nil {\n\t\tlog.Printf(\"File error: %v\\n\", err)\n\t} else {\n\t\tif info == nil {\n\t\t\treturn nil, NewError(nil, fmt.Sprintf(\"could not resolve %s\", ref))\n\t\t}\n\t\tif len(parts) > 1 {\n\t\t\tpath := strings.Split(parts[1], \"/\")\n\t\t\tfor i, key := range path {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tm := info\n\t\t\t\t\tif true {\n\t\t\t\t\t\tfound := false\n\t\t\t\t\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\t\t\t\t\tif m.Content[i].Value == key {\n\t\t\t\t\t\t\t\tinfo = m.Content[i+1]\n\t\t\t\t\t\t\t\tfound = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif !found {\n\t\t\t\t\t\t\tinfoCache[ref] = nil\n\t\t\t\t\t\t\treturn nil, NewError(nil, fmt.Sprintf(\"could not resolve %s\", ref))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif infoCacheEnable {\n\t\tinfoCache[ref] = info\n\t}\n\treturn info, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/extensions/README.md",
    "content": "# Extensions\n\n**Extension Support is experimental.**\n\nThis directory contains support code for building Gnostic extensio handlers and\nassociated examples.\n\nExtension handlers can be used to compile vendor or specification extensions\ninto protocol buffer structures.\n\nLike plugins, extension handlers are built as separate executables. Extension\nbodies are written to extension handlers as serialized\nExtensionHandlerRequests.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/extensions/extension.pb.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.26.0\n// \tprotoc        v3.18.1\n// source: extensions/extension.proto\n\npackage gnostic_extension_v1\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\n// The version number of Gnostic.\ntype Version struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tMajor int32 `protobuf:\"varint,1,opt,name=major,proto3\" json:\"major,omitempty\"`\n\tMinor int32 `protobuf:\"varint,2,opt,name=minor,proto3\" json:\"minor,omitempty\"`\n\tPatch int32 `protobuf:\"varint,3,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\t// A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n\t// be empty for mainline stable releases.\n\tSuffix string `protobuf:\"bytes,4,opt,name=suffix,proto3\" json:\"suffix,omitempty\"`\n}\n\nfunc (x *Version) Reset() {\n\t*x = Version{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Version) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Version) ProtoMessage() {}\n\nfunc (x *Version) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Version.ProtoReflect.Descriptor instead.\nfunc (*Version) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Version) GetMajor() int32 {\n\tif x != nil {\n\t\treturn x.Major\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetMinor() int32 {\n\tif x != nil {\n\t\treturn x.Minor\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetPatch() int32 {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetSuffix() string {\n\tif x != nil {\n\t\treturn x.Suffix\n\t}\n\treturn \"\"\n}\n\n// An encoded Request is written to the ExtensionHandler's stdin.\ntype ExtensionHandlerRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The extension to process.\n\tWrapper *Wrapper `protobuf:\"bytes,1,opt,name=wrapper,proto3\" json:\"wrapper,omitempty\"`\n\t// The version number of Gnostic.\n\tCompilerVersion *Version `protobuf:\"bytes,2,opt,name=compiler_version,json=compilerVersion,proto3\" json:\"compiler_version,omitempty\"`\n}\n\nfunc (x *ExtensionHandlerRequest) Reset() {\n\t*x = ExtensionHandlerRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExtensionHandlerRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionHandlerRequest) ProtoMessage() {}\n\nfunc (x *ExtensionHandlerRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionHandlerRequest.ProtoReflect.Descriptor instead.\nfunc (*ExtensionHandlerRequest) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *ExtensionHandlerRequest) GetWrapper() *Wrapper {\n\tif x != nil {\n\t\treturn x.Wrapper\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionHandlerRequest) GetCompilerVersion() *Version {\n\tif x != nil {\n\t\treturn x.CompilerVersion\n\t}\n\treturn nil\n}\n\n// The extensions writes an encoded ExtensionHandlerResponse to stdout.\ntype ExtensionHandlerResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// true if the extension is handled by the extension handler; false otherwise\n\tHandled bool `protobuf:\"varint,1,opt,name=handled,proto3\" json:\"handled,omitempty\"`\n\t// Error message(s).  If non-empty, the extension handling failed.\n\t// The extension handler process should exit with status code zero\n\t// even if it reports an error in this way.\n\t//\n\t// This should be used to indicate errors which prevent the extension from\n\t// operating as intended.  Errors which indicate a problem in gnostic\n\t// itself -- such as the input Document being unparseable -- should be\n\t// reported by writing a message to stderr and exiting with a non-zero\n\t// status code.\n\tErrors []string `protobuf:\"bytes,2,rep,name=errors,proto3\" json:\"errors,omitempty\"`\n\t// text output\n\tValue *anypb.Any `protobuf:\"bytes,3,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *ExtensionHandlerResponse) Reset() {\n\t*x = ExtensionHandlerResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExtensionHandlerResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionHandlerResponse) ProtoMessage() {}\n\nfunc (x *ExtensionHandlerResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionHandlerResponse.ProtoReflect.Descriptor instead.\nfunc (*ExtensionHandlerResponse) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *ExtensionHandlerResponse) GetHandled() bool {\n\tif x != nil {\n\t\treturn x.Handled\n\t}\n\treturn false\n}\n\nfunc (x *ExtensionHandlerResponse) GetErrors() []string {\n\tif x != nil {\n\t\treturn x.Errors\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionHandlerResponse) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Wrapper struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// version of the OpenAPI specification in which this extension was written.\n\tVersion string `protobuf:\"bytes,1,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// Name of the extension.\n\tExtensionName string `protobuf:\"bytes,2,opt,name=extension_name,json=extensionName,proto3\" json:\"extension_name,omitempty\"`\n\t// YAML-formatted extension value.\n\tYaml string `protobuf:\"bytes,3,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Wrapper) Reset() {\n\t*x = Wrapper{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Wrapper) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Wrapper) ProtoMessage() {}\n\nfunc (x *Wrapper) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Wrapper.ProtoReflect.Descriptor instead.\nfunc (*Wrapper) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Wrapper) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Wrapper) GetExtensionName() string {\n\tif x != nil {\n\t\treturn x.ExtensionName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Wrapper) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\nvar File_extensions_extension_proto protoreflect.FileDescriptor\n\nvar file_extensions_extension_proto_rawDesc = []byte{\n\t0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x6e,\n\t0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e,\n\t0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a,\n\t0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f,\n\t0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14,\n\t0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d,\n\t0x69, 0x6e, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75,\n\t0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66,\n\t0x69, 0x78, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37,\n\t0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x07,\n\t0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x69,\n\t0x6c, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x78, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x61,\n\t0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a,\n\t0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,\n\t0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72,\n\t0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12,\n\t0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5e, 0x0a, 0x07, 0x57,\n\t0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x42, 0x4d, 0x0a, 0x0e, 0x6f,\n\t0x72, 0x67, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x47,\n\t0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50,\n\t0x01, 0x5a, 0x21, 0x2e, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b,\n\t0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x4e, 0x58, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x33,\n}\n\nvar (\n\tfile_extensions_extension_proto_rawDescOnce sync.Once\n\tfile_extensions_extension_proto_rawDescData = file_extensions_extension_proto_rawDesc\n)\n\nfunc file_extensions_extension_proto_rawDescGZIP() []byte {\n\tfile_extensions_extension_proto_rawDescOnce.Do(func() {\n\t\tfile_extensions_extension_proto_rawDescData = protoimpl.X.CompressGZIP(file_extensions_extension_proto_rawDescData)\n\t})\n\treturn file_extensions_extension_proto_rawDescData\n}\n\nvar file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 4)\nvar file_extensions_extension_proto_goTypes = []interface{}{\n\t(*Version)(nil),                  // 0: gnostic.extension.v1.Version\n\t(*ExtensionHandlerRequest)(nil),  // 1: gnostic.extension.v1.ExtensionHandlerRequest\n\t(*ExtensionHandlerResponse)(nil), // 2: gnostic.extension.v1.ExtensionHandlerResponse\n\t(*Wrapper)(nil),                  // 3: gnostic.extension.v1.Wrapper\n\t(*anypb.Any)(nil),                // 4: google.protobuf.Any\n}\nvar file_extensions_extension_proto_depIdxs = []int32{\n\t3, // 0: gnostic.extension.v1.ExtensionHandlerRequest.wrapper:type_name -> gnostic.extension.v1.Wrapper\n\t0, // 1: gnostic.extension.v1.ExtensionHandlerRequest.compiler_version:type_name -> gnostic.extension.v1.Version\n\t4, // 2: gnostic.extension.v1.ExtensionHandlerResponse.value:type_name -> google.protobuf.Any\n\t3, // [3:3] is the sub-list for method output_type\n\t3, // [3:3] is the sub-list for method input_type\n\t3, // [3:3] is the sub-list for extension type_name\n\t3, // [3:3] is the sub-list for extension extendee\n\t0, // [0:3] is the sub-list for field type_name\n}\n\nfunc init() { file_extensions_extension_proto_init() }\nfunc file_extensions_extension_proto_init() {\n\tif File_extensions_extension_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_extensions_extension_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Version); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExtensionHandlerRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExtensionHandlerResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Wrapper); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_extensions_extension_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   4,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_extensions_extension_proto_goTypes,\n\t\tDependencyIndexes: file_extensions_extension_proto_depIdxs,\n\t\tMessageInfos:      file_extensions_extension_proto_msgTypes,\n\t}.Build()\n\tFile_extensions_extension_proto = out.File\n\tfile_extensions_extension_proto_rawDesc = nil\n\tfile_extensions_extension_proto_goTypes = nil\n\tfile_extensions_extension_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/extensions/extension.proto",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nsyntax = \"proto3\";\n\npackage gnostic.extension.v1;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"GnosticExtension\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.gnostic.v1\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\n//\n// \"Gnostic Extension\"\noption objc_class_prefix = \"GNX\";\n\n// The Go package name.\noption go_package = \"./extensions;gnostic_extension_v1\";\n\n// The version number of Gnostic.\nmessage Version {\n  int32 major = 1;\n  int32 minor = 2;\n  int32 patch = 3;\n  // A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n  // be empty for mainline stable releases.\n  string suffix = 4;\n}\n\n// An encoded Request is written to the ExtensionHandler's stdin.\nmessage ExtensionHandlerRequest {\n\n  // The extension to process.\n  Wrapper wrapper = 1;\n\n  // The version number of Gnostic.\n  Version compiler_version = 2;\n}\n\n// The extensions writes an encoded ExtensionHandlerResponse to stdout.\nmessage ExtensionHandlerResponse {\n\n  // true if the extension is handled by the extension handler; false otherwise\n  bool handled = 1;\n\n  // Error message(s).  If non-empty, the extension handling failed.\n  // The extension handler process should exit with status code zero\n  // even if it reports an error in this way.\n  //\n  // This should be used to indicate errors which prevent the extension from\n  // operating as intended.  Errors which indicate a problem in gnostic\n  // itself -- such as the input Document being unparseable -- should be\n  // reported by writing a message to stderr and exiting with a non-zero\n  // status code.\n  repeated string errors = 2;\n\n  // text output\n  google.protobuf.Any value = 3;\n}\n\nmessage Wrapper {\n  // version of the OpenAPI specification in which this extension was written.\n  string version = 1;\n\n  // Name of the extension.\n  string extension_name = 2;\n\n  // YAML-formatted extension value.\n  string yaml = 3;\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/extensions/extensions.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage gnostic_extension_v1\n\nimport (\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"github.com/golang/protobuf/ptypes\"\n)\n\ntype extensionHandler func(name string, yamlInput string) (bool, proto.Message, error)\n\n// Main implements the main program of an extension handler.\nfunc Main(handler extensionHandler) {\n\t// unpack the request\n\tdata, err := ioutil.ReadAll(os.Stdin)\n\tif err != nil {\n\t\tlog.Println(\"File error:\", err.Error())\n\t\tos.Exit(1)\n\t}\n\tif len(data) == 0 {\n\t\tlog.Println(\"No input data.\")\n\t\tos.Exit(1)\n\t}\n\trequest := &ExtensionHandlerRequest{}\n\terr = proto.Unmarshal(data, request)\n\tif err != nil {\n\t\tlog.Println(\"Input error:\", err.Error())\n\t\tos.Exit(1)\n\t}\n\t// call the handler\n\thandled, output, err := handler(request.Wrapper.ExtensionName, request.Wrapper.Yaml)\n\t// respond with the output of the handler\n\tresponse := &ExtensionHandlerResponse{\n\t\tHandled: false, // default assumption\n\t\tErrors:  make([]string, 0),\n\t}\n\tif err != nil {\n\t\tresponse.Errors = append(response.Errors, err.Error())\n\t} else if handled {\n\t\tresponse.Handled = true\n\t\tresponse.Value, err = ptypes.MarshalAny(output)\n\t\tif err != nil {\n\t\t\tresponse.Errors = append(response.Errors, err.Error())\n\t\t}\n\t}\n\tresponseBytes, _ := proto.Marshal(response)\n\tos.Stdout.Write(responseBytes)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/README.md",
    "content": "# jsonschema\n\nThis directory contains code for reading, writing, and manipulating JSON\nschemas.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/base.go",
    "content": "\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage jsonschema\n\nimport (\n\t\"encoding/base64\"\n)\n\nfunc baseSchemaBytes() ([]byte, error){\n\treturn base64.StdEncoding.DecodeString(\n`ewogICAgImlkIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAi\nJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiLAogICAgImRl\nc2NyaXB0aW9uIjogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICJkZWZpbml0aW9ucyI6IHsK\nICAgICAgICAic2NoZW1hQXJyYXkiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAg\nICAgICAgIm1pbkl0ZW1zIjogMSwKICAgICAgICAgICAgIml0ZW1zIjogeyAiJHJlZiI6ICIjIiB9CiAg\nICAgICAgfSwKICAgICAgICAicG9zaXRpdmVJbnRlZ2VyIjogewogICAgICAgICAgICAidHlwZSI6ICJp\nbnRlZ2VyIiwKICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAicG9zaXRp\ndmVJbnRlZ2VyRGVmYXVsdDAiOiB7CiAgICAgICAgICAgICJhbGxPZiI6IFsgeyAiJHJlZiI6ICIjL2Rl\nZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlciIgfSwgeyAiZGVmYXVsdCI6IDAgfSBdCiAgICAgICAgfSwK\nICAgICAgICAic2ltcGxlVHlwZXMiOiB7CiAgICAgICAgICAgICJlbnVtIjogWyAiYXJyYXkiLCAiYm9v\nbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciIF0KICAg\nICAgICB9LAogICAgICAgICJzdHJpbmdBcnJheSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiYXJyYXki\nLAogICAgICAgICAgICAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgIm1p\nbkl0ZW1zIjogMSwKICAgICAgICAgICAgInVuaXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgIH0KICAgIH0s\nCiAgICAidHlwZSI6ICJvYmplY3QiLAogICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImlkIjogewog\nICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZm9ybWF0IjogInVyaSIKICAg\nICAgICB9LAogICAgICAgICIkc2NoZW1hIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAog\nICAgICAgICAgICAiZm9ybWF0IjogInVyaSIKICAgICAgICB9LAogICAgICAgICJ0aXRsZSI6IHsKICAg\nICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgImRlc2NyaXB0aW9uIjog\newogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICAiZGVmYXVsdCI6\nIHt9LAogICAgICAgICJtdWx0aXBsZU9mIjogewogICAgICAgICAgICAidHlwZSI6ICJudW1iZXIiLAog\nICAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAgICJleGNsdXNpdmVNaW5pbXVtIjogdHJ1\nZQogICAgICAgIH0sCiAgICAgICAgIm1heGltdW0iOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm51bWJl\nciIKICAgICAgICB9LAogICAgICAgICJleGNsdXNpdmVNYXhpbXVtIjogewogICAgICAgICAgICAidHlw\nZSI6ICJib29sZWFuIiwKICAgICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAg\nICAgIm1pbmltdW0iOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm51bWJlciIKICAgICAgICB9LAogICAg\nICAgICJleGNsdXNpdmVNaW5pbXVtIjogewogICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIiwKICAg\nICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgIm1heExlbmd0aCI6IHsg\nIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXIiIH0sCiAgICAgICAgIm1pbkxlbmd0\naCI6IHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAg\nICAgICAicGF0dGVybiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAg\nImZvcm1hdCI6ICJyZWdleCIKICAgICAgICB9LAogICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiB7CiAg\nICAgICAgICAgICJhbnlPZiI6IFsKICAgICAgICAgICAgICAgIHsgInR5cGUiOiAiYm9vbGVhbiIgfSwK\nICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAi\nZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICJhbnlP\nZiI6IFsKICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAgICAgIHsgIiRy\nZWYiOiAiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheSIgfQogICAgICAgICAgICBdLAogICAgICAgICAg\nICAiZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAibWF4SXRlbXMiOiB7ICIkcmVmIjogIiMv\nZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyIiB9LAogICAgICAgICJtaW5JdGVtcyI6IHsgIiRyZWYi\nOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICAidW5pcXVl\nSXRlbXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgICAgICAgICAiZGVmYXVs\ndCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAibWF4UHJvcGVydGllcyI6IHsgIiRyZWYiOiAiIy9k\nZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXIiIH0sCiAgICAgICAgIm1pblByb3BlcnRpZXMiOiB7ICIk\ncmVmIjogIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDAiIH0sCiAgICAgICAgInJl\ncXVpcmVkIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9LAogICAgICAgICJh\nZGRpdGlvbmFsUHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImFueU9mIjogWwogICAgICAgICAgICAg\nICAgeyAidHlwZSI6ICJib29sZWFuIiB9LAogICAgICAgICAgICAgICAgeyAiJHJlZiI6ICIjIiB9CiAg\nICAgICAgICAgIF0sCiAgICAgICAgICAgICJkZWZhdWx0Ijoge30KICAgICAgICB9LAogICAgICAgICJk\nZWZpbml0aW9ucyI6IHsKICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgImFk\nZGl0aW9uYWxQcm9wZXJ0aWVzIjogeyAiJHJlZiI6ICIjIiB9LAogICAgICAgICAgICAiZGVmYXVsdCI6\nIHt9CiAgICAgICAgfSwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAi\nb2JqZWN0IiwKICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogeyAiJHJlZiI6ICIjIiB9\nLAogICAgICAgICAgICAiZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAicGF0dGVyblByb3Bl\ncnRpZXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJhZGRpdGlv\nbmFsUHJvcGVydGllcyI6IHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAgImRlZmF1bHQiOiB7fQog\nICAgICAgIH0sCiAgICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAib2Jq\nZWN0IiwKICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAg\nImFueU9mIjogWwogICAgICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAg\nICAgICAgICB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXkiIH0KICAgICAgICAgICAg\nICAgIF0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImVudW0iOiB7CiAgICAgICAgICAg\nICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgIm1pbkl0ZW1zIjogMSwKICAgICAgICAgICAgInVu\naXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICJh\nbnlPZiI6IFsKICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBl\ncyIgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIs\nCiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3NpbXBs\nZVR5cGVzIiB9LAogICAgICAgICAgICAgICAgICAgICJtaW5JdGVtcyI6IDEsCiAgICAgICAgICAgICAg\nICAgICAgInVuaXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAg\nICAgICAgfSwKICAgICAgICAiYWxsT2YiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJy\nYXkiIH0sCiAgICAgICAgImFueU9mIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5\nIiB9LAogICAgICAgICJvbmVPZiI6IHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheSIg\nfSwKICAgICAgICAibm90IjogeyAiJHJlZiI6ICIjIiB9CiAgICB9LAogICAgImRlcGVuZGVuY2llcyI6\nIHsKICAgICAgICAiZXhjbHVzaXZlTWF4aW11bSI6IFsgIm1heGltdW0iIF0sCiAgICAgICAgImV4Y2x1\nc2l2ZU1pbmltdW0iOiBbICJtaW5pbXVtIiBdCiAgICB9LAogICAgImRlZmF1bHQiOiB7fQp9Cg==`)}"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/display.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n//\n// DISPLAY\n// The following methods display Schemas.\n//\n\n// Description returns a string representation of a string or string array.\nfunc (s *StringOrStringArray) Description() string {\n\tif s.String != nil {\n\t\treturn *s.String\n\t}\n\tif s.StringArray != nil {\n\t\treturn strings.Join(*s.StringArray, \", \")\n\t}\n\treturn \"\"\n}\n\n// Returns a string representation of a Schema.\nfunc (schema *Schema) String() string {\n\treturn schema.describeSchema(\"\")\n}\n\n// Helper: Returns a string representation of a Schema indented by a specified string.\nfunc (schema *Schema) describeSchema(indent string) string {\n\tresult := \"\"\n\tif schema.Schema != nil {\n\t\tresult += indent + \"$schema: \" + *(schema.Schema) + \"\\n\"\n\t}\n\tif schema.ID != nil {\n\t\tresult += indent + \"id: \" + *(schema.ID) + \"\\n\"\n\t}\n\tif schema.MultipleOf != nil {\n\t\tresult += indent + fmt.Sprintf(\"multipleOf: %+v\\n\", *(schema.MultipleOf))\n\t}\n\tif schema.Maximum != nil {\n\t\tresult += indent + fmt.Sprintf(\"maximum: %+v\\n\", *(schema.Maximum))\n\t}\n\tif schema.ExclusiveMaximum != nil {\n\t\tresult += indent + fmt.Sprintf(\"exclusiveMaximum: %+v\\n\", *(schema.ExclusiveMaximum))\n\t}\n\tif schema.Minimum != nil {\n\t\tresult += indent + fmt.Sprintf(\"minimum: %+v\\n\", *(schema.Minimum))\n\t}\n\tif schema.ExclusiveMinimum != nil {\n\t\tresult += indent + fmt.Sprintf(\"exclusiveMinimum: %+v\\n\", *(schema.ExclusiveMinimum))\n\t}\n\tif schema.MaxLength != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxLength: %+v\\n\", *(schema.MaxLength))\n\t}\n\tif schema.MinLength != nil {\n\t\tresult += indent + fmt.Sprintf(\"minLength: %+v\\n\", *(schema.MinLength))\n\t}\n\tif schema.Pattern != nil {\n\t\tresult += indent + fmt.Sprintf(\"pattern: %+v\\n\", *(schema.Pattern))\n\t}\n\tif schema.AdditionalItems != nil {\n\t\ts := schema.AdditionalItems.Schema\n\t\tif s != nil {\n\t\t\tresult += indent + \"additionalItems:\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t} else {\n\t\t\tb := *(schema.AdditionalItems.Boolean)\n\t\t\tresult += indent + fmt.Sprintf(\"additionalItems: %+v\\n\", b)\n\t\t}\n\t}\n\tif schema.Items != nil {\n\t\tresult += indent + \"items:\\n\"\n\t\titems := schema.Items\n\t\tif items.SchemaArray != nil {\n\t\t\tfor i, s := range *(items.SchemaArray) {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%d\", i) + \":\\n\"\n\t\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t\t}\n\t\t} else if items.Schema != nil {\n\t\t\tresult += items.Schema.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.MaxItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxItems: %+v\\n\", *(schema.MaxItems))\n\t}\n\tif schema.MinItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"minItems: %+v\\n\", *(schema.MinItems))\n\t}\n\tif schema.UniqueItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"uniqueItems: %+v\\n\", *(schema.UniqueItems))\n\t}\n\tif schema.MaxProperties != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxProperties: %+v\\n\", *(schema.MaxProperties))\n\t}\n\tif schema.MinProperties != nil {\n\t\tresult += indent + fmt.Sprintf(\"minProperties: %+v\\n\", *(schema.MinProperties))\n\t}\n\tif schema.Required != nil {\n\t\tresult += indent + fmt.Sprintf(\"required: %+v\\n\", *(schema.Required))\n\t}\n\tif schema.AdditionalProperties != nil {\n\t\ts := schema.AdditionalProperties.Schema\n\t\tif s != nil {\n\t\t\tresult += indent + \"additionalProperties:\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t} else {\n\t\t\tb := *(schema.AdditionalProperties.Boolean)\n\t\t\tresult += indent + fmt.Sprintf(\"additionalProperties: %+v\\n\", b)\n\t\t}\n\t}\n\tif schema.Properties != nil {\n\t\tresult += indent + \"properties:\\n\"\n\t\tfor _, pair := range *(schema.Properties) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.PatternProperties != nil {\n\t\tresult += indent + \"patternProperties:\\n\"\n\t\tfor _, pair := range *(schema.PatternProperties) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.Dependencies != nil {\n\t\tresult += indent + \"dependencies:\\n\"\n\t\tfor _, pair := range *(schema.Dependencies) {\n\t\t\tname := pair.Name\n\t\t\tschemaOrStringArray := pair.Value\n\t\t\ts := schemaOrStringArray.Schema\n\t\t\tif s != nil {\n\t\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t\t} else {\n\t\t\t\ta := schemaOrStringArray.StringArray\n\t\t\t\tif a != nil {\n\t\t\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\t\t\tfor _, s2 := range *a {\n\t\t\t\t\t\tresult += indent + \"  \" + \"  \" + s2 + \"\\n\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\tif schema.Enumeration != nil {\n\t\tresult += indent + \"enumeration:\\n\"\n\t\tfor _, value := range *(schema.Enumeration) {\n\t\t\tif value.String != nil {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%+v\\n\", *value.String)\n\t\t\t} else {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%+v\\n\", *value.Bool)\n\t\t\t}\n\t\t}\n\t}\n\tif schema.Type != nil {\n\t\tresult += indent + fmt.Sprintf(\"type: %+v\\n\", schema.Type.Description())\n\t}\n\tif schema.AllOf != nil {\n\t\tresult += indent + \"allOf:\\n\"\n\t\tfor _, s := range *(schema.AllOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.AnyOf != nil {\n\t\tresult += indent + \"anyOf:\\n\"\n\t\tfor _, s := range *(schema.AnyOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.OneOf != nil {\n\t\tresult += indent + \"oneOf:\\n\"\n\t\tfor _, s := range *(schema.OneOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.Not != nil {\n\t\tresult += indent + \"not:\\n\"\n\t\tresult += schema.Not.describeSchema(indent + \"  \")\n\t}\n\tif schema.Definitions != nil {\n\t\tresult += indent + \"definitions:\\n\"\n\t\tfor _, pair := range *(schema.Definitions) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.Title != nil {\n\t\tresult += indent + \"title: \" + *(schema.Title) + \"\\n\"\n\t}\n\tif schema.Description != nil {\n\t\tresult += indent + \"description: \" + *(schema.Description) + \"\\n\"\n\t}\n\tif schema.Default != nil {\n\t\tresult += indent + \"default:\\n\"\n\t\tresult += indent + fmt.Sprintf(\"  %+v\\n\", *(schema.Default))\n\t}\n\tif schema.Format != nil {\n\t\tresult += indent + \"format: \" + *(schema.Format) + \"\\n\"\n\t}\n\tif schema.Ref != nil {\n\t\tresult += indent + \"$ref: \" + *(schema.Ref) + \"\\n\"\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/models.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package jsonschema supports the reading, writing, and manipulation\n// of JSON Schemas.\npackage jsonschema\n\nimport \"gopkg.in/yaml.v3\"\n\n// The Schema struct models a JSON Schema and, because schemas are\n// defined hierarchically, contains many references to itself.\n// All fields are pointers and are nil if the associated values\n// are not specified.\ntype Schema struct {\n\tSchema *string // $schema\n\tID     *string // id keyword used for $ref resolution scope\n\tRef    *string // $ref, i.e. JSON Pointers\n\n\t// http://json-schema.org/latest/json-schema-validation.html\n\t// 5.1.  Validation keywords for numeric instances (number and integer)\n\tMultipleOf       *SchemaNumber\n\tMaximum          *SchemaNumber\n\tExclusiveMaximum *bool\n\tMinimum          *SchemaNumber\n\tExclusiveMinimum *bool\n\n\t// 5.2.  Validation keywords for strings\n\tMaxLength *int64\n\tMinLength *int64\n\tPattern   *string\n\n\t// 5.3.  Validation keywords for arrays\n\tAdditionalItems *SchemaOrBoolean\n\tItems           *SchemaOrSchemaArray\n\tMaxItems        *int64\n\tMinItems        *int64\n\tUniqueItems     *bool\n\n\t// 5.4.  Validation keywords for objects\n\tMaxProperties        *int64\n\tMinProperties        *int64\n\tRequired             *[]string\n\tAdditionalProperties *SchemaOrBoolean\n\tProperties           *[]*NamedSchema\n\tPatternProperties    *[]*NamedSchema\n\tDependencies         *[]*NamedSchemaOrStringArray\n\n\t// 5.5.  Validation keywords for any instance type\n\tEnumeration *[]SchemaEnumValue\n\tType        *StringOrStringArray\n\tAllOf       *[]*Schema\n\tAnyOf       *[]*Schema\n\tOneOf       *[]*Schema\n\tNot         *Schema\n\tDefinitions *[]*NamedSchema\n\n\t// 6.  Metadata keywords\n\tTitle       *string\n\tDescription *string\n\tDefault     *yaml.Node\n\n\t// 7.  Semantic validation with \"format\"\n\tFormat *string\n}\n\n// These helper structs represent \"combination\" types that generally can\n// have values of one type or another. All are used to represent parts\n// of Schemas.\n\n// SchemaNumber represents a value that can be either an Integer or a Float.\ntype SchemaNumber struct {\n\tInteger *int64\n\tFloat   *float64\n}\n\n// NewSchemaNumberWithInteger creates and returns a new object\nfunc NewSchemaNumberWithInteger(i int64) *SchemaNumber {\n\tresult := &SchemaNumber{}\n\tresult.Integer = &i\n\treturn result\n}\n\n// NewSchemaNumberWithFloat creates and returns a new object\nfunc NewSchemaNumberWithFloat(f float64) *SchemaNumber {\n\tresult := &SchemaNumber{}\n\tresult.Float = &f\n\treturn result\n}\n\n// SchemaOrBoolean represents a value that can be either a Schema or a Boolean.\ntype SchemaOrBoolean struct {\n\tSchema  *Schema\n\tBoolean *bool\n}\n\n// NewSchemaOrBooleanWithSchema creates and returns a new object\nfunc NewSchemaOrBooleanWithSchema(s *Schema) *SchemaOrBoolean {\n\tresult := &SchemaOrBoolean{}\n\tresult.Schema = s\n\treturn result\n}\n\n// NewSchemaOrBooleanWithBoolean creates and returns a new object\nfunc NewSchemaOrBooleanWithBoolean(b bool) *SchemaOrBoolean {\n\tresult := &SchemaOrBoolean{}\n\tresult.Boolean = &b\n\treturn result\n}\n\n// StringOrStringArray represents a value that can be either\n// a String or an Array of Strings.\ntype StringOrStringArray struct {\n\tString      *string\n\tStringArray *[]string\n}\n\n// NewStringOrStringArrayWithString creates and returns a new object\nfunc NewStringOrStringArrayWithString(s string) *StringOrStringArray {\n\tresult := &StringOrStringArray{}\n\tresult.String = &s\n\treturn result\n}\n\n// NewStringOrStringArrayWithStringArray creates and returns a new object\nfunc NewStringOrStringArrayWithStringArray(a []string) *StringOrStringArray {\n\tresult := &StringOrStringArray{}\n\tresult.StringArray = &a\n\treturn result\n}\n\n// SchemaOrStringArray represents a value that can be either\n// a Schema or an Array of Strings.\ntype SchemaOrStringArray struct {\n\tSchema      *Schema\n\tStringArray *[]string\n}\n\n// SchemaOrSchemaArray represents a value that can be either\n// a Schema or an Array of Schemas.\ntype SchemaOrSchemaArray struct {\n\tSchema      *Schema\n\tSchemaArray *[]*Schema\n}\n\n// NewSchemaOrSchemaArrayWithSchema creates and returns a new object\nfunc NewSchemaOrSchemaArrayWithSchema(s *Schema) *SchemaOrSchemaArray {\n\tresult := &SchemaOrSchemaArray{}\n\tresult.Schema = s\n\treturn result\n}\n\n// NewSchemaOrSchemaArrayWithSchemaArray creates and returns a new object\nfunc NewSchemaOrSchemaArrayWithSchemaArray(a []*Schema) *SchemaOrSchemaArray {\n\tresult := &SchemaOrSchemaArray{}\n\tresult.SchemaArray = &a\n\treturn result\n}\n\n// SchemaEnumValue represents a value that can be part of an\n// enumeration in a Schema.\ntype SchemaEnumValue struct {\n\tString *string\n\tBool   *bool\n}\n\n// NamedSchema is a name-value pair that is used to emulate maps\n// with ordered keys.\ntype NamedSchema struct {\n\tName  string\n\tValue *Schema\n}\n\n// NewNamedSchema creates and returns a new object\nfunc NewNamedSchema(name string, value *Schema) *NamedSchema {\n\treturn &NamedSchema{Name: name, Value: value}\n}\n\n// NamedSchemaOrStringArray is a name-value pair that is used\n// to emulate maps with ordered keys.\ntype NamedSchemaOrStringArray struct {\n\tName  string\n\tValue *SchemaOrStringArray\n}\n\n// Access named subschemas by name\n\nfunc namedSchemaArrayElementWithName(array *[]*NamedSchema, name string) *Schema {\n\tif array == nil {\n\t\treturn nil\n\t}\n\tfor _, pair := range *array {\n\t\tif pair.Name == name {\n\t\t\treturn pair.Value\n\t\t}\n\t}\n\treturn nil\n}\n\n// PropertyWithName returns the selected element.\nfunc (s *Schema) PropertyWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.Properties, name)\n}\n\n// PatternPropertyWithName returns the selected element.\nfunc (s *Schema) PatternPropertyWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.PatternProperties, name)\n}\n\n// DefinitionWithName returns the selected element.\nfunc (s *Schema) DefinitionWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.Definitions, name)\n}\n\n// AddProperty adds a named property.\nfunc (s *Schema) AddProperty(name string, property *Schema) {\n\t*s.Properties = append(*s.Properties, NewNamedSchema(name, property))\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/operations.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n)\n\n//\n// OPERATIONS\n// The following methods perform operations on Schemas.\n//\n\n// IsEmpty returns true if no members of the Schema are specified.\nfunc (schema *Schema) IsEmpty() bool {\n\treturn (schema.Schema == nil) &&\n\t\t(schema.ID == nil) &&\n\t\t(schema.MultipleOf == nil) &&\n\t\t(schema.Maximum == nil) &&\n\t\t(schema.ExclusiveMaximum == nil) &&\n\t\t(schema.Minimum == nil) &&\n\t\t(schema.ExclusiveMinimum == nil) &&\n\t\t(schema.MaxLength == nil) &&\n\t\t(schema.MinLength == nil) &&\n\t\t(schema.Pattern == nil) &&\n\t\t(schema.AdditionalItems == nil) &&\n\t\t(schema.Items == nil) &&\n\t\t(schema.MaxItems == nil) &&\n\t\t(schema.MinItems == nil) &&\n\t\t(schema.UniqueItems == nil) &&\n\t\t(schema.MaxProperties == nil) &&\n\t\t(schema.MinProperties == nil) &&\n\t\t(schema.Required == nil) &&\n\t\t(schema.AdditionalProperties == nil) &&\n\t\t(schema.Properties == nil) &&\n\t\t(schema.PatternProperties == nil) &&\n\t\t(schema.Dependencies == nil) &&\n\t\t(schema.Enumeration == nil) &&\n\t\t(schema.Type == nil) &&\n\t\t(schema.AllOf == nil) &&\n\t\t(schema.AnyOf == nil) &&\n\t\t(schema.OneOf == nil) &&\n\t\t(schema.Not == nil) &&\n\t\t(schema.Definitions == nil) &&\n\t\t(schema.Title == nil) &&\n\t\t(schema.Description == nil) &&\n\t\t(schema.Default == nil) &&\n\t\t(schema.Format == nil) &&\n\t\t(schema.Ref == nil)\n}\n\n// IsEqual returns true if two schemas are equal.\nfunc (schema *Schema) IsEqual(schema2 *Schema) bool {\n\treturn schema.String() == schema2.String()\n}\n\n// SchemaOperation represents a function that can be applied to a Schema.\ntype SchemaOperation func(schema *Schema, context string)\n\n// Applies a specified function to a Schema and all of the Schemas that it contains.\nfunc (schema *Schema) applyToSchemas(operation SchemaOperation, context string) {\n\n\tif schema.AdditionalItems != nil {\n\t\ts := schema.AdditionalItems.Schema\n\t\tif s != nil {\n\t\t\ts.applyToSchemas(operation, \"AdditionalItems\")\n\t\t}\n\t}\n\n\tif schema.Items != nil {\n\t\tif schema.Items.SchemaArray != nil {\n\t\t\tfor _, s := range *(schema.Items.SchemaArray) {\n\t\t\t\ts.applyToSchemas(operation, \"Items.SchemaArray\")\n\t\t\t}\n\t\t} else if schema.Items.Schema != nil {\n\t\t\tschema.Items.Schema.applyToSchemas(operation, \"Items.Schema\")\n\t\t}\n\t}\n\n\tif schema.AdditionalProperties != nil {\n\t\ts := schema.AdditionalProperties.Schema\n\t\tif s != nil {\n\t\t\ts.applyToSchemas(operation, \"AdditionalProperties\")\n\t\t}\n\t}\n\n\tif schema.Properties != nil {\n\t\tfor _, pair := range *(schema.Properties) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"Properties\")\n\t\t}\n\t}\n\tif schema.PatternProperties != nil {\n\t\tfor _, pair := range *(schema.PatternProperties) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"PatternProperties\")\n\t\t}\n\t}\n\n\tif schema.Dependencies != nil {\n\t\tfor _, pair := range *(schema.Dependencies) {\n\t\t\tschemaOrStringArray := pair.Value\n\t\t\ts := schemaOrStringArray.Schema\n\t\t\tif s != nil {\n\t\t\t\ts.applyToSchemas(operation, \"Dependencies\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif schema.AllOf != nil {\n\t\tfor _, s := range *(schema.AllOf) {\n\t\t\ts.applyToSchemas(operation, \"AllOf\")\n\t\t}\n\t}\n\tif schema.AnyOf != nil {\n\t\tfor _, s := range *(schema.AnyOf) {\n\t\t\ts.applyToSchemas(operation, \"AnyOf\")\n\t\t}\n\t}\n\tif schema.OneOf != nil {\n\t\tfor _, s := range *(schema.OneOf) {\n\t\t\ts.applyToSchemas(operation, \"OneOf\")\n\t\t}\n\t}\n\tif schema.Not != nil {\n\t\tschema.Not.applyToSchemas(operation, \"Not\")\n\t}\n\n\tif schema.Definitions != nil {\n\t\tfor _, pair := range *(schema.Definitions) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"Definitions\")\n\t\t}\n\t}\n\n\toperation(schema, context)\n}\n\n// CopyProperties copies all non-nil properties from the source Schema to the schema Schema.\nfunc (schema *Schema) CopyProperties(source *Schema) {\n\tif source.Schema != nil {\n\t\tschema.Schema = source.Schema\n\t}\n\tif source.ID != nil {\n\t\tschema.ID = source.ID\n\t}\n\tif source.MultipleOf != nil {\n\t\tschema.MultipleOf = source.MultipleOf\n\t}\n\tif source.Maximum != nil {\n\t\tschema.Maximum = source.Maximum\n\t}\n\tif source.ExclusiveMaximum != nil {\n\t\tschema.ExclusiveMaximum = source.ExclusiveMaximum\n\t}\n\tif source.Minimum != nil {\n\t\tschema.Minimum = source.Minimum\n\t}\n\tif source.ExclusiveMinimum != nil {\n\t\tschema.ExclusiveMinimum = source.ExclusiveMinimum\n\t}\n\tif source.MaxLength != nil {\n\t\tschema.MaxLength = source.MaxLength\n\t}\n\tif source.MinLength != nil {\n\t\tschema.MinLength = source.MinLength\n\t}\n\tif source.Pattern != nil {\n\t\tschema.Pattern = source.Pattern\n\t}\n\tif source.AdditionalItems != nil {\n\t\tschema.AdditionalItems = source.AdditionalItems\n\t}\n\tif source.Items != nil {\n\t\tschema.Items = source.Items\n\t}\n\tif source.MaxItems != nil {\n\t\tschema.MaxItems = source.MaxItems\n\t}\n\tif source.MinItems != nil {\n\t\tschema.MinItems = source.MinItems\n\t}\n\tif source.UniqueItems != nil {\n\t\tschema.UniqueItems = source.UniqueItems\n\t}\n\tif source.MaxProperties != nil {\n\t\tschema.MaxProperties = source.MaxProperties\n\t}\n\tif source.MinProperties != nil {\n\t\tschema.MinProperties = source.MinProperties\n\t}\n\tif source.Required != nil {\n\t\tschema.Required = source.Required\n\t}\n\tif source.AdditionalProperties != nil {\n\t\tschema.AdditionalProperties = source.AdditionalProperties\n\t}\n\tif source.Properties != nil {\n\t\tschema.Properties = source.Properties\n\t}\n\tif source.PatternProperties != nil {\n\t\tschema.PatternProperties = source.PatternProperties\n\t}\n\tif source.Dependencies != nil {\n\t\tschema.Dependencies = source.Dependencies\n\t}\n\tif source.Enumeration != nil {\n\t\tschema.Enumeration = source.Enumeration\n\t}\n\tif source.Type != nil {\n\t\tschema.Type = source.Type\n\t}\n\tif source.AllOf != nil {\n\t\tschema.AllOf = source.AllOf\n\t}\n\tif source.AnyOf != nil {\n\t\tschema.AnyOf = source.AnyOf\n\t}\n\tif source.OneOf != nil {\n\t\tschema.OneOf = source.OneOf\n\t}\n\tif source.Not != nil {\n\t\tschema.Not = source.Not\n\t}\n\tif source.Definitions != nil {\n\t\tschema.Definitions = source.Definitions\n\t}\n\tif source.Title != nil {\n\t\tschema.Title = source.Title\n\t}\n\tif source.Description != nil {\n\t\tschema.Description = source.Description\n\t}\n\tif source.Default != nil {\n\t\tschema.Default = source.Default\n\t}\n\tif source.Format != nil {\n\t\tschema.Format = source.Format\n\t}\n\tif source.Ref != nil {\n\t\tschema.Ref = source.Ref\n\t}\n}\n\n// TypeIs returns true if the Type of a Schema includes the specified type\nfunc (schema *Schema) TypeIs(typeName string) bool {\n\tif schema.Type != nil {\n\t\t// the schema Type is either a string or an array of strings\n\t\tif schema.Type.String != nil {\n\t\t\treturn (*(schema.Type.String) == typeName)\n\t\t} else if schema.Type.StringArray != nil {\n\t\t\tfor _, n := range *(schema.Type.StringArray) {\n\t\t\t\tif n == typeName {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// ResolveRefs resolves \"$ref\" elements in a Schema and its children.\n// But if a reference refers to an object type, is inside a oneOf, or contains a oneOf,\n// the reference is kept and we expect downstream tools to separately model these\n// referenced schemas.\nfunc (schema *Schema) ResolveRefs() {\n\trootSchema := schema\n\tcount := 1\n\tfor count > 0 {\n\t\tcount = 0\n\t\tschema.applyToSchemas(\n\t\t\tfunc(schema *Schema, context string) {\n\t\t\t\tif schema.Ref != nil {\n\t\t\t\t\tresolvedRef, err := rootSchema.resolveJSONPointer(*(schema.Ref))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tlog.Printf(\"%+v\", err)\n\t\t\t\t\t} else if resolvedRef.TypeIs(\"object\") {\n\t\t\t\t\t\t// don't substitute for objects, we'll model the referenced schema with a class\n\t\t\t\t\t} else if context == \"OneOf\" {\n\t\t\t\t\t\t// don't substitute for references inside oneOf declarations\n\t\t\t\t\t} else if resolvedRef.OneOf != nil {\n\t\t\t\t\t\t// don't substitute for references that contain oneOf declarations\n\t\t\t\t\t} else if resolvedRef.AdditionalProperties != nil {\n\t\t\t\t\t\t// don't substitute for references that look like objects\n\t\t\t\t\t} else {\n\t\t\t\t\t\tschema.Ref = nil\n\t\t\t\t\t\tschema.CopyProperties(resolvedRef)\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, \"\")\n\t}\n}\n\n// resolveJSONPointer resolves JSON pointers.\n// This current implementation is very crude and custom for OpenAPI 2.0 schemas.\n// It panics for any pointer that it is unable to resolve.\nfunc (schema *Schema) resolveJSONPointer(ref string) (result *Schema, err error) {\n\tparts := strings.Split(ref, \"#\")\n\tif len(parts) == 2 {\n\t\tdocumentName := parts[0] + \"#\"\n\t\tif documentName == \"#\" && schema.ID != nil {\n\t\t\tdocumentName = *(schema.ID)\n\t\t}\n\t\tpath := parts[1]\n\t\tdocument := schemas[documentName]\n\t\tpathParts := strings.Split(path, \"/\")\n\n\t\t// we currently do a very limited (hard-coded) resolution of certain paths and log errors for missed cases\n\t\tif len(pathParts) == 1 {\n\t\t\treturn document, nil\n\t\t} else if len(pathParts) == 3 {\n\t\t\tswitch pathParts[1] {\n\t\t\tcase \"definitions\":\n\t\t\t\tdictionary := document.Definitions\n\t\t\t\tfor _, pair := range *dictionary {\n\t\t\t\t\tif pair.Name == pathParts[2] {\n\t\t\t\t\t\tresult = pair.Value\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase \"properties\":\n\t\t\t\tdictionary := document.Properties\n\t\t\t\tfor _, pair := range *dictionary {\n\t\t\t\t\tif pair.Name == pathParts[2] {\n\t\t\t\t\t\tresult = pair.Value\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif result == nil {\n\t\treturn nil, fmt.Errorf(\"unresolved pointer: %+v\", ref)\n\t}\n\treturn result, nil\n}\n\n// ResolveAllOfs replaces \"allOf\" elements by merging their properties into the parent Schema.\nfunc (schema *Schema) ResolveAllOfs() {\n\tschema.applyToSchemas(\n\t\tfunc(schema *Schema, context string) {\n\t\t\tif schema.AllOf != nil {\n\t\t\t\tfor _, allOf := range *(schema.AllOf) {\n\t\t\t\t\tschema.CopyProperties(allOf)\n\t\t\t\t}\n\t\t\t\tschema.AllOf = nil\n\t\t\t}\n\t\t}, \"resolveAllOfs\")\n}\n\n// ResolveAnyOfs replaces all \"anyOf\" elements with \"oneOf\".\nfunc (schema *Schema) ResolveAnyOfs() {\n\tschema.applyToSchemas(\n\t\tfunc(schema *Schema, context string) {\n\t\t\tif schema.AnyOf != nil {\n\t\t\t\tschema.OneOf = schema.AnyOf\n\t\t\t\tschema.AnyOf = nil\n\t\t\t}\n\t\t}, \"resolveAnyOfs\")\n}\n\n// return a pointer to a copy of a passed-in string\nfunc stringptr(input string) (output *string) {\n\treturn &input\n}\n\n// CopyOfficialSchemaProperty copies a named property from the official JSON Schema definition\nfunc (schema *Schema) CopyOfficialSchemaProperty(name string) {\n\t*schema.Properties = append(*schema.Properties,\n\t\tNewNamedSchema(name,\n\t\t\t&Schema{Ref: stringptr(\"http://json-schema.org/draft-04/schema#/properties/\" + name)}))\n}\n\n// CopyOfficialSchemaProperties copies named properties from the official JSON Schema definition\nfunc (schema *Schema) CopyOfficialSchemaProperties(names []string) {\n\tfor _, name := range names {\n\t\tschema.CopyOfficialSchemaProperty(name)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/reader.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:generate go run generate-base.go\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"strconv\"\n\n\t\"gopkg.in/yaml.v3\"\n)\n\n// This is a global map of all known Schemas.\n// It is initialized when the first Schema is created and inserted.\nvar schemas map[string]*Schema\n\n// NewBaseSchema builds a schema object from an embedded json representation.\nfunc NewBaseSchema() (schema *Schema, err error) {\n\tb, err := baseSchemaBytes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar node yaml.Node\n\terr = yaml.Unmarshal(b, &node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewSchemaFromObject(&node), nil\n}\n\n// NewSchemaFromFile reads a schema from a file.\n// Currently this assumes that schemas are stored in the source distribution of this project.\nfunc NewSchemaFromFile(filename string) (schema *Schema, err error) {\n\tfile, err := ioutil.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar node yaml.Node\n\terr = yaml.Unmarshal(file, &node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewSchemaFromObject(&node), nil\n}\n\n// NewSchemaFromObject constructs a schema from a parsed JSON object.\n// Due to the complexity of the schema representation, this is a\n// custom reader and not the standard Go JSON reader (encoding/json).\nfunc NewSchemaFromObject(jsonData *yaml.Node) *Schema {\n\tswitch jsonData.Kind {\n\tcase yaml.DocumentNode:\n\t\treturn NewSchemaFromObject(jsonData.Content[0])\n\tcase yaml.MappingNode:\n\t\tschema := &Schema{}\n\n\t\tfor i := 0; i < len(jsonData.Content); i += 2 {\n\t\t\tk := jsonData.Content[i].Value\n\t\t\tv := jsonData.Content[i+1]\n\n\t\t\tswitch k {\n\t\t\tcase \"$schema\":\n\t\t\t\tschema.Schema = schema.stringValue(v)\n\t\t\tcase \"id\":\n\t\t\t\tschema.ID = schema.stringValue(v)\n\n\t\t\tcase \"multipleOf\":\n\t\t\t\tschema.MultipleOf = schema.numberValue(v)\n\t\t\tcase \"maximum\":\n\t\t\t\tschema.Maximum = schema.numberValue(v)\n\t\t\tcase \"exclusiveMaximum\":\n\t\t\t\tschema.ExclusiveMaximum = schema.boolValue(v)\n\t\t\tcase \"minimum\":\n\t\t\t\tschema.Minimum = schema.numberValue(v)\n\t\t\tcase \"exclusiveMinimum\":\n\t\t\t\tschema.ExclusiveMinimum = schema.boolValue(v)\n\n\t\t\tcase \"maxLength\":\n\t\t\t\tschema.MaxLength = schema.intValue(v)\n\t\t\tcase \"minLength\":\n\t\t\t\tschema.MinLength = schema.intValue(v)\n\t\t\tcase \"pattern\":\n\t\t\t\tschema.Pattern = schema.stringValue(v)\n\n\t\t\tcase \"additionalItems\":\n\t\t\t\tschema.AdditionalItems = schema.schemaOrBooleanValue(v)\n\t\t\tcase \"items\":\n\t\t\t\tschema.Items = schema.schemaOrSchemaArrayValue(v)\n\t\t\tcase \"maxItems\":\n\t\t\t\tschema.MaxItems = schema.intValue(v)\n\t\t\tcase \"minItems\":\n\t\t\t\tschema.MinItems = schema.intValue(v)\n\t\t\tcase \"uniqueItems\":\n\t\t\t\tschema.UniqueItems = schema.boolValue(v)\n\n\t\t\tcase \"maxProperties\":\n\t\t\t\tschema.MaxProperties = schema.intValue(v)\n\t\t\tcase \"minProperties\":\n\t\t\t\tschema.MinProperties = schema.intValue(v)\n\t\t\tcase \"required\":\n\t\t\t\tschema.Required = schema.arrayOfStringsValue(v)\n\t\t\tcase \"additionalProperties\":\n\t\t\t\tschema.AdditionalProperties = schema.schemaOrBooleanValue(v)\n\t\t\tcase \"properties\":\n\t\t\t\tschema.Properties = schema.mapOfSchemasValue(v)\n\t\t\tcase \"patternProperties\":\n\t\t\t\tschema.PatternProperties = schema.mapOfSchemasValue(v)\n\t\t\tcase \"dependencies\":\n\t\t\t\tschema.Dependencies = schema.mapOfSchemasOrStringArraysValue(v)\n\n\t\t\tcase \"enum\":\n\t\t\t\tschema.Enumeration = schema.arrayOfEnumValuesValue(v)\n\n\t\t\tcase \"type\":\n\t\t\t\tschema.Type = schema.stringOrStringArrayValue(v)\n\t\t\tcase \"allOf\":\n\t\t\t\tschema.AllOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"anyOf\":\n\t\t\t\tschema.AnyOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"oneOf\":\n\t\t\t\tschema.OneOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"not\":\n\t\t\t\tschema.Not = NewSchemaFromObject(v)\n\t\t\tcase \"definitions\":\n\t\t\t\tschema.Definitions = schema.mapOfSchemasValue(v)\n\n\t\t\tcase \"title\":\n\t\t\t\tschema.Title = schema.stringValue(v)\n\t\t\tcase \"description\":\n\t\t\t\tschema.Description = schema.stringValue(v)\n\n\t\t\tcase \"default\":\n\t\t\t\tschema.Default = v\n\n\t\t\tcase \"format\":\n\t\t\t\tschema.Format = schema.stringValue(v)\n\t\t\tcase \"$ref\":\n\t\t\t\tschema.Ref = schema.stringValue(v)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"UNSUPPORTED (%s)\\n\", k)\n\t\t\t}\n\t\t}\n\n\t\t// insert schema in global map\n\t\tif schema.ID != nil {\n\t\t\tif schemas == nil {\n\t\t\t\tschemas = make(map[string]*Schema, 0)\n\t\t\t}\n\t\t\tschemas[*(schema.ID)] = schema\n\t\t}\n\t\treturn schema\n\n\tdefault:\n\t\tfmt.Printf(\"schemaValue: unexpected node %+v\\n\", jsonData)\n\t\treturn nil\n\t}\n\n\treturn nil\n}\n\n//\n// BUILDERS\n// The following methods build elements of Schemas from interface{} values.\n// Each returns nil if it is unable to build the desired element.\n//\n\n// Gets the string value of an interface{} value if possible.\nfunc (schema *Schema) stringValue(v *yaml.Node) *string {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\treturn &v.Value\n\tdefault:\n\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the numeric value of an interface{} value if possible.\nfunc (schema *Schema) numberValue(v *yaml.Node) *SchemaNumber {\n\tnumber := &SchemaNumber{}\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!float\":\n\t\t\tv2, _ := strconv.ParseFloat(v.Value, 64)\n\t\t\tnumber.Float = &v2\n\t\t\treturn number\n\t\tcase \"!!int\":\n\t\t\tv2, _ := strconv.ParseInt(v.Value, 10, 64)\n\t\t\tnumber.Integer = &v2\n\t\t\treturn number\n\t\tdefault:\n\t\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the integer value of an interface{} value if possible.\nfunc (schema *Schema) intValue(v *yaml.Node) *int64 {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!float\":\n\t\t\tv2, _ := strconv.ParseFloat(v.Value, 64)\n\t\t\tv3 := int64(v2)\n\t\t\treturn &v3\n\t\tcase \"!!int\":\n\t\t\tv2, _ := strconv.ParseInt(v.Value, 10, 64)\n\t\t\treturn &v2\n\t\tdefault:\n\t\t\tfmt.Printf(\"intValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"intValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the bool value of an interface{} value if possible.\nfunc (schema *Schema) boolValue(v *yaml.Node) *bool {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!bool\":\n\t\t\tv2, _ := strconv.ParseBool(v.Value)\n\t\t\treturn &v2\n\t\tdefault:\n\t\t\tfmt.Printf(\"boolValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"boolValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a map of Schemas from an interface{} value if possible.\nfunc (schema *Schema) mapOfSchemasValue(v *yaml.Node) *[]*NamedSchema {\n\tswitch v.Kind {\n\tcase yaml.MappingNode:\n\t\tm := make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(v.Content); i += 2 {\n\t\t\tk2 := v.Content[i].Value\n\t\t\tv2 := v.Content[i+1]\n\t\t\tpair := &NamedSchema{Name: k2, Value: NewSchemaFromObject(v2)}\n\t\t\tm = append(m, pair)\n\t\t}\n\t\treturn &m\n\tdefault:\n\t\tfmt.Printf(\"mapOfSchemasValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of Schemas from an interface{} value if possible.\nfunc (schema *Schema) arrayOfSchemasValue(v *yaml.Node) *[]*Schema {\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tm := make([]*Schema, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.MappingNode:\n\t\t\t\ts := NewSchemaFromObject(v2)\n\t\t\t\tm = append(m, s)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfSchemasValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &m\n\tcase yaml.MappingNode:\n\t\tm := make([]*Schema, 0)\n\t\ts := NewSchemaFromObject(v)\n\t\tm = append(m, s)\n\t\treturn &m\n\tdefault:\n\t\tfmt.Printf(\"arrayOfSchemasValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a Schema or an array of Schemas from an interface{} value if possible.\nfunc (schema *Schema) schemaOrSchemaArrayValue(v *yaml.Node) *SchemaOrSchemaArray {\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tm := make([]*Schema, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.MappingNode:\n\t\t\t\ts := NewSchemaFromObject(v2)\n\t\t\t\tm = append(m, s)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"schemaOrSchemaArrayValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &SchemaOrSchemaArray{SchemaArray: &m}\n\tcase yaml.MappingNode:\n\t\ts := NewSchemaFromObject(v)\n\t\treturn &SchemaOrSchemaArray{Schema: s}\n\tdefault:\n\t\tfmt.Printf(\"schemaOrSchemaArrayValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of strings from an interface{} value if possible.\nfunc (schema *Schema) arrayOfStringsValue(v *yaml.Node) *[]string {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\ta := []string{v.Value}\n\t\treturn &a\n\tcase yaml.SequenceNode:\n\t\ta := make([]string, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\ta = append(a, v2.Value)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &a\n\tdefault:\n\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a string or an array of strings from an interface{} value if possible.\nfunc (schema *Schema) stringOrStringArrayValue(v *yaml.Node) *StringOrStringArray {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\ts := &StringOrStringArray{}\n\t\ts.String = &v.Value\n\t\treturn s\n\tcase yaml.SequenceNode:\n\t\ta := make([]string, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\ta = append(a, v2.Value)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\ts := &StringOrStringArray{}\n\t\ts.StringArray = &a\n\t\treturn s\n\tdefault:\n\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of enum values from an interface{} value if possible.\nfunc (schema *Schema) arrayOfEnumValuesValue(v *yaml.Node) *[]SchemaEnumValue {\n\ta := make([]SchemaEnumValue, 0)\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\tswitch v2.Tag {\n\t\t\t\tcase \"!!str\":\n\t\t\t\t\ta = append(a, SchemaEnumValue{String: &v2.Value})\n\t\t\t\tcase \"!!bool\":\n\t\t\t\t\tv3, _ := strconv.ParseBool(v2.Value)\n\t\t\t\t\ta = append(a, SchemaEnumValue{Bool: &v3})\n\t\t\t\tdefault:\n\t\t\t\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected type %s\\n\", v2.Tag)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected node %+v\\n\", v)\n\t}\n\treturn &a\n}\n\n// Gets a map of schemas or string arrays from an interface{} value if possible.\nfunc (schema *Schema) mapOfSchemasOrStringArraysValue(v *yaml.Node) *[]*NamedSchemaOrStringArray {\n\tm := make([]*NamedSchemaOrStringArray, 0)\n\tswitch v.Kind {\n\tcase yaml.MappingNode:\n\t\tfor i := 0; i < len(v.Content); i += 2 {\n\t\t\tk2 := v.Content[i].Value\n\t\t\tv2 := v.Content[i+1]\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.SequenceNode:\n\t\t\t\ta := make([]string, 0)\n\t\t\t\tfor _, v3 := range v2.Content {\n\t\t\t\t\tswitch v3.Kind {\n\t\t\t\t\tcase yaml.ScalarNode:\n\t\t\t\t\t\ta = append(a, v3.Value)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v3)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts := &SchemaOrStringArray{}\n\t\t\t\ts.StringArray = &a\n\t\t\t\tpair := &NamedSchemaOrStringArray{Name: k2, Value: s}\n\t\t\t\tm = append(m, pair)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v)\n\t}\n\treturn &m\n}\n\n// Gets a schema or a boolean value from an interface{} value if possible.\nfunc (schema *Schema) schemaOrBooleanValue(v *yaml.Node) *SchemaOrBoolean {\n\tschemaOrBoolean := &SchemaOrBoolean{}\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tv2, _ := strconv.ParseBool(v.Value)\n\t\tschemaOrBoolean.Boolean = &v2\n\tcase yaml.MappingNode:\n\t\tschemaOrBoolean.Schema = NewSchemaFromObject(v)\n\tdefault:\n\t\tfmt.Printf(\"schemaOrBooleanValue: unexpected node %+v\\n\", v)\n\t}\n\treturn schemaOrBoolean\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/schema.json",
    "content": "{\n    \"id\": \"http://json-schema.org/draft-04/schema#\",\n    \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n    \"description\": \"Core schema meta-schema\",\n    \"definitions\": {\n        \"schemaArray\": {\n            \"type\": \"array\",\n            \"minItems\": 1,\n            \"items\": { \"$ref\": \"#\" }\n        },\n        \"positiveInteger\": {\n            \"type\": \"integer\",\n            \"minimum\": 0\n        },\n        \"positiveIntegerDefault0\": {\n            \"allOf\": [ { \"$ref\": \"#/definitions/positiveInteger\" }, { \"default\": 0 } ]\n        },\n        \"simpleTypes\": {\n            \"enum\": [ \"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\" ]\n        },\n        \"stringArray\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" },\n            \"minItems\": 1,\n            \"uniqueItems\": true\n        }\n    },\n    \"type\": \"object\",\n    \"properties\": {\n        \"id\": {\n            \"type\": \"string\",\n            \"format\": \"uri\"\n        },\n        \"$schema\": {\n            \"type\": \"string\",\n            \"format\": \"uri\"\n        },\n        \"title\": {\n            \"type\": \"string\"\n        },\n        \"description\": {\n            \"type\": \"string\"\n        },\n        \"default\": {},\n        \"multipleOf\": {\n            \"type\": \"number\",\n            \"minimum\": 0,\n            \"exclusiveMinimum\": true\n        },\n        \"maximum\": {\n            \"type\": \"number\"\n        },\n        \"exclusiveMaximum\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"minimum\": {\n            \"type\": \"number\"\n        },\n        \"exclusiveMinimum\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"maxLength\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minLength\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"pattern\": {\n            \"type\": \"string\",\n            \"format\": \"regex\"\n        },\n        \"additionalItems\": {\n            \"anyOf\": [\n                { \"type\": \"boolean\" },\n                { \"$ref\": \"#\" }\n            ],\n            \"default\": {}\n        },\n        \"items\": {\n            \"anyOf\": [\n                { \"$ref\": \"#\" },\n                { \"$ref\": \"#/definitions/schemaArray\" }\n            ],\n            \"default\": {}\n        },\n        \"maxItems\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minItems\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"uniqueItems\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"maxProperties\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minProperties\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n        \"additionalProperties\": {\n            \"anyOf\": [\n                { \"type\": \"boolean\" },\n                { \"$ref\": \"#\" }\n            ],\n            \"default\": {}\n        },\n        \"definitions\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"properties\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"patternProperties\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"dependencies\": {\n            \"type\": \"object\",\n            \"additionalProperties\": {\n                \"anyOf\": [\n                    { \"$ref\": \"#\" },\n                    { \"$ref\": \"#/definitions/stringArray\" }\n                ]\n            }\n        },\n        \"enum\": {\n            \"type\": \"array\",\n            \"minItems\": 1,\n            \"uniqueItems\": true\n        },\n        \"type\": {\n            \"anyOf\": [\n                { \"$ref\": \"#/definitions/simpleTypes\" },\n                {\n                    \"type\": \"array\",\n                    \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n                    \"minItems\": 1,\n                    \"uniqueItems\": true\n                }\n            ]\n        },\n        \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"not\": { \"$ref\": \"#\" }\n    },\n    \"dependencies\": {\n        \"exclusiveMaximum\": [ \"maximum\" ],\n        \"exclusiveMinimum\": [ \"minimum\" ]\n    },\n    \"default\": {}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/jsonschema/writer.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\n\t\"gopkg.in/yaml.v3\"\n)\n\nconst indentation = \"  \"\n\nfunc renderMappingNode(node *yaml.Node, indent string) (result string) {\n\tresult = \"{\\n\"\n\tinnerIndent := indent + indentation\n\tfor i := 0; i < len(node.Content); i += 2 {\n\t\t// first print the key\n\t\tkey := node.Content[i].Value\n\t\tresult += fmt.Sprintf(\"%s\\\"%+v\\\": \", innerIndent, key)\n\t\t// then the value\n\t\tvalue := node.Content[i+1]\n\t\tswitch value.Kind {\n\t\tcase yaml.ScalarNode:\n\t\t\tresult += \"\\\"\" + value.Value + \"\\\"\"\n\t\tcase yaml.MappingNode:\n\t\t\tresult += renderMappingNode(value, innerIndent)\n\t\tcase yaml.SequenceNode:\n\t\t\tresult += renderSequenceNode(value, innerIndent)\n\t\tdefault:\n\t\t\tresult += fmt.Sprintf(\"???MapItem(Key:%+v, Value:%T)\", value, value)\n\t\t}\n\t\tif i < len(node.Content)-2 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\n\tresult += indent + \"}\"\n\treturn result\n}\n\nfunc renderSequenceNode(node *yaml.Node, indent string) (result string) {\n\tresult = \"[\\n\"\n\tinnerIndent := indent + indentation\n\tfor i := 0; i < len(node.Content); i++ {\n\t\titem := node.Content[i]\n\t\tswitch item.Kind {\n\t\tcase yaml.ScalarNode:\n\t\t\tresult += innerIndent + \"\\\"\" + item.Value + \"\\\"\"\n\t\tcase yaml.MappingNode:\n\t\t\tresult += innerIndent + renderMappingNode(item, innerIndent) + \"\"\n\t\tdefault:\n\t\t\tresult += innerIndent + fmt.Sprintf(\"???ArrayItem(%+v)\", item)\n\t\t}\n\t\tif i < len(node.Content)-1 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\tresult += indent + \"]\"\n\treturn result\n}\n\nfunc renderStringArray(array []string, indent string) (result string) {\n\tresult = \"[\\n\"\n\tinnerIndent := indent + indentation\n\tfor i, item := range array {\n\t\tresult += innerIndent + \"\\\"\" + item + \"\\\"\"\n\t\tif i < len(array)-1 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\tresult += indent + \"]\"\n\treturn result\n}\n\n// Render renders a yaml.Node as JSON\nfunc Render(node *yaml.Node) string {\n\tif node.Kind == yaml.DocumentNode {\n\t\tif len(node.Content) == 1 {\n\t\t\treturn Render(node.Content[0])\n\t\t}\n\t} else if node.Kind == yaml.MappingNode {\n\t\treturn renderMappingNode(node, \"\") + \"\\n\"\n\t} else if node.Kind == yaml.SequenceNode {\n\t\treturn renderSequenceNode(node, \"\") + \"\\n\"\n\t}\n\treturn \"\"\n}\n\nfunc (object *SchemaNumber) nodeValue() *yaml.Node {\n\tif object.Integer != nil {\n\t\treturn nodeForInt64(*object.Integer)\n\t} else if object.Float != nil {\n\t\treturn nodeForFloat64(*object.Float)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrBoolean) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.Boolean != nil {\n\t\treturn nodeForBoolean(*object.Boolean)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc nodeForStringArray(array []string) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range array {\n\t\tcontent = append(content, nodeForString(item))\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc nodeForSchemaArray(array []*Schema) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range array {\n\t\tcontent = append(content, item.nodeValue())\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc (object *StringOrStringArray) nodeValue() *yaml.Node {\n\tif object.String != nil {\n\t\treturn nodeForString(*object.String)\n\t} else if object.StringArray != nil {\n\t\treturn nodeForStringArray(*(object.StringArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrStringArray) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.StringArray != nil {\n\t\treturn nodeForStringArray(*(object.StringArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrSchemaArray) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.SchemaArray != nil {\n\t\treturn nodeForSchemaArray(*(object.SchemaArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaEnumValue) nodeValue() *yaml.Node {\n\tif object.String != nil {\n\t\treturn nodeForString(*object.String)\n\t} else if object.Bool != nil {\n\t\treturn nodeForBoolean(*object.Bool)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc nodeForNamedSchemaArray(array *[]*NamedSchema) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, pair := range *(array) {\n\t\tcontent = appendPair(content, pair.Name, pair.Value.nodeValue())\n\t}\n\treturn nodeForMapping(content)\n}\n\nfunc nodeForNamedSchemaOrStringArray(array *[]*NamedSchemaOrStringArray) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, pair := range *(array) {\n\t\tcontent = appendPair(content, pair.Name, pair.Value.nodeValue())\n\t}\n\treturn nodeForMapping(content)\n}\n\nfunc nodeForSchemaEnumArray(array *[]SchemaEnumValue) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range *array {\n\t\tcontent = append(content, item.nodeValue())\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc nodeForMapping(content []*yaml.Node) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.MappingNode,\n\t\tContent: content,\n\t}\n}\n\nfunc nodeForSequence(content []*yaml.Node) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: content,\n\t}\n}\n\nfunc nodeForString(value string) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!str\",\n\t\tValue: value,\n\t}\n}\n\nfunc nodeForBoolean(value bool) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!bool\",\n\t\tValue: fmt.Sprintf(\"%t\", value),\n\t}\n}\n\nfunc nodeForInt64(value int64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!int\",\n\t\tValue: fmt.Sprintf(\"%d\", value),\n\t}\n}\n\nfunc nodeForFloat64(value float64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!float\",\n\t\tValue: fmt.Sprintf(\"%f\", value),\n\t}\n}\n\nfunc appendPair(nodes []*yaml.Node, name string, value *yaml.Node) []*yaml.Node {\n\tnodes = append(nodes, nodeForString(name))\n\tnodes = append(nodes, value)\n\treturn nodes\n}\n\nfunc (schema *Schema) nodeValue() *yaml.Node {\n\tn := &yaml.Node{Kind: yaml.MappingNode}\n\tcontent := make([]*yaml.Node, 0)\n\tif schema.Title != nil {\n\t\tcontent = appendPair(content, \"title\", nodeForString(*schema.Title))\n\t}\n\tif schema.ID != nil {\n\t\tcontent = appendPair(content, \"id\", nodeForString(*schema.ID))\n\t}\n\tif schema.Schema != nil {\n\t\tcontent = appendPair(content, \"$schema\", nodeForString(*schema.Schema))\n\t}\n\tif schema.Type != nil {\n\t\tcontent = appendPair(content, \"type\", schema.Type.nodeValue())\n\t}\n\tif schema.Items != nil {\n\t\tcontent = appendPair(content, \"items\", schema.Items.nodeValue())\n\t}\n\tif schema.Description != nil {\n\t\tcontent = appendPair(content, \"description\", nodeForString(*schema.Description))\n\t}\n\tif schema.Required != nil {\n\t\tcontent = appendPair(content, \"required\", nodeForStringArray(*schema.Required))\n\t}\n\tif schema.AdditionalProperties != nil {\n\t\tcontent = appendPair(content, \"additionalProperties\", schema.AdditionalProperties.nodeValue())\n\t}\n\tif schema.PatternProperties != nil {\n\t\tcontent = appendPair(content, \"patternProperties\", nodeForNamedSchemaArray(schema.PatternProperties))\n\t}\n\tif schema.Properties != nil {\n\t\tcontent = appendPair(content, \"properties\", nodeForNamedSchemaArray(schema.Properties))\n\t}\n\tif schema.Dependencies != nil {\n\t\tcontent = appendPair(content, \"dependencies\", nodeForNamedSchemaOrStringArray(schema.Dependencies))\n\t}\n\tif schema.Ref != nil {\n\t\tcontent = appendPair(content, \"$ref\", nodeForString(*schema.Ref))\n\t}\n\tif schema.MultipleOf != nil {\n\t\tcontent = appendPair(content, \"multipleOf\", schema.MultipleOf.nodeValue())\n\t}\n\tif schema.Maximum != nil {\n\t\tcontent = appendPair(content, \"maximum\", schema.Maximum.nodeValue())\n\t}\n\tif schema.ExclusiveMaximum != nil {\n\t\tcontent = appendPair(content, \"exclusiveMaximum\", nodeForBoolean(*schema.ExclusiveMaximum))\n\t}\n\tif schema.Minimum != nil {\n\t\tcontent = appendPair(content, \"minimum\", schema.Minimum.nodeValue())\n\t}\n\tif schema.ExclusiveMinimum != nil {\n\t\tcontent = appendPair(content, \"exclusiveMinimum\", nodeForBoolean(*schema.ExclusiveMinimum))\n\t}\n\tif schema.MaxLength != nil {\n\t\tcontent = appendPair(content, \"maxLength\", nodeForInt64(*schema.MaxLength))\n\t}\n\tif schema.MinLength != nil {\n\t\tcontent = appendPair(content, \"minLength\", nodeForInt64(*schema.MinLength))\n\t}\n\tif schema.Pattern != nil {\n\t\tcontent = appendPair(content, \"pattern\", nodeForString(*schema.Pattern))\n\t}\n\tif schema.AdditionalItems != nil {\n\t\tcontent = appendPair(content, \"additionalItems\", schema.AdditionalItems.nodeValue())\n\t}\n\tif schema.MaxItems != nil {\n\t\tcontent = appendPair(content, \"maxItems\", nodeForInt64(*schema.MaxItems))\n\t}\n\tif schema.MinItems != nil {\n\t\tcontent = appendPair(content, \"minItems\", nodeForInt64(*schema.MinItems))\n\t}\n\tif schema.UniqueItems != nil {\n\t\tcontent = appendPair(content, \"uniqueItems\", nodeForBoolean(*schema.UniqueItems))\n\t}\n\tif schema.MaxProperties != nil {\n\t\tcontent = appendPair(content, \"maxProperties\", nodeForInt64(*schema.MaxProperties))\n\t}\n\tif schema.MinProperties != nil {\n\t\tcontent = appendPair(content, \"minProperties\", nodeForInt64(*schema.MinProperties))\n\t}\n\tif schema.Enumeration != nil {\n\t\tcontent = appendPair(content, \"enum\", nodeForSchemaEnumArray(schema.Enumeration))\n\t}\n\tif schema.AllOf != nil {\n\t\tcontent = appendPair(content, \"allOf\", nodeForSchemaArray(*schema.AllOf))\n\t}\n\tif schema.AnyOf != nil {\n\t\tcontent = appendPair(content, \"anyOf\", nodeForSchemaArray(*schema.AnyOf))\n\t}\n\tif schema.OneOf != nil {\n\t\tcontent = appendPair(content, \"oneOf\", nodeForSchemaArray(*schema.OneOf))\n\t}\n\tif schema.Not != nil {\n\t\tcontent = appendPair(content, \"not\", schema.Not.nodeValue())\n\t}\n\tif schema.Definitions != nil {\n\t\tcontent = appendPair(content, \"definitions\", nodeForNamedSchemaArray(schema.Definitions))\n\t}\n\tif schema.Default != nil {\n\t\t// m = append(m, yaml.MapItem{Key: \"default\", Value: *schema.Default})\n\t}\n\tif schema.Format != nil {\n\t\tcontent = appendPair(content, \"format\", nodeForString(*schema.Format))\n\t}\n\tn.Content = content\n\treturn n\n}\n\n// JSONString returns a json representation of a schema.\nfunc (schema *Schema) JSONString() string {\n\tnode := schema.nodeValue()\n\treturn Render(node)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage openapi_v2\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic/compiler\"\n)\n\n// Version returns the package name (and OpenAPI version).\nfunc Version() string {\n\treturn \"openapi_v2\"\n}\n\n// NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.\nfunc NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {\n\terrors := make([]error, 0)\n\tx := &AdditionalPropertiesItem{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AdditionalPropertiesItem_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// bool boolean = 2;\n\tboolValue, ok := compiler.BoolForScalarNode(in)\n\tif ok {\n\t\tx.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}\n\t\tmatched = true\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AdditionalPropertiesItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAny creates an object of type Any if possible, returning an error if not.\nfunc NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {\n\terrors := make([]error, 0)\n\tx := &Any{}\n\tbytes := compiler.Marshal(in)\n\tx.Yaml = string(bytes)\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewApiKeySecurity creates an object of type ApiKeySecurity if possible, returning an error if not.\nfunc NewApiKeySecurity(in *yaml.Node, context *compiler.Context) (*ApiKeySecurity, error) {\n\terrors := make([]error, 0)\n\tx := &ApiKeySecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"in\", \"name\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [apiKey]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"apiKey\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"name\")\n\t\tif v2 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"in\")\n\t\tif v3 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [header query]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"header\", \"query\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"description\")\n\t\tif v4 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewBasicAuthenticationSecurity creates an object of type BasicAuthenticationSecurity if possible, returning an error if not.\nfunc NewBasicAuthenticationSecurity(in *yaml.Node, context *compiler.Context) (*BasicAuthenticationSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &BasicAuthenticationSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [basic]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"basic\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewBodyParameter creates an object of type BodyParameter if possible, returning an error if not.\nfunc NewBodyParameter(in *yaml.Node, context *compiler.Context) (*BodyParameter, error) {\n\terrors := make([]error, 0)\n\tx := &BodyParameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"schema\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"in\", \"name\", \"required\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"name\")\n\t\tif v2 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"in\")\n\t\tif v3 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [body]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"body\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"required\")\n\t\tif v4 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Schema schema = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchema(v5, compiler.NewContext(\"schema\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewContact creates an object of type Contact if possible, returning an error if not.\nfunc NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {\n\terrors := make([]error, 0)\n\tx := &Contact{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"email\", \"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string email = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"email\")\n\t\tif v3 != nil {\n\t\t\tx.Email, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for email: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefault creates an object of type Default if possible, returning an error if not.\nfunc NewDefault(in *yaml.Node, context *compiler.Context) (*Default, error) {\n\terrors := make([]error, 0)\n\tx := &Default{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefinitions creates an object of type Definitions if possible, returning an error if not.\nfunc NewDefinitions(in *yaml.Node, context *compiler.Context) (*Definitions, error) {\n\terrors := make([]error, 0)\n\tx := &Definitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchema additional_properties = 1;\n\t\t// MAP: Schema\n\t\tx.AdditionalProperties = make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchema{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDocument creates an object of type Document if possible, returning an error if not.\nfunc NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {\n\terrors := make([]error, 0)\n\tx := &Document{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"info\", \"paths\", \"swagger\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"basePath\", \"consumes\", \"definitions\", \"externalDocs\", \"host\", \"info\", \"parameters\", \"paths\", \"produces\", \"responses\", \"schemes\", \"security\", \"securityDefinitions\", \"swagger\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string swagger = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"swagger\")\n\t\tif v1 != nil {\n\t\t\tx.Swagger, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for swagger: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [2.0]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"2.0\"}, x.Swagger) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for swagger: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Info info = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"info\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Info, err = NewInfo(v2, compiler.NewContext(\"info\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string host = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"host\")\n\t\tif v3 != nil {\n\t\t\tx.Host, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for host: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string base_path = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"basePath\")\n\t\tif v4 != nil {\n\t\t\tx.BasePath, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for basePath: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string schemes = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"schemes\")\n\t\tif v5 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v5)\n\t\t\tif ok {\n\t\t\t\tx.Schemes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [http https ws wss]\n\t\t\tif ok && !compiler.StringArrayContainsValues([]string{\"http\", \"https\", \"ws\", \"wss\"}, x.Schemes) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string consumes = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"consumes\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Consumes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for consumes: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string produces = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"produces\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Produces = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for produces: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Paths paths = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"paths\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Paths, err = NewPaths(v8, compiler.NewContext(\"paths\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Definitions definitions = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"definitions\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Definitions, err = NewDefinitions(v9, compiler.NewContext(\"definitions\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ParameterDefinitions parameters = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewParameterDefinitions(v10, compiler.NewContext(\"parameters\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ResponseDefinitions responses = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponseDefinitions(v11, compiler.NewContext(\"responses\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"security\")\n\t\tif v12 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// SecurityDefinitions security_definitions = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"securityDefinitions\")\n\t\tif v13 != nil {\n\t\t\tvar err error\n\t\t\tx.SecurityDefinitions, err = NewSecurityDefinitions(v13, compiler.NewContext(\"securityDefinitions\", v13, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Tag tags = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v14 != nil {\n\t\t\t// repeated Tag\n\t\t\tx.Tags = make([]*Tag, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v14)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewTag(item, compiler.NewContext(\"tags\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Tags = append(x.Tags, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v15 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v15, compiler.NewContext(\"externalDocs\", v15, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 16;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExamples creates an object of type Examples if possible, returning an error if not.\nfunc NewExamples(in *yaml.Node, context *compiler.Context) (*Examples, error) {\n\terrors := make([]error, 0)\n\tx := &Examples{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.\nfunc NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {\n\terrors := make([]error, 0)\n\tx := &ExternalDocs{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewFileSchema creates an object of type FileSchema if possible, returning an error if not.\nfunc NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error) {\n\terrors := make([]error, 0)\n\tx := &FileSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"default\", \"description\", \"example\", \"externalDocs\", \"format\", \"readOnly\", \"required\", \"title\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string format = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"format\")\n\t\tif v1 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"title\")\n\t\tif v2 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"default\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v4, compiler.NewContext(\"default\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"required\")\n\t\tif v5 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v5)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [file]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"file\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v7 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext(\"externalDocs\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"example\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v9, compiler.NewContext(\"example\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewFormDataParameterSubSchema creates an object of type FormDataParameterSubSchema if possible, returning an error if not.\nfunc NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*FormDataParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &FormDataParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [formData]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"formData\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v5 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array file]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\", \"file\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"format\")\n\t\tif v7 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"items\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v8, compiler.NewContext(\"items\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v9 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes multi]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\", \"multi\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"default\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v10, compiler.NewContext(\"default\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v21 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v21)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v22 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 23;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeader creates an object of type Header if possible, returning an error if not.\nfunc NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {\n\terrors := make([]error, 0)\n\tx := &Header{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"pattern\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number integer boolean array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"integer\", \"boolean\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"items\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v3, compiler.NewContext(\"items\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v4 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v7 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v8 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v8)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v9 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v10 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v12 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v13 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v15 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v15)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v16 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v16)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v17 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"description\")\n\t\tif v18 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v18)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 19;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaderParameterSubSchema creates an object of type HeaderParameterSubSchema if possible, returning an error if not.\nfunc NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*HeaderParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &HeaderParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [header]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"header\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"type\")\n\t\tif v5 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"format\")\n\t\tif v6 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"items\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v7, compiler.NewContext(\"items\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v8 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"default\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v9, compiler.NewContext(\"default\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v11 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v12 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v13 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v16 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v19 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v19)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v21 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 22;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaders creates an object of type Headers if possible, returning an error if not.\nfunc NewHeaders(in *yaml.Node, context *compiler.Context) (*Headers, error) {\n\terrors := make([]error, 0)\n\tx := &Headers{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedHeader additional_properties = 1;\n\t\t// MAP: Header\n\t\tx.AdditionalProperties = make([]*NamedHeader, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedHeader{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewHeader(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewInfo creates an object of type Info if possible, returning an error if not.\nfunc NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {\n\terrors := make([]error, 0)\n\tx := &Info{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"title\", \"version\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"contact\", \"description\", \"license\", \"termsOfService\", \"title\", \"version\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string title = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"title\")\n\t\tif v1 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string version = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"version\")\n\t\tif v2 != nil {\n\t\t\tx.Version, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for version: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string terms_of_service = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"termsOfService\")\n\t\tif v4 != nil {\n\t\t\tx.TermsOfService, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for termsOfService: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Contact contact = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"contact\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Contact, err = NewContact(v5, compiler.NewContext(\"contact\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// License license = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"license\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.License, err = NewLicense(v6, compiler.NewContext(\"license\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.\nfunc NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {\n\terrors := make([]error, 0)\n\tx := &ItemsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value for item array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tx.Schema = make([]*Schema, 0)\n\t\ty, err := NewSchema(m, compiler.NewContext(\"<array>\", m, context))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.Schema = append(x.Schema, y)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewJsonReference creates an object of type JsonReference if possible, returning an error if not.\nfunc NewJsonReference(in *yaml.Node, context *compiler.Context) (*JsonReference, error) {\n\terrors := make([]error, 0)\n\tx := &JsonReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"$ref\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLicense creates an object of type License if possible, returning an error if not.\nfunc NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {\n\terrors := make([]error, 0)\n\tx := &License{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedAny creates an object of type NamedAny if possible, returning an error if not.\nfunc NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {\n\terrors := make([]error, 0)\n\tx := &NamedAny{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedHeader creates an object of type NamedHeader if possible, returning an error if not.\nfunc NewNamedHeader(in *yaml.Node, context *compiler.Context) (*NamedHeader, error) {\n\terrors := make([]error, 0)\n\tx := &NamedHeader{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Header value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewHeader(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedParameter creates an object of type NamedParameter if possible, returning an error if not.\nfunc NewNamedParameter(in *yaml.Node, context *compiler.Context) (*NamedParameter, error) {\n\terrors := make([]error, 0)\n\tx := &NamedParameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Parameter value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewParameter(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.\nfunc NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedPathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PathItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewPathItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponse creates an object of type NamedResponse if possible, returning an error if not.\nfunc NewNamedResponse(in *yaml.Node, context *compiler.Context) (*NamedResponse, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponse{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Response value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponse(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponseValue creates an object of type NamedResponseValue if possible, returning an error if not.\nfunc NewNamedResponseValue(in *yaml.Node, context *compiler.Context) (*NamedResponseValue, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponseValue{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ResponseValue value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponseValue(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSchema creates an object of type NamedSchema if possible, returning an error if not.\nfunc NewNamedSchema(in *yaml.Node, context *compiler.Context) (*NamedSchema, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Schema value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSchema(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSecurityDefinitionsItem creates an object of type NamedSecurityDefinitionsItem if possible, returning an error if not.\nfunc NewNamedSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*NamedSecurityDefinitionsItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSecurityDefinitionsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SecurityDefinitionsItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSecurityDefinitionsItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedString creates an object of type NamedString if possible, returning an error if not.\nfunc NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {\n\terrors := make([]error, 0)\n\tx := &NamedString{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tx.Value, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for value: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.\nfunc NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {\n\terrors := make([]error, 0)\n\tx := &NamedStringArray{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// StringArray value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewStringArray(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNonBodyParameter creates an object of type NonBodyParameter if possible, returning an error if not.\nfunc NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyParameter, error) {\n\terrors := make([]error, 0)\n\tx := &NonBodyParameter{}\n\tmatched := false\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// HeaderParameterSubSchema header_parameter_sub_schema = 1;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewHeaderParameterSubSchema(m, compiler.NewContext(\"headerParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_HeaderParameterSubSchema{HeaderParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// FormDataParameterSubSchema form_data_parameter_sub_schema = 2;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewFormDataParameterSubSchema(m, compiler.NewContext(\"formDataParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_FormDataParameterSubSchema{FormDataParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// QueryParameterSubSchema query_parameter_sub_schema = 3;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewQueryParameterSubSchema(m, compiler.NewContext(\"queryParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_QueryParameterSubSchema{QueryParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// PathParameterSubSchema path_parameter_sub_schema = 4;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewPathParameterSubSchema(m, compiler.NewContext(\"pathParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_PathParameterSubSchema{PathParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid NonBodyParameter\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2AccessCodeSecurity creates an object of type Oauth2AccessCodeSecurity if possible, returning an error if not.\nfunc NewOauth2AccessCodeSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2AccessCodeSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2AccessCodeSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"authorizationUrl\", \"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"authorizationUrl\", \"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [accessCode]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"accessCode\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string authorization_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v4 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string token_url = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v5 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"description\")\n\t\tif v6 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2ApplicationSecurity creates an object of type Oauth2ApplicationSecurity if possible, returning an error if not.\nfunc NewOauth2ApplicationSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2ApplicationSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2ApplicationSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [application]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"application\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string token_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v4 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2ImplicitSecurity creates an object of type Oauth2ImplicitSecurity if possible, returning an error if not.\nfunc NewOauth2ImplicitSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2ImplicitSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2ImplicitSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"authorizationUrl\", \"flow\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"authorizationUrl\", \"description\", \"flow\", \"scopes\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [implicit]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"implicit\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string authorization_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v4 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2PasswordSecurity creates an object of type Oauth2PasswordSecurity if possible, returning an error if not.\nfunc NewOauth2PasswordSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2PasswordSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2PasswordSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [password]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"password\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string token_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v4 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2Scopes creates an object of type Oauth2Scopes if possible, returning an error if not.\nfunc NewOauth2Scopes(in *yaml.Node, context *compiler.Context) (*Oauth2Scopes, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2Scopes{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedString additional_properties = 1;\n\t\t// MAP: string\n\t\tx.AdditionalProperties = make([]*NamedString, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedString{}\n\t\t\t\tpair.Name = k\n\t\t\t\tpair.Value, _ = compiler.StringForScalarNode(v)\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOperation creates an object of type Operation if possible, returning an error if not.\nfunc NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {\n\terrors := make([]error, 0)\n\tx := &Operation{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"responses\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"consumes\", \"deprecated\", \"description\", \"externalDocs\", \"operationId\", \"parameters\", \"produces\", \"responses\", \"schemes\", \"security\", \"summary\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string tags = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Tags = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tags: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext(\"externalDocs\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v5 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string produces = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"produces\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Produces = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for produces: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string consumes = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"consumes\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Consumes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for consumes: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated ParametersItem parameters = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v8 != nil {\n\t\t\t// repeated ParametersItem\n\t\t\tx.Parameters = make([]*ParametersItem, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v8)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParametersItem(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Responses responses = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponses(v9, compiler.NewContext(\"responses\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated string schemes = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"schemes\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Schemes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [http https ws wss]\n\t\t\tif ok && !compiler.StringArrayContainsValues([]string{\"http\", \"https\", \"ws\", \"wss\"}, x.Schemes) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v11 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"security\")\n\t\tif v12 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 13;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameter creates an object of type Parameter if possible, returning an error if not.\nfunc NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {\n\terrors := make([]error, 0)\n\tx := &Parameter{}\n\tmatched := false\n\t// BodyParameter body_parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewBodyParameter(m, compiler.NewContext(\"bodyParameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &Parameter_BodyParameter{BodyParameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// NonBodyParameter non_body_parameter = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewNonBodyParameter(m, compiler.NewContext(\"nonBodyParameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &Parameter_NonBodyParameter{NonBodyParameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid Parameter\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameterDefinitions creates an object of type ParameterDefinitions if possible, returning an error if not.\nfunc NewParameterDefinitions(in *yaml.Node, context *compiler.Context) (*ParameterDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &ParameterDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedParameter additional_properties = 1;\n\t\t// MAP: Parameter\n\t\tx.AdditionalProperties = make([]*NamedParameter, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedParameter{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewParameter(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParametersItem creates an object of type ParametersItem if possible, returning an error if not.\nfunc NewParametersItem(in *yaml.Node, context *compiler.Context) (*ParametersItem, error) {\n\terrors := make([]error, 0)\n\tx := &ParametersItem{}\n\tmatched := false\n\t// Parameter parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewParameter(m, compiler.NewContext(\"parameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParametersItem_Parameter{Parameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// JsonReference json_reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewJsonReference(m, compiler.NewContext(\"jsonReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParametersItem_JsonReference{JsonReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ParametersItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathItem creates an object of type PathItem if possible, returning an error if not.\nfunc NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {\n\terrors := make([]error, 0)\n\tx := &PathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"delete\", \"get\", \"head\", \"options\", \"parameters\", \"patch\", \"post\", \"put\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Operation get = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"get\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Get, err = NewOperation(v2, compiler.NewContext(\"get\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation put = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"put\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Put, err = NewOperation(v3, compiler.NewContext(\"put\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation post = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"post\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Post, err = NewOperation(v4, compiler.NewContext(\"post\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation delete = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"delete\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Delete, err = NewOperation(v5, compiler.NewContext(\"delete\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation options = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"options\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Options, err = NewOperation(v6, compiler.NewContext(\"options\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation head = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"head\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Head, err = NewOperation(v7, compiler.NewContext(\"head\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation patch = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"patch\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Patch, err = NewOperation(v8, compiler.NewContext(\"patch\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated ParametersItem parameters = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v9 != nil {\n\t\t\t// repeated ParametersItem\n\t\t\tx.Parameters = make([]*ParametersItem, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v9)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParametersItem(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathParameterSubSchema creates an object of type PathParameterSubSchema if possible, returning an error if not.\nfunc NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &PathParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"required\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [path]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"path\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"type\")\n\t\tif v5 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"format\")\n\t\tif v6 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"items\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v7, compiler.NewContext(\"items\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v8 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"default\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v9, compiler.NewContext(\"default\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v11 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v12 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v13 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v16 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v19 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v19)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v21 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 22;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPaths creates an object of type Paths if possible, returning an error if not.\nfunc NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {\n\terrors := make([]error, 0)\n\tx := &Paths{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 1;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedPathItem path = 2;\n\t\t// MAP: PathItem ^/\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPrimitivesItems creates an object of type PrimitivesItems if possible, returning an error if not.\nfunc NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesItems, error) {\n\terrors := make([]error, 0)\n\tx := &PrimitivesItems{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"pattern\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number integer boolean array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"integer\", \"boolean\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"items\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v3, compiler.NewContext(\"items\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v4 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v7 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v8 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v8)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v9 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v10 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v12 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v13 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v15 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v15)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v16 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v16)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v17 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 18;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewProperties creates an object of type Properties if possible, returning an error if not.\nfunc NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {\n\terrors := make([]error, 0)\n\tx := &Properties{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchema additional_properties = 1;\n\t\t// MAP: Schema\n\t\tx.AdditionalProperties = make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchema{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewQueryParameterSubSchema creates an object of type QueryParameterSubSchema if possible, returning an error if not.\nfunc NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*QueryParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &QueryParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [query]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"query\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v5 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"format\")\n\t\tif v7 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"items\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v8, compiler.NewContext(\"items\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v9 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes multi]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\", \"multi\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"default\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v10, compiler.NewContext(\"default\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v21 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v21)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v22 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 23;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponse creates an object of type Response if possible, returning an error if not.\nfunc NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {\n\terrors := make([]error, 0)\n\tx := &Response{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"description\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"examples\", \"headers\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaItem schema = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaItem(v2, compiler.NewContext(\"schema\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Headers headers = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeaders(v3, compiler.NewContext(\"headers\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Examples examples = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamples(v4, compiler.NewContext(\"examples\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseDefinitions creates an object of type ResponseDefinitions if possible, returning an error if not.\nfunc NewResponseDefinitions(in *yaml.Node, context *compiler.Context) (*ResponseDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedResponse additional_properties = 1;\n\t\t// MAP: Response\n\t\tx.AdditionalProperties = make([]*NamedResponse, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedResponse{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewResponse(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseValue creates an object of type ResponseValue if possible, returning an error if not.\nfunc NewResponseValue(in *yaml.Node, context *compiler.Context) (*ResponseValue, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseValue{}\n\tmatched := false\n\t// Response response = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewResponse(m, compiler.NewContext(\"response\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseValue_Response{Response: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// JsonReference json_reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewJsonReference(m, compiler.NewContext(\"jsonReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseValue_JsonReference{JsonReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ResponseValue\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponses creates an object of type Responses if possible, returning an error if not.\nfunc NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {\n\terrors := make([]error, 0)\n\tx := &Responses{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern2, pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedResponseValue response_code = 1;\n\t\t// MAP: ResponseValue ^([0-9]{3})$|^(default)$\n\t\tx.ResponseCode = make([]*NamedResponseValue, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif pattern2.MatchString(k) {\n\t\t\t\t\tpair := &NamedResponseValue{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewResponseValue(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.ResponseCode = append(x.ResponseCode, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchema creates an object of type Schema if possible, returning an error if not.\nfunc NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {\n\terrors := make([]error, 0)\n\tx := &Schema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"additionalProperties\", \"allOf\", \"default\", \"description\", \"discriminator\", \"enum\", \"example\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"externalDocs\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maxProperties\", \"maximum\", \"minItems\", \"minLength\", \"minProperties\", \"minimum\", \"multipleOf\", \"pattern\", \"properties\", \"readOnly\", \"required\", \"title\", \"type\", \"uniqueItems\", \"xml\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"title\")\n\t\tif v3 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"description\")\n\t\tif v4 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v8 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v9 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v9)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v10 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v10)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v12 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v13 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v16 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_properties = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxProperties\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxProperties: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_properties = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minProperties\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minProperties: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"required\")\n\t\tif v19 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// AdditionalPropertiesItem additional_properties = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"additionalProperties\")\n\t\tif v21 != nil {\n\t\t\tvar err error\n\t\t\tx.AdditionalProperties, err = NewAdditionalPropertiesItem(v21, compiler.NewContext(\"additionalProperties\", v21, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// TypeItem type = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"type\")\n\t\tif v22 != nil {\n\t\t\tvar err error\n\t\t\tx.Type, err = NewTypeItem(v22, compiler.NewContext(\"type\", v22, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ItemsItem items = 23;\n\t\tv23 := compiler.MapValueForKey(m, \"items\")\n\t\tif v23 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewItemsItem(v23, compiler.NewContext(\"items\", v23, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Schema all_of = 24;\n\t\tv24 := compiler.MapValueForKey(m, \"allOf\")\n\t\tif v24 != nil {\n\t\t\t// repeated Schema\n\t\t\tx.AllOf = make([]*Schema, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v24)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchema(item, compiler.NewContext(\"allOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AllOf = append(x.AllOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Properties properties = 25;\n\t\tv25 := compiler.MapValueForKey(m, \"properties\")\n\t\tif v25 != nil {\n\t\t\tvar err error\n\t\t\tx.Properties, err = NewProperties(v25, compiler.NewContext(\"properties\", v25, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string discriminator = 26;\n\t\tv26 := compiler.MapValueForKey(m, \"discriminator\")\n\t\tif v26 != nil {\n\t\t\tx.Discriminator, ok = compiler.StringForScalarNode(v26)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for discriminator: %s\", compiler.Display(v26))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 27;\n\t\tv27 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v27 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v27)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v27))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Xml xml = 28;\n\t\tv28 := compiler.MapValueForKey(m, \"xml\")\n\t\tif v28 != nil {\n\t\t\tvar err error\n\t\t\tx.Xml, err = NewXml(v28, compiler.NewContext(\"xml\", v28, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 29;\n\t\tv29 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v29 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v29, compiler.NewContext(\"externalDocs\", v29, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 30;\n\t\tv30 := compiler.MapValueForKey(m, \"example\")\n\t\tif v30 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v30, compiler.NewContext(\"example\", v30, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 31;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemaItem creates an object of type SchemaItem if possible, returning an error if not.\nfunc NewSchemaItem(in *yaml.Node, context *compiler.Context) (*SchemaItem, error) {\n\terrors := make([]error, 0)\n\tx := &SchemaItem{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaItem_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// FileSchema file_schema = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewFileSchema(m, compiler.NewContext(\"fileSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaItem_FileSchema{FileSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SchemaItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityDefinitions creates an object of type SecurityDefinitions if possible, returning an error if not.\nfunc NewSecurityDefinitions(in *yaml.Node, context *compiler.Context) (*SecurityDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSecurityDefinitionsItem additional_properties = 1;\n\t\t// MAP: SecurityDefinitionsItem\n\t\tx.AdditionalProperties = make([]*NamedSecurityDefinitionsItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSecurityDefinitionsItem{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSecurityDefinitionsItem(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityDefinitionsItem creates an object of type SecurityDefinitionsItem if possible, returning an error if not.\nfunc NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*SecurityDefinitionsItem, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityDefinitionsItem{}\n\tmatched := false\n\t// BasicAuthenticationSecurity basic_authentication_security = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewBasicAuthenticationSecurity(m, compiler.NewContext(\"basicAuthenticationSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_BasicAuthenticationSecurity{BasicAuthenticationSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// ApiKeySecurity api_key_security = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewApiKeySecurity(m, compiler.NewContext(\"apiKeySecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_ApiKeySecurity{ApiKeySecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2ImplicitSecurity oauth2_implicit_security = 3;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2ImplicitSecurity(m, compiler.NewContext(\"oauth2ImplicitSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2ImplicitSecurity{Oauth2ImplicitSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2PasswordSecurity oauth2_password_security = 4;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2PasswordSecurity(m, compiler.NewContext(\"oauth2PasswordSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2PasswordSecurity{Oauth2PasswordSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2ApplicationSecurity oauth2_application_security = 5;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2ApplicationSecurity(m, compiler.NewContext(\"oauth2ApplicationSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2ApplicationSecurity{Oauth2ApplicationSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2AccessCodeSecurity oauth2_access_code_security = 6;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2AccessCodeSecurity(m, compiler.NewContext(\"oauth2AccessCodeSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2AccessCodeSecurity{Oauth2AccessCodeSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SecurityDefinitionsItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.\nfunc NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityRequirement{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedStringArray additional_properties = 1;\n\t\t// MAP: StringArray\n\t\tx.AdditionalProperties = make([]*NamedStringArray, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedStringArray{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStringArray creates an object of type StringArray if possible, returning an error if not.\nfunc NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {\n\terrors := make([]error, 0)\n\tx := &StringArray{}\n\tx.Value = make([]string, 0)\n\tfor _, node := range in.Content {\n\t\ts, _ := compiler.StringForScalarNode(node)\n\t\tx.Value = append(x.Value, s)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTag creates an object of type Tag if possible, returning an error if not.\nfunc NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {\n\terrors := make([]error, 0)\n\tx := &Tag{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"externalDocs\", \"name\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext(\"externalDocs\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTypeItem creates an object of type TypeItem if possible, returning an error if not.\nfunc NewTypeItem(in *yaml.Node, context *compiler.Context) (*TypeItem, error) {\n\terrors := make([]error, 0)\n\tx := &TypeItem{}\n\tv1 := in\n\tswitch v1.Kind {\n\tcase yaml.ScalarNode:\n\t\tx.Value = make([]string, 0)\n\t\tx.Value = append(x.Value, v1.Value)\n\tcase yaml.SequenceNode:\n\t\tx.Value = make([]string, 0)\n\t\tfor _, v := range v1.Content {\n\t\t\tvalue := v.Value\n\t\t\tok := v.Kind == yaml.ScalarNode\n\t\t\tif ok {\n\t\t\t\tx.Value = append(x.Value, value)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for string array element: %+v (%T)\", value, value)\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tmessage := fmt.Sprintf(\"has unexpected value for string array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewVendorExtension creates an object of type VendorExtension if possible, returning an error if not.\nfunc NewVendorExtension(in *yaml.Node, context *compiler.Context) (*VendorExtension, error) {\n\terrors := make([]error, 0)\n\tx := &VendorExtension{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewXml creates an object of type Xml if possible, returning an error if not.\nfunc NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {\n\terrors := make([]error, 0)\n\tx := &Xml{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"attribute\", \"name\", \"namespace\", \"prefix\", \"wrapped\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string namespace = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"namespace\")\n\t\tif v2 != nil {\n\t\t\tx.Namespace, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for namespace: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string prefix = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"prefix\")\n\t\tif v3 != nil {\n\t\t\tx.Prefix, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for prefix: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool attribute = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"attribute\")\n\t\tif v4 != nil {\n\t\t\tx.Attribute, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for attribute: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool wrapped = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"wrapped\")\n\t\tif v5 != nil {\n\t\t\tx.Wrapped, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for wrapped: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AdditionalPropertiesItem objects.\nfunc (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AdditionalPropertiesItem_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Any objects.\nfunc (m *Any) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ApiKeySecurity objects.\nfunc (m *ApiKeySecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside BasicAuthenticationSecurity objects.\nfunc (m *BasicAuthenticationSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside BodyParameter objects.\nfunc (m *BodyParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Contact objects.\nfunc (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Default objects.\nfunc (m *Default) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Definitions objects.\nfunc (m *Definitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Document objects.\nfunc (m *Document) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Info != nil {\n\t\t_, err := m.Info.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Paths != nil {\n\t\t_, err := m.Paths.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Definitions != nil {\n\t\t_, err := m.Definitions.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.SecurityDefinitions != nil {\n\t\t_, err := m.SecurityDefinitions.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Tags {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Examples objects.\nfunc (m *Examples) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExternalDocs objects.\nfunc (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside FileSchema objects.\nfunc (m *FileSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside FormDataParameterSubSchema objects.\nfunc (m *FormDataParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Header objects.\nfunc (m *Header) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeaderParameterSubSchema objects.\nfunc (m *HeaderParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Headers objects.\nfunc (m *Headers) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Info objects.\nfunc (m *Info) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Contact != nil {\n\t\t_, err := m.Contact.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.License != nil {\n\t\t_, err := m.License.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ItemsItem objects.\nfunc (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Schema {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside JsonReference objects.\nfunc (m *JsonReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewJsonReference(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside License objects.\nfunc (m *License) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedAny objects.\nfunc (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedHeader objects.\nfunc (m *NamedHeader) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedParameter objects.\nfunc (m *NamedParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedPathItem objects.\nfunc (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponse objects.\nfunc (m *NamedResponse) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponseValue objects.\nfunc (m *NamedResponseValue) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSchema objects.\nfunc (m *NamedSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSecurityDefinitionsItem objects.\nfunc (m *NamedSecurityDefinitionsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedString objects.\nfunc (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedStringArray objects.\nfunc (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NonBodyParameter objects.\nfunc (m *NonBodyParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_HeaderParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.HeaderParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_FormDataParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.FormDataParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_QueryParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.QueryParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_PathParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.PathParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2AccessCodeSecurity objects.\nfunc (m *Oauth2AccessCodeSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2ApplicationSecurity objects.\nfunc (m *Oauth2ApplicationSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2ImplicitSecurity objects.\nfunc (m *Oauth2ImplicitSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2PasswordSecurity objects.\nfunc (m *Oauth2PasswordSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2Scopes objects.\nfunc (m *Oauth2Scopes) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Operation objects.\nfunc (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Parameter objects.\nfunc (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*Parameter_BodyParameter)\n\t\tif ok {\n\t\t\t_, err := p.BodyParameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*Parameter_NonBodyParameter)\n\t\tif ok {\n\t\t\t_, err := p.NonBodyParameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParameterDefinitions objects.\nfunc (m *ParameterDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParametersItem objects.\nfunc (m *ParametersItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ParametersItem_Parameter)\n\t\tif ok {\n\t\t\t_, err := p.Parameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ParametersItem_JsonReference)\n\t\tif ok {\n\t\t\tinfo, err := p.JsonReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t} else if info != nil {\n\t\t\t\tn, err := NewParametersItem(info, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t} else if n != nil {\n\t\t\t\t\t*m = *n\n\t\t\t\t\treturn nil, nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathItem objects.\nfunc (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewPathItem(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Get != nil {\n\t\t_, err := m.Get.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Put != nil {\n\t\t_, err := m.Put.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Post != nil {\n\t\t_, err := m.Post.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Delete != nil {\n\t\t_, err := m.Delete.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Options != nil {\n\t\t_, err := m.Options.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Head != nil {\n\t\t_, err := m.Head.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Patch != nil {\n\t\t_, err := m.Patch.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathParameterSubSchema objects.\nfunc (m *PathParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Paths objects.\nfunc (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PrimitivesItems objects.\nfunc (m *PrimitivesItems) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Properties objects.\nfunc (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside QueryParameterSubSchema objects.\nfunc (m *QueryParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Response objects.\nfunc (m *Response) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseDefinitions objects.\nfunc (m *ResponseDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseValue objects.\nfunc (m *ResponseValue) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ResponseValue_Response)\n\t\tif ok {\n\t\t\t_, err := p.Response.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ResponseValue_JsonReference)\n\t\tif ok {\n\t\t\tinfo, err := p.JsonReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t} else if info != nil {\n\t\t\t\tn, err := NewResponseValue(info, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t} else if n != nil {\n\t\t\t\t\t*m = *n\n\t\t\t\t\treturn nil, nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Responses objects.\nfunc (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.ResponseCode {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Schema objects.\nfunc (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewSchema(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.AdditionalProperties != nil {\n\t\t_, err := m.AdditionalProperties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Type != nil {\n\t\t_, err := m.Type.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.AllOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Properties != nil {\n\t\t_, err := m.Properties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Xml != nil {\n\t\t_, err := m.Xml.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemaItem objects.\nfunc (m *SchemaItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SchemaItem_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SchemaItem_FileSchema)\n\t\tif ok {\n\t\t\t_, err := p.FileSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityDefinitions objects.\nfunc (m *SecurityDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityDefinitionsItem objects.\nfunc (m *SecurityDefinitionsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_BasicAuthenticationSecurity)\n\t\tif ok {\n\t\t\t_, err := p.BasicAuthenticationSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_ApiKeySecurity)\n\t\tif ok {\n\t\t\t_, err := p.ApiKeySecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2ImplicitSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2ImplicitSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2PasswordSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2PasswordSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2ApplicationSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2ApplicationSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2AccessCodeSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityRequirement objects.\nfunc (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside StringArray objects.\nfunc (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Tag objects.\nfunc (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside TypeItem objects.\nfunc (m *TypeItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside VendorExtension objects.\nfunc (m *VendorExtension) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Xml objects.\nfunc (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.\nfunc (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AdditionalPropertiesItem\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Any suitable for JSON or YAML export.\nfunc (m *Any) ToRawInfo() *yaml.Node {\n\tvar err error\n\tvar node yaml.Node\n\terr = yaml.Unmarshal([]byte(m.Yaml), &node)\n\tif err == nil {\n\t\tif node.Kind == yaml.DocumentNode {\n\t\t\treturn node.Content[0]\n\t\t}\n\t\treturn &node\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ApiKeySecurity suitable for JSON or YAML export.\nfunc (m *ApiKeySecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of BasicAuthenticationSecurity suitable for JSON or YAML export.\nfunc (m *BasicAuthenticationSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of BodyParameter suitable for JSON or YAML export.\nfunc (m *BodyParameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Contact suitable for JSON or YAML export.\nfunc (m *Contact) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.Email != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"email\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Default suitable for JSON or YAML export.\nfunc (m *Default) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Definitions suitable for JSON or YAML export.\nfunc (m *Definitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Document suitable for JSON or YAML export.\nfunc (m *Document) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"swagger\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Swagger))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"info\"))\n\tinfo.Content = append(info.Content, m.Info.ToRawInfo())\n\tif m.Host != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"host\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Host))\n\t}\n\tif m.BasePath != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"basePath\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.BasePath))\n\t}\n\tif len(m.Schemes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Schemes))\n\t}\n\tif len(m.Consumes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"consumes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Consumes))\n\t}\n\tif len(m.Produces) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"produces\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Produces))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"paths\"))\n\tinfo.Content = append(info.Content, m.Paths.ToRawInfo())\n\tif m.Definitions != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"definitions\"))\n\t\tinfo.Content = append(info.Content, m.Definitions.ToRawInfo())\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.Responses != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\t\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SecurityDefinitions != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"securityDefinitions\"))\n\t\tinfo.Content = append(info.Content, m.SecurityDefinitions.ToRawInfo())\n\t}\n\tif len(m.Tags) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Tags {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Examples suitable for JSON or YAML export.\nfunc (m *Examples) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.\nfunc (m *ExternalDocs) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of FileSchema suitable for JSON or YAML export.\nfunc (m *FileSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of FormDataParameterSubSchema suitable for JSON or YAML export.\nfunc (m *FormDataParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Header suitable for JSON or YAML export.\nfunc (m *Header) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of HeaderParameterSubSchema suitable for JSON or YAML export.\nfunc (m *HeaderParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Headers suitable for JSON or YAML export.\nfunc (m *Headers) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Info suitable for JSON or YAML export.\nfunc (m *Info) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"version\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.TermsOfService != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"termsOfService\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))\n\t}\n\tif m.Contact != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contact\"))\n\t\tinfo.Content = append(info.Content, m.Contact.ToRawInfo())\n\t}\n\tif m.License != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"license\"))\n\t\tinfo.Content = append(info.Content, m.License.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.\nfunc (m *ItemsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Schema) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Schema {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of JsonReference suitable for JSON or YAML export.\nfunc (m *JsonReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of License suitable for JSON or YAML export.\nfunc (m *License) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.\nfunc (m *NamedAny) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedHeader suitable for JSON or YAML export.\nfunc (m *NamedHeader) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedParameter suitable for JSON or YAML export.\nfunc (m *NamedParameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.\nfunc (m *NamedPathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponse suitable for JSON or YAML export.\nfunc (m *NamedResponse) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponseValue suitable for JSON or YAML export.\nfunc (m *NamedResponseValue) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ResponseValue StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSchema suitable for JSON or YAML export.\nfunc (m *NamedSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSecurityDefinitionsItem suitable for JSON or YAML export.\nfunc (m *NamedSecurityDefinitionsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SecurityDefinitionsItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.\nfunc (m *NamedString) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.\nfunc (m *NamedStringArray) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NonBodyParameter suitable for JSON or YAML export.\nfunc (m *NonBodyParameter) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// NonBodyParameter\n\t// {Name:headerParameterSubSchema Type:HeaderParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetHeaderParameterSubSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:formDataParameterSubSchema Type:FormDataParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetFormDataParameterSubSchema()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\t// {Name:queryParameterSubSchema Type:QueryParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv2 := m.GetQueryParameterSubSchema()\n\tif v2 != nil {\n\t\treturn v2.ToRawInfo()\n\t}\n\t// {Name:pathParameterSubSchema Type:PathParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv3 := m.GetPathParameterSubSchema()\n\tif v3 != nil {\n\t\treturn v3.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Oauth2AccessCodeSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2AccessCodeSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2ApplicationSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2ApplicationSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2ImplicitSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2ImplicitSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2PasswordSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2PasswordSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2Scopes suitable for JSON or YAML export.\nfunc (m *Oauth2Scopes) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}\n\treturn info\n}\n\n// ToRawInfo returns a description of Operation suitable for JSON or YAML export.\nfunc (m *Operation) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Tags) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif len(m.Produces) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"produces\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Produces))\n\t}\n\tif len(m.Consumes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"consumes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Consumes))\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\tif len(m.Schemes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Schemes))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Parameter suitable for JSON or YAML export.\nfunc (m *Parameter) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// Parameter\n\t// {Name:bodyParameter Type:BodyParameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetBodyParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:nonBodyParameter Type:NonBodyParameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetNonBodyParameter()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ParameterDefinitions suitable for JSON or YAML export.\nfunc (m *ParameterDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ParametersItem suitable for JSON or YAML export.\nfunc (m *ParametersItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ParametersItem\n\t// {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:jsonReference Type:JsonReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetJsonReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.\nfunc (m *PathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Get != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"get\"))\n\t\tinfo.Content = append(info.Content, m.Get.ToRawInfo())\n\t}\n\tif m.Put != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"put\"))\n\t\tinfo.Content = append(info.Content, m.Put.ToRawInfo())\n\t}\n\tif m.Post != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"post\"))\n\t\tinfo.Content = append(info.Content, m.Post.ToRawInfo())\n\t}\n\tif m.Delete != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"delete\"))\n\t\tinfo.Content = append(info.Content, m.Delete.ToRawInfo())\n\t}\n\tif m.Options != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"options\"))\n\t\tinfo.Content = append(info.Content, m.Options.ToRawInfo())\n\t}\n\tif m.Head != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"head\"))\n\t\tinfo.Content = append(info.Content, m.Head.ToRawInfo())\n\t}\n\tif m.Patch != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"patch\"))\n\t\tinfo.Content = append(info.Content, m.Patch.ToRawInfo())\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PathParameterSubSchema suitable for JSON or YAML export.\nfunc (m *PathParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Paths suitable for JSON or YAML export.\nfunc (m *Paths) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PrimitivesItems suitable for JSON or YAML export.\nfunc (m *PrimitivesItems) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Properties suitable for JSON or YAML export.\nfunc (m *Properties) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of QueryParameterSubSchema suitable for JSON or YAML export.\nfunc (m *QueryParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Response suitable for JSON or YAML export.\nfunc (m *Response) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseDefinitions suitable for JSON or YAML export.\nfunc (m *ResponseDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseValue suitable for JSON or YAML export.\nfunc (m *ResponseValue) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ResponseValue\n\t// {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetResponse()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:jsonReference Type:JsonReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetJsonReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Responses suitable for JSON or YAML export.\nfunc (m *Responses) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.ResponseCode != nil {\n\t\tfor _, item := range m.ResponseCode {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Schema suitable for JSON or YAML export.\nfunc (m *Schema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif m.MaxProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))\n\t}\n\tif m.MinProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"additionalProperties\"))\n\t\tinfo.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())\n\t}\n\tif m.Type != nil {\n\t\tif len(m.Type.Value) == 1 {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type.Value[0]))\n\t\t} else {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Type.Value))\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Items.Schema {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tif len(items.Content) == 1 {\n\t\t\titems = items.Content[0]\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.AllOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AllOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Properties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"properties\"))\n\t\tinfo.Content = append(info.Content, m.Properties.ToRawInfo())\n\t}\n\tif m.Discriminator != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"discriminator\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Discriminator))\n\t}\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.Xml != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"xml\"))\n\t\tinfo.Content = append(info.Content, m.Xml.ToRawInfo())\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SchemaItem suitable for JSON or YAML export.\nfunc (m *SchemaItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SchemaItem\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:fileSchema Type:FileSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetFileSchema()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecurityDefinitions suitable for JSON or YAML export.\nfunc (m *SecurityDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityDefinitionsItem suitable for JSON or YAML export.\nfunc (m *SecurityDefinitionsItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SecurityDefinitionsItem\n\t// {Name:basicAuthenticationSecurity Type:BasicAuthenticationSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetBasicAuthenticationSecurity()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:apiKeySecurity Type:ApiKeySecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetApiKeySecurity()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\t// {Name:oauth2ImplicitSecurity Type:Oauth2ImplicitSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv2 := m.GetOauth2ImplicitSecurity()\n\tif v2 != nil {\n\t\treturn v2.ToRawInfo()\n\t}\n\t// {Name:oauth2PasswordSecurity Type:Oauth2PasswordSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv3 := m.GetOauth2PasswordSecurity()\n\tif v3 != nil {\n\t\treturn v3.ToRawInfo()\n\t}\n\t// {Name:oauth2ApplicationSecurity Type:Oauth2ApplicationSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv4 := m.GetOauth2ApplicationSecurity()\n\tif v4 != nil {\n\t\treturn v4.ToRawInfo()\n\t}\n\t// {Name:oauth2AccessCodeSecurity Type:Oauth2AccessCodeSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv5 := m.GetOauth2AccessCodeSecurity()\n\tif v5 != nil {\n\t\treturn v5.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.\nfunc (m *SecurityRequirement) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.\nfunc (m *StringArray) ToRawInfo() *yaml.Node {\n\treturn compiler.NewSequenceNodeForStringArray(m.Value)\n}\n\n// ToRawInfo returns a description of Tag suitable for JSON or YAML export.\nfunc (m *Tag) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of TypeItem suitable for JSON or YAML export.\nfunc (m *TypeItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Value) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of VendorExtension suitable for JSON or YAML export.\nfunc (m *VendorExtension) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Xml suitable for JSON or YAML export.\nfunc (m *Xml) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Namespace != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"namespace\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))\n\t}\n\tif m.Prefix != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"prefix\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))\n\t}\n\tif m.Attribute != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"attribute\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))\n\t}\n\tif m.Wrapped != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"wrapped\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\nvar (\n\tpattern0 = regexp.MustCompile(\"^x-\")\n\tpattern1 = regexp.MustCompile(\"^/\")\n\tpattern2 = regexp.MustCompile(\"^([0-9]{3})$|^(default)$\")\n)\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.pb.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.26.0\n// \tprotoc        v3.18.1\n// source: openapiv2/OpenAPIv2.proto\n\npackage openapi_v2\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype AdditionalPropertiesItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AdditionalPropertiesItem_Schema\n\t//\t*AdditionalPropertiesItem_Boolean\n\tOneof isAdditionalPropertiesItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AdditionalPropertiesItem) Reset() {\n\t*x = AdditionalPropertiesItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AdditionalPropertiesItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AdditionalPropertiesItem) ProtoMessage() {}\n\nfunc (x *AdditionalPropertiesItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AdditionalPropertiesItem.ProtoReflect.Descriptor instead.\nfunc (*AdditionalPropertiesItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (m *AdditionalPropertiesItem) GetOneof() isAdditionalPropertiesItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\ntype isAdditionalPropertiesItem_Oneof interface {\n\tisAdditionalPropertiesItem_Oneof()\n}\n\ntype AdditionalPropertiesItem_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype AdditionalPropertiesItem_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\nfunc (*AdditionalPropertiesItem_Schema) isAdditionalPropertiesItem_Oneof() {}\n\nfunc (*AdditionalPropertiesItem_Boolean) isAdditionalPropertiesItem_Oneof() {}\n\ntype Any struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *anypb.Any `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tYaml  string     `protobuf:\"bytes,2,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Any) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Any) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\ntype ApiKeySecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tName            string      `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn              string      `protobuf:\"bytes,3,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tDescription     string      `protobuf:\"bytes,4,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,5,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *ApiKeySecurity) Reset() {\n\t*x = ApiKeySecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ApiKeySecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ApiKeySecurity) ProtoMessage() {}\n\nfunc (x *ApiKeySecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ApiKeySecurity.ProtoReflect.Descriptor instead.\nfunc (*ApiKeySecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *ApiKeySecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype BasicAuthenticationSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tDescription     string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *BasicAuthenticationSecurity) Reset() {\n\t*x = BasicAuthenticationSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *BasicAuthenticationSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*BasicAuthenticationSecurity) ProtoMessage() {}\n\nfunc (x *BasicAuthenticationSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use BasicAuthenticationSecurity.ProtoReflect.Descriptor instead.\nfunc (*BasicAuthenticationSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *BasicAuthenticationSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *BasicAuthenticationSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *BasicAuthenticationSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype BodyParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,3,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// Determines whether or not this parameter is required or optional.\n\tRequired        bool        `protobuf:\"varint,4,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tSchema          *Schema     `protobuf:\"bytes,5,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *BodyParameter) Reset() {\n\t*x = BodyParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *BodyParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*BodyParameter) ProtoMessage() {}\n\nfunc (x *BodyParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use BodyParameter.ProtoReflect.Descriptor instead.\nfunc (*BodyParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *BodyParameter) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *BodyParameter) GetSchema() *Schema {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *BodyParameter) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Contact information for the owners of the API.\ntype Contact struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The identifying name of the contact person/organization.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// The URL pointing to the contact information.\n\tUrl string `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\t// The email address of the contact person/organization.\n\tEmail           string      `protobuf:\"bytes,3,opt,name=email,proto3\" json:\"email,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,4,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Contact) Reset() {\n\t*x = Contact{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Contact) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Contact) ProtoMessage() {}\n\nfunc (x *Contact) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Contact.ProtoReflect.Descriptor instead.\nfunc (*Contact) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *Contact) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetEmail() string {\n\tif x != nil {\n\t\treturn x.Email\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Default struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Default) Reset() {\n\t*x = Default{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Default) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Default) ProtoMessage() {}\n\nfunc (x *Default) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Default.ProtoReflect.Descriptor instead.\nfunc (*Default) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *Default) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// One or more JSON objects describing the schemas being consumed and produced by the API.\ntype Definitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchema `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Definitions) Reset() {\n\t*x = Definitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Definitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Definitions) ProtoMessage() {}\n\nfunc (x *Definitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Definitions.ProtoReflect.Descriptor instead.\nfunc (*Definitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Definitions) GetAdditionalProperties() []*NamedSchema {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Document struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The Swagger version of this document.\n\tSwagger string `protobuf:\"bytes,1,opt,name=swagger,proto3\" json:\"swagger,omitempty\"`\n\tInfo    *Info  `protobuf:\"bytes,2,opt,name=info,proto3\" json:\"info,omitempty\"`\n\t// The host (name or ip) of the API. Example: 'swagger.io'\n\tHost string `protobuf:\"bytes,3,opt,name=host,proto3\" json:\"host,omitempty\"`\n\t// The base path to the API. Example: '/api'.\n\tBasePath string `protobuf:\"bytes,4,opt,name=base_path,json=basePath,proto3\" json:\"base_path,omitempty\"`\n\t// The transfer protocol of the API.\n\tSchemes []string `protobuf:\"bytes,5,rep,name=schemes,proto3\" json:\"schemes,omitempty\"`\n\t// A list of MIME types accepted by the API.\n\tConsumes []string `protobuf:\"bytes,6,rep,name=consumes,proto3\" json:\"consumes,omitempty\"`\n\t// A list of MIME types the API can produce.\n\tProduces            []string               `protobuf:\"bytes,7,rep,name=produces,proto3\" json:\"produces,omitempty\"`\n\tPaths               *Paths                 `protobuf:\"bytes,8,opt,name=paths,proto3\" json:\"paths,omitempty\"`\n\tDefinitions         *Definitions           `protobuf:\"bytes,9,opt,name=definitions,proto3\" json:\"definitions,omitempty\"`\n\tParameters          *ParameterDefinitions  `protobuf:\"bytes,10,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tResponses           *ResponseDefinitions   `protobuf:\"bytes,11,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tSecurity            []*SecurityRequirement `protobuf:\"bytes,12,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tSecurityDefinitions *SecurityDefinitions   `protobuf:\"bytes,13,opt,name=security_definitions,json=securityDefinitions,proto3\" json:\"security_definitions,omitempty\"`\n\tTags                []*Tag                 `protobuf:\"bytes,14,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocs          `protobuf:\"bytes,15,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tVendorExtension     []*NamedAny            `protobuf:\"bytes,16,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Document) Reset() {\n\t*x = Document{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Document) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Document) ProtoMessage() {}\n\nfunc (x *Document) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Document.ProtoReflect.Descriptor instead.\nfunc (*Document) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *Document) GetSwagger() string {\n\tif x != nil {\n\t\treturn x.Swagger\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetInfo() *Info {\n\tif x != nil {\n\t\treturn x.Info\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetHost() string {\n\tif x != nil {\n\t\treturn x.Host\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetBasePath() string {\n\tif x != nil {\n\t\treturn x.BasePath\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetSchemes() []string {\n\tif x != nil {\n\t\treturn x.Schemes\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetConsumes() []string {\n\tif x != nil {\n\t\treturn x.Consumes\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetProduces() []string {\n\tif x != nil {\n\t\treturn x.Produces\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetPaths() *Paths {\n\tif x != nil {\n\t\treturn x.Paths\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetDefinitions() *Definitions {\n\tif x != nil {\n\t\treturn x.Definitions\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetParameters() *ParameterDefinitions {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetResponses() *ResponseDefinitions {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurityDefinitions() *SecurityDefinitions {\n\tif x != nil {\n\t\treturn x.SecurityDefinitions\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetTags() []*Tag {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Examples struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Examples) Reset() {\n\t*x = Examples{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Examples) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Examples) ProtoMessage() {}\n\nfunc (x *Examples) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Examples.ProtoReflect.Descriptor instead.\nfunc (*Examples) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *Examples) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// information about external documentation\ntype ExternalDocs struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription     string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tUrl             string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *ExternalDocs) Reset() {\n\t*x = ExternalDocs{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExternalDocs) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExternalDocs) ProtoMessage() {}\n\nfunc (x *ExternalDocs) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExternalDocs.ProtoReflect.Descriptor instead.\nfunc (*ExternalDocs) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *ExternalDocs) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// A deterministic version of a JSON Schema object.\ntype FileSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tFormat          string        `protobuf:\"bytes,1,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tTitle           string        `protobuf:\"bytes,2,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tDefault         *Any          `protobuf:\"bytes,4,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tRequired        []string      `protobuf:\"bytes,5,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tType            string        `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tReadOnly        bool          `protobuf:\"varint,7,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tExternalDocs    *ExternalDocs `protobuf:\"bytes,8,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample         *Any          `protobuf:\"bytes,9,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,10,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *FileSchema) Reset() {\n\t*x = FileSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *FileSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileSchema) ProtoMessage() {}\n\nfunc (x *FileSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileSchema.ProtoReflect.Descriptor instead.\nfunc (*FileSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *FileSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *FileSchema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype FormDataParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// allows sending a parameter by name only or with an empty value.\n\tAllowEmptyValue  bool             `protobuf:\"varint,5,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tType             string           `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,7,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,8,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,9,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,10,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,21,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,22,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,23,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *FormDataParameterSubSchema) Reset() {\n\t*x = FormDataParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *FormDataParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FormDataParameterSubSchema) ProtoMessage() {}\n\nfunc (x *FormDataParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FormDataParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*FormDataParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *FormDataParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Header struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string           `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,3,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,4,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,6,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,7,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,8,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,9,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,10,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,11,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,12,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,13,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,14,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,15,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,16,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,17,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tDescription      string           `protobuf:\"bytes,18,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,19,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Header) Reset() {\n\t*x = Header{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Header) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Header) ProtoMessage() {}\n\nfunc (x *Header) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Header.ProtoReflect.Descriptor instead.\nfunc (*Header) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *Header) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype HeaderParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName             string           `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tType             string           `protobuf:\"bytes,5,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,6,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,7,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,8,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,9,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,10,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,11,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,12,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,13,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,14,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,15,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,16,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,17,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,18,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,19,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,21,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,22,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *HeaderParameterSubSchema) Reset() {\n\t*x = HeaderParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeaderParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeaderParameterSubSchema) ProtoMessage() {}\n\nfunc (x *HeaderParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeaderParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*HeaderParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (x *HeaderParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Headers struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedHeader `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Headers) Reset() {\n\t*x = Headers{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Headers) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Headers) ProtoMessage() {}\n\nfunc (x *Headers) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Headers.ProtoReflect.Descriptor instead.\nfunc (*Headers) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *Headers) GetAdditionalProperties() []*NamedHeader {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// General information about the API.\ntype Info struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A unique and precise title of the API.\n\tTitle string `protobuf:\"bytes,1,opt,name=title,proto3\" json:\"title,omitempty\"`\n\t// A semantic version number of the API.\n\tVersion string `protobuf:\"bytes,2,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The terms of service for the API.\n\tTermsOfService  string      `protobuf:\"bytes,4,opt,name=terms_of_service,json=termsOfService,proto3\" json:\"terms_of_service,omitempty\"`\n\tContact         *Contact    `protobuf:\"bytes,5,opt,name=contact,proto3\" json:\"contact,omitempty\"`\n\tLicense         *License    `protobuf:\"bytes,6,opt,name=license,proto3\" json:\"license,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,7,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Info) Reset() {\n\t*x = Info{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Info) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Info) ProtoMessage() {}\n\nfunc (x *Info) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Info.ProtoReflect.Descriptor instead.\nfunc (*Info) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *Info) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetTermsOfService() string {\n\tif x != nil {\n\t\treturn x.TermsOfService\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetContact() *Contact {\n\tif x != nil {\n\t\treturn x.Contact\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetLicense() *License {\n\tif x != nil {\n\t\treturn x.License\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype ItemsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchema []*Schema `protobuf:\"bytes,1,rep,name=schema,proto3\" json:\"schema,omitempty\"`\n}\n\nfunc (x *ItemsItem) Reset() {\n\t*x = ItemsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ItemsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ItemsItem) ProtoMessage() {}\n\nfunc (x *ItemsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ItemsItem.ProtoReflect.Descriptor instead.\nfunc (*ItemsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *ItemsItem) GetSchema() []*Schema {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\ntype JsonReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef        string `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tDescription string `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n}\n\nfunc (x *JsonReference) Reset() {\n\t*x = JsonReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *JsonReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*JsonReference) ProtoMessage() {}\n\nfunc (x *JsonReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use JsonReference.ProtoReflect.Descriptor instead.\nfunc (*JsonReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *JsonReference) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *JsonReference) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\ntype License struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The name of the license type. It's encouraged to use an OSI compatible license.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// The URL pointing to the license.\n\tUrl             string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *License) Reset() {\n\t*x = License{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *License) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*License) ProtoMessage() {}\n\nfunc (x *License) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use License.ProtoReflect.Descriptor instead.\nfunc (*License) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (x *License) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\ntype NamedAny struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Any `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedAny) Reset() {\n\t*x = NamedAny{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[20]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedAny) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedAny) ProtoMessage() {}\n\nfunc (x *NamedAny) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[20]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedAny.ProtoReflect.Descriptor instead.\nfunc (*NamedAny) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *NamedAny) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedAny) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Header as ordered (name,value) pairs.\ntype NamedHeader struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Header `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedHeader) Reset() {\n\t*x = NamedHeader{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedHeader) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedHeader) ProtoMessage() {}\n\nfunc (x *NamedHeader) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedHeader.ProtoReflect.Descriptor instead.\nfunc (*NamedHeader) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *NamedHeader) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedHeader) GetValue() *Header {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs.\ntype NamedParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Parameter `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedParameter) Reset() {\n\t*x = NamedParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[22]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedParameter) ProtoMessage() {}\n\nfunc (x *NamedParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[22]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedParameter.ProtoReflect.Descriptor instead.\nfunc (*NamedParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *NamedParameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedParameter) GetValue() *Parameter {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\ntype NamedPathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *PathItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedPathItem) Reset() {\n\t*x = NamedPathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[23]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedPathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedPathItem) ProtoMessage() {}\n\nfunc (x *NamedPathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[23]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedPathItem.ProtoReflect.Descriptor instead.\nfunc (*NamedPathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{23}\n}\n\nfunc (x *NamedPathItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedPathItem) GetValue() *PathItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Response as ordered (name,value) pairs.\ntype NamedResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Response `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponse) Reset() {\n\t*x = NamedResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponse) ProtoMessage() {}\n\nfunc (x *NamedResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponse.ProtoReflect.Descriptor instead.\nfunc (*NamedResponse) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{24}\n}\n\nfunc (x *NamedResponse) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponse) GetValue() *Response {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ResponseValue as ordered (name,value) pairs.\ntype NamedResponseValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ResponseValue `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponseValue) Reset() {\n\t*x = NamedResponseValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponseValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponseValue) ProtoMessage() {}\n\nfunc (x *NamedResponseValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponseValue.ProtoReflect.Descriptor instead.\nfunc (*NamedResponseValue) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{25}\n}\n\nfunc (x *NamedResponseValue) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponseValue) GetValue() *ResponseValue {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs.\ntype NamedSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Schema `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSchema) Reset() {\n\t*x = NamedSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSchema) ProtoMessage() {}\n\nfunc (x *NamedSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSchema.ProtoReflect.Descriptor instead.\nfunc (*NamedSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{26}\n}\n\nfunc (x *NamedSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSchema) GetValue() *Schema {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SecurityDefinitionsItem as ordered (name,value) pairs.\ntype NamedSecurityDefinitionsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SecurityDefinitionsItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSecurityDefinitionsItem) Reset() {\n\t*x = NamedSecurityDefinitionsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSecurityDefinitionsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSecurityDefinitionsItem) ProtoMessage() {}\n\nfunc (x *NamedSecurityDefinitionsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSecurityDefinitionsItem.ProtoReflect.Descriptor instead.\nfunc (*NamedSecurityDefinitionsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{27}\n}\n\nfunc (x *NamedSecurityDefinitionsItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSecurityDefinitionsItem) GetValue() *SecurityDefinitionsItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\ntype NamedString struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedString) Reset() {\n\t*x = NamedString{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedString) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedString) ProtoMessage() {}\n\nfunc (x *NamedString) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedString.ProtoReflect.Descriptor instead.\nfunc (*NamedString) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{28}\n}\n\nfunc (x *NamedString) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedString) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\ntype NamedStringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *StringArray `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedStringArray) Reset() {\n\t*x = NamedStringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[29]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedStringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedStringArray) ProtoMessage() {}\n\nfunc (x *NamedStringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[29]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedStringArray.ProtoReflect.Descriptor instead.\nfunc (*NamedStringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{29}\n}\n\nfunc (x *NamedStringArray) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedStringArray) GetValue() *StringArray {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype NonBodyParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*NonBodyParameter_HeaderParameterSubSchema\n\t//\t*NonBodyParameter_FormDataParameterSubSchema\n\t//\t*NonBodyParameter_QueryParameterSubSchema\n\t//\t*NonBodyParameter_PathParameterSubSchema\n\tOneof isNonBodyParameter_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *NonBodyParameter) Reset() {\n\t*x = NonBodyParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[30]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NonBodyParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NonBodyParameter) ProtoMessage() {}\n\nfunc (x *NonBodyParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[30]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NonBodyParameter.ProtoReflect.Descriptor instead.\nfunc (*NonBodyParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{30}\n}\n\nfunc (m *NonBodyParameter) GetOneof() isNonBodyParameter_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetHeaderParameterSubSchema() *HeaderParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_HeaderParameterSubSchema); ok {\n\t\treturn x.HeaderParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetFormDataParameterSubSchema() *FormDataParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_FormDataParameterSubSchema); ok {\n\t\treturn x.FormDataParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetQueryParameterSubSchema() *QueryParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_QueryParameterSubSchema); ok {\n\t\treturn x.QueryParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetPathParameterSubSchema() *PathParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_PathParameterSubSchema); ok {\n\t\treturn x.PathParameterSubSchema\n\t}\n\treturn nil\n}\n\ntype isNonBodyParameter_Oneof interface {\n\tisNonBodyParameter_Oneof()\n}\n\ntype NonBodyParameter_HeaderParameterSubSchema struct {\n\tHeaderParameterSubSchema *HeaderParameterSubSchema `protobuf:\"bytes,1,opt,name=header_parameter_sub_schema,json=headerParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_FormDataParameterSubSchema struct {\n\tFormDataParameterSubSchema *FormDataParameterSubSchema `protobuf:\"bytes,2,opt,name=form_data_parameter_sub_schema,json=formDataParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_QueryParameterSubSchema struct {\n\tQueryParameterSubSchema *QueryParameterSubSchema `protobuf:\"bytes,3,opt,name=query_parameter_sub_schema,json=queryParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_PathParameterSubSchema struct {\n\tPathParameterSubSchema *PathParameterSubSchema `protobuf:\"bytes,4,opt,name=path_parameter_sub_schema,json=pathParameterSubSchema,proto3,oneof\"`\n}\n\nfunc (*NonBodyParameter_HeaderParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_FormDataParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_QueryParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_PathParameterSubSchema) isNonBodyParameter_Oneof() {}\n\ntype Oauth2AccessCodeSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow             string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes           *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tAuthorizationUrl string        `protobuf:\"bytes,4,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tTokenUrl         string        `protobuf:\"bytes,5,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription      string        `protobuf:\"bytes,6,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny   `protobuf:\"bytes,7,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2AccessCodeSecurity) Reset() {\n\t*x = Oauth2AccessCodeSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[31]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2AccessCodeSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2AccessCodeSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2AccessCodeSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[31]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2AccessCodeSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2AccessCodeSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{31}\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2ApplicationSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow            string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes          *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tTokenUrl        string        `protobuf:\"bytes,4,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2ApplicationSecurity) Reset() {\n\t*x = Oauth2ApplicationSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[32]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2ApplicationSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2ApplicationSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2ApplicationSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[32]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2ApplicationSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2ApplicationSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{32}\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2ImplicitSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow             string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes           *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tAuthorizationUrl string        `protobuf:\"bytes,4,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tDescription      string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2ImplicitSecurity) Reset() {\n\t*x = Oauth2ImplicitSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[33]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2ImplicitSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2ImplicitSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2ImplicitSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[33]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2ImplicitSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2ImplicitSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{33}\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2PasswordSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow            string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes          *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tTokenUrl        string        `protobuf:\"bytes,4,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2PasswordSecurity) Reset() {\n\t*x = Oauth2PasswordSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[34]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2PasswordSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2PasswordSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2PasswordSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[34]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2PasswordSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2PasswordSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{34}\n}\n\nfunc (x *Oauth2PasswordSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2PasswordSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2Scopes struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedString `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Oauth2Scopes) Reset() {\n\t*x = Oauth2Scopes{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[35]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2Scopes) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2Scopes) ProtoMessage() {}\n\nfunc (x *Oauth2Scopes) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[35]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2Scopes.ProtoReflect.Descriptor instead.\nfunc (*Oauth2Scopes) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{35}\n}\n\nfunc (x *Oauth2Scopes) GetAdditionalProperties() []*NamedString {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Operation struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTags []string `protobuf:\"bytes,1,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\t// A brief summary of the operation.\n\tSummary string `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\t// A longer description of the operation, GitHub Flavored Markdown is allowed.\n\tDescription  string        `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs *ExternalDocs `protobuf:\"bytes,4,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\t// A unique identifier of the operation.\n\tOperationId string `protobuf:\"bytes,5,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\t// A list of MIME types the API can produce.\n\tProduces []string `protobuf:\"bytes,6,rep,name=produces,proto3\" json:\"produces,omitempty\"`\n\t// A list of MIME types the API can consume.\n\tConsumes []string `protobuf:\"bytes,7,rep,name=consumes,proto3\" json:\"consumes,omitempty\"`\n\t// The parameters needed to send a valid API call.\n\tParameters []*ParametersItem `protobuf:\"bytes,8,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tResponses  *Responses        `protobuf:\"bytes,9,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\t// The transfer protocol of the API.\n\tSchemes         []string               `protobuf:\"bytes,10,rep,name=schemes,proto3\" json:\"schemes,omitempty\"`\n\tDeprecated      bool                   `protobuf:\"varint,11,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tSecurity        []*SecurityRequirement `protobuf:\"bytes,12,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tVendorExtension []*NamedAny            `protobuf:\"bytes,13,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Operation) Reset() {\n\t*x = Operation{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[36]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Operation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Operation) ProtoMessage() {}\n\nfunc (x *Operation) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[36]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Operation.ProtoReflect.Descriptor instead.\nfunc (*Operation) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{36}\n}\n\nfunc (x *Operation) GetTags() []string {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetProduces() []string {\n\tif x != nil {\n\t\treturn x.Produces\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetConsumes() []string {\n\tif x != nil {\n\t\treturn x.Consumes\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetParameters() []*ParametersItem {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetResponses() *Responses {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSchemes() []string {\n\tif x != nil {\n\t\treturn x.Schemes\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Operation) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Parameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*Parameter_BodyParameter\n\t//\t*Parameter_NonBodyParameter\n\tOneof isParameter_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *Parameter) Reset() {\n\t*x = Parameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[37]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Parameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Parameter) ProtoMessage() {}\n\nfunc (x *Parameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[37]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Parameter.ProtoReflect.Descriptor instead.\nfunc (*Parameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{37}\n}\n\nfunc (m *Parameter) GetOneof() isParameter_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetBodyParameter() *BodyParameter {\n\tif x, ok := x.GetOneof().(*Parameter_BodyParameter); ok {\n\t\treturn x.BodyParameter\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetNonBodyParameter() *NonBodyParameter {\n\tif x, ok := x.GetOneof().(*Parameter_NonBodyParameter); ok {\n\t\treturn x.NonBodyParameter\n\t}\n\treturn nil\n}\n\ntype isParameter_Oneof interface {\n\tisParameter_Oneof()\n}\n\ntype Parameter_BodyParameter struct {\n\tBodyParameter *BodyParameter `protobuf:\"bytes,1,opt,name=body_parameter,json=bodyParameter,proto3,oneof\"`\n}\n\ntype Parameter_NonBodyParameter struct {\n\tNonBodyParameter *NonBodyParameter `protobuf:\"bytes,2,opt,name=non_body_parameter,json=nonBodyParameter,proto3,oneof\"`\n}\n\nfunc (*Parameter_BodyParameter) isParameter_Oneof() {}\n\nfunc (*Parameter_NonBodyParameter) isParameter_Oneof() {}\n\n// One or more JSON representations for parameters\ntype ParameterDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedParameter `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ParameterDefinitions) Reset() {\n\t*x = ParameterDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[38]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParameterDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParameterDefinitions) ProtoMessage() {}\n\nfunc (x *ParameterDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[38]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParameterDefinitions.ProtoReflect.Descriptor instead.\nfunc (*ParameterDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{38}\n}\n\nfunc (x *ParameterDefinitions) GetAdditionalProperties() []*NamedParameter {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype ParametersItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ParametersItem_Parameter\n\t//\t*ParametersItem_JsonReference\n\tOneof isParametersItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ParametersItem) Reset() {\n\t*x = ParametersItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[39]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParametersItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParametersItem) ProtoMessage() {}\n\nfunc (x *ParametersItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[39]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParametersItem.ProtoReflect.Descriptor instead.\nfunc (*ParametersItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{39}\n}\n\nfunc (m *ParametersItem) GetOneof() isParametersItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ParametersItem) GetParameter() *Parameter {\n\tif x, ok := x.GetOneof().(*ParametersItem_Parameter); ok {\n\t\treturn x.Parameter\n\t}\n\treturn nil\n}\n\nfunc (x *ParametersItem) GetJsonReference() *JsonReference {\n\tif x, ok := x.GetOneof().(*ParametersItem_JsonReference); ok {\n\t\treturn x.JsonReference\n\t}\n\treturn nil\n}\n\ntype isParametersItem_Oneof interface {\n\tisParametersItem_Oneof()\n}\n\ntype ParametersItem_Parameter struct {\n\tParameter *Parameter `protobuf:\"bytes,1,opt,name=parameter,proto3,oneof\"`\n}\n\ntype ParametersItem_JsonReference struct {\n\tJsonReference *JsonReference `protobuf:\"bytes,2,opt,name=json_reference,json=jsonReference,proto3,oneof\"`\n}\n\nfunc (*ParametersItem_Parameter) isParametersItem_Oneof() {}\n\nfunc (*ParametersItem_JsonReference) isParametersItem_Oneof() {}\n\ntype PathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef    string     `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tGet     *Operation `protobuf:\"bytes,2,opt,name=get,proto3\" json:\"get,omitempty\"`\n\tPut     *Operation `protobuf:\"bytes,3,opt,name=put,proto3\" json:\"put,omitempty\"`\n\tPost    *Operation `protobuf:\"bytes,4,opt,name=post,proto3\" json:\"post,omitempty\"`\n\tDelete  *Operation `protobuf:\"bytes,5,opt,name=delete,proto3\" json:\"delete,omitempty\"`\n\tOptions *Operation `protobuf:\"bytes,6,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tHead    *Operation `protobuf:\"bytes,7,opt,name=head,proto3\" json:\"head,omitempty\"`\n\tPatch   *Operation `protobuf:\"bytes,8,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\t// The parameters needed to send a valid API call.\n\tParameters      []*ParametersItem `protobuf:\"bytes,9,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tVendorExtension []*NamedAny       `protobuf:\"bytes,10,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PathItem) Reset() {\n\t*x = PathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[40]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathItem) ProtoMessage() {}\n\nfunc (x *PathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[40]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathItem.ProtoReflect.Descriptor instead.\nfunc (*PathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{40}\n}\n\nfunc (x *PathItem) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetGet() *Operation {\n\tif x != nil {\n\t\treturn x.Get\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPut() *Operation {\n\tif x != nil {\n\t\treturn x.Put\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPost() *Operation {\n\tif x != nil {\n\t\treturn x.Post\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetDelete() *Operation {\n\tif x != nil {\n\t\treturn x.Delete\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetOptions() *Operation {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetHead() *Operation {\n\tif x != nil {\n\t\treturn x.Head\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPatch() *Operation {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetParameters() []*ParametersItem {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype PathParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName             string           `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tType             string           `protobuf:\"bytes,5,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,6,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,7,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,8,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,9,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,10,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,11,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,12,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,13,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,14,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,15,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,16,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,17,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,18,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,19,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,21,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,22,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PathParameterSubSchema) Reset() {\n\t*x = PathParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[41]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathParameterSubSchema) ProtoMessage() {}\n\nfunc (x *PathParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[41]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*PathParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{41}\n}\n\nfunc (x *PathParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Relative paths to the individual endpoints. They must be relative to the 'basePath'.\ntype Paths struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tVendorExtension []*NamedAny      `protobuf:\"bytes,1,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n\tPath            []*NamedPathItem `protobuf:\"bytes,2,rep,name=path,proto3\" json:\"path,omitempty\"`\n}\n\nfunc (x *Paths) Reset() {\n\t*x = Paths{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[42]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Paths) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Paths) ProtoMessage() {}\n\nfunc (x *Paths) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[42]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Paths.ProtoReflect.Descriptor instead.\nfunc (*Paths) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{42}\n}\n\nfunc (x *Paths) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\nfunc (x *Paths) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\ntype PrimitivesItems struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string           `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,3,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,4,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,6,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,7,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,8,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,9,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,10,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,11,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,12,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,13,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,14,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,15,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,16,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,17,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,18,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PrimitivesItems) Reset() {\n\t*x = PrimitivesItems{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[43]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PrimitivesItems) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PrimitivesItems) ProtoMessage() {}\n\nfunc (x *PrimitivesItems) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[43]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PrimitivesItems.ProtoReflect.Descriptor instead.\nfunc (*PrimitivesItems) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{43}\n}\n\nfunc (x *PrimitivesItems) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Properties struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchema `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Properties) Reset() {\n\t*x = Properties{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[44]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Properties) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Properties) ProtoMessage() {}\n\nfunc (x *Properties) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[44]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Properties.ProtoReflect.Descriptor instead.\nfunc (*Properties) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{44}\n}\n\nfunc (x *Properties) GetAdditionalProperties() []*NamedSchema {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype QueryParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// allows sending a parameter by name only or with an empty value.\n\tAllowEmptyValue  bool             `protobuf:\"varint,5,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tType             string           `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,7,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,8,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,9,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,10,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,21,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,22,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,23,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *QueryParameterSubSchema) Reset() {\n\t*x = QueryParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[45]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *QueryParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*QueryParameterSubSchema) ProtoMessage() {}\n\nfunc (x *QueryParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[45]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use QueryParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*QueryParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{45}\n}\n\nfunc (x *QueryParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Response struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription     string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tSchema          *SchemaItem `protobuf:\"bytes,2,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tHeaders         *Headers    `protobuf:\"bytes,3,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tExamples        *Examples   `protobuf:\"bytes,4,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,5,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Response) Reset() {\n\t*x = Response{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[46]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Response) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Response) ProtoMessage() {}\n\nfunc (x *Response) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[46]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Response.ProtoReflect.Descriptor instead.\nfunc (*Response) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{46}\n}\n\nfunc (x *Response) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Response) GetSchema() *SchemaItem {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetHeaders() *Headers {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetExamples() *Examples {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// One or more JSON representations for responses\ntype ResponseDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedResponse `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ResponseDefinitions) Reset() {\n\t*x = ResponseDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[47]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseDefinitions) ProtoMessage() {}\n\nfunc (x *ResponseDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[47]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseDefinitions.ProtoReflect.Descriptor instead.\nfunc (*ResponseDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{47}\n}\n\nfunc (x *ResponseDefinitions) GetAdditionalProperties() []*NamedResponse {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype ResponseValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ResponseValue_Response\n\t//\t*ResponseValue_JsonReference\n\tOneof isResponseValue_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ResponseValue) Reset() {\n\t*x = ResponseValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[48]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseValue) ProtoMessage() {}\n\nfunc (x *ResponseValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[48]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseValue.ProtoReflect.Descriptor instead.\nfunc (*ResponseValue) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{48}\n}\n\nfunc (m *ResponseValue) GetOneof() isResponseValue_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseValue) GetResponse() *Response {\n\tif x, ok := x.GetOneof().(*ResponseValue_Response); ok {\n\t\treturn x.Response\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseValue) GetJsonReference() *JsonReference {\n\tif x, ok := x.GetOneof().(*ResponseValue_JsonReference); ok {\n\t\treturn x.JsonReference\n\t}\n\treturn nil\n}\n\ntype isResponseValue_Oneof interface {\n\tisResponseValue_Oneof()\n}\n\ntype ResponseValue_Response struct {\n\tResponse *Response `protobuf:\"bytes,1,opt,name=response,proto3,oneof\"`\n}\n\ntype ResponseValue_JsonReference struct {\n\tJsonReference *JsonReference `protobuf:\"bytes,2,opt,name=json_reference,json=jsonReference,proto3,oneof\"`\n}\n\nfunc (*ResponseValue_Response) isResponseValue_Oneof() {}\n\nfunc (*ResponseValue_JsonReference) isResponseValue_Oneof() {}\n\n// Response objects names can either be any valid HTTP status code or 'default'.\ntype Responses struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tResponseCode    []*NamedResponseValue `protobuf:\"bytes,1,rep,name=response_code,json=responseCode,proto3\" json:\"response_code,omitempty\"`\n\tVendorExtension []*NamedAny           `protobuf:\"bytes,2,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Responses) Reset() {\n\t*x = Responses{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[49]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Responses) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Responses) ProtoMessage() {}\n\nfunc (x *Responses) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[49]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Responses.ProtoReflect.Descriptor instead.\nfunc (*Responses) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{49}\n}\n\nfunc (x *Responses) GetResponseCode() []*NamedResponseValue {\n\tif x != nil {\n\t\treturn x.ResponseCode\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// A deterministic version of a JSON Schema object.\ntype Schema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef                 string                    `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tFormat               string                    `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tTitle                string                    `protobuf:\"bytes,3,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription          string                    `protobuf:\"bytes,4,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tDefault              *Any                      `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMultipleOf           float64                   `protobuf:\"fixed64,6,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tMaximum              float64                   `protobuf:\"fixed64,7,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool                      `protobuf:\"varint,8,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum              float64                   `protobuf:\"fixed64,9,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool                      `protobuf:\"varint,10,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength            int64                     `protobuf:\"varint,11,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength            int64                     `protobuf:\"varint,12,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern              string                    `protobuf:\"bytes,13,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems             int64                     `protobuf:\"varint,14,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems             int64                     `protobuf:\"varint,15,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems          bool                      `protobuf:\"varint,16,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tMaxProperties        int64                     `protobuf:\"varint,17,opt,name=max_properties,json=maxProperties,proto3\" json:\"max_properties,omitempty\"`\n\tMinProperties        int64                     `protobuf:\"varint,18,opt,name=min_properties,json=minProperties,proto3\" json:\"min_properties,omitempty\"`\n\tRequired             []string                  `protobuf:\"bytes,19,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tEnum                 []*Any                    `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tAdditionalProperties *AdditionalPropertiesItem `protobuf:\"bytes,21,opt,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n\tType                 *TypeItem                 `protobuf:\"bytes,22,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tItems                *ItemsItem                `protobuf:\"bytes,23,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tAllOf                []*Schema                 `protobuf:\"bytes,24,rep,name=all_of,json=allOf,proto3\" json:\"all_of,omitempty\"`\n\tProperties           *Properties               `protobuf:\"bytes,25,opt,name=properties,proto3\" json:\"properties,omitempty\"`\n\tDiscriminator        string                    `protobuf:\"bytes,26,opt,name=discriminator,proto3\" json:\"discriminator,omitempty\"`\n\tReadOnly             bool                      `protobuf:\"varint,27,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tXml                  *Xml                      `protobuf:\"bytes,28,opt,name=xml,proto3\" json:\"xml,omitempty\"`\n\tExternalDocs         *ExternalDocs             `protobuf:\"bytes,29,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample              *Any                      `protobuf:\"bytes,30,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tVendorExtension      []*NamedAny               `protobuf:\"bytes,31,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Schema) Reset() {\n\t*x = Schema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[50]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Schema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Schema) ProtoMessage() {}\n\nfunc (x *Schema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[50]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Schema.ProtoReflect.Descriptor instead.\nfunc (*Schema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{50}\n}\n\nfunc (x *Schema) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxProperties() int64 {\n\tif x != nil {\n\t\treturn x.MaxProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinProperties() int64 {\n\tif x != nil {\n\t\treturn x.MinProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAdditionalProperties() *AdditionalPropertiesItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetType() *TypeItem {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetItems() *ItemsItem {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAllOf() []*Schema {\n\tif x != nil {\n\t\treturn x.AllOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetProperties() *Properties {\n\tif x != nil {\n\t\treturn x.Properties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDiscriminator() string {\n\tif x != nil {\n\t\treturn x.Discriminator\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetXml() *Xml {\n\tif x != nil {\n\t\treturn x.Xml\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype SchemaItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SchemaItem_Schema\n\t//\t*SchemaItem_FileSchema\n\tOneof isSchemaItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SchemaItem) Reset() {\n\t*x = SchemaItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[51]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemaItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemaItem) ProtoMessage() {}\n\nfunc (x *SchemaItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[51]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemaItem.ProtoReflect.Descriptor instead.\nfunc (*SchemaItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{51}\n}\n\nfunc (m *SchemaItem) GetOneof() isSchemaItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaItem) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*SchemaItem_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaItem) GetFileSchema() *FileSchema {\n\tif x, ok := x.GetOneof().(*SchemaItem_FileSchema); ok {\n\t\treturn x.FileSchema\n\t}\n\treturn nil\n}\n\ntype isSchemaItem_Oneof interface {\n\tisSchemaItem_Oneof()\n}\n\ntype SchemaItem_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype SchemaItem_FileSchema struct {\n\tFileSchema *FileSchema `protobuf:\"bytes,2,opt,name=file_schema,json=fileSchema,proto3,oneof\"`\n}\n\nfunc (*SchemaItem_Schema) isSchemaItem_Oneof() {}\n\nfunc (*SchemaItem_FileSchema) isSchemaItem_Oneof() {}\n\ntype SecurityDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSecurityDefinitionsItem `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityDefinitions) Reset() {\n\t*x = SecurityDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[52]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityDefinitions) ProtoMessage() {}\n\nfunc (x *SecurityDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[52]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityDefinitions.ProtoReflect.Descriptor instead.\nfunc (*SecurityDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{52}\n}\n\nfunc (x *SecurityDefinitions) GetAdditionalProperties() []*NamedSecurityDefinitionsItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype SecurityDefinitionsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SecurityDefinitionsItem_BasicAuthenticationSecurity\n\t//\t*SecurityDefinitionsItem_ApiKeySecurity\n\t//\t*SecurityDefinitionsItem_Oauth2ImplicitSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2PasswordSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2ApplicationSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2AccessCodeSecurity\n\tOneof isSecurityDefinitionsItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SecurityDefinitionsItem) Reset() {\n\t*x = SecurityDefinitionsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[53]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityDefinitionsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityDefinitionsItem) ProtoMessage() {}\n\nfunc (x *SecurityDefinitionsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[53]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityDefinitionsItem.ProtoReflect.Descriptor instead.\nfunc (*SecurityDefinitionsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{53}\n}\n\nfunc (m *SecurityDefinitionsItem) GetOneof() isSecurityDefinitionsItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetBasicAuthenticationSecurity() *BasicAuthenticationSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_BasicAuthenticationSecurity); ok {\n\t\treturn x.BasicAuthenticationSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetApiKeySecurity() *ApiKeySecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_ApiKeySecurity); ok {\n\t\treturn x.ApiKeySecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2ImplicitSecurity() *Oauth2ImplicitSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2ImplicitSecurity); ok {\n\t\treturn x.Oauth2ImplicitSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2PasswordSecurity() *Oauth2PasswordSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2PasswordSecurity); ok {\n\t\treturn x.Oauth2PasswordSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2ApplicationSecurity() *Oauth2ApplicationSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2ApplicationSecurity); ok {\n\t\treturn x.Oauth2ApplicationSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2AccessCodeSecurity() *Oauth2AccessCodeSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity); ok {\n\t\treturn x.Oauth2AccessCodeSecurity\n\t}\n\treturn nil\n}\n\ntype isSecurityDefinitionsItem_Oneof interface {\n\tisSecurityDefinitionsItem_Oneof()\n}\n\ntype SecurityDefinitionsItem_BasicAuthenticationSecurity struct {\n\tBasicAuthenticationSecurity *BasicAuthenticationSecurity `protobuf:\"bytes,1,opt,name=basic_authentication_security,json=basicAuthenticationSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_ApiKeySecurity struct {\n\tApiKeySecurity *ApiKeySecurity `protobuf:\"bytes,2,opt,name=api_key_security,json=apiKeySecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2ImplicitSecurity struct {\n\tOauth2ImplicitSecurity *Oauth2ImplicitSecurity `protobuf:\"bytes,3,opt,name=oauth2_implicit_security,json=oauth2ImplicitSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2PasswordSecurity struct {\n\tOauth2PasswordSecurity *Oauth2PasswordSecurity `protobuf:\"bytes,4,opt,name=oauth2_password_security,json=oauth2PasswordSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2ApplicationSecurity struct {\n\tOauth2ApplicationSecurity *Oauth2ApplicationSecurity `protobuf:\"bytes,5,opt,name=oauth2_application_security,json=oauth2ApplicationSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2AccessCodeSecurity struct {\n\tOauth2AccessCodeSecurity *Oauth2AccessCodeSecurity `protobuf:\"bytes,6,opt,name=oauth2_access_code_security,json=oauth2AccessCodeSecurity,proto3,oneof\"`\n}\n\nfunc (*SecurityDefinitionsItem_BasicAuthenticationSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_ApiKeySecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2ImplicitSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2PasswordSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2ApplicationSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2AccessCodeSecurity) isSecurityDefinitionsItem_Oneof() {}\n\ntype SecurityRequirement struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedStringArray `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityRequirement) Reset() {\n\t*x = SecurityRequirement{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[54]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityRequirement) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityRequirement) ProtoMessage() {}\n\nfunc (x *SecurityRequirement) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[54]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityRequirement.ProtoReflect.Descriptor instead.\nfunc (*SecurityRequirement) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{54}\n}\n\nfunc (x *SecurityRequirement) GetAdditionalProperties() []*NamedStringArray {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype StringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *StringArray) Reset() {\n\t*x = StringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[55]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StringArray) ProtoMessage() {}\n\nfunc (x *StringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[55]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StringArray.ProtoReflect.Descriptor instead.\nfunc (*StringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{55}\n}\n\nfunc (x *StringArray) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Tag struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName            string        `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs    *ExternalDocs `protobuf:\"bytes,3,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,4,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Tag) Reset() {\n\t*x = Tag{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[56]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Tag) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Tag) ProtoMessage() {}\n\nfunc (x *Tag) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[56]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Tag.ProtoReflect.Descriptor instead.\nfunc (*Tag) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{56}\n}\n\nfunc (x *Tag) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Tag) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype TypeItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *TypeItem) Reset() {\n\t*x = TypeItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[57]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *TypeItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*TypeItem) ProtoMessage() {}\n\nfunc (x *TypeItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[57]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use TypeItem.ProtoReflect.Descriptor instead.\nfunc (*TypeItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{57}\n}\n\nfunc (x *TypeItem) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Any property starting with x- is valid.\ntype VendorExtension struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *VendorExtension) Reset() {\n\t*x = VendorExtension{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[58]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *VendorExtension) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*VendorExtension) ProtoMessage() {}\n\nfunc (x *VendorExtension) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[58]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use VendorExtension.ProtoReflect.Descriptor instead.\nfunc (*VendorExtension) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{58}\n}\n\nfunc (x *VendorExtension) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Xml struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName            string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tNamespace       string      `protobuf:\"bytes,2,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tPrefix          string      `protobuf:\"bytes,3,opt,name=prefix,proto3\" json:\"prefix,omitempty\"`\n\tAttribute       bool        `protobuf:\"varint,4,opt,name=attribute,proto3\" json:\"attribute,omitempty\"`\n\tWrapped         bool        `protobuf:\"varint,5,opt,name=wrapped,proto3\" json:\"wrapped,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Xml) Reset() {\n\t*x = Xml{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[59]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Xml) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Xml) ProtoMessage() {}\n\nfunc (x *Xml) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[59]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Xml.ProtoReflect.Descriptor instead.\nfunc (*Xml) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{59}\n}\n\nfunc (x *Xml) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetNamespace() string {\n\tif x != nil {\n\t\treturn x.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetPrefix() string {\n\tif x != nil {\n\t\treturn x.Prefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetAttribute() bool {\n\tif x != nil {\n\t\treturn x.Attribute\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetWrapped() bool {\n\tif x != nil {\n\t\treturn x.Wrapped\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\nvar File_openapiv2_OpenAPIv2_proto protoreflect.FileDescriptor\n\nvar file_openapiv2_OpenAPIv2_proto_rawDesc = []byte{\n\t0x0a, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x4f, 0x70, 0x65, 0x6e,\n\t0x41, 0x50, 0x49, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2c,\n\t0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x07,\n\t0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,\n\t0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f,\n\t0x66, 0x22, 0x45, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0xab, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x69,\n\t0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x1b, 0x42, 0x61, 0x73, 0x69, 0x63,\n\t0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10,\n\t0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x01,\n\t0x0a, 0x0d, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x86,\n\t0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10,\n\t0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,\n\t0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75,\n\t0x6c, 0x74, 0x12, 0x49, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5b, 0x0a,\n\t0x0b, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xe8, 0x05, 0x0a, 0x08, 0x44,\n\t0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67,\n\t0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65,\n\t0x72, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x10, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66,\n\t0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62,\n\t0x61, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,\n\t0x62, 0x61, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d,\n\t0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x06,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x1a,\n\t0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,\n\t0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x61,\n\t0x74, 0x68, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x05, 0x70, 0x61,\n\t0x74, 0x68, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40,\n\t0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,\n\t0x12, 0x3d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12,\n\t0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53,\n\t0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,\n\t0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x14,\n\t0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x13, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,\n\t0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x52,\n\t0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x44, 0x6f, 0x63, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x08, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x73, 0x12, 0x49, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x83, 0x01, 0x0a,\n\t0x0c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,\n\t0x6c, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xff, 0x02, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,\n\t0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08,\n\t0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,\n\t0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09,\n\t0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,\n\t0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x06, 0x0a, 0x1a, 0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74,\n\t0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65,\n\t0x6d, 0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74,\n\t0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,\n\t0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,\n\t0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c,\n\t0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18,\n\t0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b,\n\t0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,\n\t0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,\n\t0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xab, 0x05, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,\n\t0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11,\n\t0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61,\n\t0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,\n\t0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66,\n\t0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66,\n\t0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18,\n\t0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b,\n\t0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75,\n\t0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69,\n\t0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69,\n\t0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,\n\t0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74,\n\t0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,\n\t0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,\n\t0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,\n\t0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d,\n\t0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18,\n\t0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b,\n\t0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x11, 0x20, 0x01, 0x28,\n\t0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x22, 0xfd, 0x05, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a,\n\t0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,\n\t0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76,\n\t0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b,\n\t0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72,\n\t0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65,\n\t0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64,\n\t0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64,\n\t0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61,\n\t0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a,\n\t0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07,\n\t0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75,\n\t0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e,\n\t0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67,\n\t0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,\n\t0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67,\n\t0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x10, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09,\n\t0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52,\n\t0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e,\n\t0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69,\n\t0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65,\n\t0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e,\n\t0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75,\n\t0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f,\n\t0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x15, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12,\n\t0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x22, 0x57, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x61,\n\t0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65, 0x61,\n\t0x64, 0x65, 0x72, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x04, 0x49, 0x6e,\n\t0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,\n\t0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x6f, 0x66,\n\t0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,\n\t0x74, 0x65, 0x72, 0x6d, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d,\n\t0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x2d, 0x0a,\n\t0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x63, 0x65,\n\t0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10,\n\t0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a,\n\t0x09, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x44, 0x0a, 0x0d, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x07,\n\t0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75,\n\t0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x45,\n\t0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25,\n\t0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65,\n\t0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x51, 0x0a, 0x0e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61,\n\t0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x12, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x6d, 0x0a, 0x1c, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37,\n\t0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5,\n\t0x03, 0x0a, 0x10, 0x4e, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00,\n\t0x52, 0x18, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x6c, 0x0a, 0x1e, 0x66, 0x6f,\n\t0x72, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x6f,\n\t0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,\n\t0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x75, 0x65, 0x72,\n\t0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x48, 0x00, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x5f, 0x0a, 0x19,\n\t0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73,\n\t0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74,\n\t0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x16, 0x70, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x07, 0x0a,\n\t0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xa1, 0x02, 0x0a, 0x18, 0x4f, 0x61, 0x75, 0x74, 0x68,\n\t0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x0a,\n\t0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75,\n\t0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,\n\t0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f,\n\t0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,\n\t0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x19, 0x4f,\n\t0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,\n\t0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77,\n\t0x12, 0x30, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61,\n\t0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70,\n\t0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x82, 0x02, 0x0a, 0x16, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x49, 0x6d, 0x70,\n\t0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52,\n\t0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f,\n\t0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x01, 0x0a, 0x16, 0x4f, 0x61, 0x75, 0x74,\n\t0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,\n\t0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x63,\n\t0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63,\n\t0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09,\n\t0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,\n\t0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18,\n\t0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0c,\n\t0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74,\n\t0x72, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x9e, 0x04, 0x0a, 0x09, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,\n\t0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07,\n\t0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,\n\t0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72,\n\t0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,\n\t0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,\n\t0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,\n\t0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74,\n\t0x65, 0x6d, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33,\n\t0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,\n\t0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x0a,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a,\n\t0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28,\n\t0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a,\n\t0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,\n\t0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x09,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x62, 0x6f, 0x64,\n\t0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x42,\n\t0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d,\n\t0x62, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x4c, 0x0a,\n\t0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x42, 0x6f,\n\t0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x67, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x94, 0x01,\n\t0x0a, 0x0e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74, 0x65, 0x6d,\n\t0x12, 0x35, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x6a, 0x73, 0x6f, 0x6e, 0x5f,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x73, 0x6f,\n\t0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0xcf, 0x03, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65,\n\t0x6d, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x03, 0x52, 0x65, 0x66, 0x12, 0x27, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a,\n\t0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x6f, 0x73,\n\t0x74, 0x12, 0x2d, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,\n\t0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x29, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65,\n\t0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x05,\n\t0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfb, 0x05, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x68, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a,\n\t0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61,\n\t0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,\n\t0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d,\n\t0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63,\n\t0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,\n\t0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61,\n\t0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78,\n\t0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01,\n\t0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f,\n\t0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61,\n\t0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e,\n\t0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,\n\t0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,\n\t0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a,\n\t0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03,\n\t0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e,\n\t0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a,\n\t0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e,\n\t0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f,\n\t0x66, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,\n\t0x65, 0x4f, 0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d,\n\t0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50,\n\t0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x92, 0x05,\n\t0x0a, 0x0f, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74,\n\t0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,\n\t0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,\n\t0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c,\n\t0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18,\n\t0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b,\n\t0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,\n\t0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,\n\t0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x12, 0x4c, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa8,\n\t0x06, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,\n\t0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65,\n\t0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11,\n\t0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d,\n\t0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,\n\t0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f,\n\t0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73,\n\t0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65,\n\t0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f,\n\t0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69,\n\t0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a,\n\t0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a,\n\t0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03,\n\t0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70,\n\t0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61,\n\t0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,\n\t0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,\n\t0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,\n\t0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69,\n\t0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75,\n\t0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x74, 0x65, 0x6d,\n\t0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2d, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07,\n\t0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x52,\n\t0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x13, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x4e, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,\n\t0x73, 0x22, 0x90, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61,\n\t0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x6a, 0x73, 0x6f, 0x6e, 0x5f,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x73, 0x6f,\n\t0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,\n\t0x65, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63,\n\t0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,\n\t0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x09, 0x0a, 0x06, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14,\n\t0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,\n\t0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,\n\t0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,\n\t0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65,\n\t0x4f, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11,\n\t0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69,\n\t0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e,\n\t0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69,\n\t0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65,\n\t0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,\n\t0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0b,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12,\n\t0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18,\n\t0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f,\n\t0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d,\n\t0x61, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e,\n\t0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x12,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,\n\t0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04,\n\t0x65, 0x6e, 0x75, 0x6d, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x49,\n\t0x74, 0x65, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x66,\n\t0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x61, 0x6c, 0x6c, 0x4f,\n\t0x66, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73,\n\t0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12,\n\t0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x1b, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x21, 0x0a, 0x03,\n\t0x78, 0x6d, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x58, 0x6d, 0x6c, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x12,\n\t0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73,\n\t0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73,\n\t0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x29,\n\t0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79,\n\t0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7e, 0x0a, 0x0a, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x06,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x39, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x74, 0x0a, 0x13, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x5d, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69,\n\t0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x22, 0xe9, 0x04, 0x0a, 0x17, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66,\n\t0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x6d, 0x0a, 0x1d,\n\t0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1b,\n\t0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x61,\n\t0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,\n\t0x79, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x69, 0x6d,\n\t0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69,\n\t0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x16, 0x6f, 0x61, 0x75,\n\t0x74, 0x68, 0x32, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x70, 0x61,\n\t0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,\n\t0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x16, 0x6f, 0x61, 0x75,\n\t0x74, 0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x61, 0x70,\n\t0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,\n\t0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48,\n\t0x00, 0x52, 0x19, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x65, 0x0a, 0x1b,\n\t0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f,\n\t0x64, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53,\n\t0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68,\n\t0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x68, 0x0a, 0x13,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,\n\t0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79,\n\t0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,\n\t0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x03,\n\t0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,\n\t0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x08, 0x54, 0x79, 0x70,\n\t0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5c, 0x0a, 0x0f, 0x56,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x03, 0x58, 0x6d,\n\t0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,\n\t0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,\n\t0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61,\n\t0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,\n\t0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x72, 0x61,\n\t0x70, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70,\n\t0x70, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e, 0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x76, 0x32, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0xa2, 0x02,\n\t0x03, 0x4f, 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_openapiv2_OpenAPIv2_proto_rawDescOnce sync.Once\n\tfile_openapiv2_OpenAPIv2_proto_rawDescData = file_openapiv2_OpenAPIv2_proto_rawDesc\n)\n\nfunc file_openapiv2_OpenAPIv2_proto_rawDescGZIP() []byte {\n\tfile_openapiv2_OpenAPIv2_proto_rawDescOnce.Do(func() {\n\t\tfile_openapiv2_OpenAPIv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_openapiv2_OpenAPIv2_proto_rawDescData)\n\t})\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescData\n}\n\nvar file_openapiv2_OpenAPIv2_proto_msgTypes = make([]protoimpl.MessageInfo, 60)\nvar file_openapiv2_OpenAPIv2_proto_goTypes = []interface{}{\n\t(*AdditionalPropertiesItem)(nil),     // 0: openapi.v2.AdditionalPropertiesItem\n\t(*Any)(nil),                          // 1: openapi.v2.Any\n\t(*ApiKeySecurity)(nil),               // 2: openapi.v2.ApiKeySecurity\n\t(*BasicAuthenticationSecurity)(nil),  // 3: openapi.v2.BasicAuthenticationSecurity\n\t(*BodyParameter)(nil),                // 4: openapi.v2.BodyParameter\n\t(*Contact)(nil),                      // 5: openapi.v2.Contact\n\t(*Default)(nil),                      // 6: openapi.v2.Default\n\t(*Definitions)(nil),                  // 7: openapi.v2.Definitions\n\t(*Document)(nil),                     // 8: openapi.v2.Document\n\t(*Examples)(nil),                     // 9: openapi.v2.Examples\n\t(*ExternalDocs)(nil),                 // 10: openapi.v2.ExternalDocs\n\t(*FileSchema)(nil),                   // 11: openapi.v2.FileSchema\n\t(*FormDataParameterSubSchema)(nil),   // 12: openapi.v2.FormDataParameterSubSchema\n\t(*Header)(nil),                       // 13: openapi.v2.Header\n\t(*HeaderParameterSubSchema)(nil),     // 14: openapi.v2.HeaderParameterSubSchema\n\t(*Headers)(nil),                      // 15: openapi.v2.Headers\n\t(*Info)(nil),                         // 16: openapi.v2.Info\n\t(*ItemsItem)(nil),                    // 17: openapi.v2.ItemsItem\n\t(*JsonReference)(nil),                // 18: openapi.v2.JsonReference\n\t(*License)(nil),                      // 19: openapi.v2.License\n\t(*NamedAny)(nil),                     // 20: openapi.v2.NamedAny\n\t(*NamedHeader)(nil),                  // 21: openapi.v2.NamedHeader\n\t(*NamedParameter)(nil),               // 22: openapi.v2.NamedParameter\n\t(*NamedPathItem)(nil),                // 23: openapi.v2.NamedPathItem\n\t(*NamedResponse)(nil),                // 24: openapi.v2.NamedResponse\n\t(*NamedResponseValue)(nil),           // 25: openapi.v2.NamedResponseValue\n\t(*NamedSchema)(nil),                  // 26: openapi.v2.NamedSchema\n\t(*NamedSecurityDefinitionsItem)(nil), // 27: openapi.v2.NamedSecurityDefinitionsItem\n\t(*NamedString)(nil),                  // 28: openapi.v2.NamedString\n\t(*NamedStringArray)(nil),             // 29: openapi.v2.NamedStringArray\n\t(*NonBodyParameter)(nil),             // 30: openapi.v2.NonBodyParameter\n\t(*Oauth2AccessCodeSecurity)(nil),     // 31: openapi.v2.Oauth2AccessCodeSecurity\n\t(*Oauth2ApplicationSecurity)(nil),    // 32: openapi.v2.Oauth2ApplicationSecurity\n\t(*Oauth2ImplicitSecurity)(nil),       // 33: openapi.v2.Oauth2ImplicitSecurity\n\t(*Oauth2PasswordSecurity)(nil),       // 34: openapi.v2.Oauth2PasswordSecurity\n\t(*Oauth2Scopes)(nil),                 // 35: openapi.v2.Oauth2Scopes\n\t(*Operation)(nil),                    // 36: openapi.v2.Operation\n\t(*Parameter)(nil),                    // 37: openapi.v2.Parameter\n\t(*ParameterDefinitions)(nil),         // 38: openapi.v2.ParameterDefinitions\n\t(*ParametersItem)(nil),               // 39: openapi.v2.ParametersItem\n\t(*PathItem)(nil),                     // 40: openapi.v2.PathItem\n\t(*PathParameterSubSchema)(nil),       // 41: openapi.v2.PathParameterSubSchema\n\t(*Paths)(nil),                        // 42: openapi.v2.Paths\n\t(*PrimitivesItems)(nil),              // 43: openapi.v2.PrimitivesItems\n\t(*Properties)(nil),                   // 44: openapi.v2.Properties\n\t(*QueryParameterSubSchema)(nil),      // 45: openapi.v2.QueryParameterSubSchema\n\t(*Response)(nil),                     // 46: openapi.v2.Response\n\t(*ResponseDefinitions)(nil),          // 47: openapi.v2.ResponseDefinitions\n\t(*ResponseValue)(nil),                // 48: openapi.v2.ResponseValue\n\t(*Responses)(nil),                    // 49: openapi.v2.Responses\n\t(*Schema)(nil),                       // 50: openapi.v2.Schema\n\t(*SchemaItem)(nil),                   // 51: openapi.v2.SchemaItem\n\t(*SecurityDefinitions)(nil),          // 52: openapi.v2.SecurityDefinitions\n\t(*SecurityDefinitionsItem)(nil),      // 53: openapi.v2.SecurityDefinitionsItem\n\t(*SecurityRequirement)(nil),          // 54: openapi.v2.SecurityRequirement\n\t(*StringArray)(nil),                  // 55: openapi.v2.StringArray\n\t(*Tag)(nil),                          // 56: openapi.v2.Tag\n\t(*TypeItem)(nil),                     // 57: openapi.v2.TypeItem\n\t(*VendorExtension)(nil),              // 58: openapi.v2.VendorExtension\n\t(*Xml)(nil),                          // 59: openapi.v2.Xml\n\t(*anypb.Any)(nil),                    // 60: google.protobuf.Any\n}\nvar file_openapiv2_OpenAPIv2_proto_depIdxs = []int32{\n\t50,  // 0: openapi.v2.AdditionalPropertiesItem.schema:type_name -> openapi.v2.Schema\n\t60,  // 1: openapi.v2.Any.value:type_name -> google.protobuf.Any\n\t20,  // 2: openapi.v2.ApiKeySecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 3: openapi.v2.BasicAuthenticationSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 4: openapi.v2.BodyParameter.schema:type_name -> openapi.v2.Schema\n\t20,  // 5: openapi.v2.BodyParameter.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 6: openapi.v2.Contact.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 7: openapi.v2.Default.additional_properties:type_name -> openapi.v2.NamedAny\n\t26,  // 8: openapi.v2.Definitions.additional_properties:type_name -> openapi.v2.NamedSchema\n\t16,  // 9: openapi.v2.Document.info:type_name -> openapi.v2.Info\n\t42,  // 10: openapi.v2.Document.paths:type_name -> openapi.v2.Paths\n\t7,   // 11: openapi.v2.Document.definitions:type_name -> openapi.v2.Definitions\n\t38,  // 12: openapi.v2.Document.parameters:type_name -> openapi.v2.ParameterDefinitions\n\t47,  // 13: openapi.v2.Document.responses:type_name -> openapi.v2.ResponseDefinitions\n\t54,  // 14: openapi.v2.Document.security:type_name -> openapi.v2.SecurityRequirement\n\t52,  // 15: openapi.v2.Document.security_definitions:type_name -> openapi.v2.SecurityDefinitions\n\t56,  // 16: openapi.v2.Document.tags:type_name -> openapi.v2.Tag\n\t10,  // 17: openapi.v2.Document.external_docs:type_name -> openapi.v2.ExternalDocs\n\t20,  // 18: openapi.v2.Document.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 19: openapi.v2.Examples.additional_properties:type_name -> openapi.v2.NamedAny\n\t20,  // 20: openapi.v2.ExternalDocs.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 21: openapi.v2.FileSchema.default:type_name -> openapi.v2.Any\n\t10,  // 22: openapi.v2.FileSchema.external_docs:type_name -> openapi.v2.ExternalDocs\n\t1,   // 23: openapi.v2.FileSchema.example:type_name -> openapi.v2.Any\n\t20,  // 24: openapi.v2.FileSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 25: openapi.v2.FormDataParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 26: openapi.v2.FormDataParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 27: openapi.v2.FormDataParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 28: openapi.v2.FormDataParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 29: openapi.v2.Header.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 30: openapi.v2.Header.default:type_name -> openapi.v2.Any\n\t1,   // 31: openapi.v2.Header.enum:type_name -> openapi.v2.Any\n\t20,  // 32: openapi.v2.Header.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 33: openapi.v2.HeaderParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 34: openapi.v2.HeaderParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 35: openapi.v2.HeaderParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 36: openapi.v2.HeaderParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t21,  // 37: openapi.v2.Headers.additional_properties:type_name -> openapi.v2.NamedHeader\n\t5,   // 38: openapi.v2.Info.contact:type_name -> openapi.v2.Contact\n\t19,  // 39: openapi.v2.Info.license:type_name -> openapi.v2.License\n\t20,  // 40: openapi.v2.Info.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 41: openapi.v2.ItemsItem.schema:type_name -> openapi.v2.Schema\n\t20,  // 42: openapi.v2.License.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 43: openapi.v2.NamedAny.value:type_name -> openapi.v2.Any\n\t13,  // 44: openapi.v2.NamedHeader.value:type_name -> openapi.v2.Header\n\t37,  // 45: openapi.v2.NamedParameter.value:type_name -> openapi.v2.Parameter\n\t40,  // 46: openapi.v2.NamedPathItem.value:type_name -> openapi.v2.PathItem\n\t46,  // 47: openapi.v2.NamedResponse.value:type_name -> openapi.v2.Response\n\t48,  // 48: openapi.v2.NamedResponseValue.value:type_name -> openapi.v2.ResponseValue\n\t50,  // 49: openapi.v2.NamedSchema.value:type_name -> openapi.v2.Schema\n\t53,  // 50: openapi.v2.NamedSecurityDefinitionsItem.value:type_name -> openapi.v2.SecurityDefinitionsItem\n\t55,  // 51: openapi.v2.NamedStringArray.value:type_name -> openapi.v2.StringArray\n\t14,  // 52: openapi.v2.NonBodyParameter.header_parameter_sub_schema:type_name -> openapi.v2.HeaderParameterSubSchema\n\t12,  // 53: openapi.v2.NonBodyParameter.form_data_parameter_sub_schema:type_name -> openapi.v2.FormDataParameterSubSchema\n\t45,  // 54: openapi.v2.NonBodyParameter.query_parameter_sub_schema:type_name -> openapi.v2.QueryParameterSubSchema\n\t41,  // 55: openapi.v2.NonBodyParameter.path_parameter_sub_schema:type_name -> openapi.v2.PathParameterSubSchema\n\t35,  // 56: openapi.v2.Oauth2AccessCodeSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 57: openapi.v2.Oauth2AccessCodeSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 58: openapi.v2.Oauth2ApplicationSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 59: openapi.v2.Oauth2ApplicationSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 60: openapi.v2.Oauth2ImplicitSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 61: openapi.v2.Oauth2ImplicitSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 62: openapi.v2.Oauth2PasswordSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 63: openapi.v2.Oauth2PasswordSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t28,  // 64: openapi.v2.Oauth2Scopes.additional_properties:type_name -> openapi.v2.NamedString\n\t10,  // 65: openapi.v2.Operation.external_docs:type_name -> openapi.v2.ExternalDocs\n\t39,  // 66: openapi.v2.Operation.parameters:type_name -> openapi.v2.ParametersItem\n\t49,  // 67: openapi.v2.Operation.responses:type_name -> openapi.v2.Responses\n\t54,  // 68: openapi.v2.Operation.security:type_name -> openapi.v2.SecurityRequirement\n\t20,  // 69: openapi.v2.Operation.vendor_extension:type_name -> openapi.v2.NamedAny\n\t4,   // 70: openapi.v2.Parameter.body_parameter:type_name -> openapi.v2.BodyParameter\n\t30,  // 71: openapi.v2.Parameter.non_body_parameter:type_name -> openapi.v2.NonBodyParameter\n\t22,  // 72: openapi.v2.ParameterDefinitions.additional_properties:type_name -> openapi.v2.NamedParameter\n\t37,  // 73: openapi.v2.ParametersItem.parameter:type_name -> openapi.v2.Parameter\n\t18,  // 74: openapi.v2.ParametersItem.json_reference:type_name -> openapi.v2.JsonReference\n\t36,  // 75: openapi.v2.PathItem.get:type_name -> openapi.v2.Operation\n\t36,  // 76: openapi.v2.PathItem.put:type_name -> openapi.v2.Operation\n\t36,  // 77: openapi.v2.PathItem.post:type_name -> openapi.v2.Operation\n\t36,  // 78: openapi.v2.PathItem.delete:type_name -> openapi.v2.Operation\n\t36,  // 79: openapi.v2.PathItem.options:type_name -> openapi.v2.Operation\n\t36,  // 80: openapi.v2.PathItem.head:type_name -> openapi.v2.Operation\n\t36,  // 81: openapi.v2.PathItem.patch:type_name -> openapi.v2.Operation\n\t39,  // 82: openapi.v2.PathItem.parameters:type_name -> openapi.v2.ParametersItem\n\t20,  // 83: openapi.v2.PathItem.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 84: openapi.v2.PathParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 85: openapi.v2.PathParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 86: openapi.v2.PathParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 87: openapi.v2.PathParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 88: openapi.v2.Paths.vendor_extension:type_name -> openapi.v2.NamedAny\n\t23,  // 89: openapi.v2.Paths.path:type_name -> openapi.v2.NamedPathItem\n\t43,  // 90: openapi.v2.PrimitivesItems.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 91: openapi.v2.PrimitivesItems.default:type_name -> openapi.v2.Any\n\t1,   // 92: openapi.v2.PrimitivesItems.enum:type_name -> openapi.v2.Any\n\t20,  // 93: openapi.v2.PrimitivesItems.vendor_extension:type_name -> openapi.v2.NamedAny\n\t26,  // 94: openapi.v2.Properties.additional_properties:type_name -> openapi.v2.NamedSchema\n\t43,  // 95: openapi.v2.QueryParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 96: openapi.v2.QueryParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 97: openapi.v2.QueryParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 98: openapi.v2.QueryParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t51,  // 99: openapi.v2.Response.schema:type_name -> openapi.v2.SchemaItem\n\t15,  // 100: openapi.v2.Response.headers:type_name -> openapi.v2.Headers\n\t9,   // 101: openapi.v2.Response.examples:type_name -> openapi.v2.Examples\n\t20,  // 102: openapi.v2.Response.vendor_extension:type_name -> openapi.v2.NamedAny\n\t24,  // 103: openapi.v2.ResponseDefinitions.additional_properties:type_name -> openapi.v2.NamedResponse\n\t46,  // 104: openapi.v2.ResponseValue.response:type_name -> openapi.v2.Response\n\t18,  // 105: openapi.v2.ResponseValue.json_reference:type_name -> openapi.v2.JsonReference\n\t25,  // 106: openapi.v2.Responses.response_code:type_name -> openapi.v2.NamedResponseValue\n\t20,  // 107: openapi.v2.Responses.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 108: openapi.v2.Schema.default:type_name -> openapi.v2.Any\n\t1,   // 109: openapi.v2.Schema.enum:type_name -> openapi.v2.Any\n\t0,   // 110: openapi.v2.Schema.additional_properties:type_name -> openapi.v2.AdditionalPropertiesItem\n\t57,  // 111: openapi.v2.Schema.type:type_name -> openapi.v2.TypeItem\n\t17,  // 112: openapi.v2.Schema.items:type_name -> openapi.v2.ItemsItem\n\t50,  // 113: openapi.v2.Schema.all_of:type_name -> openapi.v2.Schema\n\t44,  // 114: openapi.v2.Schema.properties:type_name -> openapi.v2.Properties\n\t59,  // 115: openapi.v2.Schema.xml:type_name -> openapi.v2.Xml\n\t10,  // 116: openapi.v2.Schema.external_docs:type_name -> openapi.v2.ExternalDocs\n\t1,   // 117: openapi.v2.Schema.example:type_name -> openapi.v2.Any\n\t20,  // 118: openapi.v2.Schema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 119: openapi.v2.SchemaItem.schema:type_name -> openapi.v2.Schema\n\t11,  // 120: openapi.v2.SchemaItem.file_schema:type_name -> openapi.v2.FileSchema\n\t27,  // 121: openapi.v2.SecurityDefinitions.additional_properties:type_name -> openapi.v2.NamedSecurityDefinitionsItem\n\t3,   // 122: openapi.v2.SecurityDefinitionsItem.basic_authentication_security:type_name -> openapi.v2.BasicAuthenticationSecurity\n\t2,   // 123: openapi.v2.SecurityDefinitionsItem.api_key_security:type_name -> openapi.v2.ApiKeySecurity\n\t33,  // 124: openapi.v2.SecurityDefinitionsItem.oauth2_implicit_security:type_name -> openapi.v2.Oauth2ImplicitSecurity\n\t34,  // 125: openapi.v2.SecurityDefinitionsItem.oauth2_password_security:type_name -> openapi.v2.Oauth2PasswordSecurity\n\t32,  // 126: openapi.v2.SecurityDefinitionsItem.oauth2_application_security:type_name -> openapi.v2.Oauth2ApplicationSecurity\n\t31,  // 127: openapi.v2.SecurityDefinitionsItem.oauth2_access_code_security:type_name -> openapi.v2.Oauth2AccessCodeSecurity\n\t29,  // 128: openapi.v2.SecurityRequirement.additional_properties:type_name -> openapi.v2.NamedStringArray\n\t10,  // 129: openapi.v2.Tag.external_docs:type_name -> openapi.v2.ExternalDocs\n\t20,  // 130: openapi.v2.Tag.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 131: openapi.v2.VendorExtension.additional_properties:type_name -> openapi.v2.NamedAny\n\t20,  // 132: openapi.v2.Xml.vendor_extension:type_name -> openapi.v2.NamedAny\n\t133, // [133:133] is the sub-list for method output_type\n\t133, // [133:133] is the sub-list for method input_type\n\t133, // [133:133] is the sub-list for extension type_name\n\t133, // [133:133] is the sub-list for extension extendee\n\t0,   // [0:133] is the sub-list for field type_name\n}\n\nfunc init() { file_openapiv2_OpenAPIv2_proto_init() }\nfunc file_openapiv2_OpenAPIv2_proto_init() {\n\tif File_openapiv2_OpenAPIv2_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AdditionalPropertiesItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Any); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ApiKeySecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*BasicAuthenticationSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*BodyParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Contact); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Default); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Definitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Document); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Examples); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExternalDocs); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*FileSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*FormDataParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Header); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeaderParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Headers); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Info); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ItemsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*JsonReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*License); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedAny); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedHeader); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedPathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponseValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSecurityDefinitionsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedString); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedStringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NonBodyParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2AccessCodeSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2ApplicationSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2ImplicitSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2PasswordSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2Scopes); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Operation); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Parameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParameterDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParametersItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Paths); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PrimitivesItems); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Properties); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*QueryParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Response); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Responses); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Schema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemaItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityDefinitionsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityRequirement); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Tag); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*TypeItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*VendorExtension); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Xml); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[0].OneofWrappers = []interface{}{\n\t\t(*AdditionalPropertiesItem_Schema)(nil),\n\t\t(*AdditionalPropertiesItem_Boolean)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[30].OneofWrappers = []interface{}{\n\t\t(*NonBodyParameter_HeaderParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_FormDataParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_QueryParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_PathParameterSubSchema)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[37].OneofWrappers = []interface{}{\n\t\t(*Parameter_BodyParameter)(nil),\n\t\t(*Parameter_NonBodyParameter)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[39].OneofWrappers = []interface{}{\n\t\t(*ParametersItem_Parameter)(nil),\n\t\t(*ParametersItem_JsonReference)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[48].OneofWrappers = []interface{}{\n\t\t(*ResponseValue_Response)(nil),\n\t\t(*ResponseValue_JsonReference)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[51].OneofWrappers = []interface{}{\n\t\t(*SchemaItem_Schema)(nil),\n\t\t(*SchemaItem_FileSchema)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[53].OneofWrappers = []interface{}{\n\t\t(*SecurityDefinitionsItem_BasicAuthenticationSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_ApiKeySecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2ImplicitSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2PasswordSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2ApplicationSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_openapiv2_OpenAPIv2_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   60,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_openapiv2_OpenAPIv2_proto_goTypes,\n\t\tDependencyIndexes: file_openapiv2_OpenAPIv2_proto_depIdxs,\n\t\tMessageInfos:      file_openapiv2_OpenAPIv2_proto_msgTypes,\n\t}.Build()\n\tFile_openapiv2_OpenAPIv2_proto = out.File\n\tfile_openapiv2_OpenAPIv2_proto_rawDesc = nil\n\tfile_openapiv2_OpenAPIv2_proto_goTypes = nil\n\tfile_openapiv2_OpenAPIv2_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.proto",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\nsyntax = \"proto3\";\n\npackage openapi.v2;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"OpenAPIProto\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.openapi_v2\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\noption objc_class_prefix = \"OAS\";\n\n// The Go package name.\noption go_package = \"./openapiv2;openapi_v2\";\n\nmessage AdditionalPropertiesItem {\n  oneof oneof {\n    Schema schema = 1;\n    bool boolean = 2;\n  }\n}\n\nmessage Any {\n  google.protobuf.Any value = 1;\n  string yaml = 2;\n}\n\nmessage ApiKeySecurity {\n  string type = 1;\n  string name = 2;\n  string in = 3;\n  string description = 4;\n  repeated NamedAny vendor_extension = 5;\n}\n\nmessage BasicAuthenticationSecurity {\n  string type = 1;\n  string description = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\nmessage BodyParameter {\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 1;\n  // The name of the parameter.\n  string name = 2;\n  // Determines the location of the parameter.\n  string in = 3;\n  // Determines whether or not this parameter is required or optional.\n  bool required = 4;\n  Schema schema = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\n// Contact information for the owners of the API.\nmessage Contact {\n  // The identifying name of the contact person/organization.\n  string name = 1;\n  // The URL pointing to the contact information.\n  string url = 2;\n  // The email address of the contact person/organization.\n  string email = 3;\n  repeated NamedAny vendor_extension = 4;\n}\n\nmessage Default {\n  repeated NamedAny additional_properties = 1;\n}\n\n// One or more JSON objects describing the schemas being consumed and produced by the API.\nmessage Definitions {\n  repeated NamedSchema additional_properties = 1;\n}\n\nmessage Document {\n  // The Swagger version of this document.\n  string swagger = 1;\n  Info info = 2;\n  // The host (name or ip) of the API. Example: 'swagger.io'\n  string host = 3;\n  // The base path to the API. Example: '/api'.\n  string base_path = 4;\n  // The transfer protocol of the API.\n  repeated string schemes = 5;\n  // A list of MIME types accepted by the API.\n  repeated string consumes = 6;\n  // A list of MIME types the API can produce.\n  repeated string produces = 7;\n  Paths paths = 8;\n  Definitions definitions = 9;\n  ParameterDefinitions parameters = 10;\n  ResponseDefinitions responses = 11;\n  repeated SecurityRequirement security = 12;\n  SecurityDefinitions security_definitions = 13;\n  repeated Tag tags = 14;\n  ExternalDocs external_docs = 15;\n  repeated NamedAny vendor_extension = 16;\n}\n\nmessage Examples {\n  repeated NamedAny additional_properties = 1;\n}\n\n// information about external documentation\nmessage ExternalDocs {\n  string description = 1;\n  string url = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\n// A deterministic version of a JSON Schema object.\nmessage FileSchema {\n  string format = 1;\n  string title = 2;\n  string description = 3;\n  Any default = 4;\n  repeated string required = 5;\n  string type = 6;\n  bool read_only = 7;\n  ExternalDocs external_docs = 8;\n  Any example = 9;\n  repeated NamedAny vendor_extension = 10;\n}\n\nmessage FormDataParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  // allows sending a parameter by name only or with an empty value.\n  bool allow_empty_value = 5;\n  string type = 6;\n  string format = 7;\n  PrimitivesItems items = 8;\n  string collection_format = 9;\n  Any default = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  repeated Any enum = 21;\n  double multiple_of = 22;\n  repeated NamedAny vendor_extension = 23;\n}\n\nmessage Header {\n  string type = 1;\n  string format = 2;\n  PrimitivesItems items = 3;\n  string collection_format = 4;\n  Any default = 5;\n  double maximum = 6;\n  bool exclusive_maximum = 7;\n  double minimum = 8;\n  bool exclusive_minimum = 9;\n  int64 max_length = 10;\n  int64 min_length = 11;\n  string pattern = 12;\n  int64 max_items = 13;\n  int64 min_items = 14;\n  bool unique_items = 15;\n  repeated Any enum = 16;\n  double multiple_of = 17;\n  string description = 18;\n  repeated NamedAny vendor_extension = 19;\n}\n\nmessage HeaderParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  string type = 5;\n  string format = 6;\n  PrimitivesItems items = 7;\n  string collection_format = 8;\n  Any default = 9;\n  double maximum = 10;\n  bool exclusive_maximum = 11;\n  double minimum = 12;\n  bool exclusive_minimum = 13;\n  int64 max_length = 14;\n  int64 min_length = 15;\n  string pattern = 16;\n  int64 max_items = 17;\n  int64 min_items = 18;\n  bool unique_items = 19;\n  repeated Any enum = 20;\n  double multiple_of = 21;\n  repeated NamedAny vendor_extension = 22;\n}\n\nmessage Headers {\n  repeated NamedHeader additional_properties = 1;\n}\n\n// General information about the API.\nmessage Info {\n  // A unique and precise title of the API.\n  string title = 1;\n  // A semantic version number of the API.\n  string version = 2;\n  // A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The terms of service for the API.\n  string terms_of_service = 4;\n  Contact contact = 5;\n  License license = 6;\n  repeated NamedAny vendor_extension = 7;\n}\n\nmessage ItemsItem {\n  repeated Schema schema = 1;\n}\n\nmessage JsonReference {\n  string _ref = 1;\n  string description = 2;\n}\n\nmessage License {\n  // The name of the license type. It's encouraged to use an OSI compatible license.\n  string name = 1;\n  // The URL pointing to the license.\n  string url = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\nmessage NamedAny {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Any value = 2;\n}\n\n// Automatically-generated message used to represent maps of Header as ordered (name,value) pairs.\nmessage NamedHeader {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Header value = 2;\n}\n\n// Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs.\nmessage NamedParameter {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Parameter value = 2;\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\nmessage NamedPathItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  PathItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of Response as ordered (name,value) pairs.\nmessage NamedResponse {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Response value = 2;\n}\n\n// Automatically-generated message used to represent maps of ResponseValue as ordered (name,value) pairs.\nmessage NamedResponseValue {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ResponseValue value = 2;\n}\n\n// Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs.\nmessage NamedSchema {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Schema value = 2;\n}\n\n// Automatically-generated message used to represent maps of SecurityDefinitionsItem as ordered (name,value) pairs.\nmessage NamedSecurityDefinitionsItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SecurityDefinitionsItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\nmessage NamedString {\n  // Map key\n  string name = 1;\n  // Mapped value\n  string value = 2;\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\nmessage NamedStringArray {\n  // Map key\n  string name = 1;\n  // Mapped value\n  StringArray value = 2;\n}\n\nmessage NonBodyParameter {\n  oneof oneof {\n    HeaderParameterSubSchema header_parameter_sub_schema = 1;\n    FormDataParameterSubSchema form_data_parameter_sub_schema = 2;\n    QueryParameterSubSchema query_parameter_sub_schema = 3;\n    PathParameterSubSchema path_parameter_sub_schema = 4;\n  }\n}\n\nmessage Oauth2AccessCodeSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string authorization_url = 4;\n  string token_url = 5;\n  string description = 6;\n  repeated NamedAny vendor_extension = 7;\n}\n\nmessage Oauth2ApplicationSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string token_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2ImplicitSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string authorization_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2PasswordSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string token_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2Scopes {\n  repeated NamedString additional_properties = 1;\n}\n\nmessage Operation {\n  repeated string tags = 1;\n  // A brief summary of the operation.\n  string summary = 2;\n  // A longer description of the operation, GitHub Flavored Markdown is allowed.\n  string description = 3;\n  ExternalDocs external_docs = 4;\n  // A unique identifier of the operation.\n  string operation_id = 5;\n  // A list of MIME types the API can produce.\n  repeated string produces = 6;\n  // A list of MIME types the API can consume.\n  repeated string consumes = 7;\n  // The parameters needed to send a valid API call.\n  repeated ParametersItem parameters = 8;\n  Responses responses = 9;\n  // The transfer protocol of the API.\n  repeated string schemes = 10;\n  bool deprecated = 11;\n  repeated SecurityRequirement security = 12;\n  repeated NamedAny vendor_extension = 13;\n}\n\nmessage Parameter {\n  oneof oneof {\n    BodyParameter body_parameter = 1;\n    NonBodyParameter non_body_parameter = 2;\n  }\n}\n\n// One or more JSON representations for parameters\nmessage ParameterDefinitions {\n  repeated NamedParameter additional_properties = 1;\n}\n\nmessage ParametersItem {\n  oneof oneof {\n    Parameter parameter = 1;\n    JsonReference json_reference = 2;\n  }\n}\n\nmessage PathItem {\n  string _ref = 1;\n  Operation get = 2;\n  Operation put = 3;\n  Operation post = 4;\n  Operation delete = 5;\n  Operation options = 6;\n  Operation head = 7;\n  Operation patch = 8;\n  // The parameters needed to send a valid API call.\n  repeated ParametersItem parameters = 9;\n  repeated NamedAny vendor_extension = 10;\n}\n\nmessage PathParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  string type = 5;\n  string format = 6;\n  PrimitivesItems items = 7;\n  string collection_format = 8;\n  Any default = 9;\n  double maximum = 10;\n  bool exclusive_maximum = 11;\n  double minimum = 12;\n  bool exclusive_minimum = 13;\n  int64 max_length = 14;\n  int64 min_length = 15;\n  string pattern = 16;\n  int64 max_items = 17;\n  int64 min_items = 18;\n  bool unique_items = 19;\n  repeated Any enum = 20;\n  double multiple_of = 21;\n  repeated NamedAny vendor_extension = 22;\n}\n\n// Relative paths to the individual endpoints. They must be relative to the 'basePath'.\nmessage Paths {\n  repeated NamedAny vendor_extension = 1;\n  repeated NamedPathItem path = 2;\n}\n\nmessage PrimitivesItems {\n  string type = 1;\n  string format = 2;\n  PrimitivesItems items = 3;\n  string collection_format = 4;\n  Any default = 5;\n  double maximum = 6;\n  bool exclusive_maximum = 7;\n  double minimum = 8;\n  bool exclusive_minimum = 9;\n  int64 max_length = 10;\n  int64 min_length = 11;\n  string pattern = 12;\n  int64 max_items = 13;\n  int64 min_items = 14;\n  bool unique_items = 15;\n  repeated Any enum = 16;\n  double multiple_of = 17;\n  repeated NamedAny vendor_extension = 18;\n}\n\nmessage Properties {\n  repeated NamedSchema additional_properties = 1;\n}\n\nmessage QueryParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  // allows sending a parameter by name only or with an empty value.\n  bool allow_empty_value = 5;\n  string type = 6;\n  string format = 7;\n  PrimitivesItems items = 8;\n  string collection_format = 9;\n  Any default = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  repeated Any enum = 21;\n  double multiple_of = 22;\n  repeated NamedAny vendor_extension = 23;\n}\n\nmessage Response {\n  string description = 1;\n  SchemaItem schema = 2;\n  Headers headers = 3;\n  Examples examples = 4;\n  repeated NamedAny vendor_extension = 5;\n}\n\n// One or more JSON representations for responses\nmessage ResponseDefinitions {\n  repeated NamedResponse additional_properties = 1;\n}\n\nmessage ResponseValue {\n  oneof oneof {\n    Response response = 1;\n    JsonReference json_reference = 2;\n  }\n}\n\n// Response objects names can either be any valid HTTP status code or 'default'.\nmessage Responses {\n  repeated NamedResponseValue response_code = 1;\n  repeated NamedAny vendor_extension = 2;\n}\n\n// A deterministic version of a JSON Schema object.\nmessage Schema {\n  string _ref = 1;\n  string format = 2;\n  string title = 3;\n  string description = 4;\n  Any default = 5;\n  double multiple_of = 6;\n  double maximum = 7;\n  bool exclusive_maximum = 8;\n  double minimum = 9;\n  bool exclusive_minimum = 10;\n  int64 max_length = 11;\n  int64 min_length = 12;\n  string pattern = 13;\n  int64 max_items = 14;\n  int64 min_items = 15;\n  bool unique_items = 16;\n  int64 max_properties = 17;\n  int64 min_properties = 18;\n  repeated string required = 19;\n  repeated Any enum = 20;\n  AdditionalPropertiesItem additional_properties = 21;\n  TypeItem type = 22;\n  ItemsItem items = 23;\n  repeated Schema all_of = 24;\n  Properties properties = 25;\n  string discriminator = 26;\n  bool read_only = 27;\n  Xml xml = 28;\n  ExternalDocs external_docs = 29;\n  Any example = 30;\n  repeated NamedAny vendor_extension = 31;\n}\n\nmessage SchemaItem {\n  oneof oneof {\n    Schema schema = 1;\n    FileSchema file_schema = 2;\n  }\n}\n\nmessage SecurityDefinitions {\n  repeated NamedSecurityDefinitionsItem additional_properties = 1;\n}\n\nmessage SecurityDefinitionsItem {\n  oneof oneof {\n    BasicAuthenticationSecurity basic_authentication_security = 1;\n    ApiKeySecurity api_key_security = 2;\n    Oauth2ImplicitSecurity oauth2_implicit_security = 3;\n    Oauth2PasswordSecurity oauth2_password_security = 4;\n    Oauth2ApplicationSecurity oauth2_application_security = 5;\n    Oauth2AccessCodeSecurity oauth2_access_code_security = 6;\n  }\n}\n\nmessage SecurityRequirement {\n  repeated NamedStringArray additional_properties = 1;\n}\n\nmessage StringArray {\n  repeated string value = 1;\n}\n\nmessage Tag {\n  string name = 1;\n  string description = 2;\n  ExternalDocs external_docs = 3;\n  repeated NamedAny vendor_extension = 4;\n}\n\nmessage TypeItem {\n  repeated string value = 1;\n}\n\n// Any property starting with x- is valid.\nmessage VendorExtension {\n  repeated NamedAny additional_properties = 1;\n}\n\nmessage Xml {\n  string name = 1;\n  string namespace = 2;\n  string prefix = 3;\n  bool attribute = 4;\n  bool wrapped = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/README.md",
    "content": "# OpenAPI v2 Protocol Buffer Models\n\nThis directory contains a Protocol Buffer-language model and related code for\nsupporting OpenAPI v2.\n\nGnostic applications and plugins can use OpenAPIv2.proto to generate Protocol\nBuffer support code for their preferred languages.\n\nOpenAPIv2.go is used by Gnostic to read JSON and YAML OpenAPI descriptions into\nthe Protocol Buffer-based datastructures generated from OpenAPIv2.proto.\n\nOpenAPIv2.proto and OpenAPIv2.go are generated by the Gnostic compiler\ngenerator, and OpenAPIv2.pb.go is generated by protoc, the Protocol Buffer\ncompiler, and protoc-gen-go, the Protocol Buffer Go code generation plugin.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/document.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage openapi_v2\n\nimport (\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic/compiler\"\n)\n\n// ParseDocument reads an OpenAPI v2 description from a YAML/JSON representation.\nfunc ParseDocument(b []byte) (*Document, error) {\n\tinfo, err := compiler.ReadInfoFromBytes(\"\", b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\troot := info.Content[0]\n\treturn NewDocument(root, compiler.NewContextWithExtensions(\"$root\", root, nil, nil))\n}\n\n// YAMLValue produces a serialized YAML representation of the document.\nfunc (d *Document) YAMLValue(comment string) ([]byte, error) {\n\trawInfo := d.ToRawInfo()\n\trawInfo = &yaml.Node{\n\t\tKind:        yaml.DocumentNode,\n\t\tContent:     []*yaml.Node{rawInfo},\n\t\tHeadComment: comment,\n\t}\n\treturn yaml.Marshal(rawInfo)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv2/openapi-2.0.json",
    "content": "{\n  \"title\": \"A JSON Schema for Swagger 2.0 API.\",\n  \"id\": \"http://swagger.io/v2/schema.json#\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"type\": \"object\",\n  \"required\": [\n    \"swagger\",\n    \"info\",\n    \"paths\"\n  ],\n  \"additionalProperties\": false,\n  \"patternProperties\": {\n    \"^x-\": {\n      \"$ref\": \"#/definitions/vendorExtension\"\n    }\n  },\n  \"properties\": {\n    \"swagger\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"2.0\"\n      ],\n      \"description\": \"The Swagger version of this document.\"\n    },\n    \"info\": {\n      \"$ref\": \"#/definitions/info\"\n    },\n    \"host\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[^{}/ :\\\\\\\\]+(?::\\\\d+)?$\",\n      \"description\": \"The host (name or ip) of the API. Example: 'swagger.io'\"\n    },\n    \"basePath\": {\n      \"type\": \"string\",\n      \"pattern\": \"^/\",\n      \"description\": \"The base path to the API. Example: '/api'.\"\n    },\n    \"schemes\": {\n      \"$ref\": \"#/definitions/schemesList\"\n    },\n    \"consumes\": {\n      \"description\": \"A list of MIME types accepted by the API.\",\n      \"allOf\": [\n        {\n          \"$ref\": \"#/definitions/mediaTypeList\"\n        }\n      ]\n    },\n    \"produces\": {\n      \"description\": \"A list of MIME types the API can produce.\",\n      \"allOf\": [\n        {\n          \"$ref\": \"#/definitions/mediaTypeList\"\n        }\n      ]\n    },\n    \"paths\": {\n      \"$ref\": \"#/definitions/paths\"\n    },\n    \"definitions\": {\n      \"$ref\": \"#/definitions/definitions\"\n    },\n    \"parameters\": {\n      \"$ref\": \"#/definitions/parameterDefinitions\"\n    },\n    \"responses\": {\n      \"$ref\": \"#/definitions/responseDefinitions\"\n    },\n    \"security\": {\n      \"$ref\": \"#/definitions/security\"\n    },\n    \"securityDefinitions\": {\n      \"$ref\": \"#/definitions/securityDefinitions\"\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/tag\"\n      },\n      \"uniqueItems\": true\n    },\n    \"externalDocs\": {\n      \"$ref\": \"#/definitions/externalDocs\"\n    }\n  },\n  \"definitions\": {\n    \"info\": {\n      \"type\": \"object\",\n      \"description\": \"General information about the API.\",\n      \"required\": [\n        \"version\",\n        \"title\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"title\": {\n          \"type\": \"string\",\n          \"description\": \"A unique and precise title of the API.\"\n        },\n        \"version\": {\n          \"type\": \"string\",\n          \"description\": \"A semantic version number of the API.\"\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"termsOfService\": {\n          \"type\": \"string\",\n          \"description\": \"The terms of service for the API.\"\n        },\n        \"contact\": {\n          \"$ref\": \"#/definitions/contact\"\n        },\n        \"license\": {\n          \"$ref\": \"#/definitions/license\"\n        }\n      }\n    },\n    \"contact\": {\n      \"type\": \"object\",\n      \"description\": \"Contact information for the owners of the API.\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The identifying name of the contact person/organization.\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"description\": \"The URL pointing to the contact information.\",\n          \"format\": \"uri\"\n        },\n        \"email\": {\n          \"type\": \"string\",\n          \"description\": \"The email address of the contact person/organization.\",\n          \"format\": \"email\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"license\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"description\": \"The URL pointing to the license.\",\n          \"format\": \"uri\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"paths\": {\n      \"type\": \"object\",\n      \"description\": \"Relative paths to the individual endpoints. They must be relative to the 'basePath'.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        },\n        \"^/\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"definitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/schema\"\n      },\n      \"description\": \"One or more JSON objects describing the schemas being consumed and produced by the API.\"\n    },\n    \"parameterDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/parameter\"\n      },\n      \"description\": \"One or more JSON representations for parameters\"\n    },\n    \"responseDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/response\"\n      },\n      \"description\": \"One or more JSON representations for responses\"\n    },\n    \"externalDocs\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"description\": \"information about external documentation\",\n      \"required\": [\n        \"url\"\n      ],\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"examples\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"mimeType\": {\n      \"type\": \"string\",\n      \"description\": \"The MIME type of the HTTP message.\"\n    },\n    \"operation\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"responses\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"summary\": {\n          \"type\": \"string\",\n          \"description\": \"A brief summary of the operation.\"\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A longer description of the operation, GitHub Flavored Markdown is allowed.\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"operationId\": {\n          \"type\": \"string\",\n          \"description\": \"A unique identifier of the operation.\"\n        },\n        \"produces\": {\n          \"description\": \"A list of MIME types the API can produce.\",\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/mediaTypeList\"\n            }\n          ]\n        },\n        \"consumes\": {\n          \"description\": \"A list of MIME types the API can consume.\",\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/mediaTypeList\"\n            }\n          ]\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersList\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responses\"\n        },\n        \"schemes\": {\n          \"$ref\": \"#/definitions/schemesList\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"security\": {\n          \"$ref\": \"#/definitions/security\"\n        }\n      }\n    },\n    \"pathItem\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"get\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"put\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"post\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"delete\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"options\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"head\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"patch\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersList\"\n        }\n      }\n    },\n    \"responses\": {\n      \"type\": \"object\",\n      \"description\": \"Response objects names can either be any valid HTTP status code or 'default'.\",\n      \"minProperties\": 1,\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^([0-9]{3})$|^(default)$\": {\n          \"$ref\": \"#/definitions/responseValue\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"not\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"patternProperties\": {\n          \"^x-\": {\n            \"$ref\": \"#/definitions/vendorExtension\"\n          }\n        }\n      }\n    },\n    \"responseValue\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/response\"\n        },\n        {\n          \"$ref\": \"#/definitions/jsonReference\"\n        }\n      ]\n    },\n    \"response\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"description\"\n      ],\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"schema\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"$ref\": \"#/definitions/fileSchema\"\n            }\n          ]\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headers\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examples\"\n        }\n      },\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"headers\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/header\"\n      }\n    },\n    \"header\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"integer\",\n            \"boolean\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"vendorExtension\": {\n      \"description\": \"Any property starting with x- is valid.\",\n      \"additionalProperties\": true,\n      \"additionalItems\": true\n    },\n    \"bodyParameter\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"in\",\n        \"schema\"\n      ],\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"body\"\n          ]\n        },\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schema\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"headerParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"header\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"queryParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"query\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"description\": \"allows sending a parameter by name only or with an empty value.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormatWithMulti\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"formDataParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"formData\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"description\": \"allows sending a parameter by name only or with an empty value.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\",\n            \"file\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormatWithMulti\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"pathParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"required\": [\n        \"required\"\n      ],\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"enum\": [\n            true\n          ],\n          \"description\": \"Determines whether or not this parameter is required or optional.\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"path\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"nonBodyParameter\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"in\",\n        \"type\"\n      ],\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/headerParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/formDataParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/queryParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/pathParameterSubSchema\"\n        }\n      ]\n    },\n    \"parameter\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/bodyParameter\"\n        },\n        {\n          \"$ref\": \"#/definitions/nonBodyParameter\"\n        }\n      ]\n    },\n    \"schema\": {\n      \"type\": \"object\",\n      \"description\": \"A deterministic version of a JSON Schema object.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"description\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n        },\n        \"default\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n        },\n        \"maximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"pattern\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n        },\n        \"maxProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n        },\n        \"enum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n        },\n        \"additionalProperties\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"type\": \"boolean\"\n            }\n          ],\n          \"default\": {}\n        },\n        \"type\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/type\"\n        },\n        \"items\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"type\": \"array\",\n              \"minItems\": 1,\n              \"items\": {\n                \"$ref\": \"#/definitions/schema\"\n              }\n            }\n          ],\n          \"default\": {}\n        },\n        \"allOf\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"items\": {\n            \"$ref\": \"#/definitions/schema\"\n          }\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/schema\"\n          },\n          \"default\": {}\n        },\n        \"discriminator\": {\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"xml\": {\n          \"$ref\": \"#/definitions/xml\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {}\n      },\n      \"additionalProperties\": false\n    },\n    \"fileSchema\": {\n      \"type\": \"object\",\n      \"description\": \"A deterministic version of a JSON Schema object.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"description\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n        },\n        \"default\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"file\"\n          ]\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {}\n      },\n      \"additionalProperties\": false\n    },\n    \"primitivesItems\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"integer\",\n            \"boolean\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"security\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/securityRequirement\"\n      },\n      \"uniqueItems\": true\n    },\n    \"securityRequirement\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"string\"\n        },\n        \"uniqueItems\": true\n      }\n    },\n    \"xml\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"type\": \"string\"\n        },\n        \"prefix\": {\n          \"type\": \"string\"\n        },\n        \"attribute\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"wrapped\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"tag\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"securityDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/basicAuthenticationSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/apiKeySecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2ImplicitSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2PasswordSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2ApplicationSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2AccessCodeSecurity\"\n          }\n        ]\n      }\n    },\n    \"basicAuthenticationSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"basic\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"apiKeySecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"name\",\n        \"in\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"apiKey\"\n          ]\n        },\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"header\",\n            \"query\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2ImplicitSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"authorizationUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"implicit\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"authorizationUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2PasswordSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"password\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2ApplicationSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"application\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2AccessCodeSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"authorizationUrl\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"accessCode\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"authorizationUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2Scopes\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"string\"\n      }\n    },\n    \"mediaTypeList\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/mimeType\"\n      },\n      \"uniqueItems\": true\n    },\n    \"parametersList\": {\n      \"type\": \"array\",\n      \"description\": \"The parameters needed to send a valid API call.\",\n      \"additionalItems\": false,\n      \"items\": {\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/parameter\"\n          },\n          {\n            \"$ref\": \"#/definitions/jsonReference\"\n          }\n        ]\n      },\n      \"uniqueItems\": true\n    },\n    \"schemesList\": {\n      \"type\": \"array\",\n      \"description\": \"The transfer protocol of the API.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"http\",\n          \"https\",\n          \"ws\",\n          \"wss\"\n        ]\n      },\n      \"uniqueItems\": true\n    },\n    \"collectionFormat\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"csv\",\n        \"ssv\",\n        \"tsv\",\n        \"pipes\"\n      ],\n      \"default\": \"csv\"\n    },\n    \"collectionFormatWithMulti\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"csv\",\n        \"ssv\",\n        \"tsv\",\n        \"pipes\",\n        \"multi\"\n      ],\n      \"default\": \"csv\"\n    },\n    \"title\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n    },\n    \"description\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n    },\n    \"default\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n    },\n    \"multipleOf\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n    },\n    \"maximum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n    },\n    \"exclusiveMaximum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n    },\n    \"minimum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n    },\n    \"exclusiveMinimum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n    },\n    \"maxLength\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n    },\n    \"minLength\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n    },\n    \"pattern\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n    },\n    \"maxItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n    },\n    \"minItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n    },\n    \"uniqueItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n    },\n    \"enum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n    },\n    \"jsonReference\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"$ref\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage openapi_v3\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic/compiler\"\n)\n\n// Version returns the package name (and OpenAPI version).\nfunc Version() string {\n\treturn \"openapi_v3\"\n}\n\n// NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.\nfunc NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {\n\terrors := make([]error, 0)\n\tx := &AdditionalPropertiesItem{}\n\tmatched := false\n\t// SchemaOrReference schema_or_reference = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchemaOrReference(m, compiler.NewContext(\"schemaOrReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AdditionalPropertiesItem_SchemaOrReference{SchemaOrReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// bool boolean = 2;\n\tboolValue, ok := compiler.BoolForScalarNode(in)\n\tif ok {\n\t\tx.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}\n\t\tmatched = true\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AdditionalPropertiesItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAny creates an object of type Any if possible, returning an error if not.\nfunc NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {\n\terrors := make([]error, 0)\n\tx := &Any{}\n\tbytes := compiler.Marshal(in)\n\tx.Yaml = string(bytes)\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAnyOrExpression creates an object of type AnyOrExpression if possible, returning an error if not.\nfunc NewAnyOrExpression(in *yaml.Node, context *compiler.Context) (*AnyOrExpression, error) {\n\terrors := make([]error, 0)\n\tx := &AnyOrExpression{}\n\tmatched := false\n\t// Any any = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewAny(m, compiler.NewContext(\"any\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AnyOrExpression_Any{Any: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Expression expression = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewExpression(m, compiler.NewContext(\"expression\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AnyOrExpression_Expression{Expression: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AnyOrExpression\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallback creates an object of type Callback if possible, returning an error if not.\nfunc NewCallback(in *yaml.Node, context *compiler.Context) (*Callback, error) {\n\terrors := make([]error, 0)\n\tx := &Callback{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedPathItem path = 1;\n\t\t// MAP: PathItem ^\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif true {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallbackOrReference creates an object of type CallbackOrReference if possible, returning an error if not.\nfunc NewCallbackOrReference(in *yaml.Node, context *compiler.Context) (*CallbackOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &CallbackOrReference{}\n\tmatched := false\n\t// Callback callback = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewCallback(m, compiler.NewContext(\"callback\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &CallbackOrReference_Callback{Callback: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &CallbackOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid CallbackOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallbacksOrReferences creates an object of type CallbacksOrReferences if possible, returning an error if not.\nfunc NewCallbacksOrReferences(in *yaml.Node, context *compiler.Context) (*CallbacksOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &CallbacksOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedCallbackOrReference additional_properties = 1;\n\t\t// MAP: CallbackOrReference\n\t\tx.AdditionalProperties = make([]*NamedCallbackOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedCallbackOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewCallbackOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewComponents creates an object of type Components if possible, returning an error if not.\nfunc NewComponents(in *yaml.Node, context *compiler.Context) (*Components, error) {\n\terrors := make([]error, 0)\n\tx := &Components{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"callbacks\", \"examples\", \"headers\", \"links\", \"parameters\", \"requestBodies\", \"responses\", \"schemas\", \"securitySchemes\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// SchemasOrReferences schemas = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"schemas\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Schemas, err = NewSchemasOrReferences(v1, compiler.NewContext(\"schemas\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ResponsesOrReferences responses = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponsesOrReferences(v2, compiler.NewContext(\"responses\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ParametersOrReferences parameters = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewParametersOrReferences(v3, compiler.NewContext(\"parameters\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v4, compiler.NewContext(\"examples\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// RequestBodiesOrReferences request_bodies = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"requestBodies\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBodies, err = NewRequestBodiesOrReferences(v5, compiler.NewContext(\"requestBodies\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v6, compiler.NewContext(\"headers\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// SecuritySchemesOrReferences security_schemes = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"securitySchemes\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.SecuritySchemes, err = NewSecuritySchemesOrReferences(v7, compiler.NewContext(\"securitySchemes\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// LinksOrReferences links = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"links\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Links, err = NewLinksOrReferences(v8, compiler.NewContext(\"links\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// CallbacksOrReferences callbacks = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"callbacks\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext(\"callbacks\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewContact creates an object of type Contact if possible, returning an error if not.\nfunc NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {\n\terrors := make([]error, 0)\n\tx := &Contact{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"email\", \"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string email = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"email\")\n\t\tif v3 != nil {\n\t\t\tx.Email, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for email: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefaultType creates an object of type DefaultType if possible, returning an error if not.\nfunc NewDefaultType(in *yaml.Node, context *compiler.Context) (*DefaultType, error) {\n\terrors := make([]error, 0)\n\tx := &DefaultType{}\n\tmatched := false\n\tswitch in.Tag {\n\tcase \"!!bool\":\n\t\tvar v bool\n\t\tv, matched = compiler.BoolForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Boolean{Boolean: v}\n\tcase \"!!str\":\n\t\tvar v string\n\t\tv, matched = compiler.StringForScalarNode(in)\n\t\tx.Oneof = &DefaultType_String_{String_: v}\n\tcase \"!!float\":\n\t\tvar v float64\n\t\tv, matched = compiler.FloatForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Number{Number: v}\n\tcase \"!!int\":\n\t\tvar v int64\n\t\tv, matched = compiler.IntForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Number{Number: float64(v)}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDiscriminator creates an object of type Discriminator if possible, returning an error if not.\nfunc NewDiscriminator(in *yaml.Node, context *compiler.Context) (*Discriminator, error) {\n\terrors := make([]error, 0)\n\tx := &Discriminator{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"propertyName\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"mapping\", \"propertyName\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string property_name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"propertyName\")\n\t\tif v1 != nil {\n\t\t\tx.PropertyName, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for propertyName: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Strings mapping = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"mapping\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Mapping, err = NewStrings(v2, compiler.NewContext(\"mapping\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDocument creates an object of type Document if possible, returning an error if not.\nfunc NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {\n\terrors := make([]error, 0)\n\tx := &Document{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"info\", \"openapi\", \"paths\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"components\", \"externalDocs\", \"info\", \"openapi\", \"paths\", \"security\", \"servers\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string openapi = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"openapi\")\n\t\tif v1 != nil {\n\t\t\tx.Openapi, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for openapi: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Info info = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"info\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Info, err = NewInfo(v2, compiler.NewContext(\"info\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v3 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v3)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Paths paths = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"paths\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Paths, err = NewPaths(v4, compiler.NewContext(\"paths\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Components components = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"components\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Components, err = NewComponents(v5, compiler.NewContext(\"components\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"security\")\n\t\tif v6 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated Tag tags = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v7 != nil {\n\t\t\t// repeated Tag\n\t\t\tx.Tags = make([]*Tag, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewTag(item, compiler.NewContext(\"tags\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Tags = append(x.Tags, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext(\"externalDocs\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 9;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewEncoding creates an object of type Encoding if possible, returning an error if not.\nfunc NewEncoding(in *yaml.Node, context *compiler.Context) (*Encoding, error) {\n\terrors := make([]error, 0)\n\tx := &Encoding{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowReserved\", \"contentType\", \"explode\", \"headers\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string content_type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"contentType\")\n\t\tif v1 != nil {\n\t\t\tx.ContentType, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for contentType: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext(\"headers\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string style = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"style\")\n\t\tif v3 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v4 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v5 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewEncodings creates an object of type Encodings if possible, returning an error if not.\nfunc NewEncodings(in *yaml.Node, context *compiler.Context) (*Encodings, error) {\n\terrors := make([]error, 0)\n\tx := &Encodings{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedEncoding additional_properties = 1;\n\t\t// MAP: Encoding\n\t\tx.AdditionalProperties = make([]*NamedEncoding, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedEncoding{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewEncoding(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExample creates an object of type Example if possible, returning an error if not.\nfunc NewExample(in *yaml.Node, context *compiler.Context) (*Example, error) {\n\terrors := make([]error, 0)\n\tx := &Example{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"description\", \"externalValue\", \"summary\", \"value\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string summary = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v1 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"value\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v3, compiler.NewContext(\"value\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string external_value = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalValue\")\n\t\tif v4 != nil {\n\t\t\tx.ExternalValue, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for externalValue: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExampleOrReference creates an object of type ExampleOrReference if possible, returning an error if not.\nfunc NewExampleOrReference(in *yaml.Node, context *compiler.Context) (*ExampleOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ExampleOrReference{}\n\tmatched := false\n\t// Example example = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewExample(m, compiler.NewContext(\"example\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ExampleOrReference_Example{Example: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ExampleOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ExampleOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExamplesOrReferences creates an object of type ExamplesOrReferences if possible, returning an error if not.\nfunc NewExamplesOrReferences(in *yaml.Node, context *compiler.Context) (*ExamplesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ExamplesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedExampleOrReference additional_properties = 1;\n\t\t// MAP: ExampleOrReference\n\t\tx.AdditionalProperties = make([]*NamedExampleOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedExampleOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewExampleOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExpression creates an object of type Expression if possible, returning an error if not.\nfunc NewExpression(in *yaml.Node, context *compiler.Context) (*Expression, error) {\n\terrors := make([]error, 0)\n\tx := &Expression{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.\nfunc NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {\n\terrors := make([]error, 0)\n\tx := &ExternalDocs{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeader creates an object of type Header if possible, returning an error if not.\nfunc NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {\n\terrors := make([]error, 0)\n\tx := &Header{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"allowReserved\", \"content\", \"deprecated\", \"description\", \"example\", \"examples\", \"explode\", \"required\", \"schema\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"required\")\n\t\tif v2 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v3 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v4 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string style = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"style\")\n\t\tif v5 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v6 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v7 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference schema = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v8, compiler.NewContext(\"schema\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"example\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v9, compiler.NewContext(\"example\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v10, compiler.NewContext(\"examples\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"content\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v11, compiler.NewContext(\"content\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 12;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaderOrReference creates an object of type HeaderOrReference if possible, returning an error if not.\nfunc NewHeaderOrReference(in *yaml.Node, context *compiler.Context) (*HeaderOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &HeaderOrReference{}\n\tmatched := false\n\t// Header header = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewHeader(m, compiler.NewContext(\"header\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &HeaderOrReference_Header{Header: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &HeaderOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid HeaderOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeadersOrReferences creates an object of type HeadersOrReferences if possible, returning an error if not.\nfunc NewHeadersOrReferences(in *yaml.Node, context *compiler.Context) (*HeadersOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &HeadersOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedHeaderOrReference additional_properties = 1;\n\t\t// MAP: HeaderOrReference\n\t\tx.AdditionalProperties = make([]*NamedHeaderOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedHeaderOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewHeaderOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewInfo creates an object of type Info if possible, returning an error if not.\nfunc NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {\n\terrors := make([]error, 0)\n\tx := &Info{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"title\", \"version\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"contact\", \"description\", \"license\", \"summary\", \"termsOfService\", \"title\", \"version\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string title = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"title\")\n\t\tif v1 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string terms_of_service = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"termsOfService\")\n\t\tif v3 != nil {\n\t\t\tx.TermsOfService, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for termsOfService: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Contact contact = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"contact\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Contact, err = NewContact(v4, compiler.NewContext(\"contact\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// License license = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"license\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.License, err = NewLicense(v5, compiler.NewContext(\"license\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string version = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"version\")\n\t\tif v6 != nil {\n\t\t\tx.Version, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for version: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v7 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 8;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.\nfunc NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {\n\terrors := make([]error, 0)\n\tx := &ItemsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value for item array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tx.SchemaOrReference = make([]*SchemaOrReference, 0)\n\t\ty, err := NewSchemaOrReference(m, compiler.NewContext(\"<array>\", m, context))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.SchemaOrReference = append(x.SchemaOrReference, y)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLicense creates an object of type License if possible, returning an error if not.\nfunc NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {\n\terrors := make([]error, 0)\n\tx := &License{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLink creates an object of type Link if possible, returning an error if not.\nfunc NewLink(in *yaml.Node, context *compiler.Context) (*Link, error) {\n\terrors := make([]error, 0)\n\tx := &Link{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"description\", \"operationId\", \"operationRef\", \"parameters\", \"requestBody\", \"server\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string operation_ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"operationRef\")\n\t\tif v1 != nil {\n\t\t\tx.OperationRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationRef: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v2 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// AnyOrExpression parameters = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewAnyOrExpression(v3, compiler.NewContext(\"parameters\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// AnyOrExpression request_body = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"requestBody\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBody, err = NewAnyOrExpression(v4, compiler.NewContext(\"requestBody\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Server server = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"server\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Server, err = NewServer(v6, compiler.NewContext(\"server\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLinkOrReference creates an object of type LinkOrReference if possible, returning an error if not.\nfunc NewLinkOrReference(in *yaml.Node, context *compiler.Context) (*LinkOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &LinkOrReference{}\n\tmatched := false\n\t// Link link = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewLink(m, compiler.NewContext(\"link\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &LinkOrReference_Link{Link: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &LinkOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid LinkOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLinksOrReferences creates an object of type LinksOrReferences if possible, returning an error if not.\nfunc NewLinksOrReferences(in *yaml.Node, context *compiler.Context) (*LinksOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &LinksOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedLinkOrReference additional_properties = 1;\n\t\t// MAP: LinkOrReference\n\t\tx.AdditionalProperties = make([]*NamedLinkOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedLinkOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewLinkOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewMediaType creates an object of type MediaType if possible, returning an error if not.\nfunc NewMediaType(in *yaml.Node, context *compiler.Context) (*MediaType, error) {\n\terrors := make([]error, 0)\n\tx := &MediaType{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"encoding\", \"example\", \"examples\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// SchemaOrReference schema = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v1, compiler.NewContext(\"schema\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"example\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v2, compiler.NewContext(\"example\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v3, compiler.NewContext(\"examples\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Encodings encoding = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"encoding\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Encoding, err = NewEncodings(v4, compiler.NewContext(\"encoding\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewMediaTypes creates an object of type MediaTypes if possible, returning an error if not.\nfunc NewMediaTypes(in *yaml.Node, context *compiler.Context) (*MediaTypes, error) {\n\terrors := make([]error, 0)\n\tx := &MediaTypes{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedMediaType additional_properties = 1;\n\t\t// MAP: MediaType\n\t\tx.AdditionalProperties = make([]*NamedMediaType, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedMediaType{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewMediaType(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedAny creates an object of type NamedAny if possible, returning an error if not.\nfunc NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {\n\terrors := make([]error, 0)\n\tx := &NamedAny{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedCallbackOrReference creates an object of type NamedCallbackOrReference if possible, returning an error if not.\nfunc NewNamedCallbackOrReference(in *yaml.Node, context *compiler.Context) (*NamedCallbackOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedCallbackOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// CallbackOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewCallbackOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedEncoding creates an object of type NamedEncoding if possible, returning an error if not.\nfunc NewNamedEncoding(in *yaml.Node, context *compiler.Context) (*NamedEncoding, error) {\n\terrors := make([]error, 0)\n\tx := &NamedEncoding{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Encoding value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewEncoding(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedExampleOrReference creates an object of type NamedExampleOrReference if possible, returning an error if not.\nfunc NewNamedExampleOrReference(in *yaml.Node, context *compiler.Context) (*NamedExampleOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedExampleOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExampleOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewExampleOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedHeaderOrReference creates an object of type NamedHeaderOrReference if possible, returning an error if not.\nfunc NewNamedHeaderOrReference(in *yaml.Node, context *compiler.Context) (*NamedHeaderOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedHeaderOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeaderOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewHeaderOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedLinkOrReference creates an object of type NamedLinkOrReference if possible, returning an error if not.\nfunc NewNamedLinkOrReference(in *yaml.Node, context *compiler.Context) (*NamedLinkOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedLinkOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// LinkOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewLinkOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedMediaType creates an object of type NamedMediaType if possible, returning an error if not.\nfunc NewNamedMediaType(in *yaml.Node, context *compiler.Context) (*NamedMediaType, error) {\n\terrors := make([]error, 0)\n\tx := &NamedMediaType{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// MediaType value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewMediaType(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedParameterOrReference creates an object of type NamedParameterOrReference if possible, returning an error if not.\nfunc NewNamedParameterOrReference(in *yaml.Node, context *compiler.Context) (*NamedParameterOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedParameterOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ParameterOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewParameterOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.\nfunc NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedPathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PathItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewPathItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedRequestBodyOrReference creates an object of type NamedRequestBodyOrReference if possible, returning an error if not.\nfunc NewNamedRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*NamedRequestBodyOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedRequestBodyOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// RequestBodyOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewRequestBodyOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponseOrReference creates an object of type NamedResponseOrReference if possible, returning an error if not.\nfunc NewNamedResponseOrReference(in *yaml.Node, context *compiler.Context) (*NamedResponseOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponseOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ResponseOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponseOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSchemaOrReference creates an object of type NamedSchemaOrReference if possible, returning an error if not.\nfunc NewNamedSchemaOrReference(in *yaml.Node, context *compiler.Context) (*NamedSchemaOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSchemaOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSchemaOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSecuritySchemeOrReference creates an object of type NamedSecuritySchemeOrReference if possible, returning an error if not.\nfunc NewNamedSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*NamedSecuritySchemeOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSecuritySchemeOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SecuritySchemeOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSecuritySchemeOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedServerVariable creates an object of type NamedServerVariable if possible, returning an error if not.\nfunc NewNamedServerVariable(in *yaml.Node, context *compiler.Context) (*NamedServerVariable, error) {\n\terrors := make([]error, 0)\n\tx := &NamedServerVariable{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ServerVariable value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewServerVariable(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedString creates an object of type NamedString if possible, returning an error if not.\nfunc NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {\n\terrors := make([]error, 0)\n\tx := &NamedString{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tx.Value, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for value: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.\nfunc NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {\n\terrors := make([]error, 0)\n\tx := &NamedStringArray{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// StringArray value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewStringArray(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauthFlow creates an object of type OauthFlow if possible, returning an error if not.\nfunc NewOauthFlow(in *yaml.Node, context *compiler.Context) (*OauthFlow, error) {\n\terrors := make([]error, 0)\n\tx := &OauthFlow{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"authorizationUrl\", \"refreshUrl\", \"scopes\", \"tokenUrl\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string authorization_url = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v1 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string token_url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v2 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string refresh_url = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"refreshUrl\")\n\t\tif v3 != nil {\n\t\t\tx.RefreshUrl, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for refreshUrl: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Strings scopes = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewStrings(v4, compiler.NewContext(\"scopes\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauthFlows creates an object of type OauthFlows if possible, returning an error if not.\nfunc NewOauthFlows(in *yaml.Node, context *compiler.Context) (*OauthFlows, error) {\n\terrors := make([]error, 0)\n\tx := &OauthFlows{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"authorizationCode\", \"clientCredentials\", \"implicit\", \"password\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// OauthFlow implicit = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"implicit\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Implicit, err = NewOauthFlow(v1, compiler.NewContext(\"implicit\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow password = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"password\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Password, err = NewOauthFlow(v2, compiler.NewContext(\"password\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow client_credentials = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"clientCredentials\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ClientCredentials, err = NewOauthFlow(v3, compiler.NewContext(\"clientCredentials\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow authorization_code = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationCode\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.AuthorizationCode, err = NewOauthFlow(v4, compiler.NewContext(\"authorizationCode\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewObject creates an object of type Object if possible, returning an error if not.\nfunc NewObject(in *yaml.Node, context *compiler.Context) (*Object, error) {\n\terrors := make([]error, 0)\n\tx := &Object{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOperation creates an object of type Operation if possible, returning an error if not.\nfunc NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {\n\terrors := make([]error, 0)\n\tx := &Operation{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"responses\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"callbacks\", \"deprecated\", \"description\", \"externalDocs\", \"operationId\", \"parameters\", \"requestBody\", \"responses\", \"security\", \"servers\", \"summary\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string tags = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Tags = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tags: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext(\"externalDocs\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v5 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated ParameterOrReference parameters = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v6 != nil {\n\t\t\t// repeated ParameterOrReference\n\t\t\tx.Parameters = make([]*ParameterOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParameterOrReference(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// RequestBodyOrReference request_body = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"requestBody\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBody, err = NewRequestBodyOrReference(v7, compiler.NewContext(\"requestBody\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Responses responses = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponses(v8, compiler.NewContext(\"responses\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// CallbacksOrReferences callbacks = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"callbacks\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext(\"callbacks\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v10 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v10)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"security\")\n\t\tif v11 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v11)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v12 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 13;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameter creates an object of type Parameter if possible, returning an error if not.\nfunc NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {\n\terrors := make([]error, 0)\n\tx := &Parameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"allowReserved\", \"content\", \"deprecated\", \"description\", \"example\", \"examples\", \"explode\", \"in\", \"name\", \"required\", \"schema\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"required\")\n\t\tif v4 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v5 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v6 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string style = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"style\")\n\t\tif v7 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v8 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v9 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference schema = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v10, compiler.NewContext(\"schema\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"example\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v11, compiler.NewContext(\"example\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v12 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v12, compiler.NewContext(\"examples\", v12, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"content\")\n\t\tif v13 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v13, compiler.NewContext(\"content\", v13, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 14;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameterOrReference creates an object of type ParameterOrReference if possible, returning an error if not.\nfunc NewParameterOrReference(in *yaml.Node, context *compiler.Context) (*ParameterOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ParameterOrReference{}\n\tmatched := false\n\t// Parameter parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewParameter(m, compiler.NewContext(\"parameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParameterOrReference_Parameter{Parameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParameterOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ParameterOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParametersOrReferences creates an object of type ParametersOrReferences if possible, returning an error if not.\nfunc NewParametersOrReferences(in *yaml.Node, context *compiler.Context) (*ParametersOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ParametersOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedParameterOrReference additional_properties = 1;\n\t\t// MAP: ParameterOrReference\n\t\tx.AdditionalProperties = make([]*NamedParameterOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedParameterOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewParameterOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathItem creates an object of type PathItem if possible, returning an error if not.\nfunc NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {\n\terrors := make([]error, 0)\n\tx := &PathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"delete\", \"description\", \"get\", \"head\", \"options\", \"parameters\", \"patch\", \"post\", \"put\", \"servers\", \"summary\", \"trace\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Operation get = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"get\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Get, err = NewOperation(v4, compiler.NewContext(\"get\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation put = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"put\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Put, err = NewOperation(v5, compiler.NewContext(\"put\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation post = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"post\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Post, err = NewOperation(v6, compiler.NewContext(\"post\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation delete = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"delete\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Delete, err = NewOperation(v7, compiler.NewContext(\"delete\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation options = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"options\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Options, err = NewOperation(v8, compiler.NewContext(\"options\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation head = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"head\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Head, err = NewOperation(v9, compiler.NewContext(\"head\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation patch = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"patch\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Patch, err = NewOperation(v10, compiler.NewContext(\"patch\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation trace = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"trace\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Trace, err = NewOperation(v11, compiler.NewContext(\"trace\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v12 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated ParameterOrReference parameters = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v13 != nil {\n\t\t\t// repeated ParameterOrReference\n\t\t\tx.Parameters = make([]*ParameterOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v13)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParameterOrReference(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 14;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPaths creates an object of type Paths if possible, returning an error if not.\nfunc NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {\n\terrors := make([]error, 0)\n\tx := &Paths{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern2, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedPathItem path = 1;\n\t\t// MAP: PathItem ^/\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewProperties creates an object of type Properties if possible, returning an error if not.\nfunc NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {\n\terrors := make([]error, 0)\n\tx := &Properties{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchemaOrReference additional_properties = 1;\n\t\t// MAP: SchemaOrReference\n\t\tx.AdditionalProperties = make([]*NamedSchemaOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchemaOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewReference creates an object of type Reference if possible, returning an error if not.\nfunc NewReference(in *yaml.Node, context *compiler.Context) (*Reference, error) {\n\terrors := make([]error, 0)\n\tx := &Reference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"$ref\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBodiesOrReferences creates an object of type RequestBodiesOrReferences if possible, returning an error if not.\nfunc NewRequestBodiesOrReferences(in *yaml.Node, context *compiler.Context) (*RequestBodiesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBodiesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedRequestBodyOrReference additional_properties = 1;\n\t\t// MAP: RequestBodyOrReference\n\t\tx.AdditionalProperties = make([]*NamedRequestBodyOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedRequestBodyOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewRequestBodyOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBody creates an object of type RequestBody if possible, returning an error if not.\nfunc NewRequestBody(in *yaml.Node, context *compiler.Context) (*RequestBody, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBody{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"content\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"content\", \"description\", \"required\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"content\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v2, compiler.NewContext(\"content\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool required = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"required\")\n\t\tif v3 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBodyOrReference creates an object of type RequestBodyOrReference if possible, returning an error if not.\nfunc NewRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*RequestBodyOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBodyOrReference{}\n\tmatched := false\n\t// RequestBody request_body = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewRequestBody(m, compiler.NewContext(\"requestBody\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &RequestBodyOrReference_RequestBody{RequestBody: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &RequestBodyOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid RequestBodyOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponse creates an object of type Response if possible, returning an error if not.\nfunc NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {\n\terrors := make([]error, 0)\n\tx := &Response{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"description\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"content\", \"description\", \"headers\", \"links\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext(\"headers\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"content\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v3, compiler.NewContext(\"content\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// LinksOrReferences links = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"links\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Links, err = NewLinksOrReferences(v4, compiler.NewContext(\"links\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseOrReference creates an object of type ResponseOrReference if possible, returning an error if not.\nfunc NewResponseOrReference(in *yaml.Node, context *compiler.Context) (*ResponseOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseOrReference{}\n\tmatched := false\n\t// Response response = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewResponse(m, compiler.NewContext(\"response\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseOrReference_Response{Response: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ResponseOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponses creates an object of type Responses if possible, returning an error if not.\nfunc NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {\n\terrors := make([]error, 0)\n\tx := &Responses{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"default\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern3, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// ResponseOrReference default = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"default\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewResponseOrReference(v1, compiler.NewContext(\"default\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedResponseOrReference response_or_reference = 2;\n\t\t// MAP: ResponseOrReference ^([0-9X]{3})$\n\t\tx.ResponseOrReference = make([]*NamedResponseOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif pattern3.MatchString(k) {\n\t\t\t\t\tpair := &NamedResponseOrReference{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.ResponseOrReference = append(x.ResponseOrReference, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponsesOrReferences creates an object of type ResponsesOrReferences if possible, returning an error if not.\nfunc NewResponsesOrReferences(in *yaml.Node, context *compiler.Context) (*ResponsesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ResponsesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedResponseOrReference additional_properties = 1;\n\t\t// MAP: ResponseOrReference\n\t\tx.AdditionalProperties = make([]*NamedResponseOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedResponseOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchema creates an object of type Schema if possible, returning an error if not.\nfunc NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {\n\terrors := make([]error, 0)\n\tx := &Schema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"additionalProperties\", \"allOf\", \"anyOf\", \"default\", \"deprecated\", \"description\", \"discriminator\", \"enum\", \"example\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"externalDocs\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maxProperties\", \"maximum\", \"minItems\", \"minLength\", \"minProperties\", \"minimum\", \"multipleOf\", \"not\", \"nullable\", \"oneOf\", \"pattern\", \"properties\", \"readOnly\", \"required\", \"title\", \"type\", \"uniqueItems\", \"writeOnly\", \"xml\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool nullable = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"nullable\")\n\t\tif v1 != nil {\n\t\t\tx.Nullable, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for nullable: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Discriminator discriminator = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"discriminator\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Discriminator, err = NewDiscriminator(v2, compiler.NewContext(\"discriminator\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v3 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool write_only = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"writeOnly\")\n\t\tif v4 != nil {\n\t\t\tx.WriteOnly, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for writeOnly: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Xml xml = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"xml\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Xml, err = NewXml(v5, compiler.NewContext(\"xml\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v6, compiler.NewContext(\"externalDocs\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"example\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v7, compiler.NewContext(\"example\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v8 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"title\")\n\t\tif v9 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_properties = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"maxProperties\")\n\t\tif v21 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MaxProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxProperties: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_properties = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"minProperties\")\n\t\tif v22 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MinProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minProperties: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 23;\n\t\tv23 := compiler.MapValueForKey(m, \"required\")\n\t\tif v23 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v23)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v23))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 24;\n\t\tv24 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v24 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v24)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// string type = 25;\n\t\tv25 := compiler.MapValueForKey(m, \"type\")\n\t\tif v25 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v25)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v25))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference all_of = 26;\n\t\tv26 := compiler.MapValueForKey(m, \"allOf\")\n\t\tif v26 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.AllOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v26)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"allOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AllOf = append(x.AllOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference one_of = 27;\n\t\tv27 := compiler.MapValueForKey(m, \"oneOf\")\n\t\tif v27 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.OneOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v27)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"oneOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.OneOf = append(x.OneOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference any_of = 28;\n\t\tv28 := compiler.MapValueForKey(m, \"anyOf\")\n\t\tif v28 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.AnyOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v28)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"anyOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AnyOf = append(x.AnyOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Schema not = 29;\n\t\tv29 := compiler.MapValueForKey(m, \"not\")\n\t\tif v29 != nil {\n\t\t\tvar err error\n\t\t\tx.Not, err = NewSchema(v29, compiler.NewContext(\"not\", v29, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ItemsItem items = 30;\n\t\tv30 := compiler.MapValueForKey(m, \"items\")\n\t\tif v30 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewItemsItem(v30, compiler.NewContext(\"items\", v30, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Properties properties = 31;\n\t\tv31 := compiler.MapValueForKey(m, \"properties\")\n\t\tif v31 != nil {\n\t\t\tvar err error\n\t\t\tx.Properties, err = NewProperties(v31, compiler.NewContext(\"properties\", v31, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// AdditionalPropertiesItem additional_properties = 32;\n\t\tv32 := compiler.MapValueForKey(m, \"additionalProperties\")\n\t\tif v32 != nil {\n\t\t\tvar err error\n\t\t\tx.AdditionalProperties, err = NewAdditionalPropertiesItem(v32, compiler.NewContext(\"additionalProperties\", v32, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// DefaultType default = 33;\n\t\tv33 := compiler.MapValueForKey(m, \"default\")\n\t\tif v33 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewDefaultType(v33, compiler.NewContext(\"default\", v33, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string description = 34;\n\t\tv34 := compiler.MapValueForKey(m, \"description\")\n\t\tif v34 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v34)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v34))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 35;\n\t\tv35 := compiler.MapValueForKey(m, \"format\")\n\t\tif v35 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v35)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v35))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 36;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemaOrReference creates an object of type SchemaOrReference if possible, returning an error if not.\nfunc NewSchemaOrReference(in *yaml.Node, context *compiler.Context) (*SchemaOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &SchemaOrReference{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaOrReference_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SchemaOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemasOrReferences creates an object of type SchemasOrReferences if possible, returning an error if not.\nfunc NewSchemasOrReferences(in *yaml.Node, context *compiler.Context) (*SchemasOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &SchemasOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchemaOrReference additional_properties = 1;\n\t\t// MAP: SchemaOrReference\n\t\tx.AdditionalProperties = make([]*NamedSchemaOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchemaOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.\nfunc NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityRequirement{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedStringArray additional_properties = 1;\n\t\t// MAP: StringArray\n\t\tx.AdditionalProperties = make([]*NamedStringArray, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedStringArray{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityScheme creates an object of type SecurityScheme if possible, returning an error if not.\nfunc NewSecurityScheme(in *yaml.Node, context *compiler.Context) (*SecurityScheme, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityScheme{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"bearerFormat\", \"description\", \"flows\", \"in\", \"name\", \"openIdConnectUrl\", \"scheme\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"name\")\n\t\tif v3 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"in\")\n\t\tif v4 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string scheme = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"scheme\")\n\t\tif v5 != nil {\n\t\t\tx.Scheme, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for scheme: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string bearer_format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"bearerFormat\")\n\t\tif v6 != nil {\n\t\t\tx.BearerFormat, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for bearerFormat: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// OauthFlows flows = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"flows\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Flows, err = NewOauthFlows(v7, compiler.NewContext(\"flows\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string open_id_connect_url = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"openIdConnectUrl\")\n\t\tif v8 != nil {\n\t\t\tx.OpenIdConnectUrl, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for openIdConnectUrl: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 9;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecuritySchemeOrReference creates an object of type SecuritySchemeOrReference if possible, returning an error if not.\nfunc NewSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*SecuritySchemeOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &SecuritySchemeOrReference{}\n\tmatched := false\n\t// SecurityScheme security_scheme = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSecurityScheme(m, compiler.NewContext(\"securityScheme\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecuritySchemeOrReference_SecurityScheme{SecurityScheme: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecuritySchemeOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SecuritySchemeOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecuritySchemesOrReferences creates an object of type SecuritySchemesOrReferences if possible, returning an error if not.\nfunc NewSecuritySchemesOrReferences(in *yaml.Node, context *compiler.Context) (*SecuritySchemesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &SecuritySchemesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSecuritySchemeOrReference additional_properties = 1;\n\t\t// MAP: SecuritySchemeOrReference\n\t\tx.AdditionalProperties = make([]*NamedSecuritySchemeOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSecuritySchemeOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSecuritySchemeOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServer creates an object of type Server if possible, returning an error if not.\nfunc NewServer(in *yaml.Node, context *compiler.Context) (*Server, error) {\n\terrors := make([]error, 0)\n\tx := &Server{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\", \"variables\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string url = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"url\")\n\t\tif v1 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ServerVariables variables = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"variables\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Variables, err = NewServerVariables(v3, compiler.NewContext(\"variables\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServerVariable creates an object of type ServerVariable if possible, returning an error if not.\nfunc NewServerVariable(in *yaml.Node, context *compiler.Context) (*ServerVariable, error) {\n\terrors := make([]error, 0)\n\tx := &ServerVariable{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"default\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"default\", \"description\", \"enum\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string enum = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Enum = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for enum: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string default = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"default\")\n\t\tif v2 != nil {\n\t\t\tx.Default, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for default: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServerVariables creates an object of type ServerVariables if possible, returning an error if not.\nfunc NewServerVariables(in *yaml.Node, context *compiler.Context) (*ServerVariables, error) {\n\terrors := make([]error, 0)\n\tx := &ServerVariables{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedServerVariable additional_properties = 1;\n\t\t// MAP: ServerVariable\n\t\tx.AdditionalProperties = make([]*NamedServerVariable, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedServerVariable{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewServerVariable(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSpecificationExtension creates an object of type SpecificationExtension if possible, returning an error if not.\nfunc NewSpecificationExtension(in *yaml.Node, context *compiler.Context) (*SpecificationExtension, error) {\n\terrors := make([]error, 0)\n\tx := &SpecificationExtension{}\n\tmatched := false\n\tswitch in.Tag {\n\tcase \"!!bool\":\n\t\tvar v bool\n\t\tv, matched = compiler.BoolForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Boolean{Boolean: v}\n\tcase \"!!str\":\n\t\tvar v string\n\t\tv, matched = compiler.StringForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_String_{String_: v}\n\tcase \"!!float\":\n\t\tvar v float64\n\t\tv, matched = compiler.FloatForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Number{Number: v}\n\tcase \"!!int\":\n\t\tvar v int64\n\t\tv, matched = compiler.IntForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Number{Number: float64(v)}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStringArray creates an object of type StringArray if possible, returning an error if not.\nfunc NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {\n\terrors := make([]error, 0)\n\tx := &StringArray{}\n\tx.Value = make([]string, 0)\n\tfor _, node := range in.Content {\n\t\ts, _ := compiler.StringForScalarNode(node)\n\t\tx.Value = append(x.Value, s)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStrings creates an object of type Strings if possible, returning an error if not.\nfunc NewStrings(in *yaml.Node, context *compiler.Context) (*Strings, error) {\n\terrors := make([]error, 0)\n\tx := &Strings{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedString additional_properties = 1;\n\t\t// MAP: string\n\t\tx.AdditionalProperties = make([]*NamedString, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedString{}\n\t\t\t\tpair.Name = k\n\t\t\t\tpair.Value, _ = compiler.StringForScalarNode(v)\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTag creates an object of type Tag if possible, returning an error if not.\nfunc NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {\n\terrors := make([]error, 0)\n\tx := &Tag{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"externalDocs\", \"name\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext(\"externalDocs\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewXml creates an object of type Xml if possible, returning an error if not.\nfunc NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {\n\terrors := make([]error, 0)\n\tx := &Xml{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"attribute\", \"name\", \"namespace\", \"prefix\", \"wrapped\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string namespace = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"namespace\")\n\t\tif v2 != nil {\n\t\t\tx.Namespace, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for namespace: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string prefix = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"prefix\")\n\t\tif v3 != nil {\n\t\t\tx.Prefix, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for prefix: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool attribute = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"attribute\")\n\t\tif v4 != nil {\n\t\t\tx.Attribute, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for attribute: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool wrapped = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"wrapped\")\n\t\tif v5 != nil {\n\t\t\tx.Wrapped, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for wrapped: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AdditionalPropertiesItem objects.\nfunc (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AdditionalPropertiesItem_SchemaOrReference)\n\t\tif ok {\n\t\t\t_, err := p.SchemaOrReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Any objects.\nfunc (m *Any) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AnyOrExpression objects.\nfunc (m *AnyOrExpression) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AnyOrExpression_Any)\n\t\tif ok {\n\t\t\t_, err := p.Any.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*AnyOrExpression_Expression)\n\t\tif ok {\n\t\t\t_, err := p.Expression.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Callback objects.\nfunc (m *Callback) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside CallbackOrReference objects.\nfunc (m *CallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*CallbackOrReference_Callback)\n\t\tif ok {\n\t\t\t_, err := p.Callback.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*CallbackOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside CallbacksOrReferences objects.\nfunc (m *CallbacksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Components objects.\nfunc (m *Components) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schemas != nil {\n\t\t_, err := m.Schemas.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.RequestBodies != nil {\n\t\t_, err := m.RequestBodies.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.SecuritySchemes != nil {\n\t\t_, err := m.SecuritySchemes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Links != nil {\n\t\t_, err := m.Links.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Callbacks != nil {\n\t\t_, err := m.Callbacks.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Contact objects.\nfunc (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside DefaultType objects.\nfunc (m *DefaultType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Discriminator objects.\nfunc (m *Discriminator) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Mapping != nil {\n\t\t_, err := m.Mapping.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Document objects.\nfunc (m *Document) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Info != nil {\n\t\t_, err := m.Info.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Paths != nil {\n\t\t_, err := m.Paths.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Components != nil {\n\t\t_, err := m.Components.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Tags {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Encoding objects.\nfunc (m *Encoding) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Encodings objects.\nfunc (m *Encodings) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Example objects.\nfunc (m *Example) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExampleOrReference objects.\nfunc (m *ExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ExampleOrReference_Example)\n\t\tif ok {\n\t\t\t_, err := p.Example.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ExampleOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExamplesOrReferences objects.\nfunc (m *ExamplesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Expression objects.\nfunc (m *Expression) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExternalDocs objects.\nfunc (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Header objects.\nfunc (m *Header) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeaderOrReference objects.\nfunc (m *HeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*HeaderOrReference_Header)\n\t\tif ok {\n\t\t\t_, err := p.Header.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*HeaderOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeadersOrReferences objects.\nfunc (m *HeadersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Info objects.\nfunc (m *Info) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Contact != nil {\n\t\t_, err := m.Contact.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.License != nil {\n\t\t_, err := m.License.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ItemsItem objects.\nfunc (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SchemaOrReference {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside License objects.\nfunc (m *License) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Link objects.\nfunc (m *Link) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.RequestBody != nil {\n\t\t_, err := m.RequestBody.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Server != nil {\n\t\t_, err := m.Server.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside LinkOrReference objects.\nfunc (m *LinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*LinkOrReference_Link)\n\t\tif ok {\n\t\t\t_, err := p.Link.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*LinkOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside LinksOrReferences objects.\nfunc (m *LinksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside MediaType objects.\nfunc (m *MediaType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Encoding != nil {\n\t\t_, err := m.Encoding.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside MediaTypes objects.\nfunc (m *MediaTypes) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedAny objects.\nfunc (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedCallbackOrReference objects.\nfunc (m *NamedCallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedEncoding objects.\nfunc (m *NamedEncoding) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedExampleOrReference objects.\nfunc (m *NamedExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedHeaderOrReference objects.\nfunc (m *NamedHeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedLinkOrReference objects.\nfunc (m *NamedLinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedMediaType objects.\nfunc (m *NamedMediaType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedParameterOrReference objects.\nfunc (m *NamedParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedPathItem objects.\nfunc (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedRequestBodyOrReference objects.\nfunc (m *NamedRequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponseOrReference objects.\nfunc (m *NamedResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSchemaOrReference objects.\nfunc (m *NamedSchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSecuritySchemeOrReference objects.\nfunc (m *NamedSecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedServerVariable objects.\nfunc (m *NamedServerVariable) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedString objects.\nfunc (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedStringArray objects.\nfunc (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside OauthFlow objects.\nfunc (m *OauthFlow) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside OauthFlows objects.\nfunc (m *OauthFlows) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Implicit != nil {\n\t\t_, err := m.Implicit.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Password != nil {\n\t\t_, err := m.Password.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ClientCredentials != nil {\n\t\t_, err := m.ClientCredentials.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.AuthorizationCode != nil {\n\t\t_, err := m.AuthorizationCode.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Object objects.\nfunc (m *Object) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Operation objects.\nfunc (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.RequestBody != nil {\n\t\t_, err := m.RequestBody.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Callbacks != nil {\n\t\t_, err := m.Callbacks.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Parameter objects.\nfunc (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParameterOrReference objects.\nfunc (m *ParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ParameterOrReference_Parameter)\n\t\tif ok {\n\t\t\t_, err := p.Parameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ParameterOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParametersOrReferences objects.\nfunc (m *ParametersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathItem objects.\nfunc (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewPathItem(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Get != nil {\n\t\t_, err := m.Get.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Put != nil {\n\t\t_, err := m.Put.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Post != nil {\n\t\t_, err := m.Post.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Delete != nil {\n\t\t_, err := m.Delete.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Options != nil {\n\t\t_, err := m.Options.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Head != nil {\n\t\t_, err := m.Head.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Patch != nil {\n\t\t_, err := m.Patch.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Trace != nil {\n\t\t_, err := m.Trace.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Paths objects.\nfunc (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Properties objects.\nfunc (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Reference objects.\nfunc (m *Reference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewReference(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBodiesOrReferences objects.\nfunc (m *RequestBodiesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBody objects.\nfunc (m *RequestBody) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBodyOrReference objects.\nfunc (m *RequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*RequestBodyOrReference_RequestBody)\n\t\tif ok {\n\t\t\t_, err := p.RequestBody.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*RequestBodyOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Response objects.\nfunc (m *Response) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Links != nil {\n\t\t_, err := m.Links.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseOrReference objects.\nfunc (m *ResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ResponseOrReference_Response)\n\t\tif ok {\n\t\t\t_, err := p.Response.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ResponseOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Responses objects.\nfunc (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.ResponseOrReference {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponsesOrReferences objects.\nfunc (m *ResponsesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Schema objects.\nfunc (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Discriminator != nil {\n\t\t_, err := m.Discriminator.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Xml != nil {\n\t\t_, err := m.Xml.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.AllOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.OneOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.AnyOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Not != nil {\n\t\t_, err := m.Not.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Properties != nil {\n\t\t_, err := m.Properties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.AdditionalProperties != nil {\n\t\t_, err := m.AdditionalProperties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemaOrReference objects.\nfunc (m *SchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SchemaOrReference_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SchemaOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemasOrReferences objects.\nfunc (m *SchemasOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityRequirement objects.\nfunc (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityScheme objects.\nfunc (m *SecurityScheme) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Flows != nil {\n\t\t_, err := m.Flows.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecuritySchemeOrReference objects.\nfunc (m *SecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SecuritySchemeOrReference_SecurityScheme)\n\t\tif ok {\n\t\t\t_, err := p.SecurityScheme.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecuritySchemeOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecuritySchemesOrReferences objects.\nfunc (m *SecuritySchemesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Server objects.\nfunc (m *Server) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Variables != nil {\n\t\t_, err := m.Variables.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ServerVariable objects.\nfunc (m *ServerVariable) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ServerVariables objects.\nfunc (m *ServerVariables) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SpecificationExtension objects.\nfunc (m *SpecificationExtension) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside StringArray objects.\nfunc (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Strings objects.\nfunc (m *Strings) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Tag objects.\nfunc (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Xml objects.\nfunc (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.\nfunc (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AdditionalPropertiesItem\n\t// {Name:schemaOrReference Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchemaOrReference()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Any suitable for JSON or YAML export.\nfunc (m *Any) ToRawInfo() *yaml.Node {\n\tvar err error\n\tvar node yaml.Node\n\terr = yaml.Unmarshal([]byte(m.Yaml), &node)\n\tif err == nil {\n\t\tif node.Kind == yaml.DocumentNode {\n\t\t\treturn node.Content[0]\n\t\t}\n\t\treturn &node\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of AnyOrExpression suitable for JSON or YAML export.\nfunc (m *AnyOrExpression) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AnyOrExpression\n\t// {Name:any Type:Any StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetAny()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:expression Type:Expression StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetExpression()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Callback suitable for JSON or YAML export.\nfunc (m *Callback) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of CallbackOrReference suitable for JSON or YAML export.\nfunc (m *CallbackOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// CallbackOrReference\n\t// {Name:callback Type:Callback StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetCallback()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of CallbacksOrReferences suitable for JSON or YAML export.\nfunc (m *CallbacksOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Components suitable for JSON or YAML export.\nfunc (m *Components) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Schemas != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemas\"))\n\t\tinfo.Content = append(info.Content, m.Schemas.ToRawInfo())\n\t}\n\tif m.Responses != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\t\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.RequestBodies != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBodies\"))\n\t\tinfo.Content = append(info.Content, m.RequestBodies.ToRawInfo())\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.SecuritySchemes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"securitySchemes\"))\n\t\tinfo.Content = append(info.Content, m.SecuritySchemes.ToRawInfo())\n\t}\n\tif m.Links != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"links\"))\n\t\tinfo.Content = append(info.Content, m.Links.ToRawInfo())\n\t}\n\tif m.Callbacks != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"callbacks\"))\n\t\tinfo.Content = append(info.Content, m.Callbacks.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Contact suitable for JSON or YAML export.\nfunc (m *Contact) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.Email != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"email\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of DefaultType suitable for JSON or YAML export.\nfunc (m *DefaultType) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// DefaultType\n\t// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v0, ok := m.GetOneof().(*DefaultType_Number); ok {\n\t\treturn compiler.NewScalarNodeForFloat(v0.Number)\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*DefaultType_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\t// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v2, ok := m.GetOneof().(*DefaultType_String_); ok {\n\t\treturn compiler.NewScalarNodeForString(v2.String_)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Discriminator suitable for JSON or YAML export.\nfunc (m *Discriminator) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"propertyName\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.PropertyName))\n\tif m.Mapping != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"mapping\"))\n\t\tinfo.Content = append(info.Content, m.Mapping.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Document suitable for JSON or YAML export.\nfunc (m *Document) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"openapi\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Openapi))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"info\"))\n\tinfo.Content = append(info.Content, m.Info.ToRawInfo())\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"paths\"))\n\tinfo.Content = append(info.Content, m.Paths.ToRawInfo())\n\tif m.Components != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"components\"))\n\t\tinfo.Content = append(info.Content, m.Components.ToRawInfo())\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Tags) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Tags {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Encoding suitable for JSON or YAML export.\nfunc (m *Encoding) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.ContentType != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contentType\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.ContentType))\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Encodings suitable for JSON or YAML export.\nfunc (m *Encodings) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Example suitable for JSON or YAML export.\nfunc (m *Example) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\tif m.ExternalValue != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.ExternalValue))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExampleOrReference suitable for JSON or YAML export.\nfunc (m *ExampleOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ExampleOrReference\n\t// {Name:example Type:Example StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetExample()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ExamplesOrReferences suitable for JSON or YAML export.\nfunc (m *ExamplesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Expression suitable for JSON or YAML export.\nfunc (m *Expression) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.\nfunc (m *ExternalDocs) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Header suitable for JSON or YAML export.\nfunc (m *Header) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of HeaderOrReference suitable for JSON or YAML export.\nfunc (m *HeaderOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// HeaderOrReference\n\t// {Name:header Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetHeader()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of HeadersOrReferences suitable for JSON or YAML export.\nfunc (m *HeadersOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Info suitable for JSON or YAML export.\nfunc (m *Info) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.TermsOfService != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"termsOfService\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))\n\t}\n\tif m.Contact != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contact\"))\n\t\tinfo.Content = append(info.Content, m.Contact.ToRawInfo())\n\t}\n\tif m.License != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"license\"))\n\t\tinfo.Content = append(info.Content, m.License.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"version\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.\nfunc (m *ItemsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.SchemaOrReference) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.SchemaOrReference {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemaOrReference\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of License suitable for JSON or YAML export.\nfunc (m *License) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Link suitable for JSON or YAML export.\nfunc (m *Link) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.OperationRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationRef\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationRef))\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.RequestBody != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBody\"))\n\t\tinfo.Content = append(info.Content, m.RequestBody.ToRawInfo())\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Server != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"server\"))\n\t\tinfo.Content = append(info.Content, m.Server.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of LinkOrReference suitable for JSON or YAML export.\nfunc (m *LinkOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// LinkOrReference\n\t// {Name:link Type:Link StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetLink()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of LinksOrReferences suitable for JSON or YAML export.\nfunc (m *LinksOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of MediaType suitable for JSON or YAML export.\nfunc (m *MediaType) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Encoding != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"encoding\"))\n\t\tinfo.Content = append(info.Content, m.Encoding.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of MediaTypes suitable for JSON or YAML export.\nfunc (m *MediaTypes) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.\nfunc (m *NamedAny) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedCallbackOrReference suitable for JSON or YAML export.\nfunc (m *NamedCallbackOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:CallbackOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedEncoding suitable for JSON or YAML export.\nfunc (m *NamedEncoding) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Encoding StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedExampleOrReference suitable for JSON or YAML export.\nfunc (m *NamedExampleOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ExampleOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedHeaderOrReference suitable for JSON or YAML export.\nfunc (m *NamedHeaderOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:HeaderOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedLinkOrReference suitable for JSON or YAML export.\nfunc (m *NamedLinkOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:LinkOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedMediaType suitable for JSON or YAML export.\nfunc (m *NamedMediaType) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:MediaType StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedParameterOrReference suitable for JSON or YAML export.\nfunc (m *NamedParameterOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ParameterOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.\nfunc (m *NamedPathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedRequestBodyOrReference suitable for JSON or YAML export.\nfunc (m *NamedRequestBodyOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:RequestBodyOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponseOrReference suitable for JSON or YAML export.\nfunc (m *NamedResponseOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ResponseOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSchemaOrReference suitable for JSON or YAML export.\nfunc (m *NamedSchemaOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSecuritySchemeOrReference suitable for JSON or YAML export.\nfunc (m *NamedSecuritySchemeOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SecuritySchemeOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedServerVariable suitable for JSON or YAML export.\nfunc (m *NamedServerVariable) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ServerVariable StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.\nfunc (m *NamedString) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.\nfunc (m *NamedStringArray) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of OauthFlow suitable for JSON or YAML export.\nfunc (m *OauthFlow) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AuthorizationUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\t}\n\tif m.TokenUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\t}\n\tif m.RefreshUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"refreshUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.RefreshUrl))\n\t}\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of OauthFlows suitable for JSON or YAML export.\nfunc (m *OauthFlows) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Implicit != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"implicit\"))\n\t\tinfo.Content = append(info.Content, m.Implicit.ToRawInfo())\n\t}\n\tif m.Password != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"password\"))\n\t\tinfo.Content = append(info.Content, m.Password.ToRawInfo())\n\t}\n\tif m.ClientCredentials != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"clientCredentials\"))\n\t\tinfo.Content = append(info.Content, m.ClientCredentials.ToRawInfo())\n\t}\n\tif m.AuthorizationCode != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationCode\"))\n\t\tinfo.Content = append(info.Content, m.AuthorizationCode.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Object suitable for JSON or YAML export.\nfunc (m *Object) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Operation suitable for JSON or YAML export.\nfunc (m *Operation) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Tags) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.RequestBody != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBody\"))\n\t\tinfo.Content = append(info.Content, m.RequestBody.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\tif m.Callbacks != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"callbacks\"))\n\t\tinfo.Content = append(info.Content, m.Callbacks.ToRawInfo())\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Parameter suitable for JSON or YAML export.\nfunc (m *Parameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ParameterOrReference suitable for JSON or YAML export.\nfunc (m *ParameterOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ParameterOrReference\n\t// {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ParametersOrReferences suitable for JSON or YAML export.\nfunc (m *ParametersOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.\nfunc (m *PathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Get != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"get\"))\n\t\tinfo.Content = append(info.Content, m.Get.ToRawInfo())\n\t}\n\tif m.Put != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"put\"))\n\t\tinfo.Content = append(info.Content, m.Put.ToRawInfo())\n\t}\n\tif m.Post != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"post\"))\n\t\tinfo.Content = append(info.Content, m.Post.ToRawInfo())\n\t}\n\tif m.Delete != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"delete\"))\n\t\tinfo.Content = append(info.Content, m.Delete.ToRawInfo())\n\t}\n\tif m.Options != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"options\"))\n\t\tinfo.Content = append(info.Content, m.Options.ToRawInfo())\n\t}\n\tif m.Head != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"head\"))\n\t\tinfo.Content = append(info.Content, m.Head.ToRawInfo())\n\t}\n\tif m.Patch != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"patch\"))\n\t\tinfo.Content = append(info.Content, m.Patch.ToRawInfo())\n\t}\n\tif m.Trace != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"trace\"))\n\t\tinfo.Content = append(info.Content, m.Trace.ToRawInfo())\n\t}\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Paths suitable for JSON or YAML export.\nfunc (m *Paths) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Properties suitable for JSON or YAML export.\nfunc (m *Properties) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Reference suitable for JSON or YAML export.\nfunc (m *Reference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBodiesOrReferences suitable for JSON or YAML export.\nfunc (m *RequestBodiesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBody suitable for JSON or YAML export.\nfunc (m *RequestBody) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBodyOrReference suitable for JSON or YAML export.\nfunc (m *RequestBodyOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// RequestBodyOrReference\n\t// {Name:requestBody Type:RequestBody StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetRequestBody()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Response suitable for JSON or YAML export.\nfunc (m *Response) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.Links != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"links\"))\n\t\tinfo.Content = append(info.Content, m.Links.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseOrReference suitable for JSON or YAML export.\nfunc (m *ResponseOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ResponseOrReference\n\t// {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetResponse()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Responses suitable for JSON or YAML export.\nfunc (m *Responses) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.ResponseOrReference != nil {\n\t\tfor _, item := range m.ResponseOrReference {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponsesOrReferences suitable for JSON or YAML export.\nfunc (m *ResponsesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Schema suitable for JSON or YAML export.\nfunc (m *Schema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Nullable != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"nullable\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Nullable))\n\t}\n\tif m.Discriminator != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"discriminator\"))\n\t\tinfo.Content = append(info.Content, m.Discriminator.ToRawInfo())\n\t}\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.WriteOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"writeOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.WriteOnly))\n\t}\n\tif m.Xml != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"xml\"))\n\t\tinfo.Content = append(info.Content, m.Xml.ToRawInfo())\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif m.MaxProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))\n\t}\n\tif m.MinProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif len(m.AllOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AllOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.OneOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.OneOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"oneOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.AnyOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AnyOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"anyOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Not != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"not\"))\n\t\tinfo.Content = append(info.Content, m.Not.ToRawInfo())\n\t}\n\tif m.Items != nil {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Items.SchemaOrReference {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tif len(items.Content) == 1 {\n\t\t\titems = items.Content[0]\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Properties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"properties\"))\n\t\tinfo.Content = append(info.Content, m.Properties.ToRawInfo())\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"additionalProperties\"))\n\t\tinfo.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SchemaOrReference suitable for JSON or YAML export.\nfunc (m *SchemaOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SchemaOrReference\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SchemasOrReferences suitable for JSON or YAML export.\nfunc (m *SchemasOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.\nfunc (m *SecurityRequirement) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityScheme suitable for JSON or YAML export.\nfunc (m *SecurityScheme) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Scheme != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scheme\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Scheme))\n\t}\n\tif m.BearerFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"bearerFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.BearerFormat))\n\t}\n\tif m.Flows != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flows\"))\n\t\tinfo.Content = append(info.Content, m.Flows.ToRawInfo())\n\t}\n\tif m.OpenIdConnectUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"openIdConnectUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OpenIdConnectUrl))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecuritySchemeOrReference suitable for JSON or YAML export.\nfunc (m *SecuritySchemeOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SecuritySchemeOrReference\n\t// {Name:securityScheme Type:SecurityScheme StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSecurityScheme()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecuritySchemesOrReferences suitable for JSON or YAML export.\nfunc (m *SecuritySchemesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Server suitable for JSON or YAML export.\nfunc (m *Server) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Variables != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"variables\"))\n\t\tinfo.Content = append(info.Content, m.Variables.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ServerVariable suitable for JSON or YAML export.\nfunc (m *ServerVariable) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Enum) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ServerVariables suitable for JSON or YAML export.\nfunc (m *ServerVariables) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SpecificationExtension suitable for JSON or YAML export.\nfunc (m *SpecificationExtension) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SpecificationExtension\n\t// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v0, ok := m.GetOneof().(*SpecificationExtension_Number); ok {\n\t\treturn compiler.NewScalarNodeForFloat(v0.Number)\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*SpecificationExtension_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\t// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v2, ok := m.GetOneof().(*SpecificationExtension_String_); ok {\n\t\treturn compiler.NewScalarNodeForString(v2.String_)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.\nfunc (m *StringArray) ToRawInfo() *yaml.Node {\n\treturn compiler.NewSequenceNodeForStringArray(m.Value)\n}\n\n// ToRawInfo returns a description of Strings suitable for JSON or YAML export.\nfunc (m *Strings) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}\n\treturn info\n}\n\n// ToRawInfo returns a description of Tag suitable for JSON or YAML export.\nfunc (m *Tag) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Xml suitable for JSON or YAML export.\nfunc (m *Xml) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Namespace != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"namespace\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))\n\t}\n\tif m.Prefix != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"prefix\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))\n\t}\n\tif m.Attribute != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"attribute\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))\n\t}\n\tif m.Wrapped != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"wrapped\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\nvar (\n\tpattern0 = regexp.MustCompile(\"^\")\n\tpattern1 = regexp.MustCompile(\"^x-\")\n\tpattern2 = regexp.MustCompile(\"^/\")\n\tpattern3 = regexp.MustCompile(\"^([0-9X]{3})$\")\n)\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.pb.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.26.0\n// \tprotoc        v3.18.1\n// source: openapiv3/OpenAPIv3.proto\n\npackage openapi_v3\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype AdditionalPropertiesItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AdditionalPropertiesItem_SchemaOrReference\n\t//\t*AdditionalPropertiesItem_Boolean\n\tOneof isAdditionalPropertiesItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AdditionalPropertiesItem) Reset() {\n\t*x = AdditionalPropertiesItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AdditionalPropertiesItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AdditionalPropertiesItem) ProtoMessage() {}\n\nfunc (x *AdditionalPropertiesItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AdditionalPropertiesItem.ProtoReflect.Descriptor instead.\nfunc (*AdditionalPropertiesItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (m *AdditionalPropertiesItem) GetOneof() isAdditionalPropertiesItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetSchemaOrReference() *SchemaOrReference {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_SchemaOrReference); ok {\n\t\treturn x.SchemaOrReference\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\ntype isAdditionalPropertiesItem_Oneof interface {\n\tisAdditionalPropertiesItem_Oneof()\n}\n\ntype AdditionalPropertiesItem_SchemaOrReference struct {\n\tSchemaOrReference *SchemaOrReference `protobuf:\"bytes,1,opt,name=schema_or_reference,json=schemaOrReference,proto3,oneof\"`\n}\n\ntype AdditionalPropertiesItem_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\nfunc (*AdditionalPropertiesItem_SchemaOrReference) isAdditionalPropertiesItem_Oneof() {}\n\nfunc (*AdditionalPropertiesItem_Boolean) isAdditionalPropertiesItem_Oneof() {}\n\ntype Any struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *anypb.Any `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tYaml  string     `protobuf:\"bytes,2,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Any) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Any) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\ntype AnyOrExpression struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AnyOrExpression_Any\n\t//\t*AnyOrExpression_Expression\n\tOneof isAnyOrExpression_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AnyOrExpression) Reset() {\n\t*x = AnyOrExpression{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AnyOrExpression) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AnyOrExpression) ProtoMessage() {}\n\nfunc (x *AnyOrExpression) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AnyOrExpression.ProtoReflect.Descriptor instead.\nfunc (*AnyOrExpression) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (m *AnyOrExpression) GetOneof() isAnyOrExpression_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AnyOrExpression) GetAny() *Any {\n\tif x, ok := x.GetOneof().(*AnyOrExpression_Any); ok {\n\t\treturn x.Any\n\t}\n\treturn nil\n}\n\nfunc (x *AnyOrExpression) GetExpression() *Expression {\n\tif x, ok := x.GetOneof().(*AnyOrExpression_Expression); ok {\n\t\treturn x.Expression\n\t}\n\treturn nil\n}\n\ntype isAnyOrExpression_Oneof interface {\n\tisAnyOrExpression_Oneof()\n}\n\ntype AnyOrExpression_Any struct {\n\tAny *Any `protobuf:\"bytes,1,opt,name=any,proto3,oneof\"`\n}\n\ntype AnyOrExpression_Expression struct {\n\tExpression *Expression `protobuf:\"bytes,2,opt,name=expression,proto3,oneof\"`\n}\n\nfunc (*AnyOrExpression_Any) isAnyOrExpression_Oneof() {}\n\nfunc (*AnyOrExpression_Expression) isAnyOrExpression_Oneof() {}\n\n// A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\ntype Callback struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath                   []*NamedPathItem `protobuf:\"bytes,1,rep,name=path,proto3\" json:\"path,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,2,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Callback) Reset() {\n\t*x = Callback{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Callback) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Callback) ProtoMessage() {}\n\nfunc (x *Callback) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Callback.ProtoReflect.Descriptor instead.\nfunc (*Callback) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Callback) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *Callback) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype CallbackOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*CallbackOrReference_Callback\n\t//\t*CallbackOrReference_Reference\n\tOneof isCallbackOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *CallbackOrReference) Reset() {\n\t*x = CallbackOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CallbackOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CallbackOrReference) ProtoMessage() {}\n\nfunc (x *CallbackOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CallbackOrReference.ProtoReflect.Descriptor instead.\nfunc (*CallbackOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (m *CallbackOrReference) GetOneof() isCallbackOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *CallbackOrReference) GetCallback() *Callback {\n\tif x, ok := x.GetOneof().(*CallbackOrReference_Callback); ok {\n\t\treturn x.Callback\n\t}\n\treturn nil\n}\n\nfunc (x *CallbackOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*CallbackOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isCallbackOrReference_Oneof interface {\n\tisCallbackOrReference_Oneof()\n}\n\ntype CallbackOrReference_Callback struct {\n\tCallback *Callback `protobuf:\"bytes,1,opt,name=callback,proto3,oneof\"`\n}\n\ntype CallbackOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*CallbackOrReference_Callback) isCallbackOrReference_Oneof() {}\n\nfunc (*CallbackOrReference_Reference) isCallbackOrReference_Oneof() {}\n\ntype CallbacksOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedCallbackOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *CallbacksOrReferences) Reset() {\n\t*x = CallbacksOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CallbacksOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CallbacksOrReferences) ProtoMessage() {}\n\nfunc (x *CallbacksOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CallbacksOrReferences.ProtoReflect.Descriptor instead.\nfunc (*CallbacksOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *CallbacksOrReferences) GetAdditionalProperties() []*NamedCallbackOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\ntype Components struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchemas                *SchemasOrReferences         `protobuf:\"bytes,1,opt,name=schemas,proto3\" json:\"schemas,omitempty\"`\n\tResponses              *ResponsesOrReferences       `protobuf:\"bytes,2,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tParameters             *ParametersOrReferences      `protobuf:\"bytes,3,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tExamples               *ExamplesOrReferences        `protobuf:\"bytes,4,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tRequestBodies          *RequestBodiesOrReferences   `protobuf:\"bytes,5,opt,name=request_bodies,json=requestBodies,proto3\" json:\"request_bodies,omitempty\"`\n\tHeaders                *HeadersOrReferences         `protobuf:\"bytes,6,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tSecuritySchemes        *SecuritySchemesOrReferences `protobuf:\"bytes,7,opt,name=security_schemes,json=securitySchemes,proto3\" json:\"security_schemes,omitempty\"`\n\tLinks                  *LinksOrReferences           `protobuf:\"bytes,8,opt,name=links,proto3\" json:\"links,omitempty\"`\n\tCallbacks              *CallbacksOrReferences       `protobuf:\"bytes,9,opt,name=callbacks,proto3\" json:\"callbacks,omitempty\"`\n\tSpecificationExtension []*NamedAny                  `protobuf:\"bytes,10,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Components) Reset() {\n\t*x = Components{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Components) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Components) ProtoMessage() {}\n\nfunc (x *Components) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Components.ProtoReflect.Descriptor instead.\nfunc (*Components) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *Components) GetSchemas() *SchemasOrReferences {\n\tif x != nil {\n\t\treturn x.Schemas\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetResponses() *ResponsesOrReferences {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetParameters() *ParametersOrReferences {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetRequestBodies() *RequestBodiesOrReferences {\n\tif x != nil {\n\t\treturn x.RequestBodies\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetSecuritySchemes() *SecuritySchemesOrReferences {\n\tif x != nil {\n\t\treturn x.SecuritySchemes\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetLinks() *LinksOrReferences {\n\tif x != nil {\n\t\treturn x.Links\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetCallbacks() *CallbacksOrReferences {\n\tif x != nil {\n\t\treturn x.Callbacks\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Contact information for the exposed API.\ntype Contact struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tEmail                  string      `protobuf:\"bytes,3,opt,name=email,proto3\" json:\"email,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Contact) Reset() {\n\t*x = Contact{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Contact) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Contact) ProtoMessage() {}\n\nfunc (x *Contact) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Contact.ProtoReflect.Descriptor instead.\nfunc (*Contact) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Contact) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetEmail() string {\n\tif x != nil {\n\t\treturn x.Email\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype DefaultType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*DefaultType_Number\n\t//\t*DefaultType_Boolean\n\t//\t*DefaultType_String_\n\tOneof isDefaultType_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *DefaultType) Reset() {\n\t*x = DefaultType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *DefaultType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DefaultType) ProtoMessage() {}\n\nfunc (x *DefaultType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DefaultType.ProtoReflect.Descriptor instead.\nfunc (*DefaultType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (m *DefaultType) GetOneof() isDefaultType_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *DefaultType) GetNumber() float64 {\n\tif x, ok := x.GetOneof().(*DefaultType_Number); ok {\n\t\treturn x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *DefaultType) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*DefaultType_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\nfunc (x *DefaultType) GetString_() string {\n\tif x, ok := x.GetOneof().(*DefaultType_String_); ok {\n\t\treturn x.String_\n\t}\n\treturn \"\"\n}\n\ntype isDefaultType_Oneof interface {\n\tisDefaultType_Oneof()\n}\n\ntype DefaultType_Number struct {\n\tNumber float64 `protobuf:\"fixed64,1,opt,name=number,proto3,oneof\"`\n}\n\ntype DefaultType_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\ntype DefaultType_String_ struct {\n\tString_ string `protobuf:\"bytes,3,opt,name=string,proto3,oneof\"`\n}\n\nfunc (*DefaultType_Number) isDefaultType_Oneof() {}\n\nfunc (*DefaultType_Boolean) isDefaultType_Oneof() {}\n\nfunc (*DefaultType_String_) isDefaultType_Oneof() {}\n\n// When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\ntype Discriminator struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPropertyName           string      `protobuf:\"bytes,1,opt,name=property_name,json=propertyName,proto3\" json:\"property_name,omitempty\"`\n\tMapping                *Strings    `protobuf:\"bytes,2,opt,name=mapping,proto3\" json:\"mapping,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Discriminator) Reset() {\n\t*x = Discriminator{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Discriminator) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Discriminator) ProtoMessage() {}\n\nfunc (x *Discriminator) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Discriminator.ProtoReflect.Descriptor instead.\nfunc (*Discriminator) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *Discriminator) GetPropertyName() string {\n\tif x != nil {\n\t\treturn x.PropertyName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Discriminator) GetMapping() *Strings {\n\tif x != nil {\n\t\treturn x.Mapping\n\t}\n\treturn nil\n}\n\nfunc (x *Discriminator) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Document struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tOpenapi                string                 `protobuf:\"bytes,1,opt,name=openapi,proto3\" json:\"openapi,omitempty\"`\n\tInfo                   *Info                  `protobuf:\"bytes,2,opt,name=info,proto3\" json:\"info,omitempty\"`\n\tServers                []*Server              `protobuf:\"bytes,3,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tPaths                  *Paths                 `protobuf:\"bytes,4,opt,name=paths,proto3\" json:\"paths,omitempty\"`\n\tComponents             *Components            `protobuf:\"bytes,5,opt,name=components,proto3\" json:\"components,omitempty\"`\n\tSecurity               []*SecurityRequirement `protobuf:\"bytes,6,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tTags                   []*Tag                 `protobuf:\"bytes,7,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tExternalDocs           *ExternalDocs          `protobuf:\"bytes,8,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tSpecificationExtension []*NamedAny            `protobuf:\"bytes,9,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Document) Reset() {\n\t*x = Document{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Document) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Document) ProtoMessage() {}\n\nfunc (x *Document) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Document.ProtoReflect.Descriptor instead.\nfunc (*Document) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *Document) GetOpenapi() string {\n\tif x != nil {\n\t\treturn x.Openapi\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetInfo() *Info {\n\tif x != nil {\n\t\treturn x.Info\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetPaths() *Paths {\n\tif x != nil {\n\t\treturn x.Paths\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetComponents() *Components {\n\tif x != nil {\n\t\treturn x.Components\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetTags() []*Tag {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// A single encoding definition applied to a single schema property.\ntype Encoding struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tContentType            string               `protobuf:\"bytes,1,opt,name=content_type,json=contentType,proto3\" json:\"content_type,omitempty\"`\n\tHeaders                *HeadersOrReferences `protobuf:\"bytes,2,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tStyle                  string               `protobuf:\"bytes,3,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                 `protobuf:\"varint,4,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                 `protobuf:\"varint,5,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSpecificationExtension []*NamedAny          `protobuf:\"bytes,6,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Encoding) Reset() {\n\t*x = Encoding{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Encoding) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Encoding) ProtoMessage() {}\n\nfunc (x *Encoding) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Encoding.ProtoReflect.Descriptor instead.\nfunc (*Encoding) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *Encoding) GetContentType() string {\n\tif x != nil {\n\t\treturn x.ContentType\n\t}\n\treturn \"\"\n}\n\nfunc (x *Encoding) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Encoding) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Encoding) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Encoding) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Encoding) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Encodings struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedEncoding `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Encodings) Reset() {\n\t*x = Encodings{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Encodings) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Encodings) ProtoMessage() {}\n\nfunc (x *Encodings) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Encodings.ProtoReflect.Descriptor instead.\nfunc (*Encodings) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *Encodings) GetAdditionalProperties() []*NamedEncoding {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Example struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSummary                string      `protobuf:\"bytes,1,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tValue                  *Any        `protobuf:\"bytes,3,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tExternalValue          string      `protobuf:\"bytes,4,opt,name=external_value,json=externalValue,proto3\" json:\"external_value,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Example) Reset() {\n\t*x = Example{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Example) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Example) ProtoMessage() {}\n\nfunc (x *Example) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Example.ProtoReflect.Descriptor instead.\nfunc (*Example) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *Example) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Example) GetExternalValue() string {\n\tif x != nil {\n\t\treturn x.ExternalValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ExampleOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ExampleOrReference_Example\n\t//\t*ExampleOrReference_Reference\n\tOneof isExampleOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ExampleOrReference) Reset() {\n\t*x = ExampleOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExampleOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExampleOrReference) ProtoMessage() {}\n\nfunc (x *ExampleOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExampleOrReference.ProtoReflect.Descriptor instead.\nfunc (*ExampleOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (m *ExampleOrReference) GetOneof() isExampleOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ExampleOrReference) GetExample() *Example {\n\tif x, ok := x.GetOneof().(*ExampleOrReference_Example); ok {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *ExampleOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ExampleOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isExampleOrReference_Oneof interface {\n\tisExampleOrReference_Oneof()\n}\n\ntype ExampleOrReference_Example struct {\n\tExample *Example `protobuf:\"bytes,1,opt,name=example,proto3,oneof\"`\n}\n\ntype ExampleOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ExampleOrReference_Example) isExampleOrReference_Oneof() {}\n\nfunc (*ExampleOrReference_Reference) isExampleOrReference_Oneof() {}\n\ntype ExamplesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedExampleOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ExamplesOrReferences) Reset() {\n\t*x = ExamplesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExamplesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExamplesOrReferences) ProtoMessage() {}\n\nfunc (x *ExamplesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExamplesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ExamplesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *ExamplesOrReferences) GetAdditionalProperties() []*NamedExampleOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Expression struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Expression) Reset() {\n\t*x = Expression{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Expression) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Expression) ProtoMessage() {}\n\nfunc (x *Expression) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Expression.ProtoReflect.Descriptor instead.\nfunc (*Expression) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *Expression) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Allows referencing an external resource for extended documentation.\ntype ExternalDocs struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *ExternalDocs) Reset() {\n\t*x = ExternalDocs{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExternalDocs) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExternalDocs) ProtoMessage() {}\n\nfunc (x *ExternalDocs) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExternalDocs.ProtoReflect.Descriptor instead.\nfunc (*ExternalDocs) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *ExternalDocs) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\ntype Header struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string                `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tRequired               bool                  `protobuf:\"varint,2,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tDeprecated             bool                  `protobuf:\"varint,3,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tAllowEmptyValue        bool                  `protobuf:\"varint,4,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tStyle                  string                `protobuf:\"bytes,5,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                  `protobuf:\"varint,6,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                  `protobuf:\"varint,7,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,8,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,9,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,10,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tContent                *MediaTypes           `protobuf:\"bytes,11,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,12,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Header) Reset() {\n\t*x = Header{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Header) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Header) ProtoMessage() {}\n\nfunc (x *Header) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Header.ProtoReflect.Descriptor instead.\nfunc (*Header) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *Header) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype HeaderOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*HeaderOrReference_Header\n\t//\t*HeaderOrReference_Reference\n\tOneof isHeaderOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *HeaderOrReference) Reset() {\n\t*x = HeaderOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeaderOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeaderOrReference) ProtoMessage() {}\n\nfunc (x *HeaderOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeaderOrReference.ProtoReflect.Descriptor instead.\nfunc (*HeaderOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (m *HeaderOrReference) GetOneof() isHeaderOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderOrReference) GetHeader() *Header {\n\tif x, ok := x.GetOneof().(*HeaderOrReference_Header); ok {\n\t\treturn x.Header\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*HeaderOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isHeaderOrReference_Oneof interface {\n\tisHeaderOrReference_Oneof()\n}\n\ntype HeaderOrReference_Header struct {\n\tHeader *Header `protobuf:\"bytes,1,opt,name=header,proto3,oneof\"`\n}\n\ntype HeaderOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*HeaderOrReference_Header) isHeaderOrReference_Oneof() {}\n\nfunc (*HeaderOrReference_Reference) isHeaderOrReference_Oneof() {}\n\ntype HeadersOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedHeaderOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *HeadersOrReferences) Reset() {\n\t*x = HeadersOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[20]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeadersOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeadersOrReferences) ProtoMessage() {}\n\nfunc (x *HeadersOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[20]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeadersOrReferences.ProtoReflect.Descriptor instead.\nfunc (*HeadersOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *HeadersOrReferences) GetAdditionalProperties() []*NamedHeaderOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\ntype Info struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTitle                  string      `protobuf:\"bytes,1,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tTermsOfService         string      `protobuf:\"bytes,3,opt,name=terms_of_service,json=termsOfService,proto3\" json:\"terms_of_service,omitempty\"`\n\tContact                *Contact    `protobuf:\"bytes,4,opt,name=contact,proto3\" json:\"contact,omitempty\"`\n\tLicense                *License    `protobuf:\"bytes,5,opt,name=license,proto3\" json:\"license,omitempty\"`\n\tVersion                string      `protobuf:\"bytes,6,opt,name=version,proto3\" json:\"version,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,7,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n\tSummary                string      `protobuf:\"bytes,8,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n}\n\nfunc (x *Info) Reset() {\n\t*x = Info{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Info) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Info) ProtoMessage() {}\n\nfunc (x *Info) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Info.ProtoReflect.Descriptor instead.\nfunc (*Info) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *Info) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetTermsOfService() string {\n\tif x != nil {\n\t\treturn x.TermsOfService\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetContact() *Contact {\n\tif x != nil {\n\t\treturn x.Contact\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetLicense() *License {\n\tif x != nil {\n\t\treturn x.License\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\ntype ItemsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchemaOrReference []*SchemaOrReference `protobuf:\"bytes,1,rep,name=schema_or_reference,json=schemaOrReference,proto3\" json:\"schema_or_reference,omitempty\"`\n}\n\nfunc (x *ItemsItem) Reset() {\n\t*x = ItemsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[22]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ItemsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ItemsItem) ProtoMessage() {}\n\nfunc (x *ItemsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[22]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ItemsItem.ProtoReflect.Descriptor instead.\nfunc (*ItemsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *ItemsItem) GetSchemaOrReference() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.SchemaOrReference\n\t}\n\treturn nil\n}\n\n// License information for the exposed API.\ntype License struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *License) Reset() {\n\t*x = License{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[23]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *License) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*License) ProtoMessage() {}\n\nfunc (x *License) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[23]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use License.ProtoReflect.Descriptor instead.\nfunc (*License) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{23}\n}\n\nfunc (x *License) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\ntype Link struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tOperationRef           string           `protobuf:\"bytes,1,opt,name=operation_ref,json=operationRef,proto3\" json:\"operation_ref,omitempty\"`\n\tOperationId            string           `protobuf:\"bytes,2,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\tParameters             *AnyOrExpression `protobuf:\"bytes,3,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tRequestBody            *AnyOrExpression `protobuf:\"bytes,4,opt,name=request_body,json=requestBody,proto3\" json:\"request_body,omitempty\"`\n\tDescription            string           `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tServer                 *Server          `protobuf:\"bytes,6,opt,name=server,proto3\" json:\"server,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,7,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Link) Reset() {\n\t*x = Link{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Link) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Link) ProtoMessage() {}\n\nfunc (x *Link) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Link.ProtoReflect.Descriptor instead.\nfunc (*Link) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{24}\n}\n\nfunc (x *Link) GetOperationRef() string {\n\tif x != nil {\n\t\treturn x.OperationRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetParameters() *AnyOrExpression {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetRequestBody() *AnyOrExpression {\n\tif x != nil {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetServer() *Server {\n\tif x != nil {\n\t\treturn x.Server\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype LinkOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*LinkOrReference_Link\n\t//\t*LinkOrReference_Reference\n\tOneof isLinkOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *LinkOrReference) Reset() {\n\t*x = LinkOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinkOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinkOrReference) ProtoMessage() {}\n\nfunc (x *LinkOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinkOrReference.ProtoReflect.Descriptor instead.\nfunc (*LinkOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{25}\n}\n\nfunc (m *LinkOrReference) GetOneof() isLinkOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *LinkOrReference) GetLink() *Link {\n\tif x, ok := x.GetOneof().(*LinkOrReference_Link); ok {\n\t\treturn x.Link\n\t}\n\treturn nil\n}\n\nfunc (x *LinkOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*LinkOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isLinkOrReference_Oneof interface {\n\tisLinkOrReference_Oneof()\n}\n\ntype LinkOrReference_Link struct {\n\tLink *Link `protobuf:\"bytes,1,opt,name=link,proto3,oneof\"`\n}\n\ntype LinkOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*LinkOrReference_Link) isLinkOrReference_Oneof() {}\n\nfunc (*LinkOrReference_Reference) isLinkOrReference_Oneof() {}\n\ntype LinksOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedLinkOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *LinksOrReferences) Reset() {\n\t*x = LinksOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinksOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinksOrReferences) ProtoMessage() {}\n\nfunc (x *LinksOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinksOrReferences.ProtoReflect.Descriptor instead.\nfunc (*LinksOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{26}\n}\n\nfunc (x *LinksOrReferences) GetAdditionalProperties() []*NamedLinkOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Each Media Type Object provides schema and examples for the media type identified by its key.\ntype MediaType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,1,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,2,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,3,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tEncoding               *Encodings            `protobuf:\"bytes,4,opt,name=encoding,proto3\" json:\"encoding,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *MediaType) Reset() {\n\t*x = MediaType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *MediaType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MediaType) ProtoMessage() {}\n\nfunc (x *MediaType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MediaType.ProtoReflect.Descriptor instead.\nfunc (*MediaType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{27}\n}\n\nfunc (x *MediaType) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetEncoding() *Encodings {\n\tif x != nil {\n\t\treturn x.Encoding\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype MediaTypes struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedMediaType `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *MediaTypes) Reset() {\n\t*x = MediaTypes{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *MediaTypes) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MediaTypes) ProtoMessage() {}\n\nfunc (x *MediaTypes) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MediaTypes.ProtoReflect.Descriptor instead.\nfunc (*MediaTypes) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{28}\n}\n\nfunc (x *MediaTypes) GetAdditionalProperties() []*NamedMediaType {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\ntype NamedAny struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Any `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedAny) Reset() {\n\t*x = NamedAny{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[29]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedAny) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedAny) ProtoMessage() {}\n\nfunc (x *NamedAny) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[29]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedAny.ProtoReflect.Descriptor instead.\nfunc (*NamedAny) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{29}\n}\n\nfunc (x *NamedAny) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedAny) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of CallbackOrReference as ordered (name,value) pairs.\ntype NamedCallbackOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *CallbackOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedCallbackOrReference) Reset() {\n\t*x = NamedCallbackOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[30]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedCallbackOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedCallbackOrReference) ProtoMessage() {}\n\nfunc (x *NamedCallbackOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[30]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedCallbackOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedCallbackOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{30}\n}\n\nfunc (x *NamedCallbackOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedCallbackOrReference) GetValue() *CallbackOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Encoding as ordered (name,value) pairs.\ntype NamedEncoding struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Encoding `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedEncoding) Reset() {\n\t*x = NamedEncoding{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[31]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedEncoding) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedEncoding) ProtoMessage() {}\n\nfunc (x *NamedEncoding) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[31]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedEncoding.ProtoReflect.Descriptor instead.\nfunc (*NamedEncoding) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{31}\n}\n\nfunc (x *NamedEncoding) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedEncoding) GetValue() *Encoding {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ExampleOrReference as ordered (name,value) pairs.\ntype NamedExampleOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ExampleOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedExampleOrReference) Reset() {\n\t*x = NamedExampleOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[32]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedExampleOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedExampleOrReference) ProtoMessage() {}\n\nfunc (x *NamedExampleOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[32]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedExampleOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedExampleOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{32}\n}\n\nfunc (x *NamedExampleOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedExampleOrReference) GetValue() *ExampleOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of HeaderOrReference as ordered (name,value) pairs.\ntype NamedHeaderOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *HeaderOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedHeaderOrReference) Reset() {\n\t*x = NamedHeaderOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[33]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedHeaderOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedHeaderOrReference) ProtoMessage() {}\n\nfunc (x *NamedHeaderOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[33]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedHeaderOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedHeaderOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{33}\n}\n\nfunc (x *NamedHeaderOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedHeaderOrReference) GetValue() *HeaderOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of LinkOrReference as ordered (name,value) pairs.\ntype NamedLinkOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *LinkOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedLinkOrReference) Reset() {\n\t*x = NamedLinkOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[34]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedLinkOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedLinkOrReference) ProtoMessage() {}\n\nfunc (x *NamedLinkOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[34]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedLinkOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedLinkOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{34}\n}\n\nfunc (x *NamedLinkOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedLinkOrReference) GetValue() *LinkOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of MediaType as ordered (name,value) pairs.\ntype NamedMediaType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *MediaType `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedMediaType) Reset() {\n\t*x = NamedMediaType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[35]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedMediaType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedMediaType) ProtoMessage() {}\n\nfunc (x *NamedMediaType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[35]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedMediaType.ProtoReflect.Descriptor instead.\nfunc (*NamedMediaType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{35}\n}\n\nfunc (x *NamedMediaType) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedMediaType) GetValue() *MediaType {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ParameterOrReference as ordered (name,value) pairs.\ntype NamedParameterOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ParameterOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedParameterOrReference) Reset() {\n\t*x = NamedParameterOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[36]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedParameterOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedParameterOrReference) ProtoMessage() {}\n\nfunc (x *NamedParameterOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[36]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedParameterOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedParameterOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{36}\n}\n\nfunc (x *NamedParameterOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedParameterOrReference) GetValue() *ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\ntype NamedPathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *PathItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedPathItem) Reset() {\n\t*x = NamedPathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[37]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedPathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedPathItem) ProtoMessage() {}\n\nfunc (x *NamedPathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[37]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedPathItem.ProtoReflect.Descriptor instead.\nfunc (*NamedPathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{37}\n}\n\nfunc (x *NamedPathItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedPathItem) GetValue() *PathItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of RequestBodyOrReference as ordered (name,value) pairs.\ntype NamedRequestBodyOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *RequestBodyOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedRequestBodyOrReference) Reset() {\n\t*x = NamedRequestBodyOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[38]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedRequestBodyOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedRequestBodyOrReference) ProtoMessage() {}\n\nfunc (x *NamedRequestBodyOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[38]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedRequestBodyOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedRequestBodyOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{38}\n}\n\nfunc (x *NamedRequestBodyOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedRequestBodyOrReference) GetValue() *RequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ResponseOrReference as ordered (name,value) pairs.\ntype NamedResponseOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ResponseOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponseOrReference) Reset() {\n\t*x = NamedResponseOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[39]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponseOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponseOrReference) ProtoMessage() {}\n\nfunc (x *NamedResponseOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[39]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponseOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedResponseOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{39}\n}\n\nfunc (x *NamedResponseOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponseOrReference) GetValue() *ResponseOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SchemaOrReference as ordered (name,value) pairs.\ntype NamedSchemaOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SchemaOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSchemaOrReference) Reset() {\n\t*x = NamedSchemaOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[40]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSchemaOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSchemaOrReference) ProtoMessage() {}\n\nfunc (x *NamedSchemaOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[40]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSchemaOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedSchemaOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{40}\n}\n\nfunc (x *NamedSchemaOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSchemaOrReference) GetValue() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SecuritySchemeOrReference as ordered (name,value) pairs.\ntype NamedSecuritySchemeOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SecuritySchemeOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSecuritySchemeOrReference) Reset() {\n\t*x = NamedSecuritySchemeOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[41]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSecuritySchemeOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSecuritySchemeOrReference) ProtoMessage() {}\n\nfunc (x *NamedSecuritySchemeOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[41]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSecuritySchemeOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedSecuritySchemeOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{41}\n}\n\nfunc (x *NamedSecuritySchemeOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSecuritySchemeOrReference) GetValue() *SecuritySchemeOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs.\ntype NamedServerVariable struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ServerVariable `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedServerVariable) Reset() {\n\t*x = NamedServerVariable{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[42]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedServerVariable) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedServerVariable) ProtoMessage() {}\n\nfunc (x *NamedServerVariable) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[42]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedServerVariable.ProtoReflect.Descriptor instead.\nfunc (*NamedServerVariable) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{42}\n}\n\nfunc (x *NamedServerVariable) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedServerVariable) GetValue() *ServerVariable {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\ntype NamedString struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedString) Reset() {\n\t*x = NamedString{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[43]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedString) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedString) ProtoMessage() {}\n\nfunc (x *NamedString) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[43]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedString.ProtoReflect.Descriptor instead.\nfunc (*NamedString) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{43}\n}\n\nfunc (x *NamedString) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedString) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\ntype NamedStringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *StringArray `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedStringArray) Reset() {\n\t*x = NamedStringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[44]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedStringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedStringArray) ProtoMessage() {}\n\nfunc (x *NamedStringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[44]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedStringArray.ProtoReflect.Descriptor instead.\nfunc (*NamedStringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{44}\n}\n\nfunc (x *NamedStringArray) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedStringArray) GetValue() *StringArray {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Configuration details for a supported OAuth Flow\ntype OauthFlow struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAuthorizationUrl       string      `protobuf:\"bytes,1,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tTokenUrl               string      `protobuf:\"bytes,2,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tRefreshUrl             string      `protobuf:\"bytes,3,opt,name=refresh_url,json=refreshUrl,proto3\" json:\"refresh_url,omitempty\"`\n\tScopes                 *Strings    `protobuf:\"bytes,4,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *OauthFlow) Reset() {\n\t*x = OauthFlow{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[45]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OauthFlow) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OauthFlow) ProtoMessage() {}\n\nfunc (x *OauthFlow) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[45]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OauthFlow.ProtoReflect.Descriptor instead.\nfunc (*OauthFlow) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{45}\n}\n\nfunc (x *OauthFlow) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetRefreshUrl() string {\n\tif x != nil {\n\t\treturn x.RefreshUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetScopes() *Strings {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlow) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Allows configuration of the supported OAuth Flows.\ntype OauthFlows struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tImplicit               *OauthFlow  `protobuf:\"bytes,1,opt,name=implicit,proto3\" json:\"implicit,omitempty\"`\n\tPassword               *OauthFlow  `protobuf:\"bytes,2,opt,name=password,proto3\" json:\"password,omitempty\"`\n\tClientCredentials      *OauthFlow  `protobuf:\"bytes,3,opt,name=client_credentials,json=clientCredentials,proto3\" json:\"client_credentials,omitempty\"`\n\tAuthorizationCode      *OauthFlow  `protobuf:\"bytes,4,opt,name=authorization_code,json=authorizationCode,proto3\" json:\"authorization_code,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *OauthFlows) Reset() {\n\t*x = OauthFlows{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[46]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OauthFlows) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OauthFlows) ProtoMessage() {}\n\nfunc (x *OauthFlows) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[46]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OauthFlows.ProtoReflect.Descriptor instead.\nfunc (*OauthFlows) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{46}\n}\n\nfunc (x *OauthFlows) GetImplicit() *OauthFlow {\n\tif x != nil {\n\t\treturn x.Implicit\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetPassword() *OauthFlow {\n\tif x != nil {\n\t\treturn x.Password\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetClientCredentials() *OauthFlow {\n\tif x != nil {\n\t\treturn x.ClientCredentials\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetAuthorizationCode() *OauthFlow {\n\tif x != nil {\n\t\treturn x.AuthorizationCode\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Object struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Object) Reset() {\n\t*x = Object{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[47]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Object) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Object) ProtoMessage() {}\n\nfunc (x *Object) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[47]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Object.ProtoReflect.Descriptor instead.\nfunc (*Object) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{47}\n}\n\nfunc (x *Object) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes a single API operation on a path.\ntype Operation struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTags                   []string                `protobuf:\"bytes,1,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tSummary                string                  `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string                  `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs           *ExternalDocs           `protobuf:\"bytes,4,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tOperationId            string                  `protobuf:\"bytes,5,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\tParameters             []*ParameterOrReference `protobuf:\"bytes,6,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tRequestBody            *RequestBodyOrReference `protobuf:\"bytes,7,opt,name=request_body,json=requestBody,proto3\" json:\"request_body,omitempty\"`\n\tResponses              *Responses              `protobuf:\"bytes,8,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tCallbacks              *CallbacksOrReferences  `protobuf:\"bytes,9,opt,name=callbacks,proto3\" json:\"callbacks,omitempty\"`\n\tDeprecated             bool                    `protobuf:\"varint,10,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tSecurity               []*SecurityRequirement  `protobuf:\"bytes,11,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tServers                []*Server               `protobuf:\"bytes,12,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tSpecificationExtension []*NamedAny             `protobuf:\"bytes,13,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Operation) Reset() {\n\t*x = Operation{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[48]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Operation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Operation) ProtoMessage() {}\n\nfunc (x *Operation) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[48]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Operation.ProtoReflect.Descriptor instead.\nfunc (*Operation) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{48}\n}\n\nfunc (x *Operation) GetTags() []string {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetParameters() []*ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetRequestBody() *RequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetResponses() *Responses {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetCallbacks() *CallbacksOrReferences {\n\tif x != nil {\n\t\treturn x.Callbacks\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Operation) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\ntype Parameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string                `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn                     string                `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tDescription            string                `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tRequired               bool                  `protobuf:\"varint,4,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tDeprecated             bool                  `protobuf:\"varint,5,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tAllowEmptyValue        bool                  `protobuf:\"varint,6,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tStyle                  string                `protobuf:\"bytes,7,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                  `protobuf:\"varint,8,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                  `protobuf:\"varint,9,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,10,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,11,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,12,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tContent                *MediaTypes           `protobuf:\"bytes,13,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,14,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Parameter) Reset() {\n\t*x = Parameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[49]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Parameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Parameter) ProtoMessage() {}\n\nfunc (x *Parameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[49]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Parameter.ProtoReflect.Descriptor instead.\nfunc (*Parameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{49}\n}\n\nfunc (x *Parameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ParameterOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ParameterOrReference_Parameter\n\t//\t*ParameterOrReference_Reference\n\tOneof isParameterOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ParameterOrReference) Reset() {\n\t*x = ParameterOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[50]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParameterOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParameterOrReference) ProtoMessage() {}\n\nfunc (x *ParameterOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[50]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParameterOrReference.ProtoReflect.Descriptor instead.\nfunc (*ParameterOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{50}\n}\n\nfunc (m *ParameterOrReference) GetOneof() isParameterOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ParameterOrReference) GetParameter() *Parameter {\n\tif x, ok := x.GetOneof().(*ParameterOrReference_Parameter); ok {\n\t\treturn x.Parameter\n\t}\n\treturn nil\n}\n\nfunc (x *ParameterOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ParameterOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isParameterOrReference_Oneof interface {\n\tisParameterOrReference_Oneof()\n}\n\ntype ParameterOrReference_Parameter struct {\n\tParameter *Parameter `protobuf:\"bytes,1,opt,name=parameter,proto3,oneof\"`\n}\n\ntype ParameterOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ParameterOrReference_Parameter) isParameterOrReference_Oneof() {}\n\nfunc (*ParameterOrReference_Reference) isParameterOrReference_Oneof() {}\n\ntype ParametersOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedParameterOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ParametersOrReferences) Reset() {\n\t*x = ParametersOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[51]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParametersOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParametersOrReferences) ProtoMessage() {}\n\nfunc (x *ParametersOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[51]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParametersOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ParametersOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{51}\n}\n\nfunc (x *ParametersOrReferences) GetAdditionalProperties() []*NamedParameterOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\ntype PathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef                   string                  `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tSummary                string                  `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string                  `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tGet                    *Operation              `protobuf:\"bytes,4,opt,name=get,proto3\" json:\"get,omitempty\"`\n\tPut                    *Operation              `protobuf:\"bytes,5,opt,name=put,proto3\" json:\"put,omitempty\"`\n\tPost                   *Operation              `protobuf:\"bytes,6,opt,name=post,proto3\" json:\"post,omitempty\"`\n\tDelete                 *Operation              `protobuf:\"bytes,7,opt,name=delete,proto3\" json:\"delete,omitempty\"`\n\tOptions                *Operation              `protobuf:\"bytes,8,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tHead                   *Operation              `protobuf:\"bytes,9,opt,name=head,proto3\" json:\"head,omitempty\"`\n\tPatch                  *Operation              `protobuf:\"bytes,10,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\tTrace                  *Operation              `protobuf:\"bytes,11,opt,name=trace,proto3\" json:\"trace,omitempty\"`\n\tServers                []*Server               `protobuf:\"bytes,12,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tParameters             []*ParameterOrReference `protobuf:\"bytes,13,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tSpecificationExtension []*NamedAny             `protobuf:\"bytes,14,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *PathItem) Reset() {\n\t*x = PathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[52]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathItem) ProtoMessage() {}\n\nfunc (x *PathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[52]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathItem.ProtoReflect.Descriptor instead.\nfunc (*PathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{52}\n}\n\nfunc (x *PathItem) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetGet() *Operation {\n\tif x != nil {\n\t\treturn x.Get\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPut() *Operation {\n\tif x != nil {\n\t\treturn x.Put\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPost() *Operation {\n\tif x != nil {\n\t\treturn x.Post\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetDelete() *Operation {\n\tif x != nil {\n\t\treturn x.Delete\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetOptions() *Operation {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetHead() *Operation {\n\tif x != nil {\n\t\treturn x.Head\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPatch() *Operation {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetTrace() *Operation {\n\tif x != nil {\n\t\treturn x.Trace\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetParameters() []*ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\ntype Paths struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath                   []*NamedPathItem `protobuf:\"bytes,1,rep,name=path,proto3\" json:\"path,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,2,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Paths) Reset() {\n\t*x = Paths{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[53]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Paths) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Paths) ProtoMessage() {}\n\nfunc (x *Paths) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[53]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Paths.ProtoReflect.Descriptor instead.\nfunc (*Paths) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{53}\n}\n\nfunc (x *Paths) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *Paths) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Properties struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchemaOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Properties) Reset() {\n\t*x = Properties{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[54]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Properties) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Properties) ProtoMessage() {}\n\nfunc (x *Properties) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[54]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Properties.ProtoReflect.Descriptor instead.\nfunc (*Properties) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{54}\n}\n\nfunc (x *Properties) GetAdditionalProperties() []*NamedSchemaOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\ntype Reference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef        string `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tSummary     string `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n}\n\nfunc (x *Reference) Reset() {\n\t*x = Reference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[55]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Reference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Reference) ProtoMessage() {}\n\nfunc (x *Reference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[55]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Reference.ProtoReflect.Descriptor instead.\nfunc (*Reference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{55}\n}\n\nfunc (x *Reference) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Reference) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Reference) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\ntype RequestBodiesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedRequestBodyOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *RequestBodiesOrReferences) Reset() {\n\t*x = RequestBodiesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[56]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBodiesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBodiesOrReferences) ProtoMessage() {}\n\nfunc (x *RequestBodiesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[56]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBodiesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*RequestBodiesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{56}\n}\n\nfunc (x *RequestBodiesOrReferences) GetAdditionalProperties() []*NamedRequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes a single request body.\ntype RequestBody struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tContent                *MediaTypes `protobuf:\"bytes,2,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tRequired               bool        `protobuf:\"varint,3,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *RequestBody) Reset() {\n\t*x = RequestBody{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[57]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBody) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBody) ProtoMessage() {}\n\nfunc (x *RequestBody) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[57]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBody.ProtoReflect.Descriptor instead.\nfunc (*RequestBody) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{57}\n}\n\nfunc (x *RequestBody) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *RequestBody) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBody) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *RequestBody) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype RequestBodyOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*RequestBodyOrReference_RequestBody\n\t//\t*RequestBodyOrReference_Reference\n\tOneof isRequestBodyOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *RequestBodyOrReference) Reset() {\n\t*x = RequestBodyOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[58]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBodyOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBodyOrReference) ProtoMessage() {}\n\nfunc (x *RequestBodyOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[58]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBodyOrReference.ProtoReflect.Descriptor instead.\nfunc (*RequestBodyOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{58}\n}\n\nfunc (m *RequestBodyOrReference) GetOneof() isRequestBodyOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBodyOrReference) GetRequestBody() *RequestBody {\n\tif x, ok := x.GetOneof().(*RequestBodyOrReference_RequestBody); ok {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBodyOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*RequestBodyOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isRequestBodyOrReference_Oneof interface {\n\tisRequestBodyOrReference_Oneof()\n}\n\ntype RequestBodyOrReference_RequestBody struct {\n\tRequestBody *RequestBody `protobuf:\"bytes,1,opt,name=request_body,json=requestBody,proto3,oneof\"`\n}\n\ntype RequestBodyOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*RequestBodyOrReference_RequestBody) isRequestBodyOrReference_Oneof() {}\n\nfunc (*RequestBodyOrReference_Reference) isRequestBodyOrReference_Oneof() {}\n\n// Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\ntype Response struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string               `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tHeaders                *HeadersOrReferences `protobuf:\"bytes,2,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tContent                *MediaTypes          `protobuf:\"bytes,3,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tLinks                  *LinksOrReferences   `protobuf:\"bytes,4,opt,name=links,proto3\" json:\"links,omitempty\"`\n\tSpecificationExtension []*NamedAny          `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Response) Reset() {\n\t*x = Response{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[59]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Response) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Response) ProtoMessage() {}\n\nfunc (x *Response) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[59]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Response.ProtoReflect.Descriptor instead.\nfunc (*Response) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{59}\n}\n\nfunc (x *Response) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Response) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetLinks() *LinksOrReferences {\n\tif x != nil {\n\t\treturn x.Links\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ResponseOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ResponseOrReference_Response\n\t//\t*ResponseOrReference_Reference\n\tOneof isResponseOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ResponseOrReference) Reset() {\n\t*x = ResponseOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[60]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseOrReference) ProtoMessage() {}\n\nfunc (x *ResponseOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[60]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseOrReference.ProtoReflect.Descriptor instead.\nfunc (*ResponseOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{60}\n}\n\nfunc (m *ResponseOrReference) GetOneof() isResponseOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseOrReference) GetResponse() *Response {\n\tif x, ok := x.GetOneof().(*ResponseOrReference_Response); ok {\n\t\treturn x.Response\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ResponseOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isResponseOrReference_Oneof interface {\n\tisResponseOrReference_Oneof()\n}\n\ntype ResponseOrReference_Response struct {\n\tResponse *Response `protobuf:\"bytes,1,opt,name=response,proto3,oneof\"`\n}\n\ntype ResponseOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ResponseOrReference_Response) isResponseOrReference_Oneof() {}\n\nfunc (*ResponseOrReference_Reference) isResponseOrReference_Oneof() {}\n\n// A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\ntype Responses struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDefault                *ResponseOrReference        `protobuf:\"bytes,1,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tResponseOrReference    []*NamedResponseOrReference `protobuf:\"bytes,2,rep,name=response_or_reference,json=responseOrReference,proto3\" json:\"response_or_reference,omitempty\"`\n\tSpecificationExtension []*NamedAny                 `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Responses) Reset() {\n\t*x = Responses{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[61]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Responses) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Responses) ProtoMessage() {}\n\nfunc (x *Responses) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[61]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Responses.ProtoReflect.Descriptor instead.\nfunc (*Responses) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{61}\n}\n\nfunc (x *Responses) GetDefault() *ResponseOrReference {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetResponseOrReference() []*NamedResponseOrReference {\n\tif x != nil {\n\t\treturn x.ResponseOrReference\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ResponsesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedResponseOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ResponsesOrReferences) Reset() {\n\t*x = ResponsesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[62]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponsesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponsesOrReferences) ProtoMessage() {}\n\nfunc (x *ResponsesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[62]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponsesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ResponsesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{62}\n}\n\nfunc (x *ResponsesOrReferences) GetAdditionalProperties() []*NamedResponseOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\ntype Schema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNullable               bool                      `protobuf:\"varint,1,opt,name=nullable,proto3\" json:\"nullable,omitempty\"`\n\tDiscriminator          *Discriminator            `protobuf:\"bytes,2,opt,name=discriminator,proto3\" json:\"discriminator,omitempty\"`\n\tReadOnly               bool                      `protobuf:\"varint,3,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tWriteOnly              bool                      `protobuf:\"varint,4,opt,name=write_only,json=writeOnly,proto3\" json:\"write_only,omitempty\"`\n\tXml                    *Xml                      `protobuf:\"bytes,5,opt,name=xml,proto3\" json:\"xml,omitempty\"`\n\tExternalDocs           *ExternalDocs             `protobuf:\"bytes,6,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample                *Any                      `protobuf:\"bytes,7,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tDeprecated             bool                      `protobuf:\"varint,8,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tTitle                  string                    `protobuf:\"bytes,9,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tMultipleOf             float64                   `protobuf:\"fixed64,10,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tMaximum                float64                   `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum       bool                      `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum                float64                   `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum       bool                      `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength              int64                     `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength              int64                     `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern                string                    `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems               int64                     `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems               int64                     `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems            bool                      `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tMaxProperties          int64                     `protobuf:\"varint,21,opt,name=max_properties,json=maxProperties,proto3\" json:\"max_properties,omitempty\"`\n\tMinProperties          int64                     `protobuf:\"varint,22,opt,name=min_properties,json=minProperties,proto3\" json:\"min_properties,omitempty\"`\n\tRequired               []string                  `protobuf:\"bytes,23,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tEnum                   []*Any                    `protobuf:\"bytes,24,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tType                   string                    `protobuf:\"bytes,25,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tAllOf                  []*SchemaOrReference      `protobuf:\"bytes,26,rep,name=all_of,json=allOf,proto3\" json:\"all_of,omitempty\"`\n\tOneOf                  []*SchemaOrReference      `protobuf:\"bytes,27,rep,name=one_of,json=oneOf,proto3\" json:\"one_of,omitempty\"`\n\tAnyOf                  []*SchemaOrReference      `protobuf:\"bytes,28,rep,name=any_of,json=anyOf,proto3\" json:\"any_of,omitempty\"`\n\tNot                    *Schema                   `protobuf:\"bytes,29,opt,name=not,proto3\" json:\"not,omitempty\"`\n\tItems                  *ItemsItem                `protobuf:\"bytes,30,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tProperties             *Properties               `protobuf:\"bytes,31,opt,name=properties,proto3\" json:\"properties,omitempty\"`\n\tAdditionalProperties   *AdditionalPropertiesItem `protobuf:\"bytes,32,opt,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n\tDefault                *DefaultType              `protobuf:\"bytes,33,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tDescription            string                    `protobuf:\"bytes,34,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tFormat                 string                    `protobuf:\"bytes,35,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tSpecificationExtension []*NamedAny               `protobuf:\"bytes,36,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Schema) Reset() {\n\t*x = Schema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[63]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Schema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Schema) ProtoMessage() {}\n\nfunc (x *Schema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[63]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Schema.ProtoReflect.Descriptor instead.\nfunc (*Schema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{63}\n}\n\nfunc (x *Schema) GetNullable() bool {\n\tif x != nil {\n\t\treturn x.Nullable\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetDiscriminator() *Discriminator {\n\tif x != nil {\n\t\treturn x.Discriminator\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetWriteOnly() bool {\n\tif x != nil {\n\t\treturn x.WriteOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetXml() *Xml {\n\tif x != nil {\n\t\treturn x.Xml\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxProperties() int64 {\n\tif x != nil {\n\t\treturn x.MaxProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinProperties() int64 {\n\tif x != nil {\n\t\treturn x.MinProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetAllOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.AllOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetOneOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.OneOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAnyOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.AnyOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetNot() *Schema {\n\tif x != nil {\n\t\treturn x.Not\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetItems() *ItemsItem {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetProperties() *Properties {\n\tif x != nil {\n\t\treturn x.Properties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAdditionalProperties() *AdditionalPropertiesItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDefault() *DefaultType {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype SchemaOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SchemaOrReference_Schema\n\t//\t*SchemaOrReference_Reference\n\tOneof isSchemaOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SchemaOrReference) Reset() {\n\t*x = SchemaOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[64]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemaOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemaOrReference) ProtoMessage() {}\n\nfunc (x *SchemaOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[64]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemaOrReference.ProtoReflect.Descriptor instead.\nfunc (*SchemaOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{64}\n}\n\nfunc (m *SchemaOrReference) GetOneof() isSchemaOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaOrReference) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*SchemaOrReference_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*SchemaOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isSchemaOrReference_Oneof interface {\n\tisSchemaOrReference_Oneof()\n}\n\ntype SchemaOrReference_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype SchemaOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*SchemaOrReference_Schema) isSchemaOrReference_Oneof() {}\n\nfunc (*SchemaOrReference_Reference) isSchemaOrReference_Oneof() {}\n\ntype SchemasOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchemaOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SchemasOrReferences) Reset() {\n\t*x = SchemasOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[65]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemasOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemasOrReferences) ProtoMessage() {}\n\nfunc (x *SchemasOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[65]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemasOrReferences.ProtoReflect.Descriptor instead.\nfunc (*SchemasOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{65}\n}\n\nfunc (x *SchemasOrReferences) GetAdditionalProperties() []*NamedSchemaOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request.\ntype SecurityRequirement struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedStringArray `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityRequirement) Reset() {\n\t*x = SecurityRequirement{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[66]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityRequirement) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityRequirement) ProtoMessage() {}\n\nfunc (x *SecurityRequirement) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[66]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityRequirement.ProtoReflect.Descriptor instead.\nfunc (*SecurityRequirement) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{66}\n}\n\nfunc (x *SecurityRequirement) GetAdditionalProperties() []*NamedStringArray {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect.   Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE.\ntype SecurityScheme struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType                   string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tName                   string      `protobuf:\"bytes,3,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn                     string      `protobuf:\"bytes,4,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tScheme                 string      `protobuf:\"bytes,5,opt,name=scheme,proto3\" json:\"scheme,omitempty\"`\n\tBearerFormat           string      `protobuf:\"bytes,6,opt,name=bearer_format,json=bearerFormat,proto3\" json:\"bearer_format,omitempty\"`\n\tFlows                  *OauthFlows `protobuf:\"bytes,7,opt,name=flows,proto3\" json:\"flows,omitempty\"`\n\tOpenIdConnectUrl       string      `protobuf:\"bytes,8,opt,name=open_id_connect_url,json=openIdConnectUrl,proto3\" json:\"open_id_connect_url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,9,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *SecurityScheme) Reset() {\n\t*x = SecurityScheme{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[67]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityScheme) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityScheme) ProtoMessage() {}\n\nfunc (x *SecurityScheme) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[67]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityScheme.ProtoReflect.Descriptor instead.\nfunc (*SecurityScheme) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{67}\n}\n\nfunc (x *SecurityScheme) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetScheme() string {\n\tif x != nil {\n\t\treturn x.Scheme\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetBearerFormat() string {\n\tif x != nil {\n\t\treturn x.BearerFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetFlows() *OauthFlows {\n\tif x != nil {\n\t\treturn x.Flows\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityScheme) GetOpenIdConnectUrl() string {\n\tif x != nil {\n\t\treturn x.OpenIdConnectUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype SecuritySchemeOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SecuritySchemeOrReference_SecurityScheme\n\t//\t*SecuritySchemeOrReference_Reference\n\tOneof isSecuritySchemeOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SecuritySchemeOrReference) Reset() {\n\t*x = SecuritySchemeOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[68]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecuritySchemeOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecuritySchemeOrReference) ProtoMessage() {}\n\nfunc (x *SecuritySchemeOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[68]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecuritySchemeOrReference.ProtoReflect.Descriptor instead.\nfunc (*SecuritySchemeOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{68}\n}\n\nfunc (m *SecuritySchemeOrReference) GetOneof() isSecuritySchemeOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SecuritySchemeOrReference) GetSecurityScheme() *SecurityScheme {\n\tif x, ok := x.GetOneof().(*SecuritySchemeOrReference_SecurityScheme); ok {\n\t\treturn x.SecurityScheme\n\t}\n\treturn nil\n}\n\nfunc (x *SecuritySchemeOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*SecuritySchemeOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isSecuritySchemeOrReference_Oneof interface {\n\tisSecuritySchemeOrReference_Oneof()\n}\n\ntype SecuritySchemeOrReference_SecurityScheme struct {\n\tSecurityScheme *SecurityScheme `protobuf:\"bytes,1,opt,name=security_scheme,json=securityScheme,proto3,oneof\"`\n}\n\ntype SecuritySchemeOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*SecuritySchemeOrReference_SecurityScheme) isSecuritySchemeOrReference_Oneof() {}\n\nfunc (*SecuritySchemeOrReference_Reference) isSecuritySchemeOrReference_Oneof() {}\n\ntype SecuritySchemesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSecuritySchemeOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecuritySchemesOrReferences) Reset() {\n\t*x = SecuritySchemesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[69]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecuritySchemesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecuritySchemesOrReferences) ProtoMessage() {}\n\nfunc (x *SecuritySchemesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[69]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecuritySchemesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*SecuritySchemesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{69}\n}\n\nfunc (x *SecuritySchemesOrReferences) GetAdditionalProperties() []*NamedSecuritySchemeOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// An object representing a Server.\ntype Server struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tUrl                    string           `protobuf:\"bytes,1,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tDescription            string           `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVariables              *ServerVariables `protobuf:\"bytes,3,opt,name=variables,proto3\" json:\"variables,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Server) Reset() {\n\t*x = Server{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[70]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Server) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Server) ProtoMessage() {}\n\nfunc (x *Server) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[70]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Server.ProtoReflect.Descriptor instead.\nfunc (*Server) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{70}\n}\n\nfunc (x *Server) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Server) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Server) GetVariables() *ServerVariables {\n\tif x != nil {\n\t\treturn x.Variables\n\t}\n\treturn nil\n}\n\nfunc (x *Server) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// An object representing a Server Variable for server URL template substitution.\ntype ServerVariable struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tEnum                   []string    `protobuf:\"bytes,1,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tDefault                string      `protobuf:\"bytes,2,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *ServerVariable) Reset() {\n\t*x = ServerVariable{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[71]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ServerVariable) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServerVariable) ProtoMessage() {}\n\nfunc (x *ServerVariable) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[71]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServerVariable.ProtoReflect.Descriptor instead.\nfunc (*ServerVariable) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{71}\n}\n\nfunc (x *ServerVariable) GetEnum() []string {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *ServerVariable) GetDefault() string {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServerVariable) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServerVariable) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ServerVariables struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedServerVariable `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ServerVariables) Reset() {\n\t*x = ServerVariables{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[72]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ServerVariables) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServerVariables) ProtoMessage() {}\n\nfunc (x *ServerVariables) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[72]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServerVariables.ProtoReflect.Descriptor instead.\nfunc (*ServerVariables) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{72}\n}\n\nfunc (x *ServerVariables) GetAdditionalProperties() []*NamedServerVariable {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Any property starting with x- is valid.\ntype SpecificationExtension struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SpecificationExtension_Number\n\t//\t*SpecificationExtension_Boolean\n\t//\t*SpecificationExtension_String_\n\tOneof isSpecificationExtension_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SpecificationExtension) Reset() {\n\t*x = SpecificationExtension{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[73]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SpecificationExtension) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SpecificationExtension) ProtoMessage() {}\n\nfunc (x *SpecificationExtension) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[73]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SpecificationExtension.ProtoReflect.Descriptor instead.\nfunc (*SpecificationExtension) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{73}\n}\n\nfunc (m *SpecificationExtension) GetOneof() isSpecificationExtension_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SpecificationExtension) GetNumber() float64 {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_Number); ok {\n\t\treturn x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *SpecificationExtension) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\nfunc (x *SpecificationExtension) GetString_() string {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_String_); ok {\n\t\treturn x.String_\n\t}\n\treturn \"\"\n}\n\ntype isSpecificationExtension_Oneof interface {\n\tisSpecificationExtension_Oneof()\n}\n\ntype SpecificationExtension_Number struct {\n\tNumber float64 `protobuf:\"fixed64,1,opt,name=number,proto3,oneof\"`\n}\n\ntype SpecificationExtension_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\ntype SpecificationExtension_String_ struct {\n\tString_ string `protobuf:\"bytes,3,opt,name=string,proto3,oneof\"`\n}\n\nfunc (*SpecificationExtension_Number) isSpecificationExtension_Oneof() {}\n\nfunc (*SpecificationExtension_Boolean) isSpecificationExtension_Oneof() {}\n\nfunc (*SpecificationExtension_String_) isSpecificationExtension_Oneof() {}\n\ntype StringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *StringArray) Reset() {\n\t*x = StringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[74]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StringArray) ProtoMessage() {}\n\nfunc (x *StringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[74]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StringArray.ProtoReflect.Descriptor instead.\nfunc (*StringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{74}\n}\n\nfunc (x *StringArray) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Strings struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedString `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Strings) Reset() {\n\t*x = Strings{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[75]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Strings) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Strings) ProtoMessage() {}\n\nfunc (x *Strings) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[75]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Strings.ProtoReflect.Descriptor instead.\nfunc (*Strings) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{75}\n}\n\nfunc (x *Strings) GetAdditionalProperties() []*NamedString {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\ntype Tag struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string        `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tDescription            string        `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs           *ExternalDocs `protobuf:\"bytes,3,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tSpecificationExtension []*NamedAny   `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Tag) Reset() {\n\t*x = Tag{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[76]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Tag) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Tag) ProtoMessage() {}\n\nfunc (x *Tag) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[76]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Tag.ProtoReflect.Descriptor instead.\nfunc (*Tag) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{76}\n}\n\nfunc (x *Tag) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Tag) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\ntype Xml struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tNamespace              string      `protobuf:\"bytes,2,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tPrefix                 string      `protobuf:\"bytes,3,opt,name=prefix,proto3\" json:\"prefix,omitempty\"`\n\tAttribute              bool        `protobuf:\"varint,4,opt,name=attribute,proto3\" json:\"attribute,omitempty\"`\n\tWrapped                bool        `protobuf:\"varint,5,opt,name=wrapped,proto3\" json:\"wrapped,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,6,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Xml) Reset() {\n\t*x = Xml{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[77]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Xml) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Xml) ProtoMessage() {}\n\nfunc (x *Xml) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[77]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Xml.ProtoReflect.Descriptor instead.\nfunc (*Xml) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{77}\n}\n\nfunc (x *Xml) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetNamespace() string {\n\tif x != nil {\n\t\treturn x.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetPrefix() string {\n\tif x != nil {\n\t\treturn x.Prefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetAttribute() bool {\n\tif x != nil {\n\t\treturn x.Attribute\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetWrapped() bool {\n\tif x != nil {\n\t\treturn x.Wrapped\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\nvar File_openapiv3_OpenAPIv3_proto protoreflect.FileDescriptor\n\nvar file_openapiv3_OpenAPIv3_proto_rawDesc = []byte{\n\t0x0a, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x2f, 0x4f, 0x70, 0x65, 0x6e,\n\t0x41, 0x50, 0x49, 0x76, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12,\n\t0x4f, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x11, 0x73,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05,\n\t0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x45, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x2a, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x79, 0x0a, 0x0f,\n\t0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,\n\t0x23, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52,\n\t0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n\t0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07,\n\t0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x88, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c,\n\t0x62, 0x61, 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70,\n\t0x61, 0x74, 0x68, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x61,\n\t0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61,\n\t0x63, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x35,\n\t0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x72,\n\t0x0a, 0x15, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64,\n\t0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,\n\t0x65, 0x73, 0x22, 0xac, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n\t0x73, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x3f, 0x0a, 0x09,\n\t0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x73,\n\t0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x42, 0x0a,\n\t0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x73, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12,\n\t0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x69, 0x65,\n\t0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x69,\n\t0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d,\n\t0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a,\n\t0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,\n\t0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75,\n\t0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0f, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05,\n\t0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b,\n\t0x73, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x09,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x94, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,\n\t0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65,\n\t0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79,\n\t0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x66, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x61,\n\t0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,\n\t0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,\n\t0x72, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x18, 0x0a,\n\t0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,\n\t0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66,\n\t0x22, 0xb2, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74,\n\t0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69,\n\t0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x6d,\n\t0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,\n\t0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x04,\n\t0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e,\n\t0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,\n\t0x12, 0x27, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x11, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74,\n\t0x68, 0x73, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,\n\t0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f,\n\t0x6e, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n\t0x73, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23,\n\t0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74,\n\t0x61, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x64, 0x6f, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f,\n\t0x63, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21,\n\t0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,\n\t0x65, 0x12, 0x39, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05,\n\t0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x79,\n\t0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e,\n\t0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x65, 0x72,\n\t0x76, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12,\n\t0x4e, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0xe2, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75,\n\t0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25,\n\t0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n\t0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x09,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x70, 0x0a, 0x14,\n\t0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x57,\n\t0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,\n\t0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,\n\t0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x4d, 0x0a, 0x17,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x04, 0x0a, 0x06,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75,\n\t0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75,\n\t0x69, 0x72, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,\n\t0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,\n\t0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d,\n\t0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65,\n\t0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64,\n\t0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65,\n\t0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76,\n\t0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52,\n\t0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29,\n\t0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79,\n\t0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,\n\t0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73,\n\t0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65,\n\t0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79,\n\t0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x48, 0x65, 0x61,\n\t0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c,\n\t0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x09,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x6e, 0x0a, 0x13,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc9, 0x02, 0x0a,\n\t0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,\n\t0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a,\n\t0x10, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,\n\t0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x4f, 0x66,\n\t0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61,\n\t0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63,\n\t0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,\n\t0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69,\n\t0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18,\n\t0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x5a, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f,\n\t0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x22, 0x7e, 0x0a, 0x07, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe8, 0x02, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x23, 0x0a,\n\t0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,\n\t0x65, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,\n\t0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,\n\t0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72,\n\t0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f,\n\t0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65,\n\t0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f,\n\t0x64, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0x79, 0x0a, 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x10, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69,\n\t0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x6a, 0x0a, 0x11, 0x4c, 0x69,\n\t0x6e, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12,\n\t0x55, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xad, 0x02, 0x0a, 0x09, 0x4d, 0x65, 0x64, 0x69, 0x61,\n\t0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29, 0x0a, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n\t0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x65,\n\t0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x0a, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54,\n\t0x79, 0x70, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52,\n\t0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x65, 0x0a, 0x18,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6f,\n\t0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x22, 0x63, 0x0a, 0x17, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x16, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5d, 0x0a, 0x14,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x51, 0x0a, 0x0e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65,\n\t0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67,\n\t0x0a, 0x19, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65,\n\t0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x1b, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,\n\t0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x65, 0x0a, 0x18, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x16,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x71, 0x0a, 0x1e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x5b, 0x0a, 0x13, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65,\n\t0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,\n\t0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x37, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12,\n\t0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04,\n\t0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72,\n\t0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0xf2, 0x01, 0x0a, 0x09, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2b, 0x0a,\n\t0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75,\n\t0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,\n\t0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f,\n\t0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,\n\t0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65,\n\t0x73, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65,\n\t0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70,\n\t0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x73,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcd, 0x02, 0x0a, 0x0a, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c,\n\t0x6f, 0x77, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x08, 0x69, 0x6d,\n\t0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,\n\t0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52,\n\t0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x44, 0x0a, 0x12, 0x63, 0x6c, 0x69,\n\t0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x11, 0x63, 0x6c,\n\t0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12,\n\t0x44, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c,\n\t0x6f, 0x77, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x49,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x96, 0x05, 0x0a, 0x09, 0x4f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75,\n\t0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52,\n\t0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x72,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f,\n\t0x64, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62,\n\t0x61, 0x63, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,\n\t0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, 0x63,\n\t0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72,\n\t0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75,\n\t0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,\n\t0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76,\n\t0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xb1, 0x04, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,\n\t0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,\n\t0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,\n\t0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,\n\t0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x70, 0x74,\n\t0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61,\n\t0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14,\n\t0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,\n\t0x74, 0x79, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x12, 0x25,\n\t0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,\n\t0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,\n\t0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29, 0x0a, 0x07,\n\t0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07,\n\t0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,\n\t0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07,\n\t0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x35, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a,\n\t0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x74, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73,\n\t0x12, 0x5a, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xfa, 0x04, 0x0a,\n\t0x08, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65,\n\t0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07,\n\t0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x65,\n\t0x74, 0x12, 0x27, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f,\n\t0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,\n\t0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18,\n\t0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65,\n\t0x6c, 0x65, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64,\n\t0x12, 0x2b, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65,\n\t0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a,\n\t0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65,\n\t0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,\n\t0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a,\n\t0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x05, 0x50, 0x61,\n\t0x74, 0x68, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70, 0x61,\n\t0x74, 0x68, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x65, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d,\n\t0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61,\n\t0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,\n\t0x6f, 0x64, 0x69, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x73, 0x12, 0x5c, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0xcc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,\n\t0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x96,\n\t0x01, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x65, 0x71,\n\t0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71,\n\t0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75,\n\t0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07,\n\t0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x9d, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,\n\t0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,\n\t0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,\n\t0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f,\n\t0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52,\n\t0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e,\n\t0x65, 0x6f, 0x66, 0x22, 0xef, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n\t0x73, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x15,\n\t0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x52, 0x13, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x72, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,\n\t0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x59,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xaf, 0x0b, 0x0a, 0x06, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65,\n\t0x12, 0x3f, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f,\n\t0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74,\n\t0x6f, 0x72, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f,\n\t0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1d,\n\t0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x21, 0x0a,\n\t0x03, 0x78, 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x58, 0x6d, 0x6c, 0x52, 0x03, 0x78, 0x6d, 0x6c,\n\t0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63,\n\t0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63,\n\t0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12,\n\t0x29, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,\n\t0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69,\n\t0x74, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01,\n\t0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,\n\t0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d,\n\t0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01,\n\t0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a,\n\t0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,\n\t0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d,\n\t0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d,\n\t0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,\n\t0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,\n\t0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x17,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x23,\n\t0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x6c, 0x6c, 0x5f, 0x6f,\n\t0x66, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x6c, 0x6c, 0x4f, 0x66, 0x12, 0x34, 0x0a,\n\t0x06, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x6f, 0x6e,\n\t0x65, 0x4f, 0x66, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x66, 0x18, 0x1c, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x79, 0x4f, 0x66, 0x12, 0x24, 0x0a, 0x03, 0x6e, 0x6f, 0x74,\n\t0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x03, 0x6e, 0x6f, 0x74, 0x12,\n\t0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x0a,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x20, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x31, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65,\n\t0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75,\n\t0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x23,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4d, 0x0a, 0x17,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x11,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12,\n\t0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22,\n\t0x6e, 0x0a, 0x13, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0x68, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69,\n\t0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72,\n\t0x72, 0x61, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xd3, 0x02, 0x0a, 0x0e, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04,\n\t0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x23,\n\t0x0a, 0x0d, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72,\n\t0x6d, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77,\n\t0x73, 0x12, 0x2d, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e,\n\t0x6e, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,\n\t0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0xa2, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x45, 0x0a,\n\t0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00,\n\t0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x7e, 0x0a, 0x1b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,\n\t0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,\n\t0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,\n\t0x6c, 0x65, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x4d,\n\t0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01,\n\t0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,\n\t0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,\n\t0x65, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x20,\n\t0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0x67, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c,\n\t0x65, 0x73, 0x12, 0x54, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,\n\t0x6c, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x71, 0x0a, 0x16, 0x53, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x07,\n\t0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,\n\t0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x23, 0x0a, 0x0b, 0x53,\n\t0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x22, 0x57, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x61,\n\t0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72,\n\t0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x03, 0x54, 0x61,\n\t0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd6, 0x01, 0x0a, 0x03, 0x58, 0x6d, 0x6c, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,\n\t0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69,\n\t0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72,\n\t0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e,\n\t0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33,\n\t0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,\n\t0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x3b, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_openapiv3_OpenAPIv3_proto_rawDescOnce sync.Once\n\tfile_openapiv3_OpenAPIv3_proto_rawDescData = file_openapiv3_OpenAPIv3_proto_rawDesc\n)\n\nfunc file_openapiv3_OpenAPIv3_proto_rawDescGZIP() []byte {\n\tfile_openapiv3_OpenAPIv3_proto_rawDescOnce.Do(func() {\n\t\tfile_openapiv3_OpenAPIv3_proto_rawDescData = protoimpl.X.CompressGZIP(file_openapiv3_OpenAPIv3_proto_rawDescData)\n\t})\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescData\n}\n\nvar file_openapiv3_OpenAPIv3_proto_msgTypes = make([]protoimpl.MessageInfo, 78)\nvar file_openapiv3_OpenAPIv3_proto_goTypes = []interface{}{\n\t(*AdditionalPropertiesItem)(nil),       // 0: openapi.v3.AdditionalPropertiesItem\n\t(*Any)(nil),                            // 1: openapi.v3.Any\n\t(*AnyOrExpression)(nil),                // 2: openapi.v3.AnyOrExpression\n\t(*Callback)(nil),                       // 3: openapi.v3.Callback\n\t(*CallbackOrReference)(nil),            // 4: openapi.v3.CallbackOrReference\n\t(*CallbacksOrReferences)(nil),          // 5: openapi.v3.CallbacksOrReferences\n\t(*Components)(nil),                     // 6: openapi.v3.Components\n\t(*Contact)(nil),                        // 7: openapi.v3.Contact\n\t(*DefaultType)(nil),                    // 8: openapi.v3.DefaultType\n\t(*Discriminator)(nil),                  // 9: openapi.v3.Discriminator\n\t(*Document)(nil),                       // 10: openapi.v3.Document\n\t(*Encoding)(nil),                       // 11: openapi.v3.Encoding\n\t(*Encodings)(nil),                      // 12: openapi.v3.Encodings\n\t(*Example)(nil),                        // 13: openapi.v3.Example\n\t(*ExampleOrReference)(nil),             // 14: openapi.v3.ExampleOrReference\n\t(*ExamplesOrReferences)(nil),           // 15: openapi.v3.ExamplesOrReferences\n\t(*Expression)(nil),                     // 16: openapi.v3.Expression\n\t(*ExternalDocs)(nil),                   // 17: openapi.v3.ExternalDocs\n\t(*Header)(nil),                         // 18: openapi.v3.Header\n\t(*HeaderOrReference)(nil),              // 19: openapi.v3.HeaderOrReference\n\t(*HeadersOrReferences)(nil),            // 20: openapi.v3.HeadersOrReferences\n\t(*Info)(nil),                           // 21: openapi.v3.Info\n\t(*ItemsItem)(nil),                      // 22: openapi.v3.ItemsItem\n\t(*License)(nil),                        // 23: openapi.v3.License\n\t(*Link)(nil),                           // 24: openapi.v3.Link\n\t(*LinkOrReference)(nil),                // 25: openapi.v3.LinkOrReference\n\t(*LinksOrReferences)(nil),              // 26: openapi.v3.LinksOrReferences\n\t(*MediaType)(nil),                      // 27: openapi.v3.MediaType\n\t(*MediaTypes)(nil),                     // 28: openapi.v3.MediaTypes\n\t(*NamedAny)(nil),                       // 29: openapi.v3.NamedAny\n\t(*NamedCallbackOrReference)(nil),       // 30: openapi.v3.NamedCallbackOrReference\n\t(*NamedEncoding)(nil),                  // 31: openapi.v3.NamedEncoding\n\t(*NamedExampleOrReference)(nil),        // 32: openapi.v3.NamedExampleOrReference\n\t(*NamedHeaderOrReference)(nil),         // 33: openapi.v3.NamedHeaderOrReference\n\t(*NamedLinkOrReference)(nil),           // 34: openapi.v3.NamedLinkOrReference\n\t(*NamedMediaType)(nil),                 // 35: openapi.v3.NamedMediaType\n\t(*NamedParameterOrReference)(nil),      // 36: openapi.v3.NamedParameterOrReference\n\t(*NamedPathItem)(nil),                  // 37: openapi.v3.NamedPathItem\n\t(*NamedRequestBodyOrReference)(nil),    // 38: openapi.v3.NamedRequestBodyOrReference\n\t(*NamedResponseOrReference)(nil),       // 39: openapi.v3.NamedResponseOrReference\n\t(*NamedSchemaOrReference)(nil),         // 40: openapi.v3.NamedSchemaOrReference\n\t(*NamedSecuritySchemeOrReference)(nil), // 41: openapi.v3.NamedSecuritySchemeOrReference\n\t(*NamedServerVariable)(nil),            // 42: openapi.v3.NamedServerVariable\n\t(*NamedString)(nil),                    // 43: openapi.v3.NamedString\n\t(*NamedStringArray)(nil),               // 44: openapi.v3.NamedStringArray\n\t(*OauthFlow)(nil),                      // 45: openapi.v3.OauthFlow\n\t(*OauthFlows)(nil),                     // 46: openapi.v3.OauthFlows\n\t(*Object)(nil),                         // 47: openapi.v3.Object\n\t(*Operation)(nil),                      // 48: openapi.v3.Operation\n\t(*Parameter)(nil),                      // 49: openapi.v3.Parameter\n\t(*ParameterOrReference)(nil),           // 50: openapi.v3.ParameterOrReference\n\t(*ParametersOrReferences)(nil),         // 51: openapi.v3.ParametersOrReferences\n\t(*PathItem)(nil),                       // 52: openapi.v3.PathItem\n\t(*Paths)(nil),                          // 53: openapi.v3.Paths\n\t(*Properties)(nil),                     // 54: openapi.v3.Properties\n\t(*Reference)(nil),                      // 55: openapi.v3.Reference\n\t(*RequestBodiesOrReferences)(nil),      // 56: openapi.v3.RequestBodiesOrReferences\n\t(*RequestBody)(nil),                    // 57: openapi.v3.RequestBody\n\t(*RequestBodyOrReference)(nil),         // 58: openapi.v3.RequestBodyOrReference\n\t(*Response)(nil),                       // 59: openapi.v3.Response\n\t(*ResponseOrReference)(nil),            // 60: openapi.v3.ResponseOrReference\n\t(*Responses)(nil),                      // 61: openapi.v3.Responses\n\t(*ResponsesOrReferences)(nil),          // 62: openapi.v3.ResponsesOrReferences\n\t(*Schema)(nil),                         // 63: openapi.v3.Schema\n\t(*SchemaOrReference)(nil),              // 64: openapi.v3.SchemaOrReference\n\t(*SchemasOrReferences)(nil),            // 65: openapi.v3.SchemasOrReferences\n\t(*SecurityRequirement)(nil),            // 66: openapi.v3.SecurityRequirement\n\t(*SecurityScheme)(nil),                 // 67: openapi.v3.SecurityScheme\n\t(*SecuritySchemeOrReference)(nil),      // 68: openapi.v3.SecuritySchemeOrReference\n\t(*SecuritySchemesOrReferences)(nil),    // 69: openapi.v3.SecuritySchemesOrReferences\n\t(*Server)(nil),                         // 70: openapi.v3.Server\n\t(*ServerVariable)(nil),                 // 71: openapi.v3.ServerVariable\n\t(*ServerVariables)(nil),                // 72: openapi.v3.ServerVariables\n\t(*SpecificationExtension)(nil),         // 73: openapi.v3.SpecificationExtension\n\t(*StringArray)(nil),                    // 74: openapi.v3.StringArray\n\t(*Strings)(nil),                        // 75: openapi.v3.Strings\n\t(*Tag)(nil),                            // 76: openapi.v3.Tag\n\t(*Xml)(nil),                            // 77: openapi.v3.Xml\n\t(*anypb.Any)(nil),                      // 78: google.protobuf.Any\n}\nvar file_openapiv3_OpenAPIv3_proto_depIdxs = []int32{\n\t64,  // 0: openapi.v3.AdditionalPropertiesItem.schema_or_reference:type_name -> openapi.v3.SchemaOrReference\n\t78,  // 1: openapi.v3.Any.value:type_name -> google.protobuf.Any\n\t1,   // 2: openapi.v3.AnyOrExpression.any:type_name -> openapi.v3.Any\n\t16,  // 3: openapi.v3.AnyOrExpression.expression:type_name -> openapi.v3.Expression\n\t37,  // 4: openapi.v3.Callback.path:type_name -> openapi.v3.NamedPathItem\n\t29,  // 5: openapi.v3.Callback.specification_extension:type_name -> openapi.v3.NamedAny\n\t3,   // 6: openapi.v3.CallbackOrReference.callback:type_name -> openapi.v3.Callback\n\t55,  // 7: openapi.v3.CallbackOrReference.reference:type_name -> openapi.v3.Reference\n\t30,  // 8: openapi.v3.CallbacksOrReferences.additional_properties:type_name -> openapi.v3.NamedCallbackOrReference\n\t65,  // 9: openapi.v3.Components.schemas:type_name -> openapi.v3.SchemasOrReferences\n\t62,  // 10: openapi.v3.Components.responses:type_name -> openapi.v3.ResponsesOrReferences\n\t51,  // 11: openapi.v3.Components.parameters:type_name -> openapi.v3.ParametersOrReferences\n\t15,  // 12: openapi.v3.Components.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t56,  // 13: openapi.v3.Components.request_bodies:type_name -> openapi.v3.RequestBodiesOrReferences\n\t20,  // 14: openapi.v3.Components.headers:type_name -> openapi.v3.HeadersOrReferences\n\t69,  // 15: openapi.v3.Components.security_schemes:type_name -> openapi.v3.SecuritySchemesOrReferences\n\t26,  // 16: openapi.v3.Components.links:type_name -> openapi.v3.LinksOrReferences\n\t5,   // 17: openapi.v3.Components.callbacks:type_name -> openapi.v3.CallbacksOrReferences\n\t29,  // 18: openapi.v3.Components.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 19: openapi.v3.Contact.specification_extension:type_name -> openapi.v3.NamedAny\n\t75,  // 20: openapi.v3.Discriminator.mapping:type_name -> openapi.v3.Strings\n\t29,  // 21: openapi.v3.Discriminator.specification_extension:type_name -> openapi.v3.NamedAny\n\t21,  // 22: openapi.v3.Document.info:type_name -> openapi.v3.Info\n\t70,  // 23: openapi.v3.Document.servers:type_name -> openapi.v3.Server\n\t53,  // 24: openapi.v3.Document.paths:type_name -> openapi.v3.Paths\n\t6,   // 25: openapi.v3.Document.components:type_name -> openapi.v3.Components\n\t66,  // 26: openapi.v3.Document.security:type_name -> openapi.v3.SecurityRequirement\n\t76,  // 27: openapi.v3.Document.tags:type_name -> openapi.v3.Tag\n\t17,  // 28: openapi.v3.Document.external_docs:type_name -> openapi.v3.ExternalDocs\n\t29,  // 29: openapi.v3.Document.specification_extension:type_name -> openapi.v3.NamedAny\n\t20,  // 30: openapi.v3.Encoding.headers:type_name -> openapi.v3.HeadersOrReferences\n\t29,  // 31: openapi.v3.Encoding.specification_extension:type_name -> openapi.v3.NamedAny\n\t31,  // 32: openapi.v3.Encodings.additional_properties:type_name -> openapi.v3.NamedEncoding\n\t1,   // 33: openapi.v3.Example.value:type_name -> openapi.v3.Any\n\t29,  // 34: openapi.v3.Example.specification_extension:type_name -> openapi.v3.NamedAny\n\t13,  // 35: openapi.v3.ExampleOrReference.example:type_name -> openapi.v3.Example\n\t55,  // 36: openapi.v3.ExampleOrReference.reference:type_name -> openapi.v3.Reference\n\t32,  // 37: openapi.v3.ExamplesOrReferences.additional_properties:type_name -> openapi.v3.NamedExampleOrReference\n\t29,  // 38: openapi.v3.Expression.additional_properties:type_name -> openapi.v3.NamedAny\n\t29,  // 39: openapi.v3.ExternalDocs.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 40: openapi.v3.Header.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 41: openapi.v3.Header.example:type_name -> openapi.v3.Any\n\t15,  // 42: openapi.v3.Header.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t28,  // 43: openapi.v3.Header.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 44: openapi.v3.Header.specification_extension:type_name -> openapi.v3.NamedAny\n\t18,  // 45: openapi.v3.HeaderOrReference.header:type_name -> openapi.v3.Header\n\t55,  // 46: openapi.v3.HeaderOrReference.reference:type_name -> openapi.v3.Reference\n\t33,  // 47: openapi.v3.HeadersOrReferences.additional_properties:type_name -> openapi.v3.NamedHeaderOrReference\n\t7,   // 48: openapi.v3.Info.contact:type_name -> openapi.v3.Contact\n\t23,  // 49: openapi.v3.Info.license:type_name -> openapi.v3.License\n\t29,  // 50: openapi.v3.Info.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 51: openapi.v3.ItemsItem.schema_or_reference:type_name -> openapi.v3.SchemaOrReference\n\t29,  // 52: openapi.v3.License.specification_extension:type_name -> openapi.v3.NamedAny\n\t2,   // 53: openapi.v3.Link.parameters:type_name -> openapi.v3.AnyOrExpression\n\t2,   // 54: openapi.v3.Link.request_body:type_name -> openapi.v3.AnyOrExpression\n\t70,  // 55: openapi.v3.Link.server:type_name -> openapi.v3.Server\n\t29,  // 56: openapi.v3.Link.specification_extension:type_name -> openapi.v3.NamedAny\n\t24,  // 57: openapi.v3.LinkOrReference.link:type_name -> openapi.v3.Link\n\t55,  // 58: openapi.v3.LinkOrReference.reference:type_name -> openapi.v3.Reference\n\t34,  // 59: openapi.v3.LinksOrReferences.additional_properties:type_name -> openapi.v3.NamedLinkOrReference\n\t64,  // 60: openapi.v3.MediaType.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 61: openapi.v3.MediaType.example:type_name -> openapi.v3.Any\n\t15,  // 62: openapi.v3.MediaType.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t12,  // 63: openapi.v3.MediaType.encoding:type_name -> openapi.v3.Encodings\n\t29,  // 64: openapi.v3.MediaType.specification_extension:type_name -> openapi.v3.NamedAny\n\t35,  // 65: openapi.v3.MediaTypes.additional_properties:type_name -> openapi.v3.NamedMediaType\n\t1,   // 66: openapi.v3.NamedAny.value:type_name -> openapi.v3.Any\n\t4,   // 67: openapi.v3.NamedCallbackOrReference.value:type_name -> openapi.v3.CallbackOrReference\n\t11,  // 68: openapi.v3.NamedEncoding.value:type_name -> openapi.v3.Encoding\n\t14,  // 69: openapi.v3.NamedExampleOrReference.value:type_name -> openapi.v3.ExampleOrReference\n\t19,  // 70: openapi.v3.NamedHeaderOrReference.value:type_name -> openapi.v3.HeaderOrReference\n\t25,  // 71: openapi.v3.NamedLinkOrReference.value:type_name -> openapi.v3.LinkOrReference\n\t27,  // 72: openapi.v3.NamedMediaType.value:type_name -> openapi.v3.MediaType\n\t50,  // 73: openapi.v3.NamedParameterOrReference.value:type_name -> openapi.v3.ParameterOrReference\n\t52,  // 74: openapi.v3.NamedPathItem.value:type_name -> openapi.v3.PathItem\n\t58,  // 75: openapi.v3.NamedRequestBodyOrReference.value:type_name -> openapi.v3.RequestBodyOrReference\n\t60,  // 76: openapi.v3.NamedResponseOrReference.value:type_name -> openapi.v3.ResponseOrReference\n\t64,  // 77: openapi.v3.NamedSchemaOrReference.value:type_name -> openapi.v3.SchemaOrReference\n\t68,  // 78: openapi.v3.NamedSecuritySchemeOrReference.value:type_name -> openapi.v3.SecuritySchemeOrReference\n\t71,  // 79: openapi.v3.NamedServerVariable.value:type_name -> openapi.v3.ServerVariable\n\t74,  // 80: openapi.v3.NamedStringArray.value:type_name -> openapi.v3.StringArray\n\t75,  // 81: openapi.v3.OauthFlow.scopes:type_name -> openapi.v3.Strings\n\t29,  // 82: openapi.v3.OauthFlow.specification_extension:type_name -> openapi.v3.NamedAny\n\t45,  // 83: openapi.v3.OauthFlows.implicit:type_name -> openapi.v3.OauthFlow\n\t45,  // 84: openapi.v3.OauthFlows.password:type_name -> openapi.v3.OauthFlow\n\t45,  // 85: openapi.v3.OauthFlows.client_credentials:type_name -> openapi.v3.OauthFlow\n\t45,  // 86: openapi.v3.OauthFlows.authorization_code:type_name -> openapi.v3.OauthFlow\n\t29,  // 87: openapi.v3.OauthFlows.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 88: openapi.v3.Object.additional_properties:type_name -> openapi.v3.NamedAny\n\t17,  // 89: openapi.v3.Operation.external_docs:type_name -> openapi.v3.ExternalDocs\n\t50,  // 90: openapi.v3.Operation.parameters:type_name -> openapi.v3.ParameterOrReference\n\t58,  // 91: openapi.v3.Operation.request_body:type_name -> openapi.v3.RequestBodyOrReference\n\t61,  // 92: openapi.v3.Operation.responses:type_name -> openapi.v3.Responses\n\t5,   // 93: openapi.v3.Operation.callbacks:type_name -> openapi.v3.CallbacksOrReferences\n\t66,  // 94: openapi.v3.Operation.security:type_name -> openapi.v3.SecurityRequirement\n\t70,  // 95: openapi.v3.Operation.servers:type_name -> openapi.v3.Server\n\t29,  // 96: openapi.v3.Operation.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 97: openapi.v3.Parameter.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 98: openapi.v3.Parameter.example:type_name -> openapi.v3.Any\n\t15,  // 99: openapi.v3.Parameter.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t28,  // 100: openapi.v3.Parameter.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 101: openapi.v3.Parameter.specification_extension:type_name -> openapi.v3.NamedAny\n\t49,  // 102: openapi.v3.ParameterOrReference.parameter:type_name -> openapi.v3.Parameter\n\t55,  // 103: openapi.v3.ParameterOrReference.reference:type_name -> openapi.v3.Reference\n\t36,  // 104: openapi.v3.ParametersOrReferences.additional_properties:type_name -> openapi.v3.NamedParameterOrReference\n\t48,  // 105: openapi.v3.PathItem.get:type_name -> openapi.v3.Operation\n\t48,  // 106: openapi.v3.PathItem.put:type_name -> openapi.v3.Operation\n\t48,  // 107: openapi.v3.PathItem.post:type_name -> openapi.v3.Operation\n\t48,  // 108: openapi.v3.PathItem.delete:type_name -> openapi.v3.Operation\n\t48,  // 109: openapi.v3.PathItem.options:type_name -> openapi.v3.Operation\n\t48,  // 110: openapi.v3.PathItem.head:type_name -> openapi.v3.Operation\n\t48,  // 111: openapi.v3.PathItem.patch:type_name -> openapi.v3.Operation\n\t48,  // 112: openapi.v3.PathItem.trace:type_name -> openapi.v3.Operation\n\t70,  // 113: openapi.v3.PathItem.servers:type_name -> openapi.v3.Server\n\t50,  // 114: openapi.v3.PathItem.parameters:type_name -> openapi.v3.ParameterOrReference\n\t29,  // 115: openapi.v3.PathItem.specification_extension:type_name -> openapi.v3.NamedAny\n\t37,  // 116: openapi.v3.Paths.path:type_name -> openapi.v3.NamedPathItem\n\t29,  // 117: openapi.v3.Paths.specification_extension:type_name -> openapi.v3.NamedAny\n\t40,  // 118: openapi.v3.Properties.additional_properties:type_name -> openapi.v3.NamedSchemaOrReference\n\t38,  // 119: openapi.v3.RequestBodiesOrReferences.additional_properties:type_name -> openapi.v3.NamedRequestBodyOrReference\n\t28,  // 120: openapi.v3.RequestBody.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 121: openapi.v3.RequestBody.specification_extension:type_name -> openapi.v3.NamedAny\n\t57,  // 122: openapi.v3.RequestBodyOrReference.request_body:type_name -> openapi.v3.RequestBody\n\t55,  // 123: openapi.v3.RequestBodyOrReference.reference:type_name -> openapi.v3.Reference\n\t20,  // 124: openapi.v3.Response.headers:type_name -> openapi.v3.HeadersOrReferences\n\t28,  // 125: openapi.v3.Response.content:type_name -> openapi.v3.MediaTypes\n\t26,  // 126: openapi.v3.Response.links:type_name -> openapi.v3.LinksOrReferences\n\t29,  // 127: openapi.v3.Response.specification_extension:type_name -> openapi.v3.NamedAny\n\t59,  // 128: openapi.v3.ResponseOrReference.response:type_name -> openapi.v3.Response\n\t55,  // 129: openapi.v3.ResponseOrReference.reference:type_name -> openapi.v3.Reference\n\t60,  // 130: openapi.v3.Responses.default:type_name -> openapi.v3.ResponseOrReference\n\t39,  // 131: openapi.v3.Responses.response_or_reference:type_name -> openapi.v3.NamedResponseOrReference\n\t29,  // 132: openapi.v3.Responses.specification_extension:type_name -> openapi.v3.NamedAny\n\t39,  // 133: openapi.v3.ResponsesOrReferences.additional_properties:type_name -> openapi.v3.NamedResponseOrReference\n\t9,   // 134: openapi.v3.Schema.discriminator:type_name -> openapi.v3.Discriminator\n\t77,  // 135: openapi.v3.Schema.xml:type_name -> openapi.v3.Xml\n\t17,  // 136: openapi.v3.Schema.external_docs:type_name -> openapi.v3.ExternalDocs\n\t1,   // 137: openapi.v3.Schema.example:type_name -> openapi.v3.Any\n\t1,   // 138: openapi.v3.Schema.enum:type_name -> openapi.v3.Any\n\t64,  // 139: openapi.v3.Schema.all_of:type_name -> openapi.v3.SchemaOrReference\n\t64,  // 140: openapi.v3.Schema.one_of:type_name -> openapi.v3.SchemaOrReference\n\t64,  // 141: openapi.v3.Schema.any_of:type_name -> openapi.v3.SchemaOrReference\n\t63,  // 142: openapi.v3.Schema.not:type_name -> openapi.v3.Schema\n\t22,  // 143: openapi.v3.Schema.items:type_name -> openapi.v3.ItemsItem\n\t54,  // 144: openapi.v3.Schema.properties:type_name -> openapi.v3.Properties\n\t0,   // 145: openapi.v3.Schema.additional_properties:type_name -> openapi.v3.AdditionalPropertiesItem\n\t8,   // 146: openapi.v3.Schema.default:type_name -> openapi.v3.DefaultType\n\t29,  // 147: openapi.v3.Schema.specification_extension:type_name -> openapi.v3.NamedAny\n\t63,  // 148: openapi.v3.SchemaOrReference.schema:type_name -> openapi.v3.Schema\n\t55,  // 149: openapi.v3.SchemaOrReference.reference:type_name -> openapi.v3.Reference\n\t40,  // 150: openapi.v3.SchemasOrReferences.additional_properties:type_name -> openapi.v3.NamedSchemaOrReference\n\t44,  // 151: openapi.v3.SecurityRequirement.additional_properties:type_name -> openapi.v3.NamedStringArray\n\t46,  // 152: openapi.v3.SecurityScheme.flows:type_name -> openapi.v3.OauthFlows\n\t29,  // 153: openapi.v3.SecurityScheme.specification_extension:type_name -> openapi.v3.NamedAny\n\t67,  // 154: openapi.v3.SecuritySchemeOrReference.security_scheme:type_name -> openapi.v3.SecurityScheme\n\t55,  // 155: openapi.v3.SecuritySchemeOrReference.reference:type_name -> openapi.v3.Reference\n\t41,  // 156: openapi.v3.SecuritySchemesOrReferences.additional_properties:type_name -> openapi.v3.NamedSecuritySchemeOrReference\n\t72,  // 157: openapi.v3.Server.variables:type_name -> openapi.v3.ServerVariables\n\t29,  // 158: openapi.v3.Server.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 159: openapi.v3.ServerVariable.specification_extension:type_name -> openapi.v3.NamedAny\n\t42,  // 160: openapi.v3.ServerVariables.additional_properties:type_name -> openapi.v3.NamedServerVariable\n\t43,  // 161: openapi.v3.Strings.additional_properties:type_name -> openapi.v3.NamedString\n\t17,  // 162: openapi.v3.Tag.external_docs:type_name -> openapi.v3.ExternalDocs\n\t29,  // 163: openapi.v3.Tag.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 164: openapi.v3.Xml.specification_extension:type_name -> openapi.v3.NamedAny\n\t165, // [165:165] is the sub-list for method output_type\n\t165, // [165:165] is the sub-list for method input_type\n\t165, // [165:165] is the sub-list for extension type_name\n\t165, // [165:165] is the sub-list for extension extendee\n\t0,   // [0:165] is the sub-list for field type_name\n}\n\nfunc init() { file_openapiv3_OpenAPIv3_proto_init() }\nfunc file_openapiv3_OpenAPIv3_proto_init() {\n\tif File_openapiv3_OpenAPIv3_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AdditionalPropertiesItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Any); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AnyOrExpression); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Callback); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CallbackOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CallbacksOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Components); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Contact); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*DefaultType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Discriminator); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Document); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Encoding); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Encodings); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Example); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExampleOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExamplesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Expression); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExternalDocs); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Header); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeaderOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeadersOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Info); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ItemsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*License); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Link); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinkOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinksOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*MediaType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*MediaTypes); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedAny); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedCallbackOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedEncoding); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedExampleOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedHeaderOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedLinkOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedMediaType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedParameterOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedPathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedRequestBodyOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponseOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSchemaOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSecuritySchemeOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedServerVariable); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedString); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedStringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OauthFlow); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OauthFlows); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Object); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Operation); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Parameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParameterOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParametersOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Paths); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Properties); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Reference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBodiesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBody); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBodyOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Response); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Responses); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponsesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Schema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemaOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemasOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityRequirement); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityScheme); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecuritySchemeOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecuritySchemesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Server); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ServerVariable); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ServerVariables); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SpecificationExtension); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Strings); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Tag); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Xml); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[0].OneofWrappers = []interface{}{\n\t\t(*AdditionalPropertiesItem_SchemaOrReference)(nil),\n\t\t(*AdditionalPropertiesItem_Boolean)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[2].OneofWrappers = []interface{}{\n\t\t(*AnyOrExpression_Any)(nil),\n\t\t(*AnyOrExpression_Expression)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[4].OneofWrappers = []interface{}{\n\t\t(*CallbackOrReference_Callback)(nil),\n\t\t(*CallbackOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[8].OneofWrappers = []interface{}{\n\t\t(*DefaultType_Number)(nil),\n\t\t(*DefaultType_Boolean)(nil),\n\t\t(*DefaultType_String_)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[14].OneofWrappers = []interface{}{\n\t\t(*ExampleOrReference_Example)(nil),\n\t\t(*ExampleOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[19].OneofWrappers = []interface{}{\n\t\t(*HeaderOrReference_Header)(nil),\n\t\t(*HeaderOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[25].OneofWrappers = []interface{}{\n\t\t(*LinkOrReference_Link)(nil),\n\t\t(*LinkOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[50].OneofWrappers = []interface{}{\n\t\t(*ParameterOrReference_Parameter)(nil),\n\t\t(*ParameterOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[58].OneofWrappers = []interface{}{\n\t\t(*RequestBodyOrReference_RequestBody)(nil),\n\t\t(*RequestBodyOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[60].OneofWrappers = []interface{}{\n\t\t(*ResponseOrReference_Response)(nil),\n\t\t(*ResponseOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[64].OneofWrappers = []interface{}{\n\t\t(*SchemaOrReference_Schema)(nil),\n\t\t(*SchemaOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[68].OneofWrappers = []interface{}{\n\t\t(*SecuritySchemeOrReference_SecurityScheme)(nil),\n\t\t(*SecuritySchemeOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[73].OneofWrappers = []interface{}{\n\t\t(*SpecificationExtension_Number)(nil),\n\t\t(*SpecificationExtension_Boolean)(nil),\n\t\t(*SpecificationExtension_String_)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_openapiv3_OpenAPIv3_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   78,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_openapiv3_OpenAPIv3_proto_goTypes,\n\t\tDependencyIndexes: file_openapiv3_OpenAPIv3_proto_depIdxs,\n\t\tMessageInfos:      file_openapiv3_OpenAPIv3_proto_msgTypes,\n\t}.Build()\n\tFile_openapiv3_OpenAPIv3_proto = out.File\n\tfile_openapiv3_OpenAPIv3_proto_rawDesc = nil\n\tfile_openapiv3_OpenAPIv3_proto_goTypes = nil\n\tfile_openapiv3_OpenAPIv3_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.proto",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\nsyntax = \"proto3\";\n\npackage openapi.v3;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"OpenAPIProto\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.openapi_v3\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\noption objc_class_prefix = \"OAS\";\n\n// The Go package name.\noption go_package = \"./openapiv3;openapi_v3\";\n\nmessage AdditionalPropertiesItem {\n  oneof oneof {\n    SchemaOrReference schema_or_reference = 1;\n    bool boolean = 2;\n  }\n}\n\nmessage Any {\n  google.protobuf.Any value = 1;\n  string yaml = 2;\n}\n\nmessage AnyOrExpression {\n  oneof oneof {\n    Any any = 1;\n    Expression expression = 2;\n  }\n}\n\n// A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\nmessage Callback {\n  repeated NamedPathItem path = 1;\n  repeated NamedAny specification_extension = 2;\n}\n\nmessage CallbackOrReference {\n  oneof oneof {\n    Callback callback = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage CallbacksOrReferences {\n  repeated NamedCallbackOrReference additional_properties = 1;\n}\n\n// Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\nmessage Components {\n  SchemasOrReferences schemas = 1;\n  ResponsesOrReferences responses = 2;\n  ParametersOrReferences parameters = 3;\n  ExamplesOrReferences examples = 4;\n  RequestBodiesOrReferences request_bodies = 5;\n  HeadersOrReferences headers = 6;\n  SecuritySchemesOrReferences security_schemes = 7;\n  LinksOrReferences links = 8;\n  CallbacksOrReferences callbacks = 9;\n  repeated NamedAny specification_extension = 10;\n}\n\n// Contact information for the exposed API.\nmessage Contact {\n  string name = 1;\n  string url = 2;\n  string email = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage DefaultType {\n  oneof oneof {\n    double number = 1;\n    bool boolean = 2;\n    string string = 3;\n  }\n}\n\n// When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\nmessage Discriminator {\n  string property_name = 1;\n  Strings mapping = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\nmessage Document {\n  string openapi = 1;\n  Info info = 2;\n  repeated Server servers = 3;\n  Paths paths = 4;\n  Components components = 5;\n  repeated SecurityRequirement security = 6;\n  repeated Tag tags = 7;\n  ExternalDocs external_docs = 8;\n  repeated NamedAny specification_extension = 9;\n}\n\n// A single encoding definition applied to a single schema property.\nmessage Encoding {\n  string content_type = 1;\n  HeadersOrReferences headers = 2;\n  string style = 3;\n  bool explode = 4;\n  bool allow_reserved = 5;\n  repeated NamedAny specification_extension = 6;\n}\n\nmessage Encodings {\n  repeated NamedEncoding additional_properties = 1;\n}\n\nmessage Example {\n  string summary = 1;\n  string description = 2;\n  Any value = 3;\n  string external_value = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage ExampleOrReference {\n  oneof oneof {\n    Example example = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage ExamplesOrReferences {\n  repeated NamedExampleOrReference additional_properties = 1;\n}\n\nmessage Expression {\n  repeated NamedAny additional_properties = 1;\n}\n\n// Allows referencing an external resource for extended documentation.\nmessage ExternalDocs {\n  string description = 1;\n  string url = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\n// The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\nmessage Header {\n  string description = 1;\n  bool required = 2;\n  bool deprecated = 3;\n  bool allow_empty_value = 4;\n  string style = 5;\n  bool explode = 6;\n  bool allow_reserved = 7;\n  SchemaOrReference schema = 8;\n  Any example = 9;\n  ExamplesOrReferences examples = 10;\n  MediaTypes content = 11;\n  repeated NamedAny specification_extension = 12;\n}\n\nmessage HeaderOrReference {\n  oneof oneof {\n    Header header = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage HeadersOrReferences {\n  repeated NamedHeaderOrReference additional_properties = 1;\n}\n\n// The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\nmessage Info {\n  string title = 1;\n  string description = 2;\n  string terms_of_service = 3;\n  Contact contact = 4;\n  License license = 5;\n  string version = 6;\n  repeated NamedAny specification_extension = 7;\n  string summary = 8;\n}\n\nmessage ItemsItem {\n  repeated SchemaOrReference schema_or_reference = 1;\n}\n\n// License information for the exposed API.\nmessage License {\n  string name = 1;\n  string url = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\n// The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\nmessage Link {\n  string operation_ref = 1;\n  string operation_id = 2;\n  AnyOrExpression parameters = 3;\n  AnyOrExpression request_body = 4;\n  string description = 5;\n  Server server = 6;\n  repeated NamedAny specification_extension = 7;\n}\n\nmessage LinkOrReference {\n  oneof oneof {\n    Link link = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage LinksOrReferences {\n  repeated NamedLinkOrReference additional_properties = 1;\n}\n\n// Each Media Type Object provides schema and examples for the media type identified by its key.\nmessage MediaType {\n  SchemaOrReference schema = 1;\n  Any example = 2;\n  ExamplesOrReferences examples = 3;\n  Encodings encoding = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage MediaTypes {\n  repeated NamedMediaType additional_properties = 1;\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\nmessage NamedAny {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Any value = 2;\n}\n\n// Automatically-generated message used to represent maps of CallbackOrReference as ordered (name,value) pairs.\nmessage NamedCallbackOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  CallbackOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of Encoding as ordered (name,value) pairs.\nmessage NamedEncoding {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Encoding value = 2;\n}\n\n// Automatically-generated message used to represent maps of ExampleOrReference as ordered (name,value) pairs.\nmessage NamedExampleOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ExampleOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of HeaderOrReference as ordered (name,value) pairs.\nmessage NamedHeaderOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  HeaderOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of LinkOrReference as ordered (name,value) pairs.\nmessage NamedLinkOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  LinkOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of MediaType as ordered (name,value) pairs.\nmessage NamedMediaType {\n  // Map key\n  string name = 1;\n  // Mapped value\n  MediaType value = 2;\n}\n\n// Automatically-generated message used to represent maps of ParameterOrReference as ordered (name,value) pairs.\nmessage NamedParameterOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ParameterOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\nmessage NamedPathItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  PathItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of RequestBodyOrReference as ordered (name,value) pairs.\nmessage NamedRequestBodyOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  RequestBodyOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of ResponseOrReference as ordered (name,value) pairs.\nmessage NamedResponseOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ResponseOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of SchemaOrReference as ordered (name,value) pairs.\nmessage NamedSchemaOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SchemaOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of SecuritySchemeOrReference as ordered (name,value) pairs.\nmessage NamedSecuritySchemeOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SecuritySchemeOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs.\nmessage NamedServerVariable {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ServerVariable value = 2;\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\nmessage NamedString {\n  // Map key\n  string name = 1;\n  // Mapped value\n  string value = 2;\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\nmessage NamedStringArray {\n  // Map key\n  string name = 1;\n  // Mapped value\n  StringArray value = 2;\n}\n\n// Configuration details for a supported OAuth Flow\nmessage OauthFlow {\n  string authorization_url = 1;\n  string token_url = 2;\n  string refresh_url = 3;\n  Strings scopes = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\n// Allows configuration of the supported OAuth Flows.\nmessage OauthFlows {\n  OauthFlow implicit = 1;\n  OauthFlow password = 2;\n  OauthFlow client_credentials = 3;\n  OauthFlow authorization_code = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage Object {\n  repeated NamedAny additional_properties = 1;\n}\n\n// Describes a single API operation on a path.\nmessage Operation {\n  repeated string tags = 1;\n  string summary = 2;\n  string description = 3;\n  ExternalDocs external_docs = 4;\n  string operation_id = 5;\n  repeated ParameterOrReference parameters = 6;\n  RequestBodyOrReference request_body = 7;\n  Responses responses = 8;\n  CallbacksOrReferences callbacks = 9;\n  bool deprecated = 10;\n  repeated SecurityRequirement security = 11;\n  repeated Server servers = 12;\n  repeated NamedAny specification_extension = 13;\n}\n\n// Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\nmessage Parameter {\n  string name = 1;\n  string in = 2;\n  string description = 3;\n  bool required = 4;\n  bool deprecated = 5;\n  bool allow_empty_value = 6;\n  string style = 7;\n  bool explode = 8;\n  bool allow_reserved = 9;\n  SchemaOrReference schema = 10;\n  Any example = 11;\n  ExamplesOrReferences examples = 12;\n  MediaTypes content = 13;\n  repeated NamedAny specification_extension = 14;\n}\n\nmessage ParameterOrReference {\n  oneof oneof {\n    Parameter parameter = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage ParametersOrReferences {\n  repeated NamedParameterOrReference additional_properties = 1;\n}\n\n// Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\nmessage PathItem {\n  string _ref = 1;\n  string summary = 2;\n  string description = 3;\n  Operation get = 4;\n  Operation put = 5;\n  Operation post = 6;\n  Operation delete = 7;\n  Operation options = 8;\n  Operation head = 9;\n  Operation patch = 10;\n  Operation trace = 11;\n  repeated Server servers = 12;\n  repeated ParameterOrReference parameters = 13;\n  repeated NamedAny specification_extension = 14;\n}\n\n// Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\nmessage Paths {\n  repeated NamedPathItem path = 1;\n  repeated NamedAny specification_extension = 2;\n}\n\nmessage Properties {\n  repeated NamedSchemaOrReference additional_properties = 1;\n}\n\n// A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\nmessage Reference {\n  string _ref = 1;\n  string summary = 2;\n  string description = 3;\n}\n\nmessage RequestBodiesOrReferences {\n  repeated NamedRequestBodyOrReference additional_properties = 1;\n}\n\n// Describes a single request body.\nmessage RequestBody {\n  string description = 1;\n  MediaTypes content = 2;\n  bool required = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage RequestBodyOrReference {\n  oneof oneof {\n    RequestBody request_body = 1;\n    Reference reference = 2;\n  }\n}\n\n// Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\nmessage Response {\n  string description = 1;\n  HeadersOrReferences headers = 2;\n  MediaTypes content = 3;\n  LinksOrReferences links = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage ResponseOrReference {\n  oneof oneof {\n    Response response = 1;\n    Reference reference = 2;\n  }\n}\n\n// A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\nmessage Responses {\n  ResponseOrReference default = 1;\n  repeated NamedResponseOrReference response_or_reference = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\nmessage ResponsesOrReferences {\n  repeated NamedResponseOrReference additional_properties = 1;\n}\n\n// The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\nmessage Schema {\n  bool nullable = 1;\n  Discriminator discriminator = 2;\n  bool read_only = 3;\n  bool write_only = 4;\n  Xml xml = 5;\n  ExternalDocs external_docs = 6;\n  Any example = 7;\n  bool deprecated = 8;\n  string title = 9;\n  double multiple_of = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  int64 max_properties = 21;\n  int64 min_properties = 22;\n  repeated string required = 23;\n  repeated Any enum = 24;\n  string type = 25;\n  repeated SchemaOrReference all_of = 26;\n  repeated SchemaOrReference one_of = 27;\n  repeated SchemaOrReference any_of = 28;\n  Schema not = 29;\n  ItemsItem items = 30;\n  Properties properties = 31;\n  AdditionalPropertiesItem additional_properties = 32;\n  DefaultType default = 33;\n  string description = 34;\n  string format = 35;\n  repeated NamedAny specification_extension = 36;\n}\n\nmessage SchemaOrReference {\n  oneof oneof {\n    Schema schema = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage SchemasOrReferences {\n  repeated NamedSchemaOrReference additional_properties = 1;\n}\n\n// Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request.\nmessage SecurityRequirement {\n  repeated NamedStringArray additional_properties = 1;\n}\n\n// Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect.   Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE.\nmessage SecurityScheme {\n  string type = 1;\n  string description = 2;\n  string name = 3;\n  string in = 4;\n  string scheme = 5;\n  string bearer_format = 6;\n  OauthFlows flows = 7;\n  string open_id_connect_url = 8;\n  repeated NamedAny specification_extension = 9;\n}\n\nmessage SecuritySchemeOrReference {\n  oneof oneof {\n    SecurityScheme security_scheme = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage SecuritySchemesOrReferences {\n  repeated NamedSecuritySchemeOrReference additional_properties = 1;\n}\n\n// An object representing a Server.\nmessage Server {\n  string url = 1;\n  string description = 2;\n  ServerVariables variables = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\n// An object representing a Server Variable for server URL template substitution.\nmessage ServerVariable {\n  repeated string enum = 1;\n  string default = 2;\n  string description = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage ServerVariables {\n  repeated NamedServerVariable additional_properties = 1;\n}\n\n// Any property starting with x- is valid.\nmessage SpecificationExtension {\n  oneof oneof {\n    double number = 1;\n    bool boolean = 2;\n    string string = 3;\n  }\n}\n\nmessage StringArray {\n  repeated string value = 1;\n}\n\nmessage Strings {\n  repeated NamedString additional_properties = 1;\n}\n\n// Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\nmessage Tag {\n  string name = 1;\n  string description = 2;\n  ExternalDocs external_docs = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\n// A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\nmessage Xml {\n  string name = 1;\n  string namespace = 2;\n  string prefix = 3;\n  bool attribute = 4;\n  bool wrapped = 5;\n  repeated NamedAny specification_extension = 6;\n}\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/README.md",
    "content": "# OpenAPI v3 Protocol Buffer Models\n\nThis directory contains a Protocol Buffer-language model and related code for\nsupporting OpenAPI v3.\n\nGnostic applications and plugins can use OpenAPIv3.proto to generate Protocol\nBuffer support code for their preferred languages.\n\nOpenAPIv3.go is used by Gnostic to read JSON and YAML OpenAPI descriptions into\nthe Protocol Buffer-based datastructures generated from OpenAPIv3.proto.\n\nOpenAPIv3.proto and OpenAPIv3.go are generated by the Gnostic compiler\ngenerator, and OpenAPIv3.pb.go is generated by protoc, the Protocol Buffer\ncompiler, and protoc-gen-go, the Protocol Buffer Go code generation plugin.\n\nopenapi-3.1.json is a JSON schema for OpenAPI 3.1 that is automatically\ngenerated from the OpenAPI 3.1 specification. It is not an official JSON Schema\nfor OpenAPI.\n\nThe schema-generator directory contains support code which generates\nopenapi-3.1.json from the OpenAPI 3.1 specification document (Markdown).\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/document.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage openapi_v3\n\nimport (\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic/compiler\"\n)\n\n// ParseDocument reads an OpenAPI v3 description from a YAML/JSON representation.\nfunc ParseDocument(b []byte) (*Document, error) {\n\tinfo, err := compiler.ReadInfoFromBytes(\"\", b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\troot := info.Content[0]\n\treturn NewDocument(root, compiler.NewContextWithExtensions(\"$root\", root, nil, nil))\n}\n\n// YAMLValue produces a serialized YAML representation of the document.\nfunc (d *Document) YAMLValue(comment string) ([]byte, error) {\n\trawInfo := d.ToRawInfo()\n\trawInfo = &yaml.Node{\n\t\tKind:        yaml.DocumentNode,\n\t\tContent:     []*yaml.Node{rawInfo},\n\t\tHeadComment: comment,\n\t}\n\treturn yaml.Marshal(rawInfo)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/openapi-3.0.json",
    "content": "{\n  \"title\": \"A JSON Schema for OpenAPI 3.0.\",\n  \"id\": \"http://openapis.org/v3/schema.json#\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"type\": \"object\",\n  \"description\": \"This is the root document object of the OpenAPI document.\",\n  \"required\": [\n    \"openapi\",\n    \"info\",\n    \"paths\"\n  ],\n  \"additionalProperties\": false,\n  \"patternProperties\": {\n    \"^x-\": {\n      \"$ref\": \"#/definitions/specificationExtension\"\n    }\n  },\n  \"properties\": {\n    \"openapi\": {\n      \"type\": \"string\"\n    },\n    \"info\": {\n      \"$ref\": \"#/definitions/info\"\n    },\n    \"servers\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/server\"\n      },\n      \"uniqueItems\": true\n    },\n    \"paths\": {\n      \"$ref\": \"#/definitions/paths\"\n    },\n    \"components\": {\n      \"$ref\": \"#/definitions/components\"\n    },\n    \"security\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/securityRequirement\"\n      },\n      \"uniqueItems\": true\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/tag\"\n      },\n      \"uniqueItems\": true\n    },\n    \"externalDocs\": {\n      \"$ref\": \"#/definitions/externalDocs\"\n    }\n  },\n  \"definitions\": {\n    \"info\": {\n      \"type\": \"object\",\n      \"description\": \"The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\",\n      \"required\": [\n        \"title\",\n        \"version\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"title\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"termsOfService\": {\n          \"type\": \"string\"\n        },\n        \"contact\": {\n          \"$ref\": \"#/definitions/contact\"\n        },\n        \"license\": {\n          \"$ref\": \"#/definitions/license\"\n        },\n        \"version\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"contact\": {\n      \"type\": \"object\",\n      \"description\": \"Contact information for the exposed API.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"email\": {\n          \"type\": \"string\",\n          \"format\": \"email\"\n        }\n      }\n    },\n    \"license\": {\n      \"type\": \"object\",\n      \"description\": \"License information for the exposed API.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"server\": {\n      \"type\": \"object\",\n      \"description\": \"An object representing a Server.\",\n      \"required\": [\n        \"url\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"url\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"variables\": {\n          \"$ref\": \"#/definitions/serverVariables\"\n        }\n      }\n    },\n    \"serverVariable\": {\n      \"type\": \"object\",\n      \"description\": \"An object representing a Server Variable for server URL template substitution.\",\n      \"required\": [\n        \"default\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"enum\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"default\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"components\": {\n      \"type\": \"object\",\n      \"description\": \"Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"schemas\": {\n          \"$ref\": \"#/definitions/schemasOrReferences\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responsesOrReferences\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersOrReferences\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"requestBodies\": {\n          \"$ref\": \"#/definitions/requestBodiesOrReferences\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"securitySchemes\": {\n          \"$ref\": \"#/definitions/securitySchemesOrReferences\"\n        },\n        \"links\": {\n          \"$ref\": \"#/definitions/linksOrReferences\"\n        },\n        \"callbacks\": {\n          \"$ref\": \"#/definitions/callbacksOrReferences\"\n        }\n      }\n    },\n    \"paths\": {\n      \"type\": \"object\",\n      \"description\": \"Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^/\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      }\n    },\n    \"pathItem\": {\n      \"type\": \"object\",\n      \"description\": \"Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"get\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"put\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"post\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"delete\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"options\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"head\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"patch\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"trace\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"servers\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/server\"\n          },\n          \"uniqueItems\": true\n        },\n        \"parameters\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/parameterOrReference\"\n          },\n          \"uniqueItems\": true\n        }\n      }\n    },\n    \"operation\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single API operation on a path.\",\n      \"required\": [\n        \"responses\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"operationId\": {\n          \"type\": \"string\"\n        },\n        \"parameters\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/parameterOrReference\"\n          },\n          \"uniqueItems\": true\n        },\n        \"requestBody\": {\n          \"$ref\": \"#/definitions/requestBodyOrReference\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responses\"\n        },\n        \"callbacks\": {\n          \"$ref\": \"#/definitions/callbacksOrReferences\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"security\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/securityRequirement\"\n          },\n          \"uniqueItems\": true\n        },\n        \"servers\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/server\"\n          },\n          \"uniqueItems\": true\n        }\n      }\n    },\n    \"externalDocs\": {\n      \"type\": \"object\",\n      \"description\": \"Allows referencing an external resource for extended documentation.\",\n      \"required\": [\n        \"url\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"parameter\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\",\n      \"required\": [\n        \"name\",\n        \"in\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        }\n      }\n    },\n    \"requestBody\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single request body.\",\n      \"required\": [\n        \"content\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"mediaType\": {\n      \"type\": \"object\",\n      \"description\": \"Each Media Type Object provides schema and examples for the media type identified by its key.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"encoding\": {\n          \"$ref\": \"#/definitions/encodings\"\n        }\n      }\n    },\n    \"encoding\": {\n      \"type\": \"object\",\n      \"description\": \"A single encoding definition applied to a single schema property.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"contentType\": {\n          \"type\": \"string\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"responses\": {\n      \"type\": \"object\",\n      \"description\": \"A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^([0-9X]{3})$\": {\n          \"$ref\": \"#/definitions/responseOrReference\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"default\": {\n          \"$ref\": \"#/definitions/responseOrReference\"\n        }\n      }\n    },\n    \"response\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\",\n      \"required\": [\n        \"description\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        },\n        \"links\": {\n          \"$ref\": \"#/definitions/linksOrReferences\"\n        }\n      }\n    },\n    \"callback\": {\n      \"type\": \"object\",\n      \"description\": \"A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      }\n    },\n    \"example\": {\n      \"type\": \"object\",\n      \"description\": \"\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"externalValue\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"link\": {\n      \"type\": \"object\",\n      \"description\": \"The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"operationRef\": {\n          \"type\": \"string\"\n        },\n        \"operationId\": {\n          \"type\": \"string\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/anysOrExpressions\"\n        },\n        \"requestBody\": {\n          \"$ref\": \"#/definitions/anyOrExpression\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"server\": {\n          \"$ref\": \"#/definitions/server\"\n        }\n      }\n    },\n    \"header\": {\n      \"type\": \"object\",\n      \"description\": \"The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        }\n      }\n    },\n    \"tag\": {\n      \"type\": \"object\",\n      \"description\": \"Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        }\n      }\n    },\n    \"reference\": {\n      \"type\": \"object\",\n      \"description\": \"A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\",\n      \"required\": [\n        \"$ref\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"schema\": {\n      \"type\": \"object\",\n      \"description\": \"The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"nullable\": {\n          \"type\": \"boolean\"\n        },\n        \"discriminator\": {\n          \"$ref\": \"#/definitions/discriminator\"\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\"\n        },\n        \"writeOnly\": {\n          \"type\": \"boolean\"\n        },\n        \"xml\": {\n          \"$ref\": \"#/definitions/xml\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n        },\n        \"maximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n        },\n        \"maxProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxProperties\"\n        },\n        \"minProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minProperties\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/required\"\n        },\n        \"enum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n        },\n        \"type\": {\n          \"type\": \"string\"\n        },\n        \"allOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"oneOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"anyOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"not\": {\n          \"$ref\": \"#/definitions/schema\"\n        },\n        \"items\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaOrReference\"\n            },\n            {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/definitions/schemaOrReference\"\n              },\n              \"minItems\": 1\n            }\n          ]\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          }\n        },\n        \"additionalProperties\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaOrReference\"\n            },\n            {\n              \"type\": \"boolean\"\n            }\n          ]\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/defaultType\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"discriminator\": {\n      \"type\": \"object\",\n      \"description\": \"When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\",\n      \"required\": [\n        \"propertyName\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"propertyName\": {\n          \"type\": \"string\"\n        },\n        \"mapping\": {\n          \"$ref\": \"#/definitions/strings\"\n        }\n      }\n    },\n    \"xml\": {\n      \"type\": \"object\",\n      \"description\": \"A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"type\": \"string\"\n        },\n        \"prefix\": {\n          \"type\": \"string\"\n        },\n        \"attribute\": {\n          \"type\": \"boolean\"\n        },\n        \"wrapped\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"securityScheme\": {\n      \"type\": \"object\",\n      \"description\": \"Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header or as a query parameter), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect Discovery.\",\n      \"required\": [\n        \"type\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\"\n        },\n        \"scheme\": {\n          \"type\": \"string\"\n        },\n        \"bearerFormat\": {\n          \"type\": \"string\"\n        },\n        \"flows\": {\n          \"$ref\": \"#/definitions/oauthFlows\"\n        },\n        \"openIdConnectUrl\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"oauthFlows\": {\n      \"type\": \"object\",\n      \"description\": \"Allows configuration of the supported OAuth Flows.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"implicit\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"password\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"clientCredentials\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"authorizationCode\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        }\n      }\n    },\n    \"oauthFlow\": {\n      \"type\": \"object\",\n      \"description\": \"Configuration details for a supported OAuth Flow\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"authorizationUrl\": {\n          \"type\": \"string\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\"\n        },\n        \"refreshUrl\": {\n          \"type\": \"string\"\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/strings\"\n        }\n      }\n    },\n    \"securityRequirement\": {\n      \"type\": \"object\",\n      \"description\": \"Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the Open API object or Operation Object, only one of Security Requirement Objects in the list needs to be satisfied to authorize the request.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        }\n      }\n    },\n    \"anyOrExpression\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/any\"\n        },\n        {\n          \"$ref\": \"#/definitions/expression\"\n        }\n      ]\n    },\n    \"callbackOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/callback\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"exampleOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/example\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"headerOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/header\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"linkOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/link\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"parameterOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/parameter\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"requestBodyOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/requestBody\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"responseOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/response\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"schemaOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/schema\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"securitySchemeOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/securityScheme\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"anysOrExpressions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/anyOrExpression\"\n      }\n    },\n    \"callbacksOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/callbackOrReference\"\n      }\n    },\n    \"encodings\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/encoding\"\n      }\n    },\n    \"examplesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/exampleOrReference\"\n      }\n    },\n    \"headersOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/headerOrReference\"\n      }\n    },\n    \"linksOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/linkOrReference\"\n      }\n    },\n    \"mediaTypes\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/mediaType\"\n      }\n    },\n    \"parametersOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/parameterOrReference\"\n      }\n    },\n    \"requestBodiesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/requestBodyOrReference\"\n      }\n    },\n    \"responsesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/responseOrReference\"\n      }\n    },\n    \"schemasOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/schemaOrReference\"\n      }\n    },\n    \"securitySchemesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/securitySchemeOrReference\"\n      }\n    },\n    \"serverVariables\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/serverVariable\"\n      }\n    },\n    \"strings\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"string\"\n      }\n    },\n    \"object\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"any\": {\n      \"additionalProperties\": true\n    },\n    \"expression\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"specificationExtension\": {\n      \"description\": \"Any property starting with x- is valid.\",\n      \"oneOf\": [\n        {\n          \"type\": \"null\"\n        },\n        {\n          \"type\": \"number\"\n        },\n        {\n          \"type\": \"boolean\"\n        },\n        {\n          \"type\": \"string\"\n        },\n        {\n          \"type\": \"object\"\n        },\n        {\n          \"type\": \"array\"\n        }\n      ]\n    },\n    \"defaultType\": {\n      \"oneOf\": [\n        {\n          \"type\": \"null\"\n        },\n        {\n          \"type\": \"array\"\n        },\n        {\n          \"type\": \"object\"\n        },\n        {\n          \"type\": \"number\"\n        },\n        {\n          \"type\": \"boolean\"\n        },\n        {\n          \"type\": \"string\"\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic/openapiv3/openapi-3.1.json",
    "content": "{\n  \"title\": \"A JSON Schema for OpenAPI 3.0.\",\n  \"id\": \"http://openapis.org/v3/schema.json#\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"type\": \"object\",\n  \"description\": \"This is the root document object of the OpenAPI document.\",\n  \"required\": [\n    \"openapi\",\n    \"info\",\n    \"paths\"\n  ],\n  \"additionalProperties\": false,\n  \"patternProperties\": {\n    \"^x-\": {\n      \"$ref\": \"#/definitions/specificationExtension\"\n    }\n  },\n  \"properties\": {\n    \"openapi\": {\n      \"type\": \"string\"\n    },\n    \"info\": {\n      \"$ref\": \"#/definitions/info\"\n    },\n    \"servers\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/server\"\n      },\n      \"uniqueItems\": true\n    },\n    \"paths\": {\n      \"$ref\": \"#/definitions/paths\"\n    },\n    \"components\": {\n      \"$ref\": \"#/definitions/components\"\n    },\n    \"security\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/securityRequirement\"\n      },\n      \"uniqueItems\": true\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/tag\"\n      },\n      \"uniqueItems\": true\n    },\n    \"externalDocs\": {\n      \"$ref\": \"#/definitions/externalDocs\"\n    }\n  },\n  \"definitions\": {\n    \"info\": {\n      \"type\": \"object\",\n      \"description\": \"The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\",\n      \"required\": [\n        \"title\",\n        \"version\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"title\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"termsOfService\": {\n          \"type\": \"string\"\n        },\n        \"contact\": {\n          \"$ref\": \"#/definitions/contact\"\n        },\n        \"license\": {\n          \"$ref\": \"#/definitions/license\"\n        },\n        \"version\": {\n          \"type\": \"string\"\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"contact\": {\n      \"type\": \"object\",\n      \"description\": \"Contact information for the exposed API.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"email\": {\n          \"type\": \"string\",\n          \"format\": \"email\"\n        }\n      }\n    },\n    \"license\": {\n      \"type\": \"object\",\n      \"description\": \"License information for the exposed API.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"server\": {\n      \"type\": \"object\",\n      \"description\": \"An object representing a Server.\",\n      \"required\": [\n        \"url\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"url\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"variables\": {\n          \"$ref\": \"#/definitions/serverVariables\"\n        }\n      }\n    },\n    \"serverVariable\": {\n      \"type\": \"object\",\n      \"description\": \"An object representing a Server Variable for server URL template substitution.\",\n      \"required\": [\n        \"default\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"enum\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"default\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"components\": {\n      \"type\": \"object\",\n      \"description\": \"Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"schemas\": {\n          \"$ref\": \"#/definitions/schemasOrReferences\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responsesOrReferences\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersOrReferences\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"requestBodies\": {\n          \"$ref\": \"#/definitions/requestBodiesOrReferences\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"securitySchemes\": {\n          \"$ref\": \"#/definitions/securitySchemesOrReferences\"\n        },\n        \"links\": {\n          \"$ref\": \"#/definitions/linksOrReferences\"\n        },\n        \"callbacks\": {\n          \"$ref\": \"#/definitions/callbacksOrReferences\"\n        }\n      }\n    },\n    \"paths\": {\n      \"type\": \"object\",\n      \"description\": \"Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^/\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      }\n    },\n    \"pathItem\": {\n      \"type\": \"object\",\n      \"description\": \"Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"get\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"put\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"post\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"delete\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"options\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"head\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"patch\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"trace\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"servers\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/server\"\n          },\n          \"uniqueItems\": true\n        },\n        \"parameters\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/parameterOrReference\"\n          },\n          \"uniqueItems\": true\n        }\n      }\n    },\n    \"operation\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single API operation on a path.\",\n      \"required\": [\n        \"responses\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"operationId\": {\n          \"type\": \"string\"\n        },\n        \"parameters\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/parameterOrReference\"\n          },\n          \"uniqueItems\": true\n        },\n        \"requestBody\": {\n          \"$ref\": \"#/definitions/requestBodyOrReference\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responses\"\n        },\n        \"callbacks\": {\n          \"$ref\": \"#/definitions/callbacksOrReferences\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"security\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/securityRequirement\"\n          },\n          \"uniqueItems\": true\n        },\n        \"servers\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/server\"\n          },\n          \"uniqueItems\": true\n        }\n      }\n    },\n    \"externalDocs\": {\n      \"type\": \"object\",\n      \"description\": \"Allows referencing an external resource for extended documentation.\",\n      \"required\": [\n        \"url\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"parameter\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\",\n      \"required\": [\n        \"name\",\n        \"in\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        }\n      }\n    },\n    \"requestBody\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single request body.\",\n      \"required\": [\n        \"content\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"mediaType\": {\n      \"type\": \"object\",\n      \"description\": \"Each Media Type Object provides schema and examples for the media type identified by its key.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"encoding\": {\n          \"$ref\": \"#/definitions/encodings\"\n        }\n      }\n    },\n    \"encoding\": {\n      \"type\": \"object\",\n      \"description\": \"A single encoding definition applied to a single schema property.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"contentType\": {\n          \"type\": \"string\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"responses\": {\n      \"type\": \"object\",\n      \"description\": \"A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^([0-9X]{3})$\": {\n          \"$ref\": \"#/definitions/responseOrReference\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"default\": {\n          \"$ref\": \"#/definitions/responseOrReference\"\n        }\n      }\n    },\n    \"response\": {\n      \"type\": \"object\",\n      \"description\": \"Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\",\n      \"required\": [\n        \"description\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headersOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        },\n        \"links\": {\n          \"$ref\": \"#/definitions/linksOrReferences\"\n        }\n      }\n    },\n    \"callback\": {\n      \"type\": \"object\",\n      \"description\": \"A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      }\n    },\n    \"example\": {\n      \"type\": \"object\",\n      \"description\": \"\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"externalValue\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"link\": {\n      \"type\": \"object\",\n      \"description\": \"The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"operationRef\": {\n          \"type\": \"string\"\n        },\n        \"operationId\": {\n          \"type\": \"string\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/anyOrExpression\"\n        },\n        \"requestBody\": {\n          \"$ref\": \"#/definitions/anyOrExpression\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"server\": {\n          \"$ref\": \"#/definitions/server\"\n        }\n      }\n    },\n    \"header\": {\n      \"type\": \"object\",\n      \"description\": \"The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"required\": {\n          \"type\": \"boolean\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\"\n        },\n        \"style\": {\n          \"type\": \"string\"\n        },\n        \"explode\": {\n          \"type\": \"boolean\"\n        },\n        \"allowReserved\": {\n          \"type\": \"boolean\"\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schemaOrReference\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examplesOrReferences\"\n        },\n        \"content\": {\n          \"$ref\": \"#/definitions/mediaTypes\"\n        }\n      }\n    },\n    \"tag\": {\n      \"type\": \"object\",\n      \"description\": \"Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        }\n      }\n    },\n    \"reference\": {\n      \"type\": \"object\",\n      \"description\": \"A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\",\n      \"required\": [\n        \"$ref\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"summary\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"schema\": {\n      \"type\": \"object\",\n      \"description\": \"The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"nullable\": {\n          \"type\": \"boolean\"\n        },\n        \"discriminator\": {\n          \"$ref\": \"#/definitions/discriminator\"\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\"\n        },\n        \"writeOnly\": {\n          \"type\": \"boolean\"\n        },\n        \"xml\": {\n          \"$ref\": \"#/definitions/xml\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/any\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n        },\n        \"maximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n        },\n        \"maxProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maxProperties\"\n        },\n        \"minProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minProperties\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/required\"\n        },\n        \"enum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n        },\n        \"type\": {\n          \"type\": \"string\"\n        },\n        \"allOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"oneOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"anyOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          },\n          \"minItems\": 1\n        },\n        \"not\": {\n          \"$ref\": \"#/definitions/schema\"\n        },\n        \"items\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaOrReference\"\n            },\n            {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/definitions/schemaOrReference\"\n              },\n              \"minItems\": 1\n            }\n          ]\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/schemaOrReference\"\n          }\n        },\n        \"additionalProperties\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaOrReference\"\n            },\n            {\n              \"type\": \"boolean\"\n            }\n          ]\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/defaultType\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"discriminator\": {\n      \"type\": \"object\",\n      \"description\": \"When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\",\n      \"required\": [\n        \"propertyName\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"propertyName\": {\n          \"type\": \"string\"\n        },\n        \"mapping\": {\n          \"$ref\": \"#/definitions/strings\"\n        }\n      }\n    },\n    \"xml\": {\n      \"type\": \"object\",\n      \"description\": \"A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"type\": \"string\"\n        },\n        \"prefix\": {\n          \"type\": \"string\"\n        },\n        \"attribute\": {\n          \"type\": \"boolean\"\n        },\n        \"wrapped\": {\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"securityScheme\": {\n      \"type\": \"object\",\n      \"description\": \"Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect.   Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE.\",\n      \"required\": [\n        \"type\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\"\n        },\n        \"scheme\": {\n          \"type\": \"string\"\n        },\n        \"bearerFormat\": {\n          \"type\": \"string\"\n        },\n        \"flows\": {\n          \"$ref\": \"#/definitions/oauthFlows\"\n        },\n        \"openIdConnectUrl\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"oauthFlows\": {\n      \"type\": \"object\",\n      \"description\": \"Allows configuration of the supported OAuth Flows.\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"implicit\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"password\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"clientCredentials\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        },\n        \"authorizationCode\": {\n          \"$ref\": \"#/definitions/oauthFlow\"\n        }\n      }\n    },\n    \"oauthFlow\": {\n      \"type\": \"object\",\n      \"description\": \"Configuration details for a supported OAuth Flow\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/specificationExtension\"\n        }\n      },\n      \"properties\": {\n        \"authorizationUrl\": {\n          \"type\": \"string\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\"\n        },\n        \"refreshUrl\": {\n          \"type\": \"string\"\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/strings\"\n        }\n      }\n    },\n    \"securityRequirement\": {\n      \"type\": \"object\",\n      \"description\": \"Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request.\",\n      \"additionalProperties\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"string\"\n        },\n        \"uniqueItems\": true\n      }\n    },\n    \"anyOrExpression\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/any\"\n        },\n        {\n          \"$ref\": \"#/definitions/expression\"\n        }\n      ]\n    },\n    \"callbackOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/callback\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"exampleOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/example\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"headerOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/header\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"linkOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/link\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"parameterOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/parameter\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"requestBodyOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/requestBody\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"responseOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/response\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"schemaOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/schema\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"securitySchemeOrReference\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/securityScheme\"\n        },\n        {\n          \"$ref\": \"#/definitions/reference\"\n        }\n      ]\n    },\n    \"callbacksOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/callbackOrReference\"\n      }\n    },\n    \"encodings\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/encoding\"\n      }\n    },\n    \"examplesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/exampleOrReference\"\n      }\n    },\n    \"headersOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/headerOrReference\"\n      }\n    },\n    \"linksOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/linkOrReference\"\n      }\n    },\n    \"mediaTypes\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/mediaType\"\n      }\n    },\n    \"parametersOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/parameterOrReference\"\n      }\n    },\n    \"requestBodiesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/requestBodyOrReference\"\n      }\n    },\n    \"responsesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/responseOrReference\"\n      }\n    },\n    \"schemasOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/schemaOrReference\"\n      }\n    },\n    \"securitySchemesOrReferences\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/securitySchemeOrReference\"\n      }\n    },\n    \"serverVariables\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/serverVariable\"\n      }\n    },\n    \"strings\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"string\"\n      }\n    },\n    \"object\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"any\": {\n      \"additionalProperties\": true\n    },\n    \"expression\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"specificationExtension\": {\n      \"description\": \"Any property starting with x- is valid.\",\n      \"oneOf\": [\n        {\n          \"type\": \"null\"\n        },\n        {\n          \"type\": \"number\"\n        },\n        {\n          \"type\": \"boolean\"\n        },\n        {\n          \"type\": \"string\"\n        },\n        {\n          \"type\": \"object\"\n        },\n        {\n          \"type\": \"array\"\n        }\n      ]\n    },\n    \"defaultType\": {\n      \"oneOf\": [\n        {\n          \"type\": \"null\"\n        },\n        {\n          \"type\": \"array\"\n        },\n        {\n          \"type\": \"object\"\n        },\n        {\n          \"type\": \"number\"\n        },\n        {\n          \"type\": \"boolean\"\n        },\n        {\n          \"type\": \"string\"\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/LICENSE",
    "content": "Copyright (c) 2017 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/compare.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cmp determines equality of values.\n//\n// This package is intended to be a more powerful and safer alternative to\n// [reflect.DeepEqual] for comparing whether two values are semantically equal.\n// It is intended to only be used in tests, as performance is not a goal and\n// it may panic if it cannot compare the values. Its propensity towards\n// panicking means that its unsuitable for production environments where a\n// spurious panic may be fatal.\n//\n// The primary features of cmp are:\n//\n//   - When the default behavior of equality does not suit the test's needs,\n//     custom equality functions can override the equality operation.\n//     For example, an equality function may report floats as equal so long as\n//     they are within some tolerance of each other.\n//\n//   - Types with an Equal method (e.g., [time.Time.Equal]) may use that method\n//     to determine equality. This allows package authors to determine\n//     the equality operation for the types that they define.\n//\n//   - If no custom equality functions are used and no Equal method is defined,\n//     equality is determined by recursively comparing the primitive kinds on\n//     both values, much like [reflect.DeepEqual]. Unlike [reflect.DeepEqual],\n//     unexported fields are not compared by default; they result in panics\n//     unless suppressed by using an [Ignore] option\n//     (see [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported])\n//     or explicitly compared using the [Exporter] option.\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/diff\"\n\t\"github.com/google/go-cmp/cmp/internal/function\"\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\n// TODO(≥go1.18): Use any instead of interface{}.\n\n// Equal reports whether x and y are equal by recursively applying the\n// following rules in the given order to x and y and all of their sub-values:\n//\n//   - Let S be the set of all [Ignore], [Transformer], and [Comparer] options that\n//     remain after applying all path filters, value filters, and type filters.\n//     If at least one [Ignore] exists in S, then the comparison is ignored.\n//     If the number of [Transformer] and [Comparer] options in S is non-zero,\n//     then Equal panics because it is ambiguous which option to use.\n//     If S contains a single [Transformer], then use that to transform\n//     the current values and recursively call Equal on the output values.\n//     If S contains a single [Comparer], then use that to compare the current values.\n//     Otherwise, evaluation proceeds to the next rule.\n//\n//   - If the values have an Equal method of the form \"(T) Equal(T) bool\" or\n//     \"(T) Equal(I) bool\" where T is assignable to I, then use the result of\n//     x.Equal(y) even if x or y is nil. Otherwise, no such method exists and\n//     evaluation proceeds to the next rule.\n//\n//   - Lastly, try to compare x and y based on their basic kinds.\n//     Simple kinds like booleans, integers, floats, complex numbers, strings,\n//     and channels are compared using the equivalent of the == operator in Go.\n//     Functions are only equal if they are both nil, otherwise they are unequal.\n//\n// Structs are equal if recursively calling Equal on all fields report equal.\n// If a struct contains unexported fields, Equal panics unless an [Ignore] option\n// (e.g., [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]) ignores that field\n// or the [Exporter] option explicitly permits comparing the unexported field.\n//\n// Slices are equal if they are both nil or both non-nil, where recursively\n// calling Equal on all non-ignored slice or array elements report equal.\n// Empty non-nil slices and nil slices are not equal; to equate empty slices,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty].\n//\n// Maps are equal if they are both nil or both non-nil, where recursively\n// calling Equal on all non-ignored map entries report equal.\n// Map keys are equal according to the == operator.\n// To use custom comparisons for map keys, consider using\n// [github.com/google/go-cmp/cmp/cmpopts.SortMaps].\n// Empty non-nil maps and nil maps are not equal; to equate empty maps,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty].\n//\n// Pointers and interfaces are equal if they are both nil or both non-nil,\n// where they have the same underlying concrete type and recursively\n// calling Equal on the underlying values reports equal.\n//\n// Before recursing into a pointer, slice element, or map, the current path\n// is checked to detect whether the address has already been visited.\n// If there is a cycle, then the pointed at values are considered equal\n// only if both addresses were previously visited in the same path step.\nfunc Equal(x, y interface{}, opts ...Option) bool {\n\ts := newState(opts)\n\ts.compareAny(rootStep(x, y))\n\treturn s.result.Equal()\n}\n\n// Diff returns a human-readable report of the differences between two values:\n// y - x. It returns an empty string if and only if Equal returns true for the\n// same input values and options.\n//\n// The output is displayed as a literal in pseudo-Go syntax.\n// At the start of each line, a \"-\" prefix indicates an element removed from x,\n// a \"+\" prefix to indicates an element added from y, and the lack of a prefix\n// indicates an element common to both x and y. If possible, the output\n// uses fmt.Stringer.String or error.Error methods to produce more humanly\n// readable outputs. In such cases, the string is prefixed with either an\n// 's' or 'e' character, respectively, to indicate that the method was called.\n//\n// Do not depend on this output being stable. If you need the ability to\n// programmatically interpret the difference, consider using a custom Reporter.\nfunc Diff(x, y interface{}, opts ...Option) string {\n\ts := newState(opts)\n\n\t// Optimization: If there are no other reporters, we can optimize for the\n\t// common case where the result is equal (and thus no reported difference).\n\t// This avoids the expensive construction of a difference tree.\n\tif len(s.reporters) == 0 {\n\t\ts.compareAny(rootStep(x, y))\n\t\tif s.result.Equal() {\n\t\t\treturn \"\"\n\t\t}\n\t\ts.result = diff.Result{} // Reset results\n\t}\n\n\tr := new(defaultReporter)\n\ts.reporters = append(s.reporters, reporter{r})\n\ts.compareAny(rootStep(x, y))\n\td := r.String()\n\tif (d == \"\") != s.result.Equal() {\n\t\tpanic(\"inconsistent difference and equality results\")\n\t}\n\treturn d\n}\n\n// rootStep constructs the first path step. If x and y have differing types,\n// then they are stored within an empty interface type.\nfunc rootStep(x, y interface{}) PathStep {\n\tvx := reflect.ValueOf(x)\n\tvy := reflect.ValueOf(y)\n\n\t// If the inputs are different types, auto-wrap them in an empty interface\n\t// so that they have the same parent type.\n\tvar t reflect.Type\n\tif !vx.IsValid() || !vy.IsValid() || vx.Type() != vy.Type() {\n\t\tt = anyType\n\t\tif vx.IsValid() {\n\t\t\tvvx := reflect.New(t).Elem()\n\t\t\tvvx.Set(vx)\n\t\t\tvx = vvx\n\t\t}\n\t\tif vy.IsValid() {\n\t\t\tvvy := reflect.New(t).Elem()\n\t\t\tvvy.Set(vy)\n\t\t\tvy = vvy\n\t\t}\n\t} else {\n\t\tt = vx.Type()\n\t}\n\n\treturn &pathStep{t, vx, vy}\n}\n\ntype state struct {\n\t// These fields represent the \"comparison state\".\n\t// Calling statelessCompare must not result in observable changes to these.\n\tresult    diff.Result // The current result of comparison\n\tcurPath   Path        // The current path in the value tree\n\tcurPtrs   pointerPath // The current set of visited pointers\n\treporters []reporter  // Optional reporters\n\n\t// recChecker checks for infinite cycles applying the same set of\n\t// transformers upon the output of itself.\n\trecChecker recChecker\n\n\t// dynChecker triggers pseudo-random checks for option correctness.\n\t// It is safe for statelessCompare to mutate this value.\n\tdynChecker dynChecker\n\n\t// These fields, once set by processOption, will not change.\n\texporters []exporter // List of exporters for structs with unexported fields\n\topts      Options    // List of all fundamental and filter options\n}\n\nfunc newState(opts []Option) *state {\n\t// Always ensure a validator option exists to validate the inputs.\n\ts := &state{opts: Options{validator{}}}\n\ts.curPtrs.Init()\n\ts.processOption(Options(opts))\n\treturn s\n}\n\nfunc (s *state) processOption(opt Option) {\n\tswitch opt := opt.(type) {\n\tcase nil:\n\tcase Options:\n\t\tfor _, o := range opt {\n\t\t\ts.processOption(o)\n\t\t}\n\tcase coreOption:\n\t\ttype filtered interface {\n\t\t\tisFiltered() bool\n\t\t}\n\t\tif fopt, ok := opt.(filtered); ok && !fopt.isFiltered() {\n\t\t\tpanic(fmt.Sprintf(\"cannot use an unfiltered option: %v\", opt))\n\t\t}\n\t\ts.opts = append(s.opts, opt)\n\tcase exporter:\n\t\ts.exporters = append(s.exporters, opt)\n\tcase reporter:\n\t\ts.reporters = append(s.reporters, opt)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown option %T\", opt))\n\t}\n}\n\n// statelessCompare compares two values and returns the result.\n// This function is stateless in that it does not alter the current result,\n// or output to any registered reporters.\nfunc (s *state) statelessCompare(step PathStep) diff.Result {\n\t// We do not save and restore curPath and curPtrs because all of the\n\t// compareX methods should properly push and pop from them.\n\t// It is an implementation bug if the contents of the paths differ from\n\t// when calling this function to when returning from it.\n\n\toldResult, oldReporters := s.result, s.reporters\n\ts.result = diff.Result{} // Reset result\n\ts.reporters = nil        // Remove reporters to avoid spurious printouts\n\ts.compareAny(step)\n\tres := s.result\n\ts.result, s.reporters = oldResult, oldReporters\n\treturn res\n}\n\nfunc (s *state) compareAny(step PathStep) {\n\t// Update the path stack.\n\ts.curPath.push(step)\n\tdefer s.curPath.pop()\n\tfor _, r := range s.reporters {\n\t\tr.PushStep(step)\n\t\tdefer r.PopStep()\n\t}\n\ts.recChecker.Check(s.curPath)\n\n\t// Cycle-detection for slice elements (see NOTE in compareSlice).\n\tt := step.Type()\n\tvx, vy := step.Values()\n\tif si, ok := step.(SliceIndex); ok && si.isSlice && vx.IsValid() && vy.IsValid() {\n\t\tpx, py := vx.Addr(), vy.Addr()\n\t\tif eq, visited := s.curPtrs.Push(px, py); visited {\n\t\t\ts.report(eq, reportByCycle)\n\t\t\treturn\n\t\t}\n\t\tdefer s.curPtrs.Pop(px, py)\n\t}\n\n\t// Rule 1: Check whether an option applies on this node in the value tree.\n\tif s.tryOptions(t, vx, vy) {\n\t\treturn\n\t}\n\n\t// Rule 2: Check whether the type has a valid Equal method.\n\tif s.tryMethod(t, vx, vy) {\n\t\treturn\n\t}\n\n\t// Rule 3: Compare based on the underlying kind.\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\ts.report(vx.Bool() == vy.Bool(), 0)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\ts.report(vx.Int() == vy.Int(), 0)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\ts.report(vx.Uint() == vy.Uint(), 0)\n\tcase reflect.Float32, reflect.Float64:\n\t\ts.report(vx.Float() == vy.Float(), 0)\n\tcase reflect.Complex64, reflect.Complex128:\n\t\ts.report(vx.Complex() == vy.Complex(), 0)\n\tcase reflect.String:\n\t\ts.report(vx.String() == vy.String(), 0)\n\tcase reflect.Chan, reflect.UnsafePointer:\n\t\ts.report(vx.Pointer() == vy.Pointer(), 0)\n\tcase reflect.Func:\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\tcase reflect.Struct:\n\t\ts.compareStruct(t, vx, vy)\n\tcase reflect.Slice, reflect.Array:\n\t\ts.compareSlice(t, vx, vy)\n\tcase reflect.Map:\n\t\ts.compareMap(t, vx, vy)\n\tcase reflect.Ptr:\n\t\ts.comparePtr(t, vx, vy)\n\tcase reflect.Interface:\n\t\ts.compareInterface(t, vx, vy)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v kind not handled\", t.Kind()))\n\t}\n}\n\nfunc (s *state) tryOptions(t reflect.Type, vx, vy reflect.Value) bool {\n\t// Evaluate all filters and apply the remaining options.\n\tif opt := s.opts.filter(s, t, vx, vy); opt != nil {\n\t\topt.apply(s, vx, vy)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s *state) tryMethod(t reflect.Type, vx, vy reflect.Value) bool {\n\t// Check if this type even has an Equal method.\n\tm, ok := t.MethodByName(\"Equal\")\n\tif !ok || !function.IsType(m.Type, function.EqualAssignable) {\n\t\treturn false\n\t}\n\n\teq := s.callTTBFunc(m.Func, vx, vy)\n\ts.report(eq, reportByMethod)\n\treturn true\n}\n\nfunc (s *state) callTRFunc(f, v reflect.Value, step Transform) reflect.Value {\n\tif !s.dynChecker.Next() {\n\t\treturn f.Call([]reflect.Value{v})[0]\n\t}\n\n\t// Run the function twice and ensure that we get the same results back.\n\t// We run in goroutines so that the race detector (if enabled) can detect\n\t// unsafe mutations to the input.\n\tc := make(chan reflect.Value)\n\tgo detectRaces(c, f, v)\n\tgot := <-c\n\twant := f.Call([]reflect.Value{v})[0]\n\tif step.vx, step.vy = got, want; !s.statelessCompare(step).Equal() {\n\t\t// To avoid false-positives with non-reflexive equality operations,\n\t\t// we sanity check whether a value is equal to itself.\n\t\tif step.vx, step.vy = want, want; !s.statelessCompare(step).Equal() {\n\t\t\treturn want\n\t\t}\n\t\tpanic(fmt.Sprintf(\"non-deterministic function detected: %s\", function.NameOf(f)))\n\t}\n\treturn want\n}\n\nfunc (s *state) callTTBFunc(f, x, y reflect.Value) bool {\n\tif !s.dynChecker.Next() {\n\t\treturn f.Call([]reflect.Value{x, y})[0].Bool()\n\t}\n\n\t// Swapping the input arguments is sufficient to check that\n\t// f is symmetric and deterministic.\n\t// We run in goroutines so that the race detector (if enabled) can detect\n\t// unsafe mutations to the input.\n\tc := make(chan reflect.Value)\n\tgo detectRaces(c, f, y, x)\n\tgot := <-c\n\twant := f.Call([]reflect.Value{x, y})[0].Bool()\n\tif !got.IsValid() || got.Bool() != want {\n\t\tpanic(fmt.Sprintf(\"non-deterministic or non-symmetric function detected: %s\", function.NameOf(f)))\n\t}\n\treturn want\n}\n\nfunc detectRaces(c chan<- reflect.Value, f reflect.Value, vs ...reflect.Value) {\n\tvar ret reflect.Value\n\tdefer func() {\n\t\trecover() // Ignore panics, let the other call to f panic instead\n\t\tc <- ret\n\t}()\n\tret = f.Call(vs)[0]\n}\n\nfunc (s *state) compareStruct(t reflect.Type, vx, vy reflect.Value) {\n\tvar addr bool\n\tvar vax, vay reflect.Value // Addressable versions of vx and vy\n\n\tvar mayForce, mayForceInit bool\n\tstep := StructField{&structField{}}\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tstep.typ = t.Field(i).Type\n\t\tstep.vx = vx.Field(i)\n\t\tstep.vy = vy.Field(i)\n\t\tstep.name = t.Field(i).Name\n\t\tstep.idx = i\n\t\tstep.unexported = !isExported(step.name)\n\t\tif step.unexported {\n\t\t\tif step.name == \"_\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Defer checking of unexported fields until later to give an\n\t\t\t// Ignore a chance to ignore the field.\n\t\t\tif !vax.IsValid() || !vay.IsValid() {\n\t\t\t\t// For retrieveUnexportedField to work, the parent struct must\n\t\t\t\t// be addressable. Create a new copy of the values if\n\t\t\t\t// necessary to make them addressable.\n\t\t\t\taddr = vx.CanAddr() || vy.CanAddr()\n\t\t\t\tvax = makeAddressable(vx)\n\t\t\t\tvay = makeAddressable(vy)\n\t\t\t}\n\t\t\tif !mayForceInit {\n\t\t\t\tfor _, xf := range s.exporters {\n\t\t\t\t\tmayForce = mayForce || xf(t)\n\t\t\t\t}\n\t\t\t\tmayForceInit = true\n\t\t\t}\n\t\t\tstep.mayForce = mayForce\n\t\t\tstep.paddr = addr\n\t\t\tstep.pvx = vax\n\t\t\tstep.pvy = vay\n\t\t\tstep.field = t.Field(i)\n\t\t}\n\t\ts.compareAny(step)\n\t}\n}\n\nfunc (s *state) compareSlice(t reflect.Type, vx, vy reflect.Value) {\n\tisSlice := t.Kind() == reflect.Slice\n\tif isSlice && (vx.IsNil() || vy.IsNil()) {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// NOTE: It is incorrect to call curPtrs.Push on the slice header pointer\n\t// since slices represents a list of pointers, rather than a single pointer.\n\t// The pointer checking logic must be handled on a per-element basis\n\t// in compareAny.\n\t//\n\t// A slice header (see reflect.SliceHeader) in Go is a tuple of a starting\n\t// pointer P, a length N, and a capacity C. Supposing each slice element has\n\t// a memory size of M, then the slice is equivalent to the list of pointers:\n\t//\t[P+i*M for i in range(N)]\n\t//\n\t// For example, v[:0] and v[:1] are slices with the same starting pointer,\n\t// but they are clearly different values. Using the slice pointer alone\n\t// violates the assumption that equal pointers implies equal values.\n\n\tstep := SliceIndex{&sliceIndex{pathStep: pathStep{typ: t.Elem()}, isSlice: isSlice}}\n\twithIndexes := func(ix, iy int) SliceIndex {\n\t\tif ix >= 0 {\n\t\t\tstep.vx, step.xkey = vx.Index(ix), ix\n\t\t} else {\n\t\t\tstep.vx, step.xkey = reflect.Value{}, -1\n\t\t}\n\t\tif iy >= 0 {\n\t\t\tstep.vy, step.ykey = vy.Index(iy), iy\n\t\t} else {\n\t\t\tstep.vy, step.ykey = reflect.Value{}, -1\n\t\t}\n\t\treturn step\n\t}\n\n\t// Ignore options are able to ignore missing elements in a slice.\n\t// However, detecting these reliably requires an optimal differencing\n\t// algorithm, for which diff.Difference is not.\n\t//\n\t// Instead, we first iterate through both slices to detect which elements\n\t// would be ignored if standing alone. The index of non-discarded elements\n\t// are stored in a separate slice, which diffing is then performed on.\n\tvar indexesX, indexesY []int\n\tvar ignoredX, ignoredY []bool\n\tfor ix := 0; ix < vx.Len(); ix++ {\n\t\tignored := s.statelessCompare(withIndexes(ix, -1)).NumDiff == 0\n\t\tif !ignored {\n\t\t\tindexesX = append(indexesX, ix)\n\t\t}\n\t\tignoredX = append(ignoredX, ignored)\n\t}\n\tfor iy := 0; iy < vy.Len(); iy++ {\n\t\tignored := s.statelessCompare(withIndexes(-1, iy)).NumDiff == 0\n\t\tif !ignored {\n\t\t\tindexesY = append(indexesY, iy)\n\t\t}\n\t\tignoredY = append(ignoredY, ignored)\n\t}\n\n\t// Compute an edit-script for slices vx and vy (excluding ignored elements).\n\tedits := diff.Difference(len(indexesX), len(indexesY), func(ix, iy int) diff.Result {\n\t\treturn s.statelessCompare(withIndexes(indexesX[ix], indexesY[iy]))\n\t})\n\n\t// Replay the ignore-scripts and the edit-script.\n\tvar ix, iy int\n\tfor ix < vx.Len() || iy < vy.Len() {\n\t\tvar e diff.EditType\n\t\tswitch {\n\t\tcase ix < len(ignoredX) && ignoredX[ix]:\n\t\t\te = diff.UniqueX\n\t\tcase iy < len(ignoredY) && ignoredY[iy]:\n\t\t\te = diff.UniqueY\n\t\tdefault:\n\t\t\te, edits = edits[0], edits[1:]\n\t\t}\n\t\tswitch e {\n\t\tcase diff.UniqueX:\n\t\t\ts.compareAny(withIndexes(ix, -1))\n\t\t\tix++\n\t\tcase diff.UniqueY:\n\t\t\ts.compareAny(withIndexes(-1, iy))\n\t\t\tiy++\n\t\tdefault:\n\t\t\ts.compareAny(withIndexes(ix, iy))\n\t\t\tix++\n\t\t\tiy++\n\t\t}\n\t}\n}\n\nfunc (s *state) compareMap(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// Cycle-detection for maps.\n\tif eq, visited := s.curPtrs.Push(vx, vy); visited {\n\t\ts.report(eq, reportByCycle)\n\t\treturn\n\t}\n\tdefer s.curPtrs.Pop(vx, vy)\n\n\t// We combine and sort the two map keys so that we can perform the\n\t// comparisons in a deterministic order.\n\tstep := MapIndex{&mapIndex{pathStep: pathStep{typ: t.Elem()}}}\n\tfor _, k := range value.SortKeys(append(vx.MapKeys(), vy.MapKeys()...)) {\n\t\tstep.vx = vx.MapIndex(k)\n\t\tstep.vy = vy.MapIndex(k)\n\t\tstep.key = k\n\t\tif !step.vx.IsValid() && !step.vy.IsValid() {\n\t\t\t// It is possible for both vx and vy to be invalid if the\n\t\t\t// key contained a NaN value in it.\n\t\t\t//\n\t\t\t// Even with the ability to retrieve NaN keys in Go 1.12,\n\t\t\t// there still isn't a sensible way to compare the values since\n\t\t\t// a NaN key may map to multiple unordered values.\n\t\t\t// The most reasonable way to compare NaNs would be to compare the\n\t\t\t// set of values. However, this is impossible to do efficiently\n\t\t\t// since set equality is provably an O(n^2) operation given only\n\t\t\t// an Equal function. If we had a Less function or Hash function,\n\t\t\t// this could be done in O(n*log(n)) or O(n), respectively.\n\t\t\t//\n\t\t\t// Rather than adding complex logic to deal with NaNs, make it\n\t\t\t// the user's responsibility to compare such obscure maps.\n\t\t\tconst help = \"consider providing a Comparer to compare the map\"\n\t\t\tpanic(fmt.Sprintf(\"%#v has map key with NaNs\\n%s\", s.curPath, help))\n\t\t}\n\t\ts.compareAny(step)\n\t}\n}\n\nfunc (s *state) comparePtr(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// Cycle-detection for pointers.\n\tif eq, visited := s.curPtrs.Push(vx, vy); visited {\n\t\ts.report(eq, reportByCycle)\n\t\treturn\n\t}\n\tdefer s.curPtrs.Pop(vx, vy)\n\n\tvx, vy = vx.Elem(), vy.Elem()\n\ts.compareAny(Indirect{&indirect{pathStep{t.Elem(), vx, vy}}})\n}\n\nfunc (s *state) compareInterface(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\tvx, vy = vx.Elem(), vy.Elem()\n\tif vx.Type() != vy.Type() {\n\t\ts.report(false, 0)\n\t\treturn\n\t}\n\ts.compareAny(TypeAssertion{&typeAssertion{pathStep{vx.Type(), vx, vy}}})\n}\n\nfunc (s *state) report(eq bool, rf resultFlags) {\n\tif rf&reportByIgnore == 0 {\n\t\tif eq {\n\t\t\ts.result.NumSame++\n\t\t\trf |= reportEqual\n\t\t} else {\n\t\t\ts.result.NumDiff++\n\t\t\trf |= reportUnequal\n\t\t}\n\t}\n\tfor _, r := range s.reporters {\n\t\tr.Report(Result{flags: rf})\n\t}\n}\n\n// recChecker tracks the state needed to periodically perform checks that\n// user provided transformers are not stuck in an infinitely recursive cycle.\ntype recChecker struct{ next int }\n\n// Check scans the Path for any recursive transformers and panics when any\n// recursive transformers are detected. Note that the presence of a\n// recursive Transformer does not necessarily imply an infinite cycle.\n// As such, this check only activates after some minimal number of path steps.\nfunc (rc *recChecker) Check(p Path) {\n\tconst minLen = 1 << 16\n\tif rc.next == 0 {\n\t\trc.next = minLen\n\t}\n\tif len(p) < rc.next {\n\t\treturn\n\t}\n\trc.next <<= 1\n\n\t// Check whether the same transformer has appeared at least twice.\n\tvar ss []string\n\tm := map[Option]int{}\n\tfor _, ps := range p {\n\t\tif t, ok := ps.(Transform); ok {\n\t\t\tt := t.Option()\n\t\t\tif m[t] == 1 { // Transformer was used exactly once before\n\t\t\t\ttf := t.(*transformer).fnc.Type()\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%v: %v => %v\", t, tf.In(0), tf.Out(0)))\n\t\t\t}\n\t\t\tm[t]++\n\t\t}\n\t}\n\tif len(ss) > 0 {\n\t\tconst warning = \"recursive set of Transformers detected\"\n\t\tconst help = \"consider using cmpopts.AcyclicTransformer\"\n\t\tset := strings.Join(ss, \"\\n\\t\")\n\t\tpanic(fmt.Sprintf(\"%s:\\n\\t%s\\n%s\", warning, set, help))\n\t}\n}\n\n// dynChecker tracks the state needed to periodically perform checks that\n// user provided functions are symmetric and deterministic.\n// The zero value is safe for immediate use.\ntype dynChecker struct{ curr, next int }\n\n// Next increments the state and reports whether a check should be performed.\n//\n// Checks occur every Nth function call, where N is a triangular number:\n//\n//\t0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 ...\n//\n// See https://en.wikipedia.org/wiki/Triangular_number\n//\n// This sequence ensures that the cost of checks drops significantly as\n// the number of functions calls grows larger.\nfunc (dc *dynChecker) Next() bool {\n\tok := dc.curr == dc.next\n\tif ok {\n\t\tdc.curr = 0\n\t\tdc.next++\n\t}\n\tdc.curr++\n\treturn ok\n}\n\n// makeAddressable returns a value that is always addressable.\n// It returns the input verbatim if it is already addressable,\n// otherwise it creates a new value and returns an addressable copy.\nfunc makeAddressable(v reflect.Value) reflect.Value {\n\tif v.CanAddr() {\n\t\treturn v\n\t}\n\tvc := reflect.New(v.Type()).Elem()\n\tvc.Set(v)\n\treturn vc\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/export.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// retrieveUnexportedField uses unsafe to forcibly retrieve any field from\n// a struct such that the value has read-write permissions.\n//\n// The parent struct, v, must be addressable, while f must be a StructField\n// describing the field to retrieve. If addr is false,\n// then the returned value will be shallowed copied to be non-addressable.\nfunc retrieveUnexportedField(v reflect.Value, f reflect.StructField, addr bool) reflect.Value {\n\tve := reflect.NewAt(f.Type, unsafe.Pointer(uintptr(unsafe.Pointer(v.UnsafeAddr()))+f.Offset)).Elem()\n\tif !addr {\n\t\t// A field is addressable if and only if the struct is addressable.\n\t\t// If the original parent value was not addressable, shallow copy the\n\t\t// value to make it non-addressable to avoid leaking an implementation\n\t\t// detail of how forcibly exporting a field works.\n\t\tif ve.Kind() == reflect.Interface && ve.IsNil() {\n\t\t\treturn reflect.Zero(f.Type)\n\t\t}\n\t\treturn reflect.ValueOf(ve.Interface()).Convert(f.Type)\n\t}\n\treturn ve\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !cmp_debug\n// +build !cmp_debug\n\npackage diff\n\nvar debug debugger\n\ntype debugger struct{}\n\nfunc (debugger) Begin(_, _ int, f EqualFunc, _, _ *EditScript) EqualFunc {\n\treturn f\n}\nfunc (debugger) Update() {}\nfunc (debugger) Finish() {}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build cmp_debug\n// +build cmp_debug\n\npackage diff\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// The algorithm can be seen running in real-time by enabling debugging:\n//\tgo test -tags=cmp_debug -v\n//\n// Example output:\n//\t=== RUN   TestDifference/#34\n//\t┌───────────────────────────────┐\n//\t│ \\ · · · · · · · · · · · · · · │\n//\t│ · # · · · · · · · · · · · · · │\n//\t│ · \\ · · · · · · · · · · · · · │\n//\t│ · · \\ · · · · · · · · · · · · │\n//\t│ · · · X # · · · · · · · · · · │\n//\t│ · · · # \\ · · · · · · · · · · │\n//\t│ · · · · · # # · · · · · · · · │\n//\t│ · · · · · # \\ · · · · · · · · │\n//\t│ · · · · · · · \\ · · · · · · · │\n//\t│ · · · · · · · · \\ · · · · · · │\n//\t│ · · · · · · · · · \\ · · · · · │\n//\t│ · · · · · · · · · · \\ · · # · │\n//\t│ · · · · · · · · · · · \\ # # · │\n//\t│ · · · · · · · · · · · # # # · │\n//\t│ · · · · · · · · · · # # # # · │\n//\t│ · · · · · · · · · # # # # # · │\n//\t│ · · · · · · · · · · · · · · \\ │\n//\t└───────────────────────────────┘\n//\t[.Y..M.XY......YXYXY.|]\n//\n// The grid represents the edit-graph where the horizontal axis represents\n// list X and the vertical axis represents list Y. The start of the two lists\n// is the top-left, while the ends are the bottom-right. The '·' represents\n// an unexplored node in the graph. The '\\' indicates that the two symbols\n// from list X and Y are equal. The 'X' indicates that two symbols are similar\n// (but not exactly equal) to each other. The '#' indicates that the two symbols\n// are different (and not similar). The algorithm traverses this graph trying to\n// make the paths starting in the top-left and the bottom-right connect.\n//\n// The series of '.', 'X', 'Y', and 'M' characters at the bottom represents\n// the currently established path from the forward and reverse searches,\n// separated by a '|' character.\n\nconst (\n\tupdateDelay  = 100 * time.Millisecond\n\tfinishDelay  = 500 * time.Millisecond\n\tansiTerminal = true // ANSI escape codes used to move terminal cursor\n)\n\nvar debug debugger\n\ntype debugger struct {\n\tsync.Mutex\n\tp1, p2           EditScript\n\tfwdPath, revPath *EditScript\n\tgrid             []byte\n\tlines            int\n}\n\nfunc (dbg *debugger) Begin(nx, ny int, f EqualFunc, p1, p2 *EditScript) EqualFunc {\n\tdbg.Lock()\n\tdbg.fwdPath, dbg.revPath = p1, p2\n\ttop := \"┌─\" + strings.Repeat(\"──\", nx) + \"┐\\n\"\n\trow := \"│ \" + strings.Repeat(\"· \", nx) + \"│\\n\"\n\tbtm := \"└─\" + strings.Repeat(\"──\", nx) + \"┘\\n\"\n\tdbg.grid = []byte(top + strings.Repeat(row, ny) + btm)\n\tdbg.lines = strings.Count(dbg.String(), \"\\n\")\n\tfmt.Print(dbg)\n\n\t// Wrap the EqualFunc so that we can intercept each result.\n\treturn func(ix, iy int) (r Result) {\n\t\tcell := dbg.grid[len(top)+iy*len(row):][len(\"│ \")+len(\"· \")*ix:][:len(\"·\")]\n\t\tfor i := range cell {\n\t\t\tcell[i] = 0 // Zero out the multiple bytes of UTF-8 middle-dot\n\t\t}\n\t\tswitch r = f(ix, iy); {\n\t\tcase r.Equal():\n\t\t\tcell[0] = '\\\\'\n\t\tcase r.Similar():\n\t\t\tcell[0] = 'X'\n\t\tdefault:\n\t\t\tcell[0] = '#'\n\t\t}\n\t\treturn\n\t}\n}\n\nfunc (dbg *debugger) Update() {\n\tdbg.print(updateDelay)\n}\n\nfunc (dbg *debugger) Finish() {\n\tdbg.print(finishDelay)\n\tdbg.Unlock()\n}\n\nfunc (dbg *debugger) String() string {\n\tdbg.p1, dbg.p2 = *dbg.fwdPath, dbg.p2[:0]\n\tfor i := len(*dbg.revPath) - 1; i >= 0; i-- {\n\t\tdbg.p2 = append(dbg.p2, (*dbg.revPath)[i])\n\t}\n\treturn fmt.Sprintf(\"%s[%v|%v]\\n\\n\", dbg.grid, dbg.p1, dbg.p2)\n}\n\nfunc (dbg *debugger) print(d time.Duration) {\n\tif ansiTerminal {\n\t\tfmt.Printf(\"\\x1b[%dA\", dbg.lines) // Reset terminal cursor\n\t}\n\tfmt.Print(dbg)\n\ttime.Sleep(d)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package diff implements an algorithm for producing edit-scripts.\n// The edit-script is a sequence of operations needed to transform one list\n// of symbols into another (or vice-versa). The edits allowed are insertions,\n// deletions, and modifications. The summation of all edits is called the\n// Levenshtein distance as this problem is well-known in computer science.\n//\n// This package prioritizes performance over accuracy. That is, the run time\n// is more important than obtaining a minimal Levenshtein distance.\npackage diff\n\nimport (\n\t\"math/rand\"\n\t\"time\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n)\n\n// EditType represents a single operation within an edit-script.\ntype EditType uint8\n\nconst (\n\t// Identity indicates that a symbol pair is identical in both list X and Y.\n\tIdentity EditType = iota\n\t// UniqueX indicates that a symbol only exists in X and not Y.\n\tUniqueX\n\t// UniqueY indicates that a symbol only exists in Y and not X.\n\tUniqueY\n\t// Modified indicates that a symbol pair is a modification of each other.\n\tModified\n)\n\n// EditScript represents the series of differences between two lists.\ntype EditScript []EditType\n\n// String returns a human-readable string representing the edit-script where\n// Identity, UniqueX, UniqueY, and Modified are represented by the\n// '.', 'X', 'Y', and 'M' characters, respectively.\nfunc (es EditScript) String() string {\n\tb := make([]byte, len(es))\n\tfor i, e := range es {\n\t\tswitch e {\n\t\tcase Identity:\n\t\t\tb[i] = '.'\n\t\tcase UniqueX:\n\t\t\tb[i] = 'X'\n\t\tcase UniqueY:\n\t\t\tb[i] = 'Y'\n\t\tcase Modified:\n\t\t\tb[i] = 'M'\n\t\tdefault:\n\t\t\tpanic(\"invalid edit-type\")\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// stats returns a histogram of the number of each type of edit operation.\nfunc (es EditScript) stats() (s struct{ NI, NX, NY, NM int }) {\n\tfor _, e := range es {\n\t\tswitch e {\n\t\tcase Identity:\n\t\t\ts.NI++\n\t\tcase UniqueX:\n\t\t\ts.NX++\n\t\tcase UniqueY:\n\t\t\ts.NY++\n\t\tcase Modified:\n\t\t\ts.NM++\n\t\tdefault:\n\t\t\tpanic(\"invalid edit-type\")\n\t\t}\n\t}\n\treturn\n}\n\n// Dist is the Levenshtein distance and is guaranteed to be 0 if and only if\n// lists X and Y are equal.\nfunc (es EditScript) Dist() int { return len(es) - es.stats().NI }\n\n// LenX is the length of the X list.\nfunc (es EditScript) LenX() int { return len(es) - es.stats().NY }\n\n// LenY is the length of the Y list.\nfunc (es EditScript) LenY() int { return len(es) - es.stats().NX }\n\n// EqualFunc reports whether the symbols at indexes ix and iy are equal.\n// When called by Difference, the index is guaranteed to be within nx and ny.\ntype EqualFunc func(ix int, iy int) Result\n\n// Result is the result of comparison.\n// NumSame is the number of sub-elements that are equal.\n// NumDiff is the number of sub-elements that are not equal.\ntype Result struct{ NumSame, NumDiff int }\n\n// BoolResult returns a Result that is either Equal or not Equal.\nfunc BoolResult(b bool) Result {\n\tif b {\n\t\treturn Result{NumSame: 1} // Equal, Similar\n\t} else {\n\t\treturn Result{NumDiff: 2} // Not Equal, not Similar\n\t}\n}\n\n// Equal indicates whether the symbols are equal. Two symbols are equal\n// if and only if NumDiff == 0. If Equal, then they are also Similar.\nfunc (r Result) Equal() bool { return r.NumDiff == 0 }\n\n// Similar indicates whether two symbols are similar and may be represented\n// by using the Modified type. As a special case, we consider binary comparisons\n// (i.e., those that return Result{1, 0} or Result{0, 1}) to be similar.\n//\n// The exact ratio of NumSame to NumDiff to determine similarity may change.\nfunc (r Result) Similar() bool {\n\t// Use NumSame+1 to offset NumSame so that binary comparisons are similar.\n\treturn r.NumSame+1 >= r.NumDiff\n}\n\nvar randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0\n\n// Difference reports whether two lists of lengths nx and ny are equal\n// given the definition of equality provided as f.\n//\n// This function returns an edit-script, which is a sequence of operations\n// needed to convert one list into the other. The following invariants for\n// the edit-script are maintained:\n//   - eq == (es.Dist()==0)\n//   - nx == es.LenX()\n//   - ny == es.LenY()\n//\n// This algorithm is not guaranteed to be an optimal solution (i.e., one that\n// produces an edit-script with a minimal Levenshtein distance). This algorithm\n// favors performance over optimality. The exact output is not guaranteed to\n// be stable and may change over time.\nfunc Difference(nx, ny int, f EqualFunc) (es EditScript) {\n\t// This algorithm is based on traversing what is known as an \"edit-graph\".\n\t// See Figure 1 from \"An O(ND) Difference Algorithm and Its Variations\"\n\t// by Eugene W. Myers. Since D can be as large as N itself, this is\n\t// effectively O(N^2). Unlike the algorithm from that paper, we are not\n\t// interested in the optimal path, but at least some \"decent\" path.\n\t//\n\t// For example, let X and Y be lists of symbols:\n\t//\tX = [A B C A B B A]\n\t//\tY = [C B A B A C]\n\t//\n\t// The edit-graph can be drawn as the following:\n\t//\t   A B C A B B A\n\t//\t  ┌─────────────┐\n\t//\tC │_|_|\\|_|_|_|_│ 0\n\t//\tB │_|\\|_|_|\\|\\|_│ 1\n\t//\tA │\\|_|_|\\|_|_|\\│ 2\n\t//\tB │_|\\|_|_|\\|\\|_│ 3\n\t//\tA │\\|_|_|\\|_|_|\\│ 4\n\t//\tC │ | |\\| | | | │ 5\n\t//\t  └─────────────┘ 6\n\t//\t   0 1 2 3 4 5 6 7\n\t//\n\t// List X is written along the horizontal axis, while list Y is written\n\t// along the vertical axis. At any point on this grid, if the symbol in\n\t// list X matches the corresponding symbol in list Y, then a '\\' is drawn.\n\t// The goal of any minimal edit-script algorithm is to find a path from the\n\t// top-left corner to the bottom-right corner, while traveling through the\n\t// fewest horizontal or vertical edges.\n\t// A horizontal edge is equivalent to inserting a symbol from list X.\n\t// A vertical edge is equivalent to inserting a symbol from list Y.\n\t// A diagonal edge is equivalent to a matching symbol between both X and Y.\n\n\t// Invariants:\n\t//   - 0 ≤ fwdPath.X ≤ (fwdFrontier.X, revFrontier.X) ≤ revPath.X ≤ nx\n\t//   - 0 ≤ fwdPath.Y ≤ (fwdFrontier.Y, revFrontier.Y) ≤ revPath.Y ≤ ny\n\t//\n\t// In general:\n\t//   - fwdFrontier.X < revFrontier.X\n\t//   - fwdFrontier.Y < revFrontier.Y\n\t//\n\t// Unless, it is time for the algorithm to terminate.\n\tfwdPath := path{+1, point{0, 0}, make(EditScript, 0, (nx+ny)/2)}\n\trevPath := path{-1, point{nx, ny}, make(EditScript, 0)}\n\tfwdFrontier := fwdPath.point // Forward search frontier\n\trevFrontier := revPath.point // Reverse search frontier\n\n\t// Search budget bounds the cost of searching for better paths.\n\t// The longest sequence of non-matching symbols that can be tolerated is\n\t// approximately the square-root of the search budget.\n\tsearchBudget := 4 * (nx + ny) // O(n)\n\n\t// Running the tests with the \"cmp_debug\" build tag prints a visualization\n\t// of the algorithm running in real-time. This is educational for\n\t// understanding how the algorithm works. See debug_enable.go.\n\tf = debug.Begin(nx, ny, f, &fwdPath.es, &revPath.es)\n\n\t// The algorithm below is a greedy, meet-in-the-middle algorithm for\n\t// computing sub-optimal edit-scripts between two lists.\n\t//\n\t// The algorithm is approximately as follows:\n\t//   - Searching for differences switches back-and-forth between\n\t//     a search that starts at the beginning (the top-left corner), and\n\t//     a search that starts at the end (the bottom-right corner).\n\t//     The goal of the search is connect with the search\n\t//     from the opposite corner.\n\t//   - As we search, we build a path in a greedy manner,\n\t//     where the first match seen is added to the path (this is sub-optimal,\n\t//     but provides a decent result in practice). When matches are found,\n\t//     we try the next pair of symbols in the lists and follow all matches\n\t//     as far as possible.\n\t//   - When searching for matches, we search along a diagonal going through\n\t//     through the \"frontier\" point. If no matches are found,\n\t//     we advance the frontier towards the opposite corner.\n\t//   - This algorithm terminates when either the X coordinates or the\n\t//     Y coordinates of the forward and reverse frontier points ever intersect.\n\n\t// This algorithm is correct even if searching only in the forward direction\n\t// or in the reverse direction. We do both because it is commonly observed\n\t// that two lists commonly differ because elements were added to the front\n\t// or end of the other list.\n\t//\n\t// Non-deterministically start with either the forward or reverse direction\n\t// to introduce some deliberate instability so that we have the flexibility\n\t// to change this algorithm in the future.\n\tif flags.Deterministic || randBool {\n\t\tgoto forwardSearch\n\t} else {\n\t\tgoto reverseSearch\n\t}\n\nforwardSearch:\n\t{\n\t\t// Forward search from the beginning.\n\t\tif fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {\n\t\t\tgoto finishSearch\n\t\t}\n\t\tfor stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {\n\t\t\t// Search in a diagonal pattern for a match.\n\t\t\tz := zigzag(i)\n\t\t\tp := point{fwdFrontier.X + z, fwdFrontier.Y - z}\n\t\t\tswitch {\n\t\t\tcase p.X >= revPath.X || p.Y < fwdPath.Y:\n\t\t\t\tstop1 = true // Hit top-right corner\n\t\t\tcase p.Y >= revPath.Y || p.X < fwdPath.X:\n\t\t\t\tstop2 = true // Hit bottom-left corner\n\t\t\tcase f(p.X, p.Y).Equal():\n\t\t\t\t// Match found, so connect the path to this point.\n\t\t\t\tfwdPath.connect(p, f)\n\t\t\t\tfwdPath.append(Identity)\n\t\t\t\t// Follow sequence of matches as far as possible.\n\t\t\t\tfor fwdPath.X < revPath.X && fwdPath.Y < revPath.Y {\n\t\t\t\t\tif !f(fwdPath.X, fwdPath.Y).Equal() {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tfwdPath.append(Identity)\n\t\t\t\t}\n\t\t\t\tfwdFrontier = fwdPath.point\n\t\t\t\tstop1, stop2 = true, true\n\t\t\tdefault:\n\t\t\t\tsearchBudget-- // Match not found\n\t\t\t}\n\t\t\tdebug.Update()\n\t\t}\n\t\t// Advance the frontier towards reverse point.\n\t\tif revPath.X-fwdFrontier.X >= revPath.Y-fwdFrontier.Y {\n\t\t\tfwdFrontier.X++\n\t\t} else {\n\t\t\tfwdFrontier.Y++\n\t\t}\n\t\tgoto reverseSearch\n\t}\n\nreverseSearch:\n\t{\n\t\t// Reverse search from the end.\n\t\tif fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {\n\t\t\tgoto finishSearch\n\t\t}\n\t\tfor stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {\n\t\t\t// Search in a diagonal pattern for a match.\n\t\t\tz := zigzag(i)\n\t\t\tp := point{revFrontier.X - z, revFrontier.Y + z}\n\t\t\tswitch {\n\t\t\tcase fwdPath.X >= p.X || revPath.Y < p.Y:\n\t\t\t\tstop1 = true // Hit bottom-left corner\n\t\t\tcase fwdPath.Y >= p.Y || revPath.X < p.X:\n\t\t\t\tstop2 = true // Hit top-right corner\n\t\t\tcase f(p.X-1, p.Y-1).Equal():\n\t\t\t\t// Match found, so connect the path to this point.\n\t\t\t\trevPath.connect(p, f)\n\t\t\t\trevPath.append(Identity)\n\t\t\t\t// Follow sequence of matches as far as possible.\n\t\t\t\tfor fwdPath.X < revPath.X && fwdPath.Y < revPath.Y {\n\t\t\t\t\tif !f(revPath.X-1, revPath.Y-1).Equal() {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\trevPath.append(Identity)\n\t\t\t\t}\n\t\t\t\trevFrontier = revPath.point\n\t\t\t\tstop1, stop2 = true, true\n\t\t\tdefault:\n\t\t\t\tsearchBudget-- // Match not found\n\t\t\t}\n\t\t\tdebug.Update()\n\t\t}\n\t\t// Advance the frontier towards forward point.\n\t\tif revFrontier.X-fwdPath.X >= revFrontier.Y-fwdPath.Y {\n\t\t\trevFrontier.X--\n\t\t} else {\n\t\t\trevFrontier.Y--\n\t\t}\n\t\tgoto forwardSearch\n\t}\n\nfinishSearch:\n\t// Join the forward and reverse paths and then append the reverse path.\n\tfwdPath.connect(revPath.point, f)\n\tfor i := len(revPath.es) - 1; i >= 0; i-- {\n\t\tt := revPath.es[i]\n\t\trevPath.es = revPath.es[:i]\n\t\tfwdPath.append(t)\n\t}\n\tdebug.Finish()\n\treturn fwdPath.es\n}\n\ntype path struct {\n\tdir   int // +1 if forward, -1 if reverse\n\tpoint     // Leading point of the EditScript path\n\tes    EditScript\n}\n\n// connect appends any necessary Identity, Modified, UniqueX, or UniqueY types\n// to the edit-script to connect p.point to dst.\nfunc (p *path) connect(dst point, f EqualFunc) {\n\tif p.dir > 0 {\n\t\t// Connect in forward direction.\n\t\tfor dst.X > p.X && dst.Y > p.Y {\n\t\t\tswitch r := f(p.X, p.Y); {\n\t\t\tcase r.Equal():\n\t\t\t\tp.append(Identity)\n\t\t\tcase r.Similar():\n\t\t\t\tp.append(Modified)\n\t\t\tcase dst.X-p.X >= dst.Y-p.Y:\n\t\t\t\tp.append(UniqueX)\n\t\t\tdefault:\n\t\t\t\tp.append(UniqueY)\n\t\t\t}\n\t\t}\n\t\tfor dst.X > p.X {\n\t\t\tp.append(UniqueX)\n\t\t}\n\t\tfor dst.Y > p.Y {\n\t\t\tp.append(UniqueY)\n\t\t}\n\t} else {\n\t\t// Connect in reverse direction.\n\t\tfor p.X > dst.X && p.Y > dst.Y {\n\t\t\tswitch r := f(p.X-1, p.Y-1); {\n\t\t\tcase r.Equal():\n\t\t\t\tp.append(Identity)\n\t\t\tcase r.Similar():\n\t\t\t\tp.append(Modified)\n\t\t\tcase p.Y-dst.Y >= p.X-dst.X:\n\t\t\t\tp.append(UniqueY)\n\t\t\tdefault:\n\t\t\t\tp.append(UniqueX)\n\t\t\t}\n\t\t}\n\t\tfor p.X > dst.X {\n\t\t\tp.append(UniqueX)\n\t\t}\n\t\tfor p.Y > dst.Y {\n\t\t\tp.append(UniqueY)\n\t\t}\n\t}\n}\n\nfunc (p *path) append(t EditType) {\n\tp.es = append(p.es, t)\n\tswitch t {\n\tcase Identity, Modified:\n\t\tp.add(p.dir, p.dir)\n\tcase UniqueX:\n\t\tp.add(p.dir, 0)\n\tcase UniqueY:\n\t\tp.add(0, p.dir)\n\t}\n\tdebug.Update()\n}\n\ntype point struct{ X, Y int }\n\nfunc (p *point) add(dx, dy int) { p.X += dx; p.Y += dy }\n\n// zigzag maps a consecutive sequence of integers to a zig-zag sequence.\n//\n//\t[0 1 2 3 4 5 ...] => [0 -1 +1 -2 +2 ...]\nfunc zigzag(x int) int {\n\tif x&1 != 0 {\n\t\tx = ^x\n\t}\n\treturn x >> 1\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage flags\n\n// Deterministic controls whether the output of Diff should be deterministic.\n// This is only used for testing.\nvar Deterministic bool\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/function/func.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package function provides functionality for identifying function types.\npackage function\n\nimport (\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"strings\"\n)\n\ntype funcType int\n\nconst (\n\t_ funcType = iota\n\n\ttbFunc  // func(T) bool\n\tttbFunc // func(T, T) bool\n\tttiFunc // func(T, T) int\n\ttrbFunc // func(T, R) bool\n\ttibFunc // func(T, I) bool\n\ttrFunc  // func(T) R\n\n\tEqual             = ttbFunc // func(T, T) bool\n\tEqualAssignable   = tibFunc // func(T, I) bool; encapsulates func(T, T) bool\n\tTransformer       = trFunc  // func(T) R\n\tValueFilter       = ttbFunc // func(T, T) bool\n\tLess              = ttbFunc // func(T, T) bool\n\tCompare           = ttiFunc // func(T, T) int\n\tValuePredicate    = tbFunc  // func(T) bool\n\tKeyValuePredicate = trbFunc // func(T, R) bool\n)\n\nvar boolType = reflect.TypeOf(true)\nvar intType = reflect.TypeOf(0)\n\n// IsType reports whether the reflect.Type is of the specified function type.\nfunc IsType(t reflect.Type, ft funcType) bool {\n\tif t == nil || t.Kind() != reflect.Func || t.IsVariadic() {\n\t\treturn false\n\t}\n\tni, no := t.NumIn(), t.NumOut()\n\tswitch ft {\n\tcase tbFunc: // func(T) bool\n\t\tif ni == 1 && no == 1 && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase ttbFunc: // func(T, T) bool\n\t\tif ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase ttiFunc: // func(T, T) int\n\t\tif ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == intType {\n\t\t\treturn true\n\t\t}\n\tcase trbFunc: // func(T, R) bool\n\t\tif ni == 2 && no == 1 && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase tibFunc: // func(T, I) bool\n\t\tif ni == 2 && no == 1 && t.In(0).AssignableTo(t.In(1)) && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase trFunc: // func(T) R\n\t\tif ni == 1 && no == 1 {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nvar lastIdentRx = regexp.MustCompile(`[_\\p{L}][_\\p{L}\\p{N}]*$`)\n\n// NameOf returns the name of the function value.\nfunc NameOf(v reflect.Value) string {\n\tfnc := runtime.FuncForPC(v.Pointer())\n\tif fnc == nil {\n\t\treturn \"<unknown>\"\n\t}\n\tfullName := fnc.Name() // e.g., \"long/path/name/mypkg.(*MyType).(long/path/name/mypkg.myMethod)-fm\"\n\n\t// Method closures have a \"-fm\" suffix.\n\tfullName = strings.TrimSuffix(fullName, \"-fm\")\n\n\tvar name string\n\tfor len(fullName) > 0 {\n\t\tinParen := strings.HasSuffix(fullName, \")\")\n\t\tfullName = strings.TrimSuffix(fullName, \")\")\n\n\t\ts := lastIdentRx.FindString(fullName)\n\t\tif s == \"\" {\n\t\t\tbreak\n\t\t}\n\t\tname = s + \".\" + name\n\t\tfullName = strings.TrimSuffix(fullName, s)\n\n\t\tif i := strings.LastIndexByte(fullName, '('); inParen && i >= 0 {\n\t\t\tfullName = fullName[:i]\n\t\t}\n\t\tfullName = strings.TrimSuffix(fullName, \".\")\n\t}\n\treturn strings.TrimSuffix(name, \".\")\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/name.go",
    "content": "// Copyright 2020, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n)\n\nvar anyType = reflect.TypeOf((*interface{})(nil)).Elem()\n\n// TypeString is nearly identical to reflect.Type.String,\n// but has an additional option to specify that full type names be used.\nfunc TypeString(t reflect.Type, qualified bool) string {\n\treturn string(appendTypeName(nil, t, qualified, false))\n}\n\nfunc appendTypeName(b []byte, t reflect.Type, qualified, elideFunc bool) []byte {\n\t// BUG: Go reflection provides no way to disambiguate two named types\n\t// of the same name and within the same package,\n\t// but declared within the namespace of different functions.\n\n\t// Use the \"any\" alias instead of \"interface{}\" for better readability.\n\tif t == anyType {\n\t\treturn append(b, \"any\"...)\n\t}\n\n\t// Named type.\n\tif t.Name() != \"\" {\n\t\tif qualified && t.PkgPath() != \"\" {\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, t.PkgPath()...)\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, '.')\n\t\t\tb = append(b, t.Name()...)\n\t\t} else {\n\t\t\tb = append(b, t.String()...)\n\t\t}\n\t\treturn b\n\t}\n\n\t// Unnamed type.\n\tswitch k := t.Kind(); k {\n\tcase reflect.Bool, reflect.String, reflect.UnsafePointer,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\treflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\tb = append(b, k.String()...)\n\tcase reflect.Chan:\n\t\tif t.ChanDir() == reflect.RecvDir {\n\t\t\tb = append(b, \"<-\"...)\n\t\t}\n\t\tb = append(b, \"chan\"...)\n\t\tif t.ChanDir() == reflect.SendDir {\n\t\t\tb = append(b, \"<-\"...)\n\t\t}\n\t\tb = append(b, ' ')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Func:\n\t\tif !elideFunc {\n\t\t\tb = append(b, \"func\"...)\n\t\t}\n\t\tb = append(b, '(')\n\t\tfor i := 0; i < t.NumIn(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \", \"...)\n\t\t\t}\n\t\t\tif i == t.NumIn()-1 && t.IsVariadic() {\n\t\t\t\tb = append(b, \"...\"...)\n\t\t\t\tb = appendTypeName(b, t.In(i).Elem(), qualified, false)\n\t\t\t} else {\n\t\t\t\tb = appendTypeName(b, t.In(i), qualified, false)\n\t\t\t}\n\t\t}\n\t\tb = append(b, ')')\n\t\tswitch t.NumOut() {\n\t\tcase 0:\n\t\t\t// Do nothing\n\t\tcase 1:\n\t\t\tb = append(b, ' ')\n\t\t\tb = appendTypeName(b, t.Out(0), qualified, false)\n\t\tdefault:\n\t\t\tb = append(b, \" (\"...)\n\t\t\tfor i := 0; i < t.NumOut(); i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tb = append(b, \", \"...)\n\t\t\t\t}\n\t\t\t\tb = appendTypeName(b, t.Out(i), qualified, false)\n\t\t\t}\n\t\t\tb = append(b, ')')\n\t\t}\n\tcase reflect.Struct:\n\t\tb = append(b, \"struct{ \"...)\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \"; \"...)\n\t\t\t}\n\t\t\tsf := t.Field(i)\n\t\t\tif !sf.Anonymous {\n\t\t\t\tif qualified && sf.PkgPath != \"\" {\n\t\t\t\t\tb = append(b, '\"')\n\t\t\t\t\tb = append(b, sf.PkgPath...)\n\t\t\t\t\tb = append(b, '\"')\n\t\t\t\t\tb = append(b, '.')\n\t\t\t\t}\n\t\t\t\tb = append(b, sf.Name...)\n\t\t\t\tb = append(b, ' ')\n\t\t\t}\n\t\t\tb = appendTypeName(b, sf.Type, qualified, false)\n\t\t\tif sf.Tag != \"\" {\n\t\t\t\tb = append(b, ' ')\n\t\t\t\tb = strconv.AppendQuote(b, string(sf.Tag))\n\t\t\t}\n\t\t}\n\t\tif b[len(b)-1] == ' ' {\n\t\t\tb = b[:len(b)-1]\n\t\t} else {\n\t\t\tb = append(b, ' ')\n\t\t}\n\t\tb = append(b, '}')\n\tcase reflect.Slice, reflect.Array:\n\t\tb = append(b, '[')\n\t\tif k == reflect.Array {\n\t\t\tb = strconv.AppendUint(b, uint64(t.Len()), 10)\n\t\t}\n\t\tb = append(b, ']')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Map:\n\t\tb = append(b, \"map[\"...)\n\t\tb = appendTypeName(b, t.Key(), qualified, false)\n\t\tb = append(b, ']')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Ptr:\n\t\tb = append(b, '*')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Interface:\n\t\tb = append(b, \"interface{ \"...)\n\t\tfor i := 0; i < t.NumMethod(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \"; \"...)\n\t\t\t}\n\t\t\tm := t.Method(i)\n\t\t\tif qualified && m.PkgPath != \"\" {\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tb = append(b, m.PkgPath...)\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tb = append(b, '.')\n\t\t\t}\n\t\t\tb = append(b, m.Name...)\n\t\t\tb = appendTypeName(b, m.Type, qualified, true)\n\t\t}\n\t\tif b[len(b)-1] == ' ' {\n\t\t\tb = b[:len(b)-1]\n\t\t} else {\n\t\t\tb = append(b, ' ')\n\t\t}\n\t\tb = append(b, '}')\n\tdefault:\n\t\tpanic(\"invalid kind: \" + k.String())\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go",
    "content": "// Copyright 2018, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// Pointer is an opaque typed pointer and is guaranteed to be comparable.\ntype Pointer struct {\n\tp unsafe.Pointer\n\tt reflect.Type\n}\n\n// PointerOf returns a Pointer from v, which must be a\n// reflect.Ptr, reflect.Slice, or reflect.Map.\nfunc PointerOf(v reflect.Value) Pointer {\n\t// The proper representation of a pointer is unsafe.Pointer,\n\t// which is necessary if the GC ever uses a moving collector.\n\treturn Pointer{unsafe.Pointer(v.Pointer()), v.Type()}\n}\n\n// IsNil reports whether the pointer is nil.\nfunc (p Pointer) IsNil() bool {\n\treturn p.p == nil\n}\n\n// Uintptr returns the pointer as a uintptr.\nfunc (p Pointer) Uintptr() uintptr {\n\treturn uintptr(p.p)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/sort.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n)\n\n// SortKeys sorts a list of map keys, deduplicating keys if necessary.\n// The type of each value must be comparable.\nfunc SortKeys(vs []reflect.Value) []reflect.Value {\n\tif len(vs) == 0 {\n\t\treturn vs\n\t}\n\n\t// Sort the map keys.\n\tsort.SliceStable(vs, func(i, j int) bool { return isLess(vs[i], vs[j]) })\n\n\t// Deduplicate keys (fails for NaNs).\n\tvs2 := vs[:1]\n\tfor _, v := range vs[1:] {\n\t\tif isLess(vs2[len(vs2)-1], v) {\n\t\t\tvs2 = append(vs2, v)\n\t\t}\n\t}\n\treturn vs2\n}\n\n// isLess is a generic function for sorting arbitrary map keys.\n// The inputs must be of the same type and must be comparable.\nfunc isLess(x, y reflect.Value) bool {\n\tswitch x.Type().Kind() {\n\tcase reflect.Bool:\n\t\treturn !x.Bool() && y.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn x.Int() < y.Int()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn x.Uint() < y.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\t// NOTE: This does not sort -0 as less than +0\n\t\t// since Go maps treat -0 and +0 as equal keys.\n\t\tfx, fy := x.Float(), y.Float()\n\t\treturn fx < fy || math.IsNaN(fx) && !math.IsNaN(fy)\n\tcase reflect.Complex64, reflect.Complex128:\n\t\tcx, cy := x.Complex(), y.Complex()\n\t\trx, ix, ry, iy := real(cx), imag(cx), real(cy), imag(cy)\n\t\tif rx == ry || (math.IsNaN(rx) && math.IsNaN(ry)) {\n\t\t\treturn ix < iy || math.IsNaN(ix) && !math.IsNaN(iy)\n\t\t}\n\t\treturn rx < ry || math.IsNaN(rx) && !math.IsNaN(ry)\n\tcase reflect.Ptr, reflect.UnsafePointer, reflect.Chan:\n\t\treturn x.Pointer() < y.Pointer()\n\tcase reflect.String:\n\t\treturn x.String() < y.String()\n\tcase reflect.Array:\n\t\tfor i := 0; i < x.Len(); i++ {\n\t\t\tif isLess(x.Index(i), y.Index(i)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif isLess(y.Index(i), x.Index(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn false\n\tcase reflect.Struct:\n\t\tfor i := 0; i < x.NumField(); i++ {\n\t\t\tif isLess(x.Field(i), y.Field(i)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif isLess(y.Field(i), x.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn false\n\tcase reflect.Interface:\n\t\tvx, vy := x.Elem(), y.Elem()\n\t\tif !vx.IsValid() || !vy.IsValid() {\n\t\t\treturn !vx.IsValid() && vy.IsValid()\n\t\t}\n\t\ttx, ty := vx.Type(), vy.Type()\n\t\tif tx == ty {\n\t\t\treturn isLess(x.Elem(), y.Elem())\n\t\t}\n\t\tif tx.Kind() != ty.Kind() {\n\t\t\treturn vx.Kind() < vy.Kind()\n\t\t}\n\t\tif tx.String() != ty.String() {\n\t\t\treturn tx.String() < ty.String()\n\t\t}\n\t\tif tx.PkgPath() != ty.PkgPath() {\n\t\t\treturn tx.PkgPath() < ty.PkgPath()\n\t\t}\n\t\t// This can happen in rare situations, so we fallback to just comparing\n\t\t// the unique pointer for a reflect.Type. This guarantees deterministic\n\t\t// ordering within a program, but it is obviously not stable.\n\t\treturn reflect.ValueOf(vx.Type()).Pointer() < reflect.ValueOf(vy.Type()).Pointer()\n\tdefault:\n\t\t// Must be Func, Map, or Slice; which are not comparable.\n\t\tpanic(fmt.Sprintf(\"%T is not comparable\", x.Type()))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/options.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/function\"\n)\n\n// Option configures for specific behavior of [Equal] and [Diff]. In particular,\n// the fundamental Option functions ([Ignore], [Transformer], and [Comparer]),\n// configure how equality is determined.\n//\n// The fundamental options may be composed with filters ([FilterPath] and\n// [FilterValues]) to control the scope over which they are applied.\n//\n// The [github.com/google/go-cmp/cmp/cmpopts] package provides helper functions\n// for creating options that may be used with [Equal] and [Diff].\ntype Option interface {\n\t// filter applies all filters and returns the option that remains.\n\t// Each option may only read s.curPath and call s.callTTBFunc.\n\t//\n\t// An Options is returned only if multiple comparers or transformers\n\t// can apply simultaneously and will only contain values of those types\n\t// or sub-Options containing values of those types.\n\tfilter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption\n}\n\n// applicableOption represents the following types:\n//\n//\tFundamental: ignore | validator | *comparer | *transformer\n//\tGrouping:    Options\ntype applicableOption interface {\n\tOption\n\n\t// apply executes the option, which may mutate s or panic.\n\tapply(s *state, vx, vy reflect.Value)\n}\n\n// coreOption represents the following types:\n//\n//\tFundamental: ignore | validator | *comparer | *transformer\n//\tFilters:     *pathFilter | *valuesFilter\ntype coreOption interface {\n\tOption\n\tisCore()\n}\n\ntype core struct{}\n\nfunc (core) isCore() {}\n\n// Options is a list of [Option] values that also satisfies the [Option] interface.\n// Helper comparison packages may return an Options value when packing multiple\n// [Option] values into a single [Option]. When this package processes an Options,\n// it will be implicitly expanded into a flat list.\n//\n// Applying a filter on an Options is equivalent to applying that same filter\n// on all individual options held within.\ntype Options []Option\n\nfunc (opts Options) filter(s *state, t reflect.Type, vx, vy reflect.Value) (out applicableOption) {\n\tfor _, opt := range opts {\n\t\tswitch opt := opt.filter(s, t, vx, vy); opt.(type) {\n\t\tcase ignore:\n\t\t\treturn ignore{} // Only ignore can short-circuit evaluation\n\t\tcase validator:\n\t\t\tout = validator{} // Takes precedence over comparer or transformer\n\t\tcase *comparer, *transformer, Options:\n\t\t\tswitch out.(type) {\n\t\t\tcase nil:\n\t\t\t\tout = opt\n\t\t\tcase validator:\n\t\t\t\t// Keep validator\n\t\t\tcase *comparer, *transformer, Options:\n\t\t\t\tout = Options{out, opt} // Conflicting comparers or transformers\n\t\t\t}\n\t\t}\n\t}\n\treturn out\n}\n\nfunc (opts Options) apply(s *state, _, _ reflect.Value) {\n\tconst warning = \"ambiguous set of applicable options\"\n\tconst help = \"consider using filters to ensure at most one Comparer or Transformer may apply\"\n\tvar ss []string\n\tfor _, opt := range flattenOptions(nil, opts) {\n\t\tss = append(ss, fmt.Sprint(opt))\n\t}\n\tset := strings.Join(ss, \"\\n\\t\")\n\tpanic(fmt.Sprintf(\"%s at %#v:\\n\\t%s\\n%s\", warning, s.curPath, set, help))\n}\n\nfunc (opts Options) String() string {\n\tvar ss []string\n\tfor _, opt := range opts {\n\t\tss = append(ss, fmt.Sprint(opt))\n\t}\n\treturn fmt.Sprintf(\"Options{%s}\", strings.Join(ss, \", \"))\n}\n\n// FilterPath returns a new [Option] where opt is only evaluated if filter f\n// returns true for the current [Path] in the value tree.\n//\n// This filter is called even if a slice element or map entry is missing and\n// provides an opportunity to ignore such cases. The filter function must be\n// symmetric such that the filter result is identical regardless of whether the\n// missing value is from x or y.\n//\n// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or\n// a previously filtered [Option].\nfunc FilterPath(f func(Path) bool, opt Option) Option {\n\tif f == nil {\n\t\tpanic(\"invalid path filter function\")\n\t}\n\tif opt := normalizeOption(opt); opt != nil {\n\t\treturn &pathFilter{fnc: f, opt: opt}\n\t}\n\treturn nil\n}\n\ntype pathFilter struct {\n\tcore\n\tfnc func(Path) bool\n\topt Option\n}\n\nfunc (f pathFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif f.fnc(s.curPath) {\n\t\treturn f.opt.filter(s, t, vx, vy)\n\t}\n\treturn nil\n}\n\nfunc (f pathFilter) String() string {\n\treturn fmt.Sprintf(\"FilterPath(%s, %v)\", function.NameOf(reflect.ValueOf(f.fnc)), f.opt)\n}\n\n// FilterValues returns a new [Option] where opt is only evaluated if filter f,\n// which is a function of the form \"func(T, T) bool\", returns true for the\n// current pair of values being compared. If either value is invalid or\n// the type of the values is not assignable to T, then this filter implicitly\n// returns false.\n//\n// The filter function must be\n// symmetric (i.e., agnostic to the order of the inputs) and\n// deterministic (i.e., produces the same result when given the same inputs).\n// If T is an interface, it is possible that f is called with two values with\n// different concrete types that both implement T.\n//\n// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or\n// a previously filtered [Option].\nfunc FilterValues(f interface{}, opt Option) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.ValueFilter) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid values filter function: %T\", f))\n\t}\n\tif opt := normalizeOption(opt); opt != nil {\n\t\tvf := &valuesFilter{fnc: v, opt: opt}\n\t\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\t\tvf.typ = ti\n\t\t}\n\t\treturn vf\n\t}\n\treturn nil\n}\n\ntype valuesFilter struct {\n\tcore\n\ttyp reflect.Type  // T\n\tfnc reflect.Value // func(T, T) bool\n\topt Option\n}\n\nfunc (f valuesFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif !vx.IsValid() || !vx.CanInterface() || !vy.IsValid() || !vy.CanInterface() {\n\t\treturn nil\n\t}\n\tif (f.typ == nil || t.AssignableTo(f.typ)) && s.callTTBFunc(f.fnc, vx, vy) {\n\t\treturn f.opt.filter(s, t, vx, vy)\n\t}\n\treturn nil\n}\n\nfunc (f valuesFilter) String() string {\n\treturn fmt.Sprintf(\"FilterValues(%s, %v)\", function.NameOf(f.fnc), f.opt)\n}\n\n// Ignore is an [Option] that causes all comparisons to be ignored.\n// This value is intended to be combined with [FilterPath] or [FilterValues].\n// It is an error to pass an unfiltered Ignore option to [Equal].\nfunc Ignore() Option { return ignore{} }\n\ntype ignore struct{ core }\n\nfunc (ignore) isFiltered() bool                                                     { return false }\nfunc (ignore) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption { return ignore{} }\nfunc (ignore) apply(s *state, _, _ reflect.Value)                                   { s.report(true, reportByIgnore) }\nfunc (ignore) String() string                                                       { return \"Ignore()\" }\n\n// validator is a sentinel Option type to indicate that some options could not\n// be evaluated due to unexported fields, missing slice elements, or\n// missing map entries. Both values are validator only for unexported fields.\ntype validator struct{ core }\n\nfunc (validator) filter(_ *state, _ reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif !vx.IsValid() || !vy.IsValid() {\n\t\treturn validator{}\n\t}\n\tif !vx.CanInterface() || !vy.CanInterface() {\n\t\treturn validator{}\n\t}\n\treturn nil\n}\nfunc (validator) apply(s *state, vx, vy reflect.Value) {\n\t// Implies missing slice element or map entry.\n\tif !vx.IsValid() || !vy.IsValid() {\n\t\ts.report(vx.IsValid() == vy.IsValid(), 0)\n\t\treturn\n\t}\n\n\t// Unable to Interface implies unexported field without visibility access.\n\tif !vx.CanInterface() || !vy.CanInterface() {\n\t\thelp := \"consider using a custom Comparer; if you control the implementation of type, you can also consider using an Exporter, AllowUnexported, or cmpopts.IgnoreUnexported\"\n\t\tvar name string\n\t\tif t := s.curPath.Index(-2).Type(); t.Name() != \"\" {\n\t\t\t// Named type with unexported fields.\n\t\t\tname = fmt.Sprintf(\"%q.%v\", t.PkgPath(), t.Name()) // e.g., \"path/to/package\".MyType\n\t\t\tisProtoMessage := func(t reflect.Type) bool {\n\t\t\t\tm, ok := reflect.PointerTo(t).MethodByName(\"ProtoReflect\")\n\t\t\t\treturn ok && m.Type.NumIn() == 1 && m.Type.NumOut() == 1 &&\n\t\t\t\t\tm.Type.Out(0).PkgPath() == \"google.golang.org/protobuf/reflect/protoreflect\" &&\n\t\t\t\t\tm.Type.Out(0).Name() == \"Message\"\n\t\t\t}\n\t\t\tif isProtoMessage(t) {\n\t\t\t\thelp = `consider using \"google.golang.org/protobuf/testing/protocmp\".Transform to compare proto.Message types`\n\t\t\t} else if _, ok := reflect.New(t).Interface().(error); ok {\n\t\t\t\thelp = \"consider using cmpopts.EquateErrors to compare error values\"\n\t\t\t} else if t.Comparable() {\n\t\t\t\thelp = \"consider using cmpopts.EquateComparable to compare comparable Go types\"\n\t\t\t}\n\t\t} else {\n\t\t\t// Unnamed type with unexported fields. Derive PkgPath from field.\n\t\t\tvar pkgPath string\n\t\t\tfor i := 0; i < t.NumField() && pkgPath == \"\"; i++ {\n\t\t\t\tpkgPath = t.Field(i).PkgPath\n\t\t\t}\n\t\t\tname = fmt.Sprintf(\"%q.(%v)\", pkgPath, t.String()) // e.g., \"path/to/package\".(struct { a int })\n\t\t}\n\t\tpanic(fmt.Sprintf(\"cannot handle unexported field at %#v:\\n\\t%v\\n%s\", s.curPath, name, help))\n\t}\n\n\tpanic(\"not reachable\")\n}\n\n// identRx represents a valid identifier according to the Go specification.\nconst identRx = `[_\\p{L}][_\\p{L}\\p{N}]*`\n\nvar identsRx = regexp.MustCompile(`^` + identRx + `(\\.` + identRx + `)*$`)\n\n// Transformer returns an [Option] that applies a transformation function that\n// converts values of a certain type into that of another.\n//\n// The transformer f must be a function \"func(T) R\" that converts values of\n// type T to those of type R and is implicitly filtered to input values\n// assignable to T. The transformer must not mutate T in any way.\n//\n// To help prevent some cases of infinite recursive cycles applying the\n// same transform to the output of itself (e.g., in the case where the\n// input and output types are the same), an implicit filter is added such that\n// a transformer is applicable only if that exact transformer is not already\n// in the tail of the [Path] since the last non-[Transform] step.\n// For situations where the implicit filter is still insufficient,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.AcyclicTransformer],\n// which adds a filter to prevent the transformer from\n// being recursively applied upon itself.\n//\n// The name is a user provided label that is used as the [Transform.Name] in the\n// transformation [PathStep] (and eventually shown in the [Diff] output).\n// The name must be a valid identifier or qualified identifier in Go syntax.\n// If empty, an arbitrary name is used.\nfunc Transformer(name string, f interface{}) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.Transformer) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid transformer function: %T\", f))\n\t}\n\tif name == \"\" {\n\t\tname = function.NameOf(v)\n\t\tif !identsRx.MatchString(name) {\n\t\t\tname = \"λ\" // Lambda-symbol as placeholder name\n\t\t}\n\t} else if !identsRx.MatchString(name) {\n\t\tpanic(fmt.Sprintf(\"invalid name: %q\", name))\n\t}\n\ttr := &transformer{name: name, fnc: reflect.ValueOf(f)}\n\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\ttr.typ = ti\n\t}\n\treturn tr\n}\n\ntype transformer struct {\n\tcore\n\tname string\n\ttyp  reflect.Type  // T\n\tfnc  reflect.Value // func(T) R\n}\n\nfunc (tr *transformer) isFiltered() bool { return tr.typ != nil }\n\nfunc (tr *transformer) filter(s *state, t reflect.Type, _, _ reflect.Value) applicableOption {\n\tfor i := len(s.curPath) - 1; i >= 0; i-- {\n\t\tif t, ok := s.curPath[i].(Transform); !ok {\n\t\t\tbreak // Hit most recent non-Transform step\n\t\t} else if tr == t.trans {\n\t\t\treturn nil // Cannot directly use same Transform\n\t\t}\n\t}\n\tif tr.typ == nil || t.AssignableTo(tr.typ) {\n\t\treturn tr\n\t}\n\treturn nil\n}\n\nfunc (tr *transformer) apply(s *state, vx, vy reflect.Value) {\n\tstep := Transform{&transform{pathStep{typ: tr.fnc.Type().Out(0)}, tr}}\n\tvvx := s.callTRFunc(tr.fnc, vx, step)\n\tvvy := s.callTRFunc(tr.fnc, vy, step)\n\tstep.vx, step.vy = vvx, vvy\n\ts.compareAny(step)\n}\n\nfunc (tr transformer) String() string {\n\treturn fmt.Sprintf(\"Transformer(%s, %s)\", tr.name, function.NameOf(tr.fnc))\n}\n\n// Comparer returns an [Option] that determines whether two values are equal\n// to each other.\n//\n// The comparer f must be a function \"func(T, T) bool\" and is implicitly\n// filtered to input values assignable to T. If T is an interface, it is\n// possible that f is called with two values of different concrete types that\n// both implement T.\n//\n// The equality function must be:\n//   - Symmetric: equal(x, y) == equal(y, x)\n//   - Deterministic: equal(x, y) == equal(x, y)\n//   - Pure: equal(x, y) does not modify x or y\nfunc Comparer(f interface{}) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.Equal) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid comparer function: %T\", f))\n\t}\n\tcm := &comparer{fnc: v}\n\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\tcm.typ = ti\n\t}\n\treturn cm\n}\n\ntype comparer struct {\n\tcore\n\ttyp reflect.Type  // T\n\tfnc reflect.Value // func(T, T) bool\n}\n\nfunc (cm *comparer) isFiltered() bool { return cm.typ != nil }\n\nfunc (cm *comparer) filter(_ *state, t reflect.Type, _, _ reflect.Value) applicableOption {\n\tif cm.typ == nil || t.AssignableTo(cm.typ) {\n\t\treturn cm\n\t}\n\treturn nil\n}\n\nfunc (cm *comparer) apply(s *state, vx, vy reflect.Value) {\n\teq := s.callTTBFunc(cm.fnc, vx, vy)\n\ts.report(eq, reportByFunc)\n}\n\nfunc (cm comparer) String() string {\n\treturn fmt.Sprintf(\"Comparer(%s)\", function.NameOf(cm.fnc))\n}\n\n// Exporter returns an [Option] that specifies whether [Equal] is allowed to\n// introspect into the unexported fields of certain struct types.\n//\n// Users of this option must understand that comparing on unexported fields\n// from external packages is not safe since changes in the internal\n// implementation of some external package may cause the result of [Equal]\n// to unexpectedly change. However, it may be valid to use this option on types\n// defined in an internal package where the semantic meaning of an unexported\n// field is in the control of the user.\n//\n// In many cases, a custom [Comparer] should be used instead that defines\n// equality as a function of the public API of a type rather than the underlying\n// unexported implementation.\n//\n// For example, the [reflect.Type] documentation defines equality to be determined\n// by the == operator on the interface (essentially performing a shallow pointer\n// comparison) and most attempts to compare *[regexp.Regexp] types are interested\n// in only checking that the regular expression strings are equal.\n// Both of these are accomplished using [Comparer] options:\n//\n//\tComparer(func(x, y reflect.Type) bool { return x == y })\n//\tComparer(func(x, y *regexp.Regexp) bool { return x.String() == y.String() })\n//\n// In other cases, the [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]\n// option can be used to ignore all unexported fields on specified struct types.\nfunc Exporter(f func(reflect.Type) bool) Option {\n\treturn exporter(f)\n}\n\ntype exporter func(reflect.Type) bool\n\nfunc (exporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption {\n\tpanic(\"not implemented\")\n}\n\n// AllowUnexported returns an [Option] that allows [Equal] to forcibly introspect\n// unexported fields of the specified struct types.\n//\n// See [Exporter] for the proper use of this option.\nfunc AllowUnexported(types ...interface{}) Option {\n\tm := make(map[reflect.Type]bool)\n\tfor _, typ := range types {\n\t\tt := reflect.TypeOf(typ)\n\t\tif t.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"invalid struct type: %T\", typ))\n\t\t}\n\t\tm[t] = true\n\t}\n\treturn exporter(func(t reflect.Type) bool { return m[t] })\n}\n\n// Result represents the comparison result for a single node and\n// is provided by cmp when calling Report (see [Reporter]).\ntype Result struct {\n\t_     [0]func() // Make Result incomparable\n\tflags resultFlags\n}\n\n// Equal reports whether the node was determined to be equal or not.\n// As a special case, ignored nodes are considered equal.\nfunc (r Result) Equal() bool {\n\treturn r.flags&(reportEqual|reportByIgnore) != 0\n}\n\n// ByIgnore reports whether the node is equal because it was ignored.\n// This never reports true if [Result.Equal] reports false.\nfunc (r Result) ByIgnore() bool {\n\treturn r.flags&reportByIgnore != 0\n}\n\n// ByMethod reports whether the Equal method determined equality.\nfunc (r Result) ByMethod() bool {\n\treturn r.flags&reportByMethod != 0\n}\n\n// ByFunc reports whether a [Comparer] function determined equality.\nfunc (r Result) ByFunc() bool {\n\treturn r.flags&reportByFunc != 0\n}\n\n// ByCycle reports whether a reference cycle was detected.\nfunc (r Result) ByCycle() bool {\n\treturn r.flags&reportByCycle != 0\n}\n\ntype resultFlags uint\n\nconst (\n\t_ resultFlags = (1 << iota) / 2\n\n\treportEqual\n\treportUnequal\n\treportByIgnore\n\treportByMethod\n\treportByFunc\n\treportByCycle\n)\n\n// Reporter is an [Option] that can be passed to [Equal]. When [Equal] traverses\n// the value trees, it calls PushStep as it descends into each node in the\n// tree and PopStep as it ascend out of the node. The leaves of the tree are\n// either compared (determined to be equal or not equal) or ignored and reported\n// as such by calling the Report method.\nfunc Reporter(r interface {\n\t// PushStep is called when a tree-traversal operation is performed.\n\t// The PathStep itself is only valid until the step is popped.\n\t// The PathStep.Values are valid for the duration of the entire traversal\n\t// and must not be mutated.\n\t//\n\t// Equal always calls PushStep at the start to provide an operation-less\n\t// PathStep used to report the root values.\n\t//\n\t// Within a slice, the exact set of inserted, removed, or modified elements\n\t// is unspecified and may change in future implementations.\n\t// The entries of a map are iterated through in an unspecified order.\n\tPushStep(PathStep)\n\n\t// Report is called exactly once on leaf nodes to report whether the\n\t// comparison identified the node as equal, unequal, or ignored.\n\t// A leaf node is one that is immediately preceded by and followed by\n\t// a pair of PushStep and PopStep calls.\n\tReport(Result)\n\n\t// PopStep ascends back up the value tree.\n\t// There is always a matching pop call for every push call.\n\tPopStep()\n}) Option {\n\treturn reporter{r}\n}\n\ntype reporter struct{ reporterIface }\ntype reporterIface interface {\n\tPushStep(PathStep)\n\tReport(Result)\n\tPopStep()\n}\n\nfunc (reporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption {\n\tpanic(\"not implemented\")\n}\n\n// normalizeOption normalizes the input options such that all Options groups\n// are flattened and groups with a single element are reduced to that element.\n// Only coreOptions and Options containing coreOptions are allowed.\nfunc normalizeOption(src Option) Option {\n\tswitch opts := flattenOptions(nil, Options{src}); len(opts) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn opts[0]\n\tdefault:\n\t\treturn opts\n\t}\n}\n\n// flattenOptions copies all options in src to dst as a flat list.\n// Only coreOptions and Options containing coreOptions are allowed.\nfunc flattenOptions(dst, src Options) Options {\n\tfor _, opt := range src {\n\t\tswitch opt := opt.(type) {\n\t\tcase nil:\n\t\t\tcontinue\n\t\tcase Options:\n\t\t\tdst = flattenOptions(dst, opt)\n\t\tcase coreOption:\n\t\t\tdst = append(dst, opt)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"invalid option type: %T\", opt))\n\t\t}\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/path.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\n// Path is a list of [PathStep] describing the sequence of operations to get\n// from some root type to the current position in the value tree.\n// The first Path element is always an operation-less [PathStep] that exists\n// simply to identify the initial type.\n//\n// When traversing structs with embedded structs, the embedded struct will\n// always be accessed as a field before traversing the fields of the\n// embedded struct themselves. That is, an exported field from the\n// embedded struct will never be accessed directly from the parent struct.\ntype Path []PathStep\n\n// PathStep is a union-type for specific operations to traverse\n// a value's tree structure. Users of this package never need to implement\n// these types as values of this type will be returned by this package.\n//\n// Implementations of this interface:\n//   - [StructField]\n//   - [SliceIndex]\n//   - [MapIndex]\n//   - [Indirect]\n//   - [TypeAssertion]\n//   - [Transform]\ntype PathStep interface {\n\tString() string\n\n\t// Type is the resulting type after performing the path step.\n\tType() reflect.Type\n\n\t// Values is the resulting values after performing the path step.\n\t// The type of each valid value is guaranteed to be identical to Type.\n\t//\n\t// In some cases, one or both may be invalid or have restrictions:\n\t//   - For StructField, both are not interface-able if the current field\n\t//     is unexported and the struct type is not explicitly permitted by\n\t//     an Exporter to traverse unexported fields.\n\t//   - For SliceIndex, one may be invalid if an element is missing from\n\t//     either the x or y slice.\n\t//   - For MapIndex, one may be invalid if an entry is missing from\n\t//     either the x or y map.\n\t//\n\t// The provided values must not be mutated.\n\tValues() (vx, vy reflect.Value)\n}\n\nvar (\n\t_ PathStep = StructField{}\n\t_ PathStep = SliceIndex{}\n\t_ PathStep = MapIndex{}\n\t_ PathStep = Indirect{}\n\t_ PathStep = TypeAssertion{}\n\t_ PathStep = Transform{}\n)\n\nfunc (pa *Path) push(s PathStep) {\n\t*pa = append(*pa, s)\n}\n\nfunc (pa *Path) pop() {\n\t*pa = (*pa)[:len(*pa)-1]\n}\n\n// Last returns the last [PathStep] in the Path.\n// If the path is empty, this returns a non-nil [PathStep]\n// that reports a nil [PathStep.Type].\nfunc (pa Path) Last() PathStep {\n\treturn pa.Index(-1)\n}\n\n// Index returns the ith step in the Path and supports negative indexing.\n// A negative index starts counting from the tail of the Path such that -1\n// refers to the last step, -2 refers to the second-to-last step, and so on.\n// If index is invalid, this returns a non-nil [PathStep]\n// that reports a nil [PathStep.Type].\nfunc (pa Path) Index(i int) PathStep {\n\tif i < 0 {\n\t\ti = len(pa) + i\n\t}\n\tif i < 0 || i >= len(pa) {\n\t\treturn pathStep{}\n\t}\n\treturn pa[i]\n}\n\n// String returns the simplified path to a node.\n// The simplified path only contains struct field accesses.\n//\n// For example:\n//\n//\tMyMap.MySlices.MyField\nfunc (pa Path) String() string {\n\tvar ss []string\n\tfor _, s := range pa {\n\t\tif _, ok := s.(StructField); ok {\n\t\t\tss = append(ss, s.String())\n\t\t}\n\t}\n\treturn strings.TrimPrefix(strings.Join(ss, \"\"), \".\")\n}\n\n// GoString returns the path to a specific node using Go syntax.\n//\n// For example:\n//\n//\t(*root.MyMap[\"key\"].(*mypkg.MyStruct).MySlices)[2][3].MyField\nfunc (pa Path) GoString() string {\n\tvar ssPre, ssPost []string\n\tvar numIndirect int\n\tfor i, s := range pa {\n\t\tvar nextStep PathStep\n\t\tif i+1 < len(pa) {\n\t\t\tnextStep = pa[i+1]\n\t\t}\n\t\tswitch s := s.(type) {\n\t\tcase Indirect:\n\t\t\tnumIndirect++\n\t\t\tpPre, pPost := \"(\", \")\"\n\t\t\tswitch nextStep.(type) {\n\t\t\tcase Indirect:\n\t\t\t\tcontinue // Next step is indirection, so let them batch up\n\t\t\tcase StructField:\n\t\t\t\tnumIndirect-- // Automatic indirection on struct fields\n\t\t\tcase nil:\n\t\t\t\tpPre, pPost = \"\", \"\" // Last step; no need for parenthesis\n\t\t\t}\n\t\t\tif numIndirect > 0 {\n\t\t\t\tssPre = append(ssPre, pPre+strings.Repeat(\"*\", numIndirect))\n\t\t\t\tssPost = append(ssPost, pPost)\n\t\t\t}\n\t\t\tnumIndirect = 0\n\t\t\tcontinue\n\t\tcase Transform:\n\t\t\tssPre = append(ssPre, s.trans.name+\"(\")\n\t\t\tssPost = append(ssPost, \")\")\n\t\t\tcontinue\n\t\t}\n\t\tssPost = append(ssPost, s.String())\n\t}\n\tfor i, j := 0, len(ssPre)-1; i < j; i, j = i+1, j-1 {\n\t\tssPre[i], ssPre[j] = ssPre[j], ssPre[i]\n\t}\n\treturn strings.Join(ssPre, \"\") + strings.Join(ssPost, \"\")\n}\n\ntype pathStep struct {\n\ttyp    reflect.Type\n\tvx, vy reflect.Value\n}\n\nfunc (ps pathStep) Type() reflect.Type             { return ps.typ }\nfunc (ps pathStep) Values() (vx, vy reflect.Value) { return ps.vx, ps.vy }\nfunc (ps pathStep) String() string {\n\tif ps.typ == nil {\n\t\treturn \"<nil>\"\n\t}\n\ts := value.TypeString(ps.typ, false)\n\tif s == \"\" || strings.ContainsAny(s, \"{}\\n\") {\n\t\treturn \"root\" // Type too simple or complex to print\n\t}\n\treturn fmt.Sprintf(\"{%s}\", s)\n}\n\n// StructField is a [PathStep] that represents a struct field access\n// on a field called [StructField.Name].\ntype StructField struct{ *structField }\ntype structField struct {\n\tpathStep\n\tname string\n\tidx  int\n\n\t// These fields are used for forcibly accessing an unexported field.\n\t// pvx, pvy, and field are only valid if unexported is true.\n\tunexported bool\n\tmayForce   bool                // Forcibly allow visibility\n\tpaddr      bool                // Was parent addressable?\n\tpvx, pvy   reflect.Value       // Parent values (always addressable)\n\tfield      reflect.StructField // Field information\n}\n\nfunc (sf StructField) Type() reflect.Type { return sf.typ }\nfunc (sf StructField) Values() (vx, vy reflect.Value) {\n\tif !sf.unexported {\n\t\treturn sf.vx, sf.vy // CanInterface reports true\n\t}\n\n\t// Forcibly obtain read-write access to an unexported struct field.\n\tif sf.mayForce {\n\t\tvx = retrieveUnexportedField(sf.pvx, sf.field, sf.paddr)\n\t\tvy = retrieveUnexportedField(sf.pvy, sf.field, sf.paddr)\n\t\treturn vx, vy // CanInterface reports true\n\t}\n\treturn sf.vx, sf.vy // CanInterface reports false\n}\nfunc (sf StructField) String() string { return fmt.Sprintf(\".%s\", sf.name) }\n\n// Name is the field name.\nfunc (sf StructField) Name() string { return sf.name }\n\n// Index is the index of the field in the parent struct type.\n// See [reflect.Type.Field].\nfunc (sf StructField) Index() int { return sf.idx }\n\n// SliceIndex is a [PathStep] that represents an index operation on\n// a slice or array at some index [SliceIndex.Key].\ntype SliceIndex struct{ *sliceIndex }\ntype sliceIndex struct {\n\tpathStep\n\txkey, ykey int\n\tisSlice    bool // False for reflect.Array\n}\n\nfunc (si SliceIndex) Type() reflect.Type             { return si.typ }\nfunc (si SliceIndex) Values() (vx, vy reflect.Value) { return si.vx, si.vy }\nfunc (si SliceIndex) String() string {\n\tswitch {\n\tcase si.xkey == si.ykey:\n\t\treturn fmt.Sprintf(\"[%d]\", si.xkey)\n\tcase si.ykey == -1:\n\t\t// [5->?] means \"I don't know where X[5] went\"\n\t\treturn fmt.Sprintf(\"[%d->?]\", si.xkey)\n\tcase si.xkey == -1:\n\t\t// [?->3] means \"I don't know where Y[3] came from\"\n\t\treturn fmt.Sprintf(\"[?->%d]\", si.ykey)\n\tdefault:\n\t\t// [5->3] means \"X[5] moved to Y[3]\"\n\t\treturn fmt.Sprintf(\"[%d->%d]\", si.xkey, si.ykey)\n\t}\n}\n\n// Key is the index key; it may return -1 if in a split state\nfunc (si SliceIndex) Key() int {\n\tif si.xkey != si.ykey {\n\t\treturn -1\n\t}\n\treturn si.xkey\n}\n\n// SplitKeys are the indexes for indexing into slices in the\n// x and y values, respectively. These indexes may differ due to the\n// insertion or removal of an element in one of the slices, causing\n// all of the indexes to be shifted. If an index is -1, then that\n// indicates that the element does not exist in the associated slice.\n//\n// [SliceIndex.Key] is guaranteed to return -1 if and only if the indexes\n// returned by SplitKeys are not the same. SplitKeys will never return -1 for\n// both indexes.\nfunc (si SliceIndex) SplitKeys() (ix, iy int) { return si.xkey, si.ykey }\n\n// MapIndex is a [PathStep] that represents an index operation on a map at some index Key.\ntype MapIndex struct{ *mapIndex }\ntype mapIndex struct {\n\tpathStep\n\tkey reflect.Value\n}\n\nfunc (mi MapIndex) Type() reflect.Type             { return mi.typ }\nfunc (mi MapIndex) Values() (vx, vy reflect.Value) { return mi.vx, mi.vy }\nfunc (mi MapIndex) String() string                 { return fmt.Sprintf(\"[%#v]\", mi.key) }\n\n// Key is the value of the map key.\nfunc (mi MapIndex) Key() reflect.Value { return mi.key }\n\n// Indirect is a [PathStep] that represents pointer indirection on the parent type.\ntype Indirect struct{ *indirect }\ntype indirect struct {\n\tpathStep\n}\n\nfunc (in Indirect) Type() reflect.Type             { return in.typ }\nfunc (in Indirect) Values() (vx, vy reflect.Value) { return in.vx, in.vy }\nfunc (in Indirect) String() string                 { return \"*\" }\n\n// TypeAssertion is a [PathStep] that represents a type assertion on an interface.\ntype TypeAssertion struct{ *typeAssertion }\ntype typeAssertion struct {\n\tpathStep\n}\n\nfunc (ta TypeAssertion) Type() reflect.Type             { return ta.typ }\nfunc (ta TypeAssertion) Values() (vx, vy reflect.Value) { return ta.vx, ta.vy }\nfunc (ta TypeAssertion) String() string                 { return fmt.Sprintf(\".(%v)\", value.TypeString(ta.typ, false)) }\n\n// Transform is a [PathStep] that represents a transformation\n// from the parent type to the current type.\ntype Transform struct{ *transform }\ntype transform struct {\n\tpathStep\n\ttrans *transformer\n}\n\nfunc (tf Transform) Type() reflect.Type             { return tf.typ }\nfunc (tf Transform) Values() (vx, vy reflect.Value) { return tf.vx, tf.vy }\nfunc (tf Transform) String() string                 { return fmt.Sprintf(\"%s()\", tf.trans.name) }\n\n// Name is the name of the [Transformer].\nfunc (tf Transform) Name() string { return tf.trans.name }\n\n// Func is the function pointer to the transformer function.\nfunc (tf Transform) Func() reflect.Value { return tf.trans.fnc }\n\n// Option returns the originally constructed [Transformer] option.\n// The == operator can be used to detect the exact option used.\nfunc (tf Transform) Option() Option { return tf.trans }\n\n// pointerPath represents a dual-stack of pointers encountered when\n// recursively traversing the x and y values. This data structure supports\n// detection of cycles and determining whether the cycles are equal.\n// In Go, cycles can occur via pointers, slices, and maps.\n//\n// The pointerPath uses a map to represent a stack; where descension into a\n// pointer pushes the address onto the stack, and ascension from a pointer\n// pops the address from the stack. Thus, when traversing into a pointer from\n// reflect.Ptr, reflect.Slice element, or reflect.Map, we can detect cycles\n// by checking whether the pointer has already been visited. The cycle detection\n// uses a separate stack for the x and y values.\n//\n// If a cycle is detected we need to determine whether the two pointers\n// should be considered equal. The definition of equality chosen by Equal\n// requires two graphs to have the same structure. To determine this, both the\n// x and y values must have a cycle where the previous pointers were also\n// encountered together as a pair.\n//\n// Semantically, this is equivalent to augmenting Indirect, SliceIndex, and\n// MapIndex with pointer information for the x and y values.\n// Suppose px and py are two pointers to compare, we then search the\n// Path for whether px was ever encountered in the Path history of x, and\n// similarly so with py. If either side has a cycle, the comparison is only\n// equal if both px and py have a cycle resulting from the same PathStep.\n//\n// Using a map as a stack is more performant as we can perform cycle detection\n// in O(1) instead of O(N) where N is len(Path).\ntype pointerPath struct {\n\t// mx is keyed by x pointers, where the value is the associated y pointer.\n\tmx map[value.Pointer]value.Pointer\n\t// my is keyed by y pointers, where the value is the associated x pointer.\n\tmy map[value.Pointer]value.Pointer\n}\n\nfunc (p *pointerPath) Init() {\n\tp.mx = make(map[value.Pointer]value.Pointer)\n\tp.my = make(map[value.Pointer]value.Pointer)\n}\n\n// Push indicates intent to descend into pointers vx and vy where\n// visited reports whether either has been seen before. If visited before,\n// equal reports whether both pointers were encountered together.\n// Pop must be called if and only if the pointers were never visited.\n//\n// The pointers vx and vy must be a reflect.Ptr, reflect.Slice, or reflect.Map\n// and be non-nil.\nfunc (p pointerPath) Push(vx, vy reflect.Value) (equal, visited bool) {\n\tpx := value.PointerOf(vx)\n\tpy := value.PointerOf(vy)\n\t_, ok1 := p.mx[px]\n\t_, ok2 := p.my[py]\n\tif ok1 || ok2 {\n\t\tequal = p.mx[px] == py && p.my[py] == px // Pointers paired together\n\t\treturn equal, true\n\t}\n\tp.mx[px] = py\n\tp.my[py] = px\n\treturn false, false\n}\n\n// Pop ascends from pointers vx and vy.\nfunc (p pointerPath) Pop(vx, vy reflect.Value) {\n\tdelete(p.mx, value.PointerOf(vx))\n\tdelete(p.my, value.PointerOf(vy))\n}\n\n// isExported reports whether the identifier is exported.\nfunc isExported(id string) bool {\n\tr, _ := utf8.DecodeRuneInString(id)\n\treturn unicode.IsUpper(r)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\n// defaultReporter implements the reporter interface.\n//\n// As Equal serially calls the PushStep, Report, and PopStep methods, the\n// defaultReporter constructs a tree-based representation of the compared value\n// and the result of each comparison (see valueNode).\n//\n// When the String method is called, the FormatDiff method transforms the\n// valueNode tree into a textNode tree, which is a tree-based representation\n// of the textual output (see textNode).\n//\n// Lastly, the textNode.String method produces the final report as a string.\ntype defaultReporter struct {\n\troot *valueNode\n\tcurr *valueNode\n}\n\nfunc (r *defaultReporter) PushStep(ps PathStep) {\n\tr.curr = r.curr.PushStep(ps)\n\tif r.root == nil {\n\t\tr.root = r.curr\n\t}\n}\nfunc (r *defaultReporter) Report(rs Result) {\n\tr.curr.Report(rs)\n}\nfunc (r *defaultReporter) PopStep() {\n\tr.curr = r.curr.PopStep()\n}\n\n// String provides a full report of the differences detected as a structured\n// literal in pseudo-Go syntax. String may only be called after the entire tree\n// has been traversed.\nfunc (r *defaultReporter) String() string {\n\tassert(r.root != nil && r.curr == nil)\n\tif r.root.NumDiff == 0 {\n\t\treturn \"\"\n\t}\n\tptrs := new(pointerReferences)\n\ttext := formatOptions{}.FormatDiff(r.root, ptrs)\n\tresolveReferences(text)\n\treturn text.String()\n}\n\nfunc assert(ok bool) {\n\tif !ok {\n\t\tpanic(\"assertion failure\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_compare.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// numContextRecords is the number of surrounding equal records to print.\nconst numContextRecords = 2\n\ntype diffMode byte\n\nconst (\n\tdiffUnknown   diffMode = 0\n\tdiffIdentical diffMode = ' '\n\tdiffRemoved   diffMode = '-'\n\tdiffInserted  diffMode = '+'\n)\n\ntype typeMode int\n\nconst (\n\t// emitType always prints the type.\n\temitType typeMode = iota\n\t// elideType never prints the type.\n\telideType\n\t// autoType prints the type only for composite kinds\n\t// (i.e., structs, slices, arrays, and maps).\n\tautoType\n)\n\ntype formatOptions struct {\n\t// DiffMode controls the output mode of FormatDiff.\n\t//\n\t// If diffUnknown,   then produce a diff of the x and y values.\n\t// If diffIdentical, then emit values as if they were equal.\n\t// If diffRemoved,   then only emit x values (ignoring y values).\n\t// If diffInserted,  then only emit y values (ignoring x values).\n\tDiffMode diffMode\n\n\t// TypeMode controls whether to print the type for the current node.\n\t//\n\t// As a general rule of thumb, we always print the type of the next node\n\t// after an interface, and always elide the type of the next node after\n\t// a slice or map node.\n\tTypeMode typeMode\n\n\t// formatValueOptions are options specific to printing reflect.Values.\n\tformatValueOptions\n}\n\nfunc (opts formatOptions) WithDiffMode(d diffMode) formatOptions {\n\topts.DiffMode = d\n\treturn opts\n}\nfunc (opts formatOptions) WithTypeMode(t typeMode) formatOptions {\n\topts.TypeMode = t\n\treturn opts\n}\nfunc (opts formatOptions) WithVerbosity(level int) formatOptions {\n\topts.VerbosityLevel = level\n\topts.LimitVerbosity = true\n\treturn opts\n}\nfunc (opts formatOptions) verbosity() uint {\n\tswitch {\n\tcase opts.VerbosityLevel < 0:\n\t\treturn 0\n\tcase opts.VerbosityLevel > 16:\n\t\treturn 16 // some reasonable maximum to avoid shift overflow\n\tdefault:\n\t\treturn uint(opts.VerbosityLevel)\n\t}\n}\n\nconst maxVerbosityPreset = 6\n\n// verbosityPreset modifies the verbosity settings given an index\n// between 0 and maxVerbosityPreset, inclusive.\nfunc verbosityPreset(opts formatOptions, i int) formatOptions {\n\topts.VerbosityLevel = int(opts.verbosity()) + 2*i\n\tif i > 0 {\n\t\topts.AvoidStringer = true\n\t}\n\tif i >= maxVerbosityPreset {\n\t\topts.PrintAddresses = true\n\t\topts.QualifiedNames = true\n\t}\n\treturn opts\n}\n\n// FormatDiff converts a valueNode tree into a textNode tree, where the later\n// is a textual representation of the differences detected in the former.\nfunc (opts formatOptions) FormatDiff(v *valueNode, ptrs *pointerReferences) (out textNode) {\n\tif opts.DiffMode == diffIdentical {\n\t\topts = opts.WithVerbosity(1)\n\t} else if opts.verbosity() < 3 {\n\t\topts = opts.WithVerbosity(3)\n\t}\n\n\t// Check whether we have specialized formatting for this node.\n\t// This is not necessary, but helpful for producing more readable outputs.\n\tif opts.CanFormatDiffSlice(v) {\n\t\treturn opts.FormatDiffSlice(v)\n\t}\n\n\tvar parentKind reflect.Kind\n\tif v.parent != nil && v.parent.TransformerName == \"\" {\n\t\tparentKind = v.parent.Type.Kind()\n\t}\n\n\t// For leaf nodes, format the value based on the reflect.Values alone.\n\t// As a special case, treat equal []byte as a leaf nodes.\n\tisBytes := v.Type.Kind() == reflect.Slice && v.Type.Elem() == byteType\n\tisEqualBytes := isBytes && v.NumDiff+v.NumIgnored+v.NumTransformed == 0\n\tif v.MaxDepth == 0 || isEqualBytes {\n\t\tswitch opts.DiffMode {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\t// Format Equal.\n\t\t\tif v.NumDiff == 0 {\n\t\t\t\toutx := opts.FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\t\touty := opts.FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\t\tif v.NumIgnored > 0 && v.NumSame == 0 {\n\t\t\t\t\treturn textEllipsis\n\t\t\t\t} else if outx.Len() < outy.Len() {\n\t\t\t\t\treturn outx\n\t\t\t\t} else {\n\t\t\t\t\treturn outy\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Format unequal.\n\t\t\tassert(opts.DiffMode == diffUnknown)\n\t\t\tvar list textList\n\t\t\toutx := opts.WithTypeMode(elideType).FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\touty := opts.WithTypeMode(elideType).FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\tfor i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ {\n\t\t\t\topts2 := verbosityPreset(opts, i).WithTypeMode(elideType)\n\t\t\t\toutx = opts2.FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\t\touty = opts2.FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\t}\n\t\t\tif outx != nil {\n\t\t\t\tlist = append(list, textRecord{Diff: '-', Value: outx})\n\t\t\t}\n\t\t\tif outy != nil {\n\t\t\t\tlist = append(list, textRecord{Diff: '+', Value: outy})\n\t\t\t}\n\t\t\treturn opts.WithTypeMode(emitType).FormatType(v.Type, list)\n\t\tcase diffRemoved:\n\t\t\treturn opts.FormatValue(v.ValueX, parentKind, ptrs)\n\t\tcase diffInserted:\n\t\t\treturn opts.FormatValue(v.ValueY, parentKind, ptrs)\n\t\tdefault:\n\t\t\tpanic(\"invalid diff mode\")\n\t\t}\n\t}\n\n\t// Register slice element to support cycle detection.\n\tif parentKind == reflect.Slice {\n\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, true)\n\t\tdefer ptrs.Pop()\n\t\tdefer func() { out = wrapTrunkReferences(ptrRefs, out) }()\n\t}\n\n\t// Descend into the child value node.\n\tif v.TransformerName != \"\" {\n\t\tout := opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs)\n\t\tout = &textWrap{Prefix: \"Inverse(\" + v.TransformerName + \", \", Value: out, Suffix: \")\"}\n\t\treturn opts.FormatType(v.Type, out)\n\t} else {\n\t\tswitch k := v.Type.Kind(); k {\n\t\tcase reflect.Struct, reflect.Array, reflect.Slice:\n\t\t\tout = opts.formatDiffList(v.Records, k, ptrs)\n\t\t\tout = opts.FormatType(v.Type, out)\n\t\tcase reflect.Map:\n\t\t\t// Register map to support cycle detection.\n\t\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false)\n\t\t\tdefer ptrs.Pop()\n\n\t\t\tout = opts.formatDiffList(v.Records, k, ptrs)\n\t\t\tout = wrapTrunkReferences(ptrRefs, out)\n\t\t\tout = opts.FormatType(v.Type, out)\n\t\tcase reflect.Ptr:\n\t\t\t// Register pointer to support cycle detection.\n\t\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false)\n\t\t\tdefer ptrs.Pop()\n\n\t\t\tout = opts.FormatDiff(v.Value, ptrs)\n\t\t\tout = wrapTrunkReferences(ptrRefs, out)\n\t\t\tout = &textWrap{Prefix: \"&\", Value: out}\n\t\tcase reflect.Interface:\n\t\t\tout = opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"%v cannot have children\", k))\n\t\t}\n\t\treturn out\n\t}\n}\n\nfunc (opts formatOptions) formatDiffList(recs []reportRecord, k reflect.Kind, ptrs *pointerReferences) textNode {\n\t// Derive record name based on the data structure kind.\n\tvar name string\n\tvar formatKey func(reflect.Value) string\n\tswitch k {\n\tcase reflect.Struct:\n\t\tname = \"field\"\n\t\topts = opts.WithTypeMode(autoType)\n\t\tformatKey = func(v reflect.Value) string { return v.String() }\n\tcase reflect.Slice, reflect.Array:\n\t\tname = \"element\"\n\t\topts = opts.WithTypeMode(elideType)\n\t\tformatKey = func(reflect.Value) string { return \"\" }\n\tcase reflect.Map:\n\t\tname = \"entry\"\n\t\topts = opts.WithTypeMode(elideType)\n\t\tformatKey = func(v reflect.Value) string { return formatMapKey(v, false, ptrs) }\n\t}\n\n\tmaxLen := -1\n\tif opts.LimitVerbosity {\n\t\tif opts.DiffMode == diffIdentical {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t} else {\n\t\t\tmaxLen = (1 << opts.verbosity()) << 1 // 2, 4, 8, 16, 32, 64, etc...\n\t\t}\n\t\topts.VerbosityLevel--\n\t}\n\n\t// Handle unification.\n\tswitch opts.DiffMode {\n\tcase diffIdentical, diffRemoved, diffInserted:\n\t\tvar list textList\n\t\tvar deferredEllipsis bool // Add final \"...\" to indicate records were dropped\n\t\tfor _, r := range recs {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tdeferredEllipsis = true\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Elide struct fields that are zero value.\n\t\t\tif k == reflect.Struct {\n\t\t\t\tvar isZero bool\n\t\t\t\tswitch opts.DiffMode {\n\t\t\t\tcase diffIdentical:\n\t\t\t\t\tisZero = r.Value.ValueX.IsZero() || r.Value.ValueY.IsZero()\n\t\t\t\tcase diffRemoved:\n\t\t\t\t\tisZero = r.Value.ValueX.IsZero()\n\t\t\t\tcase diffInserted:\n\t\t\t\t\tisZero = r.Value.ValueY.IsZero()\n\t\t\t\t}\n\t\t\t\tif isZero {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Elide ignored nodes.\n\t\t\tif r.Value.NumIgnored > 0 && r.Value.NumSame+r.Value.NumDiff == 0 {\n\t\t\t\tdeferredEllipsis = !(k == reflect.Slice || k == reflect.Array)\n\t\t\t\tif !deferredEllipsis {\n\t\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif out := opts.FormatDiff(r.Value, ptrs); out != nil {\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t}\n\t\t}\n\t\tif deferredEllipsis {\n\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t}\n\t\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tcase diffUnknown:\n\tdefault:\n\t\tpanic(\"invalid diff mode\")\n\t}\n\n\t// Handle differencing.\n\tvar numDiffs int\n\tvar list textList\n\tvar keys []reflect.Value // invariant: len(list) == len(keys)\n\tgroups := coalesceAdjacentRecords(name, recs)\n\tmaxGroup := diffStats{Name: name}\n\tfor i, ds := range groups {\n\t\tif maxLen >= 0 && numDiffs >= maxLen {\n\t\t\tmaxGroup = maxGroup.Append(ds)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle equal records.\n\t\tif ds.NumDiff() == 0 {\n\t\t\t// Compute the number of leading and trailing records to print.\n\t\t\tvar numLo, numHi int\n\t\t\tnumEqual := ds.NumIgnored + ds.NumIdentical\n\t\t\tfor numLo < numContextRecords && numLo+numHi < numEqual && i != 0 {\n\t\t\t\tif r := recs[numLo].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnumLo++\n\t\t\t}\n\t\t\tfor numHi < numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 {\n\t\t\t\tif r := recs[numEqual-numHi-1].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnumHi++\n\t\t\t}\n\t\t\tif numEqual-(numLo+numHi) == 1 && ds.NumIgnored == 0 {\n\t\t\t\tnumHi++ // Avoid pointless coalescing of a single equal record\n\t\t\t}\n\n\t\t\t// Format the equal values.\n\t\t\tfor _, r := range recs[:numLo] {\n\t\t\t\tout := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t\tif numEqual > numLo+numHi {\n\t\t\t\tds.NumIdentical -= numLo + numHi\n\t\t\t\tlist.AppendEllipsis(ds)\n\t\t\t\tfor len(keys) < len(list) {\n\t\t\t\t\tkeys = append(keys, reflect.Value{})\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor _, r := range recs[numEqual-numHi : numEqual] {\n\t\t\t\tout := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t\trecs = recs[numEqual:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle unequal records.\n\t\tfor _, r := range recs[:ds.NumDiff()] {\n\t\t\tswitch {\n\t\t\tcase opts.CanFormatDiffSlice(r.Value):\n\t\t\t\tout := opts.FormatDiffSlice(r.Value)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\tcase r.Value.NumChildren == r.Value.MaxDepth:\n\t\t\t\toutx := opts.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs)\n\t\t\t\touty := opts.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs)\n\t\t\t\tfor i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ {\n\t\t\t\t\topts2 := verbosityPreset(opts, i)\n\t\t\t\t\toutx = opts2.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs)\n\t\t\t\t\touty = opts2.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs)\n\t\t\t\t}\n\t\t\t\tif outx != nil {\n\t\t\t\t\tlist = append(list, textRecord{Diff: diffRemoved, Key: formatKey(r.Key), Value: outx})\n\t\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t\t}\n\t\t\t\tif outy != nil {\n\t\t\t\t\tlist = append(list, textRecord{Diff: diffInserted, Key: formatKey(r.Key), Value: outy})\n\t\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tout := opts.FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t}\n\t\trecs = recs[ds.NumDiff():]\n\t\tnumDiffs += ds.NumDiff()\n\t}\n\tif maxGroup.IsZero() {\n\t\tassert(len(recs) == 0)\n\t} else {\n\t\tlist.AppendEllipsis(maxGroup)\n\t\tfor len(keys) < len(list) {\n\t\t\tkeys = append(keys, reflect.Value{})\n\t\t}\n\t}\n\tassert(len(list) == len(keys))\n\n\t// For maps, the default formatting logic uses fmt.Stringer which may\n\t// produce ambiguous output. Avoid calling String to disambiguate.\n\tif k == reflect.Map {\n\t\tvar ambiguous bool\n\t\tseenKeys := map[string]reflect.Value{}\n\t\tfor i, currKey := range keys {\n\t\t\tif currKey.IsValid() {\n\t\t\t\tstrKey := list[i].Key\n\t\t\t\tprevKey, seen := seenKeys[strKey]\n\t\t\t\tif seen && prevKey.CanInterface() && currKey.CanInterface() {\n\t\t\t\t\tambiguous = prevKey.Interface() != currKey.Interface()\n\t\t\t\t\tif ambiguous {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tseenKeys[strKey] = currKey\n\t\t\t}\n\t\t}\n\t\tif ambiguous {\n\t\t\tfor i, k := range keys {\n\t\t\t\tif k.IsValid() {\n\t\t\t\t\tlist[i].Key = formatMapKey(k, true, ptrs)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n}\n\n// coalesceAdjacentRecords coalesces the list of records into groups of\n// adjacent equal, or unequal counts.\nfunc coalesceAdjacentRecords(name string, recs []reportRecord) (groups []diffStats) {\n\tvar prevCase int // Arbitrary index into which case last occurred\n\tlastStats := func(i int) *diffStats {\n\t\tif prevCase != i {\n\t\t\tgroups = append(groups, diffStats{Name: name})\n\t\t\tprevCase = i\n\t\t}\n\t\treturn &groups[len(groups)-1]\n\t}\n\tfor _, r := range recs {\n\t\tswitch rv := r.Value; {\n\t\tcase rv.NumIgnored > 0 && rv.NumSame+rv.NumDiff == 0:\n\t\t\tlastStats(1).NumIgnored++\n\t\tcase rv.NumDiff == 0:\n\t\t\tlastStats(1).NumIdentical++\n\t\tcase rv.NumDiff > 0 && !rv.ValueY.IsValid():\n\t\t\tlastStats(2).NumRemoved++\n\t\tcase rv.NumDiff > 0 && !rv.ValueX.IsValid():\n\t\t\tlastStats(2).NumInserted++\n\t\tdefault:\n\t\t\tlastStats(2).NumModified++\n\t\t}\n\t}\n\treturn groups\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_references.go",
    "content": "// Copyright 2020, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\nconst (\n\tpointerDelimPrefix = \"⟪\"\n\tpointerDelimSuffix = \"⟫\"\n)\n\n// formatPointer prints the address of the pointer.\nfunc formatPointer(p value.Pointer, withDelims bool) string {\n\tv := p.Uintptr()\n\tif flags.Deterministic {\n\t\tv = 0xdeadf00f // Only used for stable testing purposes\n\t}\n\tif withDelims {\n\t\treturn pointerDelimPrefix + formatHex(uint64(v)) + pointerDelimSuffix\n\t}\n\treturn formatHex(uint64(v))\n}\n\n// pointerReferences is a stack of pointers visited so far.\ntype pointerReferences [][2]value.Pointer\n\nfunc (ps *pointerReferences) PushPair(vx, vy reflect.Value, d diffMode, deref bool) (pp [2]value.Pointer) {\n\tif deref && vx.IsValid() {\n\t\tvx = vx.Addr()\n\t}\n\tif deref && vy.IsValid() {\n\t\tvy = vy.Addr()\n\t}\n\tswitch d {\n\tcase diffUnknown, diffIdentical:\n\t\tpp = [2]value.Pointer{value.PointerOf(vx), value.PointerOf(vy)}\n\tcase diffRemoved:\n\t\tpp = [2]value.Pointer{value.PointerOf(vx), value.Pointer{}}\n\tcase diffInserted:\n\t\tpp = [2]value.Pointer{value.Pointer{}, value.PointerOf(vy)}\n\t}\n\t*ps = append(*ps, pp)\n\treturn pp\n}\n\nfunc (ps *pointerReferences) Push(v reflect.Value) (p value.Pointer, seen bool) {\n\tp = value.PointerOf(v)\n\tfor _, pp := range *ps {\n\t\tif p == pp[0] || p == pp[1] {\n\t\t\treturn p, true\n\t\t}\n\t}\n\t*ps = append(*ps, [2]value.Pointer{p, p})\n\treturn p, false\n}\n\nfunc (ps *pointerReferences) Pop() {\n\t*ps = (*ps)[:len(*ps)-1]\n}\n\n// trunkReferences is metadata for a textNode indicating that the sub-tree\n// represents the value for either pointer in a pair of references.\ntype trunkReferences struct{ pp [2]value.Pointer }\n\n// trunkReference is metadata for a textNode indicating that the sub-tree\n// represents the value for the given pointer reference.\ntype trunkReference struct{ p value.Pointer }\n\n// leafReference is metadata for a textNode indicating that the value is\n// truncated as it refers to another part of the tree (i.e., a trunk).\ntype leafReference struct{ p value.Pointer }\n\nfunc wrapTrunkReferences(pp [2]value.Pointer, s textNode) textNode {\n\tswitch {\n\tcase pp[0].IsNil():\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[1]}}\n\tcase pp[1].IsNil():\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[0]}}\n\tcase pp[0] == pp[1]:\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[0]}}\n\tdefault:\n\t\treturn &textWrap{Value: s, Metadata: trunkReferences{pp}}\n\t}\n}\nfunc wrapTrunkReference(p value.Pointer, printAddress bool, s textNode) textNode {\n\tvar prefix string\n\tif printAddress {\n\t\tprefix = formatPointer(p, true)\n\t}\n\treturn &textWrap{Prefix: prefix, Value: s, Metadata: trunkReference{p}}\n}\nfunc makeLeafReference(p value.Pointer, printAddress bool) textNode {\n\tout := &textWrap{Prefix: \"(\", Value: textEllipsis, Suffix: \")\"}\n\tvar prefix string\n\tif printAddress {\n\t\tprefix = formatPointer(p, true)\n\t}\n\treturn &textWrap{Prefix: prefix, Value: out, Metadata: leafReference{p}}\n}\n\n// resolveReferences walks the textNode tree searching for any leaf reference\n// metadata and resolves each against the corresponding trunk references.\n// Since pointer addresses in memory are not particularly readable to the user,\n// it replaces each pointer value with an arbitrary and unique reference ID.\nfunc resolveReferences(s textNode) {\n\tvar walkNodes func(textNode, func(textNode))\n\twalkNodes = func(s textNode, f func(textNode)) {\n\t\tf(s)\n\t\tswitch s := s.(type) {\n\t\tcase *textWrap:\n\t\t\twalkNodes(s.Value, f)\n\t\tcase textList:\n\t\t\tfor _, r := range s {\n\t\t\t\twalkNodes(r.Value, f)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Collect all trunks and leaves with reference metadata.\n\tvar trunks, leaves []*textWrap\n\twalkNodes(s, func(s textNode) {\n\t\tif s, ok := s.(*textWrap); ok {\n\t\t\tswitch s.Metadata.(type) {\n\t\t\tcase leafReference:\n\t\t\t\tleaves = append(leaves, s)\n\t\t\tcase trunkReference, trunkReferences:\n\t\t\t\ttrunks = append(trunks, s)\n\t\t\t}\n\t\t}\n\t})\n\n\t// No leaf references to resolve.\n\tif len(leaves) == 0 {\n\t\treturn\n\t}\n\n\t// Collect the set of all leaf references to resolve.\n\tleafPtrs := make(map[value.Pointer]bool)\n\tfor _, leaf := range leaves {\n\t\tleafPtrs[leaf.Metadata.(leafReference).p] = true\n\t}\n\n\t// Collect the set of trunk pointers that are always paired together.\n\t// This allows us to assign a single ID to both pointers for brevity.\n\t// If a pointer in a pair ever occurs by itself or as a different pair,\n\t// then the pair is broken.\n\tpairedTrunkPtrs := make(map[value.Pointer]value.Pointer)\n\tunpair := func(p value.Pointer) {\n\t\tif !pairedTrunkPtrs[p].IsNil() {\n\t\t\tpairedTrunkPtrs[pairedTrunkPtrs[p]] = value.Pointer{} // invalidate other half\n\t\t}\n\t\tpairedTrunkPtrs[p] = value.Pointer{} // invalidate this half\n\t}\n\tfor _, trunk := range trunks {\n\t\tswitch p := trunk.Metadata.(type) {\n\t\tcase trunkReference:\n\t\t\tunpair(p.p) // standalone pointer cannot be part of a pair\n\t\tcase trunkReferences:\n\t\t\tp0, ok0 := pairedTrunkPtrs[p.pp[0]]\n\t\t\tp1, ok1 := pairedTrunkPtrs[p.pp[1]]\n\t\t\tswitch {\n\t\t\tcase !ok0 && !ok1:\n\t\t\t\t// Register the newly seen pair.\n\t\t\t\tpairedTrunkPtrs[p.pp[0]] = p.pp[1]\n\t\t\t\tpairedTrunkPtrs[p.pp[1]] = p.pp[0]\n\t\t\tcase ok0 && ok1 && p0 == p.pp[1] && p1 == p.pp[0]:\n\t\t\t\t// Exact pair already seen; do nothing.\n\t\t\tdefault:\n\t\t\t\t// Pair conflicts with some other pair; break all pairs.\n\t\t\t\tunpair(p.pp[0])\n\t\t\t\tunpair(p.pp[1])\n\t\t\t}\n\t\t}\n\t}\n\n\t// Correlate each pointer referenced by leaves to a unique identifier,\n\t// and print the IDs for each trunk that matches those pointers.\n\tvar nextID uint\n\tptrIDs := make(map[value.Pointer]uint)\n\tnewID := func() uint {\n\t\tid := nextID\n\t\tnextID++\n\t\treturn id\n\t}\n\tfor _, trunk := range trunks {\n\t\tswitch p := trunk.Metadata.(type) {\n\t\tcase trunkReference:\n\t\t\tif print := leafPtrs[p.p]; print {\n\t\t\t\tid, ok := ptrIDs[p.p]\n\t\t\t\tif !ok {\n\t\t\t\t\tid = newID()\n\t\t\t\t\tptrIDs[p.p] = id\n\t\t\t\t}\n\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id))\n\t\t\t}\n\t\tcase trunkReferences:\n\t\t\tprint0 := leafPtrs[p.pp[0]]\n\t\t\tprint1 := leafPtrs[p.pp[1]]\n\t\t\tif print0 || print1 {\n\t\t\t\tid0, ok0 := ptrIDs[p.pp[0]]\n\t\t\t\tid1, ok1 := ptrIDs[p.pp[1]]\n\t\t\t\tisPair := pairedTrunkPtrs[p.pp[0]] == p.pp[1] && pairedTrunkPtrs[p.pp[1]] == p.pp[0]\n\t\t\t\tif isPair {\n\t\t\t\t\tvar id uint\n\t\t\t\t\tassert(ok0 == ok1) // must be seen together or not at all\n\t\t\t\t\tif ok0 {\n\t\t\t\t\t\tassert(id0 == id1) // must have the same ID\n\t\t\t\t\t\tid = id0\n\t\t\t\t\t} else {\n\t\t\t\t\t\tid = newID()\n\t\t\t\t\t\tptrIDs[p.pp[0]] = id\n\t\t\t\t\t\tptrIDs[p.pp[1]] = id\n\t\t\t\t\t}\n\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id))\n\t\t\t\t} else {\n\t\t\t\t\tif print0 && !ok0 {\n\t\t\t\t\t\tid0 = newID()\n\t\t\t\t\t\tptrIDs[p.pp[0]] = id0\n\t\t\t\t\t}\n\t\t\t\t\tif print1 && !ok1 {\n\t\t\t\t\t\tid1 = newID()\n\t\t\t\t\t\tptrIDs[p.pp[1]] = id1\n\t\t\t\t\t}\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase print0 && print1:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0)+\",\"+formatReference(id1))\n\t\t\t\t\tcase print0:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0))\n\t\t\t\t\tcase print1:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id1))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Update all leaf references with the unique identifier.\n\tfor _, leaf := range leaves {\n\t\tif id, ok := ptrIDs[leaf.Metadata.(leafReference).p]; ok {\n\t\t\tleaf.Prefix = updateReferencePrefix(leaf.Prefix, formatReference(id))\n\t\t}\n\t}\n}\n\nfunc formatReference(id uint) string {\n\treturn fmt.Sprintf(\"ref#%d\", id)\n}\n\nfunc updateReferencePrefix(prefix, ref string) string {\n\tif prefix == \"\" {\n\t\treturn pointerDelimPrefix + ref + pointerDelimSuffix\n\t}\n\tsuffix := strings.TrimPrefix(prefix, pointerDelimPrefix)\n\treturn pointerDelimPrefix + ref + \": \" + suffix\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_reflect.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\nvar (\n\tanyType    = reflect.TypeOf((*interface{})(nil)).Elem()\n\tstringType = reflect.TypeOf((*string)(nil)).Elem()\n\tbytesType  = reflect.TypeOf((*[]byte)(nil)).Elem()\n\tbyteType   = reflect.TypeOf((*byte)(nil)).Elem()\n)\n\ntype formatValueOptions struct {\n\t// AvoidStringer controls whether to avoid calling custom stringer\n\t// methods like error.Error or fmt.Stringer.String.\n\tAvoidStringer bool\n\n\t// PrintAddresses controls whether to print the address of all pointers,\n\t// slice elements, and maps.\n\tPrintAddresses bool\n\n\t// QualifiedNames controls whether FormatType uses the fully qualified name\n\t// (including the full package path as opposed to just the package name).\n\tQualifiedNames bool\n\n\t// VerbosityLevel controls the amount of output to produce.\n\t// A higher value produces more output. A value of zero or lower produces\n\t// no output (represented using an ellipsis).\n\t// If LimitVerbosity is false, then the level is treated as infinite.\n\tVerbosityLevel int\n\n\t// LimitVerbosity specifies that formatting should respect VerbosityLevel.\n\tLimitVerbosity bool\n}\n\n// FormatType prints the type as if it were wrapping s.\n// This may return s as-is depending on the current type and TypeMode mode.\nfunc (opts formatOptions) FormatType(t reflect.Type, s textNode) textNode {\n\t// Check whether to emit the type or not.\n\tswitch opts.TypeMode {\n\tcase autoType:\n\t\tswitch t.Kind() {\n\t\tcase reflect.Struct, reflect.Slice, reflect.Array, reflect.Map:\n\t\t\tif s.Equal(textNil) {\n\t\t\t\treturn s\n\t\t\t}\n\t\tdefault:\n\t\t\treturn s\n\t\t}\n\t\tif opts.DiffMode == diffIdentical {\n\t\t\treturn s // elide type for identical nodes\n\t\t}\n\tcase elideType:\n\t\treturn s\n\t}\n\n\t// Determine the type label, applying special handling for unnamed types.\n\ttypeName := value.TypeString(t, opts.QualifiedNames)\n\tif t.Name() == \"\" {\n\t\t// According to Go grammar, certain type literals contain symbols that\n\t\t// do not strongly bind to the next lexicographical token (e.g., *T).\n\t\tswitch t.Kind() {\n\t\tcase reflect.Chan, reflect.Func, reflect.Ptr:\n\t\t\ttypeName = \"(\" + typeName + \")\"\n\t\t}\n\t}\n\treturn &textWrap{Prefix: typeName, Value: wrapParens(s)}\n}\n\n// wrapParens wraps s with a set of parenthesis, but avoids it if the\n// wrapped node itself is already surrounded by a pair of parenthesis or braces.\n// It handles unwrapping one level of pointer-reference nodes.\nfunc wrapParens(s textNode) textNode {\n\tvar refNode *textWrap\n\tif s2, ok := s.(*textWrap); ok {\n\t\t// Unwrap a single pointer reference node.\n\t\tswitch s2.Metadata.(type) {\n\t\tcase leafReference, trunkReference, trunkReferences:\n\t\t\trefNode = s2\n\t\t\tif s3, ok := refNode.Value.(*textWrap); ok {\n\t\t\t\ts2 = s3\n\t\t\t}\n\t\t}\n\n\t\t// Already has delimiters that make parenthesis unnecessary.\n\t\thasParens := strings.HasPrefix(s2.Prefix, \"(\") && strings.HasSuffix(s2.Suffix, \")\")\n\t\thasBraces := strings.HasPrefix(s2.Prefix, \"{\") && strings.HasSuffix(s2.Suffix, \"}\")\n\t\tif hasParens || hasBraces {\n\t\t\treturn s\n\t\t}\n\t}\n\tif refNode != nil {\n\t\trefNode.Value = &textWrap{Prefix: \"(\", Value: refNode.Value, Suffix: \")\"}\n\t\treturn s\n\t}\n\treturn &textWrap{Prefix: \"(\", Value: s, Suffix: \")\"}\n}\n\n// FormatValue prints the reflect.Value, taking extra care to avoid descending\n// into pointers already in ptrs. As pointers are visited, ptrs is also updated.\nfunc (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind, ptrs *pointerReferences) (out textNode) {\n\tif !v.IsValid() {\n\t\treturn nil\n\t}\n\tt := v.Type()\n\n\t// Check slice element for cycles.\n\tif parentKind == reflect.Slice {\n\t\tptrRef, visited := ptrs.Push(v.Addr())\n\t\tif visited {\n\t\t\treturn makeLeafReference(ptrRef, false)\n\t\t}\n\t\tdefer ptrs.Pop()\n\t\tdefer func() { out = wrapTrunkReference(ptrRef, false, out) }()\n\t}\n\n\t// Check whether there is an Error or String method to call.\n\tif !opts.AvoidStringer && v.CanInterface() {\n\t\t// Avoid calling Error or String methods on nil receivers since many\n\t\t// implementations crash when doing so.\n\t\tif (t.Kind() != reflect.Ptr && t.Kind() != reflect.Interface) || !v.IsNil() {\n\t\t\tvar prefix, strVal string\n\t\t\tfunc() {\n\t\t\t\t// Swallow and ignore any panics from String or Error.\n\t\t\t\tdefer func() { recover() }()\n\t\t\t\tswitch v := v.Interface().(type) {\n\t\t\t\tcase error:\n\t\t\t\t\tstrVal = v.Error()\n\t\t\t\t\tprefix = \"e\"\n\t\t\t\tcase fmt.Stringer:\n\t\t\t\t\tstrVal = v.String()\n\t\t\t\t\tprefix = \"s\"\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif prefix != \"\" {\n\t\t\t\treturn opts.formatString(prefix, strVal)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check whether to explicitly wrap the result with the type.\n\tvar skipType bool\n\tdefer func() {\n\t\tif !skipType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\t}()\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn textLine(fmt.Sprint(v.Bool()))\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn textLine(fmt.Sprint(v.Int()))\n\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn textLine(fmt.Sprint(v.Uint()))\n\tcase reflect.Uint8:\n\t\tif parentKind == reflect.Slice || parentKind == reflect.Array {\n\t\t\treturn textLine(formatHex(v.Uint()))\n\t\t}\n\t\treturn textLine(fmt.Sprint(v.Uint()))\n\tcase reflect.Uintptr:\n\t\treturn textLine(formatHex(v.Uint()))\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn textLine(fmt.Sprint(v.Float()))\n\tcase reflect.Complex64, reflect.Complex128:\n\t\treturn textLine(fmt.Sprint(v.Complex()))\n\tcase reflect.String:\n\t\treturn opts.formatString(\"\", v.String())\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\treturn textLine(formatPointer(value.PointerOf(v), true))\n\tcase reflect.Struct:\n\t\tvar list textList\n\t\tv := makeAddressable(v) // needed for retrieveUnexportedField\n\t\tmaxLen := v.NumField()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tvv := v.Field(i)\n\t\t\tif vv.IsZero() {\n\t\t\t\tcontinue // Elide fields with zero values\n\t\t\t}\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsf := t.Field(i)\n\t\t\tif !isExported(sf.Name) {\n\t\t\t\tvv = retrieveUnexportedField(v, sf, true)\n\t\t\t}\n\t\t\ts := opts.WithTypeMode(autoType).FormatValue(vv, t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Key: sf.Name, Value: s})\n\t\t}\n\t\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check whether this is a []byte of text data.\n\t\tif t.Elem() == byteType {\n\t\t\tb := v.Bytes()\n\t\t\tisPrintSpace := func(r rune) bool { return unicode.IsPrint(r) || unicode.IsSpace(r) }\n\t\t\tif len(b) > 0 && utf8.Valid(b) && len(bytes.TrimFunc(b, isPrintSpace)) == 0 {\n\t\t\t\tout = opts.formatString(\"\", string(b))\n\t\t\t\tskipType = true\n\t\t\t\treturn opts.FormatType(t, out)\n\t\t\t}\n\t\t}\n\n\t\tfallthrough\n\tcase reflect.Array:\n\t\tmaxLen := v.Len()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tvar list textList\n\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ts := opts.WithTypeMode(elideType).FormatValue(v.Index(i), t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Value: s})\n\t\t}\n\n\t\tout = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\t\tif t.Kind() == reflect.Slice && opts.PrintAddresses {\n\t\t\theader := fmt.Sprintf(\"ptr:%v, len:%d, cap:%d\", formatPointer(value.PointerOf(v), false), v.Len(), v.Cap())\n\t\t\tout = &textWrap{Prefix: pointerDelimPrefix + header + pointerDelimSuffix, Value: out}\n\t\t}\n\t\treturn out\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check pointer for cycles.\n\t\tptrRef, visited := ptrs.Push(v)\n\t\tif visited {\n\t\t\treturn makeLeafReference(ptrRef, opts.PrintAddresses)\n\t\t}\n\t\tdefer ptrs.Pop()\n\n\t\tmaxLen := v.Len()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tvar list textList\n\t\tfor _, k := range value.SortKeys(v.MapKeys()) {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsk := formatMapKey(k, false, ptrs)\n\t\t\tsv := opts.WithTypeMode(elideType).FormatValue(v.MapIndex(k), t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Key: sk, Value: sv})\n\t\t}\n\n\t\tout = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\t\tout = wrapTrunkReference(ptrRef, opts.PrintAddresses, out)\n\t\treturn out\n\tcase reflect.Ptr:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check pointer for cycles.\n\t\tptrRef, visited := ptrs.Push(v)\n\t\tif visited {\n\t\t\tout = makeLeafReference(ptrRef, opts.PrintAddresses)\n\t\t\treturn &textWrap{Prefix: \"&\", Value: out}\n\t\t}\n\t\tdefer ptrs.Pop()\n\n\t\t// Skip the name only if this is an unnamed pointer type.\n\t\t// Otherwise taking the address of a value does not reproduce\n\t\t// the named pointer type.\n\t\tif v.Type().Name() == \"\" {\n\t\t\tskipType = true // Let the underlying value print the type instead\n\t\t}\n\t\tout = opts.FormatValue(v.Elem(), t.Kind(), ptrs)\n\t\tout = wrapTrunkReference(ptrRef, opts.PrintAddresses, out)\n\t\tout = &textWrap{Prefix: \"&\", Value: out}\n\t\treturn out\n\tcase reflect.Interface:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\t\t// Interfaces accept different concrete types,\n\t\t// so configure the underlying value to explicitly print the type.\n\t\treturn opts.WithTypeMode(emitType).FormatValue(v.Elem(), t.Kind(), ptrs)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v kind not handled\", v.Kind()))\n\t}\n}\n\nfunc (opts formatOptions) formatString(prefix, s string) textNode {\n\tmaxLen := len(s)\n\tmaxLines := strings.Count(s, \"\\n\") + 1\n\tif opts.LimitVerbosity {\n\t\tmaxLen = (1 << opts.verbosity()) << 5   // 32, 64, 128, 256, etc...\n\t\tmaxLines = (1 << opts.verbosity()) << 2 //  4, 8, 16, 32, 64, etc...\n\t}\n\n\t// For multiline strings, use the triple-quote syntax,\n\t// but only use it when printing removed or inserted nodes since\n\t// we only want the extra verbosity for those cases.\n\tlines := strings.Split(strings.TrimSuffix(s, \"\\n\"), \"\\n\")\n\tisTripleQuoted := len(lines) >= 4 && (opts.DiffMode == '-' || opts.DiffMode == '+')\n\tfor i := 0; i < len(lines) && isTripleQuoted; i++ {\n\t\tlines[i] = strings.TrimPrefix(strings.TrimSuffix(lines[i], \"\\r\"), \"\\r\") // trim leading/trailing carriage returns for legacy Windows endline support\n\t\tisPrintable := func(r rune) bool {\n\t\t\treturn unicode.IsPrint(r) || r == '\\t' // specially treat tab as printable\n\t\t}\n\t\tline := lines[i]\n\t\tisTripleQuoted = !strings.HasPrefix(strings.TrimPrefix(line, prefix), `\"\"\"`) && !strings.HasPrefix(line, \"...\") && strings.TrimFunc(line, isPrintable) == \"\" && len(line) <= maxLen\n\t}\n\tif isTripleQuoted {\n\t\tvar list textList\n\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `\"\"\"`), ElideComma: true})\n\t\tfor i, line := range lines {\n\t\t\tif numElided := len(lines) - i; i == maxLines-1 && numElided > 1 {\n\t\t\t\tcomment := commentString(fmt.Sprintf(\"%d elided lines\", numElided))\n\t\t\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textEllipsis, ElideComma: true, Comment: comment})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(line), ElideComma: true})\n\t\t}\n\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `\"\"\"`), ElideComma: true})\n\t\treturn &textWrap{Prefix: \"(\", Value: list, Suffix: \")\"}\n\t}\n\n\t// Format the string as a single-line quoted string.\n\tif len(s) > maxLen+len(textEllipsis) {\n\t\treturn textLine(prefix + formatString(s[:maxLen]) + string(textEllipsis))\n\t}\n\treturn textLine(prefix + formatString(s))\n}\n\n// formatMapKey formats v as if it were a map key.\n// The result is guaranteed to be a single line.\nfunc formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) string {\n\tvar opts formatOptions\n\topts.DiffMode = diffIdentical\n\topts.TypeMode = elideType\n\topts.PrintAddresses = disambiguate\n\topts.AvoidStringer = disambiguate\n\topts.QualifiedNames = disambiguate\n\topts.VerbosityLevel = maxVerbosityPreset\n\topts.LimitVerbosity = true\n\ts := opts.FormatValue(v, reflect.Map, ptrs).String()\n\treturn strings.TrimSpace(s)\n}\n\n// formatString prints s as a double-quoted or backtick-quoted string.\nfunc formatString(s string) string {\n\t// Use quoted string if it the same length as a raw string literal.\n\t// Otherwise, attempt to use the raw string form.\n\tqs := strconv.Quote(s)\n\tif len(qs) == 1+len(s)+1 {\n\t\treturn qs\n\t}\n\n\t// Disallow newlines to ensure output is a single line.\n\t// Only allow printable runes for readability purposes.\n\trawInvalid := func(r rune) bool {\n\t\treturn r == '`' || r == '\\n' || !(unicode.IsPrint(r) || r == '\\t')\n\t}\n\tif utf8.ValidString(s) && strings.IndexFunc(s, rawInvalid) < 0 {\n\t\treturn \"`\" + s + \"`\"\n\t}\n\treturn qs\n}\n\n// formatHex prints u as a hexadecimal integer in Go notation.\nfunc formatHex(u uint64) string {\n\tvar f string\n\tswitch {\n\tcase u <= 0xff:\n\t\tf = \"0x%02x\"\n\tcase u <= 0xffff:\n\t\tf = \"0x%04x\"\n\tcase u <= 0xffffff:\n\t\tf = \"0x%06x\"\n\tcase u <= 0xffffffff:\n\t\tf = \"0x%08x\"\n\tcase u <= 0xffffffffff:\n\t\tf = \"0x%010x\"\n\tcase u <= 0xffffffffffff:\n\t\tf = \"0x%012x\"\n\tcase u <= 0xffffffffffffff:\n\t\tf = \"0x%014x\"\n\tcase u <= 0xffffffffffffffff:\n\t\tf = \"0x%016x\"\n\t}\n\treturn fmt.Sprintf(f, u)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_slices.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/diff\"\n)\n\n// CanFormatDiffSlice reports whether we support custom formatting for nodes\n// that are slices of primitive kinds or strings.\nfunc (opts formatOptions) CanFormatDiffSlice(v *valueNode) bool {\n\tswitch {\n\tcase opts.DiffMode != diffUnknown:\n\t\treturn false // Must be formatting in diff mode\n\tcase v.NumDiff == 0:\n\t\treturn false // No differences detected\n\tcase !v.ValueX.IsValid() || !v.ValueY.IsValid():\n\t\treturn false // Both values must be valid\n\tcase v.NumIgnored > 0:\n\t\treturn false // Some ignore option was used\n\tcase v.NumTransformed > 0:\n\t\treturn false // Some transform option was used\n\tcase v.NumCompared > 1:\n\t\treturn false // More than one comparison was used\n\tcase v.NumCompared == 1 && v.Type.Name() != \"\":\n\t\t// The need for cmp to check applicability of options on every element\n\t\t// in a slice is a significant performance detriment for large []byte.\n\t\t// The workaround is to specify Comparer(bytes.Equal),\n\t\t// which enables cmp to compare []byte more efficiently.\n\t\t// If they differ, we still want to provide batched diffing.\n\t\t// The logic disallows named types since they tend to have their own\n\t\t// String method, with nicer formatting than what this provides.\n\t\treturn false\n\t}\n\n\t// Check whether this is an interface with the same concrete types.\n\tt := v.Type\n\tvx, vy := v.ValueX, v.ValueY\n\tif t.Kind() == reflect.Interface && !vx.IsNil() && !vy.IsNil() && vx.Elem().Type() == vy.Elem().Type() {\n\t\tvx, vy = vx.Elem(), vy.Elem()\n\t\tt = vx.Type()\n\t}\n\n\t// Check whether we provide specialized diffing for this type.\n\tswitch t.Kind() {\n\tcase reflect.String:\n\tcase reflect.Array, reflect.Slice:\n\t\t// Only slices of primitive types have specialized handling.\n\t\tswitch t.Elem().Kind() {\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\t\treflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\n\t\t// Both slice values have to be non-empty.\n\t\tif t.Kind() == reflect.Slice && (vx.Len() == 0 || vy.Len() == 0) {\n\t\t\treturn false\n\t\t}\n\n\t\t// If a sufficient number of elements already differ,\n\t\t// use specialized formatting even if length requirement is not met.\n\t\tif v.NumDiff > v.NumSame {\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\treturn false\n\t}\n\n\t// Use specialized string diffing for longer slices or strings.\n\tconst minLength = 32\n\treturn vx.Len() >= minLength && vy.Len() >= minLength\n}\n\n// FormatDiffSlice prints a diff for the slices (or strings) represented by v.\n// This provides custom-tailored logic to make printing of differences in\n// textual strings and slices of primitive kinds more readable.\nfunc (opts formatOptions) FormatDiffSlice(v *valueNode) textNode {\n\tassert(opts.DiffMode == diffUnknown)\n\tt, vx, vy := v.Type, v.ValueX, v.ValueY\n\tif t.Kind() == reflect.Interface {\n\t\tvx, vy = vx.Elem(), vy.Elem()\n\t\tt = vx.Type()\n\t\topts = opts.WithTypeMode(emitType)\n\t}\n\n\t// Auto-detect the type of the data.\n\tvar sx, sy string\n\tvar ssx, ssy []string\n\tvar isString, isMostlyText, isPureLinedText, isBinary bool\n\tswitch {\n\tcase t.Kind() == reflect.String:\n\t\tsx, sy = vx.String(), vy.String()\n\t\tisString = true\n\tcase t.Kind() == reflect.Slice && t.Elem() == byteType:\n\t\tsx, sy = string(vx.Bytes()), string(vy.Bytes())\n\t\tisString = true\n\tcase t.Kind() == reflect.Array:\n\t\t// Arrays need to be addressable for slice operations to work.\n\t\tvx2, vy2 := reflect.New(t).Elem(), reflect.New(t).Elem()\n\t\tvx2.Set(vx)\n\t\tvy2.Set(vy)\n\t\tvx, vy = vx2, vy2\n\t}\n\tif isString {\n\t\tvar numTotalRunes, numValidRunes, numLines, lastLineIdx, maxLineLen int\n\t\tfor i, r := range sx + sy {\n\t\t\tnumTotalRunes++\n\t\t\tif (unicode.IsPrint(r) || unicode.IsSpace(r)) && r != utf8.RuneError {\n\t\t\t\tnumValidRunes++\n\t\t\t}\n\t\t\tif r == '\\n' {\n\t\t\t\tif maxLineLen < i-lastLineIdx {\n\t\t\t\t\tmaxLineLen = i - lastLineIdx\n\t\t\t\t}\n\t\t\t\tlastLineIdx = i + 1\n\t\t\t\tnumLines++\n\t\t\t}\n\t\t}\n\t\tisPureText := numValidRunes == numTotalRunes\n\t\tisMostlyText = float64(numValidRunes) > math.Floor(0.90*float64(numTotalRunes))\n\t\tisPureLinedText = isPureText && numLines >= 4 && maxLineLen <= 1024\n\t\tisBinary = !isMostlyText\n\n\t\t// Avoid diffing by lines if it produces a significantly more complex\n\t\t// edit script than diffing by bytes.\n\t\tif isPureLinedText {\n\t\t\tssx = strings.Split(sx, \"\\n\")\n\t\t\tssy = strings.Split(sy, \"\\n\")\n\t\t\tesLines := diff.Difference(len(ssx), len(ssy), func(ix, iy int) diff.Result {\n\t\t\t\treturn diff.BoolResult(ssx[ix] == ssy[iy])\n\t\t\t})\n\t\t\tesBytes := diff.Difference(len(sx), len(sy), func(ix, iy int) diff.Result {\n\t\t\t\treturn diff.BoolResult(sx[ix] == sy[iy])\n\t\t\t})\n\t\t\tefficiencyLines := float64(esLines.Dist()) / float64(len(esLines))\n\t\t\tefficiencyBytes := float64(esBytes.Dist()) / float64(len(esBytes))\n\t\t\tquotedLength := len(strconv.Quote(sx + sy))\n\t\t\tunquotedLength := len(sx) + len(sy)\n\t\t\tescapeExpansionRatio := float64(quotedLength) / float64(unquotedLength)\n\t\t\tisPureLinedText = efficiencyLines < 4*efficiencyBytes || escapeExpansionRatio > 1.1\n\t\t}\n\t}\n\n\t// Format the string into printable records.\n\tvar list textList\n\tvar delim string\n\tswitch {\n\t// If the text appears to be multi-lined text,\n\t// then perform differencing across individual lines.\n\tcase isPureLinedText:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(ssx), reflect.ValueOf(ssy), 1, \"line\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\ts := formatString(v.Index(0).String())\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\t\tdelim = \"\\n\"\n\n\t\t// If possible, use a custom triple-quote (\"\"\") syntax for printing\n\t\t// differences in a string literal. This format is more readable,\n\t\t// but has edge-cases where differences are visually indistinguishable.\n\t\t// This format is avoided under the following conditions:\n\t\t//   - A line starts with `\"\"\"`\n\t\t//   - A line starts with \"...\"\n\t\t//   - A line contains non-printable characters\n\t\t//   - Adjacent different lines differ only by whitespace\n\t\t//\n\t\t// For example:\n\t\t//\n\t\t//\t\t\"\"\"\n\t\t//\t\t... // 3 identical lines\n\t\t//\t\tfoo\n\t\t//\t\tbar\n\t\t//\t-\tbaz\n\t\t//\t+\tBAZ\n\t\t//\t\t\"\"\"\n\t\tisTripleQuoted := true\n\t\tprevRemoveLines := map[string]bool{}\n\t\tprevInsertLines := map[string]bool{}\n\t\tvar list2 textList\n\t\tlist2 = append(list2, textRecord{Value: textLine(`\"\"\"`), ElideComma: true})\n\t\tfor _, r := range list {\n\t\t\tif !r.Value.Equal(textEllipsis) {\n\t\t\t\tline, _ := strconv.Unquote(string(r.Value.(textLine)))\n\t\t\t\tline = strings.TrimPrefix(strings.TrimSuffix(line, \"\\r\"), \"\\r\") // trim leading/trailing carriage returns for legacy Windows endline support\n\t\t\t\tnormLine := strings.Map(func(r rune) rune {\n\t\t\t\t\tif unicode.IsSpace(r) {\n\t\t\t\t\t\treturn -1 // drop whitespace to avoid visually indistinguishable output\n\t\t\t\t\t}\n\t\t\t\t\treturn r\n\t\t\t\t}, line)\n\t\t\t\tisPrintable := func(r rune) bool {\n\t\t\t\t\treturn unicode.IsPrint(r) || r == '\\t' // specially treat tab as printable\n\t\t\t\t}\n\t\t\t\tisTripleQuoted = !strings.HasPrefix(line, `\"\"\"`) && !strings.HasPrefix(line, \"...\") && strings.TrimFunc(line, isPrintable) == \"\"\n\t\t\t\tswitch r.Diff {\n\t\t\t\tcase diffRemoved:\n\t\t\t\t\tisTripleQuoted = isTripleQuoted && !prevInsertLines[normLine]\n\t\t\t\t\tprevRemoveLines[normLine] = true\n\t\t\t\tcase diffInserted:\n\t\t\t\t\tisTripleQuoted = isTripleQuoted && !prevRemoveLines[normLine]\n\t\t\t\t\tprevInsertLines[normLine] = true\n\t\t\t\t}\n\t\t\t\tif !isTripleQuoted {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tr.Value = textLine(line)\n\t\t\t\tr.ElideComma = true\n\t\t\t}\n\t\t\tif !(r.Diff == diffRemoved || r.Diff == diffInserted) { // start a new non-adjacent difference group\n\t\t\t\tprevRemoveLines = map[string]bool{}\n\t\t\t\tprevInsertLines = map[string]bool{}\n\t\t\t}\n\t\t\tlist2 = append(list2, r)\n\t\t}\n\t\tif r := list2[len(list2)-1]; r.Diff == diffIdentical && len(r.Value.(textLine)) == 0 {\n\t\t\tlist2 = list2[:len(list2)-1] // elide single empty line at the end\n\t\t}\n\t\tlist2 = append(list2, textRecord{Value: textLine(`\"\"\"`), ElideComma: true})\n\t\tif isTripleQuoted {\n\t\t\tvar out textNode = &textWrap{Prefix: \"(\", Value: list2, Suffix: \")\"}\n\t\t\tswitch t.Kind() {\n\t\t\tcase reflect.String:\n\t\t\t\tif t != stringType {\n\t\t\t\t\tout = opts.FormatType(t, out)\n\t\t\t\t}\n\t\t\tcase reflect.Slice:\n\t\t\t\t// Always emit type for slices since the triple-quote syntax\n\t\t\t\t// looks like a string (not a slice).\n\t\t\t\topts = opts.WithTypeMode(emitType)\n\t\t\t\tout = opts.FormatType(t, out)\n\t\t\t}\n\t\t\treturn out\n\t\t}\n\n\t// If the text appears to be single-lined text,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The output is printed as quoted strings.\n\tcase isMostlyText:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(sx), reflect.ValueOf(sy), 64, \"byte\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\ts := formatString(v.String())\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\n\t// If the text appears to be binary data,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The output is inspired by hexdump.\n\tcase isBinary:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(sx), reflect.ValueOf(sy), 16, \"byte\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\tvar ss []string\n\t\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\t\tss = append(ss, formatHex(v.Index(i).Uint()))\n\t\t\t\t}\n\t\t\t\ts := strings.Join(ss, \", \")\n\t\t\t\tcomment := commentString(fmt.Sprintf(\"%c|%v|\", d, formatASCII(v.String())))\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s), Comment: comment}\n\t\t\t},\n\t\t)\n\n\t// For all other slices of primitive types,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The size of each chunk depends on the width of the element kind.\n\tdefault:\n\t\tvar chunkSize int\n\t\tif t.Elem().Kind() == reflect.Bool {\n\t\t\tchunkSize = 16\n\t\t} else {\n\t\t\tswitch t.Elem().Bits() {\n\t\t\tcase 8:\n\t\t\t\tchunkSize = 16\n\t\t\tcase 16:\n\t\t\t\tchunkSize = 12\n\t\t\tcase 32:\n\t\t\t\tchunkSize = 8\n\t\t\tdefault:\n\t\t\t\tchunkSize = 8\n\t\t\t}\n\t\t}\n\t\tlist = opts.formatDiffSlice(\n\t\t\tvx, vy, chunkSize, t.Elem().Kind().String(),\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\tvar ss []string\n\t\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\t\tswitch t.Elem().Kind() {\n\t\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Int()))\n\t\t\t\t\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Uint()))\n\t\t\t\t\tcase reflect.Uint8, reflect.Uintptr:\n\t\t\t\t\t\tss = append(ss, formatHex(v.Index(i).Uint()))\n\t\t\t\t\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Interface()))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts := strings.Join(ss, \", \")\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\t}\n\n\t// Wrap the output with appropriate type information.\n\tvar out textNode = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tif !isMostlyText {\n\t\t// The \"{...}\" byte-sequence literal is not valid Go syntax for strings.\n\t\t// Emit the type for extra clarity (e.g. \"string{...}\").\n\t\tif t.Kind() == reflect.String {\n\t\t\topts = opts.WithTypeMode(emitType)\n\t\t}\n\t\treturn opts.FormatType(t, out)\n\t}\n\tswitch t.Kind() {\n\tcase reflect.String:\n\t\tout = &textWrap{Prefix: \"strings.Join(\", Value: out, Suffix: fmt.Sprintf(\", %q)\", delim)}\n\t\tif t != stringType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\tcase reflect.Slice:\n\t\tout = &textWrap{Prefix: \"bytes.Join(\", Value: out, Suffix: fmt.Sprintf(\", %q)\", delim)}\n\t\tif t != bytesType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\t}\n\treturn out\n}\n\n// formatASCII formats s as an ASCII string.\n// This is useful for printing binary strings in a semi-legible way.\nfunc formatASCII(s string) string {\n\tb := bytes.Repeat([]byte{'.'}, len(s))\n\tfor i := 0; i < len(s); i++ {\n\t\tif ' ' <= s[i] && s[i] <= '~' {\n\t\t\tb[i] = s[i]\n\t\t}\n\t}\n\treturn string(b)\n}\n\nfunc (opts formatOptions) formatDiffSlice(\n\tvx, vy reflect.Value, chunkSize int, name string,\n\tmakeRec func(reflect.Value, diffMode) textRecord,\n) (list textList) {\n\teq := func(ix, iy int) bool {\n\t\treturn vx.Index(ix).Interface() == vy.Index(iy).Interface()\n\t}\n\tes := diff.Difference(vx.Len(), vy.Len(), func(ix, iy int) diff.Result {\n\t\treturn diff.BoolResult(eq(ix, iy))\n\t})\n\n\tappendChunks := func(v reflect.Value, d diffMode) int {\n\t\tn0 := v.Len()\n\t\tfor v.Len() > 0 {\n\t\t\tn := chunkSize\n\t\t\tif n > v.Len() {\n\t\t\t\tn = v.Len()\n\t\t\t}\n\t\t\tlist = append(list, makeRec(v.Slice(0, n), d))\n\t\t\tv = v.Slice(n, v.Len())\n\t\t}\n\t\treturn n0 - v.Len()\n\t}\n\n\tvar numDiffs int\n\tmaxLen := -1\n\tif opts.LimitVerbosity {\n\t\tmaxLen = (1 << opts.verbosity()) << 2 // 4, 8, 16, 32, 64, etc...\n\t\topts.VerbosityLevel--\n\t}\n\n\tgroups := coalesceAdjacentEdits(name, es)\n\tgroups = coalesceInterveningIdentical(groups, chunkSize/4)\n\tgroups = cleanupSurroundingIdentical(groups, eq)\n\tmaxGroup := diffStats{Name: name}\n\tfor i, ds := range groups {\n\t\tif maxLen >= 0 && numDiffs >= maxLen {\n\t\t\tmaxGroup = maxGroup.Append(ds)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Print equal.\n\t\tif ds.NumDiff() == 0 {\n\t\t\t// Compute the number of leading and trailing equal bytes to print.\n\t\t\tvar numLo, numHi int\n\t\t\tnumEqual := ds.NumIgnored + ds.NumIdentical\n\t\t\tfor numLo < chunkSize*numContextRecords && numLo+numHi < numEqual && i != 0 {\n\t\t\t\tnumLo++\n\t\t\t}\n\t\t\tfor numHi < chunkSize*numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 {\n\t\t\t\tnumHi++\n\t\t\t}\n\t\t\tif numEqual-(numLo+numHi) <= chunkSize && ds.NumIgnored == 0 {\n\t\t\t\tnumHi = numEqual - numLo // Avoid pointless coalescing of single equal row\n\t\t\t}\n\n\t\t\t// Print the equal bytes.\n\t\t\tappendChunks(vx.Slice(0, numLo), diffIdentical)\n\t\t\tif numEqual > numLo+numHi {\n\t\t\t\tds.NumIdentical -= numLo + numHi\n\t\t\t\tlist.AppendEllipsis(ds)\n\t\t\t}\n\t\t\tappendChunks(vx.Slice(numEqual-numHi, numEqual), diffIdentical)\n\t\t\tvx = vx.Slice(numEqual, vx.Len())\n\t\t\tvy = vy.Slice(numEqual, vy.Len())\n\t\t\tcontinue\n\t\t}\n\n\t\t// Print unequal.\n\t\tlen0 := len(list)\n\t\tnx := appendChunks(vx.Slice(0, ds.NumIdentical+ds.NumRemoved+ds.NumModified), diffRemoved)\n\t\tvx = vx.Slice(nx, vx.Len())\n\t\tny := appendChunks(vy.Slice(0, ds.NumIdentical+ds.NumInserted+ds.NumModified), diffInserted)\n\t\tvy = vy.Slice(ny, vy.Len())\n\t\tnumDiffs += len(list) - len0\n\t}\n\tif maxGroup.IsZero() {\n\t\tassert(vx.Len() == 0 && vy.Len() == 0)\n\t} else {\n\t\tlist.AppendEllipsis(maxGroup)\n\t}\n\treturn list\n}\n\n// coalesceAdjacentEdits coalesces the list of edits into groups of adjacent\n// equal or unequal counts.\n//\n// Example:\n//\n//\tInput:  \"..XXY...Y\"\n//\tOutput: [\n//\t\t{NumIdentical: 2},\n//\t\t{NumRemoved: 2, NumInserted 1},\n//\t\t{NumIdentical: 3},\n//\t\t{NumInserted: 1},\n//\t]\nfunc coalesceAdjacentEdits(name string, es diff.EditScript) (groups []diffStats) {\n\tvar prevMode byte\n\tlastStats := func(mode byte) *diffStats {\n\t\tif prevMode != mode {\n\t\t\tgroups = append(groups, diffStats{Name: name})\n\t\t\tprevMode = mode\n\t\t}\n\t\treturn &groups[len(groups)-1]\n\t}\n\tfor _, e := range es {\n\t\tswitch e {\n\t\tcase diff.Identity:\n\t\t\tlastStats('=').NumIdentical++\n\t\tcase diff.UniqueX:\n\t\t\tlastStats('!').NumRemoved++\n\t\tcase diff.UniqueY:\n\t\t\tlastStats('!').NumInserted++\n\t\tcase diff.Modified:\n\t\t\tlastStats('!').NumModified++\n\t\t}\n\t}\n\treturn groups\n}\n\n// coalesceInterveningIdentical coalesces sufficiently short (<= windowSize)\n// equal groups into adjacent unequal groups that currently result in a\n// dual inserted/removed printout. This acts as a high-pass filter to smooth\n// out high-frequency changes within the windowSize.\n//\n// Example:\n//\n//\tWindowSize: 16,\n//\tInput: [\n//\t\t{NumIdentical: 61},              // group 0\n//\t\t{NumRemoved: 3, NumInserted: 1}, // group 1\n//\t\t{NumIdentical: 6},               // ├── coalesce\n//\t\t{NumInserted: 2},                // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 9},                 // └── coalesce\n//\t\t{NumIdentical: 64},              // group 2\n//\t\t{NumRemoved: 3, NumInserted: 1}, // group 3\n//\t\t{NumIdentical: 6},               // ├── coalesce\n//\t\t{NumInserted: 2},                // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 7},                 // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 2},                 // └── coalesce\n//\t\t{NumIdentical: 63},              // group 4\n//\t]\n//\tOutput: [\n//\t\t{NumIdentical: 61},\n//\t\t{NumIdentical: 7, NumRemoved: 12, NumInserted: 3},\n//\t\t{NumIdentical: 64},\n//\t\t{NumIdentical: 8, NumRemoved: 12, NumInserted: 3},\n//\t\t{NumIdentical: 63},\n//\t]\nfunc coalesceInterveningIdentical(groups []diffStats, windowSize int) []diffStats {\n\tgroups, groupsOrig := groups[:0], groups\n\tfor i, ds := range groupsOrig {\n\t\tif len(groups) >= 2 && ds.NumDiff() > 0 {\n\t\t\tprev := &groups[len(groups)-2] // Unequal group\n\t\t\tcurr := &groups[len(groups)-1] // Equal group\n\t\t\tnext := &groupsOrig[i]         // Unequal group\n\t\t\thadX, hadY := prev.NumRemoved > 0, prev.NumInserted > 0\n\t\t\thasX, hasY := next.NumRemoved > 0, next.NumInserted > 0\n\t\t\tif ((hadX || hasX) && (hadY || hasY)) && curr.NumIdentical <= windowSize {\n\t\t\t\t*prev = prev.Append(*curr).Append(*next)\n\t\t\t\tgroups = groups[:len(groups)-1] // Truncate off equal group\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tgroups = append(groups, ds)\n\t}\n\treturn groups\n}\n\n// cleanupSurroundingIdentical scans through all unequal groups, and\n// moves any leading sequence of equal elements to the preceding equal group and\n// moves and trailing sequence of equal elements to the succeeding equal group.\n//\n// This is necessary since coalesceInterveningIdentical may coalesce edit groups\n// together such that leading/trailing spans of equal elements becomes possible.\n// Note that this can occur even with an optimal diffing algorithm.\n//\n// Example:\n//\n//\tInput: [\n//\t\t{NumIdentical: 61},\n//\t\t{NumIdentical: 1 , NumRemoved: 11, NumInserted: 2}, // assume 3 leading identical elements\n//\t\t{NumIdentical: 67},\n//\t\t{NumIdentical: 7, NumRemoved: 12, NumInserted: 3},  // assume 10 trailing identical elements\n//\t\t{NumIdentical: 54},\n//\t]\n//\tOutput: [\n//\t\t{NumIdentical: 64}, // incremented by 3\n//\t\t{NumRemoved: 9},\n//\t\t{NumIdentical: 67},\n//\t\t{NumRemoved: 9},\n//\t\t{NumIdentical: 64}, // incremented by 10\n//\t]\nfunc cleanupSurroundingIdentical(groups []diffStats, eq func(i, j int) bool) []diffStats {\n\tvar ix, iy int // indexes into sequence x and y\n\tfor i, ds := range groups {\n\t\t// Handle equal group.\n\t\tif ds.NumDiff() == 0 {\n\t\t\tix += ds.NumIdentical\n\t\t\tiy += ds.NumIdentical\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle unequal group.\n\t\tnx := ds.NumIdentical + ds.NumRemoved + ds.NumModified\n\t\tny := ds.NumIdentical + ds.NumInserted + ds.NumModified\n\t\tvar numLeadingIdentical, numTrailingIdentical int\n\t\tfor j := 0; j < nx && j < ny && eq(ix+j, iy+j); j++ {\n\t\t\tnumLeadingIdentical++\n\t\t}\n\t\tfor j := 0; j < nx && j < ny && eq(ix+nx-1-j, iy+ny-1-j); j++ {\n\t\t\tnumTrailingIdentical++\n\t\t}\n\t\tif numIdentical := numLeadingIdentical + numTrailingIdentical; numIdentical > 0 {\n\t\t\tif numLeadingIdentical > 0 {\n\t\t\t\t// Remove leading identical span from this group and\n\t\t\t\t// insert it into the preceding group.\n\t\t\t\tif i-1 >= 0 {\n\t\t\t\t\tgroups[i-1].NumIdentical += numLeadingIdentical\n\t\t\t\t} else {\n\t\t\t\t\t// No preceding group exists, so prepend a new group,\n\t\t\t\t\t// but do so after we finish iterating over all groups.\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tgroups = append([]diffStats{{Name: groups[0].Name, NumIdentical: numLeadingIdentical}}, groups...)\n\t\t\t\t\t}()\n\t\t\t\t}\n\t\t\t\t// Increment indexes since the preceding group would have handled this.\n\t\t\t\tix += numLeadingIdentical\n\t\t\t\tiy += numLeadingIdentical\n\t\t\t}\n\t\t\tif numTrailingIdentical > 0 {\n\t\t\t\t// Remove trailing identical span from this group and\n\t\t\t\t// insert it into the succeeding group.\n\t\t\t\tif i+1 < len(groups) {\n\t\t\t\t\tgroups[i+1].NumIdentical += numTrailingIdentical\n\t\t\t\t} else {\n\t\t\t\t\t// No succeeding group exists, so append a new group,\n\t\t\t\t\t// but do so after we finish iterating over all groups.\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tgroups = append(groups, diffStats{Name: groups[len(groups)-1].Name, NumIdentical: numTrailingIdentical})\n\t\t\t\t\t}()\n\t\t\t\t}\n\t\t\t\t// Do not increment indexes since the succeeding group will handle this.\n\t\t\t}\n\n\t\t\t// Update this group since some identical elements were removed.\n\t\t\tnx -= numIdentical\n\t\t\tny -= numIdentical\n\t\t\tgroups[i] = diffStats{Name: ds.Name, NumRemoved: nx, NumInserted: ny}\n\t\t}\n\t\tix += nx\n\t\tiy += ny\n\t}\n\treturn groups\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_text.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n)\n\nvar randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0\n\nconst maxColumnLength = 80\n\ntype indentMode int\n\nfunc (n indentMode) appendIndent(b []byte, d diffMode) []byte {\n\t// The output of Diff is documented as being unstable to provide future\n\t// flexibility in changing the output for more humanly readable reports.\n\t// This logic intentionally introduces instability to the exact output\n\t// so that users can detect accidental reliance on stability early on,\n\t// rather than much later when an actual change to the format occurs.\n\tif flags.Deterministic || randBool {\n\t\t// Use regular spaces (U+0020).\n\t\tswitch d {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\tb = append(b, \"  \"...)\n\t\tcase diffRemoved:\n\t\t\tb = append(b, \"- \"...)\n\t\tcase diffInserted:\n\t\t\tb = append(b, \"+ \"...)\n\t\t}\n\t} else {\n\t\t// Use non-breaking spaces (U+00a0).\n\t\tswitch d {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\tb = append(b, \"  \"...)\n\t\tcase diffRemoved:\n\t\t\tb = append(b, \"- \"...)\n\t\tcase diffInserted:\n\t\t\tb = append(b, \"+ \"...)\n\t\t}\n\t}\n\treturn repeatCount(n).appendChar(b, '\\t')\n}\n\ntype repeatCount int\n\nfunc (n repeatCount) appendChar(b []byte, c byte) []byte {\n\tfor ; n > 0; n-- {\n\t\tb = append(b, c)\n\t}\n\treturn b\n}\n\n// textNode is a simplified tree-based representation of structured text.\n// Possible node types are textWrap, textList, or textLine.\ntype textNode interface {\n\t// Len reports the length in bytes of a single-line version of the tree.\n\t// Nested textRecord.Diff and textRecord.Comment fields are ignored.\n\tLen() int\n\t// Equal reports whether the two trees are structurally identical.\n\t// Nested textRecord.Diff and textRecord.Comment fields are compared.\n\tEqual(textNode) bool\n\t// String returns the string representation of the text tree.\n\t// It is not guaranteed that len(x.String()) == x.Len(),\n\t// nor that x.String() == y.String() implies that x.Equal(y).\n\tString() string\n\n\t// formatCompactTo formats the contents of the tree as a single-line string\n\t// to the provided buffer. Any nested textRecord.Diff and textRecord.Comment\n\t// fields are ignored.\n\t//\n\t// However, not all nodes in the tree should be collapsed as a single-line.\n\t// If a node can be collapsed as a single-line, it is replaced by a textLine\n\t// node. Since the top-level node cannot replace itself, this also returns\n\t// the current node itself.\n\t//\n\t// This does not mutate the receiver.\n\tformatCompactTo([]byte, diffMode) ([]byte, textNode)\n\t// formatExpandedTo formats the contents of the tree as a multi-line string\n\t// to the provided buffer. In order for column alignment to operate well,\n\t// formatCompactTo must be called before calling formatExpandedTo.\n\tformatExpandedTo([]byte, diffMode, indentMode) []byte\n}\n\n// textWrap is a wrapper that concatenates a prefix and/or a suffix\n// to the underlying node.\ntype textWrap struct {\n\tPrefix   string      // e.g., \"bytes.Buffer{\"\n\tValue    textNode    // textWrap | textList | textLine\n\tSuffix   string      // e.g., \"}\"\n\tMetadata interface{} // arbitrary metadata; has no effect on formatting\n}\n\nfunc (s *textWrap) Len() int {\n\treturn len(s.Prefix) + s.Value.Len() + len(s.Suffix)\n}\nfunc (s1 *textWrap) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(*textWrap); ok {\n\t\treturn s1.Prefix == s2.Prefix && s1.Value.Equal(s2.Value) && s1.Suffix == s2.Suffix\n\t}\n\treturn false\n}\nfunc (s *textWrap) String() string {\n\tvar d diffMode\n\tvar n indentMode\n\t_, s2 := s.formatCompactTo(nil, d)\n\tb := n.appendIndent(nil, d)      // Leading indent\n\tb = s2.formatExpandedTo(b, d, n) // Main body\n\tb = append(b, '\\n')              // Trailing newline\n\treturn string(b)\n}\nfunc (s *textWrap) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\tn0 := len(b) // Original buffer length\n\tb = append(b, s.Prefix...)\n\tb, s.Value = s.Value.formatCompactTo(b, d)\n\tb = append(b, s.Suffix...)\n\tif _, ok := s.Value.(textLine); ok {\n\t\treturn b, textLine(b[n0:])\n\t}\n\treturn b, s\n}\nfunc (s *textWrap) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte {\n\tb = append(b, s.Prefix...)\n\tb = s.Value.formatExpandedTo(b, d, n)\n\tb = append(b, s.Suffix...)\n\treturn b\n}\n\n// textList is a comma-separated list of textWrap or textLine nodes.\n// The list may be formatted as multi-lines or single-line at the discretion\n// of the textList.formatCompactTo method.\ntype textList []textRecord\ntype textRecord struct {\n\tDiff       diffMode     // e.g., 0 or '-' or '+'\n\tKey        string       // e.g., \"MyField\"\n\tValue      textNode     // textWrap | textLine\n\tElideComma bool         // avoid trailing comma\n\tComment    fmt.Stringer // e.g., \"6 identical fields\"\n}\n\n// AppendEllipsis appends a new ellipsis node to the list if none already\n// exists at the end. If cs is non-zero it coalesces the statistics with the\n// previous diffStats.\nfunc (s *textList) AppendEllipsis(ds diffStats) {\n\thasStats := !ds.IsZero()\n\tif len(*s) == 0 || !(*s)[len(*s)-1].Value.Equal(textEllipsis) {\n\t\tif hasStats {\n\t\t\t*s = append(*s, textRecord{Value: textEllipsis, ElideComma: true, Comment: ds})\n\t\t} else {\n\t\t\t*s = append(*s, textRecord{Value: textEllipsis, ElideComma: true})\n\t\t}\n\t\treturn\n\t}\n\tif hasStats {\n\t\t(*s)[len(*s)-1].Comment = (*s)[len(*s)-1].Comment.(diffStats).Append(ds)\n\t}\n}\n\nfunc (s textList) Len() (n int) {\n\tfor i, r := range s {\n\t\tn += len(r.Key)\n\t\tif r.Key != \"\" {\n\t\t\tn += len(\": \")\n\t\t}\n\t\tn += r.Value.Len()\n\t\tif i < len(s)-1 {\n\t\t\tn += len(\", \")\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (s1 textList) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(textList); ok {\n\t\tif len(s1) != len(s2) {\n\t\t\treturn false\n\t\t}\n\t\tfor i := range s1 {\n\t\t\tr1, r2 := s1[i], s2[i]\n\t\t\tif !(r1.Diff == r2.Diff && r1.Key == r2.Key && r1.Value.Equal(r2.Value) && r1.Comment == r2.Comment) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s textList) String() string {\n\treturn (&textWrap{Prefix: \"{\", Value: s, Suffix: \"}\"}).String()\n}\n\nfunc (s textList) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\ts = append(textList(nil), s...) // Avoid mutating original\n\n\t// Determine whether we can collapse this list as a single line.\n\tn0 := len(b) // Original buffer length\n\tvar multiLine bool\n\tfor i, r := range s {\n\t\tif r.Diff == diffInserted || r.Diff == diffRemoved {\n\t\t\tmultiLine = true\n\t\t}\n\t\tb = append(b, r.Key...)\n\t\tif r.Key != \"\" {\n\t\t\tb = append(b, \": \"...)\n\t\t}\n\t\tb, s[i].Value = r.Value.formatCompactTo(b, d|r.Diff)\n\t\tif _, ok := s[i].Value.(textLine); !ok {\n\t\t\tmultiLine = true\n\t\t}\n\t\tif r.Comment != nil {\n\t\t\tmultiLine = true\n\t\t}\n\t\tif i < len(s)-1 {\n\t\t\tb = append(b, \", \"...)\n\t\t}\n\t}\n\t// Force multi-lined output when printing a removed/inserted node that\n\t// is sufficiently long.\n\tif (d == diffInserted || d == diffRemoved) && len(b[n0:]) > maxColumnLength {\n\t\tmultiLine = true\n\t}\n\tif !multiLine {\n\t\treturn b, textLine(b[n0:])\n\t}\n\treturn b, s\n}\n\nfunc (s textList) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte {\n\talignKeyLens := s.alignLens(\n\t\tfunc(r textRecord) bool {\n\t\t\t_, isLine := r.Value.(textLine)\n\t\t\treturn r.Key == \"\" || !isLine\n\t\t},\n\t\tfunc(r textRecord) int { return utf8.RuneCountInString(r.Key) },\n\t)\n\talignValueLens := s.alignLens(\n\t\tfunc(r textRecord) bool {\n\t\t\t_, isLine := r.Value.(textLine)\n\t\t\treturn !isLine || r.Value.Equal(textEllipsis) || r.Comment == nil\n\t\t},\n\t\tfunc(r textRecord) int { return utf8.RuneCount(r.Value.(textLine)) },\n\t)\n\n\t// Format lists of simple lists in a batched form.\n\t// If the list is sequence of only textLine values,\n\t// then batch multiple values on a single line.\n\tvar isSimple bool\n\tfor _, r := range s {\n\t\t_, isLine := r.Value.(textLine)\n\t\tisSimple = r.Diff == 0 && r.Key == \"\" && isLine && r.Comment == nil\n\t\tif !isSimple {\n\t\t\tbreak\n\t\t}\n\t}\n\tif isSimple {\n\t\tn++\n\t\tvar batch []byte\n\t\temitBatch := func() {\n\t\t\tif len(batch) > 0 {\n\t\t\t\tb = n.appendIndent(append(b, '\\n'), d)\n\t\t\t\tb = append(b, bytes.TrimRight(batch, \" \")...)\n\t\t\t\tbatch = batch[:0]\n\t\t\t}\n\t\t}\n\t\tfor _, r := range s {\n\t\t\tline := r.Value.(textLine)\n\t\t\tif len(batch)+len(line)+len(\", \") > maxColumnLength {\n\t\t\t\temitBatch()\n\t\t\t}\n\t\t\tbatch = append(batch, line...)\n\t\t\tbatch = append(batch, \", \"...)\n\t\t}\n\t\temitBatch()\n\t\tn--\n\t\treturn n.appendIndent(append(b, '\\n'), d)\n\t}\n\n\t// Format the list as a multi-lined output.\n\tn++\n\tfor i, r := range s {\n\t\tb = n.appendIndent(append(b, '\\n'), d|r.Diff)\n\t\tif r.Key != \"\" {\n\t\t\tb = append(b, r.Key+\": \"...)\n\t\t}\n\t\tb = alignKeyLens[i].appendChar(b, ' ')\n\n\t\tb = r.Value.formatExpandedTo(b, d|r.Diff, n)\n\t\tif !r.ElideComma {\n\t\t\tb = append(b, ',')\n\t\t}\n\t\tb = alignValueLens[i].appendChar(b, ' ')\n\n\t\tif r.Comment != nil {\n\t\t\tb = append(b, \" // \"+r.Comment.String()...)\n\t\t}\n\t}\n\tn--\n\n\treturn n.appendIndent(append(b, '\\n'), d)\n}\n\nfunc (s textList) alignLens(\n\tskipFunc func(textRecord) bool,\n\tlenFunc func(textRecord) int,\n) []repeatCount {\n\tvar startIdx, endIdx, maxLen int\n\tlens := make([]repeatCount, len(s))\n\tfor i, r := range s {\n\t\tif skipFunc(r) {\n\t\t\tfor j := startIdx; j < endIdx && j < len(s); j++ {\n\t\t\t\tlens[j] = repeatCount(maxLen - lenFunc(s[j]))\n\t\t\t}\n\t\t\tstartIdx, endIdx, maxLen = i+1, i+1, 0\n\t\t} else {\n\t\t\tif maxLen < lenFunc(r) {\n\t\t\t\tmaxLen = lenFunc(r)\n\t\t\t}\n\t\t\tendIdx = i + 1\n\t\t}\n\t}\n\tfor j := startIdx; j < endIdx && j < len(s); j++ {\n\t\tlens[j] = repeatCount(maxLen - lenFunc(s[j]))\n\t}\n\treturn lens\n}\n\n// textLine is a single-line segment of text and is always a leaf node\n// in the textNode tree.\ntype textLine []byte\n\nvar (\n\ttextNil      = textLine(\"nil\")\n\ttextEllipsis = textLine(\"...\")\n)\n\nfunc (s textLine) Len() int {\n\treturn len(s)\n}\nfunc (s1 textLine) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(textLine); ok {\n\t\treturn bytes.Equal([]byte(s1), []byte(s2))\n\t}\n\treturn false\n}\nfunc (s textLine) String() string {\n\treturn string(s)\n}\nfunc (s textLine) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\treturn append(b, s...), s\n}\nfunc (s textLine) formatExpandedTo(b []byte, _ diffMode, _ indentMode) []byte {\n\treturn append(b, s...)\n}\n\ntype diffStats struct {\n\tName         string\n\tNumIgnored   int\n\tNumIdentical int\n\tNumRemoved   int\n\tNumInserted  int\n\tNumModified  int\n}\n\nfunc (s diffStats) IsZero() bool {\n\ts.Name = \"\"\n\treturn s == diffStats{}\n}\n\nfunc (s diffStats) NumDiff() int {\n\treturn s.NumRemoved + s.NumInserted + s.NumModified\n}\n\nfunc (s diffStats) Append(ds diffStats) diffStats {\n\tassert(s.Name == ds.Name)\n\ts.NumIgnored += ds.NumIgnored\n\ts.NumIdentical += ds.NumIdentical\n\ts.NumRemoved += ds.NumRemoved\n\ts.NumInserted += ds.NumInserted\n\ts.NumModified += ds.NumModified\n\treturn s\n}\n\n// String prints a humanly-readable summary of coalesced records.\n//\n// Example:\n//\n//\tdiffStats{Name: \"Field\", NumIgnored: 5}.String() => \"5 ignored fields\"\nfunc (s diffStats) String() string {\n\tvar ss []string\n\tvar sum int\n\tlabels := [...]string{\"ignored\", \"identical\", \"removed\", \"inserted\", \"modified\"}\n\tcounts := [...]int{s.NumIgnored, s.NumIdentical, s.NumRemoved, s.NumInserted, s.NumModified}\n\tfor i, n := range counts {\n\t\tif n > 0 {\n\t\t\tss = append(ss, fmt.Sprintf(\"%d %v\", n, labels[i]))\n\t\t}\n\t\tsum += n\n\t}\n\n\t// Pluralize the name (adjusting for some obscure English grammar rules).\n\tname := s.Name\n\tif sum > 1 {\n\t\tname += \"s\"\n\t\tif strings.HasSuffix(name, \"ys\") {\n\t\t\tname = name[:len(name)-2] + \"ies\" // e.g., \"entrys\" => \"entries\"\n\t\t}\n\t}\n\n\t// Format the list according to English grammar (with Oxford comma).\n\tswitch n := len(ss); n {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1, 2:\n\t\treturn strings.Join(ss, \" and \") + \" \" + name\n\tdefault:\n\t\treturn strings.Join(ss[:n-1], \", \") + \", and \" + ss[n-1] + \" \" + name\n\t}\n}\n\ntype commentString string\n\nfunc (s commentString) String() string { return string(s) }\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_value.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport \"reflect\"\n\n// valueNode represents a single node within a report, which is a\n// structured representation of the value tree, containing information\n// regarding which nodes are equal or not.\ntype valueNode struct {\n\tparent *valueNode\n\n\tType   reflect.Type\n\tValueX reflect.Value\n\tValueY reflect.Value\n\n\t// NumSame is the number of leaf nodes that are equal.\n\t// All descendants are equal only if NumDiff is 0.\n\tNumSame int\n\t// NumDiff is the number of leaf nodes that are not equal.\n\tNumDiff int\n\t// NumIgnored is the number of leaf nodes that are ignored.\n\tNumIgnored int\n\t// NumCompared is the number of leaf nodes that were compared\n\t// using an Equal method or Comparer function.\n\tNumCompared int\n\t// NumTransformed is the number of non-leaf nodes that were transformed.\n\tNumTransformed int\n\t// NumChildren is the number of transitive descendants of this node.\n\t// This counts from zero; thus, leaf nodes have no descendants.\n\tNumChildren int\n\t// MaxDepth is the maximum depth of the tree. This counts from zero;\n\t// thus, leaf nodes have a depth of zero.\n\tMaxDepth int\n\n\t// Records is a list of struct fields, slice elements, or map entries.\n\tRecords []reportRecord // If populated, implies Value is not populated\n\n\t// Value is the result of a transformation, pointer indirect, of\n\t// type assertion.\n\tValue *valueNode // If populated, implies Records is not populated\n\n\t// TransformerName is the name of the transformer.\n\tTransformerName string // If non-empty, implies Value is populated\n}\ntype reportRecord struct {\n\tKey   reflect.Value // Invalid for slice element\n\tValue *valueNode\n}\n\nfunc (parent *valueNode) PushStep(ps PathStep) (child *valueNode) {\n\tvx, vy := ps.Values()\n\tchild = &valueNode{parent: parent, Type: ps.Type(), ValueX: vx, ValueY: vy}\n\tswitch s := ps.(type) {\n\tcase StructField:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Key: reflect.ValueOf(s.Name()), Value: child})\n\tcase SliceIndex:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Value: child})\n\tcase MapIndex:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Key: s.Key(), Value: child})\n\tcase Indirect:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\tcase TypeAssertion:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\tcase Transform:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\t\tparent.TransformerName = s.Name()\n\t\tparent.NumTransformed++\n\tdefault:\n\t\tassert(parent == nil) // Must be the root step\n\t}\n\treturn child\n}\n\nfunc (r *valueNode) Report(rs Result) {\n\tassert(r.MaxDepth == 0) // May only be called on leaf nodes\n\n\tif rs.ByIgnore() {\n\t\tr.NumIgnored++\n\t} else {\n\t\tif rs.Equal() {\n\t\t\tr.NumSame++\n\t\t} else {\n\t\t\tr.NumDiff++\n\t\t}\n\t}\n\tassert(r.NumSame+r.NumDiff+r.NumIgnored == 1)\n\n\tif rs.ByMethod() {\n\t\tr.NumCompared++\n\t}\n\tif rs.ByFunc() {\n\t\tr.NumCompared++\n\t}\n\tassert(r.NumCompared <= 1)\n}\n\nfunc (child *valueNode) PopStep() (parent *valueNode) {\n\tif child.parent == nil {\n\t\treturn nil\n\t}\n\tparent = child.parent\n\tparent.NumSame += child.NumSame\n\tparent.NumDiff += child.NumDiff\n\tparent.NumIgnored += child.NumIgnored\n\tparent.NumCompared += child.NumCompared\n\tparent.NumTransformed += child.NumTransformed\n\tparent.NumChildren += child.NumChildren + 1\n\tif parent.MaxDepth < child.MaxDepth+1 {\n\t\tparent.MaxDepth = child.MaxDepth + 1\n\t}\n\treturn parent\n}\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.4\n  - 1.3\n  - 1.2\n  - tip\n\ninstall:\n  - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi\n\nscript:\n  - go test -cover\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/CONTRIBUTING.md",
    "content": "# How to contribute #\n\nWe'd love to accept your patches and contributions to this project.  There are\na just a few small guidelines you need to follow.\n\n\n## Contributor License Agreement ##\n\nContributions to any Google project must be accompanied by a Contributor\nLicense Agreement.  This is not a copyright **assignment**, it simply gives\nGoogle permission to use and redistribute your contributions as part of the\nproject.\n\n  * If you are an individual writing original source code and you're sure you\n    own the intellectual property, then you'll need to sign an [individual\n    CLA][].\n\n  * If you work for a company that wants to allow you to contribute your work,\n    then you'll need to sign a [corporate CLA][].\n\nYou generally only need to submit a CLA once, so if you've already submitted\none (even if it was for a different project), you probably don't need to do it\nagain.\n\n[individual CLA]: https://developers.google.com/open-source/cla/individual\n[corporate CLA]: https://developers.google.com/open-source/cla/corporate\n\n\n## Submitting a patch ##\n\n  1. It's generally best to start by opening a new issue describing the bug or\n     feature you're intending to fix.  Even if you think it's relatively minor,\n     it's helpful to know what people are working on.  Mention in the initial\n     issue that you are planning to work on that bug or feature so that it can\n     be assigned to you.\n\n  1. Follow the normal process of [forking][] the project, and setup a new\n     branch to work in.  It's important that each group of changes be done in\n     separate branches in order to ensure that a pull request only includes the\n     commits related to that bug or feature.\n\n  1. Go makes it very simple to ensure properly formatted code, so always run\n     `go fmt` on your code before committing it.  You should also run\n     [golint][] over your code.  As noted in the [golint readme][], it's not\n     strictly necessary that your code be completely \"lint-free\", but this will\n     help you find common style issues.\n\n  1. Any significant changes should almost always be accompanied by tests.  The\n     project already has good test coverage, so look at some of the existing\n     tests if you're unsure how to go about it.  [gocov][] and [gocov-html][]\n     are invaluable tools for seeing which parts of your code aren't being\n     exercised by your tests.\n\n  1. Do your best to have [well-formed commit messages][] for each change.\n     This provides consistency throughout the project, and ensures that commit\n     messages are able to be formatted properly by various git tools.\n\n  1. Finally, push the commits to your fork and submit a [pull request][].\n\n[forking]: https://help.github.com/articles/fork-a-repo\n[golint]: https://github.com/golang/lint\n[golint readme]: https://github.com/golang/lint/blob/master/README\n[gocov]: https://github.com/axw/gocov\n[gocov-html]: https://github.com/matm/gocov-html\n[well-formed commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html\n[squash]: http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits\n[pull request]: https://help.github.com/articles/creating-a-pull-request\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/README.md",
    "content": "gofuzz\n======\n\ngofuzz is a library for populating go objects with random values.\n\n[![GoDoc](https://godoc.org/github.com/google/gofuzz?status.svg)](https://godoc.org/github.com/google/gofuzz)\n[![Travis](https://travis-ci.org/google/gofuzz.svg?branch=master)](https://travis-ci.org/google/gofuzz)\n\nThis is useful for testing:\n\n* Do your project's objects really serialize/unserialize correctly in all cases?\n* Is there an incorrectly formatted object that will cause your project to panic?\n\nImport with ```import \"github.com/google/gofuzz\"```\n\nYou can use it on single variables:\n```go\nf := fuzz.New()\nvar myInt int\nf.Fuzz(&myInt) // myInt gets a random value.\n```\n\nYou can use it on maps:\n```go\nf := fuzz.New().NilChance(0).NumElements(1, 1)\nvar myMap map[ComplexKeyType]string\nf.Fuzz(&myMap) // myMap will have exactly one element.\n```\n\nCustomize the chance of getting a nil pointer:\n```go\nf := fuzz.New().NilChance(.5)\nvar fancyStruct struct {\n  A, B, C, D *string\n}\nf.Fuzz(&fancyStruct) // About half the pointers should be set.\n```\n\nYou can even customize the randomization completely if needed:\n```go\ntype MyEnum string\nconst (\n        A MyEnum = \"A\"\n        B MyEnum = \"B\"\n)\ntype MyInfo struct {\n        Type MyEnum\n        AInfo *string\n        BInfo *string\n}\n\nf := fuzz.New().NilChance(0).Funcs(\n        func(e *MyInfo, c fuzz.Continue) {\n                switch c.Intn(2) {\n                case 0:\n                        e.Type = A\n                        c.Fuzz(&e.AInfo)\n                case 1:\n                        e.Type = B\n                        c.Fuzz(&e.BInfo)\n                }\n        },\n)\n\nvar myObject MyInfo\nf.Fuzz(&myObject) // Type will correspond to whether A or B info is set.\n```\n\nSee more examples in ```example_test.go```.\n\nHappy testing!\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/doc.go",
    "content": "/*\nCopyright 2014 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fuzz is a library for populating go objects with random values.\npackage fuzz\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/fuzz.go",
    "content": "/*\nCopyright 2014 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fuzz\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"time\"\n)\n\n// fuzzFuncMap is a map from a type to a fuzzFunc that handles that type.\ntype fuzzFuncMap map[reflect.Type]reflect.Value\n\n// Fuzzer knows how to fill any object with random fields.\ntype Fuzzer struct {\n\tfuzzFuncs         fuzzFuncMap\n\tdefaultFuzzFuncs  fuzzFuncMap\n\tr                 *rand.Rand\n\tnilChance         float64\n\tminElements       int\n\tmaxElements       int\n\tmaxDepth          int\n\tskipFieldPatterns []*regexp.Regexp\n}\n\n// New returns a new Fuzzer. Customize your Fuzzer further by calling Funcs,\n// RandSource, NilChance, or NumElements in any order.\nfunc New() *Fuzzer {\n\treturn NewWithSeed(time.Now().UnixNano())\n}\n\nfunc NewWithSeed(seed int64) *Fuzzer {\n\tf := &Fuzzer{\n\t\tdefaultFuzzFuncs: fuzzFuncMap{\n\t\t\treflect.TypeOf(&time.Time{}): reflect.ValueOf(fuzzTime),\n\t\t},\n\n\t\tfuzzFuncs:   fuzzFuncMap{},\n\t\tr:           rand.New(rand.NewSource(seed)),\n\t\tnilChance:   .2,\n\t\tminElements: 1,\n\t\tmaxElements: 10,\n\t\tmaxDepth:    100,\n\t}\n\treturn f\n}\n\n// Funcs adds each entry in fuzzFuncs as a custom fuzzing function.\n//\n// Each entry in fuzzFuncs must be a function taking two parameters.\n// The first parameter must be a pointer or map. It is the variable that\n// function will fill with random data. The second parameter must be a\n// fuzz.Continue, which will provide a source of randomness and a way\n// to automatically continue fuzzing smaller pieces of the first parameter.\n//\n// These functions are called sensibly, e.g., if you wanted custom string\n// fuzzing, the function `func(s *string, c fuzz.Continue)` would get\n// called and passed the address of strings. Maps and pointers will always\n// be made/new'd for you, ignoring the NilChange option. For slices, it\n// doesn't make much sense to  pre-create them--Fuzzer doesn't know how\n// long you want your slice--so take a pointer to a slice, and make it\n// yourself. (If you don't want your map/pointer type pre-made, take a\n// pointer to it, and make it yourself.) See the examples for a range of\n// custom functions.\nfunc (f *Fuzzer) Funcs(fuzzFuncs ...interface{}) *Fuzzer {\n\tfor i := range fuzzFuncs {\n\t\tv := reflect.ValueOf(fuzzFuncs[i])\n\t\tif v.Kind() != reflect.Func {\n\t\t\tpanic(\"Need only funcs!\")\n\t\t}\n\t\tt := v.Type()\n\t\tif t.NumIn() != 2 || t.NumOut() != 0 {\n\t\t\tpanic(\"Need 2 in and 0 out params!\")\n\t\t}\n\t\targT := t.In(0)\n\t\tswitch argT.Kind() {\n\t\tcase reflect.Ptr, reflect.Map:\n\t\tdefault:\n\t\t\tpanic(\"fuzzFunc must take pointer or map type\")\n\t\t}\n\t\tif t.In(1) != reflect.TypeOf(Continue{}) {\n\t\t\tpanic(\"fuzzFunc's second parameter must be type fuzz.Continue\")\n\t\t}\n\t\tf.fuzzFuncs[argT] = v\n\t}\n\treturn f\n}\n\n// RandSource causes f to get values from the given source of randomness.\n// Use if you want deterministic fuzzing.\nfunc (f *Fuzzer) RandSource(s rand.Source) *Fuzzer {\n\tf.r = rand.New(s)\n\treturn f\n}\n\n// NilChance sets the probability of creating a nil pointer, map, or slice to\n// 'p'. 'p' should be between 0 (no nils) and 1 (all nils), inclusive.\nfunc (f *Fuzzer) NilChance(p float64) *Fuzzer {\n\tif p < 0 || p > 1 {\n\t\tpanic(\"p should be between 0 and 1, inclusive.\")\n\t}\n\tf.nilChance = p\n\treturn f\n}\n\n// NumElements sets the minimum and maximum number of elements that will be\n// added to a non-nil map or slice.\nfunc (f *Fuzzer) NumElements(atLeast, atMost int) *Fuzzer {\n\tif atLeast > atMost {\n\t\tpanic(\"atLeast must be <= atMost\")\n\t}\n\tif atLeast < 0 {\n\t\tpanic(\"atLeast must be >= 0\")\n\t}\n\tf.minElements = atLeast\n\tf.maxElements = atMost\n\treturn f\n}\n\nfunc (f *Fuzzer) genElementCount() int {\n\tif f.minElements == f.maxElements {\n\t\treturn f.minElements\n\t}\n\treturn f.minElements + f.r.Intn(f.maxElements-f.minElements+1)\n}\n\nfunc (f *Fuzzer) genShouldFill() bool {\n\treturn f.r.Float64() > f.nilChance\n}\n\n// MaxDepth sets the maximum number of recursive fuzz calls that will be made\n// before stopping.  This includes struct members, pointers, and map and slice\n// elements.\nfunc (f *Fuzzer) MaxDepth(d int) *Fuzzer {\n\tf.maxDepth = d\n\treturn f\n}\n\n// Skip fields which match the supplied pattern. Call this multiple times if needed\n// This is useful to skip XXX_ fields generated by protobuf\nfunc (f *Fuzzer) SkipFieldsWithPattern(pattern *regexp.Regexp) *Fuzzer {\n\tf.skipFieldPatterns = append(f.skipFieldPatterns, pattern)\n\treturn f\n}\n\n// Fuzz recursively fills all of obj's fields with something random.  First\n// this tries to find a custom fuzz function (see Funcs).  If there is no\n// custom function this tests whether the object implements fuzz.Interface and,\n// if so, calls Fuzz on it to fuzz itself.  If that fails, this will see if\n// there is a default fuzz function provided by this package.  If all of that\n// fails, this will generate random values for all primitive fields and then\n// recurse for all non-primitives.\n//\n// This is safe for cyclic or tree-like structs, up to a limit.  Use the\n// MaxDepth method to adjust how deep you need it to recurse.\n//\n// obj must be a pointer. Only exported (public) fields can be set (thanks,\n// golang :/ ) Intended for tests, so will panic on bad input or unimplemented\n// fields.\nfunc (f *Fuzzer) Fuzz(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tf.fuzzWithContext(v, 0)\n}\n\n// FuzzNoCustom is just like Fuzz, except that any custom fuzz function for\n// obj's type will not be called and obj will not be tested for fuzz.Interface\n// conformance.  This applies only to obj and not other instances of obj's\n// type.\n// Not safe for cyclic or tree-like structs!\n// obj must be a pointer. Only exported (public) fields can be set (thanks, golang :/ )\n// Intended for tests, so will panic on bad input or unimplemented fields.\nfunc (f *Fuzzer) FuzzNoCustom(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tf.fuzzWithContext(v, flagNoCustomFuzz)\n}\n\nconst (\n\t// Do not try to find a custom fuzz function.  Does not apply recursively.\n\tflagNoCustomFuzz uint64 = 1 << iota\n)\n\nfunc (f *Fuzzer) fuzzWithContext(v reflect.Value, flags uint64) {\n\tfc := &fuzzerContext{fuzzer: f}\n\tfc.doFuzz(v, flags)\n}\n\n// fuzzerContext carries context about a single fuzzing run, which lets Fuzzer\n// be thread-safe.\ntype fuzzerContext struct {\n\tfuzzer   *Fuzzer\n\tcurDepth int\n}\n\nfunc (fc *fuzzerContext) doFuzz(v reflect.Value, flags uint64) {\n\tif fc.curDepth >= fc.fuzzer.maxDepth {\n\t\treturn\n\t}\n\tfc.curDepth++\n\tdefer func() { fc.curDepth-- }()\n\n\tif !v.CanSet() {\n\t\treturn\n\t}\n\n\tif flags&flagNoCustomFuzz == 0 {\n\t\t// Check for both pointer and non-pointer custom functions.\n\t\tif v.CanAddr() && fc.tryCustom(v.Addr()) {\n\t\t\treturn\n\t\t}\n\t\tif fc.tryCustom(v) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif fn, ok := fillFuncMap[v.Kind()]; ok {\n\t\tfn(v, fc.fuzzer.r)\n\t\treturn\n\t}\n\tswitch v.Kind() {\n\tcase reflect.Map:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tv.Set(reflect.MakeMap(v.Type()))\n\t\t\tn := fc.fuzzer.genElementCount()\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tkey := reflect.New(v.Type().Key()).Elem()\n\t\t\t\tfc.doFuzz(key, 0)\n\t\t\t\tval := reflect.New(v.Type().Elem()).Elem()\n\t\t\t\tfc.doFuzz(val, 0)\n\t\t\t\tv.SetMapIndex(key, val)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Ptr:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\tfc.doFuzz(v.Elem(), 0)\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Slice:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tn := fc.fuzzer.genElementCount()\n\t\t\tv.Set(reflect.MakeSlice(v.Type(), n, n))\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tfc.doFuzz(v.Index(i), 0)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Array:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tn := v.Len()\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tfc.doFuzz(v.Index(i), 0)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Struct:\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tskipField := false\n\t\t\tfieldName := v.Type().Field(i).Name\n\t\t\tfor _, pattern := range fc.fuzzer.skipFieldPatterns {\n\t\t\t\tif pattern.MatchString(fieldName) {\n\t\t\t\t\tskipField = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !skipField {\n\t\t\t\tfc.doFuzz(v.Field(i), 0)\n\t\t\t}\n\t\t}\n\tcase reflect.Chan:\n\t\tfallthrough\n\tcase reflect.Func:\n\t\tfallthrough\n\tcase reflect.Interface:\n\t\tfallthrough\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"Can't handle %#v\", v.Interface()))\n\t}\n}\n\n// tryCustom searches for custom handlers, and returns true iff it finds a match\n// and successfully randomizes v.\nfunc (fc *fuzzerContext) tryCustom(v reflect.Value) bool {\n\t// First: see if we have a fuzz function for it.\n\tdoCustom, ok := fc.fuzzer.fuzzFuncs[v.Type()]\n\tif !ok {\n\t\t// Second: see if it can fuzz itself.\n\t\tif v.CanInterface() {\n\t\t\tintf := v.Interface()\n\t\t\tif fuzzable, ok := intf.(Interface); ok {\n\t\t\t\tfuzzable.Fuzz(Continue{fc: fc, Rand: fc.fuzzer.r})\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t// Finally: see if there is a default fuzz function.\n\t\tdoCustom, ok = fc.fuzzer.defaultFuzzFuncs[v.Type()]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tswitch v.Kind() {\n\tcase reflect.Ptr:\n\t\tif v.IsNil() {\n\t\t\tif !v.CanSet() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\tif !v.CanSet() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tv.Set(reflect.MakeMap(v.Type()))\n\t\t}\n\tdefault:\n\t\treturn false\n\t}\n\n\tdoCustom.Call([]reflect.Value{v, reflect.ValueOf(Continue{\n\t\tfc:   fc,\n\t\tRand: fc.fuzzer.r,\n\t})})\n\treturn true\n}\n\n// Interface represents an object that knows how to fuzz itself.  Any time we\n// find a type that implements this interface we will delegate the act of\n// fuzzing itself.\ntype Interface interface {\n\tFuzz(c Continue)\n}\n\n// Continue can be passed to custom fuzzing functions to allow them to use\n// the correct source of randomness and to continue fuzzing their members.\ntype Continue struct {\n\tfc *fuzzerContext\n\n\t// For convenience, Continue implements rand.Rand via embedding.\n\t// Use this for generating any randomness if you want your fuzzing\n\t// to be repeatable for a given seed.\n\t*rand.Rand\n}\n\n// Fuzz continues fuzzing obj. obj must be a pointer.\nfunc (c Continue) Fuzz(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tc.fc.doFuzz(v, 0)\n}\n\n// FuzzNoCustom continues fuzzing obj, except that any custom fuzz function for\n// obj's type will not be called and obj will not be tested for fuzz.Interface\n// conformance.  This applies only to obj and not other instances of obj's\n// type.\nfunc (c Continue) FuzzNoCustom(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tc.fc.doFuzz(v, flagNoCustomFuzz)\n}\n\n// RandString makes a random string up to 20 characters long. The returned string\n// may include a variety of (valid) UTF-8 encodings.\nfunc (c Continue) RandString() string {\n\treturn randString(c.Rand)\n}\n\n// RandUint64 makes random 64 bit numbers.\n// Weirdly, rand doesn't have a function that gives you 64 random bits.\nfunc (c Continue) RandUint64() uint64 {\n\treturn randUint64(c.Rand)\n}\n\n// RandBool returns true or false randomly.\nfunc (c Continue) RandBool() bool {\n\treturn randBool(c.Rand)\n}\n\nfunc fuzzInt(v reflect.Value, r *rand.Rand) {\n\tv.SetInt(int64(randUint64(r)))\n}\n\nfunc fuzzUint(v reflect.Value, r *rand.Rand) {\n\tv.SetUint(randUint64(r))\n}\n\nfunc fuzzTime(t *time.Time, c Continue) {\n\tvar sec, nsec int64\n\t// Allow for about 1000 years of random time values, which keeps things\n\t// like JSON parsing reasonably happy.\n\tsec = c.Rand.Int63n(1000 * 365 * 24 * 60 * 60)\n\tc.Fuzz(&nsec)\n\t*t = time.Unix(sec, nsec)\n}\n\nvar fillFuncMap = map[reflect.Kind]func(reflect.Value, *rand.Rand){\n\treflect.Bool: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetBool(randBool(r))\n\t},\n\treflect.Int:     fuzzInt,\n\treflect.Int8:    fuzzInt,\n\treflect.Int16:   fuzzInt,\n\treflect.Int32:   fuzzInt,\n\treflect.Int64:   fuzzInt,\n\treflect.Uint:    fuzzUint,\n\treflect.Uint8:   fuzzUint,\n\treflect.Uint16:  fuzzUint,\n\treflect.Uint32:  fuzzUint,\n\treflect.Uint64:  fuzzUint,\n\treflect.Uintptr: fuzzUint,\n\treflect.Float32: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetFloat(float64(r.Float32()))\n\t},\n\treflect.Float64: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetFloat(r.Float64())\n\t},\n\treflect.Complex64: func(v reflect.Value, r *rand.Rand) {\n\t\tpanic(\"unimplemented\")\n\t},\n\treflect.Complex128: func(v reflect.Value, r *rand.Rand) {\n\t\tpanic(\"unimplemented\")\n\t},\n\treflect.String: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetString(randString(r))\n\t},\n\treflect.UnsafePointer: func(v reflect.Value, r *rand.Rand) {\n\t\tpanic(\"unimplemented\")\n\t},\n}\n\n// randBool returns true or false randomly.\nfunc randBool(r *rand.Rand) bool {\n\tif r.Int()&1 == 1 {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype charRange struct {\n\tfirst, last rune\n}\n\n// choose returns a random unicode character from the given range, using the\n// given randomness source.\nfunc (r *charRange) choose(rand *rand.Rand) rune {\n\tcount := int64(r.last - r.first)\n\treturn r.first + rune(rand.Int63n(count))\n}\n\nvar unicodeRanges = []charRange{\n\t{' ', '~'},           // ASCII characters\n\t{'\\u00a0', '\\u02af'}, // Multi-byte encoded characters\n\t{'\\u4e00', '\\u9fff'}, // Common CJK (even longer encodings)\n}\n\n// randString makes a random string up to 20 characters long. The returned string\n// may include a variety of (valid) UTF-8 encodings.\nfunc randString(r *rand.Rand) string {\n\tn := r.Intn(20)\n\trunes := make([]rune, n)\n\tfor i := range runes {\n\t\trunes[i] = unicodeRanges[r.Intn(len(unicodeRanges))].choose(r)\n\t}\n\treturn string(runes)\n}\n\n// randUint64 makes random 64 bit numbers.\n// Weirdly, rand doesn't have a function that gives you 64 random bits.\nfunc randUint64(r *rand.Rand) uint64 {\n\treturn uint64(r.Uint32())<<32 | uint64(r.Uint32())\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CHANGELOG.md",
    "content": "# Changelog\n\n## [1.6.0](https://github.com/google/uuid/compare/v1.5.0...v1.6.0) (2024-01-16)\n\n\n### Features\n\n* add Max UUID constant ([#149](https://github.com/google/uuid/issues/149)) ([c58770e](https://github.com/google/uuid/commit/c58770eb495f55fe2ced6284f93c5158a62e53e3))\n\n\n### Bug Fixes\n\n* fix typo in version 7 uuid documentation ([#153](https://github.com/google/uuid/issues/153)) ([016b199](https://github.com/google/uuid/commit/016b199544692f745ffc8867b914129ecb47ef06))\n* Monotonicity in UUIDv7 ([#150](https://github.com/google/uuid/issues/150)) ([a2b2b32](https://github.com/google/uuid/commit/a2b2b32373ff0b1a312b7fdf6d38a977099698a6))\n\n## [1.5.0](https://github.com/google/uuid/compare/v1.4.0...v1.5.0) (2023-12-12)\n\n\n### Features\n\n* Validate UUID without creating new UUID ([#141](https://github.com/google/uuid/issues/141)) ([9ee7366](https://github.com/google/uuid/commit/9ee7366e66c9ad96bab89139418a713dc584ae29))\n\n## [1.4.0](https://github.com/google/uuid/compare/v1.3.1...v1.4.0) (2023-10-26)\n\n\n### Features\n\n* UUIDs slice type with Strings() convenience method ([#133](https://github.com/google/uuid/issues/133)) ([cd5fbbd](https://github.com/google/uuid/commit/cd5fbbdd02f3e3467ac18940e07e062be1f864b4))\n\n### Fixes\n\n* Clarify that Parse's job is to parse but not necessarily validate strings. (Documents current behavior)\n\n## [1.3.1](https://github.com/google/uuid/compare/v1.3.0...v1.3.1) (2023-08-18)\n\n\n### Bug Fixes\n\n* Use .EqualFold() to parse urn prefixed UUIDs ([#118](https://github.com/google/uuid/issues/118)) ([574e687](https://github.com/google/uuid/commit/574e6874943741fb99d41764c705173ada5293f0))\n\n## Changelog\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTING.md",
    "content": "# How to contribute\n\nWe definitely welcome patches and contribution to this project!\n\n### Tips\n\nCommits must be formatted according to the [Conventional Commits Specification](https://www.conventionalcommits.org).\n\nAlways try to include a test case! If it is not possible or not necessary,\nplease explain why in the pull request description.\n\n### Releasing\n\nCommits that would precipitate a SemVer change, as described in the Conventional\nCommits Specification, will trigger [`release-please`](https://github.com/google-github-actions/release-please-action)\nto create a release candidate pull request. Once submitted, `release-please`\nwill create a release.\n\nFor tips on how to work with `release-please`, see its documentation.\n\n### Legal requirements\n\nIn order to protect both you and ourselves, you will need to sign the\n[Contributor License Agreement](https://cla.developers.google.com/clas).\n\nYou may have already signed it for other Google projects.\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTORS",
    "content": "Paul Borman <borman@google.com>\nbmatsuo\nshawnps\ntheory\njboverfelt\ndsymonds\ncd1\nwallclockbuilder\ndansouza\n"
  },
  {
    "path": "vendor/github.com/google/uuid/LICENSE",
    "content": "Copyright (c) 2009,2014 Google Inc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/google/uuid/README.md",
    "content": "# uuid\nThe uuid package generates and inspects UUIDs based on\n[RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122)\nand DCE 1.1: Authentication and Security Services. \n\nThis package is based on the github.com/pborman/uuid package (previously named\ncode.google.com/p/go-uuid).  It differs from these earlier packages in that\na UUID is a 16 byte array rather than a byte slice.  One loss due to this\nchange is the ability to represent an invalid UUID (vs a NIL UUID).\n\n###### Install\n```sh\ngo get github.com/google/uuid\n```\n\n###### Documentation \n[![Go Reference](https://pkg.go.dev/badge/github.com/google/uuid.svg)](https://pkg.go.dev/github.com/google/uuid)\n\nFull `go doc` style documentation for the package can be viewed online without\ninstalling this package by using the GoDoc site here: \nhttp://pkg.go.dev/github.com/google/uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/dce.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"os\"\n)\n\n// A Domain represents a Version 2 domain\ntype Domain byte\n\n// Domain constants for DCE Security (Version 2) UUIDs.\nconst (\n\tPerson = Domain(0)\n\tGroup  = Domain(1)\n\tOrg    = Domain(2)\n)\n\n// NewDCESecurity returns a DCE Security (Version 2) UUID.\n//\n// The domain should be one of Person, Group or Org.\n// On a POSIX system the id should be the users UID for the Person\n// domain and the users GID for the Group.  The meaning of id for\n// the domain Org or on non-POSIX systems is site defined.\n//\n// For a given domain/id pair the same token may be returned for up to\n// 7 minutes and 10 seconds.\nfunc NewDCESecurity(domain Domain, id uint32) (UUID, error) {\n\tuuid, err := NewUUID()\n\tif err == nil {\n\t\tuuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2\n\t\tuuid[9] = byte(domain)\n\t\tbinary.BigEndian.PutUint32(uuid[0:], id)\n\t}\n\treturn uuid, err\n}\n\n// NewDCEPerson returns a DCE Security (Version 2) UUID in the person\n// domain with the id returned by os.Getuid.\n//\n//  NewDCESecurity(Person, uint32(os.Getuid()))\nfunc NewDCEPerson() (UUID, error) {\n\treturn NewDCESecurity(Person, uint32(os.Getuid()))\n}\n\n// NewDCEGroup returns a DCE Security (Version 2) UUID in the group\n// domain with the id returned by os.Getgid.\n//\n//  NewDCESecurity(Group, uint32(os.Getgid()))\nfunc NewDCEGroup() (UUID, error) {\n\treturn NewDCESecurity(Group, uint32(os.Getgid()))\n}\n\n// Domain returns the domain for a Version 2 UUID.  Domains are only defined\n// for Version 2 UUIDs.\nfunc (uuid UUID) Domain() Domain {\n\treturn Domain(uuid[9])\n}\n\n// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2\n// UUIDs.\nfunc (uuid UUID) ID() uint32 {\n\treturn binary.BigEndian.Uint32(uuid[0:4])\n}\n\nfunc (d Domain) String() string {\n\tswitch d {\n\tcase Person:\n\t\treturn \"Person\"\n\tcase Group:\n\t\treturn \"Group\"\n\tcase Org:\n\t\treturn \"Org\"\n\t}\n\treturn fmt.Sprintf(\"Domain%d\", int(d))\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/doc.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package uuid generates and inspects UUIDs.\n//\n// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security\n// Services.\n//\n// A UUID is a 16 byte (128 bit) array.  UUIDs may be used as keys to\n// maps or compared directly.\npackage uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/hash.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"crypto/md5\"\n\t\"crypto/sha1\"\n\t\"hash\"\n)\n\n// Well known namespace IDs and UUIDs\nvar (\n\tNameSpaceDNS  = Must(Parse(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceURL  = Must(Parse(\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceOID  = Must(Parse(\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceX500 = Must(Parse(\"6ba7b814-9dad-11d1-80b4-00c04fd430c8\"))\n\tNil           UUID // empty UUID, all zeros\n\n\t// The Max UUID is special form of UUID that is specified to have all 128 bits set to 1.\n\tMax = UUID{\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t}\n)\n\n// NewHash returns a new UUID derived from the hash of space concatenated with\n// data generated by h.  The hash should be at least 16 byte in length.  The\n// first 16 bytes of the hash are used to form the UUID.  The version of the\n// UUID will be the lower 4 bits of version.  NewHash is used to implement\n// NewMD5 and NewSHA1.\nfunc NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {\n\th.Reset()\n\th.Write(space[:]) //nolint:errcheck\n\th.Write(data)     //nolint:errcheck\n\ts := h.Sum(nil)\n\tvar uuid UUID\n\tcopy(uuid[:], s)\n\tuuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant\n\treturn uuid\n}\n\n// NewMD5 returns a new MD5 (Version 3) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(md5.New(), space, data, 3)\nfunc NewMD5(space UUID, data []byte) UUID {\n\treturn NewHash(md5.New(), space, data, 3)\n}\n\n// NewSHA1 returns a new SHA1 (Version 5) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(sha1.New(), space, data, 5)\nfunc NewSHA1(space UUID, data []byte) UUID {\n\treturn NewHash(sha1.New(), space, data, 5)\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/marshal.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"fmt\"\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (uuid UUID) MarshalText() ([]byte, error) {\n\tvar js [36]byte\n\tencodeHex(js[:], uuid)\n\treturn js[:], nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (uuid *UUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*uuid = id\n\treturn nil\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (uuid UUID) MarshalBinary() ([]byte, error) {\n\treturn uuid[:], nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (uuid *UUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(uuid[:], data)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"sync\"\n)\n\nvar (\n\tnodeMu sync.Mutex\n\tifname string  // name of interface being used\n\tnodeID [6]byte // hardware for version 1 UUIDs\n\tzeroID [6]byte // nodeID with only 0's\n)\n\n// NodeInterface returns the name of the interface from which the NodeID was\n// derived.  The interface \"user\" is returned if the NodeID was set by\n// SetNodeID.\nfunc NodeInterface() string {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn ifname\n}\n\n// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.\n// If name is \"\" then the first usable interface found will be used or a random\n// Node ID will be generated.  If a named interface cannot be found then false\n// is returned.\n//\n// SetNodeInterface never fails when name is \"\".\nfunc SetNodeInterface(name string) bool {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn setNodeInterface(name)\n}\n\nfunc setNodeInterface(name string) bool {\n\tiname, addr := getHardwareInterface(name) // null implementation for js\n\tif iname != \"\" && addr != nil {\n\t\tifname = iname\n\t\tcopy(nodeID[:], addr)\n\t\treturn true\n\t}\n\n\t// We found no interfaces with a valid hardware address.  If name\n\t// does not specify a specific interface generate a random Node ID\n\t// (section 4.1.6)\n\tif name == \"\" {\n\t\tifname = \"random\"\n\t\trandomBits(nodeID[:])\n\t\treturn true\n\t}\n\treturn false\n}\n\n// NodeID returns a slice of a copy of the current Node ID, setting the Node ID\n// if not already set.\nfunc NodeID() []byte {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tnid := nodeID\n\treturn nid[:]\n}\n\n// SetNodeID sets the Node ID to be used for Version 1 UUIDs.  The first 6 bytes\n// of id are used.  If id is less than 6 bytes then false is returned and the\n// Node ID is not set.\nfunc SetNodeID(id []byte) bool {\n\tif len(id) < 6 {\n\t\treturn false\n\t}\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tcopy(nodeID[:], id)\n\tifname = \"user\"\n\treturn true\n}\n\n// NodeID returns the 6 byte node id encoded in uuid.  It returns nil if uuid is\n// not valid.  The NodeID is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) NodeID() []byte {\n\tvar node [6]byte\n\tcopy(node[:], uuid[10:])\n\treturn node[:]\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_js.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build js\n\npackage uuid\n\n// getHardwareInterface returns nil values for the JS version of the code.\n// This removes the \"net\" dependency, because it is not used in the browser.\n// Using the \"net\" library inflates the size of the transpiled JS code by 673k bytes.\nfunc getHardwareInterface(name string) (string, []byte) { return \"\", nil }\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_net.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !js\n\npackage uuid\n\nimport \"net\"\n\nvar interfaces []net.Interface // cached list of interfaces\n\n// getHardwareInterface returns the name and hardware address of interface name.\n// If name is \"\" then the name and hardware address of one of the system's\n// interfaces is returned.  If no interfaces are found (name does not exist or\n// there are no interfaces) then \"\", nil is returned.\n//\n// Only addresses of at least 6 bytes are returned.\nfunc getHardwareInterface(name string) (string, []byte) {\n\tif interfaces == nil {\n\t\tvar err error\n\t\tinterfaces, err = net.Interfaces()\n\t\tif err != nil {\n\t\t\treturn \"\", nil\n\t\t}\n\t}\n\tfor _, ifs := range interfaces {\n\t\tif len(ifs.HardwareAddr) >= 6 && (name == \"\" || name == ifs.Name) {\n\t\t\treturn ifs.Name, ifs.HardwareAddr\n\t\t}\n\t}\n\treturn \"\", nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/null.go",
    "content": "// Copyright 2021 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"bytes\"\n\t\"database/sql/driver\"\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\nvar jsonNull = []byte(\"null\")\n\n// NullUUID represents a UUID that may be null.\n// NullUUID implements the SQL driver.Scanner interface so\n// it can be used as a scan destination:\n//\n//  var u uuid.NullUUID\n//  err := db.QueryRow(\"SELECT name FROM foo WHERE id=?\", id).Scan(&u)\n//  ...\n//  if u.Valid {\n//     // use u.UUID\n//  } else {\n//     // NULL value\n//  }\n//\ntype NullUUID struct {\n\tUUID  UUID\n\tValid bool // Valid is true if UUID is not NULL\n}\n\n// Scan implements the SQL driver.Scanner interface.\nfunc (nu *NullUUID) Scan(value interface{}) error {\n\tif value == nil {\n\t\tnu.UUID, nu.Valid = Nil, false\n\t\treturn nil\n\t}\n\n\terr := nu.UUID.Scan(value)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\n\tnu.Valid = true\n\treturn nil\n}\n\n// Value implements the driver Valuer interface.\nfunc (nu NullUUID) Value() (driver.Value, error) {\n\tif !nu.Valid {\n\t\treturn nil, nil\n\t}\n\t// Delegate to UUID Value function\n\treturn nu.UUID.Value()\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (nu NullUUID) MarshalBinary() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID[:], nil\n\t}\n\n\treturn []byte(nil), nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (nu *NullUUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(nu.UUID[:], data)\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (nu NullUUID) MarshalText() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID.MarshalText()\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (nu *NullUUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\tnu.UUID = id\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (nu NullUUID) MarshalJSON() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn json.Marshal(nu.UUID)\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (nu *NullUUID) UnmarshalJSON(data []byte) error {\n\tif bytes.Equal(data, jsonNull) {\n\t\t*nu = NullUUID{}\n\t\treturn nil // valid null UUID\n\t}\n\terr := json.Unmarshal(data, &nu.UUID)\n\tnu.Valid = err == nil\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/sql.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"database/sql/driver\"\n\t\"fmt\"\n)\n\n// Scan implements sql.Scanner so UUIDs can be read from databases transparently.\n// Currently, database types that map to string and []byte are supported. Please\n// consult database-specific driver documentation for matching types.\nfunc (uuid *UUID) Scan(src interface{}) error {\n\tswitch src := src.(type) {\n\tcase nil:\n\t\treturn nil\n\n\tcase string:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif src == \"\" {\n\t\t\treturn nil\n\t\t}\n\n\t\t// see Parse for required string format\n\t\tu, err := Parse(src)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"Scan: %v\", err)\n\t\t}\n\n\t\t*uuid = u\n\n\tcase []byte:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif len(src) == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\t// assumes a simple slice of bytes if 16 bytes\n\t\t// otherwise attempts to parse\n\t\tif len(src) != 16 {\n\t\t\treturn uuid.Scan(string(src))\n\t\t}\n\t\tcopy((*uuid)[:], src)\n\n\tdefault:\n\t\treturn fmt.Errorf(\"Scan: unable to scan type %T into UUID\", src)\n\t}\n\n\treturn nil\n}\n\n// Value implements sql.Valuer so that UUIDs can be written to databases\n// transparently. Currently, UUIDs map to strings. Please consult\n// database-specific driver documentation for matching types.\nfunc (uuid UUID) Value() (driver.Value, error) {\n\treturn uuid.String(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/time.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"sync\"\n\t\"time\"\n)\n\n// A Time represents a time as the number of 100's of nanoseconds since 15 Oct\n// 1582.\ntype Time int64\n\nconst (\n\tlillian    = 2299160          // Julian day of 15 Oct 1582\n\tunix       = 2440587          // Julian day of 1 Jan 1970\n\tepoch      = unix - lillian   // Days between epochs\n\tg1582      = epoch * 86400    // seconds between epochs\n\tg1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs\n)\n\nvar (\n\ttimeMu   sync.Mutex\n\tlasttime uint64 // last time we returned\n\tclockSeq uint16 // clock sequence for this run\n\n\ttimeNow = time.Now // for testing\n)\n\n// UnixTime converts t the number of seconds and nanoseconds using the Unix\n// epoch of 1 Jan 1970.\nfunc (t Time) UnixTime() (sec, nsec int64) {\n\tsec = int64(t - g1582ns100)\n\tnsec = (sec % 10000000) * 100\n\tsec /= 10000000\n\treturn sec, nsec\n}\n\n// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and\n// clock sequence as well as adjusting the clock sequence as needed.  An error\n// is returned if the current time cannot be determined.\nfunc GetTime() (Time, uint16, error) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn getTime()\n}\n\nfunc getTime() (Time, uint16, error) {\n\tt := timeNow()\n\n\t// If we don't have a clock sequence already, set one.\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\tnow := uint64(t.UnixNano()/100) + g1582ns100\n\n\t// If time has gone backwards with this clock sequence then we\n\t// increment the clock sequence\n\tif now <= lasttime {\n\t\tclockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000\n\t}\n\tlasttime = now\n\treturn Time(now), clockSeq, nil\n}\n\n// ClockSequence returns the current clock sequence, generating one if not\n// already set.  The clock sequence is only used for Version 1 UUIDs.\n//\n// The uuid package does not use global static storage for the clock sequence or\n// the last time a UUID was generated.  Unless SetClockSequence is used, a new\n// random clock sequence is generated the first time a clock sequence is\n// requested by ClockSequence, GetTime, or NewUUID.  (section 4.2.1.1)\nfunc ClockSequence() int {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn clockSequence()\n}\n\nfunc clockSequence() int {\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\treturn int(clockSeq & 0x3fff)\n}\n\n// SetClockSequence sets the clock sequence to the lower 14 bits of seq.  Setting to\n// -1 causes a new sequence to be generated.\nfunc SetClockSequence(seq int) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\tsetClockSequence(seq)\n}\n\nfunc setClockSequence(seq int) {\n\tif seq == -1 {\n\t\tvar b [2]byte\n\t\trandomBits(b[:]) // clock sequence\n\t\tseq = int(b[0])<<8 | int(b[1])\n\t}\n\toldSeq := clockSeq\n\tclockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant\n\tif oldSeq != clockSeq {\n\t\tlasttime = 0\n\t}\n}\n\n// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in\n// uuid.  The time is only defined for version 1, 2, 6 and 7 UUIDs.\nfunc (uuid UUID) Time() Time {\n\tvar t Time\n\tswitch uuid.Version() {\n\tcase 6:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8]) // Ignore uuid[6] version b0110\n\t\tt = Time(time)\n\tcase 7:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8])\n\t\tt = Time((time>>16)*10000 + g1582ns100)\n\tdefault: // forward compatible\n\t\ttime := int64(binary.BigEndian.Uint32(uuid[0:4]))\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48\n\t\tt = Time(time)\n\t}\n\treturn t\n}\n\n// ClockSequence returns the clock sequence encoded in uuid.\n// The clock sequence is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) ClockSequence() int {\n\treturn int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/util.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"io\"\n)\n\n// randomBits completely fills slice b with random data.\nfunc randomBits(b []byte) {\n\tif _, err := io.ReadFull(rander, b); err != nil {\n\t\tpanic(err.Error()) // rand should never fail\n\t}\n}\n\n// xvalues returns the value of a byte as a hexadecimal digit or 255.\nvar xvalues = [256]byte{\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n}\n\n// xtob converts hex characters x1 and x2 into a byte.\nfunc xtob(x1, x2 byte) (byte, bool) {\n\tb1 := xvalues[x1]\n\tb2 := xvalues[x2]\n\treturn (b1 << 4) | b2, b1 != 255 && b2 != 255\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/uuid.go",
    "content": "// Copyright 2018 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC\n// 4122.\ntype UUID [16]byte\n\n// A Version represents a UUID's version.\ntype Version byte\n\n// A Variant represents a UUID's variant.\ntype Variant byte\n\n// Constants returned by Variant.\nconst (\n\tInvalid   = Variant(iota) // Invalid UUID\n\tRFC4122                   // The variant specified in RFC4122\n\tReserved                  // Reserved, NCS backward compatibility.\n\tMicrosoft                 // Reserved, Microsoft Corporation backward compatibility.\n\tFuture                    // Reserved for future definition.\n)\n\nconst randPoolSize = 16 * 16\n\nvar (\n\trander      = rand.Reader // random function\n\tpoolEnabled = false\n\tpoolMu      sync.Mutex\n\tpoolPos     = randPoolSize     // protected with poolMu\n\tpool        [randPoolSize]byte // protected with poolMu\n)\n\ntype invalidLengthError struct{ len int }\n\nfunc (err invalidLengthError) Error() string {\n\treturn fmt.Sprintf(\"invalid UUID length: %d\", err.len)\n}\n\n// IsInvalidLengthError is matcher function for custom error invalidLengthError\nfunc IsInvalidLengthError(err error) bool {\n\t_, ok := err.(invalidLengthError)\n\treturn ok\n}\n\n// Parse decodes s into a UUID or returns an error if it cannot be parsed.  Both\n// the standard UUID forms defined in RFC 4122\n// (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) are decoded.  In addition,\n// Parse accepts non-standard strings such as the raw hex encoding\n// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx and 38 byte \"Microsoft style\" encodings,\n// e.g.  {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.  Only the middle 36 bytes are\n// examined in the latter case.  Parse should not be used to validate strings as\n// it parses non-standard encodings as indicated above.\nfunc Parse(s string) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(s) {\n\t// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36:\n\n\t// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\tcase 36 + 2:\n\t\ts = s[1:]\n\n\t// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\tcase 32:\n\t\tvar ok bool\n\t\tfor i := range uuid {\n\t\t\tuuid[i], ok = xtob(s[i*2], s[i*2+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(s)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(s[x], s[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// ParseBytes is like Parse, except it parses a byte slice instead of a string.\nfunc ParseBytes(b []byte) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(b) {\n\tcase 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\t\tif !bytes.EqualFold(b[:9], []byte(\"urn:uuid:\")) {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", b[:9])\n\t\t}\n\t\tb = b[9:]\n\tcase 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\t\tb = b[1:]\n\tcase 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\t\tvar ok bool\n\t\tfor i := 0; i < 32; i += 2 {\n\t\t\tuuid[i/2], ok = xtob(b[i], b[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(b)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(b[x], b[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// MustParse is like Parse but panics if the string cannot be parsed.\n// It simplifies safe initialization of global variables holding compiled UUIDs.\nfunc MustParse(s string) UUID {\n\tuuid, err := Parse(s)\n\tif err != nil {\n\t\tpanic(`uuid: Parse(` + s + `): ` + err.Error())\n\t}\n\treturn uuid\n}\n\n// FromBytes creates a new UUID from a byte slice. Returns an error if the slice\n// does not have a length of 16. The bytes are copied from the slice.\nfunc FromBytes(b []byte) (uuid UUID, err error) {\n\terr = uuid.UnmarshalBinary(b)\n\treturn uuid, err\n}\n\n// Must returns uuid if err is nil and panics otherwise.\nfunc Must(uuid UUID, err error) UUID {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uuid\n}\n\n// Validate returns an error if s is not a properly formatted UUID in one of the following formats:\n//   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n//   {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n// It returns an error if the format is invalid, otherwise nil.\nfunc Validate(s string) error {\n\tswitch len(s) {\n\t// Standard UUID format\n\tcase 36:\n\n\t// UUID with \"urn:uuid:\" prefix\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// UUID enclosed in braces\n\tcase 36 + 2:\n\t\tif s[0] != '{' || s[len(s)-1] != '}' {\n\t\t\treturn fmt.Errorf(\"invalid bracketed UUID format\")\n\t\t}\n\t\ts = s[1 : len(s)-1]\n\n\t// UUID without hyphens\n\tcase 32:\n\t\tfor i := 0; i < len(s); i += 2 {\n\t\t\t_, ok := xtob(s[i], s[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn invalidLengthError{len(s)}\n\t}\n\n\t// Check for standard UUID format\n\tif len(s) == 36 {\n\t\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t}\n\t\tfor _, x := range []int{0, 2, 4, 6, 9, 11, 14, 16, 19, 21, 24, 26, 28, 30, 32, 34} {\n\t\t\tif _, ok := xtob(s[x], s[x+1]); !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n// , or \"\" if uuid is invalid.\nfunc (uuid UUID) String() string {\n\tvar buf [36]byte\n\tencodeHex(buf[:], uuid)\n\treturn string(buf[:])\n}\n\n// URN returns the RFC 2141 URN form of uuid,\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,  or \"\" if uuid is invalid.\nfunc (uuid UUID) URN() string {\n\tvar buf [36 + 9]byte\n\tcopy(buf[:], \"urn:uuid:\")\n\tencodeHex(buf[9:], uuid)\n\treturn string(buf[:])\n}\n\nfunc encodeHex(dst []byte, uuid UUID) {\n\thex.Encode(dst, uuid[:4])\n\tdst[8] = '-'\n\thex.Encode(dst[9:13], uuid[4:6])\n\tdst[13] = '-'\n\thex.Encode(dst[14:18], uuid[6:8])\n\tdst[18] = '-'\n\thex.Encode(dst[19:23], uuid[8:10])\n\tdst[23] = '-'\n\thex.Encode(dst[24:], uuid[10:])\n}\n\n// Variant returns the variant encoded in uuid.\nfunc (uuid UUID) Variant() Variant {\n\tswitch {\n\tcase (uuid[8] & 0xc0) == 0x80:\n\t\treturn RFC4122\n\tcase (uuid[8] & 0xe0) == 0xc0:\n\t\treturn Microsoft\n\tcase (uuid[8] & 0xe0) == 0xe0:\n\t\treturn Future\n\tdefault:\n\t\treturn Reserved\n\t}\n}\n\n// Version returns the version of uuid.\nfunc (uuid UUID) Version() Version {\n\treturn Version(uuid[6] >> 4)\n}\n\nfunc (v Version) String() string {\n\tif v > 15 {\n\t\treturn fmt.Sprintf(\"BAD_VERSION_%d\", v)\n\t}\n\treturn fmt.Sprintf(\"VERSION_%d\", v)\n}\n\nfunc (v Variant) String() string {\n\tswitch v {\n\tcase RFC4122:\n\t\treturn \"RFC4122\"\n\tcase Reserved:\n\t\treturn \"Reserved\"\n\tcase Microsoft:\n\t\treturn \"Microsoft\"\n\tcase Future:\n\t\treturn \"Future\"\n\tcase Invalid:\n\t\treturn \"Invalid\"\n\t}\n\treturn fmt.Sprintf(\"BadVariant%d\", int(v))\n}\n\n// SetRand sets the random number generator to r, which implements io.Reader.\n// If r.Read returns an error when the package requests random data then\n// a panic will be issued.\n//\n// Calling SetRand with nil sets the random number generator to the default\n// generator.\nfunc SetRand(r io.Reader) {\n\tif r == nil {\n\t\trander = rand.Reader\n\t\treturn\n\t}\n\trander = r\n}\n\n// EnableRandPool enables internal randomness pool used for Random\n// (Version 4) UUID generation. The pool contains random bytes read from\n// the random number generator on demand in batches. Enabling the pool\n// may improve the UUID generation throughput significantly.\n//\n// Since the pool is stored on the Go heap, this feature may be a bad fit\n// for security sensitive applications.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc EnableRandPool() {\n\tpoolEnabled = true\n}\n\n// DisableRandPool disables the randomness pool if it was previously\n// enabled with EnableRandPool.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc DisableRandPool() {\n\tpoolEnabled = false\n\tdefer poolMu.Unlock()\n\tpoolMu.Lock()\n\tpoolPos = randPoolSize\n}\n\n// UUIDs is a slice of UUID types.\ntype UUIDs []UUID\n\n// Strings returns a string slice containing the string form of each UUID in uuids.\nfunc (uuids UUIDs) Strings() []string {\n\tvar uuidStrs = make([]string, len(uuids))\n\tfor i, uuid := range uuids {\n\t\tuuidStrs[i] = uuid.String()\n\t}\n\treturn uuidStrs\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version1.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n)\n\n// NewUUID returns a Version 1 UUID based on the current NodeID and clock\n// sequence, and the current time.  If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically.  If the NodeID cannot\n// be set NewUUID returns nil.  If clock sequence has not been set by\n// SetClockSequence then it will be set automatically.  If GetTime fails to\n// return the current NewUUID returns nil and an error.\n//\n// In most cases, New should be used.\nfunc NewUUID() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\ttimeLow := uint32(now & 0xffffffff)\n\ttimeMid := uint16((now >> 32) & 0xffff)\n\ttimeHi := uint16((now >> 48) & 0x0fff)\n\ttimeHi |= 0x1000 // Version 1\n\n\tbinary.BigEndian.PutUint32(uuid[0:], timeLow)\n\tbinary.BigEndian.PutUint16(uuid[4:], timeMid)\n\tbinary.BigEndian.PutUint16(uuid[6:], timeHi)\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version4.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"io\"\n\n// New creates a new random UUID or panics.  New is equivalent to\n// the expression\n//\n//    uuid.Must(uuid.NewRandom())\nfunc New() UUID {\n\treturn Must(NewRandom())\n}\n\n// NewString creates a new random UUID and returns it as a string or panics.\n// NewString is equivalent to the expression\n//\n//    uuid.New().String()\nfunc NewString() string {\n\treturn Must(NewRandom()).String()\n}\n\n// NewRandom returns a Random (Version 4) UUID.\n//\n// The strength of the UUIDs is based on the strength of the crypto/rand\n// package.\n//\n// Uses the randomness pool if it was enabled with EnableRandPool.\n//\n// A note about uniqueness derived from the UUID Wikipedia entry:\n//\n//  Randomly generated UUIDs have 122 random bits.  One's annual risk of being\n//  hit by a meteorite is estimated to be one chance in 17 billion, that\n//  means the probability is about 0.00000000006 (6 × 10−11),\n//  equivalent to the odds of creating a few tens of trillions of UUIDs in a\n//  year and having one duplicate.\nfunc NewRandom() (UUID, error) {\n\tif !poolEnabled {\n\t\treturn NewRandomFromReader(rander)\n\t}\n\treturn newRandomFromPool()\n}\n\n// NewRandomFromReader returns a UUID based on bytes read from a given io.Reader.\nfunc NewRandomFromReader(r io.Reader) (UUID, error) {\n\tvar uuid UUID\n\t_, err := io.ReadFull(r, uuid[:])\n\tif err != nil {\n\t\treturn Nil, err\n\t}\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n\nfunc newRandomFromPool() (UUID, error) {\n\tvar uuid UUID\n\tpoolMu.Lock()\n\tif poolPos == randPoolSize {\n\t\t_, err := io.ReadFull(rander, pool[:])\n\t\tif err != nil {\n\t\t\tpoolMu.Unlock()\n\t\t\treturn Nil, err\n\t\t}\n\t\tpoolPos = 0\n\t}\n\tcopy(uuid[:], pool[poolPos:(poolPos+16)])\n\tpoolPos += 16\n\tpoolMu.Unlock()\n\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version6.go",
    "content": "// Copyright 2023 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"encoding/binary\"\n\n// UUID version 6 is a field-compatible version of UUIDv1, reordered for improved DB locality.\n// It is expected that UUIDv6 will primarily be used in contexts where there are existing v1 UUIDs.\n// Systems that do not involve legacy UUIDv1 SHOULD consider using UUIDv7 instead.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#uuidv6\n//\n// NewV6 returns a Version 6 UUID based on the current NodeID and clock\n// sequence, and the current time. If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically. If the NodeID cannot\n// be set NewV6 set NodeID is random bits automatically . If clock sequence has not been set by\n// SetClockSequence then it will be set automatically. If GetTime fails to\n// return the current NewV6 returns Nil and an error.\nfunc NewV6() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\t/*\n\t    0                   1                   2                   3\n\t    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                           time_high                           |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |           time_mid            |      time_low_and_version     |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |clk_seq_hi_res |  clk_seq_low  |         node (0-1)            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                         node (2-5)                            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\n\tbinary.BigEndian.PutUint64(uuid[0:], uint64(now))\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tuuid[6] = 0x60 | (uuid[6] & 0x0F)\n\tuuid[8] = 0x80 | (uuid[8] & 0x3F)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version7.go",
    "content": "// Copyright 2023 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"io\"\n)\n\n// UUID version 7 features a time-ordered value field derived from the widely\n// implemented and well known Unix Epoch timestamp source,\n// the number of milliseconds seconds since midnight 1 Jan 1970 UTC, leap seconds excluded.\n// As well as improved entropy characteristics over versions 1 or 6.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#name-uuid-version-7\n//\n// Implementations SHOULD utilize UUID version 7 over UUID version 1 and 6 if possible.\n//\n// NewV7 returns a Version 7 UUID based on the current time(Unix Epoch).\n// Uses the randomness pool if it was enabled with EnableRandPool.\n// On error, NewV7 returns Nil and an error\nfunc NewV7() (UUID, error) {\n\tuuid, err := NewRandom()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// NewV7FromReader returns a Version 7 UUID based on the current time(Unix Epoch).\n// it use NewRandomFromReader fill random bits.\n// On error, NewV7FromReader returns Nil and an error.\nfunc NewV7FromReader(r io.Reader) (UUID, error) {\n\tuuid, err := NewRandomFromReader(r)\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// makeV7 fill 48 bits time (uuid[0] - uuid[5]), set version b0111 (uuid[6])\n// uuid[8] already has the right version number (Variant is 10)\n// see function NewV7 and NewV7FromReader\nfunc makeV7(uuid []byte) {\n\t/*\n\t\t 0                   1                   2                   3\n\t\t 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                           unix_ts_ms                          |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|          unix_ts_ms           |  ver  |  rand_a (12 bit seq)  |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|var|                        rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                            rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\t_ = uuid[15] // bounds check\n\n\tt, s := getV7Time()\n\n\tuuid[0] = byte(t >> 40)\n\tuuid[1] = byte(t >> 32)\n\tuuid[2] = byte(t >> 24)\n\tuuid[3] = byte(t >> 16)\n\tuuid[4] = byte(t >> 8)\n\tuuid[5] = byte(t)\n\n\tuuid[6] = 0x70 | (0x0F & byte(s>>8))\n\tuuid[7] = byte(s)\n}\n\n// lastV7time is the last time we returned stored as:\n//\n//\t52 bits of time in milliseconds since epoch\n//\t12 bits of (fractional nanoseconds) >> 8\nvar lastV7time int64\n\nconst nanoPerMilli = 1000000\n\n// getV7Time returns the time in milliseconds and nanoseconds / 256.\n// The returned (milli << 12 + seq) is guarenteed to be greater than\n// (milli << 12 + seq) returned by any previous call to getV7Time.\nfunc getV7Time() (milli, seq int64) {\n\ttimeMu.Lock()\n\tdefer timeMu.Unlock()\n\n\tnano := timeNow().UnixNano()\n\tmilli = nano / nanoPerMilli\n\t// Sequence number is between 0 and 3906 (nanoPerMilli>>8)\n\tseq = (nano - milli*nanoPerMilli) >> 8\n\tnow := milli<<12 + seq\n\tif now <= lastV7time {\n\t\tnow = lastV7time + 1\n\t\tmilli = now >> 12\n\t\tseq = now & 0xfff\n\t}\n\tlastV7time = now\n\treturn milli, seq\n}\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/README.md",
    "content": "Docs: https://godoc.org/github.com/josharian/intern\n\nSee also [Go issue 5160](https://golang.org/issue/5160).\n\nLicense: MIT\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/intern.go",
    "content": "// Package intern interns strings.\n// Interning is best effort only.\n// Interned strings may be removed automatically\n// at any time without notification.\n// All functions may be called concurrently\n// with themselves and each other.\npackage intern\n\nimport \"sync\"\n\nvar (\n\tpool sync.Pool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn make(map[string]string)\n\t\t},\n\t}\n)\n\n// String returns s, interned.\nfunc String(s string) string {\n\tm := pool.Get().(map[string]string)\n\tc, ok := m[s]\n\tif ok {\n\t\tpool.Put(m)\n\t\treturn c\n\t}\n\tm[s] = s\n\tpool.Put(m)\n\treturn s\n}\n\n// Bytes returns b converted to a string, interned.\nfunc Bytes(b []byte) string {\n\tm := pool.Get().(map[string]string)\n\tc, ok := m[string(b)]\n\tif ok {\n\t\tpool.Put(m)\n\t\treturn c\n\t}\n\ts := string(b)\n\tm[s] = s\n\tpool.Put(m)\n\treturn s\n}\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/license.md",
    "content": "MIT License\n\nCopyright (c) 2019 Josh Bleecher Snyder\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/LICENSE",
    "content": "Copyright (c) 2016 Mail.Ru Group\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/buffer/pool.go",
    "content": "// Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to\n// reduce copying and to allow reuse of individual chunks.\npackage buffer\n\nimport (\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n)\n\n// PoolConfig contains configuration for the allocation and reuse strategy.\ntype PoolConfig struct {\n\tStartSize  int // Minimum chunk size that is allocated.\n\tPooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead.\n\tMaxSize    int // Maximum chunk size that will be allocated.\n}\n\nvar config = PoolConfig{\n\tStartSize:  128,\n\tPooledSize: 512,\n\tMaxSize:    32768,\n}\n\n// Reuse pool: chunk size -> pool.\nvar buffers = map[int]*sync.Pool{}\n\nfunc initBuffers() {\n\tfor l := config.PooledSize; l <= config.MaxSize; l *= 2 {\n\t\tbuffers[l] = new(sync.Pool)\n\t}\n}\n\nfunc init() {\n\tinitBuffers()\n}\n\n// Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.\nfunc Init(cfg PoolConfig) {\n\tconfig = cfg\n\tinitBuffers()\n}\n\n// putBuf puts a chunk to reuse pool if it can be reused.\nfunc putBuf(buf []byte) {\n\tsize := cap(buf)\n\tif size < config.PooledSize {\n\t\treturn\n\t}\n\tif c := buffers[size]; c != nil {\n\t\tc.Put(buf[:0])\n\t}\n}\n\n// getBuf gets a chunk from reuse pool or creates a new one if reuse failed.\nfunc getBuf(size int) []byte {\n\tif size >= config.PooledSize {\n\t\tif c := buffers[size]; c != nil {\n\t\t\tv := c.Get()\n\t\t\tif v != nil {\n\t\t\t\treturn v.([]byte)\n\t\t\t}\n\t\t}\n\t}\n\treturn make([]byte, 0, size)\n}\n\n// Buffer is a buffer optimized for serialization without extra copying.\ntype Buffer struct {\n\n\t// Buf is the current chunk that can be used for serialization.\n\tBuf []byte\n\n\ttoPool []byte\n\tbufs   [][]byte\n}\n\n// EnsureSpace makes sure that the current chunk contains at least s free bytes,\n// possibly creating a new chunk.\nfunc (b *Buffer) EnsureSpace(s int) {\n\tif cap(b.Buf)-len(b.Buf) < s {\n\t\tb.ensureSpaceSlow(s)\n\t}\n}\n\nfunc (b *Buffer) ensureSpaceSlow(s int) {\n\tl := len(b.Buf)\n\tif l > 0 {\n\t\tif cap(b.toPool) != cap(b.Buf) {\n\t\t\t// Chunk was reallocated, toPool can be pooled.\n\t\t\tputBuf(b.toPool)\n\t\t}\n\t\tif cap(b.bufs) == 0 {\n\t\t\tb.bufs = make([][]byte, 0, 8)\n\t\t}\n\t\tb.bufs = append(b.bufs, b.Buf)\n\t\tl = cap(b.toPool) * 2\n\t} else {\n\t\tl = config.StartSize\n\t}\n\n\tif l > config.MaxSize {\n\t\tl = config.MaxSize\n\t}\n\tb.Buf = getBuf(l)\n\tb.toPool = b.Buf\n}\n\n// AppendByte appends a single byte to buffer.\nfunc (b *Buffer) AppendByte(data byte) {\n\tb.EnsureSpace(1)\n\tb.Buf = append(b.Buf, data)\n}\n\n// AppendBytes appends a byte slice to buffer.\nfunc (b *Buffer) AppendBytes(data []byte) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendBytesSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendBytesSlow(data []byte) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// AppendString appends a string to buffer.\nfunc (b *Buffer) AppendString(data string) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendStringSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendStringSlow(data string) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// Size computes the size of a buffer by adding sizes of every chunk.\nfunc (b *Buffer) Size() int {\n\tsize := len(b.Buf)\n\tfor _, buf := range b.bufs {\n\t\tsize += len(buf)\n\t}\n\treturn size\n}\n\n// DumpTo outputs the contents of a buffer to a writer and resets the buffer.\nfunc (b *Buffer) DumpTo(w io.Writer) (written int, err error) {\n\tbufs := net.Buffers(b.bufs)\n\tif len(b.Buf) > 0 {\n\t\tbufs = append(bufs, b.Buf)\n\t}\n\tn, err := bufs.WriteTo(w)\n\n\tfor _, buf := range b.bufs {\n\t\tputBuf(buf)\n\t}\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.Buf = nil\n\tb.toPool = nil\n\n\treturn int(n), err\n}\n\n// BuildBytes creates a single byte slice with all the contents of the buffer. Data is\n// copied if it does not fit in a single chunk. You can optionally provide one byte\n// slice as argument that it will try to reuse.\nfunc (b *Buffer) BuildBytes(reuse ...[]byte) []byte {\n\tif len(b.bufs) == 0 {\n\t\tret := b.Buf\n\t\tb.toPool = nil\n\t\tb.Buf = nil\n\t\treturn ret\n\t}\n\n\tvar ret []byte\n\tsize := b.Size()\n\n\t// If we got a buffer as argument and it is big enough, reuse it.\n\tif len(reuse) == 1 && cap(reuse[0]) >= size {\n\t\tret = reuse[0][:0]\n\t} else {\n\t\tret = make([]byte, 0, size)\n\t}\n\tfor _, buf := range b.bufs {\n\t\tret = append(ret, buf...)\n\t\tputBuf(buf)\n\t}\n\n\tret = append(ret, b.Buf...)\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n\ntype readCloser struct {\n\toffset int\n\tbufs   [][]byte\n}\n\nfunc (r *readCloser) Read(p []byte) (n int, err error) {\n\tfor _, buf := range r.bufs {\n\t\t// Copy as much as we can.\n\t\tx := copy(p[n:], buf[r.offset:])\n\t\tn += x // Increment how much we filled.\n\n\t\t// Did we empty the whole buffer?\n\t\tif r.offset+x == len(buf) {\n\t\t\t// On to the next buffer.\n\t\t\tr.offset = 0\n\t\t\tr.bufs = r.bufs[1:]\n\n\t\t\t// We can release this buffer.\n\t\t\tputBuf(buf)\n\t\t} else {\n\t\t\tr.offset += x\n\t\t}\n\n\t\tif n == len(p) {\n\t\t\tbreak\n\t\t}\n\t}\n\t// No buffers left or nothing read?\n\tif len(r.bufs) == 0 {\n\t\terr = io.EOF\n\t}\n\treturn\n}\n\nfunc (r *readCloser) Close() error {\n\t// Release all remaining buffers.\n\tfor _, buf := range r.bufs {\n\t\tputBuf(buf)\n\t}\n\t// In case Close gets called multiple times.\n\tr.bufs = nil\n\n\treturn nil\n}\n\n// ReadCloser creates an io.ReadCloser with all the contents of the buffer.\nfunc (b *Buffer) ReadCloser() io.ReadCloser {\n\tret := &readCloser{0, append(b.bufs, b.Buf)}\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr.go",
    "content": "// This file will only be included to the build if neither\n// easyjson_nounsafe nor appengine build tag is set. See README notes\n// for more details.\n\n//+build !easyjson_nounsafe\n//+build !appengine\n\npackage jlexer\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// bytesToStr creates a string pointing at the slice to avoid copying.\n//\n// Warning: the string returned by the function should be used with care, as the whole input data\n// chunk may be either blocked from being freed by GC because of a single string or the buffer.Data\n// may be garbage-collected even when the string exists.\nfunc bytesToStr(data []byte) string {\n\th := (*reflect.SliceHeader)(unsafe.Pointer(&data))\n\tshdr := reflect.StringHeader{Data: h.Data, Len: h.Len}\n\treturn *(*string)(unsafe.Pointer(&shdr))\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go",
    "content": "// This file is included to the build if any of the buildtags below\n// are defined. Refer to README notes for more details.\n\n//+build easyjson_nounsafe appengine\n\npackage jlexer\n\n// bytesToStr creates a string normally from []byte\n//\n// Note that this method is roughly 1.5x slower than using the 'unsafe' method.\nfunc bytesToStr(data []byte) string {\n\treturn string(data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/error.go",
    "content": "package jlexer\n\nimport \"fmt\"\n\n// LexerError implements the error interface and represents all possible errors that can be\n// generated during parsing the JSON data.\ntype LexerError struct {\n\tReason string\n\tOffset int\n\tData   string\n}\n\nfunc (l *LexerError) Error() string {\n\treturn fmt.Sprintf(\"parse error: %s near offset %d of '%s'\", l.Reason, l.Offset, l.Data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/lexer.go",
    "content": "// Package jlexer contains a JSON lexer implementation.\n//\n// It is expected that it is mostly used with generated parser code, so the interface is tuned\n// for a parser that knows what kind of data is expected.\npackage jlexer\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"github.com/josharian/intern\"\n)\n\n// tokenKind determines type of a token.\ntype tokenKind byte\n\nconst (\n\ttokenUndef  tokenKind = iota // No token.\n\ttokenDelim                   // Delimiter: one of '{', '}', '[' or ']'.\n\ttokenString                  // A string literal, e.g. \"abc\\u1234\"\n\ttokenNumber                  // Number literal, e.g. 1.5e5\n\ttokenBool                    // Boolean literal: true or false.\n\ttokenNull                    // null keyword.\n)\n\n// token describes a single token: type, position in the input and value.\ntype token struct {\n\tkind tokenKind // Type of a token.\n\n\tboolValue       bool   // Value if a boolean literal token.\n\tbyteValueCloned bool   // true if byteValue was allocated and does not refer to original json body\n\tbyteValue       []byte // Raw value of a token.\n\tdelimValue      byte\n}\n\n// Lexer is a JSON lexer: it iterates over JSON tokens in a byte slice.\ntype Lexer struct {\n\tData []byte // Input data given to the lexer.\n\n\tstart int   // Start of the current token.\n\tpos   int   // Current unscanned position in the input stream.\n\ttoken token // Last scanned token, if token.kind != tokenUndef.\n\n\tfirstElement bool // Whether current element is the first in array or an object.\n\twantSep      byte // A comma or a colon character, which need to occur before a token.\n\n\tUseMultipleErrors bool          // If we want to use multiple errors.\n\tfatalError        error         // Fatal error occurred during lexing. It is usually a syntax error.\n\tmultipleErrors    []*LexerError // Semantic errors occurred during lexing. Marshalling will be continued after finding this errors.\n}\n\n// FetchToken scans the input for the next token.\nfunc (r *Lexer) FetchToken() {\n\tr.token.kind = tokenUndef\n\tr.start = r.pos\n\n\t// Check if r.Data has r.pos element\n\t// If it doesn't, it mean corrupted input data\n\tif len(r.Data) < r.pos {\n\t\tr.errParse(\"Unexpected end of data\")\n\t\treturn\n\t}\n\t// Determine the type of a token by skipping whitespace and reading the\n\t// first character.\n\tfor _, c := range r.Data[r.pos:] {\n\t\tswitch c {\n\t\tcase ':', ',':\n\t\t\tif r.wantSep == c {\n\t\t\t\tr.pos++\n\t\t\t\tr.start++\n\t\t\t\tr.wantSep = 0\n\t\t\t} else {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\tcase ' ', '\\t', '\\r', '\\n':\n\t\t\tr.pos++\n\t\t\tr.start++\n\n\t\tcase '\"':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenString\n\t\t\tr.fetchString()\n\t\t\treturn\n\n\t\tcase '{', '[':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.firstElement = true\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '}', ']':\n\t\t\tif !r.firstElement && (r.wantSep != ',') {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.wantSep = 0\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.token.kind = tokenNumber\n\t\t\tr.fetchNumber()\n\t\t\treturn\n\n\t\tcase 'n':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenNull\n\t\t\tr.fetchNull()\n\t\t\treturn\n\n\t\tcase 't':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = true\n\t\t\tr.fetchTrue()\n\t\t\treturn\n\n\t\tcase 'f':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = false\n\t\t\tr.fetchFalse()\n\t\t\treturn\n\n\t\tdefault:\n\t\t\tr.errSyntax()\n\t\t\treturn\n\t\t}\n\t}\n\tr.fatalError = io.EOF\n\treturn\n}\n\n// isTokenEnd returns true if the char can follow a non-delimiter token\nfunc isTokenEnd(c byte) bool {\n\treturn c == ' ' || c == '\\t' || c == '\\r' || c == '\\n' || c == '[' || c == ']' || c == '{' || c == '}' || c == ',' || c == ':'\n}\n\n// fetchNull fetches and checks remaining bytes of null keyword.\nfunc (r *Lexer) fetchNull() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'u' ||\n\t\tr.Data[r.pos-2] != 'l' ||\n\t\tr.Data[r.pos-1] != 'l' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchTrue fetches and checks remaining bytes of true keyword.\nfunc (r *Lexer) fetchTrue() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'r' ||\n\t\tr.Data[r.pos-2] != 'u' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchFalse fetches and checks remaining bytes of false keyword.\nfunc (r *Lexer) fetchFalse() {\n\tr.pos += 5\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-4] != 'a' ||\n\t\tr.Data[r.pos-3] != 'l' ||\n\t\tr.Data[r.pos-2] != 's' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 5\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchNumber scans a number literal token.\nfunc (r *Lexer) fetchNumber() {\n\thasE := false\n\tafterE := false\n\thasDot := false\n\n\tr.pos++\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c >= '0' && c <= '9':\n\t\t\tafterE = false\n\t\tcase c == '.' && !hasDot:\n\t\t\thasDot = true\n\t\tcase (c == 'e' || c == 'E') && !hasE:\n\t\t\thasE = true\n\t\t\thasDot = true\n\t\t\tafterE = true\n\t\tcase (c == '+' || c == '-') && afterE:\n\t\t\tafterE = false\n\t\tdefault:\n\t\t\tr.pos += i\n\t\t\tif !isTokenEnd(c) {\n\t\t\t\tr.errSyntax()\n\t\t\t} else {\n\t\t\t\tr.token.byteValue = r.Data[r.start:r.pos]\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\n\tr.pos = len(r.Data)\n\tr.token.byteValue = r.Data[r.start:]\n}\n\n// findStringLen tries to scan into the string literal for ending quote char to determine required size.\n// The size will be exact if no escapes are present and may be inexact if there are escaped chars.\nfunc findStringLen(data []byte) (isValid bool, length int) {\n\tfor {\n\t\tidx := bytes.IndexByte(data, '\"')\n\t\tif idx == -1 {\n\t\t\treturn false, len(data)\n\t\t}\n\t\tif idx == 0 || (idx > 0 && data[idx-1] != '\\\\') {\n\t\t\treturn true, length + idx\n\t\t}\n\n\t\t// count \\\\\\\\\\\\\\ sequences. even number of slashes means quote is not really escaped\n\t\tcnt := 1\n\t\tfor idx-cnt-1 >= 0 && data[idx-cnt-1] == '\\\\' {\n\t\t\tcnt++\n\t\t}\n\t\tif cnt%2 == 0 {\n\t\t\treturn true, length + idx\n\t\t}\n\n\t\tlength += idx + 1\n\t\tdata = data[idx+1:]\n\t}\n}\n\n// unescapeStringToken performs unescaping of string token.\n// if no escaping is needed, original string is returned, otherwise - a new one allocated\nfunc (r *Lexer) unescapeStringToken() (err error) {\n\tdata := r.token.byteValue\n\tvar unescapedData []byte\n\n\tfor {\n\t\ti := bytes.IndexByte(data, '\\\\')\n\t\tif i == -1 {\n\t\t\tbreak\n\t\t}\n\n\t\tescapedRune, escapedBytes, err := decodeEscape(data[i:])\n\t\tif err != nil {\n\t\t\tr.errParse(err.Error())\n\t\t\treturn err\n\t\t}\n\n\t\tif unescapedData == nil {\n\t\t\tunescapedData = make([]byte, 0, len(r.token.byteValue))\n\t\t}\n\n\t\tvar d [4]byte\n\t\ts := utf8.EncodeRune(d[:], escapedRune)\n\t\tunescapedData = append(unescapedData, data[:i]...)\n\t\tunescapedData = append(unescapedData, d[:s]...)\n\n\t\tdata = data[i+escapedBytes:]\n\t}\n\n\tif unescapedData != nil {\n\t\tr.token.byteValue = append(unescapedData, data...)\n\t\tr.token.byteValueCloned = true\n\t}\n\treturn\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) < 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar val rune\n\tfor i := 2; i < len(s) && i < 6; i++ {\n\t\tvar v byte\n\t\tc := s[i]\n\t\tswitch c {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tv = c - '0'\n\t\tcase 'a', 'b', 'c', 'd', 'e', 'f':\n\t\t\tv = c - 'a' + 10\n\t\tcase 'A', 'B', 'C', 'D', 'E', 'F':\n\t\t\tv = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\n\t\tval <<= 4\n\t\tval |= rune(v)\n\t}\n\treturn val\n}\n\n// decodeEscape processes a single escape sequence and returns number of bytes processed.\nfunc decodeEscape(data []byte) (decoded rune, bytesProcessed int, err error) {\n\tif len(data) < 2 {\n\t\treturn 0, 0, errors.New(\"incorrect escape symbol \\\\ at the end of token\")\n\t}\n\n\tc := data[1]\n\tswitch c {\n\tcase '\"', '/', '\\\\':\n\t\treturn rune(c), 2, nil\n\tcase 'b':\n\t\treturn '\\b', 2, nil\n\tcase 'f':\n\t\treturn '\\f', 2, nil\n\tcase 'n':\n\t\treturn '\\n', 2, nil\n\tcase 'r':\n\t\treturn '\\r', 2, nil\n\tcase 't':\n\t\treturn '\\t', 2, nil\n\tcase 'u':\n\t\trr := getu4(data)\n\t\tif rr < 0 {\n\t\t\treturn 0, 0, errors.New(\"incorrectly escaped \\\\uXXXX sequence\")\n\t\t}\n\n\t\tread := 6\n\t\tif utf16.IsSurrogate(rr) {\n\t\t\trr1 := getu4(data[read:])\n\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {\n\t\t\t\tread += 6\n\t\t\t\trr = dec\n\t\t\t} else {\n\t\t\t\trr = unicode.ReplacementChar\n\t\t\t}\n\t\t}\n\t\treturn rr, read, nil\n\t}\n\n\treturn 0, 0, errors.New(\"incorrectly escaped bytes\")\n}\n\n// fetchString scans a string literal token.\nfunc (r *Lexer) fetchString() {\n\tr.pos++\n\tdata := r.Data[r.pos:]\n\n\tisValid, length := findStringLen(data)\n\tif !isValid {\n\t\tr.pos += length\n\t\tr.errParse(\"unterminated string literal\")\n\t\treturn\n\t}\n\tr.token.byteValue = data[:length]\n\tr.pos += length + 1 // skip closing '\"' as well\n}\n\n// scanToken scans the next token if no token is currently available in the lexer.\nfunc (r *Lexer) scanToken() {\n\tif r.token.kind != tokenUndef || r.fatalError != nil {\n\t\treturn\n\t}\n\n\tr.FetchToken()\n}\n\n// consume resets the current token to allow scanning the next one.\nfunc (r *Lexer) consume() {\n\tr.token.kind = tokenUndef\n\tr.token.byteValueCloned = false\n\tr.token.delimValue = 0\n}\n\n// Ok returns true if no error (including io.EOF) was encountered during scanning.\nfunc (r *Lexer) Ok() bool {\n\treturn r.fatalError == nil\n}\n\nconst maxErrorContextLen = 13\n\nfunc (r *Lexer) errParse(what string) {\n\tif r.fatalError == nil {\n\t\tvar str string\n\t\tif len(r.Data)-r.pos <= maxErrorContextLen {\n\t\t\tstr = string(r.Data)\n\t\t} else {\n\t\t\tstr = string(r.Data[r.pos:r.pos+maxErrorContextLen-3]) + \"...\"\n\t\t}\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: what,\n\t\t\tOffset: r.pos,\n\t\t\tData:   str,\n\t\t}\n\t}\n}\n\nfunc (r *Lexer) errSyntax() {\n\tr.errParse(\"syntax error\")\n}\n\nfunc (r *Lexer) errInvalidToken(expected string) {\n\tif r.fatalError != nil {\n\t\treturn\n\t}\n\tif r.UseMultipleErrors {\n\t\tr.pos = r.start\n\t\tr.consume()\n\t\tr.SkipRecursive()\n\t\tswitch expected {\n\t\tcase \"[\":\n\t\t\tr.token.delimValue = ']'\n\t\t\tr.token.kind = tokenDelim\n\t\tcase \"{\":\n\t\t\tr.token.delimValue = '}'\n\t\t\tr.token.kind = tokenDelim\n\t\t}\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\t\tOffset: r.start,\n\t\t\tData:   string(r.Data[r.start:r.pos]),\n\t\t})\n\t\treturn\n\t}\n\n\tvar str string\n\tif len(r.token.byteValue) <= maxErrorContextLen {\n\t\tstr = string(r.token.byteValue)\n\t} else {\n\t\tstr = string(r.token.byteValue[:maxErrorContextLen-3]) + \"...\"\n\t}\n\tr.fatalError = &LexerError{\n\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\tOffset: r.pos,\n\t\tData:   str,\n\t}\n}\n\nfunc (r *Lexer) GetPos() int {\n\treturn r.pos\n}\n\n// Delim consumes a token and verifies that it is the given delimiter.\nfunc (r *Lexer) Delim(c byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() || r.token.delimValue != c {\n\t\tr.consume() // errInvalidToken can change token if UseMultipleErrors is enabled.\n\t\tr.errInvalidToken(string([]byte{c}))\n\t} else {\n\t\tr.consume()\n\t}\n}\n\n// IsDelim returns true if there was no scanning error and next token is the given delimiter.\nfunc (r *Lexer) IsDelim(c byte) bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn !r.Ok() || r.token.delimValue == c\n}\n\n// Null verifies that the next token is null and consumes it.\nfunc (r *Lexer) Null() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNull {\n\t\tr.errInvalidToken(\"null\")\n\t}\n\tr.consume()\n}\n\n// IsNull returns true if the next token is a null keyword.\nfunc (r *Lexer) IsNull() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn r.Ok() && r.token.kind == tokenNull\n}\n\n// Skip skips a single token.\nfunc (r *Lexer) Skip() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tr.consume()\n}\n\n// SkipRecursive skips next array or object completely, or just skips a single token if not\n// an array/object.\n//\n// Note: no syntax validation is performed on the skipped data.\nfunc (r *Lexer) SkipRecursive() {\n\tr.scanToken()\n\tvar start, end byte\n\tstartPos := r.start\n\n\tswitch r.token.delimValue {\n\tcase '{':\n\t\tstart, end = '{', '}'\n\tcase '[':\n\t\tstart, end = '[', ']'\n\tdefault:\n\t\tr.consume()\n\t\treturn\n\t}\n\n\tr.consume()\n\n\tlevel := 1\n\tinQuotes := false\n\twasEscape := false\n\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c == start && !inQuotes:\n\t\t\tlevel++\n\t\tcase c == end && !inQuotes:\n\t\t\tlevel--\n\t\t\tif level == 0 {\n\t\t\t\tr.pos += i + 1\n\t\t\t\tif !json.Valid(r.Data[startPos:r.pos]) {\n\t\t\t\t\tr.pos = len(r.Data)\n\t\t\t\t\tr.fatalError = &LexerError{\n\t\t\t\t\t\tReason: \"skipped array/object json value is invalid\",\n\t\t\t\t\t\tOffset: r.pos,\n\t\t\t\t\t\tData:   string(r.Data[r.pos:]),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\tcase c == '\\\\' && inQuotes:\n\t\t\twasEscape = !wasEscape\n\t\t\tcontinue\n\t\tcase c == '\"' && inQuotes:\n\t\t\tinQuotes = wasEscape\n\t\tcase c == '\"':\n\t\t\tinQuotes = true\n\t\t}\n\t\twasEscape = false\n\t}\n\tr.pos = len(r.Data)\n\tr.fatalError = &LexerError{\n\t\tReason: \"EOF reached while skipping array/object or token\",\n\t\tOffset: r.pos,\n\t\tData:   string(r.Data[r.pos:]),\n\t}\n}\n\n// Raw fetches the next item recursively as a data slice\nfunc (r *Lexer) Raw() []byte {\n\tr.SkipRecursive()\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\treturn r.Data[r.start:r.pos]\n}\n\n// IsStart returns whether the lexer is positioned at the start\n// of an input string.\nfunc (r *Lexer) IsStart() bool {\n\treturn r.pos == 0\n}\n\n// Consumed reads all remaining bytes from the input, publishing an error if\n// there is anything but whitespace remaining.\nfunc (r *Lexer) Consumed() {\n\tif r.pos > len(r.Data) || !r.Ok() {\n\t\treturn\n\t}\n\n\tfor _, c := range r.Data[r.pos:] {\n\t\tif c != ' ' && c != '\\t' && c != '\\r' && c != '\\n' {\n\t\t\tr.AddError(&LexerError{\n\t\t\t\tReason: \"invalid character '\" + string(c) + \"' after top-level value\",\n\t\t\t\tOffset: r.pos,\n\t\t\t\tData:   string(r.Data[r.pos:]),\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\tr.pos++\n\t\tr.start++\n\t}\n}\n\nfunc (r *Lexer) unsafeString(skipUnescape bool) (string, []byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\", nil\n\t}\n\tif !skipUnescape {\n\t\tif err := r.unescapeStringToken(); err != nil {\n\t\t\tr.errInvalidToken(\"string\")\n\t\t\treturn \"\", nil\n\t\t}\n\t}\n\n\tbytes := r.token.byteValue\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret, bytes\n}\n\n// UnsafeString returns the string value if the token is a string literal.\n//\n// Warning: returned string may point to the input buffer, so the string should not outlive\n// the input buffer. Intended pattern of usage is as an argument to a switch statement.\nfunc (r *Lexer) UnsafeString() string {\n\tret, _ := r.unsafeString(false)\n\treturn ret\n}\n\n// UnsafeBytes returns the byte slice if the token is a string literal.\nfunc (r *Lexer) UnsafeBytes() []byte {\n\t_, ret := r.unsafeString(false)\n\treturn ret\n}\n\n// UnsafeFieldName returns current member name string token\nfunc (r *Lexer) UnsafeFieldName(skipUnescape bool) string {\n\tret, _ := r.unsafeString(skipUnescape)\n\treturn ret\n}\n\n// String reads a string literal.\nfunc (r *Lexer) String() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tvar ret string\n\tif r.token.byteValueCloned {\n\t\tret = bytesToStr(r.token.byteValue)\n\t} else {\n\t\tret = string(r.token.byteValue)\n\t}\n\tr.consume()\n\treturn ret\n}\n\n// StringIntern reads a string literal, and performs string interning on it.\nfunc (r *Lexer) StringIntern() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tret := intern.Bytes(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\n// Bytes reads a string literal and base64 decodes it into a byte slice.\nfunc (r *Lexer) Bytes() []byte {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn nil\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn nil\n\t}\n\tret := make([]byte, base64.StdEncoding.DecodedLen(len(r.token.byteValue)))\n\tn, err := base64.StdEncoding.Decode(ret, r.token.byteValue)\n\tif err != nil {\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: err.Error(),\n\t\t}\n\t\treturn nil\n\t}\n\n\tr.consume()\n\treturn ret[:n]\n}\n\n// Bool reads a true or false boolean keyword.\nfunc (r *Lexer) Bool() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenBool {\n\t\tr.errInvalidToken(\"bool\")\n\t\treturn false\n\t}\n\tret := r.token.boolValue\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) number() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNumber {\n\t\tr.errInvalidToken(\"number\")\n\t\treturn \"\"\n\t}\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) Uint8() uint8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16() uint16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32() uint32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64() uint64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Uint() uint {\n\treturn uint(r.Uint64())\n}\n\nfunc (r *Lexer) Int8() int8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16() int16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32() int32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64() int64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Int() int {\n\treturn int(r.Int64())\n}\n\nfunc (r *Lexer) Uint8Str() uint8 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16Str() uint16 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32Str() uint32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64Str() uint64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) UintStr() uint {\n\treturn uint(r.Uint64Str())\n}\n\nfunc (r *Lexer) UintptrStr() uintptr {\n\treturn uintptr(r.Uint64Str())\n}\n\nfunc (r *Lexer) Int8Str() int8 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16Str() int16 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32Str() int32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64Str() int64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) IntStr() int {\n\treturn int(r.Int64Str())\n}\n\nfunc (r *Lexer) Float32() float32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float32Str() float32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float64() float64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Float64Str() float64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Error() error {\n\treturn r.fatalError\n}\n\nfunc (r *Lexer) AddError(e error) {\n\tif r.fatalError == nil {\n\t\tr.fatalError = e\n\t}\n}\n\nfunc (r *Lexer) AddNonFatalError(e error) {\n\tr.addNonfatalError(&LexerError{\n\t\tOffset: r.start,\n\t\tData:   string(r.Data[r.start:r.pos]),\n\t\tReason: e.Error(),\n\t})\n}\n\nfunc (r *Lexer) addNonfatalError(err *LexerError) {\n\tif r.UseMultipleErrors {\n\t\t// We don't want to add errors with the same offset.\n\t\tif len(r.multipleErrors) != 0 && r.multipleErrors[len(r.multipleErrors)-1].Offset == err.Offset {\n\t\t\treturn\n\t\t}\n\t\tr.multipleErrors = append(r.multipleErrors, err)\n\t\treturn\n\t}\n\tr.fatalError = err\n}\n\nfunc (r *Lexer) GetNonFatalErrors() []*LexerError {\n\treturn r.multipleErrors\n}\n\n// JsonNumber fetches and json.Number from 'encoding/json' package.\n// Both int, float or string, contains them are valid values\nfunc (r *Lexer) JsonNumber() json.Number {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() {\n\t\tr.errInvalidToken(\"json.Number\")\n\t\treturn json.Number(\"\")\n\t}\n\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn json.Number(r.String())\n\tcase tokenNumber:\n\t\treturn json.Number(r.Raw())\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn json.Number(\"\")\n\tdefault:\n\t\tr.errSyntax()\n\t\treturn json.Number(\"\")\n\t}\n}\n\n// Interface fetches an interface{} analogous to the 'encoding/json' package.\nfunc (r *Lexer) Interface() interface{} {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn r.String()\n\tcase tokenNumber:\n\t\treturn r.Float64()\n\tcase tokenBool:\n\t\treturn r.Bool()\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn nil\n\t}\n\n\tif r.token.delimValue == '{' {\n\t\tr.consume()\n\n\t\tret := map[string]interface{}{}\n\t\tfor !r.IsDelim('}') {\n\t\t\tkey := r.String()\n\t\t\tr.WantColon()\n\t\t\tret[key] = r.Interface()\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim('}')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t} else if r.token.delimValue == '[' {\n\t\tr.consume()\n\n\t\tret := []interface{}{}\n\t\tfor !r.IsDelim(']') {\n\t\t\tret = append(ret, r.Interface())\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim(']')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t}\n\tr.errSyntax()\n\treturn nil\n}\n\n// WantComma requires a comma to be present before fetching next token.\nfunc (r *Lexer) WantComma() {\n\tr.wantSep = ','\n\tr.firstElement = false\n}\n\n// WantColon requires a colon to be present before fetching next token.\nfunc (r *Lexer) WantColon() {\n\tr.wantSep = ':'\n\tr.firstElement = false\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jwriter/writer.go",
    "content": "// Package jwriter contains a JSON writer.\npackage jwriter\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"github.com/mailru/easyjson/buffer\"\n)\n\n// Flags describe various encoding options. The behavior may be actually implemented in the encoder, but\n// Flags field in Writer is used to set and pass them around.\ntype Flags int\n\nconst (\n\tNilMapAsEmpty   Flags = 1 << iota // Encode nil map as '{}' rather than 'null'.\n\tNilSliceAsEmpty                   // Encode nil slice as '[]' rather than 'null'.\n)\n\n// Writer is a JSON writer.\ntype Writer struct {\n\tFlags Flags\n\n\tError        error\n\tBuffer       buffer.Buffer\n\tNoEscapeHTML bool\n}\n\n// Size returns the size of the data that was written out.\nfunc (w *Writer) Size() int {\n\treturn w.Buffer.Size()\n}\n\n// DumpTo outputs the data to given io.Writer, resetting the buffer.\nfunc (w *Writer) DumpTo(out io.Writer) (written int, err error) {\n\treturn w.Buffer.DumpTo(out)\n}\n\n// BuildBytes returns writer data as a single byte slice. You can optionally provide one byte slice\n// as argument that it will try to reuse.\nfunc (w *Writer) BuildBytes(reuse ...[]byte) ([]byte, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.BuildBytes(reuse...), nil\n}\n\n// ReadCloser returns an io.ReadCloser that can be used to read the data.\n// ReadCloser also resets the buffer.\nfunc (w *Writer) ReadCloser() (io.ReadCloser, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.ReadCloser(), nil\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawByte(c byte) {\n\tw.Buffer.AppendByte(c)\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawString(s string) {\n\tw.Buffer.AppendString(s)\n}\n\n// Raw appends raw binary data to the buffer or sets the error if it is given. Useful for\n// calling with results of MarshalJSON-like functions.\nfunc (w *Writer) Raw(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.Buffer.AppendBytes(data)\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// RawText encloses raw binary data in quotes and appends in to the buffer.\n// Useful for calling with results of MarshalText-like functions.\nfunc (w *Writer) RawText(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.String(string(data))\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// Base64Bytes appends data to the buffer after base64 encoding it\nfunc (w *Writer) Base64Bytes(data []byte) {\n\tif data == nil {\n\t\tw.Buffer.AppendString(\"null\")\n\t\treturn\n\t}\n\tw.Buffer.AppendByte('\"')\n\tw.base64(data)\n\tw.Buffer.AppendByte('\"')\n}\n\nfunc (w *Writer) Uint8(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint16(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint32(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint64(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Int8(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int16(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int32(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int64(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Uint8Str(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint16Str(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint32Str(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintStr(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint64Str(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintptrStr(n uintptr) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int8Str(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int16Str(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int32Str(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) IntStr(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int64Str(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float32(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n}\n\nfunc (w *Writer) Float32Str(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float64(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, n, 'g', -1, 64)\n}\n\nfunc (w *Writer) Float64Str(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 64)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Bool(v bool) {\n\tw.Buffer.EnsureSpace(5)\n\tif v {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"true\"...)\n\t} else {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"false\"...)\n\t}\n}\n\nconst chars = \"0123456789abcdef\"\n\nfunc getTable(falseValues ...int) [128]bool {\n\ttable := [128]bool{}\n\n\tfor i := 0; i < 128; i++ {\n\t\ttable[i] = true\n\t}\n\n\tfor _, v := range falseValues {\n\t\ttable[v] = false\n\t}\n\n\treturn table\n}\n\nvar (\n\thtmlEscapeTable   = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '\"', '&', '<', '>', '\\\\')\n\thtmlNoEscapeTable = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '\"', '\\\\')\n)\n\nfunc (w *Writer) String(s string) {\n\tw.Buffer.AppendByte('\"')\n\n\t// Portions of the string that contain no escapes are appended as\n\t// byte slices.\n\n\tp := 0 // last non-escape symbol\n\n\tescapeTable := &htmlEscapeTable\n\tif w.NoEscapeHTML {\n\t\tescapeTable = &htmlNoEscapeTable\n\t}\n\n\tfor i := 0; i < len(s); {\n\t\tc := s[i]\n\n\t\tif c < utf8.RuneSelf {\n\t\t\tif escapeTable[c] {\n\t\t\t\t// single-width character, no escaping is required\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tswitch c {\n\t\t\tcase '\\t':\n\t\t\t\tw.Buffer.AppendString(`\\t`)\n\t\t\tcase '\\r':\n\t\t\t\tw.Buffer.AppendString(`\\r`)\n\t\t\tcase '\\n':\n\t\t\t\tw.Buffer.AppendString(`\\n`)\n\t\t\tcase '\\\\':\n\t\t\t\tw.Buffer.AppendString(`\\\\`)\n\t\t\tcase '\"':\n\t\t\t\tw.Buffer.AppendString(`\\\"`)\n\t\t\tdefault:\n\t\t\t\tw.Buffer.AppendString(`\\u00`)\n\t\t\t\tw.Buffer.AppendByte(chars[c>>4])\n\t\t\t\tw.Buffer.AppendByte(chars[c&0xf])\n\t\t\t}\n\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// broken utf\n\t\truneValue, runeWidth := utf8.DecodeRuneInString(s[i:])\n\t\tif runeValue == utf8.RuneError && runeWidth == 1 {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\ufffd`)\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// jsonp stuff - tab separator and line separator\n\t\tif runeValue == '\\u2028' || runeValue == '\\u2029' {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\u202`)\n\t\t\tw.Buffer.AppendByte(chars[runeValue&0xf])\n\t\t\ti += runeWidth\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\t\ti += runeWidth\n\t}\n\tw.Buffer.AppendString(s[p:])\n\tw.Buffer.AppendByte('\"')\n}\n\nconst encode = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\nconst padChar = '='\n\nfunc (w *Writer) base64(in []byte) {\n\n\tif len(in) == 0 {\n\t\treturn\n\t}\n\n\tw.Buffer.EnsureSpace(((len(in)-1)/3 + 1) * 4)\n\n\tsi := 0\n\tn := (len(in) / 3) * 3\n\n\tfor si < n {\n\t\t// Convert 3x 8bit source bytes into 4 bytes\n\t\tval := uint(in[si+0])<<16 | uint(in[si+1])<<8 | uint(in[si+2])\n\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F], encode[val>>6&0x3F], encode[val&0x3F])\n\n\t\tsi += 3\n\t}\n\n\tremain := len(in) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Add the remaining small block\n\tval := uint(in[si+0]) << 16\n\tif remain == 2 {\n\t\tval |= uint(in[si+1]) << 8\n\t}\n\n\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F])\n\n\tswitch remain {\n\tcase 2:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>6&0x3F], byte(padChar))\n\tcase 1:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, byte(padChar), byte(padChar))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE",
    "content": "Copyright 2012 Matt T. Proud (matt.proud@gmail.com)\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/.gitignore",
    "content": "cover.dat\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/Makefile",
    "content": "all:\n\ncover:\n\tgo test -cover -v -coverprofile=cover.dat ./...\n\tgo tool cover -func cover.dat\n\n.PHONY: cover\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go",
    "content": "// Copyright 2013 Matt T. Proud\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage pbutil\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n\n\t\"github.com/golang/protobuf/proto\"\n)\n\nvar errInvalidVarint = errors.New(\"invalid varint32 encountered\")\n\n// ReadDelimited decodes a message from the provided length-delimited stream,\n// where the length is encoded as 32-bit varint prefix to the message body.\n// It returns the total number of bytes read and any applicable error.  This is\n// roughly equivalent to the companion Java API's\n// MessageLite#parseDelimitedFrom.  As per the reader contract, this function\n// calls r.Read repeatedly as required until exactly one message including its\n// prefix is read and decoded (or an error has occurred).  The function never\n// reads more bytes from the stream than required.  The function never returns\n// an error if a message has been read and decoded correctly, even if the end\n// of the stream has been reached in doing so.  In that case, any subsequent\n// calls return (0, io.EOF).\nfunc ReadDelimited(r io.Reader, m proto.Message) (n int, err error) {\n\t// Per AbstractParser#parsePartialDelimitedFrom with\n\t// CodedInputStream#readRawVarint32.\n\tvar headerBuf [binary.MaxVarintLen32]byte\n\tvar bytesRead, varIntBytes int\n\tvar messageLength uint64\n\tfor varIntBytes == 0 { // i.e. no varint has been decoded yet.\n\t\tif bytesRead >= len(headerBuf) {\n\t\t\treturn bytesRead, errInvalidVarint\n\t\t}\n\t\t// We have to read byte by byte here to avoid reading more bytes\n\t\t// than required. Each read byte is appended to what we have\n\t\t// read before.\n\t\tnewBytesRead, err := r.Read(headerBuf[bytesRead : bytesRead+1])\n\t\tif newBytesRead == 0 {\n\t\t\tif err != nil {\n\t\t\t\treturn bytesRead, err\n\t\t\t}\n\t\t\t// A Reader should not return (0, nil), but if it does,\n\t\t\t// it should be treated as no-op (according to the\n\t\t\t// Reader contract). So let's go on...\n\t\t\tcontinue\n\t\t}\n\t\tbytesRead += newBytesRead\n\t\t// Now present everything read so far to the varint decoder and\n\t\t// see if a varint can be decoded already.\n\t\tmessageLength, varIntBytes = proto.DecodeVarint(headerBuf[:bytesRead])\n\t}\n\n\tmessageBuf := make([]byte, messageLength)\n\tnewBytesRead, err := io.ReadFull(r, messageBuf)\n\tbytesRead += newBytesRead\n\tif err != nil {\n\t\treturn bytesRead, err\n\t}\n\n\treturn bytesRead, proto.Unmarshal(messageBuf, m)\n}\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go",
    "content": "// Copyright 2013 Matt T. Proud\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package pbutil provides record length-delimited Protocol Buffer streaming.\npackage pbutil\n"
  },
  {
    "path": "vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go",
    "content": "// Copyright 2013 Matt T. Proud\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage pbutil\n\nimport (\n\t\"encoding/binary\"\n\t\"io\"\n\n\t\"github.com/golang/protobuf/proto\"\n)\n\n// WriteDelimited encodes and dumps a message to the provided writer prefixed\n// with a 32-bit varint indicating the length of the encoded message, producing\n// a length-delimited record stream, which can be used to chain together\n// encoded messages of the same type together in a file.  It returns the total\n// number of bytes written and any applicable error.  This is roughly\n// equivalent to the companion Java API's MessageLite#writeDelimitedTo.\nfunc WriteDelimited(w io.Writer, m proto.Message) (n int, err error) {\n\tbuffer, err := proto.Marshal(m)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tvar buf [binary.MaxVarintLen32]byte\n\tencodedLength := binary.PutUvarint(buf[:], uint64(len(buffer)))\n\n\tsync, err := w.Write(buf[:encodedLength])\n\tif err != nil {\n\t\treturn sync, err\n\t}\n\n\tn, err = w.Write(buffer)\n\treturn n + sync, err\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.gitignore",
    "content": "/coverage.txt\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.8.x\n  - 1.x\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/README.md",
    "content": "# concurrent\n\n[![Sourcegraph](https://sourcegraph.com/github.com/modern-go/concurrent/-/badge.svg)](https://sourcegraph.com/github.com/modern-go/concurrent?badge)\n[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/modern-go/concurrent)\n[![Build Status](https://travis-ci.org/modern-go/concurrent.svg?branch=master)](https://travis-ci.org/modern-go/concurrent)\n[![codecov](https://codecov.io/gh/modern-go/concurrent/branch/master/graph/badge.svg)](https://codecov.io/gh/modern-go/concurrent)\n[![rcard](https://goreportcard.com/badge/github.com/modern-go/concurrent)](https://goreportcard.com/report/github.com/modern-go/concurrent)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/modern-go/concurrent/master/LICENSE)\n\n* concurrent.Map: backport sync.Map for go below 1.9\n* concurrent.Executor: goroutine with explicit ownership and cancellable\n\n# concurrent.Map\n\nbecause sync.Map is only available in go 1.9, we can use concurrent.Map to make code portable\n\n```go\nm := concurrent.NewMap()\nm.Store(\"hello\", \"world\")\nelem, found := m.Load(\"hello\")\n// elem will be \"world\"\n// found will be true\n```\n\n# concurrent.Executor\n\n```go\nexecutor := concurrent.NewUnboundedExecutor()\nexecutor.Go(func(ctx context.Context) {\n    everyMillisecond := time.NewTicker(time.Millisecond)\n    for {\n        select {\n        case <-ctx.Done():\n            fmt.Println(\"goroutine exited\")\n            return\n        case <-everyMillisecond.C:\n            // do something\n        }\n    }\n})\ntime.Sleep(time.Second)\nexecutor.StopAndWaitForever()\nfmt.Println(\"executor stopped\")\n```\n\nattach goroutine to executor instance, so that we can\n\n* cancel it by stop the executor with Stop/StopAndWait/StopAndWaitForever\n* handle panic by callback: the default behavior will no longer crash your application"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/executor.go",
    "content": "package concurrent\n\nimport \"context\"\n\n// Executor replace go keyword to start a new goroutine\n// the goroutine should cancel itself if the context passed in has been cancelled\n// the goroutine started by the executor, is owned by the executor\n// we can cancel all executors owned by the executor just by stop the executor itself\n// however Executor interface does not Stop method, the one starting and owning executor\n// should use the concrete type of executor, instead of this interface.\ntype Executor interface {\n\t// Go starts a new goroutine controlled by the context\n\tGo(handler func(ctx context.Context))\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_above_19.go",
    "content": "//+build go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map is a wrapper for sync.Map introduced in go1.9\ntype Map struct {\n\tsync.Map\n}\n\n// NewMap creates a thread safe Map\nfunc NewMap() *Map {\n\treturn &Map{}\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_below_19.go",
    "content": "//+build !go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map implements a thread safe map for go version below 1.9 using mutex\ntype Map struct {\n\tlock sync.RWMutex\n\tdata map[interface{}]interface{}\n}\n\n// NewMap creates a thread safe map\nfunc NewMap() *Map {\n\treturn &Map{\n\t\tdata: make(map[interface{}]interface{}, 32),\n\t}\n}\n\n// Load is same as sync.Map Load\nfunc (m *Map) Load(key interface{}) (elem interface{}, found bool) {\n\tm.lock.RLock()\n\telem, found = m.data[key]\n\tm.lock.RUnlock()\n\treturn\n}\n\n// Load is same as sync.Map Store\nfunc (m *Map) Store(key interface{}, elem interface{}) {\n\tm.lock.Lock()\n\tm.data[key] = elem\n\tm.lock.Unlock()\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/log.go",
    "content": "package concurrent\n\nimport (\n\t\"os\"\n\t\"log\"\n\t\"io/ioutil\"\n)\n\n// ErrorLogger is used to print out error, can be set to writer other than stderr\nvar ErrorLogger = log.New(os.Stderr, \"\", 0)\n\n// InfoLogger is used to print informational message, default to off\nvar InfoLogger = log.New(ioutil.Discard, \"\", 0)"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -coverprofile=profile.out -coverpkg=github.com/modern-go/concurrent $d\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/unbounded_executor.go",
    "content": "package concurrent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\t\"reflect\"\n)\n\n// HandlePanic logs goroutine panic by default\nvar HandlePanic = func(recovered interface{}, funcName string) {\n\tErrorLogger.Println(fmt.Sprintf(\"%s panic: %v\", funcName, recovered))\n\tErrorLogger.Println(string(debug.Stack()))\n}\n\n// UnboundedExecutor is a executor without limits on counts of alive goroutines\n// it tracks the goroutine started by it, and can cancel them when shutdown\ntype UnboundedExecutor struct {\n\tctx                   context.Context\n\tcancel                context.CancelFunc\n\tactiveGoroutinesMutex *sync.Mutex\n\tactiveGoroutines      map[string]int\n\tHandlePanic           func(recovered interface{}, funcName string)\n}\n\n// GlobalUnboundedExecutor has the life cycle of the program itself\n// any goroutine want to be shutdown before main exit can be started from this executor\n// GlobalUnboundedExecutor expects the main function to call stop\n// it does not magically knows the main function exits\nvar GlobalUnboundedExecutor = NewUnboundedExecutor()\n\n// NewUnboundedExecutor creates a new UnboundedExecutor,\n// UnboundedExecutor can not be created by &UnboundedExecutor{}\n// HandlePanic can be set with a callback to override global HandlePanic\nfunc NewUnboundedExecutor() *UnboundedExecutor {\n\tctx, cancel := context.WithCancel(context.TODO())\n\treturn &UnboundedExecutor{\n\t\tctx:                   ctx,\n\t\tcancel:                cancel,\n\t\tactiveGoroutinesMutex: &sync.Mutex{},\n\t\tactiveGoroutines:      map[string]int{},\n\t}\n}\n\n// Go starts a new goroutine and tracks its lifecycle.\n// Panic will be recovered and logged automatically, except for StopSignal\nfunc (executor *UnboundedExecutor) Go(handler func(ctx context.Context)) {\n\tpc := reflect.ValueOf(handler).Pointer()\n\tf := runtime.FuncForPC(pc)\n\tfuncName := f.Name()\n\tfile, line := f.FileLine(pc)\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tstartFrom := fmt.Sprintf(\"%s:%d\", file, line)\n\texecutor.activeGoroutines[startFrom] += 1\n\tgo func() {\n\t\tdefer func() {\n\t\t\trecovered := recover()\n\t\t\t// if you want to quit a goroutine without trigger HandlePanic\n\t\t\t// use runtime.Goexit() to quit\n\t\t\tif recovered != nil {\n\t\t\t\tif executor.HandlePanic == nil {\n\t\t\t\t\tHandlePanic(recovered, funcName)\n\t\t\t\t} else {\n\t\t\t\t\texecutor.HandlePanic(recovered, funcName)\n\t\t\t\t}\n\t\t\t}\n\t\t\texecutor.activeGoroutinesMutex.Lock()\n\t\t\texecutor.activeGoroutines[startFrom] -= 1\n\t\t\texecutor.activeGoroutinesMutex.Unlock()\n\t\t}()\n\t\thandler(executor.ctx)\n\t}()\n}\n\n// Stop cancel all goroutines started by this executor without wait\nfunc (executor *UnboundedExecutor) Stop() {\n\texecutor.cancel()\n}\n\n// StopAndWaitForever cancel all goroutines started by this executor and\n// wait until all goroutines exited\nfunc (executor *UnboundedExecutor) StopAndWaitForever() {\n\texecutor.StopAndWait(context.Background())\n}\n\n// StopAndWait cancel all goroutines started by this executor and wait.\n// Wait can be cancelled by the context passed in.\nfunc (executor *UnboundedExecutor) StopAndWait(ctx context.Context) {\n\texecutor.cancel()\n\tfor {\n\t\toneHundredMilliseconds := time.NewTimer(time.Millisecond * 100)\n\t\tselect {\n\t\tcase <-oneHundredMilliseconds.C:\n\t\t\tif executor.checkNoActiveGoroutines() {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (executor *UnboundedExecutor) checkNoActiveGoroutines() bool {\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tfor startFrom, count := range executor.activeGoroutines {\n\t\tif count > 0 {\n\t\t\tInfoLogger.Println(\"UnboundedExecutor is still waiting goroutines to quit\",\n\t\t\t\t\"startFrom\", startFrom,\n\t\t\t\t\"count\", count)\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/LICENSE",
    "content": "Copyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/Makefile",
    "content": "include $(GOROOT)/src/Make.inc\n\nTARG=bitbucket.org/ww/goautoneg\nGOFILES=autoneg.go\n\ninclude $(GOROOT)/src/Make.pkg\n\nformat:\n\tgofmt -w *.go\n\ndocs:\n\tgomake clean\n\tgodoc ${TARG} > README.txt\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/README.txt",
    "content": "PACKAGE\n\npackage goautoneg\nimport \"bitbucket.org/ww/goautoneg\"\n\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nFUNCTIONS\n\nfunc Negotiate(header string, alternatives []string) (content_type string)\nNegotiate the most appropriate content_type given the accept header\nand a list of alternatives.\n\nfunc ParseAccept(header string) (accept []Accept)\nParse an Accept Header string returning a sorted list\nof clauses\n\n\nTYPES\n\ntype Accept struct {\n    Type, SubType string\n    Q             float32\n    Params        map[string]string\n}\nStructure to represent a clause in an HTTP Accept Header\n\n\nSUBDIRECTORIES\n\n\t.hg\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/autoneg.go",
    "content": "/*\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\npackage goautoneg\n\nimport (\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Structure to represent a clause in an HTTP Accept Header\ntype Accept struct {\n\tType, SubType string\n\tQ             float64\n\tParams        map[string]string\n}\n\n// acceptSlice is defined to implement sort interface.\ntype acceptSlice []Accept\n\nfunc (slice acceptSlice) Len() int {\n\treturn len(slice)\n}\n\nfunc (slice acceptSlice) Less(i, j int) bool {\n\tai, aj := slice[i], slice[j]\n\tif ai.Q > aj.Q {\n\t\treturn true\n\t}\n\tif ai.Type != \"*\" && aj.Type == \"*\" {\n\t\treturn true\n\t}\n\tif ai.SubType != \"*\" && aj.SubType == \"*\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (slice acceptSlice) Swap(i, j int) {\n\tslice[i], slice[j] = slice[j], slice[i]\n}\n\nfunc stringTrimSpaceCutset(r rune) bool {\n\treturn r == ' '\n}\n\nfunc nextSplitElement(s, sep string) (item string, remaining string) {\n\tif index := strings.Index(s, sep); index != -1 {\n\t\treturn s[:index], s[index+1:]\n\t}\n\treturn s, \"\"\n}\n\n// Parse an Accept Header string returning a sorted list\n// of clauses\nfunc ParseAccept(header string) acceptSlice {\n\tpartsCount := 0\n\tremaining := header\n\tfor len(remaining) > 0 {\n\t\tpartsCount++\n\t\t_, remaining = nextSplitElement(remaining, \",\")\n\t}\n\taccept := make(acceptSlice, 0, partsCount)\n\n\tremaining = header\n\tvar part string\n\tfor len(remaining) > 0 {\n\t\tpart, remaining = nextSplitElement(remaining, \",\")\n\t\tpart = strings.TrimFunc(part, stringTrimSpaceCutset)\n\n\t\ta := Accept{\n\t\t\tQ: 1.0,\n\t\t}\n\n\t\tsp, remainingPart := nextSplitElement(part, \";\")\n\n\t\tsp0, spRemaining := nextSplitElement(sp, \"/\")\n\t\ta.Type = strings.TrimFunc(sp0, stringTrimSpaceCutset)\n\n\t\tswitch {\n\t\tcase len(spRemaining) == 0:\n\t\t\tif a.Type == \"*\" {\n\t\t\t\ta.SubType = \"*\"\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tvar sp1 string\n\t\t\tsp1, spRemaining = nextSplitElement(spRemaining, \"/\")\n\t\t\tif len(spRemaining) > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ta.SubType = strings.TrimFunc(sp1, stringTrimSpaceCutset)\n\t\t}\n\n\t\tif len(remainingPart) == 0 {\n\t\t\taccept = append(accept, a)\n\t\t\tcontinue\n\t\t}\n\n\t\ta.Params = make(map[string]string)\n\t\tfor len(remainingPart) > 0 {\n\t\t\tsp, remainingPart = nextSplitElement(remainingPart, \";\")\n\t\t\tsp0, spRemaining = nextSplitElement(sp, \"=\")\n\t\t\tif len(spRemaining) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvar sp1 string\n\t\t\tsp1, spRemaining = nextSplitElement(spRemaining, \"=\")\n\t\t\tif len(spRemaining) != 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttoken := strings.TrimFunc(sp0, stringTrimSpaceCutset)\n\t\t\tif token == \"q\" {\n\t\t\t\ta.Q, _ = strconv.ParseFloat(sp1, 32)\n\t\t\t} else {\n\t\t\t\ta.Params[token] = strings.TrimFunc(sp1, stringTrimSpaceCutset)\n\t\t\t}\n\t\t}\n\n\t\taccept = append(accept, a)\n\t}\n\n\tsort.Sort(accept)\n\treturn accept\n}\n\n// Negotiate the most appropriate content_type given the accept header\n// and a list of alternatives.\nfunc Negotiate(header string, alternatives []string) (content_type string) {\n\tasp := make([][]string, 0, len(alternatives))\n\tfor _, ctype := range alternatives {\n\t\tasp = append(asp, strings.SplitN(ctype, \"/\", 2))\n\t}\n\tfor _, clause := range ParseAccept(header) {\n\t\tfor i, ctsp := range asp {\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == ctsp[1] {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == \"*\" && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/runtime-spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2015 The Linux Foundation.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/opencontainers/runtime-spec/specs-go/config.go",
    "content": "package specs\n\nimport \"os\"\n\n// Spec is the base configuration for the container.\ntype Spec struct {\n\t// Version of the Open Container Initiative Runtime Specification with which the bundle complies.\n\tVersion string `json:\"ociVersion\"`\n\t// Process configures the container process.\n\tProcess *Process `json:\"process,omitempty\"`\n\t// Root configures the container's root filesystem.\n\tRoot *Root `json:\"root,omitempty\"`\n\t// Hostname configures the container's hostname.\n\tHostname string `json:\"hostname,omitempty\"`\n\t// Domainname configures the container's domainname.\n\tDomainname string `json:\"domainname,omitempty\"`\n\t// Mounts configures additional mounts (on top of Root).\n\tMounts []Mount `json:\"mounts,omitempty\"`\n\t// Hooks configures callbacks for container lifecycle events.\n\tHooks *Hooks `json:\"hooks,omitempty\" platform:\"linux,solaris,zos\"`\n\t// Annotations contains arbitrary metadata for the container.\n\tAnnotations map[string]string `json:\"annotations,omitempty\"`\n\n\t// Linux is platform-specific configuration for Linux based containers.\n\tLinux *Linux `json:\"linux,omitempty\" platform:\"linux\"`\n\t// Solaris is platform-specific configuration for Solaris based containers.\n\tSolaris *Solaris `json:\"solaris,omitempty\" platform:\"solaris\"`\n\t// Windows is platform-specific configuration for Windows based containers.\n\tWindows *Windows `json:\"windows,omitempty\" platform:\"windows\"`\n\t// VM specifies configuration for virtual-machine-based containers.\n\tVM *VM `json:\"vm,omitempty\" platform:\"vm\"`\n\t// ZOS is platform-specific configuration for z/OS based containers.\n\tZOS *ZOS `json:\"zos,omitempty\" platform:\"zos\"`\n}\n\n// Process contains information to start a specific application inside the container.\ntype Process struct {\n\t// Terminal creates an interactive terminal for the container.\n\tTerminal bool `json:\"terminal,omitempty\"`\n\t// ConsoleSize specifies the size of the console.\n\tConsoleSize *Box `json:\"consoleSize,omitempty\"`\n\t// User specifies user information for the process.\n\tUser User `json:\"user\"`\n\t// Args specifies the binary and arguments for the application to execute.\n\tArgs []string `json:\"args,omitempty\"`\n\t// CommandLine specifies the full command line for the application to execute on Windows.\n\tCommandLine string `json:\"commandLine,omitempty\" platform:\"windows\"`\n\t// Env populates the process environment for the process.\n\tEnv []string `json:\"env,omitempty\"`\n\t// Cwd is the current working directory for the process and must be\n\t// relative to the container's root.\n\tCwd string `json:\"cwd\"`\n\t// Capabilities are Linux capabilities that are kept for the process.\n\tCapabilities *LinuxCapabilities `json:\"capabilities,omitempty\" platform:\"linux\"`\n\t// Rlimits specifies rlimit options to apply to the process.\n\tRlimits []POSIXRlimit `json:\"rlimits,omitempty\" platform:\"linux,solaris,zos\"`\n\t// NoNewPrivileges controls whether additional privileges could be gained by processes in the container.\n\tNoNewPrivileges bool `json:\"noNewPrivileges,omitempty\" platform:\"linux\"`\n\t// ApparmorProfile specifies the apparmor profile for the container.\n\tApparmorProfile string `json:\"apparmorProfile,omitempty\" platform:\"linux\"`\n\t// Specify an oom_score_adj for the container.\n\tOOMScoreAdj *int `json:\"oomScoreAdj,omitempty\" platform:\"linux\"`\n\t// SelinuxLabel specifies the selinux context that the container process is run as.\n\tSelinuxLabel string `json:\"selinuxLabel,omitempty\" platform:\"linux\"`\n}\n\n// LinuxCapabilities specifies the list of allowed capabilities that are kept for a process.\n// http://man7.org/linux/man-pages/man7/capabilities.7.html\ntype LinuxCapabilities struct {\n\t// Bounding is the set of capabilities checked by the kernel.\n\tBounding []string `json:\"bounding,omitempty\" platform:\"linux\"`\n\t// Effective is the set of capabilities checked by the kernel.\n\tEffective []string `json:\"effective,omitempty\" platform:\"linux\"`\n\t// Inheritable is the capabilities preserved across execve.\n\tInheritable []string `json:\"inheritable,omitempty\" platform:\"linux\"`\n\t// Permitted is the limiting superset for effective capabilities.\n\tPermitted []string `json:\"permitted,omitempty\" platform:\"linux\"`\n\t// Ambient is the ambient set of capabilities that are kept.\n\tAmbient []string `json:\"ambient,omitempty\" platform:\"linux\"`\n}\n\n// Box specifies dimensions of a rectangle. Used for specifying the size of a console.\ntype Box struct {\n\t// Height is the vertical dimension of a box.\n\tHeight uint `json:\"height\"`\n\t// Width is the horizontal dimension of a box.\n\tWidth uint `json:\"width\"`\n}\n\n// User specifies specific user (and group) information for the container process.\ntype User struct {\n\t// UID is the user id.\n\tUID uint32 `json:\"uid\" platform:\"linux,solaris,zos\"`\n\t// GID is the group id.\n\tGID uint32 `json:\"gid\" platform:\"linux,solaris,zos\"`\n\t// Umask is the umask for the init process.\n\tUmask *uint32 `json:\"umask,omitempty\" platform:\"linux,solaris,zos\"`\n\t// AdditionalGids are additional group ids set for the container's process.\n\tAdditionalGids []uint32 `json:\"additionalGids,omitempty\" platform:\"linux,solaris\"`\n\t// Username is the user name.\n\tUsername string `json:\"username,omitempty\" platform:\"windows\"`\n}\n\n// Root contains information about the container's root filesystem on the host.\ntype Root struct {\n\t// Path is the absolute path to the container's root filesystem.\n\tPath string `json:\"path\"`\n\t// Readonly makes the root filesystem for the container readonly before the process is executed.\n\tReadonly bool `json:\"readonly,omitempty\"`\n}\n\n// Mount specifies a mount for a container.\ntype Mount struct {\n\t// Destination is the absolute path where the mount will be placed in the container.\n\tDestination string `json:\"destination\"`\n\t// Type specifies the mount kind.\n\tType string `json:\"type,omitempty\" platform:\"linux,solaris,zos\"`\n\t// Source specifies the source path of the mount.\n\tSource string `json:\"source,omitempty\"`\n\t// Options are fstab style mount options.\n\tOptions []string `json:\"options,omitempty\"`\n\n\t// UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\t// Every mount point could have its own mapping.\n\tUIDMappings []LinuxIDMapping `json:\"uidMappings,omitempty\" platform:\"linux\"`\n\tGIDMappings []LinuxIDMapping `json:\"gidMappings,omitempty\" platform:\"linux\"`\n}\n\n// Hook specifies a command that is run at a particular event in the lifecycle of a container\ntype Hook struct {\n\tPath    string   `json:\"path\"`\n\tArgs    []string `json:\"args,omitempty\"`\n\tEnv     []string `json:\"env,omitempty\"`\n\tTimeout *int     `json:\"timeout,omitempty\"`\n}\n\n// Hooks specifies a command that is run in the container at a particular event in the lifecycle of a container\n// Hooks for container setup and teardown\ntype Hooks struct {\n\t// Prestart is Deprecated. Prestart is a list of hooks to be run before the container process is executed.\n\t// It is called in the Runtime Namespace\n\tPrestart []Hook `json:\"prestart,omitempty\"`\n\t// CreateRuntime is a list of hooks to be run after the container has been created but before pivot_root or any equivalent operation has been called\n\t// It is called in the Runtime Namespace\n\tCreateRuntime []Hook `json:\"createRuntime,omitempty\"`\n\t// CreateContainer is a list of hooks to be run after the container has been created but before pivot_root or any equivalent operation has been called\n\t// It is called in the Container Namespace\n\tCreateContainer []Hook `json:\"createContainer,omitempty\"`\n\t// StartContainer is a list of hooks to be run after the start operation is called but before the container process is started\n\t// It is called in the Container Namespace\n\tStartContainer []Hook `json:\"startContainer,omitempty\"`\n\t// Poststart is a list of hooks to be run after the container process is started.\n\t// It is called in the Runtime Namespace\n\tPoststart []Hook `json:\"poststart,omitempty\"`\n\t// Poststop is a list of hooks to be run after the container process exits.\n\t// It is called in the Runtime Namespace\n\tPoststop []Hook `json:\"poststop,omitempty\"`\n}\n\n// Linux contains platform-specific configuration for Linux based containers.\ntype Linux struct {\n\t// UIDMapping specifies user mappings for supporting user namespaces.\n\tUIDMappings []LinuxIDMapping `json:\"uidMappings,omitempty\"`\n\t// GIDMapping specifies group mappings for supporting user namespaces.\n\tGIDMappings []LinuxIDMapping `json:\"gidMappings,omitempty\"`\n\t// Sysctl are a set of key value pairs that are set for the container on start\n\tSysctl map[string]string `json:\"sysctl,omitempty\"`\n\t// Resources contain cgroup information for handling resource constraints\n\t// for the container\n\tResources *LinuxResources `json:\"resources,omitempty\"`\n\t// CgroupsPath specifies the path to cgroups that are created and/or joined by the container.\n\t// The path is expected to be relative to the cgroups mountpoint.\n\t// If resources are specified, the cgroups at CgroupsPath will be updated based on resources.\n\tCgroupsPath string `json:\"cgroupsPath,omitempty\"`\n\t// Namespaces contains the namespaces that are created and/or joined by the container\n\tNamespaces []LinuxNamespace `json:\"namespaces,omitempty\"`\n\t// Devices are a list of device nodes that are created for the container\n\tDevices []LinuxDevice `json:\"devices,omitempty\"`\n\t// Seccomp specifies the seccomp security settings for the container.\n\tSeccomp *LinuxSeccomp `json:\"seccomp,omitempty\"`\n\t// RootfsPropagation is the rootfs mount propagation mode for the container.\n\tRootfsPropagation string `json:\"rootfsPropagation,omitempty\"`\n\t// MaskedPaths masks over the provided paths inside the container.\n\tMaskedPaths []string `json:\"maskedPaths,omitempty\"`\n\t// ReadonlyPaths sets the provided paths as RO inside the container.\n\tReadonlyPaths []string `json:\"readonlyPaths,omitempty\"`\n\t// MountLabel specifies the selinux context for the mounts in the container.\n\tMountLabel string `json:\"mountLabel,omitempty\"`\n\t// IntelRdt contains Intel Resource Director Technology (RDT) information for\n\t// handling resource constraints and monitoring metrics (e.g., L3 cache, memory bandwidth) for the container\n\tIntelRdt *LinuxIntelRdt `json:\"intelRdt,omitempty\"`\n\t// Personality contains configuration for the Linux personality syscall\n\tPersonality *LinuxPersonality `json:\"personality,omitempty\"`\n}\n\n// LinuxNamespace is the configuration for a Linux namespace\ntype LinuxNamespace struct {\n\t// Type is the type of namespace\n\tType LinuxNamespaceType `json:\"type\"`\n\t// Path is a path to an existing namespace persisted on disk that can be joined\n\t// and is of the same type\n\tPath string `json:\"path,omitempty\"`\n}\n\n// LinuxNamespaceType is one of the Linux namespaces\ntype LinuxNamespaceType string\n\nconst (\n\t// PIDNamespace for isolating process IDs\n\tPIDNamespace LinuxNamespaceType = \"pid\"\n\t// NetworkNamespace for isolating network devices, stacks, ports, etc\n\tNetworkNamespace LinuxNamespaceType = \"network\"\n\t// MountNamespace for isolating mount points\n\tMountNamespace LinuxNamespaceType = \"mount\"\n\t// IPCNamespace for isolating System V IPC, POSIX message queues\n\tIPCNamespace LinuxNamespaceType = \"ipc\"\n\t// UTSNamespace for isolating hostname and NIS domain name\n\tUTSNamespace LinuxNamespaceType = \"uts\"\n\t// UserNamespace for isolating user and group IDs\n\tUserNamespace LinuxNamespaceType = \"user\"\n\t// CgroupNamespace for isolating cgroup hierarchies\n\tCgroupNamespace LinuxNamespaceType = \"cgroup\"\n)\n\n// LinuxIDMapping specifies UID/GID mappings\ntype LinuxIDMapping struct {\n\t// ContainerID is the starting UID/GID in the container\n\tContainerID uint32 `json:\"containerID\"`\n\t// HostID is the starting UID/GID on the host to be mapped to 'ContainerID'\n\tHostID uint32 `json:\"hostID\"`\n\t// Size is the number of IDs to be mapped\n\tSize uint32 `json:\"size\"`\n}\n\n// POSIXRlimit type and restrictions\ntype POSIXRlimit struct {\n\t// Type of the rlimit to set\n\tType string `json:\"type\"`\n\t// Hard is the hard limit for the specified type\n\tHard uint64 `json:\"hard\"`\n\t// Soft is the soft limit for the specified type\n\tSoft uint64 `json:\"soft\"`\n}\n\n// LinuxHugepageLimit structure corresponds to limiting kernel hugepages\ntype LinuxHugepageLimit struct {\n\t// Pagesize is the hugepage size\n\t// Format: \"<size><unit-prefix>B' (e.g. 64KB, 2MB, 1GB, etc.)\n\tPagesize string `json:\"pageSize\"`\n\t// Limit is the limit of \"hugepagesize\" hugetlb usage\n\tLimit uint64 `json:\"limit\"`\n}\n\n// LinuxInterfacePriority for network interfaces\ntype LinuxInterfacePriority struct {\n\t// Name is the name of the network interface\n\tName string `json:\"name\"`\n\t// Priority for the interface\n\tPriority uint32 `json:\"priority\"`\n}\n\n// LinuxBlockIODevice holds major:minor format supported in blkio cgroup\ntype LinuxBlockIODevice struct {\n\t// Major is the device's major number.\n\tMajor int64 `json:\"major\"`\n\t// Minor is the device's minor number.\n\tMinor int64 `json:\"minor\"`\n}\n\n// LinuxWeightDevice struct holds a `major:minor weight` pair for weightDevice\ntype LinuxWeightDevice struct {\n\tLinuxBlockIODevice\n\t// Weight is the bandwidth rate for the device.\n\tWeight *uint16 `json:\"weight,omitempty\"`\n\t// LeafWeight is the bandwidth rate for the device while competing with the cgroup's child cgroups, CFQ scheduler only\n\tLeafWeight *uint16 `json:\"leafWeight,omitempty\"`\n}\n\n// LinuxThrottleDevice struct holds a `major:minor rate_per_second` pair\ntype LinuxThrottleDevice struct {\n\tLinuxBlockIODevice\n\t// Rate is the IO rate limit per cgroup per device\n\tRate uint64 `json:\"rate\"`\n}\n\n// LinuxBlockIO for Linux cgroup 'blkio' resource management\ntype LinuxBlockIO struct {\n\t// Specifies per cgroup weight\n\tWeight *uint16 `json:\"weight,omitempty\"`\n\t// Specifies tasks' weight in the given cgroup while competing with the cgroup's child cgroups, CFQ scheduler only\n\tLeafWeight *uint16 `json:\"leafWeight,omitempty\"`\n\t// Weight per cgroup per device, can override BlkioWeight\n\tWeightDevice []LinuxWeightDevice `json:\"weightDevice,omitempty\"`\n\t// IO read rate limit per cgroup per device, bytes per second\n\tThrottleReadBpsDevice []LinuxThrottleDevice `json:\"throttleReadBpsDevice,omitempty\"`\n\t// IO write rate limit per cgroup per device, bytes per second\n\tThrottleWriteBpsDevice []LinuxThrottleDevice `json:\"throttleWriteBpsDevice,omitempty\"`\n\t// IO read rate limit per cgroup per device, IO per second\n\tThrottleReadIOPSDevice []LinuxThrottleDevice `json:\"throttleReadIOPSDevice,omitempty\"`\n\t// IO write rate limit per cgroup per device, IO per second\n\tThrottleWriteIOPSDevice []LinuxThrottleDevice `json:\"throttleWriteIOPSDevice,omitempty\"`\n}\n\n// LinuxMemory for Linux cgroup 'memory' resource management\ntype LinuxMemory struct {\n\t// Memory limit (in bytes).\n\tLimit *int64 `json:\"limit,omitempty\"`\n\t// Memory reservation or soft_limit (in bytes).\n\tReservation *int64 `json:\"reservation,omitempty\"`\n\t// Total memory limit (memory + swap).\n\tSwap *int64 `json:\"swap,omitempty\"`\n\t// Kernel memory limit (in bytes).\n\tKernel *int64 `json:\"kernel,omitempty\"`\n\t// Kernel memory limit for tcp (in bytes)\n\tKernelTCP *int64 `json:\"kernelTCP,omitempty\"`\n\t// How aggressive the kernel will swap memory pages.\n\tSwappiness *uint64 `json:\"swappiness,omitempty\"`\n\t// DisableOOMKiller disables the OOM killer for out of memory conditions\n\tDisableOOMKiller *bool `json:\"disableOOMKiller,omitempty\"`\n\t// Enables hierarchical memory accounting\n\tUseHierarchy *bool `json:\"useHierarchy,omitempty\"`\n}\n\n// LinuxCPU for Linux cgroup 'cpu' resource management\ntype LinuxCPU struct {\n\t// CPU shares (relative weight (ratio) vs. other cgroups with cpu shares).\n\tShares *uint64 `json:\"shares,omitempty\"`\n\t// CPU hardcap limit (in usecs). Allowed cpu time in a given period.\n\tQuota *int64 `json:\"quota,omitempty\"`\n\t// CPU period to be used for hardcapping (in usecs).\n\tPeriod *uint64 `json:\"period,omitempty\"`\n\t// How much time realtime scheduling may use (in usecs).\n\tRealtimeRuntime *int64 `json:\"realtimeRuntime,omitempty\"`\n\t// CPU period to be used for realtime scheduling (in usecs).\n\tRealtimePeriod *uint64 `json:\"realtimePeriod,omitempty\"`\n\t// CPUs to use within the cpuset. Default is to use any CPU available.\n\tCpus string `json:\"cpus,omitempty\"`\n\t// List of memory nodes in the cpuset. Default is to use any available memory node.\n\tMems string `json:\"mems,omitempty\"`\n\t// cgroups are configured with minimum weight, 0: default behavior, 1: SCHED_IDLE.\n\tIdle *int64 `json:\"idle,omitempty\"`\n}\n\n// LinuxPids for Linux cgroup 'pids' resource management (Linux 4.3)\ntype LinuxPids struct {\n\t// Maximum number of PIDs. Default is \"no limit\".\n\tLimit int64 `json:\"limit\"`\n}\n\n// LinuxNetwork identification and priority configuration\ntype LinuxNetwork struct {\n\t// Set class identifier for container's network packets\n\tClassID *uint32 `json:\"classID,omitempty\"`\n\t// Set priority of network traffic for container\n\tPriorities []LinuxInterfacePriority `json:\"priorities,omitempty\"`\n}\n\n// LinuxRdma for Linux cgroup 'rdma' resource management (Linux 4.11)\ntype LinuxRdma struct {\n\t// Maximum number of HCA handles that can be opened. Default is \"no limit\".\n\tHcaHandles *uint32 `json:\"hcaHandles,omitempty\"`\n\t// Maximum number of HCA objects that can be created. Default is \"no limit\".\n\tHcaObjects *uint32 `json:\"hcaObjects,omitempty\"`\n}\n\n// LinuxResources has container runtime resource constraints\ntype LinuxResources struct {\n\t// Devices configures the device allowlist.\n\tDevices []LinuxDeviceCgroup `json:\"devices,omitempty\"`\n\t// Memory restriction configuration\n\tMemory *LinuxMemory `json:\"memory,omitempty\"`\n\t// CPU resource restriction configuration\n\tCPU *LinuxCPU `json:\"cpu,omitempty\"`\n\t// Task resource restriction configuration.\n\tPids *LinuxPids `json:\"pids,omitempty\"`\n\t// BlockIO restriction configuration\n\tBlockIO *LinuxBlockIO `json:\"blockIO,omitempty\"`\n\t// Hugetlb limit (in bytes)\n\tHugepageLimits []LinuxHugepageLimit `json:\"hugepageLimits,omitempty\"`\n\t// Network restriction configuration\n\tNetwork *LinuxNetwork `json:\"network,omitempty\"`\n\t// Rdma resource restriction configuration.\n\t// Limits are a set of key value pairs that define RDMA resource limits,\n\t// where the key is device name and value is resource limits.\n\tRdma map[string]LinuxRdma `json:\"rdma,omitempty\"`\n\t// Unified resources.\n\tUnified map[string]string `json:\"unified,omitempty\"`\n}\n\n// LinuxDevice represents the mknod information for a Linux special device file\ntype LinuxDevice struct {\n\t// Path to the device.\n\tPath string `json:\"path\"`\n\t// Device type, block, char, etc.\n\tType string `json:\"type\"`\n\t// Major is the device's major number.\n\tMajor int64 `json:\"major\"`\n\t// Minor is the device's minor number.\n\tMinor int64 `json:\"minor\"`\n\t// FileMode permission bits for the device.\n\tFileMode *os.FileMode `json:\"fileMode,omitempty\"`\n\t// UID of the device.\n\tUID *uint32 `json:\"uid,omitempty\"`\n\t// Gid of the device.\n\tGID *uint32 `json:\"gid,omitempty\"`\n}\n\n// LinuxDeviceCgroup represents a device rule for the devices specified to\n// the device controller\ntype LinuxDeviceCgroup struct {\n\t// Allow or deny\n\tAllow bool `json:\"allow\"`\n\t// Device type, block, char, etc.\n\tType string `json:\"type,omitempty\"`\n\t// Major is the device's major number.\n\tMajor *int64 `json:\"major,omitempty\"`\n\t// Minor is the device's minor number.\n\tMinor *int64 `json:\"minor,omitempty\"`\n\t// Cgroup access permissions format, rwm.\n\tAccess string `json:\"access,omitempty\"`\n}\n\n// LinuxPersonalityDomain refers to a personality domain.\ntype LinuxPersonalityDomain string\n\n// LinuxPersonalityFlag refers to an additional personality flag. None are currently defined.\ntype LinuxPersonalityFlag string\n\n// Define domain and flags for Personality\nconst (\n\t// PerLinux is the standard Linux personality\n\tPerLinux LinuxPersonalityDomain = \"LINUX\"\n\t// PerLinux32 sets personality to 32 bit\n\tPerLinux32 LinuxPersonalityDomain = \"LINUX32\"\n)\n\n// LinuxPersonality represents the Linux personality syscall input\ntype LinuxPersonality struct {\n\t// Domain for the personality\n\tDomain LinuxPersonalityDomain `json:\"domain\"`\n\t// Additional flags\n\tFlags []LinuxPersonalityFlag `json:\"flags,omitempty\"`\n}\n\n// Solaris contains platform-specific configuration for Solaris application containers.\ntype Solaris struct {\n\t// SMF FMRI which should go \"online\" before we start the container process.\n\tMilestone string `json:\"milestone,omitempty\"`\n\t// Maximum set of privileges any process in this container can obtain.\n\tLimitPriv string `json:\"limitpriv,omitempty\"`\n\t// The maximum amount of shared memory allowed for this container.\n\tMaxShmMemory string `json:\"maxShmMemory,omitempty\"`\n\t// Specification for automatic creation of network resources for this container.\n\tAnet []SolarisAnet `json:\"anet,omitempty\"`\n\t// Set limit on the amount of CPU time that can be used by container.\n\tCappedCPU *SolarisCappedCPU `json:\"cappedCPU,omitempty\"`\n\t// The physical and swap caps on the memory that can be used by this container.\n\tCappedMemory *SolarisCappedMemory `json:\"cappedMemory,omitempty\"`\n}\n\n// SolarisCappedCPU allows users to set limit on the amount of CPU time that can be used by container.\ntype SolarisCappedCPU struct {\n\tNcpus string `json:\"ncpus,omitempty\"`\n}\n\n// SolarisCappedMemory allows users to set the physical and swap caps on the memory that can be used by this container.\ntype SolarisCappedMemory struct {\n\tPhysical string `json:\"physical,omitempty\"`\n\tSwap     string `json:\"swap,omitempty\"`\n}\n\n// SolarisAnet provides the specification for automatic creation of network resources for this container.\ntype SolarisAnet struct {\n\t// Specify a name for the automatically created VNIC datalink.\n\tLinkname string `json:\"linkname,omitempty\"`\n\t// Specify the link over which the VNIC will be created.\n\tLowerlink string `json:\"lowerLink,omitempty\"`\n\t// The set of IP addresses that the container can use.\n\tAllowedaddr string `json:\"allowedAddress,omitempty\"`\n\t// Specifies whether allowedAddress limitation is to be applied to the VNIC.\n\tConfigallowedaddr string `json:\"configureAllowedAddress,omitempty\"`\n\t// The value of the optional default router.\n\tDefrouter string `json:\"defrouter,omitempty\"`\n\t// Enable one or more types of link protection.\n\tLinkprotection string `json:\"linkProtection,omitempty\"`\n\t// Set the VNIC's macAddress\n\tMacaddress string `json:\"macAddress,omitempty\"`\n}\n\n// Windows defines the runtime configuration for Windows based containers, including Hyper-V containers.\ntype Windows struct {\n\t// LayerFolders contains a list of absolute paths to directories containing image layers.\n\tLayerFolders []string `json:\"layerFolders\"`\n\t// Devices are the list of devices to be mapped into the container.\n\tDevices []WindowsDevice `json:\"devices,omitempty\"`\n\t// Resources contains information for handling resource constraints for the container.\n\tResources *WindowsResources `json:\"resources,omitempty\"`\n\t// CredentialSpec contains a JSON object describing a group Managed Service Account (gMSA) specification.\n\tCredentialSpec interface{} `json:\"credentialSpec,omitempty\"`\n\t// Servicing indicates if the container is being started in a mode to apply a Windows Update servicing operation.\n\tServicing bool `json:\"servicing,omitempty\"`\n\t// IgnoreFlushesDuringBoot indicates if the container is being started in a mode where disk writes are not flushed during its boot process.\n\tIgnoreFlushesDuringBoot bool `json:\"ignoreFlushesDuringBoot,omitempty\"`\n\t// HyperV contains information for running a container with Hyper-V isolation.\n\tHyperV *WindowsHyperV `json:\"hyperv,omitempty\"`\n\t// Network restriction configuration.\n\tNetwork *WindowsNetwork `json:\"network,omitempty\"`\n}\n\n// WindowsDevice represents information about a host device to be mapped into the container.\ntype WindowsDevice struct {\n\t// Device identifier: interface class GUID, etc.\n\tID string `json:\"id\"`\n\t// Device identifier type: \"class\", etc.\n\tIDType string `json:\"idType\"`\n}\n\n// WindowsResources has container runtime resource constraints for containers running on Windows.\ntype WindowsResources struct {\n\t// Memory restriction configuration.\n\tMemory *WindowsMemoryResources `json:\"memory,omitempty\"`\n\t// CPU resource restriction configuration.\n\tCPU *WindowsCPUResources `json:\"cpu,omitempty\"`\n\t// Storage restriction configuration.\n\tStorage *WindowsStorageResources `json:\"storage,omitempty\"`\n}\n\n// WindowsMemoryResources contains memory resource management settings.\ntype WindowsMemoryResources struct {\n\t// Memory limit in bytes.\n\tLimit *uint64 `json:\"limit,omitempty\"`\n}\n\n// WindowsCPUResources contains CPU resource management settings.\ntype WindowsCPUResources struct {\n\t// Count is the number of CPUs available to the container. It represents the\n\t// fraction of the configured processor `count` in a container in relation\n\t// to the processors available in the host. The fraction ultimately\n\t// determines the portion of processor cycles that the threads in a\n\t// container can use during each scheduling interval, as the number of\n\t// cycles per 10,000 cycles.\n\tCount *uint64 `json:\"count,omitempty\"`\n\t// Shares limits the share of processor time given to the container relative\n\t// to other workloads on the processor. The processor `shares` (`weight` at\n\t// the platform level) is a value between 0 and 10000.\n\tShares *uint16 `json:\"shares,omitempty\"`\n\t// Maximum determines the portion of processor cycles that the threads in a\n\t// container can use during each scheduling interval, as the number of\n\t// cycles per 10,000 cycles. Set processor `maximum` to a percentage times\n\t// 100.\n\tMaximum *uint16 `json:\"maximum,omitempty\"`\n}\n\n// WindowsStorageResources contains storage resource management settings.\ntype WindowsStorageResources struct {\n\t// Specifies maximum Iops for the system drive.\n\tIops *uint64 `json:\"iops,omitempty\"`\n\t// Specifies maximum bytes per second for the system drive.\n\tBps *uint64 `json:\"bps,omitempty\"`\n\t// Sandbox size specifies the minimum size of the system drive in bytes.\n\tSandboxSize *uint64 `json:\"sandboxSize,omitempty\"`\n}\n\n// WindowsNetwork contains network settings for Windows containers.\ntype WindowsNetwork struct {\n\t// List of HNS endpoints that the container should connect to.\n\tEndpointList []string `json:\"endpointList,omitempty\"`\n\t// Specifies if unqualified DNS name resolution is allowed.\n\tAllowUnqualifiedDNSQuery bool `json:\"allowUnqualifiedDNSQuery,omitempty\"`\n\t// Comma separated list of DNS suffixes to use for name resolution.\n\tDNSSearchList []string `json:\"DNSSearchList,omitempty\"`\n\t// Name (ID) of the container that we will share with the network stack.\n\tNetworkSharedContainerName string `json:\"networkSharedContainerName,omitempty\"`\n\t// name (ID) of the network namespace that will be used for the container.\n\tNetworkNamespace string `json:\"networkNamespace,omitempty\"`\n}\n\n// WindowsHyperV contains information for configuring a container to run with Hyper-V isolation.\ntype WindowsHyperV struct {\n\t// UtilityVMPath is an optional path to the image used for the Utility VM.\n\tUtilityVMPath string `json:\"utilityVMPath,omitempty\"`\n}\n\n// VM contains information for virtual-machine-based containers.\ntype VM struct {\n\t// Hypervisor specifies hypervisor-related configuration for virtual-machine-based containers.\n\tHypervisor VMHypervisor `json:\"hypervisor,omitempty\"`\n\t// Kernel specifies kernel-related configuration for virtual-machine-based containers.\n\tKernel VMKernel `json:\"kernel\"`\n\t// Image specifies guest image related configuration for virtual-machine-based containers.\n\tImage VMImage `json:\"image,omitempty\"`\n}\n\n// VMHypervisor contains information about the hypervisor to use for a virtual machine.\ntype VMHypervisor struct {\n\t// Path is the host path to the hypervisor used to manage the virtual machine.\n\tPath string `json:\"path\"`\n\t// Parameters specifies parameters to pass to the hypervisor.\n\tParameters []string `json:\"parameters,omitempty\"`\n}\n\n// VMKernel contains information about the kernel to use for a virtual machine.\ntype VMKernel struct {\n\t// Path is the host path to the kernel used to boot the virtual machine.\n\tPath string `json:\"path\"`\n\t// Parameters specifies parameters to pass to the kernel.\n\tParameters []string `json:\"parameters,omitempty\"`\n\t// InitRD is the host path to an initial ramdisk to be used by the kernel.\n\tInitRD string `json:\"initrd,omitempty\"`\n}\n\n// VMImage contains information about the virtual machine root image.\ntype VMImage struct {\n\t// Path is the host path to the root image that the VM kernel would boot into.\n\tPath string `json:\"path\"`\n\t// Format is the root image format type (e.g. \"qcow2\", \"raw\", \"vhd\", etc).\n\tFormat string `json:\"format\"`\n}\n\n// LinuxSeccomp represents syscall restrictions\ntype LinuxSeccomp struct {\n\tDefaultAction    LinuxSeccompAction `json:\"defaultAction\"`\n\tDefaultErrnoRet  *uint              `json:\"defaultErrnoRet,omitempty\"`\n\tArchitectures    []Arch             `json:\"architectures,omitempty\"`\n\tFlags            []LinuxSeccompFlag `json:\"flags,omitempty\"`\n\tListenerPath     string             `json:\"listenerPath,omitempty\"`\n\tListenerMetadata string             `json:\"listenerMetadata,omitempty\"`\n\tSyscalls         []LinuxSyscall     `json:\"syscalls,omitempty\"`\n}\n\n// Arch used for additional architectures\ntype Arch string\n\n// LinuxSeccompFlag is a flag to pass to seccomp(2).\ntype LinuxSeccompFlag string\n\nconst (\n\t// LinuxSeccompFlagLog is a seccomp flag to request all returned\n\t// actions except SECCOMP_RET_ALLOW to be logged. An administrator may\n\t// override this filter flag by preventing specific actions from being\n\t// logged via the /proc/sys/kernel/seccomp/actions_logged file. (since\n\t// Linux 4.14)\n\tLinuxSeccompFlagLog LinuxSeccompFlag = \"SECCOMP_FILTER_FLAG_LOG\"\n\n\t// LinuxSeccompFlagSpecAllow can be used to disable Speculative Store\n\t// Bypass mitigation. (since Linux 4.17)\n\tLinuxSeccompFlagSpecAllow LinuxSeccompFlag = \"SECCOMP_FILTER_FLAG_SPEC_ALLOW\"\n)\n\n// Additional architectures permitted to be used for system calls\n// By default only the native architecture of the kernel is permitted\nconst (\n\tArchX86         Arch = \"SCMP_ARCH_X86\"\n\tArchX86_64      Arch = \"SCMP_ARCH_X86_64\"\n\tArchX32         Arch = \"SCMP_ARCH_X32\"\n\tArchARM         Arch = \"SCMP_ARCH_ARM\"\n\tArchAARCH64     Arch = \"SCMP_ARCH_AARCH64\"\n\tArchMIPS        Arch = \"SCMP_ARCH_MIPS\"\n\tArchMIPS64      Arch = \"SCMP_ARCH_MIPS64\"\n\tArchMIPS64N32   Arch = \"SCMP_ARCH_MIPS64N32\"\n\tArchMIPSEL      Arch = \"SCMP_ARCH_MIPSEL\"\n\tArchMIPSEL64    Arch = \"SCMP_ARCH_MIPSEL64\"\n\tArchMIPSEL64N32 Arch = \"SCMP_ARCH_MIPSEL64N32\"\n\tArchPPC         Arch = \"SCMP_ARCH_PPC\"\n\tArchPPC64       Arch = \"SCMP_ARCH_PPC64\"\n\tArchPPC64LE     Arch = \"SCMP_ARCH_PPC64LE\"\n\tArchS390        Arch = \"SCMP_ARCH_S390\"\n\tArchS390X       Arch = \"SCMP_ARCH_S390X\"\n\tArchPARISC      Arch = \"SCMP_ARCH_PARISC\"\n\tArchPARISC64    Arch = \"SCMP_ARCH_PARISC64\"\n\tArchRISCV64     Arch = \"SCMP_ARCH_RISCV64\"\n)\n\n// LinuxSeccompAction taken upon Seccomp rule match\ntype LinuxSeccompAction string\n\n// Define actions for Seccomp rules\nconst (\n\tActKill        LinuxSeccompAction = \"SCMP_ACT_KILL\"\n\tActKillProcess LinuxSeccompAction = \"SCMP_ACT_KILL_PROCESS\"\n\tActKillThread  LinuxSeccompAction = \"SCMP_ACT_KILL_THREAD\"\n\tActTrap        LinuxSeccompAction = \"SCMP_ACT_TRAP\"\n\tActErrno       LinuxSeccompAction = \"SCMP_ACT_ERRNO\"\n\tActTrace       LinuxSeccompAction = \"SCMP_ACT_TRACE\"\n\tActAllow       LinuxSeccompAction = \"SCMP_ACT_ALLOW\"\n\tActLog         LinuxSeccompAction = \"SCMP_ACT_LOG\"\n\tActNotify      LinuxSeccompAction = \"SCMP_ACT_NOTIFY\"\n)\n\n// LinuxSeccompOperator used to match syscall arguments in Seccomp\ntype LinuxSeccompOperator string\n\n// Define operators for syscall arguments in Seccomp\nconst (\n\tOpNotEqual     LinuxSeccompOperator = \"SCMP_CMP_NE\"\n\tOpLessThan     LinuxSeccompOperator = \"SCMP_CMP_LT\"\n\tOpLessEqual    LinuxSeccompOperator = \"SCMP_CMP_LE\"\n\tOpEqualTo      LinuxSeccompOperator = \"SCMP_CMP_EQ\"\n\tOpGreaterEqual LinuxSeccompOperator = \"SCMP_CMP_GE\"\n\tOpGreaterThan  LinuxSeccompOperator = \"SCMP_CMP_GT\"\n\tOpMaskedEqual  LinuxSeccompOperator = \"SCMP_CMP_MASKED_EQ\"\n)\n\n// LinuxSeccompArg used for matching specific syscall arguments in Seccomp\ntype LinuxSeccompArg struct {\n\tIndex    uint                 `json:\"index\"`\n\tValue    uint64               `json:\"value\"`\n\tValueTwo uint64               `json:\"valueTwo,omitempty\"`\n\tOp       LinuxSeccompOperator `json:\"op\"`\n}\n\n// LinuxSyscall is used to match a syscall in Seccomp\ntype LinuxSyscall struct {\n\tNames    []string           `json:\"names\"`\n\tAction   LinuxSeccompAction `json:\"action\"`\n\tErrnoRet *uint              `json:\"errnoRet,omitempty\"`\n\tArgs     []LinuxSeccompArg  `json:\"args,omitempty\"`\n}\n\n// LinuxIntelRdt has container runtime resource constraints for Intel RDT CAT and MBA\n// features and flags enabling Intel RDT CMT and MBM features.\n// Intel RDT features are available in Linux 4.14 and newer kernel versions.\ntype LinuxIntelRdt struct {\n\t// The identity for RDT Class of Service\n\tClosID string `json:\"closID,omitempty\"`\n\t// The schema for L3 cache id and capacity bitmask (CBM)\n\t// Format: \"L3:<cache_id0>=<cbm0>;<cache_id1>=<cbm1>;...\"\n\tL3CacheSchema string `json:\"l3CacheSchema,omitempty\"`\n\n\t// The schema of memory bandwidth per L3 cache id\n\t// Format: \"MB:<cache_id0>=bandwidth0;<cache_id1>=bandwidth1;...\"\n\t// The unit of memory bandwidth is specified in \"percentages\" by\n\t// default, and in \"MBps\" if MBA Software Controller is enabled.\n\tMemBwSchema string `json:\"memBwSchema,omitempty\"`\n\n\t// EnableCMT is the flag to indicate if the Intel RDT CMT is enabled. CMT (Cache Monitoring Technology) supports monitoring of\n\t// the last-level cache (LLC) occupancy for the container.\n\tEnableCMT bool `json:\"enableCMT,omitempty\"`\n\n\t// EnableMBM is the flag to indicate if the Intel RDT MBM is enabled. MBM (Memory Bandwidth Monitoring) supports monitoring of\n\t// total and local memory bandwidth for the container.\n\tEnableMBM bool `json:\"enableMBM,omitempty\"`\n}\n\n// ZOS contains platform-specific configuration for z/OS based containers.\ntype ZOS struct {\n\t// Devices are a list of device nodes that are created for the container\n\tDevices []ZOSDevice `json:\"devices,omitempty\"`\n}\n\n// ZOSDevice represents the mknod information for a z/OS special device file\ntype ZOSDevice struct {\n\t// Path to the device.\n\tPath string `json:\"path\"`\n\t// Device type, block, char, etc.\n\tType string `json:\"type\"`\n\t// Major is the device's major number.\n\tMajor int64 `json:\"major\"`\n\t// Minor is the device's minor number.\n\tMinor int64 `json:\"minor\"`\n\t// FileMode permission bits for the device.\n\tFileMode *os.FileMode `json:\"fileMode,omitempty\"`\n\t// UID of the device.\n\tUID *uint32 `json:\"uid,omitempty\"`\n\t// Gid of the device.\n\tGID *uint32 `json:\"gid,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/runtime-spec/specs-go/state.go",
    "content": "package specs\n\n// ContainerState represents the state of a container.\ntype ContainerState string\n\nconst (\n\t// StateCreating indicates that the container is being created\n\tStateCreating ContainerState = \"creating\"\n\n\t// StateCreated indicates that the runtime has finished the create operation\n\tStateCreated ContainerState = \"created\"\n\n\t// StateRunning indicates that the container process has executed the\n\t// user-specified program but has not exited\n\tStateRunning ContainerState = \"running\"\n\n\t// StateStopped indicates that the container process has exited\n\tStateStopped ContainerState = \"stopped\"\n)\n\n// State holds information about the runtime state of the container.\ntype State struct {\n\t// Version is the version of the specification that is supported.\n\tVersion string `json:\"ociVersion\"`\n\t// ID is the container ID\n\tID string `json:\"id\"`\n\t// Status is the runtime status of the container.\n\tStatus ContainerState `json:\"status\"`\n\t// Pid is the process ID for the container process.\n\tPid int `json:\"pid,omitempty\"`\n\t// Bundle is the path to the container's bundle directory.\n\tBundle string `json:\"bundle\"`\n\t// Annotations are key values associated with the container.\n\tAnnotations map[string]string `json:\"annotations,omitempty\"`\n}\n\nconst (\n\t// SeccompFdName is the name of the seccomp notify file descriptor.\n\tSeccompFdName string = \"seccompFd\"\n)\n\n// ContainerProcessState holds information about the state of a container process.\ntype ContainerProcessState struct {\n\t// Version is the version of the specification that is supported.\n\tVersion string `json:\"ociVersion\"`\n\t// Fds is a string array containing the names of the file descriptors passed.\n\t// The index of the name in this array corresponds to index of the file\n\t// descriptor in the `SCM_RIGHTS` array.\n\tFds []string `json:\"fds\"`\n\t// Pid is the process ID as seen by the runtime.\n\tPid int `json:\"pid\"`\n\t// Opaque metadata.\n\tMetadata string `json:\"metadata,omitempty\"`\n\t// State of the container.\n\tState State `json:\"state\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/runtime-spec/specs-go/version.go",
    "content": "package specs\n\nimport \"fmt\"\n\nconst (\n\t// VersionMajor is for an API incompatible changes\n\tVersionMajor = 1\n\t// VersionMinor is for functionality in a backwards-compatible manner\n\tVersionMinor = 0\n\t// VersionPatch is for backwards-compatible bug fixes\n\tVersionPatch = 2\n\n\t// VersionDev indicates development branch. Releases will be empty string.\n\tVersionDev = \"-dev\"\n)\n\n// Version is the specification version that the package types support.\nvar Version = fmt.Sprintf(\"%d.%d.%d%s\", VersionMajor, VersionMinor, VersionPatch, VersionDev)\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.travis.yml",
    "content": "language: go\ngo_import_path: github.com/pkg/errors\ngo:\n  - 1.11.x\n  - 1.12.x\n  - 1.13.x\n  - tip\n\nscript:\n  - make check\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/LICENSE",
    "content": "Copyright (c) 2015, Dave Cheney <dave@cheney.net>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/Makefile",
    "content": "PKGS := github.com/pkg/errors\nSRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))\nGO := go\n\ncheck: test vet gofmt misspell unconvert staticcheck ineffassign unparam\n\ntest: \n\t$(GO) test $(PKGS)\n\nvet: | test\n\t$(GO) vet $(PKGS)\n\nstaticcheck:\n\t$(GO) get honnef.co/go/tools/cmd/staticcheck\n\tstaticcheck -checks all $(PKGS)\n\nmisspell:\n\t$(GO) get github.com/client9/misspell/cmd/misspell\n\tmisspell \\\n\t\t-locale GB \\\n\t\t-error \\\n\t\t*.md *.go\n\nunconvert:\n\t$(GO) get github.com/mdempsky/unconvert\n\tunconvert -v $(PKGS)\n\nineffassign:\n\t$(GO) get github.com/gordonklaus/ineffassign\n\tfind $(SRCDIRS) -name '*.go' | xargs ineffassign\n\npedantic: check errcheck\n\nunparam:\n\t$(GO) get mvdan.cc/unparam\n\tunparam ./...\n\nerrcheck:\n\t$(GO) get github.com/kisielk/errcheck\n\terrcheck $(PKGS)\n\ngofmt:  \n\t@echo Checking code is gofmted\n\t@test -z \"$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)\"\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/README.md",
    "content": "# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge)\n\nPackage errors provides simple error handling primitives.\n\n`go get github.com/pkg/errors`\n\nThe traditional error handling idiom in Go is roughly akin to\n```go\nif err != nil {\n        return err\n}\n```\nwhich applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.\n\n## Adding context to an error\n\nThe errors.Wrap function returns a new error that adds context to the original error. For example\n```go\n_, err := ioutil.ReadAll(r)\nif err != nil {\n        return errors.Wrap(err, \"read failed\")\n}\n```\n## Retrieving the cause of an error\n\nUsing `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`.\n```go\ntype causer interface {\n        Cause() error\n}\n```\n`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example:\n```go\nswitch err := errors.Cause(err).(type) {\ncase *MyError:\n        // handle specifically\ndefault:\n        // unknown error\n}\n```\n\n[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).\n\n## Roadmap\n\nWith the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows:\n\n- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible)\n- 1.0. Final release.\n\n## Contributing\n\nBecause of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. \n\nBefore sending a PR, please discuss your change by raising an issue.\n\n## License\n\nBSD-2-Clause\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/appveyor.yml",
    "content": "version: build-{build}.{branch}\n\nclone_folder: C:\\gopath\\src\\github.com\\pkg\\errors\nshallow_clone: true # for startup speed\n\nenvironment:\n  GOPATH: C:\\gopath\n\nplatform:\n  - x64\n\n# http://www.appveyor.com/docs/installed-software\ninstall:\n  # some helpful output for debugging builds\n  - go version\n  - go env\n  # pre-installed MinGW at C:\\MinGW is 32bit only\n  # but MSYS2 at C:\\msys64 has mingw64\n  - set PATH=C:\\msys64\\mingw64\\bin;%PATH%\n  - gcc --version\n  - g++ --version\n\nbuild_script:\n  - go install -v ./...\n\ntest_script:\n  - set PATH=C:\\gopath\\bin;%PATH%\n  - go test -v ./...\n\n#artifacts:\n#  - path: '%GOPATH%\\bin\\*.exe'\ndeploy: off\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/errors.go",
    "content": "// Package errors provides simple error handling primitives.\n//\n// The traditional error handling idiom in Go is roughly akin to\n//\n//     if err != nil {\n//             return err\n//     }\n//\n// which when applied recursively up the call stack results in error reports\n// without context or debugging information. The errors package allows\n// programmers to add context to the failure path in their code in a way\n// that does not destroy the original value of the error.\n//\n// Adding context to an error\n//\n// The errors.Wrap function returns a new error that adds context to the\n// original error by recording a stack trace at the point Wrap is called,\n// together with the supplied message. For example\n//\n//     _, err := ioutil.ReadAll(r)\n//     if err != nil {\n//             return errors.Wrap(err, \"read failed\")\n//     }\n//\n// If additional control is required, the errors.WithStack and\n// errors.WithMessage functions destructure errors.Wrap into its component\n// operations: annotating an error with a stack trace and with a message,\n// respectively.\n//\n// Retrieving the cause of an error\n//\n// Using errors.Wrap constructs a stack of errors, adding context to the\n// preceding error. Depending on the nature of the error it may be necessary\n// to reverse the operation of errors.Wrap to retrieve the original error\n// for inspection. Any error value which implements this interface\n//\n//     type causer interface {\n//             Cause() error\n//     }\n//\n// can be inspected by errors.Cause. errors.Cause will recursively retrieve\n// the topmost error that does not implement causer, which is assumed to be\n// the original cause. For example:\n//\n//     switch err := errors.Cause(err).(type) {\n//     case *MyError:\n//             // handle specifically\n//     default:\n//             // unknown error\n//     }\n//\n// Although the causer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// Formatted printing of errors\n//\n// All error values returned from this package implement fmt.Formatter and can\n// be formatted by the fmt package. The following verbs are supported:\n//\n//     %s    print the error. If the error has a Cause it will be\n//           printed recursively.\n//     %v    see %s\n//     %+v   extended format. Each Frame of the error's StackTrace will\n//           be printed in detail.\n//\n// Retrieving the stack trace of an error or wrapper\n//\n// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are\n// invoked. This information can be retrieved with the following interface:\n//\n//     type stackTracer interface {\n//             StackTrace() errors.StackTrace\n//     }\n//\n// The returned errors.StackTrace type is defined as\n//\n//     type StackTrace []Frame\n//\n// The Frame type represents a call site in the stack trace. Frame supports\n// the fmt.Formatter interface that can be used for printing information about\n// the stack trace of this error. For example:\n//\n//     if err, ok := err.(stackTracer); ok {\n//             for _, f := range err.StackTrace() {\n//                     fmt.Printf(\"%+s:%d\\n\", f, f)\n//             }\n//     }\n//\n// Although the stackTracer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// See the documentation for Frame.Format for more details.\npackage errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// New returns an error with the supplied message.\n// New also records the stack trace at the point it was called.\nfunc New(message string) error {\n\treturn &fundamental{\n\t\tmsg:   message,\n\t\tstack: callers(),\n\t}\n}\n\n// Errorf formats according to a format specifier and returns the string\n// as a value that satisfies error.\n// Errorf also records the stack trace at the point it was called.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn &fundamental{\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t\tstack: callers(),\n\t}\n}\n\n// fundamental is an error that has a message and a stack, but no caller.\ntype fundamental struct {\n\tmsg string\n\t*stack\n}\n\nfunc (f *fundamental) Error() string { return f.msg }\n\nfunc (f *fundamental) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tio.WriteString(s, f.msg)\n\t\t\tf.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, f.msg)\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", f.msg)\n\t}\n}\n\n// WithStack annotates err with a stack trace at the point WithStack was called.\n// If err is nil, WithStack returns nil.\nfunc WithStack(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\ntype withStack struct {\n\terror\n\t*stack\n}\n\nfunc (w *withStack) Cause() error { return w.error }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withStack) Unwrap() error { return w.error }\n\nfunc (w *withStack) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\", w.Cause())\n\t\t\tw.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, w.Error())\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", w.Error())\n\t}\n}\n\n// Wrap returns an error annotating err with a stack trace\n// at the point Wrap is called, and the supplied message.\n// If err is nil, Wrap returns nil.\nfunc Wrap(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// Wrapf returns an error annotating err with a stack trace\n// at the point Wrapf is called, and the format specifier.\n// If err is nil, Wrapf returns nil.\nfunc Wrapf(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// WithMessage annotates err with a new message.\n// If err is nil, WithMessage returns nil.\nfunc WithMessage(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n}\n\n// WithMessagef annotates err with the format specifier.\n// If err is nil, WithMessagef returns nil.\nfunc WithMessagef(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n}\n\ntype withMessage struct {\n\tcause error\n\tmsg   string\n}\n\nfunc (w *withMessage) Error() string { return w.msg + \": \" + w.cause.Error() }\nfunc (w *withMessage) Cause() error  { return w.cause }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withMessage) Unwrap() error { return w.cause }\n\nfunc (w *withMessage) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\\n\", w.Cause())\n\t\t\tio.WriteString(s, w.msg)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's', 'q':\n\t\tio.WriteString(s, w.Error())\n\t}\n}\n\n// Cause returns the underlying cause of the error, if possible.\n// An error value has a cause if it implements the following\n// interface:\n//\n//     type causer interface {\n//            Cause() error\n//     }\n//\n// If the error does not implement Cause, the original error will\n// be returned. If the error is nil, nil will be returned without further\n// investigation.\nfunc Cause(err error) error {\n\ttype causer interface {\n\t\tCause() error\n\t}\n\n\tfor err != nil {\n\t\tcause, ok := err.(causer)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\terr = cause.Cause()\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/go113.go",
    "content": "// +build go1.13\n\npackage errors\n\nimport (\n\tstderrors \"errors\"\n)\n\n// Is reports whether any error in err's chain matches target.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error is considered to match a target if it is equal to that target or if\n// it implements a method Is(error) bool such that Is(target) returns true.\nfunc Is(err, target error) bool { return stderrors.Is(err, target) }\n\n// As finds the first error in err's chain that matches target, and if so, sets\n// target to that error value and returns true.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error matches target if the error's concrete value is assignable to the value\n// pointed to by target, or if the error has a method As(interface{}) bool such that\n// As(target) returns true. In the latter case, the As method is responsible for\n// setting target.\n//\n// As will panic if target is not a non-nil pointer to either a type that implements\n// error, or to any interface type. As returns false if err is nil.\nfunc As(err error, target interface{}) bool { return stderrors.As(err, target) }\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\nfunc Unwrap(err error) error {\n\treturn stderrors.Unwrap(err)\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/stack.go",
    "content": "package errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Frame represents a program counter inside a stack frame.\n// For historical reasons if Frame is interpreted as a uintptr\n// its value represents the program counter + 1.\ntype Frame uintptr\n\n// pc returns the program counter for this frame;\n// multiple frames may have the same PC value.\nfunc (f Frame) pc() uintptr { return uintptr(f) - 1 }\n\n// file returns the full path to the file that contains the\n// function for this Frame's pc.\nfunc (f Frame) file() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\tfile, _ := fn.FileLine(f.pc())\n\treturn file\n}\n\n// line returns the line number of source code of the\n// function for this Frame's pc.\nfunc (f Frame) line() int {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn 0\n\t}\n\t_, line := fn.FileLine(f.pc())\n\treturn line\n}\n\n// name returns the name of this function, if known.\nfunc (f Frame) name() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\treturn fn.Name()\n}\n\n// Format formats the frame according to the fmt.Formatter interface.\n//\n//    %s    source file\n//    %d    source line\n//    %n    function name\n//    %v    equivalent to %s:%d\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+s   function name and path of source file relative to the compile time\n//          GOPATH separated by \\n\\t (<funcname>\\n\\t<path>)\n//    %+v   equivalent to %+s:%d\nfunc (f Frame) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 's':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tio.WriteString(s, f.name())\n\t\t\tio.WriteString(s, \"\\n\\t\")\n\t\t\tio.WriteString(s, f.file())\n\t\tdefault:\n\t\t\tio.WriteString(s, path.Base(f.file()))\n\t\t}\n\tcase 'd':\n\t\tio.WriteString(s, strconv.Itoa(f.line()))\n\tcase 'n':\n\t\tio.WriteString(s, funcname(f.name()))\n\tcase 'v':\n\t\tf.Format(s, 's')\n\t\tio.WriteString(s, \":\")\n\t\tf.Format(s, 'd')\n\t}\n}\n\n// MarshalText formats a stacktrace Frame as a text string. The output is the\n// same as that of fmt.Sprintf(\"%+v\", f), but without newlines or tabs.\nfunc (f Frame) MarshalText() ([]byte, error) {\n\tname := f.name()\n\tif name == \"unknown\" {\n\t\treturn []byte(name), nil\n\t}\n\treturn []byte(fmt.Sprintf(\"%s %s:%d\", name, f.file(), f.line())), nil\n}\n\n// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).\ntype StackTrace []Frame\n\n// Format formats the stack of Frames according to the fmt.Formatter interface.\n//\n//    %s\tlists source files for each Frame in the stack\n//    %v\tlists the source file and line number for each Frame in the stack\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+v   Prints filename, function, and line number for each Frame in the stack.\nfunc (st StackTrace) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tfor _, f := range st {\n\t\t\t\tio.WriteString(s, \"\\n\")\n\t\t\t\tf.Format(s, verb)\n\t\t\t}\n\t\tcase s.Flag('#'):\n\t\t\tfmt.Fprintf(s, \"%#v\", []Frame(st))\n\t\tdefault:\n\t\t\tst.formatSlice(s, verb)\n\t\t}\n\tcase 's':\n\t\tst.formatSlice(s, verb)\n\t}\n}\n\n// formatSlice will format this StackTrace into the given buffer as a slice of\n// Frame, only valid when called with '%s' or '%v'.\nfunc (st StackTrace) formatSlice(s fmt.State, verb rune) {\n\tio.WriteString(s, \"[\")\n\tfor i, f := range st {\n\t\tif i > 0 {\n\t\t\tio.WriteString(s, \" \")\n\t\t}\n\t\tf.Format(s, verb)\n\t}\n\tio.WriteString(s, \"]\")\n}\n\n// stack represents a stack of program counters.\ntype stack []uintptr\n\nfunc (s *stack) Format(st fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase st.Flag('+'):\n\t\t\tfor _, pc := range *s {\n\t\t\t\tf := Frame(pc)\n\t\t\t\tfmt.Fprintf(st, \"\\n%+v\", f)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *stack) StackTrace() StackTrace {\n\tf := make([]Frame, len(*s))\n\tfor i := 0; i < len(f); i++ {\n\t\tf[i] = Frame((*s)[i])\n\t}\n\treturn f\n}\n\nfunc callers() *stack {\n\tconst depth = 32\n\tvar pcs [depth]uintptr\n\tn := runtime.Callers(3, pcs[:])\n\tvar st stack = pcs[0:n]\n\treturn &st\n}\n\n// funcname removes the path prefix component of a function's name reported by func.Name().\nfunc funcname(name string) string {\n\ti := strings.LastIndex(name, \"/\")\n\tname = name[i+1:]\n\ti = strings.Index(name, \".\")\n\treturn name[i+1:]\n}\n"
  },
  {
    "path": "vendor/github.com/pmezard/go-difflib/LICENSE",
    "content": "Copyright (c) 2013, Patrick Mezard\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n    The names of its contributors may not be used to endorse or promote\nproducts derived from this software without specific prior written\npermission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pmezard/go-difflib/difflib/difflib.go",
    "content": "// Package difflib is a partial port of Python difflib module.\n//\n// It provides tools to compare sequences of strings and generate textual diffs.\n//\n// The following class and functions have been ported:\n//\n// - SequenceMatcher\n//\n// - unified_diff\n//\n// - context_diff\n//\n// Getting unified diffs was the main goal of the port. Keep in mind this code\n// is mostly suitable to output text differences in a human friendly way, there\n// are no guarantees generated diffs are consumable by patch(1).\npackage difflib\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc max(a, b int) int {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc calculateRatio(matches, length int) float64 {\n\tif length > 0 {\n\t\treturn 2.0 * float64(matches) / float64(length)\n\t}\n\treturn 1.0\n}\n\ntype Match struct {\n\tA    int\n\tB    int\n\tSize int\n}\n\ntype OpCode struct {\n\tTag byte\n\tI1  int\n\tI2  int\n\tJ1  int\n\tJ2  int\n}\n\n// SequenceMatcher compares sequence of strings. The basic\n// algorithm predates, and is a little fancier than, an algorithm\n// published in the late 1980's by Ratcliff and Obershelp under the\n// hyperbolic name \"gestalt pattern matching\".  The basic idea is to find\n// the longest contiguous matching subsequence that contains no \"junk\"\n// elements (R-O doesn't address junk).  The same idea is then applied\n// recursively to the pieces of the sequences to the left and to the right\n// of the matching subsequence.  This does not yield minimal edit\n// sequences, but does tend to yield matches that \"look right\" to people.\n//\n// SequenceMatcher tries to compute a \"human-friendly diff\" between two\n// sequences.  Unlike e.g. UNIX(tm) diff, the fundamental notion is the\n// longest *contiguous* & junk-free matching subsequence.  That's what\n// catches peoples' eyes.  The Windows(tm) windiff has another interesting\n// notion, pairing up elements that appear uniquely in each sequence.\n// That, and the method here, appear to yield more intuitive difference\n// reports than does diff.  This method appears to be the least vulnerable\n// to synching up on blocks of \"junk lines\", though (like blank lines in\n// ordinary text files, or maybe \"<P>\" lines in HTML files).  That may be\n// because this is the only method of the 3 that has a *concept* of\n// \"junk\" <wink>.\n//\n// Timing:  Basic R-O is cubic time worst case and quadratic time expected\n// case.  SequenceMatcher is quadratic time for the worst case and has\n// expected-case behavior dependent in a complicated way on how many\n// elements the sequences have in common; best case time is linear.\ntype SequenceMatcher struct {\n\ta              []string\n\tb              []string\n\tb2j            map[string][]int\n\tIsJunk         func(string) bool\n\tautoJunk       bool\n\tbJunk          map[string]struct{}\n\tmatchingBlocks []Match\n\tfullBCount     map[string]int\n\tbPopular       map[string]struct{}\n\topCodes        []OpCode\n}\n\nfunc NewMatcher(a, b []string) *SequenceMatcher {\n\tm := SequenceMatcher{autoJunk: true}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\nfunc NewMatcherWithJunk(a, b []string, autoJunk bool,\n\tisJunk func(string) bool) *SequenceMatcher {\n\n\tm := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\n// Set two sequences to be compared.\nfunc (m *SequenceMatcher) SetSeqs(a, b []string) {\n\tm.SetSeq1(a)\n\tm.SetSeq2(b)\n}\n\n// Set the first sequence to be compared. The second sequence to be compared is\n// not changed.\n//\n// SequenceMatcher computes and caches detailed information about the second\n// sequence, so if you want to compare one sequence S against many sequences,\n// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other\n// sequences.\n//\n// See also SetSeqs() and SetSeq2().\nfunc (m *SequenceMatcher) SetSeq1(a []string) {\n\tif &a == &m.a {\n\t\treturn\n\t}\n\tm.a = a\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n}\n\n// Set the second sequence to be compared. The first sequence to be compared is\n// not changed.\nfunc (m *SequenceMatcher) SetSeq2(b []string) {\n\tif &b == &m.b {\n\t\treturn\n\t}\n\tm.b = b\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n\tm.fullBCount = nil\n\tm.chainB()\n}\n\nfunc (m *SequenceMatcher) chainB() {\n\t// Populate line -> index mapping\n\tb2j := map[string][]int{}\n\tfor i, s := range m.b {\n\t\tindices := b2j[s]\n\t\tindices = append(indices, i)\n\t\tb2j[s] = indices\n\t}\n\n\t// Purge junk elements\n\tm.bJunk = map[string]struct{}{}\n\tif m.IsJunk != nil {\n\t\tjunk := m.bJunk\n\t\tfor s, _ := range b2j {\n\t\t\tif m.IsJunk(s) {\n\t\t\t\tjunk[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s, _ := range junk {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\n\t// Purge remaining popular elements\n\tpopular := map[string]struct{}{}\n\tn := len(m.b)\n\tif m.autoJunk && n >= 200 {\n\t\tntest := n/100 + 1\n\t\tfor s, indices := range b2j {\n\t\t\tif len(indices) > ntest {\n\t\t\t\tpopular[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s, _ := range popular {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\tm.bPopular = popular\n\tm.b2j = b2j\n}\n\nfunc (m *SequenceMatcher) isBJunk(s string) bool {\n\t_, ok := m.bJunk[s]\n\treturn ok\n}\n\n// Find longest matching block in a[alo:ahi] and b[blo:bhi].\n//\n// If IsJunk is not defined:\n//\n// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where\n//     alo <= i <= i+k <= ahi\n//     blo <= j <= j+k <= bhi\n// and for all (i',j',k') meeting those conditions,\n//     k >= k'\n//     i <= i'\n//     and if i == i', j <= j'\n//\n// In other words, of all maximal matching blocks, return one that\n// starts earliest in a, and of all those maximal matching blocks that\n// start earliest in a, return the one that starts earliest in b.\n//\n// If IsJunk is defined, first the longest matching block is\n// determined as above, but with the additional restriction that no\n// junk element appears in the block.  Then that block is extended as\n// far as possible by matching (only) junk elements on both sides.  So\n// the resulting block never matches on junk except as identical junk\n// happens to be adjacent to an \"interesting\" match.\n//\n// If no blocks match, return (alo, blo, 0).\nfunc (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match {\n\t// CAUTION:  stripping common prefix or suffix would be incorrect.\n\t// E.g.,\n\t//    ab\n\t//    acab\n\t// Longest matching block is \"ab\", but if common prefix is\n\t// stripped, it's \"a\" (tied with \"b\").  UNIX(tm) diff does so\n\t// strip, so ends up claiming that ab is changed to acab by\n\t// inserting \"ca\" in the middle.  That's minimal but unintuitive:\n\t// \"it's obvious\" that someone inserted \"ac\" at the front.\n\t// Windiff ends up at the same place as diff, but by pairing up\n\t// the unique 'b's and then matching the first two 'a's.\n\tbesti, bestj, bestsize := alo, blo, 0\n\n\t// find longest junk-free match\n\t// during an iteration of the loop, j2len[j] = length of longest\n\t// junk-free match ending with a[i-1] and b[j]\n\tj2len := map[int]int{}\n\tfor i := alo; i != ahi; i++ {\n\t\t// look at all instances of a[i] in b; note that because\n\t\t// b2j has no junk keys, the loop is skipped if a[i] is junk\n\t\tnewj2len := map[int]int{}\n\t\tfor _, j := range m.b2j[m.a[i]] {\n\t\t\t// a[i] matches b[j]\n\t\t\tif j < blo {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif j >= bhi {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tk := j2len[j-1] + 1\n\t\t\tnewj2len[j] = k\n\t\t\tif k > bestsize {\n\t\t\t\tbesti, bestj, bestsize = i-k+1, j-k+1, k\n\t\t\t}\n\t\t}\n\t\tj2len = newj2len\n\t}\n\n\t// Extend the best by non-junk elements on each end.  In particular,\n\t// \"popular\" non-junk elements aren't in b2j, which greatly speeds\n\t// the inner loop above, but also means \"the best\" match so far\n\t// doesn't contain any junk *or* popular non-junk elements.\n\tfor besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\t!m.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize += 1\n\t}\n\n\t// Now that we have a wholly interesting match (albeit possibly\n\t// empty!), we may as well suck up the matching junk on each\n\t// side of it too.  Can't think of a good reason not to, and it\n\t// saves post-processing the (possibly considerable) expense of\n\t// figuring out what to do with it.  In the case of an empty\n\t// interesting match, this is clearly the right thing to do,\n\t// because no other kind of match is possible in the regions.\n\tfor besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\tm.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize += 1\n\t}\n\n\treturn Match{A: besti, B: bestj, Size: bestsize}\n}\n\n// Return list of triples describing matching subsequences.\n//\n// Each triple is of the form (i, j, n), and means that\n// a[i:i+n] == b[j:j+n].  The triples are monotonically increasing in\n// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are\n// adjacent triples in the list, and the second is not the last triple in the\n// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe\n// adjacent equal blocks.\n//\n// The last triple is a dummy, (len(a), len(b), 0), and is the only\n// triple with n==0.\nfunc (m *SequenceMatcher) GetMatchingBlocks() []Match {\n\tif m.matchingBlocks != nil {\n\t\treturn m.matchingBlocks\n\t}\n\n\tvar matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match\n\tmatchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match {\n\t\tmatch := m.findLongestMatch(alo, ahi, blo, bhi)\n\t\ti, j, k := match.A, match.B, match.Size\n\t\tif match.Size > 0 {\n\t\t\tif alo < i && blo < j {\n\t\t\t\tmatched = matchBlocks(alo, i, blo, j, matched)\n\t\t\t}\n\t\t\tmatched = append(matched, match)\n\t\t\tif i+k < ahi && j+k < bhi {\n\t\t\t\tmatched = matchBlocks(i+k, ahi, j+k, bhi, matched)\n\t\t\t}\n\t\t}\n\t\treturn matched\n\t}\n\tmatched := matchBlocks(0, len(m.a), 0, len(m.b), nil)\n\n\t// It's possible that we have adjacent equal blocks in the\n\t// matching_blocks list now.\n\tnonAdjacent := []Match{}\n\ti1, j1, k1 := 0, 0, 0\n\tfor _, b := range matched {\n\t\t// Is this block adjacent to i1, j1, k1?\n\t\ti2, j2, k2 := b.A, b.B, b.Size\n\t\tif i1+k1 == i2 && j1+k1 == j2 {\n\t\t\t// Yes, so collapse them -- this just increases the length of\n\t\t\t// the first block by the length of the second, and the first\n\t\t\t// block so lengthened remains the block to compare against.\n\t\t\tk1 += k2\n\t\t} else {\n\t\t\t// Not adjacent.  Remember the first block (k1==0 means it's\n\t\t\t// the dummy we started with), and make the second block the\n\t\t\t// new block to compare against.\n\t\t\tif k1 > 0 {\n\t\t\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t\t\t}\n\t\t\ti1, j1, k1 = i2, j2, k2\n\t\t}\n\t}\n\tif k1 > 0 {\n\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t}\n\n\tnonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0})\n\tm.matchingBlocks = nonAdjacent\n\treturn m.matchingBlocks\n}\n\n// Return list of 5-tuples describing how to turn a into b.\n//\n// Each tuple is of the form (tag, i1, i2, j1, j2).  The first tuple\n// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the\n// tuple preceding it, and likewise for j1 == the previous j2.\n//\n// The tags are characters, with these meanings:\n//\n// 'r' (replace):  a[i1:i2] should be replaced by b[j1:j2]\n//\n// 'd' (delete):   a[i1:i2] should be deleted, j1==j2 in this case.\n//\n// 'i' (insert):   b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case.\n//\n// 'e' (equal):    a[i1:i2] == b[j1:j2]\nfunc (m *SequenceMatcher) GetOpCodes() []OpCode {\n\tif m.opCodes != nil {\n\t\treturn m.opCodes\n\t}\n\ti, j := 0, 0\n\tmatching := m.GetMatchingBlocks()\n\topCodes := make([]OpCode, 0, len(matching))\n\tfor _, m := range matching {\n\t\t//  invariant:  we've pumped out correct diffs to change\n\t\t//  a[:i] into b[:j], and the next matching block is\n\t\t//  a[ai:ai+size] == b[bj:bj+size]. So we need to pump\n\t\t//  out a diff to change a[i:ai] into b[j:bj], pump out\n\t\t//  the matching block, and move (i,j) beyond the match\n\t\tai, bj, size := m.A, m.B, m.Size\n\t\ttag := byte(0)\n\t\tif i < ai && j < bj {\n\t\t\ttag = 'r'\n\t\t} else if i < ai {\n\t\t\ttag = 'd'\n\t\t} else if j < bj {\n\t\t\ttag = 'i'\n\t\t}\n\t\tif tag > 0 {\n\t\t\topCodes = append(opCodes, OpCode{tag, i, ai, j, bj})\n\t\t}\n\t\ti, j = ai+size, bj+size\n\t\t// the list of matching blocks is terminated by a\n\t\t// sentinel with size 0\n\t\tif size > 0 {\n\t\t\topCodes = append(opCodes, OpCode{'e', ai, i, bj, j})\n\t\t}\n\t}\n\tm.opCodes = opCodes\n\treturn m.opCodes\n}\n\n// Isolate change clusters by eliminating ranges with no changes.\n//\n// Return a generator of groups with up to n lines of context.\n// Each group is in the same format as returned by GetOpCodes().\nfunc (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode {\n\tif n < 0 {\n\t\tn = 3\n\t}\n\tcodes := m.GetOpCodes()\n\tif len(codes) == 0 {\n\t\tcodes = []OpCode{OpCode{'e', 0, 1, 0, 1}}\n\t}\n\t// Fixup leading and trailing groups if they show no changes.\n\tif codes[0].Tag == 'e' {\n\t\tc := codes[0]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2}\n\t}\n\tif codes[len(codes)-1].Tag == 'e' {\n\t\tc := codes[len(codes)-1]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)}\n\t}\n\tnn := n + n\n\tgroups := [][]OpCode{}\n\tgroup := []OpCode{}\n\tfor _, c := range codes {\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t// End the current group and start a new one whenever\n\t\t// there is a large range with no changes.\n\t\tif c.Tag == 'e' && i2-i1 > nn {\n\t\t\tgroup = append(group, OpCode{c.Tag, i1, min(i2, i1+n),\n\t\t\t\tj1, min(j2, j1+n)})\n\t\t\tgroups = append(groups, group)\n\t\t\tgroup = []OpCode{}\n\t\t\ti1, j1 = max(i1, i2-n), max(j1, j2-n)\n\t\t}\n\t\tgroup = append(group, OpCode{c.Tag, i1, i2, j1, j2})\n\t}\n\tif len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') {\n\t\tgroups = append(groups, group)\n\t}\n\treturn groups\n}\n\n// Return a measure of the sequences' similarity (float in [0,1]).\n//\n// Where T is the total number of elements in both sequences, and\n// M is the number of matches, this is 2.0*M / T.\n// Note that this is 1 if the sequences are identical, and 0 if\n// they have nothing in common.\n//\n// .Ratio() is expensive to compute if you haven't already computed\n// .GetMatchingBlocks() or .GetOpCodes(), in which case you may\n// want to try .QuickRatio() or .RealQuickRation() first to get an\n// upper bound.\nfunc (m *SequenceMatcher) Ratio() float64 {\n\tmatches := 0\n\tfor _, m := range m.GetMatchingBlocks() {\n\t\tmatches += m.Size\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() relatively quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute.\nfunc (m *SequenceMatcher) QuickRatio() float64 {\n\t// viewing a and b as multisets, set matches to the cardinality\n\t// of their intersection; this counts the number of matches\n\t// without regard to order, so is clearly an upper bound\n\tif m.fullBCount == nil {\n\t\tm.fullBCount = map[string]int{}\n\t\tfor _, s := range m.b {\n\t\t\tm.fullBCount[s] = m.fullBCount[s] + 1\n\t\t}\n\t}\n\n\t// avail[x] is the number of times x appears in 'b' less the\n\t// number of times we've seen it in 'a' so far ... kinda\n\tavail := map[string]int{}\n\tmatches := 0\n\tfor _, s := range m.a {\n\t\tn, ok := avail[s]\n\t\tif !ok {\n\t\t\tn = m.fullBCount[s]\n\t\t}\n\t\tavail[s] = n - 1\n\t\tif n > 0 {\n\t\t\tmatches += 1\n\t\t}\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() very quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute than either .Ratio() or .QuickRatio().\nfunc (m *SequenceMatcher) RealQuickRatio() float64 {\n\tla, lb := len(m.a), len(m.b)\n\treturn calculateRatio(min(la, lb), la+lb)\n}\n\n// Convert range to the \"ed\" format\nfunc formatRangeUnified(start, stop int) string {\n\t// Per the diff spec at http://www.unix.org/single_unix_specification/\n\tbeginning := start + 1 // lines start numbering with one\n\tlength := stop - start\n\tif length == 1 {\n\t\treturn fmt.Sprintf(\"%d\", beginning)\n\t}\n\tif length == 0 {\n\t\tbeginning -= 1 // empty ranges begin at line just before the range\n\t}\n\treturn fmt.Sprintf(\"%d,%d\", beginning, length)\n}\n\n// Unified diff parameters\ntype UnifiedDiff struct {\n\tA        []string // First sequence lines\n\tFromFile string   // First file name\n\tFromDate string   // First file time\n\tB        []string // Second sequence lines\n\tToFile   string   // Second file name\n\tToDate   string   // Second file time\n\tEol      string   // Headers end of line, defaults to LF\n\tContext  int      // Number of context lines\n}\n\n// Compare two sequences of lines; generate the delta as a unified diff.\n//\n// Unified diffs are a compact way of showing line changes and a few\n// lines of context.  The number of context lines is set by 'n' which\n// defaults to three.\n//\n// By default, the diff control lines (those with ---, +++, or @@) are\n// created with a trailing newline.  This is helpful so that inputs\n// created from file.readlines() result in diffs that are suitable for\n// file.writelines() since both the inputs and outputs have trailing\n// newlines.\n//\n// For inputs that do not have trailing newlines, set the lineterm\n// argument to \"\" so that the output will be uniformly newline free.\n//\n// The unidiff format normally has a header for filenames and modification\n// times.  Any or all of these may be specified using strings for\n// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'.\n// The modification times are normally expressed in the ISO 8601 format.\nfunc WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error {\n\tbuf := bufio.NewWriter(writer)\n\tdefer buf.Flush()\n\twf := func(format string, args ...interface{}) error {\n\t\t_, err := buf.WriteString(fmt.Sprintf(format, args...))\n\t\treturn err\n\t}\n\tws := func(s string) error {\n\t\t_, err := buf.WriteString(s)\n\t\treturn err\n\t}\n\n\tif len(diff.Eol) == 0 {\n\t\tdiff.Eol = \"\\n\"\n\t}\n\n\tstarted := false\n\tm := NewMatcher(diff.A, diff.B)\n\tfor _, g := range m.GetGroupedOpCodes(diff.Context) {\n\t\tif !started {\n\t\t\tstarted = true\n\t\t\tfromDate := \"\"\n\t\t\tif len(diff.FromDate) > 0 {\n\t\t\t\tfromDate = \"\\t\" + diff.FromDate\n\t\t\t}\n\t\t\ttoDate := \"\"\n\t\t\tif len(diff.ToDate) > 0 {\n\t\t\t\ttoDate = \"\\t\" + diff.ToDate\n\t\t\t}\n\t\t\tif diff.FromFile != \"\" || diff.ToFile != \"\" {\n\t\t\t\terr := wf(\"--- %s%s%s\", diff.FromFile, fromDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\terr = wf(\"+++ %s%s%s\", diff.ToFile, toDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfirst, last := g[0], g[len(g)-1]\n\t\trange1 := formatRangeUnified(first.I1, last.I2)\n\t\trange2 := formatRangeUnified(first.J1, last.J2)\n\t\tif err := wf(\"@@ -%s +%s @@%s\", range1, range2, diff.Eol); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, c := range g {\n\t\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t\tif c.Tag == 'e' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\" \" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'd' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\"-\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'i' {\n\t\t\t\tfor _, line := range diff.B[j1:j2] {\n\t\t\t\t\tif err := ws(\"+\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Like WriteUnifiedDiff but returns the diff a string.\nfunc GetUnifiedDiffString(diff UnifiedDiff) (string, error) {\n\tw := &bytes.Buffer{}\n\terr := WriteUnifiedDiff(w, diff)\n\treturn string(w.Bytes()), err\n}\n\n// Convert range to the \"ed\" format.\nfunc formatRangeContext(start, stop int) string {\n\t// Per the diff spec at http://www.unix.org/single_unix_specification/\n\tbeginning := start + 1 // lines start numbering with one\n\tlength := stop - start\n\tif length == 0 {\n\t\tbeginning -= 1 // empty ranges begin at line just before the range\n\t}\n\tif length <= 1 {\n\t\treturn fmt.Sprintf(\"%d\", beginning)\n\t}\n\treturn fmt.Sprintf(\"%d,%d\", beginning, beginning+length-1)\n}\n\ntype ContextDiff UnifiedDiff\n\n// Compare two sequences of lines; generate the delta as a context diff.\n//\n// Context diffs are a compact way of showing line changes and a few\n// lines of context. The number of context lines is set by diff.Context\n// which defaults to three.\n//\n// By default, the diff control lines (those with *** or ---) are\n// created with a trailing newline.\n//\n// For inputs that do not have trailing newlines, set the diff.Eol\n// argument to \"\" so that the output will be uniformly newline free.\n//\n// The context diff format normally has a header for filenames and\n// modification times.  Any or all of these may be specified using\n// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate.\n// The modification times are normally expressed in the ISO 8601 format.\n// If not specified, the strings default to blanks.\nfunc WriteContextDiff(writer io.Writer, diff ContextDiff) error {\n\tbuf := bufio.NewWriter(writer)\n\tdefer buf.Flush()\n\tvar diffErr error\n\twf := func(format string, args ...interface{}) {\n\t\t_, err := buf.WriteString(fmt.Sprintf(format, args...))\n\t\tif diffErr == nil && err != nil {\n\t\t\tdiffErr = err\n\t\t}\n\t}\n\tws := func(s string) {\n\t\t_, err := buf.WriteString(s)\n\t\tif diffErr == nil && err != nil {\n\t\t\tdiffErr = err\n\t\t}\n\t}\n\n\tif len(diff.Eol) == 0 {\n\t\tdiff.Eol = \"\\n\"\n\t}\n\n\tprefix := map[byte]string{\n\t\t'i': \"+ \",\n\t\t'd': \"- \",\n\t\t'r': \"! \",\n\t\t'e': \"  \",\n\t}\n\n\tstarted := false\n\tm := NewMatcher(diff.A, diff.B)\n\tfor _, g := range m.GetGroupedOpCodes(diff.Context) {\n\t\tif !started {\n\t\t\tstarted = true\n\t\t\tfromDate := \"\"\n\t\t\tif len(diff.FromDate) > 0 {\n\t\t\t\tfromDate = \"\\t\" + diff.FromDate\n\t\t\t}\n\t\t\ttoDate := \"\"\n\t\t\tif len(diff.ToDate) > 0 {\n\t\t\t\ttoDate = \"\\t\" + diff.ToDate\n\t\t\t}\n\t\t\tif diff.FromFile != \"\" || diff.ToFile != \"\" {\n\t\t\t\twf(\"*** %s%s%s\", diff.FromFile, fromDate, diff.Eol)\n\t\t\t\twf(\"--- %s%s%s\", diff.ToFile, toDate, diff.Eol)\n\t\t\t}\n\t\t}\n\n\t\tfirst, last := g[0], g[len(g)-1]\n\t\tws(\"***************\" + diff.Eol)\n\n\t\trange1 := formatRangeContext(first.I1, last.I2)\n\t\twf(\"*** %s ****%s\", range1, diff.Eol)\n\t\tfor _, c := range g {\n\t\t\tif c.Tag == 'r' || c.Tag == 'd' {\n\t\t\t\tfor _, cc := range g {\n\t\t\t\t\tif cc.Tag == 'i' {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tfor _, line := range diff.A[cc.I1:cc.I2] {\n\t\t\t\t\t\tws(prefix[cc.Tag] + line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\trange2 := formatRangeContext(first.J1, last.J2)\n\t\twf(\"--- %s ----%s\", range2, diff.Eol)\n\t\tfor _, c := range g {\n\t\t\tif c.Tag == 'r' || c.Tag == 'i' {\n\t\t\t\tfor _, cc := range g {\n\t\t\t\t\tif cc.Tag == 'd' {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tfor _, line := range diff.B[cc.J1:cc.J2] {\n\t\t\t\t\t\tws(prefix[cc.Tag] + line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn diffErr\n}\n\n// Like WriteContextDiff but returns the diff a string.\nfunc GetContextDiffString(diff ContextDiff) (string, error) {\n\tw := &bytes.Buffer{}\n\terr := WriteContextDiff(w, diff)\n\treturn string(w.Bytes()), err\n}\n\n// Split a string on \"\\n\" while preserving them. The output can be used\n// as input for UnifiedDiff and ContextDiff structures.\nfunc SplitLines(s string) []string {\n\tlines := strings.SplitAfter(s, \"\\n\")\n\tlines[len(lines)-1] += \"\\n\"\n\treturn lines\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/NOTICE",
    "content": "Prometheus instrumentation library for Go applications\nCopyright 2012-2015 The Prometheus Authors\n\nThis product includes software developed at\nSoundCloud Ltd. (http://soundcloud.com/).\n\n\nThe following components are included in this product:\n\nperks - a fork of https://github.com/bmizerany/perks\nhttps://github.com/beorn7/perks\nCopyright 2013-2015 Blake Mizerany, Björn Rabenstein\nSee https://github.com/beorn7/perks/blob/master/README.md for license details.\n\nGo support for Protocol Buffers - Google's data interchange format\nhttp://github.com/golang/protobuf/\nCopyright 2010 The Go Authors\nSee source code for license details.\n\nSupport for streaming Protocol Buffer messages for the Go language (golang).\nhttps://github.com/matttproud/golang_protobuf_extensions\nCopyright 2013 Matt T. Proud\nLicensed under the Apache License, Version 2.0\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/.gitignore",
    "content": "command-line-arguments.test\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/README.md",
    "content": "See [![Go Reference](https://pkg.go.dev/badge/github.com/prometheus/client_golang/prometheus.svg)](https://pkg.go.dev/github.com/prometheus/client_golang/prometheus).\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/build_info_collector.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport \"runtime/debug\"\n\n// NewBuildInfoCollector is the obsolete version of collectors.NewBuildInfoCollector.\n// See there for documentation.\n//\n// Deprecated: Use collectors.NewBuildInfoCollector instead.\nfunc NewBuildInfoCollector() Collector {\n\tpath, version, sum := \"unknown\", \"unknown\", \"unknown\"\n\tif bi, ok := debug.ReadBuildInfo(); ok {\n\t\tpath = bi.Main.Path\n\t\tversion = bi.Main.Version\n\t\tsum = bi.Main.Sum\n\t}\n\tc := &selfCollector{MustNewConstMetric(\n\t\tNewDesc(\n\t\t\t\"go_build_info\",\n\t\t\t\"Build information about the main Go module.\",\n\t\t\tnil, Labels{\"path\": path, \"version\": version, \"checksum\": sum},\n\t\t),\n\t\tGaugeValue, 1)}\n\tc.init(c.self)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/collector.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\n// Collector is the interface implemented by anything that can be used by\n// Prometheus to collect metrics. A Collector has to be registered for\n// collection. See Registerer.Register.\n//\n// The stock metrics provided by this package (Gauge, Counter, Summary,\n// Histogram, Untyped) are also Collectors (which only ever collect one metric,\n// namely itself). An implementer of Collector may, however, collect multiple\n// metrics in a coordinated fashion and/or create metrics on the fly. Examples\n// for collectors already implemented in this library are the metric vectors\n// (i.e. collection of multiple instances of the same Metric but with different\n// label values) like GaugeVec or SummaryVec, and the ExpvarCollector.\ntype Collector interface {\n\t// Describe sends the super-set of all possible descriptors of metrics\n\t// collected by this Collector to the provided channel and returns once\n\t// the last descriptor has been sent. The sent descriptors fulfill the\n\t// consistency and uniqueness requirements described in the Desc\n\t// documentation.\n\t//\n\t// It is valid if one and the same Collector sends duplicate\n\t// descriptors. Those duplicates are simply ignored. However, two\n\t// different Collectors must not send duplicate descriptors.\n\t//\n\t// Sending no descriptor at all marks the Collector as “unchecked”,\n\t// i.e. no checks will be performed at registration time, and the\n\t// Collector may yield any Metric it sees fit in its Collect method.\n\t//\n\t// This method idempotently sends the same descriptors throughout the\n\t// lifetime of the Collector. It may be called concurrently and\n\t// therefore must be implemented in a concurrency safe way.\n\t//\n\t// If a Collector encounters an error while executing this method, it\n\t// must send an invalid descriptor (created with NewInvalidDesc) to\n\t// signal the error to the registry.\n\tDescribe(chan<- *Desc)\n\t// Collect is called by the Prometheus registry when collecting\n\t// metrics. The implementation sends each collected metric via the\n\t// provided channel and returns once the last metric has been sent. The\n\t// descriptor of each sent metric is one of those returned by Describe\n\t// (unless the Collector is unchecked, see above). Returned metrics that\n\t// share the same descriptor must differ in their variable label\n\t// values.\n\t//\n\t// This method may be called concurrently and must therefore be\n\t// implemented in a concurrency safe way. Blocking occurs at the expense\n\t// of total performance of rendering all registered metrics. Ideally,\n\t// Collector implementations support concurrent readers.\n\tCollect(chan<- Metric)\n}\n\n// DescribeByCollect is a helper to implement the Describe method of a custom\n// Collector. It collects the metrics from the provided Collector and sends\n// their descriptors to the provided channel.\n//\n// If a Collector collects the same metrics throughout its lifetime, its\n// Describe method can simply be implemented as:\n//\n//\tfunc (c customCollector) Describe(ch chan<- *Desc) {\n//\t\tDescribeByCollect(c, ch)\n//\t}\n//\n// However, this will not work if the metrics collected change dynamically over\n// the lifetime of the Collector in a way that their combined set of descriptors\n// changes as well. The shortcut implementation will then violate the contract\n// of the Describe method. If a Collector sometimes collects no metrics at all\n// (for example vectors like CounterVec, GaugeVec, etc., which only collect\n// metrics after a metric with a fully specified label set has been accessed),\n// it might even get registered as an unchecked Collector (cf. the Register\n// method of the Registerer interface). Hence, only use this shortcut\n// implementation of Describe if you are certain to fulfill the contract.\n//\n// The Collector example demonstrates a use of DescribeByCollect.\nfunc DescribeByCollect(c Collector, descs chan<- *Desc) {\n\tmetrics := make(chan Metric)\n\tgo func() {\n\t\tc.Collect(metrics)\n\t\tclose(metrics)\n\t}()\n\tfor m := range metrics {\n\t\tdescs <- m.Desc()\n\t}\n}\n\n// selfCollector implements Collector for a single Metric so that the Metric\n// collects itself. Add it as an anonymous field to a struct that implements\n// Metric, and call init with the Metric itself as an argument.\ntype selfCollector struct {\n\tself Metric\n}\n\n// init provides the selfCollector with a reference to the metric it is supposed\n// to collect. It is usually called within the factory function to create a\n// metric. See example.\nfunc (c *selfCollector) init(self Metric) {\n\tc.self = self\n}\n\n// Describe implements Collector.\nfunc (c *selfCollector) Describe(ch chan<- *Desc) {\n\tch <- c.self.Desc()\n}\n\n// Collect implements Collector.\nfunc (c *selfCollector) Collect(ch chan<- Metric) {\n\tch <- c.self\n}\n\n// collectorMetric is a metric that is also a collector.\n// Because of selfCollector, most (if not all) Metrics in\n// this package are also collectors.\ntype collectorMetric interface {\n\tMetric\n\tCollector\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/counter.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// Counter is a Metric that represents a single numerical value that only ever\n// goes up. That implies that it cannot be used to count items whose number can\n// also go down, e.g. the number of currently running goroutines. Those\n// \"counters\" are represented by Gauges.\n//\n// A Counter is typically used to count requests served, tasks completed, errors\n// occurred, etc.\n//\n// To create Counter instances, use NewCounter.\ntype Counter interface {\n\tMetric\n\tCollector\n\n\t// Inc increments the counter by 1. Use Add to increment it by arbitrary\n\t// non-negative values.\n\tInc()\n\t// Add adds the given value to the counter. It panics if the value is <\n\t// 0.\n\tAdd(float64)\n}\n\n// ExemplarAdder is implemented by Counters that offer the option of adding a\n// value to the Counter together with an exemplar. Its AddWithExemplar method\n// works like the Add method of the Counter interface but also replaces the\n// currently saved exemplar (if any) with a new one, created from the provided\n// value, the current time as timestamp, and the provided labels. Empty Labels\n// will lead to a valid (label-less) exemplar. But if Labels is nil, the current\n// exemplar is left in place. AddWithExemplar panics if the value is < 0, if any\n// of the provided labels are invalid, or if the provided labels contain more\n// than 128 runes in total.\ntype ExemplarAdder interface {\n\tAddWithExemplar(value float64, exemplar Labels)\n}\n\n// CounterOpts is an alias for Opts. See there for doc comments.\ntype CounterOpts Opts\n\n// CounterVecOpts bundles the options to create a CounterVec metric.\n// It is mandatory to set CounterOpts, see there for mandatory fields. VariableLabels\n// is optional and can safely be left to its default value.\ntype CounterVecOpts struct {\n\tCounterOpts\n\n\t// VariableLabels are used to partition the metric vector by the given set\n\t// of labels. Each label value will be constrained with the optional Contraint\n\t// function, if provided.\n\tVariableLabels ConstrainableLabels\n}\n\n// NewCounter creates a new Counter based on the provided CounterOpts.\n//\n// The returned implementation also implements ExemplarAdder. It is safe to\n// perform the corresponding type assertion.\n//\n// The returned implementation tracks the counter value in two separate\n// variables, a float64 and a uint64. The latter is used to track calls of the\n// Inc method and calls of the Add method with a value that can be represented\n// as a uint64. This allows atomic increments of the counter with optimal\n// performance. (It is common to have an Inc call in very hot execution paths.)\n// Both internal tracking values are added up in the Write method. This has to\n// be taken into account when it comes to precision and overflow behavior.\nfunc NewCounter(opts CounterOpts) Counter {\n\tdesc := NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\tnil,\n\t\topts.ConstLabels,\n\t)\n\tresult := &counter{desc: desc, labelPairs: desc.constLabelPairs, now: time.Now}\n\tresult.init(result) // Init self-collection.\n\treturn result\n}\n\ntype counter struct {\n\t// valBits contains the bits of the represented float64 value, while\n\t// valInt stores values that are exact integers. Both have to go first\n\t// in the struct to guarantee alignment for atomic operations.\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\tvalBits uint64\n\tvalInt  uint64\n\n\tselfCollector\n\tdesc *Desc\n\n\tlabelPairs []*dto.LabelPair\n\texemplar   atomic.Value // Containing nil or a *dto.Exemplar.\n\n\tnow func() time.Time // To mock out time.Now() for testing.\n}\n\nfunc (c *counter) Desc() *Desc {\n\treturn c.desc\n}\n\nfunc (c *counter) Add(v float64) {\n\tif v < 0 {\n\t\tpanic(errors.New(\"counter cannot decrease in value\"))\n\t}\n\n\tival := uint64(v)\n\tif float64(ival) == v {\n\t\tatomic.AddUint64(&c.valInt, ival)\n\t\treturn\n\t}\n\n\tfor {\n\t\toldBits := atomic.LoadUint64(&c.valBits)\n\t\tnewBits := math.Float64bits(math.Float64frombits(oldBits) + v)\n\t\tif atomic.CompareAndSwapUint64(&c.valBits, oldBits, newBits) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (c *counter) AddWithExemplar(v float64, e Labels) {\n\tc.Add(v)\n\tc.updateExemplar(v, e)\n}\n\nfunc (c *counter) Inc() {\n\tatomic.AddUint64(&c.valInt, 1)\n}\n\nfunc (c *counter) get() float64 {\n\tfval := math.Float64frombits(atomic.LoadUint64(&c.valBits))\n\tival := atomic.LoadUint64(&c.valInt)\n\treturn fval + float64(ival)\n}\n\nfunc (c *counter) Write(out *dto.Metric) error {\n\t// Read the Exemplar first and the value second. This is to avoid a race condition\n\t// where users see an exemplar for a not-yet-existing observation.\n\tvar exemplar *dto.Exemplar\n\tif e := c.exemplar.Load(); e != nil {\n\t\texemplar = e.(*dto.Exemplar)\n\t}\n\tval := c.get()\n\n\treturn populateMetric(CounterValue, val, c.labelPairs, exemplar, out)\n}\n\nfunc (c *counter) updateExemplar(v float64, l Labels) {\n\tif l == nil {\n\t\treturn\n\t}\n\te, err := newExemplar(v, c.now(), l)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tc.exemplar.Store(e)\n}\n\n// CounterVec is a Collector that bundles a set of Counters that all share the\n// same Desc, but have different values for their variable labels. This is used\n// if you want to count the same thing partitioned by various dimensions\n// (e.g. number of HTTP requests, partitioned by response code and\n// method). Create instances with NewCounterVec.\ntype CounterVec struct {\n\t*MetricVec\n}\n\n// NewCounterVec creates a new CounterVec based on the provided CounterOpts and\n// partitioned by the given label names.\nfunc NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec {\n\treturn V2.NewCounterVec(CounterVecOpts{\n\t\tCounterOpts:    opts,\n\t\tVariableLabels: UnconstrainedLabels(labelNames),\n\t})\n}\n\n// NewCounterVec creates a new CounterVec based on the provided CounterVecOpts.\nfunc (v2) NewCounterVec(opts CounterVecOpts) *CounterVec {\n\tdesc := V2.NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\topts.VariableLabels,\n\t\topts.ConstLabels,\n\t)\n\treturn &CounterVec{\n\t\tMetricVec: NewMetricVec(desc, func(lvs ...string) Metric {\n\t\t\tif len(lvs) != len(desc.variableLabels) {\n\t\t\t\tpanic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels.labelNames(), lvs))\n\t\t\t}\n\t\t\tresult := &counter{desc: desc, labelPairs: MakeLabelPairs(desc, lvs), now: time.Now}\n\t\t\tresult.init(result) // Init self-collection.\n\t\t\treturn result\n\t\t}),\n\t}\n}\n\n// GetMetricWithLabelValues returns the Counter for the given slice of label\n// values (same order as the variable labels in Desc). If that combination of\n// label values is accessed for the first time, a new Counter is created.\n//\n// It is possible to call this method without using the returned Counter to only\n// create the new Counter but leave it at its starting value 0. See also the\n// SummaryVec example.\n//\n// Keeping the Counter for later use is possible (and should be considered if\n// performance is critical), but keep in mind that Reset, DeleteLabelValues and\n// Delete can be used to delete the Counter from the CounterVec. In that case,\n// the Counter will still exist, but it will not be exported anymore, even if a\n// Counter with the same label values is created later.\n//\n// An error is returned if the number of label values is not the same as the\n// number of variable labels in Desc (minus any curried labels).\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as\n// an alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\n// See also the GaugeVec example.\nfunc (v *CounterVec) GetMetricWithLabelValues(lvs ...string) (Counter, error) {\n\tmetric, err := v.MetricVec.GetMetricWithLabelValues(lvs...)\n\tif metric != nil {\n\t\treturn metric.(Counter), err\n\t}\n\treturn nil, err\n}\n\n// GetMetricWith returns the Counter for the given Labels map (the label names\n// must match those of the variable labels in Desc). If that label map is\n// accessed for the first time, a new Counter is created. Implications of\n// creating a Counter without using it and keeping the Counter for later use are\n// the same as for GetMetricWithLabelValues.\n//\n// An error is returned if the number and names of the Labels are inconsistent\n// with those of the variable labels in Desc (minus any curried labels).\n//\n// This method is used for the same purpose as\n// GetMetricWithLabelValues(...string). See there for pros and cons of the two\n// methods.\nfunc (v *CounterVec) GetMetricWith(labels Labels) (Counter, error) {\n\tmetric, err := v.MetricVec.GetMetricWith(labels)\n\tif metric != nil {\n\t\treturn metric.(Counter), err\n\t}\n\treturn nil, err\n}\n\n// WithLabelValues works as GetMetricWithLabelValues, but panics where\n// GetMetricWithLabelValues would have returned an error. Not returning an\n// error allows shortcuts like\n//\n//\tmyVec.WithLabelValues(\"404\", \"GET\").Add(42)\nfunc (v *CounterVec) WithLabelValues(lvs ...string) Counter {\n\tc, err := v.GetMetricWithLabelValues(lvs...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn c\n}\n\n// With works as GetMetricWith, but panics where GetMetricWithLabels would have\n// returned an error. Not returning an error allows shortcuts like\n//\n//\tmyVec.With(prometheus.Labels{\"code\": \"404\", \"method\": \"GET\"}).Add(42)\nfunc (v *CounterVec) With(labels Labels) Counter {\n\tc, err := v.GetMetricWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn c\n}\n\n// CurryWith returns a vector curried with the provided labels, i.e. the\n// returned vector has those labels pre-set for all labeled operations performed\n// on it. The cardinality of the curried vector is reduced accordingly. The\n// order of the remaining labels stays the same (just with the curried labels\n// taken out of the sequence – which is relevant for the\n// (GetMetric)WithLabelValues methods). It is possible to curry a curried\n// vector, but only with labels not yet used for currying before.\n//\n// The metrics contained in the CounterVec are shared between the curried and\n// uncurried vectors. They are just accessed differently. Curried and uncurried\n// vectors behave identically in terms of collection. Only one must be\n// registered with a given registry (usually the uncurried version). The Reset\n// method deletes all metrics, even if called on a curried vector.\nfunc (v *CounterVec) CurryWith(labels Labels) (*CounterVec, error) {\n\tvec, err := v.MetricVec.CurryWith(labels)\n\tif vec != nil {\n\t\treturn &CounterVec{vec}, err\n\t}\n\treturn nil, err\n}\n\n// MustCurryWith works as CurryWith but panics where CurryWith would have\n// returned an error.\nfunc (v *CounterVec) MustCurryWith(labels Labels) *CounterVec {\n\tvec, err := v.CurryWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn vec\n}\n\n// CounterFunc is a Counter whose value is determined at collect time by calling a\n// provided function.\n//\n// To create CounterFunc instances, use NewCounterFunc.\ntype CounterFunc interface {\n\tMetric\n\tCollector\n}\n\n// NewCounterFunc creates a new CounterFunc based on the provided\n// CounterOpts. The value reported is determined by calling the given function\n// from within the Write method. Take into account that metric collection may\n// happen concurrently. If that results in concurrent calls to Write, like in\n// the case where a CounterFunc is directly registered with Prometheus, the\n// provided function must be concurrency-safe. The function should also honor\n// the contract for a Counter (values only go up, not down), but compliance will\n// not be checked.\n//\n// Check out the ExampleGaugeFunc examples for the similar GaugeFunc.\nfunc NewCounterFunc(opts CounterOpts, function func() float64) CounterFunc {\n\treturn newValueFunc(NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\tnil,\n\t\topts.ConstLabels,\n\t), CounterValue, function)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/desc.go",
    "content": "// Copyright 2016 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/cespare/xxhash/v2\"\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"github.com/prometheus/common/model\"\n\t\"google.golang.org/protobuf/proto\"\n\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n)\n\n// Desc is the descriptor used by every Prometheus Metric. It is essentially\n// the immutable meta-data of a Metric. The normal Metric implementations\n// included in this package manage their Desc under the hood. Users only have to\n// deal with Desc if they use advanced features like the ExpvarCollector or\n// custom Collectors and Metrics.\n//\n// Descriptors registered with the same registry have to fulfill certain\n// consistency and uniqueness criteria if they share the same fully-qualified\n// name: They must have the same help string and the same label names (aka label\n// dimensions) in each, constLabels and variableLabels, but they must differ in\n// the values of the constLabels.\n//\n// Descriptors that share the same fully-qualified names and the same label\n// values of their constLabels are considered equal.\n//\n// Use NewDesc to create new Desc instances.\ntype Desc struct {\n\t// fqName has been built from Namespace, Subsystem, and Name.\n\tfqName string\n\t// help provides some helpful information about this metric.\n\thelp string\n\t// constLabelPairs contains precalculated DTO label pairs based on\n\t// the constant labels.\n\tconstLabelPairs []*dto.LabelPair\n\t// variableLabels contains names of labels and normalization function for\n\t// which the metric maintains variable values.\n\tvariableLabels ConstrainedLabels\n\t// id is a hash of the values of the ConstLabels and fqName. This\n\t// must be unique among all registered descriptors and can therefore be\n\t// used as an identifier of the descriptor.\n\tid uint64\n\t// dimHash is a hash of the label names (preset and variable) and the\n\t// Help string. Each Desc with the same fqName must have the same\n\t// dimHash.\n\tdimHash uint64\n\t// err is an error that occurred during construction. It is reported on\n\t// registration time.\n\terr error\n}\n\n// NewDesc allocates and initializes a new Desc. Errors are recorded in the Desc\n// and will be reported on registration time. variableLabels and constLabels can\n// be nil if no such labels should be set. fqName must not be empty.\n//\n// variableLabels only contain the label names. Their label values are variable\n// and therefore not part of the Desc. (They are managed within the Metric.)\n//\n// For constLabels, the label values are constant. Therefore, they are fully\n// specified in the Desc. See the Collector example for a usage pattern.\nfunc NewDesc(fqName, help string, variableLabels []string, constLabels Labels) *Desc {\n\treturn V2.NewDesc(fqName, help, UnconstrainedLabels(variableLabels), constLabels)\n}\n\n// NewDesc allocates and initializes a new Desc. Errors are recorded in the Desc\n// and will be reported on registration time. variableLabels and constLabels can\n// be nil if no such labels should be set. fqName must not be empty.\n//\n// variableLabels only contain the label names and normalization functions. Their\n// label values are variable and therefore not part of the Desc. (They are managed\n// within the Metric.)\n//\n// For constLabels, the label values are constant. Therefore, they are fully\n// specified in the Desc. See the Collector example for a usage pattern.\nfunc (v2) NewDesc(fqName, help string, variableLabels ConstrainableLabels, constLabels Labels) *Desc {\n\td := &Desc{\n\t\tfqName:         fqName,\n\t\thelp:           help,\n\t\tvariableLabels: variableLabels.constrainedLabels(),\n\t}\n\tif !model.IsValidMetricName(model.LabelValue(fqName)) {\n\t\td.err = fmt.Errorf(\"%q is not a valid metric name\", fqName)\n\t\treturn d\n\t}\n\t// labelValues contains the label values of const labels (in order of\n\t// their sorted label names) plus the fqName (at position 0).\n\tlabelValues := make([]string, 1, len(constLabels)+1)\n\tlabelValues[0] = fqName\n\tlabelNames := make([]string, 0, len(constLabels)+len(d.variableLabels))\n\tlabelNameSet := map[string]struct{}{}\n\t// First add only the const label names and sort them...\n\tfor labelName := range constLabels {\n\t\tif !checkLabelName(labelName) {\n\t\t\td.err = fmt.Errorf(\"%q is not a valid label name for metric %q\", labelName, fqName)\n\t\t\treturn d\n\t\t}\n\t\tlabelNames = append(labelNames, labelName)\n\t\tlabelNameSet[labelName] = struct{}{}\n\t}\n\tsort.Strings(labelNames)\n\t// ... so that we can now add const label values in the order of their names.\n\tfor _, labelName := range labelNames {\n\t\tlabelValues = append(labelValues, constLabels[labelName])\n\t}\n\t// Validate the const label values. They can't have a wrong cardinality, so\n\t// use in len(labelValues) as expectedNumberOfValues.\n\tif err := validateLabelValues(labelValues, len(labelValues)); err != nil {\n\t\td.err = err\n\t\treturn d\n\t}\n\t// Now add the variable label names, but prefix them with something that\n\t// cannot be in a regular label name. That prevents matching the label\n\t// dimension with a different mix between preset and variable labels.\n\tfor _, label := range d.variableLabels {\n\t\tif !checkLabelName(label.Name) {\n\t\t\td.err = fmt.Errorf(\"%q is not a valid label name for metric %q\", label.Name, fqName)\n\t\t\treturn d\n\t\t}\n\t\tlabelNames = append(labelNames, \"$\"+label.Name)\n\t\tlabelNameSet[label.Name] = struct{}{}\n\t}\n\tif len(labelNames) != len(labelNameSet) {\n\t\td.err = fmt.Errorf(\"duplicate label names in constant and variable labels for metric %q\", fqName)\n\t\treturn d\n\t}\n\n\txxh := xxhash.New()\n\tfor _, val := range labelValues {\n\t\txxh.WriteString(val)\n\t\txxh.Write(separatorByteSlice)\n\t}\n\td.id = xxh.Sum64()\n\t// Sort labelNames so that order doesn't matter for the hash.\n\tsort.Strings(labelNames)\n\t// Now hash together (in this order) the help string and the sorted\n\t// label names.\n\txxh.Reset()\n\txxh.WriteString(help)\n\txxh.Write(separatorByteSlice)\n\tfor _, labelName := range labelNames {\n\t\txxh.WriteString(labelName)\n\t\txxh.Write(separatorByteSlice)\n\t}\n\td.dimHash = xxh.Sum64()\n\n\td.constLabelPairs = make([]*dto.LabelPair, 0, len(constLabels))\n\tfor n, v := range constLabels {\n\t\td.constLabelPairs = append(d.constLabelPairs, &dto.LabelPair{\n\t\t\tName:  proto.String(n),\n\t\t\tValue: proto.String(v),\n\t\t})\n\t}\n\tsort.Sort(internal.LabelPairSorter(d.constLabelPairs))\n\treturn d\n}\n\n// NewInvalidDesc returns an invalid descriptor, i.e. a descriptor with the\n// provided error set. If a collector returning such a descriptor is registered,\n// registration will fail with the provided error. NewInvalidDesc can be used by\n// a Collector to signal inability to describe itself.\nfunc NewInvalidDesc(err error) *Desc {\n\treturn &Desc{\n\t\terr: err,\n\t}\n}\n\nfunc (d *Desc) String() string {\n\tlpStrings := make([]string, 0, len(d.constLabelPairs))\n\tfor _, lp := range d.constLabelPairs {\n\t\tlpStrings = append(\n\t\t\tlpStrings,\n\t\t\tfmt.Sprintf(\"%s=%q\", lp.GetName(), lp.GetValue()),\n\t\t)\n\t}\n\treturn fmt.Sprintf(\n\t\t\"Desc{fqName: %q, help: %q, constLabels: {%s}, variableLabels: %v}\",\n\t\td.fqName,\n\t\td.help,\n\t\tstrings.Join(lpStrings, \",\"),\n\t\td.variableLabels,\n\t)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/doc.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package prometheus is the core instrumentation package. It provides metrics\n// primitives to instrument code for monitoring. It also offers a registry for\n// metrics. Sub-packages allow to expose the registered metrics via HTTP\n// (package promhttp) or push them to a Pushgateway (package push). There is\n// also a sub-package promauto, which provides metrics constructors with\n// automatic registration.\n//\n// All exported functions and methods are safe to be used concurrently unless\n// specified otherwise.\n//\n// # A Basic Example\n//\n// As a starting point, a very basic usage example:\n//\n//\tpackage main\n//\n//\timport (\n//\t\t\"log\"\n//\t\t\"net/http\"\n//\n//\t\t\"github.com/prometheus/client_golang/prometheus\"\n//\t\t\"github.com/prometheus/client_golang/prometheus/promhttp\"\n//\t)\n//\n//\ttype metrics struct {\n//\t\tcpuTemp  prometheus.Gauge\n//\t\thdFailures *prometheus.CounterVec\n//\t}\n//\n//\tfunc NewMetrics(reg prometheus.Registerer) *metrics {\n//\t\tm := &metrics{\n//\t\t\tcpuTemp: prometheus.NewGauge(prometheus.GaugeOpts{\n//\t\t\t\tName: \"cpu_temperature_celsius\",\n//\t\t\t\tHelp: \"Current temperature of the CPU.\",\n//\t\t\t}),\n//\t\t\thdFailures: prometheus.NewCounterVec(\n//\t\t\t\tprometheus.CounterOpts{\n//\t\t\t\t\tName: \"hd_errors_total\",\n//\t\t\t\t\tHelp: \"Number of hard-disk errors.\",\n//\t\t\t\t},\n//\t\t\t\t[]string{\"device\"},\n//\t\t\t),\n//\t\t}\n//\t\treg.MustRegister(m.cpuTemp)\n//\t\treg.MustRegister(m.hdFailures)\n//\t\treturn m\n//\t}\n//\n//\tfunc main() {\n//\t\t// Create a non-global registry.\n//\t\treg := prometheus.NewRegistry()\n//\n//\t\t// Create new metrics and register them using the custom registry.\n//\t\tm := NewMetrics(reg)\n//\t\t// Set values for the new created metrics.\n//\t\tm.cpuTemp.Set(65.3)\n//\t\tm.hdFailures.With(prometheus.Labels{\"device\":\"/dev/sda\"}).Inc()\n//\n//\t\t// Expose metrics and custom registry via an HTTP server\n//\t\t// using the HandleFor function. \"/metrics\" is the usual endpoint for that.\n//\t\thttp.Handle(\"/metrics\", promhttp.HandlerFor(reg, promhttp.HandlerOpts{Registry: reg}))\n//\t\tlog.Fatal(http.ListenAndServe(\":8080\", nil))\n//\t}\n//\n// This is a complete program that exports two metrics, a Gauge and a Counter,\n// the latter with a label attached to turn it into a (one-dimensional) vector.\n// It register the metrics using a custom registry and exposes them via an HTTP server\n// on the /metrics endpoint.\n//\n// # Metrics\n//\n// The number of exported identifiers in this package might appear a bit\n// overwhelming. However, in addition to the basic plumbing shown in the example\n// above, you only need to understand the different metric types and their\n// vector versions for basic usage. Furthermore, if you are not concerned with\n// fine-grained control of when and how to register metrics with the registry,\n// have a look at the promauto package, which will effectively allow you to\n// ignore registration altogether in simple cases.\n//\n// Above, you have already touched the Counter and the Gauge. There are two more\n// advanced metric types: the Summary and Histogram. A more thorough description\n// of those four metric types can be found in the Prometheus docs:\n// https://prometheus.io/docs/concepts/metric_types/\n//\n// In addition to the fundamental metric types Gauge, Counter, Summary, and\n// Histogram, a very important part of the Prometheus data model is the\n// partitioning of samples along dimensions called labels, which results in\n// metric vectors. The fundamental types are GaugeVec, CounterVec, SummaryVec,\n// and HistogramVec.\n//\n// While only the fundamental metric types implement the Metric interface, both\n// the metrics and their vector versions implement the Collector interface. A\n// Collector manages the collection of a number of Metrics, but for convenience,\n// a Metric can also “collect itself”. Note that Gauge, Counter, Summary, and\n// Histogram are interfaces themselves while GaugeVec, CounterVec, SummaryVec,\n// and HistogramVec are not.\n//\n// To create instances of Metrics and their vector versions, you need a suitable\n// …Opts struct, i.e. GaugeOpts, CounterOpts, SummaryOpts, or HistogramOpts.\n//\n// # Custom Collectors and constant Metrics\n//\n// While you could create your own implementations of Metric, most likely you\n// will only ever implement the Collector interface on your own. At a first\n// glance, a custom Collector seems handy to bundle Metrics for common\n// registration (with the prime example of the different metric vectors above,\n// which bundle all the metrics of the same name but with different labels).\n//\n// There is a more involved use case, too: If you already have metrics\n// available, created outside of the Prometheus context, you don't need the\n// interface of the various Metric types. You essentially want to mirror the\n// existing numbers into Prometheus Metrics during collection. An own\n// implementation of the Collector interface is perfect for that. You can create\n// Metric instances “on the fly” using NewConstMetric, NewConstHistogram, and\n// NewConstSummary (and their respective Must… versions). NewConstMetric is used\n// for all metric types with just a float64 as their value: Counter, Gauge, and\n// a special “type” called Untyped. Use the latter if you are not sure if the\n// mirrored metric is a Counter or a Gauge. Creation of the Metric instance\n// happens in the Collect method. The Describe method has to return separate\n// Desc instances, representative of the “throw-away” metrics to be created\n// later.  NewDesc comes in handy to create those Desc instances. Alternatively,\n// you could return no Desc at all, which will mark the Collector “unchecked”.\n// No checks are performed at registration time, but metric consistency will\n// still be ensured at scrape time, i.e. any inconsistencies will lead to scrape\n// errors. Thus, with unchecked Collectors, the responsibility to not collect\n// metrics that lead to inconsistencies in the total scrape result lies with the\n// implementer of the Collector. While this is not a desirable state, it is\n// sometimes necessary. The typical use case is a situation where the exact\n// metrics to be returned by a Collector cannot be predicted at registration\n// time, but the implementer has sufficient knowledge of the whole system to\n// guarantee metric consistency.\n//\n// The Collector example illustrates the use case. You can also look at the\n// source code of the processCollector (mirroring process metrics), the\n// goCollector (mirroring Go metrics), or the expvarCollector (mirroring expvar\n// metrics) as examples that are used in this package itself.\n//\n// If you just need to call a function to get a single float value to collect as\n// a metric, GaugeFunc, CounterFunc, or UntypedFunc might be interesting\n// shortcuts.\n//\n// # Advanced Uses of the Registry\n//\n// While MustRegister is the by far most common way of registering a Collector,\n// sometimes you might want to handle the errors the registration might cause.\n// As suggested by the name, MustRegister panics if an error occurs. With the\n// Register function, the error is returned and can be handled.\n//\n// An error is returned if the registered Collector is incompatible or\n// inconsistent with already registered metrics. The registry aims for\n// consistency of the collected metrics according to the Prometheus data model.\n// Inconsistencies are ideally detected at registration time, not at collect\n// time. The former will usually be detected at start-up time of a program,\n// while the latter will only happen at scrape time, possibly not even on the\n// first scrape if the inconsistency only becomes relevant later. That is the\n// main reason why a Collector and a Metric have to describe themselves to the\n// registry.\n//\n// So far, everything we did operated on the so-called default registry, as it\n// can be found in the global DefaultRegisterer variable. With NewRegistry, you\n// can create a custom registry, or you can even implement the Registerer or\n// Gatherer interfaces yourself. The methods Register and Unregister work in the\n// same way on a custom registry as the global functions Register and Unregister\n// on the default registry.\n//\n// There are a number of uses for custom registries: You can use registries with\n// special properties, see NewPedanticRegistry. You can avoid global state, as\n// it is imposed by the DefaultRegisterer. You can use multiple registries at\n// the same time to expose different metrics in different ways.  You can use\n// separate registries for testing purposes.\n//\n// Also note that the DefaultRegisterer comes registered with a Collector for Go\n// runtime metrics (via NewGoCollector) and a Collector for process metrics (via\n// NewProcessCollector). With a custom registry, you are in control and decide\n// yourself about the Collectors to register.\n//\n// # HTTP Exposition\n//\n// The Registry implements the Gatherer interface. The caller of the Gather\n// method can then expose the gathered metrics in some way. Usually, the metrics\n// are served via HTTP on the /metrics endpoint. That's happening in the example\n// above. The tools to expose metrics via HTTP are in the promhttp sub-package.\n//\n// # Pushing to the Pushgateway\n//\n// Function for pushing to the Pushgateway can be found in the push sub-package.\n//\n// # Graphite Bridge\n//\n// Functions and examples to push metrics from a Gatherer to Graphite can be\n// found in the graphite sub-package.\n//\n// # Other Means of Exposition\n//\n// More ways of exposing metrics can easily be added by following the approaches\n// of the existing implementations.\npackage prometheus\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"encoding/json\"\n\t\"expvar\"\n)\n\ntype expvarCollector struct {\n\texports map[string]*Desc\n}\n\n// NewExpvarCollector is the obsolete version of collectors.NewExpvarCollector.\n// See there for documentation.\n//\n// Deprecated: Use collectors.NewExpvarCollector instead.\nfunc NewExpvarCollector(exports map[string]*Desc) Collector {\n\treturn &expvarCollector{\n\t\texports: exports,\n\t}\n}\n\n// Describe implements Collector.\nfunc (e *expvarCollector) Describe(ch chan<- *Desc) {\n\tfor _, desc := range e.exports {\n\t\tch <- desc\n\t}\n}\n\n// Collect implements Collector.\nfunc (e *expvarCollector) Collect(ch chan<- Metric) {\n\tfor name, desc := range e.exports {\n\t\tvar m Metric\n\t\texpVar := expvar.Get(name)\n\t\tif expVar == nil {\n\t\t\tcontinue\n\t\t}\n\t\tvar v interface{}\n\t\tlabels := make([]string, len(desc.variableLabels))\n\t\tif err := json.Unmarshal([]byte(expVar.String()), &v); err != nil {\n\t\t\tch <- NewInvalidMetric(desc, err)\n\t\t\tcontinue\n\t\t}\n\t\tvar processValue func(v interface{}, i int)\n\t\tprocessValue = func(v interface{}, i int) {\n\t\t\tif i >= len(labels) {\n\t\t\t\tcopiedLabels := append(make([]string, 0, len(labels)), labels...)\n\t\t\t\tswitch v := v.(type) {\n\t\t\t\tcase float64:\n\t\t\t\t\tm = MustNewConstMetric(desc, UntypedValue, v, copiedLabels...)\n\t\t\t\tcase bool:\n\t\t\t\t\tif v {\n\t\t\t\t\t\tm = MustNewConstMetric(desc, UntypedValue, 1, copiedLabels...)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tm = MustNewConstMetric(desc, UntypedValue, 0, copiedLabels...)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tch <- m\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvm, ok := v.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfor lv, val := range vm {\n\t\t\t\tlabels[i] = lv\n\t\t\t\tprocessValue(val, i+1)\n\t\t\t}\n\t\t}\n\t\tprocessValue(v, 0)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/fnv.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\n// Inline and byte-free variant of hash/fnv's fnv64a.\n\nconst (\n\toffset64 = 14695981039346656037\n\tprime64  = 1099511628211\n)\n\n// hashNew initializies a new fnv64a hash value.\nfunc hashNew() uint64 {\n\treturn offset64\n}\n\n// hashAdd adds a string to a fnv64a hash value, returning the updated hash.\nfunc hashAdd(h uint64, s string) uint64 {\n\tfor i := 0; i < len(s); i++ {\n\t\th ^= uint64(s[i])\n\t\th *= prime64\n\t}\n\treturn h\n}\n\n// hashAddByte adds a byte to a fnv64a hash value, returning the updated hash.\nfunc hashAddByte(h uint64, b byte) uint64 {\n\th ^= uint64(b)\n\th *= prime64\n\treturn h\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/gauge.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"math\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// Gauge is a Metric that represents a single numerical value that can\n// arbitrarily go up and down.\n//\n// A Gauge is typically used for measured values like temperatures or current\n// memory usage, but also \"counts\" that can go up and down, like the number of\n// running goroutines.\n//\n// To create Gauge instances, use NewGauge.\ntype Gauge interface {\n\tMetric\n\tCollector\n\n\t// Set sets the Gauge to an arbitrary value.\n\tSet(float64)\n\t// Inc increments the Gauge by 1. Use Add to increment it by arbitrary\n\t// values.\n\tInc()\n\t// Dec decrements the Gauge by 1. Use Sub to decrement it by arbitrary\n\t// values.\n\tDec()\n\t// Add adds the given value to the Gauge. (The value can be negative,\n\t// resulting in a decrease of the Gauge.)\n\tAdd(float64)\n\t// Sub subtracts the given value from the Gauge. (The value can be\n\t// negative, resulting in an increase of the Gauge.)\n\tSub(float64)\n\n\t// SetToCurrentTime sets the Gauge to the current Unix time in seconds.\n\tSetToCurrentTime()\n}\n\n// GaugeOpts is an alias for Opts. See there for doc comments.\ntype GaugeOpts Opts\n\n// GaugeVecOpts bundles the options to create a GaugeVec metric.\n// It is mandatory to set GaugeOpts, see there for mandatory fields. VariableLabels\n// is optional and can safely be left to its default value.\ntype GaugeVecOpts struct {\n\tGaugeOpts\n\n\t// VariableLabels are used to partition the metric vector by the given set\n\t// of labels. Each label value will be constrained with the optional Contraint\n\t// function, if provided.\n\tVariableLabels ConstrainableLabels\n}\n\n// NewGauge creates a new Gauge based on the provided GaugeOpts.\n//\n// The returned implementation is optimized for a fast Set method. If you have a\n// choice for managing the value of a Gauge via Set vs. Inc/Dec/Add/Sub, pick\n// the former. For example, the Inc method of the returned Gauge is slower than\n// the Inc method of a Counter returned by NewCounter. This matches the typical\n// scenarios for Gauges and Counters, where the former tends to be Set-heavy and\n// the latter Inc-heavy.\nfunc NewGauge(opts GaugeOpts) Gauge {\n\tdesc := NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\tnil,\n\t\topts.ConstLabels,\n\t)\n\tresult := &gauge{desc: desc, labelPairs: desc.constLabelPairs}\n\tresult.init(result) // Init self-collection.\n\treturn result\n}\n\ntype gauge struct {\n\t// valBits contains the bits of the represented float64 value. It has\n\t// to go first in the struct to guarantee alignment for atomic\n\t// operations.  http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\tvalBits uint64\n\n\tselfCollector\n\n\tdesc       *Desc\n\tlabelPairs []*dto.LabelPair\n}\n\nfunc (g *gauge) Desc() *Desc {\n\treturn g.desc\n}\n\nfunc (g *gauge) Set(val float64) {\n\tatomic.StoreUint64(&g.valBits, math.Float64bits(val))\n}\n\nfunc (g *gauge) SetToCurrentTime() {\n\tg.Set(float64(time.Now().UnixNano()) / 1e9)\n}\n\nfunc (g *gauge) Inc() {\n\tg.Add(1)\n}\n\nfunc (g *gauge) Dec() {\n\tg.Add(-1)\n}\n\nfunc (g *gauge) Add(val float64) {\n\tfor {\n\t\toldBits := atomic.LoadUint64(&g.valBits)\n\t\tnewBits := math.Float64bits(math.Float64frombits(oldBits) + val)\n\t\tif atomic.CompareAndSwapUint64(&g.valBits, oldBits, newBits) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (g *gauge) Sub(val float64) {\n\tg.Add(val * -1)\n}\n\nfunc (g *gauge) Write(out *dto.Metric) error {\n\tval := math.Float64frombits(atomic.LoadUint64(&g.valBits))\n\treturn populateMetric(GaugeValue, val, g.labelPairs, nil, out)\n}\n\n// GaugeVec is a Collector that bundles a set of Gauges that all share the same\n// Desc, but have different values for their variable labels. This is used if\n// you want to count the same thing partitioned by various dimensions\n// (e.g. number of operations queued, partitioned by user and operation\n// type). Create instances with NewGaugeVec.\ntype GaugeVec struct {\n\t*MetricVec\n}\n\n// NewGaugeVec creates a new GaugeVec based on the provided GaugeOpts and\n// partitioned by the given label names.\nfunc NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec {\n\treturn V2.NewGaugeVec(GaugeVecOpts{\n\t\tGaugeOpts:      opts,\n\t\tVariableLabels: UnconstrainedLabels(labelNames),\n\t})\n}\n\n// NewGaugeVec creates a new GaugeVec based on the provided GaugeVecOpts.\nfunc (v2) NewGaugeVec(opts GaugeVecOpts) *GaugeVec {\n\tdesc := V2.NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\topts.VariableLabels,\n\t\topts.ConstLabels,\n\t)\n\treturn &GaugeVec{\n\t\tMetricVec: NewMetricVec(desc, func(lvs ...string) Metric {\n\t\t\tif len(lvs) != len(desc.variableLabels) {\n\t\t\t\tpanic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels.labelNames(), lvs))\n\t\t\t}\n\t\t\tresult := &gauge{desc: desc, labelPairs: MakeLabelPairs(desc, lvs)}\n\t\t\tresult.init(result) // Init self-collection.\n\t\t\treturn result\n\t\t}),\n\t}\n}\n\n// GetMetricWithLabelValues returns the Gauge for the given slice of label\n// values (same order as the variable labels in Desc). If that combination of\n// label values is accessed for the first time, a new Gauge is created.\n//\n// It is possible to call this method without using the returned Gauge to only\n// create the new Gauge but leave it at its starting value 0. See also the\n// SummaryVec example.\n//\n// Keeping the Gauge for later use is possible (and should be considered if\n// performance is critical), but keep in mind that Reset, DeleteLabelValues and\n// Delete can be used to delete the Gauge from the GaugeVec. In that case, the\n// Gauge will still exist, but it will not be exported anymore, even if a\n// Gauge with the same label values is created later. See also the CounterVec\n// example.\n//\n// An error is returned if the number of label values is not the same as the\n// number of variable labels in Desc (minus any curried labels).\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as\n// an alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\nfunc (v *GaugeVec) GetMetricWithLabelValues(lvs ...string) (Gauge, error) {\n\tmetric, err := v.MetricVec.GetMetricWithLabelValues(lvs...)\n\tif metric != nil {\n\t\treturn metric.(Gauge), err\n\t}\n\treturn nil, err\n}\n\n// GetMetricWith returns the Gauge for the given Labels map (the label names\n// must match those of the variable labels in Desc). If that label map is\n// accessed for the first time, a new Gauge is created. Implications of\n// creating a Gauge without using it and keeping the Gauge for later use are\n// the same as for GetMetricWithLabelValues.\n//\n// An error is returned if the number and names of the Labels are inconsistent\n// with those of the variable labels in Desc (minus any curried labels).\n//\n// This method is used for the same purpose as\n// GetMetricWithLabelValues(...string). See there for pros and cons of the two\n// methods.\nfunc (v *GaugeVec) GetMetricWith(labels Labels) (Gauge, error) {\n\tmetric, err := v.MetricVec.GetMetricWith(labels)\n\tif metric != nil {\n\t\treturn metric.(Gauge), err\n\t}\n\treturn nil, err\n}\n\n// WithLabelValues works as GetMetricWithLabelValues, but panics where\n// GetMetricWithLabelValues would have returned an error. Not returning an\n// error allows shortcuts like\n//\n//\tmyVec.WithLabelValues(\"404\", \"GET\").Add(42)\nfunc (v *GaugeVec) WithLabelValues(lvs ...string) Gauge {\n\tg, err := v.GetMetricWithLabelValues(lvs...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn g\n}\n\n// With works as GetMetricWith, but panics where GetMetricWithLabels would have\n// returned an error. Not returning an error allows shortcuts like\n//\n//\tmyVec.With(prometheus.Labels{\"code\": \"404\", \"method\": \"GET\"}).Add(42)\nfunc (v *GaugeVec) With(labels Labels) Gauge {\n\tg, err := v.GetMetricWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn g\n}\n\n// CurryWith returns a vector curried with the provided labels, i.e. the\n// returned vector has those labels pre-set for all labeled operations performed\n// on it. The cardinality of the curried vector is reduced accordingly. The\n// order of the remaining labels stays the same (just with the curried labels\n// taken out of the sequence – which is relevant for the\n// (GetMetric)WithLabelValues methods). It is possible to curry a curried\n// vector, but only with labels not yet used for currying before.\n//\n// The metrics contained in the GaugeVec are shared between the curried and\n// uncurried vectors. They are just accessed differently. Curried and uncurried\n// vectors behave identically in terms of collection. Only one must be\n// registered with a given registry (usually the uncurried version). The Reset\n// method deletes all metrics, even if called on a curried vector.\nfunc (v *GaugeVec) CurryWith(labels Labels) (*GaugeVec, error) {\n\tvec, err := v.MetricVec.CurryWith(labels)\n\tif vec != nil {\n\t\treturn &GaugeVec{vec}, err\n\t}\n\treturn nil, err\n}\n\n// MustCurryWith works as CurryWith but panics where CurryWith would have\n// returned an error.\nfunc (v *GaugeVec) MustCurryWith(labels Labels) *GaugeVec {\n\tvec, err := v.CurryWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn vec\n}\n\n// GaugeFunc is a Gauge whose value is determined at collect time by calling a\n// provided function.\n//\n// To create GaugeFunc instances, use NewGaugeFunc.\ntype GaugeFunc interface {\n\tMetric\n\tCollector\n}\n\n// NewGaugeFunc creates a new GaugeFunc based on the provided GaugeOpts. The\n// value reported is determined by calling the given function from within the\n// Write method. Take into account that metric collection may happen\n// concurrently. Therefore, it must be safe to call the provided function\n// concurrently.\n//\n// NewGaugeFunc is a good way to create an “info” style metric with a constant\n// value of 1. Example:\n// https://github.com/prometheus/common/blob/8558a5b7db3c84fa38b4766966059a7bd5bfa2ee/version/info.go#L36-L56\nfunc NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc {\n\treturn newValueFunc(NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\tnil,\n\t\topts.ConstLabels,\n\t), GaugeValue, function)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/get_pid.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !js || wasm\n// +build !js wasm\n\npackage prometheus\n\nimport \"os\"\n\nfunc getPIDFn() func() (int, error) {\n\tpid := os.Getpid()\n\treturn func() (int, error) {\n\t\treturn pid, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/get_pid_gopherjs.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build js && !wasm\n// +build js,!wasm\n\npackage prometheus\n\nfunc getPIDFn() func() (int, error) {\n\treturn func() (int, error) {\n\t\treturn 1, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/go_collector.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"time\"\n)\n\n// goRuntimeMemStats provides the metrics initially provided by runtime.ReadMemStats.\n// From Go 1.17 those similar (and better) statistics are provided by runtime/metrics, so\n// while eval closure works on runtime.MemStats, the struct from Go 1.17+ is\n// populated using runtime/metrics.\nfunc goRuntimeMemStats() memStatsMetrics {\n\treturn memStatsMetrics{\n\t\t{\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"alloc_bytes\"),\n\t\t\t\t\"Number of bytes allocated and still in use.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.Alloc) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"alloc_bytes_total\"),\n\t\t\t\t\"Total number of bytes allocated, even if freed.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.TotalAlloc) },\n\t\t\tvalType: CounterValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"sys_bytes\"),\n\t\t\t\t\"Number of bytes obtained from system.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.Sys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"lookups_total\"),\n\t\t\t\t\"Total number of pointer lookups.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.Lookups) },\n\t\t\tvalType: CounterValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"mallocs_total\"),\n\t\t\t\t\"Total number of mallocs.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.Mallocs) },\n\t\t\tvalType: CounterValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"frees_total\"),\n\t\t\t\t\"Total number of frees.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.Frees) },\n\t\t\tvalType: CounterValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_alloc_bytes\"),\n\t\t\t\t\"Number of heap bytes allocated and still in use.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapAlloc) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_sys_bytes\"),\n\t\t\t\t\"Number of heap bytes obtained from system.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_idle_bytes\"),\n\t\t\t\t\"Number of heap bytes waiting to be used.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapIdle) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_inuse_bytes\"),\n\t\t\t\t\"Number of heap bytes that are in use.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapInuse) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_released_bytes\"),\n\t\t\t\t\"Number of heap bytes released to OS.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapReleased) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"heap_objects\"),\n\t\t\t\t\"Number of allocated objects.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.HeapObjects) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"stack_inuse_bytes\"),\n\t\t\t\t\"Number of bytes in use by the stack allocator.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.StackInuse) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"stack_sys_bytes\"),\n\t\t\t\t\"Number of bytes obtained from system for stack allocator.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.StackSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"mspan_inuse_bytes\"),\n\t\t\t\t\"Number of bytes in use by mspan structures.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.MSpanInuse) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"mspan_sys_bytes\"),\n\t\t\t\t\"Number of bytes used for mspan structures obtained from system.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.MSpanSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"mcache_inuse_bytes\"),\n\t\t\t\t\"Number of bytes in use by mcache structures.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.MCacheInuse) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"mcache_sys_bytes\"),\n\t\t\t\t\"Number of bytes used for mcache structures obtained from system.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.MCacheSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"buck_hash_sys_bytes\"),\n\t\t\t\t\"Number of bytes used by the profiling bucket hash table.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.BuckHashSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"gc_sys_bytes\"),\n\t\t\t\t\"Number of bytes used for garbage collection system metadata.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.GCSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"other_sys_bytes\"),\n\t\t\t\t\"Number of bytes used for other system allocations.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.OtherSys) },\n\t\t\tvalType: GaugeValue,\n\t\t}, {\n\t\t\tdesc: NewDesc(\n\t\t\t\tmemstatNamespace(\"next_gc_bytes\"),\n\t\t\t\t\"Number of heap bytes when next garbage collection will take place.\",\n\t\t\t\tnil, nil,\n\t\t\t),\n\t\t\teval:    func(ms *runtime.MemStats) float64 { return float64(ms.NextGC) },\n\t\t\tvalType: GaugeValue,\n\t\t},\n\t}\n}\n\ntype baseGoCollector struct {\n\tgoroutinesDesc *Desc\n\tthreadsDesc    *Desc\n\tgcDesc         *Desc\n\tgcLastTimeDesc *Desc\n\tgoInfoDesc     *Desc\n}\n\nfunc newBaseGoCollector() baseGoCollector {\n\treturn baseGoCollector{\n\t\tgoroutinesDesc: NewDesc(\n\t\t\t\"go_goroutines\",\n\t\t\t\"Number of goroutines that currently exist.\",\n\t\t\tnil, nil),\n\t\tthreadsDesc: NewDesc(\n\t\t\t\"go_threads\",\n\t\t\t\"Number of OS threads created.\",\n\t\t\tnil, nil),\n\t\tgcDesc: NewDesc(\n\t\t\t\"go_gc_duration_seconds\",\n\t\t\t\"A summary of the pause duration of garbage collection cycles.\",\n\t\t\tnil, nil),\n\t\tgcLastTimeDesc: NewDesc(\n\t\t\t\"go_memstats_last_gc_time_seconds\",\n\t\t\t\"Number of seconds since 1970 of last garbage collection.\",\n\t\t\tnil, nil),\n\t\tgoInfoDesc: NewDesc(\n\t\t\t\"go_info\",\n\t\t\t\"Information about the Go environment.\",\n\t\t\tnil, Labels{\"version\": runtime.Version()}),\n\t}\n}\n\n// Describe returns all descriptions of the collector.\nfunc (c *baseGoCollector) Describe(ch chan<- *Desc) {\n\tch <- c.goroutinesDesc\n\tch <- c.threadsDesc\n\tch <- c.gcDesc\n\tch <- c.gcLastTimeDesc\n\tch <- c.goInfoDesc\n}\n\n// Collect returns the current state of all metrics of the collector.\nfunc (c *baseGoCollector) Collect(ch chan<- Metric) {\n\tch <- MustNewConstMetric(c.goroutinesDesc, GaugeValue, float64(runtime.NumGoroutine()))\n\n\tn := getRuntimeNumThreads()\n\tch <- MustNewConstMetric(c.threadsDesc, GaugeValue, n)\n\n\tvar stats debug.GCStats\n\tstats.PauseQuantiles = make([]time.Duration, 5)\n\tdebug.ReadGCStats(&stats)\n\n\tquantiles := make(map[float64]float64)\n\tfor idx, pq := range stats.PauseQuantiles[1:] {\n\t\tquantiles[float64(idx+1)/float64(len(stats.PauseQuantiles)-1)] = pq.Seconds()\n\t}\n\tquantiles[0.0] = stats.PauseQuantiles[0].Seconds()\n\tch <- MustNewConstSummary(c.gcDesc, uint64(stats.NumGC), stats.PauseTotal.Seconds(), quantiles)\n\tch <- MustNewConstMetric(c.gcLastTimeDesc, GaugeValue, float64(stats.LastGC.UnixNano())/1e9)\n\tch <- MustNewConstMetric(c.goInfoDesc, GaugeValue, 1)\n}\n\nfunc memstatNamespace(s string) string {\n\treturn \"go_memstats_\" + s\n}\n\n// memStatsMetrics provide description, evaluator, runtime/metrics name, and\n// value type for memstat metrics.\ntype memStatsMetrics []struct {\n\tdesc    *Desc\n\teval    func(*runtime.MemStats) float64\n\tvalType ValueType\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/go_collector_go116.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !go1.17\n// +build !go1.17\n\npackage prometheus\n\nimport (\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n)\n\ntype goCollector struct {\n\tbase baseGoCollector\n\n\t// ms... are memstats related.\n\tmsLast          *runtime.MemStats // Previously collected memstats.\n\tmsLastTimestamp time.Time\n\tmsMtx           sync.Mutex // Protects msLast and msLastTimestamp.\n\tmsMetrics       memStatsMetrics\n\tmsRead          func(*runtime.MemStats) // For mocking in tests.\n\tmsMaxWait       time.Duration           // Wait time for fresh memstats.\n\tmsMaxAge        time.Duration           // Maximum allowed age of old memstats.\n}\n\n// NewGoCollector is the obsolete version of collectors.NewGoCollector.\n// See there for documentation.\n//\n// Deprecated: Use collectors.NewGoCollector instead.\nfunc NewGoCollector() Collector {\n\tmsMetrics := goRuntimeMemStats()\n\tmsMetrics = append(msMetrics, struct {\n\t\tdesc    *Desc\n\t\teval    func(*runtime.MemStats) float64\n\t\tvalType ValueType\n\t}{\n\t\t// This metric is omitted in Go1.17+, see https://github.com/prometheus/client_golang/issues/842#issuecomment-861812034\n\t\tdesc: NewDesc(\n\t\t\tmemstatNamespace(\"gc_cpu_fraction\"),\n\t\t\t\"The fraction of this program's available CPU time used by the GC since the program started.\",\n\t\t\tnil, nil,\n\t\t),\n\t\teval:    func(ms *runtime.MemStats) float64 { return ms.GCCPUFraction },\n\t\tvalType: GaugeValue,\n\t})\n\treturn &goCollector{\n\t\tbase:      newBaseGoCollector(),\n\t\tmsLast:    &runtime.MemStats{},\n\t\tmsRead:    runtime.ReadMemStats,\n\t\tmsMaxWait: time.Second,\n\t\tmsMaxAge:  5 * time.Minute,\n\t\tmsMetrics: msMetrics,\n\t}\n}\n\n// Describe returns all descriptions of the collector.\nfunc (c *goCollector) Describe(ch chan<- *Desc) {\n\tc.base.Describe(ch)\n\tfor _, i := range c.msMetrics {\n\t\tch <- i.desc\n\t}\n}\n\n// Collect returns the current state of all metrics of the collector.\nfunc (c *goCollector) Collect(ch chan<- Metric) {\n\tvar (\n\t\tms   = &runtime.MemStats{}\n\t\tdone = make(chan struct{})\n\t)\n\t// Start reading memstats first as it might take a while.\n\tgo func() {\n\t\tc.msRead(ms)\n\t\tc.msMtx.Lock()\n\t\tc.msLast = ms\n\t\tc.msLastTimestamp = time.Now()\n\t\tc.msMtx.Unlock()\n\t\tclose(done)\n\t}()\n\n\t// Collect base non-memory metrics.\n\tc.base.Collect(ch)\n\n\ttimer := time.NewTimer(c.msMaxWait)\n\tselect {\n\tcase <-done: // Our own ReadMemStats succeeded in time. Use it.\n\t\ttimer.Stop() // Important for high collection frequencies to not pile up timers.\n\t\tc.msCollect(ch, ms)\n\t\treturn\n\tcase <-timer.C: // Time out, use last memstats if possible. Continue below.\n\t}\n\tc.msMtx.Lock()\n\tif time.Since(c.msLastTimestamp) < c.msMaxAge {\n\t\t// Last memstats are recent enough. Collect from them under the lock.\n\t\tc.msCollect(ch, c.msLast)\n\t\tc.msMtx.Unlock()\n\t\treturn\n\t}\n\t// If we are here, the last memstats are too old or don't exist. We have\n\t// to wait until our own ReadMemStats finally completes. For that to\n\t// happen, we have to release the lock.\n\tc.msMtx.Unlock()\n\t<-done\n\tc.msCollect(ch, ms)\n}\n\nfunc (c *goCollector) msCollect(ch chan<- Metric, ms *runtime.MemStats) {\n\tfor _, i := range c.msMetrics {\n\t\tch <- MustNewConstMetric(i.desc, i.valType, i.eval(ms))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build go1.17\n// +build go1.17\n\npackage prometheus\n\nimport (\n\t\"math\"\n\t\"runtime\"\n\t\"runtime/metrics\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\nconst (\n\t// constants for strings referenced more than once.\n\tgoGCHeapTinyAllocsObjects               = \"/gc/heap/tiny/allocs:objects\"\n\tgoGCHeapAllocsObjects                   = \"/gc/heap/allocs:objects\"\n\tgoGCHeapFreesObjects                    = \"/gc/heap/frees:objects\"\n\tgoGCHeapFreesBytes                      = \"/gc/heap/frees:bytes\"\n\tgoGCHeapAllocsBytes                     = \"/gc/heap/allocs:bytes\"\n\tgoGCHeapObjects                         = \"/gc/heap/objects:objects\"\n\tgoGCHeapGoalBytes                       = \"/gc/heap/goal:bytes\"\n\tgoMemoryClassesTotalBytes               = \"/memory/classes/total:bytes\"\n\tgoMemoryClassesHeapObjectsBytes         = \"/memory/classes/heap/objects:bytes\"\n\tgoMemoryClassesHeapUnusedBytes          = \"/memory/classes/heap/unused:bytes\"\n\tgoMemoryClassesHeapReleasedBytes        = \"/memory/classes/heap/released:bytes\"\n\tgoMemoryClassesHeapFreeBytes            = \"/memory/classes/heap/free:bytes\"\n\tgoMemoryClassesHeapStacksBytes          = \"/memory/classes/heap/stacks:bytes\"\n\tgoMemoryClassesOSStacksBytes            = \"/memory/classes/os-stacks:bytes\"\n\tgoMemoryClassesMetadataMSpanInuseBytes  = \"/memory/classes/metadata/mspan/inuse:bytes\"\n\tgoMemoryClassesMetadataMSPanFreeBytes   = \"/memory/classes/metadata/mspan/free:bytes\"\n\tgoMemoryClassesMetadataMCacheInuseBytes = \"/memory/classes/metadata/mcache/inuse:bytes\"\n\tgoMemoryClassesMetadataMCacheFreeBytes  = \"/memory/classes/metadata/mcache/free:bytes\"\n\tgoMemoryClassesProfilingBucketsBytes    = \"/memory/classes/profiling/buckets:bytes\"\n\tgoMemoryClassesMetadataOtherBytes       = \"/memory/classes/metadata/other:bytes\"\n\tgoMemoryClassesOtherBytes               = \"/memory/classes/other:bytes\"\n)\n\n// rmNamesForMemStatsMetrics represents runtime/metrics names required to populate goRuntimeMemStats from like logic.\nvar rmNamesForMemStatsMetrics = []string{\n\tgoGCHeapTinyAllocsObjects,\n\tgoGCHeapAllocsObjects,\n\tgoGCHeapFreesObjects,\n\tgoGCHeapAllocsBytes,\n\tgoGCHeapObjects,\n\tgoGCHeapGoalBytes,\n\tgoMemoryClassesTotalBytes,\n\tgoMemoryClassesHeapObjectsBytes,\n\tgoMemoryClassesHeapUnusedBytes,\n\tgoMemoryClassesHeapReleasedBytes,\n\tgoMemoryClassesHeapFreeBytes,\n\tgoMemoryClassesHeapStacksBytes,\n\tgoMemoryClassesOSStacksBytes,\n\tgoMemoryClassesMetadataMSpanInuseBytes,\n\tgoMemoryClassesMetadataMSPanFreeBytes,\n\tgoMemoryClassesMetadataMCacheInuseBytes,\n\tgoMemoryClassesMetadataMCacheFreeBytes,\n\tgoMemoryClassesProfilingBucketsBytes,\n\tgoMemoryClassesMetadataOtherBytes,\n\tgoMemoryClassesOtherBytes,\n}\n\nfunc bestEffortLookupRM(lookup []string) []metrics.Description {\n\tret := make([]metrics.Description, 0, len(lookup))\n\tfor _, rm := range metrics.All() {\n\t\tfor _, m := range lookup {\n\t\t\tif m == rm.Name {\n\t\t\t\tret = append(ret, rm)\n\t\t\t}\n\t\t}\n\t}\n\treturn ret\n}\n\ntype goCollector struct {\n\tbase baseGoCollector\n\n\t// mu protects updates to all fields ensuring a consistent\n\t// snapshot is always produced by Collect.\n\tmu sync.Mutex\n\n\t// Contains all samples that has to retrieved from runtime/metrics (not all of them will be exposed).\n\tsampleBuf []metrics.Sample\n\t// sampleMap allows lookup for MemStats metrics and runtime/metrics histograms for exact sums.\n\tsampleMap map[string]*metrics.Sample\n\n\t// rmExposedMetrics represents all runtime/metrics package metrics\n\t// that were configured to be exposed.\n\trmExposedMetrics     []collectorMetric\n\trmExactSumMapForHist map[string]string\n\n\t// With Go 1.17, the runtime/metrics package was introduced.\n\t// From that point on, metric names produced by the runtime/metrics\n\t// package could be generated from runtime/metrics names. However,\n\t// these differ from the old names for the same values.\n\t//\n\t// This field exists to export the same values under the old names\n\t// as well.\n\tmsMetrics        memStatsMetrics\n\tmsMetricsEnabled bool\n}\n\ntype rmMetricDesc struct {\n\tmetrics.Description\n}\n\nfunc matchRuntimeMetricsRules(rules []internal.GoCollectorRule) []rmMetricDesc {\n\tvar descs []rmMetricDesc\n\tfor _, d := range metrics.All() {\n\t\tvar (\n\t\t\tdeny = true\n\t\t\tdesc rmMetricDesc\n\t\t)\n\n\t\tfor _, r := range rules {\n\t\t\tif !r.Matcher.MatchString(d.Name) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdeny = r.Deny\n\t\t}\n\t\tif deny {\n\t\t\tcontinue\n\t\t}\n\n\t\tdesc.Description = d\n\t\tdescs = append(descs, desc)\n\t}\n\treturn descs\n}\n\nfunc defaultGoCollectorOptions() internal.GoCollectorOptions {\n\treturn internal.GoCollectorOptions{\n\t\tRuntimeMetricSumForHist: map[string]string{\n\t\t\t\"/gc/heap/allocs-by-size:bytes\": goGCHeapAllocsBytes,\n\t\t\t\"/gc/heap/frees-by-size:bytes\":  goGCHeapFreesBytes,\n\t\t},\n\t\tRuntimeMetricRules: []internal.GoCollectorRule{\n\t\t\t//{Matcher: regexp.MustCompile(\"\")},\n\t\t},\n\t}\n}\n\n// NewGoCollector is the obsolete version of collectors.NewGoCollector.\n// See there for documentation.\n//\n// Deprecated: Use collectors.NewGoCollector instead.\nfunc NewGoCollector(opts ...func(o *internal.GoCollectorOptions)) Collector {\n\topt := defaultGoCollectorOptions()\n\tfor _, o := range opts {\n\t\to(&opt)\n\t}\n\n\texposedDescriptions := matchRuntimeMetricsRules(opt.RuntimeMetricRules)\n\n\t// Collect all histogram samples so that we can get their buckets.\n\t// The API guarantees that the buckets are always fixed for the lifetime\n\t// of the process.\n\tvar histograms []metrics.Sample\n\tfor _, d := range exposedDescriptions {\n\t\tif d.Kind == metrics.KindFloat64Histogram {\n\t\t\thistograms = append(histograms, metrics.Sample{Name: d.Name})\n\t\t}\n\t}\n\n\tif len(histograms) > 0 {\n\t\tmetrics.Read(histograms)\n\t}\n\n\tbucketsMap := make(map[string][]float64)\n\tfor i := range histograms {\n\t\tbucketsMap[histograms[i].Name] = histograms[i].Value.Float64Histogram().Buckets\n\t}\n\n\t// Generate a collector for each exposed runtime/metrics metric.\n\tmetricSet := make([]collectorMetric, 0, len(exposedDescriptions))\n\t// SampleBuf is used for reading from runtime/metrics.\n\t// We are assuming the largest case to have stable pointers for sampleMap purposes.\n\tsampleBuf := make([]metrics.Sample, 0, len(exposedDescriptions)+len(opt.RuntimeMetricSumForHist)+len(rmNamesForMemStatsMetrics))\n\tsampleMap := make(map[string]*metrics.Sample, len(exposedDescriptions))\n\tfor _, d := range exposedDescriptions {\n\t\tnamespace, subsystem, name, ok := internal.RuntimeMetricsToProm(&d.Description)\n\t\tif !ok {\n\t\t\t// Just ignore this metric; we can't do anything with it here.\n\t\t\t// If a user decides to use the latest version of Go, we don't want\n\t\t\t// to fail here. This condition is tested in TestExpectedRuntimeMetrics.\n\t\t\tcontinue\n\t\t}\n\n\t\tsampleBuf = append(sampleBuf, metrics.Sample{Name: d.Name})\n\t\tsampleMap[d.Name] = &sampleBuf[len(sampleBuf)-1]\n\n\t\tvar m collectorMetric\n\t\tif d.Kind == metrics.KindFloat64Histogram {\n\t\t\t_, hasSum := opt.RuntimeMetricSumForHist[d.Name]\n\t\t\tunit := d.Name[strings.IndexRune(d.Name, ':')+1:]\n\t\t\tm = newBatchHistogram(\n\t\t\t\tNewDesc(\n\t\t\t\t\tBuildFQName(namespace, subsystem, name),\n\t\t\t\t\td.Description.Description,\n\t\t\t\t\tnil,\n\t\t\t\t\tnil,\n\t\t\t\t),\n\t\t\t\tinternal.RuntimeMetricsBucketsForUnit(bucketsMap[d.Name], unit),\n\t\t\t\thasSum,\n\t\t\t)\n\t\t} else if d.Cumulative {\n\t\t\tm = NewCounter(CounterOpts{\n\t\t\t\tNamespace: namespace,\n\t\t\t\tSubsystem: subsystem,\n\t\t\t\tName:      name,\n\t\t\t\tHelp:      d.Description.Description,\n\t\t\t},\n\t\t\t)\n\t\t} else {\n\t\t\tm = NewGauge(GaugeOpts{\n\t\t\t\tNamespace: namespace,\n\t\t\t\tSubsystem: subsystem,\n\t\t\t\tName:      name,\n\t\t\t\tHelp:      d.Description.Description,\n\t\t\t})\n\t\t}\n\t\tmetricSet = append(metricSet, m)\n\t}\n\n\t// Add exact sum metrics to sampleBuf if not added before.\n\tfor _, h := range histograms {\n\t\tsumMetric, ok := opt.RuntimeMetricSumForHist[h.Name]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, ok := sampleMap[sumMetric]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tsampleBuf = append(sampleBuf, metrics.Sample{Name: sumMetric})\n\t\tsampleMap[sumMetric] = &sampleBuf[len(sampleBuf)-1]\n\t}\n\n\tvar (\n\t\tmsMetrics      memStatsMetrics\n\t\tmsDescriptions []metrics.Description\n\t)\n\n\tif !opt.DisableMemStatsLikeMetrics {\n\t\tmsMetrics = goRuntimeMemStats()\n\t\tmsDescriptions = bestEffortLookupRM(rmNamesForMemStatsMetrics)\n\n\t\t// Check if metric was not exposed before and if not, add to sampleBuf.\n\t\tfor _, mdDesc := range msDescriptions {\n\t\t\tif _, ok := sampleMap[mdDesc.Name]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsampleBuf = append(sampleBuf, metrics.Sample{Name: mdDesc.Name})\n\t\t\tsampleMap[mdDesc.Name] = &sampleBuf[len(sampleBuf)-1]\n\t\t}\n\t}\n\n\treturn &goCollector{\n\t\tbase:                 newBaseGoCollector(),\n\t\tsampleBuf:            sampleBuf,\n\t\tsampleMap:            sampleMap,\n\t\trmExposedMetrics:     metricSet,\n\t\trmExactSumMapForHist: opt.RuntimeMetricSumForHist,\n\t\tmsMetrics:            msMetrics,\n\t\tmsMetricsEnabled:     !opt.DisableMemStatsLikeMetrics,\n\t}\n}\n\n// Describe returns all descriptions of the collector.\nfunc (c *goCollector) Describe(ch chan<- *Desc) {\n\tc.base.Describe(ch)\n\tfor _, i := range c.msMetrics {\n\t\tch <- i.desc\n\t}\n\tfor _, m := range c.rmExposedMetrics {\n\t\tch <- m.Desc()\n\t}\n}\n\n// Collect returns the current state of all metrics of the collector.\nfunc (c *goCollector) Collect(ch chan<- Metric) {\n\t// Collect base non-memory metrics.\n\tc.base.Collect(ch)\n\n\tif len(c.sampleBuf) == 0 {\n\t\treturn\n\t}\n\n\t// Collect must be thread-safe, so prevent concurrent use of\n\t// sampleBuf elements. Just read into sampleBuf but write all the data\n\t// we get into our Metrics or MemStats.\n\t//\n\t// This lock also ensures that the Metrics we send out are all from\n\t// the same updates, ensuring their mutual consistency insofar as\n\t// is guaranteed by the runtime/metrics package.\n\t//\n\t// N.B. This locking is heavy-handed, but Collect is expected to be called\n\t// relatively infrequently. Also the core operation here, metrics.Read,\n\t// is fast (O(tens of microseconds)) so contention should certainly be\n\t// low, though channel operations and any allocations may add to that.\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\t// Populate runtime/metrics sample buffer.\n\tmetrics.Read(c.sampleBuf)\n\n\t// Collect all our runtime/metrics user chose to expose from sampleBuf (if any).\n\tfor i, metric := range c.rmExposedMetrics {\n\t\t// We created samples for exposed metrics first in order, so indexes match.\n\t\tsample := c.sampleBuf[i]\n\n\t\t// N.B. switch on concrete type because it's significantly more efficient\n\t\t// than checking for the Counter and Gauge interface implementations. In\n\t\t// this case, we control all the types here.\n\t\tswitch m := metric.(type) {\n\t\tcase *counter:\n\t\t\t// Guard against decreases. This should never happen, but a failure\n\t\t\t// to do so will result in a panic, which is a harsh consequence for\n\t\t\t// a metrics collection bug.\n\t\t\tv0, v1 := m.get(), unwrapScalarRMValue(sample.Value)\n\t\t\tif v1 > v0 {\n\t\t\t\tm.Add(unwrapScalarRMValue(sample.Value) - m.get())\n\t\t\t}\n\t\t\tm.Collect(ch)\n\t\tcase *gauge:\n\t\t\tm.Set(unwrapScalarRMValue(sample.Value))\n\t\t\tm.Collect(ch)\n\t\tcase *batchHistogram:\n\t\t\tm.update(sample.Value.Float64Histogram(), c.exactSumFor(sample.Name))\n\t\t\tm.Collect(ch)\n\t\tdefault:\n\t\t\tpanic(\"unexpected metric type\")\n\t\t}\n\t}\n\n\tif c.msMetricsEnabled {\n\t\t// ms is a dummy MemStats that we populate ourselves so that we can\n\t\t// populate the old metrics from it if goMemStatsCollection is enabled.\n\t\tvar ms runtime.MemStats\n\t\tmemStatsFromRM(&ms, c.sampleMap)\n\t\tfor _, i := range c.msMetrics {\n\t\t\tch <- MustNewConstMetric(i.desc, i.valType, i.eval(&ms))\n\t\t}\n\t}\n}\n\n// unwrapScalarRMValue unwraps a runtime/metrics value that is assumed\n// to be scalar and returns the equivalent float64 value. Panics if the\n// value is not scalar.\nfunc unwrapScalarRMValue(v metrics.Value) float64 {\n\tswitch v.Kind() {\n\tcase metrics.KindUint64:\n\t\treturn float64(v.Uint64())\n\tcase metrics.KindFloat64:\n\t\treturn v.Float64()\n\tcase metrics.KindBad:\n\t\t// Unsupported metric.\n\t\t//\n\t\t// This should never happen because we always populate our metric\n\t\t// set from the runtime/metrics package.\n\t\tpanic(\"unexpected unsupported metric\")\n\tdefault:\n\t\t// Unsupported metric kind.\n\t\t//\n\t\t// This should never happen because we check for this during initialization\n\t\t// and flag and filter metrics whose kinds we don't understand.\n\t\tpanic(\"unexpected unsupported metric kind\")\n\t}\n}\n\n// exactSumFor takes a runtime/metrics metric name (that is assumed to\n// be of kind KindFloat64Histogram) and returns its exact sum and whether\n// its exact sum exists.\n//\n// The runtime/metrics API for histograms doesn't currently expose exact\n// sums, but some of the other metrics are in fact exact sums of histograms.\nfunc (c *goCollector) exactSumFor(rmName string) float64 {\n\tsumName, ok := c.rmExactSumMapForHist[rmName]\n\tif !ok {\n\t\treturn 0\n\t}\n\ts, ok := c.sampleMap[sumName]\n\tif !ok {\n\t\treturn 0\n\t}\n\treturn unwrapScalarRMValue(s.Value)\n}\n\nfunc memStatsFromRM(ms *runtime.MemStats, rm map[string]*metrics.Sample) {\n\tlookupOrZero := func(name string) uint64 {\n\t\tif s, ok := rm[name]; ok {\n\t\t\treturn s.Value.Uint64()\n\t\t}\n\t\treturn 0\n\t}\n\n\t// Currently, MemStats adds tiny alloc count to both Mallocs AND Frees.\n\t// The reason for this is because MemStats couldn't be extended at the time\n\t// but there was a desire to have Mallocs at least be a little more representative,\n\t// while having Mallocs - Frees still represent a live object count.\n\t// Unfortunately, MemStats doesn't actually export a large allocation count,\n\t// so it's impossible to pull this number out directly.\n\ttinyAllocs := lookupOrZero(goGCHeapTinyAllocsObjects)\n\tms.Mallocs = lookupOrZero(goGCHeapAllocsObjects) + tinyAllocs\n\tms.Frees = lookupOrZero(goGCHeapFreesObjects) + tinyAllocs\n\n\tms.TotalAlloc = lookupOrZero(goGCHeapAllocsBytes)\n\tms.Sys = lookupOrZero(goMemoryClassesTotalBytes)\n\tms.Lookups = 0 // Already always zero.\n\tms.HeapAlloc = lookupOrZero(goMemoryClassesHeapObjectsBytes)\n\tms.Alloc = ms.HeapAlloc\n\tms.HeapInuse = ms.HeapAlloc + lookupOrZero(goMemoryClassesHeapUnusedBytes)\n\tms.HeapReleased = lookupOrZero(goMemoryClassesHeapReleasedBytes)\n\tms.HeapIdle = ms.HeapReleased + lookupOrZero(goMemoryClassesHeapFreeBytes)\n\tms.HeapSys = ms.HeapInuse + ms.HeapIdle\n\tms.HeapObjects = lookupOrZero(goGCHeapObjects)\n\tms.StackInuse = lookupOrZero(goMemoryClassesHeapStacksBytes)\n\tms.StackSys = ms.StackInuse + lookupOrZero(goMemoryClassesOSStacksBytes)\n\tms.MSpanInuse = lookupOrZero(goMemoryClassesMetadataMSpanInuseBytes)\n\tms.MSpanSys = ms.MSpanInuse + lookupOrZero(goMemoryClassesMetadataMSPanFreeBytes)\n\tms.MCacheInuse = lookupOrZero(goMemoryClassesMetadataMCacheInuseBytes)\n\tms.MCacheSys = ms.MCacheInuse + lookupOrZero(goMemoryClassesMetadataMCacheFreeBytes)\n\tms.BuckHashSys = lookupOrZero(goMemoryClassesProfilingBucketsBytes)\n\tms.GCSys = lookupOrZero(goMemoryClassesMetadataOtherBytes)\n\tms.OtherSys = lookupOrZero(goMemoryClassesOtherBytes)\n\tms.NextGC = lookupOrZero(goGCHeapGoalBytes)\n\n\t// N.B. GCCPUFraction is intentionally omitted. This metric is not useful,\n\t// and often misleading due to the fact that it's an average over the lifetime\n\t// of the process.\n\t// See https://github.com/prometheus/client_golang/issues/842#issuecomment-861812034\n\t// for more details.\n\tms.GCCPUFraction = 0\n}\n\n// batchHistogram is a mutable histogram that is updated\n// in batches.\ntype batchHistogram struct {\n\tselfCollector\n\n\t// Static fields updated only once.\n\tdesc   *Desc\n\thasSum bool\n\n\t// Because this histogram operates in batches, it just uses a\n\t// single mutex for everything. updates are always serialized\n\t// but Write calls may operate concurrently with updates.\n\t// Contention between these two sources should be rare.\n\tmu      sync.Mutex\n\tbuckets []float64 // Inclusive lower bounds, like runtime/metrics.\n\tcounts  []uint64\n\tsum     float64 // Used if hasSum is true.\n}\n\n// newBatchHistogram creates a new batch histogram value with the given\n// Desc, buckets, and whether or not it has an exact sum available.\n//\n// buckets must always be from the runtime/metrics package, following\n// the same conventions.\nfunc newBatchHistogram(desc *Desc, buckets []float64, hasSum bool) *batchHistogram {\n\t// We need to remove -Inf values. runtime/metrics keeps them around.\n\t// But -Inf bucket should not be allowed for prometheus histograms.\n\tif buckets[0] == math.Inf(-1) {\n\t\tbuckets = buckets[1:]\n\t}\n\th := &batchHistogram{\n\t\tdesc:    desc,\n\t\tbuckets: buckets,\n\t\t// Because buckets follows runtime/metrics conventions, there's\n\t\t// 1 more value in the buckets list than there are buckets represented,\n\t\t// because in runtime/metrics, the bucket values represent *boundaries*,\n\t\t// and non-Inf boundaries are inclusive lower bounds for that bucket.\n\t\tcounts: make([]uint64, len(buckets)-1),\n\t\thasSum: hasSum,\n\t}\n\th.init(h)\n\treturn h\n}\n\n// update updates the batchHistogram from a runtime/metrics histogram.\n//\n// sum must be provided if the batchHistogram was created to have an exact sum.\n// h.buckets must be a strict subset of his.Buckets.\nfunc (h *batchHistogram) update(his *metrics.Float64Histogram, sum float64) {\n\tcounts, buckets := his.Counts, his.Buckets\n\n\th.mu.Lock()\n\tdefer h.mu.Unlock()\n\n\t// Clear buckets.\n\tfor i := range h.counts {\n\t\th.counts[i] = 0\n\t}\n\t// Copy and reduce buckets.\n\tvar j int\n\tfor i, count := range counts {\n\t\th.counts[j] += count\n\t\tif buckets[i+1] == h.buckets[j+1] {\n\t\t\tj++\n\t\t}\n\t}\n\tif h.hasSum {\n\t\th.sum = sum\n\t}\n}\n\nfunc (h *batchHistogram) Desc() *Desc {\n\treturn h.desc\n}\n\nfunc (h *batchHistogram) Write(out *dto.Metric) error {\n\th.mu.Lock()\n\tdefer h.mu.Unlock()\n\n\tsum := float64(0)\n\tif h.hasSum {\n\t\tsum = h.sum\n\t}\n\tdtoBuckets := make([]*dto.Bucket, 0, len(h.counts))\n\ttotalCount := uint64(0)\n\tfor i, count := range h.counts {\n\t\ttotalCount += count\n\t\tif !h.hasSum {\n\t\t\tif count != 0 {\n\t\t\t\t// N.B. This computed sum is an underestimate.\n\t\t\t\tsum += h.buckets[i] * float64(count)\n\t\t\t}\n\t\t}\n\n\t\t// Skip the +Inf bucket, but only for the bucket list.\n\t\t// It must still count for sum and totalCount.\n\t\tif math.IsInf(h.buckets[i+1], 1) {\n\t\t\tbreak\n\t\t}\n\t\t// Float64Histogram's upper bound is exclusive, so make it inclusive\n\t\t// by obtaining the next float64 value down, in order.\n\t\tupperBound := math.Nextafter(h.buckets[i+1], h.buckets[i])\n\t\tdtoBuckets = append(dtoBuckets, &dto.Bucket{\n\t\t\tCumulativeCount: proto.Uint64(totalCount),\n\t\t\tUpperBound:      proto.Float64(upperBound),\n\t\t})\n\t}\n\tout.Histogram = &dto.Histogram{\n\t\tBucket:      dtoBuckets,\n\t\tSampleCount: proto.Uint64(totalCount),\n\t\tSampleSum:   proto.Float64(sum),\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/histogram.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"runtime\"\n\t\"sort\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// nativeHistogramBounds for the frac of observed values. Only relevant for\n// schema > 0. The position in the slice is the schema. (0 is never used, just\n// here for convenience of using the schema directly as the index.)\n//\n// TODO(beorn7): Currently, we do a binary search into these slices. There are\n// ways to turn it into a small number of simple array lookups. It probably only\n// matters for schema 5 and beyond, but should be investigated. See this comment\n// as a starting point:\n// https://github.com/open-telemetry/opentelemetry-specification/issues/1776#issuecomment-870164310\nvar nativeHistogramBounds = [][]float64{\n\t// Schema \"0\":\n\t{0.5},\n\t// Schema 1:\n\t{0.5, 0.7071067811865475},\n\t// Schema 2:\n\t{0.5, 0.5946035575013605, 0.7071067811865475, 0.8408964152537144},\n\t// Schema 3:\n\t{\n\t\t0.5, 0.5452538663326288, 0.5946035575013605, 0.6484197773255048,\n\t\t0.7071067811865475, 0.7711054127039704, 0.8408964152537144, 0.9170040432046711,\n\t},\n\t// Schema 4:\n\t{\n\t\t0.5, 0.5221368912137069, 0.5452538663326288, 0.5693943173783458,\n\t\t0.5946035575013605, 0.620928906036742, 0.6484197773255048, 0.6771277734684463,\n\t\t0.7071067811865475, 0.7384130729697496, 0.7711054127039704, 0.805245165974627,\n\t\t0.8408964152537144, 0.8781260801866495, 0.9170040432046711, 0.9576032806985735,\n\t},\n\t// Schema 5:\n\t{\n\t\t0.5, 0.5109485743270583, 0.5221368912137069, 0.5335702003384117,\n\t\t0.5452538663326288, 0.5571933712979462, 0.5693943173783458, 0.5818624293887887,\n\t\t0.5946035575013605, 0.6076236799902344, 0.620928906036742, 0.6345254785958666,\n\t\t0.6484197773255048, 0.6626183215798706, 0.6771277734684463, 0.6919549409819159,\n\t\t0.7071067811865475, 0.7225904034885232, 0.7384130729697496, 0.7545822137967112,\n\t\t0.7711054127039704, 0.7879904225539431, 0.805245165974627, 0.8228777390769823,\n\t\t0.8408964152537144, 0.8593096490612387, 0.8781260801866495, 0.8973545375015533,\n\t\t0.9170040432046711, 0.9370838170551498, 0.9576032806985735, 0.9785720620876999,\n\t},\n\t// Schema 6:\n\t{\n\t\t0.5, 0.5054446430258502, 0.5109485743270583, 0.5165124395106142,\n\t\t0.5221368912137069, 0.5278225891802786, 0.5335702003384117, 0.5393803988785598,\n\t\t0.5452538663326288, 0.5511912916539204, 0.5571933712979462, 0.5632608093041209,\n\t\t0.5693943173783458, 0.5755946149764913, 0.5818624293887887, 0.5881984958251406,\n\t\t0.5946035575013605, 0.6010783657263515, 0.6076236799902344, 0.6142402680534349,\n\t\t0.620928906036742, 0.6276903785123455, 0.6345254785958666, 0.6414350080393891,\n\t\t0.6484197773255048, 0.6554806057623822, 0.6626183215798706, 0.6698337620266515,\n\t\t0.6771277734684463, 0.6845012114872953, 0.6919549409819159, 0.6994898362691555,\n\t\t0.7071067811865475, 0.7148066691959849, 0.7225904034885232, 0.7304588970903234,\n\t\t0.7384130729697496, 0.7464538641456323, 0.7545822137967112, 0.762799075372269,\n\t\t0.7711054127039704, 0.7795022001189185, 0.7879904225539431, 0.7965710756711334,\n\t\t0.805245165974627, 0.8140137109286738, 0.8228777390769823, 0.8318382901633681,\n\t\t0.8408964152537144, 0.8500531768592616, 0.8593096490612387, 0.8686669176368529,\n\t\t0.8781260801866495, 0.8876882462632604, 0.8973545375015533, 0.9071260877501991,\n\t\t0.9170040432046711, 0.9269895625416926, 0.9370838170551498, 0.9472879907934827,\n\t\t0.9576032806985735, 0.9680308967461471, 0.9785720620876999, 0.9892280131939752,\n\t},\n\t// Schema 7:\n\t{\n\t\t0.5, 0.5027149505564014, 0.5054446430258502, 0.5081891574554764,\n\t\t0.5109485743270583, 0.5137229745593818, 0.5165124395106142, 0.5193170509806894,\n\t\t0.5221368912137069, 0.5249720429003435, 0.5278225891802786, 0.5306886136446309,\n\t\t0.5335702003384117, 0.5364674337629877, 0.5393803988785598, 0.5423091811066545,\n\t\t0.5452538663326288, 0.5482145409081883, 0.5511912916539204, 0.5541842058618393,\n\t\t0.5571933712979462, 0.5602188762048033, 0.5632608093041209, 0.5663192597993595,\n\t\t0.5693943173783458, 0.572486072215902, 0.5755946149764913, 0.5787200368168754,\n\t\t0.5818624293887887, 0.585021884841625, 0.5881984958251406, 0.5913923554921704,\n\t\t0.5946035575013605, 0.5978321960199137, 0.6010783657263515, 0.6043421618132907,\n\t\t0.6076236799902344, 0.6109230164863786, 0.6142402680534349, 0.6175755319684665,\n\t\t0.620928906036742, 0.6243004885946023, 0.6276903785123455, 0.6310986751971253,\n\t\t0.6345254785958666, 0.637970889198196, 0.6414350080393891, 0.6449179367033329,\n\t\t0.6484197773255048, 0.6519406325959679, 0.6554806057623822, 0.659039800633032,\n\t\t0.6626183215798706, 0.6662162735415805, 0.6698337620266515, 0.6734708931164728,\n\t\t0.6771277734684463, 0.6808045103191123, 0.6845012114872953, 0.688217985377265,\n\t\t0.6919549409819159, 0.6957121878859629, 0.6994898362691555, 0.7032879969095076,\n\t\t0.7071067811865475, 0.7109463010845827, 0.7148066691959849, 0.718687998724491,\n\t\t0.7225904034885232, 0.7265139979245261, 0.7304588970903234, 0.7344252166684908,\n\t\t0.7384130729697496, 0.7424225829363761, 0.7464538641456323, 0.7505070348132126,\n\t\t0.7545822137967112, 0.7586795205991071, 0.762799075372269, 0.7669409989204777,\n\t\t0.7711054127039704, 0.7752924388424999, 0.7795022001189185, 0.7837348199827764,\n\t\t0.7879904225539431, 0.7922691326262467, 0.7965710756711334, 0.8008963778413465,\n\t\t0.805245165974627, 0.8096175675974316, 0.8140137109286738, 0.8184337248834821,\n\t\t0.8228777390769823, 0.8273458838280969, 0.8318382901633681, 0.8363550898207981,\n\t\t0.8408964152537144, 0.8454623996346523, 0.8500531768592616, 0.8546688815502312,\n\t\t0.8593096490612387, 0.8639756154809185, 0.8686669176368529, 0.8733836930995842,\n\t\t0.8781260801866495, 0.8828942179666361, 0.8876882462632604, 0.8925083056594671,\n\t\t0.8973545375015533, 0.9022270839033115, 0.9071260877501991, 0.9120516927035263,\n\t\t0.9170040432046711, 0.9219832844793128, 0.9269895625416926, 0.9320230241988943,\n\t\t0.9370838170551498, 0.9421720895161669, 0.9472879907934827, 0.9524316709088368,\n\t\t0.9576032806985735, 0.9628029718180622, 0.9680308967461471, 0.9732872087896164,\n\t\t0.9785720620876999, 0.9838856116165875, 0.9892280131939752, 0.9945994234836328,\n\t},\n\t// Schema 8:\n\t{\n\t\t0.5, 0.5013556375251013, 0.5027149505564014, 0.5040779490592088,\n\t\t0.5054446430258502, 0.5068150424757447, 0.5081891574554764, 0.509566998038869,\n\t\t0.5109485743270583, 0.5123338964485679, 0.5137229745593818, 0.5151158188430205,\n\t\t0.5165124395106142, 0.5179128468009786, 0.5193170509806894, 0.520725062344158,\n\t\t0.5221368912137069, 0.5235525479396449, 0.5249720429003435, 0.526395386502313,\n\t\t0.5278225891802786, 0.5292536613972564, 0.5306886136446309, 0.5321274564422321,\n\t\t0.5335702003384117, 0.5350168559101208, 0.5364674337629877, 0.5379219445313954,\n\t\t0.5393803988785598, 0.5408428074966075, 0.5423091811066545, 0.5437795304588847,\n\t\t0.5452538663326288, 0.5467321995364429, 0.5482145409081883, 0.549700901315111,\n\t\t0.5511912916539204, 0.5526857228508706, 0.5541842058618393, 0.5556867516724088,\n\t\t0.5571933712979462, 0.5587040757836845, 0.5602188762048033, 0.5617377836665098,\n\t\t0.5632608093041209, 0.564787964283144, 0.5663192597993595, 0.5678547070789026,\n\t\t0.5693943173783458, 0.5709381019847808, 0.572486072215902, 0.5740382394200894,\n\t\t0.5755946149764913, 0.5771552102951081, 0.5787200368168754, 0.5802891060137493,\n\t\t0.5818624293887887, 0.5834400184762408, 0.585021884841625, 0.5866080400818185,\n\t\t0.5881984958251406, 0.5897932637314379, 0.5913923554921704, 0.5929957828304968,\n\t\t0.5946035575013605, 0.5962156912915756, 0.5978321960199137, 0.5994530835371903,\n\t\t0.6010783657263515, 0.6027080545025619, 0.6043421618132907, 0.6059806996384005,\n\t\t0.6076236799902344, 0.6092711149137041, 0.6109230164863786, 0.6125793968185725,\n\t\t0.6142402680534349, 0.6159056423670379, 0.6175755319684665, 0.6192499490999082,\n\t\t0.620928906036742, 0.622612415087629, 0.6243004885946023, 0.6259931389331581,\n\t\t0.6276903785123455, 0.6293922197748583, 0.6310986751971253, 0.6328097572894031,\n\t\t0.6345254785958666, 0.6362458516947014, 0.637970889198196, 0.6397006037528346,\n\t\t0.6414350080393891, 0.6431741147730128, 0.6449179367033329, 0.6466664866145447,\n\t\t0.6484197773255048, 0.6501778216898253, 0.6519406325959679, 0.6537082229673385,\n\t\t0.6554806057623822, 0.6572577939746774, 0.659039800633032, 0.6608266388015788,\n\t\t0.6626183215798706, 0.6644148621029772, 0.6662162735415805, 0.6680225691020727,\n\t\t0.6698337620266515, 0.6716498655934177, 0.6734708931164728, 0.6752968579460171,\n\t\t0.6771277734684463, 0.6789636531064505, 0.6808045103191123, 0.6826503586020058,\n\t\t0.6845012114872953, 0.6863570825438342, 0.688217985377265, 0.690083933630119,\n\t\t0.6919549409819159, 0.6938310211492645, 0.6957121878859629, 0.6975984549830999,\n\t\t0.6994898362691555, 0.7013863456101023, 0.7032879969095076, 0.7051948041086352,\n\t\t0.7071067811865475, 0.7090239421602076, 0.7109463010845827, 0.7128738720527471,\n\t\t0.7148066691959849, 0.7167447066838943, 0.718687998724491, 0.7206365595643126,\n\t\t0.7225904034885232, 0.7245495448210174, 0.7265139979245261, 0.7284837772007218,\n\t\t0.7304588970903234, 0.7324393720732029, 0.7344252166684908, 0.7364164454346837,\n\t\t0.7384130729697496, 0.7404151139112358, 0.7424225829363761, 0.7444354947621984,\n\t\t0.7464538641456323, 0.7484777058836176, 0.7505070348132126, 0.7525418658117031,\n\t\t0.7545822137967112, 0.7566280937263048, 0.7586795205991071, 0.7607365094544071,\n\t\t0.762799075372269, 0.7648672334736434, 0.7669409989204777, 0.7690203869158282,\n\t\t0.7711054127039704, 0.7731960915705107, 0.7752924388424999, 0.7773944698885442,\n\t\t0.7795022001189185, 0.7816156449856788, 0.7837348199827764, 0.7858597406461707,\n\t\t0.7879904225539431, 0.7901268813264122, 0.7922691326262467, 0.7944171921585818,\n\t\t0.7965710756711334, 0.7987307989543135, 0.8008963778413465, 0.8030678282083853,\n\t\t0.805245165974627, 0.8074284071024302, 0.8096175675974316, 0.8118126635086642,\n\t\t0.8140137109286738, 0.8162207259936375, 0.8184337248834821, 0.820652723822003,\n\t\t0.8228777390769823, 0.8251087869603088, 0.8273458838280969, 0.8295890460808079,\n\t\t0.8318382901633681, 0.8340936325652911, 0.8363550898207981, 0.8386226785089391,\n\t\t0.8408964152537144, 0.8431763167241966, 0.8454623996346523, 0.8477546807446661,\n\t\t0.8500531768592616, 0.8523579048290255, 0.8546688815502312, 0.8569861239649629,\n\t\t0.8593096490612387, 0.8616394738731368, 0.8639756154809185, 0.8663180910111553,\n\t\t0.8686669176368529, 0.871022112577578, 0.8733836930995842, 0.8757516765159389,\n\t\t0.8781260801866495, 0.8805069215187917, 0.8828942179666361, 0.8852879870317771,\n\t\t0.8876882462632604, 0.890095013257712, 0.8925083056594671, 0.8949281411607002,\n\t\t0.8973545375015533, 0.8997875124702672, 0.9022270839033115, 0.9046732696855155,\n\t\t0.9071260877501991, 0.909585556079304, 0.9120516927035263, 0.9145245157024483,\n\t\t0.9170040432046711, 0.9194902933879467, 0.9219832844793128, 0.9244830347552253,\n\t\t0.9269895625416926, 0.92950288621441, 0.9320230241988943, 0.9345499949706191,\n\t\t0.9370838170551498, 0.93962450902828, 0.9421720895161669, 0.9447265771954693,\n\t\t0.9472879907934827, 0.9498563490882775, 0.9524316709088368, 0.9550139751351947,\n\t\t0.9576032806985735, 0.9601996065815236, 0.9628029718180622, 0.9654133954938133,\n\t\t0.9680308967461471, 0.9706554947643201, 0.9732872087896164, 0.9759260581154889,\n\t\t0.9785720620876999, 0.9812252401044634, 0.9838856116165875, 0.9865531961276168,\n\t\t0.9892280131939752, 0.9919100824251095, 0.9945994234836328, 0.9972960560854698,\n\t},\n}\n\n// The nativeHistogramBounds above can be generated with the code below.\n//\n// TODO(beorn7): It's tempting to actually use `go generate` to generate the\n// code above. However, this could lead to slightly different numbers on\n// different architectures. We still need to come to terms if we are fine with\n// that, or if we might prefer to specify precise numbers in the standard.\n//\n// var nativeHistogramBounds [][]float64 = make([][]float64, 9)\n//\n// func init() {\n// \t// Populate nativeHistogramBounds.\n// \tnumBuckets := 1\n// \tfor i := range nativeHistogramBounds {\n// \t\tbounds := []float64{0.5}\n// \t\tfactor := math.Exp2(math.Exp2(float64(-i)))\n// \t\tfor j := 0; j < numBuckets-1; j++ {\n// \t\t\tvar bound float64\n// \t\t\tif (j+1)%2 == 0 {\n// \t\t\t\t// Use previously calculated value for increased precision.\n// \t\t\t\tbound = nativeHistogramBounds[i-1][j/2+1]\n// \t\t\t} else {\n// \t\t\t\tbound = bounds[j] * factor\n// \t\t\t}\n// \t\t\tbounds = append(bounds, bound)\n// \t\t}\n// \t\tnumBuckets *= 2\n// \t\tnativeHistogramBounds[i] = bounds\n// \t}\n// }\n\n// A Histogram counts individual observations from an event or sample stream in\n// configurable static buckets (or in dynamic sparse buckets as part of the\n// experimental Native Histograms, see below for more details). Similar to a\n// Summary, it also provides a sum of observations and an observation count.\n//\n// On the Prometheus server, quantiles can be calculated from a Histogram using\n// the histogram_quantile PromQL function.\n//\n// Note that Histograms, in contrast to Summaries, can be aggregated in PromQL\n// (see the documentation for detailed procedures). However, Histograms require\n// the user to pre-define suitable buckets, and they are in general less\n// accurate. (Both problems are addressed by the experimental Native\n// Histograms. To use them, configure a NativeHistogramBucketFactor in the\n// HistogramOpts. They also require a Prometheus server v2.40+ with the\n// corresponding feature flag enabled.)\n//\n// The Observe method of a Histogram has a very low performance overhead in\n// comparison with the Observe method of a Summary.\n//\n// To create Histogram instances, use NewHistogram.\ntype Histogram interface {\n\tMetric\n\tCollector\n\n\t// Observe adds a single observation to the histogram. Observations are\n\t// usually positive or zero. Negative observations are accepted but\n\t// prevent current versions of Prometheus from properly detecting\n\t// counter resets in the sum of observations. (The experimental Native\n\t// Histograms handle negative observations properly.) See\n\t// https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations\n\t// for details.\n\tObserve(float64)\n}\n\n// bucketLabel is used for the label that defines the upper bound of a\n// bucket of a histogram (\"le\" -> \"less or equal\").\nconst bucketLabel = \"le\"\n\n// DefBuckets are the default Histogram buckets. The default buckets are\n// tailored to broadly measure the response time (in seconds) of a network\n// service. Most likely, however, you will be required to define buckets\n// customized to your use case.\nvar DefBuckets = []float64{.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10}\n\n// DefNativeHistogramZeroThreshold is the default value for\n// NativeHistogramZeroThreshold in the HistogramOpts.\n//\n// The value is 2^-128 (or 0.5*2^-127 in the actual IEEE 754 representation),\n// which is a bucket boundary at all possible resolutions.\nconst DefNativeHistogramZeroThreshold = 2.938735877055719e-39\n\n// NativeHistogramZeroThresholdZero can be used as NativeHistogramZeroThreshold\n// in the HistogramOpts to create a zero bucket of width zero, i.e. a zero\n// bucket that only receives observations of precisely zero.\nconst NativeHistogramZeroThresholdZero = -1\n\nvar errBucketLabelNotAllowed = fmt.Errorf(\n\t\"%q is not allowed as label name in histograms\", bucketLabel,\n)\n\n// LinearBuckets creates 'count' regular buckets, each 'width' wide, where the\n// lowest bucket has an upper bound of 'start'. The final +Inf bucket is not\n// counted and not included in the returned slice. The returned slice is meant\n// to be used for the Buckets field of HistogramOpts.\n//\n// The function panics if 'count' is zero or negative.\nfunc LinearBuckets(start, width float64, count int) []float64 {\n\tif count < 1 {\n\t\tpanic(\"LinearBuckets needs a positive count\")\n\t}\n\tbuckets := make([]float64, count)\n\tfor i := range buckets {\n\t\tbuckets[i] = start\n\t\tstart += width\n\t}\n\treturn buckets\n}\n\n// ExponentialBuckets creates 'count' regular buckets, where the lowest bucket\n// has an upper bound of 'start' and each following bucket's upper bound is\n// 'factor' times the previous bucket's upper bound. The final +Inf bucket is\n// not counted and not included in the returned slice. The returned slice is\n// meant to be used for the Buckets field of HistogramOpts.\n//\n// The function panics if 'count' is 0 or negative, if 'start' is 0 or negative,\n// or if 'factor' is less than or equal 1.\nfunc ExponentialBuckets(start, factor float64, count int) []float64 {\n\tif count < 1 {\n\t\tpanic(\"ExponentialBuckets needs a positive count\")\n\t}\n\tif start <= 0 {\n\t\tpanic(\"ExponentialBuckets needs a positive start value\")\n\t}\n\tif factor <= 1 {\n\t\tpanic(\"ExponentialBuckets needs a factor greater than 1\")\n\t}\n\tbuckets := make([]float64, count)\n\tfor i := range buckets {\n\t\tbuckets[i] = start\n\t\tstart *= factor\n\t}\n\treturn buckets\n}\n\n// ExponentialBucketsRange creates 'count' buckets, where the lowest bucket is\n// 'min' and the highest bucket is 'max'. The final +Inf bucket is not counted\n// and not included in the returned slice. The returned slice is meant to be\n// used for the Buckets field of HistogramOpts.\n//\n// The function panics if 'count' is 0 or negative, if 'min' is 0 or negative.\nfunc ExponentialBucketsRange(min, max float64, count int) []float64 {\n\tif count < 1 {\n\t\tpanic(\"ExponentialBucketsRange count needs a positive count\")\n\t}\n\tif min <= 0 {\n\t\tpanic(\"ExponentialBucketsRange min needs to be greater than 0\")\n\t}\n\n\t// Formula for exponential buckets.\n\t// max = min*growthFactor^(bucketCount-1)\n\n\t// We know max/min and highest bucket. Solve for growthFactor.\n\tgrowthFactor := math.Pow(max/min, 1.0/float64(count-1))\n\n\t// Now that we know growthFactor, solve for each bucket.\n\tbuckets := make([]float64, count)\n\tfor i := 1; i <= count; i++ {\n\t\tbuckets[i-1] = min * math.Pow(growthFactor, float64(i-1))\n\t}\n\treturn buckets\n}\n\n// HistogramOpts bundles the options for creating a Histogram metric. It is\n// mandatory to set Name to a non-empty string. All other fields are optional\n// and can safely be left at their zero value, although it is strongly\n// encouraged to set a Help string.\ntype HistogramOpts struct {\n\t// Namespace, Subsystem, and Name are components of the fully-qualified\n\t// name of the Histogram (created by joining these components with\n\t// \"_\"). Only Name is mandatory, the others merely help structuring the\n\t// name. Note that the fully-qualified name of the Histogram must be a\n\t// valid Prometheus metric name.\n\tNamespace string\n\tSubsystem string\n\tName      string\n\n\t// Help provides information about this Histogram.\n\t//\n\t// Metrics with the same fully-qualified name must have the same Help\n\t// string.\n\tHelp string\n\n\t// ConstLabels are used to attach fixed labels to this metric. Metrics\n\t// with the same fully-qualified name must have the same label names in\n\t// their ConstLabels.\n\t//\n\t// ConstLabels are only used rarely. In particular, do not use them to\n\t// attach the same labels to all your metrics. Those use cases are\n\t// better covered by target labels set by the scraping Prometheus\n\t// server, or by one specific metric (e.g. a build_info or a\n\t// machine_role metric). See also\n\t// https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels\n\tConstLabels Labels\n\n\t// Buckets defines the buckets into which observations are counted. Each\n\t// element in the slice is the upper inclusive bound of a bucket. The\n\t// values must be sorted in strictly increasing order. There is no need\n\t// to add a highest bucket with +Inf bound, it will be added\n\t// implicitly. If Buckets is left as nil or set to a slice of length\n\t// zero, it is replaced by default buckets. The default buckets are\n\t// DefBuckets if no buckets for a native histogram (see below) are used,\n\t// otherwise the default is no buckets. (In other words, if you want to\n\t// use both reguler buckets and buckets for a native histogram, you have\n\t// to define the regular buckets here explicitly.)\n\tBuckets []float64\n\n\t// If NativeHistogramBucketFactor is greater than one, so-called sparse\n\t// buckets are used (in addition to the regular buckets, if defined\n\t// above). A Histogram with sparse buckets will be ingested as a Native\n\t// Histogram by a Prometheus server with that feature enabled (requires\n\t// Prometheus v2.40+). Sparse buckets are exponential buckets covering\n\t// the whole float64 range (with the exception of the “zero” bucket, see\n\t// NativeHistogramZeroThreshold below). From any one bucket to the next,\n\t// the width of the bucket grows by a constant\n\t// factor. NativeHistogramBucketFactor provides an upper bound for this\n\t// factor (exception see below). The smaller\n\t// NativeHistogramBucketFactor, the more buckets will be used and thus\n\t// the more costly the histogram will become. A generally good trade-off\n\t// between cost and accuracy is a value of 1.1 (each bucket is at most\n\t// 10% wider than the previous one), which will result in each power of\n\t// two divided into 8 buckets (e.g. there will be 8 buckets between 1\n\t// and 2, same as between 2 and 4, and 4 and 8, etc.).\n\t//\n\t// Details about the actually used factor: The factor is calculated as\n\t// 2^(2^n), where n is an integer number between (and including) -8 and\n\t// 4. n is chosen so that the resulting factor is the largest that is\n\t// still smaller or equal to NativeHistogramBucketFactor. Note that the\n\t// smallest possible factor is therefore approx. 1.00271 (i.e. 2^(2^-8)\n\t// ). If NativeHistogramBucketFactor is greater than 1 but smaller than\n\t// 2^(2^-8), then the actually used factor is still 2^(2^-8) even though\n\t// it is larger than the provided NativeHistogramBucketFactor.\n\t//\n\t// NOTE: Native Histograms are still an experimental feature. Their\n\t// behavior might still change without a major version\n\t// bump. Subsequently, all NativeHistogram... options here might still\n\t// change their behavior or name (or might completely disappear) without\n\t// a major version bump.\n\tNativeHistogramBucketFactor float64\n\t// All observations with an absolute value of less or equal\n\t// NativeHistogramZeroThreshold are accumulated into a “zero”\n\t// bucket. For best results, this should be close to a bucket\n\t// boundary. This is usually the case if picking a power of two. If\n\t// NativeHistogramZeroThreshold is left at zero,\n\t// DefNativeHistogramZeroThreshold is used as the threshold. To configure\n\t// a zero bucket with an actual threshold of zero (i.e. only\n\t// observations of precisely zero will go into the zero bucket), set\n\t// NativeHistogramZeroThreshold to the NativeHistogramZeroThresholdZero\n\t// constant (or any negative float value).\n\tNativeHistogramZeroThreshold float64\n\n\t// The remaining fields define a strategy to limit the number of\n\t// populated sparse buckets. If NativeHistogramMaxBucketNumber is left\n\t// at zero, the number of buckets is not limited. (Note that this might\n\t// lead to unbounded memory consumption if the values observed by the\n\t// Histogram are sufficiently wide-spread. In particular, this could be\n\t// used as a DoS attack vector. Where the observed values depend on\n\t// external inputs, it is highly recommended to set a\n\t// NativeHistogramMaxBucketNumber.)  Once the set\n\t// NativeHistogramMaxBucketNumber is exceeded, the following strategy is\n\t// enacted: First, if the last reset (or the creation) of the histogram\n\t// is at least NativeHistogramMinResetDuration ago, then the whole\n\t// histogram is reset to its initial state (including regular\n\t// buckets). If less time has passed, or if\n\t// NativeHistogramMinResetDuration is zero, no reset is\n\t// performed. Instead, the zero threshold is increased sufficiently to\n\t// reduce the number of buckets to or below\n\t// NativeHistogramMaxBucketNumber, but not to more than\n\t// NativeHistogramMaxZeroThreshold. Thus, if\n\t// NativeHistogramMaxZeroThreshold is already at or below the current\n\t// zero threshold, nothing happens at this step. After that, if the\n\t// number of buckets still exceeds NativeHistogramMaxBucketNumber, the\n\t// resolution of the histogram is reduced by doubling the width of the\n\t// sparse buckets (up to a growth factor between one bucket to the next\n\t// of 2^(2^4) = 65536, see above).\n\tNativeHistogramMaxBucketNumber  uint32\n\tNativeHistogramMinResetDuration time.Duration\n\tNativeHistogramMaxZeroThreshold float64\n}\n\n// HistogramVecOpts bundles the options to create a HistogramVec metric.\n// It is mandatory to set HistogramOpts, see there for mandatory fields. VariableLabels\n// is optional and can safely be left to its default value.\ntype HistogramVecOpts struct {\n\tHistogramOpts\n\n\t// VariableLabels are used to partition the metric vector by the given set\n\t// of labels. Each label value will be constrained with the optional Contraint\n\t// function, if provided.\n\tVariableLabels ConstrainableLabels\n}\n\n// NewHistogram creates a new Histogram based on the provided HistogramOpts. It\n// panics if the buckets in HistogramOpts are not in strictly increasing order.\n//\n// The returned implementation also implements ExemplarObserver. It is safe to\n// perform the corresponding type assertion. Exemplars are tracked separately\n// for each bucket.\nfunc NewHistogram(opts HistogramOpts) Histogram {\n\treturn newHistogram(\n\t\tNewDesc(\n\t\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\t\topts.Help,\n\t\t\tnil,\n\t\t\topts.ConstLabels,\n\t\t),\n\t\topts,\n\t)\n}\n\nfunc newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogram {\n\tif len(desc.variableLabels) != len(labelValues) {\n\t\tpanic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels.labelNames(), labelValues))\n\t}\n\n\tfor _, n := range desc.variableLabels {\n\t\tif n.Name == bucketLabel {\n\t\t\tpanic(errBucketLabelNotAllowed)\n\t\t}\n\t}\n\tfor _, lp := range desc.constLabelPairs {\n\t\tif lp.GetName() == bucketLabel {\n\t\t\tpanic(errBucketLabelNotAllowed)\n\t\t}\n\t}\n\n\th := &histogram{\n\t\tdesc:                            desc,\n\t\tupperBounds:                     opts.Buckets,\n\t\tlabelPairs:                      MakeLabelPairs(desc, labelValues),\n\t\tnativeHistogramMaxBuckets:       opts.NativeHistogramMaxBucketNumber,\n\t\tnativeHistogramMaxZeroThreshold: opts.NativeHistogramMaxZeroThreshold,\n\t\tnativeHistogramMinResetDuration: opts.NativeHistogramMinResetDuration,\n\t\tlastResetTime:                   time.Now(),\n\t\tnow:                             time.Now,\n\t}\n\tif len(h.upperBounds) == 0 && opts.NativeHistogramBucketFactor <= 1 {\n\t\th.upperBounds = DefBuckets\n\t}\n\tif opts.NativeHistogramBucketFactor <= 1 {\n\t\th.nativeHistogramSchema = math.MinInt32 // To mark that there are no sparse buckets.\n\t} else {\n\t\tswitch {\n\t\tcase opts.NativeHistogramZeroThreshold > 0:\n\t\t\th.nativeHistogramZeroThreshold = opts.NativeHistogramZeroThreshold\n\t\tcase opts.NativeHistogramZeroThreshold == 0:\n\t\t\th.nativeHistogramZeroThreshold = DefNativeHistogramZeroThreshold\n\t\t} // Leave h.nativeHistogramZeroThreshold at 0 otherwise.\n\t\th.nativeHistogramSchema = pickSchema(opts.NativeHistogramBucketFactor)\n\t}\n\tfor i, upperBound := range h.upperBounds {\n\t\tif i < len(h.upperBounds)-1 {\n\t\t\tif upperBound >= h.upperBounds[i+1] {\n\t\t\t\tpanic(fmt.Errorf(\n\t\t\t\t\t\"histogram buckets must be in increasing order: %f >= %f\",\n\t\t\t\t\tupperBound, h.upperBounds[i+1],\n\t\t\t\t))\n\t\t\t}\n\t\t} else {\n\t\t\tif math.IsInf(upperBound, +1) {\n\t\t\t\t// The +Inf bucket is implicit. Remove it here.\n\t\t\t\th.upperBounds = h.upperBounds[:i]\n\t\t\t}\n\t\t}\n\t}\n\t// Finally we know the final length of h.upperBounds and can make buckets\n\t// for both counts as well as exemplars:\n\th.counts[0] = &histogramCounts{buckets: make([]uint64, len(h.upperBounds))}\n\tatomic.StoreUint64(&h.counts[0].nativeHistogramZeroThresholdBits, math.Float64bits(h.nativeHistogramZeroThreshold))\n\tatomic.StoreInt32(&h.counts[0].nativeHistogramSchema, h.nativeHistogramSchema)\n\th.counts[1] = &histogramCounts{buckets: make([]uint64, len(h.upperBounds))}\n\tatomic.StoreUint64(&h.counts[1].nativeHistogramZeroThresholdBits, math.Float64bits(h.nativeHistogramZeroThreshold))\n\tatomic.StoreInt32(&h.counts[1].nativeHistogramSchema, h.nativeHistogramSchema)\n\th.exemplars = make([]atomic.Value, len(h.upperBounds)+1)\n\n\th.init(h) // Init self-collection.\n\treturn h\n}\n\ntype histogramCounts struct {\n\t// Order in this struct matters for the alignment required by atomic\n\t// operations, see http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\n\t// sumBits contains the bits of the float64 representing the sum of all\n\t// observations.\n\tsumBits uint64\n\tcount   uint64\n\n\t// nativeHistogramZeroBucket counts all (positive and negative)\n\t// observations in the zero bucket (with an absolute value less or equal\n\t// the current threshold, see next field.\n\tnativeHistogramZeroBucket uint64\n\t// nativeHistogramZeroThresholdBits is the bit pattern of the current\n\t// threshold for the zero bucket. It's initially equal to\n\t// nativeHistogramZeroThreshold but may change according to the bucket\n\t// count limitation strategy.\n\tnativeHistogramZeroThresholdBits uint64\n\t// nativeHistogramSchema may change over time according to the bucket\n\t// count limitation strategy and therefore has to be saved here.\n\tnativeHistogramSchema int32\n\t// Number of (positive and negative) sparse buckets.\n\tnativeHistogramBucketsNumber uint32\n\n\t// Regular buckets.\n\tbuckets []uint64\n\n\t// The sparse buckets for native histograms are implemented with a\n\t// sync.Map for now. A dedicated data structure will likely be more\n\t// efficient. There are separate maps for negative and positive\n\t// observations. The map's value is an *int64, counting observations in\n\t// that bucket. (Note that we don't use uint64 as an int64 won't\n\t// overflow in practice, and working with signed numbers from the\n\t// beginning simplifies the handling of deltas.) The map's key is the\n\t// index of the bucket according to the used\n\t// nativeHistogramSchema. Index 0 is for an upper bound of 1.\n\tnativeHistogramBucketsPositive, nativeHistogramBucketsNegative sync.Map\n}\n\n// observe manages the parts of observe that only affects\n// histogramCounts. doSparse is true if sparse buckets should be done,\n// too.\nfunc (hc *histogramCounts) observe(v float64, bucket int, doSparse bool) {\n\tif bucket < len(hc.buckets) {\n\t\tatomic.AddUint64(&hc.buckets[bucket], 1)\n\t}\n\tatomicAddFloat(&hc.sumBits, v)\n\tif doSparse && !math.IsNaN(v) {\n\t\tvar (\n\t\t\tkey                  int\n\t\t\tschema               = atomic.LoadInt32(&hc.nativeHistogramSchema)\n\t\t\tzeroThreshold        = math.Float64frombits(atomic.LoadUint64(&hc.nativeHistogramZeroThresholdBits))\n\t\t\tbucketCreated, isInf bool\n\t\t)\n\t\tif math.IsInf(v, 0) {\n\t\t\t// Pretend v is MaxFloat64 but later increment key by one.\n\t\t\tif math.IsInf(v, +1) {\n\t\t\t\tv = math.MaxFloat64\n\t\t\t} else {\n\t\t\t\tv = -math.MaxFloat64\n\t\t\t}\n\t\t\tisInf = true\n\t\t}\n\t\tfrac, exp := math.Frexp(math.Abs(v))\n\t\tif schema > 0 {\n\t\t\tbounds := nativeHistogramBounds[schema]\n\t\t\tkey = sort.SearchFloat64s(bounds, frac) + (exp-1)*len(bounds)\n\t\t} else {\n\t\t\tkey = exp\n\t\t\tif frac == 0.5 {\n\t\t\t\tkey--\n\t\t\t}\n\t\t\toffset := (1 << -schema) - 1\n\t\t\tkey = (key + offset) >> -schema\n\t\t}\n\t\tif isInf {\n\t\t\tkey++\n\t\t}\n\t\tswitch {\n\t\tcase v > zeroThreshold:\n\t\t\tbucketCreated = addToBucket(&hc.nativeHistogramBucketsPositive, key, 1)\n\t\tcase v < -zeroThreshold:\n\t\t\tbucketCreated = addToBucket(&hc.nativeHistogramBucketsNegative, key, 1)\n\t\tdefault:\n\t\t\tatomic.AddUint64(&hc.nativeHistogramZeroBucket, 1)\n\t\t}\n\t\tif bucketCreated {\n\t\t\tatomic.AddUint32(&hc.nativeHistogramBucketsNumber, 1)\n\t\t}\n\t}\n\t// Increment count last as we take it as a signal that the observation\n\t// is complete.\n\tatomic.AddUint64(&hc.count, 1)\n}\n\ntype histogram struct {\n\t// countAndHotIdx enables lock-free writes with use of atomic updates.\n\t// The most significant bit is the hot index [0 or 1] of the count field\n\t// below. Observe calls update the hot one. All remaining bits count the\n\t// number of Observe calls. Observe starts by incrementing this counter,\n\t// and finish by incrementing the count field in the respective\n\t// histogramCounts, as a marker for completion.\n\t//\n\t// Calls of the Write method (which are non-mutating reads from the\n\t// perspective of the histogram) swap the hot–cold under the writeMtx\n\t// lock. A cooldown is awaited (while locked) by comparing the number of\n\t// observations with the initiation count. Once they match, then the\n\t// last observation on the now cool one has completed. All cold fields must\n\t// be merged into the new hot before releasing writeMtx.\n\t//\n\t// Fields with atomic access first! See alignment constraint:\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\tcountAndHotIdx uint64\n\n\tselfCollector\n\tdesc *Desc\n\n\t// Only used in the Write method and for sparse bucket management.\n\tmtx sync.Mutex\n\n\t// Two counts, one is \"hot\" for lock-free observations, the other is\n\t// \"cold\" for writing out a dto.Metric. It has to be an array of\n\t// pointers to guarantee 64bit alignment of the histogramCounts, see\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG.\n\tcounts [2]*histogramCounts\n\n\tupperBounds                     []float64\n\tlabelPairs                      []*dto.LabelPair\n\texemplars                       []atomic.Value // One more than buckets (to include +Inf), each a *dto.Exemplar.\n\tnativeHistogramSchema           int32          // The initial schema. Set to math.MinInt32 if no sparse buckets are used.\n\tnativeHistogramZeroThreshold    float64        // The initial zero threshold.\n\tnativeHistogramMaxZeroThreshold float64\n\tnativeHistogramMaxBuckets       uint32\n\tnativeHistogramMinResetDuration time.Duration\n\tlastResetTime                   time.Time // Protected by mtx.\n\n\tnow func() time.Time // To mock out time.Now() for testing.\n}\n\nfunc (h *histogram) Desc() *Desc {\n\treturn h.desc\n}\n\nfunc (h *histogram) Observe(v float64) {\n\th.observe(v, h.findBucket(v))\n}\n\nfunc (h *histogram) ObserveWithExemplar(v float64, e Labels) {\n\ti := h.findBucket(v)\n\th.observe(v, i)\n\th.updateExemplar(v, i, e)\n}\n\nfunc (h *histogram) Write(out *dto.Metric) error {\n\t// For simplicity, we protect this whole method by a mutex. It is not in\n\t// the hot path, i.e. Observe is called much more often than Write. The\n\t// complication of making Write lock-free isn't worth it, if possible at\n\t// all.\n\th.mtx.Lock()\n\tdefer h.mtx.Unlock()\n\n\t// Adding 1<<63 switches the hot index (from 0 to 1 or from 1 to 0)\n\t// without touching the count bits. See the struct comments for a full\n\t// description of the algorithm.\n\tn := atomic.AddUint64(&h.countAndHotIdx, 1<<63)\n\t// count is contained unchanged in the lower 63 bits.\n\tcount := n & ((1 << 63) - 1)\n\t// The most significant bit tells us which counts is hot. The complement\n\t// is thus the cold one.\n\thotCounts := h.counts[n>>63]\n\tcoldCounts := h.counts[(^n)>>63]\n\n\twaitForCooldown(count, coldCounts)\n\n\this := &dto.Histogram{\n\t\tBucket:      make([]*dto.Bucket, len(h.upperBounds)),\n\t\tSampleCount: proto.Uint64(count),\n\t\tSampleSum:   proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.sumBits))),\n\t}\n\tout.Histogram = his\n\tout.Label = h.labelPairs\n\n\tvar cumCount uint64\n\tfor i, upperBound := range h.upperBounds {\n\t\tcumCount += atomic.LoadUint64(&coldCounts.buckets[i])\n\t\this.Bucket[i] = &dto.Bucket{\n\t\t\tCumulativeCount: proto.Uint64(cumCount),\n\t\t\tUpperBound:      proto.Float64(upperBound),\n\t\t}\n\t\tif e := h.exemplars[i].Load(); e != nil {\n\t\t\this.Bucket[i].Exemplar = e.(*dto.Exemplar)\n\t\t}\n\t}\n\t// If there is an exemplar for the +Inf bucket, we have to add that bucket explicitly.\n\tif e := h.exemplars[len(h.upperBounds)].Load(); e != nil {\n\t\tb := &dto.Bucket{\n\t\t\tCumulativeCount: proto.Uint64(count),\n\t\t\tUpperBound:      proto.Float64(math.Inf(1)),\n\t\t\tExemplar:        e.(*dto.Exemplar),\n\t\t}\n\t\this.Bucket = append(his.Bucket, b)\n\t}\n\tif h.nativeHistogramSchema > math.MinInt32 {\n\t\this.ZeroThreshold = proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.nativeHistogramZeroThresholdBits)))\n\t\this.Schema = proto.Int32(atomic.LoadInt32(&coldCounts.nativeHistogramSchema))\n\t\tzeroBucket := atomic.LoadUint64(&coldCounts.nativeHistogramZeroBucket)\n\n\t\tdefer func() {\n\t\t\tcoldCounts.nativeHistogramBucketsPositive.Range(addAndReset(&hotCounts.nativeHistogramBucketsPositive, &hotCounts.nativeHistogramBucketsNumber))\n\t\t\tcoldCounts.nativeHistogramBucketsNegative.Range(addAndReset(&hotCounts.nativeHistogramBucketsNegative, &hotCounts.nativeHistogramBucketsNumber))\n\t\t}()\n\n\t\this.ZeroCount = proto.Uint64(zeroBucket)\n\t\this.NegativeSpan, his.NegativeDelta = makeBuckets(&coldCounts.nativeHistogramBucketsNegative)\n\t\this.PositiveSpan, his.PositiveDelta = makeBuckets(&coldCounts.nativeHistogramBucketsPositive)\n\t}\n\taddAndResetCounts(hotCounts, coldCounts)\n\treturn nil\n}\n\n// findBucket returns the index of the bucket for the provided value, or\n// len(h.upperBounds) for the +Inf bucket.\nfunc (h *histogram) findBucket(v float64) int {\n\t// TODO(beorn7): For small numbers of buckets (<30), a linear search is\n\t// slightly faster than the binary search. If we really care, we could\n\t// switch from one search strategy to the other depending on the number\n\t// of buckets.\n\t//\n\t// Microbenchmarks (BenchmarkHistogramNoLabels):\n\t// 11 buckets: 38.3 ns/op linear - binary 48.7 ns/op\n\t// 100 buckets: 78.1 ns/op linear - binary 54.9 ns/op\n\t// 300 buckets: 154 ns/op linear - binary 61.6 ns/op\n\treturn sort.SearchFloat64s(h.upperBounds, v)\n}\n\n// observe is the implementation for Observe without the findBucket part.\nfunc (h *histogram) observe(v float64, bucket int) {\n\t// Do not add to sparse buckets for NaN observations.\n\tdoSparse := h.nativeHistogramSchema > math.MinInt32 && !math.IsNaN(v)\n\t// We increment h.countAndHotIdx so that the counter in the lower\n\t// 63 bits gets incremented. At the same time, we get the new value\n\t// back, which we can use to find the currently-hot counts.\n\tn := atomic.AddUint64(&h.countAndHotIdx, 1)\n\thotCounts := h.counts[n>>63]\n\thotCounts.observe(v, bucket, doSparse)\n\tif doSparse {\n\t\th.limitBuckets(hotCounts, v, bucket)\n\t}\n}\n\n// limitBuckets applies a strategy to limit the number of populated sparse\n// buckets. It's generally best effort, and there are situations where the\n// number can go higher (if even the lowest resolution isn't enough to reduce\n// the number sufficiently, or if the provided counts aren't fully updated yet\n// by a concurrently happening Write call).\nfunc (h *histogram) limitBuckets(counts *histogramCounts, value float64, bucket int) {\n\tif h.nativeHistogramMaxBuckets == 0 {\n\t\treturn // No limit configured.\n\t}\n\tif h.nativeHistogramMaxBuckets >= atomic.LoadUint32(&counts.nativeHistogramBucketsNumber) {\n\t\treturn // Bucket limit not exceeded yet.\n\t}\n\n\th.mtx.Lock()\n\tdefer h.mtx.Unlock()\n\n\t// The hot counts might have been swapped just before we acquired the\n\t// lock. Re-fetch the hot counts first...\n\tn := atomic.LoadUint64(&h.countAndHotIdx)\n\thotIdx := n >> 63\n\tcoldIdx := (^n) >> 63\n\thotCounts := h.counts[hotIdx]\n\tcoldCounts := h.counts[coldIdx]\n\t// ...and then check again if we really have to reduce the bucket count.\n\tif h.nativeHistogramMaxBuckets >= atomic.LoadUint32(&hotCounts.nativeHistogramBucketsNumber) {\n\t\treturn // Bucket limit not exceeded after all.\n\t}\n\t// Try the various strategies in order.\n\tif h.maybeReset(hotCounts, coldCounts, coldIdx, value, bucket) {\n\t\treturn\n\t}\n\tif h.maybeWidenZeroBucket(hotCounts, coldCounts) {\n\t\treturn\n\t}\n\th.doubleBucketWidth(hotCounts, coldCounts)\n}\n\n// maybeReset resests the whole histogram if at least h.nativeHistogramMinResetDuration\n// has been passed. It returns true if the histogram has been reset. The caller\n// must have locked h.mtx.\nfunc (h *histogram) maybeReset(hot, cold *histogramCounts, coldIdx uint64, value float64, bucket int) bool {\n\t// We are using the possibly mocked h.now() rather than\n\t// time.Since(h.lastResetTime) to enable testing.\n\tif h.nativeHistogramMinResetDuration == 0 || h.now().Sub(h.lastResetTime) < h.nativeHistogramMinResetDuration {\n\t\treturn false\n\t}\n\t// Completely reset coldCounts.\n\th.resetCounts(cold)\n\t// Repeat the latest observation to not lose it completely.\n\tcold.observe(value, bucket, true)\n\t// Make coldCounts the new hot counts while ressetting countAndHotIdx.\n\tn := atomic.SwapUint64(&h.countAndHotIdx, (coldIdx<<63)+1)\n\tcount := n & ((1 << 63) - 1)\n\twaitForCooldown(count, hot)\n\t// Finally, reset the formerly hot counts, too.\n\th.resetCounts(hot)\n\th.lastResetTime = h.now()\n\treturn true\n}\n\n// maybeWidenZeroBucket widens the zero bucket until it includes the existing\n// buckets closest to the zero bucket (which could be two, if an equidistant\n// negative and a positive bucket exists, but usually it's only one bucket to be\n// merged into the new wider zero bucket). h.nativeHistogramMaxZeroThreshold\n// limits how far the zero bucket can be extended, and if that's not enough to\n// include an existing bucket, the method returns false. The caller must have\n// locked h.mtx.\nfunc (h *histogram) maybeWidenZeroBucket(hot, cold *histogramCounts) bool {\n\tcurrentZeroThreshold := math.Float64frombits(atomic.LoadUint64(&hot.nativeHistogramZeroThresholdBits))\n\tif currentZeroThreshold >= h.nativeHistogramMaxZeroThreshold {\n\t\treturn false\n\t}\n\t// Find the key of the bucket closest to zero.\n\tsmallestKey := findSmallestKey(&hot.nativeHistogramBucketsPositive)\n\tsmallestNegativeKey := findSmallestKey(&hot.nativeHistogramBucketsNegative)\n\tif smallestNegativeKey < smallestKey {\n\t\tsmallestKey = smallestNegativeKey\n\t}\n\tif smallestKey == math.MaxInt32 {\n\t\treturn false\n\t}\n\tnewZeroThreshold := getLe(smallestKey, atomic.LoadInt32(&hot.nativeHistogramSchema))\n\tif newZeroThreshold > h.nativeHistogramMaxZeroThreshold {\n\t\treturn false // New threshold would exceed the max threshold.\n\t}\n\tatomic.StoreUint64(&cold.nativeHistogramZeroThresholdBits, math.Float64bits(newZeroThreshold))\n\t// Remove applicable buckets.\n\tif _, loaded := cold.nativeHistogramBucketsNegative.LoadAndDelete(smallestKey); loaded {\n\t\tatomicDecUint32(&cold.nativeHistogramBucketsNumber)\n\t}\n\tif _, loaded := cold.nativeHistogramBucketsPositive.LoadAndDelete(smallestKey); loaded {\n\t\tatomicDecUint32(&cold.nativeHistogramBucketsNumber)\n\t}\n\t// Make cold counts the new hot counts.\n\tn := atomic.AddUint64(&h.countAndHotIdx, 1<<63)\n\tcount := n & ((1 << 63) - 1)\n\t// Swap the pointer names to represent the new roles and make\n\t// the rest less confusing.\n\thot, cold = cold, hot\n\twaitForCooldown(count, cold)\n\t// Add all the now cold counts to the new hot counts...\n\taddAndResetCounts(hot, cold)\n\t// ...adjust the new zero threshold in the cold counts, too...\n\tatomic.StoreUint64(&cold.nativeHistogramZeroThresholdBits, math.Float64bits(newZeroThreshold))\n\t// ...and then merge the newly deleted buckets into the wider zero\n\t// bucket.\n\tmergeAndDeleteOrAddAndReset := func(hotBuckets, coldBuckets *sync.Map) func(k, v interface{}) bool {\n\t\treturn func(k, v interface{}) bool {\n\t\t\tkey := k.(int)\n\t\t\tbucket := v.(*int64)\n\t\t\tif key == smallestKey {\n\t\t\t\t// Merge into hot zero bucket...\n\t\t\t\tatomic.AddUint64(&hot.nativeHistogramZeroBucket, uint64(atomic.LoadInt64(bucket)))\n\t\t\t\t// ...and delete from cold counts.\n\t\t\t\tcoldBuckets.Delete(key)\n\t\t\t\tatomicDecUint32(&cold.nativeHistogramBucketsNumber)\n\t\t\t} else {\n\t\t\t\t// Add to corresponding hot bucket...\n\t\t\t\tif addToBucket(hotBuckets, key, atomic.LoadInt64(bucket)) {\n\t\t\t\t\tatomic.AddUint32(&hot.nativeHistogramBucketsNumber, 1)\n\t\t\t\t}\n\t\t\t\t// ...and reset cold bucket.\n\t\t\t\tatomic.StoreInt64(bucket, 0)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\n\tcold.nativeHistogramBucketsPositive.Range(mergeAndDeleteOrAddAndReset(&hot.nativeHistogramBucketsPositive, &cold.nativeHistogramBucketsPositive))\n\tcold.nativeHistogramBucketsNegative.Range(mergeAndDeleteOrAddAndReset(&hot.nativeHistogramBucketsNegative, &cold.nativeHistogramBucketsNegative))\n\treturn true\n}\n\n// doubleBucketWidth doubles the bucket width (by decrementing the schema\n// number). Note that very sparse buckets could lead to a low reduction of the\n// bucket count (or even no reduction at all). The method does nothing if the\n// schema is already -4.\nfunc (h *histogram) doubleBucketWidth(hot, cold *histogramCounts) {\n\tcoldSchema := atomic.LoadInt32(&cold.nativeHistogramSchema)\n\tif coldSchema == -4 {\n\t\treturn // Already at lowest resolution.\n\t}\n\tcoldSchema--\n\tatomic.StoreInt32(&cold.nativeHistogramSchema, coldSchema)\n\t// Play it simple and just delete all cold buckets.\n\tatomic.StoreUint32(&cold.nativeHistogramBucketsNumber, 0)\n\tdeleteSyncMap(&cold.nativeHistogramBucketsNegative)\n\tdeleteSyncMap(&cold.nativeHistogramBucketsPositive)\n\t// Make coldCounts the new hot counts.\n\tn := atomic.AddUint64(&h.countAndHotIdx, 1<<63)\n\tcount := n & ((1 << 63) - 1)\n\t// Swap the pointer names to represent the new roles and make\n\t// the rest less confusing.\n\thot, cold = cold, hot\n\twaitForCooldown(count, cold)\n\t// Add all the now cold counts to the new hot counts...\n\taddAndResetCounts(hot, cold)\n\t// ...adjust the schema in the cold counts, too...\n\tatomic.StoreInt32(&cold.nativeHistogramSchema, coldSchema)\n\t// ...and then merge the cold buckets into the wider hot buckets.\n\tmerge := func(hotBuckets *sync.Map) func(k, v interface{}) bool {\n\t\treturn func(k, v interface{}) bool {\n\t\t\tkey := k.(int)\n\t\t\tbucket := v.(*int64)\n\t\t\t// Adjust key to match the bucket to merge into.\n\t\t\tif key > 0 {\n\t\t\t\tkey++\n\t\t\t}\n\t\t\tkey /= 2\n\t\t\t// Add to corresponding hot bucket.\n\t\t\tif addToBucket(hotBuckets, key, atomic.LoadInt64(bucket)) {\n\t\t\t\tatomic.AddUint32(&hot.nativeHistogramBucketsNumber, 1)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\n\tcold.nativeHistogramBucketsPositive.Range(merge(&hot.nativeHistogramBucketsPositive))\n\tcold.nativeHistogramBucketsNegative.Range(merge(&hot.nativeHistogramBucketsNegative))\n\t// Play it simple again and just delete all cold buckets.\n\tatomic.StoreUint32(&cold.nativeHistogramBucketsNumber, 0)\n\tdeleteSyncMap(&cold.nativeHistogramBucketsNegative)\n\tdeleteSyncMap(&cold.nativeHistogramBucketsPositive)\n}\n\nfunc (h *histogram) resetCounts(counts *histogramCounts) {\n\tatomic.StoreUint64(&counts.sumBits, 0)\n\tatomic.StoreUint64(&counts.count, 0)\n\tatomic.StoreUint64(&counts.nativeHistogramZeroBucket, 0)\n\tatomic.StoreUint64(&counts.nativeHistogramZeroThresholdBits, math.Float64bits(h.nativeHistogramZeroThreshold))\n\tatomic.StoreInt32(&counts.nativeHistogramSchema, h.nativeHistogramSchema)\n\tatomic.StoreUint32(&counts.nativeHistogramBucketsNumber, 0)\n\tfor i := range h.upperBounds {\n\t\tatomic.StoreUint64(&counts.buckets[i], 0)\n\t}\n\tdeleteSyncMap(&counts.nativeHistogramBucketsNegative)\n\tdeleteSyncMap(&counts.nativeHistogramBucketsPositive)\n}\n\n// updateExemplar replaces the exemplar for the provided bucket. With empty\n// labels, it's a no-op. It panics if any of the labels is invalid.\nfunc (h *histogram) updateExemplar(v float64, bucket int, l Labels) {\n\tif l == nil {\n\t\treturn\n\t}\n\te, err := newExemplar(v, h.now(), l)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\th.exemplars[bucket].Store(e)\n}\n\n// HistogramVec is a Collector that bundles a set of Histograms that all share the\n// same Desc, but have different values for their variable labels. This is used\n// if you want to count the same thing partitioned by various dimensions\n// (e.g. HTTP request latencies, partitioned by status code and method). Create\n// instances with NewHistogramVec.\ntype HistogramVec struct {\n\t*MetricVec\n}\n\n// NewHistogramVec creates a new HistogramVec based on the provided HistogramOpts and\n// partitioned by the given label names.\nfunc NewHistogramVec(opts HistogramOpts, labelNames []string) *HistogramVec {\n\treturn V2.NewHistogramVec(HistogramVecOpts{\n\t\tHistogramOpts:  opts,\n\t\tVariableLabels: UnconstrainedLabels(labelNames),\n\t})\n}\n\n// NewHistogramVec creates a new HistogramVec based on the provided HistogramVecOpts.\nfunc (v2) NewHistogramVec(opts HistogramVecOpts) *HistogramVec {\n\tdesc := V2.NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\topts.VariableLabels,\n\t\topts.ConstLabels,\n\t)\n\treturn &HistogramVec{\n\t\tMetricVec: NewMetricVec(desc, func(lvs ...string) Metric {\n\t\t\treturn newHistogram(desc, opts.HistogramOpts, lvs...)\n\t\t}),\n\t}\n}\n\n// GetMetricWithLabelValues returns the Histogram for the given slice of label\n// values (same order as the variable labels in Desc). If that combination of\n// label values is accessed for the first time, a new Histogram is created.\n//\n// It is possible to call this method without using the returned Histogram to only\n// create the new Histogram but leave it at its starting value, a Histogram without\n// any observations.\n//\n// Keeping the Histogram for later use is possible (and should be considered if\n// performance is critical), but keep in mind that Reset, DeleteLabelValues and\n// Delete can be used to delete the Histogram from the HistogramVec. In that case, the\n// Histogram will still exist, but it will not be exported anymore, even if a\n// Histogram with the same label values is created later. See also the CounterVec\n// example.\n//\n// An error is returned if the number of label values is not the same as the\n// number of variable labels in Desc (minus any curried labels).\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as\n// an alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\n// See also the GaugeVec example.\nfunc (v *HistogramVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) {\n\tmetric, err := v.MetricVec.GetMetricWithLabelValues(lvs...)\n\tif metric != nil {\n\t\treturn metric.(Observer), err\n\t}\n\treturn nil, err\n}\n\n// GetMetricWith returns the Histogram for the given Labels map (the label names\n// must match those of the variable labels in Desc). If that label map is\n// accessed for the first time, a new Histogram is created. Implications of\n// creating a Histogram without using it and keeping the Histogram for later use\n// are the same as for GetMetricWithLabelValues.\n//\n// An error is returned if the number and names of the Labels are inconsistent\n// with those of the variable labels in Desc (minus any curried labels).\n//\n// This method is used for the same purpose as\n// GetMetricWithLabelValues(...string). See there for pros and cons of the two\n// methods.\nfunc (v *HistogramVec) GetMetricWith(labels Labels) (Observer, error) {\n\tmetric, err := v.MetricVec.GetMetricWith(labels)\n\tif metric != nil {\n\t\treturn metric.(Observer), err\n\t}\n\treturn nil, err\n}\n\n// WithLabelValues works as GetMetricWithLabelValues, but panics where\n// GetMetricWithLabelValues would have returned an error. Not returning an\n// error allows shortcuts like\n//\n//\tmyVec.WithLabelValues(\"404\", \"GET\").Observe(42.21)\nfunc (v *HistogramVec) WithLabelValues(lvs ...string) Observer {\n\th, err := v.GetMetricWithLabelValues(lvs...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn h\n}\n\n// With works as GetMetricWith but panics where GetMetricWithLabels would have\n// returned an error. Not returning an error allows shortcuts like\n//\n//\tmyVec.With(prometheus.Labels{\"code\": \"404\", \"method\": \"GET\"}).Observe(42.21)\nfunc (v *HistogramVec) With(labels Labels) Observer {\n\th, err := v.GetMetricWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn h\n}\n\n// CurryWith returns a vector curried with the provided labels, i.e. the\n// returned vector has those labels pre-set for all labeled operations performed\n// on it. The cardinality of the curried vector is reduced accordingly. The\n// order of the remaining labels stays the same (just with the curried labels\n// taken out of the sequence – which is relevant for the\n// (GetMetric)WithLabelValues methods). It is possible to curry a curried\n// vector, but only with labels not yet used for currying before.\n//\n// The metrics contained in the HistogramVec are shared between the curried and\n// uncurried vectors. They are just accessed differently. Curried and uncurried\n// vectors behave identically in terms of collection. Only one must be\n// registered with a given registry (usually the uncurried version). The Reset\n// method deletes all metrics, even if called on a curried vector.\nfunc (v *HistogramVec) CurryWith(labels Labels) (ObserverVec, error) {\n\tvec, err := v.MetricVec.CurryWith(labels)\n\tif vec != nil {\n\t\treturn &HistogramVec{vec}, err\n\t}\n\treturn nil, err\n}\n\n// MustCurryWith works as CurryWith but panics where CurryWith would have\n// returned an error.\nfunc (v *HistogramVec) MustCurryWith(labels Labels) ObserverVec {\n\tvec, err := v.CurryWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn vec\n}\n\ntype constHistogram struct {\n\tdesc       *Desc\n\tcount      uint64\n\tsum        float64\n\tbuckets    map[float64]uint64\n\tlabelPairs []*dto.LabelPair\n}\n\nfunc (h *constHistogram) Desc() *Desc {\n\treturn h.desc\n}\n\nfunc (h *constHistogram) Write(out *dto.Metric) error {\n\this := &dto.Histogram{}\n\n\tbuckets := make([]*dto.Bucket, 0, len(h.buckets))\n\n\this.SampleCount = proto.Uint64(h.count)\n\this.SampleSum = proto.Float64(h.sum)\n\tfor upperBound, count := range h.buckets {\n\t\tbuckets = append(buckets, &dto.Bucket{\n\t\t\tCumulativeCount: proto.Uint64(count),\n\t\t\tUpperBound:      proto.Float64(upperBound),\n\t\t})\n\t}\n\n\tif len(buckets) > 0 {\n\t\tsort.Sort(buckSort(buckets))\n\t}\n\this.Bucket = buckets\n\n\tout.Histogram = his\n\tout.Label = h.labelPairs\n\n\treturn nil\n}\n\n// NewConstHistogram returns a metric representing a Prometheus histogram with\n// fixed values for the count, sum, and bucket counts. As those parameters\n// cannot be changed, the returned value does not implement the Histogram\n// interface (but only the Metric interface). Users of this package will not\n// have much use for it in regular operations. However, when implementing custom\n// Collectors, it is useful as a throw-away metric that is generated on the fly\n// to send it to Prometheus in the Collect method.\n//\n// buckets is a map of upper bounds to cumulative counts, excluding the +Inf\n// bucket. The +Inf bucket is implicit, and its value is equal to the provided count.\n//\n// NewConstHistogram returns an error if the length of labelValues is not\n// consistent with the variable labels in Desc or if Desc is invalid.\nfunc NewConstHistogram(\n\tdesc *Desc,\n\tcount uint64,\n\tsum float64,\n\tbuckets map[float64]uint64,\n\tlabelValues ...string,\n) (Metric, error) {\n\tif desc.err != nil {\n\t\treturn nil, desc.err\n\t}\n\tif err := validateLabelValues(labelValues, len(desc.variableLabels)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &constHistogram{\n\t\tdesc:       desc,\n\t\tcount:      count,\n\t\tsum:        sum,\n\t\tbuckets:    buckets,\n\t\tlabelPairs: MakeLabelPairs(desc, labelValues),\n\t}, nil\n}\n\n// MustNewConstHistogram is a version of NewConstHistogram that panics where\n// NewConstHistogram would have returned an error.\nfunc MustNewConstHistogram(\n\tdesc *Desc,\n\tcount uint64,\n\tsum float64,\n\tbuckets map[float64]uint64,\n\tlabelValues ...string,\n) Metric {\n\tm, err := NewConstHistogram(desc, count, sum, buckets, labelValues...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn m\n}\n\ntype buckSort []*dto.Bucket\n\nfunc (s buckSort) Len() int {\n\treturn len(s)\n}\n\nfunc (s buckSort) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s buckSort) Less(i, j int) bool {\n\treturn s[i].GetUpperBound() < s[j].GetUpperBound()\n}\n\n// pickSchema returns the largest number n between -4 and 8 such that\n// 2^(2^-n) is less or equal the provided bucketFactor.\n//\n// Special cases:\n//   - bucketFactor <= 1: panics.\n//   - bucketFactor < 2^(2^-8) (but > 1): still returns 8.\nfunc pickSchema(bucketFactor float64) int32 {\n\tif bucketFactor <= 1 {\n\t\tpanic(fmt.Errorf(\"bucketFactor %f is <=1\", bucketFactor))\n\t}\n\tfloor := math.Floor(math.Log2(math.Log2(bucketFactor)))\n\tswitch {\n\tcase floor <= -8:\n\t\treturn 8\n\tcase floor >= 4:\n\t\treturn -4\n\tdefault:\n\t\treturn -int32(floor)\n\t}\n}\n\nfunc makeBuckets(buckets *sync.Map) ([]*dto.BucketSpan, []int64) {\n\tvar ii []int\n\tbuckets.Range(func(k, v interface{}) bool {\n\t\tii = append(ii, k.(int))\n\t\treturn true\n\t})\n\tsort.Ints(ii)\n\n\tif len(ii) == 0 {\n\t\treturn nil, nil\n\t}\n\n\tvar (\n\t\tspans     []*dto.BucketSpan\n\t\tdeltas    []int64\n\t\tprevCount int64\n\t\tnextI     int\n\t)\n\n\tappendDelta := func(count int64) {\n\t\t*spans[len(spans)-1].Length++\n\t\tdeltas = append(deltas, count-prevCount)\n\t\tprevCount = count\n\t}\n\n\tfor n, i := range ii {\n\t\tv, _ := buckets.Load(i)\n\t\tcount := atomic.LoadInt64(v.(*int64))\n\t\t// Multiple spans with only small gaps in between are probably\n\t\t// encoded more efficiently as one larger span with a few empty\n\t\t// buckets. Needs some research to find the sweet spot. For now,\n\t\t// we assume that gaps of one ore two buckets should not create\n\t\t// a new span.\n\t\tiDelta := int32(i - nextI)\n\t\tif n == 0 || iDelta > 2 {\n\t\t\t// We have to create a new span, either because we are\n\t\t\t// at the very beginning, or because we have found a gap\n\t\t\t// of more than two buckets.\n\t\t\tspans = append(spans, &dto.BucketSpan{\n\t\t\t\tOffset: proto.Int32(iDelta),\n\t\t\t\tLength: proto.Uint32(0),\n\t\t\t})\n\t\t} else {\n\t\t\t// We have found a small gap (or no gap at all).\n\t\t\t// Insert empty buckets as needed.\n\t\t\tfor j := int32(0); j < iDelta; j++ {\n\t\t\t\tappendDelta(0)\n\t\t\t}\n\t\t}\n\t\tappendDelta(count)\n\t\tnextI = i + 1\n\t}\n\treturn spans, deltas\n}\n\n// addToBucket increments the sparse bucket at key by the provided amount. It\n// returns true if a new sparse bucket had to be created for that.\nfunc addToBucket(buckets *sync.Map, key int, increment int64) bool {\n\tif existingBucket, ok := buckets.Load(key); ok {\n\t\t// Fast path without allocation.\n\t\tatomic.AddInt64(existingBucket.(*int64), increment)\n\t\treturn false\n\t}\n\t// Bucket doesn't exist yet. Slow path allocating new counter.\n\tnewBucket := increment // TODO(beorn7): Check if this is sufficient to not let increment escape.\n\tif actualBucket, loaded := buckets.LoadOrStore(key, &newBucket); loaded {\n\t\t// The bucket was created concurrently in another goroutine.\n\t\t// Have to increment after all.\n\t\tatomic.AddInt64(actualBucket.(*int64), increment)\n\t\treturn false\n\t}\n\treturn true\n}\n\n// addAndReset returns a function to be used with sync.Map.Range of spare\n// buckets in coldCounts. It increments the buckets in the provided hotBuckets\n// according to the buckets ranged through. It then resets all buckets ranged\n// through to 0 (but leaves them in place so that they don't need to get\n// recreated on the next scrape).\nfunc addAndReset(hotBuckets *sync.Map, bucketNumber *uint32) func(k, v interface{}) bool {\n\treturn func(k, v interface{}) bool {\n\t\tbucket := v.(*int64)\n\t\tif addToBucket(hotBuckets, k.(int), atomic.LoadInt64(bucket)) {\n\t\t\tatomic.AddUint32(bucketNumber, 1)\n\t\t}\n\t\tatomic.StoreInt64(bucket, 0)\n\t\treturn true\n\t}\n}\n\nfunc deleteSyncMap(m *sync.Map) {\n\tm.Range(func(k, v interface{}) bool {\n\t\tm.Delete(k)\n\t\treturn true\n\t})\n}\n\nfunc findSmallestKey(m *sync.Map) int {\n\tresult := math.MaxInt32\n\tm.Range(func(k, v interface{}) bool {\n\t\tkey := k.(int)\n\t\tif key < result {\n\t\t\tresult = key\n\t\t}\n\t\treturn true\n\t})\n\treturn result\n}\n\nfunc getLe(key int, schema int32) float64 {\n\t// Here a bit of context about the behavior for the last bucket counting\n\t// regular numbers (called simply \"last bucket\" below) and the bucket\n\t// counting observations of ±Inf (called \"inf bucket\" below, with a key\n\t// one higher than that of the \"last bucket\"):\n\t//\n\t// If we apply the usual formula to the last bucket, its upper bound\n\t// would be calculated as +Inf. The reason is that the max possible\n\t// regular float64 number (math.MaxFloat64) doesn't coincide with one of\n\t// the calculated bucket boundaries. So the calculated boundary has to\n\t// be larger than math.MaxFloat64, and the only float64 larger than\n\t// math.MaxFloat64 is +Inf. However, we want to count actual\n\t// observations of ±Inf in the inf bucket. Therefore, we have to treat\n\t// the upper bound of the last bucket specially and set it to\n\t// math.MaxFloat64. (The upper bound of the inf bucket, with its key\n\t// being one higher than that of the last bucket, naturally comes out as\n\t// +Inf by the usual formula. So that's fine.)\n\t//\n\t// math.MaxFloat64 has a frac of 0.9999999999999999 and an exp of\n\t// 1024. If there were a float64 number following math.MaxFloat64, it\n\t// would have a frac of 1.0 and an exp of 1024, or equivalently a frac\n\t// of 0.5 and an exp of 1025. However, since frac must be smaller than\n\t// 1, and exp must be smaller than 1025, either representation overflows\n\t// a float64. (Which, in turn, is the reason that math.MaxFloat64 is the\n\t// largest possible float64. Q.E.D.) However, the formula for\n\t// calculating the upper bound from the idx and schema of the last\n\t// bucket results in precisely that. It is either frac=1.0 & exp=1024\n\t// (for schema < 0) or frac=0.5 & exp=1025 (for schema >=0). (This is,\n\t// by the way, a power of two where the exponent itself is a power of\n\t// two, 2¹⁰ in fact, which coinicides with a bucket boundary in all\n\t// schemas.) So these are the special cases we have to catch below.\n\tif schema < 0 {\n\t\texp := key << -schema\n\t\tif exp == 1024 {\n\t\t\t// This is the last bucket before the overflow bucket\n\t\t\t// (for ±Inf observations). Return math.MaxFloat64 as\n\t\t\t// explained above.\n\t\t\treturn math.MaxFloat64\n\t\t}\n\t\treturn math.Ldexp(1, exp)\n\t}\n\n\tfracIdx := key & ((1 << schema) - 1)\n\tfrac := nativeHistogramBounds[schema][fracIdx]\n\texp := (key >> schema) + 1\n\tif frac == 0.5 && exp == 1025 {\n\t\t// This is the last bucket before the overflow bucket (for ±Inf\n\t\t// observations). Return math.MaxFloat64 as explained above.\n\t\treturn math.MaxFloat64\n\t}\n\treturn math.Ldexp(frac, exp)\n}\n\n// waitForCooldown returns after the count field in the provided histogramCounts\n// has reached the provided count value.\nfunc waitForCooldown(count uint64, counts *histogramCounts) {\n\tfor count != atomic.LoadUint64(&counts.count) {\n\t\truntime.Gosched() // Let observations get work done.\n\t}\n}\n\n// atomicAddFloat adds the provided float atomically to another float\n// represented by the bit pattern the bits pointer is pointing to.\nfunc atomicAddFloat(bits *uint64, v float64) {\n\tfor {\n\t\tloadedBits := atomic.LoadUint64(bits)\n\t\tnewBits := math.Float64bits(math.Float64frombits(loadedBits) + v)\n\t\tif atomic.CompareAndSwapUint64(bits, loadedBits, newBits) {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\n// atomicDecUint32 atomically decrements the uint32 p points to.  See\n// https://pkg.go.dev/sync/atomic#AddUint32 to understand how this is done.\nfunc atomicDecUint32(p *uint32) {\n\tatomic.AddUint32(p, ^uint32(0))\n}\n\n// addAndResetCounts adds certain fields (count, sum, conventional buckets, zero\n// bucket) from the cold counts to the corresponding fields in the hot\n// counts. Those fields are then reset to 0 in the cold counts.\nfunc addAndResetCounts(hot, cold *histogramCounts) {\n\tatomic.AddUint64(&hot.count, atomic.LoadUint64(&cold.count))\n\tatomic.StoreUint64(&cold.count, 0)\n\tcoldSum := math.Float64frombits(atomic.LoadUint64(&cold.sumBits))\n\tatomicAddFloat(&hot.sumBits, coldSum)\n\tatomic.StoreUint64(&cold.sumBits, 0)\n\tfor i := range hot.buckets {\n\t\tatomic.AddUint64(&hot.buckets[i], atomic.LoadUint64(&cold.buckets[i]))\n\t\tatomic.StoreUint64(&cold.buckets[i], 0)\n\t}\n\tatomic.AddUint64(&hot.nativeHistogramZeroBucket, atomic.LoadUint64(&cold.nativeHistogramZeroBucket))\n\tatomic.StoreUint64(&cold.nativeHistogramZeroBucket, 0)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/internal/almost_equal.go",
    "content": "// Copyright (c) 2015 Björn Rabenstein\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n//\n// The code in this package is copy/paste to avoid a dependency. Hence this file\n// carries the copyright of the original repo.\n// https://github.com/beorn7/floats\npackage internal\n\nimport (\n\t\"math\"\n)\n\n// minNormalFloat64 is the smallest positive normal value of type float64.\nvar minNormalFloat64 = math.Float64frombits(0x0010000000000000)\n\n// AlmostEqualFloat64 returns true if a and b are equal within a relative error\n// of epsilon. See http://floating-point-gui.de/errors/comparison/ for the\n// details of the applied method.\nfunc AlmostEqualFloat64(a, b, epsilon float64) bool {\n\tif a == b {\n\t\treturn true\n\t}\n\tabsA := math.Abs(a)\n\tabsB := math.Abs(b)\n\tdiff := math.Abs(a - b)\n\tif a == 0 || b == 0 || absA+absB < minNormalFloat64 {\n\t\treturn diff < epsilon*minNormalFloat64\n\t}\n\treturn diff/math.Min(absA+absB, math.MaxFloat64) < epsilon\n}\n\n// AlmostEqualFloat64s is the slice form of AlmostEqualFloat64.\nfunc AlmostEqualFloat64s(a, b []float64, epsilon float64) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif !AlmostEqualFloat64(a[i], b[i], epsilon) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n// It provides tools to compare sequences of strings and generate textual diffs.\n//\n// Maintaining `GetUnifiedDiffString` here because original repository\n// (https://github.com/pmezard/go-difflib) is no loger maintained.\npackage internal\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc max(a, b int) int {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc calculateRatio(matches, length int) float64 {\n\tif length > 0 {\n\t\treturn 2.0 * float64(matches) / float64(length)\n\t}\n\treturn 1.0\n}\n\ntype Match struct {\n\tA    int\n\tB    int\n\tSize int\n}\n\ntype OpCode struct {\n\tTag byte\n\tI1  int\n\tI2  int\n\tJ1  int\n\tJ2  int\n}\n\n// SequenceMatcher compares sequence of strings. The basic\n// algorithm predates, and is a little fancier than, an algorithm\n// published in the late 1980's by Ratcliff and Obershelp under the\n// hyperbolic name \"gestalt pattern matching\".  The basic idea is to find\n// the longest contiguous matching subsequence that contains no \"junk\"\n// elements (R-O doesn't address junk).  The same idea is then applied\n// recursively to the pieces of the sequences to the left and to the right\n// of the matching subsequence.  This does not yield minimal edit\n// sequences, but does tend to yield matches that \"look right\" to people.\n//\n// SequenceMatcher tries to compute a \"human-friendly diff\" between two\n// sequences.  Unlike e.g. UNIX(tm) diff, the fundamental notion is the\n// longest *contiguous* & junk-free matching subsequence.  That's what\n// catches peoples' eyes.  The Windows(tm) windiff has another interesting\n// notion, pairing up elements that appear uniquely in each sequence.\n// That, and the method here, appear to yield more intuitive difference\n// reports than does diff.  This method appears to be the least vulnerable\n// to synching up on blocks of \"junk lines\", though (like blank lines in\n// ordinary text files, or maybe \"<P>\" lines in HTML files).  That may be\n// because this is the only method of the 3 that has a *concept* of\n// \"junk\" <wink>.\n//\n// Timing:  Basic R-O is cubic time worst case and quadratic time expected\n// case.  SequenceMatcher is quadratic time for the worst case and has\n// expected-case behavior dependent in a complicated way on how many\n// elements the sequences have in common; best case time is linear.\ntype SequenceMatcher struct {\n\ta              []string\n\tb              []string\n\tb2j            map[string][]int\n\tIsJunk         func(string) bool\n\tautoJunk       bool\n\tbJunk          map[string]struct{}\n\tmatchingBlocks []Match\n\tfullBCount     map[string]int\n\tbPopular       map[string]struct{}\n\topCodes        []OpCode\n}\n\nfunc NewMatcher(a, b []string) *SequenceMatcher {\n\tm := SequenceMatcher{autoJunk: true}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\nfunc NewMatcherWithJunk(a, b []string, autoJunk bool,\n\tisJunk func(string) bool,\n) *SequenceMatcher {\n\tm := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\n// Set two sequences to be compared.\nfunc (m *SequenceMatcher) SetSeqs(a, b []string) {\n\tm.SetSeq1(a)\n\tm.SetSeq2(b)\n}\n\n// Set the first sequence to be compared. The second sequence to be compared is\n// not changed.\n//\n// SequenceMatcher computes and caches detailed information about the second\n// sequence, so if you want to compare one sequence S against many sequences,\n// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other\n// sequences.\n//\n// See also SetSeqs() and SetSeq2().\nfunc (m *SequenceMatcher) SetSeq1(a []string) {\n\tif &a == &m.a {\n\t\treturn\n\t}\n\tm.a = a\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n}\n\n// Set the second sequence to be compared. The first sequence to be compared is\n// not changed.\nfunc (m *SequenceMatcher) SetSeq2(b []string) {\n\tif &b == &m.b {\n\t\treturn\n\t}\n\tm.b = b\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n\tm.fullBCount = nil\n\tm.chainB()\n}\n\nfunc (m *SequenceMatcher) chainB() {\n\t// Populate line -> index mapping\n\tb2j := map[string][]int{}\n\tfor i, s := range m.b {\n\t\tindices := b2j[s]\n\t\tindices = append(indices, i)\n\t\tb2j[s] = indices\n\t}\n\n\t// Purge junk elements\n\tm.bJunk = map[string]struct{}{}\n\tif m.IsJunk != nil {\n\t\tjunk := m.bJunk\n\t\tfor s := range b2j {\n\t\t\tif m.IsJunk(s) {\n\t\t\t\tjunk[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s := range junk {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\n\t// Purge remaining popular elements\n\tpopular := map[string]struct{}{}\n\tn := len(m.b)\n\tif m.autoJunk && n >= 200 {\n\t\tntest := n/100 + 1\n\t\tfor s, indices := range b2j {\n\t\t\tif len(indices) > ntest {\n\t\t\t\tpopular[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s := range popular {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\tm.bPopular = popular\n\tm.b2j = b2j\n}\n\nfunc (m *SequenceMatcher) isBJunk(s string) bool {\n\t_, ok := m.bJunk[s]\n\treturn ok\n}\n\n// Find longest matching block in a[alo:ahi] and b[blo:bhi].\n//\n// If IsJunk is not defined:\n//\n// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where\n//\n//\talo <= i <= i+k <= ahi\n//\tblo <= j <= j+k <= bhi\n//\n// and for all (i',j',k') meeting those conditions,\n//\n//\tk >= k'\n//\ti <= i'\n//\tand if i == i', j <= j'\n//\n// In other words, of all maximal matching blocks, return one that\n// starts earliest in a, and of all those maximal matching blocks that\n// start earliest in a, return the one that starts earliest in b.\n//\n// If IsJunk is defined, first the longest matching block is\n// determined as above, but with the additional restriction that no\n// junk element appears in the block.  Then that block is extended as\n// far as possible by matching (only) junk elements on both sides.  So\n// the resulting block never matches on junk except as identical junk\n// happens to be adjacent to an \"interesting\" match.\n//\n// If no blocks match, return (alo, blo, 0).\nfunc (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match {\n\t// CAUTION:  stripping common prefix or suffix would be incorrect.\n\t// E.g.,\n\t//    ab\n\t//    acab\n\t// Longest matching block is \"ab\", but if common prefix is\n\t// stripped, it's \"a\" (tied with \"b\").  UNIX(tm) diff does so\n\t// strip, so ends up claiming that ab is changed to acab by\n\t// inserting \"ca\" in the middle.  That's minimal but unintuitive:\n\t// \"it's obvious\" that someone inserted \"ac\" at the front.\n\t// Windiff ends up at the same place as diff, but by pairing up\n\t// the unique 'b's and then matching the first two 'a's.\n\tbesti, bestj, bestsize := alo, blo, 0\n\n\t// find longest junk-free match\n\t// during an iteration of the loop, j2len[j] = length of longest\n\t// junk-free match ending with a[i-1] and b[j]\n\tj2len := map[int]int{}\n\tfor i := alo; i != ahi; i++ {\n\t\t// look at all instances of a[i] in b; note that because\n\t\t// b2j has no junk keys, the loop is skipped if a[i] is junk\n\t\tnewj2len := map[int]int{}\n\t\tfor _, j := range m.b2j[m.a[i]] {\n\t\t\t// a[i] matches b[j]\n\t\t\tif j < blo {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif j >= bhi {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tk := j2len[j-1] + 1\n\t\t\tnewj2len[j] = k\n\t\t\tif k > bestsize {\n\t\t\t\tbesti, bestj, bestsize = i-k+1, j-k+1, k\n\t\t\t}\n\t\t}\n\t\tj2len = newj2len\n\t}\n\n\t// Extend the best by non-junk elements on each end.  In particular,\n\t// \"popular\" non-junk elements aren't in b2j, which greatly speeds\n\t// the inner loop above, but also means \"the best\" match so far\n\t// doesn't contain any junk *or* popular non-junk elements.\n\tfor besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\t!m.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize++\n\t}\n\n\t// Now that we have a wholly interesting match (albeit possibly\n\t// empty!), we may as well suck up the matching junk on each\n\t// side of it too.  Can't think of a good reason not to, and it\n\t// saves post-processing the (possibly considerable) expense of\n\t// figuring out what to do with it.  In the case of an empty\n\t// interesting match, this is clearly the right thing to do,\n\t// because no other kind of match is possible in the regions.\n\tfor besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\tm.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize++\n\t}\n\n\treturn Match{A: besti, B: bestj, Size: bestsize}\n}\n\n// Return list of triples describing matching subsequences.\n//\n// Each triple is of the form (i, j, n), and means that\n// a[i:i+n] == b[j:j+n].  The triples are monotonically increasing in\n// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are\n// adjacent triples in the list, and the second is not the last triple in the\n// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe\n// adjacent equal blocks.\n//\n// The last triple is a dummy, (len(a), len(b), 0), and is the only\n// triple with n==0.\nfunc (m *SequenceMatcher) GetMatchingBlocks() []Match {\n\tif m.matchingBlocks != nil {\n\t\treturn m.matchingBlocks\n\t}\n\n\tvar matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match\n\tmatchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match {\n\t\tmatch := m.findLongestMatch(alo, ahi, blo, bhi)\n\t\ti, j, k := match.A, match.B, match.Size\n\t\tif match.Size > 0 {\n\t\t\tif alo < i && blo < j {\n\t\t\t\tmatched = matchBlocks(alo, i, blo, j, matched)\n\t\t\t}\n\t\t\tmatched = append(matched, match)\n\t\t\tif i+k < ahi && j+k < bhi {\n\t\t\t\tmatched = matchBlocks(i+k, ahi, j+k, bhi, matched)\n\t\t\t}\n\t\t}\n\t\treturn matched\n\t}\n\tmatched := matchBlocks(0, len(m.a), 0, len(m.b), nil)\n\n\t// It's possible that we have adjacent equal blocks in the\n\t// matching_blocks list now.\n\tnonAdjacent := []Match{}\n\ti1, j1, k1 := 0, 0, 0\n\tfor _, b := range matched {\n\t\t// Is this block adjacent to i1, j1, k1?\n\t\ti2, j2, k2 := b.A, b.B, b.Size\n\t\tif i1+k1 == i2 && j1+k1 == j2 {\n\t\t\t// Yes, so collapse them -- this just increases the length of\n\t\t\t// the first block by the length of the second, and the first\n\t\t\t// block so lengthened remains the block to compare against.\n\t\t\tk1 += k2\n\t\t} else {\n\t\t\t// Not adjacent.  Remember the first block (k1==0 means it's\n\t\t\t// the dummy we started with), and make the second block the\n\t\t\t// new block to compare against.\n\t\t\tif k1 > 0 {\n\t\t\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t\t\t}\n\t\t\ti1, j1, k1 = i2, j2, k2\n\t\t}\n\t}\n\tif k1 > 0 {\n\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t}\n\n\tnonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0})\n\tm.matchingBlocks = nonAdjacent\n\treturn m.matchingBlocks\n}\n\n// Return list of 5-tuples describing how to turn a into b.\n//\n// Each tuple is of the form (tag, i1, i2, j1, j2).  The first tuple\n// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the\n// tuple preceding it, and likewise for j1 == the previous j2.\n//\n// The tags are characters, with these meanings:\n//\n// 'r' (replace):  a[i1:i2] should be replaced by b[j1:j2]\n//\n// 'd' (delete):   a[i1:i2] should be deleted, j1==j2 in this case.\n//\n// 'i' (insert):   b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case.\n//\n// 'e' (equal):    a[i1:i2] == b[j1:j2]\nfunc (m *SequenceMatcher) GetOpCodes() []OpCode {\n\tif m.opCodes != nil {\n\t\treturn m.opCodes\n\t}\n\ti, j := 0, 0\n\tmatching := m.GetMatchingBlocks()\n\topCodes := make([]OpCode, 0, len(matching))\n\tfor _, m := range matching {\n\t\t//  invariant:  we've pumped out correct diffs to change\n\t\t//  a[:i] into b[:j], and the next matching block is\n\t\t//  a[ai:ai+size] == b[bj:bj+size]. So we need to pump\n\t\t//  out a diff to change a[i:ai] into b[j:bj], pump out\n\t\t//  the matching block, and move (i,j) beyond the match\n\t\tai, bj, size := m.A, m.B, m.Size\n\t\ttag := byte(0)\n\t\tif i < ai && j < bj {\n\t\t\ttag = 'r'\n\t\t} else if i < ai {\n\t\t\ttag = 'd'\n\t\t} else if j < bj {\n\t\t\ttag = 'i'\n\t\t}\n\t\tif tag > 0 {\n\t\t\topCodes = append(opCodes, OpCode{tag, i, ai, j, bj})\n\t\t}\n\t\ti, j = ai+size, bj+size\n\t\t// the list of matching blocks is terminated by a\n\t\t// sentinel with size 0\n\t\tif size > 0 {\n\t\t\topCodes = append(opCodes, OpCode{'e', ai, i, bj, j})\n\t\t}\n\t}\n\tm.opCodes = opCodes\n\treturn m.opCodes\n}\n\n// Isolate change clusters by eliminating ranges with no changes.\n//\n// Return a generator of groups with up to n lines of context.\n// Each group is in the same format as returned by GetOpCodes().\nfunc (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode {\n\tif n < 0 {\n\t\tn = 3\n\t}\n\tcodes := m.GetOpCodes()\n\tif len(codes) == 0 {\n\t\tcodes = []OpCode{{'e', 0, 1, 0, 1}}\n\t}\n\t// Fixup leading and trailing groups if they show no changes.\n\tif codes[0].Tag == 'e' {\n\t\tc := codes[0]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2}\n\t}\n\tif codes[len(codes)-1].Tag == 'e' {\n\t\tc := codes[len(codes)-1]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)}\n\t}\n\tnn := n + n\n\tgroups := [][]OpCode{}\n\tgroup := []OpCode{}\n\tfor _, c := range codes {\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t// End the current group and start a new one whenever\n\t\t// there is a large range with no changes.\n\t\tif c.Tag == 'e' && i2-i1 > nn {\n\t\t\tgroup = append(group, OpCode{\n\t\t\t\tc.Tag, i1, min(i2, i1+n),\n\t\t\t\tj1, min(j2, j1+n),\n\t\t\t})\n\t\t\tgroups = append(groups, group)\n\t\t\tgroup = []OpCode{}\n\t\t\ti1, j1 = max(i1, i2-n), max(j1, j2-n)\n\t\t}\n\t\tgroup = append(group, OpCode{c.Tag, i1, i2, j1, j2})\n\t}\n\tif len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') {\n\t\tgroups = append(groups, group)\n\t}\n\treturn groups\n}\n\n// Return a measure of the sequences' similarity (float in [0,1]).\n//\n// Where T is the total number of elements in both sequences, and\n// M is the number of matches, this is 2.0*M / T.\n// Note that this is 1 if the sequences are identical, and 0 if\n// they have nothing in common.\n//\n// .Ratio() is expensive to compute if you haven't already computed\n// .GetMatchingBlocks() or .GetOpCodes(), in which case you may\n// want to try .QuickRatio() or .RealQuickRation() first to get an\n// upper bound.\nfunc (m *SequenceMatcher) Ratio() float64 {\n\tmatches := 0\n\tfor _, m := range m.GetMatchingBlocks() {\n\t\tmatches += m.Size\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() relatively quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute.\nfunc (m *SequenceMatcher) QuickRatio() float64 {\n\t// viewing a and b as multisets, set matches to the cardinality\n\t// of their intersection; this counts the number of matches\n\t// without regard to order, so is clearly an upper bound\n\tif m.fullBCount == nil {\n\t\tm.fullBCount = map[string]int{}\n\t\tfor _, s := range m.b {\n\t\t\tm.fullBCount[s]++\n\t\t}\n\t}\n\n\t// avail[x] is the number of times x appears in 'b' less the\n\t// number of times we've seen it in 'a' so far ... kinda\n\tavail := map[string]int{}\n\tmatches := 0\n\tfor _, s := range m.a {\n\t\tn, ok := avail[s]\n\t\tif !ok {\n\t\t\tn = m.fullBCount[s]\n\t\t}\n\t\tavail[s] = n - 1\n\t\tif n > 0 {\n\t\t\tmatches++\n\t\t}\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() very quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute than either .Ratio() or .QuickRatio().\nfunc (m *SequenceMatcher) RealQuickRatio() float64 {\n\tla, lb := len(m.a), len(m.b)\n\treturn calculateRatio(min(la, lb), la+lb)\n}\n\n// Convert range to the \"ed\" format\nfunc formatRangeUnified(start, stop int) string {\n\t// Per the diff spec at http://www.unix.org/single_unix_specification/\n\tbeginning := start + 1 // lines start numbering with one\n\tlength := stop - start\n\tif length == 1 {\n\t\treturn fmt.Sprintf(\"%d\", beginning)\n\t}\n\tif length == 0 {\n\t\tbeginning-- // empty ranges begin at line just before the range\n\t}\n\treturn fmt.Sprintf(\"%d,%d\", beginning, length)\n}\n\n// Unified diff parameters\ntype UnifiedDiff struct {\n\tA        []string // First sequence lines\n\tFromFile string   // First file name\n\tFromDate string   // First file time\n\tB        []string // Second sequence lines\n\tToFile   string   // Second file name\n\tToDate   string   // Second file time\n\tEol      string   // Headers end of line, defaults to LF\n\tContext  int      // Number of context lines\n}\n\n// Compare two sequences of lines; generate the delta as a unified diff.\n//\n// Unified diffs are a compact way of showing line changes and a few\n// lines of context.  The number of context lines is set by 'n' which\n// defaults to three.\n//\n// By default, the diff control lines (those with ---, +++, or @@) are\n// created with a trailing newline.  This is helpful so that inputs\n// created from file.readlines() result in diffs that are suitable for\n// file.writelines() since both the inputs and outputs have trailing\n// newlines.\n//\n// For inputs that do not have trailing newlines, set the lineterm\n// argument to \"\" so that the output will be uniformly newline free.\n//\n// The unidiff format normally has a header for filenames and modification\n// times.  Any or all of these may be specified using strings for\n// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'.\n// The modification times are normally expressed in the ISO 8601 format.\nfunc WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error {\n\tbuf := bufio.NewWriter(writer)\n\tdefer buf.Flush()\n\twf := func(format string, args ...interface{}) error {\n\t\t_, err := buf.WriteString(fmt.Sprintf(format, args...))\n\t\treturn err\n\t}\n\tws := func(s string) error {\n\t\t_, err := buf.WriteString(s)\n\t\treturn err\n\t}\n\n\tif len(diff.Eol) == 0 {\n\t\tdiff.Eol = \"\\n\"\n\t}\n\n\tstarted := false\n\tm := NewMatcher(diff.A, diff.B)\n\tfor _, g := range m.GetGroupedOpCodes(diff.Context) {\n\t\tif !started {\n\t\t\tstarted = true\n\t\t\tfromDate := \"\"\n\t\t\tif len(diff.FromDate) > 0 {\n\t\t\t\tfromDate = \"\\t\" + diff.FromDate\n\t\t\t}\n\t\t\ttoDate := \"\"\n\t\t\tif len(diff.ToDate) > 0 {\n\t\t\t\ttoDate = \"\\t\" + diff.ToDate\n\t\t\t}\n\t\t\tif diff.FromFile != \"\" || diff.ToFile != \"\" {\n\t\t\t\terr := wf(\"--- %s%s%s\", diff.FromFile, fromDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\terr = wf(\"+++ %s%s%s\", diff.ToFile, toDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfirst, last := g[0], g[len(g)-1]\n\t\trange1 := formatRangeUnified(first.I1, last.I2)\n\t\trange2 := formatRangeUnified(first.J1, last.J2)\n\t\tif err := wf(\"@@ -%s +%s @@%s\", range1, range2, diff.Eol); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, c := range g {\n\t\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t\tif c.Tag == 'e' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\" \" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'd' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\"-\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'i' {\n\t\t\t\tfor _, line := range diff.B[j1:j2] {\n\t\t\t\t\tif err := ws(\"+\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Like WriteUnifiedDiff but returns the diff a string.\nfunc GetUnifiedDiffString(diff UnifiedDiff) (string, error) {\n\tw := &bytes.Buffer{}\n\terr := WriteUnifiedDiff(w, diff)\n\treturn w.String(), err\n}\n\n// Split a string on \"\\n\" while preserving them. The output can be used\n// as input for UnifiedDiff and ContextDiff structures.\nfunc SplitLines(s string) []string {\n\tlines := strings.SplitAfter(s, \"\\n\")\n\tlines[len(lines)-1] += \"\\n\"\n\treturn lines\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/internal/go_collector_options.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage internal\n\nimport \"regexp\"\n\ntype GoCollectorRule struct {\n\tMatcher *regexp.Regexp\n\tDeny    bool\n}\n\n// GoCollectorOptions should not be used be directly by anything, except `collectors` package.\n// Use it via collectors package instead. See issue\n// https://github.com/prometheus/client_golang/issues/1030.\n//\n// This is internal, so external users only can use it via `collector.WithGoCollector*` methods\ntype GoCollectorOptions struct {\n\tDisableMemStatsLikeMetrics bool\n\tRuntimeMetricSumForHist    map[string]string\n\tRuntimeMetricRules         []GoCollectorRule\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build go1.17\n// +build go1.17\n\npackage internal\n\nimport (\n\t\"math\"\n\t\"path\"\n\t\"runtime/metrics\"\n\t\"strings\"\n\n\t\"github.com/prometheus/common/model\"\n)\n\n// RuntimeMetricsToProm produces a Prometheus metric name from a runtime/metrics\n// metric description and validates whether the metric is suitable for integration\n// with Prometheus.\n//\n// Returns false if a name could not be produced, or if Prometheus does not understand\n// the runtime/metrics Kind.\n//\n// Note that the main reason a name couldn't be produced is if the runtime/metrics\n// package exports a name with characters outside the valid Prometheus metric name\n// character set. This is theoretically possible, but should never happen in practice.\n// Still, don't rely on it.\nfunc RuntimeMetricsToProm(d *metrics.Description) (string, string, string, bool) {\n\tnamespace := \"go\"\n\n\tcomp := strings.SplitN(d.Name, \":\", 2)\n\tkey := comp[0]\n\tunit := comp[1]\n\n\t// The last path element in the key is the name,\n\t// the rest is the subsystem.\n\tsubsystem := path.Dir(key[1:] /* remove leading / */)\n\tname := path.Base(key)\n\n\t// subsystem is translated by replacing all / and - with _.\n\tsubsystem = strings.ReplaceAll(subsystem, \"/\", \"_\")\n\tsubsystem = strings.ReplaceAll(subsystem, \"-\", \"_\")\n\n\t// unit is translated assuming that the unit contains no\n\t// non-ASCII characters.\n\tunit = strings.ReplaceAll(unit, \"-\", \"_\")\n\tunit = strings.ReplaceAll(unit, \"*\", \"_\")\n\tunit = strings.ReplaceAll(unit, \"/\", \"_per_\")\n\n\t// name has - replaced with _ and is concatenated with the unit and\n\t// other data.\n\tname = strings.ReplaceAll(name, \"-\", \"_\")\n\tname += \"_\" + unit\n\tif d.Cumulative && d.Kind != metrics.KindFloat64Histogram {\n\t\tname += \"_total\"\n\t}\n\n\tvalid := model.IsValidMetricName(model.LabelValue(namespace + \"_\" + subsystem + \"_\" + name))\n\tswitch d.Kind {\n\tcase metrics.KindUint64:\n\tcase metrics.KindFloat64:\n\tcase metrics.KindFloat64Histogram:\n\tdefault:\n\t\tvalid = false\n\t}\n\treturn namespace, subsystem, name, valid\n}\n\n// RuntimeMetricsBucketsForUnit takes a set of buckets obtained for a runtime/metrics histogram\n// type (so, lower-bound inclusive) and a unit from a runtime/metrics name, and produces\n// a reduced set of buckets. This function always removes any -Inf bucket as it's represented\n// as the bottom-most upper-bound inclusive bucket in Prometheus.\nfunc RuntimeMetricsBucketsForUnit(buckets []float64, unit string) []float64 {\n\tswitch unit {\n\tcase \"bytes\":\n\t\t// Re-bucket as powers of 2.\n\t\treturn reBucketExp(buckets, 2)\n\tcase \"seconds\":\n\t\t// Re-bucket as powers of 10 and then merge all buckets greater\n\t\t// than 1 second into the +Inf bucket.\n\t\tb := reBucketExp(buckets, 10)\n\t\tfor i := range b {\n\t\t\tif b[i] <= 1 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tb[i] = math.Inf(1)\n\t\t\tb = b[:i+1]\n\t\t\tbreak\n\t\t}\n\t\treturn b\n\t}\n\treturn buckets\n}\n\n// reBucketExp takes a list of bucket boundaries (lower bound inclusive) and\n// downsamples the buckets to those a multiple of base apart. The end result\n// is a roughly exponential (in many cases, perfectly exponential) bucketing\n// scheme.\nfunc reBucketExp(buckets []float64, base float64) []float64 {\n\tbucket := buckets[0]\n\tvar newBuckets []float64\n\t// We may see a -Inf here, in which case, add it and skip it\n\t// since we risk producing NaNs otherwise.\n\t//\n\t// We need to preserve -Inf values to maintain runtime/metrics\n\t// conventions. We'll strip it out later.\n\tif bucket == math.Inf(-1) {\n\t\tnewBuckets = append(newBuckets, bucket)\n\t\tbuckets = buckets[1:]\n\t\tbucket = buckets[0]\n\t}\n\t// From now on, bucket should always have a non-Inf value because\n\t// Infs are only ever at the ends of the bucket lists, so\n\t// arithmetic operations on it are non-NaN.\n\tfor i := 1; i < len(buckets); i++ {\n\t\tif bucket >= 0 && buckets[i] < bucket*base {\n\t\t\t// The next bucket we want to include is at least bucket*base.\n\t\t\tcontinue\n\t\t} else if bucket < 0 && buckets[i] < bucket/base {\n\t\t\t// In this case the bucket we're targeting is negative, and since\n\t\t\t// we're ascending through buckets here, we need to divide to get\n\t\t\t// closer to zero exponentially.\n\t\t\tcontinue\n\t\t}\n\t\t// The +Inf bucket will always be the last one, and we'll always\n\t\t// end up including it here because bucket\n\t\tnewBuckets = append(newBuckets, bucket)\n\t\tbucket = buckets[i]\n\t}\n\treturn append(newBuckets, bucket)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/internal/metric.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage internal\n\nimport (\n\t\"sort\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// LabelPairSorter implements sort.Interface. It is used to sort a slice of\n// dto.LabelPair pointers.\ntype LabelPairSorter []*dto.LabelPair\n\nfunc (s LabelPairSorter) Len() int {\n\treturn len(s)\n}\n\nfunc (s LabelPairSorter) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s LabelPairSorter) Less(i, j int) bool {\n\treturn s[i].GetName() < s[j].GetName()\n}\n\n// MetricSorter is a sortable slice of *dto.Metric.\ntype MetricSorter []*dto.Metric\n\nfunc (s MetricSorter) Len() int {\n\treturn len(s)\n}\n\nfunc (s MetricSorter) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s MetricSorter) Less(i, j int) bool {\n\tif len(s[i].Label) != len(s[j].Label) {\n\t\t// This should not happen. The metrics are\n\t\t// inconsistent. However, we have to deal with the fact, as\n\t\t// people might use custom collectors or metric family injection\n\t\t// to create inconsistent metrics. So let's simply compare the\n\t\t// number of labels in this case. That will still yield\n\t\t// reproducible sorting.\n\t\treturn len(s[i].Label) < len(s[j].Label)\n\t}\n\tfor n, lp := range s[i].Label {\n\t\tvi := lp.GetValue()\n\t\tvj := s[j].Label[n].GetValue()\n\t\tif vi != vj {\n\t\t\treturn vi < vj\n\t\t}\n\t}\n\n\t// We should never arrive here. Multiple metrics with the same\n\t// label set in the same scrape will lead to undefined ingestion\n\t// behavior. However, as above, we have to provide stable sorting\n\t// here, even for inconsistent metrics. So sort equal metrics\n\t// by their timestamp, with missing timestamps (implying \"now\")\n\t// coming last.\n\tif s[i].TimestampMs == nil {\n\t\treturn false\n\t}\n\tif s[j].TimestampMs == nil {\n\t\treturn true\n\t}\n\treturn s[i].GetTimestampMs() < s[j].GetTimestampMs()\n}\n\n// NormalizeMetricFamilies returns a MetricFamily slice with empty\n// MetricFamilies pruned and the remaining MetricFamilies sorted by name within\n// the slice, with the contained Metrics sorted within each MetricFamily.\nfunc NormalizeMetricFamilies(metricFamiliesByName map[string]*dto.MetricFamily) []*dto.MetricFamily {\n\tfor _, mf := range metricFamiliesByName {\n\t\tsort.Sort(MetricSorter(mf.Metric))\n\t}\n\tnames := make([]string, 0, len(metricFamiliesByName))\n\tfor name, mf := range metricFamiliesByName {\n\t\tif len(mf.Metric) > 0 {\n\t\t\tnames = append(names, name)\n\t\t}\n\t}\n\tsort.Strings(names)\n\tresult := make([]*dto.MetricFamily, 0, len(names))\n\tfor _, name := range names {\n\t\tresult = append(result, metricFamiliesByName[name])\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/labels.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"github.com/prometheus/common/model\"\n)\n\n// Labels represents a collection of label name -> value mappings. This type is\n// commonly used with the With(Labels) and GetMetricWith(Labels) methods of\n// metric vector Collectors, e.g.:\n//\n//\tmyVec.With(Labels{\"code\": \"404\", \"method\": \"GET\"}).Add(42)\n//\n// The other use-case is the specification of constant label pairs in Opts or to\n// create a Desc.\ntype Labels map[string]string\n\n// ConstrainedLabels represents a label name and its constrain function\n// to normalize label values. This type is commonly used when constructing\n// metric vector Collectors.\ntype ConstrainedLabel struct {\n\tName       string\n\tConstraint func(string) string\n}\n\nfunc (cl ConstrainedLabel) Constrain(v string) string {\n\tif cl.Constraint == nil {\n\t\treturn v\n\t}\n\treturn cl.Constraint(v)\n}\n\n// ConstrainableLabels is an interface that allows creating of labels that can\n// be optionally constrained.\n//\n//\tprometheus.V2().NewCounterVec(CounterVecOpts{\n//\t  CounterOpts: {...}, // Usual CounterOpts fields\n//\t  VariableLabels: []ConstrainedLabels{\n//\t    {Name: \"A\"},\n//\t    {Name: \"B\", Constraint: func(v string) string { ... }},\n//\t  },\n//\t})\ntype ConstrainableLabels interface {\n\tconstrainedLabels() ConstrainedLabels\n\tlabelNames() []string\n}\n\n// ConstrainedLabels represents a collection of label name -> constrain function\n// to normalize label values. This type is commonly used when constructing\n// metric vector Collectors.\ntype ConstrainedLabels []ConstrainedLabel\n\nfunc (cls ConstrainedLabels) constrainedLabels() ConstrainedLabels {\n\treturn cls\n}\n\nfunc (cls ConstrainedLabels) labelNames() []string {\n\tnames := make([]string, len(cls))\n\tfor i, label := range cls {\n\t\tnames[i] = label.Name\n\t}\n\treturn names\n}\n\n// UnconstrainedLabels represents collection of label without any constraint on\n// their value. Thus, it is simply a collection of label names.\n//\n//\tUnconstrainedLabels([]string{ \"A\", \"B\" })\n//\n// is equivalent to\n//\n//\tConstrainedLabels {\n//\t  { Name: \"A\" },\n//\t  { Name: \"B\" },\n//\t}\ntype UnconstrainedLabels []string\n\nfunc (uls UnconstrainedLabels) constrainedLabels() ConstrainedLabels {\n\tconstrainedLabels := make([]ConstrainedLabel, len(uls))\n\tfor i, l := range uls {\n\t\tconstrainedLabels[i] = ConstrainedLabel{Name: l}\n\t}\n\treturn constrainedLabels\n}\n\nfunc (uls UnconstrainedLabels) labelNames() []string {\n\treturn uls\n}\n\n// reservedLabelPrefix is a prefix which is not legal in user-supplied\n// label names.\nconst reservedLabelPrefix = \"__\"\n\nvar errInconsistentCardinality = errors.New(\"inconsistent label cardinality\")\n\nfunc makeInconsistentCardinalityError(fqName string, labels, labelValues []string) error {\n\treturn fmt.Errorf(\n\t\t\"%w: %q has %d variable labels named %q but %d values %q were provided\",\n\t\terrInconsistentCardinality, fqName,\n\t\tlen(labels), labels,\n\t\tlen(labelValues), labelValues,\n\t)\n}\n\nfunc validateValuesInLabels(labels Labels, expectedNumberOfValues int) error {\n\tif len(labels) != expectedNumberOfValues {\n\t\treturn fmt.Errorf(\n\t\t\t\"%w: expected %d label values but got %d in %#v\",\n\t\t\terrInconsistentCardinality, expectedNumberOfValues,\n\t\t\tlen(labels), labels,\n\t\t)\n\t}\n\n\tfor name, val := range labels {\n\t\tif !utf8.ValidString(val) {\n\t\t\treturn fmt.Errorf(\"label %s: value %q is not valid UTF-8\", name, val)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc validateLabelValues(vals []string, expectedNumberOfValues int) error {\n\tif len(vals) != expectedNumberOfValues {\n\t\treturn fmt.Errorf(\n\t\t\t\"%w: expected %d label values but got %d in %#v\",\n\t\t\terrInconsistentCardinality, expectedNumberOfValues,\n\t\t\tlen(vals), vals,\n\t\t)\n\t}\n\n\tfor _, val := range vals {\n\t\tif !utf8.ValidString(val) {\n\t\t\treturn fmt.Errorf(\"label value %q is not valid UTF-8\", val)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc checkLabelName(l string) bool {\n\treturn model.LabelName(l).IsValid() && !strings.HasPrefix(l, reservedLabelPrefix)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/metric.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"github.com/prometheus/common/model\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\nvar separatorByteSlice = []byte{model.SeparatorByte} // For convenient use with xxhash.\n\n// A Metric models a single sample value with its meta data being exported to\n// Prometheus. Implementations of Metric in this package are Gauge, Counter,\n// Histogram, Summary, and Untyped.\ntype Metric interface {\n\t// Desc returns the descriptor for the Metric. This method idempotently\n\t// returns the same descriptor throughout the lifetime of the\n\t// Metric. The returned descriptor is immutable by contract. A Metric\n\t// unable to describe itself must return an invalid descriptor (created\n\t// with NewInvalidDesc).\n\tDesc() *Desc\n\t// Write encodes the Metric into a \"Metric\" Protocol Buffer data\n\t// transmission object.\n\t//\n\t// Metric implementations must observe concurrency safety as reads of\n\t// this metric may occur at any time, and any blocking occurs at the\n\t// expense of total performance of rendering all registered\n\t// metrics. Ideally, Metric implementations should support concurrent\n\t// readers.\n\t//\n\t// While populating dto.Metric, it is the responsibility of the\n\t// implementation to ensure validity of the Metric protobuf (like valid\n\t// UTF-8 strings or syntactically valid metric and label names). It is\n\t// recommended to sort labels lexicographically. Callers of Write should\n\t// still make sure of sorting if they depend on it.\n\tWrite(*dto.Metric) error\n\t// TODO(beorn7): The original rationale of passing in a pre-allocated\n\t// dto.Metric protobuf to save allocations has disappeared. The\n\t// signature of this method should be changed to \"Write() (*dto.Metric,\n\t// error)\".\n}\n\n// Opts bundles the options for creating most Metric types. Each metric\n// implementation XXX has its own XXXOpts type, but in most cases, it is just\n// an alias of this type (which might change when the requirement arises.)\n//\n// It is mandatory to set Name to a non-empty string. All other fields are\n// optional and can safely be left at their zero value, although it is strongly\n// encouraged to set a Help string.\ntype Opts struct {\n\t// Namespace, Subsystem, and Name are components of the fully-qualified\n\t// name of the Metric (created by joining these components with\n\t// \"_\"). Only Name is mandatory, the others merely help structuring the\n\t// name. Note that the fully-qualified name of the metric must be a\n\t// valid Prometheus metric name.\n\tNamespace string\n\tSubsystem string\n\tName      string\n\n\t// Help provides information about this metric.\n\t//\n\t// Metrics with the same fully-qualified name must have the same Help\n\t// string.\n\tHelp string\n\n\t// ConstLabels are used to attach fixed labels to this metric. Metrics\n\t// with the same fully-qualified name must have the same label names in\n\t// their ConstLabels.\n\t//\n\t// ConstLabels are only used rarely. In particular, do not use them to\n\t// attach the same labels to all your metrics. Those use cases are\n\t// better covered by target labels set by the scraping Prometheus\n\t// server, or by one specific metric (e.g. a build_info or a\n\t// machine_role metric). See also\n\t// https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels\n\tConstLabels Labels\n}\n\n// BuildFQName joins the given three name components by \"_\". Empty name\n// components are ignored. If the name parameter itself is empty, an empty\n// string is returned, no matter what. Metric implementations included in this\n// library use this function internally to generate the fully-qualified metric\n// name from the name component in their Opts. Users of the library will only\n// need this function if they implement their own Metric or instantiate a Desc\n// (with NewDesc) directly.\nfunc BuildFQName(namespace, subsystem, name string) string {\n\tif name == \"\" {\n\t\treturn \"\"\n\t}\n\tswitch {\n\tcase namespace != \"\" && subsystem != \"\":\n\t\treturn strings.Join([]string{namespace, subsystem, name}, \"_\")\n\tcase namespace != \"\":\n\t\treturn strings.Join([]string{namespace, name}, \"_\")\n\tcase subsystem != \"\":\n\t\treturn strings.Join([]string{subsystem, name}, \"_\")\n\t}\n\treturn name\n}\n\ntype invalidMetric struct {\n\tdesc *Desc\n\terr  error\n}\n\n// NewInvalidMetric returns a metric whose Write method always returns the\n// provided error. It is useful if a Collector finds itself unable to collect\n// a metric and wishes to report an error to the registry.\nfunc NewInvalidMetric(desc *Desc, err error) Metric {\n\treturn &invalidMetric{desc, err}\n}\n\nfunc (m *invalidMetric) Desc() *Desc { return m.desc }\n\nfunc (m *invalidMetric) Write(*dto.Metric) error { return m.err }\n\ntype timestampedMetric struct {\n\tMetric\n\tt time.Time\n}\n\nfunc (m timestampedMetric) Write(pb *dto.Metric) error {\n\te := m.Metric.Write(pb)\n\tpb.TimestampMs = proto.Int64(m.t.Unix()*1000 + int64(m.t.Nanosecond()/1000000))\n\treturn e\n}\n\n// NewMetricWithTimestamp returns a new Metric wrapping the provided Metric in a\n// way that it has an explicit timestamp set to the provided Time. This is only\n// useful in rare cases as the timestamp of a Prometheus metric should usually\n// be set by the Prometheus server during scraping. Exceptions include mirroring\n// metrics with given timestamps from other metric\n// sources.\n//\n// NewMetricWithTimestamp works best with MustNewConstMetric,\n// MustNewConstHistogram, and MustNewConstSummary, see example.\n//\n// Currently, the exposition formats used by Prometheus are limited to\n// millisecond resolution. Thus, the provided time will be rounded down to the\n// next full millisecond value.\nfunc NewMetricWithTimestamp(t time.Time, m Metric) Metric {\n\treturn timestampedMetric{Metric: m, t: t}\n}\n\ntype withExemplarsMetric struct {\n\tMetric\n\n\texemplars []*dto.Exemplar\n}\n\nfunc (m *withExemplarsMetric) Write(pb *dto.Metric) error {\n\tif err := m.Metric.Write(pb); err != nil {\n\t\treturn err\n\t}\n\n\tswitch {\n\tcase pb.Counter != nil:\n\t\tpb.Counter.Exemplar = m.exemplars[len(m.exemplars)-1]\n\tcase pb.Histogram != nil:\n\t\tfor _, e := range m.exemplars {\n\t\t\t// pb.Histogram.Bucket are sorted by UpperBound.\n\t\t\ti := sort.Search(len(pb.Histogram.Bucket), func(i int) bool {\n\t\t\t\treturn pb.Histogram.Bucket[i].GetUpperBound() >= e.GetValue()\n\t\t\t})\n\t\t\tif i < len(pb.Histogram.Bucket) {\n\t\t\t\tpb.Histogram.Bucket[i].Exemplar = e\n\t\t\t} else {\n\t\t\t\t// The +Inf bucket should be explicitly added if there is an exemplar for it, similar to non-const histogram logic in https://github.com/prometheus/client_golang/blob/main/prometheus/histogram.go#L357-L365.\n\t\t\t\tb := &dto.Bucket{\n\t\t\t\t\tCumulativeCount: proto.Uint64(pb.Histogram.GetSampleCount()),\n\t\t\t\t\tUpperBound:      proto.Float64(math.Inf(1)),\n\t\t\t\t\tExemplar:        e,\n\t\t\t\t}\n\t\t\t\tpb.Histogram.Bucket = append(pb.Histogram.Bucket, b)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// TODO(bwplotka): Implement Gauge?\n\t\treturn errors.New(\"cannot inject exemplar into Gauge, Summary or Untyped\")\n\t}\n\n\treturn nil\n}\n\n// Exemplar is easier to use, user-facing representation of *dto.Exemplar.\ntype Exemplar struct {\n\tValue  float64\n\tLabels Labels\n\t// Optional.\n\t// Default value (time.Time{}) indicates its empty, which should be\n\t// understood as time.Now() time at the moment of creation of metric.\n\tTimestamp time.Time\n}\n\n// NewMetricWithExemplars returns a new Metric wrapping the provided Metric with given\n// exemplars. Exemplars are validated.\n//\n// Only last applicable exemplar is injected from the list.\n// For example for Counter it means last exemplar is injected.\n// For Histogram, it means last applicable exemplar for each bucket is injected.\n//\n// NewMetricWithExemplars works best with MustNewConstMetric and\n// MustNewConstHistogram, see example.\nfunc NewMetricWithExemplars(m Metric, exemplars ...Exemplar) (Metric, error) {\n\tif len(exemplars) == 0 {\n\t\treturn nil, errors.New(\"no exemplar was passed for NewMetricWithExemplars\")\n\t}\n\n\tvar (\n\t\tnow = time.Now()\n\t\texs = make([]*dto.Exemplar, len(exemplars))\n\t\terr error\n\t)\n\tfor i, e := range exemplars {\n\t\tts := e.Timestamp\n\t\tif ts == (time.Time{}) {\n\t\t\tts = now\n\t\t}\n\t\texs[i], err = newExemplar(e.Value, ts, e.Labels)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &withExemplarsMetric{Metric: m, exemplars: exs}, nil\n}\n\n// MustNewMetricWithExemplars is a version of NewMetricWithExemplars that panics where\n// NewMetricWithExemplars would have returned an error.\nfunc MustNewMetricWithExemplars(m Metric, exemplars ...Exemplar) Metric {\n\tret, err := NewMetricWithExemplars(m, exemplars...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/num_threads.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !js || wasm\n// +build !js wasm\n\npackage prometheus\n\nimport \"runtime\"\n\n// getRuntimeNumThreads returns the number of open OS threads.\nfunc getRuntimeNumThreads() float64 {\n\tn, _ := runtime.ThreadCreateProfile(nil)\n\treturn float64(n)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/num_threads_gopherjs.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build js && !wasm\n// +build js,!wasm\n\npackage prometheus\n\n// getRuntimeNumThreads returns the number of open OS threads.\nfunc getRuntimeNumThreads() float64 {\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/observer.go",
    "content": "// Copyright 2017 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\n// Observer is the interface that wraps the Observe method, which is used by\n// Histogram and Summary to add observations.\ntype Observer interface {\n\tObserve(float64)\n}\n\n// The ObserverFunc type is an adapter to allow the use of ordinary\n// functions as Observers. If f is a function with the appropriate\n// signature, ObserverFunc(f) is an Observer that calls f.\n//\n// This adapter is usually used in connection with the Timer type, and there are\n// two general use cases:\n//\n// The most common one is to use a Gauge as the Observer for a Timer.\n// See the \"Gauge\" Timer example.\n//\n// The more advanced use case is to create a function that dynamically decides\n// which Observer to use for observing the duration. See the \"Complex\" Timer\n// example.\ntype ObserverFunc func(float64)\n\n// Observe calls f(value). It implements Observer.\nfunc (f ObserverFunc) Observe(value float64) {\n\tf(value)\n}\n\n// ObserverVec is an interface implemented by `HistogramVec` and `SummaryVec`.\ntype ObserverVec interface {\n\tGetMetricWith(Labels) (Observer, error)\n\tGetMetricWithLabelValues(lvs ...string) (Observer, error)\n\tWith(Labels) Observer\n\tWithLabelValues(...string) Observer\n\tCurryWith(Labels) (ObserverVec, error)\n\tMustCurryWith(Labels) ObserverVec\n\n\tCollector\n}\n\n// ExemplarObserver is implemented by Observers that offer the option of\n// observing a value together with an exemplar. Its ObserveWithExemplar method\n// works like the Observe method of an Observer but also replaces the currently\n// saved exemplar (if any) with a new one, created from the provided value, the\n// current time as timestamp, and the provided Labels. Empty Labels will lead to\n// a valid (label-less) exemplar. But if Labels is nil, the current exemplar is\n// left in place. ObserveWithExemplar panics if any of the provided labels are\n// invalid or if the provided labels contain more than 128 runes in total.\ntype ExemplarObserver interface {\n\tObserveWithExemplar(value float64, exemplar Labels)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/process_collector.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype processCollector struct {\n\tcollectFn       func(chan<- Metric)\n\tpidFn           func() (int, error)\n\treportErrors    bool\n\tcpuTotal        *Desc\n\topenFDs, maxFDs *Desc\n\tvsize, maxVsize *Desc\n\trss             *Desc\n\tstartTime       *Desc\n}\n\n// ProcessCollectorOpts defines the behavior of a process metrics collector\n// created with NewProcessCollector.\ntype ProcessCollectorOpts struct {\n\t// PidFn returns the PID of the process the collector collects metrics\n\t// for. It is called upon each collection. By default, the PID of the\n\t// current process is used, as determined on construction time by\n\t// calling os.Getpid().\n\tPidFn func() (int, error)\n\t// If non-empty, each of the collected metrics is prefixed by the\n\t// provided string and an underscore (\"_\").\n\tNamespace string\n\t// If true, any error encountered during collection is reported as an\n\t// invalid metric (see NewInvalidMetric). Otherwise, errors are ignored\n\t// and the collected metrics will be incomplete. (Possibly, no metrics\n\t// will be collected at all.) While that's usually not desired, it is\n\t// appropriate for the common \"mix-in\" of process metrics, where process\n\t// metrics are nice to have, but failing to collect them should not\n\t// disrupt the collection of the remaining metrics.\n\tReportErrors bool\n}\n\n// NewProcessCollector is the obsolete version of collectors.NewProcessCollector.\n// See there for documentation.\n//\n// Deprecated: Use collectors.NewProcessCollector instead.\nfunc NewProcessCollector(opts ProcessCollectorOpts) Collector {\n\tns := \"\"\n\tif len(opts.Namespace) > 0 {\n\t\tns = opts.Namespace + \"_\"\n\t}\n\n\tc := &processCollector{\n\t\treportErrors: opts.ReportErrors,\n\t\tcpuTotal: NewDesc(\n\t\t\tns+\"process_cpu_seconds_total\",\n\t\t\t\"Total user and system CPU time spent in seconds.\",\n\t\t\tnil, nil,\n\t\t),\n\t\topenFDs: NewDesc(\n\t\t\tns+\"process_open_fds\",\n\t\t\t\"Number of open file descriptors.\",\n\t\t\tnil, nil,\n\t\t),\n\t\tmaxFDs: NewDesc(\n\t\t\tns+\"process_max_fds\",\n\t\t\t\"Maximum number of open file descriptors.\",\n\t\t\tnil, nil,\n\t\t),\n\t\tvsize: NewDesc(\n\t\t\tns+\"process_virtual_memory_bytes\",\n\t\t\t\"Virtual memory size in bytes.\",\n\t\t\tnil, nil,\n\t\t),\n\t\tmaxVsize: NewDesc(\n\t\t\tns+\"process_virtual_memory_max_bytes\",\n\t\t\t\"Maximum amount of virtual memory available in bytes.\",\n\t\t\tnil, nil,\n\t\t),\n\t\trss: NewDesc(\n\t\t\tns+\"process_resident_memory_bytes\",\n\t\t\t\"Resident memory size in bytes.\",\n\t\t\tnil, nil,\n\t\t),\n\t\tstartTime: NewDesc(\n\t\t\tns+\"process_start_time_seconds\",\n\t\t\t\"Start time of the process since unix epoch in seconds.\",\n\t\t\tnil, nil,\n\t\t),\n\t}\n\n\tif opts.PidFn == nil {\n\t\tc.pidFn = getPIDFn()\n\t} else {\n\t\tc.pidFn = opts.PidFn\n\t}\n\n\t// Set up process metric collection if supported by the runtime.\n\tif canCollectProcess() {\n\t\tc.collectFn = c.processCollect\n\t} else {\n\t\tc.collectFn = func(ch chan<- Metric) {\n\t\t\tc.reportError(ch, nil, errors.New(\"process metrics not supported on this platform\"))\n\t\t}\n\t}\n\n\treturn c\n}\n\n// Describe returns all descriptions of the collector.\nfunc (c *processCollector) Describe(ch chan<- *Desc) {\n\tch <- c.cpuTotal\n\tch <- c.openFDs\n\tch <- c.maxFDs\n\tch <- c.vsize\n\tch <- c.maxVsize\n\tch <- c.rss\n\tch <- c.startTime\n}\n\n// Collect returns the current state of all metrics of the collector.\nfunc (c *processCollector) Collect(ch chan<- Metric) {\n\tc.collectFn(ch)\n}\n\nfunc (c *processCollector) reportError(ch chan<- Metric, desc *Desc, err error) {\n\tif !c.reportErrors {\n\t\treturn\n\t}\n\tif desc == nil {\n\t\tdesc = NewInvalidDesc(err)\n\t}\n\tch <- NewInvalidMetric(desc, err)\n}\n\n// NewPidFileFn returns a function that retrieves a pid from the specified file.\n// It is meant to be used for the PidFn field in ProcessCollectorOpts.\nfunc NewPidFileFn(pidFilePath string) func() (int, error) {\n\treturn func() (int, error) {\n\t\tcontent, err := os.ReadFile(pidFilePath)\n\t\tif err != nil {\n\t\t\treturn 0, fmt.Errorf(\"can't read pid file %q: %w\", pidFilePath, err)\n\t\t}\n\t\tpid, err := strconv.Atoi(strings.TrimSpace(string(content)))\n\t\tif err != nil {\n\t\t\treturn 0, fmt.Errorf(\"can't parse pid file %q: %w\", pidFilePath, err)\n\t\t}\n\n\t\treturn pid, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/process_collector_js.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build js\n// +build js\n\npackage prometheus\n\nfunc canCollectProcess() bool {\n\treturn false\n}\n\nfunc (c *processCollector) processCollect(ch chan<- Metric) {\n\t// noop on this platform\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows && !js\n// +build !windows,!js\n\npackage prometheus\n\nimport (\n\t\"github.com/prometheus/procfs\"\n)\n\nfunc canCollectProcess() bool {\n\t_, err := procfs.NewDefaultFS()\n\treturn err == nil\n}\n\nfunc (c *processCollector) processCollect(ch chan<- Metric) {\n\tpid, err := c.pidFn()\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\n\tp, err := procfs.NewProc(pid)\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\n\tif stat, err := p.Stat(); err == nil {\n\t\tch <- MustNewConstMetric(c.cpuTotal, CounterValue, stat.CPUTime())\n\t\tch <- MustNewConstMetric(c.vsize, GaugeValue, float64(stat.VirtualMemory()))\n\t\tch <- MustNewConstMetric(c.rss, GaugeValue, float64(stat.ResidentMemory()))\n\t\tif startTime, err := stat.StartTime(); err == nil {\n\t\t\tch <- MustNewConstMetric(c.startTime, GaugeValue, startTime)\n\t\t} else {\n\t\t\tc.reportError(ch, c.startTime, err)\n\t\t}\n\t} else {\n\t\tc.reportError(ch, nil, err)\n\t}\n\n\tif fds, err := p.FileDescriptorsLen(); err == nil {\n\t\tch <- MustNewConstMetric(c.openFDs, GaugeValue, float64(fds))\n\t} else {\n\t\tc.reportError(ch, c.openFDs, err)\n\t}\n\n\tif limits, err := p.Limits(); err == nil {\n\t\tch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(limits.OpenFiles))\n\t\tch <- MustNewConstMetric(c.maxVsize, GaugeValue, float64(limits.AddressSpace))\n\t} else {\n\t\tc.reportError(ch, nil, err)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\nfunc canCollectProcess() bool {\n\treturn true\n}\n\nvar (\n\tmodpsapi    = syscall.NewLazyDLL(\"psapi.dll\")\n\tmodkernel32 = syscall.NewLazyDLL(\"kernel32.dll\")\n\n\tprocGetProcessMemoryInfo  = modpsapi.NewProc(\"GetProcessMemoryInfo\")\n\tprocGetProcessHandleCount = modkernel32.NewProc(\"GetProcessHandleCount\")\n)\n\ntype processMemoryCounters struct {\n\t// System interface description\n\t// https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-process_memory_counters_ex\n\n\t// Refer to the Golang internal implementation\n\t// https://golang.org/src/internal/syscall/windows/psapi_windows.go\n\t_                          uint32\n\tPageFaultCount             uint32\n\tPeakWorkingSetSize         uintptr\n\tWorkingSetSize             uintptr\n\tQuotaPeakPagedPoolUsage    uintptr\n\tQuotaPagedPoolUsage        uintptr\n\tQuotaPeakNonPagedPoolUsage uintptr\n\tQuotaNonPagedPoolUsage     uintptr\n\tPagefileUsage              uintptr\n\tPeakPagefileUsage          uintptr\n\tPrivateUsage               uintptr\n}\n\nfunc getProcessMemoryInfo(handle windows.Handle) (processMemoryCounters, error) {\n\tmem := processMemoryCounters{}\n\tr1, _, err := procGetProcessMemoryInfo.Call(\n\t\tuintptr(handle),\n\t\tuintptr(unsafe.Pointer(&mem)),\n\t\tuintptr(unsafe.Sizeof(mem)),\n\t)\n\tif r1 != 1 {\n\t\treturn mem, err\n\t} else {\n\t\treturn mem, nil\n\t}\n}\n\nfunc getProcessHandleCount(handle windows.Handle) (uint32, error) {\n\tvar count uint32\n\tr1, _, err := procGetProcessHandleCount.Call(\n\t\tuintptr(handle),\n\t\tuintptr(unsafe.Pointer(&count)),\n\t)\n\tif r1 != 1 {\n\t\treturn 0, err\n\t} else {\n\t\treturn count, nil\n\t}\n}\n\nfunc (c *processCollector) processCollect(ch chan<- Metric) {\n\th, err := windows.GetCurrentProcess()\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\n\tvar startTime, exitTime, kernelTime, userTime windows.Filetime\n\terr = windows.GetProcessTimes(h, &startTime, &exitTime, &kernelTime, &userTime)\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\tch <- MustNewConstMetric(c.startTime, GaugeValue, float64(startTime.Nanoseconds()/1e9))\n\tch <- MustNewConstMetric(c.cpuTotal, CounterValue, fileTimeToSeconds(kernelTime)+fileTimeToSeconds(userTime))\n\n\tmem, err := getProcessMemoryInfo(h)\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\tch <- MustNewConstMetric(c.vsize, GaugeValue, float64(mem.PrivateUsage))\n\tch <- MustNewConstMetric(c.rss, GaugeValue, float64(mem.WorkingSetSize))\n\n\thandles, err := getProcessHandleCount(h)\n\tif err != nil {\n\t\tc.reportError(ch, nil, err)\n\t\treturn\n\t}\n\tch <- MustNewConstMetric(c.openFDs, GaugeValue, float64(handles))\n\tch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(16*1024*1024)) // Windows has a hard-coded max limit, not per-process.\n}\n\nfunc fileTimeToSeconds(ft windows.Filetime) float64 {\n\treturn float64(uint64(ft.HighDateTime)<<32+uint64(ft.LowDateTime)) / 1e7\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promauto/auto.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package promauto provides alternative constructors for the fundamental\n// Prometheus metric types and their …Vec and …Func variants. The difference to\n// their counterparts in the prometheus package is that the promauto\n// constructors register the Collectors with a registry before returning them.\n// There are two sets of constructors. The constructors in the first set are\n// top-level functions, while the constructors in the other set are methods of\n// the Factory type. The top-level function return Collectors registered with\n// the global registry (prometheus.DefaultRegisterer), while the methods return\n// Collectors registered with the registry the Factory was constructed with. All\n// constructors panic if the registration fails.\n//\n// The following example is a complete program to create a histogram of normally\n// distributed random numbers from the math/rand package:\n//\n//\tpackage main\n//\n//\timport (\n//\t\t\"math/rand\"\n//\t\t\"net/http\"\n//\n//\t\t\"github.com/prometheus/client_golang/prometheus\"\n//\t\t\"github.com/prometheus/client_golang/prometheus/promauto\"\n//\t\t\"github.com/prometheus/client_golang/prometheus/promhttp\"\n//\t)\n//\n//\tvar histogram = promauto.NewHistogram(prometheus.HistogramOpts{\n//\t\tName:    \"random_numbers\",\n//\t\tHelp:    \"A histogram of normally distributed random numbers.\",\n//\t\tBuckets: prometheus.LinearBuckets(-3, .1, 61),\n//\t})\n//\n//\tfunc Random() {\n//\t\tfor {\n//\t\t\thistogram.Observe(rand.NormFloat64())\n//\t\t}\n//\t}\n//\n//\tfunc main() {\n//\t\tgo Random()\n//\t\thttp.Handle(\"/metrics\", promhttp.Handler())\n//\t\thttp.ListenAndServe(\":1971\", nil)\n//\t}\n//\n// Prometheus's version of a minimal hello-world program:\n//\n//\tpackage main\n//\n//\timport (\n//\t\t\"fmt\"\n//\t\t\"net/http\"\n//\n//\t\t\"github.com/prometheus/client_golang/prometheus\"\n//\t\t\"github.com/prometheus/client_golang/prometheus/promauto\"\n//\t\t\"github.com/prometheus/client_golang/prometheus/promhttp\"\n//\t)\n//\n//\tfunc main() {\n//\t\thttp.Handle(\"/\", promhttp.InstrumentHandlerCounter(\n//\t\t\tpromauto.NewCounterVec(\n//\t\t\t\tprometheus.CounterOpts{\n//\t\t\t\t\tName: \"hello_requests_total\",\n//\t\t\t\t\tHelp: \"Total number of hello-world requests by HTTP code.\",\n//\t\t\t\t},\n//\t\t\t\t[]string{\"code\"},\n//\t\t\t),\n//\t\t\thttp.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n//\t\t\t\tfmt.Fprint(w, \"Hello, world!\")\n//\t\t\t}),\n//\t\t))\n//\t\thttp.Handle(\"/metrics\", promhttp.Handler())\n//\t\thttp.ListenAndServe(\":1971\", nil)\n//\t}\n//\n// A Factory is created with the With(prometheus.Registerer) function, which\n// enables two usage pattern. With(prometheus.Registerer) can be called once per\n// line:\n//\n//\tvar (\n//\t\treg           = prometheus.NewRegistry()\n//\t\trandomNumbers = promauto.With(reg).NewHistogram(prometheus.HistogramOpts{\n//\t\t\tName:    \"random_numbers\",\n//\t\t\tHelp:    \"A histogram of normally distributed random numbers.\",\n//\t\t\tBuckets: prometheus.LinearBuckets(-3, .1, 61),\n//\t\t})\n//\t\trequestCount = promauto.With(reg).NewCounterVec(\n//\t\t\tprometheus.CounterOpts{\n//\t\t\t\tName: \"http_requests_total\",\n//\t\t\t\tHelp: \"Total number of HTTP requests by status code and method.\",\n//\t\t\t},\n//\t\t\t[]string{\"code\", \"method\"},\n//\t\t)\n//\t)\n//\n// Or it can be used to create a Factory once to be used multiple times:\n//\n//\tvar (\n//\t\treg           = prometheus.NewRegistry()\n//\t\tfactory       = promauto.With(reg)\n//\t\trandomNumbers = factory.NewHistogram(prometheus.HistogramOpts{\n//\t\t\tName:    \"random_numbers\",\n//\t\t\tHelp:    \"A histogram of normally distributed random numbers.\",\n//\t\t\tBuckets: prometheus.LinearBuckets(-3, .1, 61),\n//\t\t})\n//\t\trequestCount = factory.NewCounterVec(\n//\t\t\tprometheus.CounterOpts{\n//\t\t\t\tName: \"http_requests_total\",\n//\t\t\t\tHelp: \"Total number of HTTP requests by status code and method.\",\n//\t\t\t},\n//\t\t\t[]string{\"code\", \"method\"},\n//\t\t)\n//\t)\n//\n// This appears very handy. So why are these constructors locked away in a\n// separate package?\n//\n// The main problem is that registration may fail, e.g. if a metric inconsistent\n// with or equal to the newly to be registered one is already registered.\n// Therefore, the Register method in the prometheus.Registerer interface returns\n// an error, and the same is the case for the top-level prometheus.Register\n// function that registers with the global registry. The prometheus package also\n// provides MustRegister versions for both. They panic if the registration\n// fails, and they clearly call this out by using the Must…  idiom. Panicking is\n// problematic in this case because it doesn't just happen on input provided by\n// the caller that is invalid on its own. Things are a bit more subtle here:\n// Metric creation and registration tend to be spread widely over the\n// codebase. It can easily happen that an incompatible metric is added to an\n// unrelated part of the code, and suddenly code that used to work perfectly\n// fine starts to panic (provided that the registration of the newly added\n// metric happens before the registration of the previously existing\n// metric). This may come as an even bigger surprise with the global registry,\n// where simply importing another package can trigger a panic (if the newly\n// imported package registers metrics in its init function). At least, in the\n// prometheus package, creation of metrics and other collectors is separate from\n// registration. You first create the metric, and then you decide explicitly if\n// you want to register it with a local or the global registry, and if you want\n// to handle the error or risk a panic. With the constructors in the promauto\n// package, registration is automatic, and if it fails, it will always\n// panic. Furthermore, the constructors will often be called in the var section\n// of a file, which means that panicking will happen as a side effect of merely\n// importing a package.\n//\n// A separate package allows conservative users to entirely ignore it. And\n// whoever wants to use it, will do so explicitly, with an opportunity to read\n// this warning.\n//\n// Enjoy promauto responsibly!\npackage promauto\n\nimport \"github.com/prometheus/client_golang/prometheus\"\n\n// NewCounter works like the function of the same name in the prometheus package\n// but it automatically registers the Counter with the\n// prometheus.DefaultRegisterer. If the registration fails, NewCounter panics.\nfunc NewCounter(opts prometheus.CounterOpts) prometheus.Counter {\n\treturn With(prometheus.DefaultRegisterer).NewCounter(opts)\n}\n\n// NewCounterVec works like the function of the same name in the prometheus\n// package but it automatically registers the CounterVec with the\n// prometheus.DefaultRegisterer. If the registration fails, NewCounterVec\n// panics.\nfunc NewCounterVec(opts prometheus.CounterOpts, labelNames []string) *prometheus.CounterVec {\n\treturn With(prometheus.DefaultRegisterer).NewCounterVec(opts, labelNames)\n}\n\n// NewCounterFunc works like the function of the same name in the prometheus\n// package but it automatically registers the CounterFunc with the\n// prometheus.DefaultRegisterer. If the registration fails, NewCounterFunc\n// panics.\nfunc NewCounterFunc(opts prometheus.CounterOpts, function func() float64) prometheus.CounterFunc {\n\treturn With(prometheus.DefaultRegisterer).NewCounterFunc(opts, function)\n}\n\n// NewGauge works like the function of the same name in the prometheus package\n// but it automatically registers the Gauge with the\n// prometheus.DefaultRegisterer. If the registration fails, NewGauge panics.\nfunc NewGauge(opts prometheus.GaugeOpts) prometheus.Gauge {\n\treturn With(prometheus.DefaultRegisterer).NewGauge(opts)\n}\n\n// NewGaugeVec works like the function of the same name in the prometheus\n// package but it automatically registers the GaugeVec with the\n// prometheus.DefaultRegisterer. If the registration fails, NewGaugeVec panics.\nfunc NewGaugeVec(opts prometheus.GaugeOpts, labelNames []string) *prometheus.GaugeVec {\n\treturn With(prometheus.DefaultRegisterer).NewGaugeVec(opts, labelNames)\n}\n\n// NewGaugeFunc works like the function of the same name in the prometheus\n// package but it automatically registers the GaugeFunc with the\n// prometheus.DefaultRegisterer. If the registration fails, NewGaugeFunc panics.\nfunc NewGaugeFunc(opts prometheus.GaugeOpts, function func() float64) prometheus.GaugeFunc {\n\treturn With(prometheus.DefaultRegisterer).NewGaugeFunc(opts, function)\n}\n\n// NewSummary works like the function of the same name in the prometheus package\n// but it automatically registers the Summary with the\n// prometheus.DefaultRegisterer. If the registration fails, NewSummary panics.\nfunc NewSummary(opts prometheus.SummaryOpts) prometheus.Summary {\n\treturn With(prometheus.DefaultRegisterer).NewSummary(opts)\n}\n\n// NewSummaryVec works like the function of the same name in the prometheus\n// package but it automatically registers the SummaryVec with the\n// prometheus.DefaultRegisterer. If the registration fails, NewSummaryVec\n// panics.\nfunc NewSummaryVec(opts prometheus.SummaryOpts, labelNames []string) *prometheus.SummaryVec {\n\treturn With(prometheus.DefaultRegisterer).NewSummaryVec(opts, labelNames)\n}\n\n// NewHistogram works like the function of the same name in the prometheus\n// package but it automatically registers the Histogram with the\n// prometheus.DefaultRegisterer. If the registration fails, NewHistogram panics.\nfunc NewHistogram(opts prometheus.HistogramOpts) prometheus.Histogram {\n\treturn With(prometheus.DefaultRegisterer).NewHistogram(opts)\n}\n\n// NewHistogramVec works like the function of the same name in the prometheus\n// package but it automatically registers the HistogramVec with the\n// prometheus.DefaultRegisterer. If the registration fails, NewHistogramVec\n// panics.\nfunc NewHistogramVec(opts prometheus.HistogramOpts, labelNames []string) *prometheus.HistogramVec {\n\treturn With(prometheus.DefaultRegisterer).NewHistogramVec(opts, labelNames)\n}\n\n// NewUntypedFunc works like the function of the same name in the prometheus\n// package but it automatically registers the UntypedFunc with the\n// prometheus.DefaultRegisterer. If the registration fails, NewUntypedFunc\n// panics.\nfunc NewUntypedFunc(opts prometheus.UntypedOpts, function func() float64) prometheus.UntypedFunc {\n\treturn With(prometheus.DefaultRegisterer).NewUntypedFunc(opts, function)\n}\n\n// Factory provides factory methods to create Collectors that are automatically\n// registered with a Registerer. Create a Factory with the With function,\n// providing a Registerer to auto-register created Collectors with. The zero\n// value of a Factory creates Collectors that are not registered with any\n// Registerer. All methods of the Factory panic if the registration fails.\ntype Factory struct {\n\tr prometheus.Registerer\n}\n\n// With creates a Factory using the provided Registerer for registration of the\n// created Collectors. If the provided Registerer is nil, the returned Factory\n// creates Collectors that are not registered with any Registerer.\nfunc With(r prometheus.Registerer) Factory { return Factory{r} }\n\n// NewCounter works like the function of the same name in the prometheus package\n// but it automatically registers the Counter with the Factory's Registerer.\nfunc (f Factory) NewCounter(opts prometheus.CounterOpts) prometheus.Counter {\n\tc := prometheus.NewCounter(opts)\n\tif f.r != nil {\n\t\tf.r.MustRegister(c)\n\t}\n\treturn c\n}\n\n// NewCounterVec works like the function of the same name in the prometheus\n// package but it automatically registers the CounterVec with the Factory's\n// Registerer.\nfunc (f Factory) NewCounterVec(opts prometheus.CounterOpts, labelNames []string) *prometheus.CounterVec {\n\tc := prometheus.NewCounterVec(opts, labelNames)\n\tif f.r != nil {\n\t\tf.r.MustRegister(c)\n\t}\n\treturn c\n}\n\n// NewCounterFunc works like the function of the same name in the prometheus\n// package but it automatically registers the CounterFunc with the Factory's\n// Registerer.\nfunc (f Factory) NewCounterFunc(opts prometheus.CounterOpts, function func() float64) prometheus.CounterFunc {\n\tc := prometheus.NewCounterFunc(opts, function)\n\tif f.r != nil {\n\t\tf.r.MustRegister(c)\n\t}\n\treturn c\n}\n\n// NewGauge works like the function of the same name in the prometheus package\n// but it automatically registers the Gauge with the Factory's Registerer.\nfunc (f Factory) NewGauge(opts prometheus.GaugeOpts) prometheus.Gauge {\n\tg := prometheus.NewGauge(opts)\n\tif f.r != nil {\n\t\tf.r.MustRegister(g)\n\t}\n\treturn g\n}\n\n// NewGaugeVec works like the function of the same name in the prometheus\n// package but it automatically registers the GaugeVec with the Factory's\n// Registerer.\nfunc (f Factory) NewGaugeVec(opts prometheus.GaugeOpts, labelNames []string) *prometheus.GaugeVec {\n\tg := prometheus.NewGaugeVec(opts, labelNames)\n\tif f.r != nil {\n\t\tf.r.MustRegister(g)\n\t}\n\treturn g\n}\n\n// NewGaugeFunc works like the function of the same name in the prometheus\n// package but it automatically registers the GaugeFunc with the Factory's\n// Registerer.\nfunc (f Factory) NewGaugeFunc(opts prometheus.GaugeOpts, function func() float64) prometheus.GaugeFunc {\n\tg := prometheus.NewGaugeFunc(opts, function)\n\tif f.r != nil {\n\t\tf.r.MustRegister(g)\n\t}\n\treturn g\n}\n\n// NewSummary works like the function of the same name in the prometheus package\n// but it automatically registers the Summary with the Factory's Registerer.\nfunc (f Factory) NewSummary(opts prometheus.SummaryOpts) prometheus.Summary {\n\ts := prometheus.NewSummary(opts)\n\tif f.r != nil {\n\t\tf.r.MustRegister(s)\n\t}\n\treturn s\n}\n\n// NewSummaryVec works like the function of the same name in the prometheus\n// package but it automatically registers the SummaryVec with the Factory's\n// Registerer.\nfunc (f Factory) NewSummaryVec(opts prometheus.SummaryOpts, labelNames []string) *prometheus.SummaryVec {\n\ts := prometheus.NewSummaryVec(opts, labelNames)\n\tif f.r != nil {\n\t\tf.r.MustRegister(s)\n\t}\n\treturn s\n}\n\n// NewHistogram works like the function of the same name in the prometheus\n// package but it automatically registers the Histogram with the Factory's\n// Registerer.\nfunc (f Factory) NewHistogram(opts prometheus.HistogramOpts) prometheus.Histogram {\n\th := prometheus.NewHistogram(opts)\n\tif f.r != nil {\n\t\tf.r.MustRegister(h)\n\t}\n\treturn h\n}\n\n// NewHistogramVec works like the function of the same name in the prometheus\n// package but it automatically registers the HistogramVec with the Factory's\n// Registerer.\nfunc (f Factory) NewHistogramVec(opts prometheus.HistogramOpts, labelNames []string) *prometheus.HistogramVec {\n\th := prometheus.NewHistogramVec(opts, labelNames)\n\tif f.r != nil {\n\t\tf.r.MustRegister(h)\n\t}\n\treturn h\n}\n\n// NewUntypedFunc works like the function of the same name in the prometheus\n// package but it automatically registers the UntypedFunc with the Factory's\n// Registerer.\nfunc (f Factory) NewUntypedFunc(opts prometheus.UntypedOpts, function func() float64) prometheus.UntypedFunc {\n\tu := prometheus.NewUntypedFunc(opts, function)\n\tif f.r != nil {\n\t\tf.r.MustRegister(u)\n\t}\n\treturn u\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go",
    "content": "// Copyright 2017 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage promhttp\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n)\n\nconst (\n\tcloseNotifier = 1 << iota\n\tflusher\n\thijacker\n\treaderFrom\n\tpusher\n)\n\ntype delegator interface {\n\thttp.ResponseWriter\n\n\tStatus() int\n\tWritten() int64\n}\n\ntype responseWriterDelegator struct {\n\thttp.ResponseWriter\n\n\tstatus             int\n\twritten            int64\n\twroteHeader        bool\n\tobserveWriteHeader func(int)\n}\n\nfunc (r *responseWriterDelegator) Status() int {\n\treturn r.status\n}\n\nfunc (r *responseWriterDelegator) Written() int64 {\n\treturn r.written\n}\n\nfunc (r *responseWriterDelegator) WriteHeader(code int) {\n\tif r.observeWriteHeader != nil && !r.wroteHeader {\n\t\t// Only call observeWriteHeader for the 1st time. It's a bug if\n\t\t// WriteHeader is called more than once, but we want to protect\n\t\t// against it here. Note that we still delegate the WriteHeader\n\t\t// to the original ResponseWriter to not mask the bug from it.\n\t\tr.observeWriteHeader(code)\n\t}\n\tr.status = code\n\tr.wroteHeader = true\n\tr.ResponseWriter.WriteHeader(code)\n}\n\nfunc (r *responseWriterDelegator) Write(b []byte) (int, error) {\n\t// If applicable, call WriteHeader here so that observeWriteHeader is\n\t// handled appropriately.\n\tif !r.wroteHeader {\n\t\tr.WriteHeader(http.StatusOK)\n\t}\n\tn, err := r.ResponseWriter.Write(b)\n\tr.written += int64(n)\n\treturn n, err\n}\n\ntype (\n\tcloseNotifierDelegator struct{ *responseWriterDelegator }\n\tflusherDelegator       struct{ *responseWriterDelegator }\n\thijackerDelegator      struct{ *responseWriterDelegator }\n\treaderFromDelegator    struct{ *responseWriterDelegator }\n\tpusherDelegator        struct{ *responseWriterDelegator }\n)\n\nfunc (d closeNotifierDelegator) CloseNotify() <-chan bool {\n\t//nolint:staticcheck // Ignore SA1019. http.CloseNotifier is deprecated but we keep it here to not break existing users.\n\treturn d.ResponseWriter.(http.CloseNotifier).CloseNotify()\n}\n\nfunc (d flusherDelegator) Flush() {\n\t// If applicable, call WriteHeader here so that observeWriteHeader is\n\t// handled appropriately.\n\tif !d.wroteHeader {\n\t\td.WriteHeader(http.StatusOK)\n\t}\n\td.ResponseWriter.(http.Flusher).Flush()\n}\n\nfunc (d hijackerDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\treturn d.ResponseWriter.(http.Hijacker).Hijack()\n}\n\nfunc (d readerFromDelegator) ReadFrom(re io.Reader) (int64, error) {\n\t// If applicable, call WriteHeader here so that observeWriteHeader is\n\t// handled appropriately.\n\tif !d.wroteHeader {\n\t\td.WriteHeader(http.StatusOK)\n\t}\n\tn, err := d.ResponseWriter.(io.ReaderFrom).ReadFrom(re)\n\td.written += n\n\treturn n, err\n}\n\nfunc (d pusherDelegator) Push(target string, opts *http.PushOptions) error {\n\treturn d.ResponseWriter.(http.Pusher).Push(target, opts)\n}\n\nvar pickDelegator = make([]func(*responseWriterDelegator) delegator, 32)\n\nfunc init() {\n\t// TODO(beorn7): Code generation would help here.\n\tpickDelegator[0] = func(d *responseWriterDelegator) delegator { // 0\n\t\treturn d\n\t}\n\tpickDelegator[closeNotifier] = func(d *responseWriterDelegator) delegator { // 1\n\t\treturn closeNotifierDelegator{d}\n\t}\n\tpickDelegator[flusher] = func(d *responseWriterDelegator) delegator { // 2\n\t\treturn flusherDelegator{d}\n\t}\n\tpickDelegator[flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 3\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[hijacker] = func(d *responseWriterDelegator) delegator { // 4\n\t\treturn hijackerDelegator{d}\n\t}\n\tpickDelegator[hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 5\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Hijacker\n\t\t\thttp.CloseNotifier\n\t\t}{d, hijackerDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 6\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t}{d, hijackerDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 7\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[readerFrom] = func(d *responseWriterDelegator) delegator { // 8\n\t\treturn readerFromDelegator{d}\n\t}\n\tpickDelegator[readerFrom+closeNotifier] = func(d *responseWriterDelegator) delegator { // 9\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.CloseNotifier\n\t\t}{d, readerFromDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+flusher] = func(d *responseWriterDelegator) delegator { // 10\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Flusher\n\t\t}{d, readerFromDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 11\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, readerFromDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+hijacker] = func(d *responseWriterDelegator) delegator { // 12\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t}{d, readerFromDelegator{d}, hijackerDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 13\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.CloseNotifier\n\t\t}{d, readerFromDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 14\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t}{d, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[readerFrom+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 15\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher] = func(d *responseWriterDelegator) delegator { // 16\n\t\treturn pusherDelegator{d}\n\t}\n\tpickDelegator[pusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 17\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+flusher] = func(d *responseWriterDelegator) delegator { // 18\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Flusher\n\t\t}{d, pusherDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[pusher+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 19\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+hijacker] = func(d *responseWriterDelegator) delegator { // 20\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Hijacker\n\t\t}{d, pusherDelegator{d}, hijackerDelegator{d}}\n\t}\n\tpickDelegator[pusher+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 21\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Hijacker\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 22\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t}{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[pusher+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 23\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom] = func(d *responseWriterDelegator) delegator { // 24\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+closeNotifier] = func(d *responseWriterDelegator) delegator { // 25\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+flusher] = func(d *responseWriterDelegator) delegator { // 26\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Flusher\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 27\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+hijacker] = func(d *responseWriterDelegator) delegator { // 28\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 29\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 30\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}}\n\t}\n\tpickDelegator[pusher+readerFrom+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 31\n\t\treturn struct {\n\t\t\t*responseWriterDelegator\n\t\t\thttp.Pusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Hijacker\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}}\n\t}\n}\n\nfunc newDelegator(w http.ResponseWriter, observeWriteHeaderFunc func(int)) delegator {\n\td := &responseWriterDelegator{\n\t\tResponseWriter:     w,\n\t\tobserveWriteHeader: observeWriteHeaderFunc,\n\t}\n\n\tid := 0\n\t//nolint:staticcheck // Ignore SA1019. http.CloseNotifier is deprecated but we keep it here to not break existing users.\n\tif _, ok := w.(http.CloseNotifier); ok {\n\t\tid += closeNotifier\n\t}\n\tif _, ok := w.(http.Flusher); ok {\n\t\tid += flusher\n\t}\n\tif _, ok := w.(http.Hijacker); ok {\n\t\tid += hijacker\n\t}\n\tif _, ok := w.(io.ReaderFrom); ok {\n\t\tid += readerFrom\n\t}\n\tif _, ok := w.(http.Pusher); ok {\n\t\tid += pusher\n\t}\n\n\treturn pickDelegator[id](d)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go",
    "content": "// Copyright 2016 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package promhttp provides tooling around HTTP servers and clients.\n//\n// First, the package allows the creation of http.Handler instances to expose\n// Prometheus metrics via HTTP. promhttp.Handler acts on the\n// prometheus.DefaultGatherer. With HandlerFor, you can create a handler for a\n// custom registry or anything that implements the Gatherer interface. It also\n// allows the creation of handlers that act differently on errors or allow to\n// log errors.\n//\n// Second, the package provides tooling to instrument instances of http.Handler\n// via middleware. Middleware wrappers follow the naming scheme\n// InstrumentHandlerX, where X describes the intended use of the middleware.\n// See each function's doc comment for specific details.\n//\n// Finally, the package allows for an http.RoundTripper to be instrumented via\n// middleware. Middleware wrappers follow the naming scheme\n// InstrumentRoundTripperX, where X describes the intended use of the\n// middleware. See each function's doc comment for specific details.\npackage promhttp\n\nimport (\n\t\"compress/gzip\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/prometheus/common/expfmt\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n)\n\nconst (\n\tcontentTypeHeader      = \"Content-Type\"\n\tcontentEncodingHeader  = \"Content-Encoding\"\n\tacceptEncodingHeader   = \"Accept-Encoding\"\n\tprocessStartTimeHeader = \"Process-Start-Time-Unix\"\n)\n\nvar gzipPool = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn gzip.NewWriter(nil)\n\t},\n}\n\n// Handler returns an http.Handler for the prometheus.DefaultGatherer, using\n// default HandlerOpts, i.e. it reports the first error as an HTTP error, it has\n// no error logging, and it applies compression if requested by the client.\n//\n// The returned http.Handler is already instrumented using the\n// InstrumentMetricHandler function and the prometheus.DefaultRegisterer. If you\n// create multiple http.Handlers by separate calls of the Handler function, the\n// metrics used for instrumentation will be shared between them, providing\n// global scrape counts.\n//\n// This function is meant to cover the bulk of basic use cases. If you are doing\n// anything that requires more customization (including using a non-default\n// Gatherer, different instrumentation, and non-default HandlerOpts), use the\n// HandlerFor function. See there for details.\nfunc Handler() http.Handler {\n\treturn InstrumentMetricHandler(\n\t\tprometheus.DefaultRegisterer, HandlerFor(prometheus.DefaultGatherer, HandlerOpts{}),\n\t)\n}\n\n// HandlerFor returns an uninstrumented http.Handler for the provided\n// Gatherer. The behavior of the Handler is defined by the provided\n// HandlerOpts. Thus, HandlerFor is useful to create http.Handlers for custom\n// Gatherers, with non-default HandlerOpts, and/or with custom (or no)\n// instrumentation. Use the InstrumentMetricHandler function to apply the same\n// kind of instrumentation as it is used by the Handler function.\nfunc HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {\n\treturn HandlerForTransactional(prometheus.ToTransactionalGatherer(reg), opts)\n}\n\n// HandlerForTransactional is like HandlerFor, but it uses transactional gather, which\n// can safely change in-place returned *dto.MetricFamily before call to `Gather` and after\n// call to `done` of that `Gather`.\nfunc HandlerForTransactional(reg prometheus.TransactionalGatherer, opts HandlerOpts) http.Handler {\n\tvar (\n\t\tinFlightSem chan struct{}\n\t\terrCnt      = prometheus.NewCounterVec(\n\t\t\tprometheus.CounterOpts{\n\t\t\t\tName: \"promhttp_metric_handler_errors_total\",\n\t\t\t\tHelp: \"Total number of internal errors encountered by the promhttp metric handler.\",\n\t\t\t},\n\t\t\t[]string{\"cause\"},\n\t\t)\n\t)\n\n\tif opts.MaxRequestsInFlight > 0 {\n\t\tinFlightSem = make(chan struct{}, opts.MaxRequestsInFlight)\n\t}\n\tif opts.Registry != nil {\n\t\t// Initialize all possibilities that can occur below.\n\t\terrCnt.WithLabelValues(\"gathering\")\n\t\terrCnt.WithLabelValues(\"encoding\")\n\t\tif err := opts.Registry.Register(errCnt); err != nil {\n\t\t\tare := &prometheus.AlreadyRegisteredError{}\n\t\t\tif errors.As(err, are) {\n\t\t\t\terrCnt = are.ExistingCollector.(*prometheus.CounterVec)\n\t\t\t} else {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\t}\n\n\th := http.HandlerFunc(func(rsp http.ResponseWriter, req *http.Request) {\n\t\tif !opts.ProcessStartTime.IsZero() {\n\t\t\trsp.Header().Set(processStartTimeHeader, strconv.FormatInt(opts.ProcessStartTime.Unix(), 10))\n\t\t}\n\t\tif inFlightSem != nil {\n\t\t\tselect {\n\t\t\tcase inFlightSem <- struct{}{}: // All good, carry on.\n\t\t\t\tdefer func() { <-inFlightSem }()\n\t\t\tdefault:\n\t\t\t\thttp.Error(rsp, fmt.Sprintf(\n\t\t\t\t\t\"Limit of concurrent requests reached (%d), try again later.\", opts.MaxRequestsInFlight,\n\t\t\t\t), http.StatusServiceUnavailable)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tmfs, done, err := reg.Gather()\n\t\tdefer done()\n\t\tif err != nil {\n\t\t\tif opts.ErrorLog != nil {\n\t\t\t\topts.ErrorLog.Println(\"error gathering metrics:\", err)\n\t\t\t}\n\t\t\terrCnt.WithLabelValues(\"gathering\").Inc()\n\t\t\tswitch opts.ErrorHandling {\n\t\t\tcase PanicOnError:\n\t\t\t\tpanic(err)\n\t\t\tcase ContinueOnError:\n\t\t\t\tif len(mfs) == 0 {\n\t\t\t\t\t// Still report the error if no metrics have been gathered.\n\t\t\t\t\thttpError(rsp, err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\tcase HTTPErrorOnError:\n\t\t\t\thttpError(rsp, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tvar contentType expfmt.Format\n\t\tif opts.EnableOpenMetrics {\n\t\t\tcontentType = expfmt.NegotiateIncludingOpenMetrics(req.Header)\n\t\t} else {\n\t\t\tcontentType = expfmt.Negotiate(req.Header)\n\t\t}\n\t\theader := rsp.Header()\n\t\theader.Set(contentTypeHeader, string(contentType))\n\n\t\tw := io.Writer(rsp)\n\t\tif !opts.DisableCompression && gzipAccepted(req.Header) {\n\t\t\theader.Set(contentEncodingHeader, \"gzip\")\n\t\t\tgz := gzipPool.Get().(*gzip.Writer)\n\t\t\tdefer gzipPool.Put(gz)\n\n\t\t\tgz.Reset(w)\n\t\t\tdefer gz.Close()\n\n\t\t\tw = gz\n\t\t}\n\n\t\tenc := expfmt.NewEncoder(w, contentType)\n\n\t\t// handleError handles the error according to opts.ErrorHandling\n\t\t// and returns true if we have to abort after the handling.\n\t\thandleError := func(err error) bool {\n\t\t\tif err == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif opts.ErrorLog != nil {\n\t\t\t\topts.ErrorLog.Println(\"error encoding and sending metric family:\", err)\n\t\t\t}\n\t\t\terrCnt.WithLabelValues(\"encoding\").Inc()\n\t\t\tswitch opts.ErrorHandling {\n\t\t\tcase PanicOnError:\n\t\t\t\tpanic(err)\n\t\t\tcase HTTPErrorOnError:\n\t\t\t\t// We cannot really send an HTTP error at this\n\t\t\t\t// point because we most likely have written\n\t\t\t\t// something to rsp already. But at least we can\n\t\t\t\t// stop sending.\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Do nothing in all other cases, including ContinueOnError.\n\t\t\treturn false\n\t\t}\n\n\t\tfor _, mf := range mfs {\n\t\t\tif handleError(enc.Encode(mf)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif closer, ok := enc.(expfmt.Closer); ok {\n\t\t\t// This in particular takes care of the final \"# EOF\\n\" line for OpenMetrics.\n\t\t\tif handleError(closer.Close()) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t})\n\n\tif opts.Timeout <= 0 {\n\t\treturn h\n\t}\n\treturn http.TimeoutHandler(h, opts.Timeout, fmt.Sprintf(\n\t\t\"Exceeded configured timeout of %v.\\n\",\n\t\topts.Timeout,\n\t))\n}\n\n// InstrumentMetricHandler is usually used with an http.Handler returned by the\n// HandlerFor function. It instruments the provided http.Handler with two\n// metrics: A counter vector \"promhttp_metric_handler_requests_total\" to count\n// scrapes partitioned by HTTP status code, and a gauge\n// \"promhttp_metric_handler_requests_in_flight\" to track the number of\n// simultaneous scrapes. This function idempotently registers collectors for\n// both metrics with the provided Registerer. It panics if the registration\n// fails. The provided metrics are useful to see how many scrapes hit the\n// monitored target (which could be from different Prometheus servers or other\n// scrapers), and how often they overlap (which would result in more than one\n// scrape in flight at the same time). Note that the scrapes-in-flight gauge\n// will contain the scrape by which it is exposed, while the scrape counter will\n// only get incremented after the scrape is complete (as only then the status\n// code is known). For tracking scrape durations, use the\n// \"scrape_duration_seconds\" gauge created by the Prometheus server upon each\n// scrape.\nfunc InstrumentMetricHandler(reg prometheus.Registerer, handler http.Handler) http.Handler {\n\tcnt := prometheus.NewCounterVec(\n\t\tprometheus.CounterOpts{\n\t\t\tName: \"promhttp_metric_handler_requests_total\",\n\t\t\tHelp: \"Total number of scrapes by HTTP status code.\",\n\t\t},\n\t\t[]string{\"code\"},\n\t)\n\t// Initialize the most likely HTTP status codes.\n\tcnt.WithLabelValues(\"200\")\n\tcnt.WithLabelValues(\"500\")\n\tcnt.WithLabelValues(\"503\")\n\tif err := reg.Register(cnt); err != nil {\n\t\tare := &prometheus.AlreadyRegisteredError{}\n\t\tif errors.As(err, are) {\n\t\t\tcnt = are.ExistingCollector.(*prometheus.CounterVec)\n\t\t} else {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tgge := prometheus.NewGauge(prometheus.GaugeOpts{\n\t\tName: \"promhttp_metric_handler_requests_in_flight\",\n\t\tHelp: \"Current number of scrapes being served.\",\n\t})\n\tif err := reg.Register(gge); err != nil {\n\t\tare := &prometheus.AlreadyRegisteredError{}\n\t\tif errors.As(err, are) {\n\t\t\tgge = are.ExistingCollector.(prometheus.Gauge)\n\t\t} else {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\treturn InstrumentHandlerCounter(cnt, InstrumentHandlerInFlight(gge, handler))\n}\n\n// HandlerErrorHandling defines how a Handler serving metrics will handle\n// errors.\ntype HandlerErrorHandling int\n\n// These constants cause handlers serving metrics to behave as described if\n// errors are encountered.\nconst (\n\t// Serve an HTTP status code 500 upon the first error\n\t// encountered. Report the error message in the body. Note that HTTP\n\t// errors cannot be served anymore once the beginning of a regular\n\t// payload has been sent. Thus, in the (unlikely) case that encoding the\n\t// payload into the negotiated wire format fails, serving the response\n\t// will simply be aborted. Set an ErrorLog in HandlerOpts to detect\n\t// those errors.\n\tHTTPErrorOnError HandlerErrorHandling = iota\n\t// Ignore errors and try to serve as many metrics as possible.  However,\n\t// if no metrics can be served, serve an HTTP status code 500 and the\n\t// last error message in the body. Only use this in deliberate \"best\n\t// effort\" metrics collection scenarios. In this case, it is highly\n\t// recommended to provide other means of detecting errors: By setting an\n\t// ErrorLog in HandlerOpts, the errors are logged. By providing a\n\t// Registry in HandlerOpts, the exposed metrics include an error counter\n\t// \"promhttp_metric_handler_errors_total\", which can be used for\n\t// alerts.\n\tContinueOnError\n\t// Panic upon the first error encountered (useful for \"crash only\" apps).\n\tPanicOnError\n)\n\n// Logger is the minimal interface HandlerOpts needs for logging. Note that\n// log.Logger from the standard library implements this interface, and it is\n// easy to implement by custom loggers, if they don't do so already anyway.\ntype Logger interface {\n\tPrintln(v ...interface{})\n}\n\n// HandlerOpts specifies options how to serve metrics via an http.Handler. The\n// zero value of HandlerOpts is a reasonable default.\ntype HandlerOpts struct {\n\t// ErrorLog specifies an optional Logger for errors collecting and\n\t// serving metrics. If nil, errors are not logged at all. Note that the\n\t// type of a reported error is often prometheus.MultiError, which\n\t// formats into a multi-line error string. If you want to avoid the\n\t// latter, create a Logger implementation that detects a\n\t// prometheus.MultiError and formats the contained errors into one line.\n\tErrorLog Logger\n\t// ErrorHandling defines how errors are handled. Note that errors are\n\t// logged regardless of the configured ErrorHandling provided ErrorLog\n\t// is not nil.\n\tErrorHandling HandlerErrorHandling\n\t// If Registry is not nil, it is used to register a metric\n\t// \"promhttp_metric_handler_errors_total\", partitioned by \"cause\". A\n\t// failed registration causes a panic. Note that this error counter is\n\t// different from the instrumentation you get from the various\n\t// InstrumentHandler... helpers. It counts errors that don't necessarily\n\t// result in a non-2xx HTTP status code. There are two typical cases:\n\t// (1) Encoding errors that only happen after streaming of the HTTP body\n\t// has already started (and the status code 200 has been sent). This\n\t// should only happen with custom collectors. (2) Collection errors with\n\t// no effect on the HTTP status code because ErrorHandling is set to\n\t// ContinueOnError.\n\tRegistry prometheus.Registerer\n\t// If DisableCompression is true, the handler will never compress the\n\t// response, even if requested by the client.\n\tDisableCompression bool\n\t// The number of concurrent HTTP requests is limited to\n\t// MaxRequestsInFlight. Additional requests are responded to with 503\n\t// Service Unavailable and a suitable message in the body. If\n\t// MaxRequestsInFlight is 0 or negative, no limit is applied.\n\tMaxRequestsInFlight int\n\t// If handling a request takes longer than Timeout, it is responded to\n\t// with 503 ServiceUnavailable and a suitable Message. No timeout is\n\t// applied if Timeout is 0 or negative. Note that with the current\n\t// implementation, reaching the timeout simply ends the HTTP requests as\n\t// described above (and even that only if sending of the body hasn't\n\t// started yet), while the bulk work of gathering all the metrics keeps\n\t// running in the background (with the eventual result to be thrown\n\t// away). Until the implementation is improved, it is recommended to\n\t// implement a separate timeout in potentially slow Collectors.\n\tTimeout time.Duration\n\t// If true, the experimental OpenMetrics encoding is added to the\n\t// possible options during content negotiation. Note that Prometheus\n\t// 2.5.0+ will negotiate OpenMetrics as first priority. OpenMetrics is\n\t// the only way to transmit exemplars. However, the move to OpenMetrics\n\t// is not completely transparent. Most notably, the values of \"quantile\"\n\t// labels of Summaries and \"le\" labels of Histograms are formatted with\n\t// a trailing \".0\" if they would otherwise look like integer numbers\n\t// (which changes the identity of the resulting series on the Prometheus\n\t// server).\n\tEnableOpenMetrics bool\n\t// ProcessStartTime allows setting process start timevalue that will be exposed\n\t// with \"Process-Start-Time-Unix\" response header along with the metrics\n\t// payload. This allow callers to have efficient transformations to cumulative\n\t// counters (e.g. OpenTelemetry) or generally _created timestamp estimation per\n\t// scrape target.\n\t// NOTE: This feature is experimental and not covered by OpenMetrics or Prometheus\n\t// exposition format.\n\tProcessStartTime time.Time\n}\n\n// gzipAccepted returns whether the client will accept gzip-encoded content.\nfunc gzipAccepted(header http.Header) bool {\n\ta := header.Get(acceptEncodingHeader)\n\tparts := strings.Split(a, \",\")\n\tfor _, part := range parts {\n\t\tpart = strings.TrimSpace(part)\n\t\tif part == \"gzip\" || strings.HasPrefix(part, \"gzip;\") {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// httpError removes any content-encoding header and then calls http.Error with\n// the provided error and http.StatusInternalServerError. Error contents is\n// supposed to be uncompressed plain text. Same as with a plain http.Error, this\n// must not be called if the header or any payload has already been sent.\nfunc httpError(rsp http.ResponseWriter, err error) {\n\trsp.Header().Del(contentEncodingHeader)\n\thttp.Error(\n\t\trsp,\n\t\t\"An error has occurred while serving metrics:\\n\\n\"+err.Error(),\n\t\thttp.StatusInternalServerError,\n\t)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go",
    "content": "// Copyright 2017 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage promhttp\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"time\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n)\n\n// The RoundTripperFunc type is an adapter to allow the use of ordinary\n// functions as RoundTrippers. If f is a function with the appropriate\n// signature, RountTripperFunc(f) is a RoundTripper that calls f.\ntype RoundTripperFunc func(req *http.Request) (*http.Response, error)\n\n// RoundTrip implements the RoundTripper interface.\nfunc (rt RoundTripperFunc) RoundTrip(r *http.Request) (*http.Response, error) {\n\treturn rt(r)\n}\n\n// InstrumentRoundTripperInFlight is a middleware that wraps the provided\n// http.RoundTripper. It sets the provided prometheus.Gauge to the number of\n// requests currently handled by the wrapped http.RoundTripper.\n//\n// See the example for ExampleInstrumentRoundTripperDuration for example usage.\nfunc InstrumentRoundTripperInFlight(gauge prometheus.Gauge, next http.RoundTripper) RoundTripperFunc {\n\treturn func(r *http.Request) (*http.Response, error) {\n\t\tgauge.Inc()\n\t\tdefer gauge.Dec()\n\t\treturn next.RoundTrip(r)\n\t}\n}\n\n// InstrumentRoundTripperCounter is a middleware that wraps the provided\n// http.RoundTripper to observe the request result with the provided CounterVec.\n// The CounterVec must have zero, one, or two non-const non-curried labels. For\n// those, the only allowed label names are \"code\" and \"method\". The function\n// panics otherwise. For the \"method\" label a predefined default label value set\n// is used to filter given values. Values besides predefined values will count\n// as `unknown` method.`WithExtraMethods` can be used to add more\n// methods to the set. Partitioning of the CounterVec happens by HTTP status code\n// and/or HTTP method if the respective instance label names are present in the\n// CounterVec. For unpartitioned counting, use a CounterVec with zero labels.\n//\n// If the wrapped RoundTripper panics or returns a non-nil error, the Counter\n// is not incremented.\n//\n// Use with WithExemplarFromContext to instrument the exemplars on the counter of requests.\n//\n// See the example for ExampleInstrumentRoundTripperDuration for example usage.\nfunc InstrumentRoundTripperCounter(counter *prometheus.CounterVec, next http.RoundTripper, opts ...Option) RoundTripperFunc {\n\trtOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(rtOpts)\n\t}\n\n\t// Curry the counter with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(counter.MustCurryWith(rtOpts.emptyDynamicLabels()))\n\n\treturn func(r *http.Request) (*http.Response, error) {\n\t\tresp, err := next.RoundTrip(r)\n\t\tif err == nil {\n\t\t\tl := labels(code, method, r.Method, resp.StatusCode, rtOpts.extraMethods...)\n\t\t\tfor label, resolve := range rtOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(resp.Request.Context())\n\t\t\t}\n\t\t\taddWithExemplar(counter.With(l), 1, rtOpts.getExemplarFn(r.Context()))\n\t\t}\n\t\treturn resp, err\n\t}\n}\n\n// InstrumentRoundTripperDuration is a middleware that wraps the provided\n// http.RoundTripper to observe the request duration with the provided\n// ObserverVec.  The ObserverVec must have zero, one, or two non-const\n// non-curried labels. For those, the only allowed label names are \"code\" and\n// \"method\". The function panics otherwise. For the \"method\" label a predefined\n// default label value set is used to filter given values. Values besides\n// predefined values will count as `unknown` method. `WithExtraMethods`\n// can be used to add more methods to the set. The Observe method of the Observer\n// in the ObserverVec is called with the request duration in\n// seconds. Partitioning happens by HTTP status code and/or HTTP method if the\n// respective instance label names are present in the ObserverVec. For\n// unpartitioned observations, use an ObserverVec with zero labels. Note that\n// partitioning of Histograms is expensive and should be used judiciously.\n//\n// If the wrapped RoundTripper panics or returns a non-nil error, no values are\n// reported.\n//\n// Use with WithExemplarFromContext to instrument the exemplars on the duration histograms.\n//\n// Note that this method is only guaranteed to never observe negative durations\n// if used with Go1.9+.\nfunc InstrumentRoundTripperDuration(obs prometheus.ObserverVec, next http.RoundTripper, opts ...Option) RoundTripperFunc {\n\trtOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(rtOpts)\n\t}\n\n\t// Curry the observer with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(obs.MustCurryWith(rtOpts.emptyDynamicLabels()))\n\n\treturn func(r *http.Request) (*http.Response, error) {\n\t\tstart := time.Now()\n\t\tresp, err := next.RoundTrip(r)\n\t\tif err == nil {\n\t\t\tl := labels(code, method, r.Method, resp.StatusCode, rtOpts.extraMethods...)\n\t\t\tfor label, resolve := range rtOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(resp.Request.Context())\n\t\t\t}\n\t\t\tobserveWithExemplar(obs.With(l), time.Since(start).Seconds(), rtOpts.getExemplarFn(r.Context()))\n\t\t}\n\t\treturn resp, err\n\t}\n}\n\n// InstrumentTrace is used to offer flexibility in instrumenting the available\n// httptrace.ClientTrace hook functions. Each function is passed a float64\n// representing the time in seconds since the start of the http request. A user\n// may choose to use separately buckets Histograms, or implement custom\n// instance labels on a per function basis.\ntype InstrumentTrace struct {\n\tGotConn              func(float64)\n\tPutIdleConn          func(float64)\n\tGotFirstResponseByte func(float64)\n\tGot100Continue       func(float64)\n\tDNSStart             func(float64)\n\tDNSDone              func(float64)\n\tConnectStart         func(float64)\n\tConnectDone          func(float64)\n\tTLSHandshakeStart    func(float64)\n\tTLSHandshakeDone     func(float64)\n\tWroteHeaders         func(float64)\n\tWait100Continue      func(float64)\n\tWroteRequest         func(float64)\n}\n\n// InstrumentRoundTripperTrace is a middleware that wraps the provided\n// RoundTripper and reports times to hook functions provided in the\n// InstrumentTrace struct. Hook functions that are not present in the provided\n// InstrumentTrace struct are ignored. Times reported to the hook functions are\n// time since the start of the request. Only with Go1.9+, those times are\n// guaranteed to never be negative. (Earlier Go versions are not using a\n// monotonic clock.) Note that partitioning of Histograms is expensive and\n// should be used judiciously.\n//\n// For hook functions that receive an error as an argument, no observations are\n// made in the event of a non-nil error value.\n//\n// See the example for ExampleInstrumentRoundTripperDuration for example usage.\nfunc InstrumentRoundTripperTrace(it *InstrumentTrace, next http.RoundTripper) RoundTripperFunc {\n\treturn func(r *http.Request) (*http.Response, error) {\n\t\tstart := time.Now()\n\n\t\ttrace := &httptrace.ClientTrace{\n\t\t\tGotConn: func(_ httptrace.GotConnInfo) {\n\t\t\t\tif it.GotConn != nil {\n\t\t\t\t\tit.GotConn(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tPutIdleConn: func(err error) {\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif it.PutIdleConn != nil {\n\t\t\t\t\tit.PutIdleConn(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tDNSStart: func(_ httptrace.DNSStartInfo) {\n\t\t\t\tif it.DNSStart != nil {\n\t\t\t\t\tit.DNSStart(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tDNSDone: func(_ httptrace.DNSDoneInfo) {\n\t\t\t\tif it.DNSDone != nil {\n\t\t\t\t\tit.DNSDone(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tConnectStart: func(_, _ string) {\n\t\t\t\tif it.ConnectStart != nil {\n\t\t\t\t\tit.ConnectStart(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tConnectDone: func(_, _ string, err error) {\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif it.ConnectDone != nil {\n\t\t\t\t\tit.ConnectDone(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tGotFirstResponseByte: func() {\n\t\t\t\tif it.GotFirstResponseByte != nil {\n\t\t\t\t\tit.GotFirstResponseByte(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tGot100Continue: func() {\n\t\t\t\tif it.Got100Continue != nil {\n\t\t\t\t\tit.Got100Continue(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tTLSHandshakeStart: func() {\n\t\t\t\tif it.TLSHandshakeStart != nil {\n\t\t\t\t\tit.TLSHandshakeStart(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tTLSHandshakeDone: func(_ tls.ConnectionState, err error) {\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif it.TLSHandshakeDone != nil {\n\t\t\t\t\tit.TLSHandshakeDone(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tWroteHeaders: func() {\n\t\t\t\tif it.WroteHeaders != nil {\n\t\t\t\t\tit.WroteHeaders(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tWait100Continue: func() {\n\t\t\t\tif it.Wait100Continue != nil {\n\t\t\t\t\tit.Wait100Continue(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t\tWroteRequest: func(_ httptrace.WroteRequestInfo) {\n\t\t\t\tif it.WroteRequest != nil {\n\t\t\t\t\tit.WroteRequest(time.Since(start).Seconds())\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t\tr = r.WithContext(httptrace.WithClientTrace(r.Context(), trace))\n\n\t\treturn next.RoundTrip(r)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go",
    "content": "// Copyright 2017 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage promhttp\n\nimport (\n\t\"errors\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n)\n\n// magicString is used for the hacky label test in checkLabels. Remove once fixed.\nconst magicString = \"zZgWfBxLqvG8kc8IMv3POi2Bb0tZI3vAnBx+gBaFi9FyPzB/CzKUer1yufDa\"\n\n// observeWithExemplar is a wrapper for [prometheus.ExemplarAdder.ExemplarObserver],\n// which falls back to [prometheus.Observer.Observe] if no labels are provided.\nfunc observeWithExemplar(obs prometheus.Observer, val float64, labels map[string]string) {\n\tif labels == nil {\n\t\tobs.Observe(val)\n\t\treturn\n\t}\n\tobs.(prometheus.ExemplarObserver).ObserveWithExemplar(val, labels)\n}\n\n// addWithExemplar is a wrapper for [prometheus.ExemplarAdder.AddWithExemplar],\n// which falls back to [prometheus.Counter.Add] if no labels are provided.\nfunc addWithExemplar(obs prometheus.Counter, val float64, labels map[string]string) {\n\tif labels == nil {\n\t\tobs.Add(val)\n\t\treturn\n\t}\n\tobs.(prometheus.ExemplarAdder).AddWithExemplar(val, labels)\n}\n\n// InstrumentHandlerInFlight is a middleware that wraps the provided\n// http.Handler. It sets the provided prometheus.Gauge to the number of\n// requests currently handled by the wrapped http.Handler.\n//\n// See the example for InstrumentHandlerDuration for example usage.\nfunc InstrumentHandlerInFlight(g prometheus.Gauge, next http.Handler) http.Handler {\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tg.Inc()\n\t\tdefer g.Dec()\n\t\tnext.ServeHTTP(w, r)\n\t})\n}\n\n// InstrumentHandlerDuration is a middleware that wraps the provided\n// http.Handler to observe the request duration with the provided ObserverVec.\n// The ObserverVec must have valid metric and label names and must have zero,\n// one, or two non-const non-curried labels. For those, the only allowed label\n// names are \"code\" and \"method\". The function panics otherwise. For the \"method\"\n// label a predefined default label value set is used to filter given values.\n// Values besides predefined values will count as `unknown` method.\n// `WithExtraMethods` can be used to add more methods to the set. The Observe\n// method of the Observer in the ObserverVec is called with the request duration\n// in seconds. Partitioning happens by HTTP status code and/or HTTP method if\n// the respective instance label names are present in the ObserverVec. For\n// unpartitioned observations, use an ObserverVec with zero labels. Note that\n// partitioning of Histograms is expensive and should be used judiciously.\n//\n// If the wrapped Handler does not set a status code, a status code of 200 is assumed.\n//\n// If the wrapped Handler panics, no values are reported.\n//\n// Note that this method is only guaranteed to never observe negative durations\n// if used with Go1.9+.\nfunc InstrumentHandlerDuration(obs prometheus.ObserverVec, next http.Handler, opts ...Option) http.HandlerFunc {\n\thOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(hOpts)\n\t}\n\n\t// Curry the observer with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(obs.MustCurryWith(hOpts.emptyDynamicLabels()))\n\n\tif code {\n\t\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\t\tnow := time.Now()\n\t\t\td := newDelegator(w, nil)\n\t\t\tnext.ServeHTTP(d, r)\n\n\t\t\tl := labels(code, method, r.Method, d.Status(), hOpts.extraMethods...)\n\t\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(r.Context())\n\t\t\t}\n\t\t\tobserveWithExemplar(obs.With(l), time.Since(now).Seconds(), hOpts.getExemplarFn(r.Context()))\n\t\t}\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\tnow := time.Now()\n\t\tnext.ServeHTTP(w, r)\n\t\tl := labels(code, method, r.Method, 0, hOpts.extraMethods...)\n\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\tl[label] = resolve(r.Context())\n\t\t}\n\t\tobserveWithExemplar(obs.With(l), time.Since(now).Seconds(), hOpts.getExemplarFn(r.Context()))\n\t}\n}\n\n// InstrumentHandlerCounter is a middleware that wraps the provided http.Handler\n// to observe the request result with the provided CounterVec. The CounterVec\n// must have valid metric and label names and must have zero, one, or two\n// non-const non-curried labels. For those, the only allowed label names are\n// \"code\" and \"method\". The function panics otherwise. For the \"method\"\n// label a predefined default label value set is used to filter given values.\n// Values besides predefined values will count as `unknown` method.\n// `WithExtraMethods` can be used to add more methods to the set. Partitioning of the\n// CounterVec happens by HTTP status code and/or HTTP method if the respective\n// instance label names are present in the CounterVec. For unpartitioned\n// counting, use a CounterVec with zero labels.\n//\n// If the wrapped Handler does not set a status code, a status code of 200 is assumed.\n//\n// If the wrapped Handler panics, the Counter is not incremented.\n//\n// See the example for InstrumentHandlerDuration for example usage.\nfunc InstrumentHandlerCounter(counter *prometheus.CounterVec, next http.Handler, opts ...Option) http.HandlerFunc {\n\thOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(hOpts)\n\t}\n\n\t// Curry the counter with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(counter.MustCurryWith(hOpts.emptyDynamicLabels()))\n\n\tif code {\n\t\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\t\td := newDelegator(w, nil)\n\t\t\tnext.ServeHTTP(d, r)\n\n\t\t\tl := labels(code, method, r.Method, d.Status(), hOpts.extraMethods...)\n\t\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(r.Context())\n\t\t\t}\n\t\t\taddWithExemplar(counter.With(l), 1, hOpts.getExemplarFn(r.Context()))\n\t\t}\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\tnext.ServeHTTP(w, r)\n\n\t\tl := labels(code, method, r.Method, 0, hOpts.extraMethods...)\n\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\tl[label] = resolve(r.Context())\n\t\t}\n\t\taddWithExemplar(counter.With(l), 1, hOpts.getExemplarFn(r.Context()))\n\t}\n}\n\n// InstrumentHandlerTimeToWriteHeader is a middleware that wraps the provided\n// http.Handler to observe with the provided ObserverVec the request duration\n// until the response headers are written. The ObserverVec must have valid\n// metric and label names and must have zero, one, or two non-const non-curried\n// labels. For those, the only allowed label names are \"code\" and \"method\". The\n// function panics otherwise. For the \"method\" label a predefined default label\n// value set is used to filter given values. Values besides predefined values\n// will count as `unknown` method.`WithExtraMethods` can be used to add more\n// methods to the set. The Observe method of the Observer in the\n// ObserverVec is called with the request duration in seconds. Partitioning\n// happens by HTTP status code and/or HTTP method if the respective instance\n// label names are present in the ObserverVec. For unpartitioned observations,\n// use an ObserverVec with zero labels. Note that partitioning of Histograms is\n// expensive and should be used judiciously.\n//\n// If the wrapped Handler panics before calling WriteHeader, no value is\n// reported.\n//\n// Note that this method is only guaranteed to never observe negative durations\n// if used with Go1.9+.\n//\n// See the example for InstrumentHandlerDuration for example usage.\nfunc InstrumentHandlerTimeToWriteHeader(obs prometheus.ObserverVec, next http.Handler, opts ...Option) http.HandlerFunc {\n\thOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(hOpts)\n\t}\n\n\t// Curry the observer with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(obs.MustCurryWith(hOpts.emptyDynamicLabels()))\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\tnow := time.Now()\n\t\td := newDelegator(w, func(status int) {\n\t\t\tl := labels(code, method, r.Method, status, hOpts.extraMethods...)\n\t\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(r.Context())\n\t\t\t}\n\t\t\tobserveWithExemplar(obs.With(l), time.Since(now).Seconds(), hOpts.getExemplarFn(r.Context()))\n\t\t})\n\t\tnext.ServeHTTP(d, r)\n\t}\n}\n\n// InstrumentHandlerRequestSize is a middleware that wraps the provided\n// http.Handler to observe the request size with the provided ObserverVec. The\n// ObserverVec must have valid metric and label names and must have zero, one,\n// or two non-const non-curried labels. For those, the only allowed label names\n// are \"code\" and \"method\". The function panics otherwise. For the \"method\"\n// label a predefined default label value set is used to filter given values.\n// Values besides predefined values will count as `unknown` method.\n// `WithExtraMethods` can be used to add more methods to the set. The Observe\n// method of the Observer in the ObserverVec is called with the request size in\n// bytes. Partitioning happens by HTTP status code and/or HTTP method if the\n// respective instance label names are present in the ObserverVec. For\n// unpartitioned observations, use an ObserverVec with zero labels. Note that\n// partitioning of Histograms is expensive and should be used judiciously.\n//\n// If the wrapped Handler does not set a status code, a status code of 200 is assumed.\n//\n// If the wrapped Handler panics, no values are reported.\n//\n// See the example for InstrumentHandlerDuration for example usage.\nfunc InstrumentHandlerRequestSize(obs prometheus.ObserverVec, next http.Handler, opts ...Option) http.HandlerFunc {\n\thOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(hOpts)\n\t}\n\n\t// Curry the observer with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(obs.MustCurryWith(hOpts.emptyDynamicLabels()))\n\n\tif code {\n\t\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\t\td := newDelegator(w, nil)\n\t\t\tnext.ServeHTTP(d, r)\n\t\t\tsize := computeApproximateRequestSize(r)\n\n\t\t\tl := labels(code, method, r.Method, d.Status(), hOpts.extraMethods...)\n\t\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\t\tl[label] = resolve(r.Context())\n\t\t\t}\n\t\t\tobserveWithExemplar(obs.With(l), float64(size), hOpts.getExemplarFn(r.Context()))\n\t\t}\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\tnext.ServeHTTP(w, r)\n\t\tsize := computeApproximateRequestSize(r)\n\n\t\tl := labels(code, method, r.Method, 0, hOpts.extraMethods...)\n\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\tl[label] = resolve(r.Context())\n\t\t}\n\t\tobserveWithExemplar(obs.With(l), float64(size), hOpts.getExemplarFn(r.Context()))\n\t}\n}\n\n// InstrumentHandlerResponseSize is a middleware that wraps the provided\n// http.Handler to observe the response size with the provided ObserverVec. The\n// ObserverVec must have valid metric and label names and must have zero, one,\n// or two non-const non-curried labels. For those, the only allowed label names\n// are \"code\" and \"method\". The function panics otherwise. For the \"method\"\n// label a predefined default label value set is used to filter given values.\n// Values besides predefined values will count as `unknown` method.\n// `WithExtraMethods` can be used to add more methods to the set. The Observe\n// method of the Observer in the ObserverVec is called with the response size in\n// bytes. Partitioning happens by HTTP status code and/or HTTP method if the\n// respective instance label names are present in the ObserverVec. For\n// unpartitioned observations, use an ObserverVec with zero labels. Note that\n// partitioning of Histograms is expensive and should be used judiciously.\n//\n// If the wrapped Handler does not set a status code, a status code of 200 is assumed.\n//\n// If the wrapped Handler panics, no values are reported.\n//\n// See the example for InstrumentHandlerDuration for example usage.\nfunc InstrumentHandlerResponseSize(obs prometheus.ObserverVec, next http.Handler, opts ...Option) http.Handler {\n\thOpts := defaultOptions()\n\tfor _, o := range opts {\n\t\to.apply(hOpts)\n\t}\n\n\t// Curry the observer with dynamic labels before checking the remaining labels.\n\tcode, method := checkLabels(obs.MustCurryWith(hOpts.emptyDynamicLabels()))\n\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\td := newDelegator(w, nil)\n\t\tnext.ServeHTTP(d, r)\n\n\t\tl := labels(code, method, r.Method, d.Status(), hOpts.extraMethods...)\n\t\tfor label, resolve := range hOpts.extraLabelsFromCtx {\n\t\t\tl[label] = resolve(r.Context())\n\t\t}\n\t\tobserveWithExemplar(obs.With(l), float64(d.Written()), hOpts.getExemplarFn(r.Context()))\n\t})\n}\n\n// checkLabels returns whether the provided Collector has a non-const,\n// non-curried label named \"code\" and/or \"method\". It panics if the provided\n// Collector does not have a Desc or has more than one Desc or its Desc is\n// invalid. It also panics if the Collector has any non-const, non-curried\n// labels that are not named \"code\" or \"method\".\nfunc checkLabels(c prometheus.Collector) (code, method bool) {\n\t// TODO(beorn7): Remove this hacky way to check for instance labels\n\t// once Descriptors can have their dimensionality queried.\n\tvar (\n\t\tdesc *prometheus.Desc\n\t\tm    prometheus.Metric\n\t\tpm   dto.Metric\n\t\tlvs  []string\n\t)\n\n\t// Get the Desc from the Collector.\n\tdescc := make(chan *prometheus.Desc, 1)\n\tc.Describe(descc)\n\n\tselect {\n\tcase desc = <-descc:\n\tdefault:\n\t\tpanic(\"no description provided by collector\")\n\t}\n\tselect {\n\tcase <-descc:\n\t\tpanic(\"more than one description provided by collector\")\n\tdefault:\n\t}\n\n\tclose(descc)\n\n\t// Make sure the Collector has a valid Desc by registering it with a\n\t// temporary registry.\n\tprometheus.NewRegistry().MustRegister(c)\n\n\t// Create a ConstMetric with the Desc. Since we don't know how many\n\t// variable labels there are, try for as long as it needs.\n\tfor err := errors.New(\"dummy\"); err != nil; lvs = append(lvs, magicString) {\n\t\tm, err = prometheus.NewConstMetric(desc, prometheus.UntypedValue, 0, lvs...)\n\t}\n\n\t// Write out the metric into a proto message and look at the labels.\n\t// If the value is not the magicString, it is a constLabel, which doesn't interest us.\n\t// If the label is curried, it doesn't interest us.\n\t// In all other cases, only \"code\" or \"method\" is allowed.\n\tif err := m.Write(&pm); err != nil {\n\t\tpanic(\"error checking metric for labels\")\n\t}\n\tfor _, label := range pm.Label {\n\t\tname, value := label.GetName(), label.GetValue()\n\t\tif value != magicString || isLabelCurried(c, name) {\n\t\t\tcontinue\n\t\t}\n\t\tswitch name {\n\t\tcase \"code\":\n\t\t\tcode = true\n\t\tcase \"method\":\n\t\t\tmethod = true\n\t\tdefault:\n\t\t\tpanic(\"metric partitioned with non-supported labels\")\n\t\t}\n\t}\n\treturn\n}\n\nfunc isLabelCurried(c prometheus.Collector, label string) bool {\n\t// This is even hackier than the label test above.\n\t// We essentially try to curry again and see if it works.\n\t// But for that, we need to type-convert to the two\n\t// types we use here, ObserverVec or *CounterVec.\n\tswitch v := c.(type) {\n\tcase *prometheus.CounterVec:\n\t\tif _, err := v.CurryWith(prometheus.Labels{label: \"dummy\"}); err == nil {\n\t\t\treturn false\n\t\t}\n\tcase prometheus.ObserverVec:\n\t\tif _, err := v.CurryWith(prometheus.Labels{label: \"dummy\"}); err == nil {\n\t\t\treturn false\n\t\t}\n\tdefault:\n\t\tpanic(\"unsupported metric vec type\")\n\t}\n\treturn true\n}\n\n// emptyLabels is a one-time allocation for non-partitioned metrics to avoid\n// unnecessary allocations on each request.\nvar emptyLabels = prometheus.Labels{}\n\nfunc labels(code, method bool, reqMethod string, status int, extraMethods ...string) prometheus.Labels {\n\tif !(code || method) {\n\t\treturn emptyLabels\n\t}\n\tlabels := prometheus.Labels{}\n\n\tif code {\n\t\tlabels[\"code\"] = sanitizeCode(status)\n\t}\n\tif method {\n\t\tlabels[\"method\"] = sanitizeMethod(reqMethod, extraMethods...)\n\t}\n\n\treturn labels\n}\n\nfunc computeApproximateRequestSize(r *http.Request) int {\n\ts := 0\n\tif r.URL != nil {\n\t\ts += len(r.URL.String())\n\t}\n\n\ts += len(r.Method)\n\ts += len(r.Proto)\n\tfor name, values := range r.Header {\n\t\ts += len(name)\n\t\tfor _, value := range values {\n\t\t\ts += len(value)\n\t\t}\n\t}\n\ts += len(r.Host)\n\n\t// N.B. r.Form and r.MultipartForm are assumed to be included in r.URL.\n\n\tif r.ContentLength != -1 {\n\t\ts += int(r.ContentLength)\n\t}\n\treturn s\n}\n\n// If the wrapped http.Handler has a known method, it will be sanitized and returned.\n// Otherwise, \"unknown\" will be returned. The known method list can be extended\n// as needed by using extraMethods parameter.\nfunc sanitizeMethod(m string, extraMethods ...string) string {\n\t// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods for\n\t// the methods chosen as default.\n\tswitch m {\n\tcase \"GET\", \"get\":\n\t\treturn \"get\"\n\tcase \"PUT\", \"put\":\n\t\treturn \"put\"\n\tcase \"HEAD\", \"head\":\n\t\treturn \"head\"\n\tcase \"POST\", \"post\":\n\t\treturn \"post\"\n\tcase \"DELETE\", \"delete\":\n\t\treturn \"delete\"\n\tcase \"CONNECT\", \"connect\":\n\t\treturn \"connect\"\n\tcase \"OPTIONS\", \"options\":\n\t\treturn \"options\"\n\tcase \"NOTIFY\", \"notify\":\n\t\treturn \"notify\"\n\tcase \"TRACE\", \"trace\":\n\t\treturn \"trace\"\n\tcase \"PATCH\", \"patch\":\n\t\treturn \"patch\"\n\tdefault:\n\t\tfor _, method := range extraMethods {\n\t\t\tif strings.EqualFold(m, method) {\n\t\t\t\treturn strings.ToLower(m)\n\t\t\t}\n\t\t}\n\t\treturn \"unknown\"\n\t}\n}\n\n// If the wrapped http.Handler has not set a status code, i.e. the value is\n// currently 0, sanitizeCode will return 200, for consistency with behavior in\n// the stdlib.\nfunc sanitizeCode(s int) string {\n\t// See for accepted codes https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml\n\tswitch s {\n\tcase 100:\n\t\treturn \"100\"\n\tcase 101:\n\t\treturn \"101\"\n\n\tcase 200, 0:\n\t\treturn \"200\"\n\tcase 201:\n\t\treturn \"201\"\n\tcase 202:\n\t\treturn \"202\"\n\tcase 203:\n\t\treturn \"203\"\n\tcase 204:\n\t\treturn \"204\"\n\tcase 205:\n\t\treturn \"205\"\n\tcase 206:\n\t\treturn \"206\"\n\n\tcase 300:\n\t\treturn \"300\"\n\tcase 301:\n\t\treturn \"301\"\n\tcase 302:\n\t\treturn \"302\"\n\tcase 304:\n\t\treturn \"304\"\n\tcase 305:\n\t\treturn \"305\"\n\tcase 307:\n\t\treturn \"307\"\n\n\tcase 400:\n\t\treturn \"400\"\n\tcase 401:\n\t\treturn \"401\"\n\tcase 402:\n\t\treturn \"402\"\n\tcase 403:\n\t\treturn \"403\"\n\tcase 404:\n\t\treturn \"404\"\n\tcase 405:\n\t\treturn \"405\"\n\tcase 406:\n\t\treturn \"406\"\n\tcase 407:\n\t\treturn \"407\"\n\tcase 408:\n\t\treturn \"408\"\n\tcase 409:\n\t\treturn \"409\"\n\tcase 410:\n\t\treturn \"410\"\n\tcase 411:\n\t\treturn \"411\"\n\tcase 412:\n\t\treturn \"412\"\n\tcase 413:\n\t\treturn \"413\"\n\tcase 414:\n\t\treturn \"414\"\n\tcase 415:\n\t\treturn \"415\"\n\tcase 416:\n\t\treturn \"416\"\n\tcase 417:\n\t\treturn \"417\"\n\tcase 418:\n\t\treturn \"418\"\n\n\tcase 500:\n\t\treturn \"500\"\n\tcase 501:\n\t\treturn \"501\"\n\tcase 502:\n\t\treturn \"502\"\n\tcase 503:\n\t\treturn \"503\"\n\tcase 504:\n\t\treturn \"504\"\n\tcase 505:\n\t\treturn \"505\"\n\n\tcase 428:\n\t\treturn \"428\"\n\tcase 429:\n\t\treturn \"429\"\n\tcase 431:\n\t\treturn \"431\"\n\tcase 511:\n\t\treturn \"511\"\n\n\tdefault:\n\t\tif s >= 100 && s <= 599 {\n\t\t\treturn strconv.Itoa(s)\n\t\t}\n\t\treturn \"unknown\"\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/promhttp/option.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage promhttp\n\nimport (\n\t\"context\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n)\n\n// Option are used to configure both handler (middleware) or round tripper.\ntype Option interface {\n\tapply(*options)\n}\n\n// LabelValueFromCtx are used to compute the label value from request context.\n// Context can be filled with values from request through middleware.\ntype LabelValueFromCtx func(ctx context.Context) string\n\n// options store options for both a handler or round tripper.\ntype options struct {\n\textraMethods       []string\n\tgetExemplarFn      func(requestCtx context.Context) prometheus.Labels\n\textraLabelsFromCtx map[string]LabelValueFromCtx\n}\n\nfunc defaultOptions() *options {\n\treturn &options{\n\t\tgetExemplarFn:      func(ctx context.Context) prometheus.Labels { return nil },\n\t\textraLabelsFromCtx: map[string]LabelValueFromCtx{},\n\t}\n}\n\nfunc (o *options) emptyDynamicLabels() prometheus.Labels {\n\tlabels := prometheus.Labels{}\n\n\tfor label := range o.extraLabelsFromCtx {\n\t\tlabels[label] = \"\"\n\t}\n\n\treturn labels\n}\n\ntype optionApplyFunc func(*options)\n\nfunc (o optionApplyFunc) apply(opt *options) { o(opt) }\n\n// WithExtraMethods adds additional HTTP methods to the list of allowed methods.\n// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods for the default list.\n//\n// See the example for ExampleInstrumentHandlerWithExtraMethods for example usage.\nfunc WithExtraMethods(methods ...string) Option {\n\treturn optionApplyFunc(func(o *options) {\n\t\to.extraMethods = methods\n\t})\n}\n\n// WithExemplarFromContext allows to inject function that will get exemplar from context that will be put to counter and histogram metrics.\n// If the function returns nil labels or the metric does not support exemplars, no exemplar will be added (noop), but\n// metric will continue to observe/increment.\nfunc WithExemplarFromContext(getExemplarFn func(requestCtx context.Context) prometheus.Labels) Option {\n\treturn optionApplyFunc(func(o *options) {\n\t\to.getExemplarFn = getExemplarFn\n\t})\n}\n\n// WithLabelFromCtx registers a label for dynamic resolution with access to context.\n// See the example for ExampleInstrumentHandlerWithLabelResolver for example usage\nfunc WithLabelFromCtx(name string, valueFn LabelValueFromCtx) Option {\n\treturn optionApplyFunc(func(o *options) {\n\t\to.extraLabelsFromCtx[name] = valueFn\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/registry.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode/utf8\"\n\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n\n\t\"github.com/cespare/xxhash/v2\"\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"github.com/prometheus/common/expfmt\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\nconst (\n\t// Capacity for the channel to collect metrics and descriptors.\n\tcapMetricChan = 1000\n\tcapDescChan   = 10\n)\n\n// DefaultRegisterer and DefaultGatherer are the implementations of the\n// Registerer and Gatherer interface a number of convenience functions in this\n// package act on. Initially, both variables point to the same Registry, which\n// has a process collector (currently on Linux only, see NewProcessCollector)\n// and a Go collector (see NewGoCollector, in particular the note about\n// stop-the-world implication with Go versions older than 1.9) already\n// registered. This approach to keep default instances as global state mirrors\n// the approach of other packages in the Go standard library. Note that there\n// are caveats. Change the variables with caution and only if you understand the\n// consequences. Users who want to avoid global state altogether should not use\n// the convenience functions and act on custom instances instead.\nvar (\n\tdefaultRegistry              = NewRegistry()\n\tDefaultRegisterer Registerer = defaultRegistry\n\tDefaultGatherer   Gatherer   = defaultRegistry\n)\n\nfunc init() {\n\tMustRegister(NewProcessCollector(ProcessCollectorOpts{}))\n\tMustRegister(NewGoCollector())\n}\n\n// NewRegistry creates a new vanilla Registry without any Collectors\n// pre-registered.\nfunc NewRegistry() *Registry {\n\treturn &Registry{\n\t\tcollectorsByID:  map[uint64]Collector{},\n\t\tdescIDs:         map[uint64]struct{}{},\n\t\tdimHashesByName: map[string]uint64{},\n\t}\n}\n\n// NewPedanticRegistry returns a registry that checks during collection if each\n// collected Metric is consistent with its reported Desc, and if the Desc has\n// actually been registered with the registry. Unchecked Collectors (those whose\n// Describe method does not yield any descriptors) are excluded from the check.\n//\n// Usually, a Registry will be happy as long as the union of all collected\n// Metrics is consistent and valid even if some metrics are not consistent with\n// their own Desc or a Desc provided by their registered Collector. Well-behaved\n// Collectors and Metrics will only provide consistent Descs. This Registry is\n// useful to test the implementation of Collectors and Metrics.\nfunc NewPedanticRegistry() *Registry {\n\tr := NewRegistry()\n\tr.pedanticChecksEnabled = true\n\treturn r\n}\n\n// Registerer is the interface for the part of a registry in charge of\n// registering and unregistering. Users of custom registries should use\n// Registerer as type for registration purposes (rather than the Registry type\n// directly). In that way, they are free to use custom Registerer implementation\n// (e.g. for testing purposes).\ntype Registerer interface {\n\t// Register registers a new Collector to be included in metrics\n\t// collection. It returns an error if the descriptors provided by the\n\t// Collector are invalid or if they — in combination with descriptors of\n\t// already registered Collectors — do not fulfill the consistency and\n\t// uniqueness criteria described in the documentation of metric.Desc.\n\t//\n\t// If the provided Collector is equal to a Collector already registered\n\t// (which includes the case of re-registering the same Collector), the\n\t// returned error is an instance of AlreadyRegisteredError, which\n\t// contains the previously registered Collector.\n\t//\n\t// A Collector whose Describe method does not yield any Desc is treated\n\t// as unchecked. Registration will always succeed. No check for\n\t// re-registering (see previous paragraph) is performed. Thus, the\n\t// caller is responsible for not double-registering the same unchecked\n\t// Collector, and for providing a Collector that will not cause\n\t// inconsistent metrics on collection. (This would lead to scrape\n\t// errors.)\n\tRegister(Collector) error\n\t// MustRegister works like Register but registers any number of\n\t// Collectors and panics upon the first registration that causes an\n\t// error.\n\tMustRegister(...Collector)\n\t// Unregister unregisters the Collector that equals the Collector passed\n\t// in as an argument.  (Two Collectors are considered equal if their\n\t// Describe method yields the same set of descriptors.) The function\n\t// returns whether a Collector was unregistered. Note that an unchecked\n\t// Collector cannot be unregistered (as its Describe method does not\n\t// yield any descriptor).\n\t//\n\t// Note that even after unregistering, it will not be possible to\n\t// register a new Collector that is inconsistent with the unregistered\n\t// Collector, e.g. a Collector collecting metrics with the same name but\n\t// a different help string. The rationale here is that the same registry\n\t// instance must only collect consistent metrics throughout its\n\t// lifetime.\n\tUnregister(Collector) bool\n}\n\n// Gatherer is the interface for the part of a registry in charge of gathering\n// the collected metrics into a number of MetricFamilies. The Gatherer interface\n// comes with the same general implication as described for the Registerer\n// interface.\ntype Gatherer interface {\n\t// Gather calls the Collect method of the registered Collectors and then\n\t// gathers the collected metrics into a lexicographically sorted slice\n\t// of uniquely named MetricFamily protobufs. Gather ensures that the\n\t// returned slice is valid and self-consistent so that it can be used\n\t// for valid exposition. As an exception to the strict consistency\n\t// requirements described for metric.Desc, Gather will tolerate\n\t// different sets of label names for metrics of the same metric family.\n\t//\n\t// Even if an error occurs, Gather attempts to gather as many metrics as\n\t// possible. Hence, if a non-nil error is returned, the returned\n\t// MetricFamily slice could be nil (in case of a fatal error that\n\t// prevented any meaningful metric collection) or contain a number of\n\t// MetricFamily protobufs, some of which might be incomplete, and some\n\t// might be missing altogether. The returned error (which might be a\n\t// MultiError) explains the details. Note that this is mostly useful for\n\t// debugging purposes. If the gathered protobufs are to be used for\n\t// exposition in actual monitoring, it is almost always better to not\n\t// expose an incomplete result and instead disregard the returned\n\t// MetricFamily protobufs in case the returned error is non-nil.\n\tGather() ([]*dto.MetricFamily, error)\n}\n\n// Register registers the provided Collector with the DefaultRegisterer.\n//\n// Register is a shortcut for DefaultRegisterer.Register(c). See there for more\n// details.\nfunc Register(c Collector) error {\n\treturn DefaultRegisterer.Register(c)\n}\n\n// MustRegister registers the provided Collectors with the DefaultRegisterer and\n// panics if any error occurs.\n//\n// MustRegister is a shortcut for DefaultRegisterer.MustRegister(cs...). See\n// there for more details.\nfunc MustRegister(cs ...Collector) {\n\tDefaultRegisterer.MustRegister(cs...)\n}\n\n// Unregister removes the registration of the provided Collector from the\n// DefaultRegisterer.\n//\n// Unregister is a shortcut for DefaultRegisterer.Unregister(c). See there for\n// more details.\nfunc Unregister(c Collector) bool {\n\treturn DefaultRegisterer.Unregister(c)\n}\n\n// GathererFunc turns a function into a Gatherer.\ntype GathererFunc func() ([]*dto.MetricFamily, error)\n\n// Gather implements Gatherer.\nfunc (gf GathererFunc) Gather() ([]*dto.MetricFamily, error) {\n\treturn gf()\n}\n\n// AlreadyRegisteredError is returned by the Register method if the Collector to\n// be registered has already been registered before, or a different Collector\n// that collects the same metrics has been registered before. Registration fails\n// in that case, but you can detect from the kind of error what has\n// happened. The error contains fields for the existing Collector and the\n// (rejected) new Collector that equals the existing one. This can be used to\n// find out if an equal Collector has been registered before and switch over to\n// using the old one, as demonstrated in the example.\ntype AlreadyRegisteredError struct {\n\tExistingCollector, NewCollector Collector\n}\n\nfunc (err AlreadyRegisteredError) Error() string {\n\treturn \"duplicate metrics collector registration attempted\"\n}\n\n// MultiError is a slice of errors implementing the error interface. It is used\n// by a Gatherer to report multiple errors during MetricFamily gathering.\ntype MultiError []error\n\n// Error formats the contained errors as a bullet point list, preceded by the\n// total number of errors. Note that this results in a multi-line string.\nfunc (errs MultiError) Error() string {\n\tif len(errs) == 0 {\n\t\treturn \"\"\n\t}\n\tbuf := &bytes.Buffer{}\n\tfmt.Fprintf(buf, \"%d error(s) occurred:\", len(errs))\n\tfor _, err := range errs {\n\t\tfmt.Fprintf(buf, \"\\n* %s\", err)\n\t}\n\treturn buf.String()\n}\n\n// Append appends the provided error if it is not nil.\nfunc (errs *MultiError) Append(err error) {\n\tif err != nil {\n\t\t*errs = append(*errs, err)\n\t}\n}\n\n// MaybeUnwrap returns nil if len(errs) is 0. It returns the first and only\n// contained error as error if len(errs is 1). In all other cases, it returns\n// the MultiError directly. This is helpful for returning a MultiError in a way\n// that only uses the MultiError if needed.\nfunc (errs MultiError) MaybeUnwrap() error {\n\tswitch len(errs) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn errs[0]\n\tdefault:\n\t\treturn errs\n\t}\n}\n\n// Registry registers Prometheus collectors, collects their metrics, and gathers\n// them into MetricFamilies for exposition. It implements Registerer, Gatherer,\n// and Collector. The zero value is not usable. Create instances with\n// NewRegistry or NewPedanticRegistry.\n//\n// Registry implements Collector to allow it to be used for creating groups of\n// metrics. See the Grouping example for how this can be done.\ntype Registry struct {\n\tmtx                   sync.RWMutex\n\tcollectorsByID        map[uint64]Collector // ID is a hash of the descIDs.\n\tdescIDs               map[uint64]struct{}\n\tdimHashesByName       map[string]uint64\n\tuncheckedCollectors   []Collector\n\tpedanticChecksEnabled bool\n}\n\n// Register implements Registerer.\nfunc (r *Registry) Register(c Collector) error {\n\tvar (\n\t\tdescChan           = make(chan *Desc, capDescChan)\n\t\tnewDescIDs         = map[uint64]struct{}{}\n\t\tnewDimHashesByName = map[string]uint64{}\n\t\tcollectorID        uint64 // All desc IDs XOR'd together.\n\t\tduplicateDescErr   error\n\t)\n\tgo func() {\n\t\tc.Describe(descChan)\n\t\tclose(descChan)\n\t}()\n\tr.mtx.Lock()\n\tdefer func() {\n\t\t// Drain channel in case of premature return to not leak a goroutine.\n\t\tfor range descChan {\n\t\t}\n\t\tr.mtx.Unlock()\n\t}()\n\t// Conduct various tests...\n\tfor desc := range descChan {\n\n\t\t// Is the descriptor valid at all?\n\t\tif desc.err != nil {\n\t\t\treturn fmt.Errorf(\"descriptor %s is invalid: %w\", desc, desc.err)\n\t\t}\n\n\t\t// Is the descID unique?\n\t\t// (In other words: Is the fqName + constLabel combination unique?)\n\t\tif _, exists := r.descIDs[desc.id]; exists {\n\t\t\tduplicateDescErr = fmt.Errorf(\"descriptor %s already exists with the same fully-qualified name and const label values\", desc)\n\t\t}\n\t\t// If it is not a duplicate desc in this collector, XOR it to\n\t\t// the collectorID.  (We allow duplicate descs within the same\n\t\t// collector, but their existence must be a no-op.)\n\t\tif _, exists := newDescIDs[desc.id]; !exists {\n\t\t\tnewDescIDs[desc.id] = struct{}{}\n\t\t\tcollectorID ^= desc.id\n\t\t}\n\n\t\t// Are all the label names and the help string consistent with\n\t\t// previous descriptors of the same name?\n\t\t// First check existing descriptors...\n\t\tif dimHash, exists := r.dimHashesByName[desc.fqName]; exists {\n\t\t\tif dimHash != desc.dimHash {\n\t\t\t\treturn fmt.Errorf(\"a previously registered descriptor with the same fully-qualified name as %s has different label names or a different help string\", desc)\n\t\t\t}\n\t\t} else {\n\t\t\t// ...then check the new descriptors already seen.\n\t\t\tif dimHash, exists := newDimHashesByName[desc.fqName]; exists {\n\t\t\t\tif dimHash != desc.dimHash {\n\t\t\t\t\treturn fmt.Errorf(\"descriptors reported by collector have inconsistent label names or help strings for the same fully-qualified name, offender is %s\", desc)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnewDimHashesByName[desc.fqName] = desc.dimHash\n\t\t\t}\n\t\t}\n\t}\n\t// A Collector yielding no Desc at all is considered unchecked.\n\tif len(newDescIDs) == 0 {\n\t\tr.uncheckedCollectors = append(r.uncheckedCollectors, c)\n\t\treturn nil\n\t}\n\tif existing, exists := r.collectorsByID[collectorID]; exists {\n\t\tswitch e := existing.(type) {\n\t\tcase *wrappingCollector:\n\t\t\treturn AlreadyRegisteredError{\n\t\t\t\tExistingCollector: e.unwrapRecursively(),\n\t\t\t\tNewCollector:      c,\n\t\t\t}\n\t\tdefault:\n\t\t\treturn AlreadyRegisteredError{\n\t\t\t\tExistingCollector: e,\n\t\t\t\tNewCollector:      c,\n\t\t\t}\n\t\t}\n\t}\n\t// If the collectorID is new, but at least one of the descs existed\n\t// before, we are in trouble.\n\tif duplicateDescErr != nil {\n\t\treturn duplicateDescErr\n\t}\n\n\t// Only after all tests have passed, actually register.\n\tr.collectorsByID[collectorID] = c\n\tfor hash := range newDescIDs {\n\t\tr.descIDs[hash] = struct{}{}\n\t}\n\tfor name, dimHash := range newDimHashesByName {\n\t\tr.dimHashesByName[name] = dimHash\n\t}\n\treturn nil\n}\n\n// Unregister implements Registerer.\nfunc (r *Registry) Unregister(c Collector) bool {\n\tvar (\n\t\tdescChan    = make(chan *Desc, capDescChan)\n\t\tdescIDs     = map[uint64]struct{}{}\n\t\tcollectorID uint64 // All desc IDs XOR'd together.\n\t)\n\tgo func() {\n\t\tc.Describe(descChan)\n\t\tclose(descChan)\n\t}()\n\tfor desc := range descChan {\n\t\tif _, exists := descIDs[desc.id]; !exists {\n\t\t\tcollectorID ^= desc.id\n\t\t\tdescIDs[desc.id] = struct{}{}\n\t\t}\n\t}\n\n\tr.mtx.RLock()\n\tif _, exists := r.collectorsByID[collectorID]; !exists {\n\t\tr.mtx.RUnlock()\n\t\treturn false\n\t}\n\tr.mtx.RUnlock()\n\n\tr.mtx.Lock()\n\tdefer r.mtx.Unlock()\n\n\tdelete(r.collectorsByID, collectorID)\n\tfor id := range descIDs {\n\t\tdelete(r.descIDs, id)\n\t}\n\t// dimHashesByName is left untouched as those must be consistent\n\t// throughout the lifetime of a program.\n\treturn true\n}\n\n// MustRegister implements Registerer.\nfunc (r *Registry) MustRegister(cs ...Collector) {\n\tfor _, c := range cs {\n\t\tif err := r.Register(c); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Gather implements Gatherer.\nfunc (r *Registry) Gather() ([]*dto.MetricFamily, error) {\n\tr.mtx.RLock()\n\n\tif len(r.collectorsByID) == 0 && len(r.uncheckedCollectors) == 0 {\n\t\t// Fast path.\n\t\tr.mtx.RUnlock()\n\t\treturn nil, nil\n\t}\n\n\tvar (\n\t\tcheckedMetricChan   = make(chan Metric, capMetricChan)\n\t\tuncheckedMetricChan = make(chan Metric, capMetricChan)\n\t\tmetricHashes        = map[uint64]struct{}{}\n\t\twg                  sync.WaitGroup\n\t\terrs                MultiError          // The collected errors to return in the end.\n\t\tregisteredDescIDs   map[uint64]struct{} // Only used for pedantic checks\n\t)\n\n\tgoroutineBudget := len(r.collectorsByID) + len(r.uncheckedCollectors)\n\tmetricFamiliesByName := make(map[string]*dto.MetricFamily, len(r.dimHashesByName))\n\tcheckedCollectors := make(chan Collector, len(r.collectorsByID))\n\tuncheckedCollectors := make(chan Collector, len(r.uncheckedCollectors))\n\tfor _, collector := range r.collectorsByID {\n\t\tcheckedCollectors <- collector\n\t}\n\tfor _, collector := range r.uncheckedCollectors {\n\t\tuncheckedCollectors <- collector\n\t}\n\t// In case pedantic checks are enabled, we have to copy the map before\n\t// giving up the RLock.\n\tif r.pedanticChecksEnabled {\n\t\tregisteredDescIDs = make(map[uint64]struct{}, len(r.descIDs))\n\t\tfor id := range r.descIDs {\n\t\t\tregisteredDescIDs[id] = struct{}{}\n\t\t}\n\t}\n\tr.mtx.RUnlock()\n\n\twg.Add(goroutineBudget)\n\n\tcollectWorker := func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase collector := <-checkedCollectors:\n\t\t\t\tcollector.Collect(checkedMetricChan)\n\t\t\tcase collector := <-uncheckedCollectors:\n\t\t\t\tcollector.Collect(uncheckedMetricChan)\n\t\t\tdefault:\n\t\t\t\treturn\n\t\t\t}\n\t\t\twg.Done()\n\t\t}\n\t}\n\n\t// Start the first worker now to make sure at least one is running.\n\tgo collectWorker()\n\tgoroutineBudget--\n\n\t// Close checkedMetricChan and uncheckedMetricChan once all collectors\n\t// are collected.\n\tgo func() {\n\t\twg.Wait()\n\t\tclose(checkedMetricChan)\n\t\tclose(uncheckedMetricChan)\n\t}()\n\n\t// Drain checkedMetricChan and uncheckedMetricChan in case of premature return.\n\tdefer func() {\n\t\tif checkedMetricChan != nil {\n\t\t\tfor range checkedMetricChan {\n\t\t\t}\n\t\t}\n\t\tif uncheckedMetricChan != nil {\n\t\t\tfor range uncheckedMetricChan {\n\t\t\t}\n\t\t}\n\t}()\n\n\t// Copy the channel references so we can nil them out later to remove\n\t// them from the select statements below.\n\tcmc := checkedMetricChan\n\tumc := uncheckedMetricChan\n\n\tfor {\n\t\tselect {\n\t\tcase metric, ok := <-cmc:\n\t\t\tif !ok {\n\t\t\t\tcmc = nil\n\t\t\t\tbreak\n\t\t\t}\n\t\t\terrs.Append(processMetric(\n\t\t\t\tmetric, metricFamiliesByName,\n\t\t\t\tmetricHashes,\n\t\t\t\tregisteredDescIDs,\n\t\t\t))\n\t\tcase metric, ok := <-umc:\n\t\t\tif !ok {\n\t\t\t\tumc = nil\n\t\t\t\tbreak\n\t\t\t}\n\t\t\terrs.Append(processMetric(\n\t\t\t\tmetric, metricFamiliesByName,\n\t\t\t\tmetricHashes,\n\t\t\t\tnil,\n\t\t\t))\n\t\tdefault:\n\t\t\tif goroutineBudget <= 0 || len(checkedCollectors)+len(uncheckedCollectors) == 0 {\n\t\t\t\t// All collectors are already being worked on or\n\t\t\t\t// we have already as many goroutines started as\n\t\t\t\t// there are collectors. Do the same as above,\n\t\t\t\t// just without the default.\n\t\t\t\tselect {\n\t\t\t\tcase metric, ok := <-cmc:\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tcmc = nil\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\terrs.Append(processMetric(\n\t\t\t\t\t\tmetric, metricFamiliesByName,\n\t\t\t\t\t\tmetricHashes,\n\t\t\t\t\t\tregisteredDescIDs,\n\t\t\t\t\t))\n\t\t\t\tcase metric, ok := <-umc:\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tumc = nil\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\terrs.Append(processMetric(\n\t\t\t\t\t\tmetric, metricFamiliesByName,\n\t\t\t\t\t\tmetricHashes,\n\t\t\t\t\t\tnil,\n\t\t\t\t\t))\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Start more workers.\n\t\t\tgo collectWorker()\n\t\t\tgoroutineBudget--\n\t\t\truntime.Gosched()\n\t\t}\n\t\t// Once both checkedMetricChan and uncheckdMetricChan are closed\n\t\t// and drained, the contraption above will nil out cmc and umc,\n\t\t// and then we can leave the collect loop here.\n\t\tif cmc == nil && umc == nil {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn internal.NormalizeMetricFamilies(metricFamiliesByName), errs.MaybeUnwrap()\n}\n\n// Describe implements Collector.\nfunc (r *Registry) Describe(ch chan<- *Desc) {\n\tr.mtx.RLock()\n\tdefer r.mtx.RUnlock()\n\n\t// Only report the checked Collectors; unchecked collectors don't report any\n\t// Desc.\n\tfor _, c := range r.collectorsByID {\n\t\tc.Describe(ch)\n\t}\n}\n\n// Collect implements Collector.\nfunc (r *Registry) Collect(ch chan<- Metric) {\n\tr.mtx.RLock()\n\tdefer r.mtx.RUnlock()\n\n\tfor _, c := range r.collectorsByID {\n\t\tc.Collect(ch)\n\t}\n\tfor _, c := range r.uncheckedCollectors {\n\t\tc.Collect(ch)\n\t}\n}\n\n// WriteToTextfile calls Gather on the provided Gatherer, encodes the result in the\n// Prometheus text format, and writes it to a temporary file. Upon success, the\n// temporary file is renamed to the provided filename.\n//\n// This is intended for use with the textfile collector of the node exporter.\n// Note that the node exporter expects the filename to be suffixed with \".prom\".\nfunc WriteToTextfile(filename string, g Gatherer) error {\n\ttmp, err := os.CreateTemp(filepath.Dir(filename), filepath.Base(filename))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer os.Remove(tmp.Name())\n\n\tmfs, err := g.Gather()\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, mf := range mfs {\n\t\tif _, err := expfmt.MetricFamilyToText(tmp, mf); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := tmp.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := os.Chmod(tmp.Name(), 0o644); err != nil {\n\t\treturn err\n\t}\n\treturn os.Rename(tmp.Name(), filename)\n}\n\n// processMetric is an internal helper method only used by the Gather method.\nfunc processMetric(\n\tmetric Metric,\n\tmetricFamiliesByName map[string]*dto.MetricFamily,\n\tmetricHashes map[uint64]struct{},\n\tregisteredDescIDs map[uint64]struct{},\n) error {\n\tdesc := metric.Desc()\n\t// Wrapped metrics collected by an unchecked Collector can have an\n\t// invalid Desc.\n\tif desc.err != nil {\n\t\treturn desc.err\n\t}\n\tdtoMetric := &dto.Metric{}\n\tif err := metric.Write(dtoMetric); err != nil {\n\t\treturn fmt.Errorf(\"error collecting metric %v: %w\", desc, err)\n\t}\n\tmetricFamily, ok := metricFamiliesByName[desc.fqName]\n\tif ok { // Existing name.\n\t\tif metricFamily.GetHelp() != desc.help {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %s %s has help %q but should have %q\",\n\t\t\t\tdesc.fqName, dtoMetric, desc.help, metricFamily.GetHelp(),\n\t\t\t)\n\t\t}\n\t\t// TODO(beorn7): Simplify switch once Desc has type.\n\t\tswitch metricFamily.GetType() {\n\t\tcase dto.MetricType_COUNTER:\n\t\t\tif dtoMetric.Counter == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric %s %s should be a Counter\",\n\t\t\t\t\tdesc.fqName, dtoMetric,\n\t\t\t\t)\n\t\t\t}\n\t\tcase dto.MetricType_GAUGE:\n\t\t\tif dtoMetric.Gauge == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric %s %s should be a Gauge\",\n\t\t\t\t\tdesc.fqName, dtoMetric,\n\t\t\t\t)\n\t\t\t}\n\t\tcase dto.MetricType_SUMMARY:\n\t\t\tif dtoMetric.Summary == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric %s %s should be a Summary\",\n\t\t\t\t\tdesc.fqName, dtoMetric,\n\t\t\t\t)\n\t\t\t}\n\t\tcase dto.MetricType_UNTYPED:\n\t\t\tif dtoMetric.Untyped == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric %s %s should be Untyped\",\n\t\t\t\t\tdesc.fqName, dtoMetric,\n\t\t\t\t)\n\t\t\t}\n\t\tcase dto.MetricType_HISTOGRAM:\n\t\t\tif dtoMetric.Histogram == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric %s %s should be a Histogram\",\n\t\t\t\t\tdesc.fqName, dtoMetric,\n\t\t\t\t)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"encountered MetricFamily with invalid type\")\n\t\t}\n\t} else { // New name.\n\t\tmetricFamily = &dto.MetricFamily{}\n\t\tmetricFamily.Name = proto.String(desc.fqName)\n\t\tmetricFamily.Help = proto.String(desc.help)\n\t\t// TODO(beorn7): Simplify switch once Desc has type.\n\t\tswitch {\n\t\tcase dtoMetric.Gauge != nil:\n\t\t\tmetricFamily.Type = dto.MetricType_GAUGE.Enum()\n\t\tcase dtoMetric.Counter != nil:\n\t\t\tmetricFamily.Type = dto.MetricType_COUNTER.Enum()\n\t\tcase dtoMetric.Summary != nil:\n\t\t\tmetricFamily.Type = dto.MetricType_SUMMARY.Enum()\n\t\tcase dtoMetric.Untyped != nil:\n\t\t\tmetricFamily.Type = dto.MetricType_UNTYPED.Enum()\n\t\tcase dtoMetric.Histogram != nil:\n\t\t\tmetricFamily.Type = dto.MetricType_HISTOGRAM.Enum()\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"empty metric collected: %s\", dtoMetric)\n\t\t}\n\t\tif err := checkSuffixCollisions(metricFamily, metricFamiliesByName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmetricFamiliesByName[desc.fqName] = metricFamily\n\t}\n\tif err := checkMetricConsistency(metricFamily, dtoMetric, metricHashes); err != nil {\n\t\treturn err\n\t}\n\tif registeredDescIDs != nil {\n\t\t// Is the desc registered at all?\n\t\tif _, exist := registeredDescIDs[desc.id]; !exist {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %s %s with unregistered descriptor %s\",\n\t\t\t\tmetricFamily.GetName(), dtoMetric, desc,\n\t\t\t)\n\t\t}\n\t\tif err := checkDescConsistency(metricFamily, dtoMetric, desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tmetricFamily.Metric = append(metricFamily.Metric, dtoMetric)\n\treturn nil\n}\n\n// Gatherers is a slice of Gatherer instances that implements the Gatherer\n// interface itself. Its Gather method calls Gather on all Gatherers in the\n// slice in order and returns the merged results. Errors returned from the\n// Gather calls are all returned in a flattened MultiError. Duplicate and\n// inconsistent Metrics are skipped (first occurrence in slice order wins) and\n// reported in the returned error.\n//\n// Gatherers can be used to merge the Gather results from multiple\n// Registries. It also provides a way to directly inject existing MetricFamily\n// protobufs into the gathering by creating a custom Gatherer with a Gather\n// method that simply returns the existing MetricFamily protobufs. Note that no\n// registration is involved (in contrast to Collector registration), so\n// obviously registration-time checks cannot happen. Any inconsistencies between\n// the gathered MetricFamilies are reported as errors by the Gather method, and\n// inconsistent Metrics are dropped. Invalid parts of the MetricFamilies\n// (e.g. syntactically invalid metric or label names) will go undetected.\ntype Gatherers []Gatherer\n\n// Gather implements Gatherer.\nfunc (gs Gatherers) Gather() ([]*dto.MetricFamily, error) {\n\tvar (\n\t\tmetricFamiliesByName = map[string]*dto.MetricFamily{}\n\t\tmetricHashes         = map[uint64]struct{}{}\n\t\terrs                 MultiError // The collected errors to return in the end.\n\t)\n\n\tfor i, g := range gs {\n\t\tmfs, err := g.Gather()\n\t\tif err != nil {\n\t\t\tmultiErr := MultiError{}\n\t\t\tif errors.As(err, &multiErr) {\n\t\t\t\tfor _, err := range multiErr {\n\t\t\t\t\terrs = append(errs, fmt.Errorf(\"[from Gatherer #%d] %w\", i+1, err))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terrs = append(errs, fmt.Errorf(\"[from Gatherer #%d] %w\", i+1, err))\n\t\t\t}\n\t\t}\n\t\tfor _, mf := range mfs {\n\t\t\texistingMF, exists := metricFamiliesByName[mf.GetName()]\n\t\t\tif exists {\n\t\t\t\tif existingMF.GetHelp() != mf.GetHelp() {\n\t\t\t\t\terrs = append(errs, fmt.Errorf(\n\t\t\t\t\t\t\"gathered metric family %s has help %q but should have %q\",\n\t\t\t\t\t\tmf.GetName(), mf.GetHelp(), existingMF.GetHelp(),\n\t\t\t\t\t))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif existingMF.GetType() != mf.GetType() {\n\t\t\t\t\terrs = append(errs, fmt.Errorf(\n\t\t\t\t\t\t\"gathered metric family %s has type %s but should have %s\",\n\t\t\t\t\t\tmf.GetName(), mf.GetType(), existingMF.GetType(),\n\t\t\t\t\t))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\texistingMF = &dto.MetricFamily{}\n\t\t\t\texistingMF.Name = mf.Name\n\t\t\t\texistingMF.Help = mf.Help\n\t\t\t\texistingMF.Type = mf.Type\n\t\t\t\tif err := checkSuffixCollisions(existingMF, metricFamiliesByName); err != nil {\n\t\t\t\t\terrs = append(errs, err)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tmetricFamiliesByName[mf.GetName()] = existingMF\n\t\t\t}\n\t\t\tfor _, m := range mf.Metric {\n\t\t\t\tif err := checkMetricConsistency(existingMF, m, metricHashes); err != nil {\n\t\t\t\t\terrs = append(errs, err)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\texistingMF.Metric = append(existingMF.Metric, m)\n\t\t\t}\n\t\t}\n\t}\n\treturn internal.NormalizeMetricFamilies(metricFamiliesByName), errs.MaybeUnwrap()\n}\n\n// checkSuffixCollisions checks for collisions with the “magic” suffixes the\n// Prometheus text format and the internal metric representation of the\n// Prometheus server add while flattening Summaries and Histograms.\nfunc checkSuffixCollisions(mf *dto.MetricFamily, mfs map[string]*dto.MetricFamily) error {\n\tvar (\n\t\tnewName              = mf.GetName()\n\t\tnewType              = mf.GetType()\n\t\tnewNameWithoutSuffix = \"\"\n\t)\n\tswitch {\n\tcase strings.HasSuffix(newName, \"_count\"):\n\t\tnewNameWithoutSuffix = newName[:len(newName)-6]\n\tcase strings.HasSuffix(newName, \"_sum\"):\n\t\tnewNameWithoutSuffix = newName[:len(newName)-4]\n\tcase strings.HasSuffix(newName, \"_bucket\"):\n\t\tnewNameWithoutSuffix = newName[:len(newName)-7]\n\t}\n\tif newNameWithoutSuffix != \"\" {\n\t\tif existingMF, ok := mfs[newNameWithoutSuffix]; ok {\n\t\t\tswitch existingMF.GetType() {\n\t\t\tcase dto.MetricType_SUMMARY:\n\t\t\t\tif !strings.HasSuffix(newName, \"_bucket\") {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"collected metric named %q collides with previously collected summary named %q\",\n\t\t\t\t\t\tnewName, newNameWithoutSuffix,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\tcase dto.MetricType_HISTOGRAM:\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"collected metric named %q collides with previously collected histogram named %q\",\n\t\t\t\t\tnewName, newNameWithoutSuffix,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\tif newType == dto.MetricType_SUMMARY || newType == dto.MetricType_HISTOGRAM {\n\t\tif _, ok := mfs[newName+\"_count\"]; ok {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected histogram or summary named %q collides with previously collected metric named %q\",\n\t\t\t\tnewName, newName+\"_count\",\n\t\t\t)\n\t\t}\n\t\tif _, ok := mfs[newName+\"_sum\"]; ok {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected histogram or summary named %q collides with previously collected metric named %q\",\n\t\t\t\tnewName, newName+\"_sum\",\n\t\t\t)\n\t\t}\n\t}\n\tif newType == dto.MetricType_HISTOGRAM {\n\t\tif _, ok := mfs[newName+\"_bucket\"]; ok {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected histogram named %q collides with previously collected metric named %q\",\n\t\t\t\tnewName, newName+\"_bucket\",\n\t\t\t)\n\t\t}\n\t}\n\treturn nil\n}\n\n// checkMetricConsistency checks if the provided Metric is consistent with the\n// provided MetricFamily. It also hashes the Metric labels and the MetricFamily\n// name. If the resulting hash is already in the provided metricHashes, an error\n// is returned. If not, it is added to metricHashes.\nfunc checkMetricConsistency(\n\tmetricFamily *dto.MetricFamily,\n\tdtoMetric *dto.Metric,\n\tmetricHashes map[uint64]struct{},\n) error {\n\tname := metricFamily.GetName()\n\n\t// Type consistency with metric family.\n\tif metricFamily.GetType() == dto.MetricType_GAUGE && dtoMetric.Gauge == nil ||\n\t\tmetricFamily.GetType() == dto.MetricType_COUNTER && dtoMetric.Counter == nil ||\n\t\tmetricFamily.GetType() == dto.MetricType_SUMMARY && dtoMetric.Summary == nil ||\n\t\tmetricFamily.GetType() == dto.MetricType_HISTOGRAM && dtoMetric.Histogram == nil ||\n\t\tmetricFamily.GetType() == dto.MetricType_UNTYPED && dtoMetric.Untyped == nil {\n\t\treturn fmt.Errorf(\n\t\t\t\"collected metric %q { %s} is not a %s\",\n\t\t\tname, dtoMetric, metricFamily.GetType(),\n\t\t)\n\t}\n\n\tpreviousLabelName := \"\"\n\tfor _, labelPair := range dtoMetric.GetLabel() {\n\t\tlabelName := labelPair.GetName()\n\t\tif labelName == previousLabelName {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %q { %s} has two or more labels with the same name: %s\",\n\t\t\t\tname, dtoMetric, labelName,\n\t\t\t)\n\t\t}\n\t\tif !checkLabelName(labelName) {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %q { %s} has a label with an invalid name: %s\",\n\t\t\t\tname, dtoMetric, labelName,\n\t\t\t)\n\t\t}\n\t\tif dtoMetric.Summary != nil && labelName == quantileLabel {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %q { %s} must not have an explicit %q label\",\n\t\t\t\tname, dtoMetric, quantileLabel,\n\t\t\t)\n\t\t}\n\t\tif !utf8.ValidString(labelPair.GetValue()) {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"collected metric %q { %s} has a label named %q whose value is not utf8: %#v\",\n\t\t\t\tname, dtoMetric, labelName, labelPair.GetValue())\n\t\t}\n\t\tpreviousLabelName = labelName\n\t}\n\n\t// Is the metric unique (i.e. no other metric with the same name and the same labels)?\n\th := xxhash.New()\n\th.WriteString(name)\n\th.Write(separatorByteSlice)\n\t// Make sure label pairs are sorted. We depend on it for the consistency\n\t// check.\n\tif !sort.IsSorted(internal.LabelPairSorter(dtoMetric.Label)) {\n\t\t// We cannot sort dtoMetric.Label in place as it is immutable by contract.\n\t\tcopiedLabels := make([]*dto.LabelPair, len(dtoMetric.Label))\n\t\tcopy(copiedLabels, dtoMetric.Label)\n\t\tsort.Sort(internal.LabelPairSorter(copiedLabels))\n\t\tdtoMetric.Label = copiedLabels\n\t}\n\tfor _, lp := range dtoMetric.Label {\n\t\th.WriteString(lp.GetName())\n\t\th.Write(separatorByteSlice)\n\t\th.WriteString(lp.GetValue())\n\t\th.Write(separatorByteSlice)\n\t}\n\tif dtoMetric.TimestampMs != nil {\n\t\th.WriteString(strconv.FormatInt(*(dtoMetric.TimestampMs), 10))\n\t\th.Write(separatorByteSlice)\n\t}\n\thSum := h.Sum64()\n\tif _, exists := metricHashes[hSum]; exists {\n\t\treturn fmt.Errorf(\n\t\t\t\"collected metric %q { %s} was collected before with the same name and label values\",\n\t\t\tname, dtoMetric,\n\t\t)\n\t}\n\tmetricHashes[hSum] = struct{}{}\n\treturn nil\n}\n\nfunc checkDescConsistency(\n\tmetricFamily *dto.MetricFamily,\n\tdtoMetric *dto.Metric,\n\tdesc *Desc,\n) error {\n\t// Desc help consistency with metric family help.\n\tif metricFamily.GetHelp() != desc.help {\n\t\treturn fmt.Errorf(\n\t\t\t\"collected metric %s %s has help %q but should have %q\",\n\t\t\tmetricFamily.GetName(), dtoMetric, metricFamily.GetHelp(), desc.help,\n\t\t)\n\t}\n\n\t// Is the desc consistent with the content of the metric?\n\tlpsFromDesc := make([]*dto.LabelPair, len(desc.constLabelPairs), len(dtoMetric.Label))\n\tcopy(lpsFromDesc, desc.constLabelPairs)\n\tfor _, l := range desc.variableLabels {\n\t\tlpsFromDesc = append(lpsFromDesc, &dto.LabelPair{\n\t\t\tName: proto.String(l.Name),\n\t\t})\n\t}\n\tif len(lpsFromDesc) != len(dtoMetric.Label) {\n\t\treturn fmt.Errorf(\n\t\t\t\"labels in collected metric %s %s are inconsistent with descriptor %s\",\n\t\t\tmetricFamily.GetName(), dtoMetric, desc,\n\t\t)\n\t}\n\tsort.Sort(internal.LabelPairSorter(lpsFromDesc))\n\tfor i, lpFromDesc := range lpsFromDesc {\n\t\tlpFromMetric := dtoMetric.Label[i]\n\t\tif lpFromDesc.GetName() != lpFromMetric.GetName() ||\n\t\t\tlpFromDesc.Value != nil && lpFromDesc.GetValue() != lpFromMetric.GetValue() {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"labels in collected metric %s %s are inconsistent with descriptor %s\",\n\t\t\t\tmetricFamily.GetName(), dtoMetric, desc,\n\t\t\t)\n\t\t}\n\t}\n\treturn nil\n}\n\nvar _ TransactionalGatherer = &MultiTRegistry{}\n\n// MultiTRegistry is a TransactionalGatherer that joins gathered metrics from multiple\n// transactional gatherers.\n//\n// It is caller responsibility to ensure two registries have mutually exclusive metric families,\n// no deduplication will happen.\ntype MultiTRegistry struct {\n\ttGatherers []TransactionalGatherer\n}\n\n// NewMultiTRegistry creates MultiTRegistry.\nfunc NewMultiTRegistry(tGatherers ...TransactionalGatherer) *MultiTRegistry {\n\treturn &MultiTRegistry{\n\t\ttGatherers: tGatherers,\n\t}\n}\n\n// Gather implements TransactionalGatherer interface.\nfunc (r *MultiTRegistry) Gather() (mfs []*dto.MetricFamily, done func(), err error) {\n\terrs := MultiError{}\n\n\tdFns := make([]func(), 0, len(r.tGatherers))\n\t// TODO(bwplotka): Implement concurrency for those?\n\tfor _, g := range r.tGatherers {\n\t\t// TODO(bwplotka): Check for duplicates?\n\t\tm, d, err := g.Gather()\n\t\terrs.Append(err)\n\n\t\tmfs = append(mfs, m...)\n\t\tdFns = append(dFns, d)\n\t}\n\n\t// TODO(bwplotka): Consider sort in place, given metric family in gather is sorted already.\n\tsort.Slice(mfs, func(i, j int) bool {\n\t\treturn *mfs[i].Name < *mfs[j].Name\n\t})\n\treturn mfs, func() {\n\t\tfor _, d := range dFns {\n\t\t\td()\n\t\t}\n\t}, errs.MaybeUnwrap()\n}\n\n// TransactionalGatherer represents transactional gatherer that can be triggered to notify gatherer that memory\n// used by metric family is no longer used by a caller. This allows implementations with cache.\ntype TransactionalGatherer interface {\n\t// Gather returns metrics in a lexicographically sorted slice\n\t// of uniquely named MetricFamily protobufs. Gather ensures that the\n\t// returned slice is valid and self-consistent so that it can be used\n\t// for valid exposition. As an exception to the strict consistency\n\t// requirements described for metric.Desc, Gather will tolerate\n\t// different sets of label names for metrics of the same metric family.\n\t//\n\t// Even if an error occurs, Gather attempts to gather as many metrics as\n\t// possible. Hence, if a non-nil error is returned, the returned\n\t// MetricFamily slice could be nil (in case of a fatal error that\n\t// prevented any meaningful metric collection) or contain a number of\n\t// MetricFamily protobufs, some of which might be incomplete, and some\n\t// might be missing altogether. The returned error (which might be a\n\t// MultiError) explains the details. Note that this is mostly useful for\n\t// debugging purposes. If the gathered protobufs are to be used for\n\t// exposition in actual monitoring, it is almost always better to not\n\t// expose an incomplete result and instead disregard the returned\n\t// MetricFamily protobufs in case the returned error is non-nil.\n\t//\n\t// Important: done is expected to be triggered (even if the error occurs!)\n\t// once caller does not need returned slice of dto.MetricFamily.\n\tGather() (_ []*dto.MetricFamily, done func(), err error)\n}\n\n// ToTransactionalGatherer transforms Gatherer to transactional one with noop as done function.\nfunc ToTransactionalGatherer(g Gatherer) TransactionalGatherer {\n\treturn &noTransactionGatherer{g: g}\n}\n\ntype noTransactionGatherer struct {\n\tg Gatherer\n}\n\n// Gather implements TransactionalGatherer interface.\nfunc (g *noTransactionGatherer) Gather() (_ []*dto.MetricFamily, done func(), err error) {\n\tmfs, err := g.g.Gather()\n\treturn mfs, func() {}, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/summary.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"runtime\"\n\t\"sort\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\n\t\"github.com/beorn7/perks/quantile\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// quantileLabel is used for the label that defines the quantile in a\n// summary.\nconst quantileLabel = \"quantile\"\n\n// A Summary captures individual observations from an event or sample stream and\n// summarizes them in a manner similar to traditional summary statistics: 1. sum\n// of observations, 2. observation count, 3. rank estimations.\n//\n// A typical use-case is the observation of request latencies. By default, a\n// Summary provides the median, the 90th and the 99th percentile of the latency\n// as rank estimations. However, the default behavior will change in the\n// upcoming v1.0.0 of the library. There will be no rank estimations at all by\n// default. For a sane transition, it is recommended to set the desired rank\n// estimations explicitly.\n//\n// Note that the rank estimations cannot be aggregated in a meaningful way with\n// the Prometheus query language (i.e. you cannot average or add them). If you\n// need aggregatable quantiles (e.g. you want the 99th percentile latency of all\n// queries served across all instances of a service), consider the Histogram\n// metric type. See the Prometheus documentation for more details.\n//\n// To create Summary instances, use NewSummary.\ntype Summary interface {\n\tMetric\n\tCollector\n\n\t// Observe adds a single observation to the summary. Observations are\n\t// usually positive or zero. Negative observations are accepted but\n\t// prevent current versions of Prometheus from properly detecting\n\t// counter resets in the sum of observations. See\n\t// https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations\n\t// for details.\n\tObserve(float64)\n}\n\nvar errQuantileLabelNotAllowed = fmt.Errorf(\n\t\"%q is not allowed as label name in summaries\", quantileLabel,\n)\n\n// Default values for SummaryOpts.\nconst (\n\t// DefMaxAge is the default duration for which observations stay\n\t// relevant.\n\tDefMaxAge time.Duration = 10 * time.Minute\n\t// DefAgeBuckets is the default number of buckets used to calculate the\n\t// age of observations.\n\tDefAgeBuckets = 5\n\t// DefBufCap is the standard buffer size for collecting Summary observations.\n\tDefBufCap = 500\n)\n\n// SummaryOpts bundles the options for creating a Summary metric. It is\n// mandatory to set Name to a non-empty string. While all other fields are\n// optional and can safely be left at their zero value, it is recommended to set\n// a help string and to explicitly set the Objectives field to the desired value\n// as the default value will change in the upcoming v1.0.0 of the library.\ntype SummaryOpts struct {\n\t// Namespace, Subsystem, and Name are components of the fully-qualified\n\t// name of the Summary (created by joining these components with\n\t// \"_\"). Only Name is mandatory, the others merely help structuring the\n\t// name. Note that the fully-qualified name of the Summary must be a\n\t// valid Prometheus metric name.\n\tNamespace string\n\tSubsystem string\n\tName      string\n\n\t// Help provides information about this Summary.\n\t//\n\t// Metrics with the same fully-qualified name must have the same Help\n\t// string.\n\tHelp string\n\n\t// ConstLabels are used to attach fixed labels to this metric. Metrics\n\t// with the same fully-qualified name must have the same label names in\n\t// their ConstLabels.\n\t//\n\t// Due to the way a Summary is represented in the Prometheus text format\n\t// and how it is handled by the Prometheus server internally, “quantile”\n\t// is an illegal label name. Construction of a Summary or SummaryVec\n\t// will panic if this label name is used in ConstLabels.\n\t//\n\t// ConstLabels are only used rarely. In particular, do not use them to\n\t// attach the same labels to all your metrics. Those use cases are\n\t// better covered by target labels set by the scraping Prometheus\n\t// server, or by one specific metric (e.g. a build_info or a\n\t// machine_role metric). See also\n\t// https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels\n\tConstLabels Labels\n\n\t// Objectives defines the quantile rank estimates with their respective\n\t// absolute error. If Objectives[q] = e, then the value reported for q\n\t// will be the φ-quantile value for some φ between q-e and q+e.  The\n\t// default value is an empty map, resulting in a summary without\n\t// quantiles.\n\tObjectives map[float64]float64\n\n\t// MaxAge defines the duration for which an observation stays relevant\n\t// for the summary. Only applies to pre-calculated quantiles, does not\n\t// apply to _sum and _count. Must be positive. The default value is\n\t// DefMaxAge.\n\tMaxAge time.Duration\n\n\t// AgeBuckets is the number of buckets used to exclude observations that\n\t// are older than MaxAge from the summary. A higher number has a\n\t// resource penalty, so only increase it if the higher resolution is\n\t// really required. For very high observation rates, you might want to\n\t// reduce the number of age buckets. With only one age bucket, you will\n\t// effectively see a complete reset of the summary each time MaxAge has\n\t// passed. The default value is DefAgeBuckets.\n\tAgeBuckets uint32\n\n\t// BufCap defines the default sample stream buffer size.  The default\n\t// value of DefBufCap should suffice for most uses. If there is a need\n\t// to increase the value, a multiple of 500 is recommended (because that\n\t// is the internal buffer size of the underlying package\n\t// \"github.com/bmizerany/perks/quantile\").\n\tBufCap uint32\n}\n\n// SummaryVecOpts bundles the options to create a SummaryVec metric.\n// It is mandatory to set SummaryOpts, see there for mandatory fields. VariableLabels\n// is optional and can safely be left to its default value.\ntype SummaryVecOpts struct {\n\tSummaryOpts\n\n\t// VariableLabels are used to partition the metric vector by the given set\n\t// of labels. Each label value will be constrained with the optional Contraint\n\t// function, if provided.\n\tVariableLabels ConstrainableLabels\n}\n\n// Problem with the sliding-window decay algorithm... The Merge method of\n// perk/quantile is actually not working as advertised - and it might be\n// unfixable, as the underlying algorithm is apparently not capable of merging\n// summaries in the first place. To avoid using Merge, we are currently adding\n// observations to _each_ age bucket, i.e. the effort to add a sample is\n// essentially multiplied by the number of age buckets. When rotating age\n// buckets, we empty the previous head stream. On scrape time, we simply take\n// the quantiles from the head stream (no merging required). Result: More effort\n// on observation time, less effort on scrape time, which is exactly the\n// opposite of what we try to accomplish, but at least the results are correct.\n//\n// The quite elegant previous contraption to merge the age buckets efficiently\n// on scrape time (see code up commit 6b9530d72ea715f0ba612c0120e6e09fbf1d49d0)\n// can't be used anymore.\n\n// NewSummary creates a new Summary based on the provided SummaryOpts.\nfunc NewSummary(opts SummaryOpts) Summary {\n\treturn newSummary(\n\t\tNewDesc(\n\t\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\t\topts.Help,\n\t\t\tnil,\n\t\t\topts.ConstLabels,\n\t\t),\n\t\topts,\n\t)\n}\n\nfunc newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary {\n\tif len(desc.variableLabels) != len(labelValues) {\n\t\tpanic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels.labelNames(), labelValues))\n\t}\n\n\tfor _, n := range desc.variableLabels {\n\t\tif n.Name == quantileLabel {\n\t\t\tpanic(errQuantileLabelNotAllowed)\n\t\t}\n\t}\n\tfor _, lp := range desc.constLabelPairs {\n\t\tif lp.GetName() == quantileLabel {\n\t\t\tpanic(errQuantileLabelNotAllowed)\n\t\t}\n\t}\n\n\tif opts.Objectives == nil {\n\t\topts.Objectives = map[float64]float64{}\n\t}\n\n\tif opts.MaxAge < 0 {\n\t\tpanic(fmt.Errorf(\"illegal max age MaxAge=%v\", opts.MaxAge))\n\t}\n\tif opts.MaxAge == 0 {\n\t\topts.MaxAge = DefMaxAge\n\t}\n\n\tif opts.AgeBuckets == 0 {\n\t\topts.AgeBuckets = DefAgeBuckets\n\t}\n\n\tif opts.BufCap == 0 {\n\t\topts.BufCap = DefBufCap\n\t}\n\n\tif len(opts.Objectives) == 0 {\n\t\t// Use the lock-free implementation of a Summary without objectives.\n\t\ts := &noObjectivesSummary{\n\t\t\tdesc:       desc,\n\t\t\tlabelPairs: MakeLabelPairs(desc, labelValues),\n\t\t\tcounts:     [2]*summaryCounts{{}, {}},\n\t\t}\n\t\ts.init(s) // Init self-collection.\n\t\treturn s\n\t}\n\n\ts := &summary{\n\t\tdesc: desc,\n\n\t\tobjectives:       opts.Objectives,\n\t\tsortedObjectives: make([]float64, 0, len(opts.Objectives)),\n\n\t\tlabelPairs: MakeLabelPairs(desc, labelValues),\n\n\t\thotBuf:         make([]float64, 0, opts.BufCap),\n\t\tcoldBuf:        make([]float64, 0, opts.BufCap),\n\t\tstreamDuration: opts.MaxAge / time.Duration(opts.AgeBuckets),\n\t}\n\ts.headStreamExpTime = time.Now().Add(s.streamDuration)\n\ts.hotBufExpTime = s.headStreamExpTime\n\n\tfor i := uint32(0); i < opts.AgeBuckets; i++ {\n\t\ts.streams = append(s.streams, s.newStream())\n\t}\n\ts.headStream = s.streams[0]\n\n\tfor qu := range s.objectives {\n\t\ts.sortedObjectives = append(s.sortedObjectives, qu)\n\t}\n\tsort.Float64s(s.sortedObjectives)\n\n\ts.init(s) // Init self-collection.\n\treturn s\n}\n\ntype summary struct {\n\tselfCollector\n\n\tbufMtx sync.Mutex // Protects hotBuf and hotBufExpTime.\n\tmtx    sync.Mutex // Protects every other moving part.\n\t// Lock bufMtx before mtx if both are needed.\n\n\tdesc *Desc\n\n\tobjectives       map[float64]float64\n\tsortedObjectives []float64\n\n\tlabelPairs []*dto.LabelPair\n\n\tsum float64\n\tcnt uint64\n\n\thotBuf, coldBuf []float64\n\n\tstreams                          []*quantile.Stream\n\tstreamDuration                   time.Duration\n\theadStream                       *quantile.Stream\n\theadStreamIdx                    int\n\theadStreamExpTime, hotBufExpTime time.Time\n}\n\nfunc (s *summary) Desc() *Desc {\n\treturn s.desc\n}\n\nfunc (s *summary) Observe(v float64) {\n\ts.bufMtx.Lock()\n\tdefer s.bufMtx.Unlock()\n\n\tnow := time.Now()\n\tif now.After(s.hotBufExpTime) {\n\t\ts.asyncFlush(now)\n\t}\n\ts.hotBuf = append(s.hotBuf, v)\n\tif len(s.hotBuf) == cap(s.hotBuf) {\n\t\ts.asyncFlush(now)\n\t}\n}\n\nfunc (s *summary) Write(out *dto.Metric) error {\n\tsum := &dto.Summary{}\n\tqs := make([]*dto.Quantile, 0, len(s.objectives))\n\n\ts.bufMtx.Lock()\n\ts.mtx.Lock()\n\t// Swap bufs even if hotBuf is empty to set new hotBufExpTime.\n\ts.swapBufs(time.Now())\n\ts.bufMtx.Unlock()\n\n\ts.flushColdBuf()\n\tsum.SampleCount = proto.Uint64(s.cnt)\n\tsum.SampleSum = proto.Float64(s.sum)\n\n\tfor _, rank := range s.sortedObjectives {\n\t\tvar q float64\n\t\tif s.headStream.Count() == 0 {\n\t\t\tq = math.NaN()\n\t\t} else {\n\t\t\tq = s.headStream.Query(rank)\n\t\t}\n\t\tqs = append(qs, &dto.Quantile{\n\t\t\tQuantile: proto.Float64(rank),\n\t\t\tValue:    proto.Float64(q),\n\t\t})\n\t}\n\n\ts.mtx.Unlock()\n\n\tif len(qs) > 0 {\n\t\tsort.Sort(quantSort(qs))\n\t}\n\tsum.Quantile = qs\n\n\tout.Summary = sum\n\tout.Label = s.labelPairs\n\treturn nil\n}\n\nfunc (s *summary) newStream() *quantile.Stream {\n\treturn quantile.NewTargeted(s.objectives)\n}\n\n// asyncFlush needs bufMtx locked.\nfunc (s *summary) asyncFlush(now time.Time) {\n\ts.mtx.Lock()\n\ts.swapBufs(now)\n\n\t// Unblock the original goroutine that was responsible for the mutation\n\t// that triggered the compaction.  But hold onto the global non-buffer\n\t// state mutex until the operation finishes.\n\tgo func() {\n\t\ts.flushColdBuf()\n\t\ts.mtx.Unlock()\n\t}()\n}\n\n// rotateStreams needs mtx AND bufMtx locked.\nfunc (s *summary) maybeRotateStreams() {\n\tfor !s.hotBufExpTime.Equal(s.headStreamExpTime) {\n\t\ts.headStream.Reset()\n\t\ts.headStreamIdx++\n\t\tif s.headStreamIdx >= len(s.streams) {\n\t\t\ts.headStreamIdx = 0\n\t\t}\n\t\ts.headStream = s.streams[s.headStreamIdx]\n\t\ts.headStreamExpTime = s.headStreamExpTime.Add(s.streamDuration)\n\t}\n}\n\n// flushColdBuf needs mtx locked.\nfunc (s *summary) flushColdBuf() {\n\tfor _, v := range s.coldBuf {\n\t\tfor _, stream := range s.streams {\n\t\t\tstream.Insert(v)\n\t\t}\n\t\ts.cnt++\n\t\ts.sum += v\n\t}\n\ts.coldBuf = s.coldBuf[0:0]\n\ts.maybeRotateStreams()\n}\n\n// swapBufs needs mtx AND bufMtx locked, coldBuf must be empty.\nfunc (s *summary) swapBufs(now time.Time) {\n\tif len(s.coldBuf) != 0 {\n\t\tpanic(\"coldBuf is not empty\")\n\t}\n\ts.hotBuf, s.coldBuf = s.coldBuf, s.hotBuf\n\t// hotBuf is now empty and gets new expiration set.\n\tfor now.After(s.hotBufExpTime) {\n\t\ts.hotBufExpTime = s.hotBufExpTime.Add(s.streamDuration)\n\t}\n}\n\ntype summaryCounts struct {\n\t// sumBits contains the bits of the float64 representing the sum of all\n\t// observations. sumBits and count have to go first in the struct to\n\t// guarantee alignment for atomic operations.\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\tsumBits uint64\n\tcount   uint64\n}\n\ntype noObjectivesSummary struct {\n\t// countAndHotIdx enables lock-free writes with use of atomic updates.\n\t// The most significant bit is the hot index [0 or 1] of the count field\n\t// below. Observe calls update the hot one. All remaining bits count the\n\t// number of Observe calls. Observe starts by incrementing this counter,\n\t// and finish by incrementing the count field in the respective\n\t// summaryCounts, as a marker for completion.\n\t//\n\t// Calls of the Write method (which are non-mutating reads from the\n\t// perspective of the summary) swap the hot–cold under the writeMtx\n\t// lock. A cooldown is awaited (while locked) by comparing the number of\n\t// observations with the initiation count. Once they match, then the\n\t// last observation on the now cool one has completed. All cool fields must\n\t// be merged into the new hot before releasing writeMtx.\n\n\t// Fields with atomic access first! See alignment constraint:\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG\n\tcountAndHotIdx uint64\n\n\tselfCollector\n\tdesc     *Desc\n\twriteMtx sync.Mutex // Only used in the Write method.\n\n\t// Two counts, one is \"hot\" for lock-free observations, the other is\n\t// \"cold\" for writing out a dto.Metric. It has to be an array of\n\t// pointers to guarantee 64bit alignment of the histogramCounts, see\n\t// http://golang.org/pkg/sync/atomic/#pkg-note-BUG.\n\tcounts [2]*summaryCounts\n\n\tlabelPairs []*dto.LabelPair\n}\n\nfunc (s *noObjectivesSummary) Desc() *Desc {\n\treturn s.desc\n}\n\nfunc (s *noObjectivesSummary) Observe(v float64) {\n\t// We increment h.countAndHotIdx so that the counter in the lower\n\t// 63 bits gets incremented. At the same time, we get the new value\n\t// back, which we can use to find the currently-hot counts.\n\tn := atomic.AddUint64(&s.countAndHotIdx, 1)\n\thotCounts := s.counts[n>>63]\n\n\tfor {\n\t\toldBits := atomic.LoadUint64(&hotCounts.sumBits)\n\t\tnewBits := math.Float64bits(math.Float64frombits(oldBits) + v)\n\t\tif atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) {\n\t\t\tbreak\n\t\t}\n\t}\n\t// Increment count last as we take it as a signal that the observation\n\t// is complete.\n\tatomic.AddUint64(&hotCounts.count, 1)\n}\n\nfunc (s *noObjectivesSummary) Write(out *dto.Metric) error {\n\t// For simplicity, we protect this whole method by a mutex. It is not in\n\t// the hot path, i.e. Observe is called much more often than Write. The\n\t// complication of making Write lock-free isn't worth it, if possible at\n\t// all.\n\ts.writeMtx.Lock()\n\tdefer s.writeMtx.Unlock()\n\n\t// Adding 1<<63 switches the hot index (from 0 to 1 or from 1 to 0)\n\t// without touching the count bits. See the struct comments for a full\n\t// description of the algorithm.\n\tn := atomic.AddUint64(&s.countAndHotIdx, 1<<63)\n\t// count is contained unchanged in the lower 63 bits.\n\tcount := n & ((1 << 63) - 1)\n\t// The most significant bit tells us which counts is hot. The complement\n\t// is thus the cold one.\n\thotCounts := s.counts[n>>63]\n\tcoldCounts := s.counts[(^n)>>63]\n\n\t// Await cooldown.\n\tfor count != atomic.LoadUint64(&coldCounts.count) {\n\t\truntime.Gosched() // Let observations get work done.\n\t}\n\n\tsum := &dto.Summary{\n\t\tSampleCount: proto.Uint64(count),\n\t\tSampleSum:   proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.sumBits))),\n\t}\n\n\tout.Summary = sum\n\tout.Label = s.labelPairs\n\n\t// Finally add all the cold counts to the new hot counts and reset the cold counts.\n\tatomic.AddUint64(&hotCounts.count, count)\n\tatomic.StoreUint64(&coldCounts.count, 0)\n\tfor {\n\t\toldBits := atomic.LoadUint64(&hotCounts.sumBits)\n\t\tnewBits := math.Float64bits(math.Float64frombits(oldBits) + sum.GetSampleSum())\n\t\tif atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) {\n\t\t\tatomic.StoreUint64(&coldCounts.sumBits, 0)\n\t\t\tbreak\n\t\t}\n\t}\n\treturn nil\n}\n\ntype quantSort []*dto.Quantile\n\nfunc (s quantSort) Len() int {\n\treturn len(s)\n}\n\nfunc (s quantSort) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s quantSort) Less(i, j int) bool {\n\treturn s[i].GetQuantile() < s[j].GetQuantile()\n}\n\n// SummaryVec is a Collector that bundles a set of Summaries that all share the\n// same Desc, but have different values for their variable labels. This is used\n// if you want to count the same thing partitioned by various dimensions\n// (e.g. HTTP request latencies, partitioned by status code and method). Create\n// instances with NewSummaryVec.\ntype SummaryVec struct {\n\t*MetricVec\n}\n\n// NewSummaryVec creates a new SummaryVec based on the provided SummaryOpts and\n// partitioned by the given label names.\n//\n// Due to the way a Summary is represented in the Prometheus text format and how\n// it is handled by the Prometheus server internally, “quantile” is an illegal\n// label name. NewSummaryVec will panic if this label name is used.\nfunc NewSummaryVec(opts SummaryOpts, labelNames []string) *SummaryVec {\n\treturn V2.NewSummaryVec(SummaryVecOpts{\n\t\tSummaryOpts:    opts,\n\t\tVariableLabels: UnconstrainedLabels(labelNames),\n\t})\n}\n\n// NewSummaryVec creates a new SummaryVec based on the provided SummaryVecOpts.\nfunc (v2) NewSummaryVec(opts SummaryVecOpts) *SummaryVec {\n\tfor _, ln := range opts.VariableLabels.labelNames() {\n\t\tif ln == quantileLabel {\n\t\t\tpanic(errQuantileLabelNotAllowed)\n\t\t}\n\t}\n\tdesc := V2.NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\topts.VariableLabels,\n\t\topts.ConstLabels,\n\t)\n\treturn &SummaryVec{\n\t\tMetricVec: NewMetricVec(desc, func(lvs ...string) Metric {\n\t\t\treturn newSummary(desc, opts.SummaryOpts, lvs...)\n\t\t}),\n\t}\n}\n\n// GetMetricWithLabelValues returns the Summary for the given slice of label\n// values (same order as the variable labels in Desc). If that combination of\n// label values is accessed for the first time, a new Summary is created.\n//\n// It is possible to call this method without using the returned Summary to only\n// create the new Summary but leave it at its starting value, a Summary without\n// any observations.\n//\n// Keeping the Summary for later use is possible (and should be considered if\n// performance is critical), but keep in mind that Reset, DeleteLabelValues and\n// Delete can be used to delete the Summary from the SummaryVec. In that case,\n// the Summary will still exist, but it will not be exported anymore, even if a\n// Summary with the same label values is created later. See also the CounterVec\n// example.\n//\n// An error is returned if the number of label values is not the same as the\n// number of variable labels in Desc (minus any curried labels).\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as\n// an alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\n// See also the GaugeVec example.\nfunc (v *SummaryVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) {\n\tmetric, err := v.MetricVec.GetMetricWithLabelValues(lvs...)\n\tif metric != nil {\n\t\treturn metric.(Observer), err\n\t}\n\treturn nil, err\n}\n\n// GetMetricWith returns the Summary for the given Labels map (the label names\n// must match those of the variable labels in Desc). If that label map is\n// accessed for the first time, a new Summary is created. Implications of\n// creating a Summary without using it and keeping the Summary for later use are\n// the same as for GetMetricWithLabelValues.\n//\n// An error is returned if the number and names of the Labels are inconsistent\n// with those of the variable labels in Desc (minus any curried labels).\n//\n// This method is used for the same purpose as\n// GetMetricWithLabelValues(...string). See there for pros and cons of the two\n// methods.\nfunc (v *SummaryVec) GetMetricWith(labels Labels) (Observer, error) {\n\tmetric, err := v.MetricVec.GetMetricWith(labels)\n\tif metric != nil {\n\t\treturn metric.(Observer), err\n\t}\n\treturn nil, err\n}\n\n// WithLabelValues works as GetMetricWithLabelValues, but panics where\n// GetMetricWithLabelValues would have returned an error. Not returning an\n// error allows shortcuts like\n//\n//\tmyVec.WithLabelValues(\"404\", \"GET\").Observe(42.21)\nfunc (v *SummaryVec) WithLabelValues(lvs ...string) Observer {\n\ts, err := v.GetMetricWithLabelValues(lvs...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn s\n}\n\n// With works as GetMetricWith, but panics where GetMetricWithLabels would have\n// returned an error. Not returning an error allows shortcuts like\n//\n//\tmyVec.With(prometheus.Labels{\"code\": \"404\", \"method\": \"GET\"}).Observe(42.21)\nfunc (v *SummaryVec) With(labels Labels) Observer {\n\ts, err := v.GetMetricWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn s\n}\n\n// CurryWith returns a vector curried with the provided labels, i.e. the\n// returned vector has those labels pre-set for all labeled operations performed\n// on it. The cardinality of the curried vector is reduced accordingly. The\n// order of the remaining labels stays the same (just with the curried labels\n// taken out of the sequence – which is relevant for the\n// (GetMetric)WithLabelValues methods). It is possible to curry a curried\n// vector, but only with labels not yet used for currying before.\n//\n// The metrics contained in the SummaryVec are shared between the curried and\n// uncurried vectors. They are just accessed differently. Curried and uncurried\n// vectors behave identically in terms of collection. Only one must be\n// registered with a given registry (usually the uncurried version). The Reset\n// method deletes all metrics, even if called on a curried vector.\nfunc (v *SummaryVec) CurryWith(labels Labels) (ObserverVec, error) {\n\tvec, err := v.MetricVec.CurryWith(labels)\n\tif vec != nil {\n\t\treturn &SummaryVec{vec}, err\n\t}\n\treturn nil, err\n}\n\n// MustCurryWith works as CurryWith but panics where CurryWith would have\n// returned an error.\nfunc (v *SummaryVec) MustCurryWith(labels Labels) ObserverVec {\n\tvec, err := v.CurryWith(labels)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn vec\n}\n\ntype constSummary struct {\n\tdesc       *Desc\n\tcount      uint64\n\tsum        float64\n\tquantiles  map[float64]float64\n\tlabelPairs []*dto.LabelPair\n}\n\nfunc (s *constSummary) Desc() *Desc {\n\treturn s.desc\n}\n\nfunc (s *constSummary) Write(out *dto.Metric) error {\n\tsum := &dto.Summary{}\n\tqs := make([]*dto.Quantile, 0, len(s.quantiles))\n\n\tsum.SampleCount = proto.Uint64(s.count)\n\tsum.SampleSum = proto.Float64(s.sum)\n\n\tfor rank, q := range s.quantiles {\n\t\tqs = append(qs, &dto.Quantile{\n\t\t\tQuantile: proto.Float64(rank),\n\t\t\tValue:    proto.Float64(q),\n\t\t})\n\t}\n\n\tif len(qs) > 0 {\n\t\tsort.Sort(quantSort(qs))\n\t}\n\tsum.Quantile = qs\n\n\tout.Summary = sum\n\tout.Label = s.labelPairs\n\n\treturn nil\n}\n\n// NewConstSummary returns a metric representing a Prometheus summary with fixed\n// values for the count, sum, and quantiles. As those parameters cannot be\n// changed, the returned value does not implement the Summary interface (but\n// only the Metric interface). Users of this package will not have much use for\n// it in regular operations. However, when implementing custom Collectors, it is\n// useful as a throw-away metric that is generated on the fly to send it to\n// Prometheus in the Collect method.\n//\n// quantiles maps ranks to quantile values. For example, a median latency of\n// 0.23s and a 99th percentile latency of 0.56s would be expressed as:\n//\n//\tmap[float64]float64{0.5: 0.23, 0.99: 0.56}\n//\n// NewConstSummary returns an error if the length of labelValues is not\n// consistent with the variable labels in Desc or if Desc is invalid.\nfunc NewConstSummary(\n\tdesc *Desc,\n\tcount uint64,\n\tsum float64,\n\tquantiles map[float64]float64,\n\tlabelValues ...string,\n) (Metric, error) {\n\tif desc.err != nil {\n\t\treturn nil, desc.err\n\t}\n\tif err := validateLabelValues(labelValues, len(desc.variableLabels)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &constSummary{\n\t\tdesc:       desc,\n\t\tcount:      count,\n\t\tsum:        sum,\n\t\tquantiles:  quantiles,\n\t\tlabelPairs: MakeLabelPairs(desc, labelValues),\n\t}, nil\n}\n\n// MustNewConstSummary is a version of NewConstSummary that panics where\n// NewConstMetric would have returned an error.\nfunc MustNewConstSummary(\n\tdesc *Desc,\n\tcount uint64,\n\tsum float64,\n\tquantiles map[float64]float64,\n\tlabelValues ...string,\n) Metric {\n\tm, err := NewConstSummary(desc, count, sum, quantiles, labelValues...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn m\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/testutil/lint.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage testutil\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n\t\"github.com/prometheus/client_golang/prometheus/testutil/promlint\"\n)\n\n// CollectAndLint registers the provided Collector with a newly created pedantic\n// Registry. It then calls GatherAndLint with that Registry and with the\n// provided metricNames.\nfunc CollectAndLint(c prometheus.Collector, metricNames ...string) ([]promlint.Problem, error) {\n\treg := prometheus.NewPedanticRegistry()\n\tif err := reg.Register(c); err != nil {\n\t\treturn nil, fmt.Errorf(\"registering collector failed: %w\", err)\n\t}\n\treturn GatherAndLint(reg, metricNames...)\n}\n\n// GatherAndLint gathers all metrics from the provided Gatherer and checks them\n// with the linter in the promlint package. If any metricNames are provided,\n// only metrics with those names are checked.\nfunc GatherAndLint(g prometheus.Gatherer, metricNames ...string) ([]promlint.Problem, error) {\n\tgot, err := g.Gather()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"gathering metrics failed: %w\", err)\n\t}\n\tif metricNames != nil {\n\t\tgot = filterMetrics(got, metricNames)\n\t}\n\treturn promlint.NewWithMetricFamilies(got).Lint()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package promlint provides a linter for Prometheus metrics.\npackage promlint\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/prometheus/common/expfmt\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// A Linter is a Prometheus metrics linter.  It identifies issues with metric\n// names, types, and metadata, and reports them to the caller.\ntype Linter struct {\n\t// The linter will read metrics in the Prometheus text format from r and\n\t// then lint it, _and_ it will lint the metrics provided directly as\n\t// MetricFamily proto messages in mfs. Note, however, that the current\n\t// constructor functions New and NewWithMetricFamilies only ever set one\n\t// of them.\n\tr   io.Reader\n\tmfs []*dto.MetricFamily\n}\n\n// A Problem is an issue detected by a Linter.\ntype Problem struct {\n\t// The name of the metric indicated by this Problem.\n\tMetric string\n\n\t// A description of the issue for this Problem.\n\tText string\n}\n\n// newProblem is helper function to create a Problem.\nfunc newProblem(mf *dto.MetricFamily, text string) Problem {\n\treturn Problem{\n\t\tMetric: mf.GetName(),\n\t\tText:   text,\n\t}\n}\n\n// New creates a new Linter that reads an input stream of Prometheus metrics in\n// the Prometheus text exposition format.\nfunc New(r io.Reader) *Linter {\n\treturn &Linter{\n\t\tr: r,\n\t}\n}\n\n// NewWithMetricFamilies creates a new Linter that reads from a slice of\n// MetricFamily protobuf messages.\nfunc NewWithMetricFamilies(mfs []*dto.MetricFamily) *Linter {\n\treturn &Linter{\n\t\tmfs: mfs,\n\t}\n}\n\n// Lint performs a linting pass, returning a slice of Problems indicating any\n// issues found in the metrics stream. The slice is sorted by metric name\n// and issue description.\nfunc (l *Linter) Lint() ([]Problem, error) {\n\tvar problems []Problem\n\n\tif l.r != nil {\n\t\td := expfmt.NewDecoder(l.r, expfmt.FmtText)\n\n\t\tmf := &dto.MetricFamily{}\n\t\tfor {\n\t\t\tif err := d.Decode(mf); err != nil {\n\t\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tproblems = append(problems, lint(mf)...)\n\t\t}\n\t}\n\tfor _, mf := range l.mfs {\n\t\tproblems = append(problems, lint(mf)...)\n\t}\n\n\t// Ensure deterministic output.\n\tsort.SliceStable(problems, func(i, j int) bool {\n\t\tif problems[i].Metric == problems[j].Metric {\n\t\t\treturn problems[i].Text < problems[j].Text\n\t\t}\n\t\treturn problems[i].Metric < problems[j].Metric\n\t})\n\n\treturn problems, nil\n}\n\n// lint is the entry point for linting a single metric.\nfunc lint(mf *dto.MetricFamily) []Problem {\n\tfns := []func(mf *dto.MetricFamily) []Problem{\n\t\tlintHelp,\n\t\tlintMetricUnits,\n\t\tlintCounter,\n\t\tlintHistogramSummaryReserved,\n\t\tlintMetricTypeInName,\n\t\tlintReservedChars,\n\t\tlintCamelCase,\n\t\tlintUnitAbbreviations,\n\t}\n\n\tvar problems []Problem\n\tfor _, fn := range fns {\n\t\tproblems = append(problems, fn(mf)...)\n\t}\n\n\t// TODO(mdlayher): lint rules for specific metrics types.\n\treturn problems\n}\n\n// lintHelp detects issues related to the help text for a metric.\nfunc lintHelp(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\n\t// Expect all metrics to have help text available.\n\tif mf.Help == nil {\n\t\tproblems = append(problems, newProblem(mf, \"no help text\"))\n\t}\n\n\treturn problems\n}\n\n// lintMetricUnits detects issues with metric unit names.\nfunc lintMetricUnits(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\n\tunit, base, ok := metricUnits(*mf.Name)\n\tif !ok {\n\t\t// No known units detected.\n\t\treturn nil\n\t}\n\n\t// Unit is already a base unit.\n\tif unit == base {\n\t\treturn nil\n\t}\n\n\tproblems = append(problems, newProblem(mf, fmt.Sprintf(\"use base unit %q instead of %q\", base, unit)))\n\n\treturn problems\n}\n\n// lintCounter detects issues specific to counters, as well as patterns that should\n// only be used with counters.\nfunc lintCounter(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\n\tisCounter := mf.GetType() == dto.MetricType_COUNTER\n\tisUntyped := mf.GetType() == dto.MetricType_UNTYPED\n\thasTotalSuffix := strings.HasSuffix(mf.GetName(), \"_total\")\n\n\tswitch {\n\tcase isCounter && !hasTotalSuffix:\n\t\tproblems = append(problems, newProblem(mf, `counter metrics should have \"_total\" suffix`))\n\tcase !isUntyped && !isCounter && hasTotalSuffix:\n\t\tproblems = append(problems, newProblem(mf, `non-counter metrics should not have \"_total\" suffix`))\n\t}\n\n\treturn problems\n}\n\n// lintHistogramSummaryReserved detects when other types of metrics use names or labels\n// reserved for use by histograms and/or summaries.\nfunc lintHistogramSummaryReserved(mf *dto.MetricFamily) []Problem {\n\t// These rules do not apply to untyped metrics.\n\tt := mf.GetType()\n\tif t == dto.MetricType_UNTYPED {\n\t\treturn nil\n\t}\n\n\tvar problems []Problem\n\n\tisHistogram := t == dto.MetricType_HISTOGRAM\n\tisSummary := t == dto.MetricType_SUMMARY\n\n\tn := mf.GetName()\n\n\tif !isHistogram && strings.HasSuffix(n, \"_bucket\") {\n\t\tproblems = append(problems, newProblem(mf, `non-histogram metrics should not have \"_bucket\" suffix`))\n\t}\n\tif !isHistogram && !isSummary && strings.HasSuffix(n, \"_count\") {\n\t\tproblems = append(problems, newProblem(mf, `non-histogram and non-summary metrics should not have \"_count\" suffix`))\n\t}\n\tif !isHistogram && !isSummary && strings.HasSuffix(n, \"_sum\") {\n\t\tproblems = append(problems, newProblem(mf, `non-histogram and non-summary metrics should not have \"_sum\" suffix`))\n\t}\n\n\tfor _, m := range mf.GetMetric() {\n\t\tfor _, l := range m.GetLabel() {\n\t\t\tln := l.GetName()\n\n\t\t\tif !isHistogram && ln == \"le\" {\n\t\t\t\tproblems = append(problems, newProblem(mf, `non-histogram metrics should not have \"le\" label`))\n\t\t\t}\n\t\t\tif !isSummary && ln == \"quantile\" {\n\t\t\t\tproblems = append(problems, newProblem(mf, `non-summary metrics should not have \"quantile\" label`))\n\t\t\t}\n\t\t}\n\t}\n\n\treturn problems\n}\n\n// lintMetricTypeInName detects when metric types are included in the metric name.\nfunc lintMetricTypeInName(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\tn := strings.ToLower(mf.GetName())\n\n\tfor i, t := range dto.MetricType_name {\n\t\tif i == int32(dto.MetricType_UNTYPED) {\n\t\t\tcontinue\n\t\t}\n\n\t\ttypename := strings.ToLower(t)\n\t\tif strings.Contains(n, \"_\"+typename+\"_\") || strings.HasSuffix(n, \"_\"+typename) {\n\t\t\tproblems = append(problems, newProblem(mf, fmt.Sprintf(`metric name should not include type '%s'`, typename)))\n\t\t}\n\t}\n\treturn problems\n}\n\n// lintReservedChars detects colons in metric names.\nfunc lintReservedChars(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\tif strings.Contains(mf.GetName(), \":\") {\n\t\tproblems = append(problems, newProblem(mf, \"metric names should not contain ':'\"))\n\t}\n\treturn problems\n}\n\nvar camelCase = regexp.MustCompile(`[a-z][A-Z]`)\n\n// lintCamelCase detects metric names and label names written in camelCase.\nfunc lintCamelCase(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\tif camelCase.FindString(mf.GetName()) != \"\" {\n\t\tproblems = append(problems, newProblem(mf, \"metric names should be written in 'snake_case' not 'camelCase'\"))\n\t}\n\n\tfor _, m := range mf.GetMetric() {\n\t\tfor _, l := range m.GetLabel() {\n\t\t\tif camelCase.FindString(l.GetName()) != \"\" {\n\t\t\t\tproblems = append(problems, newProblem(mf, \"label names should be written in 'snake_case' not 'camelCase'\"))\n\t\t\t}\n\t\t}\n\t}\n\treturn problems\n}\n\n// lintUnitAbbreviations detects abbreviated units in the metric name.\nfunc lintUnitAbbreviations(mf *dto.MetricFamily) []Problem {\n\tvar problems []Problem\n\tn := strings.ToLower(mf.GetName())\n\tfor _, s := range unitAbbreviations {\n\t\tif strings.Contains(n, \"_\"+s+\"_\") || strings.HasSuffix(n, \"_\"+s) {\n\t\t\tproblems = append(problems, newProblem(mf, \"metric names should not contain abbreviated units\"))\n\t\t}\n\t}\n\treturn problems\n}\n\n// metricUnits attempts to detect known unit types used as part of a metric name,\n// e.g. \"foo_bytes_total\" or \"bar_baz_milligrams\".\nfunc metricUnits(m string) (unit, base string, ok bool) {\n\tss := strings.Split(m, \"_\")\n\n\tfor _, s := range ss {\n\t\tif base, found := units[s]; found {\n\t\t\treturn s, base, true\n\t\t}\n\n\t\tfor _, p := range unitPrefixes {\n\t\t\tif strings.HasPrefix(s, p) {\n\t\t\t\tif base, found := units[s[len(p):]]; found {\n\t\t\t\t\treturn s, base, true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn \"\", \"\", false\n}\n\n// Units and their possible prefixes recognized by this library.  More can be\n// added over time as needed.\nvar (\n\t// map a unit to the appropriate base unit.\n\tunits = map[string]string{\n\t\t// Base units.\n\t\t\"amperes\": \"amperes\",\n\t\t\"bytes\":   \"bytes\",\n\t\t\"celsius\": \"celsius\", // Also allow Celsius because it is common in typical Prometheus use cases.\n\t\t\"grams\":   \"grams\",\n\t\t\"joules\":  \"joules\",\n\t\t\"kelvin\":  \"kelvin\", // SI base unit, used in special cases (e.g. color temperature, scientific measurements).\n\t\t\"meters\":  \"meters\", // Both American and international spelling permitted.\n\t\t\"metres\":  \"metres\",\n\t\t\"seconds\": \"seconds\",\n\t\t\"volts\":   \"volts\",\n\n\t\t// Non base units.\n\t\t// Time.\n\t\t\"minutes\": \"seconds\",\n\t\t\"hours\":   \"seconds\",\n\t\t\"days\":    \"seconds\",\n\t\t\"weeks\":   \"seconds\",\n\t\t// Temperature.\n\t\t\"kelvins\":    \"kelvin\",\n\t\t\"fahrenheit\": \"celsius\",\n\t\t\"rankine\":    \"celsius\",\n\t\t// Length.\n\t\t\"inches\": \"meters\",\n\t\t\"yards\":  \"meters\",\n\t\t\"miles\":  \"meters\",\n\t\t// Bytes.\n\t\t\"bits\": \"bytes\",\n\t\t// Energy.\n\t\t\"calories\": \"joules\",\n\t\t// Mass.\n\t\t\"pounds\": \"grams\",\n\t\t\"ounces\": \"grams\",\n\t}\n\n\tunitPrefixes = []string{\n\t\t\"pico\",\n\t\t\"nano\",\n\t\t\"micro\",\n\t\t\"milli\",\n\t\t\"centi\",\n\t\t\"deci\",\n\t\t\"deca\",\n\t\t\"hecto\",\n\t\t\"kilo\",\n\t\t\"kibi\",\n\t\t\"mega\",\n\t\t\"mibi\",\n\t\t\"giga\",\n\t\t\"gibi\",\n\t\t\"tera\",\n\t\t\"tebi\",\n\t\t\"peta\",\n\t\t\"pebi\",\n\t}\n\n\t// Common abbreviations that we'd like to discourage.\n\tunitAbbreviations = []string{\n\t\t\"s\",\n\t\t\"ms\",\n\t\t\"us\",\n\t\t\"ns\",\n\t\t\"sec\",\n\t\t\"b\",\n\t\t\"kb\",\n\t\t\"mb\",\n\t\t\"gb\",\n\t\t\"tb\",\n\t\t\"pb\",\n\t\t\"m\",\n\t\t\"h\",\n\t\t\"d\",\n\t}\n)\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package testutil provides helpers to test code using the prometheus package\n// of client_golang.\n//\n// While writing unit tests to verify correct instrumentation of your code, it's\n// a common mistake to mostly test the instrumentation library instead of your\n// own code. Rather than verifying that a prometheus.Counter's value has changed\n// as expected or that it shows up in the exposition after registration, it is\n// in general more robust and more faithful to the concept of unit tests to use\n// mock implementations of the prometheus.Counter and prometheus.Registerer\n// interfaces that simply assert that the Add or Register methods have been\n// called with the expected arguments. However, this might be overkill in simple\n// scenarios. The ToFloat64 function is provided for simple inspection of a\n// single-value metric, but it has to be used with caution.\n//\n// End-to-end tests to verify all or larger parts of the metrics exposition can\n// be implemented with the CollectAndCompare or GatherAndCompare functions. The\n// most appropriate use is not so much testing instrumentation of your code, but\n// testing custom prometheus.Collector implementations and in particular whole\n// exporters, i.e. programs that retrieve telemetry data from a 3rd party source\n// and convert it into Prometheus metrics.\n//\n// In a similar pattern, CollectAndLint and GatherAndLint can be used to detect\n// metrics that have issues with their name, type, or metadata without being\n// necessarily invalid, e.g. a counter with a name missing the “_total” suffix.\npackage testutil\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"reflect\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"github.com/prometheus/common/expfmt\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n)\n\n// ToFloat64 collects all Metrics from the provided Collector. It expects that\n// this results in exactly one Metric being collected, which must be a Gauge,\n// Counter, or Untyped. In all other cases, ToFloat64 panics. ToFloat64 returns\n// the value of the collected Metric.\n//\n// The Collector provided is typically a simple instance of Gauge or Counter, or\n// – less commonly – a GaugeVec or CounterVec with exactly one element. But any\n// Collector fulfilling the prerequisites described above will do.\n//\n// Use this function with caution. It is computationally very expensive and thus\n// not suited at all to read values from Metrics in regular code. This is really\n// only for testing purposes, and even for testing, other approaches are often\n// more appropriate (see this package's documentation).\n//\n// A clear anti-pattern would be to use a metric type from the prometheus\n// package to track values that are also needed for something else than the\n// exposition of Prometheus metrics. For example, you would like to track the\n// number of items in a queue because your code should reject queuing further\n// items if a certain limit is reached. It is tempting to track the number of\n// items in a prometheus.Gauge, as it is then easily available as a metric for\n// exposition, too. However, then you would need to call ToFloat64 in your\n// regular code, potentially quite often. The recommended way is to track the\n// number of items conventionally (in the way you would have done it without\n// considering Prometheus metrics) and then expose the number with a\n// prometheus.GaugeFunc.\nfunc ToFloat64(c prometheus.Collector) float64 {\n\tvar (\n\t\tm      prometheus.Metric\n\t\tmCount int\n\t\tmChan  = make(chan prometheus.Metric)\n\t\tdone   = make(chan struct{})\n\t)\n\n\tgo func() {\n\t\tfor m = range mChan {\n\t\t\tmCount++\n\t\t}\n\t\tclose(done)\n\t}()\n\n\tc.Collect(mChan)\n\tclose(mChan)\n\t<-done\n\n\tif mCount != 1 {\n\t\tpanic(fmt.Errorf(\"collected %d metrics instead of exactly 1\", mCount))\n\t}\n\n\tpb := &dto.Metric{}\n\tif err := m.Write(pb); err != nil {\n\t\tpanic(fmt.Errorf(\"error happened while collecting metrics: %w\", err))\n\t}\n\tif pb.Gauge != nil {\n\t\treturn pb.Gauge.GetValue()\n\t}\n\tif pb.Counter != nil {\n\t\treturn pb.Counter.GetValue()\n\t}\n\tif pb.Untyped != nil {\n\t\treturn pb.Untyped.GetValue()\n\t}\n\tpanic(fmt.Errorf(\"collected a non-gauge/counter/untyped metric: %s\", pb))\n}\n\n// CollectAndCount registers the provided Collector with a newly created\n// pedantic Registry. It then calls GatherAndCount with that Registry and with\n// the provided metricNames. In the unlikely case that the registration or the\n// gathering fails, this function panics. (This is inconsistent with the other\n// CollectAnd… functions in this package and has historical reasons. Changing\n// the function signature would be a breaking change and will therefore only\n// happen with the next major version bump.)\nfunc CollectAndCount(c prometheus.Collector, metricNames ...string) int {\n\treg := prometheus.NewPedanticRegistry()\n\tif err := reg.Register(c); err != nil {\n\t\tpanic(fmt.Errorf(\"registering collector failed: %w\", err))\n\t}\n\tresult, err := GatherAndCount(reg, metricNames...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn result\n}\n\n// GatherAndCount gathers all metrics from the provided Gatherer and counts\n// them. It returns the number of metric children in all gathered metric\n// families together. If any metricNames are provided, only metrics with those\n// names are counted.\nfunc GatherAndCount(g prometheus.Gatherer, metricNames ...string) (int, error) {\n\tgot, err := g.Gather()\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"gathering metrics failed: %w\", err)\n\t}\n\tif metricNames != nil {\n\t\tgot = filterMetrics(got, metricNames)\n\t}\n\n\tresult := 0\n\tfor _, mf := range got {\n\t\tresult += len(mf.GetMetric())\n\t}\n\treturn result, nil\n}\n\n// ScrapeAndCompare calls a remote exporter's endpoint which is expected to return some metrics in\n// plain text format. Then it compares it with the results that the `expected` would return.\n// If the `metricNames` is not empty it would filter the comparison only to the given metric names.\nfunc ScrapeAndCompare(url string, expected io.Reader, metricNames ...string) error {\n\tresp, err := http.Get(url)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"scraping metrics failed: %w\", err)\n\t}\n\tdefer resp.Body.Close()\n\n\tif resp.StatusCode != http.StatusOK {\n\t\treturn fmt.Errorf(\"the scraping target returned a status code other than 200: %d\",\n\t\t\tresp.StatusCode)\n\t}\n\n\tscraped, err := convertReaderToMetricFamily(resp.Body)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\twanted, err := convertReaderToMetricFamily(expected)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn compareMetricFamilies(scraped, wanted, metricNames...)\n}\n\n// CollectAndCompare registers the provided Collector with a newly created\n// pedantic Registry. It then calls GatherAndCompare with that Registry and with\n// the provided metricNames.\nfunc CollectAndCompare(c prometheus.Collector, expected io.Reader, metricNames ...string) error {\n\treg := prometheus.NewPedanticRegistry()\n\tif err := reg.Register(c); err != nil {\n\t\treturn fmt.Errorf(\"registering collector failed: %w\", err)\n\t}\n\treturn GatherAndCompare(reg, expected, metricNames...)\n}\n\n// GatherAndCompare gathers all metrics from the provided Gatherer and compares\n// it to an expected output read from the provided Reader in the Prometheus text\n// exposition format. If any metricNames are provided, only metrics with those\n// names are compared.\nfunc GatherAndCompare(g prometheus.Gatherer, expected io.Reader, metricNames ...string) error {\n\treturn TransactionalGatherAndCompare(prometheus.ToTransactionalGatherer(g), expected, metricNames...)\n}\n\n// TransactionalGatherAndCompare gathers all metrics from the provided Gatherer and compares\n// it to an expected output read from the provided Reader in the Prometheus text\n// exposition format. If any metricNames are provided, only metrics with those\n// names are compared.\nfunc TransactionalGatherAndCompare(g prometheus.TransactionalGatherer, expected io.Reader, metricNames ...string) error {\n\tgot, done, err := g.Gather()\n\tdefer done()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"gathering metrics failed: %w\", err)\n\t}\n\n\twanted, err := convertReaderToMetricFamily(expected)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn compareMetricFamilies(got, wanted, metricNames...)\n}\n\n// convertReaderToMetricFamily would read from a io.Reader object and convert it to a slice of\n// dto.MetricFamily.\nfunc convertReaderToMetricFamily(reader io.Reader) ([]*dto.MetricFamily, error) {\n\tvar tp expfmt.TextParser\n\tnotNormalized, err := tp.TextToMetricFamilies(reader)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"converting reader to metric families failed: %w\", err)\n\t}\n\n\treturn internal.NormalizeMetricFamilies(notNormalized), nil\n}\n\n// compareMetricFamilies would compare 2 slices of metric families, and optionally filters both of\n// them to the `metricNames` provided.\nfunc compareMetricFamilies(got, expected []*dto.MetricFamily, metricNames ...string) error {\n\tif metricNames != nil {\n\t\tgot = filterMetrics(got, metricNames)\n\t\texpected = filterMetrics(expected, metricNames)\n\t}\n\n\treturn compare(got, expected)\n}\n\n// compare encodes both provided slices of metric families into the text format,\n// compares their string message, and returns an error if they do not match.\n// The error contains the encoded text of both the desired and the actual\n// result.\nfunc compare(got, want []*dto.MetricFamily) error {\n\tvar gotBuf, wantBuf bytes.Buffer\n\tenc := expfmt.NewEncoder(&gotBuf, expfmt.FmtText)\n\tfor _, mf := range got {\n\t\tif err := enc.Encode(mf); err != nil {\n\t\t\treturn fmt.Errorf(\"encoding gathered metrics failed: %w\", err)\n\t\t}\n\t}\n\tenc = expfmt.NewEncoder(&wantBuf, expfmt.FmtText)\n\tfor _, mf := range want {\n\t\tif err := enc.Encode(mf); err != nil {\n\t\t\treturn fmt.Errorf(\"encoding expected metrics failed: %w\", err)\n\t\t}\n\t}\n\tif diffErr := diff(wantBuf, gotBuf); diffErr != \"\" {\n\t\treturn fmt.Errorf(diffErr)\n\t}\n\treturn nil\n}\n\n// diff returns a diff of both values as long as both are of the same type and\n// are a struct, map, slice, array or string. Otherwise it returns an empty string.\nfunc diff(expected, actual interface{}) string {\n\tif expected == nil || actual == nil {\n\t\treturn \"\"\n\t}\n\n\tet, ek := typeAndKind(expected)\n\tat, _ := typeAndKind(actual)\n\tif et != at {\n\t\treturn \"\"\n\t}\n\n\tif ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String {\n\t\treturn \"\"\n\t}\n\n\tvar e, a string\n\tc := spew.ConfigState{\n\t\tIndent:                  \" \",\n\t\tDisablePointerAddresses: true,\n\t\tDisableCapacities:       true,\n\t\tSortKeys:                true,\n\t}\n\tif et != reflect.TypeOf(\"\") {\n\t\te = c.Sdump(expected)\n\t\ta = c.Sdump(actual)\n\t} else {\n\t\te = reflect.ValueOf(expected).String()\n\t\ta = reflect.ValueOf(actual).String()\n\t}\n\n\tdiff, _ := internal.GetUnifiedDiffString(internal.UnifiedDiff{\n\t\tA:        internal.SplitLines(e),\n\t\tB:        internal.SplitLines(a),\n\t\tFromFile: \"metric output does not match expectation; want\",\n\t\tFromDate: \"\",\n\t\tToFile:   \"got:\",\n\t\tToDate:   \"\",\n\t\tContext:  1,\n\t})\n\n\tif diff == \"\" {\n\t\treturn \"\"\n\t}\n\n\treturn \"\\n\\nDiff:\\n\" + diff\n}\n\n// typeAndKind returns the type and kind of the given interface{}\nfunc typeAndKind(v interface{}) (reflect.Type, reflect.Kind) {\n\tt := reflect.TypeOf(v)\n\tk := t.Kind()\n\n\tif k == reflect.Ptr {\n\t\tt = t.Elem()\n\t\tk = t.Kind()\n\t}\n\treturn t, k\n}\n\nfunc filterMetrics(metrics []*dto.MetricFamily, names []string) []*dto.MetricFamily {\n\tvar filtered []*dto.MetricFamily\n\tfor _, m := range metrics {\n\t\tfor _, name := range names {\n\t\t\tif m.GetName() == name {\n\t\t\t\tfiltered = append(filtered, m)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn filtered\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/timer.go",
    "content": "// Copyright 2016 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport \"time\"\n\n// Timer is a helper type to time functions. Use NewTimer to create new\n// instances.\ntype Timer struct {\n\tbegin    time.Time\n\tobserver Observer\n}\n\n// NewTimer creates a new Timer. The provided Observer is used to observe a\n// duration in seconds. If the Observer implements ExemplarObserver, passing exemplar\n// later on will be also supported.\n// Timer is usually used to time a function call in the\n// following way:\n//\n//\tfunc TimeMe() {\n//\t    timer := NewTimer(myHistogram)\n//\t    defer timer.ObserveDuration()\n//\t    // Do actual work.\n//\t}\n//\n// or\n//\n//\tfunc TimeMeWithExemplar() {\n//\t\t    timer := NewTimer(myHistogram)\n//\t\t    defer timer.ObserveDurationWithExemplar(exemplar)\n//\t\t    // Do actual work.\n//\t\t}\nfunc NewTimer(o Observer) *Timer {\n\treturn &Timer{\n\t\tbegin:    time.Now(),\n\t\tobserver: o,\n\t}\n}\n\n// ObserveDuration records the duration passed since the Timer was created with\n// NewTimer. It calls the Observe method of the Observer provided during\n// construction with the duration in seconds as an argument. The observed\n// duration is also returned. ObserveDuration is usually called with a defer\n// statement.\n//\n// Note that this method is only guaranteed to never observe negative durations\n// if used with Go1.9+.\nfunc (t *Timer) ObserveDuration() time.Duration {\n\td := time.Since(t.begin)\n\tif t.observer != nil {\n\t\tt.observer.Observe(d.Seconds())\n\t}\n\treturn d\n}\n\n// ObserveDurationWithExemplar is like ObserveDuration, but it will also\n// observe exemplar with the duration unless exemplar is nil or provided Observer can't\n// be casted to ExemplarObserver.\nfunc (t *Timer) ObserveDurationWithExemplar(exemplar Labels) time.Duration {\n\td := time.Since(t.begin)\n\teo, ok := t.observer.(ExemplarObserver)\n\tif ok && exemplar != nil {\n\t\teo.ObserveWithExemplar(d.Seconds(), exemplar)\n\t\treturn d\n\t}\n\tif t.observer != nil {\n\t\tt.observer.Observe(d.Seconds())\n\t}\n\treturn d\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/untyped.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\n// UntypedOpts is an alias for Opts. See there for doc comments.\ntype UntypedOpts Opts\n\n// UntypedFunc works like GaugeFunc but the collected metric is of type\n// \"Untyped\". UntypedFunc is useful to mirror an external metric of unknown\n// type.\n//\n// To create UntypedFunc instances, use NewUntypedFunc.\ntype UntypedFunc interface {\n\tMetric\n\tCollector\n}\n\n// NewUntypedFunc creates a new UntypedFunc based on the provided\n// UntypedOpts. The value reported is determined by calling the given function\n// from within the Write method. Take into account that metric collection may\n// happen concurrently. If that results in concurrent calls to Write, like in\n// the case where an UntypedFunc is directly registered with Prometheus, the\n// provided function must be concurrency-safe.\nfunc NewUntypedFunc(opts UntypedOpts, function func() float64) UntypedFunc {\n\treturn newValueFunc(NewDesc(\n\t\tBuildFQName(opts.Namespace, opts.Subsystem, opts.Name),\n\t\topts.Help,\n\t\tnil,\n\t\topts.ConstLabels,\n\t), UntypedValue, function)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/value.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n)\n\n// ValueType is an enumeration of metric types that represent a simple value.\ntype ValueType int\n\n// Possible values for the ValueType enum. Use UntypedValue to mark a metric\n// with an unknown type.\nconst (\n\t_ ValueType = iota\n\tCounterValue\n\tGaugeValue\n\tUntypedValue\n)\n\nvar (\n\tCounterMetricTypePtr = func() *dto.MetricType { d := dto.MetricType_COUNTER; return &d }()\n\tGaugeMetricTypePtr   = func() *dto.MetricType { d := dto.MetricType_GAUGE; return &d }()\n\tUntypedMetricTypePtr = func() *dto.MetricType { d := dto.MetricType_UNTYPED; return &d }()\n)\n\nfunc (v ValueType) ToDTO() *dto.MetricType {\n\tswitch v {\n\tcase CounterValue:\n\t\treturn CounterMetricTypePtr\n\tcase GaugeValue:\n\t\treturn GaugeMetricTypePtr\n\tdefault:\n\t\treturn UntypedMetricTypePtr\n\t}\n}\n\n// valueFunc is a generic metric for simple values retrieved on collect time\n// from a function. It implements Metric and Collector. Its effective type is\n// determined by ValueType. This is a low-level building block used by the\n// library to back the implementations of CounterFunc, GaugeFunc, and\n// UntypedFunc.\ntype valueFunc struct {\n\tselfCollector\n\n\tdesc       *Desc\n\tvalType    ValueType\n\tfunction   func() float64\n\tlabelPairs []*dto.LabelPair\n}\n\n// newValueFunc returns a newly allocated valueFunc with the given Desc and\n// ValueType. The value reported is determined by calling the given function\n// from within the Write method. Take into account that metric collection may\n// happen concurrently. If that results in concurrent calls to Write, like in\n// the case where a valueFunc is directly registered with Prometheus, the\n// provided function must be concurrency-safe.\nfunc newValueFunc(desc *Desc, valueType ValueType, function func() float64) *valueFunc {\n\tresult := &valueFunc{\n\t\tdesc:       desc,\n\t\tvalType:    valueType,\n\t\tfunction:   function,\n\t\tlabelPairs: MakeLabelPairs(desc, nil),\n\t}\n\tresult.init(result)\n\treturn result\n}\n\nfunc (v *valueFunc) Desc() *Desc {\n\treturn v.desc\n}\n\nfunc (v *valueFunc) Write(out *dto.Metric) error {\n\treturn populateMetric(v.valType, v.function(), v.labelPairs, nil, out)\n}\n\n// NewConstMetric returns a metric with one fixed value that cannot be\n// changed. Users of this package will not have much use for it in regular\n// operations. However, when implementing custom Collectors, it is useful as a\n// throw-away metric that is generated on the fly to send it to Prometheus in\n// the Collect method. NewConstMetric returns an error if the length of\n// labelValues is not consistent with the variable labels in Desc or if Desc is\n// invalid.\nfunc NewConstMetric(desc *Desc, valueType ValueType, value float64, labelValues ...string) (Metric, error) {\n\tif desc.err != nil {\n\t\treturn nil, desc.err\n\t}\n\tif err := validateLabelValues(labelValues, len(desc.variableLabels)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmetric := &dto.Metric{}\n\tif err := populateMetric(valueType, value, MakeLabelPairs(desc, labelValues), nil, metric); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &constMetric{\n\t\tdesc:   desc,\n\t\tmetric: metric,\n\t}, nil\n}\n\n// MustNewConstMetric is a version of NewConstMetric that panics where\n// NewConstMetric would have returned an error.\nfunc MustNewConstMetric(desc *Desc, valueType ValueType, value float64, labelValues ...string) Metric {\n\tm, err := NewConstMetric(desc, valueType, value, labelValues...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn m\n}\n\ntype constMetric struct {\n\tdesc   *Desc\n\tmetric *dto.Metric\n}\n\nfunc (m *constMetric) Desc() *Desc {\n\treturn m.desc\n}\n\nfunc (m *constMetric) Write(out *dto.Metric) error {\n\tout.Label = m.metric.Label\n\tout.Counter = m.metric.Counter\n\tout.Gauge = m.metric.Gauge\n\tout.Untyped = m.metric.Untyped\n\treturn nil\n}\n\nfunc populateMetric(\n\tt ValueType,\n\tv float64,\n\tlabelPairs []*dto.LabelPair,\n\te *dto.Exemplar,\n\tm *dto.Metric,\n) error {\n\tm.Label = labelPairs\n\tswitch t {\n\tcase CounterValue:\n\t\tm.Counter = &dto.Counter{Value: proto.Float64(v), Exemplar: e}\n\tcase GaugeValue:\n\t\tm.Gauge = &dto.Gauge{Value: proto.Float64(v)}\n\tcase UntypedValue:\n\t\tm.Untyped = &dto.Untyped{Value: proto.Float64(v)}\n\tdefault:\n\t\treturn fmt.Errorf(\"encountered unknown type %v\", t)\n\t}\n\treturn nil\n}\n\n// MakeLabelPairs is a helper function to create protobuf LabelPairs from the\n// variable and constant labels in the provided Desc. The values for the\n// variable labels are defined by the labelValues slice, which must be in the\n// same order as the corresponding variable labels in the Desc.\n//\n// This function is only needed for custom Metric implementations. See MetricVec\n// example.\nfunc MakeLabelPairs(desc *Desc, labelValues []string) []*dto.LabelPair {\n\ttotalLen := len(desc.variableLabels) + len(desc.constLabelPairs)\n\tif totalLen == 0 {\n\t\t// Super fast path.\n\t\treturn nil\n\t}\n\tif len(desc.variableLabels) == 0 {\n\t\t// Moderately fast path.\n\t\treturn desc.constLabelPairs\n\t}\n\tlabelPairs := make([]*dto.LabelPair, 0, totalLen)\n\tfor i, l := range desc.variableLabels {\n\t\tlabelPairs = append(labelPairs, &dto.LabelPair{\n\t\t\tName:  proto.String(l.Name),\n\t\t\tValue: proto.String(labelValues[i]),\n\t\t})\n\t}\n\tlabelPairs = append(labelPairs, desc.constLabelPairs...)\n\tsort.Sort(internal.LabelPairSorter(labelPairs))\n\treturn labelPairs\n}\n\n// ExemplarMaxRunes is the max total number of runes allowed in exemplar labels.\nconst ExemplarMaxRunes = 128\n\n// newExemplar creates a new dto.Exemplar from the provided values. An error is\n// returned if any of the label names or values are invalid or if the total\n// number of runes in the label names and values exceeds ExemplarMaxRunes.\nfunc newExemplar(value float64, ts time.Time, l Labels) (*dto.Exemplar, error) {\n\te := &dto.Exemplar{}\n\te.Value = proto.Float64(value)\n\ttsProto := timestamppb.New(ts)\n\tif err := tsProto.CheckValid(); err != nil {\n\t\treturn nil, err\n\t}\n\te.Timestamp = tsProto\n\tlabelPairs := make([]*dto.LabelPair, 0, len(l))\n\tvar runes int\n\tfor name, value := range l {\n\t\tif !checkLabelName(name) {\n\t\t\treturn nil, fmt.Errorf(\"exemplar label name %q is invalid\", name)\n\t\t}\n\t\trunes += utf8.RuneCountInString(name)\n\t\tif !utf8.ValidString(value) {\n\t\t\treturn nil, fmt.Errorf(\"exemplar label value %q is not valid UTF-8\", value)\n\t\t}\n\t\trunes += utf8.RuneCountInString(value)\n\t\tlabelPairs = append(labelPairs, &dto.LabelPair{\n\t\t\tName:  proto.String(name),\n\t\t\tValue: proto.String(value),\n\t\t})\n\t}\n\tif runes > ExemplarMaxRunes {\n\t\treturn nil, fmt.Errorf(\"exemplar labels have %d runes, exceeding the limit of %d\", runes, ExemplarMaxRunes)\n\t}\n\te.Label = labelPairs\n\treturn e, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/vec.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/prometheus/common/model\"\n)\n\nvar labelsPool = &sync.Pool{\n\tNew: func() interface{} {\n\t\treturn make(Labels)\n\t},\n}\n\nfunc getLabelsFromPool() Labels {\n\treturn labelsPool.Get().(Labels)\n}\n\nfunc putLabelsToPool(labels Labels) {\n\tfor k := range labels {\n\t\tdelete(labels, k)\n\t}\n\n\tlabelsPool.Put(labels)\n}\n\n// MetricVec is a Collector to bundle metrics of the same name that differ in\n// their label values. MetricVec is not used directly but as a building block\n// for implementations of vectors of a given metric type, like GaugeVec,\n// CounterVec, SummaryVec, and HistogramVec. It is exported so that it can be\n// used for custom Metric implementations.\n//\n// To create a FooVec for custom Metric Foo, embed a pointer to MetricVec in\n// FooVec and initialize it with NewMetricVec. Implement wrappers for\n// GetMetricWithLabelValues and GetMetricWith that return (Foo, error) rather\n// than (Metric, error). Similarly, create a wrapper for CurryWith that returns\n// (*FooVec, error) rather than (*MetricVec, error). It is recommended to also\n// add the convenience methods WithLabelValues, With, and MustCurryWith, which\n// panic instead of returning errors. See also the MetricVec example.\ntype MetricVec struct {\n\t*metricMap\n\n\tcurry []curriedLabelValue\n\n\t// hashAdd and hashAddByte can be replaced for testing collision handling.\n\thashAdd     func(h uint64, s string) uint64\n\thashAddByte func(h uint64, b byte) uint64\n}\n\n// NewMetricVec returns an initialized metricVec.\nfunc NewMetricVec(desc *Desc, newMetric func(lvs ...string) Metric) *MetricVec {\n\treturn &MetricVec{\n\t\tmetricMap: &metricMap{\n\t\t\tmetrics:   map[uint64][]metricWithLabelValues{},\n\t\t\tdesc:      desc,\n\t\t\tnewMetric: newMetric,\n\t\t},\n\t\thashAdd:     hashAdd,\n\t\thashAddByte: hashAddByte,\n\t}\n}\n\n// DeleteLabelValues removes the metric where the variable labels are the same\n// as those passed in as labels (same order as the VariableLabels in Desc). It\n// returns true if a metric was deleted.\n//\n// It is not an error if the number of label values is not the same as the\n// number of VariableLabels in Desc. However, such inconsistent label count can\n// never match an actual metric, so the method will always return false in that\n// case.\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider Delete(Labels) as an\n// alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\n// See also the CounterVec example.\nfunc (m *MetricVec) DeleteLabelValues(lvs ...string) bool {\n\tlvs = constrainLabelValues(m.desc, lvs, m.curry)\n\th, err := m.hashLabelValues(lvs)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn m.metricMap.deleteByHashWithLabelValues(h, lvs, m.curry)\n}\n\n// Delete deletes the metric where the variable labels are the same as those\n// passed in as labels. It returns true if a metric was deleted.\n//\n// It is not an error if the number and names of the Labels are inconsistent\n// with those of the VariableLabels in Desc. However, such inconsistent Labels\n// can never match an actual metric, so the method will always return false in\n// that case.\n//\n// This method is used for the same purpose as DeleteLabelValues(...string). See\n// there for pros and cons of the two methods.\nfunc (m *MetricVec) Delete(labels Labels) bool {\n\tlabels = constrainLabels(m.desc, labels)\n\tdefer putLabelsToPool(labels)\n\n\th, err := m.hashLabels(labels)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn m.metricMap.deleteByHashWithLabels(h, labels, m.curry)\n}\n\n// DeletePartialMatch deletes all metrics where the variable labels contain all of those\n// passed in as labels. The order of the labels does not matter.\n// It returns the number of metrics deleted.\n//\n// Note that curried labels will never be matched if deleting from the curried vector.\n// To match curried labels with DeletePartialMatch, it must be called on the base vector.\nfunc (m *MetricVec) DeletePartialMatch(labels Labels) int {\n\tlabels = constrainLabels(m.desc, labels)\n\tdefer putLabelsToPool(labels)\n\n\treturn m.metricMap.deleteByLabels(labels, m.curry)\n}\n\n// Without explicit forwarding of Describe, Collect, Reset, those methods won't\n// show up in GoDoc.\n\n// Describe implements Collector.\nfunc (m *MetricVec) Describe(ch chan<- *Desc) { m.metricMap.Describe(ch) }\n\n// Collect implements Collector.\nfunc (m *MetricVec) Collect(ch chan<- Metric) { m.metricMap.Collect(ch) }\n\n// Reset deletes all metrics in this vector.\nfunc (m *MetricVec) Reset() { m.metricMap.Reset() }\n\n// CurryWith returns a vector curried with the provided labels, i.e. the\n// returned vector has those labels pre-set for all labeled operations performed\n// on it. The cardinality of the curried vector is reduced accordingly. The\n// order of the remaining labels stays the same (just with the curried labels\n// taken out of the sequence – which is relevant for the\n// (GetMetric)WithLabelValues methods). It is possible to curry a curried\n// vector, but only with labels not yet used for currying before.\n//\n// The metrics contained in the MetricVec are shared between the curried and\n// uncurried vectors. They are just accessed differently. Curried and uncurried\n// vectors behave identically in terms of collection. Only one must be\n// registered with a given registry (usually the uncurried version). The Reset\n// method deletes all metrics, even if called on a curried vector.\n//\n// Note that CurryWith is usually not called directly but through a wrapper\n// around MetricVec, implementing a vector for a specific Metric\n// implementation, for example GaugeVec.\nfunc (m *MetricVec) CurryWith(labels Labels) (*MetricVec, error) {\n\tvar (\n\t\tnewCurry []curriedLabelValue\n\t\toldCurry = m.curry\n\t\tiCurry   int\n\t)\n\tfor i, label := range m.desc.variableLabels {\n\t\tval, ok := labels[label.Name]\n\t\tif iCurry < len(oldCurry) && oldCurry[iCurry].index == i {\n\t\t\tif ok {\n\t\t\t\treturn nil, fmt.Errorf(\"label name %q is already curried\", label.Name)\n\t\t\t}\n\t\t\tnewCurry = append(newCurry, oldCurry[iCurry])\n\t\t\tiCurry++\n\t\t} else {\n\t\t\tif !ok {\n\t\t\t\tcontinue // Label stays uncurried.\n\t\t\t}\n\t\t\tnewCurry = append(newCurry, curriedLabelValue{i, label.Constrain(val)})\n\t\t}\n\t}\n\tif l := len(oldCurry) + len(labels) - len(newCurry); l > 0 {\n\t\treturn nil, fmt.Errorf(\"%d unknown label(s) found during currying\", l)\n\t}\n\n\treturn &MetricVec{\n\t\tmetricMap:   m.metricMap,\n\t\tcurry:       newCurry,\n\t\thashAdd:     m.hashAdd,\n\t\thashAddByte: m.hashAddByte,\n\t}, nil\n}\n\n// GetMetricWithLabelValues returns the Metric for the given slice of label\n// values (same order as the variable labels in Desc). If that combination of\n// label values is accessed for the first time, a new Metric is created (by\n// calling the newMetric function provided during construction of the\n// MetricVec).\n//\n// It is possible to call this method without using the returned Metric to only\n// create the new Metric but leave it in its initial state.\n//\n// Keeping the Metric for later use is possible (and should be considered if\n// performance is critical), but keep in mind that Reset, DeleteLabelValues and\n// Delete can be used to delete the Metric from the MetricVec. In that case, the\n// Metric will still exist, but it will not be exported anymore, even if a\n// Metric with the same label values is created later.\n//\n// An error is returned if the number of label values is not the same as the\n// number of variable labels in Desc (minus any curried labels).\n//\n// Note that for more than one label value, this method is prone to mistakes\n// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as\n// an alternative to avoid that type of mistake. For higher label numbers, the\n// latter has a much more readable (albeit more verbose) syntax, but it comes\n// with a performance overhead (for creating and processing the Labels map).\n//\n// Note that GetMetricWithLabelValues is usually not called directly but through\n// a wrapper around MetricVec, implementing a vector for a specific Metric\n// implementation, for example GaugeVec.\nfunc (m *MetricVec) GetMetricWithLabelValues(lvs ...string) (Metric, error) {\n\tlvs = constrainLabelValues(m.desc, lvs, m.curry)\n\th, err := m.hashLabelValues(lvs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn m.metricMap.getOrCreateMetricWithLabelValues(h, lvs, m.curry), nil\n}\n\n// GetMetricWith returns the Metric for the given Labels map (the label names\n// must match those of the variable labels in Desc). If that label map is\n// accessed for the first time, a new Metric is created. Implications of\n// creating a Metric without using it and keeping the Metric for later use\n// are the same as for GetMetricWithLabelValues.\n//\n// An error is returned if the number and names of the Labels are inconsistent\n// with those of the variable labels in Desc (minus any curried labels).\n//\n// This method is used for the same purpose as\n// GetMetricWithLabelValues(...string). See there for pros and cons of the two\n// methods.\n//\n// Note that GetMetricWith is usually not called directly but through a wrapper\n// around MetricVec, implementing a vector for a specific Metric implementation,\n// for example GaugeVec.\nfunc (m *MetricVec) GetMetricWith(labels Labels) (Metric, error) {\n\tlabels = constrainLabels(m.desc, labels)\n\tdefer putLabelsToPool(labels)\n\n\th, err := m.hashLabels(labels)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn m.metricMap.getOrCreateMetricWithLabels(h, labels, m.curry), nil\n}\n\nfunc (m *MetricVec) hashLabelValues(vals []string) (uint64, error) {\n\tif err := validateLabelValues(vals, len(m.desc.variableLabels)-len(m.curry)); err != nil {\n\t\treturn 0, err\n\t}\n\n\tvar (\n\t\th             = hashNew()\n\t\tcurry         = m.curry\n\t\tiVals, iCurry int\n\t)\n\tfor i := 0; i < len(m.desc.variableLabels); i++ {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\th = m.hashAdd(h, curry[iCurry].value)\n\t\t\tiCurry++\n\t\t} else {\n\t\t\th = m.hashAdd(h, vals[iVals])\n\t\t\tiVals++\n\t\t}\n\t\th = m.hashAddByte(h, model.SeparatorByte)\n\t}\n\treturn h, nil\n}\n\nfunc (m *MetricVec) hashLabels(labels Labels) (uint64, error) {\n\tif err := validateValuesInLabels(labels, len(m.desc.variableLabels)-len(m.curry)); err != nil {\n\t\treturn 0, err\n\t}\n\n\tvar (\n\t\th      = hashNew()\n\t\tcurry  = m.curry\n\t\tiCurry int\n\t)\n\tfor i, label := range m.desc.variableLabels {\n\t\tval, ok := labels[label.Name]\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tif ok {\n\t\t\t\treturn 0, fmt.Errorf(\"label name %q is already curried\", label.Name)\n\t\t\t}\n\t\t\th = m.hashAdd(h, curry[iCurry].value)\n\t\t\tiCurry++\n\t\t} else {\n\t\t\tif !ok {\n\t\t\t\treturn 0, fmt.Errorf(\"label name %q missing in label map\", label.Name)\n\t\t\t}\n\t\t\th = m.hashAdd(h, val)\n\t\t}\n\t\th = m.hashAddByte(h, model.SeparatorByte)\n\t}\n\treturn h, nil\n}\n\n// metricWithLabelValues provides the metric and its label values for\n// disambiguation on hash collision.\ntype metricWithLabelValues struct {\n\tvalues []string\n\tmetric Metric\n}\n\n// curriedLabelValue sets the curried value for a label at the given index.\ntype curriedLabelValue struct {\n\tindex int\n\tvalue string\n}\n\n// metricMap is a helper for metricVec and shared between differently curried\n// metricVecs.\ntype metricMap struct {\n\tmtx       sync.RWMutex // Protects metrics.\n\tmetrics   map[uint64][]metricWithLabelValues\n\tdesc      *Desc\n\tnewMetric func(labelValues ...string) Metric\n}\n\n// Describe implements Collector. It will send exactly one Desc to the provided\n// channel.\nfunc (m *metricMap) Describe(ch chan<- *Desc) {\n\tch <- m.desc\n}\n\n// Collect implements Collector.\nfunc (m *metricMap) Collect(ch chan<- Metric) {\n\tm.mtx.RLock()\n\tdefer m.mtx.RUnlock()\n\n\tfor _, metrics := range m.metrics {\n\t\tfor _, metric := range metrics {\n\t\t\tch <- metric.metric\n\t\t}\n\t}\n}\n\n// Reset deletes all metrics in this vector.\nfunc (m *metricMap) Reset() {\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\tfor h := range m.metrics {\n\t\tdelete(m.metrics, h)\n\t}\n}\n\n// deleteByHashWithLabelValues removes the metric from the hash bucket h. If\n// there are multiple matches in the bucket, use lvs to select a metric and\n// remove only that metric.\nfunc (m *metricMap) deleteByHashWithLabelValues(\n\th uint64, lvs []string, curry []curriedLabelValue,\n) bool {\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\tmetrics, ok := m.metrics[h]\n\tif !ok {\n\t\treturn false\n\t}\n\n\ti := findMetricWithLabelValues(metrics, lvs, curry)\n\tif i >= len(metrics) {\n\t\treturn false\n\t}\n\n\tif len(metrics) > 1 {\n\t\told := metrics\n\t\tm.metrics[h] = append(metrics[:i], metrics[i+1:]...)\n\t\told[len(old)-1] = metricWithLabelValues{}\n\t} else {\n\t\tdelete(m.metrics, h)\n\t}\n\treturn true\n}\n\n// deleteByHashWithLabels removes the metric from the hash bucket h. If there\n// are multiple matches in the bucket, use lvs to select a metric and remove\n// only that metric.\nfunc (m *metricMap) deleteByHashWithLabels(\n\th uint64, labels Labels, curry []curriedLabelValue,\n) bool {\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\tmetrics, ok := m.metrics[h]\n\tif !ok {\n\t\treturn false\n\t}\n\ti := findMetricWithLabels(m.desc, metrics, labels, curry)\n\tif i >= len(metrics) {\n\t\treturn false\n\t}\n\n\tif len(metrics) > 1 {\n\t\told := metrics\n\t\tm.metrics[h] = append(metrics[:i], metrics[i+1:]...)\n\t\told[len(old)-1] = metricWithLabelValues{}\n\t} else {\n\t\tdelete(m.metrics, h)\n\t}\n\treturn true\n}\n\n// deleteByLabels deletes a metric if the given labels are present in the metric.\nfunc (m *metricMap) deleteByLabels(labels Labels, curry []curriedLabelValue) int {\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\tvar numDeleted int\n\n\tfor h, metrics := range m.metrics {\n\t\ti := findMetricWithPartialLabels(m.desc, metrics, labels, curry)\n\t\tif i >= len(metrics) {\n\t\t\t// Didn't find matching labels in this metric slice.\n\t\t\tcontinue\n\t\t}\n\t\tdelete(m.metrics, h)\n\t\tnumDeleted++\n\t}\n\n\treturn numDeleted\n}\n\n// findMetricWithPartialLabel returns the index of the matching metric or\n// len(metrics) if not found.\nfunc findMetricWithPartialLabels(\n\tdesc *Desc, metrics []metricWithLabelValues, labels Labels, curry []curriedLabelValue,\n) int {\n\tfor i, metric := range metrics {\n\t\tif matchPartialLabels(desc, metric.values, labels, curry) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(metrics)\n}\n\n// indexOf searches the given slice of strings for the target string and returns\n// the index or len(items) as well as a boolean whether the search succeeded.\nfunc indexOf(target string, items []string) (int, bool) {\n\tfor i, l := range items {\n\t\tif l == target {\n\t\t\treturn i, true\n\t\t}\n\t}\n\treturn len(items), false\n}\n\n// valueMatchesVariableOrCurriedValue determines if a value was previously curried,\n// and returns whether it matches either the \"base\" value or the curried value accordingly.\n// It also indicates whether the match is against a curried or uncurried value.\nfunc valueMatchesVariableOrCurriedValue(targetValue string, index int, values []string, curry []curriedLabelValue) (bool, bool) {\n\tfor _, curriedValue := range curry {\n\t\tif curriedValue.index == index {\n\t\t\t// This label was curried. See if the curried value matches our target.\n\t\t\treturn curriedValue.value == targetValue, true\n\t\t}\n\t}\n\t// This label was not curried. See if the current value matches our target label.\n\treturn values[index] == targetValue, false\n}\n\n// matchPartialLabels searches the current metric and returns whether all of the target label:value pairs are present.\nfunc matchPartialLabels(desc *Desc, values []string, labels Labels, curry []curriedLabelValue) bool {\n\tfor l, v := range labels {\n\t\t// Check if the target label exists in our metrics and get the index.\n\t\tvarLabelIndex, validLabel := indexOf(l, desc.variableLabels.labelNames())\n\t\tif validLabel {\n\t\t\t// Check the value of that label against the target value.\n\t\t\t// We don't consider curried values in partial matches.\n\t\t\tmatches, curried := valueMatchesVariableOrCurriedValue(v, varLabelIndex, values, curry)\n\t\t\tif matches && !curried {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\treturn true\n}\n\n// getOrCreateMetricWithLabelValues retrieves the metric by hash and label value\n// or creates it and returns the new one.\n//\n// This function holds the mutex.\nfunc (m *metricMap) getOrCreateMetricWithLabelValues(\n\thash uint64, lvs []string, curry []curriedLabelValue,\n) Metric {\n\tm.mtx.RLock()\n\tmetric, ok := m.getMetricWithHashAndLabelValues(hash, lvs, curry)\n\tm.mtx.RUnlock()\n\tif ok {\n\t\treturn metric\n\t}\n\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\tmetric, ok = m.getMetricWithHashAndLabelValues(hash, lvs, curry)\n\tif !ok {\n\t\tinlinedLVs := inlineLabelValues(lvs, curry)\n\t\tmetric = m.newMetric(inlinedLVs...)\n\t\tm.metrics[hash] = append(m.metrics[hash], metricWithLabelValues{values: inlinedLVs, metric: metric})\n\t}\n\treturn metric\n}\n\n// getOrCreateMetricWithLabelValues retrieves the metric by hash and label value\n// or creates it and returns the new one.\n//\n// This function holds the mutex.\nfunc (m *metricMap) getOrCreateMetricWithLabels(\n\thash uint64, labels Labels, curry []curriedLabelValue,\n) Metric {\n\tm.mtx.RLock()\n\tmetric, ok := m.getMetricWithHashAndLabels(hash, labels, curry)\n\tm.mtx.RUnlock()\n\tif ok {\n\t\treturn metric\n\t}\n\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\tmetric, ok = m.getMetricWithHashAndLabels(hash, labels, curry)\n\tif !ok {\n\t\tlvs := extractLabelValues(m.desc, labels, curry)\n\t\tmetric = m.newMetric(lvs...)\n\t\tm.metrics[hash] = append(m.metrics[hash], metricWithLabelValues{values: lvs, metric: metric})\n\t}\n\treturn metric\n}\n\n// getMetricWithHashAndLabelValues gets a metric while handling possible\n// collisions in the hash space. Must be called while holding the read mutex.\nfunc (m *metricMap) getMetricWithHashAndLabelValues(\n\th uint64, lvs []string, curry []curriedLabelValue,\n) (Metric, bool) {\n\tmetrics, ok := m.metrics[h]\n\tif ok {\n\t\tif i := findMetricWithLabelValues(metrics, lvs, curry); i < len(metrics) {\n\t\t\treturn metrics[i].metric, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// getMetricWithHashAndLabels gets a metric while handling possible collisions in\n// the hash space. Must be called while holding read mutex.\nfunc (m *metricMap) getMetricWithHashAndLabels(\n\th uint64, labels Labels, curry []curriedLabelValue,\n) (Metric, bool) {\n\tmetrics, ok := m.metrics[h]\n\tif ok {\n\t\tif i := findMetricWithLabels(m.desc, metrics, labels, curry); i < len(metrics) {\n\t\t\treturn metrics[i].metric, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// findMetricWithLabelValues returns the index of the matching metric or\n// len(metrics) if not found.\nfunc findMetricWithLabelValues(\n\tmetrics []metricWithLabelValues, lvs []string, curry []curriedLabelValue,\n) int {\n\tfor i, metric := range metrics {\n\t\tif matchLabelValues(metric.values, lvs, curry) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(metrics)\n}\n\n// findMetricWithLabels returns the index of the matching metric or len(metrics)\n// if not found.\nfunc findMetricWithLabels(\n\tdesc *Desc, metrics []metricWithLabelValues, labels Labels, curry []curriedLabelValue,\n) int {\n\tfor i, metric := range metrics {\n\t\tif matchLabels(desc, metric.values, labels, curry) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(metrics)\n}\n\nfunc matchLabelValues(values, lvs []string, curry []curriedLabelValue) bool {\n\tif len(values) != len(lvs)+len(curry) {\n\t\treturn false\n\t}\n\tvar iLVs, iCurry int\n\tfor i, v := range values {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tif v != curry[iCurry].value {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tiCurry++\n\t\t\tcontinue\n\t\t}\n\t\tif v != lvs[iLVs] {\n\t\t\treturn false\n\t\t}\n\t\tiLVs++\n\t}\n\treturn true\n}\n\nfunc matchLabels(desc *Desc, values []string, labels Labels, curry []curriedLabelValue) bool {\n\tif len(values) != len(labels)+len(curry) {\n\t\treturn false\n\t}\n\tiCurry := 0\n\tfor i, k := range desc.variableLabels {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tif values[i] != curry[iCurry].value {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tiCurry++\n\t\t\tcontinue\n\t\t}\n\t\tif values[i] != labels[k.Name] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc extractLabelValues(desc *Desc, labels Labels, curry []curriedLabelValue) []string {\n\tlabelValues := make([]string, len(labels)+len(curry))\n\tiCurry := 0\n\tfor i, k := range desc.variableLabels {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tlabelValues[i] = curry[iCurry].value\n\t\t\tiCurry++\n\t\t\tcontinue\n\t\t}\n\t\tlabelValues[i] = labels[k.Name]\n\t}\n\treturn labelValues\n}\n\nfunc inlineLabelValues(lvs []string, curry []curriedLabelValue) []string {\n\tlabelValues := make([]string, len(lvs)+len(curry))\n\tvar iCurry, iLVs int\n\tfor i := range labelValues {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tlabelValues[i] = curry[iCurry].value\n\t\t\tiCurry++\n\t\t\tcontinue\n\t\t}\n\t\tlabelValues[i] = lvs[iLVs]\n\t\tiLVs++\n\t}\n\treturn labelValues\n}\n\nfunc constrainLabels(desc *Desc, labels Labels) Labels {\n\tconstrainedLabels := getLabelsFromPool()\n\tfor l, v := range labels {\n\t\tif i, ok := indexOf(l, desc.variableLabels.labelNames()); ok {\n\t\t\tv = desc.variableLabels[i].Constrain(v)\n\t\t}\n\n\t\tconstrainedLabels[l] = v\n\t}\n\n\treturn constrainedLabels\n}\n\nfunc constrainLabelValues(desc *Desc, lvs []string, curry []curriedLabelValue) []string {\n\tconstrainedValues := make([]string, len(lvs))\n\tvar iCurry, iLVs int\n\tfor i := 0; i < len(lvs)+len(curry); i++ {\n\t\tif iCurry < len(curry) && curry[iCurry].index == i {\n\t\t\tiCurry++\n\t\t\tcontinue\n\t\t}\n\n\t\tif i < len(desc.variableLabels) {\n\t\t\tconstrainedValues[iLVs] = desc.variableLabels[i].Constrain(lvs[iLVs])\n\t\t} else {\n\t\t\tconstrainedValues[iLVs] = lvs[iLVs]\n\t\t}\n\t\tiLVs++\n\t}\n\treturn constrainedValues\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/vnext.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\ntype v2 struct{}\n\n// V2 is a struct that can be referenced to access experimental API that might\n// be present in v2 of client golang someday. It offers extended functionality\n// of v1 with slightly changed API. It is acceptable to use some pieces from v1\n// and e.g `prometheus.NewGauge` and some from v2 e.g. `prometheus.V2.NewDesc`\n// in the same codebase.\nvar V2 = v2{}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_golang/prometheus/wrap.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage prometheus\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"github.com/prometheus/client_golang/prometheus/internal\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// WrapRegistererWith returns a Registerer wrapping the provided\n// Registerer. Collectors registered with the returned Registerer will be\n// registered with the wrapped Registerer in a modified way. The modified\n// Collector adds the provided Labels to all Metrics it collects (as\n// ConstLabels). The Metrics collected by the unmodified Collector must not\n// duplicate any of those labels. Wrapping a nil value is valid, resulting\n// in a no-op Registerer.\n//\n// WrapRegistererWith provides a way to add fixed labels to a subset of\n// Collectors. It should not be used to add fixed labels to all metrics\n// exposed. See also\n// https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels\n//\n// Conflicts between Collectors registered through the original Registerer with\n// Collectors registered through the wrapping Registerer will still be\n// detected. Any AlreadyRegisteredError returned by the Register method of\n// either Registerer will contain the ExistingCollector in the form it was\n// provided to the respective registry.\n//\n// The Collector example demonstrates a use of WrapRegistererWith.\nfunc WrapRegistererWith(labels Labels, reg Registerer) Registerer {\n\treturn &wrappingRegisterer{\n\t\twrappedRegisterer: reg,\n\t\tlabels:            labels,\n\t}\n}\n\n// WrapRegistererWithPrefix returns a Registerer wrapping the provided\n// Registerer. Collectors registered with the returned Registerer will be\n// registered with the wrapped Registerer in a modified way. The modified\n// Collector adds the provided prefix to the name of all Metrics it collects.\n// Wrapping a nil value is valid, resulting in a no-op Registerer.\n//\n// WrapRegistererWithPrefix is useful to have one place to prefix all metrics of\n// a sub-system. To make this work, register metrics of the sub-system with the\n// wrapping Registerer returned by WrapRegistererWithPrefix. It is rarely useful\n// to use the same prefix for all metrics exposed. In particular, do not prefix\n// metric names that are standardized across applications, as that would break\n// horizontal monitoring, for example the metrics provided by the Go collector\n// (see NewGoCollector) and the process collector (see NewProcessCollector). (In\n// fact, those metrics are already prefixed with “go_” or “process_”,\n// respectively.)\n//\n// Conflicts between Collectors registered through the original Registerer with\n// Collectors registered through the wrapping Registerer will still be\n// detected. Any AlreadyRegisteredError returned by the Register method of\n// either Registerer will contain the ExistingCollector in the form it was\n// provided to the respective registry.\nfunc WrapRegistererWithPrefix(prefix string, reg Registerer) Registerer {\n\treturn &wrappingRegisterer{\n\t\twrappedRegisterer: reg,\n\t\tprefix:            prefix,\n\t}\n}\n\ntype wrappingRegisterer struct {\n\twrappedRegisterer Registerer\n\tprefix            string\n\tlabels            Labels\n}\n\nfunc (r *wrappingRegisterer) Register(c Collector) error {\n\tif r.wrappedRegisterer == nil {\n\t\treturn nil\n\t}\n\treturn r.wrappedRegisterer.Register(&wrappingCollector{\n\t\twrappedCollector: c,\n\t\tprefix:           r.prefix,\n\t\tlabels:           r.labels,\n\t})\n}\n\nfunc (r *wrappingRegisterer) MustRegister(cs ...Collector) {\n\tif r.wrappedRegisterer == nil {\n\t\treturn\n\t}\n\tfor _, c := range cs {\n\t\tif err := r.Register(c); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\nfunc (r *wrappingRegisterer) Unregister(c Collector) bool {\n\tif r.wrappedRegisterer == nil {\n\t\treturn false\n\t}\n\treturn r.wrappedRegisterer.Unregister(&wrappingCollector{\n\t\twrappedCollector: c,\n\t\tprefix:           r.prefix,\n\t\tlabels:           r.labels,\n\t})\n}\n\ntype wrappingCollector struct {\n\twrappedCollector Collector\n\tprefix           string\n\tlabels           Labels\n}\n\nfunc (c *wrappingCollector) Collect(ch chan<- Metric) {\n\twrappedCh := make(chan Metric)\n\tgo func() {\n\t\tc.wrappedCollector.Collect(wrappedCh)\n\t\tclose(wrappedCh)\n\t}()\n\tfor m := range wrappedCh {\n\t\tch <- &wrappingMetric{\n\t\t\twrappedMetric: m,\n\t\t\tprefix:        c.prefix,\n\t\t\tlabels:        c.labels,\n\t\t}\n\t}\n}\n\nfunc (c *wrappingCollector) Describe(ch chan<- *Desc) {\n\twrappedCh := make(chan *Desc)\n\tgo func() {\n\t\tc.wrappedCollector.Describe(wrappedCh)\n\t\tclose(wrappedCh)\n\t}()\n\tfor desc := range wrappedCh {\n\t\tch <- wrapDesc(desc, c.prefix, c.labels)\n\t}\n}\n\nfunc (c *wrappingCollector) unwrapRecursively() Collector {\n\tswitch wc := c.wrappedCollector.(type) {\n\tcase *wrappingCollector:\n\t\treturn wc.unwrapRecursively()\n\tdefault:\n\t\treturn wc\n\t}\n}\n\ntype wrappingMetric struct {\n\twrappedMetric Metric\n\tprefix        string\n\tlabels        Labels\n}\n\nfunc (m *wrappingMetric) Desc() *Desc {\n\treturn wrapDesc(m.wrappedMetric.Desc(), m.prefix, m.labels)\n}\n\nfunc (m *wrappingMetric) Write(out *dto.Metric) error {\n\tif err := m.wrappedMetric.Write(out); err != nil {\n\t\treturn err\n\t}\n\tif len(m.labels) == 0 {\n\t\t// No wrapping labels.\n\t\treturn nil\n\t}\n\tfor ln, lv := range m.labels {\n\t\tout.Label = append(out.Label, &dto.LabelPair{\n\t\t\tName:  proto.String(ln),\n\t\t\tValue: proto.String(lv),\n\t\t})\n\t}\n\tsort.Sort(internal.LabelPairSorter(out.Label))\n\treturn nil\n}\n\nfunc wrapDesc(desc *Desc, prefix string, labels Labels) *Desc {\n\tconstLabels := Labels{}\n\tfor _, lp := range desc.constLabelPairs {\n\t\tconstLabels[*lp.Name] = *lp.Value\n\t}\n\tfor ln, lv := range labels {\n\t\tif _, alreadyUsed := constLabels[ln]; alreadyUsed {\n\t\t\treturn &Desc{\n\t\t\t\tfqName:          desc.fqName,\n\t\t\t\thelp:            desc.help,\n\t\t\t\tvariableLabels:  desc.variableLabels,\n\t\t\t\tconstLabelPairs: desc.constLabelPairs,\n\t\t\t\terr:             fmt.Errorf(\"attempted wrapping with already existing label name %q\", ln),\n\t\t\t}\n\t\t}\n\t\tconstLabels[ln] = lv\n\t}\n\t// NewDesc will do remaining validations.\n\tnewDesc := V2.NewDesc(prefix+desc.fqName, desc.help, desc.variableLabels, constLabels)\n\t// Propagate errors if there was any. This will override any errer\n\t// created by NewDesc above, i.e. earlier errors get precedence.\n\tif desc.err != nil {\n\t\tnewDesc.err = desc.err\n\t}\n\treturn newDesc\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_model/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_model/NOTICE",
    "content": "Data model artifacts for Prometheus.\nCopyright 2012-2015 The Prometheus Authors\n\nThis product includes software developed at\nSoundCloud Ltd. (http://soundcloud.com/).\n"
  },
  {
    "path": "vendor/github.com/prometheus/client_model/go/metrics.pb.go",
    "content": "// Copyright 2013 Prometheus Team\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.30.0\n// \tprotoc        v3.20.3\n// source: io/prometheus/client/metrics.proto\n\npackage io_prometheus_client\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\ttimestamppb \"google.golang.org/protobuf/types/known/timestamppb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype MetricType int32\n\nconst (\n\t// COUNTER must use the Metric field \"counter\".\n\tMetricType_COUNTER MetricType = 0\n\t// GAUGE must use the Metric field \"gauge\".\n\tMetricType_GAUGE MetricType = 1\n\t// SUMMARY must use the Metric field \"summary\".\n\tMetricType_SUMMARY MetricType = 2\n\t// UNTYPED must use the Metric field \"untyped\".\n\tMetricType_UNTYPED MetricType = 3\n\t// HISTOGRAM must use the Metric field \"histogram\".\n\tMetricType_HISTOGRAM MetricType = 4\n\t// GAUGE_HISTOGRAM must use the Metric field \"histogram\".\n\tMetricType_GAUGE_HISTOGRAM MetricType = 5\n)\n\n// Enum value maps for MetricType.\nvar (\n\tMetricType_name = map[int32]string{\n\t\t0: \"COUNTER\",\n\t\t1: \"GAUGE\",\n\t\t2: \"SUMMARY\",\n\t\t3: \"UNTYPED\",\n\t\t4: \"HISTOGRAM\",\n\t\t5: \"GAUGE_HISTOGRAM\",\n\t}\n\tMetricType_value = map[string]int32{\n\t\t\"COUNTER\":         0,\n\t\t\"GAUGE\":           1,\n\t\t\"SUMMARY\":         2,\n\t\t\"UNTYPED\":         3,\n\t\t\"HISTOGRAM\":       4,\n\t\t\"GAUGE_HISTOGRAM\": 5,\n\t}\n)\n\nfunc (x MetricType) Enum() *MetricType {\n\tp := new(MetricType)\n\t*p = x\n\treturn p\n}\n\nfunc (x MetricType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (MetricType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_io_prometheus_client_metrics_proto_enumTypes[0].Descriptor()\n}\n\nfunc (MetricType) Type() protoreflect.EnumType {\n\treturn &file_io_prometheus_client_metrics_proto_enumTypes[0]\n}\n\nfunc (x MetricType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *MetricType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = MetricType(num)\n\treturn nil\n}\n\n// Deprecated: Use MetricType.Descriptor instead.\nfunc (MetricType) EnumDescriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{0}\n}\n\ntype LabelPair struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName  *string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tValue *string `protobuf:\"bytes,2,opt,name=value\" json:\"value,omitempty\"`\n}\n\nfunc (x *LabelPair) Reset() {\n\t*x = LabelPair{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LabelPair) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LabelPair) ProtoMessage() {}\n\nfunc (x *LabelPair) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LabelPair.ProtoReflect.Descriptor instead.\nfunc (*LabelPair) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *LabelPair) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *LabelPair) GetValue() string {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn \"\"\n}\n\ntype Gauge struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *float64 `protobuf:\"fixed64,1,opt,name=value\" json:\"value,omitempty\"`\n}\n\nfunc (x *Gauge) Reset() {\n\t*x = Gauge{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Gauge) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Gauge) ProtoMessage() {}\n\nfunc (x *Gauge) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Gauge.ProtoReflect.Descriptor instead.\nfunc (*Gauge) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Gauge) GetValue() float64 {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn 0\n}\n\ntype Counter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue    *float64  `protobuf:\"fixed64,1,opt,name=value\" json:\"value,omitempty\"`\n\tExemplar *Exemplar `protobuf:\"bytes,2,opt,name=exemplar\" json:\"exemplar,omitempty\"`\n}\n\nfunc (x *Counter) Reset() {\n\t*x = Counter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Counter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Counter) ProtoMessage() {}\n\nfunc (x *Counter) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Counter.ProtoReflect.Descriptor instead.\nfunc (*Counter) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *Counter) GetValue() float64 {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn 0\n}\n\nfunc (x *Counter) GetExemplar() *Exemplar {\n\tif x != nil {\n\t\treturn x.Exemplar\n\t}\n\treturn nil\n}\n\ntype Quantile struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tQuantile *float64 `protobuf:\"fixed64,1,opt,name=quantile\" json:\"quantile,omitempty\"`\n\tValue    *float64 `protobuf:\"fixed64,2,opt,name=value\" json:\"value,omitempty\"`\n}\n\nfunc (x *Quantile) Reset() {\n\t*x = Quantile{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Quantile) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Quantile) ProtoMessage() {}\n\nfunc (x *Quantile) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Quantile.ProtoReflect.Descriptor instead.\nfunc (*Quantile) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Quantile) GetQuantile() float64 {\n\tif x != nil && x.Quantile != nil {\n\t\treturn *x.Quantile\n\t}\n\treturn 0\n}\n\nfunc (x *Quantile) GetValue() float64 {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn 0\n}\n\ntype Summary struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSampleCount *uint64     `protobuf:\"varint,1,opt,name=sample_count,json=sampleCount\" json:\"sample_count,omitempty\"`\n\tSampleSum   *float64    `protobuf:\"fixed64,2,opt,name=sample_sum,json=sampleSum\" json:\"sample_sum,omitempty\"`\n\tQuantile    []*Quantile `protobuf:\"bytes,3,rep,name=quantile\" json:\"quantile,omitempty\"`\n}\n\nfunc (x *Summary) Reset() {\n\t*x = Summary{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Summary) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Summary) ProtoMessage() {}\n\nfunc (x *Summary) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Summary.ProtoReflect.Descriptor instead.\nfunc (*Summary) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *Summary) GetSampleCount() uint64 {\n\tif x != nil && x.SampleCount != nil {\n\t\treturn *x.SampleCount\n\t}\n\treturn 0\n}\n\nfunc (x *Summary) GetSampleSum() float64 {\n\tif x != nil && x.SampleSum != nil {\n\t\treturn *x.SampleSum\n\t}\n\treturn 0\n}\n\nfunc (x *Summary) GetQuantile() []*Quantile {\n\tif x != nil {\n\t\treturn x.Quantile\n\t}\n\treturn nil\n}\n\ntype Untyped struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *float64 `protobuf:\"fixed64,1,opt,name=value\" json:\"value,omitempty\"`\n}\n\nfunc (x *Untyped) Reset() {\n\t*x = Untyped{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Untyped) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Untyped) ProtoMessage() {}\n\nfunc (x *Untyped) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Untyped.ProtoReflect.Descriptor instead.\nfunc (*Untyped) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *Untyped) GetValue() float64 {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn 0\n}\n\ntype Histogram struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSampleCount      *uint64  `protobuf:\"varint,1,opt,name=sample_count,json=sampleCount\" json:\"sample_count,omitempty\"`\n\tSampleCountFloat *float64 `protobuf:\"fixed64,4,opt,name=sample_count_float,json=sampleCountFloat\" json:\"sample_count_float,omitempty\"` // Overrides sample_count if > 0.\n\tSampleSum        *float64 `protobuf:\"fixed64,2,opt,name=sample_sum,json=sampleSum\" json:\"sample_sum,omitempty\"`\n\t// Buckets for the conventional histogram.\n\tBucket []*Bucket `protobuf:\"bytes,3,rep,name=bucket\" json:\"bucket,omitempty\"` // Ordered in increasing order of upper_bound, +Inf bucket is optional.\n\t// schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8.\n\t// They are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and\n\t// then each power of two is divided into 2^n logarithmic buckets.\n\t// Or in other words, each bucket boundary is the previous boundary times 2^(2^-n).\n\t// In the future, more bucket schemas may be added using numbers < -4 or > 8.\n\tSchema         *int32   `protobuf:\"zigzag32,5,opt,name=schema\" json:\"schema,omitempty\"`\n\tZeroThreshold  *float64 `protobuf:\"fixed64,6,opt,name=zero_threshold,json=zeroThreshold\" json:\"zero_threshold,omitempty\"`      // Breadth of the zero bucket.\n\tZeroCount      *uint64  `protobuf:\"varint,7,opt,name=zero_count,json=zeroCount\" json:\"zero_count,omitempty\"`                   // Count in zero bucket.\n\tZeroCountFloat *float64 `protobuf:\"fixed64,8,opt,name=zero_count_float,json=zeroCountFloat\" json:\"zero_count_float,omitempty\"` // Overrides sb_zero_count if > 0.\n\t// Negative buckets for the native histogram.\n\tNegativeSpan []*BucketSpan `protobuf:\"bytes,9,rep,name=negative_span,json=negativeSpan\" json:\"negative_span,omitempty\"`\n\t// Use either \"negative_delta\" or \"negative_count\", the former for\n\t// regular histograms with integer counts, the latter for float\n\t// histograms.\n\tNegativeDelta []int64   `protobuf:\"zigzag64,10,rep,name=negative_delta,json=negativeDelta\" json:\"negative_delta,omitempty\"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket).\n\tNegativeCount []float64 `protobuf:\"fixed64,11,rep,name=negative_count,json=negativeCount\" json:\"negative_count,omitempty\"`  // Absolute count of each bucket.\n\t// Positive buckets for the native histogram.\n\tPositiveSpan []*BucketSpan `protobuf:\"bytes,12,rep,name=positive_span,json=positiveSpan\" json:\"positive_span,omitempty\"`\n\t// Use either \"positive_delta\" or \"positive_count\", the former for\n\t// regular histograms with integer counts, the latter for float\n\t// histograms.\n\tPositiveDelta []int64   `protobuf:\"zigzag64,13,rep,name=positive_delta,json=positiveDelta\" json:\"positive_delta,omitempty\"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket).\n\tPositiveCount []float64 `protobuf:\"fixed64,14,rep,name=positive_count,json=positiveCount\" json:\"positive_count,omitempty\"`  // Absolute count of each bucket.\n}\n\nfunc (x *Histogram) Reset() {\n\t*x = Histogram{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Histogram) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Histogram) ProtoMessage() {}\n\nfunc (x *Histogram) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Histogram.ProtoReflect.Descriptor instead.\nfunc (*Histogram) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *Histogram) GetSampleCount() uint64 {\n\tif x != nil && x.SampleCount != nil {\n\t\treturn *x.SampleCount\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetSampleCountFloat() float64 {\n\tif x != nil && x.SampleCountFloat != nil {\n\t\treturn *x.SampleCountFloat\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetSampleSum() float64 {\n\tif x != nil && x.SampleSum != nil {\n\t\treturn *x.SampleSum\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetBucket() []*Bucket {\n\tif x != nil {\n\t\treturn x.Bucket\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetSchema() int32 {\n\tif x != nil && x.Schema != nil {\n\t\treturn *x.Schema\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetZeroThreshold() float64 {\n\tif x != nil && x.ZeroThreshold != nil {\n\t\treturn *x.ZeroThreshold\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetZeroCount() uint64 {\n\tif x != nil && x.ZeroCount != nil {\n\t\treturn *x.ZeroCount\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetZeroCountFloat() float64 {\n\tif x != nil && x.ZeroCountFloat != nil {\n\t\treturn *x.ZeroCountFloat\n\t}\n\treturn 0\n}\n\nfunc (x *Histogram) GetNegativeSpan() []*BucketSpan {\n\tif x != nil {\n\t\treturn x.NegativeSpan\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetNegativeDelta() []int64 {\n\tif x != nil {\n\t\treturn x.NegativeDelta\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetNegativeCount() []float64 {\n\tif x != nil {\n\t\treturn x.NegativeCount\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetPositiveSpan() []*BucketSpan {\n\tif x != nil {\n\t\treturn x.PositiveSpan\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetPositiveDelta() []int64 {\n\tif x != nil {\n\t\treturn x.PositiveDelta\n\t}\n\treturn nil\n}\n\nfunc (x *Histogram) GetPositiveCount() []float64 {\n\tif x != nil {\n\t\treturn x.PositiveCount\n\t}\n\treturn nil\n}\n\n// A Bucket of a conventional histogram, each of which is treated as\n// an individual counter-like time series by Prometheus.\ntype Bucket struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tCumulativeCount      *uint64   `protobuf:\"varint,1,opt,name=cumulative_count,json=cumulativeCount\" json:\"cumulative_count,omitempty\"`                   // Cumulative in increasing order.\n\tCumulativeCountFloat *float64  `protobuf:\"fixed64,4,opt,name=cumulative_count_float,json=cumulativeCountFloat\" json:\"cumulative_count_float,omitempty\"` // Overrides cumulative_count if > 0.\n\tUpperBound           *float64  `protobuf:\"fixed64,2,opt,name=upper_bound,json=upperBound\" json:\"upper_bound,omitempty\"`                                 // Inclusive.\n\tExemplar             *Exemplar `protobuf:\"bytes,3,opt,name=exemplar\" json:\"exemplar,omitempty\"`\n}\n\nfunc (x *Bucket) Reset() {\n\t*x = Bucket{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Bucket) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Bucket) ProtoMessage() {}\n\nfunc (x *Bucket) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Bucket.ProtoReflect.Descriptor instead.\nfunc (*Bucket) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Bucket) GetCumulativeCount() uint64 {\n\tif x != nil && x.CumulativeCount != nil {\n\t\treturn *x.CumulativeCount\n\t}\n\treturn 0\n}\n\nfunc (x *Bucket) GetCumulativeCountFloat() float64 {\n\tif x != nil && x.CumulativeCountFloat != nil {\n\t\treturn *x.CumulativeCountFloat\n\t}\n\treturn 0\n}\n\nfunc (x *Bucket) GetUpperBound() float64 {\n\tif x != nil && x.UpperBound != nil {\n\t\treturn *x.UpperBound\n\t}\n\treturn 0\n}\n\nfunc (x *Bucket) GetExemplar() *Exemplar {\n\tif x != nil {\n\t\treturn x.Exemplar\n\t}\n\treturn nil\n}\n\n// A BucketSpan defines a number of consecutive buckets in a native\n// histogram with their offset. Logically, it would be more\n// straightforward to include the bucket counts in the Span. However,\n// the protobuf representation is more compact in the way the data is\n// structured here (with all the buckets in a single array separate\n// from the Spans).\ntype BucketSpan struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tOffset *int32  `protobuf:\"zigzag32,1,opt,name=offset\" json:\"offset,omitempty\"` // Gap to previous span, or starting point for 1st span (which can be negative).\n\tLength *uint32 `protobuf:\"varint,2,opt,name=length\" json:\"length,omitempty\"`   // Length of consecutive buckets.\n}\n\nfunc (x *BucketSpan) Reset() {\n\t*x = BucketSpan{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *BucketSpan) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*BucketSpan) ProtoMessage() {}\n\nfunc (x *BucketSpan) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use BucketSpan.ProtoReflect.Descriptor instead.\nfunc (*BucketSpan) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *BucketSpan) GetOffset() int32 {\n\tif x != nil && x.Offset != nil {\n\t\treturn *x.Offset\n\t}\n\treturn 0\n}\n\nfunc (x *BucketSpan) GetLength() uint32 {\n\tif x != nil && x.Length != nil {\n\t\treturn *x.Length\n\t}\n\treturn 0\n}\n\ntype Exemplar struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tLabel     []*LabelPair           `protobuf:\"bytes,1,rep,name=label\" json:\"label,omitempty\"`\n\tValue     *float64               `protobuf:\"fixed64,2,opt,name=value\" json:\"value,omitempty\"`\n\tTimestamp *timestamppb.Timestamp `protobuf:\"bytes,3,opt,name=timestamp\" json:\"timestamp,omitempty\"` // OpenMetrics-style.\n}\n\nfunc (x *Exemplar) Reset() {\n\t*x = Exemplar{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Exemplar) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Exemplar) ProtoMessage() {}\n\nfunc (x *Exemplar) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Exemplar.ProtoReflect.Descriptor instead.\nfunc (*Exemplar) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *Exemplar) GetLabel() []*LabelPair {\n\tif x != nil {\n\t\treturn x.Label\n\t}\n\treturn nil\n}\n\nfunc (x *Exemplar) GetValue() float64 {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn 0\n}\n\nfunc (x *Exemplar) GetTimestamp() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.Timestamp\n\t}\n\treturn nil\n}\n\ntype Metric struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tLabel       []*LabelPair `protobuf:\"bytes,1,rep,name=label\" json:\"label,omitempty\"`\n\tGauge       *Gauge       `protobuf:\"bytes,2,opt,name=gauge\" json:\"gauge,omitempty\"`\n\tCounter     *Counter     `protobuf:\"bytes,3,opt,name=counter\" json:\"counter,omitempty\"`\n\tSummary     *Summary     `protobuf:\"bytes,4,opt,name=summary\" json:\"summary,omitempty\"`\n\tUntyped     *Untyped     `protobuf:\"bytes,5,opt,name=untyped\" json:\"untyped,omitempty\"`\n\tHistogram   *Histogram   `protobuf:\"bytes,7,opt,name=histogram\" json:\"histogram,omitempty\"`\n\tTimestampMs *int64       `protobuf:\"varint,6,opt,name=timestamp_ms,json=timestampMs\" json:\"timestamp_ms,omitempty\"`\n}\n\nfunc (x *Metric) Reset() {\n\t*x = Metric{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Metric) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Metric) ProtoMessage() {}\n\nfunc (x *Metric) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Metric.ProtoReflect.Descriptor instead.\nfunc (*Metric) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *Metric) GetLabel() []*LabelPair {\n\tif x != nil {\n\t\treturn x.Label\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetGauge() *Gauge {\n\tif x != nil {\n\t\treturn x.Gauge\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetCounter() *Counter {\n\tif x != nil {\n\t\treturn x.Counter\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetSummary() *Summary {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetUntyped() *Untyped {\n\tif x != nil {\n\t\treturn x.Untyped\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetHistogram() *Histogram {\n\tif x != nil {\n\t\treturn x.Histogram\n\t}\n\treturn nil\n}\n\nfunc (x *Metric) GetTimestampMs() int64 {\n\tif x != nil && x.TimestampMs != nil {\n\t\treturn *x.TimestampMs\n\t}\n\treturn 0\n}\n\ntype MetricFamily struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName   *string     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tHelp   *string     `protobuf:\"bytes,2,opt,name=help\" json:\"help,omitempty\"`\n\tType   *MetricType `protobuf:\"varint,3,opt,name=type,enum=io.prometheus.client.MetricType\" json:\"type,omitempty\"`\n\tMetric []*Metric   `protobuf:\"bytes,4,rep,name=metric\" json:\"metric,omitempty\"`\n}\n\nfunc (x *MetricFamily) Reset() {\n\t*x = MetricFamily{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *MetricFamily) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MetricFamily) ProtoMessage() {}\n\nfunc (x *MetricFamily) ProtoReflect() protoreflect.Message {\n\tmi := &file_io_prometheus_client_metrics_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MetricFamily.ProtoReflect.Descriptor instead.\nfunc (*MetricFamily) Descriptor() ([]byte, []int) {\n\treturn file_io_prometheus_client_metrics_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *MetricFamily) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *MetricFamily) GetHelp() string {\n\tif x != nil && x.Help != nil {\n\t\treturn *x.Help\n\t}\n\treturn \"\"\n}\n\nfunc (x *MetricFamily) GetType() MetricType {\n\tif x != nil && x.Type != nil {\n\t\treturn *x.Type\n\t}\n\treturn MetricType_COUNTER\n}\n\nfunc (x *MetricFamily) GetMetric() []*Metric {\n\tif x != nil {\n\t\treturn x.Metric\n\t}\n\treturn nil\n}\n\nvar File_io_prometheus_client_metrics_proto protoreflect.FileDescriptor\n\nvar file_io_prometheus_client_metrics_proto_rawDesc = []byte{\n\t0x0a, 0x22, 0x69, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2f,\n\t0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68,\n\t0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,\n\t0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x09, 0x4c,\n\t0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x1d, 0x0a, 0x05, 0x47, 0x61, 0x75, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x22, 0x5b, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74,\n\t0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x6d,\n\t0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x22, 0x3c,\n\t0x0a, 0x08, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75,\n\t0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x71, 0x75,\n\t0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a,\n\t0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b,\n\t0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73,\n\t0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,\n\t0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x08, 0x71, 0x75,\n\t0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69,\n\t0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,\n\t0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x71, 0x75,\n\t0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65,\n\t0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, 0x04, 0x0a, 0x09, 0x48, 0x69, 0x73, 0x74,\n\t0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f,\n\t0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04,\n\t0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,\n\t0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x5f, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18,\n\t0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65,\n\t0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x63,\n\t0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x73, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65,\n\t0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x7a, 0x65, 0x72,\n\t0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x65,\n\t0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09,\n\t0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x7a, 0x65, 0x72,\n\t0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x08, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x0e, 0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x6c,\n\t0x6f, 0x61, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,\n\t0x73, 0x70, 0x61, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6f, 0x2e,\n\t0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,\n\t0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x0c, 0x6e, 0x65,\n\t0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65,\n\t0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x03,\n\t0x28, 0x12, 0x52, 0x0d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x74,\n\t0x61, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f,\n\t0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x67, 0x61, 0x74,\n\t0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69,\n\t0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x20, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e,\n\t0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61,\n\t0x6e, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12,\n\t0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74,\n\t0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76,\n\t0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,\n\t0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d,\n\t0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x01,\n\t0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75,\n\t0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x04, 0x52, 0x0f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f,\n\t0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76,\n\t0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x14, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43,\n\t0x6f, 0x75, 0x6e, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70,\n\t0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a,\n\t0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78,\n\t0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69,\n\t0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,\n\t0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78,\n\t0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x22, 0x3c, 0x0a, 0x0a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74,\n\t0x53, 0x70, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06,\n\t0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61,\n\t0x72, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,\n\t0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69,\n\t0x72, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38,\n\t0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74,\n\t0x72, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65,\n\t0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50,\n\t0x61, 0x69, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x67, 0x61,\n\t0x75, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6f, 0x2e, 0x70,\n\t0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,\n\t0x2e, 0x47, 0x61, 0x75, 0x67, 0x65, 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a,\n\t0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,\n\t0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63,\n\t0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63,\n\t0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72,\n\t0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f,\n\t0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12,\n\t0x37, 0x0a, 0x07, 0x75, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,\n\t0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x52,\n\t0x07, 0x75, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74,\n\t0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f,\n\t0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65,\n\t0x6e, 0x74, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x68, 0x69,\n\t0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73,\n\t0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d,\n\t0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,\n\t0x65, 0x6c, 0x70, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x0e, 0x32, 0x20, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75,\n\t0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54,\n\t0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74,\n\t0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70,\n\t0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,\n\t0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2a,\n\t0x62, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a,\n\t0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41,\n\t0x55, 0x47, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59,\n\t0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12,\n\t0x0d, 0x0a, 0x09, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x13,\n\t0x0a, 0x0f, 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41,\n\t0x4d, 0x10, 0x05, 0x42, 0x52, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74,\n\t0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5a, 0x3a, 0x67, 0x69, 0x74,\n\t0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65,\n\t0x75, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f,\n\t0x67, 0x6f, 0x3b, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,\n\t0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,\n}\n\nvar (\n\tfile_io_prometheus_client_metrics_proto_rawDescOnce sync.Once\n\tfile_io_prometheus_client_metrics_proto_rawDescData = file_io_prometheus_client_metrics_proto_rawDesc\n)\n\nfunc file_io_prometheus_client_metrics_proto_rawDescGZIP() []byte {\n\tfile_io_prometheus_client_metrics_proto_rawDescOnce.Do(func() {\n\t\tfile_io_prometheus_client_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_io_prometheus_client_metrics_proto_rawDescData)\n\t})\n\treturn file_io_prometheus_client_metrics_proto_rawDescData\n}\n\nvar file_io_prometheus_client_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 1)\nvar file_io_prometheus_client_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 12)\nvar file_io_prometheus_client_metrics_proto_goTypes = []interface{}{\n\t(MetricType)(0),               // 0: io.prometheus.client.MetricType\n\t(*LabelPair)(nil),             // 1: io.prometheus.client.LabelPair\n\t(*Gauge)(nil),                 // 2: io.prometheus.client.Gauge\n\t(*Counter)(nil),               // 3: io.prometheus.client.Counter\n\t(*Quantile)(nil),              // 4: io.prometheus.client.Quantile\n\t(*Summary)(nil),               // 5: io.prometheus.client.Summary\n\t(*Untyped)(nil),               // 6: io.prometheus.client.Untyped\n\t(*Histogram)(nil),             // 7: io.prometheus.client.Histogram\n\t(*Bucket)(nil),                // 8: io.prometheus.client.Bucket\n\t(*BucketSpan)(nil),            // 9: io.prometheus.client.BucketSpan\n\t(*Exemplar)(nil),              // 10: io.prometheus.client.Exemplar\n\t(*Metric)(nil),                // 11: io.prometheus.client.Metric\n\t(*MetricFamily)(nil),          // 12: io.prometheus.client.MetricFamily\n\t(*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp\n}\nvar file_io_prometheus_client_metrics_proto_depIdxs = []int32{\n\t10, // 0: io.prometheus.client.Counter.exemplar:type_name -> io.prometheus.client.Exemplar\n\t4,  // 1: io.prometheus.client.Summary.quantile:type_name -> io.prometheus.client.Quantile\n\t8,  // 2: io.prometheus.client.Histogram.bucket:type_name -> io.prometheus.client.Bucket\n\t9,  // 3: io.prometheus.client.Histogram.negative_span:type_name -> io.prometheus.client.BucketSpan\n\t9,  // 4: io.prometheus.client.Histogram.positive_span:type_name -> io.prometheus.client.BucketSpan\n\t10, // 5: io.prometheus.client.Bucket.exemplar:type_name -> io.prometheus.client.Exemplar\n\t1,  // 6: io.prometheus.client.Exemplar.label:type_name -> io.prometheus.client.LabelPair\n\t13, // 7: io.prometheus.client.Exemplar.timestamp:type_name -> google.protobuf.Timestamp\n\t1,  // 8: io.prometheus.client.Metric.label:type_name -> io.prometheus.client.LabelPair\n\t2,  // 9: io.prometheus.client.Metric.gauge:type_name -> io.prometheus.client.Gauge\n\t3,  // 10: io.prometheus.client.Metric.counter:type_name -> io.prometheus.client.Counter\n\t5,  // 11: io.prometheus.client.Metric.summary:type_name -> io.prometheus.client.Summary\n\t6,  // 12: io.prometheus.client.Metric.untyped:type_name -> io.prometheus.client.Untyped\n\t7,  // 13: io.prometheus.client.Metric.histogram:type_name -> io.prometheus.client.Histogram\n\t0,  // 14: io.prometheus.client.MetricFamily.type:type_name -> io.prometheus.client.MetricType\n\t11, // 15: io.prometheus.client.MetricFamily.metric:type_name -> io.prometheus.client.Metric\n\t16, // [16:16] is the sub-list for method output_type\n\t16, // [16:16] is the sub-list for method input_type\n\t16, // [16:16] is the sub-list for extension type_name\n\t16, // [16:16] is the sub-list for extension extendee\n\t0,  // [0:16] is the sub-list for field type_name\n}\n\nfunc init() { file_io_prometheus_client_metrics_proto_init() }\nfunc file_io_prometheus_client_metrics_proto_init() {\n\tif File_io_prometheus_client_metrics_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LabelPair); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Gauge); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Counter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Quantile); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Summary); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Untyped); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Histogram); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Bucket); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*BucketSpan); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Exemplar); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Metric); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_io_prometheus_client_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*MetricFamily); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_io_prometheus_client_metrics_proto_rawDesc,\n\t\t\tNumEnums:      1,\n\t\t\tNumMessages:   12,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_io_prometheus_client_metrics_proto_goTypes,\n\t\tDependencyIndexes: file_io_prometheus_client_metrics_proto_depIdxs,\n\t\tEnumInfos:         file_io_prometheus_client_metrics_proto_enumTypes,\n\t\tMessageInfos:      file_io_prometheus_client_metrics_proto_msgTypes,\n\t}.Build()\n\tFile_io_prometheus_client_metrics_proto = out.File\n\tfile_io_prometheus_client_metrics_proto_rawDesc = nil\n\tfile_io_prometheus_client_metrics_proto_goTypes = nil\n\tfile_io_prometheus_client_metrics_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/NOTICE",
    "content": "Common libraries shared by Prometheus Go components.\nCopyright 2015 The Prometheus Authors\n\nThis product includes software developed at\nSoundCloud Ltd. (http://soundcloud.com/).\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/decode.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage expfmt\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"mime\"\n\t\"net/http\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\n\t\"github.com/matttproud/golang_protobuf_extensions/pbutil\"\n\t\"github.com/prometheus/common/model\"\n)\n\n// Decoder types decode an input stream into metric families.\ntype Decoder interface {\n\tDecode(*dto.MetricFamily) error\n}\n\n// DecodeOptions contains options used by the Decoder and in sample extraction.\ntype DecodeOptions struct {\n\t// Timestamp is added to each value from the stream that has no explicit timestamp set.\n\tTimestamp model.Time\n}\n\n// ResponseFormat extracts the correct format from a HTTP response header.\n// If no matching format can be found FormatUnknown is returned.\nfunc ResponseFormat(h http.Header) Format {\n\tct := h.Get(hdrContentType)\n\n\tmediatype, params, err := mime.ParseMediaType(ct)\n\tif err != nil {\n\t\treturn FmtUnknown\n\t}\n\n\tconst textType = \"text/plain\"\n\n\tswitch mediatype {\n\tcase ProtoType:\n\t\tif p, ok := params[\"proto\"]; ok && p != ProtoProtocol {\n\t\t\treturn FmtUnknown\n\t\t}\n\t\tif e, ok := params[\"encoding\"]; ok && e != \"delimited\" {\n\t\t\treturn FmtUnknown\n\t\t}\n\t\treturn FmtProtoDelim\n\n\tcase textType:\n\t\tif v, ok := params[\"version\"]; ok && v != TextVersion {\n\t\t\treturn FmtUnknown\n\t\t}\n\t\treturn FmtText\n\t}\n\n\treturn FmtUnknown\n}\n\n// NewDecoder returns a new decoder based on the given input format.\n// If the input format does not imply otherwise, a text format decoder is returned.\nfunc NewDecoder(r io.Reader, format Format) Decoder {\n\tswitch format {\n\tcase FmtProtoDelim:\n\t\treturn &protoDecoder{r: r}\n\t}\n\treturn &textDecoder{r: r}\n}\n\n// protoDecoder implements the Decoder interface for protocol buffers.\ntype protoDecoder struct {\n\tr io.Reader\n}\n\n// Decode implements the Decoder interface.\nfunc (d *protoDecoder) Decode(v *dto.MetricFamily) error {\n\t_, err := pbutil.ReadDelimited(d.r, v)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !model.IsValidMetricName(model.LabelValue(v.GetName())) {\n\t\treturn fmt.Errorf(\"invalid metric name %q\", v.GetName())\n\t}\n\tfor _, m := range v.GetMetric() {\n\t\tif m == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, l := range m.GetLabel() {\n\t\t\tif l == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !model.LabelValue(l.GetValue()).IsValid() {\n\t\t\t\treturn fmt.Errorf(\"invalid label value %q\", l.GetValue())\n\t\t\t}\n\t\t\tif !model.LabelName(l.GetName()).IsValid() {\n\t\t\t\treturn fmt.Errorf(\"invalid label name %q\", l.GetName())\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// textDecoder implements the Decoder interface for the text protocol.\ntype textDecoder struct {\n\tr    io.Reader\n\tfams map[string]*dto.MetricFamily\n\terr  error\n}\n\n// Decode implements the Decoder interface.\nfunc (d *textDecoder) Decode(v *dto.MetricFamily) error {\n\tif d.err == nil {\n\t\t// Read all metrics in one shot.\n\t\tvar p TextParser\n\t\td.fams, d.err = p.TextToMetricFamilies(d.r)\n\t\t// If we don't get an error, store io.EOF for the end.\n\t\tif d.err == nil {\n\t\t\td.err = io.EOF\n\t\t}\n\t}\n\t// Pick off one MetricFamily per Decode until there's nothing left.\n\tfor key, fam := range d.fams {\n\t\tv.Name = fam.Name\n\t\tv.Help = fam.Help\n\t\tv.Type = fam.Type\n\t\tv.Metric = fam.Metric\n\t\tdelete(d.fams, key)\n\t\treturn nil\n\t}\n\treturn d.err\n}\n\n// SampleDecoder wraps a Decoder to extract samples from the metric families\n// decoded by the wrapped Decoder.\ntype SampleDecoder struct {\n\tDec  Decoder\n\tOpts *DecodeOptions\n\n\tf dto.MetricFamily\n}\n\n// Decode calls the Decode method of the wrapped Decoder and then extracts the\n// samples from the decoded MetricFamily into the provided model.Vector.\nfunc (sd *SampleDecoder) Decode(s *model.Vector) error {\n\terr := sd.Dec.Decode(&sd.f)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s, err = extractSamples(&sd.f, sd.Opts)\n\treturn err\n}\n\n// ExtractSamples builds a slice of samples from the provided metric\n// families. If an error occurs during sample extraction, it continues to\n// extract from the remaining metric families. The returned error is the last\n// error that has occurred.\nfunc ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) (model.Vector, error) {\n\tvar (\n\t\tall     model.Vector\n\t\tlastErr error\n\t)\n\tfor _, f := range fams {\n\t\tsome, err := extractSamples(f, o)\n\t\tif err != nil {\n\t\t\tlastErr = err\n\t\t\tcontinue\n\t\t}\n\t\tall = append(all, some...)\n\t}\n\treturn all, lastErr\n}\n\nfunc extractSamples(f *dto.MetricFamily, o *DecodeOptions) (model.Vector, error) {\n\tswitch f.GetType() {\n\tcase dto.MetricType_COUNTER:\n\t\treturn extractCounter(o, f), nil\n\tcase dto.MetricType_GAUGE:\n\t\treturn extractGauge(o, f), nil\n\tcase dto.MetricType_SUMMARY:\n\t\treturn extractSummary(o, f), nil\n\tcase dto.MetricType_UNTYPED:\n\t\treturn extractUntyped(o, f), nil\n\tcase dto.MetricType_HISTOGRAM:\n\t\treturn extractHistogram(o, f), nil\n\t}\n\treturn nil, fmt.Errorf(\"expfmt.extractSamples: unknown metric family type %v\", f.GetType())\n}\n\nfunc extractCounter(o *DecodeOptions, f *dto.MetricFamily) model.Vector {\n\tsamples := make(model.Vector, 0, len(f.Metric))\n\n\tfor _, m := range f.Metric {\n\t\tif m.Counter == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tlset := make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName())\n\n\t\tsmpl := &model.Sample{\n\t\t\tMetric: model.Metric(lset),\n\t\t\tValue:  model.SampleValue(m.Counter.GetValue()),\n\t\t}\n\n\t\tif m.TimestampMs != nil {\n\t\t\tsmpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000)\n\t\t} else {\n\t\t\tsmpl.Timestamp = o.Timestamp\n\t\t}\n\n\t\tsamples = append(samples, smpl)\n\t}\n\n\treturn samples\n}\n\nfunc extractGauge(o *DecodeOptions, f *dto.MetricFamily) model.Vector {\n\tsamples := make(model.Vector, 0, len(f.Metric))\n\n\tfor _, m := range f.Metric {\n\t\tif m.Gauge == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tlset := make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName())\n\n\t\tsmpl := &model.Sample{\n\t\t\tMetric: model.Metric(lset),\n\t\t\tValue:  model.SampleValue(m.Gauge.GetValue()),\n\t\t}\n\n\t\tif m.TimestampMs != nil {\n\t\t\tsmpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000)\n\t\t} else {\n\t\t\tsmpl.Timestamp = o.Timestamp\n\t\t}\n\n\t\tsamples = append(samples, smpl)\n\t}\n\n\treturn samples\n}\n\nfunc extractUntyped(o *DecodeOptions, f *dto.MetricFamily) model.Vector {\n\tsamples := make(model.Vector, 0, len(f.Metric))\n\n\tfor _, m := range f.Metric {\n\t\tif m.Untyped == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tlset := make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName())\n\n\t\tsmpl := &model.Sample{\n\t\t\tMetric: model.Metric(lset),\n\t\t\tValue:  model.SampleValue(m.Untyped.GetValue()),\n\t\t}\n\n\t\tif m.TimestampMs != nil {\n\t\t\tsmpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000)\n\t\t} else {\n\t\t\tsmpl.Timestamp = o.Timestamp\n\t\t}\n\n\t\tsamples = append(samples, smpl)\n\t}\n\n\treturn samples\n}\n\nfunc extractSummary(o *DecodeOptions, f *dto.MetricFamily) model.Vector {\n\tsamples := make(model.Vector, 0, len(f.Metric))\n\n\tfor _, m := range f.Metric {\n\t\tif m.Summary == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\ttimestamp := o.Timestamp\n\t\tif m.TimestampMs != nil {\n\t\t\ttimestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000)\n\t\t}\n\n\t\tfor _, q := range m.Summary.Quantile {\n\t\t\tlset := make(model.LabelSet, len(m.Label)+2)\n\t\t\tfor _, p := range m.Label {\n\t\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t\t}\n\t\t\t// BUG(matt): Update other names to \"quantile\".\n\t\t\tlset[model.LabelName(model.QuantileLabel)] = model.LabelValue(fmt.Sprint(q.GetQuantile()))\n\t\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName())\n\n\t\t\tsamples = append(samples, &model.Sample{\n\t\t\t\tMetric:    model.Metric(lset),\n\t\t\t\tValue:     model.SampleValue(q.GetValue()),\n\t\t\t\tTimestamp: timestamp,\n\t\t\t})\n\t\t}\n\n\t\tlset := make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_sum\")\n\n\t\tsamples = append(samples, &model.Sample{\n\t\t\tMetric:    model.Metric(lset),\n\t\t\tValue:     model.SampleValue(m.Summary.GetSampleSum()),\n\t\t\tTimestamp: timestamp,\n\t\t})\n\n\t\tlset = make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_count\")\n\n\t\tsamples = append(samples, &model.Sample{\n\t\t\tMetric:    model.Metric(lset),\n\t\t\tValue:     model.SampleValue(m.Summary.GetSampleCount()),\n\t\t\tTimestamp: timestamp,\n\t\t})\n\t}\n\n\treturn samples\n}\n\nfunc extractHistogram(o *DecodeOptions, f *dto.MetricFamily) model.Vector {\n\tsamples := make(model.Vector, 0, len(f.Metric))\n\n\tfor _, m := range f.Metric {\n\t\tif m.Histogram == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\ttimestamp := o.Timestamp\n\t\tif m.TimestampMs != nil {\n\t\t\ttimestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000)\n\t\t}\n\n\t\tinfSeen := false\n\n\t\tfor _, q := range m.Histogram.Bucket {\n\t\t\tlset := make(model.LabelSet, len(m.Label)+2)\n\t\t\tfor _, p := range m.Label {\n\t\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t\t}\n\t\t\tlset[model.LabelName(model.BucketLabel)] = model.LabelValue(fmt.Sprint(q.GetUpperBound()))\n\t\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_bucket\")\n\n\t\t\tif math.IsInf(q.GetUpperBound(), +1) {\n\t\t\t\tinfSeen = true\n\t\t\t}\n\n\t\t\tsamples = append(samples, &model.Sample{\n\t\t\t\tMetric:    model.Metric(lset),\n\t\t\t\tValue:     model.SampleValue(q.GetCumulativeCount()),\n\t\t\t\tTimestamp: timestamp,\n\t\t\t})\n\t\t}\n\n\t\tlset := make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_sum\")\n\n\t\tsamples = append(samples, &model.Sample{\n\t\t\tMetric:    model.Metric(lset),\n\t\t\tValue:     model.SampleValue(m.Histogram.GetSampleSum()),\n\t\t\tTimestamp: timestamp,\n\t\t})\n\n\t\tlset = make(model.LabelSet, len(m.Label)+1)\n\t\tfor _, p := range m.Label {\n\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t}\n\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_count\")\n\n\t\tcount := &model.Sample{\n\t\t\tMetric:    model.Metric(lset),\n\t\t\tValue:     model.SampleValue(m.Histogram.GetSampleCount()),\n\t\t\tTimestamp: timestamp,\n\t\t}\n\t\tsamples = append(samples, count)\n\n\t\tif !infSeen {\n\t\t\t// Append an infinity bucket sample.\n\t\t\tlset := make(model.LabelSet, len(m.Label)+2)\n\t\t\tfor _, p := range m.Label {\n\t\t\t\tlset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue())\n\t\t\t}\n\t\t\tlset[model.LabelName(model.BucketLabel)] = model.LabelValue(\"+Inf\")\n\t\t\tlset[model.MetricNameLabel] = model.LabelValue(f.GetName() + \"_bucket\")\n\n\t\t\tsamples = append(samples, &model.Sample{\n\t\t\t\tMetric:    model.Metric(lset),\n\t\t\t\tValue:     count.Value,\n\t\t\t\tTimestamp: timestamp,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn samples\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/encode.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage expfmt\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/matttproud/golang_protobuf_extensions/pbutil\"\n\t\"github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg\"\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// Encoder types encode metric families into an underlying wire protocol.\ntype Encoder interface {\n\tEncode(*dto.MetricFamily) error\n}\n\n// Closer is implemented by Encoders that need to be closed to finalize\n// encoding. (For example, OpenMetrics needs a final `# EOF` line.)\n//\n// Note that all Encoder implementations returned from this package implement\n// Closer, too, even if the Close call is a no-op. This happens in preparation\n// for adding a Close method to the Encoder interface directly in a (mildly\n// breaking) release in the future.\ntype Closer interface {\n\tClose() error\n}\n\ntype encoderCloser struct {\n\tencode func(*dto.MetricFamily) error\n\tclose  func() error\n}\n\nfunc (ec encoderCloser) Encode(v *dto.MetricFamily) error {\n\treturn ec.encode(v)\n}\n\nfunc (ec encoderCloser) Close() error {\n\treturn ec.close()\n}\n\n// Negotiate returns the Content-Type based on the given Accept header. If no\n// appropriate accepted type is found, FmtText is returned (which is the\n// Prometheus text format). This function will never negotiate FmtOpenMetrics,\n// as the support is still experimental. To include the option to negotiate\n// FmtOpenMetrics, use NegotiateOpenMetrics.\nfunc Negotiate(h http.Header) Format {\n\tfor _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) {\n\t\tver := ac.Params[\"version\"]\n\t\tif ac.Type+\"/\"+ac.SubType == ProtoType && ac.Params[\"proto\"] == ProtoProtocol {\n\t\t\tswitch ac.Params[\"encoding\"] {\n\t\t\tcase \"delimited\":\n\t\t\t\treturn FmtProtoDelim\n\t\t\tcase \"text\":\n\t\t\t\treturn FmtProtoText\n\t\t\tcase \"compact-text\":\n\t\t\t\treturn FmtProtoCompact\n\t\t\t}\n\t\t}\n\t\tif ac.Type == \"text\" && ac.SubType == \"plain\" && (ver == TextVersion || ver == \"\") {\n\t\t\treturn FmtText\n\t\t}\n\t}\n\treturn FmtText\n}\n\n// NegotiateIncludingOpenMetrics works like Negotiate but includes\n// FmtOpenMetrics as an option for the result. Note that this function is\n// temporary and will disappear once FmtOpenMetrics is fully supported and as\n// such may be negotiated by the normal Negotiate function.\nfunc NegotiateIncludingOpenMetrics(h http.Header) Format {\n\tfor _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) {\n\t\tver := ac.Params[\"version\"]\n\t\tif ac.Type+\"/\"+ac.SubType == ProtoType && ac.Params[\"proto\"] == ProtoProtocol {\n\t\t\tswitch ac.Params[\"encoding\"] {\n\t\t\tcase \"delimited\":\n\t\t\t\treturn FmtProtoDelim\n\t\t\tcase \"text\":\n\t\t\t\treturn FmtProtoText\n\t\t\tcase \"compact-text\":\n\t\t\t\treturn FmtProtoCompact\n\t\t\t}\n\t\t}\n\t\tif ac.Type == \"text\" && ac.SubType == \"plain\" && (ver == TextVersion || ver == \"\") {\n\t\t\treturn FmtText\n\t\t}\n\t\tif ac.Type+\"/\"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == \"\") {\n\t\t\tif ver == OpenMetricsVersion_1_0_0 {\n\t\t\t\treturn FmtOpenMetrics_1_0_0\n\t\t\t}\n\t\t\treturn FmtOpenMetrics_0_0_1\n\t\t}\n\t}\n\treturn FmtText\n}\n\n// NewEncoder returns a new encoder based on content type negotiation. All\n// Encoder implementations returned by NewEncoder also implement Closer, and\n// callers should always call the Close method. It is currently only required\n// for FmtOpenMetrics, but a future (breaking) release will add the Close method\n// to the Encoder interface directly. The current version of the Encoder\n// interface is kept for backwards compatibility.\nfunc NewEncoder(w io.Writer, format Format) Encoder {\n\tswitch format {\n\tcase FmtProtoDelim:\n\t\treturn encoderCloser{\n\t\t\tencode: func(v *dto.MetricFamily) error {\n\t\t\t\t_, err := pbutil.WriteDelimited(w, v)\n\t\t\t\treturn err\n\t\t\t},\n\t\t\tclose: func() error { return nil },\n\t\t}\n\tcase FmtProtoCompact:\n\t\treturn encoderCloser{\n\t\t\tencode: func(v *dto.MetricFamily) error {\n\t\t\t\t_, err := fmt.Fprintln(w, v.String())\n\t\t\t\treturn err\n\t\t\t},\n\t\t\tclose: func() error { return nil },\n\t\t}\n\tcase FmtProtoText:\n\t\treturn encoderCloser{\n\t\t\tencode: func(v *dto.MetricFamily) error {\n\t\t\t\t_, err := fmt.Fprintln(w, prototext.Format(v))\n\t\t\t\treturn err\n\t\t\t},\n\t\t\tclose: func() error { return nil },\n\t\t}\n\tcase FmtText:\n\t\treturn encoderCloser{\n\t\t\tencode: func(v *dto.MetricFamily) error {\n\t\t\t\t_, err := MetricFamilyToText(w, v)\n\t\t\t\treturn err\n\t\t\t},\n\t\t\tclose: func() error { return nil },\n\t\t}\n\tcase FmtOpenMetrics_0_0_1, FmtOpenMetrics_1_0_0:\n\t\treturn encoderCloser{\n\t\t\tencode: func(v *dto.MetricFamily) error {\n\t\t\t\t_, err := MetricFamilyToOpenMetrics(w, v)\n\t\t\t\treturn err\n\t\t\t},\n\t\t\tclose: func() error {\n\t\t\t\t_, err := FinalizeOpenMetrics(w)\n\t\t\t\treturn err\n\t\t\t},\n\t\t}\n\t}\n\tpanic(fmt.Errorf(\"expfmt.NewEncoder: unknown format %q\", format))\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/expfmt.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package expfmt contains tools for reading and writing Prometheus metrics.\npackage expfmt\n\n// Format specifies the HTTP content type of the different wire protocols.\ntype Format string\n\n// Constants to assemble the Content-Type values for the different wire protocols.\nconst (\n\tTextVersion              = \"0.0.4\"\n\tProtoType                = `application/vnd.google.protobuf`\n\tProtoProtocol            = `io.prometheus.client.MetricFamily`\n\tProtoFmt                 = ProtoType + \"; proto=\" + ProtoProtocol + \";\"\n\tOpenMetricsType          = `application/openmetrics-text`\n\tOpenMetricsVersion_0_0_1 = \"0.0.1\"\n\tOpenMetricsVersion_1_0_0 = \"1.0.0\"\n\n\t// The Content-Type values for the different wire protocols.\n\tFmtUnknown           Format = `<unknown>`\n\tFmtText              Format = `text/plain; version=` + TextVersion + `; charset=utf-8`\n\tFmtProtoDelim        Format = ProtoFmt + ` encoding=delimited`\n\tFmtProtoText         Format = ProtoFmt + ` encoding=text`\n\tFmtProtoCompact      Format = ProtoFmt + ` encoding=compact-text`\n\tFmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`\n\tFmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`\n)\n\nconst (\n\thdrContentType = \"Content-Type\"\n\thdrAccept      = \"Accept\"\n)\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/fuzz.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Build only when actually fuzzing\n//go:build gofuzz\n// +build gofuzz\n\npackage expfmt\n\nimport \"bytes\"\n\n// Fuzz text metric parser with with github.com/dvyukov/go-fuzz:\n//\n//\tgo-fuzz-build github.com/prometheus/common/expfmt\n//\tgo-fuzz -bin expfmt-fuzz.zip -workdir fuzz\n//\n// Further input samples should go in the folder fuzz/corpus.\nfunc Fuzz(in []byte) int {\n\tparser := TextParser{}\n\t_, err := parser.TextToMetricFamilies(bytes.NewReader(in))\n\n\tif err != nil {\n\t\treturn 0\n\t}\n\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/openmetrics_create.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage expfmt\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/common/model\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// MetricFamilyToOpenMetrics converts a MetricFamily proto message into the\n// OpenMetrics text format and writes the resulting lines to 'out'. It returns\n// the number of bytes written and any error encountered. The output will have\n// the same order as the input, no further sorting is performed. Furthermore,\n// this function assumes the input is already sanitized and does not perform any\n// sanity checks. If the input contains duplicate metrics or invalid metric or\n// label names, the conversion will result in invalid text format output.\n//\n// This function fulfills the type 'expfmt.encoder'.\n//\n// Note that OpenMetrics requires a final `# EOF` line. Since this function acts\n// on individual metric families, it is the responsibility of the caller to\n// append this line to 'out' once all metric families have been written.\n// Conveniently, this can be done by calling FinalizeOpenMetrics.\n//\n// The output should be fully OpenMetrics compliant. However, there are a few\n// missing features and peculiarities to avoid complications when switching from\n// Prometheus to OpenMetrics or vice versa:\n//\n//   - Counters are expected to have the `_total` suffix in their metric name. In\n//     the output, the suffix will be truncated from the `# TYPE` and `# HELP`\n//     line. A counter with a missing `_total` suffix is not an error. However,\n//     its type will be set to `unknown` in that case to avoid invalid OpenMetrics\n//     output.\n//\n//   - No support for the following (optional) features: `# UNIT` line, `_created`\n//     line, info type, stateset type, gaugehistogram type.\n//\n//   - The size of exemplar labels is not checked (i.e. it's possible to create\n//     exemplars that are larger than allowed by the OpenMetrics specification).\n//\n//   - The value of Counters is not checked. (OpenMetrics doesn't allow counters\n//     with a `NaN` value.)\nfunc MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int, err error) {\n\tname := in.GetName()\n\tif name == \"\" {\n\t\treturn 0, fmt.Errorf(\"MetricFamily has no name: %s\", in)\n\t}\n\n\t// Try the interface upgrade. If it doesn't work, we'll use a\n\t// bufio.Writer from the sync.Pool.\n\tw, ok := out.(enhancedWriter)\n\tif !ok {\n\t\tb := bufPool.Get().(*bufio.Writer)\n\t\tb.Reset(out)\n\t\tw = b\n\t\tdefer func() {\n\t\t\tbErr := b.Flush()\n\t\t\tif err == nil {\n\t\t\t\terr = bErr\n\t\t\t}\n\t\t\tbufPool.Put(b)\n\t\t}()\n\t}\n\n\tvar (\n\t\tn          int\n\t\tmetricType = in.GetType()\n\t\tshortName  = name\n\t)\n\tif metricType == dto.MetricType_COUNTER && strings.HasSuffix(shortName, \"_total\") {\n\t\tshortName = name[:len(name)-6]\n\t}\n\n\t// Comments, first HELP, then TYPE.\n\tif in.Help != nil {\n\t\tn, err = w.WriteString(\"# HELP \")\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tn, err = w.WriteString(shortName)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\terr = w.WriteByte(' ')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tn, err = writeEscapedString(w, *in.Help, true)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\terr = w.WriteByte('\\n')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\tn, err = w.WriteString(\"# TYPE \")\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\tn, err = w.WriteString(shortName)\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\tswitch metricType {\n\tcase dto.MetricType_COUNTER:\n\t\tif strings.HasSuffix(name, \"_total\") {\n\t\t\tn, err = w.WriteString(\" counter\\n\")\n\t\t} else {\n\t\t\tn, err = w.WriteString(\" unknown\\n\")\n\t\t}\n\tcase dto.MetricType_GAUGE:\n\t\tn, err = w.WriteString(\" gauge\\n\")\n\tcase dto.MetricType_SUMMARY:\n\t\tn, err = w.WriteString(\" summary\\n\")\n\tcase dto.MetricType_UNTYPED:\n\t\tn, err = w.WriteString(\" unknown\\n\")\n\tcase dto.MetricType_HISTOGRAM:\n\t\tn, err = w.WriteString(\" histogram\\n\")\n\tdefault:\n\t\treturn written, fmt.Errorf(\"unknown metric type %s\", metricType.String())\n\t}\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\n\t// Finally the samples, one line for each.\n\tfor _, metric := range in.Metric {\n\t\tswitch metricType {\n\t\tcase dto.MetricType_COUNTER:\n\t\t\tif metric.Counter == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected counter in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\t// Note that we have ensured above that either the name\n\t\t\t// ends on `_total` or that the rendered type is\n\t\t\t// `unknown`. Therefore, no `_total` must be added here.\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Counter.GetValue(), 0, false,\n\t\t\t\tmetric.Counter.Exemplar,\n\t\t\t)\n\t\tcase dto.MetricType_GAUGE:\n\t\t\tif metric.Gauge == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected gauge in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Gauge.GetValue(), 0, false,\n\t\t\t\tnil,\n\t\t\t)\n\t\tcase dto.MetricType_UNTYPED:\n\t\t\tif metric.Untyped == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected untyped in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Untyped.GetValue(), 0, false,\n\t\t\t\tnil,\n\t\t\t)\n\t\tcase dto.MetricType_SUMMARY:\n\t\t\tif metric.Summary == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected summary in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tfor _, q := range metric.Summary.Quantile {\n\t\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\t\tw, name, \"\", metric,\n\t\t\t\t\tmodel.QuantileLabel, q.GetQuantile(),\n\t\t\t\t\tq.GetValue(), 0, false,\n\t\t\t\t\tnil,\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"_sum\", metric, \"\", 0,\n\t\t\t\tmetric.Summary.GetSampleSum(), 0, false,\n\t\t\t\tnil,\n\t\t\t)\n\t\t\twritten += n\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"_count\", metric, \"\", 0,\n\t\t\t\t0, metric.Summary.GetSampleCount(), true,\n\t\t\t\tnil,\n\t\t\t)\n\t\tcase dto.MetricType_HISTOGRAM:\n\t\t\tif metric.Histogram == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected histogram in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tinfSeen := false\n\t\t\tfor _, b := range metric.Histogram.Bucket {\n\t\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\t\tw, name, \"_bucket\", metric,\n\t\t\t\t\tmodel.BucketLabel, b.GetUpperBound(),\n\t\t\t\t\t0, b.GetCumulativeCount(), true,\n\t\t\t\t\tb.Exemplar,\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif math.IsInf(b.GetUpperBound(), +1) {\n\t\t\t\t\tinfSeen = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !infSeen {\n\t\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\t\tw, name, \"_bucket\", metric,\n\t\t\t\t\tmodel.BucketLabel, math.Inf(+1),\n\t\t\t\t\t0, metric.Histogram.GetSampleCount(), true,\n\t\t\t\t\tnil,\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"_sum\", metric, \"\", 0,\n\t\t\t\tmetric.Histogram.GetSampleSum(), 0, false,\n\t\t\t\tnil,\n\t\t\t)\n\t\t\twritten += n\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tn, err = writeOpenMetricsSample(\n\t\t\t\tw, name, \"_count\", metric, \"\", 0,\n\t\t\t\t0, metric.Histogram.GetSampleCount(), true,\n\t\t\t\tnil,\n\t\t\t)\n\t\tdefault:\n\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\"unexpected type in metric %s %s\", name, metric,\n\t\t\t)\n\t\t}\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// FinalizeOpenMetrics writes the final `# EOF\\n` line required by OpenMetrics.\nfunc FinalizeOpenMetrics(w io.Writer) (written int, err error) {\n\treturn w.Write([]byte(\"# EOF\\n\"))\n}\n\n// writeOpenMetricsSample writes a single sample in OpenMetrics text format to\n// w, given the metric name, the metric proto message itself, optionally an\n// additional label name with a float64 value (use empty string as label name if\n// not required), the value (optionally as float64 or uint64, determined by\n// useIntValue), and optionally an exemplar (use nil if not required). The\n// function returns the number of bytes written and any error encountered.\nfunc writeOpenMetricsSample(\n\tw enhancedWriter,\n\tname, suffix string,\n\tmetric *dto.Metric,\n\tadditionalLabelName string, additionalLabelValue float64,\n\tfloatValue float64, intValue uint64, useIntValue bool,\n\texemplar *dto.Exemplar,\n) (int, error) {\n\tvar written int\n\tn, err := w.WriteString(name)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif suffix != \"\" {\n\t\tn, err = w.WriteString(suffix)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\tn, err = writeOpenMetricsLabelPairs(\n\t\tw, metric.Label, additionalLabelName, additionalLabelValue,\n\t)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\terr = w.WriteByte(' ')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif useIntValue {\n\t\tn, err = writeUint(w, intValue)\n\t} else {\n\t\tn, err = writeOpenMetricsFloat(w, floatValue)\n\t}\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif metric.TimestampMs != nil {\n\t\terr = w.WriteByte(' ')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\t// TODO(beorn7): Format this directly without converting to a float first.\n\t\tn, err = writeOpenMetricsFloat(w, float64(*metric.TimestampMs)/1000)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\tif exemplar != nil {\n\t\tn, err = writeExemplar(w, exemplar)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\terr = w.WriteByte('\\n')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\treturn written, nil\n}\n\n// writeOpenMetricsLabelPairs works like writeOpenMetrics but formats the float\n// in OpenMetrics style.\nfunc writeOpenMetricsLabelPairs(\n\tw enhancedWriter,\n\tin []*dto.LabelPair,\n\tadditionalLabelName string, additionalLabelValue float64,\n) (int, error) {\n\tif len(in) == 0 && additionalLabelName == \"\" {\n\t\treturn 0, nil\n\t}\n\tvar (\n\t\twritten   int\n\t\tseparator byte = '{'\n\t)\n\tfor _, lp := range in {\n\t\terr := w.WriteByte(separator)\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err := w.WriteString(lp.GetName())\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = w.WriteString(`=\"`)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = writeEscapedString(w, lp.GetValue(), true)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\terr = w.WriteByte('\"')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tseparator = ','\n\t}\n\tif additionalLabelName != \"\" {\n\t\terr := w.WriteByte(separator)\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err := w.WriteString(additionalLabelName)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = w.WriteString(`=\"`)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = writeOpenMetricsFloat(w, additionalLabelValue)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\terr = w.WriteByte('\"')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\terr := w.WriteByte('}')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\treturn written, nil\n}\n\n// writeExemplar writes the provided exemplar in OpenMetrics format to w. The\n// function returns the number of bytes written and any error encountered.\nfunc writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) {\n\twritten := 0\n\tn, err := w.WriteString(\" # \")\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tn, err = writeOpenMetricsLabelPairs(w, e.Label, \"\", 0)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\terr = w.WriteByte(' ')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tn, err = writeOpenMetricsFloat(w, e.GetValue())\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif e.Timestamp != nil {\n\t\terr = w.WriteByte(' ')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\terr = (*e).Timestamp.CheckValid()\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tts := (*e).Timestamp.AsTime()\n\t\t// TODO(beorn7): Format this directly from components of ts to\n\t\t// avoid overflow/underflow and precision issues of the float\n\t\t// conversion.\n\t\tn, err = writeOpenMetricsFloat(w, float64(ts.UnixNano())/1e9)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\treturn written, nil\n}\n\n// writeOpenMetricsFloat works like writeFloat but appends \".0\" if the resulting\n// number would otherwise contain neither a \".\" nor an \"e\".\nfunc writeOpenMetricsFloat(w enhancedWriter, f float64) (int, error) {\n\tswitch {\n\tcase f == 1:\n\t\treturn w.WriteString(\"1.0\")\n\tcase f == 0:\n\t\treturn w.WriteString(\"0.0\")\n\tcase f == -1:\n\t\treturn w.WriteString(\"-1.0\")\n\tcase math.IsNaN(f):\n\t\treturn w.WriteString(\"NaN\")\n\tcase math.IsInf(f, +1):\n\t\treturn w.WriteString(\"+Inf\")\n\tcase math.IsInf(f, -1):\n\t\treturn w.WriteString(\"-Inf\")\n\tdefault:\n\t\tbp := numBufPool.Get().(*[]byte)\n\t\t*bp = strconv.AppendFloat((*bp)[:0], f, 'g', -1, 64)\n\t\tif !bytes.ContainsAny(*bp, \"e.\") {\n\t\t\t*bp = append(*bp, '.', '0')\n\t\t}\n\t\twritten, err := w.Write(*bp)\n\t\tnumBufPool.Put(bp)\n\t\treturn written, err\n\t}\n}\n\n// writeUint is like writeInt just for uint64.\nfunc writeUint(w enhancedWriter, u uint64) (int, error) {\n\tbp := numBufPool.Get().(*[]byte)\n\t*bp = strconv.AppendUint((*bp)[:0], u, 10)\n\twritten, err := w.Write(*bp)\n\tnumBufPool.Put(bp)\n\treturn written, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/text_create.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage expfmt\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/prometheus/common/model\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n)\n\n// enhancedWriter has all the enhanced write functions needed here. bufio.Writer\n// implements it.\ntype enhancedWriter interface {\n\tio.Writer\n\tWriteRune(r rune) (n int, err error)\n\tWriteString(s string) (n int, err error)\n\tWriteByte(c byte) error\n}\n\nconst (\n\tinitialNumBufSize = 24\n)\n\nvar (\n\tbufPool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn bufio.NewWriter(io.Discard)\n\t\t},\n\t}\n\tnumBufPool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\tb := make([]byte, 0, initialNumBufSize)\n\t\t\treturn &b\n\t\t},\n\t}\n)\n\n// MetricFamilyToText converts a MetricFamily proto message into text format and\n// writes the resulting lines to 'out'. It returns the number of bytes written\n// and any error encountered. The output will have the same order as the input,\n// no further sorting is performed. Furthermore, this function assumes the input\n// is already sanitized and does not perform any sanity checks. If the input\n// contains duplicate metrics or invalid metric or label names, the conversion\n// will result in invalid text format output.\n//\n// This method fulfills the type 'prometheus.encoder'.\nfunc MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err error) {\n\t// Fail-fast checks.\n\tif len(in.Metric) == 0 {\n\t\treturn 0, fmt.Errorf(\"MetricFamily has no metrics: %s\", in)\n\t}\n\tname := in.GetName()\n\tif name == \"\" {\n\t\treturn 0, fmt.Errorf(\"MetricFamily has no name: %s\", in)\n\t}\n\n\t// Try the interface upgrade. If it doesn't work, we'll use a\n\t// bufio.Writer from the sync.Pool.\n\tw, ok := out.(enhancedWriter)\n\tif !ok {\n\t\tb := bufPool.Get().(*bufio.Writer)\n\t\tb.Reset(out)\n\t\tw = b\n\t\tdefer func() {\n\t\t\tbErr := b.Flush()\n\t\t\tif err == nil {\n\t\t\t\terr = bErr\n\t\t\t}\n\t\t\tbufPool.Put(b)\n\t\t}()\n\t}\n\n\tvar n int\n\n\t// Comments, first HELP, then TYPE.\n\tif in.Help != nil {\n\t\tn, err = w.WriteString(\"# HELP \")\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tn, err = w.WriteString(name)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\terr = w.WriteByte(' ')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tn, err = writeEscapedString(w, *in.Help, false)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\terr = w.WriteByte('\\n')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\tn, err = w.WriteString(\"# TYPE \")\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\tn, err = w.WriteString(name)\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\tmetricType := in.GetType()\n\tswitch metricType {\n\tcase dto.MetricType_COUNTER:\n\t\tn, err = w.WriteString(\" counter\\n\")\n\tcase dto.MetricType_GAUGE:\n\t\tn, err = w.WriteString(\" gauge\\n\")\n\tcase dto.MetricType_SUMMARY:\n\t\tn, err = w.WriteString(\" summary\\n\")\n\tcase dto.MetricType_UNTYPED:\n\t\tn, err = w.WriteString(\" untyped\\n\")\n\tcase dto.MetricType_HISTOGRAM:\n\t\tn, err = w.WriteString(\" histogram\\n\")\n\tdefault:\n\t\treturn written, fmt.Errorf(\"unknown metric type %s\", metricType.String())\n\t}\n\twritten += n\n\tif err != nil {\n\t\treturn\n\t}\n\n\t// Finally the samples, one line for each.\n\tfor _, metric := range in.Metric {\n\t\tswitch metricType {\n\t\tcase dto.MetricType_COUNTER:\n\t\t\tif metric.Counter == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected counter in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Counter.GetValue(),\n\t\t\t)\n\t\tcase dto.MetricType_GAUGE:\n\t\t\tif metric.Gauge == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected gauge in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Gauge.GetValue(),\n\t\t\t)\n\t\tcase dto.MetricType_UNTYPED:\n\t\t\tif metric.Untyped == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected untyped in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"\", metric, \"\", 0,\n\t\t\t\tmetric.Untyped.GetValue(),\n\t\t\t)\n\t\tcase dto.MetricType_SUMMARY:\n\t\t\tif metric.Summary == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected summary in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tfor _, q := range metric.Summary.Quantile {\n\t\t\t\tn, err = writeSample(\n\t\t\t\t\tw, name, \"\", metric,\n\t\t\t\t\tmodel.QuantileLabel, q.GetQuantile(),\n\t\t\t\t\tq.GetValue(),\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"_sum\", metric, \"\", 0,\n\t\t\t\tmetric.Summary.GetSampleSum(),\n\t\t\t)\n\t\t\twritten += n\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"_count\", metric, \"\", 0,\n\t\t\t\tfloat64(metric.Summary.GetSampleCount()),\n\t\t\t)\n\t\tcase dto.MetricType_HISTOGRAM:\n\t\t\tif metric.Histogram == nil {\n\t\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\t\"expected histogram in metric %s %s\", name, metric,\n\t\t\t\t)\n\t\t\t}\n\t\t\tinfSeen := false\n\t\t\tfor _, b := range metric.Histogram.Bucket {\n\t\t\t\tn, err = writeSample(\n\t\t\t\t\tw, name, \"_bucket\", metric,\n\t\t\t\t\tmodel.BucketLabel, b.GetUpperBound(),\n\t\t\t\t\tfloat64(b.GetCumulativeCount()),\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif math.IsInf(b.GetUpperBound(), +1) {\n\t\t\t\t\tinfSeen = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !infSeen {\n\t\t\t\tn, err = writeSample(\n\t\t\t\t\tw, name, \"_bucket\", metric,\n\t\t\t\t\tmodel.BucketLabel, math.Inf(+1),\n\t\t\t\t\tfloat64(metric.Histogram.GetSampleCount()),\n\t\t\t\t)\n\t\t\t\twritten += n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"_sum\", metric, \"\", 0,\n\t\t\t\tmetric.Histogram.GetSampleSum(),\n\t\t\t)\n\t\t\twritten += n\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tn, err = writeSample(\n\t\t\t\tw, name, \"_count\", metric, \"\", 0,\n\t\t\t\tfloat64(metric.Histogram.GetSampleCount()),\n\t\t\t)\n\t\tdefault:\n\t\t\treturn written, fmt.Errorf(\n\t\t\t\t\"unexpected type in metric %s %s\", name, metric,\n\t\t\t)\n\t\t}\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// writeSample writes a single sample in text format to w, given the metric\n// name, the metric proto message itself, optionally an additional label name\n// with a float64 value (use empty string as label name if not required), and\n// the value. The function returns the number of bytes written and any error\n// encountered.\nfunc writeSample(\n\tw enhancedWriter,\n\tname, suffix string,\n\tmetric *dto.Metric,\n\tadditionalLabelName string, additionalLabelValue float64,\n\tvalue float64,\n) (int, error) {\n\tvar written int\n\tn, err := w.WriteString(name)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif suffix != \"\" {\n\t\tn, err = w.WriteString(suffix)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\tn, err = writeLabelPairs(\n\t\tw, metric.Label, additionalLabelName, additionalLabelValue,\n\t)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\terr = w.WriteByte(' ')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tn, err = writeFloat(w, value)\n\twritten += n\n\tif err != nil {\n\t\treturn written, err\n\t}\n\tif metric.TimestampMs != nil {\n\t\terr = w.WriteByte(' ')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = writeInt(w, *metric.TimestampMs)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\terr = w.WriteByte('\\n')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\treturn written, nil\n}\n\n// writeLabelPairs converts a slice of LabelPair proto messages plus the\n// explicitly given additional label pair into text formatted as required by the\n// text format and writes it to 'w'. An empty slice in combination with an empty\n// string 'additionalLabelName' results in nothing being written. Otherwise, the\n// label pairs are written, escaped as required by the text format, and enclosed\n// in '{...}'. The function returns the number of bytes written and any error\n// encountered.\nfunc writeLabelPairs(\n\tw enhancedWriter,\n\tin []*dto.LabelPair,\n\tadditionalLabelName string, additionalLabelValue float64,\n) (int, error) {\n\tif len(in) == 0 && additionalLabelName == \"\" {\n\t\treturn 0, nil\n\t}\n\tvar (\n\t\twritten   int\n\t\tseparator byte = '{'\n\t)\n\tfor _, lp := range in {\n\t\terr := w.WriteByte(separator)\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err := w.WriteString(lp.GetName())\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = w.WriteString(`=\"`)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = writeEscapedString(w, lp.GetValue(), true)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\terr = w.WriteByte('\"')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tseparator = ','\n\t}\n\tif additionalLabelName != \"\" {\n\t\terr := w.WriteByte(separator)\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err := w.WriteString(additionalLabelName)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = w.WriteString(`=\"`)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\tn, err = writeFloat(w, additionalLabelValue)\n\t\twritten += n\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t\terr = w.WriteByte('\"')\n\t\twritten++\n\t\tif err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\terr := w.WriteByte('}')\n\twritten++\n\tif err != nil {\n\t\treturn written, err\n\t}\n\treturn written, nil\n}\n\n// writeEscapedString replaces '\\' by '\\\\', new line character by '\\n', and - if\n// includeDoubleQuote is true - '\"' by '\\\"'.\nvar (\n\tescaper       = strings.NewReplacer(\"\\\\\", `\\\\`, \"\\n\", `\\n`)\n\tquotedEscaper = strings.NewReplacer(\"\\\\\", `\\\\`, \"\\n\", `\\n`, \"\\\"\", `\\\"`)\n)\n\nfunc writeEscapedString(w enhancedWriter, v string, includeDoubleQuote bool) (int, error) {\n\tif includeDoubleQuote {\n\t\treturn quotedEscaper.WriteString(w, v)\n\t}\n\treturn escaper.WriteString(w, v)\n}\n\n// writeFloat is equivalent to fmt.Fprint with a float64 argument but hardcodes\n// a few common cases for increased efficiency. For non-hardcoded cases, it uses\n// strconv.AppendFloat to avoid allocations, similar to writeInt.\nfunc writeFloat(w enhancedWriter, f float64) (int, error) {\n\tswitch {\n\tcase f == 1:\n\t\treturn 1, w.WriteByte('1')\n\tcase f == 0:\n\t\treturn 1, w.WriteByte('0')\n\tcase f == -1:\n\t\treturn w.WriteString(\"-1\")\n\tcase math.IsNaN(f):\n\t\treturn w.WriteString(\"NaN\")\n\tcase math.IsInf(f, +1):\n\t\treturn w.WriteString(\"+Inf\")\n\tcase math.IsInf(f, -1):\n\t\treturn w.WriteString(\"-Inf\")\n\tdefault:\n\t\tbp := numBufPool.Get().(*[]byte)\n\t\t*bp = strconv.AppendFloat((*bp)[:0], f, 'g', -1, 64)\n\t\twritten, err := w.Write(*bp)\n\t\tnumBufPool.Put(bp)\n\t\treturn written, err\n\t}\n}\n\n// writeInt is equivalent to fmt.Fprint with an int64 argument but uses\n// strconv.AppendInt with a byte slice taken from a sync.Pool to avoid\n// allocations.\nfunc writeInt(w enhancedWriter, i int64) (int, error) {\n\tbp := numBufPool.Get().(*[]byte)\n\t*bp = strconv.AppendInt((*bp)[:0], i, 10)\n\twritten, err := w.Write(*bp)\n\tnumBufPool.Put(bp)\n\treturn written, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/expfmt/text_parse.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage expfmt\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\tdto \"github.com/prometheus/client_model/go\"\n\n\t\"github.com/prometheus/common/model\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// A stateFn is a function that represents a state in a state machine. By\n// executing it, the state is progressed to the next state. The stateFn returns\n// another stateFn, which represents the new state. The end state is represented\n// by nil.\ntype stateFn func() stateFn\n\n// ParseError signals errors while parsing the simple and flat text-based\n// exchange format.\ntype ParseError struct {\n\tLine int\n\tMsg  string\n}\n\n// Error implements the error interface.\nfunc (e ParseError) Error() string {\n\treturn fmt.Sprintf(\"text format parsing error in line %d: %s\", e.Line, e.Msg)\n}\n\n// TextParser is used to parse the simple and flat text-based exchange format. Its\n// zero value is ready to use.\ntype TextParser struct {\n\tmetricFamiliesByName map[string]*dto.MetricFamily\n\tbuf                  *bufio.Reader // Where the parsed input is read through.\n\terr                  error         // Most recent error.\n\tlineCount            int           // Tracks the line count for error messages.\n\tcurrentByte          byte          // The most recent byte read.\n\tcurrentToken         bytes.Buffer  // Re-used each time a token has to be gathered from multiple bytes.\n\tcurrentMF            *dto.MetricFamily\n\tcurrentMetric        *dto.Metric\n\tcurrentLabelPair     *dto.LabelPair\n\n\t// The remaining member variables are only used for summaries/histograms.\n\tcurrentLabels map[string]string // All labels including '__name__' but excluding 'quantile'/'le'\n\t// Summary specific.\n\tsummaries       map[uint64]*dto.Metric // Key is created with LabelsToSignature.\n\tcurrentQuantile float64\n\t// Histogram specific.\n\thistograms    map[uint64]*dto.Metric // Key is created with LabelsToSignature.\n\tcurrentBucket float64\n\t// These tell us if the currently processed line ends on '_count' or\n\t// '_sum' respectively and belong to a summary/histogram, representing the sample\n\t// count and sum of that summary/histogram.\n\tcurrentIsSummaryCount, currentIsSummarySum     bool\n\tcurrentIsHistogramCount, currentIsHistogramSum bool\n}\n\n// TextToMetricFamilies reads 'in' as the simple and flat text-based exchange\n// format and creates MetricFamily proto messages. It returns the MetricFamily\n// proto messages in a map where the metric names are the keys, along with any\n// error encountered.\n//\n// If the input contains duplicate metrics (i.e. lines with the same metric name\n// and exactly the same label set), the resulting MetricFamily will contain\n// duplicate Metric proto messages. Similar is true for duplicate label\n// names. Checks for duplicates have to be performed separately, if required.\n// Also note that neither the metrics within each MetricFamily are sorted nor\n// the label pairs within each Metric. Sorting is not required for the most\n// frequent use of this method, which is sample ingestion in the Prometheus\n// server. However, for presentation purposes, you might want to sort the\n// metrics, and in some cases, you must sort the labels, e.g. for consumption by\n// the metric family injection hook of the Prometheus registry.\n//\n// Summaries and histograms are rather special beasts. You would probably not\n// use them in the simple text format anyway. This method can deal with\n// summaries and histograms if they are presented in exactly the way the\n// text.Create function creates them.\n//\n// This method must not be called concurrently. If you want to parse different\n// input concurrently, instantiate a separate Parser for each goroutine.\nfunc (p *TextParser) TextToMetricFamilies(in io.Reader) (map[string]*dto.MetricFamily, error) {\n\tp.reset(in)\n\tfor nextState := p.startOfLine; nextState != nil; nextState = nextState() {\n\t\t// Magic happens here...\n\t}\n\t// Get rid of empty metric families.\n\tfor k, mf := range p.metricFamiliesByName {\n\t\tif len(mf.GetMetric()) == 0 {\n\t\t\tdelete(p.metricFamiliesByName, k)\n\t\t}\n\t}\n\t// If p.err is io.EOF now, we have run into a premature end of the input\n\t// stream. Turn this error into something nicer and more\n\t// meaningful. (io.EOF is often used as a signal for the legitimate end\n\t// of an input stream.)\n\tif p.err == io.EOF {\n\t\tp.parseError(\"unexpected end of input stream\")\n\t}\n\treturn p.metricFamiliesByName, p.err\n}\n\nfunc (p *TextParser) reset(in io.Reader) {\n\tp.metricFamiliesByName = map[string]*dto.MetricFamily{}\n\tif p.buf == nil {\n\t\tp.buf = bufio.NewReader(in)\n\t} else {\n\t\tp.buf.Reset(in)\n\t}\n\tp.err = nil\n\tp.lineCount = 0\n\tif p.summaries == nil || len(p.summaries) > 0 {\n\t\tp.summaries = map[uint64]*dto.Metric{}\n\t}\n\tif p.histograms == nil || len(p.histograms) > 0 {\n\t\tp.histograms = map[uint64]*dto.Metric{}\n\t}\n\tp.currentQuantile = math.NaN()\n\tp.currentBucket = math.NaN()\n}\n\n// startOfLine represents the state where the next byte read from p.buf is the\n// start of a line (or whitespace leading up to it).\nfunc (p *TextParser) startOfLine() stateFn {\n\tp.lineCount++\n\tif p.skipBlankTab(); p.err != nil {\n\t\t// This is the only place that we expect to see io.EOF,\n\t\t// which is not an error but the signal that we are done.\n\t\t// Any other error that happens to align with the start of\n\t\t// a line is still an error.\n\t\tif p.err == io.EOF {\n\t\t\tp.err = nil\n\t\t}\n\t\treturn nil\n\t}\n\tswitch p.currentByte {\n\tcase '#':\n\t\treturn p.startComment\n\tcase '\\n':\n\t\treturn p.startOfLine // Empty line, start the next one.\n\t}\n\treturn p.readingMetricName\n}\n\n// startComment represents the state where the next byte read from p.buf is the\n// start of a comment (or whitespace leading up to it).\nfunc (p *TextParser) startComment() stateFn {\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte == '\\n' {\n\t\treturn p.startOfLine\n\t}\n\tif p.readTokenUntilWhitespace(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\t// If we have hit the end of line already, there is nothing left\n\t// to do. This is not considered a syntax error.\n\tif p.currentByte == '\\n' {\n\t\treturn p.startOfLine\n\t}\n\tkeyword := p.currentToken.String()\n\tif keyword != \"HELP\" && keyword != \"TYPE\" {\n\t\t// Generic comment, ignore by fast forwarding to end of line.\n\t\tfor p.currentByte != '\\n' {\n\t\t\tif p.currentByte, p.err = p.buf.ReadByte(); p.err != nil {\n\t\t\t\treturn nil // Unexpected end of input.\n\t\t\t}\n\t\t}\n\t\treturn p.startOfLine\n\t}\n\t// There is something. Next has to be a metric name.\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.readTokenAsMetricName(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte == '\\n' {\n\t\t// At the end of the line already.\n\t\t// Again, this is not considered a syntax error.\n\t\treturn p.startOfLine\n\t}\n\tif !isBlankOrTab(p.currentByte) {\n\t\tp.parseError(\"invalid metric name in comment\")\n\t\treturn nil\n\t}\n\tp.setOrCreateCurrentMF()\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte == '\\n' {\n\t\t// At the end of the line already.\n\t\t// Again, this is not considered a syntax error.\n\t\treturn p.startOfLine\n\t}\n\tswitch keyword {\n\tcase \"HELP\":\n\t\treturn p.readingHelp\n\tcase \"TYPE\":\n\t\treturn p.readingType\n\t}\n\tpanic(fmt.Sprintf(\"code error: unexpected keyword %q\", keyword))\n}\n\n// readingMetricName represents the state where the last byte read (now in\n// p.currentByte) is the first byte of a metric name.\nfunc (p *TextParser) readingMetricName() stateFn {\n\tif p.readTokenAsMetricName(); p.err != nil {\n\t\treturn nil\n\t}\n\tif p.currentToken.Len() == 0 {\n\t\tp.parseError(\"invalid metric name\")\n\t\treturn nil\n\t}\n\tp.setOrCreateCurrentMF()\n\t// Now is the time to fix the type if it hasn't happened yet.\n\tif p.currentMF.Type == nil {\n\t\tp.currentMF.Type = dto.MetricType_UNTYPED.Enum()\n\t}\n\tp.currentMetric = &dto.Metric{}\n\t// Do not append the newly created currentMetric to\n\t// currentMF.Metric right now. First wait if this is a summary,\n\t// and the metric exists already, which we can only know after\n\t// having read all the labels.\n\tif p.skipBlankTabIfCurrentBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\treturn p.readingLabels\n}\n\n// readingLabels represents the state where the last byte read (now in\n// p.currentByte) is either the first byte of the label set (i.e. a '{'), or the\n// first byte of the value (otherwise).\nfunc (p *TextParser) readingLabels() stateFn {\n\t// Summaries/histograms are special. We have to reset the\n\t// currentLabels map, currentQuantile and currentBucket before starting to\n\t// read labels.\n\tif p.currentMF.GetType() == dto.MetricType_SUMMARY || p.currentMF.GetType() == dto.MetricType_HISTOGRAM {\n\t\tp.currentLabels = map[string]string{}\n\t\tp.currentLabels[string(model.MetricNameLabel)] = p.currentMF.GetName()\n\t\tp.currentQuantile = math.NaN()\n\t\tp.currentBucket = math.NaN()\n\t}\n\tif p.currentByte != '{' {\n\t\treturn p.readingValue\n\t}\n\treturn p.startLabelName\n}\n\n// startLabelName represents the state where the next byte read from p.buf is\n// the start of a label name (or whitespace leading up to it).\nfunc (p *TextParser) startLabelName() stateFn {\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte == '}' {\n\t\tif p.skipBlankTab(); p.err != nil {\n\t\t\treturn nil // Unexpected end of input.\n\t\t}\n\t\treturn p.readingValue\n\t}\n\tif p.readTokenAsLabelName(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentToken.Len() == 0 {\n\t\tp.parseError(fmt.Sprintf(\"invalid label name for metric %q\", p.currentMF.GetName()))\n\t\treturn nil\n\t}\n\tp.currentLabelPair = &dto.LabelPair{Name: proto.String(p.currentToken.String())}\n\tif p.currentLabelPair.GetName() == string(model.MetricNameLabel) {\n\t\tp.parseError(fmt.Sprintf(\"label name %q is reserved\", model.MetricNameLabel))\n\t\treturn nil\n\t}\n\t// Special summary/histogram treatment. Don't add 'quantile' and 'le'\n\t// labels to 'real' labels.\n\tif !(p.currentMF.GetType() == dto.MetricType_SUMMARY && p.currentLabelPair.GetName() == model.QuantileLabel) &&\n\t\t!(p.currentMF.GetType() == dto.MetricType_HISTOGRAM && p.currentLabelPair.GetName() == model.BucketLabel) {\n\t\tp.currentMetric.Label = append(p.currentMetric.Label, p.currentLabelPair)\n\t}\n\tif p.skipBlankTabIfCurrentBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte != '=' {\n\t\tp.parseError(fmt.Sprintf(\"expected '=' after label name, found %q\", p.currentByte))\n\t\treturn nil\n\t}\n\t// Check for duplicate label names.\n\tlabels := make(map[string]struct{})\n\tfor _, l := range p.currentMetric.Label {\n\t\tlName := l.GetName()\n\t\tif _, exists := labels[lName]; !exists {\n\t\t\tlabels[lName] = struct{}{}\n\t\t} else {\n\t\t\tp.parseError(fmt.Sprintf(\"duplicate label names for metric %q\", p.currentMF.GetName()))\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn p.startLabelValue\n}\n\n// startLabelValue represents the state where the next byte read from p.buf is\n// the start of a (quoted) label value (or whitespace leading up to it).\nfunc (p *TextParser) startLabelValue() stateFn {\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentByte != '\"' {\n\t\tp.parseError(fmt.Sprintf(\"expected '\\\"' at start of label value, found %q\", p.currentByte))\n\t\treturn nil\n\t}\n\tif p.readTokenAsLabelValue(); p.err != nil {\n\t\treturn nil\n\t}\n\tif !model.LabelValue(p.currentToken.String()).IsValid() {\n\t\tp.parseError(fmt.Sprintf(\"invalid label value %q\", p.currentToken.String()))\n\t\treturn nil\n\t}\n\tp.currentLabelPair.Value = proto.String(p.currentToken.String())\n\t// Special treatment of summaries:\n\t// - Quantile labels are special, will result in dto.Quantile later.\n\t// - Other labels have to be added to currentLabels for signature calculation.\n\tif p.currentMF.GetType() == dto.MetricType_SUMMARY {\n\t\tif p.currentLabelPair.GetName() == model.QuantileLabel {\n\t\t\tif p.currentQuantile, p.err = parseFloat(p.currentLabelPair.GetValue()); p.err != nil {\n\t\t\t\t// Create a more helpful error message.\n\t\t\t\tp.parseError(fmt.Sprintf(\"expected float as value for 'quantile' label, got %q\", p.currentLabelPair.GetValue()))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t} else {\n\t\t\tp.currentLabels[p.currentLabelPair.GetName()] = p.currentLabelPair.GetValue()\n\t\t}\n\t}\n\t// Similar special treatment of histograms.\n\tif p.currentMF.GetType() == dto.MetricType_HISTOGRAM {\n\t\tif p.currentLabelPair.GetName() == model.BucketLabel {\n\t\t\tif p.currentBucket, p.err = parseFloat(p.currentLabelPair.GetValue()); p.err != nil {\n\t\t\t\t// Create a more helpful error message.\n\t\t\t\tp.parseError(fmt.Sprintf(\"expected float as value for 'le' label, got %q\", p.currentLabelPair.GetValue()))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t} else {\n\t\t\tp.currentLabels[p.currentLabelPair.GetName()] = p.currentLabelPair.GetValue()\n\t\t}\n\t}\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tswitch p.currentByte {\n\tcase ',':\n\t\treturn p.startLabelName\n\n\tcase '}':\n\t\tif p.skipBlankTab(); p.err != nil {\n\t\t\treturn nil // Unexpected end of input.\n\t\t}\n\t\treturn p.readingValue\n\tdefault:\n\t\tp.parseError(fmt.Sprintf(\"unexpected end of label value %q\", p.currentLabelPair.GetValue()))\n\t\treturn nil\n\t}\n}\n\n// readingValue represents the state where the last byte read (now in\n// p.currentByte) is the first byte of the sample value (i.e. a float).\nfunc (p *TextParser) readingValue() stateFn {\n\t// When we are here, we have read all the labels, so for the\n\t// special case of a summary/histogram, we can finally find out\n\t// if the metric already exists.\n\tif p.currentMF.GetType() == dto.MetricType_SUMMARY {\n\t\tsignature := model.LabelsToSignature(p.currentLabels)\n\t\tif summary := p.summaries[signature]; summary != nil {\n\t\t\tp.currentMetric = summary\n\t\t} else {\n\t\t\tp.summaries[signature] = p.currentMetric\n\t\t\tp.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)\n\t\t}\n\t} else if p.currentMF.GetType() == dto.MetricType_HISTOGRAM {\n\t\tsignature := model.LabelsToSignature(p.currentLabels)\n\t\tif histogram := p.histograms[signature]; histogram != nil {\n\t\t\tp.currentMetric = histogram\n\t\t} else {\n\t\t\tp.histograms[signature] = p.currentMetric\n\t\t\tp.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)\n\t\t}\n\t} else {\n\t\tp.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)\n\t}\n\tif p.readTokenUntilWhitespace(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tvalue, err := parseFloat(p.currentToken.String())\n\tif err != nil {\n\t\t// Create a more helpful error message.\n\t\tp.parseError(fmt.Sprintf(\"expected float as value, got %q\", p.currentToken.String()))\n\t\treturn nil\n\t}\n\tswitch p.currentMF.GetType() {\n\tcase dto.MetricType_COUNTER:\n\t\tp.currentMetric.Counter = &dto.Counter{Value: proto.Float64(value)}\n\tcase dto.MetricType_GAUGE:\n\t\tp.currentMetric.Gauge = &dto.Gauge{Value: proto.Float64(value)}\n\tcase dto.MetricType_UNTYPED:\n\t\tp.currentMetric.Untyped = &dto.Untyped{Value: proto.Float64(value)}\n\tcase dto.MetricType_SUMMARY:\n\t\t// *sigh*\n\t\tif p.currentMetric.Summary == nil {\n\t\t\tp.currentMetric.Summary = &dto.Summary{}\n\t\t}\n\t\tswitch {\n\t\tcase p.currentIsSummaryCount:\n\t\t\tp.currentMetric.Summary.SampleCount = proto.Uint64(uint64(value))\n\t\tcase p.currentIsSummarySum:\n\t\t\tp.currentMetric.Summary.SampleSum = proto.Float64(value)\n\t\tcase !math.IsNaN(p.currentQuantile):\n\t\t\tp.currentMetric.Summary.Quantile = append(\n\t\t\t\tp.currentMetric.Summary.Quantile,\n\t\t\t\t&dto.Quantile{\n\t\t\t\t\tQuantile: proto.Float64(p.currentQuantile),\n\t\t\t\t\tValue:    proto.Float64(value),\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\tcase dto.MetricType_HISTOGRAM:\n\t\t// *sigh*\n\t\tif p.currentMetric.Histogram == nil {\n\t\t\tp.currentMetric.Histogram = &dto.Histogram{}\n\t\t}\n\t\tswitch {\n\t\tcase p.currentIsHistogramCount:\n\t\t\tp.currentMetric.Histogram.SampleCount = proto.Uint64(uint64(value))\n\t\tcase p.currentIsHistogramSum:\n\t\t\tp.currentMetric.Histogram.SampleSum = proto.Float64(value)\n\t\tcase !math.IsNaN(p.currentBucket):\n\t\t\tp.currentMetric.Histogram.Bucket = append(\n\t\t\t\tp.currentMetric.Histogram.Bucket,\n\t\t\t\t&dto.Bucket{\n\t\t\t\t\tUpperBound:      proto.Float64(p.currentBucket),\n\t\t\t\t\tCumulativeCount: proto.Uint64(uint64(value)),\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\tdefault:\n\t\tp.err = fmt.Errorf(\"unexpected type for metric name %q\", p.currentMF.GetName())\n\t}\n\tif p.currentByte == '\\n' {\n\t\treturn p.startOfLine\n\t}\n\treturn p.startTimestamp\n}\n\n// startTimestamp represents the state where the next byte read from p.buf is\n// the start of the timestamp (or whitespace leading up to it).\nfunc (p *TextParser) startTimestamp() stateFn {\n\tif p.skipBlankTab(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.readTokenUntilWhitespace(); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\ttimestamp, err := strconv.ParseInt(p.currentToken.String(), 10, 64)\n\tif err != nil {\n\t\t// Create a more helpful error message.\n\t\tp.parseError(fmt.Sprintf(\"expected integer as timestamp, got %q\", p.currentToken.String()))\n\t\treturn nil\n\t}\n\tp.currentMetric.TimestampMs = proto.Int64(timestamp)\n\tif p.readTokenUntilNewline(false); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tif p.currentToken.Len() > 0 {\n\t\tp.parseError(fmt.Sprintf(\"spurious string after timestamp: %q\", p.currentToken.String()))\n\t\treturn nil\n\t}\n\treturn p.startOfLine\n}\n\n// readingHelp represents the state where the last byte read (now in\n// p.currentByte) is the first byte of the docstring after 'HELP'.\nfunc (p *TextParser) readingHelp() stateFn {\n\tif p.currentMF.Help != nil {\n\t\tp.parseError(fmt.Sprintf(\"second HELP line for metric name %q\", p.currentMF.GetName()))\n\t\treturn nil\n\t}\n\t// Rest of line is the docstring.\n\tif p.readTokenUntilNewline(true); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tp.currentMF.Help = proto.String(p.currentToken.String())\n\treturn p.startOfLine\n}\n\n// readingType represents the state where the last byte read (now in\n// p.currentByte) is the first byte of the type hint after 'HELP'.\nfunc (p *TextParser) readingType() stateFn {\n\tif p.currentMF.Type != nil {\n\t\tp.parseError(fmt.Sprintf(\"second TYPE line for metric name %q, or TYPE reported after samples\", p.currentMF.GetName()))\n\t\treturn nil\n\t}\n\t// Rest of line is the type.\n\tif p.readTokenUntilNewline(false); p.err != nil {\n\t\treturn nil // Unexpected end of input.\n\t}\n\tmetricType, ok := dto.MetricType_value[strings.ToUpper(p.currentToken.String())]\n\tif !ok {\n\t\tp.parseError(fmt.Sprintf(\"unknown metric type %q\", p.currentToken.String()))\n\t\treturn nil\n\t}\n\tp.currentMF.Type = dto.MetricType(metricType).Enum()\n\treturn p.startOfLine\n}\n\n// parseError sets p.err to a ParseError at the current line with the given\n// message.\nfunc (p *TextParser) parseError(msg string) {\n\tp.err = ParseError{\n\t\tLine: p.lineCount,\n\t\tMsg:  msg,\n\t}\n}\n\n// skipBlankTab reads (and discards) bytes from p.buf until it encounters a byte\n// that is neither ' ' nor '\\t'. That byte is left in p.currentByte.\nfunc (p *TextParser) skipBlankTab() {\n\tfor {\n\t\tif p.currentByte, p.err = p.buf.ReadByte(); p.err != nil || !isBlankOrTab(p.currentByte) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// skipBlankTabIfCurrentBlankTab works exactly as skipBlankTab but doesn't do\n// anything if p.currentByte is neither ' ' nor '\\t'.\nfunc (p *TextParser) skipBlankTabIfCurrentBlankTab() {\n\tif isBlankOrTab(p.currentByte) {\n\t\tp.skipBlankTab()\n\t}\n}\n\n// readTokenUntilWhitespace copies bytes from p.buf into p.currentToken.  The\n// first byte considered is the byte already read (now in p.currentByte).  The\n// first whitespace byte encountered is still copied into p.currentByte, but not\n// into p.currentToken.\nfunc (p *TextParser) readTokenUntilWhitespace() {\n\tp.currentToken.Reset()\n\tfor p.err == nil && !isBlankOrTab(p.currentByte) && p.currentByte != '\\n' {\n\t\tp.currentToken.WriteByte(p.currentByte)\n\t\tp.currentByte, p.err = p.buf.ReadByte()\n\t}\n}\n\n// readTokenUntilNewline copies bytes from p.buf into p.currentToken.  The first\n// byte considered is the byte already read (now in p.currentByte).  The first\n// newline byte encountered is still copied into p.currentByte, but not into\n// p.currentToken. If recognizeEscapeSequence is true, two escape sequences are\n// recognized: '\\\\' translates into '\\', and '\\n' into a line-feed character.\n// All other escape sequences are invalid and cause an error.\nfunc (p *TextParser) readTokenUntilNewline(recognizeEscapeSequence bool) {\n\tp.currentToken.Reset()\n\tescaped := false\n\tfor p.err == nil {\n\t\tif recognizeEscapeSequence && escaped {\n\t\t\tswitch p.currentByte {\n\t\t\tcase '\\\\':\n\t\t\t\tp.currentToken.WriteByte(p.currentByte)\n\t\t\tcase 'n':\n\t\t\t\tp.currentToken.WriteByte('\\n')\n\t\t\tdefault:\n\t\t\t\tp.parseError(fmt.Sprintf(\"invalid escape sequence '\\\\%c'\", p.currentByte))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tescaped = false\n\t\t} else {\n\t\t\tswitch p.currentByte {\n\t\t\tcase '\\n':\n\t\t\t\treturn\n\t\t\tcase '\\\\':\n\t\t\t\tescaped = true\n\t\t\tdefault:\n\t\t\t\tp.currentToken.WriteByte(p.currentByte)\n\t\t\t}\n\t\t}\n\t\tp.currentByte, p.err = p.buf.ReadByte()\n\t}\n}\n\n// readTokenAsMetricName copies a metric name from p.buf into p.currentToken.\n// The first byte considered is the byte already read (now in p.currentByte).\n// The first byte not part of a metric name is still copied into p.currentByte,\n// but not into p.currentToken.\nfunc (p *TextParser) readTokenAsMetricName() {\n\tp.currentToken.Reset()\n\tif !isValidMetricNameStart(p.currentByte) {\n\t\treturn\n\t}\n\tfor {\n\t\tp.currentToken.WriteByte(p.currentByte)\n\t\tp.currentByte, p.err = p.buf.ReadByte()\n\t\tif p.err != nil || !isValidMetricNameContinuation(p.currentByte) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// readTokenAsLabelName copies a label name from p.buf into p.currentToken.\n// The first byte considered is the byte already read (now in p.currentByte).\n// The first byte not part of a label name is still copied into p.currentByte,\n// but not into p.currentToken.\nfunc (p *TextParser) readTokenAsLabelName() {\n\tp.currentToken.Reset()\n\tif !isValidLabelNameStart(p.currentByte) {\n\t\treturn\n\t}\n\tfor {\n\t\tp.currentToken.WriteByte(p.currentByte)\n\t\tp.currentByte, p.err = p.buf.ReadByte()\n\t\tif p.err != nil || !isValidLabelNameContinuation(p.currentByte) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// readTokenAsLabelValue copies a label value from p.buf into p.currentToken.\n// In contrast to the other 'readTokenAs...' functions, which start with the\n// last read byte in p.currentByte, this method ignores p.currentByte and starts\n// with reading a new byte from p.buf. The first byte not part of a label value\n// is still copied into p.currentByte, but not into p.currentToken.\nfunc (p *TextParser) readTokenAsLabelValue() {\n\tp.currentToken.Reset()\n\tescaped := false\n\tfor {\n\t\tif p.currentByte, p.err = p.buf.ReadByte(); p.err != nil {\n\t\t\treturn\n\t\t}\n\t\tif escaped {\n\t\t\tswitch p.currentByte {\n\t\t\tcase '\"', '\\\\':\n\t\t\t\tp.currentToken.WriteByte(p.currentByte)\n\t\t\tcase 'n':\n\t\t\t\tp.currentToken.WriteByte('\\n')\n\t\t\tdefault:\n\t\t\t\tp.parseError(fmt.Sprintf(\"invalid escape sequence '\\\\%c'\", p.currentByte))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tescaped = false\n\t\t\tcontinue\n\t\t}\n\t\tswitch p.currentByte {\n\t\tcase '\"':\n\t\t\treturn\n\t\tcase '\\n':\n\t\t\tp.parseError(fmt.Sprintf(\"label value %q contains unescaped new-line\", p.currentToken.String()))\n\t\t\treturn\n\t\tcase '\\\\':\n\t\t\tescaped = true\n\t\tdefault:\n\t\t\tp.currentToken.WriteByte(p.currentByte)\n\t\t}\n\t}\n}\n\nfunc (p *TextParser) setOrCreateCurrentMF() {\n\tp.currentIsSummaryCount = false\n\tp.currentIsSummarySum = false\n\tp.currentIsHistogramCount = false\n\tp.currentIsHistogramSum = false\n\tname := p.currentToken.String()\n\tif p.currentMF = p.metricFamiliesByName[name]; p.currentMF != nil {\n\t\treturn\n\t}\n\t// Try out if this is a _sum or _count for a summary/histogram.\n\tsummaryName := summaryMetricName(name)\n\tif p.currentMF = p.metricFamiliesByName[summaryName]; p.currentMF != nil {\n\t\tif p.currentMF.GetType() == dto.MetricType_SUMMARY {\n\t\t\tif isCount(name) {\n\t\t\t\tp.currentIsSummaryCount = true\n\t\t\t}\n\t\t\tif isSum(name) {\n\t\t\t\tp.currentIsSummarySum = true\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\thistogramName := histogramMetricName(name)\n\tif p.currentMF = p.metricFamiliesByName[histogramName]; p.currentMF != nil {\n\t\tif p.currentMF.GetType() == dto.MetricType_HISTOGRAM {\n\t\t\tif isCount(name) {\n\t\t\t\tp.currentIsHistogramCount = true\n\t\t\t}\n\t\t\tif isSum(name) {\n\t\t\t\tp.currentIsHistogramSum = true\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\tp.currentMF = &dto.MetricFamily{Name: proto.String(name)}\n\tp.metricFamiliesByName[name] = p.currentMF\n}\n\nfunc isValidLabelNameStart(b byte) bool {\n\treturn (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_'\n}\n\nfunc isValidLabelNameContinuation(b byte) bool {\n\treturn isValidLabelNameStart(b) || (b >= '0' && b <= '9')\n}\n\nfunc isValidMetricNameStart(b byte) bool {\n\treturn isValidLabelNameStart(b) || b == ':'\n}\n\nfunc isValidMetricNameContinuation(b byte) bool {\n\treturn isValidLabelNameContinuation(b) || b == ':'\n}\n\nfunc isBlankOrTab(b byte) bool {\n\treturn b == ' ' || b == '\\t'\n}\n\nfunc isCount(name string) bool {\n\treturn len(name) > 6 && name[len(name)-6:] == \"_count\"\n}\n\nfunc isSum(name string) bool {\n\treturn len(name) > 4 && name[len(name)-4:] == \"_sum\"\n}\n\nfunc isBucket(name string) bool {\n\treturn len(name) > 7 && name[len(name)-7:] == \"_bucket\"\n}\n\nfunc summaryMetricName(name string) string {\n\tswitch {\n\tcase isCount(name):\n\t\treturn name[:len(name)-6]\n\tcase isSum(name):\n\t\treturn name[:len(name)-4]\n\tdefault:\n\t\treturn name\n\t}\n}\n\nfunc histogramMetricName(name string) string {\n\tswitch {\n\tcase isCount(name):\n\t\treturn name[:len(name)-6]\n\tcase isSum(name):\n\t\treturn name[:len(name)-4]\n\tcase isBucket(name):\n\t\treturn name[:len(name)-7]\n\tdefault:\n\t\treturn name\n\t}\n}\n\nfunc parseFloat(s string) (float64, error) {\n\tif strings.ContainsAny(s, \"pP_\") {\n\t\treturn 0, fmt.Errorf(\"unsupported character in float\")\n\t}\n\treturn strconv.ParseFloat(s, 64)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt",
    "content": "PACKAGE\n\npackage goautoneg\nimport \"bitbucket.org/ww/goautoneg\"\n\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nFUNCTIONS\n\nfunc Negotiate(header string, alternatives []string) (content_type string)\nNegotiate the most appropriate content_type given the accept header\nand a list of alternatives.\n\nfunc ParseAccept(header string) (accept []Accept)\nParse an Accept Header string returning a sorted list\nof clauses\n\n\nTYPES\n\ntype Accept struct {\n    Type, SubType string\n    Q             float32\n    Params        map[string]string\n}\nStructure to represent a clause in an HTTP Accept Header\n\n\nSUBDIRECTORIES\n\n\t.hg\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go",
    "content": "/*\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n\tRedistributions of source code must retain the above copyright\n\tnotice, this list of conditions and the following disclaimer.\n\n\tRedistributions in binary form must reproduce the above copyright\n\tnotice, this list of conditions and the following disclaimer in\n\tthe documentation and/or other materials provided with the\n\tdistribution.\n\n\tNeither the name of the Open Knowledge Foundation Ltd. nor the\n\tnames of its contributors may be used to endorse or promote\n\tproducts derived from this software without specific prior written\n\tpermission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\npackage goautoneg\n\nimport (\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Structure to represent a clause in an HTTP Accept Header\ntype Accept struct {\n\tType, SubType string\n\tQ             float64\n\tParams        map[string]string\n}\n\n// For internal use, so that we can use the sort interface\ntype accept_slice []Accept\n\nfunc (accept accept_slice) Len() int {\n\tslice := []Accept(accept)\n\treturn len(slice)\n}\n\nfunc (accept accept_slice) Less(i, j int) bool {\n\tslice := []Accept(accept)\n\tai, aj := slice[i], slice[j]\n\tif ai.Q > aj.Q {\n\t\treturn true\n\t}\n\tif ai.Type != \"*\" && aj.Type == \"*\" {\n\t\treturn true\n\t}\n\tif ai.SubType != \"*\" && aj.SubType == \"*\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (accept accept_slice) Swap(i, j int) {\n\tslice := []Accept(accept)\n\tslice[i], slice[j] = slice[j], slice[i]\n}\n\n// Parse an Accept Header string returning a sorted list\n// of clauses\nfunc ParseAccept(header string) (accept []Accept) {\n\tparts := strings.Split(header, \",\")\n\taccept = make([]Accept, 0, len(parts))\n\tfor _, part := range parts {\n\t\tpart := strings.Trim(part, \" \")\n\n\t\ta := Accept{}\n\t\ta.Params = make(map[string]string)\n\t\ta.Q = 1.0\n\n\t\tmrp := strings.Split(part, \";\")\n\n\t\tmedia_range := mrp[0]\n\t\tsp := strings.Split(media_range, \"/\")\n\t\ta.Type = strings.Trim(sp[0], \" \")\n\n\t\tswitch {\n\t\tcase len(sp) == 1 && a.Type == \"*\":\n\t\t\ta.SubType = \"*\"\n\t\tcase len(sp) == 2:\n\t\t\ta.SubType = strings.Trim(sp[1], \" \")\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(mrp) == 1 {\n\t\t\taccept = append(accept, a)\n\t\t\tcontinue\n\t\t}\n\n\t\tfor _, param := range mrp[1:] {\n\t\t\tsp := strings.SplitN(param, \"=\", 2)\n\t\t\tif len(sp) != 2 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttoken := strings.Trim(sp[0], \" \")\n\t\t\tif token == \"q\" {\n\t\t\t\ta.Q, _ = strconv.ParseFloat(sp[1], 32)\n\t\t\t} else {\n\t\t\t\ta.Params[token] = strings.Trim(sp[1], \" \")\n\t\t\t}\n\t\t}\n\n\t\taccept = append(accept, a)\n\t}\n\n\tslice := accept_slice(accept)\n\tsort.Sort(slice)\n\n\treturn\n}\n\n// Negotiate the most appropriate content_type given the accept header\n// and a list of alternatives.\nfunc Negotiate(header string, alternatives []string) (content_type string) {\n\tasp := make([][]string, 0, len(alternatives))\n\tfor _, ctype := range alternatives {\n\t\tasp = append(asp, strings.SplitN(ctype, \"/\", 2))\n\t}\n\tfor _, clause := range ParseAccept(header) {\n\t\tfor i, ctsp := range asp {\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == ctsp[1] {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == \"*\" && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/alert.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"fmt\"\n\t\"time\"\n)\n\ntype AlertStatus string\n\nconst (\n\tAlertFiring   AlertStatus = \"firing\"\n\tAlertResolved AlertStatus = \"resolved\"\n)\n\n// Alert is a generic representation of an alert in the Prometheus eco-system.\ntype Alert struct {\n\t// Label value pairs for purpose of aggregation, matching, and disposition\n\t// dispatching. This must minimally include an \"alertname\" label.\n\tLabels LabelSet `json:\"labels\"`\n\n\t// Extra key/value information which does not define alert identity.\n\tAnnotations LabelSet `json:\"annotations\"`\n\n\t// The known time range for this alert. Both ends are optional.\n\tStartsAt     time.Time `json:\"startsAt,omitempty\"`\n\tEndsAt       time.Time `json:\"endsAt,omitempty\"`\n\tGeneratorURL string    `json:\"generatorURL\"`\n}\n\n// Name returns the name of the alert. It is equivalent to the \"alertname\" label.\nfunc (a *Alert) Name() string {\n\treturn string(a.Labels[AlertNameLabel])\n}\n\n// Fingerprint returns a unique hash for the alert. It is equivalent to\n// the fingerprint of the alert's label set.\nfunc (a *Alert) Fingerprint() Fingerprint {\n\treturn a.Labels.Fingerprint()\n}\n\nfunc (a *Alert) String() string {\n\ts := fmt.Sprintf(\"%s[%s]\", a.Name(), a.Fingerprint().String()[:7])\n\tif a.Resolved() {\n\t\treturn s + \"[resolved]\"\n\t}\n\treturn s + \"[active]\"\n}\n\n// Resolved returns true iff the activity interval ended in the past.\nfunc (a *Alert) Resolved() bool {\n\treturn a.ResolvedAt(time.Now())\n}\n\n// ResolvedAt returns true off the activity interval ended before\n// the given timestamp.\nfunc (a *Alert) ResolvedAt(ts time.Time) bool {\n\tif a.EndsAt.IsZero() {\n\t\treturn false\n\t}\n\treturn !a.EndsAt.After(ts)\n}\n\n// Status returns the status of the alert.\nfunc (a *Alert) Status() AlertStatus {\n\tif a.Resolved() {\n\t\treturn AlertResolved\n\t}\n\treturn AlertFiring\n}\n\n// Validate checks whether the alert data is inconsistent.\nfunc (a *Alert) Validate() error {\n\tif a.StartsAt.IsZero() {\n\t\treturn fmt.Errorf(\"start time missing\")\n\t}\n\tif !a.EndsAt.IsZero() && a.EndsAt.Before(a.StartsAt) {\n\t\treturn fmt.Errorf(\"start time must be before end time\")\n\t}\n\tif err := a.Labels.Validate(); err != nil {\n\t\treturn fmt.Errorf(\"invalid label set: %s\", err)\n\t}\n\tif len(a.Labels) == 0 {\n\t\treturn fmt.Errorf(\"at least one label pair required\")\n\t}\n\tif err := a.Annotations.Validate(); err != nil {\n\t\treturn fmt.Errorf(\"invalid annotations: %s\", err)\n\t}\n\treturn nil\n}\n\n// Alert is a list of alerts that can be sorted in chronological order.\ntype Alerts []*Alert\n\nfunc (as Alerts) Len() int      { return len(as) }\nfunc (as Alerts) Swap(i, j int) { as[i], as[j] = as[j], as[i] }\n\nfunc (as Alerts) Less(i, j int) bool {\n\tif as[i].StartsAt.Before(as[j].StartsAt) {\n\t\treturn true\n\t}\n\tif as[i].EndsAt.Before(as[j].EndsAt) {\n\t\treturn true\n\t}\n\treturn as[i].Fingerprint() < as[j].Fingerprint()\n}\n\n// HasFiring returns true iff one of the alerts is not resolved.\nfunc (as Alerts) HasFiring() bool {\n\tfor _, a := range as {\n\t\tif !a.Resolved() {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Status returns StatusFiring iff at least one of the alerts is firing.\nfunc (as Alerts) Status() AlertStatus {\n\tif as.HasFiring() {\n\t\treturn AlertFiring\n\t}\n\treturn AlertResolved\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/fingerprinting.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Fingerprint provides a hash-capable representation of a Metric.\n// For our purposes, FNV-1A 64-bit is used.\ntype Fingerprint uint64\n\n// FingerprintFromString transforms a string representation into a Fingerprint.\nfunc FingerprintFromString(s string) (Fingerprint, error) {\n\tnum, err := strconv.ParseUint(s, 16, 64)\n\treturn Fingerprint(num), err\n}\n\n// ParseFingerprint parses the input string into a fingerprint.\nfunc ParseFingerprint(s string) (Fingerprint, error) {\n\tnum, err := strconv.ParseUint(s, 16, 64)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn Fingerprint(num), nil\n}\n\nfunc (f Fingerprint) String() string {\n\treturn fmt.Sprintf(\"%016x\", uint64(f))\n}\n\n// Fingerprints represents a collection of Fingerprint subject to a given\n// natural sorting scheme. It implements sort.Interface.\ntype Fingerprints []Fingerprint\n\n// Len implements sort.Interface.\nfunc (f Fingerprints) Len() int {\n\treturn len(f)\n}\n\n// Less implements sort.Interface.\nfunc (f Fingerprints) Less(i, j int) bool {\n\treturn f[i] < f[j]\n}\n\n// Swap implements sort.Interface.\nfunc (f Fingerprints) Swap(i, j int) {\n\tf[i], f[j] = f[j], f[i]\n}\n\n// FingerprintSet is a set of Fingerprints.\ntype FingerprintSet map[Fingerprint]struct{}\n\n// Equal returns true if both sets contain the same elements (and not more).\nfunc (s FingerprintSet) Equal(o FingerprintSet) bool {\n\tif len(s) != len(o) {\n\t\treturn false\n\t}\n\n\tfor k := range s {\n\t\tif _, ok := o[k]; !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Intersection returns the elements contained in both sets.\nfunc (s FingerprintSet) Intersection(o FingerprintSet) FingerprintSet {\n\tmyLength, otherLength := len(s), len(o)\n\tif myLength == 0 || otherLength == 0 {\n\t\treturn FingerprintSet{}\n\t}\n\n\tsubSet := s\n\tsuperSet := o\n\n\tif otherLength < myLength {\n\t\tsubSet = o\n\t\tsuperSet = s\n\t}\n\n\tout := FingerprintSet{}\n\n\tfor k := range subSet {\n\t\tif _, ok := superSet[k]; ok {\n\t\t\tout[k] = struct{}{}\n\t\t}\n\t}\n\n\treturn out\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/fnv.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\n// Inline and byte-free variant of hash/fnv's fnv64a.\n\nconst (\n\toffset64 = 14695981039346656037\n\tprime64  = 1099511628211\n)\n\n// hashNew initializes a new fnv64a hash value.\nfunc hashNew() uint64 {\n\treturn offset64\n}\n\n// hashAdd adds a string to a fnv64a hash value, returning the updated hash.\nfunc hashAdd(h uint64, s string) uint64 {\n\tfor i := 0; i < len(s); i++ {\n\t\th ^= uint64(s[i])\n\t\th *= prime64\n\t}\n\treturn h\n}\n\n// hashAddByte adds a byte to a fnv64a hash value, returning the updated hash.\nfunc hashAddByte(h uint64, b byte) uint64 {\n\th ^= uint64(b)\n\th *= prime64\n\treturn h\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/labels.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\t// AlertNameLabel is the name of the label containing the an alert's name.\n\tAlertNameLabel = \"alertname\"\n\n\t// ExportedLabelPrefix is the prefix to prepend to the label names present in\n\t// exported metrics if a label of the same name is added by the server.\n\tExportedLabelPrefix = \"exported_\"\n\n\t// MetricNameLabel is the label name indicating the metric name of a\n\t// timeseries.\n\tMetricNameLabel = \"__name__\"\n\n\t// SchemeLabel is the name of the label that holds the scheme on which to\n\t// scrape a target.\n\tSchemeLabel = \"__scheme__\"\n\n\t// AddressLabel is the name of the label that holds the address of\n\t// a scrape target.\n\tAddressLabel = \"__address__\"\n\n\t// MetricsPathLabel is the name of the label that holds the path on which to\n\t// scrape a target.\n\tMetricsPathLabel = \"__metrics_path__\"\n\n\t// ScrapeIntervalLabel is the name of the label that holds the scrape interval\n\t// used to scrape a target.\n\tScrapeIntervalLabel = \"__scrape_interval__\"\n\n\t// ScrapeTimeoutLabel is the name of the label that holds the scrape\n\t// timeout used to scrape a target.\n\tScrapeTimeoutLabel = \"__scrape_timeout__\"\n\n\t// ReservedLabelPrefix is a prefix which is not legal in user-supplied\n\t// label names.\n\tReservedLabelPrefix = \"__\"\n\n\t// MetaLabelPrefix is a prefix for labels that provide meta information.\n\t// Labels with this prefix are used for intermediate label processing and\n\t// will not be attached to time series.\n\tMetaLabelPrefix = \"__meta_\"\n\n\t// TmpLabelPrefix is a prefix for temporary labels as part of relabelling.\n\t// Labels with this prefix are used for intermediate label processing and\n\t// will not be attached to time series. This is reserved for use in\n\t// Prometheus configuration files by users.\n\tTmpLabelPrefix = \"__tmp_\"\n\n\t// ParamLabelPrefix is a prefix for labels that provide URL parameters\n\t// used to scrape a target.\n\tParamLabelPrefix = \"__param_\"\n\n\t// JobLabel is the label name indicating the job from which a timeseries\n\t// was scraped.\n\tJobLabel = \"job\"\n\n\t// InstanceLabel is the label name used for the instance label.\n\tInstanceLabel = \"instance\"\n\n\t// BucketLabel is used for the label that defines the upper bound of a\n\t// bucket of a histogram (\"le\" -> \"less or equal\").\n\tBucketLabel = \"le\"\n\n\t// QuantileLabel is used for the label that defines the quantile in a\n\t// summary.\n\tQuantileLabel = \"quantile\"\n)\n\n// LabelNameRE is a regular expression matching valid label names. Note that the\n// IsValid method of LabelName performs the same check but faster than a match\n// with this regular expression.\nvar LabelNameRE = regexp.MustCompile(\"^[a-zA-Z_][a-zA-Z0-9_]*$\")\n\n// A LabelName is a key for a LabelSet or Metric.  It has a value associated\n// therewith.\ntype LabelName string\n\n// IsValid is true iff the label name matches the pattern of LabelNameRE. This\n// method, however, does not use LabelNameRE for the check but a much faster\n// hardcoded implementation.\nfunc (ln LabelName) IsValid() bool {\n\tif len(ln) == 0 {\n\t\treturn false\n\t}\n\tfor i, b := range ln {\n\t\tif !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// UnmarshalYAML implements the yaml.Unmarshaler interface.\nfunc (ln *LabelName) UnmarshalYAML(unmarshal func(interface{}) error) error {\n\tvar s string\n\tif err := unmarshal(&s); err != nil {\n\t\treturn err\n\t}\n\tif !LabelName(s).IsValid() {\n\t\treturn fmt.Errorf(\"%q is not a valid label name\", s)\n\t}\n\t*ln = LabelName(s)\n\treturn nil\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface.\nfunc (ln *LabelName) UnmarshalJSON(b []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\tif !LabelName(s).IsValid() {\n\t\treturn fmt.Errorf(\"%q is not a valid label name\", s)\n\t}\n\t*ln = LabelName(s)\n\treturn nil\n}\n\n// LabelNames is a sortable LabelName slice. In implements sort.Interface.\ntype LabelNames []LabelName\n\nfunc (l LabelNames) Len() int {\n\treturn len(l)\n}\n\nfunc (l LabelNames) Less(i, j int) bool {\n\treturn l[i] < l[j]\n}\n\nfunc (l LabelNames) Swap(i, j int) {\n\tl[i], l[j] = l[j], l[i]\n}\n\nfunc (l LabelNames) String() string {\n\tlabelStrings := make([]string, 0, len(l))\n\tfor _, label := range l {\n\t\tlabelStrings = append(labelStrings, string(label))\n\t}\n\treturn strings.Join(labelStrings, \", \")\n}\n\n// A LabelValue is an associated value for a LabelName.\ntype LabelValue string\n\n// IsValid returns true iff the string is a valid UTF8.\nfunc (lv LabelValue) IsValid() bool {\n\treturn utf8.ValidString(string(lv))\n}\n\n// LabelValues is a sortable LabelValue slice. It implements sort.Interface.\ntype LabelValues []LabelValue\n\nfunc (l LabelValues) Len() int {\n\treturn len(l)\n}\n\nfunc (l LabelValues) Less(i, j int) bool {\n\treturn string(l[i]) < string(l[j])\n}\n\nfunc (l LabelValues) Swap(i, j int) {\n\tl[i], l[j] = l[j], l[i]\n}\n\n// LabelPair pairs a name with a value.\ntype LabelPair struct {\n\tName  LabelName\n\tValue LabelValue\n}\n\n// LabelPairs is a sortable slice of LabelPair pointers. It implements\n// sort.Interface.\ntype LabelPairs []*LabelPair\n\nfunc (l LabelPairs) Len() int {\n\treturn len(l)\n}\n\nfunc (l LabelPairs) Less(i, j int) bool {\n\tswitch {\n\tcase l[i].Name > l[j].Name:\n\t\treturn false\n\tcase l[i].Name < l[j].Name:\n\t\treturn true\n\tcase l[i].Value > l[j].Value:\n\t\treturn false\n\tcase l[i].Value < l[j].Value:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (l LabelPairs) Swap(i, j int) {\n\tl[i], l[j] = l[j], l[i]\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/labelset.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// A LabelSet is a collection of LabelName and LabelValue pairs.  The LabelSet\n// may be fully-qualified down to the point where it may resolve to a single\n// Metric in the data store or not.  All operations that occur within the realm\n// of a LabelSet can emit a vector of Metric entities to which the LabelSet may\n// match.\ntype LabelSet map[LabelName]LabelValue\n\n// Validate checks whether all names and values in the label set\n// are valid.\nfunc (ls LabelSet) Validate() error {\n\tfor ln, lv := range ls {\n\t\tif !ln.IsValid() {\n\t\t\treturn fmt.Errorf(\"invalid name %q\", ln)\n\t\t}\n\t\tif !lv.IsValid() {\n\t\t\treturn fmt.Errorf(\"invalid value %q\", lv)\n\t\t}\n\t}\n\treturn nil\n}\n\n// Equal returns true iff both label sets have exactly the same key/value pairs.\nfunc (ls LabelSet) Equal(o LabelSet) bool {\n\tif len(ls) != len(o) {\n\t\treturn false\n\t}\n\tfor ln, lv := range ls {\n\t\tolv, ok := o[ln]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif olv != lv {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Before compares the metrics, using the following criteria:\n//\n// If m has fewer labels than o, it is before o. If it has more, it is not.\n//\n// If the number of labels is the same, the superset of all label names is\n// sorted alphanumerically. The first differing label pair found in that order\n// determines the outcome: If the label does not exist at all in m, then m is\n// before o, and vice versa. Otherwise the label value is compared\n// alphanumerically.\n//\n// If m and o are equal, the method returns false.\nfunc (ls LabelSet) Before(o LabelSet) bool {\n\tif len(ls) < len(o) {\n\t\treturn true\n\t}\n\tif len(ls) > len(o) {\n\t\treturn false\n\t}\n\n\tlns := make(LabelNames, 0, len(ls)+len(o))\n\tfor ln := range ls {\n\t\tlns = append(lns, ln)\n\t}\n\tfor ln := range o {\n\t\tlns = append(lns, ln)\n\t}\n\t// It's probably not worth it to de-dup lns.\n\tsort.Sort(lns)\n\tfor _, ln := range lns {\n\t\tmlv, ok := ls[ln]\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\tolv, ok := o[ln]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif mlv < olv {\n\t\t\treturn true\n\t\t}\n\t\tif mlv > olv {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Clone returns a copy of the label set.\nfunc (ls LabelSet) Clone() LabelSet {\n\tlsn := make(LabelSet, len(ls))\n\tfor ln, lv := range ls {\n\t\tlsn[ln] = lv\n\t}\n\treturn lsn\n}\n\n// Merge is a helper function to non-destructively merge two label sets.\nfunc (l LabelSet) Merge(other LabelSet) LabelSet {\n\tresult := make(LabelSet, len(l))\n\n\tfor k, v := range l {\n\t\tresult[k] = v\n\t}\n\n\tfor k, v := range other {\n\t\tresult[k] = v\n\t}\n\n\treturn result\n}\n\nfunc (l LabelSet) String() string {\n\tlstrs := make([]string, 0, len(l))\n\tfor l, v := range l {\n\t\tlstrs = append(lstrs, fmt.Sprintf(\"%s=%q\", l, v))\n\t}\n\n\tsort.Strings(lstrs)\n\treturn fmt.Sprintf(\"{%s}\", strings.Join(lstrs, \", \"))\n}\n\n// Fingerprint returns the LabelSet's fingerprint.\nfunc (ls LabelSet) Fingerprint() Fingerprint {\n\treturn labelSetToFingerprint(ls)\n}\n\n// FastFingerprint returns the LabelSet's Fingerprint calculated by a faster hashing\n// algorithm, which is, however, more susceptible to hash collisions.\nfunc (ls LabelSet) FastFingerprint() Fingerprint {\n\treturn labelSetToFastFingerprint(ls)\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface.\nfunc (l *LabelSet) UnmarshalJSON(b []byte) error {\n\tvar m map[LabelName]LabelValue\n\tif err := json.Unmarshal(b, &m); err != nil {\n\t\treturn err\n\t}\n\t// encoding/json only unmarshals maps of the form map[string]T. It treats\n\t// LabelName as a string and does not call its UnmarshalJSON method.\n\t// Thus, we have to replicate the behavior here.\n\tfor ln := range m {\n\t\tif !ln.IsValid() {\n\t\t\treturn fmt.Errorf(\"%q is not a valid label name\", ln)\n\t\t}\n\t}\n\t*l = LabelSet(m)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/metric.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n)\n\nvar (\n\t// MetricNameRE is a regular expression matching valid metric\n\t// names. Note that the IsValidMetricName function performs the same\n\t// check but faster than a match with this regular expression.\n\tMetricNameRE = regexp.MustCompile(`^[a-zA-Z_:][a-zA-Z0-9_:]*$`)\n)\n\n// A Metric is similar to a LabelSet, but the key difference is that a Metric is\n// a singleton and refers to one and only one stream of samples.\ntype Metric LabelSet\n\n// Equal compares the metrics.\nfunc (m Metric) Equal(o Metric) bool {\n\treturn LabelSet(m).Equal(LabelSet(o))\n}\n\n// Before compares the metrics' underlying label sets.\nfunc (m Metric) Before(o Metric) bool {\n\treturn LabelSet(m).Before(LabelSet(o))\n}\n\n// Clone returns a copy of the Metric.\nfunc (m Metric) Clone() Metric {\n\tclone := make(Metric, len(m))\n\tfor k, v := range m {\n\t\tclone[k] = v\n\t}\n\treturn clone\n}\n\nfunc (m Metric) String() string {\n\tmetricName, hasName := m[MetricNameLabel]\n\tnumLabels := len(m) - 1\n\tif !hasName {\n\t\tnumLabels = len(m)\n\t}\n\tlabelStrings := make([]string, 0, numLabels)\n\tfor label, value := range m {\n\t\tif label != MetricNameLabel {\n\t\t\tlabelStrings = append(labelStrings, fmt.Sprintf(\"%s=%q\", label, value))\n\t\t}\n\t}\n\n\tswitch numLabels {\n\tcase 0:\n\t\tif hasName {\n\t\t\treturn string(metricName)\n\t\t}\n\t\treturn \"{}\"\n\tdefault:\n\t\tsort.Strings(labelStrings)\n\t\treturn fmt.Sprintf(\"%s{%s}\", metricName, strings.Join(labelStrings, \", \"))\n\t}\n}\n\n// Fingerprint returns a Metric's Fingerprint.\nfunc (m Metric) Fingerprint() Fingerprint {\n\treturn LabelSet(m).Fingerprint()\n}\n\n// FastFingerprint returns a Metric's Fingerprint calculated by a faster hashing\n// algorithm, which is, however, more susceptible to hash collisions.\nfunc (m Metric) FastFingerprint() Fingerprint {\n\treturn LabelSet(m).FastFingerprint()\n}\n\n// IsValidMetricName returns true iff name matches the pattern of MetricNameRE.\n// This function, however, does not use MetricNameRE for the check but a much\n// faster hardcoded implementation.\nfunc IsValidMetricName(n LabelValue) bool {\n\tif len(n) == 0 {\n\t\treturn false\n\t}\n\tfor i, b := range n {\n\t\tif !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || b == ':' || (b >= '0' && b <= '9' && i > 0)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/model.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package model contains common data structures that are shared across\n// Prometheus components and libraries.\npackage model\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/signature.go",
    "content": "// Copyright 2014 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"sort\"\n)\n\n// SeparatorByte is a byte that cannot occur in valid UTF-8 sequences and is\n// used to separate label names, label values, and other strings from each other\n// when calculating their combined hash value (aka signature aka fingerprint).\nconst SeparatorByte byte = 255\n\nvar (\n\t// cache the signature of an empty label set.\n\temptyLabelSignature = hashNew()\n)\n\n// LabelsToSignature returns a quasi-unique signature (i.e., fingerprint) for a\n// given label set. (Collisions are possible but unlikely if the number of label\n// sets the function is applied to is small.)\nfunc LabelsToSignature(labels map[string]string) uint64 {\n\tif len(labels) == 0 {\n\t\treturn emptyLabelSignature\n\t}\n\n\tlabelNames := make([]string, 0, len(labels))\n\tfor labelName := range labels {\n\t\tlabelNames = append(labelNames, labelName)\n\t}\n\tsort.Strings(labelNames)\n\n\tsum := hashNew()\n\tfor _, labelName := range labelNames {\n\t\tsum = hashAdd(sum, labelName)\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t\tsum = hashAdd(sum, labels[labelName])\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t}\n\treturn sum\n}\n\n// labelSetToFingerprint works exactly as LabelsToSignature but takes a LabelSet as\n// parameter (rather than a label map) and returns a Fingerprint.\nfunc labelSetToFingerprint(ls LabelSet) Fingerprint {\n\tif len(ls) == 0 {\n\t\treturn Fingerprint(emptyLabelSignature)\n\t}\n\n\tlabelNames := make(LabelNames, 0, len(ls))\n\tfor labelName := range ls {\n\t\tlabelNames = append(labelNames, labelName)\n\t}\n\tsort.Sort(labelNames)\n\n\tsum := hashNew()\n\tfor _, labelName := range labelNames {\n\t\tsum = hashAdd(sum, string(labelName))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t\tsum = hashAdd(sum, string(ls[labelName]))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t}\n\treturn Fingerprint(sum)\n}\n\n// labelSetToFastFingerprint works similar to labelSetToFingerprint but uses a\n// faster and less allocation-heavy hash function, which is more susceptible to\n// create hash collisions. Therefore, collision detection should be applied.\nfunc labelSetToFastFingerprint(ls LabelSet) Fingerprint {\n\tif len(ls) == 0 {\n\t\treturn Fingerprint(emptyLabelSignature)\n\t}\n\n\tvar result uint64\n\tfor labelName, labelValue := range ls {\n\t\tsum := hashNew()\n\t\tsum = hashAdd(sum, string(labelName))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t\tsum = hashAdd(sum, string(labelValue))\n\t\tresult ^= sum\n\t}\n\treturn Fingerprint(result)\n}\n\n// SignatureForLabels works like LabelsToSignature but takes a Metric as\n// parameter (rather than a label map) and only includes the labels with the\n// specified LabelNames into the signature calculation. The labels passed in\n// will be sorted by this function.\nfunc SignatureForLabels(m Metric, labels ...LabelName) uint64 {\n\tif len(labels) == 0 {\n\t\treturn emptyLabelSignature\n\t}\n\n\tsort.Sort(LabelNames(labels))\n\n\tsum := hashNew()\n\tfor _, label := range labels {\n\t\tsum = hashAdd(sum, string(label))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t\tsum = hashAdd(sum, string(m[label]))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t}\n\treturn sum\n}\n\n// SignatureWithoutLabels works like LabelsToSignature but takes a Metric as\n// parameter (rather than a label map) and excludes the labels with any of the\n// specified LabelNames from the signature calculation.\nfunc SignatureWithoutLabels(m Metric, labels map[LabelName]struct{}) uint64 {\n\tif len(m) == 0 {\n\t\treturn emptyLabelSignature\n\t}\n\n\tlabelNames := make(LabelNames, 0, len(m))\n\tfor labelName := range m {\n\t\tif _, exclude := labels[labelName]; !exclude {\n\t\t\tlabelNames = append(labelNames, labelName)\n\t\t}\n\t}\n\tif len(labelNames) == 0 {\n\t\treturn emptyLabelSignature\n\t}\n\tsort.Sort(labelNames)\n\n\tsum := hashNew()\n\tfor _, labelName := range labelNames {\n\t\tsum = hashAdd(sum, string(labelName))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t\tsum = hashAdd(sum, string(m[labelName]))\n\t\tsum = hashAddByte(sum, SeparatorByte)\n\t}\n\treturn sum\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/silence.go",
    "content": "// Copyright 2015 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"time\"\n)\n\n// Matcher describes a matches the value of a given label.\ntype Matcher struct {\n\tName    LabelName `json:\"name\"`\n\tValue   string    `json:\"value\"`\n\tIsRegex bool      `json:\"isRegex\"`\n}\n\nfunc (m *Matcher) UnmarshalJSON(b []byte) error {\n\ttype plain Matcher\n\tif err := json.Unmarshal(b, (*plain)(m)); err != nil {\n\t\treturn err\n\t}\n\n\tif len(m.Name) == 0 {\n\t\treturn fmt.Errorf(\"label name in matcher must not be empty\")\n\t}\n\tif m.IsRegex {\n\t\tif _, err := regexp.Compile(m.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Validate returns true iff all fields of the matcher have valid values.\nfunc (m *Matcher) Validate() error {\n\tif !m.Name.IsValid() {\n\t\treturn fmt.Errorf(\"invalid name %q\", m.Name)\n\t}\n\tif m.IsRegex {\n\t\tif _, err := regexp.Compile(m.Value); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid regular expression %q\", m.Value)\n\t\t}\n\t} else if !LabelValue(m.Value).IsValid() || len(m.Value) == 0 {\n\t\treturn fmt.Errorf(\"invalid value %q\", m.Value)\n\t}\n\treturn nil\n}\n\n// Silence defines the representation of a silence definition in the Prometheus\n// eco-system.\ntype Silence struct {\n\tID uint64 `json:\"id,omitempty\"`\n\n\tMatchers []*Matcher `json:\"matchers\"`\n\n\tStartsAt time.Time `json:\"startsAt\"`\n\tEndsAt   time.Time `json:\"endsAt\"`\n\n\tCreatedAt time.Time `json:\"createdAt,omitempty\"`\n\tCreatedBy string    `json:\"createdBy\"`\n\tComment   string    `json:\"comment,omitempty\"`\n}\n\n// Validate returns true iff all fields of the silence have valid values.\nfunc (s *Silence) Validate() error {\n\tif len(s.Matchers) == 0 {\n\t\treturn fmt.Errorf(\"at least one matcher required\")\n\t}\n\tfor _, m := range s.Matchers {\n\t\tif err := m.Validate(); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid matcher: %s\", err)\n\t\t}\n\t}\n\tif s.StartsAt.IsZero() {\n\t\treturn fmt.Errorf(\"start time missing\")\n\t}\n\tif s.EndsAt.IsZero() {\n\t\treturn fmt.Errorf(\"end time missing\")\n\t}\n\tif s.EndsAt.Before(s.StartsAt) {\n\t\treturn fmt.Errorf(\"start time must be before end time\")\n\t}\n\tif s.CreatedBy == \"\" {\n\t\treturn fmt.Errorf(\"creator information missing\")\n\t}\n\tif s.Comment == \"\" {\n\t\treturn fmt.Errorf(\"comment missing\")\n\t}\n\tif s.CreatedAt.IsZero() {\n\t\treturn fmt.Errorf(\"creation timestamp missing\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/time.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\t// MinimumTick is the minimum supported time resolution. This has to be\n\t// at least time.Second in order for the code below to work.\n\tminimumTick = time.Millisecond\n\t// second is the Time duration equivalent to one second.\n\tsecond = int64(time.Second / minimumTick)\n\t// The number of nanoseconds per minimum tick.\n\tnanosPerTick = int64(minimumTick / time.Nanosecond)\n\n\t// Earliest is the earliest Time representable. Handy for\n\t// initializing a high watermark.\n\tEarliest = Time(math.MinInt64)\n\t// Latest is the latest Time representable. Handy for initializing\n\t// a low watermark.\n\tLatest = Time(math.MaxInt64)\n)\n\n// Time is the number of milliseconds since the epoch\n// (1970-01-01 00:00 UTC) excluding leap seconds.\ntype Time int64\n\n// Interval describes an interval between two timestamps.\ntype Interval struct {\n\tStart, End Time\n}\n\n// Now returns the current time as a Time.\nfunc Now() Time {\n\treturn TimeFromUnixNano(time.Now().UnixNano())\n}\n\n// TimeFromUnix returns the Time equivalent to the Unix Time t\n// provided in seconds.\nfunc TimeFromUnix(t int64) Time {\n\treturn Time(t * second)\n}\n\n// TimeFromUnixNano returns the Time equivalent to the Unix Time\n// t provided in nanoseconds.\nfunc TimeFromUnixNano(t int64) Time {\n\treturn Time(t / nanosPerTick)\n}\n\n// Equal reports whether two Times represent the same instant.\nfunc (t Time) Equal(o Time) bool {\n\treturn t == o\n}\n\n// Before reports whether the Time t is before o.\nfunc (t Time) Before(o Time) bool {\n\treturn t < o\n}\n\n// After reports whether the Time t is after o.\nfunc (t Time) After(o Time) bool {\n\treturn t > o\n}\n\n// Add returns the Time t + d.\nfunc (t Time) Add(d time.Duration) Time {\n\treturn t + Time(d/minimumTick)\n}\n\n// Sub returns the Duration t - o.\nfunc (t Time) Sub(o Time) time.Duration {\n\treturn time.Duration(t-o) * minimumTick\n}\n\n// Time returns the time.Time representation of t.\nfunc (t Time) Time() time.Time {\n\treturn time.Unix(int64(t)/second, (int64(t)%second)*nanosPerTick)\n}\n\n// Unix returns t as a Unix time, the number of seconds elapsed\n// since January 1, 1970 UTC.\nfunc (t Time) Unix() int64 {\n\treturn int64(t) / second\n}\n\n// UnixNano returns t as a Unix time, the number of nanoseconds elapsed\n// since January 1, 1970 UTC.\nfunc (t Time) UnixNano() int64 {\n\treturn int64(t) * nanosPerTick\n}\n\n// The number of digits after the dot.\nvar dotPrecision = int(math.Log10(float64(second)))\n\n// String returns a string representation of the Time.\nfunc (t Time) String() string {\n\treturn strconv.FormatFloat(float64(t)/float64(second), 'f', -1, 64)\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (t Time) MarshalJSON() ([]byte, error) {\n\treturn []byte(t.String()), nil\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface.\nfunc (t *Time) UnmarshalJSON(b []byte) error {\n\tp := strings.Split(string(b), \".\")\n\tswitch len(p) {\n\tcase 1:\n\t\tv, err := strconv.ParseInt(string(p[0]), 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*t = Time(v * second)\n\n\tcase 2:\n\t\tv, err := strconv.ParseInt(string(p[0]), 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tv *= second\n\n\t\tprec := dotPrecision - len(p[1])\n\t\tif prec < 0 {\n\t\t\tp[1] = p[1][:dotPrecision]\n\t\t} else if prec > 0 {\n\t\t\tp[1] = p[1] + strings.Repeat(\"0\", prec)\n\t\t}\n\n\t\tva, err := strconv.ParseInt(p[1], 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// If the value was something like -0.1 the negative is lost in the\n\t\t// parsing because of the leading zero, this ensures that we capture it.\n\t\tif len(p[0]) > 0 && p[0][0] == '-' && v+va > 0 {\n\t\t\t*t = Time(v+va) * -1\n\t\t} else {\n\t\t\t*t = Time(v + va)\n\t\t}\n\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid time %q\", string(b))\n\t}\n\treturn nil\n}\n\n// Duration wraps time.Duration. It is used to parse the custom duration format\n// from YAML.\n// This type should not propagate beyond the scope of input/output processing.\ntype Duration time.Duration\n\n// Set implements pflag/flag.Value\nfunc (d *Duration) Set(s string) error {\n\tvar err error\n\t*d, err = ParseDuration(s)\n\treturn err\n}\n\n// Type implements pflag.Value\nfunc (d *Duration) Type() string {\n\treturn \"duration\"\n}\n\nfunc isdigit(c byte) bool { return c >= '0' && c <= '9' }\n\n// Units are required to go in order from biggest to smallest.\n// This guards against confusion from \"1m1d\" being 1 minute + 1 day, not 1 month + 1 day.\nvar unitMap = map[string]struct {\n\tpos  int\n\tmult uint64\n}{\n\t\"ms\": {7, uint64(time.Millisecond)},\n\t\"s\":  {6, uint64(time.Second)},\n\t\"m\":  {5, uint64(time.Minute)},\n\t\"h\":  {4, uint64(time.Hour)},\n\t\"d\":  {3, uint64(24 * time.Hour)},\n\t\"w\":  {2, uint64(7 * 24 * time.Hour)},\n\t\"y\":  {1, uint64(365 * 24 * time.Hour)},\n}\n\n// ParseDuration parses a string into a time.Duration, assuming that a year\n// always has 365d, a week always has 7d, and a day always has 24h.\nfunc ParseDuration(s string) (Duration, error) {\n\tswitch s {\n\tcase \"0\":\n\t\t// Allow 0 without a unit.\n\t\treturn 0, nil\n\tcase \"\":\n\t\treturn 0, errors.New(\"empty duration string\")\n\t}\n\n\torig := s\n\tvar dur uint64\n\tlastUnitPos := 0\n\n\tfor s != \"\" {\n\t\tif !isdigit(s[0]) {\n\t\t\treturn 0, fmt.Errorf(\"not a valid duration string: %q\", orig)\n\t\t}\n\t\t// Consume [0-9]*\n\t\ti := 0\n\t\tfor ; i < len(s) && isdigit(s[i]); i++ {\n\t\t}\n\t\tv, err := strconv.ParseUint(s[:i], 10, 0)\n\t\tif err != nil {\n\t\t\treturn 0, fmt.Errorf(\"not a valid duration string: %q\", orig)\n\t\t}\n\t\ts = s[i:]\n\n\t\t// Consume unit.\n\t\tfor i = 0; i < len(s) && !isdigit(s[i]); i++ {\n\t\t}\n\t\tif i == 0 {\n\t\t\treturn 0, fmt.Errorf(\"not a valid duration string: %q\", orig)\n\t\t}\n\t\tu := s[:i]\n\t\ts = s[i:]\n\t\tunit, ok := unitMap[u]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unknown unit %q in duration %q\", u, orig)\n\t\t}\n\t\tif unit.pos <= lastUnitPos { // Units must go in order from biggest to smallest.\n\t\t\treturn 0, fmt.Errorf(\"not a valid duration string: %q\", orig)\n\t\t}\n\t\tlastUnitPos = unit.pos\n\t\t// Check if the provided duration overflows time.Duration (> ~ 290years).\n\t\tif v > 1<<63/unit.mult {\n\t\t\treturn 0, errors.New(\"duration out of range\")\n\t\t}\n\t\tdur += v * unit.mult\n\t\tif dur > 1<<63-1 {\n\t\t\treturn 0, errors.New(\"duration out of range\")\n\t\t}\n\t}\n\treturn Duration(dur), nil\n}\n\nfunc (d Duration) String() string {\n\tvar (\n\t\tms = int64(time.Duration(d) / time.Millisecond)\n\t\tr  = \"\"\n\t)\n\tif ms == 0 {\n\t\treturn \"0s\"\n\t}\n\n\tf := func(unit string, mult int64, exact bool) {\n\t\tif exact && ms%mult != 0 {\n\t\t\treturn\n\t\t}\n\t\tif v := ms / mult; v > 0 {\n\t\t\tr += fmt.Sprintf(\"%d%s\", v, unit)\n\t\t\tms -= v * mult\n\t\t}\n\t}\n\n\t// Only format years and weeks if the remainder is zero, as it is often\n\t// easier to read 90d than 12w6d.\n\tf(\"y\", 1000*60*60*24*365, true)\n\tf(\"w\", 1000*60*60*24*7, true)\n\n\tf(\"d\", 1000*60*60*24, false)\n\tf(\"h\", 1000*60*60, false)\n\tf(\"m\", 1000*60, false)\n\tf(\"s\", 1000, false)\n\tf(\"ms\", 1, false)\n\n\treturn r\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (d Duration) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(d.String())\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface.\nfunc (d *Duration) UnmarshalJSON(bytes []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(bytes, &s); err != nil {\n\t\treturn err\n\t}\n\tdur, err := ParseDuration(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = dur\n\treturn nil\n}\n\n// MarshalText implements the encoding.TextMarshaler interface.\nfunc (d *Duration) MarshalText() ([]byte, error) {\n\treturn []byte(d.String()), nil\n}\n\n// UnmarshalText implements the encoding.TextUnmarshaler interface.\nfunc (d *Duration) UnmarshalText(text []byte) error {\n\tvar err error\n\t*d, err = ParseDuration(string(text))\n\treturn err\n}\n\n// MarshalYAML implements the yaml.Marshaler interface.\nfunc (d Duration) MarshalYAML() (interface{}, error) {\n\treturn d.String(), nil\n}\n\n// UnmarshalYAML implements the yaml.Unmarshaler interface.\nfunc (d *Duration) UnmarshalYAML(unmarshal func(interface{}) error) error {\n\tvar s string\n\tif err := unmarshal(&s); err != nil {\n\t\treturn err\n\t}\n\tdur, err := ParseDuration(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = dur\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/value.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// ZeroSample is the pseudo zero-value of Sample used to signal a\n\t// non-existing sample. It is a Sample with timestamp Earliest, value 0.0,\n\t// and metric nil. Note that the natural zero value of Sample has a timestamp\n\t// of 0, which is possible to appear in a real Sample and thus not suitable\n\t// to signal a non-existing Sample.\n\tZeroSample = Sample{Timestamp: Earliest}\n)\n\n// Sample is a sample pair associated with a metric. A single sample must either\n// define Value or Histogram but not both. Histogram == nil implies the Value\n// field is used, otherwise it should be ignored.\ntype Sample struct {\n\tMetric    Metric           `json:\"metric\"`\n\tValue     SampleValue      `json:\"value\"`\n\tTimestamp Time             `json:\"timestamp\"`\n\tHistogram *SampleHistogram `json:\"histogram\"`\n}\n\n// Equal compares first the metrics, then the timestamp, then the value. The\n// semantics of value equality is defined by SampleValue.Equal.\nfunc (s *Sample) Equal(o *Sample) bool {\n\tif s == o {\n\t\treturn true\n\t}\n\n\tif !s.Metric.Equal(o.Metric) {\n\t\treturn false\n\t}\n\tif !s.Timestamp.Equal(o.Timestamp) {\n\t\treturn false\n\t}\n\tif s.Histogram != nil {\n\t\treturn s.Histogram.Equal(o.Histogram)\n\t}\n\treturn s.Value.Equal(o.Value)\n}\n\nfunc (s Sample) String() string {\n\tif s.Histogram != nil {\n\t\treturn fmt.Sprintf(\"%s => %s\", s.Metric, SampleHistogramPair{\n\t\t\tTimestamp: s.Timestamp,\n\t\t\tHistogram: s.Histogram,\n\t\t})\n\t}\n\treturn fmt.Sprintf(\"%s => %s\", s.Metric, SamplePair{\n\t\tTimestamp: s.Timestamp,\n\t\tValue:     s.Value,\n\t})\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (s Sample) MarshalJSON() ([]byte, error) {\n\tif s.Histogram != nil {\n\t\tv := struct {\n\t\t\tMetric    Metric              `json:\"metric\"`\n\t\t\tHistogram SampleHistogramPair `json:\"histogram\"`\n\t\t}{\n\t\t\tMetric: s.Metric,\n\t\t\tHistogram: SampleHistogramPair{\n\t\t\t\tTimestamp: s.Timestamp,\n\t\t\t\tHistogram: s.Histogram,\n\t\t\t},\n\t\t}\n\t\treturn json.Marshal(&v)\n\t}\n\tv := struct {\n\t\tMetric Metric     `json:\"metric\"`\n\t\tValue  SamplePair `json:\"value\"`\n\t}{\n\t\tMetric: s.Metric,\n\t\tValue: SamplePair{\n\t\t\tTimestamp: s.Timestamp,\n\t\t\tValue:     s.Value,\n\t\t},\n\t}\n\treturn json.Marshal(&v)\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (s *Sample) UnmarshalJSON(b []byte) error {\n\tv := struct {\n\t\tMetric    Metric              `json:\"metric\"`\n\t\tValue     SamplePair          `json:\"value\"`\n\t\tHistogram SampleHistogramPair `json:\"histogram\"`\n\t}{\n\t\tMetric: s.Metric,\n\t\tValue: SamplePair{\n\t\t\tTimestamp: s.Timestamp,\n\t\t\tValue:     s.Value,\n\t\t},\n\t\tHistogram: SampleHistogramPair{\n\t\t\tTimestamp: s.Timestamp,\n\t\t\tHistogram: s.Histogram,\n\t\t},\n\t}\n\n\tif err := json.Unmarshal(b, &v); err != nil {\n\t\treturn err\n\t}\n\n\ts.Metric = v.Metric\n\tif v.Histogram.Histogram != nil {\n\t\ts.Timestamp = v.Histogram.Timestamp\n\t\ts.Histogram = v.Histogram.Histogram\n\t} else {\n\t\ts.Timestamp = v.Value.Timestamp\n\t\ts.Value = v.Value.Value\n\t}\n\n\treturn nil\n}\n\n// Samples is a sortable Sample slice. It implements sort.Interface.\ntype Samples []*Sample\n\nfunc (s Samples) Len() int {\n\treturn len(s)\n}\n\n// Less compares first the metrics, then the timestamp.\nfunc (s Samples) Less(i, j int) bool {\n\tswitch {\n\tcase s[i].Metric.Before(s[j].Metric):\n\t\treturn true\n\tcase s[j].Metric.Before(s[i].Metric):\n\t\treturn false\n\tcase s[i].Timestamp.Before(s[j].Timestamp):\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (s Samples) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\n// Equal compares two sets of samples and returns true if they are equal.\nfunc (s Samples) Equal(o Samples) bool {\n\tif len(s) != len(o) {\n\t\treturn false\n\t}\n\n\tfor i, sample := range s {\n\t\tif !sample.Equal(o[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// SampleStream is a stream of Values belonging to an attached COWMetric.\ntype SampleStream struct {\n\tMetric     Metric                `json:\"metric\"`\n\tValues     []SamplePair          `json:\"values\"`\n\tHistograms []SampleHistogramPair `json:\"histograms\"`\n}\n\nfunc (ss SampleStream) String() string {\n\tvaluesLength := len(ss.Values)\n\tvals := make([]string, valuesLength+len(ss.Histograms))\n\tfor i, v := range ss.Values {\n\t\tvals[i] = v.String()\n\t}\n\tfor i, v := range ss.Histograms {\n\t\tvals[i+valuesLength] = v.String()\n\t}\n\treturn fmt.Sprintf(\"%s =>\\n%s\", ss.Metric, strings.Join(vals, \"\\n\"))\n}\n\nfunc (ss SampleStream) MarshalJSON() ([]byte, error) {\n\tif len(ss.Histograms) > 0 && len(ss.Values) > 0 {\n\t\tv := struct {\n\t\t\tMetric     Metric                `json:\"metric\"`\n\t\t\tValues     []SamplePair          `json:\"values\"`\n\t\t\tHistograms []SampleHistogramPair `json:\"histograms\"`\n\t\t}{\n\t\t\tMetric:     ss.Metric,\n\t\t\tValues:     ss.Values,\n\t\t\tHistograms: ss.Histograms,\n\t\t}\n\t\treturn json.Marshal(&v)\n\t} else if len(ss.Histograms) > 0 {\n\t\tv := struct {\n\t\t\tMetric     Metric                `json:\"metric\"`\n\t\t\tHistograms []SampleHistogramPair `json:\"histograms\"`\n\t\t}{\n\t\t\tMetric:     ss.Metric,\n\t\t\tHistograms: ss.Histograms,\n\t\t}\n\t\treturn json.Marshal(&v)\n\t} else {\n\t\tv := struct {\n\t\t\tMetric Metric       `json:\"metric\"`\n\t\t\tValues []SamplePair `json:\"values\"`\n\t\t}{\n\t\t\tMetric: ss.Metric,\n\t\t\tValues: ss.Values,\n\t\t}\n\t\treturn json.Marshal(&v)\n\t}\n}\n\nfunc (ss *SampleStream) UnmarshalJSON(b []byte) error {\n\tv := struct {\n\t\tMetric     Metric                `json:\"metric\"`\n\t\tValues     []SamplePair          `json:\"values\"`\n\t\tHistograms []SampleHistogramPair `json:\"histograms\"`\n\t}{\n\t\tMetric:     ss.Metric,\n\t\tValues:     ss.Values,\n\t\tHistograms: ss.Histograms,\n\t}\n\n\tif err := json.Unmarshal(b, &v); err != nil {\n\t\treturn err\n\t}\n\n\tss.Metric = v.Metric\n\tss.Values = v.Values\n\tss.Histograms = v.Histograms\n\n\treturn nil\n}\n\n// Scalar is a scalar value evaluated at the set timestamp.\ntype Scalar struct {\n\tValue     SampleValue `json:\"value\"`\n\tTimestamp Time        `json:\"timestamp\"`\n}\n\nfunc (s Scalar) String() string {\n\treturn fmt.Sprintf(\"scalar: %v @[%v]\", s.Value, s.Timestamp)\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (s Scalar) MarshalJSON() ([]byte, error) {\n\tv := strconv.FormatFloat(float64(s.Value), 'f', -1, 64)\n\treturn json.Marshal([...]interface{}{s.Timestamp, string(v)})\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (s *Scalar) UnmarshalJSON(b []byte) error {\n\tvar f string\n\tv := [...]interface{}{&s.Timestamp, &f}\n\n\tif err := json.Unmarshal(b, &v); err != nil {\n\t\treturn err\n\t}\n\n\tvalue, err := strconv.ParseFloat(f, 64)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error parsing sample value: %s\", err)\n\t}\n\ts.Value = SampleValue(value)\n\treturn nil\n}\n\n// String is a string value evaluated at the set timestamp.\ntype String struct {\n\tValue     string `json:\"value\"`\n\tTimestamp Time   `json:\"timestamp\"`\n}\n\nfunc (s *String) String() string {\n\treturn s.Value\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (s String) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal([]interface{}{s.Timestamp, s.Value})\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (s *String) UnmarshalJSON(b []byte) error {\n\tv := [...]interface{}{&s.Timestamp, &s.Value}\n\treturn json.Unmarshal(b, &v)\n}\n\n// Vector is basically only an alias for Samples, but the\n// contract is that in a Vector, all Samples have the same timestamp.\ntype Vector []*Sample\n\nfunc (vec Vector) String() string {\n\tentries := make([]string, len(vec))\n\tfor i, s := range vec {\n\t\tentries[i] = s.String()\n\t}\n\treturn strings.Join(entries, \"\\n\")\n}\n\nfunc (vec Vector) Len() int      { return len(vec) }\nfunc (vec Vector) Swap(i, j int) { vec[i], vec[j] = vec[j], vec[i] }\n\n// Less compares first the metrics, then the timestamp.\nfunc (vec Vector) Less(i, j int) bool {\n\tswitch {\n\tcase vec[i].Metric.Before(vec[j].Metric):\n\t\treturn true\n\tcase vec[j].Metric.Before(vec[i].Metric):\n\t\treturn false\n\tcase vec[i].Timestamp.Before(vec[j].Timestamp):\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Equal compares two sets of samples and returns true if they are equal.\nfunc (vec Vector) Equal(o Vector) bool {\n\tif len(vec) != len(o) {\n\t\treturn false\n\t}\n\n\tfor i, sample := range vec {\n\t\tif !sample.Equal(o[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Matrix is a list of time series.\ntype Matrix []*SampleStream\n\nfunc (m Matrix) Len() int           { return len(m) }\nfunc (m Matrix) Less(i, j int) bool { return m[i].Metric.Before(m[j].Metric) }\nfunc (m Matrix) Swap(i, j int)      { m[i], m[j] = m[j], m[i] }\n\nfunc (mat Matrix) String() string {\n\tmatCp := make(Matrix, len(mat))\n\tcopy(matCp, mat)\n\tsort.Sort(matCp)\n\n\tstrs := make([]string, len(matCp))\n\n\tfor i, ss := range matCp {\n\t\tstrs[i] = ss.String()\n\t}\n\n\treturn strings.Join(strs, \"\\n\")\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/value_float.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n)\n\nvar (\n\t// ZeroSamplePair is the pseudo zero-value of SamplePair used to signal a\n\t// non-existing sample pair. It is a SamplePair with timestamp Earliest and\n\t// value 0.0. Note that the natural zero value of SamplePair has a timestamp\n\t// of 0, which is possible to appear in a real SamplePair and thus not\n\t// suitable to signal a non-existing SamplePair.\n\tZeroSamplePair = SamplePair{Timestamp: Earliest}\n)\n\n// A SampleValue is a representation of a value for a given sample at a given\n// time.\ntype SampleValue float64\n\n// MarshalJSON implements json.Marshaler.\nfunc (v SampleValue) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.String())\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (v *SampleValue) UnmarshalJSON(b []byte) error {\n\tif len(b) < 2 || b[0] != '\"' || b[len(b)-1] != '\"' {\n\t\treturn fmt.Errorf(\"sample value must be a quoted string\")\n\t}\n\tf, err := strconv.ParseFloat(string(b[1:len(b)-1]), 64)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*v = SampleValue(f)\n\treturn nil\n}\n\n// Equal returns true if the value of v and o is equal or if both are NaN. Note\n// that v==o is false if both are NaN. If you want the conventional float\n// behavior, use == to compare two SampleValues.\nfunc (v SampleValue) Equal(o SampleValue) bool {\n\tif v == o {\n\t\treturn true\n\t}\n\treturn math.IsNaN(float64(v)) && math.IsNaN(float64(o))\n}\n\nfunc (v SampleValue) String() string {\n\treturn strconv.FormatFloat(float64(v), 'f', -1, 64)\n}\n\n// SamplePair pairs a SampleValue with a Timestamp.\ntype SamplePair struct {\n\tTimestamp Time\n\tValue     SampleValue\n}\n\nfunc (s SamplePair) MarshalJSON() ([]byte, error) {\n\tt, err := json.Marshal(s.Timestamp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tv, err := json.Marshal(s.Value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn []byte(fmt.Sprintf(\"[%s,%s]\", t, v)), nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (s *SamplePair) UnmarshalJSON(b []byte) error {\n\tv := [...]json.Unmarshaler{&s.Timestamp, &s.Value}\n\treturn json.Unmarshal(b, &v)\n}\n\n// Equal returns true if this SamplePair and o have equal Values and equal\n// Timestamps. The semantics of Value equality is defined by SampleValue.Equal.\nfunc (s *SamplePair) Equal(o *SamplePair) bool {\n\treturn s == o || (s.Value.Equal(o.Value) && s.Timestamp.Equal(o.Timestamp))\n}\n\nfunc (s SamplePair) String() string {\n\treturn fmt.Sprintf(\"%s @[%s]\", s.Value, s.Timestamp)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/value_histogram.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype FloatString float64\n\nfunc (v FloatString) String() string {\n\treturn strconv.FormatFloat(float64(v), 'f', -1, 64)\n}\n\nfunc (v FloatString) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.String())\n}\n\nfunc (v *FloatString) UnmarshalJSON(b []byte) error {\n\tif len(b) < 2 || b[0] != '\"' || b[len(b)-1] != '\"' {\n\t\treturn fmt.Errorf(\"float value must be a quoted string\")\n\t}\n\tf, err := strconv.ParseFloat(string(b[1:len(b)-1]), 64)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*v = FloatString(f)\n\treturn nil\n}\n\ntype HistogramBucket struct {\n\tBoundaries int32\n\tLower      FloatString\n\tUpper      FloatString\n\tCount      FloatString\n}\n\nfunc (s HistogramBucket) MarshalJSON() ([]byte, error) {\n\tb, err := json.Marshal(s.Boundaries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tl, err := json.Marshal(s.Lower)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tu, err := json.Marshal(s.Upper)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc, err := json.Marshal(s.Count)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn []byte(fmt.Sprintf(\"[%s,%s,%s,%s]\", b, l, u, c)), nil\n}\n\nfunc (s *HistogramBucket) UnmarshalJSON(buf []byte) error {\n\ttmp := []interface{}{&s.Boundaries, &s.Lower, &s.Upper, &s.Count}\n\twantLen := len(tmp)\n\tif err := json.Unmarshal(buf, &tmp); err != nil {\n\t\treturn err\n\t}\n\tif gotLen := len(tmp); gotLen != wantLen {\n\t\treturn fmt.Errorf(\"wrong number of fields: %d != %d\", gotLen, wantLen)\n\t}\n\treturn nil\n}\n\nfunc (s *HistogramBucket) Equal(o *HistogramBucket) bool {\n\treturn s == o || (s.Boundaries == o.Boundaries && s.Lower == o.Lower && s.Upper == o.Upper && s.Count == o.Count)\n}\n\nfunc (b HistogramBucket) String() string {\n\tvar sb strings.Builder\n\tlowerInclusive := b.Boundaries == 1 || b.Boundaries == 3\n\tupperInclusive := b.Boundaries == 0 || b.Boundaries == 3\n\tif lowerInclusive {\n\t\tsb.WriteRune('[')\n\t} else {\n\t\tsb.WriteRune('(')\n\t}\n\tfmt.Fprintf(&sb, \"%g,%g\", b.Lower, b.Upper)\n\tif upperInclusive {\n\t\tsb.WriteRune(']')\n\t} else {\n\t\tsb.WriteRune(')')\n\t}\n\tfmt.Fprintf(&sb, \":%v\", b.Count)\n\treturn sb.String()\n}\n\ntype HistogramBuckets []*HistogramBucket\n\nfunc (s HistogramBuckets) Equal(o HistogramBuckets) bool {\n\tif len(s) != len(o) {\n\t\treturn false\n\t}\n\n\tfor i, bucket := range s {\n\t\tif !bucket.Equal(o[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\ntype SampleHistogram struct {\n\tCount   FloatString      `json:\"count\"`\n\tSum     FloatString      `json:\"sum\"`\n\tBuckets HistogramBuckets `json:\"buckets\"`\n}\n\nfunc (s SampleHistogram) String() string {\n\treturn fmt.Sprintf(\"Count: %f, Sum: %f, Buckets: %v\", s.Count, s.Sum, s.Buckets)\n}\n\nfunc (s *SampleHistogram) Equal(o *SampleHistogram) bool {\n\treturn s == o || (s.Count == o.Count && s.Sum == o.Sum && s.Buckets.Equal(o.Buckets))\n}\n\ntype SampleHistogramPair struct {\n\tTimestamp Time\n\t// Histogram should never be nil, it's only stored as pointer for efficiency.\n\tHistogram *SampleHistogram\n}\n\nfunc (s SampleHistogramPair) MarshalJSON() ([]byte, error) {\n\tif s.Histogram == nil {\n\t\treturn nil, fmt.Errorf(\"histogram is nil\")\n\t}\n\tt, err := json.Marshal(s.Timestamp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tv, err := json.Marshal(s.Histogram)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn []byte(fmt.Sprintf(\"[%s,%s]\", t, v)), nil\n}\n\nfunc (s *SampleHistogramPair) UnmarshalJSON(buf []byte) error {\n\ttmp := []interface{}{&s.Timestamp, &s.Histogram}\n\twantLen := len(tmp)\n\tif err := json.Unmarshal(buf, &tmp); err != nil {\n\t\treturn err\n\t}\n\tif gotLen := len(tmp); gotLen != wantLen {\n\t\treturn fmt.Errorf(\"wrong number of fields: %d != %d\", gotLen, wantLen)\n\t}\n\tif s.Histogram == nil {\n\t\treturn fmt.Errorf(\"histogram is null\")\n\t}\n\treturn nil\n}\n\nfunc (s SampleHistogramPair) String() string {\n\treturn fmt.Sprintf(\"%s @[%s]\", s.Histogram, s.Timestamp)\n}\n\nfunc (s *SampleHistogramPair) Equal(o *SampleHistogramPair) bool {\n\treturn s == o || (s.Histogram.Equal(o.Histogram) && s.Timestamp.Equal(o.Timestamp))\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/common/model/value_type.go",
    "content": "// Copyright 2013 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// Value is a generic interface for values resulting from a query evaluation.\ntype Value interface {\n\tType() ValueType\n\tString() string\n}\n\nfunc (Matrix) Type() ValueType  { return ValMatrix }\nfunc (Vector) Type() ValueType  { return ValVector }\nfunc (*Scalar) Type() ValueType { return ValScalar }\nfunc (*String) Type() ValueType { return ValString }\n\ntype ValueType int\n\nconst (\n\tValNone ValueType = iota\n\tValScalar\n\tValVector\n\tValMatrix\n\tValString\n)\n\n// MarshalJSON implements json.Marshaler.\nfunc (et ValueType) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(et.String())\n}\n\nfunc (et *ValueType) UnmarshalJSON(b []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\tswitch s {\n\tcase \"<ValNone>\":\n\t\t*et = ValNone\n\tcase \"scalar\":\n\t\t*et = ValScalar\n\tcase \"vector\":\n\t\t*et = ValVector\n\tcase \"matrix\":\n\t\t*et = ValMatrix\n\tcase \"string\":\n\t\t*et = ValString\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown value type %q\", s)\n\t}\n\treturn nil\n}\n\nfunc (e ValueType) String() string {\n\tswitch e {\n\tcase ValNone:\n\t\treturn \"<ValNone>\"\n\tcase ValScalar:\n\t\treturn \"scalar\"\n\tcase ValVector:\n\t\treturn \"vector\"\n\tcase ValMatrix:\n\t\treturn \"matrix\"\n\tcase ValString:\n\t\treturn \"string\"\n\t}\n\tpanic(\"ValueType.String: unhandled value type\")\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/.gitignore",
    "content": "/testdata/fixtures/\n/fixtures\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/.golangci.yml",
    "content": "---\nlinters:\n  enable:\n  - godot\n  - revive\n\nlinter-settings:\n  godot:\n    capital: true\n    exclude:\n    # Ignore \"See: URL\"\n    - 'See:'\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/CODE_OF_CONDUCT.md",
    "content": "# Prometheus Community Code of Conduct\n\nPrometheus follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/CONTRIBUTING.md",
    "content": "# Contributing\n\nPrometheus uses GitHub to manage reviews of pull requests.\n\n* If you are a new contributor see: [Steps to Contribute](#steps-to-contribute)\n\n* If you have a trivial fix or improvement, go ahead and create a pull request,\n  addressing (with `@...`) a suitable maintainer of this repository (see\n  [MAINTAINERS.md](MAINTAINERS.md)) in the description of the pull request.\n\n* If you plan to do something more involved, first discuss your ideas\n  on our [mailing list](https://groups.google.com/forum/?fromgroups#!forum/prometheus-developers).\n  This will avoid unnecessary work and surely give you and us a good deal\n  of inspiration. Also please see our [non-goals issue](https://github.com/prometheus/docs/issues/149) on areas that the Prometheus community doesn't plan to work on.\n\n* Relevant coding style guidelines are the [Go Code Review\n  Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments)\n  and the _Formatting and style_ section of Peter Bourgon's [Go: Best\n  Practices for Production\n  Environments](https://peter.bourgon.org/go-in-production/#formatting-and-style).\n\n* Be sure to sign off on the [DCO](https://github.com/probot/dco#how-it-works)\n\n## Steps to Contribute\n\nShould you wish to work on an issue, please claim it first by commenting on the GitHub issue that you want to work on it. This is to prevent duplicated efforts from contributors on the same issue.\n\nPlease check the [`help-wanted`](https://github.com/prometheus/procfs/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) label to find issues that are good for getting started. If you have questions about one of the issues, with or without the tag, please comment on them and one of the maintainers will clarify it. For a quicker response, contact us over [IRC](https://prometheus.io/community).\n\nFor quickly compiling and testing your changes do:\n```\nmake test         # Make sure all the tests pass before you commit and push :)\n```\n\nWe use [`golangci-lint`](https://github.com/golangci/golangci-lint) for linting the code. If it reports an issue and you think that the warning needs to be disregarded or is a false-positive, you can add a special comment `//nolint:linter1[,linter2,...]` before the offending line. Use this sparingly though, fixing the code to comply with the linter's recommendation is in general the preferred course of action.\n\n## Pull Request Checklist\n\n* Branch from the master branch and, if needed, rebase to the current master branch before submitting your pull request. If it doesn't merge cleanly with master you may be asked to rebase your changes.\n\n* Commits should be as small as possible, while ensuring that each commit is correct independently (i.e., each commit should compile and pass tests).\n\n* If your patch is not getting reviewed or you need a specific person to review it, you can @-reply a reviewer asking for a review in the pull request or a comment, or you can ask for a review on IRC channel [#prometheus](https://webchat.freenode.net/?channels=#prometheus) on irc.freenode.net (for the easiest start, [join via Riot](https://riot.im/app/#/room/#prometheus:matrix.org)).\n\n* Add tests relevant to the fixed bug or new feature.\n\n## Dependency management\n\nThe Prometheus project uses [Go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) to manage dependencies on external packages. This requires a working Go environment with version 1.12 or greater installed.\n\nAll dependencies are vendored in the `vendor/` directory.\n\nTo add or update a new dependency, use the `go get` command:\n\n```bash\n# Pick the latest tagged release.\ngo get example.com/some/module/pkg\n\n# Pick a specific version.\ngo get example.com/some/module/pkg@vX.Y.Z\n```\n\nTidy up the `go.mod` and `go.sum` files and copy the new/updated dependency to the `vendor/` directory:\n\n\n```bash\n# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.\nGO111MODULE=on go mod tidy\n\nGO111MODULE=on go mod vendor\n```\n\nYou have to commit the changes to `go.mod`, `go.sum` and the `vendor/` directory before submitting the pull request.\n\n\n## API Implementation Guidelines\n\n### Naming and Documentation\n\nPublic functions and structs should normally be named according to the file(s) being read and parsed.  For example, \nthe `fs.BuddyInfo()` function reads the file `/proc/buddyinfo`.  In addition, the godoc for each public function\nshould contain the path to the file(s) being read and a URL of the linux kernel documentation describing the file(s).\n\n### Reading vs. Parsing\n\nMost functionality in this library consists of reading files and then parsing the text into structured data.  In most\ncases reading and parsing should be separated into different functions/methods with a public `fs.Thing()` method and \na private `parseThing(r Reader)` function.  This provides a logical separation and allows parsing to be tested\ndirectly without the need to read from the filesystem.  Using a `Reader` argument is preferred over other data types\nsuch as `string` or `*File` because it provides the most flexibility regarding the data source.  When a set of files \nin a directory needs to be parsed, then a `path` string parameter to the parse function can be used instead.\n\n### /proc and /sys filesystem I/O \n\nThe `proc` and `sys` filesystems are pseudo file systems and work a bit differently from standard disk I/O.  \nMany of the files are changing continuously and the data being read can in some cases change between subsequent \nreads in the same file.  Also, most of the files are relatively small (less than a few KBs), and system calls\nto the `stat` function will often return the wrong size.  Therefore, for most files it's recommended to read the \nfull file in a single operation using an internal utility function called `util.ReadFileNoStat`.\nThis function is similar to `os.ReadFile`, but it avoids the system call to `stat` to get the current size of\nthe file.\n\nNote that parsing the file's contents can still be performed one line at a time.  This is done by first reading \nthe full file, and then using a scanner on the `[]byte` or `string` containing the data.\n\n```\n    data, err := util.ReadFileNoStat(\"/proc/cpuinfo\")\n    if err != nil {\n        return err\n    }\n    reader := bytes.NewReader(data)\n    scanner := bufio.NewScanner(reader)\n```\n\nThe `/sys` filesystem contains many very small files which contain only a single numeric or text value.  These files\ncan be read using an internal function called `util.SysReadFile` which is similar to `os.ReadFile` but does\nnot bother to check the size of the file before reading.\n```\n    data, err := util.SysReadFile(\"/sys/class/power_supply/BAT0/capacity\")\n```\n\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/MAINTAINERS.md",
    "content": "* Johannes 'fish' Ziemke <github@freigeist.org> @discordianfish\n* Paul Gier <pgier@redhat.com> @pgier\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/Makefile",
    "content": "# Copyright 2018 The Prometheus Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\ninclude Makefile.common\n\n%/.unpacked: %.ttar\n\t@echo \">> extracting fixtures $*\"\n\t./ttar -C $(dir $*) -x -f $*.ttar\n\ttouch $@\n\nfixtures: testdata/fixtures/.unpacked\n\nupdate_fixtures:\n\trm -vf testdata/fixtures/.unpacked\n\t./ttar -c -f testdata/fixtures.ttar -C testdata/ fixtures/\n\n.PHONY: build\nbuild:\n\n.PHONY: test\ntest: testdata/fixtures/.unpacked common-test\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/Makefile.common",
    "content": "# Copyright 2018 The Prometheus Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# A common Makefile that includes rules to be reused in different prometheus projects.\n# !!! Open PRs only against the prometheus/prometheus/Makefile.common repository!\n\n# Example usage :\n# Create the main Makefile in the root project directory.\n# include Makefile.common\n# customTarget:\n# \t@echo \">> Running customTarget\"\n#\n\n# Ensure GOBIN is not set during build so that promu is installed to the correct path\nunexport GOBIN\n\nGO           ?= go\nGOFMT        ?= $(GO)fmt\nFIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH)))\nGOOPTS       ?=\nGOHOSTOS     ?= $(shell $(GO) env GOHOSTOS)\nGOHOSTARCH   ?= $(shell $(GO) env GOHOSTARCH)\n\nGO_VERSION        ?= $(shell $(GO) version)\nGO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION))\nPRE_GO_111        ?= $(shell echo $(GO_VERSION_NUMBER) | grep -E 'go1\\.(10|[0-9])\\.')\n\nPROMU        := $(FIRST_GOPATH)/bin/promu\npkgs          = ./...\n\nifeq (arm, $(GOHOSTARCH))\n\tGOHOSTARM ?= $(shell GOARM= $(GO) env GOARM)\n\tGO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH)v$(GOHOSTARM)\nelse\n\tGO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH)\nendif\n\nGOTEST := $(GO) test\nGOTEST_DIR :=\nifneq ($(CIRCLE_JOB),)\nifneq ($(shell which gotestsum),)\n\tGOTEST_DIR := test-results\n\tGOTEST := gotestsum --junitfile $(GOTEST_DIR)/unit-tests.xml --\nendif\nendif\n\nPROMU_VERSION ?= 0.14.0\nPROMU_URL     := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz\n\nSKIP_GOLANGCI_LINT :=\nGOLANGCI_LINT :=\nGOLANGCI_LINT_OPTS ?=\nGOLANGCI_LINT_VERSION ?= v1.51.2\n# golangci-lint only supports linux, darwin and windows platforms on i386/amd64.\n# windows isn't included here because of the path separator being different.\nifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))\n\tifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386))\n\t\t# If we're in CI and there is an Actions file, that means the linter\n\t\t# is being run in Actions, so we don't need to run it here.\n\t\tifneq (,$(SKIP_GOLANGCI_LINT))\n\t\t\tGOLANGCI_LINT :=\n\t\telse ifeq (,$(CIRCLE_JOB))\n\t\t\tGOLANGCI_LINT := $(FIRST_GOPATH)/bin/golangci-lint\n\t\telse ifeq (,$(wildcard .github/workflows/golangci-lint.yml))\n\t\t\tGOLANGCI_LINT := $(FIRST_GOPATH)/bin/golangci-lint\n\t\tendif\n\tendif\nendif\n\nPREFIX                  ?= $(shell pwd)\nBIN_DIR                 ?= $(shell pwd)\nDOCKER_IMAGE_TAG        ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD))\nDOCKERFILE_PATH         ?= ./Dockerfile\nDOCKERBUILD_CONTEXT     ?= ./\nDOCKER_REPO             ?= prom\n\nDOCKER_ARCHS            ?= amd64\n\nBUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))\nPUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))\nTAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))\n\nSANITIZED_DOCKER_IMAGE_TAG := $(subst +,-,$(DOCKER_IMAGE_TAG))\n\nifeq ($(GOHOSTARCH),amd64)\n        ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux freebsd darwin windows))\n                # Only supported on amd64\n                test-flags := -race\n        endif\nendif\n\n# This rule is used to forward a target like \"build\" to \"common-build\".  This\n# allows a new \"build\" target to be defined in a Makefile which includes this\n# one and override \"common-build\" without override warnings.\n%: common-% ;\n\n.PHONY: common-all\ncommon-all: precheck style check_license lint yamllint unused build test\n\n.PHONY: common-style\ncommon-style:\n\t@echo \">> checking code style\"\n\t@fmtRes=$$($(GOFMT) -d $$(find . -path ./vendor -prune -o -name '*.go' -print)); \\\n\tif [ -n \"$${fmtRes}\" ]; then \\\n\t\techo \"gofmt checking failed!\"; echo \"$${fmtRes}\"; echo; \\\n\t\techo \"Please ensure you are using $$($(GO) version) for formatting code.\"; \\\n\t\texit 1; \\\n\tfi\n\n.PHONY: common-check_license\ncommon-check_license:\n\t@echo \">> checking license header\"\n\t@licRes=$$(for file in $$(find . -type f -iname '*.go' ! -path './vendor/*') ; do \\\n               awk 'NR<=3' $$file | grep -Eq \"(Copyright|generated|GENERATED)\" || echo $$file; \\\n       done); \\\n       if [ -n \"$${licRes}\" ]; then \\\n               echo \"license header checking failed:\"; echo \"$${licRes}\"; \\\n               exit 1; \\\n       fi\n\n.PHONY: common-deps\ncommon-deps:\n\t@echo \">> getting dependencies\"\n\t$(GO) mod download\n\n.PHONY: update-go-deps\nupdate-go-deps:\n\t@echo \">> updating Go dependencies\"\n\t@for m in $$($(GO) list -mod=readonly -m -f '{{ if and (not .Indirect) (not .Main)}}{{.Path}}{{end}}' all); do \\\n\t\t$(GO) get -d $$m; \\\n\tdone\n\t$(GO) mod tidy\n\n.PHONY: common-test-short\ncommon-test-short: $(GOTEST_DIR)\n\t@echo \">> running short tests\"\n\t$(GOTEST) -short $(GOOPTS) $(pkgs)\n\n.PHONY: common-test\ncommon-test: $(GOTEST_DIR)\n\t@echo \">> running all tests\"\n\t$(GOTEST) $(test-flags) $(GOOPTS) $(pkgs)\n\n$(GOTEST_DIR):\n\t@mkdir -p $@\n\n.PHONY: common-format\ncommon-format:\n\t@echo \">> formatting code\"\n\t$(GO) fmt $(pkgs)\n\n.PHONY: common-vet\ncommon-vet:\n\t@echo \">> vetting code\"\n\t$(GO) vet $(GOOPTS) $(pkgs)\n\n.PHONY: common-lint\ncommon-lint: $(GOLANGCI_LINT)\nifdef GOLANGCI_LINT\n\t@echo \">> running golangci-lint\"\n# 'go list' needs to be executed before staticcheck to prepopulate the modules cache.\n# Otherwise staticcheck might fail randomly for some reason not yet explained.\n\t$(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null\n\t$(GOLANGCI_LINT) run $(GOLANGCI_LINT_OPTS) $(pkgs)\nendif\n\n.PHONY: common-yamllint\ncommon-yamllint:\n\t@echo \">> running yamllint on all YAML files in the repository\"\nifeq (, $(shell which yamllint))\n\t@echo \"yamllint not installed so skipping\"\nelse\n\tyamllint .\nendif\n\n# For backward-compatibility.\n.PHONY: common-staticcheck\ncommon-staticcheck: lint\n\n.PHONY: common-unused\ncommon-unused:\n\t@echo \">> running check for unused/missing packages in go.mod\"\n\t$(GO) mod tidy\n\t@git diff --exit-code -- go.sum go.mod\n\n.PHONY: common-build\ncommon-build: promu\n\t@echo \">> building binaries\"\n\t$(PROMU) build --prefix $(PREFIX) $(PROMU_BINARIES)\n\n.PHONY: common-tarball\ncommon-tarball: promu\n\t@echo \">> building release tarball\"\n\t$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR)\n\n.PHONY: common-docker $(BUILD_DOCKER_ARCHS)\ncommon-docker: $(BUILD_DOCKER_ARCHS)\n$(BUILD_DOCKER_ARCHS): common-docker-%:\n\tdocker build -t \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)\" \\\n\t\t-f $(DOCKERFILE_PATH) \\\n\t\t--build-arg ARCH=\"$*\" \\\n\t\t--build-arg OS=\"linux\" \\\n\t\t$(DOCKERBUILD_CONTEXT)\n\n.PHONY: common-docker-publish $(PUBLISH_DOCKER_ARCHS)\ncommon-docker-publish: $(PUBLISH_DOCKER_ARCHS)\n$(PUBLISH_DOCKER_ARCHS): common-docker-publish-%:\n\tdocker push \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)\"\n\nDOCKER_MAJOR_VERSION_TAG = $(firstword $(subst ., ,$(shell cat VERSION)))\n.PHONY: common-docker-tag-latest $(TAG_DOCKER_ARCHS)\ncommon-docker-tag-latest: $(TAG_DOCKER_ARCHS)\n$(TAG_DOCKER_ARCHS): common-docker-tag-latest-%:\n\tdocker tag \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)\" \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest\"\n\tdocker tag \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)\" \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)\"\n\n.PHONY: common-docker-manifest\ncommon-docker-manifest:\n\tDOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG)\" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(SANITIZED_DOCKER_IMAGE_TAG))\n\tDOCKER_CLI_EXPERIMENTAL=enabled docker manifest push \"$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG)\"\n\n.PHONY: promu\npromu: $(PROMU)\n\n$(PROMU):\n\t$(eval PROMU_TMP := $(shell mktemp -d))\n\tcurl -s -L $(PROMU_URL) | tar -xvzf - -C $(PROMU_TMP)\n\tmkdir -p $(FIRST_GOPATH)/bin\n\tcp $(PROMU_TMP)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM)/promu $(FIRST_GOPATH)/bin/promu\n\trm -r $(PROMU_TMP)\n\n.PHONY: proto\nproto:\n\t@echo \">> generating code from proto files\"\n\t@./scripts/genproto.sh\n\nifdef GOLANGCI_LINT\n$(GOLANGCI_LINT):\n\tmkdir -p $(FIRST_GOPATH)/bin\n\tcurl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/$(GOLANGCI_LINT_VERSION)/install.sh \\\n\t\t| sed -e '/install -d/d' \\\n\t\t| sh -s -- -b $(FIRST_GOPATH)/bin $(GOLANGCI_LINT_VERSION)\nendif\n\n.PHONY: precheck\nprecheck::\n\ndefine PRECHECK_COMMAND_template =\nprecheck:: $(1)_precheck\n\nPRECHECK_COMMAND_$(1) ?= $(1) $$(strip $$(PRECHECK_OPTIONS_$(1)))\n.PHONY: $(1)_precheck\n$(1)_precheck:\n\t@if ! $$(PRECHECK_COMMAND_$(1)) 1>/dev/null 2>&1; then \\\n\t\techo \"Execution of '$$(PRECHECK_COMMAND_$(1))' command failed. Is $(1) installed?\"; \\\n\t\texit 1; \\\n\tfi\nendef\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/NOTICE",
    "content": "procfs provides functions to retrieve system, kernel and process\nmetrics from the pseudo-filesystem proc.\n\nCopyright 2014-2015 The Prometheus Authors\n\nThis product includes software developed at\nSoundCloud Ltd. (http://soundcloud.com/).\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/README.md",
    "content": "# procfs\n\nThis package provides functions to retrieve system, kernel, and process\nmetrics from the pseudo-filesystems /proc and /sys.\n\n*WARNING*: This package is a work in progress. Its API may still break in\nbackwards-incompatible ways without warnings. Use it at your own risk.\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/prometheus/procfs.svg)](https://pkg.go.dev/github.com/prometheus/procfs)\n[![CircleCI](https://circleci.com/gh/prometheus/procfs/tree/master.svg?style=svg)](https://circleci.com/gh/prometheus/procfs/tree/master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/procfs)](https://goreportcard.com/report/github.com/prometheus/procfs)\n\n## Usage\n\nThe procfs library is organized by packages based on whether the gathered data is coming from\n/proc, /sys, or both.  Each package contains an `FS` type which represents the path to either /proc, \n/sys, or both.  For example, cpu statistics are gathered from\n`/proc/stat` and are available via the root procfs package.  First, the proc filesystem mount\npoint is initialized, and then the stat information is read.\n\n```go\nfs, err := procfs.NewFS(\"/proc\")\nstats, err := fs.Stat()\n```\n\nSome sub-packages such as `blockdevice`, require access to both the proc and sys filesystems.\n\n```go\n    fs, err := blockdevice.NewFS(\"/proc\", \"/sys\")\n    stats, err := fs.ProcDiskstats()\n```\n\n## Package Organization\n\nThe packages in this project are organized according to (1) whether the data comes from the `/proc` or\n`/sys` filesystem and (2) the type of information being retrieved.  For example, most process information\ncan be gathered from the functions in the root `procfs` package.  Information about block devices such as disk drives\nis available in the `blockdevices` sub-package.\n\n## Building and Testing\n\nThe procfs library is intended to be built as part of another application, so there are no distributable binaries.  \nHowever, most of the API includes unit tests which can be run with `make test`.\n\n### Updating Test Fixtures\n\nThe procfs library includes a set of test fixtures which include many example files from\nthe `/proc` and `/sys` filesystems.  These fixtures are included as a [ttar](https://github.com/ideaship/ttar) file\nwhich is extracted automatically during testing.  To add/update the test fixtures, first\nensure the `fixtures` directory is up to date by removing the existing directory and then\nextracting the ttar file using `make fixtures/.unpacked` or just `make test`.\n\n```bash\nrm -rf fixtures\nmake test\n```\n\nNext, make the required changes to the extracted files in the `fixtures` directory.  When\nthe changes are complete, run `make update_fixtures` to create a new `fixtures.ttar` file\nbased on the updated `fixtures` directory.  And finally, verify the changes using\n`git diff fixtures.ttar`.\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/SECURITY.md",
    "content": "# Reporting a security issue\n\nThe Prometheus security policy, including how to report vulnerabilities, can be\nfound here:\n\n<https://prometheus.io/docs/operating/security/>\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/arp.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Learned from include/uapi/linux/if_arp.h.\nconst (\n\t// completed entry (ha valid).\n\tATFComplete = 0x02\n\t// permanent entry.\n\tATFPermanent = 0x04\n\t// Publish entry.\n\tATFPublish = 0x08\n\t// Has requested trailers.\n\tATFUseTrailers = 0x10\n\t// Obsoleted: Want to use a netmask (only for proxy entries).\n\tATFNetmask = 0x20\n\t// Don't answer this addresses.\n\tATFDontPublish = 0x40\n)\n\n// ARPEntry contains a single row of the columnar data represented in\n// /proc/net/arp.\ntype ARPEntry struct {\n\t// IP address\n\tIPAddr net.IP\n\t// MAC address\n\tHWAddr net.HardwareAddr\n\t// Name of the device\n\tDevice string\n\t// Flags\n\tFlags byte\n}\n\n// GatherARPEntries retrieves all the ARP entries, parse the relevant columns,\n// and then return a slice of ARPEntry's.\nfunc (fs FS) GatherARPEntries() ([]ARPEntry, error) {\n\tdata, err := os.ReadFile(fs.proc.Path(\"net/arp\"))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading arp %q: %w\", fs.proc.Path(\"net/arp\"), err)\n\t}\n\n\treturn parseARPEntries(data)\n}\n\nfunc parseARPEntries(data []byte) ([]ARPEntry, error) {\n\tlines := strings.Split(string(data), \"\\n\")\n\tentries := make([]ARPEntry, 0)\n\tvar err error\n\tconst (\n\t\texpectedDataWidth   = 6\n\t\texpectedHeaderWidth = 9\n\t)\n\tfor _, line := range lines {\n\t\tcolumns := strings.Fields(line)\n\t\twidth := len(columns)\n\n\t\tif width == expectedHeaderWidth || width == 0 {\n\t\t\tcontinue\n\t\t} else if width == expectedDataWidth {\n\t\t\tentry, err := parseARPEntry(columns)\n\t\t\tif err != nil {\n\t\t\t\treturn []ARPEntry{}, fmt.Errorf(\"failed to parse ARP entry: %w\", err)\n\t\t\t}\n\t\t\tentries = append(entries, entry)\n\t\t} else {\n\t\t\treturn []ARPEntry{}, fmt.Errorf(\"%d columns were detected, but %d were expected\", width, expectedDataWidth)\n\t\t}\n\n\t}\n\n\treturn entries, err\n}\n\nfunc parseARPEntry(columns []string) (ARPEntry, error) {\n\tentry := ARPEntry{Device: columns[5]}\n\tip := net.ParseIP(columns[0])\n\tentry.IPAddr = ip\n\n\tif mac, err := net.ParseMAC(columns[3]); err == nil {\n\t\tentry.HWAddr = mac\n\t} else {\n\t\treturn ARPEntry{}, err\n\t}\n\n\tif flags, err := strconv.ParseUint(columns[2], 0, 8); err == nil {\n\t\tentry.Flags = byte(flags)\n\t} else {\n\t\treturn ARPEntry{}, err\n\t}\n\n\treturn entry, nil\n}\n\n// IsComplete returns true if ARP entry is marked with complete flag.\nfunc (entry *ARPEntry) IsComplete() bool {\n\treturn entry.Flags&ATFComplete != 0\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/buddyinfo.go",
    "content": "// Copyright 2017 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// A BuddyInfo is the details parsed from /proc/buddyinfo.\n// The data is comprised of an array of free fragments of each size.\n// The sizes are 2^n*PAGE_SIZE, where n is the array index.\ntype BuddyInfo struct {\n\tNode  string\n\tZone  string\n\tSizes []float64\n}\n\n// BuddyInfo reads the buddyinfo statistics from the specified `proc` filesystem.\nfunc (fs FS) BuddyInfo() ([]BuddyInfo, error) {\n\tfile, err := os.Open(fs.proc.Path(\"buddyinfo\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\n\treturn parseBuddyInfo(file)\n}\n\nfunc parseBuddyInfo(r io.Reader) ([]BuddyInfo, error) {\n\tvar (\n\t\tbuddyInfo   = []BuddyInfo{}\n\t\tscanner     = bufio.NewScanner(r)\n\t\tbucketCount = -1\n\t)\n\n\tfor scanner.Scan() {\n\t\tvar err error\n\t\tline := scanner.Text()\n\t\tparts := strings.Fields(line)\n\n\t\tif len(parts) < 4 {\n\t\t\treturn nil, fmt.Errorf(\"invalid number of fields when parsing buddyinfo\")\n\t\t}\n\n\t\tnode := strings.TrimRight(parts[1], \",\")\n\t\tzone := strings.TrimRight(parts[3], \",\")\n\t\tarraySize := len(parts[4:])\n\n\t\tif bucketCount == -1 {\n\t\t\tbucketCount = arraySize\n\t\t} else {\n\t\t\tif bucketCount != arraySize {\n\t\t\t\treturn nil, fmt.Errorf(\"mismatch in number of buddyinfo buckets, previous count %d, new count %d\", bucketCount, arraySize)\n\t\t\t}\n\t\t}\n\n\t\tsizes := make([]float64, arraySize)\n\t\tfor i := 0; i < arraySize; i++ {\n\t\t\tsizes[i], err = strconv.ParseFloat(parts[i+4], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid value in buddyinfo: %w\", err)\n\t\t\t}\n\t\t}\n\n\t\tbuddyInfo = append(buddyInfo, BuddyInfo{node, zone, sizes})\n\t}\n\n\treturn buddyInfo, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cmdline.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// CmdLine returns the command line of the kernel.\nfunc (fs FS) CmdLine() ([]string, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"cmdline\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn strings.Fields(string(data)), nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n// +build linux\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// CPUInfo contains general information about a system CPU found in /proc/cpuinfo.\ntype CPUInfo struct {\n\tProcessor       uint\n\tVendorID        string\n\tCPUFamily       string\n\tModel           string\n\tModelName       string\n\tStepping        string\n\tMicrocode       string\n\tCPUMHz          float64\n\tCacheSize       string\n\tPhysicalID      string\n\tSiblings        uint\n\tCoreID          string\n\tCPUCores        uint\n\tAPICID          string\n\tInitialAPICID   string\n\tFPU             string\n\tFPUException    string\n\tCPUIDLevel      uint\n\tWP              string\n\tFlags           []string\n\tBugs            []string\n\tBogoMips        float64\n\tCLFlushSize     uint\n\tCacheAlignment  uint\n\tAddressSizes    string\n\tPowerManagement string\n}\n\nvar (\n\tcpuinfoClockRegexp          = regexp.MustCompile(`([\\d.]+)`)\n\tcpuinfoS390XProcessorRegexp = regexp.MustCompile(`^processor\\s+(\\d+):.*`)\n)\n\n// CPUInfo returns information about current system CPUs.\n// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt\nfunc (fs FS) CPUInfo() ([]CPUInfo, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"cpuinfo\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseCPUInfo(data)\n}\n\nfunc parseCPUInfoX86(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\t// find the first \"processor\" line\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"processor\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tv, err := strconv.ParseUint(field[1], 0, 32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfirstcpu := CPUInfo{Processor: uint(v)}\n\tcpuinfo := []CPUInfo{firstcpu}\n\ti := 0\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tcpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor\n\t\t\ti++\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\tcase \"vendor\", \"vendor_id\":\n\t\t\tcpuinfo[i].VendorID = field[1]\n\t\tcase \"cpu family\":\n\t\t\tcpuinfo[i].CPUFamily = field[1]\n\t\tcase \"model\":\n\t\t\tcpuinfo[i].Model = field[1]\n\t\tcase \"model name\":\n\t\t\tcpuinfo[i].ModelName = field[1]\n\t\tcase \"stepping\":\n\t\t\tcpuinfo[i].Stepping = field[1]\n\t\tcase \"microcode\":\n\t\t\tcpuinfo[i].Microcode = field[1]\n\t\tcase \"cpu MHz\":\n\t\t\tv, err := strconv.ParseFloat(field[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUMHz = v\n\t\tcase \"cache size\":\n\t\t\tcpuinfo[i].CacheSize = field[1]\n\t\tcase \"physical id\":\n\t\t\tcpuinfo[i].PhysicalID = field[1]\n\t\tcase \"siblings\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].Siblings = uint(v)\n\t\tcase \"core id\":\n\t\t\tcpuinfo[i].CoreID = field[1]\n\t\tcase \"cpu cores\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUCores = uint(v)\n\t\tcase \"apicid\":\n\t\t\tcpuinfo[i].APICID = field[1]\n\t\tcase \"initial apicid\":\n\t\t\tcpuinfo[i].InitialAPICID = field[1]\n\t\tcase \"fpu\":\n\t\t\tcpuinfo[i].FPU = field[1]\n\t\tcase \"fpu_exception\":\n\t\t\tcpuinfo[i].FPUException = field[1]\n\t\tcase \"cpuid level\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUIDLevel = uint(v)\n\t\tcase \"wp\":\n\t\t\tcpuinfo[i].WP = field[1]\n\t\tcase \"flags\":\n\t\t\tcpuinfo[i].Flags = strings.Fields(field[1])\n\t\tcase \"bugs\":\n\t\t\tcpuinfo[i].Bugs = strings.Fields(field[1])\n\t\tcase \"bogomips\":\n\t\t\tv, err := strconv.ParseFloat(field[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].BogoMips = v\n\t\tcase \"clflush size\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CLFlushSize = uint(v)\n\t\tcase \"cache_alignment\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CacheAlignment = uint(v)\n\t\tcase \"address sizes\":\n\t\t\tcpuinfo[i].AddressSizes = field[1]\n\t\tcase \"power management\":\n\t\t\tcpuinfo[i].PowerManagement = field[1]\n\t\t}\n\t}\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoARM(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\tfirstLine := firstNonEmptyLine(scanner)\n\tmatch, _ := regexp.MatchString(\"^[Pp]rocessor\", firstLine)\n\tif !match || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tcpuinfo := []CPUInfo{}\n\tfeaturesLine := \"\"\n\tcommonCPUInfo := CPUInfo{}\n\ti := 0\n\tif strings.TrimSpace(field[0]) == \"Processor\" {\n\t\tcommonCPUInfo = CPUInfo{ModelName: field[1]}\n\t\ti = -1\n\t} else {\n\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfirstcpu := CPUInfo{Processor: uint(v)}\n\t\tcpuinfo = []CPUInfo{firstcpu}\n\t}\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tcpuinfo = append(cpuinfo, commonCPUInfo) // start of the next processor\n\t\t\ti++\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\tcase \"BogoMIPS\":\n\t\t\tif i == -1 {\n\t\t\t\tcpuinfo = append(cpuinfo, commonCPUInfo) // There is only one processor\n\t\t\t\ti++\n\t\t\t\tcpuinfo[i].Processor = 0\n\t\t\t}\n\t\t\tv, err := strconv.ParseFloat(field[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].BogoMips = v\n\t\tcase \"Features\":\n\t\t\tfeaturesLine = line\n\t\tcase \"model name\":\n\t\t\tcpuinfo[i].ModelName = field[1]\n\t\t}\n\t}\n\tfields := strings.SplitN(featuresLine, \": \", 2)\n\tfor i := range cpuinfo {\n\t\tcpuinfo[i].Flags = strings.Fields(fields[1])\n\t}\n\treturn cpuinfo, nil\n\n}\n\nfunc parseCPUInfoS390X(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"vendor_id\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tcpuinfo := []CPUInfo{}\n\tcommonCPUInfo := CPUInfo{VendorID: field[1]}\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"bogomips per cpu\":\n\t\t\tv, err := strconv.ParseFloat(field[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcommonCPUInfo.BogoMips = v\n\t\tcase \"features\":\n\t\t\tcommonCPUInfo.Flags = strings.Fields(field[1])\n\t\t}\n\t\tif strings.HasPrefix(line, \"processor\") {\n\t\t\tmatch := cpuinfoS390XProcessorRegexp.FindStringSubmatch(line)\n\t\t\tif len(match) < 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t\t\t}\n\t\t\tcpu := commonCPUInfo\n\t\t\tv, err := strconv.ParseUint(match[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpu.Processor = uint(v)\n\t\t\tcpuinfo = append(cpuinfo, cpu)\n\t\t}\n\t\tif strings.HasPrefix(line, \"cpu number\") {\n\t\t\tbreak\n\t\t}\n\t}\n\n\ti := 0\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"cpu number\":\n\t\t\ti++\n\t\tcase \"cpu MHz dynamic\":\n\t\t\tclock := cpuinfoClockRegexp.FindString(strings.TrimSpace(field[1]))\n\t\t\tv, err := strconv.ParseFloat(clock, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUMHz = v\n\t\tcase \"physical id\":\n\t\t\tcpuinfo[i].PhysicalID = field[1]\n\t\tcase \"core id\":\n\t\t\tcpuinfo[i].CoreID = field[1]\n\t\tcase \"cpu cores\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUCores = uint(v)\n\t\tcase \"siblings\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].Siblings = uint(v)\n\t\t}\n\t}\n\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoMips(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\t// find the first \"processor\" line\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"system type\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tcpuinfo := []CPUInfo{}\n\tsystemType := field[1]\n\n\ti := 0\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\ti = int(v)\n\t\t\tcpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\t\tcpuinfo[i].VendorID = systemType\n\t\tcase \"cpu model\":\n\t\t\tcpuinfo[i].ModelName = field[1]\n\t\tcase \"BogoMIPS\":\n\t\t\tv, err := strconv.ParseFloat(field[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].BogoMips = v\n\t\t}\n\t}\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoLoong(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\t// find the first \"processor\" line\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"system type\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, errors.New(\"invalid cpuinfo file: \" + firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tcpuinfo := []CPUInfo{}\n\tsystemType := field[1]\n\ti := 0\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\ti = int(v)\n\t\t\tcpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\t\tcpuinfo[i].VendorID = systemType\n\t\tcase \"CPU Family\":\n\t\t\tcpuinfo[i].CPUFamily = field[1]\n\t\tcase \"Model Name\":\n\t\t\tcpuinfo[i].ModelName = field[1]\n\t\t}\n\t}\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoPPC(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"processor\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tv, err := strconv.ParseUint(field[1], 0, 32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfirstcpu := CPUInfo{Processor: uint(v)}\n\tcpuinfo := []CPUInfo{firstcpu}\n\ti := 0\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tcpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor\n\t\t\ti++\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\tcase \"cpu\":\n\t\t\tcpuinfo[i].VendorID = field[1]\n\t\tcase \"clock\":\n\t\t\tclock := cpuinfoClockRegexp.FindString(strings.TrimSpace(field[1]))\n\t\t\tv, err := strconv.ParseFloat(clock, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcpuinfo[i].CPUMHz = v\n\t\t}\n\t}\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoRISCV(info []byte) ([]CPUInfo, error) {\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\n\tfirstLine := firstNonEmptyLine(scanner)\n\tif !strings.HasPrefix(firstLine, \"processor\") || !strings.Contains(firstLine, \":\") {\n\t\treturn nil, fmt.Errorf(\"invalid cpuinfo file: %q\", firstLine)\n\t}\n\tfield := strings.SplitN(firstLine, \": \", 2)\n\tv, err := strconv.ParseUint(field[1], 0, 32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfirstcpu := CPUInfo{Processor: uint(v)}\n\tcpuinfo := []CPUInfo{firstcpu}\n\ti := 0\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !strings.Contains(line, \":\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := strings.SplitN(line, \": \", 2)\n\t\tswitch strings.TrimSpace(field[0]) {\n\t\tcase \"processor\":\n\t\t\tv, err := strconv.ParseUint(field[1], 0, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\ti = int(v)\n\t\t\tcpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor\n\t\t\tcpuinfo[i].Processor = uint(v)\n\t\tcase \"hart\":\n\t\t\tcpuinfo[i].CoreID = field[1]\n\t\tcase \"isa\":\n\t\t\tcpuinfo[i].ModelName = field[1]\n\t\t}\n\t}\n\treturn cpuinfo, nil\n}\n\nfunc parseCPUInfoDummy(_ []byte) ([]CPUInfo, error) { // nolint:unused,deadcode\n\treturn nil, errors.New(\"not implemented\")\n}\n\n// firstNonEmptyLine advances the scanner to the first non-empty line\n// and returns the contents of that line.\nfunc firstNonEmptyLine(scanner *bufio.Scanner) string {\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif strings.TrimSpace(line) != \"\" {\n\t\t\treturn line\n\t\t}\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_armx.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && (arm || arm64)\n// +build linux\n// +build arm arm64\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoARM\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_loong64.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n// +build linux\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoLoong\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_mipsx.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && (mips || mipsle || mips64 || mips64le)\n// +build linux\n// +build mips mipsle mips64 mips64le\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoMips\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_others.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && !386 && !amd64 && !arm && !arm64 && !loong64 && !mips && !mips64 && !mips64le && !mipsle && !ppc64 && !ppc64le && !riscv64 && !s390x\n// +build linux,!386,!amd64,!arm,!arm64,!loong64,!mips,!mips64,!mips64le,!mipsle,!ppc64,!ppc64le,!riscv64,!s390x\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoDummy\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_ppcx.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && (ppc64 || ppc64le)\n// +build linux\n// +build ppc64 ppc64le\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoPPC\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_riscvx.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && (riscv || riscv64)\n// +build linux\n// +build riscv riscv64\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoRISCV\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_s390x.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n// +build linux\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoS390X\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/cpuinfo_x86.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux && (386 || amd64)\n// +build linux\n// +build 386 amd64\n\npackage procfs\n\nvar parseCPUInfo = parseCPUInfoX86\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/crypto.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Crypto holds info parsed from /proc/crypto.\ntype Crypto struct {\n\tAlignmask   *uint64\n\tAsync       bool\n\tBlocksize   *uint64\n\tChunksize   *uint64\n\tCtxsize     *uint64\n\tDigestsize  *uint64\n\tDriver      string\n\tGeniv       string\n\tInternal    string\n\tIvsize      *uint64\n\tMaxauthsize *uint64\n\tMaxKeysize  *uint64\n\tMinKeysize  *uint64\n\tModule      string\n\tName        string\n\tPriority    *int64\n\tRefcnt      *int64\n\tSeedsize    *uint64\n\tSelftest    string\n\tType        string\n\tWalksize    *uint64\n}\n\n// Crypto parses an crypto-file (/proc/crypto) and returns a slice of\n// structs containing the relevant info.  More information available here:\n// https://kernel.readthedocs.io/en/sphinx-samples/crypto-API.html\nfunc (fs FS) Crypto() ([]Crypto, error) {\n\tpath := fs.proc.Path(\"crypto\")\n\tb, err := util.ReadFileNoStat(path)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading crypto %q: %w\", path, err)\n\t}\n\n\tcrypto, err := parseCrypto(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing crypto %q: %w\", path, err)\n\t}\n\n\treturn crypto, nil\n}\n\n// parseCrypto parses a /proc/crypto stream into Crypto elements.\nfunc parseCrypto(r io.Reader) ([]Crypto, error) {\n\tvar out []Crypto\n\n\ts := bufio.NewScanner(r)\n\tfor s.Scan() {\n\t\ttext := s.Text()\n\t\tswitch {\n\t\tcase strings.HasPrefix(text, \"name\"):\n\t\t\t// Each crypto element begins with its name.\n\t\t\tout = append(out, Crypto{})\n\t\tcase text == \"\":\n\t\t\tcontinue\n\t\t}\n\n\t\tkv := strings.Split(text, \":\")\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"malformed crypto line: %q\", text)\n\t\t}\n\n\t\tk := strings.TrimSpace(kv[0])\n\t\tv := strings.TrimSpace(kv[1])\n\n\t\t// Parse the key/value pair into the currently focused element.\n\t\tc := &out[len(out)-1]\n\t\tif err := c.parseKV(k, v); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := s.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn out, nil\n}\n\n// parseKV parses a key/value pair into the appropriate field of c.\nfunc (c *Crypto) parseKV(k, v string) error {\n\tvp := util.NewValueParser(v)\n\n\tswitch k {\n\tcase \"async\":\n\t\t// Interpret literal yes as true.\n\t\tc.Async = v == \"yes\"\n\tcase \"blocksize\":\n\t\tc.Blocksize = vp.PUInt64()\n\tcase \"chunksize\":\n\t\tc.Chunksize = vp.PUInt64()\n\tcase \"digestsize\":\n\t\tc.Digestsize = vp.PUInt64()\n\tcase \"driver\":\n\t\tc.Driver = v\n\tcase \"geniv\":\n\t\tc.Geniv = v\n\tcase \"internal\":\n\t\tc.Internal = v\n\tcase \"ivsize\":\n\t\tc.Ivsize = vp.PUInt64()\n\tcase \"maxauthsize\":\n\t\tc.Maxauthsize = vp.PUInt64()\n\tcase \"max keysize\":\n\t\tc.MaxKeysize = vp.PUInt64()\n\tcase \"min keysize\":\n\t\tc.MinKeysize = vp.PUInt64()\n\tcase \"module\":\n\t\tc.Module = v\n\tcase \"name\":\n\t\tc.Name = v\n\tcase \"priority\":\n\t\tc.Priority = vp.PInt64()\n\tcase \"refcnt\":\n\t\tc.Refcnt = vp.PInt64()\n\tcase \"seedsize\":\n\t\tc.Seedsize = vp.PUInt64()\n\tcase \"selftest\":\n\t\tc.Selftest = v\n\tcase \"type\":\n\t\tc.Type = v\n\tcase \"walksize\":\n\t\tc.Walksize = vp.PUInt64()\n\t}\n\n\treturn vp.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/doc.go",
    "content": "// Copyright 2014 Prometheus Team\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package procfs provides functions to retrieve system, kernel and process\n// metrics from the pseudo-filesystem proc.\n//\n// Example:\n//\n//\tpackage main\n//\n//\timport (\n//\t\t\"fmt\"\n//\t\t\"log\"\n//\n//\t\t\"github.com/prometheus/procfs\"\n//\t)\n//\n//\tfunc main() {\n//\t\tp, err := procfs.Self()\n//\t\tif err != nil {\n//\t\t\tlog.Fatalf(\"could not get process: %s\", err)\n//\t\t}\n//\n//\t\tstat, err := p.Stat()\n//\t\tif err != nil {\n//\t\t\tlog.Fatalf(\"could not get process stat: %s\", err)\n//\t\t}\n//\n//\t\tfmt.Printf(\"command:  %s\\n\", stat.Comm)\n//\t\tfmt.Printf(\"cpu time: %fs\\n\", stat.CPUTime())\n//\t\tfmt.Printf(\"vsize:    %dB\\n\", stat.VirtualMemory())\n//\t\tfmt.Printf(\"rss:      %dB\\n\", stat.ResidentMemory())\n//\t}\npackage procfs\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/fs.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"github.com/prometheus/procfs/internal/fs\"\n)\n\n// FS represents the pseudo-filesystem sys, which provides an interface to\n// kernel data structures.\ntype FS struct {\n\tproc fs.FS\n\treal bool\n}\n\n// DefaultMountPoint is the common mount point of the proc filesystem.\nconst DefaultMountPoint = fs.DefaultProcMountPoint\n\n// NewDefaultFS returns a new proc FS mounted under the default proc mountPoint.\n// It will error if the mount point directory can't be read or is a file.\nfunc NewDefaultFS() (FS, error) {\n\treturn NewFS(DefaultMountPoint)\n}\n\n// NewFS returns a new proc FS mounted under the given proc mountPoint. It will error\n// if the mount point directory can't be read or is a file.\nfunc NewFS(mountPoint string) (FS, error) {\n\tfs, err := fs.NewFS(mountPoint)\n\tif err != nil {\n\t\treturn FS{}, err\n\t}\n\n\treal, err := isRealProc(mountPoint)\n\tif err != nil {\n\t\treturn FS{}, err\n\t}\n\n\treturn FS{fs, real}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/fs_statfs_notype.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build netbsd || openbsd || solaris || windows\n// +build netbsd openbsd solaris windows\n\npackage procfs\n\n// isRealProc returns true on architectures that don't have a Type argument\n// in their Statfs_t struct\nfunc isRealProc(mountPoint string) (bool, error) {\n\treturn true, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/fs_statfs_type.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !netbsd && !openbsd && !solaris && !windows\n// +build !netbsd,!openbsd,!solaris,!windows\n\npackage procfs\n\nimport (\n\t\"syscall\"\n)\n\n// isRealProc determines whether supplied mountpoint is really a proc filesystem.\nfunc isRealProc(mountPoint string) (bool, error) {\n\tstat := syscall.Statfs_t{}\n\terr := syscall.Statfs(mountPoint, &stat)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\t// 0x9fa0 is PROC_SUPER_MAGIC: https://elixir.bootlin.com/linux/v6.1/source/include/uapi/linux/magic.h#L87\n\treturn stat.Type == 0x9fa0, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/fscache.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Fscacheinfo represents fscache statistics.\ntype Fscacheinfo struct {\n\t// Number of index cookies allocated\n\tIndexCookiesAllocated uint64\n\t// data storage cookies allocated\n\tDataStorageCookiesAllocated uint64\n\t// Number of special cookies allocated\n\tSpecialCookiesAllocated uint64\n\t// Number of objects allocated\n\tObjectsAllocated uint64\n\t// Number of object allocation failures\n\tObjectAllocationsFailure uint64\n\t// Number of objects that reached the available state\n\tObjectsAvailable uint64\n\t// Number of objects that reached the dead state\n\tObjectsDead uint64\n\t// Number of objects that didn't have a coherency check\n\tObjectsWithoutCoherencyCheck uint64\n\t// Number of objects that passed a coherency check\n\tObjectsWithCoherencyCheck uint64\n\t// Number of objects that needed a coherency data update\n\tObjectsNeedCoherencyCheckUpdate uint64\n\t// Number of objects that were declared obsolete\n\tObjectsDeclaredObsolete uint64\n\t// Number of pages marked as being cached\n\tPagesMarkedAsBeingCached uint64\n\t// Number of uncache page requests seen\n\tUncachePagesRequestSeen uint64\n\t// Number of acquire cookie requests seen\n\tAcquireCookiesRequestSeen uint64\n\t// Number of acq reqs given a NULL parent\n\tAcquireRequestsWithNullParent uint64\n\t// Number of acq reqs rejected due to no cache available\n\tAcquireRequestsRejectedNoCacheAvailable uint64\n\t// Number of acq reqs succeeded\n\tAcquireRequestsSucceeded uint64\n\t// Number of acq reqs rejected due to error\n\tAcquireRequestsRejectedDueToError uint64\n\t// Number of acq reqs failed on ENOMEM\n\tAcquireRequestsFailedDueToEnomem uint64\n\t// Number of lookup calls made on cache backends\n\tLookupsNumber uint64\n\t// Number of negative lookups made\n\tLookupsNegative uint64\n\t// Number of positive lookups made\n\tLookupsPositive uint64\n\t// Number of objects created by lookup\n\tObjectsCreatedByLookup uint64\n\t// Number of lookups timed out and requeued\n\tLookupsTimedOutAndRequed uint64\n\tInvalidationsNumber      uint64\n\tInvalidationsRunning     uint64\n\t// Number of update cookie requests seen\n\tUpdateCookieRequestSeen uint64\n\t// Number of upd reqs given a NULL parent\n\tUpdateRequestsWithNullParent uint64\n\t// Number of upd reqs granted CPU time\n\tUpdateRequestsRunning uint64\n\t// Number of relinquish cookie requests seen\n\tRelinquishCookiesRequestSeen uint64\n\t// Number of rlq reqs given a NULL parent\n\tRelinquishCookiesWithNullParent uint64\n\t// Number of rlq reqs waited on completion of creation\n\tRelinquishRequestsWaitingCompleteCreation uint64\n\t// Relinqs rtr\n\tRelinquishRetries uint64\n\t// Number of attribute changed requests seen\n\tAttributeChangedRequestsSeen uint64\n\t// Number of attr changed requests queued\n\tAttributeChangedRequestsQueued uint64\n\t// Number of attr changed rejected -ENOBUFS\n\tAttributeChangedRejectDueToEnobufs uint64\n\t// Number of attr changed failed -ENOMEM\n\tAttributeChangedFailedDueToEnomem uint64\n\t// Number of attr changed ops given CPU time\n\tAttributeChangedOps uint64\n\t// Number of allocation requests seen\n\tAllocationRequestsSeen uint64\n\t// Number of successful alloc reqs\n\tAllocationOkRequests uint64\n\t// Number of alloc reqs that waited on lookup completion\n\tAllocationWaitingOnLookup uint64\n\t// Number of alloc reqs rejected -ENOBUFS\n\tAllocationsRejectedDueToEnobufs uint64\n\t// Number of alloc reqs aborted -ERESTARTSYS\n\tAllocationsAbortedDueToErestartsys uint64\n\t// Number of alloc reqs submitted\n\tAllocationOperationsSubmitted uint64\n\t// Number of alloc reqs waited for CPU time\n\tAllocationsWaitedForCPU uint64\n\t// Number of alloc reqs aborted due to object death\n\tAllocationsAbortedDueToObjectDeath uint64\n\t// Number of retrieval (read) requests seen\n\tRetrievalsReadRequests uint64\n\t// Number of successful retr reqs\n\tRetrievalsOk uint64\n\t// Number of retr reqs that waited on lookup completion\n\tRetrievalsWaitingLookupCompletion uint64\n\t// Number of retr reqs returned -ENODATA\n\tRetrievalsReturnedEnodata uint64\n\t// Number of retr reqs rejected -ENOBUFS\n\tRetrievalsRejectedDueToEnobufs uint64\n\t// Number of retr reqs aborted -ERESTARTSYS\n\tRetrievalsAbortedDueToErestartsys uint64\n\t// Number of retr reqs failed -ENOMEM\n\tRetrievalsFailedDueToEnomem uint64\n\t// Number of retr reqs submitted\n\tRetrievalsRequests uint64\n\t// Number of retr reqs waited for CPU time\n\tRetrievalsWaitingCPU uint64\n\t// Number of retr reqs aborted due to object death\n\tRetrievalsAbortedDueToObjectDeath uint64\n\t// Number of storage (write) requests seen\n\tStoreWriteRequests uint64\n\t// Number of successful store reqs\n\tStoreSuccessfulRequests uint64\n\t// Number of store reqs on a page already pending storage\n\tStoreRequestsOnPendingStorage uint64\n\t// Number of store reqs rejected -ENOBUFS\n\tStoreRequestsRejectedDueToEnobufs uint64\n\t// Number of store reqs failed -ENOMEM\n\tStoreRequestsFailedDueToEnomem uint64\n\t// Number of store reqs submitted\n\tStoreRequestsSubmitted uint64\n\t// Number of store reqs granted CPU time\n\tStoreRequestsRunning uint64\n\t// Number of pages given store req processing time\n\tStorePagesWithRequestsProcessing uint64\n\t// Number of store reqs deleted from tracking tree\n\tStoreRequestsDeleted uint64\n\t// Number of store reqs over store limit\n\tStoreRequestsOverStoreLimit uint64\n\t// Number of release reqs against pages with no pending store\n\tReleaseRequestsAgainstPagesWithNoPendingStorage uint64\n\t// Number of release reqs against pages stored by time lock granted\n\tReleaseRequestsAgainstPagesStoredByTimeLockGranted uint64\n\t// Number of release reqs ignored due to in-progress store\n\tReleaseRequestsIgnoredDueToInProgressStore uint64\n\t// Number of page stores cancelled due to release req\n\tPageStoresCancelledByReleaseRequests uint64\n\tVmscanWaiting                        uint64\n\t// Number of times async ops added to pending queues\n\tOpsPending uint64\n\t// Number of times async ops given CPU time\n\tOpsRunning uint64\n\t// Number of times async ops queued for processing\n\tOpsEnqueued uint64\n\t// Number of async ops cancelled\n\tOpsCancelled uint64\n\t// Number of async ops rejected due to object lookup/create failure\n\tOpsRejected uint64\n\t// Number of async ops initialised\n\tOpsInitialised uint64\n\t// Number of async ops queued for deferred release\n\tOpsDeferred uint64\n\t// Number of async ops released (should equal ini=N when idle)\n\tOpsReleased uint64\n\t// Number of deferred-release async ops garbage collected\n\tOpsGarbageCollected uint64\n\t// Number of in-progress alloc_object() cache ops\n\tCacheopAllocationsinProgress uint64\n\t// Number of in-progress lookup_object() cache ops\n\tCacheopLookupObjectInProgress uint64\n\t// Number of in-progress lookup_complete() cache ops\n\tCacheopLookupCompleteInPorgress uint64\n\t// Number of in-progress grab_object() cache ops\n\tCacheopGrabObjectInProgress uint64\n\tCacheopInvalidations        uint64\n\t// Number of in-progress update_object() cache ops\n\tCacheopUpdateObjectInProgress uint64\n\t// Number of in-progress drop_object() cache ops\n\tCacheopDropObjectInProgress uint64\n\t// Number of in-progress put_object() cache ops\n\tCacheopPutObjectInProgress uint64\n\t// Number of in-progress attr_changed() cache ops\n\tCacheopAttributeChangeInProgress uint64\n\t// Number of in-progress sync_cache() cache ops\n\tCacheopSyncCacheInProgress uint64\n\t// Number of in-progress read_or_alloc_page() cache ops\n\tCacheopReadOrAllocPageInProgress uint64\n\t// Number of in-progress read_or_alloc_pages() cache ops\n\tCacheopReadOrAllocPagesInProgress uint64\n\t// Number of in-progress allocate_page() cache ops\n\tCacheopAllocatePageInProgress uint64\n\t// Number of in-progress allocate_pages() cache ops\n\tCacheopAllocatePagesInProgress uint64\n\t// Number of in-progress write_page() cache ops\n\tCacheopWritePagesInProgress uint64\n\t// Number of in-progress uncache_page() cache ops\n\tCacheopUncachePagesInProgress uint64\n\t// Number of in-progress dissociate_pages() cache ops\n\tCacheopDissociatePagesInProgress uint64\n\t// Number of object lookups/creations rejected due to lack of space\n\tCacheevLookupsAndCreationsRejectedLackSpace uint64\n\t// Number of stale objects deleted\n\tCacheevStaleObjectsDeleted uint64\n\t// Number of objects retired when relinquished\n\tCacheevRetiredWhenReliquished uint64\n\t// Number of objects culled\n\tCacheevObjectsCulled uint64\n}\n\n// Fscacheinfo returns information about current fscache statistics.\n// See https://www.kernel.org/doc/Documentation/filesystems/caching/fscache.txt\nfunc (fs FS) Fscacheinfo() (Fscacheinfo, error) {\n\tb, err := util.ReadFileNoStat(fs.proc.Path(\"fs/fscache/stats\"))\n\tif err != nil {\n\t\treturn Fscacheinfo{}, err\n\t}\n\n\tm, err := parseFscacheinfo(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn Fscacheinfo{}, fmt.Errorf(\"failed to parse Fscacheinfo: %w\", err)\n\t}\n\n\treturn *m, nil\n}\n\nfunc setFSCacheFields(fields []string, setFields ...*uint64) error {\n\tvar err error\n\tif len(fields) < len(setFields) {\n\t\treturn fmt.Errorf(\"Insufficient number of fields, expected %v, got %v\", len(setFields), len(fields))\n\t}\n\n\tfor i := range setFields {\n\t\t*setFields[i], err = strconv.ParseUint(strings.Split(fields[i], \"=\")[1], 0, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc parseFscacheinfo(r io.Reader) (*Fscacheinfo, error) {\n\tvar m Fscacheinfo\n\ts := bufio.NewScanner(r)\n\tfor s.Scan() {\n\t\tfields := strings.Fields(s.Text())\n\t\tif len(fields) < 2 {\n\t\t\treturn nil, fmt.Errorf(\"malformed Fscacheinfo line: %q\", s.Text())\n\t\t}\n\n\t\tswitch fields[0] {\n\t\tcase \"Cookies:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.IndexCookiesAllocated, &m.DataStorageCookiesAllocated,\n\t\t\t\t&m.SpecialCookiesAllocated)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Objects:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.ObjectsAllocated, &m.ObjectAllocationsFailure,\n\t\t\t\t&m.ObjectsAvailable, &m.ObjectsDead)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"ChkAux\":\n\t\t\terr := setFSCacheFields(fields[2:], &m.ObjectsWithoutCoherencyCheck, &m.ObjectsWithCoherencyCheck,\n\t\t\t\t&m.ObjectsNeedCoherencyCheckUpdate, &m.ObjectsDeclaredObsolete)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Pages\":\n\t\t\terr := setFSCacheFields(fields[2:], &m.PagesMarkedAsBeingCached, &m.UncachePagesRequestSeen)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Acquire:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.AcquireCookiesRequestSeen, &m.AcquireRequestsWithNullParent,\n\t\t\t\t&m.AcquireRequestsRejectedNoCacheAvailable, &m.AcquireRequestsSucceeded, &m.AcquireRequestsRejectedDueToError,\n\t\t\t\t&m.AcquireRequestsFailedDueToEnomem)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Lookups:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.LookupsNumber, &m.LookupsNegative, &m.LookupsPositive,\n\t\t\t\t&m.ObjectsCreatedByLookup, &m.LookupsTimedOutAndRequed)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Invals\":\n\t\t\terr := setFSCacheFields(fields[2:], &m.InvalidationsNumber, &m.InvalidationsRunning)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Updates:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.UpdateCookieRequestSeen, &m.UpdateRequestsWithNullParent,\n\t\t\t\t&m.UpdateRequestsRunning)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Relinqs:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.RelinquishCookiesRequestSeen, &m.RelinquishCookiesWithNullParent,\n\t\t\t\t&m.RelinquishRequestsWaitingCompleteCreation, &m.RelinquishRetries)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"AttrChg:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.AttributeChangedRequestsSeen, &m.AttributeChangedRequestsQueued,\n\t\t\t\t&m.AttributeChangedRejectDueToEnobufs, &m.AttributeChangedFailedDueToEnomem, &m.AttributeChangedOps)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Allocs\":\n\t\t\tif strings.Split(fields[2], \"=\")[0] == \"n\" {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.AllocationRequestsSeen, &m.AllocationOkRequests,\n\t\t\t\t\t&m.AllocationWaitingOnLookup, &m.AllocationsRejectedDueToEnobufs, &m.AllocationsAbortedDueToErestartsys)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.AllocationOperationsSubmitted, &m.AllocationsWaitedForCPU,\n\t\t\t\t\t&m.AllocationsAbortedDueToObjectDeath)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"Retrvls:\":\n\t\t\tif strings.Split(fields[1], \"=\")[0] == \"n\" {\n\t\t\t\terr := setFSCacheFields(fields[1:], &m.RetrievalsReadRequests, &m.RetrievalsOk, &m.RetrievalsWaitingLookupCompletion,\n\t\t\t\t\t&m.RetrievalsReturnedEnodata, &m.RetrievalsRejectedDueToEnobufs, &m.RetrievalsAbortedDueToErestartsys,\n\t\t\t\t\t&m.RetrievalsFailedDueToEnomem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := setFSCacheFields(fields[1:], &m.RetrievalsRequests, &m.RetrievalsWaitingCPU, &m.RetrievalsAbortedDueToObjectDeath)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"Stores\":\n\t\t\tif strings.Split(fields[2], \"=\")[0] == \"n\" {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.StoreWriteRequests, &m.StoreSuccessfulRequests,\n\t\t\t\t\t&m.StoreRequestsOnPendingStorage, &m.StoreRequestsRejectedDueToEnobufs, &m.StoreRequestsFailedDueToEnomem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.StoreRequestsSubmitted, &m.StoreRequestsRunning,\n\t\t\t\t\t&m.StorePagesWithRequestsProcessing, &m.StoreRequestsDeleted, &m.StoreRequestsOverStoreLimit)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"VmScan\":\n\t\t\terr := setFSCacheFields(fields[2:], &m.ReleaseRequestsAgainstPagesWithNoPendingStorage,\n\t\t\t\t&m.ReleaseRequestsAgainstPagesStoredByTimeLockGranted, &m.ReleaseRequestsIgnoredDueToInProgressStore,\n\t\t\t\t&m.PageStoresCancelledByReleaseRequests, &m.VmscanWaiting)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\tcase \"Ops\":\n\t\t\tif strings.Split(fields[2], \"=\")[0] == \"pend\" {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.OpsPending, &m.OpsRunning, &m.OpsEnqueued, &m.OpsCancelled, &m.OpsRejected)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := setFSCacheFields(fields[2:], &m.OpsInitialised, &m.OpsDeferred, &m.OpsReleased, &m.OpsGarbageCollected)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"CacheOp:\":\n\t\t\tif strings.Split(fields[1], \"=\")[0] == \"alo\" {\n\t\t\t\terr := setFSCacheFields(fields[1:], &m.CacheopAllocationsinProgress, &m.CacheopLookupObjectInProgress,\n\t\t\t\t\t&m.CacheopLookupCompleteInPorgress, &m.CacheopGrabObjectInProgress)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else if strings.Split(fields[1], \"=\")[0] == \"inv\" {\n\t\t\t\terr := setFSCacheFields(fields[1:], &m.CacheopInvalidations, &m.CacheopUpdateObjectInProgress,\n\t\t\t\t\t&m.CacheopDropObjectInProgress, &m.CacheopPutObjectInProgress, &m.CacheopAttributeChangeInProgress,\n\t\t\t\t\t&m.CacheopSyncCacheInProgress)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := setFSCacheFields(fields[1:], &m.CacheopReadOrAllocPageInProgress, &m.CacheopReadOrAllocPagesInProgress,\n\t\t\t\t\t&m.CacheopAllocatePageInProgress, &m.CacheopAllocatePagesInProgress, &m.CacheopWritePagesInProgress,\n\t\t\t\t\t&m.CacheopUncachePagesInProgress, &m.CacheopDissociatePagesInProgress)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &m, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"CacheEv:\":\n\t\t\terr := setFSCacheFields(fields[1:], &m.CacheevLookupsAndCreationsRejectedLackSpace, &m.CacheevStaleObjectsDeleted,\n\t\t\t\t&m.CacheevRetiredWhenReliquished, &m.CacheevObjectsCulled)\n\t\t\tif err != nil {\n\t\t\t\treturn &m, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &m, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/fs/fs.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage fs\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\nconst (\n\t// DefaultProcMountPoint is the common mount point of the proc filesystem.\n\tDefaultProcMountPoint = \"/proc\"\n\n\t// DefaultSysMountPoint is the common mount point of the sys filesystem.\n\tDefaultSysMountPoint = \"/sys\"\n\n\t// DefaultConfigfsMountPoint is the common mount point of the configfs.\n\tDefaultConfigfsMountPoint = \"/sys/kernel/config\"\n)\n\n// FS represents a pseudo-filesystem, normally /proc or /sys, which provides an\n// interface to kernel data structures.\ntype FS string\n\n// NewFS returns a new FS mounted under the given mountPoint. It will error\n// if the mount point can't be read.\nfunc NewFS(mountPoint string) (FS, error) {\n\tinfo, err := os.Stat(mountPoint)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"could not read %q: %w\", mountPoint, err)\n\t}\n\tif !info.IsDir() {\n\t\treturn \"\", fmt.Errorf(\"mount point %q is not a directory\", mountPoint)\n\t}\n\n\treturn FS(mountPoint), nil\n}\n\n// Path appends the given path elements to the filesystem path, adding separators\n// as necessary.\nfunc (fs FS) Path(p ...string) string {\n\treturn filepath.Join(append([]string{string(fs)}, p...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/util/parse.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage util\n\nimport (\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// ParseUint32s parses a slice of strings into a slice of uint32s.\nfunc ParseUint32s(ss []string) ([]uint32, error) {\n\tus := make([]uint32, 0, len(ss))\n\tfor _, s := range ss {\n\t\tu, err := strconv.ParseUint(s, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tus = append(us, uint32(u))\n\t}\n\n\treturn us, nil\n}\n\n// ParseUint64s parses a slice of strings into a slice of uint64s.\nfunc ParseUint64s(ss []string) ([]uint64, error) {\n\tus := make([]uint64, 0, len(ss))\n\tfor _, s := range ss {\n\t\tu, err := strconv.ParseUint(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tus = append(us, u)\n\t}\n\n\treturn us, nil\n}\n\n// ParsePInt64s parses a slice of strings into a slice of int64 pointers.\nfunc ParsePInt64s(ss []string) ([]*int64, error) {\n\tus := make([]*int64, 0, len(ss))\n\tfor _, s := range ss {\n\t\tu, err := strconv.ParseInt(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tus = append(us, &u)\n\t}\n\n\treturn us, nil\n}\n\n// Parses a uint64 from given hex in string.\nfunc ParseHexUint64s(ss []string) ([]*uint64, error) {\n\tus := make([]*uint64, 0, len(ss))\n\tfor _, s := range ss {\n\t\tu, err := strconv.ParseUint(s, 16, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tus = append(us, &u)\n\t}\n\n\treturn us, nil\n}\n\n// ReadUintFromFile reads a file and attempts to parse a uint64 from it.\nfunc ReadUintFromFile(path string) (uint64, error) {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)\n}\n\n// ReadIntFromFile reads a file and attempts to parse a int64 from it.\nfunc ReadIntFromFile(path string) (int64, error) {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)\n}\n\n// ParseBool parses a string into a boolean pointer.\nfunc ParseBool(b string) *bool {\n\tvar truth bool\n\tswitch b {\n\tcase \"enabled\":\n\t\ttruth = true\n\tcase \"disabled\":\n\t\ttruth = false\n\tdefault:\n\t\treturn nil\n\t}\n\treturn &truth\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/util/readfile.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage util\n\nimport (\n\t\"io\"\n\t\"os\"\n)\n\n// ReadFileNoStat uses io.ReadAll to read contents of entire file.\n// This is similar to os.ReadFile but without the call to os.Stat, because\n// many files in /proc and /sys report incorrect file sizes (either 0 or 4096).\n// Reads a max file size of 1024kB.  For files larger than this, a scanner\n// should be used.\nfunc ReadFileNoStat(filename string) ([]byte, error) {\n\tconst maxBufferSize = 1024 * 1024\n\n\tf, err := os.Open(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\n\treader := io.LimitReader(f, maxBufferSize)\n\treturn io.ReadAll(reader)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build (linux || darwin) && !appengine\n// +build linux darwin\n// +build !appengine\n\npackage util\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"syscall\"\n)\n\n// SysReadFile is a simplified os.ReadFile that invokes syscall.Read directly.\n// https://github.com/prometheus/node_exporter/pull/728/files\n//\n// Note that this function will not read files larger than 128 bytes.\nfunc SysReadFile(file string) (string, error) {\n\tf, err := os.Open(file)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer f.Close()\n\n\t// On some machines, hwmon drivers are broken and return EAGAIN.  This causes\n\t// Go's os.ReadFile implementation to poll forever.\n\t//\n\t// Since we either want to read data or bail immediately, do the simplest\n\t// possible read using syscall directly.\n\tconst sysFileBufferSize = 128\n\tb := make([]byte, sysFileBufferSize)\n\tn, err := syscall.Read(int(f.Fd()), b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn string(bytes.TrimSpace(b[:n])), nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/util/sysreadfile_compat.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build (linux && appengine) || (!linux && !darwin)\n// +build linux,appengine !linux,!darwin\n\npackage util\n\nimport (\n\t\"fmt\"\n)\n\n// SysReadFile is here implemented as a noop for builds that do not support\n// the read syscall. For example Windows, or Linux on Google App Engine.\nfunc SysReadFile(file string) (string, error) {\n\treturn \"\", fmt.Errorf(\"not supported on this platform\")\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/internal/util/valueparser.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage util\n\nimport (\n\t\"strconv\"\n)\n\n// TODO(mdlayher): util packages are an anti-pattern and this should be moved\n// somewhere else that is more focused in the future.\n\n// A ValueParser enables parsing a single string into a variety of data types\n// in a concise and safe way. The Err method must be invoked after invoking\n// any other methods to ensure a value was successfully parsed.\ntype ValueParser struct {\n\tv   string\n\terr error\n}\n\n// NewValueParser creates a ValueParser using the input string.\nfunc NewValueParser(v string) *ValueParser {\n\treturn &ValueParser{v: v}\n}\n\n// Int interprets the underlying value as an int and returns that value.\nfunc (vp *ValueParser) Int() int { return int(vp.int64()) }\n\n// PInt64 interprets the underlying value as an int64 and returns a pointer to\n// that value.\nfunc (vp *ValueParser) PInt64() *int64 {\n\tif vp.err != nil {\n\t\treturn nil\n\t}\n\n\tv := vp.int64()\n\treturn &v\n}\n\n// int64 interprets the underlying value as an int64 and returns that value.\n// TODO: export if/when necessary.\nfunc (vp *ValueParser) int64() int64 {\n\tif vp.err != nil {\n\t\treturn 0\n\t}\n\n\t// A base value of zero makes ParseInt infer the correct base using the\n\t// string's prefix, if any.\n\tconst base = 0\n\tv, err := strconv.ParseInt(vp.v, base, 64)\n\tif err != nil {\n\t\tvp.err = err\n\t\treturn 0\n\t}\n\n\treturn v\n}\n\n// PUInt64 interprets the underlying value as an uint64 and returns a pointer to\n// that value.\nfunc (vp *ValueParser) PUInt64() *uint64 {\n\tif vp.err != nil {\n\t\treturn nil\n\t}\n\n\t// A base value of zero makes ParseInt infer the correct base using the\n\t// string's prefix, if any.\n\tconst base = 0\n\tv, err := strconv.ParseUint(vp.v, base, 64)\n\tif err != nil {\n\t\tvp.err = err\n\t\treturn nil\n\t}\n\n\treturn &v\n}\n\n// Err returns the last error, if any, encountered by the ValueParser.\nfunc (vp *ValueParser) Err() error {\n\treturn vp.err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/ipvs.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// IPVSStats holds IPVS statistics, as exposed by the kernel in `/proc/net/ip_vs_stats`.\ntype IPVSStats struct {\n\t// Total count of connections.\n\tConnections uint64\n\t// Total incoming packages processed.\n\tIncomingPackets uint64\n\t// Total outgoing packages processed.\n\tOutgoingPackets uint64\n\t// Total incoming traffic.\n\tIncomingBytes uint64\n\t// Total outgoing traffic.\n\tOutgoingBytes uint64\n}\n\n// IPVSBackendStatus holds current metrics of one virtual / real address pair.\ntype IPVSBackendStatus struct {\n\t// The local (virtual) IP address.\n\tLocalAddress net.IP\n\t// The remote (real) IP address.\n\tRemoteAddress net.IP\n\t// The local (virtual) port.\n\tLocalPort uint16\n\t// The remote (real) port.\n\tRemotePort uint16\n\t// The local firewall mark\n\tLocalMark string\n\t// The transport protocol (TCP, UDP).\n\tProto string\n\t// The current number of active connections for this virtual/real address pair.\n\tActiveConn uint64\n\t// The current number of inactive connections for this virtual/real address pair.\n\tInactConn uint64\n\t// The current weight of this virtual/real address pair.\n\tWeight uint64\n}\n\n// IPVSStats reads the IPVS statistics from the specified `proc` filesystem.\nfunc (fs FS) IPVSStats() (IPVSStats, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"net/ip_vs_stats\"))\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\n\treturn parseIPVSStats(bytes.NewReader(data))\n}\n\n// parseIPVSStats performs the actual parsing of `ip_vs_stats`.\nfunc parseIPVSStats(r io.Reader) (IPVSStats, error) {\n\tvar (\n\t\tstatContent []byte\n\t\tstatLines   []string\n\t\tstatFields  []string\n\t\tstats       IPVSStats\n\t)\n\n\tstatContent, err := io.ReadAll(r)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\n\tstatLines = strings.SplitN(string(statContent), \"\\n\", 4)\n\tif len(statLines) != 4 {\n\t\treturn IPVSStats{}, errors.New(\"ip_vs_stats corrupt: too short\")\n\t}\n\n\tstatFields = strings.Fields(statLines[2])\n\tif len(statFields) != 5 {\n\t\treturn IPVSStats{}, errors.New(\"ip_vs_stats corrupt: unexpected number of fields\")\n\t}\n\n\tstats.Connections, err = strconv.ParseUint(statFields[0], 16, 64)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\tstats.IncomingPackets, err = strconv.ParseUint(statFields[1], 16, 64)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\tstats.OutgoingPackets, err = strconv.ParseUint(statFields[2], 16, 64)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\tstats.IncomingBytes, err = strconv.ParseUint(statFields[3], 16, 64)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\tstats.OutgoingBytes, err = strconv.ParseUint(statFields[4], 16, 64)\n\tif err != nil {\n\t\treturn IPVSStats{}, err\n\t}\n\n\treturn stats, nil\n}\n\n// IPVSBackendStatus reads and returns the status of all (virtual,real) server pairs from the specified `proc` filesystem.\nfunc (fs FS) IPVSBackendStatus() ([]IPVSBackendStatus, error) {\n\tfile, err := os.Open(fs.proc.Path(\"net/ip_vs\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\n\treturn parseIPVSBackendStatus(file)\n}\n\nfunc parseIPVSBackendStatus(file io.Reader) ([]IPVSBackendStatus, error) {\n\tvar (\n\t\tstatus       []IPVSBackendStatus\n\t\tscanner      = bufio.NewScanner(file)\n\t\tproto        string\n\t\tlocalMark    string\n\t\tlocalAddress net.IP\n\t\tlocalPort    uint16\n\t\terr          error\n\t)\n\n\tfor scanner.Scan() {\n\t\tfields := strings.Fields(scanner.Text())\n\t\tif len(fields) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tswitch {\n\t\tcase fields[0] == \"IP\" || fields[0] == \"Prot\" || fields[1] == \"RemoteAddress:Port\":\n\t\t\tcontinue\n\t\tcase fields[0] == \"TCP\" || fields[0] == \"UDP\":\n\t\t\tif len(fields) < 2 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tproto = fields[0]\n\t\t\tlocalMark = \"\"\n\t\t\tlocalAddress, localPort, err = parseIPPort(fields[1])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\tcase fields[0] == \"FWM\":\n\t\t\tif len(fields) < 2 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tproto = fields[0]\n\t\t\tlocalMark = fields[1]\n\t\t\tlocalAddress = nil\n\t\t\tlocalPort = 0\n\t\tcase fields[0] == \"->\":\n\t\t\tif len(fields) < 6 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tremoteAddress, remotePort, err := parseIPPort(fields[1])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tweight, err := strconv.ParseUint(fields[3], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tactiveConn, err := strconv.ParseUint(fields[4], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinactConn, err := strconv.ParseUint(fields[5], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstatus = append(status, IPVSBackendStatus{\n\t\t\t\tLocalAddress:  localAddress,\n\t\t\t\tLocalPort:     localPort,\n\t\t\t\tLocalMark:     localMark,\n\t\t\t\tRemoteAddress: remoteAddress,\n\t\t\t\tRemotePort:    remotePort,\n\t\t\t\tProto:         proto,\n\t\t\t\tWeight:        weight,\n\t\t\t\tActiveConn:    activeConn,\n\t\t\t\tInactConn:     inactConn,\n\t\t\t})\n\t\t}\n\t}\n\treturn status, nil\n}\n\nfunc parseIPPort(s string) (net.IP, uint16, error) {\n\tvar (\n\t\tip  net.IP\n\t\terr error\n\t)\n\n\tswitch len(s) {\n\tcase 13:\n\t\tip, err = hex.DecodeString(s[0:8])\n\t\tif err != nil {\n\t\t\treturn nil, 0, err\n\t\t}\n\tcase 46:\n\t\tip = net.ParseIP(s[1:40])\n\t\tif ip == nil {\n\t\t\treturn nil, 0, fmt.Errorf(\"invalid IPv6 address: %s\", s[1:40])\n\t\t}\n\tdefault:\n\t\treturn nil, 0, fmt.Errorf(\"unexpected IP:Port: %s\", s)\n\t}\n\n\tportString := s[len(s)-4:]\n\tif len(portString) != 4 {\n\t\treturn nil, 0, fmt.Errorf(\"unexpected port string format: %s\", portString)\n\t}\n\tport, err := strconv.ParseUint(portString, 16, 16)\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\treturn ip, uint16(port), nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/kernel_random.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows\n// +build !windows\n\npackage procfs\n\nimport (\n\t\"os\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// KernelRandom contains information about to the kernel's random number generator.\ntype KernelRandom struct {\n\t// EntropyAvaliable gives the available entropy, in bits.\n\tEntropyAvaliable *uint64\n\t// PoolSize gives the size of the entropy pool, in bits.\n\tPoolSize *uint64\n\t// URandomMinReseedSeconds is the number of seconds after which the DRNG will be reseeded.\n\tURandomMinReseedSeconds *uint64\n\t// WriteWakeupThreshold the number of bits of entropy below which we wake up processes\n\t// that do a select(2) or poll(2) for write access to /dev/random.\n\tWriteWakeupThreshold *uint64\n\t// ReadWakeupThreshold is the number of bits of entropy required for waking up processes that sleep\n\t// waiting for entropy from /dev/random.\n\tReadWakeupThreshold *uint64\n}\n\n// KernelRandom returns values from /proc/sys/kernel/random.\nfunc (fs FS) KernelRandom() (KernelRandom, error) {\n\trandom := KernelRandom{}\n\n\tfor file, p := range map[string]**uint64{\n\t\t\"entropy_avail\":           &random.EntropyAvaliable,\n\t\t\"poolsize\":                &random.PoolSize,\n\t\t\"urandom_min_reseed_secs\": &random.URandomMinReseedSeconds,\n\t\t\"write_wakeup_threshold\":  &random.WriteWakeupThreshold,\n\t\t\"read_wakeup_threshold\":   &random.ReadWakeupThreshold,\n\t} {\n\t\tval, err := util.ReadUintFromFile(fs.proc.Path(\"sys\", \"kernel\", \"random\", file))\n\t\tif os.IsNotExist(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn random, err\n\t\t}\n\t\t*p = &val\n\t}\n\n\treturn random, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/loadavg.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// LoadAvg represents an entry in /proc/loadavg.\ntype LoadAvg struct {\n\tLoad1  float64\n\tLoad5  float64\n\tLoad15 float64\n}\n\n// LoadAvg returns loadavg from /proc.\nfunc (fs FS) LoadAvg() (*LoadAvg, error) {\n\tpath := fs.proc.Path(\"loadavg\")\n\n\tdata, err := util.ReadFileNoStat(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseLoad(data)\n}\n\n// Parse /proc loadavg and return 1m, 5m and 15m.\nfunc parseLoad(loadavgBytes []byte) (*LoadAvg, error) {\n\tloads := make([]float64, 3)\n\tparts := strings.Fields(string(loadavgBytes))\n\tif len(parts) < 3 {\n\t\treturn nil, fmt.Errorf(\"malformed loadavg line: too few fields in loadavg string: %q\", string(loadavgBytes))\n\t}\n\n\tvar err error\n\tfor i, load := range parts[0:3] {\n\t\tloads[i], err = strconv.ParseFloat(load, 64)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"could not parse load %q: %w\", load, err)\n\t\t}\n\t}\n\treturn &LoadAvg{\n\t\tLoad1:  loads[0],\n\t\tLoad5:  loads[1],\n\t\tLoad15: loads[2],\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/mdstat.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\tstatusLineRE         = regexp.MustCompile(`(\\d+) blocks .*\\[(\\d+)/(\\d+)\\] \\[([U_]+)\\]`)\n\trecoveryLineBlocksRE = regexp.MustCompile(`\\((\\d+)/\\d+\\)`)\n\trecoveryLinePctRE    = regexp.MustCompile(`= (.+)%`)\n\trecoveryLineFinishRE = regexp.MustCompile(`finish=(.+)min`)\n\trecoveryLineSpeedRE  = regexp.MustCompile(`speed=(.+)[A-Z]`)\n\tcomponentDeviceRE    = regexp.MustCompile(`(.*)\\[\\d+\\]`)\n)\n\n// MDStat holds info parsed from /proc/mdstat.\ntype MDStat struct {\n\t// Name of the device.\n\tName string\n\t// activity-state of the device.\n\tActivityState string\n\t// Number of active disks.\n\tDisksActive int64\n\t// Total number of disks the device requires.\n\tDisksTotal int64\n\t// Number of failed disks.\n\tDisksFailed int64\n\t// Number of \"down\" disks. (the _ indicator in the status line)\n\tDisksDown int64\n\t// Spare disks in the device.\n\tDisksSpare int64\n\t// Number of blocks the device holds.\n\tBlocksTotal int64\n\t// Number of blocks on the device that are in sync.\n\tBlocksSynced int64\n\t// progress percentage of current sync\n\tBlocksSyncedPct float64\n\t// estimated finishing time for current sync (in minutes)\n\tBlocksSyncedFinishTime float64\n\t// current sync speed (in Kilobytes/sec)\n\tBlocksSyncedSpeed float64\n\t// Name of md component devices\n\tDevices []string\n}\n\n// MDStat parses an mdstat-file (/proc/mdstat) and returns a slice of\n// structs containing the relevant info.  More information available here:\n// https://raid.wiki.kernel.org/index.php/Mdstat\nfunc (fs FS) MDStat() ([]MDStat, error) {\n\tdata, err := os.ReadFile(fs.proc.Path(\"mdstat\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmdstat, err := parseMDStat(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing mdstat %q: %w\", fs.proc.Path(\"mdstat\"), err)\n\t}\n\treturn mdstat, nil\n}\n\n// parseMDStat parses data from mdstat file (/proc/mdstat) and returns a slice of\n// structs containing the relevant info.\nfunc parseMDStat(mdStatData []byte) ([]MDStat, error) {\n\tmdStats := []MDStat{}\n\tlines := strings.Split(string(mdStatData), \"\\n\")\n\n\tfor i, line := range lines {\n\t\tif strings.TrimSpace(line) == \"\" || line[0] == ' ' ||\n\t\t\tstrings.HasPrefix(line, \"Personalities\") ||\n\t\t\tstrings.HasPrefix(line, \"unused\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tdeviceFields := strings.Fields(line)\n\t\tif len(deviceFields) < 3 {\n\t\t\treturn nil, fmt.Errorf(\"not enough fields in mdline (expected at least 3): %s\", line)\n\t\t}\n\t\tmdName := deviceFields[0] // mdx\n\t\tstate := deviceFields[2]  // active or inactive\n\n\t\tif len(lines) <= i+3 {\n\t\t\treturn nil, fmt.Errorf(\"error parsing %q: too few lines for md device\", mdName)\n\t\t}\n\n\t\t// Failed disks have the suffix (F) & Spare disks have the suffix (S).\n\t\tfail := int64(strings.Count(line, \"(F)\"))\n\t\tspare := int64(strings.Count(line, \"(S)\"))\n\t\tactive, total, down, size, err := evalStatusLine(lines[i], lines[i+1])\n\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error parsing md device lines: %w\", err)\n\t\t}\n\n\t\tsyncLineIdx := i + 2\n\t\tif strings.Contains(lines[i+2], \"bitmap\") { // skip bitmap line\n\t\t\tsyncLineIdx++\n\t\t}\n\n\t\t// If device is syncing at the moment, get the number of currently\n\t\t// synced bytes, otherwise that number equals the size of the device.\n\t\tsyncedBlocks := size\n\t\tspeed := float64(0)\n\t\tfinish := float64(0)\n\t\tpct := float64(0)\n\t\trecovering := strings.Contains(lines[syncLineIdx], \"recovery\")\n\t\tresyncing := strings.Contains(lines[syncLineIdx], \"resync\")\n\t\tchecking := strings.Contains(lines[syncLineIdx], \"check\")\n\n\t\t// Append recovery and resyncing state info.\n\t\tif recovering || resyncing || checking {\n\t\t\tif recovering {\n\t\t\t\tstate = \"recovering\"\n\t\t\t} else if checking {\n\t\t\t\tstate = \"checking\"\n\t\t\t} else {\n\t\t\t\tstate = \"resyncing\"\n\t\t\t}\n\n\t\t\t// Handle case when resync=PENDING or resync=DELAYED.\n\t\t\tif strings.Contains(lines[syncLineIdx], \"PENDING\") ||\n\t\t\t\tstrings.Contains(lines[syncLineIdx], \"DELAYED\") {\n\t\t\t\tsyncedBlocks = 0\n\t\t\t} else {\n\t\t\t\tsyncedBlocks, pct, finish, speed, err = evalRecoveryLine(lines[syncLineIdx])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"error parsing sync line in md device %q: %w\", mdName, err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tmdStats = append(mdStats, MDStat{\n\t\t\tName:                   mdName,\n\t\t\tActivityState:          state,\n\t\t\tDisksActive:            active,\n\t\t\tDisksFailed:            fail,\n\t\t\tDisksDown:              down,\n\t\t\tDisksSpare:             spare,\n\t\t\tDisksTotal:             total,\n\t\t\tBlocksTotal:            size,\n\t\t\tBlocksSynced:           syncedBlocks,\n\t\t\tBlocksSyncedPct:        pct,\n\t\t\tBlocksSyncedFinishTime: finish,\n\t\t\tBlocksSyncedSpeed:      speed,\n\t\t\tDevices:                evalComponentDevices(deviceFields),\n\t\t})\n\t}\n\n\treturn mdStats, nil\n}\n\nfunc evalStatusLine(deviceLine, statusLine string) (active, total, down, size int64, err error) {\n\tstatusFields := strings.Fields(statusLine)\n\tif len(statusFields) < 1 {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"unexpected statusLine %q\", statusLine)\n\t}\n\n\tsizeStr := statusFields[0]\n\tsize, err = strconv.ParseInt(sizeStr, 10, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"unexpected statusLine %q: %w\", statusLine, err)\n\t}\n\n\tif strings.Contains(deviceLine, \"raid0\") || strings.Contains(deviceLine, \"linear\") {\n\t\t// In the device deviceLine, only disks have a number associated with them in [].\n\t\ttotal = int64(strings.Count(deviceLine, \"[\"))\n\t\treturn total, total, 0, size, nil\n\t}\n\n\tif strings.Contains(deviceLine, \"inactive\") {\n\t\treturn 0, 0, 0, size, nil\n\t}\n\n\tmatches := statusLineRE.FindStringSubmatch(statusLine)\n\tif len(matches) != 5 {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"couldn't find all the substring matches: %s\", statusLine)\n\t}\n\n\ttotal, err = strconv.ParseInt(matches[2], 10, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"unexpected statusLine %q: %w\", statusLine, err)\n\t}\n\n\tactive, err = strconv.ParseInt(matches[3], 10, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"unexpected statusLine %q: %w\", statusLine, err)\n\t}\n\tdown = int64(strings.Count(matches[4], \"_\"))\n\n\treturn active, total, down, size, nil\n}\n\nfunc evalRecoveryLine(recoveryLine string) (syncedBlocks int64, pct float64, finish float64, speed float64, err error) {\n\tmatches := recoveryLineBlocksRE.FindStringSubmatch(recoveryLine)\n\tif len(matches) != 2 {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"unexpected recoveryLine: %s\", recoveryLine)\n\t}\n\n\tsyncedBlocks, err = strconv.ParseInt(matches[1], 10, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, 0, fmt.Errorf(\"error parsing int from recoveryLine %q: %w\", recoveryLine, err)\n\t}\n\n\t// Get percentage complete\n\tmatches = recoveryLinePctRE.FindStringSubmatch(recoveryLine)\n\tif len(matches) != 2 {\n\t\treturn syncedBlocks, 0, 0, 0, fmt.Errorf(\"unexpected recoveryLine matching percentage: %s\", recoveryLine)\n\t}\n\tpct, err = strconv.ParseFloat(strings.TrimSpace(matches[1]), 64)\n\tif err != nil {\n\t\treturn syncedBlocks, 0, 0, 0, fmt.Errorf(\"error parsing float from recoveryLine %q: %w\", recoveryLine, err)\n\t}\n\n\t// Get time expected left to complete\n\tmatches = recoveryLineFinishRE.FindStringSubmatch(recoveryLine)\n\tif len(matches) != 2 {\n\t\treturn syncedBlocks, pct, 0, 0, fmt.Errorf(\"unexpected recoveryLine matching est. finish time: %s\", recoveryLine)\n\t}\n\tfinish, err = strconv.ParseFloat(matches[1], 64)\n\tif err != nil {\n\t\treturn syncedBlocks, pct, 0, 0, fmt.Errorf(\"error parsing float from recoveryLine %q: %w\", recoveryLine, err)\n\t}\n\n\t// Get recovery speed\n\tmatches = recoveryLineSpeedRE.FindStringSubmatch(recoveryLine)\n\tif len(matches) != 2 {\n\t\treturn syncedBlocks, pct, finish, 0, fmt.Errorf(\"unexpected recoveryLine matching speed: %s\", recoveryLine)\n\t}\n\tspeed, err = strconv.ParseFloat(matches[1], 64)\n\tif err != nil {\n\t\treturn syncedBlocks, pct, finish, 0, fmt.Errorf(\"error parsing float from recoveryLine %q: %w\", recoveryLine, err)\n\t}\n\n\treturn syncedBlocks, pct, finish, speed, nil\n}\n\nfunc evalComponentDevices(deviceFields []string) []string {\n\tmdComponentDevices := make([]string, 0)\n\tif len(deviceFields) > 3 {\n\t\tfor _, field := range deviceFields[4:] {\n\t\t\tmatch := componentDeviceRE.FindStringSubmatch(field)\n\t\t\tif match == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmdComponentDevices = append(mdComponentDevices, match[1])\n\t\t}\n\t}\n\n\treturn mdComponentDevices\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/meminfo.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Meminfo represents memory statistics.\ntype Meminfo struct {\n\t// Total usable ram (i.e. physical ram minus a few reserved\n\t// bits and the kernel binary code)\n\tMemTotal *uint64\n\t// The sum of LowFree+HighFree\n\tMemFree *uint64\n\t// An estimate of how much memory is available for starting\n\t// new applications, without swapping. Calculated from\n\t// MemFree, SReclaimable, the size of the file LRU lists, and\n\t// the low watermarks in each zone.  The estimate takes into\n\t// account that the system needs some page cache to function\n\t// well, and that not all reclaimable slab will be\n\t// reclaimable, due to items being in use. The impact of those\n\t// factors will vary from system to system.\n\tMemAvailable *uint64\n\t// Relatively temporary storage for raw disk blocks shouldn't\n\t// get tremendously large (20MB or so)\n\tBuffers *uint64\n\tCached  *uint64\n\t// Memory that once was swapped out, is swapped back in but\n\t// still also is in the swapfile (if memory is needed it\n\t// doesn't need to be swapped out AGAIN because it is already\n\t// in the swapfile. This saves I/O)\n\tSwapCached *uint64\n\t// Memory that has been used more recently and usually not\n\t// reclaimed unless absolutely necessary.\n\tActive *uint64\n\t// Memory which has been less recently used.  It is more\n\t// eligible to be reclaimed for other purposes\n\tInactive     *uint64\n\tActiveAnon   *uint64\n\tInactiveAnon *uint64\n\tActiveFile   *uint64\n\tInactiveFile *uint64\n\tUnevictable  *uint64\n\tMlocked      *uint64\n\t// total amount of swap space available\n\tSwapTotal *uint64\n\t// Memory which has been evicted from RAM, and is temporarily\n\t// on the disk\n\tSwapFree *uint64\n\t// Memory which is waiting to get written back to the disk\n\tDirty *uint64\n\t// Memory which is actively being written back to the disk\n\tWriteback *uint64\n\t// Non-file backed pages mapped into userspace page tables\n\tAnonPages *uint64\n\t// files which have been mapped, such as libraries\n\tMapped *uint64\n\tShmem  *uint64\n\t// in-kernel data structures cache\n\tSlab *uint64\n\t// Part of Slab, that might be reclaimed, such as caches\n\tSReclaimable *uint64\n\t// Part of Slab, that cannot be reclaimed on memory pressure\n\tSUnreclaim  *uint64\n\tKernelStack *uint64\n\t// amount of memory dedicated to the lowest level of page\n\t// tables.\n\tPageTables *uint64\n\t// NFS pages sent to the server, but not yet committed to\n\t// stable storage\n\tNFSUnstable *uint64\n\t// Memory used for block device \"bounce buffers\"\n\tBounce *uint64\n\t// Memory used by FUSE for temporary writeback buffers\n\tWritebackTmp *uint64\n\t// Based on the overcommit ratio ('vm.overcommit_ratio'),\n\t// this is the total amount of  memory currently available to\n\t// be allocated on the system. This limit is only adhered to\n\t// if strict overcommit accounting is enabled (mode 2 in\n\t// 'vm.overcommit_memory').\n\t// The CommitLimit is calculated with the following formula:\n\t// CommitLimit = ([total RAM pages] - [total huge TLB pages]) *\n\t//                overcommit_ratio / 100 + [total swap pages]\n\t// For example, on a system with 1G of physical RAM and 7G\n\t// of swap with a `vm.overcommit_ratio` of 30 it would\n\t// yield a CommitLimit of 7.3G.\n\t// For more details, see the memory overcommit documentation\n\t// in vm/overcommit-accounting.\n\tCommitLimit *uint64\n\t// The amount of memory presently allocated on the system.\n\t// The committed memory is a sum of all of the memory which\n\t// has been allocated by processes, even if it has not been\n\t// \"used\" by them as of yet. A process which malloc()'s 1G\n\t// of memory, but only touches 300M of it will show up as\n\t// using 1G. This 1G is memory which has been \"committed\" to\n\t// by the VM and can be used at any time by the allocating\n\t// application. With strict overcommit enabled on the system\n\t// (mode 2 in 'vm.overcommit_memory'),allocations which would\n\t// exceed the CommitLimit (detailed above) will not be permitted.\n\t// This is useful if one needs to guarantee that processes will\n\t// not fail due to lack of memory once that memory has been\n\t// successfully allocated.\n\tCommittedAS *uint64\n\t// total size of vmalloc memory area\n\tVmallocTotal *uint64\n\t// amount of vmalloc area which is used\n\tVmallocUsed *uint64\n\t// largest contiguous block of vmalloc area which is free\n\tVmallocChunk      *uint64\n\tHardwareCorrupted *uint64\n\tAnonHugePages     *uint64\n\tShmemHugePages    *uint64\n\tShmemPmdMapped    *uint64\n\tCmaTotal          *uint64\n\tCmaFree           *uint64\n\tHugePagesTotal    *uint64\n\tHugePagesFree     *uint64\n\tHugePagesRsvd     *uint64\n\tHugePagesSurp     *uint64\n\tHugepagesize      *uint64\n\tDirectMap4k       *uint64\n\tDirectMap2M       *uint64\n\tDirectMap1G       *uint64\n}\n\n// Meminfo returns an information about current kernel/system memory statistics.\n// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt\nfunc (fs FS) Meminfo() (Meminfo, error) {\n\tb, err := util.ReadFileNoStat(fs.proc.Path(\"meminfo\"))\n\tif err != nil {\n\t\treturn Meminfo{}, err\n\t}\n\n\tm, err := parseMemInfo(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn Meminfo{}, fmt.Errorf(\"failed to parse meminfo: %w\", err)\n\t}\n\n\treturn *m, nil\n}\n\nfunc parseMemInfo(r io.Reader) (*Meminfo, error) {\n\tvar m Meminfo\n\ts := bufio.NewScanner(r)\n\tfor s.Scan() {\n\t\t// Each line has at least a name and value; we ignore the unit.\n\t\tfields := strings.Fields(s.Text())\n\t\tif len(fields) < 2 {\n\t\t\treturn nil, fmt.Errorf(\"malformed meminfo line: %q\", s.Text())\n\t\t}\n\n\t\tv, err := strconv.ParseUint(fields[1], 0, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch fields[0] {\n\t\tcase \"MemTotal:\":\n\t\t\tm.MemTotal = &v\n\t\tcase \"MemFree:\":\n\t\t\tm.MemFree = &v\n\t\tcase \"MemAvailable:\":\n\t\t\tm.MemAvailable = &v\n\t\tcase \"Buffers:\":\n\t\t\tm.Buffers = &v\n\t\tcase \"Cached:\":\n\t\t\tm.Cached = &v\n\t\tcase \"SwapCached:\":\n\t\t\tm.SwapCached = &v\n\t\tcase \"Active:\":\n\t\t\tm.Active = &v\n\t\tcase \"Inactive:\":\n\t\t\tm.Inactive = &v\n\t\tcase \"Active(anon):\":\n\t\t\tm.ActiveAnon = &v\n\t\tcase \"Inactive(anon):\":\n\t\t\tm.InactiveAnon = &v\n\t\tcase \"Active(file):\":\n\t\t\tm.ActiveFile = &v\n\t\tcase \"Inactive(file):\":\n\t\t\tm.InactiveFile = &v\n\t\tcase \"Unevictable:\":\n\t\t\tm.Unevictable = &v\n\t\tcase \"Mlocked:\":\n\t\t\tm.Mlocked = &v\n\t\tcase \"SwapTotal:\":\n\t\t\tm.SwapTotal = &v\n\t\tcase \"SwapFree:\":\n\t\t\tm.SwapFree = &v\n\t\tcase \"Dirty:\":\n\t\t\tm.Dirty = &v\n\t\tcase \"Writeback:\":\n\t\t\tm.Writeback = &v\n\t\tcase \"AnonPages:\":\n\t\t\tm.AnonPages = &v\n\t\tcase \"Mapped:\":\n\t\t\tm.Mapped = &v\n\t\tcase \"Shmem:\":\n\t\t\tm.Shmem = &v\n\t\tcase \"Slab:\":\n\t\t\tm.Slab = &v\n\t\tcase \"SReclaimable:\":\n\t\t\tm.SReclaimable = &v\n\t\tcase \"SUnreclaim:\":\n\t\t\tm.SUnreclaim = &v\n\t\tcase \"KernelStack:\":\n\t\t\tm.KernelStack = &v\n\t\tcase \"PageTables:\":\n\t\t\tm.PageTables = &v\n\t\tcase \"NFS_Unstable:\":\n\t\t\tm.NFSUnstable = &v\n\t\tcase \"Bounce:\":\n\t\t\tm.Bounce = &v\n\t\tcase \"WritebackTmp:\":\n\t\t\tm.WritebackTmp = &v\n\t\tcase \"CommitLimit:\":\n\t\t\tm.CommitLimit = &v\n\t\tcase \"Committed_AS:\":\n\t\t\tm.CommittedAS = &v\n\t\tcase \"VmallocTotal:\":\n\t\t\tm.VmallocTotal = &v\n\t\tcase \"VmallocUsed:\":\n\t\t\tm.VmallocUsed = &v\n\t\tcase \"VmallocChunk:\":\n\t\t\tm.VmallocChunk = &v\n\t\tcase \"HardwareCorrupted:\":\n\t\t\tm.HardwareCorrupted = &v\n\t\tcase \"AnonHugePages:\":\n\t\t\tm.AnonHugePages = &v\n\t\tcase \"ShmemHugePages:\":\n\t\t\tm.ShmemHugePages = &v\n\t\tcase \"ShmemPmdMapped:\":\n\t\t\tm.ShmemPmdMapped = &v\n\t\tcase \"CmaTotal:\":\n\t\t\tm.CmaTotal = &v\n\t\tcase \"CmaFree:\":\n\t\t\tm.CmaFree = &v\n\t\tcase \"HugePages_Total:\":\n\t\t\tm.HugePagesTotal = &v\n\t\tcase \"HugePages_Free:\":\n\t\t\tm.HugePagesFree = &v\n\t\tcase \"HugePages_Rsvd:\":\n\t\t\tm.HugePagesRsvd = &v\n\t\tcase \"HugePages_Surp:\":\n\t\t\tm.HugePagesSurp = &v\n\t\tcase \"Hugepagesize:\":\n\t\t\tm.Hugepagesize = &v\n\t\tcase \"DirectMap4k:\":\n\t\t\tm.DirectMap4k = &v\n\t\tcase \"DirectMap2M:\":\n\t\t\tm.DirectMap2M = &v\n\t\tcase \"DirectMap1G:\":\n\t\t\tm.DirectMap1G = &v\n\t\t}\n\t}\n\n\treturn &m, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/mountinfo.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// A MountInfo is a type that describes the details, options\n// for each mount, parsed from /proc/self/mountinfo.\n// The fields described in each entry of /proc/self/mountinfo\n// is described in the following man page.\n// http://man7.org/linux/man-pages/man5/proc.5.html\ntype MountInfo struct {\n\t// Unique ID for the mount\n\tMountID int\n\t// The ID of the parent mount\n\tParentID int\n\t// The value of `st_dev` for the files on this FS\n\tMajorMinorVer string\n\t// The pathname of the directory in the FS that forms\n\t// the root for this mount\n\tRoot string\n\t// The pathname of the mount point relative to the root\n\tMountPoint string\n\t// Mount options\n\tOptions map[string]string\n\t// Zero or more optional fields\n\tOptionalFields map[string]string\n\t// The Filesystem type\n\tFSType string\n\t// FS specific information or \"none\"\n\tSource string\n\t// Superblock options\n\tSuperOptions map[string]string\n}\n\n// Reads each line of the mountinfo file, and returns a list of formatted MountInfo structs.\nfunc parseMountInfo(info []byte) ([]*MountInfo, error) {\n\tmounts := []*MountInfo{}\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\tfor scanner.Scan() {\n\t\tmountString := scanner.Text()\n\t\tparsedMounts, err := parseMountInfoString(mountString)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmounts = append(mounts, parsedMounts)\n\t}\n\n\terr := scanner.Err()\n\treturn mounts, err\n}\n\n// Parses a mountinfo file line, and converts it to a MountInfo struct.\n// An important check here is to see if the hyphen separator, as if it does not exist,\n// it means that the line is malformed.\nfunc parseMountInfoString(mountString string) (*MountInfo, error) {\n\tvar err error\n\n\tmountInfo := strings.Split(mountString, \" \")\n\tmountInfoLength := len(mountInfo)\n\tif mountInfoLength < 10 {\n\t\treturn nil, fmt.Errorf(\"couldn't find enough fields in mount string: %s\", mountString)\n\t}\n\n\tif mountInfo[mountInfoLength-4] != \"-\" {\n\t\treturn nil, fmt.Errorf(\"couldn't find separator in expected field: %s\", mountInfo[mountInfoLength-4])\n\t}\n\n\tmount := &MountInfo{\n\t\tMajorMinorVer:  mountInfo[2],\n\t\tRoot:           mountInfo[3],\n\t\tMountPoint:     mountInfo[4],\n\t\tOptions:        mountOptionsParser(mountInfo[5]),\n\t\tOptionalFields: nil,\n\t\tFSType:         mountInfo[mountInfoLength-3],\n\t\tSource:         mountInfo[mountInfoLength-2],\n\t\tSuperOptions:   mountOptionsParser(mountInfo[mountInfoLength-1]),\n\t}\n\n\tmount.MountID, err = strconv.Atoi(mountInfo[0])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse mount ID\")\n\t}\n\tmount.ParentID, err = strconv.Atoi(mountInfo[1])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse parent ID\")\n\t}\n\t// Has optional fields, which is a space separated list of values.\n\t// Example: shared:2 master:7\n\tif mountInfo[6] != \"\" {\n\t\tmount.OptionalFields, err = mountOptionsParseOptionalFields(mountInfo[6 : mountInfoLength-4])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn mount, nil\n}\n\n// mountOptionsIsValidField checks a string against a valid list of optional fields keys.\nfunc mountOptionsIsValidField(s string) bool {\n\tswitch s {\n\tcase\n\t\t\"shared\",\n\t\t\"master\",\n\t\t\"propagate_from\",\n\t\t\"unbindable\":\n\t\treturn true\n\t}\n\treturn false\n}\n\n// mountOptionsParseOptionalFields parses a list of optional fields strings into a double map of strings.\nfunc mountOptionsParseOptionalFields(o []string) (map[string]string, error) {\n\toptionalFields := make(map[string]string)\n\tfor _, field := range o {\n\t\toptionSplit := strings.SplitN(field, \":\", 2)\n\t\tvalue := \"\"\n\t\tif len(optionSplit) == 2 {\n\t\t\tvalue = optionSplit[1]\n\t\t}\n\t\tif mountOptionsIsValidField(optionSplit[0]) {\n\t\t\toptionalFields[optionSplit[0]] = value\n\t\t}\n\t}\n\treturn optionalFields, nil\n}\n\n// mountOptionsParser parses the mount options, superblock options.\nfunc mountOptionsParser(mountOptions string) map[string]string {\n\topts := make(map[string]string)\n\toptions := strings.Split(mountOptions, \",\")\n\tfor _, opt := range options {\n\t\tsplitOption := strings.Split(opt, \"=\")\n\t\tif len(splitOption) < 2 {\n\t\t\tkey := splitOption[0]\n\t\t\topts[key] = \"\"\n\t\t} else {\n\t\t\tkey, value := splitOption[0], splitOption[1]\n\t\t\topts[key] = value\n\t\t}\n\t}\n\treturn opts\n}\n\n// GetMounts retrieves mountinfo information from `/proc/self/mountinfo`.\nfunc GetMounts() ([]*MountInfo, error) {\n\tdata, err := util.ReadFileNoStat(\"/proc/self/mountinfo\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseMountInfo(data)\n}\n\n// GetProcMounts retrieves mountinfo information from a processes' `/proc/<pid>/mountinfo`.\nfunc GetProcMounts(pid int) ([]*MountInfo, error) {\n\tdata, err := util.ReadFileNoStat(fmt.Sprintf(\"/proc/%d/mountinfo\", pid))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseMountInfo(data)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/mountstats.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\n// While implementing parsing of /proc/[pid]/mountstats, this blog was used\n// heavily as a reference:\n//   https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex\n//\n// Special thanks to Chris Siebenmann for all of his posts explaining the\n// various statistics available for NFS.\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Constants shared between multiple functions.\nconst (\n\tdeviceEntryLen = 8\n\n\tfieldBytesLen  = 8\n\tfieldEventsLen = 27\n\n\tstatVersion10 = \"1.0\"\n\tstatVersion11 = \"1.1\"\n\n\tfieldTransport10TCPLen = 10\n\tfieldTransport10UDPLen = 7\n\n\tfieldTransport11TCPLen = 13\n\tfieldTransport11UDPLen = 10\n)\n\n// A Mount is a device mount parsed from /proc/[pid]/mountstats.\ntype Mount struct {\n\t// Name of the device.\n\tDevice string\n\t// The mount point of the device.\n\tMount string\n\t// The filesystem type used by the device.\n\tType string\n\t// If available additional statistics related to this Mount.\n\t// Use a type assertion to determine if additional statistics are available.\n\tStats MountStats\n}\n\n// A MountStats is a type which contains detailed statistics for a specific\n// type of Mount.\ntype MountStats interface {\n\tmountStats()\n}\n\n// A MountStatsNFS is a MountStats implementation for NFSv3 and v4 mounts.\ntype MountStatsNFS struct {\n\t// The version of statistics provided.\n\tStatVersion string\n\t// The mount options of the NFS mount.\n\tOpts map[string]string\n\t// The age of the NFS mount.\n\tAge time.Duration\n\t// Statistics related to byte counters for various operations.\n\tBytes NFSBytesStats\n\t// Statistics related to various NFS event occurrences.\n\tEvents NFSEventsStats\n\t// Statistics broken down by filesystem operation.\n\tOperations []NFSOperationStats\n\t// Statistics about the NFS RPC transport.\n\tTransport NFSTransportStats\n}\n\n// mountStats implements MountStats.\nfunc (m MountStatsNFS) mountStats() {}\n\n// A NFSBytesStats contains statistics about the number of bytes read and written\n// by an NFS client to and from an NFS server.\ntype NFSBytesStats struct {\n\t// Number of bytes read using the read() syscall.\n\tRead uint64\n\t// Number of bytes written using the write() syscall.\n\tWrite uint64\n\t// Number of bytes read using the read() syscall in O_DIRECT mode.\n\tDirectRead uint64\n\t// Number of bytes written using the write() syscall in O_DIRECT mode.\n\tDirectWrite uint64\n\t// Number of bytes read from the NFS server, in total.\n\tReadTotal uint64\n\t// Number of bytes written to the NFS server, in total.\n\tWriteTotal uint64\n\t// Number of pages read directly via mmap()'d files.\n\tReadPages uint64\n\t// Number of pages written directly via mmap()'d files.\n\tWritePages uint64\n}\n\n// A NFSEventsStats contains statistics about NFS event occurrences.\ntype NFSEventsStats struct {\n\t// Number of times cached inode attributes are re-validated from the server.\n\tInodeRevalidate uint64\n\t// Number of times cached dentry nodes are re-validated from the server.\n\tDnodeRevalidate uint64\n\t// Number of times an inode cache is cleared.\n\tDataInvalidate uint64\n\t// Number of times cached inode attributes are invalidated.\n\tAttributeInvalidate uint64\n\t// Number of times files or directories have been open()'d.\n\tVFSOpen uint64\n\t// Number of times a directory lookup has occurred.\n\tVFSLookup uint64\n\t// Number of times permissions have been checked.\n\tVFSAccess uint64\n\t// Number of updates (and potential writes) to pages.\n\tVFSUpdatePage uint64\n\t// Number of pages read directly via mmap()'d files.\n\tVFSReadPage uint64\n\t// Number of times a group of pages have been read.\n\tVFSReadPages uint64\n\t// Number of pages written directly via mmap()'d files.\n\tVFSWritePage uint64\n\t// Number of times a group of pages have been written.\n\tVFSWritePages uint64\n\t// Number of times directory entries have been read with getdents().\n\tVFSGetdents uint64\n\t// Number of times attributes have been set on inodes.\n\tVFSSetattr uint64\n\t// Number of pending writes that have been forcefully flushed to the server.\n\tVFSFlush uint64\n\t// Number of times fsync() has been called on directories and files.\n\tVFSFsync uint64\n\t// Number of times locking has been attempted on a file.\n\tVFSLock uint64\n\t// Number of times files have been closed and released.\n\tVFSFileRelease uint64\n\t// Unknown.  Possibly unused.\n\tCongestionWait uint64\n\t// Number of times files have been truncated.\n\tTruncation uint64\n\t// Number of times a file has been grown due to writes beyond its existing end.\n\tWriteExtension uint64\n\t// Number of times a file was removed while still open by another process.\n\tSillyRename uint64\n\t// Number of times the NFS server gave less data than expected while reading.\n\tShortRead uint64\n\t// Number of times the NFS server wrote less data than expected while writing.\n\tShortWrite uint64\n\t// Number of times the NFS server indicated EJUKEBOX; retrieving data from\n\t// offline storage.\n\tJukeboxDelay uint64\n\t// Number of NFS v4.1+ pNFS reads.\n\tPNFSRead uint64\n\t// Number of NFS v4.1+ pNFS writes.\n\tPNFSWrite uint64\n}\n\n// A NFSOperationStats contains statistics for a single operation.\ntype NFSOperationStats struct {\n\t// The name of the operation.\n\tOperation string\n\t// Number of requests performed for this operation.\n\tRequests uint64\n\t// Number of times an actual RPC request has been transmitted for this operation.\n\tTransmissions uint64\n\t// Number of times a request has had a major timeout.\n\tMajorTimeouts uint64\n\t// Number of bytes sent for this operation, including RPC headers and payload.\n\tBytesSent uint64\n\t// Number of bytes received for this operation, including RPC headers and payload.\n\tBytesReceived uint64\n\t// Duration all requests spent queued for transmission before they were sent.\n\tCumulativeQueueMilliseconds uint64\n\t// Duration it took to get a reply back after the request was transmitted.\n\tCumulativeTotalResponseMilliseconds uint64\n\t// Duration from when a request was enqueued to when it was completely handled.\n\tCumulativeTotalRequestMilliseconds uint64\n\t// The average time from the point the client sends RPC requests until it receives the response.\n\tAverageRTTMilliseconds float64\n\t// The count of operations that complete with tk_status < 0.  These statuses usually indicate error conditions.\n\tErrors uint64\n}\n\n// A NFSTransportStats contains statistics for the NFS mount RPC requests and\n// responses.\ntype NFSTransportStats struct {\n\t// The transport protocol used for the NFS mount.\n\tProtocol string\n\t// The local port used for the NFS mount.\n\tPort uint64\n\t// Number of times the client has had to establish a connection from scratch\n\t// to the NFS server.\n\tBind uint64\n\t// Number of times the client has made a TCP connection to the NFS server.\n\tConnect uint64\n\t// Duration (in jiffies, a kernel internal unit of time) the NFS mount has\n\t// spent waiting for connections to the server to be established.\n\tConnectIdleTime uint64\n\t// Duration since the NFS mount last saw any RPC traffic.\n\tIdleTimeSeconds uint64\n\t// Number of RPC requests for this mount sent to the NFS server.\n\tSends uint64\n\t// Number of RPC responses for this mount received from the NFS server.\n\tReceives uint64\n\t// Number of times the NFS server sent a response with a transaction ID\n\t// unknown to this client.\n\tBadTransactionIDs uint64\n\t// A running counter, incremented on each request as the current difference\n\t// ebetween sends and receives.\n\tCumulativeActiveRequests uint64\n\t// A running counter, incremented on each request by the current backlog\n\t// queue size.\n\tCumulativeBacklog uint64\n\n\t// Stats below only available with stat version 1.1.\n\n\t// Maximum number of simultaneously active RPC requests ever used.\n\tMaximumRPCSlotsUsed uint64\n\t// A running counter, incremented on each request as the current size of the\n\t// sending queue.\n\tCumulativeSendingQueue uint64\n\t// A running counter, incremented on each request as the current size of the\n\t// pending queue.\n\tCumulativePendingQueue uint64\n}\n\n// parseMountStats parses a /proc/[pid]/mountstats file and returns a slice\n// of Mount structures containing detailed information about each mount.\n// If available, statistics for each mount are parsed as well.\nfunc parseMountStats(r io.Reader) ([]*Mount, error) {\n\tconst (\n\t\tdevice            = \"device\"\n\t\tstatVersionPrefix = \"statvers=\"\n\n\t\tnfs3Type = \"nfs\"\n\t\tnfs4Type = \"nfs4\"\n\t)\n\n\tvar mounts []*Mount\n\n\ts := bufio.NewScanner(r)\n\tfor s.Scan() {\n\t\t// Only look for device entries in this function\n\t\tss := strings.Fields(string(s.Bytes()))\n\t\tif len(ss) == 0 || ss[0] != device {\n\t\t\tcontinue\n\t\t}\n\n\t\tm, err := parseMount(ss)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Does this mount also possess statistics information?\n\t\tif len(ss) > deviceEntryLen {\n\t\t\t// Only NFSv3 and v4 are supported for parsing statistics\n\t\t\tif m.Type != nfs3Type && m.Type != nfs4Type {\n\t\t\t\treturn nil, fmt.Errorf(\"cannot parse MountStats for fstype %q\", m.Type)\n\t\t\t}\n\n\t\t\tstatVersion := strings.TrimPrefix(ss[8], statVersionPrefix)\n\n\t\t\tstats, err := parseMountStatsNFS(s, statVersion)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tm.Stats = stats\n\t\t}\n\n\t\tmounts = append(mounts, m)\n\t}\n\n\treturn mounts, s.Err()\n}\n\n// parseMount parses an entry in /proc/[pid]/mountstats in the format:\n//\n//\tdevice [device] mounted on [mount] with fstype [type]\nfunc parseMount(ss []string) (*Mount, error) {\n\tif len(ss) < deviceEntryLen {\n\t\treturn nil, fmt.Errorf(\"invalid device entry: %v\", ss)\n\t}\n\n\t// Check for specific words appearing at specific indices to ensure\n\t// the format is consistent with what we expect\n\tformat := []struct {\n\t\ti int\n\t\ts string\n\t}{\n\t\t{i: 0, s: \"device\"},\n\t\t{i: 2, s: \"mounted\"},\n\t\t{i: 3, s: \"on\"},\n\t\t{i: 5, s: \"with\"},\n\t\t{i: 6, s: \"fstype\"},\n\t}\n\n\tfor _, f := range format {\n\t\tif ss[f.i] != f.s {\n\t\t\treturn nil, fmt.Errorf(\"invalid device entry: %v\", ss)\n\t\t}\n\t}\n\n\treturn &Mount{\n\t\tDevice: ss[1],\n\t\tMount:  ss[4],\n\t\tType:   ss[7],\n\t}, nil\n}\n\n// parseMountStatsNFS parses a MountStatsNFS by scanning additional information\n// related to NFS statistics.\nfunc parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, error) {\n\t// Field indicators for parsing specific types of data\n\tconst (\n\t\tfieldOpts       = \"opts:\"\n\t\tfieldAge        = \"age:\"\n\t\tfieldBytes      = \"bytes:\"\n\t\tfieldEvents     = \"events:\"\n\t\tfieldPerOpStats = \"per-op\"\n\t\tfieldTransport  = \"xprt:\"\n\t)\n\n\tstats := &MountStatsNFS{\n\t\tStatVersion: statVersion,\n\t}\n\n\tfor s.Scan() {\n\t\tss := strings.Fields(string(s.Bytes()))\n\t\tif len(ss) == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch ss[0] {\n\t\tcase fieldOpts:\n\t\t\tif len(ss) < 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"not enough information for NFS stats: %v\", ss)\n\t\t\t}\n\t\t\tif stats.Opts == nil {\n\t\t\t\tstats.Opts = map[string]string{}\n\t\t\t}\n\t\t\tfor _, opt := range strings.Split(ss[1], \",\") {\n\t\t\t\tsplit := strings.Split(opt, \"=\")\n\t\t\t\tif len(split) == 2 {\n\t\t\t\t\tstats.Opts[split[0]] = split[1]\n\t\t\t\t} else {\n\t\t\t\t\tstats.Opts[opt] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\tcase fieldAge:\n\t\t\tif len(ss) < 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"not enough information for NFS stats: %v\", ss)\n\t\t\t}\n\t\t\t// Age integer is in seconds\n\t\t\td, err := time.ParseDuration(ss[1] + \"s\")\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tstats.Age = d\n\t\tcase fieldBytes:\n\t\t\tif len(ss) < 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"not enough information for NFS stats: %v\", ss)\n\t\t\t}\n\t\t\tbstats, err := parseNFSBytesStats(ss[1:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tstats.Bytes = *bstats\n\t\tcase fieldEvents:\n\t\t\tif len(ss) < 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"not enough information for NFS stats: %v\", ss)\n\t\t\t}\n\t\t\testats, err := parseNFSEventsStats(ss[1:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tstats.Events = *estats\n\t\tcase fieldTransport:\n\t\t\tif len(ss) < 3 {\n\t\t\t\treturn nil, fmt.Errorf(\"not enough information for NFS transport stats: %v\", ss)\n\t\t\t}\n\n\t\t\ttstats, err := parseNFSTransportStats(ss[1:], statVersion)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tstats.Transport = *tstats\n\t\t}\n\n\t\t// When encountering \"per-operation statistics\", we must break this\n\t\t// loop and parse them separately to ensure we can terminate parsing\n\t\t// before reaching another device entry; hence why this 'if' statement\n\t\t// is not just another switch case\n\t\tif ss[0] == fieldPerOpStats {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif err := s.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// NFS per-operation stats appear last before the next device entry\n\tperOpStats, err := parseNFSOperationStats(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstats.Operations = perOpStats\n\n\treturn stats, nil\n}\n\n// parseNFSBytesStats parses a NFSBytesStats line using an input set of\n// integer fields.\nfunc parseNFSBytesStats(ss []string) (*NFSBytesStats, error) {\n\tif len(ss) != fieldBytesLen {\n\t\treturn nil, fmt.Errorf(\"invalid NFS bytes stats: %v\", ss)\n\t}\n\n\tns := make([]uint64, 0, fieldBytesLen)\n\tfor _, s := range ss {\n\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tns = append(ns, n)\n\t}\n\n\treturn &NFSBytesStats{\n\t\tRead:        ns[0],\n\t\tWrite:       ns[1],\n\t\tDirectRead:  ns[2],\n\t\tDirectWrite: ns[3],\n\t\tReadTotal:   ns[4],\n\t\tWriteTotal:  ns[5],\n\t\tReadPages:   ns[6],\n\t\tWritePages:  ns[7],\n\t}, nil\n}\n\n// parseNFSEventsStats parses a NFSEventsStats line using an input set of\n// integer fields.\nfunc parseNFSEventsStats(ss []string) (*NFSEventsStats, error) {\n\tif len(ss) != fieldEventsLen {\n\t\treturn nil, fmt.Errorf(\"invalid NFS events stats: %v\", ss)\n\t}\n\n\tns := make([]uint64, 0, fieldEventsLen)\n\tfor _, s := range ss {\n\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tns = append(ns, n)\n\t}\n\n\treturn &NFSEventsStats{\n\t\tInodeRevalidate:     ns[0],\n\t\tDnodeRevalidate:     ns[1],\n\t\tDataInvalidate:      ns[2],\n\t\tAttributeInvalidate: ns[3],\n\t\tVFSOpen:             ns[4],\n\t\tVFSLookup:           ns[5],\n\t\tVFSAccess:           ns[6],\n\t\tVFSUpdatePage:       ns[7],\n\t\tVFSReadPage:         ns[8],\n\t\tVFSReadPages:        ns[9],\n\t\tVFSWritePage:        ns[10],\n\t\tVFSWritePages:       ns[11],\n\t\tVFSGetdents:         ns[12],\n\t\tVFSSetattr:          ns[13],\n\t\tVFSFlush:            ns[14],\n\t\tVFSFsync:            ns[15],\n\t\tVFSLock:             ns[16],\n\t\tVFSFileRelease:      ns[17],\n\t\tCongestionWait:      ns[18],\n\t\tTruncation:          ns[19],\n\t\tWriteExtension:      ns[20],\n\t\tSillyRename:         ns[21],\n\t\tShortRead:           ns[22],\n\t\tShortWrite:          ns[23],\n\t\tJukeboxDelay:        ns[24],\n\t\tPNFSRead:            ns[25],\n\t\tPNFSWrite:           ns[26],\n\t}, nil\n}\n\n// parseNFSOperationStats parses a slice of NFSOperationStats by scanning\n// additional information about per-operation statistics until an empty\n// line is reached.\nfunc parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {\n\tconst (\n\t\t// Minimum number of expected fields in each per-operation statistics set\n\t\tminFields = 9\n\t)\n\n\tvar ops []NFSOperationStats\n\n\tfor s.Scan() {\n\t\tss := strings.Fields(string(s.Bytes()))\n\t\tif len(ss) == 0 {\n\t\t\t// Must break when reading a blank line after per-operation stats to\n\t\t\t// enable top-level function to parse the next device entry\n\t\t\tbreak\n\t\t}\n\n\t\tif len(ss) < minFields {\n\t\t\treturn nil, fmt.Errorf(\"invalid NFS per-operations stats: %v\", ss)\n\t\t}\n\n\t\t// Skip string operation name for integers\n\t\tns := make([]uint64, 0, minFields-1)\n\t\tfor _, st := range ss[1:] {\n\t\t\tn, err := strconv.ParseUint(st, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tns = append(ns, n)\n\t\t}\n\t\topStats := NFSOperationStats{\n\t\t\tOperation:                           strings.TrimSuffix(ss[0], \":\"),\n\t\t\tRequests:                            ns[0],\n\t\t\tTransmissions:                       ns[1],\n\t\t\tMajorTimeouts:                       ns[2],\n\t\t\tBytesSent:                           ns[3],\n\t\t\tBytesReceived:                       ns[4],\n\t\t\tCumulativeQueueMilliseconds:         ns[5],\n\t\t\tCumulativeTotalResponseMilliseconds: ns[6],\n\t\t\tCumulativeTotalRequestMilliseconds:  ns[7],\n\t\t}\n\t\tif ns[0] != 0 {\n\t\t\topStats.AverageRTTMilliseconds = float64(ns[6]) / float64(ns[0])\n\t\t}\n\n\t\tif len(ns) > 8 {\n\t\t\topStats.Errors = ns[8]\n\t\t}\n\n\t\tops = append(ops, opStats)\n\t}\n\n\treturn ops, s.Err()\n}\n\n// parseNFSTransportStats parses a NFSTransportStats line using an input set of\n// integer fields matched to a specific stats version.\nfunc parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats, error) {\n\t// Extract the protocol field. It is the only string value in the line\n\tprotocol := ss[0]\n\tss = ss[1:]\n\n\tswitch statVersion {\n\tcase statVersion10:\n\t\tvar expectedLength int\n\t\tif protocol == \"tcp\" {\n\t\t\texpectedLength = fieldTransport10TCPLen\n\t\t} else if protocol == \"udp\" {\n\t\t\texpectedLength = fieldTransport10UDPLen\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid NFS protocol \\\"%s\\\" in stats 1.0 statement: %v\", protocol, ss)\n\t\t}\n\t\tif len(ss) != expectedLength {\n\t\t\treturn nil, fmt.Errorf(\"invalid NFS transport stats 1.0 statement: %v\", ss)\n\t\t}\n\tcase statVersion11:\n\t\tvar expectedLength int\n\t\tif protocol == \"tcp\" {\n\t\t\texpectedLength = fieldTransport11TCPLen\n\t\t} else if protocol == \"udp\" {\n\t\t\texpectedLength = fieldTransport11UDPLen\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid NFS protocol \\\"%s\\\" in stats 1.1 statement: %v\", protocol, ss)\n\t\t}\n\t\tif len(ss) != expectedLength {\n\t\t\treturn nil, fmt.Errorf(\"invalid NFS transport stats 1.1 statement: %v\", ss)\n\t\t}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unrecognized NFS transport stats version: %q\", statVersion)\n\t}\n\n\t// Allocate enough for v1.1 stats since zero value for v1.1 stats will be okay\n\t// in a v1.0 response. Since the stat length is bigger for TCP stats, we use\n\t// the TCP length here.\n\t//\n\t// Note: slice length must be set to length of v1.1 stats to avoid a panic when\n\t// only v1.0 stats are present.\n\t// See: https://github.com/prometheus/node_exporter/issues/571.\n\tns := make([]uint64, fieldTransport11TCPLen)\n\tfor i, s := range ss {\n\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tns[i] = n\n\t}\n\n\t// The fields differ depending on the transport protocol (TCP or UDP)\n\t// From https://utcc.utoronto.ca/%7Ecks/space/blog/linux/NFSMountstatsXprt\n\t//\n\t// For the udp RPC transport there is no connection count, connect idle time,\n\t// or idle time (fields #3, #4, and #5); all other fields are the same. So\n\t// we set them to 0 here.\n\tif protocol == \"udp\" {\n\t\tns = append(ns[:2], append(make([]uint64, 3), ns[2:]...)...)\n\t}\n\n\treturn &NFSTransportStats{\n\t\tProtocol:                 protocol,\n\t\tPort:                     ns[0],\n\t\tBind:                     ns[1],\n\t\tConnect:                  ns[2],\n\t\tConnectIdleTime:          ns[3],\n\t\tIdleTimeSeconds:          ns[4],\n\t\tSends:                    ns[5],\n\t\tReceives:                 ns[6],\n\t\tBadTransactionIDs:        ns[7],\n\t\tCumulativeActiveRequests: ns[8],\n\t\tCumulativeBacklog:        ns[9],\n\t\tMaximumRPCSlotsUsed:      ns[10],\n\t\tCumulativeSendingQueue:   ns[11],\n\t\tCumulativePendingQueue:   ns[12],\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_conntrackstat.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// A ConntrackStatEntry represents one line from net/stat/nf_conntrack\n// and contains netfilter conntrack statistics at one CPU core.\ntype ConntrackStatEntry struct {\n\tEntries       uint64\n\tSearched      uint64\n\tFound         uint64\n\tNew           uint64\n\tInvalid       uint64\n\tIgnore        uint64\n\tDelete        uint64\n\tDeleteList    uint64\n\tInsert        uint64\n\tInsertFailed  uint64\n\tDrop          uint64\n\tEarlyDrop     uint64\n\tSearchRestart uint64\n}\n\n// ConntrackStat retrieves netfilter's conntrack statistics, split by CPU cores.\nfunc (fs FS) ConntrackStat() ([]ConntrackStatEntry, error) {\n\treturn readConntrackStat(fs.proc.Path(\"net\", \"stat\", \"nf_conntrack\"))\n}\n\n// Parses a slice of ConntrackStatEntries from the given filepath.\nfunc readConntrackStat(path string) ([]ConntrackStatEntry, error) {\n\t// This file is small and can be read with one syscall.\n\tb, err := util.ReadFileNoStat(path)\n\tif err != nil {\n\t\t// Do not wrap this error so the caller can detect os.IsNotExist and\n\t\t// similar conditions.\n\t\treturn nil, err\n\t}\n\n\tstat, err := parseConntrackStat(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read conntrack stats from %q: %w\", path, err)\n\t}\n\n\treturn stat, nil\n}\n\n// Reads the contents of a conntrack statistics file and parses a slice of ConntrackStatEntries.\nfunc parseConntrackStat(r io.Reader) ([]ConntrackStatEntry, error) {\n\tvar entries []ConntrackStatEntry\n\n\tscanner := bufio.NewScanner(r)\n\tscanner.Scan()\n\tfor scanner.Scan() {\n\t\tfields := strings.Fields(scanner.Text())\n\t\tconntrackEntry, err := parseConntrackStatEntry(fields)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tentries = append(entries, *conntrackEntry)\n\t}\n\n\treturn entries, nil\n}\n\n// Parses a ConntrackStatEntry from given array of fields.\nfunc parseConntrackStatEntry(fields []string) (*ConntrackStatEntry, error) {\n\tentries, err := util.ParseHexUint64s(fields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid conntrackstat entry, couldn't parse fields: %s\", err)\n\t}\n\tnumEntries := len(entries)\n\tif numEntries < 16 || numEntries > 17 {\n\t\treturn nil, fmt.Errorf(\"invalid conntrackstat entry, invalid number of fields: %d\", numEntries)\n\t}\n\n\tstats := &ConntrackStatEntry{\n\t\tEntries:      *entries[0],\n\t\tSearched:     *entries[1],\n\t\tFound:        *entries[2],\n\t\tNew:          *entries[3],\n\t\tInvalid:      *entries[4],\n\t\tIgnore:       *entries[5],\n\t\tDelete:       *entries[6],\n\t\tDeleteList:   *entries[7],\n\t\tInsert:       *entries[8],\n\t\tInsertFailed: *entries[9],\n\t\tDrop:         *entries[10],\n\t\tEarlyDrop:    *entries[11],\n\t}\n\n\t// Ignore missing search_restart on Linux < 2.6.35.\n\tif numEntries == 17 {\n\t\tstats.SearchRestart = *entries[16]\n\t}\n\n\treturn stats, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_dev.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"os\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// NetDevLine is single line parsed from /proc/net/dev or /proc/[pid]/net/dev.\ntype NetDevLine struct {\n\tName         string `json:\"name\"`          // The name of the interface.\n\tRxBytes      uint64 `json:\"rx_bytes\"`      // Cumulative count of bytes received.\n\tRxPackets    uint64 `json:\"rx_packets\"`    // Cumulative count of packets received.\n\tRxErrors     uint64 `json:\"rx_errors\"`     // Cumulative count of receive errors encountered.\n\tRxDropped    uint64 `json:\"rx_dropped\"`    // Cumulative count of packets dropped while receiving.\n\tRxFIFO       uint64 `json:\"rx_fifo\"`       // Cumulative count of FIFO buffer errors.\n\tRxFrame      uint64 `json:\"rx_frame\"`      // Cumulative count of packet framing errors.\n\tRxCompressed uint64 `json:\"rx_compressed\"` // Cumulative count of compressed packets received by the device driver.\n\tRxMulticast  uint64 `json:\"rx_multicast\"`  // Cumulative count of multicast frames received by the device driver.\n\tTxBytes      uint64 `json:\"tx_bytes\"`      // Cumulative count of bytes transmitted.\n\tTxPackets    uint64 `json:\"tx_packets\"`    // Cumulative count of packets transmitted.\n\tTxErrors     uint64 `json:\"tx_errors\"`     // Cumulative count of transmit errors encountered.\n\tTxDropped    uint64 `json:\"tx_dropped\"`    // Cumulative count of packets dropped while transmitting.\n\tTxFIFO       uint64 `json:\"tx_fifo\"`       // Cumulative count of FIFO buffer errors.\n\tTxCollisions uint64 `json:\"tx_collisions\"` // Cumulative count of collisions detected on the interface.\n\tTxCarrier    uint64 `json:\"tx_carrier\"`    // Cumulative count of carrier losses detected by the device driver.\n\tTxCompressed uint64 `json:\"tx_compressed\"` // Cumulative count of compressed packets transmitted by the device driver.\n}\n\n// NetDev is parsed from /proc/net/dev or /proc/[pid]/net/dev. The map keys\n// are interface names.\ntype NetDev map[string]NetDevLine\n\n// NetDev returns kernel/system statistics read from /proc/net/dev.\nfunc (fs FS) NetDev() (NetDev, error) {\n\treturn newNetDev(fs.proc.Path(\"net/dev\"))\n}\n\n// NetDev returns kernel/system statistics read from /proc/[pid]/net/dev.\nfunc (p Proc) NetDev() (NetDev, error) {\n\treturn newNetDev(p.path(\"net/dev\"))\n}\n\n// newNetDev creates a new NetDev from the contents of the given file.\nfunc newNetDev(file string) (NetDev, error) {\n\tf, err := os.Open(file)\n\tif err != nil {\n\t\treturn NetDev{}, err\n\t}\n\tdefer f.Close()\n\n\tnetDev := NetDev{}\n\ts := bufio.NewScanner(f)\n\tfor n := 0; s.Scan(); n++ {\n\t\t// Skip the 2 header lines.\n\t\tif n < 2 {\n\t\t\tcontinue\n\t\t}\n\n\t\tline, err := netDev.parseLine(s.Text())\n\t\tif err != nil {\n\t\t\treturn netDev, err\n\t\t}\n\n\t\tnetDev[line.Name] = *line\n\t}\n\n\treturn netDev, s.Err()\n}\n\n// parseLine parses a single line from the /proc/net/dev file. Header lines\n// must be filtered prior to calling this method.\nfunc (netDev NetDev) parseLine(rawLine string) (*NetDevLine, error) {\n\tidx := strings.LastIndex(rawLine, \":\")\n\tif idx == -1 {\n\t\treturn nil, errors.New(\"invalid net/dev line, missing colon\")\n\t}\n\tfields := strings.Fields(strings.TrimSpace(rawLine[idx+1:]))\n\n\tvar err error\n\tline := &NetDevLine{}\n\n\t// Interface Name\n\tline.Name = strings.TrimSpace(rawLine[:idx])\n\tif line.Name == \"\" {\n\t\treturn nil, errors.New(\"invalid net/dev line, empty interface name\")\n\t}\n\n\t// RX\n\tline.RxBytes, err = strconv.ParseUint(fields[0], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxPackets, err = strconv.ParseUint(fields[1], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxErrors, err = strconv.ParseUint(fields[2], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxDropped, err = strconv.ParseUint(fields[3], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxFIFO, err = strconv.ParseUint(fields[4], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxFrame, err = strconv.ParseUint(fields[5], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxCompressed, err = strconv.ParseUint(fields[6], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.RxMulticast, err = strconv.ParseUint(fields[7], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// TX\n\tline.TxBytes, err = strconv.ParseUint(fields[8], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxPackets, err = strconv.ParseUint(fields[9], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxErrors, err = strconv.ParseUint(fields[10], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxDropped, err = strconv.ParseUint(fields[11], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxFIFO, err = strconv.ParseUint(fields[12], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxCollisions, err = strconv.ParseUint(fields[13], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxCarrier, err = strconv.ParseUint(fields[14], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.TxCompressed, err = strconv.ParseUint(fields[15], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn line, nil\n}\n\n// Total aggregates the values across interfaces and returns a new NetDevLine.\n// The Name field will be a sorted comma separated list of interface names.\nfunc (netDev NetDev) Total() NetDevLine {\n\ttotal := NetDevLine{}\n\n\tnames := make([]string, 0, len(netDev))\n\tfor _, ifc := range netDev {\n\t\tnames = append(names, ifc.Name)\n\t\ttotal.RxBytes += ifc.RxBytes\n\t\ttotal.RxPackets += ifc.RxPackets\n\t\ttotal.RxErrors += ifc.RxErrors\n\t\ttotal.RxDropped += ifc.RxDropped\n\t\ttotal.RxFIFO += ifc.RxFIFO\n\t\ttotal.RxFrame += ifc.RxFrame\n\t\ttotal.RxCompressed += ifc.RxCompressed\n\t\ttotal.RxMulticast += ifc.RxMulticast\n\t\ttotal.TxBytes += ifc.TxBytes\n\t\ttotal.TxPackets += ifc.TxPackets\n\t\ttotal.TxErrors += ifc.TxErrors\n\t\ttotal.TxDropped += ifc.TxDropped\n\t\ttotal.TxFIFO += ifc.TxFIFO\n\t\ttotal.TxCollisions += ifc.TxCollisions\n\t\ttotal.TxCarrier += ifc.TxCarrier\n\t\ttotal.TxCompressed += ifc.TxCompressed\n\t}\n\tsort.Strings(names)\n\ttotal.Name = strings.Join(names, \", \")\n\n\treturn total\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_ip_socket.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\t// readLimit is used by io.LimitReader while reading the content of the\n\t// /proc/net/udp{,6} files. The number of lines inside such a file is dynamic\n\t// as each line represents a single used socket.\n\t// In theory, the number of available sockets is 65535 (2^16 - 1) per IP.\n\t// With e.g. 150 Byte per line and the maximum number of 65535,\n\t// the reader needs to handle 150 Byte * 65535 =~ 10 MB for a single IP.\n\treadLimit = 4294967296 // Byte -> 4 GiB\n)\n\n// This contains generic data structures for both udp and tcp sockets.\ntype (\n\t// NetIPSocket represents the contents of /proc/net/{t,u}dp{,6} file without the header.\n\tNetIPSocket []*netIPSocketLine\n\n\t// NetIPSocketSummary provides already computed values like the total queue lengths or\n\t// the total number of used sockets. In contrast to NetIPSocket it does not collect\n\t// the parsed lines into a slice.\n\tNetIPSocketSummary struct {\n\t\t// TxQueueLength shows the total queue length of all parsed tx_queue lengths.\n\t\tTxQueueLength uint64\n\t\t// RxQueueLength shows the total queue length of all parsed rx_queue lengths.\n\t\tRxQueueLength uint64\n\t\t// UsedSockets shows the total number of parsed lines representing the\n\t\t// number of used sockets.\n\t\tUsedSockets uint64\n\t}\n\n\t// netIPSocketLine represents the fields parsed from a single line\n\t// in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped.\n\t// For the proc file format details, see https://linux.die.net/man/5/proc.\n\tnetIPSocketLine struct {\n\t\tSl        uint64\n\t\tLocalAddr net.IP\n\t\tLocalPort uint64\n\t\tRemAddr   net.IP\n\t\tRemPort   uint64\n\t\tSt        uint64\n\t\tTxQueue   uint64\n\t\tRxQueue   uint64\n\t\tUID       uint64\n\t\tInode     uint64\n\t}\n)\n\nfunc newNetIPSocket(file string) (NetIPSocket, error) {\n\tf, err := os.Open(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\n\tvar netIPSocket NetIPSocket\n\n\tlr := io.LimitReader(f, readLimit)\n\ts := bufio.NewScanner(lr)\n\ts.Scan() // skip first line with headers\n\tfor s.Scan() {\n\t\tfields := strings.Fields(s.Text())\n\t\tline, err := parseNetIPSocketLine(fields)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnetIPSocket = append(netIPSocket, line)\n\t}\n\tif err := s.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn netIPSocket, nil\n}\n\n// newNetIPSocketSummary creates a new NetIPSocket{,6} from the contents of the given file.\nfunc newNetIPSocketSummary(file string) (*NetIPSocketSummary, error) {\n\tf, err := os.Open(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\n\tvar netIPSocketSummary NetIPSocketSummary\n\n\tlr := io.LimitReader(f, readLimit)\n\ts := bufio.NewScanner(lr)\n\ts.Scan() // skip first line with headers\n\tfor s.Scan() {\n\t\tfields := strings.Fields(s.Text())\n\t\tline, err := parseNetIPSocketLine(fields)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnetIPSocketSummary.TxQueueLength += line.TxQueue\n\t\tnetIPSocketSummary.RxQueueLength += line.RxQueue\n\t\tnetIPSocketSummary.UsedSockets++\n\t}\n\tif err := s.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &netIPSocketSummary, nil\n}\n\n// the /proc/net/{t,u}dp{,6} files are network byte order for ipv4 and for ipv6 the address is four words consisting of four bytes each. In each of those four words the four bytes are written in reverse order.\n\nfunc parseIP(hexIP string) (net.IP, error) {\n\tvar byteIP []byte\n\tbyteIP, err := hex.DecodeString(hexIP)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse address field in socket line %q\", hexIP)\n\t}\n\tswitch len(byteIP) {\n\tcase 4:\n\t\treturn net.IP{byteIP[3], byteIP[2], byteIP[1], byteIP[0]}, nil\n\tcase 16:\n\t\ti := net.IP{\n\t\t\tbyteIP[3], byteIP[2], byteIP[1], byteIP[0],\n\t\t\tbyteIP[7], byteIP[6], byteIP[5], byteIP[4],\n\t\t\tbyteIP[11], byteIP[10], byteIP[9], byteIP[8],\n\t\t\tbyteIP[15], byteIP[14], byteIP[13], byteIP[12],\n\t\t}\n\t\treturn i, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Unable to parse IP %s\", hexIP)\n\t}\n}\n\n// parseNetIPSocketLine parses a single line, represented by a list of fields.\nfunc parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) {\n\tline := &netIPSocketLine{}\n\tif len(fields) < 10 {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"cannot parse net socket line as it has less then 10 columns %q\",\n\t\t\tstrings.Join(fields, \" \"),\n\t\t)\n\t}\n\tvar err error // parse error\n\n\t// sl\n\ts := strings.Split(fields[0], \":\")\n\tif len(s) != 2 {\n\t\treturn nil, fmt.Errorf(\"cannot parse sl field in socket line %q\", fields[0])\n\t}\n\n\tif line.Sl, err = strconv.ParseUint(s[0], 0, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse sl value in socket line: %w\", err)\n\t}\n\t// local_address\n\tl := strings.Split(fields[1], \":\")\n\tif len(l) != 2 {\n\t\treturn nil, fmt.Errorf(\"cannot parse local_address field in socket line %q\", fields[1])\n\t}\n\tif line.LocalAddr, err = parseIP(l[0]); err != nil {\n\t\treturn nil, err\n\t}\n\tif line.LocalPort, err = strconv.ParseUint(l[1], 16, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse local_address port value in socket line: %w\", err)\n\t}\n\n\t// remote_address\n\tr := strings.Split(fields[2], \":\")\n\tif len(r) != 2 {\n\t\treturn nil, fmt.Errorf(\"cannot parse rem_address field in socket line %q\", fields[1])\n\t}\n\tif line.RemAddr, err = parseIP(r[0]); err != nil {\n\t\treturn nil, err\n\t}\n\tif line.RemPort, err = strconv.ParseUint(r[1], 16, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse rem_address port value in socket line: %w\", err)\n\t}\n\n\t// st\n\tif line.St, err = strconv.ParseUint(fields[3], 16, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse st value in socket line: %w\", err)\n\t}\n\n\t// tx_queue and rx_queue\n\tq := strings.Split(fields[4], \":\")\n\tif len(q) != 2 {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"cannot parse tx/rx queues in socket line as it has a missing colon %q\",\n\t\t\tfields[4],\n\t\t)\n\t}\n\tif line.TxQueue, err = strconv.ParseUint(q[0], 16, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse tx_queue value in socket line: %w\", err)\n\t}\n\tif line.RxQueue, err = strconv.ParseUint(q[1], 16, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse rx_queue value in socket line: %w\", err)\n\t}\n\n\t// uid\n\tif line.UID, err = strconv.ParseUint(fields[7], 0, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse uid value in socket line: %w\", err)\n\t}\n\n\t// inode\n\tif line.Inode, err = strconv.ParseUint(fields[9], 0, 64); err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse inode value in socket line: %w\", err)\n\t}\n\n\treturn line, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_protocols.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// NetProtocolStats stores the contents from /proc/net/protocols.\ntype NetProtocolStats map[string]NetProtocolStatLine\n\n// NetProtocolStatLine contains a single line parsed from /proc/net/protocols. We\n// only care about the first six columns as the rest are not likely to change\n// and only serve to provide a set of capabilities for each protocol.\ntype NetProtocolStatLine struct {\n\tName         string // 0 The name of the protocol\n\tSize         uint64 // 1 The size, in bytes, of a given protocol structure. e.g. sizeof(struct tcp_sock) or sizeof(struct unix_sock)\n\tSockets      int64  // 2 Number of sockets in use by this protocol\n\tMemory       int64  // 3 Number of 4KB pages allocated by all sockets of this protocol\n\tPressure     int    // 4 This is either yes, no, or NI (not implemented). For the sake of simplicity we treat NI as not experiencing memory pressure.\n\tMaxHeader    uint64 // 5 Protocol specific max header size\n\tSlab         bool   // 6 Indicates whether or not memory is allocated from the SLAB\n\tModuleName   string // 7 The name of the module that implemented this protocol or \"kernel\" if not from a module\n\tCapabilities NetProtocolCapabilities\n}\n\n// NetProtocolCapabilities contains a list of capabilities for each protocol.\ntype NetProtocolCapabilities struct {\n\tClose               bool // 8\n\tConnect             bool // 9\n\tDisconnect          bool // 10\n\tAccept              bool // 11\n\tIoCtl               bool // 12\n\tInit                bool // 13\n\tDestroy             bool // 14\n\tShutdown            bool // 15\n\tSetSockOpt          bool // 16\n\tGetSockOpt          bool // 17\n\tSendMsg             bool // 18\n\tRecvMsg             bool // 19\n\tSendPage            bool // 20\n\tBind                bool // 21\n\tBacklogRcv          bool // 22\n\tHash                bool // 23\n\tUnHash              bool // 24\n\tGetPort             bool // 25\n\tEnterMemoryPressure bool // 26\n}\n\n// NetProtocols reads stats from /proc/net/protocols and returns a map of\n// PortocolStatLine entries. As of this writing no official Linux Documentation\n// exists, however the source is fairly self-explanatory and the format seems\n// stable since its introduction in 2.6.12-rc2\n// Linux 2.6.12-rc2 - https://elixir.bootlin.com/linux/v2.6.12-rc2/source/net/core/sock.c#L1452\n// Linux 5.10 - https://elixir.bootlin.com/linux/v5.10.4/source/net/core/sock.c#L3586\nfunc (fs FS) NetProtocols() (NetProtocolStats, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"net/protocols\"))\n\tif err != nil {\n\t\treturn NetProtocolStats{}, err\n\t}\n\treturn parseNetProtocols(bufio.NewScanner(bytes.NewReader(data)))\n}\n\nfunc parseNetProtocols(s *bufio.Scanner) (NetProtocolStats, error) {\n\tnps := NetProtocolStats{}\n\n\t// Skip the header line\n\ts.Scan()\n\n\tfor s.Scan() {\n\t\tline, err := nps.parseLine(s.Text())\n\t\tif err != nil {\n\t\t\treturn NetProtocolStats{}, err\n\t\t}\n\n\t\tnps[line.Name] = *line\n\t}\n\treturn nps, nil\n}\n\nfunc (ps NetProtocolStats) parseLine(rawLine string) (*NetProtocolStatLine, error) {\n\tline := &NetProtocolStatLine{Capabilities: NetProtocolCapabilities{}}\n\tvar err error\n\tconst enabled = \"yes\"\n\tconst disabled = \"no\"\n\n\tfields := strings.Fields(rawLine)\n\tline.Name = fields[0]\n\tline.Size, err = strconv.ParseUint(fields[1], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.Sockets, err = strconv.ParseInt(fields[2], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline.Memory, err = strconv.ParseInt(fields[3], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif fields[4] == enabled {\n\t\tline.Pressure = 1\n\t} else if fields[4] == disabled {\n\t\tline.Pressure = 0\n\t} else {\n\t\tline.Pressure = -1\n\t}\n\tline.MaxHeader, err = strconv.ParseUint(fields[5], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif fields[6] == enabled {\n\t\tline.Slab = true\n\t} else if fields[6] == disabled {\n\t\tline.Slab = false\n\t} else {\n\t\treturn nil, fmt.Errorf(\"unable to parse capability for protocol: %s\", line.Name)\n\t}\n\tline.ModuleName = fields[7]\n\n\terr = line.Capabilities.parseCapabilities(fields[8:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn line, nil\n}\n\nfunc (pc *NetProtocolCapabilities) parseCapabilities(capabilities []string) error {\n\t// The capabilities are all bools so we can loop over to map them\n\tcapabilityFields := [...]*bool{\n\t\t&pc.Close,\n\t\t&pc.Connect,\n\t\t&pc.Disconnect,\n\t\t&pc.Accept,\n\t\t&pc.IoCtl,\n\t\t&pc.Init,\n\t\t&pc.Destroy,\n\t\t&pc.Shutdown,\n\t\t&pc.SetSockOpt,\n\t\t&pc.GetSockOpt,\n\t\t&pc.SendMsg,\n\t\t&pc.RecvMsg,\n\t\t&pc.SendPage,\n\t\t&pc.Bind,\n\t\t&pc.BacklogRcv,\n\t\t&pc.Hash,\n\t\t&pc.UnHash,\n\t\t&pc.GetPort,\n\t\t&pc.EnterMemoryPressure,\n\t}\n\n\tfor i := 0; i < len(capabilities); i++ {\n\t\tif capabilities[i] == \"y\" {\n\t\t\t*capabilityFields[i] = true\n\t\t} else if capabilities[i] == \"n\" {\n\t\t\t*capabilityFields[i] = false\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"unable to parse capability block for protocol: position %d\", i)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_sockstat.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// A NetSockstat contains the output of /proc/net/sockstat{,6} for IPv4 or IPv6,\n// respectively.\ntype NetSockstat struct {\n\t// Used is non-nil for IPv4 sockstat results, but nil for IPv6.\n\tUsed      *int\n\tProtocols []NetSockstatProtocol\n}\n\n// A NetSockstatProtocol contains statistics about a given socket protocol.\n// Pointer fields indicate that the value may or may not be present on any\n// given protocol.\ntype NetSockstatProtocol struct {\n\tProtocol string\n\tInUse    int\n\tOrphan   *int\n\tTW       *int\n\tAlloc    *int\n\tMem      *int\n\tMemory   *int\n}\n\n// NetSockstat retrieves IPv4 socket statistics.\nfunc (fs FS) NetSockstat() (*NetSockstat, error) {\n\treturn readSockstat(fs.proc.Path(\"net\", \"sockstat\"))\n}\n\n// NetSockstat6 retrieves IPv6 socket statistics.\n//\n// If IPv6 is disabled on this kernel, the returned error can be checked with\n// os.IsNotExist.\nfunc (fs FS) NetSockstat6() (*NetSockstat, error) {\n\treturn readSockstat(fs.proc.Path(\"net\", \"sockstat6\"))\n}\n\n// readSockstat opens and parses a NetSockstat from the input file.\nfunc readSockstat(name string) (*NetSockstat, error) {\n\t// This file is small and can be read with one syscall.\n\tb, err := util.ReadFileNoStat(name)\n\tif err != nil {\n\t\t// Do not wrap this error so the caller can detect os.IsNotExist and\n\t\t// similar conditions.\n\t\treturn nil, err\n\t}\n\n\tstat, err := parseSockstat(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read sockstats from %q: %w\", name, err)\n\t}\n\n\treturn stat, nil\n}\n\n// parseSockstat reads the contents of a sockstat file and parses a NetSockstat.\nfunc parseSockstat(r io.Reader) (*NetSockstat, error) {\n\tvar stat NetSockstat\n\ts := bufio.NewScanner(r)\n\tfor s.Scan() {\n\t\t// Expect a minimum of a protocol and one key/value pair.\n\t\tfields := strings.Split(s.Text(), \" \")\n\t\tif len(fields) < 3 {\n\t\t\treturn nil, fmt.Errorf(\"malformed sockstat line: %q\", s.Text())\n\t\t}\n\n\t\t// The remaining fields are key/value pairs.\n\t\tkvs, err := parseSockstatKVs(fields[1:])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error parsing sockstat key/value pairs from %q: %w\", s.Text(), err)\n\t\t}\n\n\t\t// The first field is the protocol. We must trim its colon suffix.\n\t\tproto := strings.TrimSuffix(fields[0], \":\")\n\t\tswitch proto {\n\t\tcase \"sockets\":\n\t\t\t// Special case: IPv4 has a sockets \"used\" key/value pair that we\n\t\t\t// embed at the top level of the structure.\n\t\t\tused := kvs[\"used\"]\n\t\t\tstat.Used = &used\n\t\tdefault:\n\t\t\t// Parse all other lines as individual protocols.\n\t\t\tnsp := parseSockstatProtocol(kvs)\n\t\t\tnsp.Protocol = proto\n\t\t\tstat.Protocols = append(stat.Protocols, nsp)\n\t\t}\n\t}\n\n\tif err := s.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &stat, nil\n}\n\n// parseSockstatKVs parses a string slice into a map of key/value pairs.\nfunc parseSockstatKVs(kvs []string) (map[string]int, error) {\n\tif len(kvs)%2 != 0 {\n\t\treturn nil, errors.New(\"odd number of fields in key/value pairs\")\n\t}\n\n\t// Iterate two values at a time to gather key/value pairs.\n\tout := make(map[string]int, len(kvs)/2)\n\tfor i := 0; i < len(kvs); i += 2 {\n\t\tvp := util.NewValueParser(kvs[i+1])\n\t\tout[kvs[i]] = vp.Int()\n\n\t\tif err := vp.Err(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn out, nil\n}\n\n// parseSockstatProtocol parses a NetSockstatProtocol from the input kvs map.\nfunc parseSockstatProtocol(kvs map[string]int) NetSockstatProtocol {\n\tvar nsp NetSockstatProtocol\n\tfor k, v := range kvs {\n\t\t// Capture the range variable to ensure we get unique pointers for\n\t\t// each of the optional fields.\n\t\tv := v\n\t\tswitch k {\n\t\tcase \"inuse\":\n\t\t\tnsp.InUse = v\n\t\tcase \"orphan\":\n\t\t\tnsp.Orphan = &v\n\t\tcase \"tw\":\n\t\t\tnsp.TW = &v\n\t\tcase \"alloc\":\n\t\t\tnsp.Alloc = &v\n\t\tcase \"mem\":\n\t\t\tnsp.Mem = &v\n\t\tcase \"memory\":\n\t\t\tnsp.Memory = &v\n\t\t}\n\t}\n\n\treturn nsp\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_softnet.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// For the proc file format details,\n// See:\n// * Linux 2.6.23 https://elixir.bootlin.com/linux/v2.6.23/source/net/core/dev.c#L2343\n// * Linux 2.6.39 https://elixir.bootlin.com/linux/v2.6.39/source/net/core/dev.c#L4086\n// * Linux 4.18 https://elixir.bootlin.com/linux/v4.18/source/net/core/net-procfs.c#L162\n// * Linux 5.14 https://elixir.bootlin.com/linux/v5.14/source/net/core/net-procfs.c#L169\n\n// SoftnetStat contains a single row of data from /proc/net/softnet_stat.\ntype SoftnetStat struct {\n\t// Number of processed packets.\n\tProcessed uint32\n\t// Number of dropped packets.\n\tDropped uint32\n\t// Number of times processing packets ran out of quota.\n\tTimeSqueezed uint32\n\t// Number of collision occur while obtaining device lock while transmitting.\n\tCPUCollision uint32\n\t// Number of times cpu woken up received_rps.\n\tReceivedRps uint32\n\t// number of times flow limit has been reached.\n\tFlowLimitCount uint32\n\t// Softnet backlog status.\n\tSoftnetBacklogLen uint32\n\t// CPU id owning this softnet_data.\n\tIndex uint32\n\t// softnet_data's Width.\n\tWidth int\n}\n\nvar softNetProcFile = \"net/softnet_stat\"\n\n// NetSoftnetStat reads data from /proc/net/softnet_stat.\nfunc (fs FS) NetSoftnetStat() ([]SoftnetStat, error) {\n\tb, err := util.ReadFileNoStat(fs.proc.Path(softNetProcFile))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentries, err := parseSoftnet(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse /proc/net/softnet_stat: %w\", err)\n\t}\n\n\treturn entries, nil\n}\n\nfunc parseSoftnet(r io.Reader) ([]SoftnetStat, error) {\n\tconst minColumns = 9\n\n\ts := bufio.NewScanner(r)\n\n\tvar stats []SoftnetStat\n\tcpuIndex := 0\n\tfor s.Scan() {\n\t\tcolumns := strings.Fields(s.Text())\n\t\twidth := len(columns)\n\t\tsoftnetStat := SoftnetStat{}\n\n\t\tif width < minColumns {\n\t\t\treturn nil, fmt.Errorf(\"%d columns were detected, but at least %d were expected\", width, minColumns)\n\t\t}\n\n\t\t// Linux 2.6.23 https://elixir.bootlin.com/linux/v2.6.23/source/net/core/dev.c#L2347\n\t\tif width >= minColumns {\n\t\t\tus, err := parseHexUint32s(columns[0:9])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tsoftnetStat.Processed = us[0]\n\t\t\tsoftnetStat.Dropped = us[1]\n\t\t\tsoftnetStat.TimeSqueezed = us[2]\n\t\t\tsoftnetStat.CPUCollision = us[8]\n\t\t}\n\n\t\t// Linux 2.6.39 https://elixir.bootlin.com/linux/v2.6.39/source/net/core/dev.c#L4086\n\t\tif width >= 10 {\n\t\t\tus, err := parseHexUint32s(columns[9:10])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tsoftnetStat.ReceivedRps = us[0]\n\t\t}\n\n\t\t// Linux 4.18 https://elixir.bootlin.com/linux/v4.18/source/net/core/net-procfs.c#L162\n\t\tif width >= 11 {\n\t\t\tus, err := parseHexUint32s(columns[10:11])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tsoftnetStat.FlowLimitCount = us[0]\n\t\t}\n\n\t\t// Linux 5.14 https://elixir.bootlin.com/linux/v5.14/source/net/core/net-procfs.c#L169\n\t\tif width >= 13 {\n\t\t\tus, err := parseHexUint32s(columns[11:13])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tsoftnetStat.SoftnetBacklogLen = us[0]\n\t\t\tsoftnetStat.Index = us[1]\n\t\t} else {\n\t\t\t// For older kernels, create the Index based on the scan line number.\n\t\t\tsoftnetStat.Index = uint32(cpuIndex)\n\t\t}\n\t\tsoftnetStat.Width = width\n\t\tstats = append(stats, softnetStat)\n\t\tcpuIndex++\n\t}\n\n\treturn stats, nil\n}\n\nfunc parseHexUint32s(ss []string) ([]uint32, error) {\n\tus := make([]uint32, 0, len(ss))\n\tfor _, s := range ss {\n\t\tu, err := strconv.ParseUint(s, 16, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tus = append(us, uint32(u))\n\t}\n\n\treturn us, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_tcp.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\ntype (\n\t// NetTCP represents the contents of /proc/net/tcp{,6} file without the header.\n\tNetTCP []*netIPSocketLine\n\n\t// NetTCPSummary provides already computed values like the total queue lengths or\n\t// the total number of used sockets. In contrast to NetTCP it does not collect\n\t// the parsed lines into a slice.\n\tNetTCPSummary NetIPSocketSummary\n)\n\n// NetTCP returns the IPv4 kernel/networking statistics for TCP datagrams\n// read from /proc/net/tcp.\nfunc (fs FS) NetTCP() (NetTCP, error) {\n\treturn newNetTCP(fs.proc.Path(\"net/tcp\"))\n}\n\n// NetTCP6 returns the IPv6 kernel/networking statistics for TCP datagrams\n// read from /proc/net/tcp6.\nfunc (fs FS) NetTCP6() (NetTCP, error) {\n\treturn newNetTCP(fs.proc.Path(\"net/tcp6\"))\n}\n\n// NetTCPSummary returns already computed statistics like the total queue lengths\n// for TCP datagrams read from /proc/net/tcp.\nfunc (fs FS) NetTCPSummary() (*NetTCPSummary, error) {\n\treturn newNetTCPSummary(fs.proc.Path(\"net/tcp\"))\n}\n\n// NetTCP6Summary returns already computed statistics like the total queue lengths\n// for TCP datagrams read from /proc/net/tcp6.\nfunc (fs FS) NetTCP6Summary() (*NetTCPSummary, error) {\n\treturn newNetTCPSummary(fs.proc.Path(\"net/tcp6\"))\n}\n\n// newNetTCP creates a new NetTCP{,6} from the contents of the given file.\nfunc newNetTCP(file string) (NetTCP, error) {\n\tn, err := newNetIPSocket(file)\n\tn1 := NetTCP(n)\n\treturn n1, err\n}\n\nfunc newNetTCPSummary(file string) (*NetTCPSummary, error) {\n\tn, err := newNetIPSocketSummary(file)\n\tif n == nil {\n\t\treturn nil, err\n\t}\n\tn1 := NetTCPSummary(*n)\n\treturn &n1, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_udp.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\ntype (\n\t// NetUDP represents the contents of /proc/net/udp{,6} file without the header.\n\tNetUDP []*netIPSocketLine\n\n\t// NetUDPSummary provides already computed values like the total queue lengths or\n\t// the total number of used sockets. In contrast to NetUDP it does not collect\n\t// the parsed lines into a slice.\n\tNetUDPSummary NetIPSocketSummary\n)\n\n// NetUDP returns the IPv4 kernel/networking statistics for UDP datagrams\n// read from /proc/net/udp.\nfunc (fs FS) NetUDP() (NetUDP, error) {\n\treturn newNetUDP(fs.proc.Path(\"net/udp\"))\n}\n\n// NetUDP6 returns the IPv6 kernel/networking statistics for UDP datagrams\n// read from /proc/net/udp6.\nfunc (fs FS) NetUDP6() (NetUDP, error) {\n\treturn newNetUDP(fs.proc.Path(\"net/udp6\"))\n}\n\n// NetUDPSummary returns already computed statistics like the total queue lengths\n// for UDP datagrams read from /proc/net/udp.\nfunc (fs FS) NetUDPSummary() (*NetUDPSummary, error) {\n\treturn newNetUDPSummary(fs.proc.Path(\"net/udp\"))\n}\n\n// NetUDP6Summary returns already computed statistics like the total queue lengths\n// for UDP datagrams read from /proc/net/udp6.\nfunc (fs FS) NetUDP6Summary() (*NetUDPSummary, error) {\n\treturn newNetUDPSummary(fs.proc.Path(\"net/udp6\"))\n}\n\n// newNetUDP creates a new NetUDP{,6} from the contents of the given file.\nfunc newNetUDP(file string) (NetUDP, error) {\n\tn, err := newNetIPSocket(file)\n\tn1 := NetUDP(n)\n\treturn n1, err\n}\n\nfunc newNetUDPSummary(file string) (*NetUDPSummary, error) {\n\tn, err := newNetIPSocketSummary(file)\n\tif n == nil {\n\t\treturn nil, err\n\t}\n\tn1 := NetUDPSummary(*n)\n\treturn &n1, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_unix.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// For the proc file format details,\n// see https://elixir.bootlin.com/linux/v4.17/source/net/unix/af_unix.c#L2815\n// and https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/net.h#L48.\n\n// Constants for the various /proc/net/unix enumerations.\n// TODO: match against x/sys/unix or similar?\nconst (\n\tnetUnixTypeStream    = 1\n\tnetUnixTypeDgram     = 2\n\tnetUnixTypeSeqpacket = 5\n\n\tnetUnixFlagDefault = 0\n\tnetUnixFlagListen  = 1 << 16\n\n\tnetUnixStateUnconnected  = 1\n\tnetUnixStateConnecting   = 2\n\tnetUnixStateConnected    = 3\n\tnetUnixStateDisconnected = 4\n)\n\n// NetUNIXType is the type of the type field.\ntype NetUNIXType uint64\n\n// NetUNIXFlags is the type of the flags field.\ntype NetUNIXFlags uint64\n\n// NetUNIXState is the type of the state field.\ntype NetUNIXState uint64\n\n// NetUNIXLine represents a line of /proc/net/unix.\ntype NetUNIXLine struct {\n\tKernelPtr string\n\tRefCount  uint64\n\tProtocol  uint64\n\tFlags     NetUNIXFlags\n\tType      NetUNIXType\n\tState     NetUNIXState\n\tInode     uint64\n\tPath      string\n}\n\n// NetUNIX holds the data read from /proc/net/unix.\ntype NetUNIX struct {\n\tRows []*NetUNIXLine\n}\n\n// NetUNIX returns data read from /proc/net/unix.\nfunc (fs FS) NetUNIX() (*NetUNIX, error) {\n\treturn readNetUNIX(fs.proc.Path(\"net/unix\"))\n}\n\n// readNetUNIX reads data in /proc/net/unix format from the specified file.\nfunc readNetUNIX(file string) (*NetUNIX, error) {\n\t// This file could be quite large and a streaming read is desirable versus\n\t// reading the entire contents at once.\n\tf, err := os.Open(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\n\treturn parseNetUNIX(f)\n}\n\n// parseNetUNIX creates a NetUnix structure from the incoming stream.\nfunc parseNetUNIX(r io.Reader) (*NetUNIX, error) {\n\t// Begin scanning by checking for the existence of Inode.\n\ts := bufio.NewScanner(r)\n\ts.Scan()\n\n\t// From the man page of proc(5), it does not contain an Inode field,\n\t// but in actually it exists. This code works for both cases.\n\thasInode := strings.Contains(s.Text(), \"Inode\")\n\n\t// Expect a minimum number of fields, but Inode and Path are optional:\n\t// Num       RefCount Protocol Flags    Type St Inode Path\n\tminFields := 6\n\tif hasInode {\n\t\tminFields++\n\t}\n\n\tvar nu NetUNIX\n\tfor s.Scan() {\n\t\tline := s.Text()\n\t\titem, err := nu.parseLine(line, hasInode, minFields)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse /proc/net/unix data %q: %w\", line, err)\n\t\t}\n\n\t\tnu.Rows = append(nu.Rows, item)\n\t}\n\n\tif err := s.Err(); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to scan /proc/net/unix data: %w\", err)\n\t}\n\n\treturn &nu, nil\n}\n\nfunc (u *NetUNIX) parseLine(line string, hasInode bool, min int) (*NetUNIXLine, error) {\n\tfields := strings.Fields(line)\n\n\tl := len(fields)\n\tif l < min {\n\t\treturn nil, fmt.Errorf(\"expected at least %d fields but got %d\", min, l)\n\t}\n\n\t// Field offsets are as follows:\n\t// Num       RefCount Protocol Flags    Type St Inode Path\n\n\tkernelPtr := strings.TrimSuffix(fields[0], \":\")\n\n\tusers, err := u.parseUsers(fields[1])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse ref count %q: %w\", fields[1], err)\n\t}\n\n\tflags, err := u.parseFlags(fields[3])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse flags %q: %w\", fields[3], err)\n\t}\n\n\ttyp, err := u.parseType(fields[4])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse type %q: %w\", fields[4], err)\n\t}\n\n\tstate, err := u.parseState(fields[5])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse state %q: %w\", fields[5], err)\n\t}\n\n\tvar inode uint64\n\tif hasInode {\n\t\tinode, err = u.parseInode(fields[6])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse inode %q: %w\", fields[6], err)\n\t\t}\n\t}\n\n\tn := &NetUNIXLine{\n\t\tKernelPtr: kernelPtr,\n\t\tRefCount:  users,\n\t\tType:      typ,\n\t\tFlags:     flags,\n\t\tState:     state,\n\t\tInode:     inode,\n\t}\n\n\t// Path field is optional.\n\tif l > min {\n\t\t// Path occurs at either index 6 or 7 depending on whether inode is\n\t\t// already present.\n\t\tpathIdx := 7\n\t\tif !hasInode {\n\t\t\tpathIdx--\n\t\t}\n\n\t\tn.Path = fields[pathIdx]\n\t}\n\n\treturn n, nil\n}\n\nfunc (u NetUNIX) parseUsers(s string) (uint64, error) {\n\treturn strconv.ParseUint(s, 16, 32)\n}\n\nfunc (u NetUNIX) parseType(s string) (NetUNIXType, error) {\n\ttyp, err := strconv.ParseUint(s, 16, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn NetUNIXType(typ), nil\n}\n\nfunc (u NetUNIX) parseFlags(s string) (NetUNIXFlags, error) {\n\tflags, err := strconv.ParseUint(s, 16, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn NetUNIXFlags(flags), nil\n}\n\nfunc (u NetUNIX) parseState(s string) (NetUNIXState, error) {\n\tst, err := strconv.ParseInt(s, 16, 8)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn NetUNIXState(st), nil\n}\n\nfunc (u NetUNIX) parseInode(s string) (uint64, error) {\n\treturn strconv.ParseUint(s, 10, 64)\n}\n\nfunc (t NetUNIXType) String() string {\n\tswitch t {\n\tcase netUnixTypeStream:\n\t\treturn \"stream\"\n\tcase netUnixTypeDgram:\n\t\treturn \"dgram\"\n\tcase netUnixTypeSeqpacket:\n\t\treturn \"seqpacket\"\n\t}\n\treturn \"unknown\"\n}\n\nfunc (f NetUNIXFlags) String() string {\n\tswitch f {\n\tcase netUnixFlagListen:\n\t\treturn \"listen\"\n\tdefault:\n\t\treturn \"default\"\n\t}\n}\n\nfunc (s NetUNIXState) String() string {\n\tswitch s {\n\tcase netUnixStateUnconnected:\n\t\treturn \"unconnected\"\n\tcase netUnixStateConnecting:\n\t\treturn \"connecting\"\n\tcase netUnixStateConnected:\n\t\treturn \"connected\"\n\tcase netUnixStateDisconnected:\n\t\treturn \"disconnected\"\n\t}\n\treturn \"unknown\"\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_wireless.go",
    "content": "// Copyright 2023 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Wireless models the content of /proc/net/wireless.\ntype Wireless struct {\n\tName string\n\n\t// Status is the current 4-digit hex value status of the interface.\n\tStatus uint64\n\n\t// QualityLink is the link quality.\n\tQualityLink int\n\n\t// QualityLevel is the signal gain (dBm).\n\tQualityLevel int\n\n\t// QualityNoise is the signal noise baseline (dBm).\n\tQualityNoise int\n\n\t// DiscardedNwid is the number of discarded packets with wrong nwid/essid.\n\tDiscardedNwid int\n\n\t// DiscardedCrypt is the number of discarded packets with wrong code/decode (WEP).\n\tDiscardedCrypt int\n\n\t// DiscardedFrag is the number of discarded packets that can't perform MAC reassembly.\n\tDiscardedFrag int\n\n\t// DiscardedRetry is the number of discarded packets that reached max MAC retries.\n\tDiscardedRetry int\n\n\t// DiscardedMisc is the number of discarded packets for other reasons.\n\tDiscardedMisc int\n\n\t// MissedBeacon is the number of missed beacons/superframe.\n\tMissedBeacon int\n}\n\n// Wireless returns kernel wireless statistics.\nfunc (fs FS) Wireless() ([]*Wireless, error) {\n\tb, err := util.ReadFileNoStat(fs.proc.Path(\"net/wireless\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tm, err := parseWireless(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse wireless: %w\", err)\n\t}\n\n\treturn m, nil\n}\n\n// parseWireless parses the contents of /proc/net/wireless.\n/*\nInter-| sta-|   Quality        |   Discarded packets               | Missed | WE\nface | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22\n eth1: 0000    5.  -256.  -10.       0      1      0     3      0        0\n eth2: 0000    5.  -256.  -20.       0      2      0     4      0        0\n*/\nfunc parseWireless(r io.Reader) ([]*Wireless, error) {\n\tvar (\n\t\tinterfaces []*Wireless\n\t\tscanner    = bufio.NewScanner(r)\n\t)\n\n\tfor n := 0; scanner.Scan(); n++ {\n\t\t// Skip the 2 header lines.\n\t\tif n < 2 {\n\t\t\tcontinue\n\t\t}\n\n\t\tline := scanner.Text()\n\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"expected 2 parts after splitting line by ':', got %d for line %q\", len(parts), line)\n\t\t}\n\n\t\tname := strings.TrimSpace(parts[0])\n\t\tstats := strings.Fields(parts[1])\n\n\t\tif len(stats) < 10 {\n\t\t\treturn nil, fmt.Errorf(\"invalid number of fields in line %d, expected at least 10, got %d: %q\", n, len(stats), line)\n\t\t}\n\n\t\tstatus, err := strconv.ParseUint(stats[0], 16, 16)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid status in line %d: %q\", n, line)\n\t\t}\n\n\t\tqlink, err := strconv.Atoi(strings.TrimSuffix(stats[1], \".\"))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Quality:link as integer %q: %w\", qlink, err)\n\t\t}\n\n\t\tqlevel, err := strconv.Atoi(strings.TrimSuffix(stats[2], \".\"))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Quality:level as integer %q: %w\", qlevel, err)\n\t\t}\n\n\t\tqnoise, err := strconv.Atoi(strings.TrimSuffix(stats[3], \".\"))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Quality:noise as integer %q: %w\", qnoise, err)\n\t\t}\n\n\t\tdnwid, err := strconv.Atoi(stats[4])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Discarded:nwid as integer %q: %w\", dnwid, err)\n\t\t}\n\n\t\tdcrypt, err := strconv.Atoi(stats[5])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Discarded:crypt as integer %q: %w\", dcrypt, err)\n\t\t}\n\n\t\tdfrag, err := strconv.Atoi(stats[6])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Discarded:frag as integer %q: %w\", dfrag, err)\n\t\t}\n\n\t\tdretry, err := strconv.Atoi(stats[7])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Discarded:retry as integer %q: %w\", dretry, err)\n\t\t}\n\n\t\tdmisc, err := strconv.Atoi(stats[8])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Discarded:misc as integer %q: %w\", dmisc, err)\n\t\t}\n\n\t\tmbeacon, err := strconv.Atoi(stats[9])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse Missed:beacon as integer %q: %w\", mbeacon, err)\n\t\t}\n\n\t\tw := &Wireless{\n\t\t\tName:           name,\n\t\t\tStatus:         status,\n\t\t\tQualityLink:    qlink,\n\t\t\tQualityLevel:   qlevel,\n\t\t\tQualityNoise:   qnoise,\n\t\t\tDiscardedNwid:  dnwid,\n\t\t\tDiscardedCrypt: dcrypt,\n\t\t\tDiscardedFrag:  dfrag,\n\t\t\tDiscardedRetry: dretry,\n\t\t\tDiscardedMisc:  dmisc,\n\t\t\tMissedBeacon:   mbeacon,\n\t\t}\n\n\t\tinterfaces = append(interfaces, w)\n\t}\n\n\tif err := scanner.Err(); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to scan /proc/net/wireless: %w\", err)\n\t}\n\n\treturn interfaces, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/net_xfrm.go",
    "content": "// Copyright 2017 Prometheus Team\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// XfrmStat models the contents of /proc/net/xfrm_stat.\ntype XfrmStat struct {\n\t// All errors which are not matched by other\n\tXfrmInError int\n\t// No buffer is left\n\tXfrmInBufferError int\n\t// Header Error\n\tXfrmInHdrError int\n\t// No state found\n\t// i.e. either inbound SPI, address, or IPSEC protocol at SA is wrong\n\tXfrmInNoStates int\n\t// Transformation protocol specific error\n\t// e.g. SA Key is wrong\n\tXfrmInStateProtoError int\n\t// Transformation mode specific error\n\tXfrmInStateModeError int\n\t// Sequence error\n\t// e.g. sequence number is out of window\n\tXfrmInStateSeqError int\n\t// State is expired\n\tXfrmInStateExpired int\n\t// State has mismatch option\n\t// e.g. UDP encapsulation type is mismatched\n\tXfrmInStateMismatch int\n\t// State is invalid\n\tXfrmInStateInvalid int\n\t// No matching template for states\n\t// e.g. Inbound SAs are correct but SP rule is wrong\n\tXfrmInTmplMismatch int\n\t// No policy is found for states\n\t// e.g. Inbound SAs are correct but no SP is found\n\tXfrmInNoPols int\n\t// Policy discards\n\tXfrmInPolBlock int\n\t// Policy error\n\tXfrmInPolError int\n\t// All errors which are not matched by others\n\tXfrmOutError int\n\t// Bundle generation error\n\tXfrmOutBundleGenError int\n\t// Bundle check error\n\tXfrmOutBundleCheckError int\n\t// No state was found\n\tXfrmOutNoStates int\n\t// Transformation protocol specific error\n\tXfrmOutStateProtoError int\n\t// Transportation mode specific error\n\tXfrmOutStateModeError int\n\t// Sequence error\n\t// i.e sequence number overflow\n\tXfrmOutStateSeqError int\n\t// State is expired\n\tXfrmOutStateExpired int\n\t// Policy discads\n\tXfrmOutPolBlock int\n\t// Policy is dead\n\tXfrmOutPolDead int\n\t// Policy Error\n\tXfrmOutPolError int\n\t// Forward routing of a packet is not allowed\n\tXfrmFwdHdrError int\n\t// State is invalid, perhaps expired\n\tXfrmOutStateInvalid int\n\t// State hasn’t been fully acquired before use\n\tXfrmAcquireError int\n}\n\n// NewXfrmStat reads the xfrm_stat statistics.\nfunc NewXfrmStat() (XfrmStat, error) {\n\tfs, err := NewFS(DefaultMountPoint)\n\tif err != nil {\n\t\treturn XfrmStat{}, err\n\t}\n\n\treturn fs.NewXfrmStat()\n}\n\n// NewXfrmStat reads the xfrm_stat statistics from the 'proc' filesystem.\nfunc (fs FS) NewXfrmStat() (XfrmStat, error) {\n\tfile, err := os.Open(fs.proc.Path(\"net/xfrm_stat\"))\n\tif err != nil {\n\t\treturn XfrmStat{}, err\n\t}\n\tdefer file.Close()\n\n\tvar (\n\t\tx = XfrmStat{}\n\t\ts = bufio.NewScanner(file)\n\t)\n\n\tfor s.Scan() {\n\t\tfields := strings.Fields(s.Text())\n\n\t\tif len(fields) != 2 {\n\t\t\treturn XfrmStat{}, fmt.Errorf(\"couldn't parse %q line %q\", file.Name(), s.Text())\n\t\t}\n\n\t\tname := fields[0]\n\t\tvalue, err := strconv.Atoi(fields[1])\n\t\tif err != nil {\n\t\t\treturn XfrmStat{}, err\n\t\t}\n\n\t\tswitch name {\n\t\tcase \"XfrmInError\":\n\t\t\tx.XfrmInError = value\n\t\tcase \"XfrmInBufferError\":\n\t\t\tx.XfrmInBufferError = value\n\t\tcase \"XfrmInHdrError\":\n\t\t\tx.XfrmInHdrError = value\n\t\tcase \"XfrmInNoStates\":\n\t\t\tx.XfrmInNoStates = value\n\t\tcase \"XfrmInStateProtoError\":\n\t\t\tx.XfrmInStateProtoError = value\n\t\tcase \"XfrmInStateModeError\":\n\t\t\tx.XfrmInStateModeError = value\n\t\tcase \"XfrmInStateSeqError\":\n\t\t\tx.XfrmInStateSeqError = value\n\t\tcase \"XfrmInStateExpired\":\n\t\t\tx.XfrmInStateExpired = value\n\t\tcase \"XfrmInStateInvalid\":\n\t\t\tx.XfrmInStateInvalid = value\n\t\tcase \"XfrmInTmplMismatch\":\n\t\t\tx.XfrmInTmplMismatch = value\n\t\tcase \"XfrmInNoPols\":\n\t\t\tx.XfrmInNoPols = value\n\t\tcase \"XfrmInPolBlock\":\n\t\t\tx.XfrmInPolBlock = value\n\t\tcase \"XfrmInPolError\":\n\t\t\tx.XfrmInPolError = value\n\t\tcase \"XfrmOutError\":\n\t\t\tx.XfrmOutError = value\n\t\tcase \"XfrmInStateMismatch\":\n\t\t\tx.XfrmInStateMismatch = value\n\t\tcase \"XfrmOutBundleGenError\":\n\t\t\tx.XfrmOutBundleGenError = value\n\t\tcase \"XfrmOutBundleCheckError\":\n\t\t\tx.XfrmOutBundleCheckError = value\n\t\tcase \"XfrmOutNoStates\":\n\t\t\tx.XfrmOutNoStates = value\n\t\tcase \"XfrmOutStateProtoError\":\n\t\t\tx.XfrmOutStateProtoError = value\n\t\tcase \"XfrmOutStateModeError\":\n\t\t\tx.XfrmOutStateModeError = value\n\t\tcase \"XfrmOutStateSeqError\":\n\t\t\tx.XfrmOutStateSeqError = value\n\t\tcase \"XfrmOutStateExpired\":\n\t\t\tx.XfrmOutStateExpired = value\n\t\tcase \"XfrmOutPolBlock\":\n\t\t\tx.XfrmOutPolBlock = value\n\t\tcase \"XfrmOutPolDead\":\n\t\t\tx.XfrmOutPolDead = value\n\t\tcase \"XfrmOutPolError\":\n\t\t\tx.XfrmOutPolError = value\n\t\tcase \"XfrmFwdHdrError\":\n\t\t\tx.XfrmFwdHdrError = value\n\t\tcase \"XfrmOutStateInvalid\":\n\t\t\tx.XfrmOutStateInvalid = value\n\t\tcase \"XfrmAcquireError\":\n\t\t\tx.XfrmAcquireError = value\n\t\t}\n\n\t}\n\n\treturn x, s.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/netstat.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// NetStat contains statistics for all the counters from one file.\ntype NetStat struct {\n\tStats    map[string][]uint64\n\tFilename string\n}\n\n// NetStat retrieves stats from `/proc/net/stat/`.\nfunc (fs FS) NetStat() ([]NetStat, error) {\n\tstatFiles, err := filepath.Glob(fs.proc.Path(\"net/stat/*\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar netStatsTotal []NetStat\n\n\tfor _, filePath := range statFiles {\n\t\tprocNetstat, err := parseNetstat(filePath)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tprocNetstat.Filename = filepath.Base(filePath)\n\n\t\tnetStatsTotal = append(netStatsTotal, procNetstat)\n\t}\n\treturn netStatsTotal, nil\n}\n\n// parseNetstat parses the metrics from `/proc/net/stat/` file\n// and returns a NetStat structure.\nfunc parseNetstat(filePath string) (NetStat, error) {\n\tnetStat := NetStat{\n\t\tStats: make(map[string][]uint64),\n\t}\n\tfile, err := os.Open(filePath)\n\tif err != nil {\n\t\treturn netStat, err\n\t}\n\tdefer file.Close()\n\n\tscanner := bufio.NewScanner(file)\n\tscanner.Scan()\n\n\t// First string is always a header for stats\n\tvar headers []string\n\theaders = append(headers, strings.Fields(scanner.Text())...)\n\n\t// Other strings represent per-CPU counters\n\tfor scanner.Scan() {\n\t\tfor num, counter := range strings.Fields(scanner.Text()) {\n\t\t\tvalue, err := strconv.ParseUint(counter, 16, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn NetStat{}, err\n\t\t\t}\n\t\t\tnetStat.Stats[headers[num]] = append(netStat.Stats[headers[num]], value)\n\t\t}\n\t}\n\n\treturn netStat, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Proc provides information about a running process.\ntype Proc struct {\n\t// The process ID.\n\tPID int\n\n\tfs FS\n}\n\n// Procs represents a list of Proc structs.\ntype Procs []Proc\n\nfunc (p Procs) Len() int           { return len(p) }\nfunc (p Procs) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\nfunc (p Procs) Less(i, j int) bool { return p[i].PID < p[j].PID }\n\n// Self returns a process for the current process read via /proc/self.\nfunc Self() (Proc, error) {\n\tfs, err := NewFS(DefaultMountPoint)\n\tif err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn fs.Self()\n}\n\n// NewProc returns a process for the given pid under /proc.\nfunc NewProc(pid int) (Proc, error) {\n\tfs, err := NewFS(DefaultMountPoint)\n\tif err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn fs.Proc(pid)\n}\n\n// AllProcs returns a list of all currently available processes under /proc.\nfunc AllProcs() (Procs, error) {\n\tfs, err := NewFS(DefaultMountPoint)\n\tif err != nil {\n\t\treturn Procs{}, err\n\t}\n\treturn fs.AllProcs()\n}\n\n// Self returns a process for the current process.\nfunc (fs FS) Self() (Proc, error) {\n\tp, err := os.Readlink(fs.proc.Path(\"self\"))\n\tif err != nil {\n\t\treturn Proc{}, err\n\t}\n\tpid, err := strconv.Atoi(strings.Replace(p, string(fs.proc), \"\", -1))\n\tif err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn fs.Proc(pid)\n}\n\n// NewProc returns a process for the given pid.\n//\n// Deprecated: Use fs.Proc() instead.\nfunc (fs FS) NewProc(pid int) (Proc, error) {\n\treturn fs.Proc(pid)\n}\n\n// Proc returns a process for the given pid.\nfunc (fs FS) Proc(pid int) (Proc, error) {\n\tif _, err := os.Stat(fs.proc.Path(strconv.Itoa(pid))); err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn Proc{PID: pid, fs: fs}, nil\n}\n\n// AllProcs returns a list of all currently available processes.\nfunc (fs FS) AllProcs() (Procs, error) {\n\td, err := os.Open(fs.proc.Path())\n\tif err != nil {\n\t\treturn Procs{}, err\n\t}\n\tdefer d.Close()\n\n\tnames, err := d.Readdirnames(-1)\n\tif err != nil {\n\t\treturn Procs{}, fmt.Errorf(\"could not read %q: %w\", d.Name(), err)\n\t}\n\n\tp := Procs{}\n\tfor _, n := range names {\n\t\tpid, err := strconv.ParseInt(n, 10, 64)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tp = append(p, Proc{PID: int(pid), fs: fs})\n\t}\n\n\treturn p, nil\n}\n\n// CmdLine returns the command line of a process.\nfunc (p Proc) CmdLine() ([]string, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"cmdline\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(data) < 1 {\n\t\treturn []string{}, nil\n\t}\n\n\treturn strings.Split(string(bytes.TrimRight(data, string(\"\\x00\"))), string(byte(0))), nil\n}\n\n// Wchan returns the wchan (wait channel) of a process.\nfunc (p Proc) Wchan() (string, error) {\n\tf, err := os.Open(p.path(\"wchan\"))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer f.Close()\n\n\tdata, err := io.ReadAll(f)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\twchan := string(data)\n\tif wchan == \"\" || wchan == \"0\" {\n\t\treturn \"\", nil\n\t}\n\n\treturn wchan, nil\n}\n\n// Comm returns the command name of a process.\nfunc (p Proc) Comm() (string, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"comm\"))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn strings.TrimSpace(string(data)), nil\n}\n\n// Executable returns the absolute path of the executable command of a process.\nfunc (p Proc) Executable() (string, error) {\n\texe, err := os.Readlink(p.path(\"exe\"))\n\tif os.IsNotExist(err) {\n\t\treturn \"\", nil\n\t}\n\n\treturn exe, err\n}\n\n// Cwd returns the absolute path to the current working directory of the process.\nfunc (p Proc) Cwd() (string, error) {\n\twd, err := os.Readlink(p.path(\"cwd\"))\n\tif os.IsNotExist(err) {\n\t\treturn \"\", nil\n\t}\n\n\treturn wd, err\n}\n\n// RootDir returns the absolute path to the process's root directory (as set by chroot).\nfunc (p Proc) RootDir() (string, error) {\n\trdir, err := os.Readlink(p.path(\"root\"))\n\tif os.IsNotExist(err) {\n\t\treturn \"\", nil\n\t}\n\n\treturn rdir, err\n}\n\n// FileDescriptors returns the currently open file descriptors of a process.\nfunc (p Proc) FileDescriptors() ([]uintptr, error) {\n\tnames, err := p.fileDescriptors()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfds := make([]uintptr, len(names))\n\tfor i, n := range names {\n\t\tfd, err := strconv.ParseInt(n, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"could not parse fd %q: %w\", n, err)\n\t\t}\n\t\tfds[i] = uintptr(fd)\n\t}\n\n\treturn fds, nil\n}\n\n// FileDescriptorTargets returns the targets of all file descriptors of a process.\n// If a file descriptor is not a symlink to a file (like a socket), that value will be the empty string.\nfunc (p Proc) FileDescriptorTargets() ([]string, error) {\n\tnames, err := p.fileDescriptors()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttargets := make([]string, len(names))\n\n\tfor i, name := range names {\n\t\ttarget, err := os.Readlink(p.path(\"fd\", name))\n\t\tif err == nil {\n\t\t\ttargets[i] = target\n\t\t}\n\t}\n\n\treturn targets, nil\n}\n\n// FileDescriptorsLen returns the number of currently open file descriptors of\n// a process.\nfunc (p Proc) FileDescriptorsLen() (int, error) {\n\t// Use fast path if available (Linux v6.2): https://github.com/torvalds/linux/commit/f1f1f2569901\n\tif p.fs.real {\n\t\tstat, err := os.Stat(p.path(\"fd\"))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tsize := stat.Size()\n\t\tif size > 0 {\n\t\t\treturn int(size), nil\n\t\t}\n\t}\n\n\tfds, err := p.fileDescriptors()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn len(fds), nil\n}\n\n// MountStats retrieves statistics and configuration for mount points in a\n// process's namespace.\nfunc (p Proc) MountStats() ([]*Mount, error) {\n\tf, err := os.Open(p.path(\"mountstats\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\n\treturn parseMountStats(f)\n}\n\n// MountInfo retrieves mount information for mount points in a\n// process's namespace.\n// It supplies information missing in `/proc/self/mounts` and\n// fixes various other problems with that file too.\nfunc (p Proc) MountInfo() ([]*MountInfo, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"mountinfo\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseMountInfo(data)\n}\n\nfunc (p Proc) fileDescriptors() ([]string, error) {\n\td, err := os.Open(p.path(\"fd\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer d.Close()\n\n\tnames, err := d.Readdirnames(-1)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not read %q: %w\", d.Name(), err)\n\t}\n\n\treturn names, nil\n}\n\nfunc (p Proc) path(pa ...string) string {\n\treturn p.fs.proc.Path(append([]string{strconv.Itoa(p.PID)}, pa...)...)\n}\n\n// FileDescriptorsInfo retrieves information about all file descriptors of\n// the process.\nfunc (p Proc) FileDescriptorsInfo() (ProcFDInfos, error) {\n\tnames, err := p.fileDescriptors()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar fdinfos ProcFDInfos\n\n\tfor _, n := range names {\n\t\tfdinfo, err := p.FDInfo(n)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tfdinfos = append(fdinfos, *fdinfo)\n\t}\n\n\treturn fdinfos, nil\n}\n\n// Schedstat returns task scheduling information for the process.\nfunc (p Proc) Schedstat() (ProcSchedstat, error) {\n\tcontents, err := os.ReadFile(p.path(\"schedstat\"))\n\tif err != nil {\n\t\treturn ProcSchedstat{}, err\n\t}\n\treturn parseProcSchedstat(string(contents))\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_cgroup.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Cgroup models one line from /proc/[pid]/cgroup. Each Cgroup struct describes the placement of a PID inside a\n// specific control hierarchy. The kernel has two cgroup APIs, v1 and v2. v1 has one hierarchy per available resource\n// controller, while v2 has one unified hierarchy shared by all controllers. Regardless of v1 or v2, all hierarchies\n// contain all running processes, so the question answerable with a Cgroup struct is 'where is this process in\n// this hierarchy' (where==what path on the specific cgroupfs). By prefixing this path with the mount point of\n// *this specific* hierarchy, you can locate the relevant pseudo-files needed to read/set the data for this PID\n// in this hierarchy\n//\n// Also see http://man7.org/linux/man-pages/man7/cgroups.7.html\ntype Cgroup struct {\n\t// HierarchyID that can be matched to a named hierarchy using /proc/cgroups. Cgroups V2 only has one\n\t// hierarchy, so HierarchyID is always 0. For cgroups v1 this is a unique ID number\n\tHierarchyID int\n\t// Controllers using this hierarchy of processes. Controllers are also known as subsystems. For\n\t// Cgroups V2 this may be empty, as all active controllers use the same hierarchy\n\tControllers []string\n\t// Path of this control group, relative to the mount point of the cgroupfs representing this specific\n\t// hierarchy\n\tPath string\n}\n\n// parseCgroupString parses each line of the /proc/[pid]/cgroup file\n// Line format is hierarchyID:[controller1,controller2]:path.\nfunc parseCgroupString(cgroupStr string) (*Cgroup, error) {\n\tvar err error\n\n\tfields := strings.SplitN(cgroupStr, \":\", 3)\n\tif len(fields) < 3 {\n\t\treturn nil, fmt.Errorf(\"at least 3 fields required, found %d fields in cgroup string: %s\", len(fields), cgroupStr)\n\t}\n\n\tcgroup := &Cgroup{\n\t\tPath:        fields[2],\n\t\tControllers: nil,\n\t}\n\tcgroup.HierarchyID, err = strconv.Atoi(fields[0])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse hierarchy ID\")\n\t}\n\tif fields[1] != \"\" {\n\t\tssNames := strings.Split(fields[1], \",\")\n\t\tcgroup.Controllers = append(cgroup.Controllers, ssNames...)\n\t}\n\treturn cgroup, nil\n}\n\n// parseCgroups reads each line of the /proc/[pid]/cgroup file.\nfunc parseCgroups(data []byte) ([]Cgroup, error) {\n\tvar cgroups []Cgroup\n\tscanner := bufio.NewScanner(bytes.NewReader(data))\n\tfor scanner.Scan() {\n\t\tmountString := scanner.Text()\n\t\tparsedMounts, err := parseCgroupString(mountString)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tcgroups = append(cgroups, *parsedMounts)\n\t}\n\n\terr := scanner.Err()\n\treturn cgroups, err\n}\n\n// Cgroups reads from /proc/<pid>/cgroups and returns a []*Cgroup struct locating this PID in each process\n// control hierarchy running on this system. On every system (v1 and v2), all hierarchies contain all processes,\n// so the len of the returned struct is equal to the number of active hierarchies on this system.\nfunc (p Proc) Cgroups() ([]Cgroup, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"cgroup\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseCgroups(data)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_cgroups.go",
    "content": "// Copyright 2021 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// CgroupSummary models one line from /proc/cgroups.\n// This file contains information about the controllers that are compiled into the kernel.\n//\n// Also see http://man7.org/linux/man-pages/man7/cgroups.7.html\ntype CgroupSummary struct {\n\t// The name of the controller. controller is also known as subsystem.\n\tSubsysName string\n\t// The unique ID of the cgroup hierarchy on which this controller is mounted.\n\tHierarchy int\n\t// The number of control groups in this hierarchy using this controller.\n\tCgroups int\n\t// This field contains the value 1 if this controller is enabled, or 0 if it has been disabled\n\tEnabled int\n}\n\n// parseCgroupSummary parses each line of the /proc/cgroup file\n// Line format is `subsys_name\thierarchy\tnum_cgroups\tenabled`.\nfunc parseCgroupSummaryString(CgroupSummaryStr string) (*CgroupSummary, error) {\n\tvar err error\n\n\tfields := strings.Fields(CgroupSummaryStr)\n\t// require at least 4 fields\n\tif len(fields) < 4 {\n\t\treturn nil, fmt.Errorf(\"at least 4 fields required, found %d fields in cgroup info string: %s\", len(fields), CgroupSummaryStr)\n\t}\n\n\tCgroupSummary := &CgroupSummary{\n\t\tSubsysName: fields[0],\n\t}\n\tCgroupSummary.Hierarchy, err = strconv.Atoi(fields[1])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse hierarchy ID\")\n\t}\n\tCgroupSummary.Cgroups, err = strconv.Atoi(fields[2])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse Cgroup Num\")\n\t}\n\tCgroupSummary.Enabled, err = strconv.Atoi(fields[3])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse Enabled\")\n\t}\n\treturn CgroupSummary, nil\n}\n\n// parseCgroupSummary reads each line of the /proc/cgroup file.\nfunc parseCgroupSummary(data []byte) ([]CgroupSummary, error) {\n\tvar CgroupSummarys []CgroupSummary\n\tscanner := bufio.NewScanner(bytes.NewReader(data))\n\tfor scanner.Scan() {\n\t\tCgroupSummaryString := scanner.Text()\n\t\t// ignore comment lines\n\t\tif strings.HasPrefix(CgroupSummaryString, \"#\") {\n\t\t\tcontinue\n\t\t}\n\t\tCgroupSummary, err := parseCgroupSummaryString(CgroupSummaryString)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tCgroupSummarys = append(CgroupSummarys, *CgroupSummary)\n\t}\n\n\terr := scanner.Err()\n\treturn CgroupSummarys, err\n}\n\n// CgroupSummarys returns information about current /proc/cgroups.\nfunc (fs FS) CgroupSummarys() ([]CgroupSummary, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"cgroups\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseCgroupSummary(data)\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_environ.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Environ reads process environments from `/proc/<pid>/environ`.\nfunc (p Proc) Environ() ([]string, error) {\n\tenvironments := make([]string, 0)\n\n\tdata, err := util.ReadFileNoStat(p.path(\"environ\"))\n\tif err != nil {\n\t\treturn environments, err\n\t}\n\n\tenvironments = strings.Split(string(data), \"\\000\")\n\tif len(environments) > 0 {\n\t\tenvironments = environments[:len(environments)-1]\n\t}\n\n\treturn environments, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_fdinfo.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"regexp\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\nvar (\n\trPos          = regexp.MustCompile(`^pos:\\s+(\\d+)$`)\n\trFlags        = regexp.MustCompile(`^flags:\\s+(\\d+)$`)\n\trMntID        = regexp.MustCompile(`^mnt_id:\\s+(\\d+)$`)\n\trInotify      = regexp.MustCompile(`^inotify`)\n\trInotifyParts = regexp.MustCompile(`^inotify\\s+wd:([0-9a-f]+)\\s+ino:([0-9a-f]+)\\s+sdev:([0-9a-f]+)(?:\\s+mask:([0-9a-f]+))?`)\n)\n\n// ProcFDInfo contains represents file descriptor information.\ntype ProcFDInfo struct {\n\t// File descriptor\n\tFD string\n\t// File offset\n\tPos string\n\t// File access mode and status flags\n\tFlags string\n\t// Mount point ID\n\tMntID string\n\t// List of inotify lines (structured) in the fdinfo file (kernel 3.8+ only)\n\tInotifyInfos []InotifyInfo\n}\n\n// FDInfo constructor. On kernels older than 3.8, InotifyInfos will always be empty.\nfunc (p Proc) FDInfo(fd string) (*ProcFDInfo, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"fdinfo\", fd))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar text, pos, flags, mntid string\n\tvar inotify []InotifyInfo\n\n\tscanner := bufio.NewScanner(bytes.NewReader(data))\n\tfor scanner.Scan() {\n\t\ttext = scanner.Text()\n\t\tif rPos.MatchString(text) {\n\t\t\tpos = rPos.FindStringSubmatch(text)[1]\n\t\t} else if rFlags.MatchString(text) {\n\t\t\tflags = rFlags.FindStringSubmatch(text)[1]\n\t\t} else if rMntID.MatchString(text) {\n\t\t\tmntid = rMntID.FindStringSubmatch(text)[1]\n\t\t} else if rInotify.MatchString(text) {\n\t\t\tnewInotify, err := parseInotifyInfo(text)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinotify = append(inotify, *newInotify)\n\t\t}\n\t}\n\n\ti := &ProcFDInfo{\n\t\tFD:           fd,\n\t\tPos:          pos,\n\t\tFlags:        flags,\n\t\tMntID:        mntid,\n\t\tInotifyInfos: inotify,\n\t}\n\n\treturn i, nil\n}\n\n// InotifyInfo represents a single inotify line in the fdinfo file.\ntype InotifyInfo struct {\n\t// Watch descriptor number\n\tWD string\n\t// Inode number\n\tIno string\n\t// Device ID\n\tSdev string\n\t// Mask of events being monitored\n\tMask string\n}\n\n// InotifyInfo constructor. Only available on kernel 3.8+.\nfunc parseInotifyInfo(line string) (*InotifyInfo, error) {\n\tm := rInotifyParts.FindStringSubmatch(line)\n\tif len(m) >= 4 {\n\t\tvar mask string\n\t\tif len(m) == 5 {\n\t\t\tmask = m[4]\n\t\t}\n\t\ti := &InotifyInfo{\n\t\t\tWD:   m[1],\n\t\t\tIno:  m[2],\n\t\t\tSdev: m[3],\n\t\t\tMask: mask,\n\t\t}\n\t\treturn i, nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid inode entry: %q\", line)\n}\n\n// ProcFDInfos represents a list of ProcFDInfo structs.\ntype ProcFDInfos []ProcFDInfo\n\nfunc (p ProcFDInfos) Len() int           { return len(p) }\nfunc (p ProcFDInfos) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\nfunc (p ProcFDInfos) Less(i, j int) bool { return p[i].FD < p[j].FD }\n\n// InotifyWatchLen returns the total number of inotify watches.\nfunc (p ProcFDInfos) InotifyWatchLen() (int, error) {\n\tlength := 0\n\tfor _, f := range p {\n\t\tlength += len(f.InotifyInfos)\n\t}\n\n\treturn length, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_interrupts.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Interrupt represents a single interrupt line.\ntype Interrupt struct {\n\t// Info is the type of interrupt.\n\tInfo string\n\t// Devices is the name of the device that is located at that IRQ\n\tDevices string\n\t// Values is the number of interrupts per CPU.\n\tValues []string\n}\n\n// Interrupts models the content of /proc/interrupts. Key is the IRQ number.\n// - https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s2-proc-interrupts\n// - https://raspberrypi.stackexchange.com/questions/105802/explanation-of-proc-interrupts-output\ntype Interrupts map[string]Interrupt\n\n// Interrupts creates a new instance from a given Proc instance.\nfunc (p Proc) Interrupts() (Interrupts, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"interrupts\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseInterrupts(bytes.NewReader(data))\n}\n\nfunc parseInterrupts(r io.Reader) (Interrupts, error) {\n\tvar (\n\t\tinterrupts = Interrupts{}\n\t\tscanner    = bufio.NewScanner(r)\n\t)\n\n\tif !scanner.Scan() {\n\t\treturn nil, errors.New(\"interrupts empty\")\n\t}\n\tcpuNum := len(strings.Fields(scanner.Text())) // one header per cpu\n\n\tfor scanner.Scan() {\n\t\tparts := strings.Fields(scanner.Text())\n\t\tif len(parts) == 0 { // skip empty lines\n\t\t\tcontinue\n\t\t}\n\t\tif len(parts) < 2 {\n\t\t\treturn nil, fmt.Errorf(\"not enough fields in interrupts (expected at least 2 fields but got %d): %s\", len(parts), parts)\n\t\t}\n\t\tintName := parts[0][:len(parts[0])-1] // remove trailing :\n\n\t\tif len(parts) == 2 {\n\t\t\tinterrupts[intName] = Interrupt{\n\t\t\t\tInfo:    \"\",\n\t\t\t\tDevices: \"\",\n\t\t\t\tValues: []string{\n\t\t\t\t\tparts[1],\n\t\t\t\t},\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tintr := Interrupt{\n\t\t\tValues: parts[1 : cpuNum+1],\n\t\t}\n\n\t\tif _, err := strconv.Atoi(intName); err == nil { // numeral interrupt\n\t\t\tintr.Info = parts[cpuNum+1]\n\t\t\tintr.Devices = strings.Join(parts[cpuNum+2:], \" \")\n\t\t} else {\n\t\t\tintr.Info = strings.Join(parts[cpuNum+1:], \" \")\n\t\t}\n\t\tinterrupts[intName] = intr\n\t}\n\n\treturn interrupts, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_io.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// ProcIO models the content of /proc/<pid>/io.\ntype ProcIO struct {\n\t// Chars read.\n\tRChar uint64\n\t// Chars written.\n\tWChar uint64\n\t// Read syscalls.\n\tSyscR uint64\n\t// Write syscalls.\n\tSyscW uint64\n\t// Bytes read.\n\tReadBytes uint64\n\t// Bytes written.\n\tWriteBytes uint64\n\t// Bytes written, but taking into account truncation. See\n\t// Documentation/filesystems/proc.txt in the kernel sources for\n\t// detailed explanation.\n\tCancelledWriteBytes int64\n}\n\n// IO creates a new ProcIO instance from a given Proc instance.\nfunc (p Proc) IO() (ProcIO, error) {\n\tpio := ProcIO{}\n\n\tdata, err := util.ReadFileNoStat(p.path(\"io\"))\n\tif err != nil {\n\t\treturn pio, err\n\t}\n\n\tioFormat := \"rchar: %d\\nwchar: %d\\nsyscr: %d\\nsyscw: %d\\n\" +\n\t\t\"read_bytes: %d\\nwrite_bytes: %d\\n\" +\n\t\t\"cancelled_write_bytes: %d\\n\"\n\n\t_, err = fmt.Sscanf(string(data), ioFormat, &pio.RChar, &pio.WChar, &pio.SyscR,\n\t\t&pio.SyscW, &pio.ReadBytes, &pio.WriteBytes, &pio.CancelledWriteBytes)\n\n\treturn pio, err\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_limits.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n)\n\n// ProcLimits represents the soft limits for each of the process's resource\n// limits. For more information see getrlimit(2):\n// http://man7.org/linux/man-pages/man2/getrlimit.2.html.\ntype ProcLimits struct {\n\t// CPU time limit in seconds.\n\tCPUTime uint64\n\t// Maximum size of files that the process may create.\n\tFileSize uint64\n\t// Maximum size of the process's data segment (initialized data,\n\t// uninitialized data, and heap).\n\tDataSize uint64\n\t// Maximum size of the process stack in bytes.\n\tStackSize uint64\n\t// Maximum size of a core file.\n\tCoreFileSize uint64\n\t// Limit of the process's resident set in pages.\n\tResidentSet uint64\n\t// Maximum number of processes that can be created for the real user ID of\n\t// the calling process.\n\tProcesses uint64\n\t// Value one greater than the maximum file descriptor number that can be\n\t// opened by this process.\n\tOpenFiles uint64\n\t// Maximum number of bytes of memory that may be locked into RAM.\n\tLockedMemory uint64\n\t// Maximum size of the process's virtual memory address space in bytes.\n\tAddressSpace uint64\n\t// Limit on the combined number of flock(2) locks and fcntl(2) leases that\n\t// this process may establish.\n\tFileLocks uint64\n\t// Limit of signals that may be queued for the real user ID of the calling\n\t// process.\n\tPendingSignals uint64\n\t// Limit on the number of bytes that can be allocated for POSIX message\n\t// queues for the real user ID of the calling process.\n\tMsqqueueSize uint64\n\t// Limit of the nice priority set using setpriority(2) or nice(2).\n\tNicePriority uint64\n\t// Limit of the real-time priority set using sched_setscheduler(2) or\n\t// sched_setparam(2).\n\tRealtimePriority uint64\n\t// Limit (in microseconds) on the amount of CPU time that a process\n\t// scheduled under a real-time scheduling policy may consume without making\n\t// a blocking system call.\n\tRealtimeTimeout uint64\n}\n\nconst (\n\tlimitsFields    = 4\n\tlimitsUnlimited = \"unlimited\"\n)\n\nvar (\n\tlimitsMatch = regexp.MustCompile(`(Max \\w+\\s{0,1}?\\w*\\s{0,1}\\w*)\\s{2,}(\\w+)\\s+(\\w+)`)\n)\n\n// NewLimits returns the current soft limits of the process.\n//\n// Deprecated: Use p.Limits() instead.\nfunc (p Proc) NewLimits() (ProcLimits, error) {\n\treturn p.Limits()\n}\n\n// Limits returns the current soft limits of the process.\nfunc (p Proc) Limits() (ProcLimits, error) {\n\tf, err := os.Open(p.path(\"limits\"))\n\tif err != nil {\n\t\treturn ProcLimits{}, err\n\t}\n\tdefer f.Close()\n\n\tvar (\n\t\tl = ProcLimits{}\n\t\ts = bufio.NewScanner(f)\n\t)\n\n\ts.Scan() // Skip limits header\n\n\tfor s.Scan() {\n\t\t//fields := limitsMatch.Split(s.Text(), limitsFields)\n\t\tfields := limitsMatch.FindStringSubmatch(s.Text())\n\t\tif len(fields) != limitsFields {\n\t\t\treturn ProcLimits{}, fmt.Errorf(\"couldn't parse %q line %q\", f.Name(), s.Text())\n\t\t}\n\n\t\tswitch fields[1] {\n\t\tcase \"Max cpu time\":\n\t\t\tl.CPUTime, err = parseUint(fields[2])\n\t\tcase \"Max file size\":\n\t\t\tl.FileSize, err = parseUint(fields[2])\n\t\tcase \"Max data size\":\n\t\t\tl.DataSize, err = parseUint(fields[2])\n\t\tcase \"Max stack size\":\n\t\t\tl.StackSize, err = parseUint(fields[2])\n\t\tcase \"Max core file size\":\n\t\t\tl.CoreFileSize, err = parseUint(fields[2])\n\t\tcase \"Max resident set\":\n\t\t\tl.ResidentSet, err = parseUint(fields[2])\n\t\tcase \"Max processes\":\n\t\t\tl.Processes, err = parseUint(fields[2])\n\t\tcase \"Max open files\":\n\t\t\tl.OpenFiles, err = parseUint(fields[2])\n\t\tcase \"Max locked memory\":\n\t\t\tl.LockedMemory, err = parseUint(fields[2])\n\t\tcase \"Max address space\":\n\t\t\tl.AddressSpace, err = parseUint(fields[2])\n\t\tcase \"Max file locks\":\n\t\t\tl.FileLocks, err = parseUint(fields[2])\n\t\tcase \"Max pending signals\":\n\t\t\tl.PendingSignals, err = parseUint(fields[2])\n\t\tcase \"Max msgqueue size\":\n\t\t\tl.MsqqueueSize, err = parseUint(fields[2])\n\t\tcase \"Max nice priority\":\n\t\t\tl.NicePriority, err = parseUint(fields[2])\n\t\tcase \"Max realtime priority\":\n\t\t\tl.RealtimePriority, err = parseUint(fields[2])\n\t\tcase \"Max realtime timeout\":\n\t\t\tl.RealtimeTimeout, err = parseUint(fields[2])\n\t\t}\n\t\tif err != nil {\n\t\t\treturn ProcLimits{}, err\n\t\t}\n\t}\n\n\treturn l, s.Err()\n}\n\nfunc parseUint(s string) (uint64, error) {\n\tif s == limitsUnlimited {\n\t\treturn 18446744073709551615, nil\n\t}\n\ti, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"couldn't parse value %q: %w\", s, err)\n\t}\n\treturn i, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_maps.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) && !js\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n// +build !js\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// ProcMapPermissions contains permission settings read from `/proc/[pid]/maps`.\ntype ProcMapPermissions struct {\n\t// mapping has the [R]ead flag set\n\tRead bool\n\t// mapping has the [W]rite flag set\n\tWrite bool\n\t// mapping has the [X]ecutable flag set\n\tExecute bool\n\t// mapping has the [S]hared flag set\n\tShared bool\n\t// mapping is marked as [P]rivate (copy on write)\n\tPrivate bool\n}\n\n// ProcMap contains the process memory-mappings of the process\n// read from `/proc/[pid]/maps`.\ntype ProcMap struct {\n\t// The start address of current mapping.\n\tStartAddr uintptr\n\t// The end address of the current mapping\n\tEndAddr uintptr\n\t// The permissions for this mapping\n\tPerms *ProcMapPermissions\n\t// The current offset into the file/fd (e.g., shared libs)\n\tOffset int64\n\t// Device owner of this mapping (major:minor) in Mkdev format.\n\tDev uint64\n\t// The inode of the device above\n\tInode uint64\n\t// The file or psuedofile (or empty==anonymous)\n\tPathname string\n}\n\n// parseDevice parses the device token of a line and converts it to a dev_t\n// (mkdev) like structure.\nfunc parseDevice(s string) (uint64, error) {\n\ttoks := strings.Split(s, \":\")\n\tif len(toks) < 2 {\n\t\treturn 0, fmt.Errorf(\"unexpected number of fields\")\n\t}\n\n\tmajor, err := strconv.ParseUint(toks[0], 16, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tminor, err := strconv.ParseUint(toks[1], 16, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn unix.Mkdev(uint32(major), uint32(minor)), nil\n}\n\n// parseAddress converts a hex-string to a uintptr.\nfunc parseAddress(s string) (uintptr, error) {\n\ta, err := strconv.ParseUint(s, 16, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn uintptr(a), nil\n}\n\n// parseAddresses parses the start-end address.\nfunc parseAddresses(s string) (uintptr, uintptr, error) {\n\ttoks := strings.Split(s, \"-\")\n\tif len(toks) < 2 {\n\t\treturn 0, 0, fmt.Errorf(\"invalid address\")\n\t}\n\n\tsaddr, err := parseAddress(toks[0])\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\n\teaddr, err := parseAddress(toks[1])\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\n\treturn saddr, eaddr, nil\n}\n\n// parsePermissions parses a token and returns any that are set.\nfunc parsePermissions(s string) (*ProcMapPermissions, error) {\n\tif len(s) < 4 {\n\t\treturn nil, fmt.Errorf(\"invalid permissions token\")\n\t}\n\n\tperms := ProcMapPermissions{}\n\tfor _, ch := range s {\n\t\tswitch ch {\n\t\tcase 'r':\n\t\t\tperms.Read = true\n\t\tcase 'w':\n\t\t\tperms.Write = true\n\t\tcase 'x':\n\t\t\tperms.Execute = true\n\t\tcase 'p':\n\t\t\tperms.Private = true\n\t\tcase 's':\n\t\t\tperms.Shared = true\n\t\t}\n\t}\n\n\treturn &perms, nil\n}\n\n// parseProcMap will attempt to parse a single line within a proc/[pid]/maps\n// buffer.\nfunc parseProcMap(text string) (*ProcMap, error) {\n\tfields := strings.Fields(text)\n\tif len(fields) < 5 {\n\t\treturn nil, fmt.Errorf(\"truncated procmap entry\")\n\t}\n\n\tsaddr, eaddr, err := parseAddresses(fields[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tperms, err := parsePermissions(fields[1])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toffset, err := strconv.ParseInt(fields[2], 16, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdevice, err := parseDevice(fields[3])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinode, err := strconv.ParseUint(fields[4], 10, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpathname := \"\"\n\n\tif len(fields) >= 5 {\n\t\tpathname = strings.Join(fields[5:], \" \")\n\t}\n\n\treturn &ProcMap{\n\t\tStartAddr: saddr,\n\t\tEndAddr:   eaddr,\n\t\tPerms:     perms,\n\t\tOffset:    offset,\n\t\tDev:       device,\n\t\tInode:     inode,\n\t\tPathname:  pathname,\n\t}, nil\n}\n\n// ProcMaps reads from /proc/[pid]/maps to get the memory-mappings of the\n// process.\nfunc (p Proc) ProcMaps() ([]*ProcMap, error) {\n\tfile, err := os.Open(p.path(\"maps\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\n\tmaps := []*ProcMap{}\n\tscan := bufio.NewScanner(file)\n\n\tfor scan.Scan() {\n\t\tm, err := parseProcMap(scan.Text())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmaps = append(maps, m)\n\t}\n\n\treturn maps, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_netstat.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// ProcNetstat models the content of /proc/<pid>/net/netstat.\ntype ProcNetstat struct {\n\t// The process ID.\n\tPID int\n\tTcpExt\n\tIpExt\n}\n\ntype TcpExt struct { // nolint:revive\n\tSyncookiesSent            *float64\n\tSyncookiesRecv            *float64\n\tSyncookiesFailed          *float64\n\tEmbryonicRsts             *float64\n\tPruneCalled               *float64\n\tRcvPruned                 *float64\n\tOfoPruned                 *float64\n\tOutOfWindowIcmps          *float64\n\tLockDroppedIcmps          *float64\n\tArpFilter                 *float64\n\tTW                        *float64\n\tTWRecycled                *float64\n\tTWKilled                  *float64\n\tPAWSActive                *float64\n\tPAWSEstab                 *float64\n\tDelayedACKs               *float64\n\tDelayedACKLocked          *float64\n\tDelayedACKLost            *float64\n\tListenOverflows           *float64\n\tListenDrops               *float64\n\tTCPHPHits                 *float64\n\tTCPPureAcks               *float64\n\tTCPHPAcks                 *float64\n\tTCPRenoRecovery           *float64\n\tTCPSackRecovery           *float64\n\tTCPSACKReneging           *float64\n\tTCPSACKReorder            *float64\n\tTCPRenoReorder            *float64\n\tTCPTSReorder              *float64\n\tTCPFullUndo               *float64\n\tTCPPartialUndo            *float64\n\tTCPDSACKUndo              *float64\n\tTCPLossUndo               *float64\n\tTCPLostRetransmit         *float64\n\tTCPRenoFailures           *float64\n\tTCPSackFailures           *float64\n\tTCPLossFailures           *float64\n\tTCPFastRetrans            *float64\n\tTCPSlowStartRetrans       *float64\n\tTCPTimeouts               *float64\n\tTCPLossProbes             *float64\n\tTCPLossProbeRecovery      *float64\n\tTCPRenoRecoveryFail       *float64\n\tTCPSackRecoveryFail       *float64\n\tTCPRcvCollapsed           *float64\n\tTCPDSACKOldSent           *float64\n\tTCPDSACKOfoSent           *float64\n\tTCPDSACKRecv              *float64\n\tTCPDSACKOfoRecv           *float64\n\tTCPAbortOnData            *float64\n\tTCPAbortOnClose           *float64\n\tTCPAbortOnMemory          *float64\n\tTCPAbortOnTimeout         *float64\n\tTCPAbortOnLinger          *float64\n\tTCPAbortFailed            *float64\n\tTCPMemoryPressures        *float64\n\tTCPMemoryPressuresChrono  *float64\n\tTCPSACKDiscard            *float64\n\tTCPDSACKIgnoredOld        *float64\n\tTCPDSACKIgnoredNoUndo     *float64\n\tTCPSpuriousRTOs           *float64\n\tTCPMD5NotFound            *float64\n\tTCPMD5Unexpected          *float64\n\tTCPMD5Failure             *float64\n\tTCPSackShifted            *float64\n\tTCPSackMerged             *float64\n\tTCPSackShiftFallback      *float64\n\tTCPBacklogDrop            *float64\n\tPFMemallocDrop            *float64\n\tTCPMinTTLDrop             *float64\n\tTCPDeferAcceptDrop        *float64\n\tIPReversePathFilter       *float64\n\tTCPTimeWaitOverflow       *float64\n\tTCPReqQFullDoCookies      *float64\n\tTCPReqQFullDrop           *float64\n\tTCPRetransFail            *float64\n\tTCPRcvCoalesce            *float64\n\tTCPRcvQDrop               *float64\n\tTCPOFOQueue               *float64\n\tTCPOFODrop                *float64\n\tTCPOFOMerge               *float64\n\tTCPChallengeACK           *float64\n\tTCPSYNChallenge           *float64\n\tTCPFastOpenActive         *float64\n\tTCPFastOpenActiveFail     *float64\n\tTCPFastOpenPassive        *float64\n\tTCPFastOpenPassiveFail    *float64\n\tTCPFastOpenListenOverflow *float64\n\tTCPFastOpenCookieReqd     *float64\n\tTCPFastOpenBlackhole      *float64\n\tTCPSpuriousRtxHostQueues  *float64\n\tBusyPollRxPackets         *float64\n\tTCPAutoCorking            *float64\n\tTCPFromZeroWindowAdv      *float64\n\tTCPToZeroWindowAdv        *float64\n\tTCPWantZeroWindowAdv      *float64\n\tTCPSynRetrans             *float64\n\tTCPOrigDataSent           *float64\n\tTCPHystartTrainDetect     *float64\n\tTCPHystartTrainCwnd       *float64\n\tTCPHystartDelayDetect     *float64\n\tTCPHystartDelayCwnd       *float64\n\tTCPACKSkippedSynRecv      *float64\n\tTCPACKSkippedPAWS         *float64\n\tTCPACKSkippedSeq          *float64\n\tTCPACKSkippedFinWait2     *float64\n\tTCPACKSkippedTimeWait     *float64\n\tTCPACKSkippedChallenge    *float64\n\tTCPWinProbe               *float64\n\tTCPKeepAlive              *float64\n\tTCPMTUPFail               *float64\n\tTCPMTUPSuccess            *float64\n\tTCPWqueueTooBig           *float64\n}\n\ntype IpExt struct { // nolint:revive\n\tInNoRoutes      *float64\n\tInTruncatedPkts *float64\n\tInMcastPkts     *float64\n\tOutMcastPkts    *float64\n\tInBcastPkts     *float64\n\tOutBcastPkts    *float64\n\tInOctets        *float64\n\tOutOctets       *float64\n\tInMcastOctets   *float64\n\tOutMcastOctets  *float64\n\tInBcastOctets   *float64\n\tOutBcastOctets  *float64\n\tInCsumErrors    *float64\n\tInNoECTPkts     *float64\n\tInECT1Pkts      *float64\n\tInECT0Pkts      *float64\n\tInCEPkts        *float64\n\tReasmOverlaps   *float64\n}\n\nfunc (p Proc) Netstat() (ProcNetstat, error) {\n\tfilename := p.path(\"net/netstat\")\n\tdata, err := util.ReadFileNoStat(filename)\n\tif err != nil {\n\t\treturn ProcNetstat{PID: p.PID}, err\n\t}\n\tprocNetstat, err := parseProcNetstat(bytes.NewReader(data), filename)\n\tprocNetstat.PID = p.PID\n\treturn procNetstat, err\n}\n\n// parseProcNetstat parses the metrics from proc/<pid>/net/netstat file\n// and returns a ProcNetstat structure.\nfunc parseProcNetstat(r io.Reader, fileName string) (ProcNetstat, error) {\n\tvar (\n\t\tscanner     = bufio.NewScanner(r)\n\t\tprocNetstat = ProcNetstat{}\n\t)\n\n\tfor scanner.Scan() {\n\t\tnameParts := strings.Split(scanner.Text(), \" \")\n\t\tscanner.Scan()\n\t\tvalueParts := strings.Split(scanner.Text(), \" \")\n\t\t// Remove trailing :.\n\t\tprotocol := strings.TrimSuffix(nameParts[0], \":\")\n\t\tif len(nameParts) != len(valueParts) {\n\t\t\treturn procNetstat, fmt.Errorf(\"mismatch field count mismatch in %s: %s\",\n\t\t\t\tfileName, protocol)\n\t\t}\n\t\tfor i := 1; i < len(nameParts); i++ {\n\t\t\tvalue, err := strconv.ParseFloat(valueParts[i], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn procNetstat, err\n\t\t\t}\n\t\t\tkey := nameParts[i]\n\n\t\t\tswitch protocol {\n\t\t\tcase \"TcpExt\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"SyncookiesSent\":\n\t\t\t\t\tprocNetstat.TcpExt.SyncookiesSent = &value\n\t\t\t\tcase \"SyncookiesRecv\":\n\t\t\t\t\tprocNetstat.TcpExt.SyncookiesRecv = &value\n\t\t\t\tcase \"SyncookiesFailed\":\n\t\t\t\t\tprocNetstat.TcpExt.SyncookiesFailed = &value\n\t\t\t\tcase \"EmbryonicRsts\":\n\t\t\t\t\tprocNetstat.TcpExt.EmbryonicRsts = &value\n\t\t\t\tcase \"PruneCalled\":\n\t\t\t\t\tprocNetstat.TcpExt.PruneCalled = &value\n\t\t\t\tcase \"RcvPruned\":\n\t\t\t\t\tprocNetstat.TcpExt.RcvPruned = &value\n\t\t\t\tcase \"OfoPruned\":\n\t\t\t\t\tprocNetstat.TcpExt.OfoPruned = &value\n\t\t\t\tcase \"OutOfWindowIcmps\":\n\t\t\t\t\tprocNetstat.TcpExt.OutOfWindowIcmps = &value\n\t\t\t\tcase \"LockDroppedIcmps\":\n\t\t\t\t\tprocNetstat.TcpExt.LockDroppedIcmps = &value\n\t\t\t\tcase \"ArpFilter\":\n\t\t\t\t\tprocNetstat.TcpExt.ArpFilter = &value\n\t\t\t\tcase \"TW\":\n\t\t\t\t\tprocNetstat.TcpExt.TW = &value\n\t\t\t\tcase \"TWRecycled\":\n\t\t\t\t\tprocNetstat.TcpExt.TWRecycled = &value\n\t\t\t\tcase \"TWKilled\":\n\t\t\t\t\tprocNetstat.TcpExt.TWKilled = &value\n\t\t\t\tcase \"PAWSActive\":\n\t\t\t\t\tprocNetstat.TcpExt.PAWSActive = &value\n\t\t\t\tcase \"PAWSEstab\":\n\t\t\t\t\tprocNetstat.TcpExt.PAWSEstab = &value\n\t\t\t\tcase \"DelayedACKs\":\n\t\t\t\t\tprocNetstat.TcpExt.DelayedACKs = &value\n\t\t\t\tcase \"DelayedACKLocked\":\n\t\t\t\t\tprocNetstat.TcpExt.DelayedACKLocked = &value\n\t\t\t\tcase \"DelayedACKLost\":\n\t\t\t\t\tprocNetstat.TcpExt.DelayedACKLost = &value\n\t\t\t\tcase \"ListenOverflows\":\n\t\t\t\t\tprocNetstat.TcpExt.ListenOverflows = &value\n\t\t\t\tcase \"ListenDrops\":\n\t\t\t\t\tprocNetstat.TcpExt.ListenDrops = &value\n\t\t\t\tcase \"TCPHPHits\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHPHits = &value\n\t\t\t\tcase \"TCPPureAcks\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPPureAcks = &value\n\t\t\t\tcase \"TCPHPAcks\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHPAcks = &value\n\t\t\t\tcase \"TCPRenoRecovery\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRenoRecovery = &value\n\t\t\t\tcase \"TCPSackRecovery\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSackRecovery = &value\n\t\t\t\tcase \"TCPSACKReneging\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSACKReneging = &value\n\t\t\t\tcase \"TCPSACKReorder\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSACKReorder = &value\n\t\t\t\tcase \"TCPRenoReorder\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRenoReorder = &value\n\t\t\t\tcase \"TCPTSReorder\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPTSReorder = &value\n\t\t\t\tcase \"TCPFullUndo\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFullUndo = &value\n\t\t\t\tcase \"TCPPartialUndo\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPPartialUndo = &value\n\t\t\t\tcase \"TCPDSACKUndo\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDSACKUndo = &value\n\t\t\t\tcase \"TCPLossUndo\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPLossUndo = &value\n\t\t\t\tcase \"TCPLostRetransmit\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPLostRetransmit = &value\n\t\t\t\tcase \"TCPRenoFailures\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRenoFailures = &value\n\t\t\t\tcase \"TCPSackFailures\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSackFailures = &value\n\t\t\t\tcase \"TCPLossFailures\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPLossFailures = &value\n\t\t\t\tcase \"TCPFastRetrans\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastRetrans = &value\n\t\t\t\tcase \"TCPSlowStartRetrans\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSlowStartRetrans = &value\n\t\t\t\tcase \"TCPTimeouts\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPTimeouts = &value\n\t\t\t\tcase \"TCPLossProbes\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPLossProbes = &value\n\t\t\t\tcase \"TCPLossProbeRecovery\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPLossProbeRecovery = &value\n\t\t\t\tcase \"TCPRenoRecoveryFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRenoRecoveryFail = &value\n\t\t\t\tcase \"TCPSackRecoveryFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSackRecoveryFail = &value\n\t\t\t\tcase \"TCPRcvCollapsed\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRcvCollapsed = &value\n\t\t\t\tcase \"TCPDSACKOldSent\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDSACKOldSent = &value\n\t\t\t\tcase \"TCPDSACKOfoSent\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDSACKOfoSent = &value\n\t\t\t\tcase \"TCPDSACKRecv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDSACKRecv = &value\n\t\t\t\tcase \"TCPDSACKOfoRecv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDSACKOfoRecv = &value\n\t\t\t\tcase \"TCPAbortOnData\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPAbortOnData = &value\n\t\t\t\tcase \"TCPAbortOnClose\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPAbortOnClose = &value\n\t\t\t\tcase \"TCPDeferAcceptDrop\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPDeferAcceptDrop = &value\n\t\t\t\tcase \"IPReversePathFilter\":\n\t\t\t\t\tprocNetstat.TcpExt.IPReversePathFilter = &value\n\t\t\t\tcase \"TCPTimeWaitOverflow\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPTimeWaitOverflow = &value\n\t\t\t\tcase \"TCPReqQFullDoCookies\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPReqQFullDoCookies = &value\n\t\t\t\tcase \"TCPReqQFullDrop\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPReqQFullDrop = &value\n\t\t\t\tcase \"TCPRetransFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRetransFail = &value\n\t\t\t\tcase \"TCPRcvCoalesce\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRcvCoalesce = &value\n\t\t\t\tcase \"TCPRcvQDrop\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPRcvQDrop = &value\n\t\t\t\tcase \"TCPOFOQueue\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPOFOQueue = &value\n\t\t\t\tcase \"TCPOFODrop\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPOFODrop = &value\n\t\t\t\tcase \"TCPOFOMerge\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPOFOMerge = &value\n\t\t\t\tcase \"TCPChallengeACK\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPChallengeACK = &value\n\t\t\t\tcase \"TCPSYNChallenge\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSYNChallenge = &value\n\t\t\t\tcase \"TCPFastOpenActive\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenActive = &value\n\t\t\t\tcase \"TCPFastOpenActiveFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenActiveFail = &value\n\t\t\t\tcase \"TCPFastOpenPassive\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenPassive = &value\n\t\t\t\tcase \"TCPFastOpenPassiveFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenPassiveFail = &value\n\t\t\t\tcase \"TCPFastOpenListenOverflow\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenListenOverflow = &value\n\t\t\t\tcase \"TCPFastOpenCookieReqd\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenCookieReqd = &value\n\t\t\t\tcase \"TCPFastOpenBlackhole\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFastOpenBlackhole = &value\n\t\t\t\tcase \"TCPSpuriousRtxHostQueues\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSpuriousRtxHostQueues = &value\n\t\t\t\tcase \"BusyPollRxPackets\":\n\t\t\t\t\tprocNetstat.TcpExt.BusyPollRxPackets = &value\n\t\t\t\tcase \"TCPAutoCorking\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPAutoCorking = &value\n\t\t\t\tcase \"TCPFromZeroWindowAdv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPFromZeroWindowAdv = &value\n\t\t\t\tcase \"TCPToZeroWindowAdv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPToZeroWindowAdv = &value\n\t\t\t\tcase \"TCPWantZeroWindowAdv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPWantZeroWindowAdv = &value\n\t\t\t\tcase \"TCPSynRetrans\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPSynRetrans = &value\n\t\t\t\tcase \"TCPOrigDataSent\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPOrigDataSent = &value\n\t\t\t\tcase \"TCPHystartTrainDetect\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHystartTrainDetect = &value\n\t\t\t\tcase \"TCPHystartTrainCwnd\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHystartTrainCwnd = &value\n\t\t\t\tcase \"TCPHystartDelayDetect\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHystartDelayDetect = &value\n\t\t\t\tcase \"TCPHystartDelayCwnd\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPHystartDelayCwnd = &value\n\t\t\t\tcase \"TCPACKSkippedSynRecv\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedSynRecv = &value\n\t\t\t\tcase \"TCPACKSkippedPAWS\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedPAWS = &value\n\t\t\t\tcase \"TCPACKSkippedSeq\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedSeq = &value\n\t\t\t\tcase \"TCPACKSkippedFinWait2\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedFinWait2 = &value\n\t\t\t\tcase \"TCPACKSkippedTimeWait\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedTimeWait = &value\n\t\t\t\tcase \"TCPACKSkippedChallenge\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPACKSkippedChallenge = &value\n\t\t\t\tcase \"TCPWinProbe\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPWinProbe = &value\n\t\t\t\tcase \"TCPKeepAlive\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPKeepAlive = &value\n\t\t\t\tcase \"TCPMTUPFail\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPMTUPFail = &value\n\t\t\t\tcase \"TCPMTUPSuccess\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPMTUPSuccess = &value\n\t\t\t\tcase \"TCPWqueueTooBig\":\n\t\t\t\t\tprocNetstat.TcpExt.TCPWqueueTooBig = &value\n\t\t\t\t}\n\t\t\tcase \"IpExt\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InNoRoutes\":\n\t\t\t\t\tprocNetstat.IpExt.InNoRoutes = &value\n\t\t\t\tcase \"InTruncatedPkts\":\n\t\t\t\t\tprocNetstat.IpExt.InTruncatedPkts = &value\n\t\t\t\tcase \"InMcastPkts\":\n\t\t\t\t\tprocNetstat.IpExt.InMcastPkts = &value\n\t\t\t\tcase \"OutMcastPkts\":\n\t\t\t\t\tprocNetstat.IpExt.OutMcastPkts = &value\n\t\t\t\tcase \"InBcastPkts\":\n\t\t\t\t\tprocNetstat.IpExt.InBcastPkts = &value\n\t\t\t\tcase \"OutBcastPkts\":\n\t\t\t\t\tprocNetstat.IpExt.OutBcastPkts = &value\n\t\t\t\tcase \"InOctets\":\n\t\t\t\t\tprocNetstat.IpExt.InOctets = &value\n\t\t\t\tcase \"OutOctets\":\n\t\t\t\t\tprocNetstat.IpExt.OutOctets = &value\n\t\t\t\tcase \"InMcastOctets\":\n\t\t\t\t\tprocNetstat.IpExt.InMcastOctets = &value\n\t\t\t\tcase \"OutMcastOctets\":\n\t\t\t\t\tprocNetstat.IpExt.OutMcastOctets = &value\n\t\t\t\tcase \"InBcastOctets\":\n\t\t\t\t\tprocNetstat.IpExt.InBcastOctets = &value\n\t\t\t\tcase \"OutBcastOctets\":\n\t\t\t\t\tprocNetstat.IpExt.OutBcastOctets = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocNetstat.IpExt.InCsumErrors = &value\n\t\t\t\tcase \"InNoECTPkts\":\n\t\t\t\t\tprocNetstat.IpExt.InNoECTPkts = &value\n\t\t\t\tcase \"InECT1Pkts\":\n\t\t\t\t\tprocNetstat.IpExt.InECT1Pkts = &value\n\t\t\t\tcase \"InECT0Pkts\":\n\t\t\t\t\tprocNetstat.IpExt.InECT0Pkts = &value\n\t\t\t\tcase \"InCEPkts\":\n\t\t\t\t\tprocNetstat.IpExt.InCEPkts = &value\n\t\t\t\tcase \"ReasmOverlaps\":\n\t\t\t\t\tprocNetstat.IpExt.ReasmOverlaps = &value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn procNetstat, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_ns.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Namespace represents a single namespace of a process.\ntype Namespace struct {\n\tType  string // Namespace type.\n\tInode uint32 // Inode number of the namespace. If two processes are in the same namespace their inodes will match.\n}\n\n// Namespaces contains all of the namespaces that the process is contained in.\ntype Namespaces map[string]Namespace\n\n// Namespaces reads from /proc/<pid>/ns/* to get the namespaces of which the\n// process is a member.\nfunc (p Proc) Namespaces() (Namespaces, error) {\n\td, err := os.Open(p.path(\"ns\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer d.Close()\n\n\tnames, err := d.Readdirnames(-1)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read contents of ns dir: %w\", err)\n\t}\n\n\tns := make(Namespaces, len(names))\n\tfor _, name := range names {\n\t\ttarget, err := os.Readlink(p.path(\"ns\", name))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfields := strings.SplitN(target, \":\", 2)\n\t\tif len(fields) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse namespace type and inode from %q\", target)\n\t\t}\n\n\t\ttyp := fields[0]\n\t\tinode, err := strconv.ParseUint(strings.Trim(fields[1], \"[]\"), 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse inode from %q: %w\", fields[1], err)\n\t\t}\n\n\t\tns[name] = Namespace{typ, uint32(inode)}\n\t}\n\n\treturn ns, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_psi.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\n// The PSI / pressure interface is described at\n//   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/accounting/psi.txt\n// Each resource (cpu, io, memory, ...) is exposed as a single file.\n// Each file may contain up to two lines, one for \"some\" pressure and one for \"full\" pressure.\n// Each line contains several averages (over n seconds) and a total in µs.\n//\n// Example io pressure file:\n// > some avg10=0.06 avg60=0.21 avg300=0.99 total=8537362\n// > full avg10=0.00 avg60=0.13 avg300=0.96 total=8183134\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\nconst lineFormat = \"avg10=%f avg60=%f avg300=%f total=%d\"\n\n// PSILine is a single line of values as returned by `/proc/pressure/*`.\n//\n// The Avg entries are averages over n seconds, as a percentage.\n// The Total line is in microseconds.\ntype PSILine struct {\n\tAvg10  float64\n\tAvg60  float64\n\tAvg300 float64\n\tTotal  uint64\n}\n\n// PSIStats represent pressure stall information from /proc/pressure/*\n//\n// \"Some\" indicates the share of time in which at least some tasks are stalled.\n// \"Full\" indicates the share of time in which all non-idle tasks are stalled simultaneously.\ntype PSIStats struct {\n\tSome *PSILine\n\tFull *PSILine\n}\n\n// PSIStatsForResource reads pressure stall information for the specified\n// resource from /proc/pressure/<resource>. At time of writing this can be\n// either \"cpu\", \"memory\" or \"io\".\nfunc (fs FS) PSIStatsForResource(resource string) (PSIStats, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(fmt.Sprintf(\"%s/%s\", \"pressure\", resource)))\n\tif err != nil {\n\t\treturn PSIStats{}, fmt.Errorf(\"psi_stats: unavailable for %q: %w\", resource, err)\n\t}\n\n\treturn parsePSIStats(resource, bytes.NewReader(data))\n}\n\n// parsePSIStats parses the specified file for pressure stall information.\nfunc parsePSIStats(resource string, r io.Reader) (PSIStats, error) {\n\tpsiStats := PSIStats{}\n\n\tscanner := bufio.NewScanner(r)\n\tfor scanner.Scan() {\n\t\tl := scanner.Text()\n\t\tprefix := strings.Split(l, \" \")[0]\n\t\tswitch prefix {\n\t\tcase \"some\":\n\t\t\tpsi := PSILine{}\n\t\t\t_, err := fmt.Sscanf(l, fmt.Sprintf(\"some %s\", lineFormat), &psi.Avg10, &psi.Avg60, &psi.Avg300, &psi.Total)\n\t\t\tif err != nil {\n\t\t\t\treturn PSIStats{}, err\n\t\t\t}\n\t\t\tpsiStats.Some = &psi\n\t\tcase \"full\":\n\t\t\tpsi := PSILine{}\n\t\t\t_, err := fmt.Sscanf(l, fmt.Sprintf(\"full %s\", lineFormat), &psi.Avg10, &psi.Avg60, &psi.Avg300, &psi.Total)\n\t\t\tif err != nil {\n\t\t\t\treturn PSIStats{}, err\n\t\t\t}\n\t\t\tpsiStats.Full = &psi\n\t\tdefault:\n\t\t\t// If we encounter a line with an unknown prefix, ignore it and move on\n\t\t\t// Should new measurement types be added in the future we'll simply ignore them instead\n\t\t\t// of erroring on retrieval\n\t\t\tcontinue\n\t\t}\n\t}\n\n\treturn psiStats, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_smaps.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows\n// +build !windows\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\nvar (\n\t// match the header line before each mapped zone in `/proc/pid/smaps`.\n\tprocSMapsHeaderLine = regexp.MustCompile(`^[a-f0-9].*$`)\n)\n\ntype ProcSMapsRollup struct {\n\t// Amount of the mapping that is currently resident in RAM.\n\tRss uint64\n\t// Process's proportional share of this mapping.\n\tPss uint64\n\t// Size in bytes of clean shared pages.\n\tSharedClean uint64\n\t// Size in bytes of dirty shared pages.\n\tSharedDirty uint64\n\t// Size in bytes of clean private pages.\n\tPrivateClean uint64\n\t// Size in bytes of dirty private pages.\n\tPrivateDirty uint64\n\t// Amount of memory currently marked as referenced or accessed.\n\tReferenced uint64\n\t// Amount of memory that does not belong to any file.\n\tAnonymous uint64\n\t// Amount would-be-anonymous memory currently on swap.\n\tSwap uint64\n\t// Process's proportional memory on swap.\n\tSwapPss uint64\n}\n\n// ProcSMapsRollup reads from /proc/[pid]/smaps_rollup to get summed memory information of the\n// process.\n//\n// If smaps_rollup does not exists (require kernel >= 4.15), the content of /proc/pid/smaps will\n// we read and summed.\nfunc (p Proc) ProcSMapsRollup() (ProcSMapsRollup, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"smaps_rollup\"))\n\tif err != nil && os.IsNotExist(err) {\n\t\treturn p.procSMapsRollupManual()\n\t}\n\tif err != nil {\n\t\treturn ProcSMapsRollup{}, err\n\t}\n\n\tlines := strings.Split(string(data), \"\\n\")\n\tsmaps := ProcSMapsRollup{}\n\n\t// skip first line which don't contains information we need\n\tlines = lines[1:]\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := smaps.parseLine(line); err != nil {\n\t\t\treturn ProcSMapsRollup{}, err\n\t\t}\n\t}\n\n\treturn smaps, nil\n}\n\n// Read /proc/pid/smaps and do the roll-up in Go code.\nfunc (p Proc) procSMapsRollupManual() (ProcSMapsRollup, error) {\n\tfile, err := os.Open(p.path(\"smaps\"))\n\tif err != nil {\n\t\treturn ProcSMapsRollup{}, err\n\t}\n\tdefer file.Close()\n\n\tsmaps := ProcSMapsRollup{}\n\tscan := bufio.NewScanner(file)\n\n\tfor scan.Scan() {\n\t\tline := scan.Text()\n\n\t\tif procSMapsHeaderLine.MatchString(line) {\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := smaps.parseLine(line); err != nil {\n\t\t\treturn ProcSMapsRollup{}, err\n\t\t}\n\t}\n\n\treturn smaps, nil\n}\n\nfunc (s *ProcSMapsRollup) parseLine(line string) error {\n\tkv := strings.SplitN(line, \":\", 2)\n\tif len(kv) != 2 {\n\t\tfmt.Println(line)\n\t\treturn errors.New(\"invalid net/dev line, missing colon\")\n\t}\n\n\tk := kv[0]\n\tif k == \"VmFlags\" {\n\t\treturn nil\n\t}\n\n\tv := strings.TrimSpace(kv[1])\n\tv = strings.TrimRight(v, \" kB\")\n\n\tvKBytes, err := strconv.ParseUint(v, 10, 64)\n\tif err != nil {\n\t\treturn err\n\t}\n\tvBytes := vKBytes * 1024\n\n\ts.addValue(k, v, vKBytes, vBytes)\n\n\treturn nil\n}\n\nfunc (s *ProcSMapsRollup) addValue(k string, vString string, vUint uint64, vUintBytes uint64) {\n\tswitch k {\n\tcase \"Rss\":\n\t\ts.Rss += vUintBytes\n\tcase \"Pss\":\n\t\ts.Pss += vUintBytes\n\tcase \"Shared_Clean\":\n\t\ts.SharedClean += vUintBytes\n\tcase \"Shared_Dirty\":\n\t\ts.SharedDirty += vUintBytes\n\tcase \"Private_Clean\":\n\t\ts.PrivateClean += vUintBytes\n\tcase \"Private_Dirty\":\n\t\ts.PrivateDirty += vUintBytes\n\tcase \"Referenced\":\n\t\ts.Referenced += vUintBytes\n\tcase \"Anonymous\":\n\t\ts.Anonymous += vUintBytes\n\tcase \"Swap\":\n\t\ts.Swap += vUintBytes\n\tcase \"SwapPss\":\n\t\ts.SwapPss += vUintBytes\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_snmp.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// ProcSnmp models the content of /proc/<pid>/net/snmp.\ntype ProcSnmp struct {\n\t// The process ID.\n\tPID int\n\tIp\n\tIcmp\n\tIcmpMsg\n\tTcp\n\tUdp\n\tUdpLite\n}\n\ntype Ip struct { // nolint:revive\n\tForwarding      *float64\n\tDefaultTTL      *float64\n\tInReceives      *float64\n\tInHdrErrors     *float64\n\tInAddrErrors    *float64\n\tForwDatagrams   *float64\n\tInUnknownProtos *float64\n\tInDiscards      *float64\n\tInDelivers      *float64\n\tOutRequests     *float64\n\tOutDiscards     *float64\n\tOutNoRoutes     *float64\n\tReasmTimeout    *float64\n\tReasmReqds      *float64\n\tReasmOKs        *float64\n\tReasmFails      *float64\n\tFragOKs         *float64\n\tFragFails       *float64\n\tFragCreates     *float64\n}\n\ntype Icmp struct { // nolint:revive\n\tInMsgs           *float64\n\tInErrors         *float64\n\tInCsumErrors     *float64\n\tInDestUnreachs   *float64\n\tInTimeExcds      *float64\n\tInParmProbs      *float64\n\tInSrcQuenchs     *float64\n\tInRedirects      *float64\n\tInEchos          *float64\n\tInEchoReps       *float64\n\tInTimestamps     *float64\n\tInTimestampReps  *float64\n\tInAddrMasks      *float64\n\tInAddrMaskReps   *float64\n\tOutMsgs          *float64\n\tOutErrors        *float64\n\tOutDestUnreachs  *float64\n\tOutTimeExcds     *float64\n\tOutParmProbs     *float64\n\tOutSrcQuenchs    *float64\n\tOutRedirects     *float64\n\tOutEchos         *float64\n\tOutEchoReps      *float64\n\tOutTimestamps    *float64\n\tOutTimestampReps *float64\n\tOutAddrMasks     *float64\n\tOutAddrMaskReps  *float64\n}\n\ntype IcmpMsg struct {\n\tInType3  *float64\n\tOutType3 *float64\n}\n\ntype Tcp struct { // nolint:revive\n\tRtoAlgorithm *float64\n\tRtoMin       *float64\n\tRtoMax       *float64\n\tMaxConn      *float64\n\tActiveOpens  *float64\n\tPassiveOpens *float64\n\tAttemptFails *float64\n\tEstabResets  *float64\n\tCurrEstab    *float64\n\tInSegs       *float64\n\tOutSegs      *float64\n\tRetransSegs  *float64\n\tInErrs       *float64\n\tOutRsts      *float64\n\tInCsumErrors *float64\n}\n\ntype Udp struct { // nolint:revive\n\tInDatagrams  *float64\n\tNoPorts      *float64\n\tInErrors     *float64\n\tOutDatagrams *float64\n\tRcvbufErrors *float64\n\tSndbufErrors *float64\n\tInCsumErrors *float64\n\tIgnoredMulti *float64\n}\n\ntype UdpLite struct { // nolint:revive\n\tInDatagrams  *float64\n\tNoPorts      *float64\n\tInErrors     *float64\n\tOutDatagrams *float64\n\tRcvbufErrors *float64\n\tSndbufErrors *float64\n\tInCsumErrors *float64\n\tIgnoredMulti *float64\n}\n\nfunc (p Proc) Snmp() (ProcSnmp, error) {\n\tfilename := p.path(\"net/snmp\")\n\tdata, err := util.ReadFileNoStat(filename)\n\tif err != nil {\n\t\treturn ProcSnmp{PID: p.PID}, err\n\t}\n\tprocSnmp, err := parseSnmp(bytes.NewReader(data), filename)\n\tprocSnmp.PID = p.PID\n\treturn procSnmp, err\n}\n\n// parseSnmp parses the metrics from proc/<pid>/net/snmp file\n// and returns a map contains those metrics (e.g. {\"Ip\": {\"Forwarding\": 2}}).\nfunc parseSnmp(r io.Reader, fileName string) (ProcSnmp, error) {\n\tvar (\n\t\tscanner  = bufio.NewScanner(r)\n\t\tprocSnmp = ProcSnmp{}\n\t)\n\n\tfor scanner.Scan() {\n\t\tnameParts := strings.Split(scanner.Text(), \" \")\n\t\tscanner.Scan()\n\t\tvalueParts := strings.Split(scanner.Text(), \" \")\n\t\t// Remove trailing :.\n\t\tprotocol := strings.TrimSuffix(nameParts[0], \":\")\n\t\tif len(nameParts) != len(valueParts) {\n\t\t\treturn procSnmp, fmt.Errorf(\"mismatch field count mismatch in %s: %s\",\n\t\t\t\tfileName, protocol)\n\t\t}\n\t\tfor i := 1; i < len(nameParts); i++ {\n\t\t\tvalue, err := strconv.ParseFloat(valueParts[i], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn procSnmp, err\n\t\t\t}\n\t\t\tkey := nameParts[i]\n\n\t\t\tswitch protocol {\n\t\t\tcase \"Ip\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"Forwarding\":\n\t\t\t\t\tprocSnmp.Ip.Forwarding = &value\n\t\t\t\tcase \"DefaultTTL\":\n\t\t\t\t\tprocSnmp.Ip.DefaultTTL = &value\n\t\t\t\tcase \"InReceives\":\n\t\t\t\t\tprocSnmp.Ip.InReceives = &value\n\t\t\t\tcase \"InHdrErrors\":\n\t\t\t\t\tprocSnmp.Ip.InHdrErrors = &value\n\t\t\t\tcase \"InAddrErrors\":\n\t\t\t\t\tprocSnmp.Ip.InAddrErrors = &value\n\t\t\t\tcase \"ForwDatagrams\":\n\t\t\t\t\tprocSnmp.Ip.ForwDatagrams = &value\n\t\t\t\tcase \"InUnknownProtos\":\n\t\t\t\t\tprocSnmp.Ip.InUnknownProtos = &value\n\t\t\t\tcase \"InDiscards\":\n\t\t\t\t\tprocSnmp.Ip.InDiscards = &value\n\t\t\t\tcase \"InDelivers\":\n\t\t\t\t\tprocSnmp.Ip.InDelivers = &value\n\t\t\t\tcase \"OutRequests\":\n\t\t\t\t\tprocSnmp.Ip.OutRequests = &value\n\t\t\t\tcase \"OutDiscards\":\n\t\t\t\t\tprocSnmp.Ip.OutDiscards = &value\n\t\t\t\tcase \"OutNoRoutes\":\n\t\t\t\t\tprocSnmp.Ip.OutNoRoutes = &value\n\t\t\t\tcase \"ReasmTimeout\":\n\t\t\t\t\tprocSnmp.Ip.ReasmTimeout = &value\n\t\t\t\tcase \"ReasmReqds\":\n\t\t\t\t\tprocSnmp.Ip.ReasmReqds = &value\n\t\t\t\tcase \"ReasmOKs\":\n\t\t\t\t\tprocSnmp.Ip.ReasmOKs = &value\n\t\t\t\tcase \"ReasmFails\":\n\t\t\t\t\tprocSnmp.Ip.ReasmFails = &value\n\t\t\t\tcase \"FragOKs\":\n\t\t\t\t\tprocSnmp.Ip.FragOKs = &value\n\t\t\t\tcase \"FragFails\":\n\t\t\t\t\tprocSnmp.Ip.FragFails = &value\n\t\t\t\tcase \"FragCreates\":\n\t\t\t\t\tprocSnmp.Ip.FragCreates = &value\n\t\t\t\t}\n\t\t\tcase \"Icmp\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InMsgs\":\n\t\t\t\t\tprocSnmp.Icmp.InMsgs = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp.Icmp.InErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp.Icmp.InCsumErrors = &value\n\t\t\t\tcase \"InDestUnreachs\":\n\t\t\t\t\tprocSnmp.Icmp.InDestUnreachs = &value\n\t\t\t\tcase \"InTimeExcds\":\n\t\t\t\t\tprocSnmp.Icmp.InTimeExcds = &value\n\t\t\t\tcase \"InParmProbs\":\n\t\t\t\t\tprocSnmp.Icmp.InParmProbs = &value\n\t\t\t\tcase \"InSrcQuenchs\":\n\t\t\t\t\tprocSnmp.Icmp.InSrcQuenchs = &value\n\t\t\t\tcase \"InRedirects\":\n\t\t\t\t\tprocSnmp.Icmp.InRedirects = &value\n\t\t\t\tcase \"InEchos\":\n\t\t\t\t\tprocSnmp.Icmp.InEchos = &value\n\t\t\t\tcase \"InEchoReps\":\n\t\t\t\t\tprocSnmp.Icmp.InEchoReps = &value\n\t\t\t\tcase \"InTimestamps\":\n\t\t\t\t\tprocSnmp.Icmp.InTimestamps = &value\n\t\t\t\tcase \"InTimestampReps\":\n\t\t\t\t\tprocSnmp.Icmp.InTimestampReps = &value\n\t\t\t\tcase \"InAddrMasks\":\n\t\t\t\t\tprocSnmp.Icmp.InAddrMasks = &value\n\t\t\t\tcase \"InAddrMaskReps\":\n\t\t\t\t\tprocSnmp.Icmp.InAddrMaskReps = &value\n\t\t\t\tcase \"OutMsgs\":\n\t\t\t\t\tprocSnmp.Icmp.OutMsgs = &value\n\t\t\t\tcase \"OutErrors\":\n\t\t\t\t\tprocSnmp.Icmp.OutErrors = &value\n\t\t\t\tcase \"OutDestUnreachs\":\n\t\t\t\t\tprocSnmp.Icmp.OutDestUnreachs = &value\n\t\t\t\tcase \"OutTimeExcds\":\n\t\t\t\t\tprocSnmp.Icmp.OutTimeExcds = &value\n\t\t\t\tcase \"OutParmProbs\":\n\t\t\t\t\tprocSnmp.Icmp.OutParmProbs = &value\n\t\t\t\tcase \"OutSrcQuenchs\":\n\t\t\t\t\tprocSnmp.Icmp.OutSrcQuenchs = &value\n\t\t\t\tcase \"OutRedirects\":\n\t\t\t\t\tprocSnmp.Icmp.OutRedirects = &value\n\t\t\t\tcase \"OutEchos\":\n\t\t\t\t\tprocSnmp.Icmp.OutEchos = &value\n\t\t\t\tcase \"OutEchoReps\":\n\t\t\t\t\tprocSnmp.Icmp.OutEchoReps = &value\n\t\t\t\tcase \"OutTimestamps\":\n\t\t\t\t\tprocSnmp.Icmp.OutTimestamps = &value\n\t\t\t\tcase \"OutTimestampReps\":\n\t\t\t\t\tprocSnmp.Icmp.OutTimestampReps = &value\n\t\t\t\tcase \"OutAddrMasks\":\n\t\t\t\t\tprocSnmp.Icmp.OutAddrMasks = &value\n\t\t\t\tcase \"OutAddrMaskReps\":\n\t\t\t\t\tprocSnmp.Icmp.OutAddrMaskReps = &value\n\t\t\t\t}\n\t\t\tcase \"IcmpMsg\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InType3\":\n\t\t\t\t\tprocSnmp.IcmpMsg.InType3 = &value\n\t\t\t\tcase \"OutType3\":\n\t\t\t\t\tprocSnmp.IcmpMsg.OutType3 = &value\n\t\t\t\t}\n\t\t\tcase \"Tcp\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"RtoAlgorithm\":\n\t\t\t\t\tprocSnmp.Tcp.RtoAlgorithm = &value\n\t\t\t\tcase \"RtoMin\":\n\t\t\t\t\tprocSnmp.Tcp.RtoMin = &value\n\t\t\t\tcase \"RtoMax\":\n\t\t\t\t\tprocSnmp.Tcp.RtoMax = &value\n\t\t\t\tcase \"MaxConn\":\n\t\t\t\t\tprocSnmp.Tcp.MaxConn = &value\n\t\t\t\tcase \"ActiveOpens\":\n\t\t\t\t\tprocSnmp.Tcp.ActiveOpens = &value\n\t\t\t\tcase \"PassiveOpens\":\n\t\t\t\t\tprocSnmp.Tcp.PassiveOpens = &value\n\t\t\t\tcase \"AttemptFails\":\n\t\t\t\t\tprocSnmp.Tcp.AttemptFails = &value\n\t\t\t\tcase \"EstabResets\":\n\t\t\t\t\tprocSnmp.Tcp.EstabResets = &value\n\t\t\t\tcase \"CurrEstab\":\n\t\t\t\t\tprocSnmp.Tcp.CurrEstab = &value\n\t\t\t\tcase \"InSegs\":\n\t\t\t\t\tprocSnmp.Tcp.InSegs = &value\n\t\t\t\tcase \"OutSegs\":\n\t\t\t\t\tprocSnmp.Tcp.OutSegs = &value\n\t\t\t\tcase \"RetransSegs\":\n\t\t\t\t\tprocSnmp.Tcp.RetransSegs = &value\n\t\t\t\tcase \"InErrs\":\n\t\t\t\t\tprocSnmp.Tcp.InErrs = &value\n\t\t\t\tcase \"OutRsts\":\n\t\t\t\t\tprocSnmp.Tcp.OutRsts = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp.Tcp.InCsumErrors = &value\n\t\t\t\t}\n\t\t\tcase \"Udp\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InDatagrams\":\n\t\t\t\t\tprocSnmp.Udp.InDatagrams = &value\n\t\t\t\tcase \"NoPorts\":\n\t\t\t\t\tprocSnmp.Udp.NoPorts = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp.Udp.InErrors = &value\n\t\t\t\tcase \"OutDatagrams\":\n\t\t\t\t\tprocSnmp.Udp.OutDatagrams = &value\n\t\t\t\tcase \"RcvbufErrors\":\n\t\t\t\t\tprocSnmp.Udp.RcvbufErrors = &value\n\t\t\t\tcase \"SndbufErrors\":\n\t\t\t\t\tprocSnmp.Udp.SndbufErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp.Udp.InCsumErrors = &value\n\t\t\t\tcase \"IgnoredMulti\":\n\t\t\t\t\tprocSnmp.Udp.IgnoredMulti = &value\n\t\t\t\t}\n\t\t\tcase \"UdpLite\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InDatagrams\":\n\t\t\t\t\tprocSnmp.UdpLite.InDatagrams = &value\n\t\t\t\tcase \"NoPorts\":\n\t\t\t\t\tprocSnmp.UdpLite.NoPorts = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp.UdpLite.InErrors = &value\n\t\t\t\tcase \"OutDatagrams\":\n\t\t\t\t\tprocSnmp.UdpLite.OutDatagrams = &value\n\t\t\t\tcase \"RcvbufErrors\":\n\t\t\t\t\tprocSnmp.UdpLite.RcvbufErrors = &value\n\t\t\t\tcase \"SndbufErrors\":\n\t\t\t\t\tprocSnmp.UdpLite.SndbufErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp.UdpLite.InCsumErrors = &value\n\t\t\t\tcase \"IgnoredMulti\":\n\t\t\t\t\tprocSnmp.UdpLite.IgnoredMulti = &value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn procSnmp, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_snmp6.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// ProcSnmp6 models the content of /proc/<pid>/net/snmp6.\ntype ProcSnmp6 struct {\n\t// The process ID.\n\tPID int\n\tIp6\n\tIcmp6\n\tUdp6\n\tUdpLite6\n}\n\ntype Ip6 struct { // nolint:revive\n\tInReceives       *float64\n\tInHdrErrors      *float64\n\tInTooBigErrors   *float64\n\tInNoRoutes       *float64\n\tInAddrErrors     *float64\n\tInUnknownProtos  *float64\n\tInTruncatedPkts  *float64\n\tInDiscards       *float64\n\tInDelivers       *float64\n\tOutForwDatagrams *float64\n\tOutRequests      *float64\n\tOutDiscards      *float64\n\tOutNoRoutes      *float64\n\tReasmTimeout     *float64\n\tReasmReqds       *float64\n\tReasmOKs         *float64\n\tReasmFails       *float64\n\tFragOKs          *float64\n\tFragFails        *float64\n\tFragCreates      *float64\n\tInMcastPkts      *float64\n\tOutMcastPkts     *float64\n\tInOctets         *float64\n\tOutOctets        *float64\n\tInMcastOctets    *float64\n\tOutMcastOctets   *float64\n\tInBcastOctets    *float64\n\tOutBcastOctets   *float64\n\tInNoECTPkts      *float64\n\tInECT1Pkts       *float64\n\tInECT0Pkts       *float64\n\tInCEPkts         *float64\n}\n\ntype Icmp6 struct {\n\tInMsgs                    *float64\n\tInErrors                  *float64\n\tOutMsgs                   *float64\n\tOutErrors                 *float64\n\tInCsumErrors              *float64\n\tInDestUnreachs            *float64\n\tInPktTooBigs              *float64\n\tInTimeExcds               *float64\n\tInParmProblems            *float64\n\tInEchos                   *float64\n\tInEchoReplies             *float64\n\tInGroupMembQueries        *float64\n\tInGroupMembResponses      *float64\n\tInGroupMembReductions     *float64\n\tInRouterSolicits          *float64\n\tInRouterAdvertisements    *float64\n\tInNeighborSolicits        *float64\n\tInNeighborAdvertisements  *float64\n\tInRedirects               *float64\n\tInMLDv2Reports            *float64\n\tOutDestUnreachs           *float64\n\tOutPktTooBigs             *float64\n\tOutTimeExcds              *float64\n\tOutParmProblems           *float64\n\tOutEchos                  *float64\n\tOutEchoReplies            *float64\n\tOutGroupMembQueries       *float64\n\tOutGroupMembResponses     *float64\n\tOutGroupMembReductions    *float64\n\tOutRouterSolicits         *float64\n\tOutRouterAdvertisements   *float64\n\tOutNeighborSolicits       *float64\n\tOutNeighborAdvertisements *float64\n\tOutRedirects              *float64\n\tOutMLDv2Reports           *float64\n\tInType1                   *float64\n\tInType134                 *float64\n\tInType135                 *float64\n\tInType136                 *float64\n\tInType143                 *float64\n\tOutType133                *float64\n\tOutType135                *float64\n\tOutType136                *float64\n\tOutType143                *float64\n}\n\ntype Udp6 struct { // nolint:revive\n\tInDatagrams  *float64\n\tNoPorts      *float64\n\tInErrors     *float64\n\tOutDatagrams *float64\n\tRcvbufErrors *float64\n\tSndbufErrors *float64\n\tInCsumErrors *float64\n\tIgnoredMulti *float64\n}\n\ntype UdpLite6 struct { // nolint:revive\n\tInDatagrams  *float64\n\tNoPorts      *float64\n\tInErrors     *float64\n\tOutDatagrams *float64\n\tRcvbufErrors *float64\n\tSndbufErrors *float64\n\tInCsumErrors *float64\n}\n\nfunc (p Proc) Snmp6() (ProcSnmp6, error) {\n\tfilename := p.path(\"net/snmp6\")\n\tdata, err := util.ReadFileNoStat(filename)\n\tif err != nil {\n\t\t// On systems with IPv6 disabled, this file won't exist.\n\t\t// Do nothing.\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\treturn ProcSnmp6{PID: p.PID}, nil\n\t\t}\n\n\t\treturn ProcSnmp6{PID: p.PID}, err\n\t}\n\n\tprocSnmp6, err := parseSNMP6Stats(bytes.NewReader(data))\n\tprocSnmp6.PID = p.PID\n\treturn procSnmp6, err\n}\n\n// parseSnmp6 parses the metrics from proc/<pid>/net/snmp6 file\n// and returns a map contains those metrics.\nfunc parseSNMP6Stats(r io.Reader) (ProcSnmp6, error) {\n\tvar (\n\t\tscanner   = bufio.NewScanner(r)\n\t\tprocSnmp6 = ProcSnmp6{}\n\t)\n\n\tfor scanner.Scan() {\n\t\tstat := strings.Fields(scanner.Text())\n\t\tif len(stat) < 2 {\n\t\t\tcontinue\n\t\t}\n\t\t// Expect to have \"6\" in metric name, skip line otherwise\n\t\tif sixIndex := strings.Index(stat[0], \"6\"); sixIndex != -1 {\n\t\t\tprotocol := stat[0][:sixIndex+1]\n\t\t\tkey := stat[0][sixIndex+1:]\n\t\t\tvalue, err := strconv.ParseFloat(stat[1], 64)\n\t\t\tif err != nil {\n\t\t\t\treturn procSnmp6, err\n\t\t\t}\n\n\t\t\tswitch protocol {\n\t\t\tcase \"Ip6\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InReceives\":\n\t\t\t\t\tprocSnmp6.Ip6.InReceives = &value\n\t\t\t\tcase \"InHdrErrors\":\n\t\t\t\t\tprocSnmp6.Ip6.InHdrErrors = &value\n\t\t\t\tcase \"InTooBigErrors\":\n\t\t\t\t\tprocSnmp6.Ip6.InTooBigErrors = &value\n\t\t\t\tcase \"InNoRoutes\":\n\t\t\t\t\tprocSnmp6.Ip6.InNoRoutes = &value\n\t\t\t\tcase \"InAddrErrors\":\n\t\t\t\t\tprocSnmp6.Ip6.InAddrErrors = &value\n\t\t\t\tcase \"InUnknownProtos\":\n\t\t\t\t\tprocSnmp6.Ip6.InUnknownProtos = &value\n\t\t\t\tcase \"InTruncatedPkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InTruncatedPkts = &value\n\t\t\t\tcase \"InDiscards\":\n\t\t\t\t\tprocSnmp6.Ip6.InDiscards = &value\n\t\t\t\tcase \"InDelivers\":\n\t\t\t\t\tprocSnmp6.Ip6.InDelivers = &value\n\t\t\t\tcase \"OutForwDatagrams\":\n\t\t\t\t\tprocSnmp6.Ip6.OutForwDatagrams = &value\n\t\t\t\tcase \"OutRequests\":\n\t\t\t\t\tprocSnmp6.Ip6.OutRequests = &value\n\t\t\t\tcase \"OutDiscards\":\n\t\t\t\t\tprocSnmp6.Ip6.OutDiscards = &value\n\t\t\t\tcase \"OutNoRoutes\":\n\t\t\t\t\tprocSnmp6.Ip6.OutNoRoutes = &value\n\t\t\t\tcase \"ReasmTimeout\":\n\t\t\t\t\tprocSnmp6.Ip6.ReasmTimeout = &value\n\t\t\t\tcase \"ReasmReqds\":\n\t\t\t\t\tprocSnmp6.Ip6.ReasmReqds = &value\n\t\t\t\tcase \"ReasmOKs\":\n\t\t\t\t\tprocSnmp6.Ip6.ReasmOKs = &value\n\t\t\t\tcase \"ReasmFails\":\n\t\t\t\t\tprocSnmp6.Ip6.ReasmFails = &value\n\t\t\t\tcase \"FragOKs\":\n\t\t\t\t\tprocSnmp6.Ip6.FragOKs = &value\n\t\t\t\tcase \"FragFails\":\n\t\t\t\t\tprocSnmp6.Ip6.FragFails = &value\n\t\t\t\tcase \"FragCreates\":\n\t\t\t\t\tprocSnmp6.Ip6.FragCreates = &value\n\t\t\t\tcase \"InMcastPkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InMcastPkts = &value\n\t\t\t\tcase \"OutMcastPkts\":\n\t\t\t\t\tprocSnmp6.Ip6.OutMcastPkts = &value\n\t\t\t\tcase \"InOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.InOctets = &value\n\t\t\t\tcase \"OutOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.OutOctets = &value\n\t\t\t\tcase \"InMcastOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.InMcastOctets = &value\n\t\t\t\tcase \"OutMcastOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.OutMcastOctets = &value\n\t\t\t\tcase \"InBcastOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.InBcastOctets = &value\n\t\t\t\tcase \"OutBcastOctets\":\n\t\t\t\t\tprocSnmp6.Ip6.OutBcastOctets = &value\n\t\t\t\tcase \"InNoECTPkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InNoECTPkts = &value\n\t\t\t\tcase \"InECT1Pkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InECT1Pkts = &value\n\t\t\t\tcase \"InECT0Pkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InECT0Pkts = &value\n\t\t\t\tcase \"InCEPkts\":\n\t\t\t\t\tprocSnmp6.Ip6.InCEPkts = &value\n\n\t\t\t\t}\n\t\t\tcase \"Icmp6\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InMsgs\":\n\t\t\t\t\tprocSnmp6.Icmp6.InMsgs = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp6.Icmp6.InErrors = &value\n\t\t\t\tcase \"OutMsgs\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutMsgs = &value\n\t\t\t\tcase \"OutErrors\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp6.Icmp6.InCsumErrors = &value\n\t\t\t\tcase \"InDestUnreachs\":\n\t\t\t\t\tprocSnmp6.Icmp6.InDestUnreachs = &value\n\t\t\t\tcase \"InPktTooBigs\":\n\t\t\t\t\tprocSnmp6.Icmp6.InPktTooBigs = &value\n\t\t\t\tcase \"InTimeExcds\":\n\t\t\t\t\tprocSnmp6.Icmp6.InTimeExcds = &value\n\t\t\t\tcase \"InParmProblems\":\n\t\t\t\t\tprocSnmp6.Icmp6.InParmProblems = &value\n\t\t\t\tcase \"InEchos\":\n\t\t\t\t\tprocSnmp6.Icmp6.InEchos = &value\n\t\t\t\tcase \"InEchoReplies\":\n\t\t\t\t\tprocSnmp6.Icmp6.InEchoReplies = &value\n\t\t\t\tcase \"InGroupMembQueries\":\n\t\t\t\t\tprocSnmp6.Icmp6.InGroupMembQueries = &value\n\t\t\t\tcase \"InGroupMembResponses\":\n\t\t\t\t\tprocSnmp6.Icmp6.InGroupMembResponses = &value\n\t\t\t\tcase \"InGroupMembReductions\":\n\t\t\t\t\tprocSnmp6.Icmp6.InGroupMembReductions = &value\n\t\t\t\tcase \"InRouterSolicits\":\n\t\t\t\t\tprocSnmp6.Icmp6.InRouterSolicits = &value\n\t\t\t\tcase \"InRouterAdvertisements\":\n\t\t\t\t\tprocSnmp6.Icmp6.InRouterAdvertisements = &value\n\t\t\t\tcase \"InNeighborSolicits\":\n\t\t\t\t\tprocSnmp6.Icmp6.InNeighborSolicits = &value\n\t\t\t\tcase \"InNeighborAdvertisements\":\n\t\t\t\t\tprocSnmp6.Icmp6.InNeighborAdvertisements = &value\n\t\t\t\tcase \"InRedirects\":\n\t\t\t\t\tprocSnmp6.Icmp6.InRedirects = &value\n\t\t\t\tcase \"InMLDv2Reports\":\n\t\t\t\t\tprocSnmp6.Icmp6.InMLDv2Reports = &value\n\t\t\t\tcase \"OutDestUnreachs\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutDestUnreachs = &value\n\t\t\t\tcase \"OutPktTooBigs\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutPktTooBigs = &value\n\t\t\t\tcase \"OutTimeExcds\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutTimeExcds = &value\n\t\t\t\tcase \"OutParmProblems\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutParmProblems = &value\n\t\t\t\tcase \"OutEchos\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutEchos = &value\n\t\t\t\tcase \"OutEchoReplies\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutEchoReplies = &value\n\t\t\t\tcase \"OutGroupMembQueries\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutGroupMembQueries = &value\n\t\t\t\tcase \"OutGroupMembResponses\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutGroupMembResponses = &value\n\t\t\t\tcase \"OutGroupMembReductions\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutGroupMembReductions = &value\n\t\t\t\tcase \"OutRouterSolicits\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutRouterSolicits = &value\n\t\t\t\tcase \"OutRouterAdvertisements\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutRouterAdvertisements = &value\n\t\t\t\tcase \"OutNeighborSolicits\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutNeighborSolicits = &value\n\t\t\t\tcase \"OutNeighborAdvertisements\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutNeighborAdvertisements = &value\n\t\t\t\tcase \"OutRedirects\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutRedirects = &value\n\t\t\t\tcase \"OutMLDv2Reports\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutMLDv2Reports = &value\n\t\t\t\tcase \"InType1\":\n\t\t\t\t\tprocSnmp6.Icmp6.InType1 = &value\n\t\t\t\tcase \"InType134\":\n\t\t\t\t\tprocSnmp6.Icmp6.InType134 = &value\n\t\t\t\tcase \"InType135\":\n\t\t\t\t\tprocSnmp6.Icmp6.InType135 = &value\n\t\t\t\tcase \"InType136\":\n\t\t\t\t\tprocSnmp6.Icmp6.InType136 = &value\n\t\t\t\tcase \"InType143\":\n\t\t\t\t\tprocSnmp6.Icmp6.InType143 = &value\n\t\t\t\tcase \"OutType133\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutType133 = &value\n\t\t\t\tcase \"OutType135\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutType135 = &value\n\t\t\t\tcase \"OutType136\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutType136 = &value\n\t\t\t\tcase \"OutType143\":\n\t\t\t\t\tprocSnmp6.Icmp6.OutType143 = &value\n\t\t\t\t}\n\t\t\tcase \"Udp6\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InDatagrams\":\n\t\t\t\t\tprocSnmp6.Udp6.InDatagrams = &value\n\t\t\t\tcase \"NoPorts\":\n\t\t\t\t\tprocSnmp6.Udp6.NoPorts = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp6.Udp6.InErrors = &value\n\t\t\t\tcase \"OutDatagrams\":\n\t\t\t\t\tprocSnmp6.Udp6.OutDatagrams = &value\n\t\t\t\tcase \"RcvbufErrors\":\n\t\t\t\t\tprocSnmp6.Udp6.RcvbufErrors = &value\n\t\t\t\tcase \"SndbufErrors\":\n\t\t\t\t\tprocSnmp6.Udp6.SndbufErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp6.Udp6.InCsumErrors = &value\n\t\t\t\tcase \"IgnoredMulti\":\n\t\t\t\t\tprocSnmp6.Udp6.IgnoredMulti = &value\n\t\t\t\t}\n\t\t\tcase \"UdpLite6\":\n\t\t\t\tswitch key {\n\t\t\t\tcase \"InDatagrams\":\n\t\t\t\t\tprocSnmp6.UdpLite6.InDatagrams = &value\n\t\t\t\tcase \"NoPorts\":\n\t\t\t\t\tprocSnmp6.UdpLite6.NoPorts = &value\n\t\t\t\tcase \"InErrors\":\n\t\t\t\t\tprocSnmp6.UdpLite6.InErrors = &value\n\t\t\t\tcase \"OutDatagrams\":\n\t\t\t\t\tprocSnmp6.UdpLite6.OutDatagrams = &value\n\t\t\t\tcase \"RcvbufErrors\":\n\t\t\t\t\tprocSnmp6.UdpLite6.RcvbufErrors = &value\n\t\t\t\tcase \"SndbufErrors\":\n\t\t\t\t\tprocSnmp6.UdpLite6.SndbufErrors = &value\n\t\t\t\tcase \"InCsumErrors\":\n\t\t\t\t\tprocSnmp6.UdpLite6.InCsumErrors = &value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn procSnmp6, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_stat.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Originally, this USER_HZ value was dynamically retrieved via a sysconf call\n// which required cgo. However, that caused a lot of problems regarding\n// cross-compilation. Alternatives such as running a binary to determine the\n// value, or trying to derive it in some other way were all problematic.  After\n// much research it was determined that USER_HZ is actually hardcoded to 100 on\n// all Go-supported platforms as of the time of this writing. This is why we\n// decided to hardcode it here as well. It is not impossible that there could\n// be systems with exceptions, but they should be very exotic edge cases, and\n// in that case, the worst outcome will be two misreported metrics.\n//\n// See also the following discussions:\n//\n// - https://github.com/prometheus/node_exporter/issues/52\n// - https://github.com/prometheus/procfs/pull/2\n// - http://stackoverflow.com/questions/17410841/how-does-user-hz-solve-the-jiffy-scaling-issue\nconst userHZ = 100\n\n// ProcStat provides status information about the process,\n// read from /proc/[pid]/stat.\ntype ProcStat struct {\n\t// The process ID.\n\tPID int\n\t// The filename of the executable.\n\tComm string\n\t// The process state.\n\tState string\n\t// The PID of the parent of this process.\n\tPPID int\n\t// The process group ID of the process.\n\tPGRP int\n\t// The session ID of the process.\n\tSession int\n\t// The controlling terminal of the process.\n\tTTY int\n\t// The ID of the foreground process group of the controlling terminal of\n\t// the process.\n\tTPGID int\n\t// The kernel flags word of the process.\n\tFlags uint\n\t// The number of minor faults the process has made which have not required\n\t// loading a memory page from disk.\n\tMinFlt uint\n\t// The number of minor faults that the process's waited-for children have\n\t// made.\n\tCMinFlt uint\n\t// The number of major faults the process has made which have required\n\t// loading a memory page from disk.\n\tMajFlt uint\n\t// The number of major faults that the process's waited-for children have\n\t// made.\n\tCMajFlt uint\n\t// Amount of time that this process has been scheduled in user mode,\n\t// measured in clock ticks.\n\tUTime uint\n\t// Amount of time that this process has been scheduled in kernel mode,\n\t// measured in clock ticks.\n\tSTime uint\n\t// Amount of time that this process's waited-for children have been\n\t// scheduled in user mode, measured in clock ticks.\n\tCUTime int\n\t// Amount of time that this process's waited-for children have been\n\t// scheduled in kernel mode, measured in clock ticks.\n\tCSTime int\n\t// For processes running a real-time scheduling policy, this is the negated\n\t// scheduling priority, minus one.\n\tPriority int\n\t// The nice value, a value in the range 19 (low priority) to -20 (high\n\t// priority).\n\tNice int\n\t// Number of threads in this process.\n\tNumThreads int\n\t// The time the process started after system boot, the value is expressed\n\t// in clock ticks.\n\tStarttime uint64\n\t// Virtual memory size in bytes.\n\tVSize uint\n\t// Resident set size in pages.\n\tRSS int\n\t// Soft limit in bytes on the rss of the process.\n\tRSSLimit uint64\n\t// CPU number last executed on.\n\tProcessor uint\n\t// Real-time scheduling priority, a number in the range 1 to 99 for processes\n\t// scheduled under a real-time policy, or 0, for non-real-time processes.\n\tRTPriority uint\n\t// Scheduling policy.\n\tPolicy uint\n\t// Aggregated block I/O delays, measured in clock ticks (centiseconds).\n\tDelayAcctBlkIOTicks uint64\n\n\tproc FS\n}\n\n// NewStat returns the current status information of the process.\n//\n// Deprecated: Use p.Stat() instead.\nfunc (p Proc) NewStat() (ProcStat, error) {\n\treturn p.Stat()\n}\n\n// Stat returns the current status information of the process.\nfunc (p Proc) Stat() (ProcStat, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"stat\"))\n\tif err != nil {\n\t\treturn ProcStat{}, err\n\t}\n\n\tvar (\n\t\tignoreInt64  int64\n\t\tignoreUint64 uint64\n\n\t\ts = ProcStat{PID: p.PID, proc: p.fs}\n\t\tl = bytes.Index(data, []byte(\"(\"))\n\t\tr = bytes.LastIndex(data, []byte(\")\"))\n\t)\n\n\tif l < 0 || r < 0 {\n\t\treturn ProcStat{}, fmt.Errorf(\"unexpected format, couldn't extract comm %q\", data)\n\t}\n\n\ts.Comm = string(data[l+1 : r])\n\n\t// Check the following resources for the details about the particular stat\n\t// fields and their data types:\n\t// * https://man7.org/linux/man-pages/man5/proc.5.html\n\t// * https://man7.org/linux/man-pages/man3/scanf.3.html\n\t_, err = fmt.Fscan(\n\t\tbytes.NewBuffer(data[r+2:]),\n\t\t&s.State,\n\t\t&s.PPID,\n\t\t&s.PGRP,\n\t\t&s.Session,\n\t\t&s.TTY,\n\t\t&s.TPGID,\n\t\t&s.Flags,\n\t\t&s.MinFlt,\n\t\t&s.CMinFlt,\n\t\t&s.MajFlt,\n\t\t&s.CMajFlt,\n\t\t&s.UTime,\n\t\t&s.STime,\n\t\t&s.CUTime,\n\t\t&s.CSTime,\n\t\t&s.Priority,\n\t\t&s.Nice,\n\t\t&s.NumThreads,\n\t\t&ignoreInt64,\n\t\t&s.Starttime,\n\t\t&s.VSize,\n\t\t&s.RSS,\n\t\t&s.RSSLimit,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreUint64,\n\t\t&ignoreInt64,\n\t\t&s.Processor,\n\t\t&s.RTPriority,\n\t\t&s.Policy,\n\t\t&s.DelayAcctBlkIOTicks,\n\t)\n\tif err != nil {\n\t\treturn ProcStat{}, err\n\t}\n\n\treturn s, nil\n}\n\n// VirtualMemory returns the virtual memory size in bytes.\nfunc (s ProcStat) VirtualMemory() uint {\n\treturn s.VSize\n}\n\n// ResidentMemory returns the resident memory size in bytes.\nfunc (s ProcStat) ResidentMemory() int {\n\treturn s.RSS * os.Getpagesize()\n}\n\n// StartTime returns the unix timestamp of the process in seconds.\nfunc (s ProcStat) StartTime() (float64, error) {\n\tstat, err := s.proc.Stat()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn float64(stat.BootTime) + (float64(s.Starttime) / userHZ), nil\n}\n\n// CPUTime returns the total CPU user and system time in seconds.\nfunc (s ProcStat) CPUTime() float64 {\n\treturn float64(s.UTime+s.STime) / userHZ\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_status.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// ProcStatus provides status information about the process,\n// read from /proc/[pid]/stat.\ntype ProcStatus struct {\n\t// The process ID.\n\tPID int\n\t// The process name.\n\tName string\n\n\t// Thread group ID.\n\tTGID int\n\n\t// Peak virtual memory size.\n\tVmPeak uint64 // nolint:revive\n\t// Virtual memory size.\n\tVmSize uint64 // nolint:revive\n\t// Locked memory size.\n\tVmLck uint64 // nolint:revive\n\t// Pinned memory size.\n\tVmPin uint64 // nolint:revive\n\t// Peak resident set size.\n\tVmHWM uint64 // nolint:revive\n\t// Resident set size (sum of RssAnnon RssFile and RssShmem).\n\tVmRSS uint64 // nolint:revive\n\t// Size of resident anonymous memory.\n\tRssAnon uint64 // nolint:revive\n\t// Size of resident file mappings.\n\tRssFile uint64 // nolint:revive\n\t// Size of resident shared memory.\n\tRssShmem uint64 // nolint:revive\n\t// Size of data segments.\n\tVmData uint64 // nolint:revive\n\t// Size of stack segments.\n\tVmStk uint64 // nolint:revive\n\t// Size of text segments.\n\tVmExe uint64 // nolint:revive\n\t// Shared library code size.\n\tVmLib uint64 // nolint:revive\n\t// Page table entries size.\n\tVmPTE uint64 // nolint:revive\n\t// Size of second-level page tables.\n\tVmPMD uint64 // nolint:revive\n\t// Swapped-out virtual memory size by anonymous private.\n\tVmSwap uint64 // nolint:revive\n\t// Size of hugetlb memory portions\n\tHugetlbPages uint64\n\n\t// Number of voluntary context switches.\n\tVoluntaryCtxtSwitches uint64\n\t// Number of involuntary context switches.\n\tNonVoluntaryCtxtSwitches uint64\n\n\t// UIDs of the process (Real, effective, saved set, and filesystem UIDs)\n\tUIDs [4]string\n\t// GIDs of the process (Real, effective, saved set, and filesystem GIDs)\n\tGIDs [4]string\n\n\t// CpusAllowedList: List of cpu cores processes are allowed to run on.\n\tCpusAllowedList []uint64\n}\n\n// NewStatus returns the current status information of the process.\nfunc (p Proc) NewStatus() (ProcStatus, error) {\n\tdata, err := util.ReadFileNoStat(p.path(\"status\"))\n\tif err != nil {\n\t\treturn ProcStatus{}, err\n\t}\n\n\ts := ProcStatus{PID: p.PID}\n\n\tlines := strings.Split(string(data), \"\\n\")\n\tfor _, line := range lines {\n\t\tif !bytes.Contains([]byte(line), []byte(\":\")) {\n\t\t\tcontinue\n\t\t}\n\n\t\tkv := strings.SplitN(line, \":\", 2)\n\n\t\t// removes spaces\n\t\tk := strings.TrimSpace(kv[0])\n\t\tv := strings.TrimSpace(kv[1])\n\t\t// removes \"kB\"\n\t\tv = strings.TrimSuffix(v, \" kB\")\n\n\t\t// value to int when possible\n\t\t// we can skip error check here, 'cause vKBytes is not used when value is a string\n\t\tvKBytes, _ := strconv.ParseUint(v, 10, 64)\n\t\t// convert kB to B\n\t\tvBytes := vKBytes * 1024\n\n\t\ts.fillStatus(k, v, vKBytes, vBytes)\n\t}\n\n\treturn s, nil\n}\n\nfunc (s *ProcStatus) fillStatus(k string, vString string, vUint uint64, vUintBytes uint64) {\n\tswitch k {\n\tcase \"Tgid\":\n\t\ts.TGID = int(vUint)\n\tcase \"Name\":\n\t\ts.Name = vString\n\tcase \"Uid\":\n\t\tcopy(s.UIDs[:], strings.Split(vString, \"\\t\"))\n\tcase \"Gid\":\n\t\tcopy(s.GIDs[:], strings.Split(vString, \"\\t\"))\n\tcase \"VmPeak\":\n\t\ts.VmPeak = vUintBytes\n\tcase \"VmSize\":\n\t\ts.VmSize = vUintBytes\n\tcase \"VmLck\":\n\t\ts.VmLck = vUintBytes\n\tcase \"VmPin\":\n\t\ts.VmPin = vUintBytes\n\tcase \"VmHWM\":\n\t\ts.VmHWM = vUintBytes\n\tcase \"VmRSS\":\n\t\ts.VmRSS = vUintBytes\n\tcase \"RssAnon\":\n\t\ts.RssAnon = vUintBytes\n\tcase \"RssFile\":\n\t\ts.RssFile = vUintBytes\n\tcase \"RssShmem\":\n\t\ts.RssShmem = vUintBytes\n\tcase \"VmData\":\n\t\ts.VmData = vUintBytes\n\tcase \"VmStk\":\n\t\ts.VmStk = vUintBytes\n\tcase \"VmExe\":\n\t\ts.VmExe = vUintBytes\n\tcase \"VmLib\":\n\t\ts.VmLib = vUintBytes\n\tcase \"VmPTE\":\n\t\ts.VmPTE = vUintBytes\n\tcase \"VmPMD\":\n\t\ts.VmPMD = vUintBytes\n\tcase \"VmSwap\":\n\t\ts.VmSwap = vUintBytes\n\tcase \"HugetlbPages\":\n\t\ts.HugetlbPages = vUintBytes\n\tcase \"voluntary_ctxt_switches\":\n\t\ts.VoluntaryCtxtSwitches = vUint\n\tcase \"nonvoluntary_ctxt_switches\":\n\t\ts.NonVoluntaryCtxtSwitches = vUint\n\tcase \"Cpus_allowed_list\":\n\t\ts.CpusAllowedList = calcCpusAllowedList(vString)\n\t}\n\n}\n\n// TotalCtxtSwitches returns the total context switch.\nfunc (s ProcStatus) TotalCtxtSwitches() uint64 {\n\treturn s.VoluntaryCtxtSwitches + s.NonVoluntaryCtxtSwitches\n}\n\nfunc calcCpusAllowedList(cpuString string) []uint64 {\n\ts := strings.Split(cpuString, \",\")\n\n\tvar g []uint64\n\n\tfor _, cpu := range s {\n\t\t// parse cpu ranges, example: 1-3=[1,2,3]\n\t\tif l := strings.Split(strings.TrimSpace(cpu), \"-\"); len(l) > 1 {\n\t\t\tstartCPU, _ := strconv.ParseUint(l[0], 10, 64)\n\t\t\tendCPU, _ := strconv.ParseUint(l[1], 10, 64)\n\n\t\t\tfor i := startCPU; i <= endCPU; i++ {\n\t\t\t\tg = append(g, i)\n\t\t\t}\n\t\t} else if len(l) == 1 {\n\t\t\tcpu, _ := strconv.ParseUint(l[0], 10, 64)\n\t\t\tg = append(g, cpu)\n\t\t}\n\n\t}\n\n\tsort.Slice(g, func(i, j int) bool { return g[i] < g[j] })\n\treturn g\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/proc_sys.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\nfunc sysctlToPath(sysctl string) string {\n\treturn strings.Replace(sysctl, \".\", \"/\", -1)\n}\n\nfunc (fs FS) SysctlStrings(sysctl string) ([]string, error) {\n\tvalue, err := util.SysReadFile(fs.proc.Path(\"sys\", sysctlToPath(sysctl)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn strings.Fields(value), nil\n\n}\n\nfunc (fs FS) SysctlInts(sysctl string) ([]int, error) {\n\tfields, err := fs.SysctlStrings(sysctl)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalues := make([]int, len(fields))\n\tfor i, f := range fields {\n\t\tvp := util.NewValueParser(f)\n\t\tvalues[i] = vp.Int()\n\t\tif err := vp.Err(); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"field %d in sysctl %s is not a valid int: %w\", i, sysctl, err)\n\t\t}\n\t}\n\treturn values, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/schedstat.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n)\n\nvar (\n\tcpuLineRE  = regexp.MustCompile(`cpu(\\d+) (\\d+) (\\d+) (\\d+) (\\d+) (\\d+) (\\d+) (\\d+) (\\d+) (\\d+)`)\n\tprocLineRE = regexp.MustCompile(`(\\d+) (\\d+) (\\d+)`)\n)\n\n// Schedstat contains scheduler statistics from /proc/schedstat\n//\n// See\n// https://www.kernel.org/doc/Documentation/scheduler/sched-stats.txt\n// for a detailed description of what these numbers mean.\n//\n// Note the current kernel documentation claims some of the time units are in\n// jiffies when they are actually in nanoseconds since 2.6.23 with the\n// introduction of CFS. A fix to the documentation is pending. See\n// https://lore.kernel.org/patchwork/project/lkml/list/?series=403473\ntype Schedstat struct {\n\tCPUs []*SchedstatCPU\n}\n\n// SchedstatCPU contains the values from one \"cpu<N>\" line.\ntype SchedstatCPU struct {\n\tCPUNum string\n\n\tRunningNanoseconds uint64\n\tWaitingNanoseconds uint64\n\tRunTimeslices      uint64\n}\n\n// ProcSchedstat contains the values from `/proc/<pid>/schedstat`.\ntype ProcSchedstat struct {\n\tRunningNanoseconds uint64\n\tWaitingNanoseconds uint64\n\tRunTimeslices      uint64\n}\n\n// Schedstat reads data from `/proc/schedstat`.\nfunc (fs FS) Schedstat() (*Schedstat, error) {\n\tfile, err := os.Open(fs.proc.Path(\"schedstat\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\n\tstats := &Schedstat{}\n\tscanner := bufio.NewScanner(file)\n\n\tfor scanner.Scan() {\n\t\tmatch := cpuLineRE.FindStringSubmatch(scanner.Text())\n\t\tif match != nil {\n\t\t\tcpu := &SchedstatCPU{}\n\t\t\tcpu.CPUNum = match[1]\n\n\t\t\tcpu.RunningNanoseconds, err = strconv.ParseUint(match[8], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcpu.WaitingNanoseconds, err = strconv.ParseUint(match[9], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcpu.RunTimeslices, err = strconv.ParseUint(match[10], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tstats.CPUs = append(stats.CPUs, cpu)\n\t\t}\n\t}\n\n\treturn stats, nil\n}\n\nfunc parseProcSchedstat(contents string) (ProcSchedstat, error) {\n\tvar (\n\t\tstats ProcSchedstat\n\t\terr   error\n\t)\n\tmatch := procLineRE.FindStringSubmatch(contents)\n\n\tif match != nil {\n\t\tstats.RunningNanoseconds, err = strconv.ParseUint(match[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn stats, err\n\t\t}\n\n\t\tstats.WaitingNanoseconds, err = strconv.ParseUint(match[2], 10, 64)\n\t\tif err != nil {\n\t\t\treturn stats, err\n\t\t}\n\n\t\tstats.RunTimeslices, err = strconv.ParseUint(match[3], 10, 64)\n\t\treturn stats, err\n\t}\n\n\treturn stats, errors.New(\"could not parse schedstat\")\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/slab.go",
    "content": "// Copyright 2020 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\nvar (\n\tslabSpace  = regexp.MustCompile(`\\s+`)\n\tslabVer    = regexp.MustCompile(`slabinfo -`)\n\tslabHeader = regexp.MustCompile(`# name`)\n)\n\n// Slab represents a slab pool in the kernel.\ntype Slab struct {\n\tName         string\n\tObjActive    int64\n\tObjNum       int64\n\tObjSize      int64\n\tObjPerSlab   int64\n\tPagesPerSlab int64\n\t// tunables\n\tLimit        int64\n\tBatch        int64\n\tSharedFactor int64\n\tSlabActive   int64\n\tSlabNum      int64\n\tSharedAvail  int64\n}\n\n// SlabInfo represents info for all slabs.\ntype SlabInfo struct {\n\tSlabs []*Slab\n}\n\nfunc shouldParseSlab(line string) bool {\n\tif slabVer.MatchString(line) {\n\t\treturn false\n\t}\n\tif slabHeader.MatchString(line) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// parseV21SlabEntry is used to parse a line from /proc/slabinfo version 2.1.\nfunc parseV21SlabEntry(line string) (*Slab, error) {\n\t// First cleanup whitespace.\n\tl := slabSpace.ReplaceAllString(line, \" \")\n\ts := strings.Split(l, \" \")\n\tif len(s) != 16 {\n\t\treturn nil, fmt.Errorf(\"unable to parse: %q\", line)\n\t}\n\tvar err error\n\ti := &Slab{Name: s[0]}\n\ti.ObjActive, err = strconv.ParseInt(s[1], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.ObjNum, err = strconv.ParseInt(s[2], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.ObjSize, err = strconv.ParseInt(s[3], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.ObjPerSlab, err = strconv.ParseInt(s[4], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.PagesPerSlab, err = strconv.ParseInt(s[5], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.Limit, err = strconv.ParseInt(s[8], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.Batch, err = strconv.ParseInt(s[9], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.SharedFactor, err = strconv.ParseInt(s[10], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.SlabActive, err = strconv.ParseInt(s[13], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.SlabNum, err = strconv.ParseInt(s[14], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti.SharedAvail, err = strconv.ParseInt(s[15], 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\n// parseSlabInfo21 is used to parse a slabinfo 2.1 file.\nfunc parseSlabInfo21(r *bytes.Reader) (SlabInfo, error) {\n\tscanner := bufio.NewScanner(r)\n\ts := SlabInfo{Slabs: []*Slab{}}\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tif !shouldParseSlab(line) {\n\t\t\tcontinue\n\t\t}\n\t\tslab, err := parseV21SlabEntry(line)\n\t\tif err != nil {\n\t\t\treturn s, err\n\t\t}\n\t\ts.Slabs = append(s.Slabs, slab)\n\t}\n\treturn s, nil\n}\n\n// SlabInfo reads data from `/proc/slabinfo`.\nfunc (fs FS) SlabInfo() (SlabInfo, error) {\n\t// TODO: Consider passing options to allow for parsing different\n\t// slabinfo versions. However, slabinfo 2.1 has been stable since\n\t// kernel 2.6.10 and later.\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"slabinfo\"))\n\tif err != nil {\n\t\treturn SlabInfo{}, err\n\t}\n\n\treturn parseSlabInfo21(bytes.NewReader(data))\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/softirqs.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Softirqs represents the softirq statistics.\ntype Softirqs struct {\n\tHi      []uint64\n\tTimer   []uint64\n\tNetTx   []uint64\n\tNetRx   []uint64\n\tBlock   []uint64\n\tIRQPoll []uint64\n\tTasklet []uint64\n\tSched   []uint64\n\tHRTimer []uint64\n\tRCU     []uint64\n}\n\nfunc (fs FS) Softirqs() (Softirqs, error) {\n\tfileName := fs.proc.Path(\"softirqs\")\n\tdata, err := util.ReadFileNoStat(fileName)\n\tif err != nil {\n\t\treturn Softirqs{}, err\n\t}\n\n\treader := bytes.NewReader(data)\n\n\treturn parseSoftirqs(reader)\n}\n\nfunc parseSoftirqs(r io.Reader) (Softirqs, error) {\n\tvar (\n\t\tsoftirqs = Softirqs{}\n\t\tscanner  = bufio.NewScanner(r)\n\t)\n\n\tif !scanner.Scan() {\n\t\treturn Softirqs{}, fmt.Errorf(\"softirqs empty\")\n\t}\n\n\tfor scanner.Scan() {\n\t\tparts := strings.Fields(scanner.Text())\n\t\tvar err error\n\n\t\t// require at least one cpu\n\t\tif len(parts) < 2 {\n\t\t\tcontinue\n\t\t}\n\t\tswitch {\n\t\tcase parts[0] == \"HI:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.Hi = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.Hi[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (HI%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"TIMER:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.Timer = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.Timer[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (TIMER%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"NET_TX:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.NetTx = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.NetTx[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (NET_TX%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"NET_RX:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.NetRx = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.NetRx[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (NET_RX%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"BLOCK:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.Block = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.Block[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (BLOCK%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"IRQ_POLL:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.IRQPoll = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.IRQPoll[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (IRQ_POLL%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"TASKLET:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.Tasklet = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.Tasklet[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (TASKLET%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"SCHED:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.Sched = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.Sched[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (SCHED%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"HRTIMER:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.HRTimer = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.HRTimer[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (HRTIMER%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"RCU:\":\n\t\t\tperCPU := parts[1:]\n\t\t\tsoftirqs.RCU = make([]uint64, len(perCPU))\n\t\t\tfor i, count := range perCPU {\n\t\t\t\tif softirqs.RCU[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse %q (RCU%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := scanner.Err(); err != nil {\n\t\treturn Softirqs{}, fmt.Errorf(\"couldn't parse softirqs: %w\", err)\n\t}\n\n\treturn softirqs, scanner.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/stat.go",
    "content": "// Copyright 2018 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/fs\"\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// CPUStat shows how much time the cpu spend in various stages.\ntype CPUStat struct {\n\tUser      float64\n\tNice      float64\n\tSystem    float64\n\tIdle      float64\n\tIowait    float64\n\tIRQ       float64\n\tSoftIRQ   float64\n\tSteal     float64\n\tGuest     float64\n\tGuestNice float64\n}\n\n// SoftIRQStat represent the softirq statistics as exported in the procfs stat file.\n// A nice introduction can be found at https://0xax.gitbooks.io/linux-insides/content/interrupts/interrupts-9.html\n// It is possible to get per-cpu stats by reading `/proc/softirqs`.\ntype SoftIRQStat struct {\n\tHi          uint64\n\tTimer       uint64\n\tNetTx       uint64\n\tNetRx       uint64\n\tBlock       uint64\n\tBlockIoPoll uint64\n\tTasklet     uint64\n\tSched       uint64\n\tHrtimer     uint64\n\tRcu         uint64\n}\n\n// Stat represents kernel/system statistics.\ntype Stat struct {\n\t// Boot time in seconds since the Epoch.\n\tBootTime uint64\n\t// Summed up cpu statistics.\n\tCPUTotal CPUStat\n\t// Per-CPU statistics.\n\tCPU map[int64]CPUStat\n\t// Number of times interrupts were handled, which contains numbered and unnumbered IRQs.\n\tIRQTotal uint64\n\t// Number of times a numbered IRQ was triggered.\n\tIRQ []uint64\n\t// Number of times a context switch happened.\n\tContextSwitches uint64\n\t// Number of times a process was created.\n\tProcessCreated uint64\n\t// Number of processes currently running.\n\tProcessesRunning uint64\n\t// Number of processes currently blocked (waiting for IO).\n\tProcessesBlocked uint64\n\t// Number of times a softirq was scheduled.\n\tSoftIRQTotal uint64\n\t// Detailed softirq statistics.\n\tSoftIRQ SoftIRQStat\n}\n\n// Parse a cpu statistics line and returns the CPUStat struct plus the cpu id (or -1 for the overall sum).\nfunc parseCPUStat(line string) (CPUStat, int64, error) {\n\tcpuStat := CPUStat{}\n\tvar cpu string\n\n\tcount, err := fmt.Sscanf(line, \"%s %f %f %f %f %f %f %f %f %f %f\",\n\t\t&cpu,\n\t\t&cpuStat.User, &cpuStat.Nice, &cpuStat.System, &cpuStat.Idle,\n\t\t&cpuStat.Iowait, &cpuStat.IRQ, &cpuStat.SoftIRQ, &cpuStat.Steal,\n\t\t&cpuStat.Guest, &cpuStat.GuestNice)\n\n\tif err != nil && err != io.EOF {\n\t\treturn CPUStat{}, -1, fmt.Errorf(\"couldn't parse %q (cpu): %w\", line, err)\n\t}\n\tif count == 0 {\n\t\treturn CPUStat{}, -1, fmt.Errorf(\"couldn't parse %q (cpu): 0 elements parsed\", line)\n\t}\n\n\tcpuStat.User /= userHZ\n\tcpuStat.Nice /= userHZ\n\tcpuStat.System /= userHZ\n\tcpuStat.Idle /= userHZ\n\tcpuStat.Iowait /= userHZ\n\tcpuStat.IRQ /= userHZ\n\tcpuStat.SoftIRQ /= userHZ\n\tcpuStat.Steal /= userHZ\n\tcpuStat.Guest /= userHZ\n\tcpuStat.GuestNice /= userHZ\n\n\tif cpu == \"cpu\" {\n\t\treturn cpuStat, -1, nil\n\t}\n\n\tcpuID, err := strconv.ParseInt(cpu[3:], 10, 64)\n\tif err != nil {\n\t\treturn CPUStat{}, -1, fmt.Errorf(\"couldn't parse %q (cpu/cpuid): %w\", line, err)\n\t}\n\n\treturn cpuStat, cpuID, nil\n}\n\n// Parse a softirq line.\nfunc parseSoftIRQStat(line string) (SoftIRQStat, uint64, error) {\n\tsoftIRQStat := SoftIRQStat{}\n\tvar total uint64\n\tvar prefix string\n\n\t_, err := fmt.Sscanf(line, \"%s %d %d %d %d %d %d %d %d %d %d %d\",\n\t\t&prefix, &total,\n\t\t&softIRQStat.Hi, &softIRQStat.Timer, &softIRQStat.NetTx, &softIRQStat.NetRx,\n\t\t&softIRQStat.Block, &softIRQStat.BlockIoPoll,\n\t\t&softIRQStat.Tasklet, &softIRQStat.Sched,\n\t\t&softIRQStat.Hrtimer, &softIRQStat.Rcu)\n\n\tif err != nil {\n\t\treturn SoftIRQStat{}, 0, fmt.Errorf(\"couldn't parse %q (softirq): %w\", line, err)\n\t}\n\n\treturn softIRQStat, total, nil\n}\n\n// NewStat returns information about current cpu/process statistics.\n// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt\n//\n// Deprecated: Use fs.Stat() instead.\nfunc NewStat() (Stat, error) {\n\tfs, err := NewFS(fs.DefaultProcMountPoint)\n\tif err != nil {\n\t\treturn Stat{}, err\n\t}\n\treturn fs.Stat()\n}\n\n// NewStat returns information about current cpu/process statistics.\n// See: https://www.kernel.org/doc/Documentation/filesystems/proc.txt\n//\n// Deprecated: Use fs.Stat() instead.\nfunc (fs FS) NewStat() (Stat, error) {\n\treturn fs.Stat()\n}\n\n// Stat returns information about current cpu/process statistics.\n// See: https://www.kernel.org/doc/Documentation/filesystems/proc.txt\nfunc (fs FS) Stat() (Stat, error) {\n\tfileName := fs.proc.Path(\"stat\")\n\tdata, err := util.ReadFileNoStat(fileName)\n\tif err != nil {\n\t\treturn Stat{}, err\n\t}\n\tprocStat, err := parseStat(bytes.NewReader(data), fileName)\n\tif err != nil {\n\t\treturn Stat{}, err\n\t}\n\treturn procStat, nil\n}\n\n// parseStat parses the metrics from /proc/[pid]/stat.\nfunc parseStat(r io.Reader, fileName string) (Stat, error) {\n\tvar (\n\t\tscanner = bufio.NewScanner(r)\n\t\tstat    = Stat{\n\t\t\tCPU: make(map[int64]CPUStat),\n\t\t}\n\t\terr error\n\t)\n\n\tfor scanner.Scan() {\n\t\tline := scanner.Text()\n\t\tparts := strings.Fields(scanner.Text())\n\t\t// require at least <key> <value>\n\t\tif len(parts) < 2 {\n\t\t\tcontinue\n\t\t}\n\t\tswitch {\n\t\tcase parts[0] == \"btime\":\n\t\t\tif stat.BootTime, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (btime): %w\", parts[1], err)\n\t\t\t}\n\t\tcase parts[0] == \"intr\":\n\t\t\tif stat.IRQTotal, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (intr): %w\", parts[1], err)\n\t\t\t}\n\t\t\tnumberedIRQs := parts[2:]\n\t\t\tstat.IRQ = make([]uint64, len(numberedIRQs))\n\t\t\tfor i, count := range numberedIRQs {\n\t\t\t\tif stat.IRQ[i], err = strconv.ParseUint(count, 10, 64); err != nil {\n\t\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (intr%d): %w\", count, i, err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase parts[0] == \"ctxt\":\n\t\t\tif stat.ContextSwitches, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (ctxt): %w\", parts[1], err)\n\t\t\t}\n\t\tcase parts[0] == \"processes\":\n\t\t\tif stat.ProcessCreated, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (processes): %w\", parts[1], err)\n\t\t\t}\n\t\tcase parts[0] == \"procs_running\":\n\t\t\tif stat.ProcessesRunning, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (procs_running): %w\", parts[1], err)\n\t\t\t}\n\t\tcase parts[0] == \"procs_blocked\":\n\t\t\tif stat.ProcessesBlocked, err = strconv.ParseUint(parts[1], 10, 64); err != nil {\n\t\t\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q (procs_blocked): %w\", parts[1], err)\n\t\t\t}\n\t\tcase parts[0] == \"softirq\":\n\t\t\tsoftIRQStats, total, err := parseSoftIRQStat(line)\n\t\t\tif err != nil {\n\t\t\t\treturn Stat{}, err\n\t\t\t}\n\t\t\tstat.SoftIRQTotal = total\n\t\t\tstat.SoftIRQ = softIRQStats\n\t\tcase strings.HasPrefix(parts[0], \"cpu\"):\n\t\t\tcpuStat, cpuID, err := parseCPUStat(line)\n\t\t\tif err != nil {\n\t\t\t\treturn Stat{}, err\n\t\t\t}\n\t\t\tif cpuID == -1 {\n\t\t\t\tstat.CPUTotal = cpuStat\n\t\t\t} else {\n\t\t\t\tstat.CPU[cpuID] = cpuStat\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := scanner.Err(); err != nil {\n\t\treturn Stat{}, fmt.Errorf(\"couldn't parse %q: %w\", fileName, err)\n\t}\n\n\treturn stat, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/swaps.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Swap represents an entry in /proc/swaps.\ntype Swap struct {\n\tFilename string\n\tType     string\n\tSize     int\n\tUsed     int\n\tPriority int\n}\n\n// Swaps returns a slice of all configured swap devices on the system.\nfunc (fs FS) Swaps() ([]*Swap, error) {\n\tdata, err := util.ReadFileNoStat(fs.proc.Path(\"swaps\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseSwaps(data)\n}\n\nfunc parseSwaps(info []byte) ([]*Swap, error) {\n\tswaps := []*Swap{}\n\tscanner := bufio.NewScanner(bytes.NewReader(info))\n\tscanner.Scan() // ignore header line\n\tfor scanner.Scan() {\n\t\tswapString := scanner.Text()\n\t\tparsedSwap, err := parseSwapString(swapString)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswaps = append(swaps, parsedSwap)\n\t}\n\n\terr := scanner.Err()\n\treturn swaps, err\n}\n\nfunc parseSwapString(swapString string) (*Swap, error) {\n\tvar err error\n\n\tswapFields := strings.Fields(swapString)\n\tswapLength := len(swapFields)\n\tif swapLength < 5 {\n\t\treturn nil, fmt.Errorf(\"too few fields in swap string: %s\", swapString)\n\t}\n\n\tswap := &Swap{\n\t\tFilename: swapFields[0],\n\t\tType:     swapFields[1],\n\t}\n\n\tswap.Size, err = strconv.Atoi(swapFields[2])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid swap size: %s\", swapFields[2])\n\t}\n\tswap.Used, err = strconv.Atoi(swapFields[3])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid swap used: %s\", swapFields[3])\n\t}\n\tswap.Priority, err = strconv.Atoi(swapFields[4])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid swap priority: %s\", swapFields[4])\n\t}\n\n\treturn swap, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/thread.go",
    "content": "// Copyright 2022 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\n\tfsi \"github.com/prometheus/procfs/internal/fs\"\n)\n\n// Provide access to /proc/PID/task/TID files, for thread specific values. Since\n// such files have the same structure as /proc/PID/ ones, the data structures\n// and the parsers for the latter may be reused.\n\n// AllThreads returns a list of all currently available threads under /proc/PID.\nfunc AllThreads(pid int) (Procs, error) {\n\tfs, err := NewFS(DefaultMountPoint)\n\tif err != nil {\n\t\treturn Procs{}, err\n\t}\n\treturn fs.AllThreads(pid)\n}\n\n// AllThreads returns a list of all currently available threads for PID.\nfunc (fs FS) AllThreads(pid int) (Procs, error) {\n\ttaskPath := fs.proc.Path(strconv.Itoa(pid), \"task\")\n\td, err := os.Open(taskPath)\n\tif err != nil {\n\t\treturn Procs{}, err\n\t}\n\tdefer d.Close()\n\n\tnames, err := d.Readdirnames(-1)\n\tif err != nil {\n\t\treturn Procs{}, fmt.Errorf(\"could not read %q: %w\", d.Name(), err)\n\t}\n\n\tt := Procs{}\n\tfor _, n := range names {\n\t\ttid, err := strconv.ParseInt(n, 10, 64)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tt = append(t, Proc{PID: int(tid), fs: FS{fsi.FS(taskPath), fs.real}})\n\t}\n\n\treturn t, nil\n}\n\n// Thread returns a process for a given PID, TID.\nfunc (fs FS) Thread(pid, tid int) (Proc, error) {\n\ttaskPath := fs.proc.Path(strconv.Itoa(pid), \"task\")\n\tif _, err := os.Stat(taskPath); err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn Proc{PID: tid, fs: FS{fsi.FS(taskPath), fs.real}}, nil\n}\n\n// Thread returns a process for a given TID of Proc.\nfunc (proc Proc) Thread(tid int) (Proc, error) {\n\ttfs := FS{fsi.FS(proc.path(\"task\")), proc.fs.real}\n\tif _, err := os.Stat(tfs.proc.Path(strconv.Itoa(tid))); err != nil {\n\t\treturn Proc{}, err\n\t}\n\treturn Proc{PID: tid, fs: tfs}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/ttar",
    "content": "#!/usr/bin/env bash\n\n# Purpose: plain text tar format\n# Limitations: - only suitable for text files, directories, and symlinks\n#              - stores only filename, content, and mode\n#              - not designed for untrusted input\n#\n# Note: must work with bash version 3.2 (macOS)\n\n# Copyright 2017 Roger Luethi\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit -o nounset\n\n# Sanitize environment (for instance, standard sorting of glob matches)\nexport LC_ALL=C\n\npath=\"\"\nCMD=\"\"\nARG_STRING=\"$*\"\n\n#------------------------------------------------------------------------------\n# Not all sed implementations can work on null bytes. In order to make ttar\n# work out of the box on macOS, use Python as a stream editor.\n\nUSE_PYTHON=0\n\nPYTHON_CREATE_FILTER=$(cat << 'PCF'\n#!/usr/bin/env python\n\nimport re\nimport sys\n\nfor line in sys.stdin:\n    line = re.sub(r'EOF', r'\\EOF', line)\n    line = re.sub(r'NULLBYTE', r'\\NULLBYTE', line)\n    line = re.sub('\\x00', r'NULLBYTE', line)\n    sys.stdout.write(line)\nPCF\n)\n\nPYTHON_EXTRACT_FILTER=$(cat << 'PEF'\n#!/usr/bin/env python\n\nimport re\nimport sys\n\nfor line in sys.stdin:\n    line = re.sub(r'(?<!\\\\)NULLBYTE', '\\x00', line)\n    line = re.sub(r'\\\\NULLBYTE', 'NULLBYTE', line)\n    line = re.sub(r'([^\\\\])EOF', r'\\1', line)\n    line = re.sub(r'\\\\EOF', 'EOF', line)\n    sys.stdout.write(line)\nPEF\n)\n\nfunction test_environment {\n    if [[ \"$(echo \"a\" | sed 's/a/\\x0/' | wc -c)\" -ne 2 ]]; then\n        echo \"WARNING sed unable to handle null bytes, using Python (slow).\"\n        if ! which python >/dev/null; then\n            echo \"ERROR Python not found. Aborting.\"\n            exit 2\n        fi\n        USE_PYTHON=1\n    fi\n}\n\n#------------------------------------------------------------------------------\n\nfunction usage {\n    bname=$(basename \"$0\")\n    cat << USAGE\nUsage:   $bname [-C <DIR>] -c -f <ARCHIVE> <FILE...> (create archive)\n         $bname            -t -f <ARCHIVE>           (list archive contents)\n         $bname [-C <DIR>] -x -f <ARCHIVE>           (extract archive)\n\nOptions:\n         -C <DIR>           (change directory)\n         -v                 (verbose)\n         --recursive-unlink (recursively delete existing directory if path\n                             collides with file or directory to extract)\n\nExample: Change to sysfs directory, create ttar file from fixtures directory\n         $bname -C sysfs -c -f sysfs/fixtures.ttar fixtures/\nUSAGE\nexit \"$1\"\n}\n\nfunction vecho {\n    if [ \"${VERBOSE:-}\" == \"yes\" ]; then\n        echo >&7 \"$@\"\n    fi\n}\n\nfunction set_cmd {\n    if [ -n \"$CMD\" ]; then\n        echo \"ERROR: more than one command given\"\n        echo\n        usage 2\n    fi\n    CMD=$1\n}\n\nunset VERBOSE\nunset RECURSIVE_UNLINK\n\nwhile getopts :cf:-:htxvC: opt; do\n    case $opt in\n        c)\n            set_cmd \"create\"\n            ;;\n        f)\n            ARCHIVE=$OPTARG\n            ;;\n        h)\n            usage 0\n            ;;\n        t)\n            set_cmd \"list\"\n            ;;\n        x)\n            set_cmd \"extract\"\n            ;;\n        v)\n            VERBOSE=yes\n            exec 7>&1\n            ;;\n        C)\n            CDIR=$OPTARG\n            ;;\n        -)\n            case $OPTARG in\n                recursive-unlink)\n                    RECURSIVE_UNLINK=\"yes\"\n                    ;;\n                *)\n                    echo -e \"Error: invalid option -$OPTARG\"\n                    echo\n                    usage 1\n                    ;;\n            esac\n            ;;\n        *)\n            echo >&2 \"ERROR: invalid option -$OPTARG\"\n            echo\n            usage 1\n            ;;\n    esac\ndone\n\n# Remove processed options from arguments\nshift $(( OPTIND - 1 ));\n\nif [ \"${CMD:-}\" == \"\" ]; then\n    echo >&2 \"ERROR: no command given\"\n    echo\n    usage 1\nelif [ \"${ARCHIVE:-}\" == \"\" ]; then\n    echo >&2 \"ERROR: no archive name given\"\n    echo\n    usage 1\nfi\n\nfunction list {\n    local path=\"\"\n    local size=0\n    local line_no=0\n    local ttar_file=$1\n    if [ -n \"${2:-}\" ]; then\n        echo >&2 \"ERROR: too many arguments.\"\n        echo\n        usage 1\n    fi\n    if [ ! -e \"$ttar_file\" ]; then\n        echo >&2 \"ERROR: file not found ($ttar_file)\"\n        echo\n        usage 1\n    fi\n    while read -r line; do\n        line_no=$(( line_no + 1 ))\n        if [ $size -gt 0 ]; then\n            size=$(( size - 1 ))\n            continue\n        fi\n        if [[ $line =~ ^Path:\\ (.*)$ ]]; then\n            path=${BASH_REMATCH[1]}\n        elif [[ $line =~ ^Lines:\\ (.*)$ ]]; then\n            size=${BASH_REMATCH[1]}\n            echo \"$path\"\n        elif [[ $line =~ ^Directory:\\ (.*)$ ]]; then\n            path=${BASH_REMATCH[1]}\n            echo \"$path/\"\n        elif [[ $line =~ ^SymlinkTo:\\ (.*)$ ]]; then\n            echo  \"$path -> ${BASH_REMATCH[1]}\"\n        fi\n    done < \"$ttar_file\"\n}\n\nfunction extract {\n    local path=\"\"\n    local size=0\n    local line_no=0\n    local ttar_file=$1\n    if [ -n \"${2:-}\" ]; then\n        echo >&2 \"ERROR: too many arguments.\"\n        echo\n        usage 1\n    fi\n    if [ ! -e \"$ttar_file\" ]; then\n        echo >&2 \"ERROR: file not found ($ttar_file)\"\n        echo\n        usage 1\n    fi\n    while IFS= read -r line; do\n        line_no=$(( line_no + 1 ))\n        local eof_without_newline\n        if [ \"$size\" -gt 0 ]; then\n            if [[ \"$line\" =~ [^\\\\]EOF ]]; then\n                # An EOF not preceded by a backslash indicates that the line\n                # does not end with a newline\n                eof_without_newline=1\n            else\n                eof_without_newline=0\n            fi\n            # Replace NULLBYTE with null byte if at beginning of line\n            # Replace NULLBYTE with null byte unless preceded by backslash\n            # Remove one backslash in front of NULLBYTE (if any)\n            # Remove EOF unless preceded by backslash\n            # Remove one backslash in front of EOF\n            if [ $USE_PYTHON -eq 1 ]; then\n                echo -n \"$line\" | python -c \"$PYTHON_EXTRACT_FILTER\" >> \"$path\"\n            else\n                # The repeated pattern makes up for sed's lack of negative\n                # lookbehind assertions (for consecutive null bytes).\n                echo -n \"$line\" | \\\n                    sed -e 's/^NULLBYTE/\\x0/g;\n                            s/\\([^\\\\]\\)NULLBYTE/\\1\\x0/g;\n                            s/\\([^\\\\]\\)NULLBYTE/\\1\\x0/g;\n                            s/\\\\NULLBYTE/NULLBYTE/g;\n                            s/\\([^\\\\]\\)EOF/\\1/g;\n                            s/\\\\EOF/EOF/g;\n                    ' >> \"$path\"\n            fi\n            if [[ \"$eof_without_newline\" -eq 0 ]]; then\n                echo >> \"$path\"\n            fi\n            size=$(( size - 1 ))\n            continue\n        fi\n        if [[ $line =~ ^Path:\\ (.*)$ ]]; then\n            path=${BASH_REMATCH[1]}\n            if [ -L \"$path\" ]; then\n                rm \"$path\"\n            elif [ -d \"$path\" ]; then\n                if [ \"${RECURSIVE_UNLINK:-}\" == \"yes\" ]; then\n                    rm -r \"$path\"\n                else\n                    # Safe because symlinks to directories are dealt with above\n                    rmdir \"$path\"\n                fi\n            elif [ -e \"$path\" ]; then\n                rm \"$path\"\n            fi\n        elif [[ $line =~ ^Lines:\\ (.*)$ ]]; then\n            size=${BASH_REMATCH[1]}\n            # Create file even if it is zero-length.\n            touch \"$path\"\n            vecho \"    $path\"\n        elif [[ $line =~ ^Mode:\\ (.*)$ ]]; then\n            mode=${BASH_REMATCH[1]}\n            chmod \"$mode\" \"$path\"\n            vecho \"$mode\"\n        elif [[ $line =~ ^Directory:\\ (.*)$ ]]; then\n            path=${BASH_REMATCH[1]}\n            mkdir -p \"$path\"\n            vecho \"    $path/\"\n        elif [[ $line =~ ^SymlinkTo:\\ (.*)$ ]]; then\n            ln -s \"${BASH_REMATCH[1]}\" \"$path\"\n            vecho \"    $path -> ${BASH_REMATCH[1]}\"\n        elif [[ $line =~ ^# ]]; then\n            # Ignore comments between files\n            continue\n        else\n            echo >&2 \"ERROR: Unknown keyword on line $line_no: $line\"\n            exit 1\n        fi\n    done < \"$ttar_file\"\n}\n\nfunction div {\n    echo \"# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\" \\\n         \"- - - - - -\"\n}\n\nfunction get_mode {\n    local mfile=$1\n    if [ -z \"${STAT_OPTION:-}\" ]; then\n        if stat -c '%a' \"$mfile\" >/dev/null 2>&1; then\n            # GNU stat\n            STAT_OPTION='-c'\n            STAT_FORMAT='%a'\n        else\n            # BSD stat\n            STAT_OPTION='-f'\n            # Octal output, user/group/other (omit file type, sticky bit)\n            STAT_FORMAT='%OLp'\n        fi\n    fi\n    stat \"${STAT_OPTION}\" \"${STAT_FORMAT}\" \"$mfile\"\n}\n\nfunction _create {\n    shopt -s nullglob\n    local mode\n    local eof_without_newline\n    while (( \"$#\" )); do\n        file=$1\n        if [ -L \"$file\" ]; then\n            echo \"Path: $file\"\n            symlinkTo=$(readlink \"$file\")\n            echo \"SymlinkTo: $symlinkTo\"\n            vecho \"    $file -> $symlinkTo\"\n            div\n        elif [ -d \"$file\" ]; then\n            # Strip trailing slash (if there is one)\n            file=${file%/}\n            echo \"Directory: $file\"\n            mode=$(get_mode \"$file\")\n            echo \"Mode: $mode\"\n            vecho \"$mode $file/\"\n            div\n            # Find all files and dirs, including hidden/dot files\n            for x in \"$file/\"{*,.[^.]*}; do\n                _create \"$x\"\n            done\n        elif [ -f \"$file\" ]; then\n            echo \"Path: $file\"\n            lines=$(wc -l \"$file\"|awk '{print $1}')\n            eof_without_newline=0\n            if [[ \"$(wc -c \"$file\"|awk '{print $1}')\" -gt 0 ]] && \\\n                    [[ \"$(tail -c 1 \"$file\" | wc -l)\" -eq 0 ]]; then\n                eof_without_newline=1\n                lines=$((lines+1))\n            fi\n            echo \"Lines: $lines\"\n            # Add backslash in front of EOF\n            # Add backslash in front of NULLBYTE\n            # Replace null byte with NULLBYTE\n            if [ $USE_PYTHON -eq 1 ]; then\n                < \"$file\" python -c \"$PYTHON_CREATE_FILTER\"\n            else\n                < \"$file\" \\\n                    sed 's/EOF/\\\\EOF/g;\n                            s/NULLBYTE/\\\\NULLBYTE/g;\n                            s/\\x0/NULLBYTE/g;\n                    '\n            fi\n            if [[ \"$eof_without_newline\" -eq 1 ]]; then\n                # Finish line with EOF to indicate that the original line did\n                # not end with a linefeed\n                echo \"EOF\"\n            fi\n            mode=$(get_mode \"$file\")\n            echo \"Mode: $mode\"\n            vecho \"$mode $file\"\n            div\n        else\n            echo >&2 \"ERROR: file not found ($file in $(pwd))\"\n            exit 2\n        fi\n        shift\n    done\n}\n\nfunction create {\n    ttar_file=$1\n    shift\n    if [ -z \"${1:-}\" ]; then\n        echo >&2 \"ERROR: missing arguments.\"\n        echo\n        usage 1\n    fi\n    if [ -e \"$ttar_file\" ]; then\n        rm \"$ttar_file\"\n    fi\n    exec > \"$ttar_file\"\n    echo \"# Archive created by ttar $ARG_STRING\"\n    _create \"$@\"\n}\n\ntest_environment\n\nif [ -n \"${CDIR:-}\" ]; then\n    if [[ \"$ARCHIVE\" != /* ]]; then\n        # Relative path: preserve the archive's location before changing\n        # directory\n        ARCHIVE=\"$(pwd)/$ARCHIVE\"\n    fi\n    cd \"$CDIR\"\nfi\n\n\"$CMD\" \"$ARCHIVE\" \"$@\"\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/vm.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows\n// +build !windows\n\npackage procfs\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// The VM interface is described at\n//\n//\thttps://www.kernel.org/doc/Documentation/sysctl/vm.txt\n//\n// Each setting is exposed as a single file.\n// Each file contains one line with a single numerical value, except lowmem_reserve_ratio which holds an array\n// and numa_zonelist_order (deprecated) which is a string.\ntype VM struct {\n\tAdminReserveKbytes        *int64   // /proc/sys/vm/admin_reserve_kbytes\n\tBlockDump                 *int64   // /proc/sys/vm/block_dump\n\tCompactUnevictableAllowed *int64   // /proc/sys/vm/compact_unevictable_allowed\n\tDirtyBackgroundBytes      *int64   // /proc/sys/vm/dirty_background_bytes\n\tDirtyBackgroundRatio      *int64   // /proc/sys/vm/dirty_background_ratio\n\tDirtyBytes                *int64   // /proc/sys/vm/dirty_bytes\n\tDirtyExpireCentisecs      *int64   // /proc/sys/vm/dirty_expire_centisecs\n\tDirtyRatio                *int64   // /proc/sys/vm/dirty_ratio\n\tDirtytimeExpireSeconds    *int64   // /proc/sys/vm/dirtytime_expire_seconds\n\tDirtyWritebackCentisecs   *int64   // /proc/sys/vm/dirty_writeback_centisecs\n\tDropCaches                *int64   // /proc/sys/vm/drop_caches\n\tExtfragThreshold          *int64   // /proc/sys/vm/extfrag_threshold\n\tHugetlbShmGroup           *int64   // /proc/sys/vm/hugetlb_shm_group\n\tLaptopMode                *int64   // /proc/sys/vm/laptop_mode\n\tLegacyVaLayout            *int64   // /proc/sys/vm/legacy_va_layout\n\tLowmemReserveRatio        []*int64 // /proc/sys/vm/lowmem_reserve_ratio\n\tMaxMapCount               *int64   // /proc/sys/vm/max_map_count\n\tMemoryFailureEarlyKill    *int64   // /proc/sys/vm/memory_failure_early_kill\n\tMemoryFailureRecovery     *int64   // /proc/sys/vm/memory_failure_recovery\n\tMinFreeKbytes             *int64   // /proc/sys/vm/min_free_kbytes\n\tMinSlabRatio              *int64   // /proc/sys/vm/min_slab_ratio\n\tMinUnmappedRatio          *int64   // /proc/sys/vm/min_unmapped_ratio\n\tMmapMinAddr               *int64   // /proc/sys/vm/mmap_min_addr\n\tNrHugepages               *int64   // /proc/sys/vm/nr_hugepages\n\tNrHugepagesMempolicy      *int64   // /proc/sys/vm/nr_hugepages_mempolicy\n\tNrOvercommitHugepages     *int64   // /proc/sys/vm/nr_overcommit_hugepages\n\tNumaStat                  *int64   // /proc/sys/vm/numa_stat\n\tNumaZonelistOrder         string   // /proc/sys/vm/numa_zonelist_order\n\tOomDumpTasks              *int64   // /proc/sys/vm/oom_dump_tasks\n\tOomKillAllocatingTask     *int64   // /proc/sys/vm/oom_kill_allocating_task\n\tOvercommitKbytes          *int64   // /proc/sys/vm/overcommit_kbytes\n\tOvercommitMemory          *int64   // /proc/sys/vm/overcommit_memory\n\tOvercommitRatio           *int64   // /proc/sys/vm/overcommit_ratio\n\tPageCluster               *int64   // /proc/sys/vm/page-cluster\n\tPanicOnOom                *int64   // /proc/sys/vm/panic_on_oom\n\tPercpuPagelistFraction    *int64   // /proc/sys/vm/percpu_pagelist_fraction\n\tStatInterval              *int64   // /proc/sys/vm/stat_interval\n\tSwappiness                *int64   // /proc/sys/vm/swappiness\n\tUserReserveKbytes         *int64   // /proc/sys/vm/user_reserve_kbytes\n\tVfsCachePressure          *int64   // /proc/sys/vm/vfs_cache_pressure\n\tWatermarkBoostFactor      *int64   // /proc/sys/vm/watermark_boost_factor\n\tWatermarkScaleFactor      *int64   // /proc/sys/vm/watermark_scale_factor\n\tZoneReclaimMode           *int64   // /proc/sys/vm/zone_reclaim_mode\n}\n\n// VM reads the VM statistics from the specified `proc` filesystem.\nfunc (fs FS) VM() (*VM, error) {\n\tpath := fs.proc.Path(\"sys/vm\")\n\tfile, err := os.Stat(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !file.Mode().IsDir() {\n\t\treturn nil, fmt.Errorf(\"%s is not a directory\", path)\n\t}\n\n\tfiles, err := os.ReadDir(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar vm VM\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\n\t\tname := filepath.Join(path, f.Name())\n\t\t// ignore errors on read, as there are some write only\n\t\t// in /proc/sys/vm\n\t\tvalue, err := util.SysReadFile(name)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tvp := util.NewValueParser(value)\n\n\t\tswitch f.Name() {\n\t\tcase \"admin_reserve_kbytes\":\n\t\t\tvm.AdminReserveKbytes = vp.PInt64()\n\t\tcase \"block_dump\":\n\t\t\tvm.BlockDump = vp.PInt64()\n\t\tcase \"compact_unevictable_allowed\":\n\t\t\tvm.CompactUnevictableAllowed = vp.PInt64()\n\t\tcase \"dirty_background_bytes\":\n\t\t\tvm.DirtyBackgroundBytes = vp.PInt64()\n\t\tcase \"dirty_background_ratio\":\n\t\t\tvm.DirtyBackgroundRatio = vp.PInt64()\n\t\tcase \"dirty_bytes\":\n\t\t\tvm.DirtyBytes = vp.PInt64()\n\t\tcase \"dirty_expire_centisecs\":\n\t\t\tvm.DirtyExpireCentisecs = vp.PInt64()\n\t\tcase \"dirty_ratio\":\n\t\t\tvm.DirtyRatio = vp.PInt64()\n\t\tcase \"dirtytime_expire_seconds\":\n\t\t\tvm.DirtytimeExpireSeconds = vp.PInt64()\n\t\tcase \"dirty_writeback_centisecs\":\n\t\t\tvm.DirtyWritebackCentisecs = vp.PInt64()\n\t\tcase \"drop_caches\":\n\t\t\tvm.DropCaches = vp.PInt64()\n\t\tcase \"extfrag_threshold\":\n\t\t\tvm.ExtfragThreshold = vp.PInt64()\n\t\tcase \"hugetlb_shm_group\":\n\t\t\tvm.HugetlbShmGroup = vp.PInt64()\n\t\tcase \"laptop_mode\":\n\t\t\tvm.LaptopMode = vp.PInt64()\n\t\tcase \"legacy_va_layout\":\n\t\t\tvm.LegacyVaLayout = vp.PInt64()\n\t\tcase \"lowmem_reserve_ratio\":\n\t\t\tstringSlice := strings.Fields(value)\n\t\t\tpint64Slice := make([]*int64, 0, len(stringSlice))\n\t\t\tfor _, value := range stringSlice {\n\t\t\t\tvp := util.NewValueParser(value)\n\t\t\t\tpint64Slice = append(pint64Slice, vp.PInt64())\n\t\t\t}\n\t\t\tvm.LowmemReserveRatio = pint64Slice\n\t\tcase \"max_map_count\":\n\t\t\tvm.MaxMapCount = vp.PInt64()\n\t\tcase \"memory_failure_early_kill\":\n\t\t\tvm.MemoryFailureEarlyKill = vp.PInt64()\n\t\tcase \"memory_failure_recovery\":\n\t\t\tvm.MemoryFailureRecovery = vp.PInt64()\n\t\tcase \"min_free_kbytes\":\n\t\t\tvm.MinFreeKbytes = vp.PInt64()\n\t\tcase \"min_slab_ratio\":\n\t\t\tvm.MinSlabRatio = vp.PInt64()\n\t\tcase \"min_unmapped_ratio\":\n\t\t\tvm.MinUnmappedRatio = vp.PInt64()\n\t\tcase \"mmap_min_addr\":\n\t\t\tvm.MmapMinAddr = vp.PInt64()\n\t\tcase \"nr_hugepages\":\n\t\t\tvm.NrHugepages = vp.PInt64()\n\t\tcase \"nr_hugepages_mempolicy\":\n\t\t\tvm.NrHugepagesMempolicy = vp.PInt64()\n\t\tcase \"nr_overcommit_hugepages\":\n\t\t\tvm.NrOvercommitHugepages = vp.PInt64()\n\t\tcase \"numa_stat\":\n\t\t\tvm.NumaStat = vp.PInt64()\n\t\tcase \"numa_zonelist_order\":\n\t\t\tvm.NumaZonelistOrder = value\n\t\tcase \"oom_dump_tasks\":\n\t\t\tvm.OomDumpTasks = vp.PInt64()\n\t\tcase \"oom_kill_allocating_task\":\n\t\t\tvm.OomKillAllocatingTask = vp.PInt64()\n\t\tcase \"overcommit_kbytes\":\n\t\t\tvm.OvercommitKbytes = vp.PInt64()\n\t\tcase \"overcommit_memory\":\n\t\t\tvm.OvercommitMemory = vp.PInt64()\n\t\tcase \"overcommit_ratio\":\n\t\t\tvm.OvercommitRatio = vp.PInt64()\n\t\tcase \"page-cluster\":\n\t\t\tvm.PageCluster = vp.PInt64()\n\t\tcase \"panic_on_oom\":\n\t\t\tvm.PanicOnOom = vp.PInt64()\n\t\tcase \"percpu_pagelist_fraction\":\n\t\t\tvm.PercpuPagelistFraction = vp.PInt64()\n\t\tcase \"stat_interval\":\n\t\t\tvm.StatInterval = vp.PInt64()\n\t\tcase \"swappiness\":\n\t\t\tvm.Swappiness = vp.PInt64()\n\t\tcase \"user_reserve_kbytes\":\n\t\t\tvm.UserReserveKbytes = vp.PInt64()\n\t\tcase \"vfs_cache_pressure\":\n\t\t\tvm.VfsCachePressure = vp.PInt64()\n\t\tcase \"watermark_boost_factor\":\n\t\t\tvm.WatermarkBoostFactor = vp.PInt64()\n\t\tcase \"watermark_scale_factor\":\n\t\t\tvm.WatermarkScaleFactor = vp.PInt64()\n\t\tcase \"zone_reclaim_mode\":\n\t\t\tvm.ZoneReclaimMode = vp.PInt64()\n\t\t}\n\t\tif err := vp.Err(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &vm, nil\n}\n"
  },
  {
    "path": "vendor/github.com/prometheus/procfs/zoneinfo.go",
    "content": "// Copyright 2019 The Prometheus Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows\n// +build !windows\n\npackage procfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/prometheus/procfs/internal/util\"\n)\n\n// Zoneinfo holds info parsed from /proc/zoneinfo.\ntype Zoneinfo struct {\n\tNode                       string\n\tZone                       string\n\tNrFreePages                *int64\n\tMin                        *int64\n\tLow                        *int64\n\tHigh                       *int64\n\tScanned                    *int64\n\tSpanned                    *int64\n\tPresent                    *int64\n\tManaged                    *int64\n\tNrActiveAnon               *int64\n\tNrInactiveAnon             *int64\n\tNrIsolatedAnon             *int64\n\tNrAnonPages                *int64\n\tNrAnonTransparentHugepages *int64\n\tNrActiveFile               *int64\n\tNrInactiveFile             *int64\n\tNrIsolatedFile             *int64\n\tNrFilePages                *int64\n\tNrSlabReclaimable          *int64\n\tNrSlabUnreclaimable        *int64\n\tNrMlockStack               *int64\n\tNrKernelStack              *int64\n\tNrMapped                   *int64\n\tNrDirty                    *int64\n\tNrWriteback                *int64\n\tNrUnevictable              *int64\n\tNrShmem                    *int64\n\tNrDirtied                  *int64\n\tNrWritten                  *int64\n\tNumaHit                    *int64\n\tNumaMiss                   *int64\n\tNumaForeign                *int64\n\tNumaInterleave             *int64\n\tNumaLocal                  *int64\n\tNumaOther                  *int64\n\tProtection                 []*int64\n}\n\nvar nodeZoneRE = regexp.MustCompile(`(\\d+), zone\\s+(\\w+)`)\n\n// Zoneinfo parses an zoneinfo-file (/proc/zoneinfo) and returns a slice of\n// structs containing the relevant info.  More information available here:\n// https://www.kernel.org/doc/Documentation/sysctl/vm.txt\nfunc (fs FS) Zoneinfo() ([]Zoneinfo, error) {\n\tdata, err := os.ReadFile(fs.proc.Path(\"zoneinfo\"))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading zoneinfo %q: %w\", fs.proc.Path(\"zoneinfo\"), err)\n\t}\n\tzoneinfo, err := parseZoneinfo(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing zoneinfo %q: %w\", fs.proc.Path(\"zoneinfo\"), err)\n\t}\n\treturn zoneinfo, nil\n}\n\nfunc parseZoneinfo(zoneinfoData []byte) ([]Zoneinfo, error) {\n\n\tzoneinfo := []Zoneinfo{}\n\n\tzoneinfoBlocks := bytes.Split(zoneinfoData, []byte(\"\\nNode\"))\n\tfor _, block := range zoneinfoBlocks {\n\t\tvar zoneinfoElement Zoneinfo\n\t\tlines := strings.Split(string(block), \"\\n\")\n\t\tfor _, line := range lines {\n\n\t\t\tif nodeZone := nodeZoneRE.FindStringSubmatch(line); nodeZone != nil {\n\t\t\t\tzoneinfoElement.Node = nodeZone[1]\n\t\t\t\tzoneinfoElement.Zone = nodeZone[2]\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(strings.TrimSpace(line), \"per-node stats\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tparts := strings.Fields(strings.TrimSpace(line))\n\t\t\tif len(parts) < 2 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvp := util.NewValueParser(parts[1])\n\t\t\tswitch parts[0] {\n\t\t\tcase \"nr_free_pages\":\n\t\t\t\tzoneinfoElement.NrFreePages = vp.PInt64()\n\t\t\tcase \"min\":\n\t\t\t\tzoneinfoElement.Min = vp.PInt64()\n\t\t\tcase \"low\":\n\t\t\t\tzoneinfoElement.Low = vp.PInt64()\n\t\t\tcase \"high\":\n\t\t\t\tzoneinfoElement.High = vp.PInt64()\n\t\t\tcase \"scanned\":\n\t\t\t\tzoneinfoElement.Scanned = vp.PInt64()\n\t\t\tcase \"spanned\":\n\t\t\t\tzoneinfoElement.Spanned = vp.PInt64()\n\t\t\tcase \"present\":\n\t\t\t\tzoneinfoElement.Present = vp.PInt64()\n\t\t\tcase \"managed\":\n\t\t\t\tzoneinfoElement.Managed = vp.PInt64()\n\t\t\tcase \"nr_active_anon\":\n\t\t\t\tzoneinfoElement.NrActiveAnon = vp.PInt64()\n\t\t\tcase \"nr_inactive_anon\":\n\t\t\t\tzoneinfoElement.NrInactiveAnon = vp.PInt64()\n\t\t\tcase \"nr_isolated_anon\":\n\t\t\t\tzoneinfoElement.NrIsolatedAnon = vp.PInt64()\n\t\t\tcase \"nr_anon_pages\":\n\t\t\t\tzoneinfoElement.NrAnonPages = vp.PInt64()\n\t\t\tcase \"nr_anon_transparent_hugepages\":\n\t\t\t\tzoneinfoElement.NrAnonTransparentHugepages = vp.PInt64()\n\t\t\tcase \"nr_active_file\":\n\t\t\t\tzoneinfoElement.NrActiveFile = vp.PInt64()\n\t\t\tcase \"nr_inactive_file\":\n\t\t\t\tzoneinfoElement.NrInactiveFile = vp.PInt64()\n\t\t\tcase \"nr_isolated_file\":\n\t\t\t\tzoneinfoElement.NrIsolatedFile = vp.PInt64()\n\t\t\tcase \"nr_file_pages\":\n\t\t\t\tzoneinfoElement.NrFilePages = vp.PInt64()\n\t\t\tcase \"nr_slab_reclaimable\":\n\t\t\t\tzoneinfoElement.NrSlabReclaimable = vp.PInt64()\n\t\t\tcase \"nr_slab_unreclaimable\":\n\t\t\t\tzoneinfoElement.NrSlabUnreclaimable = vp.PInt64()\n\t\t\tcase \"nr_mlock_stack\":\n\t\t\t\tzoneinfoElement.NrMlockStack = vp.PInt64()\n\t\t\tcase \"nr_kernel_stack\":\n\t\t\t\tzoneinfoElement.NrKernelStack = vp.PInt64()\n\t\t\tcase \"nr_mapped\":\n\t\t\t\tzoneinfoElement.NrMapped = vp.PInt64()\n\t\t\tcase \"nr_dirty\":\n\t\t\t\tzoneinfoElement.NrDirty = vp.PInt64()\n\t\t\tcase \"nr_writeback\":\n\t\t\t\tzoneinfoElement.NrWriteback = vp.PInt64()\n\t\t\tcase \"nr_unevictable\":\n\t\t\t\tzoneinfoElement.NrUnevictable = vp.PInt64()\n\t\t\tcase \"nr_shmem\":\n\t\t\t\tzoneinfoElement.NrShmem = vp.PInt64()\n\t\t\tcase \"nr_dirtied\":\n\t\t\t\tzoneinfoElement.NrDirtied = vp.PInt64()\n\t\t\tcase \"nr_written\":\n\t\t\t\tzoneinfoElement.NrWritten = vp.PInt64()\n\t\t\tcase \"numa_hit\":\n\t\t\t\tzoneinfoElement.NumaHit = vp.PInt64()\n\t\t\tcase \"numa_miss\":\n\t\t\t\tzoneinfoElement.NumaMiss = vp.PInt64()\n\t\t\tcase \"numa_foreign\":\n\t\t\t\tzoneinfoElement.NumaForeign = vp.PInt64()\n\t\t\tcase \"numa_interleave\":\n\t\t\t\tzoneinfoElement.NumaInterleave = vp.PInt64()\n\t\t\tcase \"numa_local\":\n\t\t\t\tzoneinfoElement.NumaLocal = vp.PInt64()\n\t\t\tcase \"numa_other\":\n\t\t\t\tzoneinfoElement.NumaOther = vp.PInt64()\n\t\t\tcase \"protection:\":\n\t\t\t\tprotectionParts := strings.Split(line, \":\")\n\t\t\t\tprotectionValues := strings.Replace(protectionParts[1], \"(\", \"\", 1)\n\t\t\t\tprotectionValues = strings.Replace(protectionValues, \")\", \"\", 1)\n\t\t\t\tprotectionValues = strings.TrimSpace(protectionValues)\n\t\t\t\tprotectionStringMap := strings.Split(protectionValues, \", \")\n\t\t\t\tval, err := util.ParsePInt64s(protectionStringMap)\n\t\t\t\tif err == nil {\n\t\t\t\t\tzoneinfoElement.Protection = val\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tzoneinfo = append(zoneinfo, zoneinfoElement)\n\t}\n\treturn zoneinfo, nil\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_compare.go",
    "content": "package assert\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n)\n\ntype CompareType int\n\nconst (\n\tcompareLess CompareType = iota - 1\n\tcompareEqual\n\tcompareGreater\n)\n\nvar (\n\tintType   = reflect.TypeOf(int(1))\n\tint8Type  = reflect.TypeOf(int8(1))\n\tint16Type = reflect.TypeOf(int16(1))\n\tint32Type = reflect.TypeOf(int32(1))\n\tint64Type = reflect.TypeOf(int64(1))\n\n\tuintType   = reflect.TypeOf(uint(1))\n\tuint8Type  = reflect.TypeOf(uint8(1))\n\tuint16Type = reflect.TypeOf(uint16(1))\n\tuint32Type = reflect.TypeOf(uint32(1))\n\tuint64Type = reflect.TypeOf(uint64(1))\n\n\tfloat32Type = reflect.TypeOf(float32(1))\n\tfloat64Type = reflect.TypeOf(float64(1))\n\n\tstringType = reflect.TypeOf(\"\")\n\n\ttimeType  = reflect.TypeOf(time.Time{})\n\tbytesType = reflect.TypeOf([]byte{})\n)\n\nfunc compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) {\n\tobj1Value := reflect.ValueOf(obj1)\n\tobj2Value := reflect.ValueOf(obj2)\n\n\t// throughout this switch we try and avoid calling .Convert() if possible,\n\t// as this has a pretty big performance impact\n\tswitch kind {\n\tcase reflect.Int:\n\t\t{\n\t\t\tintobj1, ok := obj1.(int)\n\t\t\tif !ok {\n\t\t\t\tintobj1 = obj1Value.Convert(intType).Interface().(int)\n\t\t\t}\n\t\t\tintobj2, ok := obj2.(int)\n\t\t\tif !ok {\n\t\t\t\tintobj2 = obj2Value.Convert(intType).Interface().(int)\n\t\t\t}\n\t\t\tif intobj1 > intobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif intobj1 == intobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif intobj1 < intobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int8:\n\t\t{\n\t\t\tint8obj1, ok := obj1.(int8)\n\t\t\tif !ok {\n\t\t\t\tint8obj1 = obj1Value.Convert(int8Type).Interface().(int8)\n\t\t\t}\n\t\t\tint8obj2, ok := obj2.(int8)\n\t\t\tif !ok {\n\t\t\t\tint8obj2 = obj2Value.Convert(int8Type).Interface().(int8)\n\t\t\t}\n\t\t\tif int8obj1 > int8obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int8obj1 == int8obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int8obj1 < int8obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int16:\n\t\t{\n\t\t\tint16obj1, ok := obj1.(int16)\n\t\t\tif !ok {\n\t\t\t\tint16obj1 = obj1Value.Convert(int16Type).Interface().(int16)\n\t\t\t}\n\t\t\tint16obj2, ok := obj2.(int16)\n\t\t\tif !ok {\n\t\t\t\tint16obj2 = obj2Value.Convert(int16Type).Interface().(int16)\n\t\t\t}\n\t\t\tif int16obj1 > int16obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int16obj1 == int16obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int16obj1 < int16obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int32:\n\t\t{\n\t\t\tint32obj1, ok := obj1.(int32)\n\t\t\tif !ok {\n\t\t\t\tint32obj1 = obj1Value.Convert(int32Type).Interface().(int32)\n\t\t\t}\n\t\t\tint32obj2, ok := obj2.(int32)\n\t\t\tif !ok {\n\t\t\t\tint32obj2 = obj2Value.Convert(int32Type).Interface().(int32)\n\t\t\t}\n\t\t\tif int32obj1 > int32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int32obj1 == int32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int32obj1 < int32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int64:\n\t\t{\n\t\t\tint64obj1, ok := obj1.(int64)\n\t\t\tif !ok {\n\t\t\t\tint64obj1 = obj1Value.Convert(int64Type).Interface().(int64)\n\t\t\t}\n\t\t\tint64obj2, ok := obj2.(int64)\n\t\t\tif !ok {\n\t\t\t\tint64obj2 = obj2Value.Convert(int64Type).Interface().(int64)\n\t\t\t}\n\t\t\tif int64obj1 > int64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int64obj1 == int64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int64obj1 < int64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint:\n\t\t{\n\t\t\tuintobj1, ok := obj1.(uint)\n\t\t\tif !ok {\n\t\t\t\tuintobj1 = obj1Value.Convert(uintType).Interface().(uint)\n\t\t\t}\n\t\t\tuintobj2, ok := obj2.(uint)\n\t\t\tif !ok {\n\t\t\t\tuintobj2 = obj2Value.Convert(uintType).Interface().(uint)\n\t\t\t}\n\t\t\tif uintobj1 > uintobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uintobj1 == uintobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uintobj1 < uintobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint8:\n\t\t{\n\t\t\tuint8obj1, ok := obj1.(uint8)\n\t\t\tif !ok {\n\t\t\t\tuint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8)\n\t\t\t}\n\t\t\tuint8obj2, ok := obj2.(uint8)\n\t\t\tif !ok {\n\t\t\t\tuint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8)\n\t\t\t}\n\t\t\tif uint8obj1 > uint8obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint8obj1 == uint8obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint8obj1 < uint8obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint16:\n\t\t{\n\t\t\tuint16obj1, ok := obj1.(uint16)\n\t\t\tif !ok {\n\t\t\t\tuint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16)\n\t\t\t}\n\t\t\tuint16obj2, ok := obj2.(uint16)\n\t\t\tif !ok {\n\t\t\t\tuint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16)\n\t\t\t}\n\t\t\tif uint16obj1 > uint16obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint16obj1 == uint16obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint16obj1 < uint16obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint32:\n\t\t{\n\t\t\tuint32obj1, ok := obj1.(uint32)\n\t\t\tif !ok {\n\t\t\t\tuint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32)\n\t\t\t}\n\t\t\tuint32obj2, ok := obj2.(uint32)\n\t\t\tif !ok {\n\t\t\t\tuint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32)\n\t\t\t}\n\t\t\tif uint32obj1 > uint32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint32obj1 == uint32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint32obj1 < uint32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint64:\n\t\t{\n\t\t\tuint64obj1, ok := obj1.(uint64)\n\t\t\tif !ok {\n\t\t\t\tuint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64)\n\t\t\t}\n\t\t\tuint64obj2, ok := obj2.(uint64)\n\t\t\tif !ok {\n\t\t\t\tuint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64)\n\t\t\t}\n\t\t\tif uint64obj1 > uint64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint64obj1 == uint64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint64obj1 < uint64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32:\n\t\t{\n\t\t\tfloat32obj1, ok := obj1.(float32)\n\t\t\tif !ok {\n\t\t\t\tfloat32obj1 = obj1Value.Convert(float32Type).Interface().(float32)\n\t\t\t}\n\t\t\tfloat32obj2, ok := obj2.(float32)\n\t\t\tif !ok {\n\t\t\t\tfloat32obj2 = obj2Value.Convert(float32Type).Interface().(float32)\n\t\t\t}\n\t\t\tif float32obj1 > float32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif float32obj1 == float32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif float32obj1 < float32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Float64:\n\t\t{\n\t\t\tfloat64obj1, ok := obj1.(float64)\n\t\t\tif !ok {\n\t\t\t\tfloat64obj1 = obj1Value.Convert(float64Type).Interface().(float64)\n\t\t\t}\n\t\t\tfloat64obj2, ok := obj2.(float64)\n\t\t\tif !ok {\n\t\t\t\tfloat64obj2 = obj2Value.Convert(float64Type).Interface().(float64)\n\t\t\t}\n\t\t\tif float64obj1 > float64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif float64obj1 == float64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif float64obj1 < float64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.String:\n\t\t{\n\t\t\tstringobj1, ok := obj1.(string)\n\t\t\tif !ok {\n\t\t\t\tstringobj1 = obj1Value.Convert(stringType).Interface().(string)\n\t\t\t}\n\t\t\tstringobj2, ok := obj2.(string)\n\t\t\tif !ok {\n\t\t\t\tstringobj2 = obj2Value.Convert(stringType).Interface().(string)\n\t\t\t}\n\t\t\tif stringobj1 > stringobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif stringobj1 == stringobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif stringobj1 < stringobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\t// Check for known struct types we can check for compare results.\n\tcase reflect.Struct:\n\t\t{\n\t\t\t// All structs enter here. We're not interested in most types.\n\t\t\tif !canConvert(obj1Value, timeType) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// time.Time can compared!\n\t\t\ttimeObj1, ok := obj1.(time.Time)\n\t\t\tif !ok {\n\t\t\t\ttimeObj1 = obj1Value.Convert(timeType).Interface().(time.Time)\n\t\t\t}\n\n\t\t\ttimeObj2, ok := obj2.(time.Time)\n\t\t\tif !ok {\n\t\t\t\ttimeObj2 = obj2Value.Convert(timeType).Interface().(time.Time)\n\t\t\t}\n\n\t\t\treturn compare(timeObj1.UnixNano(), timeObj2.UnixNano(), reflect.Int64)\n\t\t}\n\tcase reflect.Slice:\n\t\t{\n\t\t\t// We only care about the []byte type.\n\t\t\tif !canConvert(obj1Value, bytesType) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// []byte can be compared!\n\t\t\tbytesObj1, ok := obj1.([]byte)\n\t\t\tif !ok {\n\t\t\t\tbytesObj1 = obj1Value.Convert(bytesType).Interface().([]byte)\n\n\t\t\t}\n\t\t\tbytesObj2, ok := obj2.([]byte)\n\t\t\tif !ok {\n\t\t\t\tbytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte)\n\t\t\t}\n\n\t\t\treturn CompareType(bytes.Compare(bytesObj1, bytesObj2)), true\n\t\t}\n\t}\n\n\treturn compareEqual, false\n}\n\n// Greater asserts that the first element is greater than the second\n//\n//\tassert.Greater(t, 2, 1)\n//\tassert.Greater(t, float64(2), float64(1))\n//\tassert.Greater(t, \"b\", \"a\")\nfunc Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareGreater}, \"\\\"%v\\\" is not greater than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// GreaterOrEqual asserts that the first element is greater than or equal to the second\n//\n//\tassert.GreaterOrEqual(t, 2, 1)\n//\tassert.GreaterOrEqual(t, 2, 2)\n//\tassert.GreaterOrEqual(t, \"b\", \"a\")\n//\tassert.GreaterOrEqual(t, \"b\", \"b\")\nfunc GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, \"\\\"%v\\\" is not greater than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// Less asserts that the first element is less than the second\n//\n//\tassert.Less(t, 1, 2)\n//\tassert.Less(t, float64(1), float64(2))\n//\tassert.Less(t, \"a\", \"b\")\nfunc Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareLess}, \"\\\"%v\\\" is not less than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// LessOrEqual asserts that the first element is less than or equal to the second\n//\n//\tassert.LessOrEqual(t, 1, 2)\n//\tassert.LessOrEqual(t, 2, 2)\n//\tassert.LessOrEqual(t, \"a\", \"b\")\n//\tassert.LessOrEqual(t, \"b\", \"b\")\nfunc LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, \"\\\"%v\\\" is not less than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// Positive asserts that the specified element is positive\n//\n//\tassert.Positive(t, 1)\n//\tassert.Positive(t, 1.23)\nfunc Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tzero := reflect.Zero(reflect.TypeOf(e))\n\treturn compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, \"\\\"%v\\\" is not positive\", msgAndArgs...)\n}\n\n// Negative asserts that the specified element is negative\n//\n//\tassert.Negative(t, -1)\n//\tassert.Negative(t, -1.23)\nfunc Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tzero := reflect.Zero(reflect.TypeOf(e))\n\treturn compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, \"\\\"%v\\\" is not negative\", msgAndArgs...)\n}\n\nfunc compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\te1Kind := reflect.ValueOf(e1).Kind()\n\te2Kind := reflect.ValueOf(e2).Kind()\n\tif e1Kind != e2Kind {\n\t\treturn Fail(t, \"Elements should be the same type\", msgAndArgs...)\n\t}\n\n\tcompareResult, isComparable := compare(e1, e2, e1Kind)\n\tif !isComparable {\n\t\treturn Fail(t, fmt.Sprintf(\"Can not compare type \\\"%s\\\"\", reflect.TypeOf(e1)), msgAndArgs...)\n\t}\n\n\tif !containsValue(allowedComparesResults, compareResult) {\n\t\treturn Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\nfunc containsValue(values []CompareType, value CompareType) bool {\n\tfor _, v := range values {\n\t\tif v == value {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go",
    "content": "//go:build go1.17\n// +build go1.17\n\n// TODO: once support for Go 1.16 is dropped, this file can be\n//       merged/removed with assertion_compare_go1.17_test.go and\n//       assertion_compare_legacy.go\n\npackage assert\n\nimport \"reflect\"\n\n// Wrapper around reflect.Value.CanConvert, for compatibility\n// reasons.\nfunc canConvert(value reflect.Value, to reflect.Type) bool {\n\treturn value.CanConvert(to)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go",
    "content": "//go:build !go1.17\n// +build !go1.17\n\n// TODO: once support for Go 1.16 is dropped, this file can be\n//       merged/removed with assertion_compare_go1.17_test.go and\n//       assertion_compare_can_convert.go\n\npackage assert\n\nimport \"reflect\"\n\n// Older versions of Go does not have the reflect.Value.CanConvert\n// method.\nfunc canConvert(value reflect.Value, to reflect.Type) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_format.go",
    "content": "/*\n* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen\n* THIS FILE MUST NOT BE EDITED BY HAND\n */\n\npackage assert\n\nimport (\n\thttp \"net/http\"\n\turl \"net/url\"\n\ttime \"time\"\n)\n\n// Conditionf uses a Comparison to assert a complex condition.\nfunc Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Condition(t, comp, append([]interface{}{msg}, args...)...)\n}\n\n// Containsf asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\tassert.Containsf(t, \"Hello World\", \"World\", \"error message %s\", \"formatted\")\n//\tassert.Containsf(t, [\"Hello\", \"World\"], \"World\", \"error message %s\", \"formatted\")\n//\tassert.Containsf(t, {\"Hello\": \"World\"}, \"Hello\", \"error message %s\", \"formatted\")\nfunc Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Contains(t, s, contains, append([]interface{}{msg}, args...)...)\n}\n\n// DirExistsf checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], \"error message %s\", \"formatted\")\nfunc ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...)\n}\n\n// Emptyf asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tassert.Emptyf(t, obj, \"error message %s\", \"formatted\")\nfunc Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Empty(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// Equalf asserts that two objects are equal.\n//\n//\tassert.Equalf(t, 123, 123, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equal(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// EqualErrorf asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.EqualErrorf(t, err,  expectedErrorString, \"error message %s\", \"formatted\")\nfunc EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualError(t, theError, errString, append([]interface{}{msg}, args...)...)\n}\n\n// EqualExportedValuesf asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, \"error message %s\", \"formatted\") => true\n//\t assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, \"error message %s\", \"formatted\") => false\nfunc EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// EqualValuesf asserts that two objects are equal or convertable to the same types\n// and equal.\n//\n//\tassert.EqualValuesf(t, uint32(123), int32(123), \"error message %s\", \"formatted\")\nfunc EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Errorf asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.Errorf(t, err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedErrorf, err)\n//\t  }\nfunc Errorf(t TestingT, err error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Error(t, err, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorContainsf asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.ErrorContainsf(t, err,  expectedErrorSubString, \"error message %s\", \"formatted\")\nfunc ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContains(t, theError, contains, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorIsf asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// Eventuallyf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\tassert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventually(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// EventuallyWithTf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\tassert.EventuallyWithTf(t, func(c *assert.CollectT, \"error message %s\", \"formatted\") {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithT(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// Exactlyf asserts that two objects are equal in value and type.\n//\n//\tassert.Exactlyf(t, int32(123), int64(123), \"error message %s\", \"formatted\")\nfunc Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactly(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Failf reports a failure through\nfunc Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, failureMessage, append([]interface{}{msg}, args...)...)\n}\n\n// FailNowf fails test\nfunc FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNow(t, failureMessage, append([]interface{}{msg}, args...)...)\n}\n\n// Falsef asserts that the specified value is false.\n//\n//\tassert.Falsef(t, myBool, \"error message %s\", \"formatted\")\nfunc Falsef(t TestingT, value bool, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn False(t, value, append([]interface{}{msg}, args...)...)\n}\n\n// FileExistsf checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// Greaterf asserts that the first element is greater than the second\n//\n//\tassert.Greaterf(t, 2, 1, \"error message %s\", \"formatted\")\n//\tassert.Greaterf(t, float64(2), float64(1), \"error message %s\", \"formatted\")\n//\tassert.Greaterf(t, \"b\", \"a\", \"error message %s\", \"formatted\")\nfunc Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greater(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// GreaterOrEqualf asserts that the first element is greater than or equal to the second\n//\n//\tassert.GreaterOrEqualf(t, 2, 1, \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, 2, 2, \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, \"b\", \"a\", \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, \"b\", \"b\", \"error message %s\", \"formatted\")\nfunc GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPBodyContainsf asserts that a specified handler returns a\n// body that contains a string.\n//\n//\tassert.HTTPBodyContainsf(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPBodyNotContainsf asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\tassert.HTTPBodyNotContainsf(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPErrorf asserts that a specified handler returns an error status code.\n//\n//\tassert.HTTPErrorf(t, myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPRedirectf asserts that a specified handler returns a redirect status code.\n//\n//\tassert.HTTPRedirectf(t, myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPStatusCodef asserts that a specified handler returns a specified status code.\n//\n//\tassert.HTTPStatusCodef(t, myHandler, \"GET\", \"/notImplemented\", nil, 501, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPSuccessf asserts that a specified handler returns a success status code.\n//\n//\tassert.HTTPSuccessf(t, myHandler, \"POST\", \"http://www.google.com\", nil, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// Implementsf asserts that an object is implemented by the specified interface.\n//\n//\tassert.Implementsf(t, (*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaf asserts that the two numerals are within delta of each other.\n//\n//\tassert.InDeltaf(t, math.Pi, 22/7.0, 0.01, \"error message %s\", \"formatted\")\nfunc InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaSlicef is the same as InDelta, except it compares two slices.\nfunc InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InEpsilonf asserts that expected and actual have a relative error less than epsilon\nfunc InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)\n}\n\n// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.\nfunc InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)\n}\n\n// IsDecreasingf asserts that the collection is decreasing\n//\n//\tassert.IsDecreasingf(t, []int{2, 1, 0}, \"error message %s\", \"formatted\")\n//\tassert.IsDecreasingf(t, []float{2, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsDecreasingf(t, []string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsIncreasingf asserts that the collection is increasing\n//\n//\tassert.IsIncreasingf(t, []int{1, 2, 3}, \"error message %s\", \"formatted\")\n//\tassert.IsIncreasingf(t, []float{1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsIncreasingf(t, []string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsNonDecreasingf asserts that the collection is not decreasing\n//\n//\tassert.IsNonDecreasingf(t, []int{1, 1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsNonDecreasingf(t, []float{1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsNonDecreasingf(t, []string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsNonIncreasingf asserts that the collection is not increasing\n//\n//\tassert.IsNonIncreasingf(t, []int{2, 1, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsNonIncreasingf(t, []float{2, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsNonIncreasingf(t, []string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsTypef asserts that the specified objects are of the same type.\nfunc IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsType(t, expectedType, object, append([]interface{}{msg}, args...)...)\n}\n\n// JSONEqf asserts that two JSON strings are equivalent.\n//\n//\tassert.JSONEqf(t, `{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`, \"error message %s\", \"formatted\")\nfunc JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Lenf asserts that the specified object has specific length.\n// Lenf also fails if the object has a type that len() not accept.\n//\n//\tassert.Lenf(t, mySlice, 3, \"error message %s\", \"formatted\")\nfunc Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Len(t, object, length, append([]interface{}{msg}, args...)...)\n}\n\n// Lessf asserts that the first element is less than the second\n//\n//\tassert.Lessf(t, 1, 2, \"error message %s\", \"formatted\")\n//\tassert.Lessf(t, float64(1), float64(2), \"error message %s\", \"formatted\")\n//\tassert.Lessf(t, \"a\", \"b\", \"error message %s\", \"formatted\")\nfunc Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Less(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// LessOrEqualf asserts that the first element is less than or equal to the second\n//\n//\tassert.LessOrEqualf(t, 1, 2, \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, 2, 2, \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, \"a\", \"b\", \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, \"b\", \"b\", \"error message %s\", \"formatted\")\nfunc LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// Negativef asserts that the specified element is negative\n//\n//\tassert.Negativef(t, -1, \"error message %s\", \"formatted\")\n//\tassert.Negativef(t, -1.23, \"error message %s\", \"formatted\")\nfunc Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negative(t, e, append([]interface{}{msg}, args...)...)\n}\n\n// Neverf asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\tassert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// Nilf asserts that the specified object is nil.\n//\n//\tassert.Nilf(t, err, \"error message %s\", \"formatted\")\nfunc Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nil(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NoDirExistsf checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// NoErrorf asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.NoErrorf(t, err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoError(t, err, append([]interface{}{msg}, args...)...)\n}\n\n// NoFileExistsf checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\tassert.NotContainsf(t, \"Hello World\", \"Earth\", \"error message %s\", \"formatted\")\n//\tassert.NotContainsf(t, [\"Hello\", \"World\"], \"Earth\", \"error message %s\", \"formatted\")\n//\tassert.NotContainsf(t, {\"Hello\": \"World\"}, \"Earth\", \"error message %s\", \"formatted\")\nfunc NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContains(t, s, contains, append([]interface{}{msg}, args...)...)\n}\n\n// NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif assert.NotEmptyf(t, obj, \"error message %s\", \"formatted\") {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmpty(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NotEqualf asserts that the specified values are NOT equal.\n//\n//\tassert.NotEqualf(t, obj1, obj2, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotEqualValuesf asserts that two objects are not equal even when converted to the same type\n//\n//\tassert.NotEqualValuesf(t, obj1, obj2, \"error message %s\", \"formatted\")\nfunc NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotErrorIsf asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// NotNilf asserts that the specified object is not nil.\n//\n//\tassert.NotNilf(t, err, \"error message %s\", \"formatted\")\nfunc NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNil(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\tassert.NotPanicsf(t, func(){ RemainCalm() }, \"error message %s\", \"formatted\")\nfunc NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanics(t, f, append([]interface{}{msg}, args...)...)\n}\n\n// NotRegexpf asserts that a specified regexp does not match a string.\n//\n//\tassert.NotRegexpf(t, regexp.MustCompile(\"starts\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\tassert.NotRegexpf(t, \"^start\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...)\n}\n\n// NotSamef asserts that two pointers do not reference the same object.\n//\n//\tassert.NotSamef(t, ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSame(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotSubsetf asserts that the specified list(array, slice...) contains not all\n// elements given in the specified subset(array, slice...).\n//\n//\tassert.NotSubsetf(t, [1, 3, 4], [1, 2], \"But [1, 3, 4] does not contain [1, 2]\", \"error message %s\", \"formatted\")\nfunc NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubset(t, list, subset, append([]interface{}{msg}, args...)...)\n}\n\n// NotZerof asserts that i is not the zero value for its type.\nfunc NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZero(t, i, append([]interface{}{msg}, args...)...)\n}\n\n// Panicsf asserts that the code inside the specified PanicTestFunc panics.\n//\n//\tassert.Panicsf(t, func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panics(t, f, append([]interface{}{msg}, args...)...)\n}\n\n// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\tassert.PanicsWithErrorf(t, \"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...)\n}\n\n// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\tassert.PanicsWithValuef(t, \"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...)\n}\n\n// Positivef asserts that the specified element is positive\n//\n//\tassert.Positivef(t, 1, \"error message %s\", \"formatted\")\n//\tassert.Positivef(t, 1.23, \"error message %s\", \"formatted\")\nfunc Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positive(t, e, append([]interface{}{msg}, args...)...)\n}\n\n// Regexpf asserts that a specified regexp matches a string.\n//\n//\tassert.Regexpf(t, regexp.MustCompile(\"start\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\tassert.Regexpf(t, \"start...$\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexp(t, rx, str, append([]interface{}{msg}, args...)...)\n}\n\n// Samef asserts that two pointers reference the same object.\n//\n//\tassert.Samef(t, ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Same(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Subsetf asserts that the specified list(array, slice...) contains all\n// elements given in the specified subset(array, slice...).\n//\n//\tassert.Subsetf(t, [1, 2, 3], [1, 2], \"But [1, 2, 3] does contain [1, 2]\", \"error message %s\", \"formatted\")\nfunc Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subset(t, list, subset, append([]interface{}{msg}, args...)...)\n}\n\n// Truef asserts that the specified value is true.\n//\n//\tassert.Truef(t, myBool, \"error message %s\", \"formatted\")\nfunc Truef(t TestingT, value bool, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn True(t, value, append([]interface{}{msg}, args...)...)\n}\n\n// WithinDurationf asserts that the two times are within duration delta of each other.\n//\n//\tassert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, \"error message %s\", \"formatted\")\nfunc WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// WithinRangef asserts that a time is within a time range (inclusive).\n//\n//\tassert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), \"error message %s\", \"formatted\")\nfunc WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRange(t, actual, start, end, append([]interface{}{msg}, args...)...)\n}\n\n// YAMLEqf asserts that two YAML strings are equivalent.\nfunc YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Zerof asserts that i is the zero value for its type.\nfunc Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zero(t, i, append([]interface{}{msg}, args...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl",
    "content": "{{.CommentFormat}}\nfunc {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool {\n\tif h, ok := t.(tHelper); ok { h.Helper() }\n\treturn {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}})\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_forward.go",
    "content": "/*\n* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen\n* THIS FILE MUST NOT BE EDITED BY HAND\n */\n\npackage assert\n\nimport (\n\thttp \"net/http\"\n\turl \"net/url\"\n\ttime \"time\"\n)\n\n// Condition uses a Comparison to assert a complex condition.\nfunc (a *Assertions) Condition(comp Comparison, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Condition(a.t, comp, msgAndArgs...)\n}\n\n// Conditionf uses a Comparison to assert a complex condition.\nfunc (a *Assertions) Conditionf(comp Comparison, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Conditionf(a.t, comp, msg, args...)\n}\n\n// Contains asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\ta.Contains(\"Hello World\", \"World\")\n//\ta.Contains([\"Hello\", \"World\"], \"World\")\n//\ta.Contains({\"Hello\": \"World\"}, \"Hello\")\nfunc (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Contains(a.t, s, contains, msgAndArgs...)\n}\n\n// Containsf asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\ta.Containsf(\"Hello World\", \"World\", \"error message %s\", \"formatted\")\n//\ta.Containsf([\"Hello\", \"World\"], \"World\", \"error message %s\", \"formatted\")\n//\ta.Containsf({\"Hello\": \"World\"}, \"Hello\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Containsf(a.t, s, contains, msg, args...)\n}\n\n// DirExists checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExists(a.t, path, msgAndArgs...)\n}\n\n// DirExistsf checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExistsf(a.t, path, msg, args...)\n}\n\n// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2])\nfunc (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatch(a.t, listA, listB, msgAndArgs...)\n}\n\n// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], \"error message %s\", \"formatted\")\nfunc (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatchf(a.t, listA, listB, msg, args...)\n}\n\n// Empty asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\ta.Empty(obj)\nfunc (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Empty(a.t, object, msgAndArgs...)\n}\n\n// Emptyf asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\ta.Emptyf(obj, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Emptyf(a.t, object, msg, args...)\n}\n\n// Equal asserts that two objects are equal.\n//\n//\ta.Equal(123, 123)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equal(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualError asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.EqualError(err,  expectedErrorString)\nfunc (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualError(a.t, theError, errString, msgAndArgs...)\n}\n\n// EqualErrorf asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.EqualErrorf(err,  expectedErrorString, \"error message %s\", \"formatted\")\nfunc (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualErrorf(a.t, theError, errString, msg, args...)\n}\n\n// EqualExportedValues asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t a.EqualExportedValues(S{1, 2}, S{1, 3}) => true\n//\t a.EqualExportedValues(S{1, 2}, S{2, 3}) => false\nfunc (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualExportedValuesf asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t a.EqualExportedValuesf(S{1, 2}, S{1, 3}, \"error message %s\", \"formatted\") => true\n//\t a.EqualExportedValuesf(S{1, 2}, S{2, 3}, \"error message %s\", \"formatted\") => false\nfunc (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValuesf(a.t, expected, actual, msg, args...)\n}\n\n// EqualValues asserts that two objects are equal or convertable to the same types\n// and equal.\n//\n//\ta.EqualValues(uint32(123), int32(123))\nfunc (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualValuesf asserts that two objects are equal or convertable to the same types\n// and equal.\n//\n//\ta.EqualValuesf(uint32(123), int32(123), \"error message %s\", \"formatted\")\nfunc (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValuesf(a.t, expected, actual, msg, args...)\n}\n\n// Equalf asserts that two objects are equal.\n//\n//\ta.Equalf(123, 123, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equalf(a.t, expected, actual, msg, args...)\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.Error(err) {\n//\t\t   assert.Equal(t, expectedError, err)\n//\t  }\nfunc (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Error(a.t, err, msgAndArgs...)\n}\n\n// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAs(a.t, err, target, msgAndArgs...)\n}\n\n// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAsf(a.t, err, target, msg, args...)\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.ErrorContains(err,  expectedErrorSubString)\nfunc (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContains(a.t, theError, contains, msgAndArgs...)\n}\n\n// ErrorContainsf asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.ErrorContainsf(err,  expectedErrorSubString, \"error message %s\", \"formatted\")\nfunc (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContainsf(a.t, theError, contains, msg, args...)\n}\n\n// ErrorIs asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIs(a.t, err, target, msgAndArgs...)\n}\n\n// ErrorIsf asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIsf(a.t, err, target, msg, args...)\n}\n\n// Errorf asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.Errorf(err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedErrorf, err)\n//\t  }\nfunc (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Errorf(a.t, err, msg, args...)\n}\n\n// Eventually asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\ta.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond)\nfunc (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventually(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// EventuallyWithT asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\ta.EventuallyWithT(func(c *assert.CollectT) {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// EventuallyWithTf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\ta.EventuallyWithTf(func(c *assert.CollectT, \"error message %s\", \"formatted\") {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Eventuallyf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\ta.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventuallyf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Exactly asserts that two objects are equal in value and type.\n//\n//\ta.Exactly(int32(123), int64(123))\nfunc (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactly(a.t, expected, actual, msgAndArgs...)\n}\n\n// Exactlyf asserts that two objects are equal in value and type.\n//\n//\ta.Exactlyf(int32(123), int64(123), \"error message %s\", \"formatted\")\nfunc (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactlyf(a.t, expected, actual, msg, args...)\n}\n\n// Fail reports a failure through\nfunc (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(a.t, failureMessage, msgAndArgs...)\n}\n\n// FailNow fails test\nfunc (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNow(a.t, failureMessage, msgAndArgs...)\n}\n\n// FailNowf fails test\nfunc (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNowf(a.t, failureMessage, msg, args...)\n}\n\n// Failf reports a failure through\nfunc (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Failf(a.t, failureMessage, msg, args...)\n}\n\n// False asserts that the specified value is false.\n//\n//\ta.False(myBool)\nfunc (a *Assertions) False(value bool, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn False(a.t, value, msgAndArgs...)\n}\n\n// Falsef asserts that the specified value is false.\n//\n//\ta.Falsef(myBool, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Falsef(a.t, value, msg, args...)\n}\n\n// FileExists checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExists(a.t, path, msgAndArgs...)\n}\n\n// FileExistsf checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExistsf(a.t, path, msg, args...)\n}\n\n// Greater asserts that the first element is greater than the second\n//\n//\ta.Greater(2, 1)\n//\ta.Greater(float64(2), float64(1))\n//\ta.Greater(\"b\", \"a\")\nfunc (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greater(a.t, e1, e2, msgAndArgs...)\n}\n\n// GreaterOrEqual asserts that the first element is greater than or equal to the second\n//\n//\ta.GreaterOrEqual(2, 1)\n//\ta.GreaterOrEqual(2, 2)\n//\ta.GreaterOrEqual(\"b\", \"a\")\n//\ta.GreaterOrEqual(\"b\", \"b\")\nfunc (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqual(a.t, e1, e2, msgAndArgs...)\n}\n\n// GreaterOrEqualf asserts that the first element is greater than or equal to the second\n//\n//\ta.GreaterOrEqualf(2, 1, \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(2, 2, \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(\"b\", \"a\", \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(\"b\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqualf(a.t, e1, e2, msg, args...)\n}\n\n// Greaterf asserts that the first element is greater than the second\n//\n//\ta.Greaterf(2, 1, \"error message %s\", \"formatted\")\n//\ta.Greaterf(float64(2), float64(1), \"error message %s\", \"formatted\")\n//\ta.Greaterf(\"b\", \"a\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greaterf(a.t, e1, e2, msg, args...)\n}\n\n// HTTPBodyContains asserts that a specified handler returns a\n// body that contains a string.\n//\n//\ta.HTTPBodyContains(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...)\n}\n\n// HTTPBodyContainsf asserts that a specified handler returns a\n// body that contains a string.\n//\n//\ta.HTTPBodyContainsf(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...)\n}\n\n// HTTPBodyNotContains asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\ta.HTTPBodyNotContains(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...)\n}\n\n// HTTPBodyNotContainsf asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\ta.HTTPBodyNotContainsf(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...)\n}\n\n// HTTPError asserts that a specified handler returns an error status code.\n//\n//\ta.HTTPError(myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPError(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPErrorf asserts that a specified handler returns an error status code.\n//\n//\ta.HTTPErrorf(myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPErrorf(a.t, handler, method, url, values, msg, args...)\n}\n\n// HTTPRedirect asserts that a specified handler returns a redirect status code.\n//\n//\ta.HTTPRedirect(myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPRedirectf asserts that a specified handler returns a redirect status code.\n//\n//\ta.HTTPRedirectf(myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirectf(a.t, handler, method, url, values, msg, args...)\n}\n\n// HTTPStatusCode asserts that a specified handler returns a specified status code.\n//\n//\ta.HTTPStatusCode(myHandler, \"GET\", \"/notImplemented\", nil, 501)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...)\n}\n\n// HTTPStatusCodef asserts that a specified handler returns a specified status code.\n//\n//\ta.HTTPStatusCodef(myHandler, \"GET\", \"/notImplemented\", nil, 501, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...)\n}\n\n// HTTPSuccess asserts that a specified handler returns a success status code.\n//\n//\ta.HTTPSuccess(myHandler, \"POST\", \"http://www.google.com\", nil)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPSuccessf asserts that a specified handler returns a success status code.\n//\n//\ta.HTTPSuccessf(myHandler, \"POST\", \"http://www.google.com\", nil, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccessf(a.t, handler, method, url, values, msg, args...)\n}\n\n// Implements asserts that an object is implemented by the specified interface.\n//\n//\ta.Implements((*MyInterface)(nil), new(MyObject))\nfunc (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implements(a.t, interfaceObject, object, msgAndArgs...)\n}\n\n// Implementsf asserts that an object is implemented by the specified interface.\n//\n//\ta.Implementsf((*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implementsf(a.t, interfaceObject, object, msg, args...)\n}\n\n// InDelta asserts that the two numerals are within delta of each other.\n//\n//\ta.InDelta(math.Pi, 22/7.0, 0.01)\nfunc (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDelta(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...)\n}\n\n// InDeltaSlice is the same as InDelta, except it compares two slices.\nfunc (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaSlicef is the same as InDelta, except it compares two slices.\nfunc (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlicef(a.t, expected, actual, delta, msg, args...)\n}\n\n// InDeltaf asserts that the two numerals are within delta of each other.\n//\n//\ta.InDeltaf(math.Pi, 22/7.0, 0.01, \"error message %s\", \"formatted\")\nfunc (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaf(a.t, expected, actual, delta, msg, args...)\n}\n\n// InEpsilon asserts that expected and actual have a relative error less than epsilon\nfunc (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...)\n}\n\n// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.\nfunc (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...)\n}\n\n// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.\nfunc (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...)\n}\n\n// InEpsilonf asserts that expected and actual have a relative error less than epsilon\nfunc (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonf(a.t, expected, actual, epsilon, msg, args...)\n}\n\n// IsDecreasing asserts that the collection is decreasing\n//\n//\ta.IsDecreasing([]int{2, 1, 0})\n//\ta.IsDecreasing([]float{2, 1})\n//\ta.IsDecreasing([]string{\"b\", \"a\"})\nfunc (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasing(a.t, object, msgAndArgs...)\n}\n\n// IsDecreasingf asserts that the collection is decreasing\n//\n//\ta.IsDecreasingf([]int{2, 1, 0}, \"error message %s\", \"formatted\")\n//\ta.IsDecreasingf([]float{2, 1}, \"error message %s\", \"formatted\")\n//\ta.IsDecreasingf([]string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasingf(a.t, object, msg, args...)\n}\n\n// IsIncreasing asserts that the collection is increasing\n//\n//\ta.IsIncreasing([]int{1, 2, 3})\n//\ta.IsIncreasing([]float{1, 2})\n//\ta.IsIncreasing([]string{\"a\", \"b\"})\nfunc (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasing(a.t, object, msgAndArgs...)\n}\n\n// IsIncreasingf asserts that the collection is increasing\n//\n//\ta.IsIncreasingf([]int{1, 2, 3}, \"error message %s\", \"formatted\")\n//\ta.IsIncreasingf([]float{1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsIncreasingf([]string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasingf(a.t, object, msg, args...)\n}\n\n// IsNonDecreasing asserts that the collection is not decreasing\n//\n//\ta.IsNonDecreasing([]int{1, 1, 2})\n//\ta.IsNonDecreasing([]float{1, 2})\n//\ta.IsNonDecreasing([]string{\"a\", \"b\"})\nfunc (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasing(a.t, object, msgAndArgs...)\n}\n\n// IsNonDecreasingf asserts that the collection is not decreasing\n//\n//\ta.IsNonDecreasingf([]int{1, 1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsNonDecreasingf([]float{1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsNonDecreasingf([]string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasingf(a.t, object, msg, args...)\n}\n\n// IsNonIncreasing asserts that the collection is not increasing\n//\n//\ta.IsNonIncreasing([]int{2, 1, 1})\n//\ta.IsNonIncreasing([]float{2, 1})\n//\ta.IsNonIncreasing([]string{\"b\", \"a\"})\nfunc (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasing(a.t, object, msgAndArgs...)\n}\n\n// IsNonIncreasingf asserts that the collection is not increasing\n//\n//\ta.IsNonIncreasingf([]int{2, 1, 1}, \"error message %s\", \"formatted\")\n//\ta.IsNonIncreasingf([]float{2, 1}, \"error message %s\", \"formatted\")\n//\ta.IsNonIncreasingf([]string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasingf(a.t, object, msg, args...)\n}\n\n// IsType asserts that the specified objects are of the same type.\nfunc (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsType(a.t, expectedType, object, msgAndArgs...)\n}\n\n// IsTypef asserts that the specified objects are of the same type.\nfunc (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsTypef(a.t, expectedType, object, msg, args...)\n}\n\n// JSONEq asserts that two JSON strings are equivalent.\n//\n//\ta.JSONEq(`{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`)\nfunc (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEq(a.t, expected, actual, msgAndArgs...)\n}\n\n// JSONEqf asserts that two JSON strings are equivalent.\n//\n//\ta.JSONEqf(`{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`, \"error message %s\", \"formatted\")\nfunc (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEqf(a.t, expected, actual, msg, args...)\n}\n\n// Len asserts that the specified object has specific length.\n// Len also fails if the object has a type that len() not accept.\n//\n//\ta.Len(mySlice, 3)\nfunc (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Len(a.t, object, length, msgAndArgs...)\n}\n\n// Lenf asserts that the specified object has specific length.\n// Lenf also fails if the object has a type that len() not accept.\n//\n//\ta.Lenf(mySlice, 3, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Lenf(a.t, object, length, msg, args...)\n}\n\n// Less asserts that the first element is less than the second\n//\n//\ta.Less(1, 2)\n//\ta.Less(float64(1), float64(2))\n//\ta.Less(\"a\", \"b\")\nfunc (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Less(a.t, e1, e2, msgAndArgs...)\n}\n\n// LessOrEqual asserts that the first element is less than or equal to the second\n//\n//\ta.LessOrEqual(1, 2)\n//\ta.LessOrEqual(2, 2)\n//\ta.LessOrEqual(\"a\", \"b\")\n//\ta.LessOrEqual(\"b\", \"b\")\nfunc (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqual(a.t, e1, e2, msgAndArgs...)\n}\n\n// LessOrEqualf asserts that the first element is less than or equal to the second\n//\n//\ta.LessOrEqualf(1, 2, \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(2, 2, \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(\"a\", \"b\", \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(\"b\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqualf(a.t, e1, e2, msg, args...)\n}\n\n// Lessf asserts that the first element is less than the second\n//\n//\ta.Lessf(1, 2, \"error message %s\", \"formatted\")\n//\ta.Lessf(float64(1), float64(2), \"error message %s\", \"formatted\")\n//\ta.Lessf(\"a\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Lessf(a.t, e1, e2, msg, args...)\n}\n\n// Negative asserts that the specified element is negative\n//\n//\ta.Negative(-1)\n//\ta.Negative(-1.23)\nfunc (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negative(a.t, e, msgAndArgs...)\n}\n\n// Negativef asserts that the specified element is negative\n//\n//\ta.Negativef(-1, \"error message %s\", \"formatted\")\n//\ta.Negativef(-1.23, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negativef(a.t, e, msg, args...)\n}\n\n// Never asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\ta.Never(func() bool { return false; }, time.Second, 10*time.Millisecond)\nfunc (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Never(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// Neverf asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\ta.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Neverf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Nil asserts that the specified object is nil.\n//\n//\ta.Nil(err)\nfunc (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nil(a.t, object, msgAndArgs...)\n}\n\n// Nilf asserts that the specified object is nil.\n//\n//\ta.Nilf(err, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nilf(a.t, object, msg, args...)\n}\n\n// NoDirExists checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExists(a.t, path, msgAndArgs...)\n}\n\n// NoDirExistsf checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExistsf(a.t, path, msg, args...)\n}\n\n// NoError asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.NoError(err) {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc (a *Assertions) NoError(err error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoError(a.t, err, msgAndArgs...)\n}\n\n// NoErrorf asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.NoErrorf(err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoErrorf(a.t, err, msg, args...)\n}\n\n// NoFileExists checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExists(a.t, path, msgAndArgs...)\n}\n\n// NoFileExistsf checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExistsf(a.t, path, msg, args...)\n}\n\n// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\ta.NotContains(\"Hello World\", \"Earth\")\n//\ta.NotContains([\"Hello\", \"World\"], \"Earth\")\n//\ta.NotContains({\"Hello\": \"World\"}, \"Earth\")\nfunc (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContains(a.t, s, contains, msgAndArgs...)\n}\n\n// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\ta.NotContainsf(\"Hello World\", \"Earth\", \"error message %s\", \"formatted\")\n//\ta.NotContainsf([\"Hello\", \"World\"], \"Earth\", \"error message %s\", \"formatted\")\n//\ta.NotContainsf({\"Hello\": \"World\"}, \"Earth\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContainsf(a.t, s, contains, msg, args...)\n}\n\n// NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif a.NotEmpty(obj) {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmpty(a.t, object, msgAndArgs...)\n}\n\n// NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif a.NotEmptyf(obj, \"error message %s\", \"formatted\") {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmptyf(a.t, object, msg, args...)\n}\n\n// NotEqual asserts that the specified values are NOT equal.\n//\n//\ta.NotEqual(obj1, obj2)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqual(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotEqualValues asserts that two objects are not equal even when converted to the same type\n//\n//\ta.NotEqualValues(obj1, obj2)\nfunc (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotEqualValuesf asserts that two objects are not equal even when converted to the same type\n//\n//\ta.NotEqualValuesf(obj1, obj2, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValuesf(a.t, expected, actual, msg, args...)\n}\n\n// NotEqualf asserts that the specified values are NOT equal.\n//\n//\ta.NotEqualf(obj1, obj2, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualf(a.t, expected, actual, msg, args...)\n}\n\n// NotErrorIs asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIs(a.t, err, target, msgAndArgs...)\n}\n\n// NotErrorIsf asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIsf(a.t, err, target, msg, args...)\n}\n\n// NotNil asserts that the specified object is not nil.\n//\n//\ta.NotNil(err)\nfunc (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNil(a.t, object, msgAndArgs...)\n}\n\n// NotNilf asserts that the specified object is not nil.\n//\n//\ta.NotNilf(err, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNilf(a.t, object, msg, args...)\n}\n\n// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\ta.NotPanics(func(){ RemainCalm() })\nfunc (a *Assertions) NotPanics(f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanics(a.t, f, msgAndArgs...)\n}\n\n// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\ta.NotPanicsf(func(){ RemainCalm() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotPanicsf(f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanicsf(a.t, f, msg, args...)\n}\n\n// NotRegexp asserts that a specified regexp does not match a string.\n//\n//\ta.NotRegexp(regexp.MustCompile(\"starts\"), \"it's starting\")\n//\ta.NotRegexp(\"^start\", \"it's not starting\")\nfunc (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexp(a.t, rx, str, msgAndArgs...)\n}\n\n// NotRegexpf asserts that a specified regexp does not match a string.\n//\n//\ta.NotRegexpf(regexp.MustCompile(\"starts\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\ta.NotRegexpf(\"^start\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexpf(a.t, rx, str, msg, args...)\n}\n\n// NotSame asserts that two pointers do not reference the same object.\n//\n//\ta.NotSame(ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSame(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotSamef asserts that two pointers do not reference the same object.\n//\n//\ta.NotSamef(ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSamef(a.t, expected, actual, msg, args...)\n}\n\n// NotSubset asserts that the specified list(array, slice...) contains not all\n// elements given in the specified subset(array, slice...).\n//\n//\ta.NotSubset([1, 3, 4], [1, 2], \"But [1, 3, 4] does not contain [1, 2]\")\nfunc (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubset(a.t, list, subset, msgAndArgs...)\n}\n\n// NotSubsetf asserts that the specified list(array, slice...) contains not all\n// elements given in the specified subset(array, slice...).\n//\n//\ta.NotSubsetf([1, 3, 4], [1, 2], \"But [1, 3, 4] does not contain [1, 2]\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubsetf(a.t, list, subset, msg, args...)\n}\n\n// NotZero asserts that i is not the zero value for its type.\nfunc (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZero(a.t, i, msgAndArgs...)\n}\n\n// NotZerof asserts that i is not the zero value for its type.\nfunc (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZerof(a.t, i, msg, args...)\n}\n\n// Panics asserts that the code inside the specified PanicTestFunc panics.\n//\n//\ta.Panics(func(){ GoCrazy() })\nfunc (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panics(a.t, f, msgAndArgs...)\n}\n\n// PanicsWithError asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\ta.PanicsWithError(\"crazy error\", func(){ GoCrazy() })\nfunc (a *Assertions) PanicsWithError(errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithError(a.t, errString, f, msgAndArgs...)\n}\n\n// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\ta.PanicsWithErrorf(\"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) PanicsWithErrorf(errString string, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithErrorf(a.t, errString, f, msg, args...)\n}\n\n// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\ta.PanicsWithValue(\"crazy error\", func(){ GoCrazy() })\nfunc (a *Assertions) PanicsWithValue(expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValue(a.t, expected, f, msgAndArgs...)\n}\n\n// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\ta.PanicsWithValuef(\"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) PanicsWithValuef(expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValuef(a.t, expected, f, msg, args...)\n}\n\n// Panicsf asserts that the code inside the specified PanicTestFunc panics.\n//\n//\ta.Panicsf(func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panicsf(a.t, f, msg, args...)\n}\n\n// Positive asserts that the specified element is positive\n//\n//\ta.Positive(1)\n//\ta.Positive(1.23)\nfunc (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positive(a.t, e, msgAndArgs...)\n}\n\n// Positivef asserts that the specified element is positive\n//\n//\ta.Positivef(1, \"error message %s\", \"formatted\")\n//\ta.Positivef(1.23, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positivef(a.t, e, msg, args...)\n}\n\n// Regexp asserts that a specified regexp matches a string.\n//\n//\ta.Regexp(regexp.MustCompile(\"start\"), \"it's starting\")\n//\ta.Regexp(\"start...$\", \"it's not starting\")\nfunc (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexp(a.t, rx, str, msgAndArgs...)\n}\n\n// Regexpf asserts that a specified regexp matches a string.\n//\n//\ta.Regexpf(regexp.MustCompile(\"start\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\ta.Regexpf(\"start...$\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexpf(a.t, rx, str, msg, args...)\n}\n\n// Same asserts that two pointers reference the same object.\n//\n//\ta.Same(ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Same(a.t, expected, actual, msgAndArgs...)\n}\n\n// Samef asserts that two pointers reference the same object.\n//\n//\ta.Samef(ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Samef(a.t, expected, actual, msg, args...)\n}\n\n// Subset asserts that the specified list(array, slice...) contains all\n// elements given in the specified subset(array, slice...).\n//\n//\ta.Subset([1, 2, 3], [1, 2], \"But [1, 2, 3] does contain [1, 2]\")\nfunc (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subset(a.t, list, subset, msgAndArgs...)\n}\n\n// Subsetf asserts that the specified list(array, slice...) contains all\n// elements given in the specified subset(array, slice...).\n//\n//\ta.Subsetf([1, 2, 3], [1, 2], \"But [1, 2, 3] does contain [1, 2]\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subsetf(a.t, list, subset, msg, args...)\n}\n\n// True asserts that the specified value is true.\n//\n//\ta.True(myBool)\nfunc (a *Assertions) True(value bool, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn True(a.t, value, msgAndArgs...)\n}\n\n// Truef asserts that the specified value is true.\n//\n//\ta.Truef(myBool, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Truef(value bool, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Truef(a.t, value, msg, args...)\n}\n\n// WithinDuration asserts that the two times are within duration delta of each other.\n//\n//\ta.WithinDuration(time.Now(), time.Now(), 10*time.Second)\nfunc (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDuration(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// WithinDurationf asserts that the two times are within duration delta of each other.\n//\n//\ta.WithinDurationf(time.Now(), time.Now(), 10*time.Second, \"error message %s\", \"formatted\")\nfunc (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDurationf(a.t, expected, actual, delta, msg, args...)\n}\n\n// WithinRange asserts that a time is within a time range (inclusive).\n//\n//\ta.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))\nfunc (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRange(a.t, actual, start, end, msgAndArgs...)\n}\n\n// WithinRangef asserts that a time is within a time range (inclusive).\n//\n//\ta.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), \"error message %s\", \"formatted\")\nfunc (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRangef(a.t, actual, start, end, msg, args...)\n}\n\n// YAMLEq asserts that two YAML strings are equivalent.\nfunc (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEq(a.t, expected, actual, msgAndArgs...)\n}\n\n// YAMLEqf asserts that two YAML strings are equivalent.\nfunc (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEqf(a.t, expected, actual, msg, args...)\n}\n\n// Zero asserts that i is the zero value for its type.\nfunc (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zero(a.t, i, msgAndArgs...)\n}\n\n// Zerof asserts that i is the zero value for its type.\nfunc (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zerof(a.t, i, msg, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl",
    "content": "{{.CommentWithoutT \"a\"}}\nfunc (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {\n\tif h, ok := a.t.(tHelper); ok { h.Helper() }\n\treturn {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_order.go",
    "content": "package assert\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// isOrdered checks that collection contains orderable elements.\nfunc isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool {\n\tobjKind := reflect.TypeOf(object).Kind()\n\tif objKind != reflect.Slice && objKind != reflect.Array {\n\t\treturn false\n\t}\n\n\tobjValue := reflect.ValueOf(object)\n\tobjLen := objValue.Len()\n\n\tif objLen <= 1 {\n\t\treturn true\n\t}\n\n\tvalue := objValue.Index(0)\n\tvalueInterface := value.Interface()\n\tfirstValueKind := value.Kind()\n\n\tfor i := 1; i < objLen; i++ {\n\t\tprevValue := value\n\t\tprevValueInterface := valueInterface\n\n\t\tvalue = objValue.Index(i)\n\t\tvalueInterface = value.Interface()\n\n\t\tcompareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind)\n\n\t\tif !isComparable {\n\t\t\treturn Fail(t, fmt.Sprintf(\"Can not compare type \\\"%s\\\" and \\\"%s\\\"\", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...)\n\t\t}\n\n\t\tif !containsValue(allowedComparesResults, compareResult) {\n\t\t\treturn Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...)\n\t\t}\n\t}\n\n\treturn true\n}\n\n// IsIncreasing asserts that the collection is increasing\n//\n//\tassert.IsIncreasing(t, []int{1, 2, 3})\n//\tassert.IsIncreasing(t, []float{1, 2})\n//\tassert.IsIncreasing(t, []string{\"a\", \"b\"})\nfunc IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareLess}, \"\\\"%v\\\" is not less than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsNonIncreasing asserts that the collection is not increasing\n//\n//\tassert.IsNonIncreasing(t, []int{2, 1, 1})\n//\tassert.IsNonIncreasing(t, []float{2, 1})\n//\tassert.IsNonIncreasing(t, []string{\"b\", \"a\"})\nfunc IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareEqual, compareGreater}, \"\\\"%v\\\" is not greater than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsDecreasing asserts that the collection is decreasing\n//\n//\tassert.IsDecreasing(t, []int{2, 1, 0})\n//\tassert.IsDecreasing(t, []float{2, 1})\n//\tassert.IsDecreasing(t, []string{\"b\", \"a\"})\nfunc IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareGreater}, \"\\\"%v\\\" is not greater than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsNonDecreasing asserts that the collection is not decreasing\n//\n//\tassert.IsNonDecreasing(t, []int{1, 1, 2})\n//\tassert.IsNonDecreasing(t, []float{1, 2})\n//\tassert.IsNonDecreasing(t, []string{\"a\", \"b\"})\nfunc IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareLess, compareEqual}, \"\\\"%v\\\" is not less than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertions.go",
    "content": "package assert\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"github.com/pmezard/go-difflib/difflib\"\n\tyaml \"gopkg.in/yaml.v3\"\n)\n\n//go:generate sh -c \"cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl\"\n\n// TestingT is an interface wrapper around *testing.T\ntype TestingT interface {\n\tErrorf(format string, args ...interface{})\n}\n\n// ComparisonAssertionFunc is a common function prototype when comparing two values.  Can be useful\n// for table driven tests.\ntype ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) bool\n\n// ValueAssertionFunc is a common function prototype when validating a single value.  Can be useful\n// for table driven tests.\ntype ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool\n\n// BoolAssertionFunc is a common function prototype when validating a bool value.  Can be useful\n// for table driven tests.\ntype BoolAssertionFunc func(TestingT, bool, ...interface{}) bool\n\n// ErrorAssertionFunc is a common function prototype when validating an error value.  Can be useful\n// for table driven tests.\ntype ErrorAssertionFunc func(TestingT, error, ...interface{}) bool\n\n// Comparison is a custom function that returns true on success and false on failure\ntype Comparison func() (success bool)\n\n/*\n\tHelper functions\n*/\n\n// ObjectsAreEqual determines if two objects are considered equal.\n//\n// This function does no assertion of any kind.\nfunc ObjectsAreEqual(expected, actual interface{}) bool {\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\texp, ok := expected.([]byte)\n\tif !ok {\n\t\treturn reflect.DeepEqual(expected, actual)\n\t}\n\n\tact, ok := actual.([]byte)\n\tif !ok {\n\t\treturn false\n\t}\n\tif exp == nil || act == nil {\n\t\treturn exp == nil && act == nil\n\t}\n\treturn bytes.Equal(exp, act)\n}\n\n// copyExportedFields iterates downward through nested data structures and creates a copy\n// that only contains the exported struct fields.\nfunc copyExportedFields(expected interface{}) interface{} {\n\tif isNil(expected) {\n\t\treturn expected\n\t}\n\n\texpectedType := reflect.TypeOf(expected)\n\texpectedKind := expectedType.Kind()\n\texpectedValue := reflect.ValueOf(expected)\n\n\tswitch expectedKind {\n\tcase reflect.Struct:\n\t\tresult := reflect.New(expectedType).Elem()\n\t\tfor i := 0; i < expectedType.NumField(); i++ {\n\t\t\tfield := expectedType.Field(i)\n\t\t\tisExported := field.IsExported()\n\t\t\tif isExported {\n\t\t\t\tfieldValue := expectedValue.Field(i)\n\t\t\t\tif isNil(fieldValue) || isNil(fieldValue.Interface()) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tnewValue := copyExportedFields(fieldValue.Interface())\n\t\t\t\tresult.Field(i).Set(reflect.ValueOf(newValue))\n\t\t\t}\n\t\t}\n\t\treturn result.Interface()\n\n\tcase reflect.Ptr:\n\t\tresult := reflect.New(expectedType.Elem())\n\t\tunexportedRemoved := copyExportedFields(expectedValue.Elem().Interface())\n\t\tresult.Elem().Set(reflect.ValueOf(unexportedRemoved))\n\t\treturn result.Interface()\n\n\tcase reflect.Array, reflect.Slice:\n\t\tresult := reflect.MakeSlice(expectedType, expectedValue.Len(), expectedValue.Len())\n\t\tfor i := 0; i < expectedValue.Len(); i++ {\n\t\t\tindex := expectedValue.Index(i)\n\t\t\tif isNil(index) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tunexportedRemoved := copyExportedFields(index.Interface())\n\t\t\tresult.Index(i).Set(reflect.ValueOf(unexportedRemoved))\n\t\t}\n\t\treturn result.Interface()\n\n\tcase reflect.Map:\n\t\tresult := reflect.MakeMap(expectedType)\n\t\tfor _, k := range expectedValue.MapKeys() {\n\t\t\tindex := expectedValue.MapIndex(k)\n\t\t\tunexportedRemoved := copyExportedFields(index.Interface())\n\t\t\tresult.SetMapIndex(k, reflect.ValueOf(unexportedRemoved))\n\t\t}\n\t\treturn result.Interface()\n\n\tdefault:\n\t\treturn expected\n\t}\n}\n\n// ObjectsExportedFieldsAreEqual determines if the exported (public) fields of two objects are\n// considered equal. This comparison of only exported fields is applied recursively to nested data\n// structures.\n//\n// This function does no assertion of any kind.\nfunc ObjectsExportedFieldsAreEqual(expected, actual interface{}) bool {\n\texpectedCleaned := copyExportedFields(expected)\n\tactualCleaned := copyExportedFields(actual)\n\treturn ObjectsAreEqualValues(expectedCleaned, actualCleaned)\n}\n\n// ObjectsAreEqualValues gets whether two objects are equal, or if their\n// values are equal.\nfunc ObjectsAreEqualValues(expected, actual interface{}) bool {\n\tif ObjectsAreEqual(expected, actual) {\n\t\treturn true\n\t}\n\n\tactualType := reflect.TypeOf(actual)\n\tif actualType == nil {\n\t\treturn false\n\t}\n\texpectedValue := reflect.ValueOf(expected)\n\tif expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {\n\t\t// Attempt comparison after type conversion\n\t\treturn reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual)\n\t}\n\n\treturn false\n}\n\n/* CallerInfo is necessary because the assert functions use the testing object\ninternally, causing it to print the file:line of the assert method, rather than where\nthe problem actually occurred in calling code.*/\n\n// CallerInfo returns an array of strings containing the file and line number\n// of each stack frame leading from the current test to the assert call that\n// failed.\nfunc CallerInfo() []string {\n\n\tvar pc uintptr\n\tvar ok bool\n\tvar file string\n\tvar line int\n\tvar name string\n\n\tcallers := []string{}\n\tfor i := 0; ; i++ {\n\t\tpc, file, line, ok = runtime.Caller(i)\n\t\tif !ok {\n\t\t\t// The breaks below failed to terminate the loop, and we ran off the\n\t\t\t// end of the call stack.\n\t\t\tbreak\n\t\t}\n\n\t\t// This is a huge edge case, but it will panic if this is the case, see #180\n\t\tif file == \"<autogenerated>\" {\n\t\t\tbreak\n\t\t}\n\n\t\tf := runtime.FuncForPC(pc)\n\t\tif f == nil {\n\t\t\tbreak\n\t\t}\n\t\tname = f.Name()\n\n\t\t// testing.tRunner is the standard library function that calls\n\t\t// tests. Subtests are called directly by tRunner, without going through\n\t\t// the Test/Benchmark/Example function that contains the t.Run calls, so\n\t\t// with subtests we should break when we hit tRunner, without adding it\n\t\t// to the list of callers.\n\t\tif name == \"testing.tRunner\" {\n\t\t\tbreak\n\t\t}\n\n\t\tparts := strings.Split(file, \"/\")\n\t\tif len(parts) > 1 {\n\t\t\tfilename := parts[len(parts)-1]\n\t\t\tdir := parts[len(parts)-2]\n\t\t\tif (dir != \"assert\" && dir != \"mock\" && dir != \"require\") || filename == \"mock_test.go\" {\n\t\t\t\tcallers = append(callers, fmt.Sprintf(\"%s:%d\", file, line))\n\t\t\t}\n\t\t}\n\n\t\t// Drop the package\n\t\tsegments := strings.Split(name, \".\")\n\t\tname = segments[len(segments)-1]\n\t\tif isTest(name, \"Test\") ||\n\t\t\tisTest(name, \"Benchmark\") ||\n\t\t\tisTest(name, \"Example\") {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn callers\n}\n\n// Stolen from the `go test` tool.\n// isTest tells whether name looks like a test (or benchmark, according to prefix).\n// It is a Test (say) if there is a character after Test that is not a lower-case letter.\n// We don't want TesticularCancer.\nfunc isTest(name, prefix string) bool {\n\tif !strings.HasPrefix(name, prefix) {\n\t\treturn false\n\t}\n\tif len(name) == len(prefix) { // \"Test\" is ok\n\t\treturn true\n\t}\n\tr, _ := utf8.DecodeRuneInString(name[len(prefix):])\n\treturn !unicode.IsLower(r)\n}\n\nfunc messageFromMsgAndArgs(msgAndArgs ...interface{}) string {\n\tif len(msgAndArgs) == 0 || msgAndArgs == nil {\n\t\treturn \"\"\n\t}\n\tif len(msgAndArgs) == 1 {\n\t\tmsg := msgAndArgs[0]\n\t\tif msgAsStr, ok := msg.(string); ok {\n\t\t\treturn msgAsStr\n\t\t}\n\t\treturn fmt.Sprintf(\"%+v\", msg)\n\t}\n\tif len(msgAndArgs) > 1 {\n\t\treturn fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)\n\t}\n\treturn \"\"\n}\n\n// Aligns the provided message so that all lines after the first line start at the same location as the first line.\n// Assumes that the first line starts at the correct location (after carriage return, tab, label, spacer and tab).\n// The longestLabelLen parameter specifies the length of the longest label in the output (required becaues this is the\n// basis on which the alignment occurs).\nfunc indentMessageLines(message string, longestLabelLen int) string {\n\toutBuf := new(bytes.Buffer)\n\n\tfor i, scanner := 0, bufio.NewScanner(strings.NewReader(message)); scanner.Scan(); i++ {\n\t\t// no need to align first line because it starts at the correct location (after the label)\n\t\tif i != 0 {\n\t\t\t// append alignLen+1 spaces to align with \"{{longestLabel}}:\" before adding tab\n\t\t\toutBuf.WriteString(\"\\n\\t\" + strings.Repeat(\" \", longestLabelLen+1) + \"\\t\")\n\t\t}\n\t\toutBuf.WriteString(scanner.Text())\n\t}\n\n\treturn outBuf.String()\n}\n\ntype failNower interface {\n\tFailNow()\n}\n\n// FailNow fails test\nfunc FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tFail(t, failureMessage, msgAndArgs...)\n\n\t// We cannot extend TestingT with FailNow() and\n\t// maintain backwards compatibility, so we fallback\n\t// to panicking when FailNow is not available in\n\t// TestingT.\n\t// See issue #263\n\n\tif t, ok := t.(failNower); ok {\n\t\tt.FailNow()\n\t} else {\n\t\tpanic(\"test failed and t is missing `FailNow()`\")\n\t}\n\treturn false\n}\n\n// Fail reports a failure through\nfunc Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcontent := []labeledContent{\n\t\t{\"Error Trace\", strings.Join(CallerInfo(), \"\\n\\t\\t\\t\")},\n\t\t{\"Error\", failureMessage},\n\t}\n\n\t// Add test name if the Go version supports it\n\tif n, ok := t.(interface {\n\t\tName() string\n\t}); ok {\n\t\tcontent = append(content, labeledContent{\"Test\", n.Name()})\n\t}\n\n\tmessage := messageFromMsgAndArgs(msgAndArgs...)\n\tif len(message) > 0 {\n\t\tcontent = append(content, labeledContent{\"Messages\", message})\n\t}\n\n\tt.Errorf(\"\\n%s\", \"\"+labeledOutput(content...))\n\n\treturn false\n}\n\ntype labeledContent struct {\n\tlabel   string\n\tcontent string\n}\n\n// labeledOutput returns a string consisting of the provided labeledContent. Each labeled output is appended in the following manner:\n//\n//\t\\t{{label}}:{{align_spaces}}\\t{{content}}\\n\n//\n// The initial carriage return is required to undo/erase any padding added by testing.T.Errorf. The \"\\t{{label}}:\" is for the label.\n// If a label is shorter than the longest label provided, padding spaces are added to make all the labels match in length. Once this\n// alignment is achieved, \"\\t{{content}}\\n\" is added for the output.\n//\n// If the content of the labeledOutput contains line breaks, the subsequent lines are aligned so that they start at the same location as the first line.\nfunc labeledOutput(content ...labeledContent) string {\n\tlongestLabel := 0\n\tfor _, v := range content {\n\t\tif len(v.label) > longestLabel {\n\t\t\tlongestLabel = len(v.label)\n\t\t}\n\t}\n\tvar output string\n\tfor _, v := range content {\n\t\toutput += \"\\t\" + v.label + \":\" + strings.Repeat(\" \", longestLabel-len(v.label)) + \"\\t\" + indentMessageLines(v.content, longestLabel) + \"\\n\"\n\t}\n\treturn output\n}\n\n// Implements asserts that an object is implemented by the specified interface.\n//\n//\tassert.Implements(t, (*MyInterface)(nil), new(MyObject))\nfunc Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinterfaceType := reflect.TypeOf(interfaceObject).Elem()\n\n\tif object == nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Cannot check if nil implements %v\", interfaceType), msgAndArgs...)\n\t}\n\tif !reflect.TypeOf(object).Implements(interfaceType) {\n\t\treturn Fail(t, fmt.Sprintf(\"%T must implement %v\", object, interfaceType), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// IsType asserts that the specified objects are of the same type.\nfunc IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) {\n\t\treturn Fail(t, fmt.Sprintf(\"Object expected to be of type %v, but was %v\", reflect.TypeOf(expectedType), reflect.TypeOf(object)), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\n//\n//\tassert.Equal(t, 123, 123)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif err := validateEqualArgs(expected, actual); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Invalid operation: %#v == %#v (%s)\",\n\t\t\texpected, actual, err), msgAndArgs...)\n\t}\n\n\tif !ObjectsAreEqual(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal: \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// validateEqualArgs checks whether provided arguments can be safely used in the\n// Equal/NotEqual functions.\nfunc validateEqualArgs(expected, actual interface{}) error {\n\tif expected == nil && actual == nil {\n\t\treturn nil\n\t}\n\n\tif isFunction(expected) || isFunction(actual) {\n\t\treturn errors.New(\"cannot take func type as argument\")\n\t}\n\treturn nil\n}\n\n// Same asserts that two pointers reference the same object.\n//\n//\tassert.Same(t, ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !samePointers(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Not same: \\n\"+\n\t\t\t\"expected: %p %#v\\n\"+\n\t\t\t\"actual  : %p %#v\", expected, expected, actual, actual), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// NotSame asserts that two pointers do not reference the same object.\n//\n//\tassert.NotSame(t, ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif samePointers(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\n\t\t\t\"Expected and actual point to the same object: %p %#v\",\n\t\t\texpected, expected), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// samePointers compares two generic interface objects and returns whether\n// they point to the same object\nfunc samePointers(first, second interface{}) bool {\n\tfirstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second)\n\tif firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr {\n\t\treturn false\n\t}\n\n\tfirstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second)\n\tif firstType != secondType {\n\t\treturn false\n\t}\n\n\t// compare pointer addresses\n\treturn first == second\n}\n\n// formatUnequalValues takes two values of arbitrary types and returns string\n// representations appropriate to be presented to the user.\n//\n// If the values are not of like type, the returned strings will be prefixed\n// with the type name, and the value will be enclosed in parenthesis similar\n// to a type conversion in the Go grammar.\nfunc formatUnequalValues(expected, actual interface{}) (e string, a string) {\n\tif reflect.TypeOf(expected) != reflect.TypeOf(actual) {\n\t\treturn fmt.Sprintf(\"%T(%s)\", expected, truncatingFormat(expected)),\n\t\t\tfmt.Sprintf(\"%T(%s)\", actual, truncatingFormat(actual))\n\t}\n\tswitch expected.(type) {\n\tcase time.Duration:\n\t\treturn fmt.Sprintf(\"%v\", expected), fmt.Sprintf(\"%v\", actual)\n\t}\n\treturn truncatingFormat(expected), truncatingFormat(actual)\n}\n\n// truncatingFormat formats the data and truncates it if it's too long.\n//\n// This helps keep formatted error messages lines from exceeding the\n// bufio.MaxScanTokenSize max line length that the go testing framework imposes.\nfunc truncatingFormat(data interface{}) string {\n\tvalue := fmt.Sprintf(\"%#v\", data)\n\tmax := bufio.MaxScanTokenSize - 100 // Give us some space the type info too if needed.\n\tif len(value) > max {\n\t\tvalue = value[0:max] + \"<... truncated>\"\n\t}\n\treturn value\n}\n\n// EqualValues asserts that two objects are equal or convertable to the same types\n// and equal.\n//\n//\tassert.EqualValues(t, uint32(123), int32(123))\nfunc EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !ObjectsAreEqualValues(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal: \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// EqualExportedValues asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t assert.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true\n//\t assert.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false\nfunc EqualExportedValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taType := reflect.TypeOf(expected)\n\tbType := reflect.TypeOf(actual)\n\n\tif aType != bType {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to match exactly\\n\\t%v != %v\", aType, bType), msgAndArgs...)\n\t}\n\n\tif aType.Kind() != reflect.Struct {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to both be struct \\n\\t%v != %v\", aType.Kind(), reflect.Struct), msgAndArgs...)\n\t}\n\n\tif bType.Kind() != reflect.Struct {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to both be struct \\n\\t%v != %v\", bType.Kind(), reflect.Struct), msgAndArgs...)\n\t}\n\n\texpected = copyExportedFields(expected)\n\tactual = copyExportedFields(actual)\n\n\tif !ObjectsAreEqualValues(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal (comparing only exported fields): \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Exactly asserts that two objects are equal in value and type.\n//\n//\tassert.Exactly(t, int32(123), int64(123))\nfunc Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taType := reflect.TypeOf(expected)\n\tbType := reflect.TypeOf(actual)\n\n\tif aType != bType {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to match exactly\\n\\t%v != %v\", aType, bType), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expected, actual, msgAndArgs...)\n\n}\n\n// NotNil asserts that the specified object is not nil.\n//\n//\tassert.NotNil(t, err)\nfunc NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tif !isNil(object) {\n\t\treturn true\n\t}\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, \"Expected value not to be nil.\", msgAndArgs...)\n}\n\n// containsKind checks if a specified kind in the slice of kinds.\nfunc containsKind(kinds []reflect.Kind, kind reflect.Kind) bool {\n\tfor i := 0; i < len(kinds); i++ {\n\t\tif kind == kinds[i] {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// isNil checks if a specified object is nil or not, without Failing.\nfunc isNil(object interface{}) bool {\n\tif object == nil {\n\t\treturn true\n\t}\n\n\tvalue := reflect.ValueOf(object)\n\tkind := value.Kind()\n\tisNilableKind := containsKind(\n\t\t[]reflect.Kind{\n\t\t\treflect.Chan, reflect.Func,\n\t\t\treflect.Interface, reflect.Map,\n\t\t\treflect.Ptr, reflect.Slice, reflect.UnsafePointer},\n\t\tkind)\n\n\tif isNilableKind && value.IsNil() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// Nil asserts that the specified object is nil.\n//\n//\tassert.Nil(t, err)\nfunc Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tif isNil(object) {\n\t\treturn true\n\t}\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, fmt.Sprintf(\"Expected nil, but got: %#v\", object), msgAndArgs...)\n}\n\n// isEmpty gets whether the specified object is considered empty or not.\nfunc isEmpty(object interface{}) bool {\n\n\t// get nil case out of the way\n\tif object == nil {\n\t\treturn true\n\t}\n\n\tobjValue := reflect.ValueOf(object)\n\n\tswitch objValue.Kind() {\n\t// collection types are empty when they have no element\n\tcase reflect.Chan, reflect.Map, reflect.Slice:\n\t\treturn objValue.Len() == 0\n\t// pointers are empty if nil or if the value they point to is empty\n\tcase reflect.Ptr:\n\t\tif objValue.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tderef := objValue.Elem().Interface()\n\t\treturn isEmpty(deref)\n\t// for all other types, compare against the zero value\n\t// array types are empty when they match their zero-initialized state\n\tdefault:\n\t\tzero := reflect.Zero(objValue.Type())\n\t\treturn reflect.DeepEqual(object, zero.Interface())\n\t}\n}\n\n// Empty asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tassert.Empty(t, obj)\nfunc Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tpass := isEmpty(object)\n\tif !pass {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\tFail(t, fmt.Sprintf(\"Should be empty, but was %v\", object), msgAndArgs...)\n\t}\n\n\treturn pass\n\n}\n\n// NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif assert.NotEmpty(t, obj) {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tpass := !isEmpty(object)\n\tif !pass {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\tFail(t, fmt.Sprintf(\"Should NOT be empty, but was %v\", object), msgAndArgs...)\n\t}\n\n\treturn pass\n\n}\n\n// getLen try to get length of object.\n// return (false, 0) if impossible.\nfunc getLen(x interface{}) (ok bool, length int) {\n\tv := reflect.ValueOf(x)\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\tok = false\n\t\t}\n\t}()\n\treturn true, v.Len()\n}\n\n// Len asserts that the specified object has specific length.\n// Len also fails if the object has a type that len() not accept.\n//\n//\tassert.Len(t, mySlice, 3)\nfunc Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tok, l := getLen(object)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"\\\"%s\\\" could not be applied builtin len()\", object), msgAndArgs...)\n\t}\n\n\tif l != length {\n\t\treturn Fail(t, fmt.Sprintf(\"\\\"%s\\\" should have %d item(s), but has %d\", object, length, l), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// True asserts that the specified value is true.\n//\n//\tassert.True(t, myBool)\nfunc True(t TestingT, value bool, msgAndArgs ...interface{}) bool {\n\tif !value {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"Should be true\", msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// False asserts that the specified value is false.\n//\n//\tassert.False(t, myBool)\nfunc False(t TestingT, value bool, msgAndArgs ...interface{}) bool {\n\tif value {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"Should be false\", msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotEqual asserts that the specified values are NOT equal.\n//\n//\tassert.NotEqual(t, obj1, obj2)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif err := validateEqualArgs(expected, actual); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Invalid operation: %#v != %#v (%s)\",\n\t\t\texpected, actual, err), msgAndArgs...)\n\t}\n\n\tif ObjectsAreEqual(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be: %#v\\n\", actual), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotEqualValues asserts that two objects are not equal even when converted to the same type\n//\n//\tassert.NotEqualValues(t, obj1, obj2)\nfunc NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif ObjectsAreEqualValues(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be: %#v\\n\", actual), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// containsElement try loop over the list check if the list includes the element.\n// return (false, false) if impossible.\n// return (true, false) if element was not found.\n// return (true, true) if element was found.\nfunc containsElement(list interface{}, element interface{}) (ok, found bool) {\n\n\tlistValue := reflect.ValueOf(list)\n\tlistType := reflect.TypeOf(list)\n\tif listType == nil {\n\t\treturn false, false\n\t}\n\tlistKind := listType.Kind()\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\tok = false\n\t\t\tfound = false\n\t\t}\n\t}()\n\n\tif listKind == reflect.String {\n\t\telementValue := reflect.ValueOf(element)\n\t\treturn true, strings.Contains(listValue.String(), elementValue.String())\n\t}\n\n\tif listKind == reflect.Map {\n\t\tmapKeys := listValue.MapKeys()\n\t\tfor i := 0; i < len(mapKeys); i++ {\n\t\t\tif ObjectsAreEqual(mapKeys[i].Interface(), element) {\n\t\t\t\treturn true, true\n\t\t\t}\n\t\t}\n\t\treturn true, false\n\t}\n\n\tfor i := 0; i < listValue.Len(); i++ {\n\t\tif ObjectsAreEqual(listValue.Index(i).Interface(), element) {\n\t\t\treturn true, true\n\t\t}\n\t}\n\treturn true, false\n\n}\n\n// Contains asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\tassert.Contains(t, \"Hello World\", \"World\")\n//\tassert.Contains(t, [\"Hello\", \"World\"], \"World\")\n//\tassert.Contains(t, {\"Hello\": \"World\"}, \"Hello\")\nfunc Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tok, found := containsElement(s, contains)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", s), msgAndArgs...)\n\t}\n\tif !found {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", s, contains), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\tassert.NotContains(t, \"Hello World\", \"Earth\")\n//\tassert.NotContains(t, [\"Hello\", \"World\"], \"Earth\")\n//\tassert.NotContains(t, {\"Hello\": \"World\"}, \"Earth\")\nfunc NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tok, found := containsElement(s, contains)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", s), msgAndArgs...)\n\t}\n\tif found {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v should not contain %#v\", s, contains), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// Subset asserts that the specified list(array, slice...) contains all\n// elements given in the specified subset(array, slice...).\n//\n//\tassert.Subset(t, [1, 2, 3], [1, 2], \"But [1, 2, 3] does contain [1, 2]\")\nfunc Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif subset == nil {\n\t\treturn true // we consider nil to be equal to the nil set\n\t}\n\n\tlistKind := reflect.TypeOf(list).Kind()\n\tif listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", list, listKind), msgAndArgs...)\n\t}\n\n\tsubsetKind := reflect.TypeOf(subset).Kind()\n\tif subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", subset, subsetKind), msgAndArgs...)\n\t}\n\n\tif subsetKind == reflect.Map && listKind == reflect.Map {\n\t\tsubsetMap := reflect.ValueOf(subset)\n\t\tactualMap := reflect.ValueOf(list)\n\n\t\tfor _, k := range subsetMap.MapKeys() {\n\t\t\tev := subsetMap.MapIndex(k)\n\t\t\tav := actualMap.MapIndex(k)\n\n\t\t\tif !av.IsValid() {\n\t\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, subset), msgAndArgs...)\n\t\t\t}\n\t\t\tif !ObjectsAreEqual(ev.Interface(), av.Interface()) {\n\t\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, subset), msgAndArgs...)\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tsubsetList := reflect.ValueOf(subset)\n\tfor i := 0; i < subsetList.Len(); i++ {\n\t\telement := subsetList.Index(i).Interface()\n\t\tok, found := containsElement(list, element)\n\t\tif !ok {\n\t\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", list), msgAndArgs...)\n\t\t}\n\t\tif !found {\n\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, element), msgAndArgs...)\n\t\t}\n\t}\n\n\treturn true\n}\n\n// NotSubset asserts that the specified list(array, slice...) contains not all\n// elements given in the specified subset(array, slice...).\n//\n//\tassert.NotSubset(t, [1, 3, 4], [1, 2], \"But [1, 3, 4] does not contain [1, 2]\")\nfunc NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif subset == nil {\n\t\treturn Fail(t, \"nil is the empty set which is a subset of every set\", msgAndArgs...)\n\t}\n\n\tlistKind := reflect.TypeOf(list).Kind()\n\tif listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", list, listKind), msgAndArgs...)\n\t}\n\n\tsubsetKind := reflect.TypeOf(subset).Kind()\n\tif subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", subset, subsetKind), msgAndArgs...)\n\t}\n\n\tif subsetKind == reflect.Map && listKind == reflect.Map {\n\t\tsubsetMap := reflect.ValueOf(subset)\n\t\tactualMap := reflect.ValueOf(list)\n\n\t\tfor _, k := range subsetMap.MapKeys() {\n\t\t\tev := subsetMap.MapIndex(k)\n\t\t\tav := actualMap.MapIndex(k)\n\n\t\t\tif !av.IsValid() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif !ObjectsAreEqual(ev.Interface(), av.Interface()) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a subset of %q\", subset, list), msgAndArgs...)\n\t}\n\n\tsubsetList := reflect.ValueOf(subset)\n\tfor i := 0; i < subsetList.Len(); i++ {\n\t\telement := subsetList.Index(i).Interface()\n\t\tok, found := containsElement(list, element)\n\t\tif !ok {\n\t\t\treturn Fail(t, fmt.Sprintf(\"\\\"%s\\\" could not be applied builtin len()\", list), msgAndArgs...)\n\t\t}\n\t\tif !found {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn Fail(t, fmt.Sprintf(\"%q is a subset of %q\", subset, list), msgAndArgs...)\n}\n\n// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2])\nfunc ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif isEmpty(listA) && isEmpty(listB) {\n\t\treturn true\n\t}\n\n\tif !isList(t, listA, msgAndArgs...) || !isList(t, listB, msgAndArgs...) {\n\t\treturn false\n\t}\n\n\textraA, extraB := diffLists(listA, listB)\n\n\tif len(extraA) == 0 && len(extraB) == 0 {\n\t\treturn true\n\t}\n\n\treturn Fail(t, formatListDiff(listA, listB, extraA, extraB), msgAndArgs...)\n}\n\n// isList checks that the provided value is array or slice.\nfunc isList(t TestingT, list interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tkind := reflect.TypeOf(list).Kind()\n\tif kind != reflect.Array && kind != reflect.Slice {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s, expecting array or slice\", list, kind),\n\t\t\tmsgAndArgs...)\n\t}\n\treturn true\n}\n\n// diffLists diffs two arrays/slices and returns slices of elements that are only in A and only in B.\n// If some element is present multiple times, each instance is counted separately (e.g. if something is 2x in A and\n// 5x in B, it will be 0x in extraA and 3x in extraB). The order of items in both lists is ignored.\nfunc diffLists(listA, listB interface{}) (extraA, extraB []interface{}) {\n\taValue := reflect.ValueOf(listA)\n\tbValue := reflect.ValueOf(listB)\n\n\taLen := aValue.Len()\n\tbLen := bValue.Len()\n\n\t// Mark indexes in bValue that we already used\n\tvisited := make([]bool, bLen)\n\tfor i := 0; i < aLen; i++ {\n\t\telement := aValue.Index(i).Interface()\n\t\tfound := false\n\t\tfor j := 0; j < bLen; j++ {\n\t\t\tif visited[j] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif ObjectsAreEqual(bValue.Index(j).Interface(), element) {\n\t\t\t\tvisited[j] = true\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\textraA = append(extraA, element)\n\t\t}\n\t}\n\n\tfor j := 0; j < bLen; j++ {\n\t\tif visited[j] {\n\t\t\tcontinue\n\t\t}\n\t\textraB = append(extraB, bValue.Index(j).Interface())\n\t}\n\n\treturn\n}\n\nfunc formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) string {\n\tvar msg bytes.Buffer\n\n\tmsg.WriteString(\"elements differ\")\n\tif len(extraA) > 0 {\n\t\tmsg.WriteString(\"\\n\\nextra elements in list A:\\n\")\n\t\tmsg.WriteString(spewConfig.Sdump(extraA))\n\t}\n\tif len(extraB) > 0 {\n\t\tmsg.WriteString(\"\\n\\nextra elements in list B:\\n\")\n\t\tmsg.WriteString(spewConfig.Sdump(extraB))\n\t}\n\tmsg.WriteString(\"\\n\\nlistA:\\n\")\n\tmsg.WriteString(spewConfig.Sdump(listA))\n\tmsg.WriteString(\"\\n\\nlistB:\\n\")\n\tmsg.WriteString(spewConfig.Sdump(listB))\n\n\treturn msg.String()\n}\n\n// Condition uses a Comparison to assert a complex condition.\nfunc Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tresult := comp()\n\tif !result {\n\t\tFail(t, \"Condition failed!\", msgAndArgs...)\n\t}\n\treturn result\n}\n\n// PanicTestFunc defines a func that should be passed to the assert.Panics and assert.NotPanics\n// methods, and represents a simple func that takes no arguments, and returns nothing.\ntype PanicTestFunc func()\n\n// didPanic returns true if the function passed to it panics. Otherwise, it returns false.\nfunc didPanic(f PanicTestFunc) (didPanic bool, message interface{}, stack string) {\n\tdidPanic = true\n\n\tdefer func() {\n\t\tmessage = recover()\n\t\tif didPanic {\n\t\t\tstack = string(debug.Stack())\n\t\t}\n\t}()\n\n\t// call the target function\n\tf()\n\tdidPanic = false\n\n\treturn\n}\n\n// Panics asserts that the code inside the specified PanicTestFunc panics.\n//\n//\tassert.Panics(t, func(){ GoCrazy() })\nfunc Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\tassert.PanicsWithValue(t, \"crazy error\", func(){ GoCrazy() })\nfunc PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tfuncDidPanic, panicValue, panickedStack := didPanic(f)\n\tif !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\tif panicValue != expected {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic with value:\\t%#v\\n\\tPanic value:\\t%#v\\n\\tPanic stack:\\t%s\", f, expected, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// PanicsWithError asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\tassert.PanicsWithError(t, \"crazy error\", func(){ GoCrazy() })\nfunc PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tfuncDidPanic, panicValue, panickedStack := didPanic(f)\n\tif !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\tpanicErr, ok := panicValue.(error)\n\tif !ok || panicErr.Error() != errString {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic with error message:\\t%#v\\n\\tPanic value:\\t%#v\\n\\tPanic stack:\\t%s\", f, errString, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\tassert.NotPanics(t, func(){ RemainCalm() })\nfunc NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should not panic\\n\\tPanic value:\\t%v\\n\\tPanic stack:\\t%s\", f, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// WithinDuration asserts that the two times are within duration delta of each other.\n//\n//\tassert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second)\nfunc WithinDuration(t TestingT, expected, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tdt := expected.Sub(actual)\n\tif dt < -delta || dt > delta {\n\t\treturn Fail(t, fmt.Sprintf(\"Max difference between %v and %v allowed is %v, but difference was %v\", expected, actual, delta, dt), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// WithinRange asserts that a time is within a time range (inclusive).\n//\n//\tassert.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))\nfunc WithinRange(t TestingT, actual, start, end time.Time, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif end.Before(start) {\n\t\treturn Fail(t, \"Start should be before end\", msgAndArgs...)\n\t}\n\n\tif actual.Before(start) {\n\t\treturn Fail(t, fmt.Sprintf(\"Time %v expected to be in time range %v to %v, but is before the range\", actual, start, end), msgAndArgs...)\n\t} else if actual.After(end) {\n\t\treturn Fail(t, fmt.Sprintf(\"Time %v expected to be in time range %v to %v, but is after the range\", actual, start, end), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\nfunc toFloat(x interface{}) (float64, bool) {\n\tvar xf float64\n\txok := true\n\n\tswitch xn := x.(type) {\n\tcase uint:\n\t\txf = float64(xn)\n\tcase uint8:\n\t\txf = float64(xn)\n\tcase uint16:\n\t\txf = float64(xn)\n\tcase uint32:\n\t\txf = float64(xn)\n\tcase uint64:\n\t\txf = float64(xn)\n\tcase int:\n\t\txf = float64(xn)\n\tcase int8:\n\t\txf = float64(xn)\n\tcase int16:\n\t\txf = float64(xn)\n\tcase int32:\n\t\txf = float64(xn)\n\tcase int64:\n\t\txf = float64(xn)\n\tcase float32:\n\t\txf = float64(xn)\n\tcase float64:\n\t\txf = xn\n\tcase time.Duration:\n\t\txf = float64(xn)\n\tdefault:\n\t\txok = false\n\t}\n\n\treturn xf, xok\n}\n\n// InDelta asserts that the two numerals are within delta of each other.\n//\n//\tassert.InDelta(t, math.Pi, 22/7.0, 0.01)\nfunc InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taf, aok := toFloat(expected)\n\tbf, bok := toFloat(actual)\n\n\tif !aok || !bok {\n\t\treturn Fail(t, \"Parameters must be numerical\", msgAndArgs...)\n\t}\n\n\tif math.IsNaN(af) && math.IsNaN(bf) {\n\t\treturn true\n\t}\n\n\tif math.IsNaN(af) {\n\t\treturn Fail(t, \"Expected must not be NaN\", msgAndArgs...)\n\t}\n\n\tif math.IsNaN(bf) {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected %v with delta %v, but was NaN\", expected, delta), msgAndArgs...)\n\t}\n\n\tdt := af - bf\n\tif dt < -delta || dt > delta {\n\t\treturn Fail(t, fmt.Sprintf(\"Max difference between %v and %v allowed is %v, but difference was %v\", expected, actual, delta, dt), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// InDeltaSlice is the same as InDelta, except it compares two slices.\nfunc InDeltaSlice(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif expected == nil || actual == nil ||\n\t\treflect.TypeOf(actual).Kind() != reflect.Slice ||\n\t\treflect.TypeOf(expected).Kind() != reflect.Slice {\n\t\treturn Fail(t, \"Parameters must be slice\", msgAndArgs...)\n\t}\n\n\tactualSlice := reflect.ValueOf(actual)\n\texpectedSlice := reflect.ValueOf(expected)\n\n\tfor i := 0; i < actualSlice.Len(); i++ {\n\t\tresult := InDelta(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), delta, msgAndArgs...)\n\t\tif !result {\n\t\t\treturn result\n\t\t}\n\t}\n\n\treturn true\n}\n\n// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc InDeltaMapValues(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif expected == nil || actual == nil ||\n\t\treflect.TypeOf(actual).Kind() != reflect.Map ||\n\t\treflect.TypeOf(expected).Kind() != reflect.Map {\n\t\treturn Fail(t, \"Arguments must be maps\", msgAndArgs...)\n\t}\n\n\texpectedMap := reflect.ValueOf(expected)\n\tactualMap := reflect.ValueOf(actual)\n\n\tif expectedMap.Len() != actualMap.Len() {\n\t\treturn Fail(t, \"Arguments must have the same number of keys\", msgAndArgs...)\n\t}\n\n\tfor _, k := range expectedMap.MapKeys() {\n\t\tev := expectedMap.MapIndex(k)\n\t\tav := actualMap.MapIndex(k)\n\n\t\tif !ev.IsValid() {\n\t\t\treturn Fail(t, fmt.Sprintf(\"missing key %q in expected map\", k), msgAndArgs...)\n\t\t}\n\n\t\tif !av.IsValid() {\n\t\t\treturn Fail(t, fmt.Sprintf(\"missing key %q in actual map\", k), msgAndArgs...)\n\t\t}\n\n\t\tif !InDelta(\n\t\t\tt,\n\t\t\tev.Interface(),\n\t\t\tav.Interface(),\n\t\t\tdelta,\n\t\t\tmsgAndArgs...,\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc calcRelativeError(expected, actual interface{}) (float64, error) {\n\taf, aok := toFloat(expected)\n\tbf, bok := toFloat(actual)\n\tif !aok || !bok {\n\t\treturn 0, fmt.Errorf(\"Parameters must be numerical\")\n\t}\n\tif math.IsNaN(af) && math.IsNaN(bf) {\n\t\treturn 0, nil\n\t}\n\tif math.IsNaN(af) {\n\t\treturn 0, errors.New(\"expected value must not be NaN\")\n\t}\n\tif af == 0 {\n\t\treturn 0, fmt.Errorf(\"expected value must have a value other than zero to calculate the relative error\")\n\t}\n\tif math.IsNaN(bf) {\n\t\treturn 0, errors.New(\"actual value must not be NaN\")\n\t}\n\n\treturn math.Abs(af-bf) / math.Abs(af), nil\n}\n\n// InEpsilon asserts that expected and actual have a relative error less than epsilon\nfunc InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif math.IsNaN(epsilon) {\n\t\treturn Fail(t, \"epsilon must not be NaN\")\n\t}\n\tactualEpsilon, err := calcRelativeError(expected, actual)\n\tif err != nil {\n\t\treturn Fail(t, err.Error(), msgAndArgs...)\n\t}\n\tif actualEpsilon > epsilon {\n\t\treturn Fail(t, fmt.Sprintf(\"Relative error is too high: %#v (expected)\\n\"+\n\t\t\t\"        < %#v (actual)\", epsilon, actualEpsilon), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.\nfunc InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif expected == nil || actual == nil ||\n\t\treflect.TypeOf(actual).Kind() != reflect.Slice ||\n\t\treflect.TypeOf(expected).Kind() != reflect.Slice {\n\t\treturn Fail(t, \"Parameters must be slice\", msgAndArgs...)\n\t}\n\n\tactualSlice := reflect.ValueOf(actual)\n\texpectedSlice := reflect.ValueOf(expected)\n\n\tfor i := 0; i < actualSlice.Len(); i++ {\n\t\tresult := InEpsilon(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), epsilon)\n\t\tif !result {\n\t\t\treturn result\n\t\t}\n\t}\n\n\treturn true\n}\n\n/*\n\tErrors\n*/\n\n// NoError asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.NoError(t, err) {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc NoError(t TestingT, err error, msgAndArgs ...interface{}) bool {\n\tif err != nil {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"Received unexpected error:\\n%+v\", err), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.Error(t, err) {\n//\t\t   assert.Equal(t, expectedError, err)\n//\t  }\nfunc Error(t TestingT, err error, msgAndArgs ...interface{}) bool {\n\tif err == nil {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"An error is expected but got nil.\", msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// EqualError asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.EqualError(t, err,  expectedErrorString)\nfunc EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !Error(t, theError, msgAndArgs...) {\n\t\treturn false\n\t}\n\texpected := errString\n\tactual := theError.Error()\n\t// don't need to use deep equals here, we know they are both strings\n\tif expected != actual {\n\t\treturn Fail(t, fmt.Sprintf(\"Error message not equal:\\n\"+\n\t\t\t\"expected: %q\\n\"+\n\t\t\t\"actual  : %q\", expected, actual), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.ErrorContains(t, err,  expectedErrorSubString)\nfunc ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !Error(t, theError, msgAndArgs...) {\n\t\treturn false\n\t}\n\n\tactual := theError.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn Fail(t, fmt.Sprintf(\"Error %#v does not contain %#v\", actual, contains), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// matchRegexp return true if a specified regexp matches a string.\nfunc matchRegexp(rx interface{}, str interface{}) bool {\n\n\tvar r *regexp.Regexp\n\tif rr, ok := rx.(*regexp.Regexp); ok {\n\t\tr = rr\n\t} else {\n\t\tr = regexp.MustCompile(fmt.Sprint(rx))\n\t}\n\n\treturn (r.FindStringIndex(fmt.Sprint(str)) != nil)\n\n}\n\n// Regexp asserts that a specified regexp matches a string.\n//\n//\tassert.Regexp(t, regexp.MustCompile(\"start\"), \"it's starting\")\n//\tassert.Regexp(t, \"start...$\", \"it's not starting\")\nfunc Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tmatch := matchRegexp(rx, str)\n\n\tif !match {\n\t\tFail(t, fmt.Sprintf(\"Expect \\\"%v\\\" to match \\\"%v\\\"\", str, rx), msgAndArgs...)\n\t}\n\n\treturn match\n}\n\n// NotRegexp asserts that a specified regexp does not match a string.\n//\n//\tassert.NotRegexp(t, regexp.MustCompile(\"starts\"), \"it's starting\")\n//\tassert.NotRegexp(t, \"^start\", \"it's not starting\")\nfunc NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tmatch := matchRegexp(rx, str)\n\n\tif match {\n\t\tFail(t, fmt.Sprintf(\"Expect \\\"%v\\\" to NOT match \\\"%v\\\"\", str, rx), msgAndArgs...)\n\t}\n\n\treturn !match\n\n}\n\n// Zero asserts that i is the zero value for its type.\nfunc Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should be zero, but was %v\", i), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NotZero asserts that i is not the zero value for its type.\nfunc NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be zero, but was %v\", i), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// FileExists checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn Fail(t, fmt.Sprintf(\"unable to find file %q\", path), msgAndArgs...)\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"error when running os.Lstat(%q): %s\", path, err), msgAndArgs...)\n\t}\n\tif info.IsDir() {\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a directory\", path), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NoFileExists checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\treturn true\n\t}\n\tif info.IsDir() {\n\t\treturn true\n\t}\n\treturn Fail(t, fmt.Sprintf(\"file %q exists\", path), msgAndArgs...)\n}\n\n// DirExists checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn Fail(t, fmt.Sprintf(\"unable to find file %q\", path), msgAndArgs...)\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"error when running os.Lstat(%q): %s\", path, err), msgAndArgs...)\n\t}\n\tif !info.IsDir() {\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a file\", path), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NoDirExists checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn true\n\t}\n\tif !info.IsDir() {\n\t\treturn true\n\t}\n\treturn Fail(t, fmt.Sprintf(\"directory %q exists\", path), msgAndArgs...)\n}\n\n// JSONEq asserts that two JSON strings are equivalent.\n//\n//\tassert.JSONEq(t, `{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`)\nfunc JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tvar expectedJSONAsInterface, actualJSONAsInterface interface{}\n\n\tif err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected value ('%s') is not valid json.\\nJSON parsing error: '%s'\", expected, err.Error()), msgAndArgs...)\n\t}\n\n\tif err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Input ('%s') needs to be valid json.\\nJSON parsing error: '%s'\", actual, err.Error()), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...)\n}\n\n// YAMLEq asserts that two YAML strings are equivalent.\nfunc YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tvar expectedYAMLAsInterface, actualYAMLAsInterface interface{}\n\n\tif err := yaml.Unmarshal([]byte(expected), &expectedYAMLAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected value ('%s') is not valid yaml.\\nYAML parsing error: '%s'\", expected, err.Error()), msgAndArgs...)\n\t}\n\n\tif err := yaml.Unmarshal([]byte(actual), &actualYAMLAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Input ('%s') needs to be valid yaml.\\nYAML error: '%s'\", actual, err.Error()), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expectedYAMLAsInterface, actualYAMLAsInterface, msgAndArgs...)\n}\n\nfunc typeAndKind(v interface{}) (reflect.Type, reflect.Kind) {\n\tt := reflect.TypeOf(v)\n\tk := t.Kind()\n\n\tif k == reflect.Ptr {\n\t\tt = t.Elem()\n\t\tk = t.Kind()\n\t}\n\treturn t, k\n}\n\n// diff returns a diff of both values as long as both are of the same type and\n// are a struct, map, slice, array or string. Otherwise it returns an empty string.\nfunc diff(expected interface{}, actual interface{}) string {\n\tif expected == nil || actual == nil {\n\t\treturn \"\"\n\t}\n\n\tet, ek := typeAndKind(expected)\n\tat, _ := typeAndKind(actual)\n\n\tif et != at {\n\t\treturn \"\"\n\t}\n\n\tif ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String {\n\t\treturn \"\"\n\t}\n\n\tvar e, a string\n\n\tswitch et {\n\tcase reflect.TypeOf(\"\"):\n\t\te = reflect.ValueOf(expected).String()\n\t\ta = reflect.ValueOf(actual).String()\n\tcase reflect.TypeOf(time.Time{}):\n\t\te = spewConfigStringerEnabled.Sdump(expected)\n\t\ta = spewConfigStringerEnabled.Sdump(actual)\n\tdefault:\n\t\te = spewConfig.Sdump(expected)\n\t\ta = spewConfig.Sdump(actual)\n\t}\n\n\tdiff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{\n\t\tA:        difflib.SplitLines(e),\n\t\tB:        difflib.SplitLines(a),\n\t\tFromFile: \"Expected\",\n\t\tFromDate: \"\",\n\t\tToFile:   \"Actual\",\n\t\tToDate:   \"\",\n\t\tContext:  1,\n\t})\n\n\treturn \"\\n\\nDiff:\\n\" + diff\n}\n\nfunc isFunction(arg interface{}) bool {\n\tif arg == nil {\n\t\treturn false\n\t}\n\treturn reflect.TypeOf(arg).Kind() == reflect.Func\n}\n\nvar spewConfig = spew.ConfigState{\n\tIndent:                  \" \",\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n\tSortKeys:                true,\n\tDisableMethods:          true,\n\tMaxDepth:                10,\n}\n\nvar spewConfigStringerEnabled = spew.ConfigState{\n\tIndent:                  \" \",\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n\tSortKeys:                true,\n\tMaxDepth:                10,\n}\n\ntype tHelper interface {\n\tHelper()\n}\n\n// Eventually asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\tassert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond)\nfunc Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tch := make(chan bool, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\treturn Fail(t, \"Condition never satisfied\", msgAndArgs...)\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tgo func() { ch <- condition() }()\n\t\tcase v := <-ch:\n\t\t\tif v {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// CollectT implements the TestingT interface and collects all errors.\ntype CollectT struct {\n\terrors []error\n}\n\n// Errorf collects the error.\nfunc (c *CollectT) Errorf(format string, args ...interface{}) {\n\tc.errors = append(c.errors, fmt.Errorf(format, args...))\n}\n\n// FailNow panics.\nfunc (c *CollectT) FailNow() {\n\tpanic(\"Assertion failed\")\n}\n\n// Reset clears the collected errors.\nfunc (c *CollectT) Reset() {\n\tc.errors = nil\n}\n\n// Copy copies the collected errors to the supplied t.\nfunc (c *CollectT) Copy(t TestingT) {\n\tif tt, ok := t.(tHelper); ok {\n\t\ttt.Helper()\n\t}\n\tfor _, err := range c.errors {\n\t\tt.Errorf(\"%v\", err)\n\t}\n}\n\n// EventuallyWithT asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\tassert.EventuallyWithT(t, func(c *assert.CollectT) {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tcollect := new(CollectT)\n\tch := make(chan bool, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\tcollect.Copy(t)\n\t\t\treturn Fail(t, \"Condition never satisfied\", msgAndArgs...)\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tcollect.Reset()\n\t\t\tgo func() {\n\t\t\t\tcondition(collect)\n\t\t\t\tch <- len(collect.errors) == 0\n\t\t\t}()\n\t\tcase v := <-ch:\n\t\t\tif v {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// Never asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\tassert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond)\nfunc Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tch := make(chan bool, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\treturn true\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tgo func() { ch <- condition() }()\n\t\tcase v := <-ch:\n\t\t\tif v {\n\t\t\t\treturn Fail(t, \"Condition satisfied\", msgAndArgs...)\n\t\t\t}\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// ErrorIs asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif errors.Is(err, target) {\n\t\treturn true\n\t}\n\n\tvar expectedText string\n\tif target != nil {\n\t\texpectedText = target.Error()\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Target error should be in err chain:\\n\"+\n\t\t\"expected: %q\\n\"+\n\t\t\"in chain: %s\", expectedText, chain,\n\t), msgAndArgs...)\n}\n\n// NotErrorIs asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !errors.Is(err, target) {\n\t\treturn true\n\t}\n\n\tvar expectedText string\n\tif target != nil {\n\t\texpectedText = target.Error()\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Target error should not be in err chain:\\n\"+\n\t\t\"found: %q\\n\"+\n\t\t\"in chain: %s\", expectedText, chain,\n\t), msgAndArgs...)\n}\n\n// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif errors.As(err, target) {\n\t\treturn true\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Should be in error chain:\\n\"+\n\t\t\"expected: %q\\n\"+\n\t\t\"in chain: %s\", target, chain,\n\t), msgAndArgs...)\n}\n\nfunc buildErrorChainString(err error) string {\n\tif err == nil {\n\t\treturn \"\"\n\t}\n\n\te := errors.Unwrap(err)\n\tchain := fmt.Sprintf(\"%q\", err.Error())\n\tfor e != nil {\n\t\tchain += fmt.Sprintf(\"\\n\\t%q\", e.Error())\n\t\te = errors.Unwrap(e)\n\t}\n\treturn chain\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/doc.go",
    "content": "// Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.\n//\n// # Example Usage\n//\n// The following is a complete example using assert in a standard test function:\n//\n//\timport (\n//\t  \"testing\"\n//\t  \"github.com/stretchr/testify/assert\"\n//\t)\n//\n//\tfunc TestSomething(t *testing.T) {\n//\n//\t  var a string = \"Hello\"\n//\t  var b string = \"Hello\"\n//\n//\t  assert.Equal(t, a, b, \"The two words should be the same.\")\n//\n//\t}\n//\n// if you assert many times, use the format below:\n//\n//\timport (\n//\t  \"testing\"\n//\t  \"github.com/stretchr/testify/assert\"\n//\t)\n//\n//\tfunc TestSomething(t *testing.T) {\n//\t  assert := assert.New(t)\n//\n//\t  var a string = \"Hello\"\n//\t  var b string = \"Hello\"\n//\n//\t  assert.Equal(a, b, \"The two words should be the same.\")\n//\t}\n//\n// # Assertions\n//\n// Assertions allow you to easily write test code, and are global funcs in the `assert` package.\n// All assertion functions take, as the first argument, the `*testing.T` object provided by the\n// testing framework. This allows the assertion funcs to write the failings and other details to\n// the correct place.\n//\n// Every assertion function also takes an optional string message as the final argument,\n// allowing custom error messages to be appended to the message the assertion method outputs.\npackage assert\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/errors.go",
    "content": "package assert\n\nimport (\n\t\"errors\"\n)\n\n// AnError is an error instance useful for testing.  If the code does not care\n// about error specifics, and only needs to return the error for example, this\n// error should be used to make the test code more readable.\nvar AnError = errors.New(\"assert.AnError general error for testing\")\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/forward_assertions.go",
    "content": "package assert\n\n// Assertions provides assertion methods around the\n// TestingT interface.\ntype Assertions struct {\n\tt TestingT\n}\n\n// New makes a new Assertions object for the specified TestingT.\nfunc New(t TestingT) *Assertions {\n\treturn &Assertions{\n\t\tt: t,\n\t}\n}\n\n//go:generate sh -c \"cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs\"\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/http_assertions.go",
    "content": "package assert\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n// httpCode is a helper that returns HTTP code of the response. It returns -1 and\n// an error if building a new request fails.\nfunc httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) {\n\tw := httptest.NewRecorder()\n\treq, err := http.NewRequest(method, url, nil)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treq.URL.RawQuery = values.Encode()\n\thandler(w, req)\n\treturn w.Code, nil\n}\n\n// HTTPSuccess asserts that a specified handler returns a success status code.\n//\n//\tassert.HTTPSuccess(t, myHandler, \"POST\", \"http://www.google.com\", nil)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err))\n\t}\n\n\tisSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent\n\tif !isSuccessCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP success status code for %q but received %d\", url+\"?\"+values.Encode(), code))\n\t}\n\n\treturn isSuccessCode\n}\n\n// HTTPRedirect asserts that a specified handler returns a redirect status code.\n//\n//\tassert.HTTPRedirect(t, myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err))\n\t}\n\n\tisRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect\n\tif !isRedirectCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP redirect status code for %q but received %d\", url+\"?\"+values.Encode(), code))\n\t}\n\n\treturn isRedirectCode\n}\n\n// HTTPError asserts that a specified handler returns an error status code.\n//\n//\tassert.HTTPError(t, myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err))\n\t}\n\n\tisErrorCode := code >= http.StatusBadRequest\n\tif !isErrorCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP error status code for %q but received %d\", url+\"?\"+values.Encode(), code))\n\t}\n\n\treturn isErrorCode\n}\n\n// HTTPStatusCode asserts that a specified handler returns a specified status code.\n//\n//\tassert.HTTPStatusCode(t, myHandler, \"GET\", \"/notImplemented\", nil, 501)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err))\n\t}\n\n\tsuccessful := code == statuscode\n\tif !successful {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP status code %d for %q but received %d\", statuscode, url+\"?\"+values.Encode(), code))\n\t}\n\n\treturn successful\n}\n\n// HTTPBody is a helper that returns HTTP body of the response. It returns\n// empty string if building a new request fails.\nfunc HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string {\n\tw := httptest.NewRecorder()\n\treq, err := http.NewRequest(method, url+\"?\"+values.Encode(), nil)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\thandler(w, req)\n\treturn w.Body.String()\n}\n\n// HTTPBodyContains asserts that a specified handler returns a\n// body that contains a string.\n//\n//\tassert.HTTPBodyContains(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tbody := HTTPBody(handler, method, url, values)\n\n\tcontains := strings.Contains(body, fmt.Sprint(str))\n\tif !contains {\n\t\tFail(t, fmt.Sprintf(\"Expected response body for \\\"%s\\\" to contain \\\"%s\\\" but found \\\"%s\\\"\", url+\"?\"+values.Encode(), str, body))\n\t}\n\n\treturn contains\n}\n\n// HTTPBodyNotContains asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\tassert.HTTPBodyNotContains(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tbody := HTTPBody(handler, method, url, values)\n\n\tcontains := strings.Contains(body, fmt.Sprint(str))\n\tif contains {\n\t\tFail(t, fmt.Sprintf(\"Expected response body for \\\"%s\\\" to NOT contain \\\"%s\\\" but found \\\"%s\\\"\", url+\"?\"+values.Encode(), str, body))\n\t}\n\n\treturn !contains\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/net/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/context.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package context has been superseded by the standard library [context] package.\n//\n// Deprecated: Use the standard library context package instead.\npackage context\n\nimport (\n\t\"context\" // standard library's context, as of Go 1.7\n\t\"time\"\n)\n\n// A Context carries a deadline, a cancellation signal, and other values across\n// API boundaries.\n//\n// Context's methods may be called by multiple goroutines simultaneously.\n//\n//go:fix inline\ntype Context = context.Context\n\n// Canceled is the error returned by [Context.Err] when the context is canceled\n// for some reason other than its deadline passing.\n//\n//go:fix inline\nvar Canceled = context.Canceled\n\n// DeadlineExceeded is the error returned by [Context.Err] when the context is canceled\n// due to its deadline passing.\n//\n//go:fix inline\nvar DeadlineExceeded = context.DeadlineExceeded\n\n// Background returns a non-nil, empty Context. It is never canceled, has no\n// values, and has no deadline. It is typically used by the main function,\n// initialization, and tests, and as the top-level Context for incoming\n// requests.\n//\n//go:fix inline\nfunc Background() Context { return context.Background() }\n\n// TODO returns a non-nil, empty Context. Code should use context.TODO when\n// it's unclear which Context to use or it is not yet available (because the\n// surrounding function has not yet been extended to accept a Context\n// parameter).\n//\n//go:fix inline\nfunc TODO() Context { return context.TODO() }\n\n// A CancelFunc tells an operation to abandon its work.\n// A CancelFunc does not wait for the work to stop.\n// A CancelFunc may be called by multiple goroutines simultaneously.\n// After the first call, subsequent calls to a CancelFunc do nothing.\ntype CancelFunc = context.CancelFunc\n\n// WithCancel returns a derived context that points to the parent context\n// but has a new Done channel. The returned context's Done channel is closed\n// when the returned cancel function is called or when the parent context's\n// Done channel is closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this [Context] complete.\n//\n//go:fix inline\nfunc WithCancel(parent Context) (ctx Context, cancel CancelFunc) {\n\treturn context.WithCancel(parent)\n}\n\n// WithDeadline returns a derived context that points to the parent context\n// but has the deadline adjusted to be no later than d. If the parent's\n// deadline is already earlier than d, WithDeadline(parent, d) is semantically\n// equivalent to parent. The returned [Context.Done] channel is closed when\n// the deadline expires, when the returned cancel function is called,\n// or when the parent context's Done channel is closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this [Context] complete.\n//\n//go:fix inline\nfunc WithDeadline(parent Context, d time.Time) (Context, CancelFunc) {\n\treturn context.WithDeadline(parent, d)\n}\n\n// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this [Context] complete:\n//\n//\tfunc slowOperationWithTimeout(ctx context.Context) (Result, error) {\n//\t\tctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)\n//\t\tdefer cancel()  // releases resources if slowOperation completes before timeout elapses\n//\t\treturn slowOperation(ctx)\n//\t}\n//\n//go:fix inline\nfunc WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {\n\treturn context.WithTimeout(parent, timeout)\n}\n\n// WithValue returns a derived context that points to the parent Context.\n// In the derived context, the value associated with key is val.\n//\n// Use context Values only for request-scoped data that transits processes and\n// APIs, not for passing optional parameters to functions.\n//\n// The provided key must be comparable and should not be of type\n// string or any other built-in type to avoid collisions between\n// packages using context. Users of WithValue should define their own\n// types for keys. To avoid allocating when assigning to an\n// interface{}, context keys often have concrete type\n// struct{}. Alternatively, exported context key variables' static\n// type should be a pointer or interface.\n//\n//go:fix inline\nfunc WithValue(parent Context, key, val interface{}) Context {\n\treturn context.WithValue(parent, key, val)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http/httpguts/guts.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package httpguts provides functions implementing various details\n// of the HTTP specification.\n//\n// This package is shared by the standard library (which vendors it)\n// and x/net/http2. It comes with no API stability promise.\npackage httpguts\n\nimport (\n\t\"net/textproto\"\n\t\"strings\"\n)\n\n// ValidTrailerHeader reports whether name is a valid header field name to appear\n// in trailers.\n// See RFC 7230, Section 4.1.2\nfunc ValidTrailerHeader(name string) bool {\n\tname = textproto.CanonicalMIMEHeaderKey(name)\n\tif strings.HasPrefix(name, \"If-\") || badTrailer[name] {\n\t\treturn false\n\t}\n\treturn true\n}\n\nvar badTrailer = map[string]bool{\n\t\"Authorization\":       true,\n\t\"Cache-Control\":       true,\n\t\"Connection\":          true,\n\t\"Content-Encoding\":    true,\n\t\"Content-Length\":      true,\n\t\"Content-Range\":       true,\n\t\"Content-Type\":        true,\n\t\"Expect\":              true,\n\t\"Host\":                true,\n\t\"Keep-Alive\":          true,\n\t\"Max-Forwards\":        true,\n\t\"Pragma\":              true,\n\t\"Proxy-Authenticate\":  true,\n\t\"Proxy-Authorization\": true,\n\t\"Proxy-Connection\":    true,\n\t\"Range\":               true,\n\t\"Realm\":               true,\n\t\"Te\":                  true,\n\t\"Trailer\":             true,\n\t\"Transfer-Encoding\":   true,\n\t\"Www-Authenticate\":    true,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http/httpguts/httplex.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpguts\n\nimport (\n\t\"net\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/net/idna\"\n)\n\nvar isTokenTable = [256]bool{\n\t'!':  true,\n\t'#':  true,\n\t'$':  true,\n\t'%':  true,\n\t'&':  true,\n\t'\\'': true,\n\t'*':  true,\n\t'+':  true,\n\t'-':  true,\n\t'.':  true,\n\t'0':  true,\n\t'1':  true,\n\t'2':  true,\n\t'3':  true,\n\t'4':  true,\n\t'5':  true,\n\t'6':  true,\n\t'7':  true,\n\t'8':  true,\n\t'9':  true,\n\t'A':  true,\n\t'B':  true,\n\t'C':  true,\n\t'D':  true,\n\t'E':  true,\n\t'F':  true,\n\t'G':  true,\n\t'H':  true,\n\t'I':  true,\n\t'J':  true,\n\t'K':  true,\n\t'L':  true,\n\t'M':  true,\n\t'N':  true,\n\t'O':  true,\n\t'P':  true,\n\t'Q':  true,\n\t'R':  true,\n\t'S':  true,\n\t'T':  true,\n\t'U':  true,\n\t'W':  true,\n\t'V':  true,\n\t'X':  true,\n\t'Y':  true,\n\t'Z':  true,\n\t'^':  true,\n\t'_':  true,\n\t'`':  true,\n\t'a':  true,\n\t'b':  true,\n\t'c':  true,\n\t'd':  true,\n\t'e':  true,\n\t'f':  true,\n\t'g':  true,\n\t'h':  true,\n\t'i':  true,\n\t'j':  true,\n\t'k':  true,\n\t'l':  true,\n\t'm':  true,\n\t'n':  true,\n\t'o':  true,\n\t'p':  true,\n\t'q':  true,\n\t'r':  true,\n\t's':  true,\n\t't':  true,\n\t'u':  true,\n\t'v':  true,\n\t'w':  true,\n\t'x':  true,\n\t'y':  true,\n\t'z':  true,\n\t'|':  true,\n\t'~':  true,\n}\n\nfunc IsTokenRune(r rune) bool {\n\treturn r < utf8.RuneSelf && isTokenTable[byte(r)]\n}\n\n// HeaderValuesContainsToken reports whether any string in values\n// contains the provided token, ASCII case-insensitively.\nfunc HeaderValuesContainsToken(values []string, token string) bool {\n\tfor _, v := range values {\n\t\tif headerValueContainsToken(v, token) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isOWS reports whether b is an optional whitespace byte, as defined\n// by RFC 7230 section 3.2.3.\nfunc isOWS(b byte) bool { return b == ' ' || b == '\\t' }\n\n// trimOWS returns x with all optional whitespace removes from the\n// beginning and end.\nfunc trimOWS(x string) string {\n\t// TODO: consider using strings.Trim(x, \" \\t\") instead,\n\t// if and when it's fast enough. See issue 10292.\n\t// But this ASCII-only code will probably always beat UTF-8\n\t// aware code.\n\tfor len(x) > 0 && isOWS(x[0]) {\n\t\tx = x[1:]\n\t}\n\tfor len(x) > 0 && isOWS(x[len(x)-1]) {\n\t\tx = x[:len(x)-1]\n\t}\n\treturn x\n}\n\n// headerValueContainsToken reports whether v (assumed to be a\n// 0#element, in the ABNF extension described in RFC 7230 section 7)\n// contains token amongst its comma-separated tokens, ASCII\n// case-insensitively.\nfunc headerValueContainsToken(v string, token string) bool {\n\tfor comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') {\n\t\tif tokenEqual(trimOWS(v[:comma]), token) {\n\t\t\treturn true\n\t\t}\n\t\tv = v[comma+1:]\n\t}\n\treturn tokenEqual(trimOWS(v), token)\n}\n\n// lowerASCII returns the ASCII lowercase version of b.\nfunc lowerASCII(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively.\nfunc tokenEqual(t1, t2 string) bool {\n\tif len(t1) != len(t2) {\n\t\treturn false\n\t}\n\tfor i, b := range t1 {\n\t\tif b >= utf8.RuneSelf {\n\t\t\t// No UTF-8 or non-ASCII allowed in tokens.\n\t\t\treturn false\n\t\t}\n\t\tif lowerASCII(byte(b)) != lowerASCII(t2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// isLWS reports whether b is linear white space, according\n// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2\n//\n//\tLWS            = [CRLF] 1*( SP | HT )\nfunc isLWS(b byte) bool { return b == ' ' || b == '\\t' }\n\n// isCTL reports whether b is a control byte, according\n// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2\n//\n//\tCTL            = <any US-ASCII control character\n//\t                 (octets 0 - 31) and DEL (127)>\nfunc isCTL(b byte) bool {\n\tconst del = 0x7f // a CTL\n\treturn b < ' ' || b == del\n}\n\n// ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name.\n// HTTP/2 imposes the additional restriction that uppercase ASCII\n// letters are not allowed.\n//\n// RFC 7230 says:\n//\n//\theader-field   = field-name \":\" OWS field-value OWS\n//\tfield-name     = token\n//\ttoken          = 1*tchar\n//\ttchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\" / \"+\" / \"-\" / \".\" /\n//\t        \"^\" / \"_\" / \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\nfunc ValidHeaderFieldName(v string) bool {\n\tif len(v) == 0 {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(v); i++ {\n\t\tif !isTokenTable[v[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ValidHostHeader reports whether h is a valid host header.\nfunc ValidHostHeader(h string) bool {\n\t// The latest spec is actually this:\n\t//\n\t// http://tools.ietf.org/html/rfc7230#section-5.4\n\t//     Host = uri-host [ \":\" port ]\n\t//\n\t// Where uri-host is:\n\t//     http://tools.ietf.org/html/rfc3986#section-3.2.2\n\t//\n\t// But we're going to be much more lenient for now and just\n\t// search for any byte that's not a valid byte in any of those\n\t// expressions.\n\tfor i := 0; i < len(h); i++ {\n\t\tif !validHostByte[h[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// See the validHostHeader comment.\nvar validHostByte = [256]bool{\n\t'0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true,\n\t'8': true, '9': true,\n\n\t'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true,\n\t'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true,\n\t'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true,\n\t'y': true, 'z': true,\n\n\t'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true,\n\t'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true,\n\t'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true,\n\t'Y': true, 'Z': true,\n\n\t'!':  true, // sub-delims\n\t'$':  true, // sub-delims\n\t'%':  true, // pct-encoded (and used in IPv6 zones)\n\t'&':  true, // sub-delims\n\t'(':  true, // sub-delims\n\t')':  true, // sub-delims\n\t'*':  true, // sub-delims\n\t'+':  true, // sub-delims\n\t',':  true, // sub-delims\n\t'-':  true, // unreserved\n\t'.':  true, // unreserved\n\t':':  true, // IPv6address + Host expression's optional port\n\t';':  true, // sub-delims\n\t'=':  true, // sub-delims\n\t'[':  true,\n\t'\\'': true, // sub-delims\n\t']':  true,\n\t'_':  true, // unreserved\n\t'~':  true, // unreserved\n}\n\n// ValidHeaderFieldValue reports whether v is a valid \"field-value\" according to\n// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 :\n//\n//\tmessage-header = field-name \":\" [ field-value ]\n//\tfield-value    = *( field-content | LWS )\n//\tfield-content  = <the OCTETs making up the field-value\n//\t                 and consisting of either *TEXT or combinations\n//\t                 of token, separators, and quoted-string>\n//\n// http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 :\n//\n//\tTEXT           = <any OCTET except CTLs,\n//\t                  but including LWS>\n//\tLWS            = [CRLF] 1*( SP | HT )\n//\tCTL            = <any US-ASCII control character\n//\t                 (octets 0 - 31) and DEL (127)>\n//\n// RFC 7230 says:\n//\n//\tfield-value    = *( field-content / obs-fold )\n//\tobj-fold       =  N/A to http2, and deprecated\n//\tfield-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n//\tfield-vchar    = VCHAR / obs-text\n//\tobs-text       = %x80-FF\n//\tVCHAR          = \"any visible [USASCII] character\"\n//\n// http2 further says: \"Similarly, HTTP/2 allows header field values\n// that are not valid. While most of the values that can be encoded\n// will not alter header field parsing, carriage return (CR, ASCII\n// 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII\n// 0x0) might be exploited by an attacker if they are translated\n// verbatim. Any request or response that contains a character not\n// permitted in a header field value MUST be treated as malformed\n// (Section 8.1.2.6). Valid characters are defined by the\n// field-content ABNF rule in Section 3.2 of [RFC7230].\"\n//\n// This function does not (yet?) properly handle the rejection of\n// strings that begin or end with SP or HTAB.\nfunc ValidHeaderFieldValue(v string) bool {\n\tfor i := 0; i < len(v); i++ {\n\t\tb := v[i]\n\t\tif isCTL(b) && !isLWS(b) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc isASCII(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// PunycodeHostPort returns the IDNA Punycode version\n// of the provided \"host\" or \"host:port\" string.\nfunc PunycodeHostPort(v string) (string, error) {\n\tif isASCII(v) {\n\t\treturn v, nil\n\t}\n\n\thost, port, err := net.SplitHostPort(v)\n\tif err != nil {\n\t\t// The input 'v' argument was just a \"host\" argument,\n\t\t// without a port. This error should not be returned\n\t\t// to the caller.\n\t\thost = v\n\t\tport = \"\"\n\t}\n\thost, err = idna.ToASCII(host)\n\tif err != nil {\n\t\t// Non-UTF-8? Not representable in Punycode, in any\n\t\t// case.\n\t\treturn \"\", err\n\t}\n\tif port == \"\" {\n\t\treturn host, nil\n\t}\n\treturn net.JoinHostPort(host, port), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/.gitignore",
    "content": "*~\nh2i/h2i\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/ascii.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"strings\"\n\n// The HTTP protocols are defined in terms of ASCII, not Unicode. This file\n// contains helper functions which may use Unicode-aware functions which would\n// otherwise be unsafe and could introduce vulnerabilities if used improperly.\n\n// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t\n// are equal, ASCII-case-insensitively.\nfunc asciiEqualFold(s, t string) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(s); i++ {\n\t\tif lower(s[i]) != lower(t[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// lower returns the ASCII lowercase version of b.\nfunc lower(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// isASCIIPrint returns whether s is ASCII and printable according to\n// https://tools.ietf.org/html/rfc20#section-4.2.\nfunc isASCIIPrint(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] < ' ' || s[i] > '~' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// asciiToLower returns the lowercase version of s if s is ASCII and printable,\n// and whether or not it was.\nfunc asciiToLower(s string) (lower string, ok bool) {\n\tif !isASCIIPrint(s) {\n\t\treturn \"\", false\n\t}\n\treturn strings.ToLower(s), true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/ciphers.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\n// A list of the possible cipher suite ids. Taken from\n// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt\n\nconst (\n\tcipher_TLS_NULL_WITH_NULL_NULL               uint16 = 0x0000\n\tcipher_TLS_RSA_WITH_NULL_MD5                 uint16 = 0x0001\n\tcipher_TLS_RSA_WITH_NULL_SHA                 uint16 = 0x0002\n\tcipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5        uint16 = 0x0003\n\tcipher_TLS_RSA_WITH_RC4_128_MD5              uint16 = 0x0004\n\tcipher_TLS_RSA_WITH_RC4_128_SHA              uint16 = 0x0005\n\tcipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5    uint16 = 0x0006\n\tcipher_TLS_RSA_WITH_IDEA_CBC_SHA             uint16 = 0x0007\n\tcipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA     uint16 = 0x0008\n\tcipher_TLS_RSA_WITH_DES_CBC_SHA              uint16 = 0x0009\n\tcipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0x000A\n\tcipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000B\n\tcipher_TLS_DH_DSS_WITH_DES_CBC_SHA           uint16 = 0x000C\n\tcipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA      uint16 = 0x000D\n\tcipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000E\n\tcipher_TLS_DH_RSA_WITH_DES_CBC_SHA           uint16 = 0x000F\n\tcipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA      uint16 = 0x0010\n\tcipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011\n\tcipher_TLS_DHE_DSS_WITH_DES_CBC_SHA          uint16 = 0x0012\n\tcipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0013\n\tcipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014\n\tcipher_TLS_DHE_RSA_WITH_DES_CBC_SHA          uint16 = 0x0015\n\tcipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0016\n\tcipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5    uint16 = 0x0017\n\tcipher_TLS_DH_anon_WITH_RC4_128_MD5          uint16 = 0x0018\n\tcipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019\n\tcipher_TLS_DH_anon_WITH_DES_CBC_SHA          uint16 = 0x001A\n\tcipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA     uint16 = 0x001B\n\t// Reserved uint16 =  0x001C-1D\n\tcipher_TLS_KRB5_WITH_DES_CBC_SHA             uint16 = 0x001E\n\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA        uint16 = 0x001F\n\tcipher_TLS_KRB5_WITH_RC4_128_SHA             uint16 = 0x0020\n\tcipher_TLS_KRB5_WITH_IDEA_CBC_SHA            uint16 = 0x0021\n\tcipher_TLS_KRB5_WITH_DES_CBC_MD5             uint16 = 0x0022\n\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5        uint16 = 0x0023\n\tcipher_TLS_KRB5_WITH_RC4_128_MD5             uint16 = 0x0024\n\tcipher_TLS_KRB5_WITH_IDEA_CBC_MD5            uint16 = 0x0025\n\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA   uint16 = 0x0026\n\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA   uint16 = 0x0027\n\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA       uint16 = 0x0028\n\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5   uint16 = 0x0029\n\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5   uint16 = 0x002A\n\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5       uint16 = 0x002B\n\tcipher_TLS_PSK_WITH_NULL_SHA                 uint16 = 0x002C\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA             uint16 = 0x002D\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA             uint16 = 0x002E\n\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA          uint16 = 0x002F\n\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA       uint16 = 0x0030\n\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA       uint16 = 0x0031\n\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA      uint16 = 0x0032\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA      uint16 = 0x0033\n\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA      uint16 = 0x0034\n\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA          uint16 = 0x0035\n\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA       uint16 = 0x0036\n\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA       uint16 = 0x0037\n\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA      uint16 = 0x0038\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA      uint16 = 0x0039\n\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA      uint16 = 0x003A\n\tcipher_TLS_RSA_WITH_NULL_SHA256              uint16 = 0x003B\n\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA256       uint16 = 0x003C\n\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA256       uint16 = 0x003D\n\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256    uint16 = 0x003E\n\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256    uint16 = 0x003F\n\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256   uint16 = 0x0040\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA     uint16 = 0x0041\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0042\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0043\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046\n\t// Reserved uint16 =  0x0047-4F\n\t// Reserved uint16 =  0x0050-58\n\t// Reserved uint16 =  0x0059-5C\n\t// Unassigned uint16 =  0x005D-5F\n\t// Reserved uint16 =  0x0060-66\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067\n\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256  uint16 = 0x0068\n\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256  uint16 = 0x0069\n\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B\n\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C\n\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D\n\t// Unassigned uint16 =  0x006E-83\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA        uint16 = 0x0084\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0085\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0086\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0087\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0088\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0089\n\tcipher_TLS_PSK_WITH_RC4_128_SHA                 uint16 = 0x008A\n\tcipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA            uint16 = 0x008B\n\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA             uint16 = 0x008C\n\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA             uint16 = 0x008D\n\tcipher_TLS_DHE_PSK_WITH_RC4_128_SHA             uint16 = 0x008E\n\tcipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x008F\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0090\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0091\n\tcipher_TLS_RSA_PSK_WITH_RC4_128_SHA             uint16 = 0x0092\n\tcipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x0093\n\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0094\n\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0095\n\tcipher_TLS_RSA_WITH_SEED_CBC_SHA                uint16 = 0x0096\n\tcipher_TLS_DH_DSS_WITH_SEED_CBC_SHA             uint16 = 0x0097\n\tcipher_TLS_DH_RSA_WITH_SEED_CBC_SHA             uint16 = 0x0098\n\tcipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA            uint16 = 0x0099\n\tcipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA            uint16 = 0x009A\n\tcipher_TLS_DH_anon_WITH_SEED_CBC_SHA            uint16 = 0x009B\n\tcipher_TLS_RSA_WITH_AES_128_GCM_SHA256          uint16 = 0x009C\n\tcipher_TLS_RSA_WITH_AES_256_GCM_SHA384          uint16 = 0x009D\n\tcipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      uint16 = 0x009E\n\tcipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      uint16 = 0x009F\n\tcipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256       uint16 = 0x00A0\n\tcipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384       uint16 = 0x00A1\n\tcipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256      uint16 = 0x00A2\n\tcipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384      uint16 = 0x00A3\n\tcipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256       uint16 = 0x00A4\n\tcipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384       uint16 = 0x00A5\n\tcipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256      uint16 = 0x00A6\n\tcipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384      uint16 = 0x00A7\n\tcipher_TLS_PSK_WITH_AES_128_GCM_SHA256          uint16 = 0x00A8\n\tcipher_TLS_PSK_WITH_AES_256_GCM_SHA384          uint16 = 0x00A9\n\tcipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AA\n\tcipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AB\n\tcipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AC\n\tcipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AD\n\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA256          uint16 = 0x00AE\n\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA384          uint16 = 0x00AF\n\tcipher_TLS_PSK_WITH_NULL_SHA256                 uint16 = 0x00B0\n\tcipher_TLS_PSK_WITH_NULL_SHA384                 uint16 = 0x00B1\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B2\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B3\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA256             uint16 = 0x00B4\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA384             uint16 = 0x00B5\n\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B6\n\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B7\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA256             uint16 = 0x00B8\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA384             uint16 = 0x00B9\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0x00BA\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BB\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BC\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256     uint16 = 0x00C0\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C1\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C2\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5\n\t// Unassigned uint16 =  0x00C6-FE\n\tcipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF\n\t// Unassigned uint16 =  0x01-55,*\n\tcipher_TLS_FALLBACK_SCSV uint16 = 0x5600\n\t// Unassigned                                   uint16 = 0x5601 - 0xC000\n\tcipher_TLS_ECDH_ECDSA_WITH_NULL_SHA                 uint16 = 0xC001\n\tcipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA              uint16 = 0xC002\n\tcipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0xC003\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA          uint16 = 0xC004\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA          uint16 = 0xC005\n\tcipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA                uint16 = 0xC006\n\tcipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA             uint16 = 0xC007\n\tcipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC008\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA         uint16 = 0xC009\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA         uint16 = 0xC00A\n\tcipher_TLS_ECDH_RSA_WITH_NULL_SHA                   uint16 = 0xC00B\n\tcipher_TLS_ECDH_RSA_WITH_RC4_128_SHA                uint16 = 0xC00C\n\tcipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA           uint16 = 0xC00D\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA            uint16 = 0xC00E\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA            uint16 = 0xC00F\n\tcipher_TLS_ECDHE_RSA_WITH_NULL_SHA                  uint16 = 0xC010\n\tcipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA               uint16 = 0xC011\n\tcipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC012\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA           uint16 = 0xC013\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA           uint16 = 0xC014\n\tcipher_TLS_ECDH_anon_WITH_NULL_SHA                  uint16 = 0xC015\n\tcipher_TLS_ECDH_anon_WITH_RC4_128_SHA               uint16 = 0xC016\n\tcipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC017\n\tcipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA           uint16 = 0xC018\n\tcipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA           uint16 = 0xC019\n\tcipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA            uint16 = 0xC01A\n\tcipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01B\n\tcipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01C\n\tcipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA             uint16 = 0xC01D\n\tcipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA         uint16 = 0xC01E\n\tcipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA         uint16 = 0xC01F\n\tcipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA             uint16 = 0xC020\n\tcipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA         uint16 = 0xC021\n\tcipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA         uint16 = 0xC022\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256      uint16 = 0xC023\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384      uint16 = 0xC024\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256       uint16 = 0xC025\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384       uint16 = 0xC026\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256        uint16 = 0xC027\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384        uint16 = 0xC028\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256         uint16 = 0xC029\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384         uint16 = 0xC02A\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256      uint16 = 0xC02B\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384      uint16 = 0xC02C\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256       uint16 = 0xC02D\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384       uint16 = 0xC02E\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256        uint16 = 0xC02F\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384        uint16 = 0xC030\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256         uint16 = 0xC031\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384         uint16 = 0xC032\n\tcipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA               uint16 = 0xC033\n\tcipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC034\n\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA           uint16 = 0xC035\n\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA           uint16 = 0xC036\n\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256        uint16 = 0xC037\n\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384        uint16 = 0xC038\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA                  uint16 = 0xC039\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA256               uint16 = 0xC03A\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA384               uint16 = 0xC03B\n\tcipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC03C\n\tcipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC03D\n\tcipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC03E\n\tcipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC03F\n\tcipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC040\n\tcipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC041\n\tcipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC042\n\tcipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC043\n\tcipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC044\n\tcipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC045\n\tcipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC046\n\tcipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC047\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256     uint16 = 0xC048\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384     uint16 = 0xC049\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256      uint16 = 0xC04A\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384      uint16 = 0xC04B\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC04C\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC04D\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256        uint16 = 0xC04E\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384        uint16 = 0xC04F\n\tcipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC050\n\tcipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC051\n\tcipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC052\n\tcipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC053\n\tcipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC054\n\tcipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC055\n\tcipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC056\n\tcipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC057\n\tcipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC058\n\tcipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC059\n\tcipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC05A\n\tcipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC05B\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256     uint16 = 0xC05C\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384     uint16 = 0xC05D\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256      uint16 = 0xC05E\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384      uint16 = 0xC05F\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256       uint16 = 0xC060\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384       uint16 = 0xC061\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256        uint16 = 0xC062\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384        uint16 = 0xC063\n\tcipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC064\n\tcipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC065\n\tcipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC066\n\tcipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC067\n\tcipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC068\n\tcipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC069\n\tcipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC06A\n\tcipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC06B\n\tcipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06C\n\tcipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06D\n\tcipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06E\n\tcipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06F\n\tcipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC070\n\tcipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC071\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0xC074\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  uint16 = 0xC075\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC076\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC077\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256    uint16 = 0xC078\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384    uint16 = 0xC079\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC07A\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC07B\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC07C\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC07D\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC07E\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC07F\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC080\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC081\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC082\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC083\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC084\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC085\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  uint16 = 0xC088\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  uint16 = 0xC089\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256   uint16 = 0xC08A\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384   uint16 = 0xC08B\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256    uint16 = 0xC08C\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384    uint16 = 0xC08D\n\tcipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC08E\n\tcipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC08F\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC090\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC091\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC092\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC093\n\tcipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256         uint16 = 0xC094\n\tcipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384         uint16 = 0xC095\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC096\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC097\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC098\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC099\n\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC09A\n\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC09B\n\tcipher_TLS_RSA_WITH_AES_128_CCM                     uint16 = 0xC09C\n\tcipher_TLS_RSA_WITH_AES_256_CCM                     uint16 = 0xC09D\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CCM                 uint16 = 0xC09E\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CCM                 uint16 = 0xC09F\n\tcipher_TLS_RSA_WITH_AES_128_CCM_8                   uint16 = 0xC0A0\n\tcipher_TLS_RSA_WITH_AES_256_CCM_8                   uint16 = 0xC0A1\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CCM_8               uint16 = 0xC0A2\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CCM_8               uint16 = 0xC0A3\n\tcipher_TLS_PSK_WITH_AES_128_CCM                     uint16 = 0xC0A4\n\tcipher_TLS_PSK_WITH_AES_256_CCM                     uint16 = 0xC0A5\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CCM                 uint16 = 0xC0A6\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CCM                 uint16 = 0xC0A7\n\tcipher_TLS_PSK_WITH_AES_128_CCM_8                   uint16 = 0xC0A8\n\tcipher_TLS_PSK_WITH_AES_256_CCM_8                   uint16 = 0xC0A9\n\tcipher_TLS_PSK_DHE_WITH_AES_128_CCM_8               uint16 = 0xC0AA\n\tcipher_TLS_PSK_DHE_WITH_AES_256_CCM_8               uint16 = 0xC0AB\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM             uint16 = 0xC0AC\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM             uint16 = 0xC0AD\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8           uint16 = 0xC0AE\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8           uint16 = 0xC0AF\n\t// Unassigned uint16 =  0xC0B0-FF\n\t// Unassigned uint16 =  0xC1-CB,*\n\t// Unassigned uint16 =  0xCC00-A7\n\tcipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCA8\n\tcipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9\n\tcipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAA\n\tcipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         uint16 = 0xCCAB\n\tcipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCAC\n\tcipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAD\n\tcipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAE\n)\n\n// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec.\n// References:\n// https://tools.ietf.org/html/rfc7540#appendix-A\n// Reject cipher suites from Appendix A.\n// \"This list includes those cipher suites that do not\n// offer an ephemeral key exchange and those that are\n// based on the TLS null, stream or block cipher type\"\nfunc isBadCipher(cipher uint16) bool {\n\tswitch cipher {\n\tcase cipher_TLS_NULL_WITH_NULL_NULL,\n\t\tcipher_TLS_RSA_WITH_NULL_MD5,\n\t\tcipher_TLS_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_RSA_WITH_RC4_128_MD5,\n\t\tcipher_TLS_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,\n\t\tcipher_TLS_RSA_WITH_IDEA_CBC_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_DH_anon_WITH_RC4_128_MD5,\n\t\tcipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_RC4_128_SHA,\n\t\tcipher_TLS_KRB5_WITH_IDEA_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_DES_CBC_MD5,\n\t\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5,\n\t\tcipher_TLS_KRB5_WITH_RC4_128_MD5,\n\t\tcipher_TLS_KRB5_WITH_IDEA_CBC_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_NULL_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_AES_128_CCM,\n\t\tcipher_TLS_RSA_WITH_AES_256_CCM,\n\t\tcipher_TLS_RSA_WITH_AES_128_CCM_8,\n\t\tcipher_TLS_RSA_WITH_AES_256_CCM_8,\n\t\tcipher_TLS_PSK_WITH_AES_128_CCM,\n\t\tcipher_TLS_PSK_WITH_AES_256_CCM,\n\t\tcipher_TLS_PSK_WITH_AES_128_CCM_8,\n\t\tcipher_TLS_PSK_WITH_AES_256_CCM_8:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/client_conn_pool.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Transport code's client connection pooling.\n\npackage http2\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net\"\n\t\"net/http\"\n\t\"sync\"\n)\n\n// ClientConnPool manages a pool of HTTP/2 client connections.\ntype ClientConnPool interface {\n\t// GetClientConn returns a specific HTTP/2 connection (usually\n\t// a TLS-TCP connection) to an HTTP/2 server. On success, the\n\t// returned ClientConn accounts for the upcoming RoundTrip\n\t// call, so the caller should not omit it. If the caller needs\n\t// to, ClientConn.RoundTrip can be called with a bogus\n\t// new(http.Request) to release the stream reservation.\n\tGetClientConn(req *http.Request, addr string) (*ClientConn, error)\n\tMarkDead(*ClientConn)\n}\n\n// clientConnPoolIdleCloser is the interface implemented by ClientConnPool\n// implementations which can close their idle connections.\ntype clientConnPoolIdleCloser interface {\n\tClientConnPool\n\tcloseIdleConnections()\n}\n\nvar (\n\t_ clientConnPoolIdleCloser = (*clientConnPool)(nil)\n\t_ clientConnPoolIdleCloser = noDialClientConnPool{}\n)\n\n// TODO: use singleflight for dialing and addConnCalls?\ntype clientConnPool struct {\n\tt *Transport\n\n\tmu sync.Mutex // TODO: maybe switch to RWMutex\n\t// TODO: add support for sharing conns based on cert names\n\t// (e.g. share conn for googleapis.com and appspot.com)\n\tconns        map[string][]*ClientConn // key is host:port\n\tdialing      map[string]*dialCall     // currently in-flight dials\n\tkeys         map[*ClientConn][]string\n\taddConnCalls map[string]*addConnCall // in-flight addConnIfNeeded calls\n}\n\nfunc (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {\n\treturn p.getClientConn(req, addr, dialOnMiss)\n}\n\nconst (\n\tdialOnMiss   = true\n\tnoDialOnMiss = false\n)\n\nfunc (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {\n\t// TODO(dneil): Dial a new connection when t.DisableKeepAlives is set?\n\tif isConnectionCloseRequest(req) && dialOnMiss {\n\t\t// It gets its own connection.\n\t\ttraceGetConn(req, addr)\n\t\tconst singleUse = true\n\t\tcc, err := p.t.dialClientConn(req.Context(), addr, singleUse)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn cc, nil\n\t}\n\tfor {\n\t\tp.mu.Lock()\n\t\tfor _, cc := range p.conns[addr] {\n\t\t\tif cc.ReserveNewRequest() {\n\t\t\t\t// When a connection is presented to us by the net/http package,\n\t\t\t\t// the GetConn hook has already been called.\n\t\t\t\t// Don't call it a second time here.\n\t\t\t\tif !cc.getConnCalled {\n\t\t\t\t\ttraceGetConn(req, addr)\n\t\t\t\t}\n\t\t\t\tcc.getConnCalled = false\n\t\t\t\tp.mu.Unlock()\n\t\t\t\treturn cc, nil\n\t\t\t}\n\t\t}\n\t\tif !dialOnMiss {\n\t\t\tp.mu.Unlock()\n\t\t\treturn nil, ErrNoCachedConn\n\t\t}\n\t\ttraceGetConn(req, addr)\n\t\tcall := p.getStartDialLocked(req.Context(), addr)\n\t\tp.mu.Unlock()\n\t\t<-call.done\n\t\tif shouldRetryDial(call, req) {\n\t\t\tcontinue\n\t\t}\n\t\tcc, err := call.res, call.err\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif cc.ReserveNewRequest() {\n\t\t\treturn cc, nil\n\t\t}\n\t}\n}\n\n// dialCall is an in-flight Transport dial call to a host.\ntype dialCall struct {\n\t_ incomparable\n\tp *clientConnPool\n\t// the context associated with the request\n\t// that created this dialCall\n\tctx  context.Context\n\tdone chan struct{} // closed when done\n\tres  *ClientConn   // valid after done is closed\n\terr  error         // valid after done is closed\n}\n\n// requires p.mu is held.\nfunc (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall {\n\tif call, ok := p.dialing[addr]; ok {\n\t\t// A dial is already in-flight. Don't start another.\n\t\treturn call\n\t}\n\tcall := &dialCall{p: p, done: make(chan struct{}), ctx: ctx}\n\tif p.dialing == nil {\n\t\tp.dialing = make(map[string]*dialCall)\n\t}\n\tp.dialing[addr] = call\n\tgo call.dial(call.ctx, addr)\n\treturn call\n}\n\n// run in its own goroutine.\nfunc (c *dialCall) dial(ctx context.Context, addr string) {\n\tconst singleUse = false // shared conn\n\tc.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse)\n\n\tc.p.mu.Lock()\n\tdelete(c.p.dialing, addr)\n\tif c.err == nil {\n\t\tc.p.addConnLocked(addr, c.res)\n\t}\n\tc.p.mu.Unlock()\n\n\tclose(c.done)\n}\n\n// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't\n// already exist. It coalesces concurrent calls with the same key.\n// This is used by the http1 Transport code when it creates a new connection. Because\n// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know\n// the protocol), it can get into a situation where it has multiple TLS connections.\n// This code decides which ones live or die.\n// The return value used is whether c was used.\n// c is never closed.\nfunc (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c net.Conn) (used bool, err error) {\n\tp.mu.Lock()\n\tfor _, cc := range p.conns[key] {\n\t\tif cc.CanTakeNewRequest() {\n\t\t\tp.mu.Unlock()\n\t\t\treturn false, nil\n\t\t}\n\t}\n\tcall, dup := p.addConnCalls[key]\n\tif !dup {\n\t\tif p.addConnCalls == nil {\n\t\t\tp.addConnCalls = make(map[string]*addConnCall)\n\t\t}\n\t\tcall = &addConnCall{\n\t\t\tp:    p,\n\t\t\tdone: make(chan struct{}),\n\t\t}\n\t\tp.addConnCalls[key] = call\n\t\tgo call.run(t, key, c)\n\t}\n\tp.mu.Unlock()\n\n\t<-call.done\n\tif call.err != nil {\n\t\treturn false, call.err\n\t}\n\treturn !dup, nil\n}\n\ntype addConnCall struct {\n\t_    incomparable\n\tp    *clientConnPool\n\tdone chan struct{} // closed when done\n\terr  error\n}\n\nfunc (c *addConnCall) run(t *Transport, key string, nc net.Conn) {\n\tcc, err := t.NewClientConn(nc)\n\n\tp := c.p\n\tp.mu.Lock()\n\tif err != nil {\n\t\tc.err = err\n\t} else {\n\t\tcc.getConnCalled = true // already called by the net/http package\n\t\tp.addConnLocked(key, cc)\n\t}\n\tdelete(p.addConnCalls, key)\n\tp.mu.Unlock()\n\tclose(c.done)\n}\n\n// p.mu must be held\nfunc (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {\n\tfor _, v := range p.conns[key] {\n\t\tif v == cc {\n\t\t\treturn\n\t\t}\n\t}\n\tif p.conns == nil {\n\t\tp.conns = make(map[string][]*ClientConn)\n\t}\n\tif p.keys == nil {\n\t\tp.keys = make(map[*ClientConn][]string)\n\t}\n\tp.conns[key] = append(p.conns[key], cc)\n\tp.keys[cc] = append(p.keys[cc], key)\n}\n\nfunc (p *clientConnPool) MarkDead(cc *ClientConn) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tfor _, key := range p.keys[cc] {\n\t\tvv, ok := p.conns[key]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tnewList := filterOutClientConn(vv, cc)\n\t\tif len(newList) > 0 {\n\t\t\tp.conns[key] = newList\n\t\t} else {\n\t\t\tdelete(p.conns, key)\n\t\t}\n\t}\n\tdelete(p.keys, cc)\n}\n\nfunc (p *clientConnPool) closeIdleConnections() {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\t// TODO: don't close a cc if it was just added to the pool\n\t// milliseconds ago and has never been used. There's currently\n\t// a small race window with the HTTP/1 Transport's integration\n\t// where it can add an idle conn just before using it, and\n\t// somebody else can concurrently call CloseIdleConns and\n\t// break some caller's RoundTrip.\n\tfor _, vv := range p.conns {\n\t\tfor _, cc := range vv {\n\t\t\tcc.closeIfIdle()\n\t\t}\n\t}\n}\n\nfunc filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn {\n\tout := in[:0]\n\tfor _, v := range in {\n\t\tif v != exclude {\n\t\t\tout = append(out, v)\n\t\t}\n\t}\n\t// If we filtered it out, zero out the last item to prevent\n\t// the GC from seeing it.\n\tif len(in) != len(out) {\n\t\tin[len(in)-1] = nil\n\t}\n\treturn out\n}\n\n// noDialClientConnPool is an implementation of http2.ClientConnPool\n// which never dials. We let the HTTP/1.1 client dial and use its TLS\n// connection instead.\ntype noDialClientConnPool struct{ *clientConnPool }\n\nfunc (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {\n\treturn p.getClientConn(req, addr, noDialOnMiss)\n}\n\n// shouldRetryDial reports whether the current request should\n// retry dialing after the call finished unsuccessfully, for example\n// if the dial was canceled because of a context cancellation or\n// deadline expiry.\nfunc shouldRetryDial(call *dialCall, req *http.Request) bool {\n\tif call.err == nil {\n\t\t// No error, no need to retry\n\t\treturn false\n\t}\n\tif call.ctx == req.Context() {\n\t\t// If the call has the same context as the request, the dial\n\t\t// should not be retried, since any cancellation will have come\n\t\t// from this request.\n\t\treturn false\n\t}\n\tif !errors.Is(call.err, context.Canceled) && !errors.Is(call.err, context.DeadlineExceeded) {\n\t\t// If the call error is not because of a context cancellation or a deadline expiry,\n\t\t// the dial should not be retried.\n\t\treturn false\n\t}\n\t// Only retry if the error is a context cancellation error or deadline expiry\n\t// and the context associated with the call was canceled or expired.\n\treturn call.ctx.Err() != nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"math\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// http2Config is a package-internal version of net/http.HTTP2Config.\n//\n// http.HTTP2Config was added in Go 1.24.\n// When running with a version of net/http that includes HTTP2Config,\n// we merge the configuration with the fields in Transport or Server\n// to produce an http2Config.\n//\n// Zero valued fields in http2Config are interpreted as in the\n// net/http.HTTPConfig documentation.\n//\n// Precedence order for reconciling configurations is:\n//\n//   - Use the net/http.{Server,Transport}.HTTP2Config value, when non-zero.\n//   - Otherwise use the http2.{Server.Transport} value.\n//   - If the resulting value is zero or out of range, use a default.\ntype http2Config struct {\n\tMaxConcurrentStreams         uint32\n\tStrictMaxConcurrentRequests  bool\n\tMaxDecoderHeaderTableSize    uint32\n\tMaxEncoderHeaderTableSize    uint32\n\tMaxReadFrameSize             uint32\n\tMaxUploadBufferPerConnection int32\n\tMaxUploadBufferPerStream     int32\n\tSendPingTimeout              time.Duration\n\tPingTimeout                  time.Duration\n\tWriteByteTimeout             time.Duration\n\tPermitProhibitedCipherSuites bool\n\tCountError                   func(errType string)\n}\n\n// configFromServer merges configuration settings from\n// net/http.Server.HTTP2Config and http2.Server.\nfunc configFromServer(h1 *http.Server, h2 *Server) http2Config {\n\tconf := http2Config{\n\t\tMaxConcurrentStreams:         h2.MaxConcurrentStreams,\n\t\tMaxEncoderHeaderTableSize:    h2.MaxEncoderHeaderTableSize,\n\t\tMaxDecoderHeaderTableSize:    h2.MaxDecoderHeaderTableSize,\n\t\tMaxReadFrameSize:             h2.MaxReadFrameSize,\n\t\tMaxUploadBufferPerConnection: h2.MaxUploadBufferPerConnection,\n\t\tMaxUploadBufferPerStream:     h2.MaxUploadBufferPerStream,\n\t\tSendPingTimeout:              h2.ReadIdleTimeout,\n\t\tPingTimeout:                  h2.PingTimeout,\n\t\tWriteByteTimeout:             h2.WriteByteTimeout,\n\t\tPermitProhibitedCipherSuites: h2.PermitProhibitedCipherSuites,\n\t\tCountError:                   h2.CountError,\n\t}\n\tfillNetHTTPConfig(&conf, h1.HTTP2)\n\tsetConfigDefaults(&conf, true)\n\treturn conf\n}\n\n// configFromTransport merges configuration settings from h2 and h2.t1.HTTP2\n// (the net/http Transport).\nfunc configFromTransport(h2 *Transport) http2Config {\n\tconf := http2Config{\n\t\tStrictMaxConcurrentRequests: h2.StrictMaxConcurrentStreams,\n\t\tMaxEncoderHeaderTableSize:   h2.MaxEncoderHeaderTableSize,\n\t\tMaxDecoderHeaderTableSize:   h2.MaxDecoderHeaderTableSize,\n\t\tMaxReadFrameSize:            h2.MaxReadFrameSize,\n\t\tSendPingTimeout:             h2.ReadIdleTimeout,\n\t\tPingTimeout:                 h2.PingTimeout,\n\t\tWriteByteTimeout:            h2.WriteByteTimeout,\n\t}\n\n\t// Unlike most config fields, where out-of-range values revert to the default,\n\t// Transport.MaxReadFrameSize clips.\n\tif conf.MaxReadFrameSize < minMaxFrameSize {\n\t\tconf.MaxReadFrameSize = minMaxFrameSize\n\t} else if conf.MaxReadFrameSize > maxFrameSize {\n\t\tconf.MaxReadFrameSize = maxFrameSize\n\t}\n\n\tif h2.t1 != nil {\n\t\tfillNetHTTPConfig(&conf, h2.t1.HTTP2)\n\t}\n\tsetConfigDefaults(&conf, false)\n\treturn conf\n}\n\nfunc setDefault[T ~int | ~int32 | ~uint32 | ~int64](v *T, minval, maxval, defval T) {\n\tif *v < minval || *v > maxval {\n\t\t*v = defval\n\t}\n}\n\nfunc setConfigDefaults(conf *http2Config, server bool) {\n\tsetDefault(&conf.MaxConcurrentStreams, 1, math.MaxUint32, defaultMaxStreams)\n\tsetDefault(&conf.MaxEncoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize)\n\tsetDefault(&conf.MaxDecoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize)\n\tif server {\n\t\tsetDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, 1<<20)\n\t} else {\n\t\tsetDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, transportDefaultConnFlow)\n\t}\n\tif server {\n\t\tsetDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, 1<<20)\n\t} else {\n\t\tsetDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, transportDefaultStreamFlow)\n\t}\n\tsetDefault(&conf.MaxReadFrameSize, minMaxFrameSize, maxFrameSize, defaultMaxReadFrameSize)\n\tsetDefault(&conf.PingTimeout, 1, math.MaxInt64, 15*time.Second)\n}\n\n// adjustHTTP1MaxHeaderSize converts a limit in bytes on the size of an HTTP/1 header\n// to an HTTP/2 MAX_HEADER_LIST_SIZE value.\nfunc adjustHTTP1MaxHeaderSize(n int64) int64 {\n\t// http2's count is in a slightly different unit and includes 32 bytes per pair.\n\t// So, take the net/http.Server value and pad it up a bit, assuming 10 headers.\n\tconst perFieldOverhead = 32 // per http2 spec\n\tconst typicalHeaders = 10   // conservative\n\treturn n + typicalHeaders*perFieldOverhead\n}\n\nfunc fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) {\n\tif h2 == nil {\n\t\treturn\n\t}\n\tif h2.MaxConcurrentStreams != 0 {\n\t\tconf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams)\n\t}\n\tif http2ConfigStrictMaxConcurrentRequests(h2) {\n\t\tconf.StrictMaxConcurrentRequests = true\n\t}\n\tif h2.MaxEncoderHeaderTableSize != 0 {\n\t\tconf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize)\n\t}\n\tif h2.MaxDecoderHeaderTableSize != 0 {\n\t\tconf.MaxDecoderHeaderTableSize = uint32(h2.MaxDecoderHeaderTableSize)\n\t}\n\tif h2.MaxConcurrentStreams != 0 {\n\t\tconf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams)\n\t}\n\tif h2.MaxReadFrameSize != 0 {\n\t\tconf.MaxReadFrameSize = uint32(h2.MaxReadFrameSize)\n\t}\n\tif h2.MaxReceiveBufferPerConnection != 0 {\n\t\tconf.MaxUploadBufferPerConnection = int32(h2.MaxReceiveBufferPerConnection)\n\t}\n\tif h2.MaxReceiveBufferPerStream != 0 {\n\t\tconf.MaxUploadBufferPerStream = int32(h2.MaxReceiveBufferPerStream)\n\t}\n\tif h2.SendPingTimeout != 0 {\n\t\tconf.SendPingTimeout = h2.SendPingTimeout\n\t}\n\tif h2.PingTimeout != 0 {\n\t\tconf.PingTimeout = h2.PingTimeout\n\t}\n\tif h2.WriteByteTimeout != 0 {\n\t\tconf.WriteByteTimeout = h2.WriteByteTimeout\n\t}\n\tif h2.PermitProhibitedCipherSuites {\n\t\tconf.PermitProhibitedCipherSuites = true\n\t}\n\tif h2.CountError != nil {\n\t\tconf.CountError = h2.CountError\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config_go125.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.26\n\npackage http2\n\nimport (\n\t\"net/http\"\n)\n\nfunc http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config_go126.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.26\n\npackage http2\n\nimport (\n\t\"net/http\"\n)\n\nfunc http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool {\n\treturn h2.StrictMaxConcurrentRequests\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/databuffer.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n)\n\n// Buffer chunks are allocated from a pool to reduce pressure on GC.\n// The maximum wasted space per dataBuffer is 2x the largest size class,\n// which happens when the dataBuffer has multiple chunks and there is\n// one unread byte in both the first and last chunks. We use a few size\n// classes to minimize overheads for servers that typically receive very\n// small request bodies.\n//\n// TODO: Benchmark to determine if the pools are necessary. The GC may have\n// improved enough that we can instead allocate chunks like this:\n// make([]byte, max(16<<10, expectedBytesRemaining))\nvar dataChunkPools = [...]sync.Pool{\n\t{New: func() interface{} { return new([1 << 10]byte) }},\n\t{New: func() interface{} { return new([2 << 10]byte) }},\n\t{New: func() interface{} { return new([4 << 10]byte) }},\n\t{New: func() interface{} { return new([8 << 10]byte) }},\n\t{New: func() interface{} { return new([16 << 10]byte) }},\n}\n\nfunc getDataBufferChunk(size int64) []byte {\n\tswitch {\n\tcase size <= 1<<10:\n\t\treturn dataChunkPools[0].Get().(*[1 << 10]byte)[:]\n\tcase size <= 2<<10:\n\t\treturn dataChunkPools[1].Get().(*[2 << 10]byte)[:]\n\tcase size <= 4<<10:\n\t\treturn dataChunkPools[2].Get().(*[4 << 10]byte)[:]\n\tcase size <= 8<<10:\n\t\treturn dataChunkPools[3].Get().(*[8 << 10]byte)[:]\n\tdefault:\n\t\treturn dataChunkPools[4].Get().(*[16 << 10]byte)[:]\n\t}\n}\n\nfunc putDataBufferChunk(p []byte) {\n\tswitch len(p) {\n\tcase 1 << 10:\n\t\tdataChunkPools[0].Put((*[1 << 10]byte)(p))\n\tcase 2 << 10:\n\t\tdataChunkPools[1].Put((*[2 << 10]byte)(p))\n\tcase 4 << 10:\n\t\tdataChunkPools[2].Put((*[4 << 10]byte)(p))\n\tcase 8 << 10:\n\t\tdataChunkPools[3].Put((*[8 << 10]byte)(p))\n\tcase 16 << 10:\n\t\tdataChunkPools[4].Put((*[16 << 10]byte)(p))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unexpected buffer len=%v\", len(p)))\n\t}\n}\n\n// dataBuffer is an io.ReadWriter backed by a list of data chunks.\n// Each dataBuffer is used to read DATA frames on a single stream.\n// The buffer is divided into chunks so the server can limit the\n// total memory used by a single connection without limiting the\n// request body size on any single stream.\ntype dataBuffer struct {\n\tchunks   [][]byte\n\tr        int   // next byte to read is chunks[0][r]\n\tw        int   // next byte to write is chunks[len(chunks)-1][w]\n\tsize     int   // total buffered bytes\n\texpected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0)\n}\n\nvar errReadEmpty = errors.New(\"read from empty dataBuffer\")\n\n// Read copies bytes from the buffer into p.\n// It is an error to read when no data is available.\nfunc (b *dataBuffer) Read(p []byte) (int, error) {\n\tif b.size == 0 {\n\t\treturn 0, errReadEmpty\n\t}\n\tvar ntotal int\n\tfor len(p) > 0 && b.size > 0 {\n\t\treadFrom := b.bytesFromFirstChunk()\n\t\tn := copy(p, readFrom)\n\t\tp = p[n:]\n\t\tntotal += n\n\t\tb.r += n\n\t\tb.size -= n\n\t\t// If the first chunk has been consumed, advance to the next chunk.\n\t\tif b.r == len(b.chunks[0]) {\n\t\t\tputDataBufferChunk(b.chunks[0])\n\t\t\tend := len(b.chunks) - 1\n\t\t\tcopy(b.chunks[:end], b.chunks[1:])\n\t\t\tb.chunks[end] = nil\n\t\t\tb.chunks = b.chunks[:end]\n\t\t\tb.r = 0\n\t\t}\n\t}\n\treturn ntotal, nil\n}\n\nfunc (b *dataBuffer) bytesFromFirstChunk() []byte {\n\tif len(b.chunks) == 1 {\n\t\treturn b.chunks[0][b.r:b.w]\n\t}\n\treturn b.chunks[0][b.r:]\n}\n\n// Len returns the number of bytes of the unread portion of the buffer.\nfunc (b *dataBuffer) Len() int {\n\treturn b.size\n}\n\n// Write appends p to the buffer.\nfunc (b *dataBuffer) Write(p []byte) (int, error) {\n\tntotal := len(p)\n\tfor len(p) > 0 {\n\t\t// If the last chunk is empty, allocate a new chunk. Try to allocate\n\t\t// enough to fully copy p plus any additional bytes we expect to\n\t\t// receive. However, this may allocate less than len(p).\n\t\twant := int64(len(p))\n\t\tif b.expected > want {\n\t\t\twant = b.expected\n\t\t}\n\t\tchunk := b.lastChunkOrAlloc(want)\n\t\tn := copy(chunk[b.w:], p)\n\t\tp = p[n:]\n\t\tb.w += n\n\t\tb.size += n\n\t\tb.expected -= int64(n)\n\t}\n\treturn ntotal, nil\n}\n\nfunc (b *dataBuffer) lastChunkOrAlloc(want int64) []byte {\n\tif len(b.chunks) != 0 {\n\t\tlast := b.chunks[len(b.chunks)-1]\n\t\tif b.w < len(last) {\n\t\t\treturn last\n\t\t}\n\t}\n\tchunk := getDataBufferChunk(want)\n\tb.chunks = append(b.chunks, chunk)\n\tb.w = 0\n\treturn chunk\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/errors.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// An ErrCode is an unsigned 32-bit error code as defined in the HTTP/2 spec.\ntype ErrCode uint32\n\nconst (\n\tErrCodeNo                 ErrCode = 0x0\n\tErrCodeProtocol           ErrCode = 0x1\n\tErrCodeInternal           ErrCode = 0x2\n\tErrCodeFlowControl        ErrCode = 0x3\n\tErrCodeSettingsTimeout    ErrCode = 0x4\n\tErrCodeStreamClosed       ErrCode = 0x5\n\tErrCodeFrameSize          ErrCode = 0x6\n\tErrCodeRefusedStream      ErrCode = 0x7\n\tErrCodeCancel             ErrCode = 0x8\n\tErrCodeCompression        ErrCode = 0x9\n\tErrCodeConnect            ErrCode = 0xa\n\tErrCodeEnhanceYourCalm    ErrCode = 0xb\n\tErrCodeInadequateSecurity ErrCode = 0xc\n\tErrCodeHTTP11Required     ErrCode = 0xd\n)\n\nvar errCodeName = map[ErrCode]string{\n\tErrCodeNo:                 \"NO_ERROR\",\n\tErrCodeProtocol:           \"PROTOCOL_ERROR\",\n\tErrCodeInternal:           \"INTERNAL_ERROR\",\n\tErrCodeFlowControl:        \"FLOW_CONTROL_ERROR\",\n\tErrCodeSettingsTimeout:    \"SETTINGS_TIMEOUT\",\n\tErrCodeStreamClosed:       \"STREAM_CLOSED\",\n\tErrCodeFrameSize:          \"FRAME_SIZE_ERROR\",\n\tErrCodeRefusedStream:      \"REFUSED_STREAM\",\n\tErrCodeCancel:             \"CANCEL\",\n\tErrCodeCompression:        \"COMPRESSION_ERROR\",\n\tErrCodeConnect:            \"CONNECT_ERROR\",\n\tErrCodeEnhanceYourCalm:    \"ENHANCE_YOUR_CALM\",\n\tErrCodeInadequateSecurity: \"INADEQUATE_SECURITY\",\n\tErrCodeHTTP11Required:     \"HTTP_1_1_REQUIRED\",\n}\n\nfunc (e ErrCode) String() string {\n\tif s, ok := errCodeName[e]; ok {\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"unknown error code 0x%x\", uint32(e))\n}\n\nfunc (e ErrCode) stringToken() string {\n\tif s, ok := errCodeName[e]; ok {\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"ERR_UNKNOWN_%d\", uint32(e))\n}\n\n// ConnectionError is an error that results in the termination of the\n// entire connection.\ntype ConnectionError ErrCode\n\nfunc (e ConnectionError) Error() string { return fmt.Sprintf(\"connection error: %s\", ErrCode(e)) }\n\n// StreamError is an error that only affects one stream within an\n// HTTP/2 connection.\ntype StreamError struct {\n\tStreamID uint32\n\tCode     ErrCode\n\tCause    error // optional additional detail\n}\n\n// errFromPeer is a sentinel error value for StreamError.Cause to\n// indicate that the StreamError was sent from the peer over the wire\n// and wasn't locally generated in the Transport.\nvar errFromPeer = errors.New(\"received from peer\")\n\nfunc streamError(id uint32, code ErrCode) StreamError {\n\treturn StreamError{StreamID: id, Code: code}\n}\n\nfunc (e StreamError) Error() string {\n\tif e.Cause != nil {\n\t\treturn fmt.Sprintf(\"stream error: stream ID %d; %v; %v\", e.StreamID, e.Code, e.Cause)\n\t}\n\treturn fmt.Sprintf(\"stream error: stream ID %d; %v\", e.StreamID, e.Code)\n}\n\n// 6.9.1 The Flow Control Window\n// \"If a sender receives a WINDOW_UPDATE that causes a flow control\n// window to exceed this maximum it MUST terminate either the stream\n// or the connection, as appropriate. For streams, [...]; for the\n// connection, a GOAWAY frame with a FLOW_CONTROL_ERROR code.\"\ntype goAwayFlowError struct{}\n\nfunc (goAwayFlowError) Error() string { return \"connection exceeded flow control window size\" }\n\n// connError represents an HTTP/2 ConnectionError error code, along\n// with a string (for debugging) explaining why.\n//\n// Errors of this type are only returned by the frame parser functions\n// and converted into ConnectionError(Code), after stashing away\n// the Reason into the Framer's errDetail field, accessible via\n// the (*Framer).ErrorDetail method.\ntype connError struct {\n\tCode   ErrCode // the ConnectionError error code\n\tReason string  // additional reason\n}\n\nfunc (e connError) Error() string {\n\treturn fmt.Sprintf(\"http2: connection error: %v: %v\", e.Code, e.Reason)\n}\n\ntype pseudoHeaderError string\n\nfunc (e pseudoHeaderError) Error() string {\n\treturn fmt.Sprintf(\"invalid pseudo-header %q\", string(e))\n}\n\ntype duplicatePseudoHeaderError string\n\nfunc (e duplicatePseudoHeaderError) Error() string {\n\treturn fmt.Sprintf(\"duplicate pseudo-header %q\", string(e))\n}\n\ntype headerFieldNameError string\n\nfunc (e headerFieldNameError) Error() string {\n\treturn fmt.Sprintf(\"invalid header field name %q\", string(e))\n}\n\ntype headerFieldValueError string\n\nfunc (e headerFieldValueError) Error() string {\n\treturn fmt.Sprintf(\"invalid header field value for %q\", string(e))\n}\n\nvar (\n\terrMixPseudoHeaderTypes = errors.New(\"mix of request and response pseudo headers\")\n\terrPseudoAfterRegular   = errors.New(\"pseudo header field after regular\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/flow.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Flow control\n\npackage http2\n\n// inflowMinRefresh is the minimum number of bytes we'll send for a\n// flow control window update.\nconst inflowMinRefresh = 4 << 10\n\n// inflow accounts for an inbound flow control window.\n// It tracks both the latest window sent to the peer (used for enforcement)\n// and the accumulated unsent window.\ntype inflow struct {\n\tavail  int32\n\tunsent int32\n}\n\n// init sets the initial window.\nfunc (f *inflow) init(n int32) {\n\tf.avail = n\n}\n\n// add adds n bytes to the window, with a maximum window size of max,\n// indicating that the peer can now send us more data.\n// For example, the user read from a {Request,Response} body and consumed\n// some of the buffered data, so the peer can now send more.\n// It returns the number of bytes to send in a WINDOW_UPDATE frame to the peer.\n// Window updates are accumulated and sent when the unsent capacity\n// is at least inflowMinRefresh or will at least double the peer's available window.\nfunc (f *inflow) add(n int) (connAdd int32) {\n\tif n < 0 {\n\t\tpanic(\"negative update\")\n\t}\n\tunsent := int64(f.unsent) + int64(n)\n\t// \"A sender MUST NOT allow a flow-control window to exceed 2^31-1 octets.\"\n\t// RFC 7540 Section 6.9.1.\n\tconst maxWindow = 1<<31 - 1\n\tif unsent+int64(f.avail) > maxWindow {\n\t\tpanic(\"flow control update exceeds maximum window size\")\n\t}\n\tf.unsent = int32(unsent)\n\tif f.unsent < inflowMinRefresh && f.unsent < f.avail {\n\t\t// If there aren't at least inflowMinRefresh bytes of window to send,\n\t\t// and this update won't at least double the window, buffer the update for later.\n\t\treturn 0\n\t}\n\tf.avail += f.unsent\n\tf.unsent = 0\n\treturn int32(unsent)\n}\n\n// take attempts to take n bytes from the peer's flow control window.\n// It reports whether the window has available capacity.\nfunc (f *inflow) take(n uint32) bool {\n\tif n > uint32(f.avail) {\n\t\treturn false\n\t}\n\tf.avail -= int32(n)\n\treturn true\n}\n\n// takeInflows attempts to take n bytes from two inflows,\n// typically connection-level and stream-level flows.\n// It reports whether both windows have available capacity.\nfunc takeInflows(f1, f2 *inflow, n uint32) bool {\n\tif n > uint32(f1.avail) || n > uint32(f2.avail) {\n\t\treturn false\n\t}\n\tf1.avail -= int32(n)\n\tf2.avail -= int32(n)\n\treturn true\n}\n\n// outflow is the outbound flow control window's size.\ntype outflow struct {\n\t_ incomparable\n\n\t// n is the number of DATA bytes we're allowed to send.\n\t// An outflow is kept both on a conn and a per-stream.\n\tn int32\n\n\t// conn points to the shared connection-level outflow that is\n\t// shared by all streams on that conn. It is nil for the outflow\n\t// that's on the conn directly.\n\tconn *outflow\n}\n\nfunc (f *outflow) setConnFlow(cf *outflow) { f.conn = cf }\n\nfunc (f *outflow) available() int32 {\n\tn := f.n\n\tif f.conn != nil && f.conn.n < n {\n\t\tn = f.conn.n\n\t}\n\treturn n\n}\n\nfunc (f *outflow) take(n int32) {\n\tif n > f.available() {\n\t\tpanic(\"internal error: took too much\")\n\t}\n\tf.n -= n\n\tif f.conn != nil {\n\t\tf.conn.n -= n\n\t}\n}\n\n// add adds n bytes (positive or negative) to the flow control window.\n// It returns false if the sum would exceed 2^31-1.\nfunc (f *outflow) add(n int32) bool {\n\tsum := f.n + n\n\tif (sum > n) == (f.n > 0) {\n\t\tf.n = sum\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/frame.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n)\n\nconst frameHeaderLen = 9\n\nvar padZeros = make([]byte, 255) // zeros for padding\n\n// A FrameType is a registered frame type as defined in\n// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2\ntype FrameType uint8\n\nconst (\n\tFrameData         FrameType = 0x0\n\tFrameHeaders      FrameType = 0x1\n\tFramePriority     FrameType = 0x2\n\tFrameRSTStream    FrameType = 0x3\n\tFrameSettings     FrameType = 0x4\n\tFramePushPromise  FrameType = 0x5\n\tFramePing         FrameType = 0x6\n\tFrameGoAway       FrameType = 0x7\n\tFrameWindowUpdate FrameType = 0x8\n\tFrameContinuation FrameType = 0x9\n)\n\nvar frameNames = [...]string{\n\tFrameData:         \"DATA\",\n\tFrameHeaders:      \"HEADERS\",\n\tFramePriority:     \"PRIORITY\",\n\tFrameRSTStream:    \"RST_STREAM\",\n\tFrameSettings:     \"SETTINGS\",\n\tFramePushPromise:  \"PUSH_PROMISE\",\n\tFramePing:         \"PING\",\n\tFrameGoAway:       \"GOAWAY\",\n\tFrameWindowUpdate: \"WINDOW_UPDATE\",\n\tFrameContinuation: \"CONTINUATION\",\n}\n\nfunc (t FrameType) String() string {\n\tif int(t) < len(frameNames) {\n\t\treturn frameNames[t]\n\t}\n\treturn fmt.Sprintf(\"UNKNOWN_FRAME_TYPE_%d\", t)\n}\n\n// Flags is a bitmask of HTTP/2 flags.\n// The meaning of flags varies depending on the frame type.\ntype Flags uint8\n\n// Has reports whether f contains all (0 or more) flags in v.\nfunc (f Flags) Has(v Flags) bool {\n\treturn (f & v) == v\n}\n\n// Frame-specific FrameHeader flag bits.\nconst (\n\t// Data Frame\n\tFlagDataEndStream Flags = 0x1\n\tFlagDataPadded    Flags = 0x8\n\n\t// Headers Frame\n\tFlagHeadersEndStream  Flags = 0x1\n\tFlagHeadersEndHeaders Flags = 0x4\n\tFlagHeadersPadded     Flags = 0x8\n\tFlagHeadersPriority   Flags = 0x20\n\n\t// Settings Frame\n\tFlagSettingsAck Flags = 0x1\n\n\t// Ping Frame\n\tFlagPingAck Flags = 0x1\n\n\t// Continuation Frame\n\tFlagContinuationEndHeaders Flags = 0x4\n\n\tFlagPushPromiseEndHeaders Flags = 0x4\n\tFlagPushPromisePadded     Flags = 0x8\n)\n\nvar flagName = map[FrameType]map[Flags]string{\n\tFrameData: {\n\t\tFlagDataEndStream: \"END_STREAM\",\n\t\tFlagDataPadded:    \"PADDED\",\n\t},\n\tFrameHeaders: {\n\t\tFlagHeadersEndStream:  \"END_STREAM\",\n\t\tFlagHeadersEndHeaders: \"END_HEADERS\",\n\t\tFlagHeadersPadded:     \"PADDED\",\n\t\tFlagHeadersPriority:   \"PRIORITY\",\n\t},\n\tFrameSettings: {\n\t\tFlagSettingsAck: \"ACK\",\n\t},\n\tFramePing: {\n\t\tFlagPingAck: \"ACK\",\n\t},\n\tFrameContinuation: {\n\t\tFlagContinuationEndHeaders: \"END_HEADERS\",\n\t},\n\tFramePushPromise: {\n\t\tFlagPushPromiseEndHeaders: \"END_HEADERS\",\n\t\tFlagPushPromisePadded:     \"PADDED\",\n\t},\n}\n\n// a frameParser parses a frame given its FrameHeader and payload\n// bytes. The length of payload will always equal fh.Length (which\n// might be 0).\ntype frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error)\n\nvar frameParsers = [...]frameParser{\n\tFrameData:         parseDataFrame,\n\tFrameHeaders:      parseHeadersFrame,\n\tFramePriority:     parsePriorityFrame,\n\tFrameRSTStream:    parseRSTStreamFrame,\n\tFrameSettings:     parseSettingsFrame,\n\tFramePushPromise:  parsePushPromise,\n\tFramePing:         parsePingFrame,\n\tFrameGoAway:       parseGoAwayFrame,\n\tFrameWindowUpdate: parseWindowUpdateFrame,\n\tFrameContinuation: parseContinuationFrame,\n}\n\nfunc typeFrameParser(t FrameType) frameParser {\n\tif int(t) < len(frameParsers) {\n\t\treturn frameParsers[t]\n\t}\n\treturn parseUnknownFrame\n}\n\n// A FrameHeader is the 9 byte header of all HTTP/2 frames.\n//\n// See https://httpwg.org/specs/rfc7540.html#FrameHeader\ntype FrameHeader struct {\n\tvalid bool // caller can access []byte fields in the Frame\n\n\t// Type is the 1 byte frame type. There are ten standard frame\n\t// types, but extension frame types may be written by WriteRawFrame\n\t// and will be returned by ReadFrame (as UnknownFrame).\n\tType FrameType\n\n\t// Flags are the 1 byte of 8 potential bit flags per frame.\n\t// They are specific to the frame type.\n\tFlags Flags\n\n\t// Length is the length of the frame, not including the 9 byte header.\n\t// The maximum size is one byte less than 16MB (uint24), but only\n\t// frames up to 16KB are allowed without peer agreement.\n\tLength uint32\n\n\t// StreamID is which stream this frame is for. Certain frames\n\t// are not stream-specific, in which case this field is 0.\n\tStreamID uint32\n}\n\n// Header returns h. It exists so FrameHeaders can be embedded in other\n// specific frame types and implement the Frame interface.\nfunc (h FrameHeader) Header() FrameHeader { return h }\n\nfunc (h FrameHeader) String() string {\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"[FrameHeader \")\n\th.writeDebug(&buf)\n\tbuf.WriteByte(']')\n\treturn buf.String()\n}\n\nfunc (h FrameHeader) writeDebug(buf *bytes.Buffer) {\n\tbuf.WriteString(h.Type.String())\n\tif h.Flags != 0 {\n\t\tbuf.WriteString(\" flags=\")\n\t\tset := 0\n\t\tfor i := uint8(0); i < 8; i++ {\n\t\t\tif h.Flags&(1<<i) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tset++\n\t\t\tif set > 1 {\n\t\t\t\tbuf.WriteByte('|')\n\t\t\t}\n\t\t\tname := flagName[h.Type][Flags(1<<i)]\n\t\t\tif name != \"\" {\n\t\t\t\tbuf.WriteString(name)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(buf, \"0x%x\", 1<<i)\n\t\t\t}\n\t\t}\n\t}\n\tif h.StreamID != 0 {\n\t\tfmt.Fprintf(buf, \" stream=%d\", h.StreamID)\n\t}\n\tfmt.Fprintf(buf, \" len=%d\", h.Length)\n}\n\nfunc (h *FrameHeader) checkValid() {\n\tif !h.valid {\n\t\tpanic(\"Frame accessor called on non-owned Frame\")\n\t}\n}\n\nfunc (h *FrameHeader) invalidate() { h.valid = false }\n\n// frame header bytes.\n// Used only by ReadFrameHeader.\nvar fhBytes = sync.Pool{\n\tNew: func() interface{} {\n\t\tbuf := make([]byte, frameHeaderLen)\n\t\treturn &buf\n\t},\n}\n\nfunc invalidHTTP1LookingFrameHeader() FrameHeader {\n\tfh, _ := readFrameHeader(make([]byte, frameHeaderLen), strings.NewReader(\"HTTP/1.1 \"))\n\treturn fh\n}\n\n// ReadFrameHeader reads 9 bytes from r and returns a FrameHeader.\n// Most users should use Framer.ReadFrame instead.\nfunc ReadFrameHeader(r io.Reader) (FrameHeader, error) {\n\tbufp := fhBytes.Get().(*[]byte)\n\tdefer fhBytes.Put(bufp)\n\treturn readFrameHeader(*bufp, r)\n}\n\nfunc readFrameHeader(buf []byte, r io.Reader) (FrameHeader, error) {\n\t_, err := io.ReadFull(r, buf[:frameHeaderLen])\n\tif err != nil {\n\t\treturn FrameHeader{}, err\n\t}\n\treturn FrameHeader{\n\t\tLength:   (uint32(buf[0])<<16 | uint32(buf[1])<<8 | uint32(buf[2])),\n\t\tType:     FrameType(buf[3]),\n\t\tFlags:    Flags(buf[4]),\n\t\tStreamID: binary.BigEndian.Uint32(buf[5:]) & (1<<31 - 1),\n\t\tvalid:    true,\n\t}, nil\n}\n\n// A Frame is the base interface implemented by all frame types.\n// Callers will generally type-assert the specific frame type:\n// *HeadersFrame, *SettingsFrame, *WindowUpdateFrame, etc.\n//\n// Frames are only valid until the next call to Framer.ReadFrame.\ntype Frame interface {\n\tHeader() FrameHeader\n\n\t// invalidate is called by Framer.ReadFrame to make this\n\t// frame's buffers as being invalid, since the subsequent\n\t// frame will reuse them.\n\tinvalidate()\n}\n\n// A Framer reads and writes Frames.\ntype Framer struct {\n\tr         io.Reader\n\tlastFrame Frame\n\terrDetail error\n\n\t// countError is a non-nil func that's called on a frame parse\n\t// error with some unique error path token. It's initialized\n\t// from Transport.CountError or Server.CountError.\n\tcountError func(errToken string)\n\n\t// lastHeaderStream is non-zero if the last frame was an\n\t// unfinished HEADERS/CONTINUATION.\n\tlastHeaderStream uint32\n\t// lastFrameType holds the type of the last frame for verifying frame order.\n\tlastFrameType FrameType\n\n\tmaxReadSize uint32\n\theaderBuf   [frameHeaderLen]byte\n\n\t// TODO: let getReadBuf be configurable, and use a less memory-pinning\n\t// allocator in server.go to minimize memory pinned for many idle conns.\n\t// Will probably also need to make frame invalidation have a hook too.\n\tgetReadBuf func(size uint32) []byte\n\treadBuf    []byte // cache for default getReadBuf\n\n\tmaxWriteSize uint32 // zero means unlimited; TODO: implement\n\n\tw    io.Writer\n\twbuf []byte\n\n\t// AllowIllegalWrites permits the Framer's Write methods to\n\t// write frames that do not conform to the HTTP/2 spec. This\n\t// permits using the Framer to test other HTTP/2\n\t// implementations' conformance to the spec.\n\t// If false, the Write methods will prefer to return an error\n\t// rather than comply.\n\tAllowIllegalWrites bool\n\n\t// AllowIllegalReads permits the Framer's ReadFrame method\n\t// to return non-compliant frames or frame orders.\n\t// This is for testing and permits using the Framer to test\n\t// other HTTP/2 implementations' conformance to the spec.\n\t// It is not compatible with ReadMetaHeaders.\n\tAllowIllegalReads bool\n\n\t// ReadMetaHeaders if non-nil causes ReadFrame to merge\n\t// HEADERS and CONTINUATION frames together and return\n\t// MetaHeadersFrame instead.\n\tReadMetaHeaders *hpack.Decoder\n\n\t// MaxHeaderListSize is the http2 MAX_HEADER_LIST_SIZE.\n\t// It's used only if ReadMetaHeaders is set; 0 means a sane default\n\t// (currently 16MB)\n\t// If the limit is hit, MetaHeadersFrame.Truncated is set true.\n\tMaxHeaderListSize uint32\n\n\t// TODO: track which type of frame & with which flags was sent\n\t// last. Then return an error (unless AllowIllegalWrites) if\n\t// we're in the middle of a header block and a\n\t// non-Continuation or Continuation on a different stream is\n\t// attempted to be written.\n\n\tlogReads, logWrites bool\n\n\tdebugFramer       *Framer // only use for logging written writes\n\tdebugFramerBuf    *bytes.Buffer\n\tdebugReadLoggerf  func(string, ...interface{})\n\tdebugWriteLoggerf func(string, ...interface{})\n\n\tframeCache *frameCache // nil if frames aren't reused (default)\n}\n\nfunc (fr *Framer) maxHeaderListSize() uint32 {\n\tif fr.MaxHeaderListSize == 0 {\n\t\treturn 16 << 20 // sane default, per docs\n\t}\n\treturn fr.MaxHeaderListSize\n}\n\nfunc (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) {\n\t// Write the FrameHeader.\n\tf.wbuf = append(f.wbuf[:0],\n\t\t0, // 3 bytes of length, filled in endWrite\n\t\t0,\n\t\t0,\n\t\tbyte(ftype),\n\t\tbyte(flags),\n\t\tbyte(streamID>>24),\n\t\tbyte(streamID>>16),\n\t\tbyte(streamID>>8),\n\t\tbyte(streamID))\n}\n\nfunc (f *Framer) endWrite() error {\n\t// Now that we know the final size, fill in the FrameHeader in\n\t// the space previously reserved for it. Abuse append.\n\tlength := len(f.wbuf) - frameHeaderLen\n\tif length >= (1 << 24) {\n\t\treturn ErrFrameTooLarge\n\t}\n\t_ = append(f.wbuf[:0],\n\t\tbyte(length>>16),\n\t\tbyte(length>>8),\n\t\tbyte(length))\n\tif f.logWrites {\n\t\tf.logWrite()\n\t}\n\n\tn, err := f.w.Write(f.wbuf)\n\tif err == nil && n != len(f.wbuf) {\n\t\terr = io.ErrShortWrite\n\t}\n\treturn err\n}\n\nfunc (f *Framer) logWrite() {\n\tif f.debugFramer == nil {\n\t\tf.debugFramerBuf = new(bytes.Buffer)\n\t\tf.debugFramer = NewFramer(nil, f.debugFramerBuf)\n\t\tf.debugFramer.logReads = false // we log it ourselves, saying \"wrote\" below\n\t\t// Let us read anything, even if we accidentally wrote it\n\t\t// in the wrong order:\n\t\tf.debugFramer.AllowIllegalReads = true\n\t}\n\tf.debugFramerBuf.Write(f.wbuf)\n\tfr, err := f.debugFramer.ReadFrame()\n\tif err != nil {\n\t\tf.debugWriteLoggerf(\"http2: Framer %p: failed to decode just-written frame\", f)\n\t\treturn\n\t}\n\tf.debugWriteLoggerf(\"http2: Framer %p: wrote %v\", f, summarizeFrame(fr))\n}\n\nfunc (f *Framer) writeByte(v byte)     { f.wbuf = append(f.wbuf, v) }\nfunc (f *Framer) writeBytes(v []byte)  { f.wbuf = append(f.wbuf, v...) }\nfunc (f *Framer) writeUint16(v uint16) { f.wbuf = append(f.wbuf, byte(v>>8), byte(v)) }\nfunc (f *Framer) writeUint32(v uint32) {\n\tf.wbuf = append(f.wbuf, byte(v>>24), byte(v>>16), byte(v>>8), byte(v))\n}\n\nconst (\n\tminMaxFrameSize = 1 << 14\n\tmaxFrameSize    = 1<<24 - 1\n)\n\n// SetReuseFrames allows the Framer to reuse Frames.\n// If called on a Framer, Frames returned by calls to ReadFrame are only\n// valid until the next call to ReadFrame.\nfunc (fr *Framer) SetReuseFrames() {\n\tif fr.frameCache != nil {\n\t\treturn\n\t}\n\tfr.frameCache = &frameCache{}\n}\n\ntype frameCache struct {\n\tdataFrame DataFrame\n}\n\nfunc (fc *frameCache) getDataFrame() *DataFrame {\n\tif fc == nil {\n\t\treturn &DataFrame{}\n\t}\n\treturn &fc.dataFrame\n}\n\n// NewFramer returns a Framer that writes frames to w and reads them from r.\nfunc NewFramer(w io.Writer, r io.Reader) *Framer {\n\tfr := &Framer{\n\t\tw:                 w,\n\t\tr:                 r,\n\t\tcountError:        func(string) {},\n\t\tlogReads:          logFrameReads,\n\t\tlogWrites:         logFrameWrites,\n\t\tdebugReadLoggerf:  log.Printf,\n\t\tdebugWriteLoggerf: log.Printf,\n\t}\n\tfr.getReadBuf = func(size uint32) []byte {\n\t\tif cap(fr.readBuf) >= int(size) {\n\t\t\treturn fr.readBuf[:size]\n\t\t}\n\t\tfr.readBuf = make([]byte, size)\n\t\treturn fr.readBuf\n\t}\n\tfr.SetMaxReadFrameSize(maxFrameSize)\n\treturn fr\n}\n\n// SetMaxReadFrameSize sets the maximum size of a frame\n// that will be read by a subsequent call to ReadFrame.\n// It is the caller's responsibility to advertise this\n// limit with a SETTINGS frame.\nfunc (fr *Framer) SetMaxReadFrameSize(v uint32) {\n\tif v > maxFrameSize {\n\t\tv = maxFrameSize\n\t}\n\tfr.maxReadSize = v\n}\n\n// ErrorDetail returns a more detailed error of the last error\n// returned by Framer.ReadFrame. For instance, if ReadFrame\n// returns a StreamError with code PROTOCOL_ERROR, ErrorDetail\n// will say exactly what was invalid. ErrorDetail is not guaranteed\n// to return a non-nil value and like the rest of the http2 package,\n// its return value is not protected by an API compatibility promise.\n// ErrorDetail is reset after the next call to ReadFrame.\nfunc (fr *Framer) ErrorDetail() error {\n\treturn fr.errDetail\n}\n\n// ErrFrameTooLarge is returned from Framer.ReadFrame when the peer\n// sends a frame that is larger than declared with SetMaxReadFrameSize.\nvar ErrFrameTooLarge = errors.New(\"http2: frame too large\")\n\n// terminalReadFrameError reports whether err is an unrecoverable\n// error from ReadFrame and no other frames should be read.\nfunc terminalReadFrameError(err error) bool {\n\tif _, ok := err.(StreamError); ok {\n\t\treturn false\n\t}\n\treturn err != nil\n}\n\n// ReadFrameHeader reads the header of the next frame.\n// It reads the 9-byte fixed frame header, and does not read any portion of the\n// frame payload. The caller is responsible for consuming the payload, either\n// with ReadFrameForHeader or directly from the Framer's io.Reader.\n//\n// If the frame is larger than previously set with SetMaxReadFrameSize, it\n// returns the frame header and ErrFrameTooLarge.\n//\n// If the returned FrameHeader.StreamID is non-zero, it indicates the stream\n// responsible for the error.\nfunc (fr *Framer) ReadFrameHeader() (FrameHeader, error) {\n\tfr.errDetail = nil\n\tfh, err := readFrameHeader(fr.headerBuf[:], fr.r)\n\tif err != nil {\n\t\treturn fh, err\n\t}\n\tif fh.Length > fr.maxReadSize {\n\t\tif fh == invalidHTTP1LookingFrameHeader() {\n\t\t\treturn fh, fmt.Errorf(\"http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header\", ErrFrameTooLarge)\n\t\t}\n\t\treturn fh, ErrFrameTooLarge\n\t}\n\tif err := fr.checkFrameOrder(fh); err != nil {\n\t\treturn fh, err\n\t}\n\treturn fh, nil\n}\n\n// ReadFrameForHeader reads the payload for the frame with the given FrameHeader.\n//\n// It behaves identically to ReadFrame, other than not checking the maximum\n// frame size.\nfunc (fr *Framer) ReadFrameForHeader(fh FrameHeader) (Frame, error) {\n\tif fr.lastFrame != nil {\n\t\tfr.lastFrame.invalidate()\n\t}\n\tpayload := fr.getReadBuf(fh.Length)\n\tif _, err := io.ReadFull(fr.r, payload); err != nil {\n\t\tif fh == invalidHTTP1LookingFrameHeader() {\n\t\t\treturn nil, fmt.Errorf(\"http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header\", err)\n\t\t}\n\t\treturn nil, err\n\t}\n\tf, err := typeFrameParser(fh.Type)(fr.frameCache, fh, fr.countError, payload)\n\tif err != nil {\n\t\tif ce, ok := err.(connError); ok {\n\t\t\treturn nil, fr.connError(ce.Code, ce.Reason)\n\t\t}\n\t\treturn nil, err\n\t}\n\tfr.lastFrame = f\n\tif fr.logReads {\n\t\tfr.debugReadLoggerf(\"http2: Framer %p: read %v\", fr, summarizeFrame(f))\n\t}\n\tif fh.Type == FrameHeaders && fr.ReadMetaHeaders != nil {\n\t\treturn fr.readMetaFrame(f.(*HeadersFrame))\n\t}\n\treturn f, nil\n}\n\n// ReadFrame reads a single frame. The returned Frame is only valid\n// until the next call to ReadFrame or ReadFrameBodyForHeader.\n//\n// If the frame is larger than previously set with SetMaxReadFrameSize, the\n// returned error is ErrFrameTooLarge. Other errors may be of type\n// ConnectionError, StreamError, or anything else from the underlying\n// reader.\n//\n// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID\n// indicates the stream responsible for the error.\nfunc (fr *Framer) ReadFrame() (Frame, error) {\n\tfh, err := fr.ReadFrameHeader()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn fr.ReadFrameForHeader(fh)\n}\n\n// connError returns ConnectionError(code) but first\n// stashes away a public reason to the caller can optionally relay it\n// to the peer before hanging up on them. This might help others debug\n// their implementations.\nfunc (fr *Framer) connError(code ErrCode, reason string) error {\n\tfr.errDetail = errors.New(reason)\n\treturn ConnectionError(code)\n}\n\n// checkFrameOrder reports an error if f is an invalid frame to return\n// next from ReadFrame. Mostly it checks whether HEADERS and\n// CONTINUATION frames are contiguous.\nfunc (fr *Framer) checkFrameOrder(fh FrameHeader) error {\n\tlastType := fr.lastFrameType\n\tfr.lastFrameType = fh.Type\n\tif fr.AllowIllegalReads {\n\t\treturn nil\n\t}\n\n\tif fr.lastHeaderStream != 0 {\n\t\tif fh.Type != FrameContinuation {\n\t\t\treturn fr.connError(ErrCodeProtocol,\n\t\t\t\tfmt.Sprintf(\"got %s for stream %d; expected CONTINUATION following %s for stream %d\",\n\t\t\t\t\tfh.Type, fh.StreamID,\n\t\t\t\t\tlastType, fr.lastHeaderStream))\n\t\t}\n\t\tif fh.StreamID != fr.lastHeaderStream {\n\t\t\treturn fr.connError(ErrCodeProtocol,\n\t\t\t\tfmt.Sprintf(\"got CONTINUATION for stream %d; expected stream %d\",\n\t\t\t\t\tfh.StreamID, fr.lastHeaderStream))\n\t\t}\n\t} else if fh.Type == FrameContinuation {\n\t\treturn fr.connError(ErrCodeProtocol, fmt.Sprintf(\"unexpected CONTINUATION for stream %d\", fh.StreamID))\n\t}\n\n\tswitch fh.Type {\n\tcase FrameHeaders, FrameContinuation:\n\t\tif fh.Flags.Has(FlagHeadersEndHeaders) {\n\t\t\tfr.lastHeaderStream = 0\n\t\t} else {\n\t\t\tfr.lastHeaderStream = fh.StreamID\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// A DataFrame conveys arbitrary, variable-length sequences of octets\n// associated with a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1\ntype DataFrame struct {\n\tFrameHeader\n\tdata []byte\n}\n\nfunc (f *DataFrame) StreamEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagDataEndStream)\n}\n\n// Data returns the frame's data octets, not including any padding\n// size byte or padding suffix bytes.\n// The caller must not retain the returned memory past the next\n// call to ReadFrame.\nfunc (f *DataFrame) Data() []byte {\n\tf.checkValid()\n\treturn f.data\n}\n\nfunc parseDataFrame(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\t// DATA frames MUST be associated with a stream. If a\n\t\t// DATA frame is received whose stream identifier\n\t\t// field is 0x0, the recipient MUST respond with a\n\t\t// connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\n\t\tcountError(\"frame_data_stream_0\")\n\t\treturn nil, connError{ErrCodeProtocol, \"DATA frame with stream ID 0\"}\n\t}\n\tf := fc.getDataFrame()\n\tf.FrameHeader = fh\n\n\tvar padSize byte\n\tif fh.Flags.Has(FlagDataPadded) {\n\t\tvar err error\n\t\tpayload, padSize, err = readByte(payload)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_data_pad_byte_short\")\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif int(padSize) > len(payload) {\n\t\t// If the length of the padding is greater than the\n\t\t// length of the frame payload, the recipient MUST\n\t\t// treat this as a connection error.\n\t\t// Filed: https://github.com/http2/http2-spec/issues/610\n\t\tcountError(\"frame_data_pad_too_big\")\n\t\treturn nil, connError{ErrCodeProtocol, \"pad size larger than data payload\"}\n\t}\n\tf.data = payload[:len(payload)-int(padSize)]\n\treturn f, nil\n}\n\nvar (\n\terrStreamID    = errors.New(\"invalid stream ID\")\n\terrDepStreamID = errors.New(\"invalid dependent stream ID\")\n\terrPadLength   = errors.New(\"pad length too large\")\n\terrPadBytes    = errors.New(\"padding bytes must all be zeros unless AllowIllegalWrites is enabled\")\n)\n\nfunc validStreamIDOrZero(streamID uint32) bool {\n\treturn streamID&(1<<31) == 0\n}\n\nfunc validStreamID(streamID uint32) bool {\n\treturn streamID != 0 && streamID&(1<<31) == 0\n}\n\n// WriteData writes a DATA frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility not to violate the maximum frame size\n// and to not call other Write methods concurrently.\nfunc (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error {\n\treturn f.WriteDataPadded(streamID, endStream, data, nil)\n}\n\n// WriteDataPadded writes a DATA frame with optional padding.\n//\n// If pad is nil, the padding bit is not sent.\n// The length of pad must not exceed 255 bytes.\n// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility not to violate the maximum frame size\n// and to not call other Write methods concurrently.\nfunc (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error {\n\tif err := f.startWriteDataPadded(streamID, endStream, data, pad); err != nil {\n\t\treturn err\n\t}\n\treturn f.endWrite()\n}\n\n// startWriteDataPadded is WriteDataPadded, but only writes the frame to the Framer's internal buffer.\n// The caller should call endWrite to flush the frame to the underlying writer.\nfunc (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tif len(pad) > 0 {\n\t\tif len(pad) > 255 {\n\t\t\treturn errPadLength\n\t\t}\n\t\tif !f.AllowIllegalWrites {\n\t\t\tfor _, b := range pad {\n\t\t\t\tif b != 0 {\n\t\t\t\t\t// \"Padding octets MUST be set to zero when sending.\"\n\t\t\t\t\treturn errPadBytes\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar flags Flags\n\tif endStream {\n\t\tflags |= FlagDataEndStream\n\t}\n\tif pad != nil {\n\t\tflags |= FlagDataPadded\n\t}\n\tf.startWrite(FrameData, flags, streamID)\n\tif pad != nil {\n\t\tf.wbuf = append(f.wbuf, byte(len(pad)))\n\t}\n\tf.wbuf = append(f.wbuf, data...)\n\tf.wbuf = append(f.wbuf, pad...)\n\treturn nil\n}\n\n// A SettingsFrame conveys configuration parameters that affect how\n// endpoints communicate, such as preferences and constraints on peer\n// behavior.\n//\n// See https://httpwg.org/specs/rfc7540.html#SETTINGS\ntype SettingsFrame struct {\n\tFrameHeader\n\tp []byte\n}\n\nfunc parseSettingsFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 {\n\t\t// When this (ACK 0x1) bit is set, the payload of the\n\t\t// SETTINGS frame MUST be empty. Receipt of a\n\t\t// SETTINGS frame with the ACK flag set and a length\n\t\t// field value other than 0 MUST be treated as a\n\t\t// connection error (Section 5.4.1) of type\n\t\t// FRAME_SIZE_ERROR.\n\t\tcountError(\"frame_settings_ack_with_length\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID != 0 {\n\t\t// SETTINGS frames always apply to a connection,\n\t\t// never a single stream. The stream identifier for a\n\t\t// SETTINGS frame MUST be zero (0x0).  If an endpoint\n\t\t// receives a SETTINGS frame whose stream identifier\n\t\t// field is anything other than 0x0, the endpoint MUST\n\t\t// respond with a connection error (Section 5.4.1) of\n\t\t// type PROTOCOL_ERROR.\n\t\tcountError(\"frame_settings_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(p)%6 != 0 {\n\t\tcountError(\"frame_settings_mod_6\")\n\t\t// Expecting even number of 6 byte settings.\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tf := &SettingsFrame{FrameHeader: fh, p: p}\n\tif v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 {\n\t\tcountError(\"frame_settings_window_size_too_big\")\n\t\t// Values above the maximum flow control window size of 2^31 - 1 MUST\n\t\t// be treated as a connection error (Section 5.4.1) of type\n\t\t// FLOW_CONTROL_ERROR.\n\t\treturn nil, ConnectionError(ErrCodeFlowControl)\n\t}\n\treturn f, nil\n}\n\nfunc (f *SettingsFrame) IsAck() bool {\n\treturn f.FrameHeader.Flags.Has(FlagSettingsAck)\n}\n\nfunc (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) {\n\tf.checkValid()\n\tfor i := 0; i < f.NumSettings(); i++ {\n\t\tif s := f.Setting(i); s.ID == id {\n\t\t\treturn s.Val, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Setting returns the setting from the frame at the given 0-based index.\n// The index must be >= 0 and less than f.NumSettings().\nfunc (f *SettingsFrame) Setting(i int) Setting {\n\tbuf := f.p\n\treturn Setting{\n\t\tID:  SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])),\n\t\tVal: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]),\n\t}\n}\n\nfunc (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 }\n\n// HasDuplicates reports whether f contains any duplicate setting IDs.\nfunc (f *SettingsFrame) HasDuplicates() bool {\n\tnum := f.NumSettings()\n\tif num == 0 {\n\t\treturn false\n\t}\n\t// If it's small enough (the common case), just do the n^2\n\t// thing and avoid a map allocation.\n\tif num < 10 {\n\t\tfor i := 0; i < num; i++ {\n\t\t\tidi := f.Setting(i).ID\n\t\t\tfor j := i + 1; j < num; j++ {\n\t\t\t\tidj := f.Setting(j).ID\n\t\t\t\tif idi == idj {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tseen := map[SettingID]bool{}\n\tfor i := 0; i < num; i++ {\n\t\tid := f.Setting(i).ID\n\t\tif seen[id] {\n\t\t\treturn true\n\t\t}\n\t\tseen[id] = true\n\t}\n\treturn false\n}\n\n// ForeachSetting runs fn for each setting.\n// It stops and returns the first error.\nfunc (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error {\n\tf.checkValid()\n\tfor i := 0; i < f.NumSettings(); i++ {\n\t\tif err := fn(f.Setting(i)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// WriteSettings writes a SETTINGS frame with zero or more settings\n// specified and the ACK bit not set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteSettings(settings ...Setting) error {\n\tf.startWrite(FrameSettings, 0, 0)\n\tfor _, s := range settings {\n\t\tf.writeUint16(uint16(s.ID))\n\t\tf.writeUint32(s.Val)\n\t}\n\treturn f.endWrite()\n}\n\n// WriteSettingsAck writes an empty SETTINGS frame with the ACK bit set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteSettingsAck() error {\n\tf.startWrite(FrameSettings, FlagSettingsAck, 0)\n\treturn f.endWrite()\n}\n\n// A PingFrame is a mechanism for measuring a minimal round trip time\n// from the sender, as well as determining whether an idle connection\n// is still functional.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7\ntype PingFrame struct {\n\tFrameHeader\n\tData [8]byte\n}\n\nfunc (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) }\n\nfunc parsePingFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif len(payload) != 8 {\n\t\tcountError(\"frame_ping_length\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID != 0 {\n\t\tcountError(\"frame_ping_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tf := &PingFrame{FrameHeader: fh}\n\tcopy(f.Data[:], payload)\n\treturn f, nil\n}\n\nfunc (f *Framer) WritePing(ack bool, data [8]byte) error {\n\tvar flags Flags\n\tif ack {\n\t\tflags = FlagPingAck\n\t}\n\tf.startWrite(FramePing, flags, 0)\n\tf.writeBytes(data[:])\n\treturn f.endWrite()\n}\n\n// A GoAwayFrame informs the remote peer to stop creating streams on this connection.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8\ntype GoAwayFrame struct {\n\tFrameHeader\n\tLastStreamID uint32\n\tErrCode      ErrCode\n\tdebugData    []byte\n}\n\n// DebugData returns any debug data in the GOAWAY frame. Its contents\n// are not defined.\n// The caller must not retain the returned memory past the next\n// call to ReadFrame.\nfunc (f *GoAwayFrame) DebugData() []byte {\n\tf.checkValid()\n\treturn f.debugData\n}\n\nfunc parseGoAwayFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.StreamID != 0 {\n\t\tcountError(\"frame_goaway_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(p) < 8 {\n\t\tcountError(\"frame_goaway_short\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\treturn &GoAwayFrame{\n\t\tFrameHeader:  fh,\n\t\tLastStreamID: binary.BigEndian.Uint32(p[:4]) & (1<<31 - 1),\n\t\tErrCode:      ErrCode(binary.BigEndian.Uint32(p[4:8])),\n\t\tdebugData:    p[8:],\n\t}, nil\n}\n\nfunc (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error {\n\tf.startWrite(FrameGoAway, 0, 0)\n\tf.writeUint32(maxStreamID & (1<<31 - 1))\n\tf.writeUint32(uint32(code))\n\tf.writeBytes(debugData)\n\treturn f.endWrite()\n}\n\n// An UnknownFrame is the frame type returned when the frame type is unknown\n// or no specific frame type parser exists.\ntype UnknownFrame struct {\n\tFrameHeader\n\tp []byte\n}\n\n// Payload returns the frame's payload (after the header).  It is not\n// valid to call this method after a subsequent call to\n// Framer.ReadFrame, nor is it valid to retain the returned slice.\n// The memory is owned by the Framer and is invalidated when the next\n// frame is read.\nfunc (f *UnknownFrame) Payload() []byte {\n\tf.checkValid()\n\treturn f.p\n}\n\nfunc parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\treturn &UnknownFrame{fh, p}, nil\n}\n\n// A WindowUpdateFrame is used to implement flow control.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9\ntype WindowUpdateFrame struct {\n\tFrameHeader\n\tIncrement uint32 // never read with high bit set\n}\n\nfunc parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif len(p) != 4 {\n\t\tcountError(\"frame_windowupdate_bad_len\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tinc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit\n\tif inc == 0 {\n\t\t// A receiver MUST treat the receipt of a\n\t\t// WINDOW_UPDATE frame with an flow control window\n\t\t// increment of 0 as a stream error (Section 5.4.2) of\n\t\t// type PROTOCOL_ERROR; errors on the connection flow\n\t\t// control window MUST be treated as a connection\n\t\t// error (Section 5.4.1).\n\t\tif fh.StreamID == 0 {\n\t\t\tcountError(\"frame_windowupdate_zero_inc_conn\")\n\t\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t\t}\n\t\tcountError(\"frame_windowupdate_zero_inc_stream\")\n\t\treturn nil, streamError(fh.StreamID, ErrCodeProtocol)\n\t}\n\treturn &WindowUpdateFrame{\n\t\tFrameHeader: fh,\n\t\tIncrement:   inc,\n\t}, nil\n}\n\n// WriteWindowUpdate writes a WINDOW_UPDATE frame.\n// The increment value must be between 1 and 2,147,483,647, inclusive.\n// If the Stream ID is zero, the window update applies to the\n// connection as a whole.\nfunc (f *Framer) WriteWindowUpdate(streamID, incr uint32) error {\n\t// \"The legal range for the increment to the flow control window is 1 to 2^31-1 (2,147,483,647) octets.\"\n\tif (incr < 1 || incr > 2147483647) && !f.AllowIllegalWrites {\n\t\treturn errors.New(\"illegal window increment value\")\n\t}\n\tf.startWrite(FrameWindowUpdate, 0, streamID)\n\tf.writeUint32(incr)\n\treturn f.endWrite()\n}\n\n// A HeadersFrame is used to open a stream and additionally carries a\n// header block fragment.\ntype HeadersFrame struct {\n\tFrameHeader\n\n\t// Priority is set if FlagHeadersPriority is set in the FrameHeader.\n\tPriority PriorityParam\n\n\theaderFragBuf []byte // not owned\n}\n\nfunc (f *HeadersFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *HeadersFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersEndHeaders)\n}\n\nfunc (f *HeadersFrame) StreamEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersEndStream)\n}\n\nfunc (f *HeadersFrame) HasPriority() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersPriority)\n}\n\nfunc parseHeadersFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) {\n\thf := &HeadersFrame{\n\t\tFrameHeader: fh,\n\t}\n\tif fh.StreamID == 0 {\n\t\t// HEADERS frames MUST be associated with a stream. If a HEADERS frame\n\t\t// is received whose stream identifier field is 0x0, the recipient MUST\n\t\t// respond with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\n\t\tcountError(\"frame_headers_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"HEADERS frame with stream ID 0\"}\n\t}\n\tvar padLength uint8\n\tif fh.Flags.Has(FlagHeadersPadded) {\n\t\tif p, padLength, err = readByte(p); err != nil {\n\t\t\tcountError(\"frame_headers_pad_short\")\n\t\t\treturn\n\t\t}\n\t}\n\tif fh.Flags.Has(FlagHeadersPriority) {\n\t\tvar v uint32\n\t\tp, v, err = readUint32(p)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_headers_prio_short\")\n\t\t\treturn nil, err\n\t\t}\n\t\thf.Priority.StreamDep = v & 0x7fffffff\n\t\thf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set\n\t\tp, hf.Priority.Weight, err = readByte(p)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_headers_prio_weight_short\")\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif len(p)-int(padLength) < 0 {\n\t\tcountError(\"frame_headers_pad_too_big\")\n\t\treturn nil, streamError(fh.StreamID, ErrCodeProtocol)\n\t}\n\thf.headerFragBuf = p[:len(p)-int(padLength)]\n\treturn hf, nil\n}\n\n// HeadersFrameParam are the parameters for writing a HEADERS frame.\ntype HeadersFrameParam struct {\n\t// StreamID is the required Stream ID to initiate.\n\tStreamID uint32\n\t// BlockFragment is part (or all) of a Header Block.\n\tBlockFragment []byte\n\n\t// EndStream indicates that the header block is the last that\n\t// the endpoint will send for the identified stream. Setting\n\t// this flag causes the stream to enter one of \"half closed\"\n\t// states.\n\tEndStream bool\n\n\t// EndHeaders indicates that this frame contains an entire\n\t// header block and is not followed by any\n\t// CONTINUATION frames.\n\tEndHeaders bool\n\n\t// PadLength is the optional number of bytes of zeros to add\n\t// to this frame.\n\tPadLength uint8\n\n\t// Priority, if non-zero, includes stream priority information\n\t// in the HEADER frame.\n\tPriority PriorityParam\n}\n\n// WriteHeaders writes a single HEADERS frame.\n//\n// This is a low-level header writing method. Encoding headers and\n// splitting them into any necessary CONTINUATION frames is handled\n// elsewhere.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteHeaders(p HeadersFrameParam) error {\n\tif !validStreamID(p.StreamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif p.PadLength != 0 {\n\t\tflags |= FlagHeadersPadded\n\t}\n\tif p.EndStream {\n\t\tflags |= FlagHeadersEndStream\n\t}\n\tif p.EndHeaders {\n\t\tflags |= FlagHeadersEndHeaders\n\t}\n\tif !p.Priority.IsZero() {\n\t\tflags |= FlagHeadersPriority\n\t}\n\tf.startWrite(FrameHeaders, flags, p.StreamID)\n\tif p.PadLength != 0 {\n\t\tf.writeByte(p.PadLength)\n\t}\n\tif !p.Priority.IsZero() {\n\t\tv := p.Priority.StreamDep\n\t\tif !validStreamIDOrZero(v) && !f.AllowIllegalWrites {\n\t\t\treturn errDepStreamID\n\t\t}\n\t\tif p.Priority.Exclusive {\n\t\t\tv |= 1 << 31\n\t\t}\n\t\tf.writeUint32(v)\n\t\tf.writeByte(p.Priority.Weight)\n\t}\n\tf.wbuf = append(f.wbuf, p.BlockFragment...)\n\tf.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)\n\treturn f.endWrite()\n}\n\n// A PriorityFrame specifies the sender-advised priority of a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3\ntype PriorityFrame struct {\n\tFrameHeader\n\tPriorityParam\n}\n\nvar defaultRFC9218Priority = PriorityParam{\n\tincremental: 0,\n\turgency:     3,\n}\n\n// Note that HTTP/2 has had two different prioritization schemes, and\n// PriorityParam struct below is a superset of both schemes. The exported\n// symbols are from RFC 7540 and the non-exported ones are from RFC 9218.\n\n// PriorityParam are the stream prioritization parameters.\ntype PriorityParam struct {\n\t// StreamDep is a 31-bit stream identifier for the\n\t// stream that this stream depends on. Zero means no\n\t// dependency.\n\tStreamDep uint32\n\n\t// Exclusive is whether the dependency is exclusive.\n\tExclusive bool\n\n\t// Weight is the stream's zero-indexed weight. It should be\n\t// set together with StreamDep, or neither should be set. Per\n\t// the spec, \"Add one to the value to obtain a weight between\n\t// 1 and 256.\"\n\tWeight uint8\n\n\t// \"The urgency (u) parameter value is Integer (see Section 3.3.1 of\n\t// [STRUCTURED-FIELDS]), between 0 and 7 inclusive, in descending order of\n\t// priority. The default is 3.\"\n\turgency uint8\n\n\t// \"The incremental (i) parameter value is Boolean (see Section 3.3.6 of\n\t// [STRUCTURED-FIELDS]). It indicates if an HTTP response can be processed\n\t// incrementally, i.e., provide some meaningful output as chunks of the\n\t// response arrive.\"\n\t//\n\t// We use uint8 (i.e. 0 is false, 1 is true) instead of bool so we can\n\t// avoid unnecessary type conversions and because either type takes 1 byte.\n\tincremental uint8\n}\n\nfunc (p PriorityParam) IsZero() bool {\n\treturn p == PriorityParam{}\n}\n\nfunc parsePriorityFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_priority_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"PRIORITY frame with stream ID 0\"}\n\t}\n\tif len(payload) != 5 {\n\t\tcountError(\"frame_priority_bad_length\")\n\t\treturn nil, connError{ErrCodeFrameSize, fmt.Sprintf(\"PRIORITY frame payload size was %d; want 5\", len(payload))}\n\t}\n\tv := binary.BigEndian.Uint32(payload[:4])\n\tstreamID := v & 0x7fffffff // mask off high bit\n\treturn &PriorityFrame{\n\t\tFrameHeader: fh,\n\t\tPriorityParam: PriorityParam{\n\t\t\tWeight:    payload[4],\n\t\t\tStreamDep: streamID,\n\t\t\tExclusive: streamID != v, // was high bit set?\n\t\t},\n\t}, nil\n}\n\n// WritePriority writes a PRIORITY frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WritePriority(streamID uint32, p PriorityParam) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tif !validStreamIDOrZero(p.StreamDep) {\n\t\treturn errDepStreamID\n\t}\n\tf.startWrite(FramePriority, 0, streamID)\n\tv := p.StreamDep\n\tif p.Exclusive {\n\t\tv |= 1 << 31\n\t}\n\tf.writeUint32(v)\n\tf.writeByte(p.Weight)\n\treturn f.endWrite()\n}\n\n// A RSTStreamFrame allows for abnormal termination of a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4\ntype RSTStreamFrame struct {\n\tFrameHeader\n\tErrCode ErrCode\n}\n\nfunc parseRSTStreamFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif len(p) != 4 {\n\t\tcountError(\"frame_rststream_bad_len\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_rststream_zero_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\treturn &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil\n}\n\n// WriteRSTStream writes a RST_STREAM frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tf.startWrite(FrameRSTStream, 0, streamID)\n\tf.writeUint32(uint32(code))\n\treturn f.endWrite()\n}\n\n// A ContinuationFrame is used to continue a sequence of header block fragments.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10\ntype ContinuationFrame struct {\n\tFrameHeader\n\theaderFragBuf []byte\n}\n\nfunc parseContinuationFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_continuation_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"CONTINUATION frame with stream ID 0\"}\n\t}\n\treturn &ContinuationFrame{fh, p}, nil\n}\n\nfunc (f *ContinuationFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *ContinuationFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagContinuationEndHeaders)\n}\n\n// WriteContinuation writes a CONTINUATION frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif endHeaders {\n\t\tflags |= FlagContinuationEndHeaders\n\t}\n\tf.startWrite(FrameContinuation, flags, streamID)\n\tf.wbuf = append(f.wbuf, headerBlockFragment...)\n\treturn f.endWrite()\n}\n\n// A PushPromiseFrame is used to initiate a server stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6\ntype PushPromiseFrame struct {\n\tFrameHeader\n\tPromiseID     uint32\n\theaderFragBuf []byte // not owned\n}\n\nfunc (f *PushPromiseFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *PushPromiseFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders)\n}\n\nfunc parsePushPromise(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) {\n\tpp := &PushPromiseFrame{\n\t\tFrameHeader: fh,\n\t}\n\tif pp.StreamID == 0 {\n\t\t// PUSH_PROMISE frames MUST be associated with an existing,\n\t\t// peer-initiated stream. The stream identifier of a\n\t\t// PUSH_PROMISE frame indicates the stream it is associated\n\t\t// with. If the stream identifier field specifies the value\n\t\t// 0x0, a recipient MUST respond with a connection error\n\t\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\tcountError(\"frame_pushpromise_zero_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\t// The PUSH_PROMISE frame includes optional padding.\n\t// Padding fields and flags are identical to those defined for DATA frames\n\tvar padLength uint8\n\tif fh.Flags.Has(FlagPushPromisePadded) {\n\t\tif p, padLength, err = readByte(p); err != nil {\n\t\t\tcountError(\"frame_pushpromise_pad_short\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tp, pp.PromiseID, err = readUint32(p)\n\tif err != nil {\n\t\tcountError(\"frame_pushpromise_promiseid_short\")\n\t\treturn\n\t}\n\tpp.PromiseID = pp.PromiseID & (1<<31 - 1)\n\n\tif int(padLength) > len(p) {\n\t\t// like the DATA frame, error out if padding is longer than the body.\n\t\tcountError(\"frame_pushpromise_pad_too_big\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tpp.headerFragBuf = p[:len(p)-int(padLength)]\n\treturn pp, nil\n}\n\n// PushPromiseParam are the parameters for writing a PUSH_PROMISE frame.\ntype PushPromiseParam struct {\n\t// StreamID is the required Stream ID to initiate.\n\tStreamID uint32\n\n\t// PromiseID is the required Stream ID which this\n\t// Push Promises\n\tPromiseID uint32\n\n\t// BlockFragment is part (or all) of a Header Block.\n\tBlockFragment []byte\n\n\t// EndHeaders indicates that this frame contains an entire\n\t// header block and is not followed by any\n\t// CONTINUATION frames.\n\tEndHeaders bool\n\n\t// PadLength is the optional number of bytes of zeros to add\n\t// to this frame.\n\tPadLength uint8\n}\n\n// WritePushPromise writes a single PushPromise Frame.\n//\n// As with Header Frames, This is the low level call for writing\n// individual frames. Continuation frames are handled elsewhere.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WritePushPromise(p PushPromiseParam) error {\n\tif !validStreamID(p.StreamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif p.PadLength != 0 {\n\t\tflags |= FlagPushPromisePadded\n\t}\n\tif p.EndHeaders {\n\t\tflags |= FlagPushPromiseEndHeaders\n\t}\n\tf.startWrite(FramePushPromise, flags, p.StreamID)\n\tif p.PadLength != 0 {\n\t\tf.writeByte(p.PadLength)\n\t}\n\tif !validStreamID(p.PromiseID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tf.writeUint32(p.PromiseID)\n\tf.wbuf = append(f.wbuf, p.BlockFragment...)\n\tf.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)\n\treturn f.endWrite()\n}\n\n// WriteRawFrame writes a raw frame. This can be used to write\n// extension frames unknown to this package.\nfunc (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error {\n\tf.startWrite(t, flags, streamID)\n\tf.writeBytes(payload)\n\treturn f.endWrite()\n}\n\nfunc readByte(p []byte) (remain []byte, b byte, err error) {\n\tif len(p) == 0 {\n\t\treturn nil, 0, io.ErrUnexpectedEOF\n\t}\n\treturn p[1:], p[0], nil\n}\n\nfunc readUint32(p []byte) (remain []byte, v uint32, err error) {\n\tif len(p) < 4 {\n\t\treturn nil, 0, io.ErrUnexpectedEOF\n\t}\n\treturn p[4:], binary.BigEndian.Uint32(p[:4]), nil\n}\n\ntype streamEnder interface {\n\tStreamEnded() bool\n}\n\ntype headersEnder interface {\n\tHeadersEnded() bool\n}\n\ntype headersOrContinuation interface {\n\theadersEnder\n\tHeaderBlockFragment() []byte\n}\n\n// A MetaHeadersFrame is the representation of one HEADERS frame and\n// zero or more contiguous CONTINUATION frames and the decoding of\n// their HPACK-encoded contents.\n//\n// This type of frame does not appear on the wire and is only returned\n// by the Framer when Framer.ReadMetaHeaders is set.\ntype MetaHeadersFrame struct {\n\t*HeadersFrame\n\n\t// Fields are the fields contained in the HEADERS and\n\t// CONTINUATION frames. The underlying slice is owned by the\n\t// Framer and must not be retained after the next call to\n\t// ReadFrame.\n\t//\n\t// Fields are guaranteed to be in the correct http2 order and\n\t// not have unknown pseudo header fields or invalid header\n\t// field names or values. Required pseudo header fields may be\n\t// missing, however. Use the MetaHeadersFrame.Pseudo accessor\n\t// method access pseudo headers.\n\tFields []hpack.HeaderField\n\n\t// Truncated is whether the max header list size limit was hit\n\t// and Fields is incomplete. The hpack decoder state is still\n\t// valid, however.\n\tTruncated bool\n}\n\n// PseudoValue returns the given pseudo header field's value.\n// The provided pseudo field should not contain the leading colon.\nfunc (mh *MetaHeadersFrame) PseudoValue(pseudo string) string {\n\tfor _, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn \"\"\n\t\t}\n\t\tif hf.Name[1:] == pseudo {\n\t\t\treturn hf.Value\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// RegularFields returns the regular (non-pseudo) header fields of mh.\n// The caller does not own the returned slice.\nfunc (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField {\n\tfor i, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn mh.Fields[i:]\n\t\t}\n\t}\n\treturn nil\n}\n\n// PseudoFields returns the pseudo header fields of mh.\n// The caller does not own the returned slice.\nfunc (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField {\n\tfor i, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn mh.Fields[:i]\n\t\t}\n\t}\n\treturn mh.Fields\n}\n\nfunc (mh *MetaHeadersFrame) checkPseudos() error {\n\tvar isRequest, isResponse bool\n\tpf := mh.PseudoFields()\n\tfor i, hf := range pf {\n\t\tswitch hf.Name {\n\t\tcase \":method\", \":path\", \":scheme\", \":authority\", \":protocol\":\n\t\t\tisRequest = true\n\t\tcase \":status\":\n\t\t\tisResponse = true\n\t\tdefault:\n\t\t\treturn pseudoHeaderError(hf.Name)\n\t\t}\n\t\t// Check for duplicates.\n\t\t// This would be a bad algorithm, but N is 5.\n\t\t// And this doesn't allocate.\n\t\tfor _, hf2 := range pf[:i] {\n\t\t\tif hf.Name == hf2.Name {\n\t\t\t\treturn duplicatePseudoHeaderError(hf.Name)\n\t\t\t}\n\t\t}\n\t}\n\tif isRequest && isResponse {\n\t\treturn errMixPseudoHeaderTypes\n\t}\n\treturn nil\n}\n\nfunc (fr *Framer) maxHeaderStringLen() int {\n\tv := int(fr.maxHeaderListSize())\n\tif v < 0 {\n\t\t// If maxHeaderListSize overflows an int, use no limit (0).\n\t\treturn 0\n\t}\n\treturn v\n}\n\n// readMetaFrame returns 0 or more CONTINUATION frames from fr and\n// merge them into the provided hf and returns a MetaHeadersFrame\n// with the decoded hpack values.\nfunc (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) {\n\tif fr.AllowIllegalReads {\n\t\treturn nil, errors.New(\"illegal use of AllowIllegalReads with ReadMetaHeaders\")\n\t}\n\tmh := &MetaHeadersFrame{\n\t\tHeadersFrame: hf,\n\t}\n\tvar remainSize = fr.maxHeaderListSize()\n\tvar sawRegular bool\n\n\tvar invalid error // pseudo header field errors\n\thdec := fr.ReadMetaHeaders\n\thdec.SetEmitEnabled(true)\n\thdec.SetMaxStringLength(fr.maxHeaderStringLen())\n\thdec.SetEmitFunc(func(hf hpack.HeaderField) {\n\t\tif VerboseLogs && fr.logReads {\n\t\t\tfr.debugReadLoggerf(\"http2: decoded hpack field %+v\", hf)\n\t\t}\n\t\tif !httpguts.ValidHeaderFieldValue(hf.Value) {\n\t\t\t// Don't include the value in the error, because it may be sensitive.\n\t\t\tinvalid = headerFieldValueError(hf.Name)\n\t\t}\n\t\tisPseudo := strings.HasPrefix(hf.Name, \":\")\n\t\tif isPseudo {\n\t\t\tif sawRegular {\n\t\t\t\tinvalid = errPseudoAfterRegular\n\t\t\t}\n\t\t} else {\n\t\t\tsawRegular = true\n\t\t\tif !validWireHeaderFieldName(hf.Name) {\n\t\t\t\tinvalid = headerFieldNameError(hf.Name)\n\t\t\t}\n\t\t}\n\n\t\tif invalid != nil {\n\t\t\thdec.SetEmitEnabled(false)\n\t\t\treturn\n\t\t}\n\n\t\tsize := hf.Size()\n\t\tif size > remainSize {\n\t\t\thdec.SetEmitEnabled(false)\n\t\t\tmh.Truncated = true\n\t\t\tremainSize = 0\n\t\t\treturn\n\t\t}\n\t\tremainSize -= size\n\n\t\tmh.Fields = append(mh.Fields, hf)\n\t})\n\t// Lose reference to MetaHeadersFrame:\n\tdefer hdec.SetEmitFunc(func(hf hpack.HeaderField) {})\n\n\tvar hc headersOrContinuation = hf\n\tfor {\n\t\tfrag := hc.HeaderBlockFragment()\n\n\t\t// Avoid parsing large amounts of headers that we will then discard.\n\t\t// If the sender exceeds the max header list size by too much,\n\t\t// skip parsing the fragment and close the connection.\n\t\t//\n\t\t// \"Too much\" is either any CONTINUATION frame after we've already\n\t\t// exceeded the max header list size (in which case remainSize is 0),\n\t\t// or a frame whose encoded size is more than twice the remaining\n\t\t// header list bytes we're willing to accept.\n\t\tif int64(len(frag)) > int64(2*remainSize) {\n\t\t\tif VerboseLogs {\n\t\t\t\tlog.Printf(\"http2: header list too large\")\n\t\t\t}\n\t\t\t// It would be nice to send a RST_STREAM before sending the GOAWAY,\n\t\t\t// but the structure of the server's frame writer makes this difficult.\n\t\t\treturn mh, ConnectionError(ErrCodeProtocol)\n\t\t}\n\n\t\t// Also close the connection after any CONTINUATION frame following an\n\t\t// invalid header, since we stop tracking the size of the headers after\n\t\t// an invalid one.\n\t\tif invalid != nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tlog.Printf(\"http2: invalid header: %v\", invalid)\n\t\t\t}\n\t\t\t// It would be nice to send a RST_STREAM before sending the GOAWAY,\n\t\t\t// but the structure of the server's frame writer makes this difficult.\n\t\t\treturn mh, ConnectionError(ErrCodeProtocol)\n\t\t}\n\n\t\tif _, err := hdec.Write(frag); err != nil {\n\t\t\treturn mh, ConnectionError(ErrCodeCompression)\n\t\t}\n\n\t\tif hc.HeadersEnded() {\n\t\t\tbreak\n\t\t}\n\t\tif f, err := fr.ReadFrame(); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\thc = f.(*ContinuationFrame) // guaranteed by checkFrameOrder\n\t\t}\n\t}\n\n\tmh.HeadersFrame.headerFragBuf = nil\n\tmh.HeadersFrame.invalidate()\n\n\tif err := hdec.Close(); err != nil {\n\t\treturn mh, ConnectionError(ErrCodeCompression)\n\t}\n\tif invalid != nil {\n\t\tfr.errDetail = invalid\n\t\tif VerboseLogs {\n\t\t\tlog.Printf(\"http2: invalid header: %v\", invalid)\n\t\t}\n\t\treturn nil, StreamError{mh.StreamID, ErrCodeProtocol, invalid}\n\t}\n\tif err := mh.checkPseudos(); err != nil {\n\t\tfr.errDetail = err\n\t\tif VerboseLogs {\n\t\t\tlog.Printf(\"http2: invalid pseudo headers: %v\", err)\n\t\t}\n\t\treturn nil, StreamError{mh.StreamID, ErrCodeProtocol, err}\n\t}\n\treturn mh, nil\n}\n\nfunc summarizeFrame(f Frame) string {\n\tvar buf bytes.Buffer\n\tf.Header().writeDebug(&buf)\n\tswitch f := f.(type) {\n\tcase *SettingsFrame:\n\t\tn := 0\n\t\tf.ForeachSetting(func(s Setting) error {\n\t\t\tn++\n\t\t\tif n == 1 {\n\t\t\t\tbuf.WriteString(\", settings:\")\n\t\t\t}\n\t\t\tfmt.Fprintf(&buf, \" %v=%v,\", s.ID, s.Val)\n\t\t\treturn nil\n\t\t})\n\t\tif n > 0 {\n\t\t\tbuf.Truncate(buf.Len() - 1) // remove trailing comma\n\t\t}\n\tcase *DataFrame:\n\t\tdata := f.Data()\n\t\tconst max = 256\n\t\tif len(data) > max {\n\t\t\tdata = data[:max]\n\t\t}\n\t\tfmt.Fprintf(&buf, \" data=%q\", data)\n\t\tif len(f.Data()) > max {\n\t\t\tfmt.Fprintf(&buf, \" (%d bytes omitted)\", len(f.Data())-max)\n\t\t}\n\tcase *WindowUpdateFrame:\n\t\tif f.StreamID == 0 {\n\t\t\tbuf.WriteString(\" (conn)\")\n\t\t}\n\t\tfmt.Fprintf(&buf, \" incr=%v\", f.Increment)\n\tcase *PingFrame:\n\t\tfmt.Fprintf(&buf, \" ping=%q\", f.Data[:])\n\tcase *GoAwayFrame:\n\t\tfmt.Fprintf(&buf, \" LastStreamID=%v ErrCode=%v Debug=%q\",\n\t\t\tf.LastStreamID, f.ErrCode, f.debugData)\n\tcase *RSTStreamFrame:\n\t\tfmt.Fprintf(&buf, \" ErrCode=%v\", f.ErrCode)\n\t}\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/gotrack.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Defensive debug-only utility to track that functions run on the\n// goroutine that they're supposed to.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\nvar DebugGoroutines = os.Getenv(\"DEBUG_HTTP2_GOROUTINES\") == \"1\"\n\n// Setting DebugGoroutines to false during a test to disable goroutine debugging\n// results in race detector complaints when a test leaves goroutines running before\n// returning. Tests shouldn't do this, of course, but when they do it generally shows\n// up as infrequent, hard-to-debug flakes. (See #66519.)\n//\n// Disable goroutine debugging during individual tests with an atomic bool.\n// (Note that it's safe to enable/disable debugging mid-test, so the actual race condition\n// here is harmless.)\nvar disableDebugGoroutines atomic.Bool\n\ntype goroutineLock uint64\n\nfunc newGoroutineLock() goroutineLock {\n\tif !DebugGoroutines || disableDebugGoroutines.Load() {\n\t\treturn 0\n\t}\n\treturn goroutineLock(curGoroutineID())\n}\n\nfunc (g goroutineLock) check() {\n\tif !DebugGoroutines || disableDebugGoroutines.Load() {\n\t\treturn\n\t}\n\tif curGoroutineID() != uint64(g) {\n\t\tpanic(\"running on the wrong goroutine\")\n\t}\n}\n\nfunc (g goroutineLock) checkNotOn() {\n\tif !DebugGoroutines || disableDebugGoroutines.Load() {\n\t\treturn\n\t}\n\tif curGoroutineID() == uint64(g) {\n\t\tpanic(\"running on the wrong goroutine\")\n\t}\n}\n\nvar goroutineSpace = []byte(\"goroutine \")\n\nfunc curGoroutineID() uint64 {\n\tbp := littleBuf.Get().(*[]byte)\n\tdefer littleBuf.Put(bp)\n\tb := *bp\n\tb = b[:runtime.Stack(b, false)]\n\t// Parse the 4707 out of \"goroutine 4707 [\"\n\tb = bytes.TrimPrefix(b, goroutineSpace)\n\ti := bytes.IndexByte(b, ' ')\n\tif i < 0 {\n\t\tpanic(fmt.Sprintf(\"No space found in %q\", b))\n\t}\n\tb = b[:i]\n\tn, err := parseUintBytes(b, 10, 64)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"Failed to parse goroutine ID out of %q: %v\", b, err))\n\t}\n\treturn n\n}\n\nvar littleBuf = sync.Pool{\n\tNew: func() interface{} {\n\t\tbuf := make([]byte, 64)\n\t\treturn &buf\n\t},\n}\n\n// parseUintBytes is like strconv.ParseUint, but using a []byte.\nfunc parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) {\n\tvar cutoff, maxVal uint64\n\n\tif bitSize == 0 {\n\t\tbitSize = int(strconv.IntSize)\n\t}\n\n\ts0 := s\n\tswitch {\n\tcase len(s) < 1:\n\t\terr = strconv.ErrSyntax\n\t\tgoto Error\n\n\tcase 2 <= base && base <= 36:\n\t\t// valid base; nothing to do\n\n\tcase base == 0:\n\t\t// Look for octal, hex prefix.\n\t\tswitch {\n\t\tcase s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'):\n\t\t\tbase = 16\n\t\t\ts = s[2:]\n\t\t\tif len(s) < 1 {\n\t\t\t\terr = strconv.ErrSyntax\n\t\t\t\tgoto Error\n\t\t\t}\n\t\tcase s[0] == '0':\n\t\t\tbase = 8\n\t\tdefault:\n\t\t\tbase = 10\n\t\t}\n\n\tdefault:\n\t\terr = errors.New(\"invalid base \" + strconv.Itoa(base))\n\t\tgoto Error\n\t}\n\n\tn = 0\n\tcutoff = cutoff64(base)\n\tmaxVal = 1<<uint(bitSize) - 1\n\n\tfor i := 0; i < len(s); i++ {\n\t\tvar v byte\n\t\td := s[i]\n\t\tswitch {\n\t\tcase '0' <= d && d <= '9':\n\t\t\tv = d - '0'\n\t\tcase 'a' <= d && d <= 'z':\n\t\t\tv = d - 'a' + 10\n\t\tcase 'A' <= d && d <= 'Z':\n\t\t\tv = d - 'A' + 10\n\t\tdefault:\n\t\t\tn = 0\n\t\t\terr = strconv.ErrSyntax\n\t\t\tgoto Error\n\t\t}\n\t\tif int(v) >= base {\n\t\t\tn = 0\n\t\t\terr = strconv.ErrSyntax\n\t\t\tgoto Error\n\t\t}\n\n\t\tif n >= cutoff {\n\t\t\t// n*base overflows\n\t\t\tn = 1<<64 - 1\n\t\t\terr = strconv.ErrRange\n\t\t\tgoto Error\n\t\t}\n\t\tn *= uint64(base)\n\n\t\tn1 := n + uint64(v)\n\t\tif n1 < n || n1 > maxVal {\n\t\t\t// n+v overflows\n\t\t\tn = 1<<64 - 1\n\t\t\terr = strconv.ErrRange\n\t\t\tgoto Error\n\t\t}\n\t\tn = n1\n\t}\n\n\treturn n, nil\n\nError:\n\treturn n, &strconv.NumError{Func: \"ParseUint\", Num: string(s0), Err: err}\n}\n\n// Return the first number n such that n*base >= 1<<64.\nfunc cutoff64(base int) uint64 {\n\tif base < 2 {\n\t\treturn 0\n\t}\n\treturn (1<<64-1)/uint64(base) + 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/encode.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"io\"\n)\n\nconst (\n\tuint32Max              = ^uint32(0)\n\tinitialHeaderTableSize = 4096\n)\n\ntype Encoder struct {\n\tdynTab dynamicTable\n\t// minSize is the minimum table size set by\n\t// SetMaxDynamicTableSize after the previous Header Table Size\n\t// Update.\n\tminSize uint32\n\t// maxSizeLimit is the maximum table size this encoder\n\t// supports. This will protect the encoder from too large\n\t// size.\n\tmaxSizeLimit uint32\n\t// tableSizeUpdate indicates whether \"Header Table Size\n\t// Update\" is required.\n\ttableSizeUpdate bool\n\tw               io.Writer\n\tbuf             []byte\n}\n\n// NewEncoder returns a new Encoder which performs HPACK encoding. An\n// encoded data is written to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\te := &Encoder{\n\t\tminSize:         uint32Max,\n\t\tmaxSizeLimit:    initialHeaderTableSize,\n\t\ttableSizeUpdate: false,\n\t\tw:               w,\n\t}\n\te.dynTab.table.init()\n\te.dynTab.setMaxSize(initialHeaderTableSize)\n\treturn e\n}\n\n// WriteField encodes f into a single Write to e's underlying Writer.\n// This function may also produce bytes for \"Header Table Size Update\"\n// if necessary. If produced, it is done before encoding f.\nfunc (e *Encoder) WriteField(f HeaderField) error {\n\te.buf = e.buf[:0]\n\n\tif e.tableSizeUpdate {\n\t\te.tableSizeUpdate = false\n\t\tif e.minSize < e.dynTab.maxSize {\n\t\t\te.buf = appendTableSize(e.buf, e.minSize)\n\t\t}\n\t\te.minSize = uint32Max\n\t\te.buf = appendTableSize(e.buf, e.dynTab.maxSize)\n\t}\n\n\tidx, nameValueMatch := e.searchTable(f)\n\tif nameValueMatch {\n\t\te.buf = appendIndexed(e.buf, idx)\n\t} else {\n\t\tindexing := e.shouldIndex(f)\n\t\tif indexing {\n\t\t\te.dynTab.add(f)\n\t\t}\n\n\t\tif idx == 0 {\n\t\t\te.buf = appendNewName(e.buf, f, indexing)\n\t\t} else {\n\t\t\te.buf = appendIndexedName(e.buf, f, idx, indexing)\n\t\t}\n\t}\n\tn, err := e.w.Write(e.buf)\n\tif err == nil && n != len(e.buf) {\n\t\terr = io.ErrShortWrite\n\t}\n\treturn err\n}\n\n// searchTable searches f in both stable and dynamic header tables.\n// The static header table is searched first. Only when there is no\n// exact match for both name and value, the dynamic header table is\n// then searched. If there is no match, i is 0. If both name and value\n// match, i is the matched index and nameValueMatch becomes true. If\n// only name matches, i points to that index and nameValueMatch\n// becomes false.\nfunc (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) {\n\ti, nameValueMatch = staticTable.search(f)\n\tif nameValueMatch {\n\t\treturn i, true\n\t}\n\n\tj, nameValueMatch := e.dynTab.table.search(f)\n\tif nameValueMatch || (i == 0 && j != 0) {\n\t\treturn j + uint64(staticTable.len()), nameValueMatch\n\t}\n\n\treturn i, false\n}\n\n// SetMaxDynamicTableSize changes the dynamic header table size to v.\n// The actual size is bounded by the value passed to\n// SetMaxDynamicTableSizeLimit.\nfunc (e *Encoder) SetMaxDynamicTableSize(v uint32) {\n\tif v > e.maxSizeLimit {\n\t\tv = e.maxSizeLimit\n\t}\n\tif v < e.minSize {\n\t\te.minSize = v\n\t}\n\te.tableSizeUpdate = true\n\te.dynTab.setMaxSize(v)\n}\n\n// MaxDynamicTableSize returns the current dynamic header table size.\nfunc (e *Encoder) MaxDynamicTableSize() (v uint32) {\n\treturn e.dynTab.maxSize\n}\n\n// SetMaxDynamicTableSizeLimit changes the maximum value that can be\n// specified in SetMaxDynamicTableSize to v. By default, it is set to\n// 4096, which is the same size of the default dynamic header table\n// size described in HPACK specification. If the current maximum\n// dynamic header table size is strictly greater than v, \"Header Table\n// Size Update\" will be done in the next WriteField call and the\n// maximum dynamic header table size is truncated to v.\nfunc (e *Encoder) SetMaxDynamicTableSizeLimit(v uint32) {\n\te.maxSizeLimit = v\n\tif e.dynTab.maxSize > v {\n\t\te.tableSizeUpdate = true\n\t\te.dynTab.setMaxSize(v)\n\t}\n}\n\n// shouldIndex reports whether f should be indexed.\nfunc (e *Encoder) shouldIndex(f HeaderField) bool {\n\treturn !f.Sensitive && f.Size() <= e.dynTab.maxSize\n}\n\n// appendIndexed appends index i, as encoded in \"Indexed Header Field\"\n// representation, to dst and returns the extended buffer.\nfunc appendIndexed(dst []byte, i uint64) []byte {\n\tfirst := len(dst)\n\tdst = appendVarInt(dst, 7, i)\n\tdst[first] |= 0x80\n\treturn dst\n}\n\n// appendNewName appends f, as encoded in one of \"Literal Header field\n// - New Name\" representation variants, to dst and returns the\n// extended buffer.\n//\n// If f.Sensitive is true, \"Never Indexed\" representation is used. If\n// f.Sensitive is false and indexing is true, \"Incremental Indexing\"\n// representation is used.\nfunc appendNewName(dst []byte, f HeaderField, indexing bool) []byte {\n\tdst = append(dst, encodeTypeByte(indexing, f.Sensitive))\n\tdst = appendHpackString(dst, f.Name)\n\treturn appendHpackString(dst, f.Value)\n}\n\n// appendIndexedName appends f and index i referring indexed name\n// entry, as encoded in one of \"Literal Header field - Indexed Name\"\n// representation variants, to dst and returns the extended buffer.\n//\n// If f.Sensitive is true, \"Never Indexed\" representation is used. If\n// f.Sensitive is false and indexing is true, \"Incremental Indexing\"\n// representation is used.\nfunc appendIndexedName(dst []byte, f HeaderField, i uint64, indexing bool) []byte {\n\tfirst := len(dst)\n\tvar n byte\n\tif indexing {\n\t\tn = 6\n\t} else {\n\t\tn = 4\n\t}\n\tdst = appendVarInt(dst, n, i)\n\tdst[first] |= encodeTypeByte(indexing, f.Sensitive)\n\treturn appendHpackString(dst, f.Value)\n}\n\n// appendTableSize appends v, as encoded in \"Header Table Size Update\"\n// representation, to dst and returns the extended buffer.\nfunc appendTableSize(dst []byte, v uint32) []byte {\n\tfirst := len(dst)\n\tdst = appendVarInt(dst, 5, uint64(v))\n\tdst[first] |= 0x20\n\treturn dst\n}\n\n// appendVarInt appends i, as encoded in variable integer form using n\n// bit prefix, to dst and returns the extended buffer.\n//\n// See\n// https://httpwg.org/specs/rfc7541.html#integer.representation\nfunc appendVarInt(dst []byte, n byte, i uint64) []byte {\n\tk := uint64((1 << n) - 1)\n\tif i < k {\n\t\treturn append(dst, byte(i))\n\t}\n\tdst = append(dst, byte(k))\n\ti -= k\n\tfor ; i >= 128; i >>= 7 {\n\t\tdst = append(dst, byte(0x80|(i&0x7f)))\n\t}\n\treturn append(dst, byte(i))\n}\n\n// appendHpackString appends s, as encoded in \"String Literal\"\n// representation, to dst and returns the extended buffer.\n//\n// s will be encoded in Huffman codes only when it produces strictly\n// shorter byte string.\nfunc appendHpackString(dst []byte, s string) []byte {\n\thuffmanLength := HuffmanEncodeLength(s)\n\tif huffmanLength < uint64(len(s)) {\n\t\tfirst := len(dst)\n\t\tdst = appendVarInt(dst, 7, huffmanLength)\n\t\tdst = AppendHuffmanString(dst, s)\n\t\tdst[first] |= 0x80\n\t} else {\n\t\tdst = appendVarInt(dst, 7, uint64(len(s)))\n\t\tdst = append(dst, s...)\n\t}\n\treturn dst\n}\n\n// encodeTypeByte returns type byte. If sensitive is true, type byte\n// for \"Never Indexed\" representation is returned. If sensitive is\n// false and indexing is true, type byte for \"Incremental Indexing\"\n// representation is returned. Otherwise, type byte for \"Without\n// Indexing\" is returned.\nfunc encodeTypeByte(indexing, sensitive bool) byte {\n\tif sensitive {\n\t\treturn 0x10\n\t}\n\tif indexing {\n\t\treturn 0x40\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/hpack.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package hpack implements HPACK, a compression format for\n// efficiently representing HTTP header fields in the context of HTTP/2.\n//\n// See http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09\npackage hpack\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// A DecodingError is something the spec defines as a decoding error.\ntype DecodingError struct {\n\tErr error\n}\n\nfunc (de DecodingError) Error() string {\n\treturn fmt.Sprintf(\"decoding error: %v\", de.Err)\n}\n\n// An InvalidIndexError is returned when an encoder references a table\n// entry before the static table or after the end of the dynamic table.\ntype InvalidIndexError int\n\nfunc (e InvalidIndexError) Error() string {\n\treturn fmt.Sprintf(\"invalid indexed representation index %d\", int(e))\n}\n\n// A HeaderField is a name-value pair. Both the name and value are\n// treated as opaque sequences of octets.\ntype HeaderField struct {\n\tName, Value string\n\n\t// Sensitive means that this header field should never be\n\t// indexed.\n\tSensitive bool\n}\n\n// IsPseudo reports whether the header field is an http2 pseudo header.\n// That is, it reports whether it starts with a colon.\n// It is not otherwise guaranteed to be a valid pseudo header field,\n// though.\nfunc (hf HeaderField) IsPseudo() bool {\n\treturn len(hf.Name) != 0 && hf.Name[0] == ':'\n}\n\nfunc (hf HeaderField) String() string {\n\tvar suffix string\n\tif hf.Sensitive {\n\t\tsuffix = \" (sensitive)\"\n\t}\n\treturn fmt.Sprintf(\"header field %q = %q%s\", hf.Name, hf.Value, suffix)\n}\n\n// Size returns the size of an entry per RFC 7541 section 4.1.\nfunc (hf HeaderField) Size() uint32 {\n\t// https://httpwg.org/specs/rfc7541.html#rfc.section.4.1\n\t// \"The size of the dynamic table is the sum of the size of\n\t// its entries. The size of an entry is the sum of its name's\n\t// length in octets (as defined in Section 5.2), its value's\n\t// length in octets (see Section 5.2), plus 32.  The size of\n\t// an entry is calculated using the length of the name and\n\t// value without any Huffman encoding applied.\"\n\n\t// This can overflow if somebody makes a large HeaderField\n\t// Name and/or Value by hand, but we don't care, because that\n\t// won't happen on the wire because the encoding doesn't allow\n\t// it.\n\treturn uint32(len(hf.Name) + len(hf.Value) + 32)\n}\n\n// A Decoder is the decoding context for incremental processing of\n// header blocks.\ntype Decoder struct {\n\tdynTab dynamicTable\n\temit   func(f HeaderField)\n\n\temitEnabled bool // whether calls to emit are enabled\n\tmaxStrLen   int  // 0 means unlimited\n\n\t// buf is the unparsed buffer. It's only written to\n\t// saveBuf if it was truncated in the middle of a header\n\t// block. Because it's usually not owned, we can only\n\t// process it under Write.\n\tbuf []byte // not owned; only valid during Write\n\n\t// saveBuf is previous data passed to Write which we weren't able\n\t// to fully parse before. Unlike buf, we own this data.\n\tsaveBuf bytes.Buffer\n\n\tfirstField bool // processing the first field of the header block\n}\n\n// NewDecoder returns a new decoder with the provided maximum dynamic\n// table size. The emitFunc will be called for each valid field\n// parsed, in the same goroutine as calls to Write, before Write returns.\nfunc NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decoder {\n\td := &Decoder{\n\t\temit:        emitFunc,\n\t\temitEnabled: true,\n\t\tfirstField:  true,\n\t}\n\td.dynTab.table.init()\n\td.dynTab.allowedMaxSize = maxDynamicTableSize\n\td.dynTab.setMaxSize(maxDynamicTableSize)\n\treturn d\n}\n\n// ErrStringLength is returned by Decoder.Write when the max string length\n// (as configured by Decoder.SetMaxStringLength) would be violated.\nvar ErrStringLength = errors.New(\"hpack: string too long\")\n\n// SetMaxStringLength sets the maximum size of a HeaderField name or\n// value string. If a string exceeds this length (even after any\n// decompression), Write will return ErrStringLength.\n// A value of 0 means unlimited and is the default from NewDecoder.\nfunc (d *Decoder) SetMaxStringLength(n int) {\n\td.maxStrLen = n\n}\n\n// SetEmitFunc changes the callback used when new header fields\n// are decoded.\n// It must be non-nil. It does not affect EmitEnabled.\nfunc (d *Decoder) SetEmitFunc(emitFunc func(f HeaderField)) {\n\td.emit = emitFunc\n}\n\n// SetEmitEnabled controls whether the emitFunc provided to NewDecoder\n// should be called. The default is true.\n//\n// This facility exists to let servers enforce MAX_HEADER_LIST_SIZE\n// while still decoding and keeping in-sync with decoder state, but\n// without doing unnecessary decompression or generating unnecessary\n// garbage for header fields past the limit.\nfunc (d *Decoder) SetEmitEnabled(v bool) { d.emitEnabled = v }\n\n// EmitEnabled reports whether calls to the emitFunc provided to NewDecoder\n// are currently enabled. The default is true.\nfunc (d *Decoder) EmitEnabled() bool { return d.emitEnabled }\n\n// TODO: add method *Decoder.Reset(maxSize, emitFunc) to let callers re-use Decoders and their\n// underlying buffers for garbage reasons.\n\nfunc (d *Decoder) SetMaxDynamicTableSize(v uint32) {\n\td.dynTab.setMaxSize(v)\n}\n\n// SetAllowedMaxDynamicTableSize sets the upper bound that the encoded\n// stream (via dynamic table size updates) may set the maximum size\n// to.\nfunc (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) {\n\td.dynTab.allowedMaxSize = v\n}\n\ntype dynamicTable struct {\n\t// https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2\n\ttable          headerFieldTable\n\tsize           uint32 // in bytes\n\tmaxSize        uint32 // current maxSize\n\tallowedMaxSize uint32 // maxSize may go up to this, inclusive\n}\n\nfunc (dt *dynamicTable) setMaxSize(v uint32) {\n\tdt.maxSize = v\n\tdt.evict()\n}\n\nfunc (dt *dynamicTable) add(f HeaderField) {\n\tdt.table.addEntry(f)\n\tdt.size += f.Size()\n\tdt.evict()\n}\n\n// If we're too big, evict old stuff.\nfunc (dt *dynamicTable) evict() {\n\tvar n int\n\tfor dt.size > dt.maxSize && n < dt.table.len() {\n\t\tdt.size -= dt.table.ents[n].Size()\n\t\tn++\n\t}\n\tdt.table.evictOldest(n)\n}\n\nfunc (d *Decoder) maxTableIndex() int {\n\t// This should never overflow. RFC 7540 Section 6.5.2 limits the size of\n\t// the dynamic table to 2^32 bytes, where each entry will occupy more than\n\t// one byte. Further, the staticTable has a fixed, small length.\n\treturn d.dynTab.table.len() + staticTable.len()\n}\n\nfunc (d *Decoder) at(i uint64) (hf HeaderField, ok bool) {\n\t// See Section 2.3.3.\n\tif i == 0 {\n\t\treturn\n\t}\n\tif i <= uint64(staticTable.len()) {\n\t\treturn staticTable.ents[i-1], true\n\t}\n\tif i > uint64(d.maxTableIndex()) {\n\t\treturn\n\t}\n\t// In the dynamic table, newer entries have lower indices.\n\t// However, dt.ents[0] is the oldest entry. Hence, dt.ents is\n\t// the reversed dynamic table.\n\tdt := d.dynTab.table\n\treturn dt.ents[dt.len()-(int(i)-staticTable.len())], true\n}\n\n// DecodeFull decodes an entire block.\n//\n// TODO: remove this method and make it incremental later? This is\n// easier for debugging now.\nfunc (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) {\n\tvar hf []HeaderField\n\tsaveFunc := d.emit\n\tdefer func() { d.emit = saveFunc }()\n\td.emit = func(f HeaderField) { hf = append(hf, f) }\n\tif _, err := d.Write(p); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := d.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn hf, nil\n}\n\n// Close declares that the decoding is complete and resets the Decoder\n// to be reused again for a new header block. If there is any remaining\n// data in the decoder's buffer, Close returns an error.\nfunc (d *Decoder) Close() error {\n\tif d.saveBuf.Len() > 0 {\n\t\td.saveBuf.Reset()\n\t\treturn DecodingError{errors.New(\"truncated headers\")}\n\t}\n\td.firstField = true\n\treturn nil\n}\n\nfunc (d *Decoder) Write(p []byte) (n int, err error) {\n\tif len(p) == 0 {\n\t\t// Prevent state machine CPU attacks (making us redo\n\t\t// work up to the point of finding out we don't have\n\t\t// enough data)\n\t\treturn\n\t}\n\t// Only copy the data if we have to. Optimistically assume\n\t// that p will contain a complete header block.\n\tif d.saveBuf.Len() == 0 {\n\t\td.buf = p\n\t} else {\n\t\td.saveBuf.Write(p)\n\t\td.buf = d.saveBuf.Bytes()\n\t\td.saveBuf.Reset()\n\t}\n\n\tfor len(d.buf) > 0 {\n\t\terr = d.parseHeaderFieldRepr()\n\t\tif err == errNeedMore {\n\t\t\t// Extra paranoia, making sure saveBuf won't\n\t\t\t// get too large. All the varint and string\n\t\t\t// reading code earlier should already catch\n\t\t\t// overlong things and return ErrStringLength,\n\t\t\t// but keep this as a last resort.\n\t\t\tconst varIntOverhead = 8 // conservative\n\t\t\tif d.maxStrLen != 0 && int64(len(d.buf)) > 2*(int64(d.maxStrLen)+varIntOverhead) {\n\t\t\t\treturn 0, ErrStringLength\n\t\t\t}\n\t\t\td.saveBuf.Write(d.buf)\n\t\t\treturn len(p), nil\n\t\t}\n\t\td.firstField = false\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn len(p), err\n}\n\n// errNeedMore is an internal sentinel error value that means the\n// buffer is truncated and we need to read more data before we can\n// continue parsing.\nvar errNeedMore = errors.New(\"need more data\")\n\ntype indexType int\n\nconst (\n\tindexedTrue indexType = iota\n\tindexedFalse\n\tindexedNever\n)\n\nfunc (v indexType) indexed() bool   { return v == indexedTrue }\nfunc (v indexType) sensitive() bool { return v == indexedNever }\n\n// returns errNeedMore if there isn't enough data available.\n// any other error is fatal.\n// consumes d.buf iff it returns nil.\n// precondition: must be called with len(d.buf) > 0\nfunc (d *Decoder) parseHeaderFieldRepr() error {\n\tb := d.buf[0]\n\tswitch {\n\tcase b&128 != 0:\n\t\t// Indexed representation.\n\t\t// High bit set?\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.1\n\t\treturn d.parseFieldIndexed()\n\tcase b&192 == 64:\n\t\t// 6.2.1 Literal Header Field with Incremental Indexing\n\t\t// 0b10xxxxxx: top two bits are 10\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1\n\t\treturn d.parseFieldLiteral(6, indexedTrue)\n\tcase b&240 == 0:\n\t\t// 6.2.2 Literal Header Field without Indexing\n\t\t// 0b0000xxxx: top four bits are 0000\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2\n\t\treturn d.parseFieldLiteral(4, indexedFalse)\n\tcase b&240 == 16:\n\t\t// 6.2.3 Literal Header Field never Indexed\n\t\t// 0b0001xxxx: top four bits are 0001\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3\n\t\treturn d.parseFieldLiteral(4, indexedNever)\n\tcase b&224 == 32:\n\t\t// 6.3 Dynamic Table Size Update\n\t\t// Top three bits are '001'.\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.3\n\t\treturn d.parseDynamicTableSizeUpdate()\n\t}\n\n\treturn DecodingError{errors.New(\"invalid encoding\")}\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseFieldIndexed() error {\n\tbuf := d.buf\n\tidx, buf, err := readVarInt(7, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\thf, ok := d.at(idx)\n\tif !ok {\n\t\treturn DecodingError{InvalidIndexError(idx)}\n\t}\n\td.buf = buf\n\treturn d.callEmit(HeaderField{Name: hf.Name, Value: hf.Value})\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseFieldLiteral(n uint8, it indexType) error {\n\tbuf := d.buf\n\tnameIdx, buf, err := readVarInt(n, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar hf HeaderField\n\twantStr := d.emitEnabled || it.indexed()\n\tvar undecodedName undecodedString\n\tif nameIdx > 0 {\n\t\tihf, ok := d.at(nameIdx)\n\t\tif !ok {\n\t\t\treturn DecodingError{InvalidIndexError(nameIdx)}\n\t\t}\n\t\thf.Name = ihf.Name\n\t} else {\n\t\tundecodedName, buf, err = d.readString(buf)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tundecodedValue, buf, err := d.readString(buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif wantStr {\n\t\tif nameIdx <= 0 {\n\t\t\thf.Name, err = d.decodeString(undecodedName)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\thf.Value, err = d.decodeString(undecodedValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\td.buf = buf\n\tif it.indexed() {\n\t\td.dynTab.add(hf)\n\t}\n\thf.Sensitive = it.sensitive()\n\treturn d.callEmit(hf)\n}\n\nfunc (d *Decoder) callEmit(hf HeaderField) error {\n\tif d.maxStrLen != 0 {\n\t\tif len(hf.Name) > d.maxStrLen || len(hf.Value) > d.maxStrLen {\n\t\t\treturn ErrStringLength\n\t\t}\n\t}\n\tif d.emitEnabled {\n\t\td.emit(hf)\n\t}\n\treturn nil\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseDynamicTableSizeUpdate() error {\n\t// RFC 7541, sec 4.2: This dynamic table size update MUST occur at the\n\t// beginning of the first header block following the change to the dynamic table size.\n\tif !d.firstField && d.dynTab.size > 0 {\n\t\treturn DecodingError{errors.New(\"dynamic table size update MUST occur at the beginning of a header block\")}\n\t}\n\n\tbuf := d.buf\n\tsize, buf, err := readVarInt(5, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif size > uint64(d.dynTab.allowedMaxSize) {\n\t\treturn DecodingError{errors.New(\"dynamic table size update too large\")}\n\t}\n\td.dynTab.setMaxSize(uint32(size))\n\td.buf = buf\n\treturn nil\n}\n\nvar errVarintOverflow = DecodingError{errors.New(\"varint integer overflow\")}\n\n// readVarInt reads an unsigned variable length integer off the\n// beginning of p. n is the parameter as described in\n// https://httpwg.org/specs/rfc7541.html#rfc.section.5.1.\n//\n// n must always be between 1 and 8.\n//\n// The returned remain buffer is either a smaller suffix of p, or err != nil.\n// The error is errNeedMore if p doesn't contain a complete integer.\nfunc readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) {\n\tif n < 1 || n > 8 {\n\t\tpanic(\"bad n\")\n\t}\n\tif len(p) == 0 {\n\t\treturn 0, p, errNeedMore\n\t}\n\ti = uint64(p[0])\n\tif n < 8 {\n\t\ti &= (1 << uint64(n)) - 1\n\t}\n\tif i < (1<<uint64(n))-1 {\n\t\treturn i, p[1:], nil\n\t}\n\n\torigP := p\n\tp = p[1:]\n\tvar m uint64\n\tfor len(p) > 0 {\n\t\tb := p[0]\n\t\tp = p[1:]\n\t\ti += uint64(b&127) << m\n\t\tif b&128 == 0 {\n\t\t\treturn i, p, nil\n\t\t}\n\t\tm += 7\n\t\tif m >= 63 { // TODO: proper overflow check. making this up.\n\t\t\treturn 0, origP, errVarintOverflow\n\t\t}\n\t}\n\treturn 0, origP, errNeedMore\n}\n\n// readString reads an hpack string from p.\n//\n// It returns a reference to the encoded string data to permit deferring decode costs\n// until after the caller verifies all data is present.\nfunc (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err error) {\n\tif len(p) == 0 {\n\t\treturn u, p, errNeedMore\n\t}\n\tisHuff := p[0]&128 != 0\n\tstrLen, p, err := readVarInt(7, p)\n\tif err != nil {\n\t\treturn u, p, err\n\t}\n\tif d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) {\n\t\t// Returning an error here means Huffman decoding errors\n\t\t// for non-indexed strings past the maximum string length\n\t\t// are ignored, but the server is returning an error anyway\n\t\t// and because the string is not indexed the error will not\n\t\t// affect the decoding state.\n\t\treturn u, nil, ErrStringLength\n\t}\n\tif uint64(len(p)) < strLen {\n\t\treturn u, p, errNeedMore\n\t}\n\tu.isHuff = isHuff\n\tu.b = p[:strLen]\n\treturn u, p[strLen:], nil\n}\n\ntype undecodedString struct {\n\tisHuff bool\n\tb      []byte\n}\n\nfunc (d *Decoder) decodeString(u undecodedString) (string, error) {\n\tif !u.isHuff {\n\t\treturn string(u.b), nil\n\t}\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset() // don't trust others\n\tvar s string\n\terr := huffmanDecode(buf, d.maxStrLen, u.b)\n\tif err == nil {\n\t\ts = buf.String()\n\t}\n\tbuf.Reset() // be nice to GC\n\tbufPool.Put(buf)\n\treturn s, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/huffman.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"sync\"\n)\n\nvar bufPool = sync.Pool{\n\tNew: func() interface{} { return new(bytes.Buffer) },\n}\n\n// HuffmanDecode decodes the string in v and writes the expanded\n// result to w, returning the number of bytes written to w and the\n// Write call's return value. At most one Write call is made.\nfunc HuffmanDecode(w io.Writer, v []byte) (int, error) {\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset()\n\tdefer bufPool.Put(buf)\n\tif err := huffmanDecode(buf, 0, v); err != nil {\n\t\treturn 0, err\n\t}\n\treturn w.Write(buf.Bytes())\n}\n\n// HuffmanDecodeToString decodes the string in v.\nfunc HuffmanDecodeToString(v []byte) (string, error) {\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset()\n\tdefer bufPool.Put(buf)\n\tif err := huffmanDecode(buf, 0, v); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn buf.String(), nil\n}\n\n// ErrInvalidHuffman is returned for errors found decoding\n// Huffman-encoded strings.\nvar ErrInvalidHuffman = errors.New(\"hpack: invalid Huffman-encoded data\")\n\n// huffmanDecode decodes v to buf.\n// If maxLen is greater than 0, attempts to write more to buf than\n// maxLen bytes will return ErrStringLength.\nfunc huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {\n\trootHuffmanNode := getRootHuffmanNode()\n\tn := rootHuffmanNode\n\t// cur is the bit buffer that has not been fed into n.\n\t// cbits is the number of low order bits in cur that are valid.\n\t// sbits is the number of bits of the symbol prefix being decoded.\n\tcur, cbits, sbits := uint(0), uint8(0), uint8(0)\n\tfor _, b := range v {\n\t\tcur = cur<<8 | uint(b)\n\t\tcbits += 8\n\t\tsbits += 8\n\t\tfor cbits >= 8 {\n\t\t\tidx := byte(cur >> (cbits - 8))\n\t\t\tn = n.children[idx]\n\t\t\tif n == nil {\n\t\t\t\treturn ErrInvalidHuffman\n\t\t\t}\n\t\t\tif n.children == nil {\n\t\t\t\tif maxLen != 0 && buf.Len() == maxLen {\n\t\t\t\t\treturn ErrStringLength\n\t\t\t\t}\n\t\t\t\tbuf.WriteByte(n.sym)\n\t\t\t\tcbits -= n.codeLen\n\t\t\t\tn = rootHuffmanNode\n\t\t\t\tsbits = cbits\n\t\t\t} else {\n\t\t\t\tcbits -= 8\n\t\t\t}\n\t\t}\n\t}\n\tfor cbits > 0 {\n\t\tn = n.children[byte(cur<<(8-cbits))]\n\t\tif n == nil {\n\t\t\treturn ErrInvalidHuffman\n\t\t}\n\t\tif n.children != nil || n.codeLen > cbits {\n\t\t\tbreak\n\t\t}\n\t\tif maxLen != 0 && buf.Len() == maxLen {\n\t\t\treturn ErrStringLength\n\t\t}\n\t\tbuf.WriteByte(n.sym)\n\t\tcbits -= n.codeLen\n\t\tn = rootHuffmanNode\n\t\tsbits = cbits\n\t}\n\tif sbits > 7 {\n\t\t// Either there was an incomplete symbol, or overlong padding.\n\t\t// Both are decoding errors per RFC 7541 section 5.2.\n\t\treturn ErrInvalidHuffman\n\t}\n\tif mask := uint(1<<cbits - 1); cur&mask != mask {\n\t\t// Trailing bits must be a prefix of EOS per RFC 7541 section 5.2.\n\t\treturn ErrInvalidHuffman\n\t}\n\n\treturn nil\n}\n\n// incomparable is a zero-width, non-comparable type. Adding it to a struct\n// makes that struct also non-comparable, and generally doesn't add\n// any size (as long as it's first).\ntype incomparable [0]func()\n\ntype node struct {\n\t_ incomparable\n\n\t// children is non-nil for internal nodes\n\tchildren *[256]*node\n\n\t// The following are only valid if children is nil:\n\tcodeLen uint8 // number of bits that led to the output of sym\n\tsym     byte  // output symbol\n}\n\nfunc newInternalNode() *node {\n\treturn &node{children: new([256]*node)}\n}\n\nvar (\n\tbuildRootOnce       sync.Once\n\tlazyRootHuffmanNode *node\n)\n\nfunc getRootHuffmanNode() *node {\n\tbuildRootOnce.Do(buildRootHuffmanNode)\n\treturn lazyRootHuffmanNode\n}\n\nfunc buildRootHuffmanNode() {\n\tif len(huffmanCodes) != 256 {\n\t\tpanic(\"unexpected size\")\n\t}\n\tlazyRootHuffmanNode = newInternalNode()\n\t// allocate a leaf node for each of the 256 symbols\n\tleaves := new([256]node)\n\n\tfor sym, code := range huffmanCodes {\n\t\tcodeLen := huffmanCodeLen[sym]\n\n\t\tcur := lazyRootHuffmanNode\n\t\tfor codeLen > 8 {\n\t\t\tcodeLen -= 8\n\t\t\ti := uint8(code >> codeLen)\n\t\t\tif cur.children[i] == nil {\n\t\t\t\tcur.children[i] = newInternalNode()\n\t\t\t}\n\t\t\tcur = cur.children[i]\n\t\t}\n\t\tshift := 8 - codeLen\n\t\tstart, end := int(uint8(code<<shift)), int(1<<shift)\n\n\t\tleaves[sym].sym = byte(sym)\n\t\tleaves[sym].codeLen = codeLen\n\t\tfor i := start; i < start+end; i++ {\n\t\t\tcur.children[i] = &leaves[sym]\n\t\t}\n\t}\n}\n\n// AppendHuffmanString appends s, as encoded in Huffman codes, to dst\n// and returns the extended buffer.\nfunc AppendHuffmanString(dst []byte, s string) []byte {\n\t// This relies on the maximum huffman code length being 30 (See tables.go huffmanCodeLen array)\n\t// So if a uint64 buffer has less than 32 valid bits can always accommodate another huffmanCode.\n\tvar (\n\t\tx uint64 // buffer\n\t\tn uint   // number valid of bits present in x\n\t)\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tn += uint(huffmanCodeLen[c])\n\t\tx <<= huffmanCodeLen[c] % 64\n\t\tx |= uint64(huffmanCodes[c])\n\t\tif n >= 32 {\n\t\t\tn %= 32             // Normally would be -= 32 but %= 32 informs compiler 0 <= n <= 31 for upcoming shift\n\t\t\ty := uint32(x >> n) // Compiler doesn't combine memory writes if y isn't uint32\n\t\t\tdst = append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y))\n\t\t}\n\t}\n\t// Add padding bits if necessary\n\tif over := n % 8; over > 0 {\n\t\tconst (\n\t\t\teosCode    = 0x3fffffff\n\t\t\teosNBits   = 30\n\t\t\teosPadByte = eosCode >> (eosNBits - 8)\n\t\t)\n\t\tpad := 8 - over\n\t\tx = (x << pad) | (eosPadByte >> over)\n\t\tn += pad // 8 now divides into n exactly\n\t}\n\t// n in (0, 8, 16, 24, 32)\n\tswitch n / 8 {\n\tcase 0:\n\t\treturn dst\n\tcase 1:\n\t\treturn append(dst, byte(x))\n\tcase 2:\n\t\ty := uint16(x)\n\t\treturn append(dst, byte(y>>8), byte(y))\n\tcase 3:\n\t\ty := uint16(x >> 8)\n\t\treturn append(dst, byte(y>>8), byte(y), byte(x))\n\t}\n\t//\tcase 4:\n\ty := uint32(x)\n\treturn append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y))\n}\n\n// HuffmanEncodeLength returns the number of bytes required to encode\n// s in Huffman codes. The result is round up to byte boundary.\nfunc HuffmanEncodeLength(s string) uint64 {\n\tn := uint64(0)\n\tfor i := 0; i < len(s); i++ {\n\t\tn += uint64(huffmanCodeLen[s[i]])\n\t}\n\treturn (n + 7) / 8\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/static_table.go",
    "content": "// go generate gen.go\n// Code generated by the command above; DO NOT EDIT.\n\npackage hpack\n\nvar staticTable = &headerFieldTable{\n\tevictCount: 0,\n\tbyName: map[string]uint64{\n\t\t\":authority\":                  1,\n\t\t\":method\":                     3,\n\t\t\":path\":                       5,\n\t\t\":scheme\":                     7,\n\t\t\":status\":                     14,\n\t\t\"accept-charset\":              15,\n\t\t\"accept-encoding\":             16,\n\t\t\"accept-language\":             17,\n\t\t\"accept-ranges\":               18,\n\t\t\"accept\":                      19,\n\t\t\"access-control-allow-origin\": 20,\n\t\t\"age\":                         21,\n\t\t\"allow\":                       22,\n\t\t\"authorization\":               23,\n\t\t\"cache-control\":               24,\n\t\t\"content-disposition\":         25,\n\t\t\"content-encoding\":            26,\n\t\t\"content-language\":            27,\n\t\t\"content-length\":              28,\n\t\t\"content-location\":            29,\n\t\t\"content-range\":               30,\n\t\t\"content-type\":                31,\n\t\t\"cookie\":                      32,\n\t\t\"date\":                        33,\n\t\t\"etag\":                        34,\n\t\t\"expect\":                      35,\n\t\t\"expires\":                     36,\n\t\t\"from\":                        37,\n\t\t\"host\":                        38,\n\t\t\"if-match\":                    39,\n\t\t\"if-modified-since\":           40,\n\t\t\"if-none-match\":               41,\n\t\t\"if-range\":                    42,\n\t\t\"if-unmodified-since\":         43,\n\t\t\"last-modified\":               44,\n\t\t\"link\":                        45,\n\t\t\"location\":                    46,\n\t\t\"max-forwards\":                47,\n\t\t\"proxy-authenticate\":          48,\n\t\t\"proxy-authorization\":         49,\n\t\t\"range\":                       50,\n\t\t\"referer\":                     51,\n\t\t\"refresh\":                     52,\n\t\t\"retry-after\":                 53,\n\t\t\"server\":                      54,\n\t\t\"set-cookie\":                  55,\n\t\t\"strict-transport-security\":   56,\n\t\t\"transfer-encoding\":           57,\n\t\t\"user-agent\":                  58,\n\t\t\"vary\":                        59,\n\t\t\"via\":                         60,\n\t\t\"www-authenticate\":            61,\n\t},\n\tbyNameValue: map[pairNameValue]uint64{\n\t\t{name: \":authority\", value: \"\"}:                   1,\n\t\t{name: \":method\", value: \"GET\"}:                   2,\n\t\t{name: \":method\", value: \"POST\"}:                  3,\n\t\t{name: \":path\", value: \"/\"}:                       4,\n\t\t{name: \":path\", value: \"/index.html\"}:             5,\n\t\t{name: \":scheme\", value: \"http\"}:                  6,\n\t\t{name: \":scheme\", value: \"https\"}:                 7,\n\t\t{name: \":status\", value: \"200\"}:                   8,\n\t\t{name: \":status\", value: \"204\"}:                   9,\n\t\t{name: \":status\", value: \"206\"}:                   10,\n\t\t{name: \":status\", value: \"304\"}:                   11,\n\t\t{name: \":status\", value: \"400\"}:                   12,\n\t\t{name: \":status\", value: \"404\"}:                   13,\n\t\t{name: \":status\", value: \"500\"}:                   14,\n\t\t{name: \"accept-charset\", value: \"\"}:               15,\n\t\t{name: \"accept-encoding\", value: \"gzip, deflate\"}: 16,\n\t\t{name: \"accept-language\", value: \"\"}:              17,\n\t\t{name: \"accept-ranges\", value: \"\"}:                18,\n\t\t{name: \"accept\", value: \"\"}:                       19,\n\t\t{name: \"access-control-allow-origin\", value: \"\"}:  20,\n\t\t{name: \"age\", value: \"\"}:                          21,\n\t\t{name: \"allow\", value: \"\"}:                        22,\n\t\t{name: \"authorization\", value: \"\"}:                23,\n\t\t{name: \"cache-control\", value: \"\"}:                24,\n\t\t{name: \"content-disposition\", value: \"\"}:          25,\n\t\t{name: \"content-encoding\", value: \"\"}:             26,\n\t\t{name: \"content-language\", value: \"\"}:             27,\n\t\t{name: \"content-length\", value: \"\"}:               28,\n\t\t{name: \"content-location\", value: \"\"}:             29,\n\t\t{name: \"content-range\", value: \"\"}:                30,\n\t\t{name: \"content-type\", value: \"\"}:                 31,\n\t\t{name: \"cookie\", value: \"\"}:                       32,\n\t\t{name: \"date\", value: \"\"}:                         33,\n\t\t{name: \"etag\", value: \"\"}:                         34,\n\t\t{name: \"expect\", value: \"\"}:                       35,\n\t\t{name: \"expires\", value: \"\"}:                      36,\n\t\t{name: \"from\", value: \"\"}:                         37,\n\t\t{name: \"host\", value: \"\"}:                         38,\n\t\t{name: \"if-match\", value: \"\"}:                     39,\n\t\t{name: \"if-modified-since\", value: \"\"}:            40,\n\t\t{name: \"if-none-match\", value: \"\"}:                41,\n\t\t{name: \"if-range\", value: \"\"}:                     42,\n\t\t{name: \"if-unmodified-since\", value: \"\"}:          43,\n\t\t{name: \"last-modified\", value: \"\"}:                44,\n\t\t{name: \"link\", value: \"\"}:                         45,\n\t\t{name: \"location\", value: \"\"}:                     46,\n\t\t{name: \"max-forwards\", value: \"\"}:                 47,\n\t\t{name: \"proxy-authenticate\", value: \"\"}:           48,\n\t\t{name: \"proxy-authorization\", value: \"\"}:          49,\n\t\t{name: \"range\", value: \"\"}:                        50,\n\t\t{name: \"referer\", value: \"\"}:                      51,\n\t\t{name: \"refresh\", value: \"\"}:                      52,\n\t\t{name: \"retry-after\", value: \"\"}:                  53,\n\t\t{name: \"server\", value: \"\"}:                       54,\n\t\t{name: \"set-cookie\", value: \"\"}:                   55,\n\t\t{name: \"strict-transport-security\", value: \"\"}:    56,\n\t\t{name: \"transfer-encoding\", value: \"\"}:            57,\n\t\t{name: \"user-agent\", value: \"\"}:                   58,\n\t\t{name: \"vary\", value: \"\"}:                         59,\n\t\t{name: \"via\", value: \"\"}:                          60,\n\t\t{name: \"www-authenticate\", value: \"\"}:             61,\n\t},\n\tents: []HeaderField{\n\t\t{Name: \":authority\", Value: \"\", Sensitive: false},\n\t\t{Name: \":method\", Value: \"GET\", Sensitive: false},\n\t\t{Name: \":method\", Value: \"POST\", Sensitive: false},\n\t\t{Name: \":path\", Value: \"/\", Sensitive: false},\n\t\t{Name: \":path\", Value: \"/index.html\", Sensitive: false},\n\t\t{Name: \":scheme\", Value: \"http\", Sensitive: false},\n\t\t{Name: \":scheme\", Value: \"https\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"200\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"204\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"206\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"304\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"400\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"404\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"500\", Sensitive: false},\n\t\t{Name: \"accept-charset\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept-encoding\", Value: \"gzip, deflate\", Sensitive: false},\n\t\t{Name: \"accept-language\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept-ranges\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept\", Value: \"\", Sensitive: false},\n\t\t{Name: \"access-control-allow-origin\", Value: \"\", Sensitive: false},\n\t\t{Name: \"age\", Value: \"\", Sensitive: false},\n\t\t{Name: \"allow\", Value: \"\", Sensitive: false},\n\t\t{Name: \"authorization\", Value: \"\", Sensitive: false},\n\t\t{Name: \"cache-control\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-disposition\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-encoding\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-language\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-length\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-location\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-type\", Value: \"\", Sensitive: false},\n\t\t{Name: \"cookie\", Value: \"\", Sensitive: false},\n\t\t{Name: \"date\", Value: \"\", Sensitive: false},\n\t\t{Name: \"etag\", Value: \"\", Sensitive: false},\n\t\t{Name: \"expect\", Value: \"\", Sensitive: false},\n\t\t{Name: \"expires\", Value: \"\", Sensitive: false},\n\t\t{Name: \"from\", Value: \"\", Sensitive: false},\n\t\t{Name: \"host\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-match\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-modified-since\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-none-match\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-unmodified-since\", Value: \"\", Sensitive: false},\n\t\t{Name: \"last-modified\", Value: \"\", Sensitive: false},\n\t\t{Name: \"link\", Value: \"\", Sensitive: false},\n\t\t{Name: \"location\", Value: \"\", Sensitive: false},\n\t\t{Name: \"max-forwards\", Value: \"\", Sensitive: false},\n\t\t{Name: \"proxy-authenticate\", Value: \"\", Sensitive: false},\n\t\t{Name: \"proxy-authorization\", Value: \"\", Sensitive: false},\n\t\t{Name: \"range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"referer\", Value: \"\", Sensitive: false},\n\t\t{Name: \"refresh\", Value: \"\", Sensitive: false},\n\t\t{Name: \"retry-after\", Value: \"\", Sensitive: false},\n\t\t{Name: \"server\", Value: \"\", Sensitive: false},\n\t\t{Name: \"set-cookie\", Value: \"\", Sensitive: false},\n\t\t{Name: \"strict-transport-security\", Value: \"\", Sensitive: false},\n\t\t{Name: \"transfer-encoding\", Value: \"\", Sensitive: false},\n\t\t{Name: \"user-agent\", Value: \"\", Sensitive: false},\n\t\t{Name: \"vary\", Value: \"\", Sensitive: false},\n\t\t{Name: \"via\", Value: \"\", Sensitive: false},\n\t\t{Name: \"www-authenticate\", Value: \"\", Sensitive: false},\n\t},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/tables.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"fmt\"\n)\n\n// headerFieldTable implements a list of HeaderFields.\n// This is used to implement the static and dynamic tables.\ntype headerFieldTable struct {\n\t// For static tables, entries are never evicted.\n\t//\n\t// For dynamic tables, entries are evicted from ents[0] and added to the end.\n\t// Each entry has a unique id that starts at one and increments for each\n\t// entry that is added. This unique id is stable across evictions, meaning\n\t// it can be used as a pointer to a specific entry. As in hpack, unique ids\n\t// are 1-based. The unique id for ents[k] is k + evictCount + 1.\n\t//\n\t// Zero is not a valid unique id.\n\t//\n\t// evictCount should not overflow in any remotely practical situation. In\n\t// practice, we will have one dynamic table per HTTP/2 connection. If we\n\t// assume a very powerful server that handles 1M QPS per connection and each\n\t// request adds (then evicts) 100 entries from the table, it would still take\n\t// 2M years for evictCount to overflow.\n\tents       []HeaderField\n\tevictCount uint64\n\n\t// byName maps a HeaderField name to the unique id of the newest entry with\n\t// the same name. See above for a definition of \"unique id\".\n\tbyName map[string]uint64\n\n\t// byNameValue maps a HeaderField name/value pair to the unique id of the newest\n\t// entry with the same name and value. See above for a definition of \"unique id\".\n\tbyNameValue map[pairNameValue]uint64\n}\n\ntype pairNameValue struct {\n\tname, value string\n}\n\nfunc (t *headerFieldTable) init() {\n\tt.byName = make(map[string]uint64)\n\tt.byNameValue = make(map[pairNameValue]uint64)\n}\n\n// len reports the number of entries in the table.\nfunc (t *headerFieldTable) len() int {\n\treturn len(t.ents)\n}\n\n// addEntry adds a new entry.\nfunc (t *headerFieldTable) addEntry(f HeaderField) {\n\tid := uint64(t.len()) + t.evictCount + 1\n\tt.byName[f.Name] = id\n\tt.byNameValue[pairNameValue{f.Name, f.Value}] = id\n\tt.ents = append(t.ents, f)\n}\n\n// evictOldest evicts the n oldest entries in the table.\nfunc (t *headerFieldTable) evictOldest(n int) {\n\tif n > t.len() {\n\t\tpanic(fmt.Sprintf(\"evictOldest(%v) on table with %v entries\", n, t.len()))\n\t}\n\tfor k := 0; k < n; k++ {\n\t\tf := t.ents[k]\n\t\tid := t.evictCount + uint64(k) + 1\n\t\tif t.byName[f.Name] == id {\n\t\t\tdelete(t.byName, f.Name)\n\t\t}\n\t\tif p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id {\n\t\t\tdelete(t.byNameValue, p)\n\t\t}\n\t}\n\tcopy(t.ents, t.ents[n:])\n\tfor k := t.len() - n; k < t.len(); k++ {\n\t\tt.ents[k] = HeaderField{} // so strings can be garbage collected\n\t}\n\tt.ents = t.ents[:t.len()-n]\n\tif t.evictCount+uint64(n) < t.evictCount {\n\t\tpanic(\"evictCount overflow\")\n\t}\n\tt.evictCount += uint64(n)\n}\n\n// search finds f in the table. If there is no match, i is 0.\n// If both name and value match, i is the matched index and nameValueMatch\n// becomes true. If only name matches, i points to that index and\n// nameValueMatch becomes false.\n//\n// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says\n// that index 1 should be the newest entry, but t.ents[0] is the oldest entry,\n// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic\n// table, the return value i actually refers to the entry t.ents[t.len()-i].\n//\n// All tables are assumed to be a dynamic tables except for the global staticTable.\n//\n// See Section 2.3.3.\nfunc (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) {\n\tif !f.Sensitive {\n\t\tif id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 {\n\t\t\treturn t.idToIndex(id), true\n\t\t}\n\t}\n\tif id := t.byName[f.Name]; id != 0 {\n\t\treturn t.idToIndex(id), false\n\t}\n\treturn 0, false\n}\n\n// idToIndex converts a unique id to an HPACK index.\n// See Section 2.3.3.\nfunc (t *headerFieldTable) idToIndex(id uint64) uint64 {\n\tif id <= t.evictCount {\n\t\tpanic(fmt.Sprintf(\"id (%v) <= evictCount (%v)\", id, t.evictCount))\n\t}\n\tk := id - t.evictCount - 1 // convert id to an index t.ents[k]\n\tif t != staticTable {\n\t\treturn uint64(t.len()) - k // dynamic table\n\t}\n\treturn k + 1\n}\n\nvar huffmanCodes = [256]uint32{\n\t0x1ff8,\n\t0x7fffd8,\n\t0xfffffe2,\n\t0xfffffe3,\n\t0xfffffe4,\n\t0xfffffe5,\n\t0xfffffe6,\n\t0xfffffe7,\n\t0xfffffe8,\n\t0xffffea,\n\t0x3ffffffc,\n\t0xfffffe9,\n\t0xfffffea,\n\t0x3ffffffd,\n\t0xfffffeb,\n\t0xfffffec,\n\t0xfffffed,\n\t0xfffffee,\n\t0xfffffef,\n\t0xffffff0,\n\t0xffffff1,\n\t0xffffff2,\n\t0x3ffffffe,\n\t0xffffff3,\n\t0xffffff4,\n\t0xffffff5,\n\t0xffffff6,\n\t0xffffff7,\n\t0xffffff8,\n\t0xffffff9,\n\t0xffffffa,\n\t0xffffffb,\n\t0x14,\n\t0x3f8,\n\t0x3f9,\n\t0xffa,\n\t0x1ff9,\n\t0x15,\n\t0xf8,\n\t0x7fa,\n\t0x3fa,\n\t0x3fb,\n\t0xf9,\n\t0x7fb,\n\t0xfa,\n\t0x16,\n\t0x17,\n\t0x18,\n\t0x0,\n\t0x1,\n\t0x2,\n\t0x19,\n\t0x1a,\n\t0x1b,\n\t0x1c,\n\t0x1d,\n\t0x1e,\n\t0x1f,\n\t0x5c,\n\t0xfb,\n\t0x7ffc,\n\t0x20,\n\t0xffb,\n\t0x3fc,\n\t0x1ffa,\n\t0x21,\n\t0x5d,\n\t0x5e,\n\t0x5f,\n\t0x60,\n\t0x61,\n\t0x62,\n\t0x63,\n\t0x64,\n\t0x65,\n\t0x66,\n\t0x67,\n\t0x68,\n\t0x69,\n\t0x6a,\n\t0x6b,\n\t0x6c,\n\t0x6d,\n\t0x6e,\n\t0x6f,\n\t0x70,\n\t0x71,\n\t0x72,\n\t0xfc,\n\t0x73,\n\t0xfd,\n\t0x1ffb,\n\t0x7fff0,\n\t0x1ffc,\n\t0x3ffc,\n\t0x22,\n\t0x7ffd,\n\t0x3,\n\t0x23,\n\t0x4,\n\t0x24,\n\t0x5,\n\t0x25,\n\t0x26,\n\t0x27,\n\t0x6,\n\t0x74,\n\t0x75,\n\t0x28,\n\t0x29,\n\t0x2a,\n\t0x7,\n\t0x2b,\n\t0x76,\n\t0x2c,\n\t0x8,\n\t0x9,\n\t0x2d,\n\t0x77,\n\t0x78,\n\t0x79,\n\t0x7a,\n\t0x7b,\n\t0x7ffe,\n\t0x7fc,\n\t0x3ffd,\n\t0x1ffd,\n\t0xffffffc,\n\t0xfffe6,\n\t0x3fffd2,\n\t0xfffe7,\n\t0xfffe8,\n\t0x3fffd3,\n\t0x3fffd4,\n\t0x3fffd5,\n\t0x7fffd9,\n\t0x3fffd6,\n\t0x7fffda,\n\t0x7fffdb,\n\t0x7fffdc,\n\t0x7fffdd,\n\t0x7fffde,\n\t0xffffeb,\n\t0x7fffdf,\n\t0xffffec,\n\t0xffffed,\n\t0x3fffd7,\n\t0x7fffe0,\n\t0xffffee,\n\t0x7fffe1,\n\t0x7fffe2,\n\t0x7fffe3,\n\t0x7fffe4,\n\t0x1fffdc,\n\t0x3fffd8,\n\t0x7fffe5,\n\t0x3fffd9,\n\t0x7fffe6,\n\t0x7fffe7,\n\t0xffffef,\n\t0x3fffda,\n\t0x1fffdd,\n\t0xfffe9,\n\t0x3fffdb,\n\t0x3fffdc,\n\t0x7fffe8,\n\t0x7fffe9,\n\t0x1fffde,\n\t0x7fffea,\n\t0x3fffdd,\n\t0x3fffde,\n\t0xfffff0,\n\t0x1fffdf,\n\t0x3fffdf,\n\t0x7fffeb,\n\t0x7fffec,\n\t0x1fffe0,\n\t0x1fffe1,\n\t0x3fffe0,\n\t0x1fffe2,\n\t0x7fffed,\n\t0x3fffe1,\n\t0x7fffee,\n\t0x7fffef,\n\t0xfffea,\n\t0x3fffe2,\n\t0x3fffe3,\n\t0x3fffe4,\n\t0x7ffff0,\n\t0x3fffe5,\n\t0x3fffe6,\n\t0x7ffff1,\n\t0x3ffffe0,\n\t0x3ffffe1,\n\t0xfffeb,\n\t0x7fff1,\n\t0x3fffe7,\n\t0x7ffff2,\n\t0x3fffe8,\n\t0x1ffffec,\n\t0x3ffffe2,\n\t0x3ffffe3,\n\t0x3ffffe4,\n\t0x7ffffde,\n\t0x7ffffdf,\n\t0x3ffffe5,\n\t0xfffff1,\n\t0x1ffffed,\n\t0x7fff2,\n\t0x1fffe3,\n\t0x3ffffe6,\n\t0x7ffffe0,\n\t0x7ffffe1,\n\t0x3ffffe7,\n\t0x7ffffe2,\n\t0xfffff2,\n\t0x1fffe4,\n\t0x1fffe5,\n\t0x3ffffe8,\n\t0x3ffffe9,\n\t0xffffffd,\n\t0x7ffffe3,\n\t0x7ffffe4,\n\t0x7ffffe5,\n\t0xfffec,\n\t0xfffff3,\n\t0xfffed,\n\t0x1fffe6,\n\t0x3fffe9,\n\t0x1fffe7,\n\t0x1fffe8,\n\t0x7ffff3,\n\t0x3fffea,\n\t0x3fffeb,\n\t0x1ffffee,\n\t0x1ffffef,\n\t0xfffff4,\n\t0xfffff5,\n\t0x3ffffea,\n\t0x7ffff4,\n\t0x3ffffeb,\n\t0x7ffffe6,\n\t0x3ffffec,\n\t0x3ffffed,\n\t0x7ffffe7,\n\t0x7ffffe8,\n\t0x7ffffe9,\n\t0x7ffffea,\n\t0x7ffffeb,\n\t0xffffffe,\n\t0x7ffffec,\n\t0x7ffffed,\n\t0x7ffffee,\n\t0x7ffffef,\n\t0x7fffff0,\n\t0x3ffffee,\n}\n\nvar huffmanCodeLen = [256]uint8{\n\t13, 23, 28, 28, 28, 28, 28, 28, 28, 24, 30, 28, 28, 30, 28, 28,\n\t28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28,\n\t6, 10, 10, 12, 13, 6, 8, 11, 10, 10, 8, 11, 8, 6, 6, 6,\n\t5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 15, 6, 12, 10,\n\t13, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n\t7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 13, 19, 13, 14, 6,\n\t15, 5, 6, 5, 6, 5, 6, 6, 6, 5, 7, 7, 6, 6, 6, 5,\n\t6, 7, 6, 5, 5, 6, 7, 7, 7, 7, 7, 15, 11, 14, 13, 28,\n\t20, 22, 20, 20, 22, 22, 22, 23, 22, 23, 23, 23, 23, 23, 24, 23,\n\t24, 24, 22, 23, 24, 23, 23, 23, 23, 21, 22, 23, 22, 23, 23, 24,\n\t22, 21, 20, 22, 22, 23, 23, 21, 23, 22, 22, 24, 21, 22, 23, 23,\n\t21, 21, 22, 21, 23, 22, 23, 23, 20, 22, 22, 22, 23, 22, 22, 23,\n\t26, 26, 20, 19, 22, 23, 22, 25, 26, 26, 26, 27, 27, 26, 24, 25,\n\t19, 21, 26, 27, 27, 26, 27, 24, 21, 21, 26, 26, 28, 27, 27, 27,\n\t20, 24, 20, 21, 22, 21, 21, 23, 22, 22, 25, 25, 24, 24, 26, 23,\n\t26, 27, 26, 26, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 26,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/http2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package http2 implements the HTTP/2 protocol.\n//\n// This package is low-level and intended to be used directly by very\n// few people. Most users will use it indirectly through the automatic\n// use by the net/http package (from Go 1.6 and later).\n// For use in earlier Go versions see ConfigureServer. (Transport support\n// requires Go 1.6 or later)\n//\n// See https://http2.github.io/ for more information on HTTP/2.\npackage http2 // import \"golang.org/x/net/http2\"\n\nimport (\n\t\"bufio\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n)\n\nvar (\n\tVerboseLogs    bool\n\tlogFrameWrites bool\n\tlogFrameReads  bool\n\n\t// Enabling extended CONNECT by causes browsers to attempt to use\n\t// WebSockets-over-HTTP/2. This results in problems when the server's websocket\n\t// package doesn't support extended CONNECT.\n\t//\n\t// Disable extended CONNECT by default for now.\n\t//\n\t// Issue #71128.\n\tdisableExtendedConnectProtocol = true\n)\n\nfunc init() {\n\te := os.Getenv(\"GODEBUG\")\n\tif strings.Contains(e, \"http2debug=1\") {\n\t\tVerboseLogs = true\n\t}\n\tif strings.Contains(e, \"http2debug=2\") {\n\t\tVerboseLogs = true\n\t\tlogFrameWrites = true\n\t\tlogFrameReads = true\n\t}\n\tif strings.Contains(e, \"http2xconnect=1\") {\n\t\tdisableExtendedConnectProtocol = false\n\t}\n}\n\nconst (\n\t// ClientPreface is the string that must be sent by new\n\t// connections from clients.\n\tClientPreface = \"PRI * HTTP/2.0\\r\\n\\r\\nSM\\r\\n\\r\\n\"\n\n\t// SETTINGS_MAX_FRAME_SIZE default\n\t// https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2\n\tinitialMaxFrameSize = 16384\n\n\t// NextProtoTLS is the NPN/ALPN protocol negotiated during\n\t// HTTP/2's TLS setup.\n\tNextProtoTLS = \"h2\"\n\n\t// https://httpwg.org/specs/rfc7540.html#SettingValues\n\tinitialHeaderTableSize = 4096\n\n\tinitialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size\n\n\tdefaultMaxReadFrameSize = 1 << 20\n)\n\nvar (\n\tclientPreface = []byte(ClientPreface)\n)\n\ntype streamState int\n\n// HTTP/2 stream states.\n//\n// See http://tools.ietf.org/html/rfc7540#section-5.1.\n//\n// For simplicity, the server code merges \"reserved (local)\" into\n// \"half-closed (remote)\". This is one less state transition to track.\n// The only downside is that we send PUSH_PROMISEs slightly less\n// liberally than allowable. More discussion here:\n// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html\n//\n// \"reserved (remote)\" is omitted since the client code does not\n// support server push.\nconst (\n\tstateIdle streamState = iota\n\tstateOpen\n\tstateHalfClosedLocal\n\tstateHalfClosedRemote\n\tstateClosed\n)\n\nvar stateName = [...]string{\n\tstateIdle:             \"Idle\",\n\tstateOpen:             \"Open\",\n\tstateHalfClosedLocal:  \"HalfClosedLocal\",\n\tstateHalfClosedRemote: \"HalfClosedRemote\",\n\tstateClosed:           \"Closed\",\n}\n\nfunc (st streamState) String() string {\n\treturn stateName[st]\n}\n\n// Setting is a setting parameter: which setting it is, and its value.\ntype Setting struct {\n\t// ID is which setting is being set.\n\t// See https://httpwg.org/specs/rfc7540.html#SettingFormat\n\tID SettingID\n\n\t// Val is the value.\n\tVal uint32\n}\n\nfunc (s Setting) String() string {\n\treturn fmt.Sprintf(\"[%v = %d]\", s.ID, s.Val)\n}\n\n// Valid reports whether the setting is valid.\nfunc (s Setting) Valid() error {\n\t// Limits and error codes from 6.5.2 Defined SETTINGS Parameters\n\tswitch s.ID {\n\tcase SettingEnablePush:\n\t\tif s.Val != 1 && s.Val != 0 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\tcase SettingInitialWindowSize:\n\t\tif s.Val > 1<<31-1 {\n\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t}\n\tcase SettingMaxFrameSize:\n\t\tif s.Val < 16384 || s.Val > 1<<24-1 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\tcase SettingEnableConnectProtocol:\n\t\tif s.Val != 1 && s.Val != 0 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\t}\n\treturn nil\n}\n\n// A SettingID is an HTTP/2 setting as defined in\n// https://httpwg.org/specs/rfc7540.html#iana-settings\ntype SettingID uint16\n\nconst (\n\tSettingHeaderTableSize       SettingID = 0x1\n\tSettingEnablePush            SettingID = 0x2\n\tSettingMaxConcurrentStreams  SettingID = 0x3\n\tSettingInitialWindowSize     SettingID = 0x4\n\tSettingMaxFrameSize          SettingID = 0x5\n\tSettingMaxHeaderListSize     SettingID = 0x6\n\tSettingEnableConnectProtocol SettingID = 0x8\n)\n\nvar settingName = map[SettingID]string{\n\tSettingHeaderTableSize:       \"HEADER_TABLE_SIZE\",\n\tSettingEnablePush:            \"ENABLE_PUSH\",\n\tSettingMaxConcurrentStreams:  \"MAX_CONCURRENT_STREAMS\",\n\tSettingInitialWindowSize:     \"INITIAL_WINDOW_SIZE\",\n\tSettingMaxFrameSize:          \"MAX_FRAME_SIZE\",\n\tSettingMaxHeaderListSize:     \"MAX_HEADER_LIST_SIZE\",\n\tSettingEnableConnectProtocol: \"ENABLE_CONNECT_PROTOCOL\",\n}\n\nfunc (s SettingID) String() string {\n\tif v, ok := settingName[s]; ok {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"UNKNOWN_SETTING_%d\", uint16(s))\n}\n\n// validWireHeaderFieldName reports whether v is a valid header field\n// name (key). See httpguts.ValidHeaderName for the base rules.\n//\n// Further, http2 says:\n//\n//\t\"Just as in HTTP/1.x, header field names are strings of ASCII\n//\tcharacters that are compared in a case-insensitive\n//\tfashion. However, header field names MUST be converted to\n//\tlowercase prior to their encoding in HTTP/2. \"\nfunc validWireHeaderFieldName(v string) bool {\n\tif len(v) == 0 {\n\t\treturn false\n\t}\n\tfor _, r := range v {\n\t\tif !httpguts.IsTokenRune(r) {\n\t\t\treturn false\n\t\t}\n\t\tif 'A' <= r && r <= 'Z' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc httpCodeString(code int) string {\n\tswitch code {\n\tcase 200:\n\t\treturn \"200\"\n\tcase 404:\n\t\treturn \"404\"\n\t}\n\treturn strconv.Itoa(code)\n}\n\n// from pkg io\ntype stringWriter interface {\n\tWriteString(s string) (n int, err error)\n}\n\n// A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed).\ntype closeWaiter chan struct{}\n\n// Init makes a closeWaiter usable.\n// It exists because so a closeWaiter value can be placed inside a\n// larger struct and have the Mutex and Cond's memory in the same\n// allocation.\nfunc (cw *closeWaiter) Init() {\n\t*cw = make(chan struct{})\n}\n\n// Close marks the closeWaiter as closed and unblocks any waiters.\nfunc (cw closeWaiter) Close() {\n\tclose(cw)\n}\n\n// Wait waits for the closeWaiter to become closed.\nfunc (cw closeWaiter) Wait() {\n\t<-cw\n}\n\n// bufferedWriter is a buffered writer that writes to w.\n// Its buffered writer is lazily allocated as needed, to minimize\n// idle memory usage with many connections.\ntype bufferedWriter struct {\n\t_           incomparable\n\tconn        net.Conn      // immutable\n\tbw          *bufio.Writer // non-nil when data is buffered\n\tbyteTimeout time.Duration // immutable, WriteByteTimeout\n}\n\nfunc newBufferedWriter(conn net.Conn, timeout time.Duration) *bufferedWriter {\n\treturn &bufferedWriter{\n\t\tconn:        conn,\n\t\tbyteTimeout: timeout,\n\t}\n}\n\n// bufWriterPoolBufferSize is the size of bufio.Writer's\n// buffers created using bufWriterPool.\n//\n// TODO: pick a less arbitrary value? this is a bit under\n// (3 x typical 1500 byte MTU) at least. Other than that,\n// not much thought went into it.\nconst bufWriterPoolBufferSize = 4 << 10\n\nvar bufWriterPool = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn bufio.NewWriterSize(nil, bufWriterPoolBufferSize)\n\t},\n}\n\nfunc (w *bufferedWriter) Available() int {\n\tif w.bw == nil {\n\t\treturn bufWriterPoolBufferSize\n\t}\n\treturn w.bw.Available()\n}\n\nfunc (w *bufferedWriter) Write(p []byte) (n int, err error) {\n\tif w.bw == nil {\n\t\tbw := bufWriterPool.Get().(*bufio.Writer)\n\t\tbw.Reset((*bufferedWriterTimeoutWriter)(w))\n\t\tw.bw = bw\n\t}\n\treturn w.bw.Write(p)\n}\n\nfunc (w *bufferedWriter) Flush() error {\n\tbw := w.bw\n\tif bw == nil {\n\t\treturn nil\n\t}\n\terr := bw.Flush()\n\tbw.Reset(nil)\n\tbufWriterPool.Put(bw)\n\tw.bw = nil\n\treturn err\n}\n\ntype bufferedWriterTimeoutWriter bufferedWriter\n\nfunc (w *bufferedWriterTimeoutWriter) Write(p []byte) (n int, err error) {\n\treturn writeWithByteTimeout(w.conn, w.byteTimeout, p)\n}\n\n// writeWithByteTimeout writes to conn.\n// If more than timeout passes without any bytes being written to the connection,\n// the write fails.\nfunc writeWithByteTimeout(conn net.Conn, timeout time.Duration, p []byte) (n int, err error) {\n\tif timeout <= 0 {\n\t\treturn conn.Write(p)\n\t}\n\tfor {\n\t\tconn.SetWriteDeadline(time.Now().Add(timeout))\n\t\tnn, err := conn.Write(p[n:])\n\t\tn += nn\n\t\tif n == len(p) || nn == 0 || !errors.Is(err, os.ErrDeadlineExceeded) {\n\t\t\t// Either we finished the write, made no progress, or hit the deadline.\n\t\t\t// Whichever it is, we're done now.\n\t\t\tconn.SetWriteDeadline(time.Time{})\n\t\t\treturn n, err\n\t\t}\n\t}\n}\n\nfunc mustUint31(v int32) uint32 {\n\tif v < 0 || v > 2147483647 {\n\t\tpanic(\"out of range\")\n\t}\n\treturn uint32(v)\n}\n\n// bodyAllowedForStatus reports whether a given response status code\n// permits a body. See RFC 7230, section 3.3.\nfunc bodyAllowedForStatus(status int) bool {\n\tswitch {\n\tcase status >= 100 && status <= 199:\n\t\treturn false\n\tcase status == 204:\n\t\treturn false\n\tcase status == 304:\n\t\treturn false\n\t}\n\treturn true\n}\n\ntype httpError struct {\n\t_       incomparable\n\tmsg     string\n\ttimeout bool\n}\n\nfunc (e *httpError) Error() string   { return e.msg }\nfunc (e *httpError) Timeout() bool   { return e.timeout }\nfunc (e *httpError) Temporary() bool { return true }\n\nvar errTimeout error = &httpError{msg: \"http2: timeout awaiting response headers\", timeout: true}\n\ntype connectionStater interface {\n\tConnectionState() tls.ConnectionState\n}\n\nvar sorterPool = sync.Pool{New: func() interface{} { return new(sorter) }}\n\ntype sorter struct {\n\tv []string // owned by sorter\n}\n\nfunc (s *sorter) Len() int           { return len(s.v) }\nfunc (s *sorter) Swap(i, j int)      { s.v[i], s.v[j] = s.v[j], s.v[i] }\nfunc (s *sorter) Less(i, j int) bool { return s.v[i] < s.v[j] }\n\n// Keys returns the sorted keys of h.\n//\n// The returned slice is only valid until s used again or returned to\n// its pool.\nfunc (s *sorter) Keys(h http.Header) []string {\n\tkeys := s.v[:0]\n\tfor k := range h {\n\t\tkeys = append(keys, k)\n\t}\n\ts.v = keys\n\tsort.Sort(s)\n\treturn keys\n}\n\nfunc (s *sorter) SortStrings(ss []string) {\n\t// Our sorter works on s.v, which sorter owns, so\n\t// stash it away while we sort the user's buffer.\n\tsave := s.v\n\ts.v = ss\n\tsort.Sort(s)\n\ts.v = save\n}\n\n// incomparable is a zero-width, non-comparable type. Adding it to a struct\n// makes that struct also non-comparable, and generally doesn't add\n// any size (as long as it's first).\ntype incomparable [0]func()\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/pipe.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"sync\"\n)\n\n// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like\n// io.Pipe except there are no PipeReader/PipeWriter halves, and the\n// underlying buffer is an interface. (io.Pipe is always unbuffered)\ntype pipe struct {\n\tmu       sync.Mutex\n\tc        sync.Cond     // c.L lazily initialized to &p.mu\n\tb        pipeBuffer    // nil when done reading\n\tunread   int           // bytes unread when done\n\terr      error         // read error once empty. non-nil means closed.\n\tbreakErr error         // immediate read error (caller doesn't see rest of b)\n\tdonec    chan struct{} // closed on error\n\treadFn   func()        // optional code to run in Read before error\n}\n\ntype pipeBuffer interface {\n\tLen() int\n\tio.Writer\n\tio.Reader\n}\n\n// setBuffer initializes the pipe buffer.\n// It has no effect if the pipe is already closed.\nfunc (p *pipe) setBuffer(b pipeBuffer) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.err != nil || p.breakErr != nil {\n\t\treturn\n\t}\n\tp.b = b\n}\n\nfunc (p *pipe) Len() int {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.b == nil {\n\t\treturn p.unread\n\t}\n\treturn p.b.Len()\n}\n\n// Read waits until data is available and copies bytes\n// from the buffer into p.\nfunc (p *pipe) Read(d []byte) (n int, err error) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tfor {\n\t\tif p.breakErr != nil {\n\t\t\treturn 0, p.breakErr\n\t\t}\n\t\tif p.b != nil && p.b.Len() > 0 {\n\t\t\treturn p.b.Read(d)\n\t\t}\n\t\tif p.err != nil {\n\t\t\tif p.readFn != nil {\n\t\t\t\tp.readFn()     // e.g. copy trailers\n\t\t\t\tp.readFn = nil // not sticky like p.err\n\t\t\t}\n\t\t\tp.b = nil\n\t\t\treturn 0, p.err\n\t\t}\n\t\tp.c.Wait()\n\t}\n}\n\nvar (\n\terrClosedPipeWrite        = errors.New(\"write on closed buffer\")\n\terrUninitializedPipeWrite = errors.New(\"write on uninitialized buffer\")\n)\n\n// Write copies bytes from p into the buffer and wakes a reader.\n// It is an error to write more data than the buffer can hold.\nfunc (p *pipe) Write(d []byte) (n int, err error) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tdefer p.c.Signal()\n\tif p.err != nil || p.breakErr != nil {\n\t\treturn 0, errClosedPipeWrite\n\t}\n\t// pipe.setBuffer is never invoked, leaving the buffer uninitialized.\n\t// We shouldn't try to write to an uninitialized pipe,\n\t// but returning an error is better than panicking.\n\tif p.b == nil {\n\t\treturn 0, errUninitializedPipeWrite\n\t}\n\treturn p.b.Write(d)\n}\n\n// CloseWithError causes the next Read (waking up a current blocked\n// Read if needed) to return the provided err after all data has been\n// read.\n//\n// The error must be non-nil.\nfunc (p *pipe) CloseWithError(err error) { p.closeWithError(&p.err, err, nil) }\n\n// BreakWithError causes the next Read (waking up a current blocked\n// Read if needed) to return the provided err immediately, without\n// waiting for unread data.\nfunc (p *pipe) BreakWithError(err error) { p.closeWithError(&p.breakErr, err, nil) }\n\n// closeWithErrorAndCode is like CloseWithError but also sets some code to run\n// in the caller's goroutine before returning the error.\nfunc (p *pipe) closeWithErrorAndCode(err error, fn func()) { p.closeWithError(&p.err, err, fn) }\n\nfunc (p *pipe) closeWithError(dst *error, err error, fn func()) {\n\tif err == nil {\n\t\tpanic(\"err must be non-nil\")\n\t}\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tdefer p.c.Signal()\n\tif *dst != nil {\n\t\t// Already been done.\n\t\treturn\n\t}\n\tp.readFn = fn\n\tif dst == &p.breakErr {\n\t\tif p.b != nil {\n\t\t\tp.unread += p.b.Len()\n\t\t}\n\t\tp.b = nil\n\t}\n\t*dst = err\n\tp.closeDoneLocked()\n}\n\n// requires p.mu be held.\nfunc (p *pipe) closeDoneLocked() {\n\tif p.donec == nil {\n\t\treturn\n\t}\n\t// Close if unclosed. This isn't racy since we always\n\t// hold p.mu while closing.\n\tselect {\n\tcase <-p.donec:\n\tdefault:\n\t\tclose(p.donec)\n\t}\n}\n\n// Err returns the error (if any) first set by BreakWithError or CloseWithError.\nfunc (p *pipe) Err() error {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.breakErr != nil {\n\t\treturn p.breakErr\n\t}\n\treturn p.err\n}\n\n// Done returns a channel which is closed if and when this pipe is closed\n// with CloseWithError.\nfunc (p *pipe) Done() <-chan struct{} {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.donec == nil {\n\t\tp.donec = make(chan struct{})\n\t\tif p.err != nil || p.breakErr != nil {\n\t\t\t// Already hit an error.\n\t\t\tp.closeDoneLocked()\n\t\t}\n\t}\n\treturn p.donec\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/server.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// TODO: turn off the serve goroutine when idle, so\n// an idle conn only has the readFrames goroutine active. (which could\n// also be optimized probably to pin less memory in crypto/tls). This\n// would involve tracking when the serve goroutine is active (atomic\n// int32 read/CAS probably?) and starting it up when frames arrive,\n// and shutting it down when all handlers exit. the occasional PING\n// packets could use time.AfterFunc to call sc.wakeStartServeLoop()\n// (which is a no-op if already running) and then queue the PING write\n// as normal. The serve loop would then exit in most cases (if no\n// Handlers running) and not be woken up again until the PING packet\n// returns.\n\n// TODO (maybe): add a mechanism for Handlers to going into\n// half-closed-local mode (rw.(io.Closer) test?) but not exit their\n// handler, and continue to be able to read from the\n// Request.Body. This would be a somewhat semantic change from HTTP/1\n// (or at least what we expose in net/http), so I'd probably want to\n// add it there too. For now, this package says that returning from\n// the Handler ServeHTTP function means you're both done reading and\n// done writing, without a way to stop just one or the other.\n\npackage http2\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"crypto/rand\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/textproto\"\n\t\"net/url\"\n\t\"os\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\nconst (\n\tprefaceTimeout        = 10 * time.Second\n\tfirstSettingsTimeout  = 2 * time.Second // should be in-flight with preface anyway\n\thandlerChunkWriteSize = 4 << 10\n\tdefaultMaxStreams     = 250 // TODO: make this 100 as the GFE seems to?\n\n\t// maxQueuedControlFrames is the maximum number of control frames like\n\t// SETTINGS, PING and RST_STREAM that will be queued for writing before\n\t// the connection is closed to prevent memory exhaustion attacks.\n\tmaxQueuedControlFrames = 10000\n)\n\nvar (\n\terrClientDisconnected = errors.New(\"client disconnected\")\n\terrClosedBody         = errors.New(\"body closed by handler\")\n\terrHandlerComplete    = errors.New(\"http2: request body closed due to handler exiting\")\n\terrStreamClosed       = errors.New(\"http2: stream closed\")\n)\n\nvar responseWriterStatePool = sync.Pool{\n\tNew: func() interface{} {\n\t\trws := &responseWriterState{}\n\t\trws.bw = bufio.NewWriterSize(chunkWriter{rws}, handlerChunkWriteSize)\n\t\treturn rws\n\t},\n}\n\n// Test hooks.\nvar (\n\ttestHookOnConn        func()\n\ttestHookGetServerConn func(*serverConn)\n\ttestHookOnPanicMu     *sync.Mutex // nil except in tests\n\ttestHookOnPanic       func(sc *serverConn, panicVal interface{}) (rePanic bool)\n)\n\n// Server is an HTTP/2 server.\ntype Server struct {\n\t// MaxHandlers limits the number of http.Handler ServeHTTP goroutines\n\t// which may run at a time over all connections.\n\t// Negative or zero no limit.\n\t// TODO: implement\n\tMaxHandlers int\n\n\t// MaxConcurrentStreams optionally specifies the number of\n\t// concurrent streams that each client may have open at a\n\t// time. This is unrelated to the number of http.Handler goroutines\n\t// which may be active globally, which is MaxHandlers.\n\t// If zero, MaxConcurrentStreams defaults to at least 100, per\n\t// the HTTP/2 spec's recommendations.\n\tMaxConcurrentStreams uint32\n\n\t// MaxDecoderHeaderTableSize optionally specifies the http2\n\t// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It\n\t// informs the remote endpoint of the maximum size of the header compression\n\t// table used to decode header blocks, in octets. If zero, the default value\n\t// of 4096 is used.\n\tMaxDecoderHeaderTableSize uint32\n\n\t// MaxEncoderHeaderTableSize optionally specifies an upper limit for the\n\t// header compression table used for encoding request headers. Received\n\t// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,\n\t// the default value of 4096 is used.\n\tMaxEncoderHeaderTableSize uint32\n\n\t// MaxReadFrameSize optionally specifies the largest frame\n\t// this server is willing to read. A valid value is between\n\t// 16k and 16M, inclusive. If zero or otherwise invalid, a\n\t// default value is used.\n\tMaxReadFrameSize uint32\n\n\t// PermitProhibitedCipherSuites, if true, permits the use of\n\t// cipher suites prohibited by the HTTP/2 spec.\n\tPermitProhibitedCipherSuites bool\n\n\t// IdleTimeout specifies how long until idle clients should be\n\t// closed with a GOAWAY frame. PING frames are not considered\n\t// activity for the purposes of IdleTimeout.\n\t// If zero or negative, there is no timeout.\n\tIdleTimeout time.Duration\n\n\t// ReadIdleTimeout is the timeout after which a health check using a ping\n\t// frame will be carried out if no frame is received on the connection.\n\t// If zero, no health check is performed.\n\tReadIdleTimeout time.Duration\n\n\t// PingTimeout is the timeout after which the connection will be closed\n\t// if a response to a ping is not received.\n\t// If zero, a default of 15 seconds is used.\n\tPingTimeout time.Duration\n\n\t// WriteByteTimeout is the timeout after which a connection will be\n\t// closed if no data can be written to it. The timeout begins when data is\n\t// available to write, and is extended whenever any bytes are written.\n\t// If zero or negative, there is no timeout.\n\tWriteByteTimeout time.Duration\n\n\t// MaxUploadBufferPerConnection is the size of the initial flow\n\t// control window for each connections. The HTTP/2 spec does not\n\t// allow this to be smaller than 65535 or larger than 2^32-1.\n\t// If the value is outside this range, a default value will be\n\t// used instead.\n\tMaxUploadBufferPerConnection int32\n\n\t// MaxUploadBufferPerStream is the size of the initial flow control\n\t// window for each stream. The HTTP/2 spec does not allow this to\n\t// be larger than 2^32-1. If the value is zero or larger than the\n\t// maximum, a default value will be used instead.\n\tMaxUploadBufferPerStream int32\n\n\t// NewWriteScheduler constructs a write scheduler for a connection.\n\t// If nil, a default scheduler is chosen.\n\tNewWriteScheduler func() WriteScheduler\n\n\t// CountError, if non-nil, is called on HTTP/2 server errors.\n\t// It's intended to increment a metric for monitoring, such\n\t// as an expvar or Prometheus metric.\n\t// The errType consists of only ASCII word characters.\n\tCountError func(errType string)\n\n\t// Internal state. This is a pointer (rather than embedded directly)\n\t// so that we don't embed a Mutex in this struct, which will make the\n\t// struct non-copyable, which might break some callers.\n\tstate *serverInternalState\n}\n\ntype serverInternalState struct {\n\tmu          sync.Mutex\n\tactiveConns map[*serverConn]struct{}\n\n\t// Pool of error channels. This is per-Server rather than global\n\t// because channels can't be reused across synctest bubbles.\n\terrChanPool sync.Pool\n}\n\nfunc (s *serverInternalState) registerConn(sc *serverConn) {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\ts.activeConns[sc] = struct{}{}\n\ts.mu.Unlock()\n}\n\nfunc (s *serverInternalState) unregisterConn(sc *serverConn) {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\tdelete(s.activeConns, sc)\n\ts.mu.Unlock()\n}\n\nfunc (s *serverInternalState) startGracefulShutdown() {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\tfor sc := range s.activeConns {\n\t\tsc.startGracefulShutdown()\n\t}\n\ts.mu.Unlock()\n}\n\n// Global error channel pool used for uninitialized Servers.\n// We use a per-Server pool when possible to avoid using channels across synctest bubbles.\nvar errChanPool = sync.Pool{\n\tNew: func() any { return make(chan error, 1) },\n}\n\nfunc (s *serverInternalState) getErrChan() chan error {\n\tif s == nil {\n\t\treturn errChanPool.Get().(chan error) // Server used without calling ConfigureServer\n\t}\n\treturn s.errChanPool.Get().(chan error)\n}\n\nfunc (s *serverInternalState) putErrChan(ch chan error) {\n\tif s == nil {\n\t\terrChanPool.Put(ch) // Server used without calling ConfigureServer\n\t\treturn\n\t}\n\ts.errChanPool.Put(ch)\n}\n\n// ConfigureServer adds HTTP/2 support to a net/http Server.\n//\n// The configuration conf may be nil.\n//\n// ConfigureServer must be called before s begins serving.\nfunc ConfigureServer(s *http.Server, conf *Server) error {\n\tif s == nil {\n\t\tpanic(\"nil *http.Server\")\n\t}\n\tif conf == nil {\n\t\tconf = new(Server)\n\t}\n\tconf.state = &serverInternalState{\n\t\tactiveConns: make(map[*serverConn]struct{}),\n\t\terrChanPool: sync.Pool{New: func() any { return make(chan error, 1) }},\n\t}\n\tif h1, h2 := s, conf; h2.IdleTimeout == 0 {\n\t\tif h1.IdleTimeout != 0 {\n\t\t\th2.IdleTimeout = h1.IdleTimeout\n\t\t} else {\n\t\t\th2.IdleTimeout = h1.ReadTimeout\n\t\t}\n\t}\n\ts.RegisterOnShutdown(conf.state.startGracefulShutdown)\n\n\tif s.TLSConfig == nil {\n\t\ts.TLSConfig = new(tls.Config)\n\t} else if s.TLSConfig.CipherSuites != nil && s.TLSConfig.MinVersion < tls.VersionTLS13 {\n\t\t// If they already provided a TLS 1.0–1.2 CipherSuite list, return an\n\t\t// error if it is missing ECDHE_RSA_WITH_AES_128_GCM_SHA256 or\n\t\t// ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.\n\t\thaveRequired := false\n\t\tfor _, cs := range s.TLSConfig.CipherSuites {\n\t\t\tswitch cs {\n\t\t\tcase tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,\n\t\t\t\t// Alternative MTI cipher to not discourage ECDSA-only servers.\n\t\t\t\t// See http://golang.org/cl/30721 for further information.\n\t\t\t\ttls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:\n\t\t\t\thaveRequired = true\n\t\t\t}\n\t\t}\n\t\tif !haveRequired {\n\t\t\treturn fmt.Errorf(\"http2: TLSConfig.CipherSuites is missing an HTTP/2-required AES_128_GCM_SHA256 cipher (need at least one of TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 or TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)\")\n\t\t}\n\t}\n\n\t// Note: not setting MinVersion to tls.VersionTLS12,\n\t// as we don't want to interfere with HTTP/1.1 traffic\n\t// on the user's server. We enforce TLS 1.2 later once\n\t// we accept a connection. Ideally this should be done\n\t// during next-proto selection, but using TLS <1.2 with\n\t// HTTP/2 is still the client's bug.\n\n\ts.TLSConfig.PreferServerCipherSuites = true\n\n\tif !strSliceContains(s.TLSConfig.NextProtos, NextProtoTLS) {\n\t\ts.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS)\n\t}\n\tif !strSliceContains(s.TLSConfig.NextProtos, \"http/1.1\") {\n\t\ts.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, \"http/1.1\")\n\t}\n\n\tif s.TLSNextProto == nil {\n\t\ts.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){}\n\t}\n\tprotoHandler := func(hs *http.Server, c net.Conn, h http.Handler, sawClientPreface bool) {\n\t\tif testHookOnConn != nil {\n\t\t\ttestHookOnConn()\n\t\t}\n\t\t// The TLSNextProto interface predates contexts, so\n\t\t// the net/http package passes down its per-connection\n\t\t// base context via an exported but unadvertised\n\t\t// method on the Handler. This is for internal\n\t\t// net/http<=>http2 use only.\n\t\tvar ctx context.Context\n\t\ttype baseContexter interface {\n\t\t\tBaseContext() context.Context\n\t\t}\n\t\tif bc, ok := h.(baseContexter); ok {\n\t\t\tctx = bc.BaseContext()\n\t\t}\n\t\tconf.ServeConn(c, &ServeConnOpts{\n\t\t\tContext:          ctx,\n\t\t\tHandler:          h,\n\t\t\tBaseConfig:       hs,\n\t\t\tSawClientPreface: sawClientPreface,\n\t\t})\n\t}\n\ts.TLSNextProto[NextProtoTLS] = func(hs *http.Server, c *tls.Conn, h http.Handler) {\n\t\tprotoHandler(hs, c, h, false)\n\t}\n\t// The \"unencrypted_http2\" TLSNextProto key is used to pass off non-TLS HTTP/2 conns.\n\t//\n\t// A connection passed in this method has already had the HTTP/2 preface read from it.\n\ts.TLSNextProto[nextProtoUnencryptedHTTP2] = func(hs *http.Server, c *tls.Conn, h http.Handler) {\n\t\tnc, err := unencryptedNetConnFromTLSConn(c)\n\t\tif err != nil {\n\t\t\tif lg := hs.ErrorLog; lg != nil {\n\t\t\t\tlg.Print(err)\n\t\t\t} else {\n\t\t\t\tlog.Print(err)\n\t\t\t}\n\t\t\tgo c.Close()\n\t\t\treturn\n\t\t}\n\t\tprotoHandler(hs, nc, h, true)\n\t}\n\treturn nil\n}\n\n// ServeConnOpts are options for the Server.ServeConn method.\ntype ServeConnOpts struct {\n\t// Context is the base context to use.\n\t// If nil, context.Background is used.\n\tContext context.Context\n\n\t// BaseConfig optionally sets the base configuration\n\t// for values. If nil, defaults are used.\n\tBaseConfig *http.Server\n\n\t// Handler specifies which handler to use for processing\n\t// requests. If nil, BaseConfig.Handler is used. If BaseConfig\n\t// or BaseConfig.Handler is nil, http.DefaultServeMux is used.\n\tHandler http.Handler\n\n\t// UpgradeRequest is an initial request received on a connection\n\t// undergoing an h2c upgrade. The request body must have been\n\t// completely read from the connection before calling ServeConn,\n\t// and the 101 Switching Protocols response written.\n\tUpgradeRequest *http.Request\n\n\t// Settings is the decoded contents of the HTTP2-Settings header\n\t// in an h2c upgrade request.\n\tSettings []byte\n\n\t// SawClientPreface is set if the HTTP/2 connection preface\n\t// has already been read from the connection.\n\tSawClientPreface bool\n}\n\nfunc (o *ServeConnOpts) context() context.Context {\n\tif o != nil && o.Context != nil {\n\t\treturn o.Context\n\t}\n\treturn context.Background()\n}\n\nfunc (o *ServeConnOpts) baseConfig() *http.Server {\n\tif o != nil && o.BaseConfig != nil {\n\t\treturn o.BaseConfig\n\t}\n\treturn new(http.Server)\n}\n\nfunc (o *ServeConnOpts) handler() http.Handler {\n\tif o != nil {\n\t\tif o.Handler != nil {\n\t\t\treturn o.Handler\n\t\t}\n\t\tif o.BaseConfig != nil && o.BaseConfig.Handler != nil {\n\t\t\treturn o.BaseConfig.Handler\n\t\t}\n\t}\n\treturn http.DefaultServeMux\n}\n\n// ServeConn serves HTTP/2 requests on the provided connection and\n// blocks until the connection is no longer readable.\n//\n// ServeConn starts speaking HTTP/2 assuming that c has not had any\n// reads or writes. It writes its initial settings frame and expects\n// to be able to read the preface and settings frame from the\n// client. If c has a ConnectionState method like a *tls.Conn, the\n// ConnectionState is used to verify the TLS ciphersuite and to set\n// the Request.TLS field in Handlers.\n//\n// ServeConn does not support h2c by itself. Any h2c support must be\n// implemented in terms of providing a suitably-behaving net.Conn.\n//\n// The opts parameter is optional. If nil, default values are used.\nfunc (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {\n\tif opts == nil {\n\t\topts = &ServeConnOpts{}\n\t}\n\ts.serveConn(c, opts, nil)\n}\n\nfunc (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverConn)) {\n\tbaseCtx, cancel := serverConnBaseContext(c, opts)\n\tdefer cancel()\n\n\thttp1srv := opts.baseConfig()\n\tconf := configFromServer(http1srv, s)\n\tsc := &serverConn{\n\t\tsrv:                         s,\n\t\ths:                          http1srv,\n\t\tconn:                        c,\n\t\tbaseCtx:                     baseCtx,\n\t\tremoteAddrStr:               c.RemoteAddr().String(),\n\t\tbw:                          newBufferedWriter(c, conf.WriteByteTimeout),\n\t\thandler:                     opts.handler(),\n\t\tstreams:                     make(map[uint32]*stream),\n\t\treadFrameCh:                 make(chan readFrameResult),\n\t\twantWriteFrameCh:            make(chan FrameWriteRequest, 8),\n\t\tserveMsgCh:                  make(chan interface{}, 8),\n\t\twroteFrameCh:                make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync\n\t\tbodyReadCh:                  make(chan bodyReadMsg),         // buffering doesn't matter either way\n\t\tdoneServing:                 make(chan struct{}),\n\t\tclientMaxStreams:            math.MaxUint32, // Section 6.5.2: \"Initially, there is no limit to this value\"\n\t\tadvMaxStreams:               conf.MaxConcurrentStreams,\n\t\tinitialStreamSendWindowSize: initialWindowSize,\n\t\tinitialStreamRecvWindowSize: conf.MaxUploadBufferPerStream,\n\t\tmaxFrameSize:                initialMaxFrameSize,\n\t\tpingTimeout:                 conf.PingTimeout,\n\t\tcountErrorFunc:              conf.CountError,\n\t\tserveG:                      newGoroutineLock(),\n\t\tpushEnabled:                 true,\n\t\tsawClientPreface:            opts.SawClientPreface,\n\t}\n\tif newf != nil {\n\t\tnewf(sc)\n\t}\n\n\ts.state.registerConn(sc)\n\tdefer s.state.unregisterConn(sc)\n\n\t// The net/http package sets the write deadline from the\n\t// http.Server.WriteTimeout during the TLS handshake, but then\n\t// passes the connection off to us with the deadline already set.\n\t// Write deadlines are set per stream in serverConn.newStream.\n\t// Disarm the net.Conn write deadline here.\n\tif sc.hs.WriteTimeout > 0 {\n\t\tsc.conn.SetWriteDeadline(time.Time{})\n\t}\n\n\tif s.NewWriteScheduler != nil {\n\t\tsc.writeSched = s.NewWriteScheduler()\n\t} else {\n\t\tsc.writeSched = newRoundRobinWriteScheduler()\n\t}\n\n\t// These start at the RFC-specified defaults. If there is a higher\n\t// configured value for inflow, that will be updated when we send a\n\t// WINDOW_UPDATE shortly after sending SETTINGS.\n\tsc.flow.add(initialWindowSize)\n\tsc.inflow.init(initialWindowSize)\n\tsc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf)\n\tsc.hpackEncoder.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize)\n\n\tfr := NewFramer(sc.bw, c)\n\tif conf.CountError != nil {\n\t\tfr.countError = conf.CountError\n\t}\n\tfr.ReadMetaHeaders = hpack.NewDecoder(conf.MaxDecoderHeaderTableSize, nil)\n\tfr.MaxHeaderListSize = sc.maxHeaderListSize()\n\tfr.SetMaxReadFrameSize(conf.MaxReadFrameSize)\n\tsc.framer = fr\n\n\tif tc, ok := c.(connectionStater); ok {\n\t\tsc.tlsState = new(tls.ConnectionState)\n\t\t*sc.tlsState = tc.ConnectionState()\n\t\t// 9.2 Use of TLS Features\n\t\t// An implementation of HTTP/2 over TLS MUST use TLS\n\t\t// 1.2 or higher with the restrictions on feature set\n\t\t// and cipher suite described in this section. Due to\n\t\t// implementation limitations, it might not be\n\t\t// possible to fail TLS negotiation. An endpoint MUST\n\t\t// immediately terminate an HTTP/2 connection that\n\t\t// does not meet the TLS requirements described in\n\t\t// this section with a connection error (Section\n\t\t// 5.4.1) of type INADEQUATE_SECURITY.\n\t\tif sc.tlsState.Version < tls.VersionTLS12 {\n\t\t\tsc.rejectConn(ErrCodeInadequateSecurity, \"TLS version too low\")\n\t\t\treturn\n\t\t}\n\n\t\tif sc.tlsState.ServerName == \"\" {\n\t\t\t// Client must use SNI, but we don't enforce that anymore,\n\t\t\t// since it was causing problems when connecting to bare IP\n\t\t\t// addresses during development.\n\t\t\t//\n\t\t\t// TODO: optionally enforce? Or enforce at the time we receive\n\t\t\t// a new request, and verify the ServerName matches the :authority?\n\t\t\t// But that precludes proxy situations, perhaps.\n\t\t\t//\n\t\t\t// So for now, do nothing here again.\n\t\t}\n\n\t\tif !conf.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) {\n\t\t\t// \"Endpoints MAY choose to generate a connection error\n\t\t\t// (Section 5.4.1) of type INADEQUATE_SECURITY if one of\n\t\t\t// the prohibited cipher suites are negotiated.\"\n\t\t\t//\n\t\t\t// We choose that. In my opinion, the spec is weak\n\t\t\t// here. It also says both parties must support at least\n\t\t\t// TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 so there's no\n\t\t\t// excuses here. If we really must, we could allow an\n\t\t\t// \"AllowInsecureWeakCiphers\" option on the server later.\n\t\t\t// Let's see how it plays out first.\n\t\t\tsc.rejectConn(ErrCodeInadequateSecurity, fmt.Sprintf(\"Prohibited TLS 1.2 Cipher Suite: %x\", sc.tlsState.CipherSuite))\n\t\t\treturn\n\t\t}\n\t}\n\n\tif opts.Settings != nil {\n\t\tfr := &SettingsFrame{\n\t\t\tFrameHeader: FrameHeader{valid: true},\n\t\t\tp:           opts.Settings,\n\t\t}\n\t\tif err := fr.ForeachSetting(sc.processSetting); err != nil {\n\t\t\tsc.rejectConn(ErrCodeProtocol, \"invalid settings\")\n\t\t\treturn\n\t\t}\n\t\topts.Settings = nil\n\t}\n\n\tif hook := testHookGetServerConn; hook != nil {\n\t\thook(sc)\n\t}\n\n\tif opts.UpgradeRequest != nil {\n\t\tsc.upgradeRequest(opts.UpgradeRequest)\n\t\topts.UpgradeRequest = nil\n\t}\n\n\tsc.serve(conf)\n}\n\nfunc serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) {\n\tctx, cancel = context.WithCancel(opts.context())\n\tctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr())\n\tif hs := opts.baseConfig(); hs != nil {\n\t\tctx = context.WithValue(ctx, http.ServerContextKey, hs)\n\t}\n\treturn\n}\n\nfunc (sc *serverConn) rejectConn(err ErrCode, debug string) {\n\tsc.vlogf(\"http2: server rejecting conn: %v, %s\", err, debug)\n\t// ignoring errors. hanging up anyway.\n\tsc.framer.WriteGoAway(0, err, []byte(debug))\n\tsc.bw.Flush()\n\tsc.conn.Close()\n}\n\ntype serverConn struct {\n\t// Immutable:\n\tsrv              *Server\n\ths               *http.Server\n\tconn             net.Conn\n\tbw               *bufferedWriter // writing to conn\n\thandler          http.Handler\n\tbaseCtx          context.Context\n\tframer           *Framer\n\tdoneServing      chan struct{}          // closed when serverConn.serve ends\n\treadFrameCh      chan readFrameResult   // written by serverConn.readFrames\n\twantWriteFrameCh chan FrameWriteRequest // from handlers -> serve\n\twroteFrameCh     chan frameWriteResult  // from writeFrameAsync -> serve, tickles more frame writes\n\tbodyReadCh       chan bodyReadMsg       // from handlers -> serve\n\tserveMsgCh       chan interface{}       // misc messages & code to send to / run on the serve loop\n\tflow             outflow                // conn-wide (not stream-specific) outbound flow control\n\tinflow           inflow                 // conn-wide inbound flow control\n\ttlsState         *tls.ConnectionState   // shared by all handlers, like net/http\n\tremoteAddrStr    string\n\twriteSched       WriteScheduler\n\tcountErrorFunc   func(errType string)\n\n\t// Everything following is owned by the serve loop; use serveG.check():\n\tserveG                      goroutineLock // used to verify funcs are on serve()\n\tpushEnabled                 bool\n\tsawClientPreface            bool // preface has already been read, used in h2c upgrade\n\tsawFirstSettings            bool // got the initial SETTINGS frame after the preface\n\tneedToSendSettingsAck       bool\n\tunackedSettings             int    // how many SETTINGS have we sent without ACKs?\n\tqueuedControlFrames         int    // control frames in the writeSched queue\n\tclientMaxStreams            uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)\n\tadvMaxStreams               uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client\n\tcurClientStreams            uint32 // number of open streams initiated by the client\n\tcurPushedStreams            uint32 // number of open streams initiated by server push\n\tcurHandlers                 uint32 // number of running handler goroutines\n\tmaxClientStreamID           uint32 // max ever seen from client (odd), or 0 if there have been no client requests\n\tmaxPushPromiseID            uint32 // ID of the last push promise (even), or 0 if there have been no pushes\n\tstreams                     map[uint32]*stream\n\tunstartedHandlers           []unstartedHandler\n\tinitialStreamSendWindowSize int32\n\tinitialStreamRecvWindowSize int32\n\tmaxFrameSize                int32\n\tpeerMaxHeaderListSize       uint32            // zero means unknown (default)\n\tcanonHeader                 map[string]string // http2-lower-case -> Go-Canonical-Case\n\tcanonHeaderKeysSize         int               // canonHeader keys size in bytes\n\twritingFrame                bool              // started writing a frame (on serve goroutine or separate)\n\twritingFrameAsync           bool              // started a frame on its own goroutine but haven't heard back on wroteFrameCh\n\tneedsFrameFlush             bool              // last frame write wasn't a flush\n\tinGoAway                    bool              // we've started to or sent GOAWAY\n\tinFrameScheduleLoop         bool              // whether we're in the scheduleFrameWrite loop\n\tneedToSendGoAway            bool              // we need to schedule a GOAWAY frame write\n\tpingSent                    bool\n\tsentPingData                [8]byte\n\tgoAwayCode                  ErrCode\n\tshutdownTimer               *time.Timer // nil until used\n\tidleTimer                   *time.Timer // nil if unused\n\treadIdleTimeout             time.Duration\n\tpingTimeout                 time.Duration\n\treadIdleTimer               *time.Timer // nil if unused\n\n\t// Owned by the writeFrameAsync goroutine:\n\theaderWriteBuf bytes.Buffer\n\thpackEncoder   *hpack.Encoder\n\n\t// Used by startGracefulShutdown.\n\tshutdownOnce sync.Once\n}\n\nfunc (sc *serverConn) maxHeaderListSize() uint32 {\n\tn := sc.hs.MaxHeaderBytes\n\tif n <= 0 {\n\t\tn = http.DefaultMaxHeaderBytes\n\t}\n\treturn uint32(adjustHTTP1MaxHeaderSize(int64(n)))\n}\n\nfunc (sc *serverConn) curOpenStreams() uint32 {\n\tsc.serveG.check()\n\treturn sc.curClientStreams + sc.curPushedStreams\n}\n\n// stream represents a stream. This is the minimal metadata needed by\n// the serve goroutine. Most of the actual stream state is owned by\n// the http.Handler's goroutine in the responseWriter. Because the\n// responseWriter's responseWriterState is recycled at the end of a\n// handler, this struct intentionally has no pointer to the\n// *responseWriter{,State} itself, as the Handler ending nils out the\n// responseWriter's state field.\ntype stream struct {\n\t// immutable:\n\tsc        *serverConn\n\tid        uint32\n\tbody      *pipe       // non-nil if expecting DATA frames\n\tcw        closeWaiter // closed wait stream transitions to closed state\n\tctx       context.Context\n\tcancelCtx func()\n\n\t// owned by serverConn's serve loop:\n\tbodyBytes        int64   // body bytes seen so far\n\tdeclBodyBytes    int64   // or -1 if undeclared\n\tflow             outflow // limits writing from Handler to client\n\tinflow           inflow  // what the client is allowed to POST/etc to us\n\tstate            streamState\n\tresetQueued      bool        // RST_STREAM queued for write; set by sc.resetStream\n\tgotTrailerHeader bool        // HEADER frame for trailers was seen\n\twroteHeaders     bool        // whether we wrote headers (not status 100)\n\treadDeadline     *time.Timer // nil if unused\n\twriteDeadline    *time.Timer // nil if unused\n\tcloseErr         error       // set before cw is closed\n\n\ttrailer    http.Header // accumulated trailers\n\treqTrailer http.Header // handler's Request.Trailer\n}\n\nfunc (sc *serverConn) Framer() *Framer  { return sc.framer }\nfunc (sc *serverConn) CloseConn() error { return sc.conn.Close() }\nfunc (sc *serverConn) Flush() error     { return sc.bw.Flush() }\nfunc (sc *serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) {\n\treturn sc.hpackEncoder, &sc.headerWriteBuf\n}\n\nfunc (sc *serverConn) state(streamID uint32) (streamState, *stream) {\n\tsc.serveG.check()\n\t// http://tools.ietf.org/html/rfc7540#section-5.1\n\tif st, ok := sc.streams[streamID]; ok {\n\t\treturn st.state, st\n\t}\n\t// \"The first use of a new stream identifier implicitly closes all\n\t// streams in the \"idle\" state that might have been initiated by\n\t// that peer with a lower-valued stream identifier. For example, if\n\t// a client sends a HEADERS frame on stream 7 without ever sending a\n\t// frame on stream 5, then stream 5 transitions to the \"closed\"\n\t// state when the first frame for stream 7 is sent or received.\"\n\tif streamID%2 == 1 {\n\t\tif streamID <= sc.maxClientStreamID {\n\t\t\treturn stateClosed, nil\n\t\t}\n\t} else {\n\t\tif streamID <= sc.maxPushPromiseID {\n\t\t\treturn stateClosed, nil\n\t\t}\n\t}\n\treturn stateIdle, nil\n}\n\n// setConnState calls the net/http ConnState hook for this connection, if configured.\n// Note that the net/http package does StateNew and StateClosed for us.\n// There is currently no plan for StateHijacked or hijacking HTTP/2 connections.\nfunc (sc *serverConn) setConnState(state http.ConnState) {\n\tif sc.hs.ConnState != nil {\n\t\tsc.hs.ConnState(sc.conn, state)\n\t}\n}\n\nfunc (sc *serverConn) vlogf(format string, args ...interface{}) {\n\tif VerboseLogs {\n\t\tsc.logf(format, args...)\n\t}\n}\n\nfunc (sc *serverConn) logf(format string, args ...interface{}) {\n\tif lg := sc.hs.ErrorLog; lg != nil {\n\t\tlg.Printf(format, args...)\n\t} else {\n\t\tlog.Printf(format, args...)\n\t}\n}\n\n// errno returns v's underlying uintptr, else 0.\n//\n// TODO: remove this helper function once http2 can use build\n// tags. See comment in isClosedConnError.\nfunc errno(v error) uintptr {\n\tif rv := reflect.ValueOf(v); rv.Kind() == reflect.Uintptr {\n\t\treturn uintptr(rv.Uint())\n\t}\n\treturn 0\n}\n\n// isClosedConnError reports whether err is an error from use of a closed\n// network connection.\nfunc isClosedConnError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\n\tif errors.Is(err, net.ErrClosed) {\n\t\treturn true\n\t}\n\n\t// TODO(bradfitz): x/tools/cmd/bundle doesn't really support\n\t// build tags, so I can't make an http2_windows.go file with\n\t// Windows-specific stuff. Fix that and move this, once we\n\t// have a way to bundle this into std's net/http somehow.\n\tif runtime.GOOS == \"windows\" {\n\t\tif oe, ok := err.(*net.OpError); ok && oe.Op == \"read\" {\n\t\t\tif se, ok := oe.Err.(*os.SyscallError); ok && se.Syscall == \"wsarecv\" {\n\t\t\t\tconst WSAECONNABORTED = 10053\n\t\t\t\tconst WSAECONNRESET = 10054\n\t\t\t\tif n := errno(se.Err); n == WSAECONNRESET || n == WSAECONNABORTED {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (sc *serverConn) condlogf(err error, format string, args ...interface{}) {\n\tif err == nil {\n\t\treturn\n\t}\n\tif err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) || err == errPrefaceTimeout {\n\t\t// Boring, expected errors.\n\t\tsc.vlogf(format, args...)\n\t} else {\n\t\tsc.logf(format, args...)\n\t}\n}\n\n// maxCachedCanonicalHeadersKeysSize is an arbitrarily-chosen limit on the size\n// of the entries in the canonHeader cache.\n// This should be larger than the size of unique, uncommon header keys likely to\n// be sent by the peer, while not so high as to permit unreasonable memory usage\n// if the peer sends an unbounded number of unique header keys.\nconst maxCachedCanonicalHeadersKeysSize = 2048\n\nfunc (sc *serverConn) canonicalHeader(v string) string {\n\tsc.serveG.check()\n\tcv, ok := httpcommon.CachedCanonicalHeader(v)\n\tif ok {\n\t\treturn cv\n\t}\n\tcv, ok = sc.canonHeader[v]\n\tif ok {\n\t\treturn cv\n\t}\n\tif sc.canonHeader == nil {\n\t\tsc.canonHeader = make(map[string]string)\n\t}\n\tcv = http.CanonicalHeaderKey(v)\n\tsize := 100 + len(v)*2 // 100 bytes of map overhead + key + value\n\tif sc.canonHeaderKeysSize+size <= maxCachedCanonicalHeadersKeysSize {\n\t\tsc.canonHeader[v] = cv\n\t\tsc.canonHeaderKeysSize += size\n\t}\n\treturn cv\n}\n\ntype readFrameResult struct {\n\tf   Frame // valid until readMore is called\n\terr error\n\n\t// readMore should be called once the consumer no longer needs or\n\t// retains f. After readMore, f is invalid and more frames can be\n\t// read.\n\treadMore func()\n}\n\n// readFrames is the loop that reads incoming frames.\n// It takes care to only read one frame at a time, blocking until the\n// consumer is done with the frame.\n// It's run on its own goroutine.\nfunc (sc *serverConn) readFrames() {\n\tgate := make(chan struct{})\n\tgateDone := func() { gate <- struct{}{} }\n\tfor {\n\t\tf, err := sc.framer.ReadFrame()\n\t\tselect {\n\t\tcase sc.readFrameCh <- readFrameResult{f, err, gateDone}:\n\t\tcase <-sc.doneServing:\n\t\t\treturn\n\t\t}\n\t\tselect {\n\t\tcase <-gate:\n\t\tcase <-sc.doneServing:\n\t\t\treturn\n\t\t}\n\t\tif terminalReadFrameError(err) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.\ntype frameWriteResult struct {\n\t_   incomparable\n\twr  FrameWriteRequest // what was written (or attempted)\n\terr error             // result of the writeFrame call\n}\n\n// writeFrameAsync runs in its own goroutine and writes a single frame\n// and then reports when it's done.\n// At most one goroutine can be running writeFrameAsync at a time per\n// serverConn.\nfunc (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) {\n\tvar err error\n\tif wd == nil {\n\t\terr = wr.write.writeFrame(sc)\n\t} else {\n\t\terr = sc.framer.endWrite()\n\t}\n\tsc.wroteFrameCh <- frameWriteResult{wr: wr, err: err}\n}\n\nfunc (sc *serverConn) closeAllStreamsOnConnClose() {\n\tsc.serveG.check()\n\tfor _, st := range sc.streams {\n\t\tsc.closeStream(st, errClientDisconnected)\n\t}\n}\n\nfunc (sc *serverConn) stopShutdownTimer() {\n\tsc.serveG.check()\n\tif t := sc.shutdownTimer; t != nil {\n\t\tt.Stop()\n\t}\n}\n\nfunc (sc *serverConn) notePanic() {\n\t// Note: this is for serverConn.serve panicking, not http.Handler code.\n\tif testHookOnPanicMu != nil {\n\t\ttestHookOnPanicMu.Lock()\n\t\tdefer testHookOnPanicMu.Unlock()\n\t}\n\tif testHookOnPanic != nil {\n\t\tif e := recover(); e != nil {\n\t\t\tif testHookOnPanic(sc, e) {\n\t\t\t\tpanic(e)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) serve(conf http2Config) {\n\tsc.serveG.check()\n\tdefer sc.notePanic()\n\tdefer sc.conn.Close()\n\tdefer sc.closeAllStreamsOnConnClose()\n\tdefer sc.stopShutdownTimer()\n\tdefer close(sc.doneServing) // unblocks handlers trying to send\n\n\tif VerboseLogs {\n\t\tsc.vlogf(\"http2: server connection from %v on %p\", sc.conn.RemoteAddr(), sc.hs)\n\t}\n\n\tsettings := writeSettings{\n\t\t{SettingMaxFrameSize, conf.MaxReadFrameSize},\n\t\t{SettingMaxConcurrentStreams, sc.advMaxStreams},\n\t\t{SettingMaxHeaderListSize, sc.maxHeaderListSize()},\n\t\t{SettingHeaderTableSize, conf.MaxDecoderHeaderTableSize},\n\t\t{SettingInitialWindowSize, uint32(sc.initialStreamRecvWindowSize)},\n\t}\n\tif !disableExtendedConnectProtocol {\n\t\tsettings = append(settings, Setting{SettingEnableConnectProtocol, 1})\n\t}\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: settings,\n\t})\n\tsc.unackedSettings++\n\n\t// Each connection starts with initialWindowSize inflow tokens.\n\t// If a higher value is configured, we add more tokens.\n\tif diff := conf.MaxUploadBufferPerConnection - initialWindowSize; diff > 0 {\n\t\tsc.sendWindowUpdate(nil, int(diff))\n\t}\n\n\tif err := sc.readPreface(); err != nil {\n\t\tsc.condlogf(err, \"http2: server: error reading preface from client %v: %v\", sc.conn.RemoteAddr(), err)\n\t\treturn\n\t}\n\t// Now that we've got the preface, get us out of the\n\t// \"StateNew\" state. We can't go directly to idle, though.\n\t// Active means we read some data and anticipate a request. We'll\n\t// do another Active when we get a HEADERS frame.\n\tsc.setConnState(http.StateActive)\n\tsc.setConnState(http.StateIdle)\n\n\tif sc.srv.IdleTimeout > 0 {\n\t\tsc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer)\n\t\tdefer sc.idleTimer.Stop()\n\t}\n\n\tif conf.SendPingTimeout > 0 {\n\t\tsc.readIdleTimeout = conf.SendPingTimeout\n\t\tsc.readIdleTimer = time.AfterFunc(conf.SendPingTimeout, sc.onReadIdleTimer)\n\t\tdefer sc.readIdleTimer.Stop()\n\t}\n\n\tgo sc.readFrames() // closed by defer sc.conn.Close above\n\n\tsettingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer)\n\tdefer settingsTimer.Stop()\n\n\tlastFrameTime := time.Now()\n\tloopNum := 0\n\tfor {\n\t\tloopNum++\n\t\tselect {\n\t\tcase wr := <-sc.wantWriteFrameCh:\n\t\t\tif se, ok := wr.write.(StreamError); ok {\n\t\t\t\tsc.resetStream(se)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsc.writeFrame(wr)\n\t\tcase res := <-sc.wroteFrameCh:\n\t\t\tsc.wroteFrame(res)\n\t\tcase res := <-sc.readFrameCh:\n\t\t\tlastFrameTime = time.Now()\n\t\t\t// Process any written frames before reading new frames from the client since a\n\t\t\t// written frame could have triggered a new stream to be started.\n\t\t\tif sc.writingFrameAsync {\n\t\t\t\tselect {\n\t\t\t\tcase wroteRes := <-sc.wroteFrameCh:\n\t\t\t\t\tsc.wroteFrame(wroteRes)\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !sc.processFrameFromReader(res) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres.readMore()\n\t\t\tif settingsTimer != nil {\n\t\t\t\tsettingsTimer.Stop()\n\t\t\t\tsettingsTimer = nil\n\t\t\t}\n\t\tcase m := <-sc.bodyReadCh:\n\t\t\tsc.noteBodyRead(m.st, m.n)\n\t\tcase msg := <-sc.serveMsgCh:\n\t\t\tswitch v := msg.(type) {\n\t\t\tcase func(int):\n\t\t\t\tv(loopNum) // for testing\n\t\t\tcase *serverMessage:\n\t\t\t\tswitch v {\n\t\t\t\tcase settingsTimerMsg:\n\t\t\t\t\tsc.logf(\"timeout waiting for SETTINGS frames from %v\", sc.conn.RemoteAddr())\n\t\t\t\t\treturn\n\t\t\t\tcase idleTimerMsg:\n\t\t\t\t\tsc.vlogf(\"connection is idle\")\n\t\t\t\t\tsc.goAway(ErrCodeNo)\n\t\t\t\tcase readIdleTimerMsg:\n\t\t\t\t\tsc.handlePingTimer(lastFrameTime)\n\t\t\t\tcase shutdownTimerMsg:\n\t\t\t\t\tsc.vlogf(\"GOAWAY close timer fired; closing conn from %v\", sc.conn.RemoteAddr())\n\t\t\t\t\treturn\n\t\t\t\tcase gracefulShutdownMsg:\n\t\t\t\t\tsc.startGracefulShutdownInternal()\n\t\t\t\tcase handlerDoneMsg:\n\t\t\t\t\tsc.handlerDone()\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"unknown timer\")\n\t\t\t\t}\n\t\t\tcase *startPushRequest:\n\t\t\t\tsc.startPush(v)\n\t\t\tcase func(*serverConn):\n\t\t\t\tv(sc)\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"unexpected type %T\", v))\n\t\t\t}\n\t\t}\n\n\t\t// If the peer is causing us to generate a lot of control frames,\n\t\t// but not reading them from us, assume they are trying to make us\n\t\t// run out of memory.\n\t\tif sc.queuedControlFrames > maxQueuedControlFrames {\n\t\t\tsc.vlogf(\"http2: too many control frames in send queue, closing connection\")\n\t\t\treturn\n\t\t}\n\n\t\t// Start the shutdown timer after sending a GOAWAY. When sending GOAWAY\n\t\t// with no error code (graceful shutdown), don't start the timer until\n\t\t// all open streams have been completed.\n\t\tsentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame\n\t\tgracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0\n\t\tif sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) {\n\t\t\tsc.shutDownIn(goAwayTimeout)\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) handlePingTimer(lastFrameReadTime time.Time) {\n\tif sc.pingSent {\n\t\tsc.logf(\"timeout waiting for PING response\")\n\t\tif f := sc.countErrorFunc; f != nil {\n\t\t\tf(\"conn_close_lost_ping\")\n\t\t}\n\t\tsc.conn.Close()\n\t\treturn\n\t}\n\n\tpingAt := lastFrameReadTime.Add(sc.readIdleTimeout)\n\tnow := time.Now()\n\tif pingAt.After(now) {\n\t\t// We received frames since arming the ping timer.\n\t\t// Reset it for the next possible timeout.\n\t\tsc.readIdleTimer.Reset(pingAt.Sub(now))\n\t\treturn\n\t}\n\n\tsc.pingSent = true\n\t// Ignore crypto/rand.Read errors: It generally can't fail, and worse case if it does\n\t// is we send a PING frame containing 0s.\n\t_, _ = rand.Read(sc.sentPingData[:])\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: &writePing{data: sc.sentPingData},\n\t})\n\tsc.readIdleTimer.Reset(sc.pingTimeout)\n}\n\ntype serverMessage int\n\n// Message values sent to serveMsgCh.\nvar (\n\tsettingsTimerMsg    = new(serverMessage)\n\tidleTimerMsg        = new(serverMessage)\n\treadIdleTimerMsg    = new(serverMessage)\n\tshutdownTimerMsg    = new(serverMessage)\n\tgracefulShutdownMsg = new(serverMessage)\n\thandlerDoneMsg      = new(serverMessage)\n)\n\nfunc (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) }\nfunc (sc *serverConn) onIdleTimer()     { sc.sendServeMsg(idleTimerMsg) }\nfunc (sc *serverConn) onReadIdleTimer() { sc.sendServeMsg(readIdleTimerMsg) }\nfunc (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) }\n\nfunc (sc *serverConn) sendServeMsg(msg interface{}) {\n\tsc.serveG.checkNotOn() // NOT\n\tselect {\n\tcase sc.serveMsgCh <- msg:\n\tcase <-sc.doneServing:\n\t}\n}\n\nvar errPrefaceTimeout = errors.New(\"timeout waiting for client preface\")\n\n// readPreface reads the ClientPreface greeting from the peer or\n// returns errPrefaceTimeout on timeout, or an error if the greeting\n// is invalid.\nfunc (sc *serverConn) readPreface() error {\n\tif sc.sawClientPreface {\n\t\treturn nil\n\t}\n\terrc := make(chan error, 1)\n\tgo func() {\n\t\t// Read the client preface\n\t\tbuf := make([]byte, len(ClientPreface))\n\t\tif _, err := io.ReadFull(sc.conn, buf); err != nil {\n\t\t\terrc <- err\n\t\t} else if !bytes.Equal(buf, clientPreface) {\n\t\t\terrc <- fmt.Errorf(\"bogus greeting %q\", buf)\n\t\t} else {\n\t\t\terrc <- nil\n\t\t}\n\t}()\n\ttimer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server?\n\tdefer timer.Stop()\n\tselect {\n\tcase <-timer.C:\n\t\treturn errPrefaceTimeout\n\tcase err := <-errc:\n\t\tif err == nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tsc.vlogf(\"http2: server: client %v said hello\", sc.conn.RemoteAddr())\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n}\n\nvar writeDataPool = sync.Pool{\n\tNew: func() interface{} { return new(writeData) },\n}\n\n// writeDataFromHandler writes DATA response frames from a handler on\n// the given stream.\nfunc (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error {\n\tch := sc.srv.state.getErrChan()\n\twriteArg := writeDataPool.Get().(*writeData)\n\t*writeArg = writeData{stream.id, data, endStream}\n\terr := sc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  writeArg,\n\t\tstream: stream,\n\t\tdone:   ch,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar frameWriteDone bool // the frame write is done (successfully or not)\n\tselect {\n\tcase err = <-ch:\n\t\tframeWriteDone = true\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-stream.cw:\n\t\t// If both ch and stream.cw were ready (as might\n\t\t// happen on the final Write after an http.Handler\n\t\t// ends), prefer the write result. Otherwise this\n\t\t// might just be us successfully closing the stream.\n\t\t// The writeFrameAsync and serve goroutines guarantee\n\t\t// that the ch send will happen before the stream.cw\n\t\t// close.\n\t\tselect {\n\t\tcase err = <-ch:\n\t\t\tframeWriteDone = true\n\t\tdefault:\n\t\t\treturn errStreamClosed\n\t\t}\n\t}\n\tsc.srv.state.putErrChan(ch)\n\tif frameWriteDone {\n\t\twriteDataPool.Put(writeArg)\n\t}\n\treturn err\n}\n\n// writeFrameFromHandler sends wr to sc.wantWriteFrameCh, but aborts\n// if the connection has gone away.\n//\n// This must not be run from the serve goroutine itself, else it might\n// deadlock writing to sc.wantWriteFrameCh (which is only mildly\n// buffered and is read by serve itself). If you're on the serve\n// goroutine, call writeFrame instead.\nfunc (sc *serverConn) writeFrameFromHandler(wr FrameWriteRequest) error {\n\tsc.serveG.checkNotOn() // NOT\n\tselect {\n\tcase sc.wantWriteFrameCh <- wr:\n\t\treturn nil\n\tcase <-sc.doneServing:\n\t\t// Serve loop is gone.\n\t\t// Client has closed their connection to the server.\n\t\treturn errClientDisconnected\n\t}\n}\n\n// writeFrame schedules a frame to write and sends it if there's nothing\n// already being written.\n//\n// There is no pushback here (the serve goroutine never blocks). It's\n// the http.Handlers that block, waiting for their previous frames to\n// make it onto the wire\n//\n// If you're not on the serve goroutine, use writeFrameFromHandler instead.\nfunc (sc *serverConn) writeFrame(wr FrameWriteRequest) {\n\tsc.serveG.check()\n\n\t// If true, wr will not be written and wr.done will not be signaled.\n\tvar ignoreWrite bool\n\n\t// We are not allowed to write frames on closed streams. RFC 7540 Section\n\t// 5.1.1 says: \"An endpoint MUST NOT send frames other than PRIORITY on\n\t// a closed stream.\" Our server never sends PRIORITY, so that exception\n\t// does not apply.\n\t//\n\t// The serverConn might close an open stream while the stream's handler\n\t// is still running. For example, the server might close a stream when it\n\t// receives bad data from the client. If this happens, the handler might\n\t// attempt to write a frame after the stream has been closed (since the\n\t// handler hasn't yet been notified of the close). In this case, we simply\n\t// ignore the frame. The handler will notice that the stream is closed when\n\t// it waits for the frame to be written.\n\t//\n\t// As an exception to this rule, we allow sending RST_STREAM after close.\n\t// This allows us to immediately reject new streams without tracking any\n\t// state for those streams (except for the queued RST_STREAM frame). This\n\t// may result in duplicate RST_STREAMs in some cases, but the client should\n\t// ignore those.\n\tif wr.StreamID() != 0 {\n\t\t_, isReset := wr.write.(StreamError)\n\t\tif state, _ := sc.state(wr.StreamID()); state == stateClosed && !isReset {\n\t\t\tignoreWrite = true\n\t\t}\n\t}\n\n\t// Don't send a 100-continue response if we've already sent headers.\n\t// See golang.org/issue/14030.\n\tswitch wr.write.(type) {\n\tcase *writeResHeaders:\n\t\twr.stream.wroteHeaders = true\n\tcase write100ContinueHeadersFrame:\n\t\tif wr.stream.wroteHeaders {\n\t\t\t// We do not need to notify wr.done because this frame is\n\t\t\t// never written with wr.done != nil.\n\t\t\tif wr.done != nil {\n\t\t\t\tpanic(\"wr.done != nil for write100ContinueHeadersFrame\")\n\t\t\t}\n\t\t\tignoreWrite = true\n\t\t}\n\t}\n\n\tif !ignoreWrite {\n\t\tif wr.isControl() {\n\t\t\tsc.queuedControlFrames++\n\t\t\t// For extra safety, detect wraparounds, which should not happen,\n\t\t\t// and pull the plug.\n\t\t\tif sc.queuedControlFrames < 0 {\n\t\t\t\tsc.conn.Close()\n\t\t\t}\n\t\t}\n\t\tsc.writeSched.Push(wr)\n\t}\n\tsc.scheduleFrameWrite()\n}\n\n// startFrameWrite starts a goroutine to write wr (in a separate\n// goroutine since that might block on the network), and updates the\n// serve goroutine's state about the world, updated from info in wr.\nfunc (sc *serverConn) startFrameWrite(wr FrameWriteRequest) {\n\tsc.serveG.check()\n\tif sc.writingFrame {\n\t\tpanic(\"internal error: can only be writing one frame at a time\")\n\t}\n\n\tst := wr.stream\n\tif st != nil {\n\t\tswitch st.state {\n\t\tcase stateHalfClosedLocal:\n\t\t\tswitch wr.write.(type) {\n\t\t\tcase StreamError, handlerPanicRST, writeWindowUpdate:\n\t\t\t\t// RFC 7540 Section 5.1 allows sending RST_STREAM, PRIORITY, and WINDOW_UPDATE\n\t\t\t\t// in this state. (We never send PRIORITY from the server, so that is not checked.)\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"internal error: attempt to send frame on a half-closed-local stream: %v\", wr))\n\t\t\t}\n\t\tcase stateClosed:\n\t\t\tpanic(fmt.Sprintf(\"internal error: attempt to send frame on a closed stream: %v\", wr))\n\t\t}\n\t}\n\tif wpp, ok := wr.write.(*writePushPromise); ok {\n\t\tvar err error\n\t\twpp.promisedID, err = wpp.allocatePromisedID()\n\t\tif err != nil {\n\t\t\tsc.writingFrameAsync = false\n\t\t\twr.replyToWriter(err)\n\t\t\treturn\n\t\t}\n\t}\n\n\tsc.writingFrame = true\n\tsc.needsFrameFlush = true\n\tif wr.write.staysWithinBuffer(sc.bw.Available()) {\n\t\tsc.writingFrameAsync = false\n\t\terr := wr.write.writeFrame(sc)\n\t\tsc.wroteFrame(frameWriteResult{wr: wr, err: err})\n\t} else if wd, ok := wr.write.(*writeData); ok {\n\t\t// Encode the frame in the serve goroutine, to ensure we don't have\n\t\t// any lingering asynchronous references to data passed to Write.\n\t\t// See https://go.dev/issue/58446.\n\t\tsc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, nil)\n\t\tsc.writingFrameAsync = true\n\t\tgo sc.writeFrameAsync(wr, wd)\n\t} else {\n\t\tsc.writingFrameAsync = true\n\t\tgo sc.writeFrameAsync(wr, nil)\n\t}\n}\n\n// errHandlerPanicked is the error given to any callers blocked in a read from\n// Request.Body when the main goroutine panics. Since most handlers read in the\n// main ServeHTTP goroutine, this will show up rarely.\nvar errHandlerPanicked = errors.New(\"http2: handler panicked\")\n\n// wroteFrame is called on the serve goroutine with the result of\n// whatever happened on writeFrameAsync.\nfunc (sc *serverConn) wroteFrame(res frameWriteResult) {\n\tsc.serveG.check()\n\tif !sc.writingFrame {\n\t\tpanic(\"internal error: expected to be already writing a frame\")\n\t}\n\tsc.writingFrame = false\n\tsc.writingFrameAsync = false\n\n\tif res.err != nil {\n\t\tsc.conn.Close()\n\t}\n\n\twr := res.wr\n\n\tif writeEndsStream(wr.write) {\n\t\tst := wr.stream\n\t\tif st == nil {\n\t\t\tpanic(\"internal error: expecting non-nil stream\")\n\t\t}\n\t\tswitch st.state {\n\t\tcase stateOpen:\n\t\t\t// Here we would go to stateHalfClosedLocal in\n\t\t\t// theory, but since our handler is done and\n\t\t\t// the net/http package provides no mechanism\n\t\t\t// for closing a ResponseWriter while still\n\t\t\t// reading data (see possible TODO at top of\n\t\t\t// this file), we go into closed state here\n\t\t\t// anyway, after telling the peer we're\n\t\t\t// hanging up on them. We'll transition to\n\t\t\t// stateClosed after the RST_STREAM frame is\n\t\t\t// written.\n\t\t\tst.state = stateHalfClosedLocal\n\t\t\t// Section 8.1: a server MAY request that the client abort\n\t\t\t// transmission of a request without error by sending a\n\t\t\t// RST_STREAM with an error code of NO_ERROR after sending\n\t\t\t// a complete response.\n\t\t\tsc.resetStream(streamError(st.id, ErrCodeNo))\n\t\tcase stateHalfClosedRemote:\n\t\t\tsc.closeStream(st, errHandlerComplete)\n\t\t}\n\t} else {\n\t\tswitch v := wr.write.(type) {\n\t\tcase StreamError:\n\t\t\t// st may be unknown if the RST_STREAM was generated to reject bad input.\n\t\t\tif st, ok := sc.streams[v.StreamID]; ok {\n\t\t\t\tsc.closeStream(st, v)\n\t\t\t}\n\t\tcase handlerPanicRST:\n\t\t\tsc.closeStream(wr.stream, errHandlerPanicked)\n\t\t}\n\t}\n\n\t// Reply (if requested) to unblock the ServeHTTP goroutine.\n\twr.replyToWriter(res.err)\n\n\tsc.scheduleFrameWrite()\n}\n\n// scheduleFrameWrite tickles the frame writing scheduler.\n//\n// If a frame is already being written, nothing happens. This will be called again\n// when the frame is done being written.\n//\n// If a frame isn't being written and we need to send one, the best frame\n// to send is selected by writeSched.\n//\n// If a frame isn't being written and there's nothing else to send, we\n// flush the write buffer.\nfunc (sc *serverConn) scheduleFrameWrite() {\n\tsc.serveG.check()\n\tif sc.writingFrame || sc.inFrameScheduleLoop {\n\t\treturn\n\t}\n\tsc.inFrameScheduleLoop = true\n\tfor !sc.writingFrameAsync {\n\t\tif sc.needToSendGoAway {\n\t\t\tsc.needToSendGoAway = false\n\t\t\tsc.startFrameWrite(FrameWriteRequest{\n\t\t\t\twrite: &writeGoAway{\n\t\t\t\t\tmaxStreamID: sc.maxClientStreamID,\n\t\t\t\t\tcode:        sc.goAwayCode,\n\t\t\t\t},\n\t\t\t})\n\t\t\tcontinue\n\t\t}\n\t\tif sc.needToSendSettingsAck {\n\t\t\tsc.needToSendSettingsAck = false\n\t\t\tsc.startFrameWrite(FrameWriteRequest{write: writeSettingsAck{}})\n\t\t\tcontinue\n\t\t}\n\t\tif !sc.inGoAway || sc.goAwayCode == ErrCodeNo {\n\t\t\tif wr, ok := sc.writeSched.Pop(); ok {\n\t\t\t\tif wr.isControl() {\n\t\t\t\t\tsc.queuedControlFrames--\n\t\t\t\t}\n\t\t\t\tsc.startFrameWrite(wr)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif sc.needsFrameFlush {\n\t\t\tsc.startFrameWrite(FrameWriteRequest{write: flushFrameWriter{}})\n\t\t\tsc.needsFrameFlush = false // after startFrameWrite, since it sets this true\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\tsc.inFrameScheduleLoop = false\n}\n\n// startGracefulShutdown gracefully shuts down a connection. This\n// sends GOAWAY with ErrCodeNo to tell the client we're gracefully\n// shutting down. The connection isn't closed until all current\n// streams are done.\n//\n// startGracefulShutdown returns immediately; it does not wait until\n// the connection has shut down.\nfunc (sc *serverConn) startGracefulShutdown() {\n\tsc.serveG.checkNotOn() // NOT\n\tsc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) })\n}\n\n// After sending GOAWAY with an error code (non-graceful shutdown), the\n// connection will close after goAwayTimeout.\n//\n// If we close the connection immediately after sending GOAWAY, there may\n// be unsent data in our kernel receive buffer, which will cause the kernel\n// to send a TCP RST on close() instead of a FIN. This RST will abort the\n// connection immediately, whether or not the client had received the GOAWAY.\n//\n// Ideally we should delay for at least 1 RTT + epsilon so the client has\n// a chance to read the GOAWAY and stop sending messages. Measuring RTT\n// is hard, so we approximate with 1 second. See golang.org/issue/18701.\n//\n// This is a var so it can be shorter in tests, where all requests uses the\n// loopback interface making the expected RTT very small.\n//\n// TODO: configurable?\nvar goAwayTimeout = 1 * time.Second\n\nfunc (sc *serverConn) startGracefulShutdownInternal() {\n\tsc.goAway(ErrCodeNo)\n}\n\nfunc (sc *serverConn) goAway(code ErrCode) {\n\tsc.serveG.check()\n\tif sc.inGoAway {\n\t\tif sc.goAwayCode == ErrCodeNo {\n\t\t\tsc.goAwayCode = code\n\t\t}\n\t\treturn\n\t}\n\tsc.inGoAway = true\n\tsc.needToSendGoAway = true\n\tsc.goAwayCode = code\n\tsc.scheduleFrameWrite()\n}\n\nfunc (sc *serverConn) shutDownIn(d time.Duration) {\n\tsc.serveG.check()\n\tsc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer)\n}\n\nfunc (sc *serverConn) resetStream(se StreamError) {\n\tsc.serveG.check()\n\tsc.writeFrame(FrameWriteRequest{write: se})\n\tif st, ok := sc.streams[se.StreamID]; ok {\n\t\tst.resetQueued = true\n\t}\n}\n\n// processFrameFromReader processes the serve loop's read from readFrameCh from the\n// frame-reading goroutine.\n// processFrameFromReader returns whether the connection should be kept open.\nfunc (sc *serverConn) processFrameFromReader(res readFrameResult) bool {\n\tsc.serveG.check()\n\terr := res.err\n\tif err != nil {\n\t\tif err == ErrFrameTooLarge {\n\t\t\tsc.goAway(ErrCodeFrameSize)\n\t\t\treturn true // goAway will close the loop\n\t\t}\n\t\tclientGone := err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err)\n\t\tif clientGone {\n\t\t\t// TODO: could we also get into this state if\n\t\t\t// the peer does a half close\n\t\t\t// (e.g. CloseWrite) because they're done\n\t\t\t// sending frames but they're still wanting\n\t\t\t// our open replies?  Investigate.\n\t\t\t// TODO: add CloseWrite to crypto/tls.Conn first\n\t\t\t// so we have a way to test this? I suppose\n\t\t\t// just for testing we could have a non-TLS mode.\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tf := res.f\n\t\tif VerboseLogs {\n\t\t\tsc.vlogf(\"http2: server read frame %v\", summarizeFrame(f))\n\t\t}\n\t\terr = sc.processFrame(f)\n\t\tif err == nil {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tswitch ev := err.(type) {\n\tcase StreamError:\n\t\tsc.resetStream(ev)\n\t\treturn true\n\tcase goAwayFlowError:\n\t\tsc.goAway(ErrCodeFlowControl)\n\t\treturn true\n\tcase ConnectionError:\n\t\tif res.f != nil {\n\t\t\tif id := res.f.Header().StreamID; id > sc.maxClientStreamID {\n\t\t\t\tsc.maxClientStreamID = id\n\t\t\t}\n\t\t}\n\t\tsc.logf(\"http2: server connection error from %v: %v\", sc.conn.RemoteAddr(), ev)\n\t\tsc.goAway(ErrCode(ev))\n\t\treturn true // goAway will handle shutdown\n\tdefault:\n\t\tif res.err != nil {\n\t\t\tsc.vlogf(\"http2: server closing client connection; error reading frame from client %s: %v\", sc.conn.RemoteAddr(), err)\n\t\t} else {\n\t\t\tsc.logf(\"http2: server closing client connection: %v\", err)\n\t\t}\n\t\treturn false\n\t}\n}\n\nfunc (sc *serverConn) processFrame(f Frame) error {\n\tsc.serveG.check()\n\n\t// First frame received must be SETTINGS.\n\tif !sc.sawFirstSettings {\n\t\tif _, ok := f.(*SettingsFrame); !ok {\n\t\t\treturn sc.countError(\"first_settings\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\tsc.sawFirstSettings = true\n\t}\n\n\t// Discard frames for streams initiated after the identified last\n\t// stream sent in a GOAWAY, or all frames after sending an error.\n\t// We still need to return connection-level flow control for DATA frames.\n\t// RFC 9113 Section 6.8.\n\tif sc.inGoAway && (sc.goAwayCode != ErrCodeNo || f.Header().StreamID > sc.maxClientStreamID) {\n\n\t\tif f, ok := f.(*DataFrame); ok {\n\t\t\tif !sc.inflow.take(f.Length) {\n\t\t\t\treturn sc.countError(\"data_flow\", streamError(f.Header().StreamID, ErrCodeFlowControl))\n\t\t\t}\n\t\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\t\t}\n\t\treturn nil\n\t}\n\n\tswitch f := f.(type) {\n\tcase *SettingsFrame:\n\t\treturn sc.processSettings(f)\n\tcase *MetaHeadersFrame:\n\t\treturn sc.processHeaders(f)\n\tcase *WindowUpdateFrame:\n\t\treturn sc.processWindowUpdate(f)\n\tcase *PingFrame:\n\t\treturn sc.processPing(f)\n\tcase *DataFrame:\n\t\treturn sc.processData(f)\n\tcase *RSTStreamFrame:\n\t\treturn sc.processResetStream(f)\n\tcase *PriorityFrame:\n\t\treturn sc.processPriority(f)\n\tcase *GoAwayFrame:\n\t\treturn sc.processGoAway(f)\n\tcase *PushPromiseFrame:\n\t\t// A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE\n\t\t// frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\treturn sc.countError(\"push_promise\", ConnectionError(ErrCodeProtocol))\n\tdefault:\n\t\tsc.vlogf(\"http2: server ignoring frame: %v\", f.Header())\n\t\treturn nil\n\t}\n}\n\nfunc (sc *serverConn) processPing(f *PingFrame) error {\n\tsc.serveG.check()\n\tif f.IsAck() {\n\t\tif sc.pingSent && sc.sentPingData == f.Data {\n\t\t\t// This is a response to a PING we sent.\n\t\t\tsc.pingSent = false\n\t\t\tsc.readIdleTimer.Reset(sc.readIdleTimeout)\n\t\t}\n\t\t// 6.7 PING: \" An endpoint MUST NOT respond to PING frames\n\t\t// containing this flag.\"\n\t\treturn nil\n\t}\n\tif f.StreamID != 0 {\n\t\t// \"PING frames are not associated with any individual\n\t\t// stream. If a PING frame is received with a stream\n\t\t// identifier field value other than 0x0, the recipient MUST\n\t\t// respond with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\"\n\t\treturn sc.countError(\"ping_on_stream\", ConnectionError(ErrCodeProtocol))\n\t}\n\tsc.writeFrame(FrameWriteRequest{write: writePingAck{f}})\n\treturn nil\n}\n\nfunc (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error {\n\tsc.serveG.check()\n\tswitch {\n\tcase f.StreamID != 0: // stream-level flow control\n\t\tstate, st := sc.state(f.StreamID)\n\t\tif state == stateIdle {\n\t\t\t// Section 5.1: \"Receiving any frame other than HEADERS\n\t\t\t// or PRIORITY on a stream in this state MUST be\n\t\t\t// treated as a connection error (Section 5.4.1) of\n\t\t\t// type PROTOCOL_ERROR.\"\n\t\t\treturn sc.countError(\"stream_idle\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\tif st == nil {\n\t\t\t// \"WINDOW_UPDATE can be sent by a peer that has sent a\n\t\t\t// frame bearing the END_STREAM flag. This means that a\n\t\t\t// receiver could receive a WINDOW_UPDATE frame on a \"half\n\t\t\t// closed (remote)\" or \"closed\" stream. A receiver MUST\n\t\t\t// NOT treat this as an error, see Section 5.1.\"\n\t\t\treturn nil\n\t\t}\n\t\tif !st.flow.add(int32(f.Increment)) {\n\t\t\treturn sc.countError(\"bad_flow\", streamError(f.StreamID, ErrCodeFlowControl))\n\t\t}\n\tdefault: // connection-level flow control\n\t\tif !sc.flow.add(int32(f.Increment)) {\n\t\t\treturn goAwayFlowError{}\n\t\t}\n\t}\n\tsc.scheduleFrameWrite()\n\treturn nil\n}\n\nfunc (sc *serverConn) processResetStream(f *RSTStreamFrame) error {\n\tsc.serveG.check()\n\n\tstate, st := sc.state(f.StreamID)\n\tif state == stateIdle {\n\t\t// 6.4 \"RST_STREAM frames MUST NOT be sent for a\n\t\t// stream in the \"idle\" state. If a RST_STREAM frame\n\t\t// identifying an idle stream is received, the\n\t\t// recipient MUST treat this as a connection error\n\t\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\treturn sc.countError(\"reset_idle_stream\", ConnectionError(ErrCodeProtocol))\n\t}\n\tif st != nil {\n\t\tst.cancelCtx()\n\t\tsc.closeStream(st, streamError(f.StreamID, f.ErrCode))\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) closeStream(st *stream, err error) {\n\tsc.serveG.check()\n\tif st.state == stateIdle || st.state == stateClosed {\n\t\tpanic(fmt.Sprintf(\"invariant; can't close stream in state %v\", st.state))\n\t}\n\tst.state = stateClosed\n\tif st.readDeadline != nil {\n\t\tst.readDeadline.Stop()\n\t}\n\tif st.writeDeadline != nil {\n\t\tst.writeDeadline.Stop()\n\t}\n\tif st.isPushed() {\n\t\tsc.curPushedStreams--\n\t} else {\n\t\tsc.curClientStreams--\n\t}\n\tdelete(sc.streams, st.id)\n\tif len(sc.streams) == 0 {\n\t\tsc.setConnState(http.StateIdle)\n\t\tif sc.srv.IdleTimeout > 0 && sc.idleTimer != nil {\n\t\t\tsc.idleTimer.Reset(sc.srv.IdleTimeout)\n\t\t}\n\t\tif h1ServerKeepAlivesDisabled(sc.hs) {\n\t\t\tsc.startGracefulShutdownInternal()\n\t\t}\n\t}\n\tif p := st.body; p != nil {\n\t\t// Return any buffered unread bytes worth of conn-level flow control.\n\t\t// See golang.org/issue/16481\n\t\tsc.sendWindowUpdate(nil, p.Len())\n\n\t\tp.CloseWithError(err)\n\t}\n\tif e, ok := err.(StreamError); ok {\n\t\tif e.Cause != nil {\n\t\t\terr = e.Cause\n\t\t} else {\n\t\t\terr = errStreamClosed\n\t\t}\n\t}\n\tst.closeErr = err\n\tst.cancelCtx()\n\tst.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc\n\tsc.writeSched.CloseStream(st.id)\n}\n\nfunc (sc *serverConn) processSettings(f *SettingsFrame) error {\n\tsc.serveG.check()\n\tif f.IsAck() {\n\t\tsc.unackedSettings--\n\t\tif sc.unackedSettings < 0 {\n\t\t\t// Why is the peer ACKing settings we never sent?\n\t\t\t// The spec doesn't mention this case, but\n\t\t\t// hang up on them anyway.\n\t\t\treturn sc.countError(\"ack_mystery\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\treturn nil\n\t}\n\tif f.NumSettings() > 100 || f.HasDuplicates() {\n\t\t// This isn't actually in the spec, but hang up on\n\t\t// suspiciously large settings frames or those with\n\t\t// duplicate entries.\n\t\treturn sc.countError(\"settings_big_or_dups\", ConnectionError(ErrCodeProtocol))\n\t}\n\tif err := f.ForeachSetting(sc.processSetting); err != nil {\n\t\treturn err\n\t}\n\t// TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be\n\t// acknowledged individually, even if multiple are received before the ACK.\n\tsc.needToSendSettingsAck = true\n\tsc.scheduleFrameWrite()\n\treturn nil\n}\n\nfunc (sc *serverConn) processSetting(s Setting) error {\n\tsc.serveG.check()\n\tif err := s.Valid(); err != nil {\n\t\treturn err\n\t}\n\tif VerboseLogs {\n\t\tsc.vlogf(\"http2: server processing setting %v\", s)\n\t}\n\tswitch s.ID {\n\tcase SettingHeaderTableSize:\n\t\tsc.hpackEncoder.SetMaxDynamicTableSize(s.Val)\n\tcase SettingEnablePush:\n\t\tsc.pushEnabled = s.Val != 0\n\tcase SettingMaxConcurrentStreams:\n\t\tsc.clientMaxStreams = s.Val\n\tcase SettingInitialWindowSize:\n\t\treturn sc.processSettingInitialWindowSize(s.Val)\n\tcase SettingMaxFrameSize:\n\t\tsc.maxFrameSize = int32(s.Val) // the maximum valid s.Val is < 2^31\n\tcase SettingMaxHeaderListSize:\n\t\tsc.peerMaxHeaderListSize = s.Val\n\tcase SettingEnableConnectProtocol:\n\t\t// Receipt of this parameter by a server does not\n\t\t// have any impact\n\tdefault:\n\t\t// Unknown setting: \"An endpoint that receives a SETTINGS\n\t\t// frame with any unknown or unsupported identifier MUST\n\t\t// ignore that setting.\"\n\t\tif VerboseLogs {\n\t\t\tsc.vlogf(\"http2: server ignoring unknown setting %v\", s)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processSettingInitialWindowSize(val uint32) error {\n\tsc.serveG.check()\n\t// Note: val already validated to be within range by\n\t// processSetting's Valid call.\n\n\t// \"A SETTINGS frame can alter the initial flow control window\n\t// size for all current streams. When the value of\n\t// SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST\n\t// adjust the size of all stream flow control windows that it\n\t// maintains by the difference between the new value and the\n\t// old value.\"\n\told := sc.initialStreamSendWindowSize\n\tsc.initialStreamSendWindowSize = int32(val)\n\tgrowth := int32(val) - old // may be negative\n\tfor _, st := range sc.streams {\n\t\tif !st.flow.add(growth) {\n\t\t\t// 6.9.2 Initial Flow Control Window Size\n\t\t\t// \"An endpoint MUST treat a change to\n\t\t\t// SETTINGS_INITIAL_WINDOW_SIZE that causes any flow\n\t\t\t// control window to exceed the maximum size as a\n\t\t\t// connection error (Section 5.4.1) of type\n\t\t\t// FLOW_CONTROL_ERROR.\"\n\t\t\treturn sc.countError(\"setting_win_size\", ConnectionError(ErrCodeFlowControl))\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processData(f *DataFrame) error {\n\tsc.serveG.check()\n\tid := f.Header().StreamID\n\n\tdata := f.Data()\n\tstate, st := sc.state(id)\n\tif id == 0 || state == stateIdle {\n\t\t// Section 6.1: \"DATA frames MUST be associated with a\n\t\t// stream. If a DATA frame is received whose stream\n\t\t// identifier field is 0x0, the recipient MUST respond\n\t\t// with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\"\n\t\t//\n\t\t// Section 5.1: \"Receiving any frame other than HEADERS\n\t\t// or PRIORITY on a stream in this state MUST be\n\t\t// treated as a connection error (Section 5.4.1) of\n\t\t// type PROTOCOL_ERROR.\"\n\t\treturn sc.countError(\"data_on_idle\", ConnectionError(ErrCodeProtocol))\n\t}\n\n\t// \"If a DATA frame is received whose stream is not in \"open\"\n\t// or \"half closed (local)\" state, the recipient MUST respond\n\t// with a stream error (Section 5.4.2) of type STREAM_CLOSED.\"\n\tif st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {\n\t\t// This includes sending a RST_STREAM if the stream is\n\t\t// in stateHalfClosedLocal (which currently means that\n\t\t// the http.Handler returned, so it's done reading &\n\t\t// done writing). Try to stop the client from sending\n\t\t// more DATA.\n\n\t\t// But still enforce their connection-level flow control,\n\t\t// and return any flow control bytes since we're not going\n\t\t// to consume them.\n\t\tif !sc.inflow.take(f.Length) {\n\t\t\treturn sc.countError(\"data_flow\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\n\t\tif st != nil && st.resetQueued {\n\t\t\t// Already have a stream error in flight. Don't send another.\n\t\t\treturn nil\n\t\t}\n\t\treturn sc.countError(\"closed\", streamError(id, ErrCodeStreamClosed))\n\t}\n\tif st.body == nil {\n\t\tpanic(\"internal error: should have a body in this state\")\n\t}\n\n\t// Sender sending more than they'd declared?\n\tif st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {\n\t\tif !sc.inflow.take(f.Length) {\n\t\t\treturn sc.countError(\"data_flow\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\n\t\tst.body.CloseWithError(fmt.Errorf(\"sender tried to send more than declared Content-Length of %d bytes\", st.declBodyBytes))\n\t\t// RFC 7540, sec 8.1.2.6: A request or response is also malformed if the\n\t\t// value of a content-length header field does not equal the sum of the\n\t\t// DATA frame payload lengths that form the body.\n\t\treturn sc.countError(\"send_too_much\", streamError(id, ErrCodeProtocol))\n\t}\n\tif f.Length > 0 {\n\t\t// Check whether the client has flow control quota.\n\t\tif !takeInflows(&sc.inflow, &st.inflow, f.Length) {\n\t\t\treturn sc.countError(\"flow_on_data_length\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\n\t\tif len(data) > 0 {\n\t\t\tst.bodyBytes += int64(len(data))\n\t\t\twrote, err := st.body.Write(data)\n\t\t\tif err != nil {\n\t\t\t\t// The handler has closed the request body.\n\t\t\t\t// Return the connection-level flow control for the discarded data,\n\t\t\t\t// but not the stream-level flow control.\n\t\t\t\tsc.sendWindowUpdate(nil, int(f.Length)-wrote)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif wrote != len(data) {\n\t\t\t\tpanic(\"internal error: bad Writer\")\n\t\t\t}\n\t\t}\n\n\t\t// Return any padded flow control now, since we won't\n\t\t// refund it later on body reads.\n\t\t// Call sendWindowUpdate even if there is no padding,\n\t\t// to return buffered flow control credit if the sent\n\t\t// window has shrunk.\n\t\tpad := int32(f.Length) - int32(len(data))\n\t\tsc.sendWindowUpdate32(nil, pad)\n\t\tsc.sendWindowUpdate32(st, pad)\n\t}\n\tif f.StreamEnded() {\n\t\tst.endStream()\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processGoAway(f *GoAwayFrame) error {\n\tsc.serveG.check()\n\tif f.ErrCode != ErrCodeNo {\n\t\tsc.logf(\"http2: received GOAWAY %+v, starting graceful shutdown\", f)\n\t} else {\n\t\tsc.vlogf(\"http2: received GOAWAY %+v, starting graceful shutdown\", f)\n\t}\n\tsc.startGracefulShutdownInternal()\n\t// http://tools.ietf.org/html/rfc7540#section-6.8\n\t// We should not create any new streams, which means we should disable push.\n\tsc.pushEnabled = false\n\treturn nil\n}\n\n// isPushed reports whether the stream is server-initiated.\nfunc (st *stream) isPushed() bool {\n\treturn st.id%2 == 0\n}\n\n// endStream closes a Request.Body's pipe. It is called when a DATA\n// frame says a request body is over (or after trailers).\nfunc (st *stream) endStream() {\n\tsc := st.sc\n\tsc.serveG.check()\n\n\tif st.declBodyBytes != -1 && st.declBodyBytes != st.bodyBytes {\n\t\tst.body.CloseWithError(fmt.Errorf(\"request declared a Content-Length of %d but only wrote %d bytes\",\n\t\t\tst.declBodyBytes, st.bodyBytes))\n\t} else {\n\t\tst.body.closeWithErrorAndCode(io.EOF, st.copyTrailersToHandlerRequest)\n\t\tst.body.CloseWithError(io.EOF)\n\t}\n\tst.state = stateHalfClosedRemote\n}\n\n// copyTrailersToHandlerRequest is run in the Handler's goroutine in\n// its Request.Body.Read just before it gets io.EOF.\nfunc (st *stream) copyTrailersToHandlerRequest() {\n\tfor k, vv := range st.trailer {\n\t\tif _, ok := st.reqTrailer[k]; ok {\n\t\t\t// Only copy it over it was pre-declared.\n\t\t\tst.reqTrailer[k] = vv\n\t\t}\n\t}\n}\n\n// onReadTimeout is run on its own goroutine (from time.AfterFunc)\n// when the stream's ReadTimeout has fired.\nfunc (st *stream) onReadTimeout() {\n\tif st.body != nil {\n\t\t// Wrap the ErrDeadlineExceeded to avoid callers depending on us\n\t\t// returning the bare error.\n\t\tst.body.CloseWithError(fmt.Errorf(\"%w\", os.ErrDeadlineExceeded))\n\t}\n}\n\n// onWriteTimeout is run on its own goroutine (from time.AfterFunc)\n// when the stream's WriteTimeout has fired.\nfunc (st *stream) onWriteTimeout() {\n\tst.sc.writeFrameFromHandler(FrameWriteRequest{write: StreamError{\n\t\tStreamID: st.id,\n\t\tCode:     ErrCodeInternal,\n\t\tCause:    os.ErrDeadlineExceeded,\n\t}})\n}\n\nfunc (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {\n\tsc.serveG.check()\n\tid := f.StreamID\n\t// http://tools.ietf.org/html/rfc7540#section-5.1.1\n\t// Streams initiated by a client MUST use odd-numbered stream\n\t// identifiers. [...] An endpoint that receives an unexpected\n\t// stream identifier MUST respond with a connection error\n\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\tif id%2 != 1 {\n\t\treturn sc.countError(\"headers_even\", ConnectionError(ErrCodeProtocol))\n\t}\n\t// A HEADERS frame can be used to create a new stream or\n\t// send a trailer for an open one. If we already have a stream\n\t// open, let it process its own HEADERS frame (trailers at this\n\t// point, if it's valid).\n\tif st := sc.streams[f.StreamID]; st != nil {\n\t\tif st.resetQueued {\n\t\t\t// We're sending RST_STREAM to close the stream, so don't bother\n\t\t\t// processing this frame.\n\t\t\treturn nil\n\t\t}\n\t\t// RFC 7540, sec 5.1: If an endpoint receives additional frames, other than\n\t\t// WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in\n\t\t// this state, it MUST respond with a stream error (Section 5.4.2) of\n\t\t// type STREAM_CLOSED.\n\t\tif st.state == stateHalfClosedRemote {\n\t\t\treturn sc.countError(\"headers_half_closed\", streamError(id, ErrCodeStreamClosed))\n\t\t}\n\t\treturn st.processTrailerHeaders(f)\n\t}\n\n\t// [...] The identifier of a newly established stream MUST be\n\t// numerically greater than all streams that the initiating\n\t// endpoint has opened or reserved. [...]  An endpoint that\n\t// receives an unexpected stream identifier MUST respond with\n\t// a connection error (Section 5.4.1) of type PROTOCOL_ERROR.\n\tif id <= sc.maxClientStreamID {\n\t\treturn sc.countError(\"stream_went_down\", ConnectionError(ErrCodeProtocol))\n\t}\n\tsc.maxClientStreamID = id\n\n\tif sc.idleTimer != nil {\n\t\tsc.idleTimer.Stop()\n\t}\n\n\t// http://tools.ietf.org/html/rfc7540#section-5.1.2\n\t// [...] Endpoints MUST NOT exceed the limit set by their peer. An\n\t// endpoint that receives a HEADERS frame that causes their\n\t// advertised concurrent stream limit to be exceeded MUST treat\n\t// this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR\n\t// or REFUSED_STREAM.\n\tif sc.curClientStreams+1 > sc.advMaxStreams {\n\t\tif sc.unackedSettings == 0 {\n\t\t\t// They should know better.\n\t\t\treturn sc.countError(\"over_max_streams\", streamError(id, ErrCodeProtocol))\n\t\t}\n\t\t// Assume it's a network race, where they just haven't\n\t\t// received our last SETTINGS update. But actually\n\t\t// this can't happen yet, because we don't yet provide\n\t\t// a way for users to adjust server parameters at\n\t\t// runtime.\n\t\treturn sc.countError(\"over_max_streams_race\", streamError(id, ErrCodeRefusedStream))\n\t}\n\n\tinitialState := stateOpen\n\tif f.StreamEnded() {\n\t\tinitialState = stateHalfClosedRemote\n\t}\n\tst := sc.newStream(id, 0, initialState)\n\n\tif f.HasPriority() {\n\t\tif err := sc.checkPriority(f.StreamID, f.Priority); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsc.writeSched.AdjustStream(st.id, f.Priority)\n\t}\n\n\trw, req, err := sc.newWriterAndRequest(st, f)\n\tif err != nil {\n\t\treturn err\n\t}\n\tst.reqTrailer = req.Trailer\n\tif st.reqTrailer != nil {\n\t\tst.trailer = make(http.Header)\n\t}\n\tst.body = req.Body.(*requestBody).pipe // may be nil\n\tst.declBodyBytes = req.ContentLength\n\n\thandler := sc.handler.ServeHTTP\n\tif f.Truncated {\n\t\t// Their header list was too long. Send a 431 error.\n\t\thandler = handleHeaderListTooLong\n\t} else if err := checkValidHTTP2RequestHeaders(req.Header); err != nil {\n\t\thandler = new400Handler(err)\n\t}\n\n\t// The net/http package sets the read deadline from the\n\t// http.Server.ReadTimeout during the TLS handshake, but then\n\t// passes the connection off to us with the deadline already\n\t// set. Disarm it here after the request headers are read,\n\t// similar to how the http1 server works. Here it's\n\t// technically more like the http1 Server's ReadHeaderTimeout\n\t// (in Go 1.8), though. That's a more sane option anyway.\n\tif sc.hs.ReadTimeout > 0 {\n\t\tsc.conn.SetReadDeadline(time.Time{})\n\t\tst.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout)\n\t}\n\n\treturn sc.scheduleHandler(id, rw, req, handler)\n}\n\nfunc (sc *serverConn) upgradeRequest(req *http.Request) {\n\tsc.serveG.check()\n\tid := uint32(1)\n\tsc.maxClientStreamID = id\n\tst := sc.newStream(id, 0, stateHalfClosedRemote)\n\tst.reqTrailer = req.Trailer\n\tif st.reqTrailer != nil {\n\t\tst.trailer = make(http.Header)\n\t}\n\trw := sc.newResponseWriter(st, req)\n\n\t// Disable any read deadline set by the net/http package\n\t// prior to the upgrade.\n\tif sc.hs.ReadTimeout > 0 {\n\t\tsc.conn.SetReadDeadline(time.Time{})\n\t}\n\n\t// This is the first request on the connection,\n\t// so start the handler directly rather than going\n\t// through scheduleHandler.\n\tsc.curHandlers++\n\tgo sc.runHandler(rw, req, sc.handler.ServeHTTP)\n}\n\nfunc (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error {\n\tsc := st.sc\n\tsc.serveG.check()\n\tif st.gotTrailerHeader {\n\t\treturn sc.countError(\"dup_trailers\", ConnectionError(ErrCodeProtocol))\n\t}\n\tst.gotTrailerHeader = true\n\tif !f.StreamEnded() {\n\t\treturn sc.countError(\"trailers_not_ended\", streamError(st.id, ErrCodeProtocol))\n\t}\n\n\tif len(f.PseudoFields()) > 0 {\n\t\treturn sc.countError(\"trailers_pseudo\", streamError(st.id, ErrCodeProtocol))\n\t}\n\tif st.trailer != nil {\n\t\tfor _, hf := range f.RegularFields() {\n\t\t\tkey := sc.canonicalHeader(hf.Name)\n\t\t\tif !httpguts.ValidTrailerHeader(key) {\n\t\t\t\t// TODO: send more details to the peer somehow. But http2 has\n\t\t\t\t// no way to send debug data at a stream level. Discuss with\n\t\t\t\t// HTTP folk.\n\t\t\t\treturn sc.countError(\"trailers_bogus\", streamError(st.id, ErrCodeProtocol))\n\t\t\t}\n\t\t\tst.trailer[key] = append(st.trailer[key], hf.Value)\n\t\t}\n\t}\n\tst.endStream()\n\treturn nil\n}\n\nfunc (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error {\n\tif streamID == p.StreamDep {\n\t\t// Section 5.3.1: \"A stream cannot depend on itself. An endpoint MUST treat\n\t\t// this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR.\"\n\t\t// Section 5.3.3 says that a stream can depend on one of its dependencies,\n\t\t// so it's only self-dependencies that are forbidden.\n\t\treturn sc.countError(\"priority\", streamError(streamID, ErrCodeProtocol))\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processPriority(f *PriorityFrame) error {\n\tif err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil {\n\t\treturn err\n\t}\n\tsc.writeSched.AdjustStream(f.StreamID, f.PriorityParam)\n\treturn nil\n}\n\nfunc (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream {\n\tsc.serveG.check()\n\tif id == 0 {\n\t\tpanic(\"internal error: cannot create stream with id 0\")\n\t}\n\n\tctx, cancelCtx := context.WithCancel(sc.baseCtx)\n\tst := &stream{\n\t\tsc:        sc,\n\t\tid:        id,\n\t\tstate:     state,\n\t\tctx:       ctx,\n\t\tcancelCtx: cancelCtx,\n\t}\n\tst.cw.Init()\n\tst.flow.conn = &sc.flow // link to conn-level counter\n\tst.flow.add(sc.initialStreamSendWindowSize)\n\tst.inflow.init(sc.initialStreamRecvWindowSize)\n\tif sc.hs.WriteTimeout > 0 {\n\t\tst.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout)\n\t}\n\n\tsc.streams[id] = st\n\tsc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID})\n\tif st.isPushed() {\n\t\tsc.curPushedStreams++\n\t} else {\n\t\tsc.curClientStreams++\n\t}\n\tif sc.curOpenStreams() == 1 {\n\t\tsc.setConnState(http.StateActive)\n\t}\n\n\treturn st\n}\n\nfunc (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) {\n\tsc.serveG.check()\n\n\trp := httpcommon.ServerRequestParam{\n\t\tMethod:    f.PseudoValue(\"method\"),\n\t\tScheme:    f.PseudoValue(\"scheme\"),\n\t\tAuthority: f.PseudoValue(\"authority\"),\n\t\tPath:      f.PseudoValue(\"path\"),\n\t\tProtocol:  f.PseudoValue(\"protocol\"),\n\t}\n\n\t// extended connect is disabled, so we should not see :protocol\n\tif disableExtendedConnectProtocol && rp.Protocol != \"\" {\n\t\treturn nil, nil, sc.countError(\"bad_connect\", streamError(f.StreamID, ErrCodeProtocol))\n\t}\n\n\tisConnect := rp.Method == \"CONNECT\"\n\tif isConnect {\n\t\tif rp.Protocol == \"\" && (rp.Path != \"\" || rp.Scheme != \"\" || rp.Authority == \"\") {\n\t\t\treturn nil, nil, sc.countError(\"bad_connect\", streamError(f.StreamID, ErrCodeProtocol))\n\t\t}\n\t} else if rp.Method == \"\" || rp.Path == \"\" || (rp.Scheme != \"https\" && rp.Scheme != \"http\") {\n\t\t// See 8.1.2.6 Malformed Requests and Responses:\n\t\t//\n\t\t// Malformed requests or responses that are detected\n\t\t// MUST be treated as a stream error (Section 5.4.2)\n\t\t// of type PROTOCOL_ERROR.\"\n\t\t//\n\t\t// 8.1.2.3 Request Pseudo-Header Fields\n\t\t// \"All HTTP/2 requests MUST include exactly one valid\n\t\t// value for the :method, :scheme, and :path\n\t\t// pseudo-header fields\"\n\t\treturn nil, nil, sc.countError(\"bad_path_method\", streamError(f.StreamID, ErrCodeProtocol))\n\t}\n\n\theader := make(http.Header)\n\trp.Header = header\n\tfor _, hf := range f.RegularFields() {\n\t\theader.Add(sc.canonicalHeader(hf.Name), hf.Value)\n\t}\n\tif rp.Authority == \"\" {\n\t\trp.Authority = header.Get(\"Host\")\n\t}\n\tif rp.Protocol != \"\" {\n\t\theader.Set(\":protocol\", rp.Protocol)\n\t}\n\n\trw, req, err := sc.newWriterAndRequestNoBody(st, rp)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tbodyOpen := !f.StreamEnded()\n\tif bodyOpen {\n\t\tif vv, ok := rp.Header[\"Content-Length\"]; ok {\n\t\t\tif cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil {\n\t\t\t\treq.ContentLength = int64(cl)\n\t\t\t} else {\n\t\t\t\treq.ContentLength = 0\n\t\t\t}\n\t\t} else {\n\t\t\treq.ContentLength = -1\n\t\t}\n\t\treq.Body.(*requestBody).pipe = &pipe{\n\t\t\tb: &dataBuffer{expected: req.ContentLength},\n\t\t}\n\t}\n\treturn rw, req, nil\n}\n\nfunc (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp httpcommon.ServerRequestParam) (*responseWriter, *http.Request, error) {\n\tsc.serveG.check()\n\n\tvar tlsState *tls.ConnectionState // nil if not scheme https\n\tif rp.Scheme == \"https\" {\n\t\ttlsState = sc.tlsState\n\t}\n\n\tres := httpcommon.NewServerRequest(rp)\n\tif res.InvalidReason != \"\" {\n\t\treturn nil, nil, sc.countError(res.InvalidReason, streamError(st.id, ErrCodeProtocol))\n\t}\n\n\tbody := &requestBody{\n\t\tconn:          sc,\n\t\tstream:        st,\n\t\tneedsContinue: res.NeedsContinue,\n\t}\n\treq := (&http.Request{\n\t\tMethod:     rp.Method,\n\t\tURL:        res.URL,\n\t\tRemoteAddr: sc.remoteAddrStr,\n\t\tHeader:     rp.Header,\n\t\tRequestURI: res.RequestURI,\n\t\tProto:      \"HTTP/2.0\",\n\t\tProtoMajor: 2,\n\t\tProtoMinor: 0,\n\t\tTLS:        tlsState,\n\t\tHost:       rp.Authority,\n\t\tBody:       body,\n\t\tTrailer:    res.Trailer,\n\t}).WithContext(st.ctx)\n\trw := sc.newResponseWriter(st, req)\n\treturn rw, req, nil\n}\n\nfunc (sc *serverConn) newResponseWriter(st *stream, req *http.Request) *responseWriter {\n\trws := responseWriterStatePool.Get().(*responseWriterState)\n\tbwSave := rws.bw\n\t*rws = responseWriterState{} // zero all the fields\n\trws.conn = sc\n\trws.bw = bwSave\n\trws.bw.Reset(chunkWriter{rws})\n\trws.stream = st\n\trws.req = req\n\treturn &responseWriter{rws: rws}\n}\n\ntype unstartedHandler struct {\n\tstreamID uint32\n\trw       *responseWriter\n\treq      *http.Request\n\thandler  func(http.ResponseWriter, *http.Request)\n}\n\n// scheduleHandler starts a handler goroutine,\n// or schedules one to start as soon as an existing handler finishes.\nfunc (sc *serverConn) scheduleHandler(streamID uint32, rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) error {\n\tsc.serveG.check()\n\tmaxHandlers := sc.advMaxStreams\n\tif sc.curHandlers < maxHandlers {\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(rw, req, handler)\n\t\treturn nil\n\t}\n\tif len(sc.unstartedHandlers) > int(4*sc.advMaxStreams) {\n\t\treturn sc.countError(\"too_many_early_resets\", ConnectionError(ErrCodeEnhanceYourCalm))\n\t}\n\tsc.unstartedHandlers = append(sc.unstartedHandlers, unstartedHandler{\n\t\tstreamID: streamID,\n\t\trw:       rw,\n\t\treq:      req,\n\t\thandler:  handler,\n\t})\n\treturn nil\n}\n\nfunc (sc *serverConn) handlerDone() {\n\tsc.serveG.check()\n\tsc.curHandlers--\n\ti := 0\n\tmaxHandlers := sc.advMaxStreams\n\tfor ; i < len(sc.unstartedHandlers); i++ {\n\t\tu := sc.unstartedHandlers[i]\n\t\tif sc.streams[u.streamID] == nil {\n\t\t\t// This stream was reset before its goroutine had a chance to start.\n\t\t\tcontinue\n\t\t}\n\t\tif sc.curHandlers >= maxHandlers {\n\t\t\tbreak\n\t\t}\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(u.rw, u.req, u.handler)\n\t\tsc.unstartedHandlers[i] = unstartedHandler{} // don't retain references\n\t}\n\tsc.unstartedHandlers = sc.unstartedHandlers[i:]\n\tif len(sc.unstartedHandlers) == 0 {\n\t\tsc.unstartedHandlers = nil\n\t}\n}\n\n// Run on its own goroutine.\nfunc (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) {\n\tdefer sc.sendServeMsg(handlerDoneMsg)\n\tdidPanic := true\n\tdefer func() {\n\t\trw.rws.stream.cancelCtx()\n\t\tif req.MultipartForm != nil {\n\t\t\treq.MultipartForm.RemoveAll()\n\t\t}\n\t\tif didPanic {\n\t\t\te := recover()\n\t\t\tsc.writeFrameFromHandler(FrameWriteRequest{\n\t\t\t\twrite:  handlerPanicRST{rw.rws.stream.id},\n\t\t\t\tstream: rw.rws.stream,\n\t\t\t})\n\t\t\t// Same as net/http:\n\t\t\tif e != nil && e != http.ErrAbortHandler {\n\t\t\t\tconst size = 64 << 10\n\t\t\t\tbuf := make([]byte, size)\n\t\t\t\tbuf = buf[:runtime.Stack(buf, false)]\n\t\t\t\tsc.logf(\"http2: panic serving %v: %v\\n%s\", sc.conn.RemoteAddr(), e, buf)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\trw.handlerDone()\n\t}()\n\thandler(rw, req)\n\tdidPanic = false\n}\n\nfunc handleHeaderListTooLong(w http.ResponseWriter, r *http.Request) {\n\t// 10.5.1 Limits on Header Block Size:\n\t// .. \"A server that receives a larger header block than it is\n\t// willing to handle can send an HTTP 431 (Request Header Fields Too\n\t// Large) status code\"\n\tconst statusRequestHeaderFieldsTooLarge = 431 // only in Go 1.6+\n\tw.WriteHeader(statusRequestHeaderFieldsTooLarge)\n\tio.WriteString(w, \"<h1>HTTP Error 431</h1><p>Request Header Field(s) Too Large</p>\")\n}\n\n// called from handler goroutines.\n// h may be nil.\nfunc (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) error {\n\tsc.serveG.checkNotOn() // NOT on\n\tvar errc chan error\n\tif headerData.h != nil {\n\t\t// If there's a header map (which we don't own), so we have to block on\n\t\t// waiting for this frame to be written, so an http.Flush mid-handler\n\t\t// writes out the correct value of keys, before a handler later potentially\n\t\t// mutates it.\n\t\terrc = sc.srv.state.getErrChan()\n\t}\n\tif err := sc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  headerData,\n\t\tstream: st,\n\t\tdone:   errc,\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif errc != nil {\n\t\tselect {\n\t\tcase err := <-errc:\n\t\t\tsc.srv.state.putErrChan(errc)\n\t\t\treturn err\n\t\tcase <-sc.doneServing:\n\t\t\treturn errClientDisconnected\n\t\tcase <-st.cw:\n\t\t\treturn errStreamClosed\n\t\t}\n\t}\n\treturn nil\n}\n\n// called from handler goroutines.\nfunc (sc *serverConn) write100ContinueHeaders(st *stream) {\n\tsc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  write100ContinueHeadersFrame{st.id},\n\t\tstream: st,\n\t})\n}\n\n// A bodyReadMsg tells the server loop that the http.Handler read n\n// bytes of the DATA from the client on the given stream.\ntype bodyReadMsg struct {\n\tst *stream\n\tn  int\n}\n\n// called from handler goroutines.\n// Notes that the handler for the given stream ID read n bytes of its body\n// and schedules flow control tokens to be sent.\nfunc (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) {\n\tsc.serveG.checkNotOn() // NOT on\n\tif n > 0 {\n\t\tselect {\n\t\tcase sc.bodyReadCh <- bodyReadMsg{st, n}:\n\t\tcase <-sc.doneServing:\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) noteBodyRead(st *stream, n int) {\n\tsc.serveG.check()\n\tsc.sendWindowUpdate(nil, n) // conn-level\n\tif st.state != stateHalfClosedRemote && st.state != stateClosed {\n\t\t// Don't send this WINDOW_UPDATE if the stream is closed\n\t\t// remotely.\n\t\tsc.sendWindowUpdate(st, n)\n\t}\n}\n\n// st may be nil for conn-level\nfunc (sc *serverConn) sendWindowUpdate32(st *stream, n int32) {\n\tsc.sendWindowUpdate(st, int(n))\n}\n\n// st may be nil for conn-level\nfunc (sc *serverConn) sendWindowUpdate(st *stream, n int) {\n\tsc.serveG.check()\n\tvar streamID uint32\n\tvar send int32\n\tif st == nil {\n\t\tsend = sc.inflow.add(n)\n\t} else {\n\t\tstreamID = st.id\n\t\tsend = st.inflow.add(n)\n\t}\n\tif send == 0 {\n\t\treturn\n\t}\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite:  writeWindowUpdate{streamID: streamID, n: uint32(send)},\n\t\tstream: st,\n\t})\n}\n\n// requestBody is the Handler's Request.Body type.\n// Read and Close may be called concurrently.\ntype requestBody struct {\n\t_             incomparable\n\tstream        *stream\n\tconn          *serverConn\n\tcloseOnce     sync.Once // for use by Close only\n\tsawEOF        bool      // for use by Read only\n\tpipe          *pipe     // non-nil if we have an HTTP entity message body\n\tneedsContinue bool      // need to send a 100-continue\n}\n\nfunc (b *requestBody) Close() error {\n\tb.closeOnce.Do(func() {\n\t\tif b.pipe != nil {\n\t\t\tb.pipe.BreakWithError(errClosedBody)\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (b *requestBody) Read(p []byte) (n int, err error) {\n\tif b.needsContinue {\n\t\tb.needsContinue = false\n\t\tb.conn.write100ContinueHeaders(b.stream)\n\t}\n\tif b.pipe == nil || b.sawEOF {\n\t\treturn 0, io.EOF\n\t}\n\tn, err = b.pipe.Read(p)\n\tif err == io.EOF {\n\t\tb.sawEOF = true\n\t}\n\tif b.conn == nil {\n\t\treturn\n\t}\n\tb.conn.noteBodyReadFromHandler(b.stream, n, err)\n\treturn\n}\n\n// responseWriter is the http.ResponseWriter implementation. It's\n// intentionally small (1 pointer wide) to minimize garbage. The\n// responseWriterState pointer inside is zeroed at the end of a\n// request (in handlerDone) and calls on the responseWriter thereafter\n// simply crash (caller's mistake), but the much larger responseWriterState\n// and buffers are reused between multiple requests.\ntype responseWriter struct {\n\trws *responseWriterState\n}\n\n// Optional http.ResponseWriter interfaces implemented.\nvar (\n\t_ http.CloseNotifier = (*responseWriter)(nil)\n\t_ http.Flusher       = (*responseWriter)(nil)\n\t_ stringWriter       = (*responseWriter)(nil)\n)\n\ntype responseWriterState struct {\n\t// immutable within a request:\n\tstream *stream\n\treq    *http.Request\n\tconn   *serverConn\n\n\t// TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc\n\tbw *bufio.Writer // writing to a chunkWriter{this *responseWriterState}\n\n\t// mutated by http.Handler goroutine:\n\thandlerHeader http.Header // nil until called\n\tsnapHeader    http.Header // snapshot of handlerHeader at WriteHeader time\n\ttrailers      []string    // set in writeChunk\n\tstatus        int         // status code passed to WriteHeader\n\twroteHeader   bool        // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet.\n\tsentHeader    bool        // have we sent the header frame?\n\thandlerDone   bool        // handler has finished\n\n\tsentContentLen int64 // non-zero if handler set a Content-Length header\n\twroteBytes     int64\n\n\tcloseNotifierMu sync.Mutex // guards closeNotifierCh\n\tcloseNotifierCh chan bool  // nil until first used\n}\n\ntype chunkWriter struct{ rws *responseWriterState }\n\nfunc (cw chunkWriter) Write(p []byte) (n int, err error) {\n\tn, err = cw.rws.writeChunk(p)\n\tif err == errStreamClosed {\n\t\t// If writing failed because the stream has been closed,\n\t\t// return the reason it was closed.\n\t\terr = cw.rws.stream.closeErr\n\t}\n\treturn n, err\n}\n\nfunc (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 }\n\nfunc (rws *responseWriterState) hasNonemptyTrailers() bool {\n\tfor _, trailer := range rws.trailers {\n\t\tif _, ok := rws.handlerHeader[trailer]; ok {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// declareTrailer is called for each Trailer header when the\n// response header is written. It notes that a header will need to be\n// written in the trailers at the end of the response.\nfunc (rws *responseWriterState) declareTrailer(k string) {\n\tk = http.CanonicalHeaderKey(k)\n\tif !httpguts.ValidTrailerHeader(k) {\n\t\t// Forbidden by RFC 7230, section 4.1.2.\n\t\trws.conn.logf(\"ignoring invalid trailer %q\", k)\n\t\treturn\n\t}\n\tif !strSliceContains(rws.trailers, k) {\n\t\trws.trailers = append(rws.trailers, k)\n\t}\n}\n\n// writeChunk writes chunks from the bufio.Writer. But because\n// bufio.Writer may bypass its chunking, sometimes p may be\n// arbitrarily large.\n//\n// writeChunk is also responsible (on the first chunk) for sending the\n// HEADER response.\nfunc (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {\n\tif !rws.wroteHeader {\n\t\trws.writeHeader(200)\n\t}\n\n\tif rws.handlerDone {\n\t\trws.promoteUndeclaredTrailers()\n\t}\n\n\tisHeadResp := rws.req.Method == \"HEAD\"\n\tif !rws.sentHeader {\n\t\trws.sentHeader = true\n\t\tvar ctype, clen string\n\t\tif clen = rws.snapHeader.Get(\"Content-Length\"); clen != \"\" {\n\t\t\trws.snapHeader.Del(\"Content-Length\")\n\t\t\tif cl, err := strconv.ParseUint(clen, 10, 63); err == nil {\n\t\t\t\trws.sentContentLen = int64(cl)\n\t\t\t} else {\n\t\t\t\tclen = \"\"\n\t\t\t}\n\t\t}\n\t\t_, hasContentLength := rws.snapHeader[\"Content-Length\"]\n\t\tif !hasContentLength && clen == \"\" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) {\n\t\t\tclen = strconv.Itoa(len(p))\n\t\t}\n\t\t_, hasContentType := rws.snapHeader[\"Content-Type\"]\n\t\t// If the Content-Encoding is non-blank, we shouldn't\n\t\t// sniff the body. See Issue golang.org/issue/31753.\n\t\tce := rws.snapHeader.Get(\"Content-Encoding\")\n\t\thasCE := len(ce) > 0\n\t\tif !hasCE && !hasContentType && bodyAllowedForStatus(rws.status) && len(p) > 0 {\n\t\t\tctype = http.DetectContentType(p)\n\t\t}\n\t\tvar date string\n\t\tif _, ok := rws.snapHeader[\"Date\"]; !ok {\n\t\t\t// TODO(bradfitz): be faster here, like net/http? measure.\n\t\t\tdate = time.Now().UTC().Format(http.TimeFormat)\n\t\t}\n\n\t\tfor _, v := range rws.snapHeader[\"Trailer\"] {\n\t\t\tforeachHeaderElement(v, rws.declareTrailer)\n\t\t}\n\n\t\t// \"Connection\" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2),\n\t\t// but respect \"Connection\" == \"close\" to mean sending a GOAWAY and tearing\n\t\t// down the TCP connection when idle, like we do for HTTP/1.\n\t\t// TODO: remove more Connection-specific header fields here, in addition\n\t\t// to \"Connection\".\n\t\tif _, ok := rws.snapHeader[\"Connection\"]; ok {\n\t\t\tv := rws.snapHeader.Get(\"Connection\")\n\t\t\tdelete(rws.snapHeader, \"Connection\")\n\t\t\tif v == \"close\" {\n\t\t\t\trws.conn.startGracefulShutdown()\n\t\t\t}\n\t\t}\n\n\t\tendStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp\n\t\terr = rws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:      rws.stream.id,\n\t\t\thttpResCode:   rws.status,\n\t\t\th:             rws.snapHeader,\n\t\t\tendStream:     endStream,\n\t\t\tcontentType:   ctype,\n\t\t\tcontentLength: clen,\n\t\t\tdate:          date,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif endStream {\n\t\t\treturn 0, nil\n\t\t}\n\t}\n\tif isHeadResp {\n\t\treturn len(p), nil\n\t}\n\tif len(p) == 0 && !rws.handlerDone {\n\t\treturn 0, nil\n\t}\n\n\t// only send trailers if they have actually been defined by the\n\t// server handler.\n\thasNonemptyTrailers := rws.hasNonemptyTrailers()\n\tendStream := rws.handlerDone && !hasNonemptyTrailers\n\tif len(p) > 0 || endStream {\n\t\t// only send a 0 byte DATA frame if we're ending the stream.\n\t\tif err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\tif rws.handlerDone && hasNonemptyTrailers {\n\t\terr = rws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:  rws.stream.id,\n\t\t\th:         rws.handlerHeader,\n\t\t\ttrailers:  rws.trailers,\n\t\t\tendStream: true,\n\t\t})\n\t\treturn len(p), err\n\t}\n\treturn len(p), nil\n}\n\n// TrailerPrefix is a magic prefix for ResponseWriter.Header map keys\n// that, if present, signals that the map entry is actually for\n// the response trailers, and not the response headers. The prefix\n// is stripped after the ServeHTTP call finishes and the values are\n// sent in the trailers.\n//\n// This mechanism is intended only for trailers that are not known\n// prior to the headers being written. If the set of trailers is fixed\n// or known before the header is written, the normal Go trailers mechanism\n// is preferred:\n//\n//\thttps://golang.org/pkg/net/http/#ResponseWriter\n//\thttps://golang.org/pkg/net/http/#example_ResponseWriter_trailers\nconst TrailerPrefix = \"Trailer:\"\n\n// promoteUndeclaredTrailers permits http.Handlers to set trailers\n// after the header has already been flushed. Because the Go\n// ResponseWriter interface has no way to set Trailers (only the\n// Header), and because we didn't want to expand the ResponseWriter\n// interface, and because nobody used trailers, and because RFC 7230\n// says you SHOULD (but not must) predeclare any trailers in the\n// header, the official ResponseWriter rules said trailers in Go must\n// be predeclared, and then we reuse the same ResponseWriter.Header()\n// map to mean both Headers and Trailers. When it's time to write the\n// Trailers, we pick out the fields of Headers that were declared as\n// trailers. That worked for a while, until we found the first major\n// user of Trailers in the wild: gRPC (using them only over http2),\n// and gRPC libraries permit setting trailers mid-stream without\n// predeclaring them. So: change of plans. We still permit the old\n// way, but we also permit this hack: if a Header() key begins with\n// \"Trailer:\", the suffix of that key is a Trailer. Because ':' is an\n// invalid token byte anyway, there is no ambiguity. (And it's already\n// filtered out) It's mildly hacky, but not terrible.\n//\n// This method runs after the Handler is done and promotes any Header\n// fields to be trailers.\nfunc (rws *responseWriterState) promoteUndeclaredTrailers() {\n\tfor k, vv := range rws.handlerHeader {\n\t\tif !strings.HasPrefix(k, TrailerPrefix) {\n\t\t\tcontinue\n\t\t}\n\t\ttrailerKey := strings.TrimPrefix(k, TrailerPrefix)\n\t\trws.declareTrailer(trailerKey)\n\t\trws.handlerHeader[http.CanonicalHeaderKey(trailerKey)] = vv\n\t}\n\n\tif len(rws.trailers) > 1 {\n\t\tsorter := sorterPool.Get().(*sorter)\n\t\tsorter.SortStrings(rws.trailers)\n\t\tsorterPool.Put(sorter)\n\t}\n}\n\nfunc (w *responseWriter) SetReadDeadline(deadline time.Time) error {\n\tst := w.rws.stream\n\tif !deadline.IsZero() && deadline.Before(time.Now()) {\n\t\t// If we're setting a deadline in the past, reset the stream immediately\n\t\t// so writes after SetWriteDeadline returns will fail.\n\t\tst.onReadTimeout()\n\t\treturn nil\n\t}\n\tw.rws.conn.sendServeMsg(func(sc *serverConn) {\n\t\tif st.readDeadline != nil {\n\t\t\tif !st.readDeadline.Stop() {\n\t\t\t\t// Deadline already exceeded, or stream has been closed.\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif deadline.IsZero() {\n\t\t\tst.readDeadline = nil\n\t\t} else if st.readDeadline == nil {\n\t\t\tst.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout)\n\t\t} else {\n\t\t\tst.readDeadline.Reset(deadline.Sub(time.Now()))\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (w *responseWriter) SetWriteDeadline(deadline time.Time) error {\n\tst := w.rws.stream\n\tif !deadline.IsZero() && deadline.Before(time.Now()) {\n\t\t// If we're setting a deadline in the past, reset the stream immediately\n\t\t// so writes after SetWriteDeadline returns will fail.\n\t\tst.onWriteTimeout()\n\t\treturn nil\n\t}\n\tw.rws.conn.sendServeMsg(func(sc *serverConn) {\n\t\tif st.writeDeadline != nil {\n\t\t\tif !st.writeDeadline.Stop() {\n\t\t\t\t// Deadline already exceeded, or stream has been closed.\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif deadline.IsZero() {\n\t\t\tst.writeDeadline = nil\n\t\t} else if st.writeDeadline == nil {\n\t\t\tst.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout)\n\t\t} else {\n\t\t\tst.writeDeadline.Reset(deadline.Sub(time.Now()))\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (w *responseWriter) EnableFullDuplex() error {\n\t// We always support full duplex responses, so this is a no-op.\n\treturn nil\n}\n\nfunc (w *responseWriter) Flush() {\n\tw.FlushError()\n}\n\nfunc (w *responseWriter) FlushError() error {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Header called after Handler finished\")\n\t}\n\tvar err error\n\tif rws.bw.Buffered() > 0 {\n\t\terr = rws.bw.Flush()\n\t} else {\n\t\t// The bufio.Writer won't call chunkWriter.Write\n\t\t// (writeChunk with zero bytes), so we have to do it\n\t\t// ourselves to force the HTTP response header and/or\n\t\t// final DATA frame (with END_STREAM) to be sent.\n\t\t_, err = chunkWriter{rws}.Write(nil)\n\t\tif err == nil {\n\t\t\tselect {\n\t\t\tcase <-rws.stream.cw:\n\t\t\t\terr = rws.stream.closeErr\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (w *responseWriter) CloseNotify() <-chan bool {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"CloseNotify called after Handler finished\")\n\t}\n\trws.closeNotifierMu.Lock()\n\tch := rws.closeNotifierCh\n\tif ch == nil {\n\t\tch = make(chan bool, 1)\n\t\trws.closeNotifierCh = ch\n\t\tcw := rws.stream.cw\n\t\tgo func() {\n\t\t\tcw.Wait() // wait for close\n\t\t\tch <- true\n\t\t}()\n\t}\n\trws.closeNotifierMu.Unlock()\n\treturn ch\n}\n\nfunc (w *responseWriter) Header() http.Header {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Header called after Handler finished\")\n\t}\n\tif rws.handlerHeader == nil {\n\t\trws.handlerHeader = make(http.Header)\n\t}\n\treturn rws.handlerHeader\n}\n\n// checkWriteHeaderCode is a copy of net/http's checkWriteHeaderCode.\nfunc checkWriteHeaderCode(code int) {\n\t// Issue 22880: require valid WriteHeader status codes.\n\t// For now we only enforce that it's three digits.\n\t// In the future we might block things over 599 (600 and above aren't defined\n\t// at http://httpwg.org/specs/rfc7231.html#status.codes).\n\t// But for now any three digits.\n\t//\n\t// We used to send \"HTTP/1.1 000 0\" on the wire in responses but there's\n\t// no equivalent bogus thing we can realistically send in HTTP/2,\n\t// so we'll consistently panic instead and help people find their bugs\n\t// early. (We can't return an error from WriteHeader even if we wanted to.)\n\tif code < 100 || code > 999 {\n\t\tpanic(fmt.Sprintf(\"invalid WriteHeader code %v\", code))\n\t}\n}\n\nfunc (w *responseWriter) WriteHeader(code int) {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"WriteHeader called after Handler finished\")\n\t}\n\trws.writeHeader(code)\n}\n\nfunc (rws *responseWriterState) writeHeader(code int) {\n\tif rws.wroteHeader {\n\t\treturn\n\t}\n\n\tcheckWriteHeaderCode(code)\n\n\t// Handle informational headers\n\tif code >= 100 && code <= 199 {\n\t\t// Per RFC 8297 we must not clear the current header map\n\t\th := rws.handlerHeader\n\n\t\t_, cl := h[\"Content-Length\"]\n\t\t_, te := h[\"Transfer-Encoding\"]\n\t\tif cl || te {\n\t\t\th = h.Clone()\n\t\t\th.Del(\"Content-Length\")\n\t\t\th.Del(\"Transfer-Encoding\")\n\t\t}\n\n\t\trws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:    rws.stream.id,\n\t\t\thttpResCode: code,\n\t\t\th:           h,\n\t\t\tendStream:   rws.handlerDone && !rws.hasTrailers(),\n\t\t})\n\n\t\treturn\n\t}\n\n\trws.wroteHeader = true\n\trws.status = code\n\tif len(rws.handlerHeader) > 0 {\n\t\trws.snapHeader = cloneHeader(rws.handlerHeader)\n\t}\n}\n\nfunc cloneHeader(h http.Header) http.Header {\n\th2 := make(http.Header, len(h))\n\tfor k, vv := range h {\n\t\tvv2 := make([]string, len(vv))\n\t\tcopy(vv2, vv)\n\t\th2[k] = vv2\n\t}\n\treturn h2\n}\n\n// The Life Of A Write is like this:\n//\n// * Handler calls w.Write or w.WriteString ->\n// * -> rws.bw (*bufio.Writer) ->\n// * (Handler might call Flush)\n// * -> chunkWriter{rws}\n// * -> responseWriterState.writeChunk(p []byte)\n// * -> responseWriterState.writeChunk (most of the magic; see comment there)\nfunc (w *responseWriter) Write(p []byte) (n int, err error) {\n\treturn w.write(len(p), p, \"\")\n}\n\nfunc (w *responseWriter) WriteString(s string) (n int, err error) {\n\treturn w.write(len(s), nil, s)\n}\n\n// either dataB or dataS is non-zero.\nfunc (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Write called after Handler finished\")\n\t}\n\tif !rws.wroteHeader {\n\t\tw.WriteHeader(200)\n\t}\n\tif !bodyAllowedForStatus(rws.status) {\n\t\treturn 0, http.ErrBodyNotAllowed\n\t}\n\trws.wroteBytes += int64(len(dataB)) + int64(len(dataS)) // only one can be set\n\tif rws.sentContentLen != 0 && rws.wroteBytes > rws.sentContentLen {\n\t\t// TODO: send a RST_STREAM\n\t\treturn 0, errors.New(\"http2: handler wrote more than declared Content-Length\")\n\t}\n\n\tif dataB != nil {\n\t\treturn rws.bw.Write(dataB)\n\t} else {\n\t\treturn rws.bw.WriteString(dataS)\n\t}\n}\n\nfunc (w *responseWriter) handlerDone() {\n\trws := w.rws\n\trws.handlerDone = true\n\tw.Flush()\n\tw.rws = nil\n\tresponseWriterStatePool.Put(rws)\n}\n\n// Push errors.\nvar (\n\tErrRecursivePush    = errors.New(\"http2: recursive push not allowed\")\n\tErrPushLimitReached = errors.New(\"http2: push would exceed peer's SETTINGS_MAX_CONCURRENT_STREAMS\")\n)\n\nvar _ http.Pusher = (*responseWriter)(nil)\n\nfunc (w *responseWriter) Push(target string, opts *http.PushOptions) error {\n\tst := w.rws.stream\n\tsc := st.sc\n\tsc.serveG.checkNotOn()\n\n\t// No recursive pushes: \"PUSH_PROMISE frames MUST only be sent on a peer-initiated stream.\"\n\t// http://tools.ietf.org/html/rfc7540#section-6.6\n\tif st.isPushed() {\n\t\treturn ErrRecursivePush\n\t}\n\n\tif opts == nil {\n\t\topts = new(http.PushOptions)\n\t}\n\n\t// Default options.\n\tif opts.Method == \"\" {\n\t\topts.Method = \"GET\"\n\t}\n\tif opts.Header == nil {\n\t\topts.Header = http.Header{}\n\t}\n\twantScheme := \"http\"\n\tif w.rws.req.TLS != nil {\n\t\twantScheme = \"https\"\n\t}\n\n\t// Validate the request.\n\tu, err := url.Parse(target)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif u.Scheme == \"\" {\n\t\tif !strings.HasPrefix(target, \"/\") {\n\t\t\treturn fmt.Errorf(\"target must be an absolute URL or an absolute path: %q\", target)\n\t\t}\n\t\tu.Scheme = wantScheme\n\t\tu.Host = w.rws.req.Host\n\t} else {\n\t\tif u.Scheme != wantScheme {\n\t\t\treturn fmt.Errorf(\"cannot push URL with scheme %q from request with scheme %q\", u.Scheme, wantScheme)\n\t\t}\n\t\tif u.Host == \"\" {\n\t\t\treturn errors.New(\"URL must have a host\")\n\t\t}\n\t}\n\tfor k := range opts.Header {\n\t\tif strings.HasPrefix(k, \":\") {\n\t\t\treturn fmt.Errorf(\"promised request headers cannot include pseudo header %q\", k)\n\t\t}\n\t\t// These headers are meaningful only if the request has a body,\n\t\t// but PUSH_PROMISE requests cannot have a body.\n\t\t// http://tools.ietf.org/html/rfc7540#section-8.2\n\t\t// Also disallow Host, since the promised URL must be absolute.\n\t\tif asciiEqualFold(k, \"content-length\") ||\n\t\t\tasciiEqualFold(k, \"content-encoding\") ||\n\t\t\tasciiEqualFold(k, \"trailer\") ||\n\t\t\tasciiEqualFold(k, \"te\") ||\n\t\t\tasciiEqualFold(k, \"expect\") ||\n\t\t\tasciiEqualFold(k, \"host\") {\n\t\t\treturn fmt.Errorf(\"promised request headers cannot include %q\", k)\n\t\t}\n\t}\n\tif err := checkValidHTTP2RequestHeaders(opts.Header); err != nil {\n\t\treturn err\n\t}\n\n\t// The RFC effectively limits promised requests to GET and HEAD:\n\t// \"Promised requests MUST be cacheable [GET, HEAD, or POST], and MUST be safe [GET or HEAD]\"\n\t// http://tools.ietf.org/html/rfc7540#section-8.2\n\tif opts.Method != \"GET\" && opts.Method != \"HEAD\" {\n\t\treturn fmt.Errorf(\"method %q must be GET or HEAD\", opts.Method)\n\t}\n\n\tmsg := &startPushRequest{\n\t\tparent: st,\n\t\tmethod: opts.Method,\n\t\turl:    u,\n\t\theader: cloneHeader(opts.Header),\n\t\tdone:   sc.srv.state.getErrChan(),\n\t}\n\n\tselect {\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-st.cw:\n\t\treturn errStreamClosed\n\tcase sc.serveMsgCh <- msg:\n\t}\n\n\tselect {\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-st.cw:\n\t\treturn errStreamClosed\n\tcase err := <-msg.done:\n\t\tsc.srv.state.putErrChan(msg.done)\n\t\treturn err\n\t}\n}\n\ntype startPushRequest struct {\n\tparent *stream\n\tmethod string\n\turl    *url.URL\n\theader http.Header\n\tdone   chan error\n}\n\nfunc (sc *serverConn) startPush(msg *startPushRequest) {\n\tsc.serveG.check()\n\n\t// http://tools.ietf.org/html/rfc7540#section-6.6.\n\t// PUSH_PROMISE frames MUST only be sent on a peer-initiated stream that\n\t// is in either the \"open\" or \"half-closed (remote)\" state.\n\tif msg.parent.state != stateOpen && msg.parent.state != stateHalfClosedRemote {\n\t\t// responseWriter.Push checks that the stream is peer-initiated.\n\t\tmsg.done <- errStreamClosed\n\t\treturn\n\t}\n\n\t// http://tools.ietf.org/html/rfc7540#section-6.6.\n\tif !sc.pushEnabled {\n\t\tmsg.done <- http.ErrNotSupported\n\t\treturn\n\t}\n\n\t// PUSH_PROMISE frames must be sent in increasing order by stream ID, so\n\t// we allocate an ID for the promised stream lazily, when the PUSH_PROMISE\n\t// is written. Once the ID is allocated, we start the request handler.\n\tallocatePromisedID := func() (uint32, error) {\n\t\tsc.serveG.check()\n\n\t\t// Check this again, just in case. Technically, we might have received\n\t\t// an updated SETTINGS by the time we got around to writing this frame.\n\t\tif !sc.pushEnabled {\n\t\t\treturn 0, http.ErrNotSupported\n\t\t}\n\t\t// http://tools.ietf.org/html/rfc7540#section-6.5.2.\n\t\tif sc.curPushedStreams+1 > sc.clientMaxStreams {\n\t\t\treturn 0, ErrPushLimitReached\n\t\t}\n\n\t\t// http://tools.ietf.org/html/rfc7540#section-5.1.1.\n\t\t// Streams initiated by the server MUST use even-numbered identifiers.\n\t\t// A server that is unable to establish a new stream identifier can send a GOAWAY\n\t\t// frame so that the client is forced to open a new connection for new streams.\n\t\tif sc.maxPushPromiseID+2 >= 1<<31 {\n\t\t\tsc.startGracefulShutdownInternal()\n\t\t\treturn 0, ErrPushLimitReached\n\t\t}\n\t\tsc.maxPushPromiseID += 2\n\t\tpromisedID := sc.maxPushPromiseID\n\n\t\t// http://tools.ietf.org/html/rfc7540#section-8.2.\n\t\t// Strictly speaking, the new stream should start in \"reserved (local)\", then\n\t\t// transition to \"half closed (remote)\" after sending the initial HEADERS, but\n\t\t// we start in \"half closed (remote)\" for simplicity.\n\t\t// See further comments at the definition of stateHalfClosedRemote.\n\t\tpromised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote)\n\t\trw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{\n\t\t\tMethod:    msg.method,\n\t\t\tScheme:    msg.url.Scheme,\n\t\t\tAuthority: msg.url.Host,\n\t\t\tPath:      msg.url.RequestURI(),\n\t\t\tHeader:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE\n\t\t})\n\t\tif err != nil {\n\t\t\t// Should not happen, since we've already validated msg.url.\n\t\t\tpanic(fmt.Sprintf(\"newWriterAndRequestNoBody(%+v): %v\", msg.url, err))\n\t\t}\n\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(rw, req, sc.handler.ServeHTTP)\n\t\treturn promisedID, nil\n\t}\n\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: &writePushPromise{\n\t\t\tstreamID:           msg.parent.id,\n\t\t\tmethod:             msg.method,\n\t\t\turl:                msg.url,\n\t\t\th:                  msg.header,\n\t\t\tallocatePromisedID: allocatePromisedID,\n\t\t},\n\t\tstream: msg.parent,\n\t\tdone:   msg.done,\n\t})\n}\n\n// foreachHeaderElement splits v according to the \"#rule\" construction\n// in RFC 7230 section 7 and calls fn for each non-empty element.\nfunc foreachHeaderElement(v string, fn func(string)) {\n\tv = textproto.TrimString(v)\n\tif v == \"\" {\n\t\treturn\n\t}\n\tif !strings.Contains(v, \",\") {\n\t\tfn(v)\n\t\treturn\n\t}\n\tfor _, f := range strings.Split(v, \",\") {\n\t\tif f = textproto.TrimString(f); f != \"\" {\n\t\t\tfn(f)\n\t\t}\n\t}\n}\n\n// From http://httpwg.org/specs/rfc7540.html#rfc.section.8.1.2.2\nvar connHeaders = []string{\n\t\"Connection\",\n\t\"Keep-Alive\",\n\t\"Proxy-Connection\",\n\t\"Transfer-Encoding\",\n\t\"Upgrade\",\n}\n\n// checkValidHTTP2RequestHeaders checks whether h is a valid HTTP/2 request,\n// per RFC 7540 Section 8.1.2.2.\n// The returned error is reported to users.\nfunc checkValidHTTP2RequestHeaders(h http.Header) error {\n\tfor _, k := range connHeaders {\n\t\tif _, ok := h[k]; ok {\n\t\t\treturn fmt.Errorf(\"request header %q is not valid in HTTP/2\", k)\n\t\t}\n\t}\n\tte := h[\"Te\"]\n\tif len(te) > 0 && (len(te) > 1 || (te[0] != \"trailers\" && te[0] != \"\")) {\n\t\treturn errors.New(`request header \"TE\" may only be \"trailers\" in HTTP/2`)\n\t}\n\treturn nil\n}\n\nfunc new400Handler(err error) http.HandlerFunc {\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\thttp.Error(w, err.Error(), http.StatusBadRequest)\n\t}\n}\n\n// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives\n// disabled. See comments on h1ServerShutdownChan above for why\n// the code is written this way.\nfunc h1ServerKeepAlivesDisabled(hs *http.Server) bool {\n\tvar x interface{} = hs\n\ttype I interface {\n\t\tdoKeepAlives() bool\n\t}\n\tif hs, ok := x.(I); ok {\n\t\treturn !hs.doKeepAlives()\n\t}\n\treturn false\n}\n\nfunc (sc *serverConn) countError(name string, err error) error {\n\tif sc == nil || sc.srv == nil {\n\t\treturn err\n\t}\n\tf := sc.countErrorFunc\n\tif f == nil {\n\t\treturn err\n\t}\n\tvar typ string\n\tvar code ErrCode\n\tswitch e := err.(type) {\n\tcase ConnectionError:\n\t\ttyp = \"conn\"\n\t\tcode = ErrCode(e)\n\tcase StreamError:\n\t\ttyp = \"stream\"\n\t\tcode = ErrCode(e.Code)\n\tdefault:\n\t\treturn err\n\t}\n\tcodeStr := errCodeName[code]\n\tif codeStr == \"\" {\n\t\tcodeStr = strconv.Itoa(int(code))\n\t}\n\tf(fmt.Sprintf(\"%s_%s_%s\", typ, codeStr, name))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/transport.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Transport code.\n\npackage http2\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"compress/flate\"\n\t\"compress/gzip\"\n\t\"context\"\n\t\"crypto/rand\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/fs\"\n\t\"log\"\n\t\"math\"\n\t\"math/bits\"\n\tmathrand \"math/rand\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"net/textproto\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/idna\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\nconst (\n\t// transportDefaultConnFlow is how many connection-level flow control\n\t// tokens we give the server at start-up, past the default 64k.\n\ttransportDefaultConnFlow = 1 << 30\n\n\t// transportDefaultStreamFlow is how many stream-level flow\n\t// control tokens we announce to the peer, and how many bytes\n\t// we buffer per stream.\n\ttransportDefaultStreamFlow = 4 << 20\n\n\tdefaultUserAgent = \"Go-http-client/2.0\"\n\n\t// initialMaxConcurrentStreams is a connections maxConcurrentStreams until\n\t// it's received servers initial SETTINGS frame, which corresponds with the\n\t// spec's minimum recommended value.\n\tinitialMaxConcurrentStreams = 100\n\n\t// defaultMaxConcurrentStreams is a connections default maxConcurrentStreams\n\t// if the server doesn't include one in its initial SETTINGS frame.\n\tdefaultMaxConcurrentStreams = 1000\n)\n\n// Transport is an HTTP/2 Transport.\n//\n// A Transport internally caches connections to servers. It is safe\n// for concurrent use by multiple goroutines.\ntype Transport struct {\n\t// DialTLSContext specifies an optional dial function with context for\n\t// creating TLS connections for requests.\n\t//\n\t// If DialTLSContext and DialTLS is nil, tls.Dial is used.\n\t//\n\t// If the returned net.Conn has a ConnectionState method like tls.Conn,\n\t// it will be used to set http.Response.TLS.\n\tDialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error)\n\n\t// DialTLS specifies an optional dial function for creating\n\t// TLS connections for requests.\n\t//\n\t// If DialTLSContext and DialTLS is nil, tls.Dial is used.\n\t//\n\t// Deprecated: Use DialTLSContext instead, which allows the transport\n\t// to cancel dials as soon as they are no longer needed.\n\t// If both are set, DialTLSContext takes priority.\n\tDialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error)\n\n\t// TLSClientConfig specifies the TLS configuration to use with\n\t// tls.Client. If nil, the default configuration is used.\n\tTLSClientConfig *tls.Config\n\n\t// ConnPool optionally specifies an alternate connection pool to use.\n\t// If nil, the default is used.\n\tConnPool ClientConnPool\n\n\t// DisableCompression, if true, prevents the Transport from\n\t// requesting compression with an \"Accept-Encoding: gzip\"\n\t// request header when the Request contains no existing\n\t// Accept-Encoding value. If the Transport requests gzip on\n\t// its own and gets a gzipped response, it's transparently\n\t// decoded in the Response.Body. However, if the user\n\t// explicitly requested gzip it is not automatically\n\t// uncompressed.\n\tDisableCompression bool\n\n\t// AllowHTTP, if true, permits HTTP/2 requests using the insecure,\n\t// plain-text \"http\" scheme. Note that this does not enable h2c support.\n\tAllowHTTP bool\n\n\t// MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE to\n\t// send in the initial settings frame. It is how many bytes\n\t// of response headers are allowed. Unlike the http2 spec, zero here\n\t// means to use a default limit (currently 10MB). If you actually\n\t// want to advertise an unlimited value to the peer, Transport\n\t// interprets the highest possible value here (0xffffffff or 1<<32-1)\n\t// to mean no limit.\n\tMaxHeaderListSize uint32\n\n\t// MaxReadFrameSize is the http2 SETTINGS_MAX_FRAME_SIZE to send in the\n\t// initial settings frame. It is the size in bytes of the largest frame\n\t// payload that the sender is willing to receive. If 0, no setting is\n\t// sent, and the value is provided by the peer, which should be 16384\n\t// according to the spec:\n\t// https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2.\n\t// Values are bounded in the range 16k to 16M.\n\tMaxReadFrameSize uint32\n\n\t// MaxDecoderHeaderTableSize optionally specifies the http2\n\t// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It\n\t// informs the remote endpoint of the maximum size of the header compression\n\t// table used to decode header blocks, in octets. If zero, the default value\n\t// of 4096 is used.\n\tMaxDecoderHeaderTableSize uint32\n\n\t// MaxEncoderHeaderTableSize optionally specifies an upper limit for the\n\t// header compression table used for encoding request headers. Received\n\t// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,\n\t// the default value of 4096 is used.\n\tMaxEncoderHeaderTableSize uint32\n\n\t// StrictMaxConcurrentStreams controls whether the server's\n\t// SETTINGS_MAX_CONCURRENT_STREAMS should be respected\n\t// globally. If false, new TCP connections are created to the\n\t// server as needed to keep each under the per-connection\n\t// SETTINGS_MAX_CONCURRENT_STREAMS limit. If true, the\n\t// server's SETTINGS_MAX_CONCURRENT_STREAMS is interpreted as\n\t// a global limit and callers of RoundTrip block when needed,\n\t// waiting for their turn.\n\tStrictMaxConcurrentStreams bool\n\n\t// IdleConnTimeout is the maximum amount of time an idle\n\t// (keep-alive) connection will remain idle before closing\n\t// itself.\n\t// Zero means no limit.\n\tIdleConnTimeout time.Duration\n\n\t// ReadIdleTimeout is the timeout after which a health check using ping\n\t// frame will be carried out if no frame is received on the connection.\n\t// Note that a ping response will is considered a received frame, so if\n\t// there is no other traffic on the connection, the health check will\n\t// be performed every ReadIdleTimeout interval.\n\t// If zero, no health check is performed.\n\tReadIdleTimeout time.Duration\n\n\t// PingTimeout is the timeout after which the connection will be closed\n\t// if a response to Ping is not received.\n\t// Defaults to 15s.\n\tPingTimeout time.Duration\n\n\t// WriteByteTimeout is the timeout after which the connection will be\n\t// closed no data can be written to it. The timeout begins when data is\n\t// available to write, and is extended whenever any bytes are written.\n\tWriteByteTimeout time.Duration\n\n\t// CountError, if non-nil, is called on HTTP/2 transport errors.\n\t// It's intended to increment a metric for monitoring, such\n\t// as an expvar or Prometheus metric.\n\t// The errType consists of only ASCII word characters.\n\tCountError func(errType string)\n\n\t// t1, if non-nil, is the standard library Transport using\n\t// this transport. Its settings are used (but not its\n\t// RoundTrip method, etc).\n\tt1 *http.Transport\n\n\tconnPoolOnce  sync.Once\n\tconnPoolOrDef ClientConnPool // non-nil version of ConnPool\n\n\t*transportTestHooks\n}\n\n// Hook points used for testing.\n// Outside of tests, t.transportTestHooks is nil and these all have minimal implementations.\n// Inside tests, see the testSyncHooks function docs.\n\ntype transportTestHooks struct {\n\tnewclientconn func(*ClientConn)\n}\n\nfunc (t *Transport) maxHeaderListSize() uint32 {\n\tn := int64(t.MaxHeaderListSize)\n\tif t.t1 != nil && t.t1.MaxResponseHeaderBytes != 0 {\n\t\tn = t.t1.MaxResponseHeaderBytes\n\t\tif n > 0 {\n\t\t\tn = adjustHTTP1MaxHeaderSize(n)\n\t\t}\n\t}\n\tif n <= 0 {\n\t\treturn 10 << 20\n\t}\n\tif n >= 0xffffffff {\n\t\treturn 0\n\t}\n\treturn uint32(n)\n}\n\nfunc (t *Transport) disableCompression() bool {\n\treturn t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)\n}\n\n// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.\n// It returns an error if t1 has already been HTTP/2-enabled.\n//\n// Use ConfigureTransports instead to configure the HTTP/2 Transport.\nfunc ConfigureTransport(t1 *http.Transport) error {\n\t_, err := ConfigureTransports(t1)\n\treturn err\n}\n\n// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2.\n// It returns a new HTTP/2 Transport for further configuration.\n// It returns an error if t1 has already been HTTP/2-enabled.\nfunc ConfigureTransports(t1 *http.Transport) (*Transport, error) {\n\treturn configureTransports(t1)\n}\n\nfunc configureTransports(t1 *http.Transport) (*Transport, error) {\n\tconnPool := new(clientConnPool)\n\tt2 := &Transport{\n\t\tConnPool: noDialClientConnPool{connPool},\n\t\tt1:       t1,\n\t}\n\tconnPool.t = t2\n\tif err := registerHTTPSProtocol(t1, noDialH2RoundTripper{t2}); err != nil {\n\t\treturn nil, err\n\t}\n\tif t1.TLSClientConfig == nil {\n\t\tt1.TLSClientConfig = new(tls.Config)\n\t}\n\tif !strSliceContains(t1.TLSClientConfig.NextProtos, \"h2\") {\n\t\tt1.TLSClientConfig.NextProtos = append([]string{\"h2\"}, t1.TLSClientConfig.NextProtos...)\n\t}\n\tif !strSliceContains(t1.TLSClientConfig.NextProtos, \"http/1.1\") {\n\t\tt1.TLSClientConfig.NextProtos = append(t1.TLSClientConfig.NextProtos, \"http/1.1\")\n\t}\n\tupgradeFn := func(scheme, authority string, c net.Conn) http.RoundTripper {\n\t\taddr := authorityAddr(scheme, authority)\n\t\tif used, err := connPool.addConnIfNeeded(addr, t2, c); err != nil {\n\t\t\tgo c.Close()\n\t\t\treturn erringRoundTripper{err}\n\t\t} else if !used {\n\t\t\t// Turns out we don't need this c.\n\t\t\t// For example, two goroutines made requests to the same host\n\t\t\t// at the same time, both kicking off TCP dials. (since protocol\n\t\t\t// was unknown)\n\t\t\tgo c.Close()\n\t\t}\n\t\tif scheme == \"http\" {\n\t\t\treturn (*unencryptedTransport)(t2)\n\t\t}\n\t\treturn t2\n\t}\n\tif t1.TLSNextProto == nil {\n\t\tt1.TLSNextProto = make(map[string]func(string, *tls.Conn) http.RoundTripper)\n\t}\n\tt1.TLSNextProto[NextProtoTLS] = func(authority string, c *tls.Conn) http.RoundTripper {\n\t\treturn upgradeFn(\"https\", authority, c)\n\t}\n\t// The \"unencrypted_http2\" TLSNextProto key is used to pass off non-TLS HTTP/2 conns.\n\tt1.TLSNextProto[nextProtoUnencryptedHTTP2] = func(authority string, c *tls.Conn) http.RoundTripper {\n\t\tnc, err := unencryptedNetConnFromTLSConn(c)\n\t\tif err != nil {\n\t\t\tgo c.Close()\n\t\t\treturn erringRoundTripper{err}\n\t\t}\n\t\treturn upgradeFn(\"http\", authority, nc)\n\t}\n\treturn t2, nil\n}\n\n// unencryptedTransport is a Transport with a RoundTrip method that\n// always permits http:// URLs.\ntype unencryptedTransport Transport\n\nfunc (t *unencryptedTransport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn (*Transport)(t).RoundTripOpt(req, RoundTripOpt{allowHTTP: true})\n}\n\nfunc (t *Transport) connPool() ClientConnPool {\n\tt.connPoolOnce.Do(t.initConnPool)\n\treturn t.connPoolOrDef\n}\n\nfunc (t *Transport) initConnPool() {\n\tif t.ConnPool != nil {\n\t\tt.connPoolOrDef = t.ConnPool\n\t} else {\n\t\tt.connPoolOrDef = &clientConnPool{t: t}\n\t}\n}\n\n// ClientConn is the state of a single HTTP/2 client connection to an\n// HTTP/2 server.\ntype ClientConn struct {\n\tt             *Transport\n\ttconn         net.Conn             // usually *tls.Conn, except specialized impls\n\ttlsState      *tls.ConnectionState // nil only for specialized impls\n\tatomicReused  uint32               // whether conn is being reused; atomic\n\tsingleUse     bool                 // whether being used for a single http.Request\n\tgetConnCalled bool                 // used by clientConnPool\n\n\t// readLoop goroutine fields:\n\treaderDone chan struct{} // closed on error\n\treaderErr  error         // set before readerDone is closed\n\n\tidleTimeout time.Duration // or 0 for never\n\tidleTimer   *time.Timer\n\n\tmu               sync.Mutex // guards following\n\tcond             *sync.Cond // hold mu; broadcast on flow/closed changes\n\tflow             outflow    // our conn-level flow control quota (cs.outflow is per stream)\n\tinflow           inflow     // peer's conn-level flow control\n\tdoNotReuse       bool       // whether conn is marked to not be reused for any future requests\n\tclosing          bool\n\tclosed           bool\n\tclosedOnIdle     bool                     // true if conn was closed for idleness\n\tseenSettings     bool                     // true if we've seen a settings frame, false otherwise\n\tseenSettingsChan chan struct{}            // closed when seenSettings is true or frame reading fails\n\twantSettingsAck  bool                     // we sent a SETTINGS frame and haven't heard back\n\tgoAway           *GoAwayFrame             // if non-nil, the GoAwayFrame we received\n\tgoAwayDebug      string                   // goAway frame's debug data, retained as a string\n\tstreams          map[uint32]*clientStream // client-initiated\n\tstreamsReserved  int                      // incr by ReserveNewRequest; decr on RoundTrip\n\tnextStreamID     uint32\n\tpendingRequests  int                       // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams\n\tpings            map[[8]byte]chan struct{} // in flight ping data to notification channel\n\tbr               *bufio.Reader\n\tlastActive       time.Time\n\tlastIdle         time.Time // time last idle\n\t// Settings from peer: (also guarded by wmu)\n\tmaxFrameSize                uint32\n\tmaxConcurrentStreams        uint32\n\tpeerMaxHeaderListSize       uint64\n\tpeerMaxHeaderTableSize      uint32\n\tinitialWindowSize           uint32\n\tinitialStreamRecvWindowSize int32\n\treadIdleTimeout             time.Duration\n\tpingTimeout                 time.Duration\n\textendedConnectAllowed      bool\n\tstrictMaxConcurrentStreams  bool\n\n\t// rstStreamPingsBlocked works around an unfortunate gRPC behavior.\n\t// gRPC strictly limits the number of PING frames that it will receive.\n\t// The default is two pings per two hours, but the limit resets every time\n\t// the gRPC endpoint sends a HEADERS or DATA frame. See golang/go#70575.\n\t//\n\t// rstStreamPingsBlocked is set after receiving a response to a PING frame\n\t// bundled with an RST_STREAM (see pendingResets below), and cleared after\n\t// receiving a HEADERS or DATA frame.\n\trstStreamPingsBlocked bool\n\n\t// pendingResets is the number of RST_STREAM frames we have sent to the peer,\n\t// without confirming that the peer has received them. When we send a RST_STREAM,\n\t// we bundle it with a PING frame, unless a PING is already in flight. We count\n\t// the reset stream against the connection's concurrency limit until we get\n\t// a PING response. This limits the number of requests we'll try to send to a\n\t// completely unresponsive connection.\n\tpendingResets int\n\n\t// readBeforeStreamID is the smallest stream ID that has not been followed by\n\t// a frame read from the peer. We use this to determine when a request may\n\t// have been sent to a completely unresponsive connection:\n\t// If the request ID is less than readBeforeStreamID, then we have had some\n\t// indication of life on the connection since sending the request.\n\treadBeforeStreamID uint32\n\n\t// reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests.\n\t// Write to reqHeaderMu to lock it, read from it to unlock.\n\t// Lock reqmu BEFORE mu or wmu.\n\treqHeaderMu chan struct{}\n\n\t// internalStateHook reports state changes back to the net/http.ClientConn.\n\t// Note that this is different from the user state hook registered by\n\t// net/http.ClientConn.SetStateHook: The internal hook calls ClientConn,\n\t// which calls the user hook.\n\tinternalStateHook func()\n\n\t// wmu is held while writing.\n\t// Acquire BEFORE mu when holding both, to avoid blocking mu on network writes.\n\t// Only acquire both at the same time when changing peer settings.\n\twmu  sync.Mutex\n\tbw   *bufio.Writer\n\tfr   *Framer\n\twerr error        // first write error that has occurred\n\thbuf bytes.Buffer // HPACK encoder writes into this\n\thenc *hpack.Encoder\n}\n\n// clientStream is the state for a single HTTP/2 stream. One of these\n// is created for each Transport.RoundTrip call.\ntype clientStream struct {\n\tcc *ClientConn\n\n\t// Fields of Request that we may access even after the response body is closed.\n\tctx       context.Context\n\treqCancel <-chan struct{}\n\n\ttrace         *httptrace.ClientTrace // or nil\n\tID            uint32\n\tbufPipe       pipe // buffered pipe with the flow-controlled response payload\n\trequestedGzip bool\n\tisHead        bool\n\n\tabortOnce sync.Once\n\tabort     chan struct{} // closed to signal stream should end immediately\n\tabortErr  error         // set if abort is closed\n\n\tpeerClosed chan struct{} // closed when the peer sends an END_STREAM flag\n\tdonec      chan struct{} // closed after the stream is in the closed state\n\ton100      chan struct{} // buffered; written to if a 100 is received\n\n\trespHeaderRecv chan struct{}  // closed when headers are received\n\tres            *http.Response // set if respHeaderRecv is closed\n\n\tflow        outflow // guarded by cc.mu\n\tinflow      inflow  // guarded by cc.mu\n\tbytesRemain int64   // -1 means unknown; owned by transportResponseBody.Read\n\treadErr     error   // sticky read error; owned by transportResponseBody.Read\n\n\treqBody              io.ReadCloser\n\treqBodyContentLength int64         // -1 means unknown\n\treqBodyClosed        chan struct{} // guarded by cc.mu; non-nil on Close, closed when done\n\n\t// owned by writeRequest:\n\tsentEndStream bool // sent an END_STREAM flag to the peer\n\tsentHeaders   bool\n\n\t// owned by clientConnReadLoop:\n\tfirstByte       bool  // got the first response byte\n\tpastHeaders     bool  // got first MetaHeadersFrame (actual headers)\n\tpastTrailers    bool  // got optional second MetaHeadersFrame (trailers)\n\treadClosed      bool  // peer sent an END_STREAM flag\n\treadAborted     bool  // read loop reset the stream\n\ttotalHeaderSize int64 // total size of 1xx headers seen\n\n\ttrailer    http.Header  // accumulated trailers\n\tresTrailer *http.Header // client's Response.Trailer\n}\n\nvar got1xxFuncForTests func(int, textproto.MIMEHeader) error\n\n// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func,\n// if any. It returns nil if not set or if the Go version is too old.\nfunc (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error {\n\tif fn := got1xxFuncForTests; fn != nil {\n\t\treturn fn\n\t}\n\treturn traceGot1xxResponseFunc(cs.trace)\n}\n\nfunc (cs *clientStream) abortStream(err error) {\n\tcs.cc.mu.Lock()\n\tdefer cs.cc.mu.Unlock()\n\tcs.abortStreamLocked(err)\n}\n\nfunc (cs *clientStream) abortStreamLocked(err error) {\n\tcs.abortOnce.Do(func() {\n\t\tcs.abortErr = err\n\t\tclose(cs.abort)\n\t})\n\tif cs.reqBody != nil {\n\t\tcs.closeReqBodyLocked()\n\t}\n\t// TODO(dneil): Clean up tests where cs.cc.cond is nil.\n\tif cs.cc.cond != nil {\n\t\t// Wake up writeRequestBody if it is waiting on flow control.\n\t\tcs.cc.cond.Broadcast()\n\t}\n}\n\nfunc (cs *clientStream) abortRequestBodyWrite() {\n\tcc := cs.cc\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tif cs.reqBody != nil && cs.reqBodyClosed == nil {\n\t\tcs.closeReqBodyLocked()\n\t\tcc.cond.Broadcast()\n\t}\n}\n\nfunc (cs *clientStream) closeReqBodyLocked() {\n\tif cs.reqBodyClosed != nil {\n\t\treturn\n\t}\n\tcs.reqBodyClosed = make(chan struct{})\n\treqBodyClosed := cs.reqBodyClosed\n\tgo func() {\n\t\tcs.reqBody.Close()\n\t\tclose(reqBodyClosed)\n\t}()\n}\n\ntype stickyErrWriter struct {\n\tconn    net.Conn\n\ttimeout time.Duration\n\terr     *error\n}\n\nfunc (sew stickyErrWriter) Write(p []byte) (n int, err error) {\n\tif *sew.err != nil {\n\t\treturn 0, *sew.err\n\t}\n\tn, err = writeWithByteTimeout(sew.conn, sew.timeout, p)\n\t*sew.err = err\n\treturn n, err\n}\n\n// noCachedConnError is the concrete type of ErrNoCachedConn, which\n// needs to be detected by net/http regardless of whether it's its\n// bundled version (in h2_bundle.go with a rewritten type name) or\n// from a user's x/net/http2. As such, as it has a unique method name\n// (IsHTTP2NoCachedConnError) that net/http sniffs for via func\n// isNoCachedConnError.\ntype noCachedConnError struct{}\n\nfunc (noCachedConnError) IsHTTP2NoCachedConnError() {}\nfunc (noCachedConnError) Error() string             { return \"http2: no cached connection was available\" }\n\n// isNoCachedConnError reports whether err is of type noCachedConnError\n// or its equivalent renamed type in net/http2's h2_bundle.go. Both types\n// may coexist in the same running program.\nfunc isNoCachedConnError(err error) bool {\n\t_, ok := err.(interface{ IsHTTP2NoCachedConnError() })\n\treturn ok\n}\n\nvar ErrNoCachedConn error = noCachedConnError{}\n\n// RoundTripOpt are options for the Transport.RoundTripOpt method.\ntype RoundTripOpt struct {\n\t// OnlyCachedConn controls whether RoundTripOpt may\n\t// create a new TCP connection. If set true and\n\t// no cached connection is available, RoundTripOpt\n\t// will return ErrNoCachedConn.\n\tOnlyCachedConn bool\n\n\tallowHTTP bool // allow http:// URLs\n}\n\nfunc (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn t.RoundTripOpt(req, RoundTripOpt{})\n}\n\n// authorityAddr returns a given authority (a host/IP, or host:port / ip:port)\n// and returns a host:port. The port 443 is added if needed.\nfunc authorityAddr(scheme string, authority string) (addr string) {\n\thost, port, err := net.SplitHostPort(authority)\n\tif err != nil { // authority didn't have a port\n\t\thost = authority\n\t\tport = \"\"\n\t}\n\tif port == \"\" { // authority's port was empty\n\t\tport = \"443\"\n\t\tif scheme == \"http\" {\n\t\t\tport = \"80\"\n\t\t}\n\t}\n\tif a, err := idna.ToASCII(host); err == nil {\n\t\thost = a\n\t}\n\t// IPv6 address literal, without a port:\n\tif strings.HasPrefix(host, \"[\") && strings.HasSuffix(host, \"]\") {\n\t\treturn host + \":\" + port\n\t}\n\treturn net.JoinHostPort(host, port)\n}\n\n// RoundTripOpt is like RoundTrip, but takes options.\nfunc (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) {\n\tswitch req.URL.Scheme {\n\tcase \"https\":\n\t\t// Always okay.\n\tcase \"http\":\n\t\tif !t.AllowHTTP && !opt.allowHTTP {\n\t\t\treturn nil, errors.New(\"http2: unencrypted HTTP/2 not enabled\")\n\t\t}\n\tdefault:\n\t\treturn nil, errors.New(\"http2: unsupported scheme\")\n\t}\n\n\taddr := authorityAddr(req.URL.Scheme, req.URL.Host)\n\tfor retry := 0; ; retry++ {\n\t\tcc, err := t.connPool().GetClientConn(req, addr)\n\t\tif err != nil {\n\t\t\tt.vlogf(\"http2: Transport failed to get client conn for %s: %v\", addr, err)\n\t\t\treturn nil, err\n\t\t}\n\t\treused := !atomic.CompareAndSwapUint32(&cc.atomicReused, 0, 1)\n\t\ttraceGotConn(req, cc, reused)\n\t\tres, err := cc.RoundTrip(req)\n\t\tif err != nil && retry <= 6 {\n\t\t\troundTripErr := err\n\t\t\tif req, err = shouldRetryRequest(req, err); err == nil {\n\t\t\t\t// After the first retry, do exponential backoff with 10% jitter.\n\t\t\t\tif retry == 0 {\n\t\t\t\t\tt.vlogf(\"RoundTrip retrying after failure: %v\", roundTripErr)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tbackoff := float64(uint(1) << (uint(retry) - 1))\n\t\t\t\tbackoff += backoff * (0.1 * mathrand.Float64())\n\t\t\t\td := time.Second * time.Duration(backoff)\n\t\t\t\ttm := time.NewTimer(d)\n\t\t\t\tselect {\n\t\t\t\tcase <-tm.C:\n\t\t\t\t\tt.vlogf(\"RoundTrip retrying after failure: %v\", roundTripErr)\n\t\t\t\t\tcontinue\n\t\t\t\tcase <-req.Context().Done():\n\t\t\t\t\ttm.Stop()\n\t\t\t\t\terr = req.Context().Err()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err == errClientConnNotEstablished {\n\t\t\t// This ClientConn was created recently,\n\t\t\t// this is the first request to use it,\n\t\t\t// and the connection is closed and not usable.\n\t\t\t//\n\t\t\t// In this state, cc.idleTimer will remove the conn from the pool\n\t\t\t// when it fires. Stop the timer and remove it here so future requests\n\t\t\t// won't try to use this connection.\n\t\t\t//\n\t\t\t// If the timer has already fired and we're racing it, the redundant\n\t\t\t// call to MarkDead is harmless.\n\t\t\tif cc.idleTimer != nil {\n\t\t\t\tcc.idleTimer.Stop()\n\t\t\t}\n\t\t\tt.connPool().MarkDead(cc)\n\t\t}\n\t\tif err != nil {\n\t\t\tt.vlogf(\"RoundTrip failure: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\t\treturn res, nil\n\t}\n}\n\n// CloseIdleConnections closes any connections which were previously\n// connected from previous requests but are now sitting idle.\n// It does not interrupt any connections currently in use.\nfunc (t *Transport) CloseIdleConnections() {\n\tif cp, ok := t.connPool().(clientConnPoolIdleCloser); ok {\n\t\tcp.closeIdleConnections()\n\t}\n}\n\nvar (\n\terrClientConnClosed         = errors.New(\"http2: client conn is closed\")\n\terrClientConnUnusable       = errors.New(\"http2: client conn not usable\")\n\terrClientConnNotEstablished = errors.New(\"http2: client conn could not be established\")\n\terrClientConnGotGoAway      = errors.New(\"http2: Transport received Server's graceful shutdown GOAWAY\")\n\terrClientConnForceClosed    = errors.New(\"http2: client connection force closed via ClientConn.Close\")\n)\n\n// shouldRetryRequest is called by RoundTrip when a request fails to get\n// response headers. It is always called with a non-nil error.\n// It returns either a request to retry (either the same request, or a\n// modified clone), or an error if the request can't be replayed.\nfunc shouldRetryRequest(req *http.Request, err error) (*http.Request, error) {\n\tif !canRetryError(err) {\n\t\treturn nil, err\n\t}\n\t// If the Body is nil (or http.NoBody), it's safe to reuse\n\t// this request and its Body.\n\tif req.Body == nil || req.Body == http.NoBody {\n\t\treturn req, nil\n\t}\n\n\t// If the request body can be reset back to its original\n\t// state via the optional req.GetBody, do that.\n\tif req.GetBody != nil {\n\t\tbody, err := req.GetBody()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnewReq := *req\n\t\tnewReq.Body = body\n\t\treturn &newReq, nil\n\t}\n\n\t// The Request.Body can't reset back to the beginning, but we\n\t// don't seem to have started to read from it yet, so reuse\n\t// the request directly.\n\tif err == errClientConnUnusable {\n\t\treturn req, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error\", err)\n}\n\nfunc canRetryError(err error) bool {\n\tif err == errClientConnUnusable || err == errClientConnGotGoAway {\n\t\treturn true\n\t}\n\tif se, ok := err.(StreamError); ok {\n\t\tif se.Code == ErrCodeProtocol && se.Cause == errFromPeer {\n\t\t\t// See golang/go#47635, golang/go#42777\n\t\t\treturn true\n\t\t}\n\t\treturn se.Code == ErrCodeRefusedStream\n\t}\n\treturn false\n}\n\nfunc (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) {\n\tif t.transportTestHooks != nil {\n\t\treturn t.newClientConn(nil, singleUse, nil)\n\t}\n\thost, _, err := net.SplitHostPort(addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttconn, err := t.dialTLS(ctx, \"tcp\", addr, t.newTLSConfig(host))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn t.newClientConn(tconn, singleUse, nil)\n}\n\nfunc (t *Transport) newTLSConfig(host string) *tls.Config {\n\tcfg := new(tls.Config)\n\tif t.TLSClientConfig != nil {\n\t\t*cfg = *t.TLSClientConfig.Clone()\n\t}\n\tif !strSliceContains(cfg.NextProtos, NextProtoTLS) {\n\t\tcfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...)\n\t}\n\tif cfg.ServerName == \"\" {\n\t\tcfg.ServerName = host\n\t}\n\treturn cfg\n}\n\nfunc (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) {\n\tif t.DialTLSContext != nil {\n\t\treturn t.DialTLSContext(ctx, network, addr, tlsCfg)\n\t} else if t.DialTLS != nil {\n\t\treturn t.DialTLS(network, addr, tlsCfg)\n\t}\n\n\ttlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tstate := tlsCn.ConnectionState()\n\tif p := state.NegotiatedProtocol; p != NextProtoTLS {\n\t\treturn nil, fmt.Errorf(\"http2: unexpected ALPN protocol %q; want %q\", p, NextProtoTLS)\n\t}\n\tif !state.NegotiatedProtocolIsMutual {\n\t\treturn nil, errors.New(\"http2: could not negotiate protocol mutually\")\n\t}\n\treturn tlsCn, nil\n}\n\n// disableKeepAlives reports whether connections should be closed as\n// soon as possible after handling the first request.\nfunc (t *Transport) disableKeepAlives() bool {\n\treturn t.t1 != nil && t.t1.DisableKeepAlives\n}\n\nfunc (t *Transport) expectContinueTimeout() time.Duration {\n\tif t.t1 == nil {\n\t\treturn 0\n\t}\n\treturn t.t1.ExpectContinueTimeout\n}\n\nfunc (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) {\n\treturn t.newClientConn(c, t.disableKeepAlives(), nil)\n}\n\nfunc (t *Transport) newClientConn(c net.Conn, singleUse bool, internalStateHook func()) (*ClientConn, error) {\n\tconf := configFromTransport(t)\n\tcc := &ClientConn{\n\t\tt:                           t,\n\t\ttconn:                       c,\n\t\treaderDone:                  make(chan struct{}),\n\t\tnextStreamID:                1,\n\t\tmaxFrameSize:                16 << 10, // spec default\n\t\tinitialWindowSize:           65535,    // spec default\n\t\tinitialStreamRecvWindowSize: conf.MaxUploadBufferPerStream,\n\t\tmaxConcurrentStreams:        initialMaxConcurrentStreams, // \"infinite\", per spec. Use a smaller value until we have received server settings.\n\t\tstrictMaxConcurrentStreams:  conf.StrictMaxConcurrentRequests,\n\t\tpeerMaxHeaderListSize:       0xffffffffffffffff, // \"infinite\", per spec. Use 2^64-1 instead.\n\t\tstreams:                     make(map[uint32]*clientStream),\n\t\tsingleUse:                   singleUse,\n\t\tseenSettingsChan:            make(chan struct{}),\n\t\twantSettingsAck:             true,\n\t\treadIdleTimeout:             conf.SendPingTimeout,\n\t\tpingTimeout:                 conf.PingTimeout,\n\t\tpings:                       make(map[[8]byte]chan struct{}),\n\t\treqHeaderMu:                 make(chan struct{}, 1),\n\t\tlastActive:                  time.Now(),\n\t\tinternalStateHook:           internalStateHook,\n\t}\n\tif t.transportTestHooks != nil {\n\t\tt.transportTestHooks.newclientconn(cc)\n\t\tc = cc.tconn\n\t}\n\tif VerboseLogs {\n\t\tt.vlogf(\"http2: Transport creating client conn %p to %v\", cc, c.RemoteAddr())\n\t}\n\n\tcc.cond = sync.NewCond(&cc.mu)\n\tcc.flow.add(int32(initialWindowSize))\n\n\t// TODO: adjust this writer size to account for frame size +\n\t// MTU + crypto/tls record padding.\n\tcc.bw = bufio.NewWriter(stickyErrWriter{\n\t\tconn:    c,\n\t\ttimeout: conf.WriteByteTimeout,\n\t\terr:     &cc.werr,\n\t})\n\tcc.br = bufio.NewReader(c)\n\tcc.fr = NewFramer(cc.bw, cc.br)\n\tcc.fr.SetMaxReadFrameSize(conf.MaxReadFrameSize)\n\tif t.CountError != nil {\n\t\tcc.fr.countError = t.CountError\n\t}\n\tmaxHeaderTableSize := conf.MaxDecoderHeaderTableSize\n\tcc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil)\n\tcc.fr.MaxHeaderListSize = t.maxHeaderListSize()\n\n\tcc.henc = hpack.NewEncoder(&cc.hbuf)\n\tcc.henc.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize)\n\tcc.peerMaxHeaderTableSize = initialHeaderTableSize\n\n\tif cs, ok := c.(connectionStater); ok {\n\t\tstate := cs.ConnectionState()\n\t\tcc.tlsState = &state\n\t}\n\n\tinitialSettings := []Setting{\n\t\t{ID: SettingEnablePush, Val: 0},\n\t\t{ID: SettingInitialWindowSize, Val: uint32(cc.initialStreamRecvWindowSize)},\n\t}\n\tinitialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: conf.MaxReadFrameSize})\n\tif max := t.maxHeaderListSize(); max != 0 {\n\t\tinitialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max})\n\t}\n\tif maxHeaderTableSize != initialHeaderTableSize {\n\t\tinitialSettings = append(initialSettings, Setting{ID: SettingHeaderTableSize, Val: maxHeaderTableSize})\n\t}\n\n\tcc.bw.Write(clientPreface)\n\tcc.fr.WriteSettings(initialSettings...)\n\tcc.fr.WriteWindowUpdate(0, uint32(conf.MaxUploadBufferPerConnection))\n\tcc.inflow.init(conf.MaxUploadBufferPerConnection + initialWindowSize)\n\tcc.bw.Flush()\n\tif cc.werr != nil {\n\t\tcc.Close()\n\t\treturn nil, cc.werr\n\t}\n\n\t// Start the idle timer after the connection is fully initialized.\n\tif d := t.idleConnTimeout(); d != 0 {\n\t\tcc.idleTimeout = d\n\t\tcc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout)\n\t}\n\n\tgo cc.readLoop()\n\treturn cc, nil\n}\n\nfunc (cc *ClientConn) healthCheck() {\n\tpingTimeout := cc.pingTimeout\n\t// We don't need to periodically ping in the health check, because the readLoop of ClientConn will\n\t// trigger the healthCheck again if there is no frame received.\n\tctx, cancel := context.WithTimeout(context.Background(), pingTimeout)\n\tdefer cancel()\n\tcc.vlogf(\"http2: Transport sending health check\")\n\terr := cc.Ping(ctx)\n\tif err != nil {\n\t\tcc.vlogf(\"http2: Transport health check failure: %v\", err)\n\t\tcc.closeForLostPing()\n\t} else {\n\t\tcc.vlogf(\"http2: Transport health check success\")\n\t}\n}\n\n// SetDoNotReuse marks cc as not reusable for future HTTP requests.\nfunc (cc *ClientConn) SetDoNotReuse() {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tcc.doNotReuse = true\n}\n\nfunc (cc *ClientConn) setGoAway(f *GoAwayFrame) {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\told := cc.goAway\n\tcc.goAway = f\n\n\t// Merge the previous and current GoAway error frames.\n\tif cc.goAwayDebug == \"\" {\n\t\tcc.goAwayDebug = string(f.DebugData())\n\t}\n\tif old != nil && old.ErrCode != ErrCodeNo {\n\t\tcc.goAway.ErrCode = old.ErrCode\n\t}\n\tlast := f.LastStreamID\n\tfor streamID, cs := range cc.streams {\n\t\tif streamID <= last {\n\t\t\t// The server's GOAWAY indicates that it received this stream.\n\t\t\t// It will either finish processing it, or close the connection\n\t\t\t// without doing so. Either way, leave the stream alone for now.\n\t\t\tcontinue\n\t\t}\n\t\tif streamID == 1 && cc.goAway.ErrCode != ErrCodeNo {\n\t\t\t// Don't retry the first stream on a connection if we get a non-NO error.\n\t\t\t// If the server is sending an error on a new connection,\n\t\t\t// retrying the request on a new one probably isn't going to work.\n\t\t\tcs.abortStreamLocked(fmt.Errorf(\"http2: Transport received GOAWAY from server ErrCode:%v\", cc.goAway.ErrCode))\n\t\t} else {\n\t\t\t// Aborting the stream with errClentConnGotGoAway indicates that\n\t\t\t// the request should be retried on a new connection.\n\t\t\tcs.abortStreamLocked(errClientConnGotGoAway)\n\t\t}\n\t}\n}\n\n// CanTakeNewRequest reports whether the connection can take a new request,\n// meaning it has not been closed or received or sent a GOAWAY.\n//\n// If the caller is going to immediately make a new request on this\n// connection, use ReserveNewRequest instead.\nfunc (cc *ClientConn) CanTakeNewRequest() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.canTakeNewRequestLocked()\n}\n\n// ReserveNewRequest is like CanTakeNewRequest but also reserves a\n// concurrent stream in cc. The reservation is decremented on the\n// next call to RoundTrip.\nfunc (cc *ClientConn) ReserveNewRequest() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tif st := cc.idleStateLocked(); !st.canTakeNewRequest {\n\t\treturn false\n\t}\n\tcc.streamsReserved++\n\treturn true\n}\n\n// ClientConnState describes the state of a ClientConn.\ntype ClientConnState struct {\n\t// Closed is whether the connection is closed.\n\tClosed bool\n\n\t// Closing is whether the connection is in the process of\n\t// closing. It may be closing due to shutdown, being a\n\t// single-use connection, being marked as DoNotReuse, or\n\t// having received a GOAWAY frame.\n\tClosing bool\n\n\t// StreamsActive is how many streams are active.\n\tStreamsActive int\n\n\t// StreamsReserved is how many streams have been reserved via\n\t// ClientConn.ReserveNewRequest.\n\tStreamsReserved int\n\n\t// StreamsPending is how many requests have been sent in excess\n\t// of the peer's advertised MaxConcurrentStreams setting and\n\t// are waiting for other streams to complete.\n\tStreamsPending int\n\n\t// MaxConcurrentStreams is how many concurrent streams the\n\t// peer advertised as acceptable. Zero means no SETTINGS\n\t// frame has been received yet.\n\tMaxConcurrentStreams uint32\n\n\t// LastIdle, if non-zero, is when the connection last\n\t// transitioned to idle state.\n\tLastIdle time.Time\n}\n\n// State returns a snapshot of cc's state.\nfunc (cc *ClientConn) State() ClientConnState {\n\tcc.wmu.Lock()\n\tmaxConcurrent := cc.maxConcurrentStreams\n\tif !cc.seenSettings {\n\t\tmaxConcurrent = 0\n\t}\n\tcc.wmu.Unlock()\n\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn ClientConnState{\n\t\tClosed:               cc.closed,\n\t\tClosing:              cc.closing || cc.singleUse || cc.doNotReuse || cc.goAway != nil,\n\t\tStreamsActive:        len(cc.streams) + cc.pendingResets,\n\t\tStreamsReserved:      cc.streamsReserved,\n\t\tStreamsPending:       cc.pendingRequests,\n\t\tLastIdle:             cc.lastIdle,\n\t\tMaxConcurrentStreams: maxConcurrent,\n\t}\n}\n\n// clientConnIdleState describes the suitability of a client\n// connection to initiate a new RoundTrip request.\ntype clientConnIdleState struct {\n\tcanTakeNewRequest bool\n}\n\nfunc (cc *ClientConn) idleState() clientConnIdleState {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.idleStateLocked()\n}\n\nfunc (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {\n\tif cc.singleUse && cc.nextStreamID > 1 {\n\t\treturn\n\t}\n\tvar maxConcurrentOkay bool\n\tif cc.strictMaxConcurrentStreams {\n\t\t// We'll tell the caller we can take a new request to\n\t\t// prevent the caller from dialing a new TCP\n\t\t// connection, but then we'll block later before\n\t\t// writing it.\n\t\tmaxConcurrentOkay = true\n\t} else {\n\t\t// We can take a new request if the total of\n\t\t//   - active streams;\n\t\t//   - reservation slots for new streams; and\n\t\t//   - streams for which we have sent a RST_STREAM and a PING,\n\t\t//     but received no subsequent frame\n\t\t// is less than the concurrency limit.\n\t\tmaxConcurrentOkay = cc.currentRequestCountLocked() < int(cc.maxConcurrentStreams)\n\t}\n\n\tst.canTakeNewRequest = maxConcurrentOkay && cc.isUsableLocked()\n\n\t// If this connection has never been used for a request and is closed,\n\t// then let it take a request (which will fail).\n\t// If the conn was closed for idleness, we're racing the idle timer;\n\t// don't try to use the conn. (Issue #70515.)\n\t//\n\t// This avoids a situation where an error early in a connection's lifetime\n\t// goes unreported.\n\tif cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed && !cc.closedOnIdle {\n\t\tst.canTakeNewRequest = true\n\t}\n\n\treturn\n}\n\nfunc (cc *ClientConn) isUsableLocked() bool {\n\treturn cc.goAway == nil &&\n\t\t!cc.closed &&\n\t\t!cc.closing &&\n\t\t!cc.doNotReuse &&\n\t\tint64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 &&\n\t\t!cc.tooIdleLocked()\n}\n\n// canReserveLocked reports whether a net/http.ClientConn can reserve a slot on this conn.\n//\n// This follows slightly different rules than clientConnIdleState.canTakeNewRequest.\n// We only permit reservations up to the conn's concurrency limit.\n// This differs from ClientConn.ReserveNewRequest, which permits reservations\n// past the limit when StrictMaxConcurrentStreams is set.\nfunc (cc *ClientConn) canReserveLocked() bool {\n\tif cc.currentRequestCountLocked() >= int(cc.maxConcurrentStreams) {\n\t\treturn false\n\t}\n\tif !cc.isUsableLocked() {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// currentRequestCountLocked reports the number of concurrency slots currently in use,\n// including active streams, reserved slots, and reset streams waiting for acknowledgement.\nfunc (cc *ClientConn) currentRequestCountLocked() int {\n\treturn len(cc.streams) + cc.streamsReserved + cc.pendingResets\n}\n\nfunc (cc *ClientConn) canTakeNewRequestLocked() bool {\n\tst := cc.idleStateLocked()\n\treturn st.canTakeNewRequest\n}\n\n// availableLocked reports the number of concurrency slots available.\nfunc (cc *ClientConn) availableLocked() int {\n\tif !cc.canTakeNewRequestLocked() {\n\t\treturn 0\n\t}\n\treturn max(0, int(cc.maxConcurrentStreams)-cc.currentRequestCountLocked())\n}\n\n// tooIdleLocked reports whether this connection has been been sitting idle\n// for too much wall time.\nfunc (cc *ClientConn) tooIdleLocked() bool {\n\t// The Round(0) strips the monontonic clock reading so the\n\t// times are compared based on their wall time. We don't want\n\t// to reuse a connection that's been sitting idle during\n\t// VM/laptop suspend if monotonic time was also frozen.\n\treturn cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && time.Since(cc.lastIdle.Round(0)) > cc.idleTimeout\n}\n\n// onIdleTimeout is called from a time.AfterFunc goroutine. It will\n// only be called when we're idle, but because we're coming from a new\n// goroutine, there could be a new request coming in at the same time,\n// so this simply calls the synchronized closeIfIdle to shut down this\n// connection. The timer could just call closeIfIdle, but this is more\n// clear.\nfunc (cc *ClientConn) onIdleTimeout() {\n\tcc.closeIfIdle()\n}\n\nfunc (cc *ClientConn) closeConn() {\n\tt := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn)\n\tdefer t.Stop()\n\tcc.tconn.Close()\n\tcc.maybeCallStateHook()\n}\n\n// A tls.Conn.Close can hang for a long time if the peer is unresponsive.\n// Try to shut it down more aggressively.\nfunc (cc *ClientConn) forceCloseConn() {\n\ttc, ok := cc.tconn.(*tls.Conn)\n\tif !ok {\n\t\treturn\n\t}\n\tif nc := tc.NetConn(); nc != nil {\n\t\tnc.Close()\n\t}\n}\n\nfunc (cc *ClientConn) closeIfIdle() {\n\tcc.mu.Lock()\n\tif len(cc.streams) > 0 || cc.streamsReserved > 0 {\n\t\tcc.mu.Unlock()\n\t\treturn\n\t}\n\tcc.closed = true\n\tcc.closedOnIdle = true\n\tnextID := cc.nextStreamID\n\t// TODO: do clients send GOAWAY too? maybe? Just Close:\n\tcc.mu.Unlock()\n\n\tif VerboseLogs {\n\t\tcc.vlogf(\"http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)\", cc, cc.singleUse, nextID-2)\n\t}\n\tcc.closeConn()\n}\n\nfunc (cc *ClientConn) isDoNotReuseAndIdle() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.doNotReuse && len(cc.streams) == 0\n}\n\nvar shutdownEnterWaitStateHook = func() {}\n\n// Shutdown gracefully closes the client connection, waiting for running streams to complete.\nfunc (cc *ClientConn) Shutdown(ctx context.Context) error {\n\tif err := cc.sendGoAway(); err != nil {\n\t\treturn err\n\t}\n\t// Wait for all in-flight streams to complete or connection to close\n\tdone := make(chan struct{})\n\tcancelled := false // guarded by cc.mu\n\tgo func() {\n\t\tcc.mu.Lock()\n\t\tdefer cc.mu.Unlock()\n\t\tfor {\n\t\t\tif len(cc.streams) == 0 || cc.closed {\n\t\t\t\tcc.closed = true\n\t\t\t\tclose(done)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif cancelled {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcc.cond.Wait()\n\t\t}\n\t}()\n\tshutdownEnterWaitStateHook()\n\tselect {\n\tcase <-done:\n\t\tcc.closeConn()\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\tcc.mu.Lock()\n\t\t// Free the goroutine above\n\t\tcancelled = true\n\t\tcc.cond.Broadcast()\n\t\tcc.mu.Unlock()\n\t\treturn ctx.Err()\n\t}\n}\n\nfunc (cc *ClientConn) sendGoAway() error {\n\tcc.mu.Lock()\n\tclosing := cc.closing\n\tcc.closing = true\n\tmaxStreamID := cc.nextStreamID\n\tcc.mu.Unlock()\n\tif closing {\n\t\t// GOAWAY sent already\n\t\treturn nil\n\t}\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\t// Send a graceful shutdown frame to server\n\tif err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil {\n\t\treturn err\n\t}\n\tif err := cc.bw.Flush(); err != nil {\n\t\treturn err\n\t}\n\t// Prevent new requests\n\treturn nil\n}\n\n// closes the client connection immediately. In-flight requests are interrupted.\n// err is sent to streams.\nfunc (cc *ClientConn) closeForError(err error) {\n\tcc.mu.Lock()\n\tcc.closed = true\n\tfor _, cs := range cc.streams {\n\t\tcs.abortStreamLocked(err)\n\t}\n\tcc.cond.Broadcast()\n\tcc.mu.Unlock()\n\tcc.closeConn()\n}\n\n// Close closes the client connection immediately.\n//\n// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.\nfunc (cc *ClientConn) Close() error {\n\tcc.closeForError(errClientConnForceClosed)\n\treturn nil\n}\n\n// closes the client connection immediately. In-flight requests are interrupted.\nfunc (cc *ClientConn) closeForLostPing() {\n\terr := errors.New(\"http2: client connection lost\")\n\tif f := cc.t.CountError; f != nil {\n\t\tf(\"conn_close_lost_ping\")\n\t}\n\tcc.closeForError(err)\n}\n\n// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not\n// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests.\nvar errRequestCanceled = errors.New(\"net/http: request canceled\")\n\nfunc (cc *ClientConn) responseHeaderTimeout() time.Duration {\n\tif cc.t.t1 != nil {\n\t\treturn cc.t.t1.ResponseHeaderTimeout\n\t}\n\t// No way to do this (yet?) with just an http2.Transport. Probably\n\t// no need. Request.Cancel this is the new way. We only need to support\n\t// this for compatibility with the old http.Transport fields when\n\t// we're doing transparent http2.\n\treturn 0\n}\n\n// actualContentLength returns a sanitized version of\n// req.ContentLength, where 0 actually means zero (not unknown) and -1\n// means unknown.\nfunc actualContentLength(req *http.Request) int64 {\n\tif req.Body == nil || req.Body == http.NoBody {\n\t\treturn 0\n\t}\n\tif req.ContentLength != 0 {\n\t\treturn req.ContentLength\n\t}\n\treturn -1\n}\n\nfunc (cc *ClientConn) decrStreamReservations() {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tcc.decrStreamReservationsLocked()\n}\n\nfunc (cc *ClientConn) decrStreamReservationsLocked() {\n\tif cc.streamsReserved > 0 {\n\t\tcc.streamsReserved--\n\t}\n}\n\nfunc (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn cc.roundTrip(req, nil)\n}\n\nfunc (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) (*http.Response, error) {\n\tctx := req.Context()\n\tcs := &clientStream{\n\t\tcc:                   cc,\n\t\tctx:                  ctx,\n\t\treqCancel:            req.Cancel,\n\t\tisHead:               req.Method == \"HEAD\",\n\t\treqBody:              req.Body,\n\t\treqBodyContentLength: actualContentLength(req),\n\t\ttrace:                httptrace.ContextClientTrace(ctx),\n\t\tpeerClosed:           make(chan struct{}),\n\t\tabort:                make(chan struct{}),\n\t\trespHeaderRecv:       make(chan struct{}),\n\t\tdonec:                make(chan struct{}),\n\t}\n\n\tcs.requestedGzip = httpcommon.IsRequestGzip(req.Method, req.Header, cc.t.disableCompression())\n\n\tgo cs.doRequest(req, streamf)\n\n\twaitDone := func() error {\n\t\tselect {\n\t\tcase <-cs.donec:\n\t\t\treturn nil\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\t}\n\t}\n\n\thandleResponseHeaders := func() (*http.Response, error) {\n\t\tres := cs.res\n\t\tif res.StatusCode > 299 {\n\t\t\t// On error or status code 3xx, 4xx, 5xx, etc abort any\n\t\t\t// ongoing write, assuming that the server doesn't care\n\t\t\t// about our request body. If the server replied with 1xx or\n\t\t\t// 2xx, however, then assume the server DOES potentially\n\t\t\t// want our body (e.g. full-duplex streaming:\n\t\t\t// golang.org/issue/13444). If it turns out the server\n\t\t\t// doesn't, they'll RST_STREAM us soon enough. This is a\n\t\t\t// heuristic to avoid adding knobs to Transport. Hopefully\n\t\t\t// we can keep it.\n\t\t\tcs.abortRequestBodyWrite()\n\t\t}\n\t\tres.Request = req\n\t\tres.TLS = cc.tlsState\n\t\tif res.Body == noBody && actualContentLength(req) == 0 {\n\t\t\t// If there isn't a request or response body still being\n\t\t\t// written, then wait for the stream to be closed before\n\t\t\t// RoundTrip returns.\n\t\t\tif err := waitDone(); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn res, nil\n\t}\n\n\tcancelRequest := func(cs *clientStream, err error) error {\n\t\tcs.cc.mu.Lock()\n\t\tbodyClosed := cs.reqBodyClosed\n\t\tcs.cc.mu.Unlock()\n\t\t// Wait for the request body to be closed.\n\t\t//\n\t\t// If nothing closed the body before now, abortStreamLocked\n\t\t// will have started a goroutine to close it.\n\t\t//\n\t\t// Closing the body before returning avoids a race condition\n\t\t// with net/http checking its readTrackingBody to see if the\n\t\t// body was read from or closed. See golang/go#60041.\n\t\t//\n\t\t// The body is closed in a separate goroutine without the\n\t\t// connection mutex held, but dropping the mutex before waiting\n\t\t// will keep us from holding it indefinitely if the body\n\t\t// close is slow for some reason.\n\t\tif bodyClosed != nil {\n\t\t\t<-bodyClosed\n\t\t}\n\t\treturn err\n\t}\n\n\tfor {\n\t\tselect {\n\t\tcase <-cs.respHeaderRecv:\n\t\t\treturn handleResponseHeaders()\n\t\tcase <-cs.abort:\n\t\t\tselect {\n\t\t\tcase <-cs.respHeaderRecv:\n\t\t\t\t// If both cs.respHeaderRecv and cs.abort are signaling,\n\t\t\t\t// pick respHeaderRecv. The server probably wrote the\n\t\t\t\t// response and immediately reset the stream.\n\t\t\t\t// golang.org/issue/49645\n\t\t\t\treturn handleResponseHeaders()\n\t\t\tdefault:\n\t\t\t\twaitDone()\n\t\t\t\treturn nil, cs.abortErr\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\terr := ctx.Err()\n\t\t\tcs.abortStream(err)\n\t\t\treturn nil, cancelRequest(cs, err)\n\t\tcase <-cs.reqCancel:\n\t\t\tcs.abortStream(errRequestCanceled)\n\t\t\treturn nil, cancelRequest(cs, errRequestCanceled)\n\t\t}\n\t}\n}\n\n// doRequest runs for the duration of the request lifetime.\n//\n// It sends the request and performs post-request cleanup (closing Request.Body, etc.).\nfunc (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) {\n\terr := cs.writeRequest(req, streamf)\n\tcs.cleanupWriteRequest(err)\n}\n\nvar errExtendedConnectNotSupported = errors.New(\"net/http: extended connect not supported by peer\")\n\n// writeRequest sends a request.\n//\n// It returns nil after the request is written, the response read,\n// and the request stream is half-closed by the peer.\n//\n// It returns non-nil if the request ends otherwise.\n// If the returned error is StreamError, the error Code may be used in resetting the stream.\nfunc (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStream)) (err error) {\n\tcc := cs.cc\n\tctx := cs.ctx\n\n\t// wait for setting frames to be received, a server can change this value later,\n\t// but we just wait for the first settings frame\n\tvar isExtendedConnect bool\n\tif req.Method == \"CONNECT\" && req.Header.Get(\":protocol\") != \"\" {\n\t\tisExtendedConnect = true\n\t}\n\n\t// Acquire the new-request lock by writing to reqHeaderMu.\n\t// This lock guards the critical section covering allocating a new stream ID\n\t// (requires mu) and creating the stream (requires wmu).\n\tif cc.reqHeaderMu == nil {\n\t\tpanic(\"RoundTrip on uninitialized ClientConn\") // for tests\n\t}\n\tif isExtendedConnect {\n\t\tselect {\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cc.seenSettingsChan:\n\t\t\tif !cc.extendedConnectAllowed {\n\t\t\t\treturn errExtendedConnectNotSupported\n\t\t\t}\n\t\t}\n\t}\n\tselect {\n\tcase cc.reqHeaderMu <- struct{}{}:\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\t}\n\n\tcc.mu.Lock()\n\tif cc.idleTimer != nil {\n\t\tcc.idleTimer.Stop()\n\t}\n\tcc.decrStreamReservationsLocked()\n\tif err := cc.awaitOpenSlotForStreamLocked(cs); err != nil {\n\t\tcc.mu.Unlock()\n\t\t<-cc.reqHeaderMu\n\t\treturn err\n\t}\n\tcc.addStreamLocked(cs) // assigns stream ID\n\tif isConnectionCloseRequest(req) {\n\t\tcc.doNotReuse = true\n\t}\n\tcc.mu.Unlock()\n\n\tif streamf != nil {\n\t\tstreamf(cs)\n\t}\n\n\tcontinueTimeout := cc.t.expectContinueTimeout()\n\tif continueTimeout != 0 {\n\t\tif !httpguts.HeaderValuesContainsToken(req.Header[\"Expect\"], \"100-continue\") {\n\t\t\tcontinueTimeout = 0\n\t\t} else {\n\t\t\tcs.on100 = make(chan struct{}, 1)\n\t\t}\n\t}\n\n\t// Past this point (where we send request headers), it is possible for\n\t// RoundTrip to return successfully. Since the RoundTrip contract permits\n\t// the caller to \"mutate or reuse\" the Request after closing the Response's Body,\n\t// we must take care when referencing the Request from here on.\n\terr = cs.encodeAndWriteHeaders(req)\n\t<-cc.reqHeaderMu\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thasBody := cs.reqBodyContentLength != 0\n\tif !hasBody {\n\t\tcs.sentEndStream = true\n\t} else {\n\t\tif continueTimeout != 0 {\n\t\t\ttraceWait100Continue(cs.trace)\n\t\t\ttimer := time.NewTimer(continueTimeout)\n\t\t\tselect {\n\t\t\tcase <-timer.C:\n\t\t\t\terr = nil\n\t\t\tcase <-cs.on100:\n\t\t\t\terr = nil\n\t\t\tcase <-cs.abort:\n\t\t\t\terr = cs.abortErr\n\t\t\tcase <-ctx.Done():\n\t\t\t\terr = ctx.Err()\n\t\t\tcase <-cs.reqCancel:\n\t\t\t\terr = errRequestCanceled\n\t\t\t}\n\t\t\ttimer.Stop()\n\t\t\tif err != nil {\n\t\t\t\ttraceWroteRequest(cs.trace, err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err = cs.writeRequestBody(req); err != nil {\n\t\t\tif err != errStopReqBodyWrite {\n\t\t\t\ttraceWroteRequest(cs.trace, err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tcs.sentEndStream = true\n\t\t}\n\t}\n\n\ttraceWroteRequest(cs.trace, err)\n\n\tvar respHeaderTimer <-chan time.Time\n\tvar respHeaderRecv chan struct{}\n\tif d := cc.responseHeaderTimeout(); d != 0 {\n\t\ttimer := time.NewTimer(d)\n\t\tdefer timer.Stop()\n\t\trespHeaderTimer = timer.C\n\t\trespHeaderRecv = cs.respHeaderRecv\n\t}\n\t// Wait until the peer half-closes its end of the stream,\n\t// or until the request is aborted (via context, error, or otherwise),\n\t// whichever comes first.\n\tfor {\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\treturn nil\n\t\tcase <-respHeaderTimer:\n\t\t\treturn errTimeout\n\t\tcase <-respHeaderRecv:\n\t\t\trespHeaderRecv = nil\n\t\t\trespHeaderTimer = nil // keep waiting for END_STREAM\n\t\tcase <-cs.abort:\n\t\t\treturn cs.abortErr\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\t}\n\t}\n}\n\nfunc (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error {\n\tcc := cs.cc\n\tctx := cs.ctx\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\n\t// If the request was canceled while waiting for cc.mu, just quit.\n\tselect {\n\tcase <-cs.abort:\n\t\treturn cs.abortErr\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\tdefault:\n\t}\n\n\t// Encode headers.\n\t//\n\t// we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is\n\t// sent by writeRequestBody below, along with any Trailers,\n\t// again in form HEADERS{1}, CONTINUATION{0,})\n\tcc.hbuf.Reset()\n\tres, err := encodeRequestHeaders(req, cs.requestedGzip, cc.peerMaxHeaderListSize, func(name, value string) {\n\t\tcc.writeHeader(name, value)\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"http2: %w\", err)\n\t}\n\thdrs := cc.hbuf.Bytes()\n\n\t// Write the request.\n\tendStream := !res.HasBody && !res.HasTrailers\n\tcs.sentHeaders = true\n\terr = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)\n\ttraceWroteHeaders(cs.trace)\n\treturn err\n}\n\nfunc encodeRequestHeaders(req *http.Request, addGzipHeader bool, peerMaxHeaderListSize uint64, headerf func(name, value string)) (httpcommon.EncodeHeadersResult, error) {\n\treturn httpcommon.EncodeHeaders(req.Context(), httpcommon.EncodeHeadersParam{\n\t\tRequest: httpcommon.Request{\n\t\t\tHeader:              req.Header,\n\t\t\tTrailer:             req.Trailer,\n\t\t\tURL:                 req.URL,\n\t\t\tHost:                req.Host,\n\t\t\tMethod:              req.Method,\n\t\t\tActualContentLength: actualContentLength(req),\n\t\t},\n\t\tAddGzipHeader:         addGzipHeader,\n\t\tPeerMaxHeaderListSize: peerMaxHeaderListSize,\n\t\tDefaultUserAgent:      defaultUserAgent,\n\t}, headerf)\n}\n\n// cleanupWriteRequest performs post-request tasks.\n//\n// If err (the result of writeRequest) is non-nil and the stream is not closed,\n// cleanupWriteRequest will send a reset to the peer.\nfunc (cs *clientStream) cleanupWriteRequest(err error) {\n\tcc := cs.cc\n\n\tif cs.ID == 0 {\n\t\t// We were canceled before creating the stream, so return our reservation.\n\t\tcc.decrStreamReservations()\n\t}\n\n\t// TODO: write h12Compare test showing whether\n\t// Request.Body is closed by the Transport,\n\t// and in multiple cases: server replies <=299 and >299\n\t// while still writing request body\n\tcc.mu.Lock()\n\tmustCloseBody := false\n\tif cs.reqBody != nil && cs.reqBodyClosed == nil {\n\t\tmustCloseBody = true\n\t\tcs.reqBodyClosed = make(chan struct{})\n\t}\n\tbodyClosed := cs.reqBodyClosed\n\tcloseOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil\n\t// Have we read any frames from the connection since sending this request?\n\treadSinceStream := cc.readBeforeStreamID > cs.ID\n\tcc.mu.Unlock()\n\tif mustCloseBody {\n\t\tcs.reqBody.Close()\n\t\tclose(bodyClosed)\n\t}\n\tif bodyClosed != nil {\n\t\t<-bodyClosed\n\t}\n\n\tif err != nil && cs.sentEndStream {\n\t\t// If the connection is closed immediately after the response is read,\n\t\t// we may be aborted before finishing up here. If the stream was closed\n\t\t// cleanly on both sides, there is no error.\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\terr = nil\n\t\tdefault:\n\t\t}\n\t}\n\tif err != nil {\n\t\tcs.abortStream(err) // possibly redundant, but harmless\n\t\tif cs.sentHeaders {\n\t\t\tif se, ok := err.(StreamError); ok {\n\t\t\t\tif se.Cause != errFromPeer {\n\t\t\t\t\tcc.writeStreamReset(cs.ID, se.Code, false, err)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're cancelling an in-flight request.\n\t\t\t\t//\n\t\t\t\t// This could be due to the server becoming unresponsive.\n\t\t\t\t// To avoid sending too many requests on a dead connection,\n\t\t\t\t// if we haven't read any frames from the connection since\n\t\t\t\t// sending this request, we let it continue to consume\n\t\t\t\t// a concurrency slot until we can confirm the server is\n\t\t\t\t// still responding.\n\t\t\t\t// We do this by sending a PING frame along with the RST_STREAM\n\t\t\t\t// (unless a ping is already in flight).\n\t\t\t\t//\n\t\t\t\t// For simplicity, we don't bother tracking the PING payload:\n\t\t\t\t// We reset cc.pendingResets any time we receive a PING ACK.\n\t\t\t\t//\n\t\t\t\t// We skip this if the conn is going to be closed on idle,\n\t\t\t\t// because it's short lived and will probably be closed before\n\t\t\t\t// we get the ping response.\n\t\t\t\tping := false\n\t\t\t\tif !closeOnIdle && !readSinceStream {\n\t\t\t\t\tcc.mu.Lock()\n\t\t\t\t\t// rstStreamPingsBlocked works around a gRPC behavior:\n\t\t\t\t\t// see comment on the field for details.\n\t\t\t\t\tif !cc.rstStreamPingsBlocked {\n\t\t\t\t\t\tif cc.pendingResets == 0 {\n\t\t\t\t\t\t\tping = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcc.pendingResets++\n\t\t\t\t\t}\n\t\t\t\t\tcc.mu.Unlock()\n\t\t\t\t}\n\t\t\t\tcc.writeStreamReset(cs.ID, ErrCodeCancel, ping, err)\n\t\t\t}\n\t\t}\n\t\tcs.bufPipe.CloseWithError(err) // no-op if already closed\n\t} else {\n\t\tif cs.sentHeaders && !cs.sentEndStream {\n\t\t\tcc.writeStreamReset(cs.ID, ErrCodeNo, false, nil)\n\t\t}\n\t\tcs.bufPipe.CloseWithError(errRequestCanceled)\n\t}\n\tif cs.ID != 0 {\n\t\tcc.forgetStreamID(cs.ID)\n\t}\n\n\tcc.wmu.Lock()\n\twerr := cc.werr\n\tcc.wmu.Unlock()\n\tif werr != nil {\n\t\tcc.Close()\n\t}\n\n\tclose(cs.donec)\n\tcc.maybeCallStateHook()\n}\n\n// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams.\n// Must hold cc.mu.\nfunc (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error {\n\tfor {\n\t\tif cc.closed && cc.nextStreamID == 1 && cc.streamsReserved == 0 {\n\t\t\t// This is the very first request sent to this connection.\n\t\t\t// Return a fatal error which aborts the retry loop.\n\t\t\treturn errClientConnNotEstablished\n\t\t}\n\t\tcc.lastActive = time.Now()\n\t\tif cc.closed || !cc.canTakeNewRequestLocked() {\n\t\t\treturn errClientConnUnusable\n\t\t}\n\t\tcc.lastIdle = time.Time{}\n\t\tif cc.currentRequestCountLocked() < int(cc.maxConcurrentStreams) {\n\t\t\treturn nil\n\t\t}\n\t\tcc.pendingRequests++\n\t\tcc.cond.Wait()\n\t\tcc.pendingRequests--\n\t\tselect {\n\t\tcase <-cs.abort:\n\t\t\treturn cs.abortErr\n\t\tdefault:\n\t\t}\n\t}\n}\n\n// requires cc.wmu be held\nfunc (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error {\n\tfirst := true // first frame written (HEADERS is first, then CONTINUATION)\n\tfor len(hdrs) > 0 && cc.werr == nil {\n\t\tchunk := hdrs\n\t\tif len(chunk) > maxFrameSize {\n\t\t\tchunk = chunk[:maxFrameSize]\n\t\t}\n\t\thdrs = hdrs[len(chunk):]\n\t\tendHeaders := len(hdrs) == 0\n\t\tif first {\n\t\t\tcc.fr.WriteHeaders(HeadersFrameParam{\n\t\t\t\tStreamID:      streamID,\n\t\t\t\tBlockFragment: chunk,\n\t\t\t\tEndStream:     endStream,\n\t\t\t\tEndHeaders:    endHeaders,\n\t\t\t})\n\t\t\tfirst = false\n\t\t} else {\n\t\t\tcc.fr.WriteContinuation(streamID, endHeaders, chunk)\n\t\t}\n\t}\n\tcc.bw.Flush()\n\treturn cc.werr\n}\n\n// internal error values; they don't escape to callers\nvar (\n\t// abort request body write; don't send cancel\n\terrStopReqBodyWrite = errors.New(\"http2: aborting request body write\")\n\n\t// abort request body write, but send stream reset of cancel.\n\terrStopReqBodyWriteAndCancel = errors.New(\"http2: canceling request\")\n\n\terrReqBodyTooLong = errors.New(\"http2: request body larger than specified content length\")\n)\n\n// frameScratchBufferLen returns the length of a buffer to use for\n// outgoing request bodies to read/write to/from.\n//\n// It returns max(1, min(peer's advertised max frame size,\n// Request.ContentLength+1, 512KB)).\nfunc (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int {\n\tconst max = 512 << 10\n\tn := int64(maxFrameSize)\n\tif n > max {\n\t\tn = max\n\t}\n\tif cl := cs.reqBodyContentLength; cl != -1 && cl+1 < n {\n\t\t// Add an extra byte past the declared content-length to\n\t\t// give the caller's Request.Body io.Reader a chance to\n\t\t// give us more bytes than they declared, so we can catch it\n\t\t// early.\n\t\tn = cl + 1\n\t}\n\tif n < 1 {\n\t\treturn 1\n\t}\n\treturn int(n) // doesn't truncate; max is 512K\n}\n\n// Seven bufPools manage different frame sizes. This helps to avoid scenarios where long-running\n// streaming requests using small frame sizes occupy large buffers initially allocated for prior\n// requests needing big buffers. The size ranges are as follows:\n// {0 KB, 16 KB], {16 KB, 32 KB], {32 KB, 64 KB], {64 KB, 128 KB], {128 KB, 256 KB],\n// {256 KB, 512 KB], {512 KB, infinity}\n// In practice, the maximum scratch buffer size should not exceed 512 KB due to\n// frameScratchBufferLen(maxFrameSize), thus the \"infinity pool\" should never be used.\n// It exists mainly as a safety measure, for potential future increases in max buffer size.\nvar bufPools [7]sync.Pool // of *[]byte\nfunc bufPoolIndex(size int) int {\n\tif size <= 16384 {\n\t\treturn 0\n\t}\n\tsize -= 1\n\tbits := bits.Len(uint(size))\n\tindex := bits - 14\n\tif index >= len(bufPools) {\n\t\treturn len(bufPools) - 1\n\t}\n\treturn index\n}\n\nfunc (cs *clientStream) writeRequestBody(req *http.Request) (err error) {\n\tcc := cs.cc\n\tbody := cs.reqBody\n\tsentEnd := false // whether we sent the final DATA frame w/ END_STREAM\n\n\thasTrailers := req.Trailer != nil\n\tremainLen := cs.reqBodyContentLength\n\thasContentLen := remainLen != -1\n\n\tcc.mu.Lock()\n\tmaxFrameSize := int(cc.maxFrameSize)\n\tcc.mu.Unlock()\n\n\t// Scratch buffer for reading into & writing from.\n\tscratchLen := cs.frameScratchBufferLen(maxFrameSize)\n\tvar buf []byte\n\tindex := bufPoolIndex(scratchLen)\n\tif bp, ok := bufPools[index].Get().(*[]byte); ok && len(*bp) >= scratchLen {\n\t\tdefer bufPools[index].Put(bp)\n\t\tbuf = *bp\n\t} else {\n\t\tbuf = make([]byte, scratchLen)\n\t\tdefer bufPools[index].Put(&buf)\n\t}\n\n\tvar sawEOF bool\n\tfor !sawEOF {\n\t\tn, err := body.Read(buf)\n\t\tif hasContentLen {\n\t\t\tremainLen -= int64(n)\n\t\t\tif remainLen == 0 && err == nil {\n\t\t\t\t// The request body's Content-Length was predeclared and\n\t\t\t\t// we just finished reading it all, but the underlying io.Reader\n\t\t\t\t// returned the final chunk with a nil error (which is one of\n\t\t\t\t// the two valid things a Reader can do at EOF). Because we'd prefer\n\t\t\t\t// to send the END_STREAM bit early, double-check that we're actually\n\t\t\t\t// at EOF. Subsequent reads should return (0, EOF) at this point.\n\t\t\t\t// If either value is different, we return an error in one of two ways below.\n\t\t\t\tvar scratch [1]byte\n\t\t\t\tvar n1 int\n\t\t\t\tn1, err = body.Read(scratch[:])\n\t\t\t\tremainLen -= int64(n1)\n\t\t\t}\n\t\t\tif remainLen < 0 {\n\t\t\t\terr = errReqBodyTooLong\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tcc.mu.Lock()\n\t\t\tbodyClosed := cs.reqBodyClosed != nil\n\t\t\tcc.mu.Unlock()\n\t\t\tswitch {\n\t\t\tcase bodyClosed:\n\t\t\t\treturn errStopReqBodyWrite\n\t\t\tcase err == io.EOF:\n\t\t\t\tsawEOF = true\n\t\t\t\terr = nil\n\t\t\tdefault:\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tremain := buf[:n]\n\t\tfor len(remain) > 0 && err == nil {\n\t\t\tvar allowed int32\n\t\t\tallowed, err = cs.awaitFlowControl(len(remain))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcc.wmu.Lock()\n\t\t\tdata := remain[:allowed]\n\t\t\tremain = remain[allowed:]\n\t\t\tsentEnd = sawEOF && len(remain) == 0 && !hasTrailers\n\t\t\terr = cc.fr.WriteData(cs.ID, sentEnd, data)\n\t\t\tif err == nil {\n\t\t\t\t// TODO(bradfitz): this flush is for latency, not bandwidth.\n\t\t\t\t// Most requests won't need this. Make this opt-in or\n\t\t\t\t// opt-out?  Use some heuristic on the body type? Nagel-like\n\t\t\t\t// timers?  Based on 'n'? Only last chunk of this for loop,\n\t\t\t\t// unless flow control tokens are low? For now, always.\n\t\t\t\t// If we change this, see comment below.\n\t\t\t\terr = cc.bw.Flush()\n\t\t\t}\n\t\t\tcc.wmu.Unlock()\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif sentEnd {\n\t\t// Already sent END_STREAM (which implies we have no\n\t\t// trailers) and flushed, because currently all\n\t\t// WriteData frames above get a flush. So we're done.\n\t\treturn nil\n\t}\n\n\t// Since the RoundTrip contract permits the caller to \"mutate or reuse\"\n\t// a request after the Response's Body is closed, verify that this hasn't\n\t// happened before accessing the trailers.\n\tcc.mu.Lock()\n\ttrailer := req.Trailer\n\terr = cs.abortErr\n\tcc.mu.Unlock()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\tvar trls []byte\n\tif len(trailer) > 0 {\n\t\ttrls, err = cc.encodeTrailers(trailer)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Two ways to send END_STREAM: either with trailers, or\n\t// with an empty DATA frame.\n\tif len(trls) > 0 {\n\t\terr = cc.writeHeaders(cs.ID, true, maxFrameSize, trls)\n\t} else {\n\t\terr = cc.fr.WriteData(cs.ID, true, nil)\n\t}\n\tif ferr := cc.bw.Flush(); ferr != nil && err == nil {\n\t\terr = ferr\n\t}\n\treturn err\n}\n\n// awaitFlowControl waits for [1, min(maxBytes, cc.cs.maxFrameSize)] flow\n// control tokens from the server.\n// It returns either the non-zero number of tokens taken or an error\n// if the stream is dead.\nfunc (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) {\n\tcc := cs.cc\n\tctx := cs.ctx\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tfor {\n\t\tif cc.closed {\n\t\t\treturn 0, errClientConnClosed\n\t\t}\n\t\tif cs.reqBodyClosed != nil {\n\t\t\treturn 0, errStopReqBodyWrite\n\t\t}\n\t\tselect {\n\t\tcase <-cs.abort:\n\t\t\treturn 0, cs.abortErr\n\t\tcase <-ctx.Done():\n\t\t\treturn 0, ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn 0, errRequestCanceled\n\t\tdefault:\n\t\t}\n\t\tif a := cs.flow.available(); a > 0 {\n\t\t\ttake := a\n\t\t\tif int(take) > maxBytes {\n\n\t\t\t\ttake = int32(maxBytes) // can't truncate int; take is int32\n\t\t\t}\n\t\t\tif take > int32(cc.maxFrameSize) {\n\t\t\t\ttake = int32(cc.maxFrameSize)\n\t\t\t}\n\t\t\tcs.flow.take(take)\n\t\t\treturn take, nil\n\t\t}\n\t\tcc.cond.Wait()\n\t}\n}\n\n// requires cc.wmu be held.\nfunc (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) {\n\tcc.hbuf.Reset()\n\n\thlSize := uint64(0)\n\tfor k, vv := range trailer {\n\t\tfor _, v := range vv {\n\t\t\thf := hpack.HeaderField{Name: k, Value: v}\n\t\t\thlSize += uint64(hf.Size())\n\t\t}\n\t}\n\tif hlSize > cc.peerMaxHeaderListSize {\n\t\treturn nil, errRequestHeaderListSize\n\t}\n\n\tfor k, vv := range trailer {\n\t\tlowKey, ascii := httpcommon.LowerHeader(k)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\tcontinue\n\t\t}\n\t\t// Transfer-Encoding, etc.. have already been filtered at the\n\t\t// start of RoundTrip\n\t\tfor _, v := range vv {\n\t\t\tcc.writeHeader(lowKey, v)\n\t\t}\n\t}\n\treturn cc.hbuf.Bytes(), nil\n}\n\nfunc (cc *ClientConn) writeHeader(name, value string) {\n\tif VerboseLogs {\n\t\tlog.Printf(\"http2: Transport encoding header %q = %q\", name, value)\n\t}\n\tcc.henc.WriteField(hpack.HeaderField{Name: name, Value: value})\n}\n\ntype resAndError struct {\n\t_   incomparable\n\tres *http.Response\n\terr error\n}\n\n// requires cc.mu be held.\nfunc (cc *ClientConn) addStreamLocked(cs *clientStream) {\n\tcs.flow.add(int32(cc.initialWindowSize))\n\tcs.flow.setConnFlow(&cc.flow)\n\tcs.inflow.init(cc.initialStreamRecvWindowSize)\n\tcs.ID = cc.nextStreamID\n\tcc.nextStreamID += 2\n\tcc.streams[cs.ID] = cs\n\tif cs.ID == 0 {\n\t\tpanic(\"assigned stream ID 0\")\n\t}\n}\n\nfunc (cc *ClientConn) forgetStreamID(id uint32) {\n\tcc.mu.Lock()\n\tslen := len(cc.streams)\n\tdelete(cc.streams, id)\n\tif len(cc.streams) != slen-1 {\n\t\tpanic(\"forgetting unknown stream id\")\n\t}\n\tcc.lastActive = time.Now()\n\tif len(cc.streams) == 0 && cc.idleTimer != nil {\n\t\tcc.idleTimer.Reset(cc.idleTimeout)\n\t\tcc.lastIdle = time.Now()\n\t}\n\t// Wake up writeRequestBody via clientStream.awaitFlowControl and\n\t// wake up RoundTrip if there is a pending request.\n\tcc.cond.Broadcast()\n\n\tcloseOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil\n\tif closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 {\n\t\tif VerboseLogs {\n\t\t\tcc.vlogf(\"http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)\", cc, cc.singleUse, cc.nextStreamID-2)\n\t\t}\n\t\tcc.closed = true\n\t\tdefer cc.closeConn()\n\t}\n\n\tcc.mu.Unlock()\n}\n\n// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.\ntype clientConnReadLoop struct {\n\t_  incomparable\n\tcc *ClientConn\n}\n\n// readLoop runs in its own goroutine and reads and dispatches frames.\nfunc (cc *ClientConn) readLoop() {\n\trl := &clientConnReadLoop{cc: cc}\n\tdefer rl.cleanup()\n\tcc.readerErr = rl.run()\n\tif ce, ok := cc.readerErr.(ConnectionError); ok {\n\t\tcc.wmu.Lock()\n\t\tcc.fr.WriteGoAway(0, ErrCode(ce), nil)\n\t\tcc.wmu.Unlock()\n\t}\n}\n\n// GoAwayError is returned by the Transport when the server closes the\n// TCP connection after sending a GOAWAY frame.\ntype GoAwayError struct {\n\tLastStreamID uint32\n\tErrCode      ErrCode\n\tDebugData    string\n}\n\nfunc (e GoAwayError) Error() string {\n\treturn fmt.Sprintf(\"http2: server sent GOAWAY and closed the connection; LastStreamID=%v, ErrCode=%v, debug=%q\",\n\t\te.LastStreamID, e.ErrCode, e.DebugData)\n}\n\nfunc isEOFOrNetReadError(err error) bool {\n\tif err == io.EOF {\n\t\treturn true\n\t}\n\tne, ok := err.(*net.OpError)\n\treturn ok && ne.Op == \"read\"\n}\n\nfunc (rl *clientConnReadLoop) cleanup() {\n\tcc := rl.cc\n\tdefer cc.closeConn()\n\tdefer close(cc.readerDone)\n\n\tif cc.idleTimer != nil {\n\t\tcc.idleTimer.Stop()\n\t}\n\n\t// Close any response bodies if the server closes prematurely.\n\t// TODO: also do this if we've written the headers but not\n\t// gotten a response yet.\n\terr := cc.readerErr\n\tcc.mu.Lock()\n\tif cc.goAway != nil && isEOFOrNetReadError(err) {\n\t\terr = GoAwayError{\n\t\t\tLastStreamID: cc.goAway.LastStreamID,\n\t\t\tErrCode:      cc.goAway.ErrCode,\n\t\t\tDebugData:    cc.goAwayDebug,\n\t\t}\n\t} else if err == io.EOF {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\tcc.closed = true\n\n\t// If the connection has never been used, and has been open for only a short time,\n\t// leave it in the connection pool for a little while.\n\t//\n\t// This avoids a situation where new connections are constantly created,\n\t// added to the pool, fail, and are removed from the pool, without any error\n\t// being surfaced to the user.\n\tunusedWaitTime := 5 * time.Second\n\tif cc.idleTimeout > 0 && unusedWaitTime > cc.idleTimeout {\n\t\tunusedWaitTime = cc.idleTimeout\n\t}\n\tidleTime := time.Now().Sub(cc.lastActive)\n\tif atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime && !cc.closedOnIdle {\n\t\tcc.idleTimer = time.AfterFunc(unusedWaitTime-idleTime, func() {\n\t\t\tcc.t.connPool().MarkDead(cc)\n\t\t})\n\t} else {\n\t\tcc.mu.Unlock() // avoid any deadlocks in MarkDead\n\t\tcc.t.connPool().MarkDead(cc)\n\t\tcc.mu.Lock()\n\t}\n\n\tfor _, cs := range cc.streams {\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\t// The server closed the stream before closing the conn,\n\t\t\t// so no need to interrupt it.\n\t\tdefault:\n\t\t\tcs.abortStreamLocked(err)\n\t\t}\n\t}\n\tcc.cond.Broadcast()\n\tcc.mu.Unlock()\n\n\tif !cc.seenSettings {\n\t\t// If we have a pending request that wants extended CONNECT,\n\t\t// let it continue and fail with the connection error.\n\t\tcc.extendedConnectAllowed = true\n\t\tclose(cc.seenSettingsChan)\n\t}\n}\n\n// countReadFrameError calls Transport.CountError with a string\n// representing err.\nfunc (cc *ClientConn) countReadFrameError(err error) {\n\tf := cc.t.CountError\n\tif f == nil || err == nil {\n\t\treturn\n\t}\n\tif ce, ok := err.(ConnectionError); ok {\n\t\terrCode := ErrCode(ce)\n\t\tf(fmt.Sprintf(\"read_frame_conn_error_%s\", errCode.stringToken()))\n\t\treturn\n\t}\n\tif errors.Is(err, io.EOF) {\n\t\tf(\"read_frame_eof\")\n\t\treturn\n\t}\n\tif errors.Is(err, io.ErrUnexpectedEOF) {\n\t\tf(\"read_frame_unexpected_eof\")\n\t\treturn\n\t}\n\tif errors.Is(err, ErrFrameTooLarge) {\n\t\tf(\"read_frame_too_large\")\n\t\treturn\n\t}\n\tf(\"read_frame_other\")\n}\n\nfunc (rl *clientConnReadLoop) run() error {\n\tcc := rl.cc\n\tgotSettings := false\n\treadIdleTimeout := cc.readIdleTimeout\n\tvar t *time.Timer\n\tif readIdleTimeout != 0 {\n\t\tt = time.AfterFunc(readIdleTimeout, cc.healthCheck)\n\t}\n\tfor {\n\t\tf, err := cc.fr.ReadFrame()\n\t\tif t != nil {\n\t\t\tt.Reset(readIdleTimeout)\n\t\t}\n\t\tif err != nil {\n\t\t\tcc.vlogf(\"http2: Transport readFrame error on conn %p: (%T) %v\", cc, err, err)\n\t\t}\n\t\tif se, ok := err.(StreamError); ok {\n\t\t\tif cs := rl.streamByID(se.StreamID, notHeaderOrDataFrame); cs != nil {\n\t\t\t\tif se.Cause == nil {\n\t\t\t\t\tse.Cause = cc.fr.errDetail\n\t\t\t\t}\n\t\t\t\trl.endStreamError(cs, se)\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if err != nil {\n\t\t\tcc.countReadFrameError(err)\n\t\t\treturn err\n\t\t}\n\t\tif VerboseLogs {\n\t\t\tcc.vlogf(\"http2: Transport received %s\", summarizeFrame(f))\n\t\t}\n\t\tif !gotSettings {\n\t\t\tif _, ok := f.(*SettingsFrame); !ok {\n\t\t\t\tcc.logf(\"protocol error: received %T before a SETTINGS frame\", f)\n\t\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t\t}\n\t\t\tgotSettings = true\n\t\t}\n\n\t\tswitch f := f.(type) {\n\t\tcase *MetaHeadersFrame:\n\t\t\terr = rl.processHeaders(f)\n\t\tcase *DataFrame:\n\t\t\terr = rl.processData(f)\n\t\tcase *GoAwayFrame:\n\t\t\terr = rl.processGoAway(f)\n\t\tcase *RSTStreamFrame:\n\t\t\terr = rl.processResetStream(f)\n\t\tcase *SettingsFrame:\n\t\t\terr = rl.processSettings(f)\n\t\tcase *PushPromiseFrame:\n\t\t\terr = rl.processPushPromise(f)\n\t\tcase *WindowUpdateFrame:\n\t\t\terr = rl.processWindowUpdate(f)\n\t\tcase *PingFrame:\n\t\t\terr = rl.processPing(f)\n\t\tdefault:\n\t\t\tcc.logf(\"Transport: unhandled response frame type %T\", f)\n\t\t}\n\t\tif err != nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tcc.vlogf(\"http2: Transport conn %p received error from processing frame %v: %v\", cc, summarizeFrame(f), err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error {\n\tcs := rl.streamByID(f.StreamID, headerOrDataFrame)\n\tif cs == nil {\n\t\t// We'd get here if we canceled a request while the\n\t\t// server had its response still in flight. So if this\n\t\t// was just something we canceled, ignore it.\n\t\treturn nil\n\t}\n\tif cs.readClosed {\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t\tCause:    errors.New(\"protocol error: headers after END_STREAM\"),\n\t\t})\n\t\treturn nil\n\t}\n\tif !cs.firstByte {\n\t\tif cs.trace != nil {\n\t\t\t// TODO(bradfitz): move first response byte earlier,\n\t\t\t// when we first read the 9 byte header, not waiting\n\t\t\t// until all the HEADERS+CONTINUATION frames have been\n\t\t\t// merged. This works for now.\n\t\t\ttraceFirstResponseByte(cs.trace)\n\t\t}\n\t\tcs.firstByte = true\n\t}\n\tif !cs.pastHeaders {\n\t\tcs.pastHeaders = true\n\t} else {\n\t\treturn rl.processTrailers(cs, f)\n\t}\n\n\tres, err := rl.handleResponse(cs, f)\n\tif err != nil {\n\t\tif _, ok := err.(ConnectionError); ok {\n\t\t\treturn err\n\t\t}\n\t\t// Any other error type is a stream error.\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t\tCause:    err,\n\t\t})\n\t\treturn nil // return nil from process* funcs to keep conn alive\n\t}\n\tif res == nil {\n\t\t// (nil, nil) special case. See handleResponse docs.\n\t\treturn nil\n\t}\n\tcs.resTrailer = &res.Trailer\n\tcs.res = res\n\tclose(cs.respHeaderRecv)\n\tif f.StreamEnded() {\n\t\trl.endStream(cs)\n\t}\n\treturn nil\n}\n\n// may return error types nil, or ConnectionError. Any other error value\n// is a StreamError of type ErrCodeProtocol. The returned error in that case\n// is the detail.\n//\n// As a special case, handleResponse may return (nil, nil) to skip the\n// frame (currently only used for 1xx responses).\nfunc (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) {\n\tif f.Truncated {\n\t\treturn nil, errResponseHeaderListSize\n\t}\n\n\tstatus := f.PseudoValue(\"status\")\n\tif status == \"\" {\n\t\treturn nil, errors.New(\"malformed response from server: missing status pseudo header\")\n\t}\n\tstatusCode, err := strconv.Atoi(status)\n\tif err != nil {\n\t\treturn nil, errors.New(\"malformed response from server: malformed non-numeric status pseudo header\")\n\t}\n\n\tregularFields := f.RegularFields()\n\tstrs := make([]string, len(regularFields))\n\theader := make(http.Header, len(regularFields))\n\tres := &http.Response{\n\t\tProto:      \"HTTP/2.0\",\n\t\tProtoMajor: 2,\n\t\tHeader:     header,\n\t\tStatusCode: statusCode,\n\t\tStatus:     status + \" \" + http.StatusText(statusCode),\n\t}\n\tfor _, hf := range regularFields {\n\t\tkey := httpcommon.CanonicalHeader(hf.Name)\n\t\tif key == \"Trailer\" {\n\t\t\tt := res.Trailer\n\t\t\tif t == nil {\n\t\t\t\tt = make(http.Header)\n\t\t\t\tres.Trailer = t\n\t\t\t}\n\t\t\tforeachHeaderElement(hf.Value, func(v string) {\n\t\t\t\tt[httpcommon.CanonicalHeader(v)] = nil\n\t\t\t})\n\t\t} else {\n\t\t\tvv := header[key]\n\t\t\tif vv == nil && len(strs) > 0 {\n\t\t\t\t// More than likely this will be a single-element key.\n\t\t\t\t// Most headers aren't multi-valued.\n\t\t\t\t// Set the capacity on strs[0] to 1, so any future append\n\t\t\t\t// won't extend the slice into the other strings.\n\t\t\t\tvv, strs = strs[:1:1], strs[1:]\n\t\t\t\tvv[0] = hf.Value\n\t\t\t\theader[key] = vv\n\t\t\t} else {\n\t\t\t\theader[key] = append(vv, hf.Value)\n\t\t\t}\n\t\t}\n\t}\n\n\tif statusCode >= 100 && statusCode <= 199 {\n\t\tif f.StreamEnded() {\n\t\t\treturn nil, errors.New(\"1xx informational response with END_STREAM flag\")\n\t\t}\n\t\tif fn := cs.get1xxTraceFunc(); fn != nil {\n\t\t\t// If the 1xx response is being delivered to the user,\n\t\t\t// then they're responsible for limiting the number\n\t\t\t// of responses.\n\t\t\tif err := fn(statusCode, textproto.MIMEHeader(header)); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\t// If the user didn't examine the 1xx response, then we\n\t\t\t// limit the size of all 1xx headers.\n\t\t\t//\n\t\t\t// This differs a bit from the HTTP/1 implementation, which\n\t\t\t// limits the size of all 1xx headers plus the final response.\n\t\t\t// Use the larger limit of MaxHeaderListSize and\n\t\t\t// net/http.Transport.MaxResponseHeaderBytes.\n\t\t\tlimit := int64(cs.cc.t.maxHeaderListSize())\n\t\t\tif t1 := cs.cc.t.t1; t1 != nil && t1.MaxResponseHeaderBytes > limit {\n\t\t\t\tlimit = t1.MaxResponseHeaderBytes\n\t\t\t}\n\t\t\tfor _, h := range f.Fields {\n\t\t\t\tcs.totalHeaderSize += int64(h.Size())\n\t\t\t}\n\t\t\tif cs.totalHeaderSize > limit {\n\t\t\t\tif VerboseLogs {\n\t\t\t\t\tlog.Printf(\"http2: 1xx informational responses too large\")\n\t\t\t\t}\n\t\t\t\treturn nil, errors.New(\"header list too large\")\n\t\t\t}\n\t\t}\n\t\tif statusCode == 100 {\n\t\t\ttraceGot100Continue(cs.trace)\n\t\t\tselect {\n\t\t\tcase cs.on100 <- struct{}{}:\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t\tcs.pastHeaders = false // do it all again\n\t\treturn nil, nil\n\t}\n\n\tres.ContentLength = -1\n\tif clens := res.Header[\"Content-Length\"]; len(clens) == 1 {\n\t\tif cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil {\n\t\t\tres.ContentLength = int64(cl)\n\t\t} else {\n\t\t\t// TODO: care? unlike http/1, it won't mess up our framing, so it's\n\t\t\t// more safe smuggling-wise to ignore.\n\t\t}\n\t} else if len(clens) > 1 {\n\t\t// TODO: care? unlike http/1, it won't mess up our framing, so it's\n\t\t// more safe smuggling-wise to ignore.\n\t} else if f.StreamEnded() && !cs.isHead {\n\t\tres.ContentLength = 0\n\t}\n\n\tif cs.isHead {\n\t\tres.Body = noBody\n\t\treturn res, nil\n\t}\n\n\tif f.StreamEnded() {\n\t\tif res.ContentLength > 0 {\n\t\t\tres.Body = missingBody{}\n\t\t} else {\n\t\t\tres.Body = noBody\n\t\t}\n\t\treturn res, nil\n\t}\n\n\tcs.bufPipe.setBuffer(&dataBuffer{expected: res.ContentLength})\n\tcs.bytesRemain = res.ContentLength\n\tres.Body = transportResponseBody{cs}\n\n\tif cs.requestedGzip && asciiEqualFold(res.Header.Get(\"Content-Encoding\"), \"gzip\") {\n\t\tres.Header.Del(\"Content-Encoding\")\n\t\tres.Header.Del(\"Content-Length\")\n\t\tres.ContentLength = -1\n\t\tres.Body = &gzipReader{body: res.Body}\n\t\tres.Uncompressed = true\n\t}\n\treturn res, nil\n}\n\nfunc (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error {\n\tif cs.pastTrailers {\n\t\t// Too many HEADERS frames for this stream.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\tcs.pastTrailers = true\n\tif !f.StreamEnded() {\n\t\t// We expect that any headers for trailers also\n\t\t// has END_STREAM.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(f.PseudoFields()) > 0 {\n\t\t// No pseudo header fields are defined for trailers.\n\t\t// TODO: ConnectionError might be overly harsh? Check.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\n\ttrailer := make(http.Header)\n\tfor _, hf := range f.RegularFields() {\n\t\tkey := httpcommon.CanonicalHeader(hf.Name)\n\t\ttrailer[key] = append(trailer[key], hf.Value)\n\t}\n\tcs.trailer = trailer\n\n\trl.endStream(cs)\n\treturn nil\n}\n\n// transportResponseBody is the concrete type of Transport.RoundTrip's\n// Response.Body. It is an io.ReadCloser.\ntype transportResponseBody struct {\n\tcs *clientStream\n}\n\nfunc (b transportResponseBody) Read(p []byte) (n int, err error) {\n\tcs := b.cs\n\tcc := cs.cc\n\n\tif cs.readErr != nil {\n\t\treturn 0, cs.readErr\n\t}\n\tn, err = b.cs.bufPipe.Read(p)\n\tif cs.bytesRemain != -1 {\n\t\tif int64(n) > cs.bytesRemain {\n\t\t\tn = int(cs.bytesRemain)\n\t\t\tif err == nil {\n\t\t\t\terr = errors.New(\"net/http: server replied with more than declared Content-Length; truncated\")\n\t\t\t\tcs.abortStream(err)\n\t\t\t}\n\t\t\tcs.readErr = err\n\t\t\treturn int(cs.bytesRemain), err\n\t\t}\n\t\tcs.bytesRemain -= int64(n)\n\t\tif err == io.EOF && cs.bytesRemain > 0 {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\tcs.readErr = err\n\t\t\treturn n, err\n\t\t}\n\t}\n\tif n == 0 {\n\t\t// No flow control tokens to send back.\n\t\treturn\n\t}\n\n\tcc.mu.Lock()\n\tconnAdd := cc.inflow.add(n)\n\tvar streamAdd int32\n\tif err == nil { // No need to refresh if the stream is over or failed.\n\t\tstreamAdd = cs.inflow.add(n)\n\t}\n\tcc.mu.Unlock()\n\n\tif connAdd != 0 || streamAdd != 0 {\n\t\tcc.wmu.Lock()\n\t\tdefer cc.wmu.Unlock()\n\t\tif connAdd != 0 {\n\t\t\tcc.fr.WriteWindowUpdate(0, mustUint31(connAdd))\n\t\t}\n\t\tif streamAdd != 0 {\n\t\t\tcc.fr.WriteWindowUpdate(cs.ID, mustUint31(streamAdd))\n\t\t}\n\t\tcc.bw.Flush()\n\t}\n\treturn\n}\n\nvar errClosedResponseBody = errors.New(\"http2: response body closed\")\n\nfunc (b transportResponseBody) Close() error {\n\tcs := b.cs\n\tcc := cs.cc\n\n\tcs.bufPipe.BreakWithError(errClosedResponseBody)\n\tcs.abortStream(errClosedResponseBody)\n\n\tunread := cs.bufPipe.Len()\n\tif unread > 0 {\n\t\tcc.mu.Lock()\n\t\t// Return connection-level flow control.\n\t\tconnAdd := cc.inflow.add(unread)\n\t\tcc.mu.Unlock()\n\n\t\t// TODO(dneil): Acquiring this mutex can block indefinitely.\n\t\t// Move flow control return to a goroutine?\n\t\tcc.wmu.Lock()\n\t\t// Return connection-level flow control.\n\t\tif connAdd > 0 {\n\t\t\tcc.fr.WriteWindowUpdate(0, uint32(connAdd))\n\t\t}\n\t\tcc.bw.Flush()\n\t\tcc.wmu.Unlock()\n\t}\n\n\tselect {\n\tcase <-cs.donec:\n\tcase <-cs.ctx.Done():\n\t\t// See golang/go#49366: The net/http package can cancel the\n\t\t// request context after the response body is fully read.\n\t\t// Don't treat this as an error.\n\t\treturn nil\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processData(f *DataFrame) error {\n\tcc := rl.cc\n\tcs := rl.streamByID(f.StreamID, headerOrDataFrame)\n\tdata := f.Data()\n\tif cs == nil {\n\t\tcc.mu.Lock()\n\t\tneverSent := cc.nextStreamID\n\t\tcc.mu.Unlock()\n\t\tif f.StreamID >= neverSent {\n\t\t\t// We never asked for this.\n\t\t\tcc.logf(\"http2: Transport received unsolicited DATA frame; closing connection\")\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\t\t// We probably did ask for this, but canceled. Just ignore it.\n\t\t// TODO: be stricter here? only silently ignore things which\n\t\t// we canceled, but not things which were closed normally\n\t\t// by the peer? Tough without accumulating too much state.\n\n\t\t// But at least return their flow control:\n\t\tif f.Length > 0 {\n\t\t\tcc.mu.Lock()\n\t\t\tok := cc.inflow.take(f.Length)\n\t\t\tconnAdd := cc.inflow.add(int(f.Length))\n\t\t\tcc.mu.Unlock()\n\t\t\tif !ok {\n\t\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t\t}\n\t\t\tif connAdd > 0 {\n\t\t\t\tcc.wmu.Lock()\n\t\t\t\tcc.fr.WriteWindowUpdate(0, uint32(connAdd))\n\t\t\t\tcc.bw.Flush()\n\t\t\t\tcc.wmu.Unlock()\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif cs.readClosed {\n\t\tcc.logf(\"protocol error: received DATA after END_STREAM\")\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t})\n\t\treturn nil\n\t}\n\tif !cs.pastHeaders {\n\t\tcc.logf(\"protocol error: received DATA before a HEADERS frame\")\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t})\n\t\treturn nil\n\t}\n\tif f.Length > 0 {\n\t\tif cs.isHead && len(data) > 0 {\n\t\t\tcc.logf(\"protocol error: received DATA on a HEAD request\")\n\t\t\trl.endStreamError(cs, StreamError{\n\t\t\t\tStreamID: f.StreamID,\n\t\t\t\tCode:     ErrCodeProtocol,\n\t\t\t})\n\t\t\treturn nil\n\t\t}\n\t\t// Check connection-level flow control.\n\t\tcc.mu.Lock()\n\t\tif !takeInflows(&cc.inflow, &cs.inflow, f.Length) {\n\t\t\tcc.mu.Unlock()\n\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t}\n\t\t// Return any padded flow control now, since we won't\n\t\t// refund it later on body reads.\n\t\tvar refund int\n\t\tif pad := int(f.Length) - len(data); pad > 0 {\n\t\t\trefund += pad\n\t\t}\n\n\t\tdidReset := false\n\t\tvar err error\n\t\tif len(data) > 0 {\n\t\t\tif _, err = cs.bufPipe.Write(data); err != nil {\n\t\t\t\t// Return len(data) now if the stream is already closed,\n\t\t\t\t// since data will never be read.\n\t\t\t\tdidReset = true\n\t\t\t\trefund += len(data)\n\t\t\t}\n\t\t}\n\n\t\tsendConn := cc.inflow.add(refund)\n\t\tvar sendStream int32\n\t\tif !didReset {\n\t\t\tsendStream = cs.inflow.add(refund)\n\t\t}\n\t\tcc.mu.Unlock()\n\n\t\tif sendConn > 0 || sendStream > 0 {\n\t\t\tcc.wmu.Lock()\n\t\t\tif sendConn > 0 {\n\t\t\t\tcc.fr.WriteWindowUpdate(0, uint32(sendConn))\n\t\t\t}\n\t\t\tif sendStream > 0 {\n\t\t\t\tcc.fr.WriteWindowUpdate(cs.ID, uint32(sendStream))\n\t\t\t}\n\t\t\tcc.bw.Flush()\n\t\t\tcc.wmu.Unlock()\n\t\t}\n\n\t\tif err != nil {\n\t\t\trl.endStreamError(cs, err)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tif f.StreamEnded() {\n\t\trl.endStream(cs)\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) endStream(cs *clientStream) {\n\t// TODO: check that any declared content-length matches, like\n\t// server.go's (*stream).endStream method.\n\tif !cs.readClosed {\n\t\tcs.readClosed = true\n\t\t// Close cs.bufPipe and cs.peerClosed with cc.mu held to avoid a\n\t\t// race condition: The caller can read io.EOF from Response.Body\n\t\t// and close the body before we close cs.peerClosed, causing\n\t\t// cleanupWriteRequest to send a RST_STREAM.\n\t\trl.cc.mu.Lock()\n\t\tdefer rl.cc.mu.Unlock()\n\t\tcs.bufPipe.closeWithErrorAndCode(io.EOF, cs.copyTrailers)\n\t\tclose(cs.peerClosed)\n\t}\n}\n\nfunc (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) {\n\tcs.readAborted = true\n\tcs.abortStream(err)\n}\n\n// Constants passed to streamByID for documentation purposes.\nconst (\n\theaderOrDataFrame    = true\n\tnotHeaderOrDataFrame = false\n)\n\n// streamByID returns the stream with the given id, or nil if no stream has that id.\n// If headerOrData is true, it clears rst.StreamPingsBlocked.\nfunc (rl *clientConnReadLoop) streamByID(id uint32, headerOrData bool) *clientStream {\n\trl.cc.mu.Lock()\n\tdefer rl.cc.mu.Unlock()\n\tif headerOrData {\n\t\t// Work around an unfortunate gRPC behavior.\n\t\t// See comment on ClientConn.rstStreamPingsBlocked for details.\n\t\trl.cc.rstStreamPingsBlocked = false\n\t}\n\trl.cc.readBeforeStreamID = rl.cc.nextStreamID\n\tcs := rl.cc.streams[id]\n\tif cs != nil && !cs.readAborted {\n\t\treturn cs\n\t}\n\treturn nil\n}\n\nfunc (cs *clientStream) copyTrailers() {\n\tfor k, vv := range cs.trailer {\n\t\tt := cs.resTrailer\n\t\tif *t == nil {\n\t\t\t*t = make(http.Header)\n\t\t}\n\t\t(*t)[k] = vv\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error {\n\tcc := rl.cc\n\tcc.t.connPool().MarkDead(cc)\n\tif f.ErrCode != 0 {\n\t\t// TODO: deal with GOAWAY more. particularly the error code\n\t\tcc.vlogf(\"transport got GOAWAY with error code = %v\", f.ErrCode)\n\t\tif fn := cc.t.CountError; fn != nil {\n\t\t\tfn(\"recv_goaway_\" + f.ErrCode.stringToken())\n\t\t}\n\t}\n\tcc.setGoAway(f)\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error {\n\tcc := rl.cc\n\t// Locking both mu and wmu here allows frame encoding to read settings with only wmu held.\n\t// Acquiring wmu when f.IsAck() is unnecessary, but convenient and mostly harmless.\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\n\tif err := rl.processSettingsNoWrite(f); err != nil {\n\t\treturn err\n\t}\n\tif !f.IsAck() {\n\t\tcc.fr.WriteSettingsAck()\n\t\tcc.bw.Flush()\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error {\n\tcc := rl.cc\n\tdefer cc.maybeCallStateHook()\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\tif f.IsAck() {\n\t\tif cc.wantSettingsAck {\n\t\t\tcc.wantSettingsAck = false\n\t\t\treturn nil\n\t\t}\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\n\tvar seenMaxConcurrentStreams bool\n\terr := f.ForeachSetting(func(s Setting) error {\n\t\tswitch s.ID {\n\t\tcase SettingMaxFrameSize:\n\t\t\tcc.maxFrameSize = s.Val\n\t\tcase SettingMaxConcurrentStreams:\n\t\t\tcc.maxConcurrentStreams = s.Val\n\t\t\tseenMaxConcurrentStreams = true\n\t\tcase SettingMaxHeaderListSize:\n\t\t\tcc.peerMaxHeaderListSize = uint64(s.Val)\n\t\tcase SettingInitialWindowSize:\n\t\t\t// Values above the maximum flow-control\n\t\t\t// window size of 2^31-1 MUST be treated as a\n\t\t\t// connection error (Section 5.4.1) of type\n\t\t\t// FLOW_CONTROL_ERROR.\n\t\t\tif s.Val > math.MaxInt32 {\n\t\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t\t}\n\n\t\t\t// Adjust flow control of currently-open\n\t\t\t// frames by the difference of the old initial\n\t\t\t// window size and this one.\n\t\t\tdelta := int32(s.Val) - int32(cc.initialWindowSize)\n\t\t\tfor _, cs := range cc.streams {\n\t\t\t\tcs.flow.add(delta)\n\t\t\t}\n\t\t\tcc.cond.Broadcast()\n\n\t\t\tcc.initialWindowSize = s.Val\n\t\tcase SettingHeaderTableSize:\n\t\t\tcc.henc.SetMaxDynamicTableSize(s.Val)\n\t\t\tcc.peerMaxHeaderTableSize = s.Val\n\t\tcase SettingEnableConnectProtocol:\n\t\t\tif err := s.Valid(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// If the peer wants to send us SETTINGS_ENABLE_CONNECT_PROTOCOL,\n\t\t\t// we require that it do so in the first SETTINGS frame.\n\t\t\t//\n\t\t\t// When we attempt to use extended CONNECT, we wait for the first\n\t\t\t// SETTINGS frame to see if the server supports it. If we let the\n\t\t\t// server enable the feature with a later SETTINGS frame, then\n\t\t\t// users will see inconsistent results depending on whether we've\n\t\t\t// seen that frame or not.\n\t\t\tif !cc.seenSettings {\n\t\t\t\tcc.extendedConnectAllowed = s.Val == 1\n\t\t\t}\n\t\tdefault:\n\t\t\tcc.vlogf(\"Unhandled Setting: %v\", s)\n\t\t}\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !cc.seenSettings {\n\t\tif !seenMaxConcurrentStreams {\n\t\t\t// This was the servers initial SETTINGS frame and it\n\t\t\t// didn't contain a MAX_CONCURRENT_STREAMS field so\n\t\t\t// increase the number of concurrent streams this\n\t\t\t// connection can establish to our default.\n\t\t\tcc.maxConcurrentStreams = defaultMaxConcurrentStreams\n\t\t}\n\t\tclose(cc.seenSettingsChan)\n\t\tcc.seenSettings = true\n\t}\n\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error {\n\tcc := rl.cc\n\tcs := rl.streamByID(f.StreamID, notHeaderOrDataFrame)\n\tif f.StreamID != 0 && cs == nil {\n\t\treturn nil\n\t}\n\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\tfl := &cc.flow\n\tif cs != nil {\n\t\tfl = &cs.flow\n\t}\n\tif !fl.add(int32(f.Increment)) {\n\t\t// For stream, the sender sends RST_STREAM with an error code of FLOW_CONTROL_ERROR\n\t\tif cs != nil {\n\t\t\trl.endStreamError(cs, StreamError{\n\t\t\t\tStreamID: f.StreamID,\n\t\t\t\tCode:     ErrCodeFlowControl,\n\t\t\t})\n\t\t\treturn nil\n\t\t}\n\n\t\treturn ConnectionError(ErrCodeFlowControl)\n\t}\n\tcc.cond.Broadcast()\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error {\n\tcs := rl.streamByID(f.StreamID, notHeaderOrDataFrame)\n\tif cs == nil {\n\t\t// TODO: return error if server tries to RST_STREAM an idle stream\n\t\treturn nil\n\t}\n\tserr := streamError(cs.ID, f.ErrCode)\n\tserr.Cause = errFromPeer\n\tif f.ErrCode == ErrCodeProtocol {\n\t\trl.cc.SetDoNotReuse()\n\t}\n\tif fn := cs.cc.t.CountError; fn != nil {\n\t\tfn(\"recv_rststream_\" + f.ErrCode.stringToken())\n\t}\n\tcs.abortStream(serr)\n\n\tcs.bufPipe.CloseWithError(serr)\n\treturn nil\n}\n\n// Ping sends a PING frame to the server and waits for the ack.\nfunc (cc *ClientConn) Ping(ctx context.Context) error {\n\tc := make(chan struct{})\n\t// Generate a random payload\n\tvar p [8]byte\n\tfor {\n\t\tif _, err := rand.Read(p[:]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcc.mu.Lock()\n\t\t// check for dup before insert\n\t\tif _, found := cc.pings[p]; !found {\n\t\t\tcc.pings[p] = c\n\t\t\tcc.mu.Unlock()\n\t\t\tbreak\n\t\t}\n\t\tcc.mu.Unlock()\n\t}\n\tvar pingError error\n\terrc := make(chan struct{})\n\tgo func() {\n\t\tcc.wmu.Lock()\n\t\tdefer cc.wmu.Unlock()\n\t\tif pingError = cc.fr.WritePing(false, p); pingError != nil {\n\t\t\tclose(errc)\n\t\t\treturn\n\t\t}\n\t\tif pingError = cc.bw.Flush(); pingError != nil {\n\t\t\tclose(errc)\n\t\t\treturn\n\t\t}\n\t}()\n\tselect {\n\tcase <-c:\n\t\treturn nil\n\tcase <-errc:\n\t\treturn pingError\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tcase <-cc.readerDone:\n\t\t// connection closed\n\t\treturn cc.readerErr\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processPing(f *PingFrame) error {\n\tif f.IsAck() {\n\t\tcc := rl.cc\n\t\tdefer cc.maybeCallStateHook()\n\t\tcc.mu.Lock()\n\t\tdefer cc.mu.Unlock()\n\t\t// If ack, notify listener if any\n\t\tif c, ok := cc.pings[f.Data]; ok {\n\t\t\tclose(c)\n\t\t\tdelete(cc.pings, f.Data)\n\t\t}\n\t\tif cc.pendingResets > 0 {\n\t\t\t// See clientStream.cleanupWriteRequest.\n\t\t\tcc.pendingResets = 0\n\t\t\tcc.rstStreamPingsBlocked = true\n\t\t\tcc.cond.Broadcast()\n\t\t}\n\t\treturn nil\n\t}\n\tcc := rl.cc\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\tif err := cc.fr.WritePing(true, f.Data); err != nil {\n\t\treturn err\n\t}\n\treturn cc.bw.Flush()\n}\n\nfunc (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error {\n\t// We told the peer we don't want them.\n\t// Spec says:\n\t// \"PUSH_PROMISE MUST NOT be sent if the SETTINGS_ENABLE_PUSH\n\t// setting of the peer endpoint is set to 0. An endpoint that\n\t// has set this setting and has received acknowledgement MUST\n\t// treat the receipt of a PUSH_PROMISE frame as a connection\n\t// error (Section 5.4.1) of type PROTOCOL_ERROR.\"\n\treturn ConnectionError(ErrCodeProtocol)\n}\n\n// writeStreamReset sends a RST_STREAM frame.\n// When ping is true, it also sends a PING frame with a random payload.\nfunc (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, ping bool, err error) {\n\t// TODO: map err to more interesting error codes, once the\n\t// HTTP community comes up with some. But currently for\n\t// RST_STREAM there's no equivalent to GOAWAY frame's debug\n\t// data, and the error codes are all pretty vague (\"cancel\").\n\tcc.wmu.Lock()\n\tcc.fr.WriteRSTStream(streamID, code)\n\tif ping {\n\t\tvar payload [8]byte\n\t\trand.Read(payload[:])\n\t\tcc.fr.WritePing(false, payload)\n\t}\n\tcc.bw.Flush()\n\tcc.wmu.Unlock()\n}\n\nvar (\n\terrResponseHeaderListSize = errors.New(\"http2: response header list larger than advertised limit\")\n\terrRequestHeaderListSize  = httpcommon.ErrRequestHeaderListSize\n)\n\nfunc (cc *ClientConn) logf(format string, args ...interface{}) {\n\tcc.t.logf(format, args...)\n}\n\nfunc (cc *ClientConn) vlogf(format string, args ...interface{}) {\n\tcc.t.vlogf(format, args...)\n}\n\nfunc (t *Transport) vlogf(format string, args ...interface{}) {\n\tif VerboseLogs {\n\t\tt.logf(format, args...)\n\t}\n}\n\nfunc (t *Transport) logf(format string, args ...interface{}) {\n\tlog.Printf(format, args...)\n}\n\nvar noBody io.ReadCloser = noBodyReader{}\n\ntype noBodyReader struct{}\n\nfunc (noBodyReader) Close() error             { return nil }\nfunc (noBodyReader) Read([]byte) (int, error) { return 0, io.EOF }\n\ntype missingBody struct{}\n\nfunc (missingBody) Close() error             { return nil }\nfunc (missingBody) Read([]byte) (int, error) { return 0, io.ErrUnexpectedEOF }\n\nfunc strSliceContains(ss []string, s string) bool {\n\tfor _, v := range ss {\n\t\tif v == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\ntype erringRoundTripper struct{ err error }\n\nfunc (rt erringRoundTripper) RoundTripErr() error                             { return rt.err }\nfunc (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }\n\nvar errConcurrentReadOnResBody = errors.New(\"http2: concurrent read on response body\")\n\n// gzipReader wraps a response body so it can lazily\n// get gzip.Reader from the pool on the first call to Read.\n// After Close is called it puts gzip.Reader to the pool immediately\n// if there is no Read in progress or later when Read completes.\ntype gzipReader struct {\n\t_    incomparable\n\tbody io.ReadCloser // underlying Response.Body\n\tmu   sync.Mutex    // guards zr and zerr\n\tzr   *gzip.Reader  // stores gzip reader from the pool between reads\n\tzerr error         // sticky gzip reader init error or sentinel value to detect concurrent read and read after close\n}\n\ntype eofReader struct{}\n\nfunc (eofReader) Read([]byte) (int, error) { return 0, io.EOF }\nfunc (eofReader) ReadByte() (byte, error)  { return 0, io.EOF }\n\nvar gzipPool = sync.Pool{New: func() any { return new(gzip.Reader) }}\n\n// gzipPoolGet gets a gzip.Reader from the pool and resets it to read from r.\nfunc gzipPoolGet(r io.Reader) (*gzip.Reader, error) {\n\tzr := gzipPool.Get().(*gzip.Reader)\n\tif err := zr.Reset(r); err != nil {\n\t\tgzipPoolPut(zr)\n\t\treturn nil, err\n\t}\n\treturn zr, nil\n}\n\n// gzipPoolPut puts a gzip.Reader back into the pool.\nfunc gzipPoolPut(zr *gzip.Reader) {\n\t// Reset will allocate bufio.Reader if we pass it anything\n\t// other than a flate.Reader, so ensure that it's getting one.\n\tvar r flate.Reader = eofReader{}\n\tzr.Reset(r)\n\tgzipPool.Put(zr)\n}\n\n// acquire returns a gzip.Reader for reading response body.\n// The reader must be released after use.\nfunc (gz *gzipReader) acquire() (*gzip.Reader, error) {\n\tgz.mu.Lock()\n\tdefer gz.mu.Unlock()\n\tif gz.zerr != nil {\n\t\treturn nil, gz.zerr\n\t}\n\tif gz.zr == nil {\n\t\tgz.zr, gz.zerr = gzipPoolGet(gz.body)\n\t\tif gz.zerr != nil {\n\t\t\treturn nil, gz.zerr\n\t\t}\n\t}\n\tret := gz.zr\n\tgz.zr, gz.zerr = nil, errConcurrentReadOnResBody\n\treturn ret, nil\n}\n\n// release returns the gzip.Reader to the pool if Close was called during Read.\nfunc (gz *gzipReader) release(zr *gzip.Reader) {\n\tgz.mu.Lock()\n\tdefer gz.mu.Unlock()\n\tif gz.zerr == errConcurrentReadOnResBody {\n\t\tgz.zr, gz.zerr = zr, nil\n\t} else { // fs.ErrClosed\n\t\tgzipPoolPut(zr)\n\t}\n}\n\n// close returns the gzip.Reader to the pool immediately or\n// signals release to do so after Read completes.\nfunc (gz *gzipReader) close() {\n\tgz.mu.Lock()\n\tdefer gz.mu.Unlock()\n\tif gz.zerr == nil && gz.zr != nil {\n\t\tgzipPoolPut(gz.zr)\n\t\tgz.zr = nil\n\t}\n\tgz.zerr = fs.ErrClosed\n}\n\nfunc (gz *gzipReader) Read(p []byte) (n int, err error) {\n\tzr, err := gz.acquire()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer gz.release(zr)\n\n\treturn zr.Read(p)\n}\n\nfunc (gz *gzipReader) Close() error {\n\tgz.close()\n\n\treturn gz.body.Close()\n}\n\ntype errorReader struct{ err error }\n\nfunc (r errorReader) Read(p []byte) (int, error) { return 0, r.err }\n\n// isConnectionCloseRequest reports whether req should use its own\n// connection for a single request and then close the connection.\nfunc isConnectionCloseRequest(req *http.Request) bool {\n\treturn req.Close || httpguts.HeaderValuesContainsToken(req.Header[\"Connection\"], \"close\")\n}\n\n// registerHTTPSProtocol calls Transport.RegisterProtocol but\n// converting panics into errors.\nfunc registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) {\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\terr = fmt.Errorf(\"%v\", e)\n\t\t}\n\t}()\n\tt.RegisterProtocol(\"https\", rt)\n\treturn nil\n}\n\n// noDialH2RoundTripper is a RoundTripper which only tries to complete the request\n// if there's already a cached connection to the host.\n// (The field is exported so it can be accessed via reflect from net/http; tested\n// by TestNoDialH2RoundTripperType)\n//\n// A noDialH2RoundTripper is registered with http1.Transport.RegisterProtocol,\n// and the http1.Transport can use type assertions to call non-RoundTrip methods on it.\n// This lets us expose, for example, NewClientConn to net/http.\ntype noDialH2RoundTripper struct{ *Transport }\n\nfunc (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tres, err := rt.Transport.RoundTrip(req)\n\tif isNoCachedConnError(err) {\n\t\treturn nil, http.ErrSkipAltProtocol\n\t}\n\treturn res, err\n}\n\nfunc (rt noDialH2RoundTripper) NewClientConn(conn net.Conn, internalStateHook func()) (http.RoundTripper, error) {\n\ttr := rt.Transport\n\tcc, err := tr.newClientConn(conn, tr.disableKeepAlives(), internalStateHook)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// RoundTrip should block when the conn is at its concurrency limit,\n\t// not return an error. Setting strictMaxConcurrentStreams enables this.\n\tcc.strictMaxConcurrentStreams = true\n\n\treturn netHTTPClientConn{cc}, nil\n}\n\n// netHTTPClientConn wraps ClientConn and implements the interface net/http expects from\n// the RoundTripper returned by NewClientConn.\ntype netHTTPClientConn struct {\n\tcc *ClientConn\n}\n\nfunc (cc netHTTPClientConn) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn cc.cc.RoundTrip(req)\n}\n\nfunc (cc netHTTPClientConn) Close() error {\n\treturn cc.cc.Close()\n}\n\nfunc (cc netHTTPClientConn) Err() error {\n\tcc.cc.mu.Lock()\n\tdefer cc.cc.mu.Unlock()\n\tif cc.cc.closed {\n\t\treturn errors.New(\"connection closed\")\n\t}\n\treturn nil\n}\n\nfunc (cc netHTTPClientConn) Reserve() error {\n\tdefer cc.cc.maybeCallStateHook()\n\tcc.cc.mu.Lock()\n\tdefer cc.cc.mu.Unlock()\n\tif !cc.cc.canReserveLocked() {\n\t\treturn errors.New(\"connection is unavailable\")\n\t}\n\tcc.cc.streamsReserved++\n\treturn nil\n}\n\nfunc (cc netHTTPClientConn) Release() {\n\tdefer cc.cc.maybeCallStateHook()\n\tcc.cc.mu.Lock()\n\tdefer cc.cc.mu.Unlock()\n\t// We don't complain if streamsReserved is 0.\n\t//\n\t// This is consistent with RoundTrip: both Release and RoundTrip will\n\t// consume a reservation iff one exists.\n\tif cc.cc.streamsReserved > 0 {\n\t\tcc.cc.streamsReserved--\n\t}\n}\n\nfunc (cc netHTTPClientConn) Available() int {\n\tcc.cc.mu.Lock()\n\tdefer cc.cc.mu.Unlock()\n\treturn cc.cc.availableLocked()\n}\n\nfunc (cc netHTTPClientConn) InFlight() int {\n\tcc.cc.mu.Lock()\n\tdefer cc.cc.mu.Unlock()\n\treturn cc.cc.currentRequestCountLocked()\n}\n\nfunc (cc *ClientConn) maybeCallStateHook() {\n\tif cc.internalStateHook != nil {\n\t\tcc.internalStateHook()\n\t}\n}\n\nfunc (t *Transport) idleConnTimeout() time.Duration {\n\t// to keep things backwards compatible, we use non-zero values of\n\t// IdleConnTimeout, followed by using the IdleConnTimeout on the underlying\n\t// http1 transport, followed by 0\n\tif t.IdleConnTimeout != 0 {\n\t\treturn t.IdleConnTimeout\n\t}\n\n\tif t.t1 != nil {\n\t\treturn t.t1.IdleConnTimeout\n\t}\n\n\treturn 0\n}\n\nfunc traceGetConn(req *http.Request, hostPort string) {\n\ttrace := httptrace.ContextClientTrace(req.Context())\n\tif trace == nil || trace.GetConn == nil {\n\t\treturn\n\t}\n\ttrace.GetConn(hostPort)\n}\n\nfunc traceGotConn(req *http.Request, cc *ClientConn, reused bool) {\n\ttrace := httptrace.ContextClientTrace(req.Context())\n\tif trace == nil || trace.GotConn == nil {\n\t\treturn\n\t}\n\tci := httptrace.GotConnInfo{Conn: cc.tconn}\n\tci.Reused = reused\n\tcc.mu.Lock()\n\tci.WasIdle = len(cc.streams) == 0 && reused\n\tif ci.WasIdle && !cc.lastActive.IsZero() {\n\t\tci.IdleTime = time.Since(cc.lastActive)\n\t}\n\tcc.mu.Unlock()\n\n\ttrace.GotConn(ci)\n}\n\nfunc traceWroteHeaders(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.WroteHeaders != nil {\n\t\ttrace.WroteHeaders()\n\t}\n}\n\nfunc traceGot100Continue(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.Got100Continue != nil {\n\t\ttrace.Got100Continue()\n\t}\n}\n\nfunc traceWait100Continue(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.Wait100Continue != nil {\n\t\ttrace.Wait100Continue()\n\t}\n}\n\nfunc traceWroteRequest(trace *httptrace.ClientTrace, err error) {\n\tif trace != nil && trace.WroteRequest != nil {\n\t\ttrace.WroteRequest(httptrace.WroteRequestInfo{Err: err})\n\t}\n}\n\nfunc traceFirstResponseByte(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.GotFirstResponseByte != nil {\n\t\ttrace.GotFirstResponseByte()\n\t}\n}\n\nfunc traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {\n\tif trace != nil {\n\t\treturn trace.Got1xxResponse\n\t}\n\treturn nil\n}\n\n// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS\n// connection.\nfunc (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) {\n\tdialer := &tls.Dialer{\n\t\tConfig: cfg,\n\t}\n\tcn, err := dialer.DialContext(ctx, network, addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed\n\treturn tlsCn, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/unencrypted.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"net\"\n)\n\nconst nextProtoUnencryptedHTTP2 = \"unencrypted_http2\"\n\n// unencryptedNetConnFromTLSConn retrieves a net.Conn wrapped in a *tls.Conn.\n//\n// TLSNextProto functions accept a *tls.Conn.\n//\n// When passing an unencrypted HTTP/2 connection to a TLSNextProto function,\n// we pass a *tls.Conn with an underlying net.Conn containing the unencrypted connection.\n// To be extra careful about mistakes (accidentally dropping TLS encryption in a place\n// where we want it), the tls.Conn contains a net.Conn with an UnencryptedNetConn method\n// that returns the actual connection we want to use.\nfunc unencryptedNetConnFromTLSConn(tc *tls.Conn) (net.Conn, error) {\n\tconner, ok := tc.NetConn().(interface {\n\t\tUnencryptedNetConn() net.Conn\n\t})\n\tif !ok {\n\t\treturn nil, errors.New(\"http2: TLS conn unexpectedly found in unencrypted handoff\")\n\t}\n\treturn conner.UnencryptedNetConn(), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/write.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\n// writeFramer is implemented by any type that is used to write frames.\ntype writeFramer interface {\n\twriteFrame(writeContext) error\n\n\t// staysWithinBuffer reports whether this writer promises that\n\t// it will only write less than or equal to size bytes, and it\n\t// won't Flush the write context.\n\tstaysWithinBuffer(size int) bool\n}\n\n// writeContext is the interface needed by the various frame writer\n// types below. All the writeFrame methods below are scheduled via the\n// frame writing scheduler (see writeScheduler in writesched.go).\n//\n// This interface is implemented by *serverConn.\n//\n// TODO: decide whether to a) use this in the client code (which didn't\n// end up using this yet, because it has a simpler design, not\n// currently implementing priorities), or b) delete this and\n// make the server code a bit more concrete.\ntype writeContext interface {\n\tFramer() *Framer\n\tFlush() error\n\tCloseConn() error\n\t// HeaderEncoder returns an HPACK encoder that writes to the\n\t// returned buffer.\n\tHeaderEncoder() (*hpack.Encoder, *bytes.Buffer)\n}\n\n// writeEndsStream reports whether w writes a frame that will transition\n// the stream to a half-closed local state. This returns false for RST_STREAM,\n// which closes the entire stream (not just the local half).\nfunc writeEndsStream(w writeFramer) bool {\n\tswitch v := w.(type) {\n\tcase *writeData:\n\t\treturn v.endStream\n\tcase *writeResHeaders:\n\t\treturn v.endStream\n\tcase nil:\n\t\t// This can only happen if the caller reuses w after it's\n\t\t// been intentionally nil'ed out to prevent use. Keep this\n\t\t// here to catch future refactoring breaking it.\n\t\tpanic(\"writeEndsStream called on nil writeFramer\")\n\t}\n\treturn false\n}\n\ntype flushFrameWriter struct{}\n\nfunc (flushFrameWriter) writeFrame(ctx writeContext) error {\n\treturn ctx.Flush()\n}\n\nfunc (flushFrameWriter) staysWithinBuffer(max int) bool { return false }\n\ntype writeSettings []Setting\n\nfunc (s writeSettings) staysWithinBuffer(max int) bool {\n\tconst settingSize = 6 // uint16 + uint32\n\treturn frameHeaderLen+settingSize*len(s) <= max\n\n}\n\nfunc (s writeSettings) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteSettings([]Setting(s)...)\n}\n\ntype writeGoAway struct {\n\tmaxStreamID uint32\n\tcode        ErrCode\n}\n\nfunc (p *writeGoAway) writeFrame(ctx writeContext) error {\n\terr := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil)\n\tctx.Flush() // ignore error: we're hanging up on them anyway\n\treturn err\n}\n\nfunc (*writeGoAway) staysWithinBuffer(max int) bool { return false } // flushes\n\ntype writeData struct {\n\tstreamID  uint32\n\tp         []byte\n\tendStream bool\n}\n\nfunc (w *writeData) String() string {\n\treturn fmt.Sprintf(\"writeData(stream=%d, p=%d, endStream=%v)\", w.streamID, len(w.p), w.endStream)\n}\n\nfunc (w *writeData) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteData(w.streamID, w.endStream, w.p)\n}\n\nfunc (w *writeData) staysWithinBuffer(max int) bool {\n\treturn frameHeaderLen+len(w.p) <= max\n}\n\n// handlerPanicRST is the message sent from handler goroutines when\n// the handler panics.\ntype handlerPanicRST struct {\n\tStreamID uint32\n}\n\nfunc (hp handlerPanicRST) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteRSTStream(hp.StreamID, ErrCodeInternal)\n}\n\nfunc (hp handlerPanicRST) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\nfunc (se StreamError) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteRSTStream(se.StreamID, se.Code)\n}\n\nfunc (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\ntype writePing struct {\n\tdata [8]byte\n}\n\nfunc (w writePing) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WritePing(false, w.data)\n}\n\nfunc (w writePing) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.data) <= max }\n\ntype writePingAck struct{ pf *PingFrame }\n\nfunc (w writePingAck) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WritePing(true, w.pf.Data)\n}\n\nfunc (w writePingAck) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.pf.Data) <= max }\n\ntype writeSettingsAck struct{}\n\nfunc (writeSettingsAck) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteSettingsAck()\n}\n\nfunc (writeSettingsAck) staysWithinBuffer(max int) bool { return frameHeaderLen <= max }\n\n// splitHeaderBlock splits headerBlock into fragments so that each fragment fits\n// in a single frame, then calls fn for each fragment. firstFrag/lastFrag are true\n// for the first/last fragment, respectively.\nfunc splitHeaderBlock(ctx writeContext, headerBlock []byte, fn func(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error) error {\n\t// For now we're lazy and just pick the minimum MAX_FRAME_SIZE\n\t// that all peers must support (16KB). Later we could care\n\t// more and send larger frames if the peer advertised it, but\n\t// there's little point. Most headers are small anyway (so we\n\t// generally won't have CONTINUATION frames), and extra frames\n\t// only waste 9 bytes anyway.\n\tconst maxFrameSize = 16384\n\n\tfirst := true\n\tfor len(headerBlock) > 0 {\n\t\tfrag := headerBlock\n\t\tif len(frag) > maxFrameSize {\n\t\t\tfrag = frag[:maxFrameSize]\n\t\t}\n\t\theaderBlock = headerBlock[len(frag):]\n\t\tif err := fn(ctx, frag, first, len(headerBlock) == 0); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirst = false\n\t}\n\treturn nil\n}\n\n// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames\n// for HTTP response headers or trailers from a server handler.\ntype writeResHeaders struct {\n\tstreamID    uint32\n\thttpResCode int         // 0 means no \":status\" line\n\th           http.Header // may be nil\n\ttrailers    []string    // if non-nil, which keys of h to write. nil means all.\n\tendStream   bool\n\n\tdate          string\n\tcontentType   string\n\tcontentLength string\n}\n\nfunc encKV(enc *hpack.Encoder, k, v string) {\n\tif VerboseLogs {\n\t\tlog.Printf(\"http2: server encoding header %q = %q\", k, v)\n\t}\n\tenc.WriteField(hpack.HeaderField{Name: k, Value: v})\n}\n\nfunc (w *writeResHeaders) staysWithinBuffer(max int) bool {\n\t// TODO: this is a common one. It'd be nice to return true\n\t// here and get into the fast path if we could be clever and\n\t// calculate the size fast enough, or at least a conservative\n\t// upper bound that usually fires. (Maybe if w.h and\n\t// w.trailers are nil, so we don't need to enumerate it.)\n\t// Otherwise I'm afraid that just calculating the length to\n\t// answer this question would be slower than the ~2µs benefit.\n\treturn false\n}\n\nfunc (w *writeResHeaders) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\n\tif w.httpResCode != 0 {\n\t\tencKV(enc, \":status\", httpCodeString(w.httpResCode))\n\t}\n\n\tencodeHeaders(enc, w.h, w.trailers)\n\n\tif w.contentType != \"\" {\n\t\tencKV(enc, \"content-type\", w.contentType)\n\t}\n\tif w.contentLength != \"\" {\n\t\tencKV(enc, \"content-length\", w.contentLength)\n\t}\n\tif w.date != \"\" {\n\t\tencKV(enc, \"date\", w.date)\n\t}\n\n\theaderBlock := buf.Bytes()\n\tif len(headerBlock) == 0 && w.trailers == nil {\n\t\tpanic(\"unexpected empty hpack\")\n\t}\n\n\treturn splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)\n}\n\nfunc (w *writeResHeaders) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {\n\tif firstFrag {\n\t\treturn ctx.Framer().WriteHeaders(HeadersFrameParam{\n\t\t\tStreamID:      w.streamID,\n\t\t\tBlockFragment: frag,\n\t\t\tEndStream:     w.endStream,\n\t\t\tEndHeaders:    lastFrag,\n\t\t})\n\t} else {\n\t\treturn ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)\n\t}\n}\n\n// writePushPromise is a request to write a PUSH_PROMISE and 0+ CONTINUATION frames.\ntype writePushPromise struct {\n\tstreamID uint32   // pusher stream\n\tmethod   string   // for :method\n\turl      *url.URL // for :scheme, :authority, :path\n\th        http.Header\n\n\t// Creates an ID for a pushed stream. This runs on serveG just before\n\t// the frame is written. The returned ID is copied to promisedID.\n\tallocatePromisedID func() (uint32, error)\n\tpromisedID         uint32\n}\n\nfunc (w *writePushPromise) staysWithinBuffer(max int) bool {\n\t// TODO: see writeResHeaders.staysWithinBuffer\n\treturn false\n}\n\nfunc (w *writePushPromise) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\n\tencKV(enc, \":method\", w.method)\n\tencKV(enc, \":scheme\", w.url.Scheme)\n\tencKV(enc, \":authority\", w.url.Host)\n\tencKV(enc, \":path\", w.url.RequestURI())\n\tencodeHeaders(enc, w.h, nil)\n\n\theaderBlock := buf.Bytes()\n\tif len(headerBlock) == 0 {\n\t\tpanic(\"unexpected empty hpack\")\n\t}\n\n\treturn splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)\n}\n\nfunc (w *writePushPromise) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {\n\tif firstFrag {\n\t\treturn ctx.Framer().WritePushPromise(PushPromiseParam{\n\t\t\tStreamID:      w.streamID,\n\t\t\tPromiseID:     w.promisedID,\n\t\t\tBlockFragment: frag,\n\t\t\tEndHeaders:    lastFrag,\n\t\t})\n\t} else {\n\t\treturn ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)\n\t}\n}\n\ntype write100ContinueHeadersFrame struct {\n\tstreamID uint32\n}\n\nfunc (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\tencKV(enc, \":status\", \"100\")\n\treturn ctx.Framer().WriteHeaders(HeadersFrameParam{\n\t\tStreamID:      w.streamID,\n\t\tBlockFragment: buf.Bytes(),\n\t\tEndStream:     false,\n\t\tEndHeaders:    true,\n\t})\n}\n\nfunc (w write100ContinueHeadersFrame) staysWithinBuffer(max int) bool {\n\t// Sloppy but conservative:\n\treturn 9+2*(len(\":status\")+len(\"100\")) <= max\n}\n\ntype writeWindowUpdate struct {\n\tstreamID uint32 // or 0 for conn-level\n\tn        uint32\n}\n\nfunc (wu writeWindowUpdate) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\nfunc (wu writeWindowUpdate) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n)\n}\n\n// encodeHeaders encodes an http.Header. If keys is not nil, then (k, h[k])\n// is encoded only if k is in keys.\nfunc encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) {\n\tif keys == nil {\n\t\tsorter := sorterPool.Get().(*sorter)\n\t\t// Using defer here, since the returned keys from the\n\t\t// sorter.Keys method is only valid until the sorter\n\t\t// is returned:\n\t\tdefer sorterPool.Put(sorter)\n\t\tkeys = sorter.Keys(h)\n\t}\n\tfor _, k := range keys {\n\t\tvv := h[k]\n\t\tk, ascii := httpcommon.LowerHeader(k)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\tcontinue\n\t\t}\n\t\tif !validWireHeaderFieldName(k) {\n\t\t\t// Skip it as backup paranoia. Per\n\t\t\t// golang.org/issue/14048, these should\n\t\t\t// already be rejected at a higher level.\n\t\t\tcontinue\n\t\t}\n\t\tisTE := k == \"transfer-encoding\"\n\t\tfor _, v := range vv {\n\t\t\tif !httpguts.ValidHeaderFieldValue(v) {\n\t\t\t\t// TODO: return an error? golang.org/issue/14048\n\t\t\t\t// For now just omit it.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// TODO: more of \"8.1.2.2 Connection-Specific Header Fields\"\n\t\t\tif isTE && v != \"trailers\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tencKV(enc, k, v)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"fmt\"\n\n// WriteScheduler is the interface implemented by HTTP/2 write schedulers.\n// Methods are never called concurrently.\ntype WriteScheduler interface {\n\t// OpenStream opens a new stream in the write scheduler.\n\t// It is illegal to call this with streamID=0 or with a streamID that is\n\t// already open -- the call may panic.\n\tOpenStream(streamID uint32, options OpenStreamOptions)\n\n\t// CloseStream closes a stream in the write scheduler. Any frames queued on\n\t// this stream should be discarded. It is illegal to call this on a stream\n\t// that is not open -- the call may panic.\n\tCloseStream(streamID uint32)\n\n\t// AdjustStream adjusts the priority of the given stream. This may be called\n\t// on a stream that has not yet been opened or has been closed. Note that\n\t// RFC 7540 allows PRIORITY frames to be sent on streams in any state. See:\n\t// https://tools.ietf.org/html/rfc7540#section-5.1\n\tAdjustStream(streamID uint32, priority PriorityParam)\n\n\t// Push queues a frame in the scheduler. In most cases, this will not be\n\t// called with wr.StreamID()!=0 unless that stream is currently open. The one\n\t// exception is RST_STREAM frames, which may be sent on idle or closed streams.\n\tPush(wr FrameWriteRequest)\n\n\t// Pop dequeues the next frame to write. Returns false if no frames can\n\t// be written. Frames with a given wr.StreamID() are Pop'd in the same\n\t// order they are Push'd, except RST_STREAM frames. No frames should be\n\t// discarded except by CloseStream.\n\tPop() (wr FrameWriteRequest, ok bool)\n}\n\n// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.\ntype OpenStreamOptions struct {\n\t// PusherID is zero if the stream was initiated by the client. Otherwise,\n\t// PusherID names the stream that pushed the newly opened stream.\n\tPusherID uint32\n\t// priority is used to set the priority of the newly opened stream.\n\tpriority PriorityParam\n}\n\n// FrameWriteRequest is a request to write a frame.\ntype FrameWriteRequest struct {\n\t// write is the interface value that does the writing, once the\n\t// WriteScheduler has selected this frame to write. The write\n\t// functions are all defined in write.go.\n\twrite writeFramer\n\n\t// stream is the stream on which this frame will be written.\n\t// nil for non-stream frames like PING and SETTINGS.\n\t// nil for RST_STREAM streams, which use the StreamError.StreamID field instead.\n\tstream *stream\n\n\t// done, if non-nil, must be a buffered channel with space for\n\t// 1 message and is sent the return value from write (or an\n\t// earlier error) when the frame has been written.\n\tdone chan error\n}\n\n// StreamID returns the id of the stream this frame will be written to.\n// 0 is used for non-stream frames such as PING and SETTINGS.\nfunc (wr FrameWriteRequest) StreamID() uint32 {\n\tif wr.stream == nil {\n\t\tif se, ok := wr.write.(StreamError); ok {\n\t\t\t// (*serverConn).resetStream doesn't set\n\t\t\t// stream because it doesn't necessarily have\n\t\t\t// one. So special case this type of write\n\t\t\t// message.\n\t\t\treturn se.StreamID\n\t\t}\n\t\treturn 0\n\t}\n\treturn wr.stream.id\n}\n\n// isControl reports whether wr is a control frame for MaxQueuedControlFrames\n// purposes. That includes non-stream frames and RST_STREAM frames.\nfunc (wr FrameWriteRequest) isControl() bool {\n\treturn wr.stream == nil\n}\n\n// DataSize returns the number of flow control bytes that must be consumed\n// to write this entire frame. This is 0 for non-DATA frames.\nfunc (wr FrameWriteRequest) DataSize() int {\n\tif wd, ok := wr.write.(*writeData); ok {\n\t\treturn len(wd.p)\n\t}\n\treturn 0\n}\n\n// Consume consumes min(n, available) bytes from this frame, where available\n// is the number of flow control bytes available on the stream. Consume returns\n// 0, 1, or 2 frames, where the integer return value gives the number of frames\n// returned.\n//\n// If flow control prevents consuming any bytes, this returns (_, _, 0). If\n// the entire frame was consumed, this returns (wr, _, 1). Otherwise, this\n// returns (consumed, rest, 2), where 'consumed' contains the consumed bytes and\n// 'rest' contains the remaining bytes. The consumed bytes are deducted from the\n// underlying stream's flow control budget.\nfunc (wr FrameWriteRequest) Consume(n int32) (FrameWriteRequest, FrameWriteRequest, int) {\n\tvar empty FrameWriteRequest\n\n\t// Non-DATA frames are always consumed whole.\n\twd, ok := wr.write.(*writeData)\n\tif !ok || len(wd.p) == 0 {\n\t\treturn wr, empty, 1\n\t}\n\n\t// Might need to split after applying limits.\n\tallowed := wr.stream.flow.available()\n\tif n < allowed {\n\t\tallowed = n\n\t}\n\tif wr.stream.sc.maxFrameSize < allowed {\n\t\tallowed = wr.stream.sc.maxFrameSize\n\t}\n\tif allowed <= 0 {\n\t\treturn empty, empty, 0\n\t}\n\tif len(wd.p) > int(allowed) {\n\t\twr.stream.flow.take(allowed)\n\t\tconsumed := FrameWriteRequest{\n\t\t\tstream: wr.stream,\n\t\t\twrite: &writeData{\n\t\t\t\tstreamID: wd.streamID,\n\t\t\t\tp:        wd.p[:allowed],\n\t\t\t\t// Even if the original had endStream set, there\n\t\t\t\t// are bytes remaining because len(wd.p) > allowed,\n\t\t\t\t// so we know endStream is false.\n\t\t\t\tendStream: false,\n\t\t\t},\n\t\t\t// Our caller is blocking on the final DATA frame, not\n\t\t\t// this intermediate frame, so no need to wait.\n\t\t\tdone: nil,\n\t\t}\n\t\trest := FrameWriteRequest{\n\t\t\tstream: wr.stream,\n\t\t\twrite: &writeData{\n\t\t\t\tstreamID:  wd.streamID,\n\t\t\t\tp:         wd.p[allowed:],\n\t\t\t\tendStream: wd.endStream,\n\t\t\t},\n\t\t\tdone: wr.done,\n\t\t}\n\t\treturn consumed, rest, 2\n\t}\n\n\t// The frame is consumed whole.\n\t// NB: This cast cannot overflow because allowed is <= math.MaxInt32.\n\twr.stream.flow.take(int32(len(wd.p)))\n\treturn wr, empty, 1\n}\n\n// String is for debugging only.\nfunc (wr FrameWriteRequest) String() string {\n\tvar des string\n\tif s, ok := wr.write.(fmt.Stringer); ok {\n\t\tdes = s.String()\n\t} else {\n\t\tdes = fmt.Sprintf(\"%T\", wr.write)\n\t}\n\treturn fmt.Sprintf(\"[FrameWriteRequest stream=%d, ch=%v, writer=%v]\", wr.StreamID(), wr.done != nil, des)\n}\n\n// replyToWriter sends err to wr.done and panics if the send must block\n// This does nothing if wr.done is nil.\nfunc (wr *FrameWriteRequest) replyToWriter(err error) {\n\tif wr.done == nil {\n\t\treturn\n\t}\n\tselect {\n\tcase wr.done <- err:\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unbuffered done channel passed in for type %T\", wr.write))\n\t}\n\twr.write = nil // prevent use (assume it's tainted after wr.done send)\n}\n\n// writeQueue is used by implementations of WriteScheduler.\n//\n// Each writeQueue contains a queue of FrameWriteRequests, meant to store all\n// FrameWriteRequests associated with a given stream. This is implemented as a\n// two-stage queue: currQueue[currPos:] and nextQueue. Removing an item is done\n// by incrementing currPos of currQueue. Adding an item is done by appending it\n// to the nextQueue. If currQueue is empty when trying to remove an item, we\n// can swap currQueue and nextQueue to remedy the situation.\n// This two-stage queue is analogous to the use of two lists in Okasaki's\n// purely functional queue but without the overhead of reversing the list when\n// swapping stages.\n//\n// writeQueue also contains prev and next, this can be used by implementations\n// of WriteScheduler to construct data structures that represent the order of\n// writing between different streams (e.g. circular linked list).\ntype writeQueue struct {\n\tcurrQueue []FrameWriteRequest\n\tnextQueue []FrameWriteRequest\n\tcurrPos   int\n\n\tprev, next *writeQueue\n}\n\nfunc (q *writeQueue) empty() bool {\n\treturn (len(q.currQueue) - q.currPos + len(q.nextQueue)) == 0\n}\n\nfunc (q *writeQueue) push(wr FrameWriteRequest) {\n\tq.nextQueue = append(q.nextQueue, wr)\n}\n\nfunc (q *writeQueue) shift() FrameWriteRequest {\n\tif q.empty() {\n\t\tpanic(\"invalid use of queue\")\n\t}\n\tif q.currPos >= len(q.currQueue) {\n\t\tq.currQueue, q.currPos, q.nextQueue = q.nextQueue, 0, q.currQueue[:0]\n\t}\n\twr := q.currQueue[q.currPos]\n\tq.currQueue[q.currPos] = FrameWriteRequest{}\n\tq.currPos++\n\treturn wr\n}\n\nfunc (q *writeQueue) peek() *FrameWriteRequest {\n\tif q.currPos < len(q.currQueue) {\n\t\treturn &q.currQueue[q.currPos]\n\t}\n\tif len(q.nextQueue) > 0 {\n\t\treturn &q.nextQueue[0]\n\t}\n\treturn nil\n}\n\n// consume consumes up to n bytes from q.s[0]. If the frame is\n// entirely consumed, it is removed from the queue. If the frame\n// is partially consumed, the frame is kept with the consumed\n// bytes removed. Returns true iff any bytes were consumed.\nfunc (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) {\n\tif q.empty() {\n\t\treturn FrameWriteRequest{}, false\n\t}\n\tconsumed, rest, numresult := q.peek().Consume(n)\n\tswitch numresult {\n\tcase 0:\n\t\treturn FrameWriteRequest{}, false\n\tcase 1:\n\t\tq.shift()\n\tcase 2:\n\t\t*q.peek() = rest\n\t}\n\treturn consumed, true\n}\n\ntype writeQueuePool []*writeQueue\n\n// put inserts an unused writeQueue into the pool.\nfunc (p *writeQueuePool) put(q *writeQueue) {\n\tfor i := range q.currQueue {\n\t\tq.currQueue[i] = FrameWriteRequest{}\n\t}\n\tfor i := range q.nextQueue {\n\t\tq.nextQueue[i] = FrameWriteRequest{}\n\t}\n\tq.currQueue = q.currQueue[:0]\n\tq.nextQueue = q.nextQueue[:0]\n\tq.currPos = 0\n\t*p = append(*p, q)\n}\n\n// get returns an empty writeQueue.\nfunc (p *writeQueuePool) get() *writeQueue {\n\tln := len(*p)\n\tif ln == 0 {\n\t\treturn new(writeQueue)\n\t}\n\tx := ln - 1\n\tq := (*p)[x]\n\t(*p)[x] = nil\n\t*p = (*p)[:x]\n\treturn q\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sort\"\n)\n\n// RFC 7540, Section 5.3.5: the default weight is 16.\nconst priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1\n\n// PriorityWriteSchedulerConfig configures a priorityWriteScheduler.\ntype PriorityWriteSchedulerConfig struct {\n\t// MaxClosedNodesInTree controls the maximum number of closed streams to\n\t// retain in the priority tree. Setting this to zero saves a small amount\n\t// of memory at the cost of performance.\n\t//\n\t// See RFC 7540, Section 5.3.4:\n\t//   \"It is possible for a stream to become closed while prioritization\n\t//   information ... is in transit. ... This potentially creates suboptimal\n\t//   prioritization, since the stream could be given a priority that is\n\t//   different from what is intended. To avoid these problems, an endpoint\n\t//   SHOULD retain stream prioritization state for a period after streams\n\t//   become closed. The longer state is retained, the lower the chance that\n\t//   streams are assigned incorrect or default priority values.\"\n\tMaxClosedNodesInTree int\n\n\t// MaxIdleNodesInTree controls the maximum number of idle streams to\n\t// retain in the priority tree. Setting this to zero saves a small amount\n\t// of memory at the cost of performance.\n\t//\n\t// See RFC 7540, Section 5.3.4:\n\t//   Similarly, streams that are in the \"idle\" state can be assigned\n\t//   priority or become a parent of other streams. This allows for the\n\t//   creation of a grouping node in the dependency tree, which enables\n\t//   more flexible expressions of priority. Idle streams begin with a\n\t//   default priority (Section 5.3.5).\n\tMaxIdleNodesInTree int\n\n\t// ThrottleOutOfOrderWrites enables write throttling to help ensure that\n\t// data is delivered in priority order. This works around a race where\n\t// stream B depends on stream A and both streams are about to call Write\n\t// to queue DATA frames. If B wins the race, a naive scheduler would eagerly\n\t// write as much data from B as possible, but this is suboptimal because A\n\t// is a higher-priority stream. With throttling enabled, we write a small\n\t// amount of data from B to minimize the amount of bandwidth that B can\n\t// steal from A.\n\tThrottleOutOfOrderWrites bool\n}\n\n// NewPriorityWriteScheduler constructs a WriteScheduler that schedules\n// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.\n// If cfg is nil, default options are used.\nfunc NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler {\n\tif cfg == nil {\n\t\t// For justification of these defaults, see:\n\t\t// https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY\n\t\tcfg = &PriorityWriteSchedulerConfig{\n\t\t\tMaxClosedNodesInTree:     10,\n\t\t\tMaxIdleNodesInTree:       10,\n\t\t\tThrottleOutOfOrderWrites: false,\n\t\t}\n\t}\n\n\tws := &priorityWriteSchedulerRFC7540{\n\t\tnodes:                make(map[uint32]*priorityNodeRFC7540),\n\t\tmaxClosedNodesInTree: cfg.MaxClosedNodesInTree,\n\t\tmaxIdleNodesInTree:   cfg.MaxIdleNodesInTree,\n\t\tenableWriteThrottle:  cfg.ThrottleOutOfOrderWrites,\n\t}\n\tws.nodes[0] = &ws.root\n\tif cfg.ThrottleOutOfOrderWrites {\n\t\tws.writeThrottleLimit = 1024\n\t} else {\n\t\tws.writeThrottleLimit = math.MaxInt32\n\t}\n\treturn ws\n}\n\ntype priorityNodeStateRFC7540 int\n\nconst (\n\tpriorityNodeOpenRFC7540 priorityNodeStateRFC7540 = iota\n\tpriorityNodeClosedRFC7540\n\tpriorityNodeIdleRFC7540\n)\n\n// priorityNodeRFC7540 is a node in an HTTP/2 priority tree.\n// Each node is associated with a single stream ID.\n// See RFC 7540, Section 5.3.\ntype priorityNodeRFC7540 struct {\n\tq            writeQueue               // queue of pending frames to write\n\tid           uint32                   // id of the stream, or 0 for the root of the tree\n\tweight       uint8                    // the actual weight is weight+1, so the value is in [1,256]\n\tstate        priorityNodeStateRFC7540 // open | closed | idle\n\tbytes        int64                    // number of bytes written by this node, or 0 if closed\n\tsubtreeBytes int64                    // sum(node.bytes) of all nodes in this subtree\n\n\t// These links form the priority tree.\n\tparent     *priorityNodeRFC7540\n\tkids       *priorityNodeRFC7540 // start of the kids list\n\tprev, next *priorityNodeRFC7540 // doubly-linked list of siblings\n}\n\nfunc (n *priorityNodeRFC7540) setParent(parent *priorityNodeRFC7540) {\n\tif n == parent {\n\t\tpanic(\"setParent to self\")\n\t}\n\tif n.parent == parent {\n\t\treturn\n\t}\n\t// Unlink from current parent.\n\tif parent := n.parent; parent != nil {\n\t\tif n.prev == nil {\n\t\t\tparent.kids = n.next\n\t\t} else {\n\t\t\tn.prev.next = n.next\n\t\t}\n\t\tif n.next != nil {\n\t\t\tn.next.prev = n.prev\n\t\t}\n\t}\n\t// Link to new parent.\n\t// If parent=nil, remove n from the tree.\n\t// Always insert at the head of parent.kids (this is assumed by walkReadyInOrder).\n\tn.parent = parent\n\tif parent == nil {\n\t\tn.next = nil\n\t\tn.prev = nil\n\t} else {\n\t\tn.next = parent.kids\n\t\tn.prev = nil\n\t\tif n.next != nil {\n\t\t\tn.next.prev = n\n\t\t}\n\t\tparent.kids = n\n\t}\n}\n\nfunc (n *priorityNodeRFC7540) addBytes(b int64) {\n\tn.bytes += b\n\tfor ; n != nil; n = n.parent {\n\t\tn.subtreeBytes += b\n\t}\n}\n\n// walkReadyInOrder iterates over the tree in priority order, calling f for each node\n// with a non-empty write queue. When f returns true, this function returns true and the\n// walk halts. tmp is used as scratch space for sorting.\n//\n// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true\n// if any ancestor p of n is still open (ignoring the root node).\nfunc (n *priorityNodeRFC7540) walkReadyInOrder(openParent bool, tmp *[]*priorityNodeRFC7540, f func(*priorityNodeRFC7540, bool) bool) bool {\n\tif !n.q.empty() && f(n, openParent) {\n\t\treturn true\n\t}\n\tif n.kids == nil {\n\t\treturn false\n\t}\n\n\t// Don't consider the root \"open\" when updating openParent since\n\t// we can't send data frames on the root stream (only control frames).\n\tif n.id != 0 {\n\t\topenParent = openParent || (n.state == priorityNodeOpenRFC7540)\n\t}\n\n\t// Common case: only one kid or all kids have the same weight.\n\t// Some clients don't use weights; other clients (like web browsers)\n\t// use mostly-linear priority trees.\n\tw := n.kids.weight\n\tneedSort := false\n\tfor k := n.kids.next; k != nil; k = k.next {\n\t\tif k.weight != w {\n\t\t\tneedSort = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !needSort {\n\t\tfor k := n.kids; k != nil; k = k.next {\n\t\t\tif k.walkReadyInOrder(openParent, tmp, f) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\t// Uncommon case: sort the child nodes. We remove the kids from the parent,\n\t// then re-insert after sorting so we can reuse tmp for future sort calls.\n\t*tmp = (*tmp)[:0]\n\tfor n.kids != nil {\n\t\t*tmp = append(*tmp, n.kids)\n\t\tn.kids.setParent(nil)\n\t}\n\tsort.Sort(sortPriorityNodeSiblingsRFC7540(*tmp))\n\tfor i := len(*tmp) - 1; i >= 0; i-- {\n\t\t(*tmp)[i].setParent(n) // setParent inserts at the head of n.kids\n\t}\n\tfor k := n.kids; k != nil; k = k.next {\n\t\tif k.walkReadyInOrder(openParent, tmp, f) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\ntype sortPriorityNodeSiblingsRFC7540 []*priorityNodeRFC7540\n\nfunc (z sortPriorityNodeSiblingsRFC7540) Len() int      { return len(z) }\nfunc (z sortPriorityNodeSiblingsRFC7540) Swap(i, k int) { z[i], z[k] = z[k], z[i] }\nfunc (z sortPriorityNodeSiblingsRFC7540) Less(i, k int) bool {\n\t// Prefer the subtree that has sent fewer bytes relative to its weight.\n\t// See sections 5.3.2 and 5.3.4.\n\twi, bi := float64(z[i].weight)+1, float64(z[i].subtreeBytes)\n\twk, bk := float64(z[k].weight)+1, float64(z[k].subtreeBytes)\n\tif bi == 0 && bk == 0 {\n\t\treturn wi >= wk\n\t}\n\tif bk == 0 {\n\t\treturn false\n\t}\n\treturn bi/bk <= wi/wk\n}\n\ntype priorityWriteSchedulerRFC7540 struct {\n\t// root is the root of the priority tree, where root.id = 0.\n\t// The root queues control frames that are not associated with any stream.\n\troot priorityNodeRFC7540\n\n\t// nodes maps stream ids to priority tree nodes.\n\tnodes map[uint32]*priorityNodeRFC7540\n\n\t// maxID is the maximum stream id in nodes.\n\tmaxID uint32\n\n\t// lists of nodes that have been closed or are idle, but are kept in\n\t// the tree for improved prioritization. When the lengths exceed either\n\t// maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded.\n\tclosedNodes, idleNodes []*priorityNodeRFC7540\n\n\t// From the config.\n\tmaxClosedNodesInTree int\n\tmaxIdleNodesInTree   int\n\twriteThrottleLimit   int32\n\tenableWriteThrottle  bool\n\n\t// tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations.\n\ttmp []*priorityNodeRFC7540\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) OpenStream(streamID uint32, options OpenStreamOptions) {\n\t// The stream may be currently idle but cannot be opened or closed.\n\tif curr := ws.nodes[streamID]; curr != nil {\n\t\tif curr.state != priorityNodeIdleRFC7540 {\n\t\t\tpanic(fmt.Sprintf(\"stream %d already opened\", streamID))\n\t\t}\n\t\tcurr.state = priorityNodeOpenRFC7540\n\t\treturn\n\t}\n\n\t// RFC 7540, Section 5.3.5:\n\t//  \"All streams are initially assigned a non-exclusive dependency on stream 0x0.\n\t//  Pushed streams initially depend on their associated stream. In both cases,\n\t//  streams are assigned a default weight of 16.\"\n\tparent := ws.nodes[options.PusherID]\n\tif parent == nil {\n\t\tparent = &ws.root\n\t}\n\tn := &priorityNodeRFC7540{\n\t\tq:      *ws.queuePool.get(),\n\t\tid:     streamID,\n\t\tweight: priorityDefaultWeightRFC7540,\n\t\tstate:  priorityNodeOpenRFC7540,\n\t}\n\tn.setParent(parent)\n\tws.nodes[streamID] = n\n\tif streamID > ws.maxID {\n\t\tws.maxID = streamID\n\t}\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) CloseStream(streamID uint32) {\n\tif streamID == 0 {\n\t\tpanic(\"violation of WriteScheduler interface: cannot close stream 0\")\n\t}\n\tif ws.nodes[streamID] == nil {\n\t\tpanic(fmt.Sprintf(\"violation of WriteScheduler interface: unknown stream %d\", streamID))\n\t}\n\tif ws.nodes[streamID].state != priorityNodeOpenRFC7540 {\n\t\tpanic(fmt.Sprintf(\"violation of WriteScheduler interface: stream %d already closed\", streamID))\n\t}\n\n\tn := ws.nodes[streamID]\n\tn.state = priorityNodeClosedRFC7540\n\tn.addBytes(-n.bytes)\n\n\tq := n.q\n\tws.queuePool.put(&q)\n\tif ws.maxClosedNodesInTree > 0 {\n\t\tws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n)\n\t} else {\n\t\tws.removeNode(n)\n\t}\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) AdjustStream(streamID uint32, priority PriorityParam) {\n\tif streamID == 0 {\n\t\tpanic(\"adjustPriority on root\")\n\t}\n\n\t// If streamID does not exist, there are two cases:\n\t// - A closed stream that has been removed (this will have ID <= maxID)\n\t// - An idle stream that is being used for \"grouping\" (this will have ID > maxID)\n\tn := ws.nodes[streamID]\n\tif n == nil {\n\t\tif streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 {\n\t\t\treturn\n\t\t}\n\t\tws.maxID = streamID\n\t\tn = &priorityNodeRFC7540{\n\t\t\tq:      *ws.queuePool.get(),\n\t\t\tid:     streamID,\n\t\t\tweight: priorityDefaultWeightRFC7540,\n\t\t\tstate:  priorityNodeIdleRFC7540,\n\t\t}\n\t\tn.setParent(&ws.root)\n\t\tws.nodes[streamID] = n\n\t\tws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n)\n\t}\n\n\t// Section 5.3.1: A dependency on a stream that is not currently in the tree\n\t// results in that stream being given a default priority (Section 5.3.5).\n\tparent := ws.nodes[priority.StreamDep]\n\tif parent == nil {\n\t\tn.setParent(&ws.root)\n\t\tn.weight = priorityDefaultWeightRFC7540\n\t\treturn\n\t}\n\n\t// Ignore if the client tries to make a node its own parent.\n\tif n == parent {\n\t\treturn\n\t}\n\n\t// Section 5.3.3:\n\t//   \"If a stream is made dependent on one of its own dependencies, the\n\t//   formerly dependent stream is first moved to be dependent on the\n\t//   reprioritized stream's previous parent. The moved dependency retains\n\t//   its weight.\"\n\t//\n\t// That is: if parent depends on n, move parent to depend on n.parent.\n\tfor x := parent.parent; x != nil; x = x.parent {\n\t\tif x == n {\n\t\t\tparent.setParent(n.parent)\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Section 5.3.3: The exclusive flag causes the stream to become the sole\n\t// dependency of its parent stream, causing other dependencies to become\n\t// dependent on the exclusive stream.\n\tif priority.Exclusive {\n\t\tk := parent.kids\n\t\tfor k != nil {\n\t\t\tnext := k.next\n\t\t\tif k != n {\n\t\t\t\tk.setParent(n)\n\t\t\t}\n\t\t\tk = next\n\t\t}\n\t}\n\n\tn.setParent(parent)\n\tn.weight = priority.Weight\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) Push(wr FrameWriteRequest) {\n\tvar n *priorityNodeRFC7540\n\tif wr.isControl() {\n\t\tn = &ws.root\n\t} else {\n\t\tid := wr.StreamID()\n\t\tn = ws.nodes[id]\n\t\tif n == nil {\n\t\t\t// id is an idle or closed stream. wr should not be a HEADERS or\n\t\t\t// DATA frame. In other case, we push wr onto the root, rather\n\t\t\t// than creating a new priorityNode.\n\t\t\tif wr.DataSize() > 0 {\n\t\t\t\tpanic(\"add DATA on non-open stream\")\n\t\t\t}\n\t\t\tn = &ws.root\n\t\t}\n\t}\n\tn.q.push(wr)\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) Pop() (wr FrameWriteRequest, ok bool) {\n\tws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNodeRFC7540, openParent bool) bool {\n\t\tlimit := int32(math.MaxInt32)\n\t\tif openParent {\n\t\t\tlimit = ws.writeThrottleLimit\n\t\t}\n\t\twr, ok = n.q.consume(limit)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tn.addBytes(int64(wr.DataSize()))\n\t\t// If B depends on A and B continuously has data available but A\n\t\t// does not, gradually increase the throttling limit to allow B to\n\t\t// steal more and more bandwidth from A.\n\t\tif openParent {\n\t\t\tws.writeThrottleLimit += 1024\n\t\t\tif ws.writeThrottleLimit < 0 {\n\t\t\t\tws.writeThrottleLimit = math.MaxInt32\n\t\t\t}\n\t\t} else if ws.enableWriteThrottle {\n\t\t\tws.writeThrottleLimit = 1024\n\t\t}\n\t\treturn true\n\t})\n\treturn wr, ok\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) addClosedOrIdleNode(list *[]*priorityNodeRFC7540, maxSize int, n *priorityNodeRFC7540) {\n\tif maxSize == 0 {\n\t\treturn\n\t}\n\tif len(*list) == maxSize {\n\t\t// Remove the oldest node, then shift left.\n\t\tws.removeNode((*list)[0])\n\t\tx := (*list)[1:]\n\t\tcopy(*list, x)\n\t\t*list = (*list)[:len(x)]\n\t}\n\t*list = append(*list, n)\n}\n\nfunc (ws *priorityWriteSchedulerRFC7540) removeNode(n *priorityNodeRFC7540) {\n\tfor n.kids != nil {\n\t\tn.kids.setParent(n.parent)\n\t}\n\tn.setParent(nil)\n\tdelete(ws.nodes, n.id)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"fmt\"\n\t\"math\"\n)\n\ntype streamMetadata struct {\n\tlocation *writeQueue\n\tpriority PriorityParam\n}\n\ntype priorityWriteSchedulerRFC9218 struct {\n\t// control contains control frames (SETTINGS, PING, etc.).\n\tcontrol writeQueue\n\n\t// heads contain the head of a circular list of streams.\n\t// We put these heads within a nested array that represents urgency and\n\t// incremental, as defined in\n\t// https://www.rfc-editor.org/rfc/rfc9218.html#name-priority-parameters.\n\t// 8 represents u=0 up to u=7, and 2 represents i=false and i=true.\n\theads [8][2]*writeQueue\n\n\t// streams contains a mapping between each stream ID and their metadata, so\n\t// we can quickly locate them when needing to, for example, adjust their\n\t// priority.\n\tstreams map[uint32]streamMetadata\n\n\t// queuePool are empty queues for reuse.\n\tqueuePool writeQueuePool\n\n\t// prioritizeIncremental is used to determine whether we should prioritize\n\t// incremental streams or not, when urgency is the same in a given Pop()\n\t// call.\n\tprioritizeIncremental bool\n}\n\nfunc newPriorityWriteSchedulerRFC9218() WriteScheduler {\n\tws := &priorityWriteSchedulerRFC9218{\n\t\tstreams: make(map[uint32]streamMetadata),\n\t}\n\treturn ws\n}\n\nfunc (ws *priorityWriteSchedulerRFC9218) OpenStream(streamID uint32, opt OpenStreamOptions) {\n\tif ws.streams[streamID].location != nil {\n\t\tpanic(fmt.Errorf(\"stream %d already opened\", streamID))\n\t}\n\tq := ws.queuePool.get()\n\tws.streams[streamID] = streamMetadata{\n\t\tlocation: q,\n\t\tpriority: opt.priority,\n\t}\n\n\tu, i := opt.priority.urgency, opt.priority.incremental\n\tif ws.heads[u][i] == nil {\n\t\tws.heads[u][i] = q\n\t\tq.next = q\n\t\tq.prev = q\n\t} else {\n\t\t// Queues are stored in a ring.\n\t\t// Insert the new stream before ws.head, putting it at the end of the list.\n\t\tq.prev = ws.heads[u][i].prev\n\t\tq.next = ws.heads[u][i]\n\t\tq.prev.next = q\n\t\tq.next.prev = q\n\t}\n}\n\nfunc (ws *priorityWriteSchedulerRFC9218) CloseStream(streamID uint32) {\n\tmetadata := ws.streams[streamID]\n\tq, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental\n\tif q == nil {\n\t\treturn\n\t}\n\tif q.next == q {\n\t\t// This was the only open stream.\n\t\tws.heads[u][i] = nil\n\t} else {\n\t\tq.prev.next = q.next\n\t\tq.next.prev = q.prev\n\t\tif ws.heads[u][i] == q {\n\t\t\tws.heads[u][i] = q.next\n\t\t}\n\t}\n\tdelete(ws.streams, streamID)\n\tws.queuePool.put(q)\n}\n\nfunc (ws *priorityWriteSchedulerRFC9218) AdjustStream(streamID uint32, priority PriorityParam) {\n\tmetadata := ws.streams[streamID]\n\tq, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental\n\tif q == nil {\n\t\treturn\n\t}\n\n\t// Remove stream from current location.\n\tif q.next == q {\n\t\t// This was the only open stream.\n\t\tws.heads[u][i] = nil\n\t} else {\n\t\tq.prev.next = q.next\n\t\tq.next.prev = q.prev\n\t\tif ws.heads[u][i] == q {\n\t\t\tws.heads[u][i] = q.next\n\t\t}\n\t}\n\n\t// Insert stream to the new queue.\n\tu, i = priority.urgency, priority.incremental\n\tif ws.heads[u][i] == nil {\n\t\tws.heads[u][i] = q\n\t\tq.next = q\n\t\tq.prev = q\n\t} else {\n\t\t// Queues are stored in a ring.\n\t\t// Insert the new stream before ws.head, putting it at the end of the list.\n\t\tq.prev = ws.heads[u][i].prev\n\t\tq.next = ws.heads[u][i]\n\t\tq.prev.next = q\n\t\tq.next.prev = q\n\t}\n\n\t// Update the metadata.\n\tws.streams[streamID] = streamMetadata{\n\t\tlocation: q,\n\t\tpriority: priority,\n\t}\n}\n\nfunc (ws *priorityWriteSchedulerRFC9218) Push(wr FrameWriteRequest) {\n\tif wr.isControl() {\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq := ws.streams[wr.StreamID()].location\n\tif q == nil {\n\t\t// This is a closed stream.\n\t\t// wr should not be a HEADERS or DATA frame.\n\t\t// We push the request onto the control queue.\n\t\tif wr.DataSize() > 0 {\n\t\t\tpanic(\"add DATA on non-open stream\")\n\t\t}\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq.push(wr)\n}\n\nfunc (ws *priorityWriteSchedulerRFC9218) Pop() (FrameWriteRequest, bool) {\n\t// Control and RST_STREAM frames first.\n\tif !ws.control.empty() {\n\t\treturn ws.control.shift(), true\n\t}\n\n\t// On the next Pop(), we want to prioritize incremental if we prioritized\n\t// non-incremental request of the same urgency this time. Vice-versa.\n\t// i.e. when there are incremental and non-incremental requests at the same\n\t// priority, we give 50% of our bandwidth to the incremental ones in\n\t// aggregate and 50% to the first non-incremental one (since\n\t// non-incremental streams do not use round-robin writes).\n\tws.prioritizeIncremental = !ws.prioritizeIncremental\n\n\t// Always prioritize lowest u (i.e. highest urgency level).\n\tfor u := range ws.heads {\n\t\tfor i := range ws.heads[u] {\n\t\t\t// When we want to prioritize incremental, we try to pop i=true\n\t\t\t// first before i=false when u is the same.\n\t\t\tif ws.prioritizeIncremental {\n\t\t\t\ti = (i + 1) % 2\n\t\t\t}\n\t\t\tq := ws.heads[u][i]\n\t\t\tif q == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor {\n\t\t\t\tif wr, ok := q.consume(math.MaxInt32); ok {\n\t\t\t\t\tif i == 1 {\n\t\t\t\t\t\t// For incremental streams, we update head to q.next so\n\t\t\t\t\t\t// we can round-robin between multiple streams that can\n\t\t\t\t\t\t// immediately benefit from partial writes.\n\t\t\t\t\t\tws.heads[u][i] = q.next\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// For non-incremental streams, we try to finish one to\n\t\t\t\t\t\t// completion rather than doing round-robin. However,\n\t\t\t\t\t\t// we update head here so that if q.consume() is !ok\n\t\t\t\t\t\t// (e.g. the stream has no more frame to consume), head\n\t\t\t\t\t\t// is updated to the next q that has frames to consume\n\t\t\t\t\t\t// on future iterations. This way, we do not prioritize\n\t\t\t\t\t\t// writing to unavailable stream on next Pop() calls,\n\t\t\t\t\t\t// preventing head-of-line blocking.\n\t\t\t\t\t\tws.heads[u][i] = q\n\t\t\t\t\t}\n\t\t\t\t\treturn wr, true\n\t\t\t\t}\n\t\t\t\tq = q.next\n\t\t\t\tif q == ws.heads[u][i] {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\treturn FrameWriteRequest{}, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_random.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"math\"\n\n// NewRandomWriteScheduler constructs a WriteScheduler that ignores HTTP/2\n// priorities. Control frames like SETTINGS and PING are written before DATA\n// frames, but if no control frames are queued and multiple streams have queued\n// HEADERS or DATA frames, Pop selects a ready stream arbitrarily.\nfunc NewRandomWriteScheduler() WriteScheduler {\n\treturn &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}\n}\n\ntype randomWriteScheduler struct {\n\t// zero are frames not associated with a specific stream.\n\tzero writeQueue\n\n\t// sq contains the stream-specific queues, keyed by stream ID.\n\t// When a stream is idle, closed, or emptied, it's deleted\n\t// from the map.\n\tsq map[uint32]*writeQueue\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\nfunc (ws *randomWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {\n\t// no-op: idle streams are not tracked\n}\n\nfunc (ws *randomWriteScheduler) CloseStream(streamID uint32) {\n\tq, ok := ws.sq[streamID]\n\tif !ok {\n\t\treturn\n\t}\n\tdelete(ws.sq, streamID)\n\tws.queuePool.put(q)\n}\n\nfunc (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {\n\t// no-op: priorities are ignored\n}\n\nfunc (ws *randomWriteScheduler) Push(wr FrameWriteRequest) {\n\tif wr.isControl() {\n\t\tws.zero.push(wr)\n\t\treturn\n\t}\n\tid := wr.StreamID()\n\tq, ok := ws.sq[id]\n\tif !ok {\n\t\tq = ws.queuePool.get()\n\t\tws.sq[id] = q\n\t}\n\tq.push(wr)\n}\n\nfunc (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) {\n\t// Control and RST_STREAM frames first.\n\tif !ws.zero.empty() {\n\t\treturn ws.zero.shift(), true\n\t}\n\t// Iterate over all non-idle streams until finding one that can be consumed.\n\tfor streamID, q := range ws.sq {\n\t\tif wr, ok := q.consume(math.MaxInt32); ok {\n\t\t\tif q.empty() {\n\t\t\t\tdelete(ws.sq, streamID)\n\t\t\t\tws.queuePool.put(q)\n\t\t\t}\n\t\t\treturn wr, true\n\t\t}\n\t}\n\treturn FrameWriteRequest{}, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_roundrobin.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"fmt\"\n\t\"math\"\n)\n\ntype roundRobinWriteScheduler struct {\n\t// control contains control frames (SETTINGS, PING, etc.).\n\tcontrol writeQueue\n\n\t// streams maps stream ID to a queue.\n\tstreams map[uint32]*writeQueue\n\n\t// stream queues are stored in a circular linked list.\n\t// head is the next stream to write, or nil if there are no streams open.\n\thead *writeQueue\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\n// newRoundRobinWriteScheduler constructs a new write scheduler.\n// The round robin scheduler prioritizes control frames\n// like SETTINGS and PING over DATA frames.\n// When there are no control frames to send, it performs a round-robin\n// selection from the ready streams.\nfunc newRoundRobinWriteScheduler() WriteScheduler {\n\tws := &roundRobinWriteScheduler{\n\t\tstreams: make(map[uint32]*writeQueue),\n\t}\n\treturn ws\n}\n\nfunc (ws *roundRobinWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {\n\tif ws.streams[streamID] != nil {\n\t\tpanic(fmt.Errorf(\"stream %d already opened\", streamID))\n\t}\n\tq := ws.queuePool.get()\n\tws.streams[streamID] = q\n\tif ws.head == nil {\n\t\tws.head = q\n\t\tq.next = q\n\t\tq.prev = q\n\t} else {\n\t\t// Queues are stored in a ring.\n\t\t// Insert the new stream before ws.head, putting it at the end of the list.\n\t\tq.prev = ws.head.prev\n\t\tq.next = ws.head\n\t\tq.prev.next = q\n\t\tq.next.prev = q\n\t}\n}\n\nfunc (ws *roundRobinWriteScheduler) CloseStream(streamID uint32) {\n\tq := ws.streams[streamID]\n\tif q == nil {\n\t\treturn\n\t}\n\tif q.next == q {\n\t\t// This was the only open stream.\n\t\tws.head = nil\n\t} else {\n\t\tq.prev.next = q.next\n\t\tq.next.prev = q.prev\n\t\tif ws.head == q {\n\t\t\tws.head = q.next\n\t\t}\n\t}\n\tdelete(ws.streams, streamID)\n\tws.queuePool.put(q)\n}\n\nfunc (ws *roundRobinWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {}\n\nfunc (ws *roundRobinWriteScheduler) Push(wr FrameWriteRequest) {\n\tif wr.isControl() {\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq := ws.streams[wr.StreamID()]\n\tif q == nil {\n\t\t// This is a closed stream.\n\t\t// wr should not be a HEADERS or DATA frame.\n\t\t// We push the request onto the control queue.\n\t\tif wr.DataSize() > 0 {\n\t\t\tpanic(\"add DATA on non-open stream\")\n\t\t}\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq.push(wr)\n}\n\nfunc (ws *roundRobinWriteScheduler) Pop() (FrameWriteRequest, bool) {\n\t// Control and RST_STREAM frames first.\n\tif !ws.control.empty() {\n\t\treturn ws.control.shift(), true\n\t}\n\tif ws.head == nil {\n\t\treturn FrameWriteRequest{}, false\n\t}\n\tq := ws.head\n\tfor {\n\t\tif wr, ok := q.consume(math.MaxInt32); ok {\n\t\t\tws.head = q.next\n\t\t\treturn wr, true\n\t\t}\n\t\tq = q.next\n\t\tif q == ws.head {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn FrameWriteRequest{}, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/go118.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.18\n\npackage idna\n\n// Transitional processing is disabled by default in Go 1.18.\n// https://golang.org/issue/47510\nconst transitionalLookup = false\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/bidi\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by some browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = transitional }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\n//\n// This option corresponds to the VerifyDnsLength flag in UTS #46.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\n// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags\n// in UTS #46.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t\to.checkHyphens = enable\n\t\tif enable {\n\t\t\to.fromPuny = validateFromPunycode\n\t\t} else {\n\t\t\to.fromPuny = nil\n\t\t}\n\t}\n}\n\n// CheckHyphens sets whether to check for correct use of hyphens ('-') in\n// labels. Most web browsers do not have this option set, since labels such as\n// \"r3---sn-apo3qvuoxuxbt-j5pe\" are in common use.\n//\n// This option corresponds to the CheckHyphens flag in UTS #46.\nfunc CheckHyphens(enable bool) Option {\n\treturn func(o *options) { o.checkHyphens = enable }\n}\n\n// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix\n// A of RFC 5892, concerning the use of joiner runes.\n//\n// This option corresponds to the CheckJoiners flag in UTS #46.\nfunc CheckJoiners(enable bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t}\n}\n\n// StrictDomainName limits the set of permissible ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration,\n// but is only useful if ValidateLabels is set.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details.\n//\n// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) { o.useSTD3Rules = use }\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\n//\n// This option corresponds to the CheckBidi flag in UTS #46.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tcheckHyphens      bool\n\tcheckJoiners      bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (mapped string, isBidi bool, err error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of an IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.checkHyphens {\n\t\ts += \":CheckHyphens\"\n\t}\n\tif p.checkJoiners {\n\t\ts += \":CheckJoiners\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional: transitionalLookup,\n\t\tuseSTD3Rules: true,\n\t\tcheckHyphens: true,\n\t\tcheckJoiners: true,\n\t\ttrie:         trie,\n\t\tfromPuny:     validateFromPunycode,\n\t\tmapping:      validateAndMap,\n\t\tbidirule:     bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules: true,\n\t\tcheckHyphens: true,\n\t\tcheckJoiners: true,\n\t\ttrie:         trie,\n\t\tfromPuny:     validateFromPunycode,\n\t\tmapping:      validateAndMap,\n\t\tbidirule:     bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tverifyDNSLength: true,\n\t\tcheckHyphens:    true,\n\t\tcheckJoiners:    true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tvar isBidi bool\n\tif p.mapping != nil {\n\t\ts, isBidi, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// TODO: allow for a quick check of the tables data.\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tisBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.fromPuny != nil {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif isBidi && p.bidirule != nil && err == nil {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tif !p.bidirule(labels.label()) {\n\t\t\t\terr = &labelError{s, \"B\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (mapped string, isBidi bool, err error) {\n\t// TODO: consider first doing a quick check to see if any of these checks\n\t// need to be done. This will make it slower in the general case, but\n\t// faster in the common case.\n\tmapped = norm.NFC.String(s)\n\tisBidi = bidirule.DirectionString(mapped) == bidi.RightToLeft\n\treturn mapped, isBidi, nil\n}\n\nfunc validateRegistration(p *Profile, s string) (idem string, bidi bool, err error) {\n\t// TODO: filter need for normalization in loop below.\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, false, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn s, bidi, runeError(utf8.RuneError)\n\t\t}\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, bidi, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, bidi, nil\n}\n\nfunc (c info) isBidi(s string) bool {\n\tif !c.isMapped() {\n\t\treturn c&attributesMask == rtl\n\t}\n\t// TODO: also store bidi info for mapped data. This is possible, but a bit\n\t// cumbersome and not for the common case.\n\tp, _ := bidi.LookupString(s)\n\tswitch p.Class() {\n\tcase bidi.R, bidi.AL, bidi.AN:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc validateAndMap(p *Profile, s string) (vm string, bidi bool, err error) {\n\tvar (\n\t\tb []byte\n\t\tk int\n\t)\n\t// combinedInfoBits contains the or-ed bits of all runes. We use this\n\t// to derive the mayNeedNorm bit later. This may trigger normalization\n\t// overeagerly, but it will not do so in the common case. The end result\n\t// is another 10% saving on BenchmarkProfile for the common case.\n\tvar combinedInfoBits info\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\tb = append(b, s[k:i]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t\tk = len(s)\n\t\t\tif err == nil {\n\t\t\t\terr = runeError(utf8.RuneError)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcombinedInfoBits |= info(v)\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\tif combinedInfoBits&mayNeedNorm != 0 {\n\t\t\ts = norm.NFC.String(s)\n\t\t}\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, bidi, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\t// TODO: detect whether string may have to be normalized in the following\n\t// loop.\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn runeError(utf8.RuneError)\n\t\t}\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) (err error) {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif p.checkHyphens {\n\t\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\t\treturn &labelError{s, \"V2\"}\n\t\t}\n\t\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\t\treturn &labelError{s, \"V3\"}\n\t\t}\n\t}\n\tif !p.checkJoiners {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.checkJoiners is only set if trie is set.\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by some browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = transitional }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\n//\n// This option corresponds to the VerifyDnsLength flag in UTS #46.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\n// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags\n// in UTS #46.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t\to.checkHyphens = enable\n\t\tif enable {\n\t\t\to.fromPuny = validateFromPunycode\n\t\t} else {\n\t\t\to.fromPuny = nil\n\t\t}\n\t}\n}\n\n// CheckHyphens sets whether to check for correct use of hyphens ('-') in\n// labels. Most web browsers do not have this option set, since labels such as\n// \"r3---sn-apo3qvuoxuxbt-j5pe\" are in common use.\n//\n// This option corresponds to the CheckHyphens flag in UTS #46.\nfunc CheckHyphens(enable bool) Option {\n\treturn func(o *options) { o.checkHyphens = enable }\n}\n\n// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix\n// A of RFC 5892, concerning the use of joiner runes.\n//\n// This option corresponds to the CheckJoiners flag in UTS #46.\nfunc CheckJoiners(enable bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t}\n}\n\n// StrictDomainName limits the set of permissible ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration,\n// but is only useful if ValidateLabels is set.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details.\n//\n// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) { o.useSTD3Rules = use }\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\n//\n// This option corresponds to the CheckBidi flag in UTS #46.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tRemoveLeadingDots(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tcheckHyphens      bool\n\tcheckJoiners      bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (string, error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of a IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.checkHyphens {\n\t\ts += \":CheckHyphens\"\n\t}\n\tif p.checkJoiners {\n\t\ts += \":CheckJoiners\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional:      true,\n\t\tremoveLeadingDots: true,\n\t\tuseSTD3Rules:      true,\n\t\tcheckHyphens:      true,\n\t\tcheckJoiners:      true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules:      true,\n\t\tremoveLeadingDots: true,\n\t\tcheckHyphens:      true,\n\t\tcheckJoiners:      true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tverifyDNSLength: true,\n\t\tcheckHyphens:    true,\n\t\tcheckJoiners:    true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tif p.mapping != nil {\n\t\ts, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.fromPuny != nil {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (string, error) {\n\treturn norm.NFC.String(s), nil\n}\n\nfunc validateRegistration(p *Profile, s string) (string, error) {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, nil\n}\n\nfunc validateAndMap(p *Profile, s string) (string, error) {\n\tvar (\n\t\terr error\n\t\tb   []byte\n\t\tk   int\n\t)\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\ts = norm.NFC.String(s)\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) error {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif p.bidirule != nil && !p.bidirule(s) {\n\t\treturn &labelError{s, \"B\"}\n\t}\n\tif p.checkHyphens {\n\t\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\t\treturn &labelError{s, \"V2\"}\n\t\t}\n\t\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\t\treturn &labelError{s, \"V3\"}\n\t\t}\n\t}\n\tif !p.checkJoiners {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.checkJoiners is only set if trie is set.\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/pre_go118.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.18\n\npackage idna\n\nconst transitionalLookup = true\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/punycode.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// This file implements the Punycode algorithm from RFC 3492.\n\nimport (\n\t\"math\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// These parameter values are specified in section 5.\n//\n// All computation is done with int32s, so that overflow behavior is identical\n// regardless of whether int is 32-bit or 64-bit.\nconst (\n\tbase        int32 = 36\n\tdamp        int32 = 700\n\tinitialBias int32 = 72\n\tinitialN    int32 = 128\n\tskew        int32 = 38\n\ttmax        int32 = 26\n\ttmin        int32 = 1\n)\n\nfunc punyError(s string) error { return &labelError{s, \"A3\"} }\n\n// decode decodes a string as specified in section 6.2.\nfunc decode(encoded string) (string, error) {\n\tif encoded == \"\" {\n\t\treturn \"\", nil\n\t}\n\tpos := 1 + strings.LastIndex(encoded, \"-\")\n\tif pos == 1 {\n\t\treturn \"\", punyError(encoded)\n\t}\n\tif pos == len(encoded) {\n\t\treturn encoded[:len(encoded)-1], nil\n\t}\n\toutput := make([]rune, 0, len(encoded))\n\tif pos != 0 {\n\t\tfor _, r := range encoded[:pos-1] {\n\t\t\toutput = append(output, r)\n\t\t}\n\t}\n\ti, n, bias := int32(0), initialN, initialBias\n\toverflow := false\n\tfor pos < len(encoded) {\n\t\toldI, w := i, int32(1)\n\t\tfor k := base; ; k += base {\n\t\t\tif pos == len(encoded) {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tdigit, ok := decodeDigit(encoded[pos])\n\t\t\tif !ok {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tpos++\n\t\t\ti, overflow = madd(i, digit, w)\n\t\t\tif overflow {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tt := k - bias\n\t\t\tif k <= bias {\n\t\t\t\tt = tmin\n\t\t\t} else if k >= bias+tmax {\n\t\t\t\tt = tmax\n\t\t\t}\n\t\t\tif digit < t {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tw, overflow = madd(0, w, base-t)\n\t\t\tif overflow {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t}\n\t\tif len(output) >= 1024 {\n\t\t\treturn \"\", punyError(encoded)\n\t\t}\n\t\tx := int32(len(output) + 1)\n\t\tbias = adapt(i-oldI, x, oldI == 0)\n\t\tn += i / x\n\t\ti %= x\n\t\tif n < 0 || n > utf8.MaxRune {\n\t\t\treturn \"\", punyError(encoded)\n\t\t}\n\t\toutput = append(output, 0)\n\t\tcopy(output[i+1:], output[i:])\n\t\toutput[i] = n\n\t\ti++\n\t}\n\treturn string(output), nil\n}\n\n// encode encodes a string as specified in section 6.3 and prepends prefix to\n// the result.\n//\n// The \"while h < length(input)\" line in the specification becomes \"for\n// remaining != 0\" in the Go code, because len(s) in Go is in bytes, not runes.\nfunc encode(prefix, s string) (string, error) {\n\toutput := make([]byte, len(prefix), len(prefix)+1+2*len(s))\n\tcopy(output, prefix)\n\tdelta, n, bias := int32(0), initialN, initialBias\n\tb, remaining := int32(0), int32(0)\n\tfor _, r := range s {\n\t\tif r < 0x80 {\n\t\t\tb++\n\t\t\toutput = append(output, byte(r))\n\t\t} else {\n\t\t\tremaining++\n\t\t}\n\t}\n\th := b\n\tif b > 0 {\n\t\toutput = append(output, '-')\n\t}\n\toverflow := false\n\tfor remaining != 0 {\n\t\tm := int32(0x7fffffff)\n\t\tfor _, r := range s {\n\t\t\tif m > r && r >= n {\n\t\t\t\tm = r\n\t\t\t}\n\t\t}\n\t\tdelta, overflow = madd(delta, m-n, h+1)\n\t\tif overflow {\n\t\t\treturn \"\", punyError(s)\n\t\t}\n\t\tn = m\n\t\tfor _, r := range s {\n\t\t\tif r < n {\n\t\t\t\tdelta++\n\t\t\t\tif delta < 0 {\n\t\t\t\t\treturn \"\", punyError(s)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r > n {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tq := delta\n\t\t\tfor k := base; ; k += base {\n\t\t\t\tt := k - bias\n\t\t\t\tif k <= bias {\n\t\t\t\t\tt = tmin\n\t\t\t\t} else if k >= bias+tmax {\n\t\t\t\t\tt = tmax\n\t\t\t\t}\n\t\t\t\tif q < t {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\toutput = append(output, encodeDigit(t+(q-t)%(base-t)))\n\t\t\t\tq = (q - t) / (base - t)\n\t\t\t}\n\t\t\toutput = append(output, encodeDigit(q))\n\t\t\tbias = adapt(delta, h+1, h == b)\n\t\t\tdelta = 0\n\t\t\th++\n\t\t\tremaining--\n\t\t}\n\t\tdelta++\n\t\tn++\n\t}\n\treturn string(output), nil\n}\n\n// madd computes a + (b * c), detecting overflow.\nfunc madd(a, b, c int32) (next int32, overflow bool) {\n\tp := int64(b) * int64(c)\n\tif p > math.MaxInt32-int64(a) {\n\t\treturn 0, true\n\t}\n\treturn a + int32(p), false\n}\n\nfunc decodeDigit(x byte) (digit int32, ok bool) {\n\tswitch {\n\tcase '0' <= x && x <= '9':\n\t\treturn int32(x - ('0' - 26)), true\n\tcase 'A' <= x && x <= 'Z':\n\t\treturn int32(x - 'A'), true\n\tcase 'a' <= x && x <= 'z':\n\t\treturn int32(x - 'a'), true\n\t}\n\treturn 0, false\n}\n\nfunc encodeDigit(digit int32) byte {\n\tswitch {\n\tcase 0 <= digit && digit < 26:\n\t\treturn byte(digit + 'a')\n\tcase 26 <= digit && digit < 36:\n\t\treturn byte(digit + ('0' - 26))\n\t}\n\tpanic(\"idna: internal error in punycode encoding\")\n}\n\n// adapt is the bias adaptation function specified in section 6.1.\nfunc adapt(delta, numPoints int32, firstTime bool) int32 {\n\tif firstTime {\n\t\tdelta /= damp\n\t} else {\n\t\tdelta /= 2\n\t}\n\tdelta += delta / numPoints\n\tk := int32(0)\n\tfor delta > ((base-tmin)*tmax)/2 {\n\t\tdelta /= base - tmin\n\t\tk += base\n\t}\n\treturn k + (base-tmin+1)*delta/(delta+skew)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29052 bytes (28.37 KiB). Checksum: ef06e7ecc26f36dd.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x0040, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0040, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0040, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0040,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0040,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x127, 0x401: 0x128, 0x402: 0x129, 0x403: 0x12a, 0x404: 0x12b, 0x405: 0x12c, 0x406: 0x12d, 0x407: 0x12e,\n\t0x408: 0x12f, 0x409: 0xba, 0x40a: 0x130, 0x40b: 0x131, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x132, 0x411: 0x133, 0x412: 0x134, 0x413: 0x135, 0x414: 0xba, 0x415: 0xba, 0x416: 0x136, 0x417: 0x137,\n\t0x418: 0x138, 0x419: 0x139, 0x41a: 0x13a, 0x41b: 0x13b, 0x41c: 0x13c, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13d, 0x423: 0x13e, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x13f, 0x429: 0x140, 0x42a: 0x141, 0x42b: 0x142, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x143, 0x431: 0x144, 0x432: 0x145, 0x433: 0xba, 0x434: 0x146, 0x435: 0x147, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x148, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x149, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x14a, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x14b, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x14c, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x142, 0x529: 0x14d, 0x52a: 0xba, 0x52b: 0x14e, 0x52c: 0x14f, 0x52d: 0x150, 0x52e: 0x151, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x152, 0x53e: 0x153, 0x53f: 0x154,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x155,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x156, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x157, 0x585: 0x158, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x159, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x15a, 0x5b2: 0x15b, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x15c, 0x5c4: 0x15d, 0x5c5: 0x15e, 0x5c6: 0x15f, 0x5c7: 0x160,\n\t0x5c8: 0x9b, 0x5c9: 0x161, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x162, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x163, 0x5e9: 0x164, 0x5ea: 0x165, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x166, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x167, 0x624: 0x6f, 0x625: 0x168, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x169, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x16a, 0x641: 0x9b, 0x642: 0x16b, 0x643: 0x16c, 0x644: 0x73, 0x645: 0x74, 0x646: 0x16d, 0x647: 0x16e,\n\t0x648: 0x75, 0x649: 0x16f, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x170, 0x65c: 0x9b, 0x65d: 0x171, 0x65e: 0x9b, 0x65f: 0x172,\n\t0x660: 0x173, 0x661: 0x174, 0x662: 0x175, 0x663: 0xba, 0x664: 0x176, 0x665: 0x177, 0x666: 0x178, 0x667: 0x179,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x17a, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x17b, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x17c, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x17d, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x17e,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x17f, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x180, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x181, 0x841: 0x182, 0x842: 0xba, 0x843: 0xba, 0x844: 0x183, 0x845: 0x183, 0x846: 0x183, 0x847: 0x184,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 264 entries, 528 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x8a, 0x93, 0xa3, 0xb1, 0xbd, 0xc9, 0xda, 0xe4, 0xeb, 0xf8, 0x109, 0x110, 0x11b, 0x12a, 0x138, 0x142, 0x144, 0x149, 0x14c, 0x14f, 0x151, 0x15d, 0x168, 0x170, 0x176, 0x17c, 0x181, 0x186, 0x189, 0x18d, 0x193, 0x198, 0x1a4, 0x1ae, 0x1b4, 0x1c5, 0x1cf, 0x1d2, 0x1da, 0x1dd, 0x1ea, 0x1f2, 0x1f6, 0x1fd, 0x205, 0x215, 0x221, 0x223, 0x22d, 0x239, 0x245, 0x251, 0x259, 0x25e, 0x268, 0x279, 0x27d, 0x288, 0x28c, 0x295, 0x29d, 0x2a3, 0x2a8, 0x2ab, 0x2af, 0x2b5, 0x2b9, 0x2bd, 0x2c3, 0x2ca, 0x2d0, 0x2d8, 0x2df, 0x2ea, 0x2f4, 0x2f8, 0x2fb, 0x301, 0x305, 0x307, 0x30a, 0x30c, 0x30f, 0x319, 0x31c, 0x32b, 0x32f, 0x334, 0x337, 0x33b, 0x340, 0x345, 0x34b, 0x351, 0x360, 0x366, 0x36a, 0x379, 0x37e, 0x386, 0x390, 0x39b, 0x3a3, 0x3b4, 0x3bd, 0x3cd, 0x3da, 0x3e4, 0x3e9, 0x3f6, 0x3fa, 0x3ff, 0x401, 0x405, 0x407, 0x40b, 0x414, 0x41a, 0x41e, 0x42e, 0x438, 0x43d, 0x440, 0x446, 0x44d, 0x452, 0x456, 0x45c, 0x461, 0x46a, 0x46f, 0x475, 0x47c, 0x483, 0x48a, 0x48e, 0x493, 0x496, 0x49b, 0x4a7, 0x4ad, 0x4b2, 0x4b9, 0x4c1, 0x4c6, 0x4ca, 0x4da, 0x4e1, 0x4e5, 0x4e9, 0x4f0, 0x4f2, 0x4f5, 0x4f8, 0x4fc, 0x500, 0x506, 0x50f, 0x51b, 0x522, 0x52b, 0x533, 0x53a, 0x548, 0x555, 0x562, 0x56b, 0x56f, 0x57d, 0x585, 0x590, 0x599, 0x59f, 0x5a7, 0x5b0, 0x5ba, 0x5bd, 0x5c9, 0x5cc, 0x5d1, 0x5de, 0x5e7, 0x5f3, 0x5f6, 0x600, 0x609, 0x615, 0x622, 0x62a, 0x62d, 0x632, 0x635, 0x638, 0x63b, 0x642, 0x649, 0x64d, 0x658, 0x65b, 0x661, 0x666, 0x66a, 0x66d, 0x670, 0x673, 0x676, 0x679, 0x67e, 0x688, 0x68b, 0x68f, 0x69e, 0x6aa, 0x6ae, 0x6b3, 0x6b8, 0x6bc, 0x6c1, 0x6ca, 0x6d5, 0x6db, 0x6e3, 0x6e7, 0x6eb, 0x6f1, 0x6f7, 0x6fc, 0x6ff, 0x70f, 0x716, 0x719, 0x71c, 0x720, 0x726, 0x72b, 0x730, 0x735, 0x738, 0x73d, 0x740, 0x743, 0x747, 0x74b, 0x74e, 0x75e, 0x76f, 0x774, 0x776, 0x778}\n\n// idnaSparseValues: 1915 entries, 7660 bytes\nvar idnaSparseValues = [1915]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x93\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa3\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xc9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xda\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xeb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x109\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x110\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x138\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x142\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x144\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x149\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x151\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x168\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x170\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x176\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x181\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x186\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x193\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x198\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1ae\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x34, offset 0x1d2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1da\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1dd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1ea\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x205\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x215\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x223\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22d\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x239\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x245\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x259\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x268\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x279\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x295\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x53, offset 0x2c3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2ca\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2df\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x301\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x305\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x307\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x30a\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x30c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x319\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x31c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x334\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0x67, offset 0x337\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x33b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x340\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x345\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x34b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x351\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x360\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x366\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x36a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x70, offset 0x379\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x386\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x39b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3bd\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3cd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3da\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3ff\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x401\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x405\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x407\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x40b\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x414\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x41a\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41e\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x438\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x440\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x446\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x452\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x456\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x45c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x461\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x46a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x475\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x47c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x483\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x48a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x493\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x496\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x49b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4ca\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4da\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaa, offset 0x500\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x50f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xad, offset 0x51b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xae, offset 0x522\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xaf, offset 0x52b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb0, offset 0x533\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb1, offset 0x53a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb2, offset 0x548\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x555\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb4, offset 0x562\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb5, offset 0x56b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb6, offset 0x56f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb8, offset 0x585\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xb9, offset 0x590\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x599\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbb, offset 0x59f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a7\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b0\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbe, offset 0x5ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xbf, offset 0x5bd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d1\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc5, offset 0x5f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x600\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc8, offset 0x609\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc9, offset 0x615\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xca, offset 0x622\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcb, offset 0x62a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcc, offset 0x62d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xcd, offset 0x632\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xce, offset 0x635\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcf, offset 0x638\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd0, offset 0x63b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd1, offset 0x642\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd2, offset 0x649\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd3, offset 0x64d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd4, offset 0x658\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd5, offset 0x65b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd6, offset 0x661\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd7, offset 0x666\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xd8, offset 0x66a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd9, offset 0x66d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xda, offset 0x670\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xdb, offset 0x673\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xdc, offset 0x676\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xdd, offset 0x679\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xde, offset 0x67e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xdf, offset 0x688\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe0, offset 0x68b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe1, offset 0x68f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x69e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xe3, offset 0x6aa\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe4, offset 0x6ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe7, offset 0x6bc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6c1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6ca\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xea, offset 0x6d5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xeb, offset 0x6db\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xec, offset 0x6e3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xed, offset 0x6e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xee, offset 0x6eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xef, offset 0x6f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf0, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xf1, offset 0x6fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf2, offset 0x6ff\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf3, offset 0x70f\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xf4, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf5, offset 0x719\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf6, offset 0x71c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf7, offset 0x720\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf8, offset 0x726\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf9, offset 0x72b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfa, offset 0x730\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0xfb, offset 0x735\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xbf},\n\t// Block 0xfc, offset 0x738\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0xfd, offset 0x73d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xfe, offset 0x740\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xff, offset 0x743\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x100, offset 0x747\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x101, offset 0x74b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x102, offset 0x74e\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x103, offset 0x75e\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x104, offset 0x76f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x105, offset 0x774\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x106, offset 0x776\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x107, offset 0x778\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42114 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29404 bytes (28.71 KiB). Checksum: 848c45acb5f7991c.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0008, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0x126, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x128, 0x3fd: 0x129, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,\n\t0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,\n\t0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x143, 0x429: 0x144, 0x42a: 0x145, 0x42b: 0x146, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x147, 0x431: 0x148, 0x432: 0x149, 0x433: 0xba, 0x434: 0x14a, 0x435: 0x14b, 0x436: 0x14c, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14d, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x14e, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x14f, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x150, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x151, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x152, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x146, 0x529: 0x153, 0x52a: 0xba, 0x52b: 0x154, 0x52c: 0x155, 0x52d: 0x156, 0x52e: 0x157, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0x158, 0x53a: 0x159, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15a, 0x53e: 0x15b, 0x53f: 0x15c,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x15d,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x15e, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x15f, 0x585: 0x160, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x161, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x162, 0x5b2: 0x163, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x164, 0x5c4: 0x165, 0x5c5: 0x166, 0x5c6: 0x167, 0x5c7: 0x168,\n\t0x5c8: 0x9b, 0x5c9: 0x169, 0x5ca: 0xba, 0x5cb: 0x16a, 0x5cc: 0x9b, 0x5cd: 0x16b, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x16c, 0x5e9: 0x16d, 0x5ea: 0x16e, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x16f, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x170, 0x624: 0x6f, 0x625: 0x171, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0x172, 0x632: 0x173, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x174, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x175, 0x641: 0x9b, 0x642: 0x176, 0x643: 0x177, 0x644: 0x73, 0x645: 0x74, 0x646: 0x178, 0x647: 0x179,\n\t0x648: 0x75, 0x649: 0x17a, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x17b, 0x65c: 0x9b, 0x65d: 0x17c, 0x65e: 0x9b, 0x65f: 0x17d,\n\t0x660: 0x17e, 0x661: 0x17f, 0x662: 0x180, 0x663: 0xba, 0x664: 0x181, 0x665: 0x182, 0x666: 0x183, 0x667: 0x184,\n\t0x668: 0xba, 0x669: 0x185, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x186, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x187, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x188, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x189, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x18a,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x18b, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x18c, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x18d, 0x841: 0x18e, 0x842: 0xba, 0x843: 0xba, 0x844: 0x18f, 0x845: 0x18f, 0x846: 0x18f, 0x847: 0x190,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 276 entries, 552 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x269, 0x27a, 0x27e, 0x289, 0x28d, 0x296, 0x29e, 0x2a4, 0x2a9, 0x2ac, 0x2b0, 0x2b6, 0x2ba, 0x2be, 0x2c2, 0x2c7, 0x2cd, 0x2d5, 0x2dc, 0x2e7, 0x2f1, 0x2f5, 0x2f8, 0x2fe, 0x302, 0x304, 0x307, 0x309, 0x30c, 0x316, 0x319, 0x328, 0x32c, 0x331, 0x334, 0x338, 0x33d, 0x342, 0x348, 0x34e, 0x35d, 0x363, 0x367, 0x376, 0x37b, 0x383, 0x38d, 0x398, 0x3a0, 0x3b1, 0x3ba, 0x3ca, 0x3d7, 0x3e1, 0x3e6, 0x3f3, 0x3f7, 0x3fc, 0x3fe, 0x402, 0x404, 0x408, 0x411, 0x417, 0x41b, 0x42b, 0x435, 0x43a, 0x43d, 0x443, 0x44a, 0x44f, 0x453, 0x459, 0x45e, 0x467, 0x46c, 0x472, 0x479, 0x480, 0x487, 0x48b, 0x490, 0x493, 0x498, 0x4a4, 0x4aa, 0x4af, 0x4b6, 0x4be, 0x4c3, 0x4c7, 0x4d7, 0x4de, 0x4e2, 0x4e6, 0x4ed, 0x4ef, 0x4f2, 0x4f5, 0x4f9, 0x502, 0x506, 0x50e, 0x516, 0x51c, 0x525, 0x531, 0x538, 0x541, 0x54b, 0x552, 0x560, 0x56d, 0x57a, 0x583, 0x587, 0x596, 0x59e, 0x5a9, 0x5b2, 0x5b8, 0x5c0, 0x5c9, 0x5d3, 0x5d6, 0x5e2, 0x5eb, 0x5ee, 0x5f3, 0x5fe, 0x607, 0x613, 0x616, 0x620, 0x629, 0x635, 0x642, 0x64f, 0x65d, 0x664, 0x667, 0x66c, 0x66f, 0x672, 0x675, 0x67c, 0x683, 0x687, 0x692, 0x695, 0x698, 0x69b, 0x6a1, 0x6a6, 0x6aa, 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6be, 0x6c8, 0x6cb, 0x6cf, 0x6de, 0x6ea, 0x6ee, 0x6f3, 0x6f7, 0x6fc, 0x700, 0x705, 0x70e, 0x719, 0x71f, 0x727, 0x72a, 0x72d, 0x731, 0x735, 0x73b, 0x741, 0x746, 0x749, 0x759, 0x760, 0x763, 0x766, 0x76a, 0x770, 0x775, 0x77a, 0x782, 0x787, 0x78b, 0x78f, 0x792, 0x795, 0x799, 0x79d, 0x7a0, 0x7b0, 0x7c1, 0x7c6, 0x7c8, 0x7ca}\n\n// idnaSparseValues: 1997 entries, 7988 bytes\nvar idnaSparseValues = [1997]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x86\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x224\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x246\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x252\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x269\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x27a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x289\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x296\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ac\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2ba\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xbf},\n\t// Block 0x53, offset 0x2c2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x54, offset 0x2c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2cd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2dc\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2e7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0xbf},\n\t// Block 0x5b, offset 0x2f8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x2fe\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x302\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x304\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x307\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x309\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30c\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x316\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x319\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x328\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32c\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x331\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x334\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x338\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x33d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x342\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x348\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x34e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x367\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x376\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x383\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x38d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a0\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3ba\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3ca\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3d7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3fc\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x3fe\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x402\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x404\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x408\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x411\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x417\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41b\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x435\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x43d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x443\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x44f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x453\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x459\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x45e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x467\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x472\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x479\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x480\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x487\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x490\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x493\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x498\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4aa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4af\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4be\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4c7\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4de\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4ed\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4ef\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4f9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xaa, offset 0x502\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xac, offset 0x50e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xad, offset 0x516\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xae, offset 0x51c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaf, offset 0x525\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb0, offset 0x531\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb1, offset 0x538\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb2, offset 0x541\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb3, offset 0x54b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x552\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb5, offset 0x560\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb6, offset 0x56d\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb7, offset 0x57a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb8, offset 0x583\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb9, offset 0x587\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xba, offset 0x596\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x59e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b8\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc1, offset 0x5d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5e2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc4, offset 0x5eb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc5, offset 0x5ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f3\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x5fe\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc8, offset 0x607\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc9, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xca, offset 0x616\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcb, offset 0x620\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xcc, offset 0x629\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xcd, offset 0x635\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xce, offset 0x642\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcf, offset 0x64f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd0, offset 0x65d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd1, offset 0x664\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xd2, offset 0x667\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xd3, offset 0x66c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xd4, offset 0x66f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xd5, offset 0x672\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd6, offset 0x675\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd7, offset 0x67c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd8, offset 0x683\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd9, offset 0x687\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xda, offset 0x692\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xdb, offset 0x695\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdc, offset 0x698\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xdd, offset 0x69b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x6a1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdf, offset 0x6a6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xe0, offset 0x6aa\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x6ad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe2, offset 0x6b0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe3, offset 0x6b3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x6b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe6, offset 0x6be\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xe7, offset 0x6c8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe9, offset 0x6cf\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xea, offset 0x6de\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xeb, offset 0x6ea\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xec, offset 0x6ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xed, offset 0x6f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xee, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xef, offset 0x6fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf0, offset 0x700\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf1, offset 0x705\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf2, offset 0x70e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xf3, offset 0x719\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf4, offset 0x71f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf5, offset 0x727\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0xf6, offset 0x72a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xf7, offset 0x72d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xf8, offset 0x731\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf9, offset 0x735\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xfa, offset 0x73b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfb, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xfc, offset 0x746\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfd, offset 0x749\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfe, offset 0x759\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xff, offset 0x760\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x100, offset 0x763\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0xbf},\n\t// Block 0x101, offset 0x766\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x102, offset 0x76a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x103, offset 0x770\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x104, offset 0x775\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x105, offset 0x77a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x106, offset 0x782\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x107, offset 0x787\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x108, offset 0x78b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x109, offset 0x78f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x10a, offset 0x792\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x10b, offset 0x795\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10c, offset 0x799\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x10d, offset 0x79d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x10e, offset 0x7a0\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x10f, offset 0x7b0\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x110, offset 0x7c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x111, offset 0x7c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x112, offset 0x7c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x113, offset 0x7ca\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42466 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"12.0.0\"\n\nvar mappings string = \"\" + // Size: 8178 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02mr\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\" +\n\t\"\\x03解\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\" +\n\t\"\\x03声\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\" +\n\t\"\\x03禁\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\" +\n\t\"\\x09〔安〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\" +\n\t\"\\x03侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\" +\n\t\"\\x03冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\" +\n\t\"\\x03勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\" +\n\t\"\\x03叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\" +\n\t\"\\x03喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\" +\n\t\"\\x03堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\" +\n\t\"\\x03嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\" +\n\t\"\\x03嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\" +\n\t\"\\x03庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\" +\n\t\"\\x03悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\" +\n\t\"\\x03懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\" +\n\t\"\\x03揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\" +\n\t\"\\x03暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\" +\n\t\"\\x03㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\" +\n\t\"\\x03㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\" +\n\t\"\\x03海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\" +\n\t\"\\x03瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\" +\n\t\"\\x03犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\" +\n\t\"\\x03異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\" +\n\t\"\\x03磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\" +\n\t\"\\x03䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\" +\n\t\"\\x03者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\" +\n\t\"\\x03芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\" +\n\t\"\\x03荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\" +\n\t\"\\x03虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\" +\n\t\"\\x03衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\" +\n\t\"\\x03贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\" +\n\t\"\\x03鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\" +\n\t\"\\x03頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\" +\n\t\"\\x03鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4862 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29708 bytes (29.01 KiB). Checksum: c3ecc76d8fffa6e6.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866,\n\t0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e,\n\t0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe,\n\t0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e,\n\t0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e,\n\t0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde,\n\t0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e,\n\t0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5,\n\t0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875,\n\t0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935,\n\t0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5,\n\t0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15,\n\t0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75,\n\t0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95,\n\t0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75,\n\t0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5,\n\t0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55,\n\t0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15,\n\t0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95,\n\t0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5,\n\t0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5,\n\t0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5,\n\t0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5,\n\t0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275,\n\t0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5,\n\t0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5,\n\t0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475,\n\t0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535,\n\t0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5,\n\t0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795,\n\t0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855,\n\t0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915,\n\t0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5,\n\t0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95,\n\t0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55,\n\t0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5,\n\t0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95,\n\t0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d,\n\t0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d,\n\t0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05,\n\t0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95,\n\t0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd,\n\t0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55,\n\t0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5,\n\t0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015,\n\t0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x4045, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x4065, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x40a5, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40c5, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x4105,\n\t0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x41a5, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6419, 0x10a2: 0x4205, 0x10a3: 0x4225,\n\t0x10a4: 0x4245, 0x10a5: 0x6431, 0x10a6: 0x4265, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x4305, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x4325, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x4345, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x43a5, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x4425,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008,\n\t0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad,\n\t0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d,\n\t0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008,\n\t0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d,\n\t0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d,\n\t0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d,\n\t0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d,\n\t0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed,\n\t0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d,\n\t0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d,\n\t0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d8d,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7dad,\n\t0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d,\n\t0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e,\n\t0x158c: 0x7fae, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7fcd,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7ecd,\n\t0x159e: 0x7f2d, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x800e, 0x15b1: 0xb009, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040,\n\t0x15b6: 0x806e, 0x15b7: 0xb031, 0x15b8: 0x808e, 0x15b9: 0xb059, 0x15ba: 0x80ae, 0x15bb: 0xb081,\n\t0x15bc: 0x80ce, 0x15bd: 0xb0a9, 0x15be: 0x80ee, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d,\n\t0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d,\n\t0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd,\n\t0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d,\n\t0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d,\n\t0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d,\n\t0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd,\n\t0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d,\n\t0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d,\n\t0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d,\n\t0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d,\n\t0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed,\n\t0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d,\n\t0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed,\n\t0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d,\n\t0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d,\n\t0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d,\n\t0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x8a0e,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d,\n\t0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b3d, 0x1c5f: 0x8b3d, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0xc1c1, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1f1, 0x1dc1: 0xc229, 0x1dc2: 0xc261, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc281, 0x1dd1: 0xc2a1,\n\t0x1dd2: 0xc2c1, 0x1dd3: 0xc2e1, 0x1dd4: 0xc301, 0x1dd5: 0xc321, 0x1dd6: 0xc341, 0x1dd7: 0xc361,\n\t0x1dd8: 0xc381, 0x1dd9: 0xc3a1, 0x1dda: 0xc3c1, 0x1ddb: 0xc3e1, 0x1ddc: 0xc401, 0x1ddd: 0xc421,\n\t0x1dde: 0xc441, 0x1ddf: 0xc461, 0x1de0: 0xc481, 0x1de1: 0xc4a1, 0x1de2: 0xc4c1, 0x1de3: 0xc4e1,\n\t0x1de4: 0xc501, 0x1de5: 0xc521, 0x1de6: 0xc541, 0x1de7: 0xc561, 0x1de8: 0xc581, 0x1de9: 0xc5a1,\n\t0x1dea: 0xc5c1, 0x1deb: 0xc5e1, 0x1dec: 0xc601, 0x1ded: 0xc621, 0x1dee: 0xc641, 0x1def: 0xc661,\n\t0x1df0: 0xc681, 0x1df1: 0xc6a1, 0x1df2: 0xc6c1, 0x1df3: 0xc6e1, 0x1df4: 0xc701, 0x1df5: 0xc721,\n\t0x1df6: 0xc741, 0x1df7: 0xc761, 0x1df8: 0xc781, 0x1df9: 0xc7a1, 0x1dfa: 0xc7c1, 0x1dfb: 0xc7e1,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcb11, 0x1e01: 0xcb31, 0x1e02: 0xcb51, 0x1e03: 0x8b55, 0x1e04: 0xcb71, 0x1e05: 0xcb91,\n\t0x1e06: 0xcbb1, 0x1e07: 0xcbd1, 0x1e08: 0xcbf1, 0x1e09: 0xcc11, 0x1e0a: 0xcc31, 0x1e0b: 0xcc51,\n\t0x1e0c: 0xcc71, 0x1e0d: 0x8b75, 0x1e0e: 0xcc91, 0x1e0f: 0xccb1, 0x1e10: 0xccd1, 0x1e11: 0xccf1,\n\t0x1e12: 0x8b95, 0x1e13: 0xcd11, 0x1e14: 0xcd31, 0x1e15: 0xc441, 0x1e16: 0x8bb5, 0x1e17: 0xcd51,\n\t0x1e18: 0xcd71, 0x1e19: 0xcd91, 0x1e1a: 0xcdb1, 0x1e1b: 0xcdd1, 0x1e1c: 0x8bd5, 0x1e1d: 0xcdf1,\n\t0x1e1e: 0xce11, 0x1e1f: 0xce31, 0x1e20: 0xce51, 0x1e21: 0xce71, 0x1e22: 0xc7a1, 0x1e23: 0xce91,\n\t0x1e24: 0xceb1, 0x1e25: 0xced1, 0x1e26: 0xcef1, 0x1e27: 0xcf11, 0x1e28: 0xcf31, 0x1e29: 0xcf51,\n\t0x1e2a: 0xcf71, 0x1e2b: 0xcf91, 0x1e2c: 0xcfb1, 0x1e2d: 0xcfd1, 0x1e2e: 0xcff1, 0x1e2f: 0xd011,\n\t0x1e30: 0xd031, 0x1e31: 0xd051, 0x1e32: 0xd051, 0x1e33: 0xd051, 0x1e34: 0x8bf5, 0x1e35: 0xd071,\n\t0x1e36: 0xd091, 0x1e37: 0xd0b1, 0x1e38: 0x8c15, 0x1e39: 0xd0d1, 0x1e3a: 0xd0f1, 0x1e3b: 0xd111,\n\t0x1e3c: 0xd131, 0x1e3d: 0xd151, 0x1e3e: 0xd171, 0x1e3f: 0xd191,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd1b1, 0x1e41: 0xd1d1, 0x1e42: 0xd1f1, 0x1e43: 0xd211, 0x1e44: 0xd231, 0x1e45: 0xd251,\n\t0x1e46: 0xd251, 0x1e47: 0xd271, 0x1e48: 0xd291, 0x1e49: 0xd2b1, 0x1e4a: 0xd2d1, 0x1e4b: 0xd2f1,\n\t0x1e4c: 0xd311, 0x1e4d: 0xd331, 0x1e4e: 0xd351, 0x1e4f: 0xd371, 0x1e50: 0xd391, 0x1e51: 0xd3b1,\n\t0x1e52: 0xd3d1, 0x1e53: 0xd3f1, 0x1e54: 0xd411, 0x1e55: 0xd431, 0x1e56: 0xd451, 0x1e57: 0xd471,\n\t0x1e58: 0xd491, 0x1e59: 0x8c35, 0x1e5a: 0xd4b1, 0x1e5b: 0xd4d1, 0x1e5c: 0xd4f1, 0x1e5d: 0xc321,\n\t0x1e5e: 0xd511, 0x1e5f: 0xd531, 0x1e60: 0x8c55, 0x1e61: 0x8c75, 0x1e62: 0xd551, 0x1e63: 0xd571,\n\t0x1e64: 0xd591, 0x1e65: 0xd5b1, 0x1e66: 0xd5d1, 0x1e67: 0xd5f1, 0x1e68: 0x2040, 0x1e69: 0xd611,\n\t0x1e6a: 0xd631, 0x1e6b: 0xd631, 0x1e6c: 0x8c95, 0x1e6d: 0xd651, 0x1e6e: 0xd671, 0x1e6f: 0xd691,\n\t0x1e70: 0xd6b1, 0x1e71: 0x8cb5, 0x1e72: 0xd6d1, 0x1e73: 0xd6f1, 0x1e74: 0x2040, 0x1e75: 0xd711,\n\t0x1e76: 0xd731, 0x1e77: 0xd751, 0x1e78: 0xd771, 0x1e79: 0xd791, 0x1e7a: 0xd7b1, 0x1e7b: 0x8cd5,\n\t0x1e7c: 0xd7d1, 0x1e7d: 0x8cf5, 0x1e7e: 0xd7f1, 0x1e7f: 0xd811,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd831, 0x1e81: 0xd851, 0x1e82: 0xd871, 0x1e83: 0xd891, 0x1e84: 0xd8b1, 0x1e85: 0xd8d1,\n\t0x1e86: 0xd8f1, 0x1e87: 0xd911, 0x1e88: 0xd931, 0x1e89: 0x8d15, 0x1e8a: 0xd951, 0x1e8b: 0xd971,\n\t0x1e8c: 0xd991, 0x1e8d: 0xd9b1, 0x1e8e: 0xd9d1, 0x1e8f: 0x8d35, 0x1e90: 0xd9f1, 0x1e91: 0x8d55,\n\t0x1e92: 0x8d75, 0x1e93: 0xda11, 0x1e94: 0xda31, 0x1e95: 0xda31, 0x1e96: 0xda51, 0x1e97: 0x8d95,\n\t0x1e98: 0x8db5, 0x1e99: 0xda71, 0x1e9a: 0xda91, 0x1e9b: 0xdab1, 0x1e9c: 0xdad1, 0x1e9d: 0xdaf1,\n\t0x1e9e: 0xdb11, 0x1e9f: 0xdb31, 0x1ea0: 0xdb51, 0x1ea1: 0xdb71, 0x1ea2: 0xdb91, 0x1ea3: 0xdbb1,\n\t0x1ea4: 0x8dd5, 0x1ea5: 0xdbd1, 0x1ea6: 0xdbf1, 0x1ea7: 0xdc11, 0x1ea8: 0xdc31, 0x1ea9: 0xdc11,\n\t0x1eaa: 0xdc51, 0x1eab: 0xdc71, 0x1eac: 0xdc91, 0x1ead: 0xdcb1, 0x1eae: 0xdcd1, 0x1eaf: 0xdcf1,\n\t0x1eb0: 0xdd11, 0x1eb1: 0xdd31, 0x1eb2: 0xdd51, 0x1eb3: 0xdd71, 0x1eb4: 0xdd91, 0x1eb5: 0xddb1,\n\t0x1eb6: 0xddd1, 0x1eb7: 0xddf1, 0x1eb8: 0x8df5, 0x1eb9: 0xde11, 0x1eba: 0xde31, 0x1ebb: 0xde51,\n\t0x1ebc: 0xde71, 0x1ebd: 0xde91, 0x1ebe: 0x8e15, 0x1ebf: 0xdeb1,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe5b1, 0x1ec1: 0xe5d1, 0x1ec2: 0xe5f1, 0x1ec3: 0xe611, 0x1ec4: 0xe631, 0x1ec5: 0xe651,\n\t0x1ec6: 0x8f35, 0x1ec7: 0xe671, 0x1ec8: 0xe691, 0x1ec9: 0xe6b1, 0x1eca: 0xe6d1, 0x1ecb: 0xe6f1,\n\t0x1ecc: 0xe711, 0x1ecd: 0x8f55, 0x1ece: 0xe731, 0x1ecf: 0xe751, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95,\n\t0x1ed2: 0xe771, 0x1ed3: 0xe791, 0x1ed4: 0xe7b1, 0x1ed5: 0xe7d1, 0x1ed6: 0xe7f1, 0x1ed7: 0xe811,\n\t0x1ed8: 0xe831, 0x1ed9: 0xe851, 0x1eda: 0xe871, 0x1edb: 0x8fb5, 0x1edc: 0xe891, 0x1edd: 0x8fd5,\n\t0x1ede: 0xe8b1, 0x1edf: 0x2040, 0x1ee0: 0xe8d1, 0x1ee1: 0xe8f1, 0x1ee2: 0xe911, 0x1ee3: 0x8ff5,\n\t0x1ee4: 0xe931, 0x1ee5: 0xe951, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0xe971, 0x1ee9: 0xe991,\n\t0x1eea: 0xe9b1, 0x1eeb: 0xe9d1, 0x1eec: 0xe9f1, 0x1eed: 0xe9f1, 0x1eee: 0xea11, 0x1eef: 0xea31,\n\t0x1ef0: 0xea51, 0x1ef1: 0xea71, 0x1ef2: 0xea91, 0x1ef3: 0xeab1, 0x1ef4: 0xead1, 0x1ef5: 0x9055,\n\t0x1ef6: 0xeaf1, 0x1ef7: 0x9075, 0x1ef8: 0xeb11, 0x1ef9: 0x9095, 0x1efa: 0xeb31, 0x1efb: 0x90b5,\n\t0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0xeb51, 0x1eff: 0xeb71,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb91, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0xebb1,\n\t0x1f06: 0xebd1, 0x1f07: 0xebd1, 0x1f08: 0xebf1, 0x1f09: 0xec11, 0x1f0a: 0xec31, 0x1f0b: 0xec51,\n\t0x1f0c: 0xec71, 0x1f0d: 0x9195, 0x1f0e: 0xec91, 0x1f0f: 0xecb1, 0x1f10: 0xecd1, 0x1f11: 0xecf1,\n\t0x1f12: 0x91b5, 0x1f13: 0xed11, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0xed31, 0x1f17: 0xed51,\n\t0x1f18: 0xed71, 0x1f19: 0xed91, 0x1f1a: 0xedb1, 0x1f1b: 0xedd1, 0x1f1c: 0x9215, 0x1f1d: 0x9235,\n\t0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0xedf1, 0x1f21: 0x9275, 0x1f22: 0xee11, 0x1f23: 0xee31,\n\t0x1f24: 0xee51, 0x1f25: 0x9295, 0x1f26: 0xee71, 0x1f27: 0xee91, 0x1f28: 0xeeb1, 0x1f29: 0xeed1,\n\t0x1f2a: 0xeef1, 0x1f2b: 0x92b5, 0x1f2c: 0xef11, 0x1f2d: 0xef31, 0x1f2e: 0xef51, 0x1f2f: 0xef71,\n\t0x1f30: 0xef91, 0x1f31: 0xefb1, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0xefd1, 0x1f35: 0x9315,\n\t0x1f36: 0xeff1, 0x1f37: 0x9335, 0x1f38: 0xf011, 0x1f39: 0xf031, 0x1f3a: 0xf051, 0x1f3b: 0x9355,\n\t0x1f3c: 0x9375, 0x1f3d: 0xf071, 0x1f3e: 0x9395, 0x1f3f: 0xf091,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6d1, 0x1f41: 0xf6f1, 0x1f42: 0xf711, 0x1f43: 0xf731, 0x1f44: 0xf751, 0x1f45: 0x9555,\n\t0x1f46: 0xf771, 0x1f47: 0xf791, 0x1f48: 0xf7b1, 0x1f49: 0xf7d1, 0x1f4a: 0xf7f1, 0x1f4b: 0x9575,\n\t0x1f4c: 0x9595, 0x1f4d: 0xf811, 0x1f4e: 0xf831, 0x1f4f: 0xf851, 0x1f50: 0xf871, 0x1f51: 0xf891,\n\t0x1f52: 0xf8b1, 0x1f53: 0x95b5, 0x1f54: 0xf8d1, 0x1f55: 0xf8f1, 0x1f56: 0xf911, 0x1f57: 0xf931,\n\t0x1f58: 0x95d5, 0x1f59: 0x95f5, 0x1f5a: 0xf951, 0x1f5b: 0xf971, 0x1f5c: 0xf991, 0x1f5d: 0x9615,\n\t0x1f5e: 0xf9b1, 0x1f5f: 0xf9d1, 0x1f60: 0x684d, 0x1f61: 0x9635, 0x1f62: 0xf9f1, 0x1f63: 0xfa11,\n\t0x1f64: 0xfa31, 0x1f65: 0x9655, 0x1f66: 0xfa51, 0x1f67: 0xfa71, 0x1f68: 0xfa91, 0x1f69: 0xfab1,\n\t0x1f6a: 0xfad1, 0x1f6b: 0xfaf1, 0x1f6c: 0xfb11, 0x1f6d: 0x9675, 0x1f6e: 0xfb31, 0x1f6f: 0xfb51,\n\t0x1f70: 0xfb71, 0x1f71: 0x9695, 0x1f72: 0xfb91, 0x1f73: 0xfbb1, 0x1f74: 0xfbd1, 0x1f75: 0xfbf1,\n\t0x1f76: 0x7b6d, 0x1f77: 0x96b5, 0x1f78: 0xfc11, 0x1f79: 0xfc31, 0x1f7a: 0xfc51, 0x1f7b: 0x96d5,\n\t0x1f7c: 0xfc71, 0x1f7d: 0x96f5, 0x1f7e: 0xfc91, 0x1f7f: 0xfc91,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfcb1, 0x1f81: 0x9715, 0x1f82: 0xfcd1, 0x1f83: 0xfcf1, 0x1f84: 0xfd11, 0x1f85: 0xfd31,\n\t0x1f86: 0xfd51, 0x1f87: 0xfd71, 0x1f88: 0xfd91, 0x1f89: 0x9735, 0x1f8a: 0xfdb1, 0x1f8b: 0xfdd1,\n\t0x1f8c: 0xfdf1, 0x1f8d: 0xfe11, 0x1f8e: 0xfe31, 0x1f8f: 0xfe51, 0x1f90: 0x9755, 0x1f91: 0xfe71,\n\t0x1f92: 0x9775, 0x1f93: 0x9795, 0x1f94: 0x97b5, 0x1f95: 0xfe91, 0x1f96: 0xfeb1, 0x1f97: 0xfed1,\n\t0x1f98: 0xfef1, 0x1f99: 0xff11, 0x1f9a: 0xff31, 0x1f9b: 0xff51, 0x1f9c: 0xff71, 0x1f9d: 0x97d5,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0x9b,\n\t0x1b0: 0xd0, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd1, 0x1b5: 0xd2, 0x1b6: 0xd3, 0x1b7: 0xd4,\n\t0x1b8: 0xd5, 0x1b9: 0xd6, 0x1ba: 0xd7, 0x1bb: 0xd8, 0x1bc: 0xd9, 0x1bd: 0xda, 0x1be: 0xdb, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdc, 0x1c2: 0xdd, 0x1c3: 0xde, 0x1c4: 0xdf, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe0,\n\t0x1c8: 0xe1, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe2,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe3, 0x2d3: 0xe4, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe5, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe6, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe7,\n\t0x2e0: 0xe8, 0x2e1: 0xe9, 0x2e2: 0xea, 0x2e3: 0xeb, 0x2e4: 0xec, 0x2e5: 0xed, 0x2e6: 0xee, 0x2e7: 0xef,\n\t0x2e8: 0xf0, 0x2e9: 0xf1, 0x2ea: 0xf2, 0x2eb: 0xf3, 0x2ec: 0xf4, 0x2ed: 0xf5, 0x2ee: 0xf6, 0x2ef: 0xf7,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf8, 0x31f: 0xf9,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfa, 0x3a5: 0xfb, 0x3a6: 0xfc, 0x3a7: 0xfd,\n\t0x3a8: 0x47, 0x3a9: 0xfe, 0x3aa: 0xff, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x100, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x101, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x102, 0x3c1: 0x103, 0x3c2: 0x9f, 0x3c3: 0x104, 0x3c4: 0x105, 0x3c5: 0x9b, 0x3c6: 0x106, 0x3c7: 0x107,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x108, 0x3cb: 0x109, 0x3cc: 0x10a, 0x3cd: 0x10b, 0x3ce: 0x10c, 0x3cf: 0x10d,\n\t0x3d0: 0x10e, 0x3d1: 0x9f, 0x3d2: 0x10f, 0x3d3: 0x110, 0x3d4: 0x111, 0x3d5: 0x112, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x113, 0x3dd: 0x114, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x115, 0x3e1: 0x116, 0x3e2: 0x117, 0x3e3: 0x118, 0x3e4: 0x119, 0x3e5: 0xba, 0x3e6: 0x11a, 0x3e7: 0x11b,\n\t0x3e8: 0x11c, 0x3e9: 0x11d, 0x3ea: 0x11e, 0x3eb: 0x5b, 0x3ec: 0x11f, 0x3ed: 0x120, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x121, 0x3f1: 0x122, 0x3f2: 0x123, 0x3f3: 0x124, 0x3f4: 0x125, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x127, 0x3fd: 0x128, 0x3fe: 0xba, 0x3ff: 0x129,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,\n\t0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,\n\t0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0x143, 0x427: 0x144,\n\t0x428: 0x145, 0x429: 0x146, 0x42a: 0x147, 0x42b: 0x148, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x149, 0x431: 0x14a, 0x432: 0x14b, 0x433: 0xba, 0x434: 0x14c, 0x435: 0x14d, 0x436: 0x14e, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14f, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0x150,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x151, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x152, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x153, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x154, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x155, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x148, 0x529: 0x156, 0x52a: 0xba, 0x52b: 0x157, 0x52c: 0x158, 0x52d: 0x159, 0x52e: 0x15a, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0x15b, 0x53a: 0x15c, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15d, 0x53e: 0x15e, 0x53f: 0x15f,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x160,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x161, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x162, 0x585: 0x163, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x164, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x165, 0x5b2: 0x166, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x167, 0x5c4: 0x168, 0x5c5: 0x169, 0x5c6: 0x16a, 0x5c7: 0x16b,\n\t0x5c8: 0x9b, 0x5c9: 0x16c, 0x5ca: 0xba, 0x5cb: 0x16d, 0x5cc: 0x9b, 0x5cd: 0x16e, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x16f, 0x5e9: 0x170, 0x5ea: 0x171, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x172, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0x173, 0x605: 0x174, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0x175, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x121, 0x621: 0x121, 0x622: 0x121, 0x623: 0x176, 0x624: 0x6f, 0x625: 0x177, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0x178, 0x632: 0x179, 0x633: 0xba, 0x634: 0x17a, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x17b, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x17c, 0x641: 0x9b, 0x642: 0x17d, 0x643: 0x17e, 0x644: 0x73, 0x645: 0x74, 0x646: 0x17f, 0x647: 0x180,\n\t0x648: 0x75, 0x649: 0x181, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x182, 0x65c: 0x9b, 0x65d: 0x183, 0x65e: 0x9b, 0x65f: 0x184,\n\t0x660: 0x185, 0x661: 0x186, 0x662: 0x187, 0x663: 0xba, 0x664: 0x188, 0x665: 0x189, 0x666: 0x18a, 0x667: 0x18b,\n\t0x668: 0x9b, 0x669: 0x18c, 0x66a: 0x18d, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x18e, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x18f, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x190, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x191, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x192,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x193, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x194, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x195, 0x841: 0x196, 0x842: 0xba, 0x843: 0xba, 0x844: 0x197, 0x845: 0x197, 0x846: 0x197, 0x847: 0x198,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 284 entries, 568 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x26c, 0x27d, 0x281, 0x28c, 0x290, 0x299, 0x2a1, 0x2a7, 0x2ac, 0x2af, 0x2b3, 0x2b9, 0x2bd, 0x2c1, 0x2c5, 0x2cb, 0x2d3, 0x2da, 0x2e5, 0x2ef, 0x2f3, 0x2f6, 0x2fc, 0x300, 0x302, 0x305, 0x307, 0x30a, 0x314, 0x317, 0x326, 0x32a, 0x32f, 0x332, 0x336, 0x33b, 0x340, 0x346, 0x352, 0x361, 0x367, 0x36b, 0x37a, 0x37f, 0x387, 0x391, 0x39c, 0x3a4, 0x3b5, 0x3be, 0x3ce, 0x3db, 0x3e5, 0x3ea, 0x3f7, 0x3fb, 0x400, 0x402, 0x406, 0x408, 0x40c, 0x415, 0x41b, 0x41f, 0x42f, 0x439, 0x43e, 0x441, 0x447, 0x44e, 0x453, 0x457, 0x45d, 0x462, 0x46b, 0x470, 0x476, 0x47d, 0x484, 0x48b, 0x48f, 0x494, 0x497, 0x49c, 0x4a8, 0x4ae, 0x4b3, 0x4ba, 0x4c2, 0x4c7, 0x4cb, 0x4db, 0x4e2, 0x4e6, 0x4ea, 0x4f1, 0x4f3, 0x4f6, 0x4f9, 0x4fd, 0x506, 0x50a, 0x512, 0x51a, 0x51e, 0x524, 0x52d, 0x539, 0x540, 0x549, 0x553, 0x55a, 0x568, 0x575, 0x582, 0x58b, 0x58f, 0x59f, 0x5a7, 0x5b2, 0x5bb, 0x5c1, 0x5c9, 0x5d2, 0x5dd, 0x5e0, 0x5ec, 0x5f5, 0x5f8, 0x5fd, 0x602, 0x60f, 0x61a, 0x623, 0x62d, 0x630, 0x63a, 0x643, 0x64f, 0x65c, 0x669, 0x677, 0x67e, 0x682, 0x685, 0x68a, 0x68d, 0x692, 0x695, 0x69c, 0x6a3, 0x6a7, 0x6b2, 0x6b5, 0x6b8, 0x6bb, 0x6c1, 0x6c7, 0x6cd, 0x6d0, 0x6d3, 0x6d6, 0x6dd, 0x6e0, 0x6e5, 0x6ef, 0x6f2, 0x6f6, 0x705, 0x711, 0x715, 0x71a, 0x71e, 0x723, 0x727, 0x72c, 0x735, 0x740, 0x746, 0x74c, 0x752, 0x758, 0x761, 0x764, 0x767, 0x76b, 0x76f, 0x773, 0x779, 0x77f, 0x784, 0x787, 0x797, 0x79e, 0x7a1, 0x7a6, 0x7aa, 0x7b0, 0x7b5, 0x7b9, 0x7bf, 0x7c5, 0x7c9, 0x7d2, 0x7d7, 0x7da, 0x7dd, 0x7e1, 0x7e5, 0x7e8, 0x7f8, 0x809, 0x80e, 0x810, 0x812}\n\n// idnaSparseValues: 2069 entries, 8276 bytes\nvar idnaSparseValues = [2069]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x86\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x224\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x246\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x252\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25f\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x45, offset 0x26c\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x46, offset 0x27d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x281\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x28c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x290\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x299\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2af\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2c1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xbf},\n\t// Block 0x53, offset 0x2c5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2cb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x56, offset 0x2da\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2e5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x58, offset 0x2ef\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5c, offset 0x300\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x302\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5e, offset 0x305\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5f, offset 0x307\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x60, offset 0x30a\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x61, offset 0x314\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x62, offset 0x317\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x63, offset 0x326\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x64, offset 0x32a\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x66, offset 0x332\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x67, offset 0x336\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x68, offset 0x33b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x69, offset 0x340\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6a, offset 0x346\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0xe00d, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x83},\n\t{value: 0x03f5, lo: 0x84, hi: 0x84},\n\t{value: 0x1329, lo: 0x85, hi: 0x85},\n\t{value: 0x447d, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6b, offset 0x352\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x361\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6d, offset 0x367\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6e, offset 0x36b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x37a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x70, offset 0x37f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x71, offset 0x387\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x72, offset 0x391\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x39c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x74, offset 0x3a4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x75, offset 0x3b5\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3be\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x77, offset 0x3ce\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x78, offset 0x3db\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3e5\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ea\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7b, offset 0x3f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3fb\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7d, offset 0x400\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7e, offset 0x402\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x7f, offset 0x406\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x80, offset 0x408\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x81, offset 0x40c\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x82, offset 0x415\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x83, offset 0x41b\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x84, offset 0x41f\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x85, offset 0x42f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x86, offset 0x439\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x87, offset 0x43e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x88, offset 0x441\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x89, offset 0x447\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8a, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8b, offset 0x453\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8c, offset 0x457\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8d, offset 0x45d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8e, offset 0x462\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8f, offset 0x46b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x90, offset 0x470\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x91, offset 0x476\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x92, offset 0x47d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x93, offset 0x484\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x94, offset 0x48b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x95, offset 0x48f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x494\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x97, offset 0x497\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x98, offset 0x49c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x99, offset 0x4a8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9b, offset 0x4b3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9c, offset 0x4ba\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9d, offset 0x4c2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cb\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4db\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa1, offset 0x4e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa3, offset 0x4ea\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa6, offset 0x4f6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa8, offset 0x4fd\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x506\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaa, offset 0x50a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xab, offset 0x512\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xac, offset 0x51a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xad, offset 0x51e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xae, offset 0x524\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaf, offset 0x52d\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb0, offset 0x539\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb1, offset 0x540\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb2, offset 0x549\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb3, offset 0x553\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x55a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb5, offset 0x568\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb6, offset 0x575\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb7, offset 0x582\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb8, offset 0x58b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb9, offset 0x58f\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xba, offset 0x59f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a7\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbc, offset 0x5b2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5bb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbe, offset 0x5c1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc0, offset 0x5d2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc1, offset 0x5dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc2, offset 0x5e0\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5ec\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc4, offset 0x5f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc5, offset 0x5f8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5fd\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xc7, offset 0x602\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xc8, offset 0x60f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc9, offset 0x61a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xca, offset 0x623\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xcb, offset 0x62d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xcc, offset 0x630\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcd, offset 0x63a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xce, offset 0x643\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xcf, offset 0x64f\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd0, offset 0x65c\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd1, offset 0x669\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd2, offset 0x677\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd3, offset 0x67e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd4, offset 0x682\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xd5, offset 0x685\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xd6, offset 0x68a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xd7, offset 0x68d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd8, offset 0x692\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd9, offset 0x695\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xda, offset 0x69c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xdb, offset 0x6a3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xdc, offset 0x6a7\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xdd, offset 0x6b2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xde, offset 0x6b5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdf, offset 0x6b8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xe0, offset 0x6bb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xe1, offset 0x6c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe2, offset 0x6c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xe3, offset 0x6cd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xe4, offset 0x6d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe5, offset 0x6d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe6, offset 0x6d6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe7, offset 0x6dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xe8, offset 0x6e0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe9, offset 0x6e5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xea, offset 0x6ef\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xeb, offset 0x6f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xec, offset 0x6f6\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xed, offset 0x705\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xee, offset 0x711\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xef, offset 0x715\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xf0, offset 0x71a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf1, offset 0x71e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xf2, offset 0x723\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf3, offset 0x727\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf4, offset 0x72c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf5, offset 0x735\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xf6, offset 0x740\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf7, offset 0x746\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xf8, offset 0x74c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf9, offset 0x752\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xfa, offset 0x758\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xfb, offset 0x761\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0xfc, offset 0x764\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xfd, offset 0x767\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xfe, offset 0x76b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xff, offset 0x76f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x100, offset 0x773\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x101, offset 0x779\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x102, offset 0x77f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1d9, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0x103, offset 0x784\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x104, offset 0x787\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc801, lo: 0x80, hi: 0x80},\n\t{value: 0xc851, lo: 0x81, hi: 0x81},\n\t{value: 0xc8a1, lo: 0x82, hi: 0x82},\n\t{value: 0xc8f1, lo: 0x83, hi: 0x83},\n\t{value: 0xc941, lo: 0x84, hi: 0x84},\n\t{value: 0xc991, lo: 0x85, hi: 0x85},\n\t{value: 0xc9e1, lo: 0x86, hi: 0x86},\n\t{value: 0xca31, lo: 0x87, hi: 0x87},\n\t{value: 0xca81, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcad1, lo: 0x90, hi: 0x90},\n\t{value: 0xcaf1, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x105, offset 0x797\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x106, offset 0x79e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x107, offset 0x7a1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x108, offset 0x7a6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x109, offset 0x7aa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10a, offset 0x7b0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x10b, offset 0x7b5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x10c, offset 0x7b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0x10d, offset 0x7bf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0018, lo: 0xa5, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xbf},\n\t// Block 0x10e, offset 0x7c5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x10f, offset 0x7c9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x110, offset 0x7d2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x111, offset 0x7d7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x112, offset 0x7da\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x113, offset 0x7dd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x114, offset 0x7e1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x115, offset 0x7e5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x116, offset 0x7e8\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xded1, lo: 0x80, hi: 0x89},\n\t{value: 0x8e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0xe011, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e55, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe251, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e75, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2f1, lo: 0xa4, hi: 0xab},\n\t{value: 0x7f0d, lo: 0xac, hi: 0xac},\n\t{value: 0xe3f1, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e95, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe451, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8eb5, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe511, lo: 0xba, hi: 0xba},\n\t{value: 0x8f15, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe531, lo: 0xbc, hi: 0xbf},\n\t// Block 0x117, offset 0x7f8\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x93b5, lo: 0x80, hi: 0x80},\n\t{value: 0xf0b1, lo: 0x81, hi: 0x86},\n\t{value: 0x93d5, lo: 0x87, hi: 0x8a},\n\t{value: 0xda11, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf171, lo: 0x8c, hi: 0x96},\n\t{value: 0x9455, lo: 0x97, hi: 0x97},\n\t{value: 0xf2d1, lo: 0x98, hi: 0xa3},\n\t{value: 0x9475, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf451, lo: 0xa7, hi: 0xaa},\n\t{value: 0x94d5, lo: 0xab, hi: 0xab},\n\t{value: 0xf4d1, lo: 0xac, hi: 0xac},\n\t{value: 0x94f5, lo: 0xad, hi: 0xad},\n\t{value: 0xf4f1, lo: 0xae, hi: 0xaf},\n\t{value: 0x9515, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf531, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x118, offset 0x809\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x119, offset 0x80e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x11a, offset 0x810\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x11b, offset 0x812\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42780 bytes (41KiB); checksum: 29936AB9\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"13.0.0\"\n\nvar mappings string = \"\" + // Size: 6539 bytes\n\t\"  ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक\" +\n\t\"़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ\" +\n\t\"ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ\" +\n\t\"ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ\" +\n\t\"ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?\" +\n\t\"′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83\" +\n\t\"⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12\" +\n\t\")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)\" +\n\t\"(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전\" +\n\t\")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(\" +\n\t\"財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343\" +\n\t\"5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート\" +\n\t\"アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ\" +\n\t\"グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ\" +\n\t\"ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ\" +\n\t\"イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ\" +\n\t\"ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20\" +\n\t\"点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk\" +\n\t\"lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah\" +\n\t\"pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1\" +\n\t\"8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ\" +\n\t\"խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו\" +\n\t\"ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم\" +\n\t\"ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط\" +\n\t\"مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي\" +\n\t\"نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت\" +\n\t\"زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس\" +\n\t\"ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح\" +\n\t\"مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى\" +\n\t\"فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم\" +\n\t\"ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين\" +\n\t\"حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه\" +\n\t\"وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\\\$%@ـًـَـُـِـّـْءآ\" +\n\t\"أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\\x22'/^|~¢£¬¦¥𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱\" +\n\t\"𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκλμνξοστυψ∇∂ϝٮڡٯ0,1,2,3,4,5,6,7,8,9,(a)(b)(c\" +\n\t\")(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)〔s\" +\n\t\"〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申割営配〔\" +\n\t\"本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉卑博即卽\" +\n\t\"卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢㠯巽帨帽\" +\n\t\"幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最暜肭䏙朗\" +\n\t\"望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸瑇瑜瑱璅\" +\n\t\"瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦若茝荣莭\" +\n\t\"茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷䧦雃嶲霣\" +\n\t\"䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻\"\n\nvar mappingIndex = []uint16{ // 1650 elements\n\t// Entry 0 - 3F\n\t0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a,\n\t0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024,\n\t0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036,\n\t0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048,\n\t0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e,\n\t0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086,\n\t0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6,\n\t0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6,\n\t// Entry 40 - 7F\n\t0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116,\n\t0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c,\n\t0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174,\n\t0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182,\n\t0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c,\n\t0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199,\n\t0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8,\n\t0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6,\n\t// Entry 80 - BF\n\t0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6,\n\t0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6,\n\t0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5,\n\t0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5,\n\t0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211,\n\t0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239,\n\t0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261,\n\t0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287,\n\t// Entry C0 - FF\n\t0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa,\n\t0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8,\n\t0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8,\n\t0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f,\n\t0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,\n\t0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326,\n\t0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340,\n\t0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368,\n\t// Entry 100 - 13F\n\t0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386,\n\t0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1,\n\t0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1,\n\t0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db,\n\t0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401,\n\t0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417,\n\t0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441,\n\t0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469,\n\t// Entry 140 - 17F\n\t0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491,\n\t0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc,\n\t0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7,\n\t0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f,\n\t0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537,\n\t0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f,\n\t0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e,\n\t0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e,\n\t// Entry 180 - 1BF\n\t0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6,\n\t0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6,\n\t0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc,\n\t0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee,\n\t0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a,\n\t0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e,\n\t0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf,\n\t0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738,\n\t// Entry 1C0 - 1FF\n\t0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c,\n\t0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce,\n\t0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822,\n\t0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873,\n\t0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be,\n\t0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f,\n\t0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d,\n\t0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997,\n\t// Entry 200 - 23F\n\t0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9,\n\t0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1,\n\t0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00,\n\t0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a,\n\t0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c,\n\t0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c,\n\t0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f,\n\t0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e,\n\t// Entry 240 - 27F\n\t0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e,\n\t0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2,\n\t0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2,\n\t0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2,\n\t0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6,\n\t0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e,\n\t0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46,\n\t0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c,\n\t// Entry 280 - 2BF\n\t0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a,\n\t0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92,\n\t0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8,\n\t0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8,\n\t0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8,\n\t0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08,\n\t0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28,\n\t0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e,\n\t// Entry 2C0 - 2FF\n\t0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e,\n\t0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e,\n\t0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e,\n\t0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e,\n\t0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a,\n\t0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8,\n\t0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8,\n\t0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8,\n\t// Entry 300 - 33F\n\t0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18,\n\t0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38,\n\t0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58,\n\t0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78,\n\t0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98,\n\t0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8,\n\t0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8,\n\t0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8,\n\t// Entry 340 - 37F\n\t0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18,\n\t0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e,\n\t0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e,\n\t0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e,\n\t0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e,\n\t0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2,\n\t0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4,\n\t0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04,\n\t// Entry 380 - 3BF\n\t0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24,\n\t0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a,\n\t0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a,\n\t0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa,\n\t0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda,\n\t0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a,\n\t0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a,\n\t0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a,\n\t// Entry 3C0 - 3FF\n\t0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a,\n\t0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca,\n\t0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa,\n\t0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a,\n\t0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a,\n\t0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190,\n\t0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee,\n\t0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6,\n\t// Entry 400 - 43F\n\t0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe,\n\t0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215,\n\t0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227,\n\t0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237,\n\t0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247,\n\t0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257,\n\t0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f,\n\t0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279,\n\t// Entry 440 - 47F\n\t0x127b, 0x127d, 0x127f, 0x1287, 0x128f, 0x129b, 0x12a7, 0x12b3,\n\t0x12bf, 0x12cb, 0x12d3, 0x12db, 0x12e7, 0x12f3, 0x12ff, 0x130b,\n\t0x130d, 0x130f, 0x1311, 0x1313, 0x1315, 0x1317, 0x1319, 0x131b,\n\t0x131d, 0x131f, 0x1321, 0x1323, 0x1325, 0x1327, 0x1329, 0x132b,\n\t0x132e, 0x1331, 0x1333, 0x1335, 0x1337, 0x1339, 0x133b, 0x133d,\n\t0x133f, 0x1341, 0x1343, 0x1345, 0x1347, 0x1349, 0x134b, 0x134d,\n\t0x1350, 0x1353, 0x1356, 0x1359, 0x135c, 0x135f, 0x1362, 0x1365,\n\t0x1368, 0x136b, 0x136e, 0x1371, 0x1374, 0x1377, 0x137a, 0x137d,\n\t// Entry 480 - 4BF\n\t0x1380, 0x1383, 0x1386, 0x1389, 0x138c, 0x138f, 0x1392, 0x1395,\n\t0x1398, 0x139b, 0x13a2, 0x13a4, 0x13a6, 0x13a8, 0x13ab, 0x13ad,\n\t0x13af, 0x13b1, 0x13b3, 0x13b5, 0x13bb, 0x13c1, 0x13c4, 0x13c7,\n\t0x13ca, 0x13cd, 0x13d0, 0x13d3, 0x13d6, 0x13d9, 0x13dc, 0x13df,\n\t0x13e2, 0x13e5, 0x13e8, 0x13eb, 0x13ee, 0x13f1, 0x13f4, 0x13f7,\n\t0x13fa, 0x13fd, 0x1400, 0x1403, 0x1406, 0x1409, 0x140c, 0x140f,\n\t0x1412, 0x1415, 0x1418, 0x141b, 0x141e, 0x1421, 0x1424, 0x1427,\n\t0x142a, 0x142d, 0x1430, 0x1433, 0x1436, 0x1439, 0x143c, 0x143f,\n\t// Entry 4C0 - 4FF\n\t0x1442, 0x1445, 0x1448, 0x1451, 0x145a, 0x1463, 0x146c, 0x1475,\n\t0x147e, 0x1487, 0x1490, 0x1499, 0x149c, 0x149f, 0x14a2, 0x14a5,\n\t0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7, 0x14ba, 0x14bd,\n\t0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf, 0x14d2, 0x14d5,\n\t0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7, 0x14ea, 0x14ed,\n\t0x14f0, 0x14f3, 0x14f6, 0x14f9, 0x14fc, 0x14ff, 0x1502, 0x1505,\n\t0x1508, 0x150b, 0x150e, 0x1511, 0x1514, 0x1517, 0x151a, 0x151d,\n\t0x1520, 0x1523, 0x1526, 0x1529, 0x152c, 0x152f, 0x1532, 0x1535,\n\t// Entry 500 - 53F\n\t0x1538, 0x153b, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d,\n\t0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565,\n\t0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d,\n\t0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595,\n\t0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad,\n\t0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5,\n\t0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd,\n\t0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5,\n\t// Entry 540 - 57F\n\t0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d,\n\t0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625,\n\t0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d,\n\t0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655,\n\t0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d,\n\t0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685,\n\t0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d,\n\t0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5,\n\t// Entry 580 - 5BF\n\t0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd,\n\t0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5,\n\t0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd,\n\t0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715,\n\t0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d,\n\t0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745,\n\t0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d,\n\t0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775,\n\t// Entry 5C0 - 5FF\n\t0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d,\n\t0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5,\n\t0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd,\n\t0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5,\n\t0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed,\n\t0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805,\n\t0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d,\n\t0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835,\n\t// Entry 600 - 63F\n\t0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d,\n\t0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865,\n\t0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d,\n\t0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895,\n\t0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad,\n\t0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5,\n\t0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd,\n\t0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5,\n\t// Entry 640 - 67F\n\t0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d,\n\t0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925,\n\t0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d,\n\t0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955,\n\t0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d,\n\t0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985,\n\t0x1988, 0x198b,\n} // Size: 3324 bytes\n\nvar xorData string = \"\" + // Size: 4862 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 30196 bytes (29.49 KiB). Checksum: e2ae95a945f04016.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 126:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 126\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 128 blocks, 8192 entries, 16384 bytes\n// The third block is the zero block.\nvar idnaValues = [8192]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018,\n\t0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018,\n\t0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091,\n\t0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139,\n\t0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08,\n\t0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x0159, 0x599: 0x0161, 0x59a: 0x0169, 0x59b: 0x0171, 0x59c: 0x0179, 0x59d: 0x0181,\n\t0x59e: 0x0189, 0x59f: 0x0191, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0199, 0x61d: 0x01a1,\n\t0x61e: 0x0040, 0x61f: 0x01a9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x01b1, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x01b9, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x01c1, 0x69a: 0x01c9, 0x69b: 0x01d1, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x01d9, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x3308, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x01e1, 0x79d: 0x01e9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x01f9, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0211, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0219, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0221, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0229,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0231, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0239,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0241, 0x974: 0x3308, 0x975: 0x0249,\n\t0x976: 0x0251, 0x977: 0x0259, 0x978: 0x0261, 0x979: 0x0269, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0271, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0279, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0281,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0289, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0291, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0299, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x02a1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0019, 0x9ed: 0x02e1, 0x9ee: 0x02e9, 0x9ef: 0x0008,\n\t0x9f0: 0x02f1, 0x9f1: 0x02f9, 0x9f2: 0x0301, 0x9f3: 0x0309, 0x9f4: 0x00a9, 0x9f5: 0x0311,\n\t0x9f6: 0x00b1, 0x9f7: 0x0319, 0x9f8: 0x0101, 0x9f9: 0x0321, 0x9fa: 0x0329, 0x9fb: 0x0008,\n\t0x9fc: 0x0051, 0x9fd: 0x0331, 0x9fe: 0x0339, 0x9ff: 0x00b9,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0341, 0xa01: 0x0349, 0xa02: 0x00c1, 0xa03: 0x0019, 0xa04: 0x0351, 0xa05: 0x0359,\n\t0xa06: 0x05b5, 0xa07: 0x02e9, 0xa08: 0x02f1, 0xa09: 0x02f9, 0xa0a: 0x0361, 0xa0b: 0x0369,\n\t0xa0c: 0x0371, 0xa0d: 0x0309, 0xa0e: 0x0008, 0xa0f: 0x0319, 0xa10: 0x0321, 0xa11: 0x0379,\n\t0xa12: 0x0051, 0xa13: 0x0381, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0339, 0xa17: 0x0341,\n\t0xa18: 0x0349, 0xa19: 0x05b5, 0xa1a: 0x0389, 0xa1b: 0x0391, 0xa1c: 0x05e5, 0xa1d: 0x0399,\n\t0xa1e: 0x03a1, 0xa1f: 0x03a9, 0xa20: 0x03b1, 0xa21: 0x03b9, 0xa22: 0x0311, 0xa23: 0x00b9,\n\t0xa24: 0x0349, 0xa25: 0x0391, 0xa26: 0x0399, 0xa27: 0x03a1, 0xa28: 0x03c1, 0xa29: 0x03b1,\n\t0xa2a: 0x03b9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x03c9, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x03d1, 0xa5c: 0x03d9, 0xa5d: 0x03e1,\n\t0xa5e: 0x03e9, 0xa5f: 0x0371, 0xa60: 0x03f1, 0xa61: 0x03f9, 0xa62: 0x0401, 0xa63: 0x0409,\n\t0xa64: 0x0411, 0xa65: 0x0419, 0xa66: 0x0421, 0xa67: 0x05fd, 0xa68: 0x0429, 0xa69: 0x0431,\n\t0xa6a: 0xe17d, 0xa6b: 0x0439, 0xa6c: 0x0441, 0xa6d: 0x0449, 0xa6e: 0x0451, 0xa6f: 0x0459,\n\t0xa70: 0x0461, 0xa71: 0x0469, 0xa72: 0x0471, 0xa73: 0x0479, 0xa74: 0x0481, 0xa75: 0x0489,\n\t0xa76: 0x0491, 0xa77: 0x0499, 0xa78: 0x0615, 0xa79: 0x04a1, 0xa7a: 0x04a9, 0xa7b: 0x04b1,\n\t0xa7c: 0x04b9, 0xa7d: 0x04c1, 0xa7e: 0x04c9, 0xa7f: 0x04d1,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x04d9, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x04e1, 0xb32: 0x0008, 0xb33: 0x04e9, 0xb34: 0x0008, 0xb35: 0x04f1,\n\t0xb36: 0x0008, 0xb37: 0x04f9, 0xb38: 0x0008, 0xb39: 0x0501, 0xb3a: 0x0008, 0xb3b: 0x0509,\n\t0xb3c: 0x0008, 0xb3d: 0x0511, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x0519, 0xb41: 0x0521, 0xb42: 0x0529, 0xb43: 0x0531, 0xb44: 0x0539, 0xb45: 0x0541,\n\t0xb46: 0x0549, 0xb47: 0x0551, 0xb48: 0x0519, 0xb49: 0x0521, 0xb4a: 0x0529, 0xb4b: 0x0531,\n\t0xb4c: 0x0539, 0xb4d: 0x0541, 0xb4e: 0x0549, 0xb4f: 0x0551, 0xb50: 0x0559, 0xb51: 0x0561,\n\t0xb52: 0x0569, 0xb53: 0x0571, 0xb54: 0x0579, 0xb55: 0x0581, 0xb56: 0x0589, 0xb57: 0x0591,\n\t0xb58: 0x0559, 0xb59: 0x0561, 0xb5a: 0x0569, 0xb5b: 0x0571, 0xb5c: 0x0579, 0xb5d: 0x0581,\n\t0xb5e: 0x0589, 0xb5f: 0x0591, 0xb60: 0x0599, 0xb61: 0x05a1, 0xb62: 0x05a9, 0xb63: 0x05b1,\n\t0xb64: 0x05b9, 0xb65: 0x05c1, 0xb66: 0x05c9, 0xb67: 0x05d1, 0xb68: 0x0599, 0xb69: 0x05a1,\n\t0xb6a: 0x05a9, 0xb6b: 0x05b1, 0xb6c: 0x05b9, 0xb6d: 0x05c1, 0xb6e: 0x05c9, 0xb6f: 0x05d1,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x05d9, 0xb73: 0x05e1, 0xb74: 0x05e9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x05f1, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x04e1,\n\t0xb7c: 0x05e1, 0xb7d: 0x067e, 0xb7e: 0x05f9, 0xb7f: 0x069e,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06be, 0xb81: 0x0602, 0xb82: 0x0609, 0xb83: 0x0611, 0xb84: 0x0619, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x0621, 0xb88: 0x06dd, 0xb89: 0x04e9, 0xb8a: 0x06f5, 0xb8b: 0x04f1,\n\t0xb8c: 0x0611, 0xb8d: 0x062a, 0xb8e: 0x0632, 0xb8f: 0x063a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x0641, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x04f9, 0xb9c: 0x0040, 0xb9d: 0x064a,\n\t0xb9e: 0x0652, 0xb9f: 0x065a, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x0661,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x0725, 0xbab: 0x0509, 0xbac: 0xe04d, 0xbad: 0x066a, 0xbae: 0x012a, 0xbaf: 0x0672,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x0679, 0xbb3: 0x0681, 0xbb4: 0x0689, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x0691, 0xbb8: 0x073d, 0xbb9: 0x0501, 0xbba: 0x0515, 0xbbb: 0x0511,\n\t0xbbc: 0x0681, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x0699, 0xbf4: 0x06a1, 0xbf5: 0x0018,\n\t0xbf6: 0x06a9, 0xbf7: 0x06b1, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x06ba, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x06c2, 0xc08: 0x06ca, 0xc09: 0x06d2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x06d9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x06e1, 0xc31: 0x0311, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x06e9, 0xc35: 0x06f1,\n\t0xc36: 0x06f9, 0xc37: 0x0701, 0xc38: 0x0709, 0xc39: 0x0711, 0xc3a: 0x071a, 0xc3b: 0x07d5,\n\t0xc3c: 0x0722, 0xc3d: 0x072a, 0xc3e: 0x0732, 0xc3f: 0x0329,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x06e1, 0xc41: 0x0049, 0xc42: 0x0029, 0xc43: 0x0031, 0xc44: 0x06e9, 0xc45: 0x06f1,\n\t0xc46: 0x06f9, 0xc47: 0x0701, 0xc48: 0x0709, 0xc49: 0x0711, 0xc4a: 0x071a, 0xc4b: 0x07ed,\n\t0xc4c: 0x0722, 0xc4d: 0x072a, 0xc4e: 0x0732, 0xc4f: 0x0040, 0xc50: 0x0019, 0xc51: 0x02f9,\n\t0xc52: 0x0051, 0xc53: 0x0109, 0xc54: 0x0361, 0xc55: 0x00a9, 0xc56: 0x0319, 0xc57: 0x0101,\n\t0xc58: 0x0321, 0xc59: 0x0329, 0xc5a: 0x0339, 0xc5b: 0x0089, 0xc5c: 0x0341, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x0739, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x03d9, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866,\n\t0xc86: 0x0886, 0xc87: 0x0369, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0309, 0xc8b: 0x00a9,\n\t0xc8c: 0x00a9, 0xc8d: 0x00a9, 0xc8e: 0x00a9, 0xc8f: 0x0741, 0xc90: 0x0311, 0xc91: 0x0311,\n\t0xc92: 0x0101, 0xc93: 0x0101, 0xc94: 0x0018, 0xc95: 0x0329, 0xc96: 0x0749, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0339, 0xc9a: 0x0751, 0xc9b: 0x00b9, 0xc9c: 0x00b9, 0xc9d: 0x00b9,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x0759, 0xca1: 0x08c5, 0xca2: 0x0761, 0xca3: 0x0018,\n\t0xca4: 0x04b1, 0xca5: 0x0018, 0xca6: 0x0769, 0xca7: 0x0018, 0xca8: 0x04b1, 0xca9: 0x0018,\n\t0xcaa: 0x0319, 0xcab: 0x0771, 0xcac: 0x02e9, 0xcad: 0x03d9, 0xcae: 0x0018, 0xcaf: 0x02f9,\n\t0xcb0: 0x02f9, 0xcb1: 0x03f1, 0xcb2: 0x0040, 0xcb3: 0x0321, 0xcb4: 0x0051, 0xcb5: 0x0779,\n\t0xcb6: 0x0781, 0xcb7: 0x0789, 0xcb8: 0x0791, 0xcb9: 0x0311, 0xcba: 0x0018, 0xcbb: 0x08e5,\n\t0xcbc: 0x0799, 0xcbd: 0x03a1, 0xcbe: 0x03a1, 0xcbf: 0x0799,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x02f1,\n\t0xcc6: 0x02f1, 0xcc7: 0x02f9, 0xcc8: 0x0311, 0xcc9: 0x00b1, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x07a1, 0xcd1: 0x07a9,\n\t0xcd2: 0x07b1, 0xcd3: 0x07b9, 0xcd4: 0x07c1, 0xcd5: 0x07c9, 0xcd6: 0x07d1, 0xcd7: 0x07d9,\n\t0xcd8: 0x07e1, 0xcd9: 0x07e9, 0xcda: 0x07f1, 0xcdb: 0x07f9, 0xcdc: 0x0801, 0xcdd: 0x0809,\n\t0xcde: 0x0811, 0xcdf: 0x0819, 0xce0: 0x0311, 0xce1: 0x0821, 0xce2: 0x091d, 0xce3: 0x0829,\n\t0xce4: 0x0391, 0xce5: 0x0831, 0xce6: 0x093d, 0xce7: 0x0839, 0xce8: 0x0841, 0xce9: 0x0109,\n\t0xcea: 0x0849, 0xceb: 0x095d, 0xcec: 0x0101, 0xced: 0x03d9, 0xcee: 0x02f1, 0xcef: 0x0321,\n\t0xcf0: 0x0311, 0xcf1: 0x0821, 0xcf2: 0x097d, 0xcf3: 0x0829, 0xcf4: 0x0391, 0xcf5: 0x0831,\n\t0xcf6: 0x099d, 0xcf7: 0x0839, 0xcf8: 0x0841, 0xcf9: 0x0109, 0xcfa: 0x0849, 0xcfb: 0x09bd,\n\t0xcfc: 0x0101, 0xcfd: 0x03d9, 0xcfe: 0x02f1, 0xcff: 0x0321,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x0049, 0xd21: 0x0029, 0xd22: 0x0031, 0xd23: 0x06e9,\n\t0xd24: 0x06f1, 0xd25: 0x06f9, 0xd26: 0x0701, 0xd27: 0x0709, 0xd28: 0x0711, 0xd29: 0x0879,\n\t0xd2a: 0x0881, 0xd2b: 0x0889, 0xd2c: 0x0891, 0xd2d: 0x0899, 0xd2e: 0x08a1, 0xd2f: 0x08a9,\n\t0xd30: 0x08b1, 0xd31: 0x08b9, 0xd32: 0x08c1, 0xd33: 0x08c9, 0xd34: 0x0a1e, 0xd35: 0x0a3e,\n\t0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe,\n\t0xd3c: 0x0b1e, 0xd3d: 0x08d2, 0xd3e: 0x08da, 0xd3f: 0x08e2,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x08ea, 0xd41: 0x08f2, 0xd42: 0x08fa, 0xd43: 0x0902, 0xd44: 0x090a, 0xd45: 0x0912,\n\t0xd46: 0x091a, 0xd47: 0x0922, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e,\n\t0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e,\n\t0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde,\n\t0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e,\n\t0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e,\n\t0xd76: 0x0019, 0xd77: 0x02e9, 0xd78: 0x03d9, 0xd79: 0x02f1, 0xd7a: 0x02f9, 0xd7b: 0x03f1,\n\t0xd7c: 0x0309, 0xd7d: 0x00a9, 0xd7e: 0x0311, 0xd7f: 0x00b1,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0319, 0xd81: 0x0101, 0xd82: 0x0321, 0xd83: 0x0329, 0xd84: 0x0051, 0xd85: 0x0339,\n\t0xd86: 0x0751, 0xd87: 0x00b9, 0xd88: 0x0089, 0xd89: 0x0341, 0xd8a: 0x0349, 0xd8b: 0x0391,\n\t0xd8c: 0x00c1, 0xd8d: 0x0109, 0xd8e: 0x00c9, 0xd8f: 0x04b1, 0xd90: 0x0019, 0xd91: 0x02e9,\n\t0xd92: 0x03d9, 0xd93: 0x02f1, 0xd94: 0x02f9, 0xd95: 0x03f1, 0xd96: 0x0309, 0xd97: 0x00a9,\n\t0xd98: 0x0311, 0xd99: 0x00b1, 0xd9a: 0x0319, 0xd9b: 0x0101, 0xd9c: 0x0321, 0xd9d: 0x0329,\n\t0xd9e: 0x0051, 0xd9f: 0x0339, 0xda0: 0x0751, 0xda1: 0x00b9, 0xda2: 0x0089, 0xda3: 0x0341,\n\t0xda4: 0x0349, 0xda5: 0x0391, 0xda6: 0x00c1, 0xda7: 0x0109, 0xda8: 0x00c9, 0xda9: 0x04b1,\n\t0xdaa: 0x06e1, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x0941, 0xde3: 0x0ed5,\n\t0xde4: 0x0949, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0359, 0xdee: 0x0441, 0xdef: 0x0351,\n\t0xdf0: 0x03d1, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x00b1, 0xdfd: 0x0391, 0xdfe: 0x0951, 0xdff: 0x0959,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5,\n\t0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875,\n\t0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935,\n\t0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x0961, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5,\n\t0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15,\n\t0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75,\n\t0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95,\n\t0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75,\n\t0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5,\n\t0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55,\n\t0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15,\n\t0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95,\n\t0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5,\n\t0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5,\n\t0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5,\n\t0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5,\n\t0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275,\n\t0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0008,\n\t0xf3c: 0x0008, 0xf3d: 0x0008, 0xf3e: 0x0008, 0xf3f: 0x0008,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x0b82, 0xf41: 0x0b8a, 0xf42: 0x0b92, 0xf43: 0x0b9a, 0xf44: 0x32d5, 0xf45: 0x32f5,\n\t0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x0ba1,\n\t0xf52: 0x0ba9, 0xf53: 0x0bb1, 0xf54: 0x0bb9, 0xf55: 0x0bc1, 0xf56: 0x0bc9, 0xf57: 0x0bd1,\n\t0xf58: 0x0bd9, 0xf59: 0x0be1, 0xf5a: 0x0be9, 0xf5b: 0x0bf1, 0xf5c: 0x0bf9, 0xf5d: 0x0c01,\n\t0xf5e: 0x0c09, 0xf5f: 0x0c11, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5,\n\t0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475,\n\t0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535,\n\t0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5,\n\t0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5,\n\t0xf7c: 0x0c19, 0xf7d: 0x0c21, 0xf7e: 0x36d5, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795,\n\t0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855,\n\t0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915,\n\t0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5,\n\t0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95,\n\t0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55,\n\t0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5,\n\t0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95,\n\t0xfb0: 0x3cb5, 0xfb1: 0x0c29, 0xfb2: 0x0c31, 0xfb3: 0x0c39, 0xfb4: 0x0c41, 0xfb5: 0x0c49,\n\t0xfb6: 0x0c51, 0xfb7: 0x0c59, 0xfb8: 0x0c61, 0xfb9: 0x0c69, 0xfba: 0x0c71, 0xfbb: 0x0c79,\n\t0xfbc: 0x0c81, 0xfbd: 0x0c89, 0xfbe: 0x0c91, 0xfbf: 0x0c99,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x0ca1, 0xfc1: 0x0ca9, 0xfc2: 0x0cb1, 0xfc3: 0x0cb9, 0xfc4: 0x0cc1, 0xfc5: 0x0cc9,\n\t0xfc6: 0x0cd1, 0xfc7: 0x0cd9, 0xfc8: 0x0ce1, 0xfc9: 0x0ce9, 0xfca: 0x0cf1, 0xfcb: 0x0cf9,\n\t0xfcc: 0x0d01, 0xfcd: 0x3cd5, 0xfce: 0x0d09, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d,\n\t0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d,\n\t0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05,\n\t0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95,\n\t0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd,\n\t0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55,\n\t0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5,\n\t0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015,\n\t0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0d11,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x10f9, 0x1001: 0x1101, 0x1002: 0x40a5, 0x1003: 0x1109, 0x1004: 0x1111, 0x1005: 0x1119,\n\t0x1006: 0x1121, 0x1007: 0x1129, 0x1008: 0x40c5, 0x1009: 0x1131, 0x100a: 0x1139, 0x100b: 0x1141,\n\t0x100c: 0x40e5, 0x100d: 0x40e5, 0x100e: 0x1149, 0x100f: 0x1151, 0x1010: 0x1159, 0x1011: 0x4105,\n\t0x1012: 0x4125, 0x1013: 0x4145, 0x1014: 0x4165, 0x1015: 0x4185, 0x1016: 0x1161, 0x1017: 0x1169,\n\t0x1018: 0x1171, 0x1019: 0x1179, 0x101a: 0x1181, 0x101b: 0x41a5, 0x101c: 0x1189, 0x101d: 0x1191,\n\t0x101e: 0x1199, 0x101f: 0x41c5, 0x1020: 0x41e5, 0x1021: 0x11a1, 0x1022: 0x4205, 0x1023: 0x4225,\n\t0x1024: 0x4245, 0x1025: 0x11a9, 0x1026: 0x4265, 0x1027: 0x11b1, 0x1028: 0x11b9, 0x1029: 0x10f9,\n\t0x102a: 0x4285, 0x102b: 0x42a5, 0x102c: 0x42c5, 0x102d: 0x42e5, 0x102e: 0x11c1, 0x102f: 0x11c9,\n\t0x1030: 0x11d1, 0x1031: 0x11d9, 0x1032: 0x4305, 0x1033: 0x11e1, 0x1034: 0x11e9, 0x1035: 0x11f1,\n\t0x1036: 0x4325, 0x1037: 0x11f9, 0x1038: 0x1201, 0x1039: 0x11f9, 0x103a: 0x1209, 0x103b: 0x1211,\n\t0x103c: 0x4345, 0x103d: 0x1219, 0x103e: 0x1221, 0x103f: 0x1219,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x4365, 0x1041: 0x4385, 0x1042: 0x0040, 0x1043: 0x1229, 0x1044: 0x1231, 0x1045: 0x1239,\n\t0x1046: 0x1241, 0x1047: 0x0040, 0x1048: 0x1249, 0x1049: 0x1251, 0x104a: 0x1259, 0x104b: 0x1261,\n\t0x104c: 0x1269, 0x104d: 0x1271, 0x104e: 0x1199, 0x104f: 0x1279, 0x1050: 0x1281, 0x1051: 0x1289,\n\t0x1052: 0x43a5, 0x1053: 0x1291, 0x1054: 0x1121, 0x1055: 0x43c5, 0x1056: 0x43e5, 0x1057: 0x1299,\n\t0x1058: 0x0040, 0x1059: 0x4405, 0x105a: 0x12a1, 0x105b: 0x12a9, 0x105c: 0x12b1, 0x105d: 0x12b9,\n\t0x105e: 0x12c1, 0x105f: 0x12c9, 0x1060: 0x12d1, 0x1061: 0x12d9, 0x1062: 0x12e1, 0x1063: 0x12e9,\n\t0x1064: 0x12f1, 0x1065: 0x12f9, 0x1066: 0x1301, 0x1067: 0x1309, 0x1068: 0x1311, 0x1069: 0x1319,\n\t0x106a: 0x1321, 0x106b: 0x1329, 0x106c: 0x1331, 0x106d: 0x1339, 0x106e: 0x1341, 0x106f: 0x1349,\n\t0x1070: 0x1351, 0x1071: 0x1359, 0x1072: 0x1361, 0x1073: 0x1369, 0x1074: 0x1371, 0x1075: 0x1379,\n\t0x1076: 0x1381, 0x1077: 0x1389, 0x1078: 0x1391, 0x1079: 0x1399, 0x107a: 0x13a1, 0x107b: 0x13a9,\n\t0x107c: 0x13b1, 0x107d: 0x13b9, 0x107e: 0x13c1, 0x107f: 0x4425,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0xe00d, 0x1081: 0x0008, 0x1082: 0xe00d, 0x1083: 0x0008, 0x1084: 0xe00d, 0x1085: 0x0008,\n\t0x1086: 0xe00d, 0x1087: 0x0008, 0x1088: 0xe00d, 0x1089: 0x0008, 0x108a: 0xe00d, 0x108b: 0x0008,\n\t0x108c: 0xe00d, 0x108d: 0x0008, 0x108e: 0xe00d, 0x108f: 0x0008, 0x1090: 0xe00d, 0x1091: 0x0008,\n\t0x1092: 0xe00d, 0x1093: 0x0008, 0x1094: 0xe00d, 0x1095: 0x0008, 0x1096: 0xe00d, 0x1097: 0x0008,\n\t0x1098: 0xe00d, 0x1099: 0x0008, 0x109a: 0xe00d, 0x109b: 0x0008, 0x109c: 0xe00d, 0x109d: 0x0008,\n\t0x109e: 0xe00d, 0x109f: 0x0008, 0x10a0: 0xe00d, 0x10a1: 0x0008, 0x10a2: 0xe00d, 0x10a3: 0x0008,\n\t0x10a4: 0xe00d, 0x10a5: 0x0008, 0x10a6: 0xe00d, 0x10a7: 0x0008, 0x10a8: 0xe00d, 0x10a9: 0x0008,\n\t0x10aa: 0xe00d, 0x10ab: 0x0008, 0x10ac: 0xe00d, 0x10ad: 0x0008, 0x10ae: 0x0008, 0x10af: 0x3308,\n\t0x10b0: 0x3318, 0x10b1: 0x3318, 0x10b2: 0x3318, 0x10b3: 0x0018, 0x10b4: 0x3308, 0x10b5: 0x3308,\n\t0x10b6: 0x3308, 0x10b7: 0x3308, 0x10b8: 0x3308, 0x10b9: 0x3308, 0x10ba: 0x3308, 0x10bb: 0x3308,\n\t0x10bc: 0x3308, 0x10bd: 0x3308, 0x10be: 0x0018, 0x10bf: 0x0008,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0x02d1, 0x10dd: 0x13c9,\n\t0x10de: 0x3308, 0x10df: 0x3308, 0x10e0: 0x0008, 0x10e1: 0x0008, 0x10e2: 0x0008, 0x10e3: 0x0008,\n\t0x10e4: 0x0008, 0x10e5: 0x0008, 0x10e6: 0x0008, 0x10e7: 0x0008, 0x10e8: 0x0008, 0x10e9: 0x0008,\n\t0x10ea: 0x0008, 0x10eb: 0x0008, 0x10ec: 0x0008, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x0008,\n\t0x10f0: 0x0008, 0x10f1: 0x0008, 0x10f2: 0x0008, 0x10f3: 0x0008, 0x10f4: 0x0008, 0x10f5: 0x0008,\n\t0x10f6: 0x0008, 0x10f7: 0x0008, 0x10f8: 0x0008, 0x10f9: 0x0008, 0x10fa: 0x0008, 0x10fb: 0x0008,\n\t0x10fc: 0x0008, 0x10fd: 0x0008, 0x10fe: 0x0008, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x0018, 0x1101: 0x0018, 0x1102: 0x0018, 0x1103: 0x0018, 0x1104: 0x0018, 0x1105: 0x0018,\n\t0x1106: 0x0018, 0x1107: 0x0018, 0x1108: 0x0018, 0x1109: 0x0018, 0x110a: 0x0018, 0x110b: 0x0018,\n\t0x110c: 0x0018, 0x110d: 0x0018, 0x110e: 0x0018, 0x110f: 0x0018, 0x1110: 0x0018, 0x1111: 0x0018,\n\t0x1112: 0x0018, 0x1113: 0x0018, 0x1114: 0x0018, 0x1115: 0x0018, 0x1116: 0x0018, 0x1117: 0x0008,\n\t0x1118: 0x0008, 0x1119: 0x0008, 0x111a: 0x0008, 0x111b: 0x0008, 0x111c: 0x0008, 0x111d: 0x0008,\n\t0x111e: 0x0008, 0x111f: 0x0008, 0x1120: 0x0018, 0x1121: 0x0018, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0xe00d, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0xe00d, 0x1133: 0x0008, 0x1134: 0xe00d, 0x1135: 0x0008,\n\t0x1136: 0xe00d, 0x1137: 0x0008, 0x1138: 0xe00d, 0x1139: 0x0008, 0x113a: 0xe00d, 0x113b: 0x0008,\n\t0x113c: 0xe00d, 0x113d: 0x0008, 0x113e: 0xe00d, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0xe00d, 0x115d: 0x0008,\n\t0x115e: 0xe00d, 0x115f: 0x0008, 0x1160: 0xe00d, 0x1161: 0x0008, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0xe0fd, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0xe01d, 0x117a: 0x0008, 0x117b: 0xe03d,\n\t0x117c: 0x0008, 0x117d: 0x4445, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0x0008, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0xe03d,\n\t0x118c: 0x0008, 0x118d: 0x0409, 0x118e: 0x0008, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0x0008, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0x13d1, 0x11ab: 0x0371, 0x11ac: 0x0401, 0x11ad: 0x13d9, 0x11ae: 0x0421, 0x11af: 0x0008,\n\t0x11b0: 0x13e1, 0x11b1: 0x13e9, 0x11b2: 0x0429, 0x11b3: 0x4465, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x650d, 0x11c1: 0x652d, 0x11c2: 0x654d, 0x11c3: 0x656d, 0x11c4: 0x658d, 0x11c5: 0x65ad,\n\t0x11c6: 0x65cd, 0x11c7: 0x65ed, 0x11c8: 0x660d, 0x11c9: 0x662d, 0x11ca: 0x664d, 0x11cb: 0x666d,\n\t0x11cc: 0x668d, 0x11cd: 0x66ad, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0x66cd, 0x11d1: 0x0008,\n\t0x11d2: 0x66ed, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x670d, 0x11d6: 0x672d, 0x11d7: 0x674d,\n\t0x11d8: 0x676d, 0x11d9: 0x678d, 0x11da: 0x67ad, 0x11db: 0x67cd, 0x11dc: 0x67ed, 0x11dd: 0x680d,\n\t0x11de: 0x682d, 0x11df: 0x0008, 0x11e0: 0x684d, 0x11e1: 0x0008, 0x11e2: 0x686d, 0x11e3: 0x0008,\n\t0x11e4: 0x0008, 0x11e5: 0x688d, 0x11e6: 0x68ad, 0x11e7: 0x0008, 0x11e8: 0x0008, 0x11e9: 0x0008,\n\t0x11ea: 0x68cd, 0x11eb: 0x68ed, 0x11ec: 0x690d, 0x11ed: 0x692d, 0x11ee: 0x694d, 0x11ef: 0x696d,\n\t0x11f0: 0x698d, 0x11f1: 0x69ad, 0x11f2: 0x69cd, 0x11f3: 0x69ed, 0x11f4: 0x6a0d, 0x11f5: 0x6a2d,\n\t0x11f6: 0x6a4d, 0x11f7: 0x6a6d, 0x11f8: 0x6a8d, 0x11f9: 0x6aad, 0x11fa: 0x6acd, 0x11fb: 0x6aed,\n\t0x11fc: 0x6b0d, 0x11fd: 0x6b2d, 0x11fe: 0x6b4d, 0x11ff: 0x6b6d,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x7acd, 0x1201: 0x7aed, 0x1202: 0x7b0d, 0x1203: 0x7b2d, 0x1204: 0x7b4d, 0x1205: 0x7b6d,\n\t0x1206: 0x7b8d, 0x1207: 0x7bad, 0x1208: 0x7bcd, 0x1209: 0x7bed, 0x120a: 0x7c0d, 0x120b: 0x7c2d,\n\t0x120c: 0x7c4d, 0x120d: 0x7c6d, 0x120e: 0x7c8d, 0x120f: 0x1409, 0x1210: 0x1411, 0x1211: 0x1419,\n\t0x1212: 0x7cad, 0x1213: 0x7ccd, 0x1214: 0x7ced, 0x1215: 0x1421, 0x1216: 0x1429, 0x1217: 0x1431,\n\t0x1218: 0x7d0d, 0x1219: 0x7d2d, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040,\n\t0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040,\n\t0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040,\n\t0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040,\n\t0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x0040, 0x1233: 0x0040, 0x1234: 0x0040, 0x1235: 0x0040,\n\t0x1236: 0x0040, 0x1237: 0x0040, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x1439, 0x1241: 0x1441, 0x1242: 0x1449, 0x1243: 0x7d4d, 0x1244: 0x7d6d, 0x1245: 0x1451,\n\t0x1246: 0x1451, 0x1247: 0x0040, 0x1248: 0x0040, 0x1249: 0x0040, 0x124a: 0x0040, 0x124b: 0x0040,\n\t0x124c: 0x0040, 0x124d: 0x0040, 0x124e: 0x0040, 0x124f: 0x0040, 0x1250: 0x0040, 0x1251: 0x0040,\n\t0x1252: 0x0040, 0x1253: 0x1459, 0x1254: 0x1461, 0x1255: 0x1469, 0x1256: 0x1471, 0x1257: 0x1479,\n\t0x1258: 0x0040, 0x1259: 0x0040, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x1481,\n\t0x125e: 0x3308, 0x125f: 0x1489, 0x1260: 0x1491, 0x1261: 0x0779, 0x1262: 0x0791, 0x1263: 0x1499,\n\t0x1264: 0x14a1, 0x1265: 0x14a9, 0x1266: 0x14b1, 0x1267: 0x14b9, 0x1268: 0x14c1, 0x1269: 0x071a,\n\t0x126a: 0x14c9, 0x126b: 0x14d1, 0x126c: 0x14d9, 0x126d: 0x14e1, 0x126e: 0x14e9, 0x126f: 0x14f1,\n\t0x1270: 0x14f9, 0x1271: 0x1501, 0x1272: 0x1509, 0x1273: 0x1511, 0x1274: 0x1519, 0x1275: 0x1521,\n\t0x1276: 0x1529, 0x1277: 0x0040, 0x1278: 0x1531, 0x1279: 0x1539, 0x127a: 0x1541, 0x127b: 0x1549,\n\t0x127c: 0x1551, 0x127d: 0x0040, 0x127e: 0x1559, 0x127f: 0x0040,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x1561, 0x1281: 0x1569, 0x1282: 0x0040, 0x1283: 0x1571, 0x1284: 0x1579, 0x1285: 0x0040,\n\t0x1286: 0x1581, 0x1287: 0x1589, 0x1288: 0x1591, 0x1289: 0x1599, 0x128a: 0x15a1, 0x128b: 0x15a9,\n\t0x128c: 0x15b1, 0x128d: 0x15b9, 0x128e: 0x15c1, 0x128f: 0x15c9, 0x1290: 0x15d1, 0x1291: 0x15d1,\n\t0x1292: 0x15d9, 0x1293: 0x15d9, 0x1294: 0x15d9, 0x1295: 0x15d9, 0x1296: 0x15e1, 0x1297: 0x15e1,\n\t0x1298: 0x15e1, 0x1299: 0x15e1, 0x129a: 0x15e9, 0x129b: 0x15e9, 0x129c: 0x15e9, 0x129d: 0x15e9,\n\t0x129e: 0x15f1, 0x129f: 0x15f1, 0x12a0: 0x15f1, 0x12a1: 0x15f1, 0x12a2: 0x15f9, 0x12a3: 0x15f9,\n\t0x12a4: 0x15f9, 0x12a5: 0x15f9, 0x12a6: 0x1601, 0x12a7: 0x1601, 0x12a8: 0x1601, 0x12a9: 0x1601,\n\t0x12aa: 0x1609, 0x12ab: 0x1609, 0x12ac: 0x1609, 0x12ad: 0x1609, 0x12ae: 0x1611, 0x12af: 0x1611,\n\t0x12b0: 0x1611, 0x12b1: 0x1611, 0x12b2: 0x1619, 0x12b3: 0x1619, 0x12b4: 0x1619, 0x12b5: 0x1619,\n\t0x12b6: 0x1621, 0x12b7: 0x1621, 0x12b8: 0x1621, 0x12b9: 0x1621, 0x12ba: 0x1629, 0x12bb: 0x1629,\n\t0x12bc: 0x1629, 0x12bd: 0x1629, 0x12be: 0x1631, 0x12bf: 0x1631,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x1631, 0x12c1: 0x1631, 0x12c2: 0x1639, 0x12c3: 0x1639, 0x12c4: 0x1641, 0x12c5: 0x1641,\n\t0x12c6: 0x1649, 0x12c7: 0x1649, 0x12c8: 0x1651, 0x12c9: 0x1651, 0x12ca: 0x1659, 0x12cb: 0x1659,\n\t0x12cc: 0x1661, 0x12cd: 0x1661, 0x12ce: 0x1669, 0x12cf: 0x1669, 0x12d0: 0x1669, 0x12d1: 0x1669,\n\t0x12d2: 0x1671, 0x12d3: 0x1671, 0x12d4: 0x1671, 0x12d5: 0x1671, 0x12d6: 0x1679, 0x12d7: 0x1679,\n\t0x12d8: 0x1679, 0x12d9: 0x1679, 0x12da: 0x1681, 0x12db: 0x1681, 0x12dc: 0x1681, 0x12dd: 0x1681,\n\t0x12de: 0x1689, 0x12df: 0x1689, 0x12e0: 0x1691, 0x12e1: 0x1691, 0x12e2: 0x1691, 0x12e3: 0x1691,\n\t0x12e4: 0x1699, 0x12e5: 0x1699, 0x12e6: 0x16a1, 0x12e7: 0x16a1, 0x12e8: 0x16a1, 0x12e9: 0x16a1,\n\t0x12ea: 0x16a9, 0x12eb: 0x16a9, 0x12ec: 0x16a9, 0x12ed: 0x16a9, 0x12ee: 0x16b1, 0x12ef: 0x16b1,\n\t0x12f0: 0x16b9, 0x12f1: 0x16b9, 0x12f2: 0x0818, 0x12f3: 0x0818, 0x12f4: 0x0818, 0x12f5: 0x0818,\n\t0x12f6: 0x0818, 0x12f7: 0x0818, 0x12f8: 0x0818, 0x12f9: 0x0818, 0x12fa: 0x0818, 0x12fb: 0x0818,\n\t0x12fc: 0x0818, 0x12fd: 0x0818, 0x12fe: 0x0818, 0x12ff: 0x0818,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0818, 0x1301: 0x0818, 0x1302: 0x0040, 0x1303: 0x0040, 0x1304: 0x0040, 0x1305: 0x0040,\n\t0x1306: 0x0040, 0x1307: 0x0040, 0x1308: 0x0040, 0x1309: 0x0040, 0x130a: 0x0040, 0x130b: 0x0040,\n\t0x130c: 0x0040, 0x130d: 0x0040, 0x130e: 0x0040, 0x130f: 0x0040, 0x1310: 0x0040, 0x1311: 0x0040,\n\t0x1312: 0x0040, 0x1313: 0x16c1, 0x1314: 0x16c1, 0x1315: 0x16c1, 0x1316: 0x16c1, 0x1317: 0x16c9,\n\t0x1318: 0x16c9, 0x1319: 0x16d1, 0x131a: 0x16d1, 0x131b: 0x16d9, 0x131c: 0x16d9, 0x131d: 0x0149,\n\t0x131e: 0x16e1, 0x131f: 0x16e1, 0x1320: 0x16e9, 0x1321: 0x16e9, 0x1322: 0x16f1, 0x1323: 0x16f1,\n\t0x1324: 0x16f9, 0x1325: 0x16f9, 0x1326: 0x16f9, 0x1327: 0x16f9, 0x1328: 0x1701, 0x1329: 0x1701,\n\t0x132a: 0x1709, 0x132b: 0x1709, 0x132c: 0x1711, 0x132d: 0x1711, 0x132e: 0x1719, 0x132f: 0x1719,\n\t0x1330: 0x1721, 0x1331: 0x1721, 0x1332: 0x1729, 0x1333: 0x1729, 0x1334: 0x1731, 0x1335: 0x1731,\n\t0x1336: 0x1739, 0x1337: 0x1739, 0x1338: 0x1739, 0x1339: 0x1741, 0x133a: 0x1741, 0x133b: 0x1741,\n\t0x133c: 0x1749, 0x133d: 0x1749, 0x133e: 0x1749, 0x133f: 0x1749,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x1949, 0x1341: 0x1951, 0x1342: 0x1959, 0x1343: 0x1961, 0x1344: 0x1969, 0x1345: 0x1971,\n\t0x1346: 0x1979, 0x1347: 0x1981, 0x1348: 0x1989, 0x1349: 0x1991, 0x134a: 0x1999, 0x134b: 0x19a1,\n\t0x134c: 0x19a9, 0x134d: 0x19b1, 0x134e: 0x19b9, 0x134f: 0x19c1, 0x1350: 0x19c9, 0x1351: 0x19d1,\n\t0x1352: 0x19d9, 0x1353: 0x19e1, 0x1354: 0x19e9, 0x1355: 0x19f1, 0x1356: 0x19f9, 0x1357: 0x1a01,\n\t0x1358: 0x1a09, 0x1359: 0x1a11, 0x135a: 0x1a19, 0x135b: 0x1a21, 0x135c: 0x1a29, 0x135d: 0x1a31,\n\t0x135e: 0x1a3a, 0x135f: 0x1a42, 0x1360: 0x1a4a, 0x1361: 0x1a52, 0x1362: 0x1a5a, 0x1363: 0x1a62,\n\t0x1364: 0x1a69, 0x1365: 0x1a71, 0x1366: 0x1761, 0x1367: 0x1a79, 0x1368: 0x1741, 0x1369: 0x1769,\n\t0x136a: 0x1a81, 0x136b: 0x1a89, 0x136c: 0x1789, 0x136d: 0x1a91, 0x136e: 0x1791, 0x136f: 0x1799,\n\t0x1370: 0x1a99, 0x1371: 0x1aa1, 0x1372: 0x17b9, 0x1373: 0x1aa9, 0x1374: 0x17c1, 0x1375: 0x17c9,\n\t0x1376: 0x1ab1, 0x1377: 0x1ab9, 0x1378: 0x17d9, 0x1379: 0x1ac1, 0x137a: 0x17e1, 0x137b: 0x17e9,\n\t0x137c: 0x18d1, 0x137d: 0x18d9, 0x137e: 0x18f1, 0x137f: 0x18f9,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x1901, 0x1381: 0x1921, 0x1382: 0x1929, 0x1383: 0x1931, 0x1384: 0x1939, 0x1385: 0x1959,\n\t0x1386: 0x1961, 0x1387: 0x1969, 0x1388: 0x1ac9, 0x1389: 0x1989, 0x138a: 0x1ad1, 0x138b: 0x1ad9,\n\t0x138c: 0x19b9, 0x138d: 0x1ae1, 0x138e: 0x19c1, 0x138f: 0x19c9, 0x1390: 0x1a31, 0x1391: 0x1ae9,\n\t0x1392: 0x1af1, 0x1393: 0x1a09, 0x1394: 0x1af9, 0x1395: 0x1a11, 0x1396: 0x1a19, 0x1397: 0x1751,\n\t0x1398: 0x1759, 0x1399: 0x1b01, 0x139a: 0x1761, 0x139b: 0x1b09, 0x139c: 0x1771, 0x139d: 0x1779,\n\t0x139e: 0x1781, 0x139f: 0x1789, 0x13a0: 0x1b11, 0x13a1: 0x17a1, 0x13a2: 0x17a9, 0x13a3: 0x17b1,\n\t0x13a4: 0x17b9, 0x13a5: 0x1b19, 0x13a6: 0x17d9, 0x13a7: 0x17f1, 0x13a8: 0x17f9, 0x13a9: 0x1801,\n\t0x13aa: 0x1809, 0x13ab: 0x1811, 0x13ac: 0x1821, 0x13ad: 0x1829, 0x13ae: 0x1831, 0x13af: 0x1839,\n\t0x13b0: 0x1841, 0x13b1: 0x1849, 0x13b2: 0x1b21, 0x13b3: 0x1851, 0x13b4: 0x1859, 0x13b5: 0x1861,\n\t0x13b6: 0x1869, 0x13b7: 0x1871, 0x13b8: 0x1879, 0x13b9: 0x1889, 0x13ba: 0x1891, 0x13bb: 0x1899,\n\t0x13bc: 0x18a1, 0x13bd: 0x18a9, 0x13be: 0x18b1, 0x13bf: 0x18b9,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x18c1, 0x13c1: 0x18c9, 0x13c2: 0x18e1, 0x13c3: 0x18e9, 0x13c4: 0x1909, 0x13c5: 0x1911,\n\t0x13c6: 0x1919, 0x13c7: 0x1921, 0x13c8: 0x1929, 0x13c9: 0x1941, 0x13ca: 0x1949, 0x13cb: 0x1951,\n\t0x13cc: 0x1959, 0x13cd: 0x1b29, 0x13ce: 0x1971, 0x13cf: 0x1979, 0x13d0: 0x1981, 0x13d1: 0x1989,\n\t0x13d2: 0x19a1, 0x13d3: 0x19a9, 0x13d4: 0x19b1, 0x13d5: 0x19b9, 0x13d6: 0x1b31, 0x13d7: 0x19d1,\n\t0x13d8: 0x19d9, 0x13d9: 0x1b39, 0x13da: 0x19f1, 0x13db: 0x19f9, 0x13dc: 0x1a01, 0x13dd: 0x1a09,\n\t0x13de: 0x1b41, 0x13df: 0x1761, 0x13e0: 0x1b09, 0x13e1: 0x1789, 0x13e2: 0x1b11, 0x13e3: 0x17b9,\n\t0x13e4: 0x1b19, 0x13e5: 0x17d9, 0x13e6: 0x1b49, 0x13e7: 0x1841, 0x13e8: 0x1b51, 0x13e9: 0x1b59,\n\t0x13ea: 0x1b61, 0x13eb: 0x1921, 0x13ec: 0x1929, 0x13ed: 0x1959, 0x13ee: 0x19b9, 0x13ef: 0x1b31,\n\t0x13f0: 0x1a09, 0x13f1: 0x1b41, 0x13f2: 0x1b69, 0x13f3: 0x1b71, 0x13f4: 0x1b79, 0x13f5: 0x1b81,\n\t0x13f6: 0x1b89, 0x13f7: 0x1b91, 0x13f8: 0x1b99, 0x13f9: 0x1ba1, 0x13fa: 0x1ba9, 0x13fb: 0x1bb1,\n\t0x13fc: 0x1bb9, 0x13fd: 0x1bc1, 0x13fe: 0x1bc9, 0x13ff: 0x1bd1,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x1bd9, 0x1401: 0x1be1, 0x1402: 0x1be9, 0x1403: 0x1bf1, 0x1404: 0x1bf9, 0x1405: 0x1c01,\n\t0x1406: 0x1c09, 0x1407: 0x1c11, 0x1408: 0x1c19, 0x1409: 0x1c21, 0x140a: 0x1c29, 0x140b: 0x1c31,\n\t0x140c: 0x1b59, 0x140d: 0x1c39, 0x140e: 0x1c41, 0x140f: 0x1c49, 0x1410: 0x1c51, 0x1411: 0x1b81,\n\t0x1412: 0x1b89, 0x1413: 0x1b91, 0x1414: 0x1b99, 0x1415: 0x1ba1, 0x1416: 0x1ba9, 0x1417: 0x1bb1,\n\t0x1418: 0x1bb9, 0x1419: 0x1bc1, 0x141a: 0x1bc9, 0x141b: 0x1bd1, 0x141c: 0x1bd9, 0x141d: 0x1be1,\n\t0x141e: 0x1be9, 0x141f: 0x1bf1, 0x1420: 0x1bf9, 0x1421: 0x1c01, 0x1422: 0x1c09, 0x1423: 0x1c11,\n\t0x1424: 0x1c19, 0x1425: 0x1c21, 0x1426: 0x1c29, 0x1427: 0x1c31, 0x1428: 0x1b59, 0x1429: 0x1c39,\n\t0x142a: 0x1c41, 0x142b: 0x1c49, 0x142c: 0x1c51, 0x142d: 0x1c21, 0x142e: 0x1c29, 0x142f: 0x1c31,\n\t0x1430: 0x1b59, 0x1431: 0x1b51, 0x1432: 0x1b61, 0x1433: 0x1881, 0x1434: 0x1829, 0x1435: 0x1831,\n\t0x1436: 0x1839, 0x1437: 0x1c21, 0x1438: 0x1c29, 0x1439: 0x1c31, 0x143a: 0x1881, 0x143b: 0x1889,\n\t0x143c: 0x1c59, 0x143d: 0x1c59, 0x143e: 0x0018, 0x143f: 0x0018,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0040, 0x1441: 0x0040, 0x1442: 0x0040, 0x1443: 0x0040, 0x1444: 0x0040, 0x1445: 0x0040,\n\t0x1446: 0x0040, 0x1447: 0x0040, 0x1448: 0x0040, 0x1449: 0x0040, 0x144a: 0x0040, 0x144b: 0x0040,\n\t0x144c: 0x0040, 0x144d: 0x0040, 0x144e: 0x0040, 0x144f: 0x0040, 0x1450: 0x1c61, 0x1451: 0x1c69,\n\t0x1452: 0x1c69, 0x1453: 0x1c71, 0x1454: 0x1c79, 0x1455: 0x1c81, 0x1456: 0x1c89, 0x1457: 0x1c91,\n\t0x1458: 0x1c99, 0x1459: 0x1c99, 0x145a: 0x1ca1, 0x145b: 0x1ca9, 0x145c: 0x1cb1, 0x145d: 0x1cb9,\n\t0x145e: 0x1cc1, 0x145f: 0x1cc9, 0x1460: 0x1cc9, 0x1461: 0x1cd1, 0x1462: 0x1cd9, 0x1463: 0x1cd9,\n\t0x1464: 0x1ce1, 0x1465: 0x1ce1, 0x1466: 0x1ce9, 0x1467: 0x1cf1, 0x1468: 0x1cf1, 0x1469: 0x1cf9,\n\t0x146a: 0x1d01, 0x146b: 0x1d01, 0x146c: 0x1d09, 0x146d: 0x1d09, 0x146e: 0x1d11, 0x146f: 0x1d19,\n\t0x1470: 0x1d19, 0x1471: 0x1d21, 0x1472: 0x1d21, 0x1473: 0x1d29, 0x1474: 0x1d31, 0x1475: 0x1d39,\n\t0x1476: 0x1d41, 0x1477: 0x1d41, 0x1478: 0x1d49, 0x1479: 0x1d51, 0x147a: 0x1d59, 0x147b: 0x1d61,\n\t0x147c: 0x1d69, 0x147d: 0x1d69, 0x147e: 0x1d71, 0x147f: 0x1d79,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1f29, 0x1481: 0x1f31, 0x1482: 0x1f39, 0x1483: 0x1f11, 0x1484: 0x1d39, 0x1485: 0x1ce9,\n\t0x1486: 0x1f41, 0x1487: 0x1f49, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,\n\t0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x0040, 0x1491: 0x0040,\n\t0x1492: 0x0040, 0x1493: 0x0040, 0x1494: 0x0040, 0x1495: 0x0040, 0x1496: 0x0040, 0x1497: 0x0040,\n\t0x1498: 0x0040, 0x1499: 0x0040, 0x149a: 0x0040, 0x149b: 0x0040, 0x149c: 0x0040, 0x149d: 0x0040,\n\t0x149e: 0x0040, 0x149f: 0x0040, 0x14a0: 0x0040, 0x14a1: 0x0040, 0x14a2: 0x0040, 0x14a3: 0x0040,\n\t0x14a4: 0x0040, 0x14a5: 0x0040, 0x14a6: 0x0040, 0x14a7: 0x0040, 0x14a8: 0x0040, 0x14a9: 0x0040,\n\t0x14aa: 0x0040, 0x14ab: 0x0040, 0x14ac: 0x0040, 0x14ad: 0x0040, 0x14ae: 0x0040, 0x14af: 0x0040,\n\t0x14b0: 0x1f51, 0x14b1: 0x1f59, 0x14b2: 0x1f61, 0x14b3: 0x1f69, 0x14b4: 0x1f71, 0x14b5: 0x1f79,\n\t0x14b6: 0x1f81, 0x14b7: 0x1f89, 0x14b8: 0x1f91, 0x14b9: 0x1f99, 0x14ba: 0x1fa2, 0x14bb: 0x1faa,\n\t0x14bc: 0x1fb1, 0x14bd: 0x0018, 0x14be: 0x0040, 0x14bf: 0x0040,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x33c0, 0x14c1: 0x33c0, 0x14c2: 0x33c0, 0x14c3: 0x33c0, 0x14c4: 0x33c0, 0x14c5: 0x33c0,\n\t0x14c6: 0x33c0, 0x14c7: 0x33c0, 0x14c8: 0x33c0, 0x14c9: 0x33c0, 0x14ca: 0x33c0, 0x14cb: 0x33c0,\n\t0x14cc: 0x33c0, 0x14cd: 0x33c0, 0x14ce: 0x33c0, 0x14cf: 0x33c0, 0x14d0: 0x1fba, 0x14d1: 0x7d8d,\n\t0x14d2: 0x0040, 0x14d3: 0x1fc2, 0x14d4: 0x0122, 0x14d5: 0x1fca, 0x14d6: 0x1fd2, 0x14d7: 0x7dad,\n\t0x14d8: 0x7dcd, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,\n\t0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x3308, 0x14e1: 0x3308, 0x14e2: 0x3308, 0x14e3: 0x3308,\n\t0x14e4: 0x3308, 0x14e5: 0x3308, 0x14e6: 0x3308, 0x14e7: 0x3308, 0x14e8: 0x3308, 0x14e9: 0x3308,\n\t0x14ea: 0x3308, 0x14eb: 0x3308, 0x14ec: 0x3308, 0x14ed: 0x3308, 0x14ee: 0x3308, 0x14ef: 0x3308,\n\t0x14f0: 0x0040, 0x14f1: 0x7ded, 0x14f2: 0x7e0d, 0x14f3: 0x1fda, 0x14f4: 0x1fda, 0x14f5: 0x072a,\n\t0x14f6: 0x0732, 0x14f7: 0x1fe2, 0x14f8: 0x1fea, 0x14f9: 0x7e2d, 0x14fa: 0x7e4d, 0x14fb: 0x7e6d,\n\t0x14fc: 0x7e2d, 0x14fd: 0x7e8d, 0x14fe: 0x7ead, 0x14ff: 0x7e8d,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x7ecd, 0x1501: 0x7eed, 0x1502: 0x7f0d, 0x1503: 0x7eed, 0x1504: 0x7f2d, 0x1505: 0x0018,\n\t0x1506: 0x0018, 0x1507: 0x1ff2, 0x1508: 0x1ffa, 0x1509: 0x7f4e, 0x150a: 0x7f6e, 0x150b: 0x7f8e,\n\t0x150c: 0x7fae, 0x150d: 0x1fda, 0x150e: 0x1fda, 0x150f: 0x1fda, 0x1510: 0x1fba, 0x1511: 0x7fcd,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0122, 0x1515: 0x1fc2, 0x1516: 0x1fd2, 0x1517: 0x1fca,\n\t0x1518: 0x7fed, 0x1519: 0x072a, 0x151a: 0x0732, 0x151b: 0x1fe2, 0x151c: 0x1fea, 0x151d: 0x7ecd,\n\t0x151e: 0x7f2d, 0x151f: 0x2002, 0x1520: 0x200a, 0x1521: 0x2012, 0x1522: 0x071a, 0x1523: 0x2019,\n\t0x1524: 0x2022, 0x1525: 0x202a, 0x1526: 0x0722, 0x1527: 0x0040, 0x1528: 0x2032, 0x1529: 0x203a,\n\t0x152a: 0x2042, 0x152b: 0x204a, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0x800e, 0x1531: 0x2051, 0x1532: 0x802e, 0x1533: 0x0808, 0x1534: 0x804e, 0x1535: 0x0040,\n\t0x1536: 0x806e, 0x1537: 0x2059, 0x1538: 0x808e, 0x1539: 0x2061, 0x153a: 0x80ae, 0x153b: 0x2069,\n\t0x153c: 0x80ce, 0x153d: 0x2071, 0x153e: 0x80ee, 0x153f: 0x2079,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x2081, 0x1541: 0x2089, 0x1542: 0x2089, 0x1543: 0x2091, 0x1544: 0x2091, 0x1545: 0x2099,\n\t0x1546: 0x2099, 0x1547: 0x20a1, 0x1548: 0x20a1, 0x1549: 0x20a9, 0x154a: 0x20a9, 0x154b: 0x20a9,\n\t0x154c: 0x20a9, 0x154d: 0x20b1, 0x154e: 0x20b1, 0x154f: 0x20b9, 0x1550: 0x20b9, 0x1551: 0x20b9,\n\t0x1552: 0x20b9, 0x1553: 0x20c1, 0x1554: 0x20c1, 0x1555: 0x20c9, 0x1556: 0x20c9, 0x1557: 0x20c9,\n\t0x1558: 0x20c9, 0x1559: 0x20d1, 0x155a: 0x20d1, 0x155b: 0x20d1, 0x155c: 0x20d1, 0x155d: 0x20d9,\n\t0x155e: 0x20d9, 0x155f: 0x20d9, 0x1560: 0x20d9, 0x1561: 0x20e1, 0x1562: 0x20e1, 0x1563: 0x20e1,\n\t0x1564: 0x20e1, 0x1565: 0x20e9, 0x1566: 0x20e9, 0x1567: 0x20e9, 0x1568: 0x20e9, 0x1569: 0x20f1,\n\t0x156a: 0x20f1, 0x156b: 0x20f9, 0x156c: 0x20f9, 0x156d: 0x2101, 0x156e: 0x2101, 0x156f: 0x2109,\n\t0x1570: 0x2109, 0x1571: 0x2111, 0x1572: 0x2111, 0x1573: 0x2111, 0x1574: 0x2111, 0x1575: 0x2119,\n\t0x1576: 0x2119, 0x1577: 0x2119, 0x1578: 0x2119, 0x1579: 0x2121, 0x157a: 0x2121, 0x157b: 0x2121,\n\t0x157c: 0x2121, 0x157d: 0x2129, 0x157e: 0x2129, 0x157f: 0x2129,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x2129, 0x1581: 0x2131, 0x1582: 0x2131, 0x1583: 0x2131, 0x1584: 0x2131, 0x1585: 0x2139,\n\t0x1586: 0x2139, 0x1587: 0x2139, 0x1588: 0x2139, 0x1589: 0x2141, 0x158a: 0x2141, 0x158b: 0x2141,\n\t0x158c: 0x2141, 0x158d: 0x2149, 0x158e: 0x2149, 0x158f: 0x2149, 0x1590: 0x2149, 0x1591: 0x2151,\n\t0x1592: 0x2151, 0x1593: 0x2151, 0x1594: 0x2151, 0x1595: 0x2159, 0x1596: 0x2159, 0x1597: 0x2159,\n\t0x1598: 0x2159, 0x1599: 0x2161, 0x159a: 0x2161, 0x159b: 0x2161, 0x159c: 0x2161, 0x159d: 0x2169,\n\t0x159e: 0x2169, 0x159f: 0x2169, 0x15a0: 0x2169, 0x15a1: 0x2171, 0x15a2: 0x2171, 0x15a3: 0x2171,\n\t0x15a4: 0x2171, 0x15a5: 0x2179, 0x15a6: 0x2179, 0x15a7: 0x2179, 0x15a8: 0x2179, 0x15a9: 0x2181,\n\t0x15aa: 0x2181, 0x15ab: 0x2181, 0x15ac: 0x2181, 0x15ad: 0x2189, 0x15ae: 0x2189, 0x15af: 0x1701,\n\t0x15b0: 0x1701, 0x15b1: 0x2191, 0x15b2: 0x2191, 0x15b3: 0x2191, 0x15b4: 0x2191, 0x15b5: 0x2199,\n\t0x15b6: 0x2199, 0x15b7: 0x21a1, 0x15b8: 0x21a1, 0x15b9: 0x21a9, 0x15ba: 0x21a9, 0x15bb: 0x21b1,\n\t0x15bc: 0x21b1, 0x15bd: 0x0040, 0x15be: 0x0040, 0x15bf: 0x03c0,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0040, 0x15c1: 0x1fca, 0x15c2: 0x21ba, 0x15c3: 0x2002, 0x15c4: 0x203a, 0x15c5: 0x2042,\n\t0x15c6: 0x200a, 0x15c7: 0x21c2, 0x15c8: 0x072a, 0x15c9: 0x0732, 0x15ca: 0x2012, 0x15cb: 0x071a,\n\t0x15cc: 0x1fba, 0x15cd: 0x2019, 0x15ce: 0x0961, 0x15cf: 0x21ca, 0x15d0: 0x06e1, 0x15d1: 0x0049,\n\t0x15d2: 0x0029, 0x15d3: 0x0031, 0x15d4: 0x06e9, 0x15d5: 0x06f1, 0x15d6: 0x06f9, 0x15d7: 0x0701,\n\t0x15d8: 0x0709, 0x15d9: 0x0711, 0x15da: 0x1fc2, 0x15db: 0x0122, 0x15dc: 0x2022, 0x15dd: 0x0722,\n\t0x15de: 0x202a, 0x15df: 0x1fd2, 0x15e0: 0x204a, 0x15e1: 0x0019, 0x15e2: 0x02e9, 0x15e3: 0x03d9,\n\t0x15e4: 0x02f1, 0x15e5: 0x02f9, 0x15e6: 0x03f1, 0x15e7: 0x0309, 0x15e8: 0x00a9, 0x15e9: 0x0311,\n\t0x15ea: 0x00b1, 0x15eb: 0x0319, 0x15ec: 0x0101, 0x15ed: 0x0321, 0x15ee: 0x0329, 0x15ef: 0x0051,\n\t0x15f0: 0x0339, 0x15f1: 0x0751, 0x15f2: 0x00b9, 0x15f3: 0x0089, 0x15f4: 0x0341, 0x15f5: 0x0349,\n\t0x15f6: 0x0391, 0x15f7: 0x00c1, 0x15f8: 0x0109, 0x15f9: 0x00c9, 0x15fa: 0x04b1, 0x15fb: 0x1ff2,\n\t0x15fc: 0x2032, 0x15fd: 0x1ffa, 0x15fe: 0x21d2, 0x15ff: 0x1fda,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0672, 0x1601: 0x0019, 0x1602: 0x02e9, 0x1603: 0x03d9, 0x1604: 0x02f1, 0x1605: 0x02f9,\n\t0x1606: 0x03f1, 0x1607: 0x0309, 0x1608: 0x00a9, 0x1609: 0x0311, 0x160a: 0x00b1, 0x160b: 0x0319,\n\t0x160c: 0x0101, 0x160d: 0x0321, 0x160e: 0x0329, 0x160f: 0x0051, 0x1610: 0x0339, 0x1611: 0x0751,\n\t0x1612: 0x00b9, 0x1613: 0x0089, 0x1614: 0x0341, 0x1615: 0x0349, 0x1616: 0x0391, 0x1617: 0x00c1,\n\t0x1618: 0x0109, 0x1619: 0x00c9, 0x161a: 0x04b1, 0x161b: 0x1fe2, 0x161c: 0x21da, 0x161d: 0x1fea,\n\t0x161e: 0x21e2, 0x161f: 0x810d, 0x1620: 0x812d, 0x1621: 0x0961, 0x1622: 0x814d, 0x1623: 0x814d,\n\t0x1624: 0x816d, 0x1625: 0x818d, 0x1626: 0x81ad, 0x1627: 0x81cd, 0x1628: 0x81ed, 0x1629: 0x820d,\n\t0x162a: 0x822d, 0x162b: 0x824d, 0x162c: 0x826d, 0x162d: 0x828d, 0x162e: 0x82ad, 0x162f: 0x82cd,\n\t0x1630: 0x82ed, 0x1631: 0x830d, 0x1632: 0x832d, 0x1633: 0x834d, 0x1634: 0x836d, 0x1635: 0x838d,\n\t0x1636: 0x83ad, 0x1637: 0x83cd, 0x1638: 0x83ed, 0x1639: 0x840d, 0x163a: 0x842d, 0x163b: 0x844d,\n\t0x163c: 0x81ed, 0x163d: 0x846d, 0x163e: 0x848d, 0x163f: 0x824d,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x84ad, 0x1641: 0x84cd, 0x1642: 0x84ed, 0x1643: 0x850d, 0x1644: 0x852d, 0x1645: 0x854d,\n\t0x1646: 0x856d, 0x1647: 0x858d, 0x1648: 0x850d, 0x1649: 0x85ad, 0x164a: 0x850d, 0x164b: 0x85cd,\n\t0x164c: 0x85cd, 0x164d: 0x85ed, 0x164e: 0x85ed, 0x164f: 0x860d, 0x1650: 0x854d, 0x1651: 0x862d,\n\t0x1652: 0x864d, 0x1653: 0x862d, 0x1654: 0x866d, 0x1655: 0x864d, 0x1656: 0x868d, 0x1657: 0x868d,\n\t0x1658: 0x86ad, 0x1659: 0x86ad, 0x165a: 0x86cd, 0x165b: 0x86cd, 0x165c: 0x864d, 0x165d: 0x814d,\n\t0x165e: 0x86ed, 0x165f: 0x870d, 0x1660: 0x0040, 0x1661: 0x872d, 0x1662: 0x874d, 0x1663: 0x876d,\n\t0x1664: 0x878d, 0x1665: 0x876d, 0x1666: 0x87ad, 0x1667: 0x87cd, 0x1668: 0x87ed, 0x1669: 0x87ed,\n\t0x166a: 0x880d, 0x166b: 0x880d, 0x166c: 0x882d, 0x166d: 0x882d, 0x166e: 0x880d, 0x166f: 0x880d,\n\t0x1670: 0x884d, 0x1671: 0x886d, 0x1672: 0x888d, 0x1673: 0x88ad, 0x1674: 0x88cd, 0x1675: 0x88ed,\n\t0x1676: 0x88ed, 0x1677: 0x88ed, 0x1678: 0x890d, 0x1679: 0x890d, 0x167a: 0x890d, 0x167b: 0x890d,\n\t0x167c: 0x87ed, 0x167d: 0x87ed, 0x167e: 0x87ed, 0x167f: 0x0040,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0040, 0x1681: 0x0040, 0x1682: 0x874d, 0x1683: 0x872d, 0x1684: 0x892d, 0x1685: 0x872d,\n\t0x1686: 0x874d, 0x1687: 0x872d, 0x1688: 0x0040, 0x1689: 0x0040, 0x168a: 0x894d, 0x168b: 0x874d,\n\t0x168c: 0x896d, 0x168d: 0x892d, 0x168e: 0x896d, 0x168f: 0x874d, 0x1690: 0x0040, 0x1691: 0x0040,\n\t0x1692: 0x898d, 0x1693: 0x89ad, 0x1694: 0x88ad, 0x1695: 0x896d, 0x1696: 0x892d, 0x1697: 0x896d,\n\t0x1698: 0x0040, 0x1699: 0x0040, 0x169a: 0x89cd, 0x169b: 0x89ed, 0x169c: 0x89cd, 0x169d: 0x0040,\n\t0x169e: 0x0040, 0x169f: 0x0040, 0x16a0: 0x21e9, 0x16a1: 0x21f1, 0x16a2: 0x21f9, 0x16a3: 0x8a0e,\n\t0x16a4: 0x2201, 0x16a5: 0x2209, 0x16a6: 0x8a2d, 0x16a7: 0x0040, 0x16a8: 0x8a4d, 0x16a9: 0x8a6d,\n\t0x16aa: 0x8a8d, 0x16ab: 0x8a6d, 0x16ac: 0x8aad, 0x16ad: 0x8acd, 0x16ae: 0x8aed, 0x16af: 0x0040,\n\t0x16b0: 0x0040, 0x16b1: 0x0040, 0x16b2: 0x0040, 0x16b3: 0x0040, 0x16b4: 0x0040, 0x16b5: 0x0040,\n\t0x16b6: 0x0040, 0x16b7: 0x0040, 0x16b8: 0x0040, 0x16b9: 0x0340, 0x16ba: 0x0340, 0x16bb: 0x0340,\n\t0x16bc: 0x0040, 0x16bd: 0x0040, 0x16be: 0x0040, 0x16bf: 0x0040,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0a08, 0x16c1: 0x0a08, 0x16c2: 0x0a08, 0x16c3: 0x0a08, 0x16c4: 0x0a08, 0x16c5: 0x0c08,\n\t0x16c6: 0x0808, 0x16c7: 0x0c08, 0x16c8: 0x0818, 0x16c9: 0x0c08, 0x16ca: 0x0c08, 0x16cb: 0x0808,\n\t0x16cc: 0x0808, 0x16cd: 0x0908, 0x16ce: 0x0c08, 0x16cf: 0x0c08, 0x16d0: 0x0c08, 0x16d1: 0x0c08,\n\t0x16d2: 0x0c08, 0x16d3: 0x0a08, 0x16d4: 0x0a08, 0x16d5: 0x0a08, 0x16d6: 0x0a08, 0x16d7: 0x0908,\n\t0x16d8: 0x0a08, 0x16d9: 0x0a08, 0x16da: 0x0a08, 0x16db: 0x0a08, 0x16dc: 0x0a08, 0x16dd: 0x0c08,\n\t0x16de: 0x0a08, 0x16df: 0x0a08, 0x16e0: 0x0a08, 0x16e1: 0x0c08, 0x16e2: 0x0808, 0x16e3: 0x0808,\n\t0x16e4: 0x0c08, 0x16e5: 0x3308, 0x16e6: 0x3308, 0x16e7: 0x0040, 0x16e8: 0x0040, 0x16e9: 0x0040,\n\t0x16ea: 0x0040, 0x16eb: 0x0a18, 0x16ec: 0x0a18, 0x16ed: 0x0a18, 0x16ee: 0x0a18, 0x16ef: 0x0c18,\n\t0x16f0: 0x0818, 0x16f1: 0x0818, 0x16f2: 0x0818, 0x16f3: 0x0818, 0x16f4: 0x0818, 0x16f5: 0x0818,\n\t0x16f6: 0x0818, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0040, 0x16fa: 0x0040, 0x16fb: 0x0040,\n\t0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0a08, 0x1701: 0x0c08, 0x1702: 0x0a08, 0x1703: 0x0c08, 0x1704: 0x0c08, 0x1705: 0x0c08,\n\t0x1706: 0x0a08, 0x1707: 0x0a08, 0x1708: 0x0a08, 0x1709: 0x0c08, 0x170a: 0x0a08, 0x170b: 0x0a08,\n\t0x170c: 0x0c08, 0x170d: 0x0a08, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0a08, 0x1711: 0x0c08,\n\t0x1712: 0x0040, 0x1713: 0x0040, 0x1714: 0x0040, 0x1715: 0x0040, 0x1716: 0x0040, 0x1717: 0x0040,\n\t0x1718: 0x0040, 0x1719: 0x0818, 0x171a: 0x0818, 0x171b: 0x0818, 0x171c: 0x0818, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x0040, 0x1721: 0x0040, 0x1722: 0x0040, 0x1723: 0x0040,\n\t0x1724: 0x0040, 0x1725: 0x0040, 0x1726: 0x0040, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0c18,\n\t0x172a: 0x0c18, 0x172b: 0x0c18, 0x172c: 0x0c18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0818,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x3308, 0x1741: 0x3308, 0x1742: 0x3008, 0x1743: 0x3008, 0x1744: 0x0040, 0x1745: 0x0008,\n\t0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008,\n\t0x174c: 0x0008, 0x174d: 0x0040, 0x174e: 0x0040, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0040,\n\t0x1752: 0x0040, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008,\n\t0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008,\n\t0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008,\n\t0x1764: 0x0008, 0x1765: 0x0008, 0x1766: 0x0008, 0x1767: 0x0008, 0x1768: 0x0008, 0x1769: 0x0040,\n\t0x176a: 0x0008, 0x176b: 0x0008, 0x176c: 0x0008, 0x176d: 0x0008, 0x176e: 0x0008, 0x176f: 0x0008,\n\t0x1770: 0x0008, 0x1771: 0x0040, 0x1772: 0x0008, 0x1773: 0x0008, 0x1774: 0x0040, 0x1775: 0x0008,\n\t0x1776: 0x0008, 0x1777: 0x0008, 0x1778: 0x0008, 0x1779: 0x0008, 0x177a: 0x0040, 0x177b: 0x3308,\n\t0x177c: 0x3308, 0x177d: 0x0008, 0x177e: 0x3008, 0x177f: 0x3008,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x3308, 0x1781: 0x3008, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x3008, 0x1785: 0x0040,\n\t0x1786: 0x0040, 0x1787: 0x3008, 0x1788: 0x3008, 0x1789: 0x0040, 0x178a: 0x0040, 0x178b: 0x3008,\n\t0x178c: 0x3008, 0x178d: 0x3808, 0x178e: 0x0040, 0x178f: 0x0040, 0x1790: 0x0008, 0x1791: 0x0040,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x3008,\n\t0x1798: 0x0040, 0x1799: 0x0040, 0x179a: 0x0040, 0x179b: 0x0040, 0x179c: 0x0040, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x3008, 0x17a3: 0x3008,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x3308, 0x17a7: 0x3308, 0x17a8: 0x3308, 0x17a9: 0x3308,\n\t0x17aa: 0x3308, 0x17ab: 0x3308, 0x17ac: 0x3308, 0x17ad: 0x0040, 0x17ae: 0x0040, 0x17af: 0x0040,\n\t0x17b0: 0x3308, 0x17b1: 0x3308, 0x17b2: 0x3308, 0x17b3: 0x3308, 0x17b4: 0x3308, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x0008, 0x17c1: 0x0008, 0x17c2: 0x0008, 0x17c3: 0x0008, 0x17c4: 0x0008, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0040, 0x17c8: 0x0040, 0x17c9: 0x0008, 0x17ca: 0x0040, 0x17cb: 0x0040,\n\t0x17cc: 0x0008, 0x17cd: 0x0008, 0x17ce: 0x0008, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0008,\n\t0x17d2: 0x0008, 0x17d3: 0x0008, 0x17d4: 0x0040, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0040,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0008,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x3008, 0x17f1: 0x3008, 0x17f2: 0x3008, 0x17f3: 0x3008, 0x17f4: 0x3008, 0x17f5: 0x3008,\n\t0x17f6: 0x0040, 0x17f7: 0x3008, 0x17f8: 0x3008, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x3808, 0x17fe: 0x3b08, 0x17ff: 0x0008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0019, 0x1801: 0x02e9, 0x1802: 0x03d9, 0x1803: 0x02f1, 0x1804: 0x02f9, 0x1805: 0x03f1,\n\t0x1806: 0x0309, 0x1807: 0x00a9, 0x1808: 0x0311, 0x1809: 0x00b1, 0x180a: 0x0319, 0x180b: 0x0101,\n\t0x180c: 0x0321, 0x180d: 0x0329, 0x180e: 0x0051, 0x180f: 0x0339, 0x1810: 0x0751, 0x1811: 0x00b9,\n\t0x1812: 0x0089, 0x1813: 0x0341, 0x1814: 0x0349, 0x1815: 0x0391, 0x1816: 0x00c1, 0x1817: 0x0109,\n\t0x1818: 0x00c9, 0x1819: 0x04b1, 0x181a: 0x0019, 0x181b: 0x02e9, 0x181c: 0x03d9, 0x181d: 0x02f1,\n\t0x181e: 0x02f9, 0x181f: 0x03f1, 0x1820: 0x0309, 0x1821: 0x00a9, 0x1822: 0x0311, 0x1823: 0x00b1,\n\t0x1824: 0x0319, 0x1825: 0x0101, 0x1826: 0x0321, 0x1827: 0x0329, 0x1828: 0x0051, 0x1829: 0x0339,\n\t0x182a: 0x0751, 0x182b: 0x00b9, 0x182c: 0x0089, 0x182d: 0x0341, 0x182e: 0x0349, 0x182f: 0x0391,\n\t0x1830: 0x00c1, 0x1831: 0x0109, 0x1832: 0x00c9, 0x1833: 0x04b1, 0x1834: 0x0019, 0x1835: 0x02e9,\n\t0x1836: 0x03d9, 0x1837: 0x02f1, 0x1838: 0x02f9, 0x1839: 0x03f1, 0x183a: 0x0309, 0x183b: 0x00a9,\n\t0x183c: 0x0311, 0x183d: 0x00b1, 0x183e: 0x0319, 0x183f: 0x0101,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0321, 0x1841: 0x0329, 0x1842: 0x0051, 0x1843: 0x0339, 0x1844: 0x0751, 0x1845: 0x00b9,\n\t0x1846: 0x0089, 0x1847: 0x0341, 0x1848: 0x0349, 0x1849: 0x0391, 0x184a: 0x00c1, 0x184b: 0x0109,\n\t0x184c: 0x00c9, 0x184d: 0x04b1, 0x184e: 0x0019, 0x184f: 0x02e9, 0x1850: 0x03d9, 0x1851: 0x02f1,\n\t0x1852: 0x02f9, 0x1853: 0x03f1, 0x1854: 0x0309, 0x1855: 0x0040, 0x1856: 0x0311, 0x1857: 0x00b1,\n\t0x1858: 0x0319, 0x1859: 0x0101, 0x185a: 0x0321, 0x185b: 0x0329, 0x185c: 0x0051, 0x185d: 0x0339,\n\t0x185e: 0x0751, 0x185f: 0x00b9, 0x1860: 0x0089, 0x1861: 0x0341, 0x1862: 0x0349, 0x1863: 0x0391,\n\t0x1864: 0x00c1, 0x1865: 0x0109, 0x1866: 0x00c9, 0x1867: 0x04b1, 0x1868: 0x0019, 0x1869: 0x02e9,\n\t0x186a: 0x03d9, 0x186b: 0x02f1, 0x186c: 0x02f9, 0x186d: 0x03f1, 0x186e: 0x0309, 0x186f: 0x00a9,\n\t0x1870: 0x0311, 0x1871: 0x00b1, 0x1872: 0x0319, 0x1873: 0x0101, 0x1874: 0x0321, 0x1875: 0x0329,\n\t0x1876: 0x0051, 0x1877: 0x0339, 0x1878: 0x0751, 0x1879: 0x00b9, 0x187a: 0x0089, 0x187b: 0x0341,\n\t0x187c: 0x0349, 0x187d: 0x0391, 0x187e: 0x00c1, 0x187f: 0x0109,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x00c9, 0x1881: 0x04b1, 0x1882: 0x0019, 0x1883: 0x02e9, 0x1884: 0x03d9, 0x1885: 0x02f1,\n\t0x1886: 0x02f9, 0x1887: 0x03f1, 0x1888: 0x0309, 0x1889: 0x00a9, 0x188a: 0x0311, 0x188b: 0x00b1,\n\t0x188c: 0x0319, 0x188d: 0x0101, 0x188e: 0x0321, 0x188f: 0x0329, 0x1890: 0x0051, 0x1891: 0x0339,\n\t0x1892: 0x0751, 0x1893: 0x00b9, 0x1894: 0x0089, 0x1895: 0x0341, 0x1896: 0x0349, 0x1897: 0x0391,\n\t0x1898: 0x00c1, 0x1899: 0x0109, 0x189a: 0x00c9, 0x189b: 0x04b1, 0x189c: 0x0019, 0x189d: 0x0040,\n\t0x189e: 0x03d9, 0x189f: 0x02f1, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0309, 0x18a3: 0x0040,\n\t0x18a4: 0x0040, 0x18a5: 0x00b1, 0x18a6: 0x0319, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0329,\n\t0x18aa: 0x0051, 0x18ab: 0x0339, 0x18ac: 0x0751, 0x18ad: 0x0040, 0x18ae: 0x0089, 0x18af: 0x0341,\n\t0x18b0: 0x0349, 0x18b1: 0x0391, 0x18b2: 0x00c1, 0x18b3: 0x0109, 0x18b4: 0x00c9, 0x18b5: 0x04b1,\n\t0x18b6: 0x0019, 0x18b7: 0x02e9, 0x18b8: 0x03d9, 0x18b9: 0x02f1, 0x18ba: 0x0040, 0x18bb: 0x03f1,\n\t0x18bc: 0x0040, 0x18bd: 0x00a9, 0x18be: 0x0311, 0x18bf: 0x00b1,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0319, 0x18c1: 0x0101, 0x18c2: 0x0321, 0x18c3: 0x0329, 0x18c4: 0x0040, 0x18c5: 0x0339,\n\t0x18c6: 0x0751, 0x18c7: 0x00b9, 0x18c8: 0x0089, 0x18c9: 0x0341, 0x18ca: 0x0349, 0x18cb: 0x0391,\n\t0x18cc: 0x00c1, 0x18cd: 0x0109, 0x18ce: 0x00c9, 0x18cf: 0x04b1, 0x18d0: 0x0019, 0x18d1: 0x02e9,\n\t0x18d2: 0x03d9, 0x18d3: 0x02f1, 0x18d4: 0x02f9, 0x18d5: 0x03f1, 0x18d6: 0x0309, 0x18d7: 0x00a9,\n\t0x18d8: 0x0311, 0x18d9: 0x00b1, 0x18da: 0x0319, 0x18db: 0x0101, 0x18dc: 0x0321, 0x18dd: 0x0329,\n\t0x18de: 0x0051, 0x18df: 0x0339, 0x18e0: 0x0751, 0x18e1: 0x00b9, 0x18e2: 0x0089, 0x18e3: 0x0341,\n\t0x18e4: 0x0349, 0x18e5: 0x0391, 0x18e6: 0x00c1, 0x18e7: 0x0109, 0x18e8: 0x00c9, 0x18e9: 0x04b1,\n\t0x18ea: 0x0019, 0x18eb: 0x02e9, 0x18ec: 0x03d9, 0x18ed: 0x02f1, 0x18ee: 0x02f9, 0x18ef: 0x03f1,\n\t0x18f0: 0x0309, 0x18f1: 0x00a9, 0x18f2: 0x0311, 0x18f3: 0x00b1, 0x18f4: 0x0319, 0x18f5: 0x0101,\n\t0x18f6: 0x0321, 0x18f7: 0x0329, 0x18f8: 0x0051, 0x18f9: 0x0339, 0x18fa: 0x0751, 0x18fb: 0x00b9,\n\t0x18fc: 0x0089, 0x18fd: 0x0341, 0x18fe: 0x0349, 0x18ff: 0x0391,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x00c1, 0x1901: 0x0109, 0x1902: 0x00c9, 0x1903: 0x04b1, 0x1904: 0x0019, 0x1905: 0x02e9,\n\t0x1906: 0x0040, 0x1907: 0x02f1, 0x1908: 0x02f9, 0x1909: 0x03f1, 0x190a: 0x0309, 0x190b: 0x0040,\n\t0x190c: 0x0040, 0x190d: 0x00b1, 0x190e: 0x0319, 0x190f: 0x0101, 0x1910: 0x0321, 0x1911: 0x0329,\n\t0x1912: 0x0051, 0x1913: 0x0339, 0x1914: 0x0751, 0x1915: 0x0040, 0x1916: 0x0089, 0x1917: 0x0341,\n\t0x1918: 0x0349, 0x1919: 0x0391, 0x191a: 0x00c1, 0x191b: 0x0109, 0x191c: 0x00c9, 0x191d: 0x0040,\n\t0x191e: 0x0019, 0x191f: 0x02e9, 0x1920: 0x03d9, 0x1921: 0x02f1, 0x1922: 0x02f9, 0x1923: 0x03f1,\n\t0x1924: 0x0309, 0x1925: 0x00a9, 0x1926: 0x0311, 0x1927: 0x00b1, 0x1928: 0x0319, 0x1929: 0x0101,\n\t0x192a: 0x0321, 0x192b: 0x0329, 0x192c: 0x0051, 0x192d: 0x0339, 0x192e: 0x0751, 0x192f: 0x00b9,\n\t0x1930: 0x0089, 0x1931: 0x0341, 0x1932: 0x0349, 0x1933: 0x0391, 0x1934: 0x00c1, 0x1935: 0x0109,\n\t0x1936: 0x00c9, 0x1937: 0x04b1, 0x1938: 0x0019, 0x1939: 0x02e9, 0x193a: 0x0040, 0x193b: 0x02f1,\n\t0x193c: 0x02f9, 0x193d: 0x03f1, 0x193e: 0x0309, 0x193f: 0x0040,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0311, 0x1941: 0x00b1, 0x1942: 0x0319, 0x1943: 0x0101, 0x1944: 0x0321, 0x1945: 0x0040,\n\t0x1946: 0x0051, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x0089, 0x194b: 0x0341,\n\t0x194c: 0x0349, 0x194d: 0x0391, 0x194e: 0x00c1, 0x194f: 0x0109, 0x1950: 0x00c9, 0x1951: 0x0040,\n\t0x1952: 0x0019, 0x1953: 0x02e9, 0x1954: 0x03d9, 0x1955: 0x02f1, 0x1956: 0x02f9, 0x1957: 0x03f1,\n\t0x1958: 0x0309, 0x1959: 0x00a9, 0x195a: 0x0311, 0x195b: 0x00b1, 0x195c: 0x0319, 0x195d: 0x0101,\n\t0x195e: 0x0321, 0x195f: 0x0329, 0x1960: 0x0051, 0x1961: 0x0339, 0x1962: 0x0751, 0x1963: 0x00b9,\n\t0x1964: 0x0089, 0x1965: 0x0341, 0x1966: 0x0349, 0x1967: 0x0391, 0x1968: 0x00c1, 0x1969: 0x0109,\n\t0x196a: 0x00c9, 0x196b: 0x04b1, 0x196c: 0x0019, 0x196d: 0x02e9, 0x196e: 0x03d9, 0x196f: 0x02f1,\n\t0x1970: 0x02f9, 0x1971: 0x03f1, 0x1972: 0x0309, 0x1973: 0x00a9, 0x1974: 0x0311, 0x1975: 0x00b1,\n\t0x1976: 0x0319, 0x1977: 0x0101, 0x1978: 0x0321, 0x1979: 0x0329, 0x197a: 0x0051, 0x197b: 0x0339,\n\t0x197c: 0x0751, 0x197d: 0x00b9, 0x197e: 0x0089, 0x197f: 0x0341,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0349, 0x1981: 0x0391, 0x1982: 0x00c1, 0x1983: 0x0109, 0x1984: 0x00c9, 0x1985: 0x04b1,\n\t0x1986: 0x0019, 0x1987: 0x02e9, 0x1988: 0x03d9, 0x1989: 0x02f1, 0x198a: 0x02f9, 0x198b: 0x03f1,\n\t0x198c: 0x0309, 0x198d: 0x00a9, 0x198e: 0x0311, 0x198f: 0x00b1, 0x1990: 0x0319, 0x1991: 0x0101,\n\t0x1992: 0x0321, 0x1993: 0x0329, 0x1994: 0x0051, 0x1995: 0x0339, 0x1996: 0x0751, 0x1997: 0x00b9,\n\t0x1998: 0x0089, 0x1999: 0x0341, 0x199a: 0x0349, 0x199b: 0x0391, 0x199c: 0x00c1, 0x199d: 0x0109,\n\t0x199e: 0x00c9, 0x199f: 0x04b1, 0x19a0: 0x0019, 0x19a1: 0x02e9, 0x19a2: 0x03d9, 0x19a3: 0x02f1,\n\t0x19a4: 0x02f9, 0x19a5: 0x03f1, 0x19a6: 0x0309, 0x19a7: 0x00a9, 0x19a8: 0x0311, 0x19a9: 0x00b1,\n\t0x19aa: 0x0319, 0x19ab: 0x0101, 0x19ac: 0x0321, 0x19ad: 0x0329, 0x19ae: 0x0051, 0x19af: 0x0339,\n\t0x19b0: 0x0751, 0x19b1: 0x00b9, 0x19b2: 0x0089, 0x19b3: 0x0341, 0x19b4: 0x0349, 0x19b5: 0x0391,\n\t0x19b6: 0x00c1, 0x19b7: 0x0109, 0x19b8: 0x00c9, 0x19b9: 0x04b1, 0x19ba: 0x0019, 0x19bb: 0x02e9,\n\t0x19bc: 0x03d9, 0x19bd: 0x02f1, 0x19be: 0x02f9, 0x19bf: 0x03f1,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0309, 0x19c1: 0x00a9, 0x19c2: 0x0311, 0x19c3: 0x00b1, 0x19c4: 0x0319, 0x19c5: 0x0101,\n\t0x19c6: 0x0321, 0x19c7: 0x0329, 0x19c8: 0x0051, 0x19c9: 0x0339, 0x19ca: 0x0751, 0x19cb: 0x00b9,\n\t0x19cc: 0x0089, 0x19cd: 0x0341, 0x19ce: 0x0349, 0x19cf: 0x0391, 0x19d0: 0x00c1, 0x19d1: 0x0109,\n\t0x19d2: 0x00c9, 0x19d3: 0x04b1, 0x19d4: 0x0019, 0x19d5: 0x02e9, 0x19d6: 0x03d9, 0x19d7: 0x02f1,\n\t0x19d8: 0x02f9, 0x19d9: 0x03f1, 0x19da: 0x0309, 0x19db: 0x00a9, 0x19dc: 0x0311, 0x19dd: 0x00b1,\n\t0x19de: 0x0319, 0x19df: 0x0101, 0x19e0: 0x0321, 0x19e1: 0x0329, 0x19e2: 0x0051, 0x19e3: 0x0339,\n\t0x19e4: 0x0751, 0x19e5: 0x00b9, 0x19e6: 0x0089, 0x19e7: 0x0341, 0x19e8: 0x0349, 0x19e9: 0x0391,\n\t0x19ea: 0x00c1, 0x19eb: 0x0109, 0x19ec: 0x00c9, 0x19ed: 0x04b1, 0x19ee: 0x0019, 0x19ef: 0x02e9,\n\t0x19f0: 0x03d9, 0x19f1: 0x02f1, 0x19f2: 0x02f9, 0x19f3: 0x03f1, 0x19f4: 0x0309, 0x19f5: 0x00a9,\n\t0x19f6: 0x0311, 0x19f7: 0x00b1, 0x19f8: 0x0319, 0x19f9: 0x0101, 0x19fa: 0x0321, 0x19fb: 0x0329,\n\t0x19fc: 0x0051, 0x19fd: 0x0339, 0x19fe: 0x0751, 0x19ff: 0x00b9,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0089, 0x1a01: 0x0341, 0x1a02: 0x0349, 0x1a03: 0x0391, 0x1a04: 0x00c1, 0x1a05: 0x0109,\n\t0x1a06: 0x00c9, 0x1a07: 0x04b1, 0x1a08: 0x0019, 0x1a09: 0x02e9, 0x1a0a: 0x03d9, 0x1a0b: 0x02f1,\n\t0x1a0c: 0x02f9, 0x1a0d: 0x03f1, 0x1a0e: 0x0309, 0x1a0f: 0x00a9, 0x1a10: 0x0311, 0x1a11: 0x00b1,\n\t0x1a12: 0x0319, 0x1a13: 0x0101, 0x1a14: 0x0321, 0x1a15: 0x0329, 0x1a16: 0x0051, 0x1a17: 0x0339,\n\t0x1a18: 0x0751, 0x1a19: 0x00b9, 0x1a1a: 0x0089, 0x1a1b: 0x0341, 0x1a1c: 0x0349, 0x1a1d: 0x0391,\n\t0x1a1e: 0x00c1, 0x1a1f: 0x0109, 0x1a20: 0x00c9, 0x1a21: 0x04b1, 0x1a22: 0x0019, 0x1a23: 0x02e9,\n\t0x1a24: 0x03d9, 0x1a25: 0x02f1, 0x1a26: 0x02f9, 0x1a27: 0x03f1, 0x1a28: 0x0309, 0x1a29: 0x00a9,\n\t0x1a2a: 0x0311, 0x1a2b: 0x00b1, 0x1a2c: 0x0319, 0x1a2d: 0x0101, 0x1a2e: 0x0321, 0x1a2f: 0x0329,\n\t0x1a30: 0x0051, 0x1a31: 0x0339, 0x1a32: 0x0751, 0x1a33: 0x00b9, 0x1a34: 0x0089, 0x1a35: 0x0341,\n\t0x1a36: 0x0349, 0x1a37: 0x0391, 0x1a38: 0x00c1, 0x1a39: 0x0109, 0x1a3a: 0x00c9, 0x1a3b: 0x04b1,\n\t0x1a3c: 0x0019, 0x1a3d: 0x02e9, 0x1a3e: 0x03d9, 0x1a3f: 0x02f1,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x02f9, 0x1a41: 0x03f1, 0x1a42: 0x0309, 0x1a43: 0x00a9, 0x1a44: 0x0311, 0x1a45: 0x00b1,\n\t0x1a46: 0x0319, 0x1a47: 0x0101, 0x1a48: 0x0321, 0x1a49: 0x0329, 0x1a4a: 0x0051, 0x1a4b: 0x0339,\n\t0x1a4c: 0x0751, 0x1a4d: 0x00b9, 0x1a4e: 0x0089, 0x1a4f: 0x0341, 0x1a50: 0x0349, 0x1a51: 0x0391,\n\t0x1a52: 0x00c1, 0x1a53: 0x0109, 0x1a54: 0x00c9, 0x1a55: 0x04b1, 0x1a56: 0x0019, 0x1a57: 0x02e9,\n\t0x1a58: 0x03d9, 0x1a59: 0x02f1, 0x1a5a: 0x02f9, 0x1a5b: 0x03f1, 0x1a5c: 0x0309, 0x1a5d: 0x00a9,\n\t0x1a5e: 0x0311, 0x1a5f: 0x00b1, 0x1a60: 0x0319, 0x1a61: 0x0101, 0x1a62: 0x0321, 0x1a63: 0x0329,\n\t0x1a64: 0x0051, 0x1a65: 0x0339, 0x1a66: 0x0751, 0x1a67: 0x00b9, 0x1a68: 0x0089, 0x1a69: 0x0341,\n\t0x1a6a: 0x0349, 0x1a6b: 0x0391, 0x1a6c: 0x00c1, 0x1a6d: 0x0109, 0x1a6e: 0x00c9, 0x1a6f: 0x04b1,\n\t0x1a70: 0x0019, 0x1a71: 0x02e9, 0x1a72: 0x03d9, 0x1a73: 0x02f1, 0x1a74: 0x02f9, 0x1a75: 0x03f1,\n\t0x1a76: 0x0309, 0x1a77: 0x00a9, 0x1a78: 0x0311, 0x1a79: 0x00b1, 0x1a7a: 0x0319, 0x1a7b: 0x0101,\n\t0x1a7c: 0x0321, 0x1a7d: 0x0329, 0x1a7e: 0x0051, 0x1a7f: 0x0339,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0751, 0x1a81: 0x00b9, 0x1a82: 0x0089, 0x1a83: 0x0341, 0x1a84: 0x0349, 0x1a85: 0x0391,\n\t0x1a86: 0x00c1, 0x1a87: 0x0109, 0x1a88: 0x00c9, 0x1a89: 0x04b1, 0x1a8a: 0x0019, 0x1a8b: 0x02e9,\n\t0x1a8c: 0x03d9, 0x1a8d: 0x02f1, 0x1a8e: 0x02f9, 0x1a8f: 0x03f1, 0x1a90: 0x0309, 0x1a91: 0x00a9,\n\t0x1a92: 0x0311, 0x1a93: 0x00b1, 0x1a94: 0x0319, 0x1a95: 0x0101, 0x1a96: 0x0321, 0x1a97: 0x0329,\n\t0x1a98: 0x0051, 0x1a99: 0x0339, 0x1a9a: 0x0751, 0x1a9b: 0x00b9, 0x1a9c: 0x0089, 0x1a9d: 0x0341,\n\t0x1a9e: 0x0349, 0x1a9f: 0x0391, 0x1aa0: 0x00c1, 0x1aa1: 0x0109, 0x1aa2: 0x00c9, 0x1aa3: 0x04b1,\n\t0x1aa4: 0x2279, 0x1aa5: 0x2281, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0x2289, 0x1aa9: 0x0399,\n\t0x1aaa: 0x03a1, 0x1aab: 0x03a9, 0x1aac: 0x2291, 0x1aad: 0x2299, 0x1aae: 0x22a1, 0x1aaf: 0x04d1,\n\t0x1ab0: 0x05f9, 0x1ab1: 0x22a9, 0x1ab2: 0x22b1, 0x1ab3: 0x22b9, 0x1ab4: 0x22c1, 0x1ab5: 0x22c9,\n\t0x1ab6: 0x22d1, 0x1ab7: 0x0799, 0x1ab8: 0x03c1, 0x1ab9: 0x04d1, 0x1aba: 0x22d9, 0x1abb: 0x22e1,\n\t0x1abc: 0x22e9, 0x1abd: 0x03b1, 0x1abe: 0x03b9, 0x1abf: 0x22f1,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x0769, 0x1ac1: 0x22f9, 0x1ac2: 0x2289, 0x1ac3: 0x0399, 0x1ac4: 0x03a1, 0x1ac5: 0x03a9,\n\t0x1ac6: 0x2291, 0x1ac7: 0x2299, 0x1ac8: 0x22a1, 0x1ac9: 0x04d1, 0x1aca: 0x05f9, 0x1acb: 0x22a9,\n\t0x1acc: 0x22b1, 0x1acd: 0x22b9, 0x1ace: 0x22c1, 0x1acf: 0x22c9, 0x1ad0: 0x22d1, 0x1ad1: 0x0799,\n\t0x1ad2: 0x03c1, 0x1ad3: 0x22d9, 0x1ad4: 0x22d9, 0x1ad5: 0x22e1, 0x1ad6: 0x22e9, 0x1ad7: 0x03b1,\n\t0x1ad8: 0x03b9, 0x1ad9: 0x22f1, 0x1ada: 0x0769, 0x1adb: 0x2301, 0x1adc: 0x2291, 0x1add: 0x04d1,\n\t0x1ade: 0x22a9, 0x1adf: 0x03b1, 0x1ae0: 0x03c1, 0x1ae1: 0x0799, 0x1ae2: 0x2289, 0x1ae3: 0x0399,\n\t0x1ae4: 0x03a1, 0x1ae5: 0x03a9, 0x1ae6: 0x2291, 0x1ae7: 0x2299, 0x1ae8: 0x22a1, 0x1ae9: 0x04d1,\n\t0x1aea: 0x05f9, 0x1aeb: 0x22a9, 0x1aec: 0x22b1, 0x1aed: 0x22b9, 0x1aee: 0x22c1, 0x1aef: 0x22c9,\n\t0x1af0: 0x22d1, 0x1af1: 0x0799, 0x1af2: 0x03c1, 0x1af3: 0x04d1, 0x1af4: 0x22d9, 0x1af5: 0x22e1,\n\t0x1af6: 0x22e9, 0x1af7: 0x03b1, 0x1af8: 0x03b9, 0x1af9: 0x22f1, 0x1afa: 0x0769, 0x1afb: 0x22f9,\n\t0x1afc: 0x2289, 0x1afd: 0x0399, 0x1afe: 0x03a1, 0x1aff: 0x03a9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2291, 0x1b01: 0x2299, 0x1b02: 0x22a1, 0x1b03: 0x04d1, 0x1b04: 0x05f9, 0x1b05: 0x22a9,\n\t0x1b06: 0x22b1, 0x1b07: 0x22b9, 0x1b08: 0x22c1, 0x1b09: 0x22c9, 0x1b0a: 0x22d1, 0x1b0b: 0x0799,\n\t0x1b0c: 0x03c1, 0x1b0d: 0x22d9, 0x1b0e: 0x22d9, 0x1b0f: 0x22e1, 0x1b10: 0x22e9, 0x1b11: 0x03b1,\n\t0x1b12: 0x03b9, 0x1b13: 0x22f1, 0x1b14: 0x0769, 0x1b15: 0x2301, 0x1b16: 0x2291, 0x1b17: 0x04d1,\n\t0x1b18: 0x22a9, 0x1b19: 0x03b1, 0x1b1a: 0x03c1, 0x1b1b: 0x0799, 0x1b1c: 0x2289, 0x1b1d: 0x0399,\n\t0x1b1e: 0x03a1, 0x1b1f: 0x03a9, 0x1b20: 0x2291, 0x1b21: 0x2299, 0x1b22: 0x22a1, 0x1b23: 0x04d1,\n\t0x1b24: 0x05f9, 0x1b25: 0x22a9, 0x1b26: 0x22b1, 0x1b27: 0x22b9, 0x1b28: 0x22c1, 0x1b29: 0x22c9,\n\t0x1b2a: 0x22d1, 0x1b2b: 0x0799, 0x1b2c: 0x03c1, 0x1b2d: 0x04d1, 0x1b2e: 0x22d9, 0x1b2f: 0x22e1,\n\t0x1b30: 0x22e9, 0x1b31: 0x03b1, 0x1b32: 0x03b9, 0x1b33: 0x22f1, 0x1b34: 0x0769, 0x1b35: 0x22f9,\n\t0x1b36: 0x2289, 0x1b37: 0x0399, 0x1b38: 0x03a1, 0x1b39: 0x03a9, 0x1b3a: 0x2291, 0x1b3b: 0x2299,\n\t0x1b3c: 0x22a1, 0x1b3d: 0x04d1, 0x1b3e: 0x05f9, 0x1b3f: 0x22a9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x22b1, 0x1b41: 0x22b9, 0x1b42: 0x22c1, 0x1b43: 0x22c9, 0x1b44: 0x22d1, 0x1b45: 0x0799,\n\t0x1b46: 0x03c1, 0x1b47: 0x22d9, 0x1b48: 0x22d9, 0x1b49: 0x22e1, 0x1b4a: 0x22e9, 0x1b4b: 0x03b1,\n\t0x1b4c: 0x03b9, 0x1b4d: 0x22f1, 0x1b4e: 0x0769, 0x1b4f: 0x2301, 0x1b50: 0x2291, 0x1b51: 0x04d1,\n\t0x1b52: 0x22a9, 0x1b53: 0x03b1, 0x1b54: 0x03c1, 0x1b55: 0x0799, 0x1b56: 0x2289, 0x1b57: 0x0399,\n\t0x1b58: 0x03a1, 0x1b59: 0x03a9, 0x1b5a: 0x2291, 0x1b5b: 0x2299, 0x1b5c: 0x22a1, 0x1b5d: 0x04d1,\n\t0x1b5e: 0x05f9, 0x1b5f: 0x22a9, 0x1b60: 0x22b1, 0x1b61: 0x22b9, 0x1b62: 0x22c1, 0x1b63: 0x22c9,\n\t0x1b64: 0x22d1, 0x1b65: 0x0799, 0x1b66: 0x03c1, 0x1b67: 0x04d1, 0x1b68: 0x22d9, 0x1b69: 0x22e1,\n\t0x1b6a: 0x22e9, 0x1b6b: 0x03b1, 0x1b6c: 0x03b9, 0x1b6d: 0x22f1, 0x1b6e: 0x0769, 0x1b6f: 0x22f9,\n\t0x1b70: 0x2289, 0x1b71: 0x0399, 0x1b72: 0x03a1, 0x1b73: 0x03a9, 0x1b74: 0x2291, 0x1b75: 0x2299,\n\t0x1b76: 0x22a1, 0x1b77: 0x04d1, 0x1b78: 0x05f9, 0x1b79: 0x22a9, 0x1b7a: 0x22b1, 0x1b7b: 0x22b9,\n\t0x1b7c: 0x22c1, 0x1b7d: 0x22c9, 0x1b7e: 0x22d1, 0x1b7f: 0x0799,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x03c1, 0x1b81: 0x22d9, 0x1b82: 0x22d9, 0x1b83: 0x22e1, 0x1b84: 0x22e9, 0x1b85: 0x03b1,\n\t0x1b86: 0x03b9, 0x1b87: 0x22f1, 0x1b88: 0x0769, 0x1b89: 0x2301, 0x1b8a: 0x2291, 0x1b8b: 0x04d1,\n\t0x1b8c: 0x22a9, 0x1b8d: 0x03b1, 0x1b8e: 0x03c1, 0x1b8f: 0x0799, 0x1b90: 0x2289, 0x1b91: 0x0399,\n\t0x1b92: 0x03a1, 0x1b93: 0x03a9, 0x1b94: 0x2291, 0x1b95: 0x2299, 0x1b96: 0x22a1, 0x1b97: 0x04d1,\n\t0x1b98: 0x05f9, 0x1b99: 0x22a9, 0x1b9a: 0x22b1, 0x1b9b: 0x22b9, 0x1b9c: 0x22c1, 0x1b9d: 0x22c9,\n\t0x1b9e: 0x22d1, 0x1b9f: 0x0799, 0x1ba0: 0x03c1, 0x1ba1: 0x04d1, 0x1ba2: 0x22d9, 0x1ba3: 0x22e1,\n\t0x1ba4: 0x22e9, 0x1ba5: 0x03b1, 0x1ba6: 0x03b9, 0x1ba7: 0x22f1, 0x1ba8: 0x0769, 0x1ba9: 0x22f9,\n\t0x1baa: 0x2289, 0x1bab: 0x0399, 0x1bac: 0x03a1, 0x1bad: 0x03a9, 0x1bae: 0x2291, 0x1baf: 0x2299,\n\t0x1bb0: 0x22a1, 0x1bb1: 0x04d1, 0x1bb2: 0x05f9, 0x1bb3: 0x22a9, 0x1bb4: 0x22b1, 0x1bb5: 0x22b9,\n\t0x1bb6: 0x22c1, 0x1bb7: 0x22c9, 0x1bb8: 0x22d1, 0x1bb9: 0x0799, 0x1bba: 0x03c1, 0x1bbb: 0x22d9,\n\t0x1bbc: 0x22d9, 0x1bbd: 0x22e1, 0x1bbe: 0x22e9, 0x1bbf: 0x03b1,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x03b9, 0x1bc1: 0x22f1, 0x1bc2: 0x0769, 0x1bc3: 0x2301, 0x1bc4: 0x2291, 0x1bc5: 0x04d1,\n\t0x1bc6: 0x22a9, 0x1bc7: 0x03b1, 0x1bc8: 0x03c1, 0x1bc9: 0x0799, 0x1bca: 0x2309, 0x1bcb: 0x2309,\n\t0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x06e1, 0x1bcf: 0x0049, 0x1bd0: 0x0029, 0x1bd1: 0x0031,\n\t0x1bd2: 0x06e9, 0x1bd3: 0x06f1, 0x1bd4: 0x06f9, 0x1bd5: 0x0701, 0x1bd6: 0x0709, 0x1bd7: 0x0711,\n\t0x1bd8: 0x06e1, 0x1bd9: 0x0049, 0x1bda: 0x0029, 0x1bdb: 0x0031, 0x1bdc: 0x06e9, 0x1bdd: 0x06f1,\n\t0x1bde: 0x06f9, 0x1bdf: 0x0701, 0x1be0: 0x0709, 0x1be1: 0x0711, 0x1be2: 0x06e1, 0x1be3: 0x0049,\n\t0x1be4: 0x0029, 0x1be5: 0x0031, 0x1be6: 0x06e9, 0x1be7: 0x06f1, 0x1be8: 0x06f9, 0x1be9: 0x0701,\n\t0x1bea: 0x0709, 0x1beb: 0x0711, 0x1bec: 0x06e1, 0x1bed: 0x0049, 0x1bee: 0x0029, 0x1bef: 0x0031,\n\t0x1bf0: 0x06e9, 0x1bf1: 0x06f1, 0x1bf2: 0x06f9, 0x1bf3: 0x0701, 0x1bf4: 0x0709, 0x1bf5: 0x0711,\n\t0x1bf6: 0x06e1, 0x1bf7: 0x0049, 0x1bf8: 0x0029, 0x1bf9: 0x0031, 0x1bfa: 0x06e9, 0x1bfb: 0x06f1,\n\t0x1bfc: 0x06f9, 0x1bfd: 0x0701, 0x1bfe: 0x0709, 0x1bff: 0x0711,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,\n\t0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,\n\t0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,\n\t0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,\n\t0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,\n\t0x1c1e: 0x8b3d, 0x1c1f: 0x8b3d, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,\n\t0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,\n\t0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,\n\t0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,\n\t0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,\n\t0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x20b1, 0x1c41: 0x20b9, 0x1c42: 0x20d9, 0x1c43: 0x20f1, 0x1c44: 0x0040, 0x1c45: 0x2189,\n\t0x1c46: 0x2109, 0x1c47: 0x20e1, 0x1c48: 0x2131, 0x1c49: 0x2191, 0x1c4a: 0x2161, 0x1c4b: 0x2169,\n\t0x1c4c: 0x2171, 0x1c4d: 0x2179, 0x1c4e: 0x2111, 0x1c4f: 0x2141, 0x1c50: 0x2151, 0x1c51: 0x2121,\n\t0x1c52: 0x2159, 0x1c53: 0x2101, 0x1c54: 0x2119, 0x1c55: 0x20c9, 0x1c56: 0x20d1, 0x1c57: 0x20e9,\n\t0x1c58: 0x20f9, 0x1c59: 0x2129, 0x1c5a: 0x2139, 0x1c5b: 0x2149, 0x1c5c: 0x2311, 0x1c5d: 0x1689,\n\t0x1c5e: 0x2319, 0x1c5f: 0x2321, 0x1c60: 0x0040, 0x1c61: 0x20b9, 0x1c62: 0x20d9, 0x1c63: 0x0040,\n\t0x1c64: 0x2181, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0x20e1, 0x1c68: 0x0040, 0x1c69: 0x2191,\n\t0x1c6a: 0x2161, 0x1c6b: 0x2169, 0x1c6c: 0x2171, 0x1c6d: 0x2179, 0x1c6e: 0x2111, 0x1c6f: 0x2141,\n\t0x1c70: 0x2151, 0x1c71: 0x2121, 0x1c72: 0x2159, 0x1c73: 0x0040, 0x1c74: 0x2119, 0x1c75: 0x20c9,\n\t0x1c76: 0x20d1, 0x1c77: 0x20e9, 0x1c78: 0x0040, 0x1c79: 0x2129, 0x1c7a: 0x0040, 0x1c7b: 0x2149,\n\t0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0x20d9, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,\n\t0x1c86: 0x0040, 0x1c87: 0x20e1, 0x1c88: 0x0040, 0x1c89: 0x2191, 0x1c8a: 0x0040, 0x1c8b: 0x2169,\n\t0x1c8c: 0x0040, 0x1c8d: 0x2179, 0x1c8e: 0x2111, 0x1c8f: 0x2141, 0x1c90: 0x0040, 0x1c91: 0x2121,\n\t0x1c92: 0x2159, 0x1c93: 0x0040, 0x1c94: 0x2119, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0x20e9,\n\t0x1c98: 0x0040, 0x1c99: 0x2129, 0x1c9a: 0x0040, 0x1c9b: 0x2149, 0x1c9c: 0x0040, 0x1c9d: 0x1689,\n\t0x1c9e: 0x0040, 0x1c9f: 0x2321, 0x1ca0: 0x0040, 0x1ca1: 0x20b9, 0x1ca2: 0x20d9, 0x1ca3: 0x0040,\n\t0x1ca4: 0x2181, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0x20e1, 0x1ca8: 0x2131, 0x1ca9: 0x2191,\n\t0x1caa: 0x2161, 0x1cab: 0x0040, 0x1cac: 0x2171, 0x1cad: 0x2179, 0x1cae: 0x2111, 0x1caf: 0x2141,\n\t0x1cb0: 0x2151, 0x1cb1: 0x2121, 0x1cb2: 0x2159, 0x1cb3: 0x0040, 0x1cb4: 0x2119, 0x1cb5: 0x20c9,\n\t0x1cb6: 0x20d1, 0x1cb7: 0x20e9, 0x1cb8: 0x0040, 0x1cb9: 0x2129, 0x1cba: 0x2139, 0x1cbb: 0x2149,\n\t0x1cbc: 0x2311, 0x1cbd: 0x0040, 0x1cbe: 0x2319, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x20b1, 0x1cc1: 0x20b9, 0x1cc2: 0x20d9, 0x1cc3: 0x20f1, 0x1cc4: 0x2181, 0x1cc5: 0x2189,\n\t0x1cc6: 0x2109, 0x1cc7: 0x20e1, 0x1cc8: 0x2131, 0x1cc9: 0x2191, 0x1cca: 0x0040, 0x1ccb: 0x2169,\n\t0x1ccc: 0x2171, 0x1ccd: 0x2179, 0x1cce: 0x2111, 0x1ccf: 0x2141, 0x1cd0: 0x2151, 0x1cd1: 0x2121,\n\t0x1cd2: 0x2159, 0x1cd3: 0x2101, 0x1cd4: 0x2119, 0x1cd5: 0x20c9, 0x1cd6: 0x20d1, 0x1cd7: 0x20e9,\n\t0x1cd8: 0x20f9, 0x1cd9: 0x2129, 0x1cda: 0x2139, 0x1cdb: 0x2149, 0x1cdc: 0x0040, 0x1cdd: 0x0040,\n\t0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0x20b9, 0x1ce2: 0x20d9, 0x1ce3: 0x20f1,\n\t0x1ce4: 0x0040, 0x1ce5: 0x2189, 0x1ce6: 0x2109, 0x1ce7: 0x20e1, 0x1ce8: 0x2131, 0x1ce9: 0x2191,\n\t0x1cea: 0x0040, 0x1ceb: 0x2169, 0x1cec: 0x2171, 0x1ced: 0x2179, 0x1cee: 0x2111, 0x1cef: 0x2141,\n\t0x1cf0: 0x2151, 0x1cf1: 0x2121, 0x1cf2: 0x2159, 0x1cf3: 0x2101, 0x1cf4: 0x2119, 0x1cf5: 0x20c9,\n\t0x1cf6: 0x20d1, 0x1cf7: 0x20e9, 0x1cf8: 0x20f9, 0x1cf9: 0x2129, 0x1cfa: 0x2139, 0x1cfb: 0x2149,\n\t0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0040, 0x1d01: 0x232a, 0x1d02: 0x2332, 0x1d03: 0x233a, 0x1d04: 0x2342, 0x1d05: 0x234a,\n\t0x1d06: 0x2352, 0x1d07: 0x235a, 0x1d08: 0x2362, 0x1d09: 0x236a, 0x1d0a: 0x2372, 0x1d0b: 0x0018,\n\t0x1d0c: 0x0018, 0x1d0d: 0x0018, 0x1d0e: 0x0018, 0x1d0f: 0x0018, 0x1d10: 0x237a, 0x1d11: 0x2382,\n\t0x1d12: 0x238a, 0x1d13: 0x2392, 0x1d14: 0x239a, 0x1d15: 0x23a2, 0x1d16: 0x23aa, 0x1d17: 0x23b2,\n\t0x1d18: 0x23ba, 0x1d19: 0x23c2, 0x1d1a: 0x23ca, 0x1d1b: 0x23d2, 0x1d1c: 0x23da, 0x1d1d: 0x23e2,\n\t0x1d1e: 0x23ea, 0x1d1f: 0x23f2, 0x1d20: 0x23fa, 0x1d21: 0x2402, 0x1d22: 0x240a, 0x1d23: 0x2412,\n\t0x1d24: 0x241a, 0x1d25: 0x2422, 0x1d26: 0x242a, 0x1d27: 0x2432, 0x1d28: 0x243a, 0x1d29: 0x2442,\n\t0x1d2a: 0x2449, 0x1d2b: 0x03d9, 0x1d2c: 0x00b9, 0x1d2d: 0x1239, 0x1d2e: 0x2451, 0x1d2f: 0x0018,\n\t0x1d30: 0x0019, 0x1d31: 0x02e9, 0x1d32: 0x03d9, 0x1d33: 0x02f1, 0x1d34: 0x02f9, 0x1d35: 0x03f1,\n\t0x1d36: 0x0309, 0x1d37: 0x00a9, 0x1d38: 0x0311, 0x1d39: 0x00b1, 0x1d3a: 0x0319, 0x1d3b: 0x0101,\n\t0x1d3c: 0x0321, 0x1d3d: 0x0329, 0x1d3e: 0x0051, 0x1d3f: 0x0339,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0751, 0x1d41: 0x00b9, 0x1d42: 0x0089, 0x1d43: 0x0341, 0x1d44: 0x0349, 0x1d45: 0x0391,\n\t0x1d46: 0x00c1, 0x1d47: 0x0109, 0x1d48: 0x00c9, 0x1d49: 0x04b1, 0x1d4a: 0x2459, 0x1d4b: 0x11f9,\n\t0x1d4c: 0x2461, 0x1d4d: 0x04d9, 0x1d4e: 0x2469, 0x1d4f: 0x2471, 0x1d50: 0x0018, 0x1d51: 0x0018,\n\t0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,\n\t0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,\n\t0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,\n\t0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,\n\t0x1d6a: 0x2479, 0x1d6b: 0x2481, 0x1d6c: 0x2489, 0x1d6d: 0x0018, 0x1d6e: 0x0018, 0x1d6f: 0x0018,\n\t0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,\n\t0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,\n\t0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2499, 0x1d81: 0x24a1, 0x1d82: 0x24a9, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,\n\t0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,\n\t0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0x24b1, 0x1d91: 0x24b9,\n\t0x1d92: 0x24c1, 0x1d93: 0x24c9, 0x1d94: 0x24d1, 0x1d95: 0x24d9, 0x1d96: 0x24e1, 0x1d97: 0x24e9,\n\t0x1d98: 0x24f1, 0x1d99: 0x24f9, 0x1d9a: 0x2501, 0x1d9b: 0x2509, 0x1d9c: 0x2511, 0x1d9d: 0x2519,\n\t0x1d9e: 0x2521, 0x1d9f: 0x2529, 0x1da0: 0x2531, 0x1da1: 0x2539, 0x1da2: 0x2541, 0x1da3: 0x2549,\n\t0x1da4: 0x2551, 0x1da5: 0x2559, 0x1da6: 0x2561, 0x1da7: 0x2569, 0x1da8: 0x2571, 0x1da9: 0x2579,\n\t0x1daa: 0x2581, 0x1dab: 0x2589, 0x1dac: 0x2591, 0x1dad: 0x2599, 0x1dae: 0x25a1, 0x1daf: 0x25a9,\n\t0x1db0: 0x25b1, 0x1db1: 0x25b9, 0x1db2: 0x25c1, 0x1db3: 0x25c9, 0x1db4: 0x25d1, 0x1db5: 0x25d9,\n\t0x1db6: 0x25e1, 0x1db7: 0x25e9, 0x1db8: 0x25f1, 0x1db9: 0x25f9, 0x1dba: 0x2601, 0x1dbb: 0x2609,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0x2669, 0x1dc1: 0x2671, 0x1dc2: 0x2679, 0x1dc3: 0x8b55, 0x1dc4: 0x2681, 0x1dc5: 0x2689,\n\t0x1dc6: 0x2691, 0x1dc7: 0x2699, 0x1dc8: 0x26a1, 0x1dc9: 0x26a9, 0x1dca: 0x26b1, 0x1dcb: 0x26b9,\n\t0x1dcc: 0x26c1, 0x1dcd: 0x8b75, 0x1dce: 0x26c9, 0x1dcf: 0x26d1, 0x1dd0: 0x26d9, 0x1dd1: 0x26e1,\n\t0x1dd2: 0x8b95, 0x1dd3: 0x26e9, 0x1dd4: 0x26f1, 0x1dd5: 0x2521, 0x1dd6: 0x8bb5, 0x1dd7: 0x26f9,\n\t0x1dd8: 0x2701, 0x1dd9: 0x2709, 0x1dda: 0x2711, 0x1ddb: 0x2719, 0x1ddc: 0x8bd5, 0x1ddd: 0x2721,\n\t0x1dde: 0x2729, 0x1ddf: 0x2731, 0x1de0: 0x2739, 0x1de1: 0x2741, 0x1de2: 0x25f9, 0x1de3: 0x2749,\n\t0x1de4: 0x2751, 0x1de5: 0x2759, 0x1de6: 0x2761, 0x1de7: 0x2769, 0x1de8: 0x2771, 0x1de9: 0x2779,\n\t0x1dea: 0x2781, 0x1deb: 0x2789, 0x1dec: 0x2791, 0x1ded: 0x2799, 0x1dee: 0x27a1, 0x1def: 0x27a9,\n\t0x1df0: 0x27b1, 0x1df1: 0x27b9, 0x1df2: 0x27b9, 0x1df3: 0x27b9, 0x1df4: 0x8bf5, 0x1df5: 0x27c1,\n\t0x1df6: 0x27c9, 0x1df7: 0x27d1, 0x1df8: 0x8c15, 0x1df9: 0x27d9, 0x1dfa: 0x27e1, 0x1dfb: 0x27e9,\n\t0x1dfc: 0x27f1, 0x1dfd: 0x27f9, 0x1dfe: 0x2801, 0x1dff: 0x2809,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0x2811, 0x1e01: 0x2819, 0x1e02: 0x2821, 0x1e03: 0x2829, 0x1e04: 0x2831, 0x1e05: 0x2839,\n\t0x1e06: 0x2839, 0x1e07: 0x2841, 0x1e08: 0x2849, 0x1e09: 0x2851, 0x1e0a: 0x2859, 0x1e0b: 0x2861,\n\t0x1e0c: 0x2869, 0x1e0d: 0x2871, 0x1e0e: 0x2879, 0x1e0f: 0x2881, 0x1e10: 0x2889, 0x1e11: 0x2891,\n\t0x1e12: 0x2899, 0x1e13: 0x28a1, 0x1e14: 0x28a9, 0x1e15: 0x28b1, 0x1e16: 0x28b9, 0x1e17: 0x28c1,\n\t0x1e18: 0x28c9, 0x1e19: 0x8c35, 0x1e1a: 0x28d1, 0x1e1b: 0x28d9, 0x1e1c: 0x28e1, 0x1e1d: 0x24d9,\n\t0x1e1e: 0x28e9, 0x1e1f: 0x28f1, 0x1e20: 0x8c55, 0x1e21: 0x8c75, 0x1e22: 0x28f9, 0x1e23: 0x2901,\n\t0x1e24: 0x2909, 0x1e25: 0x2911, 0x1e26: 0x2919, 0x1e27: 0x2921, 0x1e28: 0x2040, 0x1e29: 0x2929,\n\t0x1e2a: 0x2931, 0x1e2b: 0x2931, 0x1e2c: 0x8c95, 0x1e2d: 0x2939, 0x1e2e: 0x2941, 0x1e2f: 0x2949,\n\t0x1e30: 0x2951, 0x1e31: 0x8cb5, 0x1e32: 0x2959, 0x1e33: 0x2961, 0x1e34: 0x2040, 0x1e35: 0x2969,\n\t0x1e36: 0x2971, 0x1e37: 0x2979, 0x1e38: 0x2981, 0x1e39: 0x2989, 0x1e3a: 0x2991, 0x1e3b: 0x8cd5,\n\t0x1e3c: 0x2999, 0x1e3d: 0x8cf5, 0x1e3e: 0x29a1, 0x1e3f: 0x29a9,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x29b1, 0x1e41: 0x29b9, 0x1e42: 0x29c1, 0x1e43: 0x29c9, 0x1e44: 0x29d1, 0x1e45: 0x29d9,\n\t0x1e46: 0x29e1, 0x1e47: 0x29e9, 0x1e48: 0x29f1, 0x1e49: 0x8d15, 0x1e4a: 0x29f9, 0x1e4b: 0x2a01,\n\t0x1e4c: 0x2a09, 0x1e4d: 0x2a11, 0x1e4e: 0x2a19, 0x1e4f: 0x8d35, 0x1e50: 0x2a21, 0x1e51: 0x8d55,\n\t0x1e52: 0x8d75, 0x1e53: 0x2a29, 0x1e54: 0x2a31, 0x1e55: 0x2a31, 0x1e56: 0x2a39, 0x1e57: 0x8d95,\n\t0x1e58: 0x8db5, 0x1e59: 0x2a41, 0x1e5a: 0x2a49, 0x1e5b: 0x2a51, 0x1e5c: 0x2a59, 0x1e5d: 0x2a61,\n\t0x1e5e: 0x2a69, 0x1e5f: 0x2a71, 0x1e60: 0x2a79, 0x1e61: 0x2a81, 0x1e62: 0x2a89, 0x1e63: 0x2a91,\n\t0x1e64: 0x8dd5, 0x1e65: 0x2a99, 0x1e66: 0x2aa1, 0x1e67: 0x2aa9, 0x1e68: 0x2ab1, 0x1e69: 0x2aa9,\n\t0x1e6a: 0x2ab9, 0x1e6b: 0x2ac1, 0x1e6c: 0x2ac9, 0x1e6d: 0x2ad1, 0x1e6e: 0x2ad9, 0x1e6f: 0x2ae1,\n\t0x1e70: 0x2ae9, 0x1e71: 0x2af1, 0x1e72: 0x2af9, 0x1e73: 0x2b01, 0x1e74: 0x2b09, 0x1e75: 0x2b11,\n\t0x1e76: 0x2b19, 0x1e77: 0x2b21, 0x1e78: 0x8df5, 0x1e79: 0x2b29, 0x1e7a: 0x2b31, 0x1e7b: 0x2b39,\n\t0x1e7c: 0x2b41, 0x1e7d: 0x2b49, 0x1e7e: 0x8e15, 0x1e7f: 0x2b51,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x2b59, 0x1e81: 0x2b61, 0x1e82: 0x2b69, 0x1e83: 0x2b71, 0x1e84: 0x2b79, 0x1e85: 0x2b81,\n\t0x1e86: 0x2b89, 0x1e87: 0x2b91, 0x1e88: 0x2b99, 0x1e89: 0x2ba1, 0x1e8a: 0x8e35, 0x1e8b: 0x2ba9,\n\t0x1e8c: 0x2bb1, 0x1e8d: 0x2bb9, 0x1e8e: 0x2bc1, 0x1e8f: 0x2bc9, 0x1e90: 0x2bd1, 0x1e91: 0x2bd9,\n\t0x1e92: 0x2be1, 0x1e93: 0x2be9, 0x1e94: 0x2bf1, 0x1e95: 0x2bf9, 0x1e96: 0x2c01, 0x1e97: 0x2c09,\n\t0x1e98: 0x2c11, 0x1e99: 0x2c19, 0x1e9a: 0x2c21, 0x1e9b: 0x2c29, 0x1e9c: 0x2c31, 0x1e9d: 0x8e55,\n\t0x1e9e: 0x2c39, 0x1e9f: 0x2c41, 0x1ea0: 0x2c49, 0x1ea1: 0x2c51, 0x1ea2: 0x2c59, 0x1ea3: 0x8e75,\n\t0x1ea4: 0x2c61, 0x1ea5: 0x2c69, 0x1ea6: 0x2c71, 0x1ea7: 0x2c79, 0x1ea8: 0x2c81, 0x1ea9: 0x2c89,\n\t0x1eaa: 0x2c91, 0x1eab: 0x2c99, 0x1eac: 0x7f0d, 0x1ead: 0x2ca1, 0x1eae: 0x2ca9, 0x1eaf: 0x2cb1,\n\t0x1eb0: 0x8e95, 0x1eb1: 0x2cb9, 0x1eb2: 0x2cc1, 0x1eb3: 0x2cc9, 0x1eb4: 0x2cd1, 0x1eb5: 0x2cd9,\n\t0x1eb6: 0x2ce1, 0x1eb7: 0x8eb5, 0x1eb8: 0x8ed5, 0x1eb9: 0x8ef5, 0x1eba: 0x2ce9, 0x1ebb: 0x8f15,\n\t0x1ebc: 0x2cf1, 0x1ebd: 0x2cf9, 0x1ebe: 0x2d01, 0x1ebf: 0x2d09,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x2d11, 0x1ec1: 0x2d19, 0x1ec2: 0x2d21, 0x1ec3: 0x2d29, 0x1ec4: 0x2d31, 0x1ec5: 0x2d39,\n\t0x1ec6: 0x8f35, 0x1ec7: 0x2d41, 0x1ec8: 0x2d49, 0x1ec9: 0x2d51, 0x1eca: 0x2d59, 0x1ecb: 0x2d61,\n\t0x1ecc: 0x2d69, 0x1ecd: 0x8f55, 0x1ece: 0x2d71, 0x1ecf: 0x2d79, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95,\n\t0x1ed2: 0x2d81, 0x1ed3: 0x2d89, 0x1ed4: 0x2d91, 0x1ed5: 0x2d99, 0x1ed6: 0x2da1, 0x1ed7: 0x2da9,\n\t0x1ed8: 0x2db1, 0x1ed9: 0x2db9, 0x1eda: 0x2dc1, 0x1edb: 0x8fb5, 0x1edc: 0x2dc9, 0x1edd: 0x8fd5,\n\t0x1ede: 0x2dd1, 0x1edf: 0x2040, 0x1ee0: 0x2dd9, 0x1ee1: 0x2de1, 0x1ee2: 0x2de9, 0x1ee3: 0x8ff5,\n\t0x1ee4: 0x2df1, 0x1ee5: 0x2df9, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0x2e01, 0x1ee9: 0x2e09,\n\t0x1eea: 0x2e11, 0x1eeb: 0x2e19, 0x1eec: 0x2e21, 0x1eed: 0x2e21, 0x1eee: 0x2e29, 0x1eef: 0x2e31,\n\t0x1ef0: 0x2e39, 0x1ef1: 0x2e41, 0x1ef2: 0x2e49, 0x1ef3: 0x2e51, 0x1ef4: 0x2e59, 0x1ef5: 0x9055,\n\t0x1ef6: 0x2e61, 0x1ef7: 0x9075, 0x1ef8: 0x2e69, 0x1ef9: 0x9095, 0x1efa: 0x2e71, 0x1efb: 0x90b5,\n\t0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0x2e79, 0x1eff: 0x2e81,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0x2e89, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0x2e91,\n\t0x1f06: 0x2e99, 0x1f07: 0x2e99, 0x1f08: 0x2ea1, 0x1f09: 0x2ea9, 0x1f0a: 0x2eb1, 0x1f0b: 0x2eb9,\n\t0x1f0c: 0x2ec1, 0x1f0d: 0x9195, 0x1f0e: 0x2ec9, 0x1f0f: 0x2ed1, 0x1f10: 0x2ed9, 0x1f11: 0x2ee1,\n\t0x1f12: 0x91b5, 0x1f13: 0x2ee9, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0x2ef1, 0x1f17: 0x2ef9,\n\t0x1f18: 0x2f01, 0x1f19: 0x2f09, 0x1f1a: 0x2f11, 0x1f1b: 0x2f19, 0x1f1c: 0x9215, 0x1f1d: 0x9235,\n\t0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0x2f21, 0x1f21: 0x9275, 0x1f22: 0x2f29, 0x1f23: 0x2f31,\n\t0x1f24: 0x2f39, 0x1f25: 0x9295, 0x1f26: 0x2f41, 0x1f27: 0x2f49, 0x1f28: 0x2f51, 0x1f29: 0x2f59,\n\t0x1f2a: 0x2f61, 0x1f2b: 0x92b5, 0x1f2c: 0x2f69, 0x1f2d: 0x2f71, 0x1f2e: 0x2f79, 0x1f2f: 0x2f81,\n\t0x1f30: 0x2f89, 0x1f31: 0x2f91, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0x2f99, 0x1f35: 0x9315,\n\t0x1f36: 0x2fa1, 0x1f37: 0x9335, 0x1f38: 0x2fa9, 0x1f39: 0x2fb1, 0x1f3a: 0x2fb9, 0x1f3b: 0x9355,\n\t0x1f3c: 0x9375, 0x1f3d: 0x2fc1, 0x1f3e: 0x9395, 0x1f3f: 0x2fc9,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0x93b5, 0x1f41: 0x2fd1, 0x1f42: 0x2fd9, 0x1f43: 0x2fe1, 0x1f44: 0x2fe9, 0x1f45: 0x2ff1,\n\t0x1f46: 0x2ff9, 0x1f47: 0x93d5, 0x1f48: 0x93f5, 0x1f49: 0x9415, 0x1f4a: 0x9435, 0x1f4b: 0x2a29,\n\t0x1f4c: 0x3001, 0x1f4d: 0x3009, 0x1f4e: 0x3011, 0x1f4f: 0x3019, 0x1f50: 0x3021, 0x1f51: 0x3029,\n\t0x1f52: 0x3031, 0x1f53: 0x3039, 0x1f54: 0x3041, 0x1f55: 0x3049, 0x1f56: 0x3051, 0x1f57: 0x9455,\n\t0x1f58: 0x3059, 0x1f59: 0x3061, 0x1f5a: 0x3069, 0x1f5b: 0x3071, 0x1f5c: 0x3079, 0x1f5d: 0x3081,\n\t0x1f5e: 0x3089, 0x1f5f: 0x3091, 0x1f60: 0x3099, 0x1f61: 0x30a1, 0x1f62: 0x30a9, 0x1f63: 0x30b1,\n\t0x1f64: 0x9475, 0x1f65: 0x9495, 0x1f66: 0x94b5, 0x1f67: 0x30b9, 0x1f68: 0x30c1, 0x1f69: 0x30c9,\n\t0x1f6a: 0x30d1, 0x1f6b: 0x94d5, 0x1f6c: 0x30d9, 0x1f6d: 0x94f5, 0x1f6e: 0x30e1, 0x1f6f: 0x30e9,\n\t0x1f70: 0x9515, 0x1f71: 0x9535, 0x1f72: 0x30f1, 0x1f73: 0x30f9, 0x1f74: 0x3101, 0x1f75: 0x3109,\n\t0x1f76: 0x3111, 0x1f77: 0x3119, 0x1f78: 0x3121, 0x1f79: 0x3129, 0x1f7a: 0x3131, 0x1f7b: 0x3139,\n\t0x1f7c: 0x3141, 0x1f7d: 0x3149, 0x1f7e: 0x3151, 0x1f7f: 0x2040,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x3159, 0x1f81: 0x3161, 0x1f82: 0x3169, 0x1f83: 0x3171, 0x1f84: 0x3179, 0x1f85: 0x9555,\n\t0x1f86: 0x3181, 0x1f87: 0x3189, 0x1f88: 0x3191, 0x1f89: 0x3199, 0x1f8a: 0x31a1, 0x1f8b: 0x9575,\n\t0x1f8c: 0x9595, 0x1f8d: 0x31a9, 0x1f8e: 0x31b1, 0x1f8f: 0x31b9, 0x1f90: 0x31c1, 0x1f91: 0x31c9,\n\t0x1f92: 0x31d1, 0x1f93: 0x95b5, 0x1f94: 0x31d9, 0x1f95: 0x31e1, 0x1f96: 0x31e9, 0x1f97: 0x31f1,\n\t0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0x31f9, 0x1f9b: 0x3201, 0x1f9c: 0x3209, 0x1f9d: 0x9615,\n\t0x1f9e: 0x3211, 0x1f9f: 0x3219, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0x3221, 0x1fa3: 0x3229,\n\t0x1fa4: 0x3231, 0x1fa5: 0x9655, 0x1fa6: 0x3239, 0x1fa7: 0x3241, 0x1fa8: 0x3249, 0x1fa9: 0x3251,\n\t0x1faa: 0x3259, 0x1fab: 0x3261, 0x1fac: 0x3269, 0x1fad: 0x9675, 0x1fae: 0x3271, 0x1faf: 0x3279,\n\t0x1fb0: 0x3281, 0x1fb1: 0x9695, 0x1fb2: 0x3289, 0x1fb3: 0x3291, 0x1fb4: 0x3299, 0x1fb5: 0x32a1,\n\t0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0x32a9, 0x1fb9: 0x32b1, 0x1fba: 0x32b9, 0x1fbb: 0x96d5,\n\t0x1fbc: 0x32c1, 0x1fbd: 0x96f5, 0x1fbe: 0x32c9, 0x1fbf: 0x32c9,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x32d1, 0x1fc1: 0x9715, 0x1fc2: 0x32d9, 0x1fc3: 0x32e1, 0x1fc4: 0x32e9, 0x1fc5: 0x32f1,\n\t0x1fc6: 0x32f9, 0x1fc7: 0x3301, 0x1fc8: 0x3309, 0x1fc9: 0x9735, 0x1fca: 0x3311, 0x1fcb: 0x3319,\n\t0x1fcc: 0x3321, 0x1fcd: 0x3329, 0x1fce: 0x3331, 0x1fcf: 0x3339, 0x1fd0: 0x9755, 0x1fd1: 0x3341,\n\t0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0x3349, 0x1fd6: 0x3351, 0x1fd7: 0x3359,\n\t0x1fd8: 0x3361, 0x1fd9: 0x3369, 0x1fda: 0x3371, 0x1fdb: 0x3379, 0x1fdc: 0x3381, 0x1fdd: 0x97d5,\n\t0x1fde: 0x0040, 0x1fdf: 0x0040, 0x1fe0: 0x0040, 0x1fe1: 0x0040, 0x1fe2: 0x0040, 0x1fe3: 0x0040,\n\t0x1fe4: 0x0040, 0x1fe5: 0x0040, 0x1fe6: 0x0040, 0x1fe7: 0x0040, 0x1fe8: 0x0040, 0x1fe9: 0x0040,\n\t0x1fea: 0x0040, 0x1feb: 0x0040, 0x1fec: 0x0040, 0x1fed: 0x0040, 0x1fee: 0x0040, 0x1fef: 0x0040,\n\t0x1ff0: 0x0040, 0x1ff1: 0x0040, 0x1ff2: 0x0040, 0x1ff3: 0x0040, 0x1ff4: 0x0040, 0x1ff5: 0x0040,\n\t0x1ff6: 0x0040, 0x1ff7: 0x0040, 0x1ff8: 0x0040, 0x1ff9: 0x0040, 0x1ffa: 0x0040, 0x1ffb: 0x0040,\n\t0x1ffc: 0x0040, 0x1ffd: 0x0040, 0x1ffe: 0x0040, 0x1fff: 0x0040,\n}\n\n// idnaIndex: 37 blocks, 2368 entries, 4736 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2368]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7e, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7f, 0xca: 0x80, 0xcb: 0x07, 0xcc: 0x81, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x82, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x83, 0xd6: 0x84, 0xd7: 0x85,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x86, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x87, 0xde: 0x88, 0xdf: 0x89,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1e, 0xf1: 0x1f, 0xf2: 0x1f, 0xf3: 0x21, 0xf4: 0x22,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x8a, 0x121: 0x13, 0x122: 0x8b, 0x123: 0x8c, 0x124: 0x8d, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8e,\n\t0x130: 0x8f, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x90, 0x135: 0x21, 0x136: 0x91, 0x137: 0x92,\n\t0x138: 0x93, 0x139: 0x94, 0x13a: 0x22, 0x13b: 0x95, 0x13c: 0x96, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x97,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x98, 0x141: 0x99, 0x142: 0x9a, 0x143: 0x9b, 0x144: 0x9c, 0x145: 0x9d, 0x146: 0x9e, 0x147: 0x9f,\n\t0x148: 0xa0, 0x149: 0xa1, 0x14a: 0xa2, 0x14b: 0xa3, 0x14c: 0xa4, 0x14d: 0xa5, 0x14e: 0xa6, 0x14f: 0xa7,\n\t0x150: 0xa8, 0x151: 0xa0, 0x152: 0xa0, 0x153: 0xa0, 0x154: 0xa0, 0x155: 0xa0, 0x156: 0xa0, 0x157: 0xa0,\n\t0x158: 0xa0, 0x159: 0xa9, 0x15a: 0xaa, 0x15b: 0xab, 0x15c: 0xac, 0x15d: 0xad, 0x15e: 0xae, 0x15f: 0xaf,\n\t0x160: 0xb0, 0x161: 0xb1, 0x162: 0xb2, 0x163: 0xb3, 0x164: 0xb4, 0x165: 0xb5, 0x166: 0xb6, 0x167: 0xb7,\n\t0x168: 0xb8, 0x169: 0xb9, 0x16a: 0xba, 0x16b: 0xbb, 0x16c: 0xbc, 0x16d: 0xbd, 0x16e: 0xbe, 0x16f: 0xbf,\n\t0x170: 0xc0, 0x171: 0xc1, 0x172: 0xc2, 0x173: 0xc3, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc4,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc5, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc6, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc7, 0x187: 0x9c,\n\t0x188: 0xc8, 0x189: 0xc9, 0x18a: 0x9c, 0x18b: 0x9c, 0x18c: 0xca, 0x18d: 0x9c, 0x18e: 0x9c, 0x18f: 0x9c,\n\t0x190: 0xcb, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9c, 0x195: 0x9c, 0x196: 0x9c, 0x197: 0x9c,\n\t0x198: 0x9c, 0x199: 0x9c, 0x19a: 0x9c, 0x19b: 0x9c, 0x19c: 0x9c, 0x19d: 0x9c, 0x19e: 0x9c, 0x19f: 0x9c,\n\t0x1a0: 0x9c, 0x1a1: 0x9c, 0x1a2: 0x9c, 0x1a3: 0x9c, 0x1a4: 0x9c, 0x1a5: 0x9c, 0x1a6: 0x9c, 0x1a7: 0x9c,\n\t0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9c, 0x1ab: 0xce, 0x1ac: 0x9c, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0x9c,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0xe3, 0x1cd: 0xe4, 0x1ce: 0x3e, 0x1cf: 0x3f,\n\t0x1d0: 0xa0, 0x1d1: 0xa0, 0x1d2: 0xa0, 0x1d3: 0xa0, 0x1d4: 0xa0, 0x1d5: 0xa0, 0x1d6: 0xa0, 0x1d7: 0xa0,\n\t0x1d8: 0xa0, 0x1d9: 0xa0, 0x1da: 0xa0, 0x1db: 0xa0, 0x1dc: 0xa0, 0x1dd: 0xa0, 0x1de: 0xa0, 0x1df: 0xa0,\n\t0x1e0: 0xa0, 0x1e1: 0xa0, 0x1e2: 0xa0, 0x1e3: 0xa0, 0x1e4: 0xa0, 0x1e5: 0xa0, 0x1e6: 0xa0, 0x1e7: 0xa0,\n\t0x1e8: 0xa0, 0x1e9: 0xa0, 0x1ea: 0xa0, 0x1eb: 0xa0, 0x1ec: 0xa0, 0x1ed: 0xa0, 0x1ee: 0xa0, 0x1ef: 0xa0,\n\t0x1f0: 0xa0, 0x1f1: 0xa0, 0x1f2: 0xa0, 0x1f3: 0xa0, 0x1f4: 0xa0, 0x1f5: 0xa0, 0x1f6: 0xa0, 0x1f7: 0xa0,\n\t0x1f8: 0xa0, 0x1f9: 0xa0, 0x1fa: 0xa0, 0x1fb: 0xa0, 0x1fc: 0xa0, 0x1fd: 0xa0, 0x1fe: 0xa0, 0x1ff: 0xa0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xa0, 0x201: 0xa0, 0x202: 0xa0, 0x203: 0xa0, 0x204: 0xa0, 0x205: 0xa0, 0x206: 0xa0, 0x207: 0xa0,\n\t0x208: 0xa0, 0x209: 0xa0, 0x20a: 0xa0, 0x20b: 0xa0, 0x20c: 0xa0, 0x20d: 0xa0, 0x20e: 0xa0, 0x20f: 0xa0,\n\t0x210: 0xa0, 0x211: 0xa0, 0x212: 0xa0, 0x213: 0xa0, 0x214: 0xa0, 0x215: 0xa0, 0x216: 0xa0, 0x217: 0xa0,\n\t0x218: 0xa0, 0x219: 0xa0, 0x21a: 0xa0, 0x21b: 0xa0, 0x21c: 0xa0, 0x21d: 0xa0, 0x21e: 0xa0, 0x21f: 0xa0,\n\t0x220: 0xa0, 0x221: 0xa0, 0x222: 0xa0, 0x223: 0xa0, 0x224: 0xa0, 0x225: 0xa0, 0x226: 0xa0, 0x227: 0xa0,\n\t0x228: 0xa0, 0x229: 0xa0, 0x22a: 0xa0, 0x22b: 0xa0, 0x22c: 0xa0, 0x22d: 0xa0, 0x22e: 0xa0, 0x22f: 0xa0,\n\t0x230: 0xa0, 0x231: 0xa0, 0x232: 0xa0, 0x233: 0xa0, 0x234: 0xa0, 0x235: 0xa0, 0x236: 0xa0, 0x237: 0x9c,\n\t0x238: 0xa0, 0x239: 0xa0, 0x23a: 0xa0, 0x23b: 0xa0, 0x23c: 0xa0, 0x23d: 0xa0, 0x23e: 0xa0, 0x23f: 0xa0,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xa0, 0x241: 0xa0, 0x242: 0xa0, 0x243: 0xa0, 0x244: 0xa0, 0x245: 0xa0, 0x246: 0xa0, 0x247: 0xa0,\n\t0x248: 0xa0, 0x249: 0xa0, 0x24a: 0xa0, 0x24b: 0xa0, 0x24c: 0xa0, 0x24d: 0xa0, 0x24e: 0xa0, 0x24f: 0xa0,\n\t0x250: 0xa0, 0x251: 0xa0, 0x252: 0xa0, 0x253: 0xa0, 0x254: 0xa0, 0x255: 0xa0, 0x256: 0xa0, 0x257: 0xa0,\n\t0x258: 0xa0, 0x259: 0xa0, 0x25a: 0xa0, 0x25b: 0xa0, 0x25c: 0xa0, 0x25d: 0xa0, 0x25e: 0xa0, 0x25f: 0xa0,\n\t0x260: 0xa0, 0x261: 0xa0, 0x262: 0xa0, 0x263: 0xa0, 0x264: 0xa0, 0x265: 0xa0, 0x266: 0xa0, 0x267: 0xa0,\n\t0x268: 0xa0, 0x269: 0xa0, 0x26a: 0xa0, 0x26b: 0xa0, 0x26c: 0xa0, 0x26d: 0xa0, 0x26e: 0xa0, 0x26f: 0xa0,\n\t0x270: 0xa0, 0x271: 0xa0, 0x272: 0xa0, 0x273: 0xa0, 0x274: 0xa0, 0x275: 0xa0, 0x276: 0xa0, 0x277: 0xa0,\n\t0x278: 0xa0, 0x279: 0xa0, 0x27a: 0xa0, 0x27b: 0xa0, 0x27c: 0xa0, 0x27d: 0xa0, 0x27e: 0xa0, 0x27f: 0xa0,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xa0, 0x281: 0xa0, 0x282: 0xa0, 0x283: 0xa0, 0x284: 0xa0, 0x285: 0xa0, 0x286: 0xa0, 0x287: 0xa0,\n\t0x288: 0xa0, 0x289: 0xa0, 0x28a: 0xa0, 0x28b: 0xa0, 0x28c: 0xa0, 0x28d: 0xa0, 0x28e: 0xa0, 0x28f: 0xa0,\n\t0x290: 0xa0, 0x291: 0xa0, 0x292: 0xa0, 0x293: 0xa0, 0x294: 0xa0, 0x295: 0xa0, 0x296: 0xa0, 0x297: 0xa0,\n\t0x298: 0xa0, 0x299: 0xa0, 0x29a: 0xa0, 0x29b: 0xa0, 0x29c: 0xa0, 0x29d: 0xa0, 0x29e: 0xa0, 0x29f: 0xa0,\n\t0x2a0: 0xa0, 0x2a1: 0xa0, 0x2a2: 0xa0, 0x2a3: 0xa0, 0x2a4: 0xa0, 0x2a5: 0xa0, 0x2a6: 0xa0, 0x2a7: 0xa0,\n\t0x2a8: 0xa0, 0x2a9: 0xa0, 0x2aa: 0xa0, 0x2ab: 0xa0, 0x2ac: 0xa0, 0x2ad: 0xa0, 0x2ae: 0xa0, 0x2af: 0xa0,\n\t0x2b0: 0xa0, 0x2b1: 0xa0, 0x2b2: 0xa0, 0x2b3: 0xa0, 0x2b4: 0xa0, 0x2b5: 0xa0, 0x2b6: 0xa0, 0x2b7: 0xa0,\n\t0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe5,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xa0, 0x2c1: 0xa0, 0x2c2: 0xa0, 0x2c3: 0xa0, 0x2c4: 0xa0, 0x2c5: 0xa0, 0x2c6: 0xa0, 0x2c7: 0xa0,\n\t0x2c8: 0xa0, 0x2c9: 0xa0, 0x2ca: 0xa0, 0x2cb: 0xa0, 0x2cc: 0xa0, 0x2cd: 0xa0, 0x2ce: 0xa0, 0x2cf: 0xa0,\n\t0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe6, 0x2d3: 0xe7, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0,\n\t0x2d8: 0xe8, 0x2d9: 0x40, 0x2da: 0x41, 0x2db: 0xe9, 0x2dc: 0x42, 0x2dd: 0x43, 0x2de: 0x44, 0x2df: 0xea,\n\t0x2e0: 0xeb, 0x2e1: 0xec, 0x2e2: 0xed, 0x2e3: 0xee, 0x2e4: 0xef, 0x2e5: 0xf0, 0x2e6: 0xf1, 0x2e7: 0xf2,\n\t0x2e8: 0xf3, 0x2e9: 0xf4, 0x2ea: 0xf5, 0x2eb: 0xf6, 0x2ec: 0xf7, 0x2ed: 0xf8, 0x2ee: 0xf9, 0x2ef: 0xfa,\n\t0x2f0: 0xa0, 0x2f1: 0xa0, 0x2f2: 0xa0, 0x2f3: 0xa0, 0x2f4: 0xa0, 0x2f5: 0xa0, 0x2f6: 0xa0, 0x2f7: 0xa0,\n\t0x2f8: 0xa0, 0x2f9: 0xa0, 0x2fa: 0xa0, 0x2fb: 0xa0, 0x2fc: 0xa0, 0x2fd: 0xa0, 0x2fe: 0xa0, 0x2ff: 0xa0,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa0, 0x301: 0xa0, 0x302: 0xa0, 0x303: 0xa0, 0x304: 0xa0, 0x305: 0xa0, 0x306: 0xa0, 0x307: 0xa0,\n\t0x308: 0xa0, 0x309: 0xa0, 0x30a: 0xa0, 0x30b: 0xa0, 0x30c: 0xa0, 0x30d: 0xa0, 0x30e: 0xa0, 0x30f: 0xa0,\n\t0x310: 0xa0, 0x311: 0xa0, 0x312: 0xa0, 0x313: 0xa0, 0x314: 0xa0, 0x315: 0xa0, 0x316: 0xa0, 0x317: 0xa0,\n\t0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xfb, 0x31f: 0xfc,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xfd, 0x341: 0xfd, 0x342: 0xfd, 0x343: 0xfd, 0x344: 0xfd, 0x345: 0xfd, 0x346: 0xfd, 0x347: 0xfd,\n\t0x348: 0xfd, 0x349: 0xfd, 0x34a: 0xfd, 0x34b: 0xfd, 0x34c: 0xfd, 0x34d: 0xfd, 0x34e: 0xfd, 0x34f: 0xfd,\n\t0x350: 0xfd, 0x351: 0xfd, 0x352: 0xfd, 0x353: 0xfd, 0x354: 0xfd, 0x355: 0xfd, 0x356: 0xfd, 0x357: 0xfd,\n\t0x358: 0xfd, 0x359: 0xfd, 0x35a: 0xfd, 0x35b: 0xfd, 0x35c: 0xfd, 0x35d: 0xfd, 0x35e: 0xfd, 0x35f: 0xfd,\n\t0x360: 0xfd, 0x361: 0xfd, 0x362: 0xfd, 0x363: 0xfd, 0x364: 0xfd, 0x365: 0xfd, 0x366: 0xfd, 0x367: 0xfd,\n\t0x368: 0xfd, 0x369: 0xfd, 0x36a: 0xfd, 0x36b: 0xfd, 0x36c: 0xfd, 0x36d: 0xfd, 0x36e: 0xfd, 0x36f: 0xfd,\n\t0x370: 0xfd, 0x371: 0xfd, 0x372: 0xfd, 0x373: 0xfd, 0x374: 0xfd, 0x375: 0xfd, 0x376: 0xfd, 0x377: 0xfd,\n\t0x378: 0xfd, 0x379: 0xfd, 0x37a: 0xfd, 0x37b: 0xfd, 0x37c: 0xfd, 0x37d: 0xfd, 0x37e: 0xfd, 0x37f: 0xfd,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xfd, 0x381: 0xfd, 0x382: 0xfd, 0x383: 0xfd, 0x384: 0xfd, 0x385: 0xfd, 0x386: 0xfd, 0x387: 0xfd,\n\t0x388: 0xfd, 0x389: 0xfd, 0x38a: 0xfd, 0x38b: 0xfd, 0x38c: 0xfd, 0x38d: 0xfd, 0x38e: 0xfd, 0x38f: 0xfd,\n\t0x390: 0xfd, 0x391: 0xfd, 0x392: 0xfd, 0x393: 0xfd, 0x394: 0xfd, 0x395: 0xfd, 0x396: 0xfd, 0x397: 0xfd,\n\t0x398: 0xfd, 0x399: 0xfd, 0x39a: 0xfd, 0x39b: 0xfd, 0x39c: 0xfd, 0x39d: 0xfd, 0x39e: 0xfd, 0x39f: 0xfd,\n\t0x3a0: 0xfd, 0x3a1: 0xfd, 0x3a2: 0xfd, 0x3a3: 0xfd, 0x3a4: 0xfe, 0x3a5: 0xff, 0x3a6: 0x100, 0x3a7: 0x101,\n\t0x3a8: 0x45, 0x3a9: 0x102, 0x3aa: 0x103, 0x3ab: 0x46, 0x3ac: 0x47, 0x3ad: 0x48, 0x3ae: 0x49, 0x3af: 0x4a,\n\t0x3b0: 0x104, 0x3b1: 0x4b, 0x3b2: 0x4c, 0x3b3: 0x4d, 0x3b4: 0x4e, 0x3b5: 0x4f, 0x3b6: 0x105, 0x3b7: 0x50,\n\t0x3b8: 0x51, 0x3b9: 0x52, 0x3ba: 0x53, 0x3bb: 0x54, 0x3bc: 0x55, 0x3bd: 0x56, 0x3be: 0x57, 0x3bf: 0x58,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x106, 0x3c1: 0x107, 0x3c2: 0xa0, 0x3c3: 0x108, 0x3c4: 0x109, 0x3c5: 0x9c, 0x3c6: 0x10a, 0x3c7: 0x10b,\n\t0x3c8: 0xfd, 0x3c9: 0xfd, 0x3ca: 0x10c, 0x3cb: 0x10d, 0x3cc: 0x10e, 0x3cd: 0x10f, 0x3ce: 0x110, 0x3cf: 0x111,\n\t0x3d0: 0x112, 0x3d1: 0xa0, 0x3d2: 0x113, 0x3d3: 0x114, 0x3d4: 0x115, 0x3d5: 0x116, 0x3d6: 0xfd, 0x3d7: 0xfd,\n\t0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x117, 0x3dd: 0x118, 0x3de: 0xfd, 0x3df: 0xfd,\n\t0x3e0: 0x119, 0x3e1: 0x11a, 0x3e2: 0x11b, 0x3e3: 0x11c, 0x3e4: 0x11d, 0x3e5: 0xfd, 0x3e6: 0x11e, 0x3e7: 0x11f,\n\t0x3e8: 0x120, 0x3e9: 0x121, 0x3ea: 0x122, 0x3eb: 0x59, 0x3ec: 0x123, 0x3ed: 0x124, 0x3ee: 0x5a, 0x3ef: 0xfd,\n\t0x3f0: 0x125, 0x3f1: 0x126, 0x3f2: 0x127, 0x3f3: 0x128, 0x3f4: 0x129, 0x3f5: 0xfd, 0x3f6: 0xfd, 0x3f7: 0xfd,\n\t0x3f8: 0xfd, 0x3f9: 0x12a, 0x3fa: 0x12b, 0x3fb: 0xfd, 0x3fc: 0x12c, 0x3fd: 0x12d, 0x3fe: 0x12e, 0x3ff: 0x12f,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x130, 0x401: 0x131, 0x402: 0x132, 0x403: 0x133, 0x404: 0x134, 0x405: 0x135, 0x406: 0x136, 0x407: 0x137,\n\t0x408: 0x138, 0x409: 0xfd, 0x40a: 0x139, 0x40b: 0x13a, 0x40c: 0x5b, 0x40d: 0x5c, 0x40e: 0xfd, 0x40f: 0xfd,\n\t0x410: 0x13b, 0x411: 0x13c, 0x412: 0x13d, 0x413: 0x13e, 0x414: 0xfd, 0x415: 0xfd, 0x416: 0x13f, 0x417: 0x140,\n\t0x418: 0x141, 0x419: 0x142, 0x41a: 0x143, 0x41b: 0x144, 0x41c: 0x145, 0x41d: 0xfd, 0x41e: 0xfd, 0x41f: 0xfd,\n\t0x420: 0x146, 0x421: 0xfd, 0x422: 0x147, 0x423: 0x148, 0x424: 0x5d, 0x425: 0x149, 0x426: 0x14a, 0x427: 0x14b,\n\t0x428: 0x14c, 0x429: 0x14d, 0x42a: 0x14e, 0x42b: 0x14f, 0x42c: 0xfd, 0x42d: 0xfd, 0x42e: 0xfd, 0x42f: 0xfd,\n\t0x430: 0x150, 0x431: 0x151, 0x432: 0x152, 0x433: 0xfd, 0x434: 0x153, 0x435: 0x154, 0x436: 0x155, 0x437: 0xfd,\n\t0x438: 0xfd, 0x439: 0xfd, 0x43a: 0xfd, 0x43b: 0x156, 0x43c: 0xfd, 0x43d: 0xfd, 0x43e: 0x157, 0x43f: 0x158,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xa0, 0x441: 0xa0, 0x442: 0xa0, 0x443: 0xa0, 0x444: 0xa0, 0x445: 0xa0, 0x446: 0xa0, 0x447: 0xa0,\n\t0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x159, 0x44f: 0xfd,\n\t0x450: 0x9c, 0x451: 0x15a, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x15b, 0x456: 0xfd, 0x457: 0xfd,\n\t0x458: 0xfd, 0x459: 0xfd, 0x45a: 0xfd, 0x45b: 0xfd, 0x45c: 0xfd, 0x45d: 0xfd, 0x45e: 0xfd, 0x45f: 0xfd,\n\t0x460: 0xfd, 0x461: 0xfd, 0x462: 0xfd, 0x463: 0xfd, 0x464: 0xfd, 0x465: 0xfd, 0x466: 0xfd, 0x467: 0xfd,\n\t0x468: 0xfd, 0x469: 0xfd, 0x46a: 0xfd, 0x46b: 0xfd, 0x46c: 0xfd, 0x46d: 0xfd, 0x46e: 0xfd, 0x46f: 0xfd,\n\t0x470: 0xfd, 0x471: 0xfd, 0x472: 0xfd, 0x473: 0xfd, 0x474: 0xfd, 0x475: 0xfd, 0x476: 0xfd, 0x477: 0xfd,\n\t0x478: 0xfd, 0x479: 0xfd, 0x47a: 0xfd, 0x47b: 0xfd, 0x47c: 0xfd, 0x47d: 0xfd, 0x47e: 0xfd, 0x47f: 0xfd,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xa0, 0x481: 0xa0, 0x482: 0xa0, 0x483: 0xa0, 0x484: 0xa0, 0x485: 0xa0, 0x486: 0xa0, 0x487: 0xa0,\n\t0x488: 0xa0, 0x489: 0xa0, 0x48a: 0xa0, 0x48b: 0xa0, 0x48c: 0xa0, 0x48d: 0xa0, 0x48e: 0xa0, 0x48f: 0xa0,\n\t0x490: 0x15c, 0x491: 0xfd, 0x492: 0xfd, 0x493: 0xfd, 0x494: 0xfd, 0x495: 0xfd, 0x496: 0xfd, 0x497: 0xfd,\n\t0x498: 0xfd, 0x499: 0xfd, 0x49a: 0xfd, 0x49b: 0xfd, 0x49c: 0xfd, 0x49d: 0xfd, 0x49e: 0xfd, 0x49f: 0xfd,\n\t0x4a0: 0xfd, 0x4a1: 0xfd, 0x4a2: 0xfd, 0x4a3: 0xfd, 0x4a4: 0xfd, 0x4a5: 0xfd, 0x4a6: 0xfd, 0x4a7: 0xfd,\n\t0x4a8: 0xfd, 0x4a9: 0xfd, 0x4aa: 0xfd, 0x4ab: 0xfd, 0x4ac: 0xfd, 0x4ad: 0xfd, 0x4ae: 0xfd, 0x4af: 0xfd,\n\t0x4b0: 0xfd, 0x4b1: 0xfd, 0x4b2: 0xfd, 0x4b3: 0xfd, 0x4b4: 0xfd, 0x4b5: 0xfd, 0x4b6: 0xfd, 0x4b7: 0xfd,\n\t0x4b8: 0xfd, 0x4b9: 0xfd, 0x4ba: 0xfd, 0x4bb: 0xfd, 0x4bc: 0xfd, 0x4bd: 0xfd, 0x4be: 0xfd, 0x4bf: 0xfd,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xfd, 0x4c1: 0xfd, 0x4c2: 0xfd, 0x4c3: 0xfd, 0x4c4: 0xfd, 0x4c5: 0xfd, 0x4c6: 0xfd, 0x4c7: 0xfd,\n\t0x4c8: 0xfd, 0x4c9: 0xfd, 0x4ca: 0xfd, 0x4cb: 0xfd, 0x4cc: 0xfd, 0x4cd: 0xfd, 0x4ce: 0xfd, 0x4cf: 0xfd,\n\t0x4d0: 0xa0, 0x4d1: 0xa0, 0x4d2: 0xa0, 0x4d3: 0xa0, 0x4d4: 0xa0, 0x4d5: 0xa0, 0x4d6: 0xa0, 0x4d7: 0xa0,\n\t0x4d8: 0xa0, 0x4d9: 0x15d, 0x4da: 0xfd, 0x4db: 0xfd, 0x4dc: 0xfd, 0x4dd: 0xfd, 0x4de: 0xfd, 0x4df: 0xfd,\n\t0x4e0: 0xfd, 0x4e1: 0xfd, 0x4e2: 0xfd, 0x4e3: 0xfd, 0x4e4: 0xfd, 0x4e5: 0xfd, 0x4e6: 0xfd, 0x4e7: 0xfd,\n\t0x4e8: 0xfd, 0x4e9: 0xfd, 0x4ea: 0xfd, 0x4eb: 0xfd, 0x4ec: 0xfd, 0x4ed: 0xfd, 0x4ee: 0xfd, 0x4ef: 0xfd,\n\t0x4f0: 0xfd, 0x4f1: 0xfd, 0x4f2: 0xfd, 0x4f3: 0xfd, 0x4f4: 0xfd, 0x4f5: 0xfd, 0x4f6: 0xfd, 0x4f7: 0xfd,\n\t0x4f8: 0xfd, 0x4f9: 0xfd, 0x4fa: 0xfd, 0x4fb: 0xfd, 0x4fc: 0xfd, 0x4fd: 0xfd, 0x4fe: 0xfd, 0x4ff: 0xfd,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xfd, 0x501: 0xfd, 0x502: 0xfd, 0x503: 0xfd, 0x504: 0xfd, 0x505: 0xfd, 0x506: 0xfd, 0x507: 0xfd,\n\t0x508: 0xfd, 0x509: 0xfd, 0x50a: 0xfd, 0x50b: 0xfd, 0x50c: 0xfd, 0x50d: 0xfd, 0x50e: 0xfd, 0x50f: 0xfd,\n\t0x510: 0xfd, 0x511: 0xfd, 0x512: 0xfd, 0x513: 0xfd, 0x514: 0xfd, 0x515: 0xfd, 0x516: 0xfd, 0x517: 0xfd,\n\t0x518: 0xfd, 0x519: 0xfd, 0x51a: 0xfd, 0x51b: 0xfd, 0x51c: 0xfd, 0x51d: 0xfd, 0x51e: 0xfd, 0x51f: 0xfd,\n\t0x520: 0xa0, 0x521: 0xa0, 0x522: 0xa0, 0x523: 0xa0, 0x524: 0xa0, 0x525: 0xa0, 0x526: 0xa0, 0x527: 0xa0,\n\t0x528: 0x14f, 0x529: 0x15e, 0x52a: 0xfd, 0x52b: 0x15f, 0x52c: 0x160, 0x52d: 0x161, 0x52e: 0x162, 0x52f: 0xfd,\n\t0x530: 0xfd, 0x531: 0xfd, 0x532: 0xfd, 0x533: 0xfd, 0x534: 0xfd, 0x535: 0xfd, 0x536: 0xfd, 0x537: 0xfd,\n\t0x538: 0xfd, 0x539: 0x163, 0x53a: 0x164, 0x53b: 0xfd, 0x53c: 0xa0, 0x53d: 0x165, 0x53e: 0x166, 0x53f: 0x167,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xa0, 0x541: 0xa0, 0x542: 0xa0, 0x543: 0xa0, 0x544: 0xa0, 0x545: 0xa0, 0x546: 0xa0, 0x547: 0xa0,\n\t0x548: 0xa0, 0x549: 0xa0, 0x54a: 0xa0, 0x54b: 0xa0, 0x54c: 0xa0, 0x54d: 0xa0, 0x54e: 0xa0, 0x54f: 0xa0,\n\t0x550: 0xa0, 0x551: 0xa0, 0x552: 0xa0, 0x553: 0xa0, 0x554: 0xa0, 0x555: 0xa0, 0x556: 0xa0, 0x557: 0xa0,\n\t0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x168,\n\t0x560: 0xa0, 0x561: 0xa0, 0x562: 0xa0, 0x563: 0xa0, 0x564: 0xa0, 0x565: 0xa0, 0x566: 0xa0, 0x567: 0xa0,\n\t0x568: 0xa0, 0x569: 0xa0, 0x56a: 0xa0, 0x56b: 0xa0, 0x56c: 0xa0, 0x56d: 0xa0, 0x56e: 0xa0, 0x56f: 0xa0,\n\t0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x169, 0x574: 0x16a, 0x575: 0xfd, 0x576: 0xfd, 0x577: 0xfd,\n\t0x578: 0xfd, 0x579: 0xfd, 0x57a: 0xfd, 0x57b: 0xfd, 0x57c: 0xfd, 0x57d: 0xfd, 0x57e: 0xfd, 0x57f: 0xfd,\n\t// Block 0x16, offset 0x580\n\t0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x16b, 0x585: 0x16c, 0x586: 0xa0, 0x587: 0xa0,\n\t0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16d, 0x58c: 0xfd, 0x58d: 0xfd, 0x58e: 0xfd, 0x58f: 0xfd,\n\t0x590: 0xfd, 0x591: 0xfd, 0x592: 0xfd, 0x593: 0xfd, 0x594: 0xfd, 0x595: 0xfd, 0x596: 0xfd, 0x597: 0xfd,\n\t0x598: 0xfd, 0x599: 0xfd, 0x59a: 0xfd, 0x59b: 0xfd, 0x59c: 0xfd, 0x59d: 0xfd, 0x59e: 0xfd, 0x59f: 0xfd,\n\t0x5a0: 0xfd, 0x5a1: 0xfd, 0x5a2: 0xfd, 0x5a3: 0xfd, 0x5a4: 0xfd, 0x5a5: 0xfd, 0x5a6: 0xfd, 0x5a7: 0xfd,\n\t0x5a8: 0xfd, 0x5a9: 0xfd, 0x5aa: 0xfd, 0x5ab: 0xfd, 0x5ac: 0xfd, 0x5ad: 0xfd, 0x5ae: 0xfd, 0x5af: 0xfd,\n\t0x5b0: 0xa0, 0x5b1: 0x16e, 0x5b2: 0x16f, 0x5b3: 0xfd, 0x5b4: 0xfd, 0x5b5: 0xfd, 0x5b6: 0xfd, 0x5b7: 0xfd,\n\t0x5b8: 0xfd, 0x5b9: 0xfd, 0x5ba: 0xfd, 0x5bb: 0xfd, 0x5bc: 0xfd, 0x5bd: 0xfd, 0x5be: 0xfd, 0x5bf: 0xfd,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x170, 0x5c4: 0x171, 0x5c5: 0x172, 0x5c6: 0x173, 0x5c7: 0x174,\n\t0x5c8: 0x9c, 0x5c9: 0x175, 0x5ca: 0xfd, 0x5cb: 0x176, 0x5cc: 0x9c, 0x5cd: 0x177, 0x5ce: 0xfd, 0x5cf: 0xfd,\n\t0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,\n\t0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,\n\t0x5e0: 0x9c, 0x5e1: 0x9c, 0x5e2: 0x9c, 0x5e3: 0x9c, 0x5e4: 0x9c, 0x5e5: 0x9c, 0x5e6: 0x9c, 0x5e7: 0x9c,\n\t0x5e8: 0x178, 0x5e9: 0x179, 0x5ea: 0x17a, 0x5eb: 0xfd, 0x5ec: 0xfd, 0x5ed: 0xfd, 0x5ee: 0xfd, 0x5ef: 0xfd,\n\t0x5f0: 0xfd, 0x5f1: 0xfd, 0x5f2: 0xfd, 0x5f3: 0xfd, 0x5f4: 0xfd, 0x5f5: 0xfd, 0x5f6: 0xfd, 0x5f7: 0xfd,\n\t0x5f8: 0xfd, 0x5f9: 0xfd, 0x5fa: 0xfd, 0x5fb: 0xfd, 0x5fc: 0xfd, 0x5fd: 0xfd, 0x5fe: 0xfd, 0x5ff: 0xfd,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x17b, 0x601: 0xfd, 0x602: 0xfd, 0x603: 0xfd, 0x604: 0x17c, 0x605: 0x17d, 0x606: 0xfd, 0x607: 0xfd,\n\t0x608: 0xfd, 0x609: 0xfd, 0x60a: 0xfd, 0x60b: 0x17e, 0x60c: 0xfd, 0x60d: 0xfd, 0x60e: 0xfd, 0x60f: 0xfd,\n\t0x610: 0xfd, 0x611: 0xfd, 0x612: 0xfd, 0x613: 0xfd, 0x614: 0xfd, 0x615: 0xfd, 0x616: 0xfd, 0x617: 0xfd,\n\t0x618: 0xfd, 0x619: 0xfd, 0x61a: 0xfd, 0x61b: 0xfd, 0x61c: 0xfd, 0x61d: 0xfd, 0x61e: 0xfd, 0x61f: 0xfd,\n\t0x620: 0x125, 0x621: 0x125, 0x622: 0x125, 0x623: 0x17f, 0x624: 0x6e, 0x625: 0x180, 0x626: 0xfd, 0x627: 0xfd,\n\t0x628: 0xfd, 0x629: 0xfd, 0x62a: 0xfd, 0x62b: 0xfd, 0x62c: 0xfd, 0x62d: 0xfd, 0x62e: 0xfd, 0x62f: 0xfd,\n\t0x630: 0xfd, 0x631: 0x181, 0x632: 0x182, 0x633: 0xfd, 0x634: 0x183, 0x635: 0xfd, 0x636: 0xfd, 0x637: 0xfd,\n\t0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x184, 0x63c: 0xfd, 0x63d: 0xfd, 0x63e: 0xfd, 0x63f: 0xfd,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x185, 0x641: 0x9c, 0x642: 0x186, 0x643: 0x187, 0x644: 0x72, 0x645: 0x73, 0x646: 0x188, 0x647: 0x189,\n\t0x648: 0x74, 0x649: 0x18a, 0x64a: 0xfd, 0x64b: 0xfd, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c,\n\t0x650: 0x9c, 0x651: 0x9c, 0x652: 0x9c, 0x653: 0x9c, 0x654: 0x9c, 0x655: 0x9c, 0x656: 0x9c, 0x657: 0x9c,\n\t0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x18b, 0x65c: 0x9c, 0x65d: 0x18c, 0x65e: 0x9c, 0x65f: 0x18d,\n\t0x660: 0x18e, 0x661: 0x18f, 0x662: 0x190, 0x663: 0xfd, 0x664: 0x9c, 0x665: 0x191, 0x666: 0x9c, 0x667: 0x192,\n\t0x668: 0x9c, 0x669: 0x193, 0x66a: 0x194, 0x66b: 0x195, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x196, 0x66f: 0x197,\n\t0x670: 0xfd, 0x671: 0xfd, 0x672: 0xfd, 0x673: 0xfd, 0x674: 0xfd, 0x675: 0xfd, 0x676: 0xfd, 0x677: 0xfd,\n\t0x678: 0xfd, 0x679: 0xfd, 0x67a: 0xfd, 0x67b: 0xfd, 0x67c: 0xfd, 0x67d: 0xfd, 0x67e: 0xfd, 0x67f: 0xfd,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0xa0, 0x681: 0xa0, 0x682: 0xa0, 0x683: 0xa0, 0x684: 0xa0, 0x685: 0xa0, 0x686: 0xa0, 0x687: 0xa0,\n\t0x688: 0xa0, 0x689: 0xa0, 0x68a: 0xa0, 0x68b: 0xa0, 0x68c: 0xa0, 0x68d: 0xa0, 0x68e: 0xa0, 0x68f: 0xa0,\n\t0x690: 0xa0, 0x691: 0xa0, 0x692: 0xa0, 0x693: 0xa0, 0x694: 0xa0, 0x695: 0xa0, 0x696: 0xa0, 0x697: 0xa0,\n\t0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x198, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0,\n\t0x6a0: 0xa0, 0x6a1: 0xa0, 0x6a2: 0xa0, 0x6a3: 0xa0, 0x6a4: 0xa0, 0x6a5: 0xa0, 0x6a6: 0xa0, 0x6a7: 0xa0,\n\t0x6a8: 0xa0, 0x6a9: 0xa0, 0x6aa: 0xa0, 0x6ab: 0xa0, 0x6ac: 0xa0, 0x6ad: 0xa0, 0x6ae: 0xa0, 0x6af: 0xa0,\n\t0x6b0: 0xa0, 0x6b1: 0xa0, 0x6b2: 0xa0, 0x6b3: 0xa0, 0x6b4: 0xa0, 0x6b5: 0xa0, 0x6b6: 0xa0, 0x6b7: 0xa0,\n\t0x6b8: 0xa0, 0x6b9: 0xa0, 0x6ba: 0xa0, 0x6bb: 0xa0, 0x6bc: 0xa0, 0x6bd: 0xa0, 0x6be: 0xa0, 0x6bf: 0xa0,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0xa0, 0x6c1: 0xa0, 0x6c2: 0xa0, 0x6c3: 0xa0, 0x6c4: 0xa0, 0x6c5: 0xa0, 0x6c6: 0xa0, 0x6c7: 0xa0,\n\t0x6c8: 0xa0, 0x6c9: 0xa0, 0x6ca: 0xa0, 0x6cb: 0xa0, 0x6cc: 0xa0, 0x6cd: 0xa0, 0x6ce: 0xa0, 0x6cf: 0xa0,\n\t0x6d0: 0xa0, 0x6d1: 0xa0, 0x6d2: 0xa0, 0x6d3: 0xa0, 0x6d4: 0xa0, 0x6d5: 0xa0, 0x6d6: 0xa0, 0x6d7: 0xa0,\n\t0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x199, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0,\n\t0x6e0: 0x19a, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0,\n\t0x6e8: 0xa0, 0x6e9: 0xa0, 0x6ea: 0xa0, 0x6eb: 0xa0, 0x6ec: 0xa0, 0x6ed: 0xa0, 0x6ee: 0xa0, 0x6ef: 0xa0,\n\t0x6f0: 0xa0, 0x6f1: 0xa0, 0x6f2: 0xa0, 0x6f3: 0xa0, 0x6f4: 0xa0, 0x6f5: 0xa0, 0x6f6: 0xa0, 0x6f7: 0xa0,\n\t0x6f8: 0xa0, 0x6f9: 0xa0, 0x6fa: 0xa0, 0x6fb: 0xa0, 0x6fc: 0xa0, 0x6fd: 0xa0, 0x6fe: 0xa0, 0x6ff: 0xa0,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0xa0, 0x701: 0xa0, 0x702: 0xa0, 0x703: 0xa0, 0x704: 0xa0, 0x705: 0xa0, 0x706: 0xa0, 0x707: 0xa0,\n\t0x708: 0xa0, 0x709: 0xa0, 0x70a: 0xa0, 0x70b: 0xa0, 0x70c: 0xa0, 0x70d: 0xa0, 0x70e: 0xa0, 0x70f: 0xa0,\n\t0x710: 0xa0, 0x711: 0xa0, 0x712: 0xa0, 0x713: 0xa0, 0x714: 0xa0, 0x715: 0xa0, 0x716: 0xa0, 0x717: 0xa0,\n\t0x718: 0xa0, 0x719: 0xa0, 0x71a: 0xa0, 0x71b: 0xa0, 0x71c: 0xa0, 0x71d: 0xa0, 0x71e: 0xa0, 0x71f: 0xa0,\n\t0x720: 0xa0, 0x721: 0xa0, 0x722: 0xa0, 0x723: 0xa0, 0x724: 0xa0, 0x725: 0xa0, 0x726: 0xa0, 0x727: 0xa0,\n\t0x728: 0xa0, 0x729: 0xa0, 0x72a: 0xa0, 0x72b: 0xa0, 0x72c: 0xa0, 0x72d: 0xa0, 0x72e: 0xa0, 0x72f: 0xa0,\n\t0x730: 0xa0, 0x731: 0xa0, 0x732: 0xa0, 0x733: 0xa0, 0x734: 0xa0, 0x735: 0xa0, 0x736: 0xa0, 0x737: 0xa0,\n\t0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x19b, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xa0, 0x741: 0xa0, 0x742: 0xa0, 0x743: 0xa0, 0x744: 0xa0, 0x745: 0xa0, 0x746: 0xa0, 0x747: 0xa0,\n\t0x748: 0xa0, 0x749: 0xa0, 0x74a: 0xa0, 0x74b: 0xa0, 0x74c: 0xa0, 0x74d: 0xa0, 0x74e: 0xa0, 0x74f: 0xa0,\n\t0x750: 0xa0, 0x751: 0xa0, 0x752: 0xa0, 0x753: 0xa0, 0x754: 0xa0, 0x755: 0xa0, 0x756: 0xa0, 0x757: 0xa0,\n\t0x758: 0xa0, 0x759: 0xa0, 0x75a: 0xa0, 0x75b: 0xa0, 0x75c: 0xa0, 0x75d: 0xa0, 0x75e: 0xa0, 0x75f: 0xa0,\n\t0x760: 0xa0, 0x761: 0xa0, 0x762: 0xa0, 0x763: 0xa0, 0x764: 0xa0, 0x765: 0xa0, 0x766: 0xa0, 0x767: 0xa0,\n\t0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19c,\n\t0x770: 0xfd, 0x771: 0xfd, 0x772: 0xfd, 0x773: 0xfd, 0x774: 0xfd, 0x775: 0xfd, 0x776: 0xfd, 0x777: 0xfd,\n\t0x778: 0xfd, 0x779: 0xfd, 0x77a: 0xfd, 0x77b: 0xfd, 0x77c: 0xfd, 0x77d: 0xfd, 0x77e: 0xfd, 0x77f: 0xfd,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xfd, 0x781: 0xfd, 0x782: 0xfd, 0x783: 0xfd, 0x784: 0xfd, 0x785: 0xfd, 0x786: 0xfd, 0x787: 0xfd,\n\t0x788: 0xfd, 0x789: 0xfd, 0x78a: 0xfd, 0x78b: 0xfd, 0x78c: 0xfd, 0x78d: 0xfd, 0x78e: 0xfd, 0x78f: 0xfd,\n\t0x790: 0xfd, 0x791: 0xfd, 0x792: 0xfd, 0x793: 0xfd, 0x794: 0xfd, 0x795: 0xfd, 0x796: 0xfd, 0x797: 0xfd,\n\t0x798: 0xfd, 0x799: 0xfd, 0x79a: 0xfd, 0x79b: 0xfd, 0x79c: 0xfd, 0x79d: 0xfd, 0x79e: 0xfd, 0x79f: 0xfd,\n\t0x7a0: 0x75, 0x7a1: 0x76, 0x7a2: 0x77, 0x7a3: 0x78, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x7b, 0x7a7: 0x7c,\n\t0x7a8: 0x7d, 0x7a9: 0xfd, 0x7aa: 0xfd, 0x7ab: 0xfd, 0x7ac: 0xfd, 0x7ad: 0xfd, 0x7ae: 0xfd, 0x7af: 0xfd,\n\t0x7b0: 0xfd, 0x7b1: 0xfd, 0x7b2: 0xfd, 0x7b3: 0xfd, 0x7b4: 0xfd, 0x7b5: 0xfd, 0x7b6: 0xfd, 0x7b7: 0xfd,\n\t0x7b8: 0xfd, 0x7b9: 0xfd, 0x7ba: 0xfd, 0x7bb: 0xfd, 0x7bc: 0xfd, 0x7bd: 0xfd, 0x7be: 0xfd, 0x7bf: 0xfd,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0xa0, 0x7c1: 0xa0, 0x7c2: 0xa0, 0x7c3: 0xa0, 0x7c4: 0xa0, 0x7c5: 0xa0, 0x7c6: 0xa0, 0x7c7: 0xa0,\n\t0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfd, 0x7cf: 0xfd,\n\t0x7d0: 0xfd, 0x7d1: 0xfd, 0x7d2: 0xfd, 0x7d3: 0xfd, 0x7d4: 0xfd, 0x7d5: 0xfd, 0x7d6: 0xfd, 0x7d7: 0xfd,\n\t0x7d8: 0xfd, 0x7d9: 0xfd, 0x7da: 0xfd, 0x7db: 0xfd, 0x7dc: 0xfd, 0x7dd: 0xfd, 0x7de: 0xfd, 0x7df: 0xfd,\n\t0x7e0: 0xfd, 0x7e1: 0xfd, 0x7e2: 0xfd, 0x7e3: 0xfd, 0x7e4: 0xfd, 0x7e5: 0xfd, 0x7e6: 0xfd, 0x7e7: 0xfd,\n\t0x7e8: 0xfd, 0x7e9: 0xfd, 0x7ea: 0xfd, 0x7eb: 0xfd, 0x7ec: 0xfd, 0x7ed: 0xfd, 0x7ee: 0xfd, 0x7ef: 0xfd,\n\t0x7f0: 0xfd, 0x7f1: 0xfd, 0x7f2: 0xfd, 0x7f3: 0xfd, 0x7f4: 0xfd, 0x7f5: 0xfd, 0x7f6: 0xfd, 0x7f7: 0xfd,\n\t0x7f8: 0xfd, 0x7f9: 0xfd, 0x7fa: 0xfd, 0x7fb: 0xfd, 0x7fc: 0xfd, 0x7fd: 0xfd, 0x7fe: 0xfd, 0x7ff: 0xfd,\n\t// Block 0x20, offset 0x800\n\t0x810: 0x0d, 0x811: 0x0e, 0x812: 0x0f, 0x813: 0x10, 0x814: 0x11, 0x815: 0x0b, 0x816: 0x12, 0x817: 0x07,\n\t0x818: 0x13, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x14, 0x81c: 0x0b, 0x81d: 0x15, 0x81e: 0x16, 0x81f: 0x17,\n\t0x820: 0x07, 0x821: 0x07, 0x822: 0x07, 0x823: 0x07, 0x824: 0x07, 0x825: 0x07, 0x826: 0x07, 0x827: 0x07,\n\t0x828: 0x07, 0x829: 0x07, 0x82a: 0x18, 0x82b: 0x19, 0x82c: 0x1a, 0x82d: 0x07, 0x82e: 0x1b, 0x82f: 0x1c,\n\t0x830: 0x07, 0x831: 0x1d, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,\n\t0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,\n\t0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,\n\t0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,\n\t0x860: 0x0b, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,\n\t0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,\n\t0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,\n\t0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfd, 0x883: 0xfd, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1,\n\t0x888: 0xfd, 0x889: 0xfd, 0x88a: 0xfd, 0x88b: 0xfd, 0x88c: 0xfd, 0x88d: 0xfd, 0x88e: 0xfd, 0x88f: 0xfd,\n\t0x890: 0xfd, 0x891: 0xfd, 0x892: 0xfd, 0x893: 0xfd, 0x894: 0xfd, 0x895: 0xfd, 0x896: 0xfd, 0x897: 0xfd,\n\t0x898: 0xfd, 0x899: 0xfd, 0x89a: 0xfd, 0x89b: 0xfd, 0x89c: 0xfd, 0x89d: 0xfd, 0x89e: 0xfd, 0x89f: 0xfd,\n\t0x8a0: 0xfd, 0x8a1: 0xfd, 0x8a2: 0xfd, 0x8a3: 0xfd, 0x8a4: 0xfd, 0x8a5: 0xfd, 0x8a6: 0xfd, 0x8a7: 0xfd,\n\t0x8a8: 0xfd, 0x8a9: 0xfd, 0x8aa: 0xfd, 0x8ab: 0xfd, 0x8ac: 0xfd, 0x8ad: 0xfd, 0x8ae: 0xfd, 0x8af: 0xfd,\n\t0x8b0: 0xfd, 0x8b1: 0xfd, 0x8b2: 0xfd, 0x8b3: 0xfd, 0x8b4: 0xfd, 0x8b5: 0xfd, 0x8b6: 0xfd, 0x8b7: 0xfd,\n\t0x8b8: 0xfd, 0x8b9: 0xfd, 0x8ba: 0xfd, 0x8bb: 0xfd, 0x8bc: 0xfd, 0x8bd: 0xfd, 0x8be: 0xfd, 0x8bf: 0xfd,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n\t0x8d0: 0x0b, 0x8d1: 0x0b, 0x8d2: 0x0b, 0x8d3: 0x0b, 0x8d4: 0x0b, 0x8d5: 0x0b, 0x8d6: 0x0b, 0x8d7: 0x0b,\n\t0x8d8: 0x0b, 0x8d9: 0x0b, 0x8da: 0x0b, 0x8db: 0x0b, 0x8dc: 0x0b, 0x8dd: 0x0b, 0x8de: 0x0b, 0x8df: 0x0b,\n\t0x8e0: 0x20, 0x8e1: 0x0b, 0x8e2: 0x0b, 0x8e3: 0x0b, 0x8e4: 0x0b, 0x8e5: 0x0b, 0x8e6: 0x0b, 0x8e7: 0x0b,\n\t0x8e8: 0x0b, 0x8e9: 0x0b, 0x8ea: 0x0b, 0x8eb: 0x0b, 0x8ec: 0x0b, 0x8ed: 0x0b, 0x8ee: 0x0b, 0x8ef: 0x0b,\n\t0x8f0: 0x0b, 0x8f1: 0x0b, 0x8f2: 0x0b, 0x8f3: 0x0b, 0x8f4: 0x0b, 0x8f5: 0x0b, 0x8f6: 0x0b, 0x8f7: 0x0b,\n\t0x8f8: 0x0b, 0x8f9: 0x0b, 0x8fa: 0x0b, 0x8fb: 0x0b, 0x8fc: 0x0b, 0x8fd: 0x0b, 0x8fe: 0x0b, 0x8ff: 0x0b,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0b, 0x901: 0x0b, 0x902: 0x0b, 0x903: 0x0b, 0x904: 0x0b, 0x905: 0x0b, 0x906: 0x0b, 0x907: 0x0b,\n\t0x908: 0x0b, 0x909: 0x0b, 0x90a: 0x0b, 0x90b: 0x0b, 0x90c: 0x0b, 0x90d: 0x0b, 0x90e: 0x0b, 0x90f: 0x0b,\n}\n\n// idnaSparseOffset: 292 entries, 584 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x32f, 0x331, 0x33a, 0x33d, 0x341, 0x346, 0x34b, 0x351, 0x362, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f8, 0x3fd, 0x40a, 0x40e, 0x413, 0x415, 0x417, 0x41b, 0x41d, 0x421, 0x42a, 0x430, 0x434, 0x444, 0x44e, 0x453, 0x456, 0x45c, 0x463, 0x468, 0x46c, 0x472, 0x477, 0x480, 0x485, 0x48b, 0x492, 0x499, 0x4a0, 0x4a4, 0x4a9, 0x4ac, 0x4b1, 0x4bd, 0x4c3, 0x4c8, 0x4cf, 0x4d7, 0x4dc, 0x4e0, 0x4f0, 0x4f7, 0x4fb, 0x4ff, 0x506, 0x508, 0x50b, 0x50e, 0x512, 0x51b, 0x51f, 0x527, 0x52f, 0x537, 0x543, 0x54f, 0x555, 0x55e, 0x56a, 0x571, 0x57a, 0x585, 0x58c, 0x59b, 0x5a8, 0x5b5, 0x5be, 0x5c2, 0x5d1, 0x5d9, 0x5e4, 0x5ed, 0x5f3, 0x5fb, 0x604, 0x60f, 0x612, 0x61e, 0x627, 0x62a, 0x62f, 0x638, 0x63d, 0x64a, 0x655, 0x65e, 0x668, 0x66b, 0x675, 0x67e, 0x68a, 0x697, 0x6a4, 0x6b2, 0x6b9, 0x6bd, 0x6c1, 0x6c4, 0x6c9, 0x6cc, 0x6d1, 0x6d4, 0x6db, 0x6e2, 0x6e6, 0x6f1, 0x6f4, 0x6f7, 0x6fa, 0x700, 0x706, 0x70f, 0x712, 0x715, 0x718, 0x71b, 0x722, 0x725, 0x72a, 0x734, 0x737, 0x73b, 0x74a, 0x756, 0x75a, 0x75f, 0x763, 0x768, 0x76c, 0x771, 0x77a, 0x785, 0x78b, 0x791, 0x797, 0x79d, 0x7a6, 0x7a9, 0x7ac, 0x7b0, 0x7b4, 0x7b8, 0x7be, 0x7c4, 0x7c9, 0x7cc, 0x7dc, 0x7e3, 0x7e6, 0x7eb, 0x7ef, 0x7f5, 0x7fc, 0x800, 0x804, 0x80d, 0x814, 0x819, 0x81d, 0x82b, 0x82e, 0x831, 0x835, 0x839, 0x83c, 0x83f, 0x844, 0x846, 0x848}\n\n// idnaSparseValues: 2123 entries, 8492 bytes\nvar idnaSparseValues = [2123]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x00a9, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x00b1, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00b9, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00c1, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00c9, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0131, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x01f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0201, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0209, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0xbf},\n\t// Block 0x3e, offset 0x225\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x247\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x253\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x260\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x02a9, lo: 0x80, hi: 0x80},\n\t{value: 0x02b1, lo: 0x81, hi: 0x81},\n\t{value: 0x02b9, lo: 0x82, hi: 0x82},\n\t{value: 0x02c1, lo: 0x83, hi: 0x83},\n\t{value: 0x02c9, lo: 0x84, hi: 0x85},\n\t{value: 0x02d1, lo: 0x86, hi: 0x86},\n\t{value: 0x02d9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x45, offset 0x26d\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x46, offset 0x27e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x282\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x28d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x291\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x0851, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x29a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0859, lo: 0xac, hi: 0xac},\n\t{value: 0x0861, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x0869, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0871, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2ad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2b0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0929, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0932, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2ba\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x0939, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2c2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0xbf},\n\t// Block 0x53, offset 0x2c6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2cc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x56, offset 0x2db\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2e6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x58, offset 0x2f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5c, offset 0x301\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x303\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5e, offset 0x306\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5f, offset 0x308\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x60, offset 0x30b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x096a, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0972, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0979, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x61, offset 0x315\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0981, lo: 0xbf, hi: 0xbf},\n\t// Block 0x62, offset 0x318\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x63, offset 0x327\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x098a, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0a82, lo: 0xa0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0008, lo: 0x01},\n\t{value: 0x0d19, lo: 0x80, hi: 0xbf},\n\t// Block 0x66, offset 0x331\n\t{value: 0x0008, lo: 0x08},\n\t{value: 0x0f19, lo: 0x80, hi: 0xb0},\n\t{value: 0x4045, lo: 0xb1, hi: 0xb1},\n\t{value: 0x10a1, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4065, lo: 0xb4, hi: 0xb4},\n\t{value: 0x10b1, lo: 0xb5, hi: 0xb7},\n\t{value: 0x4085, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4085, lo: 0xb9, hi: 0xb9},\n\t{value: 0x10c9, lo: 0xba, hi: 0xbf},\n\t// Block 0x67, offset 0x33a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x68, offset 0x33d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x69, offset 0x341\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x6a, offset 0x346\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6b, offset 0x34b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6c, offset 0x351\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0xe00d, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x83},\n\t{value: 0x03f5, lo: 0x84, hi: 0x84},\n\t{value: 0x0479, lo: 0x85, hi: 0x85},\n\t{value: 0x447d, lo: 0x86, hi: 0x86},\n\t{value: 0xe07d, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0xe01d, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xb4},\n\t{value: 0xe01d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0741, lo: 0xb8, hi: 0xb8},\n\t{value: 0x13f1, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x362\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x3b08, lo: 0xac, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6e, offset 0x372\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6f, offset 0x378\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x70, offset 0x37c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x38b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x72, offset 0x390\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x398\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x74, offset 0x3a2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x75, offset 0x3ad\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x76, offset 0x3b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3c6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x78, offset 0x3cf\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x79, offset 0x3df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ec\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0941, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa8},\n\t{value: 0x13f9, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3f8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3fd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7d, offset 0x40a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7e, offset 0x40e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7f, offset 0x413\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x80, offset 0x415\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x417\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x82, offset 0x41b\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x83, offset 0x41d\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x84, offset 0x421\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x1401, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x85, offset 0x42a\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x86, offset 0x430\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1751, lo: 0x80, hi: 0x82},\n\t{value: 0x1741, lo: 0x83, hi: 0x83},\n\t{value: 0x1769, lo: 0x84, hi: 0xbf},\n\t// Block 0x87, offset 0x434\n\t{value: 0x0008, lo: 0x0f},\n\t{value: 0x1d81, lo: 0x80, hi: 0x83},\n\t{value: 0x1d99, lo: 0x84, hi: 0x85},\n\t{value: 0x1da1, lo: 0x86, hi: 0x87},\n\t{value: 0x1da9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x1de9, lo: 0x92, hi: 0x97},\n\t{value: 0x1e11, lo: 0x98, hi: 0x9c},\n\t{value: 0x1e31, lo: 0x9d, hi: 0xb3},\n\t{value: 0x1d71, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1d81, lo: 0xb5, hi: 0xb5},\n\t{value: 0x1ee9, lo: 0xb6, hi: 0xbb},\n\t{value: 0x1f09, lo: 0xbc, hi: 0xbc},\n\t{value: 0x1ef9, lo: 0xbd, hi: 0xbd},\n\t{value: 0x1f19, lo: 0xbe, hi: 0xbf},\n\t// Block 0x88, offset 0x444\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x89, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x8a, offset 0x453\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x456\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8c, offset 0x45c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8d, offset 0x463\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8e, offset 0x468\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x46c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x472\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x91, offset 0x477\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x92, offset 0x480\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x93, offset 0x485\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x94, offset 0x48b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x95, offset 0x492\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x96, offset 0x499\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x4a0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x4a4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x4a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4ac\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9b, offset 0x4b1\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9c, offset 0x4bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9d, offset 0x4c3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cf\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0xa1, offset 0x4dc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e0\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa3, offset 0x4f0\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa5, offset 0x4fb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa6, offset 0x4ff\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa7, offset 0x506\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa8, offset 0x508\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa9, offset 0x50b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xaa, offset 0x50e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xab, offset 0x512\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xac, offset 0x51b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xad, offset 0x51f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xac},\n\t{value: 0x0818, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xae, offset 0x527\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xaf, offset 0x52f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xb0, offset 0x537\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0a08, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xba},\n\t{value: 0x0a08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0c08, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0a08, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb1, offset 0x543\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x81},\n\t{value: 0x0c08, lo: 0x82, hi: 0x83},\n\t{value: 0x0a08, lo: 0x84, hi: 0x84},\n\t{value: 0x0818, lo: 0x85, hi: 0x88},\n\t{value: 0x0c18, lo: 0x89, hi: 0x89},\n\t{value: 0x0a18, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0918, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb2, offset 0x54f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb3, offset 0x555\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x55e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb5, offset 0x56a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb6, offset 0x571\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb7, offset 0x57a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb8, offset 0x585\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb9, offset 0x58c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x3008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xba, offset 0x59b\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a8\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xbc, offset 0x5b5\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xbd, offset 0x5be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbe, offset 0x5c2\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xbf, offset 0x5d1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc0, offset 0x5d9\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xc1, offset 0x5e4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc2, offset 0x5ed\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xc3, offset 0x5f3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc4, offset 0x5fb\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc5, offset 0x604\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc6, offset 0x60f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc7, offset 0x612\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc8, offset 0x61e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc9, offset 0x627\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xca, offset 0x62a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcb, offset 0x62f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcc, offset 0x638\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcd, offset 0x63d\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xce, offset 0x64a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcf, offset 0x655\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xd0, offset 0x65e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xd1, offset 0x668\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd2, offset 0x66b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd3, offset 0x675\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xd4, offset 0x67e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd5, offset 0x68a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd6, offset 0x697\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd7, offset 0x6a4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd8, offset 0x6b2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd9, offset 0x6b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0xda, offset 0x6bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xdb, offset 0x6c1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xdc, offset 0x6c4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xdd, offset 0x6c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xde, offset 0x6cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xdf, offset 0x6d1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xe0, offset 0x6d4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe1, offset 0x6db\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe2, offset 0x6e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xe3, offset 0x6e6\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe4, offset 0x6f1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xe5, offset 0x6f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe6, offset 0x6f7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xe7, offset 0x6fa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xe8, offset 0x700\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe9, offset 0x706\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xea, offset 0x70f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xeb, offset 0x712\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xec, offset 0x715\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xed, offset 0x718\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xee, offset 0x71b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xef, offset 0x722\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xf0, offset 0x725\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xf1, offset 0x72a\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xf2, offset 0x734\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf3, offset 0x737\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xf4, offset 0x73b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x2211, lo: 0x9e, hi: 0x9e},\n\t{value: 0x2219, lo: 0x9f, hi: 0x9f},\n\t{value: 0x2221, lo: 0xa0, hi: 0xa0},\n\t{value: 0x2229, lo: 0xa1, hi: 0xa1},\n\t{value: 0x2231, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2239, lo: 0xa3, hi: 0xa3},\n\t{value: 0x2241, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf5, offset 0x74a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0x2249, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2251, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2259, lo: 0xbd, hi: 0xbd},\n\t{value: 0x2261, lo: 0xbe, hi: 0xbe},\n\t{value: 0x2269, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf6, offset 0x756\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2271, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xf7, offset 0x75a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xf8, offset 0x75f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf9, offset 0x763\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xfa, offset 0x768\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xfb, offset 0x76c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfc, offset 0x771\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xfd, offset 0x77a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xfe, offset 0x785\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xff, offset 0x78b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x100, offset 0x791\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x101, offset 0x797\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x102, offset 0x79d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x103, offset 0x7a6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0x104, offset 0x7a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x105, offset 0x7ac\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x106, offset 0x7b0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x107, offset 0x7b4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x108, offset 0x7b8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x109, offset 0x7be\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x10a, offset 0x7c4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x2491, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x10b, offset 0x7c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x10c, offset 0x7cc\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x2611, lo: 0x80, hi: 0x80},\n\t{value: 0x2619, lo: 0x81, hi: 0x81},\n\t{value: 0x2621, lo: 0x82, hi: 0x82},\n\t{value: 0x2629, lo: 0x83, hi: 0x83},\n\t{value: 0x2631, lo: 0x84, hi: 0x84},\n\t{value: 0x2639, lo: 0x85, hi: 0x85},\n\t{value: 0x2641, lo: 0x86, hi: 0x86},\n\t{value: 0x2649, lo: 0x87, hi: 0x87},\n\t{value: 0x2651, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x2659, lo: 0x90, hi: 0x90},\n\t{value: 0x2661, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x10d, offset 0x7dc\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x10e, offset 0x7e3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x10f, offset 0x7e6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x110, offset 0x7eb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x111, offset 0x7ef\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x112, offset 0x7f5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x113, offset 0x7fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0x114, offset 0x800\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x115, offset 0x804\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x116, offset 0x80d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x117, offset 0x814\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x118, offset 0x819\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0xbf},\n\t// Block 0x119, offset 0x81d\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xaf},\n\t{value: 0x06e1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0049, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0031, lo: 0xb3, hi: 0xb3},\n\t{value: 0x06e9, lo: 0xb4, hi: 0xb4},\n\t{value: 0x06f1, lo: 0xb5, hi: 0xb5},\n\t{value: 0x06f9, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0701, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0709, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0711, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x11a, offset 0x82b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x11b, offset 0x82e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x11c, offset 0x831\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x11d, offset 0x835\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x11e, offset 0x839\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x11f, offset 0x83c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xbf},\n\t// Block 0x120, offset 0x83f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x121, offset 0x844\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x122, offset 0x846\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x123, offset 0x848\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 44953 bytes (43KiB); checksum: D51909DD\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"15.0.0\"\n\nvar mappings string = \"\" + // Size: 6704 bytes\n\t\"  ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक\" +\n\t\"़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ\" +\n\t\"ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ\" +\n\t\"ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ\" +\n\t\"ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?\" +\n\t\"′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83\" +\n\t\"⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12\" +\n\t\")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)\" +\n\t\"(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전\" +\n\t\")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(\" +\n\t\"財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343\" +\n\t\"5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート\" +\n\t\"アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ\" +\n\t\"グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ\" +\n\t\"ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ\" +\n\t\"イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ\" +\n\t\"ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20\" +\n\t\"点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk\" +\n\t\"lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah\" +\n\t\"pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1\" +\n\t\"8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ\" +\n\t\"խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו\" +\n\t\"ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم\" +\n\t\"ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط\" +\n\t\"مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي\" +\n\t\"نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت\" +\n\t\"زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس\" +\n\t\"ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح\" +\n\t\"مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى\" +\n\t\"فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم\" +\n\t\"ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين\" +\n\t\"حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه\" +\n\t\"وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\\\$%@ـًـَـُـِـّـْءآ\" +\n\t\"أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\\x22'/^|~¢£¬¦¥ːˑʙɓʣꭦʥʤɖɗᶑɘɞʩɤɢ\" +\n\t\"ɠʛʜɧʄʪʫꞎɮʎøɶɷɺɾʀʨʦꭧʧʈⱱʏʡʢʘǀǁǂ𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκ\" +\n\t\"λμνξοστυψ∇∂ϝабгежзиклмпруфхцчшыэюꚉәіјөүӏґѕџҫꙑұٮڡٯ0,1,2,3,4,5,6,7,8,9,(a\" +\n\t\")(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y\" +\n\t\")(z)〔s〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申\" +\n\t\"割営配〔本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉\" +\n\t\"卑博即卽卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢\" +\n\t\"㠯巽帨帽幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最\" +\n\t\"暜肭䏙朗望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸\" +\n\t\"瑇瑜瑱璅瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦\" +\n\t\"若茝荣莭茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷\" +\n\t\"䧦雃嶲霣䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻\"\n\nvar mappingIndex = []uint16{ // 1729 elements\n\t// Entry 0 - 3F\n\t0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a,\n\t0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024,\n\t0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036,\n\t0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048,\n\t0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e,\n\t0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086,\n\t0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6,\n\t0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6,\n\t// Entry 40 - 7F\n\t0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116,\n\t0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c,\n\t0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174,\n\t0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182,\n\t0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c,\n\t0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199,\n\t0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8,\n\t0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6,\n\t// Entry 80 - BF\n\t0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6,\n\t0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6,\n\t0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5,\n\t0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5,\n\t0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211,\n\t0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239,\n\t0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261,\n\t0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287,\n\t// Entry C0 - FF\n\t0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa,\n\t0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8,\n\t0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8,\n\t0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f,\n\t0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,\n\t0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326,\n\t0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340,\n\t0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368,\n\t// Entry 100 - 13F\n\t0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386,\n\t0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1,\n\t0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1,\n\t0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db,\n\t0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401,\n\t0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417,\n\t0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441,\n\t0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469,\n\t// Entry 140 - 17F\n\t0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491,\n\t0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc,\n\t0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7,\n\t0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f,\n\t0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537,\n\t0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f,\n\t0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e,\n\t0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e,\n\t// Entry 180 - 1BF\n\t0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6,\n\t0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6,\n\t0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc,\n\t0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee,\n\t0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a,\n\t0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e,\n\t0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf,\n\t0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738,\n\t// Entry 1C0 - 1FF\n\t0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c,\n\t0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce,\n\t0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822,\n\t0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873,\n\t0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be,\n\t0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f,\n\t0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d,\n\t0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997,\n\t// Entry 200 - 23F\n\t0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9,\n\t0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1,\n\t0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00,\n\t0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a,\n\t0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c,\n\t0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c,\n\t0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f,\n\t0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e,\n\t// Entry 240 - 27F\n\t0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e,\n\t0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2,\n\t0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2,\n\t0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2,\n\t0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6,\n\t0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e,\n\t0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46,\n\t0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c,\n\t// Entry 280 - 2BF\n\t0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a,\n\t0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92,\n\t0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8,\n\t0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8,\n\t0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8,\n\t0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08,\n\t0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28,\n\t0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e,\n\t// Entry 2C0 - 2FF\n\t0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e,\n\t0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e,\n\t0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e,\n\t0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e,\n\t0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a,\n\t0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8,\n\t0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8,\n\t0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8,\n\t// Entry 300 - 33F\n\t0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18,\n\t0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38,\n\t0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58,\n\t0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78,\n\t0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98,\n\t0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8,\n\t0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8,\n\t0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8,\n\t// Entry 340 - 37F\n\t0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18,\n\t0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e,\n\t0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e,\n\t0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e,\n\t0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e,\n\t0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2,\n\t0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4,\n\t0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04,\n\t// Entry 380 - 3BF\n\t0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24,\n\t0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a,\n\t0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a,\n\t0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa,\n\t0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda,\n\t0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a,\n\t0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a,\n\t0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a,\n\t// Entry 3C0 - 3FF\n\t0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a,\n\t0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca,\n\t0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa,\n\t0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a,\n\t0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a,\n\t0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190,\n\t0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee,\n\t0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6,\n\t// Entry 400 - 43F\n\t0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe,\n\t0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215,\n\t0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227,\n\t0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237,\n\t0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247,\n\t0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257,\n\t0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f,\n\t0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279,\n\t// Entry 440 - 47F\n\t0x127b, 0x127d, 0x127f, 0x1281, 0x1283, 0x1285, 0x1287, 0x1289,\n\t0x128c, 0x128e, 0x1290, 0x1292, 0x1294, 0x1297, 0x1299, 0x129b,\n\t0x129d, 0x129f, 0x12a1, 0x12a3, 0x12a5, 0x12a7, 0x12a9, 0x12ab,\n\t0x12ad, 0x12af, 0x12b2, 0x12b4, 0x12b6, 0x12b8, 0x12ba, 0x12bc,\n\t0x12be, 0x12c0, 0x12c2, 0x12c4, 0x12c6, 0x12c9, 0x12cb, 0x12cd,\n\t0x12d0, 0x12d2, 0x12d4, 0x12d6, 0x12d8, 0x12da, 0x12dc, 0x12de,\n\t0x12e6, 0x12ee, 0x12fa, 0x1306, 0x1312, 0x131e, 0x132a, 0x1332,\n\t0x133a, 0x1346, 0x1352, 0x135e, 0x136a, 0x136c, 0x136e, 0x1370,\n\t// Entry 480 - 4BF\n\t0x1372, 0x1374, 0x1376, 0x1378, 0x137a, 0x137c, 0x137e, 0x1380,\n\t0x1382, 0x1384, 0x1386, 0x1388, 0x138a, 0x138d, 0x1390, 0x1392,\n\t0x1394, 0x1396, 0x1398, 0x139a, 0x139c, 0x139e, 0x13a0, 0x13a2,\n\t0x13a4, 0x13a6, 0x13a8, 0x13aa, 0x13ac, 0x13ae, 0x13b0, 0x13b2,\n\t0x13b4, 0x13b6, 0x13b8, 0x13ba, 0x13bc, 0x13bf, 0x13c1, 0x13c3,\n\t0x13c5, 0x13c7, 0x13c9, 0x13cb, 0x13cd, 0x13cf, 0x13d1, 0x13d3,\n\t0x13d6, 0x13d8, 0x13da, 0x13dc, 0x13de, 0x13e0, 0x13e2, 0x13e4,\n\t0x13e6, 0x13e8, 0x13ea, 0x13ec, 0x13ee, 0x13f0, 0x13f2, 0x13f5,\n\t// Entry 4C0 - 4FF\n\t0x13f8, 0x13fb, 0x13fe, 0x1401, 0x1404, 0x1407, 0x140a, 0x140d,\n\t0x1410, 0x1413, 0x1416, 0x1419, 0x141c, 0x141f, 0x1422, 0x1425,\n\t0x1428, 0x142b, 0x142e, 0x1431, 0x1434, 0x1437, 0x143a, 0x143d,\n\t0x1440, 0x1447, 0x1449, 0x144b, 0x144d, 0x1450, 0x1452, 0x1454,\n\t0x1456, 0x1458, 0x145a, 0x1460, 0x1466, 0x1469, 0x146c, 0x146f,\n\t0x1472, 0x1475, 0x1478, 0x147b, 0x147e, 0x1481, 0x1484, 0x1487,\n\t0x148a, 0x148d, 0x1490, 0x1493, 0x1496, 0x1499, 0x149c, 0x149f,\n\t0x14a2, 0x14a5, 0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7,\n\t// Entry 500 - 53F\n\t0x14ba, 0x14bd, 0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf,\n\t0x14d2, 0x14d5, 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7,\n\t0x14ea, 0x14ed, 0x14f6, 0x14ff, 0x1508, 0x1511, 0x151a, 0x1523,\n\t0x152c, 0x1535, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d,\n\t0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565,\n\t0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d,\n\t0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595,\n\t0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad,\n\t// Entry 540 - 57F\n\t0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5,\n\t0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd,\n\t0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5,\n\t0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d,\n\t0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625,\n\t0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d,\n\t0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655,\n\t0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d,\n\t// Entry 580 - 5BF\n\t0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685,\n\t0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d,\n\t0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5,\n\t0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd,\n\t0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5,\n\t0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd,\n\t0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715,\n\t0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d,\n\t// Entry 5C0 - 5FF\n\t0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745,\n\t0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d,\n\t0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775,\n\t0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d,\n\t0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5,\n\t0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd,\n\t0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5,\n\t0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed,\n\t// Entry 600 - 63F\n\t0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805,\n\t0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d,\n\t0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835,\n\t0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d,\n\t0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865,\n\t0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d,\n\t0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895,\n\t0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad,\n\t// Entry 640 - 67F\n\t0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5,\n\t0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd,\n\t0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5,\n\t0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d,\n\t0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925,\n\t0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d,\n\t0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955,\n\t0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d,\n\t// Entry 680 - 6BF\n\t0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985,\n\t0x1988, 0x198b, 0x198e, 0x1991, 0x1994, 0x1997, 0x199a, 0x199d,\n\t0x19a0, 0x19a3, 0x19a6, 0x19a9, 0x19ac, 0x19af, 0x19b2, 0x19b5,\n\t0x19b8, 0x19bb, 0x19be, 0x19c1, 0x19c4, 0x19c7, 0x19ca, 0x19cd,\n\t0x19d0, 0x19d3, 0x19d6, 0x19d9, 0x19dc, 0x19df, 0x19e2, 0x19e5,\n\t0x19e8, 0x19eb, 0x19ee, 0x19f1, 0x19f4, 0x19f7, 0x19fa, 0x19fd,\n\t0x1a00, 0x1a03, 0x1a06, 0x1a09, 0x1a0c, 0x1a0f, 0x1a12, 0x1a15,\n\t0x1a18, 0x1a1b, 0x1a1e, 0x1a21, 0x1a24, 0x1a27, 0x1a2a, 0x1a2d,\n\t// Entry 6C0 - 6FF\n\t0x1a30,\n} // Size: 3482 bytes\n\nvar xorData string = \"\" + // Size: 4907 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x03'\\x02\\x03)\\x02\\x03+\" +\n\t\"\\x02\\x03/\\x02\\x03\\x19\\x02\\x03\\x1b\\x02\\x03\\x1f\\x03\\x0d\\x22\\x18\\x03\\x0d\" +\n\t\"\\x22\\x1a\\x03\\x0d\\x22'\\x03\\x0d\\x22/\\x03\\x0d\\x223\\x03\\x0d\\x22$\\x02\\x01\\x1e\" +\n\t\"\\x03\\x0f$!\\x03\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\" +\n\t\"\\x18\\x03\\x0f\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\" +\n\t\"\\x03\\x0e\\x0d)\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\" +\n\t\"\\x03\\x0d. \\x03\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\" +\n\t\"\\x0d\\x0d\\x0f\\x03\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\" +\n\t\"\\x0c\\x09:\\x03\\x0e\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\" +\n\t\"\\x03\\x0c\\x1f\\x1c\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\" +\n\t\"\\x0b<+\\x03\\x0b8\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\" +\n\t\"\\x22&\\x03\\x0b\\x1a\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\" +\n\t\"\\x0a!\\x1a\\x03\\x0a!7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\" +\n\t\"\\x0a\\x00 \\x03\\x0a\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\" +\n\t\"\\x1b-\\x03\\x09-\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\" +\n\t\"\\x1f\\x03\\x093\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\" +\n\t\"\\x16\\x03\\x09\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\" +\n\t\"\\x03\\x09\\x1a\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\" +\n\t\"\\x08\\x02*\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\" +\n\t\"\\x070\\x0c\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x06\" +\n\t\"71\\x03\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \" +\n\t\"\\x1d\\x03\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 31598 bytes (30.86 KiB). Checksum: d3118eda0d6b5360.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 133:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 133\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 135 blocks, 8640 entries, 17280 bytes\n// The third block is the zero block.\nvar idnaValues = [8640]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018,\n\t0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018,\n\t0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091,\n\t0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0818,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139,\n\t0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08,\n\t0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0c08, 0x571: 0x0c08, 0x572: 0x0c08, 0x573: 0x0c08, 0x574: 0x0c08, 0x575: 0x0c08,\n\t0x576: 0x0c08, 0x577: 0x0c08, 0x578: 0x0c08, 0x579: 0x0c08, 0x57a: 0x0c08, 0x57b: 0x0c08,\n\t0x57c: 0x0c08, 0x57d: 0x0c08, 0x57e: 0x0c08, 0x57f: 0x0c08,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0c08, 0x581: 0x0c08, 0x582: 0x0c08, 0x583: 0x0808, 0x584: 0x0808, 0x585: 0x0808,\n\t0x586: 0x0a08, 0x587: 0x0808, 0x588: 0x0818, 0x589: 0x0a08, 0x58a: 0x0a08, 0x58b: 0x0a08,\n\t0x58c: 0x0a08, 0x58d: 0x0a08, 0x58e: 0x0c08, 0x58f: 0x0040, 0x590: 0x0840, 0x591: 0x0840,\n\t0x592: 0x0040, 0x593: 0x0040, 0x594: 0x0040, 0x595: 0x0040, 0x596: 0x0040, 0x597: 0x0040,\n\t0x598: 0x3308, 0x599: 0x3308, 0x59a: 0x3308, 0x59b: 0x3308, 0x59c: 0x3308, 0x59d: 0x3308,\n\t0x59e: 0x3308, 0x59f: 0x3308, 0x5a0: 0x0a08, 0x5a1: 0x0a08, 0x5a2: 0x0a08, 0x5a3: 0x0a08,\n\t0x5a4: 0x0a08, 0x5a5: 0x0a08, 0x5a6: 0x0a08, 0x5a7: 0x0a08, 0x5a8: 0x0a08, 0x5a9: 0x0a08,\n\t0x5aa: 0x0c08, 0x5ab: 0x0c08, 0x5ac: 0x0c08, 0x5ad: 0x0808, 0x5ae: 0x0c08, 0x5af: 0x0a08,\n\t0x5b0: 0x0a08, 0x5b1: 0x0c08, 0x5b2: 0x0c08, 0x5b3: 0x0a08, 0x5b4: 0x0a08, 0x5b5: 0x0a08,\n\t0x5b6: 0x0a08, 0x5b7: 0x0a08, 0x5b8: 0x0a08, 0x5b9: 0x0c08, 0x5ba: 0x0a08, 0x5bb: 0x0a08,\n\t0x5bc: 0x0a08, 0x5bd: 0x0a08, 0x5be: 0x0a08, 0x5bf: 0x0a08,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x3308,\n\t0x5c6: 0x3308, 0x5c7: 0x3308, 0x5c8: 0x3308, 0x5c9: 0x3008, 0x5ca: 0x3008, 0x5cb: 0x3008,\n\t0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x3008, 0x5cf: 0x3008, 0x5d0: 0x0008, 0x5d1: 0x3308,\n\t0x5d2: 0x3308, 0x5d3: 0x3308, 0x5d4: 0x3308, 0x5d5: 0x3308, 0x5d6: 0x3308, 0x5d7: 0x3308,\n\t0x5d8: 0x0159, 0x5d9: 0x0161, 0x5da: 0x0169, 0x5db: 0x0171, 0x5dc: 0x0179, 0x5dd: 0x0181,\n\t0x5de: 0x0189, 0x5df: 0x0191, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,\n\t0x5e4: 0x0018, 0x5e5: 0x0018, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0018, 0x5f1: 0x0008, 0x5f2: 0x0008, 0x5f3: 0x0008, 0x5f4: 0x0008, 0x5f5: 0x0008,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0008, 0x5fb: 0x0008,\n\t0x5fc: 0x0008, 0x5fd: 0x0008, 0x5fe: 0x0008, 0x5ff: 0x0008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0008, 0x601: 0x3308, 0x602: 0x3008, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,\n\t0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0008,\n\t0x60c: 0x0008, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,\n\t0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,\n\t0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,\n\t0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0040, 0x634: 0x0040, 0x635: 0x0040,\n\t0x636: 0x0008, 0x637: 0x0008, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,\n\t0x63c: 0x3308, 0x63d: 0x0008, 0x63e: 0x3008, 0x63f: 0x3008,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3308, 0x644: 0x3308, 0x645: 0x0040,\n\t0x646: 0x0040, 0x647: 0x3008, 0x648: 0x3008, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3008,\n\t0x64c: 0x3008, 0x64d: 0x3b08, 0x64e: 0x0008, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x3008,\n\t0x658: 0x0040, 0x659: 0x0040, 0x65a: 0x0040, 0x65b: 0x0040, 0x65c: 0x0199, 0x65d: 0x01a1,\n\t0x65e: 0x0040, 0x65f: 0x01a9, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x3308, 0x663: 0x3308,\n\t0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0008, 0x672: 0x0018, 0x673: 0x0018, 0x674: 0x0018, 0x675: 0x0018,\n\t0x676: 0x0018, 0x677: 0x0018, 0x678: 0x0018, 0x679: 0x0018, 0x67a: 0x0018, 0x67b: 0x0018,\n\t0x67c: 0x0008, 0x67d: 0x0018, 0x67e: 0x3308, 0x67f: 0x0040,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,\n\t0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0040,\n\t0x68c: 0x0040, 0x68d: 0x0040, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0040,\n\t0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,\n\t0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,\n\t0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,\n\t0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x01b1, 0x6b4: 0x0040, 0x6b5: 0x0008,\n\t0x6b6: 0x01b9, 0x6b7: 0x0040, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x3308, 0x6bd: 0x0040, 0x6be: 0x3008, 0x6bf: 0x3008,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x0040, 0x6c4: 0x0040, 0x6c5: 0x0040,\n\t0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x0040, 0x6ca: 0x0040, 0x6cb: 0x3308,\n\t0x6cc: 0x3308, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0040, 0x6d1: 0x3308,\n\t0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,\n\t0x6d8: 0x0040, 0x6d9: 0x01c1, 0x6da: 0x01c9, 0x6db: 0x01d1, 0x6dc: 0x0008, 0x6dd: 0x0040,\n\t0x6de: 0x01d9, 0x6df: 0x0040, 0x6e0: 0x0040, 0x6e1: 0x0040, 0x6e2: 0x0040, 0x6e3: 0x0040,\n\t0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x3308, 0x6f1: 0x3308, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0008, 0x6f5: 0x3308,\n\t0x6f6: 0x0018, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0040, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,\n\t0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,\n\t0x70c: 0x0008, 0x70d: 0x0008, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0008,\n\t0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,\n\t0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,\n\t0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,\n\t0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,\n\t0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,\n\t0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3008,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x3308,\n\t0x746: 0x0040, 0x747: 0x3308, 0x748: 0x3308, 0x749: 0x3008, 0x74a: 0x0040, 0x74b: 0x3008,\n\t0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x0040, 0x757: 0x0040,\n\t0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0040, 0x75d: 0x0040,\n\t0x75e: 0x0040, 0x75f: 0x0040, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,\n\t0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0018, 0x771: 0x0018, 0x772: 0x0040, 0x773: 0x0040, 0x774: 0x0040, 0x775: 0x0040,\n\t0x776: 0x0040, 0x777: 0x0040, 0x778: 0x0040, 0x779: 0x0008, 0x77a: 0x3308, 0x77b: 0x3308,\n\t0x77c: 0x3308, 0x77d: 0x3308, 0x77e: 0x3308, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0040, 0x781: 0x3308, 0x782: 0x3008, 0x783: 0x3008, 0x784: 0x0040, 0x785: 0x0008,\n\t0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0008,\n\t0x78c: 0x0008, 0x78d: 0x0040, 0x78e: 0x0040, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0008, 0x797: 0x0008,\n\t0x798: 0x0008, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0008, 0x79c: 0x0008, 0x79d: 0x0008,\n\t0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x0008, 0x7a3: 0x0008,\n\t0x7a4: 0x0008, 0x7a5: 0x0008, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0040,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0008, 0x7b1: 0x0040, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0040, 0x7b5: 0x0008,\n\t0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x3308, 0x7bd: 0x0008, 0x7be: 0x3008, 0x7bf: 0x3308,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3008, 0x7c1: 0x3308, 0x7c2: 0x3308, 0x7c3: 0x3308, 0x7c4: 0x3308, 0x7c5: 0x0040,\n\t0x7c6: 0x0040, 0x7c7: 0x3008, 0x7c8: 0x3008, 0x7c9: 0x0040, 0x7ca: 0x0040, 0x7cb: 0x3008,\n\t0x7cc: 0x3008, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,\n\t0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x3008,\n\t0x7d8: 0x0040, 0x7d9: 0x0040, 0x7da: 0x0040, 0x7db: 0x0040, 0x7dc: 0x01e1, 0x7dd: 0x01e9,\n\t0x7de: 0x0040, 0x7df: 0x0008, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,\n\t0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0018, 0x7f1: 0x0008, 0x7f2: 0x0018, 0x7f3: 0x0018, 0x7f4: 0x0018, 0x7f5: 0x0018,\n\t0x7f6: 0x0018, 0x7f7: 0x0018, 0x7f8: 0x0040, 0x7f9: 0x0040, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x0040, 0x7ff: 0x0040,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0040, 0x801: 0x0040, 0x802: 0x3308, 0x803: 0x0008, 0x804: 0x0040, 0x805: 0x0008,\n\t0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0040,\n\t0x80c: 0x0040, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,\n\t0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0040, 0x817: 0x0040,\n\t0x818: 0x0040, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0008, 0x81d: 0x0040,\n\t0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0040, 0x821: 0x0040, 0x822: 0x0040, 0x823: 0x0008,\n\t0x824: 0x0008, 0x825: 0x0040, 0x826: 0x0040, 0x827: 0x0040, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0040, 0x82c: 0x0040, 0x82d: 0x0040, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0008, 0x835: 0x0008,\n\t0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,\n\t0x83c: 0x0040, 0x83d: 0x0040, 0x83e: 0x3008, 0x83f: 0x3008,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x3308, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,\n\t0x846: 0x3308, 0x847: 0x3308, 0x848: 0x3308, 0x849: 0x0040, 0x84a: 0x3308, 0x84b: 0x3308,\n\t0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,\n\t0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3308, 0x856: 0x3308, 0x857: 0x0040,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0008,\n\t0x85e: 0x0040, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,\n\t0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0040, 0x871: 0x0040, 0x872: 0x0040, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,\n\t0x876: 0x0040, 0x877: 0x0018, 0x878: 0x0018, 0x879: 0x0018, 0x87a: 0x0018, 0x87b: 0x0018,\n\t0x87c: 0x0018, 0x87d: 0x0018, 0x87e: 0x0018, 0x87f: 0x0018,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0008, 0x881: 0x3308, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x0018, 0x885: 0x0008,\n\t0x886: 0x0008, 0x887: 0x0008, 0x888: 0x0008, 0x889: 0x0008, 0x88a: 0x0008, 0x88b: 0x0008,\n\t0x88c: 0x0008, 0x88d: 0x0040, 0x88e: 0x0008, 0x88f: 0x0008, 0x890: 0x0008, 0x891: 0x0040,\n\t0x892: 0x0008, 0x893: 0x0008, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x0008,\n\t0x898: 0x0008, 0x899: 0x0008, 0x89a: 0x0008, 0x89b: 0x0008, 0x89c: 0x0008, 0x89d: 0x0008,\n\t0x89e: 0x0008, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x0008, 0x8a3: 0x0008,\n\t0x8a4: 0x0008, 0x8a5: 0x0008, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0040,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0008, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0008, 0x8b4: 0x0040, 0x8b5: 0x0008,\n\t0x8b6: 0x0008, 0x8b7: 0x0008, 0x8b8: 0x0008, 0x8b9: 0x0008, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x3308, 0x8bd: 0x0008, 0x8be: 0x3008, 0x8bf: 0x3308,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3008, 0x8c2: 0x3008, 0x8c3: 0x3008, 0x8c4: 0x3008, 0x8c5: 0x0040,\n\t0x8c6: 0x3308, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3308, 0x8cd: 0x3b08, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0040, 0x8d5: 0x3008, 0x8d6: 0x3008, 0x8d7: 0x0040,\n\t0x8d8: 0x0040, 0x8d9: 0x0040, 0x8da: 0x0040, 0x8db: 0x0040, 0x8dc: 0x0040, 0x8dd: 0x0008,\n\t0x8de: 0x0008, 0x8df: 0x0040, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0040, 0x8f1: 0x0008, 0x8f2: 0x0008, 0x8f3: 0x3008, 0x8f4: 0x0040, 0x8f5: 0x0040,\n\t0x8f6: 0x0040, 0x8f7: 0x0040, 0x8f8: 0x0040, 0x8f9: 0x0040, 0x8fa: 0x0040, 0x8fb: 0x0040,\n\t0x8fc: 0x0040, 0x8fd: 0x0040, 0x8fe: 0x0040, 0x8ff: 0x0040,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x3008, 0x901: 0x3308, 0x902: 0x3308, 0x903: 0x3308, 0x904: 0x3308, 0x905: 0x0040,\n\t0x906: 0x3008, 0x907: 0x3008, 0x908: 0x3008, 0x909: 0x0040, 0x90a: 0x3008, 0x90b: 0x3008,\n\t0x90c: 0x3008, 0x90d: 0x3b08, 0x90e: 0x0008, 0x90f: 0x0018, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x3008,\n\t0x918: 0x0018, 0x919: 0x0018, 0x91a: 0x0018, 0x91b: 0x0018, 0x91c: 0x0018, 0x91d: 0x0018,\n\t0x91e: 0x0018, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x3308, 0x923: 0x3308,\n\t0x924: 0x0040, 0x925: 0x0040, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0018, 0x931: 0x0018, 0x932: 0x0018, 0x933: 0x0018, 0x934: 0x0018, 0x935: 0x0018,\n\t0x936: 0x0018, 0x937: 0x0018, 0x938: 0x0018, 0x939: 0x0018, 0x93a: 0x0008, 0x93b: 0x0008,\n\t0x93c: 0x0008, 0x93d: 0x0008, 0x93e: 0x0008, 0x93f: 0x0008,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0040, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0040, 0x944: 0x0008, 0x945: 0x0040,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0040,\n\t0x94c: 0x0008, 0x94d: 0x0008, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0008, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0008,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0008, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0040, 0x965: 0x0008, 0x966: 0x0040, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0008,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0008, 0x96e: 0x0008, 0x96f: 0x0008,\n\t0x970: 0x0008, 0x971: 0x3308, 0x972: 0x0008, 0x973: 0x01f9, 0x974: 0x3308, 0x975: 0x3308,\n\t0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x3308, 0x97a: 0x3b08, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x0008, 0x97e: 0x0040, 0x97f: 0x0040,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0211, 0x984: 0x0008, 0x985: 0x0008,\n\t0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0040, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x0219, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,\n\t0x992: 0x0221, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0229,\n\t0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0231, 0x99d: 0x0008,\n\t0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,\n\t0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0239,\n\t0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0008, 0x9ad: 0x0040, 0x9ae: 0x0040, 0x9af: 0x0040,\n\t0x9b0: 0x0040, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x0241, 0x9b4: 0x3308, 0x9b5: 0x0249,\n\t0x9b6: 0x0251, 0x9b7: 0x0259, 0x9b8: 0x0261, 0x9b9: 0x0269, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x3308, 0x9be: 0x3308, 0x9bf: 0x3008,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x3308, 0x9c1: 0x0271, 0x9c2: 0x3308, 0x9c3: 0x3308, 0x9c4: 0x3b08, 0x9c5: 0x0018,\n\t0x9c6: 0x3308, 0x9c7: 0x3308, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x3308, 0x9ce: 0x3308, 0x9cf: 0x3308, 0x9d0: 0x3308, 0x9d1: 0x3308,\n\t0x9d2: 0x3308, 0x9d3: 0x0279, 0x9d4: 0x3308, 0x9d5: 0x3308, 0x9d6: 0x3308, 0x9d7: 0x3308,\n\t0x9d8: 0x0040, 0x9d9: 0x3308, 0x9da: 0x3308, 0x9db: 0x3308, 0x9dc: 0x3308, 0x9dd: 0x0281,\n\t0x9de: 0x3308, 0x9df: 0x3308, 0x9e0: 0x3308, 0x9e1: 0x3308, 0x9e2: 0x0289, 0x9e3: 0x3308,\n\t0x9e4: 0x3308, 0x9e5: 0x3308, 0x9e6: 0x3308, 0x9e7: 0x0291, 0x9e8: 0x3308, 0x9e9: 0x3308,\n\t0x9ea: 0x3308, 0x9eb: 0x3308, 0x9ec: 0x0299, 0x9ed: 0x3308, 0x9ee: 0x3308, 0x9ef: 0x3308,\n\t0x9f0: 0x3308, 0x9f1: 0x3308, 0x9f2: 0x3308, 0x9f3: 0x3308, 0x9f4: 0x3308, 0x9f5: 0x3308,\n\t0x9f6: 0x3308, 0x9f7: 0x3308, 0x9f8: 0x3308, 0x9f9: 0x02a1, 0x9fa: 0x3308, 0x9fb: 0x3308,\n\t0x9fc: 0x3308, 0x9fd: 0x0040, 0x9fe: 0x0018, 0x9ff: 0x0018,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,\n\t0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,\n\t0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,\n\t0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,\n\t0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x0008, 0xa1c: 0x0008, 0xa1d: 0x0008,\n\t0xa1e: 0x0008, 0xa1f: 0x0008, 0xa20: 0x0008, 0xa21: 0x0008, 0xa22: 0x0008, 0xa23: 0x0008,\n\t0xa24: 0x0008, 0xa25: 0x0008, 0xa26: 0x0008, 0xa27: 0x0008, 0xa28: 0x0008, 0xa29: 0x0008,\n\t0xa2a: 0x0008, 0xa2b: 0x0008, 0xa2c: 0x0019, 0xa2d: 0x02e1, 0xa2e: 0x02e9, 0xa2f: 0x0008,\n\t0xa30: 0x02f1, 0xa31: 0x02f9, 0xa32: 0x0301, 0xa33: 0x0309, 0xa34: 0x00a9, 0xa35: 0x0311,\n\t0xa36: 0x00b1, 0xa37: 0x0319, 0xa38: 0x0101, 0xa39: 0x0321, 0xa3a: 0x0329, 0xa3b: 0x0008,\n\t0xa3c: 0x0051, 0xa3d: 0x0331, 0xa3e: 0x0339, 0xa3f: 0x00b9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0341, 0xa41: 0x0349, 0xa42: 0x00c1, 0xa43: 0x0019, 0xa44: 0x0351, 0xa45: 0x0359,\n\t0xa46: 0x05b5, 0xa47: 0x02e9, 0xa48: 0x02f1, 0xa49: 0x02f9, 0xa4a: 0x0361, 0xa4b: 0x0369,\n\t0xa4c: 0x0371, 0xa4d: 0x0309, 0xa4e: 0x0008, 0xa4f: 0x0319, 0xa50: 0x0321, 0xa51: 0x0379,\n\t0xa52: 0x0051, 0xa53: 0x0381, 0xa54: 0x05cd, 0xa55: 0x05cd, 0xa56: 0x0339, 0xa57: 0x0341,\n\t0xa58: 0x0349, 0xa59: 0x05b5, 0xa5a: 0x0389, 0xa5b: 0x0391, 0xa5c: 0x05e5, 0xa5d: 0x0399,\n\t0xa5e: 0x03a1, 0xa5f: 0x03a9, 0xa60: 0x03b1, 0xa61: 0x03b9, 0xa62: 0x0311, 0xa63: 0x00b9,\n\t0xa64: 0x0349, 0xa65: 0x0391, 0xa66: 0x0399, 0xa67: 0x03a1, 0xa68: 0x03c1, 0xa69: 0x03b1,\n\t0xa6a: 0x03b9, 0xa6b: 0x0008, 0xa6c: 0x0008, 0xa6d: 0x0008, 0xa6e: 0x0008, 0xa6f: 0x0008,\n\t0xa70: 0x0008, 0xa71: 0x0008, 0xa72: 0x0008, 0xa73: 0x0008, 0xa74: 0x0008, 0xa75: 0x0008,\n\t0xa76: 0x0008, 0xa77: 0x0008, 0xa78: 0x03c9, 0xa79: 0x0008, 0xa7a: 0x0008, 0xa7b: 0x0008,\n\t0xa7c: 0x0008, 0xa7d: 0x0008, 0xa7e: 0x0008, 0xa7f: 0x0008,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0008, 0xa81: 0x0008, 0xa82: 0x0008, 0xa83: 0x0008, 0xa84: 0x0008, 0xa85: 0x0008,\n\t0xa86: 0x0008, 0xa87: 0x0008, 0xa88: 0x0008, 0xa89: 0x0008, 0xa8a: 0x0008, 0xa8b: 0x0008,\n\t0xa8c: 0x0008, 0xa8d: 0x0008, 0xa8e: 0x0008, 0xa8f: 0x0008, 0xa90: 0x0008, 0xa91: 0x0008,\n\t0xa92: 0x0008, 0xa93: 0x0008, 0xa94: 0x0008, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,\n\t0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0008, 0xa9b: 0x03d1, 0xa9c: 0x03d9, 0xa9d: 0x03e1,\n\t0xa9e: 0x03e9, 0xa9f: 0x0371, 0xaa0: 0x03f1, 0xaa1: 0x03f9, 0xaa2: 0x0401, 0xaa3: 0x0409,\n\t0xaa4: 0x0411, 0xaa5: 0x0419, 0xaa6: 0x0421, 0xaa7: 0x05fd, 0xaa8: 0x0429, 0xaa9: 0x0431,\n\t0xaaa: 0xe17d, 0xaab: 0x0439, 0xaac: 0x0441, 0xaad: 0x0449, 0xaae: 0x0451, 0xaaf: 0x0459,\n\t0xab0: 0x0461, 0xab1: 0x0469, 0xab2: 0x0471, 0xab3: 0x0479, 0xab4: 0x0481, 0xab5: 0x0489,\n\t0xab6: 0x0491, 0xab7: 0x0499, 0xab8: 0x0615, 0xab9: 0x04a1, 0xaba: 0x04a9, 0xabb: 0x04b1,\n\t0xabc: 0x04b9, 0xabd: 0x04c1, 0xabe: 0x04c9, 0xabf: 0x04d1,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0xe00d, 0xad7: 0x0008,\n\t0xad8: 0xe00d, 0xad9: 0x0008, 0xada: 0xe00d, 0xadb: 0x0008, 0xadc: 0xe00d, 0xadd: 0x0008,\n\t0xade: 0xe00d, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0xe00d, 0xb01: 0x0008, 0xb02: 0xe00d, 0xb03: 0x0008, 0xb04: 0xe00d, 0xb05: 0x0008,\n\t0xb06: 0xe00d, 0xb07: 0x0008, 0xb08: 0xe00d, 0xb09: 0x0008, 0xb0a: 0xe00d, 0xb0b: 0x0008,\n\t0xb0c: 0xe00d, 0xb0d: 0x0008, 0xb0e: 0xe00d, 0xb0f: 0x0008, 0xb10: 0xe00d, 0xb11: 0x0008,\n\t0xb12: 0xe00d, 0xb13: 0x0008, 0xb14: 0xe00d, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0008, 0xb19: 0x0008, 0xb1a: 0x062d, 0xb1b: 0x064d, 0xb1c: 0x0008, 0xb1d: 0x0008,\n\t0xb1e: 0x04d9, 0xb1f: 0x0008, 0xb20: 0xe00d, 0xb21: 0x0008, 0xb22: 0xe00d, 0xb23: 0x0008,\n\t0xb24: 0xe00d, 0xb25: 0x0008, 0xb26: 0xe00d, 0xb27: 0x0008, 0xb28: 0xe00d, 0xb29: 0x0008,\n\t0xb2a: 0xe00d, 0xb2b: 0x0008, 0xb2c: 0xe00d, 0xb2d: 0x0008, 0xb2e: 0xe00d, 0xb2f: 0x0008,\n\t0xb30: 0xe00d, 0xb31: 0x0008, 0xb32: 0xe00d, 0xb33: 0x0008, 0xb34: 0xe00d, 0xb35: 0x0008,\n\t0xb36: 0xe00d, 0xb37: 0x0008, 0xb38: 0xe00d, 0xb39: 0x0008, 0xb3a: 0xe00d, 0xb3b: 0x0008,\n\t0xb3c: 0xe00d, 0xb3d: 0x0008, 0xb3e: 0xe00d, 0xb3f: 0x0008,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x0008, 0xb41: 0x0008, 0xb42: 0x0008, 0xb43: 0x0008, 0xb44: 0x0008, 0xb45: 0x0008,\n\t0xb46: 0x0040, 0xb47: 0x0040, 0xb48: 0xe045, 0xb49: 0xe045, 0xb4a: 0xe045, 0xb4b: 0xe045,\n\t0xb4c: 0xe045, 0xb4d: 0xe045, 0xb4e: 0x0040, 0xb4f: 0x0040, 0xb50: 0x0008, 0xb51: 0x0008,\n\t0xb52: 0x0008, 0xb53: 0x0008, 0xb54: 0x0008, 0xb55: 0x0008, 0xb56: 0x0008, 0xb57: 0x0008,\n\t0xb58: 0x0040, 0xb59: 0xe045, 0xb5a: 0x0040, 0xb5b: 0xe045, 0xb5c: 0x0040, 0xb5d: 0xe045,\n\t0xb5e: 0x0040, 0xb5f: 0xe045, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x0008,\n\t0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,\n\t0xb6a: 0xe045, 0xb6b: 0xe045, 0xb6c: 0xe045, 0xb6d: 0xe045, 0xb6e: 0xe045, 0xb6f: 0xe045,\n\t0xb70: 0x0008, 0xb71: 0x04e1, 0xb72: 0x0008, 0xb73: 0x04e9, 0xb74: 0x0008, 0xb75: 0x04f1,\n\t0xb76: 0x0008, 0xb77: 0x04f9, 0xb78: 0x0008, 0xb79: 0x0501, 0xb7a: 0x0008, 0xb7b: 0x0509,\n\t0xb7c: 0x0008, 0xb7d: 0x0511, 0xb7e: 0x0040, 0xb7f: 0x0040,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x0519, 0xb81: 0x0521, 0xb82: 0x0529, 0xb83: 0x0531, 0xb84: 0x0539, 0xb85: 0x0541,\n\t0xb86: 0x0549, 0xb87: 0x0551, 0xb88: 0x0519, 0xb89: 0x0521, 0xb8a: 0x0529, 0xb8b: 0x0531,\n\t0xb8c: 0x0539, 0xb8d: 0x0541, 0xb8e: 0x0549, 0xb8f: 0x0551, 0xb90: 0x0559, 0xb91: 0x0561,\n\t0xb92: 0x0569, 0xb93: 0x0571, 0xb94: 0x0579, 0xb95: 0x0581, 0xb96: 0x0589, 0xb97: 0x0591,\n\t0xb98: 0x0559, 0xb99: 0x0561, 0xb9a: 0x0569, 0xb9b: 0x0571, 0xb9c: 0x0579, 0xb9d: 0x0581,\n\t0xb9e: 0x0589, 0xb9f: 0x0591, 0xba0: 0x0599, 0xba1: 0x05a1, 0xba2: 0x05a9, 0xba3: 0x05b1,\n\t0xba4: 0x05b9, 0xba5: 0x05c1, 0xba6: 0x05c9, 0xba7: 0x05d1, 0xba8: 0x0599, 0xba9: 0x05a1,\n\t0xbaa: 0x05a9, 0xbab: 0x05b1, 0xbac: 0x05b9, 0xbad: 0x05c1, 0xbae: 0x05c9, 0xbaf: 0x05d1,\n\t0xbb0: 0x0008, 0xbb1: 0x0008, 0xbb2: 0x05d9, 0xbb3: 0x05e1, 0xbb4: 0x05e9, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x05f1, 0xbb8: 0xe045, 0xbb9: 0xe045, 0xbba: 0x0665, 0xbbb: 0x04e1,\n\t0xbbc: 0x05e1, 0xbbd: 0x067e, 0xbbe: 0x05f9, 0xbbf: 0x069e,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x06be, 0xbc1: 0x0602, 0xbc2: 0x0609, 0xbc3: 0x0611, 0xbc4: 0x0619, 0xbc5: 0x0040,\n\t0xbc6: 0x0008, 0xbc7: 0x0621, 0xbc8: 0x06dd, 0xbc9: 0x04e9, 0xbca: 0x06f5, 0xbcb: 0x04f1,\n\t0xbcc: 0x0611, 0xbcd: 0x062a, 0xbce: 0x0632, 0xbcf: 0x063a, 0xbd0: 0x0008, 0xbd1: 0x0008,\n\t0xbd2: 0x0008, 0xbd3: 0x0641, 0xbd4: 0x0040, 0xbd5: 0x0040, 0xbd6: 0x0008, 0xbd7: 0x0008,\n\t0xbd8: 0xe045, 0xbd9: 0xe045, 0xbda: 0x070d, 0xbdb: 0x04f9, 0xbdc: 0x0040, 0xbdd: 0x064a,\n\t0xbde: 0x0652, 0xbdf: 0x065a, 0xbe0: 0x0008, 0xbe1: 0x0008, 0xbe2: 0x0008, 0xbe3: 0x0661,\n\t0xbe4: 0x0008, 0xbe5: 0x0008, 0xbe6: 0x0008, 0xbe7: 0x0008, 0xbe8: 0xe045, 0xbe9: 0xe045,\n\t0xbea: 0x0725, 0xbeb: 0x0509, 0xbec: 0xe04d, 0xbed: 0x066a, 0xbee: 0x012a, 0xbef: 0x0672,\n\t0xbf0: 0x0040, 0xbf1: 0x0040, 0xbf2: 0x0679, 0xbf3: 0x0681, 0xbf4: 0x0689, 0xbf5: 0x0040,\n\t0xbf6: 0x0008, 0xbf7: 0x0691, 0xbf8: 0x073d, 0xbf9: 0x0501, 0xbfa: 0x0515, 0xbfb: 0x0511,\n\t0xbfc: 0x0681, 0xbfd: 0x0756, 0xbfe: 0x0776, 0xbff: 0x0040,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x000a, 0xc01: 0x000a, 0xc02: 0x000a, 0xc03: 0x000a, 0xc04: 0x000a, 0xc05: 0x000a,\n\t0xc06: 0x000a, 0xc07: 0x000a, 0xc08: 0x000a, 0xc09: 0x000a, 0xc0a: 0x000a, 0xc0b: 0x03c0,\n\t0xc0c: 0x0003, 0xc0d: 0x0003, 0xc0e: 0x0340, 0xc0f: 0x0b40, 0xc10: 0x0018, 0xc11: 0xe00d,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x0796,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x0018, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,\n\t0xc24: 0x0040, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0018, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x000a,\n\t0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0699, 0xc34: 0x06a1, 0xc35: 0x0018,\n\t0xc36: 0x06a9, 0xc37: 0x06b1, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,\n\t0xc3c: 0x06ba, 0xc3d: 0x0018, 0xc3e: 0x07b6, 0xc3f: 0x0018,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x0018, 0xc41: 0x0018, 0xc42: 0x0018, 0xc43: 0x0018, 0xc44: 0x0018, 0xc45: 0x0018,\n\t0xc46: 0x0018, 0xc47: 0x06c2, 0xc48: 0x06ca, 0xc49: 0x06d2, 0xc4a: 0x0018, 0xc4b: 0x0018,\n\t0xc4c: 0x0018, 0xc4d: 0x0018, 0xc4e: 0x0018, 0xc4f: 0x0018, 0xc50: 0x0018, 0xc51: 0x0018,\n\t0xc52: 0x0018, 0xc53: 0x0018, 0xc54: 0x0018, 0xc55: 0x0018, 0xc56: 0x0018, 0xc57: 0x06d9,\n\t0xc58: 0x0018, 0xc59: 0x0018, 0xc5a: 0x0018, 0xc5b: 0x0018, 0xc5c: 0x0018, 0xc5d: 0x0018,\n\t0xc5e: 0x0018, 0xc5f: 0x000a, 0xc60: 0x03c0, 0xc61: 0x0340, 0xc62: 0x0340, 0xc63: 0x0340,\n\t0xc64: 0x03c0, 0xc65: 0x0040, 0xc66: 0x0040, 0xc67: 0x0040, 0xc68: 0x0040, 0xc69: 0x0040,\n\t0xc6a: 0x0340, 0xc6b: 0x0340, 0xc6c: 0x0340, 0xc6d: 0x0340, 0xc6e: 0x0340, 0xc6f: 0x0340,\n\t0xc70: 0x06e1, 0xc71: 0x0311, 0xc72: 0x0040, 0xc73: 0x0040, 0xc74: 0x06e9, 0xc75: 0x06f1,\n\t0xc76: 0x06f9, 0xc77: 0x0701, 0xc78: 0x0709, 0xc79: 0x0711, 0xc7a: 0x071a, 0xc7b: 0x07d5,\n\t0xc7c: 0x0722, 0xc7d: 0x072a, 0xc7e: 0x0732, 0xc7f: 0x0329,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x06e1, 0xc81: 0x0049, 0xc82: 0x0029, 0xc83: 0x0031, 0xc84: 0x06e9, 0xc85: 0x06f1,\n\t0xc86: 0x06f9, 0xc87: 0x0701, 0xc88: 0x0709, 0xc89: 0x0711, 0xc8a: 0x071a, 0xc8b: 0x07ed,\n\t0xc8c: 0x0722, 0xc8d: 0x072a, 0xc8e: 0x0732, 0xc8f: 0x0040, 0xc90: 0x0019, 0xc91: 0x02f9,\n\t0xc92: 0x0051, 0xc93: 0x0109, 0xc94: 0x0361, 0xc95: 0x00a9, 0xc96: 0x0319, 0xc97: 0x0101,\n\t0xc98: 0x0321, 0xc99: 0x0329, 0xc9a: 0x0339, 0xc9b: 0x0089, 0xc9c: 0x0341, 0xc9d: 0x0040,\n\t0xc9e: 0x0040, 0xc9f: 0x0040, 0xca0: 0x0018, 0xca1: 0x0018, 0xca2: 0x0018, 0xca3: 0x0018,\n\t0xca4: 0x0018, 0xca5: 0x0018, 0xca6: 0x0018, 0xca7: 0x0018, 0xca8: 0x0739, 0xca9: 0x0018,\n\t0xcaa: 0x0018, 0xcab: 0x0018, 0xcac: 0x0018, 0xcad: 0x0018, 0xcae: 0x0018, 0xcaf: 0x0018,\n\t0xcb0: 0x0018, 0xcb1: 0x0018, 0xcb2: 0x0018, 0xcb3: 0x0018, 0xcb4: 0x0018, 0xcb5: 0x0018,\n\t0xcb6: 0x0018, 0xcb7: 0x0018, 0xcb8: 0x0018, 0xcb9: 0x0018, 0xcba: 0x0018, 0xcbb: 0x0018,\n\t0xcbc: 0x0018, 0xcbd: 0x0018, 0xcbe: 0x0018, 0xcbf: 0x0018,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0806, 0xcc1: 0x0826, 0xcc2: 0x03d9, 0xcc3: 0x0845, 0xcc4: 0x0018, 0xcc5: 0x0866,\n\t0xcc6: 0x0886, 0xcc7: 0x0369, 0xcc8: 0x0018, 0xcc9: 0x08a5, 0xcca: 0x0309, 0xccb: 0x00a9,\n\t0xccc: 0x00a9, 0xccd: 0x00a9, 0xcce: 0x00a9, 0xccf: 0x0741, 0xcd0: 0x0311, 0xcd1: 0x0311,\n\t0xcd2: 0x0101, 0xcd3: 0x0101, 0xcd4: 0x0018, 0xcd5: 0x0329, 0xcd6: 0x0749, 0xcd7: 0x0018,\n\t0xcd8: 0x0018, 0xcd9: 0x0339, 0xcda: 0x0751, 0xcdb: 0x00b9, 0xcdc: 0x00b9, 0xcdd: 0x00b9,\n\t0xcde: 0x0018, 0xcdf: 0x0018, 0xce0: 0x0759, 0xce1: 0x08c5, 0xce2: 0x0761, 0xce3: 0x0018,\n\t0xce4: 0x04b1, 0xce5: 0x0018, 0xce6: 0x0769, 0xce7: 0x0018, 0xce8: 0x04b1, 0xce9: 0x0018,\n\t0xcea: 0x0319, 0xceb: 0x0771, 0xcec: 0x02e9, 0xced: 0x03d9, 0xcee: 0x0018, 0xcef: 0x02f9,\n\t0xcf0: 0x02f9, 0xcf1: 0x03f1, 0xcf2: 0x0040, 0xcf3: 0x0321, 0xcf4: 0x0051, 0xcf5: 0x0779,\n\t0xcf6: 0x0781, 0xcf7: 0x0789, 0xcf8: 0x0791, 0xcf9: 0x0311, 0xcfa: 0x0018, 0xcfb: 0x08e5,\n\t0xcfc: 0x0799, 0xcfd: 0x03a1, 0xcfe: 0x03a1, 0xcff: 0x0799,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0905, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x02f1,\n\t0xd06: 0x02f1, 0xd07: 0x02f9, 0xd08: 0x0311, 0xd09: 0x00b1, 0xd0a: 0x0018, 0xd0b: 0x0018,\n\t0xd0c: 0x0018, 0xd0d: 0x0018, 0xd0e: 0x0008, 0xd0f: 0x0018, 0xd10: 0x07a1, 0xd11: 0x07a9,\n\t0xd12: 0x07b1, 0xd13: 0x07b9, 0xd14: 0x07c1, 0xd15: 0x07c9, 0xd16: 0x07d1, 0xd17: 0x07d9,\n\t0xd18: 0x07e1, 0xd19: 0x07e9, 0xd1a: 0x07f1, 0xd1b: 0x07f9, 0xd1c: 0x0801, 0xd1d: 0x0809,\n\t0xd1e: 0x0811, 0xd1f: 0x0819, 0xd20: 0x0311, 0xd21: 0x0821, 0xd22: 0x091d, 0xd23: 0x0829,\n\t0xd24: 0x0391, 0xd25: 0x0831, 0xd26: 0x093d, 0xd27: 0x0839, 0xd28: 0x0841, 0xd29: 0x0109,\n\t0xd2a: 0x0849, 0xd2b: 0x095d, 0xd2c: 0x0101, 0xd2d: 0x03d9, 0xd2e: 0x02f1, 0xd2f: 0x0321,\n\t0xd30: 0x0311, 0xd31: 0x0821, 0xd32: 0x097d, 0xd33: 0x0829, 0xd34: 0x0391, 0xd35: 0x0831,\n\t0xd36: 0x099d, 0xd37: 0x0839, 0xd38: 0x0841, 0xd39: 0x0109, 0xd3a: 0x0849, 0xd3b: 0x09bd,\n\t0xd3c: 0x0101, 0xd3d: 0x03d9, 0xd3e: 0x02f1, 0xd3f: 0x0321,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0018, 0xd41: 0x0018, 0xd42: 0x0018, 0xd43: 0x0018, 0xd44: 0x0018, 0xd45: 0x0018,\n\t0xd46: 0x0018, 0xd47: 0x0018, 0xd48: 0x0018, 0xd49: 0x0018, 0xd4a: 0x0018, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0040, 0xd5d: 0x0040,\n\t0xd5e: 0x0040, 0xd5f: 0x0040, 0xd60: 0x0049, 0xd61: 0x0029, 0xd62: 0x0031, 0xd63: 0x06e9,\n\t0xd64: 0x06f1, 0xd65: 0x06f9, 0xd66: 0x0701, 0xd67: 0x0709, 0xd68: 0x0711, 0xd69: 0x0879,\n\t0xd6a: 0x0881, 0xd6b: 0x0889, 0xd6c: 0x0891, 0xd6d: 0x0899, 0xd6e: 0x08a1, 0xd6f: 0x08a9,\n\t0xd70: 0x08b1, 0xd71: 0x08b9, 0xd72: 0x08c1, 0xd73: 0x08c9, 0xd74: 0x0a1e, 0xd75: 0x0a3e,\n\t0xd76: 0x0a5e, 0xd77: 0x0a7e, 0xd78: 0x0a9e, 0xd79: 0x0abe, 0xd7a: 0x0ade, 0xd7b: 0x0afe,\n\t0xd7c: 0x0b1e, 0xd7d: 0x08d2, 0xd7e: 0x08da, 0xd7f: 0x08e2,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x08ea, 0xd81: 0x08f2, 0xd82: 0x08fa, 0xd83: 0x0902, 0xd84: 0x090a, 0xd85: 0x0912,\n\t0xd86: 0x091a, 0xd87: 0x0922, 0xd88: 0x0040, 0xd89: 0x0040, 0xd8a: 0x0040, 0xd8b: 0x0040,\n\t0xd8c: 0x0040, 0xd8d: 0x0040, 0xd8e: 0x0040, 0xd8f: 0x0040, 0xd90: 0x0040, 0xd91: 0x0040,\n\t0xd92: 0x0040, 0xd93: 0x0040, 0xd94: 0x0040, 0xd95: 0x0040, 0xd96: 0x0040, 0xd97: 0x0040,\n\t0xd98: 0x0040, 0xd99: 0x0040, 0xd9a: 0x0040, 0xd9b: 0x0040, 0xd9c: 0x0b3e, 0xd9d: 0x0b5e,\n\t0xd9e: 0x0b7e, 0xd9f: 0x0b9e, 0xda0: 0x0bbe, 0xda1: 0x0bde, 0xda2: 0x0bfe, 0xda3: 0x0c1e,\n\t0xda4: 0x0c3e, 0xda5: 0x0c5e, 0xda6: 0x0c7e, 0xda7: 0x0c9e, 0xda8: 0x0cbe, 0xda9: 0x0cde,\n\t0xdaa: 0x0cfe, 0xdab: 0x0d1e, 0xdac: 0x0d3e, 0xdad: 0x0d5e, 0xdae: 0x0d7e, 0xdaf: 0x0d9e,\n\t0xdb0: 0x0dbe, 0xdb1: 0x0dde, 0xdb2: 0x0dfe, 0xdb3: 0x0e1e, 0xdb4: 0x0e3e, 0xdb5: 0x0e5e,\n\t0xdb6: 0x0019, 0xdb7: 0x02e9, 0xdb8: 0x03d9, 0xdb9: 0x02f1, 0xdba: 0x02f9, 0xdbb: 0x03f1,\n\t0xdbc: 0x0309, 0xdbd: 0x00a9, 0xdbe: 0x0311, 0xdbf: 0x00b1,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0319, 0xdc1: 0x0101, 0xdc2: 0x0321, 0xdc3: 0x0329, 0xdc4: 0x0051, 0xdc5: 0x0339,\n\t0xdc6: 0x0751, 0xdc7: 0x00b9, 0xdc8: 0x0089, 0xdc9: 0x0341, 0xdca: 0x0349, 0xdcb: 0x0391,\n\t0xdcc: 0x00c1, 0xdcd: 0x0109, 0xdce: 0x00c9, 0xdcf: 0x04b1, 0xdd0: 0x0019, 0xdd1: 0x02e9,\n\t0xdd2: 0x03d9, 0xdd3: 0x02f1, 0xdd4: 0x02f9, 0xdd5: 0x03f1, 0xdd6: 0x0309, 0xdd7: 0x00a9,\n\t0xdd8: 0x0311, 0xdd9: 0x00b1, 0xdda: 0x0319, 0xddb: 0x0101, 0xddc: 0x0321, 0xddd: 0x0329,\n\t0xdde: 0x0051, 0xddf: 0x0339, 0xde0: 0x0751, 0xde1: 0x00b9, 0xde2: 0x0089, 0xde3: 0x0341,\n\t0xde4: 0x0349, 0xde5: 0x0391, 0xde6: 0x00c1, 0xde7: 0x0109, 0xde8: 0x00c9, 0xde9: 0x04b1,\n\t0xdea: 0x06e1, 0xdeb: 0x0018, 0xdec: 0x0018, 0xded: 0x0018, 0xdee: 0x0018, 0xdef: 0x0018,\n\t0xdf0: 0x0018, 0xdf1: 0x0018, 0xdf2: 0x0018, 0xdf3: 0x0018, 0xdf4: 0x0018, 0xdf5: 0x0018,\n\t0xdf6: 0x0018, 0xdf7: 0x0018, 0xdf8: 0x0018, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,\n\t0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0008, 0xe01: 0x0008, 0xe02: 0x0008, 0xe03: 0x0008, 0xe04: 0x0008, 0xe05: 0x0008,\n\t0xe06: 0x0008, 0xe07: 0x0008, 0xe08: 0x0008, 0xe09: 0x0008, 0xe0a: 0x0008, 0xe0b: 0x0008,\n\t0xe0c: 0x0008, 0xe0d: 0x0008, 0xe0e: 0x0008, 0xe0f: 0x0008, 0xe10: 0x0008, 0xe11: 0x0008,\n\t0xe12: 0x0008, 0xe13: 0x0008, 0xe14: 0x0008, 0xe15: 0x0008, 0xe16: 0x0008, 0xe17: 0x0008,\n\t0xe18: 0x0008, 0xe19: 0x0008, 0xe1a: 0x0008, 0xe1b: 0x0008, 0xe1c: 0x0008, 0xe1d: 0x0008,\n\t0xe1e: 0x0008, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0x0941, 0xe23: 0x0ed5,\n\t0xe24: 0x0949, 0xe25: 0x0008, 0xe26: 0x0008, 0xe27: 0xe07d, 0xe28: 0x0008, 0xe29: 0xe01d,\n\t0xe2a: 0x0008, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0x0359, 0xe2e: 0x0441, 0xe2f: 0x0351,\n\t0xe30: 0x03d1, 0xe31: 0x0008, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0008, 0xe35: 0xe01d,\n\t0xe36: 0x0008, 0xe37: 0x0008, 0xe38: 0x0008, 0xe39: 0x0008, 0xe3a: 0x0008, 0xe3b: 0x0008,\n\t0xe3c: 0x00b1, 0xe3d: 0x0391, 0xe3e: 0x0951, 0xe3f: 0x0959,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0xe00d, 0xe41: 0x0008, 0xe42: 0xe00d, 0xe43: 0x0008, 0xe44: 0xe00d, 0xe45: 0x0008,\n\t0xe46: 0xe00d, 0xe47: 0x0008, 0xe48: 0xe00d, 0xe49: 0x0008, 0xe4a: 0xe00d, 0xe4b: 0x0008,\n\t0xe4c: 0xe00d, 0xe4d: 0x0008, 0xe4e: 0xe00d, 0xe4f: 0x0008, 0xe50: 0xe00d, 0xe51: 0x0008,\n\t0xe52: 0xe00d, 0xe53: 0x0008, 0xe54: 0xe00d, 0xe55: 0x0008, 0xe56: 0xe00d, 0xe57: 0x0008,\n\t0xe58: 0xe00d, 0xe59: 0x0008, 0xe5a: 0xe00d, 0xe5b: 0x0008, 0xe5c: 0xe00d, 0xe5d: 0x0008,\n\t0xe5e: 0xe00d, 0xe5f: 0x0008, 0xe60: 0xe00d, 0xe61: 0x0008, 0xe62: 0xe00d, 0xe63: 0x0008,\n\t0xe64: 0x0008, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,\n\t0xe6a: 0x0018, 0xe6b: 0xe03d, 0xe6c: 0x0008, 0xe6d: 0xe01d, 0xe6e: 0x0008, 0xe6f: 0x3308,\n\t0xe70: 0x3308, 0xe71: 0x3308, 0xe72: 0xe00d, 0xe73: 0x0008, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0018, 0xe7a: 0x0018, 0xe7b: 0x0018,\n\t0xe7c: 0x0018, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x2715, 0xe81: 0x2735, 0xe82: 0x2755, 0xe83: 0x2775, 0xe84: 0x2795, 0xe85: 0x27b5,\n\t0xe86: 0x27d5, 0xe87: 0x27f5, 0xe88: 0x2815, 0xe89: 0x2835, 0xe8a: 0x2855, 0xe8b: 0x2875,\n\t0xe8c: 0x2895, 0xe8d: 0x28b5, 0xe8e: 0x28d5, 0xe8f: 0x28f5, 0xe90: 0x2915, 0xe91: 0x2935,\n\t0xe92: 0x2955, 0xe93: 0x2975, 0xe94: 0x2995, 0xe95: 0x29b5, 0xe96: 0x0040, 0xe97: 0x0040,\n\t0xe98: 0x0040, 0xe99: 0x0040, 0xe9a: 0x0040, 0xe9b: 0x0040, 0xe9c: 0x0040, 0xe9d: 0x0040,\n\t0xe9e: 0x0040, 0xe9f: 0x0040, 0xea0: 0x0040, 0xea1: 0x0040, 0xea2: 0x0040, 0xea3: 0x0040,\n\t0xea4: 0x0040, 0xea5: 0x0040, 0xea6: 0x0040, 0xea7: 0x0040, 0xea8: 0x0040, 0xea9: 0x0040,\n\t0xeaa: 0x0040, 0xeab: 0x0040, 0xeac: 0x0040, 0xead: 0x0040, 0xeae: 0x0040, 0xeaf: 0x0040,\n\t0xeb0: 0x0040, 0xeb1: 0x0040, 0xeb2: 0x0040, 0xeb3: 0x0040, 0xeb4: 0x0040, 0xeb5: 0x0040,\n\t0xeb6: 0x0040, 0xeb7: 0x0040, 0xeb8: 0x0040, 0xeb9: 0x0040, 0xeba: 0x0040, 0xebb: 0x0040,\n\t0xebc: 0x0040, 0xebd: 0x0040, 0xebe: 0x0040, 0xebf: 0x0040,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x000a, 0xec1: 0x0018, 0xec2: 0x0961, 0xec3: 0x0018, 0xec4: 0x0018, 0xec5: 0x0008,\n\t0xec6: 0x0008, 0xec7: 0x0008, 0xec8: 0x0018, 0xec9: 0x0018, 0xeca: 0x0018, 0xecb: 0x0018,\n\t0xecc: 0x0018, 0xecd: 0x0018, 0xece: 0x0018, 0xecf: 0x0018, 0xed0: 0x0018, 0xed1: 0x0018,\n\t0xed2: 0x0018, 0xed3: 0x0018, 0xed4: 0x0018, 0xed5: 0x0018, 0xed6: 0x0018, 0xed7: 0x0018,\n\t0xed8: 0x0018, 0xed9: 0x0018, 0xeda: 0x0018, 0xedb: 0x0018, 0xedc: 0x0018, 0xedd: 0x0018,\n\t0xede: 0x0018, 0xedf: 0x0018, 0xee0: 0x0018, 0xee1: 0x0018, 0xee2: 0x0018, 0xee3: 0x0018,\n\t0xee4: 0x0018, 0xee5: 0x0018, 0xee6: 0x0018, 0xee7: 0x0018, 0xee8: 0x0018, 0xee9: 0x0018,\n\t0xeea: 0x3308, 0xeeb: 0x3308, 0xeec: 0x3308, 0xeed: 0x3308, 0xeee: 0x3018, 0xeef: 0x3018,\n\t0xef0: 0x0018, 0xef1: 0x0018, 0xef2: 0x0018, 0xef3: 0x0018, 0xef4: 0x0018, 0xef5: 0x0018,\n\t0xef6: 0xe125, 0xef7: 0x0018, 0xef8: 0x29d5, 0xef9: 0x29f5, 0xefa: 0x2a15, 0xefb: 0x0018,\n\t0xefc: 0x0008, 0xefd: 0x0018, 0xefe: 0x0018, 0xeff: 0x0018,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2b55, 0xf01: 0x2b75, 0xf02: 0x2b95, 0xf03: 0x2bb5, 0xf04: 0x2bd5, 0xf05: 0x2bf5,\n\t0xf06: 0x2bf5, 0xf07: 0x2bf5, 0xf08: 0x2c15, 0xf09: 0x2c15, 0xf0a: 0x2c15, 0xf0b: 0x2c15,\n\t0xf0c: 0x2c35, 0xf0d: 0x2c35, 0xf0e: 0x2c35, 0xf0f: 0x2c55, 0xf10: 0x2c75, 0xf11: 0x2c75,\n\t0xf12: 0x2a95, 0xf13: 0x2a95, 0xf14: 0x2c75, 0xf15: 0x2c75, 0xf16: 0x2c95, 0xf17: 0x2c95,\n\t0xf18: 0x2c75, 0xf19: 0x2c75, 0xf1a: 0x2a95, 0xf1b: 0x2a95, 0xf1c: 0x2c75, 0xf1d: 0x2c75,\n\t0xf1e: 0x2c55, 0xf1f: 0x2c55, 0xf20: 0x2cb5, 0xf21: 0x2cb5, 0xf22: 0x2cd5, 0xf23: 0x2cd5,\n\t0xf24: 0x0040, 0xf25: 0x2cf5, 0xf26: 0x2d15, 0xf27: 0x2d35, 0xf28: 0x2d35, 0xf29: 0x2d55,\n\t0xf2a: 0x2d75, 0xf2b: 0x2d95, 0xf2c: 0x2db5, 0xf2d: 0x2dd5, 0xf2e: 0x2df5, 0xf2f: 0x2e15,\n\t0xf30: 0x2e35, 0xf31: 0x2e55, 0xf32: 0x2e55, 0xf33: 0x2e75, 0xf34: 0x2e95, 0xf35: 0x2e95,\n\t0xf36: 0x2eb5, 0xf37: 0x2ed5, 0xf38: 0x2e75, 0xf39: 0x2ef5, 0xf3a: 0x2f15, 0xf3b: 0x2ef5,\n\t0xf3c: 0x2e75, 0xf3d: 0x2f35, 0xf3e: 0x2f55, 0xf3f: 0x2f75,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x2f95, 0xf41: 0x2fb5, 0xf42: 0x2d15, 0xf43: 0x2cf5, 0xf44: 0x2fd5, 0xf45: 0x2ff5,\n\t0xf46: 0x3015, 0xf47: 0x3035, 0xf48: 0x3055, 0xf49: 0x3075, 0xf4a: 0x3095, 0xf4b: 0x30b5,\n\t0xf4c: 0x30d5, 0xf4d: 0x30f5, 0xf4e: 0x3115, 0xf4f: 0x0040, 0xf50: 0x0018, 0xf51: 0x0018,\n\t0xf52: 0x3135, 0xf53: 0x3155, 0xf54: 0x3175, 0xf55: 0x3195, 0xf56: 0x31b5, 0xf57: 0x31d5,\n\t0xf58: 0x31f5, 0xf59: 0x3215, 0xf5a: 0x3235, 0xf5b: 0x3255, 0xf5c: 0x3175, 0xf5d: 0x3275,\n\t0xf5e: 0x3295, 0xf5f: 0x32b5, 0xf60: 0x0008, 0xf61: 0x0008, 0xf62: 0x0008, 0xf63: 0x0008,\n\t0xf64: 0x0008, 0xf65: 0x0008, 0xf66: 0x0008, 0xf67: 0x0008, 0xf68: 0x0008, 0xf69: 0x0008,\n\t0xf6a: 0x0008, 0xf6b: 0x0008, 0xf6c: 0x0008, 0xf6d: 0x0008, 0xf6e: 0x0008, 0xf6f: 0x0008,\n\t0xf70: 0x0008, 0xf71: 0x0008, 0xf72: 0x0008, 0xf73: 0x0008, 0xf74: 0x0008, 0xf75: 0x0008,\n\t0xf76: 0x0008, 0xf77: 0x0008, 0xf78: 0x0008, 0xf79: 0x0008, 0xf7a: 0x0008, 0xf7b: 0x0008,\n\t0xf7c: 0x0008, 0xf7d: 0x0008, 0xf7e: 0x0008, 0xf7f: 0x0008,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x0b82, 0xf81: 0x0b8a, 0xf82: 0x0b92, 0xf83: 0x0b9a, 0xf84: 0x32d5, 0xf85: 0x32f5,\n\t0xf86: 0x3315, 0xf87: 0x3335, 0xf88: 0x0018, 0xf89: 0x0018, 0xf8a: 0x0018, 0xf8b: 0x0018,\n\t0xf8c: 0x0018, 0xf8d: 0x0018, 0xf8e: 0x0018, 0xf8f: 0x0018, 0xf90: 0x3355, 0xf91: 0x0ba1,\n\t0xf92: 0x0ba9, 0xf93: 0x0bb1, 0xf94: 0x0bb9, 0xf95: 0x0bc1, 0xf96: 0x0bc9, 0xf97: 0x0bd1,\n\t0xf98: 0x0bd9, 0xf99: 0x0be1, 0xf9a: 0x0be9, 0xf9b: 0x0bf1, 0xf9c: 0x0bf9, 0xf9d: 0x0c01,\n\t0xf9e: 0x0c09, 0xf9f: 0x0c11, 0xfa0: 0x3375, 0xfa1: 0x3395, 0xfa2: 0x33b5, 0xfa3: 0x33d5,\n\t0xfa4: 0x33f5, 0xfa5: 0x33f5, 0xfa6: 0x3415, 0xfa7: 0x3435, 0xfa8: 0x3455, 0xfa9: 0x3475,\n\t0xfaa: 0x3495, 0xfab: 0x34b5, 0xfac: 0x34d5, 0xfad: 0x34f5, 0xfae: 0x3515, 0xfaf: 0x3535,\n\t0xfb0: 0x3555, 0xfb1: 0x3575, 0xfb2: 0x3595, 0xfb3: 0x35b5, 0xfb4: 0x35d5, 0xfb5: 0x35f5,\n\t0xfb6: 0x3615, 0xfb7: 0x3635, 0xfb8: 0x3655, 0xfb9: 0x3675, 0xfba: 0x3695, 0xfbb: 0x36b5,\n\t0xfbc: 0x0c19, 0xfbd: 0x0c21, 0xfbe: 0x36d5, 0xfbf: 0x0018,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x36f5, 0xfc1: 0x3715, 0xfc2: 0x3735, 0xfc3: 0x3755, 0xfc4: 0x3775, 0xfc5: 0x3795,\n\t0xfc6: 0x37b5, 0xfc7: 0x37d5, 0xfc8: 0x37f5, 0xfc9: 0x3815, 0xfca: 0x3835, 0xfcb: 0x3855,\n\t0xfcc: 0x3875, 0xfcd: 0x3895, 0xfce: 0x38b5, 0xfcf: 0x38d5, 0xfd0: 0x38f5, 0xfd1: 0x3915,\n\t0xfd2: 0x3935, 0xfd3: 0x3955, 0xfd4: 0x3975, 0xfd5: 0x3995, 0xfd6: 0x39b5, 0xfd7: 0x39d5,\n\t0xfd8: 0x39f5, 0xfd9: 0x3a15, 0xfda: 0x3a35, 0xfdb: 0x3a55, 0xfdc: 0x3a75, 0xfdd: 0x3a95,\n\t0xfde: 0x3ab5, 0xfdf: 0x3ad5, 0xfe0: 0x3af5, 0xfe1: 0x3b15, 0xfe2: 0x3b35, 0xfe3: 0x3b55,\n\t0xfe4: 0x3b75, 0xfe5: 0x3b95, 0xfe6: 0x1295, 0xfe7: 0x3bb5, 0xfe8: 0x3bd5, 0xfe9: 0x3bf5,\n\t0xfea: 0x3c15, 0xfeb: 0x3c35, 0xfec: 0x3c55, 0xfed: 0x3c75, 0xfee: 0x23b5, 0xfef: 0x3c95,\n\t0xff0: 0x3cb5, 0xff1: 0x0c29, 0xff2: 0x0c31, 0xff3: 0x0c39, 0xff4: 0x0c41, 0xff5: 0x0c49,\n\t0xff6: 0x0c51, 0xff7: 0x0c59, 0xff8: 0x0c61, 0xff9: 0x0c69, 0xffa: 0x0c71, 0xffb: 0x0c79,\n\t0xffc: 0x0c81, 0xffd: 0x0c89, 0xffe: 0x0c91, 0xfff: 0x0c99,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x0ca1, 0x1001: 0x0ca9, 0x1002: 0x0cb1, 0x1003: 0x0cb9, 0x1004: 0x0cc1, 0x1005: 0x0cc9,\n\t0x1006: 0x0cd1, 0x1007: 0x0cd9, 0x1008: 0x0ce1, 0x1009: 0x0ce9, 0x100a: 0x0cf1, 0x100b: 0x0cf9,\n\t0x100c: 0x0d01, 0x100d: 0x3cd5, 0x100e: 0x0d09, 0x100f: 0x3cf5, 0x1010: 0x3d15, 0x1011: 0x3d2d,\n\t0x1012: 0x3d45, 0x1013: 0x3d5d, 0x1014: 0x3d75, 0x1015: 0x3d75, 0x1016: 0x3d5d, 0x1017: 0x3d8d,\n\t0x1018: 0x07d5, 0x1019: 0x3da5, 0x101a: 0x3dbd, 0x101b: 0x3dd5, 0x101c: 0x3ded, 0x101d: 0x3e05,\n\t0x101e: 0x3e1d, 0x101f: 0x3e35, 0x1020: 0x3e4d, 0x1021: 0x3e65, 0x1022: 0x3e7d, 0x1023: 0x3e95,\n\t0x1024: 0x3ead, 0x1025: 0x3ead, 0x1026: 0x3ec5, 0x1027: 0x3ec5, 0x1028: 0x3edd, 0x1029: 0x3edd,\n\t0x102a: 0x3ef5, 0x102b: 0x3f0d, 0x102c: 0x3f25, 0x102d: 0x3f3d, 0x102e: 0x3f55, 0x102f: 0x3f55,\n\t0x1030: 0x3f6d, 0x1031: 0x3f6d, 0x1032: 0x3f6d, 0x1033: 0x3f85, 0x1034: 0x3f9d, 0x1035: 0x3fb5,\n\t0x1036: 0x3fcd, 0x1037: 0x3fb5, 0x1038: 0x3fe5, 0x1039: 0x3ffd, 0x103a: 0x3f85, 0x103b: 0x4015,\n\t0x103c: 0x402d, 0x103d: 0x402d, 0x103e: 0x402d, 0x103f: 0x0d11,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x10f9, 0x1041: 0x1101, 0x1042: 0x40a5, 0x1043: 0x1109, 0x1044: 0x1111, 0x1045: 0x1119,\n\t0x1046: 0x1121, 0x1047: 0x1129, 0x1048: 0x40c5, 0x1049: 0x1131, 0x104a: 0x1139, 0x104b: 0x1141,\n\t0x104c: 0x40e5, 0x104d: 0x40e5, 0x104e: 0x1149, 0x104f: 0x1151, 0x1050: 0x1159, 0x1051: 0x4105,\n\t0x1052: 0x4125, 0x1053: 0x4145, 0x1054: 0x4165, 0x1055: 0x4185, 0x1056: 0x1161, 0x1057: 0x1169,\n\t0x1058: 0x1171, 0x1059: 0x1179, 0x105a: 0x1181, 0x105b: 0x41a5, 0x105c: 0x1189, 0x105d: 0x1191,\n\t0x105e: 0x1199, 0x105f: 0x41c5, 0x1060: 0x41e5, 0x1061: 0x11a1, 0x1062: 0x4205, 0x1063: 0x4225,\n\t0x1064: 0x4245, 0x1065: 0x11a9, 0x1066: 0x4265, 0x1067: 0x11b1, 0x1068: 0x11b9, 0x1069: 0x10f9,\n\t0x106a: 0x4285, 0x106b: 0x42a5, 0x106c: 0x42c5, 0x106d: 0x42e5, 0x106e: 0x11c1, 0x106f: 0x11c9,\n\t0x1070: 0x11d1, 0x1071: 0x11d9, 0x1072: 0x4305, 0x1073: 0x11e1, 0x1074: 0x11e9, 0x1075: 0x11f1,\n\t0x1076: 0x4325, 0x1077: 0x11f9, 0x1078: 0x1201, 0x1079: 0x11f9, 0x107a: 0x1209, 0x107b: 0x1211,\n\t0x107c: 0x4345, 0x107d: 0x1219, 0x107e: 0x1221, 0x107f: 0x1219,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x4365, 0x1081: 0x4385, 0x1082: 0x0040, 0x1083: 0x1229, 0x1084: 0x1231, 0x1085: 0x1239,\n\t0x1086: 0x1241, 0x1087: 0x0040, 0x1088: 0x1249, 0x1089: 0x1251, 0x108a: 0x1259, 0x108b: 0x1261,\n\t0x108c: 0x1269, 0x108d: 0x1271, 0x108e: 0x1199, 0x108f: 0x1279, 0x1090: 0x1281, 0x1091: 0x1289,\n\t0x1092: 0x43a5, 0x1093: 0x1291, 0x1094: 0x1121, 0x1095: 0x43c5, 0x1096: 0x43e5, 0x1097: 0x1299,\n\t0x1098: 0x0040, 0x1099: 0x4405, 0x109a: 0x12a1, 0x109b: 0x12a9, 0x109c: 0x12b1, 0x109d: 0x12b9,\n\t0x109e: 0x12c1, 0x109f: 0x12c9, 0x10a0: 0x12d1, 0x10a1: 0x12d9, 0x10a2: 0x12e1, 0x10a3: 0x12e9,\n\t0x10a4: 0x12f1, 0x10a5: 0x12f9, 0x10a6: 0x1301, 0x10a7: 0x1309, 0x10a8: 0x1311, 0x10a9: 0x1319,\n\t0x10aa: 0x1321, 0x10ab: 0x1329, 0x10ac: 0x1331, 0x10ad: 0x1339, 0x10ae: 0x1341, 0x10af: 0x1349,\n\t0x10b0: 0x1351, 0x10b1: 0x1359, 0x10b2: 0x1361, 0x10b3: 0x1369, 0x10b4: 0x1371, 0x10b5: 0x1379,\n\t0x10b6: 0x1381, 0x10b7: 0x1389, 0x10b8: 0x1391, 0x10b9: 0x1399, 0x10ba: 0x13a1, 0x10bb: 0x13a9,\n\t0x10bc: 0x13b1, 0x10bd: 0x13b9, 0x10be: 0x13c1, 0x10bf: 0x4425,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,\n\t0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,\n\t0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,\n\t0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,\n\t0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,\n\t0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,\n\t0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x02d1, 0x111d: 0x13c9,\n\t0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,\n\t0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,\n\t0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,\n\t0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,\n\t0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,\n\t0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,\n\t0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,\n\t0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,\n\t0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,\n\t0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,\n\t0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,\n\t0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,\n\t0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,\n\t0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,\n\t0x11bc: 0x0008, 0x11bd: 0x4445, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,\n\t0x11cc: 0x0008, 0x11cd: 0x0409, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0x13d1, 0x11eb: 0x0371, 0x11ec: 0x0401, 0x11ed: 0x13d9, 0x11ee: 0x0421, 0x11ef: 0x0008,\n\t0x11f0: 0x13e1, 0x11f1: 0x13e9, 0x11f2: 0x0429, 0x11f3: 0x4465, 0x11f4: 0xe00d, 0x11f5: 0x0008,\n\t0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0xe00d, 0x11f9: 0x0008, 0x11fa: 0xe00d, 0x11fb: 0x0008,\n\t0x11fc: 0xe00d, 0x11fd: 0x0008, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0x03f5, 0x1205: 0x0479,\n\t0x1206: 0x447d, 0x1207: 0xe07d, 0x1208: 0x0008, 0x1209: 0xe01d, 0x120a: 0x0008, 0x120b: 0x0040,\n\t0x120c: 0x0040, 0x120d: 0x0040, 0x120e: 0x0040, 0x120f: 0x0040, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0x0040, 0x1213: 0x0008, 0x1214: 0x0040, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040,\n\t0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040,\n\t0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040,\n\t0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040,\n\t0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x03d9, 0x1233: 0x03f1, 0x1234: 0x0751, 0x1235: 0xe01d,\n\t0x1236: 0x0008, 0x1237: 0x0008, 0x1238: 0x0741, 0x1239: 0x13f1, 0x123a: 0x0008, 0x123b: 0x0008,\n\t0x123c: 0x0008, 0x123d: 0x0008, 0x123e: 0x0008, 0x123f: 0x0008,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad,\n\t0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d,\n\t0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008,\n\t0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d,\n\t0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d,\n\t0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d,\n\t0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d,\n\t0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed,\n\t0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d,\n\t0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d,\n\t0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x1409, 0x1290: 0x1411, 0x1291: 0x1419,\n\t0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x1421, 0x1296: 0x1429, 0x1297: 0x1431,\n\t0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x1439, 0x12c1: 0x1441, 0x12c2: 0x1449, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x1451,\n\t0x12c6: 0x1451, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x1459, 0x12d4: 0x1461, 0x12d5: 0x1469, 0x12d6: 0x1471, 0x12d7: 0x1479,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x1481,\n\t0x12de: 0x3308, 0x12df: 0x1489, 0x12e0: 0x1491, 0x12e1: 0x0779, 0x12e2: 0x0791, 0x12e3: 0x1499,\n\t0x12e4: 0x14a1, 0x12e5: 0x14a9, 0x12e6: 0x14b1, 0x12e7: 0x14b9, 0x12e8: 0x14c1, 0x12e9: 0x071a,\n\t0x12ea: 0x14c9, 0x12eb: 0x14d1, 0x12ec: 0x14d9, 0x12ed: 0x14e1, 0x12ee: 0x14e9, 0x12ef: 0x14f1,\n\t0x12f0: 0x14f9, 0x12f1: 0x1501, 0x12f2: 0x1509, 0x12f3: 0x1511, 0x12f4: 0x1519, 0x12f5: 0x1521,\n\t0x12f6: 0x1529, 0x12f7: 0x0040, 0x12f8: 0x1531, 0x12f9: 0x1539, 0x12fa: 0x1541, 0x12fb: 0x1549,\n\t0x12fc: 0x1551, 0x12fd: 0x0040, 0x12fe: 0x1559, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x1561, 0x1301: 0x1569, 0x1302: 0x0040, 0x1303: 0x1571, 0x1304: 0x1579, 0x1305: 0x0040,\n\t0x1306: 0x1581, 0x1307: 0x1589, 0x1308: 0x1591, 0x1309: 0x1599, 0x130a: 0x15a1, 0x130b: 0x15a9,\n\t0x130c: 0x15b1, 0x130d: 0x15b9, 0x130e: 0x15c1, 0x130f: 0x15c9, 0x1310: 0x15d1, 0x1311: 0x15d1,\n\t0x1312: 0x15d9, 0x1313: 0x15d9, 0x1314: 0x15d9, 0x1315: 0x15d9, 0x1316: 0x15e1, 0x1317: 0x15e1,\n\t0x1318: 0x15e1, 0x1319: 0x15e1, 0x131a: 0x15e9, 0x131b: 0x15e9, 0x131c: 0x15e9, 0x131d: 0x15e9,\n\t0x131e: 0x15f1, 0x131f: 0x15f1, 0x1320: 0x15f1, 0x1321: 0x15f1, 0x1322: 0x15f9, 0x1323: 0x15f9,\n\t0x1324: 0x15f9, 0x1325: 0x15f9, 0x1326: 0x1601, 0x1327: 0x1601, 0x1328: 0x1601, 0x1329: 0x1601,\n\t0x132a: 0x1609, 0x132b: 0x1609, 0x132c: 0x1609, 0x132d: 0x1609, 0x132e: 0x1611, 0x132f: 0x1611,\n\t0x1330: 0x1611, 0x1331: 0x1611, 0x1332: 0x1619, 0x1333: 0x1619, 0x1334: 0x1619, 0x1335: 0x1619,\n\t0x1336: 0x1621, 0x1337: 0x1621, 0x1338: 0x1621, 0x1339: 0x1621, 0x133a: 0x1629, 0x133b: 0x1629,\n\t0x133c: 0x1629, 0x133d: 0x1629, 0x133e: 0x1631, 0x133f: 0x1631,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x1631, 0x1341: 0x1631, 0x1342: 0x1639, 0x1343: 0x1639, 0x1344: 0x1641, 0x1345: 0x1641,\n\t0x1346: 0x1649, 0x1347: 0x1649, 0x1348: 0x1651, 0x1349: 0x1651, 0x134a: 0x1659, 0x134b: 0x1659,\n\t0x134c: 0x1661, 0x134d: 0x1661, 0x134e: 0x1669, 0x134f: 0x1669, 0x1350: 0x1669, 0x1351: 0x1669,\n\t0x1352: 0x1671, 0x1353: 0x1671, 0x1354: 0x1671, 0x1355: 0x1671, 0x1356: 0x1679, 0x1357: 0x1679,\n\t0x1358: 0x1679, 0x1359: 0x1679, 0x135a: 0x1681, 0x135b: 0x1681, 0x135c: 0x1681, 0x135d: 0x1681,\n\t0x135e: 0x1689, 0x135f: 0x1689, 0x1360: 0x1691, 0x1361: 0x1691, 0x1362: 0x1691, 0x1363: 0x1691,\n\t0x1364: 0x1699, 0x1365: 0x1699, 0x1366: 0x16a1, 0x1367: 0x16a1, 0x1368: 0x16a1, 0x1369: 0x16a1,\n\t0x136a: 0x16a9, 0x136b: 0x16a9, 0x136c: 0x16a9, 0x136d: 0x16a9, 0x136e: 0x16b1, 0x136f: 0x16b1,\n\t0x1370: 0x16b9, 0x1371: 0x16b9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0818, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x16c1, 0x1394: 0x16c1, 0x1395: 0x16c1, 0x1396: 0x16c1, 0x1397: 0x16c9,\n\t0x1398: 0x16c9, 0x1399: 0x16d1, 0x139a: 0x16d1, 0x139b: 0x16d9, 0x139c: 0x16d9, 0x139d: 0x0149,\n\t0x139e: 0x16e1, 0x139f: 0x16e1, 0x13a0: 0x16e9, 0x13a1: 0x16e9, 0x13a2: 0x16f1, 0x13a3: 0x16f1,\n\t0x13a4: 0x16f9, 0x13a5: 0x16f9, 0x13a6: 0x16f9, 0x13a7: 0x16f9, 0x13a8: 0x1701, 0x13a9: 0x1701,\n\t0x13aa: 0x1709, 0x13ab: 0x1709, 0x13ac: 0x1711, 0x13ad: 0x1711, 0x13ae: 0x1719, 0x13af: 0x1719,\n\t0x13b0: 0x1721, 0x13b1: 0x1721, 0x13b2: 0x1729, 0x13b3: 0x1729, 0x13b4: 0x1731, 0x13b5: 0x1731,\n\t0x13b6: 0x1739, 0x13b7: 0x1739, 0x13b8: 0x1739, 0x13b9: 0x1741, 0x13ba: 0x1741, 0x13bb: 0x1741,\n\t0x13bc: 0x1749, 0x13bd: 0x1749, 0x13be: 0x1749, 0x13bf: 0x1749,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x1949, 0x13c1: 0x1951, 0x13c2: 0x1959, 0x13c3: 0x1961, 0x13c4: 0x1969, 0x13c5: 0x1971,\n\t0x13c6: 0x1979, 0x13c7: 0x1981, 0x13c8: 0x1989, 0x13c9: 0x1991, 0x13ca: 0x1999, 0x13cb: 0x19a1,\n\t0x13cc: 0x19a9, 0x13cd: 0x19b1, 0x13ce: 0x19b9, 0x13cf: 0x19c1, 0x13d0: 0x19c9, 0x13d1: 0x19d1,\n\t0x13d2: 0x19d9, 0x13d3: 0x19e1, 0x13d4: 0x19e9, 0x13d5: 0x19f1, 0x13d6: 0x19f9, 0x13d7: 0x1a01,\n\t0x13d8: 0x1a09, 0x13d9: 0x1a11, 0x13da: 0x1a19, 0x13db: 0x1a21, 0x13dc: 0x1a29, 0x13dd: 0x1a31,\n\t0x13de: 0x1a3a, 0x13df: 0x1a42, 0x13e0: 0x1a4a, 0x13e1: 0x1a52, 0x13e2: 0x1a5a, 0x13e3: 0x1a62,\n\t0x13e4: 0x1a69, 0x13e5: 0x1a71, 0x13e6: 0x1761, 0x13e7: 0x1a79, 0x13e8: 0x1741, 0x13e9: 0x1769,\n\t0x13ea: 0x1a81, 0x13eb: 0x1a89, 0x13ec: 0x1789, 0x13ed: 0x1a91, 0x13ee: 0x1791, 0x13ef: 0x1799,\n\t0x13f0: 0x1a99, 0x13f1: 0x1aa1, 0x13f2: 0x17b9, 0x13f3: 0x1aa9, 0x13f4: 0x17c1, 0x13f5: 0x17c9,\n\t0x13f6: 0x1ab1, 0x13f7: 0x1ab9, 0x13f8: 0x17d9, 0x13f9: 0x1ac1, 0x13fa: 0x17e1, 0x13fb: 0x17e9,\n\t0x13fc: 0x18d1, 0x13fd: 0x18d9, 0x13fe: 0x18f1, 0x13ff: 0x18f9,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x1901, 0x1401: 0x1921, 0x1402: 0x1929, 0x1403: 0x1931, 0x1404: 0x1939, 0x1405: 0x1959,\n\t0x1406: 0x1961, 0x1407: 0x1969, 0x1408: 0x1ac9, 0x1409: 0x1989, 0x140a: 0x1ad1, 0x140b: 0x1ad9,\n\t0x140c: 0x19b9, 0x140d: 0x1ae1, 0x140e: 0x19c1, 0x140f: 0x19c9, 0x1410: 0x1a31, 0x1411: 0x1ae9,\n\t0x1412: 0x1af1, 0x1413: 0x1a09, 0x1414: 0x1af9, 0x1415: 0x1a11, 0x1416: 0x1a19, 0x1417: 0x1751,\n\t0x1418: 0x1759, 0x1419: 0x1b01, 0x141a: 0x1761, 0x141b: 0x1b09, 0x141c: 0x1771, 0x141d: 0x1779,\n\t0x141e: 0x1781, 0x141f: 0x1789, 0x1420: 0x1b11, 0x1421: 0x17a1, 0x1422: 0x17a9, 0x1423: 0x17b1,\n\t0x1424: 0x17b9, 0x1425: 0x1b19, 0x1426: 0x17d9, 0x1427: 0x17f1, 0x1428: 0x17f9, 0x1429: 0x1801,\n\t0x142a: 0x1809, 0x142b: 0x1811, 0x142c: 0x1821, 0x142d: 0x1829, 0x142e: 0x1831, 0x142f: 0x1839,\n\t0x1430: 0x1841, 0x1431: 0x1849, 0x1432: 0x1b21, 0x1433: 0x1851, 0x1434: 0x1859, 0x1435: 0x1861,\n\t0x1436: 0x1869, 0x1437: 0x1871, 0x1438: 0x1879, 0x1439: 0x1889, 0x143a: 0x1891, 0x143b: 0x1899,\n\t0x143c: 0x18a1, 0x143d: 0x18a9, 0x143e: 0x18b1, 0x143f: 0x18b9,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x18c1, 0x1441: 0x18c9, 0x1442: 0x18e1, 0x1443: 0x18e9, 0x1444: 0x1909, 0x1445: 0x1911,\n\t0x1446: 0x1919, 0x1447: 0x1921, 0x1448: 0x1929, 0x1449: 0x1941, 0x144a: 0x1949, 0x144b: 0x1951,\n\t0x144c: 0x1959, 0x144d: 0x1b29, 0x144e: 0x1971, 0x144f: 0x1979, 0x1450: 0x1981, 0x1451: 0x1989,\n\t0x1452: 0x19a1, 0x1453: 0x19a9, 0x1454: 0x19b1, 0x1455: 0x19b9, 0x1456: 0x1b31, 0x1457: 0x19d1,\n\t0x1458: 0x19d9, 0x1459: 0x1b39, 0x145a: 0x19f1, 0x145b: 0x19f9, 0x145c: 0x1a01, 0x145d: 0x1a09,\n\t0x145e: 0x1b41, 0x145f: 0x1761, 0x1460: 0x1b09, 0x1461: 0x1789, 0x1462: 0x1b11, 0x1463: 0x17b9,\n\t0x1464: 0x1b19, 0x1465: 0x17d9, 0x1466: 0x1b49, 0x1467: 0x1841, 0x1468: 0x1b51, 0x1469: 0x1b59,\n\t0x146a: 0x1b61, 0x146b: 0x1921, 0x146c: 0x1929, 0x146d: 0x1959, 0x146e: 0x19b9, 0x146f: 0x1b31,\n\t0x1470: 0x1a09, 0x1471: 0x1b41, 0x1472: 0x1b69, 0x1473: 0x1b71, 0x1474: 0x1b79, 0x1475: 0x1b81,\n\t0x1476: 0x1b89, 0x1477: 0x1b91, 0x1478: 0x1b99, 0x1479: 0x1ba1, 0x147a: 0x1ba9, 0x147b: 0x1bb1,\n\t0x147c: 0x1bb9, 0x147d: 0x1bc1, 0x147e: 0x1bc9, 0x147f: 0x1bd1,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1bd9, 0x1481: 0x1be1, 0x1482: 0x1be9, 0x1483: 0x1bf1, 0x1484: 0x1bf9, 0x1485: 0x1c01,\n\t0x1486: 0x1c09, 0x1487: 0x1c11, 0x1488: 0x1c19, 0x1489: 0x1c21, 0x148a: 0x1c29, 0x148b: 0x1c31,\n\t0x148c: 0x1b59, 0x148d: 0x1c39, 0x148e: 0x1c41, 0x148f: 0x1c49, 0x1490: 0x1c51, 0x1491: 0x1b81,\n\t0x1492: 0x1b89, 0x1493: 0x1b91, 0x1494: 0x1b99, 0x1495: 0x1ba1, 0x1496: 0x1ba9, 0x1497: 0x1bb1,\n\t0x1498: 0x1bb9, 0x1499: 0x1bc1, 0x149a: 0x1bc9, 0x149b: 0x1bd1, 0x149c: 0x1bd9, 0x149d: 0x1be1,\n\t0x149e: 0x1be9, 0x149f: 0x1bf1, 0x14a0: 0x1bf9, 0x14a1: 0x1c01, 0x14a2: 0x1c09, 0x14a3: 0x1c11,\n\t0x14a4: 0x1c19, 0x14a5: 0x1c21, 0x14a6: 0x1c29, 0x14a7: 0x1c31, 0x14a8: 0x1b59, 0x14a9: 0x1c39,\n\t0x14aa: 0x1c41, 0x14ab: 0x1c49, 0x14ac: 0x1c51, 0x14ad: 0x1c21, 0x14ae: 0x1c29, 0x14af: 0x1c31,\n\t0x14b0: 0x1b59, 0x14b1: 0x1b51, 0x14b2: 0x1b61, 0x14b3: 0x1881, 0x14b4: 0x1829, 0x14b5: 0x1831,\n\t0x14b6: 0x1839, 0x14b7: 0x1c21, 0x14b8: 0x1c29, 0x14b9: 0x1c31, 0x14ba: 0x1881, 0x14bb: 0x1889,\n\t0x14bc: 0x1c59, 0x14bd: 0x1c59, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0018, 0x14c1: 0x0018, 0x14c2: 0x0018, 0x14c3: 0x0018, 0x14c4: 0x0018, 0x14c5: 0x0018,\n\t0x14c6: 0x0018, 0x14c7: 0x0018, 0x14c8: 0x0018, 0x14c9: 0x0018, 0x14ca: 0x0018, 0x14cb: 0x0018,\n\t0x14cc: 0x0018, 0x14cd: 0x0018, 0x14ce: 0x0018, 0x14cf: 0x0018, 0x14d0: 0x1c61, 0x14d1: 0x1c69,\n\t0x14d2: 0x1c69, 0x14d3: 0x1c71, 0x14d4: 0x1c79, 0x14d5: 0x1c81, 0x14d6: 0x1c89, 0x14d7: 0x1c91,\n\t0x14d8: 0x1c99, 0x14d9: 0x1c99, 0x14da: 0x1ca1, 0x14db: 0x1ca9, 0x14dc: 0x1cb1, 0x14dd: 0x1cb9,\n\t0x14de: 0x1cc1, 0x14df: 0x1cc9, 0x14e0: 0x1cc9, 0x14e1: 0x1cd1, 0x14e2: 0x1cd9, 0x14e3: 0x1cd9,\n\t0x14e4: 0x1ce1, 0x14e5: 0x1ce1, 0x14e6: 0x1ce9, 0x14e7: 0x1cf1, 0x14e8: 0x1cf1, 0x14e9: 0x1cf9,\n\t0x14ea: 0x1d01, 0x14eb: 0x1d01, 0x14ec: 0x1d09, 0x14ed: 0x1d09, 0x14ee: 0x1d11, 0x14ef: 0x1d19,\n\t0x14f0: 0x1d19, 0x14f1: 0x1d21, 0x14f2: 0x1d21, 0x14f3: 0x1d29, 0x14f4: 0x1d31, 0x14f5: 0x1d39,\n\t0x14f6: 0x1d41, 0x14f7: 0x1d41, 0x14f8: 0x1d49, 0x14f9: 0x1d51, 0x14fa: 0x1d59, 0x14fb: 0x1d61,\n\t0x14fc: 0x1d69, 0x14fd: 0x1d69, 0x14fe: 0x1d71, 0x14ff: 0x1d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x1f29, 0x1501: 0x1f31, 0x1502: 0x1f39, 0x1503: 0x1f11, 0x1504: 0x1d39, 0x1505: 0x1ce9,\n\t0x1506: 0x1f41, 0x1507: 0x1f49, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0018, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0x1f51, 0x1531: 0x1f59, 0x1532: 0x1f61, 0x1533: 0x1f69, 0x1534: 0x1f71, 0x1535: 0x1f79,\n\t0x1536: 0x1f81, 0x1537: 0x1f89, 0x1538: 0x1f91, 0x1539: 0x1f99, 0x153a: 0x1fa2, 0x153b: 0x1faa,\n\t0x153c: 0x1fb1, 0x153d: 0x0018, 0x153e: 0x0018, 0x153f: 0x0018,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0x1fba, 0x1551: 0x7d8d,\n\t0x1552: 0x0040, 0x1553: 0x1fc2, 0x1554: 0x0122, 0x1555: 0x1fca, 0x1556: 0x1fd2, 0x1557: 0x7dad,\n\t0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0x1fda, 0x1574: 0x1fda, 0x1575: 0x072a,\n\t0x1576: 0x0732, 0x1577: 0x1fe2, 0x1578: 0x1fea, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d,\n\t0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0x1ff2, 0x1588: 0x1ffa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e,\n\t0x158c: 0x7fae, 0x158d: 0x1fda, 0x158e: 0x1fda, 0x158f: 0x1fda, 0x1590: 0x1fba, 0x1591: 0x7fcd,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x0122, 0x1595: 0x1fc2, 0x1596: 0x1fd2, 0x1597: 0x1fca,\n\t0x1598: 0x7fed, 0x1599: 0x072a, 0x159a: 0x0732, 0x159b: 0x1fe2, 0x159c: 0x1fea, 0x159d: 0x7ecd,\n\t0x159e: 0x7f2d, 0x159f: 0x2002, 0x15a0: 0x200a, 0x15a1: 0x2012, 0x15a2: 0x071a, 0x15a3: 0x2019,\n\t0x15a4: 0x2022, 0x15a5: 0x202a, 0x15a6: 0x0722, 0x15a7: 0x0040, 0x15a8: 0x2032, 0x15a9: 0x203a,\n\t0x15aa: 0x2042, 0x15ab: 0x204a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x800e, 0x15b1: 0x2051, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040,\n\t0x15b6: 0x806e, 0x15b7: 0x2059, 0x15b8: 0x808e, 0x15b9: 0x2061, 0x15ba: 0x80ae, 0x15bb: 0x2069,\n\t0x15bc: 0x80ce, 0x15bd: 0x2071, 0x15be: 0x80ee, 0x15bf: 0x2079,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x2081, 0x15c1: 0x2089, 0x15c2: 0x2089, 0x15c3: 0x2091, 0x15c4: 0x2091, 0x15c5: 0x2099,\n\t0x15c6: 0x2099, 0x15c7: 0x20a1, 0x15c8: 0x20a1, 0x15c9: 0x20a9, 0x15ca: 0x20a9, 0x15cb: 0x20a9,\n\t0x15cc: 0x20a9, 0x15cd: 0x20b1, 0x15ce: 0x20b1, 0x15cf: 0x20b9, 0x15d0: 0x20b9, 0x15d1: 0x20b9,\n\t0x15d2: 0x20b9, 0x15d3: 0x20c1, 0x15d4: 0x20c1, 0x15d5: 0x20c9, 0x15d6: 0x20c9, 0x15d7: 0x20c9,\n\t0x15d8: 0x20c9, 0x15d9: 0x20d1, 0x15da: 0x20d1, 0x15db: 0x20d1, 0x15dc: 0x20d1, 0x15dd: 0x20d9,\n\t0x15de: 0x20d9, 0x15df: 0x20d9, 0x15e0: 0x20d9, 0x15e1: 0x20e1, 0x15e2: 0x20e1, 0x15e3: 0x20e1,\n\t0x15e4: 0x20e1, 0x15e5: 0x20e9, 0x15e6: 0x20e9, 0x15e7: 0x20e9, 0x15e8: 0x20e9, 0x15e9: 0x20f1,\n\t0x15ea: 0x20f1, 0x15eb: 0x20f9, 0x15ec: 0x20f9, 0x15ed: 0x2101, 0x15ee: 0x2101, 0x15ef: 0x2109,\n\t0x15f0: 0x2109, 0x15f1: 0x2111, 0x15f2: 0x2111, 0x15f3: 0x2111, 0x15f4: 0x2111, 0x15f5: 0x2119,\n\t0x15f6: 0x2119, 0x15f7: 0x2119, 0x15f8: 0x2119, 0x15f9: 0x2121, 0x15fa: 0x2121, 0x15fb: 0x2121,\n\t0x15fc: 0x2121, 0x15fd: 0x2129, 0x15fe: 0x2129, 0x15ff: 0x2129,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x2129, 0x1601: 0x2131, 0x1602: 0x2131, 0x1603: 0x2131, 0x1604: 0x2131, 0x1605: 0x2139,\n\t0x1606: 0x2139, 0x1607: 0x2139, 0x1608: 0x2139, 0x1609: 0x2141, 0x160a: 0x2141, 0x160b: 0x2141,\n\t0x160c: 0x2141, 0x160d: 0x2149, 0x160e: 0x2149, 0x160f: 0x2149, 0x1610: 0x2149, 0x1611: 0x2151,\n\t0x1612: 0x2151, 0x1613: 0x2151, 0x1614: 0x2151, 0x1615: 0x2159, 0x1616: 0x2159, 0x1617: 0x2159,\n\t0x1618: 0x2159, 0x1619: 0x2161, 0x161a: 0x2161, 0x161b: 0x2161, 0x161c: 0x2161, 0x161d: 0x2169,\n\t0x161e: 0x2169, 0x161f: 0x2169, 0x1620: 0x2169, 0x1621: 0x2171, 0x1622: 0x2171, 0x1623: 0x2171,\n\t0x1624: 0x2171, 0x1625: 0x2179, 0x1626: 0x2179, 0x1627: 0x2179, 0x1628: 0x2179, 0x1629: 0x2181,\n\t0x162a: 0x2181, 0x162b: 0x2181, 0x162c: 0x2181, 0x162d: 0x2189, 0x162e: 0x2189, 0x162f: 0x1701,\n\t0x1630: 0x1701, 0x1631: 0x2191, 0x1632: 0x2191, 0x1633: 0x2191, 0x1634: 0x2191, 0x1635: 0x2199,\n\t0x1636: 0x2199, 0x1637: 0x21a1, 0x1638: 0x21a1, 0x1639: 0x21a9, 0x163a: 0x21a9, 0x163b: 0x21b1,\n\t0x163c: 0x21b1, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0x1fca, 0x1642: 0x21ba, 0x1643: 0x2002, 0x1644: 0x203a, 0x1645: 0x2042,\n\t0x1646: 0x200a, 0x1647: 0x21c2, 0x1648: 0x072a, 0x1649: 0x0732, 0x164a: 0x2012, 0x164b: 0x071a,\n\t0x164c: 0x1fba, 0x164d: 0x2019, 0x164e: 0x0961, 0x164f: 0x21ca, 0x1650: 0x06e1, 0x1651: 0x0049,\n\t0x1652: 0x0029, 0x1653: 0x0031, 0x1654: 0x06e9, 0x1655: 0x06f1, 0x1656: 0x06f9, 0x1657: 0x0701,\n\t0x1658: 0x0709, 0x1659: 0x0711, 0x165a: 0x1fc2, 0x165b: 0x0122, 0x165c: 0x2022, 0x165d: 0x0722,\n\t0x165e: 0x202a, 0x165f: 0x1fd2, 0x1660: 0x204a, 0x1661: 0x0019, 0x1662: 0x02e9, 0x1663: 0x03d9,\n\t0x1664: 0x02f1, 0x1665: 0x02f9, 0x1666: 0x03f1, 0x1667: 0x0309, 0x1668: 0x00a9, 0x1669: 0x0311,\n\t0x166a: 0x00b1, 0x166b: 0x0319, 0x166c: 0x0101, 0x166d: 0x0321, 0x166e: 0x0329, 0x166f: 0x0051,\n\t0x1670: 0x0339, 0x1671: 0x0751, 0x1672: 0x00b9, 0x1673: 0x0089, 0x1674: 0x0341, 0x1675: 0x0349,\n\t0x1676: 0x0391, 0x1677: 0x00c1, 0x1678: 0x0109, 0x1679: 0x00c9, 0x167a: 0x04b1, 0x167b: 0x1ff2,\n\t0x167c: 0x2032, 0x167d: 0x1ffa, 0x167e: 0x21d2, 0x167f: 0x1fda,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0672, 0x1681: 0x0019, 0x1682: 0x02e9, 0x1683: 0x03d9, 0x1684: 0x02f1, 0x1685: 0x02f9,\n\t0x1686: 0x03f1, 0x1687: 0x0309, 0x1688: 0x00a9, 0x1689: 0x0311, 0x168a: 0x00b1, 0x168b: 0x0319,\n\t0x168c: 0x0101, 0x168d: 0x0321, 0x168e: 0x0329, 0x168f: 0x0051, 0x1690: 0x0339, 0x1691: 0x0751,\n\t0x1692: 0x00b9, 0x1693: 0x0089, 0x1694: 0x0341, 0x1695: 0x0349, 0x1696: 0x0391, 0x1697: 0x00c1,\n\t0x1698: 0x0109, 0x1699: 0x00c9, 0x169a: 0x04b1, 0x169b: 0x1fe2, 0x169c: 0x21da, 0x169d: 0x1fea,\n\t0x169e: 0x21e2, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x0961, 0x16a2: 0x814d, 0x16a3: 0x814d,\n\t0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d,\n\t0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd,\n\t0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d,\n\t0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d,\n\t0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d,\n\t0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd,\n\t0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d,\n\t0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d,\n\t0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d,\n\t0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d,\n\t0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed,\n\t0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d,\n\t0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed,\n\t0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d,\n\t0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d,\n\t0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d,\n\t0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x21e9, 0x1721: 0x21f1, 0x1722: 0x21f9, 0x1723: 0x8a0e,\n\t0x1724: 0x2201, 0x1725: 0x2209, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d,\n\t0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0008, 0x1741: 0x0008, 0x1742: 0x0008, 0x1743: 0x0008, 0x1744: 0x0008, 0x1745: 0x0008,\n\t0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008,\n\t0x174c: 0x0008, 0x174d: 0x0008, 0x174e: 0x0008, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0008,\n\t0x1752: 0x0008, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008,\n\t0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008,\n\t0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008,\n\t0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0040, 0x176c: 0x0040, 0x176d: 0x0040, 0x176e: 0x0040, 0x176f: 0x0018,\n\t0x1770: 0x8b3d, 0x1771: 0x8b55, 0x1772: 0x8b6d, 0x1773: 0x8b55, 0x1774: 0x8b85, 0x1775: 0x8b55,\n\t0x1776: 0x8b6d, 0x1777: 0x8b55, 0x1778: 0x8b3d, 0x1779: 0x8b9d, 0x177a: 0x8bb5, 0x177b: 0x0040,\n\t0x177c: 0x8bcd, 0x177d: 0x8b9d, 0x177e: 0x8bb5, 0x177f: 0x8b9d,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0xe13d, 0x1781: 0xe14d, 0x1782: 0xe15d, 0x1783: 0xe14d, 0x1784: 0xe17d, 0x1785: 0xe14d,\n\t0x1786: 0xe15d, 0x1787: 0xe14d, 0x1788: 0xe13d, 0x1789: 0xe1cd, 0x178a: 0xe1dd, 0x178b: 0x0040,\n\t0x178c: 0xe1fd, 0x178d: 0xe1cd, 0x178e: 0xe1dd, 0x178f: 0xe1cd, 0x1790: 0xe13d, 0x1791: 0xe14d,\n\t0x1792: 0xe15d, 0x1793: 0x0040, 0x1794: 0xe17d, 0x1795: 0xe14d, 0x1796: 0x0040, 0x1797: 0x0008,\n\t0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0040, 0x17a3: 0x0008,\n\t0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0008,\n\t0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,\n\t0x17b0: 0x0008, 0x17b1: 0x0008, 0x17b2: 0x0040, 0x17b3: 0x0008, 0x17b4: 0x0008, 0x17b5: 0x0008,\n\t0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0008,\n\t0x17bc: 0x0008, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x0008, 0x17c1: 0x2211, 0x17c2: 0x2219, 0x17c3: 0x02e1, 0x17c4: 0x2221, 0x17c5: 0x2229,\n\t0x17c6: 0x0040, 0x17c7: 0x2231, 0x17c8: 0x2239, 0x17c9: 0x2241, 0x17ca: 0x2249, 0x17cb: 0x2251,\n\t0x17cc: 0x2259, 0x17cd: 0x2261, 0x17ce: 0x2269, 0x17cf: 0x2271, 0x17d0: 0x2279, 0x17d1: 0x2281,\n\t0x17d2: 0x2289, 0x17d3: 0x2291, 0x17d4: 0x2299, 0x17d5: 0x0741, 0x17d6: 0x22a1, 0x17d7: 0x22a9,\n\t0x17d8: 0x22b1, 0x17d9: 0x22b9, 0x17da: 0x22c1, 0x17db: 0x13d9, 0x17dc: 0x8be5, 0x17dd: 0x22c9,\n\t0x17de: 0x22d1, 0x17df: 0x8c05, 0x17e0: 0x22d9, 0x17e1: 0x8c25, 0x17e2: 0x22e1, 0x17e3: 0x22e9,\n\t0x17e4: 0x22f1, 0x17e5: 0x0751, 0x17e6: 0x22f9, 0x17e7: 0x8c45, 0x17e8: 0x0949, 0x17e9: 0x2301,\n\t0x17ea: 0x2309, 0x17eb: 0x2311, 0x17ec: 0x2319, 0x17ed: 0x2321, 0x17ee: 0x2329, 0x17ef: 0x2331,\n\t0x17f0: 0x2339, 0x17f1: 0x0040, 0x17f2: 0x2341, 0x17f3: 0x2349, 0x17f4: 0x2351, 0x17f5: 0x2359,\n\t0x17f6: 0x2361, 0x17f7: 0x2369, 0x17f8: 0x2371, 0x17f9: 0x8c65, 0x17fa: 0x8c85, 0x17fb: 0x0040,\n\t0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0a08, 0x1801: 0x0a08, 0x1802: 0x0a08, 0x1803: 0x0a08, 0x1804: 0x0a08, 0x1805: 0x0c08,\n\t0x1806: 0x0808, 0x1807: 0x0c08, 0x1808: 0x0818, 0x1809: 0x0c08, 0x180a: 0x0c08, 0x180b: 0x0808,\n\t0x180c: 0x0808, 0x180d: 0x0908, 0x180e: 0x0c08, 0x180f: 0x0c08, 0x1810: 0x0c08, 0x1811: 0x0c08,\n\t0x1812: 0x0c08, 0x1813: 0x0a08, 0x1814: 0x0a08, 0x1815: 0x0a08, 0x1816: 0x0a08, 0x1817: 0x0908,\n\t0x1818: 0x0a08, 0x1819: 0x0a08, 0x181a: 0x0a08, 0x181b: 0x0a08, 0x181c: 0x0a08, 0x181d: 0x0c08,\n\t0x181e: 0x0a08, 0x181f: 0x0a08, 0x1820: 0x0a08, 0x1821: 0x0c08, 0x1822: 0x0808, 0x1823: 0x0808,\n\t0x1824: 0x0c08, 0x1825: 0x3308, 0x1826: 0x3308, 0x1827: 0x0040, 0x1828: 0x0040, 0x1829: 0x0040,\n\t0x182a: 0x0040, 0x182b: 0x0a18, 0x182c: 0x0a18, 0x182d: 0x0a18, 0x182e: 0x0a18, 0x182f: 0x0c18,\n\t0x1830: 0x0818, 0x1831: 0x0818, 0x1832: 0x0818, 0x1833: 0x0818, 0x1834: 0x0818, 0x1835: 0x0818,\n\t0x1836: 0x0818, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0a08, 0x1841: 0x0c08, 0x1842: 0x0a08, 0x1843: 0x0c08, 0x1844: 0x0c08, 0x1845: 0x0c08,\n\t0x1846: 0x0a08, 0x1847: 0x0a08, 0x1848: 0x0a08, 0x1849: 0x0c08, 0x184a: 0x0a08, 0x184b: 0x0a08,\n\t0x184c: 0x0c08, 0x184d: 0x0a08, 0x184e: 0x0c08, 0x184f: 0x0c08, 0x1850: 0x0a08, 0x1851: 0x0c08,\n\t0x1852: 0x0040, 0x1853: 0x0040, 0x1854: 0x0040, 0x1855: 0x0040, 0x1856: 0x0040, 0x1857: 0x0040,\n\t0x1858: 0x0040, 0x1859: 0x0818, 0x185a: 0x0818, 0x185b: 0x0818, 0x185c: 0x0818, 0x185d: 0x0040,\n\t0x185e: 0x0040, 0x185f: 0x0040, 0x1860: 0x0040, 0x1861: 0x0040, 0x1862: 0x0040, 0x1863: 0x0040,\n\t0x1864: 0x0040, 0x1865: 0x0040, 0x1866: 0x0040, 0x1867: 0x0040, 0x1868: 0x0040, 0x1869: 0x0c18,\n\t0x186a: 0x0c18, 0x186b: 0x0c18, 0x186c: 0x0c18, 0x186d: 0x0a18, 0x186e: 0x0a18, 0x186f: 0x0818,\n\t0x1870: 0x0040, 0x1871: 0x0040, 0x1872: 0x0040, 0x1873: 0x0040, 0x1874: 0x0040, 0x1875: 0x0040,\n\t0x1876: 0x0040, 0x1877: 0x0040, 0x1878: 0x0040, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x0040,\n\t0x187c: 0x0040, 0x187d: 0x0040, 0x187e: 0x0040, 0x187f: 0x0040,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x3308, 0x1881: 0x3308, 0x1882: 0x3008, 0x1883: 0x3008, 0x1884: 0x0040, 0x1885: 0x0008,\n\t0x1886: 0x0008, 0x1887: 0x0008, 0x1888: 0x0008, 0x1889: 0x0008, 0x188a: 0x0008, 0x188b: 0x0008,\n\t0x188c: 0x0008, 0x188d: 0x0040, 0x188e: 0x0040, 0x188f: 0x0008, 0x1890: 0x0008, 0x1891: 0x0040,\n\t0x1892: 0x0040, 0x1893: 0x0008, 0x1894: 0x0008, 0x1895: 0x0008, 0x1896: 0x0008, 0x1897: 0x0008,\n\t0x1898: 0x0008, 0x1899: 0x0008, 0x189a: 0x0008, 0x189b: 0x0008, 0x189c: 0x0008, 0x189d: 0x0008,\n\t0x189e: 0x0008, 0x189f: 0x0008, 0x18a0: 0x0008, 0x18a1: 0x0008, 0x18a2: 0x0008, 0x18a3: 0x0008,\n\t0x18a4: 0x0008, 0x18a5: 0x0008, 0x18a6: 0x0008, 0x18a7: 0x0008, 0x18a8: 0x0008, 0x18a9: 0x0040,\n\t0x18aa: 0x0008, 0x18ab: 0x0008, 0x18ac: 0x0008, 0x18ad: 0x0008, 0x18ae: 0x0008, 0x18af: 0x0008,\n\t0x18b0: 0x0008, 0x18b1: 0x0040, 0x18b2: 0x0008, 0x18b3: 0x0008, 0x18b4: 0x0040, 0x18b5: 0x0008,\n\t0x18b6: 0x0008, 0x18b7: 0x0008, 0x18b8: 0x0008, 0x18b9: 0x0008, 0x18ba: 0x0040, 0x18bb: 0x3308,\n\t0x18bc: 0x3308, 0x18bd: 0x0008, 0x18be: 0x3008, 0x18bf: 0x3008,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x3308, 0x18c1: 0x3008, 0x18c2: 0x3008, 0x18c3: 0x3008, 0x18c4: 0x3008, 0x18c5: 0x0040,\n\t0x18c6: 0x0040, 0x18c7: 0x3008, 0x18c8: 0x3008, 0x18c9: 0x0040, 0x18ca: 0x0040, 0x18cb: 0x3008,\n\t0x18cc: 0x3008, 0x18cd: 0x3808, 0x18ce: 0x0040, 0x18cf: 0x0040, 0x18d0: 0x0008, 0x18d1: 0x0040,\n\t0x18d2: 0x0040, 0x18d3: 0x0040, 0x18d4: 0x0040, 0x18d5: 0x0040, 0x18d6: 0x0040, 0x18d7: 0x3008,\n\t0x18d8: 0x0040, 0x18d9: 0x0040, 0x18da: 0x0040, 0x18db: 0x0040, 0x18dc: 0x0040, 0x18dd: 0x0008,\n\t0x18de: 0x0008, 0x18df: 0x0008, 0x18e0: 0x0008, 0x18e1: 0x0008, 0x18e2: 0x3008, 0x18e3: 0x3008,\n\t0x18e4: 0x0040, 0x18e5: 0x0040, 0x18e6: 0x3308, 0x18e7: 0x3308, 0x18e8: 0x3308, 0x18e9: 0x3308,\n\t0x18ea: 0x3308, 0x18eb: 0x3308, 0x18ec: 0x3308, 0x18ed: 0x0040, 0x18ee: 0x0040, 0x18ef: 0x0040,\n\t0x18f0: 0x3308, 0x18f1: 0x3308, 0x18f2: 0x3308, 0x18f3: 0x3308, 0x18f4: 0x3308, 0x18f5: 0x0040,\n\t0x18f6: 0x0040, 0x18f7: 0x0040, 0x18f8: 0x0040, 0x18f9: 0x0040, 0x18fa: 0x0040, 0x18fb: 0x0040,\n\t0x18fc: 0x0040, 0x18fd: 0x0040, 0x18fe: 0x0040, 0x18ff: 0x0040,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0008, 0x1901: 0x0008, 0x1902: 0x0008, 0x1903: 0x0008, 0x1904: 0x0008, 0x1905: 0x0008,\n\t0x1906: 0x0008, 0x1907: 0x0040, 0x1908: 0x0040, 0x1909: 0x0008, 0x190a: 0x0040, 0x190b: 0x0040,\n\t0x190c: 0x0008, 0x190d: 0x0008, 0x190e: 0x0008, 0x190f: 0x0008, 0x1910: 0x0008, 0x1911: 0x0008,\n\t0x1912: 0x0008, 0x1913: 0x0008, 0x1914: 0x0040, 0x1915: 0x0008, 0x1916: 0x0008, 0x1917: 0x0040,\n\t0x1918: 0x0008, 0x1919: 0x0008, 0x191a: 0x0008, 0x191b: 0x0008, 0x191c: 0x0008, 0x191d: 0x0008,\n\t0x191e: 0x0008, 0x191f: 0x0008, 0x1920: 0x0008, 0x1921: 0x0008, 0x1922: 0x0008, 0x1923: 0x0008,\n\t0x1924: 0x0008, 0x1925: 0x0008, 0x1926: 0x0008, 0x1927: 0x0008, 0x1928: 0x0008, 0x1929: 0x0008,\n\t0x192a: 0x0008, 0x192b: 0x0008, 0x192c: 0x0008, 0x192d: 0x0008, 0x192e: 0x0008, 0x192f: 0x0008,\n\t0x1930: 0x3008, 0x1931: 0x3008, 0x1932: 0x3008, 0x1933: 0x3008, 0x1934: 0x3008, 0x1935: 0x3008,\n\t0x1936: 0x0040, 0x1937: 0x3008, 0x1938: 0x3008, 0x1939: 0x0040, 0x193a: 0x0040, 0x193b: 0x3308,\n\t0x193c: 0x3308, 0x193d: 0x3808, 0x193e: 0x3b08, 0x193f: 0x0008,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0019, 0x1941: 0x02e9, 0x1942: 0x03d9, 0x1943: 0x02f1, 0x1944: 0x02f9, 0x1945: 0x03f1,\n\t0x1946: 0x0309, 0x1947: 0x00a9, 0x1948: 0x0311, 0x1949: 0x00b1, 0x194a: 0x0319, 0x194b: 0x0101,\n\t0x194c: 0x0321, 0x194d: 0x0329, 0x194e: 0x0051, 0x194f: 0x0339, 0x1950: 0x0751, 0x1951: 0x00b9,\n\t0x1952: 0x0089, 0x1953: 0x0341, 0x1954: 0x0349, 0x1955: 0x0391, 0x1956: 0x00c1, 0x1957: 0x0109,\n\t0x1958: 0x00c9, 0x1959: 0x04b1, 0x195a: 0x0019, 0x195b: 0x02e9, 0x195c: 0x03d9, 0x195d: 0x02f1,\n\t0x195e: 0x02f9, 0x195f: 0x03f1, 0x1960: 0x0309, 0x1961: 0x00a9, 0x1962: 0x0311, 0x1963: 0x00b1,\n\t0x1964: 0x0319, 0x1965: 0x0101, 0x1966: 0x0321, 0x1967: 0x0329, 0x1968: 0x0051, 0x1969: 0x0339,\n\t0x196a: 0x0751, 0x196b: 0x00b9, 0x196c: 0x0089, 0x196d: 0x0341, 0x196e: 0x0349, 0x196f: 0x0391,\n\t0x1970: 0x00c1, 0x1971: 0x0109, 0x1972: 0x00c9, 0x1973: 0x04b1, 0x1974: 0x0019, 0x1975: 0x02e9,\n\t0x1976: 0x03d9, 0x1977: 0x02f1, 0x1978: 0x02f9, 0x1979: 0x03f1, 0x197a: 0x0309, 0x197b: 0x00a9,\n\t0x197c: 0x0311, 0x197d: 0x00b1, 0x197e: 0x0319, 0x197f: 0x0101,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0321, 0x1981: 0x0329, 0x1982: 0x0051, 0x1983: 0x0339, 0x1984: 0x0751, 0x1985: 0x00b9,\n\t0x1986: 0x0089, 0x1987: 0x0341, 0x1988: 0x0349, 0x1989: 0x0391, 0x198a: 0x00c1, 0x198b: 0x0109,\n\t0x198c: 0x00c9, 0x198d: 0x04b1, 0x198e: 0x0019, 0x198f: 0x02e9, 0x1990: 0x03d9, 0x1991: 0x02f1,\n\t0x1992: 0x02f9, 0x1993: 0x03f1, 0x1994: 0x0309, 0x1995: 0x0040, 0x1996: 0x0311, 0x1997: 0x00b1,\n\t0x1998: 0x0319, 0x1999: 0x0101, 0x199a: 0x0321, 0x199b: 0x0329, 0x199c: 0x0051, 0x199d: 0x0339,\n\t0x199e: 0x0751, 0x199f: 0x00b9, 0x19a0: 0x0089, 0x19a1: 0x0341, 0x19a2: 0x0349, 0x19a3: 0x0391,\n\t0x19a4: 0x00c1, 0x19a5: 0x0109, 0x19a6: 0x00c9, 0x19a7: 0x04b1, 0x19a8: 0x0019, 0x19a9: 0x02e9,\n\t0x19aa: 0x03d9, 0x19ab: 0x02f1, 0x19ac: 0x02f9, 0x19ad: 0x03f1, 0x19ae: 0x0309, 0x19af: 0x00a9,\n\t0x19b0: 0x0311, 0x19b1: 0x00b1, 0x19b2: 0x0319, 0x19b3: 0x0101, 0x19b4: 0x0321, 0x19b5: 0x0329,\n\t0x19b6: 0x0051, 0x19b7: 0x0339, 0x19b8: 0x0751, 0x19b9: 0x00b9, 0x19ba: 0x0089, 0x19bb: 0x0341,\n\t0x19bc: 0x0349, 0x19bd: 0x0391, 0x19be: 0x00c1, 0x19bf: 0x0109,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x00c9, 0x19c1: 0x04b1, 0x19c2: 0x0019, 0x19c3: 0x02e9, 0x19c4: 0x03d9, 0x19c5: 0x02f1,\n\t0x19c6: 0x02f9, 0x19c7: 0x03f1, 0x19c8: 0x0309, 0x19c9: 0x00a9, 0x19ca: 0x0311, 0x19cb: 0x00b1,\n\t0x19cc: 0x0319, 0x19cd: 0x0101, 0x19ce: 0x0321, 0x19cf: 0x0329, 0x19d0: 0x0051, 0x19d1: 0x0339,\n\t0x19d2: 0x0751, 0x19d3: 0x00b9, 0x19d4: 0x0089, 0x19d5: 0x0341, 0x19d6: 0x0349, 0x19d7: 0x0391,\n\t0x19d8: 0x00c1, 0x19d9: 0x0109, 0x19da: 0x00c9, 0x19db: 0x04b1, 0x19dc: 0x0019, 0x19dd: 0x0040,\n\t0x19de: 0x03d9, 0x19df: 0x02f1, 0x19e0: 0x0040, 0x19e1: 0x0040, 0x19e2: 0x0309, 0x19e3: 0x0040,\n\t0x19e4: 0x0040, 0x19e5: 0x00b1, 0x19e6: 0x0319, 0x19e7: 0x0040, 0x19e8: 0x0040, 0x19e9: 0x0329,\n\t0x19ea: 0x0051, 0x19eb: 0x0339, 0x19ec: 0x0751, 0x19ed: 0x0040, 0x19ee: 0x0089, 0x19ef: 0x0341,\n\t0x19f0: 0x0349, 0x19f1: 0x0391, 0x19f2: 0x00c1, 0x19f3: 0x0109, 0x19f4: 0x00c9, 0x19f5: 0x04b1,\n\t0x19f6: 0x0019, 0x19f7: 0x02e9, 0x19f8: 0x03d9, 0x19f9: 0x02f1, 0x19fa: 0x0040, 0x19fb: 0x03f1,\n\t0x19fc: 0x0040, 0x19fd: 0x00a9, 0x19fe: 0x0311, 0x19ff: 0x00b1,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0319, 0x1a01: 0x0101, 0x1a02: 0x0321, 0x1a03: 0x0329, 0x1a04: 0x0040, 0x1a05: 0x0339,\n\t0x1a06: 0x0751, 0x1a07: 0x00b9, 0x1a08: 0x0089, 0x1a09: 0x0341, 0x1a0a: 0x0349, 0x1a0b: 0x0391,\n\t0x1a0c: 0x00c1, 0x1a0d: 0x0109, 0x1a0e: 0x00c9, 0x1a0f: 0x04b1, 0x1a10: 0x0019, 0x1a11: 0x02e9,\n\t0x1a12: 0x03d9, 0x1a13: 0x02f1, 0x1a14: 0x02f9, 0x1a15: 0x03f1, 0x1a16: 0x0309, 0x1a17: 0x00a9,\n\t0x1a18: 0x0311, 0x1a19: 0x00b1, 0x1a1a: 0x0319, 0x1a1b: 0x0101, 0x1a1c: 0x0321, 0x1a1d: 0x0329,\n\t0x1a1e: 0x0051, 0x1a1f: 0x0339, 0x1a20: 0x0751, 0x1a21: 0x00b9, 0x1a22: 0x0089, 0x1a23: 0x0341,\n\t0x1a24: 0x0349, 0x1a25: 0x0391, 0x1a26: 0x00c1, 0x1a27: 0x0109, 0x1a28: 0x00c9, 0x1a29: 0x04b1,\n\t0x1a2a: 0x0019, 0x1a2b: 0x02e9, 0x1a2c: 0x03d9, 0x1a2d: 0x02f1, 0x1a2e: 0x02f9, 0x1a2f: 0x03f1,\n\t0x1a30: 0x0309, 0x1a31: 0x00a9, 0x1a32: 0x0311, 0x1a33: 0x00b1, 0x1a34: 0x0319, 0x1a35: 0x0101,\n\t0x1a36: 0x0321, 0x1a37: 0x0329, 0x1a38: 0x0051, 0x1a39: 0x0339, 0x1a3a: 0x0751, 0x1a3b: 0x00b9,\n\t0x1a3c: 0x0089, 0x1a3d: 0x0341, 0x1a3e: 0x0349, 0x1a3f: 0x0391,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x00c1, 0x1a41: 0x0109, 0x1a42: 0x00c9, 0x1a43: 0x04b1, 0x1a44: 0x0019, 0x1a45: 0x02e9,\n\t0x1a46: 0x0040, 0x1a47: 0x02f1, 0x1a48: 0x02f9, 0x1a49: 0x03f1, 0x1a4a: 0x0309, 0x1a4b: 0x0040,\n\t0x1a4c: 0x0040, 0x1a4d: 0x00b1, 0x1a4e: 0x0319, 0x1a4f: 0x0101, 0x1a50: 0x0321, 0x1a51: 0x0329,\n\t0x1a52: 0x0051, 0x1a53: 0x0339, 0x1a54: 0x0751, 0x1a55: 0x0040, 0x1a56: 0x0089, 0x1a57: 0x0341,\n\t0x1a58: 0x0349, 0x1a59: 0x0391, 0x1a5a: 0x00c1, 0x1a5b: 0x0109, 0x1a5c: 0x00c9, 0x1a5d: 0x0040,\n\t0x1a5e: 0x0019, 0x1a5f: 0x02e9, 0x1a60: 0x03d9, 0x1a61: 0x02f1, 0x1a62: 0x02f9, 0x1a63: 0x03f1,\n\t0x1a64: 0x0309, 0x1a65: 0x00a9, 0x1a66: 0x0311, 0x1a67: 0x00b1, 0x1a68: 0x0319, 0x1a69: 0x0101,\n\t0x1a6a: 0x0321, 0x1a6b: 0x0329, 0x1a6c: 0x0051, 0x1a6d: 0x0339, 0x1a6e: 0x0751, 0x1a6f: 0x00b9,\n\t0x1a70: 0x0089, 0x1a71: 0x0341, 0x1a72: 0x0349, 0x1a73: 0x0391, 0x1a74: 0x00c1, 0x1a75: 0x0109,\n\t0x1a76: 0x00c9, 0x1a77: 0x04b1, 0x1a78: 0x0019, 0x1a79: 0x02e9, 0x1a7a: 0x0040, 0x1a7b: 0x02f1,\n\t0x1a7c: 0x02f9, 0x1a7d: 0x03f1, 0x1a7e: 0x0309, 0x1a7f: 0x0040,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0311, 0x1a81: 0x00b1, 0x1a82: 0x0319, 0x1a83: 0x0101, 0x1a84: 0x0321, 0x1a85: 0x0040,\n\t0x1a86: 0x0051, 0x1a87: 0x0040, 0x1a88: 0x0040, 0x1a89: 0x0040, 0x1a8a: 0x0089, 0x1a8b: 0x0341,\n\t0x1a8c: 0x0349, 0x1a8d: 0x0391, 0x1a8e: 0x00c1, 0x1a8f: 0x0109, 0x1a90: 0x00c9, 0x1a91: 0x0040,\n\t0x1a92: 0x0019, 0x1a93: 0x02e9, 0x1a94: 0x03d9, 0x1a95: 0x02f1, 0x1a96: 0x02f9, 0x1a97: 0x03f1,\n\t0x1a98: 0x0309, 0x1a99: 0x00a9, 0x1a9a: 0x0311, 0x1a9b: 0x00b1, 0x1a9c: 0x0319, 0x1a9d: 0x0101,\n\t0x1a9e: 0x0321, 0x1a9f: 0x0329, 0x1aa0: 0x0051, 0x1aa1: 0x0339, 0x1aa2: 0x0751, 0x1aa3: 0x00b9,\n\t0x1aa4: 0x0089, 0x1aa5: 0x0341, 0x1aa6: 0x0349, 0x1aa7: 0x0391, 0x1aa8: 0x00c1, 0x1aa9: 0x0109,\n\t0x1aaa: 0x00c9, 0x1aab: 0x04b1, 0x1aac: 0x0019, 0x1aad: 0x02e9, 0x1aae: 0x03d9, 0x1aaf: 0x02f1,\n\t0x1ab0: 0x02f9, 0x1ab1: 0x03f1, 0x1ab2: 0x0309, 0x1ab3: 0x00a9, 0x1ab4: 0x0311, 0x1ab5: 0x00b1,\n\t0x1ab6: 0x0319, 0x1ab7: 0x0101, 0x1ab8: 0x0321, 0x1ab9: 0x0329, 0x1aba: 0x0051, 0x1abb: 0x0339,\n\t0x1abc: 0x0751, 0x1abd: 0x00b9, 0x1abe: 0x0089, 0x1abf: 0x0341,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x0349, 0x1ac1: 0x0391, 0x1ac2: 0x00c1, 0x1ac3: 0x0109, 0x1ac4: 0x00c9, 0x1ac5: 0x04b1,\n\t0x1ac6: 0x0019, 0x1ac7: 0x02e9, 0x1ac8: 0x03d9, 0x1ac9: 0x02f1, 0x1aca: 0x02f9, 0x1acb: 0x03f1,\n\t0x1acc: 0x0309, 0x1acd: 0x00a9, 0x1ace: 0x0311, 0x1acf: 0x00b1, 0x1ad0: 0x0319, 0x1ad1: 0x0101,\n\t0x1ad2: 0x0321, 0x1ad3: 0x0329, 0x1ad4: 0x0051, 0x1ad5: 0x0339, 0x1ad6: 0x0751, 0x1ad7: 0x00b9,\n\t0x1ad8: 0x0089, 0x1ad9: 0x0341, 0x1ada: 0x0349, 0x1adb: 0x0391, 0x1adc: 0x00c1, 0x1add: 0x0109,\n\t0x1ade: 0x00c9, 0x1adf: 0x04b1, 0x1ae0: 0x0019, 0x1ae1: 0x02e9, 0x1ae2: 0x03d9, 0x1ae3: 0x02f1,\n\t0x1ae4: 0x02f9, 0x1ae5: 0x03f1, 0x1ae6: 0x0309, 0x1ae7: 0x00a9, 0x1ae8: 0x0311, 0x1ae9: 0x00b1,\n\t0x1aea: 0x0319, 0x1aeb: 0x0101, 0x1aec: 0x0321, 0x1aed: 0x0329, 0x1aee: 0x0051, 0x1aef: 0x0339,\n\t0x1af0: 0x0751, 0x1af1: 0x00b9, 0x1af2: 0x0089, 0x1af3: 0x0341, 0x1af4: 0x0349, 0x1af5: 0x0391,\n\t0x1af6: 0x00c1, 0x1af7: 0x0109, 0x1af8: 0x00c9, 0x1af9: 0x04b1, 0x1afa: 0x0019, 0x1afb: 0x02e9,\n\t0x1afc: 0x03d9, 0x1afd: 0x02f1, 0x1afe: 0x02f9, 0x1aff: 0x03f1,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x0309, 0x1b01: 0x00a9, 0x1b02: 0x0311, 0x1b03: 0x00b1, 0x1b04: 0x0319, 0x1b05: 0x0101,\n\t0x1b06: 0x0321, 0x1b07: 0x0329, 0x1b08: 0x0051, 0x1b09: 0x0339, 0x1b0a: 0x0751, 0x1b0b: 0x00b9,\n\t0x1b0c: 0x0089, 0x1b0d: 0x0341, 0x1b0e: 0x0349, 0x1b0f: 0x0391, 0x1b10: 0x00c1, 0x1b11: 0x0109,\n\t0x1b12: 0x00c9, 0x1b13: 0x04b1, 0x1b14: 0x0019, 0x1b15: 0x02e9, 0x1b16: 0x03d9, 0x1b17: 0x02f1,\n\t0x1b18: 0x02f9, 0x1b19: 0x03f1, 0x1b1a: 0x0309, 0x1b1b: 0x00a9, 0x1b1c: 0x0311, 0x1b1d: 0x00b1,\n\t0x1b1e: 0x0319, 0x1b1f: 0x0101, 0x1b20: 0x0321, 0x1b21: 0x0329, 0x1b22: 0x0051, 0x1b23: 0x0339,\n\t0x1b24: 0x0751, 0x1b25: 0x00b9, 0x1b26: 0x0089, 0x1b27: 0x0341, 0x1b28: 0x0349, 0x1b29: 0x0391,\n\t0x1b2a: 0x00c1, 0x1b2b: 0x0109, 0x1b2c: 0x00c9, 0x1b2d: 0x04b1, 0x1b2e: 0x0019, 0x1b2f: 0x02e9,\n\t0x1b30: 0x03d9, 0x1b31: 0x02f1, 0x1b32: 0x02f9, 0x1b33: 0x03f1, 0x1b34: 0x0309, 0x1b35: 0x00a9,\n\t0x1b36: 0x0311, 0x1b37: 0x00b1, 0x1b38: 0x0319, 0x1b39: 0x0101, 0x1b3a: 0x0321, 0x1b3b: 0x0329,\n\t0x1b3c: 0x0051, 0x1b3d: 0x0339, 0x1b3e: 0x0751, 0x1b3f: 0x00b9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x0089, 0x1b41: 0x0341, 0x1b42: 0x0349, 0x1b43: 0x0391, 0x1b44: 0x00c1, 0x1b45: 0x0109,\n\t0x1b46: 0x00c9, 0x1b47: 0x04b1, 0x1b48: 0x0019, 0x1b49: 0x02e9, 0x1b4a: 0x03d9, 0x1b4b: 0x02f1,\n\t0x1b4c: 0x02f9, 0x1b4d: 0x03f1, 0x1b4e: 0x0309, 0x1b4f: 0x00a9, 0x1b50: 0x0311, 0x1b51: 0x00b1,\n\t0x1b52: 0x0319, 0x1b53: 0x0101, 0x1b54: 0x0321, 0x1b55: 0x0329, 0x1b56: 0x0051, 0x1b57: 0x0339,\n\t0x1b58: 0x0751, 0x1b59: 0x00b9, 0x1b5a: 0x0089, 0x1b5b: 0x0341, 0x1b5c: 0x0349, 0x1b5d: 0x0391,\n\t0x1b5e: 0x00c1, 0x1b5f: 0x0109, 0x1b60: 0x00c9, 0x1b61: 0x04b1, 0x1b62: 0x0019, 0x1b63: 0x02e9,\n\t0x1b64: 0x03d9, 0x1b65: 0x02f1, 0x1b66: 0x02f9, 0x1b67: 0x03f1, 0x1b68: 0x0309, 0x1b69: 0x00a9,\n\t0x1b6a: 0x0311, 0x1b6b: 0x00b1, 0x1b6c: 0x0319, 0x1b6d: 0x0101, 0x1b6e: 0x0321, 0x1b6f: 0x0329,\n\t0x1b70: 0x0051, 0x1b71: 0x0339, 0x1b72: 0x0751, 0x1b73: 0x00b9, 0x1b74: 0x0089, 0x1b75: 0x0341,\n\t0x1b76: 0x0349, 0x1b77: 0x0391, 0x1b78: 0x00c1, 0x1b79: 0x0109, 0x1b7a: 0x00c9, 0x1b7b: 0x04b1,\n\t0x1b7c: 0x0019, 0x1b7d: 0x02e9, 0x1b7e: 0x03d9, 0x1b7f: 0x02f1,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x02f9, 0x1b81: 0x03f1, 0x1b82: 0x0309, 0x1b83: 0x00a9, 0x1b84: 0x0311, 0x1b85: 0x00b1,\n\t0x1b86: 0x0319, 0x1b87: 0x0101, 0x1b88: 0x0321, 0x1b89: 0x0329, 0x1b8a: 0x0051, 0x1b8b: 0x0339,\n\t0x1b8c: 0x0751, 0x1b8d: 0x00b9, 0x1b8e: 0x0089, 0x1b8f: 0x0341, 0x1b90: 0x0349, 0x1b91: 0x0391,\n\t0x1b92: 0x00c1, 0x1b93: 0x0109, 0x1b94: 0x00c9, 0x1b95: 0x04b1, 0x1b96: 0x0019, 0x1b97: 0x02e9,\n\t0x1b98: 0x03d9, 0x1b99: 0x02f1, 0x1b9a: 0x02f9, 0x1b9b: 0x03f1, 0x1b9c: 0x0309, 0x1b9d: 0x00a9,\n\t0x1b9e: 0x0311, 0x1b9f: 0x00b1, 0x1ba0: 0x0319, 0x1ba1: 0x0101, 0x1ba2: 0x0321, 0x1ba3: 0x0329,\n\t0x1ba4: 0x0051, 0x1ba5: 0x0339, 0x1ba6: 0x0751, 0x1ba7: 0x00b9, 0x1ba8: 0x0089, 0x1ba9: 0x0341,\n\t0x1baa: 0x0349, 0x1bab: 0x0391, 0x1bac: 0x00c1, 0x1bad: 0x0109, 0x1bae: 0x00c9, 0x1baf: 0x04b1,\n\t0x1bb0: 0x0019, 0x1bb1: 0x02e9, 0x1bb2: 0x03d9, 0x1bb3: 0x02f1, 0x1bb4: 0x02f9, 0x1bb5: 0x03f1,\n\t0x1bb6: 0x0309, 0x1bb7: 0x00a9, 0x1bb8: 0x0311, 0x1bb9: 0x00b1, 0x1bba: 0x0319, 0x1bbb: 0x0101,\n\t0x1bbc: 0x0321, 0x1bbd: 0x0329, 0x1bbe: 0x0051, 0x1bbf: 0x0339,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0751, 0x1bc1: 0x00b9, 0x1bc2: 0x0089, 0x1bc3: 0x0341, 0x1bc4: 0x0349, 0x1bc5: 0x0391,\n\t0x1bc6: 0x00c1, 0x1bc7: 0x0109, 0x1bc8: 0x00c9, 0x1bc9: 0x04b1, 0x1bca: 0x0019, 0x1bcb: 0x02e9,\n\t0x1bcc: 0x03d9, 0x1bcd: 0x02f1, 0x1bce: 0x02f9, 0x1bcf: 0x03f1, 0x1bd0: 0x0309, 0x1bd1: 0x00a9,\n\t0x1bd2: 0x0311, 0x1bd3: 0x00b1, 0x1bd4: 0x0319, 0x1bd5: 0x0101, 0x1bd6: 0x0321, 0x1bd7: 0x0329,\n\t0x1bd8: 0x0051, 0x1bd9: 0x0339, 0x1bda: 0x0751, 0x1bdb: 0x00b9, 0x1bdc: 0x0089, 0x1bdd: 0x0341,\n\t0x1bde: 0x0349, 0x1bdf: 0x0391, 0x1be0: 0x00c1, 0x1be1: 0x0109, 0x1be2: 0x00c9, 0x1be3: 0x04b1,\n\t0x1be4: 0x23e1, 0x1be5: 0x23e9, 0x1be6: 0x0040, 0x1be7: 0x0040, 0x1be8: 0x23f1, 0x1be9: 0x0399,\n\t0x1bea: 0x03a1, 0x1beb: 0x03a9, 0x1bec: 0x23f9, 0x1bed: 0x2401, 0x1bee: 0x2409, 0x1bef: 0x04d1,\n\t0x1bf0: 0x05f9, 0x1bf1: 0x2411, 0x1bf2: 0x2419, 0x1bf3: 0x2421, 0x1bf4: 0x2429, 0x1bf5: 0x2431,\n\t0x1bf6: 0x2439, 0x1bf7: 0x0799, 0x1bf8: 0x03c1, 0x1bf9: 0x04d1, 0x1bfa: 0x2441, 0x1bfb: 0x2449,\n\t0x1bfc: 0x2451, 0x1bfd: 0x03b1, 0x1bfe: 0x03b9, 0x1bff: 0x2459,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0769, 0x1c01: 0x2461, 0x1c02: 0x23f1, 0x1c03: 0x0399, 0x1c04: 0x03a1, 0x1c05: 0x03a9,\n\t0x1c06: 0x23f9, 0x1c07: 0x2401, 0x1c08: 0x2409, 0x1c09: 0x04d1, 0x1c0a: 0x05f9, 0x1c0b: 0x2411,\n\t0x1c0c: 0x2419, 0x1c0d: 0x2421, 0x1c0e: 0x2429, 0x1c0f: 0x2431, 0x1c10: 0x2439, 0x1c11: 0x0799,\n\t0x1c12: 0x03c1, 0x1c13: 0x2441, 0x1c14: 0x2441, 0x1c15: 0x2449, 0x1c16: 0x2451, 0x1c17: 0x03b1,\n\t0x1c18: 0x03b9, 0x1c19: 0x2459, 0x1c1a: 0x0769, 0x1c1b: 0x2469, 0x1c1c: 0x23f9, 0x1c1d: 0x04d1,\n\t0x1c1e: 0x2411, 0x1c1f: 0x03b1, 0x1c20: 0x03c1, 0x1c21: 0x0799, 0x1c22: 0x23f1, 0x1c23: 0x0399,\n\t0x1c24: 0x03a1, 0x1c25: 0x03a9, 0x1c26: 0x23f9, 0x1c27: 0x2401, 0x1c28: 0x2409, 0x1c29: 0x04d1,\n\t0x1c2a: 0x05f9, 0x1c2b: 0x2411, 0x1c2c: 0x2419, 0x1c2d: 0x2421, 0x1c2e: 0x2429, 0x1c2f: 0x2431,\n\t0x1c30: 0x2439, 0x1c31: 0x0799, 0x1c32: 0x03c1, 0x1c33: 0x04d1, 0x1c34: 0x2441, 0x1c35: 0x2449,\n\t0x1c36: 0x2451, 0x1c37: 0x03b1, 0x1c38: 0x03b9, 0x1c39: 0x2459, 0x1c3a: 0x0769, 0x1c3b: 0x2461,\n\t0x1c3c: 0x23f1, 0x1c3d: 0x0399, 0x1c3e: 0x03a1, 0x1c3f: 0x03a9,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x23f9, 0x1c41: 0x2401, 0x1c42: 0x2409, 0x1c43: 0x04d1, 0x1c44: 0x05f9, 0x1c45: 0x2411,\n\t0x1c46: 0x2419, 0x1c47: 0x2421, 0x1c48: 0x2429, 0x1c49: 0x2431, 0x1c4a: 0x2439, 0x1c4b: 0x0799,\n\t0x1c4c: 0x03c1, 0x1c4d: 0x2441, 0x1c4e: 0x2441, 0x1c4f: 0x2449, 0x1c50: 0x2451, 0x1c51: 0x03b1,\n\t0x1c52: 0x03b9, 0x1c53: 0x2459, 0x1c54: 0x0769, 0x1c55: 0x2469, 0x1c56: 0x23f9, 0x1c57: 0x04d1,\n\t0x1c58: 0x2411, 0x1c59: 0x03b1, 0x1c5a: 0x03c1, 0x1c5b: 0x0799, 0x1c5c: 0x23f1, 0x1c5d: 0x0399,\n\t0x1c5e: 0x03a1, 0x1c5f: 0x03a9, 0x1c60: 0x23f9, 0x1c61: 0x2401, 0x1c62: 0x2409, 0x1c63: 0x04d1,\n\t0x1c64: 0x05f9, 0x1c65: 0x2411, 0x1c66: 0x2419, 0x1c67: 0x2421, 0x1c68: 0x2429, 0x1c69: 0x2431,\n\t0x1c6a: 0x2439, 0x1c6b: 0x0799, 0x1c6c: 0x03c1, 0x1c6d: 0x04d1, 0x1c6e: 0x2441, 0x1c6f: 0x2449,\n\t0x1c70: 0x2451, 0x1c71: 0x03b1, 0x1c72: 0x03b9, 0x1c73: 0x2459, 0x1c74: 0x0769, 0x1c75: 0x2461,\n\t0x1c76: 0x23f1, 0x1c77: 0x0399, 0x1c78: 0x03a1, 0x1c79: 0x03a9, 0x1c7a: 0x23f9, 0x1c7b: 0x2401,\n\t0x1c7c: 0x2409, 0x1c7d: 0x04d1, 0x1c7e: 0x05f9, 0x1c7f: 0x2411,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x2419, 0x1c81: 0x2421, 0x1c82: 0x2429, 0x1c83: 0x2431, 0x1c84: 0x2439, 0x1c85: 0x0799,\n\t0x1c86: 0x03c1, 0x1c87: 0x2441, 0x1c88: 0x2441, 0x1c89: 0x2449, 0x1c8a: 0x2451, 0x1c8b: 0x03b1,\n\t0x1c8c: 0x03b9, 0x1c8d: 0x2459, 0x1c8e: 0x0769, 0x1c8f: 0x2469, 0x1c90: 0x23f9, 0x1c91: 0x04d1,\n\t0x1c92: 0x2411, 0x1c93: 0x03b1, 0x1c94: 0x03c1, 0x1c95: 0x0799, 0x1c96: 0x23f1, 0x1c97: 0x0399,\n\t0x1c98: 0x03a1, 0x1c99: 0x03a9, 0x1c9a: 0x23f9, 0x1c9b: 0x2401, 0x1c9c: 0x2409, 0x1c9d: 0x04d1,\n\t0x1c9e: 0x05f9, 0x1c9f: 0x2411, 0x1ca0: 0x2419, 0x1ca1: 0x2421, 0x1ca2: 0x2429, 0x1ca3: 0x2431,\n\t0x1ca4: 0x2439, 0x1ca5: 0x0799, 0x1ca6: 0x03c1, 0x1ca7: 0x04d1, 0x1ca8: 0x2441, 0x1ca9: 0x2449,\n\t0x1caa: 0x2451, 0x1cab: 0x03b1, 0x1cac: 0x03b9, 0x1cad: 0x2459, 0x1cae: 0x0769, 0x1caf: 0x2461,\n\t0x1cb0: 0x23f1, 0x1cb1: 0x0399, 0x1cb2: 0x03a1, 0x1cb3: 0x03a9, 0x1cb4: 0x23f9, 0x1cb5: 0x2401,\n\t0x1cb6: 0x2409, 0x1cb7: 0x04d1, 0x1cb8: 0x05f9, 0x1cb9: 0x2411, 0x1cba: 0x2419, 0x1cbb: 0x2421,\n\t0x1cbc: 0x2429, 0x1cbd: 0x2431, 0x1cbe: 0x2439, 0x1cbf: 0x0799,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x03c1, 0x1cc1: 0x2441, 0x1cc2: 0x2441, 0x1cc3: 0x2449, 0x1cc4: 0x2451, 0x1cc5: 0x03b1,\n\t0x1cc6: 0x03b9, 0x1cc7: 0x2459, 0x1cc8: 0x0769, 0x1cc9: 0x2469, 0x1cca: 0x23f9, 0x1ccb: 0x04d1,\n\t0x1ccc: 0x2411, 0x1ccd: 0x03b1, 0x1cce: 0x03c1, 0x1ccf: 0x0799, 0x1cd0: 0x23f1, 0x1cd1: 0x0399,\n\t0x1cd2: 0x03a1, 0x1cd3: 0x03a9, 0x1cd4: 0x23f9, 0x1cd5: 0x2401, 0x1cd6: 0x2409, 0x1cd7: 0x04d1,\n\t0x1cd8: 0x05f9, 0x1cd9: 0x2411, 0x1cda: 0x2419, 0x1cdb: 0x2421, 0x1cdc: 0x2429, 0x1cdd: 0x2431,\n\t0x1cde: 0x2439, 0x1cdf: 0x0799, 0x1ce0: 0x03c1, 0x1ce1: 0x04d1, 0x1ce2: 0x2441, 0x1ce3: 0x2449,\n\t0x1ce4: 0x2451, 0x1ce5: 0x03b1, 0x1ce6: 0x03b9, 0x1ce7: 0x2459, 0x1ce8: 0x0769, 0x1ce9: 0x2461,\n\t0x1cea: 0x23f1, 0x1ceb: 0x0399, 0x1cec: 0x03a1, 0x1ced: 0x03a9, 0x1cee: 0x23f9, 0x1cef: 0x2401,\n\t0x1cf0: 0x2409, 0x1cf1: 0x04d1, 0x1cf2: 0x05f9, 0x1cf3: 0x2411, 0x1cf4: 0x2419, 0x1cf5: 0x2421,\n\t0x1cf6: 0x2429, 0x1cf7: 0x2431, 0x1cf8: 0x2439, 0x1cf9: 0x0799, 0x1cfa: 0x03c1, 0x1cfb: 0x2441,\n\t0x1cfc: 0x2441, 0x1cfd: 0x2449, 0x1cfe: 0x2451, 0x1cff: 0x03b1,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x03b9, 0x1d01: 0x2459, 0x1d02: 0x0769, 0x1d03: 0x2469, 0x1d04: 0x23f9, 0x1d05: 0x04d1,\n\t0x1d06: 0x2411, 0x1d07: 0x03b1, 0x1d08: 0x03c1, 0x1d09: 0x0799, 0x1d0a: 0x2471, 0x1d0b: 0x2471,\n\t0x1d0c: 0x0040, 0x1d0d: 0x0040, 0x1d0e: 0x06e1, 0x1d0f: 0x0049, 0x1d10: 0x0029, 0x1d11: 0x0031,\n\t0x1d12: 0x06e9, 0x1d13: 0x06f1, 0x1d14: 0x06f9, 0x1d15: 0x0701, 0x1d16: 0x0709, 0x1d17: 0x0711,\n\t0x1d18: 0x06e1, 0x1d19: 0x0049, 0x1d1a: 0x0029, 0x1d1b: 0x0031, 0x1d1c: 0x06e9, 0x1d1d: 0x06f1,\n\t0x1d1e: 0x06f9, 0x1d1f: 0x0701, 0x1d20: 0x0709, 0x1d21: 0x0711, 0x1d22: 0x06e1, 0x1d23: 0x0049,\n\t0x1d24: 0x0029, 0x1d25: 0x0031, 0x1d26: 0x06e9, 0x1d27: 0x06f1, 0x1d28: 0x06f9, 0x1d29: 0x0701,\n\t0x1d2a: 0x0709, 0x1d2b: 0x0711, 0x1d2c: 0x06e1, 0x1d2d: 0x0049, 0x1d2e: 0x0029, 0x1d2f: 0x0031,\n\t0x1d30: 0x06e9, 0x1d31: 0x06f1, 0x1d32: 0x06f9, 0x1d33: 0x0701, 0x1d34: 0x0709, 0x1d35: 0x0711,\n\t0x1d36: 0x06e1, 0x1d37: 0x0049, 0x1d38: 0x0029, 0x1d39: 0x0031, 0x1d3a: 0x06e9, 0x1d3b: 0x06f1,\n\t0x1d3c: 0x06f9, 0x1d3d: 0x0701, 0x1d3e: 0x0709, 0x1d3f: 0x0711,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x3308, 0x1d41: 0x3308, 0x1d42: 0x3308, 0x1d43: 0x3308, 0x1d44: 0x3308, 0x1d45: 0x3308,\n\t0x1d46: 0x3308, 0x1d47: 0x0040, 0x1d48: 0x3308, 0x1d49: 0x3308, 0x1d4a: 0x3308, 0x1d4b: 0x3308,\n\t0x1d4c: 0x3308, 0x1d4d: 0x3308, 0x1d4e: 0x3308, 0x1d4f: 0x3308, 0x1d50: 0x3308, 0x1d51: 0x3308,\n\t0x1d52: 0x3308, 0x1d53: 0x3308, 0x1d54: 0x3308, 0x1d55: 0x3308, 0x1d56: 0x3308, 0x1d57: 0x3308,\n\t0x1d58: 0x3308, 0x1d59: 0x0040, 0x1d5a: 0x0040, 0x1d5b: 0x3308, 0x1d5c: 0x3308, 0x1d5d: 0x3308,\n\t0x1d5e: 0x3308, 0x1d5f: 0x3308, 0x1d60: 0x3308, 0x1d61: 0x3308, 0x1d62: 0x0040, 0x1d63: 0x3308,\n\t0x1d64: 0x3308, 0x1d65: 0x0040, 0x1d66: 0x3308, 0x1d67: 0x3308, 0x1d68: 0x3308, 0x1d69: 0x3308,\n\t0x1d6a: 0x3308, 0x1d6b: 0x0040, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,\n\t0x1d70: 0x2479, 0x1d71: 0x2481, 0x1d72: 0x02a9, 0x1d73: 0x2489, 0x1d74: 0x02b1, 0x1d75: 0x2491,\n\t0x1d76: 0x2499, 0x1d77: 0x24a1, 0x1d78: 0x24a9, 0x1d79: 0x24b1, 0x1d7a: 0x24b9, 0x1d7b: 0x24c1,\n\t0x1d7c: 0x02b9, 0x1d7d: 0x24c9, 0x1d7e: 0x24d1, 0x1d7f: 0x02c1,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x02c9, 0x1d81: 0x24d9, 0x1d82: 0x24e1, 0x1d83: 0x24e9, 0x1d84: 0x24f1, 0x1d85: 0x24f9,\n\t0x1d86: 0x2501, 0x1d87: 0x2509, 0x1d88: 0x2511, 0x1d89: 0x2519, 0x1d8a: 0x2521, 0x1d8b: 0x2529,\n\t0x1d8c: 0x2531, 0x1d8d: 0x2539, 0x1d8e: 0x2541, 0x1d8f: 0x2549, 0x1d90: 0x2551, 0x1d91: 0x2479,\n\t0x1d92: 0x2481, 0x1d93: 0x02a9, 0x1d94: 0x2489, 0x1d95: 0x02b1, 0x1d96: 0x2491, 0x1d97: 0x2499,\n\t0x1d98: 0x24a1, 0x1d99: 0x24a9, 0x1d9a: 0x24b1, 0x1d9b: 0x24b9, 0x1d9c: 0x02b9, 0x1d9d: 0x24c9,\n\t0x1d9e: 0x02c1, 0x1d9f: 0x24d9, 0x1da0: 0x24e1, 0x1da1: 0x24e9, 0x1da2: 0x24f1, 0x1da3: 0x24f9,\n\t0x1da4: 0x2501, 0x1da5: 0x02d1, 0x1da6: 0x2509, 0x1da7: 0x2559, 0x1da8: 0x2531, 0x1da9: 0x2561,\n\t0x1daa: 0x2569, 0x1dab: 0x2571, 0x1dac: 0x2579, 0x1dad: 0x2581, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0040, 0x1db1: 0x0040, 0x1db2: 0x0040, 0x1db3: 0x0040, 0x1db4: 0x0040, 0x1db5: 0x0040,\n\t0x1db6: 0x0040, 0x1db7: 0x0040, 0x1db8: 0x0040, 0x1db9: 0x0040, 0x1dba: 0x0040, 0x1dbb: 0x0040,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xe115, 0x1dc1: 0xe115, 0x1dc2: 0xe135, 0x1dc3: 0xe135, 0x1dc4: 0xe115, 0x1dc5: 0xe115,\n\t0x1dc6: 0xe175, 0x1dc7: 0xe175, 0x1dc8: 0xe115, 0x1dc9: 0xe115, 0x1dca: 0xe135, 0x1dcb: 0xe135,\n\t0x1dcc: 0xe115, 0x1dcd: 0xe115, 0x1dce: 0xe1f5, 0x1dcf: 0xe1f5, 0x1dd0: 0xe115, 0x1dd1: 0xe115,\n\t0x1dd2: 0xe135, 0x1dd3: 0xe135, 0x1dd4: 0xe115, 0x1dd5: 0xe115, 0x1dd6: 0xe175, 0x1dd7: 0xe175,\n\t0x1dd8: 0xe115, 0x1dd9: 0xe115, 0x1dda: 0xe135, 0x1ddb: 0xe135, 0x1ddc: 0xe115, 0x1ddd: 0xe115,\n\t0x1dde: 0x8ca5, 0x1ddf: 0x8ca5, 0x1de0: 0x04b5, 0x1de1: 0x04b5, 0x1de2: 0x0a08, 0x1de3: 0x0a08,\n\t0x1de4: 0x0a08, 0x1de5: 0x0a08, 0x1de6: 0x0a08, 0x1de7: 0x0a08, 0x1de8: 0x0a08, 0x1de9: 0x0a08,\n\t0x1dea: 0x0a08, 0x1deb: 0x0a08, 0x1dec: 0x0a08, 0x1ded: 0x0a08, 0x1dee: 0x0a08, 0x1def: 0x0a08,\n\t0x1df0: 0x0a08, 0x1df1: 0x0a08, 0x1df2: 0x0a08, 0x1df3: 0x0a08, 0x1df4: 0x0a08, 0x1df5: 0x0a08,\n\t0x1df6: 0x0a08, 0x1df7: 0x0a08, 0x1df8: 0x0a08, 0x1df9: 0x0a08, 0x1dfa: 0x0a08, 0x1dfb: 0x0a08,\n\t0x1dfc: 0x0a08, 0x1dfd: 0x0a08, 0x1dfe: 0x0a08, 0x1dff: 0x0a08,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0x20b1, 0x1e01: 0x20b9, 0x1e02: 0x20d9, 0x1e03: 0x20f1, 0x1e04: 0x0040, 0x1e05: 0x2189,\n\t0x1e06: 0x2109, 0x1e07: 0x20e1, 0x1e08: 0x2131, 0x1e09: 0x2191, 0x1e0a: 0x2161, 0x1e0b: 0x2169,\n\t0x1e0c: 0x2171, 0x1e0d: 0x2179, 0x1e0e: 0x2111, 0x1e0f: 0x2141, 0x1e10: 0x2151, 0x1e11: 0x2121,\n\t0x1e12: 0x2159, 0x1e13: 0x2101, 0x1e14: 0x2119, 0x1e15: 0x20c9, 0x1e16: 0x20d1, 0x1e17: 0x20e9,\n\t0x1e18: 0x20f9, 0x1e19: 0x2129, 0x1e1a: 0x2139, 0x1e1b: 0x2149, 0x1e1c: 0x2589, 0x1e1d: 0x1689,\n\t0x1e1e: 0x2591, 0x1e1f: 0x2599, 0x1e20: 0x0040, 0x1e21: 0x20b9, 0x1e22: 0x20d9, 0x1e23: 0x0040,\n\t0x1e24: 0x2181, 0x1e25: 0x0040, 0x1e26: 0x0040, 0x1e27: 0x20e1, 0x1e28: 0x0040, 0x1e29: 0x2191,\n\t0x1e2a: 0x2161, 0x1e2b: 0x2169, 0x1e2c: 0x2171, 0x1e2d: 0x2179, 0x1e2e: 0x2111, 0x1e2f: 0x2141,\n\t0x1e30: 0x2151, 0x1e31: 0x2121, 0x1e32: 0x2159, 0x1e33: 0x0040, 0x1e34: 0x2119, 0x1e35: 0x20c9,\n\t0x1e36: 0x20d1, 0x1e37: 0x20e9, 0x1e38: 0x0040, 0x1e39: 0x2129, 0x1e3a: 0x0040, 0x1e3b: 0x2149,\n\t0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x0040, 0x1e41: 0x0040, 0x1e42: 0x20d9, 0x1e43: 0x0040, 0x1e44: 0x0040, 0x1e45: 0x0040,\n\t0x1e46: 0x0040, 0x1e47: 0x20e1, 0x1e48: 0x0040, 0x1e49: 0x2191, 0x1e4a: 0x0040, 0x1e4b: 0x2169,\n\t0x1e4c: 0x0040, 0x1e4d: 0x2179, 0x1e4e: 0x2111, 0x1e4f: 0x2141, 0x1e50: 0x0040, 0x1e51: 0x2121,\n\t0x1e52: 0x2159, 0x1e53: 0x0040, 0x1e54: 0x2119, 0x1e55: 0x0040, 0x1e56: 0x0040, 0x1e57: 0x20e9,\n\t0x1e58: 0x0040, 0x1e59: 0x2129, 0x1e5a: 0x0040, 0x1e5b: 0x2149, 0x1e5c: 0x0040, 0x1e5d: 0x1689,\n\t0x1e5e: 0x0040, 0x1e5f: 0x2599, 0x1e60: 0x0040, 0x1e61: 0x20b9, 0x1e62: 0x20d9, 0x1e63: 0x0040,\n\t0x1e64: 0x2181, 0x1e65: 0x0040, 0x1e66: 0x0040, 0x1e67: 0x20e1, 0x1e68: 0x2131, 0x1e69: 0x2191,\n\t0x1e6a: 0x2161, 0x1e6b: 0x0040, 0x1e6c: 0x2171, 0x1e6d: 0x2179, 0x1e6e: 0x2111, 0x1e6f: 0x2141,\n\t0x1e70: 0x2151, 0x1e71: 0x2121, 0x1e72: 0x2159, 0x1e73: 0x0040, 0x1e74: 0x2119, 0x1e75: 0x20c9,\n\t0x1e76: 0x20d1, 0x1e77: 0x20e9, 0x1e78: 0x0040, 0x1e79: 0x2129, 0x1e7a: 0x2139, 0x1e7b: 0x2149,\n\t0x1e7c: 0x2589, 0x1e7d: 0x0040, 0x1e7e: 0x2591, 0x1e7f: 0x0040,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x20b1, 0x1e81: 0x20b9, 0x1e82: 0x20d9, 0x1e83: 0x20f1, 0x1e84: 0x2181, 0x1e85: 0x2189,\n\t0x1e86: 0x2109, 0x1e87: 0x20e1, 0x1e88: 0x2131, 0x1e89: 0x2191, 0x1e8a: 0x0040, 0x1e8b: 0x2169,\n\t0x1e8c: 0x2171, 0x1e8d: 0x2179, 0x1e8e: 0x2111, 0x1e8f: 0x2141, 0x1e90: 0x2151, 0x1e91: 0x2121,\n\t0x1e92: 0x2159, 0x1e93: 0x2101, 0x1e94: 0x2119, 0x1e95: 0x20c9, 0x1e96: 0x20d1, 0x1e97: 0x20e9,\n\t0x1e98: 0x20f9, 0x1e99: 0x2129, 0x1e9a: 0x2139, 0x1e9b: 0x2149, 0x1e9c: 0x0040, 0x1e9d: 0x0040,\n\t0x1e9e: 0x0040, 0x1e9f: 0x0040, 0x1ea0: 0x0040, 0x1ea1: 0x20b9, 0x1ea2: 0x20d9, 0x1ea3: 0x20f1,\n\t0x1ea4: 0x0040, 0x1ea5: 0x2189, 0x1ea6: 0x2109, 0x1ea7: 0x20e1, 0x1ea8: 0x2131, 0x1ea9: 0x2191,\n\t0x1eaa: 0x0040, 0x1eab: 0x2169, 0x1eac: 0x2171, 0x1ead: 0x2179, 0x1eae: 0x2111, 0x1eaf: 0x2141,\n\t0x1eb0: 0x2151, 0x1eb1: 0x2121, 0x1eb2: 0x2159, 0x1eb3: 0x2101, 0x1eb4: 0x2119, 0x1eb5: 0x20c9,\n\t0x1eb6: 0x20d1, 0x1eb7: 0x20e9, 0x1eb8: 0x20f9, 0x1eb9: 0x2129, 0x1eba: 0x2139, 0x1ebb: 0x2149,\n\t0x1ebc: 0x0040, 0x1ebd: 0x0040, 0x1ebe: 0x0040, 0x1ebf: 0x0040,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x0040, 0x1ec1: 0x25a2, 0x1ec2: 0x25aa, 0x1ec3: 0x25b2, 0x1ec4: 0x25ba, 0x1ec5: 0x25c2,\n\t0x1ec6: 0x25ca, 0x1ec7: 0x25d2, 0x1ec8: 0x25da, 0x1ec9: 0x25e2, 0x1eca: 0x25ea, 0x1ecb: 0x0018,\n\t0x1ecc: 0x0018, 0x1ecd: 0x0018, 0x1ece: 0x0018, 0x1ecf: 0x0018, 0x1ed0: 0x25f2, 0x1ed1: 0x25fa,\n\t0x1ed2: 0x2602, 0x1ed3: 0x260a, 0x1ed4: 0x2612, 0x1ed5: 0x261a, 0x1ed6: 0x2622, 0x1ed7: 0x262a,\n\t0x1ed8: 0x2632, 0x1ed9: 0x263a, 0x1eda: 0x2642, 0x1edb: 0x264a, 0x1edc: 0x2652, 0x1edd: 0x265a,\n\t0x1ede: 0x2662, 0x1edf: 0x266a, 0x1ee0: 0x2672, 0x1ee1: 0x267a, 0x1ee2: 0x2682, 0x1ee3: 0x268a,\n\t0x1ee4: 0x2692, 0x1ee5: 0x269a, 0x1ee6: 0x26a2, 0x1ee7: 0x26aa, 0x1ee8: 0x26b2, 0x1ee9: 0x26ba,\n\t0x1eea: 0x26c1, 0x1eeb: 0x03d9, 0x1eec: 0x00b9, 0x1eed: 0x1239, 0x1eee: 0x26c9, 0x1eef: 0x0018,\n\t0x1ef0: 0x0019, 0x1ef1: 0x02e9, 0x1ef2: 0x03d9, 0x1ef3: 0x02f1, 0x1ef4: 0x02f9, 0x1ef5: 0x03f1,\n\t0x1ef6: 0x0309, 0x1ef7: 0x00a9, 0x1ef8: 0x0311, 0x1ef9: 0x00b1, 0x1efa: 0x0319, 0x1efb: 0x0101,\n\t0x1efc: 0x0321, 0x1efd: 0x0329, 0x1efe: 0x0051, 0x1eff: 0x0339,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0x0751, 0x1f01: 0x00b9, 0x1f02: 0x0089, 0x1f03: 0x0341, 0x1f04: 0x0349, 0x1f05: 0x0391,\n\t0x1f06: 0x00c1, 0x1f07: 0x0109, 0x1f08: 0x00c9, 0x1f09: 0x04b1, 0x1f0a: 0x26d1, 0x1f0b: 0x11f9,\n\t0x1f0c: 0x26d9, 0x1f0d: 0x04d9, 0x1f0e: 0x26e1, 0x1f0f: 0x26e9, 0x1f10: 0x0018, 0x1f11: 0x0018,\n\t0x1f12: 0x0018, 0x1f13: 0x0018, 0x1f14: 0x0018, 0x1f15: 0x0018, 0x1f16: 0x0018, 0x1f17: 0x0018,\n\t0x1f18: 0x0018, 0x1f19: 0x0018, 0x1f1a: 0x0018, 0x1f1b: 0x0018, 0x1f1c: 0x0018, 0x1f1d: 0x0018,\n\t0x1f1e: 0x0018, 0x1f1f: 0x0018, 0x1f20: 0x0018, 0x1f21: 0x0018, 0x1f22: 0x0018, 0x1f23: 0x0018,\n\t0x1f24: 0x0018, 0x1f25: 0x0018, 0x1f26: 0x0018, 0x1f27: 0x0018, 0x1f28: 0x0018, 0x1f29: 0x0018,\n\t0x1f2a: 0x26f1, 0x1f2b: 0x26f9, 0x1f2c: 0x2701, 0x1f2d: 0x0018, 0x1f2e: 0x0018, 0x1f2f: 0x0018,\n\t0x1f30: 0x0018, 0x1f31: 0x0018, 0x1f32: 0x0018, 0x1f33: 0x0018, 0x1f34: 0x0018, 0x1f35: 0x0018,\n\t0x1f36: 0x0018, 0x1f37: 0x0018, 0x1f38: 0x0018, 0x1f39: 0x0018, 0x1f3a: 0x0018, 0x1f3b: 0x0018,\n\t0x1f3c: 0x0018, 0x1f3d: 0x0018, 0x1f3e: 0x0018, 0x1f3f: 0x0018,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0x2711, 0x1f41: 0x2719, 0x1f42: 0x2721, 0x1f43: 0x0040, 0x1f44: 0x0040, 0x1f45: 0x0040,\n\t0x1f46: 0x0040, 0x1f47: 0x0040, 0x1f48: 0x0040, 0x1f49: 0x0040, 0x1f4a: 0x0040, 0x1f4b: 0x0040,\n\t0x1f4c: 0x0040, 0x1f4d: 0x0040, 0x1f4e: 0x0040, 0x1f4f: 0x0040, 0x1f50: 0x2729, 0x1f51: 0x2731,\n\t0x1f52: 0x2739, 0x1f53: 0x2741, 0x1f54: 0x2749, 0x1f55: 0x2751, 0x1f56: 0x2759, 0x1f57: 0x2761,\n\t0x1f58: 0x2769, 0x1f59: 0x2771, 0x1f5a: 0x2779, 0x1f5b: 0x2781, 0x1f5c: 0x2789, 0x1f5d: 0x2791,\n\t0x1f5e: 0x2799, 0x1f5f: 0x27a1, 0x1f60: 0x27a9, 0x1f61: 0x27b1, 0x1f62: 0x27b9, 0x1f63: 0x27c1,\n\t0x1f64: 0x27c9, 0x1f65: 0x27d1, 0x1f66: 0x27d9, 0x1f67: 0x27e1, 0x1f68: 0x27e9, 0x1f69: 0x27f1,\n\t0x1f6a: 0x27f9, 0x1f6b: 0x2801, 0x1f6c: 0x2809, 0x1f6d: 0x2811, 0x1f6e: 0x2819, 0x1f6f: 0x2821,\n\t0x1f70: 0x2829, 0x1f71: 0x2831, 0x1f72: 0x2839, 0x1f73: 0x2841, 0x1f74: 0x2849, 0x1f75: 0x2851,\n\t0x1f76: 0x2859, 0x1f77: 0x2861, 0x1f78: 0x2869, 0x1f79: 0x2871, 0x1f7a: 0x2879, 0x1f7b: 0x2881,\n\t0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x28e1, 0x1f81: 0x28e9, 0x1f82: 0x28f1, 0x1f83: 0x8cbd, 0x1f84: 0x28f9, 0x1f85: 0x2901,\n\t0x1f86: 0x2909, 0x1f87: 0x2911, 0x1f88: 0x2919, 0x1f89: 0x2921, 0x1f8a: 0x2929, 0x1f8b: 0x2931,\n\t0x1f8c: 0x2939, 0x1f8d: 0x8cdd, 0x1f8e: 0x2941, 0x1f8f: 0x2949, 0x1f90: 0x2951, 0x1f91: 0x2959,\n\t0x1f92: 0x8cfd, 0x1f93: 0x2961, 0x1f94: 0x2969, 0x1f95: 0x2799, 0x1f96: 0x8d1d, 0x1f97: 0x2971,\n\t0x1f98: 0x2979, 0x1f99: 0x2981, 0x1f9a: 0x2989, 0x1f9b: 0x2991, 0x1f9c: 0x8d3d, 0x1f9d: 0x2999,\n\t0x1f9e: 0x29a1, 0x1f9f: 0x29a9, 0x1fa0: 0x29b1, 0x1fa1: 0x29b9, 0x1fa2: 0x2871, 0x1fa3: 0x29c1,\n\t0x1fa4: 0x29c9, 0x1fa5: 0x29d1, 0x1fa6: 0x29d9, 0x1fa7: 0x29e1, 0x1fa8: 0x29e9, 0x1fa9: 0x29f1,\n\t0x1faa: 0x29f9, 0x1fab: 0x2a01, 0x1fac: 0x2a09, 0x1fad: 0x2a11, 0x1fae: 0x2a19, 0x1faf: 0x2a21,\n\t0x1fb0: 0x2a29, 0x1fb1: 0x2a31, 0x1fb2: 0x2a31, 0x1fb3: 0x2a31, 0x1fb4: 0x8d5d, 0x1fb5: 0x2a39,\n\t0x1fb6: 0x2a41, 0x1fb7: 0x2a49, 0x1fb8: 0x8d7d, 0x1fb9: 0x2a51, 0x1fba: 0x2a59, 0x1fbb: 0x2a61,\n\t0x1fbc: 0x2a69, 0x1fbd: 0x2a71, 0x1fbe: 0x2a79, 0x1fbf: 0x2a81,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x2a89, 0x1fc1: 0x2a91, 0x1fc2: 0x2a99, 0x1fc3: 0x2aa1, 0x1fc4: 0x2aa9, 0x1fc5: 0x2ab1,\n\t0x1fc6: 0x2ab1, 0x1fc7: 0x2ab9, 0x1fc8: 0x2ac1, 0x1fc9: 0x2ac9, 0x1fca: 0x2ad1, 0x1fcb: 0x2ad9,\n\t0x1fcc: 0x2ae1, 0x1fcd: 0x2ae9, 0x1fce: 0x2af1, 0x1fcf: 0x2af9, 0x1fd0: 0x2b01, 0x1fd1: 0x2b09,\n\t0x1fd2: 0x2b11, 0x1fd3: 0x2b19, 0x1fd4: 0x2b21, 0x1fd5: 0x2b29, 0x1fd6: 0x2b31, 0x1fd7: 0x2b39,\n\t0x1fd8: 0x2b41, 0x1fd9: 0x8d9d, 0x1fda: 0x2b49, 0x1fdb: 0x2b51, 0x1fdc: 0x2b59, 0x1fdd: 0x2751,\n\t0x1fde: 0x2b61, 0x1fdf: 0x2b69, 0x1fe0: 0x8dbd, 0x1fe1: 0x8ddd, 0x1fe2: 0x2b71, 0x1fe3: 0x2b79,\n\t0x1fe4: 0x2b81, 0x1fe5: 0x2b89, 0x1fe6: 0x2b91, 0x1fe7: 0x2b99, 0x1fe8: 0x2040, 0x1fe9: 0x2ba1,\n\t0x1fea: 0x2ba9, 0x1feb: 0x2ba9, 0x1fec: 0x8dfd, 0x1fed: 0x2bb1, 0x1fee: 0x2bb9, 0x1fef: 0x2bc1,\n\t0x1ff0: 0x2bc9, 0x1ff1: 0x8e1d, 0x1ff2: 0x2bd1, 0x1ff3: 0x2bd9, 0x1ff4: 0x2040, 0x1ff5: 0x2be1,\n\t0x1ff6: 0x2be9, 0x1ff7: 0x2bf1, 0x1ff8: 0x2bf9, 0x1ff9: 0x2c01, 0x1ffa: 0x2c09, 0x1ffb: 0x8e3d,\n\t0x1ffc: 0x2c11, 0x1ffd: 0x8e5d, 0x1ffe: 0x2c19, 0x1fff: 0x2c21,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x2c29, 0x2001: 0x2c31, 0x2002: 0x2c39, 0x2003: 0x2c41, 0x2004: 0x2c49, 0x2005: 0x2c51,\n\t0x2006: 0x2c59, 0x2007: 0x2c61, 0x2008: 0x2c69, 0x2009: 0x8e7d, 0x200a: 0x2c71, 0x200b: 0x2c79,\n\t0x200c: 0x2c81, 0x200d: 0x2c89, 0x200e: 0x2c91, 0x200f: 0x8e9d, 0x2010: 0x2c99, 0x2011: 0x8ebd,\n\t0x2012: 0x8edd, 0x2013: 0x2ca1, 0x2014: 0x2ca9, 0x2015: 0x2ca9, 0x2016: 0x2cb1, 0x2017: 0x8efd,\n\t0x2018: 0x8f1d, 0x2019: 0x2cb9, 0x201a: 0x2cc1, 0x201b: 0x2cc9, 0x201c: 0x2cd1, 0x201d: 0x2cd9,\n\t0x201e: 0x2ce1, 0x201f: 0x2ce9, 0x2020: 0x2cf1, 0x2021: 0x2cf9, 0x2022: 0x2d01, 0x2023: 0x2d09,\n\t0x2024: 0x8f3d, 0x2025: 0x2d11, 0x2026: 0x2d19, 0x2027: 0x2d21, 0x2028: 0x2d29, 0x2029: 0x2d21,\n\t0x202a: 0x2d31, 0x202b: 0x2d39, 0x202c: 0x2d41, 0x202d: 0x2d49, 0x202e: 0x2d51, 0x202f: 0x2d59,\n\t0x2030: 0x2d61, 0x2031: 0x2d69, 0x2032: 0x2d71, 0x2033: 0x2d79, 0x2034: 0x2d81, 0x2035: 0x2d89,\n\t0x2036: 0x2d91, 0x2037: 0x2d99, 0x2038: 0x8f5d, 0x2039: 0x2da1, 0x203a: 0x2da9, 0x203b: 0x2db1,\n\t0x203c: 0x2db9, 0x203d: 0x2dc1, 0x203e: 0x8f7d, 0x203f: 0x2dc9,\n\t// Block 0x81, offset 0x2040\n\t0x2040: 0x2dd1, 0x2041: 0x2dd9, 0x2042: 0x2de1, 0x2043: 0x2de9, 0x2044: 0x2df1, 0x2045: 0x2df9,\n\t0x2046: 0x2e01, 0x2047: 0x2e09, 0x2048: 0x2e11, 0x2049: 0x2e19, 0x204a: 0x8f9d, 0x204b: 0x2e21,\n\t0x204c: 0x2e29, 0x204d: 0x2e31, 0x204e: 0x2e39, 0x204f: 0x2e41, 0x2050: 0x2e49, 0x2051: 0x2e51,\n\t0x2052: 0x2e59, 0x2053: 0x2e61, 0x2054: 0x2e69, 0x2055: 0x2e71, 0x2056: 0x2e79, 0x2057: 0x2e81,\n\t0x2058: 0x2e89, 0x2059: 0x2e91, 0x205a: 0x2e99, 0x205b: 0x2ea1, 0x205c: 0x2ea9, 0x205d: 0x8fbd,\n\t0x205e: 0x2eb1, 0x205f: 0x2eb9, 0x2060: 0x2ec1, 0x2061: 0x2ec9, 0x2062: 0x2ed1, 0x2063: 0x8fdd,\n\t0x2064: 0x2ed9, 0x2065: 0x2ee1, 0x2066: 0x2ee9, 0x2067: 0x2ef1, 0x2068: 0x2ef9, 0x2069: 0x2f01,\n\t0x206a: 0x2f09, 0x206b: 0x2f11, 0x206c: 0x7f0d, 0x206d: 0x2f19, 0x206e: 0x2f21, 0x206f: 0x2f29,\n\t0x2070: 0x8ffd, 0x2071: 0x2f31, 0x2072: 0x2f39, 0x2073: 0x2f41, 0x2074: 0x2f49, 0x2075: 0x2f51,\n\t0x2076: 0x2f59, 0x2077: 0x901d, 0x2078: 0x903d, 0x2079: 0x905d, 0x207a: 0x2f61, 0x207b: 0x907d,\n\t0x207c: 0x2f69, 0x207d: 0x2f71, 0x207e: 0x2f79, 0x207f: 0x2f81,\n\t// Block 0x82, offset 0x2080\n\t0x2080: 0x2f89, 0x2081: 0x2f91, 0x2082: 0x2f99, 0x2083: 0x2fa1, 0x2084: 0x2fa9, 0x2085: 0x2fb1,\n\t0x2086: 0x909d, 0x2087: 0x2fb9, 0x2088: 0x2fc1, 0x2089: 0x2fc9, 0x208a: 0x2fd1, 0x208b: 0x2fd9,\n\t0x208c: 0x2fe1, 0x208d: 0x90bd, 0x208e: 0x2fe9, 0x208f: 0x2ff1, 0x2090: 0x90dd, 0x2091: 0x90fd,\n\t0x2092: 0x2ff9, 0x2093: 0x3001, 0x2094: 0x3009, 0x2095: 0x3011, 0x2096: 0x3019, 0x2097: 0x3021,\n\t0x2098: 0x3029, 0x2099: 0x3031, 0x209a: 0x3039, 0x209b: 0x911d, 0x209c: 0x3041, 0x209d: 0x913d,\n\t0x209e: 0x3049, 0x209f: 0x2040, 0x20a0: 0x3051, 0x20a1: 0x3059, 0x20a2: 0x3061, 0x20a3: 0x915d,\n\t0x20a4: 0x3069, 0x20a5: 0x3071, 0x20a6: 0x917d, 0x20a7: 0x919d, 0x20a8: 0x3079, 0x20a9: 0x3081,\n\t0x20aa: 0x3089, 0x20ab: 0x3091, 0x20ac: 0x3099, 0x20ad: 0x3099, 0x20ae: 0x30a1, 0x20af: 0x30a9,\n\t0x20b0: 0x30b1, 0x20b1: 0x30b9, 0x20b2: 0x30c1, 0x20b3: 0x30c9, 0x20b4: 0x30d1, 0x20b5: 0x91bd,\n\t0x20b6: 0x30d9, 0x20b7: 0x91dd, 0x20b8: 0x30e1, 0x20b9: 0x91fd, 0x20ba: 0x30e9, 0x20bb: 0x921d,\n\t0x20bc: 0x923d, 0x20bd: 0x925d, 0x20be: 0x30f1, 0x20bf: 0x30f9,\n\t// Block 0x83, offset 0x20c0\n\t0x20c0: 0x3101, 0x20c1: 0x927d, 0x20c2: 0x929d, 0x20c3: 0x92bd, 0x20c4: 0x92dd, 0x20c5: 0x3109,\n\t0x20c6: 0x3111, 0x20c7: 0x3111, 0x20c8: 0x3119, 0x20c9: 0x3121, 0x20ca: 0x3129, 0x20cb: 0x3131,\n\t0x20cc: 0x3139, 0x20cd: 0x92fd, 0x20ce: 0x3141, 0x20cf: 0x3149, 0x20d0: 0x3151, 0x20d1: 0x3159,\n\t0x20d2: 0x931d, 0x20d3: 0x3161, 0x20d4: 0x933d, 0x20d5: 0x935d, 0x20d6: 0x3169, 0x20d7: 0x3171,\n\t0x20d8: 0x3179, 0x20d9: 0x3181, 0x20da: 0x3189, 0x20db: 0x3191, 0x20dc: 0x937d, 0x20dd: 0x939d,\n\t0x20de: 0x93bd, 0x20df: 0x2040, 0x20e0: 0x3199, 0x20e1: 0x93dd, 0x20e2: 0x31a1, 0x20e3: 0x31a9,\n\t0x20e4: 0x31b1, 0x20e5: 0x93fd, 0x20e6: 0x31b9, 0x20e7: 0x31c1, 0x20e8: 0x31c9, 0x20e9: 0x31d1,\n\t0x20ea: 0x31d9, 0x20eb: 0x941d, 0x20ec: 0x31e1, 0x20ed: 0x31e9, 0x20ee: 0x31f1, 0x20ef: 0x31f9,\n\t0x20f0: 0x3201, 0x20f1: 0x3209, 0x20f2: 0x943d, 0x20f3: 0x945d, 0x20f4: 0x3211, 0x20f5: 0x947d,\n\t0x20f6: 0x3219, 0x20f7: 0x949d, 0x20f8: 0x3221, 0x20f9: 0x3229, 0x20fa: 0x3231, 0x20fb: 0x94bd,\n\t0x20fc: 0x94dd, 0x20fd: 0x3239, 0x20fe: 0x94fd, 0x20ff: 0x3241,\n\t// Block 0x84, offset 0x2100\n\t0x2100: 0x951d, 0x2101: 0x3249, 0x2102: 0x3251, 0x2103: 0x3259, 0x2104: 0x3261, 0x2105: 0x3269,\n\t0x2106: 0x3271, 0x2107: 0x953d, 0x2108: 0x955d, 0x2109: 0x957d, 0x210a: 0x959d, 0x210b: 0x2ca1,\n\t0x210c: 0x3279, 0x210d: 0x3281, 0x210e: 0x3289, 0x210f: 0x3291, 0x2110: 0x3299, 0x2111: 0x32a1,\n\t0x2112: 0x32a9, 0x2113: 0x32b1, 0x2114: 0x32b9, 0x2115: 0x32c1, 0x2116: 0x32c9, 0x2117: 0x95bd,\n\t0x2118: 0x32d1, 0x2119: 0x32d9, 0x211a: 0x32e1, 0x211b: 0x32e9, 0x211c: 0x32f1, 0x211d: 0x32f9,\n\t0x211e: 0x3301, 0x211f: 0x3309, 0x2120: 0x3311, 0x2121: 0x3319, 0x2122: 0x3321, 0x2123: 0x3329,\n\t0x2124: 0x95dd, 0x2125: 0x95fd, 0x2126: 0x961d, 0x2127: 0x3331, 0x2128: 0x3339, 0x2129: 0x3341,\n\t0x212a: 0x3349, 0x212b: 0x963d, 0x212c: 0x3351, 0x212d: 0x965d, 0x212e: 0x3359, 0x212f: 0x3361,\n\t0x2130: 0x967d, 0x2131: 0x969d, 0x2132: 0x3369, 0x2133: 0x3371, 0x2134: 0x3379, 0x2135: 0x3381,\n\t0x2136: 0x3389, 0x2137: 0x3391, 0x2138: 0x3399, 0x2139: 0x33a1, 0x213a: 0x33a9, 0x213b: 0x33b1,\n\t0x213c: 0x33b9, 0x213d: 0x33c1, 0x213e: 0x33c9, 0x213f: 0x2040,\n\t// Block 0x85, offset 0x2140\n\t0x2140: 0x33d1, 0x2141: 0x33d9, 0x2142: 0x33e1, 0x2143: 0x33e9, 0x2144: 0x33f1, 0x2145: 0x96bd,\n\t0x2146: 0x33f9, 0x2147: 0x3401, 0x2148: 0x3409, 0x2149: 0x3411, 0x214a: 0x3419, 0x214b: 0x96dd,\n\t0x214c: 0x96fd, 0x214d: 0x3421, 0x214e: 0x3429, 0x214f: 0x3431, 0x2150: 0x3439, 0x2151: 0x3441,\n\t0x2152: 0x3449, 0x2153: 0x971d, 0x2154: 0x3451, 0x2155: 0x3459, 0x2156: 0x3461, 0x2157: 0x3469,\n\t0x2158: 0x973d, 0x2159: 0x975d, 0x215a: 0x3471, 0x215b: 0x3479, 0x215c: 0x3481, 0x215d: 0x977d,\n\t0x215e: 0x3489, 0x215f: 0x3491, 0x2160: 0x684d, 0x2161: 0x979d, 0x2162: 0x3499, 0x2163: 0x34a1,\n\t0x2164: 0x34a9, 0x2165: 0x97bd, 0x2166: 0x34b1, 0x2167: 0x34b9, 0x2168: 0x34c1, 0x2169: 0x34c9,\n\t0x216a: 0x34d1, 0x216b: 0x34d9, 0x216c: 0x34e1, 0x216d: 0x97dd, 0x216e: 0x34e9, 0x216f: 0x34f1,\n\t0x2170: 0x34f9, 0x2171: 0x97fd, 0x2172: 0x3501, 0x2173: 0x3509, 0x2174: 0x3511, 0x2175: 0x3519,\n\t0x2176: 0x7b6d, 0x2177: 0x981d, 0x2178: 0x3521, 0x2179: 0x3529, 0x217a: 0x3531, 0x217b: 0x983d,\n\t0x217c: 0x3539, 0x217d: 0x985d, 0x217e: 0x3541, 0x217f: 0x3541,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x3549, 0x2181: 0x987d, 0x2182: 0x3551, 0x2183: 0x3559, 0x2184: 0x3561, 0x2185: 0x3569,\n\t0x2186: 0x3571, 0x2187: 0x3579, 0x2188: 0x3581, 0x2189: 0x989d, 0x218a: 0x3589, 0x218b: 0x3591,\n\t0x218c: 0x3599, 0x218d: 0x35a1, 0x218e: 0x35a9, 0x218f: 0x35b1, 0x2190: 0x98bd, 0x2191: 0x35b9,\n\t0x2192: 0x98dd, 0x2193: 0x98fd, 0x2194: 0x991d, 0x2195: 0x35c1, 0x2196: 0x35c9, 0x2197: 0x35d1,\n\t0x2198: 0x35d9, 0x2199: 0x35e1, 0x219a: 0x35e9, 0x219b: 0x35f1, 0x219c: 0x35f9, 0x219d: 0x993d,\n\t0x219e: 0x0040, 0x219f: 0x0040, 0x21a0: 0x0040, 0x21a1: 0x0040, 0x21a2: 0x0040, 0x21a3: 0x0040,\n\t0x21a4: 0x0040, 0x21a5: 0x0040, 0x21a6: 0x0040, 0x21a7: 0x0040, 0x21a8: 0x0040, 0x21a9: 0x0040,\n\t0x21aa: 0x0040, 0x21ab: 0x0040, 0x21ac: 0x0040, 0x21ad: 0x0040, 0x21ae: 0x0040, 0x21af: 0x0040,\n\t0x21b0: 0x0040, 0x21b1: 0x0040, 0x21b2: 0x0040, 0x21b3: 0x0040, 0x21b4: 0x0040, 0x21b5: 0x0040,\n\t0x21b6: 0x0040, 0x21b7: 0x0040, 0x21b8: 0x0040, 0x21b9: 0x0040, 0x21ba: 0x0040, 0x21bb: 0x0040,\n\t0x21bc: 0x0040, 0x21bd: 0x0040, 0x21be: 0x0040, 0x21bf: 0x0040,\n}\n\n// idnaIndex: 39 blocks, 2496 entries, 4992 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2496]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x85, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x86, 0xca: 0x87, 0xcb: 0x07, 0xcc: 0x88, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x89, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x8a, 0xd6: 0x8b, 0xd7: 0x8c,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x8d, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x8e, 0xde: 0x8f, 0xdf: 0x90,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x07, 0xea: 0x08, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x09, 0xee: 0x0a, 0xef: 0x0b,\n\t0xf0: 0x20, 0xf1: 0x21, 0xf2: 0x21, 0xf3: 0x23, 0xf4: 0x24,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x91, 0x121: 0x13, 0x122: 0x14, 0x123: 0x92, 0x124: 0x93, 0x125: 0x15, 0x126: 0x16, 0x127: 0x17,\n\t0x128: 0x18, 0x129: 0x19, 0x12a: 0x1a, 0x12b: 0x1b, 0x12c: 0x1c, 0x12d: 0x1d, 0x12e: 0x1e, 0x12f: 0x94,\n\t0x130: 0x95, 0x131: 0x1f, 0x132: 0x20, 0x133: 0x21, 0x134: 0x96, 0x135: 0x22, 0x136: 0x97, 0x137: 0x98,\n\t0x138: 0x99, 0x139: 0x9a, 0x13a: 0x23, 0x13b: 0x9b, 0x13c: 0x9c, 0x13d: 0x24, 0x13e: 0x25, 0x13f: 0x9d,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x9e, 0x141: 0x9f, 0x142: 0xa0, 0x143: 0xa1, 0x144: 0xa2, 0x145: 0xa3, 0x146: 0xa4, 0x147: 0xa5,\n\t0x148: 0xa6, 0x149: 0xa7, 0x14a: 0xa8, 0x14b: 0xa9, 0x14c: 0xaa, 0x14d: 0xab, 0x14e: 0xac, 0x14f: 0xad,\n\t0x150: 0xae, 0x151: 0xa6, 0x152: 0xa6, 0x153: 0xa6, 0x154: 0xa6, 0x155: 0xa6, 0x156: 0xa6, 0x157: 0xa6,\n\t0x158: 0xa6, 0x159: 0xaf, 0x15a: 0xb0, 0x15b: 0xb1, 0x15c: 0xb2, 0x15d: 0xb3, 0x15e: 0xb4, 0x15f: 0xb5,\n\t0x160: 0xb6, 0x161: 0xb7, 0x162: 0xb8, 0x163: 0xb9, 0x164: 0xba, 0x165: 0xbb, 0x166: 0xbc, 0x167: 0xbd,\n\t0x168: 0xbe, 0x169: 0xbf, 0x16a: 0xc0, 0x16b: 0xc1, 0x16c: 0xc2, 0x16d: 0xc3, 0x16e: 0xc4, 0x16f: 0xc5,\n\t0x170: 0xc6, 0x171: 0xc7, 0x172: 0xc8, 0x173: 0xc9, 0x174: 0x26, 0x175: 0x27, 0x176: 0x28, 0x177: 0x88,\n\t0x178: 0x29, 0x179: 0x29, 0x17a: 0x2a, 0x17b: 0x29, 0x17c: 0xca, 0x17d: 0x2b, 0x17e: 0x2c, 0x17f: 0x2d,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2e, 0x181: 0x2f, 0x182: 0x30, 0x183: 0xcb, 0x184: 0x31, 0x185: 0x32, 0x186: 0xcc, 0x187: 0xa2,\n\t0x188: 0xcd, 0x189: 0xce, 0x18a: 0xa2, 0x18b: 0xa2, 0x18c: 0xcf, 0x18d: 0xa2, 0x18e: 0xa2, 0x18f: 0xa2,\n\t0x190: 0xd0, 0x191: 0x33, 0x192: 0x34, 0x193: 0x35, 0x194: 0xa2, 0x195: 0xa2, 0x196: 0xa2, 0x197: 0xa2,\n\t0x198: 0xa2, 0x199: 0xa2, 0x19a: 0xa2, 0x19b: 0xa2, 0x19c: 0xa2, 0x19d: 0xa2, 0x19e: 0xa2, 0x19f: 0xa2,\n\t0x1a0: 0xa2, 0x1a1: 0xa2, 0x1a2: 0xa2, 0x1a3: 0xa2, 0x1a4: 0xa2, 0x1a5: 0xa2, 0x1a6: 0xa2, 0x1a7: 0xa2,\n\t0x1a8: 0xd1, 0x1a9: 0xd2, 0x1aa: 0xa2, 0x1ab: 0xd3, 0x1ac: 0xa2, 0x1ad: 0xd4, 0x1ae: 0xd5, 0x1af: 0xa2,\n\t0x1b0: 0xd6, 0x1b1: 0x36, 0x1b2: 0x29, 0x1b3: 0x37, 0x1b4: 0xd7, 0x1b5: 0xd8, 0x1b6: 0xd9, 0x1b7: 0xda,\n\t0x1b8: 0xdb, 0x1b9: 0xdc, 0x1ba: 0xdd, 0x1bb: 0xde, 0x1bc: 0xdf, 0x1bd: 0xe0, 0x1be: 0xe1, 0x1bf: 0x38,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x39, 0x1c1: 0xe2, 0x1c2: 0xe3, 0x1c3: 0xe4, 0x1c4: 0xe5, 0x1c5: 0x3a, 0x1c6: 0x3b, 0x1c7: 0xe6,\n\t0x1c8: 0xe7, 0x1c9: 0x3c, 0x1ca: 0x3d, 0x1cb: 0x3e, 0x1cc: 0xe8, 0x1cd: 0xe9, 0x1ce: 0x3f, 0x1cf: 0x40,\n\t0x1d0: 0xa6, 0x1d1: 0xa6, 0x1d2: 0xa6, 0x1d3: 0xa6, 0x1d4: 0xa6, 0x1d5: 0xa6, 0x1d6: 0xa6, 0x1d7: 0xa6,\n\t0x1d8: 0xa6, 0x1d9: 0xa6, 0x1da: 0xa6, 0x1db: 0xa6, 0x1dc: 0xa6, 0x1dd: 0xa6, 0x1de: 0xa6, 0x1df: 0xa6,\n\t0x1e0: 0xa6, 0x1e1: 0xa6, 0x1e2: 0xa6, 0x1e3: 0xa6, 0x1e4: 0xa6, 0x1e5: 0xa6, 0x1e6: 0xa6, 0x1e7: 0xa6,\n\t0x1e8: 0xa6, 0x1e9: 0xa6, 0x1ea: 0xa6, 0x1eb: 0xa6, 0x1ec: 0xa6, 0x1ed: 0xa6, 0x1ee: 0xa6, 0x1ef: 0xa6,\n\t0x1f0: 0xa6, 0x1f1: 0xa6, 0x1f2: 0xa6, 0x1f3: 0xa6, 0x1f4: 0xa6, 0x1f5: 0xa6, 0x1f6: 0xa6, 0x1f7: 0xa6,\n\t0x1f8: 0xa6, 0x1f9: 0xa6, 0x1fa: 0xa6, 0x1fb: 0xa6, 0x1fc: 0xa6, 0x1fd: 0xa6, 0x1fe: 0xa6, 0x1ff: 0xa6,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xa6, 0x201: 0xa6, 0x202: 0xa6, 0x203: 0xa6, 0x204: 0xa6, 0x205: 0xa6, 0x206: 0xa6, 0x207: 0xa6,\n\t0x208: 0xa6, 0x209: 0xa6, 0x20a: 0xa6, 0x20b: 0xa6, 0x20c: 0xa6, 0x20d: 0xa6, 0x20e: 0xa6, 0x20f: 0xa6,\n\t0x210: 0xa6, 0x211: 0xa6, 0x212: 0xa6, 0x213: 0xa6, 0x214: 0xa6, 0x215: 0xa6, 0x216: 0xa6, 0x217: 0xa6,\n\t0x218: 0xa6, 0x219: 0xa6, 0x21a: 0xa6, 0x21b: 0xa6, 0x21c: 0xa6, 0x21d: 0xa6, 0x21e: 0xa6, 0x21f: 0xa6,\n\t0x220: 0xa6, 0x221: 0xa6, 0x222: 0xa6, 0x223: 0xa6, 0x224: 0xa6, 0x225: 0xa6, 0x226: 0xa6, 0x227: 0xa6,\n\t0x228: 0xa6, 0x229: 0xa6, 0x22a: 0xa6, 0x22b: 0xa6, 0x22c: 0xa6, 0x22d: 0xa6, 0x22e: 0xa6, 0x22f: 0xa6,\n\t0x230: 0xa6, 0x231: 0xa6, 0x232: 0xa6, 0x233: 0xa6, 0x234: 0xa6, 0x235: 0xa6, 0x236: 0xa6, 0x237: 0xa2,\n\t0x238: 0xa6, 0x239: 0xa6, 0x23a: 0xa6, 0x23b: 0xa6, 0x23c: 0xa6, 0x23d: 0xa6, 0x23e: 0xa6, 0x23f: 0xa6,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xa6, 0x241: 0xa6, 0x242: 0xa6, 0x243: 0xa6, 0x244: 0xa6, 0x245: 0xa6, 0x246: 0xa6, 0x247: 0xa6,\n\t0x248: 0xa6, 0x249: 0xa6, 0x24a: 0xa6, 0x24b: 0xa6, 0x24c: 0xa6, 0x24d: 0xa6, 0x24e: 0xa6, 0x24f: 0xa6,\n\t0x250: 0xa6, 0x251: 0xa6, 0x252: 0xa6, 0x253: 0xa6, 0x254: 0xa6, 0x255: 0xa6, 0x256: 0xa6, 0x257: 0xa6,\n\t0x258: 0xa6, 0x259: 0xa6, 0x25a: 0xa6, 0x25b: 0xa6, 0x25c: 0xa6, 0x25d: 0xa6, 0x25e: 0xa6, 0x25f: 0xa6,\n\t0x260: 0xa6, 0x261: 0xa6, 0x262: 0xa6, 0x263: 0xa6, 0x264: 0xa6, 0x265: 0xa6, 0x266: 0xa6, 0x267: 0xa6,\n\t0x268: 0xa6, 0x269: 0xa6, 0x26a: 0xa6, 0x26b: 0xa6, 0x26c: 0xa6, 0x26d: 0xa6, 0x26e: 0xa6, 0x26f: 0xa6,\n\t0x270: 0xa6, 0x271: 0xa6, 0x272: 0xa6, 0x273: 0xa6, 0x274: 0xa6, 0x275: 0xa6, 0x276: 0xa6, 0x277: 0xa6,\n\t0x278: 0xa6, 0x279: 0xa6, 0x27a: 0xa6, 0x27b: 0xa6, 0x27c: 0xa6, 0x27d: 0xa6, 0x27e: 0xa6, 0x27f: 0xa6,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xa6, 0x281: 0xa6, 0x282: 0xa6, 0x283: 0xa6, 0x284: 0xa6, 0x285: 0xa6, 0x286: 0xa6, 0x287: 0xa6,\n\t0x288: 0xa6, 0x289: 0xa6, 0x28a: 0xa6, 0x28b: 0xa6, 0x28c: 0xa6, 0x28d: 0xa6, 0x28e: 0xa6, 0x28f: 0xa6,\n\t0x290: 0xa6, 0x291: 0xa6, 0x292: 0xea, 0x293: 0xeb, 0x294: 0xa6, 0x295: 0xa6, 0x296: 0xa6, 0x297: 0xa6,\n\t0x298: 0xec, 0x299: 0x41, 0x29a: 0x42, 0x29b: 0xed, 0x29c: 0x43, 0x29d: 0x44, 0x29e: 0x45, 0x29f: 0x46,\n\t0x2a0: 0xee, 0x2a1: 0xef, 0x2a2: 0xf0, 0x2a3: 0xf1, 0x2a4: 0xf2, 0x2a5: 0xf3, 0x2a6: 0xf4, 0x2a7: 0xf5,\n\t0x2a8: 0xf6, 0x2a9: 0xf7, 0x2aa: 0xf8, 0x2ab: 0xf9, 0x2ac: 0xfa, 0x2ad: 0xfb, 0x2ae: 0xfc, 0x2af: 0xfd,\n\t0x2b0: 0xa6, 0x2b1: 0xa6, 0x2b2: 0xa6, 0x2b3: 0xa6, 0x2b4: 0xa6, 0x2b5: 0xa6, 0x2b6: 0xa6, 0x2b7: 0xa6,\n\t0x2b8: 0xa6, 0x2b9: 0xa6, 0x2ba: 0xa6, 0x2bb: 0xa6, 0x2bc: 0xa6, 0x2bd: 0xa6, 0x2be: 0xa6, 0x2bf: 0xa6,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xa6, 0x2c1: 0xa6, 0x2c2: 0xa6, 0x2c3: 0xa6, 0x2c4: 0xa6, 0x2c5: 0xa6, 0x2c6: 0xa6, 0x2c7: 0xa6,\n\t0x2c8: 0xa6, 0x2c9: 0xa6, 0x2ca: 0xa6, 0x2cb: 0xa6, 0x2cc: 0xa6, 0x2cd: 0xa6, 0x2ce: 0xa6, 0x2cf: 0xa6,\n\t0x2d0: 0xa6, 0x2d1: 0xa6, 0x2d2: 0xa6, 0x2d3: 0xa6, 0x2d4: 0xa6, 0x2d5: 0xa6, 0x2d6: 0xa6, 0x2d7: 0xa6,\n\t0x2d8: 0xa6, 0x2d9: 0xa6, 0x2da: 0xa6, 0x2db: 0xa6, 0x2dc: 0xa6, 0x2dd: 0xa6, 0x2de: 0xfe, 0x2df: 0xff,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x100, 0x301: 0x100, 0x302: 0x100, 0x303: 0x100, 0x304: 0x100, 0x305: 0x100, 0x306: 0x100, 0x307: 0x100,\n\t0x308: 0x100, 0x309: 0x100, 0x30a: 0x100, 0x30b: 0x100, 0x30c: 0x100, 0x30d: 0x100, 0x30e: 0x100, 0x30f: 0x100,\n\t0x310: 0x100, 0x311: 0x100, 0x312: 0x100, 0x313: 0x100, 0x314: 0x100, 0x315: 0x100, 0x316: 0x100, 0x317: 0x100,\n\t0x318: 0x100, 0x319: 0x100, 0x31a: 0x100, 0x31b: 0x100, 0x31c: 0x100, 0x31d: 0x100, 0x31e: 0x100, 0x31f: 0x100,\n\t0x320: 0x100, 0x321: 0x100, 0x322: 0x100, 0x323: 0x100, 0x324: 0x100, 0x325: 0x100, 0x326: 0x100, 0x327: 0x100,\n\t0x328: 0x100, 0x329: 0x100, 0x32a: 0x100, 0x32b: 0x100, 0x32c: 0x100, 0x32d: 0x100, 0x32e: 0x100, 0x32f: 0x100,\n\t0x330: 0x100, 0x331: 0x100, 0x332: 0x100, 0x333: 0x100, 0x334: 0x100, 0x335: 0x100, 0x336: 0x100, 0x337: 0x100,\n\t0x338: 0x100, 0x339: 0x100, 0x33a: 0x100, 0x33b: 0x100, 0x33c: 0x100, 0x33d: 0x100, 0x33e: 0x100, 0x33f: 0x100,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x100, 0x341: 0x100, 0x342: 0x100, 0x343: 0x100, 0x344: 0x100, 0x345: 0x100, 0x346: 0x100, 0x347: 0x100,\n\t0x348: 0x100, 0x349: 0x100, 0x34a: 0x100, 0x34b: 0x100, 0x34c: 0x100, 0x34d: 0x100, 0x34e: 0x100, 0x34f: 0x100,\n\t0x350: 0x100, 0x351: 0x100, 0x352: 0x100, 0x353: 0x100, 0x354: 0x100, 0x355: 0x100, 0x356: 0x100, 0x357: 0x100,\n\t0x358: 0x100, 0x359: 0x100, 0x35a: 0x100, 0x35b: 0x100, 0x35c: 0x100, 0x35d: 0x100, 0x35e: 0x100, 0x35f: 0x100,\n\t0x360: 0x100, 0x361: 0x100, 0x362: 0x100, 0x363: 0x100, 0x364: 0x101, 0x365: 0x102, 0x366: 0x103, 0x367: 0x104,\n\t0x368: 0x47, 0x369: 0x105, 0x36a: 0x106, 0x36b: 0x48, 0x36c: 0x49, 0x36d: 0x4a, 0x36e: 0x4b, 0x36f: 0x4c,\n\t0x370: 0x107, 0x371: 0x4d, 0x372: 0x4e, 0x373: 0x4f, 0x374: 0x50, 0x375: 0x51, 0x376: 0x108, 0x377: 0x52,\n\t0x378: 0x53, 0x379: 0x54, 0x37a: 0x55, 0x37b: 0x56, 0x37c: 0x57, 0x37d: 0x58, 0x37e: 0x59, 0x37f: 0x5a,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x109, 0x381: 0x10a, 0x382: 0xa6, 0x383: 0x10b, 0x384: 0x10c, 0x385: 0xa2, 0x386: 0x10d, 0x387: 0x10e,\n\t0x388: 0x100, 0x389: 0x100, 0x38a: 0x10f, 0x38b: 0x110, 0x38c: 0x111, 0x38d: 0x112, 0x38e: 0x113, 0x38f: 0x114,\n\t0x390: 0x115, 0x391: 0xa6, 0x392: 0x116, 0x393: 0x117, 0x394: 0x118, 0x395: 0x5b, 0x396: 0x5c, 0x397: 0x100,\n\t0x398: 0xa6, 0x399: 0xa6, 0x39a: 0xa6, 0x39b: 0xa6, 0x39c: 0x119, 0x39d: 0x11a, 0x39e: 0x5d, 0x39f: 0x100,\n\t0x3a0: 0x11b, 0x3a1: 0x11c, 0x3a2: 0x11d, 0x3a3: 0x11e, 0x3a4: 0x11f, 0x3a5: 0x100, 0x3a6: 0x120, 0x3a7: 0x121,\n\t0x3a8: 0x122, 0x3a9: 0x123, 0x3aa: 0x124, 0x3ab: 0x5e, 0x3ac: 0x125, 0x3ad: 0x126, 0x3ae: 0x5f, 0x3af: 0x100,\n\t0x3b0: 0x127, 0x3b1: 0x128, 0x3b2: 0x129, 0x3b3: 0x12a, 0x3b4: 0x12b, 0x3b5: 0x100, 0x3b6: 0x100, 0x3b7: 0x100,\n\t0x3b8: 0x100, 0x3b9: 0x12c, 0x3ba: 0x12d, 0x3bb: 0x12e, 0x3bc: 0x12f, 0x3bd: 0x130, 0x3be: 0x131, 0x3bf: 0x132,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x133, 0x3c1: 0x134, 0x3c2: 0x135, 0x3c3: 0x136, 0x3c4: 0x137, 0x3c5: 0x138, 0x3c6: 0x139, 0x3c7: 0x13a,\n\t0x3c8: 0x13b, 0x3c9: 0x13c, 0x3ca: 0x13d, 0x3cb: 0x13e, 0x3cc: 0x60, 0x3cd: 0x61, 0x3ce: 0x100, 0x3cf: 0x100,\n\t0x3d0: 0x13f, 0x3d1: 0x140, 0x3d2: 0x141, 0x3d3: 0x142, 0x3d4: 0x100, 0x3d5: 0x100, 0x3d6: 0x143, 0x3d7: 0x144,\n\t0x3d8: 0x145, 0x3d9: 0x146, 0x3da: 0x147, 0x3db: 0x148, 0x3dc: 0x149, 0x3dd: 0x14a, 0x3de: 0x100, 0x3df: 0x100,\n\t0x3e0: 0x14b, 0x3e1: 0x100, 0x3e2: 0x14c, 0x3e3: 0x14d, 0x3e4: 0x62, 0x3e5: 0x14e, 0x3e6: 0x14f, 0x3e7: 0x150,\n\t0x3e8: 0x151, 0x3e9: 0x152, 0x3ea: 0x153, 0x3eb: 0x154, 0x3ec: 0x155, 0x3ed: 0x100, 0x3ee: 0x100, 0x3ef: 0x100,\n\t0x3f0: 0x156, 0x3f1: 0x157, 0x3f2: 0x158, 0x3f3: 0x100, 0x3f4: 0x159, 0x3f5: 0x15a, 0x3f6: 0x15b, 0x3f7: 0x100,\n\t0x3f8: 0x100, 0x3f9: 0x100, 0x3fa: 0x100, 0x3fb: 0x15c, 0x3fc: 0x15d, 0x3fd: 0x15e, 0x3fe: 0x15f, 0x3ff: 0x160,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xa6, 0x401: 0xa6, 0x402: 0xa6, 0x403: 0xa6, 0x404: 0xa6, 0x405: 0xa6, 0x406: 0xa6, 0x407: 0xa6,\n\t0x408: 0xa6, 0x409: 0xa6, 0x40a: 0xa6, 0x40b: 0xa6, 0x40c: 0xa6, 0x40d: 0xa6, 0x40e: 0x161, 0x40f: 0x100,\n\t0x410: 0xa2, 0x411: 0x162, 0x412: 0xa6, 0x413: 0xa6, 0x414: 0xa6, 0x415: 0x163, 0x416: 0x100, 0x417: 0x100,\n\t0x418: 0x100, 0x419: 0x100, 0x41a: 0x100, 0x41b: 0x100, 0x41c: 0x100, 0x41d: 0x100, 0x41e: 0x100, 0x41f: 0x100,\n\t0x420: 0x100, 0x421: 0x100, 0x422: 0x100, 0x423: 0x100, 0x424: 0x100, 0x425: 0x100, 0x426: 0x100, 0x427: 0x100,\n\t0x428: 0x100, 0x429: 0x100, 0x42a: 0x100, 0x42b: 0x100, 0x42c: 0x100, 0x42d: 0x100, 0x42e: 0x100, 0x42f: 0x100,\n\t0x430: 0x100, 0x431: 0x100, 0x432: 0x100, 0x433: 0x100, 0x434: 0x100, 0x435: 0x100, 0x436: 0x100, 0x437: 0x100,\n\t0x438: 0x100, 0x439: 0x100, 0x43a: 0x100, 0x43b: 0x100, 0x43c: 0x100, 0x43d: 0x100, 0x43e: 0x164, 0x43f: 0x165,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xa6, 0x441: 0xa6, 0x442: 0xa6, 0x443: 0xa6, 0x444: 0xa6, 0x445: 0xa6, 0x446: 0xa6, 0x447: 0xa6,\n\t0x448: 0xa6, 0x449: 0xa6, 0x44a: 0xa6, 0x44b: 0xa6, 0x44c: 0xa6, 0x44d: 0xa6, 0x44e: 0xa6, 0x44f: 0xa6,\n\t0x450: 0x166, 0x451: 0x167, 0x452: 0x100, 0x453: 0x100, 0x454: 0x100, 0x455: 0x100, 0x456: 0x100, 0x457: 0x100,\n\t0x458: 0x100, 0x459: 0x100, 0x45a: 0x100, 0x45b: 0x100, 0x45c: 0x100, 0x45d: 0x100, 0x45e: 0x100, 0x45f: 0x100,\n\t0x460: 0x100, 0x461: 0x100, 0x462: 0x100, 0x463: 0x100, 0x464: 0x100, 0x465: 0x100, 0x466: 0x100, 0x467: 0x100,\n\t0x468: 0x100, 0x469: 0x100, 0x46a: 0x100, 0x46b: 0x100, 0x46c: 0x100, 0x46d: 0x100, 0x46e: 0x100, 0x46f: 0x100,\n\t0x470: 0x100, 0x471: 0x100, 0x472: 0x100, 0x473: 0x100, 0x474: 0x100, 0x475: 0x100, 0x476: 0x100, 0x477: 0x100,\n\t0x478: 0x100, 0x479: 0x100, 0x47a: 0x100, 0x47b: 0x100, 0x47c: 0x100, 0x47d: 0x100, 0x47e: 0x100, 0x47f: 0x100,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x100, 0x481: 0x100, 0x482: 0x100, 0x483: 0x100, 0x484: 0x100, 0x485: 0x100, 0x486: 0x100, 0x487: 0x100,\n\t0x488: 0x100, 0x489: 0x100, 0x48a: 0x100, 0x48b: 0x100, 0x48c: 0x100, 0x48d: 0x100, 0x48e: 0x100, 0x48f: 0x100,\n\t0x490: 0xa6, 0x491: 0xa6, 0x492: 0xa6, 0x493: 0xa6, 0x494: 0xa6, 0x495: 0xa6, 0x496: 0xa6, 0x497: 0xa6,\n\t0x498: 0xa6, 0x499: 0x14a, 0x49a: 0x100, 0x49b: 0x100, 0x49c: 0x100, 0x49d: 0x100, 0x49e: 0x100, 0x49f: 0x100,\n\t0x4a0: 0x100, 0x4a1: 0x100, 0x4a2: 0x100, 0x4a3: 0x100, 0x4a4: 0x100, 0x4a5: 0x100, 0x4a6: 0x100, 0x4a7: 0x100,\n\t0x4a8: 0x100, 0x4a9: 0x100, 0x4aa: 0x100, 0x4ab: 0x100, 0x4ac: 0x100, 0x4ad: 0x100, 0x4ae: 0x100, 0x4af: 0x100,\n\t0x4b0: 0x100, 0x4b1: 0x100, 0x4b2: 0x100, 0x4b3: 0x100, 0x4b4: 0x100, 0x4b5: 0x100, 0x4b6: 0x100, 0x4b7: 0x100,\n\t0x4b8: 0x100, 0x4b9: 0x100, 0x4ba: 0x100, 0x4bb: 0x100, 0x4bc: 0x100, 0x4bd: 0x100, 0x4be: 0x100, 0x4bf: 0x100,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x100, 0x4c1: 0x100, 0x4c2: 0x100, 0x4c3: 0x100, 0x4c4: 0x100, 0x4c5: 0x100, 0x4c6: 0x100, 0x4c7: 0x100,\n\t0x4c8: 0x100, 0x4c9: 0x100, 0x4ca: 0x100, 0x4cb: 0x100, 0x4cc: 0x100, 0x4cd: 0x100, 0x4ce: 0x100, 0x4cf: 0x100,\n\t0x4d0: 0x100, 0x4d1: 0x100, 0x4d2: 0x100, 0x4d3: 0x100, 0x4d4: 0x100, 0x4d5: 0x100, 0x4d6: 0x100, 0x4d7: 0x100,\n\t0x4d8: 0x100, 0x4d9: 0x100, 0x4da: 0x100, 0x4db: 0x100, 0x4dc: 0x100, 0x4dd: 0x100, 0x4de: 0x100, 0x4df: 0x100,\n\t0x4e0: 0xa6, 0x4e1: 0xa6, 0x4e2: 0xa6, 0x4e3: 0xa6, 0x4e4: 0xa6, 0x4e5: 0xa6, 0x4e6: 0xa6, 0x4e7: 0xa6,\n\t0x4e8: 0x154, 0x4e9: 0x168, 0x4ea: 0x169, 0x4eb: 0x16a, 0x4ec: 0x16b, 0x4ed: 0x16c, 0x4ee: 0x16d, 0x4ef: 0x100,\n\t0x4f0: 0x100, 0x4f1: 0x100, 0x4f2: 0x100, 0x4f3: 0x100, 0x4f4: 0x100, 0x4f5: 0x100, 0x4f6: 0x100, 0x4f7: 0x100,\n\t0x4f8: 0x100, 0x4f9: 0x16e, 0x4fa: 0x16f, 0x4fb: 0x100, 0x4fc: 0xa6, 0x4fd: 0x170, 0x4fe: 0x171, 0x4ff: 0x172,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xa6, 0x501: 0xa6, 0x502: 0xa6, 0x503: 0xa6, 0x504: 0xa6, 0x505: 0xa6, 0x506: 0xa6, 0x507: 0xa6,\n\t0x508: 0xa6, 0x509: 0xa6, 0x50a: 0xa6, 0x50b: 0xa6, 0x50c: 0xa6, 0x50d: 0xa6, 0x50e: 0xa6, 0x50f: 0xa6,\n\t0x510: 0xa6, 0x511: 0xa6, 0x512: 0xa6, 0x513: 0xa6, 0x514: 0xa6, 0x515: 0xa6, 0x516: 0xa6, 0x517: 0xa6,\n\t0x518: 0xa6, 0x519: 0xa6, 0x51a: 0xa6, 0x51b: 0xa6, 0x51c: 0xa6, 0x51d: 0xa6, 0x51e: 0xa6, 0x51f: 0x173,\n\t0x520: 0xa6, 0x521: 0xa6, 0x522: 0xa6, 0x523: 0xa6, 0x524: 0xa6, 0x525: 0xa6, 0x526: 0xa6, 0x527: 0xa6,\n\t0x528: 0xa6, 0x529: 0xa6, 0x52a: 0xa6, 0x52b: 0xa6, 0x52c: 0xa6, 0x52d: 0xa6, 0x52e: 0xa6, 0x52f: 0xa6,\n\t0x530: 0xa6, 0x531: 0xa6, 0x532: 0xa6, 0x533: 0x174, 0x534: 0x175, 0x535: 0x100, 0x536: 0x100, 0x537: 0x100,\n\t0x538: 0x100, 0x539: 0x100, 0x53a: 0x100, 0x53b: 0x100, 0x53c: 0x100, 0x53d: 0x100, 0x53e: 0x100, 0x53f: 0x100,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x100, 0x541: 0x100, 0x542: 0x100, 0x543: 0x100, 0x544: 0x100, 0x545: 0x100, 0x546: 0x100, 0x547: 0x100,\n\t0x548: 0x100, 0x549: 0x100, 0x54a: 0x100, 0x54b: 0x100, 0x54c: 0x100, 0x54d: 0x100, 0x54e: 0x100, 0x54f: 0x100,\n\t0x550: 0x100, 0x551: 0x100, 0x552: 0x100, 0x553: 0x100, 0x554: 0x100, 0x555: 0x100, 0x556: 0x100, 0x557: 0x100,\n\t0x558: 0x100, 0x559: 0x100, 0x55a: 0x100, 0x55b: 0x100, 0x55c: 0x100, 0x55d: 0x100, 0x55e: 0x100, 0x55f: 0x100,\n\t0x560: 0x100, 0x561: 0x100, 0x562: 0x100, 0x563: 0x100, 0x564: 0x100, 0x565: 0x100, 0x566: 0x100, 0x567: 0x100,\n\t0x568: 0x100, 0x569: 0x100, 0x56a: 0x100, 0x56b: 0x100, 0x56c: 0x100, 0x56d: 0x100, 0x56e: 0x100, 0x56f: 0x100,\n\t0x570: 0x100, 0x571: 0x100, 0x572: 0x100, 0x573: 0x100, 0x574: 0x100, 0x575: 0x100, 0x576: 0x100, 0x577: 0x100,\n\t0x578: 0x100, 0x579: 0x100, 0x57a: 0x100, 0x57b: 0x100, 0x57c: 0x100, 0x57d: 0x100, 0x57e: 0x100, 0x57f: 0x176,\n\t// Block 0x16, offset 0x580\n\t0x580: 0xa6, 0x581: 0xa6, 0x582: 0xa6, 0x583: 0xa6, 0x584: 0x177, 0x585: 0x178, 0x586: 0xa6, 0x587: 0xa6,\n\t0x588: 0xa6, 0x589: 0xa6, 0x58a: 0xa6, 0x58b: 0x179, 0x58c: 0x100, 0x58d: 0x100, 0x58e: 0x100, 0x58f: 0x100,\n\t0x590: 0x100, 0x591: 0x100, 0x592: 0x100, 0x593: 0x100, 0x594: 0x100, 0x595: 0x100, 0x596: 0x100, 0x597: 0x100,\n\t0x598: 0x100, 0x599: 0x100, 0x59a: 0x100, 0x59b: 0x100, 0x59c: 0x100, 0x59d: 0x100, 0x59e: 0x100, 0x59f: 0x100,\n\t0x5a0: 0x100, 0x5a1: 0x100, 0x5a2: 0x100, 0x5a3: 0x100, 0x5a4: 0x100, 0x5a5: 0x100, 0x5a6: 0x100, 0x5a7: 0x100,\n\t0x5a8: 0x100, 0x5a9: 0x100, 0x5aa: 0x100, 0x5ab: 0x100, 0x5ac: 0x100, 0x5ad: 0x100, 0x5ae: 0x100, 0x5af: 0x100,\n\t0x5b0: 0xa6, 0x5b1: 0x17a, 0x5b2: 0x17b, 0x5b3: 0x100, 0x5b4: 0x100, 0x5b5: 0x100, 0x5b6: 0x100, 0x5b7: 0x100,\n\t0x5b8: 0x100, 0x5b9: 0x100, 0x5ba: 0x100, 0x5bb: 0x100, 0x5bc: 0x100, 0x5bd: 0x100, 0x5be: 0x100, 0x5bf: 0x100,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x100, 0x5c1: 0x100, 0x5c2: 0x100, 0x5c3: 0x100, 0x5c4: 0x100, 0x5c5: 0x100, 0x5c6: 0x100, 0x5c7: 0x100,\n\t0x5c8: 0x100, 0x5c9: 0x100, 0x5ca: 0x100, 0x5cb: 0x100, 0x5cc: 0x100, 0x5cd: 0x100, 0x5ce: 0x100, 0x5cf: 0x100,\n\t0x5d0: 0x100, 0x5d1: 0x100, 0x5d2: 0x100, 0x5d3: 0x100, 0x5d4: 0x100, 0x5d5: 0x100, 0x5d6: 0x100, 0x5d7: 0x100,\n\t0x5d8: 0x100, 0x5d9: 0x100, 0x5da: 0x100, 0x5db: 0x100, 0x5dc: 0x100, 0x5dd: 0x100, 0x5de: 0x100, 0x5df: 0x100,\n\t0x5e0: 0x100, 0x5e1: 0x100, 0x5e2: 0x100, 0x5e3: 0x100, 0x5e4: 0x100, 0x5e5: 0x100, 0x5e6: 0x100, 0x5e7: 0x100,\n\t0x5e8: 0x100, 0x5e9: 0x100, 0x5ea: 0x100, 0x5eb: 0x100, 0x5ec: 0x100, 0x5ed: 0x100, 0x5ee: 0x100, 0x5ef: 0x100,\n\t0x5f0: 0x100, 0x5f1: 0x100, 0x5f2: 0x100, 0x5f3: 0x100, 0x5f4: 0x100, 0x5f5: 0x100, 0x5f6: 0x100, 0x5f7: 0x100,\n\t0x5f8: 0x100, 0x5f9: 0x100, 0x5fa: 0x100, 0x5fb: 0x100, 0x5fc: 0x17c, 0x5fd: 0x17d, 0x5fe: 0xa2, 0x5ff: 0x17e,\n\t// Block 0x18, offset 0x600\n\t0x600: 0xa2, 0x601: 0xa2, 0x602: 0xa2, 0x603: 0x17f, 0x604: 0x180, 0x605: 0x181, 0x606: 0x182, 0x607: 0x183,\n\t0x608: 0xa2, 0x609: 0x184, 0x60a: 0x100, 0x60b: 0x185, 0x60c: 0xa2, 0x60d: 0x186, 0x60e: 0x100, 0x60f: 0x100,\n\t0x610: 0x63, 0x611: 0x64, 0x612: 0x65, 0x613: 0x66, 0x614: 0x67, 0x615: 0x68, 0x616: 0x69, 0x617: 0x6a,\n\t0x618: 0x6b, 0x619: 0x6c, 0x61a: 0x6d, 0x61b: 0x6e, 0x61c: 0x6f, 0x61d: 0x70, 0x61e: 0x71, 0x61f: 0x72,\n\t0x620: 0xa2, 0x621: 0xa2, 0x622: 0xa2, 0x623: 0xa2, 0x624: 0xa2, 0x625: 0xa2, 0x626: 0xa2, 0x627: 0xa2,\n\t0x628: 0x187, 0x629: 0x188, 0x62a: 0x189, 0x62b: 0x100, 0x62c: 0x100, 0x62d: 0x100, 0x62e: 0x100, 0x62f: 0x100,\n\t0x630: 0x100, 0x631: 0x100, 0x632: 0x100, 0x633: 0x100, 0x634: 0x100, 0x635: 0x100, 0x636: 0x100, 0x637: 0x100,\n\t0x638: 0x100, 0x639: 0x100, 0x63a: 0x100, 0x63b: 0x100, 0x63c: 0x18a, 0x63d: 0x100, 0x63e: 0x100, 0x63f: 0x100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x73, 0x641: 0x74, 0x642: 0x18b, 0x643: 0x100, 0x644: 0x18c, 0x645: 0x18d, 0x646: 0x100, 0x647: 0x100,\n\t0x648: 0x100, 0x649: 0x100, 0x64a: 0x18e, 0x64b: 0x18f, 0x64c: 0x100, 0x64d: 0x100, 0x64e: 0x100, 0x64f: 0x100,\n\t0x650: 0x100, 0x651: 0x100, 0x652: 0x100, 0x653: 0x190, 0x654: 0x100, 0x655: 0x100, 0x656: 0x100, 0x657: 0x100,\n\t0x658: 0x100, 0x659: 0x100, 0x65a: 0x100, 0x65b: 0x100, 0x65c: 0x100, 0x65d: 0x100, 0x65e: 0x100, 0x65f: 0x191,\n\t0x660: 0x127, 0x661: 0x127, 0x662: 0x127, 0x663: 0x192, 0x664: 0x75, 0x665: 0x193, 0x666: 0x100, 0x667: 0x100,\n\t0x668: 0x100, 0x669: 0x100, 0x66a: 0x100, 0x66b: 0x100, 0x66c: 0x100, 0x66d: 0x100, 0x66e: 0x100, 0x66f: 0x100,\n\t0x670: 0x100, 0x671: 0x194, 0x672: 0x195, 0x673: 0x100, 0x674: 0x196, 0x675: 0x100, 0x676: 0x100, 0x677: 0x100,\n\t0x678: 0x76, 0x679: 0x77, 0x67a: 0x78, 0x67b: 0x197, 0x67c: 0x100, 0x67d: 0x100, 0x67e: 0x100, 0x67f: 0x100,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x198, 0x681: 0xa2, 0x682: 0x199, 0x683: 0x19a, 0x684: 0x79, 0x685: 0x7a, 0x686: 0x19b, 0x687: 0x19c,\n\t0x688: 0x7b, 0x689: 0x19d, 0x68a: 0x100, 0x68b: 0x100, 0x68c: 0xa2, 0x68d: 0xa2, 0x68e: 0xa2, 0x68f: 0xa2,\n\t0x690: 0xa2, 0x691: 0xa2, 0x692: 0xa2, 0x693: 0xa2, 0x694: 0xa2, 0x695: 0xa2, 0x696: 0xa2, 0x697: 0xa2,\n\t0x698: 0xa2, 0x699: 0xa2, 0x69a: 0xa2, 0x69b: 0x19e, 0x69c: 0xa2, 0x69d: 0x19f, 0x69e: 0xa2, 0x69f: 0x1a0,\n\t0x6a0: 0x1a1, 0x6a1: 0x1a2, 0x6a2: 0x1a3, 0x6a3: 0x100, 0x6a4: 0xa2, 0x6a5: 0xa2, 0x6a6: 0xa2, 0x6a7: 0xa2,\n\t0x6a8: 0xa2, 0x6a9: 0x1a4, 0x6aa: 0x1a5, 0x6ab: 0x1a6, 0x6ac: 0xa2, 0x6ad: 0xa2, 0x6ae: 0x1a7, 0x6af: 0x1a8,\n\t0x6b0: 0x100, 0x6b1: 0x100, 0x6b2: 0x100, 0x6b3: 0x100, 0x6b4: 0x100, 0x6b5: 0x100, 0x6b6: 0x100, 0x6b7: 0x100,\n\t0x6b8: 0x100, 0x6b9: 0x100, 0x6ba: 0x100, 0x6bb: 0x100, 0x6bc: 0x100, 0x6bd: 0x100, 0x6be: 0x100, 0x6bf: 0x100,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0xa6, 0x6c1: 0xa6, 0x6c2: 0xa6, 0x6c3: 0xa6, 0x6c4: 0xa6, 0x6c5: 0xa6, 0x6c6: 0xa6, 0x6c7: 0xa6,\n\t0x6c8: 0xa6, 0x6c9: 0xa6, 0x6ca: 0xa6, 0x6cb: 0xa6, 0x6cc: 0xa6, 0x6cd: 0xa6, 0x6ce: 0xa6, 0x6cf: 0xa6,\n\t0x6d0: 0xa6, 0x6d1: 0xa6, 0x6d2: 0xa6, 0x6d3: 0xa6, 0x6d4: 0xa6, 0x6d5: 0xa6, 0x6d6: 0xa6, 0x6d7: 0xa6,\n\t0x6d8: 0xa6, 0x6d9: 0xa6, 0x6da: 0xa6, 0x6db: 0x1a9, 0x6dc: 0xa6, 0x6dd: 0xa6, 0x6de: 0xa6, 0x6df: 0xa6,\n\t0x6e0: 0xa6, 0x6e1: 0xa6, 0x6e2: 0xa6, 0x6e3: 0xa6, 0x6e4: 0xa6, 0x6e5: 0xa6, 0x6e6: 0xa6, 0x6e7: 0xa6,\n\t0x6e8: 0xa6, 0x6e9: 0xa6, 0x6ea: 0xa6, 0x6eb: 0xa6, 0x6ec: 0xa6, 0x6ed: 0xa6, 0x6ee: 0xa6, 0x6ef: 0xa6,\n\t0x6f0: 0xa6, 0x6f1: 0xa6, 0x6f2: 0xa6, 0x6f3: 0xa6, 0x6f4: 0xa6, 0x6f5: 0xa6, 0x6f6: 0xa6, 0x6f7: 0xa6,\n\t0x6f8: 0xa6, 0x6f9: 0xa6, 0x6fa: 0xa6, 0x6fb: 0xa6, 0x6fc: 0xa6, 0x6fd: 0xa6, 0x6fe: 0xa6, 0x6ff: 0xa6,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0xa6, 0x701: 0xa6, 0x702: 0xa6, 0x703: 0xa6, 0x704: 0xa6, 0x705: 0xa6, 0x706: 0xa6, 0x707: 0xa6,\n\t0x708: 0xa6, 0x709: 0xa6, 0x70a: 0xa6, 0x70b: 0xa6, 0x70c: 0xa6, 0x70d: 0xa6, 0x70e: 0xa6, 0x70f: 0xa6,\n\t0x710: 0xa6, 0x711: 0xa6, 0x712: 0xa6, 0x713: 0xa6, 0x714: 0xa6, 0x715: 0xa6, 0x716: 0xa6, 0x717: 0xa6,\n\t0x718: 0xa6, 0x719: 0xa6, 0x71a: 0xa6, 0x71b: 0xa6, 0x71c: 0x1aa, 0x71d: 0xa6, 0x71e: 0xa6, 0x71f: 0xa6,\n\t0x720: 0x1ab, 0x721: 0xa6, 0x722: 0xa6, 0x723: 0xa6, 0x724: 0xa6, 0x725: 0xa6, 0x726: 0xa6, 0x727: 0xa6,\n\t0x728: 0xa6, 0x729: 0xa6, 0x72a: 0xa6, 0x72b: 0xa6, 0x72c: 0xa6, 0x72d: 0xa6, 0x72e: 0xa6, 0x72f: 0xa6,\n\t0x730: 0xa6, 0x731: 0xa6, 0x732: 0xa6, 0x733: 0xa6, 0x734: 0xa6, 0x735: 0xa6, 0x736: 0xa6, 0x737: 0xa6,\n\t0x738: 0xa6, 0x739: 0xa6, 0x73a: 0xa6, 0x73b: 0xa6, 0x73c: 0xa6, 0x73d: 0xa6, 0x73e: 0xa6, 0x73f: 0xa6,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xa6, 0x741: 0xa6, 0x742: 0xa6, 0x743: 0xa6, 0x744: 0xa6, 0x745: 0xa6, 0x746: 0xa6, 0x747: 0xa6,\n\t0x748: 0xa6, 0x749: 0xa6, 0x74a: 0xa6, 0x74b: 0xa6, 0x74c: 0xa6, 0x74d: 0xa6, 0x74e: 0xa6, 0x74f: 0xa6,\n\t0x750: 0xa6, 0x751: 0xa6, 0x752: 0xa6, 0x753: 0xa6, 0x754: 0xa6, 0x755: 0xa6, 0x756: 0xa6, 0x757: 0xa6,\n\t0x758: 0xa6, 0x759: 0xa6, 0x75a: 0xa6, 0x75b: 0xa6, 0x75c: 0xa6, 0x75d: 0xa6, 0x75e: 0xa6, 0x75f: 0xa6,\n\t0x760: 0xa6, 0x761: 0xa6, 0x762: 0xa6, 0x763: 0xa6, 0x764: 0xa6, 0x765: 0xa6, 0x766: 0xa6, 0x767: 0xa6,\n\t0x768: 0xa6, 0x769: 0xa6, 0x76a: 0xa6, 0x76b: 0xa6, 0x76c: 0xa6, 0x76d: 0xa6, 0x76e: 0xa6, 0x76f: 0xa6,\n\t0x770: 0xa6, 0x771: 0xa6, 0x772: 0xa6, 0x773: 0xa6, 0x774: 0xa6, 0x775: 0xa6, 0x776: 0xa6, 0x777: 0xa6,\n\t0x778: 0xa6, 0x779: 0xa6, 0x77a: 0x1ac, 0x77b: 0xa6, 0x77c: 0xa6, 0x77d: 0xa6, 0x77e: 0xa6, 0x77f: 0xa6,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xa6, 0x781: 0xa6, 0x782: 0xa6, 0x783: 0xa6, 0x784: 0xa6, 0x785: 0xa6, 0x786: 0xa6, 0x787: 0xa6,\n\t0x788: 0xa6, 0x789: 0xa6, 0x78a: 0xa6, 0x78b: 0xa6, 0x78c: 0xa6, 0x78d: 0xa6, 0x78e: 0xa6, 0x78f: 0xa6,\n\t0x790: 0xa6, 0x791: 0xa6, 0x792: 0xa6, 0x793: 0xa6, 0x794: 0xa6, 0x795: 0xa6, 0x796: 0xa6, 0x797: 0xa6,\n\t0x798: 0xa6, 0x799: 0xa6, 0x79a: 0xa6, 0x79b: 0xa6, 0x79c: 0xa6, 0x79d: 0xa6, 0x79e: 0xa6, 0x79f: 0xa6,\n\t0x7a0: 0xa6, 0x7a1: 0xa6, 0x7a2: 0xa6, 0x7a3: 0xa6, 0x7a4: 0xa6, 0x7a5: 0xa6, 0x7a6: 0xa6, 0x7a7: 0xa6,\n\t0x7a8: 0xa6, 0x7a9: 0xa6, 0x7aa: 0xa6, 0x7ab: 0xa6, 0x7ac: 0xa6, 0x7ad: 0xa6, 0x7ae: 0xa6, 0x7af: 0x1ad,\n\t0x7b0: 0x100, 0x7b1: 0x100, 0x7b2: 0x100, 0x7b3: 0x100, 0x7b4: 0x100, 0x7b5: 0x100, 0x7b6: 0x100, 0x7b7: 0x100,\n\t0x7b8: 0x100, 0x7b9: 0x100, 0x7ba: 0x100, 0x7bb: 0x100, 0x7bc: 0x100, 0x7bd: 0x100, 0x7be: 0x100, 0x7bf: 0x100,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x100, 0x7c1: 0x100, 0x7c2: 0x100, 0x7c3: 0x100, 0x7c4: 0x100, 0x7c5: 0x100, 0x7c6: 0x100, 0x7c7: 0x100,\n\t0x7c8: 0x100, 0x7c9: 0x100, 0x7ca: 0x100, 0x7cb: 0x100, 0x7cc: 0x100, 0x7cd: 0x100, 0x7ce: 0x100, 0x7cf: 0x100,\n\t0x7d0: 0x100, 0x7d1: 0x100, 0x7d2: 0x100, 0x7d3: 0x100, 0x7d4: 0x100, 0x7d5: 0x100, 0x7d6: 0x100, 0x7d7: 0x100,\n\t0x7d8: 0x100, 0x7d9: 0x100, 0x7da: 0x100, 0x7db: 0x100, 0x7dc: 0x100, 0x7dd: 0x100, 0x7de: 0x100, 0x7df: 0x100,\n\t0x7e0: 0x7c, 0x7e1: 0x7d, 0x7e2: 0x7e, 0x7e3: 0x7f, 0x7e4: 0x80, 0x7e5: 0x81, 0x7e6: 0x82, 0x7e7: 0x83,\n\t0x7e8: 0x84, 0x7e9: 0x100, 0x7ea: 0x100, 0x7eb: 0x100, 0x7ec: 0x100, 0x7ed: 0x100, 0x7ee: 0x100, 0x7ef: 0x100,\n\t0x7f0: 0x100, 0x7f1: 0x100, 0x7f2: 0x100, 0x7f3: 0x100, 0x7f4: 0x100, 0x7f5: 0x100, 0x7f6: 0x100, 0x7f7: 0x100,\n\t0x7f8: 0x100, 0x7f9: 0x100, 0x7fa: 0x100, 0x7fb: 0x100, 0x7fc: 0x100, 0x7fd: 0x100, 0x7fe: 0x100, 0x7ff: 0x100,\n\t// Block 0x20, offset 0x800\n\t0x800: 0xa6, 0x801: 0xa6, 0x802: 0xa6, 0x803: 0xa6, 0x804: 0xa6, 0x805: 0xa6, 0x806: 0xa6, 0x807: 0xa6,\n\t0x808: 0xa6, 0x809: 0xa6, 0x80a: 0xa6, 0x80b: 0xa6, 0x80c: 0xa6, 0x80d: 0x1ae, 0x80e: 0xa6, 0x80f: 0xa6,\n\t0x810: 0xa6, 0x811: 0xa6, 0x812: 0xa6, 0x813: 0xa6, 0x814: 0xa6, 0x815: 0xa6, 0x816: 0xa6, 0x817: 0xa6,\n\t0x818: 0xa6, 0x819: 0xa6, 0x81a: 0xa6, 0x81b: 0xa6, 0x81c: 0xa6, 0x81d: 0xa6, 0x81e: 0xa6, 0x81f: 0xa6,\n\t0x820: 0xa6, 0x821: 0xa6, 0x822: 0xa6, 0x823: 0xa6, 0x824: 0xa6, 0x825: 0xa6, 0x826: 0xa6, 0x827: 0xa6,\n\t0x828: 0xa6, 0x829: 0xa6, 0x82a: 0xa6, 0x82b: 0xa6, 0x82c: 0xa6, 0x82d: 0xa6, 0x82e: 0xa6, 0x82f: 0xa6,\n\t0x830: 0xa6, 0x831: 0xa6, 0x832: 0xa6, 0x833: 0xa6, 0x834: 0xa6, 0x835: 0xa6, 0x836: 0xa6, 0x837: 0xa6,\n\t0x838: 0xa6, 0x839: 0xa6, 0x83a: 0xa6, 0x83b: 0xa6, 0x83c: 0xa6, 0x83d: 0xa6, 0x83e: 0xa6, 0x83f: 0xa6,\n\t// Block 0x21, offset 0x840\n\t0x840: 0xa6, 0x841: 0xa6, 0x842: 0xa6, 0x843: 0xa6, 0x844: 0xa6, 0x845: 0xa6, 0x846: 0xa6, 0x847: 0xa6,\n\t0x848: 0xa6, 0x849: 0xa6, 0x84a: 0xa6, 0x84b: 0xa6, 0x84c: 0xa6, 0x84d: 0xa6, 0x84e: 0x1af, 0x84f: 0x100,\n\t0x850: 0x100, 0x851: 0x100, 0x852: 0x100, 0x853: 0x100, 0x854: 0x100, 0x855: 0x100, 0x856: 0x100, 0x857: 0x100,\n\t0x858: 0x100, 0x859: 0x100, 0x85a: 0x100, 0x85b: 0x100, 0x85c: 0x100, 0x85d: 0x100, 0x85e: 0x100, 0x85f: 0x100,\n\t0x860: 0x100, 0x861: 0x100, 0x862: 0x100, 0x863: 0x100, 0x864: 0x100, 0x865: 0x100, 0x866: 0x100, 0x867: 0x100,\n\t0x868: 0x100, 0x869: 0x100, 0x86a: 0x100, 0x86b: 0x100, 0x86c: 0x100, 0x86d: 0x100, 0x86e: 0x100, 0x86f: 0x100,\n\t0x870: 0x100, 0x871: 0x100, 0x872: 0x100, 0x873: 0x100, 0x874: 0x100, 0x875: 0x100, 0x876: 0x100, 0x877: 0x100,\n\t0x878: 0x100, 0x879: 0x100, 0x87a: 0x100, 0x87b: 0x100, 0x87c: 0x100, 0x87d: 0x100, 0x87e: 0x100, 0x87f: 0x100,\n\t// Block 0x22, offset 0x880\n\t0x890: 0x0c, 0x891: 0x0d, 0x892: 0x0e, 0x893: 0x0f, 0x894: 0x10, 0x895: 0x0a, 0x896: 0x11, 0x897: 0x07,\n\t0x898: 0x12, 0x899: 0x0a, 0x89a: 0x13, 0x89b: 0x14, 0x89c: 0x15, 0x89d: 0x16, 0x89e: 0x17, 0x89f: 0x18,\n\t0x8a0: 0x07, 0x8a1: 0x07, 0x8a2: 0x07, 0x8a3: 0x07, 0x8a4: 0x07, 0x8a5: 0x07, 0x8a6: 0x07, 0x8a7: 0x07,\n\t0x8a8: 0x07, 0x8a9: 0x07, 0x8aa: 0x19, 0x8ab: 0x1a, 0x8ac: 0x1b, 0x8ad: 0x07, 0x8ae: 0x1c, 0x8af: 0x1d,\n\t0x8b0: 0x07, 0x8b1: 0x1e, 0x8b2: 0x1f, 0x8b3: 0x0a, 0x8b4: 0x0a, 0x8b5: 0x0a, 0x8b6: 0x0a, 0x8b7: 0x0a,\n\t0x8b8: 0x0a, 0x8b9: 0x0a, 0x8ba: 0x0a, 0x8bb: 0x0a, 0x8bc: 0x0a, 0x8bd: 0x0a, 0x8be: 0x0a, 0x8bf: 0x0a,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0a, 0x8c1: 0x0a, 0x8c2: 0x0a, 0x8c3: 0x0a, 0x8c4: 0x0a, 0x8c5: 0x0a, 0x8c6: 0x0a, 0x8c7: 0x0a,\n\t0x8c8: 0x0a, 0x8c9: 0x0a, 0x8ca: 0x0a, 0x8cb: 0x0a, 0x8cc: 0x0a, 0x8cd: 0x0a, 0x8ce: 0x0a, 0x8cf: 0x0a,\n\t0x8d0: 0x0a, 0x8d1: 0x0a, 0x8d2: 0x0a, 0x8d3: 0x0a, 0x8d4: 0x0a, 0x8d5: 0x0a, 0x8d6: 0x0a, 0x8d7: 0x0a,\n\t0x8d8: 0x0a, 0x8d9: 0x0a, 0x8da: 0x0a, 0x8db: 0x0a, 0x8dc: 0x0a, 0x8dd: 0x0a, 0x8de: 0x0a, 0x8df: 0x0a,\n\t0x8e0: 0x0a, 0x8e1: 0x0a, 0x8e2: 0x0a, 0x8e3: 0x0a, 0x8e4: 0x0a, 0x8e5: 0x0a, 0x8e6: 0x0a, 0x8e7: 0x0a,\n\t0x8e8: 0x0a, 0x8e9: 0x0a, 0x8ea: 0x0a, 0x8eb: 0x0a, 0x8ec: 0x0a, 0x8ed: 0x0a, 0x8ee: 0x0a, 0x8ef: 0x0a,\n\t0x8f0: 0x0a, 0x8f1: 0x0a, 0x8f2: 0x0a, 0x8f3: 0x0a, 0x8f4: 0x0a, 0x8f5: 0x0a, 0x8f6: 0x0a, 0x8f7: 0x0a,\n\t0x8f8: 0x0a, 0x8f9: 0x0a, 0x8fa: 0x0a, 0x8fb: 0x0a, 0x8fc: 0x0a, 0x8fd: 0x0a, 0x8fe: 0x0a, 0x8ff: 0x0a,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x1b0, 0x901: 0x1b1, 0x902: 0x100, 0x903: 0x100, 0x904: 0x1b2, 0x905: 0x1b2, 0x906: 0x1b2, 0x907: 0x1b3,\n\t0x908: 0x100, 0x909: 0x100, 0x90a: 0x100, 0x90b: 0x100, 0x90c: 0x100, 0x90d: 0x100, 0x90e: 0x100, 0x90f: 0x100,\n\t0x910: 0x100, 0x911: 0x100, 0x912: 0x100, 0x913: 0x100, 0x914: 0x100, 0x915: 0x100, 0x916: 0x100, 0x917: 0x100,\n\t0x918: 0x100, 0x919: 0x100, 0x91a: 0x100, 0x91b: 0x100, 0x91c: 0x100, 0x91d: 0x100, 0x91e: 0x100, 0x91f: 0x100,\n\t0x920: 0x100, 0x921: 0x100, 0x922: 0x100, 0x923: 0x100, 0x924: 0x100, 0x925: 0x100, 0x926: 0x100, 0x927: 0x100,\n\t0x928: 0x100, 0x929: 0x100, 0x92a: 0x100, 0x92b: 0x100, 0x92c: 0x100, 0x92d: 0x100, 0x92e: 0x100, 0x92f: 0x100,\n\t0x930: 0x100, 0x931: 0x100, 0x932: 0x100, 0x933: 0x100, 0x934: 0x100, 0x935: 0x100, 0x936: 0x100, 0x937: 0x100,\n\t0x938: 0x100, 0x939: 0x100, 0x93a: 0x100, 0x93b: 0x100, 0x93c: 0x100, 0x93d: 0x100, 0x93e: 0x100, 0x93f: 0x100,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a, 0x941: 0x0a, 0x942: 0x0a, 0x943: 0x0a, 0x944: 0x0a, 0x945: 0x0a, 0x946: 0x0a, 0x947: 0x0a,\n\t0x948: 0x0a, 0x949: 0x0a, 0x94a: 0x0a, 0x94b: 0x0a, 0x94c: 0x0a, 0x94d: 0x0a, 0x94e: 0x0a, 0x94f: 0x0a,\n\t0x950: 0x0a, 0x951: 0x0a, 0x952: 0x0a, 0x953: 0x0a, 0x954: 0x0a, 0x955: 0x0a, 0x956: 0x0a, 0x957: 0x0a,\n\t0x958: 0x0a, 0x959: 0x0a, 0x95a: 0x0a, 0x95b: 0x0a, 0x95c: 0x0a, 0x95d: 0x0a, 0x95e: 0x0a, 0x95f: 0x0a,\n\t0x960: 0x22, 0x961: 0x0a, 0x962: 0x0a, 0x963: 0x0a, 0x964: 0x0a, 0x965: 0x0a, 0x966: 0x0a, 0x967: 0x0a,\n\t0x968: 0x0a, 0x969: 0x0a, 0x96a: 0x0a, 0x96b: 0x0a, 0x96c: 0x0a, 0x96d: 0x0a, 0x96e: 0x0a, 0x96f: 0x0a,\n\t0x970: 0x0a, 0x971: 0x0a, 0x972: 0x0a, 0x973: 0x0a, 0x974: 0x0a, 0x975: 0x0a, 0x976: 0x0a, 0x977: 0x0a,\n\t0x978: 0x0a, 0x979: 0x0a, 0x97a: 0x0a, 0x97b: 0x0a, 0x97c: 0x0a, 0x97d: 0x0a, 0x97e: 0x0a, 0x97f: 0x0a,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0a, 0x981: 0x0a, 0x982: 0x0a, 0x983: 0x0a, 0x984: 0x0a, 0x985: 0x0a, 0x986: 0x0a, 0x987: 0x0a,\n\t0x988: 0x0a, 0x989: 0x0a, 0x98a: 0x0a, 0x98b: 0x0a, 0x98c: 0x0a, 0x98d: 0x0a, 0x98e: 0x0a, 0x98f: 0x0a,\n}\n\n// idnaSparseOffset: 303 entries, 606 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x7e, 0x87, 0x97, 0xa6, 0xb1, 0xbe, 0xcf, 0xd9, 0xe0, 0xed, 0xfe, 0x105, 0x110, 0x11f, 0x12d, 0x137, 0x139, 0x13e, 0x141, 0x144, 0x146, 0x152, 0x15d, 0x165, 0x16b, 0x171, 0x176, 0x17b, 0x17e, 0x182, 0x188, 0x18d, 0x198, 0x1a2, 0x1a8, 0x1b9, 0x1c4, 0x1c7, 0x1cf, 0x1d2, 0x1df, 0x1e7, 0x1eb, 0x1f2, 0x1fa, 0x20a, 0x216, 0x219, 0x223, 0x22f, 0x23b, 0x247, 0x24f, 0x254, 0x261, 0x272, 0x27d, 0x282, 0x28b, 0x293, 0x299, 0x29e, 0x2a1, 0x2a5, 0x2ab, 0x2af, 0x2b3, 0x2b7, 0x2bc, 0x2c4, 0x2cb, 0x2d6, 0x2e0, 0x2e4, 0x2e7, 0x2ed, 0x2f1, 0x2f3, 0x2f6, 0x2f8, 0x2fb, 0x305, 0x308, 0x317, 0x31b, 0x31f, 0x321, 0x32a, 0x32e, 0x333, 0x338, 0x33e, 0x34e, 0x354, 0x358, 0x367, 0x36c, 0x374, 0x37e, 0x389, 0x391, 0x3a2, 0x3ab, 0x3bb, 0x3c8, 0x3d4, 0x3d9, 0x3e6, 0x3ea, 0x3ef, 0x3f1, 0x3f3, 0x3f7, 0x3f9, 0x3fd, 0x406, 0x40c, 0x410, 0x420, 0x42a, 0x42f, 0x432, 0x438, 0x43f, 0x444, 0x448, 0x44e, 0x453, 0x45c, 0x461, 0x467, 0x46e, 0x475, 0x47c, 0x480, 0x483, 0x488, 0x494, 0x49a, 0x49f, 0x4a6, 0x4ae, 0x4b3, 0x4b7, 0x4c7, 0x4ce, 0x4d2, 0x4d6, 0x4dd, 0x4df, 0x4e2, 0x4e5, 0x4e9, 0x4f2, 0x4f6, 0x4fe, 0x501, 0x509, 0x514, 0x523, 0x52f, 0x535, 0x542, 0x54e, 0x556, 0x55f, 0x56a, 0x571, 0x580, 0x58d, 0x591, 0x59e, 0x5a7, 0x5ab, 0x5ba, 0x5c2, 0x5cd, 0x5d6, 0x5dc, 0x5e4, 0x5ed, 0x5f9, 0x5fc, 0x608, 0x60b, 0x614, 0x617, 0x61c, 0x625, 0x62a, 0x637, 0x642, 0x64b, 0x656, 0x659, 0x65c, 0x666, 0x66f, 0x67b, 0x688, 0x695, 0x6a3, 0x6aa, 0x6b5, 0x6bc, 0x6c0, 0x6c4, 0x6c7, 0x6cc, 0x6cf, 0x6d2, 0x6d6, 0x6d9, 0x6de, 0x6e5, 0x6e8, 0x6f0, 0x6f4, 0x6ff, 0x702, 0x705, 0x708, 0x70e, 0x714, 0x71d, 0x720, 0x723, 0x726, 0x72e, 0x733, 0x73c, 0x73f, 0x744, 0x74e, 0x752, 0x756, 0x759, 0x75c, 0x760, 0x76f, 0x77b, 0x77f, 0x784, 0x789, 0x78e, 0x792, 0x797, 0x7a0, 0x7a5, 0x7a9, 0x7af, 0x7b5, 0x7ba, 0x7c0, 0x7c6, 0x7d0, 0x7d6, 0x7df, 0x7e2, 0x7e5, 0x7e9, 0x7ed, 0x7f1, 0x7f7, 0x7fd, 0x802, 0x805, 0x815, 0x81c, 0x820, 0x827, 0x82b, 0x831, 0x838, 0x83f, 0x845, 0x84e, 0x852, 0x860, 0x863, 0x866, 0x86a, 0x86e, 0x871, 0x875, 0x878, 0x87d, 0x87f, 0x881}\n\n// idnaSparseValues: 2180 entries, 8720 bytes\nvar idnaSparseValues = [2180]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x00a9, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x00b1, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00b9, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00c1, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00c9, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0131, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0a08, lo: 0x80, hi: 0x88},\n\t{value: 0x0808, lo: 0x89, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xe, offset 0x7e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x97\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x11, offset 0xa6\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x14, offset 0xcf\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x01f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x15, offset 0xd9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x16, offset 0xe0\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0201, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0209, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x17, offset 0xed\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x18, offset 0xfe\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x19, offset 0x105\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1a, offset 0x110\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1b, offset 0x11f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1c, offset 0x12d\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1d, offset 0x137\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1e, offset 0x139\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x1f, offset 0x13e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x20, offset 0x141\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x21, offset 0x144\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x22, offset 0x146\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x24, offset 0x15d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x25, offset 0x165\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x16b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x27, offset 0x171\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x28, offset 0x176\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x29, offset 0x17b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2a, offset 0x17e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2b, offset 0x182\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2c, offset 0x188\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2d, offset 0x18d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x3808, lo: 0x95, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3808, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2e, offset 0x198\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x30, offset 0x1a8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x31, offset 0x1b9\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x33c0, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x32, offset 0x1c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x33, offset 0x1c7\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x34, offset 0x1cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x35, offset 0x1d2\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x36, offset 0x1df\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x37, offset 0x1e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x38, offset 0x1eb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x39, offset 0x1f2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fa\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3b, offset 0x20a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x3308, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0xbf},\n\t// Block 0x3d, offset 0x219\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3e, offset 0x223\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x22f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x40, offset 0x23b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x41, offset 0x247\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x42, offset 0x24f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x43, offset 0x254\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x02a9, lo: 0x80, hi: 0x80},\n\t{value: 0x02b1, lo: 0x81, hi: 0x81},\n\t{value: 0x02b9, lo: 0x82, hi: 0x82},\n\t{value: 0x02c1, lo: 0x83, hi: 0x83},\n\t{value: 0x02c9, lo: 0x84, hi: 0x85},\n\t{value: 0x02d1, lo: 0x86, hi: 0x86},\n\t{value: 0x02d9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x44, offset 0x261\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x45, offset 0x272\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x46, offset 0x27d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x47, offset 0x282\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x0851, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x48, offset 0x28b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0859, lo: 0xac, hi: 0xac},\n\t{value: 0x0861, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x0869, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0871, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x293\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4a, offset 0x299\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4b, offset 0x29e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0929, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0932, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x0939, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2af\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x50, offset 0x2b3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0xbf},\n\t// Block 0x51, offset 0x2b7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x52, offset 0x2bc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x53, offset 0x2c4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x54, offset 0x2cb\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x55, offset 0x2d6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x56, offset 0x2e0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x57, offset 0x2e4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x58, offset 0x2e7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2ed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f1\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5b, offset 0x2f3\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5c, offset 0x2f6\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x2f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x5e, offset 0x2fb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x096a, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0972, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0979, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x5f, offset 0x305\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0981, lo: 0xbf, hi: 0xbf},\n\t// Block 0x60, offset 0x308\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x61, offset 0x317\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x62, offset 0x31b\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x098a, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0a82, lo: 0xa0, hi: 0xbf},\n\t// Block 0x63, offset 0x31f\n\t{value: 0x0008, lo: 0x01},\n\t{value: 0x0d19, lo: 0x80, hi: 0xbf},\n\t// Block 0x64, offset 0x321\n\t{value: 0x0008, lo: 0x08},\n\t{value: 0x0f19, lo: 0x80, hi: 0xb0},\n\t{value: 0x4045, lo: 0xb1, hi: 0xb1},\n\t{value: 0x10a1, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4065, lo: 0xb4, hi: 0xb4},\n\t{value: 0x10b1, lo: 0xb5, hi: 0xb7},\n\t{value: 0x4085, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4085, lo: 0xb9, hi: 0xb9},\n\t{value: 0x10c9, lo: 0xba, hi: 0xbf},\n\t// Block 0x65, offset 0x32a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x66, offset 0x32e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x67, offset 0x333\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x68, offset 0x338\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x69, offset 0x33e\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x3b08, lo: 0xac, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6a, offset 0x34e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x354\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6c, offset 0x358\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6d, offset 0x367\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x6e, offset 0x36c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x6f, offset 0x374\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x70, offset 0x37e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x389\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x72, offset 0x391\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x73, offset 0x3a2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x74, offset 0x3ab\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3bb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x76, offset 0x3c8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0941, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa8},\n\t{value: 0x13f9, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x77, offset 0x3d4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x78, offset 0x3d9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x79, offset 0x3e6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ea\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7b, offset 0x3ef\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f1\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7d, offset 0x3f3\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x7e, offset 0x3f7\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x3f9\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x80, offset 0x3fd\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x1401, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x81, offset 0x406\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x82, offset 0x40c\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1751, lo: 0x80, hi: 0x82},\n\t{value: 0x1741, lo: 0x83, hi: 0x83},\n\t{value: 0x1769, lo: 0x84, hi: 0xbf},\n\t// Block 0x83, offset 0x410\n\t{value: 0x0008, lo: 0x0f},\n\t{value: 0x1d81, lo: 0x80, hi: 0x83},\n\t{value: 0x1d99, lo: 0x84, hi: 0x85},\n\t{value: 0x1da1, lo: 0x86, hi: 0x87},\n\t{value: 0x1da9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x1de9, lo: 0x92, hi: 0x97},\n\t{value: 0x1e11, lo: 0x98, hi: 0x9c},\n\t{value: 0x1e31, lo: 0x9d, hi: 0xb3},\n\t{value: 0x1d71, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1d81, lo: 0xb5, hi: 0xb5},\n\t{value: 0x1ee9, lo: 0xb6, hi: 0xbb},\n\t{value: 0x1f09, lo: 0xbc, hi: 0xbc},\n\t{value: 0x1ef9, lo: 0xbd, hi: 0xbd},\n\t{value: 0x1f19, lo: 0xbe, hi: 0xbf},\n\t// Block 0x84, offset 0x420\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x85, offset 0x42a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x86, offset 0x42f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x432\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x88, offset 0x438\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x89, offset 0x43f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8a, offset 0x444\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8b, offset 0x448\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8c, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8d, offset 0x453\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8e, offset 0x45c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x461\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x90, offset 0x467\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x91, offset 0x46e\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x92, offset 0x475\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x93, offset 0x47c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x480\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x95, offset 0x483\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x96, offset 0x488\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x97, offset 0x494\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x49a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x49f\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b7\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0x9f, offset 0x4ce\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa2, offset 0x4dd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa3, offset 0x4df\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa5, offset 0x4e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa6, offset 0x4e9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xac},\n\t{value: 0x0818, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xa9, offset 0x4fe\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbf},\n\t// Block 0xaa, offset 0x501\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xab, offset 0x509\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xbf},\n\t// Block 0xac, offset 0x514\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0a08, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0a08, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xba},\n\t{value: 0x0a08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0c08, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0a08, lo: 0xbe, hi: 0xbf},\n\t// Block 0xad, offset 0x523\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x81},\n\t{value: 0x0c08, lo: 0x82, hi: 0x83},\n\t{value: 0x0a08, lo: 0x84, hi: 0x84},\n\t{value: 0x0818, lo: 0x85, hi: 0x88},\n\t{value: 0x0c18, lo: 0x89, hi: 0x89},\n\t{value: 0x0a18, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0918, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xae, offset 0x52f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xaf, offset 0x535\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3b08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb0, offset 0x542\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb1, offset 0x54e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb2, offset 0x556\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb3, offset 0x55f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb4, offset 0x56a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb5, offset 0x571\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x3008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb6, offset 0x580\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb7, offset 0x58d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0xbf},\n\t// Block 0xb8, offset 0x591\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb9, offset 0x59e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xba, offset 0x5a7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbb, offset 0x5ab\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xbc, offset 0x5ba\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5c2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbe, offset 0x5cd\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5d6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xc0, offset 0x5dc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc1, offset 0x5e4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc2, offset 0x5ed\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5f9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc4, offset 0x5fc\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc5, offset 0x608\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xc6, offset 0x60b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc7, offset 0x614\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc8, offset 0x617\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc9, offset 0x61c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xca, offset 0x625\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcb, offset 0x62a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xcc, offset 0x637\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcd, offset 0x642\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xce, offset 0x64b\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xcf, offset 0x656\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd0, offset 0x659\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xd1, offset 0x65c\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd2, offset 0x666\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xd3, offset 0x66f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd4, offset 0x67b\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd5, offset 0x688\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd6, offset 0x695\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd7, offset 0x6a3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd8, offset 0x6aa\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0xd9, offset 0x6b5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3808, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xda, offset 0x6bc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0xdb, offset 0x6c0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xdc, offset 0x6c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xdd, offset 0x6c7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xde, offset 0x6cc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xdf, offset 0x6cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbf},\n\t// Block 0xe0, offset 0x6d2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe1, offset 0x6d6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe2, offset 0x6d9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xe3, offset 0x6de\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x6e5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xe5, offset 0x6e8\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe6, offset 0x6f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xe7, offset 0x6f4\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe8, offset 0x6ff\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xe9, offset 0x702\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xea, offset 0x705\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xeb, offset 0x708\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xec, offset 0x70e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xed, offset 0x714\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xee, offset 0x71d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xef, offset 0x720\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xf0, offset 0x723\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xf1, offset 0x726\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf2, offset 0x72e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xf3, offset 0x733\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x94},\n\t{value: 0x0008, lo: 0x95, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf4, offset 0x73c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xf5, offset 0x73f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xf6, offset 0x744\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xf7, offset 0x74e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf8, offset 0x752\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf9, offset 0x756\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xfa, offset 0x759\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfb, offset 0x75c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xfc, offset 0x760\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x2379, lo: 0x9e, hi: 0x9e},\n\t{value: 0x2381, lo: 0x9f, hi: 0x9f},\n\t{value: 0x2389, lo: 0xa0, hi: 0xa0},\n\t{value: 0x2391, lo: 0xa1, hi: 0xa1},\n\t{value: 0x2399, lo: 0xa2, hi: 0xa2},\n\t{value: 0x23a1, lo: 0xa3, hi: 0xa3},\n\t{value: 0x23a9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xfd, offset 0x76f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0x23b1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x23b9, lo: 0xbc, hi: 0xbc},\n\t{value: 0x23c1, lo: 0xbd, hi: 0xbd},\n\t{value: 0x23c9, lo: 0xbe, hi: 0xbe},\n\t{value: 0x23d1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfe, offset 0x77b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x23d9, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xff, offset 0x77f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0x100, offset 0x784\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x101, offset 0x789\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x102, offset 0x78e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x103, offset 0x792\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x104, offset 0x797\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x105, offset 0x7a0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0x106, offset 0x7a5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x107, offset 0x7a9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x108, offset 0x7af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x109, offset 0x7b5\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x3308, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0x10a, offset 0x7ba\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x10b, offset 0x7c0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x10c, offset 0x7c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x10d, offset 0x7d0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x10e, offset 0x7d6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10f, offset 0x7df\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0x110, offset 0x7e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x111, offset 0x7e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x112, offset 0x7e9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x113, offset 0x7ed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x114, offset 0x7f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x115, offset 0x7f7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x116, offset 0x7fd\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x2709, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x117, offset 0x802\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x118, offset 0x805\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x2889, lo: 0x80, hi: 0x80},\n\t{value: 0x2891, lo: 0x81, hi: 0x81},\n\t{value: 0x2899, lo: 0x82, hi: 0x82},\n\t{value: 0x28a1, lo: 0x83, hi: 0x83},\n\t{value: 0x28a9, lo: 0x84, hi: 0x84},\n\t{value: 0x28b1, lo: 0x85, hi: 0x85},\n\t{value: 0x28b9, lo: 0x86, hi: 0x86},\n\t{value: 0x28c1, lo: 0x87, hi: 0x87},\n\t{value: 0x28c9, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x28d1, lo: 0x90, hi: 0x90},\n\t{value: 0x28d9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x119, offset 0x815\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x11a, offset 0x81c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11b, offset 0x820\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x11c, offset 0x827\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x11d, offset 0x82b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x11e, offset 0x831\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x11f, offset 0x838\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x120, offset 0x83f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x121, offset 0x845\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x122, offset 0x84e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0xbf},\n\t// Block 0x123, offset 0x852\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xaf},\n\t{value: 0x06e1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0049, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0031, lo: 0xb3, hi: 0xb3},\n\t{value: 0x06e9, lo: 0xb4, hi: 0xb4},\n\t{value: 0x06f1, lo: 0xb5, hi: 0xb5},\n\t{value: 0x06f9, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0701, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0709, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0711, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x124, offset 0x860\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x125, offset 0x863\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x126, offset 0x866\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x127, offset 0x86a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x128, offset 0x86e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x129, offset 0x871\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbf},\n\t// Block 0x12a, offset 0x875\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x12b, offset 0x878\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x12c, offset 0x87d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x12d, offset 0x87f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x12e, offset 0x881\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 46723 bytes (45KiB); checksum: 4CF3143A\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 28600 bytes (27.93 KiB). Checksum: 95575047b5d8fff.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 124:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 124\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 126 blocks, 8064 entries, 16128 bytes\n// The third block is the zero block.\nvar idnaValues = [8064]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3008, 0x541: 0x3308, 0x542: 0x3308, 0x543: 0x3308, 0x544: 0x3308, 0x545: 0x3308,\n\t0x546: 0x3308, 0x547: 0x3308, 0x548: 0x3308, 0x549: 0x3008, 0x54a: 0x3008, 0x54b: 0x3008,\n\t0x54c: 0x3008, 0x54d: 0x3b08, 0x54e: 0x3008, 0x54f: 0x3008, 0x550: 0x0008, 0x551: 0x3308,\n\t0x552: 0x3308, 0x553: 0x3308, 0x554: 0x3308, 0x555: 0x3308, 0x556: 0x3308, 0x557: 0x3308,\n\t0x558: 0x04c9, 0x559: 0x0501, 0x55a: 0x0539, 0x55b: 0x0571, 0x55c: 0x05a9, 0x55d: 0x05e1,\n\t0x55e: 0x0619, 0x55f: 0x0651, 0x560: 0x0008, 0x561: 0x0008, 0x562: 0x3308, 0x563: 0x3308,\n\t0x564: 0x0018, 0x565: 0x0018, 0x566: 0x0008, 0x567: 0x0008, 0x568: 0x0008, 0x569: 0x0008,\n\t0x56a: 0x0008, 0x56b: 0x0008, 0x56c: 0x0008, 0x56d: 0x0008, 0x56e: 0x0008, 0x56f: 0x0008,\n\t0x570: 0x0018, 0x571: 0x0008, 0x572: 0x0008, 0x573: 0x0008, 0x574: 0x0008, 0x575: 0x0008,\n\t0x576: 0x0008, 0x577: 0x0008, 0x578: 0x0008, 0x579: 0x0008, 0x57a: 0x0008, 0x57b: 0x0008,\n\t0x57c: 0x0008, 0x57d: 0x0008, 0x57e: 0x0008, 0x57f: 0x0008,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0008, 0x581: 0x3308, 0x582: 0x3008, 0x583: 0x3008, 0x584: 0x0040, 0x585: 0x0008,\n\t0x586: 0x0008, 0x587: 0x0008, 0x588: 0x0008, 0x589: 0x0008, 0x58a: 0x0008, 0x58b: 0x0008,\n\t0x58c: 0x0008, 0x58d: 0x0040, 0x58e: 0x0040, 0x58f: 0x0008, 0x590: 0x0008, 0x591: 0x0040,\n\t0x592: 0x0040, 0x593: 0x0008, 0x594: 0x0008, 0x595: 0x0008, 0x596: 0x0008, 0x597: 0x0008,\n\t0x598: 0x0008, 0x599: 0x0008, 0x59a: 0x0008, 0x59b: 0x0008, 0x59c: 0x0008, 0x59d: 0x0008,\n\t0x59e: 0x0008, 0x59f: 0x0008, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x0008, 0x5a3: 0x0008,\n\t0x5a4: 0x0008, 0x5a5: 0x0008, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0040,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0008, 0x5b1: 0x0040, 0x5b2: 0x0008, 0x5b3: 0x0040, 0x5b4: 0x0040, 0x5b5: 0x0040,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0040, 0x5bb: 0x0040,\n\t0x5bc: 0x3308, 0x5bd: 0x0008, 0x5be: 0x3008, 0x5bf: 0x3008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x0040,\n\t0x5c6: 0x0040, 0x5c7: 0x3008, 0x5c8: 0x3008, 0x5c9: 0x0040, 0x5ca: 0x0040, 0x5cb: 0x3008,\n\t0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x0008, 0x5cf: 0x0040, 0x5d0: 0x0040, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0040, 0x5d4: 0x0040, 0x5d5: 0x0040, 0x5d6: 0x0040, 0x5d7: 0x3008,\n\t0x5d8: 0x0040, 0x5d9: 0x0040, 0x5da: 0x0040, 0x5db: 0x0040, 0x5dc: 0x0689, 0x5dd: 0x06c1,\n\t0x5de: 0x0040, 0x5df: 0x06f9, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,\n\t0x5e4: 0x0040, 0x5e5: 0x0040, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0008, 0x5f2: 0x0018, 0x5f3: 0x0018, 0x5f4: 0x0018, 0x5f5: 0x0018,\n\t0x5f6: 0x0018, 0x5f7: 0x0018, 0x5f8: 0x0018, 0x5f9: 0x0018, 0x5fa: 0x0018, 0x5fb: 0x0018,\n\t0x5fc: 0x0040, 0x5fd: 0x0040, 0x5fe: 0x0040, 0x5ff: 0x0040,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0040, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,\n\t0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0040,\n\t0x60c: 0x0040, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,\n\t0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,\n\t0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,\n\t0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0731, 0x634: 0x0040, 0x635: 0x0008,\n\t0x636: 0x0769, 0x637: 0x0040, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,\n\t0x63c: 0x3308, 0x63d: 0x0040, 0x63e: 0x3008, 0x63f: 0x3008,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x0040, 0x644: 0x0040, 0x645: 0x0040,\n\t0x646: 0x0040, 0x647: 0x3308, 0x648: 0x3308, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3308,\n\t0x64c: 0x3308, 0x64d: 0x3b08, 0x64e: 0x0040, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x3308,\n\t0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x0040,\n\t0x658: 0x0040, 0x659: 0x07a1, 0x65a: 0x07d9, 0x65b: 0x0811, 0x65c: 0x0008, 0x65d: 0x0040,\n\t0x65e: 0x0849, 0x65f: 0x0040, 0x660: 0x0040, 0x661: 0x0040, 0x662: 0x0040, 0x663: 0x0040,\n\t0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x3308, 0x671: 0x3308, 0x672: 0x0008, 0x673: 0x0008, 0x674: 0x0008, 0x675: 0x3308,\n\t0x676: 0x0040, 0x677: 0x0040, 0x678: 0x0040, 0x679: 0x0040, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x0040, 0x67d: 0x0040, 0x67e: 0x0040, 0x67f: 0x0040,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,\n\t0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0008,\n\t0x68c: 0x0008, 0x68d: 0x0008, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0008,\n\t0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,\n\t0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,\n\t0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,\n\t0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0040, 0x6b5: 0x0008,\n\t0x6b6: 0x0008, 0x6b7: 0x0008, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x3308, 0x6bd: 0x0008, 0x6be: 0x3008, 0x6bf: 0x3008,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3308, 0x6c4: 0x3308, 0x6c5: 0x3308,\n\t0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x3008, 0x6ca: 0x0040, 0x6cb: 0x3008,\n\t0x6cc: 0x3008, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0008, 0x6d1: 0x0040,\n\t0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,\n\t0x6d8: 0x0040, 0x6d9: 0x0040, 0x6da: 0x0040, 0x6db: 0x0040, 0x6dc: 0x0040, 0x6dd: 0x0040,\n\t0x6de: 0x0040, 0x6df: 0x0040, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x3308, 0x6e3: 0x3308,\n\t0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0018, 0x6f1: 0x0018, 0x6f2: 0x0040, 0x6f3: 0x0040, 0x6f4: 0x0040, 0x6f5: 0x0040,\n\t0x6f6: 0x0040, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3008, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,\n\t0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,\n\t0x70c: 0x0008, 0x70d: 0x0040, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,\n\t0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,\n\t0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,\n\t0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,\n\t0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,\n\t0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x0040,\n\t0x746: 0x0040, 0x747: 0x3008, 0x748: 0x3008, 0x749: 0x0040, 0x74a: 0x0040, 0x74b: 0x3008,\n\t0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0040, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x3308, 0x757: 0x3008,\n\t0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0881, 0x75d: 0x08b9,\n\t0x75e: 0x0040, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,\n\t0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0018, 0x771: 0x0008, 0x772: 0x0018, 0x773: 0x0018, 0x774: 0x0018, 0x775: 0x0018,\n\t0x776: 0x0018, 0x777: 0x0018, 0x778: 0x0040, 0x779: 0x0040, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x0040, 0x77d: 0x0040, 0x77e: 0x0040, 0x77f: 0x0040,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0040, 0x781: 0x0040, 0x782: 0x3308, 0x783: 0x0008, 0x784: 0x0040, 0x785: 0x0008,\n\t0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0040,\n\t0x78c: 0x0040, 0x78d: 0x0040, 0x78e: 0x0008, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,\n\t0x792: 0x0008, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0040, 0x797: 0x0040,\n\t0x798: 0x0040, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0040, 0x79c: 0x0008, 0x79d: 0x0040,\n\t0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0040, 0x7a1: 0x0040, 0x7a2: 0x0040, 0x7a3: 0x0008,\n\t0x7a4: 0x0008, 0x7a5: 0x0040, 0x7a6: 0x0040, 0x7a7: 0x0040, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0040, 0x7ac: 0x0040, 0x7ad: 0x0040, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0008, 0x7b1: 0x0008, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0008, 0x7b5: 0x0008,\n\t0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x3008, 0x7bf: 0x3008,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3308, 0x7c1: 0x3008, 0x7c2: 0x3008, 0x7c3: 0x3008, 0x7c4: 0x3008, 0x7c5: 0x0040,\n\t0x7c6: 0x3308, 0x7c7: 0x3308, 0x7c8: 0x3308, 0x7c9: 0x0040, 0x7ca: 0x3308, 0x7cb: 0x3308,\n\t0x7cc: 0x3308, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,\n\t0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x0040,\n\t0x7d8: 0x0008, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0040, 0x7dd: 0x0040,\n\t0x7de: 0x0040, 0x7df: 0x0040, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,\n\t0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0040, 0x7f1: 0x0040, 0x7f2: 0x0040, 0x7f3: 0x0040, 0x7f4: 0x0040, 0x7f5: 0x0040,\n\t0x7f6: 0x0040, 0x7f7: 0x0040, 0x7f8: 0x0018, 0x7f9: 0x0018, 0x7fa: 0x0018, 0x7fb: 0x0018,\n\t0x7fc: 0x0018, 0x7fd: 0x0018, 0x7fe: 0x0018, 0x7ff: 0x0018,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0008, 0x801: 0x3308, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x0040, 0x805: 0x0008,\n\t0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0008,\n\t0x80c: 0x0008, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,\n\t0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0008, 0x817: 0x0008,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0008, 0x81c: 0x0008, 0x81d: 0x0008,\n\t0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x0008, 0x823: 0x0008,\n\t0x824: 0x0008, 0x825: 0x0008, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0040,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0040, 0x835: 0x0008,\n\t0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,\n\t0x83c: 0x3308, 0x83d: 0x0008, 0x83e: 0x3008, 0x83f: 0x3308,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x3008, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,\n\t0x846: 0x3308, 0x847: 0x3008, 0x848: 0x3008, 0x849: 0x0040, 0x84a: 0x3008, 0x84b: 0x3008,\n\t0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,\n\t0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3008, 0x856: 0x3008, 0x857: 0x0040,\n\t0x858: 0x0040, 0x859: 0x0040, 0x85a: 0x0040, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0040,\n\t0x85e: 0x0008, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,\n\t0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0040, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,\n\t0x876: 0x0040, 0x877: 0x0040, 0x878: 0x0040, 0x879: 0x0040, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x0040, 0x87d: 0x0040, 0x87e: 0x0040, 0x87f: 0x0040,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3308, 0x882: 0x3308, 0x883: 0x3308, 0x884: 0x3308, 0x885: 0x0040,\n\t0x886: 0x3008, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3008, 0x88d: 0x3b08, 0x88e: 0x0008, 0x88f: 0x0018, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x3008,\n\t0x898: 0x0018, 0x899: 0x0018, 0x89a: 0x0018, 0x89b: 0x0018, 0x89c: 0x0018, 0x89d: 0x0018,\n\t0x89e: 0x0018, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0018, 0x8b1: 0x0018, 0x8b2: 0x0018, 0x8b3: 0x0018, 0x8b4: 0x0018, 0x8b5: 0x0018,\n\t0x8b6: 0x0018, 0x8b7: 0x0018, 0x8b8: 0x0018, 0x8b9: 0x0018, 0x8ba: 0x0008, 0x8bb: 0x0008,\n\t0x8bc: 0x0008, 0x8bd: 0x0008, 0x8be: 0x0008, 0x8bf: 0x0008,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0040, 0x8c1: 0x0008, 0x8c2: 0x0008, 0x8c3: 0x0040, 0x8c4: 0x0008, 0x8c5: 0x0040,\n\t0x8c6: 0x0040, 0x8c7: 0x0008, 0x8c8: 0x0008, 0x8c9: 0x0040, 0x8ca: 0x0008, 0x8cb: 0x0040,\n\t0x8cc: 0x0040, 0x8cd: 0x0008, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x0008,\n\t0x8d8: 0x0040, 0x8d9: 0x0008, 0x8da: 0x0008, 0x8db: 0x0008, 0x8dc: 0x0008, 0x8dd: 0x0008,\n\t0x8de: 0x0008, 0x8df: 0x0008, 0x8e0: 0x0040, 0x8e1: 0x0008, 0x8e2: 0x0008, 0x8e3: 0x0008,\n\t0x8e4: 0x0040, 0x8e5: 0x0008, 0x8e6: 0x0040, 0x8e7: 0x0008, 0x8e8: 0x0040, 0x8e9: 0x0040,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0040, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0008, 0x8f1: 0x3308, 0x8f2: 0x0008, 0x8f3: 0x0929, 0x8f4: 0x3308, 0x8f5: 0x3308,\n\t0x8f6: 0x3308, 0x8f7: 0x3308, 0x8f8: 0x3308, 0x8f9: 0x3308, 0x8fa: 0x0040, 0x8fb: 0x3308,\n\t0x8fc: 0x3308, 0x8fd: 0x0008, 0x8fe: 0x0040, 0x8ff: 0x0040,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0008, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x09d1, 0x904: 0x0008, 0x905: 0x0008,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0040, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0008,\n\t0x90c: 0x0008, 0x90d: 0x0a09, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0a41, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0a79,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0ab1, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0008, 0x925: 0x0008, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0ae9,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0040, 0x92e: 0x0040, 0x92f: 0x0040,\n\t0x930: 0x0040, 0x931: 0x3308, 0x932: 0x3308, 0x933: 0x0b21, 0x934: 0x3308, 0x935: 0x0b59,\n\t0x936: 0x0b91, 0x937: 0x0bc9, 0x938: 0x0c19, 0x939: 0x0c51, 0x93a: 0x3308, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x3308, 0x93e: 0x3308, 0x93f: 0x3008,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x3308, 0x941: 0x0ca1, 0x942: 0x3308, 0x943: 0x3308, 0x944: 0x3b08, 0x945: 0x0018,\n\t0x946: 0x3308, 0x947: 0x3308, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x3308, 0x94e: 0x3308, 0x94f: 0x3308, 0x950: 0x3308, 0x951: 0x3308,\n\t0x952: 0x3308, 0x953: 0x0cd9, 0x954: 0x3308, 0x955: 0x3308, 0x956: 0x3308, 0x957: 0x3308,\n\t0x958: 0x0040, 0x959: 0x3308, 0x95a: 0x3308, 0x95b: 0x3308, 0x95c: 0x3308, 0x95d: 0x0d11,\n\t0x95e: 0x3308, 0x95f: 0x3308, 0x960: 0x3308, 0x961: 0x3308, 0x962: 0x0d49, 0x963: 0x3308,\n\t0x964: 0x3308, 0x965: 0x3308, 0x966: 0x3308, 0x967: 0x0d81, 0x968: 0x3308, 0x969: 0x3308,\n\t0x96a: 0x3308, 0x96b: 0x3308, 0x96c: 0x0db9, 0x96d: 0x3308, 0x96e: 0x3308, 0x96f: 0x3308,\n\t0x970: 0x3308, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x3308, 0x974: 0x3308, 0x975: 0x3308,\n\t0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x0df1, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x0040, 0x97e: 0x0018, 0x97f: 0x0018,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0008, 0x984: 0x0008, 0x985: 0x0008,\n\t0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x0008, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,\n\t0x992: 0x0008, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0008,\n\t0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0008, 0x99d: 0x0008,\n\t0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,\n\t0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0008,\n\t0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0039, 0x9ad: 0x0ed1, 0x9ae: 0x0ee9, 0x9af: 0x0008,\n\t0x9b0: 0x0ef9, 0x9b1: 0x0f09, 0x9b2: 0x0f19, 0x9b3: 0x0f31, 0x9b4: 0x0249, 0x9b5: 0x0f41,\n\t0x9b6: 0x0259, 0x9b7: 0x0f51, 0x9b8: 0x0359, 0x9b9: 0x0f61, 0x9ba: 0x0f71, 0x9bb: 0x0008,\n\t0x9bc: 0x00d9, 0x9bd: 0x0f81, 0x9be: 0x0f99, 0x9bf: 0x0269,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0fa9, 0x9c1: 0x0fb9, 0x9c2: 0x0279, 0x9c3: 0x0039, 0x9c4: 0x0fc9, 0x9c5: 0x0fe1,\n\t0x9c6: 0x059d, 0x9c7: 0x0ee9, 0x9c8: 0x0ef9, 0x9c9: 0x0f09, 0x9ca: 0x0ff9, 0x9cb: 0x1011,\n\t0x9cc: 0x1029, 0x9cd: 0x0f31, 0x9ce: 0x0008, 0x9cf: 0x0f51, 0x9d0: 0x0f61, 0x9d1: 0x1041,\n\t0x9d2: 0x00d9, 0x9d3: 0x1059, 0x9d4: 0x05b5, 0x9d5: 0x05b5, 0x9d6: 0x0f99, 0x9d7: 0x0fa9,\n\t0x9d8: 0x0fb9, 0x9d9: 0x059d, 0x9da: 0x1071, 0x9db: 0x1089, 0x9dc: 0x05cd, 0x9dd: 0x1099,\n\t0x9de: 0x10b1, 0x9df: 0x10c9, 0x9e0: 0x10e1, 0x9e1: 0x10f9, 0x9e2: 0x0f41, 0x9e3: 0x0269,\n\t0x9e4: 0x0fb9, 0x9e5: 0x1089, 0x9e6: 0x1099, 0x9e7: 0x10b1, 0x9e8: 0x1111, 0x9e9: 0x10e1,\n\t0x9ea: 0x10f9, 0x9eb: 0x0008, 0x9ec: 0x0008, 0x9ed: 0x0008, 0x9ee: 0x0008, 0x9ef: 0x0008,\n\t0x9f0: 0x0008, 0x9f1: 0x0008, 0x9f2: 0x0008, 0x9f3: 0x0008, 0x9f4: 0x0008, 0x9f5: 0x0008,\n\t0x9f6: 0x0008, 0x9f7: 0x0008, 0x9f8: 0x1129, 0x9f9: 0x0008, 0x9fa: 0x0008, 0x9fb: 0x0008,\n\t0x9fc: 0x0008, 0x9fd: 0x0008, 0x9fe: 0x0008, 0x9ff: 0x0008,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,\n\t0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,\n\t0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,\n\t0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,\n\t0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x1141, 0xa1c: 0x1159, 0xa1d: 0x1169,\n\t0xa1e: 0x1181, 0xa1f: 0x1029, 0xa20: 0x1199, 0xa21: 0x11a9, 0xa22: 0x11c1, 0xa23: 0x11d9,\n\t0xa24: 0x11f1, 0xa25: 0x1209, 0xa26: 0x1221, 0xa27: 0x05e5, 0xa28: 0x1239, 0xa29: 0x1251,\n\t0xa2a: 0xe17d, 0xa2b: 0x1269, 0xa2c: 0x1281, 0xa2d: 0x1299, 0xa2e: 0x12b1, 0xa2f: 0x12c9,\n\t0xa30: 0x12e1, 0xa31: 0x12f9, 0xa32: 0x1311, 0xa33: 0x1329, 0xa34: 0x1341, 0xa35: 0x1359,\n\t0xa36: 0x1371, 0xa37: 0x1389, 0xa38: 0x05fd, 0xa39: 0x13a1, 0xa3a: 0x13b9, 0xa3b: 0x13d1,\n\t0xa3c: 0x13e1, 0xa3d: 0x13f9, 0xa3e: 0x1411, 0xa3f: 0x1429,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0xe00d, 0xa41: 0x0008, 0xa42: 0xe00d, 0xa43: 0x0008, 0xa44: 0xe00d, 0xa45: 0x0008,\n\t0xa46: 0xe00d, 0xa47: 0x0008, 0xa48: 0xe00d, 0xa49: 0x0008, 0xa4a: 0xe00d, 0xa4b: 0x0008,\n\t0xa4c: 0xe00d, 0xa4d: 0x0008, 0xa4e: 0xe00d, 0xa4f: 0x0008, 0xa50: 0xe00d, 0xa51: 0x0008,\n\t0xa52: 0xe00d, 0xa53: 0x0008, 0xa54: 0xe00d, 0xa55: 0x0008, 0xa56: 0xe00d, 0xa57: 0x0008,\n\t0xa58: 0xe00d, 0xa59: 0x0008, 0xa5a: 0xe00d, 0xa5b: 0x0008, 0xa5c: 0xe00d, 0xa5d: 0x0008,\n\t0xa5e: 0xe00d, 0xa5f: 0x0008, 0xa60: 0xe00d, 0xa61: 0x0008, 0xa62: 0xe00d, 0xa63: 0x0008,\n\t0xa64: 0xe00d, 0xa65: 0x0008, 0xa66: 0xe00d, 0xa67: 0x0008, 0xa68: 0xe00d, 0xa69: 0x0008,\n\t0xa6a: 0xe00d, 0xa6b: 0x0008, 0xa6c: 0xe00d, 0xa6d: 0x0008, 0xa6e: 0xe00d, 0xa6f: 0x0008,\n\t0xa70: 0xe00d, 0xa71: 0x0008, 0xa72: 0xe00d, 0xa73: 0x0008, 0xa74: 0xe00d, 0xa75: 0x0008,\n\t0xa76: 0xe00d, 0xa77: 0x0008, 0xa78: 0xe00d, 0xa79: 0x0008, 0xa7a: 0xe00d, 0xa7b: 0x0008,\n\t0xa7c: 0xe00d, 0xa7d: 0x0008, 0xa7e: 0xe00d, 0xa7f: 0x0008,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,\n\t0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0615, 0xa9b: 0x0635, 0xa9c: 0x0008, 0xa9d: 0x0008,\n\t0xa9e: 0x1441, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0008, 0xac1: 0x0008, 0xac2: 0x0008, 0xac3: 0x0008, 0xac4: 0x0008, 0xac5: 0x0008,\n\t0xac6: 0x0040, 0xac7: 0x0040, 0xac8: 0xe045, 0xac9: 0xe045, 0xaca: 0xe045, 0xacb: 0xe045,\n\t0xacc: 0xe045, 0xacd: 0xe045, 0xace: 0x0040, 0xacf: 0x0040, 0xad0: 0x0008, 0xad1: 0x0008,\n\t0xad2: 0x0008, 0xad3: 0x0008, 0xad4: 0x0008, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0040, 0xad9: 0xe045, 0xada: 0x0040, 0xadb: 0xe045, 0xadc: 0x0040, 0xadd: 0xe045,\n\t0xade: 0x0040, 0xadf: 0xe045, 0xae0: 0x0008, 0xae1: 0x0008, 0xae2: 0x0008, 0xae3: 0x0008,\n\t0xae4: 0x0008, 0xae5: 0x0008, 0xae6: 0x0008, 0xae7: 0x0008, 0xae8: 0xe045, 0xae9: 0xe045,\n\t0xaea: 0xe045, 0xaeb: 0xe045, 0xaec: 0xe045, 0xaed: 0xe045, 0xaee: 0xe045, 0xaef: 0xe045,\n\t0xaf0: 0x0008, 0xaf1: 0x1459, 0xaf2: 0x0008, 0xaf3: 0x1471, 0xaf4: 0x0008, 0xaf5: 0x1489,\n\t0xaf6: 0x0008, 0xaf7: 0x14a1, 0xaf8: 0x0008, 0xaf9: 0x14b9, 0xafa: 0x0008, 0xafb: 0x14d1,\n\t0xafc: 0x0008, 0xafd: 0x14e9, 0xafe: 0x0040, 0xaff: 0x0040,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1501, 0xb01: 0x1531, 0xb02: 0x1561, 0xb03: 0x1591, 0xb04: 0x15c1, 0xb05: 0x15f1,\n\t0xb06: 0x1621, 0xb07: 0x1651, 0xb08: 0x1501, 0xb09: 0x1531, 0xb0a: 0x1561, 0xb0b: 0x1591,\n\t0xb0c: 0x15c1, 0xb0d: 0x15f1, 0xb0e: 0x1621, 0xb0f: 0x1651, 0xb10: 0x1681, 0xb11: 0x16b1,\n\t0xb12: 0x16e1, 0xb13: 0x1711, 0xb14: 0x1741, 0xb15: 0x1771, 0xb16: 0x17a1, 0xb17: 0x17d1,\n\t0xb18: 0x1681, 0xb19: 0x16b1, 0xb1a: 0x16e1, 0xb1b: 0x1711, 0xb1c: 0x1741, 0xb1d: 0x1771,\n\t0xb1e: 0x17a1, 0xb1f: 0x17d1, 0xb20: 0x1801, 0xb21: 0x1831, 0xb22: 0x1861, 0xb23: 0x1891,\n\t0xb24: 0x18c1, 0xb25: 0x18f1, 0xb26: 0x1921, 0xb27: 0x1951, 0xb28: 0x1801, 0xb29: 0x1831,\n\t0xb2a: 0x1861, 0xb2b: 0x1891, 0xb2c: 0x18c1, 0xb2d: 0x18f1, 0xb2e: 0x1921, 0xb2f: 0x1951,\n\t0xb30: 0x0008, 0xb31: 0x0008, 0xb32: 0x1981, 0xb33: 0x19b1, 0xb34: 0x19d9, 0xb35: 0x0040,\n\t0xb36: 0x0008, 0xb37: 0x1a01, 0xb38: 0xe045, 0xb39: 0xe045, 0xb3a: 0x064d, 0xb3b: 0x1459,\n\t0xb3c: 0x19b1, 0xb3d: 0x0666, 0xb3e: 0x1a31, 0xb3f: 0x0686,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06a6, 0xb41: 0x1a4a, 0xb42: 0x1a79, 0xb43: 0x1aa9, 0xb44: 0x1ad1, 0xb45: 0x0040,\n\t0xb46: 0x0008, 0xb47: 0x1af9, 0xb48: 0x06c5, 0xb49: 0x1471, 0xb4a: 0x06dd, 0xb4b: 0x1489,\n\t0xb4c: 0x1aa9, 0xb4d: 0x1b2a, 0xb4e: 0x1b5a, 0xb4f: 0x1b8a, 0xb50: 0x0008, 0xb51: 0x0008,\n\t0xb52: 0x0008, 0xb53: 0x1bb9, 0xb54: 0x0040, 0xb55: 0x0040, 0xb56: 0x0008, 0xb57: 0x0008,\n\t0xb58: 0xe045, 0xb59: 0xe045, 0xb5a: 0x06f5, 0xb5b: 0x14a1, 0xb5c: 0x0040, 0xb5d: 0x1bd2,\n\t0xb5e: 0x1c02, 0xb5f: 0x1c32, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x1c61,\n\t0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,\n\t0xb6a: 0x070d, 0xb6b: 0x14d1, 0xb6c: 0xe04d, 0xb6d: 0x1c7a, 0xb6e: 0x03d2, 0xb6f: 0x1caa,\n\t0xb70: 0x0040, 0xb71: 0x0040, 0xb72: 0x1cb9, 0xb73: 0x1ce9, 0xb74: 0x1d11, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1d39, 0xb78: 0x0725, 0xb79: 0x14b9, 0xb7a: 0x0515, 0xb7b: 0x14e9,\n\t0xb7c: 0x1ce9, 0xb7d: 0x073e, 0xb7e: 0x075e, 0xb7f: 0x0040,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x000a, 0xb81: 0x000a, 0xb82: 0x000a, 0xb83: 0x000a, 0xb84: 0x000a, 0xb85: 0x000a,\n\t0xb86: 0x000a, 0xb87: 0x000a, 0xb88: 0x000a, 0xb89: 0x000a, 0xb8a: 0x000a, 0xb8b: 0x03c0,\n\t0xb8c: 0x0003, 0xb8d: 0x0003, 0xb8e: 0x0340, 0xb8f: 0x0b40, 0xb90: 0x0018, 0xb91: 0xe00d,\n\t0xb92: 0x0018, 0xb93: 0x0018, 0xb94: 0x0018, 0xb95: 0x0018, 0xb96: 0x0018, 0xb97: 0x077e,\n\t0xb98: 0x0018, 0xb99: 0x0018, 0xb9a: 0x0018, 0xb9b: 0x0018, 0xb9c: 0x0018, 0xb9d: 0x0018,\n\t0xb9e: 0x0018, 0xb9f: 0x0018, 0xba0: 0x0018, 0xba1: 0x0018, 0xba2: 0x0018, 0xba3: 0x0018,\n\t0xba4: 0x0040, 0xba5: 0x0040, 0xba6: 0x0040, 0xba7: 0x0018, 0xba8: 0x0040, 0xba9: 0x0040,\n\t0xbaa: 0x0340, 0xbab: 0x0340, 0xbac: 0x0340, 0xbad: 0x0340, 0xbae: 0x0340, 0xbaf: 0x000a,\n\t0xbb0: 0x0018, 0xbb1: 0x0018, 0xbb2: 0x0018, 0xbb3: 0x1d69, 0xbb4: 0x1da1, 0xbb5: 0x0018,\n\t0xbb6: 0x1df1, 0xbb7: 0x1e29, 0xbb8: 0x0018, 0xbb9: 0x0018, 0xbba: 0x0018, 0xbbb: 0x0018,\n\t0xbbc: 0x1e7a, 0xbbd: 0x0018, 0xbbe: 0x079e, 0xbbf: 0x0018,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x0018, 0xbc1: 0x0018, 0xbc2: 0x0018, 0xbc3: 0x0018, 0xbc4: 0x0018, 0xbc5: 0x0018,\n\t0xbc6: 0x0018, 0xbc7: 0x1e92, 0xbc8: 0x1eaa, 0xbc9: 0x1ec2, 0xbca: 0x0018, 0xbcb: 0x0018,\n\t0xbcc: 0x0018, 0xbcd: 0x0018, 0xbce: 0x0018, 0xbcf: 0x0018, 0xbd0: 0x0018, 0xbd1: 0x0018,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x1ed9,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x000a, 0xbe0: 0x03c0, 0xbe1: 0x0340, 0xbe2: 0x0340, 0xbe3: 0x0340,\n\t0xbe4: 0x03c0, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0040, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x0340,\n\t0xbf0: 0x1f41, 0xbf1: 0x0f41, 0xbf2: 0x0040, 0xbf3: 0x0040, 0xbf4: 0x1f51, 0xbf5: 0x1f61,\n\t0xbf6: 0x1f71, 0xbf7: 0x1f81, 0xbf8: 0x1f91, 0xbf9: 0x1fa1, 0xbfa: 0x1fb2, 0xbfb: 0x07bd,\n\t0xbfc: 0x1fc2, 0xbfd: 0x1fd2, 0xbfe: 0x1fe2, 0xbff: 0x0f71,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1f41, 0xc01: 0x00c9, 0xc02: 0x0069, 0xc03: 0x0079, 0xc04: 0x1f51, 0xc05: 0x1f61,\n\t0xc06: 0x1f71, 0xc07: 0x1f81, 0xc08: 0x1f91, 0xc09: 0x1fa1, 0xc0a: 0x1fb2, 0xc0b: 0x07d5,\n\t0xc0c: 0x1fc2, 0xc0d: 0x1fd2, 0xc0e: 0x1fe2, 0xc0f: 0x0040, 0xc10: 0x0039, 0xc11: 0x0f09,\n\t0xc12: 0x00d9, 0xc13: 0x0369, 0xc14: 0x0ff9, 0xc15: 0x0249, 0xc16: 0x0f51, 0xc17: 0x0359,\n\t0xc18: 0x0f61, 0xc19: 0x0f71, 0xc1a: 0x0f99, 0xc1b: 0x01d9, 0xc1c: 0x0fa9, 0xc1d: 0x0040,\n\t0xc1e: 0x0040, 0xc1f: 0x0040, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,\n\t0xc24: 0x0018, 0xc25: 0x0018, 0xc26: 0x0018, 0xc27: 0x0018, 0xc28: 0x1ff1, 0xc29: 0x0018,\n\t0xc2a: 0x0018, 0xc2b: 0x0018, 0xc2c: 0x0018, 0xc2d: 0x0018, 0xc2e: 0x0018, 0xc2f: 0x0018,\n\t0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0018, 0xc34: 0x0018, 0xc35: 0x0018,\n\t0xc36: 0x0018, 0xc37: 0x0018, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,\n\t0xc3c: 0x0018, 0xc3d: 0x0018, 0xc3e: 0x0018, 0xc3f: 0x0040,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x07ee, 0xc41: 0x080e, 0xc42: 0x1159, 0xc43: 0x082d, 0xc44: 0x0018, 0xc45: 0x084e,\n\t0xc46: 0x086e, 0xc47: 0x1011, 0xc48: 0x0018, 0xc49: 0x088d, 0xc4a: 0x0f31, 0xc4b: 0x0249,\n\t0xc4c: 0x0249, 0xc4d: 0x0249, 0xc4e: 0x0249, 0xc4f: 0x2009, 0xc50: 0x0f41, 0xc51: 0x0f41,\n\t0xc52: 0x0359, 0xc53: 0x0359, 0xc54: 0x0018, 0xc55: 0x0f71, 0xc56: 0x2021, 0xc57: 0x0018,\n\t0xc58: 0x0018, 0xc59: 0x0f99, 0xc5a: 0x2039, 0xc5b: 0x0269, 0xc5c: 0x0269, 0xc5d: 0x0269,\n\t0xc5e: 0x0018, 0xc5f: 0x0018, 0xc60: 0x2049, 0xc61: 0x08ad, 0xc62: 0x2061, 0xc63: 0x0018,\n\t0xc64: 0x13d1, 0xc65: 0x0018, 0xc66: 0x2079, 0xc67: 0x0018, 0xc68: 0x13d1, 0xc69: 0x0018,\n\t0xc6a: 0x0f51, 0xc6b: 0x2091, 0xc6c: 0x0ee9, 0xc6d: 0x1159, 0xc6e: 0x0018, 0xc6f: 0x0f09,\n\t0xc70: 0x0f09, 0xc71: 0x1199, 0xc72: 0x0040, 0xc73: 0x0f61, 0xc74: 0x00d9, 0xc75: 0x20a9,\n\t0xc76: 0x20c1, 0xc77: 0x20d9, 0xc78: 0x20f1, 0xc79: 0x0f41, 0xc7a: 0x0018, 0xc7b: 0x08cd,\n\t0xc7c: 0x2109, 0xc7d: 0x10b1, 0xc7e: 0x10b1, 0xc7f: 0x2109,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x08ed, 0xc81: 0x0018, 0xc82: 0x0018, 0xc83: 0x0018, 0xc84: 0x0018, 0xc85: 0x0ef9,\n\t0xc86: 0x0ef9, 0xc87: 0x0f09, 0xc88: 0x0f41, 0xc89: 0x0259, 0xc8a: 0x0018, 0xc8b: 0x0018,\n\t0xc8c: 0x0018, 0xc8d: 0x0018, 0xc8e: 0x0008, 0xc8f: 0x0018, 0xc90: 0x2121, 0xc91: 0x2151,\n\t0xc92: 0x2181, 0xc93: 0x21b9, 0xc94: 0x21e9, 0xc95: 0x2219, 0xc96: 0x2249, 0xc97: 0x2279,\n\t0xc98: 0x22a9, 0xc99: 0x22d9, 0xc9a: 0x2309, 0xc9b: 0x2339, 0xc9c: 0x2369, 0xc9d: 0x2399,\n\t0xc9e: 0x23c9, 0xc9f: 0x23f9, 0xca0: 0x0f41, 0xca1: 0x2421, 0xca2: 0x0905, 0xca3: 0x2439,\n\t0xca4: 0x1089, 0xca5: 0x2451, 0xca6: 0x0925, 0xca7: 0x2469, 0xca8: 0x2491, 0xca9: 0x0369,\n\t0xcaa: 0x24a9, 0xcab: 0x0945, 0xcac: 0x0359, 0xcad: 0x1159, 0xcae: 0x0ef9, 0xcaf: 0x0f61,\n\t0xcb0: 0x0f41, 0xcb1: 0x2421, 0xcb2: 0x0965, 0xcb3: 0x2439, 0xcb4: 0x1089, 0xcb5: 0x2451,\n\t0xcb6: 0x0985, 0xcb7: 0x2469, 0xcb8: 0x2491, 0xcb9: 0x0369, 0xcba: 0x24a9, 0xcbb: 0x09a5,\n\t0xcbc: 0x0359, 0xcbd: 0x1159, 0xcbe: 0x0ef9, 0xcbf: 0x0f61,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0018, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0018,\n\t0xcc6: 0x0018, 0xcc7: 0x0018, 0xcc8: 0x0018, 0xcc9: 0x0018, 0xcca: 0x0018, 0xccb: 0x0040,\n\t0xccc: 0x0040, 0xccd: 0x0040, 0xcce: 0x0040, 0xccf: 0x0040, 0xcd0: 0x0040, 0xcd1: 0x0040,\n\t0xcd2: 0x0040, 0xcd3: 0x0040, 0xcd4: 0x0040, 0xcd5: 0x0040, 0xcd6: 0x0040, 0xcd7: 0x0040,\n\t0xcd8: 0x0040, 0xcd9: 0x0040, 0xcda: 0x0040, 0xcdb: 0x0040, 0xcdc: 0x0040, 0xcdd: 0x0040,\n\t0xcde: 0x0040, 0xcdf: 0x0040, 0xce0: 0x00c9, 0xce1: 0x0069, 0xce2: 0x0079, 0xce3: 0x1f51,\n\t0xce4: 0x1f61, 0xce5: 0x1f71, 0xce6: 0x1f81, 0xce7: 0x1f91, 0xce8: 0x1fa1, 0xce9: 0x2601,\n\t0xcea: 0x2619, 0xceb: 0x2631, 0xcec: 0x2649, 0xced: 0x2661, 0xcee: 0x2679, 0xcef: 0x2691,\n\t0xcf0: 0x26a9, 0xcf1: 0x26c1, 0xcf2: 0x26d9, 0xcf3: 0x26f1, 0xcf4: 0x0a06, 0xcf5: 0x0a26,\n\t0xcf6: 0x0a46, 0xcf7: 0x0a66, 0xcf8: 0x0a86, 0xcf9: 0x0aa6, 0xcfa: 0x0ac6, 0xcfb: 0x0ae6,\n\t0xcfc: 0x0b06, 0xcfd: 0x270a, 0xcfe: 0x2732, 0xcff: 0x275a,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x2782, 0xd01: 0x27aa, 0xd02: 0x27d2, 0xd03: 0x27fa, 0xd04: 0x2822, 0xd05: 0x284a,\n\t0xd06: 0x2872, 0xd07: 0x289a, 0xd08: 0x0040, 0xd09: 0x0040, 0xd0a: 0x0040, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0b26, 0xd1d: 0x0b46,\n\t0xd1e: 0x0b66, 0xd1f: 0x0b86, 0xd20: 0x0ba6, 0xd21: 0x0bc6, 0xd22: 0x0be6, 0xd23: 0x0c06,\n\t0xd24: 0x0c26, 0xd25: 0x0c46, 0xd26: 0x0c66, 0xd27: 0x0c86, 0xd28: 0x0ca6, 0xd29: 0x0cc6,\n\t0xd2a: 0x0ce6, 0xd2b: 0x0d06, 0xd2c: 0x0d26, 0xd2d: 0x0d46, 0xd2e: 0x0d66, 0xd2f: 0x0d86,\n\t0xd30: 0x0da6, 0xd31: 0x0dc6, 0xd32: 0x0de6, 0xd33: 0x0e06, 0xd34: 0x0e26, 0xd35: 0x0e46,\n\t0xd36: 0x0039, 0xd37: 0x0ee9, 0xd38: 0x1159, 0xd39: 0x0ef9, 0xd3a: 0x0f09, 0xd3b: 0x1199,\n\t0xd3c: 0x0f31, 0xd3d: 0x0249, 0xd3e: 0x0f41, 0xd3f: 0x0259,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0f51, 0xd41: 0x0359, 0xd42: 0x0f61, 0xd43: 0x0f71, 0xd44: 0x00d9, 0xd45: 0x0f99,\n\t0xd46: 0x2039, 0xd47: 0x0269, 0xd48: 0x01d9, 0xd49: 0x0fa9, 0xd4a: 0x0fb9, 0xd4b: 0x1089,\n\t0xd4c: 0x0279, 0xd4d: 0x0369, 0xd4e: 0x0289, 0xd4f: 0x13d1, 0xd50: 0x0039, 0xd51: 0x0ee9,\n\t0xd52: 0x1159, 0xd53: 0x0ef9, 0xd54: 0x0f09, 0xd55: 0x1199, 0xd56: 0x0f31, 0xd57: 0x0249,\n\t0xd58: 0x0f41, 0xd59: 0x0259, 0xd5a: 0x0f51, 0xd5b: 0x0359, 0xd5c: 0x0f61, 0xd5d: 0x0f71,\n\t0xd5e: 0x00d9, 0xd5f: 0x0f99, 0xd60: 0x2039, 0xd61: 0x0269, 0xd62: 0x01d9, 0xd63: 0x0fa9,\n\t0xd64: 0x0fb9, 0xd65: 0x1089, 0xd66: 0x0279, 0xd67: 0x0369, 0xd68: 0x0289, 0xd69: 0x13d1,\n\t0xd6a: 0x1f41, 0xd6b: 0x0018, 0xd6c: 0x0018, 0xd6d: 0x0018, 0xd6e: 0x0018, 0xd6f: 0x0018,\n\t0xd70: 0x0018, 0xd71: 0x0018, 0xd72: 0x0018, 0xd73: 0x0018, 0xd74: 0x0018, 0xd75: 0x0018,\n\t0xd76: 0x0018, 0xd77: 0x0018, 0xd78: 0x0018, 0xd79: 0x0018, 0xd7a: 0x0018, 0xd7b: 0x0018,\n\t0xd7c: 0x0018, 0xd7d: 0x0018, 0xd7e: 0x0018, 0xd7f: 0x0018,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0008, 0xd81: 0x0008, 0xd82: 0x0008, 0xd83: 0x0008, 0xd84: 0x0008, 0xd85: 0x0008,\n\t0xd86: 0x0008, 0xd87: 0x0008, 0xd88: 0x0008, 0xd89: 0x0008, 0xd8a: 0x0008, 0xd8b: 0x0008,\n\t0xd8c: 0x0008, 0xd8d: 0x0008, 0xd8e: 0x0008, 0xd8f: 0x0008, 0xd90: 0x0008, 0xd91: 0x0008,\n\t0xd92: 0x0008, 0xd93: 0x0008, 0xd94: 0x0008, 0xd95: 0x0008, 0xd96: 0x0008, 0xd97: 0x0008,\n\t0xd98: 0x0008, 0xd99: 0x0008, 0xd9a: 0x0008, 0xd9b: 0x0008, 0xd9c: 0x0008, 0xd9d: 0x0008,\n\t0xd9e: 0x0008, 0xd9f: 0x0040, 0xda0: 0xe00d, 0xda1: 0x0008, 0xda2: 0x2971, 0xda3: 0x0ebd,\n\t0xda4: 0x2989, 0xda5: 0x0008, 0xda6: 0x0008, 0xda7: 0xe07d, 0xda8: 0x0008, 0xda9: 0xe01d,\n\t0xdaa: 0x0008, 0xdab: 0xe03d, 0xdac: 0x0008, 0xdad: 0x0fe1, 0xdae: 0x1281, 0xdaf: 0x0fc9,\n\t0xdb0: 0x1141, 0xdb1: 0x0008, 0xdb2: 0xe00d, 0xdb3: 0x0008, 0xdb4: 0x0008, 0xdb5: 0xe01d,\n\t0xdb6: 0x0008, 0xdb7: 0x0008, 0xdb8: 0x0008, 0xdb9: 0x0008, 0xdba: 0x0008, 0xdbb: 0x0008,\n\t0xdbc: 0x0259, 0xdbd: 0x1089, 0xdbe: 0x29a1, 0xdbf: 0x29b9,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0xe00d, 0xdc1: 0x0008, 0xdc2: 0xe00d, 0xdc3: 0x0008, 0xdc4: 0xe00d, 0xdc5: 0x0008,\n\t0xdc6: 0xe00d, 0xdc7: 0x0008, 0xdc8: 0xe00d, 0xdc9: 0x0008, 0xdca: 0xe00d, 0xdcb: 0x0008,\n\t0xdcc: 0xe00d, 0xdcd: 0x0008, 0xdce: 0xe00d, 0xdcf: 0x0008, 0xdd0: 0xe00d, 0xdd1: 0x0008,\n\t0xdd2: 0xe00d, 0xdd3: 0x0008, 0xdd4: 0xe00d, 0xdd5: 0x0008, 0xdd6: 0xe00d, 0xdd7: 0x0008,\n\t0xdd8: 0xe00d, 0xdd9: 0x0008, 0xdda: 0xe00d, 0xddb: 0x0008, 0xddc: 0xe00d, 0xddd: 0x0008,\n\t0xdde: 0xe00d, 0xddf: 0x0008, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0xe00d, 0xde3: 0x0008,\n\t0xde4: 0x0008, 0xde5: 0x0018, 0xde6: 0x0018, 0xde7: 0x0018, 0xde8: 0x0018, 0xde9: 0x0018,\n\t0xdea: 0x0018, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0xe01d, 0xdee: 0x0008, 0xdef: 0x3308,\n\t0xdf0: 0x3308, 0xdf1: 0x3308, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0040, 0xdf5: 0x0040,\n\t0xdf6: 0x0040, 0xdf7: 0x0040, 0xdf8: 0x0040, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,\n\t0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x26fd, 0xe01: 0x271d, 0xe02: 0x273d, 0xe03: 0x275d, 0xe04: 0x277d, 0xe05: 0x279d,\n\t0xe06: 0x27bd, 0xe07: 0x27dd, 0xe08: 0x27fd, 0xe09: 0x281d, 0xe0a: 0x283d, 0xe0b: 0x285d,\n\t0xe0c: 0x287d, 0xe0d: 0x289d, 0xe0e: 0x28bd, 0xe0f: 0x28dd, 0xe10: 0x28fd, 0xe11: 0x291d,\n\t0xe12: 0x293d, 0xe13: 0x295d, 0xe14: 0x297d, 0xe15: 0x299d, 0xe16: 0x0040, 0xe17: 0x0040,\n\t0xe18: 0x0040, 0xe19: 0x0040, 0xe1a: 0x0040, 0xe1b: 0x0040, 0xe1c: 0x0040, 0xe1d: 0x0040,\n\t0xe1e: 0x0040, 0xe1f: 0x0040, 0xe20: 0x0040, 0xe21: 0x0040, 0xe22: 0x0040, 0xe23: 0x0040,\n\t0xe24: 0x0040, 0xe25: 0x0040, 0xe26: 0x0040, 0xe27: 0x0040, 0xe28: 0x0040, 0xe29: 0x0040,\n\t0xe2a: 0x0040, 0xe2b: 0x0040, 0xe2c: 0x0040, 0xe2d: 0x0040, 0xe2e: 0x0040, 0xe2f: 0x0040,\n\t0xe30: 0x0040, 0xe31: 0x0040, 0xe32: 0x0040, 0xe33: 0x0040, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0040, 0xe3a: 0x0040, 0xe3b: 0x0040,\n\t0xe3c: 0x0040, 0xe3d: 0x0040, 0xe3e: 0x0040, 0xe3f: 0x0040,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a, 0xe41: 0x0018, 0xe42: 0x29d1, 0xe43: 0x0018, 0xe44: 0x0018, 0xe45: 0x0008,\n\t0xe46: 0x0008, 0xe47: 0x0008, 0xe48: 0x0018, 0xe49: 0x0018, 0xe4a: 0x0018, 0xe4b: 0x0018,\n\t0xe4c: 0x0018, 0xe4d: 0x0018, 0xe4e: 0x0018, 0xe4f: 0x0018, 0xe50: 0x0018, 0xe51: 0x0018,\n\t0xe52: 0x0018, 0xe53: 0x0018, 0xe54: 0x0018, 0xe55: 0x0018, 0xe56: 0x0018, 0xe57: 0x0018,\n\t0xe58: 0x0018, 0xe59: 0x0018, 0xe5a: 0x0018, 0xe5b: 0x0018, 0xe5c: 0x0018, 0xe5d: 0x0018,\n\t0xe5e: 0x0018, 0xe5f: 0x0018, 0xe60: 0x0018, 0xe61: 0x0018, 0xe62: 0x0018, 0xe63: 0x0018,\n\t0xe64: 0x0018, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,\n\t0xe6a: 0x3308, 0xe6b: 0x3308, 0xe6c: 0x3308, 0xe6d: 0x3308, 0xe6e: 0x3018, 0xe6f: 0x3018,\n\t0xe70: 0x0018, 0xe71: 0x0018, 0xe72: 0x0018, 0xe73: 0x0018, 0xe74: 0x0018, 0xe75: 0x0018,\n\t0xe76: 0xe125, 0xe77: 0x0018, 0xe78: 0x29bd, 0xe79: 0x29dd, 0xe7a: 0x29fd, 0xe7b: 0x0018,\n\t0xe7c: 0x0008, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x2b3d, 0xe81: 0x2b5d, 0xe82: 0x2b7d, 0xe83: 0x2b9d, 0xe84: 0x2bbd, 0xe85: 0x2bdd,\n\t0xe86: 0x2bdd, 0xe87: 0x2bdd, 0xe88: 0x2bfd, 0xe89: 0x2bfd, 0xe8a: 0x2bfd, 0xe8b: 0x2bfd,\n\t0xe8c: 0x2c1d, 0xe8d: 0x2c1d, 0xe8e: 0x2c1d, 0xe8f: 0x2c3d, 0xe90: 0x2c5d, 0xe91: 0x2c5d,\n\t0xe92: 0x2a7d, 0xe93: 0x2a7d, 0xe94: 0x2c5d, 0xe95: 0x2c5d, 0xe96: 0x2c7d, 0xe97: 0x2c7d,\n\t0xe98: 0x2c5d, 0xe99: 0x2c5d, 0xe9a: 0x2a7d, 0xe9b: 0x2a7d, 0xe9c: 0x2c5d, 0xe9d: 0x2c5d,\n\t0xe9e: 0x2c3d, 0xe9f: 0x2c3d, 0xea0: 0x2c9d, 0xea1: 0x2c9d, 0xea2: 0x2cbd, 0xea3: 0x2cbd,\n\t0xea4: 0x0040, 0xea5: 0x2cdd, 0xea6: 0x2cfd, 0xea7: 0x2d1d, 0xea8: 0x2d1d, 0xea9: 0x2d3d,\n\t0xeaa: 0x2d5d, 0xeab: 0x2d7d, 0xeac: 0x2d9d, 0xead: 0x2dbd, 0xeae: 0x2ddd, 0xeaf: 0x2dfd,\n\t0xeb0: 0x2e1d, 0xeb1: 0x2e3d, 0xeb2: 0x2e3d, 0xeb3: 0x2e5d, 0xeb4: 0x2e7d, 0xeb5: 0x2e7d,\n\t0xeb6: 0x2e9d, 0xeb7: 0x2ebd, 0xeb8: 0x2e5d, 0xeb9: 0x2edd, 0xeba: 0x2efd, 0xebb: 0x2edd,\n\t0xebc: 0x2e5d, 0xebd: 0x2f1d, 0xebe: 0x2f3d, 0xebf: 0x2f5d,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2f7d, 0xec1: 0x2f9d, 0xec2: 0x2cfd, 0xec3: 0x2cdd, 0xec4: 0x2fbd, 0xec5: 0x2fdd,\n\t0xec6: 0x2ffd, 0xec7: 0x301d, 0xec8: 0x303d, 0xec9: 0x305d, 0xeca: 0x307d, 0xecb: 0x309d,\n\t0xecc: 0x30bd, 0xecd: 0x30dd, 0xece: 0x30fd, 0xecf: 0x0040, 0xed0: 0x0018, 0xed1: 0x0018,\n\t0xed2: 0x311d, 0xed3: 0x313d, 0xed4: 0x315d, 0xed5: 0x317d, 0xed6: 0x319d, 0xed7: 0x31bd,\n\t0xed8: 0x31dd, 0xed9: 0x31fd, 0xeda: 0x321d, 0xedb: 0x323d, 0xedc: 0x315d, 0xedd: 0x325d,\n\t0xede: 0x327d, 0xedf: 0x329d, 0xee0: 0x0008, 0xee1: 0x0008, 0xee2: 0x0008, 0xee3: 0x0008,\n\t0xee4: 0x0008, 0xee5: 0x0008, 0xee6: 0x0008, 0xee7: 0x0008, 0xee8: 0x0008, 0xee9: 0x0008,\n\t0xeea: 0x0008, 0xeeb: 0x0008, 0xeec: 0x0008, 0xeed: 0x0008, 0xeee: 0x0008, 0xeef: 0x0008,\n\t0xef0: 0x0008, 0xef1: 0x0008, 0xef2: 0x0008, 0xef3: 0x0008, 0xef4: 0x0008, 0xef5: 0x0008,\n\t0xef6: 0x0008, 0xef7: 0x0008, 0xef8: 0x0008, 0xef9: 0x0008, 0xefa: 0x0008, 0xefb: 0x0040,\n\t0xefc: 0x0040, 0xefd: 0x0040, 0xefe: 0x0040, 0xeff: 0x0040,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x36a2, 0xf01: 0x36d2, 0xf02: 0x3702, 0xf03: 0x3732, 0xf04: 0x32bd, 0xf05: 0x32dd,\n\t0xf06: 0x32fd, 0xf07: 0x331d, 0xf08: 0x0018, 0xf09: 0x0018, 0xf0a: 0x0018, 0xf0b: 0x0018,\n\t0xf0c: 0x0018, 0xf0d: 0x0018, 0xf0e: 0x0018, 0xf0f: 0x0018, 0xf10: 0x333d, 0xf11: 0x3761,\n\t0xf12: 0x3779, 0xf13: 0x3791, 0xf14: 0x37a9, 0xf15: 0x37c1, 0xf16: 0x37d9, 0xf17: 0x37f1,\n\t0xf18: 0x3809, 0xf19: 0x3821, 0xf1a: 0x3839, 0xf1b: 0x3851, 0xf1c: 0x3869, 0xf1d: 0x3881,\n\t0xf1e: 0x3899, 0xf1f: 0x38b1, 0xf20: 0x335d, 0xf21: 0x337d, 0xf22: 0x339d, 0xf23: 0x33bd,\n\t0xf24: 0x33dd, 0xf25: 0x33dd, 0xf26: 0x33fd, 0xf27: 0x341d, 0xf28: 0x343d, 0xf29: 0x345d,\n\t0xf2a: 0x347d, 0xf2b: 0x349d, 0xf2c: 0x34bd, 0xf2d: 0x34dd, 0xf2e: 0x34fd, 0xf2f: 0x351d,\n\t0xf30: 0x353d, 0xf31: 0x355d, 0xf32: 0x357d, 0xf33: 0x359d, 0xf34: 0x35bd, 0xf35: 0x35dd,\n\t0xf36: 0x35fd, 0xf37: 0x361d, 0xf38: 0x363d, 0xf39: 0x365d, 0xf3a: 0x367d, 0xf3b: 0x369d,\n\t0xf3c: 0x38c9, 0xf3d: 0x3901, 0xf3e: 0x36bd, 0xf3f: 0x0018,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36dd, 0xf41: 0x36fd, 0xf42: 0x371d, 0xf43: 0x373d, 0xf44: 0x375d, 0xf45: 0x377d,\n\t0xf46: 0x379d, 0xf47: 0x37bd, 0xf48: 0x37dd, 0xf49: 0x37fd, 0xf4a: 0x381d, 0xf4b: 0x383d,\n\t0xf4c: 0x385d, 0xf4d: 0x387d, 0xf4e: 0x389d, 0xf4f: 0x38bd, 0xf50: 0x38dd, 0xf51: 0x38fd,\n\t0xf52: 0x391d, 0xf53: 0x393d, 0xf54: 0x395d, 0xf55: 0x397d, 0xf56: 0x399d, 0xf57: 0x39bd,\n\t0xf58: 0x39dd, 0xf59: 0x39fd, 0xf5a: 0x3a1d, 0xf5b: 0x3a3d, 0xf5c: 0x3a5d, 0xf5d: 0x3a7d,\n\t0xf5e: 0x3a9d, 0xf5f: 0x3abd, 0xf60: 0x3add, 0xf61: 0x3afd, 0xf62: 0x3b1d, 0xf63: 0x3b3d,\n\t0xf64: 0x3b5d, 0xf65: 0x3b7d, 0xf66: 0x127d, 0xf67: 0x3b9d, 0xf68: 0x3bbd, 0xf69: 0x3bdd,\n\t0xf6a: 0x3bfd, 0xf6b: 0x3c1d, 0xf6c: 0x3c3d, 0xf6d: 0x3c5d, 0xf6e: 0x239d, 0xf6f: 0x3c7d,\n\t0xf70: 0x3c9d, 0xf71: 0x3939, 0xf72: 0x3951, 0xf73: 0x3969, 0xf74: 0x3981, 0xf75: 0x3999,\n\t0xf76: 0x39b1, 0xf77: 0x39c9, 0xf78: 0x39e1, 0xf79: 0x39f9, 0xf7a: 0x3a11, 0xf7b: 0x3a29,\n\t0xf7c: 0x3a41, 0xf7d: 0x3a59, 0xf7e: 0x3a71, 0xf7f: 0x3a89,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x3aa1, 0xf81: 0x3ac9, 0xf82: 0x3af1, 0xf83: 0x3b19, 0xf84: 0x3b41, 0xf85: 0x3b69,\n\t0xf86: 0x3b91, 0xf87: 0x3bb9, 0xf88: 0x3be1, 0xf89: 0x3c09, 0xf8a: 0x3c39, 0xf8b: 0x3c69,\n\t0xf8c: 0x3c99, 0xf8d: 0x3cbd, 0xf8e: 0x3cb1, 0xf8f: 0x3cdd, 0xf90: 0x3cfd, 0xf91: 0x3d15,\n\t0xf92: 0x3d2d, 0xf93: 0x3d45, 0xf94: 0x3d5d, 0xf95: 0x3d5d, 0xf96: 0x3d45, 0xf97: 0x3d75,\n\t0xf98: 0x07bd, 0xf99: 0x3d8d, 0xf9a: 0x3da5, 0xf9b: 0x3dbd, 0xf9c: 0x3dd5, 0xf9d: 0x3ded,\n\t0xf9e: 0x3e05, 0xf9f: 0x3e1d, 0xfa0: 0x3e35, 0xfa1: 0x3e4d, 0xfa2: 0x3e65, 0xfa3: 0x3e7d,\n\t0xfa4: 0x3e95, 0xfa5: 0x3e95, 0xfa6: 0x3ead, 0xfa7: 0x3ead, 0xfa8: 0x3ec5, 0xfa9: 0x3ec5,\n\t0xfaa: 0x3edd, 0xfab: 0x3ef5, 0xfac: 0x3f0d, 0xfad: 0x3f25, 0xfae: 0x3f3d, 0xfaf: 0x3f3d,\n\t0xfb0: 0x3f55, 0xfb1: 0x3f55, 0xfb2: 0x3f55, 0xfb3: 0x3f6d, 0xfb4: 0x3f85, 0xfb5: 0x3f9d,\n\t0xfb6: 0x3fb5, 0xfb7: 0x3f9d, 0xfb8: 0x3fcd, 0xfb9: 0x3fe5, 0xfba: 0x3f6d, 0xfbb: 0x3ffd,\n\t0xfbc: 0x4015, 0xfbd: 0x4015, 0xfbe: 0x4015, 0xfbf: 0x0040,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3cc9, 0xfc1: 0x3d31, 0xfc2: 0x3d99, 0xfc3: 0x3e01, 0xfc4: 0x3e51, 0xfc5: 0x3eb9,\n\t0xfc6: 0x3f09, 0xfc7: 0x3f59, 0xfc8: 0x3fd9, 0xfc9: 0x4041, 0xfca: 0x4091, 0xfcb: 0x40e1,\n\t0xfcc: 0x4131, 0xfcd: 0x4199, 0xfce: 0x4201, 0xfcf: 0x4251, 0xfd0: 0x42a1, 0xfd1: 0x42d9,\n\t0xfd2: 0x4329, 0xfd3: 0x4391, 0xfd4: 0x43f9, 0xfd5: 0x4431, 0xfd6: 0x44b1, 0xfd7: 0x4549,\n\t0xfd8: 0x45c9, 0xfd9: 0x4619, 0xfda: 0x4699, 0xfdb: 0x4719, 0xfdc: 0x4781, 0xfdd: 0x47d1,\n\t0xfde: 0x4821, 0xfdf: 0x4871, 0xfe0: 0x48d9, 0xfe1: 0x4959, 0xfe2: 0x49c1, 0xfe3: 0x4a11,\n\t0xfe4: 0x4a61, 0xfe5: 0x4ab1, 0xfe6: 0x4ae9, 0xfe7: 0x4b21, 0xfe8: 0x4b59, 0xfe9: 0x4b91,\n\t0xfea: 0x4be1, 0xfeb: 0x4c31, 0xfec: 0x4cb1, 0xfed: 0x4d01, 0xfee: 0x4d69, 0xfef: 0x4de9,\n\t0xff0: 0x4e39, 0xff1: 0x4e71, 0xff2: 0x4ea9, 0xff3: 0x4f29, 0xff4: 0x4f91, 0xff5: 0x5011,\n\t0xff6: 0x5061, 0xff7: 0x50e1, 0xff8: 0x5119, 0xff9: 0x5169, 0xffa: 0x51b9, 0xffb: 0x5209,\n\t0xffc: 0x5259, 0xffd: 0x52a9, 0xffe: 0x5311, 0xfff: 0x5361,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x5399, 0x1001: 0x53e9, 0x1002: 0x5439, 0x1003: 0x5489, 0x1004: 0x54f1, 0x1005: 0x5541,\n\t0x1006: 0x5591, 0x1007: 0x55e1, 0x1008: 0x5661, 0x1009: 0x56c9, 0x100a: 0x5701, 0x100b: 0x5781,\n\t0x100c: 0x57b9, 0x100d: 0x5821, 0x100e: 0x5889, 0x100f: 0x58d9, 0x1010: 0x5929, 0x1011: 0x5979,\n\t0x1012: 0x59e1, 0x1013: 0x5a19, 0x1014: 0x5a69, 0x1015: 0x5ad1, 0x1016: 0x5b09, 0x1017: 0x5b89,\n\t0x1018: 0x5bd9, 0x1019: 0x5c01, 0x101a: 0x5c29, 0x101b: 0x5c51, 0x101c: 0x5c79, 0x101d: 0x5ca1,\n\t0x101e: 0x5cc9, 0x101f: 0x5cf1, 0x1020: 0x5d19, 0x1021: 0x5d41, 0x1022: 0x5d69, 0x1023: 0x5d99,\n\t0x1024: 0x5dc9, 0x1025: 0x5df9, 0x1026: 0x5e29, 0x1027: 0x5e59, 0x1028: 0x5e89, 0x1029: 0x5eb9,\n\t0x102a: 0x5ee9, 0x102b: 0x5f19, 0x102c: 0x5f49, 0x102d: 0x5f79, 0x102e: 0x5fa9, 0x102f: 0x5fd9,\n\t0x1030: 0x6009, 0x1031: 0x402d, 0x1032: 0x6039, 0x1033: 0x6051, 0x1034: 0x404d, 0x1035: 0x6069,\n\t0x1036: 0x6081, 0x1037: 0x6099, 0x1038: 0x406d, 0x1039: 0x406d, 0x103a: 0x60b1, 0x103b: 0x60c9,\n\t0x103c: 0x6101, 0x103d: 0x6139, 0x103e: 0x6171, 0x103f: 0x61a9,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x6211, 0x1041: 0x6229, 0x1042: 0x408d, 0x1043: 0x6241, 0x1044: 0x6259, 0x1045: 0x6271,\n\t0x1046: 0x6289, 0x1047: 0x62a1, 0x1048: 0x40ad, 0x1049: 0x62b9, 0x104a: 0x62e1, 0x104b: 0x62f9,\n\t0x104c: 0x40cd, 0x104d: 0x40cd, 0x104e: 0x6311, 0x104f: 0x6329, 0x1050: 0x6341, 0x1051: 0x40ed,\n\t0x1052: 0x410d, 0x1053: 0x412d, 0x1054: 0x414d, 0x1055: 0x416d, 0x1056: 0x6359, 0x1057: 0x6371,\n\t0x1058: 0x6389, 0x1059: 0x63a1, 0x105a: 0x63b9, 0x105b: 0x418d, 0x105c: 0x63d1, 0x105d: 0x63e9,\n\t0x105e: 0x6401, 0x105f: 0x41ad, 0x1060: 0x41cd, 0x1061: 0x6419, 0x1062: 0x41ed, 0x1063: 0x420d,\n\t0x1064: 0x422d, 0x1065: 0x6431, 0x1066: 0x424d, 0x1067: 0x6449, 0x1068: 0x6479, 0x1069: 0x6211,\n\t0x106a: 0x426d, 0x106b: 0x428d, 0x106c: 0x42ad, 0x106d: 0x42cd, 0x106e: 0x64b1, 0x106f: 0x64f1,\n\t0x1070: 0x6539, 0x1071: 0x6551, 0x1072: 0x42ed, 0x1073: 0x6569, 0x1074: 0x6581, 0x1075: 0x6599,\n\t0x1076: 0x430d, 0x1077: 0x65b1, 0x1078: 0x65c9, 0x1079: 0x65b1, 0x107a: 0x65e1, 0x107b: 0x65f9,\n\t0x107c: 0x432d, 0x107d: 0x6611, 0x107e: 0x6629, 0x107f: 0x6611,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x434d, 0x1081: 0x436d, 0x1082: 0x0040, 0x1083: 0x6641, 0x1084: 0x6659, 0x1085: 0x6671,\n\t0x1086: 0x6689, 0x1087: 0x0040, 0x1088: 0x66c1, 0x1089: 0x66d9, 0x108a: 0x66f1, 0x108b: 0x6709,\n\t0x108c: 0x6721, 0x108d: 0x6739, 0x108e: 0x6401, 0x108f: 0x6751, 0x1090: 0x6769, 0x1091: 0x6781,\n\t0x1092: 0x438d, 0x1093: 0x6799, 0x1094: 0x6289, 0x1095: 0x43ad, 0x1096: 0x43cd, 0x1097: 0x67b1,\n\t0x1098: 0x0040, 0x1099: 0x43ed, 0x109a: 0x67c9, 0x109b: 0x67e1, 0x109c: 0x67f9, 0x109d: 0x6811,\n\t0x109e: 0x6829, 0x109f: 0x6859, 0x10a0: 0x6889, 0x10a1: 0x68b1, 0x10a2: 0x68d9, 0x10a3: 0x6901,\n\t0x10a4: 0x6929, 0x10a5: 0x6951, 0x10a6: 0x6979, 0x10a7: 0x69a1, 0x10a8: 0x69c9, 0x10a9: 0x69f1,\n\t0x10aa: 0x6a21, 0x10ab: 0x6a51, 0x10ac: 0x6a81, 0x10ad: 0x6ab1, 0x10ae: 0x6ae1, 0x10af: 0x6b11,\n\t0x10b0: 0x6b41, 0x10b1: 0x6b71, 0x10b2: 0x6ba1, 0x10b3: 0x6bd1, 0x10b4: 0x6c01, 0x10b5: 0x6c31,\n\t0x10b6: 0x6c61, 0x10b7: 0x6c91, 0x10b8: 0x6cc1, 0x10b9: 0x6cf1, 0x10ba: 0x6d21, 0x10bb: 0x6d51,\n\t0x10bc: 0x6d81, 0x10bd: 0x6db1, 0x10be: 0x6de1, 0x10bf: 0x440d,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,\n\t0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,\n\t0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,\n\t0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,\n\t0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,\n\t0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,\n\t0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x0ea1, 0x111d: 0x6e11,\n\t0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,\n\t0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,\n\t0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,\n\t0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,\n\t0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,\n\t0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,\n\t0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,\n\t0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,\n\t0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,\n\t0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,\n\t0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,\n\t0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,\n\t0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,\n\t0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,\n\t0x11bc: 0x0008, 0x11bd: 0x442d, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,\n\t0x11cc: 0x0008, 0x11cd: 0x11d9, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0x6e29, 0x11eb: 0x1029, 0x11ec: 0x11c1, 0x11ed: 0x6e41, 0x11ee: 0x1221, 0x11ef: 0x0040,\n\t0x11f0: 0x6e59, 0x11f1: 0x6e71, 0x11f2: 0x1239, 0x11f3: 0x444d, 0x11f4: 0xe00d, 0x11f5: 0x0008,\n\t0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0x0040, 0x11f9: 0x0040, 0x11fa: 0x0040, 0x11fb: 0x0040,\n\t0x11fc: 0x0040, 0x11fd: 0x0040, 0x11fe: 0x0040, 0x11ff: 0x0040,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x64d5, 0x1201: 0x64f5, 0x1202: 0x6515, 0x1203: 0x6535, 0x1204: 0x6555, 0x1205: 0x6575,\n\t0x1206: 0x6595, 0x1207: 0x65b5, 0x1208: 0x65d5, 0x1209: 0x65f5, 0x120a: 0x6615, 0x120b: 0x6635,\n\t0x120c: 0x6655, 0x120d: 0x6675, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0x6695, 0x1211: 0x0008,\n\t0x1212: 0x66b5, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x66d5, 0x1216: 0x66f5, 0x1217: 0x6715,\n\t0x1218: 0x6735, 0x1219: 0x6755, 0x121a: 0x6775, 0x121b: 0x6795, 0x121c: 0x67b5, 0x121d: 0x67d5,\n\t0x121e: 0x67f5, 0x121f: 0x0008, 0x1220: 0x6815, 0x1221: 0x0008, 0x1222: 0x6835, 0x1223: 0x0008,\n\t0x1224: 0x0008, 0x1225: 0x6855, 0x1226: 0x6875, 0x1227: 0x0008, 0x1228: 0x0008, 0x1229: 0x0008,\n\t0x122a: 0x6895, 0x122b: 0x68b5, 0x122c: 0x68d5, 0x122d: 0x68f5, 0x122e: 0x6915, 0x122f: 0x6935,\n\t0x1230: 0x6955, 0x1231: 0x6975, 0x1232: 0x6995, 0x1233: 0x69b5, 0x1234: 0x69d5, 0x1235: 0x69f5,\n\t0x1236: 0x6a15, 0x1237: 0x6a35, 0x1238: 0x6a55, 0x1239: 0x6a75, 0x123a: 0x6a95, 0x123b: 0x6ab5,\n\t0x123c: 0x6ad5, 0x123d: 0x6af5, 0x123e: 0x6b15, 0x123f: 0x6b35,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x7a95, 0x1241: 0x7ab5, 0x1242: 0x7ad5, 0x1243: 0x7af5, 0x1244: 0x7b15, 0x1245: 0x7b35,\n\t0x1246: 0x7b55, 0x1247: 0x7b75, 0x1248: 0x7b95, 0x1249: 0x7bb5, 0x124a: 0x7bd5, 0x124b: 0x7bf5,\n\t0x124c: 0x7c15, 0x124d: 0x7c35, 0x124e: 0x7c55, 0x124f: 0x6ec9, 0x1250: 0x6ef1, 0x1251: 0x6f19,\n\t0x1252: 0x7c75, 0x1253: 0x7c95, 0x1254: 0x7cb5, 0x1255: 0x6f41, 0x1256: 0x6f69, 0x1257: 0x6f91,\n\t0x1258: 0x7cd5, 0x1259: 0x7cf5, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x0040,\n\t0x125e: 0x0040, 0x125f: 0x0040, 0x1260: 0x0040, 0x1261: 0x0040, 0x1262: 0x0040, 0x1263: 0x0040,\n\t0x1264: 0x0040, 0x1265: 0x0040, 0x1266: 0x0040, 0x1267: 0x0040, 0x1268: 0x0040, 0x1269: 0x0040,\n\t0x126a: 0x0040, 0x126b: 0x0040, 0x126c: 0x0040, 0x126d: 0x0040, 0x126e: 0x0040, 0x126f: 0x0040,\n\t0x1270: 0x0040, 0x1271: 0x0040, 0x1272: 0x0040, 0x1273: 0x0040, 0x1274: 0x0040, 0x1275: 0x0040,\n\t0x1276: 0x0040, 0x1277: 0x0040, 0x1278: 0x0040, 0x1279: 0x0040, 0x127a: 0x0040, 0x127b: 0x0040,\n\t0x127c: 0x0040, 0x127d: 0x0040, 0x127e: 0x0040, 0x127f: 0x0040,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x6fb9, 0x1281: 0x6fd1, 0x1282: 0x6fe9, 0x1283: 0x7d15, 0x1284: 0x7d35, 0x1285: 0x7001,\n\t0x1286: 0x7001, 0x1287: 0x0040, 0x1288: 0x0040, 0x1289: 0x0040, 0x128a: 0x0040, 0x128b: 0x0040,\n\t0x128c: 0x0040, 0x128d: 0x0040, 0x128e: 0x0040, 0x128f: 0x0040, 0x1290: 0x0040, 0x1291: 0x0040,\n\t0x1292: 0x0040, 0x1293: 0x7019, 0x1294: 0x7041, 0x1295: 0x7069, 0x1296: 0x7091, 0x1297: 0x70b9,\n\t0x1298: 0x0040, 0x1299: 0x0040, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x70e1,\n\t0x129e: 0x3308, 0x129f: 0x7109, 0x12a0: 0x7131, 0x12a1: 0x20a9, 0x12a2: 0x20f1, 0x12a3: 0x7149,\n\t0x12a4: 0x7161, 0x12a5: 0x7179, 0x12a6: 0x7191, 0x12a7: 0x71a9, 0x12a8: 0x71c1, 0x12a9: 0x1fb2,\n\t0x12aa: 0x71d9, 0x12ab: 0x7201, 0x12ac: 0x7229, 0x12ad: 0x7261, 0x12ae: 0x7299, 0x12af: 0x72c1,\n\t0x12b0: 0x72e9, 0x12b1: 0x7311, 0x12b2: 0x7339, 0x12b3: 0x7361, 0x12b4: 0x7389, 0x12b5: 0x73b1,\n\t0x12b6: 0x73d9, 0x12b7: 0x0040, 0x12b8: 0x7401, 0x12b9: 0x7429, 0x12ba: 0x7451, 0x12bb: 0x7479,\n\t0x12bc: 0x74a1, 0x12bd: 0x0040, 0x12be: 0x74c9, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x74f1, 0x12c1: 0x7519, 0x12c2: 0x0040, 0x12c3: 0x7541, 0x12c4: 0x7569, 0x12c5: 0x0040,\n\t0x12c6: 0x7591, 0x12c7: 0x75b9, 0x12c8: 0x75e1, 0x12c9: 0x7609, 0x12ca: 0x7631, 0x12cb: 0x7659,\n\t0x12cc: 0x7681, 0x12cd: 0x76a9, 0x12ce: 0x76d1, 0x12cf: 0x76f9, 0x12d0: 0x7721, 0x12d1: 0x7721,\n\t0x12d2: 0x7739, 0x12d3: 0x7739, 0x12d4: 0x7739, 0x12d5: 0x7739, 0x12d6: 0x7751, 0x12d7: 0x7751,\n\t0x12d8: 0x7751, 0x12d9: 0x7751, 0x12da: 0x7769, 0x12db: 0x7769, 0x12dc: 0x7769, 0x12dd: 0x7769,\n\t0x12de: 0x7781, 0x12df: 0x7781, 0x12e0: 0x7781, 0x12e1: 0x7781, 0x12e2: 0x7799, 0x12e3: 0x7799,\n\t0x12e4: 0x7799, 0x12e5: 0x7799, 0x12e6: 0x77b1, 0x12e7: 0x77b1, 0x12e8: 0x77b1, 0x12e9: 0x77b1,\n\t0x12ea: 0x77c9, 0x12eb: 0x77c9, 0x12ec: 0x77c9, 0x12ed: 0x77c9, 0x12ee: 0x77e1, 0x12ef: 0x77e1,\n\t0x12f0: 0x77e1, 0x12f1: 0x77e1, 0x12f2: 0x77f9, 0x12f3: 0x77f9, 0x12f4: 0x77f9, 0x12f5: 0x77f9,\n\t0x12f6: 0x7811, 0x12f7: 0x7811, 0x12f8: 0x7811, 0x12f9: 0x7811, 0x12fa: 0x7829, 0x12fb: 0x7829,\n\t0x12fc: 0x7829, 0x12fd: 0x7829, 0x12fe: 0x7841, 0x12ff: 0x7841,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x7841, 0x1301: 0x7841, 0x1302: 0x7859, 0x1303: 0x7859, 0x1304: 0x7871, 0x1305: 0x7871,\n\t0x1306: 0x7889, 0x1307: 0x7889, 0x1308: 0x78a1, 0x1309: 0x78a1, 0x130a: 0x78b9, 0x130b: 0x78b9,\n\t0x130c: 0x78d1, 0x130d: 0x78d1, 0x130e: 0x78e9, 0x130f: 0x78e9, 0x1310: 0x78e9, 0x1311: 0x78e9,\n\t0x1312: 0x7901, 0x1313: 0x7901, 0x1314: 0x7901, 0x1315: 0x7901, 0x1316: 0x7919, 0x1317: 0x7919,\n\t0x1318: 0x7919, 0x1319: 0x7919, 0x131a: 0x7931, 0x131b: 0x7931, 0x131c: 0x7931, 0x131d: 0x7931,\n\t0x131e: 0x7949, 0x131f: 0x7949, 0x1320: 0x7961, 0x1321: 0x7961, 0x1322: 0x7961, 0x1323: 0x7961,\n\t0x1324: 0x7979, 0x1325: 0x7979, 0x1326: 0x7991, 0x1327: 0x7991, 0x1328: 0x7991, 0x1329: 0x7991,\n\t0x132a: 0x79a9, 0x132b: 0x79a9, 0x132c: 0x79a9, 0x132d: 0x79a9, 0x132e: 0x79c1, 0x132f: 0x79c1,\n\t0x1330: 0x79d9, 0x1331: 0x79d9, 0x1332: 0x0818, 0x1333: 0x0818, 0x1334: 0x0818, 0x1335: 0x0818,\n\t0x1336: 0x0818, 0x1337: 0x0818, 0x1338: 0x0818, 0x1339: 0x0818, 0x133a: 0x0818, 0x133b: 0x0818,\n\t0x133c: 0x0818, 0x133d: 0x0818, 0x133e: 0x0818, 0x133f: 0x0818,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0818, 0x1341: 0x0818, 0x1342: 0x0040, 0x1343: 0x0040, 0x1344: 0x0040, 0x1345: 0x0040,\n\t0x1346: 0x0040, 0x1347: 0x0040, 0x1348: 0x0040, 0x1349: 0x0040, 0x134a: 0x0040, 0x134b: 0x0040,\n\t0x134c: 0x0040, 0x134d: 0x0040, 0x134e: 0x0040, 0x134f: 0x0040, 0x1350: 0x0040, 0x1351: 0x0040,\n\t0x1352: 0x0040, 0x1353: 0x79f1, 0x1354: 0x79f1, 0x1355: 0x79f1, 0x1356: 0x79f1, 0x1357: 0x7a09,\n\t0x1358: 0x7a09, 0x1359: 0x7a21, 0x135a: 0x7a21, 0x135b: 0x7a39, 0x135c: 0x7a39, 0x135d: 0x0479,\n\t0x135e: 0x7a51, 0x135f: 0x7a51, 0x1360: 0x7a69, 0x1361: 0x7a69, 0x1362: 0x7a81, 0x1363: 0x7a81,\n\t0x1364: 0x7a99, 0x1365: 0x7a99, 0x1366: 0x7a99, 0x1367: 0x7a99, 0x1368: 0x7ab1, 0x1369: 0x7ab1,\n\t0x136a: 0x7ac9, 0x136b: 0x7ac9, 0x136c: 0x7af1, 0x136d: 0x7af1, 0x136e: 0x7b19, 0x136f: 0x7b19,\n\t0x1370: 0x7b41, 0x1371: 0x7b41, 0x1372: 0x7b69, 0x1373: 0x7b69, 0x1374: 0x7b91, 0x1375: 0x7b91,\n\t0x1376: 0x7bb9, 0x1377: 0x7bb9, 0x1378: 0x7bb9, 0x1379: 0x7be1, 0x137a: 0x7be1, 0x137b: 0x7be1,\n\t0x137c: 0x7c09, 0x137d: 0x7c09, 0x137e: 0x7c09, 0x137f: 0x7c09,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x85f9, 0x1381: 0x8621, 0x1382: 0x8649, 0x1383: 0x8671, 0x1384: 0x8699, 0x1385: 0x86c1,\n\t0x1386: 0x86e9, 0x1387: 0x8711, 0x1388: 0x8739, 0x1389: 0x8761, 0x138a: 0x8789, 0x138b: 0x87b1,\n\t0x138c: 0x87d9, 0x138d: 0x8801, 0x138e: 0x8829, 0x138f: 0x8851, 0x1390: 0x8879, 0x1391: 0x88a1,\n\t0x1392: 0x88c9, 0x1393: 0x88f1, 0x1394: 0x8919, 0x1395: 0x8941, 0x1396: 0x8969, 0x1397: 0x8991,\n\t0x1398: 0x89b9, 0x1399: 0x89e1, 0x139a: 0x8a09, 0x139b: 0x8a31, 0x139c: 0x8a59, 0x139d: 0x8a81,\n\t0x139e: 0x8aaa, 0x139f: 0x8ada, 0x13a0: 0x8b0a, 0x13a1: 0x8b3a, 0x13a2: 0x8b6a, 0x13a3: 0x8b9a,\n\t0x13a4: 0x8bc9, 0x13a5: 0x8bf1, 0x13a6: 0x7c71, 0x13a7: 0x8c19, 0x13a8: 0x7be1, 0x13a9: 0x7c99,\n\t0x13aa: 0x8c41, 0x13ab: 0x8c69, 0x13ac: 0x7d39, 0x13ad: 0x8c91, 0x13ae: 0x7d61, 0x13af: 0x7d89,\n\t0x13b0: 0x8cb9, 0x13b1: 0x8ce1, 0x13b2: 0x7e29, 0x13b3: 0x8d09, 0x13b4: 0x7e51, 0x13b5: 0x7e79,\n\t0x13b6: 0x8d31, 0x13b7: 0x8d59, 0x13b8: 0x7ec9, 0x13b9: 0x8d81, 0x13ba: 0x7ef1, 0x13bb: 0x7f19,\n\t0x13bc: 0x83a1, 0x13bd: 0x83c9, 0x13be: 0x8441, 0x13bf: 0x8469,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x8491, 0x13c1: 0x8531, 0x13c2: 0x8559, 0x13c3: 0x8581, 0x13c4: 0x85a9, 0x13c5: 0x8649,\n\t0x13c6: 0x8671, 0x13c7: 0x8699, 0x13c8: 0x8da9, 0x13c9: 0x8739, 0x13ca: 0x8dd1, 0x13cb: 0x8df9,\n\t0x13cc: 0x8829, 0x13cd: 0x8e21, 0x13ce: 0x8851, 0x13cf: 0x8879, 0x13d0: 0x8a81, 0x13d1: 0x8e49,\n\t0x13d2: 0x8e71, 0x13d3: 0x89b9, 0x13d4: 0x8e99, 0x13d5: 0x89e1, 0x13d6: 0x8a09, 0x13d7: 0x7c21,\n\t0x13d8: 0x7c49, 0x13d9: 0x8ec1, 0x13da: 0x7c71, 0x13db: 0x8ee9, 0x13dc: 0x7cc1, 0x13dd: 0x7ce9,\n\t0x13de: 0x7d11, 0x13df: 0x7d39, 0x13e0: 0x8f11, 0x13e1: 0x7db1, 0x13e2: 0x7dd9, 0x13e3: 0x7e01,\n\t0x13e4: 0x7e29, 0x13e5: 0x8f39, 0x13e6: 0x7ec9, 0x13e7: 0x7f41, 0x13e8: 0x7f69, 0x13e9: 0x7f91,\n\t0x13ea: 0x7fb9, 0x13eb: 0x7fe1, 0x13ec: 0x8031, 0x13ed: 0x8059, 0x13ee: 0x8081, 0x13ef: 0x80a9,\n\t0x13f0: 0x80d1, 0x13f1: 0x80f9, 0x13f2: 0x8f61, 0x13f3: 0x8121, 0x13f4: 0x8149, 0x13f5: 0x8171,\n\t0x13f6: 0x8199, 0x13f7: 0x81c1, 0x13f8: 0x81e9, 0x13f9: 0x8239, 0x13fa: 0x8261, 0x13fb: 0x8289,\n\t0x13fc: 0x82b1, 0x13fd: 0x82d9, 0x13fe: 0x8301, 0x13ff: 0x8329,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8351, 0x1401: 0x8379, 0x1402: 0x83f1, 0x1403: 0x8419, 0x1404: 0x84b9, 0x1405: 0x84e1,\n\t0x1406: 0x8509, 0x1407: 0x8531, 0x1408: 0x8559, 0x1409: 0x85d1, 0x140a: 0x85f9, 0x140b: 0x8621,\n\t0x140c: 0x8649, 0x140d: 0x8f89, 0x140e: 0x86c1, 0x140f: 0x86e9, 0x1410: 0x8711, 0x1411: 0x8739,\n\t0x1412: 0x87b1, 0x1413: 0x87d9, 0x1414: 0x8801, 0x1415: 0x8829, 0x1416: 0x8fb1, 0x1417: 0x88a1,\n\t0x1418: 0x88c9, 0x1419: 0x8fd9, 0x141a: 0x8941, 0x141b: 0x8969, 0x141c: 0x8991, 0x141d: 0x89b9,\n\t0x141e: 0x9001, 0x141f: 0x7c71, 0x1420: 0x8ee9, 0x1421: 0x7d39, 0x1422: 0x8f11, 0x1423: 0x7e29,\n\t0x1424: 0x8f39, 0x1425: 0x7ec9, 0x1426: 0x9029, 0x1427: 0x80d1, 0x1428: 0x9051, 0x1429: 0x9079,\n\t0x142a: 0x90a1, 0x142b: 0x8531, 0x142c: 0x8559, 0x142d: 0x8649, 0x142e: 0x8829, 0x142f: 0x8fb1,\n\t0x1430: 0x89b9, 0x1431: 0x9001, 0x1432: 0x90c9, 0x1433: 0x9101, 0x1434: 0x9139, 0x1435: 0x9171,\n\t0x1436: 0x9199, 0x1437: 0x91c1, 0x1438: 0x91e9, 0x1439: 0x9211, 0x143a: 0x9239, 0x143b: 0x9261,\n\t0x143c: 0x9289, 0x143d: 0x92b1, 0x143e: 0x92d9, 0x143f: 0x9301,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x9329, 0x1441: 0x9351, 0x1442: 0x9379, 0x1443: 0x93a1, 0x1444: 0x93c9, 0x1445: 0x93f1,\n\t0x1446: 0x9419, 0x1447: 0x9441, 0x1448: 0x9469, 0x1449: 0x9491, 0x144a: 0x94b9, 0x144b: 0x94e1,\n\t0x144c: 0x9079, 0x144d: 0x9509, 0x144e: 0x9531, 0x144f: 0x9559, 0x1450: 0x9581, 0x1451: 0x9171,\n\t0x1452: 0x9199, 0x1453: 0x91c1, 0x1454: 0x91e9, 0x1455: 0x9211, 0x1456: 0x9239, 0x1457: 0x9261,\n\t0x1458: 0x9289, 0x1459: 0x92b1, 0x145a: 0x92d9, 0x145b: 0x9301, 0x145c: 0x9329, 0x145d: 0x9351,\n\t0x145e: 0x9379, 0x145f: 0x93a1, 0x1460: 0x93c9, 0x1461: 0x93f1, 0x1462: 0x9419, 0x1463: 0x9441,\n\t0x1464: 0x9469, 0x1465: 0x9491, 0x1466: 0x94b9, 0x1467: 0x94e1, 0x1468: 0x9079, 0x1469: 0x9509,\n\t0x146a: 0x9531, 0x146b: 0x9559, 0x146c: 0x9581, 0x146d: 0x9491, 0x146e: 0x94b9, 0x146f: 0x94e1,\n\t0x1470: 0x9079, 0x1471: 0x9051, 0x1472: 0x90a1, 0x1473: 0x8211, 0x1474: 0x8059, 0x1475: 0x8081,\n\t0x1476: 0x80a9, 0x1477: 0x9491, 0x1478: 0x94b9, 0x1479: 0x94e1, 0x147a: 0x8211, 0x147b: 0x8239,\n\t0x147c: 0x95a9, 0x147d: 0x95a9, 0x147e: 0x0018, 0x147f: 0x0018,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0040, 0x1481: 0x0040, 0x1482: 0x0040, 0x1483: 0x0040, 0x1484: 0x0040, 0x1485: 0x0040,\n\t0x1486: 0x0040, 0x1487: 0x0040, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,\n\t0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x95d1, 0x1491: 0x9609,\n\t0x1492: 0x9609, 0x1493: 0x9641, 0x1494: 0x9679, 0x1495: 0x96b1, 0x1496: 0x96e9, 0x1497: 0x9721,\n\t0x1498: 0x9759, 0x1499: 0x9759, 0x149a: 0x9791, 0x149b: 0x97c9, 0x149c: 0x9801, 0x149d: 0x9839,\n\t0x149e: 0x9871, 0x149f: 0x98a9, 0x14a0: 0x98a9, 0x14a1: 0x98e1, 0x14a2: 0x9919, 0x14a3: 0x9919,\n\t0x14a4: 0x9951, 0x14a5: 0x9951, 0x14a6: 0x9989, 0x14a7: 0x99c1, 0x14a8: 0x99c1, 0x14a9: 0x99f9,\n\t0x14aa: 0x9a31, 0x14ab: 0x9a31, 0x14ac: 0x9a69, 0x14ad: 0x9a69, 0x14ae: 0x9aa1, 0x14af: 0x9ad9,\n\t0x14b0: 0x9ad9, 0x14b1: 0x9b11, 0x14b2: 0x9b11, 0x14b3: 0x9b49, 0x14b4: 0x9b81, 0x14b5: 0x9bb9,\n\t0x14b6: 0x9bf1, 0x14b7: 0x9bf1, 0x14b8: 0x9c29, 0x14b9: 0x9c61, 0x14ba: 0x9c99, 0x14bb: 0x9cd1,\n\t0x14bc: 0x9d09, 0x14bd: 0x9d09, 0x14be: 0x9d41, 0x14bf: 0x9d79,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0xa949, 0x14c1: 0xa981, 0x14c2: 0xa9b9, 0x14c3: 0xa8a1, 0x14c4: 0x9bb9, 0x14c5: 0x9989,\n\t0x14c6: 0xa9f1, 0x14c7: 0xaa29, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x0040, 0x14d1: 0x0040,\n\t0x14d2: 0x0040, 0x14d3: 0x0040, 0x14d4: 0x0040, 0x14d5: 0x0040, 0x14d6: 0x0040, 0x14d7: 0x0040,\n\t0x14d8: 0x0040, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,\n\t0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x0040, 0x14e1: 0x0040, 0x14e2: 0x0040, 0x14e3: 0x0040,\n\t0x14e4: 0x0040, 0x14e5: 0x0040, 0x14e6: 0x0040, 0x14e7: 0x0040, 0x14e8: 0x0040, 0x14e9: 0x0040,\n\t0x14ea: 0x0040, 0x14eb: 0x0040, 0x14ec: 0x0040, 0x14ed: 0x0040, 0x14ee: 0x0040, 0x14ef: 0x0040,\n\t0x14f0: 0xaa61, 0x14f1: 0xaa99, 0x14f2: 0xaad1, 0x14f3: 0xab19, 0x14f4: 0xab61, 0x14f5: 0xaba9,\n\t0x14f6: 0xabf1, 0x14f7: 0xac39, 0x14f8: 0xac81, 0x14f9: 0xacc9, 0x14fa: 0xad02, 0x14fb: 0xae12,\n\t0x14fc: 0xae91, 0x14fd: 0x0018, 0x14fe: 0x0040, 0x14ff: 0x0040,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x33c0, 0x1501: 0x33c0, 0x1502: 0x33c0, 0x1503: 0x33c0, 0x1504: 0x33c0, 0x1505: 0x33c0,\n\t0x1506: 0x33c0, 0x1507: 0x33c0, 0x1508: 0x33c0, 0x1509: 0x33c0, 0x150a: 0x33c0, 0x150b: 0x33c0,\n\t0x150c: 0x33c0, 0x150d: 0x33c0, 0x150e: 0x33c0, 0x150f: 0x33c0, 0x1510: 0xaeda, 0x1511: 0x7d55,\n\t0x1512: 0x0040, 0x1513: 0xaeea, 0x1514: 0x03c2, 0x1515: 0xaefa, 0x1516: 0xaf0a, 0x1517: 0x7d75,\n\t0x1518: 0x7d95, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x3308, 0x1521: 0x3308, 0x1522: 0x3308, 0x1523: 0x3308,\n\t0x1524: 0x3308, 0x1525: 0x3308, 0x1526: 0x3308, 0x1527: 0x3308, 0x1528: 0x3308, 0x1529: 0x3308,\n\t0x152a: 0x3308, 0x152b: 0x3308, 0x152c: 0x3308, 0x152d: 0x3308, 0x152e: 0x3308, 0x152f: 0x3308,\n\t0x1530: 0x0040, 0x1531: 0x7db5, 0x1532: 0x7dd5, 0x1533: 0xaf1a, 0x1534: 0xaf1a, 0x1535: 0x1fd2,\n\t0x1536: 0x1fe2, 0x1537: 0xaf2a, 0x1538: 0xaf3a, 0x1539: 0x7df5, 0x153a: 0x7e15, 0x153b: 0x7e35,\n\t0x153c: 0x7df5, 0x153d: 0x7e55, 0x153e: 0x7e75, 0x153f: 0x7e55,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x7e95, 0x1541: 0x7eb5, 0x1542: 0x7ed5, 0x1543: 0x7eb5, 0x1544: 0x7ef5, 0x1545: 0x0018,\n\t0x1546: 0x0018, 0x1547: 0xaf4a, 0x1548: 0xaf5a, 0x1549: 0x7f16, 0x154a: 0x7f36, 0x154b: 0x7f56,\n\t0x154c: 0x7f76, 0x154d: 0xaf1a, 0x154e: 0xaf1a, 0x154f: 0xaf1a, 0x1550: 0xaeda, 0x1551: 0x7f95,\n\t0x1552: 0x0040, 0x1553: 0x0040, 0x1554: 0x03c2, 0x1555: 0xaeea, 0x1556: 0xaf0a, 0x1557: 0xaefa,\n\t0x1558: 0x7fb5, 0x1559: 0x1fd2, 0x155a: 0x1fe2, 0x155b: 0xaf2a, 0x155c: 0xaf3a, 0x155d: 0x7e95,\n\t0x155e: 0x7ef5, 0x155f: 0xaf6a, 0x1560: 0xaf7a, 0x1561: 0xaf8a, 0x1562: 0x1fb2, 0x1563: 0xaf99,\n\t0x1564: 0xafaa, 0x1565: 0xafba, 0x1566: 0x1fc2, 0x1567: 0x0040, 0x1568: 0xafca, 0x1569: 0xafda,\n\t0x156a: 0xafea, 0x156b: 0xaffa, 0x156c: 0x0040, 0x156d: 0x0040, 0x156e: 0x0040, 0x156f: 0x0040,\n\t0x1570: 0x7fd6, 0x1571: 0xb009, 0x1572: 0x7ff6, 0x1573: 0x0808, 0x1574: 0x8016, 0x1575: 0x0040,\n\t0x1576: 0x8036, 0x1577: 0xb031, 0x1578: 0x8056, 0x1579: 0xb059, 0x157a: 0x8076, 0x157b: 0xb081,\n\t0x157c: 0x8096, 0x157d: 0xb0a9, 0x157e: 0x80b6, 0x157f: 0xb0d1,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0xb0f9, 0x1581: 0xb111, 0x1582: 0xb111, 0x1583: 0xb129, 0x1584: 0xb129, 0x1585: 0xb141,\n\t0x1586: 0xb141, 0x1587: 0xb159, 0x1588: 0xb159, 0x1589: 0xb171, 0x158a: 0xb171, 0x158b: 0xb171,\n\t0x158c: 0xb171, 0x158d: 0xb189, 0x158e: 0xb189, 0x158f: 0xb1a1, 0x1590: 0xb1a1, 0x1591: 0xb1a1,\n\t0x1592: 0xb1a1, 0x1593: 0xb1b9, 0x1594: 0xb1b9, 0x1595: 0xb1d1, 0x1596: 0xb1d1, 0x1597: 0xb1d1,\n\t0x1598: 0xb1d1, 0x1599: 0xb1e9, 0x159a: 0xb1e9, 0x159b: 0xb1e9, 0x159c: 0xb1e9, 0x159d: 0xb201,\n\t0x159e: 0xb201, 0x159f: 0xb201, 0x15a0: 0xb201, 0x15a1: 0xb219, 0x15a2: 0xb219, 0x15a3: 0xb219,\n\t0x15a4: 0xb219, 0x15a5: 0xb231, 0x15a6: 0xb231, 0x15a7: 0xb231, 0x15a8: 0xb231, 0x15a9: 0xb249,\n\t0x15aa: 0xb249, 0x15ab: 0xb261, 0x15ac: 0xb261, 0x15ad: 0xb279, 0x15ae: 0xb279, 0x15af: 0xb291,\n\t0x15b0: 0xb291, 0x15b1: 0xb2a9, 0x15b2: 0xb2a9, 0x15b3: 0xb2a9, 0x15b4: 0xb2a9, 0x15b5: 0xb2c1,\n\t0x15b6: 0xb2c1, 0x15b7: 0xb2c1, 0x15b8: 0xb2c1, 0x15b9: 0xb2d9, 0x15ba: 0xb2d9, 0x15bb: 0xb2d9,\n\t0x15bc: 0xb2d9, 0x15bd: 0xb2f1, 0x15be: 0xb2f1, 0x15bf: 0xb2f1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb2f1, 0x15c1: 0xb309, 0x15c2: 0xb309, 0x15c3: 0xb309, 0x15c4: 0xb309, 0x15c5: 0xb321,\n\t0x15c6: 0xb321, 0x15c7: 0xb321, 0x15c8: 0xb321, 0x15c9: 0xb339, 0x15ca: 0xb339, 0x15cb: 0xb339,\n\t0x15cc: 0xb339, 0x15cd: 0xb351, 0x15ce: 0xb351, 0x15cf: 0xb351, 0x15d0: 0xb351, 0x15d1: 0xb369,\n\t0x15d2: 0xb369, 0x15d3: 0xb369, 0x15d4: 0xb369, 0x15d5: 0xb381, 0x15d6: 0xb381, 0x15d7: 0xb381,\n\t0x15d8: 0xb381, 0x15d9: 0xb399, 0x15da: 0xb399, 0x15db: 0xb399, 0x15dc: 0xb399, 0x15dd: 0xb3b1,\n\t0x15de: 0xb3b1, 0x15df: 0xb3b1, 0x15e0: 0xb3b1, 0x15e1: 0xb3c9, 0x15e2: 0xb3c9, 0x15e3: 0xb3c9,\n\t0x15e4: 0xb3c9, 0x15e5: 0xb3e1, 0x15e6: 0xb3e1, 0x15e7: 0xb3e1, 0x15e8: 0xb3e1, 0x15e9: 0xb3f9,\n\t0x15ea: 0xb3f9, 0x15eb: 0xb3f9, 0x15ec: 0xb3f9, 0x15ed: 0xb411, 0x15ee: 0xb411, 0x15ef: 0x7ab1,\n\t0x15f0: 0x7ab1, 0x15f1: 0xb429, 0x15f2: 0xb429, 0x15f3: 0xb429, 0x15f4: 0xb429, 0x15f5: 0xb441,\n\t0x15f6: 0xb441, 0x15f7: 0xb469, 0x15f8: 0xb469, 0x15f9: 0xb491, 0x15fa: 0xb491, 0x15fb: 0xb4b9,\n\t0x15fc: 0xb4b9, 0x15fd: 0x0040, 0x15fe: 0x0040, 0x15ff: 0x03c0,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0040, 0x1601: 0xaefa, 0x1602: 0xb4e2, 0x1603: 0xaf6a, 0x1604: 0xafda, 0x1605: 0xafea,\n\t0x1606: 0xaf7a, 0x1607: 0xb4f2, 0x1608: 0x1fd2, 0x1609: 0x1fe2, 0x160a: 0xaf8a, 0x160b: 0x1fb2,\n\t0x160c: 0xaeda, 0x160d: 0xaf99, 0x160e: 0x29d1, 0x160f: 0xb502, 0x1610: 0x1f41, 0x1611: 0x00c9,\n\t0x1612: 0x0069, 0x1613: 0x0079, 0x1614: 0x1f51, 0x1615: 0x1f61, 0x1616: 0x1f71, 0x1617: 0x1f81,\n\t0x1618: 0x1f91, 0x1619: 0x1fa1, 0x161a: 0xaeea, 0x161b: 0x03c2, 0x161c: 0xafaa, 0x161d: 0x1fc2,\n\t0x161e: 0xafba, 0x161f: 0xaf0a, 0x1620: 0xaffa, 0x1621: 0x0039, 0x1622: 0x0ee9, 0x1623: 0x1159,\n\t0x1624: 0x0ef9, 0x1625: 0x0f09, 0x1626: 0x1199, 0x1627: 0x0f31, 0x1628: 0x0249, 0x1629: 0x0f41,\n\t0x162a: 0x0259, 0x162b: 0x0f51, 0x162c: 0x0359, 0x162d: 0x0f61, 0x162e: 0x0f71, 0x162f: 0x00d9,\n\t0x1630: 0x0f99, 0x1631: 0x2039, 0x1632: 0x0269, 0x1633: 0x01d9, 0x1634: 0x0fa9, 0x1635: 0x0fb9,\n\t0x1636: 0x1089, 0x1637: 0x0279, 0x1638: 0x0369, 0x1639: 0x0289, 0x163a: 0x13d1, 0x163b: 0xaf4a,\n\t0x163c: 0xafca, 0x163d: 0xaf5a, 0x163e: 0xb512, 0x163f: 0xaf1a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x1caa, 0x1641: 0x0039, 0x1642: 0x0ee9, 0x1643: 0x1159, 0x1644: 0x0ef9, 0x1645: 0x0f09,\n\t0x1646: 0x1199, 0x1647: 0x0f31, 0x1648: 0x0249, 0x1649: 0x0f41, 0x164a: 0x0259, 0x164b: 0x0f51,\n\t0x164c: 0x0359, 0x164d: 0x0f61, 0x164e: 0x0f71, 0x164f: 0x00d9, 0x1650: 0x0f99, 0x1651: 0x2039,\n\t0x1652: 0x0269, 0x1653: 0x01d9, 0x1654: 0x0fa9, 0x1655: 0x0fb9, 0x1656: 0x1089, 0x1657: 0x0279,\n\t0x1658: 0x0369, 0x1659: 0x0289, 0x165a: 0x13d1, 0x165b: 0xaf2a, 0x165c: 0xb522, 0x165d: 0xaf3a,\n\t0x165e: 0xb532, 0x165f: 0x80d5, 0x1660: 0x80f5, 0x1661: 0x29d1, 0x1662: 0x8115, 0x1663: 0x8115,\n\t0x1664: 0x8135, 0x1665: 0x8155, 0x1666: 0x8175, 0x1667: 0x8195, 0x1668: 0x81b5, 0x1669: 0x81d5,\n\t0x166a: 0x81f5, 0x166b: 0x8215, 0x166c: 0x8235, 0x166d: 0x8255, 0x166e: 0x8275, 0x166f: 0x8295,\n\t0x1670: 0x82b5, 0x1671: 0x82d5, 0x1672: 0x82f5, 0x1673: 0x8315, 0x1674: 0x8335, 0x1675: 0x8355,\n\t0x1676: 0x8375, 0x1677: 0x8395, 0x1678: 0x83b5, 0x1679: 0x83d5, 0x167a: 0x83f5, 0x167b: 0x8415,\n\t0x167c: 0x81b5, 0x167d: 0x8435, 0x167e: 0x8455, 0x167f: 0x8215,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x8475, 0x1681: 0x8495, 0x1682: 0x84b5, 0x1683: 0x84d5, 0x1684: 0x84f5, 0x1685: 0x8515,\n\t0x1686: 0x8535, 0x1687: 0x8555, 0x1688: 0x84d5, 0x1689: 0x8575, 0x168a: 0x84d5, 0x168b: 0x8595,\n\t0x168c: 0x8595, 0x168d: 0x85b5, 0x168e: 0x85b5, 0x168f: 0x85d5, 0x1690: 0x8515, 0x1691: 0x85f5,\n\t0x1692: 0x8615, 0x1693: 0x85f5, 0x1694: 0x8635, 0x1695: 0x8615, 0x1696: 0x8655, 0x1697: 0x8655,\n\t0x1698: 0x8675, 0x1699: 0x8675, 0x169a: 0x8695, 0x169b: 0x8695, 0x169c: 0x8615, 0x169d: 0x8115,\n\t0x169e: 0x86b5, 0x169f: 0x86d5, 0x16a0: 0x0040, 0x16a1: 0x86f5, 0x16a2: 0x8715, 0x16a3: 0x8735,\n\t0x16a4: 0x8755, 0x16a5: 0x8735, 0x16a6: 0x8775, 0x16a7: 0x8795, 0x16a8: 0x87b5, 0x16a9: 0x87b5,\n\t0x16aa: 0x87d5, 0x16ab: 0x87d5, 0x16ac: 0x87f5, 0x16ad: 0x87f5, 0x16ae: 0x87d5, 0x16af: 0x87d5,\n\t0x16b0: 0x8815, 0x16b1: 0x8835, 0x16b2: 0x8855, 0x16b3: 0x8875, 0x16b4: 0x8895, 0x16b5: 0x88b5,\n\t0x16b6: 0x88b5, 0x16b7: 0x88b5, 0x16b8: 0x88d5, 0x16b9: 0x88d5, 0x16ba: 0x88d5, 0x16bb: 0x88d5,\n\t0x16bc: 0x87b5, 0x16bd: 0x87b5, 0x16be: 0x87b5, 0x16bf: 0x0040,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0040, 0x16c1: 0x0040, 0x16c2: 0x8715, 0x16c3: 0x86f5, 0x16c4: 0x88f5, 0x16c5: 0x86f5,\n\t0x16c6: 0x8715, 0x16c7: 0x86f5, 0x16c8: 0x0040, 0x16c9: 0x0040, 0x16ca: 0x8915, 0x16cb: 0x8715,\n\t0x16cc: 0x8935, 0x16cd: 0x88f5, 0x16ce: 0x8935, 0x16cf: 0x8715, 0x16d0: 0x0040, 0x16d1: 0x0040,\n\t0x16d2: 0x8955, 0x16d3: 0x8975, 0x16d4: 0x8875, 0x16d5: 0x8935, 0x16d6: 0x88f5, 0x16d7: 0x8935,\n\t0x16d8: 0x0040, 0x16d9: 0x0040, 0x16da: 0x8995, 0x16db: 0x89b5, 0x16dc: 0x8995, 0x16dd: 0x0040,\n\t0x16de: 0x0040, 0x16df: 0x0040, 0x16e0: 0xb541, 0x16e1: 0xb559, 0x16e2: 0xb571, 0x16e3: 0x89d6,\n\t0x16e4: 0xb589, 0x16e5: 0xb5a1, 0x16e6: 0x89f5, 0x16e7: 0x0040, 0x16e8: 0x8a15, 0x16e9: 0x8a35,\n\t0x16ea: 0x8a55, 0x16eb: 0x8a35, 0x16ec: 0x8a75, 0x16ed: 0x8a95, 0x16ee: 0x8ab5, 0x16ef: 0x0040,\n\t0x16f0: 0x0040, 0x16f1: 0x0040, 0x16f2: 0x0040, 0x16f3: 0x0040, 0x16f4: 0x0040, 0x16f5: 0x0040,\n\t0x16f6: 0x0040, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0340, 0x16fa: 0x0340, 0x16fb: 0x0340,\n\t0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0a08, 0x1701: 0x0a08, 0x1702: 0x0a08, 0x1703: 0x0a08, 0x1704: 0x0a08, 0x1705: 0x0c08,\n\t0x1706: 0x0808, 0x1707: 0x0c08, 0x1708: 0x0818, 0x1709: 0x0c08, 0x170a: 0x0c08, 0x170b: 0x0808,\n\t0x170c: 0x0808, 0x170d: 0x0908, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0c08, 0x1711: 0x0c08,\n\t0x1712: 0x0c08, 0x1713: 0x0a08, 0x1714: 0x0a08, 0x1715: 0x0a08, 0x1716: 0x0a08, 0x1717: 0x0908,\n\t0x1718: 0x0a08, 0x1719: 0x0a08, 0x171a: 0x0a08, 0x171b: 0x0a08, 0x171c: 0x0a08, 0x171d: 0x0c08,\n\t0x171e: 0x0a08, 0x171f: 0x0a08, 0x1720: 0x0a08, 0x1721: 0x0c08, 0x1722: 0x0808, 0x1723: 0x0808,\n\t0x1724: 0x0c08, 0x1725: 0x3308, 0x1726: 0x3308, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0040,\n\t0x172a: 0x0040, 0x172b: 0x0a18, 0x172c: 0x0a18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0c18,\n\t0x1730: 0x0818, 0x1731: 0x0818, 0x1732: 0x0818, 0x1733: 0x0818, 0x1734: 0x0818, 0x1735: 0x0818,\n\t0x1736: 0x0818, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0c08, 0x1742: 0x0a08, 0x1743: 0x0c08, 0x1744: 0x0c08, 0x1745: 0x0c08,\n\t0x1746: 0x0a08, 0x1747: 0x0a08, 0x1748: 0x0a08, 0x1749: 0x0c08, 0x174a: 0x0a08, 0x174b: 0x0a08,\n\t0x174c: 0x0c08, 0x174d: 0x0a08, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0a08, 0x1751: 0x0c08,\n\t0x1752: 0x0040, 0x1753: 0x0040, 0x1754: 0x0040, 0x1755: 0x0040, 0x1756: 0x0040, 0x1757: 0x0040,\n\t0x1758: 0x0040, 0x1759: 0x0818, 0x175a: 0x0818, 0x175b: 0x0818, 0x175c: 0x0818, 0x175d: 0x0040,\n\t0x175e: 0x0040, 0x175f: 0x0040, 0x1760: 0x0040, 0x1761: 0x0040, 0x1762: 0x0040, 0x1763: 0x0040,\n\t0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0c18,\n\t0x176a: 0x0c18, 0x176b: 0x0c18, 0x176c: 0x0c18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0818,\n\t0x1770: 0x0040, 0x1771: 0x0040, 0x1772: 0x0040, 0x1773: 0x0040, 0x1774: 0x0040, 0x1775: 0x0040,\n\t0x1776: 0x0040, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x3308, 0x1781: 0x3308, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x0040, 0x1785: 0x0008,\n\t0x1786: 0x0008, 0x1787: 0x0008, 0x1788: 0x0008, 0x1789: 0x0008, 0x178a: 0x0008, 0x178b: 0x0008,\n\t0x178c: 0x0008, 0x178d: 0x0040, 0x178e: 0x0040, 0x178f: 0x0008, 0x1790: 0x0008, 0x1791: 0x0040,\n\t0x1792: 0x0040, 0x1793: 0x0008, 0x1794: 0x0008, 0x1795: 0x0008, 0x1796: 0x0008, 0x1797: 0x0008,\n\t0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0008, 0x17a3: 0x0008,\n\t0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0040,\n\t0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,\n\t0x17b0: 0x0008, 0x17b1: 0x0040, 0x17b2: 0x0008, 0x17b3: 0x0008, 0x17b4: 0x0040, 0x17b5: 0x0008,\n\t0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x3308, 0x17bd: 0x0008, 0x17be: 0x3008, 0x17bf: 0x3008,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3008, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x3008, 0x17c5: 0x0040,\n\t0x17c6: 0x0040, 0x17c7: 0x3008, 0x17c8: 0x3008, 0x17c9: 0x0040, 0x17ca: 0x0040, 0x17cb: 0x3008,\n\t0x17cc: 0x3008, 0x17cd: 0x3808, 0x17ce: 0x0040, 0x17cf: 0x0040, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0040, 0x17d4: 0x0040, 0x17d5: 0x0040, 0x17d6: 0x0040, 0x17d7: 0x3008,\n\t0x17d8: 0x0040, 0x17d9: 0x0040, 0x17da: 0x0040, 0x17db: 0x0040, 0x17dc: 0x0040, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x3008, 0x17e3: 0x3008,\n\t0x17e4: 0x0040, 0x17e5: 0x0040, 0x17e6: 0x3308, 0x17e7: 0x3308, 0x17e8: 0x3308, 0x17e9: 0x3308,\n\t0x17ea: 0x3308, 0x17eb: 0x3308, 0x17ec: 0x3308, 0x17ed: 0x0040, 0x17ee: 0x0040, 0x17ef: 0x0040,\n\t0x17f0: 0x3308, 0x17f1: 0x3308, 0x17f2: 0x3308, 0x17f3: 0x3308, 0x17f4: 0x3308, 0x17f5: 0x0040,\n\t0x17f6: 0x0040, 0x17f7: 0x0040, 0x17f8: 0x0040, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0039, 0x1801: 0x0ee9, 0x1802: 0x1159, 0x1803: 0x0ef9, 0x1804: 0x0f09, 0x1805: 0x1199,\n\t0x1806: 0x0f31, 0x1807: 0x0249, 0x1808: 0x0f41, 0x1809: 0x0259, 0x180a: 0x0f51, 0x180b: 0x0359,\n\t0x180c: 0x0f61, 0x180d: 0x0f71, 0x180e: 0x00d9, 0x180f: 0x0f99, 0x1810: 0x2039, 0x1811: 0x0269,\n\t0x1812: 0x01d9, 0x1813: 0x0fa9, 0x1814: 0x0fb9, 0x1815: 0x1089, 0x1816: 0x0279, 0x1817: 0x0369,\n\t0x1818: 0x0289, 0x1819: 0x13d1, 0x181a: 0x0039, 0x181b: 0x0ee9, 0x181c: 0x1159, 0x181d: 0x0ef9,\n\t0x181e: 0x0f09, 0x181f: 0x1199, 0x1820: 0x0f31, 0x1821: 0x0249, 0x1822: 0x0f41, 0x1823: 0x0259,\n\t0x1824: 0x0f51, 0x1825: 0x0359, 0x1826: 0x0f61, 0x1827: 0x0f71, 0x1828: 0x00d9, 0x1829: 0x0f99,\n\t0x182a: 0x2039, 0x182b: 0x0269, 0x182c: 0x01d9, 0x182d: 0x0fa9, 0x182e: 0x0fb9, 0x182f: 0x1089,\n\t0x1830: 0x0279, 0x1831: 0x0369, 0x1832: 0x0289, 0x1833: 0x13d1, 0x1834: 0x0039, 0x1835: 0x0ee9,\n\t0x1836: 0x1159, 0x1837: 0x0ef9, 0x1838: 0x0f09, 0x1839: 0x1199, 0x183a: 0x0f31, 0x183b: 0x0249,\n\t0x183c: 0x0f41, 0x183d: 0x0259, 0x183e: 0x0f51, 0x183f: 0x0359,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0f61, 0x1841: 0x0f71, 0x1842: 0x00d9, 0x1843: 0x0f99, 0x1844: 0x2039, 0x1845: 0x0269,\n\t0x1846: 0x01d9, 0x1847: 0x0fa9, 0x1848: 0x0fb9, 0x1849: 0x1089, 0x184a: 0x0279, 0x184b: 0x0369,\n\t0x184c: 0x0289, 0x184d: 0x13d1, 0x184e: 0x0039, 0x184f: 0x0ee9, 0x1850: 0x1159, 0x1851: 0x0ef9,\n\t0x1852: 0x0f09, 0x1853: 0x1199, 0x1854: 0x0f31, 0x1855: 0x0040, 0x1856: 0x0f41, 0x1857: 0x0259,\n\t0x1858: 0x0f51, 0x1859: 0x0359, 0x185a: 0x0f61, 0x185b: 0x0f71, 0x185c: 0x00d9, 0x185d: 0x0f99,\n\t0x185e: 0x2039, 0x185f: 0x0269, 0x1860: 0x01d9, 0x1861: 0x0fa9, 0x1862: 0x0fb9, 0x1863: 0x1089,\n\t0x1864: 0x0279, 0x1865: 0x0369, 0x1866: 0x0289, 0x1867: 0x13d1, 0x1868: 0x0039, 0x1869: 0x0ee9,\n\t0x186a: 0x1159, 0x186b: 0x0ef9, 0x186c: 0x0f09, 0x186d: 0x1199, 0x186e: 0x0f31, 0x186f: 0x0249,\n\t0x1870: 0x0f41, 0x1871: 0x0259, 0x1872: 0x0f51, 0x1873: 0x0359, 0x1874: 0x0f61, 0x1875: 0x0f71,\n\t0x1876: 0x00d9, 0x1877: 0x0f99, 0x1878: 0x2039, 0x1879: 0x0269, 0x187a: 0x01d9, 0x187b: 0x0fa9,\n\t0x187c: 0x0fb9, 0x187d: 0x1089, 0x187e: 0x0279, 0x187f: 0x0369,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0289, 0x1881: 0x13d1, 0x1882: 0x0039, 0x1883: 0x0ee9, 0x1884: 0x1159, 0x1885: 0x0ef9,\n\t0x1886: 0x0f09, 0x1887: 0x1199, 0x1888: 0x0f31, 0x1889: 0x0249, 0x188a: 0x0f41, 0x188b: 0x0259,\n\t0x188c: 0x0f51, 0x188d: 0x0359, 0x188e: 0x0f61, 0x188f: 0x0f71, 0x1890: 0x00d9, 0x1891: 0x0f99,\n\t0x1892: 0x2039, 0x1893: 0x0269, 0x1894: 0x01d9, 0x1895: 0x0fa9, 0x1896: 0x0fb9, 0x1897: 0x1089,\n\t0x1898: 0x0279, 0x1899: 0x0369, 0x189a: 0x0289, 0x189b: 0x13d1, 0x189c: 0x0039, 0x189d: 0x0040,\n\t0x189e: 0x1159, 0x189f: 0x0ef9, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0f31, 0x18a3: 0x0040,\n\t0x18a4: 0x0040, 0x18a5: 0x0259, 0x18a6: 0x0f51, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0f71,\n\t0x18aa: 0x00d9, 0x18ab: 0x0f99, 0x18ac: 0x2039, 0x18ad: 0x0040, 0x18ae: 0x01d9, 0x18af: 0x0fa9,\n\t0x18b0: 0x0fb9, 0x18b1: 0x1089, 0x18b2: 0x0279, 0x18b3: 0x0369, 0x18b4: 0x0289, 0x18b5: 0x13d1,\n\t0x18b6: 0x0039, 0x18b7: 0x0ee9, 0x18b8: 0x1159, 0x18b9: 0x0ef9, 0x18ba: 0x0040, 0x18bb: 0x1199,\n\t0x18bc: 0x0040, 0x18bd: 0x0249, 0x18be: 0x0f41, 0x18bf: 0x0259,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0f51, 0x18c1: 0x0359, 0x18c2: 0x0f61, 0x18c3: 0x0f71, 0x18c4: 0x0040, 0x18c5: 0x0f99,\n\t0x18c6: 0x2039, 0x18c7: 0x0269, 0x18c8: 0x01d9, 0x18c9: 0x0fa9, 0x18ca: 0x0fb9, 0x18cb: 0x1089,\n\t0x18cc: 0x0279, 0x18cd: 0x0369, 0x18ce: 0x0289, 0x18cf: 0x13d1, 0x18d0: 0x0039, 0x18d1: 0x0ee9,\n\t0x18d2: 0x1159, 0x18d3: 0x0ef9, 0x18d4: 0x0f09, 0x18d5: 0x1199, 0x18d6: 0x0f31, 0x18d7: 0x0249,\n\t0x18d8: 0x0f41, 0x18d9: 0x0259, 0x18da: 0x0f51, 0x18db: 0x0359, 0x18dc: 0x0f61, 0x18dd: 0x0f71,\n\t0x18de: 0x00d9, 0x18df: 0x0f99, 0x18e0: 0x2039, 0x18e1: 0x0269, 0x18e2: 0x01d9, 0x18e3: 0x0fa9,\n\t0x18e4: 0x0fb9, 0x18e5: 0x1089, 0x18e6: 0x0279, 0x18e7: 0x0369, 0x18e8: 0x0289, 0x18e9: 0x13d1,\n\t0x18ea: 0x0039, 0x18eb: 0x0ee9, 0x18ec: 0x1159, 0x18ed: 0x0ef9, 0x18ee: 0x0f09, 0x18ef: 0x1199,\n\t0x18f0: 0x0f31, 0x18f1: 0x0249, 0x18f2: 0x0f41, 0x18f3: 0x0259, 0x18f4: 0x0f51, 0x18f5: 0x0359,\n\t0x18f6: 0x0f61, 0x18f7: 0x0f71, 0x18f8: 0x00d9, 0x18f9: 0x0f99, 0x18fa: 0x2039, 0x18fb: 0x0269,\n\t0x18fc: 0x01d9, 0x18fd: 0x0fa9, 0x18fe: 0x0fb9, 0x18ff: 0x1089,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0279, 0x1901: 0x0369, 0x1902: 0x0289, 0x1903: 0x13d1, 0x1904: 0x0039, 0x1905: 0x0ee9,\n\t0x1906: 0x0040, 0x1907: 0x0ef9, 0x1908: 0x0f09, 0x1909: 0x1199, 0x190a: 0x0f31, 0x190b: 0x0040,\n\t0x190c: 0x0040, 0x190d: 0x0259, 0x190e: 0x0f51, 0x190f: 0x0359, 0x1910: 0x0f61, 0x1911: 0x0f71,\n\t0x1912: 0x00d9, 0x1913: 0x0f99, 0x1914: 0x2039, 0x1915: 0x0040, 0x1916: 0x01d9, 0x1917: 0x0fa9,\n\t0x1918: 0x0fb9, 0x1919: 0x1089, 0x191a: 0x0279, 0x191b: 0x0369, 0x191c: 0x0289, 0x191d: 0x0040,\n\t0x191e: 0x0039, 0x191f: 0x0ee9, 0x1920: 0x1159, 0x1921: 0x0ef9, 0x1922: 0x0f09, 0x1923: 0x1199,\n\t0x1924: 0x0f31, 0x1925: 0x0249, 0x1926: 0x0f41, 0x1927: 0x0259, 0x1928: 0x0f51, 0x1929: 0x0359,\n\t0x192a: 0x0f61, 0x192b: 0x0f71, 0x192c: 0x00d9, 0x192d: 0x0f99, 0x192e: 0x2039, 0x192f: 0x0269,\n\t0x1930: 0x01d9, 0x1931: 0x0fa9, 0x1932: 0x0fb9, 0x1933: 0x1089, 0x1934: 0x0279, 0x1935: 0x0369,\n\t0x1936: 0x0289, 0x1937: 0x13d1, 0x1938: 0x0039, 0x1939: 0x0ee9, 0x193a: 0x0040, 0x193b: 0x0ef9,\n\t0x193c: 0x0f09, 0x193d: 0x1199, 0x193e: 0x0f31, 0x193f: 0x0040,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0f41, 0x1941: 0x0259, 0x1942: 0x0f51, 0x1943: 0x0359, 0x1944: 0x0f61, 0x1945: 0x0040,\n\t0x1946: 0x00d9, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x01d9, 0x194b: 0x0fa9,\n\t0x194c: 0x0fb9, 0x194d: 0x1089, 0x194e: 0x0279, 0x194f: 0x0369, 0x1950: 0x0289, 0x1951: 0x0040,\n\t0x1952: 0x0039, 0x1953: 0x0ee9, 0x1954: 0x1159, 0x1955: 0x0ef9, 0x1956: 0x0f09, 0x1957: 0x1199,\n\t0x1958: 0x0f31, 0x1959: 0x0249, 0x195a: 0x0f41, 0x195b: 0x0259, 0x195c: 0x0f51, 0x195d: 0x0359,\n\t0x195e: 0x0f61, 0x195f: 0x0f71, 0x1960: 0x00d9, 0x1961: 0x0f99, 0x1962: 0x2039, 0x1963: 0x0269,\n\t0x1964: 0x01d9, 0x1965: 0x0fa9, 0x1966: 0x0fb9, 0x1967: 0x1089, 0x1968: 0x0279, 0x1969: 0x0369,\n\t0x196a: 0x0289, 0x196b: 0x13d1, 0x196c: 0x0039, 0x196d: 0x0ee9, 0x196e: 0x1159, 0x196f: 0x0ef9,\n\t0x1970: 0x0f09, 0x1971: 0x1199, 0x1972: 0x0f31, 0x1973: 0x0249, 0x1974: 0x0f41, 0x1975: 0x0259,\n\t0x1976: 0x0f51, 0x1977: 0x0359, 0x1978: 0x0f61, 0x1979: 0x0f71, 0x197a: 0x00d9, 0x197b: 0x0f99,\n\t0x197c: 0x2039, 0x197d: 0x0269, 0x197e: 0x01d9, 0x197f: 0x0fa9,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0fb9, 0x1981: 0x1089, 0x1982: 0x0279, 0x1983: 0x0369, 0x1984: 0x0289, 0x1985: 0x13d1,\n\t0x1986: 0x0039, 0x1987: 0x0ee9, 0x1988: 0x1159, 0x1989: 0x0ef9, 0x198a: 0x0f09, 0x198b: 0x1199,\n\t0x198c: 0x0f31, 0x198d: 0x0249, 0x198e: 0x0f41, 0x198f: 0x0259, 0x1990: 0x0f51, 0x1991: 0x0359,\n\t0x1992: 0x0f61, 0x1993: 0x0f71, 0x1994: 0x00d9, 0x1995: 0x0f99, 0x1996: 0x2039, 0x1997: 0x0269,\n\t0x1998: 0x01d9, 0x1999: 0x0fa9, 0x199a: 0x0fb9, 0x199b: 0x1089, 0x199c: 0x0279, 0x199d: 0x0369,\n\t0x199e: 0x0289, 0x199f: 0x13d1, 0x19a0: 0x0039, 0x19a1: 0x0ee9, 0x19a2: 0x1159, 0x19a3: 0x0ef9,\n\t0x19a4: 0x0f09, 0x19a5: 0x1199, 0x19a6: 0x0f31, 0x19a7: 0x0249, 0x19a8: 0x0f41, 0x19a9: 0x0259,\n\t0x19aa: 0x0f51, 0x19ab: 0x0359, 0x19ac: 0x0f61, 0x19ad: 0x0f71, 0x19ae: 0x00d9, 0x19af: 0x0f99,\n\t0x19b0: 0x2039, 0x19b1: 0x0269, 0x19b2: 0x01d9, 0x19b3: 0x0fa9, 0x19b4: 0x0fb9, 0x19b5: 0x1089,\n\t0x19b6: 0x0279, 0x19b7: 0x0369, 0x19b8: 0x0289, 0x19b9: 0x13d1, 0x19ba: 0x0039, 0x19bb: 0x0ee9,\n\t0x19bc: 0x1159, 0x19bd: 0x0ef9, 0x19be: 0x0f09, 0x19bf: 0x1199,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0f31, 0x19c1: 0x0249, 0x19c2: 0x0f41, 0x19c3: 0x0259, 0x19c4: 0x0f51, 0x19c5: 0x0359,\n\t0x19c6: 0x0f61, 0x19c7: 0x0f71, 0x19c8: 0x00d9, 0x19c9: 0x0f99, 0x19ca: 0x2039, 0x19cb: 0x0269,\n\t0x19cc: 0x01d9, 0x19cd: 0x0fa9, 0x19ce: 0x0fb9, 0x19cf: 0x1089, 0x19d0: 0x0279, 0x19d1: 0x0369,\n\t0x19d2: 0x0289, 0x19d3: 0x13d1, 0x19d4: 0x0039, 0x19d5: 0x0ee9, 0x19d6: 0x1159, 0x19d7: 0x0ef9,\n\t0x19d8: 0x0f09, 0x19d9: 0x1199, 0x19da: 0x0f31, 0x19db: 0x0249, 0x19dc: 0x0f41, 0x19dd: 0x0259,\n\t0x19de: 0x0f51, 0x19df: 0x0359, 0x19e0: 0x0f61, 0x19e1: 0x0f71, 0x19e2: 0x00d9, 0x19e3: 0x0f99,\n\t0x19e4: 0x2039, 0x19e5: 0x0269, 0x19e6: 0x01d9, 0x19e7: 0x0fa9, 0x19e8: 0x0fb9, 0x19e9: 0x1089,\n\t0x19ea: 0x0279, 0x19eb: 0x0369, 0x19ec: 0x0289, 0x19ed: 0x13d1, 0x19ee: 0x0039, 0x19ef: 0x0ee9,\n\t0x19f0: 0x1159, 0x19f1: 0x0ef9, 0x19f2: 0x0f09, 0x19f3: 0x1199, 0x19f4: 0x0f31, 0x19f5: 0x0249,\n\t0x19f6: 0x0f41, 0x19f7: 0x0259, 0x19f8: 0x0f51, 0x19f9: 0x0359, 0x19fa: 0x0f61, 0x19fb: 0x0f71,\n\t0x19fc: 0x00d9, 0x19fd: 0x0f99, 0x19fe: 0x2039, 0x19ff: 0x0269,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x01d9, 0x1a01: 0x0fa9, 0x1a02: 0x0fb9, 0x1a03: 0x1089, 0x1a04: 0x0279, 0x1a05: 0x0369,\n\t0x1a06: 0x0289, 0x1a07: 0x13d1, 0x1a08: 0x0039, 0x1a09: 0x0ee9, 0x1a0a: 0x1159, 0x1a0b: 0x0ef9,\n\t0x1a0c: 0x0f09, 0x1a0d: 0x1199, 0x1a0e: 0x0f31, 0x1a0f: 0x0249, 0x1a10: 0x0f41, 0x1a11: 0x0259,\n\t0x1a12: 0x0f51, 0x1a13: 0x0359, 0x1a14: 0x0f61, 0x1a15: 0x0f71, 0x1a16: 0x00d9, 0x1a17: 0x0f99,\n\t0x1a18: 0x2039, 0x1a19: 0x0269, 0x1a1a: 0x01d9, 0x1a1b: 0x0fa9, 0x1a1c: 0x0fb9, 0x1a1d: 0x1089,\n\t0x1a1e: 0x0279, 0x1a1f: 0x0369, 0x1a20: 0x0289, 0x1a21: 0x13d1, 0x1a22: 0x0039, 0x1a23: 0x0ee9,\n\t0x1a24: 0x1159, 0x1a25: 0x0ef9, 0x1a26: 0x0f09, 0x1a27: 0x1199, 0x1a28: 0x0f31, 0x1a29: 0x0249,\n\t0x1a2a: 0x0f41, 0x1a2b: 0x0259, 0x1a2c: 0x0f51, 0x1a2d: 0x0359, 0x1a2e: 0x0f61, 0x1a2f: 0x0f71,\n\t0x1a30: 0x00d9, 0x1a31: 0x0f99, 0x1a32: 0x2039, 0x1a33: 0x0269, 0x1a34: 0x01d9, 0x1a35: 0x0fa9,\n\t0x1a36: 0x0fb9, 0x1a37: 0x1089, 0x1a38: 0x0279, 0x1a39: 0x0369, 0x1a3a: 0x0289, 0x1a3b: 0x13d1,\n\t0x1a3c: 0x0039, 0x1a3d: 0x0ee9, 0x1a3e: 0x1159, 0x1a3f: 0x0ef9,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x0f09, 0x1a41: 0x1199, 0x1a42: 0x0f31, 0x1a43: 0x0249, 0x1a44: 0x0f41, 0x1a45: 0x0259,\n\t0x1a46: 0x0f51, 0x1a47: 0x0359, 0x1a48: 0x0f61, 0x1a49: 0x0f71, 0x1a4a: 0x00d9, 0x1a4b: 0x0f99,\n\t0x1a4c: 0x2039, 0x1a4d: 0x0269, 0x1a4e: 0x01d9, 0x1a4f: 0x0fa9, 0x1a50: 0x0fb9, 0x1a51: 0x1089,\n\t0x1a52: 0x0279, 0x1a53: 0x0369, 0x1a54: 0x0289, 0x1a55: 0x13d1, 0x1a56: 0x0039, 0x1a57: 0x0ee9,\n\t0x1a58: 0x1159, 0x1a59: 0x0ef9, 0x1a5a: 0x0f09, 0x1a5b: 0x1199, 0x1a5c: 0x0f31, 0x1a5d: 0x0249,\n\t0x1a5e: 0x0f41, 0x1a5f: 0x0259, 0x1a60: 0x0f51, 0x1a61: 0x0359, 0x1a62: 0x0f61, 0x1a63: 0x0f71,\n\t0x1a64: 0x00d9, 0x1a65: 0x0f99, 0x1a66: 0x2039, 0x1a67: 0x0269, 0x1a68: 0x01d9, 0x1a69: 0x0fa9,\n\t0x1a6a: 0x0fb9, 0x1a6b: 0x1089, 0x1a6c: 0x0279, 0x1a6d: 0x0369, 0x1a6e: 0x0289, 0x1a6f: 0x13d1,\n\t0x1a70: 0x0039, 0x1a71: 0x0ee9, 0x1a72: 0x1159, 0x1a73: 0x0ef9, 0x1a74: 0x0f09, 0x1a75: 0x1199,\n\t0x1a76: 0x0f31, 0x1a77: 0x0249, 0x1a78: 0x0f41, 0x1a79: 0x0259, 0x1a7a: 0x0f51, 0x1a7b: 0x0359,\n\t0x1a7c: 0x0f61, 0x1a7d: 0x0f71, 0x1a7e: 0x00d9, 0x1a7f: 0x0f99,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x2039, 0x1a81: 0x0269, 0x1a82: 0x01d9, 0x1a83: 0x0fa9, 0x1a84: 0x0fb9, 0x1a85: 0x1089,\n\t0x1a86: 0x0279, 0x1a87: 0x0369, 0x1a88: 0x0289, 0x1a89: 0x13d1, 0x1a8a: 0x0039, 0x1a8b: 0x0ee9,\n\t0x1a8c: 0x1159, 0x1a8d: 0x0ef9, 0x1a8e: 0x0f09, 0x1a8f: 0x1199, 0x1a90: 0x0f31, 0x1a91: 0x0249,\n\t0x1a92: 0x0f41, 0x1a93: 0x0259, 0x1a94: 0x0f51, 0x1a95: 0x0359, 0x1a96: 0x0f61, 0x1a97: 0x0f71,\n\t0x1a98: 0x00d9, 0x1a99: 0x0f99, 0x1a9a: 0x2039, 0x1a9b: 0x0269, 0x1a9c: 0x01d9, 0x1a9d: 0x0fa9,\n\t0x1a9e: 0x0fb9, 0x1a9f: 0x1089, 0x1aa0: 0x0279, 0x1aa1: 0x0369, 0x1aa2: 0x0289, 0x1aa3: 0x13d1,\n\t0x1aa4: 0xba81, 0x1aa5: 0xba99, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0xbab1, 0x1aa9: 0x1099,\n\t0x1aaa: 0x10b1, 0x1aab: 0x10c9, 0x1aac: 0xbac9, 0x1aad: 0xbae1, 0x1aae: 0xbaf9, 0x1aaf: 0x1429,\n\t0x1ab0: 0x1a31, 0x1ab1: 0xbb11, 0x1ab2: 0xbb29, 0x1ab3: 0xbb41, 0x1ab4: 0xbb59, 0x1ab5: 0xbb71,\n\t0x1ab6: 0xbb89, 0x1ab7: 0x2109, 0x1ab8: 0x1111, 0x1ab9: 0x1429, 0x1aba: 0xbba1, 0x1abb: 0xbbb9,\n\t0x1abc: 0xbbd1, 0x1abd: 0x10e1, 0x1abe: 0x10f9, 0x1abf: 0xbbe9,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2079, 0x1ac1: 0xbc01, 0x1ac2: 0xbab1, 0x1ac3: 0x1099, 0x1ac4: 0x10b1, 0x1ac5: 0x10c9,\n\t0x1ac6: 0xbac9, 0x1ac7: 0xbae1, 0x1ac8: 0xbaf9, 0x1ac9: 0x1429, 0x1aca: 0x1a31, 0x1acb: 0xbb11,\n\t0x1acc: 0xbb29, 0x1acd: 0xbb41, 0x1ace: 0xbb59, 0x1acf: 0xbb71, 0x1ad0: 0xbb89, 0x1ad1: 0x2109,\n\t0x1ad2: 0x1111, 0x1ad3: 0xbba1, 0x1ad4: 0xbba1, 0x1ad5: 0xbbb9, 0x1ad6: 0xbbd1, 0x1ad7: 0x10e1,\n\t0x1ad8: 0x10f9, 0x1ad9: 0xbbe9, 0x1ada: 0x2079, 0x1adb: 0xbc21, 0x1adc: 0xbac9, 0x1add: 0x1429,\n\t0x1ade: 0xbb11, 0x1adf: 0x10e1, 0x1ae0: 0x1111, 0x1ae1: 0x2109, 0x1ae2: 0xbab1, 0x1ae3: 0x1099,\n\t0x1ae4: 0x10b1, 0x1ae5: 0x10c9, 0x1ae6: 0xbac9, 0x1ae7: 0xbae1, 0x1ae8: 0xbaf9, 0x1ae9: 0x1429,\n\t0x1aea: 0x1a31, 0x1aeb: 0xbb11, 0x1aec: 0xbb29, 0x1aed: 0xbb41, 0x1aee: 0xbb59, 0x1aef: 0xbb71,\n\t0x1af0: 0xbb89, 0x1af1: 0x2109, 0x1af2: 0x1111, 0x1af3: 0x1429, 0x1af4: 0xbba1, 0x1af5: 0xbbb9,\n\t0x1af6: 0xbbd1, 0x1af7: 0x10e1, 0x1af8: 0x10f9, 0x1af9: 0xbbe9, 0x1afa: 0x2079, 0x1afb: 0xbc01,\n\t0x1afc: 0xbab1, 0x1afd: 0x1099, 0x1afe: 0x10b1, 0x1aff: 0x10c9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0xbac9, 0x1b01: 0xbae1, 0x1b02: 0xbaf9, 0x1b03: 0x1429, 0x1b04: 0x1a31, 0x1b05: 0xbb11,\n\t0x1b06: 0xbb29, 0x1b07: 0xbb41, 0x1b08: 0xbb59, 0x1b09: 0xbb71, 0x1b0a: 0xbb89, 0x1b0b: 0x2109,\n\t0x1b0c: 0x1111, 0x1b0d: 0xbba1, 0x1b0e: 0xbba1, 0x1b0f: 0xbbb9, 0x1b10: 0xbbd1, 0x1b11: 0x10e1,\n\t0x1b12: 0x10f9, 0x1b13: 0xbbe9, 0x1b14: 0x2079, 0x1b15: 0xbc21, 0x1b16: 0xbac9, 0x1b17: 0x1429,\n\t0x1b18: 0xbb11, 0x1b19: 0x10e1, 0x1b1a: 0x1111, 0x1b1b: 0x2109, 0x1b1c: 0xbab1, 0x1b1d: 0x1099,\n\t0x1b1e: 0x10b1, 0x1b1f: 0x10c9, 0x1b20: 0xbac9, 0x1b21: 0xbae1, 0x1b22: 0xbaf9, 0x1b23: 0x1429,\n\t0x1b24: 0x1a31, 0x1b25: 0xbb11, 0x1b26: 0xbb29, 0x1b27: 0xbb41, 0x1b28: 0xbb59, 0x1b29: 0xbb71,\n\t0x1b2a: 0xbb89, 0x1b2b: 0x2109, 0x1b2c: 0x1111, 0x1b2d: 0x1429, 0x1b2e: 0xbba1, 0x1b2f: 0xbbb9,\n\t0x1b30: 0xbbd1, 0x1b31: 0x10e1, 0x1b32: 0x10f9, 0x1b33: 0xbbe9, 0x1b34: 0x2079, 0x1b35: 0xbc01,\n\t0x1b36: 0xbab1, 0x1b37: 0x1099, 0x1b38: 0x10b1, 0x1b39: 0x10c9, 0x1b3a: 0xbac9, 0x1b3b: 0xbae1,\n\t0x1b3c: 0xbaf9, 0x1b3d: 0x1429, 0x1b3e: 0x1a31, 0x1b3f: 0xbb11,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbb29, 0x1b41: 0xbb41, 0x1b42: 0xbb59, 0x1b43: 0xbb71, 0x1b44: 0xbb89, 0x1b45: 0x2109,\n\t0x1b46: 0x1111, 0x1b47: 0xbba1, 0x1b48: 0xbba1, 0x1b49: 0xbbb9, 0x1b4a: 0xbbd1, 0x1b4b: 0x10e1,\n\t0x1b4c: 0x10f9, 0x1b4d: 0xbbe9, 0x1b4e: 0x2079, 0x1b4f: 0xbc21, 0x1b50: 0xbac9, 0x1b51: 0x1429,\n\t0x1b52: 0xbb11, 0x1b53: 0x10e1, 0x1b54: 0x1111, 0x1b55: 0x2109, 0x1b56: 0xbab1, 0x1b57: 0x1099,\n\t0x1b58: 0x10b1, 0x1b59: 0x10c9, 0x1b5a: 0xbac9, 0x1b5b: 0xbae1, 0x1b5c: 0xbaf9, 0x1b5d: 0x1429,\n\t0x1b5e: 0x1a31, 0x1b5f: 0xbb11, 0x1b60: 0xbb29, 0x1b61: 0xbb41, 0x1b62: 0xbb59, 0x1b63: 0xbb71,\n\t0x1b64: 0xbb89, 0x1b65: 0x2109, 0x1b66: 0x1111, 0x1b67: 0x1429, 0x1b68: 0xbba1, 0x1b69: 0xbbb9,\n\t0x1b6a: 0xbbd1, 0x1b6b: 0x10e1, 0x1b6c: 0x10f9, 0x1b6d: 0xbbe9, 0x1b6e: 0x2079, 0x1b6f: 0xbc01,\n\t0x1b70: 0xbab1, 0x1b71: 0x1099, 0x1b72: 0x10b1, 0x1b73: 0x10c9, 0x1b74: 0xbac9, 0x1b75: 0xbae1,\n\t0x1b76: 0xbaf9, 0x1b77: 0x1429, 0x1b78: 0x1a31, 0x1b79: 0xbb11, 0x1b7a: 0xbb29, 0x1b7b: 0xbb41,\n\t0x1b7c: 0xbb59, 0x1b7d: 0xbb71, 0x1b7e: 0xbb89, 0x1b7f: 0x2109,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x1111, 0x1b81: 0xbba1, 0x1b82: 0xbba1, 0x1b83: 0xbbb9, 0x1b84: 0xbbd1, 0x1b85: 0x10e1,\n\t0x1b86: 0x10f9, 0x1b87: 0xbbe9, 0x1b88: 0x2079, 0x1b89: 0xbc21, 0x1b8a: 0xbac9, 0x1b8b: 0x1429,\n\t0x1b8c: 0xbb11, 0x1b8d: 0x10e1, 0x1b8e: 0x1111, 0x1b8f: 0x2109, 0x1b90: 0xbab1, 0x1b91: 0x1099,\n\t0x1b92: 0x10b1, 0x1b93: 0x10c9, 0x1b94: 0xbac9, 0x1b95: 0xbae1, 0x1b96: 0xbaf9, 0x1b97: 0x1429,\n\t0x1b98: 0x1a31, 0x1b99: 0xbb11, 0x1b9a: 0xbb29, 0x1b9b: 0xbb41, 0x1b9c: 0xbb59, 0x1b9d: 0xbb71,\n\t0x1b9e: 0xbb89, 0x1b9f: 0x2109, 0x1ba0: 0x1111, 0x1ba1: 0x1429, 0x1ba2: 0xbba1, 0x1ba3: 0xbbb9,\n\t0x1ba4: 0xbbd1, 0x1ba5: 0x10e1, 0x1ba6: 0x10f9, 0x1ba7: 0xbbe9, 0x1ba8: 0x2079, 0x1ba9: 0xbc01,\n\t0x1baa: 0xbab1, 0x1bab: 0x1099, 0x1bac: 0x10b1, 0x1bad: 0x10c9, 0x1bae: 0xbac9, 0x1baf: 0xbae1,\n\t0x1bb0: 0xbaf9, 0x1bb1: 0x1429, 0x1bb2: 0x1a31, 0x1bb3: 0xbb11, 0x1bb4: 0xbb29, 0x1bb5: 0xbb41,\n\t0x1bb6: 0xbb59, 0x1bb7: 0xbb71, 0x1bb8: 0xbb89, 0x1bb9: 0x2109, 0x1bba: 0x1111, 0x1bbb: 0xbba1,\n\t0x1bbc: 0xbba1, 0x1bbd: 0xbbb9, 0x1bbe: 0xbbd1, 0x1bbf: 0x10e1,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x10f9, 0x1bc1: 0xbbe9, 0x1bc2: 0x2079, 0x1bc3: 0xbc21, 0x1bc4: 0xbac9, 0x1bc5: 0x1429,\n\t0x1bc6: 0xbb11, 0x1bc7: 0x10e1, 0x1bc8: 0x1111, 0x1bc9: 0x2109, 0x1bca: 0xbc41, 0x1bcb: 0xbc41,\n\t0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x1f41, 0x1bcf: 0x00c9, 0x1bd0: 0x0069, 0x1bd1: 0x0079,\n\t0x1bd2: 0x1f51, 0x1bd3: 0x1f61, 0x1bd4: 0x1f71, 0x1bd5: 0x1f81, 0x1bd6: 0x1f91, 0x1bd7: 0x1fa1,\n\t0x1bd8: 0x1f41, 0x1bd9: 0x00c9, 0x1bda: 0x0069, 0x1bdb: 0x0079, 0x1bdc: 0x1f51, 0x1bdd: 0x1f61,\n\t0x1bde: 0x1f71, 0x1bdf: 0x1f81, 0x1be0: 0x1f91, 0x1be1: 0x1fa1, 0x1be2: 0x1f41, 0x1be3: 0x00c9,\n\t0x1be4: 0x0069, 0x1be5: 0x0079, 0x1be6: 0x1f51, 0x1be7: 0x1f61, 0x1be8: 0x1f71, 0x1be9: 0x1f81,\n\t0x1bea: 0x1f91, 0x1beb: 0x1fa1, 0x1bec: 0x1f41, 0x1bed: 0x00c9, 0x1bee: 0x0069, 0x1bef: 0x0079,\n\t0x1bf0: 0x1f51, 0x1bf1: 0x1f61, 0x1bf2: 0x1f71, 0x1bf3: 0x1f81, 0x1bf4: 0x1f91, 0x1bf5: 0x1fa1,\n\t0x1bf6: 0x1f41, 0x1bf7: 0x00c9, 0x1bf8: 0x0069, 0x1bf9: 0x0079, 0x1bfa: 0x1f51, 0x1bfb: 0x1f61,\n\t0x1bfc: 0x1f71, 0x1bfd: 0x1f81, 0x1bfe: 0x1f91, 0x1bff: 0x1fa1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,\n\t0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,\n\t0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,\n\t0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,\n\t0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,\n\t0x1c1e: 0x8b05, 0x1c1f: 0x8b05, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,\n\t0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,\n\t0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,\n\t0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,\n\t0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,\n\t0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xb189, 0x1c41: 0xb1a1, 0x1c42: 0xb201, 0x1c43: 0xb249, 0x1c44: 0x0040, 0x1c45: 0xb411,\n\t0x1c46: 0xb291, 0x1c47: 0xb219, 0x1c48: 0xb309, 0x1c49: 0xb429, 0x1c4a: 0xb399, 0x1c4b: 0xb3b1,\n\t0x1c4c: 0xb3c9, 0x1c4d: 0xb3e1, 0x1c4e: 0xb2a9, 0x1c4f: 0xb339, 0x1c50: 0xb369, 0x1c51: 0xb2d9,\n\t0x1c52: 0xb381, 0x1c53: 0xb279, 0x1c54: 0xb2c1, 0x1c55: 0xb1d1, 0x1c56: 0xb1e9, 0x1c57: 0xb231,\n\t0x1c58: 0xb261, 0x1c59: 0xb2f1, 0x1c5a: 0xb321, 0x1c5b: 0xb351, 0x1c5c: 0xbc59, 0x1c5d: 0x7949,\n\t0x1c5e: 0xbc71, 0x1c5f: 0xbc89, 0x1c60: 0x0040, 0x1c61: 0xb1a1, 0x1c62: 0xb201, 0x1c63: 0x0040,\n\t0x1c64: 0xb3f9, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0xb219, 0x1c68: 0x0040, 0x1c69: 0xb429,\n\t0x1c6a: 0xb399, 0x1c6b: 0xb3b1, 0x1c6c: 0xb3c9, 0x1c6d: 0xb3e1, 0x1c6e: 0xb2a9, 0x1c6f: 0xb339,\n\t0x1c70: 0xb369, 0x1c71: 0xb2d9, 0x1c72: 0xb381, 0x1c73: 0x0040, 0x1c74: 0xb2c1, 0x1c75: 0xb1d1,\n\t0x1c76: 0xb1e9, 0x1c77: 0xb231, 0x1c78: 0x0040, 0x1c79: 0xb2f1, 0x1c7a: 0x0040, 0x1c7b: 0xb351,\n\t0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0xb201, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,\n\t0x1c86: 0x0040, 0x1c87: 0xb219, 0x1c88: 0x0040, 0x1c89: 0xb429, 0x1c8a: 0x0040, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0x0040, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0x0040, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0x0040, 0x1c94: 0xb2c1, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0xb231,\n\t0x1c98: 0x0040, 0x1c99: 0xb2f1, 0x1c9a: 0x0040, 0x1c9b: 0xb351, 0x1c9c: 0x0040, 0x1c9d: 0x7949,\n\t0x1c9e: 0x0040, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0xb309, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0x0040, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0xb321, 0x1cbb: 0xb351,\n\t0x1cbc: 0xbc59, 0x1cbd: 0x0040, 0x1cbe: 0xbc71, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0xb189, 0x1cc1: 0xb1a1, 0x1cc2: 0xb201, 0x1cc3: 0xb249, 0x1cc4: 0xb3f9, 0x1cc5: 0xb411,\n\t0x1cc6: 0xb291, 0x1cc7: 0xb219, 0x1cc8: 0xb309, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0xb3c9, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0xb369, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0xb279, 0x1cd4: 0xb2c1, 0x1cd5: 0xb1d1, 0x1cd6: 0xb1e9, 0x1cd7: 0xb231,\n\t0x1cd8: 0xb261, 0x1cd9: 0xb2f1, 0x1cda: 0xb321, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x0040,\n\t0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0xb249,\n\t0x1ce4: 0x0040, 0x1ce5: 0xb411, 0x1ce6: 0xb291, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0x0040, 0x1ceb: 0xb3b1, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0xb279, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0xb261, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0040, 0x1d01: 0xbca2, 0x1d02: 0xbcba, 0x1d03: 0xbcd2, 0x1d04: 0xbcea, 0x1d05: 0xbd02,\n\t0x1d06: 0xbd1a, 0x1d07: 0xbd32, 0x1d08: 0xbd4a, 0x1d09: 0xbd62, 0x1d0a: 0xbd7a, 0x1d0b: 0x0018,\n\t0x1d0c: 0x0018, 0x1d0d: 0x0040, 0x1d0e: 0x0040, 0x1d0f: 0x0040, 0x1d10: 0xbd92, 0x1d11: 0xbdb2,\n\t0x1d12: 0xbdd2, 0x1d13: 0xbdf2, 0x1d14: 0xbe12, 0x1d15: 0xbe32, 0x1d16: 0xbe52, 0x1d17: 0xbe72,\n\t0x1d18: 0xbe92, 0x1d19: 0xbeb2, 0x1d1a: 0xbed2, 0x1d1b: 0xbef2, 0x1d1c: 0xbf12, 0x1d1d: 0xbf32,\n\t0x1d1e: 0xbf52, 0x1d1f: 0xbf72, 0x1d20: 0xbf92, 0x1d21: 0xbfb2, 0x1d22: 0xbfd2, 0x1d23: 0xbff2,\n\t0x1d24: 0xc012, 0x1d25: 0xc032, 0x1d26: 0xc052, 0x1d27: 0xc072, 0x1d28: 0xc092, 0x1d29: 0xc0b2,\n\t0x1d2a: 0xc0d1, 0x1d2b: 0x1159, 0x1d2c: 0x0269, 0x1d2d: 0x6671, 0x1d2e: 0xc111, 0x1d2f: 0x0040,\n\t0x1d30: 0x0039, 0x1d31: 0x0ee9, 0x1d32: 0x1159, 0x1d33: 0x0ef9, 0x1d34: 0x0f09, 0x1d35: 0x1199,\n\t0x1d36: 0x0f31, 0x1d37: 0x0249, 0x1d38: 0x0f41, 0x1d39: 0x0259, 0x1d3a: 0x0f51, 0x1d3b: 0x0359,\n\t0x1d3c: 0x0f61, 0x1d3d: 0x0f71, 0x1d3e: 0x00d9, 0x1d3f: 0x0f99,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x2039, 0x1d41: 0x0269, 0x1d42: 0x01d9, 0x1d43: 0x0fa9, 0x1d44: 0x0fb9, 0x1d45: 0x1089,\n\t0x1d46: 0x0279, 0x1d47: 0x0369, 0x1d48: 0x0289, 0x1d49: 0x13d1, 0x1d4a: 0xc129, 0x1d4b: 0x65b1,\n\t0x1d4c: 0xc141, 0x1d4d: 0x1441, 0x1d4e: 0xc159, 0x1d4f: 0xc179, 0x1d50: 0x0018, 0x1d51: 0x0018,\n\t0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,\n\t0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,\n\t0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,\n\t0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,\n\t0x1d6a: 0xc191, 0x1d6b: 0xc1a9, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,\n\t0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,\n\t0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,\n\t0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0xc1d9, 0x1d81: 0xc211, 0x1d82: 0xc249, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,\n\t0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,\n\t0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0xc269, 0x1d91: 0xc289,\n\t0x1d92: 0xc2a9, 0x1d93: 0xc2c9, 0x1d94: 0xc2e9, 0x1d95: 0xc309, 0x1d96: 0xc329, 0x1d97: 0xc349,\n\t0x1d98: 0xc369, 0x1d99: 0xc389, 0x1d9a: 0xc3a9, 0x1d9b: 0xc3c9, 0x1d9c: 0xc3e9, 0x1d9d: 0xc409,\n\t0x1d9e: 0xc429, 0x1d9f: 0xc449, 0x1da0: 0xc469, 0x1da1: 0xc489, 0x1da2: 0xc4a9, 0x1da3: 0xc4c9,\n\t0x1da4: 0xc4e9, 0x1da5: 0xc509, 0x1da6: 0xc529, 0x1da7: 0xc549, 0x1da8: 0xc569, 0x1da9: 0xc589,\n\t0x1daa: 0xc5a9, 0x1dab: 0xc5c9, 0x1dac: 0xc5e9, 0x1dad: 0xc609, 0x1dae: 0xc629, 0x1daf: 0xc649,\n\t0x1db0: 0xc669, 0x1db1: 0xc689, 0x1db2: 0xc6a9, 0x1db3: 0xc6c9, 0x1db4: 0xc6e9, 0x1db5: 0xc709,\n\t0x1db6: 0xc729, 0x1db7: 0xc749, 0x1db8: 0xc769, 0x1db9: 0xc789, 0x1dba: 0xc7a9, 0x1dbb: 0xc7c9,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xcaf9, 0x1dc1: 0xcb19, 0x1dc2: 0xcb39, 0x1dc3: 0x8b1d, 0x1dc4: 0xcb59, 0x1dc5: 0xcb79,\n\t0x1dc6: 0xcb99, 0x1dc7: 0xcbb9, 0x1dc8: 0xcbd9, 0x1dc9: 0xcbf9, 0x1dca: 0xcc19, 0x1dcb: 0xcc39,\n\t0x1dcc: 0xcc59, 0x1dcd: 0x8b3d, 0x1dce: 0xcc79, 0x1dcf: 0xcc99, 0x1dd0: 0xccb9, 0x1dd1: 0xccd9,\n\t0x1dd2: 0x8b5d, 0x1dd3: 0xccf9, 0x1dd4: 0xcd19, 0x1dd5: 0xc429, 0x1dd6: 0x8b7d, 0x1dd7: 0xcd39,\n\t0x1dd8: 0xcd59, 0x1dd9: 0xcd79, 0x1dda: 0xcd99, 0x1ddb: 0xcdb9, 0x1ddc: 0x8b9d, 0x1ddd: 0xcdd9,\n\t0x1dde: 0xcdf9, 0x1ddf: 0xce19, 0x1de0: 0xce39, 0x1de1: 0xce59, 0x1de2: 0xc789, 0x1de3: 0xce79,\n\t0x1de4: 0xce99, 0x1de5: 0xceb9, 0x1de6: 0xced9, 0x1de7: 0xcef9, 0x1de8: 0xcf19, 0x1de9: 0xcf39,\n\t0x1dea: 0xcf59, 0x1deb: 0xcf79, 0x1dec: 0xcf99, 0x1ded: 0xcfb9, 0x1dee: 0xcfd9, 0x1def: 0xcff9,\n\t0x1df0: 0xd019, 0x1df1: 0xd039, 0x1df2: 0xd039, 0x1df3: 0xd039, 0x1df4: 0x8bbd, 0x1df5: 0xd059,\n\t0x1df6: 0xd079, 0x1df7: 0xd099, 0x1df8: 0x8bdd, 0x1df9: 0xd0b9, 0x1dfa: 0xd0d9, 0x1dfb: 0xd0f9,\n\t0x1dfc: 0xd119, 0x1dfd: 0xd139, 0x1dfe: 0xd159, 0x1dff: 0xd179,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xd199, 0x1e01: 0xd1b9, 0x1e02: 0xd1d9, 0x1e03: 0xd1f9, 0x1e04: 0xd219, 0x1e05: 0xd239,\n\t0x1e06: 0xd239, 0x1e07: 0xd259, 0x1e08: 0xd279, 0x1e09: 0xd299, 0x1e0a: 0xd2b9, 0x1e0b: 0xd2d9,\n\t0x1e0c: 0xd2f9, 0x1e0d: 0xd319, 0x1e0e: 0xd339, 0x1e0f: 0xd359, 0x1e10: 0xd379, 0x1e11: 0xd399,\n\t0x1e12: 0xd3b9, 0x1e13: 0xd3d9, 0x1e14: 0xd3f9, 0x1e15: 0xd419, 0x1e16: 0xd439, 0x1e17: 0xd459,\n\t0x1e18: 0xd479, 0x1e19: 0x8bfd, 0x1e1a: 0xd499, 0x1e1b: 0xd4b9, 0x1e1c: 0xd4d9, 0x1e1d: 0xc309,\n\t0x1e1e: 0xd4f9, 0x1e1f: 0xd519, 0x1e20: 0x8c1d, 0x1e21: 0x8c3d, 0x1e22: 0xd539, 0x1e23: 0xd559,\n\t0x1e24: 0xd579, 0x1e25: 0xd599, 0x1e26: 0xd5b9, 0x1e27: 0xd5d9, 0x1e28: 0x2040, 0x1e29: 0xd5f9,\n\t0x1e2a: 0xd619, 0x1e2b: 0xd619, 0x1e2c: 0x8c5d, 0x1e2d: 0xd639, 0x1e2e: 0xd659, 0x1e2f: 0xd679,\n\t0x1e30: 0xd699, 0x1e31: 0x8c7d, 0x1e32: 0xd6b9, 0x1e33: 0xd6d9, 0x1e34: 0x2040, 0x1e35: 0xd6f9,\n\t0x1e36: 0xd719, 0x1e37: 0xd739, 0x1e38: 0xd759, 0x1e39: 0xd779, 0x1e3a: 0xd799, 0x1e3b: 0x8c9d,\n\t0x1e3c: 0xd7b9, 0x1e3d: 0x8cbd, 0x1e3e: 0xd7d9, 0x1e3f: 0xd7f9,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd819, 0x1e41: 0xd839, 0x1e42: 0xd859, 0x1e43: 0xd879, 0x1e44: 0xd899, 0x1e45: 0xd8b9,\n\t0x1e46: 0xd8d9, 0x1e47: 0xd8f9, 0x1e48: 0xd919, 0x1e49: 0x8cdd, 0x1e4a: 0xd939, 0x1e4b: 0xd959,\n\t0x1e4c: 0xd979, 0x1e4d: 0xd999, 0x1e4e: 0xd9b9, 0x1e4f: 0x8cfd, 0x1e50: 0xd9d9, 0x1e51: 0x8d1d,\n\t0x1e52: 0x8d3d, 0x1e53: 0xd9f9, 0x1e54: 0xda19, 0x1e55: 0xda19, 0x1e56: 0xda39, 0x1e57: 0x8d5d,\n\t0x1e58: 0x8d7d, 0x1e59: 0xda59, 0x1e5a: 0xda79, 0x1e5b: 0xda99, 0x1e5c: 0xdab9, 0x1e5d: 0xdad9,\n\t0x1e5e: 0xdaf9, 0x1e5f: 0xdb19, 0x1e60: 0xdb39, 0x1e61: 0xdb59, 0x1e62: 0xdb79, 0x1e63: 0xdb99,\n\t0x1e64: 0x8d9d, 0x1e65: 0xdbb9, 0x1e66: 0xdbd9, 0x1e67: 0xdbf9, 0x1e68: 0xdc19, 0x1e69: 0xdbf9,\n\t0x1e6a: 0xdc39, 0x1e6b: 0xdc59, 0x1e6c: 0xdc79, 0x1e6d: 0xdc99, 0x1e6e: 0xdcb9, 0x1e6f: 0xdcd9,\n\t0x1e70: 0xdcf9, 0x1e71: 0xdd19, 0x1e72: 0xdd39, 0x1e73: 0xdd59, 0x1e74: 0xdd79, 0x1e75: 0xdd99,\n\t0x1e76: 0xddb9, 0x1e77: 0xddd9, 0x1e78: 0x8dbd, 0x1e79: 0xddf9, 0x1e7a: 0xde19, 0x1e7b: 0xde39,\n\t0x1e7c: 0xde59, 0x1e7d: 0xde79, 0x1e7e: 0x8ddd, 0x1e7f: 0xde99,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xe599, 0x1e81: 0xe5b9, 0x1e82: 0xe5d9, 0x1e83: 0xe5f9, 0x1e84: 0xe619, 0x1e85: 0xe639,\n\t0x1e86: 0x8efd, 0x1e87: 0xe659, 0x1e88: 0xe679, 0x1e89: 0xe699, 0x1e8a: 0xe6b9, 0x1e8b: 0xe6d9,\n\t0x1e8c: 0xe6f9, 0x1e8d: 0x8f1d, 0x1e8e: 0xe719, 0x1e8f: 0xe739, 0x1e90: 0x8f3d, 0x1e91: 0x8f5d,\n\t0x1e92: 0xe759, 0x1e93: 0xe779, 0x1e94: 0xe799, 0x1e95: 0xe7b9, 0x1e96: 0xe7d9, 0x1e97: 0xe7f9,\n\t0x1e98: 0xe819, 0x1e99: 0xe839, 0x1e9a: 0xe859, 0x1e9b: 0x8f7d, 0x1e9c: 0xe879, 0x1e9d: 0x8f9d,\n\t0x1e9e: 0xe899, 0x1e9f: 0x2040, 0x1ea0: 0xe8b9, 0x1ea1: 0xe8d9, 0x1ea2: 0xe8f9, 0x1ea3: 0x8fbd,\n\t0x1ea4: 0xe919, 0x1ea5: 0xe939, 0x1ea6: 0x8fdd, 0x1ea7: 0x8ffd, 0x1ea8: 0xe959, 0x1ea9: 0xe979,\n\t0x1eaa: 0xe999, 0x1eab: 0xe9b9, 0x1eac: 0xe9d9, 0x1ead: 0xe9d9, 0x1eae: 0xe9f9, 0x1eaf: 0xea19,\n\t0x1eb0: 0xea39, 0x1eb1: 0xea59, 0x1eb2: 0xea79, 0x1eb3: 0xea99, 0x1eb4: 0xeab9, 0x1eb5: 0x901d,\n\t0x1eb6: 0xead9, 0x1eb7: 0x903d, 0x1eb8: 0xeaf9, 0x1eb9: 0x905d, 0x1eba: 0xeb19, 0x1ebb: 0x907d,\n\t0x1ebc: 0x909d, 0x1ebd: 0x90bd, 0x1ebe: 0xeb39, 0x1ebf: 0xeb59,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xeb79, 0x1ec1: 0x90dd, 0x1ec2: 0x90fd, 0x1ec3: 0x911d, 0x1ec4: 0x913d, 0x1ec5: 0xeb99,\n\t0x1ec6: 0xebb9, 0x1ec7: 0xebb9, 0x1ec8: 0xebd9, 0x1ec9: 0xebf9, 0x1eca: 0xec19, 0x1ecb: 0xec39,\n\t0x1ecc: 0xec59, 0x1ecd: 0x915d, 0x1ece: 0xec79, 0x1ecf: 0xec99, 0x1ed0: 0xecb9, 0x1ed1: 0xecd9,\n\t0x1ed2: 0x917d, 0x1ed3: 0xecf9, 0x1ed4: 0x919d, 0x1ed5: 0x91bd, 0x1ed6: 0xed19, 0x1ed7: 0xed39,\n\t0x1ed8: 0xed59, 0x1ed9: 0xed79, 0x1eda: 0xed99, 0x1edb: 0xedb9, 0x1edc: 0x91dd, 0x1edd: 0x91fd,\n\t0x1ede: 0x921d, 0x1edf: 0x2040, 0x1ee0: 0xedd9, 0x1ee1: 0x923d, 0x1ee2: 0xedf9, 0x1ee3: 0xee19,\n\t0x1ee4: 0xee39, 0x1ee5: 0x925d, 0x1ee6: 0xee59, 0x1ee7: 0xee79, 0x1ee8: 0xee99, 0x1ee9: 0xeeb9,\n\t0x1eea: 0xeed9, 0x1eeb: 0x927d, 0x1eec: 0xeef9, 0x1eed: 0xef19, 0x1eee: 0xef39, 0x1eef: 0xef59,\n\t0x1ef0: 0xef79, 0x1ef1: 0xef99, 0x1ef2: 0x929d, 0x1ef3: 0x92bd, 0x1ef4: 0xefb9, 0x1ef5: 0x92dd,\n\t0x1ef6: 0xefd9, 0x1ef7: 0x92fd, 0x1ef8: 0xeff9, 0x1ef9: 0xf019, 0x1efa: 0xf039, 0x1efb: 0x931d,\n\t0x1efc: 0x933d, 0x1efd: 0xf059, 0x1efe: 0x935d, 0x1eff: 0xf079,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xf6b9, 0x1f01: 0xf6d9, 0x1f02: 0xf6f9, 0x1f03: 0xf719, 0x1f04: 0xf739, 0x1f05: 0x951d,\n\t0x1f06: 0xf759, 0x1f07: 0xf779, 0x1f08: 0xf799, 0x1f09: 0xf7b9, 0x1f0a: 0xf7d9, 0x1f0b: 0x953d,\n\t0x1f0c: 0x955d, 0x1f0d: 0xf7f9, 0x1f0e: 0xf819, 0x1f0f: 0xf839, 0x1f10: 0xf859, 0x1f11: 0xf879,\n\t0x1f12: 0xf899, 0x1f13: 0x957d, 0x1f14: 0xf8b9, 0x1f15: 0xf8d9, 0x1f16: 0xf8f9, 0x1f17: 0xf919,\n\t0x1f18: 0x959d, 0x1f19: 0x95bd, 0x1f1a: 0xf939, 0x1f1b: 0xf959, 0x1f1c: 0xf979, 0x1f1d: 0x95dd,\n\t0x1f1e: 0xf999, 0x1f1f: 0xf9b9, 0x1f20: 0x6815, 0x1f21: 0x95fd, 0x1f22: 0xf9d9, 0x1f23: 0xf9f9,\n\t0x1f24: 0xfa19, 0x1f25: 0x961d, 0x1f26: 0xfa39, 0x1f27: 0xfa59, 0x1f28: 0xfa79, 0x1f29: 0xfa99,\n\t0x1f2a: 0xfab9, 0x1f2b: 0xfad9, 0x1f2c: 0xfaf9, 0x1f2d: 0x963d, 0x1f2e: 0xfb19, 0x1f2f: 0xfb39,\n\t0x1f30: 0xfb59, 0x1f31: 0x965d, 0x1f32: 0xfb79, 0x1f33: 0xfb99, 0x1f34: 0xfbb9, 0x1f35: 0xfbd9,\n\t0x1f36: 0x7b35, 0x1f37: 0x967d, 0x1f38: 0xfbf9, 0x1f39: 0xfc19, 0x1f3a: 0xfc39, 0x1f3b: 0x969d,\n\t0x1f3c: 0xfc59, 0x1f3d: 0x96bd, 0x1f3e: 0xfc79, 0x1f3f: 0xfc79,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xfc99, 0x1f41: 0x96dd, 0x1f42: 0xfcb9, 0x1f43: 0xfcd9, 0x1f44: 0xfcf9, 0x1f45: 0xfd19,\n\t0x1f46: 0xfd39, 0x1f47: 0xfd59, 0x1f48: 0xfd79, 0x1f49: 0x96fd, 0x1f4a: 0xfd99, 0x1f4b: 0xfdb9,\n\t0x1f4c: 0xfdd9, 0x1f4d: 0xfdf9, 0x1f4e: 0xfe19, 0x1f4f: 0xfe39, 0x1f50: 0x971d, 0x1f51: 0xfe59,\n\t0x1f52: 0x973d, 0x1f53: 0x975d, 0x1f54: 0x977d, 0x1f55: 0xfe79, 0x1f56: 0xfe99, 0x1f57: 0xfeb9,\n\t0x1f58: 0xfed9, 0x1f59: 0xfef9, 0x1f5a: 0xff19, 0x1f5b: 0xff39, 0x1f5c: 0xff59, 0x1f5d: 0x979d,\n\t0x1f5e: 0x0040, 0x1f5f: 0x0040, 0x1f60: 0x0040, 0x1f61: 0x0040, 0x1f62: 0x0040, 0x1f63: 0x0040,\n\t0x1f64: 0x0040, 0x1f65: 0x0040, 0x1f66: 0x0040, 0x1f67: 0x0040, 0x1f68: 0x0040, 0x1f69: 0x0040,\n\t0x1f6a: 0x0040, 0x1f6b: 0x0040, 0x1f6c: 0x0040, 0x1f6d: 0x0040, 0x1f6e: 0x0040, 0x1f6f: 0x0040,\n\t0x1f70: 0x0040, 0x1f71: 0x0040, 0x1f72: 0x0040, 0x1f73: 0x0040, 0x1f74: 0x0040, 0x1f75: 0x0040,\n\t0x1f76: 0x0040, 0x1f77: 0x0040, 0x1f78: 0x0040, 0x1f79: 0x0040, 0x1f7a: 0x0040, 0x1f7b: 0x0040,\n\t0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,\n}\n\n// idnaIndex: 35 blocks, 2240 entries, 4480 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2240]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7c, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7d, 0xca: 0x7e, 0xcb: 0x07, 0xcc: 0x7f, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x80, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x81, 0xd6: 0x82, 0xd7: 0x83,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x84, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x85, 0xde: 0x86, 0xdf: 0x87,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1c, 0xf1: 0x1d, 0xf2: 0x1d, 0xf3: 0x1f, 0xf4: 0x20,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x88, 0x121: 0x89, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15,\n\t0x128: 0x16, 0x129: 0x17, 0x12a: 0x18, 0x12b: 0x19, 0x12c: 0x1a, 0x12d: 0x1b, 0x12e: 0x1c, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1d, 0x132: 0x1e, 0x133: 0x1f, 0x134: 0x8f, 0x135: 0x20, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x21, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x22, 0x13e: 0x23, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x24, 0x175: 0x25, 0x176: 0x26, 0x177: 0xc3,\n\t0x178: 0x27, 0x179: 0x27, 0x17a: 0x28, 0x17b: 0x27, 0x17c: 0xc4, 0x17d: 0x29, 0x17e: 0x2a, 0x17f: 0x2b,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2c, 0x181: 0x2d, 0x182: 0x2e, 0x183: 0xc5, 0x184: 0x2f, 0x185: 0x30, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0xca,\n\t0x190: 0xcb, 0x191: 0x31, 0x192: 0x32, 0x193: 0x33, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9b, 0x1ab: 0xce, 0x1ac: 0x9b, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0xd1,\n\t0x1b0: 0xd2, 0x1b1: 0x34, 0x1b2: 0x27, 0x1b3: 0x35, 0x1b4: 0xd3, 0x1b5: 0xd4, 0x1b6: 0xd5, 0x1b7: 0xd6,\n\t0x1b8: 0xd7, 0x1b9: 0xd8, 0x1ba: 0xd9, 0x1bb: 0xda, 0x1bc: 0xdb, 0x1bd: 0xdc, 0x1be: 0xdd, 0x1bf: 0x36,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x37, 0x1c1: 0xde, 0x1c2: 0xdf, 0x1c3: 0xe0, 0x1c4: 0xe1, 0x1c5: 0x38, 0x1c6: 0x39, 0x1c7: 0xe2,\n\t0x1c8: 0xe3, 0x1c9: 0x3a, 0x1ca: 0x3b, 0x1cb: 0x3c, 0x1cc: 0x3d, 0x1cd: 0x3e, 0x1ce: 0x3f, 0x1cf: 0x40,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe4,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe5, 0x2d3: 0xe6, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe7, 0x2d9: 0x41, 0x2da: 0x42, 0x2db: 0xe8, 0x2dc: 0x43, 0x2dd: 0x44, 0x2de: 0x45, 0x2df: 0xe9,\n\t0x2e0: 0xea, 0x2e1: 0xeb, 0x2e2: 0xec, 0x2e3: 0xed, 0x2e4: 0xee, 0x2e5: 0xef, 0x2e6: 0xf0, 0x2e7: 0xf1,\n\t0x2e8: 0xf2, 0x2e9: 0xf3, 0x2ea: 0xf4, 0x2eb: 0xf5, 0x2ec: 0xf6, 0x2ed: 0xf7, 0x2ee: 0xf8, 0x2ef: 0xf9,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xfa, 0x31f: 0xfb,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff,\n\t0x3a8: 0x46, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x47, 0x3ac: 0x48, 0x3ad: 0x49, 0x3ae: 0x4a, 0x3af: 0x4b,\n\t0x3b0: 0x102, 0x3b1: 0x4c, 0x3b2: 0x4d, 0x3b3: 0x4e, 0x3b4: 0x4f, 0x3b5: 0x50, 0x3b6: 0x103, 0x3b7: 0x51,\n\t0x3b8: 0x52, 0x3b9: 0x53, 0x3ba: 0x54, 0x3bb: 0x55, 0x3bc: 0x56, 0x3bd: 0x57, 0x3be: 0x58, 0x3bf: 0x59,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0x9f, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9b, 0x3c6: 0x108, 0x3c7: 0x109,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f,\n\t0x3d0: 0x110, 0x3d1: 0x9f, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xba, 0x3e6: 0x11c, 0x3e7: 0x11d,\n\t0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5a, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5b, 0x3ef: 0xba,\n\t0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x128, 0x401: 0x129, 0x402: 0x12a, 0x403: 0x12b, 0x404: 0x12c, 0x405: 0x12d, 0x406: 0x12e, 0x407: 0x12f,\n\t0x408: 0x130, 0x409: 0xba, 0x40a: 0x131, 0x40b: 0x132, 0x40c: 0x5c, 0x40d: 0x5d, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x133, 0x411: 0x134, 0x412: 0x135, 0x413: 0x136, 0x414: 0xba, 0x415: 0xba, 0x416: 0x137, 0x417: 0x138,\n\t0x418: 0x139, 0x419: 0x13a, 0x41a: 0x13b, 0x41b: 0x13c, 0x41c: 0x13d, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13e, 0x423: 0x13f, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0xba, 0x429: 0xba, 0x42a: 0xba, 0x42b: 0x140, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x141, 0x431: 0x142, 0x432: 0x143, 0x433: 0xba, 0x434: 0xba, 0x435: 0xba, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x144, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x145, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x146, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x147, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x148, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x140, 0x529: 0x149, 0x52a: 0xba, 0x52b: 0x14a, 0x52c: 0x14b, 0x52d: 0x14c, 0x52e: 0x14d, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x14e, 0x53e: 0x14f, 0x53f: 0x150,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x151,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x152, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x153, 0x581: 0xba, 0x582: 0xba, 0x583: 0xba, 0x584: 0xba, 0x585: 0xba, 0x586: 0xba, 0x587: 0xba,\n\t0x588: 0xba, 0x589: 0xba, 0x58a: 0xba, 0x58b: 0xba, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x154, 0x5b2: 0x155, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x156, 0x5c4: 0x157, 0x5c5: 0x158, 0x5c6: 0x159, 0x5c7: 0x15a,\n\t0x5c8: 0x9b, 0x5c9: 0x15b, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x15c, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,\n\t0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x15d, 0x5e9: 0x15e, 0x5ea: 0x15f, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x160, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x161, 0x624: 0x6e, 0x625: 0x162, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x163, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x164, 0x641: 0x9b, 0x642: 0x165, 0x643: 0x166, 0x644: 0x72, 0x645: 0x73, 0x646: 0x167, 0x647: 0x168,\n\t0x648: 0x74, 0x649: 0x169, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x16a, 0x65c: 0x9b, 0x65d: 0x16b, 0x65e: 0x9b, 0x65f: 0x16c,\n\t0x660: 0x16d, 0x661: 0x16e, 0x662: 0x16f, 0x663: 0xba, 0x664: 0x170, 0x665: 0x171, 0x666: 0x172, 0x667: 0x173,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x174, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x175, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x176, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x177, 0x73b: 0xba, 0x73c: 0xba, 0x73d: 0xba, 0x73e: 0xba, 0x73f: 0xba,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xba, 0x741: 0xba, 0x742: 0xba, 0x743: 0xba, 0x744: 0xba, 0x745: 0xba, 0x746: 0xba, 0x747: 0xba,\n\t0x748: 0xba, 0x749: 0xba, 0x74a: 0xba, 0x74b: 0xba, 0x74c: 0xba, 0x74d: 0xba, 0x74e: 0xba, 0x74f: 0xba,\n\t0x750: 0xba, 0x751: 0xba, 0x752: 0xba, 0x753: 0xba, 0x754: 0xba, 0x755: 0xba, 0x756: 0xba, 0x757: 0xba,\n\t0x758: 0xba, 0x759: 0xba, 0x75a: 0xba, 0x75b: 0xba, 0x75c: 0xba, 0x75d: 0xba, 0x75e: 0xba, 0x75f: 0xba,\n\t0x760: 0x75, 0x761: 0x76, 0x762: 0x77, 0x763: 0x178, 0x764: 0x78, 0x765: 0x79, 0x766: 0x179, 0x767: 0x7a,\n\t0x768: 0x7b, 0x769: 0xba, 0x76a: 0xba, 0x76b: 0xba, 0x76c: 0xba, 0x76d: 0xba, 0x76e: 0xba, 0x76f: 0xba,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x790: 0x0d, 0x791: 0x0e, 0x792: 0x0f, 0x793: 0x10, 0x794: 0x11, 0x795: 0x0b, 0x796: 0x12, 0x797: 0x07,\n\t0x798: 0x13, 0x799: 0x0b, 0x79a: 0x0b, 0x79b: 0x14, 0x79c: 0x0b, 0x79d: 0x15, 0x79e: 0x16, 0x79f: 0x17,\n\t0x7a0: 0x07, 0x7a1: 0x07, 0x7a2: 0x07, 0x7a3: 0x07, 0x7a4: 0x07, 0x7a5: 0x07, 0x7a6: 0x07, 0x7a7: 0x07,\n\t0x7a8: 0x07, 0x7a9: 0x07, 0x7aa: 0x18, 0x7ab: 0x19, 0x7ac: 0x1a, 0x7ad: 0x0b, 0x7ae: 0x0b, 0x7af: 0x1b,\n\t0x7b0: 0x0b, 0x7b1: 0x0b, 0x7b2: 0x0b, 0x7b3: 0x0b, 0x7b4: 0x0b, 0x7b5: 0x0b, 0x7b6: 0x0b, 0x7b7: 0x0b,\n\t0x7b8: 0x0b, 0x7b9: 0x0b, 0x7ba: 0x0b, 0x7bb: 0x0b, 0x7bc: 0x0b, 0x7bd: 0x0b, 0x7be: 0x0b, 0x7bf: 0x0b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0b, 0x7c1: 0x0b, 0x7c2: 0x0b, 0x7c3: 0x0b, 0x7c4: 0x0b, 0x7c5: 0x0b, 0x7c6: 0x0b, 0x7c7: 0x0b,\n\t0x7c8: 0x0b, 0x7c9: 0x0b, 0x7ca: 0x0b, 0x7cb: 0x0b, 0x7cc: 0x0b, 0x7cd: 0x0b, 0x7ce: 0x0b, 0x7cf: 0x0b,\n\t0x7d0: 0x0b, 0x7d1: 0x0b, 0x7d2: 0x0b, 0x7d3: 0x0b, 0x7d4: 0x0b, 0x7d5: 0x0b, 0x7d6: 0x0b, 0x7d7: 0x0b,\n\t0x7d8: 0x0b, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x0b, 0x7dc: 0x0b, 0x7dd: 0x0b, 0x7de: 0x0b, 0x7df: 0x0b,\n\t0x7e0: 0x0b, 0x7e1: 0x0b, 0x7e2: 0x0b, 0x7e3: 0x0b, 0x7e4: 0x0b, 0x7e5: 0x0b, 0x7e6: 0x0b, 0x7e7: 0x0b,\n\t0x7e8: 0x0b, 0x7e9: 0x0b, 0x7ea: 0x0b, 0x7eb: 0x0b, 0x7ec: 0x0b, 0x7ed: 0x0b, 0x7ee: 0x0b, 0x7ef: 0x0b,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x17a, 0x801: 0x17b, 0x802: 0xba, 0x803: 0xba, 0x804: 0x17c, 0x805: 0x17c, 0x806: 0x17c, 0x807: 0x17d,\n\t0x808: 0xba, 0x809: 0xba, 0x80a: 0xba, 0x80b: 0xba, 0x80c: 0xba, 0x80d: 0xba, 0x80e: 0xba, 0x80f: 0xba,\n\t0x810: 0xba, 0x811: 0xba, 0x812: 0xba, 0x813: 0xba, 0x814: 0xba, 0x815: 0xba, 0x816: 0xba, 0x817: 0xba,\n\t0x818: 0xba, 0x819: 0xba, 0x81a: 0xba, 0x81b: 0xba, 0x81c: 0xba, 0x81d: 0xba, 0x81e: 0xba, 0x81f: 0xba,\n\t0x820: 0xba, 0x821: 0xba, 0x822: 0xba, 0x823: 0xba, 0x824: 0xba, 0x825: 0xba, 0x826: 0xba, 0x827: 0xba,\n\t0x828: 0xba, 0x829: 0xba, 0x82a: 0xba, 0x82b: 0xba, 0x82c: 0xba, 0x82d: 0xba, 0x82e: 0xba, 0x82f: 0xba,\n\t0x830: 0xba, 0x831: 0xba, 0x832: 0xba, 0x833: 0xba, 0x834: 0xba, 0x835: 0xba, 0x836: 0xba, 0x837: 0xba,\n\t0x838: 0xba, 0x839: 0xba, 0x83a: 0xba, 0x83b: 0xba, 0x83c: 0xba, 0x83d: 0xba, 0x83e: 0xba, 0x83f: 0xba,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,\n\t0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,\n\t0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,\n\t0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,\n\t0x860: 0x1e, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,\n\t0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,\n\t0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,\n\t0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n}\n\n// idnaSparseOffset: 258 entries, 516 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x93, 0x98, 0xa1, 0xb1, 0xbf, 0xcc, 0xd8, 0xe9, 0xf3, 0xfa, 0x107, 0x118, 0x11f, 0x12a, 0x139, 0x147, 0x151, 0x153, 0x158, 0x15b, 0x15e, 0x160, 0x16c, 0x177, 0x17f, 0x185, 0x18b, 0x190, 0x195, 0x198, 0x19c, 0x1a2, 0x1a7, 0x1b3, 0x1bd, 0x1c3, 0x1d4, 0x1de, 0x1e1, 0x1e9, 0x1ec, 0x1f9, 0x201, 0x205, 0x20c, 0x214, 0x224, 0x230, 0x232, 0x23c, 0x248, 0x254, 0x260, 0x268, 0x26d, 0x277, 0x288, 0x28c, 0x297, 0x29b, 0x2a4, 0x2ac, 0x2b2, 0x2b7, 0x2ba, 0x2bd, 0x2c1, 0x2c7, 0x2cb, 0x2cf, 0x2d5, 0x2dc, 0x2e2, 0x2ea, 0x2f1, 0x2fc, 0x306, 0x30a, 0x30d, 0x313, 0x317, 0x319, 0x31c, 0x31e, 0x321, 0x32b, 0x32e, 0x33d, 0x341, 0x346, 0x349, 0x34d, 0x352, 0x357, 0x35d, 0x363, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f6, 0x3fb, 0x408, 0x40c, 0x411, 0x413, 0x417, 0x419, 0x41d, 0x426, 0x42c, 0x430, 0x440, 0x44a, 0x44f, 0x452, 0x458, 0x45f, 0x464, 0x468, 0x46e, 0x473, 0x47c, 0x481, 0x487, 0x48e, 0x495, 0x49c, 0x4a0, 0x4a5, 0x4a8, 0x4ad, 0x4b9, 0x4bf, 0x4c4, 0x4cb, 0x4d3, 0x4d8, 0x4dc, 0x4ec, 0x4f3, 0x4f7, 0x4fb, 0x502, 0x504, 0x507, 0x50a, 0x50e, 0x512, 0x518, 0x521, 0x52d, 0x534, 0x53d, 0x545, 0x54c, 0x55a, 0x567, 0x574, 0x57d, 0x581, 0x58f, 0x597, 0x5a2, 0x5ab, 0x5b1, 0x5b9, 0x5c2, 0x5cc, 0x5cf, 0x5db, 0x5de, 0x5e3, 0x5e6, 0x5f0, 0x5f9, 0x605, 0x608, 0x60d, 0x610, 0x613, 0x616, 0x61d, 0x624, 0x628, 0x633, 0x636, 0x63c, 0x641, 0x645, 0x648, 0x64b, 0x64e, 0x653, 0x65d, 0x660, 0x664, 0x673, 0x67f, 0x683, 0x688, 0x68d, 0x691, 0x696, 0x69f, 0x6aa, 0x6b0, 0x6b8, 0x6bc, 0x6c0, 0x6c6, 0x6cc, 0x6d1, 0x6d4, 0x6e2, 0x6e9, 0x6ec, 0x6ef, 0x6f3, 0x6f9, 0x6fe, 0x708, 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71d, 0x720, 0x730, 0x741, 0x746, 0x748, 0x74a}\n\n// idnaSparseValues: 1869 entries, 7476 bytes\nvar idnaSparseValues = [1869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0c08, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x85},\n\t{value: 0x0c08, lo: 0x86, hi: 0x87},\n\t{value: 0x0a08, lo: 0x88, hi: 0x88},\n\t{value: 0x0c08, lo: 0x89, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0x93},\n\t{value: 0x0c08, lo: 0x94, hi: 0x94},\n\t{value: 0x0a08, lo: 0x95, hi: 0x95},\n\t{value: 0x0808, lo: 0x96, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf, offset 0x93\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0x10, offset 0x98\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x11, offset 0xa1\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbf\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xcc\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x15, offset 0xd8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x16, offset 0xe9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x17, offset 0xf3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x18, offset 0xfa\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x19, offset 0x107\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x1a, offset 0x118\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1b, offset 0x11f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1e, offset 0x147\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1f, offset 0x151\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x20, offset 0x153\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x21, offset 0x158\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x22, offset 0x15b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x23, offset 0x15e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x24, offset 0x160\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x25, offset 0x16c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x26, offset 0x177\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x17f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x28, offset 0x185\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x29, offset 0x18b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2a, offset 0x190\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2b, offset 0x195\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2c, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2d, offset 0x19c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2e, offset 0x1a2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x30, offset 0x1b3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x31, offset 0x1bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x32, offset 0x1c3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x33, offset 0x1d4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x34, offset 0x1de\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x35, offset 0x1e1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x36, offset 0x1e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x37, offset 0x1ec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x38, offset 0x1f9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x39, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x3a, offset 0x205\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3b, offset 0x20c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3c, offset 0x214\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x224\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x230\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3f, offset 0x232\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x41, offset 0x248\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x42, offset 0x254\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x43, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x44, offset 0x268\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x45, offset 0x26d\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x46, offset 0x277\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x47, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x48, offset 0x28c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x49, offset 0x297\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4a, offset 0x29b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a4\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4c, offset 0x2ac\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4d, offset 0x2b2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4e, offset 0x2b7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4f, offset 0x2ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x50, offset 0x2bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x51, offset 0x2c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x52, offset 0x2c7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x53, offset 0x2cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x54, offset 0x2cf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x55, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x57, offset 0x2e2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x5a, offset 0x2fc\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x306\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5c, offset 0x30a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0xbf},\n\t// Block 0x5d, offset 0x30d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5e, offset 0x313\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5f, offset 0x317\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x319\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x61, offset 0x31c\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x62, offset 0x31e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x63, offset 0x321\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x65, offset 0x32e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x66, offset 0x33d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x341\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x68, offset 0x346\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x69, offset 0x349\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x6a, offset 0x34d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x6b, offset 0x352\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6c, offset 0x357\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6f, offset 0x372\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x70, offset 0x378\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x71, offset 0x37c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x72, offset 0x38b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x75, offset 0x3a2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x3ad\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x77, offset 0x3b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x78, offset 0x3c6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x79, offset 0x3cf\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x7a, offset 0x3df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3ec\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7e, offset 0x408\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7f, offset 0x40c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x80, offset 0x411\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x413\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x82, offset 0x417\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x83, offset 0x419\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x84, offset 0x41d\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x85, offset 0x426\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x86, offset 0x42c\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x87, offset 0x430\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x88, offset 0x440\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x89, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x8a, offset 0x44f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x452\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8c, offset 0x458\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8d, offset 0x45f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8e, offset 0x464\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x468\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x46e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x473\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x92, offset 0x47c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x93, offset 0x481\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x94, offset 0x487\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x95, offset 0x48e\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x96, offset 0x495\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x49c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x4a0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x4a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9d, offset 0x4bf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa2, offset 0x4dc\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa3, offset 0x4ec\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa6, offset 0x4fb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa7, offset 0x502\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa8, offset 0x504\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa9, offset 0x507\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xaa, offset 0x50a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xab, offset 0x50e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x512\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xad, offset 0x518\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xae, offset 0x521\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xaf, offset 0x52d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb0, offset 0x534\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb1, offset 0x53d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb2, offset 0x545\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x54c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb4, offset 0x55a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb5, offset 0x567\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb6, offset 0x574\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb8, offset 0x581\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb9, offset 0x58f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x597\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5ab\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c2\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc0, offset 0x5cc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cf\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc2, offset 0x5db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc5, offset 0x5e6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc7, offset 0x5f9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc8, offset 0x605\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xc9, offset 0x608\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xca, offset 0x60d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xcb, offset 0x610\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcc, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xcd, offset 0x616\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xce, offset 0x61d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xcf, offset 0x624\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd0, offset 0x628\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd1, offset 0x633\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd2, offset 0x636\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd3, offset 0x63c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd4, offset 0x641\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0xd5, offset 0x645\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd6, offset 0x648\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xd7, offset 0x64b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0xbf},\n\t// Block 0xd8, offset 0x64e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd9, offset 0x653\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xda, offset 0x65d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xdb, offset 0x660\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdc, offset 0x664\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xdd, offset 0x673\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x67f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdf, offset 0x683\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe0, offset 0x688\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x68d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x691\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe3, offset 0x696\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x69f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xe5, offset 0x6aa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe7, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe8, offset 0x6bc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6c0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xea, offset 0x6c6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xeb, offset 0x6cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xec, offset 0x6d1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xed, offset 0x6d4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xee, offset 0x6e2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xef, offset 0x6e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf0, offset 0x6ec\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf1, offset 0x6ef\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf2, offset 0x6f3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf3, offset 0x6f9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf4, offset 0x6fe\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf5, offset 0x708\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xf6, offset 0x70d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xf7, offset 0x710\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0xbf},\n\t// Block 0xf8, offset 0x713\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf9, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xfa, offset 0x719\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xfb, offset 0x71d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xfc, offset 0x720\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0xfd, offset 0x730\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfe, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0xff, offset 0x746\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x100, offset 0x748\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x101, offset 0x74a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 41662 bytes (40KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// Sparse block handling code.\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar idnaSparse = sparseBlocks{\n\tvalues: idnaSparseValues[:],\n\toffset: idnaSparseOffset[:],\n}\n\n// Don't use newIdnaTrie to avoid unconditional linking in of the table.\nvar trie = &idnaTrie{}\n\n// lookup determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.16\n\npackage idna\n\n// appendMapping appends the mapping for the respective rune. isMapped must be\n// true. A mapping is a categorization of a rune as defined in UTS #46.\nfunc (c info) appendMapping(b []byte, s string) []byte {\n\tindex := int(c >> indexShift)\n\tif c&xorBit == 0 {\n\t\ts := mappings[index:]\n\t\treturn append(b, s[1:s[0]+1]...)\n\t}\n\tb = append(b, s...)\n\tif c&inlineXOR == inlineXOR {\n\t\t// TODO: support and handle two-byte inline masks\n\t\tb[len(b)-1] ^= byte(index)\n\t} else {\n\t\tfor p := len(b) - int(xorData[index]); p < len(b); p++ {\n\t\t\tindex++\n\t\t\tb[p] ^= xorData[index]\n\t\t}\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.16\n\npackage idna\n\n// appendMapping appends the mapping for the respective rune. isMapped must be\n// true. A mapping is a categorization of a rune as defined in UTS #46.\nfunc (c info) appendMapping(b []byte, s string) []byte {\n\tindex := int(c >> indexShift)\n\tif c&xorBit == 0 {\n\t\tp := index\n\t\treturn append(b, mappings[mappingIndex[p]:mappingIndex[p+1]]...)\n\t}\n\tb = append(b, s...)\n\tif c&inlineXOR == inlineXOR {\n\t\t// TODO: support and handle two-byte inline masks\n\t\tb[len(b)-1] ^= byte(index)\n\t} else {\n\t\tfor p := len(b) - int(xorData[index]); p < len(b); p++ {\n\t\t\tindex++\n\t\t\tb[p] ^= xorData[index]\n\t\t}\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage idna\n\n// This file contains definitions for interpreting the trie value of the idna\n// trie generated by \"go run gen*.go\". It is shared by both the generator\n// program and the resultant package. Sharing is achieved by the generator\n// copying gen_trieval.go to trieval.go and changing what's above this comment.\n\n// info holds information from the IDNA mapping table for a single rune. It is\n// the value returned by a trie lookup. In most cases, all information fits in\n// a 16-bit value. For mappings, this value may contain an index into a slice\n// with the mapped string. Such mappings can consist of the actual mapped value\n// or an XOR pattern to be applied to the bytes of the UTF8 encoding of the\n// input rune. This technique is used by the cases packages and reduces the\n// table size significantly.\n//\n// The per-rune values have the following format:\n//\n//\tif mapped {\n//\t  if inlinedXOR {\n//\t    15..13 inline XOR marker\n//\t    12..11 unused\n//\t    10..3  inline XOR mask\n//\t  } else {\n//\t    15..3  index into xor or mapping table\n//\t  }\n//\t} else {\n//\t    15..14 unused\n//\t    13     mayNeedNorm\n//\t    12..11 attributes\n//\t    10..8  joining type\n//\t     7..3  category type\n//\t}\n//\t   2  use xor pattern\n//\t1..0  mapped category\n//\n// See the definitions below for a more detailed description of the various\n// bits.\ntype info uint16\n\nconst (\n\tcatSmallMask = 0x3\n\tcatBigMask   = 0xF8\n\tindexShift   = 3\n\txorBit       = 0x4    // interpret the index as an xor pattern\n\tinlineXOR    = 0xE000 // These bits are set if the XOR pattern is inlined.\n\n\tjoinShift = 8\n\tjoinMask  = 0x07\n\n\t// Attributes\n\tattributesMask = 0x1800\n\tviramaModifier = 0x1800\n\tmodifier       = 0x1000\n\trtl            = 0x0800\n\n\tmayNeedNorm = 0x2000\n)\n\n// A category corresponds to a category defined in the IDNA mapping table.\ntype category uint16\n\nconst (\n\tunknown              category = 0 // not currently defined in unicode.\n\tmapped               category = 1\n\tdisallowedSTD3Mapped category = 2\n\tdeviation            category = 3\n)\n\nconst (\n\tvalid               category = 0x08\n\tvalidNV8            category = 0x18\n\tvalidXV8            category = 0x28\n\tdisallowed          category = 0x40\n\tdisallowedSTD3Valid category = 0x80\n\tignored             category = 0xC0\n)\n\n// join types and additional rune information\nconst (\n\tjoiningL = (iota + 1)\n\tjoiningD\n\tjoiningT\n\tjoiningR\n\n\t//the following types are derived during processing\n\tjoinZWJ\n\tjoinZWNJ\n\tjoinVirama\n\tnumJoinTypes\n)\n\nfunc (c info) isMapped() bool {\n\treturn c&0x3 != 0\n}\n\nfunc (c info) category() category {\n\tsmall := c & catSmallMask\n\tif small != 0 {\n\t\treturn category(small)\n\t}\n\treturn category(c & catBigMask)\n}\n\nfunc (c info) joinType() info {\n\tif c.isMapped() {\n\t\treturn 0\n\t}\n\treturn (c >> joinShift) & joinMask\n}\n\nfunc (c info) isModifier() bool {\n\treturn c&(modifier|catSmallMask) == modifier\n}\n\nfunc (c info) isViramaModifier() bool {\n\treturn c&(attributesMask|catSmallMask) == viramaModifier\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/ascii.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport \"strings\"\n\n// The HTTP protocols are defined in terms of ASCII, not Unicode. This file\n// contains helper functions which may use Unicode-aware functions which would\n// otherwise be unsafe and could introduce vulnerabilities if used improperly.\n\n// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t\n// are equal, ASCII-case-insensitively.\nfunc asciiEqualFold(s, t string) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(s); i++ {\n\t\tif lower(s[i]) != lower(t[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// lower returns the ASCII lowercase version of b.\nfunc lower(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// isASCIIPrint returns whether s is ASCII and printable according to\n// https://tools.ietf.org/html/rfc20#section-4.2.\nfunc isASCIIPrint(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] < ' ' || s[i] > '~' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// asciiToLower returns the lowercase version of s if s is ASCII and printable,\n// and whether or not it was.\nfunc asciiToLower(s string) (lower string, ok bool) {\n\tif !isASCIIPrint(s) {\n\t\treturn \"\", false\n\t}\n\treturn strings.ToLower(s), true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/headermap.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport (\n\t\"net/textproto\"\n\t\"sync\"\n)\n\nvar (\n\tcommonBuildOnce   sync.Once\n\tcommonLowerHeader map[string]string // Go-Canonical-Case -> lower-case\n\tcommonCanonHeader map[string]string // lower-case -> Go-Canonical-Case\n)\n\nfunc buildCommonHeaderMapsOnce() {\n\tcommonBuildOnce.Do(buildCommonHeaderMaps)\n}\n\nfunc buildCommonHeaderMaps() {\n\tcommon := []string{\n\t\t\"accept\",\n\t\t\"accept-charset\",\n\t\t\"accept-encoding\",\n\t\t\"accept-language\",\n\t\t\"accept-ranges\",\n\t\t\"age\",\n\t\t\"access-control-allow-credentials\",\n\t\t\"access-control-allow-headers\",\n\t\t\"access-control-allow-methods\",\n\t\t\"access-control-allow-origin\",\n\t\t\"access-control-expose-headers\",\n\t\t\"access-control-max-age\",\n\t\t\"access-control-request-headers\",\n\t\t\"access-control-request-method\",\n\t\t\"allow\",\n\t\t\"authorization\",\n\t\t\"cache-control\",\n\t\t\"content-disposition\",\n\t\t\"content-encoding\",\n\t\t\"content-language\",\n\t\t\"content-length\",\n\t\t\"content-location\",\n\t\t\"content-range\",\n\t\t\"content-type\",\n\t\t\"cookie\",\n\t\t\"date\",\n\t\t\"etag\",\n\t\t\"expect\",\n\t\t\"expires\",\n\t\t\"from\",\n\t\t\"host\",\n\t\t\"if-match\",\n\t\t\"if-modified-since\",\n\t\t\"if-none-match\",\n\t\t\"if-unmodified-since\",\n\t\t\"last-modified\",\n\t\t\"link\",\n\t\t\"location\",\n\t\t\"max-forwards\",\n\t\t\"origin\",\n\t\t\"proxy-authenticate\",\n\t\t\"proxy-authorization\",\n\t\t\"range\",\n\t\t\"referer\",\n\t\t\"refresh\",\n\t\t\"retry-after\",\n\t\t\"server\",\n\t\t\"set-cookie\",\n\t\t\"strict-transport-security\",\n\t\t\"trailer\",\n\t\t\"transfer-encoding\",\n\t\t\"user-agent\",\n\t\t\"vary\",\n\t\t\"via\",\n\t\t\"www-authenticate\",\n\t\t\"x-forwarded-for\",\n\t\t\"x-forwarded-proto\",\n\t}\n\tcommonLowerHeader = make(map[string]string, len(common))\n\tcommonCanonHeader = make(map[string]string, len(common))\n\tfor _, v := range common {\n\t\tchk := textproto.CanonicalMIMEHeaderKey(v)\n\t\tcommonLowerHeader[chk] = v\n\t\tcommonCanonHeader[v] = chk\n\t}\n}\n\n// LowerHeader returns the lowercase form of a header name,\n// used on the wire for HTTP/2 and HTTP/3 requests.\nfunc LowerHeader(v string) (lower string, ascii bool) {\n\tbuildCommonHeaderMapsOnce()\n\tif s, ok := commonLowerHeader[v]; ok {\n\t\treturn s, true\n\t}\n\treturn asciiToLower(v)\n}\n\n// CanonicalHeader canonicalizes a header name. (For example, \"host\" becomes \"Host\".)\nfunc CanonicalHeader(v string) string {\n\tbuildCommonHeaderMapsOnce()\n\tif s, ok := commonCanonHeader[v]; ok {\n\t\treturn s\n\t}\n\treturn textproto.CanonicalMIMEHeaderKey(v)\n}\n\n// CachedCanonicalHeader returns the canonical form of a well-known header name.\nfunc CachedCanonicalHeader(v string) (string, bool) {\n\tbuildCommonHeaderMapsOnce()\n\ts, ok := commonCanonHeader[v]\n\treturn s, ok\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/request.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http/httptrace\"\n\t\"net/textproto\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n)\n\nvar (\n\tErrRequestHeaderListSize = errors.New(\"request header list larger than peer's advertised limit\")\n)\n\n// Request is a subset of http.Request.\n// It'd be simpler to pass an *http.Request, of course, but we can't depend on net/http\n// without creating a dependency cycle.\ntype Request struct {\n\tURL                 *url.URL\n\tMethod              string\n\tHost                string\n\tHeader              map[string][]string\n\tTrailer             map[string][]string\n\tActualContentLength int64 // 0 means 0, -1 means unknown\n}\n\n// EncodeHeadersParam is parameters to EncodeHeaders.\ntype EncodeHeadersParam struct {\n\tRequest Request\n\n\t// AddGzipHeader indicates that an \"accept-encoding: gzip\" header should be\n\t// added to the request.\n\tAddGzipHeader bool\n\n\t// PeerMaxHeaderListSize, when non-zero, is the peer's MAX_HEADER_LIST_SIZE setting.\n\tPeerMaxHeaderListSize uint64\n\n\t// DefaultUserAgent is the User-Agent header to send when the request\n\t// neither contains a User-Agent nor disables it.\n\tDefaultUserAgent string\n}\n\n// EncodeHeadersResult is the result of EncodeHeaders.\ntype EncodeHeadersResult struct {\n\tHasBody     bool\n\tHasTrailers bool\n}\n\n// EncodeHeaders constructs request headers common to HTTP/2 and HTTP/3.\n// It validates a request and calls headerf with each pseudo-header and header\n// for the request.\n// The headerf function is called with the validated, canonicalized header name.\nfunc EncodeHeaders(ctx context.Context, param EncodeHeadersParam, headerf func(name, value string)) (res EncodeHeadersResult, _ error) {\n\treq := param.Request\n\n\t// Check for invalid connection-level headers.\n\tif err := checkConnHeaders(req.Header); err != nil {\n\t\treturn res, err\n\t}\n\n\tif req.URL == nil {\n\t\treturn res, errors.New(\"Request.URL is nil\")\n\t}\n\n\thost := req.Host\n\tif host == \"\" {\n\t\thost = req.URL.Host\n\t}\n\thost, err := httpguts.PunycodeHostPort(host)\n\tif err != nil {\n\t\treturn res, err\n\t}\n\tif !httpguts.ValidHostHeader(host) {\n\t\treturn res, errors.New(\"invalid Host header\")\n\t}\n\n\t// isNormalConnect is true if this is a non-extended CONNECT request.\n\tisNormalConnect := false\n\tvar protocol string\n\tif vv := req.Header[\":protocol\"]; len(vv) > 0 {\n\t\tprotocol = vv[0]\n\t}\n\tif req.Method == \"CONNECT\" && protocol == \"\" {\n\t\tisNormalConnect = true\n\t} else if protocol != \"\" && req.Method != \"CONNECT\" {\n\t\treturn res, errors.New(\"invalid :protocol header in non-CONNECT request\")\n\t}\n\n\t// Validate the path, except for non-extended CONNECT requests which have no path.\n\tvar path string\n\tif !isNormalConnect {\n\t\tpath = req.URL.RequestURI()\n\t\tif !validPseudoPath(path) {\n\t\t\torig := path\n\t\t\tpath = strings.TrimPrefix(path, req.URL.Scheme+\"://\"+host)\n\t\t\tif !validPseudoPath(path) {\n\t\t\t\tif req.URL.Opaque != \"\" {\n\t\t\t\t\treturn res, fmt.Errorf(\"invalid request :path %q from URL.Opaque = %q\", orig, req.URL.Opaque)\n\t\t\t\t} else {\n\t\t\t\t\treturn res, fmt.Errorf(\"invalid request :path %q\", orig)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check for any invalid headers+trailers and return an error before we\n\t// potentially pollute our hpack state. (We want to be able to\n\t// continue to reuse the hpack encoder for future requests)\n\tif err := validateHeaders(req.Header); err != \"\" {\n\t\treturn res, fmt.Errorf(\"invalid HTTP header %s\", err)\n\t}\n\tif err := validateHeaders(req.Trailer); err != \"\" {\n\t\treturn res, fmt.Errorf(\"invalid HTTP trailer %s\", err)\n\t}\n\n\ttrailers, err := commaSeparatedTrailers(req.Trailer)\n\tif err != nil {\n\t\treturn res, err\n\t}\n\n\tenumerateHeaders := func(f func(name, value string)) {\n\t\t// 8.1.2.3 Request Pseudo-Header Fields\n\t\t// The :path pseudo-header field includes the path and query parts of the\n\t\t// target URI (the path-absolute production and optionally a '?' character\n\t\t// followed by the query production, see Sections 3.3 and 3.4 of\n\t\t// [RFC3986]).\n\t\tf(\":authority\", host)\n\t\tm := req.Method\n\t\tif m == \"\" {\n\t\t\tm = \"GET\"\n\t\t}\n\t\tf(\":method\", m)\n\t\tif !isNormalConnect {\n\t\t\tf(\":path\", path)\n\t\t\tf(\":scheme\", req.URL.Scheme)\n\t\t}\n\t\tif protocol != \"\" {\n\t\t\tf(\":protocol\", protocol)\n\t\t}\n\t\tif trailers != \"\" {\n\t\t\tf(\"trailer\", trailers)\n\t\t}\n\n\t\tvar didUA bool\n\t\tfor k, vv := range req.Header {\n\t\t\tif asciiEqualFold(k, \"host\") || asciiEqualFold(k, \"content-length\") {\n\t\t\t\t// Host is :authority, already sent.\n\t\t\t\t// Content-Length is automatic, set below.\n\t\t\t\tcontinue\n\t\t\t} else if asciiEqualFold(k, \"connection\") ||\n\t\t\t\tasciiEqualFold(k, \"proxy-connection\") ||\n\t\t\t\tasciiEqualFold(k, \"transfer-encoding\") ||\n\t\t\t\tasciiEqualFold(k, \"upgrade\") ||\n\t\t\t\tasciiEqualFold(k, \"keep-alive\") {\n\t\t\t\t// Per 8.1.2.2 Connection-Specific Header\n\t\t\t\t// Fields, don't send connection-specific\n\t\t\t\t// fields. We have already checked if any\n\t\t\t\t// are error-worthy so just ignore the rest.\n\t\t\t\tcontinue\n\t\t\t} else if asciiEqualFold(k, \"user-agent\") {\n\t\t\t\t// Match Go's http1 behavior: at most one\n\t\t\t\t// User-Agent. If set to nil or empty string,\n\t\t\t\t// then omit it. Otherwise if not mentioned,\n\t\t\t\t// include the default (below).\n\t\t\t\tdidUA = true\n\t\t\t\tif len(vv) < 1 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvv = vv[:1]\n\t\t\t\tif vv[0] == \"\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if asciiEqualFold(k, \"cookie\") {\n\t\t\t\t// Per 8.1.2.5 To allow for better compression efficiency, the\n\t\t\t\t// Cookie header field MAY be split into separate header fields,\n\t\t\t\t// each with one or more cookie-pairs.\n\t\t\t\tfor _, v := range vv {\n\t\t\t\t\tfor {\n\t\t\t\t\t\tp := strings.IndexByte(v, ';')\n\t\t\t\t\t\tif p < 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tf(\"cookie\", v[:p])\n\t\t\t\t\t\tp++\n\t\t\t\t\t\t// strip space after semicolon if any.\n\t\t\t\t\t\tfor p+1 <= len(v) && v[p] == ' ' {\n\t\t\t\t\t\t\tp++\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = v[p:]\n\t\t\t\t\t}\n\t\t\t\t\tif len(v) > 0 {\n\t\t\t\t\t\tf(\"cookie\", v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t} else if k == \":protocol\" {\n\t\t\t\t// :protocol pseudo-header was already sent above.\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfor _, v := range vv {\n\t\t\t\tf(k, v)\n\t\t\t}\n\t\t}\n\t\tif shouldSendReqContentLength(req.Method, req.ActualContentLength) {\n\t\t\tf(\"content-length\", strconv.FormatInt(req.ActualContentLength, 10))\n\t\t}\n\t\tif param.AddGzipHeader {\n\t\t\tf(\"accept-encoding\", \"gzip\")\n\t\t}\n\t\tif !didUA {\n\t\t\tf(\"user-agent\", param.DefaultUserAgent)\n\t\t}\n\t}\n\n\t// Do a first pass over the headers counting bytes to ensure\n\t// we don't exceed cc.peerMaxHeaderListSize. This is done as a\n\t// separate pass before encoding the headers to prevent\n\t// modifying the hpack state.\n\tif param.PeerMaxHeaderListSize > 0 {\n\t\thlSize := uint64(0)\n\t\tenumerateHeaders(func(name, value string) {\n\t\t\thf := hpack.HeaderField{Name: name, Value: value}\n\t\t\thlSize += uint64(hf.Size())\n\t\t})\n\n\t\tif hlSize > param.PeerMaxHeaderListSize {\n\t\t\treturn res, ErrRequestHeaderListSize\n\t\t}\n\t}\n\n\ttrace := httptrace.ContextClientTrace(ctx)\n\n\t// Header list size is ok. Write the headers.\n\tenumerateHeaders(func(name, value string) {\n\t\tname, ascii := LowerHeader(name)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\treturn\n\t\t}\n\n\t\theaderf(name, value)\n\n\t\tif trace != nil && trace.WroteHeaderField != nil {\n\t\t\ttrace.WroteHeaderField(name, []string{value})\n\t\t}\n\t})\n\n\tres.HasBody = req.ActualContentLength != 0\n\tres.HasTrailers = trailers != \"\"\n\treturn res, nil\n}\n\n// IsRequestGzip reports whether we should add an Accept-Encoding: gzip header\n// for a request.\nfunc IsRequestGzip(method string, header map[string][]string, disableCompression bool) bool {\n\t// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere?\n\tif !disableCompression &&\n\t\tlen(header[\"Accept-Encoding\"]) == 0 &&\n\t\tlen(header[\"Range\"]) == 0 &&\n\t\tmethod != \"HEAD\" {\n\t\t// Request gzip only, not deflate. Deflate is ambiguous and\n\t\t// not as universally supported anyway.\n\t\t// See: https://zlib.net/zlib_faq.html#faq39\n\t\t//\n\t\t// Note that we don't request this for HEAD requests,\n\t\t// due to a bug in nginx:\n\t\t//   http://trac.nginx.org/nginx/ticket/358\n\t\t//   https://golang.org/issue/5522\n\t\t//\n\t\t// We don't request gzip if the request is for a range, since\n\t\t// auto-decoding a portion of a gzipped document will just fail\n\t\t// anyway. See https://golang.org/issue/8923\n\t\treturn true\n\t}\n\treturn false\n}\n\n// checkConnHeaders checks whether req has any invalid connection-level headers.\n//\n// https://www.rfc-editor.org/rfc/rfc9114.html#section-4.2-3\n// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.2-1\n//\n// Certain headers are special-cased as okay but not transmitted later.\n// For example, we allow \"Transfer-Encoding: chunked\", but drop the header when encoding.\nfunc checkConnHeaders(h map[string][]string) error {\n\tif vv := h[\"Upgrade\"]; len(vv) > 0 && (vv[0] != \"\" && vv[0] != \"chunked\") {\n\t\treturn fmt.Errorf(\"invalid Upgrade request header: %q\", vv)\n\t}\n\tif vv := h[\"Transfer-Encoding\"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != \"\" && vv[0] != \"chunked\") {\n\t\treturn fmt.Errorf(\"invalid Transfer-Encoding request header: %q\", vv)\n\t}\n\tif vv := h[\"Connection\"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != \"\" && !asciiEqualFold(vv[0], \"close\") && !asciiEqualFold(vv[0], \"keep-alive\")) {\n\t\treturn fmt.Errorf(\"invalid Connection request header: %q\", vv)\n\t}\n\treturn nil\n}\n\nfunc commaSeparatedTrailers(trailer map[string][]string) (string, error) {\n\tkeys := make([]string, 0, len(trailer))\n\tfor k := range trailer {\n\t\tk = CanonicalHeader(k)\n\t\tswitch k {\n\t\tcase \"Transfer-Encoding\", \"Trailer\", \"Content-Length\":\n\t\t\treturn \"\", fmt.Errorf(\"invalid Trailer key %q\", k)\n\t\t}\n\t\tkeys = append(keys, k)\n\t}\n\tif len(keys) > 0 {\n\t\tsort.Strings(keys)\n\t\treturn strings.Join(keys, \",\"), nil\n\t}\n\treturn \"\", nil\n}\n\n// validPseudoPath reports whether v is a valid :path pseudo-header\n// value. It must be either:\n//\n//   - a non-empty string starting with '/'\n//   - the string '*', for OPTIONS requests.\n//\n// For now this is only used a quick check for deciding when to clean\n// up Opaque URLs before sending requests from the Transport.\n// See golang.org/issue/16847\n//\n// We used to enforce that the path also didn't start with \"//\", but\n// Google's GFE accepts such paths and Chrome sends them, so ignore\n// that part of the spec. See golang.org/issue/19103.\nfunc validPseudoPath(v string) bool {\n\treturn (len(v) > 0 && v[0] == '/') || v == \"*\"\n}\n\nfunc validateHeaders(hdrs map[string][]string) string {\n\tfor k, vv := range hdrs {\n\t\tif !httpguts.ValidHeaderFieldName(k) && k != \":protocol\" {\n\t\t\treturn fmt.Sprintf(\"name %q\", k)\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\tif !httpguts.ValidHeaderFieldValue(v) {\n\t\t\t\t// Don't include the value in the error,\n\t\t\t\t// because it may be sensitive.\n\t\t\t\treturn fmt.Sprintf(\"value for header %q\", k)\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// shouldSendReqContentLength reports whether we should send\n// a \"content-length\" request header. This logic is basically a copy of the net/http\n// transferWriter.shouldSendContentLength.\n// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown).\n// -1 means unknown.\nfunc shouldSendReqContentLength(method string, contentLength int64) bool {\n\tif contentLength > 0 {\n\t\treturn true\n\t}\n\tif contentLength < 0 {\n\t\treturn false\n\t}\n\t// For zero bodies, whether we send a content-length depends on the method.\n\t// It also kinda doesn't matter for http2 either way, with END_STREAM.\n\tswitch method {\n\tcase \"POST\", \"PUT\", \"PATCH\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// ServerRequestParam is parameters to NewServerRequest.\ntype ServerRequestParam struct {\n\tMethod                  string\n\tScheme, Authority, Path string\n\tProtocol                string\n\tHeader                  map[string][]string\n}\n\n// ServerRequestResult is the result of NewServerRequest.\ntype ServerRequestResult struct {\n\t// Various http.Request fields.\n\tURL        *url.URL\n\tRequestURI string\n\tTrailer    map[string][]string\n\n\tNeedsContinue bool // client provided an \"Expect: 100-continue\" header\n\n\t// If the request should be rejected, this is a short string suitable for passing\n\t// to the http2 package's CountError function.\n\t// It might be a bit odd to return errors this way rather than returning an error,\n\t// but this ensures we don't forget to include a CountError reason.\n\tInvalidReason string\n}\n\nfunc NewServerRequest(rp ServerRequestParam) ServerRequestResult {\n\tneedsContinue := httpguts.HeaderValuesContainsToken(rp.Header[\"Expect\"], \"100-continue\")\n\tif needsContinue {\n\t\tdelete(rp.Header, \"Expect\")\n\t}\n\t// Merge Cookie headers into one \"; \"-delimited value.\n\tif cookies := rp.Header[\"Cookie\"]; len(cookies) > 1 {\n\t\trp.Header[\"Cookie\"] = []string{strings.Join(cookies, \"; \")}\n\t}\n\n\t// Setup Trailers\n\tvar trailer map[string][]string\n\tfor _, v := range rp.Header[\"Trailer\"] {\n\t\tfor _, key := range strings.Split(v, \",\") {\n\t\t\tkey = textproto.CanonicalMIMEHeaderKey(textproto.TrimString(key))\n\t\t\tswitch key {\n\t\t\tcase \"Transfer-Encoding\", \"Trailer\", \"Content-Length\":\n\t\t\t\t// Bogus. (copy of http1 rules)\n\t\t\t\t// Ignore.\n\t\t\tdefault:\n\t\t\t\tif trailer == nil {\n\t\t\t\t\ttrailer = make(map[string][]string)\n\t\t\t\t}\n\t\t\t\ttrailer[key] = nil\n\t\t\t}\n\t\t}\n\t}\n\tdelete(rp.Header, \"Trailer\")\n\n\t// \"':authority' MUST NOT include the deprecated userinfo subcomponent\n\t// for \"http\" or \"https\" schemed URIs.\"\n\t// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.8\n\tif strings.IndexByte(rp.Authority, '@') != -1 && (rp.Scheme == \"http\" || rp.Scheme == \"https\") {\n\t\treturn ServerRequestResult{\n\t\t\tInvalidReason: \"userinfo_in_authority\",\n\t\t}\n\t}\n\n\tvar url_ *url.URL\n\tvar requestURI string\n\tif rp.Method == \"CONNECT\" && rp.Protocol == \"\" {\n\t\turl_ = &url.URL{Host: rp.Authority}\n\t\trequestURI = rp.Authority // mimic HTTP/1 server behavior\n\t} else {\n\t\tvar err error\n\t\turl_, err = url.ParseRequestURI(rp.Path)\n\t\tif err != nil {\n\t\t\treturn ServerRequestResult{\n\t\t\t\tInvalidReason: \"bad_path\",\n\t\t\t}\n\t\t}\n\t\trequestURI = rp.Path\n\t}\n\n\treturn ServerRequestResult{\n\t\tURL:           url_,\n\t\tNeedsContinue: needsContinue,\n\t\tRequestURI:    requestURI,\n\t\tTrailer:       trailer,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/timeseries/timeseries.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package timeseries implements a time series structure for stats collection.\npackage timeseries // import \"golang.org/x/net/internal/timeseries\"\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"time\"\n)\n\nconst (\n\ttimeSeriesNumBuckets       = 64\n\tminuteHourSeriesNumBuckets = 60\n)\n\nvar timeSeriesResolutions = []time.Duration{\n\t1 * time.Second,\n\t10 * time.Second,\n\t1 * time.Minute,\n\t10 * time.Minute,\n\t1 * time.Hour,\n\t6 * time.Hour,\n\t24 * time.Hour,          // 1 day\n\t7 * 24 * time.Hour,      // 1 week\n\t4 * 7 * 24 * time.Hour,  // 4 weeks\n\t16 * 7 * 24 * time.Hour, // 16 weeks\n}\n\nvar minuteHourSeriesResolutions = []time.Duration{\n\t1 * time.Second,\n\t1 * time.Minute,\n}\n\n// An Observable is a kind of data that can be aggregated in a time series.\ntype Observable interface {\n\tMultiply(ratio float64)    // Multiplies the data in self by a given ratio\n\tAdd(other Observable)      // Adds the data from a different observation to self\n\tClear()                    // Clears the observation so it can be reused.\n\tCopyFrom(other Observable) // Copies the contents of a given observation to self\n}\n\n// Float attaches the methods of Observable to a float64.\ntype Float float64\n\n// NewFloat returns a Float.\nfunc NewFloat() Observable {\n\tf := Float(0)\n\treturn &f\n}\n\n// String returns the float as a string.\nfunc (f *Float) String() string { return fmt.Sprintf(\"%g\", f.Value()) }\n\n// Value returns the float's value.\nfunc (f *Float) Value() float64 { return float64(*f) }\n\nfunc (f *Float) Multiply(ratio float64) { *f *= Float(ratio) }\n\nfunc (f *Float) Add(other Observable) {\n\to := other.(*Float)\n\t*f += *o\n}\n\nfunc (f *Float) Clear() { *f = 0 }\n\nfunc (f *Float) CopyFrom(other Observable) {\n\to := other.(*Float)\n\t*f = *o\n}\n\n// A Clock tells the current time.\ntype Clock interface {\n\tTime() time.Time\n}\n\ntype defaultClock int\n\nvar defaultClockInstance defaultClock\n\nfunc (defaultClock) Time() time.Time { return time.Now() }\n\n// Information kept per level. Each level consists of a circular list of\n// observations. The start of the level may be derived from end and the\n// len(buckets) * sizeInMillis.\ntype tsLevel struct {\n\toldest   int               // index to oldest bucketed Observable\n\tnewest   int               // index to newest bucketed Observable\n\tend      time.Time         // end timestamp for this level\n\tsize     time.Duration     // duration of the bucketed Observable\n\tbuckets  []Observable      // collections of observations\n\tprovider func() Observable // used for creating new Observable\n}\n\nfunc (l *tsLevel) Clear() {\n\tl.oldest = 0\n\tl.newest = len(l.buckets) - 1\n\tl.end = time.Time{}\n\tfor i := range l.buckets {\n\t\tif l.buckets[i] != nil {\n\t\t\tl.buckets[i].Clear()\n\t\t\tl.buckets[i] = nil\n\t\t}\n\t}\n}\n\nfunc (l *tsLevel) InitLevel(size time.Duration, numBuckets int, f func() Observable) {\n\tl.size = size\n\tl.provider = f\n\tl.buckets = make([]Observable, numBuckets)\n}\n\n// Keeps a sequence of levels. Each level is responsible for storing data at\n// a given resolution. For example, the first level stores data at a one\n// minute resolution while the second level stores data at a one hour\n// resolution.\n\n// Each level is represented by a sequence of buckets. Each bucket spans an\n// interval equal to the resolution of the level. New observations are added\n// to the last bucket.\ntype timeSeries struct {\n\tprovider    func() Observable // make more Observable\n\tnumBuckets  int               // number of buckets in each level\n\tlevels      []*tsLevel        // levels of bucketed Observable\n\tlastAdd     time.Time         // time of last Observable tracked\n\ttotal       Observable        // convenient aggregation of all Observable\n\tclock       Clock             // Clock for getting current time\n\tpending     Observable        // observations not yet bucketed\n\tpendingTime time.Time         // what time are we keeping in pending\n\tdirty       bool              // if there are pending observations\n}\n\n// init initializes a level according to the supplied criteria.\nfunc (ts *timeSeries) init(resolutions []time.Duration, f func() Observable, numBuckets int, clock Clock) {\n\tts.provider = f\n\tts.numBuckets = numBuckets\n\tts.clock = clock\n\tts.levels = make([]*tsLevel, len(resolutions))\n\n\tfor i := range resolutions {\n\t\tif i > 0 && resolutions[i-1] >= resolutions[i] {\n\t\t\tlog.Print(\"timeseries: resolutions must be monotonically increasing\")\n\t\t\tbreak\n\t\t}\n\t\tnewLevel := new(tsLevel)\n\t\tnewLevel.InitLevel(resolutions[i], ts.numBuckets, ts.provider)\n\t\tts.levels[i] = newLevel\n\t}\n\n\tts.Clear()\n}\n\n// Clear removes all observations from the time series.\nfunc (ts *timeSeries) Clear() {\n\tts.lastAdd = time.Time{}\n\tts.total = ts.resetObservation(ts.total)\n\tts.pending = ts.resetObservation(ts.pending)\n\tts.pendingTime = time.Time{}\n\tts.dirty = false\n\n\tfor i := range ts.levels {\n\t\tts.levels[i].Clear()\n\t}\n}\n\n// Add records an observation at the current time.\nfunc (ts *timeSeries) Add(observation Observable) {\n\tts.AddWithTime(observation, ts.clock.Time())\n}\n\n// AddWithTime records an observation at the specified time.\nfunc (ts *timeSeries) AddWithTime(observation Observable, t time.Time) {\n\n\tsmallBucketDuration := ts.levels[0].size\n\n\tif t.After(ts.lastAdd) {\n\t\tts.lastAdd = t\n\t}\n\n\tif t.After(ts.pendingTime) {\n\t\tts.advance(t)\n\t\tts.mergePendingUpdates()\n\t\tts.pendingTime = ts.levels[0].end\n\t\tts.pending.CopyFrom(observation)\n\t\tts.dirty = true\n\t} else if t.After(ts.pendingTime.Add(-1 * smallBucketDuration)) {\n\t\t// The observation is close enough to go into the pending bucket.\n\t\t// This compensates for clock skewing and small scheduling delays\n\t\t// by letting the update stay in the fast path.\n\t\tts.pending.Add(observation)\n\t\tts.dirty = true\n\t} else {\n\t\tts.mergeValue(observation, t)\n\t}\n}\n\n// mergeValue inserts the observation at the specified time in the past into all levels.\nfunc (ts *timeSeries) mergeValue(observation Observable, t time.Time) {\n\tfor _, level := range ts.levels {\n\t\tindex := (ts.numBuckets - 1) - int(level.end.Sub(t)/level.size)\n\t\tif 0 <= index && index < ts.numBuckets {\n\t\t\tbucketNumber := (level.oldest + index) % ts.numBuckets\n\t\t\tif level.buckets[bucketNumber] == nil {\n\t\t\t\tlevel.buckets[bucketNumber] = level.provider()\n\t\t\t}\n\t\t\tlevel.buckets[bucketNumber].Add(observation)\n\t\t}\n\t}\n\tts.total.Add(observation)\n}\n\n// mergePendingUpdates applies the pending updates into all levels.\nfunc (ts *timeSeries) mergePendingUpdates() {\n\tif ts.dirty {\n\t\tts.mergeValue(ts.pending, ts.pendingTime)\n\t\tts.pending = ts.resetObservation(ts.pending)\n\t\tts.dirty = false\n\t}\n}\n\n// advance cycles the buckets at each level until the latest bucket in\n// each level can hold the time specified.\nfunc (ts *timeSeries) advance(t time.Time) {\n\tif !t.After(ts.levels[0].end) {\n\t\treturn\n\t}\n\tfor i := 0; i < len(ts.levels); i++ {\n\t\tlevel := ts.levels[i]\n\t\tif !level.end.Before(t) {\n\t\t\tbreak\n\t\t}\n\n\t\t// If the time is sufficiently far, just clear the level and advance\n\t\t// directly.\n\t\tif !t.Before(level.end.Add(level.size * time.Duration(ts.numBuckets))) {\n\t\t\tfor _, b := range level.buckets {\n\t\t\t\tts.resetObservation(b)\n\t\t\t}\n\t\t\tlevel.end = time.Unix(0, (t.UnixNano()/level.size.Nanoseconds())*level.size.Nanoseconds())\n\t\t}\n\n\t\tfor t.After(level.end) {\n\t\t\tlevel.end = level.end.Add(level.size)\n\t\t\tlevel.newest = level.oldest\n\t\t\tlevel.oldest = (level.oldest + 1) % ts.numBuckets\n\t\t\tts.resetObservation(level.buckets[level.newest])\n\t\t}\n\n\t\tt = level.end\n\t}\n}\n\n// Latest returns the sum of the num latest buckets from the level.\nfunc (ts *timeSeries) Latest(level, num int) Observable {\n\tnow := ts.clock.Time()\n\tif ts.levels[0].end.Before(now) {\n\t\tts.advance(now)\n\t}\n\n\tts.mergePendingUpdates()\n\n\tresult := ts.provider()\n\tl := ts.levels[level]\n\tindex := l.newest\n\n\tfor i := 0; i < num; i++ {\n\t\tif l.buckets[index] != nil {\n\t\t\tresult.Add(l.buckets[index])\n\t\t}\n\t\tif index == 0 {\n\t\t\tindex = ts.numBuckets\n\t\t}\n\t\tindex--\n\t}\n\n\treturn result\n}\n\n// LatestBuckets returns a copy of the num latest buckets from level.\nfunc (ts *timeSeries) LatestBuckets(level, num int) []Observable {\n\tif level < 0 || level > len(ts.levels) {\n\t\tlog.Print(\"timeseries: bad level argument: \", level)\n\t\treturn nil\n\t}\n\tif num < 0 || num >= ts.numBuckets {\n\t\tlog.Print(\"timeseries: bad num argument: \", num)\n\t\treturn nil\n\t}\n\n\tresults := make([]Observable, num)\n\tnow := ts.clock.Time()\n\tif ts.levels[0].end.Before(now) {\n\t\tts.advance(now)\n\t}\n\n\tts.mergePendingUpdates()\n\n\tl := ts.levels[level]\n\tindex := l.newest\n\n\tfor i := 0; i < num; i++ {\n\t\tresult := ts.provider()\n\t\tresults[i] = result\n\t\tif l.buckets[index] != nil {\n\t\t\tresult.CopyFrom(l.buckets[index])\n\t\t}\n\n\t\tif index == 0 {\n\t\t\tindex = ts.numBuckets\n\t\t}\n\t\tindex -= 1\n\t}\n\treturn results\n}\n\n// ScaleBy updates observations by scaling by factor.\nfunc (ts *timeSeries) ScaleBy(factor float64) {\n\tfor _, l := range ts.levels {\n\t\tfor i := 0; i < ts.numBuckets; i++ {\n\t\t\tl.buckets[i].Multiply(factor)\n\t\t}\n\t}\n\n\tts.total.Multiply(factor)\n\tts.pending.Multiply(factor)\n}\n\n// Range returns the sum of observations added over the specified time range.\n// If start or finish times don't fall on bucket boundaries of the same\n// level, then return values are approximate answers.\nfunc (ts *timeSeries) Range(start, finish time.Time) Observable {\n\treturn ts.ComputeRange(start, finish, 1)[0]\n}\n\n// Recent returns the sum of observations from the last delta.\nfunc (ts *timeSeries) Recent(delta time.Duration) Observable {\n\tnow := ts.clock.Time()\n\treturn ts.Range(now.Add(-delta), now)\n}\n\n// Total returns the total of all observations.\nfunc (ts *timeSeries) Total() Observable {\n\tts.mergePendingUpdates()\n\treturn ts.total\n}\n\n// ComputeRange computes a specified number of values into a slice using\n// the observations recorded over the specified time period. The return\n// values are approximate if the start or finish times don't fall on the\n// bucket boundaries at the same level or if the number of buckets spanning\n// the range is not an integral multiple of num.\nfunc (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observable {\n\tif start.After(finish) {\n\t\tlog.Printf(\"timeseries: start > finish, %v>%v\", start, finish)\n\t\treturn nil\n\t}\n\n\tif num < 0 {\n\t\tlog.Printf(\"timeseries: num < 0, %v\", num)\n\t\treturn nil\n\t}\n\n\tresults := make([]Observable, num)\n\n\tfor _, l := range ts.levels {\n\t\tif !start.Before(l.end.Add(-l.size * time.Duration(ts.numBuckets))) {\n\t\t\tts.extract(l, start, finish, num, results)\n\t\t\treturn results\n\t\t}\n\t}\n\n\t// Failed to find a level that covers the desired range. So just\n\t// extract from the last level, even if it doesn't cover the entire\n\t// desired range.\n\tts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results)\n\n\treturn results\n}\n\n// RecentList returns the specified number of values in slice over the most\n// recent time period of the specified range.\nfunc (ts *timeSeries) RecentList(delta time.Duration, num int) []Observable {\n\tif delta < 0 {\n\t\treturn nil\n\t}\n\tnow := ts.clock.Time()\n\treturn ts.ComputeRange(now.Add(-delta), now, num)\n}\n\n// extract returns a slice of specified number of observations from a given\n// level over a given range.\nfunc (ts *timeSeries) extract(l *tsLevel, start, finish time.Time, num int, results []Observable) {\n\tts.mergePendingUpdates()\n\n\tsrcInterval := l.size\n\tdstInterval := finish.Sub(start) / time.Duration(num)\n\tdstStart := start\n\tsrcStart := l.end.Add(-srcInterval * time.Duration(ts.numBuckets))\n\n\tsrcIndex := 0\n\n\t// Where should scanning start?\n\tif dstStart.After(srcStart) {\n\t\tadvance := int(dstStart.Sub(srcStart) / srcInterval)\n\t\tsrcIndex += advance\n\t\tsrcStart = srcStart.Add(time.Duration(advance) * srcInterval)\n\t}\n\n\t// The i'th value is computed as show below.\n\t// interval = (finish/start)/num\n\t// i'th value = sum of observation in range\n\t//   [ start + i       * interval,\n\t//     start + (i + 1) * interval )\n\tfor i := 0; i < num; i++ {\n\t\tresults[i] = ts.resetObservation(results[i])\n\t\tdstEnd := dstStart.Add(dstInterval)\n\t\tfor srcIndex < ts.numBuckets && srcStart.Before(dstEnd) {\n\t\t\tsrcEnd := srcStart.Add(srcInterval)\n\t\t\tif srcEnd.After(ts.lastAdd) {\n\t\t\t\tsrcEnd = ts.lastAdd\n\t\t\t}\n\n\t\t\tif !srcEnd.Before(dstStart) {\n\t\t\t\tsrcValue := l.buckets[(srcIndex+l.oldest)%ts.numBuckets]\n\t\t\t\tif !srcStart.Before(dstStart) && !srcEnd.After(dstEnd) {\n\t\t\t\t\t// dst completely contains src.\n\t\t\t\t\tif srcValue != nil {\n\t\t\t\t\t\tresults[i].Add(srcValue)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// dst partially overlaps src.\n\t\t\t\t\toverlapStart := maxTime(srcStart, dstStart)\n\t\t\t\t\toverlapEnd := minTime(srcEnd, dstEnd)\n\t\t\t\t\tbase := srcEnd.Sub(srcStart)\n\t\t\t\t\tfraction := overlapEnd.Sub(overlapStart).Seconds() / base.Seconds()\n\n\t\t\t\t\tused := ts.provider()\n\t\t\t\t\tif srcValue != nil {\n\t\t\t\t\t\tused.CopyFrom(srcValue)\n\t\t\t\t\t}\n\t\t\t\t\tused.Multiply(fraction)\n\t\t\t\t\tresults[i].Add(used)\n\t\t\t\t}\n\n\t\t\t\tif srcEnd.After(dstEnd) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsrcIndex++\n\t\t\tsrcStart = srcStart.Add(srcInterval)\n\t\t}\n\t\tdstStart = dstStart.Add(dstInterval)\n\t}\n}\n\n// resetObservation clears the content so the struct may be reused.\nfunc (ts *timeSeries) resetObservation(observation Observable) Observable {\n\tif observation == nil {\n\t\tobservation = ts.provider()\n\t} else {\n\t\tobservation.Clear()\n\t}\n\treturn observation\n}\n\n// TimeSeries tracks data at granularities from 1 second to 16 weeks.\ntype TimeSeries struct {\n\ttimeSeries\n}\n\n// NewTimeSeries creates a new TimeSeries using the function provided for creating new Observable.\nfunc NewTimeSeries(f func() Observable) *TimeSeries {\n\treturn NewTimeSeriesWithClock(f, defaultClockInstance)\n}\n\n// NewTimeSeriesWithClock creates a new TimeSeries using the function provided for creating new Observable and the clock for\n// assigning timestamps.\nfunc NewTimeSeriesWithClock(f func() Observable, clock Clock) *TimeSeries {\n\tts := new(TimeSeries)\n\tts.timeSeries.init(timeSeriesResolutions, f, timeSeriesNumBuckets, clock)\n\treturn ts\n}\n\n// MinuteHourSeries tracks data at granularities of 1 minute and 1 hour.\ntype MinuteHourSeries struct {\n\ttimeSeries\n}\n\n// NewMinuteHourSeries creates a new MinuteHourSeries using the function provided for creating new Observable.\nfunc NewMinuteHourSeries(f func() Observable) *MinuteHourSeries {\n\treturn NewMinuteHourSeriesWithClock(f, defaultClockInstance)\n}\n\n// NewMinuteHourSeriesWithClock creates a new MinuteHourSeries using the function provided for creating new Observable and the clock for\n// assigning timestamps.\nfunc NewMinuteHourSeriesWithClock(f func() Observable, clock Clock) *MinuteHourSeries {\n\tts := new(MinuteHourSeries)\n\tts.timeSeries.init(minuteHourSeriesResolutions, f,\n\t\tminuteHourSeriesNumBuckets, clock)\n\treturn ts\n}\n\nfunc (ts *MinuteHourSeries) Minute() Observable {\n\treturn ts.timeSeries.Latest(0, 60)\n}\n\nfunc (ts *MinuteHourSeries) Hour() Observable {\n\treturn ts.timeSeries.Latest(1, 60)\n}\n\nfunc minTime(a, b time.Time) time.Time {\n\tif a.Before(b) {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc maxTime(a, b time.Time) time.Time {\n\tif a.After(b) {\n\t\treturn a\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/trace/events.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage trace\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"text/tabwriter\"\n\t\"time\"\n)\n\nconst maxEventsPerLog = 100\n\ntype bucket struct {\n\tMaxErrAge time.Duration\n\tString    string\n}\n\nvar buckets = []bucket{\n\t{0, \"total\"},\n\t{10 * time.Second, \"errs<10s\"},\n\t{1 * time.Minute, \"errs<1m\"},\n\t{10 * time.Minute, \"errs<10m\"},\n\t{1 * time.Hour, \"errs<1h\"},\n\t{10 * time.Hour, \"errs<10h\"},\n\t{24000 * time.Hour, \"errors\"},\n}\n\n// RenderEvents renders the HTML page typically served at /debug/events.\n// It does not do any auth checking. The request may be nil.\n//\n// Most users will use the Events handler.\nfunc RenderEvents(w http.ResponseWriter, req *http.Request, sensitive bool) {\n\tnow := time.Now()\n\tdata := &struct {\n\t\tFamilies []string // family names\n\t\tBuckets  []bucket\n\t\tCounts   [][]int // eventLog count per family/bucket\n\n\t\t// Set when a bucket has been selected.\n\t\tFamily    string\n\t\tBucket    int\n\t\tEventLogs eventLogs\n\t\tExpanded  bool\n\t}{\n\t\tBuckets: buckets,\n\t}\n\n\tfamMu.RLock()\n\tdata.Families = make([]string, 0, len(families))\n\tfor name := range families {\n\t\tdata.Families = append(data.Families, name)\n\t}\n\tfamMu.RUnlock()\n\tsort.Strings(data.Families)\n\n\t// Count the number of eventLogs in each family for each error age.\n\tdata.Counts = make([][]int, len(data.Families))\n\tfor i, name := range data.Families {\n\t\t// TODO(sameer): move this loop under the family lock.\n\t\tf := getEventFamily(name)\n\t\tdata.Counts[i] = make([]int, len(data.Buckets))\n\t\tfor j, b := range data.Buckets {\n\t\t\tdata.Counts[i][j] = f.Count(now, b.MaxErrAge)\n\t\t}\n\t}\n\n\tif req != nil {\n\t\tvar ok bool\n\t\tdata.Family, data.Bucket, ok = parseEventsArgs(req)\n\t\tif !ok {\n\t\t\t// No-op\n\t\t} else {\n\t\t\tdata.EventLogs = getEventFamily(data.Family).Copy(now, buckets[data.Bucket].MaxErrAge)\n\t\t}\n\t\tif data.EventLogs != nil {\n\t\t\tdefer data.EventLogs.Free()\n\t\t\tsort.Sort(data.EventLogs)\n\t\t}\n\t\tif exp, err := strconv.ParseBool(req.FormValue(\"exp\")); err == nil {\n\t\t\tdata.Expanded = exp\n\t\t}\n\t}\n\n\tfamMu.RLock()\n\tdefer famMu.RUnlock()\n\tif err := eventsTmpl().Execute(w, data); err != nil {\n\t\tlog.Printf(\"net/trace: Failed executing template: %v\", err)\n\t}\n}\n\nfunc parseEventsArgs(req *http.Request) (fam string, b int, ok bool) {\n\tfam, bStr := req.FormValue(\"fam\"), req.FormValue(\"b\")\n\tif fam == \"\" || bStr == \"\" {\n\t\treturn \"\", 0, false\n\t}\n\tb, err := strconv.Atoi(bStr)\n\tif err != nil || b < 0 || b >= len(buckets) {\n\t\treturn \"\", 0, false\n\t}\n\treturn fam, b, true\n}\n\n// An EventLog provides a log of events associated with a specific object.\ntype EventLog interface {\n\t// Printf formats its arguments with fmt.Sprintf and adds the\n\t// result to the event log.\n\tPrintf(format string, a ...interface{})\n\n\t// Errorf is like Printf, but it marks this event as an error.\n\tErrorf(format string, a ...interface{})\n\n\t// Finish declares that this event log is complete.\n\t// The event log should not be used after calling this method.\n\tFinish()\n}\n\n// NewEventLog returns a new EventLog with the specified family name\n// and title.\nfunc NewEventLog(family, title string) EventLog {\n\tel := newEventLog()\n\tel.ref()\n\tel.Family, el.Title = family, title\n\tel.Start = time.Now()\n\tel.events = make([]logEntry, 0, maxEventsPerLog)\n\tel.stack = make([]uintptr, 32)\n\tn := runtime.Callers(2, el.stack)\n\tel.stack = el.stack[:n]\n\n\tgetEventFamily(family).add(el)\n\treturn el\n}\n\nfunc (el *eventLog) Finish() {\n\tgetEventFamily(el.Family).remove(el)\n\tel.unref() // matches ref in New\n}\n\nvar (\n\tfamMu    sync.RWMutex\n\tfamilies = make(map[string]*eventFamily) // family name => family\n)\n\nfunc getEventFamily(fam string) *eventFamily {\n\tfamMu.Lock()\n\tdefer famMu.Unlock()\n\tf := families[fam]\n\tif f == nil {\n\t\tf = &eventFamily{}\n\t\tfamilies[fam] = f\n\t}\n\treturn f\n}\n\ntype eventFamily struct {\n\tmu        sync.RWMutex\n\teventLogs eventLogs\n}\n\nfunc (f *eventFamily) add(el *eventLog) {\n\tf.mu.Lock()\n\tf.eventLogs = append(f.eventLogs, el)\n\tf.mu.Unlock()\n}\n\nfunc (f *eventFamily) remove(el *eventLog) {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\tfor i, el0 := range f.eventLogs {\n\t\tif el == el0 {\n\t\t\tcopy(f.eventLogs[i:], f.eventLogs[i+1:])\n\t\t\tf.eventLogs = f.eventLogs[:len(f.eventLogs)-1]\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (f *eventFamily) Count(now time.Time, maxErrAge time.Duration) (n int) {\n\tf.mu.RLock()\n\tdefer f.mu.RUnlock()\n\tfor _, el := range f.eventLogs {\n\t\tif el.hasRecentError(now, maxErrAge) {\n\t\t\tn++\n\t\t}\n\t}\n\treturn\n}\n\nfunc (f *eventFamily) Copy(now time.Time, maxErrAge time.Duration) (els eventLogs) {\n\tf.mu.RLock()\n\tdefer f.mu.RUnlock()\n\tels = make(eventLogs, 0, len(f.eventLogs))\n\tfor _, el := range f.eventLogs {\n\t\tif el.hasRecentError(now, maxErrAge) {\n\t\t\tel.ref()\n\t\t\tels = append(els, el)\n\t\t}\n\t}\n\treturn\n}\n\ntype eventLogs []*eventLog\n\n// Free calls unref on each element of the list.\nfunc (els eventLogs) Free() {\n\tfor _, el := range els {\n\t\tel.unref()\n\t}\n}\n\n// eventLogs may be sorted in reverse chronological order.\nfunc (els eventLogs) Len() int           { return len(els) }\nfunc (els eventLogs) Less(i, j int) bool { return els[i].Start.After(els[j].Start) }\nfunc (els eventLogs) Swap(i, j int)      { els[i], els[j] = els[j], els[i] }\n\n// A logEntry is a timestamped log entry in an event log.\ntype logEntry struct {\n\tWhen    time.Time\n\tElapsed time.Duration // since previous event in log\n\tNewDay  bool          // whether this event is on a different day to the previous event\n\tWhat    string\n\tIsErr   bool\n}\n\n// WhenString returns a string representation of the elapsed time of the event.\n// It will include the date if midnight was crossed.\nfunc (e logEntry) WhenString() string {\n\tif e.NewDay {\n\t\treturn e.When.Format(\"2006/01/02 15:04:05.000000\")\n\t}\n\treturn e.When.Format(\"15:04:05.000000\")\n}\n\n// An eventLog represents an active event log.\ntype eventLog struct {\n\t// Family is the top-level grouping of event logs to which this belongs.\n\tFamily string\n\n\t// Title is the title of this event log.\n\tTitle string\n\n\t// Timing information.\n\tStart time.Time\n\n\t// Call stack where this event log was created.\n\tstack []uintptr\n\n\t// Append-only sequence of events.\n\t//\n\t// TODO(sameer): change this to a ring buffer to avoid the array copy\n\t// when we hit maxEventsPerLog.\n\tmu            sync.RWMutex\n\tevents        []logEntry\n\tLastErrorTime time.Time\n\tdiscarded     int\n\n\trefs int32 // how many buckets this is in\n}\n\nfunc (el *eventLog) reset() {\n\t// Clear all but the mutex. Mutexes may not be copied, even when unlocked.\n\tel.Family = \"\"\n\tel.Title = \"\"\n\tel.Start = time.Time{}\n\tel.stack = nil\n\tel.events = nil\n\tel.LastErrorTime = time.Time{}\n\tel.discarded = 0\n\tel.refs = 0\n}\n\nfunc (el *eventLog) hasRecentError(now time.Time, maxErrAge time.Duration) bool {\n\tif maxErrAge == 0 {\n\t\treturn true\n\t}\n\tel.mu.RLock()\n\tdefer el.mu.RUnlock()\n\treturn now.Sub(el.LastErrorTime) < maxErrAge\n}\n\n// delta returns the elapsed time since the last event or the log start,\n// and whether it spans midnight.\n// L >= el.mu\nfunc (el *eventLog) delta(t time.Time) (time.Duration, bool) {\n\tif len(el.events) == 0 {\n\t\treturn t.Sub(el.Start), false\n\t}\n\tprev := el.events[len(el.events)-1].When\n\treturn t.Sub(prev), prev.Day() != t.Day()\n\n}\n\nfunc (el *eventLog) Printf(format string, a ...interface{}) {\n\tel.printf(false, format, a...)\n}\n\nfunc (el *eventLog) Errorf(format string, a ...interface{}) {\n\tel.printf(true, format, a...)\n}\n\nfunc (el *eventLog) printf(isErr bool, format string, a ...interface{}) {\n\te := logEntry{When: time.Now(), IsErr: isErr, What: fmt.Sprintf(format, a...)}\n\tel.mu.Lock()\n\te.Elapsed, e.NewDay = el.delta(e.When)\n\tif len(el.events) < maxEventsPerLog {\n\t\tel.events = append(el.events, e)\n\t} else {\n\t\t// Discard the oldest event.\n\t\tif el.discarded == 0 {\n\t\t\t// el.discarded starts at two to count for the event it\n\t\t\t// is replacing, plus the next one that we are about to\n\t\t\t// drop.\n\t\t\tel.discarded = 2\n\t\t} else {\n\t\t\tel.discarded++\n\t\t}\n\t\t// TODO(sameer): if this causes allocations on a critical path,\n\t\t// change eventLog.What to be a fmt.Stringer, as in trace.go.\n\t\tel.events[0].What = fmt.Sprintf(\"(%d events discarded)\", el.discarded)\n\t\t// The timestamp of the discarded meta-event should be\n\t\t// the time of the last event it is representing.\n\t\tel.events[0].When = el.events[1].When\n\t\tcopy(el.events[1:], el.events[2:])\n\t\tel.events[maxEventsPerLog-1] = e\n\t}\n\tif e.IsErr {\n\t\tel.LastErrorTime = e.When\n\t}\n\tel.mu.Unlock()\n}\n\nfunc (el *eventLog) ref() {\n\tatomic.AddInt32(&el.refs, 1)\n}\n\nfunc (el *eventLog) unref() {\n\tif atomic.AddInt32(&el.refs, -1) == 0 {\n\t\tfreeEventLog(el)\n\t}\n}\n\nfunc (el *eventLog) When() string {\n\treturn el.Start.Format(\"2006/01/02 15:04:05.000000\")\n}\n\nfunc (el *eventLog) ElapsedTime() string {\n\telapsed := time.Since(el.Start)\n\treturn fmt.Sprintf(\"%.6f\", elapsed.Seconds())\n}\n\nfunc (el *eventLog) Stack() string {\n\tbuf := new(bytes.Buffer)\n\ttw := tabwriter.NewWriter(buf, 1, 8, 1, '\\t', 0)\n\tprintStackRecord(tw, el.stack)\n\ttw.Flush()\n\treturn buf.String()\n}\n\n// printStackRecord prints the function + source line information\n// for a single stack trace.\n// Adapted from runtime/pprof/pprof.go.\nfunc printStackRecord(w io.Writer, stk []uintptr) {\n\tfor _, pc := range stk {\n\t\tf := runtime.FuncForPC(pc)\n\t\tif f == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfile, line := f.FileLine(pc)\n\t\tname := f.Name()\n\t\t// Hide runtime.goexit and any runtime functions at the beginning.\n\t\tif strings.HasPrefix(name, \"runtime.\") {\n\t\t\tcontinue\n\t\t}\n\t\tfmt.Fprintf(w, \"#   %s\\t%s:%d\\n\", name, file, line)\n\t}\n}\n\nfunc (el *eventLog) Events() []logEntry {\n\tel.mu.RLock()\n\tdefer el.mu.RUnlock()\n\treturn el.events\n}\n\n// freeEventLogs is a freelist of *eventLog\nvar freeEventLogs = make(chan *eventLog, 1000)\n\n// newEventLog returns a event log ready to use.\nfunc newEventLog() *eventLog {\n\tselect {\n\tcase el := <-freeEventLogs:\n\t\treturn el\n\tdefault:\n\t\treturn new(eventLog)\n\t}\n}\n\n// freeEventLog adds el to freeEventLogs if there's room.\n// This is non-blocking.\nfunc freeEventLog(el *eventLog) {\n\tel.reset()\n\tselect {\n\tcase freeEventLogs <- el:\n\tdefault:\n\t}\n}\n\nvar eventsTmplCache *template.Template\nvar eventsTmplOnce sync.Once\n\nfunc eventsTmpl() *template.Template {\n\teventsTmplOnce.Do(func() {\n\t\teventsTmplCache = template.Must(template.New(\"events\").Funcs(template.FuncMap{\n\t\t\t\"elapsed\":   elapsed,\n\t\t\t\"trimSpace\": strings.TrimSpace,\n\t\t}).Parse(eventsHTML))\n\t})\n\treturn eventsTmplCache\n}\n\nconst eventsHTML = `\n<html>\n\t<head>\n\t\t<title>events</title>\n\t</head>\n\t<style type=\"text/css\">\n\t\tbody {\n\t\t\tfont-family: sans-serif;\n\t\t}\n\t\ttable#req-status td.family {\n\t\t\tpadding-right: 2em;\n\t\t}\n\t\ttable#req-status td.active {\n\t\t\tpadding-right: 1em;\n\t\t}\n\t\ttable#req-status td.empty {\n\t\t\tcolor: #aaa;\n\t\t}\n\t\ttable#reqs {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\ttable#reqs tr.first {\n\t\t\t{{if $.Expanded}}font-weight: bold;{{end}}\n\t\t}\n\t\ttable#reqs td {\n\t\t\tfont-family: monospace;\n\t\t}\n\t\ttable#reqs td.when {\n\t\t\ttext-align: right;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\ttable#reqs td.elapsed {\n\t\t\tpadding: 0 0.5em;\n\t\t\ttext-align: right;\n\t\t\twhite-space: pre;\n\t\t\twidth: 10em;\n\t\t}\n\t\taddress {\n\t\t\tfont-size: smaller;\n\t\t\tmargin-top: 5em;\n\t\t}\n\t</style>\n\t<body>\n\n<h1>/debug/events</h1>\n\n<table id=\"req-status\">\n\t{{range $i, $fam := .Families}}\n\t<tr>\n\t\t<td class=\"family\">{{$fam}}</td>\n\n\t        {{range $j, $bucket := $.Buckets}}\n\t        {{$n := index $.Counts $i $j}}\n\t\t<td class=\"{{if not $bucket.MaxErrAge}}active{{end}}{{if not $n}}empty{{end}}\">\n\t                {{if $n}}<a href=\"?fam={{$fam}}&b={{$j}}{{if $.Expanded}}&exp=1{{end}}\">{{end}}\n\t\t        [{{$n}} {{$bucket.String}}]\n\t\t\t{{if $n}}</a>{{end}}\n\t\t</td>\n                {{end}}\n\n\t</tr>{{end}}\n</table>\n\n{{if $.EventLogs}}\n<hr />\n<h3>Family: {{$.Family}}</h3>\n\n{{if $.Expanded}}<a href=\"?fam={{$.Family}}&b={{$.Bucket}}\">{{end}}\n[Summary]{{if $.Expanded}}</a>{{end}}\n\n{{if not $.Expanded}}<a href=\"?fam={{$.Family}}&b={{$.Bucket}}&exp=1\">{{end}}\n[Expanded]{{if not $.Expanded}}</a>{{end}}\n\n<table id=\"reqs\">\n\t<tr><th>When</th><th>Elapsed</th></tr>\n\t{{range $el := $.EventLogs}}\n\t<tr class=\"first\">\n\t\t<td class=\"when\">{{$el.When}}</td>\n\t\t<td class=\"elapsed\">{{$el.ElapsedTime}}</td>\n\t\t<td>{{$el.Title}}</td>\n\t</tr>\n\t{{if $.Expanded}}\n\t<tr>\n\t\t<td class=\"when\"></td>\n\t\t<td class=\"elapsed\"></td>\n\t\t<td><pre>{{$el.Stack|trimSpace}}</pre></td>\n\t</tr>\n\t{{range $el.Events}}\n\t<tr>\n\t\t<td class=\"when\">{{.WhenString}}</td>\n\t\t<td class=\"elapsed\">{{elapsed .Elapsed}}</td>\n\t\t<td>.{{if .IsErr}}E{{else}}.{{end}}. {{.What}}</td>\n\t</tr>\n\t{{end}}\n\t{{end}}\n\t{{end}}\n</table>\n{{end}}\n\t</body>\n</html>\n`\n"
  },
  {
    "path": "vendor/golang.org/x/net/trace/histogram.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage trace\n\n// This file implements histogramming for RPC statistics collection.\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"log\"\n\t\"math\"\n\t\"sync\"\n\n\t\"golang.org/x/net/internal/timeseries\"\n)\n\nconst (\n\tbucketCount = 38\n)\n\n// histogram keeps counts of values in buckets that are spaced\n// out in powers of 2: 0-1, 2-3, 4-7...\n// histogram implements timeseries.Observable\ntype histogram struct {\n\tsum          int64   // running total of measurements\n\tsumOfSquares float64 // square of running total\n\tbuckets      []int64 // bucketed values for histogram\n\tvalue        int     // holds a single value as an optimization\n\tvalueCount   int64   // number of values recorded for single value\n}\n\n// addMeasurement records a value measurement observation to the histogram.\nfunc (h *histogram) addMeasurement(value int64) {\n\t// TODO: assert invariant\n\th.sum += value\n\th.sumOfSquares += float64(value) * float64(value)\n\n\tbucketIndex := getBucket(value)\n\n\tif h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) {\n\t\th.value = bucketIndex\n\t\th.valueCount++\n\t} else {\n\t\th.allocateBuckets()\n\t\th.buckets[bucketIndex]++\n\t}\n}\n\nfunc (h *histogram) allocateBuckets() {\n\tif h.buckets == nil {\n\t\th.buckets = make([]int64, bucketCount)\n\t\th.buckets[h.value] = h.valueCount\n\t\th.value = 0\n\t\th.valueCount = -1\n\t}\n}\n\nfunc log2(i int64) int {\n\tn := 0\n\tfor ; i >= 0x100; i >>= 8 {\n\t\tn += 8\n\t}\n\tfor ; i > 0; i >>= 1 {\n\t\tn += 1\n\t}\n\treturn n\n}\n\nfunc getBucket(i int64) (index int) {\n\tindex = log2(i) - 1\n\tif index < 0 {\n\t\tindex = 0\n\t}\n\tif index >= bucketCount {\n\t\tindex = bucketCount - 1\n\t}\n\treturn\n}\n\n// Total returns the number of recorded observations.\nfunc (h *histogram) total() (total int64) {\n\tif h.valueCount >= 0 {\n\t\ttotal = h.valueCount\n\t}\n\tfor _, val := range h.buckets {\n\t\ttotal += int64(val)\n\t}\n\treturn\n}\n\n// Average returns the average value of recorded observations.\nfunc (h *histogram) average() float64 {\n\tt := h.total()\n\tif t == 0 {\n\t\treturn 0\n\t}\n\treturn float64(h.sum) / float64(t)\n}\n\n// Variance returns the variance of recorded observations.\nfunc (h *histogram) variance() float64 {\n\tt := float64(h.total())\n\tif t == 0 {\n\t\treturn 0\n\t}\n\ts := float64(h.sum) / t\n\treturn h.sumOfSquares/t - s*s\n}\n\n// StandardDeviation returns the standard deviation of recorded observations.\nfunc (h *histogram) standardDeviation() float64 {\n\treturn math.Sqrt(h.variance())\n}\n\n// PercentileBoundary estimates the value that the given fraction of recorded\n// observations are less than.\nfunc (h *histogram) percentileBoundary(percentile float64) int64 {\n\ttotal := h.total()\n\n\t// Corner cases (make sure result is strictly less than Total())\n\tif total == 0 {\n\t\treturn 0\n\t} else if total == 1 {\n\t\treturn int64(h.average())\n\t}\n\n\tpercentOfTotal := round(float64(total) * percentile)\n\tvar runningTotal int64\n\n\tfor i := range h.buckets {\n\t\tvalue := h.buckets[i]\n\t\trunningTotal += value\n\t\tif runningTotal == percentOfTotal {\n\t\t\t// We hit an exact bucket boundary. If the next bucket has data, it is a\n\t\t\t// good estimate of the value. If the bucket is empty, we interpolate the\n\t\t\t// midpoint between the next bucket's boundary and the next non-zero\n\t\t\t// bucket. If the remaining buckets are all empty, then we use the\n\t\t\t// boundary for the next bucket as the estimate.\n\t\t\tj := uint8(i + 1)\n\t\t\tmin := bucketBoundary(j)\n\t\t\tif runningTotal < total {\n\t\t\t\tfor h.buckets[j] == 0 {\n\t\t\t\t\tj++\n\t\t\t\t}\n\t\t\t}\n\t\t\tmax := bucketBoundary(j)\n\t\t\treturn min + round(float64(max-min)/2)\n\t\t} else if runningTotal > percentOfTotal {\n\t\t\t// The value is in this bucket. Interpolate the value.\n\t\t\tdelta := runningTotal - percentOfTotal\n\t\t\tpercentBucket := float64(value-delta) / float64(value)\n\t\t\tbucketMin := bucketBoundary(uint8(i))\n\t\t\tnextBucketMin := bucketBoundary(uint8(i + 1))\n\t\t\tbucketSize := nextBucketMin - bucketMin\n\t\t\treturn bucketMin + round(percentBucket*float64(bucketSize))\n\t\t}\n\t}\n\treturn bucketBoundary(bucketCount - 1)\n}\n\n// Median returns the estimated median of the observed values.\nfunc (h *histogram) median() int64 {\n\treturn h.percentileBoundary(0.5)\n}\n\n// Add adds other to h.\nfunc (h *histogram) Add(other timeseries.Observable) {\n\to := other.(*histogram)\n\tif o.valueCount == 0 {\n\t\t// Other histogram is empty\n\t} else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value {\n\t\t// Both have a single bucketed value, aggregate them\n\t\th.valueCount += o.valueCount\n\t} else {\n\t\t// Two different values necessitate buckets in this histogram\n\t\th.allocateBuckets()\n\t\tif o.valueCount >= 0 {\n\t\t\th.buckets[o.value] += o.valueCount\n\t\t} else {\n\t\t\tfor i := range h.buckets {\n\t\t\t\th.buckets[i] += o.buckets[i]\n\t\t\t}\n\t\t}\n\t}\n\th.sumOfSquares += o.sumOfSquares\n\th.sum += o.sum\n}\n\n// Clear resets the histogram to an empty state, removing all observed values.\nfunc (h *histogram) Clear() {\n\th.buckets = nil\n\th.value = 0\n\th.valueCount = 0\n\th.sum = 0\n\th.sumOfSquares = 0\n}\n\n// CopyFrom copies from other, which must be a *histogram, into h.\nfunc (h *histogram) CopyFrom(other timeseries.Observable) {\n\to := other.(*histogram)\n\tif o.valueCount == -1 {\n\t\th.allocateBuckets()\n\t\tcopy(h.buckets, o.buckets)\n\t}\n\th.sum = o.sum\n\th.sumOfSquares = o.sumOfSquares\n\th.value = o.value\n\th.valueCount = o.valueCount\n}\n\n// Multiply scales the histogram by the specified ratio.\nfunc (h *histogram) Multiply(ratio float64) {\n\tif h.valueCount == -1 {\n\t\tfor i := range h.buckets {\n\t\t\th.buckets[i] = int64(float64(h.buckets[i]) * ratio)\n\t\t}\n\t} else {\n\t\th.valueCount = int64(float64(h.valueCount) * ratio)\n\t}\n\th.sum = int64(float64(h.sum) * ratio)\n\th.sumOfSquares = h.sumOfSquares * ratio\n}\n\n// New creates a new histogram.\nfunc (h *histogram) New() timeseries.Observable {\n\tr := new(histogram)\n\tr.Clear()\n\treturn r\n}\n\nfunc (h *histogram) String() string {\n\treturn fmt.Sprintf(\"%d, %f, %d, %d, %v\",\n\t\th.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets)\n}\n\n// round returns the closest int64 to the argument\nfunc round(in float64) int64 {\n\treturn int64(math.Floor(in + 0.5))\n}\n\n// bucketBoundary returns the first value in the bucket.\nfunc bucketBoundary(bucket uint8) int64 {\n\tif bucket == 0 {\n\t\treturn 0\n\t}\n\treturn 1 << bucket\n}\n\n// bucketData holds data about a specific bucket for use in distTmpl.\ntype bucketData struct {\n\tLower, Upper       int64\n\tN                  int64\n\tPct, CumulativePct float64\n\tGraphWidth         int\n}\n\n// data holds data about a Distribution for use in distTmpl.\ntype data struct {\n\tBuckets                 []*bucketData\n\tCount, Median           int64\n\tMean, StandardDeviation float64\n}\n\n// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets.\nconst maxHTMLBarWidth = 350.0\n\n// newData returns data representing h for use in distTmpl.\nfunc (h *histogram) newData() *data {\n\t// Force the allocation of buckets to simplify the rendering implementation\n\th.allocateBuckets()\n\t// We scale the bars on the right so that the largest bar is\n\t// maxHTMLBarWidth pixels in width.\n\tmaxBucket := int64(0)\n\tfor _, n := range h.buckets {\n\t\tif n > maxBucket {\n\t\t\tmaxBucket = n\n\t\t}\n\t}\n\ttotal := h.total()\n\tbarsizeMult := maxHTMLBarWidth / float64(maxBucket)\n\tvar pctMult float64\n\tif total == 0 {\n\t\tpctMult = 1.0\n\t} else {\n\t\tpctMult = 100.0 / float64(total)\n\t}\n\n\tbuckets := make([]*bucketData, len(h.buckets))\n\trunningTotal := int64(0)\n\tfor i, n := range h.buckets {\n\t\tif n == 0 {\n\t\t\tcontinue\n\t\t}\n\t\trunningTotal += n\n\t\tvar upperBound int64\n\t\tif i < bucketCount-1 {\n\t\t\tupperBound = bucketBoundary(uint8(i + 1))\n\t\t} else {\n\t\t\tupperBound = math.MaxInt64\n\t\t}\n\t\tbuckets[i] = &bucketData{\n\t\t\tLower:         bucketBoundary(uint8(i)),\n\t\t\tUpper:         upperBound,\n\t\t\tN:             n,\n\t\t\tPct:           float64(n) * pctMult,\n\t\t\tCumulativePct: float64(runningTotal) * pctMult,\n\t\t\tGraphWidth:    int(float64(n) * barsizeMult),\n\t\t}\n\t}\n\treturn &data{\n\t\tBuckets:           buckets,\n\t\tCount:             total,\n\t\tMedian:            h.median(),\n\t\tMean:              h.average(),\n\t\tStandardDeviation: h.standardDeviation(),\n\t}\n}\n\nfunc (h *histogram) html() template.HTML {\n\tbuf := new(bytes.Buffer)\n\tif err := distTmpl().Execute(buf, h.newData()); err != nil {\n\t\tbuf.Reset()\n\t\tlog.Printf(\"net/trace: couldn't execute template: %v\", err)\n\t}\n\treturn template.HTML(buf.String())\n}\n\nvar distTmplCache *template.Template\nvar distTmplOnce sync.Once\n\nfunc distTmpl() *template.Template {\n\tdistTmplOnce.Do(func() {\n\t\t// Input: data\n\t\tdistTmplCache = template.Must(template.New(\"distTmpl\").Parse(`\n<table>\n<tr>\n    <td style=\"padding:0.25em\">Count: {{.Count}}</td>\n    <td style=\"padding:0.25em\">Mean: {{printf \"%.0f\" .Mean}}</td>\n    <td style=\"padding:0.25em\">StdDev: {{printf \"%.0f\" .StandardDeviation}}</td>\n    <td style=\"padding:0.25em\">Median: {{.Median}}</td>\n</tr>\n</table>\n<hr>\n<table>\n{{range $b := .Buckets}}\n{{if $b}}\n  <tr>\n    <td style=\"padding:0 0 0 0.25em\">[</td>\n    <td style=\"text-align:right;padding:0 0.25em\">{{.Lower}},</td>\n    <td style=\"text-align:right;padding:0 0.25em\">{{.Upper}})</td>\n    <td style=\"text-align:right;padding:0 0.25em\">{{.N}}</td>\n    <td style=\"text-align:right;padding:0 0.25em\">{{printf \"%#.3f\" .Pct}}%</td>\n    <td style=\"text-align:right;padding:0 0.25em\">{{printf \"%#.3f\" .CumulativePct}}%</td>\n    <td><div style=\"background-color: blue; height: 1em; width: {{.GraphWidth}};\"></div></td>\n  </tr>\n{{end}}\n{{end}}\n</table>\n`))\n\t})\n\treturn distTmplCache\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/trace/trace.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/*\nPackage trace implements tracing of requests and long-lived objects.\nIt exports HTTP interfaces on /debug/requests and /debug/events.\n\nA trace.Trace provides tracing for short-lived objects, usually requests.\nA request handler might be implemented like this:\n\n\tfunc fooHandler(w http.ResponseWriter, req *http.Request) {\n\t\ttr := trace.New(\"mypkg.Foo\", req.URL.Path)\n\t\tdefer tr.Finish()\n\t\t...\n\t\ttr.LazyPrintf(\"some event %q happened\", str)\n\t\t...\n\t\tif err := somethingImportant(); err != nil {\n\t\t\ttr.LazyPrintf(\"somethingImportant failed: %v\", err)\n\t\t\ttr.SetError()\n\t\t}\n\t}\n\nThe /debug/requests HTTP endpoint organizes the traces by family,\nerrors, and duration.  It also provides histogram of request duration\nfor each family.\n\nA trace.EventLog provides tracing for long-lived objects, such as RPC\nconnections.\n\n\t// A Fetcher fetches URL paths for a single domain.\n\ttype Fetcher struct {\n\t\tdomain string\n\t\tevents trace.EventLog\n\t}\n\n\tfunc NewFetcher(domain string) *Fetcher {\n\t\treturn &Fetcher{\n\t\t\tdomain,\n\t\t\ttrace.NewEventLog(\"mypkg.Fetcher\", domain),\n\t\t}\n\t}\n\n\tfunc (f *Fetcher) Fetch(path string) (string, error) {\n\t\tresp, err := http.Get(\"http://\" + f.domain + \"/\" + path)\n\t\tif err != nil {\n\t\t\tf.events.Errorf(\"Get(%q) = %v\", path, err)\n\t\t\treturn \"\", err\n\t\t}\n\t\tf.events.Printf(\"Get(%q) = %s\", path, resp.Status)\n\t\t...\n\t}\n\n\tfunc (f *Fetcher) Close() error {\n\t\tf.events.Finish()\n\t\treturn nil\n\t}\n\nThe /debug/events HTTP endpoint organizes the event logs by family and\nby time since the last error.  The expanded view displays recent log\nentries and the log's call stack.\n*/\npackage trace // import \"golang.org/x/net/trace\"\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"io\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"golang.org/x/net/internal/timeseries\"\n)\n\n// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing.\n// FOR DEBUGGING ONLY. This will slow down the program.\nvar DebugUseAfterFinish = false\n\n// HTTP ServeMux paths.\nconst (\n\tdebugRequestsPath = \"/debug/requests\"\n\tdebugEventsPath   = \"/debug/events\"\n)\n\n// AuthRequest determines whether a specific request is permitted to load the\n// /debug/requests or /debug/events pages.\n//\n// It returns two bools; the first indicates whether the page may be viewed at all,\n// and the second indicates whether sensitive events will be shown.\n//\n// AuthRequest may be replaced by a program to customize its authorization requirements.\n//\n// The default AuthRequest function returns (true, true) if and only if the request\n// comes from localhost/127.0.0.1/[::1].\nvar AuthRequest = func(req *http.Request) (any, sensitive bool) {\n\t// RemoteAddr is commonly in the form \"IP\" or \"IP:port\".\n\t// If it is in the form \"IP:port\", split off the port.\n\thost, _, err := net.SplitHostPort(req.RemoteAddr)\n\tif err != nil {\n\t\thost = req.RemoteAddr\n\t}\n\tswitch host {\n\tcase \"localhost\", \"127.0.0.1\", \"::1\":\n\t\treturn true, true\n\tdefault:\n\t\treturn false, false\n\t}\n}\n\nfunc init() {\n\t_, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: debugRequestsPath}})\n\tif pat == debugRequestsPath {\n\t\tpanic(\"/debug/requests is already registered. You may have two independent copies of \" +\n\t\t\t\"golang.org/x/net/trace in your binary, trying to maintain separate state. This may \" +\n\t\t\t\"involve a vendored copy of golang.org/x/net/trace.\")\n\t}\n\n\t// TODO(jbd): Serve Traces from /debug/traces in the future?\n\t// There is no requirement for a request to be present to have traces.\n\thttp.HandleFunc(debugRequestsPath, Traces)\n\thttp.HandleFunc(debugEventsPath, Events)\n}\n\n// NewContext returns a copy of the parent context\n// and associates it with a Trace.\nfunc NewContext(ctx context.Context, tr Trace) context.Context {\n\treturn context.WithValue(ctx, contextKey, tr)\n}\n\n// FromContext returns the Trace bound to the context, if any.\nfunc FromContext(ctx context.Context) (tr Trace, ok bool) {\n\ttr, ok = ctx.Value(contextKey).(Trace)\n\treturn\n}\n\n// Traces responds with traces from the program.\n// The package initialization registers it in http.DefaultServeMux\n// at /debug/requests.\n//\n// It performs authorization by running AuthRequest.\nfunc Traces(w http.ResponseWriter, req *http.Request) {\n\tany, sensitive := AuthRequest(req)\n\tif !any {\n\t\thttp.Error(w, \"not allowed\", http.StatusUnauthorized)\n\t\treturn\n\t}\n\tw.Header().Set(\"Content-Type\", \"text/html; charset=utf-8\")\n\tRender(w, req, sensitive)\n}\n\n// Events responds with a page of events collected by EventLogs.\n// The package initialization registers it in http.DefaultServeMux\n// at /debug/events.\n//\n// It performs authorization by running AuthRequest.\nfunc Events(w http.ResponseWriter, req *http.Request) {\n\tany, sensitive := AuthRequest(req)\n\tif !any {\n\t\thttp.Error(w, \"not allowed\", http.StatusUnauthorized)\n\t\treturn\n\t}\n\tw.Header().Set(\"Content-Type\", \"text/html; charset=utf-8\")\n\tRenderEvents(w, req, sensitive)\n}\n\n// Render renders the HTML page typically served at /debug/requests.\n// It does not do any auth checking. The request may be nil.\n//\n// Most users will use the Traces handler.\nfunc Render(w io.Writer, req *http.Request, sensitive bool) {\n\tdata := &struct {\n\t\tFamilies         []string\n\t\tActiveTraceCount map[string]int\n\t\tCompletedTraces  map[string]*family\n\n\t\t// Set when a bucket has been selected.\n\t\tTraces        traceList\n\t\tFamily        string\n\t\tBucket        int\n\t\tExpanded      bool\n\t\tTraced        bool\n\t\tActive        bool\n\t\tShowSensitive bool // whether to show sensitive events\n\n\t\tHistogram       template.HTML\n\t\tHistogramWindow string // e.g. \"last minute\", \"last hour\", \"all time\"\n\n\t\t// If non-zero, the set of traces is a partial set,\n\t\t// and this is the total number.\n\t\tTotal int\n\t}{\n\t\tCompletedTraces: completedTraces,\n\t}\n\n\tdata.ShowSensitive = sensitive\n\tif req != nil {\n\t\t// Allow show_sensitive=0 to force hiding of sensitive data for testing.\n\t\t// This only goes one way; you can't use show_sensitive=1 to see things.\n\t\tif req.FormValue(\"show_sensitive\") == \"0\" {\n\t\t\tdata.ShowSensitive = false\n\t\t}\n\n\t\tif exp, err := strconv.ParseBool(req.FormValue(\"exp\")); err == nil {\n\t\t\tdata.Expanded = exp\n\t\t}\n\t\tif exp, err := strconv.ParseBool(req.FormValue(\"rtraced\")); err == nil {\n\t\t\tdata.Traced = exp\n\t\t}\n\t}\n\n\tcompletedMu.RLock()\n\tdata.Families = make([]string, 0, len(completedTraces))\n\tfor fam := range completedTraces {\n\t\tdata.Families = append(data.Families, fam)\n\t}\n\tcompletedMu.RUnlock()\n\tsort.Strings(data.Families)\n\n\t// We are careful here to minimize the time spent locking activeMu,\n\t// since that lock is required every time an RPC starts and finishes.\n\tdata.ActiveTraceCount = make(map[string]int, len(data.Families))\n\tactiveMu.RLock()\n\tfor fam, s := range activeTraces {\n\t\tdata.ActiveTraceCount[fam] = s.Len()\n\t}\n\tactiveMu.RUnlock()\n\n\tvar ok bool\n\tdata.Family, data.Bucket, ok = parseArgs(req)\n\tswitch {\n\tcase !ok:\n\t\t// No-op\n\tcase data.Bucket == -1:\n\t\tdata.Active = true\n\t\tn := data.ActiveTraceCount[data.Family]\n\t\tdata.Traces = getActiveTraces(data.Family)\n\t\tif len(data.Traces) < n {\n\t\t\tdata.Total = n\n\t\t}\n\tcase data.Bucket < bucketsPerFamily:\n\t\tif b := lookupBucket(data.Family, data.Bucket); b != nil {\n\t\t\tdata.Traces = b.Copy(data.Traced)\n\t\t}\n\tdefault:\n\t\tif f := getFamily(data.Family, false); f != nil {\n\t\t\tvar obs timeseries.Observable\n\t\t\tf.LatencyMu.RLock()\n\t\t\tswitch o := data.Bucket - bucketsPerFamily; o {\n\t\t\tcase 0:\n\t\t\t\tobs = f.Latency.Minute()\n\t\t\t\tdata.HistogramWindow = \"last minute\"\n\t\t\tcase 1:\n\t\t\t\tobs = f.Latency.Hour()\n\t\t\t\tdata.HistogramWindow = \"last hour\"\n\t\t\tcase 2:\n\t\t\t\tobs = f.Latency.Total()\n\t\t\t\tdata.HistogramWindow = \"all time\"\n\t\t\t}\n\t\t\tf.LatencyMu.RUnlock()\n\t\t\tif obs != nil {\n\t\t\t\tdata.Histogram = obs.(*histogram).html()\n\t\t\t}\n\t\t}\n\t}\n\n\tif data.Traces != nil {\n\t\tdefer data.Traces.Free()\n\t\tsort.Sort(data.Traces)\n\t}\n\n\tcompletedMu.RLock()\n\tdefer completedMu.RUnlock()\n\tif err := pageTmpl().ExecuteTemplate(w, \"Page\", data); err != nil {\n\t\tlog.Printf(\"net/trace: Failed executing template: %v\", err)\n\t}\n}\n\nfunc parseArgs(req *http.Request) (fam string, b int, ok bool) {\n\tif req == nil {\n\t\treturn \"\", 0, false\n\t}\n\tfam, bStr := req.FormValue(\"fam\"), req.FormValue(\"b\")\n\tif fam == \"\" || bStr == \"\" {\n\t\treturn \"\", 0, false\n\t}\n\tb, err := strconv.Atoi(bStr)\n\tif err != nil || b < -1 {\n\t\treturn \"\", 0, false\n\t}\n\n\treturn fam, b, true\n}\n\nfunc lookupBucket(fam string, b int) *traceBucket {\n\tf := getFamily(fam, false)\n\tif f == nil || b < 0 || b >= len(f.Buckets) {\n\t\treturn nil\n\t}\n\treturn f.Buckets[b]\n}\n\ntype contextKeyT string\n\nvar contextKey = contextKeyT(\"golang.org/x/net/trace.Trace\")\n\n// Trace represents an active request.\ntype Trace interface {\n\t// LazyLog adds x to the event log. It will be evaluated each time the\n\t// /debug/requests page is rendered. Any memory referenced by x will be\n\t// pinned until the trace is finished and later discarded.\n\tLazyLog(x fmt.Stringer, sensitive bool)\n\n\t// LazyPrintf evaluates its arguments with fmt.Sprintf each time the\n\t// /debug/requests page is rendered. Any memory referenced by a will be\n\t// pinned until the trace is finished and later discarded.\n\tLazyPrintf(format string, a ...interface{})\n\n\t// SetError declares that this trace resulted in an error.\n\tSetError()\n\n\t// SetRecycler sets a recycler for the trace.\n\t// f will be called for each event passed to LazyLog at a time when\n\t// it is no longer required, whether while the trace is still active\n\t// and the event is discarded, or when a completed trace is discarded.\n\tSetRecycler(f func(interface{}))\n\n\t// SetTraceInfo sets the trace info for the trace.\n\t// This is currently unused.\n\tSetTraceInfo(traceID, spanID uint64)\n\n\t// SetMaxEvents sets the maximum number of events that will be stored\n\t// in the trace. This has no effect if any events have already been\n\t// added to the trace.\n\tSetMaxEvents(m int)\n\n\t// Finish declares that this trace is complete.\n\t// The trace should not be used after calling this method.\n\tFinish()\n}\n\ntype lazySprintf struct {\n\tformat string\n\ta      []interface{}\n}\n\nfunc (l *lazySprintf) String() string {\n\treturn fmt.Sprintf(l.format, l.a...)\n}\n\n// New returns a new Trace with the specified family and title.\nfunc New(family, title string) Trace {\n\ttr := newTrace()\n\ttr.ref()\n\ttr.Family, tr.Title = family, title\n\ttr.Start = time.Now()\n\ttr.maxEvents = maxEventsPerTrace\n\ttr.events = tr.eventsBuf[:0]\n\n\tactiveMu.RLock()\n\ts := activeTraces[tr.Family]\n\tactiveMu.RUnlock()\n\tif s == nil {\n\t\tactiveMu.Lock()\n\t\ts = activeTraces[tr.Family] // check again\n\t\tif s == nil {\n\t\t\ts = new(traceSet)\n\t\t\tactiveTraces[tr.Family] = s\n\t\t}\n\t\tactiveMu.Unlock()\n\t}\n\ts.Add(tr)\n\n\t// Trigger allocation of the completed trace structure for this family.\n\t// This will cause the family to be present in the request page during\n\t// the first trace of this family. We don't care about the return value,\n\t// nor is there any need for this to run inline, so we execute it in its\n\t// own goroutine, but only if the family isn't allocated yet.\n\tcompletedMu.RLock()\n\tif _, ok := completedTraces[tr.Family]; !ok {\n\t\tgo allocFamily(tr.Family)\n\t}\n\tcompletedMu.RUnlock()\n\n\treturn tr\n}\n\nfunc (tr *trace) Finish() {\n\telapsed := time.Since(tr.Start)\n\ttr.mu.Lock()\n\ttr.Elapsed = elapsed\n\ttr.mu.Unlock()\n\n\tif DebugUseAfterFinish {\n\t\tbuf := make([]byte, 4<<10) // 4 KB should be enough\n\t\tn := runtime.Stack(buf, false)\n\t\ttr.finishStack = buf[:n]\n\t}\n\n\tactiveMu.RLock()\n\tm := activeTraces[tr.Family]\n\tactiveMu.RUnlock()\n\tm.Remove(tr)\n\n\tf := getFamily(tr.Family, true)\n\ttr.mu.RLock() // protects tr fields in Cond.match calls\n\tfor _, b := range f.Buckets {\n\t\tif b.Cond.match(tr) {\n\t\t\tb.Add(tr)\n\t\t}\n\t}\n\ttr.mu.RUnlock()\n\n\t// Add a sample of elapsed time as microseconds to the family's timeseries\n\th := new(histogram)\n\th.addMeasurement(elapsed.Nanoseconds() / 1e3)\n\tf.LatencyMu.Lock()\n\tf.Latency.Add(h)\n\tf.LatencyMu.Unlock()\n\n\ttr.unref() // matches ref in New\n}\n\nconst (\n\tbucketsPerFamily    = 9\n\ttracesPerBucket     = 10\n\tmaxActiveTraces     = 20 // Maximum number of active traces to show.\n\tmaxEventsPerTrace   = 10\n\tnumHistogramBuckets = 38\n)\n\nvar (\n\t// The active traces.\n\tactiveMu     sync.RWMutex\n\tactiveTraces = make(map[string]*traceSet) // family -> traces\n\n\t// Families of completed traces.\n\tcompletedMu     sync.RWMutex\n\tcompletedTraces = make(map[string]*family) // family -> traces\n)\n\ntype traceSet struct {\n\tmu sync.RWMutex\n\tm  map[*trace]bool\n\n\t// We could avoid the entire map scan in FirstN by having a slice of all the traces\n\t// ordered by start time, and an index into that from the trace struct, with a periodic\n\t// repack of the slice after enough traces finish; we could also use a skip list or similar.\n\t// However, that would shift some of the expense from /debug/requests time to RPC time,\n\t// which is probably the wrong trade-off.\n}\n\nfunc (ts *traceSet) Len() int {\n\tts.mu.RLock()\n\tdefer ts.mu.RUnlock()\n\treturn len(ts.m)\n}\n\nfunc (ts *traceSet) Add(tr *trace) {\n\tts.mu.Lock()\n\tif ts.m == nil {\n\t\tts.m = make(map[*trace]bool)\n\t}\n\tts.m[tr] = true\n\tts.mu.Unlock()\n}\n\nfunc (ts *traceSet) Remove(tr *trace) {\n\tts.mu.Lock()\n\tdelete(ts.m, tr)\n\tts.mu.Unlock()\n}\n\n// FirstN returns the first n traces ordered by time.\nfunc (ts *traceSet) FirstN(n int) traceList {\n\tts.mu.RLock()\n\tdefer ts.mu.RUnlock()\n\n\tif n > len(ts.m) {\n\t\tn = len(ts.m)\n\t}\n\ttrl := make(traceList, 0, n)\n\n\t// Fast path for when no selectivity is needed.\n\tif n == len(ts.m) {\n\t\tfor tr := range ts.m {\n\t\t\ttr.ref()\n\t\t\ttrl = append(trl, tr)\n\t\t}\n\t\tsort.Sort(trl)\n\t\treturn trl\n\t}\n\n\t// Pick the oldest n traces.\n\t// This is inefficient. See the comment in the traceSet struct.\n\tfor tr := range ts.m {\n\t\t// Put the first n traces into trl in the order they occur.\n\t\t// When we have n, sort trl, and thereafter maintain its order.\n\t\tif len(trl) < n {\n\t\t\ttr.ref()\n\t\t\ttrl = append(trl, tr)\n\t\t\tif len(trl) == n {\n\t\t\t\t// This is guaranteed to happen exactly once during this loop.\n\t\t\t\tsort.Sort(trl)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif tr.Start.After(trl[n-1].Start) {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Find where to insert this one.\n\t\ttr.ref()\n\t\ti := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) })\n\t\ttrl[n-1].unref()\n\t\tcopy(trl[i+1:], trl[i:])\n\t\ttrl[i] = tr\n\t}\n\n\treturn trl\n}\n\nfunc getActiveTraces(fam string) traceList {\n\tactiveMu.RLock()\n\ts := activeTraces[fam]\n\tactiveMu.RUnlock()\n\tif s == nil {\n\t\treturn nil\n\t}\n\treturn s.FirstN(maxActiveTraces)\n}\n\nfunc getFamily(fam string, allocNew bool) *family {\n\tcompletedMu.RLock()\n\tf := completedTraces[fam]\n\tcompletedMu.RUnlock()\n\tif f == nil && allocNew {\n\t\tf = allocFamily(fam)\n\t}\n\treturn f\n}\n\nfunc allocFamily(fam string) *family {\n\tcompletedMu.Lock()\n\tdefer completedMu.Unlock()\n\tf := completedTraces[fam]\n\tif f == nil {\n\t\tf = newFamily()\n\t\tcompletedTraces[fam] = f\n\t}\n\treturn f\n}\n\n// family represents a set of trace buckets and associated latency information.\ntype family struct {\n\t// traces may occur in multiple buckets.\n\tBuckets [bucketsPerFamily]*traceBucket\n\n\t// latency time series\n\tLatencyMu sync.RWMutex\n\tLatency   *timeseries.MinuteHourSeries\n}\n\nfunc newFamily() *family {\n\treturn &family{\n\t\tBuckets: [bucketsPerFamily]*traceBucket{\n\t\t\t{Cond: minCond(0)},\n\t\t\t{Cond: minCond(50 * time.Millisecond)},\n\t\t\t{Cond: minCond(100 * time.Millisecond)},\n\t\t\t{Cond: minCond(200 * time.Millisecond)},\n\t\t\t{Cond: minCond(500 * time.Millisecond)},\n\t\t\t{Cond: minCond(1 * time.Second)},\n\t\t\t{Cond: minCond(10 * time.Second)},\n\t\t\t{Cond: minCond(100 * time.Second)},\n\t\t\t{Cond: errorCond{}},\n\t\t},\n\t\tLatency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }),\n\t}\n}\n\n// traceBucket represents a size-capped bucket of historic traces,\n// along with a condition for a trace to belong to the bucket.\ntype traceBucket struct {\n\tCond cond\n\n\t// Ring buffer implementation of a fixed-size FIFO queue.\n\tmu     sync.RWMutex\n\tbuf    [tracesPerBucket]*trace\n\tstart  int // < tracesPerBucket\n\tlength int // <= tracesPerBucket\n}\n\nfunc (b *traceBucket) Add(tr *trace) {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\n\ti := b.start + b.length\n\tif i >= tracesPerBucket {\n\t\ti -= tracesPerBucket\n\t}\n\tif b.length == tracesPerBucket {\n\t\t// \"Remove\" an element from the bucket.\n\t\tb.buf[i].unref()\n\t\tb.start++\n\t\tif b.start == tracesPerBucket {\n\t\t\tb.start = 0\n\t\t}\n\t}\n\tb.buf[i] = tr\n\tif b.length < tracesPerBucket {\n\t\tb.length++\n\t}\n\ttr.ref()\n}\n\n// Copy returns a copy of the traces in the bucket.\n// If tracedOnly is true, only the traces with trace information will be returned.\n// The logs will be ref'd before returning; the caller should call\n// the Free method when it is done with them.\n// TODO(dsymonds): keep track of traced requests in separate buckets.\nfunc (b *traceBucket) Copy(tracedOnly bool) traceList {\n\tb.mu.RLock()\n\tdefer b.mu.RUnlock()\n\n\ttrl := make(traceList, 0, b.length)\n\tfor i, x := 0, b.start; i < b.length; i++ {\n\t\ttr := b.buf[x]\n\t\tif !tracedOnly || tr.spanID != 0 {\n\t\t\ttr.ref()\n\t\t\ttrl = append(trl, tr)\n\t\t}\n\t\tx++\n\t\tif x == b.length {\n\t\t\tx = 0\n\t\t}\n\t}\n\treturn trl\n}\n\nfunc (b *traceBucket) Empty() bool {\n\tb.mu.RLock()\n\tdefer b.mu.RUnlock()\n\treturn b.length == 0\n}\n\n// cond represents a condition on a trace.\ntype cond interface {\n\tmatch(t *trace) bool\n\tString() string\n}\n\ntype minCond time.Duration\n\nfunc (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) }\nfunc (m minCond) String() string      { return fmt.Sprintf(\"≥%gs\", time.Duration(m).Seconds()) }\n\ntype errorCond struct{}\n\nfunc (e errorCond) match(t *trace) bool { return t.IsError }\nfunc (e errorCond) String() string      { return \"errors\" }\n\ntype traceList []*trace\n\n// Free calls unref on each element of the list.\nfunc (trl traceList) Free() {\n\tfor _, t := range trl {\n\t\tt.unref()\n\t}\n}\n\n// traceList may be sorted in reverse chronological order.\nfunc (trl traceList) Len() int           { return len(trl) }\nfunc (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) }\nfunc (trl traceList) Swap(i, j int)      { trl[i], trl[j] = trl[j], trl[i] }\n\n// An event is a timestamped log entry in a trace.\ntype event struct {\n\tWhen       time.Time\n\tElapsed    time.Duration // since previous event in trace\n\tNewDay     bool          // whether this event is on a different day to the previous event\n\tRecyclable bool          // whether this event was passed via LazyLog\n\tSensitive  bool          // whether this event contains sensitive information\n\tWhat       interface{}   // string or fmt.Stringer\n}\n\n// WhenString returns a string representation of the elapsed time of the event.\n// It will include the date if midnight was crossed.\nfunc (e event) WhenString() string {\n\tif e.NewDay {\n\t\treturn e.When.Format(\"2006/01/02 15:04:05.000000\")\n\t}\n\treturn e.When.Format(\"15:04:05.000000\")\n}\n\n// discarded represents a number of discarded events.\n// It is stored as *discarded to make it easier to update in-place.\ntype discarded int\n\nfunc (d *discarded) String() string {\n\treturn fmt.Sprintf(\"(%d events discarded)\", int(*d))\n}\n\n// trace represents an active or complete request,\n// either sent or received by this program.\ntype trace struct {\n\t// Family is the top-level grouping of traces to which this belongs.\n\tFamily string\n\n\t// Title is the title of this trace.\n\tTitle string\n\n\t// Start time of the this trace.\n\tStart time.Time\n\n\tmu        sync.RWMutex\n\tevents    []event // Append-only sequence of events (modulo discards).\n\tmaxEvents int\n\trecycler  func(interface{})\n\tIsError   bool          // Whether this trace resulted in an error.\n\tElapsed   time.Duration // Elapsed time for this trace, zero while active.\n\ttraceID   uint64        // Trace information if non-zero.\n\tspanID    uint64\n\n\trefs int32     // how many buckets this is in\n\tdisc discarded // scratch space to avoid allocation\n\n\tfinishStack []byte // where finish was called, if DebugUseAfterFinish is set\n\n\teventsBuf [4]event // preallocated buffer in case we only log a few events\n}\n\nfunc (tr *trace) reset() {\n\t// Clear all but the mutex. Mutexes may not be copied, even when unlocked.\n\ttr.Family = \"\"\n\ttr.Title = \"\"\n\ttr.Start = time.Time{}\n\n\ttr.mu.Lock()\n\ttr.Elapsed = 0\n\ttr.traceID = 0\n\ttr.spanID = 0\n\ttr.IsError = false\n\ttr.maxEvents = 0\n\ttr.events = nil\n\ttr.recycler = nil\n\ttr.mu.Unlock()\n\n\ttr.refs = 0\n\ttr.disc = 0\n\ttr.finishStack = nil\n\tfor i := range tr.eventsBuf {\n\t\ttr.eventsBuf[i] = event{}\n\t}\n}\n\n// delta returns the elapsed time since the last event or the trace start,\n// and whether it spans midnight.\n// L >= tr.mu\nfunc (tr *trace) delta(t time.Time) (time.Duration, bool) {\n\tif len(tr.events) == 0 {\n\t\treturn t.Sub(tr.Start), false\n\t}\n\tprev := tr.events[len(tr.events)-1].When\n\treturn t.Sub(prev), prev.Day() != t.Day()\n}\n\nfunc (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) {\n\tif DebugUseAfterFinish && tr.finishStack != nil {\n\t\tbuf := make([]byte, 4<<10) // 4 KB should be enough\n\t\tn := runtime.Stack(buf, false)\n\t\tlog.Printf(\"net/trace: trace used after finish:\\nFinished at:\\n%s\\nUsed at:\\n%s\", tr.finishStack, buf[:n])\n\t}\n\n\t/*\n\t\tNOTE TO DEBUGGERS\n\n\t\tIf you are here because your program panicked in this code,\n\t\tit is almost definitely the fault of code using this package,\n\t\tand very unlikely to be the fault of this code.\n\n\t\tThe most likely scenario is that some code elsewhere is using\n\t\ta trace.Trace after its Finish method is called.\n\t\tYou can temporarily set the DebugUseAfterFinish var\n\t\tto help discover where that is; do not leave that var set,\n\t\tsince it makes this package much less efficient.\n\t*/\n\n\te := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive}\n\ttr.mu.Lock()\n\te.Elapsed, e.NewDay = tr.delta(e.When)\n\tif len(tr.events) < tr.maxEvents {\n\t\ttr.events = append(tr.events, e)\n\t} else {\n\t\t// Discard the middle events.\n\t\tdi := int((tr.maxEvents - 1) / 2)\n\t\tif d, ok := tr.events[di].What.(*discarded); ok {\n\t\t\t(*d)++\n\t\t} else {\n\t\t\t// disc starts at two to count for the event it is replacing,\n\t\t\t// plus the next one that we are about to drop.\n\t\t\ttr.disc = 2\n\t\t\tif tr.recycler != nil && tr.events[di].Recyclable {\n\t\t\t\tgo tr.recycler(tr.events[di].What)\n\t\t\t}\n\t\t\ttr.events[di].What = &tr.disc\n\t\t}\n\t\t// The timestamp of the discarded meta-event should be\n\t\t// the time of the last event it is representing.\n\t\ttr.events[di].When = tr.events[di+1].When\n\n\t\tif tr.recycler != nil && tr.events[di+1].Recyclable {\n\t\t\tgo tr.recycler(tr.events[di+1].What)\n\t\t}\n\t\tcopy(tr.events[di+1:], tr.events[di+2:])\n\t\ttr.events[tr.maxEvents-1] = e\n\t}\n\ttr.mu.Unlock()\n}\n\nfunc (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) {\n\ttr.addEvent(x, true, sensitive)\n}\n\nfunc (tr *trace) LazyPrintf(format string, a ...interface{}) {\n\ttr.addEvent(&lazySprintf{format, a}, false, false)\n}\n\nfunc (tr *trace) SetError() {\n\ttr.mu.Lock()\n\ttr.IsError = true\n\ttr.mu.Unlock()\n}\n\nfunc (tr *trace) SetRecycler(f func(interface{})) {\n\ttr.mu.Lock()\n\ttr.recycler = f\n\ttr.mu.Unlock()\n}\n\nfunc (tr *trace) SetTraceInfo(traceID, spanID uint64) {\n\ttr.mu.Lock()\n\ttr.traceID, tr.spanID = traceID, spanID\n\ttr.mu.Unlock()\n}\n\nfunc (tr *trace) SetMaxEvents(m int) {\n\ttr.mu.Lock()\n\t// Always keep at least three events: first, discarded count, last.\n\tif len(tr.events) == 0 && m > 3 {\n\t\ttr.maxEvents = m\n\t}\n\ttr.mu.Unlock()\n}\n\nfunc (tr *trace) ref() {\n\tatomic.AddInt32(&tr.refs, 1)\n}\n\nfunc (tr *trace) unref() {\n\tif atomic.AddInt32(&tr.refs, -1) == 0 {\n\t\ttr.mu.RLock()\n\t\tif tr.recycler != nil {\n\t\t\t// freeTrace clears tr, so we hold tr.recycler and tr.events here.\n\t\t\tgo func(f func(interface{}), es []event) {\n\t\t\t\tfor _, e := range es {\n\t\t\t\t\tif e.Recyclable {\n\t\t\t\t\t\tf(e.What)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}(tr.recycler, tr.events)\n\t\t}\n\t\ttr.mu.RUnlock()\n\n\t\tfreeTrace(tr)\n\t}\n}\n\nfunc (tr *trace) When() string {\n\treturn tr.Start.Format(\"2006/01/02 15:04:05.000000\")\n}\n\nfunc (tr *trace) ElapsedTime() string {\n\ttr.mu.RLock()\n\tt := tr.Elapsed\n\ttr.mu.RUnlock()\n\n\tif t == 0 {\n\t\t// Active trace.\n\t\tt = time.Since(tr.Start)\n\t}\n\treturn fmt.Sprintf(\"%.6f\", t.Seconds())\n}\n\nfunc (tr *trace) Events() []event {\n\ttr.mu.RLock()\n\tdefer tr.mu.RUnlock()\n\treturn tr.events\n}\n\nvar traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool?\n\n// newTrace returns a trace ready to use.\nfunc newTrace() *trace {\n\tselect {\n\tcase tr := <-traceFreeList:\n\t\treturn tr\n\tdefault:\n\t\treturn new(trace)\n\t}\n}\n\n// freeTrace adds tr to traceFreeList if there's room.\n// This is non-blocking.\nfunc freeTrace(tr *trace) {\n\tif DebugUseAfterFinish {\n\t\treturn // never reuse\n\t}\n\ttr.reset()\n\tselect {\n\tcase traceFreeList <- tr:\n\tdefault:\n\t}\n}\n\nfunc elapsed(d time.Duration) string {\n\tb := []byte(fmt.Sprintf(\"%.6f\", d.Seconds()))\n\n\t// For subsecond durations, blank all zeros before decimal point,\n\t// and all zeros between the decimal point and the first non-zero digit.\n\tif d < time.Second {\n\t\tdot := bytes.IndexByte(b, '.')\n\t\tfor i := 0; i < dot; i++ {\n\t\t\tb[i] = ' '\n\t\t}\n\t\tfor i := dot + 1; i < len(b); i++ {\n\t\t\tif b[i] == '0' {\n\t\t\t\tb[i] = ' '\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn string(b)\n}\n\nvar pageTmplCache *template.Template\nvar pageTmplOnce sync.Once\n\nfunc pageTmpl() *template.Template {\n\tpageTmplOnce.Do(func() {\n\t\tpageTmplCache = template.Must(template.New(\"Page\").Funcs(template.FuncMap{\n\t\t\t\"elapsed\": elapsed,\n\t\t\t\"add\":     func(a, b int) int { return a + b },\n\t\t}).Parse(pageHTML))\n\t})\n\treturn pageTmplCache\n}\n\nconst pageHTML = `\n{{template \"Prolog\" .}}\n{{template \"StatusTable\" .}}\n{{template \"Epilog\" .}}\n\n{{define \"Prolog\"}}\n<html>\n\t<head>\n\t<title>/debug/requests</title>\n\t<style type=\"text/css\">\n\t\tbody {\n\t\t\tfont-family: sans-serif;\n\t\t}\n\t\ttable#tr-status td.family {\n\t\t\tpadding-right: 2em;\n\t\t}\n\t\ttable#tr-status td.active {\n\t\t\tpadding-right: 1em;\n\t\t}\n\t\ttable#tr-status td.latency-first {\n\t\t\tpadding-left: 1em;\n\t\t}\n\t\ttable#tr-status td.empty {\n\t\t\tcolor: #aaa;\n\t\t}\n\t\ttable#reqs {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\ttable#reqs tr.first {\n\t\t\t{{if $.Expanded}}font-weight: bold;{{end}}\n\t\t}\n\t\ttable#reqs td {\n\t\t\tfont-family: monospace;\n\t\t}\n\t\ttable#reqs td.when {\n\t\t\ttext-align: right;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\ttable#reqs td.elapsed {\n\t\t\tpadding: 0 0.5em;\n\t\t\ttext-align: right;\n\t\t\twhite-space: pre;\n\t\t\twidth: 10em;\n\t\t}\n\t\taddress {\n\t\t\tfont-size: smaller;\n\t\t\tmargin-top: 5em;\n\t\t}\n\t</style>\n\t</head>\n\t<body>\n\n<h1>/debug/requests</h1>\n{{end}} {{/* end of Prolog */}}\n\n{{define \"StatusTable\"}}\n<table id=\"tr-status\">\n\t{{range $fam := .Families}}\n\t<tr>\n\t\t<td class=\"family\">{{$fam}}</td>\n\n\t\t{{$n := index $.ActiveTraceCount $fam}}\n\t\t<td class=\"active {{if not $n}}empty{{end}}\">\n\t\t\t{{if $n}}<a href=\"?fam={{$fam}}&b=-1{{if $.Expanded}}&exp=1{{end}}\">{{end}}\n\t\t\t[{{$n}} active]\n\t\t\t{{if $n}}</a>{{end}}\n\t\t</td>\n\n\t\t{{$f := index $.CompletedTraces $fam}}\n\t\t{{range $i, $b := $f.Buckets}}\n\t\t{{$empty := $b.Empty}}\n\t\t<td {{if $empty}}class=\"empty\"{{end}}>\n\t\t{{if not $empty}}<a href=\"?fam={{$fam}}&b={{$i}}{{if $.Expanded}}&exp=1{{end}}\">{{end}}\n\t\t[{{.Cond}}]\n\t\t{{if not $empty}}</a>{{end}}\n\t\t</td>\n\t\t{{end}}\n\n\t\t{{$nb := len $f.Buckets}}\n\t\t<td class=\"latency-first\">\n\t\t<a href=\"?fam={{$fam}}&b={{$nb}}\">[minute]</a>\n\t\t</td>\n\t\t<td>\n\t\t<a href=\"?fam={{$fam}}&b={{add $nb 1}}\">[hour]</a>\n\t\t</td>\n\t\t<td>\n\t\t<a href=\"?fam={{$fam}}&b={{add $nb 2}}\">[total]</a>\n\t\t</td>\n\n\t</tr>\n\t{{end}}\n</table>\n{{end}} {{/* end of StatusTable */}}\n\n{{define \"Epilog\"}}\n{{if $.Traces}}\n<hr />\n<h3>Family: {{$.Family}}</h3>\n\n{{if or $.Expanded $.Traced}}\n  <a href=\"?fam={{$.Family}}&b={{$.Bucket}}\">[Normal/Summary]</a>\n{{else}}\n  [Normal/Summary]\n{{end}}\n\n{{if or (not $.Expanded) $.Traced}}\n  <a href=\"?fam={{$.Family}}&b={{$.Bucket}}&exp=1\">[Normal/Expanded]</a>\n{{else}}\n  [Normal/Expanded]\n{{end}}\n\n{{if not $.Active}}\n\t{{if or $.Expanded (not $.Traced)}}\n\t<a href=\"?fam={{$.Family}}&b={{$.Bucket}}&rtraced=1\">[Traced/Summary]</a>\n\t{{else}}\n\t[Traced/Summary]\n\t{{end}}\n\t{{if or (not $.Expanded) (not $.Traced)}}\n\t<a href=\"?fam={{$.Family}}&b={{$.Bucket}}&exp=1&rtraced=1\">[Traced/Expanded]</a>\n        {{else}}\n\t[Traced/Expanded]\n\t{{end}}\n{{end}}\n\n{{if $.Total}}\n<p><em>Showing <b>{{len $.Traces}}</b> of <b>{{$.Total}}</b> traces.</em></p>\n{{end}}\n\n<table id=\"reqs\">\n\t<caption>\n\t\t{{if $.Active}}Active{{else}}Completed{{end}} Requests\n\t</caption>\n\t<tr><th>When</th><th>Elapsed&nbsp;(s)</th></tr>\n\t{{range $tr := $.Traces}}\n\t<tr class=\"first\">\n\t\t<td class=\"when\">{{$tr.When}}</td>\n\t\t<td class=\"elapsed\">{{$tr.ElapsedTime}}</td>\n\t\t<td>{{$tr.Title}}</td>\n\t\t{{/* TODO: include traceID/spanID */}}\n\t</tr>\n\t{{if $.Expanded}}\n\t{{range $tr.Events}}\n\t<tr>\n\t\t<td class=\"when\">{{.WhenString}}</td>\n\t\t<td class=\"elapsed\">{{elapsed .Elapsed}}</td>\n\t\t<td>{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}<em>[redacted]</em>{{end}}</td>\n\t</tr>\n\t{{end}}\n\t{{end}}\n\t{{end}}\n</table>\n{{end}} {{/* if $.Traces */}}\n\n{{if $.Histogram}}\n<h4>Latency (&micro;s) of {{$.Family}} over {{$.HistogramWindow}}</h4>\n{{$.Histogram}}\n{{end}} {{/* if $.Histogram */}}\n\n\t</body>\n</html>\n{{end}} {{/* end of Epilog */}}\n`\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/.travis.yml",
    "content": "language: go\n\ngo:\n  - tip\n\ninstall:\n  - export GOPATH=\"$HOME/gopath\"\n  - mkdir -p \"$GOPATH/src/golang.org/x\"\n  - mv \"$TRAVIS_BUILD_DIR\" \"$GOPATH/src/golang.org/x/oauth2\"\n  - go get -v -t -d golang.org/x/oauth2/...\n\nscript:\n  - go test -v golang.org/x/oauth2/...\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/CONTRIBUTING.md",
    "content": "# Contributing to Go\n\nGo is an open source project.\n\nIt is the work of hundreds of contributors. We appreciate your help!\n\n## Filing issues\n\nWhen [filing an issue](https://github.com/golang/oauth2/issues), make sure to answer these five questions:\n\n1.  What version of Go are you using (`go version`)?\n2.  What operating system and processor architecture are you using?\n3.  What did you do?\n4.  What did you expect to see?\n5.  What did you see instead?\n\nGeneral questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.\nThe gophers there will answer or ask you to file an issue if you've tripped over a bug.\n\n## Contributing code\n\nPlease read the [Contribution Guidelines](https://golang.org/doc/contribute.html)\nbefore sending patches.\n\nUnless otherwise noted, the Go source files are distributed under\nthe BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/README.md",
    "content": "# OAuth2 for Go\n\n[![Go Reference](https://pkg.go.dev/badge/golang.org/x/oauth2.svg)](https://pkg.go.dev/golang.org/x/oauth2)\n[![Build Status](https://travis-ci.org/golang/oauth2.svg?branch=master)](https://travis-ci.org/golang/oauth2)\n\noauth2 package contains a client implementation for OAuth 2.0 spec.\n\nSee pkg.go.dev for further documentation and examples.\n\n* [pkg.go.dev/golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2)\n* [pkg.go.dev/golang.org/x/oauth2/google](https://pkg.go.dev/golang.org/x/oauth2/google)\n\n## Policy for new endpoints\n\nWe no longer accept new provider-specific packages in this repo if all\nthey do is add a single endpoint variable. If you just want to add a\nsingle endpoint, add it to the\n[pkg.go.dev/golang.org/x/oauth2/endpoints](https://pkg.go.dev/golang.org/x/oauth2/endpoints)\npackage.\n\n## Report Issues / Send Patches\n\nThe main issue tracker for the oauth2 repository is located at\nhttps://github.com/golang/oauth2/issues.\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://go.dev/doc/contribute.\n\nThe git repository is https://go.googlesource.com/oauth2.\n\nNote:\n\n* Excluding trivial changes, all contributions should be connected to an existing issue.\n* API changes must go through the [change proposal process](https://go.dev/s/proposal-process) before they can be accepted.\n* The code owners are listed at [dev.golang.org/owners](https://dev.golang.org/owners#:~:text=x/oauth2).\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/deviceauth.go",
    "content": "package oauth2\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// https://datatracker.ietf.org/doc/html/rfc8628#section-3.5\nconst (\n\terrAuthorizationPending = \"authorization_pending\"\n\terrSlowDown             = \"slow_down\"\n\terrAccessDenied         = \"access_denied\"\n\terrExpiredToken         = \"expired_token\"\n)\n\n// DeviceAuthResponse describes a successful RFC 8628 Device Authorization Response\n// https://datatracker.ietf.org/doc/html/rfc8628#section-3.2\ntype DeviceAuthResponse struct {\n\t// DeviceCode\n\tDeviceCode string `json:\"device_code\"`\n\t// UserCode is the code the user should enter at the verification uri\n\tUserCode string `json:\"user_code\"`\n\t// VerificationURI is where user should enter the user code\n\tVerificationURI string `json:\"verification_uri\"`\n\t// VerificationURIComplete (if populated) includes the user code in the verification URI. This is typically shown to the user in non-textual form, such as a QR code.\n\tVerificationURIComplete string `json:\"verification_uri_complete,omitempty\"`\n\t// Expiry is when the device code and user code expire\n\tExpiry time.Time `json:\"expires_in,omitempty\"`\n\t// Interval is the duration in seconds that Poll should wait between requests\n\tInterval int64 `json:\"interval,omitempty\"`\n}\n\nfunc (d DeviceAuthResponse) MarshalJSON() ([]byte, error) {\n\ttype Alias DeviceAuthResponse\n\tvar expiresIn int64\n\tif !d.Expiry.IsZero() {\n\t\texpiresIn = int64(time.Until(d.Expiry).Seconds())\n\t}\n\treturn json.Marshal(&struct {\n\t\tExpiresIn int64 `json:\"expires_in,omitempty\"`\n\t\t*Alias\n\t}{\n\t\tExpiresIn: expiresIn,\n\t\tAlias:     (*Alias)(&d),\n\t})\n\n}\n\nfunc (c *DeviceAuthResponse) UnmarshalJSON(data []byte) error {\n\ttype Alias DeviceAuthResponse\n\taux := &struct {\n\t\tExpiresIn int64 `json:\"expires_in\"`\n\t\t// workaround misspelling of verification_uri\n\t\tVerificationURL string `json:\"verification_url\"`\n\t\t*Alias\n\t}{\n\t\tAlias: (*Alias)(c),\n\t}\n\tif err := json.Unmarshal(data, &aux); err != nil {\n\t\treturn err\n\t}\n\tif aux.ExpiresIn != 0 {\n\t\tc.Expiry = time.Now().UTC().Add(time.Second * time.Duration(aux.ExpiresIn))\n\t}\n\tif c.VerificationURI == \"\" {\n\t\tc.VerificationURI = aux.VerificationURL\n\t}\n\treturn nil\n}\n\n// DeviceAuth returns a device auth struct which contains a device code\n// and authorization information provided for users to enter on another device.\nfunc (c *Config) DeviceAuth(ctx context.Context, opts ...AuthCodeOption) (*DeviceAuthResponse, error) {\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.1\n\tv := url.Values{\n\t\t\"client_id\": {c.ClientID},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\treturn retrieveDeviceAuth(ctx, c, v)\n}\n\nfunc retrieveDeviceAuth(ctx context.Context, c *Config, v url.Values) (*DeviceAuthResponse, error) {\n\tif c.Endpoint.DeviceAuthURL == \"\" {\n\t\treturn nil, errors.New(\"endpoint missing DeviceAuthURL\")\n\t}\n\n\treq, err := http.NewRequest(\"POST\", c.Endpoint.DeviceAuthURL, strings.NewReader(v.Encode()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\n\tt := time.Now()\n\tr, err := internal.ContextClient(ctx).Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbody, err := io.ReadAll(io.LimitReader(r.Body, 1<<20))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"oauth2: cannot auth device: %v\", err)\n\t}\n\tif code := r.StatusCode; code < 200 || code > 299 {\n\t\tretrieveError := &RetrieveError{\n\t\t\tResponse: r,\n\t\t\tBody:     body,\n\t\t}\n\n\t\tcontent, _, _ := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\t\tswitch content {\n\t\tcase \"application/x-www-form-urlencoded\", \"text/plain\":\n\t\t\t// some endpoints return a query string\n\t\t\tvals, err := url.ParseQuery(string(body))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\tretrieveError.ErrorCode = vals.Get(\"error\")\n\t\t\tretrieveError.ErrorDescription = vals.Get(\"error_description\")\n\t\t\tretrieveError.ErrorURI = vals.Get(\"error_uri\")\n\t\tdefault:\n\t\t\tvar tj struct {\n\t\t\t\t// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2\n\t\t\t\tErrorCode        string `json:\"error\"`\n\t\t\t\tErrorDescription string `json:\"error_description\"`\n\t\t\t\tErrorURI         string `json:\"error_uri\"`\n\t\t\t}\n\t\t\tif json.Unmarshal(body, &tj) != nil {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\tretrieveError.ErrorCode = tj.ErrorCode\n\t\t\tretrieveError.ErrorDescription = tj.ErrorDescription\n\t\t\tretrieveError.ErrorURI = tj.ErrorURI\n\t\t}\n\n\t\treturn nil, retrieveError\n\t}\n\n\tda := &DeviceAuthResponse{}\n\terr = json.Unmarshal(body, &da)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unmarshal %s\", err)\n\t}\n\n\tif !da.Expiry.IsZero() {\n\t\t// Make a small adjustment to account for time taken by the request\n\t\tda.Expiry = da.Expiry.Add(-time.Since(t))\n\t}\n\n\treturn da, nil\n}\n\n// DeviceAccessToken polls the server to exchange a device code for a token.\nfunc (c *Config) DeviceAccessToken(ctx context.Context, da *DeviceAuthResponse, opts ...AuthCodeOption) (*Token, error) {\n\tif !da.Expiry.IsZero() {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithDeadline(ctx, da.Expiry)\n\t\tdefer cancel()\n\t}\n\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.4\n\tv := url.Values{\n\t\t\"client_id\":   {c.ClientID},\n\t\t\"grant_type\":  {\"urn:ietf:params:oauth:grant-type:device_code\"},\n\t\t\"device_code\": {da.DeviceCode},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\n\t// \"If no value is provided, clients MUST use 5 as the default.\"\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.2\n\tinterval := da.Interval\n\tif interval == 0 {\n\t\tinterval = 5\n\t}\n\n\tticker := time.NewTicker(time.Duration(interval) * time.Second)\n\tdefer ticker.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn nil, ctx.Err()\n\t\tcase <-ticker.C:\n\t\t\ttok, err := retrieveToken(ctx, c, v)\n\t\t\tif err == nil {\n\t\t\t\treturn tok, nil\n\t\t\t}\n\n\t\t\te, ok := err.(*RetrieveError)\n\t\t\tif !ok {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tswitch e.ErrorCode {\n\t\t\tcase errSlowDown:\n\t\t\t\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.5\n\t\t\t\t// \"the interval MUST be increased by 5 seconds for this and all subsequent requests\"\n\t\t\t\tinterval += 5\n\t\t\t\tticker.Reset(time.Duration(interval) * time.Second)\n\t\t\tcase errAuthorizationPending:\n\t\t\t\t// Do nothing.\n\t\t\tcase errAccessDenied, errExpiredToken:\n\t\t\t\tfallthrough\n\t\t\tdefault:\n\t\t\t\treturn tok, err\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/doc.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package internal contains support packages for [golang.org/x/oauth2].\npackage internal\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/oauth2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// ParseKey converts the binary contents of a private key file\n// to an [*rsa.PrivateKey]. It detects whether the private key is in a\n// PEM container or not. If so, it extracts the private key\n// from PEM container before conversion. It only supports PEM\n// containers with no passphrase.\nfunc ParseKey(key []byte) (*rsa.PrivateKey, error) {\n\tblock, _ := pem.Decode(key)\n\tif block != nil {\n\t\tkey = block.Bytes\n\t}\n\tparsedKey, err := x509.ParsePKCS8PrivateKey(key)\n\tif err != nil {\n\t\tparsedKey, err = x509.ParsePKCS1PrivateKey(key)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"private key should be a PEM or plain PKCS1 or PKCS8; parse error: %v\", err)\n\t\t}\n\t}\n\tparsed, ok := parsedKey.(*rsa.PrivateKey)\n\tif !ok {\n\t\treturn nil, errors.New(\"private key is invalid\")\n\t}\n\treturn parsed, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/token.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\n// Token represents the credentials used to authorize\n// the requests to access protected resources on the OAuth 2.0\n// provider's backend.\n//\n// This type is a mirror of [golang.org/x/oauth2.Token] and exists to break\n// an otherwise-circular dependency. Other internal packages\n// should convert this Token into an [golang.org/x/oauth2.Token] before use.\ntype Token struct {\n\t// AccessToken is the token that authorizes and authenticates\n\t// the requests.\n\tAccessToken string\n\n\t// TokenType is the type of token.\n\t// The Type method returns either this or \"Bearer\", the default.\n\tTokenType string\n\n\t// RefreshToken is a token that's used by the application\n\t// (as opposed to the user) to refresh the access token\n\t// if it expires.\n\tRefreshToken string\n\n\t// Expiry is the optional expiration time of the access token.\n\t//\n\t// If zero, TokenSource implementations will reuse the same\n\t// token forever and RefreshToken or equivalent\n\t// mechanisms for that TokenSource will not be used.\n\tExpiry time.Time\n\n\t// ExpiresIn is the OAuth2 wire format \"expires_in\" field,\n\t// which specifies how many seconds later the token expires,\n\t// relative to an unknown time base approximately around \"now\".\n\t// It is the application's responsibility to populate\n\t// `Expiry` from `ExpiresIn` when required.\n\tExpiresIn int64 `json:\"expires_in,omitempty\"`\n\n\t// Raw optionally contains extra metadata from the server\n\t// when updating a token.\n\tRaw any\n}\n\n// tokenJSON is the struct representing the HTTP response from OAuth2\n// providers returning a token or error in JSON form.\n// https://datatracker.ietf.org/doc/html/rfc6749#section-5.1\ntype tokenJSON struct {\n\tAccessToken  string         `json:\"access_token\"`\n\tTokenType    string         `json:\"token_type\"`\n\tRefreshToken string         `json:\"refresh_token\"`\n\tExpiresIn    expirationTime `json:\"expires_in\"` // at least PayPal returns string, while most return number\n\t// error fields\n\t// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2\n\tErrorCode        string `json:\"error\"`\n\tErrorDescription string `json:\"error_description\"`\n\tErrorURI         string `json:\"error_uri\"`\n}\n\nfunc (e *tokenJSON) expiry() (t time.Time) {\n\tif v := e.ExpiresIn; v != 0 {\n\t\treturn time.Now().Add(time.Duration(v) * time.Second)\n\t}\n\treturn\n}\n\ntype expirationTime int32\n\nfunc (e *expirationTime) UnmarshalJSON(b []byte) error {\n\tif len(b) == 0 || string(b) == \"null\" {\n\t\treturn nil\n\t}\n\tvar n json.Number\n\terr := json.Unmarshal(b, &n)\n\tif err != nil {\n\t\treturn err\n\t}\n\ti, err := n.Int64()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif i > math.MaxInt32 {\n\t\ti = math.MaxInt32\n\t}\n\t*e = expirationTime(i)\n\treturn nil\n}\n\n// AuthStyle is a copy of the golang.org/x/oauth2 package's AuthStyle type.\ntype AuthStyle int\n\nconst (\n\tAuthStyleUnknown  AuthStyle = 0\n\tAuthStyleInParams AuthStyle = 1\n\tAuthStyleInHeader AuthStyle = 2\n)\n\n// LazyAuthStyleCache is a backwards compatibility compromise to let Configs\n// have a lazily-initialized AuthStyleCache.\n//\n// The two users of this, oauth2.Config and oauth2/clientcredentials.Config,\n// both would ideally just embed an unexported AuthStyleCache but because both\n// were historically allowed to be copied by value we can't retroactively add an\n// uncopyable Mutex to them.\n//\n// We could use an atomic.Pointer, but that was added recently enough (in Go\n// 1.18) that we'd break Go 1.17 users where the tests as of 2023-08-03\n// still pass. By using an atomic.Value, it supports both Go 1.17 and\n// copying by value, even if that's not ideal.\ntype LazyAuthStyleCache struct {\n\tv atomic.Value // of *AuthStyleCache\n}\n\nfunc (lc *LazyAuthStyleCache) Get() *AuthStyleCache {\n\tif c, ok := lc.v.Load().(*AuthStyleCache); ok {\n\t\treturn c\n\t}\n\tc := new(AuthStyleCache)\n\tif !lc.v.CompareAndSwap(nil, c) {\n\t\tc = lc.v.Load().(*AuthStyleCache)\n\t}\n\treturn c\n}\n\ntype authStyleCacheKey struct {\n\turl      string\n\tclientID string\n}\n\n// AuthStyleCache is the set of tokenURLs we've successfully used via\n// RetrieveToken and which style auth we ended up using.\n// It's called a cache, but it doesn't (yet?) shrink. It's expected that\n// the set of OAuth2 servers a program contacts over time is fixed and\n// small.\ntype AuthStyleCache struct {\n\tmu sync.Mutex\n\tm  map[authStyleCacheKey]AuthStyle\n}\n\n// lookupAuthStyle reports which auth style we last used with tokenURL\n// when calling RetrieveToken and whether we have ever done so.\nfunc (c *AuthStyleCache) lookupAuthStyle(tokenURL, clientID string) (style AuthStyle, ok bool) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstyle, ok = c.m[authStyleCacheKey{tokenURL, clientID}]\n\treturn\n}\n\n// setAuthStyle adds an entry to authStyleCache, documented above.\nfunc (c *AuthStyleCache) setAuthStyle(tokenURL, clientID string, v AuthStyle) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tif c.m == nil {\n\t\tc.m = make(map[authStyleCacheKey]AuthStyle)\n\t}\n\tc.m[authStyleCacheKey{tokenURL, clientID}] = v\n}\n\n// newTokenRequest returns a new *http.Request to retrieve a new token\n// from tokenURL using the provided clientID, clientSecret, and POST\n// body parameters.\n//\n// inParams is whether the clientID & clientSecret should be encoded\n// as the POST body. An 'inParams' value of true means to send it in\n// the POST body (along with any values in v); false means to send it\n// in the Authorization header.\nfunc newTokenRequest(tokenURL, clientID, clientSecret string, v url.Values, authStyle AuthStyle) (*http.Request, error) {\n\tif authStyle == AuthStyleInParams {\n\t\tv = cloneURLValues(v)\n\t\tif clientID != \"\" {\n\t\t\tv.Set(\"client_id\", clientID)\n\t\t}\n\t\tif clientSecret != \"\" {\n\t\t\tv.Set(\"client_secret\", clientSecret)\n\t\t}\n\t}\n\treq, err := http.NewRequest(\"POST\", tokenURL, strings.NewReader(v.Encode()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\tif authStyle == AuthStyleInHeader {\n\t\treq.SetBasicAuth(url.QueryEscape(clientID), url.QueryEscape(clientSecret))\n\t}\n\treturn req, nil\n}\n\nfunc cloneURLValues(v url.Values) url.Values {\n\tv2 := make(url.Values, len(v))\n\tfor k, vv := range v {\n\t\tv2[k] = append([]string(nil), vv...)\n\t}\n\treturn v2\n}\n\nfunc RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle, styleCache *AuthStyleCache) (*Token, error) {\n\tneedsAuthStyleProbe := authStyle == AuthStyleUnknown\n\tif needsAuthStyleProbe {\n\t\tif style, ok := styleCache.lookupAuthStyle(tokenURL, clientID); ok {\n\t\t\tauthStyle = style\n\t\t\tneedsAuthStyleProbe = false\n\t\t} else {\n\t\t\tauthStyle = AuthStyleInHeader // the first way we'll try\n\t\t}\n\t}\n\treq, err := newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttoken, err := doTokenRoundTrip(ctx, req)\n\tif err != nil && needsAuthStyleProbe {\n\t\t// If we get an error, assume the server wants the\n\t\t// clientID & clientSecret in a different form.\n\t\t// See https://code.google.com/p/goauth2/issues/detail?id=31 for background.\n\t\t// In summary:\n\t\t// - Reddit only accepts client secret in the Authorization header\n\t\t// - Dropbox accepts either it in URL param or Auth header, but not both.\n\t\t// - Google only accepts URL param (not spec compliant?), not Auth header\n\t\t// - Stripe only accepts client secret in Auth header with Bearer method, not Basic\n\t\t//\n\t\t// We used to maintain a big table in this code of all the sites and which way\n\t\t// they went, but maintaining it didn't scale & got annoying.\n\t\t// So just try both ways.\n\t\tauthStyle = AuthStyleInParams // the second way we'll try\n\t\treq, _ = newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)\n\t\ttoken, err = doTokenRoundTrip(ctx, req)\n\t}\n\tif needsAuthStyleProbe && err == nil {\n\t\tstyleCache.setAuthStyle(tokenURL, clientID, authStyle)\n\t}\n\t// Don't overwrite `RefreshToken` with an empty value\n\t// if this was a token refreshing request.\n\tif token != nil && token.RefreshToken == \"\" {\n\t\ttoken.RefreshToken = v.Get(\"refresh_token\")\n\t}\n\treturn token, err\n}\n\nfunc doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) {\n\tr, err := ContextClient(ctx).Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbody, err := io.ReadAll(io.LimitReader(r.Body, 1<<20))\n\tr.Body.Close()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"oauth2: cannot fetch token: %v\", err)\n\t}\n\n\tfailureStatus := r.StatusCode < 200 || r.StatusCode > 299\n\tretrieveError := &RetrieveError{\n\t\tResponse: r,\n\t\tBody:     body,\n\t\t// attempt to populate error detail below\n\t}\n\n\tvar token *Token\n\tcontent, _, _ := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tswitch content {\n\tcase \"application/x-www-form-urlencoded\", \"text/plain\":\n\t\t// some endpoints return a query string\n\t\tvals, err := url.ParseQuery(string(body))\n\t\tif err != nil {\n\t\t\tif failureStatus {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"oauth2: cannot parse response: %v\", err)\n\t\t}\n\t\tretrieveError.ErrorCode = vals.Get(\"error\")\n\t\tretrieveError.ErrorDescription = vals.Get(\"error_description\")\n\t\tretrieveError.ErrorURI = vals.Get(\"error_uri\")\n\t\ttoken = &Token{\n\t\t\tAccessToken:  vals.Get(\"access_token\"),\n\t\t\tTokenType:    vals.Get(\"token_type\"),\n\t\t\tRefreshToken: vals.Get(\"refresh_token\"),\n\t\t\tRaw:          vals,\n\t\t}\n\t\te := vals.Get(\"expires_in\")\n\t\texpires, _ := strconv.Atoi(e)\n\t\tif expires != 0 {\n\t\t\ttoken.Expiry = time.Now().Add(time.Duration(expires) * time.Second)\n\t\t}\n\tdefault:\n\t\tvar tj tokenJSON\n\t\tif err = json.Unmarshal(body, &tj); err != nil {\n\t\t\tif failureStatus {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"oauth2: cannot parse json: %v\", err)\n\t\t}\n\t\tretrieveError.ErrorCode = tj.ErrorCode\n\t\tretrieveError.ErrorDescription = tj.ErrorDescription\n\t\tretrieveError.ErrorURI = tj.ErrorURI\n\t\ttoken = &Token{\n\t\t\tAccessToken:  tj.AccessToken,\n\t\t\tTokenType:    tj.TokenType,\n\t\t\tRefreshToken: tj.RefreshToken,\n\t\t\tExpiry:       tj.expiry(),\n\t\t\tExpiresIn:    int64(tj.ExpiresIn),\n\t\t\tRaw:          make(map[string]any),\n\t\t}\n\t\tjson.Unmarshal(body, &token.Raw) // no error checks for optional fields\n\t}\n\t// according to spec, servers should respond status 400 in error case\n\t// https://www.rfc-editor.org/rfc/rfc6749#section-5.2\n\t// but some unorthodox servers respond 200 in error case\n\tif failureStatus || retrieveError.ErrorCode != \"\" {\n\t\treturn nil, retrieveError\n\t}\n\tif token.AccessToken == \"\" {\n\t\treturn nil, errors.New(\"oauth2: server response missing access_token\")\n\t}\n\treturn token, nil\n}\n\n// mirrors oauth2.RetrieveError\ntype RetrieveError struct {\n\tResponse         *http.Response\n\tBody             []byte\n\tErrorCode        string\n\tErrorDescription string\n\tErrorURI         string\n}\n\nfunc (r *RetrieveError) Error() string {\n\tif r.ErrorCode != \"\" {\n\t\ts := fmt.Sprintf(\"oauth2: %q\", r.ErrorCode)\n\t\tif r.ErrorDescription != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorDescription)\n\t\t}\n\t\tif r.ErrorURI != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorURI)\n\t\t}\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"oauth2: cannot fetch token: %v\\nResponse: %s\", r.Response.Status, r.Body)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/transport.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"context\"\n\t\"net/http\"\n)\n\n// HTTPClient is the context key to use with [context.WithValue]\n// to associate an [*http.Client] value with a context.\nvar HTTPClient ContextKey\n\n// ContextKey is just an empty struct. It exists so HTTPClient can be\n// an immutable public variable with a unique type. It's immutable\n// because nobody else can create a ContextKey, being unexported.\ntype ContextKey struct{}\n\nfunc ContextClient(ctx context.Context) *http.Client {\n\tif ctx != nil {\n\t\tif hc, ok := ctx.Value(HTTPClient).(*http.Client); ok {\n\t\t\treturn hc\n\t\t}\n\t}\n\treturn http.DefaultClient\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/oauth2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package oauth2 provides support for making\n// OAuth2 authorized and authenticated HTTP requests,\n// as specified in RFC 6749.\n// It can additionally grant authorization with Bearer JWT.\npackage oauth2 // import \"golang.org/x/oauth2\"\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// NoContext is the default context you should supply if not using\n// your own [context.Context].\n//\n// Deprecated: Use [context.Background] or [context.TODO] instead.\nvar NoContext = context.TODO()\n\n// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op.\n//\n// Deprecated: this function no longer does anything. Caller code that\n// wants to avoid potential extra HTTP requests made during\n// auto-probing of the provider's auth style should set\n// Endpoint.AuthStyle.\nfunc RegisterBrokenAuthHeaderProvider(tokenURL string) {}\n\n// Config describes a typical 3-legged OAuth2 flow, with both the\n// client application information and the server's endpoint URLs.\n// For the client credentials 2-legged OAuth2 flow, see the\n// [golang.org/x/oauth2/clientcredentials] package.\ntype Config struct {\n\t// ClientID is the application's ID.\n\tClientID string\n\n\t// ClientSecret is the application's secret.\n\tClientSecret string\n\n\t// Endpoint contains the authorization server's token endpoint\n\t// URLs. These are constants specific to each server and are\n\t// often available via site-specific packages, such as\n\t// google.Endpoint or github.Endpoint.\n\tEndpoint Endpoint\n\n\t// RedirectURL is the URL to redirect users going through\n\t// the OAuth flow, after the resource owner's URLs.\n\tRedirectURL string\n\n\t// Scopes specifies optional requested permissions.\n\tScopes []string\n\n\t// authStyleCache caches which auth style to use when Endpoint.AuthStyle is\n\t// the zero value (AuthStyleAutoDetect).\n\tauthStyleCache internal.LazyAuthStyleCache\n}\n\n// A TokenSource is anything that can return a token.\ntype TokenSource interface {\n\t// Token returns a token or an error.\n\t// Token must be safe for concurrent use by multiple goroutines.\n\t// The returned Token must not be modified.\n\tToken() (*Token, error)\n}\n\n// Endpoint represents an OAuth 2.0 provider's authorization and token\n// endpoint URLs.\ntype Endpoint struct {\n\tAuthURL       string\n\tDeviceAuthURL string\n\tTokenURL      string\n\n\t// AuthStyle optionally specifies how the endpoint wants the\n\t// client ID & client secret sent. The zero value means to\n\t// auto-detect.\n\tAuthStyle AuthStyle\n}\n\n// AuthStyle represents how requests for tokens are authenticated\n// to the server.\ntype AuthStyle int\n\nconst (\n\t// AuthStyleAutoDetect means to auto-detect which authentication\n\t// style the provider wants by trying both ways and caching\n\t// the successful way for the future.\n\tAuthStyleAutoDetect AuthStyle = 0\n\n\t// AuthStyleInParams sends the \"client_id\" and \"client_secret\"\n\t// in the POST body as application/x-www-form-urlencoded parameters.\n\tAuthStyleInParams AuthStyle = 1\n\n\t// AuthStyleInHeader sends the client_id and client_secret\n\t// using HTTP Basic Authorization. This is an optional style\n\t// described in the OAuth2 RFC 6749 section 2.3.1.\n\tAuthStyleInHeader AuthStyle = 2\n)\n\nvar (\n\t// AccessTypeOnline and AccessTypeOffline are options passed\n\t// to the Options.AuthCodeURL method. They modify the\n\t// \"access_type\" field that gets sent in the URL returned by\n\t// AuthCodeURL.\n\t//\n\t// Online is the default if neither is specified. If your\n\t// application needs to refresh access tokens when the user\n\t// is not present at the browser, then use offline. This will\n\t// result in your application obtaining a refresh token the\n\t// first time your application exchanges an authorization\n\t// code for a user.\n\tAccessTypeOnline  AuthCodeOption = SetAuthURLParam(\"access_type\", \"online\")\n\tAccessTypeOffline AuthCodeOption = SetAuthURLParam(\"access_type\", \"offline\")\n\n\t// ApprovalForce forces the users to view the consent dialog\n\t// and confirm the permissions request at the URL returned\n\t// from AuthCodeURL, even if they've already done so.\n\tApprovalForce AuthCodeOption = SetAuthURLParam(\"prompt\", \"consent\")\n)\n\n// An AuthCodeOption is passed to Config.AuthCodeURL.\ntype AuthCodeOption interface {\n\tsetValue(url.Values)\n}\n\ntype setParam struct{ k, v string }\n\nfunc (p setParam) setValue(m url.Values) { m.Set(p.k, p.v) }\n\n// SetAuthURLParam builds an [AuthCodeOption] which passes key/value parameters\n// to a provider's authorization endpoint.\nfunc SetAuthURLParam(key, value string) AuthCodeOption {\n\treturn setParam{key, value}\n}\n\n// AuthCodeURL returns a URL to OAuth 2.0 provider's consent page\n// that asks for permissions for the required scopes explicitly.\n//\n// State is an opaque value used by the client to maintain state between the\n// request and callback. The authorization server includes this value when\n// redirecting the user agent back to the client.\n//\n// Opts may include [AccessTypeOnline] or [AccessTypeOffline], as well\n// as [ApprovalForce].\n//\n// To protect against CSRF attacks, opts should include a PKCE challenge\n// (S256ChallengeOption). Not all servers support PKCE. An alternative is to\n// generate a random state parameter and verify it after exchange.\n// See https://datatracker.ietf.org/doc/html/rfc6749#section-10.12 (predating\n// PKCE), https://www.oauth.com/oauth2-servers/pkce/ and\n// https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-09.html#name-cross-site-request-forgery (describing both approaches)\nfunc (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string {\n\tvar buf strings.Builder\n\tbuf.WriteString(c.Endpoint.AuthURL)\n\tv := url.Values{\n\t\t\"response_type\": {\"code\"},\n\t\t\"client_id\":     {c.ClientID},\n\t}\n\tif c.RedirectURL != \"\" {\n\t\tv.Set(\"redirect_uri\", c.RedirectURL)\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tif state != \"\" {\n\t\tv.Set(\"state\", state)\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\tif strings.Contains(c.Endpoint.AuthURL, \"?\") {\n\t\tbuf.WriteByte('&')\n\t} else {\n\t\tbuf.WriteByte('?')\n\t}\n\tbuf.WriteString(v.Encode())\n\treturn buf.String()\n}\n\n// PasswordCredentialsToken converts a resource owner username and password\n// pair into a token.\n//\n// Per the RFC, this grant type should only be used \"when there is a high\n// degree of trust between the resource owner and the client (e.g., the client\n// is part of the device operating system or a highly privileged application),\n// and when other authorization grant types are not available.\"\n// See https://tools.ietf.org/html/rfc6749#section-4.3 for more info.\n//\n// The provided context optionally controls which HTTP client is used. See the [HTTPClient] variable.\nfunc (c *Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*Token, error) {\n\tv := url.Values{\n\t\t\"grant_type\": {\"password\"},\n\t\t\"username\":   {username},\n\t\t\"password\":   {password},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\treturn retrieveToken(ctx, c, v)\n}\n\n// Exchange converts an authorization code into a token.\n//\n// It is used after a resource provider redirects the user back\n// to the Redirect URI (the URL obtained from AuthCodeURL).\n//\n// The provided context optionally controls which HTTP client is used. See the [HTTPClient] variable.\n//\n// The code will be in the [http.Request.FormValue](\"code\"). Before\n// calling Exchange, be sure to validate [http.Request.FormValue](\"state\") if you are\n// using it to protect against CSRF attacks.\n//\n// If using PKCE to protect against CSRF attacks, opts should include a\n// VerifierOption.\nfunc (c *Config) Exchange(ctx context.Context, code string, opts ...AuthCodeOption) (*Token, error) {\n\tv := url.Values{\n\t\t\"grant_type\": {\"authorization_code\"},\n\t\t\"code\":       {code},\n\t}\n\tif c.RedirectURL != \"\" {\n\t\tv.Set(\"redirect_uri\", c.RedirectURL)\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\treturn retrieveToken(ctx, c, v)\n}\n\n// Client returns an HTTP client using the provided token.\n// The token will auto-refresh as necessary. The underlying\n// HTTP transport will be obtained using the provided context.\n// The returned client and its Transport should not be modified.\nfunc (c *Config) Client(ctx context.Context, t *Token) *http.Client {\n\treturn NewClient(ctx, c.TokenSource(ctx, t))\n}\n\n// TokenSource returns a [TokenSource] that returns t until t expires,\n// automatically refreshing it as necessary using the provided context.\n//\n// Most users will use [Config.Client] instead.\nfunc (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource {\n\ttkr := &tokenRefresher{\n\t\tctx:  ctx,\n\t\tconf: c,\n\t}\n\tif t != nil {\n\t\ttkr.refreshToken = t.RefreshToken\n\t}\n\treturn &reuseTokenSource{\n\t\tt:   t,\n\t\tnew: tkr,\n\t}\n}\n\n// tokenRefresher is a TokenSource that makes \"grant_type=refresh_token\"\n// HTTP requests to renew a token using a RefreshToken.\ntype tokenRefresher struct {\n\tctx          context.Context // used to get HTTP requests\n\tconf         *Config\n\trefreshToken string\n}\n\n// WARNING: Token is not safe for concurrent access, as it\n// updates the tokenRefresher's refreshToken field.\n// Within this package, it is used by reuseTokenSource which\n// synchronizes calls to this method with its own mutex.\nfunc (tf *tokenRefresher) Token() (*Token, error) {\n\tif tf.refreshToken == \"\" {\n\t\treturn nil, errors.New(\"oauth2: token expired and refresh token is not set\")\n\t}\n\n\ttk, err := retrieveToken(tf.ctx, tf.conf, url.Values{\n\t\t\"grant_type\":    {\"refresh_token\"},\n\t\t\"refresh_token\": {tf.refreshToken},\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif tf.refreshToken != tk.RefreshToken {\n\t\ttf.refreshToken = tk.RefreshToken\n\t}\n\treturn tk, nil\n}\n\n// reuseTokenSource is a TokenSource that holds a single token in memory\n// and validates its expiry before each call to retrieve it with\n// Token. If it's expired, it will be auto-refreshed using the\n// new TokenSource.\ntype reuseTokenSource struct {\n\tnew TokenSource // called when t is expired.\n\n\tmu sync.Mutex // guards t\n\tt  *Token\n\n\texpiryDelta time.Duration\n}\n\n// Token returns the current token if it's still valid, else will\n// refresh the current token and return the new one.\nfunc (s *reuseTokenSource) Token() (*Token, error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tif s.t.Valid() {\n\t\treturn s.t, nil\n\t}\n\tt, err := s.new.Token()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tt.expiryDelta = s.expiryDelta\n\ts.t = t\n\treturn t, nil\n}\n\n// StaticTokenSource returns a [TokenSource] that always returns the same token.\n// Because the provided token t is never refreshed, StaticTokenSource is only\n// useful for tokens that never expire.\nfunc StaticTokenSource(t *Token) TokenSource {\n\treturn staticTokenSource{t}\n}\n\n// staticTokenSource is a TokenSource that always returns the same Token.\ntype staticTokenSource struct {\n\tt *Token\n}\n\nfunc (s staticTokenSource) Token() (*Token, error) {\n\treturn s.t, nil\n}\n\n// HTTPClient is the context key to use with [context.WithValue]\n// to associate a [*http.Client] value with a context.\nvar HTTPClient internal.ContextKey\n\n// NewClient creates an [*http.Client] from a [context.Context] and [TokenSource].\n// The returned client is not valid beyond the lifetime of the context.\n//\n// Note that if a custom [*http.Client] is provided via the [context.Context] it\n// is used only for token acquisition and is not used to configure the\n// [*http.Client] returned from NewClient.\n//\n// As a special case, if src is nil, a non-OAuth2 client is returned\n// using the provided context. This exists to support related OAuth2\n// packages.\nfunc NewClient(ctx context.Context, src TokenSource) *http.Client {\n\tif src == nil {\n\t\treturn internal.ContextClient(ctx)\n\t}\n\tcc := internal.ContextClient(ctx)\n\treturn &http.Client{\n\t\tTransport: &Transport{\n\t\t\tBase:   cc.Transport,\n\t\t\tSource: ReuseTokenSource(nil, src),\n\t\t},\n\t\tCheckRedirect: cc.CheckRedirect,\n\t\tJar:           cc.Jar,\n\t\tTimeout:       cc.Timeout,\n\t}\n}\n\n// ReuseTokenSource returns a [TokenSource] which repeatedly returns the\n// same token as long as it's valid, starting with t.\n// When its cached token is invalid, a new token is obtained from src.\n//\n// ReuseTokenSource is typically used to reuse tokens from a cache\n// (such as a file on disk) between runs of a program, rather than\n// obtaining new tokens unnecessarily.\n//\n// The initial token t may be nil, in which case the [TokenSource] is\n// wrapped in a caching version if it isn't one already. This also\n// means it's always safe to wrap ReuseTokenSource around any other\n// [TokenSource] without adverse effects.\nfunc ReuseTokenSource(t *Token, src TokenSource) TokenSource {\n\t// Don't wrap a reuseTokenSource in itself. That would work,\n\t// but cause an unnecessary number of mutex operations.\n\t// Just build the equivalent one.\n\tif rt, ok := src.(*reuseTokenSource); ok {\n\t\tif t == nil {\n\t\t\t// Just use it directly.\n\t\t\treturn rt\n\t\t}\n\t\tsrc = rt.new\n\t}\n\treturn &reuseTokenSource{\n\t\tt:   t,\n\t\tnew: src,\n\t}\n}\n\n// ReuseTokenSourceWithExpiry returns a [TokenSource] that acts in the same manner as the\n// [TokenSource] returned by [ReuseTokenSource], except the expiry buffer is\n// configurable. The expiration time of a token is calculated as\n// t.Expiry.Add(-earlyExpiry).\nfunc ReuseTokenSourceWithExpiry(t *Token, src TokenSource, earlyExpiry time.Duration) TokenSource {\n\t// Don't wrap a reuseTokenSource in itself. That would work,\n\t// but cause an unnecessary number of mutex operations.\n\t// Just build the equivalent one.\n\tif rt, ok := src.(*reuseTokenSource); ok {\n\t\tif t == nil {\n\t\t\t// Just use it directly, but set the expiryDelta to earlyExpiry,\n\t\t\t// so the behavior matches what the user expects.\n\t\t\trt.expiryDelta = earlyExpiry\n\t\t\treturn rt\n\t\t}\n\t\tsrc = rt.new\n\t}\n\tif t != nil {\n\t\tt.expiryDelta = earlyExpiry\n\t}\n\treturn &reuseTokenSource{\n\t\tt:           t,\n\t\tnew:         src,\n\t\texpiryDelta: earlyExpiry,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/pkce.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage oauth2\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"net/url\"\n)\n\nconst (\n\tcodeChallengeKey       = \"code_challenge\"\n\tcodeChallengeMethodKey = \"code_challenge_method\"\n\tcodeVerifierKey        = \"code_verifier\"\n)\n\n// GenerateVerifier generates a PKCE code verifier with 32 octets of randomness.\n// This follows recommendations in RFC 7636.\n//\n// A fresh verifier should be generated for each authorization.\n// The resulting verifier should be passed to [Config.AuthCodeURL] or [Config.DeviceAuth]\n// with [S256ChallengeOption], and to [Config.Exchange] or [Config.DeviceAccessToken]\n// with [VerifierOption].\nfunc GenerateVerifier() string {\n\t// \"RECOMMENDED that the output of a suitable random number generator be\n\t// used to create a 32-octet sequence.  The octet sequence is then\n\t// base64url-encoded to produce a 43-octet URL-safe string to use as the\n\t// code verifier.\"\n\t// https://datatracker.ietf.org/doc/html/rfc7636#section-4.1\n\tdata := make([]byte, 32)\n\tif _, err := rand.Read(data); err != nil {\n\t\tpanic(err)\n\t}\n\treturn base64.RawURLEncoding.EncodeToString(data)\n}\n\n// VerifierOption returns a PKCE code verifier [AuthCodeOption]. It should only be\n// passed to [Config.Exchange] or [Config.DeviceAccessToken].\nfunc VerifierOption(verifier string) AuthCodeOption {\n\treturn setParam{k: codeVerifierKey, v: verifier}\n}\n\n// S256ChallengeFromVerifier returns a PKCE code challenge derived from verifier with method S256.\n//\n// Prefer to use [S256ChallengeOption] where possible.\nfunc S256ChallengeFromVerifier(verifier string) string {\n\tsha := sha256.Sum256([]byte(verifier))\n\treturn base64.RawURLEncoding.EncodeToString(sha[:])\n}\n\n// S256ChallengeOption derives a PKCE code challenge from the verifier with\n// method S256. It should be passed to [Config.AuthCodeURL] or [Config.DeviceAuth]\n// only.\nfunc S256ChallengeOption(verifier string) AuthCodeOption {\n\treturn challengeOption{\n\t\tchallenge_method: \"S256\",\n\t\tchallenge:        S256ChallengeFromVerifier(verifier),\n\t}\n}\n\ntype challengeOption struct{ challenge_method, challenge string }\n\nfunc (p challengeOption) setValue(m url.Values) {\n\tm.Set(codeChallengeMethodKey, p.challenge_method)\n\tm.Set(codeChallengeKey, p.challenge)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/token.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage oauth2\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// defaultExpiryDelta determines how earlier a token should be considered\n// expired than its actual expiration time. It is used to avoid late\n// expirations due to client-server time mismatches.\nconst defaultExpiryDelta = 10 * time.Second\n\n// Token represents the credentials used to authorize\n// the requests to access protected resources on the OAuth 2.0\n// provider's backend.\n//\n// Most users of this package should not access fields of Token\n// directly. They're exported mostly for use by related packages\n// implementing derivative OAuth2 flows.\ntype Token struct {\n\t// AccessToken is the token that authorizes and authenticates\n\t// the requests.\n\tAccessToken string `json:\"access_token\"`\n\n\t// TokenType is the type of token.\n\t// The Type method returns either this or \"Bearer\", the default.\n\tTokenType string `json:\"token_type,omitempty\"`\n\n\t// RefreshToken is a token that's used by the application\n\t// (as opposed to the user) to refresh the access token\n\t// if it expires.\n\tRefreshToken string `json:\"refresh_token,omitempty\"`\n\n\t// Expiry is the optional expiration time of the access token.\n\t//\n\t// If zero, [TokenSource] implementations will reuse the same\n\t// token forever and RefreshToken or equivalent\n\t// mechanisms for that TokenSource will not be used.\n\tExpiry time.Time `json:\"expiry,omitempty\"`\n\n\t// ExpiresIn is the OAuth2 wire format \"expires_in\" field,\n\t// which specifies how many seconds later the token expires,\n\t// relative to an unknown time base approximately around \"now\".\n\t// It is the application's responsibility to populate\n\t// `Expiry` from `ExpiresIn` when required.\n\tExpiresIn int64 `json:\"expires_in,omitempty\"`\n\n\t// raw optionally contains extra metadata from the server\n\t// when updating a token.\n\traw any\n\n\t// expiryDelta is used to calculate when a token is considered\n\t// expired, by subtracting from Expiry. If zero, defaultExpiryDelta\n\t// is used.\n\texpiryDelta time.Duration\n}\n\n// Type returns t.TokenType if non-empty, else \"Bearer\".\nfunc (t *Token) Type() string {\n\tif strings.EqualFold(t.TokenType, \"bearer\") {\n\t\treturn \"Bearer\"\n\t}\n\tif strings.EqualFold(t.TokenType, \"mac\") {\n\t\treturn \"MAC\"\n\t}\n\tif strings.EqualFold(t.TokenType, \"basic\") {\n\t\treturn \"Basic\"\n\t}\n\tif t.TokenType != \"\" {\n\t\treturn t.TokenType\n\t}\n\treturn \"Bearer\"\n}\n\n// SetAuthHeader sets the Authorization header to r using the access\n// token in t.\n//\n// This method is unnecessary when using [Transport] or an HTTP Client\n// returned by this package.\nfunc (t *Token) SetAuthHeader(r *http.Request) {\n\tr.Header.Set(\"Authorization\", t.Type()+\" \"+t.AccessToken)\n}\n\n// WithExtra returns a new [Token] that's a clone of t, but using the\n// provided raw extra map. This is only intended for use by packages\n// implementing derivative OAuth2 flows.\nfunc (t *Token) WithExtra(extra any) *Token {\n\tt2 := new(Token)\n\t*t2 = *t\n\tt2.raw = extra\n\treturn t2\n}\n\n// Extra returns an extra field.\n// Extra fields are key-value pairs returned by the server as\n// part of the token retrieval response.\nfunc (t *Token) Extra(key string) any {\n\tif raw, ok := t.raw.(map[string]any); ok {\n\t\treturn raw[key]\n\t}\n\n\tvals, ok := t.raw.(url.Values)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tv := vals.Get(key)\n\tswitch s := strings.TrimSpace(v); strings.Count(s, \".\") {\n\tcase 0: // Contains no \".\"; try to parse as int\n\t\tif i, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn i\n\t\t}\n\tcase 1: // Contains a single \".\"; try to parse as float\n\t\tif f, err := strconv.ParseFloat(s, 64); err == nil {\n\t\t\treturn f\n\t\t}\n\t}\n\n\treturn v\n}\n\n// timeNow is time.Now but pulled out as a variable for tests.\nvar timeNow = time.Now\n\n// expired reports whether the token is expired.\n// t must be non-nil.\nfunc (t *Token) expired() bool {\n\tif t.Expiry.IsZero() {\n\t\treturn false\n\t}\n\n\texpiryDelta := defaultExpiryDelta\n\tif t.expiryDelta != 0 {\n\t\texpiryDelta = t.expiryDelta\n\t}\n\treturn t.Expiry.Round(0).Add(-expiryDelta).Before(timeNow())\n}\n\n// Valid reports whether t is non-nil, has an AccessToken, and is not expired.\nfunc (t *Token) Valid() bool {\n\treturn t != nil && t.AccessToken != \"\" && !t.expired()\n}\n\n// tokenFromInternal maps an *internal.Token struct into\n// a *Token struct.\nfunc tokenFromInternal(t *internal.Token) *Token {\n\tif t == nil {\n\t\treturn nil\n\t}\n\treturn &Token{\n\t\tAccessToken:  t.AccessToken,\n\t\tTokenType:    t.TokenType,\n\t\tRefreshToken: t.RefreshToken,\n\t\tExpiry:       t.Expiry,\n\t\tExpiresIn:    t.ExpiresIn,\n\t\traw:          t.Raw,\n\t}\n}\n\n// retrieveToken takes a *Config and uses that to retrieve an *internal.Token.\n// This token is then mapped from *internal.Token into an *oauth2.Token which is returned along\n// with an error.\nfunc retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) {\n\ttk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v, internal.AuthStyle(c.Endpoint.AuthStyle), c.authStyleCache.Get())\n\tif err != nil {\n\t\tif rErr, ok := err.(*internal.RetrieveError); ok {\n\t\t\treturn nil, (*RetrieveError)(rErr)\n\t\t}\n\t\treturn nil, err\n\t}\n\treturn tokenFromInternal(tk), nil\n}\n\n// RetrieveError is the error returned when the token endpoint returns a\n// non-2XX HTTP status code or populates RFC 6749's 'error' parameter.\n// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2\ntype RetrieveError struct {\n\tResponse *http.Response\n\t// Body is the body that was consumed by reading Response.Body.\n\t// It may be truncated.\n\tBody []byte\n\t// ErrorCode is RFC 6749's 'error' parameter.\n\tErrorCode string\n\t// ErrorDescription is RFC 6749's 'error_description' parameter.\n\tErrorDescription string\n\t// ErrorURI is RFC 6749's 'error_uri' parameter.\n\tErrorURI string\n}\n\nfunc (r *RetrieveError) Error() string {\n\tif r.ErrorCode != \"\" {\n\t\ts := fmt.Sprintf(\"oauth2: %q\", r.ErrorCode)\n\t\tif r.ErrorDescription != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorDescription)\n\t\t}\n\t\tif r.ErrorURI != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorURI)\n\t\t}\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"oauth2: cannot fetch token: %v\\nResponse: %s\", r.Response.Status, r.Body)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/transport.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage oauth2\n\nimport (\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"sync\"\n)\n\n// Transport is an [http.RoundTripper] that makes OAuth 2.0 HTTP requests,\n// wrapping a base [http.RoundTripper] and adding an Authorization header\n// with a token from the supplied [TokenSource].\n//\n// Transport is a low-level mechanism. Most code will use the\n// higher-level [Config.Client] method instead.\ntype Transport struct {\n\t// Source supplies the token to add to outgoing requests'\n\t// Authorization headers.\n\tSource TokenSource\n\n\t// Base is the base RoundTripper used to make HTTP requests.\n\t// If nil, http.DefaultTransport is used.\n\tBase http.RoundTripper\n}\n\n// RoundTrip authorizes and authenticates the request with an\n// access token from Transport's Source.\nfunc (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treqBodyClosed := false\n\tif req.Body != nil {\n\t\tdefer func() {\n\t\t\tif !reqBodyClosed {\n\t\t\t\treq.Body.Close()\n\t\t\t}\n\t\t}()\n\t}\n\n\tif t.Source == nil {\n\t\treturn nil, errors.New(\"oauth2: Transport's Source is nil\")\n\t}\n\ttoken, err := t.Source.Token()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treq2 := req.Clone(req.Context())\n\ttoken.SetAuthHeader(req2)\n\n\t// req.Body is assumed to be closed by the base RoundTripper.\n\treqBodyClosed = true\n\treturn t.base().RoundTrip(req2)\n}\n\nvar cancelOnce sync.Once\n\n// CancelRequest does nothing. It used to be a legacy cancellation mechanism\n// but now only logs on first use to warn that it's deprecated.\n//\n// Deprecated: use contexts for cancellation instead.\nfunc (t *Transport) CancelRequest(req *http.Request) {\n\tcancelOnce.Do(func() {\n\t\tlog.Printf(\"deprecated: golang.org/x/oauth2: Transport.CancelRequest no longer does anything; use contexts\")\n\t})\n}\n\nfunc (t *Transport) base() http.RoundTripper {\n\tif t.Base != nil {\n\t\treturn t.Base\n\t}\n\treturn http.DefaultTransport\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\nTEXT ·use(SB),NOSPLIT,$0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$4-4\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for amd64, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-64\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$8-8\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n// System call support for plan9 on arm\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/const_plan9.go",
    "content": "package plan9\n\n// Plan 9 Constants\n\n// Open modes\nconst (\n\tO_RDONLY  = 0\n\tO_WRONLY  = 1\n\tO_RDWR    = 2\n\tO_TRUNC   = 16\n\tO_CLOEXEC = 32\n\tO_EXCL    = 0x1000\n)\n\n// Rfork flags\nconst (\n\tRFNAMEG  = 1 << 0\n\tRFENVG   = 1 << 1\n\tRFFDG    = 1 << 2\n\tRFNOTEG  = 1 << 3\n\tRFPROC   = 1 << 4\n\tRFMEM    = 1 << 5\n\tRFNOWAIT = 1 << 6\n\tRFCNAMEG = 1 << 10\n\tRFCENVG  = 1 << 11\n\tRFCFDG   = 1 << 12\n\tRFREND   = 1 << 13\n\tRFNOMNT  = 1 << 14\n)\n\n// Qid.Type bits\nconst (\n\tQTDIR    = 0x80\n\tQTAPPEND = 0x40\n\tQTEXCL   = 0x20\n\tQTMOUNT  = 0x10\n\tQTAUTH   = 0x08\n\tQTTMP    = 0x04\n\tQTFILE   = 0x00\n)\n\n// Dir.Mode bits\nconst (\n\tDMDIR    = 0x80000000\n\tDMAPPEND = 0x40000000\n\tDMEXCL   = 0x20000000\n\tDMMOUNT  = 0x10000000\n\tDMAUTH   = 0x08000000\n\tDMTMP    = 0x04000000\n\tDMREAD   = 0x4\n\tDMWRITE  = 0x2\n\tDMEXEC   = 0x1\n)\n\nconst (\n\tSTATMAX    = 65535\n\tERRMAX     = 128\n\tSTATFIXLEN = 49\n)\n\n// Mount and bind flags\nconst (\n\tMREPL   = 0x0000\n\tMBEFORE = 0x0001\n\tMAFTER  = 0x0002\n\tMORDER  = 0x0003\n\tMCREATE = 0x0004\n\tMCACHE  = 0x0010\n\tMMASK   = 0x0017\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/dir_plan9.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 directory marshalling. See intro(5).\n\npackage plan9\n\nimport \"errors\"\n\nvar (\n\tErrShortStat = errors.New(\"stat buffer too short\")\n\tErrBadStat   = errors.New(\"malformed stat buffer\")\n\tErrBadName   = errors.New(\"bad character in file name\")\n)\n\n// A Qid represents a 9P server's unique identification for a file.\ntype Qid struct {\n\tPath uint64 // the file server's unique identification for the file\n\tVers uint32 // version number for given Path\n\tType uint8  // the type of the file (plan9.QTDIR for example)\n}\n\n// A Dir contains the metadata for a file.\ntype Dir struct {\n\t// system-modified data\n\tType uint16 // server type\n\tDev  uint32 // server subtype\n\n\t// file data\n\tQid    Qid    // unique id from server\n\tMode   uint32 // permissions\n\tAtime  uint32 // last read time\n\tMtime  uint32 // last write time\n\tLength int64  // file length\n\tName   string // last element of path\n\tUid    string // owner name\n\tGid    string // group name\n\tMuid   string // last modifier name\n}\n\nvar nullDir = Dir{\n\tType: ^uint16(0),\n\tDev:  ^uint32(0),\n\tQid: Qid{\n\t\tPath: ^uint64(0),\n\t\tVers: ^uint32(0),\n\t\tType: ^uint8(0),\n\t},\n\tMode:   ^uint32(0),\n\tAtime:  ^uint32(0),\n\tMtime:  ^uint32(0),\n\tLength: ^int64(0),\n}\n\n// Null assigns special \"don't touch\" values to members of d to\n// avoid modifying them during plan9.Wstat.\nfunc (d *Dir) Null() { *d = nullDir }\n\n// Marshal encodes a 9P stat message corresponding to d into b\n//\n// If there isn't enough space in b for a stat message, ErrShortStat is returned.\nfunc (d *Dir) Marshal(b []byte) (n int, err error) {\n\tn = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid)\n\tif n > len(b) {\n\t\treturn n, ErrShortStat\n\t}\n\n\tfor _, c := range d.Name {\n\t\tif c == '/' {\n\t\t\treturn n, ErrBadName\n\t\t}\n\t}\n\n\tb = pbit16(b, uint16(n)-2)\n\tb = pbit16(b, d.Type)\n\tb = pbit32(b, d.Dev)\n\tb = pbit8(b, d.Qid.Type)\n\tb = pbit32(b, d.Qid.Vers)\n\tb = pbit64(b, d.Qid.Path)\n\tb = pbit32(b, d.Mode)\n\tb = pbit32(b, d.Atime)\n\tb = pbit32(b, d.Mtime)\n\tb = pbit64(b, uint64(d.Length))\n\tb = pstring(b, d.Name)\n\tb = pstring(b, d.Uid)\n\tb = pstring(b, d.Gid)\n\tb = pstring(b, d.Muid)\n\n\treturn n, nil\n}\n\n// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir.\n//\n// If b is too small to hold a valid stat message, ErrShortStat is returned.\n//\n// If the stat message itself is invalid, ErrBadStat is returned.\nfunc UnmarshalDir(b []byte) (*Dir, error) {\n\tif len(b) < STATFIXLEN {\n\t\treturn nil, ErrShortStat\n\t}\n\tsize, buf := gbit16(b)\n\tif len(b) != int(size)+2 {\n\t\treturn nil, ErrBadStat\n\t}\n\tb = buf\n\n\tvar d Dir\n\td.Type, b = gbit16(b)\n\td.Dev, b = gbit32(b)\n\td.Qid.Type, b = gbit8(b)\n\td.Qid.Vers, b = gbit32(b)\n\td.Qid.Path, b = gbit64(b)\n\td.Mode, b = gbit32(b)\n\td.Atime, b = gbit32(b)\n\td.Mtime, b = gbit32(b)\n\n\tn, b := gbit64(b)\n\td.Length = int64(n)\n\n\tvar ok bool\n\tif d.Name, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Uid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Gid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Muid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\n\treturn &d, nil\n}\n\n// pbit8 copies the 8-bit number v to b and returns the remaining slice of b.\nfunc pbit8(b []byte, v uint8) []byte {\n\tb[0] = byte(v)\n\treturn b[1:]\n}\n\n// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit16(b []byte, v uint16) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\treturn b[2:]\n}\n\n// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit32(b []byte, v uint32) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\treturn b[4:]\n}\n\n// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit64(b []byte, v uint64) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\tb[4] = byte(v >> 32)\n\tb[5] = byte(v >> 40)\n\tb[6] = byte(v >> 48)\n\tb[7] = byte(v >> 56)\n\treturn b[8:]\n}\n\n// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and\n// returning the remaining slice of b..\nfunc pstring(b []byte, s string) []byte {\n\tb = pbit16(b, uint16(len(s)))\n\tn := copy(b, s)\n\treturn b[n:]\n}\n\n// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b.\nfunc gbit8(b []byte) (uint8, []byte) {\n\treturn uint8(b[0]), b[1:]\n}\n\n// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit16(b []byte) (uint16, []byte) {\n\treturn uint16(b[0]) | uint16(b[1])<<8, b[2:]\n}\n\n// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit32(b []byte) (uint32, []byte) {\n\treturn uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:]\n}\n\n// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit64(b []byte) (uint64, []byte) {\n\tlo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\thi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24\n\treturn uint64(lo) | uint64(hi)<<32, b[8:]\n}\n\n// gstring reads a string from b, prefixed with a 16-bit length in little-endian order.\n// It returns the string with the remaining slice of b and a boolean. If the length is\n// greater than the number of bytes in b, the boolean will be false.\nfunc gstring(b []byte) (string, []byte, bool) {\n\tn, b := gbit16(b)\n\tif int(n) > len(b) {\n\t\treturn \"\", b, false\n\t}\n\treturn string(b[:n]), b[n:], true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/env_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 environment variables.\n\npackage plan9\n\nimport (\n\t\"syscall\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/errors_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage plan9\n\nimport \"syscall\"\n\n// Constants\nconst (\n\t// Invented values to support what package os expects.\n\tO_CREAT    = 0x02000\n\tO_APPEND   = 0x00400\n\tO_NOCTTY   = 0x00000\n\tO_NONBLOCK = 0x00000\n\tO_SYNC     = 0x00000\n\tO_ASYNC    = 0x00000\n\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n)\n\n// Errors\nvar (\n\tEINVAL       = syscall.NewError(\"bad arg in system call\")\n\tENOTDIR      = syscall.NewError(\"not a directory\")\n\tEISDIR       = syscall.NewError(\"file is a directory\")\n\tENOENT       = syscall.NewError(\"file does not exist\")\n\tEEXIST       = syscall.NewError(\"file already exists\")\n\tEMFILE       = syscall.NewError(\"no free file descriptors\")\n\tEIO          = syscall.NewError(\"i/o error\")\n\tENAMETOOLONG = syscall.NewError(\"file name too long\")\n\tEINTR        = syscall.NewError(\"interrupted\")\n\tEPERM        = syscall.NewError(\"permission denied\")\n\tEBUSY        = syscall.NewError(\"no free devices\")\n\tETIMEDOUT    = syscall.NewError(\"connection timed out\")\n\tEPLAN9       = syscall.NewError(\"not supported by plan 9\")\n\n\t// The following errors do not correspond to any\n\t// Plan 9 system messages. Invented to support\n\t// what package os and others expect.\n\tEACCES       = syscall.NewError(\"access permission denied\")\n\tEAFNOSUPPORT = syscall.NewError(\"address family not supported by protocol\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# The plan9 package provides access to the raw system call\n# interface of the underlying operating system.  Porting Go to\n# a new architecture/operating system combination requires\n# some manual effort, though there are tools that automate\n# much of the process.  The auto-generated files have names\n# beginning with z.\n#\n# This script runs or (given -n) prints suggested commands to generate z files\n# for the current system.  Running those commands is not automatic.\n# This script is documentation more than anything else.\n#\n# * asm_${GOOS}_${GOARCH}.s\n#\n# This hand-written assembly file implements system call dispatch.\n# There are three entry points:\n#\n# \tfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n# \tfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);\n# \tfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n#\n# The first and second are the standard ones; they differ only in\n# how many arguments can be passed to the kernel.\n# The third is for low-level use by the ForkExec wrapper;\n# unlike the first two, it does not call into the scheduler to\n# let it know that a system call is running.\n#\n# * syscall_${GOOS}.go\n#\n# This hand-written Go file implements system calls that need\n# special handling and lists \"//sys\" comments giving prototypes\n# for ones that can be auto-generated.  Mksyscall reads those\n# comments to generate the stubs.\n#\n# * syscall_${GOOS}_${GOARCH}.go\n#\n# Same as syscall_${GOOS}.go except that it contains code specific\n# to ${GOOS} on one particular architecture.\n#\n# * types_${GOOS}.c\n#\n# This hand-written C file includes standard C headers and then\n# creates typedef or enum names beginning with a dollar sign\n# (use of $ in variable names is a gcc extension).  The hardest\n# part about preparing this file is figuring out which headers to\n# include and which symbols need to be #defined to get the\n# actual data structures that pass through to the kernel system calls.\n# Some C libraries present alternate versions for binary compatibility\n# and translate them on the way in and out of system calls, but\n# there is almost always a #define that can get the real ones.\n# See types_darwin.c and types_linux.c for examples.\n#\n# * zerror_${GOOS}_${GOARCH}.go\n#\n# This machine-generated file defines the system's error numbers,\n# error strings, and signal numbers.  The generator is \"mkerrors.sh\".\n# Usually no arguments are needed, but mkerrors.sh will pass its\n# arguments on to godefs.\n#\n# * zsyscall_${GOOS}_${GOARCH}.go\n#\n# Generated by mksyscall.pl; see syscall_${GOOS}.go above.\n#\n# * zsysnum_${GOOS}_${GOARCH}.go\n#\n# Generated by mksysnum_${GOOS}.\n#\n# * ztypes_${GOOS}_${GOARCH}.go\n#\n# Generated by godefs; see types_${GOOS}.c above.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nrun=\"sh\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nplan9_386)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,386\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_amd64)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,amd64\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_arm)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,arm\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\tplan9)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tif [ -n \"$mksyscall\" ]; then echo \"$mksyscall $syscall_goos |gofmt >zsyscall_$GOOSARCH.go\"; fi\n\t\t;;\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go |gofmt >ztypes_$GOOSARCH.go\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nCC=${CC:-gcc}\n\nuname=$(uname)\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n'\n\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package plan9\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||\n\t\t$2 == \"ICMPV6_FILTER\" ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 ~ /^(MS|MNT)_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|FD|NAME|S|PTRACE|PT)_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|NOFILE|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; DO NOT EDIT.'\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nint errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\techo -E \"\n};\n\nint signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\nintcmp(const void *a, const void *b)\n{\n\treturn *(int*)a - *(int*)b;\n}\n\nint\nmain(void)\n{\n\tint i, j, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errors = [...]string {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], intcmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i];\n\t\tif(i > 0 && errors[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strerror(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\t\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signals = [...]string {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], intcmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i];\n\t\tif(i > 0 && signals[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strsignal(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh",
    "content": "#!/bin/sh\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nCOMMAND=\"mksysnum_plan9.sh $@\"\n\ncat <<EOF\n// $COMMAND\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst(\nEOF\n\nSP='[ \t]' # space or tab\nsed \"s/^#define${SP}\\\\([A-Z0-9_][A-Z0-9_]*\\\\)${SP}${SP}*\\\\([0-9][0-9]*\\\\)/SYS_\\\\1=\\\\2/g\" \\\n\t< $1 | grep -v SYS__\n\ncat <<EOF\n)\nEOF\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/pwd_plan9.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage plan9\n\nimport \"syscall\"\n\nfunc fixwd() {\n\tsyscall.Fixwd()\n}\n\nfunc Getwd() (wd string, err error) {\n\treturn syscall.Getwd()\n}\n\nfunc Chdir(path string) error {\n\treturn syscall.Chdir(path)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && race\n\npackage plan9\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && !race\n\npackage plan9\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\npackage plan9\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\n// Package plan9 contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.ErrorString.\npackage plan9 // import \"golang.org/x/sys/plan9\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n\n// use is a no-op, but the compiler cannot see that it is.\n// Calling use(p) ensures that p is kept live until that point.\n//\n//go:noescape\nfunc use(p unsafe.Pointer)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage plan9\n\nimport (\n\t\"bytes\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// A Note is a string describing a process note.\n// It implements the os.Signal interface.\ntype Note string\n\nfunc (n Note) Signal() {}\n\nfunc (n Note) String() string {\n\treturn string(n)\n}\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n\nfunc atoi(b []byte) (n uint) {\n\tn = 0\n\tfor i := 0; i < len(b); i++ {\n\t\tn = n*10 + uint(b[i]-'0')\n\t}\n\treturn\n}\n\nfunc cstring(s []byte) string {\n\ti := bytes.IndexByte(s, 0)\n\tif i == -1 {\n\t\ti = len(s)\n\t}\n\treturn string(s[:i])\n}\n\nfunc errstr() string {\n\tvar buf [ERRMAX]byte\n\n\tRawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0)\n\n\tbuf[len(buf)-1] = 0\n\treturn cstring(buf[:])\n}\n\n// Implemented in assembly to import from runtime.\nfunc exit(code int)\n\nfunc Exit(code int) { exit(code) }\n\nfunc readnum(path string) (uint, error) {\n\tvar b [12]byte\n\n\tfd, e := Open(path, O_RDONLY)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\tdefer Close(fd)\n\n\tn, e := Pread(fd, b[:], 0)\n\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\n\tm := 0\n\tfor ; m < n && b[m] == ' '; m++ {\n\t}\n\n\treturn atoi(b[m : n-1]), nil\n}\n\nfunc Getpid() (pid int) {\n\tn, _ := readnum(\"#c/pid\")\n\treturn int(n)\n}\n\nfunc Getppid() (ppid int) {\n\tn, _ := readnum(\"#c/ppid\")\n\treturn int(n)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\treturn Pread(fd, p, -1)\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\treturn Pwrite(fd, p, -1)\n}\n\nvar ioSync int64\n\n//sys\tfd2path(fd int, buf []byte) (err error)\n\nfunc Fd2path(fd int) (path string, err error) {\n\tvar buf [512]byte\n\n\te := fd2path(fd, buf[:])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn cstring(buf[:]), nil\n}\n\n//sys\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.ErrorString(\"bad arg in system call\")\n\t}\n\tvar pp [2]int32\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string)\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, e := seek(0, fd, offset, whence)\n\n\tif newoffset == -1 {\n\t\terr = syscall.ErrorString(e)\n\t}\n\treturn\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tfd, err := Create(path, O_RDONLY, DMDIR|mode)\n\n\tif fd != -1 {\n\t\tClose(fd)\n\t}\n\n\treturn\n}\n\ntype Waitmsg struct {\n\tPid  int\n\tTime [3]uint32\n\tMsg  string\n}\n\nfunc (w Waitmsg) Exited() bool   { return true }\nfunc (w Waitmsg) Signaled() bool { return false }\n\nfunc (w Waitmsg) ExitStatus() int {\n\tif len(w.Msg) == 0 {\n\t\t// a normal exit returns no message\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n//sys\tawait(s []byte) (n int, err error)\n\nfunc Await(w *Waitmsg) (err error) {\n\tvar buf [512]byte\n\tvar f [5][]byte\n\n\tn, err := await(buf[:])\n\n\tif err != nil || w == nil {\n\t\treturn\n\t}\n\n\tnf := 0\n\tp := 0\n\tfor i := 0; i < n && nf < len(f)-1; i++ {\n\t\tif buf[i] == ' ' {\n\t\t\tf[nf] = buf[p:i]\n\t\t\tp = i + 1\n\t\t\tnf++\n\t\t}\n\t}\n\tf[nf] = buf[p:]\n\tnf++\n\n\tif nf != len(f) {\n\t\treturn syscall.ErrorString(\"invalid wait message\")\n\t}\n\tw.Pid = int(atoi(f[0]))\n\tw.Time[0] = uint32(atoi(f[1]))\n\tw.Time[1] = uint32(atoi(f[2]))\n\tw.Time[2] = uint32(atoi(f[3]))\n\tw.Msg = cstring(f[4])\n\tif w.Msg == \"''\" {\n\t\t// await() returns '' for no error\n\t\tw.Msg = \"\"\n\t}\n\treturn\n}\n\nfunc Unmount(name, old string) (err error) {\n\tfixwd()\n\toldp, err := BytePtrFromString(old)\n\tif err != nil {\n\t\treturn err\n\t}\n\toldptr := uintptr(unsafe.Pointer(oldp))\n\n\tvar r0 uintptr\n\tvar e syscall.ErrorString\n\n\t// bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted.\n\tif name == \"\" {\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0)\n\t} else {\n\t\tnamep, err := BytePtrFromString(name)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0)\n\t}\n\n\tif int32(r0) == -1 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fchdir(fd int) (err error) {\n\tpath, err := Fd2path(fd)\n\n\tif err != nil {\n\t\treturn\n\t}\n\n\treturn Chdir(path)\n}\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\tnsec += 999 // round up to microsecond\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\ttv.Sec = int32(nsec / 1e9)\n\treturn\n}\n\nfunc nsec() int64 {\n\tvar scratch int64\n\n\tr0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0)\n\t// TODO(aram): remove hack after I fix _nsec in the pc64 kernel.\n\tif r0 == 0 {\n\t\treturn scratch\n\t}\n\treturn int64(r0)\n}\n\nfunc Gettimeofday(tv *Timeval) error {\n\tnsec := nsec()\n\t*tv = NsecToTimeval(nsec)\n\treturn nil\n}\n\nfunc Getpagesize() int { return 0x1000 }\n\nfunc Getegid() (egid int) { return -1 }\nfunc Geteuid() (euid int) { return -1 }\nfunc Getgid() (gid int)   { return -1 }\nfunc Getuid() (uid int)   { return -1 }\n\nfunc Getgroups() (gids []int, err error) {\n\treturn make([]int, 0), nil\n}\n\n//sys\topen(path string, mode int) (fd int, err error)\n\nfunc Open(path string, mode int) (fd int, err error) {\n\tfixwd()\n\treturn open(path, mode)\n}\n\n//sys\tcreate(path string, mode int, perm uint32) (fd int, err error)\n\nfunc Create(path string, mode int, perm uint32) (fd int, err error) {\n\tfixwd()\n\treturn create(path, mode, perm)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\tfixwd()\n\treturn remove(path)\n}\n\n//sys\tstat(path string, edir []byte) (n int, err error)\n\nfunc Stat(path string, edir []byte) (n int, err error) {\n\tfixwd()\n\treturn stat(path, edir)\n}\n\n//sys\tbind(name string, old string, flag int) (err error)\n\nfunc Bind(name string, old string, flag int) (err error) {\n\tfixwd()\n\treturn bind(name, old, flag)\n}\n\n//sys\tmount(fd int, afd int, old string, flag int, aname string) (err error)\n\nfunc Mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tfixwd()\n\treturn mount(fd, afd, old, flag, aname)\n}\n\n//sys\twstat(path string, edir []byte) (err error)\n\nfunc Wstat(path string, edir []byte) (err error) {\n\tfixwd()\n\treturn wstat(path, edir)\n}\n\n//sys\tchdir(path string) (err error)\n//sys\tDup(oldfd int, newfd int) (fd int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tClose(fd int) (err error)\n//sys\tFstat(fd int, edir []byte) (n int, err error)\n//sys\tFwstat(fd int, edir []byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,386 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && 386\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,amd64 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && amd64\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,arm syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && arm\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsysnum_plan9.go",
    "content": "// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst (\n\tSYS_SYSR1       = 0\n\tSYS_BIND        = 2\n\tSYS_CHDIR       = 3\n\tSYS_CLOSE       = 4\n\tSYS_DUP         = 5\n\tSYS_ALARM       = 6\n\tSYS_EXEC        = 7\n\tSYS_EXITS       = 8\n\tSYS_FAUTH       = 10\n\tSYS_SEGBRK      = 12\n\tSYS_OPEN        = 14\n\tSYS_OSEEK       = 16\n\tSYS_SLEEP       = 17\n\tSYS_RFORK       = 19\n\tSYS_PIPE        = 21\n\tSYS_CREATE      = 22\n\tSYS_FD2PATH     = 23\n\tSYS_BRK_        = 24\n\tSYS_REMOVE      = 25\n\tSYS_NOTIFY      = 28\n\tSYS_NOTED       = 29\n\tSYS_SEGATTACH   = 30\n\tSYS_SEGDETACH   = 31\n\tSYS_SEGFREE     = 32\n\tSYS_SEGFLUSH    = 33\n\tSYS_RENDEZVOUS  = 34\n\tSYS_UNMOUNT     = 35\n\tSYS_SEMACQUIRE  = 37\n\tSYS_SEMRELEASE  = 38\n\tSYS_SEEK        = 39\n\tSYS_FVERSION    = 40\n\tSYS_ERRSTR      = 41\n\tSYS_STAT        = 42\n\tSYS_FSTAT       = 43\n\tSYS_WSTAT       = 44\n\tSYS_FWSTAT      = 45\n\tSYS_MOUNT       = 46\n\tSYS_AWAIT       = 47\n\tSYS_PREAD       = 50\n\tSYS_PWRITE      = 51\n\tSYS_TSEMACQUIRE = 52\n\tSYS_NSEC        = 53\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/.gitignore",
    "content": "_obj/\nunix.test\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/README.md",
    "content": "# Building `sys/unix`\n\nThe sys/unix package provides access to the raw system call interface of the\nunderlying operating system. See: https://godoc.org/golang.org/x/sys/unix\n\nPorting Go to a new architecture/OS combination or adding syscalls, types, or\nconstants to an existing architecture/OS pair requires some manual effort;\nhowever, there are tools that automate much of the process.\n\n## Build Systems\n\nThere are currently two ways we generate the necessary files. We are currently\nmigrating the build system to use containers so the builds are reproducible.\nThis is being done on an OS-by-OS basis. Please update this documentation as\ncomponents of the build system change.\n\n### Old Build System (currently for `GOOS != \"linux\"`)\n\nThe old build system generates the Go files based on the C header files\npresent on your system. This means that files\nfor a given GOOS/GOARCH pair must be generated on a system with that OS and\narchitecture. This also means that the generated code can differ from system\nto system, based on differences in the header files.\n\nTo avoid this, if you are using the old build system, only generate the Go\nfiles on an installation with unmodified header files. It is also important to\nkeep track of which version of the OS the files were generated from (ex.\nDarwin 14 vs Darwin 15). This makes it easier to track the progress of changes\nand have each OS upgrade correspond to a single change.\n\nTo build the files for your current OS and architecture, make sure GOOS and\nGOARCH are set correctly and run `mkall.sh`. This will generate the files for\nyour specific system. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go\n\n### New Build System (currently for `GOOS == \"linux\"`)\n\nThe new build system uses a Docker container to generate the go files directly\nfrom source checkouts of the kernel and various system libraries. This means\nthat on any platform that supports Docker, all the files using the new build\nsystem can be generated at once, and generated files will not change based on\nwhat the person running the scripts has installed on their computer.\n\nThe OS specific files for the new build system are located in the `${GOOS}`\ndirectory, and the build is coordinated by the `${GOOS}/mkall.go` program. When\nthe kernel or system library updates, modify the Dockerfile at\n`${GOOS}/Dockerfile` to checkout the new release of the source.\n\nTo build all the files under the new build system, you must be on an amd64/Linux\nsystem and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will\nthen generate all of the files for all of the GOOS/GOARCH pairs in the new build\nsystem. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go, docker\n\n## Component files\n\nThis section describes the various files used in the code generation process.\nIt also contains instructions on how to modify these files to add a new\narchitecture/OS or to add additional syscalls, types, or constants. Note that\nif you are using the new build system, the scripts/programs cannot be called normally.\nThey must be called from within the docker container.\n\n### asm files\n\nThe hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system\ncall dispatch. There are three entry points:\n```\n  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n```\nThe first and second are the standard ones; they differ only in how many\narguments can be passed to the kernel. The third is for low-level use by the\nForkExec wrapper. Unlike the first two, it does not call into the scheduler to\nlet it know that a system call is running.\n\nWhen porting Go to a new architecture/OS, this file must be implemented for\neach GOOS/GOARCH pair.\n\n### mksysnum\n\nMksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go`\nfor the old system). This program takes in a list of header files containing the\nsyscall number declarations and parses them to produce the corresponding list of\nGo numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated\nconstants.\n\nAdding new syscall numbers is mostly done by running the build on a sufficiently\nnew installation of the target OS (or updating the source checkouts for the\nnew build system). However, depending on the OS, you may need to update the\nparsing in mksysnum.\n\n### mksyscall.go\n\nThe `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are\nhand-written Go files which implement system calls (for unix, the specific OS,\nor the specific OS/Architecture pair respectively) that need special handling\nand list `//sys` comments giving prototypes for ones that can be generated.\n\nThe mksyscall.go program takes the `//sys` and `//sysnb` comments and converts\nthem into syscalls. This requires the name of the prototype in the comment to\nmatch a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function\nprototype can be exported (capitalized) or not.\n\nAdding a new syscall often just requires adding a new `//sys` function prototype\nwith the desired arguments and a capitalized name so it is exported. However, if\nyou want the interface to the syscall to be different, often one will make an\nunexported `//sys` prototype, and then write a custom wrapper in\n`syscall_${GOOS}.go`.\n\n### types files\n\nFor each OS, there is a hand-written Go file at `${GOOS}/types.go` (or\n`types_${GOOS}.go` on the old system). This file includes standard C headers and\ncreates Go type aliases to the corresponding C types. The file is then fed\nthrough godef to get the Go compatible definitions. Finally, the generated code\nis fed though mkpost.go to format the code correctly and remove any hidden or\nprivate identifiers. This cleaned-up code is written to\n`ztypes_${GOOS}_${GOARCH}.go`.\n\nThe hardest part about preparing this file is figuring out which headers to\ninclude and which symbols need to be `#define`d to get the actual data\nstructures that pass through to the kernel system calls. Some C libraries\npreset alternate versions for binary compatibility and translate them on the\nway in and out of system calls, but there is almost always a `#define` that can\nget the real ones.\nSee `types_darwin.go` and `linux/types.go` for examples.\n\nTo add a new type, add in the necessary include statement at the top of the\nfile (if it is not already there) and add in a type alias line. Note that if\nyour type is significantly different on different architectures, you may need\nsome `#if/#elif` macros in your include statements.\n\n### mkerrors.sh\n\nThis script is used to generate the system's various constants. This doesn't\njust include the error numbers and error strings, but also the signal numbers\nand a wide variety of miscellaneous constants. The constants come from the list\nof include files in the `includes_${uname}` variable. A regex then picks out\nthe desired `#define` statements, and generates the corresponding Go constants.\nThe error numbers and strings are generated from `#include <errno.h>`, and the\nsignal numbers and strings are generated from `#include <signal.h>`. All of\nthese constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,\n`_errors.c`, which prints out all the constants.\n\nTo add a constant, add the header that includes it to the appropriate variable.\nThen, edit the regex (if necessary) to match the desired constant. Avoid making\nthe regex too broad to avoid matching unintended constants.\n\n### internal/mkmerge\n\nThis program is used to extract duplicate const, func, and type declarations\nfrom the generated architecture-specific files listed below, and merge these\ninto a common file for each OS.\n\nThe merge is performed in the following steps:\n1. Construct the set of common code that is identical in all architecture-specific files.\n2. Write this common code to the merged file.\n3. Remove the common code from all architecture-specific files.\n\n\n## Generated files\n\n### `zerrors_${GOOS}_${GOARCH}.go`\n\nA file containing all of the system's generated error numbers, error strings,\nsignal numbers, and constants. Generated by `mkerrors.sh` (see above).\n\n### `zsyscall_${GOOS}_${GOARCH}.go`\n\nA file containing all the generated syscalls for a specific GOOS and GOARCH.\nGenerated by `mksyscall.go` (see above).\n\n### `zsysnum_${GOOS}_${GOARCH}.go`\n\nA list of numeric constants for all the syscall number of the specific GOOS\nand GOARCH. Generated by mksysnum (see above).\n\n### `ztypes_${GOOS}_${GOARCH}.go`\n\nA file containing Go types for passing into (or returning from) syscalls.\nGenerated by godefs and the types file (see above).\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/affinity_linux.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// CPU affinity functions\n\npackage unix\n\nimport (\n\t\"math/bits\"\n\t\"unsafe\"\n)\n\nconst cpuSetSize = _CPU_SETSIZE / _NCPUBITS\n\n// CPUSet represents a CPU affinity mask.\ntype CPUSet [cpuSetSize]cpuMask\n\nfunc schedAffinity(trap uintptr, pid int, set *CPUSet) error {\n\t_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))\n\tif e != 0 {\n\t\treturn errnoErr(e)\n\t}\n\treturn nil\n}\n\n// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedGetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)\n}\n\n// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedSetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)\n}\n\n// Zero clears the set s, so that it contains no CPUs.\nfunc (s *CPUSet) Zero() {\n\tclear(s[:])\n}\n\n// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity]\n// will silently ignore any invalid CPU bits in [CPUSet] so this is an\n// efficient way of resetting the CPU affinity of a process.\nfunc (s *CPUSet) Fill() {\n\tfor i := range s {\n\t\ts[i] = ^cpuMask(0)\n\t}\n}\n\nfunc cpuBitsIndex(cpu int) int {\n\treturn cpu / _NCPUBITS\n}\n\nfunc cpuBitsMask(cpu int) cpuMask {\n\treturn cpuMask(1 << (uint(cpu) % _NCPUBITS))\n}\n\n// Set adds cpu to the set s.\nfunc (s *CPUSet) Set(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] |= cpuBitsMask(cpu)\n\t}\n}\n\n// Clear removes cpu from the set s.\nfunc (s *CPUSet) Clear(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] &^= cpuBitsMask(cpu)\n\t}\n}\n\n// IsSet reports whether cpu is in the set s.\nfunc (s *CPUSet) IsSet(cpu int) bool {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\treturn s[i]&cpuBitsMask(cpu) != 0\n\t}\n\treturn false\n}\n\n// Count returns the number of CPUs in the set s.\nfunc (s *CPUSet) Count() int {\n\tc := 0\n\tfor _, b := range s {\n\t\tc += bits.OnesCount64(uint64(b))\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"syscall\"\n\ntype Signal = syscall.Signal\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_aix_ppc64.s",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go\n//\n\nTEXT ·syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·syscall6(SB)\n\nTEXT ·rawSyscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_386.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for 386 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_amd64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for AMD64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n//\n// System call support for ppc64, BSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for RISCV64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for 386, Linux\n//\n\n// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80\n// instead of the glibc-specific \"CALL 0x10(GS)\".\n#define INVOKE_SYSCALL\tINT\t$0x80\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tCALL\truntime·entersyscall(SB)\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tRET\n\nTEXT ·socketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·socketcall(SB)\n\nTEXT ·rawsocketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·rawsocketcall(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for AMD64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tRET\n\nTEXT ·gettimeofday(SB),NOSPLIT,$0-16\n\tJMP\tsyscall·gettimeofday(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for arm, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tBL\truntime·entersyscall(SB)\n\tMOVW\ttrap+0(FP), R7\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tMOVW\t$0, R3\n\tMOVW\t$0, R4\n\tMOVW\t$0, R5\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ttrap+0(FP), R7\t// syscall entry\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tRET\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tB\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm64.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && arm64 && gc\n\n#include \"textflag.h\"\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\t// r1\n\tMOVD\tR1, r2+40(FP)\t// r2\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\n\tMOVD\tR1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_loong64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && loong64 && gc\n\n#include \"textflag.h\"\n\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mips64x.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mipsx.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP syscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·Syscall6(SB)\n\nTEXT ·Syscall9(SB),NOSPLIT,$0-52\n\tJMP syscall·Syscall9(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tJAL\truntime·entersyscall(SB)\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\tR0, R7\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\t// r1\n\tMOVW\tR3, r2+20(FP)\t// r2\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP syscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\n\tMOVW\tR3, r2+20(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_riscv64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for linux/riscv64.\n//\n// Where available, just jump to package syscall's implementation of\n// these functions.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\t// r1\n\tMOV\tA1, r2+40(FP)\t// r2\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\n\tMOV\tA1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_s390x.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && s390x && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for s390x, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System call support for mips64, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_solaris_amd64.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go\n//\n\nTEXT ·sysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·sysvicall6(SB)\n\nTEXT ·rawSysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSysvicall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_zos_s390x.s",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n#define PSALAA            1208(R0)\n#define GTAB64(x)           80(x)\n#define LCA64(x)            88(x)\n#define SAVSTACK_ASYNC(x)  336(x) // in the LCA\n#define CAA(x)               8(x)\n#define CEECAATHDID(x)     976(x) // in the CAA\n#define EDCHPXV(x)        1016(x) // in the CAA\n#define GOCB(x)           1104(x) // in the CAA\n\n// SS_*, where x=SAVSTACK_ASYNC\n#define SS_LE(x)             0(x)\n#define SS_GO(x)             8(x)\n#define SS_ERRNO(x)         16(x)\n#define SS_ERRNOJR(x)       20(x)\n\n// Function Descriptor Offsets\n#define __errno  0x156*16\n#define __err2ad 0x16C*16\n\n// Call Instructions\n#define LE_CALL    BYTE $0x0D; BYTE $0x76 // BL R7, R6\n#define SVC_LOAD   BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD\n#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE\n\nDATA zosLibVec<>(SB)/8, $0\nGLOBL zosLibVec<>(SB), NOPTR, $8\n\nTEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R8\n\tMOVD EDCHPXV(R8), R8\n\tMOVD R8, zosLibVec<>(SB)\n\tRET\n\nTEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVD zosLibVec<>(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·clearErrno(SB), NOSPLIT, $0-0\n\tBL   addrerrno<>(SB)\n\tMOVD $0, 0(R3)\n\tRET\n\n// Returns the address of errno in R3.\nTEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get __errno FuncDesc.\n\tMOVD CAA(R8), R9\n\tMOVD EDCHPXV(R9), R9\n\tADD  $(__errno), R9\n\tLMG  0(R9), R5, R6\n\n\t// Switch to saved LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R4\n\tMOVD $0, 0(R9)\n\n\t// Call __errno function.\n\tLE_CALL\n\tNOPH\n\n\t// Switch back to Go stack.\n\tXOR  R0, R0    // Restore R0 to $0.\n\tMOVD R4, 0(R9) // Save stack pointer.\n\tRET\n\n// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nTEXT ·svcCall(SB), NOSPLIT, $0\n\tBL   runtime·save_g(SB)     // Save g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD R15, 0(R9)\n\n\tMOVD argv+8(FP), R1   // Move function arguments into registers\n\tMOVD dsa+16(FP), g\n\tMOVD fnptr+0(FP), R15\n\n\tBYTE $0x0D // Branch to function\n\tBYTE $0xEF\n\n\tBL   runtime·load_g(SB)     // Restore g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R15\n\n\tRET\n\n// func svcLoad(name *byte) unsafe.Pointer\nTEXT ·svcLoad(SB), NOSPLIT, $0\n\tMOVD R15, R2         // Save go stack pointer\n\tMOVD name+0(FP), R0  // Move SVC args into registers\n\tMOVD $0x80000000, R1\n\tMOVD $0, R15\n\tSVC_LOAD\n\tMOVW R15, R3         // Save return code from SVC\n\tMOVD R2, R15         // Restore go stack pointer\n\tCMP  R3, $0          // Check SVC return code\n\tBNE  error\n\n\tMOVD $-2, R3       // Reset last bit of entry point to zero\n\tAND  R0, R3\n\tMOVD R3, ret+8(FP) // Return entry point returned by SVC\n\tCMP  R0, R3        // Check if last bit of entry point was set\n\tBNE  done\n\n\tMOVD R15, R2 // Save go stack pointer\n\tMOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08)\n\tSVC_DELETE\n\tMOVD R2, R15 // Restore go stack pointer\n\nerror:\n\tMOVD $0, ret+8(FP) // Return 0 on failure\n\ndone:\n\tXOR R0, R0 // Reset r0 to 0\n\tRET\n\n// func svcUnload(name *byte, fnptr unsafe.Pointer) int64\nTEXT ·svcUnload(SB), NOSPLIT, $0\n\tMOVD R15, R2          // Save go stack pointer\n\tMOVD name+0(FP), R0   // Move SVC args into registers\n\tMOVD fnptr+8(FP), R15\n\tSVC_DELETE\n\tXOR  R0, R0           // Reset r0 to 0\n\tMOVD R15, R1          // Save SVC return code\n\tMOVD R2, R15          // Restore go stack pointer\n\tMOVD R1, ret+16(FP)   // Return SVC return code\n\tRET\n\n// func gettid() uint64\nTEXT ·gettid(SB), NOSPLIT, $0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get CEECAATHDID\n\tMOVD CAA(R8), R9\n\tMOVD CEECAATHDID(R9), R9\n\tMOVD R9, ret+0(FP)\n\n\tRET\n\n//\n// Call LE function, if the return is -1\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $-1            // compare result to -1\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// Call LE function, if the return is 0\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $0             // compare result to 0\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\tXOR   R2, R2\n\tMOVWZ R2, (R3)            // clear errno2\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// function to test if a pointer can be safely dereferenced (content read)\n// return 0 for succces\n//\nTEXT ·ptrtest(SB), NOSPLIT, $0-16\n\tMOVD arg+0(FP), R10 // test pointer in R10\n\n\t// set up R2 to point to CEECAADMC\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\n\t// set up R5 to point to the \"shunt\" path which set 1 to R3 (failure)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi  3,1\n\n\t// if r3 is not zero (failed) then branch to finish\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc   b'0111',lbl2\n\n\t// stomic store shunt address in R5 into CEECAADMC\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   5,0(2)\n\n\t// now try reading from the test pointer in R10, if it fails it branches to the \"lghi\" instruction above\n\tBYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    9,0(10)\n\n\t// finish here, restore 0 into CEECAADMC\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R3, ret+8(FP)                                                     // result in R3\n\tRET\n\n//\n// function to test if a untptr can be loaded from a pointer\n// return 1: the 8-byte content\n//        2: 0 for success, 1 for failure\n//\n// func safeload(ptr uintptr) ( value uintptr, error uintptr)\nTEXT ·safeload(SB), NOSPLIT, $0-24\n\tMOVD ptr+0(FP), R10                                                    // test pointer in R10\n\tMOVD $0x0, R6\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33                         // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04                         // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01                         // lghi  3,1\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33                         // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08                         // brc   b'0111',lbl2\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2)\n\tBYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    6,0(10)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R6, value+8(FP)                                                   // result in R6\n\tMOVD R3, error+16(FP)                                                  // error in R3\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/auxv.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:linkname runtime_getAuxv runtime.getAuxv\nfunc runtime_getAuxv() []uintptr\n\n// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs.\n// The returned slice is always a fresh copy, owned by the caller.\n// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed,\n// which happens in some locked-down environments and build modes.\nfunc Auxv() ([][2]uintptr, error) {\n\tvec := runtime_getAuxv()\n\tvecLen := len(vec)\n\n\tif vecLen == 0 {\n\t\treturn nil, syscall.ENOENT\n\t}\n\n\tif vecLen%2 != 0 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\n\tresult := make([]uintptr, vecLen)\n\tcopy(result, vec)\n\treturn unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/auxv_unsupported.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport \"syscall\"\n\nfunc Auxv() ([][2]uintptr, error) {\n\treturn nil, syscall.ENOTSUP\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bluetooth_linux.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Bluetooth sockets and messages\n\npackage unix\n\n// Bluetooth Protocols\nconst (\n\tBTPROTO_L2CAP  = 0\n\tBTPROTO_HCI    = 1\n\tBTPROTO_SCO    = 2\n\tBTPROTO_RFCOMM = 3\n\tBTPROTO_BNEP   = 4\n\tBTPROTO_CMTP   = 5\n\tBTPROTO_HIDP   = 6\n\tBTPROTO_AVDTP  = 7\n)\n\nconst (\n\tHCI_CHANNEL_RAW     = 0\n\tHCI_CHANNEL_USER    = 1\n\tHCI_CHANNEL_MONITOR = 2\n\tHCI_CHANNEL_CONTROL = 3\n\tHCI_CHANNEL_LOGGING = 4\n)\n\n// Socketoption Level\nconst (\n\tSOL_BLUETOOTH = 0x112\n\tSOL_HCI       = 0x0\n\tSOL_L2CAP     = 0x6\n\tSOL_RFCOMM    = 0x12\n\tSOL_SCO       = 0x11\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\n//go:noescape\nfunc A2e([]byte)\n\n//go:noescape\nfunc E2a([]byte)\n\nconst (\n\tBPX4STA = 192  // stat\n\tBPX4FST = 104  // fstat\n\tBPX4LST = 132  // lstat\n\tBPX4OPN = 156  // open\n\tBPX4CLO = 72   // close\n\tBPX4CHR = 500  // chattr\n\tBPX4FCR = 504  // fchattr\n\tBPX4LCR = 1180 // lchattr\n\tBPX4CTW = 492  // cond_timed_wait\n\tBPX4GTH = 1056 // __getthent\n\tBPX4PTQ = 412  // pthread_quiesc\n\tBPX4PTR = 320  // ptrace\n)\n\nconst (\n\t//options\n\t//byte1\n\tBPX_OPNFHIGH = 0x80\n\t//byte2\n\tBPX_OPNFEXEC = 0x80\n\t//byte3\n\tBPX_O_NOLARGEFILE = 0x08\n\tBPX_O_LARGEFILE   = 0x04\n\tBPX_O_ASYNCSIG    = 0x02\n\tBPX_O_SYNC        = 0x01\n\t//byte4\n\tBPX_O_CREXCL   = 0xc0\n\tBPX_O_CREAT    = 0x80\n\tBPX_O_EXCL     = 0x40\n\tBPX_O_NOCTTY   = 0x20\n\tBPX_O_TRUNC    = 0x10\n\tBPX_O_APPEND   = 0x08\n\tBPX_O_NONBLOCK = 0x04\n\tBPX_FNDELAY    = 0x04\n\tBPX_O_RDWR     = 0x03\n\tBPX_O_RDONLY   = 0x02\n\tBPX_O_WRONLY   = 0x01\n\tBPX_O_ACCMODE  = 0x03\n\tBPX_O_GETFL    = 0x0f\n\n\t//mode\n\t// byte1 (file type)\n\tBPX_FT_DIR      = 1\n\tBPX_FT_CHARSPEC = 2\n\tBPX_FT_REGFILE  = 3\n\tBPX_FT_FIFO     = 4\n\tBPX_FT_SYMLINK  = 5\n\tBPX_FT_SOCKET   = 6\n\t//byte3\n\tBPX_S_ISUID  = 0x08\n\tBPX_S_ISGID  = 0x04\n\tBPX_S_ISVTX  = 0x02\n\tBPX_S_IRWXU1 = 0x01\n\tBPX_S_IRUSR  = 0x01\n\t//byte4\n\tBPX_S_IRWXU2 = 0xc0\n\tBPX_S_IWUSR  = 0x80\n\tBPX_S_IXUSR  = 0x40\n\tBPX_S_IRWXG  = 0x38\n\tBPX_S_IRGRP  = 0x20\n\tBPX_S_IWGRP  = 0x10\n\tBPX_S_IXGRP  = 0x08\n\tBPX_S_IRWXOX = 0x07\n\tBPX_S_IROTH  = 0x04\n\tBPX_S_IWOTH  = 0x02\n\tBPX_S_IXOTH  = 0x01\n\n\tCW_INTRPT  = 1\n\tCW_CONDVAR = 32\n\tCW_TIMEOUT = 64\n\n\tPGTHA_NEXT        = 2\n\tPGTHA_CURRENT     = 1\n\tPGTHA_FIRST       = 0\n\tPGTHA_LAST        = 3\n\tPGTHA_PROCESS     = 0x80\n\tPGTHA_CONTTY      = 0x40\n\tPGTHA_PATH        = 0x20\n\tPGTHA_COMMAND     = 0x10\n\tPGTHA_FILEDATA    = 0x08\n\tPGTHA_THREAD      = 0x04\n\tPGTHA_PTAG        = 0x02\n\tPGTHA_COMMANDLONG = 0x01\n\tPGTHA_THREADFAST  = 0x80\n\tPGTHA_FILEPATH    = 0x40\n\tPGTHA_THDSIGMASK  = 0x20\n\t// thread quiece mode\n\tQUIESCE_TERM       int32 = 1\n\tQUIESCE_FORCE      int32 = 2\n\tQUIESCE_QUERY      int32 = 3\n\tQUIESCE_FREEZE     int32 = 4\n\tQUIESCE_UNFREEZE   int32 = 5\n\tFREEZE_THIS_THREAD int32 = 6\n\tFREEZE_EXIT        int32 = 8\n\tQUIESCE_SRB        int32 = 9\n)\n\ntype Pgtha struct {\n\tPid        uint32 // 0\n\tTid0       uint32 // 4\n\tTid1       uint32\n\tAccesspid  byte    // C\n\tAccesstid  byte    // D\n\tAccessasid uint16  // E\n\tLoginname  [8]byte // 10\n\tFlag1      byte    // 18\n\tFlag1b2    byte    // 19\n}\n\ntype Bpxystat_t struct { // DSECT BPXYSTAT\n\tSt_id           [4]uint8  // 0\n\tSt_length       uint16    // 0x4\n\tSt_version      uint16    // 0x6\n\tSt_mode         uint32    // 0x8\n\tSt_ino          uint32    // 0xc\n\tSt_dev          uint32    // 0x10\n\tSt_nlink        uint32    // 0x14\n\tSt_uid          uint32    // 0x18\n\tSt_gid          uint32    // 0x1c\n\tSt_size         uint64    // 0x20\n\tSt_atime        uint32    // 0x28\n\tSt_mtime        uint32    // 0x2c\n\tSt_ctime        uint32    // 0x30\n\tSt_rdev         uint32    // 0x34\n\tSt_auditoraudit uint32    // 0x38\n\tSt_useraudit    uint32    // 0x3c\n\tSt_blksize      uint32    // 0x40\n\tSt_createtime   uint32    // 0x44\n\tSt_auditid      [4]uint32 // 0x48\n\tSt_res01        uint32    // 0x58\n\tFt_ccsid        uint16    // 0x5c\n\tFt_flags        uint16    // 0x5e\n\tSt_res01a       [2]uint32 // 0x60\n\tSt_res02        uint32    // 0x68\n\tSt_blocks       uint32    // 0x6c\n\tSt_opaque       [3]uint8  // 0x70\n\tSt_visible      uint8     // 0x73\n\tSt_reftime      uint32    // 0x74\n\tSt_fid          uint64    // 0x78\n\tSt_filefmt      uint8     // 0x80\n\tSt_fspflag2     uint8     // 0x81\n\tSt_res03        [2]uint8  // 0x82\n\tSt_ctimemsec    uint32    // 0x84\n\tSt_seclabel     [8]uint8  // 0x88\n\tSt_res04        [4]uint8  // 0x90\n\t// end of version 1\n\t_               uint32    // 0x94\n\tSt_atime64      uint64    // 0x98\n\tSt_mtime64      uint64    // 0xa0\n\tSt_ctime64      uint64    // 0xa8\n\tSt_createtime64 uint64    // 0xb0\n\tSt_reftime64    uint64    // 0xb8\n\t_               uint64    // 0xc0\n\tSt_res05        [16]uint8 // 0xc8\n\t// end of version 2\n}\n\ntype BpxFilestatus struct {\n\tOflag1 byte\n\tOflag2 byte\n\tOflag3 byte\n\tOflag4 byte\n}\n\ntype BpxMode struct {\n\tFtype byte\n\tMode1 byte\n\tMode2 byte\n\tMode3 byte\n}\n\n// Thr attribute structure for extended attributes\ntype Bpxyatt_t struct { // DSECT BPXYATT\n\tAtt_id           [4]uint8\n\tAtt_version      uint16\n\tAtt_res01        [2]uint8\n\tAtt_setflags1    uint8\n\tAtt_setflags2    uint8\n\tAtt_setflags3    uint8\n\tAtt_setflags4    uint8\n\tAtt_mode         uint32\n\tAtt_uid          uint32\n\tAtt_gid          uint32\n\tAtt_opaquemask   [3]uint8\n\tAtt_visblmaskres uint8\n\tAtt_opaque       [3]uint8\n\tAtt_visibleres   uint8\n\tAtt_size_h       uint32\n\tAtt_size_l       uint32\n\tAtt_atime        uint32\n\tAtt_mtime        uint32\n\tAtt_auditoraudit uint32\n\tAtt_useraudit    uint32\n\tAtt_ctime        uint32\n\tAtt_reftime      uint32\n\t// end of version 1\n\tAtt_filefmt uint8\n\tAtt_res02   [3]uint8\n\tAtt_filetag uint32\n\tAtt_res03   [8]uint8\n\t// end of version 2\n\tAtt_atime64   uint64\n\tAtt_mtime64   uint64\n\tAtt_ctime64   uint64\n\tAtt_reftime64 uint64\n\tAtt_seclabel  [8]uint8\n\tAtt_ver3res02 [8]uint8\n\t// end of version 3\n}\n\nfunc BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(options)\n\t\tparms[3] = unsafe.Pointer(mode)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4OPN)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxClose(fd int32) (rv int32, rc int32, rn int32) {\n\tvar parms [4]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&rv)\n\tparms[2] = unsafe.Pointer(&rc)\n\tparms[3] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CLO)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\tst.St_version = 2\n\tstat_sz := uint32(unsafe.Sizeof(*st))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&stat_sz)\n\tparms[2] = unsafe.Pointer(st)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FST)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4STA)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4LST)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CHR)\n\treturn rv, rc, rn\n}\n\nfunc BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4LCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&attr_sz)\n\tparms[2] = unsafe.Pointer(attr)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sec)\n\tparms[1] = unsafe.Pointer(&nsec)\n\tparms[2] = unsafe.Pointer(&events)\n\tparms[3] = unsafe.Pointer(secrem)\n\tparms[4] = unsafe.Pointer(nsecrem)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CTW)\n\treturn rv, rc, rn\n}\nfunc BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [7]unsafe.Pointer\n\tinlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is \"packed\" and must be 26-byte\n\tparms[0] = unsafe.Pointer(&inlen)\n\tparms[1] = unsafe.Pointer(&in)\n\tparms[2] = unsafe.Pointer(outlen)\n\tparms[3] = unsafe.Pointer(&out)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4GTH)\n\treturn rv, rc, rn\n}\nfunc ZosJobname() (jobname string, err error) {\n\tvar pgtha Pgtha\n\tpgtha.Pid = uint32(Getpid())\n\tpgtha.Accesspid = PGTHA_CURRENT\n\tpgtha.Flag1 = PGTHA_PROCESS\n\tvar out [256]byte\n\tvar outlen uint32\n\toutlen = 256\n\trv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0]))\n\tif rv == 0 {\n\t\tgthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic\n\t\tix := bytes.Index(out[:], gthc)\n\t\tif ix == -1 {\n\t\t\terr = fmt.Errorf(\"BPX4GTH: gthc return data not found\")\n\t\t\treturn\n\t\t}\n\t\tjn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80\n\t\tE2a(jn)\n\t\tjobname = string(bytes.TrimRight(jn, \" \"))\n\n\t} else {\n\t\terr = fmt.Errorf(\"BPX4GTH: rc=%d errno=%d reason=code=0x%x\", rv, rc, rn)\n\t}\n\treturn\n}\nfunc Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) {\n\tvar userdata [8]byte\n\tvar parms [5]unsafe.Pointer\n\tcopy(userdata[:], data+\"        \")\n\tA2e(userdata[:])\n\tparms[0] = unsafe.Pointer(&code)\n\tparms[1] = unsafe.Pointer(&userdata[0])\n\tparms[2] = unsafe.Pointer(&rv)\n\tparms[3] = unsafe.Pointer(&rc)\n\tparms[4] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTQ)\n\treturn rv, rc, rn\n}\n\nconst (\n\tPT_TRACE_ME             = 0  // Debug this process\n\tPT_READ_I               = 1  // Read a full word\n\tPT_READ_D               = 2  // Read a full word\n\tPT_READ_U               = 3  // Read control info\n\tPT_WRITE_I              = 4  //Write a full word\n\tPT_WRITE_D              = 5  //Write a full word\n\tPT_CONTINUE             = 7  //Continue the process\n\tPT_KILL                 = 8  //Terminate the process\n\tPT_READ_GPR             = 11 // Read GPR, CR, PSW\n\tPT_READ_FPR             = 12 // Read FPR\n\tPT_READ_VR              = 13 // Read VR\n\tPT_WRITE_GPR            = 14 // Write GPR, CR, PSW\n\tPT_WRITE_FPR            = 15 // Write FPR\n\tPT_WRITE_VR             = 16 // Write VR\n\tPT_READ_BLOCK           = 17 // Read storage\n\tPT_WRITE_BLOCK          = 19 // Write storage\n\tPT_READ_GPRH            = 20 // Read GPRH\n\tPT_WRITE_GPRH           = 21 // Write GPRH\n\tPT_REGHSET              = 22 // Read all GPRHs\n\tPT_ATTACH               = 30 // Attach to a process\n\tPT_DETACH               = 31 // Detach from a process\n\tPT_REGSET               = 32 // Read all GPRs\n\tPT_REATTACH             = 33 // Reattach to a process\n\tPT_LDINFO               = 34 // Read loader info\n\tPT_MULTI                = 35 // Multi process mode\n\tPT_LD64INFO             = 36 // RMODE64 Info Area\n\tPT_BLOCKREQ             = 40 // Block request\n\tPT_THREAD_INFO          = 60 // Read thread info\n\tPT_THREAD_MODIFY        = 61\n\tPT_THREAD_READ_FOCUS    = 62\n\tPT_THREAD_WRITE_FOCUS   = 63\n\tPT_THREAD_HOLD          = 64\n\tPT_THREAD_SIGNAL        = 65\n\tPT_EXPLAIN              = 66\n\tPT_EVENTS               = 67\n\tPT_THREAD_INFO_EXTENDED = 68\n\tPT_REATTACH2            = 71\n\tPT_CAPTURE              = 72\n\tPT_UNCAPTURE            = 73\n\tPT_GET_THREAD_TCB       = 74\n\tPT_GET_ALET             = 75\n\tPT_SWAPIN               = 76\n\tPT_EXTENDED_EVENT       = 98\n\tPT_RECOVER              = 99  // Debug a program check\n\tPT_GPR0                 = 0   // General purpose register 0\n\tPT_GPR1                 = 1   // General purpose register 1\n\tPT_GPR2                 = 2   // General purpose register 2\n\tPT_GPR3                 = 3   // General purpose register 3\n\tPT_GPR4                 = 4   // General purpose register 4\n\tPT_GPR5                 = 5   // General purpose register 5\n\tPT_GPR6                 = 6   // General purpose register 6\n\tPT_GPR7                 = 7   // General purpose register 7\n\tPT_GPR8                 = 8   // General purpose register 8\n\tPT_GPR9                 = 9   // General purpose register 9\n\tPT_GPR10                = 10  // General purpose register 10\n\tPT_GPR11                = 11  // General purpose register 11\n\tPT_GPR12                = 12  // General purpose register 12\n\tPT_GPR13                = 13  // General purpose register 13\n\tPT_GPR14                = 14  // General purpose register 14\n\tPT_GPR15                = 15  // General purpose register 15\n\tPT_FPR0                 = 16  // Floating point register 0\n\tPT_FPR1                 = 17  // Floating point register 1\n\tPT_FPR2                 = 18  // Floating point register 2\n\tPT_FPR3                 = 19  // Floating point register 3\n\tPT_FPR4                 = 20  // Floating point register 4\n\tPT_FPR5                 = 21  // Floating point register 5\n\tPT_FPR6                 = 22  // Floating point register 6\n\tPT_FPR7                 = 23  // Floating point register 7\n\tPT_FPR8                 = 24  // Floating point register 8\n\tPT_FPR9                 = 25  // Floating point register 9\n\tPT_FPR10                = 26  // Floating point register 10\n\tPT_FPR11                = 27  // Floating point register 11\n\tPT_FPR12                = 28  // Floating point register 12\n\tPT_FPR13                = 29  // Floating point register 13\n\tPT_FPR14                = 30  // Floating point register 14\n\tPT_FPR15                = 31  // Floating point register 15\n\tPT_FPC                  = 32  // Floating point control register\n\tPT_PSW                  = 40  // PSW\n\tPT_PSW0                 = 40  // Left half of the PSW\n\tPT_PSW1                 = 41  // Right half of the PSW\n\tPT_CR0                  = 42  // Control register 0\n\tPT_CR1                  = 43  // Control register 1\n\tPT_CR2                  = 44  // Control register 2\n\tPT_CR3                  = 45  // Control register 3\n\tPT_CR4                  = 46  // Control register 4\n\tPT_CR5                  = 47  // Control register 5\n\tPT_CR6                  = 48  // Control register 6\n\tPT_CR7                  = 49  // Control register 7\n\tPT_CR8                  = 50  // Control register 8\n\tPT_CR9                  = 51  // Control register 9\n\tPT_CR10                 = 52  // Control register 10\n\tPT_CR11                 = 53  // Control register 11\n\tPT_CR12                 = 54  // Control register 12\n\tPT_CR13                 = 55  // Control register 13\n\tPT_CR14                 = 56  // Control register 14\n\tPT_CR15                 = 57  // Control register 15\n\tPT_GPRH0                = 58  // GP High register 0\n\tPT_GPRH1                = 59  // GP High register 1\n\tPT_GPRH2                = 60  // GP High register 2\n\tPT_GPRH3                = 61  // GP High register 3\n\tPT_GPRH4                = 62  // GP High register 4\n\tPT_GPRH5                = 63  // GP High register 5\n\tPT_GPRH6                = 64  // GP High register 6\n\tPT_GPRH7                = 65  // GP High register 7\n\tPT_GPRH8                = 66  // GP High register 8\n\tPT_GPRH9                = 67  // GP High register 9\n\tPT_GPRH10               = 68  // GP High register 10\n\tPT_GPRH11               = 69  // GP High register 11\n\tPT_GPRH12               = 70  // GP High register 12\n\tPT_GPRH13               = 71  // GP High register 13\n\tPT_GPRH14               = 72  // GP High register 14\n\tPT_GPRH15               = 73  // GP High register 15\n\tPT_VR0                  = 74  // Vector register 0\n\tPT_VR1                  = 75  // Vector register 1\n\tPT_VR2                  = 76  // Vector register 2\n\tPT_VR3                  = 77  // Vector register 3\n\tPT_VR4                  = 78  // Vector register 4\n\tPT_VR5                  = 79  // Vector register 5\n\tPT_VR6                  = 80  // Vector register 6\n\tPT_VR7                  = 81  // Vector register 7\n\tPT_VR8                  = 82  // Vector register 8\n\tPT_VR9                  = 83  // Vector register 9\n\tPT_VR10                 = 84  // Vector register 10\n\tPT_VR11                 = 85  // Vector register 11\n\tPT_VR12                 = 86  // Vector register 12\n\tPT_VR13                 = 87  // Vector register 13\n\tPT_VR14                 = 88  // Vector register 14\n\tPT_VR15                 = 89  // Vector register 15\n\tPT_VR16                 = 90  // Vector register 16\n\tPT_VR17                 = 91  // Vector register 17\n\tPT_VR18                 = 92  // Vector register 18\n\tPT_VR19                 = 93  // Vector register 19\n\tPT_VR20                 = 94  // Vector register 20\n\tPT_VR21                 = 95  // Vector register 21\n\tPT_VR22                 = 96  // Vector register 22\n\tPT_VR23                 = 97  // Vector register 23\n\tPT_VR24                 = 98  // Vector register 24\n\tPT_VR25                 = 99  // Vector register 25\n\tPT_VR26                 = 100 // Vector register 26\n\tPT_VR27                 = 101 // Vector register 27\n\tPT_VR28                 = 102 // Vector register 28\n\tPT_VR29                 = 103 // Vector register 29\n\tPT_VR30                 = 104 // Vector register 30\n\tPT_VR31                 = 105 // Vector register 31\n\tPT_PSWG                 = 106 // PSWG\n\tPT_PSWG0                = 106 // Bytes 0-3\n\tPT_PSWG1                = 107 // Bytes 4-7\n\tPT_PSWG2                = 108 // Bytes 8-11 (IA high word)\n\tPT_PSWG3                = 109 // Bytes 12-15 (IA low word)\n)\n\nfunc Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&request)\n\tparms[1] = unsafe.Pointer(&pid)\n\tparms[2] = unsafe.Pointer(&addr)\n\tparms[3] = unsafe.Pointer(&data)\n\tparms[4] = unsafe.Pointer(&buffer)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTR)\n\treturn rv, rc, rn\n}\n\nfunc copyU8(val uint8, dest []uint8) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU8Arr(src, dest []uint8) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU16(val uint16, dest []uint16) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32(val uint32, dest []uint32) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32Arr(src, dest []uint32) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU64(val uint64, dest []uint64) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"go_asm.h\"\n#include \"textflag.h\"\n\n// function to call USS assembly language services\n//\n// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm\n//\n//   arg1 unsafe.Pointer array that ressembles an OS PLIST\n//\n//   arg2 function offset as in\n//       doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm\n//\n// func bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\nTEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0\n\tMOVD  plist_base+0(FP), R1  // r1 points to plist\n\tMOVD  bpx_offset+24(FP), R2 // r2 offset to BPX vector table\n\tMOVD  R14, R7               // save r14\n\tMOVD  R15, R8               // save r15\n\tMOVWZ 16(R0), R9\n\tMOVWZ 544(R9), R9\n\tMOVWZ 24(R9), R9            // call vector in r9\n\tADD   R2, R9                // add offset to vector table\n\tMOVWZ (R9), R9              // r9 points to entry point\n\tBYTE  $0x0D                 // BL R14,R9 --> basr r14,r9\n\tBYTE  $0xE9                 // clobbers 0,1,14,15\n\tMOVD  R8, R15               // restore 15\n\tJMP   R7                    // return via saved return address\n\n//   func A2e(arr [] byte)\n//   code page conversion from  819 to 1047\nTEXT ·A2e(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// ASCII -> EBCDIC conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f\n\tBYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26\n\tBYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b\n\tBYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d\n\tBYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e\n\tBYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61\n\tBYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3\n\tBYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7\n\tBYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e\n\tBYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f\n\tBYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3\n\tBYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7\n\tBYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2\n\tBYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6\n\tBYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2\n\tBYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6\n\tBYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad\n\tBYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d\n\tBYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87\n\tBYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92\n\tBYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96\n\tBYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2\n\tBYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6\n\tBYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0\n\tBYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07\n\tBYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23\n\tBYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17\n\tBYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b\n\tBYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b\n\tBYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08\n\tBYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b\n\tBYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff\n\tBYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1\n\tBYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5\n\tBYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a\n\tBYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc\n\tBYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa\n\tBYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3\n\tBYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b\n\tBYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab\n\tBYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66\n\tBYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68\n\tBYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73\n\tBYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77\n\tBYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee\n\tBYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf\n\tBYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59\n\tBYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46\n\tBYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48\n\tBYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53\n\tBYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57\n\tBYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce\n\tBYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1\n\tBYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n\n//   func e2a(arr [] byte)\n//   code page conversion from  1047 to 819\nTEXT ·E2a(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// EBCDIC -> ASCII conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f\n\tBYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87\n\tBYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b\n\tBYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b\n\tBYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07\n\tBYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93\n\tBYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04\n\tBYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b\n\tBYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a\n\tBYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4\n\tBYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5\n\tBYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e\n\tBYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c\n\tBYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb\n\tBYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef\n\tBYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24\n\tBYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e\n\tBYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4\n\tBYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5\n\tBYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c\n\tBYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f\n\tBYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb\n\tBYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf\n\tBYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23\n\tBYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22\n\tBYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63\n\tBYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67\n\tBYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb\n\tBYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1\n\tBYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c\n\tBYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70\n\tBYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba\n\tBYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4\n\tBYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74\n\tBYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78\n\tBYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf\n\tBYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae\n\tBYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7\n\tBYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc\n\tBYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8\n\tBYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7\n\tBYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43\n\tBYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47\n\tBYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4\n\tBYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5\n\tBYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c\n\tBYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50\n\tBYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff\n\tBYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54\n\tBYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58\n\tBYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4\n\tBYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5\n\tBYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37\n\tBYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/cap_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c\n\nconst (\n\t// This is the version of CapRights this package understands. See C implementation for parallels.\n\tcapRightsGoVersion = CAP_RIGHTS_VERSION_00\n\tcapArSizeMin       = CAP_RIGHTS_VERSION_00 + 2\n\tcapArSizeMax       = capRightsGoVersion + 2\n)\n\nvar (\n\tbit2idx = []int{\n\t\t-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,\n\t\t4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t}\n)\n\nfunc capidxbit(right uint64) int {\n\treturn int((right >> 57) & 0x1f)\n}\n\nfunc rightToIndex(right uint64) (int, error) {\n\tidx := capidxbit(right)\n\tif idx < 0 || idx >= len(bit2idx) {\n\t\treturn -2, fmt.Errorf(\"index for right 0x%x out of range\", right)\n\t}\n\treturn bit2idx[idx], nil\n}\n\nfunc caprver(right uint64) int {\n\treturn int(right >> 62)\n}\n\nfunc capver(rights *CapRights) int {\n\treturn caprver(rights.Rights[0])\n}\n\nfunc caparsize(rights *CapRights) int {\n\treturn capver(rights) + 2\n}\n\n// CapRightsSet sets the permissions in setrights in rights.\nfunc CapRightsSet(rights *CapRights, setrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] |= right\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsClear clears the permissions in clearrights from rights.\nfunc CapRightsClear(rights *CapRights, clearrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vclear()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range clearrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsIsSet checks whether all the permissions in setrights are present in rights.\nfunc CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {\n\t// This is essentially a copy of cap_rights_is_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn false, fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn false, errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn false, errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn false, errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn false, errors.New(\"index mismatch\")\n\t\t}\n\t\tif (rights.Rights[i] & right) != right {\n\t\t\treturn false, nil\n\t\t}\n\t}\n\n\treturn true, nil\n}\n\nfunc capright(idx uint64, bit uint64) uint64 {\n\treturn ((1 << (57 + idx)) | bit)\n}\n\n// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.\n// See man cap_rights_init(3) and rights(4).\nfunc CapRightsInit(rights []uint64) (*CapRights, error) {\n\tvar r CapRights\n\tr.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)\n\tr.Rights[1] = capright(1, 0)\n\n\terr := CapRightsSet(&r, rights)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &r, nil\n}\n\n// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.\n// The capability rights on fd can never be increased by CapRightsLimit.\n// See man cap_rights_limit(2) and rights(4).\nfunc CapRightsLimit(fd uintptr, rights *CapRights) error {\n\treturn capRightsLimit(int(fd), rights)\n}\n\n// CapRightsGet returns a CapRights structure containing the operations permitted on fd.\n// See man cap_rights_get(3) and rights(4).\nfunc CapRightsGet(fd uintptr) (*CapRights, error) {\n\tr, err := CapRightsInit(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = capRightsGet(capRightsGoVersion, int(fd), r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn r, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/constants.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nconst (\n\tR_OK = 0x4\n\tW_OK = 0x2\n\tX_OK = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0xffff)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn uint64(((major) << 16) | (minor))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x3fffffff00000000) >> 32)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32((dev & 0x00000000ffffffff) >> 0)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tvar DEVNO64 uint64\n\tDEVNO64 = 0x8000000000000000\n\treturn ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_darwin.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Darwin's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a Darwin device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 24) & 0xff)\n}\n\n// Minor returns the minor component of a Darwin device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffffff)\n}\n\n// Mkdev returns a Darwin device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 24) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_dragonfly.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Dragonfly's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a DragonFlyBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a DragonFlyBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a DragonFlyBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in FreeBSD's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a FreeBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a FreeBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a FreeBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_linux.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by the Linux kernel and glibc.\n//\n// The information below is extracted and adapted from bits/sysmacros.h in the\n// glibc sources:\n//\n// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's\n// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major\n// number and m is a hex digit of the minor number. This is backward compatible\n// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also\n// backward compatible with the Linux kernel, which for some architectures uses\n// 32-bit dev_t, encoded as mmmM MMmm.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\tmajor := uint32((dev & 0x00000000000fff00) >> 8)\n\tmajor |= uint32((dev & 0xfffff00000000000) >> 32)\n\treturn major\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x00000000000000ff) >> 0)\n\tminor |= uint32((dev & 0x00000ffffff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) & 0x00000fff) << 8\n\tdev |= (uint64(major) & 0xfffff000) << 32\n\tdev |= (uint64(minor) & 0x000000ff) << 0\n\tdev |= (uint64(minor) & 0xffffff00) << 12\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_netbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in NetBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a NetBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x000fff00) >> 8)\n}\n\n// Minor returns the minor component of a NetBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xfff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a NetBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x000fff00\n\tdev |= (uint64(minor) << 12) & 0xfff00000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_openbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in OpenBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of an OpenBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x0000ff00) >> 8)\n}\n\n// Minor returns the minor component of an OpenBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xffff0000) >> 8)\n\treturn minor\n}\n\n// Mkdev returns an OpenBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x0000ff00\n\tdev |= (uint64(minor) << 8) & 0xffff0000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by z/OS.\n//\n// The information below is extracted and adapted from <sys/stat.h> macros.\n\npackage unix\n\n// Major returns the major component of a z/OS device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0x0000FFFF)\n}\n\n// Minor returns the minor component of a z/OS device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0x0000FFFF)\n}\n\n// Mkdev returns a z/OS device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 16) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dirent.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// readInt returns the size-bytes unsigned integer in native byte order at offset off.\nfunc readInt(b []byte, off, size uintptr) (u uint64, ok bool) {\n\tif len(b) < int(off+size) {\n\t\treturn 0, false\n\t}\n\tif isBigEndian {\n\t\treturn readIntBE(b[off:], size), true\n\t}\n\treturn readIntLE(b[off:], size), true\n}\n\nfunc readIntBE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[1]) | uint64(b[0])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |\n\t\t\tuint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\nfunc readIntLE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\n// ParseDirent parses up to max directory entries in buf,\n// appending the names to names. It returns the number of\n// bytes consumed from buf, the number of entries added\n// to names, and the new names slice.\nfunc ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {\n\toriglen := len(buf)\n\tcount = 0\n\tfor max != 0 && len(buf) > 0 {\n\t\treclen, ok := direntReclen(buf)\n\t\tif !ok || reclen > uint64(len(buf)) {\n\t\t\treturn origlen, count, names\n\t\t}\n\t\trec := buf[:reclen]\n\t\tbuf = buf[reclen:]\n\t\tino, ok := direntIno(rec)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tif ino == 0 { // File absent in directory.\n\t\t\tcontinue\n\t\t}\n\t\tconst namoff = uint64(unsafe.Offsetof(Dirent{}.Name))\n\t\tnamlen, ok := direntNamlen(rec)\n\t\tif !ok || namoff+namlen > uint64(len(rec)) {\n\t\t\tbreak\n\t\t}\n\t\tname := rec[namoff : namoff+namlen]\n\t\tfor i, c := range name {\n\t\t\tif c == 0 {\n\t\t\t\tname = name[:i]\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Check for useless names before allocating a string.\n\t\tif string(name) == \".\" || string(name) == \"..\" {\n\t\t\tcontinue\n\t\t}\n\t\tmax--\n\t\tcount++\n\t\tnames = append(names, string(name))\n\t}\n\treturn origlen - len(buf), count, names\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_big.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64\n\npackage unix\n\nconst isBigEndian = true\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_little.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh\n\npackage unix\n\nconst isBigEndian = false\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/env_unix.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Unix environment variables.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build dragonfly || freebsd || linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\n// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux\n// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.\nvar fcntl64Syscall uintptr = SYS_FCNTL\n\nfunc fcntl(fd int, cmd, arg int) (int, error) {\n\tvalptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))\n\tif errno == 0 {\n\t\treturn nil\n\t}\n\treturn errno\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_darwin.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))\n\treturn err\n}\n\n// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.\nfunc FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc)\n\npackage unix\n\nfunc init() {\n\t// On 32-bit Linux systems, the fcntl syscall that matches Go's\n\t// Flock_t type is SYS_FCNTL64, not SYS_FCNTL.\n\tfcntl64Syscall = SYS_FCNTL64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fdset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\n// Set adds fd to the set fds.\nfunc (fds *FdSet) Set(fd int) {\n\tfds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// Clear removes fd from the set fds.\nfunc (fds *FdSet) Clear(fd int) {\n\tfds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// IsSet returns whether fd is in the set fds.\nfunc (fds *FdSet) IsSet(fd int) bool {\n\treturn fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0\n}\n\n// Zero clears the set fds.\nfunc (fds *FdSet) Zero() {\n\tclear(fds.Bits[:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\npackage unix\n\nimport \"syscall\"\n\n// We can't use the gc-syntax .s files for gccgo. On the plus side\n// much of the functionality can be written directly in Go.\n\nfunc realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)\n\nfunc realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)\n\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tsyscall.Entersyscall()\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0\n}\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0\n}\n\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_c.c",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\n#include <errno.h>\n#include <stdint.h>\n#include <unistd.h>\n\n#define _STRINGIFY2_(x) #x\n#define _STRINGIFY_(x) _STRINGIFY2_(x)\n#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)\n\n// Call syscall from C code because the gccgo support for calling from\n// Go to C does not support varargs functions.\n\nstruct ret {\n\tuintptr_t r;\n\tuintptr_t err;\n};\n\nstruct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscall\");\n\nstruct ret\ngccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\tstruct ret r;\n\n\terrno = 0;\n\tr.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n\tr.err = errno;\n\treturn r;\n}\n\nuintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscallNoError\");\n\nuintptr_t\ngccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\treturn syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && linux && amd64\n\npackage unix\n\nimport \"syscall\"\n\n//extern gettimeofday\nfunc realGettimeofday(*Timeval, *byte) int32\n\nfunc gettimeofday(tv *Timeval) (err syscall.Errno) {\n\tr := realGettimeofday(tv, nil)\n\tif r < 0 {\n\t\treturn syscall.GetErrno()\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ifreq_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// Helpers for dealing with ifreq since it contains a union and thus requires a\n// lot of unsafe.Pointer casts to use properly.\n\n// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq\n// contains an interface name and a union of arbitrary data which can be\n// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq\n// function.\n//\n// Use the Name method to access the stored interface name. The union data\n// fields can be get and set using the following methods:\n//   - Uint16/SetUint16: flags\n//   - Uint32/SetUint32: ifindex, metric, mtu\ntype Ifreq struct{ raw ifreq }\n\n// NewIfreq creates an Ifreq with the input network interface name after\n// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required)\n// bytes.\nfunc NewIfreq(name string) (*Ifreq, error) {\n\t// Leave room for terminating NULL byte.\n\tif len(name) >= IFNAMSIZ {\n\t\treturn nil, EINVAL\n\t}\n\n\tvar ifr ifreq\n\tcopy(ifr.Ifrn[:], name)\n\n\treturn &Ifreq{raw: ifr}, nil\n}\n\n// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc.\n\n// Name returns the interface name associated with the Ifreq.\nfunc (ifr *Ifreq) Name() string {\n\treturn ByteSliceToString(ifr.raw.Ifrn[:])\n}\n\n// According to netdevice(7), only AF_INET addresses are returned for numerous\n// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port\n// field and other data is always empty.\n\n// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C\n// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not\n// AF_INET, an error is returned.\nfunc (ifr *Ifreq) Inet4Addr() ([]byte, error) {\n\traw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]))\n\tif raw.Family != AF_INET {\n\t\t// Cannot safely interpret raw.Addr bytes as an IPv4 address.\n\t\treturn nil, EINVAL\n\t}\n\n\treturn raw.Addr[:], nil\n}\n\n// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an\n// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length\n// or an error will be returned.\nfunc (ifr *Ifreq) SetInet4Addr(v []byte) error {\n\tif len(v) != 4 {\n\t\treturn EINVAL\n\t}\n\n\tvar addr [4]byte\n\tcopy(addr[:], v)\n\n\tifr.clear()\n\t*(*RawSockaddrInet4)(\n\t\tunsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]),\n\t) = RawSockaddrInet4{\n\t\t// Always set IP family as ioctls would require it anyway.\n\t\tFamily: AF_INET,\n\t\tAddr:   addr,\n\t}\n\n\treturn nil\n}\n\n// Uint16 returns the Ifreq union data as a C short/Go uint16 value.\nfunc (ifr *Ifreq) Uint16() uint16 {\n\treturn *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0]))\n}\n\n// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint16(v uint16) {\n\tifr.clear()\n\t*(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v\n}\n\n// Uint32 returns the Ifreq union data as a C int/Go uint32 value.\nfunc (ifr *Ifreq) Uint32() uint32 {\n\treturn *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0]))\n}\n\n// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint32(v uint32) {\n\tifr.clear()\n\t*(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v\n}\n\n// clear zeroes the ifreq's union field to prevent trailing garbage data from\n// being sent to the kernel if an ifreq is reused.\nfunc (ifr *Ifreq) clear() {\n\tclear(ifr.raw.Ifru[:])\n}\n\n// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as\n// IoctlGetEthtoolDrvinfo which use these APIs under the hood.\n\n// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData,\n// use the Ifreq.withData method.\ntype ifreqData struct {\n\tname [IFNAMSIZ]byte\n\t// A type separate from ifreq is required in order to comply with the\n\t// unsafe.Pointer rules since the \"pointer-ness\" of data would not be\n\t// preserved if it were cast into the byte array of a raw ifreq.\n\tdata unsafe.Pointer\n\t// Pad to the same size as ifreq.\n\t_ [len(ifreq{}.Ifru) - SizeofPtr]byte\n}\n\n// withData produces an ifreqData with the pointer p set for ioctls which require\n// arbitrary pointer data.\nfunc (ifr Ifreq) withData(p unsafe.Pointer) ifreqData {\n\treturn ifreqData{\n\t\tname: ifr.raw.Ifrn,\n\t\tdata: p,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// IoctlRetInt performs an ioctl operation specified by req on a device\n// associated with opened file descriptor fd, and returns a non-negative\n// integer that is returned by the ioctl syscall.\nfunc IoctlRetInt(fd int, req uint) (int, error) {\n\tret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc IoctlGetUint32(fd int, req uint) (uint32, error) {\n\tvar value uint32\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetRTCTime(fd int) (*RTCTime, error) {\n\tvar value RTCTime\n\terr := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCTime(fd int, value *RTCTime) error {\n\treturn ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value))\n}\n\nfunc IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) {\n\tvar value RTCWkAlrm\n\terr := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error {\n\treturn ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value))\n}\n\n// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network\n// device specified by ifname.\nfunc IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC\n// association for the network device specified by ifname.\nfunc IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetHwTstamp retrieves the hardware timestamping configuration\n// for the network device specified by ifname.\nfunc IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := HwTstampConfig{}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd)\n\treturn &value, err\n}\n\n// IoctlSetHwTstamp updates the hardware timestamping configuration for\n// the network device specified by ifname.\nfunc IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn err\n\t}\n\tifrd := ifr.withData(unsafe.Pointer(cfg))\n\treturn ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd)\n}\n\n// FdToClockID derives the clock ID from the file descriptor number\n// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is\n// suitable for system calls like ClockGettime.\nfunc FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) }\n\n// IoctlPtpClockGetcaps returns the description of a given PTP device.\nfunc IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) {\n\tvar value PtpClockCaps\n\terr := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetPrecise returns a description of the clock\n// offset compared to the system clock.\nfunc IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) {\n\tvar value PtpSysOffsetPrecise\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetExtended returns an extended description of the\n// clock offset compared to the system clock. The samples parameter\n// specifies the desired number of measurements.\nfunc IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) {\n\tvalue := PtpSysOffsetExtended{Samples: uint32(samples)}\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinGetfunc returns the configuration of the specified\n// I/O pin on given PTP device.\nfunc IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) {\n\tvalue := PtpPinDesc{Index: uint32(index)}\n\terr := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinSetfunc updates configuration of the specified PTP\n// I/O pin.\nfunc IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error {\n\treturn ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd))\n}\n\n// IoctlPtpPeroutRequest configures the periodic output mode of the\n// PTP I/O pins.\nfunc IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error {\n\treturn ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r))\n}\n\n// IoctlPtpExttsRequest configures the external timestamping mode\n// of the PTP I/O pins.\nfunc IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error {\n\treturn ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r))\n}\n\n// IoctlGetWatchdogInfo fetches information about a watchdog device from the\n// Linux watchdog API. For more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) {\n\tvar value WatchdogInfo\n\terr := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For\n// more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlWatchdogKeepalive(fd int) error {\n\t// arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr.\n\treturn ioctl(fd, WDIOC_KEEPALIVE, 0)\n}\n\n// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the\n// range of data conveyed in value to the file associated with the file\n// descriptor destFd. See the ioctl_ficlonerange(2) man page for details.\nfunc IoctlFileCloneRange(destFd int, value *FileCloneRange) error {\n\treturn ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value))\n}\n\n// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file\n// associated with the file description srcFd to the file associated with the\n// file descriptor destFd. See the ioctl_ficlone(2) man page for details.\nfunc IoctlFileClone(destFd, srcFd int) error {\n\treturn ioctl(destFd, FICLONE, uintptr(srcFd))\n}\n\ntype FileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tReserved1  uint16\n\tReserved2  uint32\n\tInfo       []FileDedupeRangeInfo\n}\n\ntype FileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\n// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the\n// range of data conveyed in value from the file associated with the file\n// descriptor srcFd to the value.Info destinations. See the\n// ioctl_fideduperange(2) man page for details.\nfunc IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error {\n\tbuf := make([]byte, SizeofRawFileDedupeRange+\n\t\tlen(value.Info)*SizeofRawFileDedupeRangeInfo)\n\trawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0]))\n\trawrange.Src_offset = value.Src_offset\n\trawrange.Src_length = value.Src_length\n\trawrange.Dest_count = uint16(len(value.Info))\n\trawrange.Reserved1 = value.Reserved1\n\trawrange.Reserved2 = value.Reserved2\n\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\trawinfo.Dest_fd = value.Info[i].Dest_fd\n\t\trawinfo.Dest_offset = value.Info[i].Dest_offset\n\t\trawinfo.Bytes_deduped = value.Info[i].Bytes_deduped\n\t\trawinfo.Status = value.Info[i].Status\n\t\trawinfo.Reserved = value.Info[i].Reserved\n\t}\n\n\terr := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0]))\n\n\t// Output\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\tvalue.Info[i].Dest_fd = rawinfo.Dest_fd\n\t\tvalue.Info[i].Dest_offset = rawinfo.Dest_offset\n\t\tvalue.Info[i].Bytes_deduped = rawinfo.Bytes_deduped\n\t\tvalue.Info[i].Status = rawinfo.Status\n\t\tvalue.Info[i].Reserved = rawinfo.Reserved\n\t}\n\n\treturn err\n}\n\nfunc IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error {\n\treturn ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value))\n}\n\nfunc IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) {\n\tvar value HIDRawDevInfo\n\terr := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlHIDGetRawName(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWNAME_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawPhys(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWPHYS_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawUniq(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWUNIQ_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\n// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or\n// output. See the netdevice(7) man page for details.\nfunc IoctlIfreq(fd int, req uint, value *Ifreq) error {\n\t// It is possible we will add more fields to *Ifreq itself later to prevent\n\t// misuse, so pass the raw *ifreq directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&value.raw))\n}\n\n// TODO(mdlayher): export if and when IfreqData is exported.\n\n// ioctlIfreqData performs an ioctl using an ifreqData structure for input\n// and/or output. See the netdevice(7) man page for details.\nfunc ioctlIfreqData(fd int, req uint, value *ifreqData) error {\n\t// The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are\n\t// identical so pass *IfreqData directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an\n// existing KCM socket, returning a structure containing the file descriptor of\n// the new socket.\nfunc IoctlKCMClone(fd int) (*KCMClone, error) {\n\tvar info KCMClone\n\tif err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &info, nil\n}\n\n// IoctlKCMAttach attaches a TCP socket and associated BPF program file\n// descriptor to a multiplexor.\nfunc IoctlKCMAttach(fd int, info KCMAttach) error {\n\treturn ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor.\nfunc IoctlKCMUnattach(fd int, info KCMUnattach) error {\n\treturn ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlLoopGetStatus64 gets the status of the loop device associated with the\n// file descriptor fd using the LOOP_GET_STATUS64 operation.\nfunc IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) {\n\tvar value LoopInfo64\n\tif err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &value, nil\n}\n\n// IoctlLoopSetStatus64 sets the status of the loop device associated with the\n// file descriptor fd using the LOOP_SET_STATUS64 operation.\nfunc IoctlLoopSetStatus64(fd int, value *LoopInfo64) error {\n\treturn ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value))\n}\n\n// IoctlLoopConfigure configures all loop device parameters in a single step\nfunc IoctlLoopConfigure(fd int, value *LoopConfig) error {\n\treturn ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_signed.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || solaris\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req int, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_unsigned.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req uint, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req uint, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req uint, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req uint, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req uint) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req uint) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req uint) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCSETS, TCSETSW, or TCSETSF\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\tif (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) {\n\t\treturn ENOSYS\n\t}\n\terr := Tcsetattr(fd, int(req), value)\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlGetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCGETS\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\tif req != TCGETS {\n\t\treturn &value, ENOSYS\n\t}\n\terr := Tcgetattr(fd, &value)\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# This script runs or (given -n) prints suggested commands to generate files for\n# the Architecture/OS specified by the GOARCH and GOOS environment variables.\n# See README.md for more information about how the build system works.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nmkasm=\nrun=\"sh\"\ncmd=\"\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\t# Run the command line that appears in the first line\n\t\t# of the generated file to regenerate it.\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tcmd=\"echo\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\nif [[ \"$GOOS\" = \"linux\" ]]; then\n\t# Use the Docker-based build system\n\t# Files generated through docker (use $cmd so you can Ctl-C the build or run)\n\tset -e\n\t$cmd docker build --tag generate:$GOOS $GOOS\n\t$cmd docker run --interactive --tty --volume $(cd -- \"$(dirname -- \"$0\")/..\" && pwd):/build generate:$GOOS\n\texit\nfi\n\nGOOSARCH_in=syscall_$GOOSARCH.go\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\naix_ppc)\n\tmkerrors=\"$mkerrors -maix32\"\n\tmksyscall=\"go run mksyscall_aix_ppc.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\naix_ppc64)\n\tmkerrors=\"$mkerrors -maix64\"\n\tmksyscall=\"go run mksyscall_aix_ppc64.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\ndarwin_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndarwin_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndragonfly_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -dragonfly\"\n\tmksysnum=\"go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -arm\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_riscv64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd -arm\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_386)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_amd64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_arm)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -arm -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_arm64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_mips64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_ppc64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_riscv64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nsolaris_amd64)\n\tmksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nillumos_amd64)\n        mksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\t*)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tcase \"$GOOS\" in\n\t\tdarwin | dragonfly | freebsd | netbsd | openbsd)\n\t\t\tsyscall_goos=\"syscall_bsd.go $syscall_goos\"\n\t\t\t;;\n\t\tesac\n\t\tif [ -n \"$mksyscall\" ]; then\n\t\t\tif [ \"$GOOSARCH\" == \"aix_ppc64\" ]; then\n\t\t\t\t# aix/ppc64 script generates files instead of writing to stdin.\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_\"$GOOSARCH\"_gccgo.go && gofmt -w zsyscall_\"$GOOSARCH\"_gc.go \" ;\n\t\t\telif [ \"$GOOS\" == \"illumos\" ]; then\n\t\t\t        # illumos code generation requires a --illumos switch\n\t\t\t        echo \"$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go\";\n\t\t\t        # illumos implies solaris, so solaris code generation is also required\n\t\t\t\techo \"$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go\";\n\t\t\telse\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go\";\n\t\t\tfi\n\t\tfi\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go\"; fi\n\tif [ -n \"$mkasm\" ]; then echo \"$mkasm $GOOS $GOARCH\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nif test -z \"$GOARCH\" -o -z \"$GOOS\"; then\n\techo 1>&2 \"GOARCH or GOOS not defined in environment\"\n\texit 1\nfi\n\n# Check that we are using the new build system if we should\nif [[ \"$GOOS\" = \"linux\" ]] && [[ \"$GOLANG_SYS_BUILD\" != \"docker\" ]]; then\n\techo 1>&2 \"In the Docker based build system, mkerrors should not be called directly.\"\n\techo 1>&2 \"See README.md\"\n\texit 1\nfi\n\nif [[ \"$GOOS\" = \"aix\" ]]; then\n\tCC=${CC:-gcc}\nelse\n\tCC=${CC:-cc}\nfi\n\nif [[ \"$GOOS\" = \"solaris\" ]]; then\n\t# Assumes GNU versions of utilities in PATH.\n\texport PATH=/usr/gnu/bin:$PATH\nfi\n\nuname=$(uname)\n\nincludes_AIX='\n#include <net/if.h>\n#include <net/netopt.h>\n#include <netinet/ip_mroute.h>\n#include <sys/protosw.h>\n#include <sys/stropts.h>\n#include <sys/mman.h>\n#include <sys/poll.h>\n#include <sys/select.h>\n#include <sys/termio.h>\n#include <termios.h>\n#include <fcntl.h>\n\n#define AF_LOCAL AF_UNIX\n'\n\nincludes_Darwin='\n#define _DARWIN_C_SOURCE\n#define KERNEL 1\n#define _DARWIN_USE_64_BIT_INODE\n#define __APPLE_USE_RFC_3542\n#include <stdint.h>\n#include <sys/stdio.h>\n#include <sys/attr.h>\n#include <sys/clonefile.h>\n#include <sys/kern_control.h>\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/ptrace.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/stat.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/sys_domain.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/utsname.h>\n#include <sys/wait.h>\n#include <sys/xattr.h>\n#include <sys/vsock.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <termios.h>\n\n// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk.\n#define TIOCREMOTE 0x80047469\n'\n\nincludes_DragonFly='\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_clone.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <net/ip_mroute/ip_mroute.h>\n'\n\nincludes_FreeBSD='\n#include <sys/capsicum.h>\n#include <sys/param.h>\n#include <sys/types.h>\n#include <sys/disk.h>\n#include <sys/event.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/ptrace.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <sys/extattr.h>\n\n#if __FreeBSD__ >= 10\n#define IFT_CARP\t0xf8\t// IFT_CARP is deprecated in FreeBSD 10\n#undef SIOCAIFADDR\n#define SIOCAIFADDR\t_IOW(105, 26, struct oifaliasreq)\t// ifaliasreq contains if_data\n#undef SIOCSIFPHYADDR\n#define SIOCSIFPHYADDR\t_IOW(105, 70, struct oifaliasreq)\t// ifaliasreq contains if_data\n#endif\n'\n\nincludes_Linux='\n#define _LARGEFILE_SOURCE\n#define _LARGEFILE64_SOURCE\n#ifndef __LP64__\n#define _FILE_OFFSET_BITS 64\n#endif\n#define _GNU_SOURCE\n\n// See the description in unix/linux/types.go\n#if defined(__ARM_EABI__) || \\\n\t(defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \\\n\t(defined(__powerpc__) && (!defined(__powerpc64__)))\n# ifdef   _TIME_BITS\n#  undef  _TIME_BITS\n# endif\n# define  _TIME_BITS 32\n#endif\n\n// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of\n// these structures. We just include them copied from <bits/termios.h>.\n#if defined(__powerpc__)\nstruct sgttyb {\n        char    sg_ispeed;\n        char    sg_ospeed;\n        char    sg_erase;\n        char    sg_kill;\n        short   sg_flags;\n};\n\nstruct tchars {\n        char    t_intrc;\n        char    t_quitc;\n        char    t_startc;\n        char    t_stopc;\n        char    t_eofc;\n        char    t_brkc;\n};\n\nstruct ltchars {\n        char    t_suspc;\n        char    t_dsuspc;\n        char    t_rprntc;\n        char    t_flushc;\n        char    t_werasc;\n        char    t_lnextc;\n};\n#endif\n\n#include <bits/sockaddr.h>\n#include <sys/epoll.h>\n#include <sys/eventfd.h>\n#include <sys/inotify.h>\n#include <sys/ioctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/prctl.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#include <sys/time.h>\n#include <sys/select.h>\n#include <sys/signalfd.h>\n#include <sys/socket.h>\n#include <sys/timerfd.h>\n#include <sys/uio.h>\n#include <sys/xattr.h>\n#include <netinet/udp.h>\n#include <linux/audit.h>\n#include <linux/bpf.h>\n#include <linux/can.h>\n#include <linux/can/error.h>\n#include <linux/can/netlink.h>\n#include <linux/can/raw.h>\n#include <linux/capability.h>\n#include <linux/cryptouser.h>\n#include <linux/devlink.h>\n#include <linux/dm-ioctl.h>\n#include <linux/elf.h>\n#include <linux/errqueue.h>\n#include <linux/ethtool_netlink.h>\n#include <linux/falloc.h>\n#include <linux/fanotify.h>\n#include <linux/fib_rules.h>\n#include <linux/filter.h>\n#include <linux/fs.h>\n#include <linux/fscrypt.h>\n#include <linux/fsverity.h>\n#include <linux/genetlink.h>\n#include <linux/hdreg.h>\n#include <linux/hidraw.h>\n#include <linux/if.h>\n#include <linux/if_addr.h>\n#include <linux/if_alg.h>\n#include <linux/if_arp.h>\n#include <linux/if_ether.h>\n#include <linux/if_ppp.h>\n#include <linux/if_tun.h>\n#include <linux/if_packet.h>\n#include <linux/if_xdp.h>\n#include <linux/input.h>\n#include <linux/kcm.h>\n#include <linux/kexec.h>\n#include <linux/keyctl.h>\n#include <linux/landlock.h>\n#include <linux/loop.h>\n#include <linux/lwtunnel.h>\n#include <linux/magic.h>\n#include <linux/mei.h>\n#include <linux/memfd.h>\n#include <linux/module.h>\n#include <linux/mount.h>\n#include <linux/netfilter/nfnetlink.h>\n#include <linux/netfilter/nf_tables.h>\n#include <linux/netlink.h>\n#include <linux/net_namespace.h>\n#include <linux/nfc.h>\n#include <linux/nsfs.h>\n#include <linux/perf_event.h>\n#include <linux/pps.h>\n#include <linux/ptp_clock.h>\n#include <linux/ptrace.h>\n#include <linux/random.h>\n#include <linux/reboot.h>\n#include <linux/rtc.h>\n#include <linux/rtnetlink.h>\n#include <linux/sched.h>\n#include <linux/seccomp.h>\n#include <linux/serial.h>\n#include <linux/sock_diag.h>\n#include <linux/sockios.h>\n#include <linux/taskstats.h>\n#include <linux/tipc.h>\n#include <linux/vm_sockets.h>\n#include <linux/wait.h>\n#include <linux/watchdog.h>\n#include <linux/wireguard.h>\n\n#include <mtd/ubi-user.h>\n#include <mtd/mtd-user.h>\n#include <net/route.h>\n\n#if defined(__sparc__)\n// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the\n// definition in glibc. As only the error constants are needed here, include the\n// generic termibits.h (which is included by termbits.h on sparc).\n#include <asm-generic/termbits.h>\n#else\n#include <asm/termbits.h>\n#endif\n\n#ifndef PTRACE_GETREGS\n#define PTRACE_GETREGS\t0xc\n#endif\n\n#ifndef PTRACE_SETREGS\n#define PTRACE_SETREGS\t0xd\n#endif\n\n#ifdef SOL_BLUETOOTH\n// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h\n// but it is already in bluetooth_linux.go\n#undef SOL_BLUETOOTH\n#endif\n\n// Certain constants are missing from the fs/crypto UAPI\n#define FS_KEY_DESC_PREFIX              \"fscrypt:\"\n#define FS_KEY_DESC_PREFIX_SIZE         8\n#define FS_MAX_KEY_SIZE                 64\n\n// The code generator produces -0x1 for (~0), but an unsigned value is necessary\n// for the tipc_subscr timeout __u32 field.\n#undef TIPC_WAIT_FOREVER\n#define TIPC_WAIT_FOREVER 0xffffffff\n\n// Copied from linux/netfilter/nf_nat.h\n// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h\n// and netinet/in.h.\n#define NF_NAT_RANGE_MAP_IPS\t\t\t(1 << 0)\n#define NF_NAT_RANGE_PROTO_SPECIFIED\t\t(1 << 1)\n#define NF_NAT_RANGE_PROTO_RANDOM\t\t(1 << 2)\n#define NF_NAT_RANGE_PERSISTENT\t\t\t(1 << 3)\n#define NF_NAT_RANGE_PROTO_RANDOM_FULLY\t\t(1 << 4)\n#define NF_NAT_RANGE_PROTO_OFFSET\t\t(1 << 5)\n#define NF_NAT_RANGE_NETMAP\t\t\t(1 << 6)\n#define NF_NAT_RANGE_PROTO_RANDOM_ALL\t\t\\\n\t(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)\n#define NF_NAT_RANGE_MASK\t\t\t\t\t\\\n\t(NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \\\n\t NF_NAT_RANGE_NETMAP)\n\n// Copied from linux/hid.h.\n// Keep in sync with the size of the referenced fields.\n#define _HIDIOCGRAWNAME_LEN\t128 // sizeof_field(struct hid_device, name)\n#define _HIDIOCGRAWPHYS_LEN\t64  // sizeof_field(struct hid_device, phys)\n#define _HIDIOCGRAWUNIQ_LEN\t64  // sizeof_field(struct hid_device, uniq)\n\n#define _HIDIOCGRAWNAME\t\tHIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN)\n#define _HIDIOCGRAWPHYS\t\tHIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)\n#define _HIDIOCGRAWUNIQ\t\tHIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)\n\n// Renamed in v6.16, commit c6d732c38f93 (\"net: ethtool: remove duplicate defines for family info\")\n#define ETHTOOL_FAMILY_NAME\tETHTOOL_GENL_NAME\n#define ETHTOOL_FAMILY_VERSION\tETHTOOL_GENL_VERSION\n'\n\nincludes_NetBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/extattr.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n\n// Needed since <sys/param.h> refers to it...\n#define schedppq 1\n'\n\nincludes_OpenBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/select.h>\n#include <sys/sched.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/unistd.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/if_var.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n#include <net/if_bridge.h>\n\n// We keep some constants not supported in OpenBSD 5.5 and beyond for\n// the promise of compatibility.\n#define EMUL_ENABLED\t\t0x1\n#define EMUL_NATIVE\t\t0x2\n#define IPV6_FAITH\t\t0x1d\n#define IPV6_OPTIONS\t\t0x1\n#define IPV6_RTHDR_STRICT\t0x1\n#define IPV6_SOCKOPT_RESERVED1\t0x3\n#define SIOCGIFGENERIC\t\t0xc020693a\n#define SIOCSIFGENERIC\t\t0x80206939\n#define WALTSIG\t\t\t0x4\n'\n\nincludes_SunOS='\n#include <limits.h>\n#include <sys/types.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/stream.h>\n#include <sys/mman.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/mkdev.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_arp.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/icmp6.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <termios.h>\n'\n\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n#include <time.h>\n'\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package unix\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo 'import \"syscall\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\t\t$2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc.\n\n\t\t$2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||\n\t\t$2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}\n\n\t\t$2 !~ /^ECCAPBITS/ &&\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 !~ /^EVIOC/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^(OLD|NEW)DEV$/ ||\n\t\t$2 == \"BOTHER\" ||\n\t\t$2 ~ /^CI?BAUD(EX)?$/ ||\n\t\t$2 == \"IBSHIFT\" ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 !~ \"X86_CR3_PCID_NOFLUSH\" &&\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 == \"XCASE\" ||\n\t\t$2 == \"ALTWERASE\" ||\n\t\t$2 == \"NOKERNINFO\" ||\n\t\t$2 == \"NFDBITS\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||\n\t\t$2 ~ /^(DT|EI|ELF|EV|NN|NT|PF|SHF|SHN|SHT|STB|STT|VER)_/ ||\n\t\t$2 ~ /^O?XTABS$/ ||\n\t\t$2 ~ /^TC[IO](ON|OFF)$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^KCM/ ||\n\t\t$2 ~ /^LANDLOCK_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^LO_(KEY|NAME)_SIZE$/ ||\n\t\t$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||\n\t\t$2 == \"LOOP_CONFIGURE\" ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ ||\n\t\t$2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ ||\n\t\t$2 ~ /^NFC_.*_(MAX)?SIZE$/ ||\n\t\t$2 ~ /^PTP_/ ||\n\t\t$2 ~ /^RAW_PAYLOAD_/ ||\n\t\t$2 ~ /^[US]F_/ ||\n\t\t$2 ~ /^TP_STATUS_/ ||\n\t\t$2 ~ /^FALLOC_/ ||\n\t\t$2 ~ /^ICMPV?6?_(FILTER|SEC)/ ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ ||\n\t\t$2 ~ /^HW_MACHINE$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 !~ \"MNT_BITS\" &&\n\t\t$2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ ||\n\t\t$2 ~ /^NS_GET_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ ||\n\t\t$2 ~ /^KEXEC_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 ~ /^MODULE_INIT_/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||\n\t\t$2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ ||\n\t\t$2 ~ /^(CONNECT|SAE)_/ ||\n\t\t$2 ~ /^FIORDCHK$/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 ~ /^TCGET/ ||\n\t\t$2 ~ /^TCSET/ ||\n\t\t$2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^DIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 ~ /^AUDIT_/ ||\n\t\t$2 ~ /^(CLOCK|TIMER)_/ ||\n\t\t$2 ~ /^CAN_/ ||\n\t\t$2 ~ /^CAP_/ ||\n\t\t$2 ~ /^CP_/ ||\n\t\t$2 ~ /^CPUSTATES$/ ||\n\t\t$2 ~ /^CTLIOCGINFO$/ ||\n\t\t$2 ~ /^ALG_/ ||\n\t\t$2 ~ /^FI(CLONE|DEDUPERANGE)/ ||\n\t\t$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||\n\t\t$2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ ||\n\t\t$2 ~ /^FS_VERITY_/ ||\n\t\t$2 ~ /^FSCRYPT_/ ||\n\t\t$2 ~ /^DM_/ ||\n\t\t$2 ~ /^GRND_/ ||\n\t\t$2 ~ /^RND/ ||\n\t\t$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||\n\t\t$2 ~ /^KEYCTL_/ ||\n\t\t$2 ~ /^PERF_/ ||\n\t\t$2 ~ /^SECCOMP_/ ||\n\t\t$2 ~ /^SEEK_/ ||\n\t\t$2 ~ /^SCHED_/ ||\n\t\t$2 ~ /^SPLICE_/ ||\n\t\t$2 ~ /^SYNC_FILE_RANGE_/ ||\n\t\t$2 !~ /IOC_MAGIC/ &&\n\t\t$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||\n\t\t$2 ~ /^(VM|VMADDR)_/ ||\n\t\t$2 ~ /^(IOCTL_VM_SOCKETS_|IOCTL_MEI_)/ ||\n\t\t$2 ~ /^(TASKSTATS|TS)_/ ||\n\t\t$2 ~ /^CGROUPSTATS_/ ||\n\t\t$2 ~ /^GENL_/ ||\n\t\t$2 ~ /^STATX_/ ||\n\t\t$2 ~ /^RENAME/ ||\n\t\t$2 ~ /^UBI_IOC[A-Z]/ ||\n\t\t$2 ~ /^UTIME_/ ||\n\t\t$2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ ||\n\t\t$2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ ||\n\t\t$2 ~ /^FSOPT_/ ||\n\t\t$2 ~ /^WDIO[CFS]_/ ||\n\t\t$2 ~ /^NFN/ ||\n\t\t$2 !~ /^NFT_META_IIFTYPE/ &&\n\t\t$2 ~ /^NFT_/ ||\n\t\t$2 ~ /^NF_NAT_/ ||\n\t\t$2 ~ /^XDP_/ ||\n\t\t$2 ~ /^RWF_/ ||\n\t\t$2 ~ /^(HDIO|WIN|SMART)_/ ||\n\t\t$2 ~ /^CRYPTO_/ ||\n\t\t$2 ~ /^TIPC_/ ||\n\t\t$2 !~  \"DEVLINK_RELOAD_LIMITS_VALID_MASK\" &&\n\t\t$2 ~ /^DEVLINK_/ ||\n\t\t$2 ~ /^ETHTOOL_/ ||\n\t\t$2 ~ /^LWTUNNEL_IP/ ||\n\t\t$2 ~ /^ITIMER_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ ||\n\t\t$2 ~ /^P_/ ||\n\t\t$2 ~/^PPPIOC/ ||\n\t\t$2 ~ /^FAN_|FANOTIFY_/ ||\n\t\t$2 == \"HID_MAX_DESCRIPTOR_SIZE\" ||\n\t\t$2 ~ /^_?HIDIOC/ ||\n\t\t$2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ ||\n\t\t$2 ~ /^MTD/ ||\n\t\t$2 ~ /^OTP/ ||\n\t\t$2 ~ /^MEM/ ||\n\t\t$2 ~ /^WG/ ||\n\t\t$2 ~ /^FIB_RULE_/ ||\n\t\t$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; see README.md. DO NOT EDIT.'\necho\necho \"//go:build ${GOARCH} && ${GOOS}\"\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= syscall.Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= syscall.Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nstruct tuple {\n\tint num;\n\tconst char *name;\n};\n\nstruct tuple errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\techo -E \"\n};\n\nstruct tuple signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\ntuplecmp(const void *a, const void *b)\n{\n\treturn ((struct tuple *)a)->num - ((struct tuple *)b)->num;\n}\n\nint\nmain(void)\n{\n\tint i, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errorList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Errno\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], tuplecmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i].num;\n\t\tif(i > 0 && errors[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strerror(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, errors[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signalList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Signal\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], tuplecmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i].num;\n\t\tif(i > 0 && signals[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strsignal(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, signals[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mmap_nomremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos\n\npackage unix\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\ntype mremapMmapper struct {\n\tmmapper\n\tmremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n}\n\nvar mapper = &mremapMmapper{\n\tmmapper: mmapper{\n\t\tactive: make(map[*byte][]byte),\n\t\tmmap:   mmap,\n\t\tmunmap: munmap,\n\t},\n\tmremap: mremap,\n}\n\nfunc (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\tif newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\tpOld := &oldData[cap(oldData)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tbOld := m.active[pOld]\n\tif bOld == nil || &bOld[0] != &oldData[0] {\n\t\treturn nil, EINVAL\n\t}\n\tnewAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\tbNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength)\n\tpNew := &bNew[cap(bNew)-1]\n\tif flags&mremapDontunmap == 0 {\n\t\tdelete(m.active, pOld)\n\t}\n\tm.active[pNew] = bNew\n\treturn bNew, nil\n}\n\nfunc Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\treturn mapper.Mremap(oldData, newLength, flags)\n}\n\nfunc MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr))\n\treturn unsafe.Pointer(xaddr), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pagesize_unix.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// For Unix, get the pagesize from the runtime.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getpagesize() int {\n\treturn syscall.Getpagesize()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pledge_openbsd.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Pledge implements the pledge syscall.\n//\n// This changes both the promises and execpromises; use PledgePromises or\n// PledgeExecpromises to only change the promises or execpromises\n// respectively.\n//\n// For more information see pledge(2).\nfunc Pledge(promises, execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, exptr)\n}\n\n// PledgePromises implements the pledge syscall.\n//\n// This changes the promises and leaves the execpromises untouched.\n//\n// For more information see pledge(2).\nfunc PledgePromises(promises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, nil)\n}\n\n// PledgeExecpromises implements the pledge syscall.\n//\n// This changes the execpromises and leaves the promises untouched.\n//\n// For more information see pledge(2).\nfunc PledgeExecpromises(execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(nil, exptr)\n}\n\n// majmin returns major and minor version number for an OpenBSD system.\nfunc majmin() (major int, minor int, err error) {\n\tvar v Utsname\n\terr = Uname(&v)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tmajor, err = strconv.Atoi(string(v.Release[0]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse major version number returned by uname\")\n\t\treturn\n\t}\n\n\tminor, err = strconv.Atoi(string(v.Release[2]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse minor version number returned by uname\")\n\t\treturn\n\t}\n\n\treturn\n}\n\n// pledgeAvailable checks for availability of the pledge(2) syscall\n// based on the running OpenBSD version.\nfunc pledgeAvailable() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Require OpenBSD 6.4 as a minimum.\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Pledge on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_darwin.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin && !ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) error {\n\treturn ptrace1(request, pid, addr, data)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_ios.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\treturn ENOTSUP\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && race) || (linux && race) || (freebsd && race)\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdents.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd\n\npackage unix\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\treturn Getdents(fd, buf)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdirentries.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// 64 bits should be enough. (32 bits isn't even on 386). Since the\n\t// actual system call is getdirentries64, 64 is a good guess.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\tvar base = (*uintptr)(unsafe.Pointer(new(uint64)))\n\treturn Getdirentries(fd, buf, base)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\tif SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {\n\t\t// 64-bit Dragonfly before the September 2019 ABI changes still requires\n\t\t// 32-bit aligned access to network subsystem.\n\t\tsalign = 4\n\t}\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_linux.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// ParseOrigDstAddr decodes a socket control message containing the original\n// destination address. To receive such a message the IP_RECVORIGDSTADDR or\n// IPV6_RECVORIGDSTADDR option must be enabled on the socket.\nfunc ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) {\n\tswitch {\n\tcase m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tdefault:\n\t\treturn nil, EINVAL\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Socket control messages\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// CmsgLen returns the value to store in the Len field of the Cmsghdr\n// structure, taking into account any necessary alignment.\nfunc CmsgLen(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + datalen\n}\n\n// CmsgSpace returns the number of bytes an ancillary element with\n// payload of the passed data length occupies.\nfunc CmsgSpace(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)\n}\n\nfunc (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {\n\treturn unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)\n}\n\n// SocketControlMessage represents a socket control message.\ntype SocketControlMessage struct {\n\tHeader Cmsghdr\n\tData   []byte\n}\n\n// ParseSocketControlMessage parses b as an array of socket control\n// messages.\nfunc ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {\n\tvar msgs []SocketControlMessage\n\ti := 0\n\tfor i+CmsgLen(0) <= len(b) {\n\t\th, dbuf, err := socketControlMessageHeaderAndData(b[i:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm := SocketControlMessage{Header: *h, Data: dbuf}\n\t\tmsgs = append(msgs, m)\n\t\ti += cmsgAlignOf(int(h.Len))\n\t}\n\treturn msgs, nil\n}\n\n// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header,\n// message data (a slice of b), and the remainder of b after that single message.\n// When there are no remaining messages, len(remainder) == 0.\nfunc ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) {\n\th, dbuf, err := socketControlMessageHeaderAndData(b)\n\tif err != nil {\n\t\treturn Cmsghdr{}, nil, nil, err\n\t}\n\tif i := cmsgAlignOf(int(h.Len)); i < len(b) {\n\t\tremainder = b[i:]\n\t}\n\treturn *h, dbuf, remainder, nil\n}\n\nfunc socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\tif h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {\n\t\treturn nil, nil, EINVAL\n\t}\n\treturn h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil\n}\n\n// UnixRights encodes a set of open file descriptors into a socket\n// control message for sending to another process.\nfunc UnixRights(fds ...int) []byte {\n\tdatalen := len(fds) * 4\n\tb := make([]byte, CmsgSpace(datalen))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_RIGHTS\n\th.SetLen(CmsgLen(datalen))\n\tfor i, fd := range fds {\n\t\t*(*int32)(h.data(4 * uintptr(i))) = int32(fd)\n\t}\n\treturn b\n}\n\n// ParseUnixRights decodes a socket control message that contains an\n// integer array of open file descriptors from another process.\nfunc ParseUnixRights(m *SocketControlMessage) ([]int, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_RIGHTS {\n\t\treturn nil, EINVAL\n\t}\n\tfds := make([]int, len(m.Data)>>2)\n\tfor i, j := 0, 0; i < len(m.Data); i += 4 {\n\t\tfds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))\n\t\tj++\n\t}\n\treturn fds, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport (\n\t\"runtime\"\n)\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\n\t// dragonfly needs to check ABI version at runtime, see cmsgAlignOf in\n\t// sockcmsg_dragonfly.go\n\tswitch runtime.GOOS {\n\tcase \"aix\":\n\t\t// There is no alignment on AIX.\n\t\tsalign = 1\n\tcase \"darwin\", \"ios\", \"illumos\", \"solaris\":\n\t\t// NOTE: It seems like 64-bit Darwin, Illumos and Solaris\n\t\t// kernels still require 32-bit aligned access to network\n\t\t// subsystem.\n\t\tif SizeofPtr == 8 {\n\t\t\tsalign = 4\n\t\t}\n\tcase \"netbsd\", \"openbsd\":\n\t\t// NetBSD and OpenBSD armv7 require 64-bit alignment.\n\t\tif runtime.GOARCH == \"arm\" {\n\t\t\tsalign = 8\n\t\t}\n\t\t// NetBSD aarch64 requires 128-bit alignment.\n\t\tif runtime.GOOS == \"netbsd\" && runtime.GOARCH == \"arm64\" {\n\t\t\tsalign = 16\n\t\t}\n\tcase \"zos\":\n\t\t// z/OS socket macros use [32-bit] sizeof(int) alignment,\n\t\t// not pointer width.\n\t\tsalign = SizeofInt\n\t}\n\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\nTEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Pipe2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flock(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Nanosleep(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Wait4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unmount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNanoAt(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNano(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkfifoat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Chtag(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Readlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\t\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Package unix contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display OS-specific documentation for the current\n// system. If you want godoc to display OS documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage unix // import \"golang.org/x/sys/unix\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\nvar _zero uintptr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix\n\n// Aix system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport \"unsafe\"\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = uint8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sys\tgetcwd(buf []byte) (err error)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (ret string, err error) {\n\tfor len := uint64(4096); ; len *= 2 {\n\t\tb := make([]byte, len)\n\t\terr := getcwd(b)\n\t\tif err == nil {\n\t\t\ti := 0\n\t\t\tfor b[i] != 0 {\n\t\t\t\ti++\n\t\t\t}\n\t\t\treturn string(b[0:i]), nil\n\t\t}\n\t\tif err != ERANGE {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n}\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\terr = getcwd(buf)\n\tif err == nil {\n\t\ti := 0\n\t\tfor buf[i] != 0 {\n\t\t\ti++\n\t\t}\n\t\tn = i + 1\n\t}\n\treturn\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n/*\n * Socket\n */\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some versions of AIX have a bug in getsockname (see IV78655).\n\t\t// We can't rely on sa.Len being set correctly.\n\t\tn := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terr = gettimeofday(tv, nil)\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tgetdirent(fd int, buf []byte) (n int, err error)\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn getdirent(fd, buf)\n}\n\n//sys\twait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\tvar r Pid_t\n\terr = ERESTART\n\t// AIX wait4 may return with ERESTART errno, while the process is still\n\t// active.\n\tfor err == ERESTART {\n\t\tr, err = wait4(Pid_t(pid), &status, options, rusage)\n\t}\n\twpid = int(r)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n/*\n * Wait\n */\n\ntype WaitStatus uint32\n\nfunc (w WaitStatus) Stopped() bool { return w&0x40 != 0 }\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>8) & 0xFF\n}\n\nfunc (w WaitStatus) Exited() bool { return w&0xFF == 0 }\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int((w >> 8) & 0xFF)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>16) & 0xFF\n}\n\nfunc (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }\n\nfunc (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\tioctl(fd int, req int, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl\n\n// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX\n// There is no way to create a custom fcntl and to keep //sys fcntl easily,\n// Therefore, the programmer must call dup2 instead of fcntl in this case.\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\n//sys\tFcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tfsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range\n\nfunc Fsync(fd int) error {\n\treturn fsyncRange(fd, O_SYNC, 0, 0)\n}\n\n/*\n * Direct access\n */\n\n//sys\tAcct(path string) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n// readdir_r\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\n//sys\tGetpgrp() (pid int)\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = syslog\n//sys\tMkdir(dirfd int, path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error) = open64\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n\n//sys\tSetuid(uid int) (err error)\n//sys\tSetgid(uid int) (err error)\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tfstat(fd int, stat *Stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = pread64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tPselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tstat(path string, statptr *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n\n// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg\n\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tgettimeofday(tv *Timeval, tzp *Timezone) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n\n//sys\tGetsystemcfg(label int) (n uint64)\n\n//sys\tumount(target string) (err error)\n\nfunc Unmount(target string, flags int) (err error) {\n\tif flags != 0 {\n\t\t// AIX doesn't have any flags for umount.\n\t\treturn ENOSYS\n\t}\n\treturn umount(target)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek64\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\treturn fstat(fd, stat)\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\treturn fstatat(dirfd, path, stat, flags)\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\treturn lstat(path, stat)\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\treturn stat(path, statptr)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int64(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// In order to only have Timespec structure, type of Stat_t's fields\n// Atim, Mtim and Ctim is changed from StTimespec to Timespec during\n// ztypes generation.\n// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an\n// int32, so the fields' value must be modified.\nfunc fixStatTimFields(stat *Stat_t) {\n\tstat.Atim.Nsec >>= 32\n\tstat.Mtim.Nsec >>= 32\n\tstat.Ctim.Nsec >>= 32\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\terr := fstat(fd, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\terr := fstatat(dirfd, path, stat, flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\terr := lstat(path, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\terr := stat(path, statptr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(statptr)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_bsd.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\n// BSD system call wrappers shared by *BSD based systems\n// including OS X (Darwin) and FreeBSD.  Like the other\n// syscall_*.go files it is compiled as Go code but also\n// used as input to mksyscall which parses the //sys\n// lines and generates system call stubs.\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tkilled  = 9\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\tShutdown(s int, how int) (err error)\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Index == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = sa.Len\n\tsa.raw.Family = AF_LINK\n\tsa.raw.Index = sa.Index\n\tsa.raw.Type = sa.Type\n\tsa.raw.Nlen = sa.Nlen\n\tsa.raw.Alen = sa.Alen\n\tsa.raw.Slen = sa.Slen\n\tsa.raw.Data = sa.Data\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_LINK:\n\t\tpp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrDatalink)\n\t\tsa.Len = pp.Len\n\t\tsa.Family = pp.Family\n\t\tsa.Index = pp.Index\n\t\tsa.Type = pp.Type\n\t\tsa.Nlen = pp.Nlen\n\t\tsa.Alen = pp.Alen\n\t\tsa.Slen = pp.Slen\n\t\tsa.Data = pp.Data\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tif pp.Len < 2 || pp.Len > SizeofSockaddrUnix {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some BSDs include the trailing NUL in the length, whereas\n\t\t// others do not. Work around this by subtracting the leading\n\t\t// family and len. The path is then scanned to see if a NUL\n\t\t// terminator still exists within the length.\n\t\tn := int(pp.Len) - 2 // subtract leading Family, Len\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\t// found early NUL; assume Len included the NUL\n\t\t\t\t// or was overestimating.\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn anyToSockaddrGOOS(fd, rsa)\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\tif (runtime.GOOS == \"darwin\" || runtime.GOOS == \"ios\") && len == 0 {\n\t\t// Accepted socket has no address.\n\t\t// This is likely due to a bug in xnu kernels,\n\t\t// where instead of ECONNABORTED error socket\n\t\t// is accepted, but has no address.\n\t\tClose(nfd)\n\t\treturn 0, nil, ECONNABORTED\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(jsing): DragonFly has a \"bug\" (see issue 3349), which should be\n\t// reported upstream.\n\tif runtime.GOOS == \"dragonfly\" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {\n\t\trsa.Addr.Family = AF_UNIX\n\t\trsa.Addr.Len = SizeofSockaddrUnix\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tkevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)\n\nfunc Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {\n\tvar change, event unsafe.Pointer\n\tif len(changes) > 0 {\n\t\tchange = unsafe.Pointer(&changes[0])\n\t}\n\tif len(events) > 0 {\n\t\tevent = unsafe.Pointer(&events[0])\n\t}\n\treturn kevent(kq, change, len(changes), event, len(events), timeout)\n}\n\n// sysctlmib translates name to mib number and appends any additional args.\nfunc sysctlmib(name string, args ...int) ([]_C_int, error) {\n\t// Translate name to mib number.\n\tmib, err := nametomib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, a := range args {\n\t\tmib = append(mib, _C_int(a))\n\t}\n\n\treturn mib, nil\n}\n\nfunc Sysctl(name string) (string, error) {\n\treturn SysctlArgs(name)\n}\n\nfunc SysctlArgs(name string, args ...int) (string, error) {\n\tbuf, err := SysctlRaw(name, args...)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := len(buf)\n\n\t// Throw away terminating NUL.\n\tif n > 0 && buf[n-1] == '\\x00' {\n\t\tn--\n\t}\n\treturn string(buf[0:n]), nil\n}\n\nfunc SysctlUint32(name string) (uint32, error) {\n\treturn SysctlUint32Args(name)\n}\n\nfunc SysctlUint32Args(name string, args ...int) (uint32, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(4)\n\tbuf := make([]byte, 4)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 4 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint32)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlUint64(name string, args ...int) (uint64, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(8)\n\tbuf := make([]byte, 8)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 8 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint64)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlRaw(name string, args ...int) ([]byte, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Find size.\n\tn := uintptr(0)\n\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Read into buffer of that size.\n\tbuf := make([]byte, n)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The actual call may return less than the original reported required\n\t// size so ensure we deal with that.\n\treturn buf[:n], nil\n}\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\nfunc SysctlTimeval(name string) (*Timeval, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar tv Timeval\n\tn := uintptr(unsafe.Sizeof(tv))\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != unsafe.Sizeof(tv) {\n\t\treturn nil, EIO\n\t}\n\treturn &tv, nil\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfutimes(fd int, timeval *[2]Timeval) (err error)\n\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimes(fd, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n// TODO: wrap\n//\tAcct(name nil-string) (err error)\n//\tGethostuuid(uuid *byte, timeout *Timespec) (err error)\n//\tPtrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)\n\n//sys\tMadvise(b []byte, behav int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Darwin system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tclosedir(dir uintptr) (err error)\n//sys\treaddir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)\n\nfunc fdopendir(fd int) (dir uintptr, err error) {\n\tr0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0)\n\tdir = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fdopendir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fdopendir fdopendir \"/usr/lib/libSystem.B.dylib\"\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulate Getdirentries using fdopendir/readdir_r/closedir.\n\t// We store the number of entries to skip in the seek\n\t// offset of fd. See issue #31368.\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// We need to duplicate the incoming file descriptor\n\t// because the caller expects to retain control of it, but\n\t// fdopendir expects to take control of its argument.\n\t// Just Dup'ing the file descriptor is not enough, as the\n\t// result shares underlying state. Use Openat to make a really\n\t// new file descriptor referring to the same directory.\n\tfd2, err := Openat(fd, \".\", O_RDONLY, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := fdopendir(fd2)\n\tif err != nil {\n\t\tClose(fd2)\n\t\treturn 0, err\n\t}\n\tdefer closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entry Dirent\n\t\tvar entryp *Dirent\n\t\te := readdir_r(d, &entry, &entryp)\n\t\tif e != 0 {\n\t\t\treturn n, errnoErr(e)\n\t\t}\n\t\tif entryp == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\n// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets.\ntype SockaddrCtl struct {\n\tID   uint32\n\tUnit uint32\n\traw  RawSockaddrCtl\n}\n\nfunc (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sc_len = SizeofSockaddrCtl\n\tsa.raw.Sc_family = AF_SYSTEM\n\tsa.raw.Ss_sysaddr = AF_SYS_CONTROL\n\tsa.raw.Sc_id = sa.ID\n\tsa.raw.Sc_unit = sa.Unit\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID  uint32\n\tPort uint32\n\traw  RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Len = SizeofSockaddrVM\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_SYSTEM:\n\t\tpp := (*RawSockaddrCtl)(unsafe.Pointer(rsa))\n\t\tif pp.Ss_sysaddr == AF_SYS_CONTROL {\n\t\t\tsa := new(SockaddrCtl)\n\t\t\tsa.ID = pp.Sc_id\n\t\t\tsa.Unit = pp.Sc_unit\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:  pp.Cid,\n\t\t\tPort: pp.Port,\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n// Some external packages rely on SYS___SYSCTL being defined to implement their\n// own sysctl wrappers. Provide it here, even though direct syscalls are no\n// longer supported on darwin.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }\nfunc PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }\nfunc PtraceDenyAttach() (err error)    { return ptrace(PT_DENY_ATTACH, 0, 0, 0) }\n\n//sysnb\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar x [2]int32\n\terr = pipe(&x)\n\tif err == nil {\n\t\tp[0] = int(x[0])\n\t\tp[1] = int(x[1])\n\t}\n\treturn\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(_p0, bufsize, flags)\n}\n\nfunc xattrPointer(dest []byte) *byte {\n\t// It's only when dest is set to NULL that the OS X implementations of\n\t// getxattr() and listxattr() return the current sizes of the named attributes.\n\t// An empty byte array is not sufficient. To maintain the same behaviour as the\n\t// linux implementation, we wrap around the system calls and pass in NULL when\n\t// dest is empty.\n\tvar destp *byte\n\tif len(dest) > 0 {\n\t\tdestp = &dest[0]\n\t}\n\treturn destp\n}\n\n//sys\tgetxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)\n}\n\n//sys\tfgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\treturn fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\n//sys\tsetxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\t// The parameters for the OS X implementation vary slightly compared to the\n\t// linux system call, specifically the position parameter:\n\t//\n\t//  linux:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          const void *value,\n\t//          size_t size,\n\t//          int flags\n\t//      );\n\t//\n\t//  darwin:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          void *value,\n\t//          size_t size,\n\t//          u_int32_t position,\n\t//          int options\n\t//      );\n\t//\n\t// position specifies the offset within the extended attribute. In the\n\t// current implementation, only the resource fork extended attribute makes\n\t// use of this argument. For all others, position is reserved. We simply\n\t// default to setting it to zero.\n\treturn setxattr(path, attr, xattrPointer(data), len(data), 0, flags)\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\treturn setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)\n}\n\n//sys\tfsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\treturn fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)\n}\n\n//sys\tremovexattr(path string, attr string, options int) (err error)\n\nfunc Removexattr(path string, attr string) (err error) {\n\t// We wrap around and explicitly zero out the options provided to the OS X\n\t// implementation of removexattr, we do so for interoperability with the\n\t// linux variant.\n\treturn removexattr(path, attr, 0)\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\treturn removexattr(link, attr, XATTR_NOFOLLOW)\n}\n\n//sys\tfremovexattr(fd int, attr string, options int) (err error)\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\treturn fremovexattr(fd, attr, 0)\n}\n\n//sys\tlistxattr(path string, dest *byte, size int, options int) (sz int, err error)\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\treturn listxattr(path, xattrPointer(dest), len(dest), 0)\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\treturn listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)\n}\n\n//sys\tflistxattr(fd int, dest *byte, size int, options int) (sz int, err error)\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\treturn flistxattr(fd, xattrPointer(dest), len(dest), 0)\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Wrapped\n */\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tkill(pid int, signum int, posix int) (err error)\n\nfunc Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\nfunc IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error {\n\treturn ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo))\n}\n\n// IfreqMTU is struct ifreq used to get or set a network device's MTU.\ntype IfreqMTU struct {\n\tName [IFNAMSIZ]byte\n\tMTU  int32\n}\n\n// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU\n// of the network device specified by ifname.\nfunc IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) {\n\tvar ifreq IfreqMTU\n\tcopy(ifreq.Name[:], ifname)\n\terr := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq))\n\treturn &ifreq, err\n}\n\n// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU\n// of the network device specified by ifreq.Name.\nfunc IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error {\n\treturn ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq))\n}\n\n//sys\trenamexNp(from string, to string, flag uint32) (err error)\n\nfunc RenamexNp(from string, to string, flag uint32) (err error) {\n\treturn renamexNp(from, to, flag)\n}\n\n//sys\trenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error)\n\nfunc RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\treturn renameatxNp(fromfd, from, tofd, to, flag)\n}\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar length = int64(count)\n\terr = sendfile(infd, outfd, *offset, &length, nil, 0)\n\twritten = int(length)\n\treturn\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) {\n\tvar value TCPConnectionInfo\n\tvallen := _Socklen(SizeofTCPConnectionInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kinfo KinfoProc\n\tn := uintptr(SizeofKinfoProc)\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofKinfoProc {\n\t\treturn nil, EIO\n\t}\n\treturn &kinfo, nil\n}\n\nfunc SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor {\n\t\t// Find size.\n\t\tn := uintptr(0)\n\t\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// Read into buffer of that size.\n\t\tbuf := make([]KinfoProc, n/SizeofKinfoProc)\n\t\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil {\n\t\t\tif err == ENOMEM {\n\t\t\t\t// Process table grew. Try again.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// The actual call may return less than the original reported required\n\t\t// size so ensure we deal with that.\n\t\treturn buf[:n/SizeofKinfoProc], nil\n\t}\n}\n\n//sys\tpthread_chdir_np(path string) (err error)\n\nfunc PthreadChdir(path string) (err error) {\n\treturn pthread_chdir_np(path)\n}\n\n//sys\tpthread_fchdir_np(fd int) (err error)\n\nfunc PthreadFchdir(fd int) (err error) {\n\treturn pthread_fchdir_np(fd)\n}\n\n// Connectx calls connectx(2) to initiate a connection on a socket.\n//\n// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument.\n//\n//   - srcIf is the optional source interface index. 0 means unspecified.\n//   - srcAddr is the optional source address. nil means unspecified.\n//   - dstAddr is the destination address.\n//\n// On success, Connectx returns the number of bytes enqueued for transmission.\nfunc Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) {\n\tendpoints := SaEndpoints{\n\t\tSrcif: srcIf,\n\t}\n\n\tif srcAddr != nil {\n\t\taddrp, addrlen, err := srcAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Srcaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Srcaddrlen = uint32(addrlen)\n\t}\n\n\tif dstAddr != nil {\n\t\taddrp, addrlen, err := dstAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Dstaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Dstaddrlen = uint32(addrlen)\n\t}\n\n\terr = connectx(fd, &endpoints, associd, flags, iov, &n, connid)\n\treturn\n}\n\nconst minIovec = 8\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tn, err = readv(fd, iovecs)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tn, err = preadv(fd, iovecs, offset)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = writev(fd, iovecs)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = pwritev(fd, iovecs, offset)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc appendBytes(vecs []Iovec, bs [][]byte) []Iovec {\n\tfor _, b := range bs {\n\t\tvar v Iovec\n\t\tv.SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tv.Base = &b[0]\n\t\t} else {\n\t\t\tv.Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t\tvecs = append(vecs, v)\n\t}\n\treturn vecs\n}\n\nfunc writevRacedetect(iovecs []Iovec, n int) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceReadRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n}\n\nfunc readvRacedetect(iovecs []Iovec, n int, err error) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n\tif err == nil {\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n}\n\n//sys\tconnectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)\n//sys\tsendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tClonefile(src string, dst string, flags int) (err error)\n//sys\tClonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExchangedata(path1 string, path2 string, options int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetcwd(buf []byte) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tp *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tIssetugid() (tainted bool)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tSetattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error)\n//sys\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetprivexec(flag int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\treadv(fd int, iovecs []Iovec) (n int, err error)\n//sys\tpreadv(fd int, iovecs []Iovec, offset int64) (n int, err error)\n//sys\twritev(fd int, iovecs []Iovec) (n int, err error)\n//sys\tpwritev(fd int, iovecs []Iovec, offset int64) (n int, err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tStatfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic\n\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_darwin.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall6X syscall.syscall6X\n//go:linkname syscall_syscall9 syscall.syscall9\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n//go:linkname syscall_syscallPtr syscall.syscallPtr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// DragonFly BSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\n// First __DragonFly_version after September 2019 ABI changes\n// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html\nconst _dragonflyABIChangeVersion = 500705\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\tnamlen, ok := direntNamlen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn (16 + namlen + 1 + 7) &^ 7, true\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\n//sysnb\tpipe() (r int, w int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tr, w, err := pipe()\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (r int, w int, err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\t// pipe2 on dragonfly takes an fds array as an argument, but still\n\t// returns the file descriptors.\n\tr, w, err := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn err\n}\n\n//sys\textpread(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpread(fd, p, 0, offset)\n}\n\n//sys\textpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpwrite(fd, p, 0, offset)\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {\n\terr := sysctl(mib, old, oldlen, nil, 0)\n\tif err != nil {\n\t\t// Utsname members on Dragonfly are only 32 bytes and\n\t\t// the syscall returns ENOMEM in case the actual value\n\t\t// is longer.\n\t\tif err == ENOMEM {\n\t\t\terr = nil\n\t\t}\n\t}\n\treturn err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctlUname(mib, &uname.Release[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Release[unsafe.Sizeof(uname.Release)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctlUname(mib, &uname.Version[0], &n); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc Dup3(oldfd, newfd, flags int) error {\n\tif oldfd == newfd || flags&^O_CLOEXEC != 0 {\n\t\treturn EINVAL\n\t}\n\thow := F_DUP2FD\n\tif flags&O_CLOEXEC != 0 {\n\t\thow = F_DUP2FD_CLOEXEC\n\t}\n\t_, err := fcntl(oldfd, how, newfd)\n\treturn err\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// FreeBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar (\n\t\t_p0     unsafe.Pointer\n\t\tbufsize uintptr\n\t)\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\t// Suppress ENOMEM errors to be compatible with the C library __xuname() implementation.\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Stat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, 0)\n}\n\nfunc Lstat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn Getdirentries(fd, buf, nil)\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tif basep == nil || unsafe.Sizeof(*basep) == 8 {\n\t\treturn getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep)))\n\t}\n\t// The syscall needs a 64-bit base. On 32-bit machines\n\t// we can't just use the basep passed in. See #32498.\n\tvar base uint64 = uint64(*basep)\n\tn, err = getdirentries(fd, buf, &base)\n\t*basep = uintptr(base)\n\tif base>>32 != 0 {\n\t\t// We can't stuff the base back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\nfunc Mknod(path string, mode uint32, dev uint64) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data int) (err error)\n//sys\tptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE\n\nfunc PtraceAttach(pid int) (err error) {\n\treturn ptrace(PT_ATTACH, pid, 0, 0)\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PT_CONTINUE, pid, 1, signal)\n}\n\nfunc PtraceDetach(pid int) (err error) {\n\treturn ptrace(PT_DETACH, pid, 1, 0)\n}\n\nfunc PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {\n\treturn ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0)\n}\n\nfunc PtraceGetRegs(pid int, regsout *Reg) (err error) {\n\treturn ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0)\n}\n\nfunc PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) {\n\tioDesc := PtraceIoDesc{\n\t\tOp:   int32(req),\n\t\tOffs: offs,\n\t}\n\tif countin > 0 {\n\t\t_ = out[:countin] // check bounds\n\t\tioDesc.Addr = &out[0]\n\t} else if out != nil {\n\t\tioDesc.Addr = (*byte)(unsafe.Pointer(&_zero))\n\t}\n\tioDesc.SetLen(countin)\n\n\terr = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0)\n\treturn int(ioDesc.Len), err\n}\n\nfunc PtraceLwpEvents(pid int, enable int) (err error) {\n\treturn ptrace(PT_LWP_EVENTS, pid, 0, enable)\n}\n\nfunc PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) {\n\treturn ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info)))\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)\n}\n\nfunc PtraceSetRegs(pid int, regs *Reg) (err error) {\n\treturn ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0)\n}\n\nfunc PtraceSingleStep(pid int) (err error) {\n\treturn ptrace(PT_STEP, pid, 1, 0)\n}\n\nfunc Dup3(oldfd, newfd, flags int) error {\n\tif oldfd == newfd || flags&^O_CLOEXEC != 0 {\n\t\treturn EINVAL\n\t}\n\thow := F_DUP2FD\n\tif flags&O_CLOEXEC != 0 {\n\t\thow = F_DUP2FD_CLOEXEC\n\t}\n\t_, err := fcntl(oldfd, how, newfd)\n\treturn err\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tCapEnter() (err error)\n//sys\tcapRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET\n//sys\tcapRightsLimit(fd int, rightsp *CapRights) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tgetdirentries(fd int, buf []byte, basep *uint64) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev uint64) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(fdat int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build hurd\n\npackage unix\n\n/*\n#include <stdint.h>\nint ioctl(int, unsigned long int, uintptr_t);\n*/\nimport \"C\"\nimport \"unsafe\"\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd_386.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && hurd\n\npackage unix\n\nconst (\n\tTIOCGETA = 0x62251713\n)\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_illumos.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// illumos system calls not present on Solaris.\n\n//go:build amd64 && illumos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc bytes2iovec(bs [][]byte) []Iovec {\n\tiovecs := make([]Iovec, len(bs))\n\tfor i, b := range bs {\n\t\tiovecs[i].SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tiovecs[i].Base = &b[0]\n\t\t} else {\n\t\t\tiovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\treturn iovecs\n}\n\n//sys\treadv(fd int, iovs []Iovec) (n int, err error)\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = readv(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpreadv(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = preadv(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\twritev(fd int, iovs []Iovec) (n int, err error)\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = writev(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpwritev(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = pwritev(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Linux system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport (\n\t\"encoding/binary\"\n\t\"slices\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"time\"\n\t\"unsafe\"\n)\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tif size <= 0 {\n\t\treturn -1, EINVAL\n\t}\n\treturn EpollCreate1(0)\n}\n\n//sys\tFanotifyInit(flags uint, event_f_flags uint) (fd int, err error)\n//sys\tfanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)\n\nfunc FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {\n\tif pathname == \"\" {\n\t\treturn fanotifyMark(fd, flags, mask, dirFd, nil)\n\t}\n\tp, err := BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fanotifyMark(fd, flags, mask, dirFd, p)\n}\n\n//sys\tfchmodat(dirfd int, path string, mode uint32) (err error)\n//sys\tfchmodat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) error {\n\t// Linux fchmodat doesn't support the flags parameter, but fchmodat2 does.\n\t// Try fchmodat2 if flags are specified.\n\tif flags != 0 {\n\t\terr := fchmodat2(dirfd, path, mode, flags)\n\t\tif err == ENOSYS {\n\t\t\t// fchmodat2 isn't available. If the flags are known to be valid,\n\t\t\t// return EOPNOTSUPP to indicate that fchmodat doesn't support them.\n\t\t\tif flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EINVAL\n\t\t\t} else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EOPNOTSUPP\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\treturn fchmodat(dirfd, path, mode)\n}\n\nfunc InotifyInit() (fd int, err error) {\n\treturn InotifyInit1(0)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n// ioctl itself should not be exposed directly, but additional get/set functions\n// for specific types are permissible. These are defined in ioctl.go and\n// ioctl_linux.go.\n//\n// The third argument to ioctl is often a pointer but sometimes an integer.\n// Callers should use ioctlPtr when the third argument is a pointer and ioctl\n// when the third argument is an integer.\n//\n// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr.\n\n//sys\tLinkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)\n\nfunc Link(oldpath string, newpath string) (err error) {\n\treturn Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\treturn Mkdirat(AT_FDCWD, path, mode)\n}\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\treturn openat(AT_FDCWD, path, mode|O_LARGEFILE, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\treturn openat(dirfd, path, flags|O_LARGEFILE, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc Pipe(p []int) error {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout >= 0 {\n\t\tts = new(Timespec)\n\t\t*ts = NsecToTimespec(int64(timeout) * 1e6)\n\t}\n\treturn Ppoll(fds, ts, nil)\n}\n\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\treturn Readlinkat(AT_FDCWD, path, buf)\n}\n\nfunc Rename(oldpath string, newpath string) (err error) {\n\treturn Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)\n}\n\nfunc Rmdir(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)\n}\n\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n\nfunc Symlink(oldpath string, newpath string) (err error) {\n\treturn Symlinkat(oldpath, AT_FDCWD, newpath)\n}\n\nfunc Unlink(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, 0)\n}\n\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar ts [2]Timespec\n\tts[0] = NsecToTimespec(TimevalToNsec(tv[0]))\n\tts[1] = NsecToTimespec(TimevalToNsec(tv[1]))\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(dirfd, path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc Futimes(fd int, tv []Timeval) (err error) {\n\t// Believe it or not, this is the best we can do on Linux\n\t// (and is what glibc does).\n\treturn Utimes(\"/proc/self/fd/\"+strconv.Itoa(fd), tv)\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\t// In some cases, Linux can return a path that starts with the\n\t// \"(unreachable)\" prefix, which can potentially be a valid relative\n\t// path. To work around that, return ENOENT if path is not absolute.\n\tif buf[0] != '/' {\n\t\treturn \"\", ENOENT\n\t}\n\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits. At least that's the idea.\n// There are various irregularities. For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int {\n\tif w.StopSignal() != SIGTRAP {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) >> 8\n}\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\tWaitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error)\n\nfunc Mkfifo(path string, mode uint32) error {\n\treturn Mknod(path, mode|S_IFIFO, 0)\n}\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) error {\n\treturn Mknodat(dirfd, path, mode|S_IFIFO, 0)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := range n {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.\ntype SockaddrLinklayer struct {\n\tProtocol uint16\n\tIfindex  int\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]byte\n\traw      RawSockaddrLinklayer\n}\n\nfunc (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_PACKET\n\tsa.raw.Protocol = sa.Protocol\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tsa.raw.Hatype = sa.Hatype\n\tsa.raw.Pkttype = sa.Pkttype\n\tsa.raw.Halen = sa.Halen\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil\n}\n\n// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.\ntype SockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n\traw    RawSockaddrNetlink\n}\n\nfunc (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_NETLINK\n\tsa.raw.Pad = sa.Pad\n\tsa.raw.Pid = sa.Pid\n\tsa.raw.Groups = sa.Groups\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil\n}\n\n// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the HCI protocol.\ntype SockaddrHCI struct {\n\tDev     uint16\n\tChannel uint16\n\traw     RawSockaddrHCI\n}\n\nfunc (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Dev = sa.Dev\n\tsa.raw.Channel = sa.Channel\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil\n}\n\n// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the L2CAP protocol.\ntype SockaddrL2 struct {\n\tPSM      uint16\n\tCID      uint16\n\tAddr     [6]uint8\n\tAddrType uint8\n\traw      RawSockaddrL2\n}\n\nfunc (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tpsm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))\n\tpsm[0] = byte(sa.PSM)\n\tpsm[1] = byte(sa.PSM >> 8)\n\tfor i := range len(sa.Addr) {\n\t\tsa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]\n\t}\n\tcid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))\n\tcid[0] = byte(sa.CID)\n\tcid[1] = byte(sa.CID >> 8)\n\tsa.raw.Bdaddr_type = sa.AddrType\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil\n}\n\n// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the RFCOMM protocol.\n//\n// Server example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = unix.Bind(fd, &unix.SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00\n//\t})\n//\t_ = Listen(fd, 1)\n//\tnfd, sa, _ := Accept(fd)\n//\tfmt.Printf(\"conn addr=%v fd=%d\", sa.(*unix.SockaddrRFCOMM).Addr, nfd)\n//\tRead(nfd, buf)\n//\n// Client example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = Connect(fd, &SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11\n//\t})\n//\tWrite(fd, []byte(`hello`))\ntype SockaddrRFCOMM struct {\n\t// Addr represents a bluetooth address, byte ordering is little-endian.\n\tAddr [6]uint8\n\n\t// Channel is a designated bluetooth channel, only 1-30 are available for use.\n\t// Since Linux 2.6.7 and further zero value is the first available channel.\n\tChannel uint8\n\n\traw RawSockaddrRFCOMM\n}\n\nfunc (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Channel = sa.Channel\n\tsa.raw.Bdaddr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil\n}\n\n// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.\n// The RxID and TxID fields are used for transport protocol addressing in\n// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with\n// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.\n//\n// The SockaddrCAN struct must be bound to the socket file descriptor\n// using Bind before the CAN socket can be used.\n//\n//\t// Read one raw CAN frame\n//\tfd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)\n//\taddr := &SockaddrCAN{Ifindex: index}\n//\tBind(fd, addr)\n//\tframe := make([]byte, 16)\n//\tRead(fd, frame)\n//\n// The full SocketCAN documentation can be found in the linux kernel\n// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt\ntype SockaddrCAN struct {\n\tIfindex int\n\tRxID    uint32\n\tTxID    uint32\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\tfor i := range 4 {\n\t\tsa.raw.Addr[i] = rx[i]\n\t}\n\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\tfor i := range 4 {\n\t\tsa.raw.Addr[i+4] = tx[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939\n// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information\n// on the purposes of the fields, check the official linux kernel documentation\n// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst\ntype SockaddrCANJ1939 struct {\n\tIfindex int\n\tName    uint64\n\tPGN     uint32\n\tAddr    uint8\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tn := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\tfor i := range 8 {\n\t\tsa.raw.Addr[i] = n[i]\n\t}\n\tp := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\tfor i := range 4 {\n\t\tsa.raw.Addr[i+8] = p[i]\n\t}\n\tsa.raw.Addr[12] = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.\n// SockaddrALG enables userspace access to the Linux kernel's cryptography\n// subsystem. The Type and Name fields specify which type of hash or cipher\n// should be used with a given socket.\n//\n// To create a file descriptor that provides access to a hash or cipher, both\n// Bind and Accept must be used. Once the setup process is complete, input\n// data can be written to the socket, processed by the kernel, and then read\n// back as hash output or ciphertext.\n//\n// Here is an example of using an AF_ALG socket with SHA1 hashing.\n// The initial socket setup process is as follows:\n//\n//\t// Open a socket to perform SHA1 hashing.\n//\tfd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)\n//\taddr := &unix.SockaddrALG{Type: \"hash\", Name: \"sha1\"}\n//\tunix.Bind(fd, addr)\n//\t// Note: unix.Accept does not work at this time; must invoke accept()\n//\t// manually using unix.Syscall.\n//\thashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)\n//\n// Once a file descriptor has been returned from Accept, it may be used to\n// perform SHA1 hashing. The descriptor is not safe for concurrent use, but\n// may be re-used repeatedly with subsequent Write and Read operations.\n//\n// When hashing a small byte slice or string, a single Write and Read may\n// be used:\n//\n//\t// Assume hashfd is already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash an input string and read the results. Each Write discards\n//\t// previous hash state. Read always reads the current state.\n//\tb := make([]byte, 20)\n//\tfor i := 0; i < 2; i++ {\n//\t    io.WriteString(hash, \"Hello, world.\")\n//\t    hash.Read(b)\n//\t    fmt.Println(hex.EncodeToString(b))\n//\t}\n//\t// Output:\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\n// For hashing larger byte slices, or byte streams such as those read from\n// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update\n// the hash digest instead of creating a new one for a given chunk and finalizing it.\n//\n//\t// Assume hashfd and addr are already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash the contents of a file.\n//\tf, _ := os.Open(\"/tmp/linux-4.10-rc7.tar.xz\")\n//\tb := make([]byte, 4096)\n//\tfor {\n//\t    n, err := f.Read(b)\n//\t    if err == io.EOF {\n//\t        break\n//\t    }\n//\t    unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)\n//\t}\n//\thash.Read(b)\n//\tfmt.Println(hex.EncodeToString(b))\n//\t// Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5\n//\n// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.\ntype SockaddrALG struct {\n\tType    string\n\tName    string\n\tFeature uint32\n\tMask    uint32\n\traw     RawSockaddrALG\n}\n\nfunc (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\t// Leave room for NUL byte terminator.\n\tif len(sa.Type) > len(sa.raw.Type)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Name) > len(sa.raw.Name)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\tsa.raw.Family = AF_ALG\n\tsa.raw.Feat = sa.Feature\n\tsa.raw.Mask = sa.Mask\n\n\tcopy(sa.raw.Type[:], sa.Type)\n\tcopy(sa.raw.Name[:], sa.Name)\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Linux VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID   uint32\n\tPort  uint32\n\tFlags uint8\n\traw   RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\tsa.raw.Flags = sa.Flags\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\ntype SockaddrXDP struct {\n\tFlags        uint16\n\tIfindex      uint32\n\tQueueID      uint32\n\tSharedUmemFD uint32\n\traw          RawSockaddrXDP\n}\n\nfunc (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_XDP\n\tsa.raw.Flags = sa.Flags\n\tsa.raw.Ifindex = sa.Ifindex\n\tsa.raw.Queue_id = sa.QueueID\n\tsa.raw.Shared_umem_fd = sa.SharedUmemFD\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil\n}\n\n// This constant mirrors the #define of PX_PROTO_OE in\n// linux/if_pppox.h. We're defining this by hand here instead of\n// autogenerating through mkerrors.sh because including\n// linux/if_pppox.h causes some declaration conflicts with other\n// includes (linux/if_pppox.h includes linux/in.h, which conflicts\n// with netinet/in.h). Given that we only need a single zero constant\n// out of that file, it's cleaner to just define it by hand here.\nconst px_proto_oe = 0\n\ntype SockaddrPPPoE struct {\n\tSID    uint16\n\tRemote []byte\n\tDev    string\n\traw    RawSockaddrPPPoX\n}\n\nfunc (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif len(sa.Remote) != 6 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Dev) > IFNAMSIZ-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\t*(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX\n\t// This next field is in host-endian byte order. We can't use the\n\t// same unsafe pointer cast as above, because this value is not\n\t// 32-bit aligned and some architectures don't allow unaligned\n\t// access.\n\t//\n\t// However, the value of px_proto_oe is 0, so we can use\n\t// encoding/binary helpers to write the bytes without worrying\n\t// about the ordering.\n\tbinary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)\n\t// This field is deliberately big-endian, unlike the previous\n\t// one. The kernel expects SID to be in network byte order.\n\tbinary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)\n\tcopy(sa.raw[8:14], sa.Remote)\n\tclear(sa.raw[14 : 14+IFNAMSIZ])\n\tcopy(sa.raw[14:], sa.Dev)\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil\n}\n\n// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.\n// For more information on TIPC, see: http://tipc.sourceforge.net/.\ntype SockaddrTIPC struct {\n\t// Scope is the publication scopes when binding service/service range.\n\t// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.\n\tScope int\n\n\t// Addr is the type of address used to manipulate a socket. Addr must be\n\t// one of:\n\t//  - *TIPCSocketAddr: \"id\" variant in the C addr union\n\t//  - *TIPCServiceRange: \"nameseq\" variant in the C addr union\n\t//  - *TIPCServiceName: \"name\" variant in the C addr union\n\t//\n\t// If nil, EINVAL will be returned when the structure is used.\n\tAddr TIPCAddr\n\n\traw RawSockaddrTIPC\n}\n\n// TIPCAddr is implemented by types that can be used as an address for\n// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,\n// and *TIPCServiceName.\ntype TIPCAddr interface {\n\ttipcAddrtype() uint8\n\ttipcAddr() [12]byte\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }\n\nfunc (sa *TIPCServiceRange) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }\n\nfunc (sa *TIPCServiceName) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }\n\nfunc (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Addr == nil {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_TIPC\n\tsa.raw.Scope = int8(sa.Scope)\n\tsa.raw.Addrtype = sa.Addr.tipcAddrtype()\n\tsa.raw.Addr = sa.Addr.tipcAddr()\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil\n}\n\n// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.\ntype SockaddrL2TPIP struct {\n\tAddr   [4]byte\n\tConnId uint32\n\traw    RawSockaddrL2TPIP\n}\n\nfunc (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil\n}\n\n// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.\ntype SockaddrL2TPIP6 struct {\n\tAddr   [16]byte\n\tZoneId uint32\n\tConnId uint32\n\traw    RawSockaddrL2TPIP6\n}\n\nfunc (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET6\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil\n}\n\n// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets.\ntype SockaddrIUCV struct {\n\tUserID string\n\tName   string\n\traw    RawSockaddrIUCV\n}\n\nfunc (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_IUCV\n\t// These are EBCDIC encoded by the kernel, but we still need to pad them\n\t// with blanks. Initializing with blanks allows the caller to feed in either\n\t// a padded or an unpadded string.\n\tfor i := range 8 {\n\t\tsa.raw.Nodeid[i] = ' '\n\t\tsa.raw.User_id[i] = ' '\n\t\tsa.raw.Name[i] = ' '\n\t}\n\tif len(sa.UserID) > 8 || len(sa.Name) > 8 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tfor i, b := range []byte(sa.UserID[:]) {\n\t\tsa.raw.User_id[i] = int8(b)\n\t}\n\tfor i, b := range []byte(sa.Name[:]) {\n\t\tsa.raw.Name[i] = int8(b)\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil\n}\n\ntype SockaddrNFC struct {\n\tDeviceIdx   uint32\n\tTargetIdx   uint32\n\tNFCProtocol uint32\n\traw         RawSockaddrNFC\n}\n\nfunc (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil\n}\n\ntype SockaddrNFCLLCP struct {\n\tDeviceIdx      uint32\n\tTargetIdx      uint32\n\tNFCProtocol    uint32\n\tDestinationSAP uint8\n\tSourceSAP      uint8\n\tServiceName    string\n\traw            RawSockaddrNFCLLCP\n}\n\nfunc (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\tsa.raw.Dsap = sa.DestinationSAP\n\tsa.raw.Ssap = sa.SourceSAP\n\tif len(sa.ServiceName) > len(sa.raw.Service_name) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tcopy(sa.raw.Service_name[:], sa.ServiceName)\n\tsa.raw.SetServiceNameLen(len(sa.ServiceName))\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil\n}\n\nvar socketProtocol = func(fd int) (int, error) {\n\treturn GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_NETLINK:\n\t\tpp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrNetlink)\n\t\tsa.Family = pp.Family\n\t\tsa.Pad = pp.Pad\n\t\tsa.Pid = pp.Pid\n\t\tsa.Groups = pp.Groups\n\t\treturn sa, nil\n\n\tcase AF_PACKET:\n\t\tpp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrLinklayer)\n\t\tsa.Protocol = pp.Protocol\n\t\tsa.Ifindex = int(pp.Ifindex)\n\t\tsa.Hatype = pp.Hatype\n\t\tsa.Pkttype = pp.Pkttype\n\t\tsa.Halen = pp.Halen\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet4)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_INET6:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP6)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet6)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:   pp.Cid,\n\t\t\tPort:  pp.Port,\n\t\t\tFlags: pp.Flags,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_BLUETOOTH:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections\n\t\tswitch proto {\n\t\tcase BTPROTO_L2CAP:\n\t\t\tpp := (*RawSockaddrL2)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrL2{\n\t\t\t\tPSM:      pp.Psm,\n\t\t\t\tCID:      pp.Cid,\n\t\t\t\tAddr:     pp.Bdaddr,\n\t\t\t\tAddrType: pp.Bdaddr_type,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase BTPROTO_RFCOMM:\n\t\t\tpp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrRFCOMM{\n\t\t\t\tChannel: pp.Channel,\n\t\t\t\tAddr:    pp.Bdaddr,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_XDP:\n\t\tpp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrXDP{\n\t\t\tFlags:        pp.Flags,\n\t\t\tIfindex:      pp.Ifindex,\n\t\t\tQueueID:      pp.Queue_id,\n\t\t\tSharedUmemFD: pp.Shared_umem_fd,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_PPPOX:\n\t\tpp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))\n\t\tif binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := &SockaddrPPPoE{\n\t\t\tSID:    binary.BigEndian.Uint16(pp[6:8]),\n\t\t\tRemote: pp[8:14],\n\t\t}\n\t\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\t\tif pp[i] == 0 {\n\t\t\t\tsa.Dev = string(pp[14:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn sa, nil\n\tcase AF_TIPC:\n\t\tpp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))\n\n\t\tsa := &SockaddrTIPC{\n\t\t\tScope: int(pp.Scope),\n\t\t}\n\n\t\t// Determine which union variant is present in pp.Addr by checking\n\t\t// pp.Addrtype.\n\t\tswitch pp.Addrtype {\n\t\tcase TIPC_SERVICE_RANGE:\n\t\t\tsa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SERVICE_ADDR:\n\t\t\tsa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SOCKET_ADDR:\n\t\t\tsa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\n\t\treturn sa, nil\n\tcase AF_IUCV:\n\t\tpp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa))\n\n\t\tvar user [8]byte\n\t\tvar name [8]byte\n\n\t\tfor i := range 8 {\n\t\t\tuser[i] = byte(pp.User_id[i])\n\t\t\tname[i] = byte(pp.Name[i])\n\t\t}\n\n\t\tsa := &SockaddrIUCV{\n\t\t\tUserID: string(user[:]),\n\t\t\tName:   string(name[:]),\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_CAN:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpp := (*RawSockaddrCAN)(unsafe.Pointer(rsa))\n\n\t\tswitch proto {\n\t\tcase CAN_J1939:\n\t\t\tsa := &SockaddrCANJ1939{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\tname := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\t\t\tfor i := range 8 {\n\t\t\t\tname[i] = pp.Addr[i]\n\t\t\t}\n\t\t\tpgn := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\t\t\tfor i := range 4 {\n\t\t\t\tpgn[i] = pp.Addr[i+8]\n\t\t\t}\n\t\t\taddr := (*[1]byte)(unsafe.Pointer(&sa.Addr))\n\t\t\taddr[0] = pp.Addr[12]\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tsa := &SockaddrCAN{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\t\t\tfor i := range 4 {\n\t\t\t\trx[i] = pp.Addr[i]\n\t\t\t}\n\t\t\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\t\t\tfor i := range 4 {\n\t\t\t\ttx[i] = pp.Addr[i+4]\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_NFC:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch proto {\n\t\tcase NFC_SOCKPROTO_RAW:\n\t\t\tpp := (*RawSockaddrNFC)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrNFC{\n\t\t\t\tDeviceIdx:   pp.Dev_idx,\n\t\t\t\tTargetIdx:   pp.Target_idx,\n\t\t\t\tNFCProtocol: pp.Nfc_protocol,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase NFC_SOCKPROTO_LLCP:\n\t\t\tpp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa))\n\t\t\tif uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) {\n\t\t\t\treturn nil, EINVAL\n\t\t\t}\n\t\t\tsa := &SockaddrNFCLLCP{\n\t\t\t\tDeviceIdx:      pp.Dev_idx,\n\t\t\t\tTargetIdx:      pp.Target_idx,\n\t\t\t\tNFCProtocol:    pp.Nfc_protocol,\n\t\t\t\tDestinationSAP: pp.Dsap,\n\t\t\t\tSourceSAP:      pp.Ssap,\n\t\t\t\tServiceName:    string(pp.Service_name[:pp.Service_name_len]),\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptUcred(fd, level, opt int) (*Ucred, error) {\n\tvar value Ucred\n\tvallen := _Socklen(SizeofUcred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tvar value TCPInfo\n\tvallen := _Socklen(SizeofTCPInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\n// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the \"vegas\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPVegasInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the \"dctp\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the \"bbr\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPBBRInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\tif err == ERANGE {\n\t\t\tbuf = make([]byte, vallen)\n\t\t\terr = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {\n\tvar value TpacketStats\n\tvallen := _Socklen(SizeofTpacketStats)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {\n\tvar value TpacketStatsV3\n\tvallen := _Socklen(SizeofTpacketStatsV3)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\nfunc SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a\n// socket to filter incoming packets.  See 'man 7 socket' for usage information.\nfunc SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))\n}\n\nfunc SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {\n\tvar p unsafe.Pointer\n\tif len(filter) > 0 {\n\t\tp = unsafe.Pointer(&filter[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))\n}\n\nfunc SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) {\n\tif len(o) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o)))\n}\n\nfunc SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s))\n}\n\n// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)\n\n// KeyctlInt calls keyctl commands in which each argument is an int.\n// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK,\n// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT,\n// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT,\n// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT.\n//sys\tKeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlBuffer calls keyctl commands in which the third and fourth\n// arguments are a buffer and its length, respectively.\n// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE.\n//sys\tKeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlString calls keyctl commands which return a string.\n// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY.\nfunc KeyctlString(cmd int, id int) (string, error) {\n\t// We must loop as the string data may change in between the syscalls.\n\t// We could allocate a large buffer here to reduce the chance that the\n\t// syscall needs to be called twice; however, this is unnecessary as\n\t// the performance loss is negligible.\n\tvar buffer []byte\n\tfor {\n\t\t// Try to fill the buffer with data\n\t\tlength, err := KeyctlBuffer(cmd, id, buffer, 0)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\t// Check if the data was written\n\t\tif length <= len(buffer) {\n\t\t\t// Exclude the null terminator\n\t\t\treturn string(buffer[:length-1]), nil\n\t\t}\n\n\t\t// Make a bigger buffer if needed\n\t\tbuffer = make([]byte, length)\n\t}\n}\n\n// Keyctl commands with special signatures.\n\n// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html\nfunc KeyctlGetKeyringID(id int, create bool) (ringid int, err error) {\n\tcreateInt := 0\n\tif create {\n\t\tcreateInt = 1\n\t}\n\treturn KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0)\n}\n\n// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the\n// key handle permission mask as described in the \"keyctl setperm\" section of\n// http://man7.org/linux/man-pages/man1/keyctl.1.html.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html\nfunc KeyctlSetperm(id int, perm uint32) error {\n\t_, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0)\n\treturn err\n}\n\n//sys\tkeyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html\nfunc KeyctlJoinSessionKeyring(name string) (ringid int, err error) {\n\treturn keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name)\n}\n\n//sys\tkeyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlSearch implements the KEYCTL_SEARCH command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_search.3.html\nfunc KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {\n\treturn keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)\n}\n\n//sys\tkeyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL\n\n// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This\n// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice\n// of Iovec (each of which represents a buffer) instead of a single buffer.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html\nfunc KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {\n\treturn keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)\n}\n\n//sys\tkeyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command\n// computes a Diffie-Hellman shared secret based on the provide params. The\n// secret is written to the provided buffer and the returned size is the number\n// of bytes written (returning an error if there is insufficient space in the\n// buffer). If a nil buffer is passed in, this function returns the minimum\n// buffer length needed to store the appropriate data. Note that this differs\n// from KEYCTL_READ's behavior which always returns the requested payload size.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html\nfunc KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) {\n\treturn keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)\n}\n\n// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This\n// command limits the set of keys that can be linked to the keyring, regardless\n// of keyring permissions. The command requires the \"setattr\" permission.\n//\n// When called with an empty keyType the command locks the keyring, preventing\n// any further keys from being linked to the keyring.\n//\n// The \"asymmetric\" keyType defines restrictions requiring key payloads to be\n// DER encoded X.509 certificates signed by keys in another keyring. Restrictions\n// for \"asymmetric\" include \"builtin_trusted\", \"builtin_and_secondary_trusted\",\n// \"key_or_keyring:<key>\", and \"key_or_keyring:<key>:chain\".\n//\n// As of Linux 4.12, only the \"asymmetric\" keyType defines type-specific\n// restrictions.\n//\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html\n// http://man7.org/linux/man-pages/man2/keyctl.2.html\nfunc KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {\n\tif keyType == \"\" {\n\t\treturn keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)\n\t}\n\treturn keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)\n}\n\n//sys\tkeyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL\n//sys\tkeyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\tif emptyIovecs(iov) {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// receive at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(ptr)\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\t// send at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n// BindToDevice binds the socket associated with fd to device.\nfunc BindToDevice(fd int, device string) (err error) {\n\treturn SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n//sys\tptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE\n\nfunc ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {\n\t// The peek requests are machine-size oriented, so we wrap it\n\t// to retrieve arbitrary-length data.\n\n\t// The ptrace syscall differs from glibc's ptrace.\n\t// Peeks returns the word in *data, not as the return value.\n\n\tvar buf [SizeofPtr]byte\n\n\t// Leading edge. PEEKTEXT/PEEKDATA don't require aligned\n\t// access (PEEKUSER warns that it might), but if we don't\n\t// align our reads, we might straddle an unmapped page\n\t// boundary and not get the bytes leading up to the page\n\t// boundary.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\terr = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(out, buf[addr%SizeofPtr:])\n\t\tout = out[n:]\n\t}\n\n\t// Remainder.\n\tfor len(out) > 0 {\n\t\t// We use an internal buffer to guarantee alignment.\n\t\t// It's not documented if this is necessary, but we're paranoid.\n\t\terr = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopied := copy(out, buf[0:])\n\t\tn += copied\n\t\tout = out[copied:]\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKDATA, pid, addr, out)\n}\n\nfunc PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKUSR, pid, addr, out)\n}\n\nfunc ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) {\n\t// As for ptracePeek, we need to align our accesses to deal\n\t// with the possibility of straddling an invalid page.\n\n\t// Leading edge.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(buf[addr%SizeofPtr:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tdata = data[n:]\n\t}\n\n\t// Interior.\n\tfor len(data) > SizeofPtr {\n\t\tword := *((*uintptr)(unsafe.Pointer(&data[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += SizeofPtr\n\t\tdata = data[SizeofPtr:]\n\t}\n\n\t// Trailing edge.\n\tif len(data) > 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopy(buf[0:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += len(data)\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)\n}\n\nfunc PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)\n}\n\n// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so\n// x/sys/unix doesn't need to depend on debug/elf and thus\n// compress/zlib, debug/dwarf, and other packages.\nconst elfNT_PRSTATUS = 1\n\nfunc PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regsout))\n\tiov.SetLen(int(unsafe.Sizeof(*regsout)))\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regs))\n\tiov.SetLen(int(unsafe.Sizeof(*regs)))\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetOptions(pid int, options int) (err error) {\n\treturn ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))\n}\n\nfunc PtraceGetEventMsg(pid int) (msg uint, err error) {\n\tvar data _C_long\n\terr = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data))\n\tmsg = uint(data)\n\treturn\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_CONT, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSyscall(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }\n\nfunc PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }\n\nfunc PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) }\n\nfunc PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }\n\n//sys\treboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)\n\nfunc Reboot(cmd int) (err error) {\n\treturn reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, \"\")\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tmount(source string, target string, fstype string, flags uintptr, data *byte) (err error)\n\nfunc Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\t// Certain file systems get rather angry and EINVAL if you give\n\t// them an empty string of data, rather than NULL.\n\tif data == \"\" {\n\t\treturn mount(source, target, fstype, flags, nil)\n\t}\n\tdatap, err := BytePtrFromString(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn mount(source, target, fstype, flags, datap)\n}\n\n//sys\tmountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR\n\n// MountSetattr is a wrapper for mount_setattr(2).\n// https://man7.org/linux/man-pages/man2/mount_setattr.2.html\n//\n// Requires kernel >= 5.12.\nfunc MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error {\n\treturn mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr))\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// Sendto\n// Recvfrom\n// Socketpair\n\n/*\n * Direct access\n */\n//sys\tAcct(path string) (err error)\n//sys\tAddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)\n//sys\tAdjtimex(buf *Timex) (state int, err error)\n//sysnb\tCapget(hdr *CapUserHeader, data *CapUserData) (err error)\n//sysnb\tCapset(hdr *CapUserHeader, data *CapUserData) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockAdjtime(clockid int32, buf *Timex) (state int, err error)\n//sys\tClockGetres(clockid int32, res *Timespec) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClockSettime(clockid int32, time *Timespec) (err error)\n//sys\tClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCloseRange(first uint, last uint, flags uint) (err error)\n//sys\tCopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tDeleteModule(name string, flags int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n\nfunc Dup2(oldfd, newfd int) error {\n\treturn Dup3(oldfd, newfd, 0)\n}\n\n//sys\tDup3(oldfd int, newfd int, flags int) (err error)\n//sysnb\tEpollCreate1(flag int) (fd int, err error)\n//sysnb\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2\n//sys\tExit(code int) = SYS_EXIT_GROUP\n//sys\tFallocate(fd int, mode uint32, off int64, len int64) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFgetxattr(fd int, attr string, dest []byte) (sz int, err error)\n//sys\tFinitModule(fd int, params string, flags int) (err error)\n//sys\tFlistxattr(fd int, dest []byte) (sz int, err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFremovexattr(fd int, attr string) (err error)\n//sys\tFsetxattr(fd int, attr string, dest []byte, flags int) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)\n//sys\tFsopen(fsName string, flags int) (fd int, err error)\n//sys\tFspick(dirfd int, pathName string, flags int) (fd int, err error)\n\n//sys\tfsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error)\n\nfunc fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) {\n\tvar keyp *byte\n\tif keyp, err = BytePtrFromString(key); err != nil {\n\t\treturn\n\t}\n\treturn fsconfig(fd, cmd, keyp, value, aux)\n}\n\n// FsconfigSetFlag is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FLAG.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\nfunc FsconfigSetFlag(fd int, key string) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0)\n}\n\n// FsconfigSetString is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_STRING.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetString(fd int, key string, value string) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(value); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0)\n}\n\n// FsconfigSetBinary is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_BINARY.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetBinary(fd int, key string, value []byte) (err error) {\n\tif len(value) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value))\n}\n\n// FsconfigSetPath is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// path is a non-empty path for specified key.\n// atfd is a file descriptor at which to start lookup from or AT_FDCWD.\nfunc FsconfigSetPath(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd)\n}\n\n// FsconfigSetPathEmpty is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as\n// FconfigSetPath but with AT_PATH_EMPTY implied.\nfunc FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd)\n}\n\n// FsconfigSetFd is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FD.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is a file descriptor to be assigned to specified key.\nfunc FsconfigSetFd(fd int, key string, value int) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value)\n}\n\n// FsconfigCreate is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_CREATE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigCreate(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0)\n}\n\n// FsconfigReconfigure is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_RECONFIGURE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigReconfigure(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0)\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvdsoRet, supported := vgetrandom(buf, uint32(flags))\n\tif supported {\n\t\tif vdsoRet < 0 {\n\t\t\treturn 0, errnoErr(syscall.Errno(-vdsoRet))\n\t\t}\n\t\treturn vdsoRet, nil\n\t}\n\tvar p *byte\n\tif len(buf) > 0 {\n\t\tp = &buf[0]\n\t}\n\tr, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags))\n\tif e != 0 {\n\t\treturn 0, errnoErr(e)\n\t}\n\treturn int(r), nil\n}\n\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettid() (tid int)\n//sys\tGetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tInitModule(moduleImage []byte, params string) (err error)\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)\n//sysnb\tInotifyInit1(flags int) (fd int, err error)\n//sysnb\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error)\n//sysnb\tKill(pid int, sig syscall.Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG\n//sys\tLgetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tListxattr(path string, dest []byte) (sz int, err error)\n//sys\tLlistxattr(path string, dest []byte) (sz int, err error)\n//sys\tLremovexattr(path string, attr string) (err error)\n//sys\tLsetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tMemfdCreate(name string, flags int) (fd int, err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpenTree(dfd int, fileName string, flags uint) (r int, err error)\n//sys\tPerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)\n//sys\tPivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)\n//sys\tpselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tRemovexattr(path string, attr string) (err error)\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)\n//sys\tRequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n//sys\tSetns(fd int, nstype int) (err error)\n\n//go:linkname syscall_prlimit syscall.prlimit\nfunc syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error\n\nfunc Prlimit(pid, resource int, newlimit, old *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old))\n}\n\n// PrctlRetInt performs a prctl operation specified by option and further\n// optional arguments arg2 through arg5 depending on option. It returns a\n// non-negative integer that is returned by the prctl syscall.\nfunc PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {\n\tret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc Setuid(uid int) (err error) {\n\treturn syscall.Setuid(uid)\n}\n\nfunc Setgid(gid int) (err error) {\n\treturn syscall.Setgid(gid)\n}\n\nfunc Setreuid(ruid, euid int) (err error) {\n\treturn syscall.Setreuid(ruid, euid)\n}\n\nfunc Setregid(rgid, egid int) (err error) {\n\treturn syscall.Setregid(rgid, egid)\n}\n\nfunc Setresuid(ruid, euid, suid int) (err error) {\n\treturn syscall.Setresuid(ruid, euid, suid)\n}\n\nfunc Setresgid(rgid, egid, sgid int) (err error) {\n\treturn syscall.Setresgid(rgid, egid, sgid)\n}\n\n// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.\n// If the call fails due to other reasons, current fsgid will be returned.\nfunc SetfsgidRetGid(gid int) (int, error) {\n\treturn setfsgid(gid)\n}\n\n// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability\n// If the call fails due to other reasons, current fsuid will be returned.\nfunc SetfsuidRetUid(uid int) (int, error) {\n\treturn setfsuid(uid)\n}\n\nfunc Setfsgid(gid int) error {\n\t_, err := setfsgid(gid)\n\treturn err\n}\n\nfunc Setfsuid(uid int) error {\n\t_, err := setfsuid(uid)\n\treturn err\n}\n\nfunc Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {\n\treturn signalfd(fd, sigmask, _C__NSIG/8, flags)\n}\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tsignalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sys\tSyncfs(fd int) (err error)\n//sysnb\tSysinfo(info *Sysinfo_t) (err error)\n//sys\tTee(rfd int, wfd int, len int, flags int) (n int64, err error)\n//sysnb\tTimerfdCreate(clockid int, flags int) (fd int, err error)\n//sysnb\tTimerfdGettime(fd int, currValue *ItimerSpec) (err error)\n//sysnb\tTimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error)\n//sysnb\tTgkill(tgid int, tid int, sig syscall.Signal) (err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = SYS_UMOUNT2\n//sys\tUnshare(flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\texitThread(code int) (err error) = SYS_EXIT\n//sys\treadv(fd int, iovs []Iovec) (n int, err error) = SYS_READV\n//sys\twritev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV\n//sys\tpreadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV\n//sys\tpwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV\n//sys\tpreadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2\n//sys\tpwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2\n\n// minIovec is the size of the small initial allocation used by\n// Readv, Writev, etc.\n//\n// This small allocation gets stack allocated, which lets the\n// common use case of len(iovs) <= minIovs avoid more expensive\n// heap allocations.\nconst minIovec = 8\n\n// appendBytes converts bs to Iovecs and appends them to vecs.\nfunc appendBytes(vecs []Iovec, bs [][]byte) []Iovec {\n\tfor _, b := range bs {\n\t\tvar v Iovec\n\t\tv.SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tv.Base = &b[0]\n\t\t} else {\n\t\t\tv.Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t\tvecs = append(vecs, v)\n\t}\n\treturn vecs\n}\n\n// offs2lohi splits offs into its low and high order bits.\nfunc offs2lohi(offs int64) (lo, hi uintptr) {\n\tconst longBits = SizeofLong * 8\n\treturn uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet\n}\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tn, err = readv(fd, iovecs)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv(fd, iovecs, lo, hi)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv2(fd, iovecs, lo, hi, flags)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc readvRacedetect(iovecs []Iovec, n int, err error) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := min(int(iovecs[i].Len), n)\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n\tif err == nil {\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n}\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = writev(fd, iovecs)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev(fd, iovecs, lo, hi)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev2(fd, iovecs, lo, hi, flags)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc writevRacedetect(iovecs []Iovec, n int) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := min(int(iovecs[i].Len), n)\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceReadRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n}\n\n// mmap varies by architecture; see syscall_linux_*.go.\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tmremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\nconst (\n\tmremapFixed     = MREMAP_FIXED\n\tmremapDontunmap = MREMAP_DONTUNMAP\n\tmremapMaymove   = MREMAP_MAYMOVE\n)\n\n// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,\n// using the specified flags.\nfunc Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {\n\tvar p unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\tp = unsafe.Pointer(&iovs[0])\n\t}\n\n\tn, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)\n\tif errno != 0 {\n\t\treturn 0, syscall.Errno(errno)\n\t}\n\n\treturn int(n), nil\n}\n\nfunc isGroupMember(gid int) bool {\n\tgroups, err := Getgroups()\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn slices.Contains(groups, gid)\n}\n\nfunc isCapDacOverrideSet() bool {\n\thdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3}\n\tdata := [2]CapUserData{}\n\terr := Capget(&hdr, &data[0])\n\n\treturn err == nil && data[0].Effective&(1<<CAP_DAC_OVERRIDE) != 0\n}\n\n//sys\tfaccessat(dirfd int, path string, mode uint32) (err error)\n//sys\tFaccessat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tif flags == 0 {\n\t\treturn faccessat(dirfd, path, mode)\n\t}\n\n\tif err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM {\n\t\treturn err\n\t}\n\n\t// The Linux kernel faccessat system call does not take any flags.\n\t// The glibc faccessat implements the flags itself; see\n\t// https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD\n\t// Because people naturally expect syscall.Faccessat to act\n\t// like C faccessat, we do the same.\n\n\tif flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {\n\t\treturn EINVAL\n\t}\n\n\tvar st Stat_t\n\tif err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {\n\t\treturn err\n\t}\n\n\tmode &= 7\n\tif mode == 0 {\n\t\treturn nil\n\t}\n\n\tvar uid int\n\tif flags&AT_EACCESS != 0 {\n\t\tuid = Geteuid()\n\t\tif uid != 0 && isCapDacOverrideSet() {\n\t\t\t// If CAP_DAC_OVERRIDE is set, file access check is\n\t\t\t// done by the kernel in the same way as for root\n\t\t\t// (see generic_permission() in the Linux sources).\n\t\t\tuid = 0\n\t\t}\n\t} else {\n\t\tuid = Getuid()\n\t}\n\n\tif uid == 0 {\n\t\tif mode&1 == 0 {\n\t\t\t// Root can read and write any file.\n\t\t\treturn nil\n\t\t}\n\t\tif st.Mode&0111 != 0 {\n\t\t\t// Root can execute any file that anybody can execute.\n\t\t\treturn nil\n\t\t}\n\t\treturn EACCES\n\t}\n\n\tvar fmode uint32\n\tif uint32(uid) == st.Uid {\n\t\tfmode = (st.Mode >> 6) & 7\n\t} else {\n\t\tvar gid int\n\t\tif flags&AT_EACCESS != 0 {\n\t\t\tgid = Getegid()\n\t\t} else {\n\t\t\tgid = Getgid()\n\t\t}\n\n\t\tif uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) {\n\t\t\tfmode = (st.Mode >> 3) & 7\n\t\t} else {\n\t\t\tfmode = st.Mode & 7\n\t\t}\n\t}\n\n\tif fmode&mode == mode {\n\t\treturn nil\n\t}\n\n\treturn EACCES\n}\n\n//sys\tnameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT\n//sys\topenByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT\n\n// fileHandle is the argument to nameToHandleAt and openByHandleAt. We\n// originally tried to generate it via unix/linux/types.go with \"type\n// fileHandle C.struct_file_handle\" but that generated empty structs\n// for mips64 and mips64le. Instead, hard code it for now (it's the\n// same everywhere else) until the mips64 generator issue is fixed.\ntype fileHandle struct {\n\tBytes uint32\n\tType  int32\n}\n\n// FileHandle represents the C struct file_handle used by\n// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see\n// OpenByHandleAt).\ntype FileHandle struct {\n\t*fileHandle\n}\n\n// NewFileHandle constructs a FileHandle.\nfunc NewFileHandle(handleType int32, handle []byte) FileHandle {\n\tconst hdrSize = unsafe.Sizeof(fileHandle{})\n\tbuf := make([]byte, hdrSize+uintptr(len(handle)))\n\tcopy(buf[hdrSize:], handle)\n\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\tfh.Type = handleType\n\tfh.Bytes = uint32(len(handle))\n\treturn FileHandle{fh}\n}\n\nfunc (fh *FileHandle) Size() int   { return int(fh.fileHandle.Bytes) }\nfunc (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }\nfunc (fh *FileHandle) Bytes() []byte {\n\tn := fh.Size()\n\tif n == 0 {\n\t\treturn nil\n\t}\n\treturn unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n)\n}\n\n// NameToHandleAt wraps the name_to_handle_at system call; it obtains\n// a handle for a path name.\nfunc NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {\n\tvar mid _C_int\n\t// Try first with a small buffer, assuming the handle will\n\t// only be 32 bytes.\n\tsize := uint32(32 + unsafe.Sizeof(fileHandle{}))\n\tdidResize := false\n\tfor {\n\t\tbuf := make([]byte, size)\n\t\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\t\tfh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))\n\t\terr = nameToHandleAt(dirfd, path, fh, &mid, flags)\n\t\tif err == EOVERFLOW {\n\t\t\tif didResize {\n\t\t\t\t// We shouldn't need to resize more than once\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdidResize = true\n\t\t\tsize = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn FileHandle{fh}, int(mid), nil\n\t}\n}\n\n// OpenByHandleAt wraps the open_by_handle_at system call; it opens a\n// file via a handle as previously returned by NameToHandleAt.\nfunc OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {\n\treturn openByHandleAt(mountFD, handle.fileHandle, flags)\n}\n\n// Klogset wraps the sys_syslog system call; it sets console_loglevel to\n// the value specified by arg and passes a dummy pointer to bufp.\nfunc Klogset(typ int, arg int) (err error) {\n\tvar p unsafe.Pointer\n\t_, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))\n\tif errno != 0 {\n\t\treturn errnoErr(errno)\n\t}\n\treturn nil\n}\n\n// RemoteIovec is Iovec with the pointer replaced with an integer.\n// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer\n// refers to a location in a different process' address space, which\n// would confuse the Go garbage collector.\ntype RemoteIovec struct {\n\tBase uintptr\n\tLen  int\n}\n\n//sys\tProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV\n//sys\tProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV\n\n//sys\tPidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN\n//sys\tPidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD\n//sys\tPidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n//sys\tgetitimer(which int, currValue *Itimerval) (err error)\n//sys\tsetitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error)\n\n// MakeItimerval creates an Itimerval from interval and value durations.\nfunc MakeItimerval(interval, value time.Duration) Itimerval {\n\treturn Itimerval{\n\t\tInterval: NsecToTimeval(interval.Nanoseconds()),\n\t\tValue:    NsecToTimeval(value.Nanoseconds()),\n\t}\n}\n\n// A value which may be passed to the which parameter for Getitimer and\n// Setitimer.\ntype ItimerWhich int\n\n// Possible which values for Getitimer and Setitimer.\nconst (\n\tItimerReal    ItimerWhich = ITIMER_REAL\n\tItimerVirtual ItimerWhich = ITIMER_VIRTUAL\n\tItimerProf    ItimerWhich = ITIMER_PROF\n)\n\n// Getitimer wraps getitimer(2) to return the current value of the timer\n// specified by which.\nfunc Getitimer(which ItimerWhich) (Itimerval, error) {\n\tvar it Itimerval\n\tif err := getitimer(int(which), &it); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn it, nil\n}\n\n// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which.\n// It returns the previous value of the timer.\n//\n// If the Itimerval argument is the zero value, the timer will be disarmed.\nfunc Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) {\n\tvar prev Itimerval\n\tif err := setitimer(int(which), &it, &prev); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn prev, nil\n}\n\n//sysnb\trtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK\n\nfunc PthreadSigmask(how int, set, oldset *Sigset_t) error {\n\tif oldset != nil {\n\t\t// Explicitly clear in case Sigset_t is larger than _C__NSIG.\n\t\t*oldset = Sigset_t{}\n\t}\n\treturn rtSigprocmask(how, set, oldset, _C__NSIG/8)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n// Pselect is a wrapper around the Linux pselect6 system call.\n// This version does not modify the timeout argument.\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\t// Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES,\n\t// The Linux pselect6() system call modifies its timeout argument.\n\t// [Not modifying the argument] is the behavior required by POSIX.1-2001.\n\tvar mutableTimeout *Timespec\n\tif timeout != nil {\n\t\tmutableTimeout = new(Timespec)\n\t\t*mutableTimeout = *timeout\n\t}\n\n\t// The final argument of the pselect6() system call is not a\n\t// sigset_t * pointer, but is instead a structure\n\tvar kernelMask *sigset_argpack\n\tif sigmask != nil {\n\t\twordBits := 32 << (^uintptr(0) >> 63) // see math.intSize\n\n\t\t// A sigset stores one bit per signal,\n\t\t// offset by 1 (because signal 0 does not exist).\n\t\t// So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉.\n\t\tsigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits)\n\n\t\tsigsetBytes := uintptr(sigsetWords * (wordBits / 8))\n\t\tkernelMask = &sigset_argpack{\n\t\t\tss:    sigmask,\n\t\t\tssLen: sigsetBytes,\n\t\t}\n\t}\n\n\treturn pselect6(nfd, r, w, e, mutableTimeout, kernelMask)\n}\n\n//sys\tschedSetattr(pid int, attr *SchedAttr, flags uint) (err error)\n//sys\tschedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error)\n\n// SchedSetAttr is a wrapper for sched_setattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_setattr.2.html\nfunc SchedSetAttr(pid int, attr *SchedAttr, flags uint) error {\n\tif attr == nil {\n\t\treturn EINVAL\n\t}\n\tattr.Size = SizeofSchedAttr\n\treturn schedSetattr(pid, attr, flags)\n}\n\n// SchedGetAttr is a wrapper for sched_getattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_getattr.2.html\nfunc SchedGetAttr(pid int, flags uint) (*SchedAttr, error) {\n\tattr := &SchedAttr{}\n\tif err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil {\n\t\treturn nil, err\n\t}\n\treturn attr, nil\n}\n\n//sys\tCachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error)\n//sys\tMseal(b []byte, flags uint) (err error)\n\n//sys\tsetMemPolicy(mode int, mask *CPUSet, size int) (err error) = SYS_SET_MEMPOLICY\n\nfunc SetMemPolicy(mode int, mask *CPUSet) error {\n\treturn setMemPolicy(mode, mask, _CPU_SETSIZE)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n// 64-bit file system and 32-bit uid calls\n// (386 default is 32-bit file system and 16-bit uid).\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n//sys\tPause() (err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n// On x86 Linux, all the socket calls go through an extra indirection,\n// I think because the 5-register system call interface can't handle\n// the 6-argument calls like sendto and recvfrom. Instead the\n// arguments to the underlying system call are the number below\n// and a pointer to an array of uintptr. We hide the pointer in the\n// socketcall assembly to avoid allocation on every system call.\n\nconst (\n\t// see linux/net.h\n\t_SOCKET      = 1\n\t_BIND        = 2\n\t_CONNECT     = 3\n\t_LISTEN      = 4\n\t_ACCEPT      = 5\n\t_GETSOCKNAME = 6\n\t_GETPEERNAME = 7\n\t_SOCKETPAIR  = 8\n\t_SEND        = 9\n\t_RECV        = 10\n\t_SENDTO      = 11\n\t_RECVFROM    = 12\n\t_SHUTDOWN    = 13\n\t_SETSOCKOPT  = 14\n\t_GETSOCKOPT  = 15\n\t_SENDMSG     = 16\n\t_RECVMSG     = 17\n\t_ACCEPT4     = 18\n\t_RECVMMSG    = 19\n\t_SENDMMSG    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tfd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\tn, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\t_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Listen(s int, n int) (err error) {\n\t_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Shutdown(s, how int) (err error) {\n\t_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_alarm.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)\n\npackage unix\n\n// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH\n// values.\n\n//sys\tAlarm(seconds uint) (remaining uint, err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\t// Use fstatat, because Android's seccomp policy blocks stat.\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terrno := gettimeofday(tv)\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terrno := gettimeofday(&tv)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Rip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux && gc\n\npackage unix\n\nimport \"syscall\"\n\n//go:noescape\nfunc gettimeofday(tv *Timeval) (err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocketpair(domain int, typ int, flags int, fd *[2]int32) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n// 64-bit file system and 32-bit uid calls\n// (16-bit uid calls are not always supported in newer kernels)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tarmSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and arm_sync_file_range syscalls differ only in the\n\t// order of their arguments.\n\treturn armSyncFileRange(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tgetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\n// Getrlimit prefers the prlimit64 system call. See issue 38604.\nfunc Getrlimit(resource int, rlim *Rlimit) error {\n\terr := Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn getrlimit(resource, rlim)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc\n\npackage unix\n\n// SyscallNoError may be used instead of Syscall for syscalls that don't fail.\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n\n// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't\n// fail.\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc && 386\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && gc && linux\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_loong64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build loong64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc timespecFromStatxTimestamp(x StatxTimestamp) Timespec {\n\treturn Timespec{\n\t\tSec:  x.Sec,\n\t\tNsec: int64(x.Nsec),\n\t}\n}\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) error {\n\tvar r Statx_t\n\t// Do it the glibc way, add AT_NO_AUTOMOUNT.\n\tif err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil {\n\t\treturn err\n\t}\n\n\tstat.Dev = Mkdev(r.Dev_major, r.Dev_minor)\n\tstat.Ino = r.Ino\n\tstat.Mode = uint32(r.Mode)\n\tstat.Nlink = r.Nlink\n\tstat.Uid = r.Uid\n\tstat.Gid = r.Gid\n\tstat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor)\n\t// hope we don't get to process files so large to overflow these size\n\t// fields...\n\tstat.Size = int64(r.Size)\n\tstat.Blksize = int32(r.Blksize)\n\tstat.Blocks = int64(r.Blocks)\n\tstat.Atim = timespecFromStatxTimestamp(r.Atime)\n\tstat.Mtim = timespecFromStatxTimestamp(r.Mtime)\n\tstat.Ctim = timespecFromStatxTimestamp(r.Ctime)\n\n\treturn nil\n}\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\treturn Fstatat(fd, \"\", stat, AT_EMPTY_PATH)\n}\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\treturn\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Era }\n\nfunc (r *PtraceRegs) SetPC(era uint64) { r.Era = era }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\ntype stat_t struct {\n\tDev        uint32\n\tPad0       [3]int32\n\tIno        uint64\n\tMode       uint32\n\tNlink      uint32\n\tUid        uint32\n\tGid        uint32\n\tRdev       uint32\n\tPad1       [3]uint32\n\tSize       int64\n\tAtime      uint32\n\tAtime_nsec uint32\n\tMtime      uint32\n\tMtime_nsec uint32\n\tCtime      uint32\n\tCtime_nsec uint32\n\tBlksize    uint32\n\tPad2       uint32\n\tBlocks     int64\n}\n\n//sys\tfstat(fd int, st *stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tlstat(path string, st *stat_t) (err error)\n//sys\tstat(path string, st *stat_t) (err error)\n\nfunc Fstat(fd int, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = fstat(fd, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {\n\tst := &stat_t{}\n\terr = fstatat(dirfd, path, st, flags)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Lstat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = lstat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Stat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = stat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc fillStat_t(s *Stat_t, st *stat_t) {\n\ts.Dev = st.Dev\n\ts.Ino = st.Ino\n\ts.Mode = st.Mode\n\ts.Nlink = st.Nlink\n\ts.Uid = st.Uid\n\ts.Gid = st.Gid\n\ts.Rdev = st.Rdev\n\ts.Size = st.Size\n\ts.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}\n\ts.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}\n\ts.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}\n\ts.Blksize = st.Blksize\n\ts.Blocks = st.Blocks\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n\n//sys\tPause() (err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\t_, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint32 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\n//sys\triscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error)\n\nfunc RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) {\n\tvar setSize uintptr\n\n\tif set != nil {\n\t\tsetSize = uintptr(unsafe.Sizeof(*set))\n\t}\n\treturn riscvHWProbe(pairs, setSize, set, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_s390x.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build s390x && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.\n// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tmmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}\n\tr0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// On s390x Linux, all the socket calls go through an extra indirection.\n// The arguments to the underlying system call (SYS_SOCKETCALL) are the\n// number below and a pointer to an array of uintptr.\nconst (\n\t// see linux/net.h\n\tnetSocket      = 1\n\tnetBind        = 2\n\tnetConnect     = 3\n\tnetListen      = 4\n\tnetAccept      = 5\n\tnetGetSockName = 6\n\tnetGetPeerName = 7\n\tnetSocketPair  = 8\n\tnetSend        = 9\n\tnetRecv        = 10\n\tnetSendTo      = 11\n\tnetRecvFrom    = 12\n\tnetShutdown    = 13\n\tnetSetSockOpt  = 14\n\tnetGetSockOpt  = 15\n\tnetSendMsg     = 16\n\tnetRecvMsg     = 17\n\tnetAccept4     = 18\n\tnetRecvMMsg    = 19\n\tnetSendMMsg    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {\n\targs := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}\n\tfd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) error {\n\targs := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socket(domain int, typ int, proto int) (int, error) {\n\targs := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc Listen(s int, n int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(n)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc Shutdown(s, how int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(how)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build sparc64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Tpc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// NetBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {\n\tvar olen uintptr\n\n\t// Get a list of all sysctl nodes below the given MIB by performing\n\t// a sysctl for the given MIB with CTL_QUERY appended.\n\tmib = append(mib, CTL_QUERY)\n\tqnode := Sysctlnode{Flags: SYSCTL_VERS_1}\n\tqp := (*byte)(unsafe.Pointer(&qnode))\n\tsz := unsafe.Sizeof(qnode)\n\tif err = sysctl(mib, nil, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Now that we know the size, get the actual nodes.\n\tnodes = make([]Sysctlnode, olen/sz)\n\tnp := (*byte)(unsafe.Pointer(&nodes[0]))\n\tif err = sysctl(mib, np, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn nodes, nil\n}\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\t// Split name into components.\n\tvar parts []string\n\tlast := 0\n\tfor i := 0; i < len(name); i++ {\n\t\tif name[i] == '.' {\n\t\t\tparts = append(parts, name[last:i])\n\t\t\tlast = i + 1\n\t\t}\n\t}\n\tparts = append(parts, name[last:])\n\n\t// Discover the nodes and construct the MIB OID.\n\tfor partno, part := range parts {\n\t\tnodes, err := sysctlNodes(mib)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, node := range nodes {\n\t\t\tn := make([]byte, 0)\n\t\t\tfor i := range node.Name {\n\t\t\t\tif node.Name[i] != 0 {\n\t\t\t\t\tn = append(n, byte(node.Name[i]))\n\t\t\t\t}\n\t\t\t}\n\t\t\tif string(n) == part {\n\t\t\t\tmib = append(mib, _C_int(node.Num))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif len(mib) != partno+1 {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\n\treturn mib, nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {\n\tvar value Ptmget\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc Fstatvfs(fd int, buf *Statvfs_t) (err error) {\n\treturn Fstatvfs1(fd, buf, ST_WAIT)\n}\n\nfunc Statvfs(path string, buf *Statvfs_t) (err error) {\n\treturn Statvfs1(path, buf, ST_WAIT)\n}\n\nfunc Getvfsstat(buf []Statvfs_t, flags int) (n int, err error) {\n\tvar (\n\t\t_p0     unsafe.Pointer\n\t\tbufsize uintptr\n\t)\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statvfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nconst (\n\tmremapFixed     = MAP_FIXED\n\tmremapDontunmap = 0\n\tmremapMaymove   = 0\n)\n\n//sys\tmremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) {\n\treturn mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// OpenBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sort\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\ti := sort.Search(len(sysctlMib), func(i int) bool {\n\t\treturn sysctlMib[i].ctlname >= name\n\t})\n\tif i < len(sysctlMib) && sysctlMib[i].ctlname == name {\n\t\treturn sysctlMib[i].ctloid, nil\n\t}\n\treturn nil, EINVAL\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofUvmexp {\n\t\treturn nil, EIO\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO was allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar bufptr *Statfs_t\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\tbufptr = &buf[0]\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(bufptr, bufsize, flags)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n//sys\tfcntl(fd int, cmd int, arg int) (n int, err error)\n//sys\tfcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk))\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrtable() (rtable int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrtable(rtable int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tgetfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n//sys\tpledge(promises *byte, execpromises *byte) (err error)\n//sys\tunveil(path *byte, flags *byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/386 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/arm the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build openbsd\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_openbsd3.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall10 syscall.syscall10\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) {\n\treturn syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of OpenBSD the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Solaris system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_solaris.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Implemented in runtime/syscall_solaris.go.\ntype syscallFunc uintptr\n\nfunc rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sysnb\tpipe(p *[2]_C_int) (n int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\tn, err := pipe(&pp)\n\tif n != 0 {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn nil\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n//sys\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\t// Getcwd will return an error if it failed for any reason.\n\t_, err = Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\t// Check for error and sanity check group count. Newer versions of\n\t// Solaris allow up to 1024 (NGROUPS_MAX).\n\tif n < 0 || n > 1024 {\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, EINVAL\n\t} else if n == 0 {\n\t\treturn nil, nil\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif n == -1 {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\treturn Getdents(fd, buf, new(uintptr))\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {\n\tvar status _C_int\n\trpid, err := wait4(int32(pid), &status, options, rusage)\n\twpid := int(rpid)\n\tif wpid == -1 {\n\t\treturn wpid, err\n\t}\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn wpid, nil\n}\n\n//sys\tgethostname(buf []byte) (n int, err error)\n\nfunc Gethostname() (name string, err error) {\n\tvar buf [MaxHostNameLen]byte\n\tn, err := gethostname(buf[:])\n\tif n != 0 {\n\t\treturn \"\", err\n\t}\n\tn = clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EFAULT\n\t}\n\treturn string(buf[:n]), nil\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(fd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\tvalptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)\n\tif e1 != 0 {\n\t\treturn e1\n\t}\n\treturn nil\n}\n\n//sys\tfutimesat(fildes int, path *byte, times *[2]Timeval) (err error)\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tv == nil {\n\t\treturn futimesat(dirfd, pathp, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// Solaris doesn't have an futimes function because it allows NULL to be\n// specified as the path for futimesat. However, Go doesn't like\n// NULL-style string interfaces, so this simple wrapper is provided.\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(fd, nil, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Solaris semantics for\n\t\t// abstract Unix domain sockets -- they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs -- but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Accrightslen)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tacct(path *byte) (err error)\n\nfunc Acct(path string) (err error) {\n\tif len(path) == 0 {\n\t\t// Assume caller wants to disable accounting.\n\t\treturn acct(nil)\n\t}\n\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn acct(pathp)\n}\n\n//sys\t__makedev(version int, major uint, minor uint) (val uint64)\n\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn __makedev(NEWDEV, uint(major), uint(minor))\n}\n\n//sys\t__major(version int, dev uint64) (val uint)\n\nfunc Major(dev uint64) uint32 {\n\treturn uint32(__major(NEWDEV, dev))\n}\n\n//sys\t__minor(version int, dev uint64) (val uint)\n\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(__minor(NEWDEV, dev))\n}\n\n/*\n * Expose the ioctl function\n */\n\n//sys\tioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl\n//sys\tioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, err = ioctlRet(fd, req, arg)\n\treturn err\n}\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, err = ioctlPtrRet(fd, req, arg)\n\treturn err\n}\n\nfunc IoctlSetTermio(fd int, req int, value *Termio) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\nfunc IoctlGetTermio(fd int, req int) (*Termio, error) {\n\tvar value Termio\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCreat(path string, mode uint32) (fd int, err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs(fd int, vfsstat *Statvfs_t) (err error)\n//sys\tGetdents(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgid int, err error)\n//sys\tGeteuid() (euid int)\n//sys\tGetegid() (egid int)\n//sys\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (n int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tListen(s int, backlog int) (err error) = libsocket.__xnet_listen\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tShutdown(s int, how int) (err error) = libsocket.shutdown\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs(path string, vfsstat *Statvfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSync() (err error)\n//sys\tSysconf(which int) (n int64, err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = libc.umount\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto\n//sys\tsocket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom\n\n// Event Ports\n\ntype fileObjCookie struct {\n\tfobj   *fileObj\n\tcookie interface{}\n}\n\n// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports.\ntype EventPort struct {\n\tport  int\n\tmu    sync.Mutex\n\tfds   map[uintptr]*fileObjCookie\n\tpaths map[string]*fileObjCookie\n\t// The user cookie presents an interesting challenge from a memory management perspective.\n\t// There are two paths by which we can discover that it is no longer in use:\n\t// 1. The user calls port_dissociate before any events fire\n\t// 2. An event fires and we return it to the user\n\t// The tricky situation is if the event has fired in the kernel but\n\t// the user hasn't requested/received it yet.\n\t// If the user wants to port_dissociate before the event has been processed,\n\t// we should handle things gracefully. To do so, we need to keep an extra\n\t// reference to the cookie around until the event is processed\n\t// thus the otherwise seemingly extraneous \"cookies\" map\n\t// The key of this map is a pointer to the corresponding fCookie\n\tcookies map[*fileObjCookie]struct{}\n}\n\n// PortEvent is an abstraction of the port_event C struct.\n// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD\n// to see if Path or Fd was the event source. The other will be\n// uninitialized.\ntype PortEvent struct {\n\tCookie interface{}\n\tEvents int32\n\tFd     uintptr\n\tPath   string\n\tSource uint16\n\tfobj   *fileObj\n}\n\n// NewEventPort creates a new EventPort including the\n// underlying call to port_create(3c).\nfunc NewEventPort() (*EventPort, error) {\n\tport, err := port_create()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\te := &EventPort{\n\t\tport:    port,\n\t\tfds:     make(map[uintptr]*fileObjCookie),\n\t\tpaths:   make(map[string]*fileObjCookie),\n\t\tcookies: make(map[*fileObjCookie]struct{}),\n\t}\n\treturn e, nil\n}\n\n//sys\tport_create() (n int, err error)\n//sys\tport_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error)\n//sys\tport_dissociate(port int, source int, object uintptr) (n int, err error)\n//sys\tport_get(port int, pe *portEvent, timeout *Timespec) (n int, err error)\n//sys\tport_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error)\n\n// Close closes the event port.\nfunc (e *EventPort) Close() error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr := Close(e.port)\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds = nil\n\te.paths = nil\n\te.cookies = nil\n\treturn nil\n}\n\n// PathIsWatched checks to see if path is associated with this EventPort.\nfunc (e *EventPort) PathIsWatched(path string) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.paths[path]\n\treturn found\n}\n\n// FdIsWatched checks to see if fd is associated with this EventPort.\nfunc (e *EventPort) FdIsWatched(fd uintptr) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.fds[fd]\n\treturn found\n}\n\n// AssociatePath wraps port_associate(3c) for a filesystem path including\n// creating the necessary file_obj from the provided stat information.\nfunc (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.paths[path]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", path)\n\t}\n\tfCookie, err := createFileObjCookie(path, stat, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.paths[path] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociatePath wraps port_dissociate(3c) for a filesystem path.\nfunc (e *EventPort) DissociatePath(path string) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tf, ok := e.paths[path]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", path)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj)))\n\t// If the path is no longer associated with this event port (ENOENT)\n\t// we should delete it from our map. We can still return ENOENT to the caller.\n\t// But we need to save the cookie\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.paths[path]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.paths, path)\n\treturn err\n}\n\n// AssociateFd wraps calls to port_associate(3c) on file descriptors.\nfunc (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.fds[fd]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", fd)\n\t}\n\tfCookie, err := createFileObjCookie(\"\", nil, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds[fd] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociateFd wraps calls to port_dissociate(3c) on file descriptors.\nfunc (e *EventPort) DissociateFd(fd uintptr) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, ok := e.fds[fd]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", fd)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FD, fd)\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.fds[fd]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.fds, fd)\n\treturn err\n}\n\nfunc createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) {\n\tfCookie := new(fileObjCookie)\n\tfCookie.cookie = cookie\n\tif name != \"\" && stat != nil {\n\t\tfCookie.fobj = new(fileObj)\n\t\tbs, err := ByteSliceFromString(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0]))\n\t\ts := stat.Sys().(*syscall.Stat_t)\n\t\tfCookie.fobj.Atim.Sec = s.Atim.Sec\n\t\tfCookie.fobj.Atim.Nsec = s.Atim.Nsec\n\t\tfCookie.fobj.Mtim.Sec = s.Mtim.Sec\n\t\tfCookie.fobj.Mtim.Nsec = s.Mtim.Nsec\n\t\tfCookie.fobj.Ctim.Sec = s.Ctim.Sec\n\t\tfCookie.fobj.Ctim.Nsec = s.Ctim.Nsec\n\t}\n\treturn fCookie, nil\n}\n\n// GetOne wraps port_get(3c) and returns a single PortEvent.\nfunc (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) {\n\tpe := new(portEvent)\n\t_, err := port_get(e.port, pe, t)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tp := new(PortEvent)\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr = e.peIntToExt(pe, p)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p, nil\n}\n\n// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent\n// NOTE: Always call this function while holding the e.mu mutex\nfunc (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error {\n\tif e.cookies == nil {\n\t\treturn fmt.Errorf(\"this EventPort is already closed\")\n\t}\n\tpeExt.Events = peInt.Events\n\tpeExt.Source = peInt.Source\n\tfCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User))\n\t_, found := e.cookies[fCookie]\n\n\tif !found {\n\t\tpanic(\"unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254\")\n\t}\n\tpeExt.Cookie = fCookie.cookie\n\tdelete(e.cookies, fCookie)\n\n\tswitch peInt.Source {\n\tcase PORT_SOURCE_FD:\n\t\tpeExt.Fd = uintptr(peInt.Object)\n\t\t// Only remove the fds entry if it exists and this cookie matches\n\t\tif fobj, ok := e.fds[peExt.Fd]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.fds, peExt.Fd)\n\t\t\t}\n\t\t}\n\tcase PORT_SOURCE_FILE:\n\t\tpeExt.fobj = fCookie.fobj\n\t\tpeExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name)))\n\t\t// Only remove the paths entry if it exists and this cookie matches\n\t\tif fobj, ok := e.paths[peExt.Path]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.paths, peExt.Path)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Pending wraps port_getn(3c) and returns how many events are pending.\nfunc (e *EventPort) Pending() (int, error) {\n\tvar n uint32 = 0\n\t_, err := port_getn(e.port, nil, 0, &n, nil)\n\treturn int(n), err\n}\n\n// Get wraps port_getn(3c) and fills a slice of PortEvent.\n// It will block until either min events have been received\n// or the timeout has been exceeded. It will return how many\n// events were actually received along with any error information.\nfunc (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) {\n\tif min == 0 {\n\t\treturn 0, fmt.Errorf(\"need to request at least one event or use Pending() instead\")\n\t}\n\tif len(s) < min {\n\t\treturn 0, fmt.Errorf(\"len(s) (%d) is less than min events requested (%d)\", len(s), min)\n\t}\n\tgot := uint32(min)\n\tmax := uint32(len(s))\n\tvar err error\n\tps := make([]portEvent, max)\n\t_, err = port_getn(e.port, &ps[0], max, &got, timeout)\n\t// got will be trustworthy with ETIME, but not any other error.\n\tif err != nil && err != ETIME {\n\t\treturn 0, err\n\t}\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tvalid := 0\n\tfor i := 0; i < int(got); i++ {\n\t\terr2 := e.peIntToExt(&ps[i], &s[i])\n\t\tif err2 != nil {\n\t\t\tif valid == 0 && err == nil {\n\t\t\t\t// If err2 is the only error and there are no valid events\n\t\t\t\t// to return, return it to the caller.\n\t\t\t\terr = err2\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tvalid = i + 1\n\t}\n\treturn valid, err\n}\n\n//sys\tputmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error)\n\nfunc Putmsg(fd int, cl []byte, data []byte, flags int) (err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tLen: int32(len(cl)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tLen: int32(len(data)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\treturn putmsg(fd, clp, datap, flags)\n}\n\n//sys\tgetmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error)\n\nfunc Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tMaxlen: int32(len(cl)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tMaxlen: int32(len(data)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\n\tif err = getmsg(fd, clp, datap, &flags); err != nil {\n\t\treturn nil, nil, 0, err\n\t}\n\n\tif len(cl) > 0 {\n\t\tretCl = cl[:clp.Len]\n\t}\n\tif len(data) > 0 {\n\t\tretData = data[:datap.Len]\n\t}\n\treturn retCl, retData, flags, nil\n}\n\nfunc IoctlSetIntRetInt(fd int, req int, arg int) (int, error) {\n\treturn ioctlRet(fd, req, uintptr(arg))\n}\n\nfunc IoctlSetString(fd int, req int, val string) error {\n\tbs := make([]byte, len(val)+1)\n\tcopy(bs[:len(bs)-1], val)\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\n\truntime.KeepAlive(&bs[0])\n\treturn err\n}\n\n// Lifreq Helpers\n\nfunc (l *Lifreq) SetName(name string) error {\n\tif len(name) >= len(l.Name) {\n\t\treturn fmt.Errorf(\"name cannot be more than %d characters\", len(l.Name)-1)\n\t}\n\tfor i := range name {\n\t\tl.Name[i] = int8(name[i])\n\t}\n\treturn nil\n}\n\nfunc (l *Lifreq) SetLifruInt(d int) {\n\t*(*int)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruInt() int {\n\treturn *(*int)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc (l *Lifreq) SetLifruUint(d uint) {\n\t*(*uint)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruUint() uint {\n\treturn *(*uint)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc IoctlLifreq(fd int, req int, l *Lifreq) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(l))\n}\n\n// Strioctl Helpers\n\nfunc (s *Strioctl) SetInt(i int) {\n\ts.Len = int32(unsafe.Sizeof(i))\n\ts.Dp = (*int8)(unsafe.Pointer(&i))\n}\n\nfunc IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) {\n\treturn ioctlPtrRet(fd, req, unsafe.Pointer(s))\n}\n\n// Ucred Helpers\n// See ucred(3c) and getpeerucred(3c)\n\n//sys\tgetpeerucred(fd uintptr, ucred *uintptr) (err error)\n//sys\tucredFree(ucred uintptr) = ucred_free\n//sys\tucredGet(pid int) (ucred uintptr, err error) = ucred_get\n//sys\tucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid\n//sys\tucredGetegid(ucred uintptr) (gid int) = ucred_getegid\n//sys\tucredGetruid(ucred uintptr) (uid int) = ucred_getruid\n//sys\tucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid\n//sys\tucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid\n//sys\tucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid\n//sys\tucredGetpid(ucred uintptr) (pid int) = ucred_getpid\n\n// Ucred is an opaque struct that holds user credentials.\ntype Ucred struct {\n\tucred uintptr\n}\n\n// We need to ensure that ucredFree is called on the underlying ucred\n// when the Ucred is garbage collected.\nfunc ucredFinalizer(u *Ucred) {\n\tucredFree(u.ucred)\n}\n\nfunc GetPeerUcred(fd uintptr) (*Ucred, error) {\n\tvar ucred uintptr\n\terr := getpeerucred(fd, &ucred)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc UcredGet(pid int) (*Ucred, error) {\n\tucred, err := ucredGet(pid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc (u *Ucred) Geteuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGeteuid(u.ucred)\n}\n\nfunc (u *Ucred) Getruid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetruid(u.ucred)\n}\n\nfunc (u *Ucred) Getsuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsuid(u.ucred)\n}\n\nfunc (u *Ucred) Getegid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetegid(u.ucred)\n}\n\nfunc (u *Ucred) Getrgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetrgid(u.ucred)\n}\n\nfunc (u *Ucred) Getsgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsgid(u.ucred)\n}\n\nfunc (u *Ucred) Getpid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetpid(u.ucred)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && solaris\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e syscall.Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length)\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\nfunc MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset)\n\treturn unsafe.Pointer(xaddr), err\n}\n\nfunc MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) {\n\treturn mapper.munmap(uintptr(addr), length)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tn, err = pread(fd, p, offset)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = pwrite(fd, p, offset)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Recvmsg receives a message from a socket using the recvmsg system call. The\n// received non-control data will be written to p, and any \"out of band\"\n// control data will be written to oob. The flags are passed to recvmsg.\n//\n// The results are:\n//   - n is the number of non-control data bytes read into p\n//   - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage]\n//   - recvflags is flags returned by recvmsg\n//   - from is the address of the sender\n//\n// If the underlying socket type is not SOCK_DGRAM, a received message\n// containing oob data and a single '\\0' of non-control data is treated as if\n// the message contained only control data, i.e. n will be zero on return.\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// RecvmsgBuffers receives a message from a socket using the recvmsg system\n// call. This function is equivalent to Recvmsg, but non-control data read is\n// scattered into the buffers slices.\nfunc RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)\n\tif err == nil && rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Sendmsg sends a message on a socket to an address using the sendmsg system\n// call. This function is equivalent to SendmsgN, but does not return the\n// number of bytes actually sent.\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\n// SendmsgN sends a message on a socket to an address using the sendmsg system\n// call. p contains the non-control data to send, and oob contains the \"out of\n// band\" control data. The flags are passed to sendmsg. The number of\n// non-control bytes actually written to the socket is returned.\n//\n// Some socket types do not support sending control data without accompanying\n// non-control data. If p is empty, and oob contains control data, and the\n// underlying socket type is not SOCK_DGRAM, p will be treated as containing a\n// single '\\0' and the return value will indicate zero bytes sent.\n//\n// The Go function Recvmsg, if called with an empty p and a non-empty oob,\n// will read and ignore this additional '\\0'.  If the message is received by\n// code that does not use Recvmsg, or that does not use Go at all, that code\n// will need to be written to expect and ignore the additional '\\0'.\n//\n// If you need to send non-empty oob with p actually empty, and if the\n// underlying socket type supports it, you can do so via a raw system call as\n// follows:\n//\n//\tmsg := &unix.Msghdr{\n//\t    Control: &oob[0],\n//\t}\n//\tmsg.SetControllen(len(oob))\n//\tn, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags)\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov[:], oob, ptr, salen, flags)\n}\n\n// SendmsgBuffers sends a message on a socket to an address using the sendmsg\n// system call. This function is equivalent to SendmsgN, but the non-control\n// data is gathered from buffers.\nfunc SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov, oob, ptr, salen, flags)\n}\n\nfunc Send(s int, buf []byte, flags int) (err error) {\n\treturn sendto(s, buf, flags, nil, 0)\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn sendto(fd, p, flags, ptr, salen)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif (flag&O_NONBLOCK != 0) == nonblocking {\n\t\treturn nil\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\n// Lutimes sets the access and modification times tv on path. If path refers to\n// a symlink, it is not dereferenced and the timestamps are set on the symlink.\n// If tv is nil, the access and modification times are set to the current time.\n// Otherwise tv must contain exactly 2 elements, with access time as the first\n// element and modification time as the second element.\nfunc Lutimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)\n}\n\n// emptyIovecs reports whether there are no bytes in the slice of Iovec.\nfunc emptyIovecs(iov []Iovec) bool {\n\tfor i := range iov {\n\t\tif iov[i].Len > 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Setrlimit sets a resource limit.\nfunc Setrlimit(resource int, rlim *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64le || ppc64) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall(trap, a1, a2, a3)\n}\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)\n}\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall(trap, a1, a2, a3)\n}\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Many of the following syscalls are not available on all versions of z/OS.\n// Some missing calls have legacy implementations/simulations but others\n// will be missing completely. To achieve consistent failing behaviour on\n// legacy systems, we first test the function pointer via a safeloading\n// mechanism to see if the function exists on a given system. Then execution\n// is branched to either continue the function call, or return an error.\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc initZosLibVec()\n\n//go:noescape\nfunc GetZosLibVec() uintptr\n\nfunc init() {\n\tinitZosLibVec()\n\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACE\\x00\"))[0])))\n\tif r0 != 0 {\n\t\tn, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\tZosTraceLevel = int(n)\n\t\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACEFD\\x00\"))[0])))\n\t\tif r0 != 0 {\n\t\t\tfd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\t\tf := os.NewFile(fd, \"zostracefile\")\n\t\t\tif f != nil {\n\t\t\t\tZosTracefile = f\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n//go:noescape\nfunc CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n//go:noescape\nfunc CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n// -------------------------------\n// pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n//\n//go:nosplit\nfunc ptrtest(uintptr) uint64\n\n// Load memory at ptr location with error handling if the location is invalid\n//\n//go:noescape\nfunc safeload(ptr uintptr) (value uintptr, error uintptr)\n\nconst (\n\tentrypointLocationOffset = 8 // From function descriptor\n\n\txplinkEyecatcher   = 0x00c300c500c500f1 // \".C.E.E.1\"\n\teyecatcherOffset   = 16                 // From function entrypoint (negative)\n\tppa1LocationOffset = 8                  // From function entrypoint (negative)\n\n\tnameLenOffset = 0x14 // From PPA1 start\n\tnameOffset    = 0x16 // From PPA1 start\n)\n\nfunc getPpaOffset(funcptr uintptr) int64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\t// XPLink functions have \".C.E.E.1\" as the first 8 bytes (EBCDIC)\n\tval, err := safeload(entrypoint - eyecatcherOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\tif val != xplinkEyecatcher {\n\t\treturn -1\n\t}\n\n\tppaoff, err := safeload(entrypoint - ppa1LocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\tppaoff >>= 32\n\treturn int64(ppaoff)\n}\n\n//-------------------------------\n// function descriptor pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n\n// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName\n// have correct funcName pass to the funcptrtest function\nfunc funcptrtest(funcptr uintptr, funcName string) uint64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tppaoff := getPpaOffset(funcptr)\n\tif ppaoff == -1 {\n\t\treturn 1\n\t}\n\n\t// PPA1 offset value is from the start of the entire function block, not the entrypoint\n\tppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff)\n\n\tnameLen, err := safeload(ppa1 + nameLenOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tnameLen >>= 48\n\tif nameLen > 128 {\n\t\treturn 1\n\t}\n\n\t// no function name input to argument end here\n\tif funcName == \"\" {\n\t\treturn 0\n\t}\n\n\tvar funcname [128]byte\n\tfor i := 0; i < int(nameLen); i += 8 {\n\t\tv, err := safeload(ppa1 + nameOffset + uintptr(i))\n\t\tif err != 0 {\n\t\t\treturn 1\n\t\t}\n\t\tfuncname[i] = byte(v >> 56)\n\t\tfuncname[i+1] = byte(v >> 48)\n\t\tfuncname[i+2] = byte(v >> 40)\n\t\tfuncname[i+3] = byte(v >> 32)\n\t\tfuncname[i+4] = byte(v >> 24)\n\t\tfuncname[i+5] = byte(v >> 16)\n\t\tfuncname[i+6] = byte(v >> 8)\n\t\tfuncname[i+7] = byte(v)\n\t}\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen})\n\n\tname := string(funcname[:nameLen])\n\tif name != funcName {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// For detection of capabilities on a system.\n// Is function descriptor f a valid function?\nfunc isValidLeFunc(f uintptr) error {\n\tret := funcptrtest(f, \"\")\n\tif ret != 0 {\n\t\treturn fmt.Errorf(\"Bad pointer, not an LE function \")\n\t}\n\treturn nil\n}\n\n// Retrieve function name from descriptor\nfunc getLeFuncName(f uintptr) (string, error) {\n\t// assume it has been checked, only check ppa1 validity here\n\tentry := ((*[2]uintptr)(unsafe.Pointer(f)))[1]\n\tpreamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset)))\n\n\toffsetPpa1 := preamp[2]\n\tif offsetPpa1 > 0x0ffff {\n\t\treturn \"\", fmt.Errorf(\"PPA1 offset seems too big 0x%x\\n\", offsetPpa1)\n\t}\n\n\tppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1)\n\tres := ptrtest(ppa1)\n\tif res != 0 {\n\t\treturn \"\", fmt.Errorf(\"PPA1 address not valid\")\n\t}\n\n\tsize := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset))\n\tif size > 128 {\n\t\treturn \"\", fmt.Errorf(\"Function name seems too long, length=%d\\n\", size)\n\t}\n\n\tvar name [128]byte\n\tfuncname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset))\n\tcopy(name[0:size], funcname[0:size])\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)})\n\n\treturn string(name[:size]), nil\n}\n\n// Check z/OS version\nfunc zosLeVersion() (version, release uint32) {\n\tp1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984)))\n\tvrm := *(*uint32)(unsafe.Pointer(p1 + 80))\n\tversion = (vrm & 0x00ff0000) >> 16\n\trelease = (vrm & 0x0000ff00) >> 8\n\treturn\n}\n\n// returns a zos C FILE * for stdio fd 0, 1, 2\nfunc ZosStdioFilep(fd int32) uintptr {\n\treturn uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3))))))))\n}\n\nfunc copyStat(stat *Stat_t, statLE *Stat_LE_t) {\n\tstat.Dev = uint64(statLE.Dev)\n\tstat.Ino = uint64(statLE.Ino)\n\tstat.Nlink = uint64(statLE.Nlink)\n\tstat.Mode = uint32(statLE.Mode)\n\tstat.Uid = uint32(statLE.Uid)\n\tstat.Gid = uint32(statLE.Gid)\n\tstat.Rdev = uint64(statLE.Rdev)\n\tstat.Size = statLE.Size\n\tstat.Atim.Sec = int64(statLE.Atim)\n\tstat.Atim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Mtim.Sec = int64(statLE.Mtim)\n\tstat.Mtim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Ctim.Sec = int64(statLE.Ctim)\n\tstat.Ctim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Blksize = int64(statLE.Blksize)\n\tstat.Blocks = statLE.Blocks\n}\n\nfunc svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nfunc svcLoad(name *byte) unsafe.Pointer\nfunc svcUnload(name *byte, fnptr unsafe.Pointer) int64\n\nfunc (d *Dirent) NameString() string {\n\tif d == nil {\n\t\treturn \"\"\n\t}\n\ts := string(d.Name[:])\n\tidx := strings.IndexByte(s, 0)\n\tif idx == -1 {\n\t\treturn s\n\t} else {\n\t\treturn s[:idx]\n\t}\n}\n\nfunc DecodeData(dest []byte, sz int, val uint64) {\n\tfor i := 0; i < sz; i++ {\n\t\tdest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff)\n\t}\n}\n\nfunc EncodeData(data []byte) uint64 {\n\tvar value uint64\n\tsz := len(data)\n\tfor i := 0; i < sz; i++ {\n\t\tvalue |= uint64(data[i]) << uint64(((sz - i - 1) * 8))\n\t}\n\treturn value\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\t// TODO(neeilan): Implement use of first param (fd)\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// For z/OS, only replace NUL with @ when the\n\t\t// length is not zero.\n\t\tif pp.Len != 0 && pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t//\n\t\t// For z/OS, the length of the name is a field\n\t\t// in the structure. To be on the safe side, we\n\t\t// will still scan the name for a NUL but only\n\t\t// to the length provided in the structure.\n\t\t//\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < int(pp.Len) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Ctermid() (tty string, err error) {\n\tvar termdev [1025]byte\n\truntime.EnterSyscall()\n\tr0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0])))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\ts := string(termdev[:])\n\tidx := strings.Index(s, string(rune(0)))\n\tif idx == -1 {\n\t\ttty = s\n\t} else {\n\t\ttty = s[:idx]\n\t}\n\treturn\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = int32(length)\n}\n\n//sys   fcntl(fd int, cmd int, arg int) (val int, err error)\n//sys   Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A\n//sys   Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys   Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A\n//sys   Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A\n//sys   Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP\n//sys   munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP\n//sys   ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL\n//sys   ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64\n//sys\tshmdt(addr uintptr) (err error) = SYS_SHMDT\n//sys\tshmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET\n\n//sys   Access(path string, mode uint32) (err error) = SYS___ACCESS_A\n//sys   Chdir(path string) (err error) = SYS___CHDIR_A\n//sys\tChown(path string, uid int, gid int) (err error) = SYS___CHOWN_A\n//sys\tChmod(path string, mode uint32) (err error) = SYS___CHMOD_A\n//sys   Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tDup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3\n//sys\tDirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD\n//sys\tEpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE\n//sys\tEpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1\n//sys\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL\n//sys\tEpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT\n//sys\tErrno2() (er2 int) = SYS___ERRNO2\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\treturn Faccessat(dirfd, path, mode, flags)\n}\n\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL\n//sys\tFdatasync(fd int) (err error) = SYS_FDATASYNC\n//sys\tfstat(fd int, stat *Stat_LE_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstat(fd, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstatat(dirfd, path, &statLE, flags)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error))\n\nvar Getxattr = enter_Getxattr\n\nfunc enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_GetxattrAddr()\n\tif validGetxattr() {\n\t\t*funcref = impl_Getxattr\n\t} else {\n\t\t*funcref = error_Getxattr\n\t}\n\treturn (*funcref)(path, attr, dest)\n}\n\nfunc error_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc validGetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__getxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys   Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A\n//sys   Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A\n\nfunc impl_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Setxattr = enter_Setxattr\n\nfunc enter_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_SetxattrAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Setxattr\n\t} else {\n\t\t*funcref = error_Setxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\treturn ENOSYS\n}\n\nfunc validSetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__setxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS\n//sys\tFstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS\n//sys\tFsync(fd int) (err error)\n//sys\tFutimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES\n//sys\tFutimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM\n//sys\tInotifyInit() (fd int, err error) = SYS_INOTIFY_INIT\n//sys\tInotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A\n//sys\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH\n//sys   Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A\n//sys   Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A\n//sys   Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A\n//sys\tLutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A\n//sys   Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT\n//sys   Msync(b []byte, flags int) (err error) = SYS_MSYNC\n//sys   Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2\n\n// Pipe2 begin\n\n//go:nosplit\nfunc getPipe2Addr() *(func([]int, int) error)\n\nvar Pipe2 = pipe2Enter\n\nfunc pipe2Enter(p []int, flags int) (err error) {\n\tif funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, \"\") == 0 {\n\t\t*getPipe2Addr() = pipe2Impl\n\t} else {\n\t\t*getPipe2Addr() = pipe2Error\n\t}\n\treturn (*getPipe2Addr())(p, flags)\n}\n\nfunc pipe2Impl(p []int, flags int) (err error) {\n\tvar pp [2]_C_int\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\nfunc pipe2Error(p []int, flags int) (err error) {\n\treturn fmt.Errorf(\"Pipe2 is not available on this system\")\n}\n\n// Pipe2 end\n\n//sys   Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL\n\nfunc Readdir(dir uintptr) (dirent *Dirent, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir))\n\truntime.ExitSyscall()\n\tdirent = (*Dirent)(unsafe.Pointer(r0))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//sys\tReaddir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A\n//sys\tStatfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A\n//sys\tSyncfs(fd int) (err error) = SYS_SYNCFS\n//sys   Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES\n//sys   W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT\n//sys   W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A\n\n//sys   mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A\n//sys   unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A\n//sys   Chroot(path string) (err error) = SYS___CHROOT_A\n//sys   Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT\n//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A\n//sys   Unshare(flags int) (err error) = SYS_UNSHARE\n\nfunc Ptsname(fd int) (name string, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tname = u2s(unsafe.Pointer(r0))\n\t}\n\treturn\n}\n\nfunc u2s(cstr unsafe.Pointer) string {\n\tstr := (*[1024]uint8)(cstr)\n\ti := 0\n\tfor str[i] != 0 {\n\t\ti++\n\t}\n\treturn string(str[:i])\n}\n\nfunc Close(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tfor i := 0; e1 == EAGAIN && i < 10; i++ {\n\t\truntime.EnterSyscall()\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10))\n\t\truntime.ExitSyscall()\n\t\truntime.EnterSyscall()\n\t\tr0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\t\truntime.ExitSyscall()\n\t}\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// Dummy function: there are no semantics for Madvise on z/OS\nfunc Madvise(b []byte, advice int) (err error) {\n\treturn\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\nfunc MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset)\n\treturn unsafe.Pointer(xaddr), err\n}\n\nfunc MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) {\n\treturn mapper.munmap(uintptr(addr), length)\n}\n\n//sys   Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error) = SYS_GETPGID\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetppid() (pid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT\n\n//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tvar ruz rusage_zos\n\terr = getrusage(who, &ruz)\n\t//Only the first two fields of Rusage are set\n\trusage.Utime.Sec = ruz.Utime.Sec\n\trusage.Utime.Usec = int64(ruz.Utime.Usec)\n\trusage.Stime.Sec = ruz.Stime.Sec\n\trusage.Stime.Usec = int64(ruz.Stime.Usec)\n\treturn\n}\n\n//sys\tGetegid() (egid int) = SYS_GETEGID\n//sys\tGeteuid() (euid int) = SYS_GETEUID\n//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID\n//sysnb\tGetuid() (uid int)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A\n//sys\tLink(path string, link string) (err error) = SYS___LINK_A\n//sys\tLinkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = lstat(path, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\n// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/\nfunc isSpecialPath(path []byte) (v bool) {\n\tvar special = [4][8]byte{\n\t\t{'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'},\n\t\t{'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'},\n\t\t{'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'},\n\t\t{'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}}\n\n\tvar i, j int\n\tfor i = 0; i < len(special); i++ {\n\t\tfor j = 0; j < len(special[i]); j++ {\n\t\t\tif path[j] != special[i][j] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif j == len(special[i]) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc realpath(srcpath string, abspath []byte) (pathlen int, errno int) {\n\tvar source [1024]byte\n\tcopy(source[:], srcpath)\n\tsource[len(srcpath)] = 0\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a()\n\t\t[]uintptr{uintptr(unsafe.Pointer(&source[0])),\n\t\t\tuintptr(unsafe.Pointer(&abspath[0]))})\n\tif ret != 0 {\n\t\tindex := bytes.IndexByte(abspath[:], byte(0))\n\t\tif index != -1 {\n\t\t\treturn index, 0\n\t\t}\n\t} else {\n\t\terrptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno()\n\t\treturn 0, *errptr\n\t}\n\treturn 0, 245 // EBADDATA   245\n}\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tn = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4,\n\t\t[]uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))}))\n\truntime.KeepAlive(unsafe.Pointer(_p0))\n\tif n == -1 {\n\t\tvalue := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{})))\n\t\terr = errnoErr(Errno(value))\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc impl_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t\treturn n, err\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error))\n\nvar Readlinkat = enter_Readlinkat\n\nfunc enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tfuncref := get_ReadlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Readlinkat\n\t} else {\n\t\t*funcref = error_Readlinkat\n\t}\n\treturn (*funcref)(dirfd, path, buf)\n}\n\nfunc error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n//sys\tMkdir(path string, mode uint32) (err error) = SYS___MKDIR_A\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A\n//sys   Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A\n//sys\tMknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A\n//sys\tPivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A\n//sysnb\tPrlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT\n//sys\tRename(from string, to string) (err error) = SYS___RENAME_A\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A\n//sys\tRmdir(path string) (err error) = SYS___RMDIR_A\n//sys   Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSetegid(egid int) (err error) = SYS_SETEGID\n//sys\tSeteuid(euid int) (err error) = SYS_SETEUID\n//sys\tSethostname(p []byte) (err error) = SYS___SETHOSTNAME_A\n//sys   Setns(fd int, nstype int) (err error) = SYS_SETNS\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error) = SYS_SETPGID\n//sysnb\tSetrlimit(resource int, lim *Rlimit) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error) = SYS_SETREGID\n//sysnb\tSetreuid(ruid int, euid int) (err error) = SYS_SETREUID\n//sysnb\tSetsid() (pid int, err error) = SYS_SETSID\n//sys\tSetuid(uid int) (err error) = SYS_SETUID\n//sys\tSetgid(uid int) (err error) = SYS_SETGID\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tstat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A\n\nfunc Stat(path string, sta *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = stat(path, &statLE)\n\tcopyStat(sta, &statLE)\n\treturn\n}\n\n//sys\tSymlink(path string, link string) (err error) = SYS___SYMLINK_A\n//sys\tSymlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A\n//sys\tSync() = SYS_SYNC\n//sys\tTruncate(path string, length int64) (err error) = SYS___TRUNCATE_A\n//sys\tTcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR\n//sys\tTcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR\n//sys\tUmask(mask int) (oldmask int)\n//sys\tUnlink(path string) (err error) = SYS___UNLINK_A\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A\n//sys\tUtime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A\n\n//sys\topen(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tif mode&O_ACCMODE == 0 {\n\t\tmode |= O_RDONLY\n\t}\n\treturn open(path, mode, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tif flags&O_ACCMODE == 0 {\n\t\tflags |= O_RDONLY\n\t}\n\treturn openat(dirfd, path, flags, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\tif how.Flags&O_ACCMODE == 0 {\n\t\thow.Flags |= O_RDONLY\n\t}\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc ZosFdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\truntime.EnterSyscall()\n\tret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0])))\n\truntime.ExitSyscall()\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb))\n\t\treturn string(buffer[:zb]), nil\n\t}\n\treturn \"\", errnoErr2(e1, e2)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\treturn remove(path)\n}\n\nconst ImplementsGetwd = true\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar p unsafe.Pointer\n\tif len(buf) > 0 {\n\t\tp = unsafe.Pointer(&buf[0])\n\t} else {\n\t\tp = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = clen(buf) + 1\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count.  Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\nfunc gettid() uint64\n\nfunc Gettid() (tid int) {\n\treturn int(gettid())\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.  At least that's the idea.\n// There are various irregularities.  For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twaitid(idType int, id int, info *Siginfo, options int) (err error)\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\treturn waitid(idType, id, info, options)\n}\n\n//sys\twaitpid(pid int, wstatus *_C_int, options int) (wpid int, err error)\n\nfunc impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error))\n\nvar Wait4 = enter_Wait4\n\nfunc enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tfuncref := get_Wait4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, \"\") == 0 {\n\t\t*funcref = impl_Wait4\n\t} else {\n\t\t*funcref = legacyWait4\n\t}\n\treturn (*funcref)(pid, wstatus, options, rusage)\n}\n\nfunc legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\t// TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want.\n\t// At the moment rusage will not be touched.\n\tvar status _C_int\n\twpid, err = waitpid(pid, &status, options)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sysnb\tgettimeofday(tv *timeval_zos) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar tvz timeval_zos\n\terr = gettimeofday(&tvz)\n\ttv.Sec = tvz.Sec\n\ttv.Usec = int64(tvz.Usec)\n\treturn\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval { //fix\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A\n\nfunc validUtimensat() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil {\n\t\t\treturn name == \"__utimensat_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Begin UtimesNano\n\n//go:nosplit\nfunc get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error))\n\nvar UtimesNano = enter_UtimesNano\n\nfunc enter_UtimesNano(path string, ts []Timespec) (err error) {\n\tfuncref := get_UtimesNanoAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoImpl\n\t} else {\n\t\t*funcref = legacyUtimesNano\n\t}\n\treturn (*funcref)(path, ts)\n}\n\nfunc utimesNanoImpl(path string, ts []Timespec) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc legacyUtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// End UtimesNano\n\n// Begin UtimesNanoAt\n\n//go:nosplit\nfunc get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error))\n\nvar UtimesNanoAt = enter_UtimesNanoAt\n\nfunc enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tfuncref := get_UtimesNanoAtAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoAtImpl\n\t} else {\n\t\t*funcref = legacyUtimesNanoAt\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif path[0] != '/' {\n\t\tdirPath, err := ZosFdToPath(dirfd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpath = dirPath + \"/\" + path\n\t}\n\tif flags == AT_SYMLINK_NOFOLLOW {\n\t\tif len(ts) != 2 {\n\t\t\treturn EINVAL\n\t\t}\n\n\t\tif ts[0].Nsec >= 5e8 {\n\t\t\tts[0].Sec++\n\t\t}\n\t\tts[0].Nsec = 0\n\t\tif ts[1].Nsec >= 5e8 {\n\t\t\tts[1].Sec++\n\t\t}\n\t\tts[1].Nsec = 0\n\n\t\t// Not as efficient as it could be because Timespec and\n\t\t// Timeval have different types in the different OSes\n\t\ttv := []Timeval{\n\t\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t\t}\n\t\treturn Lutimes(path, tv)\n\t}\n\treturn UtimesNano(path, ts)\n}\n\n// End UtimesNanoAt\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS )\n\treturn anyToSockaddr(0, &rsa)\n}\n\nconst (\n\t// identifier constants\n\tnwmHeaderIdentifier    = 0xd5e6d4c8\n\tnwmFilterIdentifier    = 0xd5e6d4c6\n\tnwmTCPConnIdentifier   = 0xd5e6d4c3\n\tnwmRecHeaderIdentifier = 0xd5e6d4d9\n\tnwmIPStatsIdentifier   = 0xd5e6d4c9d7e2e340\n\tnwmIPGStatsIdentifier  = 0xd5e6d4c9d7c7e2e3\n\tnwmTCPStatsIdentifier  = 0xd5e6d4e3c3d7e2e3\n\tnwmUDPStatsIdentifier  = 0xd5e6d4e4c4d7e2e3\n\tnwmICMPGStatsEntry     = 0xd5e6d4c9c3d4d7c7\n\tnwmICMPTStatsEntry     = 0xd5e6d4c9c3d4d7e3\n\n\t// nwmHeader constants\n\tnwmVersion1   = 1\n\tnwmVersion2   = 2\n\tnwmCurrentVer = 2\n\n\tnwmTCPConnType     = 1\n\tnwmGlobalStatsType = 14\n\n\t// nwmFilter constants\n\tnwmFilterLclAddrMask = 0x20000000 // Local address\n\tnwmFilterSrcAddrMask = 0x20000000 // Source address\n\tnwmFilterLclPortMask = 0x10000000 // Local port\n\tnwmFilterSrcPortMask = 0x10000000 // Source port\n\n\t// nwmConnEntry constants\n\tnwmTCPStateClosed   = 1\n\tnwmTCPStateListen   = 2\n\tnwmTCPStateSynSent  = 3\n\tnwmTCPStateSynRcvd  = 4\n\tnwmTCPStateEstab    = 5\n\tnwmTCPStateFinWait1 = 6\n\tnwmTCPStateFinWait2 = 7\n\tnwmTCPStateClosWait = 8\n\tnwmTCPStateLastAck  = 9\n\tnwmTCPStateClosing  = 10\n\tnwmTCPStateTimeWait = 11\n\tnwmTCPStateDeletTCB = 12\n\n\t// Existing constants on linux\n\tBPF_TCP_CLOSE        = 1\n\tBPF_TCP_LISTEN       = 2\n\tBPF_TCP_SYN_SENT     = 3\n\tBPF_TCP_SYN_RECV     = 4\n\tBPF_TCP_ESTABLISHED  = 5\n\tBPF_TCP_FIN_WAIT1    = 6\n\tBPF_TCP_FIN_WAIT2    = 7\n\tBPF_TCP_CLOSE_WAIT   = 8\n\tBPF_TCP_LAST_ACK     = 9\n\tBPF_TCP_CLOSING      = 10\n\tBPF_TCP_TIME_WAIT    = 11\n\tBPF_TCP_NEW_SYN_RECV = -1\n\tBPF_TCP_MAX_STATES   = -2\n)\n\ntype nwmTriplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n}\n\ntype nwmQuadruplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n\tmatch  uint32\n}\n\ntype nwmHeader struct {\n\tident       uint32\n\tlength      uint32\n\tversion     uint16\n\tnwmType     uint16\n\tbytesNeeded uint32\n\toptions     uint32\n\t_           [16]byte\n\tinputDesc   nwmTriplet\n\toutputDesc  nwmQuadruplet\n}\n\ntype nwmFilter struct {\n\tident         uint32\n\tflags         uint32\n\tresourceName  [8]byte\n\tresourceId    uint32\n\tlistenerId    uint32\n\tlocal         [28]byte // union of sockaddr4 and sockaddr6\n\tremote        [28]byte // union of sockaddr4 and sockaddr6\n\t_             uint16\n\t_             uint16\n\tasid          uint16\n\t_             [2]byte\n\ttnLuName      [8]byte\n\ttnMonGrp      uint32\n\ttnAppl        [8]byte\n\tapplData      [40]byte\n\tnInterface    [16]byte\n\tdVipa         [16]byte\n\tdVipaPfx      uint16\n\tdVipaPort     uint16\n\tdVipaFamily   byte\n\t_             [3]byte\n\tdestXCF       [16]byte\n\tdestXCFPfx    uint16\n\tdestXCFFamily byte\n\t_             [1]byte\n\ttargIP        [16]byte\n\ttargIPPfx     uint16\n\ttargIPFamily  byte\n\t_             [1]byte\n\t_             [20]byte\n}\n\ntype nwmRecHeader struct {\n\tident  uint32\n\tlength uint32\n\tnumber byte\n\t_      [3]byte\n}\n\ntype nwmTCPStatsEntry struct {\n\tident             uint64\n\tcurrEstab         uint32\n\tactiveOpened      uint32\n\tpassiveOpened     uint32\n\tconnClosed        uint32\n\testabResets       uint32\n\tattemptFails      uint32\n\tpassiveDrops      uint32\n\ttimeWaitReused    uint32\n\tinSegs            uint64\n\tpredictAck        uint32\n\tpredictData       uint32\n\tinDupAck          uint32\n\tinBadSum          uint32\n\tinBadLen          uint32\n\tinShort           uint32\n\tinDiscOldTime     uint32\n\tinAllBeforeWin    uint32\n\tinSomeBeforeWin   uint32\n\tinAllAfterWin     uint32\n\tinSomeAfterWin    uint32\n\tinOutOfOrder      uint32\n\tinAfterClose      uint32\n\tinWinProbes       uint32\n\tinWinUpdates      uint32\n\toutWinUpdates     uint32\n\toutSegs           uint64\n\toutDelayAcks      uint32\n\toutRsts           uint32\n\tretransSegs       uint32\n\tretransTimeouts   uint32\n\tretransDrops      uint32\n\tpmtuRetrans       uint32\n\tpmtuErrors        uint32\n\toutWinProbes      uint32\n\tprobeDrops        uint32\n\tkeepAliveProbes   uint32\n\tkeepAliveDrops    uint32\n\tfinwait2Drops     uint32\n\tacceptCount       uint64\n\tinBulkQSegs       uint64\n\tinDiscards        uint64\n\tconnFloods        uint32\n\tconnStalls        uint32\n\tcfgEphemDef       uint16\n\tephemInUse        uint16\n\tephemHiWater      uint16\n\tflags             byte\n\t_                 [1]byte\n\tephemExhaust      uint32\n\tsmcRCurrEstabLnks uint32\n\tsmcRLnkActTimeOut uint32\n\tsmcRActLnkOpened  uint32\n\tsmcRPasLnkOpened  uint32\n\tsmcRLnksClosed    uint32\n\tsmcRCurrEstab     uint32\n\tsmcRActiveOpened  uint32\n\tsmcRPassiveOpened uint32\n\tsmcRConnClosed    uint32\n\tsmcRInSegs        uint64\n\tsmcROutSegs       uint64\n\tsmcRInRsts        uint32\n\tsmcROutRsts       uint32\n\tsmcDCurrEstabLnks uint32\n\tsmcDActLnkOpened  uint32\n\tsmcDPasLnkOpened  uint32\n\tsmcDLnksClosed    uint32\n\tsmcDCurrEstab     uint32\n\tsmcDActiveOpened  uint32\n\tsmcDPassiveOpened uint32\n\tsmcDConnClosed    uint32\n\tsmcDInSegs        uint64\n\tsmcDOutSegs       uint64\n\tsmcDInRsts        uint32\n\tsmcDOutRsts       uint32\n}\n\ntype nwmConnEntry struct {\n\tident             uint32\n\tlocal             [28]byte // union of sockaddr4 and sockaddr6\n\tremote            [28]byte // union of sockaddr4 and sockaddr6\n\tstartTime         [8]byte  // uint64, changed to prevent padding from being inserted\n\tlastActivity      [8]byte  // uint64\n\tbytesIn           [8]byte  // uint64\n\tbytesOut          [8]byte  // uint64\n\tinSegs            [8]byte  // uint64\n\toutSegs           [8]byte  // uint64\n\tstate             uint16\n\tactiveOpen        byte\n\tflag01            byte\n\toutBuffered       uint32\n\tinBuffered        uint32\n\tmaxSndWnd         uint32\n\treXmtCount        uint32\n\tcongestionWnd     uint32\n\tssThresh          uint32\n\troundTripTime     uint32\n\troundTripVar      uint32\n\tsendMSS           uint32\n\tsndWnd            uint32\n\trcvBufSize        uint32\n\tsndBufSize        uint32\n\toutOfOrderCount   uint32\n\tlcl0WindowCount   uint32\n\trmt0WindowCount   uint32\n\tdupacks           uint32\n\tflag02            byte\n\tsockOpt6Cont      byte\n\tasid              uint16\n\tresourceName      [8]byte\n\tresourceId        uint32\n\tsubtask           uint32\n\tsockOpt           byte\n\tsockOpt6          byte\n\tclusterConnFlag   byte\n\tproto             byte\n\ttargetAppl        [8]byte\n\tluName            [8]byte\n\tclientUserId      [8]byte\n\tlogMode           [8]byte\n\ttimeStamp         uint32\n\ttimeStampAge      uint32\n\tserverResourceId  uint32\n\tintfName          [16]byte\n\tttlsStatPol       byte\n\tttlsStatConn      byte\n\tttlsSSLProt       uint16\n\tttlsNegCiph       [2]byte\n\tttlsSecType       byte\n\tttlsFIPS140Mode   byte\n\tttlsUserID        [8]byte\n\tapplData          [40]byte\n\tinOldestTime      [8]byte // uint64\n\toutOldestTime     [8]byte // uint64\n\ttcpTrustedPartner byte\n\t_                 [3]byte\n\tbulkDataIntfName  [16]byte\n\tttlsNegCiph4      [4]byte\n\tsmcReason         uint32\n\tlclSMCLinkId      uint32\n\trmtSMCLinkId      uint32\n\tsmcStatus         byte\n\tsmcFlags          byte\n\t_                 [2]byte\n\trcvWnd            uint32\n\tlclSMCBufSz       uint32\n\trmtSMCBufSz       uint32\n\tttlsSessID        [32]byte\n\tttlsSessIDLen     int16\n\t_                 [1]byte\n\tsmcDStatus        byte\n\tsmcDReason        uint32\n}\n\nvar svcNameTable [][]byte = [][]byte{\n\t[]byte(\"\\xc5\\xe9\\xc2\\xd5\\xd4\\xc9\\xc6\\xf4\"), // svc_EZBNMIF4\n}\n\nconst (\n\tsvc_EZBNMIF4 = 0\n)\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tjobname := []byte(\"\\x5c\\x40\\x40\\x40\\x40\\x40\\x40\\x40\") // \"*\"\n\tresponseBuffer := [4096]byte{0}\n\tvar bufferAlet, reasonCode uint32 = 0, 0\n\tvar bufferLen, returnValue, returnCode int32 = 4096, 0, 0\n\n\tdsa := [18]uint64{0}\n\tvar argv [7]unsafe.Pointer\n\targv[0] = unsafe.Pointer(&jobname[0])\n\targv[1] = unsafe.Pointer(&responseBuffer[0])\n\targv[2] = unsafe.Pointer(&bufferAlet)\n\targv[3] = unsafe.Pointer(&bufferLen)\n\targv[4] = unsafe.Pointer(&returnValue)\n\targv[5] = unsafe.Pointer(&returnCode)\n\targv[6] = unsafe.Pointer(&reasonCode)\n\n\trequest := (*struct {\n\t\theader nwmHeader\n\t\tfilter nwmFilter\n\t})(unsafe.Pointer(&responseBuffer[0]))\n\n\tEZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0])\n\tif EZBNMIF4 == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetGlobalStats EZBNMIF4 call\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmGlobalStatsType\n\trequest.header.options = 0x80000000\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmRecHeader\n\trecHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif recHeader.ident != nwmRecHeaderIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Parse nwmTriplets to get offsets of returned entries\n\tvar sections []*uint64\n\tvar sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0]))\n\tfor i := uint32(0); i < uint32(recHeader.number); i++ {\n\t\toffset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc))\n\t\tsectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset]))\n\t\tfor j := uint32(0); j < sectionDesc.number; j++ {\n\t\t\toffset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length\n\t\t\tsections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset])))\n\t\t}\n\t}\n\n\t// Find nwmTCPStatsEntry in returned entries\n\tvar tcpStats *nwmTCPStatsEntry = nil\n\tfor _, ptr := range sections {\n\t\tswitch *ptr {\n\t\tcase nwmTCPStatsIdentifier:\n\t\t\tif tcpStats != nil {\n\t\t\t\treturn nil, errnoErr(EINVAL)\n\t\t\t}\n\t\t\ttcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr))\n\t\tcase nwmIPStatsIdentifier:\n\t\tcase nwmIPGStatsIdentifier:\n\t\tcase nwmUDPStatsIdentifier:\n\t\tcase nwmICMPGStatsEntry:\n\t\tcase nwmICMPTStatsEntry:\n\t\tdefault:\n\t\t\treturn nil, errnoErr(EINVAL)\n\t\t}\n\t}\n\tif tcpStats == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetConnectionDetail EZBNMIF4 call\n\tresponseBuffer = [4096]byte{0}\n\tdsa = [18]uint64{0}\n\tbufferAlet, reasonCode = 0, 0\n\tbufferLen, returnValue, returnCode = 4096, 0, 0\n\tnameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process\n\tnameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12)))\n\targv[0] = unsafe.Pointer(uintptr(*nameptr))\n\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmTCPConnType\n\trequest.header.options = 0x80000000\n\n\trequest.filter.ident = nwmFilterIdentifier\n\n\tvar localSockaddr RawSockaddrAny\n\tsocklen := _Socklen(SizeofSockaddrAny)\n\terr := getsockname(fd, &localSockaddr, &socklen)\n\tif err != nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\tif localSockaddr.Addr.Family == AF_INET {\n\t\tlocalSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET\n\t\tvar i int\n\t\tfor i = 0; i < 4; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 4 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 4; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t} else if localSockaddr.Addr.Family == AF_INET6 {\n\t\tlocalSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET6\n\t\tvar i int\n\t\tfor i = 0; i < 16; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 16 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 16; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t}\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmConnEntry\n\tconn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif conn.ident != nwmTCPConnIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Copy data from the returned data structures into tcpInfo\n\t// Stats from nwmConnEntry are specific to that connection.\n\t// Stats from nwmTCPStatsEntry are global (to the interface?)\n\t// Fields may not be an exact match. Some fields have no equivalent.\n\tvar tcpinfo TCPInfo\n\ttcpinfo.State = uint8(conn.state)\n\ttcpinfo.Ca_state = 0 // dummy\n\ttcpinfo.Retransmits = uint8(tcpStats.retransSegs)\n\ttcpinfo.Probes = uint8(tcpStats.outWinProbes)\n\ttcpinfo.Backoff = 0 // dummy\n\ttcpinfo.Options = 0 // dummy\n\ttcpinfo.Rto = tcpStats.retransTimeouts\n\ttcpinfo.Ato = tcpStats.outDelayAcks\n\ttcpinfo.Snd_mss = conn.sendMSS\n\ttcpinfo.Rcv_mss = conn.sendMSS // dummy\n\ttcpinfo.Unacked = 0            // dummy\n\ttcpinfo.Sacked = 0             // dummy\n\ttcpinfo.Lost = 0               // dummy\n\ttcpinfo.Retrans = conn.reXmtCount\n\ttcpinfo.Fackets = 0 // dummy\n\ttcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0])))\n\ttcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0])))\n\ttcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate\n\ttcpinfo.Rcv_ssthresh = conn.ssThresh\n\ttcpinfo.Rtt = conn.roundTripTime\n\ttcpinfo.Rttvar = conn.roundTripVar\n\ttcpinfo.Snd_ssthresh = conn.ssThresh // dummy\n\ttcpinfo.Snd_cwnd = conn.congestionWnd\n\ttcpinfo.Advmss = conn.sendMSS        // dummy\n\ttcpinfo.Reordering = 0               // dummy\n\ttcpinfo.Rcv_rtt = conn.roundTripTime // dummy\n\ttcpinfo.Rcv_space = conn.sendMSS     // dummy\n\ttcpinfo.Total_retrans = conn.reXmtCount\n\n\tsvcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4)\n\n\treturn &tcpinfo, nil\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = SizeofSockaddrAny\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\t// TODO(neeilan): Remove 0 arg added to get this compiling on z/OS\n\t\tfrom, err = anyToSockaddr(0, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tvar err error\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = int32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc Opendir(name string) (uintptr, error) {\n\tp, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\terr = nil\n\truntime.EnterSyscall()\n\tdir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p)))\n\truntime.ExitSyscall()\n\truntime.KeepAlive(unsafe.Pointer(p))\n\tif dir == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn dir, err\n}\n\n// clearsyscall.Errno resets the errno value to 0.\nfunc clearErrno()\n\nfunc Closedir(dir uintptr) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc Seekdir(dir uintptr, pos int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos))\n\truntime.ExitSyscall()\n}\n\nfunc Telldir(dir uintptr) (int, error) {\n\tp, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir)\n\tpos := int(p)\n\tif int64(p) == -1 {\n\t\treturn pos, errnoErr2(e1, e2)\n\t}\n\treturn pos, nil\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t// struct flock is packed on z/OS. We can't emulate that in Go so\n\t// instead we pack it here.\n\tvar flock [24]byte\n\t*(*int16)(unsafe.Pointer(&flock[0])) = lk.Type\n\t*(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence\n\t*(*int64)(unsafe.Pointer(&flock[4])) = lk.Start\n\t*(*int64)(unsafe.Pointer(&flock[12])) = lk.Len\n\t*(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock)))\n\truntime.ExitSyscall()\n\tlk.Type = *(*int16)(unsafe.Pointer(&flock[0]))\n\tlk.Whence = *(*int16)(unsafe.Pointer(&flock[2]))\n\tlk.Start = *(*int64)(unsafe.Pointer(&flock[4]))\n\tlk.Len = *(*int64)(unsafe.Pointer(&flock[12]))\n\tlk.Pid = *(*int32)(unsafe.Pointer(&flock[20]))\n\tif r0 == 0 {\n\t\treturn nil\n\t}\n\treturn errnoErr2(e1, e2)\n}\n\nfunc impl_Flock(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlockAddr() *(func(fd int, how int) (err error))\n\nvar Flock = enter_Flock\n\nfunc validFlock(fp uintptr) bool {\n\tif funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil {\n\t\t\treturn name == \"flock\"\n\t\t}\n\t}\n\treturn false\n}\n\nfunc enter_Flock(fd int, how int) (err error) {\n\tfuncref := get_FlockAddr()\n\tif validFlock(GetZosLibVec() + SYS_FLOCK<<4) {\n\t\t*funcref = impl_Flock\n\t} else {\n\t\t*funcref = legacyFlock\n\t}\n\treturn (*funcref)(fd, how)\n}\n\nfunc legacyFlock(fd int, how int) error {\n\n\tvar flock_type int16\n\tvar fcntl_cmd int\n\n\tswitch how {\n\tcase LOCK_SH | LOCK_NB:\n\t\tflock_type = F_RDLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX | LOCK_NB:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLKW\n\tcase LOCK_UN:\n\t\tflock_type = F_UNLCK\n\t\tfcntl_cmd = F_SETLKW\n\tdefault:\n\t}\n\n\tflock := Flock_t{\n\t\tType:   int16(flock_type),\n\t\tWhence: int16(0),\n\t\tStart:  int64(0),\n\t\tLen:    int64(0),\n\t\tPid:    int32(Getppid()),\n\t}\n\n\terr := FcntlFlock(uintptr(fd), fcntl_cmd, &flock)\n\treturn err\n}\n\nfunc Mlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlock2(b []byte, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlockall(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlockall() (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc ClockGettime(clockid int32, ts *Timespec) error {\n\n\tvar ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise\n\tvar nsec_per_sec int64 = 1000000000\n\n\tif ts == nil {\n\t\treturn EFAULT\n\t}\n\tif clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC {\n\t\tvar nanotime int64 = runtime.Nanotime1()\n\t\tts.Sec = nanotime / nsec_per_sec\n\t\tts.Nsec = nanotime % nsec_per_sec\n\t} else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID {\n\t\tvar tm Tms\n\t\t_, err := Times(&tm)\n\t\tif err != nil {\n\t\t\treturn EFAULT\n\t\t}\n\t\tts.Sec = int64(tm.Utime / ticks_per_sec)\n\t\tts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec)\n\t} else {\n\t\treturn EINVAL\n\t}\n\treturn nil\n}\n\n// Chtag\n\n//go:nosplit\nfunc get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error)\n\nvar Chtag = enter_Chtag\n\nfunc enter_Chtag(path string, ccsid uint64, textbit uint64) error {\n\tfuncref := get_ChtagAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Chtag\n\t} else {\n\t\t*funcref = legacy_Chtag\n\t}\n\treturn (*funcref)(path, ccsid, textbit)\n}\n\nfunc legacy_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [8]byte\n\tDecodeData(tag_buff[:], 8, tag)\n\treturn Setxattr(path, \"filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\nfunc impl_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [4]byte\n\tDecodeData(tag_buff[:], 4, tag)\n\treturn Setxattr(path, \"system.filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\n// End of Chtag\n\n// Nanosleep\n\n//go:nosplit\nfunc get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error)\n\nvar Nanosleep = enter_Nanosleep\n\nfunc enter_Nanosleep(time *Timespec, leftover *Timespec) error {\n\tfuncref := get_NanosleepAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, \"\") == 0 {\n\t\t*funcref = impl_Nanosleep\n\t} else {\n\t\t*funcref = legacyNanosleep\n\t}\n\treturn (*funcref)(time, leftover)\n}\n\nfunc impl_Nanosleep(time *Timespec, leftover *Timespec) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc legacyNanosleep(time *Timespec, leftover *Timespec) error {\n\tt0 := runtime.Nanotime1()\n\tvar secrem uint32\n\tvar nsecrem uint32\n\ttotal := time.Sec*1000000000 + time.Nsec\n\telapsed := runtime.Nanotime1() - t0\n\tvar rv int32\n\tvar rc int32\n\tvar err error\n\t// repeatedly sleep for 1 second until less than 1 second left\n\tfor total-elapsed > 1000000000 {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t\tif rv != 0 && rc != 112 { // 112 is EAGAIN\n\t\t\tif leftover != nil && rc == 120 { // 120 is EINTR\n\t\t\t\tleftover.Sec = int64(secrem)\n\t\t\t\tleftover.Nsec = int64(nsecrem)\n\t\t\t}\n\t\t\terr = Errno(rc)\n\t\t\treturn err\n\t\t}\n\t\telapsed = runtime.Nanotime1() - t0\n\t}\n\t// sleep the remainder\n\tif total > elapsed {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t}\n\tif leftover != nil && rc == 120 {\n\t\tleftover.Sec = int64(secrem)\n\t\tleftover.Nsec = int64(nsecrem)\n\t}\n\tif rv != 0 && rc != 112 {\n\t\terr = Errno(rc)\n\t}\n\treturn err\n}\n\n// End of Nanosleep\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar ZosTraceLevel int\nvar ZosTracefile *os.File\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\nvar reg *regexp.Regexp\n\n// enhanced with zos specific errno2\nfunc errnoErr2(e Errno, e2 uintptr) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\t\t/*\n\t\t\tAllow the retrieval of errno2 for EINVAL and ENOENT on zos\n\t\t\t\tcase EINVAL:\n\t\t\t\t\treturn errEINVAL\n\t\t\t\tcase ENOENT:\n\t\t\t\t\treturn errENOENT\n\t\t*/\n\t}\n\tif ZosTraceLevel > 0 {\n\t\tvar name string\n\t\tif reg == nil {\n\t\t\treg = regexp.MustCompile(\"(^unix\\\\.[^/]+$|.*\\\\/unix\\\\.[^/]+$)\")\n\t\t}\n\t\ti := 1\n\t\tpc, file, line, ok := runtime.Caller(i)\n\t\tif ok {\n\t\t\tname = runtime.FuncForPC(pc).Name()\n\t\t}\n\t\tfor ok && reg.MatchString(runtime.FuncForPC(pc).Name()) {\n\t\t\ti += 1\n\t\t\tpc, file, line, ok = runtime.Caller(i)\n\t\t}\n\t\tif ok {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"From %s:%d\\n\", file, line)\n\t\t\t\tZosConsolePrintf(\"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"From %s:%d\\n\", file, line)\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t}\n\t\t} else {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t}\n\t\t}\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Set __MAP_64 by default\n\tflags |= __MAP_64\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Slice memory layout\n\tvar sl = struct {\n\t\taddr uintptr\n\t\tlen  int\n\t\tcap  int\n\t}{addr, length, length}\n\n\t// Use unsafe to turn sl into a []byte.\n\tb := *(*[]byte)(unsafe.Pointer(&sl))\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, n, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, flags, ptr, n)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\nfunc Getag(path string) (ccsid uint16, flag uint16, err error) {\n\tvar val [8]byte\n\tsz, err := Getxattr(path, \"ccsid\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tccsid = uint16(EncodeData(val[0:sz]))\n\tsz, err = Getxattr(path, \"flags\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tflag = uint16(EncodeData(val[0:sz]) >> 15)\n\treturn\n}\n\n// Mount begin\nfunc impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(data)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error))\n\nvar Mount = enter_Mount\n\nfunc enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tfuncref := get_MountAddr()\n\tif validMount() {\n\t\t*funcref = impl_Mount\n\t} else {\n\t\t*funcref = legacyMount\n\t}\n\treturn (*funcref)(source, target, fstype, flags, data)\n}\n\nfunc legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tif needspace := 8 - len(fstype); needspace <= 0 {\n\t\tfstype = fstype[0:8]\n\t} else {\n\t\tfstype += \"        \"[0:needspace]\n\t}\n\treturn mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data)\n}\n\nfunc validMount() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil {\n\t\t\treturn name == \"__mount1_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Mount end\n\n// Unmount begin\nfunc impl_Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnmountAddr() *(func(target string, flags int) (err error))\n\nvar Unmount = enter_Unmount\n\nfunc enter_Unmount(target string, flags int) (err error) {\n\tfuncref := get_UnmountAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unmount\n\t} else {\n\t\t*funcref = legacyUnmount\n\t}\n\treturn (*funcref)(target, flags)\n}\n\nfunc legacyUnmount(name string, mtm int) (err error) {\n\t// mountpoint is always a full path and starts with a '/'\n\t// check if input string is not a mountpoint but a filesystem name\n\tif name[0] != '/' {\n\t\treturn unmount_LE(name, mtm)\n\t}\n\t// treat name as mountpoint\n\tb2s := func(arr []byte) string {\n\t\tvar str string\n\t\tfor i := 0; i < len(arr); i++ {\n\t\t\tif arr[i] == 0 {\n\t\t\t\tstr = string(arr[:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn str\n\t}\n\tvar buffer struct {\n\t\theader W_Mnth\n\t\tfsinfo [64]W_Mntent\n\t}\n\tfs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer)))\n\tif err == nil {\n\t\terr = EINVAL\n\t\tfor i := 0; i < fs_count; i++ {\n\t\t\tif b2s(buffer.fsinfo[i].Mountpoint[:]) == name {\n\t\t\t\terr = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t} else if fs_count == 0 {\n\t\terr = EINVAL\n\t}\n\treturn err\n}\n\n// Unmount end\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\nfunc direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) {\n\tvar d Dirent\n\n\td.Ino = uint64(dirent.Ino)\n\toffset, err := Telldir(dir)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Off = int64(offset)\n\ts := string(bytes.Split(dirent.Name[:], []byte{0})[0])\n\tcopy(d.Name[:], s)\n\n\td.Reclen = uint16(24 + len(d.NameString()))\n\tvar st Stat_t\n\tpath = path + \"/\" + s\n\terr = Lstat(path, &st)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Type = uint8(st.Mode >> 24)\n\treturn d, err\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulation of Getdirentries port from the Darwin implementation.\n\t// COMMENTS FROM DARWIN:\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// Get path from fd to avoid unavailable call (fdopendir)\n\tpath, err := ZosFdToPath(fd)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := Opendir(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer Closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entryLE direntLE\n\t\tvar entrypLE *direntLE\n\t\te := Readdir_r(d, &entryLE, &entrypLE)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\t\tif entrypLE == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\t// Dirent on zos has a different structure\n\t\tentry, e := direntLeToDirentUnix(&entryLE, d, path)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\nfunc Err2ad() (eadd *int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4)\n\teadd = (*int)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc ZosConsolePrintf(format string, v ...interface{}) (int, error) {\n\ttype __cmsg struct {\n\t\t_            uint16\n\t\t_            [2]uint8\n\t\t__msg_length uint32\n\t\t__msg        uintptr\n\t\t_            [4]uint8\n\t}\n\tmsg := fmt.Sprintf(format, v...)\n\tstrptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data)\n\tlen := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len\n\tcmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)}\n\tcmd := uint32(0)\n\truntime.EnterSyscall()\n\trc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd)))\n\truntime.ExitSyscall()\n\tif rc != 0 {\n\t\treturn 0, fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\treturn 0, nil\n}\nfunc ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) {\n\tif nullterm {\n\t\tebcdicBytes = []byte(str + \"\\x00\")\n\t} else {\n\t\tebcdicBytes = []byte(str)\n\t}\n\tA2e(ebcdicBytes)\n\treturn\n}\nfunc ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) {\n\tres := make([]byte, len(b))\n\tcopy(res, b)\n\tE2a(res)\n\tif trimRight {\n\t\tstr = string(bytes.TrimRight(res, \" \\x00\"))\n\t} else {\n\t\tstr = string(res)\n\t}\n\treturn\n}\n\nfunc fdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\t// w_ctrl()\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4,\n\t\t[]uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\t// __e2a_l()\n\t\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4,\n\t\t\t[]uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)})\n\t\treturn string(buffer[:zb]), nil\n\t}\n\t// __errno()\n\terrno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4,\n\t\t[]uintptr{}))))\n\t// __errno2()\n\terrno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4,\n\t\t[]uintptr{}))\n\t// strerror_r()\n\tret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4,\n\t\t[]uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\", buffer[:zb], errno2)\n\t} else {\n\t\treturn \"\", fmt.Errorf(\"fdToPath errno %d (errno2=0x%x)\", errno, errno2)\n\t}\n}\n\nfunc impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkfifoat = enter_Mkfifoat\n\nfunc enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkfifoatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkfifoat\n\t} else {\n\t\t*funcref = legacy_Mkfifoat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tdirname, err := ZosFdToPath(dirfd)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn Mkfifo(dirname+\"/\"+path, mode)\n}\n\n//sys\tPosix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT\n//sys\tGrantpt(fildes int) (rc int, err error) = SYS_GRANTPT\n//sys\tUnlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT\n\nfunc fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg)\n\truntime.ExitSyscall()\n\tval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) {\n\tswitch op.(type) {\n\tcase *Flock_t:\n\t\terr = FcntlFlock(fd, cmd, op.(*Flock_t))\n\t\tif err != nil {\n\t\t\tret = -1\n\t\t}\n\t\treturn\n\tcase int:\n\t\treturn FcntlInt(fd, cmd, op.(int))\n\tcase *F_cnvrt:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt))))\n\tcase unsafe.Pointer:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer)))\n\tdefault:\n\t\treturn -1, EINVAL\n\t}\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\t// TODO: use LE call instead if the call is implemented\n\toriginalOffset, err := Seek(infd, 0, SEEK_CUR)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\t//start reading data from in_fd\n\tif offset != nil {\n\t\t_, err := Seek(infd, *offset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\n\tbuf := make([]byte, count)\n\treadBuf := make([]byte, 0)\n\tvar n int = 0\n\tfor i := 0; i < count; i += n {\n\t\tn, err := Read(infd, buf)\n\t\tif n == 0 {\n\t\t\tif err != nil {\n\t\t\t\treturn -1, err\n\t\t\t} else { // EOF\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treadBuf = append(readBuf, buf...)\n\t\tbuf = buf[0:0]\n\t}\n\n\tn2, err := Write(outfd, readBuf)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\t//When sendfile() returns, this variable will be set to the\n\t// offset of the byte following the last byte that was read.\n\tif offset != nil {\n\t\t*offset = *offset + int64(n)\n\t\t// If offset is not NULL, then sendfile() does not modify the file\n\t\t// offset of in_fd\n\t\t_, err := Seek(infd, originalOffset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\treturn n2, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport \"runtime\"\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\tif runtime.GOARCH == \"arm\" ||\n\t\truntime.GOARCH == \"mips64\" || runtime.GOARCH == \"mips64le\" {\n\t\tcmd |= ipc_64\n\t}\n\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || linux || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// SysvShmAttach attaches the Sysv shared memory segment associated with the\n// shared memory identifier id.\nfunc SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) {\n\taddr, errno := shmat(id, addr, flag)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Retrieve the size of the shared memory to enable slice creation\n\tvar info SysvShmDesc\n\n\t_, err := SysvShmCtl(id, IPC_STAT, &info)\n\tif err != nil {\n\t\t// release the shared memory if we can't find the size\n\n\t\t// ignoring error from shmdt as there's nothing sensible to return here\n\t\tshmdt(addr)\n\t\treturn nil, err\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz))\n\treturn b, nil\n}\n\n// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach.\n//\n// It is not safe to use the slice after calling this function.\nfunc SysvShmDetach(data []byte) error {\n\tif len(data) == 0 {\n\t\treturn EINVAL\n\t}\n\n\treturn shmdt(uintptr(unsafe.Pointer(&data[0])))\n}\n\n// SysvShmGet returns the Sysv shared memory identifier associated with key.\n// If the IPC_CREAT flag is specified a new segment is created.\nfunc SysvShmGet(key, size, flag int) (id int, err error) {\n\treturn shmget(key, size, flag)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || zos\n\npackage unix\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/timestruct.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"time\"\n\n// TimespecToNsec returns the time stored in ts as nanoseconds.\nfunc TimespecToNsec(ts Timespec) int64 { return ts.Nano() }\n\n// NsecToTimespec converts a number of nanoseconds into a Timespec.\nfunc NsecToTimespec(nsec int64) Timespec {\n\tsec := nsec / 1e9\n\tnsec = nsec % 1e9\n\tif nsec < 0 {\n\t\tnsec += 1e9\n\t\tsec--\n\t}\n\treturn setTimespec(sec, nsec)\n}\n\n// TimeToTimespec converts t into a Timespec.\n// On some 32-bit systems the range of valid Timespec values are smaller\n// than that of time.Time values.  So if t is out of the valid range of\n// Timespec, it returns a zero Timespec and ERANGE.\nfunc TimeToTimespec(t time.Time) (Timespec, error) {\n\tsec := t.Unix()\n\tnsec := int64(t.Nanosecond())\n\tts := setTimespec(sec, nsec)\n\n\t// Currently all targets have either int32 or int64 for Timespec.Sec.\n\t// If there were a new target with floating point type for it, we have\n\t// to consider the rounding error.\n\tif int64(ts.Sec) != sec {\n\t\treturn Timespec{}, ERANGE\n\t}\n\treturn ts, nil\n}\n\n// TimevalToNsec returns the time stored in tv as nanoseconds.\nfunc TimevalToNsec(tv Timeval) int64 { return tv.Nano() }\n\n// NsecToTimeval converts a number of nanoseconds into a Timeval.\nfunc NsecToTimeval(nsec int64) Timeval {\n\tnsec += 999 // round up to microsecond\n\tusec := nsec % 1e9 / 1e3\n\tsec := nsec / 1e9\n\tif usec < 0 {\n\t\tusec += 1e6\n\t\tsec--\n\t}\n\treturn setTimeval(sec, usec)\n}\n\n// Unix returns the time stored in ts as seconds plus nanoseconds.\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\n// Unix returns the time stored in tv as seconds plus nanoseconds.\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\n// Nano returns the time stored in ts as nanoseconds.\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\n// Nano returns the time stored in tv as nanoseconds.\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/unveil_openbsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"fmt\"\n\n// Unveil implements the unveil syscall.\n// For more information see unveil(2).\n// Note that the special case of blocking further\n// unveil calls is handled by UnveilBlock.\nfunc Unveil(path string, flags string) error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\tpathPtr, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tflagsPtr, err := BytePtrFromString(flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn unveil(pathPtr, flagsPtr)\n}\n\n// UnveilBlock blocks future unveil calls.\n// For more information see unveil(2).\nfunc UnveilBlock() error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\treturn unveil(nil, nil)\n}\n\n// supportsUnveil checks for availability of the unveil(2) system call based\n// on the running OpenBSD version.\nfunc supportsUnveil() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// unveil is not available before 6.4\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Unveil on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/vgetrandom_linux.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && go1.24\n\npackage unix\n\nimport _ \"unsafe\"\n\n//go:linkname vgetrandom runtime.vgetrandom\n//go:noescape\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !linux || !go1.24\n\npackage unix\n\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool) {\n\treturn -1, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/xattr_bsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd || netbsd\n\npackage unix\n\nimport (\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// Derive extattr namespace and attribute name\n\nfunc xattrnamespace(fullattr string) (ns int, attr string, err error) {\n\ts := strings.IndexByte(fullattr, '.')\n\tif s == -1 {\n\t\treturn -1, \"\", ENOATTR\n\t}\n\n\tnamespace := fullattr[0:s]\n\tattr = fullattr[s+1:]\n\n\tswitch namespace {\n\tcase \"user\":\n\t\treturn EXTATTR_NAMESPACE_USER, attr, nil\n\tcase \"system\":\n\t\treturn EXTATTR_NAMESPACE_SYSTEM, attr, nil\n\tdefault:\n\t\treturn -1, \"\", ENOATTR\n\t}\n}\n\nfunc initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {\n\tif len(dest) > idx {\n\t\treturn unsafe.Pointer(&dest[idx])\n\t}\n\tif dest != nil {\n\t\t// extattr_get_file and extattr_list_file treat NULL differently from\n\t\t// a non-NULL pointer of length zero. Preserve the property of nilness,\n\t\t// even if we can't use dest directly.\n\t\treturn unsafe.Pointer(&_zero)\n\t}\n\treturn nil\n}\n\n// FreeBSD and NetBSD implement their own syscalls to handle extended attributes\n\nfunc Getxattr(file string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFile(file, nsid, a, uintptr(d), destsize)\n}\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetLink(link, nsid, a, uintptr(d), destsize)\n}\n\n// flags are unused on FreeBSD\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Setxattr(file string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Removexattr(file string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFile(file, nsid, a)\n\treturn\n}\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFd(fd, nsid, a)\n\treturn\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteLink(link, nsid, a)\n\treturn\n}\n\nfunc Listxattr(file string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\t// FreeBSD won't allow you to list xattrs from multiple namespaces\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ListxattrNS(file, nsid, dest[pos:])\n\n\t\t/* Errors accessing system attrs are ignored so that\n\t\t * we can implement the Linux-like behavior of omitting errors that\n\t\t * we don't have read permissions on\n\t\t *\n\t\t * Linux will still error if we ask for user attributes on a file that\n\t\t * we don't have read permissions on, so don't ignore those errors\n\t\t */\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := FlistxattrNS(fd, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := LlistxattrNS(link, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go",
    "content": "// mkerrors.sh -maix32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -maix32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3ff796dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0x5\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x20\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3ff796bb\n\tSIOCGIFCONFGLOB               = -0x3ff79670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0x80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0x80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0x80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0x80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0x80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0x8004747e\n\tTIOCLBIS                      = 0x8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0x8004747d\n\tTIOCMBIC                      = 0x8004746b\n\tTIOCMBIS                      = 0x8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0x80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0x80047404\n\tTIOCMSET                      = 0x8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0x80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0x80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0x80067411\n\tTIOCSETD                      = 0x80047401\n\tTIOCSETN                      = 0x8006740a\n\tTIOCSETP                      = 0x80067409\n\tTIOCSLTC                      = 0x80067475\n\tTIOCSPGRP                     = 0x80047476\n\tTIOCSSIZE                     = 0x80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0x80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0x80087467\n\tTIOCUCNTL                     = 0x80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0x3f)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGKAP\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGSAK\", \"secure attention\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go",
    "content": "// mkerrors.sh -maix64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -maix64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3fef96dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xb\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0xc\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0xd\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffffffffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fc78df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fc78df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3fef96bb\n\tSIOCGIFCONFGLOB               = -0x3fef9670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0xffffffff80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0xffffffff80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0xffffffff80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0xffffffff80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0xffffffff80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0xffffffff8004747e\n\tTIOCLBIS                      = 0xffffffff8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0xffffffff8004747d\n\tTIOCMBIC                      = 0xffffffff8004746b\n\tTIOCMBIS                      = 0xffffffff8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0xffffffff80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0xffffffff80047404\n\tTIOCMSET                      = 0xffffffff8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0xffffffff80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0xffffffff80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0xffffffff80067411\n\tTIOCSETD                      = 0xffffffff80047401\n\tTIOCSETN                      = 0xffffffff8006740a\n\tTIOCSETP                      = 0xffffffff80067409\n\tTIOCSLTC                      = 0xffffffff80067475\n\tTIOCSPGRP                     = 0xffffffff80047476\n\tTIOCSSIZE                     = 0xffffffff80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0xffffffff80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0xffffffff80087467\n\tTIOCUCNTL                     = 0xffffffff80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0xff)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGGRANT\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGMAX32\", \"secure attention\"},\n\t{255, \"SIGMAX\", \"signal 255\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ATM                            = 0x1e\n\tAF_BLUETOOTH                      = 0x21\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x23\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1c\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x22\n\tAF_NATM                           = 0x1d\n\tAF_NETBIOS                        = 0x6\n\tAF_NETGRAPH                       = 0x20\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x2000427a\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x8010427b\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DEFAULTBUFSIZE                = 0x1000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MAX_CLONES                    = 0x80\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MOD                           = 0x90\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBPF_XOR                           = 0xa0\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x4\n\tCLOCK_MONOTONIC_FAST              = 0xc\n\tCLOCK_MONOTONIC_PRECISE           = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xf\n\tCLOCK_PROF                        = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_REALTIME_FAST               = 0xa\n\tCLOCK_REALTIME_PRECISE            = 0x9\n\tCLOCK_SECOND                      = 0xd\n\tCLOCK_THREAD_CPUTIME_ID           = 0xe\n\tCLOCK_UPTIME                      = 0x5\n\tCLOCK_UPTIME_FAST                 = 0x8\n\tCLOCK_UPTIME_PRECISE              = 0x7\n\tCLOCK_VIRTUAL                     = 0x1\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB            = 0xff\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_BLUETOOTH_LE_LL               = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR     = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR       = 0xfe\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_EPON                          = 0x103\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_INFINIBAND                    = 0xf7\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPMI_HPM_2                    = 0x104\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_ISO_14443                     = 0x108\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0x109\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NETLINK                       = 0xfd\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PKTAP                         = 0x102\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PROFIBUS_DL                   = 0x101\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RDS                           = 0x109\n\tDLT_REDBACK_SMARTEDGE             = 0x20\n\tDLT_RIO                           = 0x7c\n\tDLT_RTAC_SERIAL                   = 0xfa\n\tDLT_SCCP                          = 0x8e\n\tDLT_SCTP                          = 0xf8\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USB_FREEBSD                   = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WATTSTOPPER_DLM               = 0x107\n\tDLT_WIHART                        = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU           = 0xfc\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDLT_ZWAVE_R1_R2                   = 0x105\n\tDLT_ZWAVE_R3                      = 0x106\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DBF                            = 0xf\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0x8\n\tEVFILT_FS                         = -0xa\n\tEVFILT_MARKER                     = 0xf\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xa\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0x9\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_HUP                            = 0x800\n\tEV_NODATA                         = 0x1000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTEXIT_LWP                       = 0x10000\n\tEXTEXIT_PROC                      = 0x0\n\tEXTEXIT_SETINT                    = 0x1\n\tEXTEXIT_SIMPLE                    = 0x0\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUP2FD                          = 0xa\n\tF_DUP2FD_CLOEXEC                  = 0x12\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x11\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x318e72\n\tIFF_DEBUG                         = 0x4\n\tIFF_IDIRECT                       = 0x200000\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MONITOR                       = 0x40000\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NPOLLING                      = 0x100000\n\tIFF_OACTIVE                       = 0x400\n\tIFF_OACTIVE_COMPAT                = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_POLLING                       = 0x10000\n\tIFF_POLLING_COMPAT                = 0x10000\n\tIFF_PPROMISC                      = 0x20000\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_SMART                         = 0x20\n\tIFF_STATICARP                     = 0x80000\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xf3\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_MASK                   = 0xfffffffe\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SKIP                      = 0x39\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TLSP                      = 0x38\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UNKNOWN                   = 0x102\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHLIM                      = 0x28\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MSFILTER                     = 0x4a\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PKTOPTIONS                   = 0x34\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_PREFER_TEMPADDR              = 0x3f\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FW_ADD                         = 0x32\n\tIP_FW_DEL                         = 0x33\n\tIP_FW_FLUSH                       = 0x34\n\tIP_FW_GET                         = 0x36\n\tIP_FW_RESETLOG                    = 0x37\n\tIP_FW_TBL_ADD                     = 0x2a\n\tIP_FW_TBL_CREATE                  = 0x28\n\tIP_FW_TBL_DEL                     = 0x2b\n\tIP_FW_TBL_DESTROY                 = 0x29\n\tIP_FW_TBL_EXPIRE                  = 0x2f\n\tIP_FW_TBL_FLUSH                   = 0x2c\n\tIP_FW_TBL_GET                     = 0x2d\n\tIP_FW_TBL_ZERO                    = 0x2e\n\tIP_FW_X                           = 0x31\n\tIP_FW_ZERO                        = 0x35\n\tIP_HDRINCL                        = 0x2\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x42\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x41\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_AUTOSYNC                     = 0x7\n\tMADV_CONTROL_END                  = 0xb\n\tMADV_CONTROL_START                = 0xa\n\tMADV_CORE                         = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_INVAL                        = 0xa\n\tMADV_NOCORE                       = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_NOSYNC                       = 0x6\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SETMAP                       = 0xb\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_NOCORE                        = 0x20000\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_NOSYNC                        = 0x800\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_SIZEALIGN                     = 0x40000\n\tMAP_STACK                         = 0x400\n\tMAP_TRYFIXED                      = 0x10000\n\tMAP_VPAGETABLE                    = 0x2000\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x20\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x20000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE                        = 0x800000\n\tMNT_LAZY                          = 0x4\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOCLUSTERR                    = 0x40000000\n\tMNT_NOCLUSTERW                    = 0x80000000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOSYMFOLLOW                   = 0x400000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x200000\n\tMNT_SUIDDIR                       = 0x100000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_TRIM                          = 0x1000000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_USER                          = 0x8000\n\tMNT_VISFLAGMASK                   = 0xf1f0ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_CMSG_CLOEXEC                  = 0x1000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FBLOCKING                     = 0x10000\n\tMSG_FMASK                         = 0xffff0000\n\tMSG_FNONBLOCKING                  = 0x20000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_SYNC                          = 0x800\n\tMSG_TRUNC                         = 0x10\n\tMSG_UNUSED09                      = 0x200\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x0\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x4\n\tNFDBITS                           = 0x40\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x20000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x10000\n\tO_DIRECTORY                       = 0x8000000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FAPPEND                         = 0x100000\n\tO_FASYNCWRITE                     = 0x800000\n\tO_FBLOCKING                       = 0x40000\n\tO_FMASK                           = 0xfc0000\n\tO_FNONBLOCKING                    = 0x80000\n\tO_FOFFSET                         = 0x200000\n\tO_FSYNC                           = 0x80\n\tO_FSYNCWRITE                      = 0x400000\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0xb\n\tRTAX_MPLS1                        = 0x8\n\tRTAX_MPLS2                        = 0x9\n\tRTAX_MPLS3                        = 0xa\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_MPLS1                         = 0x100\n\tRTA_MPLS2                         = 0x200\n\tRTA_MPLS3                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPLSOPS                       = 0x1000000\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x12\n\tRTM_IFANNOUNCE                    = 0x11\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x7\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_IWCAPSEGS                     = 0x400\n\tRTV_IWMAXSEGS                     = 0x200\n\tRTV_MSL                           = 0x100\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETSGCNT                      = 0xc0207210\n\tSIOCGETVIFCNT                     = 0xc028720f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALIAS                      = 0xc0406929\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020691f\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc0206926\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFINDEX                      = 0xc0206920\n\tSIOCGIFMEDIA                      = 0xc0306938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPOLLCPU                    = 0xc020697e\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFSTATUS                     = 0xc331693b\n\tSIOCGIFTSOLEN                     = 0xc0206980\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPRIVATE_0                    = 0xc0206950\n\tSIOCGPRIVATE_1                    = 0xc0206951\n\tSIOCIFCREATE                      = 0xc020697a\n\tSIOCIFCREATE2                     = 0xc020697c\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020691e\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNAME                       = 0x80206928\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFPOLLCPU                    = 0x8020697d\n\tSIOCSIFTSOLEN                     = 0x8020697f\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_CPUHINT                        = 0x1030\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_RERROR                         = 0x2000\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDSPACE                       = 0x100a\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDB                            = 0x9000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB3                              = 0x4\n\tTABDLY                            = 0x4\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_FASTKEEP                      = 0x80\n\tTCP_KEEPCNT                       = 0x400\n\tTCP_KEEPIDLE                      = 0x100\n\tTCP_KEEPINIT                      = 0x20\n\tTCP_KEEPINTVL                     = 0x200\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0x100\n\tTCP_MIN_WINSHIFT                  = 0x5\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_SIGNATURE_ENABLE              = 0x10\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCISPTMASTER                    = 0x20007455\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x1\n\tUTIME_OMIT                        = -0x2\n\tVCHECKPT                          = 0x13\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVERASE2                           = 0x7\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_BCACHE_SIZE_MAX                = 0x0\n\tVM_SWZONE_SIZE_MAX                = 0x4000000000\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x4\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x10\n\tWLINUXCLONE                       = 0x80000000\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x8\n\tWSTOPPED                          = 0x2\n\tWTRAPPED                          = 0x20\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEASYNC          = syscall.Errno(0x63)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x63)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEDIUM       = syscall.Errno(0x5d)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCKPT     = syscall.Signal(0x21)\n\tSIGCKPTEXIT = syscall.Signal(0x22)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINFO     = syscall.Signal(0x1d)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPROF     = syscall.Signal(0x1b)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTHR      = syscall.Signal(0x20)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVTALRM   = syscall.Signal(0x1a)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOMEDIUM\", \"no medium found\"},\n\t{99, \"EASYNC\", \"unknown error: 99\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread Scheduler\"},\n\t{33, \"SIGCKPT\", \"checkPoint\"},\n\t{34, \"SIGCKPTEXIT\", \"checkPointExit\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4008426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8008426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc144648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc06c648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXMMREGS                  = 0x40\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXMMREGS                  = 0x41\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40087459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x70e0000\n\tVM_SWZONE_SIZE_MAX             = 0x2280000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc078648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETVFPREGS                  = 0x40\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETVFPREGS                  = 0x41\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x19000000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_HYPERV                      = 0x2b\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2b\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB1000000                       = 0xf4240\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1500000                       = 0x16e360\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB2000000                       = 0x1e8480\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB2500000                       = 0x2625a0\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB3000000                       = 0x2dc6c0\n\tB3500000                       = 0x3567e0\n\tB38400                         = 0x9600\n\tB4000000                       = 0x3d0900\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB500000                        = 0x7a120\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_BOOTTIME                 = 0x5\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_COARSE         = 0xc\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_COARSE          = 0xa\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGKERNELDUMP                = 0xc0986492\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80986491\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCSKERNELDUMP_FREEBSD12      = 0x80506490\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEHE_DEAD_PRIORITY              = -0x1\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_NONE                        = -0xc8\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_ADD_SEALS                    = 0x13\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_GET_SEALS                    = 0x14\n\tF_ISUNIONSTACK                 = 0x15\n\tF_KINFO                        = 0x16\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SEAL_GROW                    = 0x4\n\tF_SEAL_SEAL                    = 0x1\n\tF_SEAL_SHRINK                  = 0x2\n\tF_SEAL_WRITE                   = 0x8\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f72\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_KNOWSEPOCH                 = 0x20\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_NETMASK_DEFAULT             = 0xffffff00\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_CREDS_PERSISTENT         = 0x3\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMFD_ALLOW_SEALING              = 0x2\n\tMFD_CLOEXEC                    = 0x1\n\tMFD_HUGETLB                    = 0x4\n\tMFD_HUGE_16GB                  = -0x78000000\n\tMFD_HUGE_16MB                  = 0x60000000\n\tMFD_HUGE_1GB                   = 0x78000000\n\tMFD_HUGE_1MB                   = 0x50000000\n\tMFD_HUGE_256MB                 = 0x70000000\n\tMFD_HUGE_2GB                   = 0x7c000000\n\tMFD_HUGE_2MB                   = 0x54000000\n\tMFD_HUGE_32MB                  = 0x64000000\n\tMFD_HUGE_512KB                 = 0x4c000000\n\tMFD_HUGE_512MB                 = 0x74000000\n\tMFD_HUGE_64KB                  = 0x40000000\n\tMFD_HUGE_8MB                   = 0x5c000000\n\tMFD_HUGE_MASK                  = 0xfc000000\n\tMFD_HUGE_SHIFT                 = 0x1a\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0x300d0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EMPTYDIR                   = 0x2000000000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_EXTLS                      = 0x4000000000\n\tMNT_EXTLSCERT                  = 0x8000000000\n\tMNT_EXTLSCERTUSER              = 0x10000000000\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOCOVER                    = 0x1000000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNET_RT_NHGRP                   = 0x7\n\tNET_RT_NHOP                    = 0x6\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_DSYNC                        = 0x1000000\n\tO_EMPTY_PATH                   = 0x2000000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_PATH                         = 0x400000\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_COREDUMP                    = 0x1d\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_DEFAULT_WEIGHT              = 0x1\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAX_WEIGHT                  = 0xffffff\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_CREDS2                     = 0x8\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDATA                    = 0x8020692c\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_INIT_RATE         = 0x458\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_USE_RACK_RR            = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DEFER_OPTIONS              = 0x470\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FAST_RSM_HACK              = 0x471\n\tTCP_FIN_IS_RST                 = 0x49\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_HDWR_RATE_CAP              = 0x46a\n\tTCP_HDWR_UP_ONLY               = 0x46c\n\tTCP_IDLE_REDUCE                = 0x46\n\tTCP_INFO                       = 0x20\n\tTCP_IWND_NB                    = 0x2b\n\tTCP_IWND_NSEG                  = 0x2c\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOGID_CNT                  = 0x2e\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_LOG_LIMIT                  = 0x4a\n\tTCP_LOG_TAG                    = 0x2f\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXPEAKRATE                = 0x45\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXUNACKTIME               = 0x44\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_NO_PRR                     = 0x462\n\tTCP_PACING_RATE_CAP            = 0x46b\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_PERF_INFO                  = 0x4e\n\tTCP_PROC_ACCOUNTING            = 0x4c\n\tTCP_RACK_ABC_VAL               = 0x46d\n\tTCP_RACK_CHEAT_NOT_CONF_RATE   = 0x459\n\tTCP_RACK_DO_DETECTION          = 0x449\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_FORCE_MSEG            = 0x45d\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_GP_INCREASE_CA        = 0x45a\n\tTCP_RACK_GP_INCREASE_REC       = 0x45c\n\tTCP_RACK_GP_INCREASE_SS        = 0x45b\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MBUF_QUEUE            = 0x41a\n\tTCP_RACK_MEASURE_CNT           = 0x46f\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_NONRXT_CFG_RATE       = 0x463\n\tTCP_RACK_NO_PUSH_AT_MAX        = 0x466\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_RATE_CA          = 0x45e\n\tTCP_RACK_PACE_RATE_REC         = 0x460\n\tTCP_RACK_PACE_RATE_SS          = 0x45f\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PACE_TO_FILL          = 0x467\n\tTCP_RACK_PACING_BETA           = 0x472\n\tTCP_RACK_PACING_BETA_ECN       = 0x473\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROFILE               = 0x469\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_RR_CONF               = 0x459\n\tTCP_RACK_TIMER_SLOP            = 0x474\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_REC_ABC_VAL                = 0x46e\n\tTCP_REMOTE_UDP_ENCAPS_PORT     = 0x47\n\tTCP_REUSPORT_LB_NUMA           = 0x402\n\tTCP_REUSPORT_LB_NUMA_CURDOM    = -0x1\n\tTCP_REUSPORT_LB_NUMA_NODOM     = -0x2\n\tTCP_RXTLS_ENABLE               = 0x29\n\tTCP_RXTLS_MODE                 = 0x2a\n\tTCP_SHARED_CWND_ALLOWED        = 0x4b\n\tTCP_SHARED_CWND_ENABLE         = 0x464\n\tTCP_SHARED_CWND_TIME_LIMIT     = 0x468\n\tTCP_STATS                      = 0x21\n\tTCP_TIMELY_DYN_ADJ             = 0x465\n\tTCP_TLS_MODE_IFNET             = 0x2\n\tTCP_TLS_MODE_NONE              = 0x0\n\tTCP_TLS_MODE_SW                = 0x1\n\tTCP_TLS_MODE_TOE               = 0x3\n\tTCP_TXTLS_ENABLE               = 0x27\n\tTCP_TXTLS_MODE                 = 0x28\n\tTCP_USER_LOG                   = 0x30\n\tTCP_USE_CMP_ACKS               = 0x4d\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                                  = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                            = 0xadf5\n\tAFFS_SUPER_MAGIC                            = 0xadff\n\tAFS_FS_MAGIC                                = 0x6b414653\n\tAFS_SUPER_MAGIC                             = 0x5346414f\n\tAF_ALG                                      = 0x26\n\tAF_APPLETALK                                = 0x5\n\tAF_ASH                                      = 0x12\n\tAF_ATMPVC                                   = 0x8\n\tAF_ATMSVC                                   = 0x14\n\tAF_AX25                                     = 0x3\n\tAF_BLUETOOTH                                = 0x1f\n\tAF_BRIDGE                                   = 0x7\n\tAF_CAIF                                     = 0x25\n\tAF_CAN                                      = 0x1d\n\tAF_DECnet                                   = 0xc\n\tAF_ECONET                                   = 0x13\n\tAF_FILE                                     = 0x1\n\tAF_IB                                       = 0x1b\n\tAF_IEEE802154                               = 0x24\n\tAF_INET                                     = 0x2\n\tAF_INET6                                    = 0xa\n\tAF_IPX                                      = 0x4\n\tAF_IRDA                                     = 0x17\n\tAF_ISDN                                     = 0x22\n\tAF_IUCV                                     = 0x20\n\tAF_KCM                                      = 0x29\n\tAF_KEY                                      = 0xf\n\tAF_LLC                                      = 0x1a\n\tAF_LOCAL                                    = 0x1\n\tAF_MAX                                      = 0x2e\n\tAF_MCTP                                     = 0x2d\n\tAF_MPLS                                     = 0x1c\n\tAF_NETBEUI                                  = 0xd\n\tAF_NETLINK                                  = 0x10\n\tAF_NETROM                                   = 0x6\n\tAF_NFC                                      = 0x27\n\tAF_PACKET                                   = 0x11\n\tAF_PHONET                                   = 0x23\n\tAF_PPPOX                                    = 0x18\n\tAF_QIPCRTR                                  = 0x2a\n\tAF_RDS                                      = 0x15\n\tAF_ROSE                                     = 0xb\n\tAF_ROUTE                                    = 0x10\n\tAF_RXRPC                                    = 0x21\n\tAF_SECURITY                                 = 0xe\n\tAF_SMC                                      = 0x2b\n\tAF_SNA                                      = 0x16\n\tAF_TIPC                                     = 0x1e\n\tAF_UNIX                                     = 0x1\n\tAF_UNSPEC                                   = 0x0\n\tAF_VSOCK                                    = 0x28\n\tAF_WANPIPE                                  = 0x19\n\tAF_X25                                      = 0x9\n\tAF_XDP                                      = 0x2c\n\tALG_OP_DECRYPT                              = 0x0\n\tALG_OP_ENCRYPT                              = 0x1\n\tALG_SET_AEAD_ASSOCLEN                       = 0x4\n\tALG_SET_AEAD_AUTHSIZE                       = 0x5\n\tALG_SET_DRBG_ENTROPY                        = 0x6\n\tALG_SET_IV                                  = 0x2\n\tALG_SET_KEY                                 = 0x1\n\tALG_SET_KEY_BY_KEY_SERIAL                   = 0x7\n\tALG_SET_OP                                  = 0x3\n\tANON_INODE_FS_MAGIC                         = 0x9041934\n\tARPHRD_6LOWPAN                              = 0x339\n\tARPHRD_ADAPT                                = 0x108\n\tARPHRD_APPLETLK                             = 0x8\n\tARPHRD_ARCNET                               = 0x7\n\tARPHRD_ASH                                  = 0x30d\n\tARPHRD_ATM                                  = 0x13\n\tARPHRD_AX25                                 = 0x3\n\tARPHRD_BIF                                  = 0x307\n\tARPHRD_CAIF                                 = 0x336\n\tARPHRD_CAN                                  = 0x118\n\tARPHRD_CHAOS                                = 0x5\n\tARPHRD_CISCO                                = 0x201\n\tARPHRD_CSLIP                                = 0x101\n\tARPHRD_CSLIP6                               = 0x103\n\tARPHRD_DDCMP                                = 0x205\n\tARPHRD_DLCI                                 = 0xf\n\tARPHRD_ECONET                               = 0x30e\n\tARPHRD_EETHER                               = 0x2\n\tARPHRD_ETHER                                = 0x1\n\tARPHRD_EUI64                                = 0x1b\n\tARPHRD_FCAL                                 = 0x311\n\tARPHRD_FCFABRIC                             = 0x313\n\tARPHRD_FCPL                                 = 0x312\n\tARPHRD_FCPP                                 = 0x310\n\tARPHRD_FDDI                                 = 0x306\n\tARPHRD_FRAD                                 = 0x302\n\tARPHRD_HDLC                                 = 0x201\n\tARPHRD_HIPPI                                = 0x30c\n\tARPHRD_HWX25                                = 0x110\n\tARPHRD_IEEE1394                             = 0x18\n\tARPHRD_IEEE802                              = 0x6\n\tARPHRD_IEEE80211                            = 0x321\n\tARPHRD_IEEE80211_PRISM                      = 0x322\n\tARPHRD_IEEE80211_RADIOTAP                   = 0x323\n\tARPHRD_IEEE802154                           = 0x324\n\tARPHRD_IEEE802154_MONITOR                   = 0x325\n\tARPHRD_IEEE802_TR                           = 0x320\n\tARPHRD_INFINIBAND                           = 0x20\n\tARPHRD_IP6GRE                               = 0x337\n\tARPHRD_IPDDP                                = 0x309\n\tARPHRD_IPGRE                                = 0x30a\n\tARPHRD_IRDA                                 = 0x30f\n\tARPHRD_LAPB                                 = 0x204\n\tARPHRD_LOCALTLK                             = 0x305\n\tARPHRD_LOOPBACK                             = 0x304\n\tARPHRD_MCTP                                 = 0x122\n\tARPHRD_METRICOM                             = 0x17\n\tARPHRD_NETLINK                              = 0x338\n\tARPHRD_NETROM                               = 0x0\n\tARPHRD_NONE                                 = 0xfffe\n\tARPHRD_PHONET                               = 0x334\n\tARPHRD_PHONET_PIPE                          = 0x335\n\tARPHRD_PIMREG                               = 0x30b\n\tARPHRD_PPP                                  = 0x200\n\tARPHRD_PRONET                               = 0x4\n\tARPHRD_RAWHDLC                              = 0x206\n\tARPHRD_RAWIP                                = 0x207\n\tARPHRD_ROSE                                 = 0x10e\n\tARPHRD_RSRVD                                = 0x104\n\tARPHRD_SIT                                  = 0x308\n\tARPHRD_SKIP                                 = 0x303\n\tARPHRD_SLIP                                 = 0x100\n\tARPHRD_SLIP6                                = 0x102\n\tARPHRD_TUNNEL                               = 0x300\n\tARPHRD_TUNNEL6                              = 0x301\n\tARPHRD_VOID                                 = 0xffff\n\tARPHRD_VSOCKMON                             = 0x33a\n\tARPHRD_X25                                  = 0x10f\n\tAUDIT_ADD                                   = 0x3eb\n\tAUDIT_ADD_RULE                              = 0x3f3\n\tAUDIT_ALWAYS                                = 0x2\n\tAUDIT_ANOM_ABEND                            = 0x6a5\n\tAUDIT_ANOM_CREAT                            = 0x6a7\n\tAUDIT_ANOM_LINK                             = 0x6a6\n\tAUDIT_ANOM_PROMISCUOUS                      = 0x6a4\n\tAUDIT_ARCH                                  = 0xb\n\tAUDIT_ARCH_AARCH64                          = 0xc00000b7\n\tAUDIT_ARCH_ALPHA                            = 0xc0009026\n\tAUDIT_ARCH_ARCOMPACT                        = 0x4000005d\n\tAUDIT_ARCH_ARCOMPACTBE                      = 0x5d\n\tAUDIT_ARCH_ARCV2                            = 0x400000c3\n\tAUDIT_ARCH_ARCV2BE                          = 0xc3\n\tAUDIT_ARCH_ARM                              = 0x40000028\n\tAUDIT_ARCH_ARMEB                            = 0x28\n\tAUDIT_ARCH_C6X                              = 0x4000008c\n\tAUDIT_ARCH_C6XBE                            = 0x8c\n\tAUDIT_ARCH_CRIS                             = 0x4000004c\n\tAUDIT_ARCH_CSKY                             = 0x400000fc\n\tAUDIT_ARCH_FRV                              = 0x5441\n\tAUDIT_ARCH_H8300                            = 0x2e\n\tAUDIT_ARCH_HEXAGON                          = 0xa4\n\tAUDIT_ARCH_I386                             = 0x40000003\n\tAUDIT_ARCH_IA64                             = 0xc0000032\n\tAUDIT_ARCH_LOONGARCH32                      = 0x40000102\n\tAUDIT_ARCH_LOONGARCH64                      = 0xc0000102\n\tAUDIT_ARCH_M32R                             = 0x58\n\tAUDIT_ARCH_M68K                             = 0x4\n\tAUDIT_ARCH_MICROBLAZE                       = 0xbd\n\tAUDIT_ARCH_MIPS                             = 0x8\n\tAUDIT_ARCH_MIPS64                           = 0x80000008\n\tAUDIT_ARCH_MIPS64N32                        = 0xa0000008\n\tAUDIT_ARCH_MIPSEL                           = 0x40000008\n\tAUDIT_ARCH_MIPSEL64                         = 0xc0000008\n\tAUDIT_ARCH_MIPSEL64N32                      = 0xe0000008\n\tAUDIT_ARCH_NDS32                            = 0x400000a7\n\tAUDIT_ARCH_NDS32BE                          = 0xa7\n\tAUDIT_ARCH_NIOS2                            = 0x40000071\n\tAUDIT_ARCH_OPENRISC                         = 0x5c\n\tAUDIT_ARCH_PARISC                           = 0xf\n\tAUDIT_ARCH_PARISC64                         = 0x8000000f\n\tAUDIT_ARCH_PPC                              = 0x14\n\tAUDIT_ARCH_PPC64                            = 0x80000015\n\tAUDIT_ARCH_PPC64LE                          = 0xc0000015\n\tAUDIT_ARCH_RISCV32                          = 0x400000f3\n\tAUDIT_ARCH_RISCV64                          = 0xc00000f3\n\tAUDIT_ARCH_S390                             = 0x16\n\tAUDIT_ARCH_S390X                            = 0x80000016\n\tAUDIT_ARCH_SH                               = 0x2a\n\tAUDIT_ARCH_SH64                             = 0x8000002a\n\tAUDIT_ARCH_SHEL                             = 0x4000002a\n\tAUDIT_ARCH_SHEL64                           = 0xc000002a\n\tAUDIT_ARCH_SPARC                            = 0x2\n\tAUDIT_ARCH_SPARC64                          = 0x8000002b\n\tAUDIT_ARCH_TILEGX                           = 0xc00000bf\n\tAUDIT_ARCH_TILEGX32                         = 0x400000bf\n\tAUDIT_ARCH_TILEPRO                          = 0x400000bc\n\tAUDIT_ARCH_UNICORE                          = 0x4000006e\n\tAUDIT_ARCH_X86_64                           = 0xc000003e\n\tAUDIT_ARCH_XTENSA                           = 0x5e\n\tAUDIT_ARG0                                  = 0xc8\n\tAUDIT_ARG1                                  = 0xc9\n\tAUDIT_ARG2                                  = 0xca\n\tAUDIT_ARG3                                  = 0xcb\n\tAUDIT_AVC                                   = 0x578\n\tAUDIT_AVC_PATH                              = 0x57a\n\tAUDIT_BITMASK_SIZE                          = 0x40\n\tAUDIT_BIT_MASK                              = 0x8000000\n\tAUDIT_BIT_TEST                              = 0x48000000\n\tAUDIT_BPF                                   = 0x536\n\tAUDIT_BPRM_FCAPS                            = 0x529\n\tAUDIT_CAPSET                                = 0x52a\n\tAUDIT_CLASS_CHATTR                          = 0x2\n\tAUDIT_CLASS_CHATTR_32                       = 0x3\n\tAUDIT_CLASS_DIR_WRITE                       = 0x0\n\tAUDIT_CLASS_DIR_WRITE_32                    = 0x1\n\tAUDIT_CLASS_READ                            = 0x4\n\tAUDIT_CLASS_READ_32                         = 0x5\n\tAUDIT_CLASS_SIGNAL                          = 0x8\n\tAUDIT_CLASS_SIGNAL_32                       = 0x9\n\tAUDIT_CLASS_WRITE                           = 0x6\n\tAUDIT_CLASS_WRITE_32                        = 0x7\n\tAUDIT_COMPARE_AUID_TO_EUID                  = 0x10\n\tAUDIT_COMPARE_AUID_TO_FSUID                 = 0xe\n\tAUDIT_COMPARE_AUID_TO_OBJ_UID               = 0x5\n\tAUDIT_COMPARE_AUID_TO_SUID                  = 0xf\n\tAUDIT_COMPARE_EGID_TO_FSGID                 = 0x17\n\tAUDIT_COMPARE_EGID_TO_OBJ_GID               = 0x4\n\tAUDIT_COMPARE_EGID_TO_SGID                  = 0x18\n\tAUDIT_COMPARE_EUID_TO_FSUID                 = 0x12\n\tAUDIT_COMPARE_EUID_TO_OBJ_UID               = 0x3\n\tAUDIT_COMPARE_EUID_TO_SUID                  = 0x11\n\tAUDIT_COMPARE_FSGID_TO_OBJ_GID              = 0x9\n\tAUDIT_COMPARE_FSUID_TO_OBJ_UID              = 0x8\n\tAUDIT_COMPARE_GID_TO_EGID                   = 0x14\n\tAUDIT_COMPARE_GID_TO_FSGID                  = 0x15\n\tAUDIT_COMPARE_GID_TO_OBJ_GID                = 0x2\n\tAUDIT_COMPARE_GID_TO_SGID                   = 0x16\n\tAUDIT_COMPARE_SGID_TO_FSGID                 = 0x19\n\tAUDIT_COMPARE_SGID_TO_OBJ_GID               = 0x7\n\tAUDIT_COMPARE_SUID_TO_FSUID                 = 0x13\n\tAUDIT_COMPARE_SUID_TO_OBJ_UID               = 0x6\n\tAUDIT_COMPARE_UID_TO_AUID                   = 0xa\n\tAUDIT_COMPARE_UID_TO_EUID                   = 0xb\n\tAUDIT_COMPARE_UID_TO_FSUID                  = 0xc\n\tAUDIT_COMPARE_UID_TO_OBJ_UID                = 0x1\n\tAUDIT_COMPARE_UID_TO_SUID                   = 0xd\n\tAUDIT_CONFIG_CHANGE                         = 0x519\n\tAUDIT_CWD                                   = 0x51b\n\tAUDIT_DAEMON_ABORT                          = 0x4b2\n\tAUDIT_DAEMON_CONFIG                         = 0x4b3\n\tAUDIT_DAEMON_END                            = 0x4b1\n\tAUDIT_DAEMON_START                          = 0x4b0\n\tAUDIT_DEL                                   = 0x3ec\n\tAUDIT_DEL_RULE                              = 0x3f4\n\tAUDIT_DEVMAJOR                              = 0x64\n\tAUDIT_DEVMINOR                              = 0x65\n\tAUDIT_DIR                                   = 0x6b\n\tAUDIT_DM_CTRL                               = 0x53a\n\tAUDIT_DM_EVENT                              = 0x53b\n\tAUDIT_EGID                                  = 0x6\n\tAUDIT_EOE                                   = 0x528\n\tAUDIT_EQUAL                                 = 0x40000000\n\tAUDIT_EUID                                  = 0x2\n\tAUDIT_EVENT_LISTENER                        = 0x537\n\tAUDIT_EXE                                   = 0x70\n\tAUDIT_EXECVE                                = 0x51d\n\tAUDIT_EXIT                                  = 0x67\n\tAUDIT_FAIL_PANIC                            = 0x2\n\tAUDIT_FAIL_PRINTK                           = 0x1\n\tAUDIT_FAIL_SILENT                           = 0x0\n\tAUDIT_FANOTIFY                              = 0x533\n\tAUDIT_FD_PAIR                               = 0x525\n\tAUDIT_FEATURE_BITMAP_ALL                    = 0x7f\n\tAUDIT_FEATURE_BITMAP_BACKLOG_LIMIT          = 0x1\n\tAUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME      = 0x2\n\tAUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND         = 0x8\n\tAUDIT_FEATURE_BITMAP_EXECUTABLE_PATH        = 0x4\n\tAUDIT_FEATURE_BITMAP_FILTER_FS              = 0x40\n\tAUDIT_FEATURE_BITMAP_LOST_RESET             = 0x20\n\tAUDIT_FEATURE_BITMAP_SESSIONID_FILTER       = 0x10\n\tAUDIT_FEATURE_CHANGE                        = 0x530\n\tAUDIT_FEATURE_LOGINUID_IMMUTABLE            = 0x1\n\tAUDIT_FEATURE_ONLY_UNSET_LOGINUID           = 0x0\n\tAUDIT_FEATURE_VERSION                       = 0x1\n\tAUDIT_FIELD_COMPARE                         = 0x6f\n\tAUDIT_FILETYPE                              = 0x6c\n\tAUDIT_FILTERKEY                             = 0xd2\n\tAUDIT_FILTER_ENTRY                          = 0x2\n\tAUDIT_FILTER_EXCLUDE                        = 0x5\n\tAUDIT_FILTER_EXIT                           = 0x4\n\tAUDIT_FILTER_FS                             = 0x6\n\tAUDIT_FILTER_PREPEND                        = 0x10\n\tAUDIT_FILTER_TASK                           = 0x1\n\tAUDIT_FILTER_TYPE                           = 0x5\n\tAUDIT_FILTER_URING_EXIT                     = 0x7\n\tAUDIT_FILTER_USER                           = 0x0\n\tAUDIT_FILTER_WATCH                          = 0x3\n\tAUDIT_FIRST_KERN_ANOM_MSG                   = 0x6a4\n\tAUDIT_FIRST_USER_MSG                        = 0x44c\n\tAUDIT_FIRST_USER_MSG2                       = 0x834\n\tAUDIT_FSGID                                 = 0x8\n\tAUDIT_FSTYPE                                = 0x1a\n\tAUDIT_FSUID                                 = 0x4\n\tAUDIT_GET                                   = 0x3e8\n\tAUDIT_GET_FEATURE                           = 0x3fb\n\tAUDIT_GID                                   = 0x5\n\tAUDIT_GREATER_THAN                          = 0x20000000\n\tAUDIT_GREATER_THAN_OR_EQUAL                 = 0x60000000\n\tAUDIT_INODE                                 = 0x66\n\tAUDIT_INTEGRITY_DATA                        = 0x708\n\tAUDIT_INTEGRITY_EVM_XATTR                   = 0x70e\n\tAUDIT_INTEGRITY_HASH                        = 0x70b\n\tAUDIT_INTEGRITY_METADATA                    = 0x709\n\tAUDIT_INTEGRITY_PCR                         = 0x70c\n\tAUDIT_INTEGRITY_POLICY_RULE                 = 0x70f\n\tAUDIT_INTEGRITY_RULE                        = 0x70d\n\tAUDIT_INTEGRITY_STATUS                      = 0x70a\n\tAUDIT_INTEGRITY_USERSPACE                   = 0x710\n\tAUDIT_IPC                                   = 0x517\n\tAUDIT_IPC_SET_PERM                          = 0x51f\n\tAUDIT_IPE_ACCESS                            = 0x58c\n\tAUDIT_IPE_CONFIG_CHANGE                     = 0x58d\n\tAUDIT_IPE_POLICY_LOAD                       = 0x58e\n\tAUDIT_KERNEL                                = 0x7d0\n\tAUDIT_KERNEL_OTHER                          = 0x524\n\tAUDIT_KERN_MODULE                           = 0x532\n\tAUDIT_LANDLOCK_ACCESS                       = 0x58f\n\tAUDIT_LANDLOCK_DOMAIN                       = 0x590\n\tAUDIT_LAST_FEATURE                          = 0x1\n\tAUDIT_LAST_KERN_ANOM_MSG                    = 0x707\n\tAUDIT_LAST_USER_MSG                         = 0x4af\n\tAUDIT_LAST_USER_MSG2                        = 0xbb7\n\tAUDIT_LESS_THAN                             = 0x10000000\n\tAUDIT_LESS_THAN_OR_EQUAL                    = 0x50000000\n\tAUDIT_LIST                                  = 0x3ea\n\tAUDIT_LIST_RULES                            = 0x3f5\n\tAUDIT_LOGIN                                 = 0x3ee\n\tAUDIT_LOGINUID                              = 0x9\n\tAUDIT_LOGINUID_SET                          = 0x18\n\tAUDIT_MAC_CALIPSO_ADD                       = 0x58a\n\tAUDIT_MAC_CALIPSO_DEL                       = 0x58b\n\tAUDIT_MAC_CIPSOV4_ADD                       = 0x57f\n\tAUDIT_MAC_CIPSOV4_DEL                       = 0x580\n\tAUDIT_MAC_CONFIG_CHANGE                     = 0x57d\n\tAUDIT_MAC_IPSEC_ADDSA                       = 0x583\n\tAUDIT_MAC_IPSEC_ADDSPD                      = 0x585\n\tAUDIT_MAC_IPSEC_DELSA                       = 0x584\n\tAUDIT_MAC_IPSEC_DELSPD                      = 0x586\n\tAUDIT_MAC_IPSEC_EVENT                       = 0x587\n\tAUDIT_MAC_MAP_ADD                           = 0x581\n\tAUDIT_MAC_MAP_DEL                           = 0x582\n\tAUDIT_MAC_POLICY_LOAD                       = 0x57b\n\tAUDIT_MAC_STATUS                            = 0x57c\n\tAUDIT_MAC_UNLBL_ALLOW                       = 0x57e\n\tAUDIT_MAC_UNLBL_STCADD                      = 0x588\n\tAUDIT_MAC_UNLBL_STCDEL                      = 0x589\n\tAUDIT_MAKE_EQUIV                            = 0x3f7\n\tAUDIT_MAX_FIELDS                            = 0x40\n\tAUDIT_MAX_FIELD_COMPARE                     = 0x19\n\tAUDIT_MAX_KEY_LEN                           = 0x100\n\tAUDIT_MESSAGE_TEXT_MAX                      = 0x2170\n\tAUDIT_MMAP                                  = 0x52b\n\tAUDIT_MQ_GETSETATTR                         = 0x523\n\tAUDIT_MQ_NOTIFY                             = 0x522\n\tAUDIT_MQ_OPEN                               = 0x520\n\tAUDIT_MQ_SENDRECV                           = 0x521\n\tAUDIT_MSGTYPE                               = 0xc\n\tAUDIT_NEGATE                                = 0x80000000\n\tAUDIT_NETFILTER_CFG                         = 0x52d\n\tAUDIT_NETFILTER_PKT                         = 0x52c\n\tAUDIT_NEVER                                 = 0x0\n\tAUDIT_NLGRP_MAX                             = 0x1\n\tAUDIT_NOT_EQUAL                             = 0x30000000\n\tAUDIT_NR_FILTERS                            = 0x8\n\tAUDIT_OBJ_GID                               = 0x6e\n\tAUDIT_OBJ_LEV_HIGH                          = 0x17\n\tAUDIT_OBJ_LEV_LOW                           = 0x16\n\tAUDIT_OBJ_PID                               = 0x526\n\tAUDIT_OBJ_ROLE                              = 0x14\n\tAUDIT_OBJ_TYPE                              = 0x15\n\tAUDIT_OBJ_UID                               = 0x6d\n\tAUDIT_OBJ_USER                              = 0x13\n\tAUDIT_OPENAT2                               = 0x539\n\tAUDIT_OPERATORS                             = 0x78000000\n\tAUDIT_PATH                                  = 0x516\n\tAUDIT_PERM                                  = 0x6a\n\tAUDIT_PERM_ATTR                             = 0x8\n\tAUDIT_PERM_EXEC                             = 0x1\n\tAUDIT_PERM_READ                             = 0x4\n\tAUDIT_PERM_WRITE                            = 0x2\n\tAUDIT_PERS                                  = 0xa\n\tAUDIT_PID                                   = 0x0\n\tAUDIT_POSSIBLE                              = 0x1\n\tAUDIT_PPID                                  = 0x12\n\tAUDIT_PROCTITLE                             = 0x52f\n\tAUDIT_REPLACE                               = 0x531\n\tAUDIT_SADDR_FAM                             = 0x71\n\tAUDIT_SECCOMP                               = 0x52e\n\tAUDIT_SELINUX_ERR                           = 0x579\n\tAUDIT_SESSIONID                             = 0x19\n\tAUDIT_SET                                   = 0x3e9\n\tAUDIT_SET_FEATURE                           = 0x3fa\n\tAUDIT_SGID                                  = 0x7\n\tAUDIT_SID_UNSET                             = 0xffffffff\n\tAUDIT_SIGNAL_INFO                           = 0x3f2\n\tAUDIT_SOCKADDR                              = 0x51a\n\tAUDIT_SOCKETCALL                            = 0x518\n\tAUDIT_STATUS_BACKLOG_LIMIT                  = 0x10\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME              = 0x20\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL       = 0x80\n\tAUDIT_STATUS_ENABLED                        = 0x1\n\tAUDIT_STATUS_FAILURE                        = 0x2\n\tAUDIT_STATUS_LOST                           = 0x40\n\tAUDIT_STATUS_PID                            = 0x4\n\tAUDIT_STATUS_RATE_LIMIT                     = 0x8\n\tAUDIT_SUBJ_CLR                              = 0x11\n\tAUDIT_SUBJ_ROLE                             = 0xe\n\tAUDIT_SUBJ_SEN                              = 0x10\n\tAUDIT_SUBJ_TYPE                             = 0xf\n\tAUDIT_SUBJ_USER                             = 0xd\n\tAUDIT_SUCCESS                               = 0x68\n\tAUDIT_SUID                                  = 0x3\n\tAUDIT_SYSCALL                               = 0x514\n\tAUDIT_SYSCALL_CLASSES                       = 0x10\n\tAUDIT_TIME_ADJNTPVAL                        = 0x535\n\tAUDIT_TIME_INJOFFSET                        = 0x534\n\tAUDIT_TRIM                                  = 0x3f6\n\tAUDIT_TTY                                   = 0x527\n\tAUDIT_TTY_GET                               = 0x3f8\n\tAUDIT_TTY_SET                               = 0x3f9\n\tAUDIT_UID                                   = 0x1\n\tAUDIT_UID_UNSET                             = 0xffffffff\n\tAUDIT_UNUSED_BITS                           = 0x7fffc00\n\tAUDIT_URINGOP                               = 0x538\n\tAUDIT_USER                                  = 0x3ed\n\tAUDIT_USER_AVC                              = 0x453\n\tAUDIT_USER_TTY                              = 0x464\n\tAUDIT_VERSION_BACKLOG_LIMIT                 = 0x1\n\tAUDIT_VERSION_BACKLOG_WAIT_TIME             = 0x2\n\tAUDIT_VERSION_LATEST                        = 0x7f\n\tAUDIT_WATCH                                 = 0x69\n\tAUDIT_WATCH_INS                             = 0x3ef\n\tAUDIT_WATCH_LIST                            = 0x3f1\n\tAUDIT_WATCH_REM                             = 0x3f0\n\tAUTOFS_SUPER_MAGIC                          = 0x187\n\tB0                                          = 0x0\n\tB110                                        = 0x3\n\tB1200                                       = 0x9\n\tB134                                        = 0x4\n\tB150                                        = 0x5\n\tB1800                                       = 0xa\n\tB19200                                      = 0xe\n\tB200                                        = 0x6\n\tB2400                                       = 0xb\n\tB300                                        = 0x7\n\tB38400                                      = 0xf\n\tB4800                                       = 0xc\n\tB50                                         = 0x1\n\tB600                                        = 0x8\n\tB75                                         = 0x2\n\tB9600                                       = 0xd\n\tBCACHEFS_SUPER_MAGIC                        = 0xca451a4e\n\tBDEVFS_MAGIC                                = 0x62646576\n\tBINDERFS_SUPER_MAGIC                        = 0x6c6f6f70\n\tBINFMTFS_MAGIC                              = 0x42494e4d\n\tBPF_A                                       = 0x10\n\tBPF_ABS                                     = 0x20\n\tBPF_ADD                                     = 0x0\n\tBPF_ALU                                     = 0x4\n\tBPF_ALU64                                   = 0x7\n\tBPF_AND                                     = 0x50\n\tBPF_ARSH                                    = 0xc0\n\tBPF_ATOMIC                                  = 0xc0\n\tBPF_B                                       = 0x10\n\tBPF_BUILD_ID_SIZE                           = 0x14\n\tBPF_CALL                                    = 0x80\n\tBPF_CMPXCHG                                 = 0xf1\n\tBPF_DIV                                     = 0x30\n\tBPF_DW                                      = 0x18\n\tBPF_END                                     = 0xd0\n\tBPF_EXIT                                    = 0x90\n\tBPF_FETCH                                   = 0x1\n\tBPF_FROM_BE                                 = 0x8\n\tBPF_FROM_LE                                 = 0x0\n\tBPF_FS_MAGIC                                = 0xcafe4a11\n\tBPF_F_AFTER                                 = 0x10\n\tBPF_F_ALLOW_MULTI                           = 0x2\n\tBPF_F_ALLOW_OVERRIDE                        = 0x1\n\tBPF_F_ANY_ALIGNMENT                         = 0x2\n\tBPF_F_BEFORE                                = 0x8\n\tBPF_F_ID                                    = 0x20\n\tBPF_F_NETFILTER_IP_DEFRAG                   = 0x1\n\tBPF_F_PREORDER                              = 0x40\n\tBPF_F_QUERY_EFFECTIVE                       = 0x1\n\tBPF_F_REDIRECT_FLAGS                        = 0x19\n\tBPF_F_REPLACE                               = 0x4\n\tBPF_F_SLEEPABLE                             = 0x10\n\tBPF_F_STRICT_ALIGNMENT                      = 0x1\n\tBPF_F_TEST_REG_INVARIANTS                   = 0x80\n\tBPF_F_TEST_RND_HI32                         = 0x4\n\tBPF_F_TEST_RUN_ON_CPU                       = 0x1\n\tBPF_F_TEST_SKB_CHECKSUM_COMPLETE            = 0x4\n\tBPF_F_TEST_STATE_FREQ                       = 0x8\n\tBPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2\n\tBPF_F_XDP_DEV_BOUND_ONLY                    = 0x40\n\tBPF_F_XDP_HAS_FRAGS                         = 0x20\n\tBPF_H                                       = 0x8\n\tBPF_IMM                                     = 0x0\n\tBPF_IND                                     = 0x40\n\tBPF_JA                                      = 0x0\n\tBPF_JCOND                                   = 0xe0\n\tBPF_JEQ                                     = 0x10\n\tBPF_JGE                                     = 0x30\n\tBPF_JGT                                     = 0x20\n\tBPF_JLE                                     = 0xb0\n\tBPF_JLT                                     = 0xa0\n\tBPF_JMP                                     = 0x5\n\tBPF_JMP32                                   = 0x6\n\tBPF_JNE                                     = 0x50\n\tBPF_JSET                                    = 0x40\n\tBPF_JSGE                                    = 0x70\n\tBPF_JSGT                                    = 0x60\n\tBPF_JSLE                                    = 0xd0\n\tBPF_JSLT                                    = 0xc0\n\tBPF_K                                       = 0x0\n\tBPF_LD                                      = 0x0\n\tBPF_LDX                                     = 0x1\n\tBPF_LEN                                     = 0x80\n\tBPF_LL_OFF                                  = -0x200000\n\tBPF_LOAD_ACQ                                = 0x100\n\tBPF_LSH                                     = 0x60\n\tBPF_MAJOR_VERSION                           = 0x1\n\tBPF_MAXINSNS                                = 0x1000\n\tBPF_MEM                                     = 0x60\n\tBPF_MEMSX                                   = 0x80\n\tBPF_MEMWORDS                                = 0x10\n\tBPF_MINOR_VERSION                           = 0x1\n\tBPF_MISC                                    = 0x7\n\tBPF_MOD                                     = 0x90\n\tBPF_MOV                                     = 0xb0\n\tBPF_MSH                                     = 0xa0\n\tBPF_MUL                                     = 0x20\n\tBPF_NEG                                     = 0x80\n\tBPF_NET_OFF                                 = -0x100000\n\tBPF_OBJ_NAME_LEN                            = 0x10\n\tBPF_OR                                      = 0x40\n\tBPF_PSEUDO_BTF_ID                           = 0x3\n\tBPF_PSEUDO_CALL                             = 0x1\n\tBPF_PSEUDO_FUNC                             = 0x4\n\tBPF_PSEUDO_KFUNC_CALL                       = 0x2\n\tBPF_PSEUDO_MAP_FD                           = 0x1\n\tBPF_PSEUDO_MAP_IDX                          = 0x5\n\tBPF_PSEUDO_MAP_IDX_VALUE                    = 0x6\n\tBPF_PSEUDO_MAP_VALUE                        = 0x2\n\tBPF_RET                                     = 0x6\n\tBPF_RSH                                     = 0x70\n\tBPF_ST                                      = 0x2\n\tBPF_STORE_REL                               = 0x110\n\tBPF_STX                                     = 0x3\n\tBPF_SUB                                     = 0x10\n\tBPF_TAG_SIZE                                = 0x8\n\tBPF_TAX                                     = 0x0\n\tBPF_TO_BE                                   = 0x8\n\tBPF_TO_LE                                   = 0x0\n\tBPF_TXA                                     = 0x80\n\tBPF_W                                       = 0x0\n\tBPF_X                                       = 0x8\n\tBPF_XADD                                    = 0xc0\n\tBPF_XCHG                                    = 0xe1\n\tBPF_XOR                                     = 0xa0\n\tBRKINT                                      = 0x2\n\tBS0                                         = 0x0\n\tBTRFS_SUPER_MAGIC                           = 0x9123683e\n\tBTRFS_TEST_MAGIC                            = 0x73727279\n\tBUS_BLUETOOTH                               = 0x5\n\tBUS_HIL                                     = 0x4\n\tBUS_USB                                     = 0x3\n\tBUS_VIRTUAL                                 = 0x6\n\tCAN_BCM                                     = 0x2\n\tCAN_BUS_OFF_THRESHOLD                       = 0x100\n\tCAN_CTRLMODE_3_SAMPLES                      = 0x4\n\tCAN_CTRLMODE_BERR_REPORTING                 = 0x10\n\tCAN_CTRLMODE_CC_LEN8_DLC                    = 0x100\n\tCAN_CTRLMODE_FD                             = 0x20\n\tCAN_CTRLMODE_FD_NON_ISO                     = 0x80\n\tCAN_CTRLMODE_LISTENONLY                     = 0x2\n\tCAN_CTRLMODE_LOOPBACK                       = 0x1\n\tCAN_CTRLMODE_ONE_SHOT                       = 0x8\n\tCAN_CTRLMODE_PRESUME_ACK                    = 0x40\n\tCAN_CTRLMODE_TDC_AUTO                       = 0x200\n\tCAN_CTRLMODE_TDC_MANUAL                     = 0x400\n\tCAN_EFF_FLAG                                = 0x80000000\n\tCAN_EFF_ID_BITS                             = 0x1d\n\tCAN_EFF_MASK                                = 0x1fffffff\n\tCAN_ERROR_PASSIVE_THRESHOLD                 = 0x80\n\tCAN_ERROR_WARNING_THRESHOLD                 = 0x60\n\tCAN_ERR_ACK                                 = 0x20\n\tCAN_ERR_BUSERROR                            = 0x80\n\tCAN_ERR_BUSOFF                              = 0x40\n\tCAN_ERR_CNT                                 = 0x200\n\tCAN_ERR_CRTL                                = 0x4\n\tCAN_ERR_CRTL_ACTIVE                         = 0x40\n\tCAN_ERR_CRTL_RX_OVERFLOW                    = 0x1\n\tCAN_ERR_CRTL_RX_PASSIVE                     = 0x10\n\tCAN_ERR_CRTL_RX_WARNING                     = 0x4\n\tCAN_ERR_CRTL_TX_OVERFLOW                    = 0x2\n\tCAN_ERR_CRTL_TX_PASSIVE                     = 0x20\n\tCAN_ERR_CRTL_TX_WARNING                     = 0x8\n\tCAN_ERR_CRTL_UNSPEC                         = 0x0\n\tCAN_ERR_DLC                                 = 0x8\n\tCAN_ERR_FLAG                                = 0x20000000\n\tCAN_ERR_LOSTARB                             = 0x2\n\tCAN_ERR_LOSTARB_UNSPEC                      = 0x0\n\tCAN_ERR_MASK                                = 0x1fffffff\n\tCAN_ERR_PROT                                = 0x8\n\tCAN_ERR_PROT_ACTIVE                         = 0x40\n\tCAN_ERR_PROT_BIT                            = 0x1\n\tCAN_ERR_PROT_BIT0                           = 0x8\n\tCAN_ERR_PROT_BIT1                           = 0x10\n\tCAN_ERR_PROT_FORM                           = 0x2\n\tCAN_ERR_PROT_LOC_ACK                        = 0x19\n\tCAN_ERR_PROT_LOC_ACK_DEL                    = 0x1b\n\tCAN_ERR_PROT_LOC_CRC_DEL                    = 0x18\n\tCAN_ERR_PROT_LOC_CRC_SEQ                    = 0x8\n\tCAN_ERR_PROT_LOC_DATA                       = 0xa\n\tCAN_ERR_PROT_LOC_DLC                        = 0xb\n\tCAN_ERR_PROT_LOC_EOF                        = 0x1a\n\tCAN_ERR_PROT_LOC_ID04_00                    = 0xe\n\tCAN_ERR_PROT_LOC_ID12_05                    = 0xf\n\tCAN_ERR_PROT_LOC_ID17_13                    = 0x7\n\tCAN_ERR_PROT_LOC_ID20_18                    = 0x6\n\tCAN_ERR_PROT_LOC_ID28_21                    = 0x2\n\tCAN_ERR_PROT_LOC_IDE                        = 0x5\n\tCAN_ERR_PROT_LOC_INTERM                     = 0x12\n\tCAN_ERR_PROT_LOC_RES0                       = 0x9\n\tCAN_ERR_PROT_LOC_RES1                       = 0xd\n\tCAN_ERR_PROT_LOC_RTR                        = 0xc\n\tCAN_ERR_PROT_LOC_SOF                        = 0x3\n\tCAN_ERR_PROT_LOC_SRTR                       = 0x4\n\tCAN_ERR_PROT_LOC_UNSPEC                     = 0x0\n\tCAN_ERR_PROT_OVERLOAD                       = 0x20\n\tCAN_ERR_PROT_STUFF                          = 0x4\n\tCAN_ERR_PROT_TX                             = 0x80\n\tCAN_ERR_PROT_UNSPEC                         = 0x0\n\tCAN_ERR_RESTARTED                           = 0x100\n\tCAN_ERR_TRX                                 = 0x10\n\tCAN_ERR_TRX_CANH_NO_WIRE                    = 0x4\n\tCAN_ERR_TRX_CANH_SHORT_TO_BAT               = 0x5\n\tCAN_ERR_TRX_CANH_SHORT_TO_GND               = 0x7\n\tCAN_ERR_TRX_CANH_SHORT_TO_VCC               = 0x6\n\tCAN_ERR_TRX_CANL_NO_WIRE                    = 0x40\n\tCAN_ERR_TRX_CANL_SHORT_TO_BAT               = 0x50\n\tCAN_ERR_TRX_CANL_SHORT_TO_CANH              = 0x80\n\tCAN_ERR_TRX_CANL_SHORT_TO_GND               = 0x70\n\tCAN_ERR_TRX_CANL_SHORT_TO_VCC               = 0x60\n\tCAN_ERR_TRX_UNSPEC                          = 0x0\n\tCAN_ERR_TX_TIMEOUT                          = 0x1\n\tCAN_INV_FILTER                              = 0x20000000\n\tCAN_ISOTP                                   = 0x6\n\tCAN_J1939                                   = 0x7\n\tCAN_MAX_DLC                                 = 0x8\n\tCAN_MAX_DLEN                                = 0x8\n\tCAN_MAX_RAW_DLC                             = 0xf\n\tCAN_MCNET                                   = 0x5\n\tCAN_MTU                                     = 0x10\n\tCAN_NPROTO                                  = 0x8\n\tCAN_RAW                                     = 0x1\n\tCAN_RAW_FILTER_MAX                          = 0x200\n\tCAN_RAW_XL_VCID_RX_FILTER                   = 0x4\n\tCAN_RAW_XL_VCID_TX_PASS                     = 0x2\n\tCAN_RAW_XL_VCID_TX_SET                      = 0x1\n\tCAN_RTR_FLAG                                = 0x40000000\n\tCAN_SFF_ID_BITS                             = 0xb\n\tCAN_SFF_MASK                                = 0x7ff\n\tCAN_TERMINATION_DISABLED                    = 0x0\n\tCAN_TP16                                    = 0x3\n\tCAN_TP20                                    = 0x4\n\tCAP_AUDIT_CONTROL                           = 0x1e\n\tCAP_AUDIT_READ                              = 0x25\n\tCAP_AUDIT_WRITE                             = 0x1d\n\tCAP_BLOCK_SUSPEND                           = 0x24\n\tCAP_BPF                                     = 0x27\n\tCAP_CHECKPOINT_RESTORE                      = 0x28\n\tCAP_CHOWN                                   = 0x0\n\tCAP_DAC_OVERRIDE                            = 0x1\n\tCAP_DAC_READ_SEARCH                         = 0x2\n\tCAP_FOWNER                                  = 0x3\n\tCAP_FSETID                                  = 0x4\n\tCAP_IPC_LOCK                                = 0xe\n\tCAP_IPC_OWNER                               = 0xf\n\tCAP_KILL                                    = 0x5\n\tCAP_LAST_CAP                                = 0x28\n\tCAP_LEASE                                   = 0x1c\n\tCAP_LINUX_IMMUTABLE                         = 0x9\n\tCAP_MAC_ADMIN                               = 0x21\n\tCAP_MAC_OVERRIDE                            = 0x20\n\tCAP_MKNOD                                   = 0x1b\n\tCAP_NET_ADMIN                               = 0xc\n\tCAP_NET_BIND_SERVICE                        = 0xa\n\tCAP_NET_BROADCAST                           = 0xb\n\tCAP_NET_RAW                                 = 0xd\n\tCAP_PERFMON                                 = 0x26\n\tCAP_SETFCAP                                 = 0x1f\n\tCAP_SETGID                                  = 0x6\n\tCAP_SETPCAP                                 = 0x8\n\tCAP_SETUID                                  = 0x7\n\tCAP_SYSLOG                                  = 0x22\n\tCAP_SYS_ADMIN                               = 0x15\n\tCAP_SYS_BOOT                                = 0x16\n\tCAP_SYS_CHROOT                              = 0x12\n\tCAP_SYS_MODULE                              = 0x10\n\tCAP_SYS_NICE                                = 0x17\n\tCAP_SYS_PACCT                               = 0x14\n\tCAP_SYS_PTRACE                              = 0x13\n\tCAP_SYS_RAWIO                               = 0x11\n\tCAP_SYS_RESOURCE                            = 0x18\n\tCAP_SYS_TIME                                = 0x19\n\tCAP_SYS_TTY_CONFIG                          = 0x1a\n\tCAP_WAKE_ALARM                              = 0x23\n\tCEPH_SUPER_MAGIC                            = 0xc36400\n\tCFLUSH                                      = 0xf\n\tCGROUP2_SUPER_MAGIC                         = 0x63677270\n\tCGROUP_SUPER_MAGIC                          = 0x27e0eb\n\tCIFS_SUPER_MAGIC                            = 0xff534d42\n\tCLOCK_BOOTTIME                              = 0x7\n\tCLOCK_BOOTTIME_ALARM                        = 0x9\n\tCLOCK_DEFAULT                               = 0x0\n\tCLOCK_EXT                                   = 0x1\n\tCLOCK_INT                                   = 0x2\n\tCLOCK_MONOTONIC                             = 0x1\n\tCLOCK_MONOTONIC_COARSE                      = 0x6\n\tCLOCK_MONOTONIC_RAW                         = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID                    = 0x2\n\tCLOCK_REALTIME                              = 0x0\n\tCLOCK_REALTIME_ALARM                        = 0x8\n\tCLOCK_REALTIME_COARSE                       = 0x5\n\tCLOCK_TAI                                   = 0xb\n\tCLOCK_THREAD_CPUTIME_ID                     = 0x3\n\tCLOCK_TXFROMRX                              = 0x4\n\tCLOCK_TXINT                                 = 0x3\n\tCLONE_ARGS_SIZE_VER0                        = 0x40\n\tCLONE_ARGS_SIZE_VER1                        = 0x50\n\tCLONE_ARGS_SIZE_VER2                        = 0x58\n\tCLONE_CHILD_CLEARTID                        = 0x200000\n\tCLONE_CHILD_SETTID                          = 0x1000000\n\tCLONE_CLEAR_SIGHAND                         = 0x100000000\n\tCLONE_DETACHED                              = 0x400000\n\tCLONE_FILES                                 = 0x400\n\tCLONE_FS                                    = 0x200\n\tCLONE_INTO_CGROUP                           = 0x200000000\n\tCLONE_IO                                    = 0x80000000\n\tCLONE_NEWCGROUP                             = 0x2000000\n\tCLONE_NEWIPC                                = 0x8000000\n\tCLONE_NEWNET                                = 0x40000000\n\tCLONE_NEWNS                                 = 0x20000\n\tCLONE_NEWPID                                = 0x20000000\n\tCLONE_NEWTIME                               = 0x80\n\tCLONE_NEWUSER                               = 0x10000000\n\tCLONE_NEWUTS                                = 0x4000000\n\tCLONE_PARENT                                = 0x8000\n\tCLONE_PARENT_SETTID                         = 0x100000\n\tCLONE_PIDFD                                 = 0x1000\n\tCLONE_PTRACE                                = 0x2000\n\tCLONE_SETTLS                                = 0x80000\n\tCLONE_SIGHAND                               = 0x800\n\tCLONE_SYSVSEM                               = 0x40000\n\tCLONE_THREAD                                = 0x10000\n\tCLONE_UNTRACED                              = 0x800000\n\tCLONE_VFORK                                 = 0x4000\n\tCLONE_VM                                    = 0x100\n\tCMSPAR                                      = 0x40000000\n\tCODA_SUPER_MAGIC                            = 0x73757245\n\tCR0                                         = 0x0\n\tCRAMFS_MAGIC                                = 0x28cd3d45\n\tCRTSCTS                                     = 0x80000000\n\tCRYPTO_MAX_NAME                             = 0x40\n\tCRYPTO_MSG_MAX                              = 0x15\n\tCRYPTO_NR_MSGTYPES                          = 0x6\n\tCRYPTO_REPORT_MAXSIZE                       = 0x160\n\tCS5                                         = 0x0\n\tCSIGNAL                                     = 0xff\n\tCSTART                                      = 0x11\n\tCSTATUS                                     = 0x0\n\tCSTOP                                       = 0x13\n\tCSUSP                                       = 0x1a\n\tDAXFS_MAGIC                                 = 0x64646178\n\tDEBUGFS_MAGIC                               = 0x64626720\n\tDEVLINK_CMD_ESWITCH_MODE_GET                = 0x1d\n\tDEVLINK_CMD_ESWITCH_MODE_SET                = 0x1e\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS         = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS            = 0x1\n\tDEVLINK_GENL_MCGRP_CONFIG_NAME              = \"config\"\n\tDEVLINK_GENL_NAME                           = \"devlink\"\n\tDEVLINK_GENL_VERSION                        = 0x1\n\tDEVLINK_PORT_FN_CAP_IPSEC_CRYPTO            = 0x4\n\tDEVLINK_PORT_FN_CAP_IPSEC_PACKET            = 0x8\n\tDEVLINK_PORT_FN_CAP_MIGRATABLE              = 0x2\n\tDEVLINK_PORT_FN_CAP_ROCE                    = 0x1\n\tDEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14\n\tDEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS  = 0x3\n\tDEVMEM_MAGIC                                = 0x454d444d\n\tDEVPTS_SUPER_MAGIC                          = 0x1cd1\n\tDMA_BUF_MAGIC                               = 0x444d4142\n\tDM_ACTIVE_PRESENT_FLAG                      = 0x20\n\tDM_BUFFER_FULL_FLAG                         = 0x100\n\tDM_CONTROL_NODE                             = \"control\"\n\tDM_DATA_OUT_FLAG                            = 0x10000\n\tDM_DEFERRED_REMOVE                          = 0x20000\n\tDM_DEV_ARM_POLL                             = 0xc138fd10\n\tDM_DEV_CREATE                               = 0xc138fd03\n\tDM_DEV_REMOVE                               = 0xc138fd04\n\tDM_DEV_RENAME                               = 0xc138fd05\n\tDM_DEV_SET_GEOMETRY                         = 0xc138fd0f\n\tDM_DEV_STATUS                               = 0xc138fd07\n\tDM_DEV_SUSPEND                              = 0xc138fd06\n\tDM_DEV_WAIT                                 = 0xc138fd08\n\tDM_DIR                                      = \"mapper\"\n\tDM_GET_TARGET_VERSION                       = 0xc138fd11\n\tDM_IMA_MEASUREMENT_FLAG                     = 0x80000\n\tDM_INACTIVE_PRESENT_FLAG                    = 0x40\n\tDM_INTERNAL_SUSPEND_FLAG                    = 0x40000\n\tDM_IOCTL                                    = 0xfd\n\tDM_LIST_DEVICES                             = 0xc138fd02\n\tDM_LIST_VERSIONS                            = 0xc138fd0d\n\tDM_MAX_TYPE_NAME                            = 0x10\n\tDM_NAME_LEN                                 = 0x80\n\tDM_NAME_LIST_FLAG_DOESNT_HAVE_UUID          = 0x2\n\tDM_NAME_LIST_FLAG_HAS_UUID                  = 0x1\n\tDM_NOFLUSH_FLAG                             = 0x800\n\tDM_PERSISTENT_DEV_FLAG                      = 0x8\n\tDM_QUERY_INACTIVE_TABLE_FLAG                = 0x1000\n\tDM_READONLY_FLAG                            = 0x1\n\tDM_REMOVE_ALL                               = 0xc138fd01\n\tDM_SECURE_DATA_FLAG                         = 0x8000\n\tDM_SKIP_BDGET_FLAG                          = 0x200\n\tDM_SKIP_LOCKFS_FLAG                         = 0x400\n\tDM_STATUS_TABLE_FLAG                        = 0x10\n\tDM_SUSPEND_FLAG                             = 0x2\n\tDM_TABLE_CLEAR                              = 0xc138fd0a\n\tDM_TABLE_DEPS                               = 0xc138fd0b\n\tDM_TABLE_LOAD                               = 0xc138fd09\n\tDM_TABLE_STATUS                             = 0xc138fd0c\n\tDM_TARGET_MSG                               = 0xc138fd0e\n\tDM_UEVENT_GENERATED_FLAG                    = 0x2000\n\tDM_UUID_FLAG                                = 0x4000\n\tDM_UUID_LEN                                 = 0x81\n\tDM_VERSION                                  = 0xc138fd00\n\tDM_VERSION_EXTRA                            = \"-ioctl (2025-04-28)\"\n\tDM_VERSION_MAJOR                            = 0x4\n\tDM_VERSION_MINOR                            = 0x32\n\tDM_VERSION_PATCHLEVEL                       = 0x0\n\tDT_ADDRRNGHI                                = 0x6ffffeff\n\tDT_ADDRRNGLO                                = 0x6ffffe00\n\tDT_BLK                                      = 0x6\n\tDT_CHR                                      = 0x2\n\tDT_DEBUG                                    = 0x15\n\tDT_DIR                                      = 0x4\n\tDT_ENCODING                                 = 0x20\n\tDT_FIFO                                     = 0x1\n\tDT_FINI                                     = 0xd\n\tDT_FLAGS_1                                  = 0x6ffffffb\n\tDT_GNU_HASH                                 = 0x6ffffef5\n\tDT_HASH                                     = 0x4\n\tDT_HIOS                                     = 0x6ffff000\n\tDT_HIPROC                                   = 0x7fffffff\n\tDT_INIT                                     = 0xc\n\tDT_JMPREL                                   = 0x17\n\tDT_LNK                                      = 0xa\n\tDT_LOOS                                     = 0x6000000d\n\tDT_LOPROC                                   = 0x70000000\n\tDT_NEEDED                                   = 0x1\n\tDT_NULL                                     = 0x0\n\tDT_PLTGOT                                   = 0x3\n\tDT_PLTREL                                   = 0x14\n\tDT_PLTRELSZ                                 = 0x2\n\tDT_REG                                      = 0x8\n\tDT_REL                                      = 0x11\n\tDT_RELA                                     = 0x7\n\tDT_RELACOUNT                                = 0x6ffffff9\n\tDT_RELAENT                                  = 0x9\n\tDT_RELASZ                                   = 0x8\n\tDT_RELCOUNT                                 = 0x6ffffffa\n\tDT_RELENT                                   = 0x13\n\tDT_RELSZ                                    = 0x12\n\tDT_RPATH                                    = 0xf\n\tDT_SOCK                                     = 0xc\n\tDT_SONAME                                   = 0xe\n\tDT_STRSZ                                    = 0xa\n\tDT_STRTAB                                   = 0x5\n\tDT_SYMBOLIC                                 = 0x10\n\tDT_SYMENT                                   = 0xb\n\tDT_SYMTAB                                   = 0x6\n\tDT_TEXTREL                                  = 0x16\n\tDT_UNKNOWN                                  = 0x0\n\tDT_VALRNGHI                                 = 0x6ffffdff\n\tDT_VALRNGLO                                 = 0x6ffffd00\n\tDT_VERDEF                                   = 0x6ffffffc\n\tDT_VERDEFNUM                                = 0x6ffffffd\n\tDT_VERNEED                                  = 0x6ffffffe\n\tDT_VERNEEDNUM                               = 0x6fffffff\n\tDT_VERSYM                                   = 0x6ffffff0\n\tDT_WHT                                      = 0xe\n\tECHO                                        = 0x8\n\tECRYPTFS_SUPER_MAGIC                        = 0xf15f\n\tEFD_SEMAPHORE                               = 0x1\n\tEFIVARFS_MAGIC                              = 0xde5e81e4\n\tEFS_SUPER_MAGIC                             = 0x414a53\n\tEI_CLASS                                    = 0x4\n\tEI_DATA                                     = 0x5\n\tEI_MAG0                                     = 0x0\n\tEI_MAG1                                     = 0x1\n\tEI_MAG2                                     = 0x2\n\tEI_MAG3                                     = 0x3\n\tEI_NIDENT                                   = 0x10\n\tEI_OSABI                                    = 0x7\n\tEI_PAD                                      = 0x8\n\tEI_VERSION                                  = 0x6\n\tELFCLASS32                                  = 0x1\n\tELFCLASS64                                  = 0x2\n\tELFCLASSNONE                                = 0x0\n\tELFCLASSNUM                                 = 0x3\n\tELFDATA2LSB                                 = 0x1\n\tELFDATA2MSB                                 = 0x2\n\tELFDATANONE                                 = 0x0\n\tELFMAG                                      = \"\\177ELF\"\n\tELFMAG0                                     = 0x7f\n\tELFMAG1                                     = 'E'\n\tELFMAG2                                     = 'L'\n\tELFMAG3                                     = 'F'\n\tELFOSABI_LINUX                              = 0x3\n\tELFOSABI_NONE                               = 0x0\n\tEM_386                                      = 0x3\n\tEM_486                                      = 0x6\n\tEM_68K                                      = 0x4\n\tEM_860                                      = 0x7\n\tEM_88K                                      = 0x5\n\tEM_AARCH64                                  = 0xb7\n\tEM_ALPHA                                    = 0x9026\n\tEM_ALTERA_NIOS2                             = 0x71\n\tEM_ARCOMPACT                                = 0x5d\n\tEM_ARCV2                                    = 0xc3\n\tEM_ARM                                      = 0x28\n\tEM_BLACKFIN                                 = 0x6a\n\tEM_BPF                                      = 0xf7\n\tEM_CRIS                                     = 0x4c\n\tEM_CSKY                                     = 0xfc\n\tEM_CYGNUS_M32R                              = 0x9041\n\tEM_CYGNUS_MN10300                           = 0xbeef\n\tEM_FRV                                      = 0x5441\n\tEM_H8_300                                   = 0x2e\n\tEM_HEXAGON                                  = 0xa4\n\tEM_IA_64                                    = 0x32\n\tEM_LOONGARCH                                = 0x102\n\tEM_M32                                      = 0x1\n\tEM_M32R                                     = 0x58\n\tEM_MICROBLAZE                               = 0xbd\n\tEM_MIPS                                     = 0x8\n\tEM_MIPS_RS3_LE                              = 0xa\n\tEM_MIPS_RS4_BE                              = 0xa\n\tEM_MN10300                                  = 0x59\n\tEM_NDS32                                    = 0xa7\n\tEM_NONE                                     = 0x0\n\tEM_OPENRISC                                 = 0x5c\n\tEM_PARISC                                   = 0xf\n\tEM_PPC                                      = 0x14\n\tEM_PPC64                                    = 0x15\n\tEM_RISCV                                    = 0xf3\n\tEM_S390                                     = 0x16\n\tEM_S390_OLD                                 = 0xa390\n\tEM_SH                                       = 0x2a\n\tEM_SPARC                                    = 0x2\n\tEM_SPARC32PLUS                              = 0x12\n\tEM_SPARCV9                                  = 0x2b\n\tEM_SPU                                      = 0x17\n\tEM_TILEGX                                   = 0xbf\n\tEM_TILEPRO                                  = 0xbc\n\tEM_TI_C6000                                 = 0x8c\n\tEM_UNICORE                                  = 0x6e\n\tEM_X86_64                                   = 0x3e\n\tEM_XTENSA                                   = 0x5e\n\tENCODING_DEFAULT                            = 0x0\n\tENCODING_FM_MARK                            = 0x3\n\tENCODING_FM_SPACE                           = 0x4\n\tENCODING_MANCHESTER                         = 0x5\n\tENCODING_NRZ                                = 0x1\n\tENCODING_NRZI                               = 0x2\n\tEPOLLERR                                    = 0x8\n\tEPOLLET                                     = 0x80000000\n\tEPOLLEXCLUSIVE                              = 0x10000000\n\tEPOLLHUP                                    = 0x10\n\tEPOLLIN                                     = 0x1\n\tEPOLLMSG                                    = 0x400\n\tEPOLLONESHOT                                = 0x40000000\n\tEPOLLOUT                                    = 0x4\n\tEPOLLPRI                                    = 0x2\n\tEPOLLRDBAND                                 = 0x80\n\tEPOLLRDHUP                                  = 0x2000\n\tEPOLLRDNORM                                 = 0x40\n\tEPOLLWAKEUP                                 = 0x20000000\n\tEPOLLWRBAND                                 = 0x200\n\tEPOLLWRNORM                                 = 0x100\n\tEPOLL_CTL_ADD                               = 0x1\n\tEPOLL_CTL_DEL                               = 0x2\n\tEPOLL_CTL_MOD                               = 0x3\n\tEPOLL_IOC_TYPE                              = 0x8a\n\tEROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2\n\tETHTOOL_BUSINFO_LEN                         = 0x20\n\tETHTOOL_EROMVERS_LEN                        = 0x20\n\tETHTOOL_FAMILY_NAME                         = \"ethtool\"\n\tETHTOOL_FAMILY_VERSION                      = 0x1\n\tETHTOOL_FEC_AUTO                            = 0x2\n\tETHTOOL_FEC_BASER                           = 0x10\n\tETHTOOL_FEC_LLRS                            = 0x20\n\tETHTOOL_FEC_NONE                            = 0x1\n\tETHTOOL_FEC_OFF                             = 0x4\n\tETHTOOL_FEC_RS                              = 0x8\n\tETHTOOL_FLAG_ALL                            = 0x7\n\tETHTOOL_FLASHDEV                            = 0x33\n\tETHTOOL_FLASH_MAX_FILENAME                  = 0x80\n\tETHTOOL_FWVERS_LEN                          = 0x20\n\tETHTOOL_F_COMPAT                            = 0x4\n\tETHTOOL_F_UNSUPPORTED                       = 0x1\n\tETHTOOL_F_WISH                              = 0x2\n\tETHTOOL_GCHANNELS                           = 0x3c\n\tETHTOOL_GCOALESCE                           = 0xe\n\tETHTOOL_GDRVINFO                            = 0x3\n\tETHTOOL_GEEE                                = 0x44\n\tETHTOOL_GEEPROM                             = 0xb\n\tETHTOOL_GENL_NAME                           = \"ethtool\"\n\tETHTOOL_GENL_VERSION                        = 0x1\n\tETHTOOL_GET_DUMP_DATA                       = 0x40\n\tETHTOOL_GET_DUMP_FLAG                       = 0x3f\n\tETHTOOL_GET_TS_INFO                         = 0x41\n\tETHTOOL_GFEATURES                           = 0x3a\n\tETHTOOL_GFECPARAM                           = 0x50\n\tETHTOOL_GFLAGS                              = 0x25\n\tETHTOOL_GGRO                                = 0x2b\n\tETHTOOL_GGSO                                = 0x23\n\tETHTOOL_GLINK                               = 0xa\n\tETHTOOL_GLINKSETTINGS                       = 0x4c\n\tETHTOOL_GMODULEEEPROM                       = 0x43\n\tETHTOOL_GMODULEINFO                         = 0x42\n\tETHTOOL_GMSGLVL                             = 0x7\n\tETHTOOL_GPAUSEPARAM                         = 0x12\n\tETHTOOL_GPERMADDR                           = 0x20\n\tETHTOOL_GPFLAGS                             = 0x27\n\tETHTOOL_GPHYSTATS                           = 0x4a\n\tETHTOOL_GREGS                               = 0x4\n\tETHTOOL_GRINGPARAM                          = 0x10\n\tETHTOOL_GRSSH                               = 0x46\n\tETHTOOL_GRXCLSRLALL                         = 0x30\n\tETHTOOL_GRXCLSRLCNT                         = 0x2e\n\tETHTOOL_GRXCLSRULE                          = 0x2f\n\tETHTOOL_GRXCSUM                             = 0x14\n\tETHTOOL_GRXFH                               = 0x29\n\tETHTOOL_GRXFHINDIR                          = 0x38\n\tETHTOOL_GRXNTUPLE                           = 0x36\n\tETHTOOL_GRXRINGS                            = 0x2d\n\tETHTOOL_GSET                                = 0x1\n\tETHTOOL_GSG                                 = 0x18\n\tETHTOOL_GSSET_INFO                          = 0x37\n\tETHTOOL_GSTATS                              = 0x1d\n\tETHTOOL_GSTRINGS                            = 0x1b\n\tETHTOOL_GTSO                                = 0x1e\n\tETHTOOL_GTUNABLE                            = 0x48\n\tETHTOOL_GTXCSUM                             = 0x16\n\tETHTOOL_GUFO                                = 0x21\n\tETHTOOL_GWOL                                = 0x5\n\tETHTOOL_MCGRP_MONITOR_NAME                  = \"monitor\"\n\tETHTOOL_NWAY_RST                            = 0x9\n\tETHTOOL_PERQUEUE                            = 0x4b\n\tETHTOOL_PHYS_ID                             = 0x1c\n\tETHTOOL_PHY_EDPD_DFLT_TX_MSECS              = 0xffff\n\tETHTOOL_PHY_EDPD_DISABLE                    = 0x0\n\tETHTOOL_PHY_EDPD_NO_TX                      = 0xfffe\n\tETHTOOL_PHY_FAST_LINK_DOWN_OFF              = 0xff\n\tETHTOOL_PHY_FAST_LINK_DOWN_ON               = 0x0\n\tETHTOOL_PHY_GTUNABLE                        = 0x4e\n\tETHTOOL_PHY_STUNABLE                        = 0x4f\n\tETHTOOL_RESET                               = 0x34\n\tETHTOOL_RXNTUPLE_ACTION_CLEAR               = -0x2\n\tETHTOOL_RXNTUPLE_ACTION_DROP                = -0x1\n\tETHTOOL_RX_FLOW_SPEC_RING                   = 0xffffffff\n\tETHTOOL_RX_FLOW_SPEC_RING_VF                = 0xff00000000\n\tETHTOOL_RX_FLOW_SPEC_RING_VF_OFF            = 0x20\n\tETHTOOL_SCHANNELS                           = 0x3d\n\tETHTOOL_SCOALESCE                           = 0xf\n\tETHTOOL_SEEE                                = 0x45\n\tETHTOOL_SEEPROM                             = 0xc\n\tETHTOOL_SET_DUMP                            = 0x3e\n\tETHTOOL_SFEATURES                           = 0x3b\n\tETHTOOL_SFECPARAM                           = 0x51\n\tETHTOOL_SFLAGS                              = 0x26\n\tETHTOOL_SGRO                                = 0x2c\n\tETHTOOL_SGSO                                = 0x24\n\tETHTOOL_SLINKSETTINGS                       = 0x4d\n\tETHTOOL_SMSGLVL                             = 0x8\n\tETHTOOL_SPAUSEPARAM                         = 0x13\n\tETHTOOL_SPFLAGS                             = 0x28\n\tETHTOOL_SRINGPARAM                          = 0x11\n\tETHTOOL_SRSSH                               = 0x47\n\tETHTOOL_SRXCLSRLDEL                         = 0x31\n\tETHTOOL_SRXCLSRLINS                         = 0x32\n\tETHTOOL_SRXCSUM                             = 0x15\n\tETHTOOL_SRXFH                               = 0x2a\n\tETHTOOL_SRXFHINDIR                          = 0x39\n\tETHTOOL_SRXNTUPLE                           = 0x35\n\tETHTOOL_SSET                                = 0x2\n\tETHTOOL_SSG                                 = 0x19\n\tETHTOOL_STSO                                = 0x1f\n\tETHTOOL_STUNABLE                            = 0x49\n\tETHTOOL_STXCSUM                             = 0x17\n\tETHTOOL_SUFO                                = 0x22\n\tETHTOOL_SWOL                                = 0x6\n\tETHTOOL_TEST                                = 0x1a\n\tETH_P_1588                                  = 0x88f7\n\tETH_P_8021AD                                = 0x88a8\n\tETH_P_8021AH                                = 0x88e7\n\tETH_P_8021Q                                 = 0x8100\n\tETH_P_80221                                 = 0x8917\n\tETH_P_802_2                                 = 0x4\n\tETH_P_802_3                                 = 0x1\n\tETH_P_802_3_MIN                             = 0x600\n\tETH_P_802_EX1                               = 0x88b5\n\tETH_P_AARP                                  = 0x80f3\n\tETH_P_AF_IUCV                               = 0xfbfb\n\tETH_P_ALL                                   = 0x3\n\tETH_P_AOE                                   = 0x88a2\n\tETH_P_ARCNET                                = 0x1a\n\tETH_P_ARP                                   = 0x806\n\tETH_P_ATALK                                 = 0x809b\n\tETH_P_ATMFATE                               = 0x8884\n\tETH_P_ATMMPOA                               = 0x884c\n\tETH_P_AX25                                  = 0x2\n\tETH_P_BATMAN                                = 0x4305\n\tETH_P_BPQ                                   = 0x8ff\n\tETH_P_CAIF                                  = 0xf7\n\tETH_P_CAN                                   = 0xc\n\tETH_P_CANFD                                 = 0xd\n\tETH_P_CANXL                                 = 0xe\n\tETH_P_CFM                                   = 0x8902\n\tETH_P_CONTROL                               = 0x16\n\tETH_P_CUST                                  = 0x6006\n\tETH_P_DDCMP                                 = 0x6\n\tETH_P_DEC                                   = 0x6000\n\tETH_P_DIAG                                  = 0x6005\n\tETH_P_DNA_DL                                = 0x6001\n\tETH_P_DNA_RC                                = 0x6002\n\tETH_P_DNA_RT                                = 0x6003\n\tETH_P_DSA                                   = 0x1b\n\tETH_P_DSA_8021Q                             = 0xdadb\n\tETH_P_DSA_A5PSW                             = 0xe001\n\tETH_P_ECONET                                = 0x18\n\tETH_P_EDSA                                  = 0xdada\n\tETH_P_ERSPAN                                = 0x88be\n\tETH_P_ERSPAN2                               = 0x22eb\n\tETH_P_ETHERCAT                              = 0x88a4\n\tETH_P_FCOE                                  = 0x8906\n\tETH_P_FIP                                   = 0x8914\n\tETH_P_HDLC                                  = 0x19\n\tETH_P_HSR                                   = 0x892f\n\tETH_P_IBOE                                  = 0x8915\n\tETH_P_IEEE802154                            = 0xf6\n\tETH_P_IEEEPUP                               = 0xa00\n\tETH_P_IEEEPUPAT                             = 0xa01\n\tETH_P_IFE                                   = 0xed3e\n\tETH_P_IP                                    = 0x800\n\tETH_P_IPV6                                  = 0x86dd\n\tETH_P_IPX                                   = 0x8137\n\tETH_P_IRDA                                  = 0x17\n\tETH_P_LAT                                   = 0x6004\n\tETH_P_LINK_CTL                              = 0x886c\n\tETH_P_LLDP                                  = 0x88cc\n\tETH_P_LOCALTALK                             = 0x9\n\tETH_P_LOOP                                  = 0x60\n\tETH_P_LOOPBACK                              = 0x9000\n\tETH_P_MACSEC                                = 0x88e5\n\tETH_P_MAP                                   = 0xf9\n\tETH_P_MCTP                                  = 0xfa\n\tETH_P_MOBITEX                               = 0x15\n\tETH_P_MPLS_MC                               = 0x8848\n\tETH_P_MPLS_UC                               = 0x8847\n\tETH_P_MRP                                   = 0x88e3\n\tETH_P_MVRP                                  = 0x88f5\n\tETH_P_NCSI                                  = 0x88f8\n\tETH_P_NSH                                   = 0x894f\n\tETH_P_PAE                                   = 0x888e\n\tETH_P_PAUSE                                 = 0x8808\n\tETH_P_PHONET                                = 0xf5\n\tETH_P_PPPTALK                               = 0x10\n\tETH_P_PPP_DISC                              = 0x8863\n\tETH_P_PPP_MP                                = 0x8\n\tETH_P_PPP_SES                               = 0x8864\n\tETH_P_PREAUTH                               = 0x88c7\n\tETH_P_PROFINET                              = 0x8892\n\tETH_P_PRP                                   = 0x88fb\n\tETH_P_PUP                                   = 0x200\n\tETH_P_PUPAT                                 = 0x201\n\tETH_P_QINQ1                                 = 0x9100\n\tETH_P_QINQ2                                 = 0x9200\n\tETH_P_QINQ3                                 = 0x9300\n\tETH_P_RARP                                  = 0x8035\n\tETH_P_REALTEK                               = 0x8899\n\tETH_P_SCA                                   = 0x6007\n\tETH_P_SLOW                                  = 0x8809\n\tETH_P_SNAP                                  = 0x5\n\tETH_P_TDLS                                  = 0x890d\n\tETH_P_TEB                                   = 0x6558\n\tETH_P_TIPC                                  = 0x88ca\n\tETH_P_TRAILER                               = 0x1c\n\tETH_P_TR_802_2                              = 0x11\n\tETH_P_TSN                                   = 0x22f0\n\tETH_P_WAN_PPP                               = 0x7\n\tETH_P_WCCP                                  = 0x883e\n\tETH_P_X25                                   = 0x805\n\tETH_P_XDSA                                  = 0xf8\n\tET_CORE                                     = 0x4\n\tET_DYN                                      = 0x3\n\tET_EXEC                                     = 0x2\n\tET_HIPROC                                   = 0xffff\n\tET_LOPROC                                   = 0xff00\n\tET_NONE                                     = 0x0\n\tET_REL                                      = 0x1\n\tEV_ABS                                      = 0x3\n\tEV_CNT                                      = 0x20\n\tEV_CURRENT                                  = 0x1\n\tEV_FF                                       = 0x15\n\tEV_FF_STATUS                                = 0x17\n\tEV_KEY                                      = 0x1\n\tEV_LED                                      = 0x11\n\tEV_MAX                                      = 0x1f\n\tEV_MSC                                      = 0x4\n\tEV_NONE                                     = 0x0\n\tEV_NUM                                      = 0x2\n\tEV_PWR                                      = 0x16\n\tEV_REL                                      = 0x2\n\tEV_REP                                      = 0x14\n\tEV_SND                                      = 0x12\n\tEV_SW                                       = 0x5\n\tEV_SYN                                      = 0x0\n\tEV_VERSION                                  = 0x10001\n\tEXABYTE_ENABLE_NEST                         = 0xf0\n\tEXFAT_SUPER_MAGIC                           = 0x2011bab0\n\tEXT2_SUPER_MAGIC                            = 0xef53\n\tEXT3_SUPER_MAGIC                            = 0xef53\n\tEXT4_SUPER_MAGIC                            = 0xef53\n\tEXTA                                        = 0xe\n\tEXTB                                        = 0xf\n\tF2FS_SUPER_MAGIC                            = 0xf2f52010\n\tFALLOC_FL_ALLOCATE_RANGE                    = 0x0\n\tFALLOC_FL_COLLAPSE_RANGE                    = 0x8\n\tFALLOC_FL_INSERT_RANGE                      = 0x20\n\tFALLOC_FL_KEEP_SIZE                         = 0x1\n\tFALLOC_FL_NO_HIDE_STALE                     = 0x4\n\tFALLOC_FL_PUNCH_HOLE                        = 0x2\n\tFALLOC_FL_UNSHARE_RANGE                     = 0x40\n\tFALLOC_FL_ZERO_RANGE                        = 0x10\n\tFANOTIFY_METADATA_VERSION                   = 0x3\n\tFAN_ACCESS                                  = 0x1\n\tFAN_ACCESS_PERM                             = 0x20000\n\tFAN_ALLOW                                   = 0x1\n\tFAN_ALL_CLASS_BITS                          = 0xc\n\tFAN_ALL_EVENTS                              = 0x3b\n\tFAN_ALL_INIT_FLAGS                          = 0x3f\n\tFAN_ALL_MARK_FLAGS                          = 0xff\n\tFAN_ALL_OUTGOING_EVENTS                     = 0x3403b\n\tFAN_ALL_PERM_EVENTS                         = 0x30000\n\tFAN_ATTRIB                                  = 0x4\n\tFAN_AUDIT                                   = 0x10\n\tFAN_CLASS_CONTENT                           = 0x4\n\tFAN_CLASS_NOTIF                             = 0x0\n\tFAN_CLASS_PRE_CONTENT                       = 0x8\n\tFAN_CLOEXEC                                 = 0x1\n\tFAN_CLOSE                                   = 0x18\n\tFAN_CLOSE_NOWRITE                           = 0x10\n\tFAN_CLOSE_WRITE                             = 0x8\n\tFAN_CREATE                                  = 0x100\n\tFAN_DELETE                                  = 0x200\n\tFAN_DELETE_SELF                             = 0x400\n\tFAN_DENY                                    = 0x2\n\tFAN_ENABLE_AUDIT                            = 0x40\n\tFAN_EPIDFD                                  = -0x2\n\tFAN_ERRNO_BITS                              = 0x8\n\tFAN_ERRNO_MASK                              = 0xff\n\tFAN_ERRNO_SHIFT                             = 0x18\n\tFAN_EVENT_INFO_TYPE_DFID                    = 0x3\n\tFAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2\n\tFAN_EVENT_INFO_TYPE_ERROR                   = 0x5\n\tFAN_EVENT_INFO_TYPE_FID                     = 0x1\n\tFAN_EVENT_INFO_TYPE_MNT                     = 0x7\n\tFAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc\n\tFAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa\n\tFAN_EVENT_INFO_TYPE_PIDFD                   = 0x4\n\tFAN_EVENT_INFO_TYPE_RANGE                   = 0x6\n\tFAN_EVENT_METADATA_LEN                      = 0x18\n\tFAN_EVENT_ON_CHILD                          = 0x8000000\n\tFAN_FS_ERROR                                = 0x8000\n\tFAN_INFO                                    = 0x20\n\tFAN_MARK_ADD                                = 0x1\n\tFAN_MARK_DONT_FOLLOW                        = 0x4\n\tFAN_MARK_EVICTABLE                          = 0x200\n\tFAN_MARK_FILESYSTEM                         = 0x100\n\tFAN_MARK_FLUSH                              = 0x80\n\tFAN_MARK_IGNORE                             = 0x400\n\tFAN_MARK_IGNORED_MASK                       = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY                = 0x40\n\tFAN_MARK_IGNORE_SURV                        = 0x440\n\tFAN_MARK_INODE                              = 0x0\n\tFAN_MARK_MNTNS                              = 0x110\n\tFAN_MARK_MOUNT                              = 0x10\n\tFAN_MARK_ONLYDIR                            = 0x8\n\tFAN_MARK_REMOVE                             = 0x2\n\tFAN_MNT_ATTACH                              = 0x1000000\n\tFAN_MNT_DETACH                              = 0x2000000\n\tFAN_MODIFY                                  = 0x2\n\tFAN_MOVE                                    = 0xc0\n\tFAN_MOVED_FROM                              = 0x40\n\tFAN_MOVED_TO                                = 0x80\n\tFAN_MOVE_SELF                               = 0x800\n\tFAN_NOFD                                    = -0x1\n\tFAN_NONBLOCK                                = 0x2\n\tFAN_NOPIDFD                                 = -0x1\n\tFAN_ONDIR                                   = 0x40000000\n\tFAN_OPEN                                    = 0x20\n\tFAN_OPEN_EXEC                               = 0x1000\n\tFAN_OPEN_EXEC_PERM                          = 0x40000\n\tFAN_OPEN_PERM                               = 0x10000\n\tFAN_PRE_ACCESS                              = 0x100000\n\tFAN_Q_OVERFLOW                              = 0x4000\n\tFAN_RENAME                                  = 0x10000000\n\tFAN_REPORT_DFID_NAME                        = 0xc00\n\tFAN_REPORT_DFID_NAME_TARGET                 = 0x1e00\n\tFAN_REPORT_DIR_FID                          = 0x400\n\tFAN_REPORT_FD_ERROR                         = 0x2000\n\tFAN_REPORT_FID                              = 0x200\n\tFAN_REPORT_MNT                              = 0x4000\n\tFAN_REPORT_NAME                             = 0x800\n\tFAN_REPORT_PIDFD                            = 0x80\n\tFAN_REPORT_TARGET_FID                       = 0x1000\n\tFAN_REPORT_TID                              = 0x100\n\tFAN_RESPONSE_INFO_AUDIT_RULE                = 0x1\n\tFAN_RESPONSE_INFO_NONE                      = 0x0\n\tFAN_UNLIMITED_MARKS                         = 0x20\n\tFAN_UNLIMITED_QUEUE                         = 0x10\n\tFD_CLOEXEC                                  = 0x1\n\tFD_SETSIZE                                  = 0x400\n\tFF0                                         = 0x0\n\tFIB_RULE_DEV_DETACHED                       = 0x8\n\tFIB_RULE_FIND_SADDR                         = 0x10000\n\tFIB_RULE_IIF_DETACHED                       = 0x8\n\tFIB_RULE_INVERT                             = 0x2\n\tFIB_RULE_OIF_DETACHED                       = 0x10\n\tFIB_RULE_PERMANENT                          = 0x1\n\tFIB_RULE_UNRESOLVED                         = 0x4\n\tFIDEDUPERANGE                               = 0xc0189436\n\tFSCRYPT_ADD_KEY_FLAG_HW_WRAPPED             = 0x1\n\tFSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8\n\tFSCRYPT_KEY_DESC_PREFIX                     = \"fscrypt:\"\n\tFSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8\n\tFSCRYPT_KEY_IDENTIFIER_SIZE                 = 0x10\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY  = 0x1\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2\n\tFSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR            = 0x1\n\tFSCRYPT_KEY_SPEC_TYPE_IDENTIFIER            = 0x2\n\tFSCRYPT_KEY_STATUS_ABSENT                   = 0x1\n\tFSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF       = 0x1\n\tFSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED     = 0x3\n\tFSCRYPT_KEY_STATUS_PRESENT                  = 0x2\n\tFSCRYPT_MAX_KEY_SIZE                        = 0x40\n\tFSCRYPT_MODE_ADIANTUM                       = 0x9\n\tFSCRYPT_MODE_AES_128_CBC                    = 0x5\n\tFSCRYPT_MODE_AES_128_CTS                    = 0x6\n\tFSCRYPT_MODE_AES_256_CTS                    = 0x4\n\tFSCRYPT_MODE_AES_256_HCTR2                  = 0xa\n\tFSCRYPT_MODE_AES_256_XTS                    = 0x1\n\tFSCRYPT_MODE_SM4_CTS                        = 0x8\n\tFSCRYPT_MODE_SM4_XTS                        = 0x7\n\tFSCRYPT_POLICY_FLAGS_PAD_16                 = 0x2\n\tFSCRYPT_POLICY_FLAGS_PAD_32                 = 0x3\n\tFSCRYPT_POLICY_FLAGS_PAD_4                  = 0x0\n\tFSCRYPT_POLICY_FLAGS_PAD_8                  = 0x1\n\tFSCRYPT_POLICY_FLAGS_PAD_MASK               = 0x3\n\tFSCRYPT_POLICY_FLAG_DIRECT_KEY              = 0x4\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_32          = 0x10\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_64          = 0x8\n\tFSCRYPT_POLICY_V1                           = 0x0\n\tFSCRYPT_POLICY_V2                           = 0x2\n\tFS_ENCRYPTION_MODE_ADIANTUM                 = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC              = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS              = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC              = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS              = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM              = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS              = 0x1\n\tFS_ENCRYPTION_MODE_INVALID                  = 0x0\n\tFS_IOC_ADD_ENCRYPTION_KEY                   = 0xc0506617\n\tFS_IOC_GET_ENCRYPTION_KEY_STATUS            = 0xc080661a\n\tFS_IOC_GET_ENCRYPTION_POLICY_EX             = 0xc0096616\n\tFS_IOC_MEASURE_VERITY                       = 0xc0046686\n\tFS_IOC_READ_VERITY_METADATA                 = 0xc0286687\n\tFS_IOC_REMOVE_ENCRYPTION_KEY                = 0xc0406618\n\tFS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS      = 0xc0406619\n\tFS_KEY_DESCRIPTOR_SIZE                      = 0x8\n\tFS_KEY_DESC_PREFIX                          = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE                     = 0x8\n\tFS_MAX_KEY_SIZE                             = 0x40\n\tFS_POLICY_FLAGS_PAD_16                      = 0x2\n\tFS_POLICY_FLAGS_PAD_32                      = 0x3\n\tFS_POLICY_FLAGS_PAD_4                       = 0x0\n\tFS_POLICY_FLAGS_PAD_8                       = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK                    = 0x3\n\tFS_POLICY_FLAGS_VALID                       = 0x7\n\tFS_VERITY_FL                                = 0x100000\n\tFS_VERITY_HASH_ALG_SHA256                   = 0x1\n\tFS_VERITY_HASH_ALG_SHA512                   = 0x2\n\tFS_VERITY_METADATA_TYPE_DESCRIPTOR          = 0x2\n\tFS_VERITY_METADATA_TYPE_MERKLE_TREE         = 0x1\n\tFS_VERITY_METADATA_TYPE_SIGNATURE           = 0x3\n\tFUSE_SUPER_MAGIC                            = 0x65735546\n\tFUTEXFS_SUPER_MAGIC                         = 0xbad1dea\n\tF_ADD_SEALS                                 = 0x409\n\tF_CREATED_QUERY                             = 0x404\n\tF_DUPFD                                     = 0x0\n\tF_DUPFD_CLOEXEC                             = 0x406\n\tF_DUPFD_QUERY                               = 0x403\n\tF_EXLCK                                     = 0x4\n\tF_GETFD                                     = 0x1\n\tF_GETFL                                     = 0x3\n\tF_GETLEASE                                  = 0x401\n\tF_GETOWN_EX                                 = 0x10\n\tF_GETPIPE_SZ                                = 0x408\n\tF_GETSIG                                    = 0xb\n\tF_GET_FILE_RW_HINT                          = 0x40d\n\tF_GET_RW_HINT                               = 0x40b\n\tF_GET_SEALS                                 = 0x40a\n\tF_LOCK                                      = 0x1\n\tF_NOTIFY                                    = 0x402\n\tF_OFD_GETLK                                 = 0x24\n\tF_OFD_SETLK                                 = 0x25\n\tF_OFD_SETLKW                                = 0x26\n\tF_OK                                        = 0x0\n\tF_SEAL_EXEC                                 = 0x20\n\tF_SEAL_FUTURE_WRITE                         = 0x10\n\tF_SEAL_GROW                                 = 0x4\n\tF_SEAL_SEAL                                 = 0x1\n\tF_SEAL_SHRINK                               = 0x2\n\tF_SEAL_WRITE                                = 0x8\n\tF_SETFD                                     = 0x2\n\tF_SETFL                                     = 0x4\n\tF_SETLEASE                                  = 0x400\n\tF_SETOWN_EX                                 = 0xf\n\tF_SETPIPE_SZ                                = 0x407\n\tF_SETSIG                                    = 0xa\n\tF_SET_FILE_RW_HINT                          = 0x40e\n\tF_SET_RW_HINT                               = 0x40c\n\tF_SHLCK                                     = 0x8\n\tF_TEST                                      = 0x3\n\tF_TLOCK                                     = 0x2\n\tF_ULOCK                                     = 0x0\n\tGENL_ADMIN_PERM                             = 0x1\n\tGENL_CMD_CAP_DO                             = 0x2\n\tGENL_CMD_CAP_DUMP                           = 0x4\n\tGENL_CMD_CAP_HASPOL                         = 0x8\n\tGENL_HDRLEN                                 = 0x4\n\tGENL_ID_CTRL                                = 0x10\n\tGENL_ID_PMCRAID                             = 0x12\n\tGENL_ID_VFS_DQUOT                           = 0x11\n\tGENL_MAX_ID                                 = 0x3ff\n\tGENL_MIN_ID                                 = 0x10\n\tGENL_NAMSIZ                                 = 0x10\n\tGENL_START_ALLOC                            = 0x13\n\tGENL_UNS_ADMIN_PERM                         = 0x10\n\tGRND_INSECURE                               = 0x4\n\tGRND_NONBLOCK                               = 0x1\n\tGRND_RANDOM                                 = 0x2\n\tHDIO_DRIVE_CMD                              = 0x31f\n\tHDIO_DRIVE_CMD_AEB                          = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE                     = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE                     = 0x8\n\tHDIO_DRIVE_RESET                            = 0x31c\n\tHDIO_DRIVE_TASK                             = 0x31e\n\tHDIO_DRIVE_TASKFILE                         = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE                    = 0x8\n\tHDIO_GETGEO                                 = 0x301\n\tHDIO_GET_32BIT                              = 0x309\n\tHDIO_GET_ACOUSTIC                           = 0x30f\n\tHDIO_GET_ADDRESS                            = 0x310\n\tHDIO_GET_BUSSTATE                           = 0x31a\n\tHDIO_GET_DMA                                = 0x30b\n\tHDIO_GET_IDENTITY                           = 0x30d\n\tHDIO_GET_KEEPSETTINGS                       = 0x308\n\tHDIO_GET_MULTCOUNT                          = 0x304\n\tHDIO_GET_NICE                               = 0x30c\n\tHDIO_GET_NOWERR                             = 0x30a\n\tHDIO_GET_QDMA                               = 0x305\n\tHDIO_GET_UNMASKINTR                         = 0x302\n\tHDIO_GET_WCACHE                             = 0x30e\n\tHDIO_OBSOLETE_IDENTITY                      = 0x307\n\tHDIO_SCAN_HWIF                              = 0x328\n\tHDIO_SET_32BIT                              = 0x324\n\tHDIO_SET_ACOUSTIC                           = 0x32c\n\tHDIO_SET_ADDRESS                            = 0x32f\n\tHDIO_SET_BUSSTATE                           = 0x32d\n\tHDIO_SET_DMA                                = 0x326\n\tHDIO_SET_KEEPSETTINGS                       = 0x323\n\tHDIO_SET_MULTCOUNT                          = 0x321\n\tHDIO_SET_NICE                               = 0x329\n\tHDIO_SET_NOWERR                             = 0x325\n\tHDIO_SET_PIO_MODE                           = 0x327\n\tHDIO_SET_QDMA                               = 0x32e\n\tHDIO_SET_UNMASKINTR                         = 0x322\n\tHDIO_SET_WCACHE                             = 0x32b\n\tHDIO_SET_XFER                               = 0x306\n\tHDIO_TRISTATE_HWIF                          = 0x31b\n\tHDIO_UNREGISTER_HWIF                        = 0x32a\n\tHID_MAX_DESCRIPTOR_SIZE                     = 0x1000\n\tHOSTFS_SUPER_MAGIC                          = 0xc0ffee\n\tHPFS_SUPER_MAGIC                            = 0xf995e849\n\tHUGETLBFS_MAGIC                             = 0x958458f6\n\tIBSHIFT                                     = 0x10\n\tICRNL                                       = 0x100\n\tIFA_F_DADFAILED                             = 0x8\n\tIFA_F_DEPRECATED                            = 0x20\n\tIFA_F_HOMEADDRESS                           = 0x10\n\tIFA_F_MANAGETEMPADDR                        = 0x100\n\tIFA_F_MCAUTOJOIN                            = 0x400\n\tIFA_F_NODAD                                 = 0x2\n\tIFA_F_NOPREFIXROUTE                         = 0x200\n\tIFA_F_OPTIMISTIC                            = 0x4\n\tIFA_F_PERMANENT                             = 0x80\n\tIFA_F_SECONDARY                             = 0x1\n\tIFA_F_STABLE_PRIVACY                        = 0x800\n\tIFA_F_TEMPORARY                             = 0x1\n\tIFA_F_TENTATIVE                             = 0x40\n\tIFA_MAX                                     = 0xb\n\tIFF_ALLMULTI                                = 0x200\n\tIFF_ATTACH_QUEUE                            = 0x200\n\tIFF_AUTOMEDIA                               = 0x4000\n\tIFF_BROADCAST                               = 0x2\n\tIFF_DEBUG                                   = 0x4\n\tIFF_DETACH_QUEUE                            = 0x400\n\tIFF_DORMANT                                 = 0x20000\n\tIFF_DYNAMIC                                 = 0x8000\n\tIFF_ECHO                                    = 0x40000\n\tIFF_LOOPBACK                                = 0x8\n\tIFF_LOWER_UP                                = 0x10000\n\tIFF_MASTER                                  = 0x400\n\tIFF_MULTICAST                               = 0x1000\n\tIFF_MULTI_QUEUE                             = 0x100\n\tIFF_NAPI                                    = 0x10\n\tIFF_NAPI_FRAGS                              = 0x20\n\tIFF_NOARP                                   = 0x80\n\tIFF_NOFILTER                                = 0x1000\n\tIFF_NOTRAILERS                              = 0x20\n\tIFF_NO_CARRIER                              = 0x40\n\tIFF_NO_PI                                   = 0x1000\n\tIFF_ONE_QUEUE                               = 0x2000\n\tIFF_PERSIST                                 = 0x800\n\tIFF_POINTOPOINT                             = 0x10\n\tIFF_PORTSEL                                 = 0x2000\n\tIFF_PROMISC                                 = 0x100\n\tIFF_RUNNING                                 = 0x40\n\tIFF_SLAVE                                   = 0x800\n\tIFF_TAP                                     = 0x2\n\tIFF_TUN                                     = 0x1\n\tIFF_TUN_EXCL                                = 0x8000\n\tIFF_UP                                      = 0x1\n\tIFF_VNET_HDR                                = 0x4000\n\tIFF_VOLATILE                                = 0x70c5a\n\tIFNAMSIZ                                    = 0x10\n\tIGNBRK                                      = 0x1\n\tIGNCR                                       = 0x80\n\tIGNPAR                                      = 0x4\n\tIMAXBEL                                     = 0x2000\n\tINLCR                                       = 0x40\n\tINPCK                                       = 0x10\n\tIN_ACCESS                                   = 0x1\n\tIN_ALL_EVENTS                               = 0xfff\n\tIN_ATTRIB                                   = 0x4\n\tIN_CLASSA_HOST                              = 0xffffff\n\tIN_CLASSA_MAX                               = 0x80\n\tIN_CLASSA_NET                               = 0xff000000\n\tIN_CLASSA_NSHIFT                            = 0x18\n\tIN_CLASSB_HOST                              = 0xffff\n\tIN_CLASSB_MAX                               = 0x10000\n\tIN_CLASSB_NET                               = 0xffff0000\n\tIN_CLASSB_NSHIFT                            = 0x10\n\tIN_CLASSC_HOST                              = 0xff\n\tIN_CLASSC_NET                               = 0xffffff00\n\tIN_CLASSC_NSHIFT                            = 0x8\n\tIN_CLOSE                                    = 0x18\n\tIN_CLOSE_NOWRITE                            = 0x10\n\tIN_CLOSE_WRITE                              = 0x8\n\tIN_CREATE                                   = 0x100\n\tIN_DELETE                                   = 0x200\n\tIN_DELETE_SELF                              = 0x400\n\tIN_DONT_FOLLOW                              = 0x2000000\n\tIN_EXCL_UNLINK                              = 0x4000000\n\tIN_IGNORED                                  = 0x8000\n\tIN_ISDIR                                    = 0x40000000\n\tIN_LOOPBACKNET                              = 0x7f\n\tIN_MASK_ADD                                 = 0x20000000\n\tIN_MASK_CREATE                              = 0x10000000\n\tIN_MODIFY                                   = 0x2\n\tIN_MOVE                                     = 0xc0\n\tIN_MOVED_FROM                               = 0x40\n\tIN_MOVED_TO                                 = 0x80\n\tIN_MOVE_SELF                                = 0x800\n\tIN_ONESHOT                                  = 0x80000000\n\tIN_ONLYDIR                                  = 0x1000000\n\tIN_OPEN                                     = 0x20\n\tIN_Q_OVERFLOW                               = 0x4000\n\tIN_UNMOUNT                                  = 0x2000\n\tIOCTL_MEI_CONNECT_CLIENT                    = 0xc0104801\n\tIOCTL_MEI_CONNECT_CLIENT_VTAG               = 0xc0144804\n\tIPPROTO_AH                                  = 0x33\n\tIPPROTO_BEETPH                              = 0x5e\n\tIPPROTO_COMP                                = 0x6c\n\tIPPROTO_DCCP                                = 0x21\n\tIPPROTO_DSTOPTS                             = 0x3c\n\tIPPROTO_EGP                                 = 0x8\n\tIPPROTO_ENCAP                               = 0x62\n\tIPPROTO_ESP                                 = 0x32\n\tIPPROTO_ETHERNET                            = 0x8f\n\tIPPROTO_FRAGMENT                            = 0x2c\n\tIPPROTO_GRE                                 = 0x2f\n\tIPPROTO_HOPOPTS                             = 0x0\n\tIPPROTO_ICMP                                = 0x1\n\tIPPROTO_ICMPV6                              = 0x3a\n\tIPPROTO_IDP                                 = 0x16\n\tIPPROTO_IGMP                                = 0x2\n\tIPPROTO_IP                                  = 0x0\n\tIPPROTO_IPIP                                = 0x4\n\tIPPROTO_IPV6                                = 0x29\n\tIPPROTO_L2TP                                = 0x73\n\tIPPROTO_MH                                  = 0x87\n\tIPPROTO_MPLS                                = 0x89\n\tIPPROTO_MPTCP                               = 0x106\n\tIPPROTO_MTP                                 = 0x5c\n\tIPPROTO_NONE                                = 0x3b\n\tIPPROTO_PIM                                 = 0x67\n\tIPPROTO_PUP                                 = 0xc\n\tIPPROTO_RAW                                 = 0xff\n\tIPPROTO_ROUTING                             = 0x2b\n\tIPPROTO_RSVP                                = 0x2e\n\tIPPROTO_SCTP                                = 0x84\n\tIPPROTO_SMC                                 = 0x100\n\tIPPROTO_TCP                                 = 0x6\n\tIPPROTO_TP                                  = 0x1d\n\tIPPROTO_UDP                                 = 0x11\n\tIPPROTO_UDPLITE                             = 0x88\n\tIPV6_2292DSTOPTS                            = 0x4\n\tIPV6_2292HOPLIMIT                           = 0x8\n\tIPV6_2292HOPOPTS                            = 0x3\n\tIPV6_2292PKTINFO                            = 0x2\n\tIPV6_2292PKTOPTIONS                         = 0x6\n\tIPV6_2292RTHDR                              = 0x5\n\tIPV6_ADDRFORM                               = 0x1\n\tIPV6_ADDR_PREFERENCES                       = 0x48\n\tIPV6_ADD_MEMBERSHIP                         = 0x14\n\tIPV6_AUTHHDR                                = 0xa\n\tIPV6_AUTOFLOWLABEL                          = 0x46\n\tIPV6_CHECKSUM                               = 0x7\n\tIPV6_DONTFRAG                               = 0x3e\n\tIPV6_DROP_MEMBERSHIP                        = 0x15\n\tIPV6_DSTOPTS                                = 0x3b\n\tIPV6_FREEBIND                               = 0x4e\n\tIPV6_HDRINCL                                = 0x24\n\tIPV6_HOPLIMIT                               = 0x34\n\tIPV6_HOPOPTS                                = 0x36\n\tIPV6_IPSEC_POLICY                           = 0x22\n\tIPV6_JOIN_ANYCAST                           = 0x1b\n\tIPV6_JOIN_GROUP                             = 0x14\n\tIPV6_LEAVE_ANYCAST                          = 0x1c\n\tIPV6_LEAVE_GROUP                            = 0x15\n\tIPV6_MINHOPCOUNT                            = 0x49\n\tIPV6_MTU                                    = 0x18\n\tIPV6_MTU_DISCOVER                           = 0x17\n\tIPV6_MULTICAST_ALL                          = 0x1d\n\tIPV6_MULTICAST_HOPS                         = 0x12\n\tIPV6_MULTICAST_IF                           = 0x11\n\tIPV6_MULTICAST_LOOP                         = 0x13\n\tIPV6_NEXTHOP                                = 0x9\n\tIPV6_ORIGDSTADDR                            = 0x4a\n\tIPV6_PATHMTU                                = 0x3d\n\tIPV6_PKTINFO                                = 0x32\n\tIPV6_PMTUDISC_DO                            = 0x2\n\tIPV6_PMTUDISC_DONT                          = 0x0\n\tIPV6_PMTUDISC_INTERFACE                     = 0x4\n\tIPV6_PMTUDISC_OMIT                          = 0x5\n\tIPV6_PMTUDISC_PROBE                         = 0x3\n\tIPV6_PMTUDISC_WANT                          = 0x1\n\tIPV6_RECVDSTOPTS                            = 0x3a\n\tIPV6_RECVERR                                = 0x19\n\tIPV6_RECVERR_RFC4884                        = 0x1f\n\tIPV6_RECVFRAGSIZE                           = 0x4d\n\tIPV6_RECVHOPLIMIT                           = 0x33\n\tIPV6_RECVHOPOPTS                            = 0x35\n\tIPV6_RECVORIGDSTADDR                        = 0x4a\n\tIPV6_RECVPATHMTU                            = 0x3c\n\tIPV6_RECVPKTINFO                            = 0x31\n\tIPV6_RECVRTHDR                              = 0x38\n\tIPV6_RECVTCLASS                             = 0x42\n\tIPV6_ROUTER_ALERT                           = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE                   = 0x1e\n\tIPV6_RTHDR                                  = 0x39\n\tIPV6_RTHDRDSTOPTS                           = 0x37\n\tIPV6_RTHDR_LOOSE                            = 0x0\n\tIPV6_RTHDR_STRICT                           = 0x1\n\tIPV6_RTHDR_TYPE_0                           = 0x0\n\tIPV6_RXDSTOPTS                              = 0x3b\n\tIPV6_RXHOPOPTS                              = 0x36\n\tIPV6_TCLASS                                 = 0x43\n\tIPV6_TRANSPARENT                            = 0x4b\n\tIPV6_UNICAST_HOPS                           = 0x10\n\tIPV6_UNICAST_IF                             = 0x4c\n\tIPV6_V6ONLY                                 = 0x1a\n\tIPV6_VERSION                                = 0x60\n\tIPV6_VERSION_MASK                           = 0xf0\n\tIPV6_XFRM_POLICY                            = 0x23\n\tIP_ADD_MEMBERSHIP                           = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP                    = 0x27\n\tIP_BIND_ADDRESS_NO_PORT                     = 0x18\n\tIP_BLOCK_SOURCE                             = 0x26\n\tIP_CHECKSUM                                 = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP                   = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                    = 0x1\n\tIP_DF                                       = 0x4000\n\tIP_DROP_MEMBERSHIP                          = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP                   = 0x28\n\tIP_FREEBIND                                 = 0xf\n\tIP_HDRINCL                                  = 0x3\n\tIP_IPSEC_POLICY                             = 0x10\n\tIP_LOCAL_PORT_RANGE                         = 0x33\n\tIP_MAXPACKET                                = 0xffff\n\tIP_MAX_MEMBERSHIPS                          = 0x14\n\tIP_MF                                       = 0x2000\n\tIP_MINTTL                                   = 0x15\n\tIP_MSFILTER                                 = 0x29\n\tIP_MSS                                      = 0x240\n\tIP_MTU                                      = 0xe\n\tIP_MTU_DISCOVER                             = 0xa\n\tIP_MULTICAST_ALL                            = 0x31\n\tIP_MULTICAST_IF                             = 0x20\n\tIP_MULTICAST_LOOP                           = 0x22\n\tIP_MULTICAST_TTL                            = 0x21\n\tIP_NODEFRAG                                 = 0x16\n\tIP_OFFMASK                                  = 0x1fff\n\tIP_OPTIONS                                  = 0x4\n\tIP_ORIGDSTADDR                              = 0x14\n\tIP_PASSSEC                                  = 0x12\n\tIP_PKTINFO                                  = 0x8\n\tIP_PKTOPTIONS                               = 0x9\n\tIP_PMTUDISC                                 = 0xa\n\tIP_PMTUDISC_DO                              = 0x2\n\tIP_PMTUDISC_DONT                            = 0x0\n\tIP_PMTUDISC_INTERFACE                       = 0x4\n\tIP_PMTUDISC_OMIT                            = 0x5\n\tIP_PMTUDISC_PROBE                           = 0x3\n\tIP_PMTUDISC_WANT                            = 0x1\n\tIP_PROTOCOL                                 = 0x34\n\tIP_RECVERR                                  = 0xb\n\tIP_RECVERR_RFC4884                          = 0x1a\n\tIP_RECVFRAGSIZE                             = 0x19\n\tIP_RECVOPTS                                 = 0x6\n\tIP_RECVORIGDSTADDR                          = 0x14\n\tIP_RECVRETOPTS                              = 0x7\n\tIP_RECVTOS                                  = 0xd\n\tIP_RECVTTL                                  = 0xc\n\tIP_RETOPTS                                  = 0x7\n\tIP_RF                                       = 0x8000\n\tIP_ROUTER_ALERT                             = 0x5\n\tIP_TOS                                      = 0x1\n\tIP_TRANSPARENT                              = 0x13\n\tIP_TTL                                      = 0x2\n\tIP_UNBLOCK_SOURCE                           = 0x25\n\tIP_UNICAST_IF                               = 0x32\n\tIP_XFRM_POLICY                              = 0x11\n\tISOFS_SUPER_MAGIC                           = 0x9660\n\tISTRIP                                      = 0x20\n\tITIMER_PROF                                 = 0x2\n\tITIMER_REAL                                 = 0x0\n\tITIMER_VIRTUAL                              = 0x1\n\tIUTF8                                       = 0x4000\n\tIXANY                                       = 0x800\n\tJFFS2_SUPER_MAGIC                           = 0x72b6\n\tKCMPROTO_CONNECTED                          = 0x0\n\tKCM_RECV_DISABLE                            = 0x1\n\tKEXEC_ARCH_386                              = 0x30000\n\tKEXEC_ARCH_68K                              = 0x40000\n\tKEXEC_ARCH_AARCH64                          = 0xb70000\n\tKEXEC_ARCH_ARM                              = 0x280000\n\tKEXEC_ARCH_DEFAULT                          = 0x0\n\tKEXEC_ARCH_IA_64                            = 0x320000\n\tKEXEC_ARCH_LOONGARCH                        = 0x1020000\n\tKEXEC_ARCH_MASK                             = 0xffff0000\n\tKEXEC_ARCH_MIPS                             = 0x80000\n\tKEXEC_ARCH_MIPS_LE                          = 0xa0000\n\tKEXEC_ARCH_PARISC                           = 0xf0000\n\tKEXEC_ARCH_PPC                              = 0x140000\n\tKEXEC_ARCH_PPC64                            = 0x150000\n\tKEXEC_ARCH_RISCV                            = 0xf30000\n\tKEXEC_ARCH_S390                             = 0x160000\n\tKEXEC_ARCH_SH                               = 0x2a0000\n\tKEXEC_ARCH_X86_64                           = 0x3e0000\n\tKEXEC_CRASH_HOTPLUG_SUPPORT                 = 0x8\n\tKEXEC_FILE_DEBUG                            = 0x8\n\tKEXEC_FILE_NO_INITRAMFS                     = 0x4\n\tKEXEC_FILE_ON_CRASH                         = 0x2\n\tKEXEC_FILE_UNLOAD                           = 0x1\n\tKEXEC_ON_CRASH                              = 0x1\n\tKEXEC_PRESERVE_CONTEXT                      = 0x2\n\tKEXEC_SEGMENT_MAX                           = 0x10\n\tKEXEC_UPDATE_ELFCOREHDR                     = 0x4\n\tKEYCTL_ASSUME_AUTHORITY                     = 0x10\n\tKEYCTL_CAPABILITIES                         = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                        = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES                   = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN                 = 0x4\n\tKEYCTL_CAPS0_INVALIDATE                     = 0x20\n\tKEYCTL_CAPS0_MOVE                           = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS            = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY                     = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING               = 0x40\n\tKEYCTL_CAPS1_NOTIFICATIONS                  = 0x4\n\tKEYCTL_CAPS1_NS_KEYRING_NAME                = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG                     = 0x2\n\tKEYCTL_CHOWN                                = 0x4\n\tKEYCTL_CLEAR                                = 0x7\n\tKEYCTL_DESCRIBE                             = 0x6\n\tKEYCTL_DH_COMPUTE                           = 0x17\n\tKEYCTL_GET_KEYRING_ID                       = 0x0\n\tKEYCTL_GET_PERSISTENT                       = 0x16\n\tKEYCTL_GET_SECURITY                         = 0x11\n\tKEYCTL_INSTANTIATE                          = 0xc\n\tKEYCTL_INSTANTIATE_IOV                      = 0x14\n\tKEYCTL_INVALIDATE                           = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING                 = 0x1\n\tKEYCTL_LINK                                 = 0x8\n\tKEYCTL_MOVE                                 = 0x1e\n\tKEYCTL_MOVE_EXCL                            = 0x1\n\tKEYCTL_NEGATE                               = 0xd\n\tKEYCTL_PKEY_DECRYPT                         = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                         = 0x19\n\tKEYCTL_PKEY_QUERY                           = 0x18\n\tKEYCTL_PKEY_SIGN                            = 0x1b\n\tKEYCTL_PKEY_VERIFY                          = 0x1c\n\tKEYCTL_READ                                 = 0xb\n\tKEYCTL_REJECT                               = 0x13\n\tKEYCTL_RESTRICT_KEYRING                     = 0x1d\n\tKEYCTL_REVOKE                               = 0x3\n\tKEYCTL_SEARCH                               = 0xa\n\tKEYCTL_SESSION_TO_PARENT                    = 0x12\n\tKEYCTL_SETPERM                              = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING                   = 0xe\n\tKEYCTL_SET_TIMEOUT                          = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT                     = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT                     = 0x1\n\tKEYCTL_SUPPORTS_SIGN                        = 0x4\n\tKEYCTL_SUPPORTS_VERIFY                      = 0x8\n\tKEYCTL_UNLINK                               = 0x9\n\tKEYCTL_UPDATE                               = 0x2\n\tKEYCTL_WATCH_KEY                            = 0x20\n\tKEY_REQKEY_DEFL_DEFAULT                     = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING               = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE                   = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING             = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING           = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING             = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING              = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING                = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING        = 0x5\n\tKEY_SPEC_GROUP_KEYRING                      = -0x6\n\tKEY_SPEC_PROCESS_KEYRING                    = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY                    = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING                  = -0x8\n\tKEY_SPEC_SESSION_KEYRING                    = -0x3\n\tKEY_SPEC_THREAD_KEYRING                     = -0x1\n\tKEY_SPEC_USER_KEYRING                       = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING               = -0x5\n\tLANDLOCK_ACCESS_FS_EXECUTE                  = 0x1\n\tLANDLOCK_ACCESS_FS_IOCTL_DEV                = 0x8000\n\tLANDLOCK_ACCESS_FS_MAKE_BLOCK               = 0x800\n\tLANDLOCK_ACCESS_FS_MAKE_CHAR                = 0x40\n\tLANDLOCK_ACCESS_FS_MAKE_DIR                 = 0x80\n\tLANDLOCK_ACCESS_FS_MAKE_FIFO                = 0x400\n\tLANDLOCK_ACCESS_FS_MAKE_REG                 = 0x100\n\tLANDLOCK_ACCESS_FS_MAKE_SOCK                = 0x200\n\tLANDLOCK_ACCESS_FS_MAKE_SYM                 = 0x1000\n\tLANDLOCK_ACCESS_FS_READ_DIR                 = 0x8\n\tLANDLOCK_ACCESS_FS_READ_FILE                = 0x4\n\tLANDLOCK_ACCESS_FS_REFER                    = 0x2000\n\tLANDLOCK_ACCESS_FS_REMOVE_DIR               = 0x10\n\tLANDLOCK_ACCESS_FS_REMOVE_FILE              = 0x20\n\tLANDLOCK_ACCESS_FS_TRUNCATE                 = 0x4000\n\tLANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2\n\tLANDLOCK_ACCESS_NET_BIND_TCP                = 0x1\n\tLANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2\n\tLANDLOCK_CREATE_RULESET_ERRATA              = 0x2\n\tLANDLOCK_CREATE_RULESET_VERSION             = 0x1\n\tLANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON      = 0x2\n\tLANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF    = 0x1\n\tLANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF   = 0x4\n\tLANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1\n\tLANDLOCK_SCOPE_SIGNAL                       = 0x2\n\tLINUX_REBOOT_CMD_CAD_OFF                    = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON                     = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                       = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC                      = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF                  = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART                    = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2                   = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND                 = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                         = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                         = 0x28121969\n\tLOCK_EX                                     = 0x2\n\tLOCK_NB                                     = 0x4\n\tLOCK_SH                                     = 0x1\n\tLOCK_UN                                     = 0x8\n\tLOOP_CLR_FD                                 = 0x4c01\n\tLOOP_CONFIGURE                              = 0x4c0a\n\tLOOP_CTL_ADD                                = 0x4c80\n\tLOOP_CTL_GET_FREE                           = 0x4c82\n\tLOOP_CTL_REMOVE                             = 0x4c81\n\tLOOP_GET_STATUS                             = 0x4c03\n\tLOOP_GET_STATUS64                           = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                         = 0x4c09\n\tLOOP_SET_CAPACITY                           = 0x4c07\n\tLOOP_SET_DIRECT_IO                          = 0x4c08\n\tLOOP_SET_FD                                 = 0x4c00\n\tLOOP_SET_STATUS                             = 0x4c02\n\tLOOP_SET_STATUS64                           = 0x4c04\n\tLOOP_SET_STATUS_CLEARABLE_FLAGS             = 0x4\n\tLOOP_SET_STATUS_SETTABLE_FLAGS              = 0xc\n\tLO_KEY_SIZE                                 = 0x20\n\tLO_NAME_SIZE                                = 0x40\n\tLWTUNNEL_IP6_MAX                            = 0x8\n\tLWTUNNEL_IP_MAX                             = 0x8\n\tLWTUNNEL_IP_OPTS_MAX                        = 0x3\n\tLWTUNNEL_IP_OPT_ERSPAN_MAX                  = 0x4\n\tLWTUNNEL_IP_OPT_GENEVE_MAX                  = 0x3\n\tLWTUNNEL_IP_OPT_VXLAN_MAX                   = 0x1\n\tMADV_COLD                                   = 0x14\n\tMADV_COLLAPSE                               = 0x19\n\tMADV_DODUMP                                 = 0x11\n\tMADV_DOFORK                                 = 0xb\n\tMADV_DONTDUMP                               = 0x10\n\tMADV_DONTFORK                               = 0xa\n\tMADV_DONTNEED                               = 0x4\n\tMADV_DONTNEED_LOCKED                        = 0x18\n\tMADV_FREE                                   = 0x8\n\tMADV_HUGEPAGE                               = 0xe\n\tMADV_HWPOISON                               = 0x64\n\tMADV_KEEPONFORK                             = 0x13\n\tMADV_MERGEABLE                              = 0xc\n\tMADV_NOHUGEPAGE                             = 0xf\n\tMADV_NORMAL                                 = 0x0\n\tMADV_PAGEOUT                                = 0x15\n\tMADV_POPULATE_READ                          = 0x16\n\tMADV_POPULATE_WRITE                         = 0x17\n\tMADV_RANDOM                                 = 0x1\n\tMADV_REMOVE                                 = 0x9\n\tMADV_SEQUENTIAL                             = 0x2\n\tMADV_UNMERGEABLE                            = 0xd\n\tMADV_WILLNEED                               = 0x3\n\tMADV_WIPEONFORK                             = 0x12\n\tMAP_DROPPABLE                               = 0x8\n\tMAP_FILE                                    = 0x0\n\tMAP_FIXED                                   = 0x10\n\tMAP_FIXED_NOREPLACE                         = 0x100000\n\tMAP_HUGE_16GB                               = 0x88000000\n\tMAP_HUGE_16KB                               = 0x38000000\n\tMAP_HUGE_16MB                               = 0x60000000\n\tMAP_HUGE_1GB                                = 0x78000000\n\tMAP_HUGE_1MB                                = 0x50000000\n\tMAP_HUGE_256MB                              = 0x70000000\n\tMAP_HUGE_2GB                                = 0x7c000000\n\tMAP_HUGE_2MB                                = 0x54000000\n\tMAP_HUGE_32MB                               = 0x64000000\n\tMAP_HUGE_512KB                              = 0x4c000000\n\tMAP_HUGE_512MB                              = 0x74000000\n\tMAP_HUGE_64KB                               = 0x40000000\n\tMAP_HUGE_8MB                                = 0x5c000000\n\tMAP_HUGE_MASK                               = 0x3f\n\tMAP_HUGE_SHIFT                              = 0x1a\n\tMAP_PRIVATE                                 = 0x2\n\tMAP_SHARED                                  = 0x1\n\tMAP_SHARED_VALIDATE                         = 0x3\n\tMAP_TYPE                                    = 0xf\n\tMCAST_BLOCK_SOURCE                          = 0x2b\n\tMCAST_EXCLUDE                               = 0x0\n\tMCAST_INCLUDE                               = 0x1\n\tMCAST_JOIN_GROUP                            = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP                     = 0x2e\n\tMCAST_LEAVE_GROUP                           = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP                    = 0x2f\n\tMCAST_MSFILTER                              = 0x30\n\tMCAST_UNBLOCK_SOURCE                        = 0x2c\n\tMEMGETREGIONINFO                            = 0xc0104d08\n\tMEMREADOOB64                                = 0xc0184d16\n\tMEMWRITE                                    = 0xc0304d18\n\tMEMWRITEOOB64                               = 0xc0184d15\n\tMFD_ALLOW_SEALING                           = 0x2\n\tMFD_CLOEXEC                                 = 0x1\n\tMFD_EXEC                                    = 0x10\n\tMFD_HUGETLB                                 = 0x4\n\tMFD_HUGE_16GB                               = 0x88000000\n\tMFD_HUGE_16MB                               = 0x60000000\n\tMFD_HUGE_1GB                                = 0x78000000\n\tMFD_HUGE_1MB                                = 0x50000000\n\tMFD_HUGE_256MB                              = 0x70000000\n\tMFD_HUGE_2GB                                = 0x7c000000\n\tMFD_HUGE_2MB                                = 0x54000000\n\tMFD_HUGE_32MB                               = 0x64000000\n\tMFD_HUGE_512KB                              = 0x4c000000\n\tMFD_HUGE_512MB                              = 0x74000000\n\tMFD_HUGE_64KB                               = 0x40000000\n\tMFD_HUGE_8MB                                = 0x5c000000\n\tMFD_HUGE_MASK                               = 0x3f\n\tMFD_HUGE_SHIFT                              = 0x1a\n\tMFD_NOEXEC_SEAL                             = 0x8\n\tMINIX2_SUPER_MAGIC                          = 0x2468\n\tMINIX2_SUPER_MAGIC2                         = 0x2478\n\tMINIX3_SUPER_MAGIC                          = 0x4d5a\n\tMINIX_SUPER_MAGIC                           = 0x137f\n\tMINIX_SUPER_MAGIC2                          = 0x138f\n\tMNT_DETACH                                  = 0x2\n\tMNT_EXPIRE                                  = 0x4\n\tMNT_FORCE                                   = 0x1\n\tMNT_ID_REQ_SIZE_VER0                        = 0x18\n\tMNT_ID_REQ_SIZE_VER1                        = 0x20\n\tMNT_NS_INFO_SIZE_VER0                       = 0x10\n\tMODULE_INIT_COMPRESSED_FILE                 = 0x4\n\tMODULE_INIT_IGNORE_MODVERSIONS              = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC                 = 0x2\n\tMOUNT_ATTR_IDMAP                            = 0x100000\n\tMOUNT_ATTR_NOATIME                          = 0x10\n\tMOUNT_ATTR_NODEV                            = 0x4\n\tMOUNT_ATTR_NODIRATIME                       = 0x80\n\tMOUNT_ATTR_NOEXEC                           = 0x8\n\tMOUNT_ATTR_NOSUID                           = 0x2\n\tMOUNT_ATTR_NOSYMFOLLOW                      = 0x200000\n\tMOUNT_ATTR_RDONLY                           = 0x1\n\tMOUNT_ATTR_RELATIME                         = 0x0\n\tMOUNT_ATTR_SIZE_VER0                        = 0x20\n\tMOUNT_ATTR_STRICTATIME                      = 0x20\n\tMOUNT_ATTR__ATIME                           = 0x70\n\tMREMAP_DONTUNMAP                            = 0x4\n\tMREMAP_FIXED                                = 0x2\n\tMREMAP_MAYMOVE                              = 0x1\n\tMSDOS_SUPER_MAGIC                           = 0x4d44\n\tMSG_BATCH                                   = 0x40000\n\tMSG_CMSG_CLOEXEC                            = 0x40000000\n\tMSG_CONFIRM                                 = 0x800\n\tMSG_CTRUNC                                  = 0x8\n\tMSG_DONTROUTE                               = 0x4\n\tMSG_DONTWAIT                                = 0x40\n\tMSG_EOR                                     = 0x80\n\tMSG_ERRQUEUE                                = 0x2000\n\tMSG_FASTOPEN                                = 0x20000000\n\tMSG_FIN                                     = 0x200\n\tMSG_MORE                                    = 0x8000\n\tMSG_NOSIGNAL                                = 0x4000\n\tMSG_OOB                                     = 0x1\n\tMSG_PEEK                                    = 0x2\n\tMSG_PROXY                                   = 0x10\n\tMSG_RST                                     = 0x1000\n\tMSG_SOCK_DEVMEM                             = 0x2000000\n\tMSG_SYN                                     = 0x400\n\tMSG_TRUNC                                   = 0x20\n\tMSG_TRYHARD                                 = 0x4\n\tMSG_WAITALL                                 = 0x100\n\tMSG_WAITFORONE                              = 0x10000\n\tMSG_ZEROCOPY                                = 0x4000000\n\tMS_ACTIVE                                   = 0x40000000\n\tMS_ASYNC                                    = 0x1\n\tMS_BIND                                     = 0x1000\n\tMS_BORN                                     = 0x20000000\n\tMS_DIRSYNC                                  = 0x80\n\tMS_INVALIDATE                               = 0x2\n\tMS_I_VERSION                                = 0x800000\n\tMS_KERNMOUNT                                = 0x400000\n\tMS_LAZYTIME                                 = 0x2000000\n\tMS_MANDLOCK                                 = 0x40\n\tMS_MGC_MSK                                  = 0xffff0000\n\tMS_MGC_VAL                                  = 0xc0ed0000\n\tMS_MOVE                                     = 0x2000\n\tMS_NOATIME                                  = 0x400\n\tMS_NODEV                                    = 0x4\n\tMS_NODIRATIME                               = 0x800\n\tMS_NOEXEC                                   = 0x8\n\tMS_NOREMOTELOCK                             = 0x8000000\n\tMS_NOSEC                                    = 0x10000000\n\tMS_NOSUID                                   = 0x2\n\tMS_NOSYMFOLLOW                              = 0x100\n\tMS_NOUSER                                   = -0x80000000\n\tMS_POSIXACL                                 = 0x10000\n\tMS_PRIVATE                                  = 0x40000\n\tMS_RDONLY                                   = 0x1\n\tMS_REC                                      = 0x4000\n\tMS_RELATIME                                 = 0x200000\n\tMS_REMOUNT                                  = 0x20\n\tMS_RMT_MASK                                 = 0x2800051\n\tMS_SHARED                                   = 0x100000\n\tMS_SILENT                                   = 0x8000\n\tMS_SLAVE                                    = 0x80000\n\tMS_STRICTATIME                              = 0x1000000\n\tMS_SUBMOUNT                                 = 0x4000000\n\tMS_SYNC                                     = 0x4\n\tMS_SYNCHRONOUS                              = 0x10\n\tMS_UNBINDABLE                               = 0x20000\n\tMS_VERBOSE                                  = 0x8000\n\tMTD_ABSENT                                  = 0x0\n\tMTD_BIT_WRITEABLE                           = 0x800\n\tMTD_CAP_NANDFLASH                           = 0x400\n\tMTD_CAP_NORFLASH                            = 0xc00\n\tMTD_CAP_NVRAM                               = 0x1c00\n\tMTD_CAP_RAM                                 = 0x1c00\n\tMTD_CAP_ROM                                 = 0x0\n\tMTD_DATAFLASH                               = 0x6\n\tMTD_INODE_FS_MAGIC                          = 0x11307854\n\tMTD_MAX_ECCPOS_ENTRIES                      = 0x40\n\tMTD_MAX_OOBFREE_ENTRIES                     = 0x8\n\tMTD_MLCNANDFLASH                            = 0x8\n\tMTD_NANDECC_AUTOPLACE                       = 0x2\n\tMTD_NANDECC_AUTOPL_USR                      = 0x4\n\tMTD_NANDECC_OFF                             = 0x0\n\tMTD_NANDECC_PLACE                           = 0x1\n\tMTD_NANDECC_PLACEONLY                       = 0x3\n\tMTD_NANDFLASH                               = 0x4\n\tMTD_NORFLASH                                = 0x3\n\tMTD_NO_ERASE                                = 0x1000\n\tMTD_OTP_FACTORY                             = 0x1\n\tMTD_OTP_OFF                                 = 0x0\n\tMTD_OTP_USER                                = 0x2\n\tMTD_POWERUP_LOCK                            = 0x2000\n\tMTD_RAM                                     = 0x1\n\tMTD_ROM                                     = 0x2\n\tMTD_SLC_ON_MLC_EMULATION                    = 0x4000\n\tMTD_UBIVOLUME                               = 0x7\n\tMTD_WRITEABLE                               = 0x400\n\tNAME_MAX                                    = 0xff\n\tNCP_SUPER_MAGIC                             = 0x564c\n\tNETLINK_ADD_MEMBERSHIP                      = 0x1\n\tNETLINK_AUDIT                               = 0x9\n\tNETLINK_BROADCAST_ERROR                     = 0x4\n\tNETLINK_CAP_ACK                             = 0xa\n\tNETLINK_CONNECTOR                           = 0xb\n\tNETLINK_CRYPTO                              = 0x15\n\tNETLINK_DNRTMSG                             = 0xe\n\tNETLINK_DROP_MEMBERSHIP                     = 0x2\n\tNETLINK_ECRYPTFS                            = 0x13\n\tNETLINK_EXT_ACK                             = 0xb\n\tNETLINK_FIB_LOOKUP                          = 0xa\n\tNETLINK_FIREWALL                            = 0x3\n\tNETLINK_GENERIC                             = 0x10\n\tNETLINK_GET_STRICT_CHK                      = 0xc\n\tNETLINK_INET_DIAG                           = 0x4\n\tNETLINK_IP6_FW                              = 0xd\n\tNETLINK_ISCSI                               = 0x8\n\tNETLINK_KOBJECT_UEVENT                      = 0xf\n\tNETLINK_LISTEN_ALL_NSID                     = 0x8\n\tNETLINK_LIST_MEMBERSHIPS                    = 0x9\n\tNETLINK_NETFILTER                           = 0xc\n\tNETLINK_NFLOG                               = 0x5\n\tNETLINK_NO_ENOBUFS                          = 0x5\n\tNETLINK_PKTINFO                             = 0x3\n\tNETLINK_RDMA                                = 0x14\n\tNETLINK_ROUTE                               = 0x0\n\tNETLINK_RX_RING                             = 0x6\n\tNETLINK_SCSITRANSPORT                       = 0x12\n\tNETLINK_SELINUX                             = 0x7\n\tNETLINK_SMC                                 = 0x16\n\tNETLINK_SOCK_DIAG                           = 0x4\n\tNETLINK_TX_RING                             = 0x7\n\tNETLINK_UNUSED                              = 0x1\n\tNETLINK_USERSOCK                            = 0x2\n\tNETLINK_XFRM                                = 0x6\n\tNETNSA_MAX                                  = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED                    = -0x1\n\tNFC_ATR_REQ_GB_MAXSIZE                      = 0x30\n\tNFC_ATR_REQ_MAXSIZE                         = 0x40\n\tNFC_ATR_RES_GB_MAXSIZE                      = 0x2f\n\tNFC_ATR_RES_MAXSIZE                         = 0x40\n\tNFC_ATS_MAXSIZE                             = 0x14\n\tNFC_COMM_ACTIVE                             = 0x0\n\tNFC_COMM_PASSIVE                            = 0x1\n\tNFC_DEVICE_NAME_MAXSIZE                     = 0x8\n\tNFC_DIRECTION_RX                            = 0x0\n\tNFC_DIRECTION_TX                            = 0x1\n\tNFC_FIRMWARE_NAME_MAXSIZE                   = 0x20\n\tNFC_GB_MAXSIZE                              = 0x30\n\tNFC_GENL_MCAST_EVENT_NAME                   = \"events\"\n\tNFC_GENL_NAME                               = \"nfc\"\n\tNFC_GENL_VERSION                            = 0x1\n\tNFC_HEADER_SIZE                             = 0x1\n\tNFC_ISO15693_UID_MAXSIZE                    = 0x8\n\tNFC_LLCP_MAX_SERVICE_NAME                   = 0x3f\n\tNFC_LLCP_MIUX                               = 0x1\n\tNFC_LLCP_REMOTE_LTO                         = 0x3\n\tNFC_LLCP_REMOTE_MIU                         = 0x2\n\tNFC_LLCP_REMOTE_RW                          = 0x4\n\tNFC_LLCP_RW                                 = 0x0\n\tNFC_NFCID1_MAXSIZE                          = 0xa\n\tNFC_NFCID2_MAXSIZE                          = 0x8\n\tNFC_NFCID3_MAXSIZE                          = 0xa\n\tNFC_PROTO_FELICA                            = 0x3\n\tNFC_PROTO_FELICA_MASK                       = 0x8\n\tNFC_PROTO_ISO14443                          = 0x4\n\tNFC_PROTO_ISO14443_B                        = 0x6\n\tNFC_PROTO_ISO14443_B_MASK                   = 0x40\n\tNFC_PROTO_ISO14443_MASK                     = 0x10\n\tNFC_PROTO_ISO15693                          = 0x7\n\tNFC_PROTO_ISO15693_MASK                     = 0x80\n\tNFC_PROTO_JEWEL                             = 0x1\n\tNFC_PROTO_JEWEL_MASK                        = 0x2\n\tNFC_PROTO_MAX                               = 0x8\n\tNFC_PROTO_MIFARE                            = 0x2\n\tNFC_PROTO_MIFARE_MASK                       = 0x4\n\tNFC_PROTO_NFC_DEP                           = 0x5\n\tNFC_PROTO_NFC_DEP_MASK                      = 0x20\n\tNFC_RAW_HEADER_SIZE                         = 0x2\n\tNFC_RF_INITIATOR                            = 0x0\n\tNFC_RF_NONE                                 = 0x2\n\tNFC_RF_TARGET                               = 0x1\n\tNFC_SENSB_RES_MAXSIZE                       = 0xc\n\tNFC_SENSF_RES_MAXSIZE                       = 0x12\n\tNFC_SE_DISABLED                             = 0x0\n\tNFC_SE_EMBEDDED                             = 0x2\n\tNFC_SE_ENABLED                              = 0x1\n\tNFC_SE_UICC                                 = 0x1\n\tNFC_SOCKPROTO_LLCP                          = 0x1\n\tNFC_SOCKPROTO_MAX                           = 0x2\n\tNFC_SOCKPROTO_RAW                           = 0x0\n\tNFNETLINK_V0                                = 0x0\n\tNFNLGRP_ACCT_QUOTA                          = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY                   = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY               = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW                   = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE                = 0x5\n\tNFNLGRP_CONNTRACK_NEW                       = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE                    = 0x2\n\tNFNLGRP_MAX                                 = 0x9\n\tNFNLGRP_NFTABLES                            = 0x7\n\tNFNLGRP_NFTRACE                             = 0x9\n\tNFNLGRP_NONE                                = 0x0\n\tNFNL_BATCH_MAX                              = 0x1\n\tNFNL_MSG_BATCH_BEGIN                        = 0x10\n\tNFNL_MSG_BATCH_END                          = 0x11\n\tNFNL_NFA_NEST                               = 0x8000\n\tNFNL_SUBSYS_ACCT                            = 0x7\n\tNFNL_SUBSYS_COUNT                           = 0xd\n\tNFNL_SUBSYS_CTHELPER                        = 0x9\n\tNFNL_SUBSYS_CTNETLINK                       = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP                   = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT               = 0x8\n\tNFNL_SUBSYS_HOOK                            = 0xc\n\tNFNL_SUBSYS_IPSET                           = 0x6\n\tNFNL_SUBSYS_NFTABLES                        = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT                      = 0xb\n\tNFNL_SUBSYS_NONE                            = 0x0\n\tNFNL_SUBSYS_OSF                             = 0x5\n\tNFNL_SUBSYS_QUEUE                           = 0x3\n\tNFNL_SUBSYS_ULOG                            = 0x4\n\tNFS_SUPER_MAGIC                             = 0x6969\n\tNFT_BITWISE_BOOL                            = 0x0\n\tNFT_CHAIN_FLAGS                             = 0x7\n\tNFT_CHAIN_MAXNAMELEN                        = 0x100\n\tNFT_CT_MAX                                  = 0x17\n\tNFT_DATA_RESERVED_MASK                      = 0xffffff00\n\tNFT_DATA_VALUE_MAXLEN                       = 0x40\n\tNFT_EXTHDR_OP_MAX                           = 0x4\n\tNFT_FIB_RESULT_MAX                          = 0x3\n\tNFT_INNER_MASK                              = 0xf\n\tNFT_LOGLEVEL_MAX                            = 0x8\n\tNFT_NAME_MAXLEN                             = 0x100\n\tNFT_NG_MAX                                  = 0x1\n\tNFT_OBJECT_CONNLIMIT                        = 0x5\n\tNFT_OBJECT_COUNTER                          = 0x1\n\tNFT_OBJECT_CT_EXPECT                        = 0x9\n\tNFT_OBJECT_CT_HELPER                        = 0x3\n\tNFT_OBJECT_CT_TIMEOUT                       = 0x7\n\tNFT_OBJECT_LIMIT                            = 0x4\n\tNFT_OBJECT_MAX                              = 0xa\n\tNFT_OBJECT_QUOTA                            = 0x2\n\tNFT_OBJECT_SECMARK                          = 0x8\n\tNFT_OBJECT_SYNPROXY                         = 0xa\n\tNFT_OBJECT_TUNNEL                           = 0x6\n\tNFT_OBJECT_UNSPEC                           = 0x0\n\tNFT_OBJ_MAXNAMELEN                          = 0x100\n\tNFT_OSF_MAXGENRELEN                         = 0x10\n\tNFT_QUEUE_FLAG_BYPASS                       = 0x1\n\tNFT_QUEUE_FLAG_CPU_FANOUT                   = 0x2\n\tNFT_QUEUE_FLAG_MASK                         = 0x3\n\tNFT_REG32_COUNT                             = 0x10\n\tNFT_REG32_SIZE                              = 0x4\n\tNFT_REG_MAX                                 = 0x4\n\tNFT_REG_SIZE                                = 0x10\n\tNFT_REJECT_ICMPX_MAX                        = 0x3\n\tNFT_RT_MAX                                  = 0x4\n\tNFT_SECMARK_CTX_MAXLEN                      = 0x1000\n\tNFT_SET_MAXNAMELEN                          = 0x100\n\tNFT_SOCKET_MAX                              = 0x3\n\tNFT_TABLE_F_MASK                            = 0x7\n\tNFT_TABLE_MAXNAMELEN                        = 0x100\n\tNFT_TRACETYPE_MAX                           = 0x3\n\tNFT_TUNNEL_F_MASK                           = 0x7\n\tNFT_TUNNEL_MAX                              = 0x1\n\tNFT_TUNNEL_MODE_MAX                         = 0x2\n\tNFT_USERDATA_MAXLEN                         = 0x100\n\tNFT_XFRM_KEY_MAX                            = 0x6\n\tNF_NAT_RANGE_MAP_IPS                        = 0x1\n\tNF_NAT_RANGE_MASK                           = 0x7f\n\tNF_NAT_RANGE_NETMAP                         = 0x40\n\tNF_NAT_RANGE_PERSISTENT                     = 0x8\n\tNF_NAT_RANGE_PROTO_OFFSET                   = 0x20\n\tNF_NAT_RANGE_PROTO_RANDOM                   = 0x4\n\tNF_NAT_RANGE_PROTO_RANDOM_ALL               = 0x14\n\tNF_NAT_RANGE_PROTO_RANDOM_FULLY             = 0x10\n\tNF_NAT_RANGE_PROTO_SPECIFIED                = 0x2\n\tNILFS_SUPER_MAGIC                           = 0x3434\n\tNL0                                         = 0x0\n\tNL1                                         = 0x100\n\tNLA_ALIGNTO                                 = 0x4\n\tNLA_F_NESTED                                = 0x8000\n\tNLA_F_NET_BYTEORDER                         = 0x4000\n\tNLA_HDRLEN                                  = 0x4\n\tNLMSG_ALIGNTO                               = 0x4\n\tNLMSG_DONE                                  = 0x3\n\tNLMSG_ERROR                                 = 0x2\n\tNLMSG_HDRLEN                                = 0x10\n\tNLMSG_MIN_TYPE                              = 0x10\n\tNLMSG_NOOP                                  = 0x1\n\tNLMSG_OVERRUN                               = 0x4\n\tNLM_F_ACK                                   = 0x4\n\tNLM_F_ACK_TLVS                              = 0x200\n\tNLM_F_APPEND                                = 0x800\n\tNLM_F_ATOMIC                                = 0x400\n\tNLM_F_BULK                                  = 0x200\n\tNLM_F_CAPPED                                = 0x100\n\tNLM_F_CREATE                                = 0x400\n\tNLM_F_DUMP                                  = 0x300\n\tNLM_F_DUMP_FILTERED                         = 0x20\n\tNLM_F_DUMP_INTR                             = 0x10\n\tNLM_F_ECHO                                  = 0x8\n\tNLM_F_EXCL                                  = 0x200\n\tNLM_F_MATCH                                 = 0x200\n\tNLM_F_MULTI                                 = 0x2\n\tNLM_F_NONREC                                = 0x100\n\tNLM_F_REPLACE                               = 0x100\n\tNLM_F_REQUEST                               = 0x1\n\tNLM_F_ROOT                                  = 0x100\n\tNN_386_IOPERM                               = \"LINUX\"\n\tNN_386_TLS                                  = \"LINUX\"\n\tNN_ARC_V2                                   = \"LINUX\"\n\tNN_ARM_FPMR                                 = \"LINUX\"\n\tNN_ARM_GCS                                  = \"LINUX\"\n\tNN_ARM_HW_BREAK                             = \"LINUX\"\n\tNN_ARM_HW_WATCH                             = \"LINUX\"\n\tNN_ARM_PACA_KEYS                            = \"LINUX\"\n\tNN_ARM_PACG_KEYS                            = \"LINUX\"\n\tNN_ARM_PAC_ENABLED_KEYS                     = \"LINUX\"\n\tNN_ARM_PAC_MASK                             = \"LINUX\"\n\tNN_ARM_POE                                  = \"LINUX\"\n\tNN_ARM_SSVE                                 = \"LINUX\"\n\tNN_ARM_SVE                                  = \"LINUX\"\n\tNN_ARM_SYSTEM_CALL                          = \"LINUX\"\n\tNN_ARM_TAGGED_ADDR_CTRL                     = \"LINUX\"\n\tNN_ARM_TLS                                  = \"LINUX\"\n\tNN_ARM_VFP                                  = \"LINUX\"\n\tNN_ARM_ZA                                   = \"LINUX\"\n\tNN_ARM_ZT                                   = \"LINUX\"\n\tNN_AUXV                                     = \"CORE\"\n\tNN_FILE                                     = \"CORE\"\n\tNN_GNU_PROPERTY_TYPE_0                      = \"GNU\"\n\tNN_LOONGARCH_CPUCFG                         = \"LINUX\"\n\tNN_LOONGARCH_CSR                            = \"LINUX\"\n\tNN_LOONGARCH_HW_BREAK                       = \"LINUX\"\n\tNN_LOONGARCH_HW_WATCH                       = \"LINUX\"\n\tNN_LOONGARCH_LASX                           = \"LINUX\"\n\tNN_LOONGARCH_LBT                            = \"LINUX\"\n\tNN_LOONGARCH_LSX                            = \"LINUX\"\n\tNN_MIPS_DSP                                 = \"LINUX\"\n\tNN_MIPS_FP_MODE                             = \"LINUX\"\n\tNN_MIPS_MSA                                 = \"LINUX\"\n\tNN_PPC_DEXCR                                = \"LINUX\"\n\tNN_PPC_DSCR                                 = \"LINUX\"\n\tNN_PPC_EBB                                  = \"LINUX\"\n\tNN_PPC_HASHKEYR                             = \"LINUX\"\n\tNN_PPC_PKEY                                 = \"LINUX\"\n\tNN_PPC_PMU                                  = \"LINUX\"\n\tNN_PPC_PPR                                  = \"LINUX\"\n\tNN_PPC_SPE                                  = \"LINUX\"\n\tNN_PPC_TAR                                  = \"LINUX\"\n\tNN_PPC_TM_CDSCR                             = \"LINUX\"\n\tNN_PPC_TM_CFPR                              = \"LINUX\"\n\tNN_PPC_TM_CGPR                              = \"LINUX\"\n\tNN_PPC_TM_CPPR                              = \"LINUX\"\n\tNN_PPC_TM_CTAR                              = \"LINUX\"\n\tNN_PPC_TM_CVMX                              = \"LINUX\"\n\tNN_PPC_TM_CVSX                              = \"LINUX\"\n\tNN_PPC_TM_SPR                               = \"LINUX\"\n\tNN_PPC_VMX                                  = \"LINUX\"\n\tNN_PPC_VSX                                  = \"LINUX\"\n\tNN_PRFPREG                                  = \"CORE\"\n\tNN_PRPSINFO                                 = \"CORE\"\n\tNN_PRSTATUS                                 = \"CORE\"\n\tNN_PRXFPREG                                 = \"LINUX\"\n\tNN_RISCV_CSR                                = \"LINUX\"\n\tNN_RISCV_TAGGED_ADDR_CTRL                   = \"LINUX\"\n\tNN_RISCV_VECTOR                             = \"LINUX\"\n\tNN_S390_CTRS                                = \"LINUX\"\n\tNN_S390_GS_BC                               = \"LINUX\"\n\tNN_S390_GS_CB                               = \"LINUX\"\n\tNN_S390_HIGH_GPRS                           = \"LINUX\"\n\tNN_S390_LAST_BREAK                          = \"LINUX\"\n\tNN_S390_PREFIX                              = \"LINUX\"\n\tNN_S390_PV_CPU_DATA                         = \"LINUX\"\n\tNN_S390_RI_CB                               = \"LINUX\"\n\tNN_S390_SYSTEM_CALL                         = \"LINUX\"\n\tNN_S390_TDB                                 = \"LINUX\"\n\tNN_S390_TIMER                               = \"LINUX\"\n\tNN_S390_TODCMP                              = \"LINUX\"\n\tNN_S390_TODPREG                             = \"LINUX\"\n\tNN_S390_VXRS_HIGH                           = \"LINUX\"\n\tNN_S390_VXRS_LOW                            = \"LINUX\"\n\tNN_SIGINFO                                  = \"CORE\"\n\tNN_TASKSTRUCT                               = \"CORE\"\n\tNN_VMCOREDD                                 = \"LINUX\"\n\tNN_X86_SHSTK                                = \"LINUX\"\n\tNN_X86_XSAVE_LAYOUT                         = \"LINUX\"\n\tNN_X86_XSTATE                               = \"LINUX\"\n\tNSFS_MAGIC                                  = 0x6e736673\n\tNT_386_IOPERM                               = 0x201\n\tNT_386_TLS                                  = 0x200\n\tNT_ARC_V2                                   = 0x600\n\tNT_ARM_FPMR                                 = 0x40e\n\tNT_ARM_GCS                                  = 0x410\n\tNT_ARM_HW_BREAK                             = 0x402\n\tNT_ARM_HW_WATCH                             = 0x403\n\tNT_ARM_PACA_KEYS                            = 0x407\n\tNT_ARM_PACG_KEYS                            = 0x408\n\tNT_ARM_PAC_ENABLED_KEYS                     = 0x40a\n\tNT_ARM_PAC_MASK                             = 0x406\n\tNT_ARM_POE                                  = 0x40f\n\tNT_ARM_SSVE                                 = 0x40b\n\tNT_ARM_SVE                                  = 0x405\n\tNT_ARM_SYSTEM_CALL                          = 0x404\n\tNT_ARM_TAGGED_ADDR_CTRL                     = 0x409\n\tNT_ARM_TLS                                  = 0x401\n\tNT_ARM_VFP                                  = 0x400\n\tNT_ARM_ZA                                   = 0x40c\n\tNT_ARM_ZT                                   = 0x40d\n\tNT_AUXV                                     = 0x6\n\tNT_FILE                                     = 0x46494c45\n\tNT_GNU_PROPERTY_TYPE_0                      = 0x5\n\tNT_LOONGARCH_CPUCFG                         = 0xa00\n\tNT_LOONGARCH_CSR                            = 0xa01\n\tNT_LOONGARCH_HW_BREAK                       = 0xa05\n\tNT_LOONGARCH_HW_WATCH                       = 0xa06\n\tNT_LOONGARCH_LASX                           = 0xa03\n\tNT_LOONGARCH_LBT                            = 0xa04\n\tNT_LOONGARCH_LSX                            = 0xa02\n\tNT_MIPS_DSP                                 = 0x800\n\tNT_MIPS_FP_MODE                             = 0x801\n\tNT_MIPS_MSA                                 = 0x802\n\tNT_PPC_DEXCR                                = 0x111\n\tNT_PPC_DSCR                                 = 0x105\n\tNT_PPC_EBB                                  = 0x106\n\tNT_PPC_HASHKEYR                             = 0x112\n\tNT_PPC_PKEY                                 = 0x110\n\tNT_PPC_PMU                                  = 0x107\n\tNT_PPC_PPR                                  = 0x104\n\tNT_PPC_SPE                                  = 0x101\n\tNT_PPC_TAR                                  = 0x103\n\tNT_PPC_TM_CDSCR                             = 0x10f\n\tNT_PPC_TM_CFPR                              = 0x109\n\tNT_PPC_TM_CGPR                              = 0x108\n\tNT_PPC_TM_CPPR                              = 0x10e\n\tNT_PPC_TM_CTAR                              = 0x10d\n\tNT_PPC_TM_CVMX                              = 0x10a\n\tNT_PPC_TM_CVSX                              = 0x10b\n\tNT_PPC_TM_SPR                               = 0x10c\n\tNT_PPC_VMX                                  = 0x100\n\tNT_PPC_VSX                                  = 0x102\n\tNT_PRFPREG                                  = 0x2\n\tNT_PRPSINFO                                 = 0x3\n\tNT_PRSTATUS                                 = 0x1\n\tNT_PRXFPREG                                 = 0x46e62b7f\n\tNT_RISCV_CSR                                = 0x900\n\tNT_RISCV_TAGGED_ADDR_CTRL                   = 0x902\n\tNT_RISCV_VECTOR                             = 0x901\n\tNT_S390_CTRS                                = 0x304\n\tNT_S390_GS_BC                               = 0x30c\n\tNT_S390_GS_CB                               = 0x30b\n\tNT_S390_HIGH_GPRS                           = 0x300\n\tNT_S390_LAST_BREAK                          = 0x306\n\tNT_S390_PREFIX                              = 0x305\n\tNT_S390_PV_CPU_DATA                         = 0x30e\n\tNT_S390_RI_CB                               = 0x30d\n\tNT_S390_SYSTEM_CALL                         = 0x307\n\tNT_S390_TDB                                 = 0x308\n\tNT_S390_TIMER                               = 0x301\n\tNT_S390_TODCMP                              = 0x302\n\tNT_S390_TODPREG                             = 0x303\n\tNT_S390_VXRS_HIGH                           = 0x30a\n\tNT_S390_VXRS_LOW                            = 0x309\n\tNT_SIGINFO                                  = 0x53494749\n\tNT_TASKSTRUCT                               = 0x4\n\tNT_VMCOREDD                                 = 0x700\n\tNT_X86_SHSTK                                = 0x204\n\tNT_X86_XSAVE_LAYOUT                         = 0x205\n\tNT_X86_XSTATE                               = 0x202\n\tOCFS2_SUPER_MAGIC                           = 0x7461636f\n\tOCRNL                                       = 0x8\n\tOFDEL                                       = 0x80\n\tOFILL                                       = 0x40\n\tONLRET                                      = 0x20\n\tONOCR                                       = 0x10\n\tOPENPROM_SUPER_MAGIC                        = 0x9fa1\n\tOPOST                                       = 0x1\n\tOVERLAYFS_SUPER_MAGIC                       = 0x794c7630\n\tO_ACCMODE                                   = 0x3\n\tO_RDONLY                                    = 0x0\n\tO_RDWR                                      = 0x2\n\tO_WRONLY                                    = 0x1\n\tPACKET_ADD_MEMBERSHIP                       = 0x1\n\tPACKET_AUXDATA                              = 0x8\n\tPACKET_BROADCAST                            = 0x1\n\tPACKET_COPY_THRESH                          = 0x7\n\tPACKET_DROP_MEMBERSHIP                      = 0x2\n\tPACKET_FANOUT                               = 0x12\n\tPACKET_FANOUT_CBPF                          = 0x6\n\tPACKET_FANOUT_CPU                           = 0x2\n\tPACKET_FANOUT_DATA                          = 0x16\n\tPACKET_FANOUT_EBPF                          = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG                   = 0x8000\n\tPACKET_FANOUT_FLAG_IGNORE_OUTGOING          = 0x4000\n\tPACKET_FANOUT_FLAG_ROLLOVER                 = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID                 = 0x2000\n\tPACKET_FANOUT_HASH                          = 0x0\n\tPACKET_FANOUT_LB                            = 0x1\n\tPACKET_FANOUT_QM                            = 0x5\n\tPACKET_FANOUT_RND                           = 0x4\n\tPACKET_FANOUT_ROLLOVER                      = 0x3\n\tPACKET_FASTROUTE                            = 0x6\n\tPACKET_HDRLEN                               = 0xb\n\tPACKET_HOST                                 = 0x0\n\tPACKET_IGNORE_OUTGOING                      = 0x17\n\tPACKET_KERNEL                               = 0x7\n\tPACKET_LOOPBACK                             = 0x5\n\tPACKET_LOSS                                 = 0xe\n\tPACKET_MR_ALLMULTI                          = 0x2\n\tPACKET_MR_MULTICAST                         = 0x0\n\tPACKET_MR_PROMISC                           = 0x1\n\tPACKET_MR_UNICAST                           = 0x3\n\tPACKET_MULTICAST                            = 0x2\n\tPACKET_ORIGDEV                              = 0x9\n\tPACKET_OTHERHOST                            = 0x3\n\tPACKET_OUTGOING                             = 0x4\n\tPACKET_QDISC_BYPASS                         = 0x14\n\tPACKET_RECV_OUTPUT                          = 0x3\n\tPACKET_RESERVE                              = 0xc\n\tPACKET_ROLLOVER_STATS                       = 0x15\n\tPACKET_RX_RING                              = 0x5\n\tPACKET_STATISTICS                           = 0x6\n\tPACKET_TIMESTAMP                            = 0x11\n\tPACKET_TX_HAS_OFF                           = 0x13\n\tPACKET_TX_RING                              = 0xd\n\tPACKET_TX_TIMESTAMP                         = 0x10\n\tPACKET_USER                                 = 0x6\n\tPACKET_VERSION                              = 0xa\n\tPACKET_VNET_HDR                             = 0xf\n\tPACKET_VNET_HDR_SZ                          = 0x18\n\tPARITY_CRC16_PR0                            = 0x2\n\tPARITY_CRC16_PR0_CCITT                      = 0x4\n\tPARITY_CRC16_PR1                            = 0x3\n\tPARITY_CRC16_PR1_CCITT                      = 0x5\n\tPARITY_CRC32_PR0_CCITT                      = 0x6\n\tPARITY_CRC32_PR1_CCITT                      = 0x7\n\tPARITY_DEFAULT                              = 0x0\n\tPARITY_NONE                                 = 0x1\n\tPARMRK                                      = 0x8\n\tPERF_ATTR_SIZE_VER0                         = 0x40\n\tPERF_ATTR_SIZE_VER1                         = 0x48\n\tPERF_ATTR_SIZE_VER2                         = 0x50\n\tPERF_ATTR_SIZE_VER3                         = 0x60\n\tPERF_ATTR_SIZE_VER4                         = 0x68\n\tPERF_ATTR_SIZE_VER5                         = 0x70\n\tPERF_ATTR_SIZE_VER6                         = 0x78\n\tPERF_ATTR_SIZE_VER7                         = 0x80\n\tPERF_ATTR_SIZE_VER8                         = 0x88\n\tPERF_AUX_FLAG_COLLISION                     = 0x8\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT    = 0x0\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_RAW          = 0x100\n\tPERF_AUX_FLAG_OVERWRITE                     = 0x2\n\tPERF_AUX_FLAG_PARTIAL                       = 0x4\n\tPERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK          = 0xff00\n\tPERF_AUX_FLAG_TRUNCATED                     = 0x1\n\tPERF_BRANCH_ENTRY_INFO_BITS_MAX             = 0x21\n\tPERF_BR_ARM64_DEBUG_DATA                    = 0x7\n\tPERF_BR_ARM64_DEBUG_EXIT                    = 0x5\n\tPERF_BR_ARM64_DEBUG_HALT                    = 0x4\n\tPERF_BR_ARM64_DEBUG_INST                    = 0x6\n\tPERF_BR_ARM64_FIQ                           = 0x3\n\tPERF_FLAG_FD_CLOEXEC                        = 0x8\n\tPERF_FLAG_FD_NO_GROUP                       = 0x1\n\tPERF_FLAG_FD_OUTPUT                         = 0x2\n\tPERF_FLAG_PID_CGROUP                        = 0x4\n\tPERF_HW_EVENT_MASK                          = 0xffffffff\n\tPERF_MAX_CONTEXTS_PER_STACK                 = 0x8\n\tPERF_MAX_STACK_DEPTH                        = 0x7f\n\tPERF_MEM_BLK_ADDR                           = 0x4\n\tPERF_MEM_BLK_DATA                           = 0x2\n\tPERF_MEM_BLK_NA                             = 0x1\n\tPERF_MEM_BLK_SHIFT                          = 0x28\n\tPERF_MEM_HOPS_0                             = 0x1\n\tPERF_MEM_HOPS_1                             = 0x2\n\tPERF_MEM_HOPS_2                             = 0x3\n\tPERF_MEM_HOPS_3                             = 0x4\n\tPERF_MEM_HOPS_SHIFT                         = 0x2b\n\tPERF_MEM_LOCK_LOCKED                        = 0x2\n\tPERF_MEM_LOCK_NA                            = 0x1\n\tPERF_MEM_LOCK_SHIFT                         = 0x18\n\tPERF_MEM_LVLNUM_ANY_CACHE                   = 0xb\n\tPERF_MEM_LVLNUM_CXL                         = 0x9\n\tPERF_MEM_LVLNUM_IO                          = 0xa\n\tPERF_MEM_LVLNUM_L1                          = 0x1\n\tPERF_MEM_LVLNUM_L2                          = 0x2\n\tPERF_MEM_LVLNUM_L2_MHB                      = 0x5\n\tPERF_MEM_LVLNUM_L3                          = 0x3\n\tPERF_MEM_LVLNUM_L4                          = 0x4\n\tPERF_MEM_LVLNUM_LFB                         = 0xc\n\tPERF_MEM_LVLNUM_MSC                         = 0x6\n\tPERF_MEM_LVLNUM_NA                          = 0xf\n\tPERF_MEM_LVLNUM_PMEM                        = 0xe\n\tPERF_MEM_LVLNUM_RAM                         = 0xd\n\tPERF_MEM_LVLNUM_SHIFT                       = 0x21\n\tPERF_MEM_LVLNUM_UNC                         = 0x8\n\tPERF_MEM_LVL_HIT                            = 0x2\n\tPERF_MEM_LVL_IO                             = 0x1000\n\tPERF_MEM_LVL_L1                             = 0x8\n\tPERF_MEM_LVL_L2                             = 0x20\n\tPERF_MEM_LVL_L3                             = 0x40\n\tPERF_MEM_LVL_LFB                            = 0x10\n\tPERF_MEM_LVL_LOC_RAM                        = 0x80\n\tPERF_MEM_LVL_MISS                           = 0x4\n\tPERF_MEM_LVL_NA                             = 0x1\n\tPERF_MEM_LVL_REM_CCE1                       = 0x400\n\tPERF_MEM_LVL_REM_CCE2                       = 0x800\n\tPERF_MEM_LVL_REM_RAM1                       = 0x100\n\tPERF_MEM_LVL_REM_RAM2                       = 0x200\n\tPERF_MEM_LVL_SHIFT                          = 0x5\n\tPERF_MEM_LVL_UNC                            = 0x2000\n\tPERF_MEM_OP_EXEC                            = 0x10\n\tPERF_MEM_OP_LOAD                            = 0x2\n\tPERF_MEM_OP_NA                              = 0x1\n\tPERF_MEM_OP_PFETCH                          = 0x8\n\tPERF_MEM_OP_SHIFT                           = 0x0\n\tPERF_MEM_OP_STORE                           = 0x4\n\tPERF_MEM_REMOTE_REMOTE                      = 0x1\n\tPERF_MEM_REMOTE_SHIFT                       = 0x25\n\tPERF_MEM_SNOOPX_FWD                         = 0x1\n\tPERF_MEM_SNOOPX_PEER                        = 0x2\n\tPERF_MEM_SNOOPX_SHIFT                       = 0x26\n\tPERF_MEM_SNOOP_HIT                          = 0x4\n\tPERF_MEM_SNOOP_HITM                         = 0x10\n\tPERF_MEM_SNOOP_MISS                         = 0x8\n\tPERF_MEM_SNOOP_NA                           = 0x1\n\tPERF_MEM_SNOOP_NONE                         = 0x2\n\tPERF_MEM_SNOOP_SHIFT                        = 0x13\n\tPERF_MEM_TLB_HIT                            = 0x2\n\tPERF_MEM_TLB_L1                             = 0x8\n\tPERF_MEM_TLB_L2                             = 0x10\n\tPERF_MEM_TLB_MISS                           = 0x4\n\tPERF_MEM_TLB_NA                             = 0x1\n\tPERF_MEM_TLB_OS                             = 0x40\n\tPERF_MEM_TLB_SHIFT                          = 0x1a\n\tPERF_MEM_TLB_WK                             = 0x20\n\tPERF_PMU_TYPE_SHIFT                         = 0x20\n\tPERF_RECORD_KSYMBOL_FLAGS_UNREGISTER        = 0x1\n\tPERF_RECORD_MISC_COMM_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_CPUMODE_MASK               = 0x7\n\tPERF_RECORD_MISC_CPUMODE_UNKNOWN            = 0x0\n\tPERF_RECORD_MISC_EXACT_IP                   = 0x4000\n\tPERF_RECORD_MISC_EXT_RESERVED               = 0x8000\n\tPERF_RECORD_MISC_FORK_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_GUEST_KERNEL               = 0x4\n\tPERF_RECORD_MISC_GUEST_USER                 = 0x5\n\tPERF_RECORD_MISC_HYPERVISOR                 = 0x3\n\tPERF_RECORD_MISC_KERNEL                     = 0x1\n\tPERF_RECORD_MISC_MMAP_BUILD_ID              = 0x4000\n\tPERF_RECORD_MISC_MMAP_DATA                  = 0x2000\n\tPERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT     = 0x1000\n\tPERF_RECORD_MISC_SWITCH_OUT                 = 0x2000\n\tPERF_RECORD_MISC_SWITCH_OUT_PREEMPT         = 0x4000\n\tPERF_RECORD_MISC_USER                       = 0x2\n\tPERF_SAMPLE_BRANCH_PLM_ALL                  = 0x7\n\tPERF_SAMPLE_WEIGHT_TYPE                     = 0x1004000\n\tPF_ALG                                      = 0x26\n\tPF_APPLETALK                                = 0x5\n\tPF_ASH                                      = 0x12\n\tPF_ATMPVC                                   = 0x8\n\tPF_ATMSVC                                   = 0x14\n\tPF_AX25                                     = 0x3\n\tPF_BLUETOOTH                                = 0x1f\n\tPF_BRIDGE                                   = 0x7\n\tPF_CAIF                                     = 0x25\n\tPF_CAN                                      = 0x1d\n\tPF_DECnet                                   = 0xc\n\tPF_ECONET                                   = 0x13\n\tPF_FILE                                     = 0x1\n\tPF_IB                                       = 0x1b\n\tPF_IEEE802154                               = 0x24\n\tPF_INET                                     = 0x2\n\tPF_INET6                                    = 0xa\n\tPF_IPX                                      = 0x4\n\tPF_IRDA                                     = 0x17\n\tPF_ISDN                                     = 0x22\n\tPF_IUCV                                     = 0x20\n\tPF_KCM                                      = 0x29\n\tPF_KEY                                      = 0xf\n\tPF_LLC                                      = 0x1a\n\tPF_LOCAL                                    = 0x1\n\tPF_MAX                                      = 0x2e\n\tPF_MCTP                                     = 0x2d\n\tPF_MPLS                                     = 0x1c\n\tPF_NETBEUI                                  = 0xd\n\tPF_NETLINK                                  = 0x10\n\tPF_NETROM                                   = 0x6\n\tPF_NFC                                      = 0x27\n\tPF_PACKET                                   = 0x11\n\tPF_PHONET                                   = 0x23\n\tPF_PPPOX                                    = 0x18\n\tPF_QIPCRTR                                  = 0x2a\n\tPF_R                                        = 0x4\n\tPF_RDS                                      = 0x15\n\tPF_ROSE                                     = 0xb\n\tPF_ROUTE                                    = 0x10\n\tPF_RXRPC                                    = 0x21\n\tPF_SECURITY                                 = 0xe\n\tPF_SMC                                      = 0x2b\n\tPF_SNA                                      = 0x16\n\tPF_TIPC                                     = 0x1e\n\tPF_UNIX                                     = 0x1\n\tPF_UNSPEC                                   = 0x0\n\tPF_VSOCK                                    = 0x28\n\tPF_W                                        = 0x2\n\tPF_WANPIPE                                  = 0x19\n\tPF_X                                        = 0x1\n\tPF_X25                                      = 0x9\n\tPF_XDP                                      = 0x2c\n\tPID_FS_MAGIC                                = 0x50494446\n\tPIPEFS_MAGIC                                = 0x50495045\n\tPPPIOCGNPMODE                               = 0xc008744c\n\tPPPIOCNEWUNIT                               = 0xc004743e\n\tPRIO_PGRP                                   = 0x1\n\tPRIO_PROCESS                                = 0x0\n\tPRIO_USER                                   = 0x2\n\tPROCFS_IOCTL_MAGIC                          = 'f'\n\tPROC_SUPER_MAGIC                            = 0x9fa0\n\tPROT_EXEC                                   = 0x4\n\tPROT_GROWSDOWN                              = 0x1000000\n\tPROT_GROWSUP                                = 0x2000000\n\tPROT_NONE                                   = 0x0\n\tPROT_READ                                   = 0x1\n\tPROT_WRITE                                  = 0x2\n\tPR_CAPBSET_DROP                             = 0x18\n\tPR_CAPBSET_READ                             = 0x17\n\tPR_CAP_AMBIENT                              = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL                    = 0x4\n\tPR_CAP_AMBIENT_IS_SET                       = 0x1\n\tPR_CAP_AMBIENT_LOWER                        = 0x3\n\tPR_CAP_AMBIENT_RAISE                        = 0x2\n\tPR_ENDIAN_BIG                               = 0x0\n\tPR_ENDIAN_LITTLE                            = 0x1\n\tPR_ENDIAN_PPC_LITTLE                        = 0x2\n\tPR_FPEMU_NOPRINT                            = 0x1\n\tPR_FPEMU_SIGFPE                             = 0x2\n\tPR_FP_EXC_ASYNC                             = 0x2\n\tPR_FP_EXC_DISABLED                          = 0x0\n\tPR_FP_EXC_DIV                               = 0x10000\n\tPR_FP_EXC_INV                               = 0x100000\n\tPR_FP_EXC_NONRECOV                          = 0x1\n\tPR_FP_EXC_OVF                               = 0x20000\n\tPR_FP_EXC_PRECISE                           = 0x3\n\tPR_FP_EXC_RES                               = 0x80000\n\tPR_FP_EXC_SW_ENABLE                         = 0x80\n\tPR_FP_EXC_UND                               = 0x40000\n\tPR_FP_MODE_FR                               = 0x1\n\tPR_FP_MODE_FRE                              = 0x2\n\tPR_FUTEX_HASH                               = 0x4e\n\tPR_FUTEX_HASH_GET_IMMUTABLE                 = 0x3\n\tPR_FUTEX_HASH_GET_SLOTS                     = 0x2\n\tPR_FUTEX_HASH_SET_SLOTS                     = 0x1\n\tPR_GET_AUXV                                 = 0x41555856\n\tPR_GET_CHILD_SUBREAPER                      = 0x25\n\tPR_GET_DUMPABLE                             = 0x3\n\tPR_GET_ENDIAN                               = 0x13\n\tPR_GET_FPEMU                                = 0x9\n\tPR_GET_FPEXC                                = 0xb\n\tPR_GET_FP_MODE                              = 0x2e\n\tPR_GET_IO_FLUSHER                           = 0x3a\n\tPR_GET_KEEPCAPS                             = 0x7\n\tPR_GET_MDWE                                 = 0x42\n\tPR_GET_MEMORY_MERGE                         = 0x44\n\tPR_GET_NAME                                 = 0x10\n\tPR_GET_NO_NEW_PRIVS                         = 0x27\n\tPR_GET_PDEATHSIG                            = 0x2\n\tPR_GET_SECCOMP                              = 0x15\n\tPR_GET_SECUREBITS                           = 0x1b\n\tPR_GET_SHADOW_STACK_STATUS                  = 0x4a\n\tPR_GET_SPECULATION_CTRL                     = 0x34\n\tPR_GET_TAGGED_ADDR_CTRL                     = 0x38\n\tPR_GET_THP_DISABLE                          = 0x2a\n\tPR_GET_TID_ADDRESS                          = 0x28\n\tPR_GET_TIMERSLACK                           = 0x1e\n\tPR_GET_TIMING                               = 0xd\n\tPR_GET_TSC                                  = 0x19\n\tPR_GET_UNALIGN                              = 0x5\n\tPR_LOCK_SHADOW_STACK_STATUS                 = 0x4c\n\tPR_MCE_KILL                                 = 0x21\n\tPR_MCE_KILL_CLEAR                           = 0x0\n\tPR_MCE_KILL_DEFAULT                         = 0x2\n\tPR_MCE_KILL_EARLY                           = 0x1\n\tPR_MCE_KILL_GET                             = 0x22\n\tPR_MCE_KILL_LATE                            = 0x0\n\tPR_MCE_KILL_SET                             = 0x1\n\tPR_MDWE_NO_INHERIT                          = 0x2\n\tPR_MDWE_REFUSE_EXEC_GAIN                    = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT                   = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT                    = 0x2b\n\tPR_MTE_TAG_MASK                             = 0x7fff8\n\tPR_MTE_TAG_SHIFT                            = 0x3\n\tPR_MTE_TCF_ASYNC                            = 0x4\n\tPR_MTE_TCF_MASK                             = 0x6\n\tPR_MTE_TCF_NONE                             = 0x0\n\tPR_MTE_TCF_SHIFT                            = 0x1\n\tPR_MTE_TCF_SYNC                             = 0x2\n\tPR_PAC_APDAKEY                              = 0x4\n\tPR_PAC_APDBKEY                              = 0x8\n\tPR_PAC_APGAKEY                              = 0x10\n\tPR_PAC_APIAKEY                              = 0x1\n\tPR_PAC_APIBKEY                              = 0x2\n\tPR_PAC_GET_ENABLED_KEYS                     = 0x3d\n\tPR_PAC_RESET_KEYS                           = 0x36\n\tPR_PAC_SET_ENABLED_KEYS                     = 0x3c\n\tPR_PMLEN_MASK                               = 0x7f000000\n\tPR_PMLEN_SHIFT                              = 0x18\n\tPR_PPC_DEXCR_CTRL_CLEAR                     = 0x4\n\tPR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10\n\tPR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1\n\tPR_PPC_DEXCR_CTRL_MASK                      = 0x1f\n\tPR_PPC_DEXCR_CTRL_SET                       = 0x2\n\tPR_PPC_DEXCR_CTRL_SET_ONEXEC                = 0x8\n\tPR_PPC_DEXCR_IBRTPD                         = 0x1\n\tPR_PPC_DEXCR_NPHIE                          = 0x3\n\tPR_PPC_DEXCR_SBHE                           = 0x0\n\tPR_PPC_DEXCR_SRAPD                          = 0x2\n\tPR_PPC_GET_DEXCR                            = 0x48\n\tPR_PPC_SET_DEXCR                            = 0x49\n\tPR_RISCV_CTX_SW_FENCEI_OFF                  = 0x1\n\tPR_RISCV_CTX_SW_FENCEI_ON                   = 0x0\n\tPR_RISCV_SCOPE_PER_PROCESS                  = 0x0\n\tPR_RISCV_SCOPE_PER_THREAD                   = 0x1\n\tPR_RISCV_SET_ICACHE_FLUSH_CTX               = 0x47\n\tPR_RISCV_V_GET_CONTROL                      = 0x46\n\tPR_RISCV_V_SET_CONTROL                      = 0x45\n\tPR_RISCV_V_VSTATE_CTRL_CUR_MASK             = 0x3\n\tPR_RISCV_V_VSTATE_CTRL_DEFAULT              = 0x0\n\tPR_RISCV_V_VSTATE_CTRL_INHERIT              = 0x10\n\tPR_RISCV_V_VSTATE_CTRL_MASK                 = 0x1f\n\tPR_RISCV_V_VSTATE_CTRL_NEXT_MASK            = 0xc\n\tPR_RISCV_V_VSTATE_CTRL_OFF                  = 0x1\n\tPR_RISCV_V_VSTATE_CTRL_ON                   = 0x2\n\tPR_SCHED_CORE                               = 0x3e\n\tPR_SCHED_CORE_CREATE                        = 0x1\n\tPR_SCHED_CORE_GET                           = 0x0\n\tPR_SCHED_CORE_MAX                           = 0x4\n\tPR_SCHED_CORE_SCOPE_PROCESS_GROUP           = 0x2\n\tPR_SCHED_CORE_SCOPE_THREAD                  = 0x0\n\tPR_SCHED_CORE_SCOPE_THREAD_GROUP            = 0x1\n\tPR_SCHED_CORE_SHARE_FROM                    = 0x3\n\tPR_SCHED_CORE_SHARE_TO                      = 0x2\n\tPR_SET_CHILD_SUBREAPER                      = 0x24\n\tPR_SET_DUMPABLE                             = 0x4\n\tPR_SET_ENDIAN                               = 0x14\n\tPR_SET_FPEMU                                = 0xa\n\tPR_SET_FPEXC                                = 0xc\n\tPR_SET_FP_MODE                              = 0x2d\n\tPR_SET_IO_FLUSHER                           = 0x39\n\tPR_SET_KEEPCAPS                             = 0x8\n\tPR_SET_MDWE                                 = 0x41\n\tPR_SET_MEMORY_MERGE                         = 0x43\n\tPR_SET_MM                                   = 0x23\n\tPR_SET_MM_ARG_END                           = 0x9\n\tPR_SET_MM_ARG_START                         = 0x8\n\tPR_SET_MM_AUXV                              = 0xc\n\tPR_SET_MM_BRK                               = 0x7\n\tPR_SET_MM_END_CODE                          = 0x2\n\tPR_SET_MM_END_DATA                          = 0x4\n\tPR_SET_MM_ENV_END                           = 0xb\n\tPR_SET_MM_ENV_START                         = 0xa\n\tPR_SET_MM_EXE_FILE                          = 0xd\n\tPR_SET_MM_MAP                               = 0xe\n\tPR_SET_MM_MAP_SIZE                          = 0xf\n\tPR_SET_MM_START_BRK                         = 0x6\n\tPR_SET_MM_START_CODE                        = 0x1\n\tPR_SET_MM_START_DATA                        = 0x3\n\tPR_SET_MM_START_STACK                       = 0x5\n\tPR_SET_NAME                                 = 0xf\n\tPR_SET_NO_NEW_PRIVS                         = 0x26\n\tPR_SET_PDEATHSIG                            = 0x1\n\tPR_SET_PTRACER                              = 0x59616d61\n\tPR_SET_SECCOMP                              = 0x16\n\tPR_SET_SECUREBITS                           = 0x1c\n\tPR_SET_SHADOW_STACK_STATUS                  = 0x4b\n\tPR_SET_SPECULATION_CTRL                     = 0x35\n\tPR_SET_SYSCALL_USER_DISPATCH                = 0x3b\n\tPR_SET_TAGGED_ADDR_CTRL                     = 0x37\n\tPR_SET_THP_DISABLE                          = 0x29\n\tPR_SET_TIMERSLACK                           = 0x1d\n\tPR_SET_TIMING                               = 0xe\n\tPR_SET_TSC                                  = 0x1a\n\tPR_SET_UNALIGN                              = 0x6\n\tPR_SET_VMA                                  = 0x53564d41\n\tPR_SET_VMA_ANON_NAME                        = 0x0\n\tPR_SHADOW_STACK_ENABLE                      = 0x1\n\tPR_SHADOW_STACK_PUSH                        = 0x4\n\tPR_SHADOW_STACK_WRITE                       = 0x2\n\tPR_SME_GET_VL                               = 0x40\n\tPR_SME_SET_VL                               = 0x3f\n\tPR_SME_SET_VL_ONEXEC                        = 0x40000\n\tPR_SME_VL_INHERIT                           = 0x20000\n\tPR_SME_VL_LEN_MASK                          = 0xffff\n\tPR_SPEC_DISABLE                             = 0x4\n\tPR_SPEC_DISABLE_NOEXEC                      = 0x10\n\tPR_SPEC_ENABLE                              = 0x2\n\tPR_SPEC_FORCE_DISABLE                       = 0x8\n\tPR_SPEC_INDIRECT_BRANCH                     = 0x1\n\tPR_SPEC_L1D_FLUSH                           = 0x2\n\tPR_SPEC_NOT_AFFECTED                        = 0x0\n\tPR_SPEC_PRCTL                               = 0x1\n\tPR_SPEC_STORE_BYPASS                        = 0x0\n\tPR_SVE_GET_VL                               = 0x33\n\tPR_SVE_SET_VL                               = 0x32\n\tPR_SVE_SET_VL_ONEXEC                        = 0x40000\n\tPR_SVE_VL_INHERIT                           = 0x20000\n\tPR_SVE_VL_LEN_MASK                          = 0xffff\n\tPR_SYS_DISPATCH_OFF                         = 0x0\n\tPR_SYS_DISPATCH_ON                          = 0x1\n\tPR_TAGGED_ADDR_ENABLE                       = 0x1\n\tPR_TASK_PERF_EVENTS_DISABLE                 = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE                  = 0x20\n\tPR_TIMER_CREATE_RESTORE_IDS                 = 0x4d\n\tPR_TIMER_CREATE_RESTORE_IDS_GET             = 0x2\n\tPR_TIMER_CREATE_RESTORE_IDS_OFF             = 0x0\n\tPR_TIMER_CREATE_RESTORE_IDS_ON              = 0x1\n\tPR_TIMING_STATISTICAL                       = 0x0\n\tPR_TIMING_TIMESTAMP                         = 0x1\n\tPR_TSC_ENABLE                               = 0x1\n\tPR_TSC_SIGSEGV                              = 0x2\n\tPR_UNALIGN_NOPRINT                          = 0x1\n\tPR_UNALIGN_SIGBUS                           = 0x2\n\tPSTOREFS_MAGIC                              = 0x6165676c\n\tPTP_CLK_MAGIC                               = '='\n\tPTP_ENABLE_FEATURE                          = 0x1\n\tPTP_EXTTS_EDGES                             = 0x6\n\tPTP_EXTTS_EVENT_VALID                       = 0x1\n\tPTP_EXTTS_V1_VALID_FLAGS                    = 0x7\n\tPTP_EXTTS_VALID_FLAGS                       = 0x1f\n\tPTP_EXT_OFFSET                              = 0x10\n\tPTP_FALLING_EDGE                            = 0x4\n\tPTP_MAX_SAMPLES                             = 0x19\n\tPTP_PEROUT_DUTY_CYCLE                       = 0x2\n\tPTP_PEROUT_ONE_SHOT                         = 0x1\n\tPTP_PEROUT_PHASE                            = 0x4\n\tPTP_PEROUT_V1_VALID_FLAGS                   = 0x0\n\tPTP_PEROUT_VALID_FLAGS                      = 0x7\n\tPTP_PIN_GETFUNC                             = 0xc0603d06\n\tPTP_PIN_GETFUNC2                            = 0xc0603d0f\n\tPTP_RISING_EDGE                             = 0x2\n\tPTP_STRICT_FLAGS                            = 0x8\n\tPTP_SYS_OFFSET_EXTENDED                     = 0xc4c03d09\n\tPTP_SYS_OFFSET_EXTENDED2                    = 0xc4c03d12\n\tPTP_SYS_OFFSET_PRECISE                      = 0xc0403d08\n\tPTP_SYS_OFFSET_PRECISE2                     = 0xc0403d11\n\tPTRACE_ATTACH                               = 0x10\n\tPTRACE_CONT                                 = 0x7\n\tPTRACE_DETACH                               = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY               = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT                = 0x2\n\tPTRACE_EVENT_CLONE                          = 0x3\n\tPTRACE_EVENT_EXEC                           = 0x4\n\tPTRACE_EVENT_EXIT                           = 0x6\n\tPTRACE_EVENT_FORK                           = 0x1\n\tPTRACE_EVENT_SECCOMP                        = 0x7\n\tPTRACE_EVENT_STOP                           = 0x80\n\tPTRACE_EVENT_VFORK                          = 0x2\n\tPTRACE_EVENT_VFORK_DONE                     = 0x5\n\tPTRACE_GETEVENTMSG                          = 0x4201\n\tPTRACE_GETREGS                              = 0xc\n\tPTRACE_GETREGSET                            = 0x4204\n\tPTRACE_GETSIGINFO                           = 0x4202\n\tPTRACE_GETSIGMASK                           = 0x420a\n\tPTRACE_GET_RSEQ_CONFIGURATION               = 0x420f\n\tPTRACE_GET_SYSCALL_INFO                     = 0x420e\n\tPTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4211\n\tPTRACE_INTERRUPT                            = 0x4207\n\tPTRACE_KILL                                 = 0x8\n\tPTRACE_LISTEN                               = 0x4208\n\tPTRACE_O_EXITKILL                           = 0x100000\n\tPTRACE_O_MASK                               = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP                    = 0x200000\n\tPTRACE_O_TRACECLONE                         = 0x8\n\tPTRACE_O_TRACEEXEC                          = 0x10\n\tPTRACE_O_TRACEEXIT                          = 0x40\n\tPTRACE_O_TRACEFORK                          = 0x2\n\tPTRACE_O_TRACESECCOMP                       = 0x80\n\tPTRACE_O_TRACESYSGOOD                       = 0x1\n\tPTRACE_O_TRACEVFORK                         = 0x4\n\tPTRACE_O_TRACEVFORKDONE                     = 0x20\n\tPTRACE_PEEKDATA                             = 0x2\n\tPTRACE_PEEKSIGINFO                          = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED                   = 0x1\n\tPTRACE_PEEKTEXT                             = 0x1\n\tPTRACE_PEEKUSR                              = 0x3\n\tPTRACE_POKEDATA                             = 0x5\n\tPTRACE_POKETEXT                             = 0x4\n\tPTRACE_POKEUSR                              = 0x6\n\tPTRACE_SECCOMP_GET_FILTER                   = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA                 = 0x420d\n\tPTRACE_SEIZE                                = 0x4206\n\tPTRACE_SETOPTIONS                           = 0x4200\n\tPTRACE_SETREGS                              = 0xd\n\tPTRACE_SETREGSET                            = 0x4205\n\tPTRACE_SETSIGINFO                           = 0x4203\n\tPTRACE_SETSIGMASK                           = 0x420b\n\tPTRACE_SET_SYSCALL_INFO                     = 0x4212\n\tPTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210\n\tPTRACE_SINGLESTEP                           = 0x9\n\tPTRACE_SYSCALL                              = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY                   = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT                    = 0x2\n\tPTRACE_SYSCALL_INFO_NONE                    = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP                 = 0x3\n\tPTRACE_TRACEME                              = 0x0\n\tPT_AARCH64_MEMTAG_MTE                       = 0x70000002\n\tPT_DYNAMIC                                  = 0x2\n\tPT_GNU_EH_FRAME                             = 0x6474e550\n\tPT_GNU_PROPERTY                             = 0x6474e553\n\tPT_GNU_RELRO                                = 0x6474e552\n\tPT_GNU_STACK                                = 0x6474e551\n\tPT_HIOS                                     = 0x6fffffff\n\tPT_HIPROC                                   = 0x7fffffff\n\tPT_INTERP                                   = 0x3\n\tPT_LOAD                                     = 0x1\n\tPT_LOOS                                     = 0x60000000\n\tPT_LOPROC                                   = 0x70000000\n\tPT_NOTE                                     = 0x4\n\tPT_NULL                                     = 0x0\n\tPT_PHDR                                     = 0x6\n\tPT_SHLIB                                    = 0x5\n\tPT_TLS                                      = 0x7\n\tP_ALL                                       = 0x0\n\tP_PGID                                      = 0x2\n\tP_PID                                       = 0x1\n\tP_PIDFD                                     = 0x3\n\tQNX4_SUPER_MAGIC                            = 0x2f\n\tQNX6_SUPER_MAGIC                            = 0x68191122\n\tRAMFS_MAGIC                                 = 0x858458f6\n\tRAW_PAYLOAD_DIGITAL                         = 0x3\n\tRAW_PAYLOAD_HCI                             = 0x2\n\tRAW_PAYLOAD_LLCP                            = 0x0\n\tRAW_PAYLOAD_NCI                             = 0x1\n\tRAW_PAYLOAD_PROPRIETARY                     = 0x4\n\tRDTGROUP_SUPER_MAGIC                        = 0x7655821\n\tREISERFS_SUPER_MAGIC                        = 0x52654973\n\tRENAME_EXCHANGE                             = 0x2\n\tRENAME_NOREPLACE                            = 0x1\n\tRENAME_WHITEOUT                             = 0x4\n\tRLIMIT_CORE                                 = 0x4\n\tRLIMIT_CPU                                  = 0x0\n\tRLIMIT_DATA                                 = 0x2\n\tRLIMIT_FSIZE                                = 0x1\n\tRLIMIT_LOCKS                                = 0xa\n\tRLIMIT_MSGQUEUE                             = 0xc\n\tRLIMIT_NICE                                 = 0xd\n\tRLIMIT_RTPRIO                               = 0xe\n\tRLIMIT_RTTIME                               = 0xf\n\tRLIMIT_SIGPENDING                           = 0xb\n\tRLIMIT_STACK                                = 0x3\n\tRLIM_INFINITY                               = 0xffffffffffffffff\n\tRTAX_ADVMSS                                 = 0x8\n\tRTAX_CC_ALGO                                = 0x10\n\tRTAX_CWND                                   = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE                     = 0x11\n\tRTAX_FEATURES                               = 0xc\n\tRTAX_FEATURE_ALLFRAG                        = 0x8\n\tRTAX_FEATURE_ECN                            = 0x1\n\tRTAX_FEATURE_MASK                           = 0x1f\n\tRTAX_FEATURE_SACK                           = 0x2\n\tRTAX_FEATURE_TCP_USEC_TS                    = 0x10\n\tRTAX_FEATURE_TIMESTAMP                      = 0x4\n\tRTAX_HOPLIMIT                               = 0xa\n\tRTAX_INITCWND                               = 0xb\n\tRTAX_INITRWND                               = 0xe\n\tRTAX_LOCK                                   = 0x1\n\tRTAX_MAX                                    = 0x11\n\tRTAX_MTU                                    = 0x2\n\tRTAX_QUICKACK                               = 0xf\n\tRTAX_REORDERING                             = 0x9\n\tRTAX_RTO_MIN                                = 0xd\n\tRTAX_RTT                                    = 0x4\n\tRTAX_RTTVAR                                 = 0x5\n\tRTAX_SSTHRESH                               = 0x6\n\tRTAX_UNSPEC                                 = 0x0\n\tRTAX_WINDOW                                 = 0x3\n\tRTA_ALIGNTO                                 = 0x4\n\tRTA_MAX                                     = 0x1f\n\tRTCF_DIRECTSRC                              = 0x4000000\n\tRTCF_DOREDIRECT                             = 0x1000000\n\tRTCF_LOG                                    = 0x2000000\n\tRTCF_MASQ                                   = 0x400000\n\tRTCF_NAT                                    = 0x800000\n\tRTCF_VALVE                                  = 0x200000\n\tRTC_AF                                      = 0x20\n\tRTC_BSM_DIRECT                              = 0x1\n\tRTC_BSM_DISABLED                            = 0x0\n\tRTC_BSM_LEVEL                               = 0x2\n\tRTC_BSM_STANDBY                             = 0x3\n\tRTC_FEATURE_ALARM                           = 0x0\n\tRTC_FEATURE_ALARM_RES_2S                    = 0x3\n\tRTC_FEATURE_ALARM_RES_MINUTE                = 0x1\n\tRTC_FEATURE_ALARM_WAKEUP_ONLY               = 0x7\n\tRTC_FEATURE_BACKUP_SWITCH_MODE              = 0x6\n\tRTC_FEATURE_CNT                             = 0x8\n\tRTC_FEATURE_CORRECTION                      = 0x5\n\tRTC_FEATURE_NEED_WEEK_DAY                   = 0x2\n\tRTC_FEATURE_UPDATE_INTERRUPT                = 0x4\n\tRTC_IRQF                                    = 0x80\n\tRTC_MAX_FREQ                                = 0x2000\n\tRTC_PARAM_BACKUP_SWITCH_MODE                = 0x2\n\tRTC_PARAM_CORRECTION                        = 0x1\n\tRTC_PARAM_FEATURES                          = 0x0\n\tRTC_PF                                      = 0x40\n\tRTC_UF                                      = 0x10\n\tRTF_ADDRCLASSMASK                           = 0xf8000000\n\tRTF_ADDRCONF                                = 0x40000\n\tRTF_ALLONLINK                               = 0x20000\n\tRTF_BROADCAST                               = 0x10000000\n\tRTF_CACHE                                   = 0x1000000\n\tRTF_DEFAULT                                 = 0x10000\n\tRTF_DYNAMIC                                 = 0x10\n\tRTF_FLOW                                    = 0x2000000\n\tRTF_GATEWAY                                 = 0x2\n\tRTF_HOST                                    = 0x4\n\tRTF_INTERFACE                               = 0x40000000\n\tRTF_IRTT                                    = 0x100\n\tRTF_LINKRT                                  = 0x100000\n\tRTF_LOCAL                                   = 0x80000000\n\tRTF_MODIFIED                                = 0x20\n\tRTF_MSS                                     = 0x40\n\tRTF_MTU                                     = 0x40\n\tRTF_MULTICAST                               = 0x20000000\n\tRTF_NAT                                     = 0x8000000\n\tRTF_NOFORWARD                               = 0x1000\n\tRTF_NONEXTHOP                               = 0x200000\n\tRTF_NOPMTUDISC                              = 0x4000\n\tRTF_POLICY                                  = 0x4000000\n\tRTF_REINSTATE                               = 0x8\n\tRTF_REJECT                                  = 0x200\n\tRTF_STATIC                                  = 0x400\n\tRTF_THROW                                   = 0x2000\n\tRTF_UP                                      = 0x1\n\tRTF_WINDOW                                  = 0x80\n\tRTF_XRESOLVE                                = 0x800\n\tRTMGRP_DECnet_IFADDR                        = 0x1000\n\tRTMGRP_DECnet_ROUTE                         = 0x4000\n\tRTMGRP_IPV4_IFADDR                          = 0x10\n\tRTMGRP_IPV4_MROUTE                          = 0x20\n\tRTMGRP_IPV4_ROUTE                           = 0x40\n\tRTMGRP_IPV4_RULE                            = 0x80\n\tRTMGRP_IPV6_IFADDR                          = 0x100\n\tRTMGRP_IPV6_IFINFO                          = 0x800\n\tRTMGRP_IPV6_MROUTE                          = 0x200\n\tRTMGRP_IPV6_PREFIX                          = 0x20000\n\tRTMGRP_IPV6_ROUTE                           = 0x400\n\tRTMGRP_LINK                                 = 0x1\n\tRTMGRP_NEIGH                                = 0x4\n\tRTMGRP_NOTIFY                               = 0x2\n\tRTMGRP_TC                                   = 0x8\n\tRTM_BASE                                    = 0x10\n\tRTM_DELACTION                               = 0x31\n\tRTM_DELADDR                                 = 0x15\n\tRTM_DELADDRLABEL                            = 0x49\n\tRTM_DELANYCAST                              = 0x3d\n\tRTM_DELCHAIN                                = 0x65\n\tRTM_DELLINK                                 = 0x11\n\tRTM_DELLINKPROP                             = 0x6d\n\tRTM_DELMDB                                  = 0x55\n\tRTM_DELMULTICAST                            = 0x39\n\tRTM_DELNEIGH                                = 0x1d\n\tRTM_DELNETCONF                              = 0x51\n\tRTM_DELNEXTHOP                              = 0x69\n\tRTM_DELNEXTHOPBUCKET                        = 0x75\n\tRTM_DELNSID                                 = 0x59\n\tRTM_DELQDISC                                = 0x25\n\tRTM_DELROUTE                                = 0x19\n\tRTM_DELRULE                                 = 0x21\n\tRTM_DELTCLASS                               = 0x29\n\tRTM_DELTFILTER                              = 0x2d\n\tRTM_DELTUNNEL                               = 0x79\n\tRTM_DELVLAN                                 = 0x71\n\tRTM_F_CLONED                                = 0x200\n\tRTM_F_EQUALIZE                              = 0x400\n\tRTM_F_FIB_MATCH                             = 0x2000\n\tRTM_F_LOOKUP_TABLE                          = 0x1000\n\tRTM_F_NOTIFY                                = 0x100\n\tRTM_F_OFFLOAD                               = 0x4000\n\tRTM_F_OFFLOAD_FAILED                        = 0x20000000\n\tRTM_F_PREFIX                                = 0x800\n\tRTM_F_TRAP                                  = 0x8000\n\tRTM_GETACTION                               = 0x32\n\tRTM_GETADDR                                 = 0x16\n\tRTM_GETADDRLABEL                            = 0x4a\n\tRTM_GETANYCAST                              = 0x3e\n\tRTM_GETCHAIN                                = 0x66\n\tRTM_GETDCB                                  = 0x4e\n\tRTM_GETLINK                                 = 0x12\n\tRTM_GETLINKPROP                             = 0x6e\n\tRTM_GETMDB                                  = 0x56\n\tRTM_GETMULTICAST                            = 0x3a\n\tRTM_GETNEIGH                                = 0x1e\n\tRTM_GETNEIGHTBL                             = 0x42\n\tRTM_GETNETCONF                              = 0x52\n\tRTM_GETNEXTHOP                              = 0x6a\n\tRTM_GETNEXTHOPBUCKET                        = 0x76\n\tRTM_GETNSID                                 = 0x5a\n\tRTM_GETQDISC                                = 0x26\n\tRTM_GETROUTE                                = 0x1a\n\tRTM_GETRULE                                 = 0x22\n\tRTM_GETSTATS                                = 0x5e\n\tRTM_GETTCLASS                               = 0x2a\n\tRTM_GETTFILTER                              = 0x2e\n\tRTM_GETTUNNEL                               = 0x7a\n\tRTM_GETVLAN                                 = 0x72\n\tRTM_MAX                                     = 0x7b\n\tRTM_NEWACTION                               = 0x30\n\tRTM_NEWADDR                                 = 0x14\n\tRTM_NEWADDRLABEL                            = 0x48\n\tRTM_NEWANYCAST                              = 0x3c\n\tRTM_NEWCACHEREPORT                          = 0x60\n\tRTM_NEWCHAIN                                = 0x64\n\tRTM_NEWLINK                                 = 0x10\n\tRTM_NEWLINKPROP                             = 0x6c\n\tRTM_NEWMDB                                  = 0x54\n\tRTM_NEWMULTICAST                            = 0x38\n\tRTM_NEWNDUSEROPT                            = 0x44\n\tRTM_NEWNEIGH                                = 0x1c\n\tRTM_NEWNEIGHTBL                             = 0x40\n\tRTM_NEWNETCONF                              = 0x50\n\tRTM_NEWNEXTHOP                              = 0x68\n\tRTM_NEWNEXTHOPBUCKET                        = 0x74\n\tRTM_NEWNSID                                 = 0x58\n\tRTM_NEWPREFIX                               = 0x34\n\tRTM_NEWQDISC                                = 0x24\n\tRTM_NEWROUTE                                = 0x18\n\tRTM_NEWRULE                                 = 0x20\n\tRTM_NEWSTATS                                = 0x5c\n\tRTM_NEWTCLASS                               = 0x28\n\tRTM_NEWTFILTER                              = 0x2c\n\tRTM_NEWTUNNEL                               = 0x78\n\tRTM_NEWVLAN                                 = 0x70\n\tRTM_NR_FAMILIES                             = 0x1b\n\tRTM_NR_MSGTYPES                             = 0x6c\n\tRTM_SETDCB                                  = 0x4f\n\tRTM_SETLINK                                 = 0x13\n\tRTM_SETNEIGHTBL                             = 0x43\n\tRTM_SETSTATS                                = 0x5f\n\tRTNH_ALIGNTO                                = 0x4\n\tRTNH_COMPARE_MASK                           = 0x59\n\tRTNH_F_DEAD                                 = 0x1\n\tRTNH_F_LINKDOWN                             = 0x10\n\tRTNH_F_OFFLOAD                              = 0x8\n\tRTNH_F_ONLINK                               = 0x4\n\tRTNH_F_PERVASIVE                            = 0x2\n\tRTNH_F_TRAP                                 = 0x40\n\tRTNH_F_UNRESOLVED                           = 0x20\n\tRTN_MAX                                     = 0xb\n\tRTPROT_BABEL                                = 0x2a\n\tRTPROT_BGP                                  = 0xba\n\tRTPROT_BIRD                                 = 0xc\n\tRTPROT_BOOT                                 = 0x3\n\tRTPROT_DHCP                                 = 0x10\n\tRTPROT_DNROUTED                             = 0xd\n\tRTPROT_EIGRP                                = 0xc0\n\tRTPROT_GATED                                = 0x8\n\tRTPROT_ISIS                                 = 0xbb\n\tRTPROT_KEEPALIVED                           = 0x12\n\tRTPROT_KERNEL                               = 0x2\n\tRTPROT_MROUTED                              = 0x11\n\tRTPROT_MRT                                  = 0xa\n\tRTPROT_NTK                                  = 0xf\n\tRTPROT_OPENR                                = 0x63\n\tRTPROT_OSPF                                 = 0xbc\n\tRTPROT_OVN                                  = 0x54\n\tRTPROT_RA                                   = 0x9\n\tRTPROT_REDIRECT                             = 0x1\n\tRTPROT_RIP                                  = 0xbd\n\tRTPROT_STATIC                               = 0x4\n\tRTPROT_UNSPEC                               = 0x0\n\tRTPROT_XORP                                 = 0xe\n\tRTPROT_ZEBRA                                = 0xb\n\tRT_CLASS_DEFAULT                            = 0xfd\n\tRT_CLASS_LOCAL                              = 0xff\n\tRT_CLASS_MAIN                               = 0xfe\n\tRT_CLASS_MAX                                = 0xff\n\tRT_CLASS_UNSPEC                             = 0x0\n\tRUSAGE_CHILDREN                             = -0x1\n\tRUSAGE_SELF                                 = 0x0\n\tRUSAGE_THREAD                               = 0x1\n\tRWF_APPEND                                  = 0x10\n\tRWF_ATOMIC                                  = 0x40\n\tRWF_DONTCACHE                               = 0x80\n\tRWF_DSYNC                                   = 0x2\n\tRWF_HIPRI                                   = 0x1\n\tRWF_NOAPPEND                                = 0x20\n\tRWF_NOWAIT                                  = 0x8\n\tRWF_SUPPORTED                               = 0xff\n\tRWF_SYNC                                    = 0x4\n\tRWF_WRITE_LIFE_NOT_SET                      = 0x0\n\tSCHED_BATCH                                 = 0x3\n\tSCHED_DEADLINE                              = 0x6\n\tSCHED_EXT                                   = 0x7\n\tSCHED_FIFO                                  = 0x1\n\tSCHED_FLAG_ALL                              = 0x7f\n\tSCHED_FLAG_DL_OVERRUN                       = 0x4\n\tSCHED_FLAG_KEEP_ALL                         = 0x18\n\tSCHED_FLAG_KEEP_PARAMS                      = 0x10\n\tSCHED_FLAG_KEEP_POLICY                      = 0x8\n\tSCHED_FLAG_RECLAIM                          = 0x2\n\tSCHED_FLAG_RESET_ON_FORK                    = 0x1\n\tSCHED_FLAG_UTIL_CLAMP                       = 0x60\n\tSCHED_FLAG_UTIL_CLAMP_MAX                   = 0x40\n\tSCHED_FLAG_UTIL_CLAMP_MIN                   = 0x20\n\tSCHED_IDLE                                  = 0x5\n\tSCHED_NORMAL                                = 0x0\n\tSCHED_RESET_ON_FORK                         = 0x40000000\n\tSCHED_RR                                    = 0x2\n\tSCM_CREDENTIALS                             = 0x2\n\tSCM_PIDFD                                   = 0x4\n\tSCM_RIGHTS                                  = 0x1\n\tSCM_SECURITY                                = 0x3\n\tSCM_TIMESTAMP                               = 0x1d\n\tSC_LOG_FLUSH                                = 0x100000\n\tSECCOMP_ADDFD_FLAG_SEND                     = 0x2\n\tSECCOMP_ADDFD_FLAG_SETFD                    = 0x1\n\tSECCOMP_FILTER_FLAG_LOG                     = 0x2\n\tSECCOMP_FILTER_FLAG_NEW_LISTENER            = 0x8\n\tSECCOMP_FILTER_FLAG_SPEC_ALLOW              = 0x4\n\tSECCOMP_FILTER_FLAG_TSYNC                   = 0x1\n\tSECCOMP_FILTER_FLAG_TSYNC_ESRCH             = 0x10\n\tSECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV      = 0x20\n\tSECCOMP_GET_ACTION_AVAIL                    = 0x2\n\tSECCOMP_GET_NOTIF_SIZES                     = 0x3\n\tSECCOMP_IOCTL_NOTIF_RECV                    = 0xc0502100\n\tSECCOMP_IOCTL_NOTIF_SEND                    = 0xc0182101\n\tSECCOMP_IOC_MAGIC                           = '!'\n\tSECCOMP_MODE_DISABLED                       = 0x0\n\tSECCOMP_MODE_FILTER                         = 0x2\n\tSECCOMP_MODE_STRICT                         = 0x1\n\tSECCOMP_RET_ACTION                          = 0x7fff0000\n\tSECCOMP_RET_ACTION_FULL                     = 0xffff0000\n\tSECCOMP_RET_ALLOW                           = 0x7fff0000\n\tSECCOMP_RET_DATA                            = 0xffff\n\tSECCOMP_RET_ERRNO                           = 0x50000\n\tSECCOMP_RET_KILL                            = 0x0\n\tSECCOMP_RET_KILL_PROCESS                    = 0x80000000\n\tSECCOMP_RET_KILL_THREAD                     = 0x0\n\tSECCOMP_RET_LOG                             = 0x7ffc0000\n\tSECCOMP_RET_TRACE                           = 0x7ff00000\n\tSECCOMP_RET_TRAP                            = 0x30000\n\tSECCOMP_RET_USER_NOTIF                      = 0x7fc00000\n\tSECCOMP_SET_MODE_FILTER                     = 0x1\n\tSECCOMP_SET_MODE_STRICT                     = 0x0\n\tSECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP          = 0x1\n\tSECCOMP_USER_NOTIF_FLAG_CONTINUE            = 0x1\n\tSECRETMEM_MAGIC                             = 0x5345434d\n\tSECURITYFS_MAGIC                            = 0x73636673\n\tSEEK_CUR                                    = 0x1\n\tSEEK_DATA                                   = 0x3\n\tSEEK_END                                    = 0x2\n\tSEEK_HOLE                                   = 0x4\n\tSEEK_MAX                                    = 0x4\n\tSEEK_SET                                    = 0x0\n\tSELINUX_MAGIC                               = 0xf97cff8c\n\tSHF_ALLOC                                   = 0x2\n\tSHF_EXCLUDE                                 = 0x8000000\n\tSHF_EXECINSTR                               = 0x4\n\tSHF_GROUP                                   = 0x200\n\tSHF_INFO_LINK                               = 0x40\n\tSHF_LINK_ORDER                              = 0x80\n\tSHF_MASKOS                                  = 0xff00000\n\tSHF_MASKPROC                                = 0xf0000000\n\tSHF_MERGE                                   = 0x10\n\tSHF_ORDERED                                 = 0x4000000\n\tSHF_OS_NONCONFORMING                        = 0x100\n\tSHF_RELA_LIVEPATCH                          = 0x100000\n\tSHF_RO_AFTER_INIT                           = 0x200000\n\tSHF_STRINGS                                 = 0x20\n\tSHF_TLS                                     = 0x400\n\tSHF_WRITE                                   = 0x1\n\tSHN_ABS                                     = 0xfff1\n\tSHN_COMMON                                  = 0xfff2\n\tSHN_HIPROC                                  = 0xff1f\n\tSHN_HIRESERVE                               = 0xffff\n\tSHN_LIVEPATCH                               = 0xff20\n\tSHN_LOPROC                                  = 0xff00\n\tSHN_LORESERVE                               = 0xff00\n\tSHN_UNDEF                                   = 0x0\n\tSHT_DYNAMIC                                 = 0x6\n\tSHT_DYNSYM                                  = 0xb\n\tSHT_HASH                                    = 0x5\n\tSHT_HIPROC                                  = 0x7fffffff\n\tSHT_HIUSER                                  = 0xffffffff\n\tSHT_LOPROC                                  = 0x70000000\n\tSHT_LOUSER                                  = 0x80000000\n\tSHT_NOBITS                                  = 0x8\n\tSHT_NOTE                                    = 0x7\n\tSHT_NULL                                    = 0x0\n\tSHT_NUM                                     = 0xc\n\tSHT_PROGBITS                                = 0x1\n\tSHT_REL                                     = 0x9\n\tSHT_RELA                                    = 0x4\n\tSHT_SHLIB                                   = 0xa\n\tSHT_STRTAB                                  = 0x3\n\tSHT_SYMTAB                                  = 0x2\n\tSHUT_RD                                     = 0x0\n\tSHUT_RDWR                                   = 0x2\n\tSHUT_WR                                     = 0x1\n\tSIOCADDDLCI                                 = 0x8980\n\tSIOCADDMULTI                                = 0x8931\n\tSIOCADDRT                                   = 0x890b\n\tSIOCBONDCHANGEACTIVE                        = 0x8995\n\tSIOCBONDENSLAVE                             = 0x8990\n\tSIOCBONDINFOQUERY                           = 0x8994\n\tSIOCBONDRELEASE                             = 0x8991\n\tSIOCBONDSETHWADDR                           = 0x8992\n\tSIOCBONDSLAVEINFOQUERY                      = 0x8993\n\tSIOCBRADDBR                                 = 0x89a0\n\tSIOCBRADDIF                                 = 0x89a2\n\tSIOCBRDELBR                                 = 0x89a1\n\tSIOCBRDELIF                                 = 0x89a3\n\tSIOCDARP                                    = 0x8953\n\tSIOCDELDLCI                                 = 0x8981\n\tSIOCDELMULTI                                = 0x8932\n\tSIOCDELRT                                   = 0x890c\n\tSIOCDEVPRIVATE                              = 0x89f0\n\tSIOCDIFADDR                                 = 0x8936\n\tSIOCDRARP                                   = 0x8960\n\tSIOCETHTOOL                                 = 0x8946\n\tSIOCGARP                                    = 0x8954\n\tSIOCGETLINKNAME                             = 0x89e0\n\tSIOCGETNODEID                               = 0x89e1\n\tSIOCGHWTSTAMP                               = 0x89b1\n\tSIOCGIFADDR                                 = 0x8915\n\tSIOCGIFBR                                   = 0x8940\n\tSIOCGIFBRDADDR                              = 0x8919\n\tSIOCGIFCONF                                 = 0x8912\n\tSIOCGIFCOUNT                                = 0x8938\n\tSIOCGIFDSTADDR                              = 0x8917\n\tSIOCGIFENCAP                                = 0x8925\n\tSIOCGIFFLAGS                                = 0x8913\n\tSIOCGIFHWADDR                               = 0x8927\n\tSIOCGIFINDEX                                = 0x8933\n\tSIOCGIFMAP                                  = 0x8970\n\tSIOCGIFMEM                                  = 0x891f\n\tSIOCGIFMETRIC                               = 0x891d\n\tSIOCGIFMTU                                  = 0x8921\n\tSIOCGIFNAME                                 = 0x8910\n\tSIOCGIFNETMASK                              = 0x891b\n\tSIOCGIFPFLAGS                               = 0x8935\n\tSIOCGIFSLAVE                                = 0x8929\n\tSIOCGIFTXQLEN                               = 0x8942\n\tSIOCGIFVLAN                                 = 0x8982\n\tSIOCGMIIPHY                                 = 0x8947\n\tSIOCGMIIREG                                 = 0x8948\n\tSIOCGPPPCSTATS                              = 0x89f2\n\tSIOCGPPPSTATS                               = 0x89f0\n\tSIOCGPPPVER                                 = 0x89f1\n\tSIOCGRARP                                   = 0x8961\n\tSIOCGSKNS                                   = 0x894c\n\tSIOCGSTAMP                                  = 0x8906\n\tSIOCGSTAMPNS                                = 0x8907\n\tSIOCGSTAMPNS_OLD                            = 0x8907\n\tSIOCGSTAMP_OLD                              = 0x8906\n\tSIOCKCMATTACH                               = 0x89e0\n\tSIOCKCMCLONE                                = 0x89e2\n\tSIOCKCMUNATTACH                             = 0x89e1\n\tSIOCOUTQNSD                                 = 0x894b\n\tSIOCPROTOPRIVATE                            = 0x89e0\n\tSIOCRTMSG                                   = 0x890d\n\tSIOCSARP                                    = 0x8955\n\tSIOCSHWTSTAMP                               = 0x89b0\n\tSIOCSIFADDR                                 = 0x8916\n\tSIOCSIFBR                                   = 0x8941\n\tSIOCSIFBRDADDR                              = 0x891a\n\tSIOCSIFDSTADDR                              = 0x8918\n\tSIOCSIFENCAP                                = 0x8926\n\tSIOCSIFFLAGS                                = 0x8914\n\tSIOCSIFHWADDR                               = 0x8924\n\tSIOCSIFHWBROADCAST                          = 0x8937\n\tSIOCSIFLINK                                 = 0x8911\n\tSIOCSIFMAP                                  = 0x8971\n\tSIOCSIFMEM                                  = 0x8920\n\tSIOCSIFMETRIC                               = 0x891e\n\tSIOCSIFMTU                                  = 0x8922\n\tSIOCSIFNAME                                 = 0x8923\n\tSIOCSIFNETMASK                              = 0x891c\n\tSIOCSIFPFLAGS                               = 0x8934\n\tSIOCSIFSLAVE                                = 0x8930\n\tSIOCSIFTXQLEN                               = 0x8943\n\tSIOCSIFVLAN                                 = 0x8983\n\tSIOCSMIIREG                                 = 0x8949\n\tSIOCSRARP                                   = 0x8962\n\tSIOCWANDEV                                  = 0x894a\n\tSK_DIAG_BPF_STORAGE_MAX                     = 0x3\n\tSK_DIAG_BPF_STORAGE_REQ_MAX                 = 0x1\n\tSMACK_MAGIC                                 = 0x43415d53\n\tSMART_AUTOSAVE                              = 0xd2\n\tSMART_AUTO_OFFLINE                          = 0xdb\n\tSMART_DISABLE                               = 0xd9\n\tSMART_ENABLE                                = 0xd8\n\tSMART_HCYL_PASS                             = 0xc2\n\tSMART_IMMEDIATE_OFFLINE                     = 0xd4\n\tSMART_LCYL_PASS                             = 0x4f\n\tSMART_READ_LOG_SECTOR                       = 0xd5\n\tSMART_READ_THRESHOLDS                       = 0xd1\n\tSMART_READ_VALUES                           = 0xd0\n\tSMART_SAVE                                  = 0xd3\n\tSMART_STATUS                                = 0xda\n\tSMART_WRITE_LOG_SECTOR                      = 0xd6\n\tSMART_WRITE_THRESHOLDS                      = 0xd7\n\tSMB2_SUPER_MAGIC                            = 0xfe534d42\n\tSMB_SUPER_MAGIC                             = 0x517b\n\tSOCKFS_MAGIC                                = 0x534f434b\n\tSOCK_BUF_LOCK_MASK                          = 0x3\n\tSOCK_DCCP                                   = 0x6\n\tSOCK_DESTROY                                = 0x15\n\tSOCK_DIAG_BY_FAMILY                         = 0x14\n\tSOCK_IOC_TYPE                               = 0x89\n\tSOCK_PACKET                                 = 0xa\n\tSOCK_RAW                                    = 0x3\n\tSOCK_RCVBUF_LOCK                            = 0x2\n\tSOCK_RDM                                    = 0x4\n\tSOCK_SEQPACKET                              = 0x5\n\tSOCK_SNDBUF_LOCK                            = 0x1\n\tSOCK_TXREHASH_DEFAULT                       = 0xff\n\tSOCK_TXREHASH_DISABLED                      = 0x0\n\tSOCK_TXREHASH_ENABLED                       = 0x1\n\tSOL_AAL                                     = 0x109\n\tSOL_ALG                                     = 0x117\n\tSOL_ATM                                     = 0x108\n\tSOL_CAIF                                    = 0x116\n\tSOL_CAN_BASE                                = 0x64\n\tSOL_CAN_RAW                                 = 0x65\n\tSOL_DCCP                                    = 0x10d\n\tSOL_DECNET                                  = 0x105\n\tSOL_ICMPV6                                  = 0x3a\n\tSOL_IP                                      = 0x0\n\tSOL_IPV6                                    = 0x29\n\tSOL_IRDA                                    = 0x10a\n\tSOL_IUCV                                    = 0x115\n\tSOL_KCM                                     = 0x119\n\tSOL_LLC                                     = 0x10c\n\tSOL_MCTP                                    = 0x11d\n\tSOL_MPTCP                                   = 0x11c\n\tSOL_NETBEUI                                 = 0x10b\n\tSOL_NETLINK                                 = 0x10e\n\tSOL_NFC                                     = 0x118\n\tSOL_PACKET                                  = 0x107\n\tSOL_PNPIPE                                  = 0x113\n\tSOL_PPPOL2TP                                = 0x111\n\tSOL_RAW                                     = 0xff\n\tSOL_RDS                                     = 0x114\n\tSOL_RXRPC                                   = 0x110\n\tSOL_SMC                                     = 0x11e\n\tSOL_TCP                                     = 0x6\n\tSOL_TIPC                                    = 0x10f\n\tSOL_TLS                                     = 0x11a\n\tSOL_UDP                                     = 0x11\n\tSOL_VSOCK                                   = 0x11f\n\tSOL_X25                                     = 0x106\n\tSOL_XDP                                     = 0x11b\n\tSOMAXCONN                                   = 0x1000\n\tSO_ATTACH_FILTER                            = 0x1a\n\tSO_DEBUG                                    = 0x1\n\tSO_DETACH_BPF                               = 0x1b\n\tSO_DETACH_FILTER                            = 0x1b\n\tSO_EE_CODE_TXTIME_INVALID_PARAM             = 0x1\n\tSO_EE_CODE_TXTIME_MISSED                    = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED                  = 0x1\n\tSO_EE_ORIGIN_ICMP                           = 0x2\n\tSO_EE_ORIGIN_ICMP6                          = 0x3\n\tSO_EE_ORIGIN_LOCAL                          = 0x1\n\tSO_EE_ORIGIN_NONE                           = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING                   = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                       = 0x4\n\tSO_EE_ORIGIN_TXTIME                         = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                       = 0x5\n\tSO_EE_RFC4884_FLAG_INVALID                  = 0x1\n\tSO_GET_FILTER                               = 0x1a\n\tSO_NO_CHECK                                 = 0xb\n\tSO_PEERNAME                                 = 0x1c\n\tSO_PRIORITY                                 = 0xc\n\tSO_TIMESTAMP                                = 0x1d\n\tSO_TIMESTAMP_OLD                            = 0x1d\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE               = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE               = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE                   = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT               = 0x6\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_NEW           = 0x8\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_OLD           = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX                 = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID               = 0x3\n\tSO_VM_SOCKETS_TRUSTED                       = 0x5\n\tSPLICE_F_GIFT                               = 0x8\n\tSPLICE_F_MORE                               = 0x4\n\tSPLICE_F_MOVE                               = 0x1\n\tSPLICE_F_NONBLOCK                           = 0x2\n\tSQUASHFS_MAGIC                              = 0x73717368\n\tSTACK_END_MAGIC                             = 0x57ac6e9d\n\tSTATX_ALL                                   = 0xfff\n\tSTATX_ATIME                                 = 0x20\n\tSTATX_ATTR_APPEND                           = 0x20\n\tSTATX_ATTR_AUTOMOUNT                        = 0x1000\n\tSTATX_ATTR_COMPRESSED                       = 0x4\n\tSTATX_ATTR_DAX                              = 0x200000\n\tSTATX_ATTR_ENCRYPTED                        = 0x800\n\tSTATX_ATTR_IMMUTABLE                        = 0x10\n\tSTATX_ATTR_MOUNT_ROOT                       = 0x2000\n\tSTATX_ATTR_NODUMP                           = 0x40\n\tSTATX_ATTR_VERITY                           = 0x100000\n\tSTATX_ATTR_WRITE_ATOMIC                     = 0x400000\n\tSTATX_BASIC_STATS                           = 0x7ff\n\tSTATX_BLOCKS                                = 0x400\n\tSTATX_BTIME                                 = 0x800\n\tSTATX_CTIME                                 = 0x80\n\tSTATX_DIOALIGN                              = 0x2000\n\tSTATX_DIO_READ_ALIGN                        = 0x20000\n\tSTATX_GID                                   = 0x10\n\tSTATX_INO                                   = 0x100\n\tSTATX_MNT_ID                                = 0x1000\n\tSTATX_MNT_ID_UNIQUE                         = 0x4000\n\tSTATX_MODE                                  = 0x2\n\tSTATX_MTIME                                 = 0x40\n\tSTATX_NLINK                                 = 0x4\n\tSTATX_SIZE                                  = 0x200\n\tSTATX_SUBVOL                                = 0x8000\n\tSTATX_TYPE                                  = 0x1\n\tSTATX_UID                                   = 0x8\n\tSTATX_WRITE_ATOMIC                          = 0x10000\n\tSTATX__RESERVED                             = 0x80000000\n\tSTB_GLOBAL                                  = 0x1\n\tSTB_LOCAL                                   = 0x0\n\tSTB_WEAK                                    = 0x2\n\tSTT_COMMON                                  = 0x5\n\tSTT_FILE                                    = 0x4\n\tSTT_FUNC                                    = 0x2\n\tSTT_NOTYPE                                  = 0x0\n\tSTT_OBJECT                                  = 0x1\n\tSTT_SECTION                                 = 0x3\n\tSTT_TLS                                     = 0x6\n\tSYNC_FILE_RANGE_WAIT_AFTER                  = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1\n\tSYNC_FILE_RANGE_WRITE                       = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT              = 0x7\n\tSYSFS_MAGIC                                 = 0x62656572\n\tS_BLKSIZE                                   = 0x200\n\tS_IEXEC                                     = 0x40\n\tS_IFBLK                                     = 0x6000\n\tS_IFCHR                                     = 0x2000\n\tS_IFDIR                                     = 0x4000\n\tS_IFIFO                                     = 0x1000\n\tS_IFLNK                                     = 0xa000\n\tS_IFMT                                      = 0xf000\n\tS_IFREG                                     = 0x8000\n\tS_IFSOCK                                    = 0xc000\n\tS_IREAD                                     = 0x100\n\tS_IRGRP                                     = 0x20\n\tS_IROTH                                     = 0x4\n\tS_IRUSR                                     = 0x100\n\tS_IRWXG                                     = 0x38\n\tS_IRWXO                                     = 0x7\n\tS_IRWXU                                     = 0x1c0\n\tS_ISGID                                     = 0x400\n\tS_ISUID                                     = 0x800\n\tS_ISVTX                                     = 0x200\n\tS_IWGRP                                     = 0x10\n\tS_IWOTH                                     = 0x2\n\tS_IWRITE                                    = 0x80\n\tS_IWUSR                                     = 0x80\n\tS_IXGRP                                     = 0x8\n\tS_IXOTH                                     = 0x1\n\tS_IXUSR                                     = 0x40\n\tTAB0                                        = 0x0\n\tTASKSTATS_CMD_ATTR_MAX                      = 0x4\n\tTASKSTATS_CMD_MAX                           = 0x2\n\tTASKSTATS_GENL_NAME                         = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION                      = 0x1\n\tTASKSTATS_TYPE_MAX                          = 0x6\n\tTASKSTATS_VERSION                           = 0x10\n\tTCIFLUSH                                    = 0x0\n\tTCIOFF                                      = 0x2\n\tTCIOFLUSH                                   = 0x2\n\tTCION                                       = 0x3\n\tTCOFLUSH                                    = 0x1\n\tTCOOFF                                      = 0x0\n\tTCOON                                       = 0x1\n\tTCPOPT_EOL                                  = 0x0\n\tTCPOPT_MAXSEG                               = 0x2\n\tTCPOPT_NOP                                  = 0x1\n\tTCPOPT_SACK                                 = 0x5\n\tTCPOPT_SACK_PERMITTED                       = 0x4\n\tTCPOPT_TIMESTAMP                            = 0x8\n\tTCPOPT_TSTAMP_HDR                           = 0x101080a\n\tTCPOPT_WINDOW                               = 0x3\n\tTCP_CC_INFO                                 = 0x1a\n\tTCP_CM_INQ                                  = 0x24\n\tTCP_CONGESTION                              = 0xd\n\tTCP_COOKIE_IN_ALWAYS                        = 0x1\n\tTCP_COOKIE_MAX                              = 0x10\n\tTCP_COOKIE_MIN                              = 0x8\n\tTCP_COOKIE_OUT_NEVER                        = 0x2\n\tTCP_COOKIE_PAIR_SIZE                        = 0x20\n\tTCP_COOKIE_TRANSACTIONS                     = 0xf\n\tTCP_CORK                                    = 0x3\n\tTCP_DEFER_ACCEPT                            = 0x9\n\tTCP_FASTOPEN                                = 0x17\n\tTCP_FASTOPEN_CONNECT                        = 0x1e\n\tTCP_FASTOPEN_KEY                            = 0x21\n\tTCP_FASTOPEN_NO_COOKIE                      = 0x22\n\tTCP_INFO                                    = 0xb\n\tTCP_INQ                                     = 0x24\n\tTCP_KEEPCNT                                 = 0x6\n\tTCP_KEEPIDLE                                = 0x4\n\tTCP_KEEPINTVL                               = 0x5\n\tTCP_LINGER2                                 = 0x8\n\tTCP_MAXSEG                                  = 0x2\n\tTCP_MAXWIN                                  = 0xffff\n\tTCP_MAX_WINSHIFT                            = 0xe\n\tTCP_MD5SIG                                  = 0xe\n\tTCP_MD5SIG_EXT                              = 0x20\n\tTCP_MD5SIG_FLAG_IFINDEX                     = 0x2\n\tTCP_MD5SIG_FLAG_PREFIX                      = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                        = 0x50\n\tTCP_MSS                                     = 0x200\n\tTCP_MSS_DEFAULT                             = 0x218\n\tTCP_MSS_DESIRED                             = 0x4c4\n\tTCP_NODELAY                                 = 0x1\n\tTCP_NOTSENT_LOWAT                           = 0x19\n\tTCP_QUEUE_SEQ                               = 0x15\n\tTCP_QUICKACK                                = 0xc\n\tTCP_REPAIR                                  = 0x13\n\tTCP_REPAIR_OFF                              = 0x0\n\tTCP_REPAIR_OFF_NO_WP                        = -0x1\n\tTCP_REPAIR_ON                               = 0x1\n\tTCP_REPAIR_OPTIONS                          = 0x16\n\tTCP_REPAIR_QUEUE                            = 0x14\n\tTCP_REPAIR_WINDOW                           = 0x1d\n\tTCP_SAVED_SYN                               = 0x1c\n\tTCP_SAVE_SYN                                = 0x1b\n\tTCP_SYNCNT                                  = 0x7\n\tTCP_S_DATA_IN                               = 0x4\n\tTCP_S_DATA_OUT                              = 0x8\n\tTCP_THIN_DUPACK                             = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS                    = 0x10\n\tTCP_TIMESTAMP                               = 0x18\n\tTCP_TX_DELAY                                = 0x25\n\tTCP_ULP                                     = 0x1f\n\tTCP_USER_TIMEOUT                            = 0x12\n\tTCP_WINDOW_CLAMP                            = 0xa\n\tTCP_ZEROCOPY_RECEIVE                        = 0x23\n\tTFD_TIMER_ABSTIME                           = 0x1\n\tTFD_TIMER_CANCEL_ON_SET                     = 0x2\n\tTIMER_ABSTIME                               = 0x1\n\tTIOCM_DTR                                   = 0x2\n\tTIOCM_LE                                    = 0x1\n\tTIOCM_RTS                                   = 0x4\n\tTIOCPKT_DATA                                = 0x0\n\tTIOCPKT_DOSTOP                              = 0x20\n\tTIOCPKT_FLUSHREAD                           = 0x1\n\tTIOCPKT_FLUSHWRITE                          = 0x2\n\tTIOCPKT_IOCTL                               = 0x40\n\tTIOCPKT_NOSTOP                              = 0x10\n\tTIOCPKT_START                               = 0x8\n\tTIOCPKT_STOP                                = 0x4\n\tTIPC_ADDR_ID                                = 0x3\n\tTIPC_ADDR_MCAST                             = 0x1\n\tTIPC_ADDR_NAME                              = 0x2\n\tTIPC_ADDR_NAMESEQ                           = 0x1\n\tTIPC_AEAD_ALG_NAME                          = 0x20\n\tTIPC_AEAD_KEYLEN_MAX                        = 0x24\n\tTIPC_AEAD_KEYLEN_MIN                        = 0x14\n\tTIPC_AEAD_KEY_SIZE_MAX                      = 0x48\n\tTIPC_CFG_SRV                                = 0x0\n\tTIPC_CLUSTER_BITS                           = 0xc\n\tTIPC_CLUSTER_MASK                           = 0xfff000\n\tTIPC_CLUSTER_OFFSET                         = 0xc\n\tTIPC_CLUSTER_SIZE                           = 0xfff\n\tTIPC_CONN_SHUTDOWN                          = 0x5\n\tTIPC_CONN_TIMEOUT                           = 0x82\n\tTIPC_CRITICAL_IMPORTANCE                    = 0x3\n\tTIPC_DESTNAME                               = 0x3\n\tTIPC_DEST_DROPPABLE                         = 0x81\n\tTIPC_ERRINFO                                = 0x1\n\tTIPC_ERR_NO_NAME                            = 0x1\n\tTIPC_ERR_NO_NODE                            = 0x3\n\tTIPC_ERR_NO_PORT                            = 0x2\n\tTIPC_ERR_OVERLOAD                           = 0x4\n\tTIPC_GROUP_JOIN                             = 0x87\n\tTIPC_GROUP_LEAVE                            = 0x88\n\tTIPC_GROUP_LOOPBACK                         = 0x1\n\tTIPC_GROUP_MEMBER_EVTS                      = 0x2\n\tTIPC_HIGH_IMPORTANCE                        = 0x2\n\tTIPC_IMPORTANCE                             = 0x7f\n\tTIPC_LINK_STATE                             = 0x2\n\tTIPC_LOW_IMPORTANCE                         = 0x0\n\tTIPC_MAX_BEARER_NAME                        = 0x20\n\tTIPC_MAX_IF_NAME                            = 0x10\n\tTIPC_MAX_LINK_NAME                          = 0x44\n\tTIPC_MAX_MEDIA_NAME                         = 0x10\n\tTIPC_MAX_USER_MSG_SIZE                      = 0x101d0\n\tTIPC_MCAST_BROADCAST                        = 0x85\n\tTIPC_MCAST_REPLICAST                        = 0x86\n\tTIPC_MEDIUM_IMPORTANCE                      = 0x1\n\tTIPC_NODEID_LEN                             = 0x10\n\tTIPC_NODELAY                                = 0x8a\n\tTIPC_NODE_BITS                              = 0xc\n\tTIPC_NODE_MASK                              = 0xfff\n\tTIPC_NODE_OFFSET                            = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                       = 0x83\n\tTIPC_NODE_SIZE                              = 0xfff\n\tTIPC_NODE_STATE                             = 0x0\n\tTIPC_OK                                     = 0x0\n\tTIPC_PUBLISHED                              = 0x1\n\tTIPC_REKEYING_NOW                           = 0xffffffff\n\tTIPC_RESERVED_TYPES                         = 0x40\n\tTIPC_RETDATA                                = 0x2\n\tTIPC_SERVICE_ADDR                           = 0x2\n\tTIPC_SERVICE_RANGE                          = 0x1\n\tTIPC_SOCKET_ADDR                            = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                       = 0x84\n\tTIPC_SOCK_RECVQ_USED                        = 0x89\n\tTIPC_SRC_DROPPABLE                          = 0x80\n\tTIPC_SUBSCR_TIMEOUT                         = 0x3\n\tTIPC_SUB_CANCEL                             = 0x4\n\tTIPC_SUB_PORTS                              = 0x1\n\tTIPC_SUB_SERVICE                            = 0x2\n\tTIPC_TOP_SRV                                = 0x1\n\tTIPC_WAIT_FOREVER                           = 0xffffffff\n\tTIPC_WITHDRAWN                              = 0x2\n\tTIPC_ZONE_BITS                              = 0x8\n\tTIPC_ZONE_CLUSTER_MASK                      = 0xfffff000\n\tTIPC_ZONE_MASK                              = 0xff000000\n\tTIPC_ZONE_OFFSET                            = 0x18\n\tTIPC_ZONE_SCOPE                             = 0x1\n\tTIPC_ZONE_SIZE                              = 0xff\n\tTMPFS_MAGIC                                 = 0x1021994\n\tTPACKET_ALIGNMENT                           = 0x10\n\tTPACKET_HDRLEN                              = 0x34\n\tTP_STATUS_AVAILABLE                         = 0x0\n\tTP_STATUS_BLK_TMO                           = 0x20\n\tTP_STATUS_COPY                              = 0x2\n\tTP_STATUS_CSUMNOTREADY                      = 0x8\n\tTP_STATUS_CSUM_VALID                        = 0x80\n\tTP_STATUS_GSO_TCP                           = 0x100\n\tTP_STATUS_KERNEL                            = 0x0\n\tTP_STATUS_LOSING                            = 0x4\n\tTP_STATUS_SENDING                           = 0x2\n\tTP_STATUS_SEND_REQUEST                      = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE                   = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                       = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE                   = 0x40000000\n\tTP_STATUS_USER                              = 0x1\n\tTP_STATUS_VLAN_TPID_VALID                   = 0x40\n\tTP_STATUS_VLAN_VALID                        = 0x10\n\tTP_STATUS_WRONG_FORMAT                      = 0x4\n\tTRACEFS_MAGIC                               = 0x74726163\n\tTS_COMM_LEN                                 = 0x20\n\tUBI_IOCECNFO                                = 0xc01c6f06\n\tUDF_SUPER_MAGIC                             = 0x15013346\n\tUDP_CORK                                    = 0x1\n\tUDP_ENCAP                                   = 0x64\n\tUDP_ENCAP_ESPINUDP                          = 0x2\n\tUDP_ENCAP_ESPINUDP_NON_IKE                  = 0x1\n\tUDP_ENCAP_GTP0                              = 0x4\n\tUDP_ENCAP_GTP1U                             = 0x5\n\tUDP_ENCAP_L2TPINUDP                         = 0x3\n\tUDP_GRO                                     = 0x68\n\tUDP_NO_CHECK6_RX                            = 0x66\n\tUDP_NO_CHECK6_TX                            = 0x65\n\tUDP_SEGMENT                                 = 0x67\n\tUMOUNT_NOFOLLOW                             = 0x8\n\tUSBDEVICE_SUPER_MAGIC                       = 0x9fa2\n\tUTIME_NOW                                   = 0x3fffffff\n\tUTIME_OMIT                                  = 0x3ffffffe\n\tV9FS_MAGIC                                  = 0x1021997\n\tVERASE                                      = 0x2\n\tVER_FLG_BASE                                = 0x1\n\tVER_FLG_WEAK                                = 0x2\n\tVINTR                                       = 0x0\n\tVKILL                                       = 0x3\n\tVLNEXT                                      = 0xf\n\tVMADDR_CID_ANY                              = 0xffffffff\n\tVMADDR_CID_HOST                             = 0x2\n\tVMADDR_CID_HYPERVISOR                       = 0x0\n\tVMADDR_CID_LOCAL                            = 0x1\n\tVMADDR_FLAG_TO_HOST                         = 0x1\n\tVMADDR_PORT_ANY                             = 0xffffffff\n\tVM_SOCKETS_INVALID_VERSION                  = 0xffffffff\n\tVQUIT                                       = 0x1\n\tVT0                                         = 0x0\n\tWAKE_MAGIC                                  = 0x20\n\tWALL                                        = 0x40000000\n\tWCLONE                                      = 0x80000000\n\tWCONTINUED                                  = 0x8\n\tWDIOC_SETPRETIMEOUT                         = 0xc0045708\n\tWDIOC_SETTIMEOUT                            = 0xc0045706\n\tWDIOF_ALARMONLY                             = 0x400\n\tWDIOF_CARDRESET                             = 0x20\n\tWDIOF_EXTERN1                               = 0x4\n\tWDIOF_EXTERN2                               = 0x8\n\tWDIOF_FANFAULT                              = 0x2\n\tWDIOF_KEEPALIVEPING                         = 0x8000\n\tWDIOF_MAGICCLOSE                            = 0x100\n\tWDIOF_OVERHEAT                              = 0x1\n\tWDIOF_POWEROVER                             = 0x40\n\tWDIOF_POWERUNDER                            = 0x10\n\tWDIOF_PRETIMEOUT                            = 0x200\n\tWDIOF_SETTIMEOUT                            = 0x80\n\tWDIOF_UNKNOWN                               = -0x1\n\tWDIOS_DISABLECARD                           = 0x1\n\tWDIOS_ENABLECARD                            = 0x2\n\tWDIOS_TEMPPANIC                             = 0x4\n\tWDIOS_UNKNOWN                               = -0x1\n\tWEXITED                                     = 0x4\n\tWGALLOWEDIP_A_MAX                           = 0x4\n\tWGDEVICE_A_MAX                              = 0x8\n\tWGPEER_A_MAX                                = 0xa\n\tWG_CMD_MAX                                  = 0x1\n\tWG_GENL_NAME                                = \"wireguard\"\n\tWG_GENL_VERSION                             = 0x1\n\tWG_KEY_LEN                                  = 0x20\n\tWIN_ACKMEDIACHANGE                          = 0xdb\n\tWIN_CHECKPOWERMODE1                         = 0xe5\n\tWIN_CHECKPOWERMODE2                         = 0x98\n\tWIN_DEVICE_RESET                            = 0x8\n\tWIN_DIAGNOSE                                = 0x90\n\tWIN_DOORLOCK                                = 0xde\n\tWIN_DOORUNLOCK                              = 0xdf\n\tWIN_DOWNLOAD_MICROCODE                      = 0x92\n\tWIN_FLUSH_CACHE                             = 0xe7\n\tWIN_FLUSH_CACHE_EXT                         = 0xea\n\tWIN_FORMAT                                  = 0x50\n\tWIN_GETMEDIASTATUS                          = 0xda\n\tWIN_IDENTIFY                                = 0xec\n\tWIN_IDENTIFY_DMA                            = 0xee\n\tWIN_IDLEIMMEDIATE                           = 0xe1\n\tWIN_INIT                                    = 0x60\n\tWIN_MEDIAEJECT                              = 0xed\n\tWIN_MULTREAD                                = 0xc4\n\tWIN_MULTREAD_EXT                            = 0x29\n\tWIN_MULTWRITE                               = 0xc5\n\tWIN_MULTWRITE_EXT                           = 0x39\n\tWIN_NOP                                     = 0x0\n\tWIN_PACKETCMD                               = 0xa0\n\tWIN_PIDENTIFY                               = 0xa1\n\tWIN_POSTBOOT                                = 0xdc\n\tWIN_PREBOOT                                 = 0xdd\n\tWIN_QUEUED_SERVICE                          = 0xa2\n\tWIN_READ                                    = 0x20\n\tWIN_READDMA                                 = 0xc8\n\tWIN_READDMA_EXT                             = 0x25\n\tWIN_READDMA_ONCE                            = 0xc9\n\tWIN_READDMA_QUEUED                          = 0xc7\n\tWIN_READDMA_QUEUED_EXT                      = 0x26\n\tWIN_READ_BUFFER                             = 0xe4\n\tWIN_READ_EXT                                = 0x24\n\tWIN_READ_LONG                               = 0x22\n\tWIN_READ_LONG_ONCE                          = 0x23\n\tWIN_READ_NATIVE_MAX                         = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT                     = 0x27\n\tWIN_READ_ONCE                               = 0x21\n\tWIN_RECAL                                   = 0x10\n\tWIN_RESTORE                                 = 0x10\n\tWIN_SECURITY_DISABLE                        = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE                  = 0xf3\n\tWIN_SECURITY_ERASE_UNIT                     = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK                    = 0xf5\n\tWIN_SECURITY_SET_PASS                       = 0xf1\n\tWIN_SECURITY_UNLOCK                         = 0xf2\n\tWIN_SEEK                                    = 0x70\n\tWIN_SETFEATURES                             = 0xef\n\tWIN_SETIDLE1                                = 0xe3\n\tWIN_SETIDLE2                                = 0x97\n\tWIN_SETMULT                                 = 0xc6\n\tWIN_SET_MAX                                 = 0xf9\n\tWIN_SET_MAX_EXT                             = 0x37\n\tWIN_SLEEPNOW1                               = 0xe6\n\tWIN_SLEEPNOW2                               = 0x99\n\tWIN_SMART                                   = 0xb0\n\tWIN_SPECIFY                                 = 0x91\n\tWIN_SRST                                    = 0x8\n\tWIN_STANDBY                                 = 0xe2\n\tWIN_STANDBY2                                = 0x96\n\tWIN_STANDBYNOW1                             = 0xe0\n\tWIN_STANDBYNOW2                             = 0x94\n\tWIN_VERIFY                                  = 0x40\n\tWIN_VERIFY_EXT                              = 0x42\n\tWIN_VERIFY_ONCE                             = 0x41\n\tWIN_WRITE                                   = 0x30\n\tWIN_WRITEDMA                                = 0xca\n\tWIN_WRITEDMA_EXT                            = 0x35\n\tWIN_WRITEDMA_ONCE                           = 0xcb\n\tWIN_WRITEDMA_QUEUED                         = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT                     = 0x36\n\tWIN_WRITE_BUFFER                            = 0xe8\n\tWIN_WRITE_EXT                               = 0x34\n\tWIN_WRITE_LONG                              = 0x32\n\tWIN_WRITE_LONG_ONCE                         = 0x33\n\tWIN_WRITE_ONCE                              = 0x31\n\tWIN_WRITE_SAME                              = 0xe9\n\tWIN_WRITE_VERIFY                            = 0x3c\n\tWNOHANG                                     = 0x1\n\tWNOTHREAD                                   = 0x20000000\n\tWNOWAIT                                     = 0x1000000\n\tWSTOPPED                                    = 0x2\n\tWUNTRACED                                   = 0x2\n\tXATTR_CREATE                                = 0x1\n\tXATTR_REPLACE                               = 0x2\n\tXDP_COPY                                    = 0x2\n\tXDP_FLAGS_DRV_MODE                          = 0x4\n\tXDP_FLAGS_HW_MODE                           = 0x8\n\tXDP_FLAGS_MASK                              = 0x1f\n\tXDP_FLAGS_MODES                             = 0xe\n\tXDP_FLAGS_REPLACE                           = 0x10\n\tXDP_FLAGS_SKB_MODE                          = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST                 = 0x1\n\tXDP_MMAP_OFFSETS                            = 0x1\n\tXDP_OPTIONS                                 = 0x8\n\tXDP_OPTIONS_ZEROCOPY                        = 0x1\n\tXDP_PACKET_HEADROOM                         = 0x100\n\tXDP_PGOFF_RX_RING                           = 0x0\n\tXDP_PGOFF_TX_RING                           = 0x80000000\n\tXDP_PKT_CONTD                               = 0x1\n\tXDP_RING_NEED_WAKEUP                        = 0x1\n\tXDP_RX_RING                                 = 0x2\n\tXDP_SHARED_UMEM                             = 0x1\n\tXDP_STATISTICS                              = 0x7\n\tXDP_TXMD_FLAGS_CHECKSUM                     = 0x2\n\tXDP_TXMD_FLAGS_LAUNCH_TIME                  = 0x4\n\tXDP_TXMD_FLAGS_TIMESTAMP                    = 0x1\n\tXDP_TX_METADATA                             = 0x2\n\tXDP_TX_RING                                 = 0x3\n\tXDP_UMEM_COMPLETION_RING                    = 0x6\n\tXDP_UMEM_FILL_RING                          = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING                    = 0x100000000\n\tXDP_UMEM_REG                                = 0x4\n\tXDP_UMEM_TX_METADATA_LEN                    = 0x4\n\tXDP_UMEM_TX_SW_CSUM                         = 0x2\n\tXDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1\n\tXDP_USE_NEED_WAKEUP                         = 0x8\n\tXDP_USE_SG                                  = 0x10\n\tXDP_ZEROCOPY                                = 0x4\n\tXENFS_SUPER_MAGIC                           = 0xabba1974\n\tXFS_SUPER_MAGIC                             = 0x58465342\n\tZONEFS_MAGIC                                = 0x5a4f4653\n\t_HIDIOCGRAWNAME_LEN                         = 0x80\n\t_HIDIOCGRAWPHYS_LEN                         = 0x40\n\t_HIDIOCGRAWUNIQ_LEN                         = 0x40\n)\n\n// Errors\nconst (\n\tE2BIG       = syscall.Errno(0x7)\n\tEACCES      = syscall.Errno(0xd)\n\tEAGAIN      = syscall.Errno(0xb)\n\tEBADF       = syscall.Errno(0x9)\n\tEBUSY       = syscall.Errno(0x10)\n\tECHILD      = syscall.Errno(0xa)\n\tEDOM        = syscall.Errno(0x21)\n\tEEXIST      = syscall.Errno(0x11)\n\tEFAULT      = syscall.Errno(0xe)\n\tEFBIG       = syscall.Errno(0x1b)\n\tEINTR       = syscall.Errno(0x4)\n\tEINVAL      = syscall.Errno(0x16)\n\tEIO         = syscall.Errno(0x5)\n\tEISDIR      = syscall.Errno(0x15)\n\tEMFILE      = syscall.Errno(0x18)\n\tEMLINK      = syscall.Errno(0x1f)\n\tENFILE      = syscall.Errno(0x17)\n\tENODEV      = syscall.Errno(0x13)\n\tENOENT      = syscall.Errno(0x2)\n\tENOEXEC     = syscall.Errno(0x8)\n\tENOMEM      = syscall.Errno(0xc)\n\tENOSPC      = syscall.Errno(0x1c)\n\tENOTBLK     = syscall.Errno(0xf)\n\tENOTDIR     = syscall.Errno(0x14)\n\tENOTTY      = syscall.Errno(0x19)\n\tENXIO       = syscall.Errno(0x6)\n\tEPERM       = syscall.Errno(0x1)\n\tEPIPE       = syscall.Errno(0x20)\n\tERANGE      = syscall.Errno(0x22)\n\tEROFS       = syscall.Errno(0x1e)\n\tESPIPE      = syscall.Errno(0x1d)\n\tESRCH       = syscall.Errno(0x3)\n\tETXTBSY     = syscall.Errno(0x1a)\n\tEWOULDBLOCK = syscall.Errno(0xb)\n\tEXDEV       = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT = syscall.Signal(0x6)\n\tSIGALRM = syscall.Signal(0xe)\n\tSIGFPE  = syscall.Signal(0x8)\n\tSIGHUP  = syscall.Signal(0x1)\n\tSIGILL  = syscall.Signal(0x4)\n\tSIGINT  = syscall.Signal(0x2)\n\tSIGIOT  = syscall.Signal(0x6)\n\tSIGKILL = syscall.Signal(0x9)\n\tSIGPIPE = syscall.Signal(0xd)\n\tSIGQUIT = syscall.Signal(0x3)\n\tSIGSEGV = syscall.Signal(0xb)\n\tSIGTERM = syscall.Signal(0xf)\n\tSIGTRAP = syscall.Signal(0x5)\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_386.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc03c4d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x8000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tX86_FXSR_MAGIC                   = 0x0\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_ARCH_PRCTL                = 0x1e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x20000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETCRUNCHREGS             = 0x19\n\tPTRACE_GETFDPIC                  = 0x1f\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETHBPREGS                = 0x1d\n\tPTRACE_GETVFPREGS                = 0x1b\n\tPTRACE_GETWMMXREGS               = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x16\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETCRUNCHREGS             = 0x1a\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETHBPREGS                = 0x1e\n\tPTRACE_SETVFPREGS                = 0x1c\n\tPTRACE_SETWMMXREGS               = 0x13\n\tPTRACE_SET_SYSCALL               = 0x17\n\tPT_DATA_ADDR                     = 0x10004\n\tPT_TEXT_ADDR                     = 0x10000\n\tPT_TEXT_END_ADDR                 = 0x10008\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tESR_MAGIC                        = 0x45535201\n\tEXTPROC                          = 0x10000\n\tEXTRA_MAGIC                      = 0x45585401\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPMR_MAGIC                       = 0x46504d52\n\tFPSIMD_MAGIC                     = 0x46508001\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tGCS_MAGIC                        = 0x47435300\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPOE_MAGIC                        = 0x504f4530\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPROT_BTI                         = 0x10\n\tPROT_MTE                         = 0x20\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_PEEKMTETAGS               = 0x21\n\tPTRACE_POKEMTETAGS               = 0x22\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tSVE_MAGIC                        = 0x53564501\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTPIDR2_MAGIC                     = 0x54504902\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\tZA_MAGIC                         = 0x54366345\n\tZT_MAGIC                         = 0x5a544e01\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPU_CTX_MAGIC                    = 0x46505501\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tLASX_CTX_MAGIC                   = 0x41535801\n\tLBT_CTX_MAGIC                    = 0x42540001\n\tLSX_CTX_MAGIC                    = 0x53580001\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x10000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPR31                         = 0x6e\n\tPT_FPSCR                         = 0x71\n\tPT_LNK                           = 0x24\n\tPT_MQ                            = 0x27\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_TRAP                          = 0x28\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETFDPIC                  = 0x21\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0xfd12\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_DISABLE_TE                = 0x5010\n\tPTRACE_ENABLE_TE                 = 0x5009\n\tPTRACE_GET_LAST_BREAK            = 0x5006\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_AREA             = 0x5003\n\tPTRACE_PEEKTEXT_AREA             = 0x5002\n\tPTRACE_PEEKUSR_AREA              = 0x5000\n\tPTRACE_PEEK_SYSTEM_CALL          = 0x5007\n\tPTRACE_POKEDATA_AREA             = 0x5005\n\tPTRACE_POKETEXT_AREA             = 0x5004\n\tPTRACE_POKEUSR_AREA              = 0x5001\n\tPTRACE_POKE_SYSTEM_CALL          = 0x5008\n\tPTRACE_PROT                      = 0x15\n\tPTRACE_SINGLEBLOCK               = 0xc\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tPTRACE_TE_ABORT_RAND             = 0x5011\n\tPT_ACR0                          = 0x90\n\tPT_ACR1                          = 0x94\n\tPT_ACR10                         = 0xb8\n\tPT_ACR11                         = 0xbc\n\tPT_ACR12                         = 0xc0\n\tPT_ACR13                         = 0xc4\n\tPT_ACR14                         = 0xc8\n\tPT_ACR15                         = 0xcc\n\tPT_ACR2                          = 0x98\n\tPT_ACR3                          = 0x9c\n\tPT_ACR4                          = 0xa0\n\tPT_ACR5                          = 0xa4\n\tPT_ACR6                          = 0xa8\n\tPT_ACR7                          = 0xac\n\tPT_ACR8                          = 0xb0\n\tPT_ACR9                          = 0xb4\n\tPT_CR_10                         = 0x168\n\tPT_CR_11                         = 0x170\n\tPT_CR_9                          = 0x160\n\tPT_ENDREGS                       = 0x1af\n\tPT_FPC                           = 0xd8\n\tPT_FPR0                          = 0xe0\n\tPT_FPR1                          = 0xe8\n\tPT_FPR10                         = 0x130\n\tPT_FPR11                         = 0x138\n\tPT_FPR12                         = 0x140\n\tPT_FPR13                         = 0x148\n\tPT_FPR14                         = 0x150\n\tPT_FPR15                         = 0x158\n\tPT_FPR2                          = 0xf0\n\tPT_FPR3                          = 0xf8\n\tPT_FPR4                          = 0x100\n\tPT_FPR5                          = 0x108\n\tPT_FPR6                          = 0x110\n\tPT_FPR7                          = 0x118\n\tPT_FPR8                          = 0x120\n\tPT_FPR9                          = 0x128\n\tPT_GPR0                          = 0x10\n\tPT_GPR1                          = 0x18\n\tPT_GPR10                         = 0x60\n\tPT_GPR11                         = 0x68\n\tPT_GPR12                         = 0x70\n\tPT_GPR13                         = 0x78\n\tPT_GPR14                         = 0x80\n\tPT_GPR15                         = 0x88\n\tPT_GPR2                          = 0x20\n\tPT_GPR3                          = 0x28\n\tPT_GPR4                          = 0x30\n\tPT_GPR5                          = 0x38\n\tPT_GPR6                          = 0x40\n\tPT_GPR7                          = 0x48\n\tPT_GPR8                          = 0x50\n\tPT_GPR9                          = 0x58\n\tPT_IEEE_IP                       = 0x1a8\n\tPT_LASTOFF                       = 0x1a8\n\tPT_ORIGGPR2                      = 0xd0\n\tPT_PSWADDR                       = 0x8\n\tPT_PSWMASK                       = 0x0\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSRIGHTS                    = 0x53\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVPRIORITY                   = 0x52\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tASI_LEON_DFLUSH                  = 0x11\n\tASI_LEON_IFLUSH                  = 0x10\n\tASI_LEON_MMUFLUSH                = 0x18\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x400000\n\tEFD_NONBLOCK                     = 0x4000\n\tEMT_TAGOVF                       = 0x1\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x400000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x7\n\tF_GETLK64                        = 0x7\n\tF_GETOWN                         = 0x5\n\tF_RDLCK                          = 0x1\n\tF_SETLK                          = 0x8\n\tF_SETLK64                        = 0x8\n\tF_SETLKW                         = 0x9\n\tF_SETLKW64                       = 0x9\n\tF_SETOWN                         = 0x6\n\tF_UNLCK                          = 0x3\n\tF_WRLCK                          = 0x2\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x400000\n\tIN_NONBLOCK                      = 0x4000\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x200\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x100\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_RENAME                       = 0x20\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x40\n\tO_CLOEXEC                        = 0x400000\n\tO_CREAT                          = 0x200\n\tO_DIRECT                         = 0x100000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x2000\n\tO_EXCL                           = 0x800\n\tO_FSYNC                          = 0x802000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x4004\n\tO_NOATIME                        = 0x200000\n\tO_NOCTTY                         = 0x8000\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x4000\n\tO_PATH                           = 0x1000000\n\tO_RSYNC                          = 0x802000\n\tO_SYNC                           = 0x802000\n\tO_TMPFILE                        = 0x2010000\n\tO_TRUNC                          = 0x400\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPAREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPREGS64               = 0x19\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_READDATA                  = 0x10\n\tPTRACE_READTEXT                  = 0x12\n\tPTRACE_SETFPAREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPREGS64               = 0x1a\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SPARC_DETACH              = 0xb\n\tPTRACE_WRITEDATA                 = 0x11\n\tPTRACE_WRITETEXT                 = 0x13\n\tPT_FP                            = 0x48\n\tPT_G0                            = 0x10\n\tPT_G1                            = 0x14\n\tPT_G2                            = 0x18\n\tPT_G3                            = 0x1c\n\tPT_G4                            = 0x20\n\tPT_G5                            = 0x24\n\tPT_G6                            = 0x28\n\tPT_G7                            = 0x2c\n\tPT_I0                            = 0x30\n\tPT_I1                            = 0x34\n\tPT_I2                            = 0x38\n\tPT_I3                            = 0x3c\n\tPT_I4                            = 0x40\n\tPT_I5                            = 0x44\n\tPT_I6                            = 0x48\n\tPT_I7                            = 0x4c\n\tPT_NPC                           = 0x8\n\tPT_PC                            = 0x4\n\tPT_PSR                           = 0x0\n\tPT_REGS_MAGIC                    = 0x57ac6c00\n\tPT_TNPC                          = 0x90\n\tPT_TPC                           = 0x88\n\tPT_TSTATE                        = 0x80\n\tPT_V9_FP                         = 0x70\n\tPT_V9_G0                         = 0x0\n\tPT_V9_G1                         = 0x8\n\tPT_V9_G2                         = 0x10\n\tPT_V9_G3                         = 0x18\n\tPT_V9_G4                         = 0x20\n\tPT_V9_G5                         = 0x28\n\tPT_V9_G6                         = 0x30\n\tPT_V9_G7                         = 0x38\n\tPT_V9_I0                         = 0x40\n\tPT_V9_I1                         = 0x48\n\tPT_V9_I2                         = 0x50\n\tPT_V9_I3                         = 0x58\n\tPT_V9_I4                         = 0x60\n\tPT_V9_I5                         = 0x68\n\tPT_V9_I6                         = 0x70\n\tPT_V9_I7                         = 0x78\n\tPT_V9_MAGIC                      = 0x9c\n\tPT_V9_TNPC                       = 0x90\n\tPT_V9_TPC                        = 0x88\n\tPT_V9_TSTATE                     = 0x80\n\tPT_V9_Y                          = 0x98\n\tPT_WIM                           = 0x10\n\tPT_Y                             = 0xc\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x6\n\tRLIMIT_NPROC                     = 0x7\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x58\n\tSCM_DEVMEM_LINEAR                = 0x57\n\tSCM_TIMESTAMPING                 = 0x23\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x38\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3c\n\tSCM_TIMESTAMPNS                  = 0x21\n\tSCM_TS_OPT_ID                    = 0x5a\n\tSCM_TXTIME                       = 0x3f\n\tSCM_WIFI_STATUS                  = 0x25\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x400000\n\tSFD_NONBLOCK                     = 0x4000\n\tSF_FP                            = 0x38\n\tSF_I0                            = 0x20\n\tSF_I1                            = 0x24\n\tSF_I2                            = 0x28\n\tSF_I3                            = 0x2c\n\tSF_I4                            = 0x30\n\tSF_I5                            = 0x34\n\tSF_L0                            = 0x0\n\tSF_L1                            = 0x4\n\tSF_L2                            = 0x8\n\tSF_L3                            = 0xc\n\tSF_L4                            = 0x10\n\tSF_L5                            = 0x14\n\tSF_L6                            = 0x18\n\tSF_L7                            = 0x1c\n\tSF_PC                            = 0x3c\n\tSF_RETP                          = 0x40\n\tSF_V9_FP                         = 0x70\n\tSF_V9_I0                         = 0x40\n\tSF_V9_I1                         = 0x48\n\tSF_V9_I2                         = 0x50\n\tSF_V9_I3                         = 0x58\n\tSF_V9_I4                         = 0x60\n\tSF_V9_I5                         = 0x68\n\tSF_V9_L0                         = 0x0\n\tSF_V9_L1                         = 0x8\n\tSF_V9_L2                         = 0x10\n\tSF_V9_L3                         = 0x18\n\tSF_V9_L4                         = 0x20\n\tSF_V9_L5                         = 0x28\n\tSF_V9_L6                         = 0x30\n\tSF_V9_L7                         = 0x38\n\tSF_V9_PC                         = 0x78\n\tSF_V9_RETP                       = 0x80\n\tSF_V9_XARG0                      = 0x88\n\tSF_V9_XARG1                      = 0x90\n\tSF_V9_XARG2                      = 0x98\n\tSF_V9_XARG3                      = 0xa0\n\tSF_V9_XARG4                      = 0xa8\n\tSF_V9_XARG5                      = 0xb0\n\tSF_V9_XXARG                      = 0xb8\n\tSF_XARG0                         = 0x44\n\tSF_XARG1                         = 0x48\n\tSF_XARG2                         = 0x4c\n\tSF_XARG3                         = 0x50\n\tSF_XARG4                         = 0x54\n\tSF_XARG5                         = 0x58\n\tSF_XXARG                         = 0x5c\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x400000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x4000\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x8000\n\tSO_ATTACH_BPF                    = 0x34\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x35\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x36\n\tSO_BINDTODEVICE                  = 0xd\n\tSO_BINDTOIFINDEX                 = 0x41\n\tSO_BPF_EXTENSIONS                = 0x32\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0x400\n\tSO_BUF_LOCK                      = 0x51\n\tSO_BUSY_POLL                     = 0x30\n\tSO_BUSY_POLL_BUDGET              = 0x49\n\tSO_CNX_ADVICE                    = 0x37\n\tSO_COOKIE                        = 0x3b\n\tSO_DETACH_REUSEPORT_BPF          = 0x47\n\tSO_DEVMEM_DMABUF                 = 0x58\n\tSO_DEVMEM_DONTNEED               = 0x59\n\tSO_DEVMEM_LINEAR                 = 0x57\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x33\n\tSO_INCOMING_NAPI_ID              = 0x3a\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x28\n\tSO_MARK                          = 0x22\n\tSO_MAX_PACING_RATE               = 0x31\n\tSO_MEMINFO                       = 0x39\n\tSO_NETNS_COOKIE                  = 0x50\n\tSO_NOFCS                         = 0x27\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x2\n\tSO_PASSPIDFD                     = 0x55\n\tSO_PASSRIGHTS                    = 0x5c\n\tSO_PASSSEC                       = 0x1f\n\tSO_PEEK_OFF                      = 0x26\n\tSO_PEERCRED                      = 0x40\n\tSO_PEERGROUPS                    = 0x3d\n\tSO_PEERPIDFD                     = 0x56\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x48\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x100b\n\tSO_RCVLOWAT                      = 0x800\n\tSO_RCVMARK                       = 0x54\n\tSO_RCVPRIORITY                   = 0x5b\n\tSO_RCVTIMEO                      = 0x2000\n\tSO_RCVTIMEO_NEW                  = 0x44\n\tSO_RCVTIMEO_OLD                  = 0x2000\n\tSO_RESERVE_MEM                   = 0x52\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x24\n\tSO_SECURITY_AUTHENTICATION       = 0x5001\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x5004\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002\n\tSO_SELECT_ERR_QUEUE              = 0x29\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x100a\n\tSO_SNDLOWAT                      = 0x1000\n\tSO_SNDTIMEO                      = 0x4000\n\tSO_SNDTIMEO_NEW                  = 0x45\n\tSO_SNDTIMEO_OLD                  = 0x4000\n\tSO_TIMESTAMPING                  = 0x23\n\tSO_TIMESTAMPING_NEW              = 0x43\n\tSO_TIMESTAMPING_OLD              = 0x23\n\tSO_TIMESTAMPNS                   = 0x21\n\tSO_TIMESTAMPNS_NEW               = 0x42\n\tSO_TIMESTAMPNS_OLD               = 0x21\n\tSO_TIMESTAMP_NEW                 = 0x46\n\tSO_TXREHASH                      = 0x53\n\tSO_TXTIME                        = 0x3f\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x25\n\tSO_ZEROCOPY                      = 0x3e\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x20005407\n\tTCGETA                           = 0x40125401\n\tTCGETS                           = 0x40245408\n\tTCGETS2                          = 0x402c540c\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x20005405\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80125402\n\tTCSETAF                          = 0x80125404\n\tTCSETAW                          = 0x80125403\n\tTCSETS                           = 0x80245409\n\tTCSETS2                          = 0x802c540d\n\tTCSETSF                          = 0x8024540b\n\tTCSETSF2                         = 0x802c540f\n\tTCSETSW                          = 0x8024540a\n\tTCSETSW2                         = 0x802c540e\n\tTCXONC                           = 0x20005406\n\tTFD_CLOEXEC                      = 0x400000\n\tTFD_NONBLOCK                     = 0x4000\n\tTIOCCBRK                         = 0x2000747a\n\tTIOCCONS                         = 0x20007424\n\tTIOCEXCL                         = 0x2000740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x40047400\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285443\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x40047483\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40047486\n\tTIOCGPTPEER                      = 0x20007489\n\tTIOCGRS485                       = 0x40205441\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x40047485\n\tTIOCGSOFTCAR                     = 0x40047464\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x8004746b\n\tTIOCMBIS                         = 0x8004746c\n\tTIOCMGET                         = 0x4004746a\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x8004746d\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x20007471\n\tTIOCNXCL                         = 0x2000740e\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x80047470\n\tTIOCSBRK                         = 0x2000747b\n\tTIOCSCTTY                        = 0x20007484\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSETD                         = 0x80047401\n\tTIOCSIG                          = 0x80047488\n\tTIOCSISO7816                     = 0xc0285444\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x80047482\n\tTIOCSPTLCK                       = 0x80047487\n\tTIOCSRS485                       = 0xc0205442\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x80047465\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x80017472\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x20005437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n\t__TIOCFLUSH                      = 0x80047410\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEADV            = syscall.Errno(0x53)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEALREADY        = syscall.Errno(0x25)\n\tEBADE           = syscall.Errno(0x66)\n\tEBADFD          = syscall.Errno(0x5d)\n\tEBADMSG         = syscall.Errno(0x4c)\n\tEBADR           = syscall.Errno(0x67)\n\tEBADRQC         = syscall.Errno(0x6a)\n\tEBADSLT         = syscall.Errno(0x6b)\n\tEBFONT          = syscall.Errno(0x6d)\n\tECANCELED       = syscall.Errno(0x7f)\n\tECHRNG          = syscall.Errno(0x5e)\n\tECOMM           = syscall.Errno(0x55)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0x4e)\n\tEDEADLOCK       = syscall.Errno(0x6c)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOTDOT         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEHWPOISON       = syscall.Errno(0x87)\n\tEIDRM           = syscall.Errno(0x4d)\n\tEILSEQ          = syscall.Errno(0x7a)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x81)\n\tEKEYREJECTED    = syscall.Errno(0x83)\n\tEKEYREVOKED     = syscall.Errno(0x82)\n\tEL2HLT          = syscall.Errno(0x65)\n\tEL2NSYNC        = syscall.Errno(0x5f)\n\tEL3HLT          = syscall.Errno(0x60)\n\tEL3RST          = syscall.Errno(0x61)\n\tELIBACC         = syscall.Errno(0x72)\n\tELIBBAD         = syscall.Errno(0x70)\n\tELIBEXEC        = syscall.Errno(0x6e)\n\tELIBMAX         = syscall.Errno(0x7b)\n\tELIBSCN         = syscall.Errno(0x7c)\n\tELNRNG          = syscall.Errno(0x62)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x7e)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x57)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENOANO          = syscall.Errno(0x69)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENOCSI          = syscall.Errno(0x64)\n\tENODATA         = syscall.Errno(0x6f)\n\tENOKEY          = syscall.Errno(0x80)\n\tENOLCK          = syscall.Errno(0x4f)\n\tENOLINK         = syscall.Errno(0x52)\n\tENOMEDIUM       = syscall.Errno(0x7d)\n\tENOMSG          = syscall.Errno(0x4b)\n\tENONET          = syscall.Errno(0x50)\n\tENOPKG          = syscall.Errno(0x71)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSR           = syscall.Errno(0x4a)\n\tENOSTR          = syscall.Errno(0x48)\n\tENOSYS          = syscall.Errno(0x5a)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x85)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTUNIQ        = syscall.Errno(0x73)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x5c)\n\tEOWNERDEAD      = syscall.Errno(0x84)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROTO          = syscall.Errno(0x56)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEREMCHG         = syscall.Errno(0x59)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x74)\n\tERFKILL         = syscall.Errno(0x86)\n\tERREMOTE        = syscall.Errno(0x51)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESRMNT          = syscall.Errno(0x54)\n\tESTALE          = syscall.Errno(0x46)\n\tESTRPIPE        = syscall.Errno(0x5b)\n\tETIME           = syscall.Errno(0x49)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x63)\n\tEUSERS          = syscall.Errno(0x44)\n\tEXFULL          = syscall.Errno(0x68)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCLD    = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGLOST   = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x17)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1d)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{57, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{58, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale file handle\"},\n\t{71, \"EREMOTE\", \"object is remote\"},\n\t{72, \"ENOSTR\", \"device not a stream\"},\n\t{73, \"ETIME\", \"timer expired\"},\n\t{74, \"ENOSR\", \"out of streams resources\"},\n\t{75, \"ENOMSG\", \"no message of desired type\"},\n\t{76, \"EBADMSG\", \"bad message\"},\n\t{77, \"EIDRM\", \"identifier removed\"},\n\t{78, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{79, \"ENOLCK\", \"no locks available\"},\n\t{80, \"ENONET\", \"machine is not on the network\"},\n\t{81, \"ERREMOTE\", \"unknown error 81\"},\n\t{82, \"ENOLINK\", \"link has been severed\"},\n\t{83, \"EADV\", \"advertise error\"},\n\t{84, \"ESRMNT\", \"srmount error\"},\n\t{85, \"ECOMM\", \"communication error on send\"},\n\t{86, \"EPROTO\", \"protocol error\"},\n\t{87, \"EMULTIHOP\", \"multihop attempted\"},\n\t{88, \"EDOTDOT\", \"RFS specific error\"},\n\t{89, \"EREMCHG\", \"remote address changed\"},\n\t{90, \"ENOSYS\", \"function not implemented\"},\n\t{91, \"ESTRPIPE\", \"streams pipe error\"},\n\t{92, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{93, \"EBADFD\", \"file descriptor in bad state\"},\n\t{94, \"ECHRNG\", \"channel number out of range\"},\n\t{95, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{96, \"EL3HLT\", \"level 3 halted\"},\n\t{97, \"EL3RST\", \"level 3 reset\"},\n\t{98, \"ELNRNG\", \"link number out of range\"},\n\t{99, \"EUNATCH\", \"protocol driver not attached\"},\n\t{100, \"ENOCSI\", \"no CSI structure available\"},\n\t{101, \"EL2HLT\", \"level 2 halted\"},\n\t{102, \"EBADE\", \"invalid exchange\"},\n\t{103, \"EBADR\", \"invalid request descriptor\"},\n\t{104, \"EXFULL\", \"exchange full\"},\n\t{105, \"ENOANO\", \"no anode\"},\n\t{106, \"EBADRQC\", \"invalid request code\"},\n\t{107, \"EBADSLT\", \"invalid slot\"},\n\t{108, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{109, \"EBFONT\", \"bad font file format\"},\n\t{110, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{111, \"ENODATA\", \"no data available\"},\n\t{112, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{113, \"ENOPKG\", \"package not installed\"},\n\t{114, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{115, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{116, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{123, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{124, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{125, \"ENOMEDIUM\", \"no medium found\"},\n\t{126, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{127, \"ECANCELED\", \"operation canceled\"},\n\t{128, \"ENOKEY\", \"required key not available\"},\n\t{129, \"EKEYEXPIRED\", \"key has expired\"},\n\t{130, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{131, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{132, \"EOWNERDEAD\", \"owner died\"},\n\t{133, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{134, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{135, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGLOST\", \"power failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tEN_SW_CTL_INF                     = 0x1000\n\tEN_SW_CTL_PREC                    = 0x300\n\tEN_SW_CTL_ROUND                   = 0xc00\n\tEN_SW_DATACHAIN                   = 0x80\n\tEN_SW_DENORM                      = 0x2\n\tEN_SW_INVOP                       = 0x1\n\tEN_SW_OVERFLOW                    = 0x8\n\tEN_SW_PRECLOSS                    = 0x20\n\tEN_SW_UNDERFLOW                   = 0x10\n\tEN_SW_ZERODIV                     = 0x4\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go",
    "content": "// mkerrors.sh -marm\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -marm _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x48087446\n\tTIOCPTSNAME                       = 0x48087448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x400c426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x800c426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xccc84404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xccc8441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xccc84407\n\tDIOCGETRULES                      = 0xccc84406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc084444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0844450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x805c693c\n\tSIOCBRDGADDL                      = 0x805c6949\n\tSIOCBRDGADDS                      = 0x805c6941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x805c693d\n\tSIOCBRDGDELS                      = 0x805c6942\n\tSIOCBRDGFLUSH                     = 0x805c6948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc05c693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc03c6958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc05c6942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x805c6955\n\tSIOCBRDGSIFFLGS                   = 0x805c693f\n\tSIOCBRDGSIFPRIO                   = 0x805c6954\n\tSIOCBRDGSIFPROT                   = 0x805c694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x400c745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xcce04404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcce0441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xcce04407\n\tDIOCGETRULES                      = 0xcce04406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{81920, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_802                        = 0x12\n\tAF_APPLETALK                  = 0x10\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_FILE                       = 0x1\n\tAF_GOSIP                      = 0x16\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x1a\n\tAF_INET_OFFLOAD               = 0x1e\n\tAF_IPX                        = 0x17\n\tAF_KEY                        = 0x1b\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x19\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x20\n\tAF_NBS                        = 0x7\n\tAF_NCA                        = 0x1c\n\tAF_NIT                        = 0x11\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x13\n\tAF_OSINET                     = 0x15\n\tAF_PACKET                     = 0x20\n\tAF_POLICY                     = 0x1d\n\tAF_PUP                        = 0x4\n\tAF_ROUTE                      = 0x18\n\tAF_SNA                        = 0xb\n\tAF_TRILL                      = 0x1f\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tAF_X25                        = 0x14\n\tARPHRD_ARCNET                 = 0x7\n\tARPHRD_ATM                    = 0x10\n\tARPHRD_AX25                   = 0x3\n\tARPHRD_CHAOS                  = 0x5\n\tARPHRD_EETHER                 = 0x2\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FC                     = 0x12\n\tARPHRD_FRAME                  = 0xf\n\tARPHRD_HDLC                   = 0x11\n\tARPHRD_IB                     = 0x20\n\tARPHRD_IEEE802                = 0x6\n\tARPHRD_IPATM                  = 0x13\n\tARPHRD_METRICOM               = 0x17\n\tARPHRD_TUNNEL                 = 0x1f\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB115200                       = 0x12\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB153600                       = 0x13\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB230400                       = 0x14\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB307200                       = 0x15\n\tB38400                        = 0xf\n\tB460800                       = 0x16\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB57600                        = 0x10\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB76800                        = 0x11\n\tB921600                       = 0x17\n\tB9600                         = 0xd\n\tBIOCFLUSH                     = 0x20004268\n\tBIOCGBLEN                     = 0x40044266\n\tBIOCGDLT                      = 0x4004426a\n\tBIOCGDLTLIST                  = -0x3fefbd89\n\tBIOCGDLTLIST32                = -0x3ff7bd89\n\tBIOCGETIF                     = 0x4020426b\n\tBIOCGETLIF                    = 0x4078426b\n\tBIOCGHDRCMPLT                 = 0x40044274\n\tBIOCGRTIMEOUT                 = 0x4010427b\n\tBIOCGRTIMEOUT32               = 0x4008427b\n\tBIOCGSEESENT                  = 0x40044278\n\tBIOCGSTATS                    = 0x4080426f\n\tBIOCGSTATSOLD                 = 0x4008426f\n\tBIOCIMMEDIATE                 = -0x7ffbbd90\n\tBIOCPROMISC                   = 0x20004269\n\tBIOCSBLEN                     = -0x3ffbbd9a\n\tBIOCSDLT                      = -0x7ffbbd8a\n\tBIOCSETF                      = -0x7fefbd99\n\tBIOCSETF32                    = -0x7ff7bd99\n\tBIOCSETIF                     = -0x7fdfbd94\n\tBIOCSETLIF                    = -0x7f87bd94\n\tBIOCSHDRCMPLT                 = -0x7ffbbd8b\n\tBIOCSRTIMEOUT                 = -0x7fefbd86\n\tBIOCSRTIMEOUT32               = -0x7ff7bd86\n\tBIOCSSEESENT                  = -0x7ffbbd87\n\tBIOCSTCPF                     = -0x7fefbd8e\n\tBIOCSUDPF                     = -0x7fefbd8d\n\tBIOCVERSION                   = 0x40044271\n\tBPF_A                         = 0x10\n\tBPF_ABS                       = 0x20\n\tBPF_ADD                       = 0x0\n\tBPF_ALIGNMENT                 = 0x4\n\tBPF_ALU                       = 0x4\n\tBPF_AND                       = 0x50\n\tBPF_B                         = 0x10\n\tBPF_DFLTBUFSIZE               = 0x100000\n\tBPF_DIV                       = 0x30\n\tBPF_H                         = 0x8\n\tBPF_IMM                       = 0x0\n\tBPF_IND                       = 0x40\n\tBPF_JA                        = 0x0\n\tBPF_JEQ                       = 0x10\n\tBPF_JGE                       = 0x30\n\tBPF_JGT                       = 0x20\n\tBPF_JMP                       = 0x5\n\tBPF_JSET                      = 0x40\n\tBPF_K                         = 0x0\n\tBPF_LD                        = 0x0\n\tBPF_LDX                       = 0x1\n\tBPF_LEN                       = 0x80\n\tBPF_LSH                       = 0x60\n\tBPF_MAJOR_VERSION             = 0x1\n\tBPF_MAXBUFSIZE                = 0x1000000\n\tBPF_MAXINSNS                  = 0x200\n\tBPF_MEM                       = 0x60\n\tBPF_MEMWORDS                  = 0x10\n\tBPF_MINBUFSIZE                = 0x20\n\tBPF_MINOR_VERSION             = 0x1\n\tBPF_MISC                      = 0x7\n\tBPF_MSH                       = 0xa0\n\tBPF_MUL                       = 0x20\n\tBPF_NEG                       = 0x80\n\tBPF_OR                        = 0x40\n\tBPF_RELEASE                   = 0x30bb6\n\tBPF_RET                       = 0x6\n\tBPF_RSH                       = 0x70\n\tBPF_ST                        = 0x2\n\tBPF_STX                       = 0x3\n\tBPF_SUB                       = 0x10\n\tBPF_TAX                       = 0x0\n\tBPF_TXA                       = 0x80\n\tBPF_W                         = 0x0\n\tBPF_X                         = 0x8\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x2000\n\tBSDLY                         = 0x2000\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_HIGHRES                 = 0x4\n\tCLOCK_LEVEL                   = 0xa\n\tCLOCK_MONOTONIC               = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID      = 0x5\n\tCLOCK_PROF                    = 0x2\n\tCLOCK_REALTIME                = 0x3\n\tCLOCK_THREAD_CPUTIME_ID       = 0x2\n\tCLOCK_VIRTUAL                 = 0x1\n\tCR0                           = 0x0\n\tCR1                           = 0x200\n\tCR2                           = 0x400\n\tCR3                           = 0x600\n\tCRDLY                         = 0x600\n\tCREAD                         = 0x80\n\tCRTSCTS                       = 0x80000000\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIZE                         = 0x30\n\tCSTART                        = 0x11\n\tCSTATUS                       = 0x14\n\tCSTOP                         = 0x13\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tCSWTCH                        = 0x1a\n\tDIOC                          = 0x6400\n\tDIOCGETB                      = 0x6402\n\tDIOCGETC                      = 0x6401\n\tDIOCGETP                      = 0x6408\n\tDIOCSETE                      = 0x6403\n\tDIOCSETP                      = 0x6409\n\tDLT_AIRONET_HEADER            = 0x78\n\tDLT_APPLE_IP_OVER_IEEE1394    = 0x8a\n\tDLT_ARCNET                    = 0x7\n\tDLT_ARCNET_LINUX              = 0x81\n\tDLT_ATM_CLIP                  = 0x13\n\tDLT_ATM_RFC1483               = 0xb\n\tDLT_AURORA                    = 0x7e\n\tDLT_AX25                      = 0x3\n\tDLT_BACNET_MS_TP              = 0xa5\n\tDLT_CHAOS                     = 0x5\n\tDLT_CISCO_IOS                 = 0x76\n\tDLT_C_HDLC                    = 0x68\n\tDLT_DOCSIS                    = 0x8f\n\tDLT_ECONET                    = 0x73\n\tDLT_EN10MB                    = 0x1\n\tDLT_EN3MB                     = 0x2\n\tDLT_ENC                       = 0x6d\n\tDLT_ERF_ETH                   = 0xaf\n\tDLT_ERF_POS                   = 0xb0\n\tDLT_FDDI                      = 0xa\n\tDLT_FRELAY                    = 0x6b\n\tDLT_GCOM_SERIAL               = 0xad\n\tDLT_GCOM_T1E1                 = 0xac\n\tDLT_GPF_F                     = 0xab\n\tDLT_GPF_T                     = 0xaa\n\tDLT_GPRS_LLC                  = 0xa9\n\tDLT_HDLC                      = 0x10\n\tDLT_HHDLC                     = 0x79\n\tDLT_HIPPI                     = 0xf\n\tDLT_IBM_SN                    = 0x92\n\tDLT_IBM_SP                    = 0x91\n\tDLT_IEEE802                   = 0x6\n\tDLT_IEEE802_11                = 0x69\n\tDLT_IEEE802_11_RADIO          = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS      = 0xa3\n\tDLT_IPNET                     = 0xe2\n\tDLT_IPOIB                     = 0xa2\n\tDLT_IP_OVER_FC                = 0x7a\n\tDLT_JUNIPER_ATM1              = 0x89\n\tDLT_JUNIPER_ATM2              = 0x87\n\tDLT_JUNIPER_CHDLC             = 0xb5\n\tDLT_JUNIPER_ES                = 0x84\n\tDLT_JUNIPER_ETHER             = 0xb2\n\tDLT_JUNIPER_FRELAY            = 0xb4\n\tDLT_JUNIPER_GGSN              = 0x85\n\tDLT_JUNIPER_MFR               = 0x86\n\tDLT_JUNIPER_MLFR              = 0x83\n\tDLT_JUNIPER_MLPPP             = 0x82\n\tDLT_JUNIPER_MONITOR           = 0xa4\n\tDLT_JUNIPER_PIC_PEER          = 0xae\n\tDLT_JUNIPER_PPP               = 0xb3\n\tDLT_JUNIPER_PPPOE             = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM         = 0xa8\n\tDLT_JUNIPER_SERVICES          = 0x88\n\tDLT_LINUX_IRDA                = 0x90\n\tDLT_LINUX_LAPD                = 0xb1\n\tDLT_LINUX_SLL                 = 0x71\n\tDLT_LOOP                      = 0x6c\n\tDLT_LTALK                     = 0x72\n\tDLT_MTP2                      = 0x8c\n\tDLT_MTP2_WITH_PHDR            = 0x8b\n\tDLT_MTP3                      = 0x8d\n\tDLT_NULL                      = 0x0\n\tDLT_PCI_EXP                   = 0x7d\n\tDLT_PFLOG                     = 0x75\n\tDLT_PFSYNC                    = 0x12\n\tDLT_PPP                       = 0x9\n\tDLT_PPP_BSDOS                 = 0xe\n\tDLT_PPP_PPPD                  = 0xa6\n\tDLT_PRISM_HEADER              = 0x77\n\tDLT_PRONET                    = 0x4\n\tDLT_RAW                       = 0xc\n\tDLT_RAWAF_MASK                = 0x2240000\n\tDLT_RIO                       = 0x7c\n\tDLT_SCCP                      = 0x8e\n\tDLT_SLIP                      = 0x8\n\tDLT_SLIP_BSDOS                = 0xd\n\tDLT_SUNATM                    = 0x7b\n\tDLT_SYMANTEC_FIREWALL         = 0x63\n\tDLT_TZSP                      = 0x80\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x200\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x800\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x400\n\tEMPTY_SET                     = 0x0\n\tEMT_CPCOVF                    = 0x1\n\tEQUALITY_CHECK                = 0x0\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tFD_CLOEXEC                    = 0x1\n\tFD_NFDBITS                    = 0x40\n\tFD_SETSIZE                    = 0x10000\n\tFF0                           = 0x0\n\tFF1                           = 0x8000\n\tFFDLY                         = 0x8000\n\tFIORDCHK                      = 0x6603\n\tFLUSHALL                      = 0x1\n\tFLUSHDATA                     = 0x0\n\tFLUSHO                        = 0x2000\n\tF_ALLOCSP                     = 0xa\n\tF_ALLOCSP64                   = 0xa\n\tF_BADFD                       = 0x2e\n\tF_BLKSIZE                     = 0x13\n\tF_BLOCKS                      = 0x12\n\tF_CHKFL                       = 0x8\n\tF_COMPAT                      = 0x8\n\tF_DUP2FD                      = 0x9\n\tF_DUP2FD_CLOEXEC              = 0x24\n\tF_DUPFD                       = 0x0\n\tF_DUPFD_CLOEXEC               = 0x25\n\tF_FLOCK                       = 0x35\n\tF_FLOCK64                     = 0x35\n\tF_FLOCKW                      = 0x36\n\tF_FLOCKW64                    = 0x36\n\tF_FREESP                      = 0xb\n\tF_FREESP64                    = 0xb\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xe\n\tF_GETLK64                     = 0xe\n\tF_GETOWN                      = 0x17\n\tF_GETXFL                      = 0x2d\n\tF_HASREMOTELOCKS              = 0x1a\n\tF_ISSTREAM                    = 0xd\n\tF_MANDDNY                     = 0x10\n\tF_MDACC                       = 0x20\n\tF_NODNY                       = 0x0\n\tF_NPRIV                       = 0x10\n\tF_OFD_GETLK                   = 0x2f\n\tF_OFD_GETLK64                 = 0x2f\n\tF_OFD_SETLK                   = 0x30\n\tF_OFD_SETLK64                 = 0x30\n\tF_OFD_SETLKW                  = 0x31\n\tF_OFD_SETLKW64                = 0x31\n\tF_PRIV                        = 0xf\n\tF_QUOTACTL                    = 0x11\n\tF_RDACC                       = 0x1\n\tF_RDDNY                       = 0x1\n\tF_RDLCK                       = 0x1\n\tF_REVOKE                      = 0x19\n\tF_RMACC                       = 0x4\n\tF_RMDNY                       = 0x4\n\tF_RWACC                       = 0x3\n\tF_RWDNY                       = 0x3\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0x6\n\tF_SETLK64_NBMAND              = 0x2a\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0x7\n\tF_SETLK_NBMAND                = 0x2a\n\tF_SETOWN                      = 0x18\n\tF_SHARE                       = 0x28\n\tF_SHARE_NBMAND                = 0x2b\n\tF_UNLCK                       = 0x3\n\tF_UNLKSYS                     = 0x4\n\tF_UNSHARE                     = 0x29\n\tF_WRACC                       = 0x2\n\tF_WRDNY                       = 0x2\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x1\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x8000\n\tIFF_ADDRCONF                  = 0x80000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_ANYCAST                   = 0x400000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x7f203003b5a\n\tIFF_COS_ENABLED               = 0x200000000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEPRECATED                = 0x40000\n\tIFF_DHCPRUNNING               = 0x4000\n\tIFF_DUPLICATE                 = 0x4000000000\n\tIFF_FAILED                    = 0x10000000\n\tIFF_FIXEDMTU                  = 0x1000000000\n\tIFF_INACTIVE                  = 0x40000000\n\tIFF_INTELLIGENT               = 0x400\n\tIFF_IPMP                      = 0x8000000000\n\tIFF_IPMP_CANTCHANGE           = 0x10000000\n\tIFF_IPMP_INVALID              = 0x1ec200080\n\tIFF_IPV4                      = 0x1000000\n\tIFF_IPV6                      = 0x2000000\n\tIFF_L3PROTECT                 = 0x40000000000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x800\n\tIFF_MULTI_BCAST               = 0x1000\n\tIFF_NOACCEPT                  = 0x4000000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOFAILOVER                = 0x8000000\n\tIFF_NOLINKLOCAL               = 0x20000000000\n\tIFF_NOLOCAL                   = 0x20000\n\tIFF_NONUD                     = 0x200000\n\tIFF_NORTEXCH                  = 0x800000\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_NOXMIT                    = 0x10000\n\tIFF_OFFLINE                   = 0x80000000\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PREFERRED                 = 0x400000000\n\tIFF_PRIVATE                   = 0x8000\n\tIFF_PROMISC                   = 0x100\n\tIFF_ROUTER                    = 0x100000\n\tIFF_RUNNING                   = 0x40\n\tIFF_STANDBY                   = 0x20000000\n\tIFF_TEMPORARY                 = 0x800000000\n\tIFF_UNNUMBERED                = 0x2000\n\tIFF_UP                        = 0x1\n\tIFF_VIRTUAL                   = 0x2000000000\n\tIFF_VRRP                      = 0x10000000000\n\tIFF_XRESOLV                   = 0x100000000\n\tIFNAMSIZ                      = 0x10\n\tIFT_1822                      = 0x2\n\tIFT_6TO4                      = 0xca\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_IPV4                      = 0xc8\n\tIFT_IPV6                      = 0xc9\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x2000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_AUTOCONF_MASK              = 0xffff0000\n\tIN_AUTOCONF_NET               = 0xa9fe0000\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_CLASSE_NET                 = 0xffffffff\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_PRIVATE12_MASK             = 0xfff00000\n\tIN_PRIVATE12_NET              = 0xac100000\n\tIN_PRIVATE16_MASK             = 0xffff0000\n\tIN_PRIVATE16_NET              = 0xc0a80000\n\tIN_PRIVATE8_MASK              = 0xff000000\n\tIN_PRIVATE8_NET               = 0xa000000\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_ENCAP                 = 0x4\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_HELLO                 = 0x3f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_ND                    = 0x4d\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_OSPF                  = 0x59\n\tIPPROTO_PIM                   = 0x67\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADD_MEMBERSHIP           = 0x9\n\tIPV6_BOUND_IF                 = 0x41\n\tIPV6_CHECKSUM                 = 0x18\n\tIPV6_DONTFRAG                 = 0x21\n\tIPV6_DROP_MEMBERSHIP          = 0xa\n\tIPV6_DSTOPTS                  = 0xf\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffff0f00\n\tIPV6_FLOWINFO_TCLASS          = 0xf00f\n\tIPV6_HOPLIMIT                 = 0xc\n\tIPV6_HOPOPTS                  = 0xe\n\tIPV6_JOIN_GROUP               = 0x9\n\tIPV6_LEAVE_GROUP              = 0xa\n\tIPV6_MULTICAST_HOPS           = 0x7\n\tIPV6_MULTICAST_IF             = 0x6\n\tIPV6_MULTICAST_LOOP           = 0x8\n\tIPV6_NEXTHOP                  = 0xd\n\tIPV6_PAD1_OPT                 = 0x0\n\tIPV6_PATHMTU                  = 0x25\n\tIPV6_PKTINFO                  = 0xb\n\tIPV6_PREFER_SRC_CGA           = 0x20\n\tIPV6_PREFER_SRC_CGADEFAULT    = 0x10\n\tIPV6_PREFER_SRC_CGAMASK       = 0x30\n\tIPV6_PREFER_SRC_COA           = 0x2\n\tIPV6_PREFER_SRC_DEFAULT       = 0x15\n\tIPV6_PREFER_SRC_HOME          = 0x1\n\tIPV6_PREFER_SRC_MASK          = 0x3f\n\tIPV6_PREFER_SRC_MIPDEFAULT    = 0x1\n\tIPV6_PREFER_SRC_MIPMASK       = 0x3\n\tIPV6_PREFER_SRC_NONCGA        = 0x10\n\tIPV6_PREFER_SRC_PUBLIC        = 0x4\n\tIPV6_PREFER_SRC_TMP           = 0x8\n\tIPV6_PREFER_SRC_TMPDEFAULT    = 0x4\n\tIPV6_PREFER_SRC_TMPMASK       = 0xc\n\tIPV6_RECVDSTOPTS              = 0x28\n\tIPV6_RECVHOPLIMIT             = 0x13\n\tIPV6_RECVHOPOPTS              = 0x14\n\tIPV6_RECVPATHMTU              = 0x24\n\tIPV6_RECVPKTINFO              = 0x12\n\tIPV6_RECVRTHDR                = 0x16\n\tIPV6_RECVRTHDRDSTOPTS         = 0x17\n\tIPV6_RECVTCLASS               = 0x19\n\tIPV6_RTHDR                    = 0x10\n\tIPV6_RTHDRDSTOPTS             = 0x11\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_SEC_OPT                  = 0x22\n\tIPV6_SRC_PREFERENCES          = 0x23\n\tIPV6_TCLASS                   = 0x26\n\tIPV6_UNICAST_HOPS             = 0x5\n\tIPV6_UNSPEC_SRC               = 0x42\n\tIPV6_USE_MIN_MTU              = 0x20\n\tIPV6_V6ONLY                   = 0x27\n\tIP_ADD_MEMBERSHIP             = 0x13\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x17\n\tIP_BLOCK_SOURCE               = 0x15\n\tIP_BOUND_IF                   = 0x41\n\tIP_BROADCAST                  = 0x106\n\tIP_BROADCAST_TTL              = 0x43\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPINIT_IF                = 0x45\n\tIP_DONTFRAG                   = 0x1b\n\tIP_DONTROUTE                  = 0x105\n\tIP_DROP_MEMBERSHIP            = 0x14\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x18\n\tIP_HDRINCL                    = 0x2\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_IF               = 0x10\n\tIP_MULTICAST_LOOP             = 0x12\n\tIP_MULTICAST_TTL              = 0x11\n\tIP_NEXTHOP                    = 0x19\n\tIP_OPTIONS                    = 0x1\n\tIP_PKTINFO                    = 0x1a\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x9\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVPKTINFO                = 0x1a\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVSLLA                   = 0xa\n\tIP_RECVTOS                    = 0xc\n\tIP_RECVTTL                    = 0xb\n\tIP_RETOPTS                    = 0x8\n\tIP_REUSEADDR                  = 0x104\n\tIP_SEC_OPT                    = 0x22\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x16\n\tIP_UNSPEC_SRC                 = 0x42\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x200\n\tIXANY                         = 0x800\n\tIXOFF                         = 0x1000\n\tIXON                          = 0x400\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_ACCESS_DEFAULT           = 0x6\n\tMADV_ACCESS_LWP               = 0x7\n\tMADV_ACCESS_MANY              = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_FREE                     = 0x5\n\tMADV_NORMAL                   = 0x0\n\tMADV_PURGE                    = 0x9\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_WILLNEED                 = 0x3\n\tMAP_32BIT                     = 0x80\n\tMAP_ALIGN                     = 0x200\n\tMAP_ANON                      = 0x100\n\tMAP_ANONYMOUS                 = 0x100\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x10\n\tMAP_INITDATA                  = 0x800\n\tMAP_NORESERVE                 = 0x40\n\tMAP_PRIVATE                   = 0x2\n\tMAP_RENAME                    = 0x20\n\tMAP_SHARED                    = 0x1\n\tMAP_TEXT                      = 0x400\n\tMAP_TYPE                      = 0xf\n\tMCAST_BLOCK_SOURCE            = 0x2b\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x29\n\tMCAST_JOIN_SOURCE_GROUP       = 0x2d\n\tMCAST_LEAVE_GROUP             = 0x2a\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x2e\n\tMCAST_UNBLOCK_SOURCE          = 0x2c\n\tMCL_CURRENT                   = 0x1\n\tMCL_FUTURE                    = 0x2\n\tMSG_CTRUNC                    = 0x10\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_DONTWAIT                  = 0x80\n\tMSG_DUPCTRL                   = 0x800\n\tMSG_EOR                       = 0x8\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_NOSIGNAL                  = 0x200\n\tMSG_NOTIFICATION              = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x20\n\tMSG_WAITALL                   = 0x40\n\tMSG_XPG4_2                    = 0x8000\n\tMS_ASYNC                      = 0x1\n\tMS_INVALIDATE                 = 0x2\n\tMS_OLDSYNC                    = 0x0\n\tMS_SYNC                       = 0x4\n\tM_FLUSH                       = 0x86\n\tNAME_MAX                      = 0xff\n\tNEWDEV                        = 0x1\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x100\n\tNLDLY                         = 0x100\n\tNOFLSH                        = 0x80\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tOLDDEV                        = 0x0\n\tONBITSMAJOR                   = 0x7\n\tONBITSMINOR                   = 0x8\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tOPENFAIL                      = -0x1\n\tOPOST                         = 0x1\n\tO_ACCMODE                     = 0x600003\n\tO_APPEND                      = 0x8\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DIRECT                      = 0x2000000\n\tO_DIRECTORY                   = 0x1000000\n\tO_DSYNC                       = 0x40\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x400000\n\tO_LARGEFILE                   = 0x2000\n\tO_NDELAY                      = 0x4\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x20000\n\tO_NOLINKS                     = 0x40000\n\tO_NONBLOCK                    = 0x80\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSYNC                       = 0x8000\n\tO_SEARCH                      = 0x200000\n\tO_SIOCGIFCONF                 = -0x3ff796ec\n\tO_SIOCGLIFCONF                = -0x3fef9688\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_WRONLY                      = 0x1\n\tO_XATTR                       = 0x4000\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x4000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0xfffffffffffffffd\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x9\n\tRTAX_NETMASK                  = 0x2\n\tRTAX_SRC                      = 0x8\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTA_NUMBITS                   = 0x9\n\tRTA_SRC                       = 0x100\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_INDIRECT                  = 0x40000\n\tRTF_KERNEL                    = 0x80000\n\tRTF_LLINFO                    = 0x400\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTIRT                   = 0x10000\n\tRTF_PRIVATE                   = 0x2000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_REJECT                    = 0x8\n\tRTF_SETSRC                    = 0x20000\n\tRTF_STATIC                    = 0x800\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTF_ZONE                      = 0x100000\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_CHGADDR                   = 0xf\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_FREEADDR                  = 0x10\n\tRTM_GET                       = 0x4\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_VERSION                   = 0x3\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRT_AWARE                      = 0x1\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tSCM_RIGHTS                    = 0x1010\n\tSCM_TIMESTAMP                 = 0x1013\n\tSCM_UCRED                     = 0x1012\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIG2STR_MAX                   = 0x20\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fdb96e0\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDXARP                     = -0x7fff9658\n\tSIOCGARP                      = -0x3fdb96e1\n\tSIOCGDSTINFO                  = -0x3fff965c\n\tSIOCGENADDR                   = -0x3fdf96ab\n\tSIOCGENPSTATS                 = -0x3fdf96c7\n\tSIOCGETLSGCNT                 = -0x3fef8deb\n\tSIOCGETNAME                   = 0x40107334\n\tSIOCGETPEER                   = 0x40107335\n\tSIOCGETPROP                   = -0x3fff8f44\n\tSIOCGETSGCNT                  = -0x3feb8deb\n\tSIOCGETSYNC                   = -0x3fdf96d3\n\tSIOCGETVIFCNT                 = -0x3feb8dec\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fdf96f3\n\tSIOCGIFBRDADDR                = -0x3fdf96e9\n\tSIOCGIFCONF                   = -0x3ff796a4\n\tSIOCGIFDSTADDR                = -0x3fdf96f1\n\tSIOCGIFFLAGS                  = -0x3fdf96ef\n\tSIOCGIFHWADDR                 = -0x3fdf9647\n\tSIOCGIFINDEX                  = -0x3fdf96a6\n\tSIOCGIFMEM                    = -0x3fdf96ed\n\tSIOCGIFMETRIC                 = -0x3fdf96e5\n\tSIOCGIFMTU                    = -0x3fdf96ea\n\tSIOCGIFMUXID                  = -0x3fdf96a8\n\tSIOCGIFNETMASK                = -0x3fdf96e7\n\tSIOCGIFNUM                    = 0x40046957\n\tSIOCGIP6ADDRPOLICY            = -0x3fff965e\n\tSIOCGIPMSFILTER               = -0x3ffb964c\n\tSIOCGLIFADDR                  = -0x3f87968f\n\tSIOCGLIFBINDING               = -0x3f879666\n\tSIOCGLIFBRDADDR               = -0x3f879685\n\tSIOCGLIFCONF                  = -0x3fef965b\n\tSIOCGLIFDADSTATE              = -0x3f879642\n\tSIOCGLIFDSTADDR               = -0x3f87968d\n\tSIOCGLIFFLAGS                 = -0x3f87968b\n\tSIOCGLIFGROUPINFO             = -0x3f4b9663\n\tSIOCGLIFGROUPNAME             = -0x3f879664\n\tSIOCGLIFHWADDR                = -0x3f879640\n\tSIOCGLIFINDEX                 = -0x3f87967b\n\tSIOCGLIFLNKINFO               = -0x3f879674\n\tSIOCGLIFMETRIC                = -0x3f879681\n\tSIOCGLIFMTU                   = -0x3f879686\n\tSIOCGLIFMUXID                 = -0x3f87967d\n\tSIOCGLIFNETMASK               = -0x3f879683\n\tSIOCGLIFNUM                   = -0x3ff3967e\n\tSIOCGLIFSRCOF                 = -0x3fef964f\n\tSIOCGLIFSUBNET                = -0x3f879676\n\tSIOCGLIFTOKEN                 = -0x3f879678\n\tSIOCGLIFUSESRC                = -0x3f879651\n\tSIOCGLIFZONE                  = -0x3f879656\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGMSFILTER                 = -0x3ffb964e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSTAMP                    = -0x3fef9646\n\tSIOCGXARP                     = -0x3fff9659\n\tSIOCIFDETACH                  = -0x7fdf96c8\n\tSIOCILB                       = -0x3ffb9645\n\tSIOCLIFADDIF                  = -0x3f879691\n\tSIOCLIFDELND                  = -0x7f879673\n\tSIOCLIFGETND                  = -0x3f879672\n\tSIOCLIFREMOVEIF               = -0x7f879692\n\tSIOCLIFSETND                  = -0x7f879671\n\tSIOCLOWER                     = -0x7fdf96d7\n\tSIOCSARP                      = -0x7fdb96e2\n\tSIOCSCTPGOPT                  = -0x3fef9653\n\tSIOCSCTPPEELOFF               = -0x3ffb9652\n\tSIOCSCTPSOPT                  = -0x7fef9654\n\tSIOCSENABLESDP                = -0x3ffb9649\n\tSIOCSETPROP                   = -0x7ffb8f43\n\tSIOCSETSYNC                   = -0x7fdf96d4\n\tSIOCSHIWAT                    = -0x7ffb8d00\n\tSIOCSIFADDR                   = -0x7fdf96f4\n\tSIOCSIFBRDADDR                = -0x7fdf96e8\n\tSIOCSIFDSTADDR                = -0x7fdf96f2\n\tSIOCSIFFLAGS                  = -0x7fdf96f0\n\tSIOCSIFINDEX                  = -0x7fdf96a5\n\tSIOCSIFMEM                    = -0x7fdf96ee\n\tSIOCSIFMETRIC                 = -0x7fdf96e4\n\tSIOCSIFMTU                    = -0x7fdf96eb\n\tSIOCSIFMUXID                  = -0x7fdf96a7\n\tSIOCSIFNAME                   = -0x7fdf96b7\n\tSIOCSIFNETMASK                = -0x7fdf96e6\n\tSIOCSIP6ADDRPOLICY            = -0x7fff965d\n\tSIOCSIPMSFILTER               = -0x7ffb964b\n\tSIOCSLGETREQ                  = -0x3fdf96b9\n\tSIOCSLIFADDR                  = -0x7f879690\n\tSIOCSLIFBRDADDR               = -0x7f879684\n\tSIOCSLIFDSTADDR               = -0x7f87968e\n\tSIOCSLIFFLAGS                 = -0x7f87968c\n\tSIOCSLIFGROUPNAME             = -0x7f879665\n\tSIOCSLIFINDEX                 = -0x7f87967a\n\tSIOCSLIFLNKINFO               = -0x7f879675\n\tSIOCSLIFMETRIC                = -0x7f879680\n\tSIOCSLIFMTU                   = -0x7f879687\n\tSIOCSLIFMUXID                 = -0x7f87967c\n\tSIOCSLIFNAME                  = -0x3f87967f\n\tSIOCSLIFNETMASK               = -0x7f879682\n\tSIOCSLIFPREFIX                = -0x3f879641\n\tSIOCSLIFSUBNET                = -0x7f879677\n\tSIOCSLIFTOKEN                 = -0x7f879679\n\tSIOCSLIFUSESRC                = -0x7f879650\n\tSIOCSLIFZONE                  = -0x7f879655\n\tSIOCSLOWAT                    = -0x7ffb8cfe\n\tSIOCSLSTAT                    = -0x7fdf96b8\n\tSIOCSMSFILTER                 = -0x7ffb964d\n\tSIOCSPGRP                     = -0x7ffb8cf8\n\tSIOCSPROMISC                  = -0x7ffb96d0\n\tSIOCSQPTR                     = -0x3ffb9648\n\tSIOCSSDSTATS                  = -0x3fdf96d2\n\tSIOCSSESTATS                  = -0x3fdf96d1\n\tSIOCSXARP                     = -0x7fff965a\n\tSIOCTMYADDR                   = -0x3ff79670\n\tSIOCTMYSITE                   = -0x3ff7966e\n\tSIOCTONLINK                   = -0x3ff7966f\n\tSIOCUPPER                     = -0x7fdf96d8\n\tSIOCX25RCV                    = -0x3fdf96c4\n\tSIOCX25TBL                    = -0x3fdf96c3\n\tSIOCX25XMT                    = -0x3fdf96c5\n\tSIOCXPROTO                    = 0x20007337\n\tSOCK_CLOEXEC                  = 0x80000\n\tSOCK_DGRAM                    = 0x1\n\tSOCK_NDELAY                   = 0x200000\n\tSOCK_NONBLOCK                 = 0x100000\n\tSOCK_RAW                      = 0x4\n\tSOCK_RDM                      = 0x5\n\tSOCK_SEQPACKET                = 0x6\n\tSOCK_STREAM                   = 0x2\n\tSOCK_TYPE_MASK                = 0xffff\n\tSOL_FILTER                    = 0xfffc\n\tSOL_PACKET                    = 0xfffd\n\tSOL_ROUTE                     = 0xfffe\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x80\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_ALL                        = 0x3f\n\tSO_ALLZONES                   = 0x1014\n\tSO_ANON_MLP                   = 0x100a\n\tSO_ATTACH_FILTER              = 0x40000001\n\tSO_BAND                       = 0x4000\n\tSO_BROADCAST                  = 0x20\n\tSO_COPYOPT                    = 0x80000\n\tSO_DEBUG                      = 0x1\n\tSO_DELIM                      = 0x8000\n\tSO_DETACH_FILTER              = 0x40000002\n\tSO_DGRAM_ERRIND               = 0x200\n\tSO_DOMAIN                     = 0x100c\n\tSO_DONTLINGER                 = -0x81\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROPT                     = 0x40000\n\tSO_ERROR                      = 0x1007\n\tSO_EXCLBIND                   = 0x1015\n\tSO_HIWAT                      = 0x10\n\tSO_ISNTTY                     = 0x800\n\tSO_ISTTY                      = 0x400\n\tSO_KEEPALIVE                  = 0x8\n\tSO_LINGER                     = 0x80\n\tSO_LOWAT                      = 0x20\n\tSO_MAC_EXEMPT                 = 0x100b\n\tSO_MAC_IMPLICIT               = 0x1016\n\tSO_MAXBLK                     = 0x100000\n\tSO_MAXPSZ                     = 0x8\n\tSO_MINPSZ                     = 0x4\n\tSO_MREADOFF                   = 0x80\n\tSO_MREADON                    = 0x40\n\tSO_NDELOFF                    = 0x200\n\tSO_NDELON                     = 0x100\n\tSO_NODELIM                    = 0x10000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PROTOTYPE                  = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVPSH                     = 0x100d\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_READOPT                    = 0x1\n\tSO_RECVUCRED                  = 0x400\n\tSO_REUSEADDR                  = 0x4\n\tSO_SECATTR                    = 0x1011\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_STRHOLD                    = 0x20000\n\tSO_TAIL                       = 0x200000\n\tSO_TIMESTAMP                  = 0x1013\n\tSO_TONSTOP                    = 0x2000\n\tSO_TOSTOP                     = 0x1000\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_VRRP                       = 0x1017\n\tSO_WROFF                      = 0x2\n\tS_ENFMT                       = 0x400\n\tS_IAMB                        = 0x1ff\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFDOOR                      = 0xd000\n\tS_IFIFO                       = 0x1000\n\tS_IFLNK                       = 0xa000\n\tS_IFMT                        = 0xf000\n\tS_IFNAM                       = 0x5000\n\tS_IFPORT                      = 0xe000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_INSEM                       = 0x1\n\tS_INSHD                       = 0x2\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXGRP                       = 0x8\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x800\n\tTAB2                          = 0x1000\n\tTAB3                          = 0x1800\n\tTABDLY                        = 0x1800\n\tTCFLSH                        = 0x5407\n\tTCGETA                        = 0x5401\n\tTCGETS                        = 0x540d\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_ABORT_THRESHOLD           = 0x11\n\tTCP_ANONPRIVBIND              = 0x20\n\tTCP_CONGESTION                = 0x25\n\tTCP_CONN_ABORT_THRESHOLD      = 0x13\n\tTCP_CONN_NOTIFY_THRESHOLD     = 0x12\n\tTCP_CORK                      = 0x18\n\tTCP_EXCLBIND                  = 0x21\n\tTCP_INIT_CWND                 = 0x15\n\tTCP_KEEPALIVE                 = 0x8\n\tTCP_KEEPALIVE_ABORT_THRESHOLD = 0x17\n\tTCP_KEEPALIVE_THRESHOLD       = 0x16\n\tTCP_KEEPCNT                   = 0x23\n\tTCP_KEEPIDLE                  = 0x22\n\tTCP_KEEPINTVL                 = 0x24\n\tTCP_LINGER2                   = 0x1c\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MSS                       = 0x218\n\tTCP_NODELAY                   = 0x1\n\tTCP_NOTIFY_THRESHOLD          = 0x10\n\tTCP_RECVDSTADDR               = 0x14\n\tTCP_RTO_INITIAL               = 0x19\n\tTCP_RTO_MAX                   = 0x1b\n\tTCP_RTO_MIN                   = 0x1a\n\tTCSAFLUSH                     = 0x5410\n\tTCSBRK                        = 0x5405\n\tTCSETA                        = 0x5402\n\tTCSETAF                       = 0x5404\n\tTCSETAW                       = 0x5403\n\tTCSETS                        = 0x540e\n\tTCSETSF                       = 0x5410\n\tTCSETSW                       = 0x540f\n\tTCXONC                        = 0x5406\n\tTIMER_ABSTIME                 = 0x1\n\tTIMER_RELTIME                 = 0x0\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x747a\n\tTIOCCDTR                      = 0x7478\n\tTIOCCILOOP                    = 0x746c\n\tTIOCEXCL                      = 0x740d\n\tTIOCFLUSH                     = 0x7410\n\tTIOCGETC                      = 0x7412\n\tTIOCGETD                      = 0x7400\n\tTIOCGETP                      = 0x7408\n\tTIOCGLTC                      = 0x7474\n\tTIOCGPGRP                     = 0x7414\n\tTIOCGPPS                      = 0x547d\n\tTIOCGPPSEV                    = 0x547f\n\tTIOCGSID                      = 0x7416\n\tTIOCGSOFTCAR                  = 0x5469\n\tTIOCGWINSZ                    = 0x5468\n\tTIOCHPCL                      = 0x7402\n\tTIOCKBOF                      = 0x5409\n\tTIOCKBON                      = 0x5408\n\tTIOCLBIC                      = 0x747e\n\tTIOCLBIS                      = 0x747f\n\tTIOCLGET                      = 0x747c\n\tTIOCLSET                      = 0x747d\n\tTIOCMBIC                      = 0x741c\n\tTIOCMBIS                      = 0x741b\n\tTIOCMGET                      = 0x741d\n\tTIOCMSET                      = 0x741a\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x7471\n\tTIOCNXCL                      = 0x740e\n\tTIOCOUTQ                      = 0x7473\n\tTIOCREMOTE                    = 0x741e\n\tTIOCSBRK                      = 0x747b\n\tTIOCSCTTY                     = 0x7484\n\tTIOCSDTR                      = 0x7479\n\tTIOCSETC                      = 0x7411\n\tTIOCSETD                      = 0x7401\n\tTIOCSETN                      = 0x740a\n\tTIOCSETP                      = 0x7409\n\tTIOCSIGNAL                    = 0x741f\n\tTIOCSILOOP                    = 0x746d\n\tTIOCSLTC                      = 0x7475\n\tTIOCSPGRP                     = 0x7415\n\tTIOCSPPS                      = 0x547e\n\tTIOCSSOFTCAR                  = 0x546a\n\tTIOCSTART                     = 0x746e\n\tTIOCSTI                       = 0x7417\n\tTIOCSTOP                      = 0x746f\n\tTIOCSWINSZ                    = 0x5467\n\tTOSTOP                        = 0x100\n\tUTIME_NOW                     = -0x1\n\tUTIME_OMIT                    = -0x2\n\tVCEOF                         = 0x8\n\tVCEOL                         = 0x9\n\tVDISCARD                      = 0xd\n\tVDSUSP                        = 0xb\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVERASE2                       = 0x11\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xf\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xc\n\tVSTART                        = 0x8\n\tVSTATUS                       = 0x10\n\tVSTOP                         = 0x9\n\tVSUSP                         = 0xa\n\tVSWTCH                        = 0x7\n\tVT0                           = 0x0\n\tVT1                           = 0x4000\n\tVTDLY                         = 0x4000\n\tVTIME                         = 0x5\n\tVWERASE                       = 0xe\n\tWCONTFLG                      = 0xffff\n\tWCONTINUED                    = 0x8\n\tWCOREFLG                      = 0x80\n\tWEXITED                       = 0x1\n\tWNOHANG                       = 0x40\n\tWNOWAIT                       = 0x80\n\tWOPTMASK                      = 0xcf\n\tWRAP                          = 0x20000\n\tWSIGMASK                      = 0x7f\n\tWSTOPFLG                      = 0x7f\n\tWSTOPPED                      = 0x4\n\tWTRAPPED                      = 0x2\n\tWUNTRACED                     = 0x4\n\tXCASE                         = 0x4\n\tXTABS                         = 0x1800\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x39)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x2f)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x31)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOCKUNMAPPED   = syscall.Errno(0x48)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTACTIVE      = syscall.Errno(0x49)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTRECOVERABLE = syscall.Errno(0x3b)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x30)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0x3a)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMOTE         = syscall.Errno(0x42)\n\tERESTART        = syscall.Errno(0x5b)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT    = syscall.Signal(0x6)\n\tSIGALRM    = syscall.Signal(0xe)\n\tSIGBUS     = syscall.Signal(0xa)\n\tSIGCANCEL  = syscall.Signal(0x24)\n\tSIGCHLD    = syscall.Signal(0x12)\n\tSIGCLD     = syscall.Signal(0x12)\n\tSIGCONT    = syscall.Signal(0x19)\n\tSIGEMT     = syscall.Signal(0x7)\n\tSIGFPE     = syscall.Signal(0x8)\n\tSIGFREEZE  = syscall.Signal(0x22)\n\tSIGHUP     = syscall.Signal(0x1)\n\tSIGILL     = syscall.Signal(0x4)\n\tSIGINFO    = syscall.Signal(0x29)\n\tSIGINT     = syscall.Signal(0x2)\n\tSIGIO      = syscall.Signal(0x16)\n\tSIGIOT     = syscall.Signal(0x6)\n\tSIGJVM1    = syscall.Signal(0x27)\n\tSIGJVM2    = syscall.Signal(0x28)\n\tSIGKILL    = syscall.Signal(0x9)\n\tSIGLOST    = syscall.Signal(0x25)\n\tSIGLWP     = syscall.Signal(0x21)\n\tSIGPIPE    = syscall.Signal(0xd)\n\tSIGPOLL    = syscall.Signal(0x16)\n\tSIGPROF    = syscall.Signal(0x1d)\n\tSIGPWR     = syscall.Signal(0x13)\n\tSIGQUIT    = syscall.Signal(0x3)\n\tSIGSEGV    = syscall.Signal(0xb)\n\tSIGSTOP    = syscall.Signal(0x17)\n\tSIGSYS     = syscall.Signal(0xc)\n\tSIGTERM    = syscall.Signal(0xf)\n\tSIGTHAW    = syscall.Signal(0x23)\n\tSIGTRAP    = syscall.Signal(0x5)\n\tSIGTSTP    = syscall.Signal(0x18)\n\tSIGTTIN    = syscall.Signal(0x1a)\n\tSIGTTOU    = syscall.Signal(0x1b)\n\tSIGURG     = syscall.Signal(0x15)\n\tSIGUSR1    = syscall.Signal(0x10)\n\tSIGUSR2    = syscall.Signal(0x11)\n\tSIGVTALRM  = syscall.Signal(0x1c)\n\tSIGWAITING = syscall.Signal(0x20)\n\tSIGWINCH   = syscall.Signal(0x14)\n\tSIGXCPU    = syscall.Signal(0x1e)\n\tSIGXFSZ    = syscall.Signal(0x1f)\n\tSIGXRES    = syscall.Signal(0x26)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock situation detected/avoided\"},\n\t{46, \"ENOLCK\", \"no record locks available\"},\n\t{47, \"ECANCELED\", \"operation canceled\"},\n\t{48, \"ENOTSUP\", \"operation not supported\"},\n\t{49, \"EDQUOT\", \"disc quota exceeded\"},\n\t{50, \"EBADE\", \"bad exchange descriptor\"},\n\t{51, \"EBADR\", \"bad request descriptor\"},\n\t{52, \"EXFULL\", \"message tables full\"},\n\t{53, \"ENOANO\", \"anode table overflow\"},\n\t{54, \"EBADRQC\", \"bad request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock\"},\n\t{57, \"EBFONT\", \"bad font file format\"},\n\t{58, \"EOWNERDEAD\", \"owner of the lock died\"},\n\t{59, \"ENOTRECOVERABLE\", \"lock is not recoverable\"},\n\t{60, \"ENOSTR\", \"not a stream device\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of stream resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"ELOCKUNMAPPED\", \"locked lock was unmapped \"},\n\t{73, \"ENOTACTIVE\", \"facility is not active\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"not a data message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in more shared libraries than system limit\"},\n\t{87, \"ELIBEXEC\", \"can not exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"illegal byte sequence\"},\n\t{89, \"ENOSYS\", \"operation not applicable\"},\n\t{90, \"ELOOP\", \"number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS\"},\n\t{91, \"ERESTART\", \"error 91\"},\n\t{92, \"ESTRPIPE\", \"error 92\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"option not supported by protocol\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"EOPNOTSUPP\", \"operation not supported on transport endpoint\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection because of reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after socket shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale NFS file handle\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal Instruction\"},\n\t{5, \"SIGTRAP\", \"trace/Breakpoint Trap\"},\n\t{6, \"SIGABRT\", \"abort\"},\n\t{7, \"SIGEMT\", \"emulation Trap\"},\n\t{8, \"SIGFPE\", \"arithmetic Exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus Error\"},\n\t{11, \"SIGSEGV\", \"segmentation Fault\"},\n\t{12, \"SIGSYS\", \"bad System Call\"},\n\t{13, \"SIGPIPE\", \"broken Pipe\"},\n\t{14, \"SIGALRM\", \"alarm Clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user Signal 1\"},\n\t{17, \"SIGUSR2\", \"user Signal 2\"},\n\t{18, \"SIGCHLD\", \"child Status Changed\"},\n\t{19, \"SIGPWR\", \"power-Fail/Restart\"},\n\t{20, \"SIGWINCH\", \"window Size Change\"},\n\t{21, \"SIGURG\", \"urgent Socket Condition\"},\n\t{22, \"SIGIO\", \"pollable Event\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped (user)\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual Timer Expired\"},\n\t{29, \"SIGPROF\", \"profiling Timer Expired\"},\n\t{30, \"SIGXCPU\", \"cpu Limit Exceeded\"},\n\t{31, \"SIGXFSZ\", \"file Size Limit Exceeded\"},\n\t{32, \"SIGWAITING\", \"no runnable lwp\"},\n\t{33, \"SIGLWP\", \"inter-lwp signal\"},\n\t{34, \"SIGFREEZE\", \"checkpoint Freeze\"},\n\t{35, \"SIGTHAW\", \"checkpoint Thaw\"},\n\t{36, \"SIGCANCEL\", \"thread Cancellation\"},\n\t{37, \"SIGLOST\", \"resource Lost\"},\n\t{38, \"SIGXRES\", \"resource Control Exceeded\"},\n\t{39, \"SIGJVM1\", \"reserved for JVM 1\"},\n\t{40, \"SIGJVM2\", \"reserved for JVM 2\"},\n\t{41, \"SIGINFO\", \"information Request\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on zerrors_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tBRKINT                   = 0x0001\n\tCLOCAL                   = 0x1\n\tCLOCK_MONOTONIC          = 0x1\n\tCLOCK_PROCESS_CPUTIME_ID = 0x2\n\tCLOCK_REALTIME           = 0x0\n\tCLOCK_THREAD_CPUTIME_ID  = 0x3\n\tCLONE_NEWIPC             = 0x08000000\n\tCLONE_NEWNET             = 0x40000000\n\tCLONE_NEWNS              = 0x00020000\n\tCLONE_NEWPID             = 0x20000000\n\tCLONE_NEWUTS             = 0x04000000\n\tCLONE_PARENT             = 0x00008000\n\tCS8                      = 0x0030\n\tCSIZE                    = 0x0030\n\tECHO                     = 0x00000008\n\tECHONL                   = 0x00000001\n\tEFD_SEMAPHORE            = 0x00002000\n\tEFD_CLOEXEC              = 0x00001000\n\tEFD_NONBLOCK             = 0x00000004\n\tEPOLL_CLOEXEC            = 0x00001000\n\tEPOLL_CTL_ADD            = 0\n\tEPOLL_CTL_MOD            = 1\n\tEPOLL_CTL_DEL            = 2\n\tEPOLLRDNORM              = 0x0001\n\tEPOLLRDBAND              = 0x0002\n\tEPOLLIN                  = 0x0003\n\tEPOLLOUT                 = 0x0004\n\tEPOLLWRBAND              = 0x0008\n\tEPOLLPRI                 = 0x0010\n\tEPOLLERR                 = 0x0020\n\tEPOLLHUP                 = 0x0040\n\tEPOLLEXCLUSIVE           = 0x20000000\n\tEPOLLONESHOT             = 0x40000000\n\tFD_CLOEXEC               = 0x01\n\tFD_CLOFORK               = 0x02\n\tFD_SETSIZE               = 0x800\n\tFNDELAY                  = 0x04\n\tF_CLOSFD                 = 9\n\tF_CONTROL_CVT            = 13\n\tF_DUPFD                  = 0\n\tF_DUPFD2                 = 8\n\tF_GETFD                  = 1\n\tF_GETFL                  = 259\n\tF_GETLK                  = 5\n\tF_GETOWN                 = 10\n\tF_OK                     = 0x0\n\tF_RDLCK                  = 1\n\tF_SETFD                  = 2\n\tF_SETFL                  = 4\n\tF_SETLK                  = 6\n\tF_SETLKW                 = 7\n\tF_SETOWN                 = 11\n\tF_SETTAG                 = 12\n\tF_UNLCK                  = 3\n\tF_WRLCK                  = 2\n\tFSTYPE_ZFS               = 0xe9 //\"Z\"\n\tFSTYPE_HFS               = 0xc8 //\"H\"\n\tFSTYPE_NFS               = 0xd5 //\"N\"\n\tFSTYPE_TFS               = 0xe3 //\"T\"\n\tFSTYPE_AUTOMOUNT         = 0xc1 //\"A\"\n\tGRND_NONBLOCK            = 1\n\tGRND_RANDOM              = 2\n\tHUPCL                    = 0x0100 // Hang up on last close\n\tIN_CLOEXEC               = 0x00001000\n\tIN_NONBLOCK              = 0x00000004\n\tIN_ACCESS                = 0x00000001\n\tIN_MODIFY                = 0x00000002\n\tIN_ATTRIB                = 0x00000004\n\tIN_CLOSE_WRITE           = 0x00000008\n\tIN_CLOSE_NOWRITE         = 0x00000010\n\tIN_OPEN                  = 0x00000020\n\tIN_MOVED_FROM            = 0x00000040\n\tIN_MOVED_TO              = 0x00000080\n\tIN_CREATE                = 0x00000100\n\tIN_DELETE                = 0x00000200\n\tIN_DELETE_SELF           = 0x00000400\n\tIN_MOVE_SELF             = 0x00000800\n\tIN_UNMOUNT               = 0x00002000\n\tIN_Q_OVERFLOW            = 0x00004000\n\tIN_IGNORED               = 0x00008000\n\tIN_CLOSE                 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)\n\tIN_MOVE                  = (IN_MOVED_FROM | IN_MOVED_TO)\n\tIN_ALL_EVENTS            = (IN_ACCESS | IN_MODIFY | IN_ATTRIB |\n\t\tIN_CLOSE | IN_OPEN | IN_MOVE |\n\t\tIN_CREATE | IN_DELETE | IN_DELETE_SELF |\n\t\tIN_MOVE_SELF)\n\tIN_ONLYDIR                      = 0x01000000\n\tIN_DONT_FOLLOW                  = 0x02000000\n\tIN_EXCL_UNLINK                  = 0x04000000\n\tIN_MASK_CREATE                  = 0x10000000\n\tIN_MASK_ADD                     = 0x20000000\n\tIN_ISDIR                        = 0x40000000\n\tIN_ONESHOT                      = 0x80000000\n\tIP6F_MORE_FRAG                  = 0x0001\n\tIP6F_OFF_MASK                   = 0xfff8\n\tIP6F_RESERVED_MASK              = 0x0006\n\tIP6OPT_JUMBO                    = 0xc2\n\tIP6OPT_JUMBO_LEN                = 6\n\tIP6OPT_MUTABLE                  = 0x20\n\tIP6OPT_NSAP_ADDR                = 0xc3\n\tIP6OPT_PAD1                     = 0x00\n\tIP6OPT_PADN                     = 0x01\n\tIP6OPT_ROUTER_ALERT             = 0x05\n\tIP6OPT_TUNNEL_LIMIT             = 0x04\n\tIP6OPT_TYPE_DISCARD             = 0x40\n\tIP6OPT_TYPE_FORCEICMP           = 0x80\n\tIP6OPT_TYPE_ICMP                = 0xc0\n\tIP6OPT_TYPE_SKIP                = 0x00\n\tIP6_ALERT_AN                    = 0x0002\n\tIP6_ALERT_MLD                   = 0x0000\n\tIP6_ALERT_RSVP                  = 0x0001\n\tIPPORT_RESERVED                 = 1024\n\tIPPORT_USERRESERVED             = 5000\n\tIPPROTO_AH                      = 51\n\tSOL_AH                          = 51\n\tIPPROTO_DSTOPTS                 = 60\n\tSOL_DSTOPTS                     = 60\n\tIPPROTO_EGP                     = 8\n\tSOL_EGP                         = 8\n\tIPPROTO_ESP                     = 50\n\tSOL_ESP                         = 50\n\tIPPROTO_FRAGMENT                = 44\n\tSOL_FRAGMENT                    = 44\n\tIPPROTO_GGP                     = 2\n\tSOL_GGP                         = 2\n\tIPPROTO_HOPOPTS                 = 0\n\tSOL_HOPOPTS                     = 0\n\tIPPROTO_ICMP                    = 1\n\tSOL_ICMP                        = 1\n\tIPPROTO_ICMPV6                  = 58\n\tSOL_ICMPV6                      = 58\n\tIPPROTO_IDP                     = 22\n\tSOL_IDP                         = 22\n\tIPPROTO_IP                      = 0\n\tSOL_IP                          = 0\n\tIPPROTO_IPV6                    = 41\n\tSOL_IPV6                        = 41\n\tIPPROTO_MAX                     = 256\n\tSOL_MAX                         = 256\n\tIPPROTO_NONE                    = 59\n\tSOL_NONE                        = 59\n\tIPPROTO_PUP                     = 12\n\tSOL_PUP                         = 12\n\tIPPROTO_RAW                     = 255\n\tSOL_RAW                         = 255\n\tIPPROTO_ROUTING                 = 43\n\tSOL_ROUTING                     = 43\n\tIPPROTO_TCP                     = 6\n\tSOL_TCP                         = 6\n\tIPPROTO_UDP                     = 17\n\tSOL_UDP                         = 17\n\tIPV6_ADDR_PREFERENCES           = 32\n\tIPV6_CHECKSUM                   = 19\n\tIPV6_DONTFRAG                   = 29\n\tIPV6_DSTOPTS                    = 23\n\tIPV6_HOPLIMIT                   = 11\n\tIPV6_HOPOPTS                    = 22\n\tIPV6_JOIN_GROUP                 = 5\n\tIPV6_LEAVE_GROUP                = 6\n\tIPV6_MULTICAST_HOPS             = 9\n\tIPV6_MULTICAST_IF               = 7\n\tIPV6_MULTICAST_LOOP             = 4\n\tIPV6_NEXTHOP                    = 20\n\tIPV6_PATHMTU                    = 12\n\tIPV6_PKTINFO                    = 13\n\tIPV6_PREFER_SRC_CGA             = 0x10\n\tIPV6_PREFER_SRC_COA             = 0x02\n\tIPV6_PREFER_SRC_HOME            = 0x01\n\tIPV6_PREFER_SRC_NONCGA          = 0x20\n\tIPV6_PREFER_SRC_PUBLIC          = 0x08\n\tIPV6_PREFER_SRC_TMP             = 0x04\n\tIPV6_RECVDSTOPTS                = 28\n\tIPV6_RECVHOPLIMIT               = 14\n\tIPV6_RECVHOPOPTS                = 26\n\tIPV6_RECVPATHMTU                = 16\n\tIPV6_RECVPKTINFO                = 15\n\tIPV6_RECVRTHDR                  = 25\n\tIPV6_RECVTCLASS                 = 31\n\tIPV6_RTHDR                      = 21\n\tIPV6_RTHDRDSTOPTS               = 24\n\tIPV6_RTHDR_TYPE_0               = 0\n\tIPV6_TCLASS                     = 30\n\tIPV6_UNICAST_HOPS               = 3\n\tIPV6_USE_MIN_MTU                = 18\n\tIPV6_V6ONLY                     = 10\n\tIP_ADD_MEMBERSHIP               = 5\n\tIP_ADD_SOURCE_MEMBERSHIP        = 12\n\tIP_BLOCK_SOURCE                 = 10\n\tIP_DEFAULT_MULTICAST_LOOP       = 1\n\tIP_DEFAULT_MULTICAST_TTL        = 1\n\tIP_DROP_MEMBERSHIP              = 6\n\tIP_DROP_SOURCE_MEMBERSHIP       = 13\n\tIP_MAX_MEMBERSHIPS              = 20\n\tIP_MULTICAST_IF                 = 7\n\tIP_MULTICAST_LOOP               = 4\n\tIP_MULTICAST_TTL                = 3\n\tIP_OPTIONS                      = 1\n\tIP_PKTINFO                      = 101\n\tIP_RECVPKTINFO                  = 102\n\tIP_TOS                          = 2\n\tIP_TTL                          = 14\n\tIP_UNBLOCK_SOURCE               = 11\n\tICMP6_FILTER                    = 1\n\tMCAST_INCLUDE                   = 0\n\tMCAST_EXCLUDE                   = 1\n\tMCAST_JOIN_GROUP                = 40\n\tMCAST_LEAVE_GROUP               = 41\n\tMCAST_JOIN_SOURCE_GROUP         = 42\n\tMCAST_LEAVE_SOURCE_GROUP        = 43\n\tMCAST_BLOCK_SOURCE              = 44\n\tMCAST_UNBLOCK_SOURCE            = 46\n\tICANON                          = 0x0010\n\tICRNL                           = 0x0002\n\tIEXTEN                          = 0x0020\n\tIGNBRK                          = 0x0004\n\tIGNCR                           = 0x0008\n\tINLCR                           = 0x0020\n\tISIG                            = 0x0040\n\tISTRIP                          = 0x0080\n\tIXON                            = 0x0200\n\tIXOFF                           = 0x0100\n\tLOCK_SH                         = 0x1\n\tLOCK_EX                         = 0x2\n\tLOCK_NB                         = 0x4\n\tLOCK_UN                         = 0x8\n\tPOLLIN                          = 0x0003\n\tPOLLOUT                         = 0x0004\n\tPOLLPRI                         = 0x0010\n\tPOLLERR                         = 0x0020\n\tPOLLHUP                         = 0x0040\n\tPOLLNVAL                        = 0x0080\n\tPROT_READ                       = 0x1 // mmap - page can be read\n\tPROT_WRITE                      = 0x2 // page can be written\n\tPROT_NONE                       = 0x4 // can't be accessed\n\tPROT_EXEC                       = 0x8 // can be executed\n\tMAP_PRIVATE                     = 0x1 // changes are private\n\tMAP_SHARED                      = 0x2 // changes are shared\n\tMAP_FIXED                       = 0x4 // place exactly\n\t__MAP_MEGA                      = 0x8\n\t__MAP_64                        = 0x10\n\tMAP_ANON                        = 0x20\n\tMAP_ANONYMOUS                   = 0x20\n\tMS_SYNC                         = 0x1 // msync - synchronous writes\n\tMS_ASYNC                        = 0x2 // asynchronous writes\n\tMS_INVALIDATE                   = 0x4 // invalidate mappings\n\tMS_BIND                         = 0x00001000\n\tMS_MOVE                         = 0x00002000\n\tMS_NOSUID                       = 0x00000002\n\tMS_PRIVATE                      = 0x00040000\n\tMS_REC                          = 0x00004000\n\tMS_REMOUNT                      = 0x00008000\n\tMS_RDONLY                       = 0x00000001\n\tMS_UNBINDABLE                   = 0x00020000\n\tMNT_DETACH                      = 0x00000004\n\tZOSDSFS_SUPER_MAGIC             = 0x44534653 // zOS DSFS\n\tNFS_SUPER_MAGIC                 = 0x6969     // NFS\n\tNSFS_MAGIC                      = 0x6e736673 // PROCNS\n\tPROC_SUPER_MAGIC                = 0x9fa0     // proc FS\n\tZOSTFS_SUPER_MAGIC              = 0x544653   // zOS TFS\n\tZOSUFS_SUPER_MAGIC              = 0x554653   // zOS UFS\n\tZOSZFS_SUPER_MAGIC              = 0x5A4653   // zOS ZFS\n\tMTM_RDONLY                      = 0x80000000\n\tMTM_RDWR                        = 0x40000000\n\tMTM_UMOUNT                      = 0x10000000\n\tMTM_IMMED                       = 0x08000000\n\tMTM_FORCE                       = 0x04000000\n\tMTM_DRAIN                       = 0x02000000\n\tMTM_RESET                       = 0x01000000\n\tMTM_SAMEMODE                    = 0x00100000\n\tMTM_UNQSEFORCE                  = 0x00040000\n\tMTM_NOSUID                      = 0x00000400\n\tMTM_SYNCHONLY                   = 0x00000200\n\tMTM_REMOUNT                     = 0x00000100\n\tMTM_NOSECURITY                  = 0x00000080\n\tNFDBITS                         = 0x20\n\tONLRET                          = 0x0020 // NL performs CR function\n\tO_ACCMODE                       = 0x03\n\tO_APPEND                        = 0x08\n\tO_ASYNCSIG                      = 0x0200\n\tO_CREAT                         = 0x80\n\tO_DIRECT                        = 0x00002000\n\tO_NOFOLLOW                      = 0x00004000\n\tO_DIRECTORY                     = 0x00008000\n\tO_PATH                          = 0x00080000\n\tO_CLOEXEC                       = 0x00001000\n\tO_EXCL                          = 0x40\n\tO_GETFL                         = 0x0F\n\tO_LARGEFILE                     = 0x0400\n\tO_NDELAY                        = 0x4\n\tO_NONBLOCK                      = 0x04\n\tO_RDONLY                        = 0x02\n\tO_RDWR                          = 0x03\n\tO_SYNC                          = 0x0100\n\tO_TRUNC                         = 0x10\n\tO_WRONLY                        = 0x01\n\tO_NOCTTY                        = 0x20\n\tOPOST                           = 0x0001\n\tONLCR                           = 0x0004\n\tPARENB                          = 0x0200\n\tPARMRK                          = 0x0400\n\tQUERYCVT                        = 3\n\tRUSAGE_CHILDREN                 = -0x1\n\tRUSAGE_SELF                     = 0x0 // RUSAGE_THREAD unsupported on z/OS\n\tSEEK_CUR                        = 1\n\tSEEK_END                        = 2\n\tSEEK_SET                        = 0\n\tSETAUTOCVTALL                   = 5\n\tSETAUTOCVTON                    = 2\n\tSETCVTALL                       = 4\n\tSETCVTOFF                       = 0\n\tSETCVTON                        = 1\n\tAF_APPLETALK                    = 16\n\tAF_CCITT                        = 10\n\tAF_CHAOS                        = 5\n\tAF_DATAKIT                      = 9\n\tAF_DLI                          = 13\n\tAF_ECMA                         = 8\n\tAF_HYLINK                       = 15\n\tAF_IMPLINK                      = 3\n\tAF_INET                         = 2\n\tAF_INET6                        = 19\n\tAF_INTF                         = 20\n\tAF_IUCV                         = 17\n\tAF_LAT                          = 14\n\tAF_LINK                         = 18\n\tAF_LOCAL                        = AF_UNIX // AF_LOCAL is an alias for AF_UNIX\n\tAF_MAX                          = 30\n\tAF_NBS                          = 7\n\tAF_NDD                          = 23\n\tAF_NETWARE                      = 22\n\tAF_NS                           = 6\n\tAF_PUP                          = 4\n\tAF_RIF                          = 21\n\tAF_ROUTE                        = 20\n\tAF_SNA                          = 11\n\tAF_UNIX                         = 1\n\tAF_UNSPEC                       = 0\n\tIBMTCP_IMAGE                    = 1\n\tMSG_ACK_EXPECTED                = 0x10\n\tMSG_ACK_GEN                     = 0x40\n\tMSG_ACK_TIMEOUT                 = 0x20\n\tMSG_CONNTERM                    = 0x80\n\tMSG_CTRUNC                      = 0x20\n\tMSG_DONTROUTE                   = 0x4\n\tMSG_EOF                         = 0x8000\n\tMSG_EOR                         = 0x8\n\tMSG_MAXIOVLEN                   = 16\n\tMSG_NONBLOCK                    = 0x4000\n\tMSG_OOB                         = 0x1\n\tMSG_PEEK                        = 0x2\n\tMSG_TRUNC                       = 0x10\n\tMSG_WAITALL                     = 0x40\n\tPRIO_PROCESS                    = 1\n\tPRIO_PGRP                       = 2\n\tPRIO_USER                       = 3\n\tRLIMIT_CPU                      = 0\n\tRLIMIT_FSIZE                    = 1\n\tRLIMIT_DATA                     = 2\n\tRLIMIT_STACK                    = 3\n\tRLIMIT_CORE                     = 4\n\tRLIMIT_AS                       = 5\n\tRLIMIT_NOFILE                   = 6\n\tRLIMIT_MEMLIMIT                 = 7\n\tRLIMIT_MEMLOCK                  = 0x8\n\tRLIM_INFINITY                   = 2147483647\n\tSCHED_FIFO                      = 0x2\n\tSCM_CREDENTIALS                 = 0x2\n\tSCM_RIGHTS                      = 0x01\n\tSF_CLOSE                        = 0x00000002\n\tSF_REUSE                        = 0x00000001\n\tSHM_RND                         = 0x2\n\tSHM_RDONLY                      = 0x1\n\tSHMLBA                          = 0x1000\n\tIPC_STAT                        = 0x3\n\tIPC_SET                         = 0x2\n\tIPC_RMID                        = 0x1\n\tIPC_PRIVATE                     = 0x0\n\tIPC_CREAT                       = 0x1000000\n\t__IPC_MEGA                      = 0x4000000\n\t__IPC_SHAREAS                   = 0x20000000\n\t__IPC_BELOWBAR                  = 0x10000000\n\tIPC_EXCL                        = 0x2000000\n\t__IPC_GIGA                      = 0x8000000\n\tSHUT_RD                         = 0\n\tSHUT_RDWR                       = 2\n\tSHUT_WR                         = 1\n\tSOCK_CLOEXEC                    = 0x00001000\n\tSOCK_CONN_DGRAM                 = 6\n\tSOCK_DGRAM                      = 2\n\tSOCK_NONBLOCK                   = 0x800\n\tSOCK_RAW                        = 3\n\tSOCK_RDM                        = 4\n\tSOCK_SEQPACKET                  = 5\n\tSOCK_STREAM                     = 1\n\tSOL_SOCKET                      = 0xffff\n\tSOMAXCONN                       = 10\n\tSO_ACCEPTCONN                   = 0x0002\n\tSO_ACCEPTECONNABORTED           = 0x0006\n\tSO_ACKNOW                       = 0x7700\n\tSO_BROADCAST                    = 0x0020\n\tSO_BULKMODE                     = 0x8000\n\tSO_CKSUMRECV                    = 0x0800\n\tSO_CLOSE                        = 0x01\n\tSO_CLUSTERCONNTYPE              = 0x00004001\n\tSO_CLUSTERCONNTYPE_INTERNAL     = 8\n\tSO_CLUSTERCONNTYPE_NOCONN       = 0\n\tSO_CLUSTERCONNTYPE_NONE         = 1\n\tSO_CLUSTERCONNTYPE_SAME_CLUSTER = 2\n\tSO_CLUSTERCONNTYPE_SAME_IMAGE   = 4\n\tSO_DEBUG                        = 0x0001\n\tSO_DONTROUTE                    = 0x0010\n\tSO_ERROR                        = 0x1007\n\tSO_IGNOREINCOMINGPUSH           = 0x1\n\tSO_IGNORESOURCEVIPA             = 0x0002\n\tSO_KEEPALIVE                    = 0x0008\n\tSO_LINGER                       = 0x0080\n\tSO_NONBLOCKLOCAL                = 0x8001\n\tSO_NOREUSEADDR                  = 0x1000\n\tSO_OOBINLINE                    = 0x0100\n\tSO_OPTACK                       = 0x8004\n\tSO_OPTMSS                       = 0x8003\n\tSO_RCVBUF                       = 0x1002\n\tSO_RCVLOWAT                     = 0x1004\n\tSO_RCVTIMEO                     = 0x1006\n\tSO_REUSEADDR                    = 0x0004\n\tSO_REUSEPORT                    = 0x0200\n\tSO_SECINFO                      = 0x00004002\n\tSO_SET                          = 0x0200\n\tSO_SNDBUF                       = 0x1001\n\tSO_SNDLOWAT                     = 0x1003\n\tSO_SNDTIMEO                     = 0x1005\n\tSO_TYPE                         = 0x1008\n\tSO_UNSET                        = 0x0400\n\tSO_USELOOPBACK                  = 0x0040\n\tSO_USE_IFBUFS                   = 0x0400\n\tS_ISUID                         = 0x0800\n\tS_ISGID                         = 0x0400\n\tS_ISVTX                         = 0x0200\n\tS_IRUSR                         = 0x0100\n\tS_IWUSR                         = 0x0080\n\tS_IXUSR                         = 0x0040\n\tS_IRWXU                         = 0x01C0\n\tS_IRGRP                         = 0x0020\n\tS_IWGRP                         = 0x0010\n\tS_IXGRP                         = 0x0008\n\tS_IRWXG                         = 0x0038\n\tS_IROTH                         = 0x0004\n\tS_IWOTH                         = 0x0002\n\tS_IXOTH                         = 0x0001\n\tS_IRWXO                         = 0x0007\n\tS_IREAD                         = S_IRUSR\n\tS_IWRITE                        = S_IWUSR\n\tS_IEXEC                         = S_IXUSR\n\tS_IFDIR                         = 0x01000000\n\tS_IFCHR                         = 0x02000000\n\tS_IFREG                         = 0x03000000\n\tS_IFFIFO                        = 0x04000000\n\tS_IFIFO                         = 0x04000000\n\tS_IFLNK                         = 0x05000000\n\tS_IFBLK                         = 0x06000000\n\tS_IFSOCK                        = 0x07000000\n\tS_IFVMEXTL                      = 0xFE000000\n\tS_IFVMEXTL_EXEC                 = 0x00010000\n\tS_IFVMEXTL_DATA                 = 0x00020000\n\tS_IFVMEXTL_MEL                  = 0x00030000\n\tS_IFEXTL                        = 0x00000001\n\tS_IFPROGCTL                     = 0x00000002\n\tS_IFAPFCTL                      = 0x00000004\n\tS_IFNOSHARE                     = 0x00000008\n\tS_IFSHARELIB                    = 0x00000010\n\tS_IFMT                          = 0xFF000000\n\tS_IFMST                         = 0x00FF0000\n\tTCP_KEEPALIVE                   = 0x8\n\tTCP_NODELAY                     = 0x1\n\tTIOCGWINSZ                      = 0x4008a368\n\tTIOCSWINSZ                      = 0x8008a367\n\tTIOCSBRK                        = 0x2000a77b\n\tTIOCCBRK                        = 0x2000a77a\n\tTIOCSTI                         = 0x8001a772\n\tTIOCGPGRP                       = 0x4004a777 // _IOR(167, 119, int)\n\tTCSANOW                         = 0\n\tTCSETS                          = 0 // equivalent to TCSANOW for tcsetattr\n\tTCSADRAIN                       = 1\n\tTCSETSW                         = 1 // equivalent to TCSADRAIN for tcsetattr\n\tTCSAFLUSH                       = 2\n\tTCSETSF                         = 2 // equivalent to TCSAFLUSH for tcsetattr\n\tTCGETS                          = 3 // not defined in ioctl.h -- zos golang only\n\tTCIFLUSH                        = 0\n\tTCOFLUSH                        = 1\n\tTCIOFLUSH                       = 2\n\tTCOOFF                          = 0\n\tTCOON                           = 1\n\tTCIOFF                          = 2\n\tTCION                           = 3\n\tTIOCSPGRP                       = 0x8004a776\n\tTIOCNOTTY                       = 0x2000a771\n\tTIOCEXCL                        = 0x2000a70d\n\tTIOCNXCL                        = 0x2000a70e\n\tTIOCGETD                        = 0x4004a700\n\tTIOCSETD                        = 0x8004a701\n\tTIOCPKT                         = 0x8004a770\n\tTIOCSTOP                        = 0x2000a76f\n\tTIOCSTART                       = 0x2000a76e\n\tTIOCUCNTL                       = 0x8004a766\n\tTIOCREMOTE                      = 0x8004a769\n\tTIOCMGET                        = 0x4004a76a\n\tTIOCMSET                        = 0x8004a76d\n\tTIOCMBIC                        = 0x8004a76b\n\tTIOCMBIS                        = 0x8004a76c\n\tVINTR                           = 0\n\tVQUIT                           = 1\n\tVERASE                          = 2\n\tVKILL                           = 3\n\tVEOF                            = 4\n\tVEOL                            = 5\n\tVMIN                            = 6\n\tVSTART                          = 7\n\tVSTOP                           = 8\n\tVSUSP                           = 9\n\tVTIME                           = 10\n\tWCONTINUED                      = 0x4\n\tWEXITED                         = 0x8\n\tWNOHANG                         = 0x1\n\tWNOWAIT                         = 0x20\n\tWSTOPPED                        = 0x10\n\tWUNTRACED                       = 0x2\n\t_BPX_SWAP                       = 1\n\t_BPX_NONSWAP                    = 2\n\tMCL_CURRENT                     = 1  // for Linux compatibility -- no zos semantics\n\tMCL_FUTURE                      = 2  // for Linux compatibility -- no zos semantics\n\tMCL_ONFAULT                     = 3  // for Linux compatibility -- no zos semantics\n\tMADV_NORMAL                     = 0  // for Linux compatibility -- no zos semantics\n\tMADV_RANDOM                     = 1  // for Linux compatibility -- no zos semantics\n\tMADV_SEQUENTIAL                 = 2  // for Linux compatibility -- no zos semantics\n\tMADV_WILLNEED                   = 3  // for Linux compatibility -- no zos semantics\n\tMADV_REMOVE                     = 4  // for Linux compatibility -- no zos semantics\n\tMADV_DONTFORK                   = 5  // for Linux compatibility -- no zos semantics\n\tMADV_DOFORK                     = 6  // for Linux compatibility -- no zos semantics\n\tMADV_HWPOISON                   = 7  // for Linux compatibility -- no zos semantics\n\tMADV_MERGEABLE                  = 8  // for Linux compatibility -- no zos semantics\n\tMADV_UNMERGEABLE                = 9  // for Linux compatibility -- no zos semantics\n\tMADV_SOFT_OFFLINE               = 10 // for Linux compatibility -- no zos semantics\n\tMADV_HUGEPAGE                   = 11 // for Linux compatibility -- no zos semantics\n\tMADV_NOHUGEPAGE                 = 12 // for Linux compatibility -- no zos semantics\n\tMADV_DONTDUMP                   = 13 // for Linux compatibility -- no zos semantics\n\tMADV_DODUMP                     = 14 // for Linux compatibility -- no zos semantics\n\tMADV_FREE                       = 15 // for Linux compatibility -- no zos semantics\n\tMADV_WIPEONFORK                 = 16 // for Linux compatibility -- no zos semantics\n\tMADV_KEEPONFORK                 = 17 // for Linux compatibility -- no zos semantics\n\tAT_SYMLINK_FOLLOW               = 0x400\n\tAT_SYMLINK_NOFOLLOW             = 0x100\n\tXATTR_CREATE                    = 0x1\n\tXATTR_REPLACE                   = 0x2\n\tP_PID                           = 0\n\tP_PGID                          = 1\n\tP_ALL                           = 2\n\tPR_SET_NAME                     = 15\n\tPR_GET_NAME                     = 16\n\tPR_SET_NO_NEW_PRIVS             = 38\n\tPR_GET_NO_NEW_PRIVS             = 39\n\tPR_SET_DUMPABLE                 = 4\n\tPR_GET_DUMPABLE                 = 3\n\tPR_SET_PDEATHSIG                = 1\n\tPR_GET_PDEATHSIG                = 2\n\tPR_SET_CHILD_SUBREAPER          = 36\n\tPR_GET_CHILD_SUBREAPER          = 37\n\tAT_FDCWD                        = -100\n\tAT_EACCESS                      = 0x200\n\tAT_EMPTY_PATH                   = 0x1000\n\tAT_REMOVEDIR                    = 0x200\n\tRENAME_NOREPLACE                = 1 << 0\n\tST_RDONLY                       = 1\n\tST_NOSUID                       = 2\n)\n\nconst (\n\tEDOM               = Errno(1)\n\tERANGE             = Errno(2)\n\tEACCES             = Errno(111)\n\tEAGAIN             = Errno(112)\n\tEBADF              = Errno(113)\n\tEBUSY              = Errno(114)\n\tECHILD             = Errno(115)\n\tEDEADLK            = Errno(116)\n\tEEXIST             = Errno(117)\n\tEFAULT             = Errno(118)\n\tEFBIG              = Errno(119)\n\tEINTR              = Errno(120)\n\tEINVAL             = Errno(121)\n\tEIO                = Errno(122)\n\tEISDIR             = Errno(123)\n\tEMFILE             = Errno(124)\n\tEMLINK             = Errno(125)\n\tENAMETOOLONG       = Errno(126)\n\tENFILE             = Errno(127)\n\tENOATTR            = Errno(265)\n\tENODEV             = Errno(128)\n\tENOENT             = Errno(129)\n\tENOEXEC            = Errno(130)\n\tENOLCK             = Errno(131)\n\tENOMEM             = Errno(132)\n\tENOSPC             = Errno(133)\n\tENOSYS             = Errno(134)\n\tENOTDIR            = Errno(135)\n\tENOTEMPTY          = Errno(136)\n\tENOTTY             = Errno(137)\n\tENXIO              = Errno(138)\n\tEPERM              = Errno(139)\n\tEPIPE              = Errno(140)\n\tEROFS              = Errno(141)\n\tESPIPE             = Errno(142)\n\tESRCH              = Errno(143)\n\tEXDEV              = Errno(144)\n\tE2BIG              = Errno(145)\n\tELOOP              = Errno(146)\n\tEILSEQ             = Errno(147)\n\tENODATA            = Errno(148)\n\tEOVERFLOW          = Errno(149)\n\tEMVSNOTUP          = Errno(150)\n\tECMSSTORAGE        = Errno(151)\n\tEMVSDYNALC         = Errno(151)\n\tEMVSCVAF           = Errno(152)\n\tEMVSCATLG          = Errno(153)\n\tECMSINITIAL        = Errno(156)\n\tEMVSINITIAL        = Errno(156)\n\tECMSERR            = Errno(157)\n\tEMVSERR            = Errno(157)\n\tEMVSPARM           = Errno(158)\n\tECMSPFSFILE        = Errno(159)\n\tEMVSPFSFILE        = Errno(159)\n\tEMVSBADCHAR        = Errno(160)\n\tECMSPFSPERM        = Errno(162)\n\tEMVSPFSPERM        = Errno(162)\n\tEMVSSAFEXTRERR     = Errno(163)\n\tEMVSSAF2ERR        = Errno(164)\n\tEMVSTODNOTSET      = Errno(165)\n\tEMVSPATHOPTS       = Errno(166)\n\tEMVSNORTL          = Errno(167)\n\tEMVSEXPIRE         = Errno(168)\n\tEMVSPASSWORD       = Errno(169)\n\tEMVSWLMERROR       = Errno(170)\n\tEMVSCPLERROR       = Errno(171)\n\tEMVSARMERROR       = Errno(172)\n\tELENOFORK          = Errno(200)\n\tELEMSGERR          = Errno(201)\n\tEFPMASKINV         = Errno(202)\n\tEFPMODEINV         = Errno(203)\n\tEBUFLEN            = Errno(227)\n\tEEXTLINK           = Errno(228)\n\tENODD              = Errno(229)\n\tECMSESMERR         = Errno(230)\n\tECPERR             = Errno(231)\n\tELEMULTITHREAD     = Errno(232)\n\tELEFENCE           = Errno(244)\n\tEBADDATA           = Errno(245)\n\tEUNKNOWN           = Errno(246)\n\tENOTSUP            = Errno(247)\n\tEBADNAME           = Errno(248)\n\tENOTSAFE           = Errno(249)\n\tELEMULTITHREADFORK = Errno(257)\n\tECUNNOENV          = Errno(258)\n\tECUNNOCONV         = Errno(259)\n\tECUNNOTALIGNED     = Errno(260)\n\tECUNERR            = Errno(262)\n\tEIBMBADCALL        = Errno(1000)\n\tEIBMBADPARM        = Errno(1001)\n\tEIBMSOCKOUTOFRANGE = Errno(1002)\n\tEIBMSOCKINUSE      = Errno(1003)\n\tEIBMIUCVERR        = Errno(1004)\n\tEOFFLOADboxERROR   = Errno(1005)\n\tEOFFLOADboxRESTART = Errno(1006)\n\tEOFFLOADboxDOWN    = Errno(1007)\n\tEIBMCONFLICT       = Errno(1008)\n\tEIBMCANCELLED      = Errno(1009)\n\tEIBMBADTCPNAME     = Errno(1011)\n\tENOTBLK            = Errno(1100)\n\tETXTBSY            = Errno(1101)\n\tEWOULDBLOCK        = Errno(1102)\n\tEINPROGRESS        = Errno(1103)\n\tEALREADY           = Errno(1104)\n\tENOTSOCK           = Errno(1105)\n\tEDESTADDRREQ       = Errno(1106)\n\tEMSGSIZE           = Errno(1107)\n\tEPROTOTYPE         = Errno(1108)\n\tENOPROTOOPT        = Errno(1109)\n\tEPROTONOSUPPORT    = Errno(1110)\n\tESOCKTNOSUPPORT    = Errno(1111)\n\tEOPNOTSUPP         = Errno(1112)\n\tEPFNOSUPPORT       = Errno(1113)\n\tEAFNOSUPPORT       = Errno(1114)\n\tEADDRINUSE         = Errno(1115)\n\tEADDRNOTAVAIL      = Errno(1116)\n\tENETDOWN           = Errno(1117)\n\tENETUNREACH        = Errno(1118)\n\tENETRESET          = Errno(1119)\n\tECONNABORTED       = Errno(1120)\n\tECONNRESET         = Errno(1121)\n\tENOBUFS            = Errno(1122)\n\tEISCONN            = Errno(1123)\n\tENOTCONN           = Errno(1124)\n\tESHUTDOWN          = Errno(1125)\n\tETOOMANYREFS       = Errno(1126)\n\tETIMEDOUT          = Errno(1127)\n\tECONNREFUSED       = Errno(1128)\n\tEHOSTDOWN          = Errno(1129)\n\tEHOSTUNREACH       = Errno(1130)\n\tEPROCLIM           = Errno(1131)\n\tEUSERS             = Errno(1132)\n\tEDQUOT             = Errno(1133)\n\tESTALE             = Errno(1134)\n\tEREMOTE            = Errno(1135)\n\tENOSTR             = Errno(1136)\n\tETIME              = Errno(1137)\n\tENOSR              = Errno(1138)\n\tENOMSG             = Errno(1139)\n\tEBADMSG            = Errno(1140)\n\tEIDRM              = Errno(1141)\n\tENONET             = Errno(1142)\n\tERREMOTE           = Errno(1143)\n\tENOLINK            = Errno(1144)\n\tEADV               = Errno(1145)\n\tESRMNT             = Errno(1146)\n\tECOMM              = Errno(1147)\n\tEPROTO             = Errno(1148)\n\tEMULTIHOP          = Errno(1149)\n\tEDOTDOT            = Errno(1150)\n\tEREMCHG            = Errno(1151)\n\tECANCELED          = Errno(1152)\n\tEINTRNODATA        = Errno(1159)\n\tENOREUSE           = Errno(1160)\n\tENOMOVE            = Errno(1161)\n)\n\n// Signals\nconst (\n\tSIGHUP    = Signal(1)\n\tSIGINT    = Signal(2)\n\tSIGABRT   = Signal(3)\n\tSIGILL    = Signal(4)\n\tSIGPOLL   = Signal(5)\n\tSIGURG    = Signal(6)\n\tSIGSTOP   = Signal(7)\n\tSIGFPE    = Signal(8)\n\tSIGKILL   = Signal(9)\n\tSIGBUS    = Signal(10)\n\tSIGSEGV   = Signal(11)\n\tSIGSYS    = Signal(12)\n\tSIGPIPE   = Signal(13)\n\tSIGALRM   = Signal(14)\n\tSIGTERM   = Signal(15)\n\tSIGUSR1   = Signal(16)\n\tSIGUSR2   = Signal(17)\n\tSIGABND   = Signal(18)\n\tSIGCONT   = Signal(19)\n\tSIGCHLD   = Signal(20)\n\tSIGTTIN   = Signal(21)\n\tSIGTTOU   = Signal(22)\n\tSIGIO     = Signal(23)\n\tSIGQUIT   = Signal(24)\n\tSIGTSTP   = Signal(25)\n\tSIGTRAP   = Signal(26)\n\tSIGIOERR  = Signal(27)\n\tSIGWINCH  = Signal(28)\n\tSIGXCPU   = Signal(29)\n\tSIGXFSZ   = Signal(30)\n\tSIGVTALRM = Signal(31)\n\tSIGPROF   = Signal(32)\n\tSIGDANGER = Signal(33)\n\tSIGTHSTOP = Signal(34)\n\tSIGTHCONT = Signal(35)\n\tSIGTRACE  = Signal(37)\n\tSIGDCE    = Signal(38)\n\tSIGDUMP   = Signal(39)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EDC5001I\", \"A domain error occurred.\"},\n\t{2, \"EDC5002I\", \"A range error occurred.\"},\n\t{111, \"EDC5111I\", \"Permission denied.\"},\n\t{112, \"EDC5112I\", \"Resource temporarily unavailable.\"},\n\t{113, \"EDC5113I\", \"Bad file descriptor.\"},\n\t{114, \"EDC5114I\", \"Resource busy.\"},\n\t{115, \"EDC5115I\", \"No child processes.\"},\n\t{116, \"EDC5116I\", \"Resource deadlock avoided.\"},\n\t{117, \"EDC5117I\", \"File exists.\"},\n\t{118, \"EDC5118I\", \"Incorrect address.\"},\n\t{119, \"EDC5119I\", \"File too large.\"},\n\t{120, \"EDC5120I\", \"Interrupted function call.\"},\n\t{121, \"EDC5121I\", \"Invalid argument.\"},\n\t{122, \"EDC5122I\", \"Input/output error.\"},\n\t{123, \"EDC5123I\", \"Is a directory.\"},\n\t{124, \"EDC5124I\", \"Too many open files.\"},\n\t{125, \"EDC5125I\", \"Too many links.\"},\n\t{126, \"EDC5126I\", \"Filename too long.\"},\n\t{127, \"EDC5127I\", \"Too many open files in system.\"},\n\t{128, \"EDC5128I\", \"No such device.\"},\n\t{129, \"EDC5129I\", \"No such file or directory.\"},\n\t{130, \"EDC5130I\", \"Exec format error.\"},\n\t{131, \"EDC5131I\", \"No locks available.\"},\n\t{132, \"EDC5132I\", \"Not enough memory.\"},\n\t{133, \"EDC5133I\", \"No space left on device.\"},\n\t{134, \"EDC5134I\", \"Function not implemented.\"},\n\t{135, \"EDC5135I\", \"Not a directory.\"},\n\t{136, \"EDC5136I\", \"Directory not empty.\"},\n\t{137, \"EDC5137I\", \"Inappropriate I/O control operation.\"},\n\t{138, \"EDC5138I\", \"No such device or address.\"},\n\t{139, \"EDC5139I\", \"Operation not permitted.\"},\n\t{140, \"EDC5140I\", \"Broken pipe.\"},\n\t{141, \"EDC5141I\", \"Read-only file system.\"},\n\t{142, \"EDC5142I\", \"Invalid seek.\"},\n\t{143, \"EDC5143I\", \"No such process.\"},\n\t{144, \"EDC5144I\", \"Improper link.\"},\n\t{145, \"EDC5145I\", \"The parameter list is too long, or the message to receive was too large for the buffer.\"},\n\t{146, \"EDC5146I\", \"Too many levels of symbolic links.\"},\n\t{147, \"EDC5147I\", \"Illegal byte sequence.\"},\n\t{148, \"EDC5148I\", \"The named attribute or data not available.\"},\n\t{149, \"EDC5149I\", \"Value Overflow Error.\"},\n\t{150, \"EDC5150I\", \"UNIX System Services is not active.\"},\n\t{151, \"EDC5151I\", \"Dynamic allocation error.\"},\n\t{152, \"EDC5152I\", \"Common VTOC access facility (CVAF) error.\"},\n\t{153, \"EDC5153I\", \"Catalog obtain error.\"},\n\t{156, \"EDC5156I\", \"Process initialization error.\"},\n\t{157, \"EDC5157I\", \"An internal error has occurred.\"},\n\t{158, \"EDC5158I\", \"Bad parameters were passed to the service.\"},\n\t{159, \"EDC5159I\", \"The Physical File System encountered a permanent file error.\"},\n\t{160, \"EDC5160I\", \"Bad character in environment variable name.\"},\n\t{162, \"EDC5162I\", \"The Physical File System encountered a system error.\"},\n\t{163, \"EDC5163I\", \"SAF/RACF extract error.\"},\n\t{164, \"EDC5164I\", \"SAF/RACF error.\"},\n\t{165, \"EDC5165I\", \"System TOD clock not set.\"},\n\t{166, \"EDC5166I\", \"Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement.\"},\n\t{167, \"EDC5167I\", \"Access to the UNIX System Services version of the C RTL is denied.\"},\n\t{168, \"EDC5168I\", \"Password has expired.\"},\n\t{169, \"EDC5169I\", \"Password is invalid.\"},\n\t{170, \"EDC5170I\", \"An error was encountered with WLM.\"},\n\t{171, \"EDC5171I\", \"An error was encountered with CPL.\"},\n\t{172, \"EDC5172I\", \"An error was encountered with Application Response Measurement (ARM) component.\"},\n\t{200, \"EDC5200I\", \"The application contains a Language Environment member language that cannot tolerate a fork().\"},\n\t{201, \"EDC5201I\", \"The Language Environment message file was not found in the hierarchical file system.\"},\n\t{202, \"EDC5202E\", \"DLL facilities are not supported under SPC environment.\"},\n\t{203, \"EDC5203E\", \"DLL facilities are not supported under POSIX environment.\"},\n\t{227, \"EDC5227I\", \"Buffer is not long enough to contain a path definition\"},\n\t{228, \"EDC5228I\", \"The file referred to is an external link\"},\n\t{229, \"EDC5229I\", \"No path definition for ddname in effect\"},\n\t{230, \"EDC5230I\", \"ESM error.\"},\n\t{231, \"EDC5231I\", \"CP or the external security manager had an error\"},\n\t{232, \"EDC5232I\", \"The function failed because it was invoked from a multithread environment.\"},\n\t{244, \"EDC5244I\", \"The program, module or DLL is not supported in this environment.\"},\n\t{245, \"EDC5245I\", \"Data is not valid.\"},\n\t{246, \"EDC5246I\", \"Unknown system state.\"},\n\t{247, \"EDC5247I\", \"Operation not supported.\"},\n\t{248, \"EDC5248I\", \"The object name specified is not correct.\"},\n\t{249, \"EDC5249I\", \"The function is not allowed.\"},\n\t{257, \"EDC5257I\", \"Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called.\"},\n\t{258, \"EDC5258I\", \"A CUN_RS_NO_UNI_ENV error was issued by Unicode Services.\"},\n\t{259, \"EDC5259I\", \"A CUN_RS_NO_CONVERSION error was issued by Unicode Services.\"},\n\t{260, \"EDC5260I\", \"A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services.\"},\n\t{262, \"EDC5262I\", \"An iconv() function encountered an unexpected error while using Unicode Services.\"},\n\t{265, \"EDC5265I\", \"The named attribute not available.\"},\n\t{1000, \"EDC8000I\", \"A bad socket-call constant was found in the IUCV header.\"},\n\t{1001, \"EDC8001I\", \"An error was found in the IUCV header.\"},\n\t{1002, \"EDC8002I\", \"A socket descriptor is out of range.\"},\n\t{1003, \"EDC8003I\", \"A socket descriptor is in use.\"},\n\t{1004, \"EDC8004I\", \"Request failed because of an IUCV error.\"},\n\t{1005, \"EDC8005I\", \"Offload box error.\"},\n\t{1006, \"EDC8006I\", \"Offload box restarted.\"},\n\t{1007, \"EDC8007I\", \"Offload box down.\"},\n\t{1008, \"EDC8008I\", \"Already a conflicting call outstanding on socket.\"},\n\t{1009, \"EDC8009I\", \"Request cancelled using a SOCKcallCANCEL request.\"},\n\t{1011, \"EDC8011I\", \"A name of a PFS was specified that either is not configured or is not a Sockets PFS.\"},\n\t{1100, \"EDC8100I\", \"Block device required.\"},\n\t{1101, \"EDC8101I\", \"Text file busy.\"},\n\t{1102, \"EDC8102I\", \"Operation would block.\"},\n\t{1103, \"EDC8103I\", \"Operation now in progress.\"},\n\t{1104, \"EDC8104I\", \"Connection already in progress.\"},\n\t{1105, \"EDC8105I\", \"Socket operation on non-socket.\"},\n\t{1106, \"EDC8106I\", \"Destination address required.\"},\n\t{1107, \"EDC8107I\", \"Message too long.\"},\n\t{1108, \"EDC8108I\", \"Protocol wrong type for socket.\"},\n\t{1109, \"EDC8109I\", \"Protocol not available.\"},\n\t{1110, \"EDC8110I\", \"Protocol not supported.\"},\n\t{1111, \"EDC8111I\", \"Socket type not supported.\"},\n\t{1112, \"EDC8112I\", \"Operation not supported on socket.\"},\n\t{1113, \"EDC8113I\", \"Protocol family not supported.\"},\n\t{1114, \"EDC8114I\", \"Address family not supported.\"},\n\t{1115, \"EDC8115I\", \"Address already in use.\"},\n\t{1116, \"EDC8116I\", \"Address not available.\"},\n\t{1117, \"EDC8117I\", \"Network is down.\"},\n\t{1118, \"EDC8118I\", \"Network is unreachable.\"},\n\t{1119, \"EDC8119I\", \"Network dropped connection on reset.\"},\n\t{1120, \"EDC8120I\", \"Connection ended abnormally.\"},\n\t{1121, \"EDC8121I\", \"Connection reset.\"},\n\t{1122, \"EDC8122I\", \"No buffer space available.\"},\n\t{1123, \"EDC8123I\", \"Socket already connected.\"},\n\t{1124, \"EDC8124I\", \"Socket not connected.\"},\n\t{1125, \"EDC8125I\", \"Can't send after socket shutdown.\"},\n\t{1126, \"EDC8126I\", \"Too many references; can't splice.\"},\n\t{1127, \"EDC8127I\", \"Connection timed out.\"},\n\t{1128, \"EDC8128I\", \"Connection refused.\"},\n\t{1129, \"EDC8129I\", \"Host is not available.\"},\n\t{1130, \"EDC8130I\", \"Host cannot be reached.\"},\n\t{1131, \"EDC8131I\", \"Too many processes.\"},\n\t{1132, \"EDC8132I\", \"Too many users.\"},\n\t{1133, \"EDC8133I\", \"Disk quota exceeded.\"},\n\t{1134, \"EDC8134I\", \"Stale file handle.\"},\n\t{1135, \"\", \"\"},\n\t{1136, \"EDC8136I\", \"File is not a STREAM.\"},\n\t{1137, \"EDC8137I\", \"STREAMS ioctl() timeout.\"},\n\t{1138, \"EDC8138I\", \"No STREAMS resources.\"},\n\t{1139, \"EDC8139I\", \"The message identified by set_id and msg_id is not in the message catalog.\"},\n\t{1140, \"EDC8140I\", \"Bad message.\"},\n\t{1141, \"EDC8141I\", \"Identifier removed.\"},\n\t{1142, \"\", \"\"},\n\t{1143, \"\", \"\"},\n\t{1144, \"EDC8144I\", \"The link has been severed.\"},\n\t{1145, \"\", \"\"},\n\t{1146, \"\", \"\"},\n\t{1147, \"\", \"\"},\n\t{1148, \"EDC8148I\", \"Protocol error.\"},\n\t{1149, \"EDC8149I\", \"Multihop not allowed.\"},\n\t{1150, \"\", \"\"},\n\t{1151, \"\", \"\"},\n\t{1152, \"EDC8152I\", \"The asynchronous I/O request has been canceled.\"},\n\t{1159, \"EDC8159I\", \"Function call was interrupted before any data was received.\"},\n\t{1160, \"EDC8160I\", \"Socket reuse is not supported.\"},\n\t{1161, \"EDC8161I\", \"The file system cannot currently be moved.\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGABT\", \"aborted\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGPOLL\", \"pollable event\"},\n\t{6, \"SIGURG\", \"urgent I/O condition\"},\n\t{7, \"SIGSTOP\", \"stop process\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad argument to routine\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGABND\", \"abend\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGQUIT\", \"quit\"},\n\t{25, \"SIGTSTP\", \"stopped\"},\n\t{26, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{27, \"SIGIOER\", \"I/O error\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{30, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{31, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"danger\"},\n\t{34, \"SIGTHSTOP\", \"stop thread\"},\n\t{35, \"SIGTHCONT\", \"continue thread\"},\n\t{37, \"SIGTRACE\", \"trace\"},\n\t{38, \"\", \"DCE\"},\n\t{39, \"SIGDUMP\", \"dump\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"arm\", \"arm64\"). DO NOT EDIT.\n\n//go:build linux && (arm || arm64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsArm is the registers used by arm binaries.\ntype PtraceRegsArm struct {\n\tUregs [18]uint32\n}\n\n// PtraceGetRegsArm fetches the registers used by arm binaries.\nfunc PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm sets the registers used by arm binaries.\nfunc PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsArm64 is the registers used by arm64 binaries.\ntype PtraceRegsArm64 struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\n// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go",
    "content": "// Code generated by linux/mkall.go generatePtraceRegSet(\"arm64\"). DO NOT EDIT.\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n\n// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mips\", \"mips64\"). DO NOT EDIT.\n\n//go:build linux && (mips || mips64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMips is the registers used by mips binaries.\ntype PtraceRegsMips struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips fetches the registers used by mips binaries.\nfunc PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips sets the registers used by mips binaries.\nfunc PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64 is the registers used by mips64 binaries.\ntype PtraceRegsMips64 struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.\nfunc PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64 sets the registers used by mips64 binaries.\nfunc PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mipsle\", \"mips64le\"). DO NOT EDIT.\n\n//go:build linux && (mipsle || mips64le)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMipsle is the registers used by mipsle binaries.\ntype PtraceRegsMipsle struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.\nfunc PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMipsle sets the registers used by mipsle binaries.\nfunc PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64le is the registers used by mips64le binaries.\ntype PtraceRegsMips64le struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.\nfunc PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64le sets the registers used by mips64le binaries.\nfunc PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_x86_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"386\", \"amd64\"). DO NOT EDIT.\n\n//go:build linux && (386 || amd64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegs386 is the registers used by 386 binaries.\ntype PtraceRegs386 struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\n// PtraceGetRegs386 fetches the registers used by 386 binaries.\nfunc PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegs386 sets the registers used by 386 binaries.\nfunc PtraceSetRegs386(pid int, regs *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsAmd64 is the registers used by amd64 binaries.\ntype PtraceRegsAmd64 struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\n// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.\nfunc PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.\nfunc PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·accept4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Removexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dup3(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dirfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCtl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollPwait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollWait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Eventfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Faccessat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchmodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchownat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fdatasync(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·fstatat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fstatfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimesat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getrandom(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyAddWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyRmWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Listxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Llistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lutimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Statfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Syncfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unshare(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Linkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkdirat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mknodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·PivotRoot(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prctl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prlimit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Sethostname(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setns(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Symlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·utimensat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go",
    "content": "// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc\n\npackage unix\n\n/*\n#include <stdint.h>\n#include <stddef.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit64(int, uintptr_t);\nlong long lseek64(int, long long, int);\nuintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\twpid = Pid_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tr = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tval = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\tr0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.acct(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chdir(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chroot(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, er := C.close(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, er := C.dup(C.int(oldfd))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tC.exit(C.int(code))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\tr0, er := C.fchdir(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\tr0, er := C.fchmod(C.int(fd), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\tr0, er := C.fdatasync(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, er := C.getpgid(C.int(pid))\n\tpgid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := C.getpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := C.getpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := C.getppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, er := C.getpriority(C.int(which), C.int(who))\n\tprio = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tr0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, er := C.getsid(C.int(pid))\n\tsid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, er := C.kill(C.int(pid), C.int(sig))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\tr0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tvar _p2 int\n\t_p2 = len(buf)\n\tr0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))\n\t_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))\n\tr0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, er := C.setpgid(C.int(pid), C.int(pgid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, er := C.setsid()\n\tpid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\tr0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\tr0, er := C.setuid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\tr0, er := C.setgid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\tr0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tC.sync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))\n\tticks = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := C.umask(C.int(mask))\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlink(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\tr0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\tr0, er := C.dup2(C.int(oldfd), C.int(newfd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\tr0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\tr0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\tr0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tr0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\tr0, er := C.ftruncate(C.int(fd), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := C.getegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := C.geteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := C.getgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := C.getuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\tr0, er := C.listen(C.int(s), C.int(n))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\tr0, er := C.pause()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, er := C.setregid(C.int(rgid), C.int(egid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, er := C.setreuid(C.int(ruid), C.int(euid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\tr0, er := C.shutdown(C.int(fd), C.int(how))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))\n\tn = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tnn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\tr0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\tr0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, er := C.socket(C.int(domain), C.int(typ), C.int(proto))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\tr0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\tr0, er := C.mlockall(C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\tr0, er := C.munlockall()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\tr0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))\n\ttt = Time_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := C.getsystemcfg(C.int(label))\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(target)))\n\tr0, er := C.umount(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))\n\toff = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))\n\txaddr = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))\n\twpid = Pid_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, e1 := callioctl(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, e1 := callioctl_ptr(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, e1 := callfcntl(fd, cmd, uintptr(arg))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\t_, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\t_, e1 := callfsync_range(fd, how, start, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callacct(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, e1 := callclose(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, e1 := calldup(oldfd)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tcallexit(code)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, e1 := callfchdir(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, e1 := callfchmod(fd, mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, e1 := callfdatasync(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e1 := callgetpgid(pid)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := callgetpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := callgetpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := callgetppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, e1 := callgetpriority(which, who)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e1 := callgetsid(pid)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\t_, e1 := callkill(pid, int(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, e1 := callsetpgid(pid, pgid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e1 := callsetsid()\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, e1 := callsetuid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\t_, e1 := callsetgid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, e1 := callsetpriority(which, who, prio)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tcallsync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := callumask(mask)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, e1 := calluname(uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlink(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, e1 := calldup2(oldfd, newfd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, e1 := callposix_fadvise64(fd, offset, length, advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, e1 := callfchown(fd, uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\t_, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, e1 := callftruncate(fd, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := callgetegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := callgeteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := callgetgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := callgetuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, e1 := calllisten(s, n)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, e1 := callpause()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, e1 := callsetregid(rgid, egid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, e1 := callsetreuid(ruid, euid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, e1 := callshutdown(fd, how)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callbind(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e1 := callsocket(domain, typ, proto)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, e1 := callmunmap(addr, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, e1 := callmlockall(flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, e1 := callmunlockall()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, e1 := callpipe(uintptr(unsafe.Pointer(p)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\t_, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, e1 := calltime(uintptr(unsafe.Pointer(t)))\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := callgetsystemcfg(label)\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callumount(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, e1 := calllseek(fd, offset, whence)\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, e1 := callmmap64(addr, length, prot, flags, fd, offset)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gc\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_accept accept \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getdirent getdirent \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fsync_range fsync_range \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_acct acct \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_close close \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup dup \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_exit exit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_kill kill \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_syslog syslog \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_open64 open64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_openat openat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_read read \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setdomainname setdomainname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statx statx \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sync sync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_times times \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umask umask \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_uname uname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_write write \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_listen listen \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pause pause \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pread64 pread64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pwrite64 pwrite64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_select select \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pselect pselect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_splice splice \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_stat stat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statfs statfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_bind bind \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_connect connect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socket socket \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sendto sendto \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nsendmsg nsendmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_msync msync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pipe pipe \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_poll poll \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_time time \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utime utime \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umount umount \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mmap64 mmap64 \"libc.a/shr_64.o\"\n\n//go:linkname libc_utimes libc_utimes\n//go:linkname libc_utimensat libc_utimensat\n//go:linkname libc_getcwd libc_getcwd\n//go:linkname libc_accept libc_accept\n//go:linkname libc_getdirent libc_getdirent\n//go:linkname libc_wait4 libc_wait4\n//go:linkname libc_ioctl libc_ioctl\n//go:linkname libc_fcntl libc_fcntl\n//go:linkname libc_fsync_range libc_fsync_range\n//go:linkname libc_acct libc_acct\n//go:linkname libc_chdir libc_chdir\n//go:linkname libc_chroot libc_chroot\n//go:linkname libc_close libc_close\n//go:linkname libc_dup libc_dup\n//go:linkname libc_exit libc_exit\n//go:linkname libc_faccessat libc_faccessat\n//go:linkname libc_fchdir libc_fchdir\n//go:linkname libc_fchmod libc_fchmod\n//go:linkname libc_fchmodat libc_fchmodat\n//go:linkname libc_fchownat libc_fchownat\n//go:linkname libc_fdatasync libc_fdatasync\n//go:linkname libc_getpgid libc_getpgid\n//go:linkname libc_getpgrp libc_getpgrp\n//go:linkname libc_getpid libc_getpid\n//go:linkname libc_getppid libc_getppid\n//go:linkname libc_getpriority libc_getpriority\n//go:linkname libc_getrusage libc_getrusage\n//go:linkname libc_getsid libc_getsid\n//go:linkname libc_kill libc_kill\n//go:linkname libc_syslog libc_syslog\n//go:linkname libc_mkdir libc_mkdir\n//go:linkname libc_mkdirat libc_mkdirat\n//go:linkname libc_mkfifo libc_mkfifo\n//go:linkname libc_mknod libc_mknod\n//go:linkname libc_mknodat libc_mknodat\n//go:linkname libc_nanosleep libc_nanosleep\n//go:linkname libc_open64 libc_open64\n//go:linkname libc_openat libc_openat\n//go:linkname libc_read libc_read\n//go:linkname libc_readlink libc_readlink\n//go:linkname libc_renameat libc_renameat\n//go:linkname libc_setdomainname libc_setdomainname\n//go:linkname libc_sethostname libc_sethostname\n//go:linkname libc_setpgid libc_setpgid\n//go:linkname libc_setsid libc_setsid\n//go:linkname libc_settimeofday libc_settimeofday\n//go:linkname libc_setuid libc_setuid\n//go:linkname libc_setgid libc_setgid\n//go:linkname libc_setpriority libc_setpriority\n//go:linkname libc_statx libc_statx\n//go:linkname libc_sync libc_sync\n//go:linkname libc_times libc_times\n//go:linkname libc_umask libc_umask\n//go:linkname libc_uname libc_uname\n//go:linkname libc_unlink libc_unlink\n//go:linkname libc_unlinkat libc_unlinkat\n//go:linkname libc_ustat libc_ustat\n//go:linkname libc_write libc_write\n//go:linkname libc_dup2 libc_dup2\n//go:linkname libc_posix_fadvise64 libc_posix_fadvise64\n//go:linkname libc_fchown libc_fchown\n//go:linkname libc_fstat libc_fstat\n//go:linkname libc_fstatat libc_fstatat\n//go:linkname libc_fstatfs libc_fstatfs\n//go:linkname libc_ftruncate libc_ftruncate\n//go:linkname libc_getegid libc_getegid\n//go:linkname libc_geteuid libc_geteuid\n//go:linkname libc_getgid libc_getgid\n//go:linkname libc_getuid libc_getuid\n//go:linkname libc_lchown libc_lchown\n//go:linkname libc_listen libc_listen\n//go:linkname libc_lstat libc_lstat\n//go:linkname libc_pause libc_pause\n//go:linkname libc_pread64 libc_pread64\n//go:linkname libc_pwrite64 libc_pwrite64\n//go:linkname libc_select libc_select\n//go:linkname libc_pselect libc_pselect\n//go:linkname libc_setregid libc_setregid\n//go:linkname libc_setreuid libc_setreuid\n//go:linkname libc_shutdown libc_shutdown\n//go:linkname libc_splice libc_splice\n//go:linkname libc_stat libc_stat\n//go:linkname libc_statfs libc_statfs\n//go:linkname libc_truncate libc_truncate\n//go:linkname libc_bind libc_bind\n//go:linkname libc_connect libc_connect\n//go:linkname libc_getgroups libc_getgroups\n//go:linkname libc_setgroups libc_setgroups\n//go:linkname libc_getsockopt libc_getsockopt\n//go:linkname libc_setsockopt libc_setsockopt\n//go:linkname libc_socket libc_socket\n//go:linkname libc_socketpair libc_socketpair\n//go:linkname libc_getpeername libc_getpeername\n//go:linkname libc_getsockname libc_getsockname\n//go:linkname libc_recvfrom libc_recvfrom\n//go:linkname libc_sendto libc_sendto\n//go:linkname libc_nrecvmsg libc_nrecvmsg\n//go:linkname libc_nsendmsg libc_nsendmsg\n//go:linkname libc_munmap libc_munmap\n//go:linkname libc_madvise libc_madvise\n//go:linkname libc_mprotect libc_mprotect\n//go:linkname libc_mlock libc_mlock\n//go:linkname libc_mlockall libc_mlockall\n//go:linkname libc_msync libc_msync\n//go:linkname libc_munlock libc_munlock\n//go:linkname libc_munlockall libc_munlockall\n//go:linkname libc_pipe libc_pipe\n//go:linkname libc_poll libc_poll\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:linkname libc_time libc_time\n//go:linkname libc_utime libc_utime\n//go:linkname libc_getsystemcfg libc_getsystemcfg\n//go:linkname libc_umount libc_umount\n//go:linkname libc_getrlimit libc_getrlimit\n//go:linkname libc_lseek libc_lseek\n//go:linkname libc_mmap64 libc_mmap64\n\ntype syscallFunc uintptr\n\nvar (\n\tlibc_utimes,\n\tlibc_utimensat,\n\tlibc_getcwd,\n\tlibc_accept,\n\tlibc_getdirent,\n\tlibc_wait4,\n\tlibc_ioctl,\n\tlibc_fcntl,\n\tlibc_fsync_range,\n\tlibc_acct,\n\tlibc_chdir,\n\tlibc_chroot,\n\tlibc_close,\n\tlibc_dup,\n\tlibc_exit,\n\tlibc_faccessat,\n\tlibc_fchdir,\n\tlibc_fchmod,\n\tlibc_fchmodat,\n\tlibc_fchownat,\n\tlibc_fdatasync,\n\tlibc_getpgid,\n\tlibc_getpgrp,\n\tlibc_getpid,\n\tlibc_getppid,\n\tlibc_getpriority,\n\tlibc_getrusage,\n\tlibc_getsid,\n\tlibc_kill,\n\tlibc_syslog,\n\tlibc_mkdir,\n\tlibc_mkdirat,\n\tlibc_mkfifo,\n\tlibc_mknod,\n\tlibc_mknodat,\n\tlibc_nanosleep,\n\tlibc_open64,\n\tlibc_openat,\n\tlibc_read,\n\tlibc_readlink,\n\tlibc_renameat,\n\tlibc_setdomainname,\n\tlibc_sethostname,\n\tlibc_setpgid,\n\tlibc_setsid,\n\tlibc_settimeofday,\n\tlibc_setuid,\n\tlibc_setgid,\n\tlibc_setpriority,\n\tlibc_statx,\n\tlibc_sync,\n\tlibc_times,\n\tlibc_umask,\n\tlibc_uname,\n\tlibc_unlink,\n\tlibc_unlinkat,\n\tlibc_ustat,\n\tlibc_write,\n\tlibc_dup2,\n\tlibc_posix_fadvise64,\n\tlibc_fchown,\n\tlibc_fstat,\n\tlibc_fstatat,\n\tlibc_fstatfs,\n\tlibc_ftruncate,\n\tlibc_getegid,\n\tlibc_geteuid,\n\tlibc_getgid,\n\tlibc_getuid,\n\tlibc_lchown,\n\tlibc_listen,\n\tlibc_lstat,\n\tlibc_pause,\n\tlibc_pread64,\n\tlibc_pwrite64,\n\tlibc_select,\n\tlibc_pselect,\n\tlibc_setregid,\n\tlibc_setreuid,\n\tlibc_shutdown,\n\tlibc_splice,\n\tlibc_stat,\n\tlibc_statfs,\n\tlibc_truncate,\n\tlibc_bind,\n\tlibc_connect,\n\tlibc_getgroups,\n\tlibc_setgroups,\n\tlibc_getsockopt,\n\tlibc_setsockopt,\n\tlibc_socket,\n\tlibc_socketpair,\n\tlibc_getpeername,\n\tlibc_getsockname,\n\tlibc_recvfrom,\n\tlibc_sendto,\n\tlibc_nrecvmsg,\n\tlibc_nsendmsg,\n\tlibc_munmap,\n\tlibc_madvise,\n\tlibc_mprotect,\n\tlibc_mlock,\n\tlibc_mlockall,\n\tlibc_msync,\n\tlibc_munlock,\n\tlibc_munlockall,\n\tlibc_pipe,\n\tlibc_poll,\n\tlibc_gettimeofday,\n\tlibc_time,\n\tlibc_utime,\n\tlibc_getsystemcfg,\n\tlibc_umount,\n\tlibc_getrlimit,\n\tlibc_lseek,\n\tlibc_mmap64 syscallFunc\n)\n\n// Implemented in runtime/syscall_aix.go.\nfunc rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gccgo\n\npackage unix\n\n/*\n#include <stdint.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit(int, uintptr_t);\nlong long lseek(int, long long, int);\nuintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.acct(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chdir(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chroot(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.close(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup(C.int(oldfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.exit(C.int(code)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchdir(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fdatasync(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgrp())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getppid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpriority(C.int(which), C.int(who)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.kill(C.int(pid), C.int(sig)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.settimeofday(C.uintptr_t(tv)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setuid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sync())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.times(C.uintptr_t(tms)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umask(C.int(mask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.uname(C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlink(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getegid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.geteuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.listen(C.int(s), C.int(n)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pause())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.shutdown(C.int(fd), C.int(how)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlockall(C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlockall())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pipe(C.uintptr_t(p)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.time(C.uintptr_t(t)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsystemcfg(C.int(label)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umount(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go",
    "content": "// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readv readv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_preadv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_preadv preadv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_writev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_writev writev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwritev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwritev pwritev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat64 fstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat64 fstatat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat64 lstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat64 stat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs64 statfs64 \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s",
    "content": "// go run mkasm.go darwin amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readv(SB)\nGLOBL\t·libc_readv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)\n\nTEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_preadv(SB)\nGLOBL\t·libc_preadv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)\n\nTEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_writev(SB)\nGLOBL\t·libc_writev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)\n\nTEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwritev(SB)\nGLOBL\t·libc_pwritev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)\n\nTEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat64(SB)\nGLOBL\t·libc_fstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB)\n\nTEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat64(SB)\nGLOBL\t·libc_fstatat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB)\n\nTEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs64(SB)\nGLOBL\t·libc_fstatfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB)\n\nTEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat64(SB)\nGLOBL\t·libc_getfsstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB)\n\nTEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat64(SB)\nGLOBL\t·libc_lstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat64(SB)\nGLOBL\t·libc_stat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB)\n\nTEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs64(SB)\nGLOBL\t·libc_statfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go",
    "content": "// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readv readv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_preadv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_preadv preadv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_writev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_writev writev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwritev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwritev pwritev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s",
    "content": "// go run mkasm.go darwin arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readv(SB)\nGLOBL\t·libc_readv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)\n\nTEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_preadv(SB)\nGLOBL\t·libc_preadv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)\n\nTEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_writev(SB)\nGLOBL\t·libc_writev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)\n\nTEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwritev(SB)\nGLOBL\t·libc_pwritev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go",
    "content": "// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build dragonfly && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpread(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go",
    "content": "// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go",
    "content": "// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go",
    "content": "// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go",
    "content": "// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go",
    "content": "// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build illumos && amd64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_readv readv \"libc.so\"\n//go:cgo_import_dynamic libc_preadv preadv \"libc.so\"\n//go:cgo_import_dynamic libc_writev writev \"libc.so\"\n//go:cgo_import_dynamic libc_pwritev pwritev \"libc.so\"\n//go:cgo_import_dynamic libc_accept4 accept4 \"libsocket.so\"\n\n//go:linkname procreadv libc_readv\n//go:linkname procpreadv libc_preadv\n//go:linkname procwritev libc_writev\n//go:linkname procpwritev libc_pwritev\n//go:linkname procaccept4 libc_accept4\n\nvar (\n\tprocreadv,\n\tprocpreadv,\n\tprocwritev,\n\tprocpwritev,\n\tprocaccept4 syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\t_, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockAdjtime(clockid int32, buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockSettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_SETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CloseRange(first uint, last uint, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs))\n\tfsfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsopen(fsName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fspick(dirfd int, pathName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fromPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(toPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc OpenTree(dfd int, fileName string, flags uint) (r int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fileName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdCreate(clockid int, flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdGettime(fd int, currValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdOpen(pid int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getitimer(which int, currValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mseal(b []byte, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setMemPolicy(mode int, mask *CPUSet, size int) (err error) {\n\t_, _, e1 := Syscall(SYS_SET_MEMPOLICY, uintptr(mode), uintptr(unsafe.Pointer(mask)), uintptr(size))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_386.go",
    "content": "// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go",
    "content": "// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go",
    "content": "// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go",
    "content": "// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && loong64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go",
    "content": "// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go",
    "content": "// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go",
    "content": "// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mipsle\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go",
    "content": "// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go",
    "content": "// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go",
    "content": "// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go",
    "content": "// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(pairs) > 0 {\n\t\t_p0 = unsafe.Pointer(&pairs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go",
    "content": "// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && s390x\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go",
    "content": "// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && sparc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go",
    "content": "// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go",
    "content": "// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s",
    "content": "// go run mkasm.go openbsd 386\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s",
    "content": "// go run mkasm.go openbsd amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s",
    "content": "// go run mkasm.go openbsd arm\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s",
    "content": "// go run mkasm.go openbsd arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s",
    "content": "// go run mkasm.go openbsd mips64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s",
    "content": "// go run mkasm.go openbsd ppc64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgroups(SB)\n\tRET\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgroups(SB)\n\tRET\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_wait4(SB)\n\tRET\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_accept(SB)\n\tRET\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_bind(SB)\n\tRET\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_connect(SB)\n\tRET\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socket(SB)\n\tRET\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockopt(SB)\n\tRET\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsockopt(SB)\n\tRET\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpeername(SB)\n\tRET\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockname(SB)\n\tRET\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_shutdown(SB)\n\tRET\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socketpair(SB)\n\tRET\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvfrom(SB)\n\tRET\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendto(SB)\n\tRET\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvmsg(SB)\n\tRET\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendmsg(SB)\n\tRET\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kevent(SB)\n\tRET\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimes(SB)\n\tRET\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_futimes(SB)\n\tRET\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_poll(SB)\n\tRET\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_madvise(SB)\n\tRET\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlock(SB)\n\tRET\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlockall(SB)\n\tRET\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mprotect(SB)\n\tRET\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_msync(SB)\n\tRET\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlock(SB)\n\tRET\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlockall(SB)\n\tRET\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pipe2(SB)\n\tRET\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getdents(SB)\n\tRET\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getcwd(SB)\n\tRET\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresuid(SB)\n\tRET\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresgid(SB)\n\tRET\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ioctl(SB)\n\tRET\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sysctl(SB)\n\tRET\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fcntl(SB)\n\tRET\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ppoll(SB)\n\tRET\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_access(SB)\n\tRET\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_adjtime(SB)\n\tRET\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chdir(SB)\n\tRET\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chflags(SB)\n\tRET\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chmod(SB)\n\tRET\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chown(SB)\n\tRET\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chroot(SB)\n\tRET\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_clock_gettime(SB)\n\tRET\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_close(SB)\n\tRET\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup(SB)\n\tRET\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup2(SB)\n\tRET\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup3(SB)\n\tRET\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_exit(SB)\n\tRET\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_faccessat(SB)\n\tRET\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchdir(SB)\n\tRET\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchflags(SB)\n\tRET\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmod(SB)\n\tRET\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmodat(SB)\n\tRET\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchown(SB)\n\tRET\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchownat(SB)\n\tRET\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_flock(SB)\n\tRET\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fpathconf(SB)\n\tRET\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstat(SB)\n\tRET\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatat(SB)\n\tRET\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatfs(SB)\n\tRET\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fsync(SB)\n\tRET\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ftruncate(SB)\n\tRET\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getegid(SB)\n\tRET\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_geteuid(SB)\n\tRET\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgid(SB)\n\tRET\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgid(SB)\n\tRET\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgrp(SB)\n\tRET\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpid(SB)\n\tRET\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getppid(SB)\n\tRET\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpriority(SB)\n\tRET\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrlimit(SB)\n\tRET\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrtable(SB)\n\tRET\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrusage(SB)\n\tRET\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsid(SB)\n\tRET\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_gettimeofday(SB)\n\tRET\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getuid(SB)\n\tRET\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_issetugid(SB)\n\tRET\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kill(SB)\n\tRET\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kqueue(SB)\n\tRET\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lchown(SB)\n\tRET\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_link(SB)\n\tRET\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_linkat(SB)\n\tRET\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_listen(SB)\n\tRET\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lstat(SB)\n\tRET\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdir(SB)\n\tRET\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdirat(SB)\n\tRET\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifo(SB)\n\tRET\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifoat(SB)\n\tRET\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknod(SB)\n\tRET\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknodat(SB)\n\tRET\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mount(SB)\n\tRET\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_nanosleep(SB)\n\tRET\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_open(SB)\n\tRET\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_openat(SB)\n\tRET\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pathconf(SB)\n\tRET\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pread(SB)\n\tRET\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pwrite(SB)\n\tRET\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_read(SB)\n\tRET\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlink(SB)\n\tRET\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlinkat(SB)\n\tRET\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rename(SB)\n\tRET\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_renameat(SB)\n\tRET\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_revoke(SB)\n\tRET\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rmdir(SB)\n\tRET\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lseek(SB)\n\tRET\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_select(SB)\n\tRET\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setegid(SB)\n\tRET\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_seteuid(SB)\n\tRET\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgid(SB)\n\tRET\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setlogin(SB)\n\tRET\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpgid(SB)\n\tRET\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpriority(SB)\n\tRET\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setregid(SB)\n\tRET\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setreuid(SB)\n\tRET\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresgid(SB)\n\tRET\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresuid(SB)\n\tRET\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setrtable(SB)\n\tRET\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsid(SB)\n\tRET\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_settimeofday(SB)\n\tRET\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setuid(SB)\n\tRET\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_stat(SB)\n\tRET\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_statfs(SB)\n\tRET\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlink(SB)\n\tRET\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlinkat(SB)\n\tRET\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sync(SB)\n\tRET\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_truncate(SB)\n\tRET\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_umask(SB)\n\tRET\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlink(SB)\n\tRET\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlinkat(SB)\n\tRET\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unmount(SB)\n\tRET\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_write(SB)\n\tRET\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mmap(SB)\n\tRET\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munmap(SB)\n\tRET\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getfsstat(SB)\n\tRET\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimensat(SB)\n\tRET\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pledge(SB)\n\tRET\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unveil(SB)\n\tRET\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s",
    "content": "// go run mkasm.go openbsd riscv64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go",
    "content": "// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build solaris && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_pipe pipe \"libc.so\"\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libsocket.so\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n//go:cgo_import_dynamic libc_gethostname gethostname \"libc.so\"\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n//go:cgo_import_dynamic libc_futimesat futimesat \"libc.so\"\n//go:cgo_import_dynamic libc_accept accept \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc_acct acct \"libc.so\"\n//go:cgo_import_dynamic libc___makedev __makedev \"libc.so\"\n//go:cgo_import_dynamic libc___major __major \"libc.so\"\n//go:cgo_import_dynamic libc___minor __minor \"libc.so\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n//go:cgo_import_dynamic libc_clockgettime clockgettime \"libc.so\"\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n//go:cgo_import_dynamic libc_creat creat \"libc.so\"\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.so\"\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatvfs fstatvfs \"libc.so\"\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_listen __xnet_listen \"libsocket.so\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n//go:cgo_import_dynamic libc_pause pause \"libc.so\"\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.so\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libsocket.so\"\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n//go:cgo_import_dynamic libc_statvfs statvfs \"libc.so\"\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n//go:cgo_import_dynamic libc_sysconf sysconf \"libc.so\"\n//go:cgo_import_dynamic libc_times times \"libc.so\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n//go:cgo_import_dynamic libc_uname uname \"libc.so\"\n//go:cgo_import_dynamic libc_umount umount \"libc.so\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.so\"\n//go:cgo_import_dynamic libc_utime utime \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_bind __xnet_bind \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_connect __xnet_connect \"libsocket.so\"\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n//go:cgo_import_dynamic libc_sendfile sendfile \"libsendfile.so\"\n//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socket __xnet_socket \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair \"libsocket.so\"\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libsocket.so\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeerucred getpeerucred \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_get ucred_get \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_free ucred_free \"libc.so\"\n//go:cgo_import_dynamic libc_port_create port_create \"libc.so\"\n//go:cgo_import_dynamic libc_port_associate port_associate \"libc.so\"\n//go:cgo_import_dynamic libc_port_dissociate port_dissociate \"libc.so\"\n//go:cgo_import_dynamic libc_port_get port_get \"libc.so\"\n//go:cgo_import_dynamic libc_port_getn port_getn \"libc.so\"\n//go:cgo_import_dynamic libc_putmsg putmsg \"libc.so\"\n//go:cgo_import_dynamic libc_getmsg getmsg \"libc.so\"\n\n//go:linkname procpipe libc_pipe\n//go:linkname procpipe2 libc_pipe2\n//go:linkname procgetsockname libc_getsockname\n//go:linkname procGetcwd libc_getcwd\n//go:linkname procgetgroups libc_getgroups\n//go:linkname procsetgroups libc_setgroups\n//go:linkname procwait4 libc_wait4\n//go:linkname procgethostname libc_gethostname\n//go:linkname procutimes libc_utimes\n//go:linkname procutimensat libc_utimensat\n//go:linkname procfcntl libc_fcntl\n//go:linkname procfutimesat libc_futimesat\n//go:linkname procaccept libc_accept\n//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg\n//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg\n//go:linkname procacct libc_acct\n//go:linkname proc__makedev libc___makedev\n//go:linkname proc__major libc___major\n//go:linkname proc__minor libc___minor\n//go:linkname procioctl libc_ioctl\n//go:linkname procpoll libc_poll\n//go:linkname procAccess libc_access\n//go:linkname procAdjtime libc_adjtime\n//go:linkname procChdir libc_chdir\n//go:linkname procChmod libc_chmod\n//go:linkname procChown libc_chown\n//go:linkname procChroot libc_chroot\n//go:linkname procClockGettime libc_clockgettime\n//go:linkname procClose libc_close\n//go:linkname procCreat libc_creat\n//go:linkname procDup libc_dup\n//go:linkname procDup2 libc_dup2\n//go:linkname procExit libc_exit\n//go:linkname procFaccessat libc_faccessat\n//go:linkname procFchdir libc_fchdir\n//go:linkname procFchmod libc_fchmod\n//go:linkname procFchmodat libc_fchmodat\n//go:linkname procFchown libc_fchown\n//go:linkname procFchownat libc_fchownat\n//go:linkname procFdatasync libc_fdatasync\n//go:linkname procFlock libc_flock\n//go:linkname procFpathconf libc_fpathconf\n//go:linkname procFstat libc_fstat\n//go:linkname procFstatat libc_fstatat\n//go:linkname procFstatvfs libc_fstatvfs\n//go:linkname procGetdents libc_getdents\n//go:linkname procGetgid libc_getgid\n//go:linkname procGetpid libc_getpid\n//go:linkname procGetpgid libc_getpgid\n//go:linkname procGetpgrp libc_getpgrp\n//go:linkname procGeteuid libc_geteuid\n//go:linkname procGetegid libc_getegid\n//go:linkname procGetppid libc_getppid\n//go:linkname procGetpriority libc_getpriority\n//go:linkname procGetrlimit libc_getrlimit\n//go:linkname procGetrusage libc_getrusage\n//go:linkname procGetsid libc_getsid\n//go:linkname procGettimeofday libc_gettimeofday\n//go:linkname procGetuid libc_getuid\n//go:linkname procKill libc_kill\n//go:linkname procLchown libc_lchown\n//go:linkname procLink libc_link\n//go:linkname proc__xnet_listen libc___xnet_listen\n//go:linkname procLstat libc_lstat\n//go:linkname procMadvise libc_madvise\n//go:linkname procMkdir libc_mkdir\n//go:linkname procMkdirat libc_mkdirat\n//go:linkname procMkfifo libc_mkfifo\n//go:linkname procMkfifoat libc_mkfifoat\n//go:linkname procMknod libc_mknod\n//go:linkname procMknodat libc_mknodat\n//go:linkname procMlock libc_mlock\n//go:linkname procMlockall libc_mlockall\n//go:linkname procMprotect libc_mprotect\n//go:linkname procMsync libc_msync\n//go:linkname procMunlock libc_munlock\n//go:linkname procMunlockall libc_munlockall\n//go:linkname procNanosleep libc_nanosleep\n//go:linkname procOpen libc_open\n//go:linkname procOpenat libc_openat\n//go:linkname procPathconf libc_pathconf\n//go:linkname procPause libc_pause\n//go:linkname procpread libc_pread\n//go:linkname procpwrite libc_pwrite\n//go:linkname procread libc_read\n//go:linkname procReadlink libc_readlink\n//go:linkname procRename libc_rename\n//go:linkname procRenameat libc_renameat\n//go:linkname procRmdir libc_rmdir\n//go:linkname proclseek libc_lseek\n//go:linkname procSelect libc_select\n//go:linkname procSetegid libc_setegid\n//go:linkname procSeteuid libc_seteuid\n//go:linkname procSetgid libc_setgid\n//go:linkname procSethostname libc_sethostname\n//go:linkname procSetpgid libc_setpgid\n//go:linkname procSetpriority libc_setpriority\n//go:linkname procSetregid libc_setregid\n//go:linkname procSetreuid libc_setreuid\n//go:linkname procSetsid libc_setsid\n//go:linkname procSetuid libc_setuid\n//go:linkname procshutdown libc_shutdown\n//go:linkname procStat libc_stat\n//go:linkname procStatvfs libc_statvfs\n//go:linkname procSymlink libc_symlink\n//go:linkname procSync libc_sync\n//go:linkname procSysconf libc_sysconf\n//go:linkname procTimes libc_times\n//go:linkname procTruncate libc_truncate\n//go:linkname procFsync libc_fsync\n//go:linkname procFtruncate libc_ftruncate\n//go:linkname procUmask libc_umask\n//go:linkname procUname libc_uname\n//go:linkname procumount libc_umount\n//go:linkname procUnlink libc_unlink\n//go:linkname procUnlinkat libc_unlinkat\n//go:linkname procUstat libc_ustat\n//go:linkname procUtime libc_utime\n//go:linkname proc__xnet_bind libc___xnet_bind\n//go:linkname proc__xnet_connect libc___xnet_connect\n//go:linkname procmmap libc_mmap\n//go:linkname procmunmap libc_munmap\n//go:linkname procsendfile libc_sendfile\n//go:linkname proc__xnet_sendto libc___xnet_sendto\n//go:linkname proc__xnet_socket libc___xnet_socket\n//go:linkname proc__xnet_socketpair libc___xnet_socketpair\n//go:linkname procwrite libc_write\n//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt\n//go:linkname procgetpeername libc_getpeername\n//go:linkname procsetsockopt libc_setsockopt\n//go:linkname procrecvfrom libc_recvfrom\n//go:linkname procgetpeerucred libc_getpeerucred\n//go:linkname procucred_get libc_ucred_get\n//go:linkname procucred_geteuid libc_ucred_geteuid\n//go:linkname procucred_getegid libc_ucred_getegid\n//go:linkname procucred_getruid libc_ucred_getruid\n//go:linkname procucred_getrgid libc_ucred_getrgid\n//go:linkname procucred_getsuid libc_ucred_getsuid\n//go:linkname procucred_getsgid libc_ucred_getsgid\n//go:linkname procucred_getpid libc_ucred_getpid\n//go:linkname procucred_free libc_ucred_free\n//go:linkname procport_create libc_port_create\n//go:linkname procport_associate libc_port_associate\n//go:linkname procport_dissociate libc_port_dissociate\n//go:linkname procport_get libc_port_get\n//go:linkname procport_getn libc_port_getn\n//go:linkname procputmsg libc_putmsg\n//go:linkname procgetmsg libc_getmsg\n\nvar (\n\tprocpipe,\n\tprocpipe2,\n\tprocgetsockname,\n\tprocGetcwd,\n\tprocgetgroups,\n\tprocsetgroups,\n\tprocwait4,\n\tprocgethostname,\n\tprocutimes,\n\tprocutimensat,\n\tprocfcntl,\n\tprocfutimesat,\n\tprocaccept,\n\tproc__xnet_recvmsg,\n\tproc__xnet_sendmsg,\n\tprocacct,\n\tproc__makedev,\n\tproc__major,\n\tproc__minor,\n\tprocioctl,\n\tprocpoll,\n\tprocAccess,\n\tprocAdjtime,\n\tprocChdir,\n\tprocChmod,\n\tprocChown,\n\tprocChroot,\n\tprocClockGettime,\n\tprocClose,\n\tprocCreat,\n\tprocDup,\n\tprocDup2,\n\tprocExit,\n\tprocFaccessat,\n\tprocFchdir,\n\tprocFchmod,\n\tprocFchmodat,\n\tprocFchown,\n\tprocFchownat,\n\tprocFdatasync,\n\tprocFlock,\n\tprocFpathconf,\n\tprocFstat,\n\tprocFstatat,\n\tprocFstatvfs,\n\tprocGetdents,\n\tprocGetgid,\n\tprocGetpid,\n\tprocGetpgid,\n\tprocGetpgrp,\n\tprocGeteuid,\n\tprocGetegid,\n\tprocGetppid,\n\tprocGetpriority,\n\tprocGetrlimit,\n\tprocGetrusage,\n\tprocGetsid,\n\tprocGettimeofday,\n\tprocGetuid,\n\tprocKill,\n\tprocLchown,\n\tprocLink,\n\tproc__xnet_listen,\n\tprocLstat,\n\tprocMadvise,\n\tprocMkdir,\n\tprocMkdirat,\n\tprocMkfifo,\n\tprocMkfifoat,\n\tprocMknod,\n\tprocMknodat,\n\tprocMlock,\n\tprocMlockall,\n\tprocMprotect,\n\tprocMsync,\n\tprocMunlock,\n\tprocMunlockall,\n\tprocNanosleep,\n\tprocOpen,\n\tprocOpenat,\n\tprocPathconf,\n\tprocPause,\n\tprocpread,\n\tprocpwrite,\n\tprocread,\n\tprocReadlink,\n\tprocRename,\n\tprocRenameat,\n\tprocRmdir,\n\tproclseek,\n\tprocSelect,\n\tprocSetegid,\n\tprocSeteuid,\n\tprocSetgid,\n\tprocSethostname,\n\tprocSetpgid,\n\tprocSetpriority,\n\tprocSetregid,\n\tprocSetreuid,\n\tprocSetsid,\n\tprocSetuid,\n\tprocshutdown,\n\tprocStat,\n\tprocStatvfs,\n\tprocSymlink,\n\tprocSync,\n\tprocSysconf,\n\tprocTimes,\n\tprocTruncate,\n\tprocFsync,\n\tprocFtruncate,\n\tprocUmask,\n\tprocUname,\n\tprocumount,\n\tprocUnlink,\n\tprocUnlinkat,\n\tprocUstat,\n\tprocUtime,\n\tproc__xnet_bind,\n\tproc__xnet_connect,\n\tprocmmap,\n\tprocmunmap,\n\tprocsendfile,\n\tproc__xnet_sendto,\n\tproc__xnet_socket,\n\tproc__xnet_socketpair,\n\tprocwrite,\n\tproc__xnet_getsockopt,\n\tprocgetpeername,\n\tprocsetsockopt,\n\tprocrecvfrom,\n\tprocgetpeerucred,\n\tprocucred_get,\n\tprocucred_geteuid,\n\tprocucred_getegid,\n\tprocucred_getruid,\n\tprocucred_getrgid,\n\tprocucred_getsuid,\n\tprocucred_getsgid,\n\tprocucred_getpid,\n\tprocucred_free,\n\tprocport_create,\n\tprocport_associate,\n\tprocport_dissociate,\n\tprocport_get,\n\tprocport_getn,\n\tprocputmsg,\n\tprocgetmsg syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int32(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gethostname(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc acct(path *byte) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __makedev(version int, major uint, minor uint) (val uint64) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)\n\tval = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __major(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __minor(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlRet(fd int, req int, arg uintptr) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_listen)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs(path string, vfsstat *Statvfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysconf(which int) (n int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeerucred(fd uintptr, ucred *uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGet(pid int) (ucred uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tucred = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGeteuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetegid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetruid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetrgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetsuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetsgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetpid(ucred uintptr) (pid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredFree(ucred uintptr) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_create() (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_dissociate(port int, source int, object uintptr) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error))\n\nvar Flistxattr = enter_Flistxattr\n\nfunc enter_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tfuncref := get_FlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Flistxattr\n\t} else {\n\t\t*funcref = error_Flistxattr\n\t}\n\treturn (*funcref)(fd, dest)\n}\n\nfunc error_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FremovexattrAddr() *(func(fd int, attr string) (err error))\n\nvar Fremovexattr = enter_Fremovexattr\n\nfunc enter_Fremovexattr(fd int, attr string) (err error) {\n\tfuncref := get_FremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fremovexattr\n\t} else {\n\t\t*funcref = error_Fremovexattr\n\t}\n\treturn (*funcref)(fd, attr)\n}\n\nfunc error_Fremovexattr(fd int, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error))\n\nvar Fgetxattr = enter_Fgetxattr\n\nfunc enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_FgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fgetxattr\n\t} else {\n\t\t*funcref = error_Fgetxattr\n\t}\n\treturn (*funcref)(fd, attr, dest)\n}\n\nfunc error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p1 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error))\n\nvar Fsetxattr = enter_Fsetxattr\n\nfunc enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tfuncref := get_FsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fsetxattr\n\t} else {\n\t\t*funcref = error_Fsetxattr\n\t}\n\treturn (*funcref)(fd, attr, data, flag)\n}\n\nfunc error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error))\n\nvar accept4 = enter_accept4\n\nfunc enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfuncref := get_accept4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, \"\") == 0 {\n\t\t*funcref = impl_accept4\n\t} else {\n\t\t*funcref = error_accept4\n\t}\n\treturn (*funcref)(s, rsa, addrlen, flags)\n}\n\nfunc error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RemovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Removexattr = enter_Removexattr\n\nfunc enter_Removexattr(path string, attr string) (err error) {\n\tfuncref := get_RemovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Removexattr\n\t} else {\n\t\t*funcref = error_Removexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Removexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tresult = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag))\n\truntime.ExitSyscall()\n\tid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dup3(oldfd int, newfd int, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error))\n\nvar Dup3 = enter_Dup3\n\nfunc enter_Dup3(oldfd int, newfd int, flags int) (err error) {\n\tfuncref := get_Dup3Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_DUP3<<4, \"\") == 0 {\n\t\t*funcref = impl_Dup3\n\t} else {\n\t\t*funcref = error_Dup3\n\t}\n\treturn (*funcref)(oldfd, newfd, flags)\n}\n\nfunc error_Dup3(oldfd int, newfd int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dirfd(dirp uintptr) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_DirfdAddr() *(func(dirp uintptr) (fd int, err error))\n\nvar Dirfd = enter_Dirfd\n\nfunc enter_Dirfd(dirp uintptr) (fd int, err error) {\n\tfuncref := get_DirfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Dirfd\n\t} else {\n\t\t*funcref = error_Dirfd\n\t}\n\treturn (*funcref)(dirp)\n}\n\nfunc error_Dirfd(dirp uintptr) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate(size int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreateAddr() *(func(size int) (fd int, err error))\n\nvar EpollCreate = enter_EpollCreate\n\nfunc enter_EpollCreate(size int) (fd int, err error) {\n\tfuncref := get_EpollCreateAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate\n\t} else {\n\t\t*funcref = error_EpollCreate\n\t}\n\treturn (*funcref)(size)\n}\n\nfunc error_EpollCreate(size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreate1Addr() *(func(flags int) (fd int, err error))\n\nvar EpollCreate1 = enter_EpollCreate1\n\nfunc enter_EpollCreate1(flags int) (fd int, err error) {\n\tfuncref := get_EpollCreate1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate1\n\t} else {\n\t\t*funcref = error_EpollCreate1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_EpollCreate1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error))\n\nvar EpollCtl = enter_EpollCtl\n\nfunc enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\tfuncref := get_EpollCtlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCtl\n\t} else {\n\t\t*funcref = error_EpollCtl\n\t}\n\treturn (*funcref)(epfd, op, fd, event)\n}\n\nfunc error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error))\n\nvar EpollPwait = enter_EpollPwait\n\nfunc enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tfuncref := get_EpollPwaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollPwait\n\t} else {\n\t\t*funcref = error_EpollPwait\n\t}\n\treturn (*funcref)(epfd, events, msec, sigmask)\n}\n\nfunc error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error))\n\nvar EpollWait = enter_EpollWait\n\nfunc enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tfuncref := get_EpollWaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollWait\n\t} else {\n\t\t*funcref = error_EpollWait\n\t}\n\treturn (*funcref)(epfd, events, msec)\n}\n\nfunc error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Errno2() (er2 int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4)\n\truntime.ExitSyscall()\n\ter2 = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Eventfd(initval uint, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error))\n\nvar Eventfd = enter_Eventfd\n\nfunc enter_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfuncref := get_EventfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Eventfd\n\t} else {\n\t\t*funcref = error_Eventfd\n\t}\n\treturn (*funcref)(initval, flags)\n}\n\nfunc error_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code))\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Faccessat = enter_Faccessat\n\nfunc enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FaccessatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Faccessat\n\t} else {\n\t\t*funcref = error_Faccessat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Fchmodat = enter_Fchmodat\n\nfunc enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FchmodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchmodat\n\t} else {\n\t\t*funcref = error_Fchmodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error))\n\nvar Fchownat = enter_Fchownat\n\nfunc enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tfuncref := get_FchownatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchownat\n\t} else {\n\t\t*funcref = error_Fchownat\n\t}\n\treturn (*funcref)(fd, path, uid, gid, flags)\n}\n\nfunc error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tretval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fdatasync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FdatasyncAddr() *(func(fd int) (err error))\n\nvar Fdatasync = enter_Fdatasync\n\nfunc enter_Fdatasync(fd int) (err error) {\n\tfuncref := get_FdatasyncAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, \"\") == 0 {\n\t\t*funcref = impl_Fdatasync\n\t} else {\n\t\t*funcref = error_Fdatasync\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Fdatasync(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_LE_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error))\n\nvar fstatat = enter_fstatat\n\nfunc enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tfuncref := get_fstatatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_fstatat\n\t} else {\n\t\t*funcref = error_fstatat\n\t}\n\treturn (*funcref)(dirfd, path, stat, flags)\n}\n\nfunc error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error))\n\nvar Lgetxattr = enter_Lgetxattr\n\nfunc enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_LgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lgetxattr\n\t} else {\n\t\t*funcref = error_Lgetxattr\n\t}\n\treturn (*funcref)(link, attr, dest)\n}\n\nfunc error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Lsetxattr = enter_Lsetxattr\n\nfunc enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_LsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lsetxattr\n\t} else {\n\t\t*funcref = error_Lsetxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error))\n\nvar Fstatfs = enter_Fstatfs\n\nfunc enter_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tfuncref := get_FstatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Fstatfs\n\t} else {\n\t\t*funcref = error_Fstatfs\n\t}\n\treturn (*funcref)(fd, buf)\n}\n\nfunc error_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, stat *Statvfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimes(fd int, tv []Timeval) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p0 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesAddr() *(func(fd int, tv []Timeval) (err error))\n\nvar Futimes = enter_Futimes\n\nfunc enter_Futimes(fd int, tv []Timeval) (err error) {\n\tfuncref := get_FutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimes\n\t} else {\n\t\t*funcref = error_Futimes\n\t}\n\treturn (*funcref)(fd, tv)\n}\n\nfunc error_Futimes(fd int, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error))\n\nvar Futimesat = enter_Futimesat\n\nfunc enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tfuncref := get_FutimesatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimesat\n\t} else {\n\t\t*funcref = error_Futimesat\n\t}\n\treturn (*funcref)(dirfd, path, tv)\n}\n\nfunc error_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error))\n\nvar Getrandom = enter_Getrandom\n\nfunc enter_Getrandom(buf []byte, flags int) (n int, err error) {\n\tfuncref := get_GetrandomAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, \"\") == 0 {\n\t\t*funcref = impl_Getrandom\n\t} else {\n\t\t*funcref = error_Getrandom\n\t}\n\treturn (*funcref)(buf, flags)\n}\n\nfunc error_Getrandom(buf []byte, flags int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit() (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4)\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInitAddr() *(func() (fd int, err error))\n\nvar InotifyInit = enter_InotifyInit\n\nfunc enter_InotifyInit() (fd int, err error) {\n\tfuncref := get_InotifyInitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit\n\t} else {\n\t\t*funcref = error_InotifyInit\n\t}\n\treturn (*funcref)()\n}\n\nfunc error_InotifyInit() (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInit1Addr() *(func(flags int) (fd int, err error))\n\nvar InotifyInit1 = enter_InotifyInit1\n\nfunc enter_InotifyInit1(flags int) (fd int, err error) {\n\tfuncref := get_InotifyInit1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit1\n\t} else {\n\t\t*funcref = error_InotifyInit1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_InotifyInit1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\truntime.ExitSyscall()\n\twatchdesc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error))\n\nvar InotifyAddWatch = enter_InotifyAddWatch\n\nfunc enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tfuncref := get_InotifyAddWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyAddWatch\n\t} else {\n\t\t*funcref = error_InotifyAddWatch\n\t}\n\treturn (*funcref)(fd, pathname, mask)\n}\n\nfunc error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\twatchdesc = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc))\n\truntime.ExitSyscall()\n\tsuccess = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error))\n\nvar InotifyRmWatch = enter_InotifyRmWatch\n\nfunc enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tfuncref := get_InotifyRmWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyRmWatch\n\t} else {\n\t\t*funcref = error_InotifyRmWatch\n\t}\n\treturn (*funcref)(fd, watchdesc)\n}\n\nfunc error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tsuccess = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Listxattr = enter_Listxattr\n\nfunc enter_Listxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_ListxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Listxattr\n\t} else {\n\t\t*funcref = error_Listxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Listxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Llistxattr = enter_Llistxattr\n\nfunc enter_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_LlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Llistxattr\n\t} else {\n\t\t*funcref = error_Llistxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LremovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Lremovexattr = enter_Lremovexattr\n\nfunc enter_Lremovexattr(path string, attr string) (err error) {\n\tfuncref := get_LremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lremovexattr\n\t} else {\n\t\t*funcref = error_Lremovexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Lremovexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lutimes(path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LutimesAddr() *(func(path string, tv []Timeval) (err error))\n\nvar Lutimes = enter_Lutimes\n\nfunc enter_Lutimes(path string, tv []Timeval) (err error) {\n\tfuncref := get_LutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lutimes\n\t} else {\n\t\t*funcref = error_Lutimes\n\t}\n\treturn (*funcref)(path, tv)\n}\n\nfunc error_Lutimes(path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(fds) > 0 {\n\t\t_p0 = unsafe.Pointer(&fds[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error))\n\nvar Statfs = enter_Statfs\n\nfunc enter_Statfs(path string, buf *Statfs_t) (err error) {\n\tfuncref := get_StatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Statfs\n\t} else {\n\t\t*funcref = error_Statfs\n\t}\n\treturn (*funcref)(path, buf)\n}\n\nfunc error_Statfs(path string, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Syncfs(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SyncfsAddr() *(func(fd int) (err error))\n\nvar Syncfs = enter_Syncfs\n\nfunc enter_Syncfs(fd int) (err error) {\n\tfuncref := get_SyncfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Syncfs\n\t} else {\n\t\t*funcref = error_Syncfs\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Syncfs(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms)))\n\truntime.ExitSyscall()\n\tticks = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent_A(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(parm)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unmount_LE(filesystem string, mtm int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\truntime.ExitSyscall()\n\tret = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unshare(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnshareAddr() *(func(flags int) (err error))\n\nvar Unshare = enter_Unshare\n\nfunc enter_Unshare(flags int) (err error) {\n\tfuncref := get_UnshareAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, \"\") == 0 {\n\t\t*funcref = impl_Unshare\n\t} else {\n\t\t*funcref = error_Unshare\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_Unshare(flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gethostname(buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid))\n\tpgid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who))\n\truntime.ExitSyscall()\n\tprio = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrusage(who int, rusage *rusage_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4)\n\truntime.ExitSyscall()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4)\n\truntime.ExitSyscall()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid))\n\tsid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error))\n\nvar Linkat = enter_Linkat\n\nfunc enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tfuncref := get_LinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Linkat\n\t} else {\n\t\t*funcref = error_Linkat\n\t}\n\treturn (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags)\n}\n\nfunc error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkdirat = enter_Mkdirat\n\nfunc enter_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkdiratAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkdirat\n\t} else {\n\t\t*funcref = error_Mkdirat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc error_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error))\n\nvar Mknodat = enter_Mknodat\n\nfunc enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tfuncref := get_MknodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mknodat\n\t} else {\n\t\t*funcref = error_Mknodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, dev)\n}\n\nfunc error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_PivotRoot(newroot string, oldroot string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(oldroot)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PivotRootAddr() *(func(newroot string, oldroot string) (err error))\n\nvar PivotRoot = enter_PivotRoot\n\nfunc enter_PivotRoot(newroot string, oldroot string) (err error) {\n\tfuncref := get_PivotRootAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_PivotRoot\n\t} else {\n\t\t*funcref = error_PivotRoot\n\t}\n\treturn (*funcref)(newroot, oldroot)\n}\n\nfunc error_PivotRoot(newroot string, oldroot string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error))\n\nvar Prctl = enter_Prctl\n\nfunc enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\tfuncref := get_PrctlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Prctl\n\t} else {\n\t\t*funcref = error_Prctl\n\t}\n\treturn (*funcref)(option, arg2, arg3, arg4, arg5)\n}\n\nfunc error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error))\n\nvar Prlimit = enter_Prlimit\n\nfunc enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tfuncref := get_PrlimitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, \"\") == 0 {\n\t\t*funcref = impl_Prlimit\n\t} else {\n\t\t*funcref = error_Prlimit\n\t}\n\treturn (*funcref)(pid, resource, newlimit, old)\n}\n\nfunc error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error))\n\nvar Renameat = enter_Renameat\n\nfunc enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tfuncref := get_RenameatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat\n\t} else {\n\t\t*funcref = error_Renameat\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath)\n}\n\nfunc error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error))\n\nvar Renameat2 = enter_Renameat2\n\nfunc enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tfuncref := get_Renameat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat2\n\t} else {\n\t\t*funcref = error_Renameat2\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags)\n}\n\nfunc error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence))\n\truntime.ExitSyscall()\n\toff = int64(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SethostnameAddr() *(func(p []byte) (err error))\n\nvar Sethostname = enter_Sethostname\n\nfunc enter_Sethostname(p []byte) (err error) {\n\tfuncref := get_SethostnameAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Sethostname\n\t} else {\n\t\t*funcref = error_Sethostname\n\t}\n\treturn (*funcref)(p)\n}\n\nfunc error_Sethostname(p []byte) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Setns(fd int, nstype int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetnsAddr() *(func(fd int, nstype int) (err error))\n\nvar Setns = enter_Setns\n\nfunc enter_Setns(fd int, nstype int) (err error) {\n\tfuncref := get_SetnsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SETNS<<4, \"\") == 0 {\n\t\t*funcref = impl_Setns\n\t} else {\n\t\t*funcref = error_Setns\n\t}\n\treturn (*funcref)(fd, nstype)\n}\n\nfunc error_Setns(fd int, nstype int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, lim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4)\n\tpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statLE *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error))\n\nvar Symlinkat = enter_Symlinkat\n\nfunc enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tfuncref := get_SymlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Symlinkat\n\t} else {\n\t\t*funcref = error_Symlinkat\n\t}\n\treturn (*funcref)(oldPath, dirfd, newPath)\n}\n\nfunc error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4)\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcgetattr(fildes int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcsetattr(fildes int, when int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask))\n\truntime.ExitSyscall()\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error))\n\nvar Unlinkat = enter_Unlinkat\n\nfunc enter_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tfuncref := get_UnlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unlinkat\n\t} else {\n\t\t*funcref = error_Unlinkat\n\t}\n\treturn (*funcref)(dirfd, path, flags)\n}\n\nfunc error_Unlinkat(dirfd int, path string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, utim *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error))\n\nvar openat = enter_openat\n\nfunc enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfuncref := get_openatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat\n\t} else {\n\t\t*funcref = error_openat\n\t}\n\treturn (*funcref)(dirfd, path, flags, mode)\n}\n\nfunc error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error))\n\nvar openat2 = enter_openat2\n\nfunc enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfuncref := get_openat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat2\n\t} else {\n\t\t*funcref = error_openat2\n\t}\n\treturn (*funcref)(dirfd, path, open_how, size)\n}\n\nfunc error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitid(idType int, id int, info *Siginfo, options int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *timeval_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error))\n\nvar utimensat = enter_utimensat\n\nfunc enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tfuncref := get_utimensatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_utimensat\n\t} else {\n\t\t*funcref = error_utimensat\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Posix_openpt(oflag int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Grantpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlockpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_KQUEUE_WORKLOOP_CTL            = 530\n\tSYS___MACH_BRIDGE_REMOTE_TIME      = 531\n\tSYS_MAXSYSCALL                     = 532\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go",
    "content": "// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSYS_EXIT  = 1 // { void exit(int rval); }\n\tSYS_FORK  = 2 // { int fork(void); }\n\tSYS_READ  = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN  = 5 // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE = 6 // { int close(int fd); }\n\tSYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int\n\t// SYS_NOSYS = 8;  // { int nosys(void); } __nosys nosys_args int\n\tSYS_LINK                   = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                 = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                  = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                 = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                 = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETFSSTAT              = 18  // { int getfsstat(struct statfs *buf, long bufsize, int flags); }\n\tSYS_GETPID                 = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                  = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                 = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                 = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                = 28  // { int sendmsg(int s, caddr_t msg, int flags); }\n\tSYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }\n\tSYS_ACCEPT                 = 30  // { int accept(int s, caddr_t name, int *anamelen); }\n\tSYS_GETPEERNAME            = 31  // { int getpeername(int fdes, caddr_t asa, int *alen); }\n\tSYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, caddr_t asa, int *alen); }\n\tSYS_ACCESS                 = 33  // { int access(char *path, int flags); }\n\tSYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                   = 36  // { int sync(void); }\n\tSYS_KILL                   = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                = 39  // { pid_t getppid(void); }\n\tSYS_DUP                    = 41  // { int dup(int fd); }\n\tSYS_PIPE                   = 42  // { int pipe(void); }\n\tSYS_GETEGID                = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                 = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, size_t namelen); }\n\tSYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                   = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                 = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                 = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK               = 58  // { int readlink(char *path, char *buf, int count); }\n\tSYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                 = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                  = 66  // { pid_t vfork(void); }\n\tSYS_SBRK                   = 69  // { caddr_t sbrk(size_t incr); }\n\tSYS_SSTK                   = 70  // { int sstk(size_t incr); }\n\tSYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT               = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER              = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                 = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER              = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                   = 90  // { int dup2(int from, int to); }\n\tSYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                  = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                 = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                   = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                 = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE              = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                 = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                  = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                  = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                 = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                 = 147 // { int setsid(void); }\n\tSYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_STATFS                 = 157 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                = 158 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFH                  = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_EXTPREAD               = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTPWRITE              = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                 = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_MMAP                   = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }\n\tSYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE               = 200 // { int truncate(char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE              = 201 // { int ftruncate(int fd, int pad, off_t length); }\n\tSYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE               = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SEMGET                 = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }\n\tSYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                 = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                 = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                  = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMCTL                 = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_SHMDT                  = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                 = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                  = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID              = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_FHSTATFS               = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT               = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                 = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN             = 314 // { int aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND            = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL             = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR              = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_AIO_READ               = 318 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE              = 319 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO             = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_YIELD                  = 321 // { int yield(void); }\n\tSYS_MLOCKALL               = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL             = 325 // { int munlockall(void); }\n\tSYS___GETCWD               = 326 // { int __getcwd(u_char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD            = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                   = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGRETURN              = 344 // { int sigreturn(ucontext_t *sigcntxp); }\n\tSYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }\n\tSYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE       = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                 = 362 // { int kqueue(void); }\n\tSYS_KEVENT                 = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_KENV                   = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS               = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_VARSYM_SET             = 450 // { int varsym_set(int level, const char *name, const char *data); }\n\tSYS_VARSYM_GET             = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }\n\tSYS_VARSYM_LIST            = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }\n\tSYS_EXEC_SYS_REGISTER      = 465 // { int exec_sys_register(void *entry); }\n\tSYS_EXEC_SYS_UNREGISTER    = 466 // { int exec_sys_unregister(int id); }\n\tSYS_SYS_CHECKPOINT         = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); }\n\tSYS_MOUNTCTL               = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); }\n\tSYS_UMTX_SLEEP             = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); }\n\tSYS_UMTX_WAKEUP            = 470 // { int umtx_wakeup(volatile const int *ptr, int count); }\n\tSYS_JAIL_ATTACH            = 471 // { int jail_attach(int jid); }\n\tSYS_SET_TLS_AREA           = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_GET_TLS_AREA           = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_CLOSEFROM              = 474 // { int closefrom(int fd); }\n\tSYS_STAT                   = 475 // { int stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                  = 476 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                  = 477 // { int lstat(const char *path, struct stat *ub); }\n\tSYS_FHSTAT                 = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS_GETDENTS               = 480 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }\n\tSYS_EXTACCEPT              = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }\n\tSYS_EXTCONNECT             = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }\n\tSYS_MCONTROL               = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }\n\tSYS_VMSPACE_CREATE         = 486 // { int vmspace_create(void *id, int type, void *data); }\n\tSYS_VMSPACE_DESTROY        = 487 // { int vmspace_destroy(void *id); }\n\tSYS_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd, \t\tstruct trapframe *tframe,\tstruct vextframe *vframe); }\n\tSYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }\n\tSYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,\tsize_t len); }\n\tSYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr, \tsize_t len, int behav, off_t value); }\n\tSYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTEXIT                = 494 // { void extexit(int how, int status, void *addr); }\n\tSYS_LWP_CREATE             = 495 // { int lwp_create(struct lwp_params *params); }\n\tSYS_LWP_GETTID             = 496 // { lwpid_t lwp_gettid(void); }\n\tSYS_LWP_KILL               = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }\n\tSYS_LWP_RTPRIO             = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }\n\tSYS_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts,    const sigset_t *sigmask); }\n\tSYS_STATVFS                = 500 // { int statvfs(const char *path, struct statvfs *buf); }\n\tSYS_FSTATVFS               = 501 // { int fstatvfs(int fd, struct statvfs *buf); }\n\tSYS_FHSTATVFS              = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }\n\tSYS_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          struct statvfs *vbuf, long vbufsize, int flags); }\n\tSYS_OPENAT                 = 504 // { int openat(int fd, char *path, int flags, int mode); }\n\tSYS_FSTATAT                = 505 // { int fstatat(int fd, char *path, \tstruct stat *sb, int flags); }\n\tSYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }\n\tSYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }\n\tSYS_UNLINKAT               = 508 // { int unlinkat(int fd, char *path, int flags); }\n\tSYS_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, int flags); }\n\tSYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }\n\tSYS_MQ_CLOSE               = 511 // { int mq_close(mqd_t mqdes); }\n\tSYS_MQ_UNLINK              = 512 // { int mq_unlink(const char *name); }\n\tSYS_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }\n\tSYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }\n\tSYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }\n\tSYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }\n\tSYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }\n\tSYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_IOPRIO_SET             = 520 // { int ioprio_set(int which, int who, int prio); }\n\tSYS_IOPRIO_GET             = 521 // { int ioprio_get(int which, int who); }\n\tSYS_CHROOT_KERNEL          = 522 // { int chroot_kernel(char *path); }\n\tSYS_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_MKDIRAT                = 524 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT               = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT              = 528 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_SWAPOFF                = 529 // { int swapoff(char *name); }\n\tSYS_VQUOTACTL              = 530 // { int vquotactl(const char *path, struct plistref *pref); }\n\tSYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }\n\tSYS_EACCESS                = 532 // { int eaccess(char *path, int flags); }\n\tSYS_LPATHCONF              = 533 // { int lpathconf(char *path, int name); }\n\tSYS_VMM_GUEST_CTL          = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }\n\tSYS_VMM_GUEST_SYNC_ADDR    = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); }\n\tSYS_PROCCTL                = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); }\n\tSYS_CHFLAGSAT              = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);}\n\tSYS_PIPE2                  = 538 // { int pipe2(int *fildes, int flags); }\n\tSYS_UTIMENSAT              = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); }\n\tSYS_FUTIMENS               = 540 // { int futimens(int fd, const struct timespec *ts); }\n\tSYS_ACCEPT4                = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }\n\tSYS_LWP_SETNAME            = 542 // { int lwp_setname(lwpid_t tid, const char *name); }\n\tSYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }\n\tSYS_LWP_SETAFFINITY        = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }\n\tSYS_LWP_GETAFFINITY        = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }\n\tSYS_LWP_CREATE2            = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }\n\tSYS_GETCPUCLOCKID          = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); }\n\tSYS_WAIT6                  = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_LWP_GETNAME            = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); }\n\tSYS_GETRANDOM              = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); }\n\tSYS___REALPATH             = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_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); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_386.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86OLD                      = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_VM86                         = 166\n\tSYS_QUERY_MODULE                 = 167\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_GETPMSG                      = 188\n\tSYS_PUTPMSG                      = 189\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_PIVOT_ROOT                   = 217\n\tSYS_MINCORE                      = 218\n\tSYS_MADVISE                      = 219\n\tSYS_GETDENTS64                   = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_SET_THREAD_AREA              = 243\n\tSYS_GET_THREAD_AREA              = 244\n\tSYS_IO_SETUP                     = 245\n\tSYS_IO_DESTROY                   = 246\n\tSYS_IO_GETEVENTS                 = 247\n\tSYS_IO_SUBMIT                    = 248\n\tSYS_IO_CANCEL                    = 249\n\tSYS_FADVISE64                    = 250\n\tSYS_EXIT_GROUP                   = 252\n\tSYS_LOOKUP_DCOOKIE               = 253\n\tSYS_EPOLL_CREATE                 = 254\n\tSYS_EPOLL_CTL                    = 255\n\tSYS_EPOLL_WAIT                   = 256\n\tSYS_REMAP_FILE_PAGES             = 257\n\tSYS_SET_TID_ADDRESS              = 258\n\tSYS_TIMER_CREATE                 = 259\n\tSYS_TIMER_SETTIME                = 260\n\tSYS_TIMER_GETTIME                = 261\n\tSYS_TIMER_GETOVERRUN             = 262\n\tSYS_TIMER_DELETE                 = 263\n\tSYS_CLOCK_SETTIME                = 264\n\tSYS_CLOCK_GETTIME                = 265\n\tSYS_CLOCK_GETRES                 = 266\n\tSYS_CLOCK_NANOSLEEP              = 267\n\tSYS_STATFS64                     = 268\n\tSYS_FSTATFS64                    = 269\n\tSYS_TGKILL                       = 270\n\tSYS_UTIMES                       = 271\n\tSYS_FADVISE64_64                 = 272\n\tSYS_VSERVER                      = 273\n\tSYS_MBIND                        = 274\n\tSYS_GET_MEMPOLICY                = 275\n\tSYS_SET_MEMPOLICY                = 276\n\tSYS_MQ_OPEN                      = 277\n\tSYS_MQ_UNLINK                    = 278\n\tSYS_MQ_TIMEDSEND                 = 279\n\tSYS_MQ_TIMEDRECEIVE              = 280\n\tSYS_MQ_NOTIFY                    = 281\n\tSYS_MQ_GETSETATTR                = 282\n\tSYS_KEXEC_LOAD                   = 283\n\tSYS_WAITID                       = 284\n\tSYS_ADD_KEY                      = 286\n\tSYS_REQUEST_KEY                  = 287\n\tSYS_KEYCTL                       = 288\n\tSYS_IOPRIO_SET                   = 289\n\tSYS_IOPRIO_GET                   = 290\n\tSYS_INOTIFY_INIT                 = 291\n\tSYS_INOTIFY_ADD_WATCH            = 292\n\tSYS_INOTIFY_RM_WATCH             = 293\n\tSYS_MIGRATE_PAGES                = 294\n\tSYS_OPENAT                       = 295\n\tSYS_MKDIRAT                      = 296\n\tSYS_MKNODAT                      = 297\n\tSYS_FCHOWNAT                     = 298\n\tSYS_FUTIMESAT                    = 299\n\tSYS_FSTATAT64                    = 300\n\tSYS_UNLINKAT                     = 301\n\tSYS_RENAMEAT                     = 302\n\tSYS_LINKAT                       = 303\n\tSYS_SYMLINKAT                    = 304\n\tSYS_READLINKAT                   = 305\n\tSYS_FCHMODAT                     = 306\n\tSYS_FACCESSAT                    = 307\n\tSYS_PSELECT6                     = 308\n\tSYS_PPOLL                        = 309\n\tSYS_UNSHARE                      = 310\n\tSYS_SET_ROBUST_LIST              = 311\n\tSYS_GET_ROBUST_LIST              = 312\n\tSYS_SPLICE                       = 313\n\tSYS_SYNC_FILE_RANGE              = 314\n\tSYS_TEE                          = 315\n\tSYS_VMSPLICE                     = 316\n\tSYS_MOVE_PAGES                   = 317\n\tSYS_GETCPU                       = 318\n\tSYS_EPOLL_PWAIT                  = 319\n\tSYS_UTIMENSAT                    = 320\n\tSYS_SIGNALFD                     = 321\n\tSYS_TIMERFD_CREATE               = 322\n\tSYS_EVENTFD                      = 323\n\tSYS_FALLOCATE                    = 324\n\tSYS_TIMERFD_SETTIME              = 325\n\tSYS_TIMERFD_GETTIME              = 326\n\tSYS_SIGNALFD4                    = 327\n\tSYS_EVENTFD2                     = 328\n\tSYS_EPOLL_CREATE1                = 329\n\tSYS_DUP3                         = 330\n\tSYS_PIPE2                        = 331\n\tSYS_INOTIFY_INIT1                = 332\n\tSYS_PREADV                       = 333\n\tSYS_PWRITEV                      = 334\n\tSYS_RT_TGSIGQUEUEINFO            = 335\n\tSYS_PERF_EVENT_OPEN              = 336\n\tSYS_RECVMMSG                     = 337\n\tSYS_FANOTIFY_INIT                = 338\n\tSYS_FANOTIFY_MARK                = 339\n\tSYS_PRLIMIT64                    = 340\n\tSYS_NAME_TO_HANDLE_AT            = 341\n\tSYS_OPEN_BY_HANDLE_AT            = 342\n\tSYS_CLOCK_ADJTIME                = 343\n\tSYS_SYNCFS                       = 344\n\tSYS_SENDMMSG                     = 345\n\tSYS_SETNS                        = 346\n\tSYS_PROCESS_VM_READV             = 347\n\tSYS_PROCESS_VM_WRITEV            = 348\n\tSYS_KCMP                         = 349\n\tSYS_FINIT_MODULE                 = 350\n\tSYS_SCHED_SETATTR                = 351\n\tSYS_SCHED_GETATTR                = 352\n\tSYS_RENAMEAT2                    = 353\n\tSYS_SECCOMP                      = 354\n\tSYS_GETRANDOM                    = 355\n\tSYS_MEMFD_CREATE                 = 356\n\tSYS_BPF                          = 357\n\tSYS_EXECVEAT                     = 358\n\tSYS_SOCKET                       = 359\n\tSYS_SOCKETPAIR                   = 360\n\tSYS_BIND                         = 361\n\tSYS_CONNECT                      = 362\n\tSYS_LISTEN                       = 363\n\tSYS_ACCEPT4                      = 364\n\tSYS_GETSOCKOPT                   = 365\n\tSYS_SETSOCKOPT                   = 366\n\tSYS_GETSOCKNAME                  = 367\n\tSYS_GETPEERNAME                  = 368\n\tSYS_SENDTO                       = 369\n\tSYS_SENDMSG                      = 370\n\tSYS_RECVFROM                     = 371\n\tSYS_RECVMSG                      = 372\n\tSYS_SHUTDOWN                     = 373\n\tSYS_USERFAULTFD                  = 374\n\tSYS_MEMBARRIER                   = 375\n\tSYS_MLOCK2                       = 376\n\tSYS_COPY_FILE_RANGE              = 377\n\tSYS_PREADV2                      = 378\n\tSYS_PWRITEV2                     = 379\n\tSYS_PKEY_MPROTECT                = 380\n\tSYS_PKEY_ALLOC                   = 381\n\tSYS_PKEY_FREE                    = 382\n\tSYS_STATX                        = 383\n\tSYS_ARCH_PRCTL                   = 384\n\tSYS_IO_PGETEVENTS                = 385\n\tSYS_RSEQ                         = 386\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_MEMFD_SECRET                 = 447\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 0\n\tSYS_WRITE                   = 1\n\tSYS_OPEN                    = 2\n\tSYS_CLOSE                   = 3\n\tSYS_STAT                    = 4\n\tSYS_FSTAT                   = 5\n\tSYS_LSTAT                   = 6\n\tSYS_POLL                    = 7\n\tSYS_LSEEK                   = 8\n\tSYS_MMAP                    = 9\n\tSYS_MPROTECT                = 10\n\tSYS_MUNMAP                  = 11\n\tSYS_BRK                     = 12\n\tSYS_RT_SIGACTION            = 13\n\tSYS_RT_SIGPROCMASK          = 14\n\tSYS_RT_SIGRETURN            = 15\n\tSYS_IOCTL                   = 16\n\tSYS_PREAD64                 = 17\n\tSYS_PWRITE64                = 18\n\tSYS_READV                   = 19\n\tSYS_WRITEV                  = 20\n\tSYS_ACCESS                  = 21\n\tSYS_PIPE                    = 22\n\tSYS_SELECT                  = 23\n\tSYS_SCHED_YIELD             = 24\n\tSYS_MREMAP                  = 25\n\tSYS_MSYNC                   = 26\n\tSYS_MINCORE                 = 27\n\tSYS_MADVISE                 = 28\n\tSYS_SHMGET                  = 29\n\tSYS_SHMAT                   = 30\n\tSYS_SHMCTL                  = 31\n\tSYS_DUP                     = 32\n\tSYS_DUP2                    = 33\n\tSYS_PAUSE                   = 34\n\tSYS_NANOSLEEP               = 35\n\tSYS_GETITIMER               = 36\n\tSYS_ALARM                   = 37\n\tSYS_SETITIMER               = 38\n\tSYS_GETPID                  = 39\n\tSYS_SENDFILE                = 40\n\tSYS_SOCKET                  = 41\n\tSYS_CONNECT                 = 42\n\tSYS_ACCEPT                  = 43\n\tSYS_SENDTO                  = 44\n\tSYS_RECVFROM                = 45\n\tSYS_SENDMSG                 = 46\n\tSYS_RECVMSG                 = 47\n\tSYS_SHUTDOWN                = 48\n\tSYS_BIND                    = 49\n\tSYS_LISTEN                  = 50\n\tSYS_GETSOCKNAME             = 51\n\tSYS_GETPEERNAME             = 52\n\tSYS_SOCKETPAIR              = 53\n\tSYS_SETSOCKOPT              = 54\n\tSYS_GETSOCKOPT              = 55\n\tSYS_CLONE                   = 56\n\tSYS_FORK                    = 57\n\tSYS_VFORK                   = 58\n\tSYS_EXECVE                  = 59\n\tSYS_EXIT                    = 60\n\tSYS_WAIT4                   = 61\n\tSYS_KILL                    = 62\n\tSYS_UNAME                   = 63\n\tSYS_SEMGET                  = 64\n\tSYS_SEMOP                   = 65\n\tSYS_SEMCTL                  = 66\n\tSYS_SHMDT                   = 67\n\tSYS_MSGGET                  = 68\n\tSYS_MSGSND                  = 69\n\tSYS_MSGRCV                  = 70\n\tSYS_MSGCTL                  = 71\n\tSYS_FCNTL                   = 72\n\tSYS_FLOCK                   = 73\n\tSYS_FSYNC                   = 74\n\tSYS_FDATASYNC               = 75\n\tSYS_TRUNCATE                = 76\n\tSYS_FTRUNCATE               = 77\n\tSYS_GETDENTS                = 78\n\tSYS_GETCWD                  = 79\n\tSYS_CHDIR                   = 80\n\tSYS_FCHDIR                  = 81\n\tSYS_RENAME                  = 82\n\tSYS_MKDIR                   = 83\n\tSYS_RMDIR                   = 84\n\tSYS_CREAT                   = 85\n\tSYS_LINK                    = 86\n\tSYS_UNLINK                  = 87\n\tSYS_SYMLINK                 = 88\n\tSYS_READLINK                = 89\n\tSYS_CHMOD                   = 90\n\tSYS_FCHMOD                  = 91\n\tSYS_CHOWN                   = 92\n\tSYS_FCHOWN                  = 93\n\tSYS_LCHOWN                  = 94\n\tSYS_UMASK                   = 95\n\tSYS_GETTIMEOFDAY            = 96\n\tSYS_GETRLIMIT               = 97\n\tSYS_GETRUSAGE               = 98\n\tSYS_SYSINFO                 = 99\n\tSYS_TIMES                   = 100\n\tSYS_PTRACE                  = 101\n\tSYS_GETUID                  = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_GETGID                  = 104\n\tSYS_SETUID                  = 105\n\tSYS_SETGID                  = 106\n\tSYS_GETEUID                 = 107\n\tSYS_GETEGID                 = 108\n\tSYS_SETPGID                 = 109\n\tSYS_GETPPID                 = 110\n\tSYS_GETPGRP                 = 111\n\tSYS_SETSID                  = 112\n\tSYS_SETREUID                = 113\n\tSYS_SETREGID                = 114\n\tSYS_GETGROUPS               = 115\n\tSYS_SETGROUPS               = 116\n\tSYS_SETRESUID               = 117\n\tSYS_GETRESUID               = 118\n\tSYS_SETRESGID               = 119\n\tSYS_GETRESGID               = 120\n\tSYS_GETPGID                 = 121\n\tSYS_SETFSUID                = 122\n\tSYS_SETFSGID                = 123\n\tSYS_GETSID                  = 124\n\tSYS_CAPGET                  = 125\n\tSYS_CAPSET                  = 126\n\tSYS_RT_SIGPENDING           = 127\n\tSYS_RT_SIGTIMEDWAIT         = 128\n\tSYS_RT_SIGQUEUEINFO         = 129\n\tSYS_RT_SIGSUSPEND           = 130\n\tSYS_SIGALTSTACK             = 131\n\tSYS_UTIME                   = 132\n\tSYS_MKNOD                   = 133\n\tSYS_USELIB                  = 134\n\tSYS_PERSONALITY             = 135\n\tSYS_USTAT                   = 136\n\tSYS_STATFS                  = 137\n\tSYS_FSTATFS                 = 138\n\tSYS_SYSFS                   = 139\n\tSYS_GETPRIORITY             = 140\n\tSYS_SETPRIORITY             = 141\n\tSYS_SCHED_SETPARAM          = 142\n\tSYS_SCHED_GETPARAM          = 143\n\tSYS_SCHED_SETSCHEDULER      = 144\n\tSYS_SCHED_GETSCHEDULER      = 145\n\tSYS_SCHED_GET_PRIORITY_MAX  = 146\n\tSYS_SCHED_GET_PRIORITY_MIN  = 147\n\tSYS_SCHED_RR_GET_INTERVAL   = 148\n\tSYS_MLOCK                   = 149\n\tSYS_MUNLOCK                 = 150\n\tSYS_MLOCKALL                = 151\n\tSYS_MUNLOCKALL              = 152\n\tSYS_VHANGUP                 = 153\n\tSYS_MODIFY_LDT              = 154\n\tSYS_PIVOT_ROOT              = 155\n\tSYS__SYSCTL                 = 156\n\tSYS_PRCTL                   = 157\n\tSYS_ARCH_PRCTL              = 158\n\tSYS_ADJTIMEX                = 159\n\tSYS_SETRLIMIT               = 160\n\tSYS_CHROOT                  = 161\n\tSYS_SYNC                    = 162\n\tSYS_ACCT                    = 163\n\tSYS_SETTIMEOFDAY            = 164\n\tSYS_MOUNT                   = 165\n\tSYS_UMOUNT2                 = 166\n\tSYS_SWAPON                  = 167\n\tSYS_SWAPOFF                 = 168\n\tSYS_REBOOT                  = 169\n\tSYS_SETHOSTNAME             = 170\n\tSYS_SETDOMAINNAME           = 171\n\tSYS_IOPL                    = 172\n\tSYS_IOPERM                  = 173\n\tSYS_CREATE_MODULE           = 174\n\tSYS_INIT_MODULE             = 175\n\tSYS_DELETE_MODULE           = 176\n\tSYS_GET_KERNEL_SYMS         = 177\n\tSYS_QUERY_MODULE            = 178\n\tSYS_QUOTACTL                = 179\n\tSYS_NFSSERVCTL              = 180\n\tSYS_GETPMSG                 = 181\n\tSYS_PUTPMSG                 = 182\n\tSYS_AFS_SYSCALL             = 183\n\tSYS_TUXCALL                 = 184\n\tSYS_SECURITY                = 185\n\tSYS_GETTID                  = 186\n\tSYS_READAHEAD               = 187\n\tSYS_SETXATTR                = 188\n\tSYS_LSETXATTR               = 189\n\tSYS_FSETXATTR               = 190\n\tSYS_GETXATTR                = 191\n\tSYS_LGETXATTR               = 192\n\tSYS_FGETXATTR               = 193\n\tSYS_LISTXATTR               = 194\n\tSYS_LLISTXATTR              = 195\n\tSYS_FLISTXATTR              = 196\n\tSYS_REMOVEXATTR             = 197\n\tSYS_LREMOVEXATTR            = 198\n\tSYS_FREMOVEXATTR            = 199\n\tSYS_TKILL                   = 200\n\tSYS_TIME                    = 201\n\tSYS_FUTEX                   = 202\n\tSYS_SCHED_SETAFFINITY       = 203\n\tSYS_SCHED_GETAFFINITY       = 204\n\tSYS_SET_THREAD_AREA         = 205\n\tSYS_IO_SETUP                = 206\n\tSYS_IO_DESTROY              = 207\n\tSYS_IO_GETEVENTS            = 208\n\tSYS_IO_SUBMIT               = 209\n\tSYS_IO_CANCEL               = 210\n\tSYS_GET_THREAD_AREA         = 211\n\tSYS_LOOKUP_DCOOKIE          = 212\n\tSYS_EPOLL_CREATE            = 213\n\tSYS_EPOLL_CTL_OLD           = 214\n\tSYS_EPOLL_WAIT_OLD          = 215\n\tSYS_REMAP_FILE_PAGES        = 216\n\tSYS_GETDENTS64              = 217\n\tSYS_SET_TID_ADDRESS         = 218\n\tSYS_RESTART_SYSCALL         = 219\n\tSYS_SEMTIMEDOP              = 220\n\tSYS_FADVISE64               = 221\n\tSYS_TIMER_CREATE            = 222\n\tSYS_TIMER_SETTIME           = 223\n\tSYS_TIMER_GETTIME           = 224\n\tSYS_TIMER_GETOVERRUN        = 225\n\tSYS_TIMER_DELETE            = 226\n\tSYS_CLOCK_SETTIME           = 227\n\tSYS_CLOCK_GETTIME           = 228\n\tSYS_CLOCK_GETRES            = 229\n\tSYS_CLOCK_NANOSLEEP         = 230\n\tSYS_EXIT_GROUP              = 231\n\tSYS_EPOLL_WAIT              = 232\n\tSYS_EPOLL_CTL               = 233\n\tSYS_TGKILL                  = 234\n\tSYS_UTIMES                  = 235\n\tSYS_VSERVER                 = 236\n\tSYS_MBIND                   = 237\n\tSYS_SET_MEMPOLICY           = 238\n\tSYS_GET_MEMPOLICY           = 239\n\tSYS_MQ_OPEN                 = 240\n\tSYS_MQ_UNLINK               = 241\n\tSYS_MQ_TIMEDSEND            = 242\n\tSYS_MQ_TIMEDRECEIVE         = 243\n\tSYS_MQ_NOTIFY               = 244\n\tSYS_MQ_GETSETATTR           = 245\n\tSYS_KEXEC_LOAD              = 246\n\tSYS_WAITID                  = 247\n\tSYS_ADD_KEY                 = 248\n\tSYS_REQUEST_KEY             = 249\n\tSYS_KEYCTL                  = 250\n\tSYS_IOPRIO_SET              = 251\n\tSYS_IOPRIO_GET              = 252\n\tSYS_INOTIFY_INIT            = 253\n\tSYS_INOTIFY_ADD_WATCH       = 254\n\tSYS_INOTIFY_RM_WATCH        = 255\n\tSYS_MIGRATE_PAGES           = 256\n\tSYS_OPENAT                  = 257\n\tSYS_MKDIRAT                 = 258\n\tSYS_MKNODAT                 = 259\n\tSYS_FCHOWNAT                = 260\n\tSYS_FUTIMESAT               = 261\n\tSYS_NEWFSTATAT              = 262\n\tSYS_UNLINKAT                = 263\n\tSYS_RENAMEAT                = 264\n\tSYS_LINKAT                  = 265\n\tSYS_SYMLINKAT               = 266\n\tSYS_READLINKAT              = 267\n\tSYS_FCHMODAT                = 268\n\tSYS_FACCESSAT               = 269\n\tSYS_PSELECT6                = 270\n\tSYS_PPOLL                   = 271\n\tSYS_UNSHARE                 = 272\n\tSYS_SET_ROBUST_LIST         = 273\n\tSYS_GET_ROBUST_LIST         = 274\n\tSYS_SPLICE                  = 275\n\tSYS_TEE                     = 276\n\tSYS_SYNC_FILE_RANGE         = 277\n\tSYS_VMSPLICE                = 278\n\tSYS_MOVE_PAGES              = 279\n\tSYS_UTIMENSAT               = 280\n\tSYS_EPOLL_PWAIT             = 281\n\tSYS_SIGNALFD                = 282\n\tSYS_TIMERFD_CREATE          = 283\n\tSYS_EVENTFD                 = 284\n\tSYS_FALLOCATE               = 285\n\tSYS_TIMERFD_SETTIME         = 286\n\tSYS_TIMERFD_GETTIME         = 287\n\tSYS_ACCEPT4                 = 288\n\tSYS_SIGNALFD4               = 289\n\tSYS_EVENTFD2                = 290\n\tSYS_EPOLL_CREATE1           = 291\n\tSYS_DUP3                    = 292\n\tSYS_PIPE2                   = 293\n\tSYS_INOTIFY_INIT1           = 294\n\tSYS_PREADV                  = 295\n\tSYS_PWRITEV                 = 296\n\tSYS_RT_TGSIGQUEUEINFO       = 297\n\tSYS_PERF_EVENT_OPEN         = 298\n\tSYS_RECVMMSG                = 299\n\tSYS_FANOTIFY_INIT           = 300\n\tSYS_FANOTIFY_MARK           = 301\n\tSYS_PRLIMIT64               = 302\n\tSYS_NAME_TO_HANDLE_AT       = 303\n\tSYS_OPEN_BY_HANDLE_AT       = 304\n\tSYS_CLOCK_ADJTIME           = 305\n\tSYS_SYNCFS                  = 306\n\tSYS_SENDMMSG                = 307\n\tSYS_SETNS                   = 308\n\tSYS_GETCPU                  = 309\n\tSYS_PROCESS_VM_READV        = 310\n\tSYS_PROCESS_VM_WRITEV       = 311\n\tSYS_KCMP                    = 312\n\tSYS_FINIT_MODULE            = 313\n\tSYS_SCHED_SETATTR           = 314\n\tSYS_SCHED_GETATTR           = 315\n\tSYS_RENAMEAT2               = 316\n\tSYS_SECCOMP                 = 317\n\tSYS_GETRANDOM               = 318\n\tSYS_MEMFD_CREATE            = 319\n\tSYS_KEXEC_FILE_LOAD         = 320\n\tSYS_BPF                     = 321\n\tSYS_EXECVEAT                = 322\n\tSYS_USERFAULTFD             = 323\n\tSYS_MEMBARRIER              = 324\n\tSYS_MLOCK2                  = 325\n\tSYS_COPY_FILE_RANGE         = 326\n\tSYS_PREADV2                 = 327\n\tSYS_PWRITEV2                = 328\n\tSYS_PKEY_MPROTECT           = 329\n\tSYS_PKEY_ALLOC              = 330\n\tSYS_PKEY_FREE               = 331\n\tSYS_STATX                   = 332\n\tSYS_IO_PGETEVENTS           = 333\n\tSYS_RSEQ                    = 334\n\tSYS_URETPROBE               = 335\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL_MASK                 = 0\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_PTRACE                       = 26\n\tSYS_PAUSE                        = 29\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_SETPGID                      = 57\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SYMLINK                      = 83\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_VHANGUP                      = 111\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_GETDENTS64                   = 217\n\tSYS_PIVOT_ROOT                   = 218\n\tSYS_MINCORE                      = 219\n\tSYS_MADVISE                      = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_IO_SETUP                     = 243\n\tSYS_IO_DESTROY                   = 244\n\tSYS_IO_GETEVENTS                 = 245\n\tSYS_IO_SUBMIT                    = 246\n\tSYS_IO_CANCEL                    = 247\n\tSYS_EXIT_GROUP                   = 248\n\tSYS_LOOKUP_DCOOKIE               = 249\n\tSYS_EPOLL_CREATE                 = 250\n\tSYS_EPOLL_CTL                    = 251\n\tSYS_EPOLL_WAIT                   = 252\n\tSYS_REMAP_FILE_PAGES             = 253\n\tSYS_SET_TID_ADDRESS              = 256\n\tSYS_TIMER_CREATE                 = 257\n\tSYS_TIMER_SETTIME                = 258\n\tSYS_TIMER_GETTIME                = 259\n\tSYS_TIMER_GETOVERRUN             = 260\n\tSYS_TIMER_DELETE                 = 261\n\tSYS_CLOCK_SETTIME                = 262\n\tSYS_CLOCK_GETTIME                = 263\n\tSYS_CLOCK_GETRES                 = 264\n\tSYS_CLOCK_NANOSLEEP              = 265\n\tSYS_STATFS64                     = 266\n\tSYS_FSTATFS64                    = 267\n\tSYS_TGKILL                       = 268\n\tSYS_UTIMES                       = 269\n\tSYS_ARM_FADVISE64_64             = 270\n\tSYS_PCICONFIG_IOBASE             = 271\n\tSYS_PCICONFIG_READ               = 272\n\tSYS_PCICONFIG_WRITE              = 273\n\tSYS_MQ_OPEN                      = 274\n\tSYS_MQ_UNLINK                    = 275\n\tSYS_MQ_TIMEDSEND                 = 276\n\tSYS_MQ_TIMEDRECEIVE              = 277\n\tSYS_MQ_NOTIFY                    = 278\n\tSYS_MQ_GETSETATTR                = 279\n\tSYS_WAITID                       = 280\n\tSYS_SOCKET                       = 281\n\tSYS_BIND                         = 282\n\tSYS_CONNECT                      = 283\n\tSYS_LISTEN                       = 284\n\tSYS_ACCEPT                       = 285\n\tSYS_GETSOCKNAME                  = 286\n\tSYS_GETPEERNAME                  = 287\n\tSYS_SOCKETPAIR                   = 288\n\tSYS_SEND                         = 289\n\tSYS_SENDTO                       = 290\n\tSYS_RECV                         = 291\n\tSYS_RECVFROM                     = 292\n\tSYS_SHUTDOWN                     = 293\n\tSYS_SETSOCKOPT                   = 294\n\tSYS_GETSOCKOPT                   = 295\n\tSYS_SENDMSG                      = 296\n\tSYS_RECVMSG                      = 297\n\tSYS_SEMOP                        = 298\n\tSYS_SEMGET                       = 299\n\tSYS_SEMCTL                       = 300\n\tSYS_MSGSND                       = 301\n\tSYS_MSGRCV                       = 302\n\tSYS_MSGGET                       = 303\n\tSYS_MSGCTL                       = 304\n\tSYS_SHMAT                        = 305\n\tSYS_SHMDT                        = 306\n\tSYS_SHMGET                       = 307\n\tSYS_SHMCTL                       = 308\n\tSYS_ADD_KEY                      = 309\n\tSYS_REQUEST_KEY                  = 310\n\tSYS_KEYCTL                       = 311\n\tSYS_SEMTIMEDOP                   = 312\n\tSYS_VSERVER                      = 313\n\tSYS_IOPRIO_SET                   = 314\n\tSYS_IOPRIO_GET                   = 315\n\tSYS_INOTIFY_INIT                 = 316\n\tSYS_INOTIFY_ADD_WATCH            = 317\n\tSYS_INOTIFY_RM_WATCH             = 318\n\tSYS_MBIND                        = 319\n\tSYS_GET_MEMPOLICY                = 320\n\tSYS_SET_MEMPOLICY                = 321\n\tSYS_OPENAT                       = 322\n\tSYS_MKDIRAT                      = 323\n\tSYS_MKNODAT                      = 324\n\tSYS_FCHOWNAT                     = 325\n\tSYS_FUTIMESAT                    = 326\n\tSYS_FSTATAT64                    = 327\n\tSYS_UNLINKAT                     = 328\n\tSYS_RENAMEAT                     = 329\n\tSYS_LINKAT                       = 330\n\tSYS_SYMLINKAT                    = 331\n\tSYS_READLINKAT                   = 332\n\tSYS_FCHMODAT                     = 333\n\tSYS_FACCESSAT                    = 334\n\tSYS_PSELECT6                     = 335\n\tSYS_PPOLL                        = 336\n\tSYS_UNSHARE                      = 337\n\tSYS_SET_ROBUST_LIST              = 338\n\tSYS_GET_ROBUST_LIST              = 339\n\tSYS_SPLICE                       = 340\n\tSYS_ARM_SYNC_FILE_RANGE          = 341\n\tSYS_TEE                          = 342\n\tSYS_VMSPLICE                     = 343\n\tSYS_MOVE_PAGES                   = 344\n\tSYS_GETCPU                       = 345\n\tSYS_EPOLL_PWAIT                  = 346\n\tSYS_KEXEC_LOAD                   = 347\n\tSYS_UTIMENSAT                    = 348\n\tSYS_SIGNALFD                     = 349\n\tSYS_TIMERFD_CREATE               = 350\n\tSYS_EVENTFD                      = 351\n\tSYS_FALLOCATE                    = 352\n\tSYS_TIMERFD_SETTIME              = 353\n\tSYS_TIMERFD_GETTIME              = 354\n\tSYS_SIGNALFD4                    = 355\n\tSYS_EVENTFD2                     = 356\n\tSYS_EPOLL_CREATE1                = 357\n\tSYS_DUP3                         = 358\n\tSYS_PIPE2                        = 359\n\tSYS_INOTIFY_INIT1                = 360\n\tSYS_PREADV                       = 361\n\tSYS_PWRITEV                      = 362\n\tSYS_RT_TGSIGQUEUEINFO            = 363\n\tSYS_PERF_EVENT_OPEN              = 364\n\tSYS_RECVMMSG                     = 365\n\tSYS_ACCEPT4                      = 366\n\tSYS_FANOTIFY_INIT                = 367\n\tSYS_FANOTIFY_MARK                = 368\n\tSYS_PRLIMIT64                    = 369\n\tSYS_NAME_TO_HANDLE_AT            = 370\n\tSYS_OPEN_BY_HANDLE_AT            = 371\n\tSYS_CLOCK_ADJTIME                = 372\n\tSYS_SYNCFS                       = 373\n\tSYS_SENDMMSG                     = 374\n\tSYS_SETNS                        = 375\n\tSYS_PROCESS_VM_READV             = 376\n\tSYS_PROCESS_VM_WRITEV            = 377\n\tSYS_KCMP                         = 378\n\tSYS_FINIT_MODULE                 = 379\n\tSYS_SCHED_SETATTR                = 380\n\tSYS_SCHED_GETATTR                = 381\n\tSYS_RENAMEAT2                    = 382\n\tSYS_SECCOMP                      = 383\n\tSYS_GETRANDOM                    = 384\n\tSYS_MEMFD_CREATE                 = 385\n\tSYS_BPF                          = 386\n\tSYS_EXECVEAT                     = 387\n\tSYS_USERFAULTFD                  = 388\n\tSYS_MEMBARRIER                   = 389\n\tSYS_MLOCK2                       = 390\n\tSYS_COPY_FILE_RANGE              = 391\n\tSYS_PREADV2                      = 392\n\tSYS_PWRITEV2                     = 393\n\tSYS_PKEY_MPROTECT                = 394\n\tSYS_PKEY_ALLOC                   = 395\n\tSYS_PKEY_FREE                    = 396\n\tSYS_STATX                        = 397\n\tSYS_RSEQ                         = 398\n\tSYS_IO_PGETEVENTS                = 399\n\tSYS_MIGRATE_PAGES                = 400\n\tSYS_KEXEC_FILE_LOAD              = 401\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_RENAMEAT                = 38\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n\tSYS_OPEN_TREE_ATTR               = 4467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n\tSYS_OPEN_TREE_ATTR          = 5467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n\tSYS_OPEN_TREE_ATTR          = 5467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n\tSYS_OPEN_TREE_ATTR               = 4467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86                         = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_QUERY_MODULE                 = 166\n\tSYS_POLL                         = 167\n\tSYS_NFSSERVCTL                   = 168\n\tSYS_SETRESGID                    = 169\n\tSYS_GETRESGID                    = 170\n\tSYS_PRCTL                        = 171\n\tSYS_RT_SIGRETURN                 = 172\n\tSYS_RT_SIGACTION                 = 173\n\tSYS_RT_SIGPROCMASK               = 174\n\tSYS_RT_SIGPENDING                = 175\n\tSYS_RT_SIGTIMEDWAIT              = 176\n\tSYS_RT_SIGQUEUEINFO              = 177\n\tSYS_RT_SIGSUSPEND                = 178\n\tSYS_PREAD64                      = 179\n\tSYS_PWRITE64                     = 180\n\tSYS_CHOWN                        = 181\n\tSYS_GETCWD                       = 182\n\tSYS_CAPGET                       = 183\n\tSYS_CAPSET                       = 184\n\tSYS_SIGALTSTACK                  = 185\n\tSYS_SENDFILE                     = 186\n\tSYS_GETPMSG                      = 187\n\tSYS_PUTPMSG                      = 188\n\tSYS_VFORK                        = 189\n\tSYS_UGETRLIMIT                   = 190\n\tSYS_READAHEAD                    = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_PCICONFIG_READ               = 198\n\tSYS_PCICONFIG_WRITE              = 199\n\tSYS_PCICONFIG_IOBASE             = 200\n\tSYS_MULTIPLEXER                  = 201\n\tSYS_GETDENTS64                   = 202\n\tSYS_PIVOT_ROOT                   = 203\n\tSYS_FCNTL64                      = 204\n\tSYS_MADVISE                      = 205\n\tSYS_MINCORE                      = 206\n\tSYS_GETTID                       = 207\n\tSYS_TKILL                        = 208\n\tSYS_SETXATTR                     = 209\n\tSYS_LSETXATTR                    = 210\n\tSYS_FSETXATTR                    = 211\n\tSYS_GETXATTR                     = 212\n\tSYS_LGETXATTR                    = 213\n\tSYS_FGETXATTR                    = 214\n\tSYS_LISTXATTR                    = 215\n\tSYS_LLISTXATTR                   = 216\n\tSYS_FLISTXATTR                   = 217\n\tSYS_REMOVEXATTR                  = 218\n\tSYS_LREMOVEXATTR                 = 219\n\tSYS_FREMOVEXATTR                 = 220\n\tSYS_FUTEX                        = 221\n\tSYS_SCHED_SETAFFINITY            = 222\n\tSYS_SCHED_GETAFFINITY            = 223\n\tSYS_TUXCALL                      = 225\n\tSYS_SENDFILE64                   = 226\n\tSYS_IO_SETUP                     = 227\n\tSYS_IO_DESTROY                   = 228\n\tSYS_IO_GETEVENTS                 = 229\n\tSYS_IO_SUBMIT                    = 230\n\tSYS_IO_CANCEL                    = 231\n\tSYS_SET_TID_ADDRESS              = 232\n\tSYS_FADVISE64                    = 233\n\tSYS_EXIT_GROUP                   = 234\n\tSYS_LOOKUP_DCOOKIE               = 235\n\tSYS_EPOLL_CREATE                 = 236\n\tSYS_EPOLL_CTL                    = 237\n\tSYS_EPOLL_WAIT                   = 238\n\tSYS_REMAP_FILE_PAGES             = 239\n\tSYS_TIMER_CREATE                 = 240\n\tSYS_TIMER_SETTIME                = 241\n\tSYS_TIMER_GETTIME                = 242\n\tSYS_TIMER_GETOVERRUN             = 243\n\tSYS_TIMER_DELETE                 = 244\n\tSYS_CLOCK_SETTIME                = 245\n\tSYS_CLOCK_GETTIME                = 246\n\tSYS_CLOCK_GETRES                 = 247\n\tSYS_CLOCK_NANOSLEEP              = 248\n\tSYS_SWAPCONTEXT                  = 249\n\tSYS_TGKILL                       = 250\n\tSYS_UTIMES                       = 251\n\tSYS_STATFS64                     = 252\n\tSYS_FSTATFS64                    = 253\n\tSYS_FADVISE64_64                 = 254\n\tSYS_RTAS                         = 255\n\tSYS_SYS_DEBUG_SETCONTEXT         = 256\n\tSYS_MIGRATE_PAGES                = 258\n\tSYS_MBIND                        = 259\n\tSYS_GET_MEMPOLICY                = 260\n\tSYS_SET_MEMPOLICY                = 261\n\tSYS_MQ_OPEN                      = 262\n\tSYS_MQ_UNLINK                    = 263\n\tSYS_MQ_TIMEDSEND                 = 264\n\tSYS_MQ_TIMEDRECEIVE              = 265\n\tSYS_MQ_NOTIFY                    = 266\n\tSYS_MQ_GETSETATTR                = 267\n\tSYS_KEXEC_LOAD                   = 268\n\tSYS_ADD_KEY                      = 269\n\tSYS_REQUEST_KEY                  = 270\n\tSYS_KEYCTL                       = 271\n\tSYS_WAITID                       = 272\n\tSYS_IOPRIO_SET                   = 273\n\tSYS_IOPRIO_GET                   = 274\n\tSYS_INOTIFY_INIT                 = 275\n\tSYS_INOTIFY_ADD_WATCH            = 276\n\tSYS_INOTIFY_RM_WATCH             = 277\n\tSYS_SPU_RUN                      = 278\n\tSYS_SPU_CREATE                   = 279\n\tSYS_PSELECT6                     = 280\n\tSYS_PPOLL                        = 281\n\tSYS_UNSHARE                      = 282\n\tSYS_SPLICE                       = 283\n\tSYS_TEE                          = 284\n\tSYS_VMSPLICE                     = 285\n\tSYS_OPENAT                       = 286\n\tSYS_MKDIRAT                      = 287\n\tSYS_MKNODAT                      = 288\n\tSYS_FCHOWNAT                     = 289\n\tSYS_FUTIMESAT                    = 290\n\tSYS_FSTATAT64                    = 291\n\tSYS_UNLINKAT                     = 292\n\tSYS_RENAMEAT                     = 293\n\tSYS_LINKAT                       = 294\n\tSYS_SYMLINKAT                    = 295\n\tSYS_READLINKAT                   = 296\n\tSYS_FCHMODAT                     = 297\n\tSYS_FACCESSAT                    = 298\n\tSYS_GET_ROBUST_LIST              = 299\n\tSYS_SET_ROBUST_LIST              = 300\n\tSYS_MOVE_PAGES                   = 301\n\tSYS_GETCPU                       = 302\n\tSYS_EPOLL_PWAIT                  = 303\n\tSYS_UTIMENSAT                    = 304\n\tSYS_SIGNALFD                     = 305\n\tSYS_TIMERFD_CREATE               = 306\n\tSYS_EVENTFD                      = 307\n\tSYS_SYNC_FILE_RANGE2             = 308\n\tSYS_FALLOCATE                    = 309\n\tSYS_SUBPAGE_PROT                 = 310\n\tSYS_TIMERFD_SETTIME              = 311\n\tSYS_TIMERFD_GETTIME              = 312\n\tSYS_SIGNALFD4                    = 313\n\tSYS_EVENTFD2                     = 314\n\tSYS_EPOLL_CREATE1                = 315\n\tSYS_DUP3                         = 316\n\tSYS_PIPE2                        = 317\n\tSYS_INOTIFY_INIT1                = 318\n\tSYS_PERF_EVENT_OPEN              = 319\n\tSYS_PREADV                       = 320\n\tSYS_PWRITEV                      = 321\n\tSYS_RT_TGSIGQUEUEINFO            = 322\n\tSYS_FANOTIFY_INIT                = 323\n\tSYS_FANOTIFY_MARK                = 324\n\tSYS_PRLIMIT64                    = 325\n\tSYS_SOCKET                       = 326\n\tSYS_BIND                         = 327\n\tSYS_CONNECT                      = 328\n\tSYS_LISTEN                       = 329\n\tSYS_ACCEPT                       = 330\n\tSYS_GETSOCKNAME                  = 331\n\tSYS_GETPEERNAME                  = 332\n\tSYS_SOCKETPAIR                   = 333\n\tSYS_SEND                         = 334\n\tSYS_SENDTO                       = 335\n\tSYS_RECV                         = 336\n\tSYS_RECVFROM                     = 337\n\tSYS_SHUTDOWN                     = 338\n\tSYS_SETSOCKOPT                   = 339\n\tSYS_GETSOCKOPT                   = 340\n\tSYS_SENDMSG                      = 341\n\tSYS_RECVMSG                      = 342\n\tSYS_RECVMMSG                     = 343\n\tSYS_ACCEPT4                      = 344\n\tSYS_NAME_TO_HANDLE_AT            = 345\n\tSYS_OPEN_BY_HANDLE_AT            = 346\n\tSYS_CLOCK_ADJTIME                = 347\n\tSYS_SYNCFS                       = 348\n\tSYS_SENDMMSG                     = 349\n\tSYS_SETNS                        = 350\n\tSYS_PROCESS_VM_READV             = 351\n\tSYS_PROCESS_VM_WRITEV            = 352\n\tSYS_FINIT_MODULE                 = 353\n\tSYS_KCMP                         = 354\n\tSYS_SCHED_SETATTR                = 355\n\tSYS_SCHED_GETATTR                = 356\n\tSYS_RENAMEAT2                    = 357\n\tSYS_SECCOMP                      = 358\n\tSYS_GETRANDOM                    = 359\n\tSYS_MEMFD_CREATE                 = 360\n\tSYS_BPF                          = 361\n\tSYS_EXECVEAT                     = 362\n\tSYS_SWITCH_ENDIAN                = 363\n\tSYS_USERFAULTFD                  = 364\n\tSYS_MEMBARRIER                   = 365\n\tSYS_MLOCK2                       = 378\n\tSYS_COPY_FILE_RANGE              = 379\n\tSYS_PREADV2                      = 380\n\tSYS_PWRITEV2                     = 381\n\tSYS_KEXEC_FILE_LOAD              = 382\n\tSYS_STATX                        = 383\n\tSYS_PKEY_ALLOC                   = 384\n\tSYS_PKEY_FREE                    = 385\n\tSYS_PKEY_MPROTECT                = 386\n\tSYS_RSEQ                         = 387\n\tSYS_IO_PGETEVENTS                = 388\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_RISCV_HWPROBE           = 258\n\tSYS_RISCV_FLUSH_ICACHE      = 259\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_RESTART_SYSCALL         = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_BRK                     = 45\n\tSYS_SIGNAL                  = 48\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_SETPGID                 = 57\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_SYMLINK                 = 83\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_LOOKUP_DCOOKIE          = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_GETDENTS                = 141\n\tSYS_SELECT                  = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_QUERY_MODULE            = 167\n\tSYS_POLL                    = 168\n\tSYS_NFSSERVCTL              = 169\n\tSYS_PRCTL                   = 172\n\tSYS_RT_SIGRETURN            = 173\n\tSYS_RT_SIGACTION            = 174\n\tSYS_RT_SIGPROCMASK          = 175\n\tSYS_RT_SIGPENDING           = 176\n\tSYS_RT_SIGTIMEDWAIT         = 177\n\tSYS_RT_SIGQUEUEINFO         = 178\n\tSYS_RT_SIGSUSPEND           = 179\n\tSYS_PREAD64                 = 180\n\tSYS_PWRITE64                = 181\n\tSYS_GETCWD                  = 183\n\tSYS_CAPGET                  = 184\n\tSYS_CAPSET                  = 185\n\tSYS_SIGALTSTACK             = 186\n\tSYS_SENDFILE                = 187\n\tSYS_GETPMSG                 = 188\n\tSYS_PUTPMSG                 = 189\n\tSYS_VFORK                   = 190\n\tSYS_GETRLIMIT               = 191\n\tSYS_LCHOWN                  = 198\n\tSYS_GETUID                  = 199\n\tSYS_GETGID                  = 200\n\tSYS_GETEUID                 = 201\n\tSYS_GETEGID                 = 202\n\tSYS_SETREUID                = 203\n\tSYS_SETREGID                = 204\n\tSYS_GETGROUPS               = 205\n\tSYS_SETGROUPS               = 206\n\tSYS_FCHOWN                  = 207\n\tSYS_SETRESUID               = 208\n\tSYS_GETRESUID               = 209\n\tSYS_SETRESGID               = 210\n\tSYS_GETRESGID               = 211\n\tSYS_CHOWN                   = 212\n\tSYS_SETUID                  = 213\n\tSYS_SETGID                  = 214\n\tSYS_SETFSUID                = 215\n\tSYS_SETFSGID                = 216\n\tSYS_PIVOT_ROOT              = 217\n\tSYS_MINCORE                 = 218\n\tSYS_MADVISE                 = 219\n\tSYS_GETDENTS64              = 220\n\tSYS_READAHEAD               = 222\n\tSYS_SETXATTR                = 224\n\tSYS_LSETXATTR               = 225\n\tSYS_FSETXATTR               = 226\n\tSYS_GETXATTR                = 227\n\tSYS_LGETXATTR               = 228\n\tSYS_FGETXATTR               = 229\n\tSYS_LISTXATTR               = 230\n\tSYS_LLISTXATTR              = 231\n\tSYS_FLISTXATTR              = 232\n\tSYS_REMOVEXATTR             = 233\n\tSYS_LREMOVEXATTR            = 234\n\tSYS_FREMOVEXATTR            = 235\n\tSYS_GETTID                  = 236\n\tSYS_TKILL                   = 237\n\tSYS_FUTEX                   = 238\n\tSYS_SCHED_SETAFFINITY       = 239\n\tSYS_SCHED_GETAFFINITY       = 240\n\tSYS_TGKILL                  = 241\n\tSYS_IO_SETUP                = 243\n\tSYS_IO_DESTROY              = 244\n\tSYS_IO_GETEVENTS            = 245\n\tSYS_IO_SUBMIT               = 246\n\tSYS_IO_CANCEL               = 247\n\tSYS_EXIT_GROUP              = 248\n\tSYS_EPOLL_CREATE            = 249\n\tSYS_EPOLL_CTL               = 250\n\tSYS_EPOLL_WAIT              = 251\n\tSYS_SET_TID_ADDRESS         = 252\n\tSYS_FADVISE64               = 253\n\tSYS_TIMER_CREATE            = 254\n\tSYS_TIMER_SETTIME           = 255\n\tSYS_TIMER_GETTIME           = 256\n\tSYS_TIMER_GETOVERRUN        = 257\n\tSYS_TIMER_DELETE            = 258\n\tSYS_CLOCK_SETTIME           = 259\n\tSYS_CLOCK_GETTIME           = 260\n\tSYS_CLOCK_GETRES            = 261\n\tSYS_CLOCK_NANOSLEEP         = 262\n\tSYS_STATFS64                = 265\n\tSYS_FSTATFS64               = 266\n\tSYS_REMAP_FILE_PAGES        = 267\n\tSYS_MBIND                   = 268\n\tSYS_GET_MEMPOLICY           = 269\n\tSYS_SET_MEMPOLICY           = 270\n\tSYS_MQ_OPEN                 = 271\n\tSYS_MQ_UNLINK               = 272\n\tSYS_MQ_TIMEDSEND            = 273\n\tSYS_MQ_TIMEDRECEIVE         = 274\n\tSYS_MQ_NOTIFY               = 275\n\tSYS_MQ_GETSETATTR           = 276\n\tSYS_KEXEC_LOAD              = 277\n\tSYS_ADD_KEY                 = 278\n\tSYS_REQUEST_KEY             = 279\n\tSYS_KEYCTL                  = 280\n\tSYS_WAITID                  = 281\n\tSYS_IOPRIO_SET              = 282\n\tSYS_IOPRIO_GET              = 283\n\tSYS_INOTIFY_INIT            = 284\n\tSYS_INOTIFY_ADD_WATCH       = 285\n\tSYS_INOTIFY_RM_WATCH        = 286\n\tSYS_MIGRATE_PAGES           = 287\n\tSYS_OPENAT                  = 288\n\tSYS_MKDIRAT                 = 289\n\tSYS_MKNODAT                 = 290\n\tSYS_FCHOWNAT                = 291\n\tSYS_FUTIMESAT               = 292\n\tSYS_NEWFSTATAT              = 293\n\tSYS_UNLINKAT                = 294\n\tSYS_RENAMEAT                = 295\n\tSYS_LINKAT                  = 296\n\tSYS_SYMLINKAT               = 297\n\tSYS_READLINKAT              = 298\n\tSYS_FCHMODAT                = 299\n\tSYS_FACCESSAT               = 300\n\tSYS_PSELECT6                = 301\n\tSYS_PPOLL                   = 302\n\tSYS_UNSHARE                 = 303\n\tSYS_SET_ROBUST_LIST         = 304\n\tSYS_GET_ROBUST_LIST         = 305\n\tSYS_SPLICE                  = 306\n\tSYS_SYNC_FILE_RANGE         = 307\n\tSYS_TEE                     = 308\n\tSYS_VMSPLICE                = 309\n\tSYS_MOVE_PAGES              = 310\n\tSYS_GETCPU                  = 311\n\tSYS_EPOLL_PWAIT             = 312\n\tSYS_UTIMES                  = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_UTIMENSAT               = 315\n\tSYS_SIGNALFD                = 316\n\tSYS_TIMERFD                 = 317\n\tSYS_EVENTFD                 = 318\n\tSYS_TIMERFD_CREATE          = 319\n\tSYS_TIMERFD_SETTIME         = 320\n\tSYS_TIMERFD_GETTIME         = 321\n\tSYS_SIGNALFD4               = 322\n\tSYS_EVENTFD2                = 323\n\tSYS_INOTIFY_INIT1           = 324\n\tSYS_PIPE2                   = 325\n\tSYS_DUP3                    = 326\n\tSYS_EPOLL_CREATE1           = 327\n\tSYS_PREADV                  = 328\n\tSYS_PWRITEV                 = 329\n\tSYS_RT_TGSIGQUEUEINFO       = 330\n\tSYS_PERF_EVENT_OPEN         = 331\n\tSYS_FANOTIFY_INIT           = 332\n\tSYS_FANOTIFY_MARK           = 333\n\tSYS_PRLIMIT64               = 334\n\tSYS_NAME_TO_HANDLE_AT       = 335\n\tSYS_OPEN_BY_HANDLE_AT       = 336\n\tSYS_CLOCK_ADJTIME           = 337\n\tSYS_SYNCFS                  = 338\n\tSYS_SETNS                   = 339\n\tSYS_PROCESS_VM_READV        = 340\n\tSYS_PROCESS_VM_WRITEV       = 341\n\tSYS_S390_RUNTIME_INSTR      = 342\n\tSYS_KCMP                    = 343\n\tSYS_FINIT_MODULE            = 344\n\tSYS_SCHED_SETATTR           = 345\n\tSYS_SCHED_GETATTR           = 346\n\tSYS_RENAMEAT2               = 347\n\tSYS_SECCOMP                 = 348\n\tSYS_GETRANDOM               = 349\n\tSYS_MEMFD_CREATE            = 350\n\tSYS_BPF                     = 351\n\tSYS_S390_PCI_MMIO_WRITE     = 352\n\tSYS_S390_PCI_MMIO_READ      = 353\n\tSYS_EXECVEAT                = 354\n\tSYS_USERFAULTFD             = 355\n\tSYS_MEMBARRIER              = 356\n\tSYS_RECVMMSG                = 357\n\tSYS_SENDMMSG                = 358\n\tSYS_SOCKET                  = 359\n\tSYS_SOCKETPAIR              = 360\n\tSYS_BIND                    = 361\n\tSYS_CONNECT                 = 362\n\tSYS_LISTEN                  = 363\n\tSYS_ACCEPT4                 = 364\n\tSYS_GETSOCKOPT              = 365\n\tSYS_SETSOCKOPT              = 366\n\tSYS_GETSOCKNAME             = 367\n\tSYS_GETPEERNAME             = 368\n\tSYS_SENDTO                  = 369\n\tSYS_SENDMSG                 = 370\n\tSYS_RECVFROM                = 371\n\tSYS_RECVMSG                 = 372\n\tSYS_SHUTDOWN                = 373\n\tSYS_MLOCK2                  = 374\n\tSYS_COPY_FILE_RANGE         = 375\n\tSYS_PREADV2                 = 376\n\tSYS_PWRITEV2                = 377\n\tSYS_S390_GUARDED_STORAGE    = 378\n\tSYS_STATX                   = 379\n\tSYS_S390_STHYI              = 380\n\tSYS_KEXEC_FILE_LOAD         = 381\n\tSYS_IO_PGETEVENTS           = 382\n\tSYS_RSEQ                    = 383\n\tSYS_PKEY_MPROTECT           = 384\n\tSYS_PKEY_ALLOC              = 385\n\tSYS_PKEY_FREE               = 386\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAIT4                   = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECV                   = 11\n\tSYS_CHDIR                   = 12\n\tSYS_CHOWN                   = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BRK                     = 17\n\tSYS_PERFCTR                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_CAPGET                  = 21\n\tSYS_CAPSET                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_VMSPLICE                = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_SIGALTSTACK             = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_STAT                    = 38\n\tSYS_SENDFILE                = 39\n\tSYS_LSTAT                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_UMOUNT2                 = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_MEMORY_ORDERING         = 52\n\tSYS_IOCTL                   = 54\n\tSYS_REBOOT                  = 55\n\tSYS_SYMLINK                 = 57\n\tSYS_READLINK                = 58\n\tSYS_EXECVE                  = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_FSTAT                   = 62\n\tSYS_FSTAT64                 = 63\n\tSYS_GETPAGESIZE             = 64\n\tSYS_MSYNC                   = 65\n\tSYS_VFORK                   = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_MMAP                    = 71\n\tSYS_MUNMAP                  = 73\n\tSYS_MPROTECT                = 74\n\tSYS_MADVISE                 = 75\n\tSYS_VHANGUP                 = 76\n\tSYS_MINCORE                 = 78\n\tSYS_GETGROUPS               = 79\n\tSYS_SETGROUPS               = 80\n\tSYS_GETPGRP                 = 81\n\tSYS_SETITIMER               = 83\n\tSYS_SWAPON                  = 85\n\tSYS_GETITIMER               = 86\n\tSYS_SETHOSTNAME             = 88\n\tSYS_DUP2                    = 90\n\tSYS_FCNTL                   = 92\n\tSYS_SELECT                  = 93\n\tSYS_FSYNC                   = 95\n\tSYS_SETPRIORITY             = 96\n\tSYS_SOCKET                  = 97\n\tSYS_CONNECT                 = 98\n\tSYS_ACCEPT                  = 99\n\tSYS_GETPRIORITY             = 100\n\tSYS_RT_SIGRETURN            = 101\n\tSYS_RT_SIGACTION            = 102\n\tSYS_RT_SIGPROCMASK          = 103\n\tSYS_RT_SIGPENDING           = 104\n\tSYS_RT_SIGTIMEDWAIT         = 105\n\tSYS_RT_SIGQUEUEINFO         = 106\n\tSYS_RT_SIGSUSPEND           = 107\n\tSYS_SETRESUID               = 108\n\tSYS_GETRESUID               = 109\n\tSYS_SETRESGID               = 110\n\tSYS_GETRESGID               = 111\n\tSYS_RECVMSG                 = 113\n\tSYS_SENDMSG                 = 114\n\tSYS_GETTIMEOFDAY            = 116\n\tSYS_GETRUSAGE               = 117\n\tSYS_GETSOCKOPT              = 118\n\tSYS_GETCWD                  = 119\n\tSYS_READV                   = 120\n\tSYS_WRITEV                  = 121\n\tSYS_SETTIMEOFDAY            = 122\n\tSYS_FCHOWN                  = 123\n\tSYS_FCHMOD                  = 124\n\tSYS_RECVFROM                = 125\n\tSYS_SETREUID                = 126\n\tSYS_SETREGID                = 127\n\tSYS_RENAME                  = 128\n\tSYS_TRUNCATE                = 129\n\tSYS_FTRUNCATE               = 130\n\tSYS_FLOCK                   = 131\n\tSYS_LSTAT64                 = 132\n\tSYS_SENDTO                  = 133\n\tSYS_SHUTDOWN                = 134\n\tSYS_SOCKETPAIR              = 135\n\tSYS_MKDIR                   = 136\n\tSYS_RMDIR                   = 137\n\tSYS_UTIMES                  = 138\n\tSYS_STAT64                  = 139\n\tSYS_SENDFILE64              = 140\n\tSYS_GETPEERNAME             = 141\n\tSYS_FUTEX                   = 142\n\tSYS_GETTID                  = 143\n\tSYS_GETRLIMIT               = 144\n\tSYS_SETRLIMIT               = 145\n\tSYS_PIVOT_ROOT              = 146\n\tSYS_PRCTL                   = 147\n\tSYS_PCICONFIG_READ          = 148\n\tSYS_PCICONFIG_WRITE         = 149\n\tSYS_GETSOCKNAME             = 150\n\tSYS_INOTIFY_INIT            = 151\n\tSYS_INOTIFY_ADD_WATCH       = 152\n\tSYS_POLL                    = 153\n\tSYS_GETDENTS64              = 154\n\tSYS_INOTIFY_RM_WATCH        = 156\n\tSYS_STATFS                  = 157\n\tSYS_FSTATFS                 = 158\n\tSYS_UMOUNT                  = 159\n\tSYS_SCHED_SET_AFFINITY      = 160\n\tSYS_SCHED_GET_AFFINITY      = 161\n\tSYS_GETDOMAINNAME           = 162\n\tSYS_SETDOMAINNAME           = 163\n\tSYS_UTRAP_INSTALL           = 164\n\tSYS_QUOTACTL                = 165\n\tSYS_SET_TID_ADDRESS         = 166\n\tSYS_MOUNT                   = 167\n\tSYS_USTAT                   = 168\n\tSYS_SETXATTR                = 169\n\tSYS_LSETXATTR               = 170\n\tSYS_FSETXATTR               = 171\n\tSYS_GETXATTR                = 172\n\tSYS_LGETXATTR               = 173\n\tSYS_GETDENTS                = 174\n\tSYS_SETSID                  = 175\n\tSYS_FCHDIR                  = 176\n\tSYS_FGETXATTR               = 177\n\tSYS_LISTXATTR               = 178\n\tSYS_LLISTXATTR              = 179\n\tSYS_FLISTXATTR              = 180\n\tSYS_REMOVEXATTR             = 181\n\tSYS_LREMOVEXATTR            = 182\n\tSYS_SIGPENDING              = 183\n\tSYS_QUERY_MODULE            = 184\n\tSYS_SETPGID                 = 185\n\tSYS_FREMOVEXATTR            = 186\n\tSYS_TKILL                   = 187\n\tSYS_EXIT_GROUP              = 188\n\tSYS_UNAME                   = 189\n\tSYS_INIT_MODULE             = 190\n\tSYS_PERSONALITY             = 191\n\tSYS_REMAP_FILE_PAGES        = 192\n\tSYS_EPOLL_CREATE            = 193\n\tSYS_EPOLL_CTL               = 194\n\tSYS_EPOLL_WAIT              = 195\n\tSYS_IOPRIO_SET              = 196\n\tSYS_GETPPID                 = 197\n\tSYS_SIGACTION               = 198\n\tSYS_SGETMASK                = 199\n\tSYS_SSETMASK                = 200\n\tSYS_SIGSUSPEND              = 201\n\tSYS_OLDLSTAT                = 202\n\tSYS_USELIB                  = 203\n\tSYS_READDIR                 = 204\n\tSYS_READAHEAD               = 205\n\tSYS_SOCKETCALL              = 206\n\tSYS_SYSLOG                  = 207\n\tSYS_LOOKUP_DCOOKIE          = 208\n\tSYS_FADVISE64               = 209\n\tSYS_FADVISE64_64            = 210\n\tSYS_TGKILL                  = 211\n\tSYS_WAITPID                 = 212\n\tSYS_SWAPOFF                 = 213\n\tSYS_SYSINFO                 = 214\n\tSYS_IPC                     = 215\n\tSYS_SIGRETURN               = 216\n\tSYS_CLONE                   = 217\n\tSYS_IOPRIO_GET              = 218\n\tSYS_ADJTIMEX                = 219\n\tSYS_SIGPROCMASK             = 220\n\tSYS_CREATE_MODULE           = 221\n\tSYS_DELETE_MODULE           = 222\n\tSYS_GET_KERNEL_SYMS         = 223\n\tSYS_GETPGID                 = 224\n\tSYS_BDFLUSH                 = 225\n\tSYS_SYSFS                   = 226\n\tSYS_AFS_SYSCALL             = 227\n\tSYS_SETFSUID                = 228\n\tSYS_SETFSGID                = 229\n\tSYS__NEWSELECT              = 230\n\tSYS_SPLICE                  = 232\n\tSYS_STIME                   = 233\n\tSYS_STATFS64                = 234\n\tSYS_FSTATFS64               = 235\n\tSYS__LLSEEK                 = 236\n\tSYS_MLOCK                   = 237\n\tSYS_MUNLOCK                 = 238\n\tSYS_MLOCKALL                = 239\n\tSYS_MUNLOCKALL              = 240\n\tSYS_SCHED_SETPARAM          = 241\n\tSYS_SCHED_GETPARAM          = 242\n\tSYS_SCHED_SETSCHEDULER      = 243\n\tSYS_SCHED_GETSCHEDULER      = 244\n\tSYS_SCHED_YIELD             = 245\n\tSYS_SCHED_GET_PRIORITY_MAX  = 246\n\tSYS_SCHED_GET_PRIORITY_MIN  = 247\n\tSYS_SCHED_RR_GET_INTERVAL   = 248\n\tSYS_NANOSLEEP               = 249\n\tSYS_MREMAP                  = 250\n\tSYS__SYSCTL                 = 251\n\tSYS_GETSID                  = 252\n\tSYS_FDATASYNC               = 253\n\tSYS_NFSSERVCTL              = 254\n\tSYS_SYNC_FILE_RANGE         = 255\n\tSYS_CLOCK_SETTIME           = 256\n\tSYS_CLOCK_GETTIME           = 257\n\tSYS_CLOCK_GETRES            = 258\n\tSYS_CLOCK_NANOSLEEP         = 259\n\tSYS_SCHED_GETAFFINITY       = 260\n\tSYS_SCHED_SETAFFINITY       = 261\n\tSYS_TIMER_SETTIME           = 262\n\tSYS_TIMER_GETTIME           = 263\n\tSYS_TIMER_GETOVERRUN        = 264\n\tSYS_TIMER_DELETE            = 265\n\tSYS_TIMER_CREATE            = 266\n\tSYS_VSERVER                 = 267\n\tSYS_IO_SETUP                = 268\n\tSYS_IO_DESTROY              = 269\n\tSYS_IO_SUBMIT               = 270\n\tSYS_IO_CANCEL               = 271\n\tSYS_IO_GETEVENTS            = 272\n\tSYS_MQ_OPEN                 = 273\n\tSYS_MQ_UNLINK               = 274\n\tSYS_MQ_TIMEDSEND            = 275\n\tSYS_MQ_TIMEDRECEIVE         = 276\n\tSYS_MQ_NOTIFY               = 277\n\tSYS_MQ_GETSETATTR           = 278\n\tSYS_WAITID                  = 279\n\tSYS_TEE                     = 280\n\tSYS_ADD_KEY                 = 281\n\tSYS_REQUEST_KEY             = 282\n\tSYS_KEYCTL                  = 283\n\tSYS_OPENAT                  = 284\n\tSYS_MKDIRAT                 = 285\n\tSYS_MKNODAT                 = 286\n\tSYS_FCHOWNAT                = 287\n\tSYS_FUTIMESAT               = 288\n\tSYS_FSTATAT64               = 289\n\tSYS_UNLINKAT                = 290\n\tSYS_RENAMEAT                = 291\n\tSYS_LINKAT                  = 292\n\tSYS_SYMLINKAT               = 293\n\tSYS_READLINKAT              = 294\n\tSYS_FCHMODAT                = 295\n\tSYS_FACCESSAT               = 296\n\tSYS_PSELECT6                = 297\n\tSYS_PPOLL                   = 298\n\tSYS_UNSHARE                 = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_GET_ROBUST_LIST         = 301\n\tSYS_MIGRATE_PAGES           = 302\n\tSYS_MBIND                   = 303\n\tSYS_GET_MEMPOLICY           = 304\n\tSYS_SET_MEMPOLICY           = 305\n\tSYS_KEXEC_LOAD              = 306\n\tSYS_MOVE_PAGES              = 307\n\tSYS_GETCPU                  = 308\n\tSYS_EPOLL_PWAIT             = 309\n\tSYS_UTIMENSAT               = 310\n\tSYS_SIGNALFD                = 311\n\tSYS_TIMERFD_CREATE          = 312\n\tSYS_EVENTFD                 = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_TIMERFD_SETTIME         = 315\n\tSYS_TIMERFD_GETTIME         = 316\n\tSYS_SIGNALFD4               = 317\n\tSYS_EVENTFD2                = 318\n\tSYS_EPOLL_CREATE1           = 319\n\tSYS_DUP3                    = 320\n\tSYS_PIPE2                   = 321\n\tSYS_INOTIFY_INIT1           = 322\n\tSYS_ACCEPT4                 = 323\n\tSYS_PREADV                  = 324\n\tSYS_PWRITEV                 = 325\n\tSYS_RT_TGSIGQUEUEINFO       = 326\n\tSYS_PERF_EVENT_OPEN         = 327\n\tSYS_RECVMMSG                = 328\n\tSYS_FANOTIFY_INIT           = 329\n\tSYS_FANOTIFY_MARK           = 330\n\tSYS_PRLIMIT64               = 331\n\tSYS_NAME_TO_HANDLE_AT       = 332\n\tSYS_OPEN_BY_HANDLE_AT       = 333\n\tSYS_CLOCK_ADJTIME           = 334\n\tSYS_SYNCFS                  = 335\n\tSYS_SENDMMSG                = 336\n\tSYS_SETNS                   = 337\n\tSYS_PROCESS_VM_READV        = 338\n\tSYS_PROCESS_VM_WRITEV       = 339\n\tSYS_KERN_FEATURES           = 340\n\tSYS_KCMP                    = 341\n\tSYS_FINIT_MODULE            = 342\n\tSYS_SCHED_SETATTR           = 343\n\tSYS_SCHED_GETATTR           = 344\n\tSYS_RENAMEAT2               = 345\n\tSYS_SECCOMP                 = 346\n\tSYS_GETRANDOM               = 347\n\tSYS_MEMFD_CREATE            = 348\n\tSYS_BPF                     = 349\n\tSYS_EXECVEAT                = 350\n\tSYS_MEMBARRIER              = 351\n\tSYS_USERFAULTFD             = 352\n\tSYS_BIND                    = 353\n\tSYS_LISTEN                  = 354\n\tSYS_SETSOCKOPT              = 355\n\tSYS_MLOCK2                  = 356\n\tSYS_COPY_FILE_RANGE         = 357\n\tSYS_PREADV2                 = 358\n\tSYS_PWRITEV2                = 359\n\tSYS_STATX                   = 360\n\tSYS_IO_PGETEVENTS           = 361\n\tSYS_PKEY_MPROTECT           = 362\n\tSYS_PKEY_ALLOC              = 363\n\tSYS_PKEY_FREE               = 364\n\tSYS_RSEQ                    = 365\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_MSYSCALL       = 37  // { int sys_msyscall(void *addr, size_t len); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS___REALPATH     = 115 // { int sys___realpath(const char *pathname, char *resolved); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS___TMPFD        = 164 // { int sys___tmpfd(int flags); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nconst (\n\tSYS_LOG                             = 0x17  // 23\n\tSYS_COSH                            = 0x18  // 24\n\tSYS_TANH                            = 0x19  // 25\n\tSYS_EXP                             = 0x1A  // 26\n\tSYS_MODF                            = 0x1B  // 27\n\tSYS_LOG10                           = 0x1C  // 28\n\tSYS_FREXP                           = 0x1D  // 29\n\tSYS_LDEXP                           = 0x1E  // 30\n\tSYS_CEIL                            = 0x1F  // 31\n\tSYS_POW                             = 0x20  // 32\n\tSYS_SQRT                            = 0x21  // 33\n\tSYS_FLOOR                           = 0x22  // 34\n\tSYS_J1                              = 0x23  // 35\n\tSYS_FABS                            = 0x24  // 36\n\tSYS_FMOD                            = 0x25  // 37\n\tSYS_J0                              = 0x26  // 38\n\tSYS_YN                              = 0x27  // 39\n\tSYS_JN                              = 0x28  // 40\n\tSYS_Y0                              = 0x29  // 41\n\tSYS_Y1                              = 0x2A  // 42\n\tSYS_HYPOT                           = 0x2B  // 43\n\tSYS_ERF                             = 0x2C  // 44\n\tSYS_ERFC                            = 0x2D  // 45\n\tSYS_GAMMA                           = 0x2E  // 46\n\tSYS_ISALPHA                         = 0x30  // 48\n\tSYS_ISALNUM                         = 0x31  // 49\n\tSYS_ISLOWER                         = 0x32  // 50\n\tSYS_ISCNTRL                         = 0x33  // 51\n\tSYS_ISDIGIT                         = 0x34  // 52\n\tSYS_ISGRAPH                         = 0x35  // 53\n\tSYS_ISUPPER                         = 0x36  // 54\n\tSYS_ISPRINT                         = 0x37  // 55\n\tSYS_ISPUNCT                         = 0x38  // 56\n\tSYS_ISSPACE                         = 0x39  // 57\n\tSYS_SETLOCAL                        = 0x3A  // 58\n\tSYS_SETLOCALE                       = 0x3A  // 58\n\tSYS_ISXDIGIT                        = 0x3B  // 59\n\tSYS_TOLOWER                         = 0x3C  // 60\n\tSYS_TOUPPER                         = 0x3D  // 61\n\tSYS_ASIN                            = 0x3E  // 62\n\tSYS_SIN                             = 0x3F  // 63\n\tSYS_COS                             = 0x40  // 64\n\tSYS_TAN                             = 0x41  // 65\n\tSYS_SINH                            = 0x42  // 66\n\tSYS_ACOS                            = 0x43  // 67\n\tSYS_ATAN                            = 0x44  // 68\n\tSYS_ATAN2                           = 0x45  // 69\n\tSYS_FTELL                           = 0x46  // 70\n\tSYS_FGETPOS                         = 0x47  // 71\n\tSYS_FSEEK                           = 0x48  // 72\n\tSYS_FSETPOS                         = 0x49  // 73\n\tSYS_FERROR                          = 0x4A  // 74\n\tSYS_REWIND                          = 0x4B  // 75\n\tSYS_CLEARERR                        = 0x4C  // 76\n\tSYS_FEOF                            = 0x4D  // 77\n\tSYS_ATOL                            = 0x4E  // 78\n\tSYS_PERROR                          = 0x4F  // 79\n\tSYS_ATOF                            = 0x50  // 80\n\tSYS_ATOI                            = 0x51  // 81\n\tSYS_RAND                            = 0x52  // 82\n\tSYS_STRTOD                          = 0x53  // 83\n\tSYS_STRTOL                          = 0x54  // 84\n\tSYS_STRTOUL                         = 0x55  // 85\n\tSYS_MALLOC                          = 0x56  // 86\n\tSYS_SRAND                           = 0x57  // 87\n\tSYS_CALLOC                          = 0x58  // 88\n\tSYS_FREE                            = 0x59  // 89\n\tSYS_EXIT                            = 0x5A  // 90\n\tSYS_REALLOC                         = 0x5B  // 91\n\tSYS_ABORT                           = 0x5C  // 92\n\tSYS___ABORT                         = 0x5C  // 92\n\tSYS_ATEXIT                          = 0x5D  // 93\n\tSYS_RAISE                           = 0x5E  // 94\n\tSYS_SETJMP                          = 0x5F  // 95\n\tSYS_LONGJMP                         = 0x60  // 96\n\tSYS_SIGNAL                          = 0x61  // 97\n\tSYS_TMPNAM                          = 0x62  // 98\n\tSYS_REMOVE                          = 0x63  // 99\n\tSYS_RENAME                          = 0x64  // 100\n\tSYS_TMPFILE                         = 0x65  // 101\n\tSYS_FREOPEN                         = 0x66  // 102\n\tSYS_FCLOSE                          = 0x67  // 103\n\tSYS_FFLUSH                          = 0x68  // 104\n\tSYS_FOPEN                           = 0x69  // 105\n\tSYS_FSCANF                          = 0x6A  // 106\n\tSYS_SETBUF                          = 0x6B  // 107\n\tSYS_SETVBUF                         = 0x6C  // 108\n\tSYS_FPRINTF                         = 0x6D  // 109\n\tSYS_SSCANF                          = 0x6E  // 110\n\tSYS_PRINTF                          = 0x6F  // 111\n\tSYS_SCANF                           = 0x70  // 112\n\tSYS_SPRINTF                         = 0x71  // 113\n\tSYS_FGETC                           = 0x72  // 114\n\tSYS_VFPRINTF                        = 0x73  // 115\n\tSYS_VPRINTF                         = 0x74  // 116\n\tSYS_VSPRINTF                        = 0x75  // 117\n\tSYS_GETC                            = 0x76  // 118\n\tSYS_FGETS                           = 0x77  // 119\n\tSYS_FPUTC                           = 0x78  // 120\n\tSYS_FPUTS                           = 0x79  // 121\n\tSYS_PUTCHAR                         = 0x7A  // 122\n\tSYS_GETCHAR                         = 0x7B  // 123\n\tSYS_GETS                            = 0x7C  // 124\n\tSYS_PUTC                            = 0x7D  // 125\n\tSYS_FWRITE                          = 0x7E  // 126\n\tSYS_PUTS                            = 0x7F  // 127\n\tSYS_UNGETC                          = 0x80  // 128\n\tSYS_FREAD                           = 0x81  // 129\n\tSYS_WCSTOMBS                        = 0x82  // 130\n\tSYS_MBTOWC                          = 0x83  // 131\n\tSYS_WCTOMB                          = 0x84  // 132\n\tSYS_MBSTOWCS                        = 0x85  // 133\n\tSYS_WCSCPY                          = 0x86  // 134\n\tSYS_WCSCAT                          = 0x87  // 135\n\tSYS_WCSCHR                          = 0x88  // 136\n\tSYS_WCSCMP                          = 0x89  // 137\n\tSYS_WCSNCMP                         = 0x8A  // 138\n\tSYS_WCSCSPN                         = 0x8B  // 139\n\tSYS_WCSLEN                          = 0x8C  // 140\n\tSYS_WCSNCAT                         = 0x8D  // 141\n\tSYS_WCSSPN                          = 0x8E  // 142\n\tSYS_WCSNCPY                         = 0x8F  // 143\n\tSYS_ABS                             = 0x90  // 144\n\tSYS_DIV                             = 0x91  // 145\n\tSYS_LABS                            = 0x92  // 146\n\tSYS_STRNCPY                         = 0x93  // 147\n\tSYS_MEMCPY                          = 0x94  // 148\n\tSYS_MEMMOVE                         = 0x95  // 149\n\tSYS_STRCPY                          = 0x96  // 150\n\tSYS_STRCMP                          = 0x97  // 151\n\tSYS_STRCAT                          = 0x98  // 152\n\tSYS_STRNCAT                         = 0x99  // 153\n\tSYS_MEMCMP                          = 0x9A  // 154\n\tSYS_MEMCHR                          = 0x9B  // 155\n\tSYS_STRCOLL                         = 0x9C  // 156\n\tSYS_STRNCMP                         = 0x9D  // 157\n\tSYS_STRXFRM                         = 0x9E  // 158\n\tSYS_STRRCHR                         = 0x9F  // 159\n\tSYS_STRCHR                          = 0xA0  // 160\n\tSYS_STRCSPN                         = 0xA1  // 161\n\tSYS_STRPBRK                         = 0xA2  // 162\n\tSYS_MEMSET                          = 0xA3  // 163\n\tSYS_STRSPN                          = 0xA4  // 164\n\tSYS_STRSTR                          = 0xA5  // 165\n\tSYS_STRTOK                          = 0xA6  // 166\n\tSYS_DIFFTIME                        = 0xA7  // 167\n\tSYS_STRERROR                        = 0xA8  // 168\n\tSYS_STRLEN                          = 0xA9  // 169\n\tSYS_CLOCK                           = 0xAA  // 170\n\tSYS_CTIME                           = 0xAB  // 171\n\tSYS_MKTIME                          = 0xAC  // 172\n\tSYS_TIME                            = 0xAD  // 173\n\tSYS_ASCTIME                         = 0xAE  // 174\n\tSYS_MBLEN                           = 0xAF  // 175\n\tSYS_GMTIME                          = 0xB0  // 176\n\tSYS_LOCALTIM                        = 0xB1  // 177\n\tSYS_LOCALTIME                       = 0xB1  // 177\n\tSYS_STRFTIME                        = 0xB2  // 178\n\tSYS___GETCB                         = 0xB4  // 180\n\tSYS_FUPDATE                         = 0xB5  // 181\n\tSYS___FUPDT                         = 0xB5  // 181\n\tSYS_CLRMEMF                         = 0xBD  // 189\n\tSYS___CLRMF                         = 0xBD  // 189\n\tSYS_FETCHEP                         = 0xBF  // 191\n\tSYS___FTCHEP                        = 0xBF  // 191\n\tSYS_FLDATA                          = 0xC1  // 193\n\tSYS___FLDATA                        = 0xC1  // 193\n\tSYS_DYNFREE                         = 0xC2  // 194\n\tSYS___DYNFRE                        = 0xC2  // 194\n\tSYS_DYNALLOC                        = 0xC3  // 195\n\tSYS___DYNALL                        = 0xC3  // 195\n\tSYS___CDUMP                         = 0xC4  // 196\n\tSYS_CSNAP                           = 0xC5  // 197\n\tSYS___CSNAP                         = 0xC5  // 197\n\tSYS_CTRACE                          = 0xC6  // 198\n\tSYS___CTRACE                        = 0xC6  // 198\n\tSYS___CTEST                         = 0xC7  // 199\n\tSYS_SETENV                          = 0xC8  // 200\n\tSYS___SETENV                        = 0xC8  // 200\n\tSYS_CLEARENV                        = 0xC9  // 201\n\tSYS___CLRENV                        = 0xC9  // 201\n\tSYS___REGCOMP_STD                   = 0xEA  // 234\n\tSYS_NL_LANGINFO                     = 0xFC  // 252\n\tSYS_GETSYNTX                        = 0xFD  // 253\n\tSYS_ISBLANK                         = 0xFE  // 254\n\tSYS___ISBLNK                        = 0xFE  // 254\n\tSYS_ISWALNUM                        = 0xFF  // 255\n\tSYS_ISWALPHA                        = 0x100 // 256\n\tSYS_ISWBLANK                        = 0x101 // 257\n\tSYS___ISWBLK                        = 0x101 // 257\n\tSYS_ISWCNTRL                        = 0x102 // 258\n\tSYS_ISWDIGIT                        = 0x103 // 259\n\tSYS_ISWGRAPH                        = 0x104 // 260\n\tSYS_ISWLOWER                        = 0x105 // 261\n\tSYS_ISWPRINT                        = 0x106 // 262\n\tSYS_ISWPUNCT                        = 0x107 // 263\n\tSYS_ISWSPACE                        = 0x108 // 264\n\tSYS_ISWUPPER                        = 0x109 // 265\n\tSYS_ISWXDIGI                        = 0x10A // 266\n\tSYS_ISWXDIGIT                       = 0x10A // 266\n\tSYS_WCTYPE                          = 0x10B // 267\n\tSYS_ISWCTYPE                        = 0x10C // 268\n\tSYS_TOWLOWER                        = 0x10D // 269\n\tSYS_TOWUPPER                        = 0x10E // 270\n\tSYS_MBSINIT                         = 0x10F // 271\n\tSYS_WCTOB                           = 0x110 // 272\n\tSYS_MBRLEN                          = 0x111 // 273\n\tSYS_MBRTOWC                         = 0x112 // 274\n\tSYS_MBSRTOWC                        = 0x113 // 275\n\tSYS_MBSRTOWCS                       = 0x113 // 275\n\tSYS_WCRTOMB                         = 0x114 // 276\n\tSYS_WCSRTOMB                        = 0x115 // 277\n\tSYS_WCSRTOMBS                       = 0x115 // 277\n\tSYS___CSID                          = 0x116 // 278\n\tSYS___WCSID                         = 0x117 // 279\n\tSYS_STRPTIME                        = 0x118 // 280\n\tSYS___STRPTM                        = 0x118 // 280\n\tSYS_STRFMON                         = 0x119 // 281\n\tSYS___RPMTCH                        = 0x11A // 282\n\tSYS_WCSSTR                          = 0x11B // 283\n\tSYS_WCSTOK                          = 0x12C // 300\n\tSYS_WCSTOL                          = 0x12D // 301\n\tSYS_WCSTOD                          = 0x12E // 302\n\tSYS_WCSTOUL                         = 0x12F // 303\n\tSYS_WCSCOLL                         = 0x130 // 304\n\tSYS_WCSXFRM                         = 0x131 // 305\n\tSYS_WCSWIDTH                        = 0x132 // 306\n\tSYS_WCWIDTH                         = 0x133 // 307\n\tSYS_WCSFTIME                        = 0x134 // 308\n\tSYS_SWPRINTF                        = 0x135 // 309\n\tSYS_VSWPRINT                        = 0x136 // 310\n\tSYS_VSWPRINTF                       = 0x136 // 310\n\tSYS_SWSCANF                         = 0x137 // 311\n\tSYS_REGCOMP                         = 0x138 // 312\n\tSYS_REGEXEC                         = 0x139 // 313\n\tSYS_REGFREE                         = 0x13A // 314\n\tSYS_REGERROR                        = 0x13B // 315\n\tSYS_FGETWC                          = 0x13C // 316\n\tSYS_FGETWS                          = 0x13D // 317\n\tSYS_FPUTWC                          = 0x13E // 318\n\tSYS_FPUTWS                          = 0x13F // 319\n\tSYS_GETWC                           = 0x140 // 320\n\tSYS_GETWCHAR                        = 0x141 // 321\n\tSYS_PUTWC                           = 0x142 // 322\n\tSYS_PUTWCHAR                        = 0x143 // 323\n\tSYS_UNGETWC                         = 0x144 // 324\n\tSYS_ICONV_OPEN                      = 0x145 // 325\n\tSYS_ICONV                           = 0x146 // 326\n\tSYS_ICONV_CLOSE                     = 0x147 // 327\n\tSYS_ISMCCOLLEL                      = 0x14C // 332\n\tSYS_STRTOCOLL                       = 0x14D // 333\n\tSYS_COLLTOSTR                       = 0x14E // 334\n\tSYS_COLLEQUIV                       = 0x14F // 335\n\tSYS_COLLRANGE                       = 0x150 // 336\n\tSYS_CCLASS                          = 0x151 // 337\n\tSYS_COLLORDER                       = 0x152 // 338\n\tSYS___DEMANGLE                      = 0x154 // 340\n\tSYS_FDOPEN                          = 0x155 // 341\n\tSYS___ERRNO                         = 0x156 // 342\n\tSYS___ERRNO2                        = 0x157 // 343\n\tSYS___TERROR                        = 0x158 // 344\n\tSYS_MAXCOLL                         = 0x169 // 361\n\tSYS_GETMCCOLL                       = 0x16A // 362\n\tSYS_GETWMCCOLL                      = 0x16B // 363\n\tSYS___ERR2AD                        = 0x16C // 364\n\tSYS_DLLQUERYFN                      = 0x16D // 365\n\tSYS_DLLQUERYVAR                     = 0x16E // 366\n\tSYS_DLLFREE                         = 0x16F // 367\n\tSYS_DLLLOAD                         = 0x170 // 368\n\tSYS__EXIT                           = 0x174 // 372\n\tSYS_ACCESS                          = 0x175 // 373\n\tSYS_ALARM                           = 0x176 // 374\n\tSYS_CFGETISPEED                     = 0x177 // 375\n\tSYS_CFGETOSPEED                     = 0x178 // 376\n\tSYS_CFSETISPEED                     = 0x179 // 377\n\tSYS_CFSETOSPEED                     = 0x17A // 378\n\tSYS_CHDIR                           = 0x17B // 379\n\tSYS_CHMOD                           = 0x17C // 380\n\tSYS_CHOWN                           = 0x17D // 381\n\tSYS_CLOSE                           = 0x17E // 382\n\tSYS_CLOSEDIR                        = 0x17F // 383\n\tSYS_CREAT                           = 0x180 // 384\n\tSYS_CTERMID                         = 0x181 // 385\n\tSYS_DUP                             = 0x182 // 386\n\tSYS_DUP2                            = 0x183 // 387\n\tSYS_EXECL                           = 0x184 // 388\n\tSYS_EXECLE                          = 0x185 // 389\n\tSYS_EXECLP                          = 0x186 // 390\n\tSYS_EXECV                           = 0x187 // 391\n\tSYS_EXECVE                          = 0x188 // 392\n\tSYS_EXECVP                          = 0x189 // 393\n\tSYS_FCHMOD                          = 0x18A // 394\n\tSYS_FCHOWN                          = 0x18B // 395\n\tSYS_FCNTL                           = 0x18C // 396\n\tSYS_FILENO                          = 0x18D // 397\n\tSYS_FORK                            = 0x18E // 398\n\tSYS_FPATHCONF                       = 0x18F // 399\n\tSYS_FSTAT                           = 0x190 // 400\n\tSYS_FSYNC                           = 0x191 // 401\n\tSYS_FTRUNCATE                       = 0x192 // 402\n\tSYS_GETCWD                          = 0x193 // 403\n\tSYS_GETEGID                         = 0x194 // 404\n\tSYS_GETEUID                         = 0x195 // 405\n\tSYS_GETGID                          = 0x196 // 406\n\tSYS_GETGRGID                        = 0x197 // 407\n\tSYS_GETGRNAM                        = 0x198 // 408\n\tSYS_GETGROUPS                       = 0x199 // 409\n\tSYS_GETLOGIN                        = 0x19A // 410\n\tSYS_W_GETMNTENT                     = 0x19B // 411\n\tSYS_GETPGRP                         = 0x19C // 412\n\tSYS_GETPID                          = 0x19D // 413\n\tSYS_GETPPID                         = 0x19E // 414\n\tSYS_GETPWNAM                        = 0x19F // 415\n\tSYS_GETPWUID                        = 0x1A0 // 416\n\tSYS_GETUID                          = 0x1A1 // 417\n\tSYS_W_IOCTL                         = 0x1A2 // 418\n\tSYS_ISATTY                          = 0x1A3 // 419\n\tSYS_KILL                            = 0x1A4 // 420\n\tSYS_LINK                            = 0x1A5 // 421\n\tSYS_LSEEK                           = 0x1A6 // 422\n\tSYS_LSTAT                           = 0x1A7 // 423\n\tSYS_MKDIR                           = 0x1A8 // 424\n\tSYS_MKFIFO                          = 0x1A9 // 425\n\tSYS_MKNOD                           = 0x1AA // 426\n\tSYS_MOUNT                           = 0x1AB // 427\n\tSYS_OPEN                            = 0x1AC // 428\n\tSYS_OPENDIR                         = 0x1AD // 429\n\tSYS_PATHCONF                        = 0x1AE // 430\n\tSYS_PAUSE                           = 0x1AF // 431\n\tSYS_PIPE                            = 0x1B0 // 432\n\tSYS_W_GETPSENT                      = 0x1B1 // 433\n\tSYS_READ                            = 0x1B2 // 434\n\tSYS_READDIR                         = 0x1B3 // 435\n\tSYS_READLINK                        = 0x1B4 // 436\n\tSYS_REWINDDIR                       = 0x1B5 // 437\n\tSYS_RMDIR                           = 0x1B6 // 438\n\tSYS_SETEGID                         = 0x1B7 // 439\n\tSYS_SETEUID                         = 0x1B8 // 440\n\tSYS_SETGID                          = 0x1B9 // 441\n\tSYS_SETPGID                         = 0x1BA // 442\n\tSYS_SETSID                          = 0x1BB // 443\n\tSYS_SETUID                          = 0x1BC // 444\n\tSYS_SIGACTION                       = 0x1BD // 445\n\tSYS_SIGADDSET                       = 0x1BE // 446\n\tSYS_SIGDELSET                       = 0x1BF // 447\n\tSYS_SIGEMPTYSET                     = 0x1C0 // 448\n\tSYS_SIGFILLSET                      = 0x1C1 // 449\n\tSYS_SIGISMEMBER                     = 0x1C2 // 450\n\tSYS_SIGLONGJMP                      = 0x1C3 // 451\n\tSYS_SIGPENDING                      = 0x1C4 // 452\n\tSYS_SIGPROCMASK                     = 0x1C5 // 453\n\tSYS_SIGSETJMP                       = 0x1C6 // 454\n\tSYS_SIGSUSPEND                      = 0x1C7 // 455\n\tSYS_SLEEP                           = 0x1C8 // 456\n\tSYS_STAT                            = 0x1C9 // 457\n\tSYS_W_STATFS                        = 0x1CA // 458\n\tSYS_SYMLINK                         = 0x1CB // 459\n\tSYS_SYSCONF                         = 0x1CC // 460\n\tSYS_TCDRAIN                         = 0x1CD // 461\n\tSYS_TCFLOW                          = 0x1CE // 462\n\tSYS_TCFLUSH                         = 0x1CF // 463\n\tSYS_TCGETATTR                       = 0x1D0 // 464\n\tSYS_TCGETPGRP                       = 0x1D1 // 465\n\tSYS_TCSENDBREAK                     = 0x1D2 // 466\n\tSYS_TCSETATTR                       = 0x1D3 // 467\n\tSYS_TCSETPGRP                       = 0x1D4 // 468\n\tSYS_TIMES                           = 0x1D5 // 469\n\tSYS_TTYNAME                         = 0x1D6 // 470\n\tSYS_TZSET                           = 0x1D7 // 471\n\tSYS_UMASK                           = 0x1D8 // 472\n\tSYS_UMOUNT                          = 0x1D9 // 473\n\tSYS_UNAME                           = 0x1DA // 474\n\tSYS_UNLINK                          = 0x1DB // 475\n\tSYS_UTIME                           = 0x1DC // 476\n\tSYS_WAIT                            = 0x1DD // 477\n\tSYS_WAITPID                         = 0x1DE // 478\n\tSYS_WRITE                           = 0x1DF // 479\n\tSYS_CHAUDIT                         = 0x1E0 // 480\n\tSYS_FCHAUDIT                        = 0x1E1 // 481\n\tSYS_GETGROUPSBYNAME                 = 0x1E2 // 482\n\tSYS_SIGWAIT                         = 0x1E3 // 483\n\tSYS_PTHREAD_EXIT                    = 0x1E4 // 484\n\tSYS_PTHREAD_KILL                    = 0x1E5 // 485\n\tSYS_PTHREAD_ATTR_INIT               = 0x1E6 // 486\n\tSYS_PTHREAD_ATTR_DESTROY            = 0x1E7 // 487\n\tSYS_PTHREAD_ATTR_SETSTACKSIZE       = 0x1E8 // 488\n\tSYS_PTHREAD_ATTR_GETSTACKSIZE       = 0x1E9 // 489\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE     = 0x1EA // 490\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE     = 0x1EB // 491\n\tSYS_PTHREAD_ATTR_SETWEIGHT_NP       = 0x1EC // 492\n\tSYS_PTHREAD_ATTR_GETWEIGHT_NP       = 0x1ED // 493\n\tSYS_PTHREAD_CANCEL                  = 0x1EE // 494\n\tSYS_PTHREAD_CLEANUP_PUSH            = 0x1EF // 495\n\tSYS_PTHREAD_CLEANUP_POP             = 0x1F0 // 496\n\tSYS_PTHREAD_CONDATTR_INIT           = 0x1F1 // 497\n\tSYS_PTHREAD_CONDATTR_DESTROY        = 0x1F2 // 498\n\tSYS_PTHREAD_COND_INIT               = 0x1F3 // 499\n\tSYS_PTHREAD_COND_DESTROY            = 0x1F4 // 500\n\tSYS_PTHREAD_COND_SIGNAL             = 0x1F5 // 501\n\tSYS_PTHREAD_COND_BROADCAST          = 0x1F6 // 502\n\tSYS_PTHREAD_COND_WAIT               = 0x1F7 // 503\n\tSYS_PTHREAD_COND_TIMEDWAIT          = 0x1F8 // 504\n\tSYS_PTHREAD_CREATE                  = 0x1F9 // 505\n\tSYS_PTHREAD_DETACH                  = 0x1FA // 506\n\tSYS_PTHREAD_EQUAL                   = 0x1FB // 507\n\tSYS_PTHREAD_GETSPECIFIC             = 0x1FC // 508\n\tSYS_PTHREAD_JOIN                    = 0x1FD // 509\n\tSYS_PTHREAD_KEY_CREATE              = 0x1FE // 510\n\tSYS_PTHREAD_MUTEXATTR_INIT          = 0x1FF // 511\n\tSYS_PTHREAD_MUTEXATTR_DESTROY       = 0x200 // 512\n\tSYS_PTHREAD_MUTEXATTR_SETKIND_NP    = 0x201 // 513\n\tSYS_PTHREAD_MUTEXATTR_GETKIND_NP    = 0x202 // 514\n\tSYS_PTHREAD_MUTEX_INIT              = 0x203 // 515\n\tSYS_PTHREAD_MUTEX_DESTROY           = 0x204 // 516\n\tSYS_PTHREAD_MUTEX_LOCK              = 0x205 // 517\n\tSYS_PTHREAD_MUTEX_TRYLOCK           = 0x206 // 518\n\tSYS_PTHREAD_MUTEX_UNLOCK            = 0x207 // 519\n\tSYS_PTHREAD_ONCE                    = 0x209 // 521\n\tSYS_PTHREAD_SELF                    = 0x20A // 522\n\tSYS_PTHREAD_SETINTR                 = 0x20B // 523\n\tSYS_PTHREAD_SETINTRTYPE             = 0x20C // 524\n\tSYS_PTHREAD_SETSPECIFIC             = 0x20D // 525\n\tSYS_PTHREAD_TESTINTR                = 0x20E // 526\n\tSYS_PTHREAD_YIELD                   = 0x20F // 527\n\tSYS_TW_OPEN                         = 0x210 // 528\n\tSYS_TW_FCNTL                        = 0x211 // 529\n\tSYS_PTHREAD_JOIN_D4_NP              = 0x212 // 530\n\tSYS_PTHREAD_CONDATTR_SETKIND_NP     = 0x213 // 531\n\tSYS_PTHREAD_CONDATTR_GETKIND_NP     = 0x214 // 532\n\tSYS_EXTLINK_NP                      = 0x215 // 533\n\tSYS___PASSWD                        = 0x216 // 534\n\tSYS_SETGROUPS                       = 0x217 // 535\n\tSYS_INITGROUPS                      = 0x218 // 536\n\tSYS_WCSPBRK                         = 0x23F // 575\n\tSYS_WCSRCHR                         = 0x240 // 576\n\tSYS_SVC99                           = 0x241 // 577\n\tSYS___SVC99                         = 0x241 // 577\n\tSYS_WCSWCS                          = 0x242 // 578\n\tSYS_LOCALECO                        = 0x243 // 579\n\tSYS_LOCALECONV                      = 0x243 // 579\n\tSYS___LIBREL                        = 0x244 // 580\n\tSYS_RELEASE                         = 0x245 // 581\n\tSYS___RLSE                          = 0x245 // 581\n\tSYS_FLOCATE                         = 0x246 // 582\n\tSYS___FLOCT                         = 0x246 // 582\n\tSYS_FDELREC                         = 0x247 // 583\n\tSYS___FDLREC                        = 0x247 // 583\n\tSYS_FETCH                           = 0x248 // 584\n\tSYS___FETCH                         = 0x248 // 584\n\tSYS_QSORT                           = 0x249 // 585\n\tSYS_GETENV                          = 0x24A // 586\n\tSYS_SYSTEM                          = 0x24B // 587\n\tSYS_BSEARCH                         = 0x24C // 588\n\tSYS_LDIV                            = 0x24D // 589\n\tSYS___THROW                         = 0x25E // 606\n\tSYS___RETHROW                       = 0x25F // 607\n\tSYS___CLEANUPCATCH                  = 0x260 // 608\n\tSYS___CATCHMATCH                    = 0x261 // 609\n\tSYS___CLEAN2UPCATCH                 = 0x262 // 610\n\tSYS_PUTENV                          = 0x26A // 618\n\tSYS___GETENV                        = 0x26F // 623\n\tSYS_GETPRIORITY                     = 0x270 // 624\n\tSYS_NICE                            = 0x271 // 625\n\tSYS_SETPRIORITY                     = 0x272 // 626\n\tSYS_GETITIMER                       = 0x273 // 627\n\tSYS_SETITIMER                       = 0x274 // 628\n\tSYS_MSGCTL                          = 0x275 // 629\n\tSYS_MSGGET                          = 0x276 // 630\n\tSYS_MSGRCV                          = 0x277 // 631\n\tSYS_MSGSND                          = 0x278 // 632\n\tSYS_MSGXRCV                         = 0x279 // 633\n\tSYS___MSGXR                         = 0x279 // 633\n\tSYS_SEMCTL                          = 0x27A // 634\n\tSYS_SEMGET                          = 0x27B // 635\n\tSYS_SEMOP                           = 0x27C // 636\n\tSYS_SHMAT                           = 0x27D // 637\n\tSYS_SHMCTL                          = 0x27E // 638\n\tSYS_SHMDT                           = 0x27F // 639\n\tSYS_SHMGET                          = 0x280 // 640\n\tSYS___GETIPC                        = 0x281 // 641\n\tSYS_SETGRENT                        = 0x282 // 642\n\tSYS_GETGRENT                        = 0x283 // 643\n\tSYS_ENDGRENT                        = 0x284 // 644\n\tSYS_SETPWENT                        = 0x285 // 645\n\tSYS_GETPWENT                        = 0x286 // 646\n\tSYS_ENDPWENT                        = 0x287 // 647\n\tSYS_BSD_SIGNAL                      = 0x288 // 648\n\tSYS_KILLPG                          = 0x289 // 649\n\tSYS_SIGALTSTACK                     = 0x28A // 650\n\tSYS_SIGHOLD                         = 0x28B // 651\n\tSYS_SIGIGNORE                       = 0x28C // 652\n\tSYS_SIGINTERRUPT                    = 0x28D // 653\n\tSYS_SIGPAUSE                        = 0x28E // 654\n\tSYS_SIGRELSE                        = 0x28F // 655\n\tSYS_SIGSET                          = 0x290 // 656\n\tSYS_SIGSTACK                        = 0x291 // 657\n\tSYS_GETRLIMIT                       = 0x292 // 658\n\tSYS_SETRLIMIT                       = 0x293 // 659\n\tSYS_GETRUSAGE                       = 0x294 // 660\n\tSYS_MMAP                            = 0x295 // 661\n\tSYS_MPROTECT                        = 0x296 // 662\n\tSYS_MSYNC                           = 0x297 // 663\n\tSYS_MUNMAP                          = 0x298 // 664\n\tSYS_CONFSTR                         = 0x299 // 665\n\tSYS_GETOPT                          = 0x29A // 666\n\tSYS_LCHOWN                          = 0x29B // 667\n\tSYS_TRUNCATE                        = 0x29C // 668\n\tSYS_GETSUBOPT                       = 0x29D // 669\n\tSYS_SETPGRP                         = 0x29E // 670\n\tSYS___GDERR                         = 0x29F // 671\n\tSYS___TZONE                         = 0x2A0 // 672\n\tSYS___DLGHT                         = 0x2A1 // 673\n\tSYS___OPARGF                        = 0x2A2 // 674\n\tSYS___OPOPTF                        = 0x2A3 // 675\n\tSYS___OPINDF                        = 0x2A4 // 676\n\tSYS___OPERRF                        = 0x2A5 // 677\n\tSYS_GETDATE                         = 0x2A6 // 678\n\tSYS_WAIT3                           = 0x2A7 // 679\n\tSYS_WAITID                          = 0x2A8 // 680\n\tSYS___CATTRM                        = 0x2A9 // 681\n\tSYS___GDTRM                         = 0x2AA // 682\n\tSYS___RNDTRM                        = 0x2AB // 683\n\tSYS_CRYPT                           = 0x2AC // 684\n\tSYS_ENCRYPT                         = 0x2AD // 685\n\tSYS_SETKEY                          = 0x2AE // 686\n\tSYS___CNVBLK                        = 0x2AF // 687\n\tSYS___CRYTRM                        = 0x2B0 // 688\n\tSYS___ECRTRM                        = 0x2B1 // 689\n\tSYS_DRAND48                         = 0x2B2 // 690\n\tSYS_ERAND48                         = 0x2B3 // 691\n\tSYS_FSTATVFS                        = 0x2B4 // 692\n\tSYS_STATVFS                         = 0x2B5 // 693\n\tSYS_CATCLOSE                        = 0x2B6 // 694\n\tSYS_CATGETS                         = 0x2B7 // 695\n\tSYS_CATOPEN                         = 0x2B8 // 696\n\tSYS_BCMP                            = 0x2B9 // 697\n\tSYS_BCOPY                           = 0x2BA // 698\n\tSYS_BZERO                           = 0x2BB // 699\n\tSYS_FFS                             = 0x2BC // 700\n\tSYS_INDEX                           = 0x2BD // 701\n\tSYS_RINDEX                          = 0x2BE // 702\n\tSYS_STRCASECMP                      = 0x2BF // 703\n\tSYS_STRDUP                          = 0x2C0 // 704\n\tSYS_STRNCASECMP                     = 0x2C1 // 705\n\tSYS_INITSTATE                       = 0x2C2 // 706\n\tSYS_SETSTATE                        = 0x2C3 // 707\n\tSYS_RANDOM                          = 0x2C4 // 708\n\tSYS_SRANDOM                         = 0x2C5 // 709\n\tSYS_HCREATE                         = 0x2C6 // 710\n\tSYS_HDESTROY                        = 0x2C7 // 711\n\tSYS_HSEARCH                         = 0x2C8 // 712\n\tSYS_LFIND                           = 0x2C9 // 713\n\tSYS_LSEARCH                         = 0x2CA // 714\n\tSYS_TDELETE                         = 0x2CB // 715\n\tSYS_TFIND                           = 0x2CC // 716\n\tSYS_TSEARCH                         = 0x2CD // 717\n\tSYS_TWALK                           = 0x2CE // 718\n\tSYS_INSQUE                          = 0x2CF // 719\n\tSYS_REMQUE                          = 0x2D0 // 720\n\tSYS_POPEN                           = 0x2D1 // 721\n\tSYS_PCLOSE                          = 0x2D2 // 722\n\tSYS_SWAB                            = 0x2D3 // 723\n\tSYS_MEMCCPY                         = 0x2D4 // 724\n\tSYS_GETPAGESIZE                     = 0x2D8 // 728\n\tSYS_FCHDIR                          = 0x2D9 // 729\n\tSYS___OCLCK                         = 0x2DA // 730\n\tSYS___ATOE                          = 0x2DB // 731\n\tSYS___ATOE_L                        = 0x2DC // 732\n\tSYS___ETOA                          = 0x2DD // 733\n\tSYS___ETOA_L                        = 0x2DE // 734\n\tSYS_SETUTXENT                       = 0x2DF // 735\n\tSYS_GETUTXENT                       = 0x2E0 // 736\n\tSYS_ENDUTXENT                       = 0x2E1 // 737\n\tSYS_GETUTXID                        = 0x2E2 // 738\n\tSYS_GETUTXLINE                      = 0x2E3 // 739\n\tSYS_PUTUTXLINE                      = 0x2E4 // 740\n\tSYS_FMTMSG                          = 0x2E5 // 741\n\tSYS_JRAND48                         = 0x2E6 // 742\n\tSYS_LRAND48                         = 0x2E7 // 743\n\tSYS_MRAND48                         = 0x2E8 // 744\n\tSYS_NRAND48                         = 0x2E9 // 745\n\tSYS_LCONG48                         = 0x2EA // 746\n\tSYS_SRAND48                         = 0x2EB // 747\n\tSYS_SEED48                          = 0x2EC // 748\n\tSYS_ISASCII                         = 0x2ED // 749\n\tSYS_TOASCII                         = 0x2EE // 750\n\tSYS_A64L                            = 0x2EF // 751\n\tSYS_L64A                            = 0x2F0 // 752\n\tSYS_UALARM                          = 0x2F1 // 753\n\tSYS_USLEEP                          = 0x2F2 // 754\n\tSYS___UTXTRM                        = 0x2F3 // 755\n\tSYS___SRCTRM                        = 0x2F4 // 756\n\tSYS_FTIME                           = 0x2F5 // 757\n\tSYS_GETTIMEOFDAY                    = 0x2F6 // 758\n\tSYS_DBM_CLEARERR                    = 0x2F7 // 759\n\tSYS_DBM_CLOSE                       = 0x2F8 // 760\n\tSYS_DBM_DELETE                      = 0x2F9 // 761\n\tSYS_DBM_ERROR                       = 0x2FA // 762\n\tSYS_DBM_FETCH                       = 0x2FB // 763\n\tSYS_DBM_FIRSTKEY                    = 0x2FC // 764\n\tSYS_DBM_NEXTKEY                     = 0x2FD // 765\n\tSYS_DBM_OPEN                        = 0x2FE // 766\n\tSYS_DBM_STORE                       = 0x2FF // 767\n\tSYS___NDMTRM                        = 0x300 // 768\n\tSYS_FTOK                            = 0x301 // 769\n\tSYS_BASENAME                        = 0x302 // 770\n\tSYS_DIRNAME                         = 0x303 // 771\n\tSYS_GETDTABLESIZE                   = 0x304 // 772\n\tSYS_MKSTEMP                         = 0x305 // 773\n\tSYS_MKTEMP                          = 0x306 // 774\n\tSYS_NFTW                            = 0x307 // 775\n\tSYS_GETWD                           = 0x308 // 776\n\tSYS_LOCKF                           = 0x309 // 777\n\tSYS__LONGJMP                        = 0x30D // 781\n\tSYS__SETJMP                         = 0x30E // 782\n\tSYS_VFORK                           = 0x30F // 783\n\tSYS_WORDEXP                         = 0x310 // 784\n\tSYS_WORDFREE                        = 0x311 // 785\n\tSYS_GETPGID                         = 0x312 // 786\n\tSYS_GETSID                          = 0x313 // 787\n\tSYS___UTMPXNAME                     = 0x314 // 788\n\tSYS_CUSERID                         = 0x315 // 789\n\tSYS_GETPASS                         = 0x316 // 790\n\tSYS_FNMATCH                         = 0x317 // 791\n\tSYS_FTW                             = 0x318 // 792\n\tSYS_GETW                            = 0x319 // 793\n\tSYS_GLOB                            = 0x31A // 794\n\tSYS_GLOBFREE                        = 0x31B // 795\n\tSYS_PUTW                            = 0x31C // 796\n\tSYS_SEEKDIR                         = 0x31D // 797\n\tSYS_TELLDIR                         = 0x31E // 798\n\tSYS_TEMPNAM                         = 0x31F // 799\n\tSYS_ACOSH                           = 0x320 // 800\n\tSYS_ASINH                           = 0x321 // 801\n\tSYS_ATANH                           = 0x322 // 802\n\tSYS_CBRT                            = 0x323 // 803\n\tSYS_EXPM1                           = 0x324 // 804\n\tSYS_ILOGB                           = 0x325 // 805\n\tSYS_LOGB                            = 0x326 // 806\n\tSYS_LOG1P                           = 0x327 // 807\n\tSYS_NEXTAFTER                       = 0x328 // 808\n\tSYS_RINT                            = 0x329 // 809\n\tSYS_REMAINDER                       = 0x32A // 810\n\tSYS_SCALB                           = 0x32B // 811\n\tSYS_LGAMMA                          = 0x32C // 812\n\tSYS_TTYSLOT                         = 0x32D // 813\n\tSYS_GETTIMEOFDAY_R                  = 0x32E // 814\n\tSYS_SYNC                            = 0x32F // 815\n\tSYS_SPAWN                           = 0x330 // 816\n\tSYS_SPAWNP                          = 0x331 // 817\n\tSYS_GETLOGIN_UU                     = 0x332 // 818\n\tSYS_ECVT                            = 0x333 // 819\n\tSYS_FCVT                            = 0x334 // 820\n\tSYS_GCVT                            = 0x335 // 821\n\tSYS_ACCEPT                          = 0x336 // 822\n\tSYS_BIND                            = 0x337 // 823\n\tSYS_CONNECT                         = 0x338 // 824\n\tSYS_ENDHOSTENT                      = 0x339 // 825\n\tSYS_ENDPROTOENT                     = 0x33A // 826\n\tSYS_ENDSERVENT                      = 0x33B // 827\n\tSYS_GETHOSTBYADDR_R                 = 0x33C // 828\n\tSYS_GETHOSTBYADDR                   = 0x33D // 829\n\tSYS_GETHOSTBYNAME_R                 = 0x33E // 830\n\tSYS_GETHOSTBYNAME                   = 0x33F // 831\n\tSYS_GETHOSTENT                      = 0x340 // 832\n\tSYS_GETHOSTID                       = 0x341 // 833\n\tSYS_GETHOSTNAME                     = 0x342 // 834\n\tSYS_GETNETBYADDR                    = 0x343 // 835\n\tSYS_GETNETBYNAME                    = 0x344 // 836\n\tSYS_GETNETENT                       = 0x345 // 837\n\tSYS_GETPEERNAME                     = 0x346 // 838\n\tSYS_GETPROTOBYNAME                  = 0x347 // 839\n\tSYS_GETPROTOBYNUMBER                = 0x348 // 840\n\tSYS_GETPROTOENT                     = 0x349 // 841\n\tSYS_GETSERVBYNAME                   = 0x34A // 842\n\tSYS_GETSERVBYPORT                   = 0x34B // 843\n\tSYS_GETSERVENT                      = 0x34C // 844\n\tSYS_GETSOCKNAME                     = 0x34D // 845\n\tSYS_GETSOCKOPT                      = 0x34E // 846\n\tSYS_INET_ADDR                       = 0x34F // 847\n\tSYS_INET_LNAOF                      = 0x350 // 848\n\tSYS_INET_MAKEADDR                   = 0x351 // 849\n\tSYS_INET_NETOF                      = 0x352 // 850\n\tSYS_INET_NETWORK                    = 0x353 // 851\n\tSYS_INET_NTOA                       = 0x354 // 852\n\tSYS_IOCTL                           = 0x355 // 853\n\tSYS_LISTEN                          = 0x356 // 854\n\tSYS_READV                           = 0x357 // 855\n\tSYS_RECV                            = 0x358 // 856\n\tSYS_RECVFROM                        = 0x359 // 857\n\tSYS_SELECT                          = 0x35B // 859\n\tSYS_SELECTEX                        = 0x35C // 860\n\tSYS_SEND                            = 0x35D // 861\n\tSYS_SENDTO                          = 0x35F // 863\n\tSYS_SETHOSTENT                      = 0x360 // 864\n\tSYS_SETNETENT                       = 0x361 // 865\n\tSYS_SETPEER                         = 0x362 // 866\n\tSYS_SETPROTOENT                     = 0x363 // 867\n\tSYS_SETSERVENT                      = 0x364 // 868\n\tSYS_SETSOCKOPT                      = 0x365 // 869\n\tSYS_SHUTDOWN                        = 0x366 // 870\n\tSYS_SOCKET                          = 0x367 // 871\n\tSYS_SOCKETPAIR                      = 0x368 // 872\n\tSYS_WRITEV                          = 0x369 // 873\n\tSYS_CHROOT                          = 0x36A // 874\n\tSYS_W_STATVFS                       = 0x36B // 875\n\tSYS_ULIMIT                          = 0x36C // 876\n\tSYS_ISNAN                           = 0x36D // 877\n\tSYS_UTIMES                          = 0x36E // 878\n\tSYS___H_ERRNO                       = 0x36F // 879\n\tSYS_ENDNETENT                       = 0x370 // 880\n\tSYS_CLOSELOG                        = 0x371 // 881\n\tSYS_OPENLOG                         = 0x372 // 882\n\tSYS_SETLOGMASK                      = 0x373 // 883\n\tSYS_SYSLOG                          = 0x374 // 884\n\tSYS_PTSNAME                         = 0x375 // 885\n\tSYS_SETREUID                        = 0x376 // 886\n\tSYS_SETREGID                        = 0x377 // 887\n\tSYS_REALPATH                        = 0x378 // 888\n\tSYS___SIGNGAM                       = 0x379 // 889\n\tSYS_GRANTPT                         = 0x37A // 890\n\tSYS_UNLOCKPT                        = 0x37B // 891\n\tSYS_TCGETSID                        = 0x37C // 892\n\tSYS___TCGETCP                       = 0x37D // 893\n\tSYS___TCSETCP                       = 0x37E // 894\n\tSYS___TCSETTABLES                   = 0x37F // 895\n\tSYS_POLL                            = 0x380 // 896\n\tSYS_REXEC                           = 0x381 // 897\n\tSYS___ISASCII2                      = 0x382 // 898\n\tSYS___TOASCII2                      = 0x383 // 899\n\tSYS_CHPRIORITY                      = 0x384 // 900\n\tSYS_PTHREAD_ATTR_SETSYNCTYPE_NP     = 0x385 // 901\n\tSYS_PTHREAD_ATTR_GETSYNCTYPE_NP     = 0x386 // 902\n\tSYS_PTHREAD_SET_LIMIT_NP            = 0x387 // 903\n\tSYS___STNETENT                      = 0x388 // 904\n\tSYS___STPROTOENT                    = 0x389 // 905\n\tSYS___STSERVENT                     = 0x38A // 906\n\tSYS___STHOSTENT                     = 0x38B // 907\n\tSYS_NLIST                           = 0x38C // 908\n\tSYS___IPDBCS                        = 0x38D // 909\n\tSYS___IPDSPX                        = 0x38E // 910\n\tSYS___IPMSGC                        = 0x38F // 911\n\tSYS___SELECT1                       = 0x390 // 912\n\tSYS_PTHREAD_SECURITY_NP             = 0x391 // 913\n\tSYS___CHECK_RESOURCE_AUTH_NP        = 0x392 // 914\n\tSYS___CONVERT_ID_NP                 = 0x393 // 915\n\tSYS___OPENVMREL                     = 0x394 // 916\n\tSYS_WMEMCHR                         = 0x395 // 917\n\tSYS_WMEMCMP                         = 0x396 // 918\n\tSYS_WMEMCPY                         = 0x397 // 919\n\tSYS_WMEMMOVE                        = 0x398 // 920\n\tSYS_WMEMSET                         = 0x399 // 921\n\tSYS___FPUTWC                        = 0x400 // 1024\n\tSYS___PUTWC                         = 0x401 // 1025\n\tSYS___PWCHAR                        = 0x402 // 1026\n\tSYS___WCSFTM                        = 0x403 // 1027\n\tSYS___WCSTOK                        = 0x404 // 1028\n\tSYS___WCWDTH                        = 0x405 // 1029\n\tSYS_T_ACCEPT                        = 0x409 // 1033\n\tSYS_T_ALLOC                         = 0x40A // 1034\n\tSYS_T_BIND                          = 0x40B // 1035\n\tSYS_T_CLOSE                         = 0x40C // 1036\n\tSYS_T_CONNECT                       = 0x40D // 1037\n\tSYS_T_ERROR                         = 0x40E // 1038\n\tSYS_T_FREE                          = 0x40F // 1039\n\tSYS_T_GETINFO                       = 0x410 // 1040\n\tSYS_T_GETPROTADDR                   = 0x411 // 1041\n\tSYS_T_GETSTATE                      = 0x412 // 1042\n\tSYS_T_LISTEN                        = 0x413 // 1043\n\tSYS_T_LOOK                          = 0x414 // 1044\n\tSYS_T_OPEN                          = 0x415 // 1045\n\tSYS_T_OPTMGMT                       = 0x416 // 1046\n\tSYS_T_RCV                           = 0x417 // 1047\n\tSYS_T_RCVCONNECT                    = 0x418 // 1048\n\tSYS_T_RCVDIS                        = 0x419 // 1049\n\tSYS_T_RCVREL                        = 0x41A // 1050\n\tSYS_T_RCVUDATA                      = 0x41B // 1051\n\tSYS_T_RCVUDERR                      = 0x41C // 1052\n\tSYS_T_SND                           = 0x41D // 1053\n\tSYS_T_SNDDIS                        = 0x41E // 1054\n\tSYS_T_SNDREL                        = 0x41F // 1055\n\tSYS_T_SNDUDATA                      = 0x420 // 1056\n\tSYS_T_STRERROR                      = 0x421 // 1057\n\tSYS_T_SYNC                          = 0x422 // 1058\n\tSYS_T_UNBIND                        = 0x423 // 1059\n\tSYS___T_ERRNO                       = 0x424 // 1060\n\tSYS___RECVMSG2                      = 0x425 // 1061\n\tSYS___SENDMSG2                      = 0x426 // 1062\n\tSYS_FATTACH                         = 0x427 // 1063\n\tSYS_FDETACH                         = 0x428 // 1064\n\tSYS_GETMSG                          = 0x429 // 1065\n\tSYS_GETPMSG                         = 0x42A // 1066\n\tSYS_ISASTREAM                       = 0x42B // 1067\n\tSYS_PUTMSG                          = 0x42C // 1068\n\tSYS_PUTPMSG                         = 0x42D // 1069\n\tSYS___ISPOSIXON                     = 0x42E // 1070\n\tSYS___OPENMVSREL                    = 0x42F // 1071\n\tSYS_GETCONTEXT                      = 0x430 // 1072\n\tSYS_SETCONTEXT                      = 0x431 // 1073\n\tSYS_MAKECONTEXT                     = 0x432 // 1074\n\tSYS_SWAPCONTEXT                     = 0x433 // 1075\n\tSYS_PTHREAD_GETSPECIFIC_D8_NP       = 0x434 // 1076\n\tSYS_GETCLIENTID                     = 0x470 // 1136\n\tSYS___GETCLIENTID                   = 0x471 // 1137\n\tSYS_GETSTABLESIZE                   = 0x472 // 1138\n\tSYS_GETIBMOPT                       = 0x473 // 1139\n\tSYS_GETIBMSOCKOPT                   = 0x474 // 1140\n\tSYS_GIVESOCKET                      = 0x475 // 1141\n\tSYS_IBMSFLUSH                       = 0x476 // 1142\n\tSYS_MAXDESC                         = 0x477 // 1143\n\tSYS_SETIBMOPT                       = 0x478 // 1144\n\tSYS_SETIBMSOCKOPT                   = 0x479 // 1145\n\tSYS_SOCK_DEBUG                      = 0x47A // 1146\n\tSYS_SOCK_DO_TESTSTOR                = 0x47D // 1149\n\tSYS_TAKESOCKET                      = 0x47E // 1150\n\tSYS___SERVER_INIT                   = 0x47F // 1151\n\tSYS___SERVER_PWU                    = 0x480 // 1152\n\tSYS_PTHREAD_TAG_NP                  = 0x481 // 1153\n\tSYS___CONSOLE                       = 0x482 // 1154\n\tSYS___WSINIT                        = 0x483 // 1155\n\tSYS___IPTCPN                        = 0x489 // 1161\n\tSYS___SMF_RECORD                    = 0x48A // 1162\n\tSYS___IPHOST                        = 0x48B // 1163\n\tSYS___IPNODE                        = 0x48C // 1164\n\tSYS___SERVER_CLASSIFY_CREATE        = 0x48D // 1165\n\tSYS___SERVER_CLASSIFY_DESTROY       = 0x48E // 1166\n\tSYS___SERVER_CLASSIFY_RESET         = 0x48F // 1167\n\tSYS___SERVER_CLASSIFY               = 0x490 // 1168\n\tSYS___HEAPRPT                       = 0x496 // 1174\n\tSYS___FNWSA                         = 0x49B // 1179\n\tSYS___SPAWN2                        = 0x49D // 1181\n\tSYS___SPAWNP2                       = 0x49E // 1182\n\tSYS___GDRR                          = 0x4A1 // 1185\n\tSYS___HRRNO                         = 0x4A2 // 1186\n\tSYS___OPRG                          = 0x4A3 // 1187\n\tSYS___OPRR                          = 0x4A4 // 1188\n\tSYS___OPND                          = 0x4A5 // 1189\n\tSYS___OPPT                          = 0x4A6 // 1190\n\tSYS___SIGGM                         = 0x4A7 // 1191\n\tSYS___DGHT                          = 0x4A8 // 1192\n\tSYS___TZNE                          = 0x4A9 // 1193\n\tSYS___TZZN                          = 0x4AA // 1194\n\tSYS___TRRNO                         = 0x4AF // 1199\n\tSYS___ENVN                          = 0x4B0 // 1200\n\tSYS___MLOCKALL                      = 0x4B1 // 1201\n\tSYS_CREATEWO                        = 0x4B2 // 1202\n\tSYS_CREATEWORKUNIT                  = 0x4B2 // 1202\n\tSYS_CONTINUE                        = 0x4B3 // 1203\n\tSYS_CONTINUEWORKUNIT                = 0x4B3 // 1203\n\tSYS_CONNECTW                        = 0x4B4 // 1204\n\tSYS_CONNECTWORKMGR                  = 0x4B4 // 1204\n\tSYS_CONNECTS                        = 0x4B5 // 1205\n\tSYS_CONNECTSERVER                   = 0x4B5 // 1205\n\tSYS_DISCONNE                        = 0x4B6 // 1206\n\tSYS_DISCONNECTSERVER                = 0x4B6 // 1206\n\tSYS_JOINWORK                        = 0x4B7 // 1207\n\tSYS_JOINWORKUNIT                    = 0x4B7 // 1207\n\tSYS_LEAVEWOR                        = 0x4B8 // 1208\n\tSYS_LEAVEWORKUNIT                   = 0x4B8 // 1208\n\tSYS_DELETEWO                        = 0x4B9 // 1209\n\tSYS_DELETEWORKUNIT                  = 0x4B9 // 1209\n\tSYS_QUERYMET                        = 0x4BA // 1210\n\tSYS_QUERYMETRICS                    = 0x4BA // 1210\n\tSYS_QUERYSCH                        = 0x4BB // 1211\n\tSYS_QUERYSCHENV                     = 0x4BB // 1211\n\tSYS_CHECKSCH                        = 0x4BC // 1212\n\tSYS_CHECKSCHENV                     = 0x4BC // 1212\n\tSYS___PID_AFFINITY                  = 0x4BD // 1213\n\tSYS___ASINH_B                       = 0x4BE // 1214\n\tSYS___ATAN_B                        = 0x4BF // 1215\n\tSYS___CBRT_B                        = 0x4C0 // 1216\n\tSYS___CEIL_B                        = 0x4C1 // 1217\n\tSYS_COPYSIGN                        = 0x4C2 // 1218\n\tSYS___COS_B                         = 0x4C3 // 1219\n\tSYS___ERF_B                         = 0x4C4 // 1220\n\tSYS___ERFC_B                        = 0x4C5 // 1221\n\tSYS___EXPM1_B                       = 0x4C6 // 1222\n\tSYS___FABS_B                        = 0x4C7 // 1223\n\tSYS_FINITE                          = 0x4C8 // 1224\n\tSYS___FLOOR_B                       = 0x4C9 // 1225\n\tSYS___FREXP_B                       = 0x4CA // 1226\n\tSYS___ILOGB_B                       = 0x4CB // 1227\n\tSYS___ISNAN_B                       = 0x4CC // 1228\n\tSYS___LDEXP_B                       = 0x4CD // 1229\n\tSYS___LOG1P_B                       = 0x4CE // 1230\n\tSYS___LOGB_B                        = 0x4CF // 1231\n\tSYS_MATHERR                         = 0x4D0 // 1232\n\tSYS___MODF_B                        = 0x4D1 // 1233\n\tSYS___NEXTAFTER_B                   = 0x4D2 // 1234\n\tSYS___RINT_B                        = 0x4D3 // 1235\n\tSYS_SCALBN                          = 0x4D4 // 1236\n\tSYS_SIGNIFIC                        = 0x4D5 // 1237\n\tSYS_SIGNIFICAND                     = 0x4D5 // 1237\n\tSYS___SIN_B                         = 0x4D6 // 1238\n\tSYS___TAN_B                         = 0x4D7 // 1239\n\tSYS___TANH_B                        = 0x4D8 // 1240\n\tSYS___ACOS_B                        = 0x4D9 // 1241\n\tSYS___ACOSH_B                       = 0x4DA // 1242\n\tSYS___ASIN_B                        = 0x4DB // 1243\n\tSYS___ATAN2_B                       = 0x4DC // 1244\n\tSYS___ATANH_B                       = 0x4DD // 1245\n\tSYS___COSH_B                        = 0x4DE // 1246\n\tSYS___EXP_B                         = 0x4DF // 1247\n\tSYS___FMOD_B                        = 0x4E0 // 1248\n\tSYS___GAMMA_B                       = 0x4E1 // 1249\n\tSYS_GAMMA_R                         = 0x4E2 // 1250\n\tSYS___HYPOT_B                       = 0x4E3 // 1251\n\tSYS___J0_B                          = 0x4E4 // 1252\n\tSYS___Y0_B                          = 0x4E5 // 1253\n\tSYS___J1_B                          = 0x4E6 // 1254\n\tSYS___Y1_B                          = 0x4E7 // 1255\n\tSYS___JN_B                          = 0x4E8 // 1256\n\tSYS___YN_B                          = 0x4E9 // 1257\n\tSYS___LGAMMA_B                      = 0x4EA // 1258\n\tSYS_LGAMMA_R                        = 0x4EB // 1259\n\tSYS___LOG_B                         = 0x4EC // 1260\n\tSYS___LOG10_B                       = 0x4ED // 1261\n\tSYS___POW_B                         = 0x4EE // 1262\n\tSYS___REMAINDER_B                   = 0x4EF // 1263\n\tSYS___SCALB_B                       = 0x4F0 // 1264\n\tSYS___SINH_B                        = 0x4F1 // 1265\n\tSYS___SQRT_B                        = 0x4F2 // 1266\n\tSYS___OPENDIR2                      = 0x4F3 // 1267\n\tSYS___READDIR2                      = 0x4F4 // 1268\n\tSYS___LOGIN                         = 0x4F5 // 1269\n\tSYS___OPEN_STAT                     = 0x4F6 // 1270\n\tSYS_ACCEPT_AND_RECV                 = 0x4F7 // 1271\n\tSYS___FP_SETMODE                    = 0x4F8 // 1272\n\tSYS___SIGACTIONSET                  = 0x4FB // 1275\n\tSYS___UCREATE                       = 0x4FC // 1276\n\tSYS___UMALLOC                       = 0x4FD // 1277\n\tSYS___UFREE                         = 0x4FE // 1278\n\tSYS___UHEAPREPORT                   = 0x4FF // 1279\n\tSYS___ISBFP                         = 0x500 // 1280\n\tSYS___FP_CAST                       = 0x501 // 1281\n\tSYS___CERTIFICATE                   = 0x502 // 1282\n\tSYS_SEND_FILE                       = 0x503 // 1283\n\tSYS_AIO_CANCEL                      = 0x504 // 1284\n\tSYS_AIO_ERROR                       = 0x505 // 1285\n\tSYS_AIO_READ                        = 0x506 // 1286\n\tSYS_AIO_RETURN                      = 0x507 // 1287\n\tSYS_AIO_SUSPEND                     = 0x508 // 1288\n\tSYS_AIO_WRITE                       = 0x509 // 1289\n\tSYS_PTHREAD_MUTEXATTR_GETPSHARED    = 0x50A // 1290\n\tSYS_PTHREAD_MUTEXATTR_SETPSHARED    = 0x50B // 1291\n\tSYS_PTHREAD_RWLOCK_DESTROY          = 0x50C // 1292\n\tSYS_PTHREAD_RWLOCK_INIT             = 0x50D // 1293\n\tSYS_PTHREAD_RWLOCK_RDLOCK           = 0x50E // 1294\n\tSYS_PTHREAD_RWLOCK_TRYRDLOCK        = 0x50F // 1295\n\tSYS_PTHREAD_RWLOCK_TRYWRLOCK        = 0x510 // 1296\n\tSYS_PTHREAD_RWLOCK_UNLOCK           = 0x511 // 1297\n\tSYS_PTHREAD_RWLOCK_WRLOCK           = 0x512 // 1298\n\tSYS_PTHREAD_RWLOCKATTR_GETPSHARED   = 0x513 // 1299\n\tSYS_PTHREAD_RWLOCKATTR_SETPSHARED   = 0x514 // 1300\n\tSYS_PTHREAD_RWLOCKATTR_INIT         = 0x515 // 1301\n\tSYS_PTHREAD_RWLOCKATTR_DESTROY      = 0x516 // 1302\n\tSYS___CTTBL                         = 0x517 // 1303\n\tSYS_PTHREAD_MUTEXATTR_SETTYPE       = 0x518 // 1304\n\tSYS_PTHREAD_MUTEXATTR_GETTYPE       = 0x519 // 1305\n\tSYS___FP_CLR_FLAG                   = 0x51A // 1306\n\tSYS___FP_READ_FLAG                  = 0x51B // 1307\n\tSYS___FP_RAISE_XCP                  = 0x51C // 1308\n\tSYS___FP_CLASS                      = 0x51D // 1309\n\tSYS___FP_FINITE                     = 0x51E // 1310\n\tSYS___FP_ISNAN                      = 0x51F // 1311\n\tSYS___FP_UNORDERED                  = 0x520 // 1312\n\tSYS___FP_READ_RND                   = 0x521 // 1313\n\tSYS___FP_READ_RND_B                 = 0x522 // 1314\n\tSYS___FP_SWAP_RND                   = 0x523 // 1315\n\tSYS___FP_SWAP_RND_B                 = 0x524 // 1316\n\tSYS___FP_LEVEL                      = 0x525 // 1317\n\tSYS___FP_BTOH                       = 0x526 // 1318\n\tSYS___FP_HTOB                       = 0x527 // 1319\n\tSYS___FPC_RD                        = 0x528 // 1320\n\tSYS___FPC_WR                        = 0x529 // 1321\n\tSYS___FPC_RW                        = 0x52A // 1322\n\tSYS___FPC_SM                        = 0x52B // 1323\n\tSYS___FPC_RS                        = 0x52C // 1324\n\tSYS_SIGTIMEDWAIT                    = 0x52D // 1325\n\tSYS_SIGWAITINFO                     = 0x52E // 1326\n\tSYS___CHKBFP                        = 0x52F // 1327\n\tSYS___W_PIOCTL                      = 0x59E // 1438\n\tSYS___OSENV                         = 0x59F // 1439\n\tSYS_EXPORTWO                        = 0x5A1 // 1441\n\tSYS_EXPORTWORKUNIT                  = 0x5A1 // 1441\n\tSYS_UNDOEXPO                        = 0x5A2 // 1442\n\tSYS_UNDOEXPORTWORKUNIT              = 0x5A2 // 1442\n\tSYS_IMPORTWO                        = 0x5A3 // 1443\n\tSYS_IMPORTWORKUNIT                  = 0x5A3 // 1443\n\tSYS_UNDOIMPO                        = 0x5A4 // 1444\n\tSYS_UNDOIMPORTWORKUNIT              = 0x5A4 // 1444\n\tSYS_EXTRACTW                        = 0x5A5 // 1445\n\tSYS_EXTRACTWORKUNIT                 = 0x5A5 // 1445\n\tSYS___CPL                           = 0x5A6 // 1446\n\tSYS___MAP_INIT                      = 0x5A7 // 1447\n\tSYS___MAP_SERVICE                   = 0x5A8 // 1448\n\tSYS_SIGQUEUE                        = 0x5A9 // 1449\n\tSYS___MOUNT                         = 0x5AA // 1450\n\tSYS___GETUSERID                     = 0x5AB // 1451\n\tSYS___IPDOMAINNAME                  = 0x5AC // 1452\n\tSYS_QUERYENC                        = 0x5AD // 1453\n\tSYS_QUERYWORKUNITCLASSIFICATION     = 0x5AD // 1453\n\tSYS_CONNECTE                        = 0x5AE // 1454\n\tSYS_CONNECTEXPORTIMPORT             = 0x5AE // 1454\n\tSYS___FP_SWAPMODE                   = 0x5AF // 1455\n\tSYS_STRTOLL                         = 0x5B0 // 1456\n\tSYS_STRTOULL                        = 0x5B1 // 1457\n\tSYS___DSA_PREV                      = 0x5B2 // 1458\n\tSYS___EP_FIND                       = 0x5B3 // 1459\n\tSYS___SERVER_THREADS_QUERY          = 0x5B4 // 1460\n\tSYS___MSGRCV_TIMED                  = 0x5B7 // 1463\n\tSYS___SEMOP_TIMED                   = 0x5B8 // 1464\n\tSYS___GET_CPUID                     = 0x5B9 // 1465\n\tSYS___GET_SYSTEM_SETTINGS           = 0x5BA // 1466\n\tSYS_FTELLO                          = 0x5C8 // 1480\n\tSYS_FSEEKO                          = 0x5C9 // 1481\n\tSYS_LLDIV                           = 0x5CB // 1483\n\tSYS_WCSTOLL                         = 0x5CC // 1484\n\tSYS_WCSTOULL                        = 0x5CD // 1485\n\tSYS_LLABS                           = 0x5CE // 1486\n\tSYS___CONSOLE2                      = 0x5D2 // 1490\n\tSYS_INET_NTOP                       = 0x5D3 // 1491\n\tSYS_INET_PTON                       = 0x5D4 // 1492\n\tSYS___RES                           = 0x5D6 // 1494\n\tSYS_RES_MKQUERY                     = 0x5D7 // 1495\n\tSYS_RES_INIT                        = 0x5D8 // 1496\n\tSYS_RES_QUERY                       = 0x5D9 // 1497\n\tSYS_RES_SEARCH                      = 0x5DA // 1498\n\tSYS_RES_SEND                        = 0x5DB // 1499\n\tSYS_RES_QUERYDOMAIN                 = 0x5DC // 1500\n\tSYS_DN_EXPAND                       = 0x5DD // 1501\n\tSYS_DN_SKIPNAME                     = 0x5DE // 1502\n\tSYS_DN_COMP                         = 0x5DF // 1503\n\tSYS_ASCTIME_R                       = 0x5E0 // 1504\n\tSYS_CTIME_R                         = 0x5E1 // 1505\n\tSYS_GMTIME_R                        = 0x5E2 // 1506\n\tSYS_LOCALTIME_R                     = 0x5E3 // 1507\n\tSYS_RAND_R                          = 0x5E4 // 1508\n\tSYS_STRTOK_R                        = 0x5E5 // 1509\n\tSYS_READDIR_R                       = 0x5E6 // 1510\n\tSYS_GETGRGID_R                      = 0x5E7 // 1511\n\tSYS_GETGRNAM_R                      = 0x5E8 // 1512\n\tSYS_GETLOGIN_R                      = 0x5E9 // 1513\n\tSYS_GETPWNAM_R                      = 0x5EA // 1514\n\tSYS_GETPWUID_R                      = 0x5EB // 1515\n\tSYS_TTYNAME_R                       = 0x5EC // 1516\n\tSYS_PTHREAD_ATFORK                  = 0x5ED // 1517\n\tSYS_PTHREAD_ATTR_GETGUARDSIZE       = 0x5EE // 1518\n\tSYS_PTHREAD_ATTR_GETSTACKADDR       = 0x5EF // 1519\n\tSYS_PTHREAD_ATTR_SETGUARDSIZE       = 0x5F0 // 1520\n\tSYS_PTHREAD_ATTR_SETSTACKADDR       = 0x5F1 // 1521\n\tSYS_PTHREAD_CONDATTR_GETPSHARED     = 0x5F2 // 1522\n\tSYS_PTHREAD_CONDATTR_SETPSHARED     = 0x5F3 // 1523\n\tSYS_PTHREAD_GETCONCURRENCY          = 0x5F4 // 1524\n\tSYS_PTHREAD_KEY_DELETE              = 0x5F5 // 1525\n\tSYS_PTHREAD_SETCONCURRENCY          = 0x5F6 // 1526\n\tSYS_PTHREAD_SIGMASK                 = 0x5F7 // 1527\n\tSYS___DISCARDDATA                   = 0x5F8 // 1528\n\tSYS_PTHREAD_ATTR_GETSCHEDPARAM      = 0x5F9 // 1529\n\tSYS_PTHREAD_ATTR_SETSCHEDPARAM      = 0x5FA // 1530\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532\n\tSYS_PTHREAD_DETACH_U98              = 0x5FD // 1533\n\tSYS_PTHREAD_GETSPECIFIC_U98         = 0x5FE // 1534\n\tSYS_PTHREAD_SETCANCELSTATE          = 0x5FF // 1535\n\tSYS_PTHREAD_SETCANCELTYPE           = 0x600 // 1536\n\tSYS_PTHREAD_TESTCANCEL              = 0x601 // 1537\n\tSYS___ATANF_B                       = 0x602 // 1538\n\tSYS___ATANL_B                       = 0x603 // 1539\n\tSYS___CEILF_B                       = 0x604 // 1540\n\tSYS___CEILL_B                       = 0x605 // 1541\n\tSYS___COSF_B                        = 0x606 // 1542\n\tSYS___COSL_B                        = 0x607 // 1543\n\tSYS___FABSF_B                       = 0x608 // 1544\n\tSYS___FABSL_B                       = 0x609 // 1545\n\tSYS___FLOORF_B                      = 0x60A // 1546\n\tSYS___FLOORL_B                      = 0x60B // 1547\n\tSYS___FREXPF_B                      = 0x60C // 1548\n\tSYS___FREXPL_B                      = 0x60D // 1549\n\tSYS___LDEXPF_B                      = 0x60E // 1550\n\tSYS___LDEXPL_B                      = 0x60F // 1551\n\tSYS___SINF_B                        = 0x610 // 1552\n\tSYS___SINL_B                        = 0x611 // 1553\n\tSYS___TANF_B                        = 0x612 // 1554\n\tSYS___TANL_B                        = 0x613 // 1555\n\tSYS___TANHF_B                       = 0x614 // 1556\n\tSYS___TANHL_B                       = 0x615 // 1557\n\tSYS___ACOSF_B                       = 0x616 // 1558\n\tSYS___ACOSL_B                       = 0x617 // 1559\n\tSYS___ASINF_B                       = 0x618 // 1560\n\tSYS___ASINL_B                       = 0x619 // 1561\n\tSYS___ATAN2F_B                      = 0x61A // 1562\n\tSYS___ATAN2L_B                      = 0x61B // 1563\n\tSYS___COSHF_B                       = 0x61C // 1564\n\tSYS___COSHL_B                       = 0x61D // 1565\n\tSYS___EXPF_B                        = 0x61E // 1566\n\tSYS___EXPL_B                        = 0x61F // 1567\n\tSYS___LOGF_B                        = 0x620 // 1568\n\tSYS___LOGL_B                        = 0x621 // 1569\n\tSYS___LOG10F_B                      = 0x622 // 1570\n\tSYS___LOG10L_B                      = 0x623 // 1571\n\tSYS___POWF_B                        = 0x624 // 1572\n\tSYS___POWL_B                        = 0x625 // 1573\n\tSYS___SINHF_B                       = 0x626 // 1574\n\tSYS___SINHL_B                       = 0x627 // 1575\n\tSYS___SQRTF_B                       = 0x628 // 1576\n\tSYS___SQRTL_B                       = 0x629 // 1577\n\tSYS___ABSF_B                        = 0x62A // 1578\n\tSYS___ABS_B                         = 0x62B // 1579\n\tSYS___ABSL_B                        = 0x62C // 1580\n\tSYS___FMODF_B                       = 0x62D // 1581\n\tSYS___FMODL_B                       = 0x62E // 1582\n\tSYS___MODFF_B                       = 0x62F // 1583\n\tSYS___MODFL_B                       = 0x630 // 1584\n\tSYS_ABSF                            = 0x631 // 1585\n\tSYS_ABSL                            = 0x632 // 1586\n\tSYS_ACOSF                           = 0x633 // 1587\n\tSYS_ACOSL                           = 0x634 // 1588\n\tSYS_ASINF                           = 0x635 // 1589\n\tSYS_ASINL                           = 0x636 // 1590\n\tSYS_ATAN2F                          = 0x637 // 1591\n\tSYS_ATAN2L                          = 0x638 // 1592\n\tSYS_ATANF                           = 0x639 // 1593\n\tSYS_ATANL                           = 0x63A // 1594\n\tSYS_CEILF                           = 0x63B // 1595\n\tSYS_CEILL                           = 0x63C // 1596\n\tSYS_COSF                            = 0x63D // 1597\n\tSYS_COSL                            = 0x63E // 1598\n\tSYS_COSHF                           = 0x63F // 1599\n\tSYS_COSHL                           = 0x640 // 1600\n\tSYS_EXPF                            = 0x641 // 1601\n\tSYS_EXPL                            = 0x642 // 1602\n\tSYS_TANHF                           = 0x643 // 1603\n\tSYS_TANHL                           = 0x644 // 1604\n\tSYS_LOG10F                          = 0x645 // 1605\n\tSYS_LOG10L                          = 0x646 // 1606\n\tSYS_LOGF                            = 0x647 // 1607\n\tSYS_LOGL                            = 0x648 // 1608\n\tSYS_POWF                            = 0x649 // 1609\n\tSYS_POWL                            = 0x64A // 1610\n\tSYS_SINF                            = 0x64B // 1611\n\tSYS_SINL                            = 0x64C // 1612\n\tSYS_SQRTF                           = 0x64D // 1613\n\tSYS_SQRTL                           = 0x64E // 1614\n\tSYS_SINHF                           = 0x64F // 1615\n\tSYS_SINHL                           = 0x650 // 1616\n\tSYS_TANF                            = 0x651 // 1617\n\tSYS_TANL                            = 0x652 // 1618\n\tSYS_FABSF                           = 0x653 // 1619\n\tSYS_FABSL                           = 0x654 // 1620\n\tSYS_FLOORF                          = 0x655 // 1621\n\tSYS_FLOORL                          = 0x656 // 1622\n\tSYS_FMODF                           = 0x657 // 1623\n\tSYS_FMODL                           = 0x658 // 1624\n\tSYS_FREXPF                          = 0x659 // 1625\n\tSYS_FREXPL                          = 0x65A // 1626\n\tSYS_LDEXPF                          = 0x65B // 1627\n\tSYS_LDEXPL                          = 0x65C // 1628\n\tSYS_MODFF                           = 0x65D // 1629\n\tSYS_MODFL                           = 0x65E // 1630\n\tSYS_BTOWC                           = 0x65F // 1631\n\tSYS___CHATTR                        = 0x660 // 1632\n\tSYS___FCHATTR                       = 0x661 // 1633\n\tSYS___TOCCSID                       = 0x662 // 1634\n\tSYS___CSNAMETYPE                    = 0x663 // 1635\n\tSYS___TOCSNAME                      = 0x664 // 1636\n\tSYS___CCSIDTYPE                     = 0x665 // 1637\n\tSYS___AE_CORRESTBL_QUERY            = 0x666 // 1638\n\tSYS___AE_AUTOCONVERT_STATE          = 0x667 // 1639\n\tSYS_DN_FIND                         = 0x668 // 1640\n\tSYS___GETHOSTBYADDR_A               = 0x669 // 1641\n\tSYS___GETHOSTBYNAME_A               = 0x66A // 1642\n\tSYS___RES_INIT_A                    = 0x66B // 1643\n\tSYS___GETHOSTBYADDR_R_A             = 0x66C // 1644\n\tSYS___GETHOSTBYNAME_R_A             = 0x66D // 1645\n\tSYS___CHARMAP_INIT_A                = 0x66E // 1646\n\tSYS___MBLEN_A                       = 0x66F // 1647\n\tSYS___MBLEN_SB_A                    = 0x670 // 1648\n\tSYS___MBLEN_STD_A                   = 0x671 // 1649\n\tSYS___MBLEN_UTF                     = 0x672 // 1650\n\tSYS___MBSTOWCS_A                    = 0x673 // 1651\n\tSYS___MBSTOWCS_STD_A                = 0x674 // 1652\n\tSYS___MBTOWC_A                      = 0x675 // 1653\n\tSYS___MBTOWC_ISO1                   = 0x676 // 1654\n\tSYS___MBTOWC_SBCS                   = 0x677 // 1655\n\tSYS___MBTOWC_MBCS                   = 0x678 // 1656\n\tSYS___MBTOWC_UTF                    = 0x679 // 1657\n\tSYS___WCSTOMBS_A                    = 0x67A // 1658\n\tSYS___WCSTOMBS_STD_A                = 0x67B // 1659\n\tSYS___WCSWIDTH_A                    = 0x67C // 1660\n\tSYS___GETGRGID_R_A                  = 0x67D // 1661\n\tSYS___WCSWIDTH_STD_A                = 0x67E // 1662\n\tSYS___WCSWIDTH_ASIA                 = 0x67F // 1663\n\tSYS___CSID_A                        = 0x680 // 1664\n\tSYS___CSID_STD_A                    = 0x681 // 1665\n\tSYS___WCSID_A                       = 0x682 // 1666\n\tSYS___WCSID_STD_A                   = 0x683 // 1667\n\tSYS___WCTOMB_A                      = 0x684 // 1668\n\tSYS___WCTOMB_ISO1                   = 0x685 // 1669\n\tSYS___WCTOMB_STD_A                  = 0x686 // 1670\n\tSYS___WCTOMB_UTF                    = 0x687 // 1671\n\tSYS___WCWIDTH_A                     = 0x688 // 1672\n\tSYS___GETGRNAM_R_A                  = 0x689 // 1673\n\tSYS___WCWIDTH_STD_A                 = 0x68A // 1674\n\tSYS___WCWIDTH_ASIA                  = 0x68B // 1675\n\tSYS___GETPWNAM_R_A                  = 0x68C // 1676\n\tSYS___GETPWUID_R_A                  = 0x68D // 1677\n\tSYS___GETLOGIN_R_A                  = 0x68E // 1678\n\tSYS___TTYNAME_R_A                   = 0x68F // 1679\n\tSYS___READDIR_R_A                   = 0x690 // 1680\n\tSYS___E2A_S                         = 0x691 // 1681\n\tSYS___FNMATCH_A                     = 0x692 // 1682\n\tSYS___FNMATCH_C_A                   = 0x693 // 1683\n\tSYS___EXECL_A                       = 0x694 // 1684\n\tSYS___FNMATCH_STD_A                 = 0x695 // 1685\n\tSYS___REGCOMP_A                     = 0x696 // 1686\n\tSYS___REGCOMP_STD_A                 = 0x697 // 1687\n\tSYS___REGERROR_A                    = 0x698 // 1688\n\tSYS___REGERROR_STD_A                = 0x699 // 1689\n\tSYS___REGEXEC_A                     = 0x69A // 1690\n\tSYS___REGEXEC_STD_A                 = 0x69B // 1691\n\tSYS___REGFREE_A                     = 0x69C // 1692\n\tSYS___REGFREE_STD_A                 = 0x69D // 1693\n\tSYS___STRCOLL_A                     = 0x69E // 1694\n\tSYS___STRCOLL_C_A                   = 0x69F // 1695\n\tSYS___EXECLE_A                      = 0x6A0 // 1696\n\tSYS___STRCOLL_STD_A                 = 0x6A1 // 1697\n\tSYS___STRXFRM_A                     = 0x6A2 // 1698\n\tSYS___STRXFRM_C_A                   = 0x6A3 // 1699\n\tSYS___EXECLP_A                      = 0x6A4 // 1700\n\tSYS___STRXFRM_STD_A                 = 0x6A5 // 1701\n\tSYS___WCSCOLL_A                     = 0x6A6 // 1702\n\tSYS___WCSCOLL_C_A                   = 0x6A7 // 1703\n\tSYS___WCSCOLL_STD_A                 = 0x6A8 // 1704\n\tSYS___WCSXFRM_A                     = 0x6A9 // 1705\n\tSYS___WCSXFRM_C_A                   = 0x6AA // 1706\n\tSYS___WCSXFRM_STD_A                 = 0x6AB // 1707\n\tSYS___COLLATE_INIT_A                = 0x6AC // 1708\n\tSYS___WCTYPE_A                      = 0x6AD // 1709\n\tSYS___GET_WCTYPE_STD_A              = 0x6AE // 1710\n\tSYS___CTYPE_INIT_A                  = 0x6AF // 1711\n\tSYS___ISWCTYPE_A                    = 0x6B0 // 1712\n\tSYS___EXECV_A                       = 0x6B1 // 1713\n\tSYS___IS_WCTYPE_STD_A               = 0x6B2 // 1714\n\tSYS___TOWLOWER_A                    = 0x6B3 // 1715\n\tSYS___TOWLOWER_STD_A                = 0x6B4 // 1716\n\tSYS___TOWUPPER_A                    = 0x6B5 // 1717\n\tSYS___TOWUPPER_STD_A                = 0x6B6 // 1718\n\tSYS___LOCALE_INIT_A                 = 0x6B7 // 1719\n\tSYS___LOCALECONV_A                  = 0x6B8 // 1720\n\tSYS___LOCALECONV_STD_A              = 0x6B9 // 1721\n\tSYS___NL_LANGINFO_A                 = 0x6BA // 1722\n\tSYS___NL_LNAGINFO_STD_A             = 0x6BB // 1723\n\tSYS___MONETARY_INIT_A               = 0x6BC // 1724\n\tSYS___STRFMON_A                     = 0x6BD // 1725\n\tSYS___STRFMON_STD_A                 = 0x6BE // 1726\n\tSYS___GETADDRINFO_A                 = 0x6BF // 1727\n\tSYS___CATGETS_A                     = 0x6C0 // 1728\n\tSYS___EXECVE_A                      = 0x6C1 // 1729\n\tSYS___EXECVP_A                      = 0x6C2 // 1730\n\tSYS___SPAWN_A                       = 0x6C3 // 1731\n\tSYS___GETNAMEINFO_A                 = 0x6C4 // 1732\n\tSYS___SPAWNP_A                      = 0x6C5 // 1733\n\tSYS___NUMERIC_INIT_A                = 0x6C6 // 1734\n\tSYS___RESP_INIT_A                   = 0x6C7 // 1735\n\tSYS___RPMATCH_A                     = 0x6C8 // 1736\n\tSYS___RPMATCH_C_A                   = 0x6C9 // 1737\n\tSYS___RPMATCH_STD_A                 = 0x6CA // 1738\n\tSYS___TIME_INIT_A                   = 0x6CB // 1739\n\tSYS___STRFTIME_A                    = 0x6CC // 1740\n\tSYS___STRFTIME_STD_A                = 0x6CD // 1741\n\tSYS___STRPTIME_A                    = 0x6CE // 1742\n\tSYS___STRPTIME_STD_A                = 0x6CF // 1743\n\tSYS___WCSFTIME_A                    = 0x6D0 // 1744\n\tSYS___WCSFTIME_STD_A                = 0x6D1 // 1745\n\tSYS_____SPAWN2_A                    = 0x6D2 // 1746\n\tSYS_____SPAWNP2_A                   = 0x6D3 // 1747\n\tSYS___SYNTAX_INIT_A                 = 0x6D4 // 1748\n\tSYS___TOD_INIT_A                    = 0x6D5 // 1749\n\tSYS___NL_CSINFO_A                   = 0x6D6 // 1750\n\tSYS___NL_MONINFO_A                  = 0x6D7 // 1751\n\tSYS___NL_NUMINFO_A                  = 0x6D8 // 1752\n\tSYS___NL_RESPINFO_A                 = 0x6D9 // 1753\n\tSYS___NL_TIMINFO_A                  = 0x6DA // 1754\n\tSYS___IF_NAMETOINDEX_A              = 0x6DB // 1755\n\tSYS___IF_INDEXTONAME_A              = 0x6DC // 1756\n\tSYS___PRINTF_A                      = 0x6DD // 1757\n\tSYS___ICONV_OPEN_A                  = 0x6DE // 1758\n\tSYS___DLLLOAD_A                     = 0x6DF // 1759\n\tSYS___DLLQUERYFN_A                  = 0x6E0 // 1760\n\tSYS___DLLQUERYVAR_A                 = 0x6E1 // 1761\n\tSYS_____CHATTR_A                    = 0x6E2 // 1762\n\tSYS___E2A_L                         = 0x6E3 // 1763\n\tSYS_____TOCCSID_A                   = 0x6E4 // 1764\n\tSYS_____TOCSNAME_A                  = 0x6E5 // 1765\n\tSYS_____CCSIDTYPE_A                 = 0x6E6 // 1766\n\tSYS_____CSNAMETYPE_A                = 0x6E7 // 1767\n\tSYS___CHMOD_A                       = 0x6E8 // 1768\n\tSYS___MKDIR_A                       = 0x6E9 // 1769\n\tSYS___STAT_A                        = 0x6EA // 1770\n\tSYS___STAT_O_A                      = 0x6EB // 1771\n\tSYS___MKFIFO_A                      = 0x6EC // 1772\n\tSYS_____OPEN_STAT_A                 = 0x6ED // 1773\n\tSYS___LSTAT_A                       = 0x6EE // 1774\n\tSYS___LSTAT_O_A                     = 0x6EF // 1775\n\tSYS___MKNOD_A                       = 0x6F0 // 1776\n\tSYS___MOUNT_A                       = 0x6F1 // 1777\n\tSYS___UMOUNT_A                      = 0x6F2 // 1778\n\tSYS___CHAUDIT_A                     = 0x6F4 // 1780\n\tSYS___W_GETMNTENT_A                 = 0x6F5 // 1781\n\tSYS___CREAT_A                       = 0x6F6 // 1782\n\tSYS___OPEN_A                        = 0x6F7 // 1783\n\tSYS___SETLOCALE_A                   = 0x6F9 // 1785\n\tSYS___FPRINTF_A                     = 0x6FA // 1786\n\tSYS___SPRINTF_A                     = 0x6FB // 1787\n\tSYS___VFPRINTF_A                    = 0x6FC // 1788\n\tSYS___VPRINTF_A                     = 0x6FD // 1789\n\tSYS___VSPRINTF_A                    = 0x6FE // 1790\n\tSYS___VSWPRINTF_A                   = 0x6FF // 1791\n\tSYS___SWPRINTF_A                    = 0x700 // 1792\n\tSYS___FSCANF_A                      = 0x701 // 1793\n\tSYS___SCANF_A                       = 0x702 // 1794\n\tSYS___SSCANF_A                      = 0x703 // 1795\n\tSYS___SWSCANF_A                     = 0x704 // 1796\n\tSYS___ATOF_A                        = 0x705 // 1797\n\tSYS___ATOI_A                        = 0x706 // 1798\n\tSYS___ATOL_A                        = 0x707 // 1799\n\tSYS___STRTOD_A                      = 0x708 // 1800\n\tSYS___STRTOL_A                      = 0x709 // 1801\n\tSYS___STRTOUL_A                     = 0x70A // 1802\n\tSYS_____AE_CORRESTBL_QUERY_A        = 0x70B // 1803\n\tSYS___A64L_A                        = 0x70C // 1804\n\tSYS___ECVT_A                        = 0x70D // 1805\n\tSYS___FCVT_A                        = 0x70E // 1806\n\tSYS___GCVT_A                        = 0x70F // 1807\n\tSYS___L64A_A                        = 0x710 // 1808\n\tSYS___STRERROR_A                    = 0x711 // 1809\n\tSYS___PERROR_A                      = 0x712 // 1810\n\tSYS___FETCH_A                       = 0x713 // 1811\n\tSYS___GETENV_A                      = 0x714 // 1812\n\tSYS___MKSTEMP_A                     = 0x717 // 1815\n\tSYS___PTSNAME_A                     = 0x718 // 1816\n\tSYS___PUTENV_A                      = 0x719 // 1817\n\tSYS___REALPATH_A                    = 0x71A // 1818\n\tSYS___SETENV_A                      = 0x71B // 1819\n\tSYS___SYSTEM_A                      = 0x71C // 1820\n\tSYS___GETOPT_A                      = 0x71D // 1821\n\tSYS___CATOPEN_A                     = 0x71E // 1822\n\tSYS___ACCESS_A                      = 0x71F // 1823\n\tSYS___CHDIR_A                       = 0x720 // 1824\n\tSYS___CHOWN_A                       = 0x721 // 1825\n\tSYS___CHROOT_A                      = 0x722 // 1826\n\tSYS___GETCWD_A                      = 0x723 // 1827\n\tSYS___GETWD_A                       = 0x724 // 1828\n\tSYS___LCHOWN_A                      = 0x725 // 1829\n\tSYS___LINK_A                        = 0x726 // 1830\n\tSYS___PATHCONF_A                    = 0x727 // 1831\n\tSYS___IF_NAMEINDEX_A                = 0x728 // 1832\n\tSYS___READLINK_A                    = 0x729 // 1833\n\tSYS___RMDIR_A                       = 0x72A // 1834\n\tSYS___STATVFS_A                     = 0x72B // 1835\n\tSYS___SYMLINK_A                     = 0x72C // 1836\n\tSYS___TRUNCATE_A                    = 0x72D // 1837\n\tSYS___UNLINK_A                      = 0x72E // 1838\n\tSYS___GAI_STRERROR_A                = 0x72F // 1839\n\tSYS___EXTLINK_NP_A                  = 0x730 // 1840\n\tSYS___ISALNUM_A                     = 0x731 // 1841\n\tSYS___ISALPHA_A                     = 0x732 // 1842\n\tSYS___A2E_S                         = 0x733 // 1843\n\tSYS___ISCNTRL_A                     = 0x734 // 1844\n\tSYS___ISDIGIT_A                     = 0x735 // 1845\n\tSYS___ISGRAPH_A                     = 0x736 // 1846\n\tSYS___ISLOWER_A                     = 0x737 // 1847\n\tSYS___ISPRINT_A                     = 0x738 // 1848\n\tSYS___ISPUNCT_A                     = 0x739 // 1849\n\tSYS___ISSPACE_A                     = 0x73A // 1850\n\tSYS___ISUPPER_A                     = 0x73B // 1851\n\tSYS___ISXDIGIT_A                    = 0x73C // 1852\n\tSYS___TOLOWER_A                     = 0x73D // 1853\n\tSYS___TOUPPER_A                     = 0x73E // 1854\n\tSYS___ISWALNUM_A                    = 0x73F // 1855\n\tSYS___ISWALPHA_A                    = 0x740 // 1856\n\tSYS___A2E_L                         = 0x741 // 1857\n\tSYS___ISWCNTRL_A                    = 0x742 // 1858\n\tSYS___ISWDIGIT_A                    = 0x743 // 1859\n\tSYS___ISWGRAPH_A                    = 0x744 // 1860\n\tSYS___ISWLOWER_A                    = 0x745 // 1861\n\tSYS___ISWPRINT_A                    = 0x746 // 1862\n\tSYS___ISWPUNCT_A                    = 0x747 // 1863\n\tSYS___ISWSPACE_A                    = 0x748 // 1864\n\tSYS___ISWUPPER_A                    = 0x749 // 1865\n\tSYS___ISWXDIGIT_A                   = 0x74A // 1866\n\tSYS___CONFSTR_A                     = 0x74B // 1867\n\tSYS___FTOK_A                        = 0x74C // 1868\n\tSYS___MKTEMP_A                      = 0x74D // 1869\n\tSYS___FDOPEN_A                      = 0x74E // 1870\n\tSYS___FLDATA_A                      = 0x74F // 1871\n\tSYS___REMOVE_A                      = 0x750 // 1872\n\tSYS___RENAME_A                      = 0x751 // 1873\n\tSYS___TMPNAM_A                      = 0x752 // 1874\n\tSYS___FOPEN_A                       = 0x753 // 1875\n\tSYS___FREOPEN_A                     = 0x754 // 1876\n\tSYS___CUSERID_A                     = 0x755 // 1877\n\tSYS___POPEN_A                       = 0x756 // 1878\n\tSYS___TEMPNAM_A                     = 0x757 // 1879\n\tSYS___FTW_A                         = 0x758 // 1880\n\tSYS___GETGRENT_A                    = 0x759 // 1881\n\tSYS___GETGRGID_A                    = 0x75A // 1882\n\tSYS___GETGRNAM_A                    = 0x75B // 1883\n\tSYS___GETGROUPSBYNAME_A             = 0x75C // 1884\n\tSYS___GETHOSTENT_A                  = 0x75D // 1885\n\tSYS___GETHOSTNAME_A                 = 0x75E // 1886\n\tSYS___GETLOGIN_A                    = 0x75F // 1887\n\tSYS___INET_NTOP_A                   = 0x760 // 1888\n\tSYS___GETPASS_A                     = 0x761 // 1889\n\tSYS___GETPWENT_A                    = 0x762 // 1890\n\tSYS___GETPWNAM_A                    = 0x763 // 1891\n\tSYS___GETPWUID_A                    = 0x764 // 1892\n\tSYS_____CHECK_RESOURCE_AUTH_NP_A    = 0x765 // 1893\n\tSYS___CHECKSCHENV_A                 = 0x766 // 1894\n\tSYS___CONNECTSERVER_A               = 0x767 // 1895\n\tSYS___CONNECTWORKMGR_A              = 0x768 // 1896\n\tSYS_____CONSOLE_A                   = 0x769 // 1897\n\tSYS___CREATEWORKUNIT_A              = 0x76A // 1898\n\tSYS___CTERMID_A                     = 0x76B // 1899\n\tSYS___FMTMSG_A                      = 0x76C // 1900\n\tSYS___INITGROUPS_A                  = 0x76D // 1901\n\tSYS_____LOGIN_A                     = 0x76E // 1902\n\tSYS___MSGRCV_A                      = 0x76F // 1903\n\tSYS___MSGSND_A                      = 0x770 // 1904\n\tSYS___MSGXRCV_A                     = 0x771 // 1905\n\tSYS___NFTW_A                        = 0x772 // 1906\n\tSYS_____PASSWD_A                    = 0x773 // 1907\n\tSYS___PTHREAD_SECURITY_NP_A         = 0x774 // 1908\n\tSYS___QUERYMETRICS_A                = 0x775 // 1909\n\tSYS___QUERYSCHENV                   = 0x776 // 1910\n\tSYS___READV_A                       = 0x777 // 1911\n\tSYS_____SERVER_CLASSIFY_A           = 0x778 // 1912\n\tSYS_____SERVER_INIT_A               = 0x779 // 1913\n\tSYS_____SERVER_PWU_A                = 0x77A // 1914\n\tSYS___STRCASECMP_A                  = 0x77B // 1915\n\tSYS___STRNCASECMP_A                 = 0x77C // 1916\n\tSYS___TTYNAME_A                     = 0x77D // 1917\n\tSYS___UNAME_A                       = 0x77E // 1918\n\tSYS___UTIMES_A                      = 0x77F // 1919\n\tSYS___W_GETPSENT_A                  = 0x780 // 1920\n\tSYS___WRITEV_A                      = 0x781 // 1921\n\tSYS___W_STATFS_A                    = 0x782 // 1922\n\tSYS___W_STATVFS_A                   = 0x783 // 1923\n\tSYS___FPUTC_A                       = 0x784 // 1924\n\tSYS___PUTCHAR_A                     = 0x785 // 1925\n\tSYS___PUTS_A                        = 0x786 // 1926\n\tSYS___FGETS_A                       = 0x787 // 1927\n\tSYS___GETS_A                        = 0x788 // 1928\n\tSYS___FPUTS_A                       = 0x789 // 1929\n\tSYS___FREAD_A                       = 0x78A // 1930\n\tSYS___FWRITE_A                      = 0x78B // 1931\n\tSYS___OPEN_O_A                      = 0x78C // 1932\n\tSYS___ISASCII                       = 0x78D // 1933\n\tSYS___CREAT_O_A                     = 0x78E // 1934\n\tSYS___ENVNA                         = 0x78F // 1935\n\tSYS___PUTC_A                        = 0x790 // 1936\n\tSYS___AE_THREAD_SETMODE             = 0x791 // 1937\n\tSYS___AE_THREAD_SWAPMODE            = 0x792 // 1938\n\tSYS___GETNETBYADDR_A                = 0x793 // 1939\n\tSYS___GETNETBYNAME_A                = 0x794 // 1940\n\tSYS___GETNETENT_A                   = 0x795 // 1941\n\tSYS___GETPROTOBYNAME_A              = 0x796 // 1942\n\tSYS___GETPROTOBYNUMBER_A            = 0x797 // 1943\n\tSYS___GETPROTOENT_A                 = 0x798 // 1944\n\tSYS___GETSERVBYNAME_A               = 0x799 // 1945\n\tSYS___GETSERVBYPORT_A               = 0x79A // 1946\n\tSYS___GETSERVENT_A                  = 0x79B // 1947\n\tSYS___ASCTIME_A                     = 0x79C // 1948\n\tSYS___CTIME_A                       = 0x79D // 1949\n\tSYS___GETDATE_A                     = 0x79E // 1950\n\tSYS___TZSET_A                       = 0x79F // 1951\n\tSYS___UTIME_A                       = 0x7A0 // 1952\n\tSYS___ASCTIME_R_A                   = 0x7A1 // 1953\n\tSYS___CTIME_R_A                     = 0x7A2 // 1954\n\tSYS___STRTOLL_A                     = 0x7A3 // 1955\n\tSYS___STRTOULL_A                    = 0x7A4 // 1956\n\tSYS___FPUTWC_A                      = 0x7A5 // 1957\n\tSYS___PUTWC_A                       = 0x7A6 // 1958\n\tSYS___PUTWCHAR_A                    = 0x7A7 // 1959\n\tSYS___FPUTWS_A                      = 0x7A8 // 1960\n\tSYS___UNGETWC_A                     = 0x7A9 // 1961\n\tSYS___FGETWC_A                      = 0x7AA // 1962\n\tSYS___GETWC_A                       = 0x7AB // 1963\n\tSYS___GETWCHAR_A                    = 0x7AC // 1964\n\tSYS___FGETWS_A                      = 0x7AD // 1965\n\tSYS___GETTIMEOFDAY_A                = 0x7AE // 1966\n\tSYS___GMTIME_A                      = 0x7AF // 1967\n\tSYS___GMTIME_R_A                    = 0x7B0 // 1968\n\tSYS___LOCALTIME_A                   = 0x7B1 // 1969\n\tSYS___LOCALTIME_R_A                 = 0x7B2 // 1970\n\tSYS___MKTIME_A                      = 0x7B3 // 1971\n\tSYS___TZZNA                         = 0x7B4 // 1972\n\tSYS_UNATEXIT                        = 0x7B5 // 1973\n\tSYS___CEE3DMP_A                     = 0x7B6 // 1974\n\tSYS___CDUMP_A                       = 0x7B7 // 1975\n\tSYS___CSNAP_A                       = 0x7B8 // 1976\n\tSYS___CTEST_A                       = 0x7B9 // 1977\n\tSYS___CTRACE_A                      = 0x7BA // 1978\n\tSYS___VSWPRNTF2_A                   = 0x7BB // 1979\n\tSYS___INET_PTON_A                   = 0x7BC // 1980\n\tSYS___SYSLOG_A                      = 0x7BD // 1981\n\tSYS___CRYPT_A                       = 0x7BE // 1982\n\tSYS_____OPENDIR2_A                  = 0x7BF // 1983\n\tSYS_____READDIR2_A                  = 0x7C0 // 1984\n\tSYS___OPENDIR_A                     = 0x7C2 // 1986\n\tSYS___READDIR_A                     = 0x7C3 // 1987\n\tSYS_PREAD                           = 0x7C7 // 1991\n\tSYS_PWRITE                          = 0x7C8 // 1992\n\tSYS_M_CREATE_LAYOUT                 = 0x7C9 // 1993\n\tSYS_M_DESTROY_LAYOUT                = 0x7CA // 1994\n\tSYS_M_GETVALUES_LAYOUT              = 0x7CB // 1995\n\tSYS_M_SETVALUES_LAYOUT              = 0x7CC // 1996\n\tSYS_M_TRANSFORM_LAYOUT              = 0x7CD // 1997\n\tSYS_M_WTRANSFORM_LAYOUT             = 0x7CE // 1998\n\tSYS_FWPRINTF                        = 0x7D1 // 2001\n\tSYS_WPRINTF                         = 0x7D2 // 2002\n\tSYS_VFWPRINT                        = 0x7D3 // 2003\n\tSYS_VFWPRINTF                       = 0x7D3 // 2003\n\tSYS_VWPRINTF                        = 0x7D4 // 2004\n\tSYS_FWSCANF                         = 0x7D5 // 2005\n\tSYS_WSCANF                          = 0x7D6 // 2006\n\tSYS_WCTRANS                         = 0x7D7 // 2007\n\tSYS_TOWCTRAN                        = 0x7D8 // 2008\n\tSYS_TOWCTRANS                       = 0x7D8 // 2008\n\tSYS___WCSTOD_A                      = 0x7D9 // 2009\n\tSYS___WCSTOL_A                      = 0x7DA // 2010\n\tSYS___WCSTOUL_A                     = 0x7DB // 2011\n\tSYS___BASENAME_A                    = 0x7DC // 2012\n\tSYS___DIRNAME_A                     = 0x7DD // 2013\n\tSYS___GLOB_A                        = 0x7DE // 2014\n\tSYS_FWIDE                           = 0x7DF // 2015\n\tSYS___OSNAME                        = 0x7E0 // 2016\n\tSYS_____OSNAME_A                    = 0x7E1 // 2017\n\tSYS___BTOWC_A                       = 0x7E4 // 2020\n\tSYS___WCTOB_A                       = 0x7E5 // 2021\n\tSYS___DBM_OPEN_A                    = 0x7E6 // 2022\n\tSYS___VFPRINTF2_A                   = 0x7E7 // 2023\n\tSYS___VPRINTF2_A                    = 0x7E8 // 2024\n\tSYS___VSPRINTF2_A                   = 0x7E9 // 2025\n\tSYS___CEIL_H                        = 0x7EA // 2026\n\tSYS___FLOOR_H                       = 0x7EB // 2027\n\tSYS___MODF_H                        = 0x7EC // 2028\n\tSYS___FABS_H                        = 0x7ED // 2029\n\tSYS___J0_H                          = 0x7EE // 2030\n\tSYS___J1_H                          = 0x7EF // 2031\n\tSYS___JN_H                          = 0x7F0 // 2032\n\tSYS___Y0_H                          = 0x7F1 // 2033\n\tSYS___Y1_H                          = 0x7F2 // 2034\n\tSYS___YN_H                          = 0x7F3 // 2035\n\tSYS___CEILF_H                       = 0x7F4 // 2036\n\tSYS___CEILL_H                       = 0x7F5 // 2037\n\tSYS___FLOORF_H                      = 0x7F6 // 2038\n\tSYS___FLOORL_H                      = 0x7F7 // 2039\n\tSYS___MODFF_H                       = 0x7F8 // 2040\n\tSYS___MODFL_H                       = 0x7F9 // 2041\n\tSYS___FABSF_H                       = 0x7FA // 2042\n\tSYS___FABSL_H                       = 0x7FB // 2043\n\tSYS___MALLOC24                      = 0x7FC // 2044\n\tSYS___MALLOC31                      = 0x7FD // 2045\n\tSYS_ACL_INIT                        = 0x7FE // 2046\n\tSYS_ACL_FREE                        = 0x7FF // 2047\n\tSYS_ACL_FIRST_ENTRY                 = 0x800 // 2048\n\tSYS_ACL_GET_ENTRY                   = 0x801 // 2049\n\tSYS_ACL_VALID                       = 0x802 // 2050\n\tSYS_ACL_CREATE_ENTRY                = 0x803 // 2051\n\tSYS_ACL_DELETE_ENTRY                = 0x804 // 2052\n\tSYS_ACL_UPDATE_ENTRY                = 0x805 // 2053\n\tSYS_ACL_DELETE_FD                   = 0x806 // 2054\n\tSYS_ACL_DELETE_FILE                 = 0x807 // 2055\n\tSYS_ACL_GET_FD                      = 0x808 // 2056\n\tSYS_ACL_GET_FILE                    = 0x809 // 2057\n\tSYS_ACL_SET_FD                      = 0x80A // 2058\n\tSYS_ACL_SET_FILE                    = 0x80B // 2059\n\tSYS_ACL_FROM_TEXT                   = 0x80C // 2060\n\tSYS_ACL_TO_TEXT                     = 0x80D // 2061\n\tSYS_ACL_SORT                        = 0x80E // 2062\n\tSYS___SHUTDOWN_REGISTRATION         = 0x80F // 2063\n\tSYS___ERFL_B                        = 0x810 // 2064\n\tSYS___ERFCL_B                       = 0x811 // 2065\n\tSYS___LGAMMAL_B                     = 0x812 // 2066\n\tSYS___SETHOOKEVENTS                 = 0x813 // 2067\n\tSYS_IF_NAMETOINDEX                  = 0x814 // 2068\n\tSYS_IF_INDEXTONAME                  = 0x815 // 2069\n\tSYS_IF_NAMEINDEX                    = 0x816 // 2070\n\tSYS_IF_FREENAMEINDEX                = 0x817 // 2071\n\tSYS_GETADDRINFO                     = 0x818 // 2072\n\tSYS_GETNAMEINFO                     = 0x819 // 2073\n\tSYS_FREEADDRINFO                    = 0x81A // 2074\n\tSYS_GAI_STRERROR                    = 0x81B // 2075\n\tSYS_REXEC_AF                        = 0x81C // 2076\n\tSYS___POE                           = 0x81D // 2077\n\tSYS___DYNALLOC_A                    = 0x81F // 2079\n\tSYS___DYNFREE_A                     = 0x820 // 2080\n\tSYS___RES_QUERY_A                   = 0x821 // 2081\n\tSYS___RES_SEARCH_A                  = 0x822 // 2082\n\tSYS___RES_QUERYDOMAIN_A             = 0x823 // 2083\n\tSYS___RES_MKQUERY_A                 = 0x824 // 2084\n\tSYS___RES_SEND_A                    = 0x825 // 2085\n\tSYS___DN_EXPAND_A                   = 0x826 // 2086\n\tSYS___DN_SKIPNAME_A                 = 0x827 // 2087\n\tSYS___DN_COMP_A                     = 0x828 // 2088\n\tSYS___DN_FIND_A                     = 0x829 // 2089\n\tSYS___NLIST_A                       = 0x82A // 2090\n\tSYS_____TCGETCP_A                   = 0x82B // 2091\n\tSYS_____TCSETCP_A                   = 0x82C // 2092\n\tSYS_____W_PIOCTL_A                  = 0x82E // 2094\n\tSYS___INET_ADDR_A                   = 0x82F // 2095\n\tSYS___INET_NTOA_A                   = 0x830 // 2096\n\tSYS___INET_NETWORK_A                = 0x831 // 2097\n\tSYS___ACCEPT_A                      = 0x832 // 2098\n\tSYS___ACCEPT_AND_RECV_A             = 0x833 // 2099\n\tSYS___BIND_A                        = 0x834 // 2100\n\tSYS___CONNECT_A                     = 0x835 // 2101\n\tSYS___GETPEERNAME_A                 = 0x836 // 2102\n\tSYS___GETSOCKNAME_A                 = 0x837 // 2103\n\tSYS___RECVFROM_A                    = 0x838 // 2104\n\tSYS___SENDTO_A                      = 0x839 // 2105\n\tSYS___SENDMSG_A                     = 0x83A // 2106\n\tSYS___RECVMSG_A                     = 0x83B // 2107\n\tSYS_____LCHATTR_A                   = 0x83C // 2108\n\tSYS___CABEND                        = 0x83D // 2109\n\tSYS___LE_CIB_GET                    = 0x83E // 2110\n\tSYS___SET_LAA_FOR_JIT               = 0x83F // 2111\n\tSYS___LCHATTR                       = 0x840 // 2112\n\tSYS___WRITEDOWN                     = 0x841 // 2113\n\tSYS_PTHREAD_MUTEX_INIT2             = 0x842 // 2114\n\tSYS___ACOSHF_B                      = 0x843 // 2115\n\tSYS___ACOSHL_B                      = 0x844 // 2116\n\tSYS___ASINHF_B                      = 0x845 // 2117\n\tSYS___ASINHL_B                      = 0x846 // 2118\n\tSYS___ATANHF_B                      = 0x847 // 2119\n\tSYS___ATANHL_B                      = 0x848 // 2120\n\tSYS___CBRTF_B                       = 0x849 // 2121\n\tSYS___CBRTL_B                       = 0x84A // 2122\n\tSYS___COPYSIGNF_B                   = 0x84B // 2123\n\tSYS___COPYSIGNL_B                   = 0x84C // 2124\n\tSYS___COTANF_B                      = 0x84D // 2125\n\tSYS___COTAN_B                       = 0x84E // 2126\n\tSYS___COTANL_B                      = 0x84F // 2127\n\tSYS___EXP2F_B                       = 0x850 // 2128\n\tSYS___EXP2L_B                       = 0x851 // 2129\n\tSYS___EXPM1F_B                      = 0x852 // 2130\n\tSYS___EXPM1L_B                      = 0x853 // 2131\n\tSYS___FDIMF_B                       = 0x854 // 2132\n\tSYS___FDIM_B                        = 0x855 // 2133\n\tSYS___FDIML_B                       = 0x856 // 2134\n\tSYS___HYPOTF_B                      = 0x857 // 2135\n\tSYS___HYPOTL_B                      = 0x858 // 2136\n\tSYS___LOG1PF_B                      = 0x859 // 2137\n\tSYS___LOG1PL_B                      = 0x85A // 2138\n\tSYS___LOG2F_B                       = 0x85B // 2139\n\tSYS___LOG2_B                        = 0x85C // 2140\n\tSYS___LOG2L_B                       = 0x85D // 2141\n\tSYS___REMAINDERF_B                  = 0x85E // 2142\n\tSYS___REMAINDERL_B                  = 0x85F // 2143\n\tSYS___REMQUOF_B                     = 0x860 // 2144\n\tSYS___REMQUO_B                      = 0x861 // 2145\n\tSYS___REMQUOL_B                     = 0x862 // 2146\n\tSYS___TGAMMAF_B                     = 0x863 // 2147\n\tSYS___TGAMMA_B                      = 0x864 // 2148\n\tSYS___TGAMMAL_B                     = 0x865 // 2149\n\tSYS___TRUNCF_B                      = 0x866 // 2150\n\tSYS___TRUNC_B                       = 0x867 // 2151\n\tSYS___TRUNCL_B                      = 0x868 // 2152\n\tSYS___LGAMMAF_B                     = 0x869 // 2153\n\tSYS___LROUNDF_B                     = 0x86A // 2154\n\tSYS___LROUND_B                      = 0x86B // 2155\n\tSYS___ERFF_B                        = 0x86C // 2156\n\tSYS___ERFCF_B                       = 0x86D // 2157\n\tSYS_ACOSHF                          = 0x86E // 2158\n\tSYS_ACOSHL                          = 0x86F // 2159\n\tSYS_ASINHF                          = 0x870 // 2160\n\tSYS_ASINHL                          = 0x871 // 2161\n\tSYS_ATANHF                          = 0x872 // 2162\n\tSYS_ATANHL                          = 0x873 // 2163\n\tSYS_CBRTF                           = 0x874 // 2164\n\tSYS_CBRTL                           = 0x875 // 2165\n\tSYS_COPYSIGNF                       = 0x876 // 2166\n\tSYS_CPYSIGNF                        = 0x876 // 2166\n\tSYS_COPYSIGNL                       = 0x877 // 2167\n\tSYS_CPYSIGNL                        = 0x877 // 2167\n\tSYS_COTANF                          = 0x878 // 2168\n\tSYS___COTANF                        = 0x878 // 2168\n\tSYS_COTAN                           = 0x879 // 2169\n\tSYS___COTAN                         = 0x879 // 2169\n\tSYS_COTANL                          = 0x87A // 2170\n\tSYS___COTANL                        = 0x87A // 2170\n\tSYS_EXP2F                           = 0x87B // 2171\n\tSYS_EXP2L                           = 0x87C // 2172\n\tSYS_EXPM1F                          = 0x87D // 2173\n\tSYS_EXPM1L                          = 0x87E // 2174\n\tSYS_FDIMF                           = 0x87F // 2175\n\tSYS_FDIM                            = 0x881 // 2177\n\tSYS_FDIML                           = 0x882 // 2178\n\tSYS_HYPOTF                          = 0x883 // 2179\n\tSYS_HYPOTL                          = 0x884 // 2180\n\tSYS_LOG1PF                          = 0x885 // 2181\n\tSYS_LOG1PL                          = 0x886 // 2182\n\tSYS_LOG2F                           = 0x887 // 2183\n\tSYS_LOG2                            = 0x888 // 2184\n\tSYS_LOG2L                           = 0x889 // 2185\n\tSYS_REMAINDERF                      = 0x88A // 2186\n\tSYS_REMAINDF                        = 0x88A // 2186\n\tSYS_REMAINDERL                      = 0x88B // 2187\n\tSYS_REMAINDL                        = 0x88B // 2187\n\tSYS_REMQUOF                         = 0x88C // 2188\n\tSYS_REMQUO                          = 0x88D // 2189\n\tSYS_REMQUOL                         = 0x88E // 2190\n\tSYS_TGAMMAF                         = 0x88F // 2191\n\tSYS_TGAMMA                          = 0x890 // 2192\n\tSYS_TGAMMAL                         = 0x891 // 2193\n\tSYS_TRUNCF                          = 0x892 // 2194\n\tSYS_TRUNC                           = 0x893 // 2195\n\tSYS_TRUNCL                          = 0x894 // 2196\n\tSYS_LGAMMAF                         = 0x895 // 2197\n\tSYS_LGAMMAL                         = 0x896 // 2198\n\tSYS_LROUNDF                         = 0x897 // 2199\n\tSYS_LROUND                          = 0x898 // 2200\n\tSYS_ERFF                            = 0x899 // 2201\n\tSYS_ERFL                            = 0x89A // 2202\n\tSYS_ERFCF                           = 0x89B // 2203\n\tSYS_ERFCL                           = 0x89C // 2204\n\tSYS___EXP2_B                        = 0x89D // 2205\n\tSYS_EXP2                            = 0x89E // 2206\n\tSYS___FAR_JUMP                      = 0x89F // 2207\n\tSYS___TCGETATTR_A                   = 0x8A1 // 2209\n\tSYS___TCSETATTR_A                   = 0x8A2 // 2210\n\tSYS___SUPERKILL                     = 0x8A4 // 2212\n\tSYS___LE_CONDITION_TOKEN_BUILD      = 0x8A5 // 2213\n\tSYS___LE_MSG_ADD_INSERT             = 0x8A6 // 2214\n\tSYS___LE_MSG_GET                    = 0x8A7 // 2215\n\tSYS___LE_MSG_GET_AND_WRITE          = 0x8A8 // 2216\n\tSYS___LE_MSG_WRITE                  = 0x8A9 // 2217\n\tSYS___ITOA                          = 0x8AA // 2218\n\tSYS___UTOA                          = 0x8AB // 2219\n\tSYS___LTOA                          = 0x8AC // 2220\n\tSYS___ULTOA                         = 0x8AD // 2221\n\tSYS___LLTOA                         = 0x8AE // 2222\n\tSYS___ULLTOA                        = 0x8AF // 2223\n\tSYS___ITOA_A                        = 0x8B0 // 2224\n\tSYS___UTOA_A                        = 0x8B1 // 2225\n\tSYS___LTOA_A                        = 0x8B2 // 2226\n\tSYS___ULTOA_A                       = 0x8B3 // 2227\n\tSYS___LLTOA_A                       = 0x8B4 // 2228\n\tSYS___ULLTOA_A                      = 0x8B5 // 2229\n\tSYS_____GETENV_A                    = 0x8C3 // 2243\n\tSYS___REXEC_A                       = 0x8C4 // 2244\n\tSYS___REXEC_AF_A                    = 0x8C5 // 2245\n\tSYS___GETUTXENT_A                   = 0x8C6 // 2246\n\tSYS___GETUTXID_A                    = 0x8C7 // 2247\n\tSYS___GETUTXLINE_A                  = 0x8C8 // 2248\n\tSYS___PUTUTXLINE_A                  = 0x8C9 // 2249\n\tSYS_____UTMPXNAME_A                 = 0x8CA // 2250\n\tSYS___PUTC_UNLOCKED_A               = 0x8CB // 2251\n\tSYS___PUTCHAR_UNLOCKED_A            = 0x8CC // 2252\n\tSYS___SNPRINTF_A                    = 0x8CD // 2253\n\tSYS___VSNPRINTF_A                   = 0x8CE // 2254\n\tSYS___DLOPEN_A                      = 0x8D0 // 2256\n\tSYS___DLSYM_A                       = 0x8D1 // 2257\n\tSYS___DLERROR_A                     = 0x8D2 // 2258\n\tSYS_FLOCKFILE                       = 0x8D3 // 2259\n\tSYS_FTRYLOCKFILE                    = 0x8D4 // 2260\n\tSYS_FUNLOCKFILE                     = 0x8D5 // 2261\n\tSYS_GETC_UNLOCKED                   = 0x8D6 // 2262\n\tSYS_GETCHAR_UNLOCKED                = 0x8D7 // 2263\n\tSYS_PUTC_UNLOCKED                   = 0x8D8 // 2264\n\tSYS_PUTCHAR_UNLOCKED                = 0x8D9 // 2265\n\tSYS_SNPRINTF                        = 0x8DA // 2266\n\tSYS_VSNPRINTF                       = 0x8DB // 2267\n\tSYS_DLOPEN                          = 0x8DD // 2269\n\tSYS_DLSYM                           = 0x8DE // 2270\n\tSYS_DLCLOSE                         = 0x8DF // 2271\n\tSYS_DLERROR                         = 0x8E0 // 2272\n\tSYS___SET_EXCEPTION_HANDLER         = 0x8E2 // 2274\n\tSYS___RESET_EXCEPTION_HANDLER       = 0x8E3 // 2275\n\tSYS___VHM_EVENT                     = 0x8E4 // 2276\n\tSYS___ABS_H                         = 0x8E6 // 2278\n\tSYS___ABSF_H                        = 0x8E7 // 2279\n\tSYS___ABSL_H                        = 0x8E8 // 2280\n\tSYS___ACOS_H                        = 0x8E9 // 2281\n\tSYS___ACOSF_H                       = 0x8EA // 2282\n\tSYS___ACOSL_H                       = 0x8EB // 2283\n\tSYS___ACOSH_H                       = 0x8EC // 2284\n\tSYS___ASIN_H                        = 0x8ED // 2285\n\tSYS___ASINF_H                       = 0x8EE // 2286\n\tSYS___ASINL_H                       = 0x8EF // 2287\n\tSYS___ASINH_H                       = 0x8F0 // 2288\n\tSYS___ATAN_H                        = 0x8F1 // 2289\n\tSYS___ATANF_H                       = 0x8F2 // 2290\n\tSYS___ATANL_H                       = 0x8F3 // 2291\n\tSYS___ATANH_H                       = 0x8F4 // 2292\n\tSYS___ATANHF_H                      = 0x8F5 // 2293\n\tSYS___ATANHL_H                      = 0x8F6 // 2294\n\tSYS___ATAN2_H                       = 0x8F7 // 2295\n\tSYS___ATAN2F_H                      = 0x8F8 // 2296\n\tSYS___ATAN2L_H                      = 0x8F9 // 2297\n\tSYS___CBRT_H                        = 0x8FA // 2298\n\tSYS___COPYSIGNF_H                   = 0x8FB // 2299\n\tSYS___COPYSIGNL_H                   = 0x8FC // 2300\n\tSYS___COS_H                         = 0x8FD // 2301\n\tSYS___COSF_H                        = 0x8FE // 2302\n\tSYS___COSL_H                        = 0x8FF // 2303\n\tSYS___COSHF_H                       = 0x900 // 2304\n\tSYS___COSHL_H                       = 0x901 // 2305\n\tSYS___COTAN_H                       = 0x902 // 2306\n\tSYS___COTANF_H                      = 0x903 // 2307\n\tSYS___COTANL_H                      = 0x904 // 2308\n\tSYS___ERF_H                         = 0x905 // 2309\n\tSYS___ERFF_H                        = 0x906 // 2310\n\tSYS___ERFL_H                        = 0x907 // 2311\n\tSYS___ERFC_H                        = 0x908 // 2312\n\tSYS___ERFCF_H                       = 0x909 // 2313\n\tSYS___ERFCL_H                       = 0x90A // 2314\n\tSYS___EXP_H                         = 0x90B // 2315\n\tSYS___EXPF_H                        = 0x90C // 2316\n\tSYS___EXPL_H                        = 0x90D // 2317\n\tSYS___EXPM1_H                       = 0x90E // 2318\n\tSYS___FDIM_H                        = 0x90F // 2319\n\tSYS___FDIMF_H                       = 0x910 // 2320\n\tSYS___FDIML_H                       = 0x911 // 2321\n\tSYS___FMOD_H                        = 0x912 // 2322\n\tSYS___FMODF_H                       = 0x913 // 2323\n\tSYS___FMODL_H                       = 0x914 // 2324\n\tSYS___GAMMA_H                       = 0x915 // 2325\n\tSYS___HYPOT_H                       = 0x916 // 2326\n\tSYS___ILOGB_H                       = 0x917 // 2327\n\tSYS___LGAMMA_H                      = 0x918 // 2328\n\tSYS___LGAMMAF_H                     = 0x919 // 2329\n\tSYS___LOG_H                         = 0x91A // 2330\n\tSYS___LOGF_H                        = 0x91B // 2331\n\tSYS___LOGL_H                        = 0x91C // 2332\n\tSYS___LOGB_H                        = 0x91D // 2333\n\tSYS___LOG2_H                        = 0x91E // 2334\n\tSYS___LOG2F_H                       = 0x91F // 2335\n\tSYS___LOG2L_H                       = 0x920 // 2336\n\tSYS___LOG1P_H                       = 0x921 // 2337\n\tSYS___LOG10_H                       = 0x922 // 2338\n\tSYS___LOG10F_H                      = 0x923 // 2339\n\tSYS___LOG10L_H                      = 0x924 // 2340\n\tSYS___LROUND_H                      = 0x925 // 2341\n\tSYS___LROUNDF_H                     = 0x926 // 2342\n\tSYS___NEXTAFTER_H                   = 0x927 // 2343\n\tSYS___POW_H                         = 0x928 // 2344\n\tSYS___POWF_H                        = 0x929 // 2345\n\tSYS___POWL_H                        = 0x92A // 2346\n\tSYS___REMAINDER_H                   = 0x92B // 2347\n\tSYS___RINT_H                        = 0x92C // 2348\n\tSYS___SCALB_H                       = 0x92D // 2349\n\tSYS___SIN_H                         = 0x92E // 2350\n\tSYS___SINF_H                        = 0x92F // 2351\n\tSYS___SINL_H                        = 0x930 // 2352\n\tSYS___SINH_H                        = 0x931 // 2353\n\tSYS___SINHF_H                       = 0x932 // 2354\n\tSYS___SINHL_H                       = 0x933 // 2355\n\tSYS___SQRT_H                        = 0x934 // 2356\n\tSYS___SQRTF_H                       = 0x935 // 2357\n\tSYS___SQRTL_H                       = 0x936 // 2358\n\tSYS___TAN_H                         = 0x937 // 2359\n\tSYS___TANF_H                        = 0x938 // 2360\n\tSYS___TANL_H                        = 0x939 // 2361\n\tSYS___TANH_H                        = 0x93A // 2362\n\tSYS___TANHF_H                       = 0x93B // 2363\n\tSYS___TANHL_H                       = 0x93C // 2364\n\tSYS___TGAMMA_H                      = 0x93D // 2365\n\tSYS___TGAMMAF_H                     = 0x93E // 2366\n\tSYS___TRUNC_H                       = 0x93F // 2367\n\tSYS___TRUNCF_H                      = 0x940 // 2368\n\tSYS___TRUNCL_H                      = 0x941 // 2369\n\tSYS___COSH_H                        = 0x942 // 2370\n\tSYS___LE_DEBUG_SET_RESUME_MCH       = 0x943 // 2371\n\tSYS_VFSCANF                         = 0x944 // 2372\n\tSYS_VSCANF                          = 0x946 // 2374\n\tSYS_VSSCANF                         = 0x948 // 2376\n\tSYS_VFWSCANF                        = 0x94A // 2378\n\tSYS_VWSCANF                         = 0x94C // 2380\n\tSYS_VSWSCANF                        = 0x94E // 2382\n\tSYS_IMAXABS                         = 0x950 // 2384\n\tSYS_IMAXDIV                         = 0x951 // 2385\n\tSYS_STRTOIMAX                       = 0x952 // 2386\n\tSYS_STRTOUMAX                       = 0x953 // 2387\n\tSYS_WCSTOIMAX                       = 0x954 // 2388\n\tSYS_WCSTOUMAX                       = 0x955 // 2389\n\tSYS_ATOLL                           = 0x956 // 2390\n\tSYS_STRTOF                          = 0x957 // 2391\n\tSYS_STRTOLD                         = 0x958 // 2392\n\tSYS_WCSTOF                          = 0x959 // 2393\n\tSYS_WCSTOLD                         = 0x95A // 2394\n\tSYS_INET6_RTH_SPACE                 = 0x95B // 2395\n\tSYS_INET6_RTH_INIT                  = 0x95C // 2396\n\tSYS_INET6_RTH_ADD                   = 0x95D // 2397\n\tSYS_INET6_RTH_REVERSE               = 0x95E // 2398\n\tSYS_INET6_RTH_SEGMENTS              = 0x95F // 2399\n\tSYS_INET6_RTH_GETADDR               = 0x960 // 2400\n\tSYS_INET6_OPT_INIT                  = 0x961 // 2401\n\tSYS_INET6_OPT_APPEND                = 0x962 // 2402\n\tSYS_INET6_OPT_FINISH                = 0x963 // 2403\n\tSYS_INET6_OPT_SET_VAL               = 0x964 // 2404\n\tSYS_INET6_OPT_NEXT                  = 0x965 // 2405\n\tSYS_INET6_OPT_FIND                  = 0x966 // 2406\n\tSYS_INET6_OPT_GET_VAL               = 0x967 // 2407\n\tSYS___POW_I                         = 0x987 // 2439\n\tSYS___POW_I_B                       = 0x988 // 2440\n\tSYS___POW_I_H                       = 0x989 // 2441\n\tSYS___POW_II                        = 0x98A // 2442\n\tSYS___POW_II_B                      = 0x98B // 2443\n\tSYS___POW_II_H                      = 0x98C // 2444\n\tSYS_CABS                            = 0x98E // 2446\n\tSYS___CABS_B                        = 0x98F // 2447\n\tSYS___CABS_H                        = 0x990 // 2448\n\tSYS_CABSF                           = 0x991 // 2449\n\tSYS___CABSF_B                       = 0x992 // 2450\n\tSYS___CABSF_H                       = 0x993 // 2451\n\tSYS_CABSL                           = 0x994 // 2452\n\tSYS___CABSL_B                       = 0x995 // 2453\n\tSYS___CABSL_H                       = 0x996 // 2454\n\tSYS_CACOS                           = 0x997 // 2455\n\tSYS___CACOS_B                       = 0x998 // 2456\n\tSYS___CACOS_H                       = 0x999 // 2457\n\tSYS_CACOSF                          = 0x99A // 2458\n\tSYS___CACOSF_B                      = 0x99B // 2459\n\tSYS___CACOSF_H                      = 0x99C // 2460\n\tSYS_CACOSL                          = 0x99D // 2461\n\tSYS___CACOSL_B                      = 0x99E // 2462\n\tSYS___CACOSL_H                      = 0x99F // 2463\n\tSYS_CACOSH                          = 0x9A0 // 2464\n\tSYS___CACOSH_B                      = 0x9A1 // 2465\n\tSYS___CACOSH_H                      = 0x9A2 // 2466\n\tSYS_CACOSHF                         = 0x9A3 // 2467\n\tSYS___CACOSHF_B                     = 0x9A4 // 2468\n\tSYS___CACOSHF_H                     = 0x9A5 // 2469\n\tSYS_CACOSHL                         = 0x9A6 // 2470\n\tSYS___CACOSHL_B                     = 0x9A7 // 2471\n\tSYS___CACOSHL_H                     = 0x9A8 // 2472\n\tSYS_CARG                            = 0x9A9 // 2473\n\tSYS___CARG_B                        = 0x9AA // 2474\n\tSYS___CARG_H                        = 0x9AB // 2475\n\tSYS_CARGF                           = 0x9AC // 2476\n\tSYS___CARGF_B                       = 0x9AD // 2477\n\tSYS___CARGF_H                       = 0x9AE // 2478\n\tSYS_CARGL                           = 0x9AF // 2479\n\tSYS___CARGL_B                       = 0x9B0 // 2480\n\tSYS___CARGL_H                       = 0x9B1 // 2481\n\tSYS_CASIN                           = 0x9B2 // 2482\n\tSYS___CASIN_B                       = 0x9B3 // 2483\n\tSYS___CASIN_H                       = 0x9B4 // 2484\n\tSYS_CASINF                          = 0x9B5 // 2485\n\tSYS___CASINF_B                      = 0x9B6 // 2486\n\tSYS___CASINF_H                      = 0x9B7 // 2487\n\tSYS_CASINL                          = 0x9B8 // 2488\n\tSYS___CASINL_B                      = 0x9B9 // 2489\n\tSYS___CASINL_H                      = 0x9BA // 2490\n\tSYS_CASINH                          = 0x9BB // 2491\n\tSYS___CASINH_B                      = 0x9BC // 2492\n\tSYS___CASINH_H                      = 0x9BD // 2493\n\tSYS_CASINHF                         = 0x9BE // 2494\n\tSYS___CASINHF_B                     = 0x9BF // 2495\n\tSYS___CASINHF_H                     = 0x9C0 // 2496\n\tSYS_CASINHL                         = 0x9C1 // 2497\n\tSYS___CASINHL_B                     = 0x9C2 // 2498\n\tSYS___CASINHL_H                     = 0x9C3 // 2499\n\tSYS_CATAN                           = 0x9C4 // 2500\n\tSYS___CATAN_B                       = 0x9C5 // 2501\n\tSYS___CATAN_H                       = 0x9C6 // 2502\n\tSYS_CATANF                          = 0x9C7 // 2503\n\tSYS___CATANF_B                      = 0x9C8 // 2504\n\tSYS___CATANF_H                      = 0x9C9 // 2505\n\tSYS_CATANL                          = 0x9CA // 2506\n\tSYS___CATANL_B                      = 0x9CB // 2507\n\tSYS___CATANL_H                      = 0x9CC // 2508\n\tSYS_CATANH                          = 0x9CD // 2509\n\tSYS___CATANH_B                      = 0x9CE // 2510\n\tSYS___CATANH_H                      = 0x9CF // 2511\n\tSYS_CATANHF                         = 0x9D0 // 2512\n\tSYS___CATANHF_B                     = 0x9D1 // 2513\n\tSYS___CATANHF_H                     = 0x9D2 // 2514\n\tSYS_CATANHL                         = 0x9D3 // 2515\n\tSYS___CATANHL_B                     = 0x9D4 // 2516\n\tSYS___CATANHL_H                     = 0x9D5 // 2517\n\tSYS_CCOS                            = 0x9D6 // 2518\n\tSYS___CCOS_B                        = 0x9D7 // 2519\n\tSYS___CCOS_H                        = 0x9D8 // 2520\n\tSYS_CCOSF                           = 0x9D9 // 2521\n\tSYS___CCOSF_B                       = 0x9DA // 2522\n\tSYS___CCOSF_H                       = 0x9DB // 2523\n\tSYS_CCOSL                           = 0x9DC // 2524\n\tSYS___CCOSL_B                       = 0x9DD // 2525\n\tSYS___CCOSL_H                       = 0x9DE // 2526\n\tSYS_CCOSH                           = 0x9DF // 2527\n\tSYS___CCOSH_B                       = 0x9E0 // 2528\n\tSYS___CCOSH_H                       = 0x9E1 // 2529\n\tSYS_CCOSHF                          = 0x9E2 // 2530\n\tSYS___CCOSHF_B                      = 0x9E3 // 2531\n\tSYS___CCOSHF_H                      = 0x9E4 // 2532\n\tSYS_CCOSHL                          = 0x9E5 // 2533\n\tSYS___CCOSHL_B                      = 0x9E6 // 2534\n\tSYS___CCOSHL_H                      = 0x9E7 // 2535\n\tSYS_CEXP                            = 0x9E8 // 2536\n\tSYS___CEXP_B                        = 0x9E9 // 2537\n\tSYS___CEXP_H                        = 0x9EA // 2538\n\tSYS_CEXPF                           = 0x9EB // 2539\n\tSYS___CEXPF_B                       = 0x9EC // 2540\n\tSYS___CEXPF_H                       = 0x9ED // 2541\n\tSYS_CEXPL                           = 0x9EE // 2542\n\tSYS___CEXPL_B                       = 0x9EF // 2543\n\tSYS___CEXPL_H                       = 0x9F0 // 2544\n\tSYS_CIMAG                           = 0x9F1 // 2545\n\tSYS___CIMAG_B                       = 0x9F2 // 2546\n\tSYS___CIMAG_H                       = 0x9F3 // 2547\n\tSYS_CIMAGF                          = 0x9F4 // 2548\n\tSYS___CIMAGF_B                      = 0x9F5 // 2549\n\tSYS___CIMAGF_H                      = 0x9F6 // 2550\n\tSYS_CIMAGL                          = 0x9F7 // 2551\n\tSYS___CIMAGL_B                      = 0x9F8 // 2552\n\tSYS___CIMAGL_H                      = 0x9F9 // 2553\n\tSYS___CLOG                          = 0x9FA // 2554\n\tSYS___CLOG_B                        = 0x9FB // 2555\n\tSYS___CLOG_H                        = 0x9FC // 2556\n\tSYS_CLOGF                           = 0x9FD // 2557\n\tSYS___CLOGF_B                       = 0x9FE // 2558\n\tSYS___CLOGF_H                       = 0x9FF // 2559\n\tSYS_CLOGL                           = 0xA00 // 2560\n\tSYS___CLOGL_B                       = 0xA01 // 2561\n\tSYS___CLOGL_H                       = 0xA02 // 2562\n\tSYS_CONJ                            = 0xA03 // 2563\n\tSYS___CONJ_B                        = 0xA04 // 2564\n\tSYS___CONJ_H                        = 0xA05 // 2565\n\tSYS_CONJF                           = 0xA06 // 2566\n\tSYS___CONJF_B                       = 0xA07 // 2567\n\tSYS___CONJF_H                       = 0xA08 // 2568\n\tSYS_CONJL                           = 0xA09 // 2569\n\tSYS___CONJL_B                       = 0xA0A // 2570\n\tSYS___CONJL_H                       = 0xA0B // 2571\n\tSYS_CPOW                            = 0xA0C // 2572\n\tSYS___CPOW_B                        = 0xA0D // 2573\n\tSYS___CPOW_H                        = 0xA0E // 2574\n\tSYS_CPOWF                           = 0xA0F // 2575\n\tSYS___CPOWF_B                       = 0xA10 // 2576\n\tSYS___CPOWF_H                       = 0xA11 // 2577\n\tSYS_CPOWL                           = 0xA12 // 2578\n\tSYS___CPOWL_B                       = 0xA13 // 2579\n\tSYS___CPOWL_H                       = 0xA14 // 2580\n\tSYS_CPROJ                           = 0xA15 // 2581\n\tSYS___CPROJ_B                       = 0xA16 // 2582\n\tSYS___CPROJ_H                       = 0xA17 // 2583\n\tSYS_CPROJF                          = 0xA18 // 2584\n\tSYS___CPROJF_B                      = 0xA19 // 2585\n\tSYS___CPROJF_H                      = 0xA1A // 2586\n\tSYS_CPROJL                          = 0xA1B // 2587\n\tSYS___CPROJL_B                      = 0xA1C // 2588\n\tSYS___CPROJL_H                      = 0xA1D // 2589\n\tSYS_CREAL                           = 0xA1E // 2590\n\tSYS___CREAL_B                       = 0xA1F // 2591\n\tSYS___CREAL_H                       = 0xA20 // 2592\n\tSYS_CREALF                          = 0xA21 // 2593\n\tSYS___CREALF_B                      = 0xA22 // 2594\n\tSYS___CREALF_H                      = 0xA23 // 2595\n\tSYS_CREALL                          = 0xA24 // 2596\n\tSYS___CREALL_B                      = 0xA25 // 2597\n\tSYS___CREALL_H                      = 0xA26 // 2598\n\tSYS_CSIN                            = 0xA27 // 2599\n\tSYS___CSIN_B                        = 0xA28 // 2600\n\tSYS___CSIN_H                        = 0xA29 // 2601\n\tSYS_CSINF                           = 0xA2A // 2602\n\tSYS___CSINF_B                       = 0xA2B // 2603\n\tSYS___CSINF_H                       = 0xA2C // 2604\n\tSYS_CSINL                           = 0xA2D // 2605\n\tSYS___CSINL_B                       = 0xA2E // 2606\n\tSYS___CSINL_H                       = 0xA2F // 2607\n\tSYS_CSINH                           = 0xA30 // 2608\n\tSYS___CSINH_B                       = 0xA31 // 2609\n\tSYS___CSINH_H                       = 0xA32 // 2610\n\tSYS_CSINHF                          = 0xA33 // 2611\n\tSYS___CSINHF_B                      = 0xA34 // 2612\n\tSYS___CSINHF_H                      = 0xA35 // 2613\n\tSYS_CSINHL                          = 0xA36 // 2614\n\tSYS___CSINHL_B                      = 0xA37 // 2615\n\tSYS___CSINHL_H                      = 0xA38 // 2616\n\tSYS_CSQRT                           = 0xA39 // 2617\n\tSYS___CSQRT_B                       = 0xA3A // 2618\n\tSYS___CSQRT_H                       = 0xA3B // 2619\n\tSYS_CSQRTF                          = 0xA3C // 2620\n\tSYS___CSQRTF_B                      = 0xA3D // 2621\n\tSYS___CSQRTF_H                      = 0xA3E // 2622\n\tSYS_CSQRTL                          = 0xA3F // 2623\n\tSYS___CSQRTL_B                      = 0xA40 // 2624\n\tSYS___CSQRTL_H                      = 0xA41 // 2625\n\tSYS_CTAN                            = 0xA42 // 2626\n\tSYS___CTAN_B                        = 0xA43 // 2627\n\tSYS___CTAN_H                        = 0xA44 // 2628\n\tSYS_CTANF                           = 0xA45 // 2629\n\tSYS___CTANF_B                       = 0xA46 // 2630\n\tSYS___CTANF_H                       = 0xA47 // 2631\n\tSYS_CTANL                           = 0xA48 // 2632\n\tSYS___CTANL_B                       = 0xA49 // 2633\n\tSYS___CTANL_H                       = 0xA4A // 2634\n\tSYS_CTANH                           = 0xA4B // 2635\n\tSYS___CTANH_B                       = 0xA4C // 2636\n\tSYS___CTANH_H                       = 0xA4D // 2637\n\tSYS_CTANHF                          = 0xA4E // 2638\n\tSYS___CTANHF_B                      = 0xA4F // 2639\n\tSYS___CTANHF_H                      = 0xA50 // 2640\n\tSYS_CTANHL                          = 0xA51 // 2641\n\tSYS___CTANHL_B                      = 0xA52 // 2642\n\tSYS___CTANHL_H                      = 0xA53 // 2643\n\tSYS___ACOSHF_H                      = 0xA54 // 2644\n\tSYS___ACOSHL_H                      = 0xA55 // 2645\n\tSYS___ASINHF_H                      = 0xA56 // 2646\n\tSYS___ASINHL_H                      = 0xA57 // 2647\n\tSYS___CBRTF_H                       = 0xA58 // 2648\n\tSYS___CBRTL_H                       = 0xA59 // 2649\n\tSYS___COPYSIGN_B                    = 0xA5A // 2650\n\tSYS___EXPM1F_H                      = 0xA5B // 2651\n\tSYS___EXPM1L_H                      = 0xA5C // 2652\n\tSYS___EXP2_H                        = 0xA5D // 2653\n\tSYS___EXP2F_H                       = 0xA5E // 2654\n\tSYS___EXP2L_H                       = 0xA5F // 2655\n\tSYS___LOG1PF_H                      = 0xA60 // 2656\n\tSYS___LOG1PL_H                      = 0xA61 // 2657\n\tSYS___LGAMMAL_H                     = 0xA62 // 2658\n\tSYS_FMA                             = 0xA63 // 2659\n\tSYS___FMA_B                         = 0xA64 // 2660\n\tSYS___FMA_H                         = 0xA65 // 2661\n\tSYS_FMAF                            = 0xA66 // 2662\n\tSYS___FMAF_B                        = 0xA67 // 2663\n\tSYS___FMAF_H                        = 0xA68 // 2664\n\tSYS_FMAL                            = 0xA69 // 2665\n\tSYS___FMAL_B                        = 0xA6A // 2666\n\tSYS___FMAL_H                        = 0xA6B // 2667\n\tSYS_FMAX                            = 0xA6C // 2668\n\tSYS___FMAX_B                        = 0xA6D // 2669\n\tSYS___FMAX_H                        = 0xA6E // 2670\n\tSYS_FMAXF                           = 0xA6F // 2671\n\tSYS___FMAXF_B                       = 0xA70 // 2672\n\tSYS___FMAXF_H                       = 0xA71 // 2673\n\tSYS_FMAXL                           = 0xA72 // 2674\n\tSYS___FMAXL_B                       = 0xA73 // 2675\n\tSYS___FMAXL_H                       = 0xA74 // 2676\n\tSYS_FMIN                            = 0xA75 // 2677\n\tSYS___FMIN_B                        = 0xA76 // 2678\n\tSYS___FMIN_H                        = 0xA77 // 2679\n\tSYS_FMINF                           = 0xA78 // 2680\n\tSYS___FMINF_B                       = 0xA79 // 2681\n\tSYS___FMINF_H                       = 0xA7A // 2682\n\tSYS_FMINL                           = 0xA7B // 2683\n\tSYS___FMINL_B                       = 0xA7C // 2684\n\tSYS___FMINL_H                       = 0xA7D // 2685\n\tSYS_ILOGBF                          = 0xA7E // 2686\n\tSYS___ILOGBF_B                      = 0xA7F // 2687\n\tSYS___ILOGBF_H                      = 0xA80 // 2688\n\tSYS_ILOGBL                          = 0xA81 // 2689\n\tSYS___ILOGBL_B                      = 0xA82 // 2690\n\tSYS___ILOGBL_H                      = 0xA83 // 2691\n\tSYS_LLRINT                          = 0xA84 // 2692\n\tSYS___LLRINT_B                      = 0xA85 // 2693\n\tSYS___LLRINT_H                      = 0xA86 // 2694\n\tSYS_LLRINTF                         = 0xA87 // 2695\n\tSYS___LLRINTF_B                     = 0xA88 // 2696\n\tSYS___LLRINTF_H                     = 0xA89 // 2697\n\tSYS_LLRINTL                         = 0xA8A // 2698\n\tSYS___LLRINTL_B                     = 0xA8B // 2699\n\tSYS___LLRINTL_H                     = 0xA8C // 2700\n\tSYS_LLROUND                         = 0xA8D // 2701\n\tSYS___LLROUND_B                     = 0xA8E // 2702\n\tSYS___LLROUND_H                     = 0xA8F // 2703\n\tSYS_LLROUNDF                        = 0xA90 // 2704\n\tSYS___LLROUNDF_B                    = 0xA91 // 2705\n\tSYS___LLROUNDF_H                    = 0xA92 // 2706\n\tSYS_LLROUNDL                        = 0xA93 // 2707\n\tSYS___LLROUNDL_B                    = 0xA94 // 2708\n\tSYS___LLROUNDL_H                    = 0xA95 // 2709\n\tSYS_LOGBF                           = 0xA96 // 2710\n\tSYS___LOGBF_B                       = 0xA97 // 2711\n\tSYS___LOGBF_H                       = 0xA98 // 2712\n\tSYS_LOGBL                           = 0xA99 // 2713\n\tSYS___LOGBL_B                       = 0xA9A // 2714\n\tSYS___LOGBL_H                       = 0xA9B // 2715\n\tSYS_LRINT                           = 0xA9C // 2716\n\tSYS___LRINT_B                       = 0xA9D // 2717\n\tSYS___LRINT_H                       = 0xA9E // 2718\n\tSYS_LRINTF                          = 0xA9F // 2719\n\tSYS___LRINTF_B                      = 0xAA0 // 2720\n\tSYS___LRINTF_H                      = 0xAA1 // 2721\n\tSYS_LRINTL                          = 0xAA2 // 2722\n\tSYS___LRINTL_B                      = 0xAA3 // 2723\n\tSYS___LRINTL_H                      = 0xAA4 // 2724\n\tSYS_LROUNDL                         = 0xAA5 // 2725\n\tSYS___LROUNDL_B                     = 0xAA6 // 2726\n\tSYS___LROUNDL_H                     = 0xAA7 // 2727\n\tSYS_NAN                             = 0xAA8 // 2728\n\tSYS___NAN_B                         = 0xAA9 // 2729\n\tSYS_NANF                            = 0xAAA // 2730\n\tSYS___NANF_B                        = 0xAAB // 2731\n\tSYS_NANL                            = 0xAAC // 2732\n\tSYS___NANL_B                        = 0xAAD // 2733\n\tSYS_NEARBYINT                       = 0xAAE // 2734\n\tSYS___NEARBYINT_B                   = 0xAAF // 2735\n\tSYS___NEARBYINT_H                   = 0xAB0 // 2736\n\tSYS_NEARBYINTF                      = 0xAB1 // 2737\n\tSYS___NEARBYINTF_B                  = 0xAB2 // 2738\n\tSYS___NEARBYINTF_H                  = 0xAB3 // 2739\n\tSYS_NEARBYINTL                      = 0xAB4 // 2740\n\tSYS___NEARBYINTL_B                  = 0xAB5 // 2741\n\tSYS___NEARBYINTL_H                  = 0xAB6 // 2742\n\tSYS_NEXTAFTERF                      = 0xAB7 // 2743\n\tSYS___NEXTAFTERF_B                  = 0xAB8 // 2744\n\tSYS___NEXTAFTERF_H                  = 0xAB9 // 2745\n\tSYS_NEXTAFTERL                      = 0xABA // 2746\n\tSYS___NEXTAFTERL_B                  = 0xABB // 2747\n\tSYS___NEXTAFTERL_H                  = 0xABC // 2748\n\tSYS_NEXTTOWARD                      = 0xABD // 2749\n\tSYS___NEXTTOWARD_B                  = 0xABE // 2750\n\tSYS___NEXTTOWARD_H                  = 0xABF // 2751\n\tSYS_NEXTTOWARDF                     = 0xAC0 // 2752\n\tSYS___NEXTTOWARDF_B                 = 0xAC1 // 2753\n\tSYS___NEXTTOWARDF_H                 = 0xAC2 // 2754\n\tSYS_NEXTTOWARDL                     = 0xAC3 // 2755\n\tSYS___NEXTTOWARDL_B                 = 0xAC4 // 2756\n\tSYS___NEXTTOWARDL_H                 = 0xAC5 // 2757\n\tSYS___REMAINDERF_H                  = 0xAC6 // 2758\n\tSYS___REMAINDERL_H                  = 0xAC7 // 2759\n\tSYS___REMQUO_H                      = 0xAC8 // 2760\n\tSYS___REMQUOF_H                     = 0xAC9 // 2761\n\tSYS___REMQUOL_H                     = 0xACA // 2762\n\tSYS_RINTF                           = 0xACB // 2763\n\tSYS___RINTF_B                       = 0xACC // 2764\n\tSYS_RINTL                           = 0xACD // 2765\n\tSYS___RINTL_B                       = 0xACE // 2766\n\tSYS_ROUND                           = 0xACF // 2767\n\tSYS___ROUND_B                       = 0xAD0 // 2768\n\tSYS___ROUND_H                       = 0xAD1 // 2769\n\tSYS_ROUNDF                          = 0xAD2 // 2770\n\tSYS___ROUNDF_B                      = 0xAD3 // 2771\n\tSYS___ROUNDF_H                      = 0xAD4 // 2772\n\tSYS_ROUNDL                          = 0xAD5 // 2773\n\tSYS___ROUNDL_B                      = 0xAD6 // 2774\n\tSYS___ROUNDL_H                      = 0xAD7 // 2775\n\tSYS_SCALBLN                         = 0xAD8 // 2776\n\tSYS___SCALBLN_B                     = 0xAD9 // 2777\n\tSYS___SCALBLN_H                     = 0xADA // 2778\n\tSYS_SCALBLNF                        = 0xADB // 2779\n\tSYS___SCALBLNF_B                    = 0xADC // 2780\n\tSYS___SCALBLNF_H                    = 0xADD // 2781\n\tSYS_SCALBLNL                        = 0xADE // 2782\n\tSYS___SCALBLNL_B                    = 0xADF // 2783\n\tSYS___SCALBLNL_H                    = 0xAE0 // 2784\n\tSYS___SCALBN_B                      = 0xAE1 // 2785\n\tSYS___SCALBN_H                      = 0xAE2 // 2786\n\tSYS_SCALBNF                         = 0xAE3 // 2787\n\tSYS___SCALBNF_B                     = 0xAE4 // 2788\n\tSYS___SCALBNF_H                     = 0xAE5 // 2789\n\tSYS_SCALBNL                         = 0xAE6 // 2790\n\tSYS___SCALBNL_B                     = 0xAE7 // 2791\n\tSYS___SCALBNL_H                     = 0xAE8 // 2792\n\tSYS___TGAMMAL_H                     = 0xAE9 // 2793\n\tSYS_FECLEAREXCEPT                   = 0xAEA // 2794\n\tSYS_FEGETENV                        = 0xAEB // 2795\n\tSYS_FEGETEXCEPTFLAG                 = 0xAEC // 2796\n\tSYS_FEGETROUND                      = 0xAED // 2797\n\tSYS_FEHOLDEXCEPT                    = 0xAEE // 2798\n\tSYS_FERAISEEXCEPT                   = 0xAEF // 2799\n\tSYS_FESETENV                        = 0xAF0 // 2800\n\tSYS_FESETEXCEPTFLAG                 = 0xAF1 // 2801\n\tSYS_FESETROUND                      = 0xAF2 // 2802\n\tSYS_FETESTEXCEPT                    = 0xAF3 // 2803\n\tSYS_FEUPDATEENV                     = 0xAF4 // 2804\n\tSYS___COPYSIGN_H                    = 0xAF5 // 2805\n\tSYS___HYPOTF_H                      = 0xAF6 // 2806\n\tSYS___HYPOTL_H                      = 0xAF7 // 2807\n\tSYS___CLASS                         = 0xAFA // 2810\n\tSYS___CLASS_B                       = 0xAFB // 2811\n\tSYS___CLASS_H                       = 0xAFC // 2812\n\tSYS___ISBLANK_A                     = 0xB2E // 2862\n\tSYS___ISWBLANK_A                    = 0xB2F // 2863\n\tSYS___LROUND_FIXUP                  = 0xB30 // 2864\n\tSYS___LROUNDF_FIXUP                 = 0xB31 // 2865\n\tSYS_SCHED_YIELD                     = 0xB32 // 2866\n\tSYS_STRERROR_R                      = 0xB33 // 2867\n\tSYS_UNSETENV                        = 0xB34 // 2868\n\tSYS___LGAMMA_H_C99                  = 0xB38 // 2872\n\tSYS___LGAMMA_B_C99                  = 0xB39 // 2873\n\tSYS___LGAMMA_R_C99                  = 0xB3A // 2874\n\tSYS___FTELL2                        = 0xB3B // 2875\n\tSYS___FSEEK2                        = 0xB3C // 2876\n\tSYS___STATIC_REINIT                 = 0xB3D // 2877\n\tSYS_PTHREAD_ATTR_GETSTACK           = 0xB3E // 2878\n\tSYS_PTHREAD_ATTR_SETSTACK           = 0xB3F // 2879\n\tSYS___TGAMMA_H_C99                  = 0xB78 // 2936\n\tSYS___TGAMMAF_H_C99                 = 0xB79 // 2937\n\tSYS___LE_TRACEBACK                  = 0xB7A // 2938\n\tSYS___MUST_STAY_CLEAN               = 0xB7C // 2940\n\tSYS___O_ENV                         = 0xB7D // 2941\n\tSYS_ACOSD32                         = 0xB7E // 2942\n\tSYS_ACOSD64                         = 0xB7F // 2943\n\tSYS_ACOSD128                        = 0xB80 // 2944\n\tSYS_ACOSHD32                        = 0xB81 // 2945\n\tSYS_ACOSHD64                        = 0xB82 // 2946\n\tSYS_ACOSHD128                       = 0xB83 // 2947\n\tSYS_ASIND32                         = 0xB84 // 2948\n\tSYS_ASIND64                         = 0xB85 // 2949\n\tSYS_ASIND128                        = 0xB86 // 2950\n\tSYS_ASINHD32                        = 0xB87 // 2951\n\tSYS_ASINHD64                        = 0xB88 // 2952\n\tSYS_ASINHD128                       = 0xB89 // 2953\n\tSYS_ATAND32                         = 0xB8A // 2954\n\tSYS_ATAND64                         = 0xB8B // 2955\n\tSYS_ATAND128                        = 0xB8C // 2956\n\tSYS_ATAN2D32                        = 0xB8D // 2957\n\tSYS_ATAN2D64                        = 0xB8E // 2958\n\tSYS_ATAN2D128                       = 0xB8F // 2959\n\tSYS_ATANHD32                        = 0xB90 // 2960\n\tSYS_ATANHD64                        = 0xB91 // 2961\n\tSYS_ATANHD128                       = 0xB92 // 2962\n\tSYS_CBRTD32                         = 0xB93 // 2963\n\tSYS_CBRTD64                         = 0xB94 // 2964\n\tSYS_CBRTD128                        = 0xB95 // 2965\n\tSYS_CEILD32                         = 0xB96 // 2966\n\tSYS_CEILD64                         = 0xB97 // 2967\n\tSYS_CEILD128                        = 0xB98 // 2968\n\tSYS___CLASS2                        = 0xB99 // 2969\n\tSYS___CLASS2_B                      = 0xB9A // 2970\n\tSYS___CLASS2_H                      = 0xB9B // 2971\n\tSYS_COPYSIGND32                     = 0xB9C // 2972\n\tSYS_COPYSIGND64                     = 0xB9D // 2973\n\tSYS_COPYSIGND128                    = 0xB9E // 2974\n\tSYS_COSD32                          = 0xB9F // 2975\n\tSYS_COSD64                          = 0xBA0 // 2976\n\tSYS_COSD128                         = 0xBA1 // 2977\n\tSYS_COSHD32                         = 0xBA2 // 2978\n\tSYS_COSHD64                         = 0xBA3 // 2979\n\tSYS_COSHD128                        = 0xBA4 // 2980\n\tSYS_ERFD32                          = 0xBA5 // 2981\n\tSYS_ERFD64                          = 0xBA6 // 2982\n\tSYS_ERFD128                         = 0xBA7 // 2983\n\tSYS_ERFCD32                         = 0xBA8 // 2984\n\tSYS_ERFCD64                         = 0xBA9 // 2985\n\tSYS_ERFCD128                        = 0xBAA // 2986\n\tSYS_EXPD32                          = 0xBAB // 2987\n\tSYS_EXPD64                          = 0xBAC // 2988\n\tSYS_EXPD128                         = 0xBAD // 2989\n\tSYS_EXP2D32                         = 0xBAE // 2990\n\tSYS_EXP2D64                         = 0xBAF // 2991\n\tSYS_EXP2D128                        = 0xBB0 // 2992\n\tSYS_EXPM1D32                        = 0xBB1 // 2993\n\tSYS_EXPM1D64                        = 0xBB2 // 2994\n\tSYS_EXPM1D128                       = 0xBB3 // 2995\n\tSYS_FABSD32                         = 0xBB4 // 2996\n\tSYS_FABSD64                         = 0xBB5 // 2997\n\tSYS_FABSD128                        = 0xBB6 // 2998\n\tSYS_FDIMD32                         = 0xBB7 // 2999\n\tSYS_FDIMD64                         = 0xBB8 // 3000\n\tSYS_FDIMD128                        = 0xBB9 // 3001\n\tSYS_FE_DEC_GETROUND                 = 0xBBA // 3002\n\tSYS_FE_DEC_SETROUND                 = 0xBBB // 3003\n\tSYS_FLOORD32                        = 0xBBC // 3004\n\tSYS_FLOORD64                        = 0xBBD // 3005\n\tSYS_FLOORD128                       = 0xBBE // 3006\n\tSYS_FMAD32                          = 0xBBF // 3007\n\tSYS_FMAD64                          = 0xBC0 // 3008\n\tSYS_FMAD128                         = 0xBC1 // 3009\n\tSYS_FMAXD32                         = 0xBC2 // 3010\n\tSYS_FMAXD64                         = 0xBC3 // 3011\n\tSYS_FMAXD128                        = 0xBC4 // 3012\n\tSYS_FMIND32                         = 0xBC5 // 3013\n\tSYS_FMIND64                         = 0xBC6 // 3014\n\tSYS_FMIND128                        = 0xBC7 // 3015\n\tSYS_FMODD32                         = 0xBC8 // 3016\n\tSYS_FMODD64                         = 0xBC9 // 3017\n\tSYS_FMODD128                        = 0xBCA // 3018\n\tSYS___FP_CAST_D                     = 0xBCB // 3019\n\tSYS_FREXPD32                        = 0xBCC // 3020\n\tSYS_FREXPD64                        = 0xBCD // 3021\n\tSYS_FREXPD128                       = 0xBCE // 3022\n\tSYS_HYPOTD32                        = 0xBCF // 3023\n\tSYS_HYPOTD64                        = 0xBD0 // 3024\n\tSYS_HYPOTD128                       = 0xBD1 // 3025\n\tSYS_ILOGBD32                        = 0xBD2 // 3026\n\tSYS_ILOGBD64                        = 0xBD3 // 3027\n\tSYS_ILOGBD128                       = 0xBD4 // 3028\n\tSYS_LDEXPD32                        = 0xBD5 // 3029\n\tSYS_LDEXPD64                        = 0xBD6 // 3030\n\tSYS_LDEXPD128                       = 0xBD7 // 3031\n\tSYS_LGAMMAD32                       = 0xBD8 // 3032\n\tSYS_LGAMMAD64                       = 0xBD9 // 3033\n\tSYS_LGAMMAD128                      = 0xBDA // 3034\n\tSYS_LLRINTD32                       = 0xBDB // 3035\n\tSYS_LLRINTD64                       = 0xBDC // 3036\n\tSYS_LLRINTD128                      = 0xBDD // 3037\n\tSYS_LLROUNDD32                      = 0xBDE // 3038\n\tSYS_LLROUNDD64                      = 0xBDF // 3039\n\tSYS_LLROUNDD128                     = 0xBE0 // 3040\n\tSYS_LOGD32                          = 0xBE1 // 3041\n\tSYS_LOGD64                          = 0xBE2 // 3042\n\tSYS_LOGD128                         = 0xBE3 // 3043\n\tSYS_LOG10D32                        = 0xBE4 // 3044\n\tSYS_LOG10D64                        = 0xBE5 // 3045\n\tSYS_LOG10D128                       = 0xBE6 // 3046\n\tSYS_LOG1PD32                        = 0xBE7 // 3047\n\tSYS_LOG1PD64                        = 0xBE8 // 3048\n\tSYS_LOG1PD128                       = 0xBE9 // 3049\n\tSYS_LOG2D32                         = 0xBEA // 3050\n\tSYS_LOG2D64                         = 0xBEB // 3051\n\tSYS_LOG2D128                        = 0xBEC // 3052\n\tSYS_LOGBD32                         = 0xBED // 3053\n\tSYS_LOGBD64                         = 0xBEE // 3054\n\tSYS_LOGBD128                        = 0xBEF // 3055\n\tSYS_LRINTD32                        = 0xBF0 // 3056\n\tSYS_LRINTD64                        = 0xBF1 // 3057\n\tSYS_LRINTD128                       = 0xBF2 // 3058\n\tSYS_LROUNDD32                       = 0xBF3 // 3059\n\tSYS_LROUNDD64                       = 0xBF4 // 3060\n\tSYS_LROUNDD128                      = 0xBF5 // 3061\n\tSYS_MODFD32                         = 0xBF6 // 3062\n\tSYS_MODFD64                         = 0xBF7 // 3063\n\tSYS_MODFD128                        = 0xBF8 // 3064\n\tSYS_NAND32                          = 0xBF9 // 3065\n\tSYS_NAND64                          = 0xBFA // 3066\n\tSYS_NAND128                         = 0xBFB // 3067\n\tSYS_NEARBYINTD32                    = 0xBFC // 3068\n\tSYS_NEARBYINTD64                    = 0xBFD // 3069\n\tSYS_NEARBYINTD128                   = 0xBFE // 3070\n\tSYS_NEXTAFTERD32                    = 0xBFF // 3071\n\tSYS_NEXTAFTERD64                    = 0xC00 // 3072\n\tSYS_NEXTAFTERD128                   = 0xC01 // 3073\n\tSYS_NEXTTOWARDD32                   = 0xC02 // 3074\n\tSYS_NEXTTOWARDD64                   = 0xC03 // 3075\n\tSYS_NEXTTOWARDD128                  = 0xC04 // 3076\n\tSYS_POWD32                          = 0xC05 // 3077\n\tSYS_POWD64                          = 0xC06 // 3078\n\tSYS_POWD128                         = 0xC07 // 3079\n\tSYS_QUANTIZED32                     = 0xC08 // 3080\n\tSYS_QUANTIZED64                     = 0xC09 // 3081\n\tSYS_QUANTIZED128                    = 0xC0A // 3082\n\tSYS_REMAINDERD32                    = 0xC0B // 3083\n\tSYS_REMAINDERD64                    = 0xC0C // 3084\n\tSYS_REMAINDERD128                   = 0xC0D // 3085\n\tSYS___REMQUOD32                     = 0xC0E // 3086\n\tSYS___REMQUOD64                     = 0xC0F // 3087\n\tSYS___REMQUOD128                    = 0xC10 // 3088\n\tSYS_RINTD32                         = 0xC11 // 3089\n\tSYS_RINTD64                         = 0xC12 // 3090\n\tSYS_RINTD128                        = 0xC13 // 3091\n\tSYS_ROUNDD32                        = 0xC14 // 3092\n\tSYS_ROUNDD64                        = 0xC15 // 3093\n\tSYS_ROUNDD128                       = 0xC16 // 3094\n\tSYS_SAMEQUANTUMD32                  = 0xC17 // 3095\n\tSYS_SAMEQUANTUMD64                  = 0xC18 // 3096\n\tSYS_SAMEQUANTUMD128                 = 0xC19 // 3097\n\tSYS_SCALBLND32                      = 0xC1A // 3098\n\tSYS_SCALBLND64                      = 0xC1B // 3099\n\tSYS_SCALBLND128                     = 0xC1C // 3100\n\tSYS_SCALBND32                       = 0xC1D // 3101\n\tSYS_SCALBND64                       = 0xC1E // 3102\n\tSYS_SCALBND128                      = 0xC1F // 3103\n\tSYS_SIND32                          = 0xC20 // 3104\n\tSYS_SIND64                          = 0xC21 // 3105\n\tSYS_SIND128                         = 0xC22 // 3106\n\tSYS_SINHD32                         = 0xC23 // 3107\n\tSYS_SINHD64                         = 0xC24 // 3108\n\tSYS_SINHD128                        = 0xC25 // 3109\n\tSYS_SQRTD32                         = 0xC26 // 3110\n\tSYS_SQRTD64                         = 0xC27 // 3111\n\tSYS_SQRTD128                        = 0xC28 // 3112\n\tSYS_STRTOD32                        = 0xC29 // 3113\n\tSYS_STRTOD64                        = 0xC2A // 3114\n\tSYS_STRTOD128                       = 0xC2B // 3115\n\tSYS_TAND32                          = 0xC2C // 3116\n\tSYS_TAND64                          = 0xC2D // 3117\n\tSYS_TAND128                         = 0xC2E // 3118\n\tSYS_TANHD32                         = 0xC2F // 3119\n\tSYS_TANHD64                         = 0xC30 // 3120\n\tSYS_TANHD128                        = 0xC31 // 3121\n\tSYS_TGAMMAD32                       = 0xC32 // 3122\n\tSYS_TGAMMAD64                       = 0xC33 // 3123\n\tSYS_TGAMMAD128                      = 0xC34 // 3124\n\tSYS_TRUNCD32                        = 0xC3E // 3134\n\tSYS_TRUNCD64                        = 0xC3F // 3135\n\tSYS_TRUNCD128                       = 0xC40 // 3136\n\tSYS_WCSTOD32                        = 0xC41 // 3137\n\tSYS_WCSTOD64                        = 0xC42 // 3138\n\tSYS_WCSTOD128                       = 0xC43 // 3139\n\tSYS___CODEPAGE_INFO                 = 0xC64 // 3172\n\tSYS_POSIX_OPENPT                    = 0xC66 // 3174\n\tSYS_PSELECT                         = 0xC67 // 3175\n\tSYS_SOCKATMARK                      = 0xC68 // 3176\n\tSYS_AIO_FSYNC                       = 0xC69 // 3177\n\tSYS_LIO_LISTIO                      = 0xC6A // 3178\n\tSYS___ATANPID32                     = 0xC6B // 3179\n\tSYS___ATANPID64                     = 0xC6C // 3180\n\tSYS___ATANPID128                    = 0xC6D // 3181\n\tSYS___COSPID32                      = 0xC6E // 3182\n\tSYS___COSPID64                      = 0xC6F // 3183\n\tSYS___COSPID128                     = 0xC70 // 3184\n\tSYS___SINPID32                      = 0xC71 // 3185\n\tSYS___SINPID64                      = 0xC72 // 3186\n\tSYS___SINPID128                     = 0xC73 // 3187\n\tSYS_SETIPV4SOURCEFILTER             = 0xC76 // 3190\n\tSYS_GETIPV4SOURCEFILTER             = 0xC77 // 3191\n\tSYS_SETSOURCEFILTER                 = 0xC78 // 3192\n\tSYS_GETSOURCEFILTER                 = 0xC79 // 3193\n\tSYS_FWRITE_UNLOCKED                 = 0xC7A // 3194\n\tSYS_FREAD_UNLOCKED                  = 0xC7B // 3195\n\tSYS_FGETS_UNLOCKED                  = 0xC7C // 3196\n\tSYS_GETS_UNLOCKED                   = 0xC7D // 3197\n\tSYS_FPUTS_UNLOCKED                  = 0xC7E // 3198\n\tSYS_PUTS_UNLOCKED                   = 0xC7F // 3199\n\tSYS_FGETC_UNLOCKED                  = 0xC80 // 3200\n\tSYS_FPUTC_UNLOCKED                  = 0xC81 // 3201\n\tSYS_DLADDR                          = 0xC82 // 3202\n\tSYS_SHM_OPEN                        = 0xC8C // 3212\n\tSYS_SHM_UNLINK                      = 0xC8D // 3213\n\tSYS___CLASS2F                       = 0xC91 // 3217\n\tSYS___CLASS2L                       = 0xC92 // 3218\n\tSYS___CLASS2F_B                     = 0xC93 // 3219\n\tSYS___CLASS2F_H                     = 0xC94 // 3220\n\tSYS___CLASS2L_B                     = 0xC95 // 3221\n\tSYS___CLASS2L_H                     = 0xC96 // 3222\n\tSYS___CLASS2D32                     = 0xC97 // 3223\n\tSYS___CLASS2D64                     = 0xC98 // 3224\n\tSYS___CLASS2D128                    = 0xC99 // 3225\n\tSYS___TOCSNAME2                     = 0xC9A // 3226\n\tSYS___D1TOP                         = 0xC9B // 3227\n\tSYS___D2TOP                         = 0xC9C // 3228\n\tSYS___D4TOP                         = 0xC9D // 3229\n\tSYS___PTOD1                         = 0xC9E // 3230\n\tSYS___PTOD2                         = 0xC9F // 3231\n\tSYS___PTOD4                         = 0xCA0 // 3232\n\tSYS_CLEARERR_UNLOCKED               = 0xCA1 // 3233\n\tSYS_FDELREC_UNLOCKED                = 0xCA2 // 3234\n\tSYS_FEOF_UNLOCKED                   = 0xCA3 // 3235\n\tSYS_FERROR_UNLOCKED                 = 0xCA4 // 3236\n\tSYS_FFLUSH_UNLOCKED                 = 0xCA5 // 3237\n\tSYS_FGETPOS_UNLOCKED                = 0xCA6 // 3238\n\tSYS_FGETWC_UNLOCKED                 = 0xCA7 // 3239\n\tSYS_FGETWS_UNLOCKED                 = 0xCA8 // 3240\n\tSYS_FILENO_UNLOCKED                 = 0xCA9 // 3241\n\tSYS_FLDATA_UNLOCKED                 = 0xCAA // 3242\n\tSYS_FLOCATE_UNLOCKED                = 0xCAB // 3243\n\tSYS_FPRINTF_UNLOCKED                = 0xCAC // 3244\n\tSYS_FPUTWC_UNLOCKED                 = 0xCAD // 3245\n\tSYS_FPUTWS_UNLOCKED                 = 0xCAE // 3246\n\tSYS_FSCANF_UNLOCKED                 = 0xCAF // 3247\n\tSYS_FSEEK_UNLOCKED                  = 0xCB0 // 3248\n\tSYS_FSEEKO_UNLOCKED                 = 0xCB1 // 3249\n\tSYS_FSETPOS_UNLOCKED                = 0xCB3 // 3251\n\tSYS_FTELL_UNLOCKED                  = 0xCB4 // 3252\n\tSYS_FTELLO_UNLOCKED                 = 0xCB5 // 3253\n\tSYS_FUPDATE_UNLOCKED                = 0xCB7 // 3255\n\tSYS_FWIDE_UNLOCKED                  = 0xCB8 // 3256\n\tSYS_FWPRINTF_UNLOCKED               = 0xCB9 // 3257\n\tSYS_FWSCANF_UNLOCKED                = 0xCBA // 3258\n\tSYS_GETWC_UNLOCKED                  = 0xCBB // 3259\n\tSYS_GETWCHAR_UNLOCKED               = 0xCBC // 3260\n\tSYS_PERROR_UNLOCKED                 = 0xCBD // 3261\n\tSYS_PRINTF_UNLOCKED                 = 0xCBE // 3262\n\tSYS_PUTWC_UNLOCKED                  = 0xCBF // 3263\n\tSYS_PUTWCHAR_UNLOCKED               = 0xCC0 // 3264\n\tSYS_REWIND_UNLOCKED                 = 0xCC1 // 3265\n\tSYS_SCANF_UNLOCKED                  = 0xCC2 // 3266\n\tSYS_UNGETC_UNLOCKED                 = 0xCC3 // 3267\n\tSYS_UNGETWC_UNLOCKED                = 0xCC4 // 3268\n\tSYS_VFPRINTF_UNLOCKED               = 0xCC5 // 3269\n\tSYS_VFSCANF_UNLOCKED                = 0xCC7 // 3271\n\tSYS_VFWPRINTF_UNLOCKED              = 0xCC9 // 3273\n\tSYS_VFWSCANF_UNLOCKED               = 0xCCB // 3275\n\tSYS_VPRINTF_UNLOCKED                = 0xCCD // 3277\n\tSYS_VSCANF_UNLOCKED                 = 0xCCF // 3279\n\tSYS_VWPRINTF_UNLOCKED               = 0xCD1 // 3281\n\tSYS_VWSCANF_UNLOCKED                = 0xCD3 // 3283\n\tSYS_WPRINTF_UNLOCKED                = 0xCD5 // 3285\n\tSYS_WSCANF_UNLOCKED                 = 0xCD6 // 3286\n\tSYS_ASCTIME64                       = 0xCD7 // 3287\n\tSYS_ASCTIME64_R                     = 0xCD8 // 3288\n\tSYS_CTIME64                         = 0xCD9 // 3289\n\tSYS_CTIME64_R                       = 0xCDA // 3290\n\tSYS_DIFFTIME64                      = 0xCDB // 3291\n\tSYS_GMTIME64                        = 0xCDC // 3292\n\tSYS_GMTIME64_R                      = 0xCDD // 3293\n\tSYS_LOCALTIME64                     = 0xCDE // 3294\n\tSYS_LOCALTIME64_R                   = 0xCDF // 3295\n\tSYS_MKTIME64                        = 0xCE0 // 3296\n\tSYS_TIME64                          = 0xCE1 // 3297\n\tSYS___LOGIN_APPLID                  = 0xCE2 // 3298\n\tSYS___PASSWD_APPLID                 = 0xCE3 // 3299\n\tSYS_PTHREAD_SECURITY_APPLID_NP      = 0xCE4 // 3300\n\tSYS___GETTHENT                      = 0xCE5 // 3301\n\tSYS_FREEIFADDRS                     = 0xCE6 // 3302\n\tSYS_GETIFADDRS                      = 0xCE7 // 3303\n\tSYS_POSIX_FALLOCATE                 = 0xCE8 // 3304\n\tSYS_POSIX_MEMALIGN                  = 0xCE9 // 3305\n\tSYS_SIZEOF_ALLOC                    = 0xCEA // 3306\n\tSYS_RESIZE_ALLOC                    = 0xCEB // 3307\n\tSYS_FREAD_NOUPDATE                  = 0xCEC // 3308\n\tSYS_FREAD_NOUPDATE_UNLOCKED         = 0xCED // 3309\n\tSYS_FGETPOS64                       = 0xCEE // 3310\n\tSYS_FSEEK64                         = 0xCEF // 3311\n\tSYS_FSEEKO64                        = 0xCF0 // 3312\n\tSYS_FSETPOS64                       = 0xCF1 // 3313\n\tSYS_FTELL64                         = 0xCF2 // 3314\n\tSYS_FTELLO64                        = 0xCF3 // 3315\n\tSYS_FGETPOS64_UNLOCKED              = 0xCF4 // 3316\n\tSYS_FSEEK64_UNLOCKED                = 0xCF5 // 3317\n\tSYS_FSEEKO64_UNLOCKED               = 0xCF6 // 3318\n\tSYS_FSETPOS64_UNLOCKED              = 0xCF7 // 3319\n\tSYS_FTELL64_UNLOCKED                = 0xCF8 // 3320\n\tSYS_FTELLO64_UNLOCKED               = 0xCF9 // 3321\n\tSYS_FOPEN_UNLOCKED                  = 0xCFA // 3322\n\tSYS_FREOPEN_UNLOCKED                = 0xCFB // 3323\n\tSYS_FDOPEN_UNLOCKED                 = 0xCFC // 3324\n\tSYS_TMPFILE_UNLOCKED                = 0xCFD // 3325\n\tSYS___MOSERVICES                    = 0xD3D // 3389\n\tSYS___GETTOD                        = 0xD3E // 3390\n\tSYS_C16RTOMB                        = 0xD40 // 3392\n\tSYS_C32RTOMB                        = 0xD41 // 3393\n\tSYS_MBRTOC16                        = 0xD42 // 3394\n\tSYS_MBRTOC32                        = 0xD43 // 3395\n\tSYS_QUANTEXPD32                     = 0xD44 // 3396\n\tSYS_QUANTEXPD64                     = 0xD45 // 3397\n\tSYS_QUANTEXPD128                    = 0xD46 // 3398\n\tSYS___LOCALE_CTL                    = 0xD47 // 3399\n\tSYS___SMF_RECORD2                   = 0xD48 // 3400\n\tSYS_FOPEN64                         = 0xD49 // 3401\n\tSYS_FOPEN64_UNLOCKED                = 0xD4A // 3402\n\tSYS_FREOPEN64                       = 0xD4B // 3403\n\tSYS_FREOPEN64_UNLOCKED              = 0xD4C // 3404\n\tSYS_TMPFILE64                       = 0xD4D // 3405\n\tSYS_TMPFILE64_UNLOCKED              = 0xD4E // 3406\n\tSYS_GETDATE64                       = 0xD4F // 3407\n\tSYS_GETTIMEOFDAY64                  = 0xD50 // 3408\n\tSYS_BIND2ADDRSEL                    = 0xD59 // 3417\n\tSYS_INET6_IS_SRCADDR                = 0xD5A // 3418\n\tSYS___GETGRGID1                     = 0xD5B // 3419\n\tSYS___GETGRNAM1                     = 0xD5C // 3420\n\tSYS___FBUFSIZE                      = 0xD60 // 3424\n\tSYS___FPENDING                      = 0xD61 // 3425\n\tSYS___FLBF                          = 0xD62 // 3426\n\tSYS___FREADABLE                     = 0xD63 // 3427\n\tSYS___FWRITABLE                     = 0xD64 // 3428\n\tSYS___FREADING                      = 0xD65 // 3429\n\tSYS___FWRITING                      = 0xD66 // 3430\n\tSYS___FSETLOCKING                   = 0xD67 // 3431\n\tSYS__FLUSHLBF                       = 0xD68 // 3432\n\tSYS___FPURGE                        = 0xD69 // 3433\n\tSYS___FREADAHEAD                    = 0xD6A // 3434\n\tSYS___FSETERR                       = 0xD6B // 3435\n\tSYS___FPENDING_UNLOCKED             = 0xD6C // 3436\n\tSYS___FREADING_UNLOCKED             = 0xD6D // 3437\n\tSYS___FWRITING_UNLOCKED             = 0xD6E // 3438\n\tSYS__FLUSHLBF_UNLOCKED              = 0xD6F // 3439\n\tSYS___FPURGE_UNLOCKED               = 0xD70 // 3440\n\tSYS___FREADAHEAD_UNLOCKED           = 0xD71 // 3441\n\tSYS___LE_CEEGTJS                    = 0xD72 // 3442\n\tSYS___LE_RECORD_DUMP                = 0xD73 // 3443\n\tSYS_FSTAT64                         = 0xD74 // 3444\n\tSYS_LSTAT64                         = 0xD75 // 3445\n\tSYS_STAT64                          = 0xD76 // 3446\n\tSYS___READDIR2_64                   = 0xD77 // 3447\n\tSYS___OPEN_STAT64                   = 0xD78 // 3448\n\tSYS_FTW64                           = 0xD79 // 3449\n\tSYS_NFTW64                          = 0xD7A // 3450\n\tSYS_UTIME64                         = 0xD7B // 3451\n\tSYS_UTIMES64                        = 0xD7C // 3452\n\tSYS___GETIPC64                      = 0xD7D // 3453\n\tSYS_MSGCTL64                        = 0xD7E // 3454\n\tSYS_SEMCTL64                        = 0xD7F // 3455\n\tSYS_SHMCTL64                        = 0xD80 // 3456\n\tSYS_MSGXRCV64                       = 0xD81 // 3457\n\tSYS___MGXR64                        = 0xD81 // 3457\n\tSYS_W_GETPSENT64                    = 0xD82 // 3458\n\tSYS_PTHREAD_COND_TIMEDWAIT64        = 0xD83 // 3459\n\tSYS_FTIME64                         = 0xD85 // 3461\n\tSYS_GETUTXENT64                     = 0xD86 // 3462\n\tSYS_GETUTXID64                      = 0xD87 // 3463\n\tSYS_GETUTXLINE64                    = 0xD88 // 3464\n\tSYS_PUTUTXLINE64                    = 0xD89 // 3465\n\tSYS_NEWLOCALE                       = 0xD8A // 3466\n\tSYS_FREELOCALE                      = 0xD8B // 3467\n\tSYS_USELOCALE                       = 0xD8C // 3468\n\tSYS_DUPLOCALE                       = 0xD8D // 3469\n\tSYS___CHATTR64                      = 0xD9C // 3484\n\tSYS___LCHATTR64                     = 0xD9D // 3485\n\tSYS___FCHATTR64                     = 0xD9E // 3486\n\tSYS_____CHATTR64_A                  = 0xD9F // 3487\n\tSYS_____LCHATTR64_A                 = 0xDA0 // 3488\n\tSYS___LE_CEEUSGD                    = 0xDA1 // 3489\n\tSYS___LE_IFAM_CON                   = 0xDA2 // 3490\n\tSYS___LE_IFAM_DSC                   = 0xDA3 // 3491\n\tSYS___LE_IFAM_GET                   = 0xDA4 // 3492\n\tSYS___LE_IFAM_QRY                   = 0xDA5 // 3493\n\tSYS_ALIGNED_ALLOC                   = 0xDA6 // 3494\n\tSYS_ACCEPT4                         = 0xDA7 // 3495\n\tSYS___ACCEPT4_A                     = 0xDA8 // 3496\n\tSYS_COPYFILERANGE                   = 0xDA9 // 3497\n\tSYS_GETLINE                         = 0xDAA // 3498\n\tSYS___GETLINE_A                     = 0xDAB // 3499\n\tSYS_DIRFD                           = 0xDAC // 3500\n\tSYS_CLOCK_GETTIME                   = 0xDAD // 3501\n\tSYS_DUP3                            = 0xDAE // 3502\n\tSYS_EPOLL_CREATE                    = 0xDAF // 3503\n\tSYS_EPOLL_CREATE1                   = 0xDB0 // 3504\n\tSYS_EPOLL_CTL                       = 0xDB1 // 3505\n\tSYS_EPOLL_WAIT                      = 0xDB2 // 3506\n\tSYS_EPOLL_PWAIT                     = 0xDB3 // 3507\n\tSYS_EVENTFD                         = 0xDB4 // 3508\n\tSYS_STATFS                          = 0xDB5 // 3509\n\tSYS___STATFS_A                      = 0xDB6 // 3510\n\tSYS_FSTATFS                         = 0xDB7 // 3511\n\tSYS_INOTIFY_INIT                    = 0xDB8 // 3512\n\tSYS_INOTIFY_INIT1                   = 0xDB9 // 3513\n\tSYS_INOTIFY_ADD_WATCH               = 0xDBA // 3514\n\tSYS___INOTIFY_ADD_WATCH_A           = 0xDBB // 3515\n\tSYS_INOTIFY_RM_WATCH                = 0xDBC // 3516\n\tSYS_PIPE2                           = 0xDBD // 3517\n\tSYS_PIVOT_ROOT                      = 0xDBE // 3518\n\tSYS___PIVOT_ROOT_A                  = 0xDBF // 3519\n\tSYS_PRCTL                           = 0xDC0 // 3520\n\tSYS_PRLIMIT                         = 0xDC1 // 3521\n\tSYS_SETHOSTNAME                     = 0xDC2 // 3522\n\tSYS___SETHOSTNAME_A                 = 0xDC3 // 3523\n\tSYS_SETRESUID                       = 0xDC4 // 3524\n\tSYS_SETRESGID                       = 0xDC5 // 3525\n\tSYS_PTHREAD_CONDATTR_GETCLOCK       = 0xDC6 // 3526\n\tSYS_FLOCK                           = 0xDC7 // 3527\n\tSYS_FGETXATTR                       = 0xDC8 // 3528\n\tSYS___FGETXATTR_A                   = 0xDC9 // 3529\n\tSYS_FLISTXATTR                      = 0xDCA // 3530\n\tSYS___FLISTXATTR_A                  = 0xDCB // 3531\n\tSYS_FREMOVEXATTR                    = 0xDCC // 3532\n\tSYS___FREMOVEXATTR_A                = 0xDCD // 3533\n\tSYS_FSETXATTR                       = 0xDCE // 3534\n\tSYS___FSETXATTR_A                   = 0xDCF // 3535\n\tSYS_GETXATTR                        = 0xDD0 // 3536\n\tSYS___GETXATTR_A                    = 0xDD1 // 3537\n\tSYS_LGETXATTR                       = 0xDD2 // 3538\n\tSYS___LGETXATTR_A                   = 0xDD3 // 3539\n\tSYS_LISTXATTR                       = 0xDD4 // 3540\n\tSYS___LISTXATTR_A                   = 0xDD5 // 3541\n\tSYS_LLISTXATTR                      = 0xDD6 // 3542\n\tSYS___LLISTXATTR_A                  = 0xDD7 // 3543\n\tSYS_LREMOVEXATTR                    = 0xDD8 // 3544\n\tSYS___LREMOVEXATTR_A                = 0xDD9 // 3545\n\tSYS_LSETXATTR                       = 0xDDA // 3546\n\tSYS___LSETXATTR_A                   = 0xDDB // 3547\n\tSYS_REMOVEXATTR                     = 0xDDC // 3548\n\tSYS___REMOVEXATTR_A                 = 0xDDD // 3549\n\tSYS_SETXATTR                        = 0xDDE // 3550\n\tSYS___SETXATTR_A                    = 0xDDF // 3551\n\tSYS_FDATASYNC                       = 0xDE0 // 3552\n\tSYS_SYNCFS                          = 0xDE1 // 3553\n\tSYS_FUTIMES                         = 0xDE2 // 3554\n\tSYS_FUTIMESAT                       = 0xDE3 // 3555\n\tSYS___FUTIMESAT_A                   = 0xDE4 // 3556\n\tSYS_LUTIMES                         = 0xDE5 // 3557\n\tSYS___LUTIMES_A                     = 0xDE6 // 3558\n\tSYS_INET_ATON                       = 0xDE7 // 3559\n\tSYS_GETRANDOM                       = 0xDE8 // 3560\n\tSYS_GETTID                          = 0xDE9 // 3561\n\tSYS_MEMFD_CREATE                    = 0xDEA // 3562\n\tSYS___MEMFD_CREATE_A                = 0xDEB // 3563\n\tSYS_FACCESSAT                       = 0xDEC // 3564\n\tSYS___FACCESSAT_A                   = 0xDED // 3565\n\tSYS_FCHMODAT                        = 0xDEE // 3566\n\tSYS___FCHMODAT_A                    = 0xDEF // 3567\n\tSYS_FCHOWNAT                        = 0xDF0 // 3568\n\tSYS___FCHOWNAT_A                    = 0xDF1 // 3569\n\tSYS_FSTATAT                         = 0xDF2 // 3570\n\tSYS___FSTATAT_A                     = 0xDF3 // 3571\n\tSYS_LINKAT                          = 0xDF4 // 3572\n\tSYS___LINKAT_A                      = 0xDF5 // 3573\n\tSYS_MKDIRAT                         = 0xDF6 // 3574\n\tSYS___MKDIRAT_A                     = 0xDF7 // 3575\n\tSYS_MKFIFOAT                        = 0xDF8 // 3576\n\tSYS___MKFIFOAT_A                    = 0xDF9 // 3577\n\tSYS_MKNODAT                         = 0xDFA // 3578\n\tSYS___MKNODAT_A                     = 0xDFB // 3579\n\tSYS_OPENAT                          = 0xDFC // 3580\n\tSYS___OPENAT_A                      = 0xDFD // 3581\n\tSYS_READLINKAT                      = 0xDFE // 3582\n\tSYS___READLINKAT_A                  = 0xDFF // 3583\n\tSYS_RENAMEAT                        = 0xE00 // 3584\n\tSYS___RENAMEAT_A                    = 0xE01 // 3585\n\tSYS_RENAMEAT2                       = 0xE02 // 3586\n\tSYS___RENAMEAT2_A                   = 0xE03 // 3587\n\tSYS_SYMLINKAT                       = 0xE04 // 3588\n\tSYS___SYMLINKAT_A                   = 0xE05 // 3589\n\tSYS_UNLINKAT                        = 0xE06 // 3590\n\tSYS___UNLINKAT_A                    = 0xE07 // 3591\n\tSYS_SYSINFO                         = 0xE08 // 3592\n\tSYS_WAIT4                           = 0xE0A // 3594\n\tSYS_CLONE                           = 0xE0B // 3595\n\tSYS_UNSHARE                         = 0xE0C // 3596\n\tSYS_SETNS                           = 0xE0D // 3597\n\tSYS_CAPGET                          = 0xE0E // 3598\n\tSYS_CAPSET                          = 0xE0F // 3599\n\tSYS_STRCHRNUL                       = 0xE10 // 3600\n\tSYS_PTHREAD_CONDATTR_SETCLOCK       = 0xE12 // 3602\n\tSYS_OPEN_BY_HANDLE_AT               = 0xE13 // 3603\n\tSYS___OPEN_BY_HANDLE_AT_A           = 0xE14 // 3604\n\tSYS___INET_ATON_A                   = 0xE15 // 3605\n\tSYS_MOUNT1                          = 0xE16 // 3606\n\tSYS___MOUNT1_A                      = 0xE17 // 3607\n\tSYS_UMOUNT1                         = 0xE18 // 3608\n\tSYS___UMOUNT1_A                     = 0xE19 // 3609\n\tSYS_UMOUNT2                         = 0xE1A // 3610\n\tSYS___UMOUNT2_A                     = 0xE1B // 3611\n\tSYS___PRCTL_A                       = 0xE1C // 3612\n\tSYS_LOCALTIME_R2                    = 0xE1D // 3613\n\tSYS___LOCALTIME_R2_A                = 0xE1E // 3614\n\tSYS_OPENAT2                         = 0xE1F // 3615\n\tSYS___OPENAT2_A                     = 0xE20 // 3616\n\tSYS___LE_CEEMICT                    = 0xE21 // 3617\n\tSYS_GETENTROPY                      = 0xE22 // 3618\n\tSYS_NANOSLEEP                       = 0xE23 // 3619\n\tSYS_UTIMENSAT                       = 0xE24 // 3620\n\tSYS___UTIMENSAT_A                   = 0xE25 // 3621\n\tSYS_ASPRINTF                        = 0xE26 // 3622\n\tSYS___ASPRINTF_A                    = 0xE27 // 3623\n\tSYS_VASPRINTF                       = 0xE28 // 3624\n\tSYS___VASPRINTF_A                   = 0xE29 // 3625\n\tSYS_DPRINTF                         = 0xE2A // 3626\n\tSYS___DPRINTF_A                     = 0xE2B // 3627\n\tSYS_GETOPT_LONG                     = 0xE2C // 3628\n\tSYS___GETOPT_LONG_A                 = 0xE2D // 3629\n\tSYS_PSIGNAL                         = 0xE2E // 3630\n\tSYS___PSIGNAL_A                     = 0xE2F // 3631\n\tSYS_PSIGNAL_UNLOCKED                = 0xE30 // 3632\n\tSYS___PSIGNAL_UNLOCKED_A            = 0xE31 // 3633\n\tSYS_FSTATAT_O                       = 0xE32 // 3634\n\tSYS___FSTATAT_O_A                   = 0xE33 // 3635\n\tSYS_FSTATAT64                       = 0xE34 // 3636\n\tSYS___FSTATAT64_A                   = 0xE35 // 3637\n\tSYS___CHATTRAT                      = 0xE36 // 3638\n\tSYS_____CHATTRAT_A                  = 0xE37 // 3639\n\tSYS___CHATTRAT64                    = 0xE38 // 3640\n\tSYS_____CHATTRAT64_A                = 0xE39 // 3641\n\tSYS_MADVISE                         = 0xE3A // 3642\n\tSYS___AUTHENTICATE                  = 0xE3B // 3643\n\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int32\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int32\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint32\n\ntype Stat_t struct {\n\tDev      uint32\n\tIno      uint32\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint32\n\tSize     int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int32\n\tBlocks   int32\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint32\n\tIno    uint32\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [2048]int32\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tLosigs uint32\n\tHisigs uint32\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint32\n\tBlocks    uint32\n\tBfree     uint32\n\tBavail    uint32\n\tFiles     uint32\n\tFfree     uint32\n\tFsid      Fsid_t\n\tVfstype   int32\n\tFsize     uint32\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int64\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int64\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint64\n\ntype Stat_t struct {\n\tDev      uint64\n\tIno      uint64\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint64\n\tSsize    int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int64\n\tBlocks   int64\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n\tPadto_ll uint32\n\tSize     int64\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint64\n\tIno    uint64\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n\t_      [4]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tSet [4]uint64\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint64\n\tBlocks    uint64\n\tBfree     uint64\n\tBavail    uint64\n\tFiles     uint64\n\tFfree     uint64\n\tFsid      Fsid64_t\n\tVfstype   int32\n\tFsize     uint64\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n\t_         [4]byte\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfData64 struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    int32\n\tUse         int32\n\tInits       uint32\n\tRmx         RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfData64 struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    int32\n\tUse         int32\n\tInits       uint32\n\tRmx         RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go",
    "content": "// cgo -godefs types_dragonfly.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tIno     uint64\n\tNlink   uint32\n\tDev     uint32\n\tMode    uint16\n\t_1      uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\t_       uint32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBlksize int64\n\tQspare2 int64\n}\n\ntype Statfs_t struct {\n\tSpare2      int64\n\tBsize       int64\n\tIosize      int64\n\tBlocks      int64\n\tBfree       int64\n\tBavail      int64\n\tFiles       int64\n\tFfree       int64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        int32\n\tFlags       int32\n\tSyncwrites  int64\n\tAsyncwrites int64\n\tFstypename  [16]byte\n\tMntonname   [80]byte\n\tSyncreads   int64\n\tAsyncreads  int64\n\tSpares1     int16\n\tMntfromname [80]byte\n\tSpares2     int16\n\tSpare       [2]int64\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno  uint64\n\tNamlen  uint16\n\tType    uint8\n\tUnused1 uint8\n\tUnused2 uint32\n\tName    [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xb0\n\tSizeofIfData           = 0xa0\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tMtu        uint64\n\tMetric     uint64\n\tLink_state uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\tOqdrops    uint64\n\tLastchange Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tFlags     int32\n\tAddrs     int32\n\tAddrflags int32\n\tMetric    int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks     uint64\n\tMtu       uint64\n\tPksent    uint64\n\tExpire    uint64\n\tSendpipe  uint64\n\tSsthresh  uint64\n\tRtt       uint64\n\tRttvar    uint64\n\tRecvpipe  uint64\n\tHopcount  uint64\n\tMssopt    uint16\n\tPad       uint16\n\tMsl       uint64\n\tIwmaxsegs uint64\n\tIwcapsegs uint64\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = 0xfffafdcd\n\tAT_SYMLINK_NOFOLLOW = 0x1\n\tAT_REMOVEDIR        = 0x2\n\tAT_EACCESS          = 0x4\n\tAT_SYMLINK_FOLLOW   = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Time_t int32\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\t_       int32\n\tAtim    Timespec\n\t_       int32\n\tMtim    Timespec\n\t_       int32\n\tCtim    Timespec\n\t_       int32\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tFs     uint32\n\tEs     uint32\n\tDs     uint32\n\tEdi    uint32\n\tEsi    uint32\n\tEbp    uint32\n\tIsp    uint32\n\tEbx    uint32\n\tEdx    uint32\n\tEcx    uint32\n\tEax    uint32\n\tTrapno uint32\n\tErr    uint32\n\tEip    uint32\n\tCs     uint32\n\tEflags uint32\n\tEsp    uint32\n\tSs     uint32\n\tGs     uint32\n}\n\ntype FpReg struct {\n\tEnv   [7]uint32\n\tAcc   [8][10]uint8\n\tEx_sw uint32\n\tPad   [64]uint8\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x60\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x50\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\tEpoch       int32\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x14\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR15    int64\n\tR14    int64\n\tR13    int64\n\tR12    int64\n\tR11    int64\n\tR10    int64\n\tR9     int64\n\tR8     int64\n\tRdi    int64\n\tRsi    int64\n\tRbp    int64\n\tRbx    int64\n\tRdx    int64\n\tRcx    int64\n\tRax    int64\n\tTrapno uint32\n\tFs     uint16\n\tGs     uint16\n\tErr    uint32\n\tEs     uint16\n\tDs     uint16\n\tRip    int64\n\tCs     int64\n\tRflags int64\n\tRsp    int64\n\tSs     int64\n}\n\ntype FpReg struct {\n\tEnv   [4]uint64\n\tAcc   [8][16]uint8\n\tXacc  [16][16]uint8\n\tSpare [12]uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR    [13]uint32\n\tSp   uint32\n\tLr   uint32\n\tPc   uint32\n\tCpsr uint32\n}\n\ntype FpReg struct {\n\tFpsr uint32\n\tFpr  [8]FpExtendedPrecision\n}\n\ntype FpExtendedPrecision struct {\n\tExponent    uint32\n\tMantissa_hi uint32\n\tMantissa_lo uint32\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x70\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x60\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\t_           [4]byte\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tX    [30]uint64\n\tLr   uint64\n\tSp   uint64\n\tElr  uint64\n\tSpsr uint32\n\t_    [4]byte\n}\n\ntype FpReg struct {\n\tQ  [32][16]uint8\n\tSr uint32\n\tCr uint32\n\t_  [8]byte\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tRa      uint64\n\tSp      uint64\n\tGp      uint64\n\tTp      uint64\n\tT       [7]uint64\n\tS       [12]uint64\n\tA       [8]uint64\n\tSepc    uint64\n\tSstatus uint64\n}\n\ntype FpReg struct {\n\tX    [32][2]uint64\n\tFcsr uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tNhidx    uint64\n\tFiller   [2]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nconst (\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short int16\n\t_C_int   int32\n\n\t_C_long_long int64\n)\n\ntype ItimerSpec struct {\n\tInterval Timespec\n\tValue    Timespec\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\nconst (\n\tADJ_OFFSET            = 0x1\n\tADJ_FREQUENCY         = 0x2\n\tADJ_MAXERROR          = 0x4\n\tADJ_ESTERROR          = 0x8\n\tADJ_STATUS            = 0x10\n\tADJ_TIMECONST         = 0x20\n\tADJ_TAI               = 0x80\n\tADJ_SETOFFSET         = 0x100\n\tADJ_MICRO             = 0x1000\n\tADJ_NANO              = 0x2000\n\tADJ_TICK              = 0x4000\n\tADJ_OFFSET_SINGLESHOT = 0x8001\n\tADJ_OFFSET_SS_READ    = 0xa001\n)\n\nconst (\n\tSTA_PLL       = 0x1\n\tSTA_PPSFREQ   = 0x2\n\tSTA_PPSTIME   = 0x4\n\tSTA_FLL       = 0x8\n\tSTA_INS       = 0x10\n\tSTA_DEL       = 0x20\n\tSTA_UNSYNC    = 0x40\n\tSTA_FREQHOLD  = 0x80\n\tSTA_PPSSIGNAL = 0x100\n\tSTA_PPSJITTER = 0x200\n\tSTA_PPSWANDER = 0x400\n\tSTA_PPSERROR  = 0x800\n\tSTA_CLOCKERR  = 0x1000\n\tSTA_NANO      = 0x2000\n\tSTA_MODE      = 0x4000\n\tSTA_CLK       = 0x8000\n)\n\nconst (\n\tTIME_OK    = 0x0\n\tTIME_INS   = 0x1\n\tTIME_DEL   = 0x2\n\tTIME_OOP   = 0x3\n\tTIME_WAIT  = 0x4\n\tTIME_ERROR = 0x5\n\tTIME_BAD   = 0x5\n)\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask                      uint32\n\tBlksize                   uint32\n\tAttributes                uint64\n\tNlink                     uint32\n\tUid                       uint32\n\tGid                       uint32\n\tMode                      uint16\n\t_                         [1]uint16\n\tIno                       uint64\n\tSize                      uint64\n\tBlocks                    uint64\n\tAttributes_mask           uint64\n\tAtime                     StatxTimestamp\n\tBtime                     StatxTimestamp\n\tCtime                     StatxTimestamp\n\tMtime                     StatxTimestamp\n\tRdev_major                uint32\n\tRdev_minor                uint32\n\tDev_major                 uint32\n\tDev_minor                 uint32\n\tMnt_id                    uint64\n\tDio_mem_align             uint32\n\tDio_offset_align          uint32\n\tSubvol                    uint64\n\tAtomic_write_unit_min     uint32\n\tAtomic_write_unit_max     uint32\n\tAtomic_write_segments_max uint32\n\tDio_read_offset_align     uint32\n\tAtomic_write_unit_max_opt uint32\n\t_                         [1]uint32\n\t_                         [8]uint64\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype FileCloneRange struct {\n\tSrc_fd      int64\n\tSrc_offset  uint64\n\tSrc_length  uint64\n\tDest_offset uint64\n}\n\ntype RawFileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tDest_count uint16\n\tReserved1  uint16\n\tReserved2  uint32\n}\n\ntype RawFileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\nconst (\n\tSizeofRawFileDedupeRange     = 0x18\n\tSizeofRawFileDedupeRangeInfo = 0x20\n\tFILE_DEDUPE_RANGE_SAME       = 0x0\n\tFILE_DEDUPE_RANGE_DIFFERS    = 0x1\n)\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype FscryptPolicyV1 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptPolicyV2 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tLog2_data_unit_size       uint8\n\t_                         [3]uint8\n\tMaster_key_identifier     [16]uint8\n}\n\ntype FscryptGetPolicyExArg struct {\n\tSize   uint64\n\tPolicy [24]byte\n}\n\ntype FscryptKeySpecifier struct {\n\tType uint32\n\t_    uint32\n\tU    [32]byte\n}\n\ntype FscryptAddKeyArg struct {\n\tKey_spec FscryptKeySpecifier\n\tRaw_size uint32\n\tKey_id   uint32\n\tFlags    uint32\n\t_        [7]uint32\n}\n\ntype FscryptRemoveKeyArg struct {\n\tKey_spec             FscryptKeySpecifier\n\tRemoval_status_flags uint32\n\t_                    [5]uint32\n}\n\ntype FscryptGetKeyStatusArg struct {\n\tKey_spec     FscryptKeySpecifier\n\t_            [6]uint32\n\tStatus       uint32\n\tStatus_flags uint32\n\tUser_count   uint32\n\t_            [13]uint32\n}\n\ntype DmIoctl struct {\n\tVersion      [3]uint32\n\tData_size    uint32\n\tData_start   uint32\n\tTarget_count uint32\n\tOpen_count   int32\n\tFlags        uint32\n\tEvent_nr     uint32\n\t_            uint32\n\tDev          uint64\n\tName         [128]byte\n\tUuid         [129]byte\n\tData         [7]byte\n}\n\ntype DmTargetSpec struct {\n\tSector_start uint64\n\tLength       uint64\n\tStatus       int32\n\tNext         uint32\n\tTarget_type  [16]byte\n}\n\ntype DmTargetDeps struct {\n\tCount uint32\n\t_     uint32\n}\n\ntype DmTargetVersions struct {\n\tNext    uint32\n\tVersion [3]uint32\n}\n\ntype DmTargetMsg struct {\n\tSector uint64\n}\n\nconst (\n\tSizeofDmIoctl      = 0x138\n\tSizeofDmTargetSpec = 0x28\n)\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [16]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tFlags     uint8\n\tZero      [3]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddrL2TPIP struct {\n\tFamily  uint16\n\tUnused  uint16\n\tAddr    [4]byte /* in_addr */\n\tConn_id uint32\n\t_       [4]uint8\n}\n\ntype RawSockaddrL2TPIP6 struct {\n\tFamily   uint16\n\tUnused   uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\tConn_id  uint32\n}\n\ntype RawSockaddrIUCV struct {\n\tFamily  uint16\n\tPort    uint16\n\tAddr    uint32\n\tNodeid  [8]int8\n\tUser_id [8]int8\n\tName    [8]int8\n}\n\ntype RawSockaddrNFC struct {\n\tSa_family    uint16\n\tDev_idx      uint32\n\tTarget_idx   uint32\n\tNfc_protocol uint32\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState                uint8\n\tCa_state             uint8\n\tRetransmits          uint8\n\tProbes               uint8\n\tBackoff              uint8\n\tOptions              uint8\n\tRto                  uint32\n\tAto                  uint32\n\tSnd_mss              uint32\n\tRcv_mss              uint32\n\tUnacked              uint32\n\tSacked               uint32\n\tLost                 uint32\n\tRetrans              uint32\n\tFackets              uint32\n\tLast_data_sent       uint32\n\tLast_ack_sent        uint32\n\tLast_data_recv       uint32\n\tLast_ack_recv        uint32\n\tPmtu                 uint32\n\tRcv_ssthresh         uint32\n\tRtt                  uint32\n\tRttvar               uint32\n\tSnd_ssthresh         uint32\n\tSnd_cwnd             uint32\n\tAdvmss               uint32\n\tReordering           uint32\n\tRcv_rtt              uint32\n\tRcv_space            uint32\n\tTotal_retrans        uint32\n\tPacing_rate          uint64\n\tMax_pacing_rate      uint64\n\tBytes_acked          uint64\n\tBytes_received       uint64\n\tSegs_out             uint32\n\tSegs_in              uint32\n\tNotsent_bytes        uint32\n\tMin_rtt              uint32\n\tData_segs_in         uint32\n\tData_segs_out        uint32\n\tDelivery_rate        uint64\n\tBusy_time            uint64\n\tRwnd_limited         uint64\n\tSndbuf_limited       uint64\n\tDelivered            uint32\n\tDelivered_ce         uint32\n\tBytes_sent           uint64\n\tBytes_retrans        uint64\n\tDsack_dups           uint32\n\tReord_seen           uint32\n\tRcv_ooopack          uint32\n\tSnd_wnd              uint32\n\tRcv_wnd              uint32\n\tRehash               uint32\n\tTotal_rto            uint16\n\tTotal_rto_recoveries uint16\n\tTotal_rto_time       uint32\n}\n\ntype TCPVegasInfo struct {\n\tEnabled uint32\n\tRttcnt  uint32\n\tRtt     uint32\n\tMinrtt  uint32\n}\n\ntype TCPDCTCPInfo struct {\n\tEnabled  uint16\n\tCe_state uint16\n\tAlpha    uint32\n\tAb_ecn   uint32\n\tAb_tot   uint32\n}\n\ntype TCPBBRInfo struct {\n\tBw_lo       uint32\n\tBw_hi       uint32\n\tMin_rtt     uint32\n\tPacing_gain uint32\n\tCwnd_gain   uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\ntype TCPRepairOpt struct {\n\tCode uint32\n\tVal  uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x18\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofSockaddrL2TPIP    = 0x10\n\tSizeofSockaddrL2TPIP6   = 0x20\n\tSizeofSockaddrIUCV      = 0x20\n\tSizeofSockaddrNFC       = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0xf8\n\tSizeofTCPCCInfo         = 0x14\n\tSizeofCanFilter         = 0x8\n\tSizeofTCPRepairOpt      = 0x8\n)\n\nconst (\n\tNDA_UNSPEC         = 0x0\n\tNDA_DST            = 0x1\n\tNDA_LLADDR         = 0x2\n\tNDA_CACHEINFO      = 0x3\n\tNDA_PROBES         = 0x4\n\tNDA_VLAN           = 0x5\n\tNDA_PORT           = 0x6\n\tNDA_VNI            = 0x7\n\tNDA_IFINDEX        = 0x8\n\tNDA_MASTER         = 0x9\n\tNDA_LINK_NETNSID   = 0xa\n\tNDA_SRC_VNI        = 0xb\n\tNTF_USE            = 0x1\n\tNTF_SELF           = 0x2\n\tNTF_MASTER         = 0x4\n\tNTF_PROXY          = 0x8\n\tNTF_EXT_LEARNED    = 0x10\n\tNTF_OFFLOADED      = 0x20\n\tNTF_ROUTER         = 0x80\n\tNUD_INCOMPLETE     = 0x1\n\tNUD_REACHABLE      = 0x2\n\tNUD_STALE          = 0x4\n\tNUD_DELAY          = 0x8\n\tNUD_PROBE          = 0x10\n\tNUD_FAILED         = 0x20\n\tNUD_NOARP          = 0x40\n\tNUD_PERMANENT      = 0x80\n\tNUD_NONE           = 0x0\n\tIFA_UNSPEC         = 0x0\n\tIFA_ADDRESS        = 0x1\n\tIFA_LOCAL          = 0x2\n\tIFA_LABEL          = 0x3\n\tIFA_BROADCAST      = 0x4\n\tIFA_ANYCAST        = 0x5\n\tIFA_CACHEINFO      = 0x6\n\tIFA_MULTICAST      = 0x7\n\tIFA_FLAGS          = 0x8\n\tIFA_RT_PRIORITY    = 0x9\n\tIFA_TARGET_NETNSID = 0xa\n\tIFAL_LABEL         = 0x2\n\tIFAL_ADDRESS       = 0x1\n\tRT_SCOPE_UNIVERSE  = 0x0\n\tRT_SCOPE_SITE      = 0xc8\n\tRT_SCOPE_LINK      = 0xfd\n\tRT_SCOPE_HOST      = 0xfe\n\tRT_SCOPE_NOWHERE   = 0xff\n\tRT_TABLE_UNSPEC    = 0x0\n\tRT_TABLE_COMPAT    = 0xfc\n\tRT_TABLE_DEFAULT   = 0xfd\n\tRT_TABLE_MAIN      = 0xfe\n\tRT_TABLE_LOCAL     = 0xff\n\tRT_TABLE_MAX       = 0xffffffff\n\tRTA_UNSPEC         = 0x0\n\tRTA_DST            = 0x1\n\tRTA_SRC            = 0x2\n\tRTA_IIF            = 0x3\n\tRTA_OIF            = 0x4\n\tRTA_GATEWAY        = 0x5\n\tRTA_PRIORITY       = 0x6\n\tRTA_PREFSRC        = 0x7\n\tRTA_METRICS        = 0x8\n\tRTA_MULTIPATH      = 0x9\n\tRTA_FLOW           = 0xb\n\tRTA_CACHEINFO      = 0xc\n\tRTA_TABLE          = 0xf\n\tRTA_MARK           = 0x10\n\tRTA_MFC_STATS      = 0x11\n\tRTA_VIA            = 0x12\n\tRTA_NEWDST         = 0x13\n\tRTA_PREF           = 0x14\n\tRTA_ENCAP_TYPE     = 0x15\n\tRTA_ENCAP          = 0x16\n\tRTA_EXPIRES        = 0x17\n\tRTA_PAD            = 0x18\n\tRTA_UID            = 0x19\n\tRTA_TTL_PROPAGATE  = 0x1a\n\tRTA_IP_PROTO       = 0x1b\n\tRTA_SPORT          = 0x1c\n\tRTA_DPORT          = 0x1d\n\tRTN_UNSPEC         = 0x0\n\tRTN_UNICAST        = 0x1\n\tRTN_LOCAL          = 0x2\n\tRTN_BROADCAST      = 0x3\n\tRTN_ANYCAST        = 0x4\n\tRTN_MULTICAST      = 0x5\n\tRTN_BLACKHOLE      = 0x6\n\tRTN_UNREACHABLE    = 0x7\n\tRTN_PROHIBIT       = 0x8\n\tRTN_THROW          = 0x9\n\tRTN_NAT            = 0xa\n\tRTN_XRESOLVE       = 0xb\n\tSizeofNlMsghdr     = 0x10\n\tSizeofNlMsgerr     = 0x14\n\tSizeofRtGenmsg     = 0x1\n\tSizeofNlAttr       = 0x4\n\tSizeofRtAttr       = 0x4\n\tSizeofIfInfomsg    = 0x10\n\tSizeofIfAddrmsg    = 0x8\n\tSizeofIfAddrlblmsg = 0xc\n\tSizeofIfaCacheinfo = 0x10\n\tSizeofRtMsg        = 0xc\n\tSizeofRtNexthop    = 0x8\n\tSizeofNdUseroptmsg = 0x10\n\tSizeofNdMsg        = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfAddrlblmsg struct {\n\tFamily    uint8\n\t_         uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tIndex     uint32\n\tSeq       uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tICMP_FILTER = 0x1\n\n\tICMPV6_FILTER             = 0x1\n\tICMPV6_FILTER_BLOCK       = 0x1\n\tICMPV6_FILTER_BLOCKOTHERS = 0x3\n\tICMPV6_FILTER_PASS        = 0x2\n\tICMPV6_FILTER_PASSONLY    = 0x4\n)\n\nconst (\n\tSizeofSockFilter = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\nconst SI_LOAD_SHIFT = 0x10\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_RECURSIVE = 0x8000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n\n\tOPEN_TREE_CLONE = 0x1\n\n\tMOVE_MOUNT_F_SYMLINKS   = 0x1\n\tMOVE_MOUNT_F_AUTOMOUNTS = 0x2\n\tMOVE_MOUNT_F_EMPTY_PATH = 0x4\n\tMOVE_MOUNT_T_SYMLINKS   = 0x10\n\tMOVE_MOUNT_T_AUTOMOUNTS = 0x20\n\tMOVE_MOUNT_T_EMPTY_PATH = 0x40\n\tMOVE_MOUNT_SET_GROUP    = 0x100\n\n\tFSOPEN_CLOEXEC = 0x1\n\n\tFSPICK_CLOEXEC          = 0x1\n\tFSPICK_SYMLINK_NOFOLLOW = 0x2\n\tFSPICK_NO_AUTOMOUNT     = 0x4\n\tFSPICK_EMPTY_PATH       = 0x8\n\n\tFSMOUNT_CLOEXEC = 0x1\n\n\tFSCONFIG_SET_FLAG        = 0x0\n\tFSCONFIG_SET_STRING      = 0x1\n\tFSCONFIG_SET_BINARY      = 0x2\n\tFSCONFIG_SET_PATH        = 0x3\n\tFSCONFIG_SET_PATH_EMPTY  = 0x4\n\tFSCONFIG_SET_FD          = 0x5\n\tFSCONFIG_CMD_CREATE      = 0x6\n\tFSCONFIG_CMD_RECONFIGURE = 0x7\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN   = 0x1\n\tPOLLPRI  = 0x2\n\tPOLLOUT  = 0x4\n\tPOLLERR  = 0x8\n\tPOLLHUP  = 0x10\n\tPOLLNVAL = 0x20\n)\n\ntype sigset_argpack struct {\n\tss    *Sigset_t\n\tssLen uintptr\n}\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_CMD_GETPOLICY         = 0xa\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_POLICY           = 0x8\n\tCTRL_ATTR_OP_POLICY        = 0x9\n\tCTRL_ATTR_OP               = 0xa\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n\tCTRL_ATTR_POLICY_UNSPEC    = 0x0\n\tCTRL_ATTR_POLICY_DO        = 0x1\n\tCTRL_ATTR_POLICY_DUMP      = 0x2\n\tCTRL_ATTR_POLICY_DUMP_MAX  = 0x2\n)\n\nconst (\n\t_CPU_SETSIZE = 0x400\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n\tAux_sample_size    uint32\n\t_                  uint32\n\tSig_data           uint64\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              uint32\n\tTime_cycles    uint64\n\tTime_mask      uint64\n\t_              [928]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n\tPerfBitWriteBackward                 = CBitFieldMaskBit27\n)\n\nconst (\n\tPERF_TYPE_HARDWARE                    = 0x0\n\tPERF_TYPE_SOFTWARE                    = 0x1\n\tPERF_TYPE_TRACEPOINT                  = 0x2\n\tPERF_TYPE_HW_CACHE                    = 0x3\n\tPERF_TYPE_RAW                         = 0x4\n\tPERF_TYPE_BREAKPOINT                  = 0x5\n\tPERF_TYPE_MAX                         = 0x6\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\tPERF_COUNT_HW_MAX                     = 0xa\n\tPERF_COUNT_HW_CACHE_L1D               = 0x0\n\tPERF_COUNT_HW_CACHE_L1I               = 0x1\n\tPERF_COUNT_HW_CACHE_LL                = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB              = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB              = 0x4\n\tPERF_COUNT_HW_CACHE_BPU               = 0x5\n\tPERF_COUNT_HW_CACHE_NODE              = 0x6\n\tPERF_COUNT_HW_CACHE_MAX               = 0x7\n\tPERF_COUNT_HW_CACHE_OP_READ           = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE          = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH       = 0x2\n\tPERF_COUNT_HW_CACHE_OP_MAX            = 0x3\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS     = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS       = 0x1\n\tPERF_COUNT_HW_CACHE_RESULT_MAX        = 0x2\n\tPERF_COUNT_SW_CPU_CLOCK               = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK              = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS             = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES        = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS          = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN         = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ         = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS        = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS        = 0x8\n\tPERF_COUNT_SW_DUMMY                   = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT              = 0xa\n\tPERF_COUNT_SW_MAX                     = 0xc\n\tPERF_SAMPLE_IP                        = 0x1\n\tPERF_SAMPLE_TID                       = 0x2\n\tPERF_SAMPLE_TIME                      = 0x4\n\tPERF_SAMPLE_ADDR                      = 0x8\n\tPERF_SAMPLE_READ                      = 0x10\n\tPERF_SAMPLE_CALLCHAIN                 = 0x20\n\tPERF_SAMPLE_ID                        = 0x40\n\tPERF_SAMPLE_CPU                       = 0x80\n\tPERF_SAMPLE_PERIOD                    = 0x100\n\tPERF_SAMPLE_STREAM_ID                 = 0x200\n\tPERF_SAMPLE_RAW                       = 0x400\n\tPERF_SAMPLE_BRANCH_STACK              = 0x800\n\tPERF_SAMPLE_REGS_USER                 = 0x1000\n\tPERF_SAMPLE_STACK_USER                = 0x2000\n\tPERF_SAMPLE_WEIGHT                    = 0x4000\n\tPERF_SAMPLE_DATA_SRC                  = 0x8000\n\tPERF_SAMPLE_IDENTIFIER                = 0x10000\n\tPERF_SAMPLE_TRANSACTION               = 0x20000\n\tPERF_SAMPLE_REGS_INTR                 = 0x40000\n\tPERF_SAMPLE_PHYS_ADDR                 = 0x80000\n\tPERF_SAMPLE_AUX                       = 0x100000\n\tPERF_SAMPLE_CGROUP                    = 0x200000\n\tPERF_SAMPLE_DATA_PAGE_SIZE            = 0x400000\n\tPERF_SAMPLE_CODE_PAGE_SIZE            = 0x800000\n\tPERF_SAMPLE_WEIGHT_STRUCT             = 0x1000000\n\tPERF_SAMPLE_MAX                       = 0x2000000\n\tPERF_SAMPLE_BRANCH_USER_SHIFT         = 0x0\n\tPERF_SAMPLE_BRANCH_KERNEL_SHIFT       = 0x1\n\tPERF_SAMPLE_BRANCH_HV_SHIFT           = 0x2\n\tPERF_SAMPLE_BRANCH_ANY_SHIFT          = 0x3\n\tPERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = 0x4\n\tPERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = 0x5\n\tPERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = 0x6\n\tPERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = 0x7\n\tPERF_SAMPLE_BRANCH_IN_TX_SHIFT        = 0x8\n\tPERF_SAMPLE_BRANCH_NO_TX_SHIFT        = 0x9\n\tPERF_SAMPLE_BRANCH_COND_SHIFT         = 0xa\n\tPERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = 0xb\n\tPERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = 0xc\n\tPERF_SAMPLE_BRANCH_CALL_SHIFT         = 0xd\n\tPERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = 0xe\n\tPERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = 0xf\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = 0x10\n\tPERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = 0x11\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT    = 0x12\n\tPERF_SAMPLE_BRANCH_COUNTERS           = 0x80000\n\tPERF_SAMPLE_BRANCH_MAX_SHIFT          = 0x14\n\tPERF_SAMPLE_BRANCH_USER               = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL             = 0x2\n\tPERF_SAMPLE_BRANCH_HV                 = 0x4\n\tPERF_SAMPLE_BRANCH_ANY                = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL           = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN         = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL           = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX           = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX              = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX              = 0x200\n\tPERF_SAMPLE_BRANCH_COND               = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK         = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP           = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL               = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS           = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES          = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE          = 0x10000\n\tPERF_SAMPLE_BRANCH_HW_INDEX           = 0x20000\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE          = 0x40000\n\tPERF_SAMPLE_BRANCH_MAX                = 0x100000\n\tPERF_BR_UNKNOWN                       = 0x0\n\tPERF_BR_COND                          = 0x1\n\tPERF_BR_UNCOND                        = 0x2\n\tPERF_BR_IND                           = 0x3\n\tPERF_BR_CALL                          = 0x4\n\tPERF_BR_IND_CALL                      = 0x5\n\tPERF_BR_RET                           = 0x6\n\tPERF_BR_SYSCALL                       = 0x7\n\tPERF_BR_SYSRET                        = 0x8\n\tPERF_BR_COND_CALL                     = 0x9\n\tPERF_BR_COND_RET                      = 0xa\n\tPERF_BR_ERET                          = 0xb\n\tPERF_BR_IRQ                           = 0xc\n\tPERF_BR_SERROR                        = 0xd\n\tPERF_BR_NO_TX                         = 0xe\n\tPERF_BR_EXTEND_ABI                    = 0xf\n\tPERF_BR_MAX                           = 0x10\n\tPERF_SAMPLE_REGS_ABI_NONE             = 0x0\n\tPERF_SAMPLE_REGS_ABI_32               = 0x1\n\tPERF_SAMPLE_REGS_ABI_64               = 0x2\n\tPERF_TXN_ELISION                      = 0x1\n\tPERF_TXN_TRANSACTION                  = 0x2\n\tPERF_TXN_SYNC                         = 0x4\n\tPERF_TXN_ASYNC                        = 0x8\n\tPERF_TXN_RETRY                        = 0x10\n\tPERF_TXN_CONFLICT                     = 0x20\n\tPERF_TXN_CAPACITY_WRITE               = 0x40\n\tPERF_TXN_CAPACITY_READ                = 0x80\n\tPERF_TXN_MAX                          = 0x100\n\tPERF_TXN_ABORT_MASK                   = -0x100000000\n\tPERF_TXN_ABORT_SHIFT                  = 0x20\n\tPERF_FORMAT_TOTAL_TIME_ENABLED        = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING        = 0x2\n\tPERF_FORMAT_ID                        = 0x4\n\tPERF_FORMAT_GROUP                     = 0x8\n\tPERF_FORMAT_LOST                      = 0x10\n\tPERF_FORMAT_MAX                       = 0x20\n\tPERF_IOC_FLAG_GROUP                   = 0x1\n\tPERF_RECORD_MMAP                      = 0x1\n\tPERF_RECORD_LOST                      = 0x2\n\tPERF_RECORD_COMM                      = 0x3\n\tPERF_RECORD_EXIT                      = 0x4\n\tPERF_RECORD_THROTTLE                  = 0x5\n\tPERF_RECORD_UNTHROTTLE                = 0x6\n\tPERF_RECORD_FORK                      = 0x7\n\tPERF_RECORD_READ                      = 0x8\n\tPERF_RECORD_SAMPLE                    = 0x9\n\tPERF_RECORD_MMAP2                     = 0xa\n\tPERF_RECORD_AUX                       = 0xb\n\tPERF_RECORD_ITRACE_START              = 0xc\n\tPERF_RECORD_LOST_SAMPLES              = 0xd\n\tPERF_RECORD_SWITCH                    = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE           = 0xf\n\tPERF_RECORD_NAMESPACES                = 0x10\n\tPERF_RECORD_KSYMBOL                   = 0x11\n\tPERF_RECORD_BPF_EVENT                 = 0x12\n\tPERF_RECORD_CGROUP                    = 0x13\n\tPERF_RECORD_TEXT_POKE                 = 0x14\n\tPERF_RECORD_AUX_OUTPUT_HW_ID          = 0x15\n\tPERF_RECORD_MAX                       = 0x16\n\tPERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = 0x0\n\tPERF_RECORD_KSYMBOL_TYPE_BPF          = 0x1\n\tPERF_RECORD_KSYMBOL_TYPE_OOL          = 0x2\n\tPERF_RECORD_KSYMBOL_TYPE_MAX          = 0x3\n\tPERF_BPF_EVENT_UNKNOWN                = 0x0\n\tPERF_BPF_EVENT_PROG_LOAD              = 0x1\n\tPERF_BPF_EVENT_PROG_UNLOAD            = 0x2\n\tPERF_BPF_EVENT_MAX                    = 0x3\n\tPERF_CONTEXT_HV                       = -0x20\n\tPERF_CONTEXT_KERNEL                   = -0x80\n\tPERF_CONTEXT_USER                     = -0x200\n\tPERF_CONTEXT_GUEST                    = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL             = -0x880\n\tPERF_CONTEXT_GUEST_USER               = -0xa00\n\tPERF_CONTEXT_MAX                      = -0xfff\n)\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\tIfindex   int32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tIFLA_UNSPEC                                = 0x0\n\tIFLA_ADDRESS                               = 0x1\n\tIFLA_BROADCAST                             = 0x2\n\tIFLA_IFNAME                                = 0x3\n\tIFLA_MTU                                   = 0x4\n\tIFLA_LINK                                  = 0x5\n\tIFLA_QDISC                                 = 0x6\n\tIFLA_STATS                                 = 0x7\n\tIFLA_COST                                  = 0x8\n\tIFLA_PRIORITY                              = 0x9\n\tIFLA_MASTER                                = 0xa\n\tIFLA_WIRELESS                              = 0xb\n\tIFLA_PROTINFO                              = 0xc\n\tIFLA_TXQLEN                                = 0xd\n\tIFLA_MAP                                   = 0xe\n\tIFLA_WEIGHT                                = 0xf\n\tIFLA_OPERSTATE                             = 0x10\n\tIFLA_LINKMODE                              = 0x11\n\tIFLA_LINKINFO                              = 0x12\n\tIFLA_NET_NS_PID                            = 0x13\n\tIFLA_IFALIAS                               = 0x14\n\tIFLA_NUM_VF                                = 0x15\n\tIFLA_VFINFO_LIST                           = 0x16\n\tIFLA_STATS64                               = 0x17\n\tIFLA_VF_PORTS                              = 0x18\n\tIFLA_PORT_SELF                             = 0x19\n\tIFLA_AF_SPEC                               = 0x1a\n\tIFLA_GROUP                                 = 0x1b\n\tIFLA_NET_NS_FD                             = 0x1c\n\tIFLA_EXT_MASK                              = 0x1d\n\tIFLA_PROMISCUITY                           = 0x1e\n\tIFLA_NUM_TX_QUEUES                         = 0x1f\n\tIFLA_NUM_RX_QUEUES                         = 0x20\n\tIFLA_CARRIER                               = 0x21\n\tIFLA_PHYS_PORT_ID                          = 0x22\n\tIFLA_CARRIER_CHANGES                       = 0x23\n\tIFLA_PHYS_SWITCH_ID                        = 0x24\n\tIFLA_LINK_NETNSID                          = 0x25\n\tIFLA_PHYS_PORT_NAME                        = 0x26\n\tIFLA_PROTO_DOWN                            = 0x27\n\tIFLA_GSO_MAX_SEGS                          = 0x28\n\tIFLA_GSO_MAX_SIZE                          = 0x29\n\tIFLA_PAD                                   = 0x2a\n\tIFLA_XDP                                   = 0x2b\n\tIFLA_EVENT                                 = 0x2c\n\tIFLA_NEW_NETNSID                           = 0x2d\n\tIFLA_IF_NETNSID                            = 0x2e\n\tIFLA_TARGET_NETNSID                        = 0x2e\n\tIFLA_CARRIER_UP_COUNT                      = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT                    = 0x30\n\tIFLA_NEW_IFINDEX                           = 0x31\n\tIFLA_MIN_MTU                               = 0x32\n\tIFLA_MAX_MTU                               = 0x33\n\tIFLA_PROP_LIST                             = 0x34\n\tIFLA_ALT_IFNAME                            = 0x35\n\tIFLA_PERM_ADDRESS                          = 0x36\n\tIFLA_PROTO_DOWN_REASON                     = 0x37\n\tIFLA_PARENT_DEV_NAME                       = 0x38\n\tIFLA_PARENT_DEV_BUS_NAME                   = 0x39\n\tIFLA_GRO_MAX_SIZE                          = 0x3a\n\tIFLA_TSO_MAX_SIZE                          = 0x3b\n\tIFLA_TSO_MAX_SEGS                          = 0x3c\n\tIFLA_ALLMULTI                              = 0x3d\n\tIFLA_DEVLINK_PORT                          = 0x3e\n\tIFLA_GSO_IPV4_MAX_SIZE                     = 0x3f\n\tIFLA_GRO_IPV4_MAX_SIZE                     = 0x40\n\tIFLA_DPLL_PIN                              = 0x41\n\tIFLA_PROTO_DOWN_REASON_UNSPEC              = 0x0\n\tIFLA_PROTO_DOWN_REASON_MASK                = 0x1\n\tIFLA_PROTO_DOWN_REASON_VALUE               = 0x2\n\tIFLA_PROTO_DOWN_REASON_MAX                 = 0x2\n\tIFLA_INET_UNSPEC                           = 0x0\n\tIFLA_INET_CONF                             = 0x1\n\tIFLA_INET6_UNSPEC                          = 0x0\n\tIFLA_INET6_FLAGS                           = 0x1\n\tIFLA_INET6_CONF                            = 0x2\n\tIFLA_INET6_STATS                           = 0x3\n\tIFLA_INET6_MCAST                           = 0x4\n\tIFLA_INET6_CACHEINFO                       = 0x5\n\tIFLA_INET6_ICMP6STATS                      = 0x6\n\tIFLA_INET6_TOKEN                           = 0x7\n\tIFLA_INET6_ADDR_GEN_MODE                   = 0x8\n\tIFLA_INET6_RA_MTU                          = 0x9\n\tIFLA_BR_UNSPEC                             = 0x0\n\tIFLA_BR_FORWARD_DELAY                      = 0x1\n\tIFLA_BR_HELLO_TIME                         = 0x2\n\tIFLA_BR_MAX_AGE                            = 0x3\n\tIFLA_BR_AGEING_TIME                        = 0x4\n\tIFLA_BR_STP_STATE                          = 0x5\n\tIFLA_BR_PRIORITY                           = 0x6\n\tIFLA_BR_VLAN_FILTERING                     = 0x7\n\tIFLA_BR_VLAN_PROTOCOL                      = 0x8\n\tIFLA_BR_GROUP_FWD_MASK                     = 0x9\n\tIFLA_BR_ROOT_ID                            = 0xa\n\tIFLA_BR_BRIDGE_ID                          = 0xb\n\tIFLA_BR_ROOT_PORT                          = 0xc\n\tIFLA_BR_ROOT_PATH_COST                     = 0xd\n\tIFLA_BR_TOPOLOGY_CHANGE                    = 0xe\n\tIFLA_BR_TOPOLOGY_CHANGE_DETECTED           = 0xf\n\tIFLA_BR_HELLO_TIMER                        = 0x10\n\tIFLA_BR_TCN_TIMER                          = 0x11\n\tIFLA_BR_TOPOLOGY_CHANGE_TIMER              = 0x12\n\tIFLA_BR_GC_TIMER                           = 0x13\n\tIFLA_BR_GROUP_ADDR                         = 0x14\n\tIFLA_BR_FDB_FLUSH                          = 0x15\n\tIFLA_BR_MCAST_ROUTER                       = 0x16\n\tIFLA_BR_MCAST_SNOOPING                     = 0x17\n\tIFLA_BR_MCAST_QUERY_USE_IFADDR             = 0x18\n\tIFLA_BR_MCAST_QUERIER                      = 0x19\n\tIFLA_BR_MCAST_HASH_ELASTICITY              = 0x1a\n\tIFLA_BR_MCAST_HASH_MAX                     = 0x1b\n\tIFLA_BR_MCAST_LAST_MEMBER_CNT              = 0x1c\n\tIFLA_BR_MCAST_STARTUP_QUERY_CNT            = 0x1d\n\tIFLA_BR_MCAST_LAST_MEMBER_INTVL            = 0x1e\n\tIFLA_BR_MCAST_MEMBERSHIP_INTVL             = 0x1f\n\tIFLA_BR_MCAST_QUERIER_INTVL                = 0x20\n\tIFLA_BR_MCAST_QUERY_INTVL                  = 0x21\n\tIFLA_BR_MCAST_QUERY_RESPONSE_INTVL         = 0x22\n\tIFLA_BR_MCAST_STARTUP_QUERY_INTVL          = 0x23\n\tIFLA_BR_NF_CALL_IPTABLES                   = 0x24\n\tIFLA_BR_NF_CALL_IP6TABLES                  = 0x25\n\tIFLA_BR_NF_CALL_ARPTABLES                  = 0x26\n\tIFLA_BR_VLAN_DEFAULT_PVID                  = 0x27\n\tIFLA_BR_PAD                                = 0x28\n\tIFLA_BR_VLAN_STATS_ENABLED                 = 0x29\n\tIFLA_BR_MCAST_STATS_ENABLED                = 0x2a\n\tIFLA_BR_MCAST_IGMP_VERSION                 = 0x2b\n\tIFLA_BR_MCAST_MLD_VERSION                  = 0x2c\n\tIFLA_BR_VLAN_STATS_PER_PORT                = 0x2d\n\tIFLA_BR_MULTI_BOOLOPT                      = 0x2e\n\tIFLA_BR_MCAST_QUERIER_STATE                = 0x2f\n\tIFLA_BR_FDB_N_LEARNED                      = 0x30\n\tIFLA_BR_FDB_MAX_LEARNED                    = 0x31\n\tIFLA_BRPORT_UNSPEC                         = 0x0\n\tIFLA_BRPORT_STATE                          = 0x1\n\tIFLA_BRPORT_PRIORITY                       = 0x2\n\tIFLA_BRPORT_COST                           = 0x3\n\tIFLA_BRPORT_MODE                           = 0x4\n\tIFLA_BRPORT_GUARD                          = 0x5\n\tIFLA_BRPORT_PROTECT                        = 0x6\n\tIFLA_BRPORT_FAST_LEAVE                     = 0x7\n\tIFLA_BRPORT_LEARNING                       = 0x8\n\tIFLA_BRPORT_UNICAST_FLOOD                  = 0x9\n\tIFLA_BRPORT_PROXYARP                       = 0xa\n\tIFLA_BRPORT_LEARNING_SYNC                  = 0xb\n\tIFLA_BRPORT_PROXYARP_WIFI                  = 0xc\n\tIFLA_BRPORT_ROOT_ID                        = 0xd\n\tIFLA_BRPORT_BRIDGE_ID                      = 0xe\n\tIFLA_BRPORT_DESIGNATED_PORT                = 0xf\n\tIFLA_BRPORT_DESIGNATED_COST                = 0x10\n\tIFLA_BRPORT_ID                             = 0x11\n\tIFLA_BRPORT_NO                             = 0x12\n\tIFLA_BRPORT_TOPOLOGY_CHANGE_ACK            = 0x13\n\tIFLA_BRPORT_CONFIG_PENDING                 = 0x14\n\tIFLA_BRPORT_MESSAGE_AGE_TIMER              = 0x15\n\tIFLA_BRPORT_FORWARD_DELAY_TIMER            = 0x16\n\tIFLA_BRPORT_HOLD_TIMER                     = 0x17\n\tIFLA_BRPORT_FLUSH                          = 0x18\n\tIFLA_BRPORT_MULTICAST_ROUTER               = 0x19\n\tIFLA_BRPORT_PAD                            = 0x1a\n\tIFLA_BRPORT_MCAST_FLOOD                    = 0x1b\n\tIFLA_BRPORT_MCAST_TO_UCAST                 = 0x1c\n\tIFLA_BRPORT_VLAN_TUNNEL                    = 0x1d\n\tIFLA_BRPORT_BCAST_FLOOD                    = 0x1e\n\tIFLA_BRPORT_GROUP_FWD_MASK                 = 0x1f\n\tIFLA_BRPORT_NEIGH_SUPPRESS                 = 0x20\n\tIFLA_BRPORT_ISOLATED                       = 0x21\n\tIFLA_BRPORT_BACKUP_PORT                    = 0x22\n\tIFLA_BRPORT_MRP_RING_OPEN                  = 0x23\n\tIFLA_BRPORT_MRP_IN_OPEN                    = 0x24\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT          = 0x25\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_CNT            = 0x26\n\tIFLA_BRPORT_LOCKED                         = 0x27\n\tIFLA_BRPORT_MAB                            = 0x28\n\tIFLA_BRPORT_MCAST_N_GROUPS                 = 0x29\n\tIFLA_BRPORT_MCAST_MAX_GROUPS               = 0x2a\n\tIFLA_BRPORT_NEIGH_VLAN_SUPPRESS            = 0x2b\n\tIFLA_BRPORT_BACKUP_NHID                    = 0x2c\n\tIFLA_INFO_UNSPEC                           = 0x0\n\tIFLA_INFO_KIND                             = 0x1\n\tIFLA_INFO_DATA                             = 0x2\n\tIFLA_INFO_XSTATS                           = 0x3\n\tIFLA_INFO_SLAVE_KIND                       = 0x4\n\tIFLA_INFO_SLAVE_DATA                       = 0x5\n\tIFLA_VLAN_UNSPEC                           = 0x0\n\tIFLA_VLAN_ID                               = 0x1\n\tIFLA_VLAN_FLAGS                            = 0x2\n\tIFLA_VLAN_EGRESS_QOS                       = 0x3\n\tIFLA_VLAN_INGRESS_QOS                      = 0x4\n\tIFLA_VLAN_PROTOCOL                         = 0x5\n\tIFLA_VLAN_QOS_UNSPEC                       = 0x0\n\tIFLA_VLAN_QOS_MAPPING                      = 0x1\n\tIFLA_MACVLAN_UNSPEC                        = 0x0\n\tIFLA_MACVLAN_MODE                          = 0x1\n\tIFLA_MACVLAN_FLAGS                         = 0x2\n\tIFLA_MACVLAN_MACADDR_MODE                  = 0x3\n\tIFLA_MACVLAN_MACADDR                       = 0x4\n\tIFLA_MACVLAN_MACADDR_DATA                  = 0x5\n\tIFLA_MACVLAN_MACADDR_COUNT                 = 0x6\n\tIFLA_MACVLAN_BC_QUEUE_LEN                  = 0x7\n\tIFLA_MACVLAN_BC_QUEUE_LEN_USED             = 0x8\n\tIFLA_MACVLAN_BC_CUTOFF                     = 0x9\n\tIFLA_VRF_UNSPEC                            = 0x0\n\tIFLA_VRF_TABLE                             = 0x1\n\tIFLA_VRF_PORT_UNSPEC                       = 0x0\n\tIFLA_VRF_PORT_TABLE                        = 0x1\n\tIFLA_MACSEC_UNSPEC                         = 0x0\n\tIFLA_MACSEC_SCI                            = 0x1\n\tIFLA_MACSEC_PORT                           = 0x2\n\tIFLA_MACSEC_ICV_LEN                        = 0x3\n\tIFLA_MACSEC_CIPHER_SUITE                   = 0x4\n\tIFLA_MACSEC_WINDOW                         = 0x5\n\tIFLA_MACSEC_ENCODING_SA                    = 0x6\n\tIFLA_MACSEC_ENCRYPT                        = 0x7\n\tIFLA_MACSEC_PROTECT                        = 0x8\n\tIFLA_MACSEC_INC_SCI                        = 0x9\n\tIFLA_MACSEC_ES                             = 0xa\n\tIFLA_MACSEC_SCB                            = 0xb\n\tIFLA_MACSEC_REPLAY_PROTECT                 = 0xc\n\tIFLA_MACSEC_VALIDATION                     = 0xd\n\tIFLA_MACSEC_PAD                            = 0xe\n\tIFLA_MACSEC_OFFLOAD                        = 0xf\n\tIFLA_XFRM_UNSPEC                           = 0x0\n\tIFLA_XFRM_LINK                             = 0x1\n\tIFLA_XFRM_IF_ID                            = 0x2\n\tIFLA_XFRM_COLLECT_METADATA                 = 0x3\n\tIFLA_IPVLAN_UNSPEC                         = 0x0\n\tIFLA_IPVLAN_MODE                           = 0x1\n\tIFLA_IPVLAN_FLAGS                          = 0x2\n\tIFLA_NETKIT_UNSPEC                         = 0x0\n\tIFLA_NETKIT_PEER_INFO                      = 0x1\n\tIFLA_NETKIT_PRIMARY                        = 0x2\n\tIFLA_NETKIT_POLICY                         = 0x3\n\tIFLA_NETKIT_PEER_POLICY                    = 0x4\n\tIFLA_NETKIT_MODE                           = 0x5\n\tIFLA_VXLAN_UNSPEC                          = 0x0\n\tIFLA_VXLAN_ID                              = 0x1\n\tIFLA_VXLAN_GROUP                           = 0x2\n\tIFLA_VXLAN_LINK                            = 0x3\n\tIFLA_VXLAN_LOCAL                           = 0x4\n\tIFLA_VXLAN_TTL                             = 0x5\n\tIFLA_VXLAN_TOS                             = 0x6\n\tIFLA_VXLAN_LEARNING                        = 0x7\n\tIFLA_VXLAN_AGEING                          = 0x8\n\tIFLA_VXLAN_LIMIT                           = 0x9\n\tIFLA_VXLAN_PORT_RANGE                      = 0xa\n\tIFLA_VXLAN_PROXY                           = 0xb\n\tIFLA_VXLAN_RSC                             = 0xc\n\tIFLA_VXLAN_L2MISS                          = 0xd\n\tIFLA_VXLAN_L3MISS                          = 0xe\n\tIFLA_VXLAN_PORT                            = 0xf\n\tIFLA_VXLAN_GROUP6                          = 0x10\n\tIFLA_VXLAN_LOCAL6                          = 0x11\n\tIFLA_VXLAN_UDP_CSUM                        = 0x12\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_TX               = 0x13\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_RX               = 0x14\n\tIFLA_VXLAN_REMCSUM_TX                      = 0x15\n\tIFLA_VXLAN_REMCSUM_RX                      = 0x16\n\tIFLA_VXLAN_GBP                             = 0x17\n\tIFLA_VXLAN_REMCSUM_NOPARTIAL               = 0x18\n\tIFLA_VXLAN_COLLECT_METADATA                = 0x19\n\tIFLA_VXLAN_LABEL                           = 0x1a\n\tIFLA_VXLAN_GPE                             = 0x1b\n\tIFLA_VXLAN_TTL_INHERIT                     = 0x1c\n\tIFLA_VXLAN_DF                              = 0x1d\n\tIFLA_VXLAN_VNIFILTER                       = 0x1e\n\tIFLA_VXLAN_LOCALBYPASS                     = 0x1f\n\tIFLA_VXLAN_LABEL_POLICY                    = 0x20\n\tIFLA_GENEVE_UNSPEC                         = 0x0\n\tIFLA_GENEVE_ID                             = 0x1\n\tIFLA_GENEVE_REMOTE                         = 0x2\n\tIFLA_GENEVE_TTL                            = 0x3\n\tIFLA_GENEVE_TOS                            = 0x4\n\tIFLA_GENEVE_PORT                           = 0x5\n\tIFLA_GENEVE_COLLECT_METADATA               = 0x6\n\tIFLA_GENEVE_REMOTE6                        = 0x7\n\tIFLA_GENEVE_UDP_CSUM                       = 0x8\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_TX              = 0x9\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_RX              = 0xa\n\tIFLA_GENEVE_LABEL                          = 0xb\n\tIFLA_GENEVE_TTL_INHERIT                    = 0xc\n\tIFLA_GENEVE_DF                             = 0xd\n\tIFLA_GENEVE_INNER_PROTO_INHERIT            = 0xe\n\tIFLA_BAREUDP_UNSPEC                        = 0x0\n\tIFLA_BAREUDP_PORT                          = 0x1\n\tIFLA_BAREUDP_ETHERTYPE                     = 0x2\n\tIFLA_BAREUDP_SRCPORT_MIN                   = 0x3\n\tIFLA_BAREUDP_MULTIPROTO_MODE               = 0x4\n\tIFLA_PPP_UNSPEC                            = 0x0\n\tIFLA_PPP_DEV_FD                            = 0x1\n\tIFLA_GTP_UNSPEC                            = 0x0\n\tIFLA_GTP_FD0                               = 0x1\n\tIFLA_GTP_FD1                               = 0x2\n\tIFLA_GTP_PDP_HASHSIZE                      = 0x3\n\tIFLA_GTP_ROLE                              = 0x4\n\tIFLA_GTP_CREATE_SOCKETS                    = 0x5\n\tIFLA_GTP_RESTART_COUNT                     = 0x6\n\tIFLA_GTP_LOCAL                             = 0x7\n\tIFLA_GTP_LOCAL6                            = 0x8\n\tIFLA_BOND_UNSPEC                           = 0x0\n\tIFLA_BOND_MODE                             = 0x1\n\tIFLA_BOND_ACTIVE_SLAVE                     = 0x2\n\tIFLA_BOND_MIIMON                           = 0x3\n\tIFLA_BOND_UPDELAY                          = 0x4\n\tIFLA_BOND_DOWNDELAY                        = 0x5\n\tIFLA_BOND_USE_CARRIER                      = 0x6\n\tIFLA_BOND_ARP_INTERVAL                     = 0x7\n\tIFLA_BOND_ARP_IP_TARGET                    = 0x8\n\tIFLA_BOND_ARP_VALIDATE                     = 0x9\n\tIFLA_BOND_ARP_ALL_TARGETS                  = 0xa\n\tIFLA_BOND_PRIMARY                          = 0xb\n\tIFLA_BOND_PRIMARY_RESELECT                 = 0xc\n\tIFLA_BOND_FAIL_OVER_MAC                    = 0xd\n\tIFLA_BOND_XMIT_HASH_POLICY                 = 0xe\n\tIFLA_BOND_RESEND_IGMP                      = 0xf\n\tIFLA_BOND_NUM_PEER_NOTIF                   = 0x10\n\tIFLA_BOND_ALL_SLAVES_ACTIVE                = 0x11\n\tIFLA_BOND_MIN_LINKS                        = 0x12\n\tIFLA_BOND_LP_INTERVAL                      = 0x13\n\tIFLA_BOND_PACKETS_PER_SLAVE                = 0x14\n\tIFLA_BOND_AD_LACP_RATE                     = 0x15\n\tIFLA_BOND_AD_SELECT                        = 0x16\n\tIFLA_BOND_AD_INFO                          = 0x17\n\tIFLA_BOND_AD_ACTOR_SYS_PRIO                = 0x18\n\tIFLA_BOND_AD_USER_PORT_KEY                 = 0x19\n\tIFLA_BOND_AD_ACTOR_SYSTEM                  = 0x1a\n\tIFLA_BOND_TLB_DYNAMIC_LB                   = 0x1b\n\tIFLA_BOND_PEER_NOTIF_DELAY                 = 0x1c\n\tIFLA_BOND_AD_LACP_ACTIVE                   = 0x1d\n\tIFLA_BOND_MISSED_MAX                       = 0x1e\n\tIFLA_BOND_NS_IP6_TARGET                    = 0x1f\n\tIFLA_BOND_COUPLED_CONTROL                  = 0x20\n\tIFLA_BOND_AD_INFO_UNSPEC                   = 0x0\n\tIFLA_BOND_AD_INFO_AGGREGATOR               = 0x1\n\tIFLA_BOND_AD_INFO_NUM_PORTS                = 0x2\n\tIFLA_BOND_AD_INFO_ACTOR_KEY                = 0x3\n\tIFLA_BOND_AD_INFO_PARTNER_KEY              = 0x4\n\tIFLA_BOND_AD_INFO_PARTNER_MAC              = 0x5\n\tIFLA_BOND_SLAVE_UNSPEC                     = 0x0\n\tIFLA_BOND_SLAVE_STATE                      = 0x1\n\tIFLA_BOND_SLAVE_MII_STATUS                 = 0x2\n\tIFLA_BOND_SLAVE_LINK_FAILURE_COUNT         = 0x3\n\tIFLA_BOND_SLAVE_PERM_HWADDR                = 0x4\n\tIFLA_BOND_SLAVE_QUEUE_ID                   = 0x5\n\tIFLA_BOND_SLAVE_AD_AGGREGATOR_ID           = 0x6\n\tIFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE   = 0x7\n\tIFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8\n\tIFLA_BOND_SLAVE_PRIO                       = 0x9\n\tIFLA_VF_INFO_UNSPEC                        = 0x0\n\tIFLA_VF_INFO                               = 0x1\n\tIFLA_VF_UNSPEC                             = 0x0\n\tIFLA_VF_MAC                                = 0x1\n\tIFLA_VF_VLAN                               = 0x2\n\tIFLA_VF_TX_RATE                            = 0x3\n\tIFLA_VF_SPOOFCHK                           = 0x4\n\tIFLA_VF_LINK_STATE                         = 0x5\n\tIFLA_VF_RATE                               = 0x6\n\tIFLA_VF_RSS_QUERY_EN                       = 0x7\n\tIFLA_VF_STATS                              = 0x8\n\tIFLA_VF_TRUST                              = 0x9\n\tIFLA_VF_IB_NODE_GUID                       = 0xa\n\tIFLA_VF_IB_PORT_GUID                       = 0xb\n\tIFLA_VF_VLAN_LIST                          = 0xc\n\tIFLA_VF_BROADCAST                          = 0xd\n\tIFLA_VF_VLAN_INFO_UNSPEC                   = 0x0\n\tIFLA_VF_VLAN_INFO                          = 0x1\n\tIFLA_VF_LINK_STATE_AUTO                    = 0x0\n\tIFLA_VF_LINK_STATE_ENABLE                  = 0x1\n\tIFLA_VF_LINK_STATE_DISABLE                 = 0x2\n\tIFLA_VF_STATS_RX_PACKETS                   = 0x0\n\tIFLA_VF_STATS_TX_PACKETS                   = 0x1\n\tIFLA_VF_STATS_RX_BYTES                     = 0x2\n\tIFLA_VF_STATS_TX_BYTES                     = 0x3\n\tIFLA_VF_STATS_BROADCAST                    = 0x4\n\tIFLA_VF_STATS_MULTICAST                    = 0x5\n\tIFLA_VF_STATS_PAD                          = 0x6\n\tIFLA_VF_STATS_RX_DROPPED                   = 0x7\n\tIFLA_VF_STATS_TX_DROPPED                   = 0x8\n\tIFLA_VF_PORT_UNSPEC                        = 0x0\n\tIFLA_VF_PORT                               = 0x1\n\tIFLA_PORT_UNSPEC                           = 0x0\n\tIFLA_PORT_VF                               = 0x1\n\tIFLA_PORT_PROFILE                          = 0x2\n\tIFLA_PORT_VSI_TYPE                         = 0x3\n\tIFLA_PORT_INSTANCE_UUID                    = 0x4\n\tIFLA_PORT_HOST_UUID                        = 0x5\n\tIFLA_PORT_REQUEST                          = 0x6\n\tIFLA_PORT_RESPONSE                         = 0x7\n\tIFLA_IPOIB_UNSPEC                          = 0x0\n\tIFLA_IPOIB_PKEY                            = 0x1\n\tIFLA_IPOIB_MODE                            = 0x2\n\tIFLA_IPOIB_UMCAST                          = 0x3\n\tIFLA_HSR_UNSPEC                            = 0x0\n\tIFLA_HSR_SLAVE1                            = 0x1\n\tIFLA_HSR_SLAVE2                            = 0x2\n\tIFLA_HSR_MULTICAST_SPEC                    = 0x3\n\tIFLA_HSR_SUPERVISION_ADDR                  = 0x4\n\tIFLA_HSR_SEQ_NR                            = 0x5\n\tIFLA_HSR_VERSION                           = 0x6\n\tIFLA_HSR_PROTOCOL                          = 0x7\n\tIFLA_HSR_INTERLINK                         = 0x8\n\tIFLA_STATS_UNSPEC                          = 0x0\n\tIFLA_STATS_LINK_64                         = 0x1\n\tIFLA_STATS_LINK_XSTATS                     = 0x2\n\tIFLA_STATS_LINK_XSTATS_SLAVE               = 0x3\n\tIFLA_STATS_LINK_OFFLOAD_XSTATS             = 0x4\n\tIFLA_STATS_AF_SPEC                         = 0x5\n\tIFLA_STATS_GETSET_UNSPEC                   = 0x0\n\tIFLA_STATS_GET_FILTERS                     = 0x1\n\tIFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS     = 0x2\n\tIFLA_OFFLOAD_XSTATS_UNSPEC                 = 0x0\n\tIFLA_OFFLOAD_XSTATS_CPU_HIT                = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO              = 0x2\n\tIFLA_OFFLOAD_XSTATS_L3_STATS               = 0x3\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC       = 0x0\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST      = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_USED         = 0x2\n\tIFLA_XDP_UNSPEC                            = 0x0\n\tIFLA_XDP_FD                                = 0x1\n\tIFLA_XDP_ATTACHED                          = 0x2\n\tIFLA_XDP_FLAGS                             = 0x3\n\tIFLA_XDP_PROG_ID                           = 0x4\n\tIFLA_XDP_DRV_PROG_ID                       = 0x5\n\tIFLA_XDP_SKB_PROG_ID                       = 0x6\n\tIFLA_XDP_HW_PROG_ID                        = 0x7\n\tIFLA_XDP_EXPECTED_FD                       = 0x8\n\tIFLA_EVENT_NONE                            = 0x0\n\tIFLA_EVENT_REBOOT                          = 0x1\n\tIFLA_EVENT_FEATURES                        = 0x2\n\tIFLA_EVENT_BONDING_FAILOVER                = 0x3\n\tIFLA_EVENT_NOTIFY_PEERS                    = 0x4\n\tIFLA_EVENT_IGMP_RESEND                     = 0x5\n\tIFLA_EVENT_BONDING_OPTIONS                 = 0x6\n\tIFLA_TUN_UNSPEC                            = 0x0\n\tIFLA_TUN_OWNER                             = 0x1\n\tIFLA_TUN_GROUP                             = 0x2\n\tIFLA_TUN_TYPE                              = 0x3\n\tIFLA_TUN_PI                                = 0x4\n\tIFLA_TUN_VNET_HDR                          = 0x5\n\tIFLA_TUN_PERSIST                           = 0x6\n\tIFLA_TUN_MULTI_QUEUE                       = 0x7\n\tIFLA_TUN_NUM_QUEUES                        = 0x8\n\tIFLA_TUN_NUM_DISABLED_QUEUES               = 0x9\n\tIFLA_RMNET_UNSPEC                          = 0x0\n\tIFLA_RMNET_MUX_ID                          = 0x1\n\tIFLA_RMNET_FLAGS                           = 0x2\n\tIFLA_MCTP_UNSPEC                           = 0x0\n\tIFLA_MCTP_NET                              = 0x1\n\tIFLA_DSA_UNSPEC                            = 0x0\n\tIFLA_DSA_CONDUIT                           = 0x1\n\tIFLA_DSA_MASTER                            = 0x1\n)\n\nconst (\n\tNETKIT_NEXT     = -0x1\n\tNETKIT_PASS     = 0x0\n\tNETKIT_DROP     = 0x2\n\tNETKIT_REDIRECT = 0x7\n\tNETKIT_L2       = 0x0\n\tNETKIT_L3       = 0x1\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_EGRESS   = 0x1\n\tNF_NETDEV_NUMHOOKS = 0x2\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\nconst SO_ORIGINAL_DST = 0x50\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_NEWFLOWTABLE              = 0x16\n\tNFT_MSG_GETFLOWTABLE              = 0x17\n\tNFT_MSG_DELFLOWTABLE              = 0x18\n\tNFT_MSG_GETRULE_RESET             = 0x19\n\tNFT_MSG_MAX                       = 0x22\n\tNFTA_LIST_UNSPEC                  = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_INNER_HEADER          = 0x3\n\tNFT_PAYLOAD_TUN_HEADER            = 0x4\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_CSUM_SCTP             = 0x2\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFT_CT_SRC_IP                     = 0x13\n\tNFT_CT_DST_IP                     = 0x14\n\tNFT_CT_SRC_IP6                    = 0x15\n\tNFT_CT_DST_IP6                    = 0x16\n\tNFT_CT_ID                         = 0x17\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\nconst (\n\tNFTA_TARGET_UNSPEC = 0x0\n\tNFTA_TARGET_NAME   = 0x1\n\tNFTA_TARGET_REV    = 0x2\n\tNFTA_TARGET_INFO   = 0x3\n\tNFTA_MATCH_UNSPEC  = 0x0\n\tNFTA_MATCH_NAME    = 0x1\n\tNFTA_MATCH_REV     = 0x2\n\tNFTA_MATCH_INFO    = 0x3\n\tNFTA_COMPAT_UNSPEC = 0x0\n\tNFTA_COMPAT_NAME   = 0x1\n\tNFTA_COMPAT_REV    = 0x2\n\tNFTA_COMPAT_TYPE   = 0x3\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\nconst (\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE         = 0x0\n\tNETNSA_NSID         = 0x1\n\tNETNSA_PID          = 0x2\n\tNETNSA_FD           = 0x3\n\tNETNSA_TARGET_NSID  = 0x4\n\tNETNSA_CURRENT_NSID = 0x5\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n\tFlags    uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr            uint64\n\tLen             uint64\n\tSize            uint32\n\tHeadroom        uint32\n\tFlags           uint32\n\tTx_metadata_len uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped               uint64\n\tRx_invalid_descs         uint64\n\tTx_invalid_descs         uint64\n\tRx_ring_full             uint64\n\tRx_fill_ring_empty_descs uint64\n\tTx_ring_empty_descs      uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\tSOF_TIMESTAMPING_BIND_PHC     = 0x8000\n\tSOF_TIMESTAMPING_OPT_ID_TCP   = 0x10000\n\n\tSOF_TIMESTAMPING_LAST = 0x40000\n\tSOF_TIMESTAMPING_MASK = 0x7ffff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\nconst (\n\tBPF_REG_0                                  = 0x0\n\tBPF_REG_1                                  = 0x1\n\tBPF_REG_2                                  = 0x2\n\tBPF_REG_3                                  = 0x3\n\tBPF_REG_4                                  = 0x4\n\tBPF_REG_5                                  = 0x5\n\tBPF_REG_6                                  = 0x6\n\tBPF_REG_7                                  = 0x7\n\tBPF_REG_8                                  = 0x8\n\tBPF_REG_9                                  = 0x9\n\tBPF_REG_10                                 = 0xa\n\tBPF_CGROUP_ITER_ORDER_UNSPEC               = 0x0\n\tBPF_CGROUP_ITER_SELF_ONLY                  = 0x1\n\tBPF_CGROUP_ITER_DESCENDANTS_PRE            = 0x2\n\tBPF_CGROUP_ITER_DESCENDANTS_POST           = 0x3\n\tBPF_CGROUP_ITER_ANCESTORS_UP               = 0x4\n\tBPF_MAP_CREATE                             = 0x0\n\tBPF_MAP_LOOKUP_ELEM                        = 0x1\n\tBPF_MAP_UPDATE_ELEM                        = 0x2\n\tBPF_MAP_DELETE_ELEM                        = 0x3\n\tBPF_MAP_GET_NEXT_KEY                       = 0x4\n\tBPF_PROG_LOAD                              = 0x5\n\tBPF_OBJ_PIN                                = 0x6\n\tBPF_OBJ_GET                                = 0x7\n\tBPF_PROG_ATTACH                            = 0x8\n\tBPF_PROG_DETACH                            = 0x9\n\tBPF_PROG_TEST_RUN                          = 0xa\n\tBPF_PROG_RUN                               = 0xa\n\tBPF_PROG_GET_NEXT_ID                       = 0xb\n\tBPF_MAP_GET_NEXT_ID                        = 0xc\n\tBPF_PROG_GET_FD_BY_ID                      = 0xd\n\tBPF_MAP_GET_FD_BY_ID                       = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD                     = 0xf\n\tBPF_PROG_QUERY                             = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN                    = 0x11\n\tBPF_BTF_LOAD                               = 0x12\n\tBPF_BTF_GET_FD_BY_ID                       = 0x13\n\tBPF_TASK_FD_QUERY                          = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM             = 0x15\n\tBPF_MAP_FREEZE                             = 0x16\n\tBPF_BTF_GET_NEXT_ID                        = 0x17\n\tBPF_MAP_LOOKUP_BATCH                       = 0x18\n\tBPF_MAP_LOOKUP_AND_DELETE_BATCH            = 0x19\n\tBPF_MAP_UPDATE_BATCH                       = 0x1a\n\tBPF_MAP_DELETE_BATCH                       = 0x1b\n\tBPF_LINK_CREATE                            = 0x1c\n\tBPF_LINK_UPDATE                            = 0x1d\n\tBPF_LINK_GET_FD_BY_ID                      = 0x1e\n\tBPF_LINK_GET_NEXT_ID                       = 0x1f\n\tBPF_ENABLE_STATS                           = 0x20\n\tBPF_ITER_CREATE                            = 0x21\n\tBPF_LINK_DETACH                            = 0x22\n\tBPF_PROG_BIND_MAP                          = 0x23\n\tBPF_MAP_TYPE_UNSPEC                        = 0x0\n\tBPF_MAP_TYPE_HASH                          = 0x1\n\tBPF_MAP_TYPE_ARRAY                         = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY                    = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY              = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH                   = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY                  = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE                   = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY                  = 0x8\n\tBPF_MAP_TYPE_LRU_HASH                      = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH               = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE                      = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS                 = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS                  = 0xd\n\tBPF_MAP_TYPE_DEVMAP                        = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                       = 0xf\n\tBPF_MAP_TYPE_CPUMAP                        = 0x10\n\tBPF_MAP_TYPE_XSKMAP                        = 0x11\n\tBPF_MAP_TYPE_SOCKHASH                      = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED     = 0x13\n\tBPF_MAP_TYPE_CGROUP_STORAGE                = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY           = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE         = 0x15\n\tBPF_MAP_TYPE_QUEUE                         = 0x16\n\tBPF_MAP_TYPE_STACK                         = 0x17\n\tBPF_MAP_TYPE_SK_STORAGE                    = 0x18\n\tBPF_MAP_TYPE_DEVMAP_HASH                   = 0x19\n\tBPF_MAP_TYPE_STRUCT_OPS                    = 0x1a\n\tBPF_MAP_TYPE_RINGBUF                       = 0x1b\n\tBPF_MAP_TYPE_INODE_STORAGE                 = 0x1c\n\tBPF_MAP_TYPE_TASK_STORAGE                  = 0x1d\n\tBPF_MAP_TYPE_BLOOM_FILTER                  = 0x1e\n\tBPF_MAP_TYPE_USER_RINGBUF                  = 0x1f\n\tBPF_MAP_TYPE_CGRP_STORAGE                  = 0x20\n\tBPF_PROG_TYPE_UNSPEC                       = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER                = 0x1\n\tBPF_PROG_TYPE_KPROBE                       = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS                    = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT                    = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT                   = 0x5\n\tBPF_PROG_TYPE_XDP                          = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT                   = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB                   = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK                  = 0x9\n\tBPF_PROG_TYPE_LWT_IN                       = 0xa\n\tBPF_PROG_TYPE_LWT_OUT                      = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT                     = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS                     = 0xd\n\tBPF_PROG_TYPE_SK_SKB                       = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE                = 0xf\n\tBPF_PROG_TYPE_SK_MSG                       = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT               = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR             = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL                = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2                   = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT                 = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR               = 0x16\n\tBPF_PROG_TYPE_CGROUP_SYSCTL                = 0x17\n\tBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE      = 0x18\n\tBPF_PROG_TYPE_CGROUP_SOCKOPT               = 0x19\n\tBPF_PROG_TYPE_TRACING                      = 0x1a\n\tBPF_PROG_TYPE_STRUCT_OPS                   = 0x1b\n\tBPF_PROG_TYPE_EXT                          = 0x1c\n\tBPF_PROG_TYPE_LSM                          = 0x1d\n\tBPF_PROG_TYPE_SK_LOOKUP                    = 0x1e\n\tBPF_PROG_TYPE_SYSCALL                      = 0x1f\n\tBPF_PROG_TYPE_NETFILTER                    = 0x20\n\tBPF_CGROUP_INET_INGRESS                    = 0x0\n\tBPF_CGROUP_INET_EGRESS                     = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE                = 0x2\n\tBPF_CGROUP_SOCK_OPS                        = 0x3\n\tBPF_SK_SKB_STREAM_PARSER                   = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT                  = 0x5\n\tBPF_CGROUP_DEVICE                          = 0x6\n\tBPF_SK_MSG_VERDICT                         = 0x7\n\tBPF_CGROUP_INET4_BIND                      = 0x8\n\tBPF_CGROUP_INET6_BIND                      = 0x9\n\tBPF_CGROUP_INET4_CONNECT                   = 0xa\n\tBPF_CGROUP_INET6_CONNECT                   = 0xb\n\tBPF_CGROUP_INET4_POST_BIND                 = 0xc\n\tBPF_CGROUP_INET6_POST_BIND                 = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG                    = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG                    = 0xf\n\tBPF_LIRC_MODE2                             = 0x10\n\tBPF_FLOW_DISSECTOR                         = 0x11\n\tBPF_CGROUP_SYSCTL                          = 0x12\n\tBPF_CGROUP_UDP4_RECVMSG                    = 0x13\n\tBPF_CGROUP_UDP6_RECVMSG                    = 0x14\n\tBPF_CGROUP_GETSOCKOPT                      = 0x15\n\tBPF_CGROUP_SETSOCKOPT                      = 0x16\n\tBPF_TRACE_RAW_TP                           = 0x17\n\tBPF_TRACE_FENTRY                           = 0x18\n\tBPF_TRACE_FEXIT                            = 0x19\n\tBPF_MODIFY_RETURN                          = 0x1a\n\tBPF_LSM_MAC                                = 0x1b\n\tBPF_TRACE_ITER                             = 0x1c\n\tBPF_CGROUP_INET4_GETPEERNAME               = 0x1d\n\tBPF_CGROUP_INET6_GETPEERNAME               = 0x1e\n\tBPF_CGROUP_INET4_GETSOCKNAME               = 0x1f\n\tBPF_CGROUP_INET6_GETSOCKNAME               = 0x20\n\tBPF_XDP_DEVMAP                             = 0x21\n\tBPF_CGROUP_INET_SOCK_RELEASE               = 0x22\n\tBPF_XDP_CPUMAP                             = 0x23\n\tBPF_SK_LOOKUP                              = 0x24\n\tBPF_XDP                                    = 0x25\n\tBPF_SK_SKB_VERDICT                         = 0x26\n\tBPF_SK_REUSEPORT_SELECT                    = 0x27\n\tBPF_SK_REUSEPORT_SELECT_OR_MIGRATE         = 0x28\n\tBPF_PERF_EVENT                             = 0x29\n\tBPF_TRACE_KPROBE_MULTI                     = 0x2a\n\tBPF_LSM_CGROUP                             = 0x2b\n\tBPF_STRUCT_OPS                             = 0x2c\n\tBPF_NETFILTER                              = 0x2d\n\tBPF_TCX_INGRESS                            = 0x2e\n\tBPF_TCX_EGRESS                             = 0x2f\n\tBPF_TRACE_UPROBE_MULTI                     = 0x30\n\tBPF_LINK_TYPE_UNSPEC                       = 0x0\n\tBPF_LINK_TYPE_RAW_TRACEPOINT               = 0x1\n\tBPF_LINK_TYPE_TRACING                      = 0x2\n\tBPF_LINK_TYPE_CGROUP                       = 0x3\n\tBPF_LINK_TYPE_ITER                         = 0x4\n\tBPF_LINK_TYPE_NETNS                        = 0x5\n\tBPF_LINK_TYPE_XDP                          = 0x6\n\tBPF_LINK_TYPE_PERF_EVENT                   = 0x7\n\tBPF_LINK_TYPE_KPROBE_MULTI                 = 0x8\n\tBPF_LINK_TYPE_STRUCT_OPS                   = 0x9\n\tBPF_LINK_TYPE_NETFILTER                    = 0xa\n\tBPF_LINK_TYPE_TCX                          = 0xb\n\tBPF_LINK_TYPE_UPROBE_MULTI                 = 0xc\n\tBPF_PERF_EVENT_UNSPEC                      = 0x0\n\tBPF_PERF_EVENT_UPROBE                      = 0x1\n\tBPF_PERF_EVENT_URETPROBE                   = 0x2\n\tBPF_PERF_EVENT_KPROBE                      = 0x3\n\tBPF_PERF_EVENT_KRETPROBE                   = 0x4\n\tBPF_PERF_EVENT_TRACEPOINT                  = 0x5\n\tBPF_PERF_EVENT_EVENT                       = 0x6\n\tBPF_F_KPROBE_MULTI_RETURN                  = 0x1\n\tBPF_F_UPROBE_MULTI_RETURN                  = 0x1\n\tBPF_ANY                                    = 0x0\n\tBPF_NOEXIST                                = 0x1\n\tBPF_EXIST                                  = 0x2\n\tBPF_F_LOCK                                 = 0x4\n\tBPF_F_NO_PREALLOC                          = 0x1\n\tBPF_F_NO_COMMON_LRU                        = 0x2\n\tBPF_F_NUMA_NODE                            = 0x4\n\tBPF_F_RDONLY                               = 0x8\n\tBPF_F_WRONLY                               = 0x10\n\tBPF_F_STACK_BUILD_ID                       = 0x20\n\tBPF_F_ZERO_SEED                            = 0x40\n\tBPF_F_RDONLY_PROG                          = 0x80\n\tBPF_F_WRONLY_PROG                          = 0x100\n\tBPF_F_CLONE                                = 0x200\n\tBPF_F_MMAPABLE                             = 0x400\n\tBPF_F_PRESERVE_ELEMS                       = 0x800\n\tBPF_F_INNER_MAP                            = 0x1000\n\tBPF_F_LINK                                 = 0x2000\n\tBPF_F_PATH_FD                              = 0x4000\n\tBPF_STATS_RUN_TIME                         = 0x0\n\tBPF_STACK_BUILD_ID_EMPTY                   = 0x0\n\tBPF_STACK_BUILD_ID_VALID                   = 0x1\n\tBPF_STACK_BUILD_ID_IP                      = 0x2\n\tBPF_F_RECOMPUTE_CSUM                       = 0x1\n\tBPF_F_INVALIDATE_HASH                      = 0x2\n\tBPF_F_HDR_FIELD_MASK                       = 0xf\n\tBPF_F_PSEUDO_HDR                           = 0x10\n\tBPF_F_MARK_MANGLED_0                       = 0x20\n\tBPF_F_MARK_ENFORCE                         = 0x40\n\tBPF_F_INGRESS                              = 0x1\n\tBPF_F_TUNINFO_IPV6                         = 0x1\n\tBPF_F_SKIP_FIELD_MASK                      = 0xff\n\tBPF_F_USER_STACK                           = 0x100\n\tBPF_F_FAST_STACK_CMP                       = 0x200\n\tBPF_F_REUSE_STACKID                        = 0x400\n\tBPF_F_USER_BUILD_ID                        = 0x800\n\tBPF_F_ZERO_CSUM_TX                         = 0x2\n\tBPF_F_DONT_FRAGMENT                        = 0x4\n\tBPF_F_SEQ_NUMBER                           = 0x8\n\tBPF_F_NO_TUNNEL_KEY                        = 0x10\n\tBPF_F_TUNINFO_FLAGS                        = 0x10\n\tBPF_F_INDEX_MASK                           = 0xffffffff\n\tBPF_F_CURRENT_CPU                          = 0xffffffff\n\tBPF_F_CTXLEN_MASK                          = 0xfffff00000000\n\tBPF_F_CURRENT_NETNS                        = -0x1\n\tBPF_CSUM_LEVEL_QUERY                       = 0x0\n\tBPF_CSUM_LEVEL_INC                         = 0x1\n\tBPF_CSUM_LEVEL_DEC                         = 0x2\n\tBPF_CSUM_LEVEL_RESET                       = 0x3\n\tBPF_F_ADJ_ROOM_FIXED_GSO                   = 0x1\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4               = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6               = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE                = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP                = 0x10\n\tBPF_F_ADJ_ROOM_NO_CSUM_RESET               = 0x20\n\tBPF_F_ADJ_ROOM_ENCAP_L2_ETH                = 0x40\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV4               = 0x80\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV6               = 0x100\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK                 = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT                = 0x38\n\tBPF_F_SYSCTL_BASE_NAME                     = 0x1\n\tBPF_LOCAL_STORAGE_GET_F_CREATE             = 0x1\n\tBPF_SK_STORAGE_GET_F_CREATE                = 0x1\n\tBPF_F_GET_BRANCH_RECORDS_SIZE              = 0x1\n\tBPF_RB_NO_WAKEUP                           = 0x1\n\tBPF_RB_FORCE_WAKEUP                        = 0x2\n\tBPF_RB_AVAIL_DATA                          = 0x0\n\tBPF_RB_RING_SIZE                           = 0x1\n\tBPF_RB_CONS_POS                            = 0x2\n\tBPF_RB_PROD_POS                            = 0x3\n\tBPF_RINGBUF_BUSY_BIT                       = 0x80000000\n\tBPF_RINGBUF_DISCARD_BIT                    = 0x40000000\n\tBPF_RINGBUF_HDR_SZ                         = 0x8\n\tBPF_SK_LOOKUP_F_REPLACE                    = 0x1\n\tBPF_SK_LOOKUP_F_NO_REUSEPORT               = 0x2\n\tBPF_ADJ_ROOM_NET                           = 0x0\n\tBPF_ADJ_ROOM_MAC                           = 0x1\n\tBPF_HDR_START_MAC                          = 0x0\n\tBPF_HDR_START_NET                          = 0x1\n\tBPF_LWT_ENCAP_SEG6                         = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE                  = 0x1\n\tBPF_LWT_ENCAP_IP                           = 0x2\n\tBPF_F_BPRM_SECUREEXEC                      = 0x1\n\tBPF_F_BROADCAST                            = 0x8\n\tBPF_F_EXCLUDE_INGRESS                      = 0x10\n\tBPF_SKB_TSTAMP_UNSPEC                      = 0x0\n\tBPF_SKB_TSTAMP_DELIVERY_MONO               = 0x1\n\tBPF_OK                                     = 0x0\n\tBPF_DROP                                   = 0x2\n\tBPF_REDIRECT                               = 0x7\n\tBPF_LWT_REROUTE                            = 0x80\n\tBPF_FLOW_DISSECTOR_CONTINUE                = 0x81\n\tBPF_SOCK_OPS_RTO_CB_FLAG                   = 0x1\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG               = 0x2\n\tBPF_SOCK_OPS_STATE_CB_FLAG                 = 0x4\n\tBPF_SOCK_OPS_RTT_CB_FLAG                   = 0x8\n\tBPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG     = 0x10\n\tBPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG         = 0x40\n\tBPF_SOCK_OPS_ALL_CB_FLAGS                  = 0x7f\n\tBPF_SOCK_OPS_VOID                          = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT                  = 0x1\n\tBPF_SOCK_OPS_RWND_INIT                     = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB                = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB         = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB        = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN                     = 0x6\n\tBPF_SOCK_OPS_BASE_RTT                      = 0x7\n\tBPF_SOCK_OPS_RTO_CB                        = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB                    = 0x9\n\tBPF_SOCK_OPS_STATE_CB                      = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB                 = 0xb\n\tBPF_SOCK_OPS_RTT_CB                        = 0xc\n\tBPF_SOCK_OPS_PARSE_HDR_OPT_CB              = 0xd\n\tBPF_SOCK_OPS_HDR_OPT_LEN_CB                = 0xe\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB              = 0xf\n\tBPF_TCP_ESTABLISHED                        = 0x1\n\tBPF_TCP_SYN_SENT                           = 0x2\n\tBPF_TCP_SYN_RECV                           = 0x3\n\tBPF_TCP_FIN_WAIT1                          = 0x4\n\tBPF_TCP_FIN_WAIT2                          = 0x5\n\tBPF_TCP_TIME_WAIT                          = 0x6\n\tBPF_TCP_CLOSE                              = 0x7\n\tBPF_TCP_CLOSE_WAIT                         = 0x8\n\tBPF_TCP_LAST_ACK                           = 0x9\n\tBPF_TCP_LISTEN                             = 0xa\n\tBPF_TCP_CLOSING                            = 0xb\n\tBPF_TCP_NEW_SYN_RECV                       = 0xc\n\tBPF_TCP_MAX_STATES                         = 0xe\n\tTCP_BPF_IW                                 = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                      = 0x3ea\n\tTCP_BPF_DELACK_MAX                         = 0x3eb\n\tTCP_BPF_RTO_MIN                            = 0x3ec\n\tTCP_BPF_SYN                                = 0x3ed\n\tTCP_BPF_SYN_IP                             = 0x3ee\n\tTCP_BPF_SYN_MAC                            = 0x3ef\n\tBPF_LOAD_HDR_OPT_TCP_SYN                   = 0x1\n\tBPF_WRITE_HDR_TCP_CURRENT_MSS              = 0x1\n\tBPF_WRITE_HDR_TCP_SYNACK_COOKIE            = 0x2\n\tBPF_DEVCG_ACC_MKNOD                        = 0x1\n\tBPF_DEVCG_ACC_READ                         = 0x2\n\tBPF_DEVCG_ACC_WRITE                        = 0x4\n\tBPF_DEVCG_DEV_BLOCK                        = 0x1\n\tBPF_DEVCG_DEV_CHAR                         = 0x2\n\tBPF_FIB_LOOKUP_DIRECT                      = 0x1\n\tBPF_FIB_LOOKUP_OUTPUT                      = 0x2\n\tBPF_FIB_LOOKUP_SKIP_NEIGH                  = 0x4\n\tBPF_FIB_LOOKUP_TBID                        = 0x8\n\tBPF_FIB_LKUP_RET_SUCCESS                   = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE                 = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE               = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT                  = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED                 = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED              = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT                = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH                  = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED               = 0x8\n\tBPF_MTU_CHK_SEGS                           = 0x1\n\tBPF_MTU_CHK_RET_SUCCESS                    = 0x0\n\tBPF_MTU_CHK_RET_FRAG_NEEDED                = 0x1\n\tBPF_MTU_CHK_RET_SEGS_TOOBIG                = 0x2\n\tBPF_FD_TYPE_RAW_TRACEPOINT                 = 0x0\n\tBPF_FD_TYPE_TRACEPOINT                     = 0x1\n\tBPF_FD_TYPE_KPROBE                         = 0x2\n\tBPF_FD_TYPE_KRETPROBE                      = 0x3\n\tBPF_FD_TYPE_UPROBE                         = 0x4\n\tBPF_FD_TYPE_URETPROBE                      = 0x5\n\tBPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG        = 0x1\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL    = 0x2\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP         = 0x4\n\tBPF_CORE_FIELD_BYTE_OFFSET                 = 0x0\n\tBPF_CORE_FIELD_BYTE_SIZE                   = 0x1\n\tBPF_CORE_FIELD_EXISTS                      = 0x2\n\tBPF_CORE_FIELD_SIGNED                      = 0x3\n\tBPF_CORE_FIELD_LSHIFT_U64                  = 0x4\n\tBPF_CORE_FIELD_RSHIFT_U64                  = 0x5\n\tBPF_CORE_TYPE_ID_LOCAL                     = 0x6\n\tBPF_CORE_TYPE_ID_TARGET                    = 0x7\n\tBPF_CORE_TYPE_EXISTS                       = 0x8\n\tBPF_CORE_TYPE_SIZE                         = 0x9\n\tBPF_CORE_ENUMVAL_EXISTS                    = 0xa\n\tBPF_CORE_ENUMVAL_VALUE                     = 0xb\n\tBPF_CORE_TYPE_MATCHES                      = 0xc\n\tBPF_F_TIMER_ABS                            = 0x1\n)\n\nconst (\n\tTCA_UNSPEC            = 0x0\n\tTCA_KIND              = 0x1\n\tTCA_OPTIONS           = 0x2\n\tTCA_STATS             = 0x3\n\tTCA_XSTATS            = 0x4\n\tTCA_RATE              = 0x5\n\tTCA_FCNT              = 0x6\n\tTCA_STATS2            = 0x7\n\tTCA_STAB              = 0x8\n\tTCA_PAD               = 0x9\n\tTCA_DUMP_INVISIBLE    = 0xa\n\tTCA_CHAIN             = 0xb\n\tTCA_HW_OFFLOAD        = 0xc\n\tTCA_INGRESS_BLOCK     = 0xd\n\tTCA_EGRESS_BLOCK      = 0xe\n\tTCA_DUMP_FLAGS        = 0xf\n\tTCA_EXT_WARN_MSG      = 0x10\n\tRTNLGRP_NONE          = 0x0\n\tRTNLGRP_LINK          = 0x1\n\tRTNLGRP_NOTIFY        = 0x2\n\tRTNLGRP_NEIGH         = 0x3\n\tRTNLGRP_TC            = 0x4\n\tRTNLGRP_IPV4_IFADDR   = 0x5\n\tRTNLGRP_IPV4_MROUTE   = 0x6\n\tRTNLGRP_IPV4_ROUTE    = 0x7\n\tRTNLGRP_IPV4_RULE     = 0x8\n\tRTNLGRP_IPV6_IFADDR   = 0x9\n\tRTNLGRP_IPV6_MROUTE   = 0xa\n\tRTNLGRP_IPV6_ROUTE    = 0xb\n\tRTNLGRP_IPV6_IFINFO   = 0xc\n\tRTNLGRP_DECnet_IFADDR = 0xd\n\tRTNLGRP_NOP2          = 0xe\n\tRTNLGRP_DECnet_ROUTE  = 0xf\n\tRTNLGRP_DECnet_RULE   = 0x10\n\tRTNLGRP_NOP4          = 0x11\n\tRTNLGRP_IPV6_PREFIX   = 0x12\n\tRTNLGRP_IPV6_RULE     = 0x13\n\tRTNLGRP_ND_USEROPT    = 0x14\n\tRTNLGRP_PHONET_IFADDR = 0x15\n\tRTNLGRP_PHONET_ROUTE  = 0x16\n\tRTNLGRP_DCB           = 0x17\n\tRTNLGRP_IPV4_NETCONF  = 0x18\n\tRTNLGRP_IPV6_NETCONF  = 0x19\n\tRTNLGRP_MDB           = 0x1a\n\tRTNLGRP_MPLS_ROUTE    = 0x1b\n\tRTNLGRP_NSID          = 0x1c\n\tRTNLGRP_MPLS_NETCONF  = 0x1d\n\tRTNLGRP_IPV4_MROUTE_R = 0x1e\n\tRTNLGRP_IPV6_MROUTE_R = 0x1f\n\tRTNLGRP_NEXTHOP       = 0x20\n\tRTNLGRP_BRVLAN        = 0x21\n\tRTNLGRP_MCTP_IFADDR   = 0x22\n\tRTNLGRP_TUNNEL        = 0x23\n\tRTNLGRP_STATS         = 0x24\n\tRTNLGRP_IPV4_MCADDR   = 0x25\n\tRTNLGRP_IPV6_MCADDR   = 0x26\n\tRTNLGRP_IPV6_ACADDR   = 0x27\n\tTCA_ROOT_UNSPEC       = 0x0\n\tTCA_ROOT_TAB          = 0x1\n\tTCA_ROOT_FLAGS        = 0x2\n\tTCA_ROOT_COUNT        = 0x3\n\tTCA_ROOT_TIME_DELTA   = 0x4\n\tTCA_ROOT_EXT_WARN_MSG = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\ntype LoopConfig struct {\n\tFd   uint32\n\tSize uint32\n\tInfo LoopInfo64\n\t_    [8]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n\nconst (\n\tSYSLOG_ACTION_CLOSE         = 0\n\tSYSLOG_ACTION_OPEN          = 1\n\tSYSLOG_ACTION_READ          = 2\n\tSYSLOG_ACTION_READ_ALL      = 3\n\tSYSLOG_ACTION_READ_CLEAR    = 4\n\tSYSLOG_ACTION_CLEAR         = 5\n\tSYSLOG_ACTION_CONSOLE_OFF   = 6\n\tSYSLOG_ACTION_CONSOLE_ON    = 7\n\tSYSLOG_ACTION_CONSOLE_LEVEL = 8\n\tSYSLOG_ACTION_SIZE_UNREAD   = 9\n\tSYSLOG_ACTION_SIZE_BUFFER   = 10\n)\n\nconst (\n\tDEVLINK_CMD_UNSPEC                                 = 0x0\n\tDEVLINK_CMD_GET                                    = 0x1\n\tDEVLINK_CMD_SET                                    = 0x2\n\tDEVLINK_CMD_NEW                                    = 0x3\n\tDEVLINK_CMD_DEL                                    = 0x4\n\tDEVLINK_CMD_PORT_GET                               = 0x5\n\tDEVLINK_CMD_PORT_SET                               = 0x6\n\tDEVLINK_CMD_PORT_NEW                               = 0x7\n\tDEVLINK_CMD_PORT_DEL                               = 0x8\n\tDEVLINK_CMD_PORT_SPLIT                             = 0x9\n\tDEVLINK_CMD_PORT_UNSPLIT                           = 0xa\n\tDEVLINK_CMD_SB_GET                                 = 0xb\n\tDEVLINK_CMD_SB_SET                                 = 0xc\n\tDEVLINK_CMD_SB_NEW                                 = 0xd\n\tDEVLINK_CMD_SB_DEL                                 = 0xe\n\tDEVLINK_CMD_SB_POOL_GET                            = 0xf\n\tDEVLINK_CMD_SB_POOL_SET                            = 0x10\n\tDEVLINK_CMD_SB_POOL_NEW                            = 0x11\n\tDEVLINK_CMD_SB_POOL_DEL                            = 0x12\n\tDEVLINK_CMD_SB_PORT_POOL_GET                       = 0x13\n\tDEVLINK_CMD_SB_PORT_POOL_SET                       = 0x14\n\tDEVLINK_CMD_SB_PORT_POOL_NEW                       = 0x15\n\tDEVLINK_CMD_SB_PORT_POOL_DEL                       = 0x16\n\tDEVLINK_CMD_SB_TC_POOL_BIND_GET                    = 0x17\n\tDEVLINK_CMD_SB_TC_POOL_BIND_SET                    = 0x18\n\tDEVLINK_CMD_SB_TC_POOL_BIND_NEW                    = 0x19\n\tDEVLINK_CMD_SB_TC_POOL_BIND_DEL                    = 0x1a\n\tDEVLINK_CMD_SB_OCC_SNAPSHOT                        = 0x1b\n\tDEVLINK_CMD_SB_OCC_MAX_CLEAR                       = 0x1c\n\tDEVLINK_CMD_ESWITCH_GET                            = 0x1d\n\tDEVLINK_CMD_ESWITCH_SET                            = 0x1e\n\tDEVLINK_CMD_DPIPE_TABLE_GET                        = 0x1f\n\tDEVLINK_CMD_DPIPE_ENTRIES_GET                      = 0x20\n\tDEVLINK_CMD_DPIPE_HEADERS_GET                      = 0x21\n\tDEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET               = 0x22\n\tDEVLINK_CMD_RESOURCE_SET                           = 0x23\n\tDEVLINK_CMD_RESOURCE_DUMP                          = 0x24\n\tDEVLINK_CMD_RELOAD                                 = 0x25\n\tDEVLINK_CMD_PARAM_GET                              = 0x26\n\tDEVLINK_CMD_PARAM_SET                              = 0x27\n\tDEVLINK_CMD_PARAM_NEW                              = 0x28\n\tDEVLINK_CMD_PARAM_DEL                              = 0x29\n\tDEVLINK_CMD_REGION_GET                             = 0x2a\n\tDEVLINK_CMD_REGION_SET                             = 0x2b\n\tDEVLINK_CMD_REGION_NEW                             = 0x2c\n\tDEVLINK_CMD_REGION_DEL                             = 0x2d\n\tDEVLINK_CMD_REGION_READ                            = 0x2e\n\tDEVLINK_CMD_PORT_PARAM_GET                         = 0x2f\n\tDEVLINK_CMD_PORT_PARAM_SET                         = 0x30\n\tDEVLINK_CMD_PORT_PARAM_NEW                         = 0x31\n\tDEVLINK_CMD_PORT_PARAM_DEL                         = 0x32\n\tDEVLINK_CMD_INFO_GET                               = 0x33\n\tDEVLINK_CMD_HEALTH_REPORTER_GET                    = 0x34\n\tDEVLINK_CMD_HEALTH_REPORTER_SET                    = 0x35\n\tDEVLINK_CMD_HEALTH_REPORTER_RECOVER                = 0x36\n\tDEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE               = 0x37\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_GET               = 0x38\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR             = 0x39\n\tDEVLINK_CMD_FLASH_UPDATE                           = 0x3a\n\tDEVLINK_CMD_FLASH_UPDATE_END                       = 0x3b\n\tDEVLINK_CMD_FLASH_UPDATE_STATUS                    = 0x3c\n\tDEVLINK_CMD_TRAP_GET                               = 0x3d\n\tDEVLINK_CMD_TRAP_SET                               = 0x3e\n\tDEVLINK_CMD_TRAP_NEW                               = 0x3f\n\tDEVLINK_CMD_TRAP_DEL                               = 0x40\n\tDEVLINK_CMD_TRAP_GROUP_GET                         = 0x41\n\tDEVLINK_CMD_TRAP_GROUP_SET                         = 0x42\n\tDEVLINK_CMD_TRAP_GROUP_NEW                         = 0x43\n\tDEVLINK_CMD_TRAP_GROUP_DEL                         = 0x44\n\tDEVLINK_CMD_TRAP_POLICER_GET                       = 0x45\n\tDEVLINK_CMD_TRAP_POLICER_SET                       = 0x46\n\tDEVLINK_CMD_TRAP_POLICER_NEW                       = 0x47\n\tDEVLINK_CMD_TRAP_POLICER_DEL                       = 0x48\n\tDEVLINK_CMD_HEALTH_REPORTER_TEST                   = 0x49\n\tDEVLINK_CMD_RATE_GET                               = 0x4a\n\tDEVLINK_CMD_RATE_SET                               = 0x4b\n\tDEVLINK_CMD_RATE_NEW                               = 0x4c\n\tDEVLINK_CMD_RATE_DEL                               = 0x4d\n\tDEVLINK_CMD_LINECARD_GET                           = 0x4e\n\tDEVLINK_CMD_LINECARD_SET                           = 0x4f\n\tDEVLINK_CMD_LINECARD_NEW                           = 0x50\n\tDEVLINK_CMD_LINECARD_DEL                           = 0x51\n\tDEVLINK_CMD_SELFTESTS_GET                          = 0x52\n\tDEVLINK_CMD_MAX                                    = 0x54\n\tDEVLINK_PORT_TYPE_NOTSET                           = 0x0\n\tDEVLINK_PORT_TYPE_AUTO                             = 0x1\n\tDEVLINK_PORT_TYPE_ETH                              = 0x2\n\tDEVLINK_PORT_TYPE_IB                               = 0x3\n\tDEVLINK_SB_POOL_TYPE_INGRESS                       = 0x0\n\tDEVLINK_SB_POOL_TYPE_EGRESS                        = 0x1\n\tDEVLINK_SB_THRESHOLD_TYPE_STATIC                   = 0x0\n\tDEVLINK_SB_THRESHOLD_TYPE_DYNAMIC                  = 0x1\n\tDEVLINK_ESWITCH_MODE_LEGACY                        = 0x0\n\tDEVLINK_ESWITCH_MODE_SWITCHDEV                     = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NONE                   = 0x0\n\tDEVLINK_ESWITCH_INLINE_MODE_LINK                   = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NETWORK                = 0x2\n\tDEVLINK_ESWITCH_INLINE_MODE_TRANSPORT              = 0x3\n\tDEVLINK_ESWITCH_ENCAP_MODE_NONE                    = 0x0\n\tDEVLINK_ESWITCH_ENCAP_MODE_BASIC                   = 0x1\n\tDEVLINK_PORT_FLAVOUR_PHYSICAL                      = 0x0\n\tDEVLINK_PORT_FLAVOUR_CPU                           = 0x1\n\tDEVLINK_PORT_FLAVOUR_DSA                           = 0x2\n\tDEVLINK_PORT_FLAVOUR_PCI_PF                        = 0x3\n\tDEVLINK_PORT_FLAVOUR_PCI_VF                        = 0x4\n\tDEVLINK_PORT_FLAVOUR_VIRTUAL                       = 0x5\n\tDEVLINK_PORT_FLAVOUR_UNUSED                        = 0x6\n\tDEVLINK_PARAM_CMODE_RUNTIME                        = 0x0\n\tDEVLINK_PARAM_CMODE_DRIVERINIT                     = 0x1\n\tDEVLINK_PARAM_CMODE_PERMANENT                      = 0x2\n\tDEVLINK_PARAM_CMODE_MAX                            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER          = 0x0\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH           = 0x1\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN         = 0x3\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS  = 0x1\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER   = 0x2\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK    = 0x3\n\tDEVLINK_ATTR_STATS_RX_PACKETS                      = 0x0\n\tDEVLINK_ATTR_STATS_RX_BYTES                        = 0x1\n\tDEVLINK_ATTR_STATS_RX_DROPPED                      = 0x2\n\tDEVLINK_ATTR_STATS_MAX                             = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS_BIT               = 0x0\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT            = 0x1\n\tDEVLINK_FLASH_OVERWRITE_MAX_BIT                    = 0x1\n\tDEVLINK_TRAP_ACTION_DROP                           = 0x0\n\tDEVLINK_TRAP_ACTION_TRAP                           = 0x1\n\tDEVLINK_TRAP_ACTION_MIRROR                         = 0x2\n\tDEVLINK_TRAP_TYPE_DROP                             = 0x0\n\tDEVLINK_TRAP_TYPE_EXCEPTION                        = 0x1\n\tDEVLINK_TRAP_TYPE_CONTROL                          = 0x2\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT            = 0x0\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE          = 0x1\n\tDEVLINK_RELOAD_ACTION_UNSPEC                       = 0x0\n\tDEVLINK_RELOAD_ACTION_DRIVER_REINIT                = 0x1\n\tDEVLINK_RELOAD_ACTION_FW_ACTIVATE                  = 0x2\n\tDEVLINK_RELOAD_ACTION_MAX                          = 0x2\n\tDEVLINK_RELOAD_LIMIT_UNSPEC                        = 0x0\n\tDEVLINK_RELOAD_LIMIT_NO_RESET                      = 0x1\n\tDEVLINK_RELOAD_LIMIT_MAX                           = 0x1\n\tDEVLINK_ATTR_UNSPEC                                = 0x0\n\tDEVLINK_ATTR_BUS_NAME                              = 0x1\n\tDEVLINK_ATTR_DEV_NAME                              = 0x2\n\tDEVLINK_ATTR_PORT_INDEX                            = 0x3\n\tDEVLINK_ATTR_PORT_TYPE                             = 0x4\n\tDEVLINK_ATTR_PORT_DESIRED_TYPE                     = 0x5\n\tDEVLINK_ATTR_PORT_NETDEV_IFINDEX                   = 0x6\n\tDEVLINK_ATTR_PORT_NETDEV_NAME                      = 0x7\n\tDEVLINK_ATTR_PORT_IBDEV_NAME                       = 0x8\n\tDEVLINK_ATTR_PORT_SPLIT_COUNT                      = 0x9\n\tDEVLINK_ATTR_PORT_SPLIT_GROUP                      = 0xa\n\tDEVLINK_ATTR_SB_INDEX                              = 0xb\n\tDEVLINK_ATTR_SB_SIZE                               = 0xc\n\tDEVLINK_ATTR_SB_INGRESS_POOL_COUNT                 = 0xd\n\tDEVLINK_ATTR_SB_EGRESS_POOL_COUNT                  = 0xe\n\tDEVLINK_ATTR_SB_INGRESS_TC_COUNT                   = 0xf\n\tDEVLINK_ATTR_SB_EGRESS_TC_COUNT                    = 0x10\n\tDEVLINK_ATTR_SB_POOL_INDEX                         = 0x11\n\tDEVLINK_ATTR_SB_POOL_TYPE                          = 0x12\n\tDEVLINK_ATTR_SB_POOL_SIZE                          = 0x13\n\tDEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE                = 0x14\n\tDEVLINK_ATTR_SB_THRESHOLD                          = 0x15\n\tDEVLINK_ATTR_SB_TC_INDEX                           = 0x16\n\tDEVLINK_ATTR_SB_OCC_CUR                            = 0x17\n\tDEVLINK_ATTR_SB_OCC_MAX                            = 0x18\n\tDEVLINK_ATTR_ESWITCH_MODE                          = 0x19\n\tDEVLINK_ATTR_ESWITCH_INLINE_MODE                   = 0x1a\n\tDEVLINK_ATTR_DPIPE_TABLES                          = 0x1b\n\tDEVLINK_ATTR_DPIPE_TABLE                           = 0x1c\n\tDEVLINK_ATTR_DPIPE_TABLE_NAME                      = 0x1d\n\tDEVLINK_ATTR_DPIPE_TABLE_SIZE                      = 0x1e\n\tDEVLINK_ATTR_DPIPE_TABLE_MATCHES                   = 0x1f\n\tDEVLINK_ATTR_DPIPE_TABLE_ACTIONS                   = 0x20\n\tDEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED          = 0x21\n\tDEVLINK_ATTR_DPIPE_ENTRIES                         = 0x22\n\tDEVLINK_ATTR_DPIPE_ENTRY                           = 0x23\n\tDEVLINK_ATTR_DPIPE_ENTRY_INDEX                     = 0x24\n\tDEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES              = 0x25\n\tDEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES             = 0x26\n\tDEVLINK_ATTR_DPIPE_ENTRY_COUNTER                   = 0x27\n\tDEVLINK_ATTR_DPIPE_MATCH                           = 0x28\n\tDEVLINK_ATTR_DPIPE_MATCH_VALUE                     = 0x29\n\tDEVLINK_ATTR_DPIPE_MATCH_TYPE                      = 0x2a\n\tDEVLINK_ATTR_DPIPE_ACTION                          = 0x2b\n\tDEVLINK_ATTR_DPIPE_ACTION_VALUE                    = 0x2c\n\tDEVLINK_ATTR_DPIPE_ACTION_TYPE                     = 0x2d\n\tDEVLINK_ATTR_DPIPE_VALUE                           = 0x2e\n\tDEVLINK_ATTR_DPIPE_VALUE_MASK                      = 0x2f\n\tDEVLINK_ATTR_DPIPE_VALUE_MAPPING                   = 0x30\n\tDEVLINK_ATTR_DPIPE_HEADERS                         = 0x31\n\tDEVLINK_ATTR_DPIPE_HEADER                          = 0x32\n\tDEVLINK_ATTR_DPIPE_HEADER_NAME                     = 0x33\n\tDEVLINK_ATTR_DPIPE_HEADER_ID                       = 0x34\n\tDEVLINK_ATTR_DPIPE_HEADER_FIELDS                   = 0x35\n\tDEVLINK_ATTR_DPIPE_HEADER_GLOBAL                   = 0x36\n\tDEVLINK_ATTR_DPIPE_HEADER_INDEX                    = 0x37\n\tDEVLINK_ATTR_DPIPE_FIELD                           = 0x38\n\tDEVLINK_ATTR_DPIPE_FIELD_NAME                      = 0x39\n\tDEVLINK_ATTR_DPIPE_FIELD_ID                        = 0x3a\n\tDEVLINK_ATTR_DPIPE_FIELD_BITWIDTH                  = 0x3b\n\tDEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE              = 0x3c\n\tDEVLINK_ATTR_PAD                                   = 0x3d\n\tDEVLINK_ATTR_ESWITCH_ENCAP_MODE                    = 0x3e\n\tDEVLINK_ATTR_RESOURCE_LIST                         = 0x3f\n\tDEVLINK_ATTR_RESOURCE                              = 0x40\n\tDEVLINK_ATTR_RESOURCE_NAME                         = 0x41\n\tDEVLINK_ATTR_RESOURCE_ID                           = 0x42\n\tDEVLINK_ATTR_RESOURCE_SIZE                         = 0x43\n\tDEVLINK_ATTR_RESOURCE_SIZE_NEW                     = 0x44\n\tDEVLINK_ATTR_RESOURCE_SIZE_VALID                   = 0x45\n\tDEVLINK_ATTR_RESOURCE_SIZE_MIN                     = 0x46\n\tDEVLINK_ATTR_RESOURCE_SIZE_MAX                     = 0x47\n\tDEVLINK_ATTR_RESOURCE_SIZE_GRAN                    = 0x48\n\tDEVLINK_ATTR_RESOURCE_UNIT                         = 0x49\n\tDEVLINK_ATTR_RESOURCE_OCC                          = 0x4a\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID               = 0x4b\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS            = 0x4c\n\tDEVLINK_ATTR_PORT_FLAVOUR                          = 0x4d\n\tDEVLINK_ATTR_PORT_NUMBER                           = 0x4e\n\tDEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER             = 0x4f\n\tDEVLINK_ATTR_PARAM                                 = 0x50\n\tDEVLINK_ATTR_PARAM_NAME                            = 0x51\n\tDEVLINK_ATTR_PARAM_GENERIC                         = 0x52\n\tDEVLINK_ATTR_PARAM_TYPE                            = 0x53\n\tDEVLINK_ATTR_PARAM_VALUES_LIST                     = 0x54\n\tDEVLINK_ATTR_PARAM_VALUE                           = 0x55\n\tDEVLINK_ATTR_PARAM_VALUE_DATA                      = 0x56\n\tDEVLINK_ATTR_PARAM_VALUE_CMODE                     = 0x57\n\tDEVLINK_ATTR_REGION_NAME                           = 0x58\n\tDEVLINK_ATTR_REGION_SIZE                           = 0x59\n\tDEVLINK_ATTR_REGION_SNAPSHOTS                      = 0x5a\n\tDEVLINK_ATTR_REGION_SNAPSHOT                       = 0x5b\n\tDEVLINK_ATTR_REGION_SNAPSHOT_ID                    = 0x5c\n\tDEVLINK_ATTR_REGION_CHUNKS                         = 0x5d\n\tDEVLINK_ATTR_REGION_CHUNK                          = 0x5e\n\tDEVLINK_ATTR_REGION_CHUNK_DATA                     = 0x5f\n\tDEVLINK_ATTR_REGION_CHUNK_ADDR                     = 0x60\n\tDEVLINK_ATTR_REGION_CHUNK_LEN                      = 0x61\n\tDEVLINK_ATTR_INFO_DRIVER_NAME                      = 0x62\n\tDEVLINK_ATTR_INFO_SERIAL_NUMBER                    = 0x63\n\tDEVLINK_ATTR_INFO_VERSION_FIXED                    = 0x64\n\tDEVLINK_ATTR_INFO_VERSION_RUNNING                  = 0x65\n\tDEVLINK_ATTR_INFO_VERSION_STORED                   = 0x66\n\tDEVLINK_ATTR_INFO_VERSION_NAME                     = 0x67\n\tDEVLINK_ATTR_INFO_VERSION_VALUE                    = 0x68\n\tDEVLINK_ATTR_SB_POOL_CELL_SIZE                     = 0x69\n\tDEVLINK_ATTR_FMSG                                  = 0x6a\n\tDEVLINK_ATTR_FMSG_OBJ_NEST_START                   = 0x6b\n\tDEVLINK_ATTR_FMSG_PAIR_NEST_START                  = 0x6c\n\tDEVLINK_ATTR_FMSG_ARR_NEST_START                   = 0x6d\n\tDEVLINK_ATTR_FMSG_NEST_END                         = 0x6e\n\tDEVLINK_ATTR_FMSG_OBJ_NAME                         = 0x6f\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE                   = 0x70\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_DATA                   = 0x71\n\tDEVLINK_ATTR_HEALTH_REPORTER                       = 0x72\n\tDEVLINK_ATTR_HEALTH_REPORTER_NAME                  = 0x73\n\tDEVLINK_ATTR_HEALTH_REPORTER_STATE                 = 0x74\n\tDEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT             = 0x75\n\tDEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT         = 0x76\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS               = 0x77\n\tDEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD       = 0x78\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER          = 0x79\n\tDEVLINK_ATTR_FLASH_UPDATE_FILE_NAME                = 0x7a\n\tDEVLINK_ATTR_FLASH_UPDATE_COMPONENT                = 0x7b\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG               = 0x7c\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE              = 0x7d\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL             = 0x7e\n\tDEVLINK_ATTR_PORT_PCI_PF_NUMBER                    = 0x7f\n\tDEVLINK_ATTR_PORT_PCI_VF_NUMBER                    = 0x80\n\tDEVLINK_ATTR_STATS                                 = 0x81\n\tDEVLINK_ATTR_TRAP_NAME                             = 0x82\n\tDEVLINK_ATTR_TRAP_ACTION                           = 0x83\n\tDEVLINK_ATTR_TRAP_TYPE                             = 0x84\n\tDEVLINK_ATTR_TRAP_GENERIC                          = 0x85\n\tDEVLINK_ATTR_TRAP_METADATA                         = 0x86\n\tDEVLINK_ATTR_TRAP_GROUP_NAME                       = 0x87\n\tDEVLINK_ATTR_RELOAD_FAILED                         = 0x88\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS            = 0x89\n\tDEVLINK_ATTR_NETNS_FD                              = 0x8a\n\tDEVLINK_ATTR_NETNS_PID                             = 0x8b\n\tDEVLINK_ATTR_NETNS_ID                              = 0x8c\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP             = 0x8d\n\tDEVLINK_ATTR_TRAP_POLICER_ID                       = 0x8e\n\tDEVLINK_ATTR_TRAP_POLICER_RATE                     = 0x8f\n\tDEVLINK_ATTR_TRAP_POLICER_BURST                    = 0x90\n\tDEVLINK_ATTR_PORT_FUNCTION                         = 0x91\n\tDEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER              = 0x92\n\tDEVLINK_ATTR_PORT_LANES                            = 0x93\n\tDEVLINK_ATTR_PORT_SPLITTABLE                       = 0x94\n\tDEVLINK_ATTR_PORT_EXTERNAL                         = 0x95\n\tDEVLINK_ATTR_PORT_CONTROLLER_NUMBER                = 0x96\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT           = 0x97\n\tDEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK           = 0x98\n\tDEVLINK_ATTR_RELOAD_ACTION                         = 0x99\n\tDEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED              = 0x9a\n\tDEVLINK_ATTR_RELOAD_LIMITS                         = 0x9b\n\tDEVLINK_ATTR_DEV_STATS                             = 0x9c\n\tDEVLINK_ATTR_RELOAD_STATS                          = 0x9d\n\tDEVLINK_ATTR_RELOAD_STATS_ENTRY                    = 0x9e\n\tDEVLINK_ATTR_RELOAD_STATS_LIMIT                    = 0x9f\n\tDEVLINK_ATTR_RELOAD_STATS_VALUE                    = 0xa0\n\tDEVLINK_ATTR_REMOTE_RELOAD_STATS                   = 0xa1\n\tDEVLINK_ATTR_RELOAD_ACTION_INFO                    = 0xa2\n\tDEVLINK_ATTR_RELOAD_ACTION_STATS                   = 0xa3\n\tDEVLINK_ATTR_PORT_PCI_SF_NUMBER                    = 0xa4\n\tDEVLINK_ATTR_RATE_TYPE                             = 0xa5\n\tDEVLINK_ATTR_RATE_TX_SHARE                         = 0xa6\n\tDEVLINK_ATTR_RATE_TX_MAX                           = 0xa7\n\tDEVLINK_ATTR_RATE_NODE_NAME                        = 0xa8\n\tDEVLINK_ATTR_RATE_PARENT_NODE_NAME                 = 0xa9\n\tDEVLINK_ATTR_REGION_MAX_SNAPSHOTS                  = 0xaa\n\tDEVLINK_ATTR_LINECARD_INDEX                        = 0xab\n\tDEVLINK_ATTR_LINECARD_STATE                        = 0xac\n\tDEVLINK_ATTR_LINECARD_TYPE                         = 0xad\n\tDEVLINK_ATTR_LINECARD_SUPPORTED_TYPES              = 0xae\n\tDEVLINK_ATTR_NESTED_DEVLINK                        = 0xaf\n\tDEVLINK_ATTR_SELFTESTS                             = 0xb0\n\tDEVLINK_ATTR_MAX                                   = 0xb3\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE              = 0x0\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX           = 0x1\n\tDEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT               = 0x0\n\tDEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY             = 0x0\n\tDEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC               = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV4_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV6_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_HEADER_ETHERNET                      = 0x0\n\tDEVLINK_DPIPE_HEADER_IPV4                          = 0x1\n\tDEVLINK_DPIPE_HEADER_IPV6                          = 0x2\n\tDEVLINK_RESOURCE_UNIT_ENTRY                        = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_UNSPEC                  = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_HW_ADDR                 = 0x1\n\tDEVLINK_PORT_FN_ATTR_STATE                         = 0x2\n\tDEVLINK_PORT_FN_ATTR_OPSTATE                       = 0x3\n\tDEVLINK_PORT_FN_ATTR_CAPS                          = 0x4\n\tDEVLINK_PORT_FUNCTION_ATTR_MAX                     = 0x6\n)\n\ntype FsverityDigest struct {\n\tAlgorithm uint16\n\tSize      uint16\n}\n\ntype FsverityEnableArg struct {\n\tVersion        uint32\n\tHash_algorithm uint32\n\tBlock_size     uint32\n\tSalt_size      uint32\n\tSalt_ptr       uint64\n\tSig_size       uint32\n\t_              uint32\n\tSig_ptr        uint64\n\t_              [11]uint64\n}\n\ntype Nhmsg struct {\n\tFamily   uint8\n\tScope    uint8\n\tProtocol uint8\n\tResvd    uint8\n\tFlags    uint32\n}\n\nconst SizeofNhmsg = 0x8\n\ntype NexthopGrp struct {\n\tId     uint32\n\tWeight uint8\n\tHigh   uint8\n\tResvd2 uint16\n}\n\nconst SizeofNexthopGrp = 0x8\n\nconst (\n\tNHA_UNSPEC     = 0x0\n\tNHA_ID         = 0x1\n\tNHA_GROUP      = 0x2\n\tNHA_GROUP_TYPE = 0x3\n\tNHA_BLACKHOLE  = 0x4\n\tNHA_OIF        = 0x5\n\tNHA_GATEWAY    = 0x6\n\tNHA_ENCAP_TYPE = 0x7\n\tNHA_ENCAP      = 0x8\n\tNHA_GROUPS     = 0x9\n\tNHA_MASTER     = 0xa\n)\n\nconst (\n\tCAN_RAW_FILTER        = 0x1\n\tCAN_RAW_ERR_FILTER    = 0x2\n\tCAN_RAW_LOOPBACK      = 0x3\n\tCAN_RAW_RECV_OWN_MSGS = 0x4\n\tCAN_RAW_FD_FRAMES     = 0x5\n\tCAN_RAW_JOIN_FILTERS  = 0x6\n)\n\ntype WatchdogInfo struct {\n\tOptions  uint32\n\tVersion  uint32\n\tIdentity [32]uint8\n}\n\ntype PPSFData struct {\n\tInfo    PPSKInfo\n\tTimeout PPSKTime\n}\n\ntype PPSKParams struct {\n\tApi_version   int32\n\tMode          int32\n\tAssert_off_tu PPSKTime\n\tClear_off_tu  PPSKTime\n}\n\ntype PPSKTime struct {\n\tSec   int64\n\tNsec  int32\n\tFlags uint32\n}\n\nconst (\n\tLWTUNNEL_ENCAP_NONE       = 0x0\n\tLWTUNNEL_ENCAP_MPLS       = 0x1\n\tLWTUNNEL_ENCAP_IP         = 0x2\n\tLWTUNNEL_ENCAP_ILA        = 0x3\n\tLWTUNNEL_ENCAP_IP6        = 0x4\n\tLWTUNNEL_ENCAP_SEG6       = 0x5\n\tLWTUNNEL_ENCAP_BPF        = 0x6\n\tLWTUNNEL_ENCAP_SEG6_LOCAL = 0x7\n\tLWTUNNEL_ENCAP_RPL        = 0x8\n\tLWTUNNEL_ENCAP_IOAM6      = 0x9\n\tLWTUNNEL_ENCAP_XFRM       = 0xa\n\tLWTUNNEL_ENCAP_MAX        = 0xa\n\n\tMPLS_IPTUNNEL_UNSPEC = 0x0\n\tMPLS_IPTUNNEL_DST    = 0x1\n\tMPLS_IPTUNNEL_TTL    = 0x2\n\tMPLS_IPTUNNEL_MAX    = 0x2\n)\n\nconst (\n\tETHTOOL_ID_UNSPEC                                                       = 0x0\n\tETHTOOL_RX_COPYBREAK                                                    = 0x1\n\tETHTOOL_TX_COPYBREAK                                                    = 0x2\n\tETHTOOL_PFC_PREVENTION_TOUT                                             = 0x3\n\tETHTOOL_TUNABLE_UNSPEC                                                  = 0x0\n\tETHTOOL_TUNABLE_U8                                                      = 0x1\n\tETHTOOL_TUNABLE_U16                                                     = 0x2\n\tETHTOOL_TUNABLE_U32                                                     = 0x3\n\tETHTOOL_TUNABLE_U64                                                     = 0x4\n\tETHTOOL_TUNABLE_STRING                                                  = 0x5\n\tETHTOOL_TUNABLE_S8                                                      = 0x6\n\tETHTOOL_TUNABLE_S16                                                     = 0x7\n\tETHTOOL_TUNABLE_S32                                                     = 0x8\n\tETHTOOL_TUNABLE_S64                                                     = 0x9\n\tETHTOOL_PHY_ID_UNSPEC                                                   = 0x0\n\tETHTOOL_PHY_DOWNSHIFT                                                   = 0x1\n\tETHTOOL_PHY_FAST_LINK_DOWN                                              = 0x2\n\tETHTOOL_PHY_EDPD                                                        = 0x3\n\tETHTOOL_LINK_EXT_STATE_AUTONEG                                          = 0x0\n\tETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE                            = 0x1\n\tETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH                            = 0x2\n\tETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY                             = 0x3\n\tETHTOOL_LINK_EXT_STATE_NO_CABLE                                         = 0x4\n\tETHTOOL_LINK_EXT_STATE_CABLE_ISSUE                                      = 0x5\n\tETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE                                     = 0x6\n\tETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE                              = 0x7\n\tETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED                            = 0x8\n\tETHTOOL_LINK_EXT_STATE_OVERHEAT                                         = 0x9\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED                        = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED                           = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED                  = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE             = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE               = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD                                     = 0x6\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED                 = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT                    = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT                               = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK            = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK               = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS              = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED                      = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED                      = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS           = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE                          = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE                          = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE                         = 0x2\n\tETHTOOL_FLASH_ALL_REGIONS                                               = 0x0\n\tETHTOOL_F_UNSUPPORTED__BIT                                              = 0x0\n\tETHTOOL_F_WISH__BIT                                                     = 0x1\n\tETHTOOL_F_COMPAT__BIT                                                   = 0x2\n\tETHTOOL_FEC_NONE_BIT                                                    = 0x0\n\tETHTOOL_FEC_AUTO_BIT                                                    = 0x1\n\tETHTOOL_FEC_OFF_BIT                                                     = 0x2\n\tETHTOOL_FEC_RS_BIT                                                      = 0x3\n\tETHTOOL_FEC_BASER_BIT                                                   = 0x4\n\tETHTOOL_FEC_LLRS_BIT                                                    = 0x5\n\tETHTOOL_LINK_MODE_10baseT_Half_BIT                                      = 0x0\n\tETHTOOL_LINK_MODE_10baseT_Full_BIT                                      = 0x1\n\tETHTOOL_LINK_MODE_100baseT_Half_BIT                                     = 0x2\n\tETHTOOL_LINK_MODE_100baseT_Full_BIT                                     = 0x3\n\tETHTOOL_LINK_MODE_1000baseT_Half_BIT                                    = 0x4\n\tETHTOOL_LINK_MODE_1000baseT_Full_BIT                                    = 0x5\n\tETHTOOL_LINK_MODE_Autoneg_BIT                                           = 0x6\n\tETHTOOL_LINK_MODE_TP_BIT                                                = 0x7\n\tETHTOOL_LINK_MODE_AUI_BIT                                               = 0x8\n\tETHTOOL_LINK_MODE_MII_BIT                                               = 0x9\n\tETHTOOL_LINK_MODE_FIBRE_BIT                                             = 0xa\n\tETHTOOL_LINK_MODE_BNC_BIT                                               = 0xb\n\tETHTOOL_LINK_MODE_10000baseT_Full_BIT                                   = 0xc\n\tETHTOOL_LINK_MODE_Pause_BIT                                             = 0xd\n\tETHTOOL_LINK_MODE_Asym_Pause_BIT                                        = 0xe\n\tETHTOOL_LINK_MODE_2500baseX_Full_BIT                                    = 0xf\n\tETHTOOL_LINK_MODE_Backplane_BIT                                         = 0x10\n\tETHTOOL_LINK_MODE_1000baseKX_Full_BIT                                   = 0x11\n\tETHTOOL_LINK_MODE_10000baseKX4_Full_BIT                                 = 0x12\n\tETHTOOL_LINK_MODE_10000baseKR_Full_BIT                                  = 0x13\n\tETHTOOL_LINK_MODE_10000baseR_FEC_BIT                                    = 0x14\n\tETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT                                = 0x15\n\tETHTOOL_LINK_MODE_20000baseKR2_Full_BIT                                 = 0x16\n\tETHTOOL_LINK_MODE_40000baseKR4_Full_BIT                                 = 0x17\n\tETHTOOL_LINK_MODE_40000baseCR4_Full_BIT                                 = 0x18\n\tETHTOOL_LINK_MODE_40000baseSR4_Full_BIT                                 = 0x19\n\tETHTOOL_LINK_MODE_40000baseLR4_Full_BIT                                 = 0x1a\n\tETHTOOL_LINK_MODE_56000baseKR4_Full_BIT                                 = 0x1b\n\tETHTOOL_LINK_MODE_56000baseCR4_Full_BIT                                 = 0x1c\n\tETHTOOL_LINK_MODE_56000baseSR4_Full_BIT                                 = 0x1d\n\tETHTOOL_LINK_MODE_56000baseLR4_Full_BIT                                 = 0x1e\n\tETHTOOL_LINK_MODE_25000baseCR_Full_BIT                                  = 0x1f\n\tETHTOOL_LINK_MODE_25000baseKR_Full_BIT                                  = 0x20\n\tETHTOOL_LINK_MODE_25000baseSR_Full_BIT                                  = 0x21\n\tETHTOOL_LINK_MODE_50000baseCR2_Full_BIT                                 = 0x22\n\tETHTOOL_LINK_MODE_50000baseKR2_Full_BIT                                 = 0x23\n\tETHTOOL_LINK_MODE_100000baseKR4_Full_BIT                                = 0x24\n\tETHTOOL_LINK_MODE_100000baseSR4_Full_BIT                                = 0x25\n\tETHTOOL_LINK_MODE_100000baseCR4_Full_BIT                                = 0x26\n\tETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT                            = 0x27\n\tETHTOOL_LINK_MODE_50000baseSR2_Full_BIT                                 = 0x28\n\tETHTOOL_LINK_MODE_1000baseX_Full_BIT                                    = 0x29\n\tETHTOOL_LINK_MODE_10000baseCR_Full_BIT                                  = 0x2a\n\tETHTOOL_LINK_MODE_10000baseSR_Full_BIT                                  = 0x2b\n\tETHTOOL_LINK_MODE_10000baseLR_Full_BIT                                  = 0x2c\n\tETHTOOL_LINK_MODE_10000baseLRM_Full_BIT                                 = 0x2d\n\tETHTOOL_LINK_MODE_10000baseER_Full_BIT                                  = 0x2e\n\tETHTOOL_LINK_MODE_2500baseT_Full_BIT                                    = 0x2f\n\tETHTOOL_LINK_MODE_5000baseT_Full_BIT                                    = 0x30\n\tETHTOOL_LINK_MODE_FEC_NONE_BIT                                          = 0x31\n\tETHTOOL_LINK_MODE_FEC_RS_BIT                                            = 0x32\n\tETHTOOL_LINK_MODE_FEC_BASER_BIT                                         = 0x33\n\tETHTOOL_LINK_MODE_50000baseKR_Full_BIT                                  = 0x34\n\tETHTOOL_LINK_MODE_50000baseSR_Full_BIT                                  = 0x35\n\tETHTOOL_LINK_MODE_50000baseCR_Full_BIT                                  = 0x36\n\tETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT                            = 0x37\n\tETHTOOL_LINK_MODE_50000baseDR_Full_BIT                                  = 0x38\n\tETHTOOL_LINK_MODE_100000baseKR2_Full_BIT                                = 0x39\n\tETHTOOL_LINK_MODE_100000baseSR2_Full_BIT                                = 0x3a\n\tETHTOOL_LINK_MODE_100000baseCR2_Full_BIT                                = 0x3b\n\tETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT                        = 0x3c\n\tETHTOOL_LINK_MODE_100000baseDR2_Full_BIT                                = 0x3d\n\tETHTOOL_LINK_MODE_200000baseKR4_Full_BIT                                = 0x3e\n\tETHTOOL_LINK_MODE_200000baseSR4_Full_BIT                                = 0x3f\n\tETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT                        = 0x40\n\tETHTOOL_LINK_MODE_200000baseDR4_Full_BIT                                = 0x41\n\tETHTOOL_LINK_MODE_200000baseCR4_Full_BIT                                = 0x42\n\tETHTOOL_LINK_MODE_100baseT1_Full_BIT                                    = 0x43\n\tETHTOOL_LINK_MODE_1000baseT1_Full_BIT                                   = 0x44\n\tETHTOOL_LINK_MODE_400000baseKR8_Full_BIT                                = 0x45\n\tETHTOOL_LINK_MODE_400000baseSR8_Full_BIT                                = 0x46\n\tETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT                        = 0x47\n\tETHTOOL_LINK_MODE_400000baseDR8_Full_BIT                                = 0x48\n\tETHTOOL_LINK_MODE_400000baseCR8_Full_BIT                                = 0x49\n\tETHTOOL_LINK_MODE_FEC_LLRS_BIT                                          = 0x4a\n\tETHTOOL_LINK_MODE_100000baseKR_Full_BIT                                 = 0x4b\n\tETHTOOL_LINK_MODE_100000baseSR_Full_BIT                                 = 0x4c\n\tETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT                           = 0x4d\n\tETHTOOL_LINK_MODE_100000baseCR_Full_BIT                                 = 0x4e\n\tETHTOOL_LINK_MODE_100000baseDR_Full_BIT                                 = 0x4f\n\tETHTOOL_LINK_MODE_200000baseKR2_Full_BIT                                = 0x50\n\tETHTOOL_LINK_MODE_200000baseSR2_Full_BIT                                = 0x51\n\tETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT                        = 0x52\n\tETHTOOL_LINK_MODE_200000baseDR2_Full_BIT                                = 0x53\n\tETHTOOL_LINK_MODE_200000baseCR2_Full_BIT                                = 0x54\n\tETHTOOL_LINK_MODE_400000baseKR4_Full_BIT                                = 0x55\n\tETHTOOL_LINK_MODE_400000baseSR4_Full_BIT                                = 0x56\n\tETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT                        = 0x57\n\tETHTOOL_LINK_MODE_400000baseDR4_Full_BIT                                = 0x58\n\tETHTOOL_LINK_MODE_400000baseCR4_Full_BIT                                = 0x59\n\tETHTOOL_LINK_MODE_100baseFX_Half_BIT                                    = 0x5a\n\tETHTOOL_LINK_MODE_100baseFX_Full_BIT                                    = 0x5b\n\n\tETHTOOL_MSG_USER_NONE                     = 0x0\n\tETHTOOL_MSG_STRSET_GET                    = 0x1\n\tETHTOOL_MSG_LINKINFO_GET                  = 0x2\n\tETHTOOL_MSG_LINKINFO_SET                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET                 = 0x4\n\tETHTOOL_MSG_LINKMODES_SET                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET                 = 0x6\n\tETHTOOL_MSG_DEBUG_GET                     = 0x7\n\tETHTOOL_MSG_DEBUG_SET                     = 0x8\n\tETHTOOL_MSG_WOL_GET                       = 0x9\n\tETHTOOL_MSG_WOL_SET                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET                  = 0xb\n\tETHTOOL_MSG_FEATURES_SET                  = 0xc\n\tETHTOOL_MSG_PRIVFLAGS_GET                 = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_SET                 = 0xe\n\tETHTOOL_MSG_RINGS_GET                     = 0xf\n\tETHTOOL_MSG_RINGS_SET                     = 0x10\n\tETHTOOL_MSG_CHANNELS_GET                  = 0x11\n\tETHTOOL_MSG_CHANNELS_SET                  = 0x12\n\tETHTOOL_MSG_COALESCE_GET                  = 0x13\n\tETHTOOL_MSG_COALESCE_SET                  = 0x14\n\tETHTOOL_MSG_PAUSE_GET                     = 0x15\n\tETHTOOL_MSG_PAUSE_SET                     = 0x16\n\tETHTOOL_MSG_EEE_GET                       = 0x17\n\tETHTOOL_MSG_EEE_SET                       = 0x18\n\tETHTOOL_MSG_TSINFO_GET                    = 0x19\n\tETHTOOL_MSG_CABLE_TEST_ACT                = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_TDR_ACT            = 0x1b\n\tETHTOOL_MSG_TUNNEL_INFO_GET               = 0x1c\n\tETHTOOL_MSG_FEC_GET                       = 0x1d\n\tETHTOOL_MSG_FEC_SET                       = 0x1e\n\tETHTOOL_MSG_MODULE_EEPROM_GET             = 0x1f\n\tETHTOOL_MSG_STATS_GET                     = 0x20\n\tETHTOOL_MSG_PHC_VCLOCKS_GET               = 0x21\n\tETHTOOL_MSG_MODULE_GET                    = 0x22\n\tETHTOOL_MSG_MODULE_SET                    = 0x23\n\tETHTOOL_MSG_PSE_GET                       = 0x24\n\tETHTOOL_MSG_PSE_SET                       = 0x25\n\tETHTOOL_MSG_RSS_GET                       = 0x26\n\tETHTOOL_MSG_PLCA_GET_CFG                  = 0x27\n\tETHTOOL_MSG_PLCA_SET_CFG                  = 0x28\n\tETHTOOL_MSG_PLCA_GET_STATUS               = 0x29\n\tETHTOOL_MSG_MM_GET                        = 0x2a\n\tETHTOOL_MSG_MM_SET                        = 0x2b\n\tETHTOOL_MSG_MODULE_FW_FLASH_ACT           = 0x2c\n\tETHTOOL_MSG_PHY_GET                       = 0x2d\n\tETHTOOL_MSG_TSCONFIG_GET                  = 0x2e\n\tETHTOOL_MSG_TSCONFIG_SET                  = 0x2f\n\tETHTOOL_MSG_USER_MAX                      = 0x2f\n\tETHTOOL_MSG_KERNEL_NONE                   = 0x0\n\tETHTOOL_MSG_STRSET_GET_REPLY              = 0x1\n\tETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2\n\tETHTOOL_MSG_LINKINFO_NTF                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET_REPLY           = 0x4\n\tETHTOOL_MSG_LINKMODES_NTF                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET_REPLY           = 0x6\n\tETHTOOL_MSG_DEBUG_GET_REPLY               = 0x7\n\tETHTOOL_MSG_DEBUG_NTF                     = 0x8\n\tETHTOOL_MSG_WOL_GET_REPLY                 = 0x9\n\tETHTOOL_MSG_WOL_NTF                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET_REPLY            = 0xb\n\tETHTOOL_MSG_FEATURES_SET_REPLY            = 0xc\n\tETHTOOL_MSG_FEATURES_NTF                  = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_GET_REPLY           = 0xe\n\tETHTOOL_MSG_PRIVFLAGS_NTF                 = 0xf\n\tETHTOOL_MSG_RINGS_GET_REPLY               = 0x10\n\tETHTOOL_MSG_RINGS_NTF                     = 0x11\n\tETHTOOL_MSG_CHANNELS_GET_REPLY            = 0x12\n\tETHTOOL_MSG_CHANNELS_NTF                  = 0x13\n\tETHTOOL_MSG_COALESCE_GET_REPLY            = 0x14\n\tETHTOOL_MSG_COALESCE_NTF                  = 0x15\n\tETHTOOL_MSG_PAUSE_GET_REPLY               = 0x16\n\tETHTOOL_MSG_PAUSE_NTF                     = 0x17\n\tETHTOOL_MSG_EEE_GET_REPLY                 = 0x18\n\tETHTOOL_MSG_EEE_NTF                       = 0x19\n\tETHTOOL_MSG_TSINFO_GET_REPLY              = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_NTF                = 0x1b\n\tETHTOOL_MSG_CABLE_TEST_TDR_NTF            = 0x1c\n\tETHTOOL_MSG_TUNNEL_INFO_GET_REPLY         = 0x1d\n\tETHTOOL_MSG_FEC_GET_REPLY                 = 0x1e\n\tETHTOOL_MSG_FEC_NTF                       = 0x1f\n\tETHTOOL_MSG_MODULE_EEPROM_GET_REPLY       = 0x20\n\tETHTOOL_MSG_STATS_GET_REPLY               = 0x21\n\tETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY         = 0x22\n\tETHTOOL_MSG_MODULE_GET_REPLY              = 0x23\n\tETHTOOL_MSG_MODULE_NTF                    = 0x24\n\tETHTOOL_MSG_PSE_GET_REPLY                 = 0x25\n\tETHTOOL_MSG_RSS_GET_REPLY                 = 0x26\n\tETHTOOL_MSG_PLCA_GET_CFG_REPLY            = 0x27\n\tETHTOOL_MSG_PLCA_GET_STATUS_REPLY         = 0x28\n\tETHTOOL_MSG_PLCA_NTF                      = 0x29\n\tETHTOOL_MSG_MM_GET_REPLY                  = 0x2a\n\tETHTOOL_MSG_MM_NTF                        = 0x2b\n\tETHTOOL_MSG_MODULE_FW_FLASH_NTF           = 0x2c\n\tETHTOOL_MSG_PHY_GET_REPLY                 = 0x2d\n\tETHTOOL_MSG_PHY_NTF                       = 0x2e\n\tETHTOOL_MSG_TSCONFIG_GET_REPLY            = 0x2f\n\tETHTOOL_MSG_TSCONFIG_SET_REPLY            = 0x30\n\tETHTOOL_MSG_KERNEL_MAX                    = 0x30\n\tETHTOOL_FLAG_COMPACT_BITSETS              = 0x1\n\tETHTOOL_FLAG_OMIT_REPLY                   = 0x2\n\tETHTOOL_FLAG_STATS                        = 0x4\n\tETHTOOL_A_HEADER_UNSPEC                   = 0x0\n\tETHTOOL_A_HEADER_DEV_INDEX                = 0x1\n\tETHTOOL_A_HEADER_DEV_NAME                 = 0x2\n\tETHTOOL_A_HEADER_FLAGS                    = 0x3\n\tETHTOOL_A_HEADER_MAX                      = 0x4\n\tETHTOOL_A_BITSET_BIT_UNSPEC               = 0x0\n\tETHTOOL_A_BITSET_BIT_INDEX                = 0x1\n\tETHTOOL_A_BITSET_BIT_NAME                 = 0x2\n\tETHTOOL_A_BITSET_BIT_VALUE                = 0x3\n\tETHTOOL_A_BITSET_BIT_MAX                  = 0x3\n\tETHTOOL_A_BITSET_BITS_UNSPEC              = 0x0\n\tETHTOOL_A_BITSET_BITS_BIT                 = 0x1\n\tETHTOOL_A_BITSET_BITS_MAX                 = 0x1\n\tETHTOOL_A_BITSET_UNSPEC                   = 0x0\n\tETHTOOL_A_BITSET_NOMASK                   = 0x1\n\tETHTOOL_A_BITSET_SIZE                     = 0x2\n\tETHTOOL_A_BITSET_BITS                     = 0x3\n\tETHTOOL_A_BITSET_VALUE                    = 0x4\n\tETHTOOL_A_BITSET_MASK                     = 0x5\n\tETHTOOL_A_BITSET_MAX                      = 0x5\n\tETHTOOL_A_STRING_UNSPEC                   = 0x0\n\tETHTOOL_A_STRING_INDEX                    = 0x1\n\tETHTOOL_A_STRING_VALUE                    = 0x2\n\tETHTOOL_A_STRING_MAX                      = 0x2\n\tETHTOOL_A_STRINGS_UNSPEC                  = 0x0\n\tETHTOOL_A_STRINGS_STRING                  = 0x1\n\tETHTOOL_A_STRINGS_MAX                     = 0x1\n\tETHTOOL_A_STRINGSET_UNSPEC                = 0x0\n\tETHTOOL_A_STRINGSET_ID                    = 0x1\n\tETHTOOL_A_STRINGSET_COUNT                 = 0x2\n\tETHTOOL_A_STRINGSET_STRINGS               = 0x3\n\tETHTOOL_A_STRINGSET_MAX                   = 0x3\n\tETHTOOL_A_STRINGSETS_UNSPEC               = 0x0\n\tETHTOOL_A_STRINGSETS_STRINGSET            = 0x1\n\tETHTOOL_A_STRINGSETS_MAX                  = 0x1\n\tETHTOOL_A_STRSET_UNSPEC                   = 0x0\n\tETHTOOL_A_STRSET_HEADER                   = 0x1\n\tETHTOOL_A_STRSET_STRINGSETS               = 0x2\n\tETHTOOL_A_STRSET_COUNTS_ONLY              = 0x3\n\tETHTOOL_A_STRSET_MAX                      = 0x3\n\tETHTOOL_A_LINKINFO_UNSPEC                 = 0x0\n\tETHTOOL_A_LINKINFO_HEADER                 = 0x1\n\tETHTOOL_A_LINKINFO_PORT                   = 0x2\n\tETHTOOL_A_LINKINFO_PHYADDR                = 0x3\n\tETHTOOL_A_LINKINFO_TP_MDIX                = 0x4\n\tETHTOOL_A_LINKINFO_TP_MDIX_CTRL           = 0x5\n\tETHTOOL_A_LINKINFO_TRANSCEIVER            = 0x6\n\tETHTOOL_A_LINKINFO_MAX                    = 0x6\n\tETHTOOL_A_LINKMODES_UNSPEC                = 0x0\n\tETHTOOL_A_LINKMODES_HEADER                = 0x1\n\tETHTOOL_A_LINKMODES_AUTONEG               = 0x2\n\tETHTOOL_A_LINKMODES_OURS                  = 0x3\n\tETHTOOL_A_LINKMODES_PEER                  = 0x4\n\tETHTOOL_A_LINKMODES_SPEED                 = 0x5\n\tETHTOOL_A_LINKMODES_DUPLEX                = 0x6\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG      = 0x7\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE    = 0x8\n\tETHTOOL_A_LINKMODES_LANES                 = 0x9\n\tETHTOOL_A_LINKMODES_RATE_MATCHING         = 0xa\n\tETHTOOL_A_LINKMODES_MAX                   = 0xa\n\tETHTOOL_A_LINKSTATE_UNSPEC                = 0x0\n\tETHTOOL_A_LINKSTATE_HEADER                = 0x1\n\tETHTOOL_A_LINKSTATE_LINK                  = 0x2\n\tETHTOOL_A_LINKSTATE_SQI                   = 0x3\n\tETHTOOL_A_LINKSTATE_SQI_MAX               = 0x4\n\tETHTOOL_A_LINKSTATE_EXT_STATE             = 0x5\n\tETHTOOL_A_LINKSTATE_EXT_SUBSTATE          = 0x6\n\tETHTOOL_A_LINKSTATE_EXT_DOWN_CNT          = 0x7\n\tETHTOOL_A_LINKSTATE_MAX                   = 0x7\n\tETHTOOL_A_DEBUG_UNSPEC                    = 0x0\n\tETHTOOL_A_DEBUG_HEADER                    = 0x1\n\tETHTOOL_A_DEBUG_MSGMASK                   = 0x2\n\tETHTOOL_A_DEBUG_MAX                       = 0x2\n\tETHTOOL_A_WOL_UNSPEC                      = 0x0\n\tETHTOOL_A_WOL_HEADER                      = 0x1\n\tETHTOOL_A_WOL_MODES                       = 0x2\n\tETHTOOL_A_WOL_SOPASS                      = 0x3\n\tETHTOOL_A_WOL_MAX                         = 0x3\n\tETHTOOL_A_FEATURES_UNSPEC                 = 0x0\n\tETHTOOL_A_FEATURES_HEADER                 = 0x1\n\tETHTOOL_A_FEATURES_HW                     = 0x2\n\tETHTOOL_A_FEATURES_WANTED                 = 0x3\n\tETHTOOL_A_FEATURES_ACTIVE                 = 0x4\n\tETHTOOL_A_FEATURES_NOCHANGE               = 0x5\n\tETHTOOL_A_FEATURES_MAX                    = 0x5\n\tETHTOOL_A_PRIVFLAGS_UNSPEC                = 0x0\n\tETHTOOL_A_PRIVFLAGS_HEADER                = 0x1\n\tETHTOOL_A_PRIVFLAGS_FLAGS                 = 0x2\n\tETHTOOL_A_PRIVFLAGS_MAX                   = 0x2\n\tETHTOOL_A_RINGS_UNSPEC                    = 0x0\n\tETHTOOL_A_RINGS_HEADER                    = 0x1\n\tETHTOOL_A_RINGS_RX_MAX                    = 0x2\n\tETHTOOL_A_RINGS_RX_MINI_MAX               = 0x3\n\tETHTOOL_A_RINGS_RX_JUMBO_MAX              = 0x4\n\tETHTOOL_A_RINGS_TX_MAX                    = 0x5\n\tETHTOOL_A_RINGS_RX                        = 0x6\n\tETHTOOL_A_RINGS_RX_MINI                   = 0x7\n\tETHTOOL_A_RINGS_RX_JUMBO                  = 0x8\n\tETHTOOL_A_RINGS_TX                        = 0x9\n\tETHTOOL_A_RINGS_RX_BUF_LEN                = 0xa\n\tETHTOOL_A_RINGS_TCP_DATA_SPLIT            = 0xb\n\tETHTOOL_A_RINGS_CQE_SIZE                  = 0xc\n\tETHTOOL_A_RINGS_TX_PUSH                   = 0xd\n\tETHTOOL_A_RINGS_RX_PUSH                   = 0xe\n\tETHTOOL_A_RINGS_TX_PUSH_BUF_LEN           = 0xf\n\tETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX       = 0x10\n\tETHTOOL_A_RINGS_HDS_THRESH                = 0x11\n\tETHTOOL_A_RINGS_HDS_THRESH_MAX            = 0x12\n\tETHTOOL_A_RINGS_MAX                       = 0x12\n\tETHTOOL_A_CHANNELS_UNSPEC                 = 0x0\n\tETHTOOL_A_CHANNELS_HEADER                 = 0x1\n\tETHTOOL_A_CHANNELS_RX_MAX                 = 0x2\n\tETHTOOL_A_CHANNELS_TX_MAX                 = 0x3\n\tETHTOOL_A_CHANNELS_OTHER_MAX              = 0x4\n\tETHTOOL_A_CHANNELS_COMBINED_MAX           = 0x5\n\tETHTOOL_A_CHANNELS_RX_COUNT               = 0x6\n\tETHTOOL_A_CHANNELS_TX_COUNT               = 0x7\n\tETHTOOL_A_CHANNELS_OTHER_COUNT            = 0x8\n\tETHTOOL_A_CHANNELS_COMBINED_COUNT         = 0x9\n\tETHTOOL_A_CHANNELS_MAX                    = 0x9\n\tETHTOOL_A_COALESCE_UNSPEC                 = 0x0\n\tETHTOOL_A_COALESCE_HEADER                 = 0x1\n\tETHTOOL_A_COALESCE_RX_USECS               = 0x2\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES          = 0x3\n\tETHTOOL_A_COALESCE_RX_USECS_IRQ           = 0x4\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ      = 0x5\n\tETHTOOL_A_COALESCE_TX_USECS               = 0x6\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES          = 0x7\n\tETHTOOL_A_COALESCE_TX_USECS_IRQ           = 0x8\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ      = 0x9\n\tETHTOOL_A_COALESCE_STATS_BLOCK_USECS      = 0xa\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_RX        = 0xb\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_TX        = 0xc\n\tETHTOOL_A_COALESCE_PKT_RATE_LOW           = 0xd\n\tETHTOOL_A_COALESCE_RX_USECS_LOW           = 0xe\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW      = 0xf\n\tETHTOOL_A_COALESCE_TX_USECS_LOW           = 0x10\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW      = 0x11\n\tETHTOOL_A_COALESCE_PKT_RATE_HIGH          = 0x12\n\tETHTOOL_A_COALESCE_RX_USECS_HIGH          = 0x13\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH     = 0x14\n\tETHTOOL_A_COALESCE_TX_USECS_HIGH          = 0x15\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH     = 0x16\n\tETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL   = 0x17\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_TX        = 0x18\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_RX        = 0x19\n\tETHTOOL_A_COALESCE_MAX                    = 0x1e\n\tETHTOOL_A_PAUSE_UNSPEC                    = 0x0\n\tETHTOOL_A_PAUSE_HEADER                    = 0x1\n\tETHTOOL_A_PAUSE_AUTONEG                   = 0x2\n\tETHTOOL_A_PAUSE_RX                        = 0x3\n\tETHTOOL_A_PAUSE_TX                        = 0x4\n\tETHTOOL_A_PAUSE_STATS                     = 0x5\n\tETHTOOL_A_PAUSE_MAX                       = 0x6\n\tETHTOOL_A_PAUSE_STAT_UNSPEC               = 0x0\n\tETHTOOL_A_PAUSE_STAT_PAD                  = 0x1\n\tETHTOOL_A_PAUSE_STAT_TX_FRAMES            = 0x2\n\tETHTOOL_A_PAUSE_STAT_RX_FRAMES            = 0x3\n\tETHTOOL_A_PAUSE_STAT_MAX                  = 0x3\n\tETHTOOL_A_EEE_UNSPEC                      = 0x0\n\tETHTOOL_A_EEE_HEADER                      = 0x1\n\tETHTOOL_A_EEE_MODES_OURS                  = 0x2\n\tETHTOOL_A_EEE_MODES_PEER                  = 0x3\n\tETHTOOL_A_EEE_ACTIVE                      = 0x4\n\tETHTOOL_A_EEE_ENABLED                     = 0x5\n\tETHTOOL_A_EEE_TX_LPI_ENABLED              = 0x6\n\tETHTOOL_A_EEE_TX_LPI_TIMER                = 0x7\n\tETHTOOL_A_EEE_MAX                         = 0x7\n\tETHTOOL_A_TSINFO_UNSPEC                   = 0x0\n\tETHTOOL_A_TSINFO_HEADER                   = 0x1\n\tETHTOOL_A_TSINFO_TIMESTAMPING             = 0x2\n\tETHTOOL_A_TSINFO_TX_TYPES                 = 0x3\n\tETHTOOL_A_TSINFO_RX_FILTERS               = 0x4\n\tETHTOOL_A_TSINFO_PHC_INDEX                = 0x5\n\tETHTOOL_A_TSINFO_STATS                    = 0x6\n\tETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER        = 0x7\n\tETHTOOL_A_TSINFO_MAX                      = 0x9\n\tETHTOOL_A_CABLE_TEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_TEST_HEADER               = 0x1\n\tETHTOOL_A_CABLE_TEST_MAX                  = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_UNSPEC        = 0x0\n\tETHTOOL_A_CABLE_RESULT_CODE_OK            = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_OPEN          = 0x2\n\tETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT    = 0x3\n\tETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT   = 0x4\n\tETHTOOL_A_CABLE_PAIR_A                    = 0x0\n\tETHTOOL_A_CABLE_PAIR_B                    = 0x1\n\tETHTOOL_A_CABLE_PAIR_C                    = 0x2\n\tETHTOOL_A_CABLE_PAIR_D                    = 0x3\n\tETHTOOL_A_CABLE_RESULT_UNSPEC             = 0x0\n\tETHTOOL_A_CABLE_RESULT_PAIR               = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE               = 0x2\n\tETHTOOL_A_CABLE_RESULT_MAX                = 0x3\n\tETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_FAULT_LENGTH_PAIR         = 0x1\n\tETHTOOL_A_CABLE_FAULT_LENGTH_CM           = 0x2\n\tETHTOOL_A_CABLE_FAULT_LENGTH_MAX          = 0x3\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC    = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED   = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2\n\tETHTOOL_A_CABLE_NEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_NEST_RESULT               = 0x1\n\tETHTOOL_A_CABLE_NEST_FAULT_LENGTH         = 0x2\n\tETHTOOL_A_CABLE_NEST_MAX                  = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS           = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_NEST             = 0x3\n\tETHTOOL_A_CABLE_TEST_NTF_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST        = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_LAST         = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_STEP         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR         = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_MAX          = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG              = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_MAX              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_UNSPEC          = 0x0\n\tETHTOOL_A_CABLE_AMPLITUDE_PAIR            = 0x1\n\tETHTOOL_A_CABLE_AMPLITUDE_mV              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_MAX             = 0x2\n\tETHTOOL_A_CABLE_PULSE_UNSPEC              = 0x0\n\tETHTOOL_A_CABLE_PULSE_mV                  = 0x1\n\tETHTOOL_A_CABLE_PULSE_MAX                 = 0x1\n\tETHTOOL_A_CABLE_STEP_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_STEP_FIRST_DISTANCE       = 0x1\n\tETHTOOL_A_CABLE_STEP_LAST_DISTANCE        = 0x2\n\tETHTOOL_A_CABLE_STEP_STEP_DISTANCE        = 0x3\n\tETHTOOL_A_CABLE_STEP_MAX                  = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TDR_NEST_STEP             = 0x1\n\tETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE        = 0x2\n\tETHTOOL_A_CABLE_TDR_NEST_PULSE            = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER       = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS       = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_NEST         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_MAX          = 0x3\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN             = 0x0\n\tETHTOOL_UDP_TUNNEL_TYPE_GENEVE            = 0x1\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE         = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_PORT           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE           = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_MAX            = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE_SIZE           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_TABLE_TYPES          = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY          = 0x3\n\tETHTOOL_A_TUNNEL_UDP_TABLE_MAX            = 0x3\n\tETHTOOL_A_TUNNEL_UDP_UNSPEC               = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE                = 0x1\n\tETHTOOL_A_TUNNEL_UDP_MAX                  = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UNSPEC              = 0x0\n\tETHTOOL_A_TUNNEL_INFO_HEADER              = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UDP_PORTS           = 0x2\n\tETHTOOL_A_TUNNEL_INFO_MAX                 = 0x2\n)\n\nconst (\n\tTCP_V4_FLOW    = 0x1\n\tUDP_V4_FLOW    = 0x2\n\tTCP_V6_FLOW    = 0x5\n\tUDP_V6_FLOW    = 0x6\n\tESP_V4_FLOW    = 0xa\n\tESP_V6_FLOW    = 0xc\n\tIP_USER_FLOW   = 0xd\n\tIPV6_USER_FLOW = 0xe\n\tIPV6_FLOW      = 0x11\n\tETHER_FLOW     = 0x12\n)\n\nconst SPEED_UNKNOWN = -0x1\n\ntype EthtoolDrvinfo struct {\n\tCmd          uint32\n\tDriver       [32]byte\n\tVersion      [32]byte\n\tFw_version   [32]byte\n\tBus_info     [32]byte\n\tErom_version [32]byte\n\tReserved2    [12]byte\n\tN_priv_flags uint32\n\tN_stats      uint32\n\tTestinfo_len uint32\n\tEedump_len   uint32\n\tRegdump_len  uint32\n}\n\ntype EthtoolTsInfo struct {\n\tCmd             uint32\n\tSo_timestamping uint32\n\tPhc_index       int32\n\tTx_types        uint32\n\tTx_reserved     [3]uint32\n\tRx_filters      uint32\n\tRx_reserved     [3]uint32\n}\n\ntype HwTstampConfig struct {\n\tFlags     int32\n\tTx_type   int32\n\tRx_filter int32\n}\n\nconst (\n\tHWTSTAMP_FILTER_NONE            = 0x0\n\tHWTSTAMP_FILTER_ALL             = 0x1\n\tHWTSTAMP_FILTER_SOME            = 0x2\n\tHWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3\n\tHWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6\n\tHWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9\n\tHWTSTAMP_FILTER_PTP_V2_EVENT    = 0xc\n)\n\nconst (\n\tHWTSTAMP_TX_OFF          = 0x0\n\tHWTSTAMP_TX_ON           = 0x1\n\tHWTSTAMP_TX_ONESTEP_SYNC = 0x2\n)\n\ntype (\n\tPtpClockCaps struct {\n\t\tMax_adj            int32\n\t\tN_alarm            int32\n\t\tN_ext_ts           int32\n\t\tN_per_out          int32\n\t\tPps                int32\n\t\tN_pins             int32\n\t\tCross_timestamping int32\n\t\tAdjust_phase       int32\n\t\tMax_phase_adj      int32\n\t\tRsv                [11]int32\n\t}\n\tPtpClockTime struct {\n\t\tSec      int64\n\t\tNsec     uint32\n\t\tReserved uint32\n\t}\n\tPtpExttsEvent struct {\n\t\tT     PtpClockTime\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpExttsRequest struct {\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpPeroutRequest struct {\n\t\tStartOrPhase PtpClockTime\n\t\tPeriod       PtpClockTime\n\t\tIndex        uint32\n\t\tFlags        uint32\n\t\tOn           PtpClockTime\n\t}\n\tPtpPinDesc struct {\n\t\tName  [64]byte\n\t\tIndex uint32\n\t\tFunc  uint32\n\t\tChan  uint32\n\t\tRsv   [5]uint32\n\t}\n\tPtpSysOffset struct {\n\t\tSamples uint32\n\t\tRsv     [3]uint32\n\t\tTs      [51]PtpClockTime\n\t}\n\tPtpSysOffsetExtended struct {\n\t\tSamples uint32\n\t\tClockid int32\n\t\tRsv     [2]uint32\n\t\tTs      [25][3]PtpClockTime\n\t}\n\tPtpSysOffsetPrecise struct {\n\t\tDevice   PtpClockTime\n\t\tRealtime PtpClockTime\n\t\tMonoraw  PtpClockTime\n\t\tRsv      [4]uint32\n\t}\n)\n\nconst (\n\tPTP_PF_NONE    = 0x0\n\tPTP_PF_EXTTS   = 0x1\n\tPTP_PF_PEROUT  = 0x2\n\tPTP_PF_PHYSYNC = 0x3\n)\n\ntype (\n\tHIDRawReportDescriptor struct {\n\t\tSize  uint32\n\t\tValue [4096]uint8\n\t}\n\tHIDRawDevInfo struct {\n\t\tBustype uint32\n\t\tVendor  int16\n\t\tProduct int16\n\t}\n)\n\nconst (\n\tCLOSE_RANGE_UNSHARE = 0x2\n\tCLOSE_RANGE_CLOEXEC = 0x4\n)\n\nconst (\n\tNLMSGERR_ATTR_MSG    = 0x1\n\tNLMSGERR_ATTR_OFFS   = 0x2\n\tNLMSGERR_ATTR_COOKIE = 0x3\n)\n\ntype (\n\tEraseInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t}\n\tEraseInfo64 struct {\n\t\tStart  uint64\n\t\tLength uint64\n\t}\n\tMtdOobBuf struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tPtr    *uint8\n\t}\n\tMtdOobBuf64 struct {\n\t\tStart  uint64\n\t\tPad    uint32\n\t\tLength uint32\n\t\tPtr    uint64\n\t}\n\tMtdWriteReq struct {\n\t\tStart  uint64\n\t\tLen    uint64\n\t\tOoblen uint64\n\t\tData   uint64\n\t\tOob    uint64\n\t\tMode   uint8\n\t\t_      [7]uint8\n\t}\n\tMtdInfo struct {\n\t\tType      uint8\n\t\tFlags     uint32\n\t\tSize      uint32\n\t\tErasesize uint32\n\t\tWritesize uint32\n\t\tOobsize   uint32\n\t\t_         uint64\n\t}\n\tRegionInfo struct {\n\t\tOffset      uint32\n\t\tErasesize   uint32\n\t\tNumblocks   uint32\n\t\tRegionindex uint32\n\t}\n\tOtpInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tLocked uint32\n\t}\n\tNandOobinfo struct {\n\t\tUseecc   uint32\n\t\tEccbytes uint32\n\t\tOobfree  [8][2]uint32\n\t\tEccpos   [32]uint32\n\t}\n\tNandOobfree struct {\n\t\tOffset uint32\n\t\tLength uint32\n\t}\n\tNandEcclayout struct {\n\t\tEccbytes uint32\n\t\tEccpos   [64]uint32\n\t\tOobavail uint32\n\t\tOobfree  [8]NandOobfree\n\t}\n\tMtdEccStats struct {\n\t\tCorrected uint32\n\t\tFailed    uint32\n\t\tBadblocks uint32\n\t\tBbtblocks uint32\n\t}\n)\n\nconst (\n\tMTD_OPS_PLACE_OOB = 0x0\n\tMTD_OPS_AUTO_OOB  = 0x1\n\tMTD_OPS_RAW       = 0x2\n)\n\nconst (\n\tMTD_FILE_MODE_NORMAL      = 0x0\n\tMTD_FILE_MODE_OTP_FACTORY = 0x1\n\tMTD_FILE_MODE_OTP_USER    = 0x2\n\tMTD_FILE_MODE_RAW         = 0x3\n)\n\nconst (\n\tNFC_CMD_UNSPEC                    = 0x0\n\tNFC_CMD_GET_DEVICE                = 0x1\n\tNFC_CMD_DEV_UP                    = 0x2\n\tNFC_CMD_DEV_DOWN                  = 0x3\n\tNFC_CMD_DEP_LINK_UP               = 0x4\n\tNFC_CMD_DEP_LINK_DOWN             = 0x5\n\tNFC_CMD_START_POLL                = 0x6\n\tNFC_CMD_STOP_POLL                 = 0x7\n\tNFC_CMD_GET_TARGET                = 0x8\n\tNFC_EVENT_TARGETS_FOUND           = 0x9\n\tNFC_EVENT_DEVICE_ADDED            = 0xa\n\tNFC_EVENT_DEVICE_REMOVED          = 0xb\n\tNFC_EVENT_TARGET_LOST             = 0xc\n\tNFC_EVENT_TM_ACTIVATED            = 0xd\n\tNFC_EVENT_TM_DEACTIVATED          = 0xe\n\tNFC_CMD_LLC_GET_PARAMS            = 0xf\n\tNFC_CMD_LLC_SET_PARAMS            = 0x10\n\tNFC_CMD_ENABLE_SE                 = 0x11\n\tNFC_CMD_DISABLE_SE                = 0x12\n\tNFC_CMD_LLC_SDREQ                 = 0x13\n\tNFC_EVENT_LLC_SDRES               = 0x14\n\tNFC_CMD_FW_DOWNLOAD               = 0x15\n\tNFC_EVENT_SE_ADDED                = 0x16\n\tNFC_EVENT_SE_REMOVED              = 0x17\n\tNFC_EVENT_SE_CONNECTIVITY         = 0x18\n\tNFC_EVENT_SE_TRANSACTION          = 0x19\n\tNFC_CMD_GET_SE                    = 0x1a\n\tNFC_CMD_SE_IO                     = 0x1b\n\tNFC_CMD_ACTIVATE_TARGET           = 0x1c\n\tNFC_CMD_VENDOR                    = 0x1d\n\tNFC_CMD_DEACTIVATE_TARGET         = 0x1e\n\tNFC_ATTR_UNSPEC                   = 0x0\n\tNFC_ATTR_DEVICE_INDEX             = 0x1\n\tNFC_ATTR_DEVICE_NAME              = 0x2\n\tNFC_ATTR_PROTOCOLS                = 0x3\n\tNFC_ATTR_TARGET_INDEX             = 0x4\n\tNFC_ATTR_TARGET_SENS_RES          = 0x5\n\tNFC_ATTR_TARGET_SEL_RES           = 0x6\n\tNFC_ATTR_TARGET_NFCID1            = 0x7\n\tNFC_ATTR_TARGET_SENSB_RES         = 0x8\n\tNFC_ATTR_TARGET_SENSF_RES         = 0x9\n\tNFC_ATTR_COMM_MODE                = 0xa\n\tNFC_ATTR_RF_MODE                  = 0xb\n\tNFC_ATTR_DEVICE_POWERED           = 0xc\n\tNFC_ATTR_IM_PROTOCOLS             = 0xd\n\tNFC_ATTR_TM_PROTOCOLS             = 0xe\n\tNFC_ATTR_LLC_PARAM_LTO            = 0xf\n\tNFC_ATTR_LLC_PARAM_RW             = 0x10\n\tNFC_ATTR_LLC_PARAM_MIUX           = 0x11\n\tNFC_ATTR_SE                       = 0x12\n\tNFC_ATTR_LLC_SDP                  = 0x13\n\tNFC_ATTR_FIRMWARE_NAME            = 0x14\n\tNFC_ATTR_SE_INDEX                 = 0x15\n\tNFC_ATTR_SE_TYPE                  = 0x16\n\tNFC_ATTR_SE_AID                   = 0x17\n\tNFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18\n\tNFC_ATTR_SE_APDU                  = 0x19\n\tNFC_ATTR_TARGET_ISO15693_DSFID    = 0x1a\n\tNFC_ATTR_TARGET_ISO15693_UID      = 0x1b\n\tNFC_ATTR_SE_PARAMS                = 0x1c\n\tNFC_ATTR_VENDOR_ID                = 0x1d\n\tNFC_ATTR_VENDOR_SUBCMD            = 0x1e\n\tNFC_ATTR_VENDOR_DATA              = 0x1f\n\tNFC_SDP_ATTR_UNSPEC               = 0x0\n\tNFC_SDP_ATTR_URI                  = 0x1\n\tNFC_SDP_ATTR_SAP                  = 0x2\n)\n\ntype LandlockRulesetAttr struct {\n\tAccess_fs  uint64\n\tAccess_net uint64\n\tScoped     uint64\n}\n\ntype LandlockPathBeneathAttr struct {\n\tAllowed_access uint64\n\tParent_fd      int32\n}\n\nconst (\n\tLANDLOCK_RULE_PATH_BENEATH = 0x1\n)\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n\n\tipc_64 = 0x100\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n\ntype MountAttr struct {\n\tAttr_set    uint64\n\tAttr_clr    uint64\n\tPropagation uint64\n\tUserns_fd   uint64\n}\n\nconst (\n\tWG_CMD_GET_DEVICE                      = 0x0\n\tWG_CMD_SET_DEVICE                      = 0x1\n\tWGDEVICE_F_REPLACE_PEERS               = 0x1\n\tWGDEVICE_A_UNSPEC                      = 0x0\n\tWGDEVICE_A_IFINDEX                     = 0x1\n\tWGDEVICE_A_IFNAME                      = 0x2\n\tWGDEVICE_A_PRIVATE_KEY                 = 0x3\n\tWGDEVICE_A_PUBLIC_KEY                  = 0x4\n\tWGDEVICE_A_FLAGS                       = 0x5\n\tWGDEVICE_A_LISTEN_PORT                 = 0x6\n\tWGDEVICE_A_FWMARK                      = 0x7\n\tWGDEVICE_A_PEERS                       = 0x8\n\tWGPEER_F_REMOVE_ME                     = 0x1\n\tWGPEER_F_REPLACE_ALLOWEDIPS            = 0x2\n\tWGPEER_F_UPDATE_ONLY                   = 0x4\n\tWGPEER_A_UNSPEC                        = 0x0\n\tWGPEER_A_PUBLIC_KEY                    = 0x1\n\tWGPEER_A_PRESHARED_KEY                 = 0x2\n\tWGPEER_A_FLAGS                         = 0x3\n\tWGPEER_A_ENDPOINT                      = 0x4\n\tWGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5\n\tWGPEER_A_LAST_HANDSHAKE_TIME           = 0x6\n\tWGPEER_A_RX_BYTES                      = 0x7\n\tWGPEER_A_TX_BYTES                      = 0x8\n\tWGPEER_A_ALLOWEDIPS                    = 0x9\n\tWGPEER_A_PROTOCOL_VERSION              = 0xa\n\tWGALLOWEDIP_A_UNSPEC                   = 0x0\n\tWGALLOWEDIP_A_FAMILY                   = 0x1\n\tWGALLOWEDIP_A_IPADDR                   = 0x2\n\tWGALLOWEDIP_A_CIDR_MASK                = 0x3\n)\n\nconst (\n\tNL_ATTR_TYPE_INVALID      = 0x0\n\tNL_ATTR_TYPE_FLAG         = 0x1\n\tNL_ATTR_TYPE_U8           = 0x2\n\tNL_ATTR_TYPE_U16          = 0x3\n\tNL_ATTR_TYPE_U32          = 0x4\n\tNL_ATTR_TYPE_U64          = 0x5\n\tNL_ATTR_TYPE_S8           = 0x6\n\tNL_ATTR_TYPE_S16          = 0x7\n\tNL_ATTR_TYPE_S32          = 0x8\n\tNL_ATTR_TYPE_S64          = 0x9\n\tNL_ATTR_TYPE_BINARY       = 0xa\n\tNL_ATTR_TYPE_STRING       = 0xb\n\tNL_ATTR_TYPE_NUL_STRING   = 0xc\n\tNL_ATTR_TYPE_NESTED       = 0xd\n\tNL_ATTR_TYPE_NESTED_ARRAY = 0xe\n\tNL_ATTR_TYPE_BITFIELD32   = 0xf\n\n\tNL_POLICY_TYPE_ATTR_UNSPEC          = 0x0\n\tNL_POLICY_TYPE_ATTR_TYPE            = 0x1\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_S     = 0x2\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_S     = 0x3\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_U     = 0x4\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_U     = 0x5\n\tNL_POLICY_TYPE_ATTR_MIN_LENGTH      = 0x6\n\tNL_POLICY_TYPE_ATTR_MAX_LENGTH      = 0x7\n\tNL_POLICY_TYPE_ATTR_POLICY_IDX      = 0x8\n\tNL_POLICY_TYPE_ATTR_POLICY_MAXTYPE  = 0x9\n\tNL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa\n\tNL_POLICY_TYPE_ATTR_PAD             = 0xb\n\tNL_POLICY_TYPE_ATTR_MASK            = 0xc\n\tNL_POLICY_TYPE_ATTR_MAX             = 0xc\n)\n\ntype CANBitTiming struct {\n\tBitrate      uint32\n\tSample_point uint32\n\tTq           uint32\n\tProp_seg     uint32\n\tPhase_seg1   uint32\n\tPhase_seg2   uint32\n\tSjw          uint32\n\tBrp          uint32\n}\n\ntype CANBitTimingConst struct {\n\tName      [16]uint8\n\tTseg1_min uint32\n\tTseg1_max uint32\n\tTseg2_min uint32\n\tTseg2_max uint32\n\tSjw_max   uint32\n\tBrp_min   uint32\n\tBrp_max   uint32\n\tBrp_inc   uint32\n}\n\ntype CANClock struct {\n\tFreq uint32\n}\n\ntype CANBusErrorCounters struct {\n\tTxerr uint16\n\tRxerr uint16\n}\n\ntype CANCtrlMode struct {\n\tMask  uint32\n\tFlags uint32\n}\n\ntype CANDeviceStats struct {\n\tBus_error        uint32\n\tError_warning    uint32\n\tError_passive    uint32\n\tBus_off          uint32\n\tArbitration_lost uint32\n\tRestarts         uint32\n}\n\nconst (\n\tCAN_STATE_ERROR_ACTIVE  = 0x0\n\tCAN_STATE_ERROR_WARNING = 0x1\n\tCAN_STATE_ERROR_PASSIVE = 0x2\n\tCAN_STATE_BUS_OFF       = 0x3\n\tCAN_STATE_STOPPED       = 0x4\n\tCAN_STATE_SLEEPING      = 0x5\n\tCAN_STATE_MAX           = 0x6\n)\n\nconst (\n\tIFLA_CAN_UNSPEC               = 0x0\n\tIFLA_CAN_BITTIMING            = 0x1\n\tIFLA_CAN_BITTIMING_CONST      = 0x2\n\tIFLA_CAN_CLOCK                = 0x3\n\tIFLA_CAN_STATE                = 0x4\n\tIFLA_CAN_CTRLMODE             = 0x5\n\tIFLA_CAN_RESTART_MS           = 0x6\n\tIFLA_CAN_RESTART              = 0x7\n\tIFLA_CAN_BERR_COUNTER         = 0x8\n\tIFLA_CAN_DATA_BITTIMING       = 0x9\n\tIFLA_CAN_DATA_BITTIMING_CONST = 0xa\n\tIFLA_CAN_TERMINATION          = 0xb\n\tIFLA_CAN_TERMINATION_CONST    = 0xc\n\tIFLA_CAN_BITRATE_CONST        = 0xd\n\tIFLA_CAN_DATA_BITRATE_CONST   = 0xe\n\tIFLA_CAN_BITRATE_MAX          = 0xf\n)\n\ntype KCMAttach struct {\n\tFd     int32\n\tBpf_fd int32\n}\n\ntype KCMUnattach struct {\n\tFd int32\n}\n\ntype KCMClone struct {\n\tFd int32\n}\n\nconst (\n\tNL80211_AC_BE                                           = 0x2\n\tNL80211_AC_BK                                           = 0x3\n\tNL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED                 = 0x0\n\tNL80211_ACL_POLICY_DENY_UNLESS_LISTED                   = 0x1\n\tNL80211_AC_VI                                           = 0x1\n\tNL80211_AC_VO                                           = 0x0\n\tNL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT               = 0x1\n\tNL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT            = 0x2\n\tNL80211_AP_SME_SA_QUERY_OFFLOAD                         = 0x1\n\tNL80211_ATTR_4ADDR                                      = 0x53\n\tNL80211_ATTR_ACK                                        = 0x5c\n\tNL80211_ATTR_ACK_SIGNAL                                 = 0x107\n\tNL80211_ATTR_ACL_POLICY                                 = 0xa5\n\tNL80211_ATTR_ADMITTED_TIME                              = 0xd4\n\tNL80211_ATTR_AIRTIME_WEIGHT                             = 0x112\n\tNL80211_ATTR_AKM_SUITES                                 = 0x4c\n\tNL80211_ATTR_AP_ISOLATE                                 = 0x60\n\tNL80211_ATTR_AP_SETTINGS_FLAGS                          = 0x135\n\tNL80211_ATTR_ASSOC_SPP_AMSDU                            = 0x14a\n\tNL80211_ATTR_AUTH_DATA                                  = 0x9c\n\tNL80211_ATTR_AUTH_TYPE                                  = 0x35\n\tNL80211_ATTR_BANDS                                      = 0xef\n\tNL80211_ATTR_BEACON_HEAD                                = 0xe\n\tNL80211_ATTR_BEACON_INTERVAL                            = 0xc\n\tNL80211_ATTR_BEACON_TAIL                                = 0xf\n\tNL80211_ATTR_BG_SCAN_PERIOD                             = 0x98\n\tNL80211_ATTR_BSS_BASIC_RATES                            = 0x24\n\tNL80211_ATTR_BSS                                        = 0x2f\n\tNL80211_ATTR_BSS_CTS_PROT                               = 0x1c\n\tNL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA                  = 0x147\n\tNL80211_ATTR_BSS_HT_OPMODE                              = 0x6d\n\tNL80211_ATTR_BSSID                                      = 0xf5\n\tNL80211_ATTR_BSS_SELECT                                 = 0xe3\n\tNL80211_ATTR_BSS_SHORT_PREAMBLE                         = 0x1d\n\tNL80211_ATTR_BSS_SHORT_SLOT_TIME                        = 0x1e\n\tNL80211_ATTR_CENTER_FREQ1                               = 0xa0\n\tNL80211_ATTR_CENTER_FREQ1_OFFSET                        = 0x123\n\tNL80211_ATTR_CENTER_FREQ2                               = 0xa1\n\tNL80211_ATTR_CHANNEL_WIDTH                              = 0x9f\n\tNL80211_ATTR_CH_SWITCH_BLOCK_TX                         = 0xb8\n\tNL80211_ATTR_CH_SWITCH_COUNT                            = 0xb7\n\tNL80211_ATTR_CIPHER_SUITE_GROUP                         = 0x4a\n\tNL80211_ATTR_CIPHER_SUITES                              = 0x39\n\tNL80211_ATTR_CIPHER_SUITES_PAIRWISE                     = 0x49\n\tNL80211_ATTR_CNTDWN_OFFS_BEACON                         = 0xba\n\tNL80211_ATTR_CNTDWN_OFFS_PRESP                          = 0xbb\n\tNL80211_ATTR_COALESCE_RULE                              = 0xb6\n\tNL80211_ATTR_COALESCE_RULE_CONDITION                    = 0x2\n\tNL80211_ATTR_COALESCE_RULE_DELAY                        = 0x1\n\tNL80211_ATTR_COALESCE_RULE_MAX                          = 0x3\n\tNL80211_ATTR_COALESCE_RULE_PKT_PATTERN                  = 0x3\n\tNL80211_ATTR_COLOR_CHANGE_COLOR                         = 0x130\n\tNL80211_ATTR_COLOR_CHANGE_COUNT                         = 0x12f\n\tNL80211_ATTR_COLOR_CHANGE_ELEMS                         = 0x131\n\tNL80211_ATTR_CONN_FAILED_REASON                         = 0x9b\n\tNL80211_ATTR_CONTROL_PORT                               = 0x44\n\tNL80211_ATTR_CONTROL_PORT_ETHERTYPE                     = 0x66\n\tNL80211_ATTR_CONTROL_PORT_NO_ENCRYPT                    = 0x67\n\tNL80211_ATTR_CONTROL_PORT_NO_PREAUTH                    = 0x11e\n\tNL80211_ATTR_CONTROL_PORT_OVER_NL80211                  = 0x108\n\tNL80211_ATTR_COOKIE                                     = 0x58\n\tNL80211_ATTR_CQM_BEACON_LOSS_EVENT                      = 0x8\n\tNL80211_ATTR_CQM                                        = 0x5e\n\tNL80211_ATTR_CQM_MAX                                    = 0x9\n\tNL80211_ATTR_CQM_PKT_LOSS_EVENT                         = 0x4\n\tNL80211_ATTR_CQM_RSSI_HYST                              = 0x2\n\tNL80211_ATTR_CQM_RSSI_LEVEL                             = 0x9\n\tNL80211_ATTR_CQM_RSSI_THOLD                             = 0x1\n\tNL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT                   = 0x3\n\tNL80211_ATTR_CQM_TXE_INTVL                              = 0x7\n\tNL80211_ATTR_CQM_TXE_PKTS                               = 0x6\n\tNL80211_ATTR_CQM_TXE_RATE                               = 0x5\n\tNL80211_ATTR_CRIT_PROT_ID                               = 0xb3\n\tNL80211_ATTR_CSA_C_OFF_BEACON                           = 0xba\n\tNL80211_ATTR_CSA_C_OFF_PRESP                            = 0xbb\n\tNL80211_ATTR_CSA_C_OFFSETS_TX                           = 0xcd\n\tNL80211_ATTR_CSA_IES                                    = 0xb9\n\tNL80211_ATTR_DEVICE_AP_SME                              = 0x8d\n\tNL80211_ATTR_DFS_CAC_TIME                               = 0x7\n\tNL80211_ATTR_DFS_REGION                                 = 0x92\n\tNL80211_ATTR_DISABLE_EHT                                = 0x137\n\tNL80211_ATTR_DISABLE_HE                                 = 0x12d\n\tNL80211_ATTR_DISABLE_HT                                 = 0x93\n\tNL80211_ATTR_DISABLE_VHT                                = 0xaf\n\tNL80211_ATTR_DISCONNECTED_BY_AP                         = 0x47\n\tNL80211_ATTR_DONT_WAIT_FOR_ACK                          = 0x8e\n\tNL80211_ATTR_DTIM_PERIOD                                = 0xd\n\tNL80211_ATTR_DURATION                                   = 0x57\n\tNL80211_ATTR_EHT_CAPABILITY                             = 0x136\n\tNL80211_ATTR_EMA_RNR_ELEMS                              = 0x145\n\tNL80211_ATTR_EML_CAPABILITY                             = 0x13d\n\tNL80211_ATTR_EXT_CAPA                                   = 0xa9\n\tNL80211_ATTR_EXT_CAPA_MASK                              = 0xaa\n\tNL80211_ATTR_EXTERNAL_AUTH_ACTION                       = 0x104\n\tNL80211_ATTR_EXTERNAL_AUTH_SUPPORT                      = 0x105\n\tNL80211_ATTR_EXT_FEATURES                               = 0xd9\n\tNL80211_ATTR_FEATURE_FLAGS                              = 0x8f\n\tNL80211_ATTR_FILS_CACHE_ID                              = 0xfd\n\tNL80211_ATTR_FILS_DISCOVERY                             = 0x126\n\tNL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM                      = 0xfb\n\tNL80211_ATTR_FILS_ERP_REALM                             = 0xfa\n\tNL80211_ATTR_FILS_ERP_RRK                               = 0xfc\n\tNL80211_ATTR_FILS_ERP_USERNAME                          = 0xf9\n\tNL80211_ATTR_FILS_KEK                                   = 0xf2\n\tNL80211_ATTR_FILS_NONCES                                = 0xf3\n\tNL80211_ATTR_FRAME                                      = 0x33\n\tNL80211_ATTR_FRAME_MATCH                                = 0x5b\n\tNL80211_ATTR_FRAME_TYPE                                 = 0x65\n\tNL80211_ATTR_FREQ_AFTER                                 = 0x3b\n\tNL80211_ATTR_FREQ_BEFORE                                = 0x3a\n\tNL80211_ATTR_FREQ_FIXED                                 = 0x3c\n\tNL80211_ATTR_FREQ_RANGE_END                             = 0x3\n\tNL80211_ATTR_FREQ_RANGE_MAX_BW                          = 0x4\n\tNL80211_ATTR_FREQ_RANGE_START                           = 0x2\n\tNL80211_ATTR_FTM_RESPONDER                              = 0x10e\n\tNL80211_ATTR_FTM_RESPONDER_STATS                        = 0x10f\n\tNL80211_ATTR_GENERATION                                 = 0x2e\n\tNL80211_ATTR_HANDLE_DFS                                 = 0xbf\n\tNL80211_ATTR_HE_6GHZ_CAPABILITY                         = 0x125\n\tNL80211_ATTR_HE_BSS_COLOR                               = 0x11b\n\tNL80211_ATTR_HE_CAPABILITY                              = 0x10d\n\tNL80211_ATTR_HE_OBSS_PD                                 = 0x117\n\tNL80211_ATTR_HIDDEN_SSID                                = 0x7e\n\tNL80211_ATTR_HT_CAPABILITY                              = 0x1f\n\tNL80211_ATTR_HT_CAPABILITY_MASK                         = 0x94\n\tNL80211_ATTR_HW_TIMESTAMP_ENABLED                       = 0x144\n\tNL80211_ATTR_IE_ASSOC_RESP                              = 0x80\n\tNL80211_ATTR_IE                                         = 0x2a\n\tNL80211_ATTR_IE_PROBE_RESP                              = 0x7f\n\tNL80211_ATTR_IE_RIC                                     = 0xb2\n\tNL80211_ATTR_IFACE_SOCKET_OWNER                         = 0xcc\n\tNL80211_ATTR_IFINDEX                                    = 0x3\n\tNL80211_ATTR_IFNAME                                     = 0x4\n\tNL80211_ATTR_IFTYPE_AKM_SUITES                          = 0x11c\n\tNL80211_ATTR_IFTYPE                                     = 0x5\n\tNL80211_ATTR_IFTYPE_EXT_CAPA                            = 0xe6\n\tNL80211_ATTR_INACTIVITY_TIMEOUT                         = 0x96\n\tNL80211_ATTR_INTERFACE_COMBINATIONS                     = 0x78\n\tNL80211_ATTR_KEY_CIPHER                                 = 0x9\n\tNL80211_ATTR_KEY                                        = 0x50\n\tNL80211_ATTR_KEY_DATA                                   = 0x7\n\tNL80211_ATTR_KEY_DEFAULT                                = 0xb\n\tNL80211_ATTR_KEY_DEFAULT_MGMT                           = 0x28\n\tNL80211_ATTR_KEY_DEFAULT_TYPES                          = 0x6e\n\tNL80211_ATTR_KEY_IDX                                    = 0x8\n\tNL80211_ATTR_KEYS                                       = 0x51\n\tNL80211_ATTR_KEY_SEQ                                    = 0xa\n\tNL80211_ATTR_KEY_TYPE                                   = 0x37\n\tNL80211_ATTR_LOCAL_MESH_POWER_MODE                      = 0xa4\n\tNL80211_ATTR_LOCAL_STATE_CHANGE                         = 0x5f\n\tNL80211_ATTR_MAC_ACL_MAX                                = 0xa7\n\tNL80211_ATTR_MAC_ADDRS                                  = 0xa6\n\tNL80211_ATTR_MAC                                        = 0x6\n\tNL80211_ATTR_MAC_HINT                                   = 0xc8\n\tNL80211_ATTR_MAC_MASK                                   = 0xd7\n\tNL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca\n\tNL80211_ATTR_MAX                                        = 0x151\n\tNL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4\n\tNL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce\n\tNL80211_ATTR_MAX_HW_TIMESTAMP_PEERS                     = 0x143\n\tNL80211_ATTR_MAX_MATCH_SETS                             = 0x85\n\tNL80211_ATTR_MAX_NUM_AKM_SUITES                         = 0x13c\n\tNL80211_ATTR_MAX_NUM_PMKIDS                             = 0x56\n\tNL80211_ATTR_MAX_NUM_SCAN_SSIDS                         = 0x2b\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS                   = 0xde\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS                   = 0x7b\n\tNL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION             = 0x6f\n\tNL80211_ATTR_MAX_SCAN_IE_LEN                            = 0x38\n\tNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL                     = 0xdf\n\tNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS                   = 0xe0\n\tNL80211_ATTR_MAX_SCHED_SCAN_IE_LEN                      = 0x7c\n\tNL80211_ATTR_MBSSID_CONFIG                              = 0x132\n\tNL80211_ATTR_MBSSID_ELEMS                               = 0x133\n\tNL80211_ATTR_MCAST_RATE                                 = 0x6b\n\tNL80211_ATTR_MDID                                       = 0xb1\n\tNL80211_ATTR_MEASUREMENT_DURATION                       = 0xeb\n\tNL80211_ATTR_MEASUREMENT_DURATION_MANDATORY             = 0xec\n\tNL80211_ATTR_MESH_CONFIG                                = 0x23\n\tNL80211_ATTR_MESH_ID                                    = 0x18\n\tNL80211_ATTR_MESH_PEER_AID                              = 0xed\n\tNL80211_ATTR_MESH_SETUP                                 = 0x70\n\tNL80211_ATTR_MGMT_SUBTYPE                               = 0x29\n\tNL80211_ATTR_MLD_ADDR                                   = 0x13a\n\tNL80211_ATTR_MLD_CAPA_AND_OPS                           = 0x13e\n\tNL80211_ATTR_MLO_LINK_DISABLED                          = 0x146\n\tNL80211_ATTR_MLO_LINK_ID                                = 0x139\n\tNL80211_ATTR_MLO_LINKS                                  = 0x138\n\tNL80211_ATTR_MLO_SUPPORT                                = 0x13b\n\tNL80211_ATTR_MLO_TTLM_DLINK                             = 0x148\n\tNL80211_ATTR_MLO_TTLM_ULINK                             = 0x149\n\tNL80211_ATTR_MNTR_FLAGS                                 = 0x17\n\tNL80211_ATTR_MPATH_INFO                                 = 0x1b\n\tNL80211_ATTR_MPATH_NEXT_HOP                             = 0x1a\n\tNL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED               = 0xf4\n\tNL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR                    = 0xe8\n\tNL80211_ATTR_MU_MIMO_GROUP_DATA                         = 0xe7\n\tNL80211_ATTR_NAN_FUNC                                   = 0xf0\n\tNL80211_ATTR_NAN_MASTER_PREF                            = 0xee\n\tNL80211_ATTR_NAN_MATCH                                  = 0xf1\n\tNL80211_ATTR_NETNS_FD                                   = 0xdb\n\tNL80211_ATTR_NOACK_MAP                                  = 0x95\n\tNL80211_ATTR_NSS                                        = 0x106\n\tNL80211_ATTR_OBSS_COLOR_BITMAP                          = 0x12e\n\tNL80211_ATTR_OFFCHANNEL_TX_OK                           = 0x6c\n\tNL80211_ATTR_OPER_CLASS                                 = 0xd6\n\tNL80211_ATTR_OPMODE_NOTIF                               = 0xc2\n\tNL80211_ATTR_P2P_CTWINDOW                               = 0xa2\n\tNL80211_ATTR_P2P_OPPPS                                  = 0xa3\n\tNL80211_ATTR_PAD                                        = 0xe5\n\tNL80211_ATTR_PBSS                                       = 0xe2\n\tNL80211_ATTR_PEER_AID                                   = 0xb5\n\tNL80211_ATTR_PEER_MEASUREMENTS                          = 0x111\n\tNL80211_ATTR_PID                                        = 0x52\n\tNL80211_ATTR_PMK                                        = 0xfe\n\tNL80211_ATTR_PMKID                                      = 0x55\n\tNL80211_ATTR_PMK_LIFETIME                               = 0x11f\n\tNL80211_ATTR_PMKR0_NAME                                 = 0x102\n\tNL80211_ATTR_PMK_REAUTH_THRESHOLD                       = 0x120\n\tNL80211_ATTR_PMKSA_CANDIDATE                            = 0x86\n\tNL80211_ATTR_PORT_AUTHORIZED                            = 0x103\n\tNL80211_ATTR_POWER_RULE_MAX_ANT_GAIN                    = 0x5\n\tNL80211_ATTR_POWER_RULE_MAX_EIRP                        = 0x6\n\tNL80211_ATTR_POWER_RULE_PSD                             = 0x8\n\tNL80211_ATTR_PREV_BSSID                                 = 0x4f\n\tNL80211_ATTR_PRIVACY                                    = 0x46\n\tNL80211_ATTR_PROBE_RESP                                 = 0x91\n\tNL80211_ATTR_PROBE_RESP_OFFLOAD                         = 0x90\n\tNL80211_ATTR_PROTOCOL_FEATURES                          = 0xad\n\tNL80211_ATTR_PS_STATE                                   = 0x5d\n\tNL80211_ATTR_PUNCT_BITMAP                               = 0x142\n\tNL80211_ATTR_QOS_MAP                                    = 0xc7\n\tNL80211_ATTR_RADAR_BACKGROUND                           = 0x134\n\tNL80211_ATTR_RADAR_EVENT                                = 0xa8\n\tNL80211_ATTR_REASON_CODE                                = 0x36\n\tNL80211_ATTR_RECEIVE_MULTICAST                          = 0x121\n\tNL80211_ATTR_RECONNECT_REQUESTED                        = 0x12b\n\tNL80211_ATTR_REG_ALPHA2                                 = 0x21\n\tNL80211_ATTR_REG_INDOOR                                 = 0xdd\n\tNL80211_ATTR_REG_INITIATOR                              = 0x30\n\tNL80211_ATTR_REG_RULE_FLAGS                             = 0x1\n\tNL80211_ATTR_REG_RULES                                  = 0x22\n\tNL80211_ATTR_REG_TYPE                                   = 0x31\n\tNL80211_ATTR_REKEY_DATA                                 = 0x7a\n\tNL80211_ATTR_REQ_IE                                     = 0x4d\n\tNL80211_ATTR_RESP_IE                                    = 0x4e\n\tNL80211_ATTR_ROAM_SUPPORT                               = 0x83\n\tNL80211_ATTR_RX_FRAME_TYPES                             = 0x64\n\tNL80211_ATTR_RX_HW_TIMESTAMP                            = 0x140\n\tNL80211_ATTR_RXMGMT_FLAGS                               = 0xbc\n\tNL80211_ATTR_RX_SIGNAL_DBM                              = 0x97\n\tNL80211_ATTR_S1G_CAPABILITY                             = 0x128\n\tNL80211_ATTR_S1G_CAPABILITY_MASK                        = 0x129\n\tNL80211_ATTR_SAE_DATA                                   = 0x9c\n\tNL80211_ATTR_SAE_PASSWORD                               = 0x115\n\tNL80211_ATTR_SAE_PWE                                    = 0x12a\n\tNL80211_ATTR_SAR_SPEC                                   = 0x12c\n\tNL80211_ATTR_SCAN_FLAGS                                 = 0x9e\n\tNL80211_ATTR_SCAN_FREQ_KHZ                              = 0x124\n\tNL80211_ATTR_SCAN_FREQUENCIES                           = 0x2c\n\tNL80211_ATTR_SCAN_GENERATION                            = 0x2e\n\tNL80211_ATTR_SCAN_SSIDS                                 = 0x2d\n\tNL80211_ATTR_SCAN_START_TIME_TSF_BSSID                  = 0xea\n\tNL80211_ATTR_SCAN_START_TIME_TSF                        = 0xe9\n\tNL80211_ATTR_SCAN_SUPP_RATES                            = 0x7d\n\tNL80211_ATTR_SCHED_SCAN_DELAY                           = 0xdc\n\tNL80211_ATTR_SCHED_SCAN_INTERVAL                        = 0x77\n\tNL80211_ATTR_SCHED_SCAN_MATCH                           = 0x84\n\tNL80211_ATTR_SCHED_SCAN_MATCH_SSID                      = 0x1\n\tNL80211_ATTR_SCHED_SCAN_MAX_REQS                        = 0x100\n\tNL80211_ATTR_SCHED_SCAN_MULTI                           = 0xff\n\tNL80211_ATTR_SCHED_SCAN_PLANS                           = 0xe1\n\tNL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI                   = 0xf6\n\tNL80211_ATTR_SCHED_SCAN_RSSI_ADJUST                     = 0xf7\n\tNL80211_ATTR_SMPS_MODE                                  = 0xd5\n\tNL80211_ATTR_SOCKET_OWNER                               = 0xcc\n\tNL80211_ATTR_SOFTWARE_IFTYPES                           = 0x79\n\tNL80211_ATTR_SPLIT_WIPHY_DUMP                           = 0xae\n\tNL80211_ATTR_SSID                                       = 0x34\n\tNL80211_ATTR_STA_AID                                    = 0x10\n\tNL80211_ATTR_STA_CAPABILITY                             = 0xab\n\tNL80211_ATTR_STA_EXT_CAPABILITY                         = 0xac\n\tNL80211_ATTR_STA_FLAGS2                                 = 0x43\n\tNL80211_ATTR_STA_FLAGS                                  = 0x11\n\tNL80211_ATTR_STA_INFO                                   = 0x15\n\tNL80211_ATTR_STA_LISTEN_INTERVAL                        = 0x12\n\tNL80211_ATTR_STA_PLINK_ACTION                           = 0x19\n\tNL80211_ATTR_STA_PLINK_STATE                            = 0x74\n\tNL80211_ATTR_STA_SUPPORTED_CHANNELS                     = 0xbd\n\tNL80211_ATTR_STA_SUPPORTED_OPER_CLASSES                 = 0xbe\n\tNL80211_ATTR_STA_SUPPORTED_RATES                        = 0x13\n\tNL80211_ATTR_STA_SUPPORT_P2P_PS                         = 0xe4\n\tNL80211_ATTR_STATUS_CODE                                = 0x48\n\tNL80211_ATTR_STA_TX_POWER                               = 0x114\n\tNL80211_ATTR_STA_TX_POWER_SETTING                       = 0x113\n\tNL80211_ATTR_STA_VLAN                                   = 0x14\n\tNL80211_ATTR_STA_WME                                    = 0x81\n\tNL80211_ATTR_SUPPORT_10_MHZ                             = 0xc1\n\tNL80211_ATTR_SUPPORT_5_MHZ                              = 0xc0\n\tNL80211_ATTR_SUPPORT_AP_UAPSD                           = 0x82\n\tNL80211_ATTR_SUPPORTED_COMMANDS                         = 0x32\n\tNL80211_ATTR_SUPPORTED_IFTYPES                          = 0x20\n\tNL80211_ATTR_SUPPORT_IBSS_RSN                           = 0x68\n\tNL80211_ATTR_SUPPORT_MESH_AUTH                          = 0x73\n\tNL80211_ATTR_SURVEY_INFO                                = 0x54\n\tNL80211_ATTR_SURVEY_RADIO_STATS                         = 0xda\n\tNL80211_ATTR_TD_BITMAP                                  = 0x141\n\tNL80211_ATTR_TDLS_ACTION                                = 0x88\n\tNL80211_ATTR_TDLS_DIALOG_TOKEN                          = 0x89\n\tNL80211_ATTR_TDLS_EXTERNAL_SETUP                        = 0x8c\n\tNL80211_ATTR_TDLS_INITIATOR                             = 0xcf\n\tNL80211_ATTR_TDLS_OPERATION                             = 0x8a\n\tNL80211_ATTR_TDLS_PEER_CAPABILITY                       = 0xcb\n\tNL80211_ATTR_TDLS_SUPPORT                               = 0x8b\n\tNL80211_ATTR_TESTDATA                                   = 0x45\n\tNL80211_ATTR_TID_CONFIG                                 = 0x11d\n\tNL80211_ATTR_TIMED_OUT                                  = 0x41\n\tNL80211_ATTR_TIMEOUT                                    = 0x110\n\tNL80211_ATTR_TIMEOUT_REASON                             = 0xf8\n\tNL80211_ATTR_TSID                                       = 0xd2\n\tNL80211_ATTR_TWT_RESPONDER                              = 0x116\n\tNL80211_ATTR_TX_FRAME_TYPES                             = 0x63\n\tNL80211_ATTR_TX_HW_TIMESTAMP                            = 0x13f\n\tNL80211_ATTR_TX_NO_CCK_RATE                             = 0x87\n\tNL80211_ATTR_TXQ_LIMIT                                  = 0x10a\n\tNL80211_ATTR_TXQ_MEMORY_LIMIT                           = 0x10b\n\tNL80211_ATTR_TXQ_QUANTUM                                = 0x10c\n\tNL80211_ATTR_TXQ_STATS                                  = 0x109\n\tNL80211_ATTR_TX_RATES                                   = 0x5a\n\tNL80211_ATTR_UNSOL_BCAST_PROBE_RESP                     = 0x127\n\tNL80211_ATTR_UNSPEC                                     = 0x0\n\tNL80211_ATTR_USE_MFP                                    = 0x42\n\tNL80211_ATTR_USER_PRIO                                  = 0xd3\n\tNL80211_ATTR_USER_REG_HINT_TYPE                         = 0x9a\n\tNL80211_ATTR_USE_RRM                                    = 0xd0\n\tNL80211_ATTR_VENDOR_DATA                                = 0xc5\n\tNL80211_ATTR_VENDOR_EVENTS                              = 0xc6\n\tNL80211_ATTR_VENDOR_ID                                  = 0xc3\n\tNL80211_ATTR_VENDOR_SUBCMD                              = 0xc4\n\tNL80211_ATTR_VHT_CAPABILITY                             = 0x9d\n\tNL80211_ATTR_VHT_CAPABILITY_MASK                        = 0xb0\n\tNL80211_ATTR_VLAN_ID                                    = 0x11a\n\tNL80211_ATTR_WANT_1X_4WAY_HS                            = 0x101\n\tNL80211_ATTR_WDEV                                       = 0x99\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX                     = 0x72\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX                     = 0x71\n\tNL80211_ATTR_WIPHY_ANTENNA_RX                           = 0x6a\n\tNL80211_ATTR_WIPHY_ANTENNA_TX                           = 0x69\n\tNL80211_ATTR_WIPHY_BANDS                                = 0x16\n\tNL80211_ATTR_WIPHY_CHANNEL_TYPE                         = 0x27\n\tNL80211_ATTR_WIPHY                                      = 0x1\n\tNL80211_ATTR_WIPHY_COVERAGE_CLASS                       = 0x59\n\tNL80211_ATTR_WIPHY_DYN_ACK                              = 0xd1\n\tNL80211_ATTR_WIPHY_EDMG_BW_CONFIG                       = 0x119\n\tNL80211_ATTR_WIPHY_EDMG_CHANNELS                        = 0x118\n\tNL80211_ATTR_WIPHY_FRAG_THRESHOLD                       = 0x3f\n\tNL80211_ATTR_WIPHY_FREQ                                 = 0x26\n\tNL80211_ATTR_WIPHY_FREQ_HINT                            = 0xc9\n\tNL80211_ATTR_WIPHY_FREQ_OFFSET                          = 0x122\n\tNL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS               = 0x14c\n\tNL80211_ATTR_WIPHY_NAME                                 = 0x2\n\tNL80211_ATTR_WIPHY_RADIOS                               = 0x14b\n\tNL80211_ATTR_WIPHY_RETRY_LONG                           = 0x3e\n\tNL80211_ATTR_WIPHY_RETRY_SHORT                          = 0x3d\n\tNL80211_ATTR_WIPHY_RTS_THRESHOLD                        = 0x40\n\tNL80211_ATTR_WIPHY_SELF_MANAGED_REG                     = 0xd8\n\tNL80211_ATTR_WIPHY_TX_POWER_LEVEL                       = 0x62\n\tNL80211_ATTR_WIPHY_TX_POWER_SETTING                     = 0x61\n\tNL80211_ATTR_WIPHY_TXQ_PARAMS                           = 0x25\n\tNL80211_ATTR_WOWLAN_TRIGGERS                            = 0x75\n\tNL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED                  = 0x76\n\tNL80211_ATTR_WPA_VERSIONS                               = 0x4b\n\tNL80211_AUTHTYPE_AUTOMATIC                              = 0x8\n\tNL80211_AUTHTYPE_FILS_PK                                = 0x7\n\tNL80211_AUTHTYPE_FILS_SK                                = 0x5\n\tNL80211_AUTHTYPE_FILS_SK_PFS                            = 0x6\n\tNL80211_AUTHTYPE_FT                                     = 0x2\n\tNL80211_AUTHTYPE_MAX                                    = 0x7\n\tNL80211_AUTHTYPE_NETWORK_EAP                            = 0x3\n\tNL80211_AUTHTYPE_OPEN_SYSTEM                            = 0x0\n\tNL80211_AUTHTYPE_SAE                                    = 0x4\n\tNL80211_AUTHTYPE_SHARED_KEY                             = 0x1\n\tNL80211_BAND_2GHZ                                       = 0x0\n\tNL80211_BAND_5GHZ                                       = 0x1\n\tNL80211_BAND_60GHZ                                      = 0x2\n\tNL80211_BAND_6GHZ                                       = 0x3\n\tNL80211_BAND_ATTR_EDMG_BW_CONFIG                        = 0xb\n\tNL80211_BAND_ATTR_EDMG_CHANNELS                         = 0xa\n\tNL80211_BAND_ATTR_FREQS                                 = 0x1\n\tNL80211_BAND_ATTR_HT_AMPDU_DENSITY                      = 0x6\n\tNL80211_BAND_ATTR_HT_AMPDU_FACTOR                       = 0x5\n\tNL80211_BAND_ATTR_HT_CAPA                               = 0x4\n\tNL80211_BAND_ATTR_HT_MCS_SET                            = 0x3\n\tNL80211_BAND_ATTR_IFTYPE_DATA                           = 0x9\n\tNL80211_BAND_ATTR_MAX                                   = 0xd\n\tNL80211_BAND_ATTR_RATES                                 = 0x2\n\tNL80211_BAND_ATTR_S1G_CAPA                              = 0xd\n\tNL80211_BAND_ATTR_S1G_MCS_NSS_SET                       = 0xc\n\tNL80211_BAND_ATTR_VHT_CAPA                              = 0x8\n\tNL80211_BAND_ATTR_VHT_MCS_SET                           = 0x7\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC                    = 0x8\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET                = 0xa\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY                    = 0x9\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE                    = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA                   = 0x6\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC                     = 0x2\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET                 = 0x4\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY                     = 0x3\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE                     = 0x5\n\tNL80211_BAND_IFTYPE_ATTR_IFTYPES                        = 0x1\n\tNL80211_BAND_IFTYPE_ATTR_MAX                            = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS                   = 0x7\n\tNL80211_BAND_LC                                         = 0x5\n\tNL80211_BAND_S1GHZ                                      = 0x4\n\tNL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE                 = 0x2\n\tNL80211_BITRATE_ATTR_MAX                                = 0x2\n\tNL80211_BITRATE_ATTR_RATE                               = 0x1\n\tNL80211_BSS_BEACON_IES                                  = 0xb\n\tNL80211_BSS_BEACON_INTERVAL                             = 0x4\n\tNL80211_BSS_BEACON_TSF                                  = 0xd\n\tNL80211_BSS_BSSID                                       = 0x1\n\tNL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH                = 0x2\n\tNL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY                  = 0x1\n\tNL80211_BSS_CANNOT_USE_REASONS                          = 0x18\n\tNL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH                 = 0x2\n\tNL80211_BSS_CAPABILITY                                  = 0x5\n\tNL80211_BSS_CHAIN_SIGNAL                                = 0x13\n\tNL80211_BSS_CHAN_WIDTH_10                               = 0x1\n\tNL80211_BSS_CHAN_WIDTH_1                                = 0x3\n\tNL80211_BSS_CHAN_WIDTH_20                               = 0x0\n\tNL80211_BSS_CHAN_WIDTH_2                                = 0x4\n\tNL80211_BSS_CHAN_WIDTH_5                                = 0x2\n\tNL80211_BSS_CHAN_WIDTH                                  = 0xc\n\tNL80211_BSS_FREQUENCY                                   = 0x2\n\tNL80211_BSS_FREQUENCY_OFFSET                            = 0x14\n\tNL80211_BSS_INFORMATION_ELEMENTS                        = 0x6\n\tNL80211_BSS_LAST_SEEN_BOOTTIME                          = 0xf\n\tNL80211_BSS_MAX                                         = 0x18\n\tNL80211_BSS_MLD_ADDR                                    = 0x16\n\tNL80211_BSS_MLO_LINK_ID                                 = 0x15\n\tNL80211_BSS_PAD                                         = 0x10\n\tNL80211_BSS_PARENT_BSSID                                = 0x12\n\tNL80211_BSS_PARENT_TSF                                  = 0x11\n\tNL80211_BSS_PRESP_DATA                                  = 0xe\n\tNL80211_BSS_SEEN_MS_AGO                                 = 0xa\n\tNL80211_BSS_SELECT_ATTR_BAND_PREF                       = 0x2\n\tNL80211_BSS_SELECT_ATTR_MAX                             = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI_ADJUST                     = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI                            = 0x1\n\tNL80211_BSS_SIGNAL_MBM                                  = 0x7\n\tNL80211_BSS_SIGNAL_UNSPEC                               = 0x8\n\tNL80211_BSS_STATUS_ASSOCIATED                           = 0x1\n\tNL80211_BSS_STATUS_AUTHENTICATED                        = 0x0\n\tNL80211_BSS_STATUS                                      = 0x9\n\tNL80211_BSS_STATUS_IBSS_JOINED                          = 0x2\n\tNL80211_BSS_TSF                                         = 0x3\n\tNL80211_BSS_USE_FOR                                     = 0x17\n\tNL80211_BSS_USE_FOR_MLD_LINK                            = 0x2\n\tNL80211_BSS_USE_FOR_NORMAL                              = 0x1\n\tNL80211_CHAN_HT20                                       = 0x1\n\tNL80211_CHAN_HT40MINUS                                  = 0x2\n\tNL80211_CHAN_HT40PLUS                                   = 0x3\n\tNL80211_CHAN_NO_HT                                      = 0x0\n\tNL80211_CHAN_WIDTH_10                                   = 0x7\n\tNL80211_CHAN_WIDTH_160                                  = 0x5\n\tNL80211_CHAN_WIDTH_16                                   = 0xc\n\tNL80211_CHAN_WIDTH_1                                    = 0x8\n\tNL80211_CHAN_WIDTH_20                                   = 0x1\n\tNL80211_CHAN_WIDTH_20_NOHT                              = 0x0\n\tNL80211_CHAN_WIDTH_2                                    = 0x9\n\tNL80211_CHAN_WIDTH_320                                  = 0xd\n\tNL80211_CHAN_WIDTH_40                                   = 0x2\n\tNL80211_CHAN_WIDTH_4                                    = 0xa\n\tNL80211_CHAN_WIDTH_5                                    = 0x6\n\tNL80211_CHAN_WIDTH_80                                   = 0x3\n\tNL80211_CHAN_WIDTH_80P80                                = 0x4\n\tNL80211_CHAN_WIDTH_8                                    = 0xb\n\tNL80211_CMD_ABORT_SCAN                                  = 0x72\n\tNL80211_CMD_ACTION                                      = 0x3b\n\tNL80211_CMD_ACTION_TX_STATUS                            = 0x3c\n\tNL80211_CMD_ADD_LINK                                    = 0x94\n\tNL80211_CMD_ADD_LINK_STA                                = 0x96\n\tNL80211_CMD_ADD_NAN_FUNCTION                            = 0x75\n\tNL80211_CMD_ADD_TX_TS                                   = 0x69\n\tNL80211_CMD_ASSOC_COMEBACK                              = 0x93\n\tNL80211_CMD_ASSOCIATE                                   = 0x26\n\tNL80211_CMD_AUTHENTICATE                                = 0x25\n\tNL80211_CMD_CANCEL_REMAIN_ON_CHANNEL                    = 0x38\n\tNL80211_CMD_CHANGE_NAN_CONFIG                           = 0x77\n\tNL80211_CMD_CHANNEL_SWITCH                              = 0x66\n\tNL80211_CMD_CH_SWITCH_NOTIFY                            = 0x58\n\tNL80211_CMD_CH_SWITCH_STARTED_NOTIFY                    = 0x6e\n\tNL80211_CMD_COLOR_CHANGE_ABORTED                        = 0x90\n\tNL80211_CMD_COLOR_CHANGE_COMPLETED                      = 0x91\n\tNL80211_CMD_COLOR_CHANGE_REQUEST                        = 0x8e\n\tNL80211_CMD_COLOR_CHANGE_STARTED                        = 0x8f\n\tNL80211_CMD_CONNECT                                     = 0x2e\n\tNL80211_CMD_CONN_FAILED                                 = 0x5b\n\tNL80211_CMD_CONTROL_PORT_FRAME                          = 0x81\n\tNL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS                = 0x8b\n\tNL80211_CMD_CRIT_PROTOCOL_START                         = 0x62\n\tNL80211_CMD_CRIT_PROTOCOL_STOP                          = 0x63\n\tNL80211_CMD_DEAUTHENTICATE                              = 0x27\n\tNL80211_CMD_DEL_BEACON                                  = 0x10\n\tNL80211_CMD_DEL_INTERFACE                               = 0x8\n\tNL80211_CMD_DEL_KEY                                     = 0xc\n\tNL80211_CMD_DEL_MPATH                                   = 0x18\n\tNL80211_CMD_DEL_NAN_FUNCTION                            = 0x76\n\tNL80211_CMD_DEL_PMK                                     = 0x7c\n\tNL80211_CMD_DEL_PMKSA                                   = 0x35\n\tNL80211_CMD_DEL_STATION                                 = 0x14\n\tNL80211_CMD_DEL_TX_TS                                   = 0x6a\n\tNL80211_CMD_DEL_WIPHY                                   = 0x4\n\tNL80211_CMD_DISASSOCIATE                                = 0x28\n\tNL80211_CMD_DISCONNECT                                  = 0x30\n\tNL80211_CMD_EXTERNAL_AUTH                               = 0x7f\n\tNL80211_CMD_FLUSH_PMKSA                                 = 0x36\n\tNL80211_CMD_FRAME                                       = 0x3b\n\tNL80211_CMD_FRAME_TX_STATUS                             = 0x3c\n\tNL80211_CMD_FRAME_WAIT_CANCEL                           = 0x43\n\tNL80211_CMD_FT_EVENT                                    = 0x61\n\tNL80211_CMD_GET_BEACON                                  = 0xd\n\tNL80211_CMD_GET_COALESCE                                = 0x64\n\tNL80211_CMD_GET_FTM_RESPONDER_STATS                     = 0x82\n\tNL80211_CMD_GET_INTERFACE                               = 0x5\n\tNL80211_CMD_GET_KEY                                     = 0x9\n\tNL80211_CMD_GET_MESH_CONFIG                             = 0x1c\n\tNL80211_CMD_GET_MESH_PARAMS                             = 0x1c\n\tNL80211_CMD_GET_MPATH                                   = 0x15\n\tNL80211_CMD_GET_MPP                                     = 0x6b\n\tNL80211_CMD_GET_POWER_SAVE                              = 0x3e\n\tNL80211_CMD_GET_PROTOCOL_FEATURES                       = 0x5f\n\tNL80211_CMD_GET_REG                                     = 0x1f\n\tNL80211_CMD_GET_SCAN                                    = 0x20\n\tNL80211_CMD_GET_STATION                                 = 0x11\n\tNL80211_CMD_GET_SURVEY                                  = 0x32\n\tNL80211_CMD_GET_WIPHY                                   = 0x1\n\tNL80211_CMD_GET_WOWLAN                                  = 0x49\n\tNL80211_CMD_JOIN_IBSS                                   = 0x2b\n\tNL80211_CMD_JOIN_MESH                                   = 0x44\n\tNL80211_CMD_JOIN_OCB                                    = 0x6c\n\tNL80211_CMD_LEAVE_IBSS                                  = 0x2c\n\tNL80211_CMD_LEAVE_MESH                                  = 0x45\n\tNL80211_CMD_LEAVE_OCB                                   = 0x6d\n\tNL80211_CMD_LINKS_REMOVED                               = 0x9a\n\tNL80211_CMD_MAX                                         = 0x9d\n\tNL80211_CMD_MICHAEL_MIC_FAILURE                         = 0x29\n\tNL80211_CMD_MODIFY_LINK_STA                             = 0x97\n\tNL80211_CMD_NAN_MATCH                                   = 0x78\n\tNL80211_CMD_NEW_BEACON                                  = 0xf\n\tNL80211_CMD_NEW_INTERFACE                               = 0x7\n\tNL80211_CMD_NEW_KEY                                     = 0xb\n\tNL80211_CMD_NEW_MPATH                                   = 0x17\n\tNL80211_CMD_NEW_PEER_CANDIDATE                          = 0x48\n\tNL80211_CMD_NEW_SCAN_RESULTS                            = 0x22\n\tNL80211_CMD_NEW_STATION                                 = 0x13\n\tNL80211_CMD_NEW_SURVEY_RESULTS                          = 0x33\n\tNL80211_CMD_NEW_WIPHY                                   = 0x3\n\tNL80211_CMD_NOTIFY_CQM                                  = 0x40\n\tNL80211_CMD_NOTIFY_RADAR                                = 0x86\n\tNL80211_CMD_OBSS_COLOR_COLLISION                        = 0x8d\n\tNL80211_CMD_PEER_MEASUREMENT_COMPLETE                   = 0x85\n\tNL80211_CMD_PEER_MEASUREMENT_RESULT                     = 0x84\n\tNL80211_CMD_PEER_MEASUREMENT_START                      = 0x83\n\tNL80211_CMD_PMKSA_CANDIDATE                             = 0x50\n\tNL80211_CMD_PORT_AUTHORIZED                             = 0x7d\n\tNL80211_CMD_PROBE_CLIENT                                = 0x54\n\tNL80211_CMD_PROBE_MESH_LINK                             = 0x88\n\tNL80211_CMD_RADAR_DETECT                                = 0x5e\n\tNL80211_CMD_REG_BEACON_HINT                             = 0x2a\n\tNL80211_CMD_REG_CHANGE                                  = 0x24\n\tNL80211_CMD_REGISTER_ACTION                             = 0x3a\n\tNL80211_CMD_REGISTER_BEACONS                            = 0x55\n\tNL80211_CMD_REGISTER_FRAME                              = 0x3a\n\tNL80211_CMD_RELOAD_REGDB                                = 0x7e\n\tNL80211_CMD_REMAIN_ON_CHANNEL                           = 0x37\n\tNL80211_CMD_REMOVE_LINK                                 = 0x95\n\tNL80211_CMD_REMOVE_LINK_STA                             = 0x98\n\tNL80211_CMD_REQ_SET_REG                                 = 0x1b\n\tNL80211_CMD_ROAM                                        = 0x2f\n\tNL80211_CMD_SCAN_ABORTED                                = 0x23\n\tNL80211_CMD_SCHED_SCAN_RESULTS                          = 0x4d\n\tNL80211_CMD_SCHED_SCAN_STOPPED                          = 0x4e\n\tNL80211_CMD_SET_BEACON                                  = 0xe\n\tNL80211_CMD_SET_BSS                                     = 0x19\n\tNL80211_CMD_SET_CHANNEL                                 = 0x41\n\tNL80211_CMD_SET_COALESCE                                = 0x65\n\tNL80211_CMD_SET_CQM                                     = 0x3f\n\tNL80211_CMD_SET_FILS_AAD                                = 0x92\n\tNL80211_CMD_SET_HW_TIMESTAMP                            = 0x99\n\tNL80211_CMD_SET_INTERFACE                               = 0x6\n\tNL80211_CMD_SET_KEY                                     = 0xa\n\tNL80211_CMD_SET_MAC_ACL                                 = 0x5d\n\tNL80211_CMD_SET_MCAST_RATE                              = 0x5c\n\tNL80211_CMD_SET_MESH_CONFIG                             = 0x1d\n\tNL80211_CMD_SET_MESH_PARAMS                             = 0x1d\n\tNL80211_CMD_SET_MGMT_EXTRA_IE                           = 0x1e\n\tNL80211_CMD_SET_MPATH                                   = 0x16\n\tNL80211_CMD_SET_MULTICAST_TO_UNICAST                    = 0x79\n\tNL80211_CMD_SET_NOACK_MAP                               = 0x57\n\tNL80211_CMD_SET_PMK                                     = 0x7b\n\tNL80211_CMD_SET_PMKSA                                   = 0x34\n\tNL80211_CMD_SET_POWER_SAVE                              = 0x3d\n\tNL80211_CMD_SET_QOS_MAP                                 = 0x68\n\tNL80211_CMD_SET_REG                                     = 0x1a\n\tNL80211_CMD_SET_REKEY_OFFLOAD                           = 0x4f\n\tNL80211_CMD_SET_SAR_SPECS                               = 0x8c\n\tNL80211_CMD_SET_STATION                                 = 0x12\n\tNL80211_CMD_SET_TID_CONFIG                              = 0x89\n\tNL80211_CMD_SET_TID_TO_LINK_MAPPING                     = 0x9b\n\tNL80211_CMD_SET_TX_BITRATE_MASK                         = 0x39\n\tNL80211_CMD_SET_WDS_PEER                                = 0x42\n\tNL80211_CMD_SET_WIPHY                                   = 0x2\n\tNL80211_CMD_SET_WIPHY_NETNS                             = 0x31\n\tNL80211_CMD_SET_WOWLAN                                  = 0x4a\n\tNL80211_CMD_STA_OPMODE_CHANGED                          = 0x80\n\tNL80211_CMD_START_AP                                    = 0xf\n\tNL80211_CMD_START_NAN                                   = 0x73\n\tNL80211_CMD_START_P2P_DEVICE                            = 0x59\n\tNL80211_CMD_START_SCHED_SCAN                            = 0x4b\n\tNL80211_CMD_STOP_AP                                     = 0x10\n\tNL80211_CMD_STOP_NAN                                    = 0x74\n\tNL80211_CMD_STOP_P2P_DEVICE                             = 0x5a\n\tNL80211_CMD_STOP_SCHED_SCAN                             = 0x4c\n\tNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH                  = 0x70\n\tNL80211_CMD_TDLS_CHANNEL_SWITCH                         = 0x6f\n\tNL80211_CMD_TDLS_MGMT                                   = 0x52\n\tNL80211_CMD_TDLS_OPER                                   = 0x51\n\tNL80211_CMD_TESTMODE                                    = 0x2d\n\tNL80211_CMD_TRIGGER_SCAN                                = 0x21\n\tNL80211_CMD_UNEXPECTED_4ADDR_FRAME                      = 0x56\n\tNL80211_CMD_UNEXPECTED_FRAME                            = 0x53\n\tNL80211_CMD_UNPROT_BEACON                               = 0x8a\n\tNL80211_CMD_UNPROT_DEAUTHENTICATE                       = 0x46\n\tNL80211_CMD_UNPROT_DISASSOCIATE                         = 0x47\n\tNL80211_CMD_UNSPEC                                      = 0x0\n\tNL80211_CMD_UPDATE_CONNECT_PARAMS                       = 0x7a\n\tNL80211_CMD_UPDATE_FT_IES                               = 0x60\n\tNL80211_CMD_UPDATE_OWE_INFO                             = 0x87\n\tNL80211_CMD_VENDOR                                      = 0x67\n\tNL80211_CMD_WIPHY_REG_CHANGE                            = 0x71\n\tNL80211_COALESCE_CONDITION_MATCH                        = 0x0\n\tNL80211_COALESCE_CONDITION_NO_MATCH                     = 0x1\n\tNL80211_CONN_FAIL_BLOCKED_CLIENT                        = 0x1\n\tNL80211_CONN_FAIL_MAX_CLIENTS                           = 0x0\n\tNL80211_CQM_RSSI_BEACON_LOSS_EVENT                      = 0x2\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH                   = 0x1\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_LOW                    = 0x0\n\tNL80211_CQM_TXE_MAX_INTVL                               = 0x708\n\tNL80211_CRIT_PROTO_APIPA                                = 0x3\n\tNL80211_CRIT_PROTO_DHCP                                 = 0x1\n\tNL80211_CRIT_PROTO_EAPOL                                = 0x2\n\tNL80211_CRIT_PROTO_MAX_DURATION                         = 0x1388\n\tNL80211_CRIT_PROTO_UNSPEC                               = 0x0\n\tNL80211_DFS_AVAILABLE                                   = 0x2\n\tNL80211_DFS_ETSI                                        = 0x2\n\tNL80211_DFS_FCC                                         = 0x1\n\tNL80211_DFS_JP                                          = 0x3\n\tNL80211_DFS_UNAVAILABLE                                 = 0x1\n\tNL80211_DFS_UNSET                                       = 0x0\n\tNL80211_DFS_USABLE                                      = 0x0\n\tNL80211_EDMG_BW_CONFIG_MAX                              = 0xf\n\tNL80211_EDMG_BW_CONFIG_MIN                              = 0x4\n\tNL80211_EDMG_CHANNELS_MAX                               = 0x3c\n\tNL80211_EDMG_CHANNELS_MIN                               = 0x1\n\tNL80211_EHT_MAX_CAPABILITY_LEN                          = 0x33\n\tNL80211_EHT_MIN_CAPABILITY_LEN                          = 0xd\n\tNL80211_EXTERNAL_AUTH_ABORT                             = 0x1\n\tNL80211_EXTERNAL_AUTH_START                             = 0x0\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK               = 0x32\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X               = 0x10\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK              = 0xf\n\tNL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP             = 0x12\n\tNL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT                  = 0x1b\n\tNL80211_EXT_FEATURE_AIRTIME_FAIRNESS                    = 0x21\n\tNL80211_EXT_FEATURE_AP_PMKSA_CACHING                    = 0x22\n\tNL80211_EXT_FEATURE_AQL                                 = 0x28\n\tNL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA           = 0x40\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT            = 0x2e\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION                   = 0x29\n\tNL80211_EXT_FEATURE_BEACON_RATE_HE                      = 0x36\n\tNL80211_EXT_FEATURE_BEACON_RATE_HT                      = 0x7\n\tNL80211_EXT_FEATURE_BEACON_RATE_LEGACY                  = 0x6\n\tNL80211_EXT_FEATURE_BEACON_RATE_VHT                     = 0x8\n\tNL80211_EXT_FEATURE_BSS_COLOR                           = 0x3a\n\tNL80211_EXT_FEATURE_BSS_PARENT_TSF                      = 0x4\n\tNL80211_EXT_FEATURE_CAN_REPLACE_PTK0                    = 0x1f\n\tNL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH             = 0x2a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211           = 0x1a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30\n\tNL80211_EXT_FEATURE_CQM_RSSI_LIST                       = 0xd\n\tNL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT             = 0x1b\n\tNL80211_EXT_FEATURE_DEL_IBSS_STA                        = 0x2c\n\tNL80211_EXT_FEATURE_DFS_CONCURRENT                      = 0x43\n\tNL80211_EXT_FEATURE_DFS_OFFLOAD                         = 0x19\n\tNL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER                = 0x20\n\tNL80211_EXT_FEATURE_EXT_KEY_ID                          = 0x24\n\tNL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD                 = 0x3b\n\tNL80211_EXT_FEATURE_FILS_DISCOVERY                      = 0x34\n\tNL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME               = 0x11\n\tNL80211_EXT_FEATURE_FILS_SK_OFFLOAD                     = 0xe\n\tNL80211_EXT_FEATURE_FILS_STA                            = 0x9\n\tNL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN                  = 0x18\n\tNL80211_EXT_FEATURE_LOW_POWER_SCAN                      = 0x17\n\tNL80211_EXT_FEATURE_LOW_SPAN_SCAN                       = 0x16\n\tNL80211_EXT_FEATURE_MFP_OPTIONAL                        = 0x15\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA                   = 0xa\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED         = 0xb\n\tNL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS             = 0x2d\n\tNL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER                 = 0x2\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION  = 0x14\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE          = 0x13\n\tNL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION        = 0x31\n\tNL80211_EXT_FEATURE_OWE_OFFLOAD_AP                      = 0x42\n\tNL80211_EXT_FEATURE_OWE_OFFLOAD                         = 0x41\n\tNL80211_EXT_FEATURE_POWERED_ADDR_CHANGE                 = 0x3d\n\tNL80211_EXT_FEATURE_PROTECTED_TWT                       = 0x2b\n\tNL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE         = 0x39\n\tNL80211_EXT_FEATURE_PUNCT                               = 0x3e\n\tNL80211_EXT_FEATURE_RADAR_BACKGROUND                    = 0x3c\n\tNL80211_EXT_FEATURE_RRM                                 = 0x1\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD_AP                      = 0x33\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD                         = 0x26\n\tNL80211_EXT_FEATURE_SCAN_FREQ_KHZ                       = 0x2f\n\tNL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT               = 0x1e\n\tNL80211_EXT_FEATURE_SCAN_RANDOM_SN                      = 0x1d\n\tNL80211_EXT_FEATURE_SCAN_START_TIME                     = 0x3\n\tNL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23\n\tNL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI            = 0xc\n\tNL80211_EXT_FEATURE_SECURE_LTF                          = 0x37\n\tNL80211_EXT_FEATURE_SECURE_NAN                          = 0x3f\n\tNL80211_EXT_FEATURE_SECURE_RTT                          = 0x38\n\tNL80211_EXT_FEATURE_SET_SCAN_DWELL                      = 0x5\n\tNL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT                   = 0x44\n\tNL80211_EXT_FEATURE_STA_TX_PWR                          = 0x25\n\tNL80211_EXT_FEATURE_TXQS                                = 0x1c\n\tNL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP              = 0x35\n\tNL80211_EXT_FEATURE_VHT_IBSS                            = 0x0\n\tNL80211_EXT_FEATURE_VLAN_OFFLOAD                        = 0x27\n\tNL80211_FEATURE_ACKTO_ESTIMATION                        = 0x800000\n\tNL80211_FEATURE_ACTIVE_MONITOR                          = 0x20000\n\tNL80211_FEATURE_ADVERTISE_CHAN_LIMITS                   = 0x4000\n\tNL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE               = 0x40000\n\tNL80211_FEATURE_AP_SCAN                                 = 0x100\n\tNL80211_FEATURE_CELL_BASE_REG_HINTS                     = 0x8\n\tNL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES               = 0x80000\n\tNL80211_FEATURE_DYNAMIC_SMPS                            = 0x2000000\n\tNL80211_FEATURE_FULL_AP_CLIENT_STATE                    = 0x8000\n\tNL80211_FEATURE_HT_IBSS                                 = 0x2\n\tNL80211_FEATURE_INACTIVITY_TIMER                        = 0x4\n\tNL80211_FEATURE_LOW_PRIORITY_SCAN                       = 0x40\n\tNL80211_FEATURE_MAC_ON_CREATE                           = 0x8000000\n\tNL80211_FEATURE_ND_RANDOM_MAC_ADDR                      = 0x80000000\n\tNL80211_FEATURE_NEED_OBSS_SCAN                          = 0x400\n\tNL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL                = 0x10\n\tNL80211_FEATURE_P2P_GO_CTWIN                            = 0x800\n\tNL80211_FEATURE_P2P_GO_OPPPS                            = 0x1000\n\tNL80211_FEATURE_QUIET                                   = 0x200000\n\tNL80211_FEATURE_SAE                                     = 0x20\n\tNL80211_FEATURE_SCAN_FLUSH                              = 0x80\n\tNL80211_FEATURE_SCAN_RANDOM_MAC_ADDR                    = 0x20000000\n\tNL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR              = 0x40000000\n\tNL80211_FEATURE_SK_TX_STATUS                            = 0x1\n\tNL80211_FEATURE_STATIC_SMPS                             = 0x1000000\n\tNL80211_FEATURE_SUPPORTS_WMM_ADMISSION                  = 0x4000000\n\tNL80211_FEATURE_TDLS_CHANNEL_SWITCH                     = 0x10000000\n\tNL80211_FEATURE_TX_POWER_INSERTION                      = 0x400000\n\tNL80211_FEATURE_USERSPACE_MPM                           = 0x10000\n\tNL80211_FEATURE_VIF_TXPOWER                             = 0x200\n\tNL80211_FEATURE_WFA_TPC_IE_IN_PROBES                    = 0x100000\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MAX                     = 0x2\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MIN                     = 0x1\n\tNL80211_FILS_DISCOVERY_ATTR_MAX                         = 0x3\n\tNL80211_FILS_DISCOVERY_ATTR_TMPL                        = 0x3\n\tNL80211_FILS_DISCOVERY_TMPL_MIN_LEN                     = 0x2a\n\tNL80211_FREQUENCY_ATTR_16MHZ                            = 0x19\n\tNL80211_FREQUENCY_ATTR_1MHZ                             = 0x15\n\tNL80211_FREQUENCY_ATTR_2MHZ                             = 0x16\n\tNL80211_FREQUENCY_ATTR_4MHZ                             = 0x17\n\tNL80211_FREQUENCY_ATTR_8MHZ                             = 0x18\n\tNL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP                = 0x21\n\tNL80211_FREQUENCY_ATTR_CAN_MONITOR                      = 0x20\n\tNL80211_FREQUENCY_ATTR_DFS_CAC_TIME                     = 0xd\n\tNL80211_FREQUENCY_ATTR_DFS_CONCURRENT                   = 0x1d\n\tNL80211_FREQUENCY_ATTR_DFS_STATE                        = 0x7\n\tNL80211_FREQUENCY_ATTR_DFS_TIME                         = 0x8\n\tNL80211_FREQUENCY_ATTR_DISABLED                         = 0x2\n\tNL80211_FREQUENCY_ATTR_FREQ                             = 0x1\n\tNL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe\n\tNL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_MAX                              = 0x22\n\tNL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6\n\tNL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11\n\tNL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc\n\tNL80211_FREQUENCY_ATTR_NO_20MHZ                         = 0x10\n\tNL80211_FREQUENCY_ATTR_NO_320MHZ                        = 0x1a\n\tNL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT               = 0x1f\n\tNL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT               = 0x1e\n\tNL80211_FREQUENCY_ATTR_NO_80MHZ                         = 0xb\n\tNL80211_FREQUENCY_ATTR_NO_EHT                           = 0x1b\n\tNL80211_FREQUENCY_ATTR_NO_HE                            = 0x13\n\tNL80211_FREQUENCY_ATTR_NO_HT40_MINUS                    = 0x9\n\tNL80211_FREQUENCY_ATTR_NO_HT40_PLUS                     = 0xa\n\tNL80211_FREQUENCY_ATTR_NO_IBSS                          = 0x3\n\tNL80211_FREQUENCY_ATTR_NO_IR                            = 0x3\n\tNL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT                = 0x1f\n\tNL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT                = 0x1e\n\tNL80211_FREQUENCY_ATTR_OFFSET                           = 0x14\n\tNL80211_FREQUENCY_ATTR_PASSIVE_SCAN                     = 0x3\n\tNL80211_FREQUENCY_ATTR_PSD                              = 0x1c\n\tNL80211_FREQUENCY_ATTR_RADAR                            = 0x5\n\tNL80211_FREQUENCY_ATTR_WMM                              = 0x12\n\tNL80211_FTM_RESP_ATTR_CIVICLOC                          = 0x3\n\tNL80211_FTM_RESP_ATTR_ENABLED                           = 0x1\n\tNL80211_FTM_RESP_ATTR_LCI                               = 0x2\n\tNL80211_FTM_RESP_ATTR_MAX                               = 0x3\n\tNL80211_FTM_STATS_ASAP_NUM                              = 0x4\n\tNL80211_FTM_STATS_FAILED_NUM                            = 0x3\n\tNL80211_FTM_STATS_MAX                                   = 0xa\n\tNL80211_FTM_STATS_NON_ASAP_NUM                          = 0x5\n\tNL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM            = 0x9\n\tNL80211_FTM_STATS_PAD                                   = 0xa\n\tNL80211_FTM_STATS_PARTIAL_NUM                           = 0x2\n\tNL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM               = 0x8\n\tNL80211_FTM_STATS_SUCCESS_NUM                           = 0x1\n\tNL80211_FTM_STATS_TOTAL_DURATION_MSEC                   = 0x6\n\tNL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM                  = 0x7\n\tNL80211_GENL_NAME                                       = \"nl80211\"\n\tNL80211_HE_BSS_COLOR_ATTR_COLOR                         = 0x1\n\tNL80211_HE_BSS_COLOR_ATTR_DISABLED                      = 0x2\n\tNL80211_HE_BSS_COLOR_ATTR_MAX                           = 0x3\n\tNL80211_HE_BSS_COLOR_ATTR_PARTIAL                       = 0x3\n\tNL80211_HE_MAX_CAPABILITY_LEN                           = 0x36\n\tNL80211_HE_MIN_CAPABILITY_LEN                           = 0x10\n\tNL80211_HE_NSS_MAX                                      = 0x8\n\tNL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP                = 0x4\n\tNL80211_HE_OBSS_PD_ATTR_MAX                             = 0x6\n\tNL80211_HE_OBSS_PD_ATTR_MAX_OFFSET                      = 0x2\n\tNL80211_HE_OBSS_PD_ATTR_MIN_OFFSET                      = 0x1\n\tNL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET              = 0x3\n\tNL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP            = 0x5\n\tNL80211_HE_OBSS_PD_ATTR_SR_CTRL                         = 0x6\n\tNL80211_HIDDEN_SSID_NOT_IN_USE                          = 0x0\n\tNL80211_HIDDEN_SSID_ZERO_CONTENTS                       = 0x2\n\tNL80211_HIDDEN_SSID_ZERO_LEN                            = 0x1\n\tNL80211_HT_CAPABILITY_LEN                               = 0x1a\n\tNL80211_IFACE_COMB_BI_MIN_GCD                           = 0x7\n\tNL80211_IFACE_COMB_LIMITS                               = 0x1\n\tNL80211_IFACE_COMB_MAXNUM                               = 0x2\n\tNL80211_IFACE_COMB_NUM_CHANNELS                         = 0x4\n\tNL80211_IFACE_COMB_RADAR_DETECT_REGIONS                 = 0x6\n\tNL80211_IFACE_COMB_RADAR_DETECT_WIDTHS                  = 0x5\n\tNL80211_IFACE_COMB_STA_AP_BI_MATCH                      = 0x3\n\tNL80211_IFACE_COMB_UNSPEC                               = 0x0\n\tNL80211_IFACE_LIMIT_MAX                                 = 0x1\n\tNL80211_IFACE_LIMIT_TYPES                               = 0x2\n\tNL80211_IFACE_LIMIT_UNSPEC                              = 0x0\n\tNL80211_IFTYPE_ADHOC                                    = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_IFTYPES                         = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_MAX                             = 0x2\n\tNL80211_IFTYPE_AKM_ATTR_SUITES                          = 0x2\n\tNL80211_IFTYPE_AP                                       = 0x3\n\tNL80211_IFTYPE_AP_VLAN                                  = 0x4\n\tNL80211_IFTYPE_MAX                                      = 0xc\n\tNL80211_IFTYPE_MESH_POINT                               = 0x7\n\tNL80211_IFTYPE_MONITOR                                  = 0x6\n\tNL80211_IFTYPE_NAN                                      = 0xc\n\tNL80211_IFTYPE_OCB                                      = 0xb\n\tNL80211_IFTYPE_P2P_CLIENT                               = 0x8\n\tNL80211_IFTYPE_P2P_DEVICE                               = 0xa\n\tNL80211_IFTYPE_P2P_GO                                   = 0x9\n\tNL80211_IFTYPE_STATION                                  = 0x2\n\tNL80211_IFTYPE_UNSPECIFIED                              = 0x0\n\tNL80211_IFTYPE_WDS                                      = 0x5\n\tNL80211_KCK_EXT_LEN_32                                  = 0x20\n\tNL80211_KCK_EXT_LEN                                     = 0x18\n\tNL80211_KCK_LEN                                         = 0x10\n\tNL80211_KEK_EXT_LEN                                     = 0x20\n\tNL80211_KEK_LEN                                         = 0x10\n\tNL80211_KEY_CIPHER                                      = 0x3\n\tNL80211_KEY_DATA                                        = 0x1\n\tNL80211_KEY_DEFAULT_BEACON                              = 0xa\n\tNL80211_KEY_DEFAULT                                     = 0x5\n\tNL80211_KEY_DEFAULT_MGMT                                = 0x6\n\tNL80211_KEY_DEFAULT_TYPE_MULTICAST                      = 0x2\n\tNL80211_KEY_DEFAULT_TYPES                               = 0x8\n\tNL80211_KEY_DEFAULT_TYPE_UNICAST                        = 0x1\n\tNL80211_KEY_IDX                                         = 0x2\n\tNL80211_KEY_MAX                                         = 0xa\n\tNL80211_KEY_MODE                                        = 0x9\n\tNL80211_KEY_NO_TX                                       = 0x1\n\tNL80211_KEY_RX_TX                                       = 0x0\n\tNL80211_KEY_SEQ                                         = 0x4\n\tNL80211_KEY_SET_TX                                      = 0x2\n\tNL80211_KEY_TYPE                                        = 0x7\n\tNL80211_KEYTYPE_GROUP                                   = 0x0\n\tNL80211_KEYTYPE_PAIRWISE                                = 0x1\n\tNL80211_KEYTYPE_PEERKEY                                 = 0x2\n\tNL80211_MAX_NR_AKM_SUITES                               = 0x2\n\tNL80211_MAX_NR_CIPHER_SUITES                            = 0x5\n\tNL80211_MAX_SUPP_HT_RATES                               = 0x4d\n\tNL80211_MAX_SUPP_RATES                                  = 0x20\n\tNL80211_MAX_SUPP_REG_RULES                              = 0x80\n\tNL80211_MAX_SUPP_SELECTORS                              = 0x80\n\tNL80211_MBSSID_CONFIG_ATTR_EMA                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_INDEX                        = 0x3\n\tNL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x6\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY  = 0x2\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES               = 0x1\n\tNL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX                   = 0x4\n\tNL80211_MESHCONF_ATTR_MAX                               = 0x1f\n\tNL80211_MESHCONF_AUTO_OPEN_PLINKS                       = 0x7\n\tNL80211_MESHCONF_AWAKE_WINDOW                           = 0x1b\n\tNL80211_MESHCONF_CONFIRM_TIMEOUT                        = 0x2\n\tNL80211_MESHCONF_CONNECTED_TO_AS                        = 0x1f\n\tNL80211_MESHCONF_CONNECTED_TO_GATE                      = 0x1d\n\tNL80211_MESHCONF_ELEMENT_TTL                            = 0xf\n\tNL80211_MESHCONF_FORWARDING                             = 0x13\n\tNL80211_MESHCONF_GATE_ANNOUNCEMENTS                     = 0x11\n\tNL80211_MESHCONF_HOLDING_TIMEOUT                        = 0x3\n\tNL80211_MESHCONF_HT_OPMODE                              = 0x16\n\tNL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT               = 0xb\n\tNL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL             = 0x19\n\tNL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES                  = 0x8\n\tNL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME                = 0xd\n\tNL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT              = 0x17\n\tNL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL                 = 0x12\n\tNL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL                 = 0xc\n\tNL80211_MESHCONF_HWMP_RANN_INTERVAL                     = 0x10\n\tNL80211_MESHCONF_HWMP_ROOT_INTERVAL                     = 0x18\n\tNL80211_MESHCONF_HWMP_ROOTMODE                          = 0xe\n\tNL80211_MESHCONF_MAX_PEER_LINKS                         = 0x4\n\tNL80211_MESHCONF_MAX_RETRIES                            = 0x5\n\tNL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT                  = 0xa\n\tNL80211_MESHCONF_NOLEARN                                = 0x1e\n\tNL80211_MESHCONF_PATH_REFRESH_TIME                      = 0x9\n\tNL80211_MESHCONF_PLINK_TIMEOUT                          = 0x1c\n\tNL80211_MESHCONF_POWER_MODE                             = 0x1a\n\tNL80211_MESHCONF_RETRY_TIMEOUT                          = 0x1\n\tNL80211_MESHCONF_RSSI_THRESHOLD                         = 0x14\n\tNL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR               = 0x15\n\tNL80211_MESHCONF_TTL                                    = 0x6\n\tNL80211_MESH_POWER_ACTIVE                               = 0x1\n\tNL80211_MESH_POWER_DEEP_SLEEP                           = 0x3\n\tNL80211_MESH_POWER_LIGHT_SLEEP                          = 0x2\n\tNL80211_MESH_POWER_MAX                                  = 0x3\n\tNL80211_MESH_POWER_UNKNOWN                              = 0x0\n\tNL80211_MESH_SETUP_ATTR_MAX                             = 0x8\n\tNL80211_MESH_SETUP_AUTH_PROTOCOL                        = 0x8\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_METRIC                 = 0x2\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL               = 0x1\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_SYNC                   = 0x6\n\tNL80211_MESH_SETUP_IE                                   = 0x3\n\tNL80211_MESH_SETUP_USERSPACE_AMPE                       = 0x5\n\tNL80211_MESH_SETUP_USERSPACE_AUTH                       = 0x4\n\tNL80211_MESH_SETUP_USERSPACE_MPM                        = 0x7\n\tNL80211_MESH_SETUP_VENDOR_PATH_SEL_IE                   = 0x3\n\tNL80211_MFP_NO                                          = 0x0\n\tNL80211_MFP_OPTIONAL                                    = 0x2\n\tNL80211_MFP_REQUIRED                                    = 0x1\n\tNL80211_MIN_REMAIN_ON_CHANNEL_TIME                      = 0xa\n\tNL80211_MNTR_FLAG_ACTIVE                                = 0x6\n\tNL80211_MNTR_FLAG_CONTROL                               = 0x3\n\tNL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5\n\tNL80211_MNTR_FLAG_FCSFAIL                               = 0x1\n\tNL80211_MNTR_FLAG_MAX                                   = 0x7\n\tNL80211_MNTR_FLAG_OTHER_BSS                             = 0x4\n\tNL80211_MNTR_FLAG_PLCPFAIL                              = 0x2\n\tNL80211_MPATH_FLAG_ACTIVE                               = 0x1\n\tNL80211_MPATH_FLAG_FIXED                                = 0x8\n\tNL80211_MPATH_FLAG_RESOLVED                             = 0x10\n\tNL80211_MPATH_FLAG_RESOLVING                            = 0x2\n\tNL80211_MPATH_FLAG_SN_VALID                             = 0x4\n\tNL80211_MPATH_INFO_DISCOVERY_RETRIES                    = 0x7\n\tNL80211_MPATH_INFO_DISCOVERY_TIMEOUT                    = 0x6\n\tNL80211_MPATH_INFO_EXPTIME                              = 0x4\n\tNL80211_MPATH_INFO_FLAGS                                = 0x5\n\tNL80211_MPATH_INFO_FRAME_QLEN                           = 0x1\n\tNL80211_MPATH_INFO_HOP_COUNT                            = 0x8\n\tNL80211_MPATH_INFO_MAX                                  = 0x9\n\tNL80211_MPATH_INFO_METRIC                               = 0x3\n\tNL80211_MPATH_INFO_PATH_CHANGE                          = 0x9\n\tNL80211_MPATH_INFO_SN                                   = 0x2\n\tNL80211_MULTICAST_GROUP_CONFIG                          = \"config\"\n\tNL80211_MULTICAST_GROUP_MLME                            = \"mlme\"\n\tNL80211_MULTICAST_GROUP_NAN                             = \"nan\"\n\tNL80211_MULTICAST_GROUP_REG                             = \"regulatory\"\n\tNL80211_MULTICAST_GROUP_SCAN                            = \"scan\"\n\tNL80211_MULTICAST_GROUP_TESTMODE                        = \"testmode\"\n\tNL80211_MULTICAST_GROUP_VENDOR                          = \"vendor\"\n\tNL80211_NAN_FUNC_ATTR_MAX                               = 0x10\n\tNL80211_NAN_FUNC_CLOSE_RANGE                            = 0x9\n\tNL80211_NAN_FUNC_FOLLOW_UP                              = 0x2\n\tNL80211_NAN_FUNC_FOLLOW_UP_DEST                         = 0x8\n\tNL80211_NAN_FUNC_FOLLOW_UP_ID                           = 0x6\n\tNL80211_NAN_FUNC_FOLLOW_UP_REQ_ID                       = 0x7\n\tNL80211_NAN_FUNC_INSTANCE_ID                            = 0xf\n\tNL80211_NAN_FUNC_MAX_TYPE                               = 0x2\n\tNL80211_NAN_FUNC_PUBLISH_BCAST                          = 0x4\n\tNL80211_NAN_FUNC_PUBLISH                                = 0x0\n\tNL80211_NAN_FUNC_PUBLISH_TYPE                           = 0x3\n\tNL80211_NAN_FUNC_RX_MATCH_FILTER                        = 0xd\n\tNL80211_NAN_FUNC_SERVICE_ID                             = 0x2\n\tNL80211_NAN_FUNC_SERVICE_ID_LEN                         = 0x6\n\tNL80211_NAN_FUNC_SERVICE_INFO                           = 0xb\n\tNL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN              = 0xff\n\tNL80211_NAN_FUNC_SRF                                    = 0xc\n\tNL80211_NAN_FUNC_SRF_MAX_LEN                            = 0xff\n\tNL80211_NAN_FUNC_SUBSCRIBE_ACTIVE                       = 0x5\n\tNL80211_NAN_FUNC_SUBSCRIBE                              = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON                            = 0x10\n\tNL80211_NAN_FUNC_TERM_REASON_ERROR                      = 0x2\n\tNL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED                = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON_USER_REQUEST               = 0x0\n\tNL80211_NAN_FUNC_TTL                                    = 0xa\n\tNL80211_NAN_FUNC_TX_MATCH_FILTER                        = 0xe\n\tNL80211_NAN_FUNC_TYPE                                   = 0x1\n\tNL80211_NAN_MATCH_ATTR_MAX                              = 0x2\n\tNL80211_NAN_MATCH_FUNC_LOCAL                            = 0x1\n\tNL80211_NAN_MATCH_FUNC_PEER                             = 0x2\n\tNL80211_NAN_SOLICITED_PUBLISH                           = 0x1\n\tNL80211_NAN_SRF_ATTR_MAX                                = 0x4\n\tNL80211_NAN_SRF_BF                                      = 0x2\n\tNL80211_NAN_SRF_BF_IDX                                  = 0x3\n\tNL80211_NAN_SRF_INCLUDE                                 = 0x1\n\tNL80211_NAN_SRF_MAC_ADDRS                               = 0x4\n\tNL80211_NAN_UNSOLICITED_PUBLISH                         = 0x2\n\tNL80211_NUM_ACS                                         = 0x4\n\tNL80211_P2P_PS_SUPPORTED                                = 0x1\n\tNL80211_P2P_PS_UNSUPPORTED                              = 0x0\n\tNL80211_PKTPAT_MASK                                     = 0x1\n\tNL80211_PKTPAT_OFFSET                                   = 0x3\n\tNL80211_PKTPAT_PATTERN                                  = 0x2\n\tNL80211_PLINK_ACTION_BLOCK                              = 0x2\n\tNL80211_PLINK_ACTION_NO_ACTION                          = 0x0\n\tNL80211_PLINK_ACTION_OPEN                               = 0x1\n\tNL80211_PLINK_BLOCKED                                   = 0x6\n\tNL80211_PLINK_CNF_RCVD                                  = 0x3\n\tNL80211_PLINK_ESTAB                                     = 0x4\n\tNL80211_PLINK_HOLDING                                   = 0x5\n\tNL80211_PLINK_LISTEN                                    = 0x0\n\tNL80211_PLINK_OPN_RCVD                                  = 0x2\n\tNL80211_PLINK_OPN_SNT                                   = 0x1\n\tNL80211_PMKSA_CANDIDATE_BSSID                           = 0x2\n\tNL80211_PMKSA_CANDIDATE_INDEX                           = 0x1\n\tNL80211_PMKSA_CANDIDATE_PREAUTH                         = 0x3\n\tNL80211_PMSR_ATTR_MAX                                   = 0x5\n\tNL80211_PMSR_ATTR_MAX_PEERS                             = 0x1\n\tNL80211_PMSR_ATTR_PEERS                                 = 0x5\n\tNL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR                    = 0x3\n\tNL80211_PMSR_ATTR_REPORT_AP_TSF                         = 0x2\n\tNL80211_PMSR_ATTR_TYPE_CAPA                             = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_ASAP                         = 0x1\n\tNL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS                   = 0x6\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT          = 0x7\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX                          = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST           = 0x8\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP                     = 0x2\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED            = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES                    = 0x5\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC                 = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI                      = 0x3\n\tNL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED                = 0x9\n\tNL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS             = 0x7\n\tNL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP              = 0x5\n\tNL80211_PMSR_FTM_FAILURE_NO_RESPONSE                    = 0x1\n\tNL80211_PMSR_FTM_FAILURE_PEER_BUSY                      = 0x6\n\tNL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE               = 0x4\n\tNL80211_PMSR_FTM_FAILURE_REJECTED                       = 0x2\n\tNL80211_PMSR_FTM_FAILURE_UNSPECIFIED                    = 0x0\n\tNL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL                  = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_ASAP                          = 0x1\n\tNL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR                     = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION                = 0x5\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD                  = 0x4\n\tNL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST                = 0x6\n\tNL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK                  = 0xc\n\tNL80211_PMSR_FTM_REQ_ATTR_MAX                           = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED             = 0xb\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP                = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES              = 0x7\n\tNL80211_PMSR_FTM_REQ_ATTR_PREAMBLE                      = 0x2\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC              = 0x9\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI                   = 0x8\n\tNL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED                 = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION               = 0x7\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX                  = 0x2\n\tNL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME              = 0x5\n\tNL80211_PMSR_FTM_RESP_ATTR_CIVICLOC                     = 0x14\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_AVG                     = 0x10\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD                  = 0x12\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE                = 0x11\n\tNL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON                  = 0x1\n\tNL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST               = 0x8\n\tNL80211_PMSR_FTM_RESP_ATTR_LCI                          = 0x13\n\tNL80211_PMSR_FTM_RESP_ATTR_MAX                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP               = 0x6\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS            = 0x3\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES           = 0x4\n\tNL80211_PMSR_FTM_RESP_ATTR_PAD                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG                     = 0x9\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD                  = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_AVG                      = 0xd\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD                   = 0xf\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE                 = 0xe\n\tNL80211_PMSR_FTM_RESP_ATTR_RX_RATE                      = 0xc\n\tNL80211_PMSR_FTM_RESP_ATTR_TX_RATE                      = 0xb\n\tNL80211_PMSR_PEER_ATTR_ADDR                             = 0x1\n\tNL80211_PMSR_PEER_ATTR_CHAN                             = 0x2\n\tNL80211_PMSR_PEER_ATTR_MAX                              = 0x4\n\tNL80211_PMSR_PEER_ATTR_REQ                              = 0x3\n\tNL80211_PMSR_PEER_ATTR_RESP                             = 0x4\n\tNL80211_PMSR_REQ_ATTR_DATA                              = 0x1\n\tNL80211_PMSR_REQ_ATTR_GET_AP_TSF                        = 0x2\n\tNL80211_PMSR_REQ_ATTR_MAX                               = 0x2\n\tNL80211_PMSR_RESP_ATTR_AP_TSF                           = 0x4\n\tNL80211_PMSR_RESP_ATTR_DATA                             = 0x1\n\tNL80211_PMSR_RESP_ATTR_FINAL                            = 0x5\n\tNL80211_PMSR_RESP_ATTR_HOST_TIME                        = 0x3\n\tNL80211_PMSR_RESP_ATTR_MAX                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_PAD                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_STATUS                           = 0x2\n\tNL80211_PMSR_STATUS_FAILURE                             = 0x3\n\tNL80211_PMSR_STATUS_REFUSED                             = 0x1\n\tNL80211_PMSR_STATUS_SUCCESS                             = 0x0\n\tNL80211_PMSR_STATUS_TIMEOUT                             = 0x2\n\tNL80211_PMSR_TYPE_FTM                                   = 0x1\n\tNL80211_PMSR_TYPE_INVALID                               = 0x0\n\tNL80211_PMSR_TYPE_MAX                                   = 0x1\n\tNL80211_PREAMBLE_DMG                                    = 0x3\n\tNL80211_PREAMBLE_HE                                     = 0x4\n\tNL80211_PREAMBLE_HT                                     = 0x1\n\tNL80211_PREAMBLE_LEGACY                                 = 0x0\n\tNL80211_PREAMBLE_VHT                                    = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U               = 0x8\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P                  = 0x4\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2                 = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS                  = 0x1\n\tNL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP               = 0x1\n\tNL80211_PS_DISABLED                                     = 0x0\n\tNL80211_PS_ENABLED                                      = 0x1\n\tNL80211_RADAR_CAC_ABORTED                               = 0x2\n\tNL80211_RADAR_CAC_FINISHED                              = 0x1\n\tNL80211_RADAR_CAC_STARTED                               = 0x5\n\tNL80211_RADAR_DETECTED                                  = 0x0\n\tNL80211_RADAR_NOP_FINISHED                              = 0x3\n\tNL80211_RADAR_PRE_CAC_EXPIRED                           = 0x4\n\tNL80211_RATE_INFO_10_MHZ_WIDTH                          = 0xb\n\tNL80211_RATE_INFO_160_MHZ_WIDTH                         = 0xa\n\tNL80211_RATE_INFO_16_MHZ_WIDTH                          = 0x1d\n\tNL80211_RATE_INFO_1_MHZ_WIDTH                           = 0x19\n\tNL80211_RATE_INFO_2_MHZ_WIDTH                           = 0x1a\n\tNL80211_RATE_INFO_320_MHZ_WIDTH                         = 0x12\n\tNL80211_RATE_INFO_40_MHZ_WIDTH                          = 0x3\n\tNL80211_RATE_INFO_4_MHZ_WIDTH                           = 0x1b\n\tNL80211_RATE_INFO_5_MHZ_WIDTH                           = 0xc\n\tNL80211_RATE_INFO_80_MHZ_WIDTH                          = 0x8\n\tNL80211_RATE_INFO_80P80_MHZ_WIDTH                       = 0x9\n\tNL80211_RATE_INFO_8_MHZ_WIDTH                           = 0x1c\n\tNL80211_RATE_INFO_BITRATE32                             = 0x5\n\tNL80211_RATE_INFO_BITRATE                               = 0x1\n\tNL80211_RATE_INFO_EHT_GI_0_8                            = 0x0\n\tNL80211_RATE_INFO_EHT_GI_1_6                            = 0x1\n\tNL80211_RATE_INFO_EHT_GI_3_2                            = 0x2\n\tNL80211_RATE_INFO_EHT_GI                                = 0x15\n\tNL80211_RATE_INFO_EHT_MCS                               = 0x13\n\tNL80211_RATE_INFO_EHT_NSS                               = 0x14\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106                      = 0x3\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106P26                   = 0x4\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_242                      = 0x5\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_26                       = 0x0\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996                    = 0xb\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484                = 0xc\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996                    = 0xd\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484                = 0xe\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484                      = 0x6\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484P242                  = 0x7\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_4x996                    = 0xf\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52                       = 0x1\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52P26                    = 0x2\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996                      = 0x8\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484                  = 0x9\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242              = 0xa\n\tNL80211_RATE_INFO_EHT_RU_ALLOC                          = 0x16\n\tNL80211_RATE_INFO_HE_1XLTF                              = 0x0\n\tNL80211_RATE_INFO_HE_2XLTF                              = 0x1\n\tNL80211_RATE_INFO_HE_4XLTF                              = 0x2\n\tNL80211_RATE_INFO_HE_DCM                                = 0x10\n\tNL80211_RATE_INFO_HE_GI_0_8                             = 0x0\n\tNL80211_RATE_INFO_HE_GI_1_6                             = 0x1\n\tNL80211_RATE_INFO_HE_GI_3_2                             = 0x2\n\tNL80211_RATE_INFO_HE_GI                                 = 0xf\n\tNL80211_RATE_INFO_HE_MCS                                = 0xd\n\tNL80211_RATE_INFO_HE_NSS                                = 0xe\n\tNL80211_RATE_INFO_HE_RU_ALLOC_106                       = 0x2\n\tNL80211_RATE_INFO_HE_RU_ALLOC_242                       = 0x3\n\tNL80211_RATE_INFO_HE_RU_ALLOC_26                        = 0x0\n\tNL80211_RATE_INFO_HE_RU_ALLOC_2x996                     = 0x6\n\tNL80211_RATE_INFO_HE_RU_ALLOC_484                       = 0x4\n\tNL80211_RATE_INFO_HE_RU_ALLOC_52                        = 0x1\n\tNL80211_RATE_INFO_HE_RU_ALLOC_996                       = 0x5\n\tNL80211_RATE_INFO_HE_RU_ALLOC                           = 0x11\n\tNL80211_RATE_INFO_MAX                                   = 0x1d\n\tNL80211_RATE_INFO_MCS                                   = 0x2\n\tNL80211_RATE_INFO_S1G_MCS                               = 0x17\n\tNL80211_RATE_INFO_S1G_NSS                               = 0x18\n\tNL80211_RATE_INFO_SHORT_GI                              = 0x4\n\tNL80211_RATE_INFO_VHT_MCS                               = 0x6\n\tNL80211_RATE_INFO_VHT_NSS                               = 0x7\n\tNL80211_REGDOM_SET_BY_CORE                              = 0x0\n\tNL80211_REGDOM_SET_BY_COUNTRY_IE                        = 0x3\n\tNL80211_REGDOM_SET_BY_DRIVER                            = 0x2\n\tNL80211_REGDOM_SET_BY_USER                              = 0x1\n\tNL80211_REGDOM_TYPE_COUNTRY                             = 0x0\n\tNL80211_REGDOM_TYPE_CUSTOM_WORLD                        = 0x2\n\tNL80211_REGDOM_TYPE_INTERSECTION                        = 0x3\n\tNL80211_REGDOM_TYPE_WORLD                               = 0x1\n\tNL80211_REG_RULE_ATTR_MAX                               = 0x8\n\tNL80211_REKEY_DATA_AKM                                  = 0x4\n\tNL80211_REKEY_DATA_KCK                                  = 0x2\n\tNL80211_REKEY_DATA_KEK                                  = 0x1\n\tNL80211_REKEY_DATA_REPLAY_CTR                           = 0x3\n\tNL80211_REPLAY_CTR_LEN                                  = 0x8\n\tNL80211_RRF_ALLOW_6GHZ_VLP_AP                           = 0x1000000\n\tNL80211_RRF_AUTO_BW                                     = 0x800\n\tNL80211_RRF_DFS                                         = 0x10\n\tNL80211_RRF_DFS_CONCURRENT                              = 0x200000\n\tNL80211_RRF_GO_CONCURRENT                               = 0x1000\n\tNL80211_RRF_IR_CONCURRENT                               = 0x1000\n\tNL80211_RRF_NO_160MHZ                                   = 0x10000\n\tNL80211_RRF_NO_320MHZ                                   = 0x40000\n\tNL80211_RRF_NO_6GHZ_AFC_CLIENT                          = 0x800000\n\tNL80211_RRF_NO_6GHZ_VLP_CLIENT                          = 0x400000\n\tNL80211_RRF_NO_80MHZ                                    = 0x8000\n\tNL80211_RRF_NO_CCK                                      = 0x2\n\tNL80211_RRF_NO_EHT                                      = 0x80000\n\tNL80211_RRF_NO_HE                                       = 0x20000\n\tNL80211_RRF_NO_HT40                                     = 0x6000\n\tNL80211_RRF_NO_HT40MINUS                                = 0x2000\n\tNL80211_RRF_NO_HT40PLUS                                 = 0x4000\n\tNL80211_RRF_NO_IBSS                                     = 0x80\n\tNL80211_RRF_NO_INDOOR                                   = 0x4\n\tNL80211_RRF_NO_IR_ALL                                   = 0x180\n\tNL80211_RRF_NO_IR                                       = 0x80\n\tNL80211_RRF_NO_OFDM                                     = 0x1\n\tNL80211_RRF_NO_OUTDOOR                                  = 0x8\n\tNL80211_RRF_NO_UHB_AFC_CLIENT                           = 0x800000\n\tNL80211_RRF_NO_UHB_VLP_CLIENT                           = 0x400000\n\tNL80211_RRF_PASSIVE_SCAN                                = 0x80\n\tNL80211_RRF_PSD                                         = 0x100000\n\tNL80211_RRF_PTMP_ONLY                                   = 0x40\n\tNL80211_RRF_PTP_ONLY                                    = 0x20\n\tNL80211_RXMGMT_FLAG_ANSWERED                            = 0x1\n\tNL80211_RXMGMT_FLAG_EXTERNAL_AUTH                       = 0x2\n\tNL80211_SAE_PWE_BOTH                                    = 0x3\n\tNL80211_SAE_PWE_HASH_TO_ELEMENT                         = 0x2\n\tNL80211_SAE_PWE_HUNT_AND_PECK                           = 0x1\n\tNL80211_SAE_PWE_UNSPECIFIED                             = 0x0\n\tNL80211_SAR_ATTR_MAX                                    = 0x2\n\tNL80211_SAR_ATTR_SPECS                                  = 0x2\n\tNL80211_SAR_ATTR_SPECS_END_FREQ                         = 0x4\n\tNL80211_SAR_ATTR_SPECS_MAX                              = 0x4\n\tNL80211_SAR_ATTR_SPECS_POWER                            = 0x1\n\tNL80211_SAR_ATTR_SPECS_RANGE_INDEX                      = 0x2\n\tNL80211_SAR_ATTR_SPECS_START_FREQ                       = 0x3\n\tNL80211_SAR_ATTR_TYPE                                   = 0x1\n\tNL80211_SAR_TYPE_POWER                                  = 0x0\n\tNL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP               = 0x20\n\tNL80211_SCAN_FLAG_AP                                    = 0x4\n\tNL80211_SCAN_FLAG_COLOCATED_6GHZ                        = 0x4000\n\tNL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME                 = 0x10\n\tNL80211_SCAN_FLAG_FLUSH                                 = 0x2\n\tNL80211_SCAN_FLAG_FREQ_KHZ                              = 0x2000\n\tNL80211_SCAN_FLAG_HIGH_ACCURACY                         = 0x400\n\tNL80211_SCAN_FLAG_LOW_POWER                             = 0x200\n\tNL80211_SCAN_FLAG_LOW_PRIORITY                          = 0x1\n\tNL80211_SCAN_FLAG_LOW_SPAN                              = 0x100\n\tNL80211_SCAN_FLAG_MIN_PREQ_CONTENT                      = 0x1000\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION    = 0x80\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE            = 0x40\n\tNL80211_SCAN_FLAG_RANDOM_ADDR                           = 0x8\n\tNL80211_SCAN_FLAG_RANDOM_SN                             = 0x800\n\tNL80211_SCAN_RSSI_THOLD_OFF                             = -0x12c\n\tNL80211_SCHED_SCAN_MATCH_ATTR_BSSID                     = 0x5\n\tNL80211_SCHED_SCAN_MATCH_ATTR_MAX                       = 0x6\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI             = 0x3\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST               = 0x4\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI                      = 0x2\n\tNL80211_SCHED_SCAN_MATCH_ATTR_SSID                      = 0x1\n\tNL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI                  = 0x6\n\tNL80211_SCHED_SCAN_PLAN_INTERVAL                        = 0x1\n\tNL80211_SCHED_SCAN_PLAN_ITERATIONS                      = 0x2\n\tNL80211_SCHED_SCAN_PLAN_MAX                             = 0x2\n\tNL80211_SMPS_DYNAMIC                                    = 0x2\n\tNL80211_SMPS_MAX                                        = 0x2\n\tNL80211_SMPS_OFF                                        = 0x0\n\tNL80211_SMPS_STATIC                                     = 0x1\n\tNL80211_STA_BSS_PARAM_BEACON_INTERVAL                   = 0x5\n\tNL80211_STA_BSS_PARAM_CTS_PROT                          = 0x1\n\tNL80211_STA_BSS_PARAM_DTIM_PERIOD                       = 0x4\n\tNL80211_STA_BSS_PARAM_MAX                               = 0x5\n\tNL80211_STA_BSS_PARAM_SHORT_PREAMBLE                    = 0x2\n\tNL80211_STA_BSS_PARAM_SHORT_SLOT_TIME                   = 0x3\n\tNL80211_STA_FLAG_ASSOCIATED                             = 0x7\n\tNL80211_STA_FLAG_AUTHENTICATED                          = 0x5\n\tNL80211_STA_FLAG_AUTHORIZED                             = 0x1\n\tNL80211_STA_FLAG_MAX                                    = 0x8\n\tNL80211_STA_FLAG_MAX_OLD_API                            = 0x6\n\tNL80211_STA_FLAG_MFP                                    = 0x4\n\tNL80211_STA_FLAG_SHORT_PREAMBLE                         = 0x2\n\tNL80211_STA_FLAG_SPP_AMSDU                              = 0x8\n\tNL80211_STA_FLAG_TDLS_PEER                              = 0x6\n\tNL80211_STA_FLAG_WME                                    = 0x3\n\tNL80211_STA_INFO_ACK_SIGNAL_AVG                         = 0x23\n\tNL80211_STA_INFO_ACK_SIGNAL                             = 0x22\n\tNL80211_STA_INFO_AIRTIME_LINK_METRIC                    = 0x29\n\tNL80211_STA_INFO_AIRTIME_WEIGHT                         = 0x28\n\tNL80211_STA_INFO_ASSOC_AT_BOOTTIME                      = 0x2a\n\tNL80211_STA_INFO_BEACON_LOSS                            = 0x12\n\tNL80211_STA_INFO_BEACON_RX                              = 0x1d\n\tNL80211_STA_INFO_BEACON_SIGNAL_AVG                      = 0x1e\n\tNL80211_STA_INFO_BSS_PARAM                              = 0xf\n\tNL80211_STA_INFO_CHAIN_SIGNAL_AVG                       = 0x1a\n\tNL80211_STA_INFO_CHAIN_SIGNAL                           = 0x19\n\tNL80211_STA_INFO_CONNECTED_TIME                         = 0x10\n\tNL80211_STA_INFO_CONNECTED_TO_AS                        = 0x2b\n\tNL80211_STA_INFO_CONNECTED_TO_GATE                      = 0x26\n\tNL80211_STA_INFO_DATA_ACK_SIGNAL_AVG                    = 0x23\n\tNL80211_STA_INFO_EXPECTED_THROUGHPUT                    = 0x1b\n\tNL80211_STA_INFO_FCS_ERROR_COUNT                        = 0x25\n\tNL80211_STA_INFO_INACTIVE_TIME                          = 0x1\n\tNL80211_STA_INFO_LLID                                   = 0x4\n\tNL80211_STA_INFO_LOCAL_PM                               = 0x14\n\tNL80211_STA_INFO_MAX                                    = 0x2b\n\tNL80211_STA_INFO_NONPEER_PM                             = 0x16\n\tNL80211_STA_INFO_PAD                                    = 0x21\n\tNL80211_STA_INFO_PEER_PM                                = 0x15\n\tNL80211_STA_INFO_PLID                                   = 0x5\n\tNL80211_STA_INFO_PLINK_STATE                            = 0x6\n\tNL80211_STA_INFO_RX_BITRATE                             = 0xe\n\tNL80211_STA_INFO_RX_BYTES64                             = 0x17\n\tNL80211_STA_INFO_RX_BYTES                               = 0x2\n\tNL80211_STA_INFO_RX_DROP_MISC                           = 0x1c\n\tNL80211_STA_INFO_RX_DURATION                            = 0x20\n\tNL80211_STA_INFO_RX_MPDUS                               = 0x24\n\tNL80211_STA_INFO_RX_PACKETS                             = 0x9\n\tNL80211_STA_INFO_SIGNAL_AVG                             = 0xd\n\tNL80211_STA_INFO_SIGNAL                                 = 0x7\n\tNL80211_STA_INFO_STA_FLAGS                              = 0x11\n\tNL80211_STA_INFO_TID_STATS                              = 0x1f\n\tNL80211_STA_INFO_T_OFFSET                               = 0x13\n\tNL80211_STA_INFO_TX_BITRATE                             = 0x8\n\tNL80211_STA_INFO_TX_BYTES64                             = 0x18\n\tNL80211_STA_INFO_TX_BYTES                               = 0x3\n\tNL80211_STA_INFO_TX_DURATION                            = 0x27\n\tNL80211_STA_INFO_TX_FAILED                              = 0xc\n\tNL80211_STA_INFO_TX_PACKETS                             = 0xa\n\tNL80211_STA_INFO_TX_RETRIES                             = 0xb\n\tNL80211_STA_WME_MAX                                     = 0x2\n\tNL80211_STA_WME_MAX_SP                                  = 0x2\n\tNL80211_STA_WME_UAPSD_QUEUES                            = 0x1\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_BUSY                   = 0x5\n\tNL80211_SURVEY_INFO_CHANNEL_TIME                        = 0x4\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY               = 0x6\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_RX                     = 0x7\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_TX                     = 0x8\n\tNL80211_SURVEY_INFO_FREQUENCY                           = 0x1\n\tNL80211_SURVEY_INFO_FREQUENCY_OFFSET                    = 0xc\n\tNL80211_SURVEY_INFO_IN_USE                              = 0x3\n\tNL80211_SURVEY_INFO_MAX                                 = 0xc\n\tNL80211_SURVEY_INFO_NOISE                               = 0x2\n\tNL80211_SURVEY_INFO_PAD                                 = 0xa\n\tNL80211_SURVEY_INFO_TIME_BSS_RX                         = 0xb\n\tNL80211_SURVEY_INFO_TIME_BUSY                           = 0x5\n\tNL80211_SURVEY_INFO_TIME                                = 0x4\n\tNL80211_SURVEY_INFO_TIME_EXT_BUSY                       = 0x6\n\tNL80211_SURVEY_INFO_TIME_RX                             = 0x7\n\tNL80211_SURVEY_INFO_TIME_SCAN                           = 0x9\n\tNL80211_SURVEY_INFO_TIME_TX                             = 0x8\n\tNL80211_TDLS_DISABLE_LINK                               = 0x4\n\tNL80211_TDLS_DISCOVERY_REQ                              = 0x0\n\tNL80211_TDLS_ENABLE_LINK                                = 0x3\n\tNL80211_TDLS_PEER_HE                                    = 0x8\n\tNL80211_TDLS_PEER_HT                                    = 0x1\n\tNL80211_TDLS_PEER_VHT                                   = 0x2\n\tNL80211_TDLS_PEER_WMM                                   = 0x4\n\tNL80211_TDLS_SETUP                                      = 0x1\n\tNL80211_TDLS_TEARDOWN                                   = 0x2\n\tNL80211_TID_CONFIG_ATTR_AMPDU_CTRL                      = 0x9\n\tNL80211_TID_CONFIG_ATTR_AMSDU_CTRL                      = 0xb\n\tNL80211_TID_CONFIG_ATTR_MAX                             = 0xd\n\tNL80211_TID_CONFIG_ATTR_NOACK                           = 0x6\n\tNL80211_TID_CONFIG_ATTR_OVERRIDE                        = 0x4\n\tNL80211_TID_CONFIG_ATTR_PAD                             = 0x1\n\tNL80211_TID_CONFIG_ATTR_PEER_SUPP                       = 0x3\n\tNL80211_TID_CONFIG_ATTR_RETRY_LONG                      = 0x8\n\tNL80211_TID_CONFIG_ATTR_RETRY_SHORT                     = 0x7\n\tNL80211_TID_CONFIG_ATTR_RTSCTS_CTRL                     = 0xa\n\tNL80211_TID_CONFIG_ATTR_TIDS                            = 0x5\n\tNL80211_TID_CONFIG_ATTR_TX_RATE                         = 0xd\n\tNL80211_TID_CONFIG_ATTR_TX_RATE_TYPE                    = 0xc\n\tNL80211_TID_CONFIG_ATTR_VIF_SUPP                        = 0x2\n\tNL80211_TID_CONFIG_DISABLE                              = 0x1\n\tNL80211_TID_CONFIG_ENABLE                               = 0x0\n\tNL80211_TID_STATS_MAX                                   = 0x6\n\tNL80211_TID_STATS_PAD                                   = 0x5\n\tNL80211_TID_STATS_RX_MSDU                               = 0x1\n\tNL80211_TID_STATS_TX_MSDU                               = 0x2\n\tNL80211_TID_STATS_TX_MSDU_FAILED                        = 0x4\n\tNL80211_TID_STATS_TX_MSDU_RETRIES                       = 0x3\n\tNL80211_TID_STATS_TXQ_STATS                             = 0x6\n\tNL80211_TIMEOUT_ASSOC                                   = 0x3\n\tNL80211_TIMEOUT_AUTH                                    = 0x2\n\tNL80211_TIMEOUT_SCAN                                    = 0x1\n\tNL80211_TIMEOUT_UNSPECIFIED                             = 0x0\n\tNL80211_TKIP_DATA_OFFSET_ENCR_KEY                       = 0x0\n\tNL80211_TKIP_DATA_OFFSET_RX_MIC_KEY                     = 0x18\n\tNL80211_TKIP_DATA_OFFSET_TX_MIC_KEY                     = 0x10\n\tNL80211_TX_POWER_AUTOMATIC                              = 0x0\n\tNL80211_TX_POWER_FIXED                                  = 0x2\n\tNL80211_TX_POWER_LIMITED                                = 0x1\n\tNL80211_TXQ_ATTR_AC                                     = 0x1\n\tNL80211_TXQ_ATTR_AIFS                                   = 0x5\n\tNL80211_TXQ_ATTR_CWMAX                                  = 0x4\n\tNL80211_TXQ_ATTR_CWMIN                                  = 0x3\n\tNL80211_TXQ_ATTR_MAX                                    = 0x5\n\tNL80211_TXQ_ATTR_QUEUE                                  = 0x1\n\tNL80211_TXQ_ATTR_TXOP                                   = 0x2\n\tNL80211_TXQ_Q_BE                                        = 0x2\n\tNL80211_TXQ_Q_BK                                        = 0x3\n\tNL80211_TXQ_Q_VI                                        = 0x1\n\tNL80211_TXQ_Q_VO                                        = 0x0\n\tNL80211_TXQ_STATS_BACKLOG_BYTES                         = 0x1\n\tNL80211_TXQ_STATS_BACKLOG_PACKETS                       = 0x2\n\tNL80211_TXQ_STATS_COLLISIONS                            = 0x8\n\tNL80211_TXQ_STATS_DROPS                                 = 0x4\n\tNL80211_TXQ_STATS_ECN_MARKS                             = 0x5\n\tNL80211_TXQ_STATS_FLOWS                                 = 0x3\n\tNL80211_TXQ_STATS_MAX                                   = 0xb\n\tNL80211_TXQ_STATS_MAX_FLOWS                             = 0xb\n\tNL80211_TXQ_STATS_OVERLIMIT                             = 0x6\n\tNL80211_TXQ_STATS_OVERMEMORY                            = 0x7\n\tNL80211_TXQ_STATS_TX_BYTES                              = 0x9\n\tNL80211_TXQ_STATS_TX_PACKETS                            = 0xa\n\tNL80211_TX_RATE_AUTOMATIC                               = 0x0\n\tNL80211_TXRATE_DEFAULT_GI                               = 0x0\n\tNL80211_TX_RATE_FIXED                                   = 0x2\n\tNL80211_TXRATE_FORCE_LGI                                = 0x2\n\tNL80211_TXRATE_FORCE_SGI                                = 0x1\n\tNL80211_TXRATE_GI                                       = 0x4\n\tNL80211_TXRATE_HE                                       = 0x5\n\tNL80211_TXRATE_HE_GI                                    = 0x6\n\tNL80211_TXRATE_HE_LTF                                   = 0x7\n\tNL80211_TXRATE_HT                                       = 0x2\n\tNL80211_TXRATE_LEGACY                                   = 0x1\n\tNL80211_TX_RATE_LIMITED                                 = 0x1\n\tNL80211_TXRATE_MAX                                      = 0x7\n\tNL80211_TXRATE_MCS                                      = 0x2\n\tNL80211_TXRATE_VHT                                      = 0x3\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT                 = 0x1\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX                 = 0x2\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL                = 0x2\n\tNL80211_USER_REG_HINT_CELL_BASE                         = 0x1\n\tNL80211_USER_REG_HINT_INDOOR                            = 0x2\n\tNL80211_USER_REG_HINT_USER                              = 0x0\n\tNL80211_VENDOR_ID_IS_LINUX                              = 0x80000000\n\tNL80211_VHT_CAPABILITY_LEN                              = 0xc\n\tNL80211_VHT_NSS_MAX                                     = 0x8\n\tNL80211_WIPHY_NAME_MAXLEN                               = 0x40\n\tNL80211_WIPHY_RADIO_ATTR_FREQ_RANGE                     = 0x2\n\tNL80211_WIPHY_RADIO_ATTR_INDEX                          = 0x1\n\tNL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION          = 0x3\n\tNL80211_WIPHY_RADIO_ATTR_MAX                            = 0x4\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_END                       = 0x2\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_MAX                       = 0x2\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_START                     = 0x1\n\tNL80211_WMMR_AIFSN                                      = 0x3\n\tNL80211_WMMR_CW_MAX                                     = 0x2\n\tNL80211_WMMR_CW_MIN                                     = 0x1\n\tNL80211_WMMR_MAX                                        = 0x4\n\tNL80211_WMMR_TXOP                                       = 0x4\n\tNL80211_WOWLAN_PKTPAT_MASK                              = 0x1\n\tNL80211_WOWLAN_PKTPAT_OFFSET                            = 0x3\n\tNL80211_WOWLAN_PKTPAT_PATTERN                           = 0x2\n\tNL80211_WOWLAN_TCP_DATA_INTERVAL                        = 0x9\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD                         = 0x6\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ                     = 0x7\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN                   = 0x8\n\tNL80211_WOWLAN_TCP_DST_IPV4                             = 0x2\n\tNL80211_WOWLAN_TCP_DST_MAC                              = 0x3\n\tNL80211_WOWLAN_TCP_DST_PORT                             = 0x5\n\tNL80211_WOWLAN_TCP_SRC_IPV4                             = 0x1\n\tNL80211_WOWLAN_TCP_SRC_PORT                             = 0x4\n\tNL80211_WOWLAN_TCP_WAKE_MASK                            = 0xb\n\tNL80211_WOWLAN_TCP_WAKE_PAYLOAD                         = 0xa\n\tNL80211_WOWLAN_TRIG_4WAY_HANDSHAKE                      = 0x8\n\tNL80211_WOWLAN_TRIG_ANY                                 = 0x1\n\tNL80211_WOWLAN_TRIG_DISCONNECT                          = 0x2\n\tNL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST                   = 0x7\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE                   = 0x6\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED                 = 0x5\n\tNL80211_WOWLAN_TRIG_MAGIC_PKT                           = 0x3\n\tNL80211_WOWLAN_TRIG_NET_DETECT                          = 0x12\n\tNL80211_WOWLAN_TRIG_NET_DETECT_RESULTS                  = 0x13\n\tNL80211_WOWLAN_TRIG_PKT_PATTERN                         = 0x4\n\tNL80211_WOWLAN_TRIG_RFKILL_RELEASE                      = 0x9\n\tNL80211_WOWLAN_TRIG_TCP_CONNECTION                      = 0xe\n\tNL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC         = 0x14\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211                    = 0xa\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN                = 0xb\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023                     = 0xc\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN                 = 0xd\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST                 = 0x10\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH                    = 0xf\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS             = 0x11\n\tNL80211_WPA_VERSION_1                                   = 0x1\n\tNL80211_WPA_VERSION_2                                   = 0x2\n\tNL80211_WPA_VERSION_3                                   = 0x4\n)\n\nconst (\n\tFRA_UNSPEC             = 0x0\n\tFRA_DST                = 0x1\n\tFRA_SRC                = 0x2\n\tFRA_IIFNAME            = 0x3\n\tFRA_GOTO               = 0x4\n\tFRA_UNUSED2            = 0x5\n\tFRA_PRIORITY           = 0x6\n\tFRA_UNUSED3            = 0x7\n\tFRA_UNUSED4            = 0x8\n\tFRA_UNUSED5            = 0x9\n\tFRA_FWMARK             = 0xa\n\tFRA_FLOW               = 0xb\n\tFRA_TUN_ID             = 0xc\n\tFRA_SUPPRESS_IFGROUP   = 0xd\n\tFRA_SUPPRESS_PREFIXLEN = 0xe\n\tFRA_TABLE              = 0xf\n\tFRA_FWMASK             = 0x10\n\tFRA_OIFNAME            = 0x11\n\tFRA_PAD                = 0x12\n\tFRA_L3MDEV             = 0x13\n\tFRA_UID_RANGE          = 0x14\n\tFRA_PROTOCOL           = 0x15\n\tFRA_IP_PROTO           = 0x16\n\tFRA_SPORT_RANGE        = 0x17\n\tFRA_DPORT_RANGE        = 0x18\n\tFR_ACT_UNSPEC          = 0x0\n\tFR_ACT_TO_TBL          = 0x1\n\tFR_ACT_GOTO            = 0x2\n\tFR_ACT_NOP             = 0x3\n\tFR_ACT_RES3            = 0x4\n\tFR_ACT_RES4            = 0x5\n\tFR_ACT_BLACKHOLE       = 0x6\n\tFR_ACT_UNREACHABLE     = 0x7\n\tFR_ACT_PROHIBIT        = 0x8\n)\n\nconst (\n\tAUDIT_NLGRP_NONE    = 0x0\n\tAUDIT_NLGRP_READLOG = 0x1\n)\n\nconst (\n\tTUN_F_CSUM    = 0x1\n\tTUN_F_TSO4    = 0x2\n\tTUN_F_TSO6    = 0x4\n\tTUN_F_TSO_ECN = 0x8\n\tTUN_F_UFO     = 0x10\n\tTUN_F_USO4    = 0x20\n\tTUN_F_USO6    = 0x40\n)\n\nconst (\n\tVIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1\n\tVIRTIO_NET_HDR_F_DATA_VALID = 0x2\n\tVIRTIO_NET_HDR_F_RSC_INFO   = 0x4\n)\n\nconst (\n\tVIRTIO_NET_HDR_GSO_NONE   = 0x0\n\tVIRTIO_NET_HDR_GSO_TCPV4  = 0x1\n\tVIRTIO_NET_HDR_GSO_UDP    = 0x3\n\tVIRTIO_NET_HDR_GSO_TCPV6  = 0x4\n\tVIRTIO_NET_HDR_GSO_UDP_L4 = 0x5\n\tVIRTIO_NET_HDR_GSO_ECN    = 0x80\n)\n\ntype SchedAttr struct {\n\tSize     uint32\n\tPolicy   uint32\n\tFlags    uint64\n\tNice     int32\n\tPriority uint32\n\tRuntime  uint64\n\tDeadline uint64\n\tPeriod   uint64\n\tUtil_min uint32\n\tUtil_max uint32\n}\n\nconst SizeofSchedAttr = 0x38\n\ntype Cachestat_t struct {\n\tCache            uint64\n\tDirty            uint64\n\tWriteback        uint64\n\tEvicted          uint64\n\tRecently_evicted uint64\n}\ntype CachestatRange struct {\n\tOff uint64\n\tLen uint64\n}\n\nconst (\n\tSK_MEMINFO_RMEM_ALLOC          = 0x0\n\tSK_MEMINFO_RCVBUF              = 0x1\n\tSK_MEMINFO_WMEM_ALLOC          = 0x2\n\tSK_MEMINFO_SNDBUF              = 0x3\n\tSK_MEMINFO_FWD_ALLOC           = 0x4\n\tSK_MEMINFO_WMEM_QUEUED         = 0x5\n\tSK_MEMINFO_OPTMEM              = 0x6\n\tSK_MEMINFO_BACKLOG             = 0x7\n\tSK_MEMINFO_DROPS               = 0x8\n\tSK_MEMINFO_VARS                = 0x9\n\tSKNLGRP_NONE                   = 0x0\n\tSKNLGRP_INET_TCP_DESTROY       = 0x1\n\tSKNLGRP_INET_UDP_DESTROY       = 0x2\n\tSKNLGRP_INET6_TCP_DESTROY      = 0x3\n\tSKNLGRP_INET6_UDP_DESTROY      = 0x4\n\tSK_DIAG_BPF_STORAGE_REQ_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1\n\tSK_DIAG_BPF_STORAGE_REP_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE            = 0x1\n\tSK_DIAG_BPF_STORAGE_NONE       = 0x0\n\tSK_DIAG_BPF_STORAGE_PAD        = 0x1\n\tSK_DIAG_BPF_STORAGE_MAP_ID     = 0x2\n\tSK_DIAG_BPF_STORAGE_MAP_VALUE  = 0x3\n)\n\ntype SockDiagReq struct {\n\tFamily   uint8\n\tProtocol uint8\n}\n\nconst RTM_NEWNVLAN = 0x70\n\nconst (\n\tMPOL_BIND                = 0x2\n\tMPOL_DEFAULT             = 0x0\n\tMPOL_F_ADDR              = 0x2\n\tMPOL_F_MEMS_ALLOWED      = 0x4\n\tMPOL_F_MOF               = 0x8\n\tMPOL_F_MORON             = 0x10\n\tMPOL_F_NODE              = 0x1\n\tMPOL_F_NUMA_BALANCING    = 0x2000\n\tMPOL_F_RELATIVE_NODES    = 0x4000\n\tMPOL_F_SHARED            = 0x1\n\tMPOL_F_STATIC_NODES      = 0x8000\n\tMPOL_INTERLEAVE          = 0x3\n\tMPOL_LOCAL               = 0x4\n\tMPOL_MAX                 = 0x7\n\tMPOL_MF_INTERNAL         = 0x10\n\tMPOL_MF_LAZY             = 0x8\n\tMPOL_MF_MOVE_ALL         = 0x4\n\tMPOL_MF_MOVE             = 0x2\n\tMPOL_MF_STRICT           = 0x1\n\tMPOL_MF_VALID            = 0x7\n\tMPOL_MODE_FLAGS          = 0xe000\n\tMPOL_PREFERRED           = 0x1\n\tMPOL_PREFERRED_MANY      = 0x5\n\tMPOL_WEIGHTED_INTERLEAVE = 0x6\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_386.go",
    "content": "// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [1]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [6]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go",
    "content": "// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm.go",
    "content": "// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [6]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tUregs [18]uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [6]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go",
    "content": "// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go",
    "content": "// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tOrig_a0  uint64\n\tEra      uint64\n\tBadv     uint64\n\tReserved [10]uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips.go",
    "content": "// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [6]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go",
    "content": "// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [6]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [6]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint32\n\t_       uint32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint32\n\tNip       uint32\n\tMsr       uint32\n\tOrig_gpr3 uint32\n\tCtr       uint32\n\tLink      uint32\n\tXer       uint32\n\tCcr       uint32\n\tMq        uint32\n\tTrap      uint32\n\tDar       uint32\n\tDsisr     uint32\n\tResult    uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [6]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tAtime_high uint32\n\tAtime      uint32\n\tDtime_high uint32\n\tDtime      uint32\n\tCtime_high uint32\n\tCtime      uint32\n\t_          uint32\n\tSegsz      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n\t_          [4]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go",
    "content": "// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPc  uint64\n\tRa  uint64\n\tSp  uint64\n\tGp  uint64\n\tTp  uint64\n\tT0  uint64\n\tT1  uint64\n\tT2  uint64\n\tS0  uint64\n\tS1  uint64\n\tA0  uint64\n\tA1  uint64\n\tA2  uint64\n\tA3  uint64\n\tA4  uint64\n\tA5  uint64\n\tA6  uint64\n\tA7  uint64\n\tS2  uint64\n\tS3  uint64\n\tS4  uint64\n\tS5  uint64\n\tS6  uint64\n\tS7  uint64\n\tS8  uint64\n\tS9  uint64\n\tS10 uint64\n\tS11 uint64\n\tT3  uint64\n\tT4  uint64\n\tT5  uint64\n\tT6  uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n\ntype RISCVHWProbePairs struct {\n\tKey   int64\n\tValue uint64\n}\n\nconst (\n\tRISCV_HWPROBE_KEY_MVENDORID          = 0x0\n\tRISCV_HWPROBE_KEY_MARCHID            = 0x1\n\tRISCV_HWPROBE_KEY_MIMPID             = 0x2\n\tRISCV_HWPROBE_KEY_BASE_BEHAVIOR      = 0x3\n\tRISCV_HWPROBE_BASE_BEHAVIOR_IMA      = 0x1\n\tRISCV_HWPROBE_KEY_IMA_EXT_0          = 0x4\n\tRISCV_HWPROBE_IMA_FD                 = 0x1\n\tRISCV_HWPROBE_IMA_C                  = 0x2\n\tRISCV_HWPROBE_IMA_V                  = 0x4\n\tRISCV_HWPROBE_EXT_ZBA                = 0x8\n\tRISCV_HWPROBE_EXT_ZBB                = 0x10\n\tRISCV_HWPROBE_EXT_ZBS                = 0x20\n\tRISCV_HWPROBE_EXT_ZICBOZ             = 0x40\n\tRISCV_HWPROBE_EXT_ZBC                = 0x80\n\tRISCV_HWPROBE_EXT_ZBKB               = 0x100\n\tRISCV_HWPROBE_EXT_ZBKC               = 0x200\n\tRISCV_HWPROBE_EXT_ZBKX               = 0x400\n\tRISCV_HWPROBE_EXT_ZKND               = 0x800\n\tRISCV_HWPROBE_EXT_ZKNE               = 0x1000\n\tRISCV_HWPROBE_EXT_ZKNH               = 0x2000\n\tRISCV_HWPROBE_EXT_ZKSED              = 0x4000\n\tRISCV_HWPROBE_EXT_ZKSH               = 0x8000\n\tRISCV_HWPROBE_EXT_ZKT                = 0x10000\n\tRISCV_HWPROBE_EXT_ZVBB               = 0x20000\n\tRISCV_HWPROBE_EXT_ZVBC               = 0x40000\n\tRISCV_HWPROBE_EXT_ZVKB               = 0x80000\n\tRISCV_HWPROBE_EXT_ZVKG               = 0x100000\n\tRISCV_HWPROBE_EXT_ZVKNED             = 0x200000\n\tRISCV_HWPROBE_EXT_ZVKNHA             = 0x400000\n\tRISCV_HWPROBE_EXT_ZVKNHB             = 0x800000\n\tRISCV_HWPROBE_EXT_ZVKSED             = 0x1000000\n\tRISCV_HWPROBE_EXT_ZVKSH              = 0x2000000\n\tRISCV_HWPROBE_EXT_ZVKT               = 0x4000000\n\tRISCV_HWPROBE_EXT_ZFH                = 0x8000000\n\tRISCV_HWPROBE_EXT_ZFHMIN             = 0x10000000\n\tRISCV_HWPROBE_EXT_ZIHINTNTL          = 0x20000000\n\tRISCV_HWPROBE_EXT_ZVFH               = 0x40000000\n\tRISCV_HWPROBE_EXT_ZVFHMIN            = 0x80000000\n\tRISCV_HWPROBE_EXT_ZFA                = 0x100000000\n\tRISCV_HWPROBE_EXT_ZTSO               = 0x200000000\n\tRISCV_HWPROBE_EXT_ZACAS              = 0x400000000\n\tRISCV_HWPROBE_EXT_ZICOND             = 0x800000000\n\tRISCV_HWPROBE_EXT_ZIHINTPAUSE        = 0x1000000000\n\tRISCV_HWPROBE_KEY_CPUPERF_0          = 0x5\n\tRISCV_HWPROBE_MISALIGNED_UNKNOWN     = 0x0\n\tRISCV_HWPROBE_MISALIGNED_EMULATED    = 0x1\n\tRISCV_HWPROBE_MISALIGNED_SLOW        = 0x2\n\tRISCV_HWPROBE_MISALIGNED_FAST        = 0x3\n\tRISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4\n\tRISCV_HWPROBE_MISALIGNED_MASK        = 0x7\n\tRISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6\n\tRISCV_HWPROBE_WHICH_CPUS             = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go",
    "content": "// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x6\n\tFADV_NOREUSE  = 0x7\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPsw                      PtracePsw\n\tGprs                     [16]uint64\n\tAcrs                     [16]uint32\n\tOrig_gpr2                uint64\n\tFp_regs                  PtraceFpregs\n\tPer_info                 PtracePer\n\tIeee_instruction_pointer uint64\n}\n\ntype PtracePsw struct {\n\tMask uint64\n\tAddr uint64\n}\n\ntype PtraceFpregs struct {\n\tFpc  uint32\n\tFprs [16]float64\n}\n\ntype PtracePer struct {\n\tControl_regs  [3]uint64\n\t_             [8]byte\n\tStarting_addr uint64\n\tEnding_addr   uint64\n\tPerc_atmid    uint16\n\tAddress       uint64\n\tAccess_id     uint8\n\t_             [7]byte\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint32\n\tBsize   uint32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen uint32\n\tFrsize  uint32\n\tFlags   uint32\n\tSpare   [4]uint32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint64\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go",
    "content": "// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      int16\n\t_      [2]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [16]uint64\n\tTstate uint64\n\tTpc    uint64\n\tTnpc   uint64\n\tY      uint32\n\tMagic  uint32\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x400000\n)\n\nconst (\n\tPOLLRDHUP = 0x800\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x4\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x4000\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter uint32\n\tFlags  uint32\n\tFflags uint32\n\tData   int64\n\tUdata  int32\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x84\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n\tPad_cgo_1 [4]byte\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec       int64\n\tNsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint64\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint32\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tData      int64\n\tUdata     int32\n\tPad_cgo_0 [4]byte\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa0\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go",
    "content": "// cgo -godefs types_solaris.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x400\n\tMaxHostNameLen = 0x100\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tBlocks  int64\n\tFstype  [16]int8\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tSysid  int32\n\tPid    int32\n\tPad    [4]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tName   [1]int8\n\t_      [5]byte\n}\n\ntype _Fsblkcnt_t uint64\n\ntype Statvfs_t struct {\n\tBsize    uint64\n\tFrsize   uint64\n\tBlocks   uint64\n\tBfree    uint64\n\tBavail   uint64\n\tFiles    uint64\n\tFfree    uint64\n\tFavail   uint64\n\tFsid     uint64\n\tBasetype [16]int8\n\tFlag     uint64\n\tNamemax  uint64\n\tFstr     [32]int8\n}\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\t_        uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [236]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName         *byte\n\tNamelen      uint32\n\tIov          *Iovec\n\tIovlen       int32\n\tAccrights    *int8\n\tAccrightslen int32\n\t_            [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x20\n\tSizeofSockaddrAny      = 0xfc\n\tSizeofSockaddrUnix     = 0x6e\n\tSizeofSockaddrDatalink = 0xfc\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x24\n\tSizeofICMPv6Filter     = 0x20\n)\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [257]byte\n\tNodename [257]byte\n\tRelease  [257]byte\n\tVersion  [257]byte\n\tMachine  [257]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int64\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\nconst (\n\tAT_FDCWD            = 0xffd19553\n\tAT_SYMLINK_NOFOLLOW = 0x1000\n\tAT_SYMLINK_FOLLOW   = 0x2000\n\tAT_REMOVEDIR        = 0x1\n\tAT_EACCESS          = 0x4\n)\n\nconst (\n\tSizeofIfMsghdr  = 0x54\n\tSizeofIfData    = 0x44\n\tSizeofIfaMsghdr = 0x14\n\tSizeofRtMsghdr  = 0x4c\n\tSizeofRtMetrics = 0x28\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint64\n\tDrop uint64\n\tCapt uint64\n\t_    [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [19]uint8\n\t_     [1]byte\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  int8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype fileObj struct {\n\tAtim Timespec\n\tMtim Timespec\n\tCtim Timespec\n\tPad  [3]uint64\n\tName *int8\n}\n\ntype portEvent struct {\n\tEvents int32\n\tSource uint16\n\tPad    uint16\n\tObject uint64\n\tUser   *byte\n}\n\nconst (\n\tPORT_SOURCE_AIO    = 0x1\n\tPORT_SOURCE_TIMER  = 0x2\n\tPORT_SOURCE_USER   = 0x3\n\tPORT_SOURCE_FD     = 0x4\n\tPORT_SOURCE_ALERT  = 0x5\n\tPORT_SOURCE_MQ     = 0x6\n\tPORT_SOURCE_FILE   = 0x7\n\tPORT_ALERT_SET     = 0x1\n\tPORT_ALERT_UPDATE  = 0x2\n\tPORT_ALERT_INVALID = 0x3\n\tFILE_ACCESS        = 0x1\n\tFILE_MODIFIED      = 0x2\n\tFILE_ATTRIB        = 0x4\n\tFILE_TRUNC         = 0x100000\n\tFILE_NOFOLLOW      = 0x10000000\n\tFILE_DELETE        = 0x10\n\tFILE_RENAME_TO     = 0x20\n\tFILE_RENAME_FROM   = 0x40\n\tUNMOUNTED          = 0x20000000\n\tMOUNTEDOVER        = 0x40000000\n\tFILE_EXCEPTION     = 0x60000070\n)\n\nconst (\n\tTUNNEWPPA = 0x540001\n\tTUNSETPPA = 0x540002\n\n\tI_STR     = 0x5308\n\tI_POP     = 0x5303\n\tI_PUSH    = 0x5302\n\tI_LINK    = 0x530c\n\tI_UNLINK  = 0x530d\n\tI_PLINK   = 0x5316\n\tI_PUNLINK = 0x5317\n\n\tIF_UNITSEL = -0x7ffb8cca\n)\n\ntype strbuf struct {\n\tMaxlen int32\n\tLen    int32\n\tBuf    *int8\n}\n\ntype Strioctl struct {\n\tCmd    int32\n\tTimout int32\n\tLen    int32\n\tDp     *int8\n}\n\ntype Lifreq struct {\n\tName   [32]int8\n\tLifru1 [4]byte\n\tType   uint32\n\tLifru  [336]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on ztypes_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\nconst (\n\tSizeofSockaddrAny   = 128\n\tSizeofCmsghdr       = 12\n\tSizeofIPMreq        = 8\n\tSizeofIPv6Mreq      = 20\n\tSizeofICMPv6Filter  = 32\n\tSizeofIPv6MTUInfo   = 32\n\tSizeofInet4Pktinfo  = 8\n\tSizeofInet6Pktinfo  = 20\n\tSizeofLinger        = 8\n\tSizeofSockaddrInet4 = 16\n\tSizeofSockaddrInet6 = 28\n\tSizeofTCPInfo       = 0x68\n\tSizeofUcred         = 12\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype timeval_zos struct { //correct (with padding and all)\n\tSec  int64\n\t_    [4]byte // pad\n\tUsec int32\n}\n\ntype Tms struct { //clock_t is 4-byte unsigned int in zos\n\tUtime  uint32\n\tStime  uint32\n\tCutime uint32\n\tCstime uint32\n}\n\ntype Time_t int64\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Utsname struct {\n\tSysname  [16]byte\n\tNodename [32]byte\n\tRelease  [8]byte\n\tVersion  [8]byte\n\tMachine  [16]byte\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [108]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\t_    [112]uint8 // pad\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tIov        *Iovec\n\tControl    *byte\n\tFlags      int32\n\tNamelen    int32\n\tIovlen     int32\n\tControllen int32\n}\n\ntype Cmsghdr struct {\n\tLen   int32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tAddr    [4]byte /* in_addr */\n\tIfindex uint32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype _Gid_t uint32\n\ntype rusage_zos struct {\n\tUtime timeval_zos\n\tStime timeval_zos\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\n// { int, short, short } in poll.h\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\ntype Stat_t struct { //Linux Definition\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Stat_LE_t struct {\n\t_            [4]byte // eye catcher\n\tLength       uint16\n\tVersion      uint16\n\tMode         int32\n\tIno          uint32\n\tDev          uint32\n\tNlink        int32\n\tUid          int32\n\tGid          int32\n\tSize         int64\n\tAtim31       [4]byte\n\tMtim31       [4]byte\n\tCtim31       [4]byte\n\tRdev         uint32\n\tAuditoraudit uint32\n\tUseraudit    uint32\n\tBlksize      int32\n\tCreatim31    [4]byte\n\tAuditID      [16]byte\n\t_            [4]byte // rsrvd1\n\tFile_tag     struct {\n\t\tCcsid   uint16\n\t\tTxtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14\n\t}\n\tCharsetID [8]byte\n\tBlocks    int64\n\tGenvalue  uint32\n\tReftim31  [4]byte\n\tFid       [8]byte\n\tFilefmt   byte\n\tFspflag2  byte\n\t_         [2]byte // rsrvd2\n\tCtimemsec int32\n\tSeclabel  [8]byte\n\t_         [4]byte // rsrvd3\n\t_         [4]byte // rsrvd4\n\tAtim      Time_t\n\tMtim      Time_t\n\tCtim      Time_t\n\tCreatim   Time_t\n\tReftim    Time_t\n\t_         [24]byte // rsrvd5\n}\n\ntype Statvfs_t struct {\n\tID          [4]byte\n\tLen         int32\n\tBsize       uint64\n\tBlocks      uint64\n\tUsedspace   uint64\n\tBavail      uint64\n\tFlag        uint64\n\tMaxfilesize int64\n\t_           [16]byte\n\tFrsize      uint64\n\tBfree       uint64\n\tFiles       uint32\n\tFfree       uint32\n\tFavail      uint32\n\tNamemax31   uint32\n\tInvarsec    uint32\n\t_           [4]byte\n\tFsid        uint64\n\tNamemax     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint64\n\tBsize   uint64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint32\n\tFfree   uint32\n\tFsid    uint64\n\tNamelen uint64\n\tFrsize  uint64\n\tFlags   uint64\n\t_       [4]uint64\n}\n\ntype direntLE struct {\n\tReclen uint16\n\tNamlen uint16\n\tIno    uint32\n\tExtra  uintptr\n\tName   [256]byte\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype FdSet struct {\n\tBits [64]int32\n}\n\n// This struct is packed on z/OS so it can't be used directly.\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype F_cnvrt struct {\n\tCvtcmd int32\n\tPccsid int16\n\tFccsid int16\n}\n\ntype Termios struct {\n\tCflag uint32\n\tIflag uint32\n\tLflag uint32\n\tOflag uint32\n\tCc    [11]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype W_Mnth struct {\n\tHid   [4]byte\n\tSize  int32\n\tCur1  int32 //32bit pointer\n\tCur2  int32 //^\n\tDevno uint32\n\t_     [4]byte\n}\n\ntype W_Mntent struct {\n\tFstype       uint32\n\tMode         uint32\n\tDev          uint32\n\tParentdev    uint32\n\tRootino      uint32\n\tStatus       byte\n\tDdname       [9]byte\n\tFstname      [9]byte\n\tFsname       [45]byte\n\tPathlen      uint32\n\tMountpoint   [1024]byte\n\tJobname      [8]byte\n\tPID          int32\n\tParmoffset   int32\n\tParmlen      int16\n\tOwner        [8]byte\n\tQuiesceowner [8]byte\n\t_            [38]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n\tName   string\n}\n\nconst (\n\tSizeofInotifyEvent = 0x10\n)\n\ntype ConsMsg2 struct {\n\tCm2Format       uint16\n\tCm2R1           uint16\n\tCm2Msglength    uint32\n\tCm2Msg          *byte\n\tCm2R2           [4]byte\n\tCm2R3           [4]byte\n\tCm2Routcde      *uint32\n\tCm2Descr        *uint32\n\tCm2Msgflag      uint32\n\tCm2Token        uint32\n\tCm2Msgid        *uint32\n\tCm2R4           [4]byte\n\tCm2DomToken     uint32\n\tCm2DomMsgid     *uint32\n\tCm2ModCartptr   *byte\n\tCm2ModConsidptr *byte\n\tCm2MsgCart      [8]byte\n\tCm2MsgConsid    [4]byte\n\tCm2R5           [12]byte\n}\n\nconst (\n\tCC_modify        = 1\n\tCC_stop          = 2\n\tCONSOLE_FORMAT_2 = 2\n\tCONSOLE_FORMAT_3 = 3\n\tCONSOLE_HRDCPY   = 0x80000000\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_CACHED        = 0x20\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\tPid   int32\n\tUid   uint32\n\t_     [44]byte\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode int32\n}\n\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      uint8\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  Time_t\n\tDtime  Time_t\n\tCtime  Time_t\n}\n\ntype SysvShmDesc64 struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      byte\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nimport \"syscall\"\n\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/dll_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// We need to use LoadLibrary and GetProcAddress from the Go runtime, because\n// the these symbols are loaded by the system linker and are required to\n// dynamically load additional symbols. Note that in the Go runtime, these\n// return syscall.Handle and syscall.Errno, but these are the same, in fact,\n// as windows.Handle and windows.Errno, and we intend to keep these the same.\n\n//go:linkname syscall_loadlibrary syscall.loadlibrary\nfunc syscall_loadlibrary(filename *uint16) (handle Handle, err Errno)\n\n//go:linkname syscall_getprocaddress syscall.getprocaddress\nfunc syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno)\n\n// DLLError describes reasons for DLL load failures.\ntype DLLError struct {\n\tErr     error\n\tObjName string\n\tMsg     string\n}\n\nfunc (e *DLLError) Error() string { return e.Msg }\n\nfunc (e *DLLError) Unwrap() error { return e.Err }\n\n// A DLL implements access to a single DLL.\ntype DLL struct {\n\tName   string\n\tHandle Handle\n}\n\n// LoadDLL loads DLL file into memory.\n//\n// Warning: using LoadDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL],\n// or use [LoadLibraryEx] directly.\nfunc LoadDLL(name string) (dll *DLL, err error) {\n\tnamep, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\th, e := syscall_loadlibrary(namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to load \" + name + \": \" + e.Error(),\n\t\t}\n\t}\n\td := &DLL{\n\t\tName:   name,\n\t\tHandle: h,\n\t}\n\treturn d, nil\n}\n\n// MustLoadDLL is like LoadDLL but panics if load operation fails.\nfunc MustLoadDLL(name string) *DLL {\n\td, e := LoadDLL(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn d\n}\n\n// FindProc searches DLL d for procedure named name and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProc(name string) (proc *Proc, err error) {\n\tnamep, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ta, e := syscall_getprocaddress(d.Handle, namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProc is like FindProc but panics if search fails.\nfunc (d *DLL) MustFindProc(name string) *Proc {\n\tp, e := d.FindProc(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) {\n\ta, e := GetProcAddressByOrdinal(d.Handle, ordinal)\n\tname := \"#\" + itoa(int(ordinal))\n\tif e != nil {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails.\nfunc (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc {\n\tp, e := d.FindProcByOrdinal(ordinal)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// Release unloads DLL d from memory.\nfunc (d *DLL) Release() (err error) {\n\treturn FreeLibrary(d.Handle)\n}\n\n// A Proc implements access to a procedure inside a DLL.\ntype Proc struct {\n\tDll  *DLL\n\tName string\n\taddr uintptr\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\nfunc (p *Proc) Addr() uintptr {\n\treturn p.addr\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tswitch len(a) {\n\tcase 0:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0)\n\tcase 1:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0)\n\tcase 2:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0)\n\tcase 3:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2])\n\tcase 4:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0)\n\tcase 5:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0)\n\tcase 6:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5])\n\tcase 7:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0)\n\tcase 8:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0)\n\tcase 9:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n\tcase 10:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0)\n\tcase 11:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0)\n\tcase 12:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11])\n\tcase 13:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0)\n\tcase 14:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0)\n\tcase 15:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14])\n\tdefault:\n\t\tpanic(\"Call \" + p.Name + \" with too many arguments \" + itoa(len(a)) + \".\")\n\t}\n}\n\n// A LazyDLL implements access to a single DLL.\n// It will delay the load of the DLL until the first\n// call to its Handle method or to one of its\n// LazyProc's Addr method.\ntype LazyDLL struct {\n\tName string\n\n\t// System determines whether the DLL must be loaded from the\n\t// Windows System directory, bypassing the normal DLL search\n\t// path.\n\tSystem bool\n\n\tmu  sync.Mutex\n\tdll *DLL // non nil once DLL is loaded\n}\n\n// Load loads DLL file d.Name into memory. It returns an error if fails.\n// Load will not try to load DLL, if it is already loaded into memory.\nfunc (d *LazyDLL) Load() error {\n\t// Non-racy version of:\n\t// if d.dll != nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil {\n\t\treturn nil\n\t}\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.dll != nil {\n\t\treturn nil\n\t}\n\n\t// kernel32.dll is special, since it's where LoadLibraryEx comes from.\n\t// The kernel already special-cases its name, so it's always\n\t// loaded from system32.\n\tvar dll *DLL\n\tvar err error\n\tif d.Name == \"kernel32.dll\" {\n\t\tdll, err = LoadDLL(d.Name)\n\t} else {\n\t\tdll, err = loadLibraryEx(d.Name, d.System)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Non-racy version of:\n\t// d.dll = dll\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll))\n\treturn nil\n}\n\n// mustLoad is like Load but panics if search fails.\nfunc (d *LazyDLL) mustLoad() {\n\te := d.Load()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Handle returns d's module handle.\nfunc (d *LazyDLL) Handle() uintptr {\n\td.mustLoad()\n\treturn uintptr(d.dll.Handle)\n}\n\n// NewProc returns a LazyProc for accessing the named procedure in the DLL d.\nfunc (d *LazyDLL) NewProc(name string) *LazyProc {\n\treturn &LazyProc{l: d, Name: name}\n}\n\n// NewLazyDLL creates new LazyDLL associated with DLL file.\n//\n// Warning: using NewLazyDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL].\nfunc NewLazyDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name}\n}\n\n// NewLazySystemDLL is like NewLazyDLL, but will only\n// search Windows System directory for the DLL if name is\n// a base name (like \"advapi32.dll\").\nfunc NewLazySystemDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name, System: true}\n}\n\n// A LazyProc implements access to a procedure inside a LazyDLL.\n// It delays the lookup until the Addr method is called.\ntype LazyProc struct {\n\tName string\n\n\tmu   sync.Mutex\n\tl    *LazyDLL\n\tproc *Proc\n}\n\n// Find searches DLL for procedure named p.Name. It returns\n// an error if search fails. Find will not search procedure,\n// if it is already found and loaded into memory.\nfunc (p *LazyProc) Find() error {\n\t// Non-racy version of:\n\t// if p.proc == nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil {\n\t\tp.mu.Lock()\n\t\tdefer p.mu.Unlock()\n\t\tif p.proc == nil {\n\t\t\te := p.l.Load()\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\tproc, e := p.l.dll.FindProc(p.Name)\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\t// Non-racy version of:\n\t\t\t// p.proc = proc\n\t\t\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc))\n\t\t}\n\t}\n\treturn nil\n}\n\n// mustFind is like Find but panics if search fails.\nfunc (p *LazyProc) mustFind() {\n\te := p.Find()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\n// It will panic if the procedure cannot be found.\nfunc (p *LazyProc) Addr() uintptr {\n\tp.mustFind()\n\treturn p.proc.Addr()\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied. It will also panic if the procedure cannot be found.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tp.mustFind()\n\treturn p.proc.Call(a...)\n}\n\nvar canDoSearchSystem32Once struct {\n\tsync.Once\n\tv bool\n}\n\nfunc initCanDoSearchSystem32() {\n\t// https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says:\n\t// \"Windows 7, Windows Server 2008 R2, Windows Vista, and Windows\n\t// Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on\n\t// systems that have KB2533623 installed. To determine whether the\n\t// flags are available, use GetProcAddress to get the address of the\n\t// AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories\n\t// function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_*\n\t// flags can be used with LoadLibraryEx.\"\n\tcanDoSearchSystem32Once.v = (modkernel32.NewProc(\"AddDllDirectory\").Find() == nil)\n}\n\nfunc canDoSearchSystem32() bool {\n\tcanDoSearchSystem32Once.Do(initCanDoSearchSystem32)\n\treturn canDoSearchSystem32Once.v\n}\n\nfunc isBaseName(name string) bool {\n\tfor _, c := range name {\n\t\tif c == ':' || c == '/' || c == '\\\\' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// loadLibraryEx wraps the Windows LoadLibraryEx function.\n//\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx\n//\n// If name is not an absolute path, LoadLibraryEx searches for the DLL\n// in a variety of automatic locations unless constrained by flags.\n// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx\nfunc loadLibraryEx(name string, system bool) (*DLL, error) {\n\tloadDLL := name\n\tvar flags uintptr\n\tif system {\n\t\tif canDoSearchSystem32() {\n\t\t\tflags = LOAD_LIBRARY_SEARCH_SYSTEM32\n\t\t} else if isBaseName(name) {\n\t\t\t// WindowsXP or unpatched Windows machine\n\t\t\t// trying to load \"foo.dll\" out of the system\n\t\t\t// folder, but LoadLibraryEx doesn't support\n\t\t\t// that yet on their system, so emulate it.\n\t\t\tsystemdir, err := GetSystemDirectory()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tloadDLL = systemdir + \"\\\\\" + name\n\t\t}\n\t}\n\th, err := LoadLibraryEx(loadDLL, 0, flags)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DLL{Name: name, Handle: h}, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/env_windows.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows environment variables.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\n// Returns a default environment associated with the token, rather than the current\n// process. If inheritExisting is true, then this environment also inherits the\n// environment of the current process.\nfunc (token Token) Environ(inheritExisting bool) (env []string, err error) {\n\tvar block *uint16\n\terr = CreateEnvironmentBlock(&block, token, inheritExisting)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer DestroyEnvironmentBlock(block)\n\tsize := unsafe.Sizeof(*block)\n\tfor *block != 0 {\n\t\t// find NUL terminator\n\t\tend := unsafe.Pointer(block)\n\t\tfor *(*uint16)(end) != 0 {\n\t\t\tend = unsafe.Add(end, size)\n\t\t}\n\n\t\tentry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size)\n\t\tenv = append(env, UTF16ToString(entry))\n\t\tblock = (*uint16)(unsafe.Add(end, size))\n\t}\n\treturn env, nil\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/eventlog.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tEVENTLOG_SUCCESS          = 0\n\tEVENTLOG_ERROR_TYPE       = 1\n\tEVENTLOG_WARNING_TYPE     = 2\n\tEVENTLOG_INFORMATION_TYPE = 4\n\tEVENTLOG_AUDIT_SUCCESS    = 8\n\tEVENTLOG_AUDIT_FAILURE    = 16\n)\n\n//sys\tRegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW\n//sys\tDeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource\n//sys\tReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/exec_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Fork, exec, wait, etc.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"unsafe\"\n)\n\n// EscapeArg rewrites command line argument s as prescribed\n// in http://msdn.microsoft.com/en-us/library/ms880421.\n// This function returns \"\" (2 double quotes) if s is empty.\n// Alternatively, these transformations are done:\n//   - every back slash (\\) is doubled, but only if immediately\n//     followed by double quote (\");\n//   - every double quote (\") is escaped by back slash (\\);\n//   - finally, s is wrapped with double quotes (arg -> \"arg\"),\n//     but only if there is space or tab inside s.\nfunc EscapeArg(s string) string {\n\tif len(s) == 0 {\n\t\treturn `\"\"`\n\t}\n\tn := len(s)\n\thasSpace := false\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\"', '\\\\':\n\t\t\tn++\n\t\tcase ' ', '\\t':\n\t\t\thasSpace = true\n\t\t}\n\t}\n\tif hasSpace {\n\t\tn += 2 // Reserve space for quotes.\n\t}\n\tif n == len(s) {\n\t\treturn s\n\t}\n\n\tqs := make([]byte, n)\n\tj := 0\n\tif hasSpace {\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\tslashes := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tdefault:\n\t\t\tslashes = 0\n\t\t\tqs[j] = s[i]\n\t\tcase '\\\\':\n\t\t\tslashes++\n\t\t\tqs[j] = s[i]\n\t\tcase '\"':\n\t\t\tfor ; slashes > 0; slashes-- {\n\t\t\t\tqs[j] = '\\\\'\n\t\t\t\tj++\n\t\t\t}\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t\tqs[j] = s[i]\n\t\t}\n\t\tj++\n\t}\n\tif hasSpace {\n\t\tfor ; slashes > 0; slashes-- {\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t}\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\treturn string(qs[:j])\n}\n\n// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line,\n// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument,\n// or any program that uses CommandLineToArgv.\nfunc ComposeCommandLine(args []string) string {\n\tif len(args) == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw:\n\t// “This function accepts command lines that contain a program name; the\n\t// program name can be enclosed in quotation marks or not.”\n\t//\n\t// Unfortunately, it provides no means of escaping interior quotation marks\n\t// within that program name, and we have no way to report them here.\n\tprog := args[0]\n\tmustQuote := len(prog) == 0\n\tfor i := 0; i < len(prog); i++ {\n\t\tc := prog[i]\n\t\tif c <= ' ' || (c == '\"' && i == 0) {\n\t\t\t// Force quotes for not only the ASCII space and tab as described in the\n\t\t\t// MSDN article, but also ASCII control characters.\n\t\t\t// The documentation for CommandLineToArgvW doesn't say what happens when\n\t\t\t// the first argument is not a valid program name, but it empirically\n\t\t\t// seems to drop unquoted control characters.\n\t\t\tmustQuote = true\n\t\t\tbreak\n\t\t}\n\t}\n\tvar commandLine []byte\n\tif mustQuote {\n\t\tcommandLine = make([]byte, 0, len(prog)+2)\n\t\tcommandLine = append(commandLine, '\"')\n\t\tfor i := 0; i < len(prog); i++ {\n\t\t\tc := prog[i]\n\t\t\tif c == '\"' {\n\t\t\t\t// This quote would interfere with our surrounding quotes.\n\t\t\t\t// We have no way to report an error, so just strip out\n\t\t\t\t// the offending character instead.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcommandLine = append(commandLine, c)\n\t\t}\n\t\tcommandLine = append(commandLine, '\"')\n\t} else {\n\t\tif len(args) == 1 {\n\t\t\t// args[0] is a valid command line representing itself.\n\t\t\t// No need to allocate a new slice or string for it.\n\t\t\treturn prog\n\t\t}\n\t\tcommandLine = []byte(prog)\n\t}\n\n\tfor _, arg := range args[1:] {\n\t\tcommandLine = append(commandLine, ' ')\n\t\t// TODO(bcmills): since we're already appending to a slice, it would be nice\n\t\t// to avoid the intermediate allocations of EscapeArg.\n\t\t// Perhaps we can factor out an appendEscapedArg function.\n\t\tcommandLine = append(commandLine, EscapeArg(arg)...)\n\t}\n\treturn string(commandLine)\n}\n\n// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv,\n// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that\n// command lines are passed around.\n// DecomposeCommandLine returns an error if commandLine contains NUL.\nfunc DecomposeCommandLine(commandLine string) ([]string, error) {\n\tif len(commandLine) == 0 {\n\t\treturn []string{}, nil\n\t}\n\tutf16CommandLine, err := UTF16FromString(commandLine)\n\tif err != nil {\n\t\treturn nil, errorspkg.New(\"string with NUL passed to DecomposeCommandLine\")\n\t}\n\tvar argc int32\n\targv, err := commandLineToArgv(&utf16CommandLine[0], &argc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(argv)))\n\n\tvar args []string\n\tfor _, p := range unsafe.Slice(argv, argc) {\n\t\targs = append(args, UTF16PtrToString(p))\n\t}\n\treturn args, nil\n}\n\n// CommandLineToArgv parses a Unicode command line string and sets\n// argc to the number of parsed arguments.\n//\n// The returned memory should be freed using a single call to LocalFree.\n//\n// Note that although the return type of CommandLineToArgv indicates 8192\n// entries of up to 8192 characters each, the actual count of parsed arguments\n// may exceed 8192, and the documentation for CommandLineToArgvW does not mention\n// any bound on the lengths of the individual argument strings.\n// (See https://go.dev/issue/63236.)\nfunc CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) {\n\targp, err := commandLineToArgv(cmd, argc)\n\targv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp))\n\treturn argv, err\n}\n\nfunc CloseOnExec(fd Handle) {\n\tSetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0)\n}\n\n// FullPath retrieves the full path of the specified file.\nfunc FullPath(name string) (path string, err error) {\n\tp, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := uint32(100)\n\tfor {\n\t\tbuf := make([]uint16, n)\n\t\tn, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif n <= uint32(len(buf)) {\n\t\t\treturn UTF16ToString(buf[:n]), nil\n\t\t}\n\t}\n}\n\n// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes.\nfunc NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) {\n\tvar size uintptr\n\terr := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size)\n\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\tif err == nil {\n\t\t\treturn nil, errorspkg.New(\"unable to query buffer size from InitializeProcThreadAttributeList\")\n\t\t}\n\t\treturn nil, err\n\t}\n\talloc, err := LocalAlloc(LMEM_FIXED, uint32(size))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// size is guaranteed to be ≥1 by InitializeProcThreadAttributeList.\n\tal := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))}\n\terr = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn al, err\n}\n\n// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute.\nfunc (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error {\n\tal.pointers = append(al.pointers, value)\n\treturn updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil)\n}\n\n// Delete frees ProcThreadAttributeList's resources.\nfunc (al *ProcThreadAttributeListContainer) Delete() {\n\tdeleteProcThreadAttributeList(al.data)\n\tLocalFree(Handle(unsafe.Pointer(al.data)))\n\tal.data = nil\n\tal.pointers = nil\n}\n\n// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx.\nfunc (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList {\n\treturn al.data\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/memory_windows.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nconst (\n\tMEM_COMMIT      = 0x00001000\n\tMEM_RESERVE     = 0x00002000\n\tMEM_DECOMMIT    = 0x00004000\n\tMEM_RELEASE     = 0x00008000\n\tMEM_RESET       = 0x00080000\n\tMEM_TOP_DOWN    = 0x00100000\n\tMEM_WRITE_WATCH = 0x00200000\n\tMEM_PHYSICAL    = 0x00400000\n\tMEM_RESET_UNDO  = 0x01000000\n\tMEM_LARGE_PAGES = 0x20000000\n\n\tPAGE_NOACCESS          = 0x00000001\n\tPAGE_READONLY          = 0x00000002\n\tPAGE_READWRITE         = 0x00000004\n\tPAGE_WRITECOPY         = 0x00000008\n\tPAGE_EXECUTE           = 0x00000010\n\tPAGE_EXECUTE_READ      = 0x00000020\n\tPAGE_EXECUTE_READWRITE = 0x00000040\n\tPAGE_EXECUTE_WRITECOPY = 0x00000080\n\tPAGE_GUARD             = 0x00000100\n\tPAGE_NOCACHE           = 0x00000200\n\tPAGE_WRITECOMBINE      = 0x00000400\n\tPAGE_TARGETS_INVALID   = 0x40000000\n\tPAGE_TARGETS_NO_UPDATE = 0x40000000\n\n\tQUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002\n\tQUOTA_LIMITS_HARDWS_MIN_ENABLE  = 0x00000001\n\tQUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008\n\tQUOTA_LIMITS_HARDWS_MAX_ENABLE  = 0x00000004\n)\n\ntype MemoryBasicInformation struct {\n\tBaseAddress       uintptr\n\tAllocationBase    uintptr\n\tAllocationProtect uint32\n\tPartitionId       uint16\n\tRegionSize        uintptr\n\tState             uint32\n\tProtect           uint32\n\tType              uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkerrors.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nwinerror=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)\"\n[[ -n $winerror ]] || { echo \"Unable to find winerror.h\" >&2; exit 1; }\nntstatus=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)\"\n[[ -n $ntstatus ]] || { echo \"Unable to find ntstatus.h\" >&2; exit 1; }\n\ndeclare -A errors\n\n{\n\techo \"// Code generated by 'mkerrors.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"import \\\"syscall\\\"\"\n\techo \"const (\"\n\n\twhile read -r line; do\n\t\tunset vtype\n\t\tif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?([A-Z][A-Z0-9_]+k?)\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?((0x)?[0-9A-Fa-f]+)L?\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +\\(\\(([A-Z]+)\\)((0x)?[0-9A-Fa-f]+)L?\\) ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telse\n\t\t\tcontinue\n\t\tfi\n\t\t[[ -n $key && -n $value ]] || continue\n\t\t[[ -z ${errors[\"$key\"]} ]] || continue\n\t\terrors[\"$key\"]=\"$value\"\n\t\tif [[ -v vtype ]]; then\n\t\t\tif [[ $key == FACILITY_* || $key == NO_ERROR ]]; then\n\t\t\t\tvtype=\"\"\n\t\t\telif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then\n\t\t\t\tvtype=\"Handle\"\n\t\t\telse\n\t\t\t\tvtype=\"syscall.Errno\"\n\t\t\tfi\n\t\t\tlast_vtype=\"$vtype\"\n\t\telse\n\t\t\tvtype=\"\"\n\t\t\tif [[ $last_vtype == Handle && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"S_OK\"\n\t\t\telif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"ERROR_SUCCESS\"\n\t\t\tfi\n\t\tfi\n\n\t\techo \"$key $vtype = $value\"\n\tdone < \"$winerror\"\n\n\twhile read -r line; do\n\t\t[[ $line =~ ^#define\\ (STATUS_[^\\s]+)\\ +\\(\\(NTSTATUS\\)((0x)?[0-9a-fA-F]+)L?\\) ]] || continue\n\t\techo \"${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}\"\n\tdone < \"$ntstatus\"\n\n\techo \")\"\n} | gofmt > \"zerrors_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkknownfolderids.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nknownfolders=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)\"\n[[ -n $knownfolders ]] || { echo \"Unable to find KnownFolders.h\" >&2; exit 1; }\n\n{\n\techo \"// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"type KNOWNFOLDERID GUID\"\n\techo \"var (\"\n\twhile read -r line; do\n\t\t[[ $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\n\t\tprintf \"%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\" \\\n\t\t\t\"${BASH_REMATCH[1]}\" $(( \"${BASH_REMATCH[2]}\" )) $(( \"${BASH_REMATCH[3]}\" )) $(( \"${BASH_REMATCH[4]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[5]}\" )) $(( \"${BASH_REMATCH[6]}\" )) $(( \"${BASH_REMATCH[7]}\" )) $(( \"${BASH_REMATCH[8]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[9]}\" )) $(( \"${BASH_REMATCH[10]}\" )) $(( \"${BASH_REMATCH[11]}\" )) $(( \"${BASH_REMATCH[12]}\" ))\n\tdone < \"$knownfolders\"\n\techo \")\"\n} | gofmt > \"zknownfolderids_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mksyscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build generate\n\npackage windows\n\n//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && race\n\npackage windows\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && !race\n\npackage windows\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/registry/key.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\n// Package registry provides access to the Windows registry.\n//\n// Here is a simple example, opening a registry key and reading a string value from it.\n//\n//\tk, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion`, registry.QUERY_VALUE)\n//\tif err != nil {\n//\t\tlog.Fatal(err)\n//\t}\n//\tdefer k.Close()\n//\n//\ts, _, err := k.GetStringValue(\"SystemRoot\")\n//\tif err != nil {\n//\t\tlog.Fatal(err)\n//\t}\n//\tfmt.Printf(\"Windows system root is %q\\n\", s)\npackage registry\n\nimport (\n\t\"io\"\n\t\"runtime\"\n\t\"syscall\"\n\t\"time\"\n)\n\nconst (\n\t// Registry key security and access rights.\n\t// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx\n\t// for details.\n\tALL_ACCESS         = 0xf003f\n\tCREATE_LINK        = 0x00020\n\tCREATE_SUB_KEY     = 0x00004\n\tENUMERATE_SUB_KEYS = 0x00008\n\tEXECUTE            = 0x20019\n\tNOTIFY             = 0x00010\n\tQUERY_VALUE        = 0x00001\n\tREAD               = 0x20019\n\tSET_VALUE          = 0x00002\n\tWOW64_32KEY        = 0x00200\n\tWOW64_64KEY        = 0x00100\n\tWRITE              = 0x20006\n)\n\n// Key is a handle to an open Windows registry key.\n// Keys can be obtained by calling OpenKey; there are\n// also some predefined root keys such as CURRENT_USER.\n// Keys can be used directly in the Windows API.\ntype Key syscall.Handle\n\nconst (\n\t// Windows defines some predefined root keys that are always open.\n\t// An application can use these keys as entry points to the registry.\n\t// Normally these keys are used in OpenKey to open new keys,\n\t// but they can also be used anywhere a Key is required.\n\tCLASSES_ROOT     = Key(syscall.HKEY_CLASSES_ROOT)\n\tCURRENT_USER     = Key(syscall.HKEY_CURRENT_USER)\n\tLOCAL_MACHINE    = Key(syscall.HKEY_LOCAL_MACHINE)\n\tUSERS            = Key(syscall.HKEY_USERS)\n\tCURRENT_CONFIG   = Key(syscall.HKEY_CURRENT_CONFIG)\n\tPERFORMANCE_DATA = Key(syscall.HKEY_PERFORMANCE_DATA)\n)\n\n// Close closes open key k.\nfunc (k Key) Close() error {\n\treturn syscall.RegCloseKey(syscall.Handle(k))\n}\n\n// OpenKey opens a new key with path name relative to key k.\n// It accepts any open key, including CURRENT_USER and others,\n// and returns the new key and an error.\n// The access parameter specifies desired access rights to the\n// key to be opened.\nfunc OpenKey(k Key, path string, access uint32) (Key, error) {\n\tp, err := syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tvar subkey syscall.Handle\n\terr = syscall.RegOpenKeyEx(syscall.Handle(k), p, 0, access, &subkey)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn Key(subkey), nil\n}\n\n// OpenRemoteKey opens a predefined registry key on another\n// computer pcname. The key to be opened is specified by k, but\n// can only be one of LOCAL_MACHINE, PERFORMANCE_DATA or USERS.\n// If pcname is \"\", OpenRemoteKey returns local computer key.\nfunc OpenRemoteKey(pcname string, k Key) (Key, error) {\n\tvar err error\n\tvar p *uint16\n\tif pcname != \"\" {\n\t\tp, err = syscall.UTF16PtrFromString(`\\\\` + pcname)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar remoteKey syscall.Handle\n\terr = regConnectRegistry(p, syscall.Handle(k), &remoteKey)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn Key(remoteKey), nil\n}\n\n// ReadSubKeyNames returns the names of subkeys of key k.\n// The parameter n controls the number of returned names,\n// analogous to the way os.File.Readdirnames works.\nfunc (k Key) ReadSubKeyNames(n int) ([]string, error) {\n\t// RegEnumKeyEx must be called repeatedly and to completion.\n\t// During this time, this goroutine cannot migrate away from\n\t// its current thread. See https://golang.org/issue/49320 and\n\t// https://golang.org/issue/49466.\n\truntime.LockOSThread()\n\tdefer runtime.UnlockOSThread()\n\n\tnames := make([]string, 0)\n\t// Registry key size limit is 255 bytes and described there:\n\t// https://msdn.microsoft.com/library/windows/desktop/ms724872.aspx\n\tbuf := make([]uint16, 256) //plus extra room for terminating zero byte\nloopItems:\n\tfor i := uint32(0); ; i++ {\n\t\tif n > 0 {\n\t\t\tif len(names) == n {\n\t\t\t\treturn names, nil\n\t\t\t}\n\t\t}\n\t\tl := uint32(len(buf))\n\t\tfor {\n\t\t\terr := syscall.RegEnumKeyEx(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil)\n\t\t\tif err == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif err == syscall.ERROR_MORE_DATA {\n\t\t\t\t// Double buffer size and try again.\n\t\t\t\tl = uint32(2 * len(buf))\n\t\t\t\tbuf = make([]uint16, l)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err == _ERROR_NO_MORE_ITEMS {\n\t\t\t\tbreak loopItems\n\t\t\t}\n\t\t\treturn names, err\n\t\t}\n\t\tnames = append(names, syscall.UTF16ToString(buf[:l]))\n\t}\n\tif n > len(names) {\n\t\treturn names, io.EOF\n\t}\n\treturn names, nil\n}\n\n// CreateKey creates a key named path under open key k.\n// CreateKey returns the new key and a boolean flag that reports\n// whether the key already existed.\n// The access parameter specifies the access rights for the key\n// to be created.\nfunc CreateKey(k Key, path string, access uint32) (newk Key, openedExisting bool, err error) {\n\tvar h syscall.Handle\n\tvar d uint32\n\tvar pathPointer *uint16\n\tpathPointer, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn 0, false, err\n\t}\n\terr = regCreateKeyEx(syscall.Handle(k), pathPointer,\n\t\t0, nil, _REG_OPTION_NON_VOLATILE, access, nil, &h, &d)\n\tif err != nil {\n\t\treturn 0, false, err\n\t}\n\treturn Key(h), d == _REG_OPENED_EXISTING_KEY, nil\n}\n\n// DeleteKey deletes the subkey path of key k and its values.\nfunc DeleteKey(k Key, path string) error {\n\tpathPointer, err := syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn regDeleteKey(syscall.Handle(k), pathPointer)\n}\n\n// A KeyInfo describes the statistics of a key. It is returned by Stat.\ntype KeyInfo struct {\n\tSubKeyCount     uint32\n\tMaxSubKeyLen    uint32 // size of the key's subkey with the longest name, in Unicode characters, not including the terminating zero byte\n\tValueCount      uint32\n\tMaxValueNameLen uint32 // size of the key's longest value name, in Unicode characters, not including the terminating zero byte\n\tMaxValueLen     uint32 // longest data component among the key's values, in bytes\n\tlastWriteTime   syscall.Filetime\n}\n\n// ModTime returns the key's last write time.\nfunc (ki *KeyInfo) ModTime() time.Time {\n\treturn time.Unix(0, ki.lastWriteTime.Nanoseconds())\n}\n\n// Stat retrieves information about the open key k.\nfunc (k Key) Stat() (*KeyInfo, error) {\n\tvar ki KeyInfo\n\terr := syscall.RegQueryInfoKey(syscall.Handle(k), nil, nil, nil,\n\t\t&ki.SubKeyCount, &ki.MaxSubKeyLen, nil, &ki.ValueCount,\n\t\t&ki.MaxValueNameLen, &ki.MaxValueLen, nil, &ki.lastWriteTime)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ki, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/registry/mksyscall.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build generate\n\npackage registry\n\n//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go syscall.go\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/registry/syscall.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage registry\n\nimport \"syscall\"\n\nconst (\n\t_REG_OPTION_NON_VOLATILE = 0\n\n\t_REG_CREATED_NEW_KEY     = 1\n\t_REG_OPENED_EXISTING_KEY = 2\n\n\t_ERROR_NO_MORE_ITEMS syscall.Errno = 259\n)\n\nfunc LoadRegLoadMUIString() error {\n\treturn procRegLoadMUIStringW.Find()\n}\n\n//sys\tregCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW\n//sys\tregDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW\n//sys\tregSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW\n//sys\tregEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW\n//sys\tregDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW\n//sys   regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW\n//sys\tregConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) = advapi32.RegConnectRegistryW\n\n//sys\texpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/registry/value.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage registry\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"syscall\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\nconst (\n\t// Registry value types.\n\tNONE                       = 0\n\tSZ                         = 1\n\tEXPAND_SZ                  = 2\n\tBINARY                     = 3\n\tDWORD                      = 4\n\tDWORD_BIG_ENDIAN           = 5\n\tLINK                       = 6\n\tMULTI_SZ                   = 7\n\tRESOURCE_LIST              = 8\n\tFULL_RESOURCE_DESCRIPTOR   = 9\n\tRESOURCE_REQUIREMENTS_LIST = 10\n\tQWORD                      = 11\n)\n\nvar (\n\t// ErrShortBuffer is returned when the buffer was too short for the operation.\n\tErrShortBuffer = syscall.ERROR_MORE_DATA\n\n\t// ErrNotExist is returned when a registry key or value does not exist.\n\tErrNotExist = syscall.ERROR_FILE_NOT_FOUND\n\n\t// ErrUnexpectedType is returned by Get*Value when the value's type was unexpected.\n\tErrUnexpectedType = errors.New(\"unexpected key value type\")\n)\n\n// GetValue retrieves the type and data for the specified value associated\n// with an open key k. It fills up buffer buf and returns the retrieved\n// byte count n. If buf is too small to fit the stored value it returns\n// ErrShortBuffer error along with the required buffer size n.\n// If no buffer is provided, it returns true and actual buffer size n.\n// If no buffer is provided, GetValue returns the value's type only.\n// If the value does not exist, the error returned is ErrNotExist.\n//\n// GetValue is a low level function. If value's type is known, use the appropriate\n// Get*Value function instead.\nfunc (k Key) GetValue(name string, buf []byte) (n int, valtype uint32, err error) {\n\tpname, err := syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\tvar pbuf *byte\n\tif len(buf) > 0 {\n\t\tpbuf = (*byte)(unsafe.Pointer(&buf[0]))\n\t}\n\tl := uint32(len(buf))\n\terr = syscall.RegQueryValueEx(syscall.Handle(k), pname, nil, &valtype, pbuf, &l)\n\tif err != nil {\n\t\treturn int(l), valtype, err\n\t}\n\treturn int(l), valtype, nil\n}\n\nfunc (k Key) getValue(name string, buf []byte) (data []byte, valtype uint32, err error) {\n\tp, err := syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\tvar t uint32\n\tn := uint32(len(buf))\n\tfor {\n\t\terr = syscall.RegQueryValueEx(syscall.Handle(k), p, nil, &t, (*byte)(unsafe.Pointer(&buf[0])), &n)\n\t\tif err == nil {\n\t\t\treturn buf[:n], t, nil\n\t\t}\n\t\tif err != syscall.ERROR_MORE_DATA {\n\t\t\treturn nil, 0, err\n\t\t}\n\t\tif n <= uint32(len(buf)) {\n\t\t\treturn nil, 0, err\n\t\t}\n\t\tbuf = make([]byte, n)\n\t}\n}\n\n// GetStringValue retrieves the string value for the specified\n// value name associated with an open key k. It also returns the value's type.\n// If value does not exist, GetStringValue returns ErrNotExist.\n// If value is not SZ or EXPAND_SZ, it will return the correct value\n// type and ErrUnexpectedType.\nfunc (k Key) GetStringValue(name string) (val string, valtype uint32, err error) {\n\tdata, typ, err2 := k.getValue(name, make([]byte, 64))\n\tif err2 != nil {\n\t\treturn \"\", typ, err2\n\t}\n\tswitch typ {\n\tcase SZ, EXPAND_SZ:\n\tdefault:\n\t\treturn \"\", typ, ErrUnexpectedType\n\t}\n\tif len(data) == 0 {\n\t\treturn \"\", typ, nil\n\t}\n\tu := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[: len(data)/2 : len(data)/2]\n\treturn syscall.UTF16ToString(u), typ, nil\n}\n\n// GetMUIStringValue retrieves the localized string value for\n// the specified value name associated with an open key k.\n// If the value name doesn't exist or the localized string value\n// can't be resolved, GetMUIStringValue returns ErrNotExist.\n// GetMUIStringValue panics if the system doesn't support\n// regLoadMUIString; use LoadRegLoadMUIString to check if\n// regLoadMUIString is supported before calling this function.\nfunc (k Key) GetMUIStringValue(name string) (string, error) {\n\tpname, err := syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf := make([]uint16, 1024)\n\tvar buflen uint32\n\tvar pdir *uint16\n\n\terr = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)\n\tif err == syscall.ERROR_FILE_NOT_FOUND { // Try fallback path\n\n\t\t// Try to resolve the string value using the system directory as\n\t\t// a DLL search path; this assumes the string value is of the form\n\t\t// @[path]\\dllname,-strID but with no path given, e.g. @tzres.dll,-320.\n\n\t\t// This approach works with tzres.dll but may have to be revised\n\t\t// in the future to allow callers to provide custom search paths.\n\n\t\tvar s string\n\t\ts, err = ExpandString(\"%SystemRoot%\\\\system32\\\\\")\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tpdir, err = syscall.UTF16PtrFromString(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\terr = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)\n\t}\n\n\tfor err == syscall.ERROR_MORE_DATA { // Grow buffer if needed\n\t\tif buflen <= uint32(len(buf)) {\n\t\t\tbreak // Buffer not growing, assume race; break\n\t\t}\n\t\tbuf = make([]uint16, buflen)\n\t\terr = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)\n\t}\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn syscall.UTF16ToString(buf), nil\n}\n\n// ExpandString expands environment-variable strings and replaces\n// them with the values defined for the current user.\n// Use ExpandString to expand EXPAND_SZ strings.\nfunc ExpandString(value string) (string, error) {\n\tif value == \"\" {\n\t\treturn \"\", nil\n\t}\n\tp, err := syscall.UTF16PtrFromString(value)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tr := make([]uint16, 100)\n\tfor {\n\t\tn, err := expandEnvironmentStrings(p, &r[0], uint32(len(r)))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif n <= uint32(len(r)) {\n\t\t\treturn syscall.UTF16ToString(r[:n]), nil\n\t\t}\n\t\tr = make([]uint16, n)\n\t}\n}\n\n// GetStringsValue retrieves the []string value for the specified\n// value name associated with an open key k. It also returns the value's type.\n// If value does not exist, GetStringsValue returns ErrNotExist.\n// If value is not MULTI_SZ, it will return the correct value\n// type and ErrUnexpectedType.\nfunc (k Key) GetStringsValue(name string) (val []string, valtype uint32, err error) {\n\tdata, typ, err2 := k.getValue(name, make([]byte, 64))\n\tif err2 != nil {\n\t\treturn nil, typ, err2\n\t}\n\tif typ != MULTI_SZ {\n\t\treturn nil, typ, ErrUnexpectedType\n\t}\n\tif len(data) == 0 {\n\t\treturn nil, typ, nil\n\t}\n\tp := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[: len(data)/2 : len(data)/2]\n\tif len(p) == 0 {\n\t\treturn nil, typ, nil\n\t}\n\tif p[len(p)-1] == 0 {\n\t\tp = p[:len(p)-1] // remove terminating null\n\t}\n\tval = make([]string, 0, 5)\n\tfrom := 0\n\tfor i, c := range p {\n\t\tif c == 0 {\n\t\t\tval = append(val, string(utf16.Decode(p[from:i])))\n\t\t\tfrom = i + 1\n\t\t}\n\t}\n\treturn val, typ, nil\n}\n\n// GetIntegerValue retrieves the integer value for the specified\n// value name associated with an open key k. It also returns the value's type.\n// If value does not exist, GetIntegerValue returns ErrNotExist.\n// If value is not DWORD or QWORD, it will return the correct value\n// type and ErrUnexpectedType.\nfunc (k Key) GetIntegerValue(name string) (val uint64, valtype uint32, err error) {\n\tdata, typ, err2 := k.getValue(name, make([]byte, 8))\n\tif err2 != nil {\n\t\treturn 0, typ, err2\n\t}\n\tswitch typ {\n\tcase DWORD:\n\t\tif len(data) != 4 {\n\t\t\treturn 0, typ, errors.New(\"DWORD value is not 4 bytes long\")\n\t\t}\n\t\tvar val32 uint32\n\t\tcopy((*[4]byte)(unsafe.Pointer(&val32))[:], data)\n\t\treturn uint64(val32), DWORD, nil\n\tcase QWORD:\n\t\tif len(data) != 8 {\n\t\t\treturn 0, typ, errors.New(\"QWORD value is not 8 bytes long\")\n\t\t}\n\t\tcopy((*[8]byte)(unsafe.Pointer(&val))[:], data)\n\t\treturn val, QWORD, nil\n\tdefault:\n\t\treturn 0, typ, ErrUnexpectedType\n\t}\n}\n\n// GetBinaryValue retrieves the binary value for the specified\n// value name associated with an open key k. It also returns the value's type.\n// If value does not exist, GetBinaryValue returns ErrNotExist.\n// If value is not BINARY, it will return the correct value\n// type and ErrUnexpectedType.\nfunc (k Key) GetBinaryValue(name string) (val []byte, valtype uint32, err error) {\n\tdata, typ, err2 := k.getValue(name, make([]byte, 64))\n\tif err2 != nil {\n\t\treturn nil, typ, err2\n\t}\n\tif typ != BINARY {\n\t\treturn nil, typ, ErrUnexpectedType\n\t}\n\treturn data, typ, nil\n}\n\nfunc (k Key) setValue(name string, valtype uint32, data []byte) error {\n\tp, err := syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(data) == 0 {\n\t\treturn regSetValueEx(syscall.Handle(k), p, 0, valtype, nil, 0)\n\t}\n\treturn regSetValueEx(syscall.Handle(k), p, 0, valtype, &data[0], uint32(len(data)))\n}\n\n// SetDWordValue sets the data and type of a name value\n// under key k to value and DWORD.\nfunc (k Key) SetDWordValue(name string, value uint32) error {\n\treturn k.setValue(name, DWORD, (*[4]byte)(unsafe.Pointer(&value))[:])\n}\n\n// SetQWordValue sets the data and type of a name value\n// under key k to value and QWORD.\nfunc (k Key) SetQWordValue(name string, value uint64) error {\n\treturn k.setValue(name, QWORD, (*[8]byte)(unsafe.Pointer(&value))[:])\n}\n\nfunc (k Key) setStringValue(name string, valtype uint32, value string) error {\n\tv, err := syscall.UTF16FromString(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbuf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[: len(v)*2 : len(v)*2]\n\treturn k.setValue(name, valtype, buf)\n}\n\n// SetStringValue sets the data and type of a name value\n// under key k to value and SZ. The value must not contain a zero byte.\nfunc (k Key) SetStringValue(name, value string) error {\n\treturn k.setStringValue(name, SZ, value)\n}\n\n// SetExpandStringValue sets the data and type of a name value\n// under key k to value and EXPAND_SZ. The value must not contain a zero byte.\nfunc (k Key) SetExpandStringValue(name, value string) error {\n\treturn k.setStringValue(name, EXPAND_SZ, value)\n}\n\n// SetStringsValue sets the data and type of a name value\n// under key k to value and MULTI_SZ. The value strings\n// must not contain a zero byte.\nfunc (k Key) SetStringsValue(name string, value []string) error {\n\tss := \"\"\n\tfor _, s := range value {\n\t\tfor i := 0; i < len(s); i++ {\n\t\t\tif s[i] == 0 {\n\t\t\t\treturn errors.New(\"string cannot have 0 inside\")\n\t\t\t}\n\t\t}\n\t\tss += s + \"\\x00\"\n\t}\n\tv := utf16.Encode([]rune(ss + \"\\x00\"))\n\tbuf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[: len(v)*2 : len(v)*2]\n\treturn k.setValue(name, MULTI_SZ, buf)\n}\n\n// SetBinaryValue sets the data and type of a name value\n// under key k to value and BINARY.\nfunc (k Key) SetBinaryValue(name string, value []byte) error {\n\treturn k.setValue(name, BINARY, value)\n}\n\n// DeleteValue removes a named value from the key k.\nfunc (k Key) DeleteValue(name string) error {\n\tnamePointer, err := syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn regDeleteValue(syscall.Handle(k), namePointer)\n}\n\n// ReadValueNames returns the value names of key k.\n// The parameter n controls the number of returned names,\n// analogous to the way os.File.Readdirnames works.\nfunc (k Key) ReadValueNames(n int) ([]string, error) {\n\tki, err := k.Stat()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnames := make([]string, 0, ki.ValueCount)\n\tbuf := make([]uint16, ki.MaxValueNameLen+1) // extra room for terminating null character\nloopItems:\n\tfor i := uint32(0); ; i++ {\n\t\tif n > 0 {\n\t\t\tif len(names) == n {\n\t\t\t\treturn names, nil\n\t\t\t}\n\t\t}\n\t\tl := uint32(len(buf))\n\t\tfor {\n\t\t\terr := regEnumValue(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil)\n\t\t\tif err == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif err == syscall.ERROR_MORE_DATA {\n\t\t\t\t// Double buffer size and try again.\n\t\t\t\tl = uint32(2 * len(buf))\n\t\t\t\tbuf = make([]uint16, l)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err == _ERROR_NO_MORE_ITEMS {\n\t\t\t\tbreak loopItems\n\t\t\t}\n\t\t\treturn names, err\n\t\t}\n\t\tnames = append(names, syscall.UTF16ToString(buf[:l]))\n\t}\n\tif n > len(names) {\n\t\treturn names, io.EOF\n\t}\n\treturn names, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go",
    "content": "// Code generated by 'go generate'; DO NOT EDIT.\n\npackage registry\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\t// TODO: add more here, after collecting data on the common\n\t// error values see on Windows. (perhaps when running\n\t// all.bat?)\n\treturn e\n}\n\nvar (\n\tmodadvapi32 = windows.NewLazySystemDLL(\"advapi32.dll\")\n\tmodkernel32 = windows.NewLazySystemDLL(\"kernel32.dll\")\n\n\tprocRegConnectRegistryW       = modadvapi32.NewProc(\"RegConnectRegistryW\")\n\tprocRegCreateKeyExW           = modadvapi32.NewProc(\"RegCreateKeyExW\")\n\tprocRegDeleteKeyW             = modadvapi32.NewProc(\"RegDeleteKeyW\")\n\tprocRegDeleteValueW           = modadvapi32.NewProc(\"RegDeleteValueW\")\n\tprocRegEnumValueW             = modadvapi32.NewProc(\"RegEnumValueW\")\n\tprocRegLoadMUIStringW         = modadvapi32.NewProc(\"RegLoadMUIStringW\")\n\tprocRegSetValueExW            = modadvapi32.NewProc(\"RegSetValueExW\")\n\tprocExpandEnvironmentStringsW = modkernel32.NewProc(\"ExpandEnvironmentStringsW\")\n)\n\nfunc regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegConnectRegistryW.Addr(), uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegCreateKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegDeleteKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegDeleteValueW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegEnumValueW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegLoadMUIStringW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegSetValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/security_windows.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst (\n\tNameUnknown          = 0\n\tNameFullyQualifiedDN = 1\n\tNameSamCompatible    = 2\n\tNameDisplay          = 3\n\tNameUniqueId         = 6\n\tNameCanonical        = 7\n\tNameUserPrincipal    = 8\n\tNameCanonicalEx      = 9\n\tNameServicePrincipal = 10\n\tNameDnsDomain        = 12\n)\n\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx\n//sys\tTranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW\n//sys\tGetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW\n\n// TranslateAccountName converts a directory service\n// object name from one format to another.\nfunc TranslateAccountName(username string, from, to uint32, initSize int) (string, error) {\n\tu, e := UTF16PtrFromString(username)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te = TranslateName(u, from, to, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b[:n]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tNetSetupUnknownStatus = iota\n\tNetSetupUnjoined\n\tNetSetupWorkgroupName\n\tNetSetupDomainName\n)\n\ntype UserInfo10 struct {\n\tName       *uint16\n\tComment    *uint16\n\tUsrComment *uint16\n\tFullName   *uint16\n}\n\n//sys\tNetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo\n//sys\tNetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation\n//sys\tNetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree\n//sys   NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum\n\nconst (\n\t// do not reorder\n\tSidTypeUser = 1 + iota\n\tSidTypeGroup\n\tSidTypeDomain\n\tSidTypeAlias\n\tSidTypeWellKnownGroup\n\tSidTypeDeletedAccount\n\tSidTypeInvalid\n\tSidTypeUnknown\n\tSidTypeComputer\n\tSidTypeLabel\n)\n\ntype SidIdentifierAuthority struct {\n\tValue [6]byte\n}\n\nvar (\n\tSECURITY_NULL_SID_AUTHORITY        = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}}\n\tSECURITY_WORLD_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}}\n\tSECURITY_LOCAL_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}}\n\tSECURITY_CREATOR_SID_AUTHORITY     = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}}\n\tSECURITY_NON_UNIQUE_AUTHORITY      = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}}\n\tSECURITY_NT_AUTHORITY              = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}}\n\tSECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}}\n)\n\nconst (\n\tSECURITY_NULL_RID                   = 0\n\tSECURITY_WORLD_RID                  = 0\n\tSECURITY_LOCAL_RID                  = 0\n\tSECURITY_CREATOR_OWNER_RID          = 0\n\tSECURITY_CREATOR_GROUP_RID          = 1\n\tSECURITY_DIALUP_RID                 = 1\n\tSECURITY_NETWORK_RID                = 2\n\tSECURITY_BATCH_RID                  = 3\n\tSECURITY_INTERACTIVE_RID            = 4\n\tSECURITY_LOGON_IDS_RID              = 5\n\tSECURITY_SERVICE_RID                = 6\n\tSECURITY_LOCAL_SYSTEM_RID           = 18\n\tSECURITY_BUILTIN_DOMAIN_RID         = 32\n\tSECURITY_PRINCIPAL_SELF_RID         = 10\n\tSECURITY_CREATOR_OWNER_SERVER_RID   = 0x2\n\tSECURITY_CREATOR_GROUP_SERVER_RID   = 0x3\n\tSECURITY_LOGON_IDS_RID_COUNT        = 0x3\n\tSECURITY_ANONYMOUS_LOGON_RID        = 0x7\n\tSECURITY_PROXY_RID                  = 0x8\n\tSECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9\n\tSECURITY_SERVER_LOGON_RID           = SECURITY_ENTERPRISE_CONTROLLERS_RID\n\tSECURITY_AUTHENTICATED_USER_RID     = 0xb\n\tSECURITY_RESTRICTED_CODE_RID        = 0xc\n\tSECURITY_NT_NON_UNIQUE_RID          = 0x15\n)\n\n// Predefined domain-relative RIDs for local groups.\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx\nconst (\n\tDOMAIN_ALIAS_RID_ADMINS                         = 0x220\n\tDOMAIN_ALIAS_RID_USERS                          = 0x221\n\tDOMAIN_ALIAS_RID_GUESTS                         = 0x222\n\tDOMAIN_ALIAS_RID_POWER_USERS                    = 0x223\n\tDOMAIN_ALIAS_RID_ACCOUNT_OPS                    = 0x224\n\tDOMAIN_ALIAS_RID_SYSTEM_OPS                     = 0x225\n\tDOMAIN_ALIAS_RID_PRINT_OPS                      = 0x226\n\tDOMAIN_ALIAS_RID_BACKUP_OPS                     = 0x227\n\tDOMAIN_ALIAS_RID_REPLICATOR                     = 0x228\n\tDOMAIN_ALIAS_RID_RAS_SERVERS                    = 0x229\n\tDOMAIN_ALIAS_RID_PREW2KCOMPACCESS               = 0x22a\n\tDOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS           = 0x22b\n\tDOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS      = 0x22c\n\tDOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d\n\tDOMAIN_ALIAS_RID_MONITORING_USERS               = 0x22e\n\tDOMAIN_ALIAS_RID_LOGGING_USERS                  = 0x22f\n\tDOMAIN_ALIAS_RID_AUTHORIZATIONACCESS            = 0x230\n\tDOMAIN_ALIAS_RID_TS_LICENSE_SERVERS             = 0x231\n\tDOMAIN_ALIAS_RID_DCOM_USERS                     = 0x232\n\tDOMAIN_ALIAS_RID_IUSERS                         = 0x238\n\tDOMAIN_ALIAS_RID_CRYPTO_OPERATORS               = 0x239\n\tDOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP     = 0x23b\n\tDOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c\n\tDOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP        = 0x23d\n\tDOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP      = 0x23e\n)\n\n//sys\tLookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW\n//sys\tLookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW\n//sys\tConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW\n//sys\tConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW\n//sys\tGetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid\n//sys\tCopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid\n//sys\tAllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid\n//sys\tcreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid\n//sys\tisWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid\n//sys\tFreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid\n//sys\tEqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid\n//sys\tgetSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority\n//sys\tgetSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount\n//sys\tgetSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority\n//sys\tisValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid\n\n// The security identifier (SID) structure is a variable-length\n// structure used to uniquely identify users or groups.\ntype SID struct{}\n\n// StringToSid converts a string-format security identifier\n// SID into a valid, functional SID.\nfunc StringToSid(s string) (*SID, error) {\n\tvar sid *SID\n\tp, e := UTF16PtrFromString(s)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\te = ConvertStringSidToSid(p, &sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(sid)))\n\treturn sid.Copy()\n}\n\n// LookupSID retrieves a security identifier SID for the account\n// and the name of the domain on which the account was found.\n// System specify target computer to search.\nfunc LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) {\n\tif len(account) == 0 {\n\t\treturn nil, \"\", 0, syscall.EINVAL\n\t}\n\tacc, e := UTF16PtrFromString(account)\n\tif e != nil {\n\t\treturn nil, \"\", 0, e\n\t}\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, e = UTF16PtrFromString(system)\n\t\tif e != nil {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tdb := make([]uint16, dn)\n\t\tsid = (*SID)(unsafe.Pointer(&b[0]))\n\t\te = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn sid, UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n}\n\n// String converts SID to a string format suitable for display, storage, or transmission.\nfunc (sid *SID) String() string {\n\tvar s *uint16\n\te := ConvertSidToStringSid(sid, &s)\n\tif e != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(s)))\n\treturn UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:])\n}\n\n// Len returns the length, in bytes, of a valid security identifier SID.\nfunc (sid *SID) Len() int {\n\treturn int(GetLengthSid(sid))\n}\n\n// Copy creates a duplicate of security identifier SID.\nfunc (sid *SID) Copy() (*SID, error) {\n\tb := make([]byte, sid.Len())\n\tsid2 := (*SID)(unsafe.Pointer(&b[0]))\n\te := CopySid(uint32(len(b)), sid2, sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn sid2, nil\n}\n\n// IdentifierAuthority returns the identifier authority of the SID.\nfunc (sid *SID) IdentifierAuthority() SidIdentifierAuthority {\n\treturn *getSidIdentifierAuthority(sid)\n}\n\n// SubAuthorityCount returns the number of sub-authorities in the SID.\nfunc (sid *SID) SubAuthorityCount() uint8 {\n\treturn *getSidSubAuthorityCount(sid)\n}\n\n// SubAuthority returns the sub-authority of the SID as specified by\n// the index, which must be less than sid.SubAuthorityCount().\nfunc (sid *SID) SubAuthority(idx uint32) uint32 {\n\tif idx >= uint32(sid.SubAuthorityCount()) {\n\t\tpanic(\"sub-authority index out of range\")\n\t}\n\treturn *getSidSubAuthority(sid, idx)\n}\n\n// IsValid returns whether the SID has a valid revision and length.\nfunc (sid *SID) IsValid() bool {\n\treturn isValidSid(sid)\n}\n\n// Equals compares two SIDs for equality.\nfunc (sid *SID) Equals(sid2 *SID) bool {\n\treturn EqualSid(sid, sid2)\n}\n\n// IsWellKnown determines whether the SID matches the well-known sidType.\nfunc (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool {\n\treturn isWellKnownSid(sid, sidType)\n}\n\n// LookupAccount retrieves the name of the account for this SID\n// and the name of the first domain on which this SID is found.\n// System specify target computer to search for.\nfunc (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) {\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, err = UTF16PtrFromString(system)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", 0, err\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tdb := make([]uint16, dn)\n\t\te := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t}\n}\n\n// Various types of pre-specified SIDs that can be synthesized and compared at runtime.\ntype WELL_KNOWN_SID_TYPE uint32\n\nconst (\n\tWinNullSid                                    = 0\n\tWinWorldSid                                   = 1\n\tWinLocalSid                                   = 2\n\tWinCreatorOwnerSid                            = 3\n\tWinCreatorGroupSid                            = 4\n\tWinCreatorOwnerServerSid                      = 5\n\tWinCreatorGroupServerSid                      = 6\n\tWinNtAuthoritySid                             = 7\n\tWinDialupSid                                  = 8\n\tWinNetworkSid                                 = 9\n\tWinBatchSid                                   = 10\n\tWinInteractiveSid                             = 11\n\tWinServiceSid                                 = 12\n\tWinAnonymousSid                               = 13\n\tWinProxySid                                   = 14\n\tWinEnterpriseControllersSid                   = 15\n\tWinSelfSid                                    = 16\n\tWinAuthenticatedUserSid                       = 17\n\tWinRestrictedCodeSid                          = 18\n\tWinTerminalServerSid                          = 19\n\tWinRemoteLogonIdSid                           = 20\n\tWinLogonIdsSid                                = 21\n\tWinLocalSystemSid                             = 22\n\tWinLocalServiceSid                            = 23\n\tWinNetworkServiceSid                          = 24\n\tWinBuiltinDomainSid                           = 25\n\tWinBuiltinAdministratorsSid                   = 26\n\tWinBuiltinUsersSid                            = 27\n\tWinBuiltinGuestsSid                           = 28\n\tWinBuiltinPowerUsersSid                       = 29\n\tWinBuiltinAccountOperatorsSid                 = 30\n\tWinBuiltinSystemOperatorsSid                  = 31\n\tWinBuiltinPrintOperatorsSid                   = 32\n\tWinBuiltinBackupOperatorsSid                  = 33\n\tWinBuiltinReplicatorSid                       = 34\n\tWinBuiltinPreWindows2000CompatibleAccessSid   = 35\n\tWinBuiltinRemoteDesktopUsersSid               = 36\n\tWinBuiltinNetworkConfigurationOperatorsSid    = 37\n\tWinAccountAdministratorSid                    = 38\n\tWinAccountGuestSid                            = 39\n\tWinAccountKrbtgtSid                           = 40\n\tWinAccountDomainAdminsSid                     = 41\n\tWinAccountDomainUsersSid                      = 42\n\tWinAccountDomainGuestsSid                     = 43\n\tWinAccountComputersSid                        = 44\n\tWinAccountControllersSid                      = 45\n\tWinAccountCertAdminsSid                       = 46\n\tWinAccountSchemaAdminsSid                     = 47\n\tWinAccountEnterpriseAdminsSid                 = 48\n\tWinAccountPolicyAdminsSid                     = 49\n\tWinAccountRasAndIasServersSid                 = 50\n\tWinNTLMAuthenticationSid                      = 51\n\tWinDigestAuthenticationSid                    = 52\n\tWinSChannelAuthenticationSid                  = 53\n\tWinThisOrganizationSid                        = 54\n\tWinOtherOrganizationSid                       = 55\n\tWinBuiltinIncomingForestTrustBuildersSid      = 56\n\tWinBuiltinPerfMonitoringUsersSid              = 57\n\tWinBuiltinPerfLoggingUsersSid                 = 58\n\tWinBuiltinAuthorizationAccessSid              = 59\n\tWinBuiltinTerminalServerLicenseServersSid     = 60\n\tWinBuiltinDCOMUsersSid                        = 61\n\tWinBuiltinIUsersSid                           = 62\n\tWinIUserSid                                   = 63\n\tWinBuiltinCryptoOperatorsSid                  = 64\n\tWinUntrustedLabelSid                          = 65\n\tWinLowLabelSid                                = 66\n\tWinMediumLabelSid                             = 67\n\tWinHighLabelSid                               = 68\n\tWinSystemLabelSid                             = 69\n\tWinWriteRestrictedCodeSid                     = 70\n\tWinCreatorOwnerRightsSid                      = 71\n\tWinCacheablePrincipalsGroupSid                = 72\n\tWinNonCacheablePrincipalsGroupSid             = 73\n\tWinEnterpriseReadonlyControllersSid           = 74\n\tWinAccountReadonlyControllersSid              = 75\n\tWinBuiltinEventLogReadersGroup                = 76\n\tWinNewEnterpriseReadonlyControllersSid        = 77\n\tWinBuiltinCertSvcDComAccessGroup              = 78\n\tWinMediumPlusLabelSid                         = 79\n\tWinLocalLogonSid                              = 80\n\tWinConsoleLogonSid                            = 81\n\tWinThisOrganizationCertificateSid             = 82\n\tWinApplicationPackageAuthoritySid             = 83\n\tWinBuiltinAnyPackageSid                       = 84\n\tWinCapabilityInternetClientSid                = 85\n\tWinCapabilityInternetClientServerSid          = 86\n\tWinCapabilityPrivateNetworkClientServerSid    = 87\n\tWinCapabilityPicturesLibrarySid               = 88\n\tWinCapabilityVideosLibrarySid                 = 89\n\tWinCapabilityMusicLibrarySid                  = 90\n\tWinCapabilityDocumentsLibrarySid              = 91\n\tWinCapabilitySharedUserCertificatesSid        = 92\n\tWinCapabilityEnterpriseAuthenticationSid      = 93\n\tWinCapabilityRemovableStorageSid              = 94\n\tWinBuiltinRDSRemoteAccessServersSid           = 95\n\tWinBuiltinRDSEndpointServersSid               = 96\n\tWinBuiltinRDSManagementServersSid             = 97\n\tWinUserModeDriversSid                         = 98\n\tWinBuiltinHyperVAdminsSid                     = 99\n\tWinAccountCloneableControllersSid             = 100\n\tWinBuiltinAccessControlAssistanceOperatorsSid = 101\n\tWinBuiltinRemoteManagementUsersSid            = 102\n\tWinAuthenticationAuthorityAssertedSid         = 103\n\tWinAuthenticationServiceAssertedSid           = 104\n\tWinLocalAccountSid                            = 105\n\tWinLocalAccountAndAdministratorSid            = 106\n\tWinAccountProtectedUsersSid                   = 107\n\tWinCapabilityAppointmentsSid                  = 108\n\tWinCapabilityContactsSid                      = 109\n\tWinAccountDefaultSystemManagedSid             = 110\n\tWinBuiltinDefaultSystemManagedGroupSid        = 111\n\tWinBuiltinStorageReplicaAdminsSid             = 112\n\tWinAccountKeyAdminsSid                        = 113\n\tWinAccountEnterpriseKeyAdminsSid              = 114\n\tWinAuthenticationKeyTrustSid                  = 115\n\tWinAuthenticationKeyPropertyMFASid            = 116\n\tWinAuthenticationKeyPropertyAttestationSid    = 117\n\tWinAuthenticationFreshKeyAuthSid              = 118\n\tWinBuiltinDeviceOwnersSid                     = 119\n)\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the local machine.\nfunc CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) {\n\treturn CreateWellKnownDomainSid(sidType, nil)\n}\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the domain specified by the domainSid parameter.\nfunc CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) {\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tsid := (*SID)(unsafe.Pointer(&b[0]))\n\t\terr := createWellKnownSid(sidType, domainSid, sid, &n)\n\t\tif err == nil {\n\t\t\treturn sid, nil\n\t\t}\n\t\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tTOKEN_ASSIGN_PRIMARY = 1 << iota\n\tTOKEN_DUPLICATE\n\tTOKEN_IMPERSONATE\n\tTOKEN_QUERY\n\tTOKEN_QUERY_SOURCE\n\tTOKEN_ADJUST_PRIVILEGES\n\tTOKEN_ADJUST_GROUPS\n\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_ADJUST_SESSIONID\n\n\tTOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED |\n\t\tTOKEN_ASSIGN_PRIMARY |\n\t\tTOKEN_DUPLICATE |\n\t\tTOKEN_IMPERSONATE |\n\t\tTOKEN_QUERY |\n\t\tTOKEN_QUERY_SOURCE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT |\n\t\tTOKEN_ADJUST_SESSIONID\n\tTOKEN_READ  = STANDARD_RIGHTS_READ | TOKEN_QUERY\n\tTOKEN_WRITE = STANDARD_RIGHTS_WRITE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE\n)\n\nconst (\n\t// do not reorder\n\tTokenUser = 1 + iota\n\tTokenGroups\n\tTokenPrivileges\n\tTokenOwner\n\tTokenPrimaryGroup\n\tTokenDefaultDacl\n\tTokenSource\n\tTokenType\n\tTokenImpersonationLevel\n\tTokenStatistics\n\tTokenRestrictedSids\n\tTokenSessionId\n\tTokenGroupsAndPrivileges\n\tTokenSessionReference\n\tTokenSandBoxInert\n\tTokenAuditPolicy\n\tTokenOrigin\n\tTokenElevationType\n\tTokenLinkedToken\n\tTokenElevation\n\tTokenHasRestrictions\n\tTokenAccessInformation\n\tTokenVirtualizationAllowed\n\tTokenVirtualizationEnabled\n\tTokenIntegrityLevel\n\tTokenUIAccess\n\tTokenMandatoryPolicy\n\tTokenLogonSid\n\tMaxTokenInfoClass\n)\n\n// Group attributes inside of Tokengroups.Groups[i].Attributes\nconst (\n\tSE_GROUP_MANDATORY          = 0x00000001\n\tSE_GROUP_ENABLED_BY_DEFAULT = 0x00000002\n\tSE_GROUP_ENABLED            = 0x00000004\n\tSE_GROUP_OWNER              = 0x00000008\n\tSE_GROUP_USE_FOR_DENY_ONLY  = 0x00000010\n\tSE_GROUP_INTEGRITY          = 0x00000020\n\tSE_GROUP_INTEGRITY_ENABLED  = 0x00000040\n\tSE_GROUP_LOGON_ID           = 0xC0000000\n\tSE_GROUP_RESOURCE           = 0x20000000\n\tSE_GROUP_VALID_ATTRIBUTES   = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED\n)\n\n// Privilege attributes\nconst (\n\tSE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001\n\tSE_PRIVILEGE_ENABLED            = 0x00000002\n\tSE_PRIVILEGE_REMOVED            = 0x00000004\n\tSE_PRIVILEGE_USED_FOR_ACCESS    = 0x80000000\n\tSE_PRIVILEGE_VALID_ATTRIBUTES   = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS\n)\n\n// Token types\nconst (\n\tTokenPrimary       = 1\n\tTokenImpersonation = 2\n)\n\n// Impersonation levels\nconst (\n\tSecurityAnonymous      = 0\n\tSecurityIdentification = 1\n\tSecurityImpersonation  = 2\n\tSecurityDelegation     = 3\n)\n\ntype LUID struct {\n\tLowPart  uint32\n\tHighPart int32\n}\n\ntype LUIDAndAttributes struct {\n\tLuid       LUID\n\tAttributes uint32\n}\n\ntype SIDAndAttributes struct {\n\tSid        *SID\n\tAttributes uint32\n}\n\ntype Tokenuser struct {\n\tUser SIDAndAttributes\n}\n\ntype Tokenprimarygroup struct {\n\tPrimaryGroup *SID\n}\n\ntype Tokengroups struct {\n\tGroupCount uint32\n\tGroups     [1]SIDAndAttributes // Use AllGroups() for iterating.\n}\n\n// AllGroups returns a slice that can be used to iterate over the groups in g.\nfunc (g *Tokengroups) AllGroups() []SIDAndAttributes {\n\treturn (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount]\n}\n\ntype Tokenprivileges struct {\n\tPrivilegeCount uint32\n\tPrivileges     [1]LUIDAndAttributes // Use AllPrivileges() for iterating.\n}\n\n// AllPrivileges returns a slice that can be used to iterate over the privileges in p.\nfunc (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes {\n\treturn (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount]\n}\n\ntype Tokenmandatorylabel struct {\n\tLabel SIDAndAttributes\n}\n\nfunc (tml *Tokenmandatorylabel) Size() uint32 {\n\treturn uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid)\n}\n\n// Authorization Functions\n//sys\tcheckTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership\n//sys\tisTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted\n//sys\tOpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken\n//sys\tOpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken\n//sys\tImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf\n//sys\tRevertToSelf() (err error) = advapi32.RevertToSelf\n//sys\tSetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken\n//sys\tLookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW\n//sys\tAdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges\n//sys\tAdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups\n//sys\tGetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation\n//sys\tSetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation\n//sys\tDuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx\n//sys\tGetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW\n//sys\tgetSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW\n//sys\tgetWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW\n//sys\tgetSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW\n\n// An access token contains the security information for a logon session.\n// The system creates an access token when a user logs on, and every\n// process executed on behalf of the user has a copy of the token.\n// The token identifies the user, the user's groups, and the user's\n// privileges. The system uses the token to control access to securable\n// objects and to control the ability of the user to perform various\n// system-related operations on the local computer.\ntype Token Handle\n\n// OpenCurrentProcessToken opens an access token associated with current\n// process with TOKEN_QUERY access. It is a real token that needs to be closed.\n//\n// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...)\n// with the desired access instead, or use GetCurrentProcessToken for a\n// TOKEN_QUERY token.\nfunc OpenCurrentProcessToken() (Token, error) {\n\tvar token Token\n\terr := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token)\n\treturn token, err\n}\n\n// GetCurrentProcessToken returns the access token associated with\n// the current process. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentProcessToken() Token {\n\treturn Token(^uintptr(4 - 1))\n}\n\n// GetCurrentThreadToken return the access token associated with\n// the current thread. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentThreadToken() Token {\n\treturn Token(^uintptr(5 - 1))\n}\n\n// GetCurrentThreadEffectiveToken returns the effective access token\n// associated with the current thread. It is a pseudo token that does\n// not need to be closed.\nfunc GetCurrentThreadEffectiveToken() Token {\n\treturn Token(^uintptr(6 - 1))\n}\n\n// Close releases access to access token.\nfunc (t Token) Close() error {\n\treturn CloseHandle(Handle(t))\n}\n\n// getInfo retrieves a specified type of information about an access token.\nfunc (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) {\n\tn := uint32(initSize)\n\tfor {\n\t\tb := make([]byte, n)\n\t\te := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n)\n\t\tif e == nil {\n\t\t\treturn unsafe.Pointer(&b[0]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, e\n\t\t}\n\t}\n}\n\n// GetTokenUser retrieves access token t user account information.\nfunc (t Token) GetTokenUser() (*Tokenuser, error) {\n\ti, e := t.getInfo(TokenUser, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenuser)(i), nil\n}\n\n// GetTokenGroups retrieves group accounts associated with access token t.\nfunc (t Token) GetTokenGroups() (*Tokengroups, error) {\n\ti, e := t.getInfo(TokenGroups, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokengroups)(i), nil\n}\n\n// GetTokenPrimaryGroup retrieves access token t primary group information.\n// A pointer to a SID structure representing a group that will become\n// the primary group of any objects created by a process using this access token.\nfunc (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) {\n\ti, e := t.getInfo(TokenPrimaryGroup, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenprimarygroup)(i), nil\n}\n\n// GetUserProfileDirectory retrieves path to the\n// root directory of the access token t user's profile.\nfunc (t Token) GetUserProfileDirectory() (string, error) {\n\tn := uint32(100)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te := GetUserProfileDirectory(t, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\n// IsElevated returns whether the current token is elevated from a UAC perspective.\nfunc (token Token) IsElevated() bool {\n\tvar isElevated uint32\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0\n}\n\n// GetLinkedToken returns the linked token, which may be an elevated UAC token.\nfunc (token Token) GetLinkedToken() (Token, error) {\n\tvar linkedToken Token\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen)\n\tif err != nil {\n\t\treturn Token(0), err\n\t}\n\treturn linkedToken, nil\n}\n\n// GetSystemDirectory retrieves the path to current location of the system\n// directory, which is typically, though not always, `C:\\Windows\\System32`.\nfunc GetSystemDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetWindowsDirectory retrieves the path to current location of the Windows\n// directory, which is typically, though not always, `C:\\Windows`. This may\n// be a private user directory in the case that the application is running\n// under a terminal server.\nfunc GetWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetSystemWindowsDirectory retrieves the path to current location of the\n// Windows directory, which is typically, though not always, `C:\\Windows`.\nfunc GetSystemWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// IsMember reports whether the access token t is a member of the provided SID.\nfunc (t Token) IsMember(sid *SID) (bool, error) {\n\tvar b int32\n\tif e := checkTokenMembership(t, sid, &b); e != nil {\n\t\treturn false, e\n\t}\n\treturn b != 0, nil\n}\n\n// IsRestricted reports whether the access token t is a restricted token.\nfunc (t Token) IsRestricted() (isRestricted bool, err error) {\n\tisRestricted, err = isTokenRestricted(t)\n\tif !isRestricted && err == syscall.EINVAL {\n\t\t// If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token.\n\t\terr = nil\n\t}\n\treturn\n}\n\nconst (\n\tWTS_CONSOLE_CONNECT        = 0x1\n\tWTS_CONSOLE_DISCONNECT     = 0x2\n\tWTS_REMOTE_CONNECT         = 0x3\n\tWTS_REMOTE_DISCONNECT      = 0x4\n\tWTS_SESSION_LOGON          = 0x5\n\tWTS_SESSION_LOGOFF         = 0x6\n\tWTS_SESSION_LOCK           = 0x7\n\tWTS_SESSION_UNLOCK         = 0x8\n\tWTS_SESSION_REMOTE_CONTROL = 0x9\n\tWTS_SESSION_CREATE         = 0xa\n\tWTS_SESSION_TERMINATE      = 0xb\n)\n\nconst (\n\tWTSActive       = 0\n\tWTSConnected    = 1\n\tWTSConnectQuery = 2\n\tWTSShadow       = 3\n\tWTSDisconnected = 4\n\tWTSIdle         = 5\n\tWTSListen       = 6\n\tWTSReset        = 7\n\tWTSDown         = 8\n\tWTSInit         = 9\n)\n\ntype WTSSESSION_NOTIFICATION struct {\n\tSize      uint32\n\tSessionID uint32\n}\n\ntype WTS_SESSION_INFO struct {\n\tSessionID         uint32\n\tWindowStationName *uint16\n\tState             uint32\n}\n\n//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken\n//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW\n//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory\n//sys WTSGetActiveConsoleSessionId() (sessionID uint32)\n\ntype ACL struct {\n\taclRevision byte\n\tsbz1        byte\n\taclSize     uint16\n\tAceCount    uint16\n\tsbz2        uint16\n}\n\ntype SECURITY_DESCRIPTOR struct {\n\trevision byte\n\tsbz1     byte\n\tcontrol  SECURITY_DESCRIPTOR_CONTROL\n\towner    *SID\n\tgroup    *SID\n\tsacl     *ACL\n\tdacl     *ACL\n}\n\ntype SECURITY_QUALITY_OF_SERVICE struct {\n\tLength              uint32\n\tImpersonationLevel  uint32\n\tContextTrackingMode byte\n\tEffectiveOnly       byte\n}\n\n// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE.\nconst (\n\tSECURITY_STATIC_TRACKING  = 0\n\tSECURITY_DYNAMIC_TRACKING = 1\n)\n\ntype SecurityAttributes struct {\n\tLength             uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tInheritHandle      uint32\n}\n\ntype SE_OBJECT_TYPE uint32\n\n// Constants for type SE_OBJECT_TYPE\nconst (\n\tSE_UNKNOWN_OBJECT_TYPE     = 0\n\tSE_FILE_OBJECT             = 1\n\tSE_SERVICE                 = 2\n\tSE_PRINTER                 = 3\n\tSE_REGISTRY_KEY            = 4\n\tSE_LMSHARE                 = 5\n\tSE_KERNEL_OBJECT           = 6\n\tSE_WINDOW_OBJECT           = 7\n\tSE_DS_OBJECT               = 8\n\tSE_DS_OBJECT_ALL           = 9\n\tSE_PROVIDER_DEFINED_OBJECT = 10\n\tSE_WMIGUID_OBJECT          = 11\n\tSE_REGISTRY_WOW64_32KEY    = 12\n\tSE_REGISTRY_WOW64_64KEY    = 13\n)\n\ntype SECURITY_INFORMATION uint32\n\n// Constants for type SECURITY_INFORMATION\nconst (\n\tOWNER_SECURITY_INFORMATION            = 0x00000001\n\tGROUP_SECURITY_INFORMATION            = 0x00000002\n\tDACL_SECURITY_INFORMATION             = 0x00000004\n\tSACL_SECURITY_INFORMATION             = 0x00000008\n\tLABEL_SECURITY_INFORMATION            = 0x00000010\n\tATTRIBUTE_SECURITY_INFORMATION        = 0x00000020\n\tSCOPE_SECURITY_INFORMATION            = 0x00000040\n\tBACKUP_SECURITY_INFORMATION           = 0x00010000\n\tPROTECTED_DACL_SECURITY_INFORMATION   = 0x80000000\n\tPROTECTED_SACL_SECURITY_INFORMATION   = 0x40000000\n\tUNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000\n\tUNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000\n)\n\ntype SECURITY_DESCRIPTOR_CONTROL uint16\n\n// Constants for type SECURITY_DESCRIPTOR_CONTROL\nconst (\n\tSE_OWNER_DEFAULTED       = 0x0001\n\tSE_GROUP_DEFAULTED       = 0x0002\n\tSE_DACL_PRESENT          = 0x0004\n\tSE_DACL_DEFAULTED        = 0x0008\n\tSE_SACL_PRESENT          = 0x0010\n\tSE_SACL_DEFAULTED        = 0x0020\n\tSE_DACL_AUTO_INHERIT_REQ = 0x0100\n\tSE_SACL_AUTO_INHERIT_REQ = 0x0200\n\tSE_DACL_AUTO_INHERITED   = 0x0400\n\tSE_SACL_AUTO_INHERITED   = 0x0800\n\tSE_DACL_PROTECTED        = 0x1000\n\tSE_SACL_PROTECTED        = 0x2000\n\tSE_RM_CONTROL_VALID      = 0x4000\n\tSE_SELF_RELATIVE         = 0x8000\n)\n\ntype ACCESS_MASK uint32\n\n// Constants for type ACCESS_MASK\nconst (\n\tDELETE                   = 0x00010000\n\tREAD_CONTROL             = 0x00020000\n\tWRITE_DAC                = 0x00040000\n\tWRITE_OWNER              = 0x00080000\n\tSYNCHRONIZE              = 0x00100000\n\tSTANDARD_RIGHTS_REQUIRED = 0x000F0000\n\tSTANDARD_RIGHTS_READ     = READ_CONTROL\n\tSTANDARD_RIGHTS_WRITE    = READ_CONTROL\n\tSTANDARD_RIGHTS_EXECUTE  = READ_CONTROL\n\tSTANDARD_RIGHTS_ALL      = 0x001F0000\n\tSPECIFIC_RIGHTS_ALL      = 0x0000FFFF\n\tACCESS_SYSTEM_SECURITY   = 0x01000000\n\tMAXIMUM_ALLOWED          = 0x02000000\n\tGENERIC_READ             = 0x80000000\n\tGENERIC_WRITE            = 0x40000000\n\tGENERIC_EXECUTE          = 0x20000000\n\tGENERIC_ALL              = 0x10000000\n)\n\ntype ACCESS_MODE uint32\n\n// Constants for type ACCESS_MODE\nconst (\n\tNOT_USED_ACCESS   = 0\n\tGRANT_ACCESS      = 1\n\tSET_ACCESS        = 2\n\tDENY_ACCESS       = 3\n\tREVOKE_ACCESS     = 4\n\tSET_AUDIT_SUCCESS = 5\n\tSET_AUDIT_FAILURE = 6\n)\n\n// Constants for AceFlags and Inheritance fields\nconst (\n\tNO_INHERITANCE                     = 0x0\n\tSUB_OBJECTS_ONLY_INHERIT           = 0x1\n\tSUB_CONTAINERS_ONLY_INHERIT        = 0x2\n\tSUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3\n\tINHERIT_NO_PROPAGATE               = 0x4\n\tINHERIT_ONLY                       = 0x8\n\tINHERITED_ACCESS_ENTRY             = 0x10\n\tINHERITED_PARENT                   = 0x10000000\n\tINHERITED_GRANDPARENT              = 0x20000000\n\tOBJECT_INHERIT_ACE                 = 0x1\n\tCONTAINER_INHERIT_ACE              = 0x2\n\tNO_PROPAGATE_INHERIT_ACE           = 0x4\n\tINHERIT_ONLY_ACE                   = 0x8\n\tINHERITED_ACE                      = 0x10\n\tVALID_INHERIT_FLAGS                = 0x1F\n)\n\ntype MULTIPLE_TRUSTEE_OPERATION uint32\n\n// Constants for MULTIPLE_TRUSTEE_OPERATION\nconst (\n\tNO_MULTIPLE_TRUSTEE    = 0\n\tTRUSTEE_IS_IMPERSONATE = 1\n)\n\ntype TRUSTEE_FORM uint32\n\n// Constants for TRUSTEE_FORM\nconst (\n\tTRUSTEE_IS_SID              = 0\n\tTRUSTEE_IS_NAME             = 1\n\tTRUSTEE_BAD_FORM            = 2\n\tTRUSTEE_IS_OBJECTS_AND_SID  = 3\n\tTRUSTEE_IS_OBJECTS_AND_NAME = 4\n)\n\ntype TRUSTEE_TYPE uint32\n\n// Constants for TRUSTEE_TYPE\nconst (\n\tTRUSTEE_IS_UNKNOWN          = 0\n\tTRUSTEE_IS_USER             = 1\n\tTRUSTEE_IS_GROUP            = 2\n\tTRUSTEE_IS_DOMAIN           = 3\n\tTRUSTEE_IS_ALIAS            = 4\n\tTRUSTEE_IS_WELL_KNOWN_GROUP = 5\n\tTRUSTEE_IS_DELETED          = 6\n\tTRUSTEE_IS_INVALID          = 7\n\tTRUSTEE_IS_COMPUTER         = 8\n)\n\n// Constants for ObjectsPresent field\nconst (\n\tACE_OBJECT_TYPE_PRESENT           = 0x1\n\tACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2\n)\n\ntype EXPLICIT_ACCESS struct {\n\tAccessPermissions ACCESS_MASK\n\tAccessMode        ACCESS_MODE\n\tInheritance       uint32\n\tTrustee           TRUSTEE\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\ntype ACE_HEADER struct {\n\tAceType  uint8\n\tAceFlags uint8\n\tAceSize  uint16\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace\ntype ACCESS_ALLOWED_ACE struct {\n\tHeader   ACE_HEADER\n\tMask     ACCESS_MASK\n\tSidStart uint32\n}\n\nconst (\n\t// Constants for AceType\n\t// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\n\tACCESS_ALLOWED_ACE_TYPE = 0\n\tACCESS_DENIED_ACE_TYPE  = 1\n)\n\n// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions.\ntype TrusteeValue uintptr\n\nfunc TrusteeValueFromString(str string) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str)))\n}\nfunc TrusteeValueFromSID(sid *SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(sid))\n}\nfunc TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndSid))\n}\nfunc TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndName))\n}\n\ntype TRUSTEE struct {\n\tMultipleTrustee          *TRUSTEE\n\tMultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION\n\tTrusteeForm              TRUSTEE_FORM\n\tTrusteeType              TRUSTEE_TYPE\n\tTrusteeValue             TrusteeValue\n}\n\ntype OBJECTS_AND_SID struct {\n\tObjectsPresent          uint32\n\tObjectTypeGuid          GUID\n\tInheritedObjectTypeGuid GUID\n\tSid                     *SID\n}\n\ntype OBJECTS_AND_NAME struct {\n\tObjectsPresent          uint32\n\tObjectType              SE_OBJECT_TYPE\n\tObjectTypeName          *uint16\n\tInheritedObjectTypeName *uint16\n\tName                    *uint16\n}\n\n//sys\tgetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo\n//sys\tSetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo\n//sys\tgetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW\n//sys\tSetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW\n//sys\tSetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity\n\n//sys\tbuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW\n//sys\tinitializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor\n\n//sys\tgetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl\n//sys\tgetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl\n//sys\tgetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl\n//sys\tgetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner\n//sys\tgetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup\n//sys\tgetSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength\n//sys\tgetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl\n//sys\tisValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor\n\n//sys\tsetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl\n//sys\tsetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl\n//sys\tsetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl\n//sys\tsetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner\n//sys\tsetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup\n//sys\tsetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl\n\n//sys\tconvertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW\n//sys\tconvertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW\n\n//sys\tmakeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD\n//sys\tmakeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD\n\n//sys\tsetEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW\n//sys\tGetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce\n\n// Control returns the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) {\n\terr = getSecurityDescriptorControl(sd, &control, &revision)\n\treturn\n}\n\n// SetControl sets the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error {\n\treturn setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet)\n}\n\n// RMControl returns the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) {\n\terr = getSecurityDescriptorRMControl(sd, &control)\n\treturn\n}\n\n// SetRMControl sets the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) {\n\tsetSecurityDescriptorRMControl(sd, &rmControl)\n}\n\n// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil\n// if a DACL exists but is an \"empty DACL\", meaning fully permissive. If the DACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetDACL sets the absolute security descriptor DACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted)\n}\n\n// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil\n// if a SACL exists but is an \"empty SACL\", meaning fully permissive. If the SACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetSACL sets the absolute security descriptor SACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted)\n}\n\n// Owner returns the security descriptor owner and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorOwner(sd, &owner, &defaulted)\n\treturn\n}\n\n// SetOwner sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error {\n\treturn setSecurityDescriptorOwner(absoluteSD, owner, defaulted)\n}\n\n// Group returns the security descriptor group and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorGroup(sd, &group, &defaulted)\n\treturn\n}\n\n// SetGroup sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error {\n\treturn setSecurityDescriptorGroup(absoluteSD, group, defaulted)\n}\n\n// Length returns the length of the security descriptor.\nfunc (sd *SECURITY_DESCRIPTOR) Length() uint32 {\n\treturn getSecurityDescriptorLength(sd)\n}\n\n// IsValid returns whether the security descriptor is valid.\nfunc (sd *SECURITY_DESCRIPTOR) IsValid() bool {\n\treturn isValidSecurityDescriptor(sd)\n}\n\n// String returns the SDDL form of the security descriptor, with a function signature that can be\n// used with %v formatting directives.\nfunc (sd *SECURITY_DESCRIPTOR) String() string {\n\tvar sddl *uint16\n\terr := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(sddl)))\n\treturn UTF16PtrToString(sddl)\n}\n\n// ToAbsolute converts a self-relative security descriptor into an absolute one.\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := selfRelativeSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE == 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32\n\terr = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize,\n\t\tnil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeAbsoluteSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif absoluteSDSize > 0 {\n\t\tabsoluteSD = new(SECURITY_DESCRIPTOR)\n\t\tif unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) {\n\t\t\tpanic(\"sizeof(SECURITY_DESCRIPTOR) too small\")\n\t\t}\n\t}\n\tvar (\n\t\tdacl  *ACL\n\t\tsacl  *ACL\n\t\towner *SID\n\t\tgroup *SID\n\t)\n\tif daclSize > 0 {\n\t\tdacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize))))\n\t}\n\tif saclSize > 0 {\n\t\tsacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize))))\n\t}\n\tif ownerSize > 0 {\n\t\towner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize))))\n\t}\n\tif groupSize > 0 {\n\t\tgroup = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize))))\n\t}\n\t// We call into Windows via makeAbsoluteSD, which sets up\n\t// pointers within absoluteSD that point to other chunks of memory\n\t// we pass into makeAbsoluteSD, and that happens outside the view of the GC.\n\t// We therefore take some care here to then verify the pointers are as we expect\n\t// and set them explicitly in view of the GC. See https://go.dev/issue/73199.\n\t// TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575.\n\terr = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,\n\t\tdacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)\n\tif err != nil {\n\t\t// Don't return absoluteSD, which might be partially initialized.\n\t\treturn nil, err\n\t}\n\t// Before using any fields, verify absoluteSD is in the format we expect according to Windows.\n\t// See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors\n\tabsControl, _, err := absoluteSD.Control()\n\tif err != nil {\n\t\tpanic(\"absoluteSD: \" + err.Error())\n\t}\n\tif absControl&SE_SELF_RELATIVE != 0 {\n\t\tpanic(\"absoluteSD not in absolute format\")\n\t}\n\tif absoluteSD.dacl != dacl {\n\t\tpanic(\"dacl pointer mismatch\")\n\t}\n\tif absoluteSD.sacl != sacl {\n\t\tpanic(\"sacl pointer mismatch\")\n\t}\n\tif absoluteSD.owner != owner {\n\t\tpanic(\"owner pointer mismatch\")\n\t}\n\tif absoluteSD.group != group {\n\t\tpanic(\"group pointer mismatch\")\n\t}\n\tabsoluteSD.dacl = dacl\n\tabsoluteSD.sacl = sacl\n\tabsoluteSD.owner = owner\n\tabsoluteSD.group = group\n\n\treturn\n}\n\n// ToSelfRelative converts an absolute security descriptor into a self-relative one.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := absoluteSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE != 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar selfRelativeSDSize uint32\n\terr = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeSelfRelativeSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif selfRelativeSDSize > 0 {\n\t\tselfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0]))\n\t}\n\terr = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize)\n\treturn\n}\n\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR {\n\tsdLen := int(selfRelativeSD.Length())\n\tconst min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{}))\n\tif sdLen < min {\n\t\tsdLen = min\n\t}\n\n\tsrc := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen)\n\t// SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to\n\t// be aligned properly. When we're copying a Windows-allocated struct to a\n\t// Go-allocated one, make sure that the Go allocation is aligned to the\n\t// pointer size.\n\tconst psize = int(unsafe.Sizeof(uintptr(0)))\n\talloc := make([]uintptr, (sdLen+psize-1)/psize)\n\tdst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen)\n\tcopy(dst, src)\n\treturn (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0]))\n}\n\n// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a\n// self-relative security descriptor object allocated on the Go heap.\nfunc SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetSecurityInfo queries the security information for a given handle and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and\n// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor\n// result on the Go heap.\nfunc BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\tvar winHeapSDSize uint32\n\tvar firstAccessEntry *EXPLICIT_ACCESS\n\tif len(accessEntries) > 0 {\n\t\tfirstAccessEntry = &accessEntries[0]\n\t}\n\tvar firstAuditEntry *EXPLICIT_ACCESS\n\tif len(auditEntries) > 0 {\n\t\tfirstAuditEntry = &auditEntries[0]\n\t}\n\terr = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// NewSecurityDescriptor creates and initializes a new absolute security descriptor.\nfunc NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tabsoluteSD = &SECURITY_DESCRIPTOR{}\n\terr = initializeSecurityDescriptor(absoluteSD, 1)\n\treturn\n}\n\n// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL.\n// Both explicitEntries and mergedACL are optional and can be nil.\nfunc ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) {\n\tvar firstExplicitEntry *EXPLICIT_ACCESS\n\tif len(explicitEntries) > 0 {\n\t\tfirstExplicitEntry = &explicitEntries[0]\n\t}\n\tvar winHeapACL *ACL\n\terr = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapACL)))\n\taclBytes := make([]byte, winHeapACL.aclSize)\n\tcopy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)])\n\treturn (*ACL)(unsafe.Pointer(&aclBytes[0])), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/service.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tSC_MANAGER_CONNECT            = 1\n\tSC_MANAGER_CREATE_SERVICE     = 2\n\tSC_MANAGER_ENUMERATE_SERVICE  = 4\n\tSC_MANAGER_LOCK               = 8\n\tSC_MANAGER_QUERY_LOCK_STATUS  = 16\n\tSC_MANAGER_MODIFY_BOOT_CONFIG = 32\n\tSC_MANAGER_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\tSERVICE_KERNEL_DRIVER       = 1\n\tSERVICE_FILE_SYSTEM_DRIVER  = 2\n\tSERVICE_ADAPTER             = 4\n\tSERVICE_RECOGNIZER_DRIVER   = 8\n\tSERVICE_WIN32_OWN_PROCESS   = 16\n\tSERVICE_WIN32_SHARE_PROCESS = 32\n\tSERVICE_WIN32               = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS\n\tSERVICE_INTERACTIVE_PROCESS = 256\n\tSERVICE_DRIVER              = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER\n\tSERVICE_TYPE_ALL            = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS\n\n\tSERVICE_BOOT_START   = 0\n\tSERVICE_SYSTEM_START = 1\n\tSERVICE_AUTO_START   = 2\n\tSERVICE_DEMAND_START = 3\n\tSERVICE_DISABLED     = 4\n\n\tSERVICE_ERROR_IGNORE   = 0\n\tSERVICE_ERROR_NORMAL   = 1\n\tSERVICE_ERROR_SEVERE   = 2\n\tSERVICE_ERROR_CRITICAL = 3\n\n\tSC_STATUS_PROCESS_INFO = 0\n\n\tSC_ACTION_NONE        = 0\n\tSC_ACTION_RESTART     = 1\n\tSC_ACTION_REBOOT      = 2\n\tSC_ACTION_RUN_COMMAND = 3\n\n\tSERVICE_STOPPED          = 1\n\tSERVICE_START_PENDING    = 2\n\tSERVICE_STOP_PENDING     = 3\n\tSERVICE_RUNNING          = 4\n\tSERVICE_CONTINUE_PENDING = 5\n\tSERVICE_PAUSE_PENDING    = 6\n\tSERVICE_PAUSED           = 7\n\tSERVICE_NO_CHANGE        = 0xffffffff\n\n\tSERVICE_ACCEPT_STOP                  = 1\n\tSERVICE_ACCEPT_PAUSE_CONTINUE        = 2\n\tSERVICE_ACCEPT_SHUTDOWN              = 4\n\tSERVICE_ACCEPT_PARAMCHANGE           = 8\n\tSERVICE_ACCEPT_NETBINDCHANGE         = 16\n\tSERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32\n\tSERVICE_ACCEPT_POWEREVENT            = 64\n\tSERVICE_ACCEPT_SESSIONCHANGE         = 128\n\tSERVICE_ACCEPT_PRESHUTDOWN           = 256\n\n\tSERVICE_CONTROL_STOP                  = 1\n\tSERVICE_CONTROL_PAUSE                 = 2\n\tSERVICE_CONTROL_CONTINUE              = 3\n\tSERVICE_CONTROL_INTERROGATE           = 4\n\tSERVICE_CONTROL_SHUTDOWN              = 5\n\tSERVICE_CONTROL_PARAMCHANGE           = 6\n\tSERVICE_CONTROL_NETBINDADD            = 7\n\tSERVICE_CONTROL_NETBINDREMOVE         = 8\n\tSERVICE_CONTROL_NETBINDENABLE         = 9\n\tSERVICE_CONTROL_NETBINDDISABLE        = 10\n\tSERVICE_CONTROL_DEVICEEVENT           = 11\n\tSERVICE_CONTROL_HARDWAREPROFILECHANGE = 12\n\tSERVICE_CONTROL_POWEREVENT            = 13\n\tSERVICE_CONTROL_SESSIONCHANGE         = 14\n\tSERVICE_CONTROL_PRESHUTDOWN           = 15\n\n\tSERVICE_ACTIVE    = 1\n\tSERVICE_INACTIVE  = 2\n\tSERVICE_STATE_ALL = 3\n\n\tSERVICE_QUERY_CONFIG         = 1\n\tSERVICE_CHANGE_CONFIG        = 2\n\tSERVICE_QUERY_STATUS         = 4\n\tSERVICE_ENUMERATE_DEPENDENTS = 8\n\tSERVICE_START                = 16\n\tSERVICE_STOP                 = 32\n\tSERVICE_PAUSE_CONTINUE       = 64\n\tSERVICE_INTERROGATE          = 128\n\tSERVICE_USER_DEFINED_CONTROL = 256\n\tSERVICE_ALL_ACCESS           = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL\n\n\tSERVICE_RUNS_IN_SYSTEM_PROCESS = 1\n\n\tSERVICE_CONFIG_DESCRIPTION              = 1\n\tSERVICE_CONFIG_FAILURE_ACTIONS          = 2\n\tSERVICE_CONFIG_DELAYED_AUTO_START_INFO  = 3\n\tSERVICE_CONFIG_FAILURE_ACTIONS_FLAG     = 4\n\tSERVICE_CONFIG_SERVICE_SID_INFO         = 5\n\tSERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6\n\tSERVICE_CONFIG_PRESHUTDOWN_INFO         = 7\n\tSERVICE_CONFIG_TRIGGER_INFO             = 8\n\tSERVICE_CONFIG_PREFERRED_NODE           = 9\n\tSERVICE_CONFIG_LAUNCH_PROTECTED         = 12\n\n\tSERVICE_SID_TYPE_NONE         = 0\n\tSERVICE_SID_TYPE_UNRESTRICTED = 1\n\tSERVICE_SID_TYPE_RESTRICTED   = 2 | SERVICE_SID_TYPE_UNRESTRICTED\n\n\tSC_ENUM_PROCESS_INFO = 0\n\n\tSERVICE_NOTIFY_STATUS_CHANGE    = 2\n\tSERVICE_NOTIFY_STOPPED          = 0x00000001\n\tSERVICE_NOTIFY_START_PENDING    = 0x00000002\n\tSERVICE_NOTIFY_STOP_PENDING     = 0x00000004\n\tSERVICE_NOTIFY_RUNNING          = 0x00000008\n\tSERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010\n\tSERVICE_NOTIFY_PAUSE_PENDING    = 0x00000020\n\tSERVICE_NOTIFY_PAUSED           = 0x00000040\n\tSERVICE_NOTIFY_CREATED          = 0x00000080\n\tSERVICE_NOTIFY_DELETED          = 0x00000100\n\tSERVICE_NOTIFY_DELETE_PENDING   = 0x00000200\n\n\tSC_EVENT_DATABASE_CHANGE = 0\n\tSC_EVENT_PROPERTY_CHANGE = 1\n\tSC_EVENT_STATUS_CHANGE   = 2\n\n\tSERVICE_START_REASON_DEMAND             = 0x00000001\n\tSERVICE_START_REASON_AUTO               = 0x00000002\n\tSERVICE_START_REASON_TRIGGER            = 0x00000004\n\tSERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008\n\tSERVICE_START_REASON_DELAYEDAUTO        = 0x00000010\n\n\tSERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1\n)\n\ntype ENUM_SERVICE_STATUS struct {\n\tServiceName   *uint16\n\tDisplayName   *uint16\n\tServiceStatus SERVICE_STATUS\n}\n\ntype SERVICE_STATUS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n}\n\ntype SERVICE_TABLE_ENTRY struct {\n\tServiceName *uint16\n\tServiceProc uintptr\n}\n\ntype QUERY_SERVICE_CONFIG struct {\n\tServiceType      uint32\n\tStartType        uint32\n\tErrorControl     uint32\n\tBinaryPathName   *uint16\n\tLoadOrderGroup   *uint16\n\tTagId            uint32\n\tDependencies     *uint16\n\tServiceStartName *uint16\n\tDisplayName      *uint16\n}\n\ntype SERVICE_DESCRIPTION struct {\n\tDescription *uint16\n}\n\ntype SERVICE_DELAYED_AUTO_START_INFO struct {\n\tIsDelayedAutoStartUp uint32\n}\n\ntype SERVICE_STATUS_PROCESS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n\tProcessId               uint32\n\tServiceFlags            uint32\n}\n\ntype ENUM_SERVICE_STATUS_PROCESS struct {\n\tServiceName          *uint16\n\tDisplayName          *uint16\n\tServiceStatusProcess SERVICE_STATUS_PROCESS\n}\n\ntype SERVICE_NOTIFY struct {\n\tVersion               uint32\n\tNotifyCallback        uintptr\n\tContext               uintptr\n\tNotificationStatus    uint32\n\tServiceStatus         SERVICE_STATUS_PROCESS\n\tNotificationTriggered uint32\n\tServiceNames          *uint16\n}\n\ntype SERVICE_FAILURE_ACTIONS struct {\n\tResetPeriod  uint32\n\tRebootMsg    *uint16\n\tCommand      *uint16\n\tActionsCount uint32\n\tActions      *SC_ACTION\n}\n\ntype SERVICE_FAILURE_ACTIONS_FLAG struct {\n\tFailureActionsOnNonCrashFailures int32\n}\n\ntype SC_ACTION struct {\n\tType  uint32\n\tDelay uint32\n}\n\ntype QUERY_SERVICE_LOCK_STATUS struct {\n\tIsLocked     uint32\n\tLockOwner    *uint16\n\tLockDuration uint32\n}\n\n//sys\tOpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW\n//sys\tCloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle\n//sys\tCreateService(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\n//sys\tOpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW\n//sys\tDeleteService(service Handle) (err error) = advapi32.DeleteService\n//sys\tStartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW\n//sys\tQueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus\n//sys\tQueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW\n//sys\tControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService\n//sys\tStartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW\n//sys\tSetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus\n//sys\tChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW\n//sys\tQueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW\n//sys\tChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W\n//sys\tQueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W\n//sys\tEnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW\n//sys\tQueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx\n//sys\tNotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW\n//sys\tSubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications?\n//sys\tUnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications?\n//sys\tRegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW\n//sys\tQueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation?\n//sys\tEnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/setupapi_windows.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll,\n// core system functions for managing hardware devices, drivers, and the PnP tree.\n// Information about these APIs can be found at:\n//     https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi\n//     https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32-\n\nconst (\n\tERROR_EXPECTED_SECTION_NAME                  Errno = 0x20000000 | 0xC0000000 | 0\n\tERROR_BAD_SECTION_NAME_LINE                  Errno = 0x20000000 | 0xC0000000 | 1\n\tERROR_SECTION_NAME_TOO_LONG                  Errno = 0x20000000 | 0xC0000000 | 2\n\tERROR_GENERAL_SYNTAX                         Errno = 0x20000000 | 0xC0000000 | 3\n\tERROR_WRONG_INF_STYLE                        Errno = 0x20000000 | 0xC0000000 | 0x100\n\tERROR_SECTION_NOT_FOUND                      Errno = 0x20000000 | 0xC0000000 | 0x101\n\tERROR_LINE_NOT_FOUND                         Errno = 0x20000000 | 0xC0000000 | 0x102\n\tERROR_NO_BACKUP                              Errno = 0x20000000 | 0xC0000000 | 0x103\n\tERROR_NO_ASSOCIATED_CLASS                    Errno = 0x20000000 | 0xC0000000 | 0x200\n\tERROR_CLASS_MISMATCH                         Errno = 0x20000000 | 0xC0000000 | 0x201\n\tERROR_DUPLICATE_FOUND                        Errno = 0x20000000 | 0xC0000000 | 0x202\n\tERROR_NO_DRIVER_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x203\n\tERROR_KEY_DOES_NOT_EXIST                     Errno = 0x20000000 | 0xC0000000 | 0x204\n\tERROR_INVALID_DEVINST_NAME                   Errno = 0x20000000 | 0xC0000000 | 0x205\n\tERROR_INVALID_CLASS                          Errno = 0x20000000 | 0xC0000000 | 0x206\n\tERROR_DEVINST_ALREADY_EXISTS                 Errno = 0x20000000 | 0xC0000000 | 0x207\n\tERROR_DEVINFO_NOT_REGISTERED                 Errno = 0x20000000 | 0xC0000000 | 0x208\n\tERROR_INVALID_REG_PROPERTY                   Errno = 0x20000000 | 0xC0000000 | 0x209\n\tERROR_NO_INF                                 Errno = 0x20000000 | 0xC0000000 | 0x20A\n\tERROR_NO_SUCH_DEVINST                        Errno = 0x20000000 | 0xC0000000 | 0x20B\n\tERROR_CANT_LOAD_CLASS_ICON                   Errno = 0x20000000 | 0xC0000000 | 0x20C\n\tERROR_INVALID_CLASS_INSTALLER                Errno = 0x20000000 | 0xC0000000 | 0x20D\n\tERROR_DI_DO_DEFAULT                          Errno = 0x20000000 | 0xC0000000 | 0x20E\n\tERROR_DI_NOFILECOPY                          Errno = 0x20000000 | 0xC0000000 | 0x20F\n\tERROR_INVALID_HWPROFILE                      Errno = 0x20000000 | 0xC0000000 | 0x210\n\tERROR_NO_DEVICE_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x211\n\tERROR_DEVINFO_LIST_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x212\n\tERROR_DEVINFO_DATA_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x213\n\tERROR_DI_BAD_PATH                            Errno = 0x20000000 | 0xC0000000 | 0x214\n\tERROR_NO_CLASSINSTALL_PARAMS                 Errno = 0x20000000 | 0xC0000000 | 0x215\n\tERROR_FILEQUEUE_LOCKED                       Errno = 0x20000000 | 0xC0000000 | 0x216\n\tERROR_BAD_SERVICE_INSTALLSECT                Errno = 0x20000000 | 0xC0000000 | 0x217\n\tERROR_NO_CLASS_DRIVER_LIST                   Errno = 0x20000000 | 0xC0000000 | 0x218\n\tERROR_NO_ASSOCIATED_SERVICE                  Errno = 0x20000000 | 0xC0000000 | 0x219\n\tERROR_NO_DEFAULT_DEVICE_INTERFACE            Errno = 0x20000000 | 0xC0000000 | 0x21A\n\tERROR_DEVICE_INTERFACE_ACTIVE                Errno = 0x20000000 | 0xC0000000 | 0x21B\n\tERROR_DEVICE_INTERFACE_REMOVED               Errno = 0x20000000 | 0xC0000000 | 0x21C\n\tERROR_BAD_INTERFACE_INSTALLSECT              Errno = 0x20000000 | 0xC0000000 | 0x21D\n\tERROR_NO_SUCH_INTERFACE_CLASS                Errno = 0x20000000 | 0xC0000000 | 0x21E\n\tERROR_INVALID_REFERENCE_STRING               Errno = 0x20000000 | 0xC0000000 | 0x21F\n\tERROR_INVALID_MACHINENAME                    Errno = 0x20000000 | 0xC0000000 | 0x220\n\tERROR_REMOTE_COMM_FAILURE                    Errno = 0x20000000 | 0xC0000000 | 0x221\n\tERROR_MACHINE_UNAVAILABLE                    Errno = 0x20000000 | 0xC0000000 | 0x222\n\tERROR_NO_CONFIGMGR_SERVICES                  Errno = 0x20000000 | 0xC0000000 | 0x223\n\tERROR_INVALID_PROPPAGE_PROVIDER              Errno = 0x20000000 | 0xC0000000 | 0x224\n\tERROR_NO_SUCH_DEVICE_INTERFACE               Errno = 0x20000000 | 0xC0000000 | 0x225\n\tERROR_DI_POSTPROCESSING_REQUIRED             Errno = 0x20000000 | 0xC0000000 | 0x226\n\tERROR_INVALID_COINSTALLER                    Errno = 0x20000000 | 0xC0000000 | 0x227\n\tERROR_NO_COMPAT_DRIVERS                      Errno = 0x20000000 | 0xC0000000 | 0x228\n\tERROR_NO_DEVICE_ICON                         Errno = 0x20000000 | 0xC0000000 | 0x229\n\tERROR_INVALID_INF_LOGCONFIG                  Errno = 0x20000000 | 0xC0000000 | 0x22A\n\tERROR_DI_DONT_INSTALL                        Errno = 0x20000000 | 0xC0000000 | 0x22B\n\tERROR_INVALID_FILTER_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22C\n\tERROR_NON_WINDOWS_NT_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22D\n\tERROR_NON_WINDOWS_DRIVER                     Errno = 0x20000000 | 0xC0000000 | 0x22E\n\tERROR_NO_CATALOG_FOR_OEM_INF                 Errno = 0x20000000 | 0xC0000000 | 0x22F\n\tERROR_DEVINSTALL_QUEUE_NONNATIVE             Errno = 0x20000000 | 0xC0000000 | 0x230\n\tERROR_NOT_DISABLEABLE                        Errno = 0x20000000 | 0xC0000000 | 0x231\n\tERROR_CANT_REMOVE_DEVINST                    Errno = 0x20000000 | 0xC0000000 | 0x232\n\tERROR_INVALID_TARGET                         Errno = 0x20000000 | 0xC0000000 | 0x233\n\tERROR_DRIVER_NONNATIVE                       Errno = 0x20000000 | 0xC0000000 | 0x234\n\tERROR_IN_WOW64                               Errno = 0x20000000 | 0xC0000000 | 0x235\n\tERROR_SET_SYSTEM_RESTORE_POINT               Errno = 0x20000000 | 0xC0000000 | 0x236\n\tERROR_SCE_DISABLED                           Errno = 0x20000000 | 0xC0000000 | 0x238\n\tERROR_UNKNOWN_EXCEPTION                      Errno = 0x20000000 | 0xC0000000 | 0x239\n\tERROR_PNP_REGISTRY_ERROR                     Errno = 0x20000000 | 0xC0000000 | 0x23A\n\tERROR_REMOTE_REQUEST_UNSUPPORTED             Errno = 0x20000000 | 0xC0000000 | 0x23B\n\tERROR_NOT_AN_INSTALLED_OEM_INF               Errno = 0x20000000 | 0xC0000000 | 0x23C\n\tERROR_INF_IN_USE_BY_DEVICES                  Errno = 0x20000000 | 0xC0000000 | 0x23D\n\tERROR_DI_FUNCTION_OBSOLETE                   Errno = 0x20000000 | 0xC0000000 | 0x23E\n\tERROR_NO_AUTHENTICODE_CATALOG                Errno = 0x20000000 | 0xC0000000 | 0x23F\n\tERROR_AUTHENTICODE_DISALLOWED                Errno = 0x20000000 | 0xC0000000 | 0x240\n\tERROR_AUTHENTICODE_TRUSTED_PUBLISHER         Errno = 0x20000000 | 0xC0000000 | 0x241\n\tERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED     Errno = 0x20000000 | 0xC0000000 | 0x242\n\tERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED     Errno = 0x20000000 | 0xC0000000 | 0x243\n\tERROR_SIGNATURE_OSATTRIBUTE_MISMATCH         Errno = 0x20000000 | 0xC0000000 | 0x244\n\tERROR_ONLY_VALIDATE_VIA_AUTHENTICODE         Errno = 0x20000000 | 0xC0000000 | 0x245\n\tERROR_DEVICE_INSTALLER_NOT_READY             Errno = 0x20000000 | 0xC0000000 | 0x246\n\tERROR_DRIVER_STORE_ADD_FAILED                Errno = 0x20000000 | 0xC0000000 | 0x247\n\tERROR_DEVICE_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x248\n\tERROR_DRIVER_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x249\n\tERROR_WRONG_INF_TYPE                         Errno = 0x20000000 | 0xC0000000 | 0x24A\n\tERROR_FILE_HASH_NOT_IN_CATALOG               Errno = 0x20000000 | 0xC0000000 | 0x24B\n\tERROR_DRIVER_STORE_DELETE_FAILED             Errno = 0x20000000 | 0xC0000000 | 0x24C\n\tERROR_UNRECOVERABLE_STACK_OVERFLOW           Errno = 0x20000000 | 0xC0000000 | 0x300\n\tEXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW\n\tERROR_NO_DEFAULT_INTERFACE_DEVICE            Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE\n\tERROR_INTERFACE_DEVICE_ACTIVE                Errno = ERROR_DEVICE_INTERFACE_ACTIVE\n\tERROR_INTERFACE_DEVICE_REMOVED               Errno = ERROR_DEVICE_INTERFACE_REMOVED\n\tERROR_NO_SUCH_INTERFACE_DEVICE               Errno = ERROR_NO_SUCH_DEVICE_INTERFACE\n)\n\nconst (\n\tMAX_DEVICE_ID_LEN   = 200\n\tMAX_DEVNODE_ID_LEN  = MAX_DEVICE_ID_LEN\n\tMAX_GUID_STRING_LEN = 39 // 38 chars + terminator null\n\tMAX_CLASS_NAME_LEN  = 32\n\tMAX_PROFILE_LEN     = 80\n\tMAX_CONFIG_VALUE    = 9999\n\tMAX_INSTANCE_VALUE  = 9999\n\tCONFIGMG_VERSION    = 0x0400\n)\n\n// Maximum string length constants\nconst (\n\tLINE_LEN                    = 256  // Windows 9x-compatible maximum for displayable strings coming from a device INF.\n\tMAX_INF_STRING_LENGTH       = 4096 // Actual maximum size of an INF string (including string substitutions).\n\tMAX_INF_SECTION_NAME_LENGTH = 255  // For Windows 9x compatibility, INF section names should be constrained to 32 characters.\n\tMAX_TITLE_LEN               = 60\n\tMAX_INSTRUCTION_LEN         = 256\n\tMAX_LABEL_LEN               = 30\n\tMAX_SERVICE_NAME_LEN        = 256\n\tMAX_SUBTITLE_LEN            = 256\n)\n\nconst (\n\t// SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., \"\\\\\\\\MachineName\\0\").\n\tSP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3\n)\n\n// HSPFILEQ is type for setup file queue\ntype HSPFILEQ uintptr\n\n// DevInfo holds reference to device information set\ntype DevInfo Handle\n\n// DEVINST is a handle usually recognized by cfgmgr32 APIs\ntype DEVINST uint32\n\n// DevInfoData is a device information structure (references a device instance that is a member of a device information set)\ntype DevInfoData struct {\n\tsize      uint32\n\tClassGUID GUID\n\tDevInst   DEVINST\n\t_         uintptr\n}\n\n// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass).\ntype DevInfoListDetailData struct {\n\tsize                uint32 // Use unsafeSizeOf method\n\tClassGUID           GUID\n\tRemoteMachineHandle Handle\n\tremoteMachineName   [SP_MAX_MACHINENAME_LENGTH]uint16\n}\n\nfunc (*DevInfoListDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName))\n\t}\n\treturn uint32(unsafe.Sizeof(DevInfoListDetailData{}))\n}\n\nfunc (data *DevInfoListDetailData) RemoteMachineName() string {\n\treturn UTF16ToString(data.remoteMachineName[:])\n}\n\nfunc (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error {\n\tstr, err := UTF16FromString(remoteMachineName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.remoteMachineName[:], str)\n\treturn nil\n}\n\n// DI_FUNCTION is function type for device installer\ntype DI_FUNCTION uint32\n\nconst (\n\tDIF_SELECTDEVICE                   DI_FUNCTION = 0x00000001\n\tDIF_INSTALLDEVICE                  DI_FUNCTION = 0x00000002\n\tDIF_ASSIGNRESOURCES                DI_FUNCTION = 0x00000003\n\tDIF_PROPERTIES                     DI_FUNCTION = 0x00000004\n\tDIF_REMOVE                         DI_FUNCTION = 0x00000005\n\tDIF_FIRSTTIMESETUP                 DI_FUNCTION = 0x00000006\n\tDIF_FOUNDDEVICE                    DI_FUNCTION = 0x00000007\n\tDIF_SELECTCLASSDRIVERS             DI_FUNCTION = 0x00000008\n\tDIF_VALIDATECLASSDRIVERS           DI_FUNCTION = 0x00000009\n\tDIF_INSTALLCLASSDRIVERS            DI_FUNCTION = 0x0000000A\n\tDIF_CALCDISKSPACE                  DI_FUNCTION = 0x0000000B\n\tDIF_DESTROYPRIVATEDATA             DI_FUNCTION = 0x0000000C\n\tDIF_VALIDATEDRIVER                 DI_FUNCTION = 0x0000000D\n\tDIF_DETECT                         DI_FUNCTION = 0x0000000F\n\tDIF_INSTALLWIZARD                  DI_FUNCTION = 0x00000010\n\tDIF_DESTROYWIZARDDATA              DI_FUNCTION = 0x00000011\n\tDIF_PROPERTYCHANGE                 DI_FUNCTION = 0x00000012\n\tDIF_ENABLECLASS                    DI_FUNCTION = 0x00000013\n\tDIF_DETECTVERIFY                   DI_FUNCTION = 0x00000014\n\tDIF_INSTALLDEVICEFILES             DI_FUNCTION = 0x00000015\n\tDIF_UNREMOVE                       DI_FUNCTION = 0x00000016\n\tDIF_SELECTBESTCOMPATDRV            DI_FUNCTION = 0x00000017\n\tDIF_ALLOW_INSTALL                  DI_FUNCTION = 0x00000018\n\tDIF_REGISTERDEVICE                 DI_FUNCTION = 0x00000019\n\tDIF_NEWDEVICEWIZARD_PRESELECT      DI_FUNCTION = 0x0000001A\n\tDIF_NEWDEVICEWIZARD_SELECT         DI_FUNCTION = 0x0000001B\n\tDIF_NEWDEVICEWIZARD_PREANALYZE     DI_FUNCTION = 0x0000001C\n\tDIF_NEWDEVICEWIZARD_POSTANALYZE    DI_FUNCTION = 0x0000001D\n\tDIF_NEWDEVICEWIZARD_FINISHINSTALL  DI_FUNCTION = 0x0000001E\n\tDIF_INSTALLINTERFACES              DI_FUNCTION = 0x00000020\n\tDIF_DETECTCANCEL                   DI_FUNCTION = 0x00000021\n\tDIF_REGISTER_COINSTALLERS          DI_FUNCTION = 0x00000022\n\tDIF_ADDPROPERTYPAGE_ADVANCED       DI_FUNCTION = 0x00000023\n\tDIF_ADDPROPERTYPAGE_BASIC          DI_FUNCTION = 0x00000024\n\tDIF_TROUBLESHOOTER                 DI_FUNCTION = 0x00000026\n\tDIF_POWERMESSAGEWAKE               DI_FUNCTION = 0x00000027\n\tDIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028\n\tDIF_UPDATEDRIVER_UI                DI_FUNCTION = 0x00000029\n\tDIF_FINISHINSTALL_ACTION           DI_FUNCTION = 0x0000002A\n)\n\n// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set)\ntype DevInstallParams struct {\n\tsize                     uint32\n\tFlags                    DI_FLAGS\n\tFlagsEx                  DI_FLAGSEX\n\thwndParent               uintptr\n\tInstallMsgHandler        uintptr\n\tInstallMsgHandlerContext uintptr\n\tFileQueue                HSPFILEQ\n\t_                        uintptr\n\t_                        uint32\n\tdriverPath               [MAX_PATH]uint16\n}\n\nfunc (params *DevInstallParams) DriverPath() string {\n\treturn UTF16ToString(params.driverPath[:])\n}\n\nfunc (params *DevInstallParams) SetDriverPath(driverPath string) error {\n\tstr, err := UTF16FromString(driverPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(params.driverPath[:], str)\n\treturn nil\n}\n\n// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values\ntype DI_FLAGS uint32\n\nconst (\n\t// Flags for choosing a device\n\tDI_SHOWOEM       DI_FLAGS = 0x00000001 // support Other... button\n\tDI_SHOWCOMPAT    DI_FLAGS = 0x00000002 // show compatibility list\n\tDI_SHOWCLASS     DI_FLAGS = 0x00000004 // show class list\n\tDI_SHOWALL       DI_FLAGS = 0x00000007 // both class & compat list shown\n\tDI_NOVCP         DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue\n\tDI_DIDCOMPAT     DI_FLAGS = 0x00000010 // Searched for compatible devices\n\tDI_DIDCLASS      DI_FLAGS = 0x00000020 // Searched for class devices\n\tDI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible\n\n\t// Flags returned by DiInstallDevice to indicate need to reboot/restart\n\tDI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect\n\tDI_NEEDREBOOT  DI_FLAGS = 0x00000100 // \"\"\n\n\t// Flags for device installation\n\tDI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk\n\n\t// Flags set by DiBuildDriverInfoList\n\tDI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list\n\n\t// Flag indicates that device is disabled\n\tDI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled\n\n\t// Flags for Device/Class Properties\n\tDI_GENERALPAGE_ADDED  DI_FLAGS = 0x00001000\n\tDI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000\n\n\t// Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated.\n\tDI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000\n\n\t// Flag to indicate that the sorting from the INF file should be used.\n\tDI_INF_IS_SORTED DI_FLAGS = 0x00008000\n\n\t// Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched.\n\tDI_ENUMSINGLEINF DI_FLAGS = 0x00010000\n\n\t// Flag that prevents ConfigMgr from removing/re-enumerating devices during device\n\t// registration, installation, and deletion.\n\tDI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000\n\n\t// The following flag can be used to install a device disabled\n\tDI_INSTALLDISABLED DI_FLAGS = 0x00040000\n\n\t// Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver\n\t// list from its existing class driver list, instead of the normal INF search.\n\tDI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000\n\n\t// This flag is set if the Class Install params should be used.\n\tDI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000\n\n\t// This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT.\n\tDI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000\n\n\t// Flags for device installation\n\tDI_QUIETINSTALL        DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info\n\tDI_NOFILECOPY          DI_FLAGS = 0x01000000 // No file Copy necessary\n\tDI_FORCECOPY           DI_FLAGS = 0x02000000 // Force files to be copied from install path\n\tDI_DRIVERPAGE_ADDED    DI_FLAGS = 0x04000000 // Prop provider added Driver page.\n\tDI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg\n\tDI_OVERRIDE_INFFLAGS   DI_FLAGS = 0x10000000 // Override INF flags\n\tDI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props\n\n\tDI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs\n\n\tDI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install\n)\n\n// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values\ntype DI_FLAGSEX uint32\n\nconst (\n\tDI_FLAGSEX_CI_FAILED                DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer\n\tDI_FLAGSEX_FINISHINSTALL_ACTION     DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context.\n\tDI_FLAGSEX_DIDINFOLIST              DI_FLAGSEX = 0x00000010 // Did the Class Info List\n\tDI_FLAGSEX_DIDCOMPATINFO            DI_FLAGSEX = 0x00000020 // Did the Compat Info List\n\tDI_FLAGSEX_FILTERCLASSES            DI_FLAGSEX = 0x00000040\n\tDI_FLAGSEX_SETFAILEDINSTALL         DI_FLAGSEX = 0x00000080\n\tDI_FLAGSEX_DEVICECHANGE             DI_FLAGSEX = 0x00000100\n\tDI_FLAGSEX_ALWAYSWRITEIDS           DI_FLAGSEX = 0x00000200\n\tDI_FLAGSEX_PROPCHANGE_PENDING       DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur.\n\tDI_FLAGSEX_ALLOWEXCLUDEDDRVS        DI_FLAGSEX = 0x00000800\n\tDI_FLAGSEX_NOUIONQUERYREMOVE        DI_FLAGSEX = 0x00001000\n\tDI_FLAGSEX_USECLASSFORCOMPAT        DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.)\n\tDI_FLAGSEX_NO_DRVREG_MODIFY         DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key.\n\tDI_FLAGSEX_IN_SYSTEM_SETUP          DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup.\n\tDI_FLAGSEX_INET_DRIVER              DI_FLAGSEX = 0x00020000 // Driver came from Windows Update\n\tDI_FLAGSEX_APPENDDRIVERLIST         DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list.\n\tDI_FLAGSEX_PREINSTALLBACKUP         DI_FLAGSEX = 0x00080000 // not used\n\tDI_FLAGSEX_BACKUPONREPLACE          DI_FLAGSEX = 0x00100000 // not used\n\tDI_FLAGSEX_DRIVERLIST_FROM_URL      DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website)\n\tDI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later.\n\tDI_FLAGSEX_POWERPAGE_ADDED          DI_FLAGSEX = 0x01000000 // class installer added their own power page\n\tDI_FLAGSEX_FILTERSIMILARDRIVERS     DI_FLAGSEX = 0x02000000 // only include similar drivers in class list\n\tDI_FLAGSEX_INSTALLEDDRIVER          DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list.  Used in calls to SetupDiBuildDriverInfoList\n\tDI_FLAGSEX_NO_CLASSLIST_NODE_MERGE  DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list\n\tDI_FLAGSEX_ALTPLATFORM_DRVSEARCH    DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue\n\tDI_FLAGSEX_RESTART_DEVICE_ONLY      DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers.\n\tDI_FLAGSEX_RECURSIVESEARCH          DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search\n\tDI_FLAGSEX_SEARCH_PUBLISHED_INFS    DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a \"published INF\" search\n)\n\n// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure.\ntype ClassInstallHeader struct {\n\tsize            uint32\n\tInstallFunction DI_FUNCTION\n}\n\nfunc MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader {\n\thdr := &ClassInstallHeader{InstallFunction: installFunction}\n\thdr.size = uint32(unsafe.Sizeof(*hdr))\n\treturn hdr\n}\n\n// DICS_STATE specifies values indicating a change in a device's state\ntype DICS_STATE uint32\n\nconst (\n\tDICS_ENABLE     DICS_STATE = 0x00000001 // The device is being enabled.\n\tDICS_DISABLE    DICS_STATE = 0x00000002 // The device is being disabled.\n\tDICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed.\n\tDICS_START      DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile).\n\tDICS_STOP       DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device.\n)\n\n// DICS_FLAG specifies the scope of a device property change\ntype DICS_FLAG uint32\n\nconst (\n\tDICS_FLAG_GLOBAL         DICS_FLAG = 0x00000001 // make change in all hardware profiles\n\tDICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only\n\tDICS_FLAG_CONFIGGENERAL  DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete)\n)\n\n// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function.\ntype PropChangeParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tStateChange        DICS_STATE\n\tScope              DICS_FLAG\n\tHwProfile          uint32\n}\n\n// DI_REMOVEDEVICE specifies the scope of the device removal\ntype DI_REMOVEDEVICE uint32\n\nconst (\n\tDI_REMOVEDEVICE_GLOBAL         DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry.\n\tDI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal.\n)\n\n// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function.\ntype RemoveDeviceParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tScope              DI_REMOVEDEVICE\n\tHwProfile          uint32\n}\n\n// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set)\ntype DrvInfoData struct {\n\tsize          uint32\n\tDriverType    uint32\n\t_             uintptr\n\tdescription   [LINE_LEN]uint16\n\tmfgName       [LINE_LEN]uint16\n\tproviderName  [LINE_LEN]uint16\n\tDriverDate    Filetime\n\tDriverVersion uint64\n}\n\nfunc (data *DrvInfoData) Description() string {\n\treturn UTF16ToString(data.description[:])\n}\n\nfunc (data *DrvInfoData) SetDescription(description string) error {\n\tstr, err := UTF16FromString(description)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.description[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) MfgName() string {\n\treturn UTF16ToString(data.mfgName[:])\n}\n\nfunc (data *DrvInfoData) SetMfgName(mfgName string) error {\n\tstr, err := UTF16FromString(mfgName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.mfgName[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) ProviderName() string {\n\treturn UTF16ToString(data.providerName[:])\n}\n\nfunc (data *DrvInfoData) SetProviderName(providerName string) error {\n\tstr, err := UTF16FromString(providerName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.providerName[:], str)\n\treturn nil\n}\n\n// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters.\nfunc (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool {\n\tif data.DriverDate.HighDateTime > driverDate.HighDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.HighDateTime < driverDate.HighDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverDate.LowDateTime > driverDate.LowDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.LowDateTime < driverDate.LowDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverVersion > driverVersion {\n\t\treturn true\n\t}\n\tif data.DriverVersion < driverVersion {\n\t\treturn false\n\t}\n\n\treturn false\n}\n\n// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure)\ntype DrvInfoDetailData struct {\n\tsize            uint32 // Use unsafeSizeOf method\n\tInfDate         Filetime\n\tcompatIDsOffset uint32\n\tcompatIDsLength uint32\n\t_               uintptr\n\tsectionName     [LINE_LEN]uint16\n\tinfFileName     [MAX_PATH]uint16\n\tdrvDescription  [LINE_LEN]uint16\n\thardwareID      [1]uint16\n}\n\nfunc (*DrvInfoDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID))\n\t}\n\treturn uint32(unsafe.Sizeof(DrvInfoDetailData{}))\n}\n\nfunc (data *DrvInfoDetailData) SectionName() string {\n\treturn UTF16ToString(data.sectionName[:])\n}\n\nfunc (data *DrvInfoDetailData) InfFileName() string {\n\treturn UTF16ToString(data.infFileName[:])\n}\n\nfunc (data *DrvInfoDetailData) DrvDescription() string {\n\treturn UTF16ToString(data.drvDescription[:])\n}\n\nfunc (data *DrvInfoDetailData) HardwareID() string {\n\tif data.compatIDsOffset > 1 {\n\t\tbufW := data.getBuf()\n\t\treturn UTF16ToString(bufW[:wcslen(bufW)])\n\t}\n\n\treturn \"\"\n}\n\nfunc (data *DrvInfoDetailData) CompatIDs() []string {\n\ta := make([]string, 0)\n\n\tif data.compatIDsLength > 0 {\n\t\tbufW := data.getBuf()\n\t\tbufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength]\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t}\n\n\treturn a\n}\n\nfunc (data *DrvInfoDetailData) getBuf() []uint16 {\n\tlen := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{&data.hardwareID[0], int(len), int(len)}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list.\nfunc (data *DrvInfoDetailData) IsCompatible(hwid string) bool {\n\thwidLC := strings.ToLower(hwid)\n\tif strings.ToLower(data.HardwareID()) == hwidLC {\n\t\treturn true\n\t}\n\ta := data.CompatIDs()\n\tfor i := range a {\n\t\tif strings.ToLower(a[i]) == hwidLC {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// DICD flags control SetupDiCreateDeviceInfo\ntype DICD uint32\n\nconst (\n\tDICD_GENERATE_ID       DICD = 0x00000001\n\tDICD_INHERIT_CLASSDRVS DICD = 0x00000002\n)\n\n// SUOI flags control SetupUninstallOEMInf\ntype SUOI uint32\n\nconst (\n\tSUOI_FORCEDELETE SUOI = 0x0001\n)\n\n// SPDIT flags to distinguish between class drivers and\n// device drivers. (Passed in 'DriverType' parameter of\n// driver information list APIs)\ntype SPDIT uint32\n\nconst (\n\tSPDIT_NODRIVER     SPDIT = 0x00000000\n\tSPDIT_CLASSDRIVER  SPDIT = 0x00000001\n\tSPDIT_COMPATDRIVER SPDIT = 0x00000002\n)\n\n// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs\ntype DIGCF uint32\n\nconst (\n\tDIGCF_DEFAULT         DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE\n\tDIGCF_PRESENT         DIGCF = 0x00000002\n\tDIGCF_ALLCLASSES      DIGCF = 0x00000004\n\tDIGCF_PROFILE         DIGCF = 0x00000008\n\tDIGCF_DEVICEINTERFACE DIGCF = 0x00000010\n)\n\n// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey.\ntype DIREG uint32\n\nconst (\n\tDIREG_DEV  DIREG = 0x00000001 // Open/Create/Delete device key\n\tDIREG_DRV  DIREG = 0x00000002 // Open/Create/Delete driver key\n\tDIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key\n)\n\n// SPDRP specifies device registry property codes\n// (Codes marked as read-only (R) may only be used for\n// SetupDiGetDeviceRegistryProperty)\n//\n// These values should cover the same set of registry properties\n// as defined by the CM_DRP codes in cfgmgr32.h.\n//\n// Note that SPDRP codes are zero based while CM_DRP codes are one based!\ntype SPDRP uint32\n\nconst (\n\tSPDRP_DEVICEDESC                  SPDRP = 0x00000000 // DeviceDesc (R/W)\n\tSPDRP_HARDWAREID                  SPDRP = 0x00000001 // HardwareID (R/W)\n\tSPDRP_COMPATIBLEIDS               SPDRP = 0x00000002 // CompatibleIDs (R/W)\n\tSPDRP_SERVICE                     SPDRP = 0x00000004 // Service (R/W)\n\tSPDRP_CLASS                       SPDRP = 0x00000007 // Class (R--tied to ClassGUID)\n\tSPDRP_CLASSGUID                   SPDRP = 0x00000008 // ClassGUID (R/W)\n\tSPDRP_DRIVER                      SPDRP = 0x00000009 // Driver (R/W)\n\tSPDRP_CONFIGFLAGS                 SPDRP = 0x0000000A // ConfigFlags (R/W)\n\tSPDRP_MFG                         SPDRP = 0x0000000B // Mfg (R/W)\n\tSPDRP_FRIENDLYNAME                SPDRP = 0x0000000C // FriendlyName (R/W)\n\tSPDRP_LOCATION_INFORMATION        SPDRP = 0x0000000D // LocationInformation (R/W)\n\tSPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R)\n\tSPDRP_CAPABILITIES                SPDRP = 0x0000000F // Capabilities (R)\n\tSPDRP_UI_NUMBER                   SPDRP = 0x00000010 // UiNumber (R)\n\tSPDRP_UPPERFILTERS                SPDRP = 0x00000011 // UpperFilters (R/W)\n\tSPDRP_LOWERFILTERS                SPDRP = 0x00000012 // LowerFilters (R/W)\n\tSPDRP_BUSTYPEGUID                 SPDRP = 0x00000013 // BusTypeGUID (R)\n\tSPDRP_LEGACYBUSTYPE               SPDRP = 0x00000014 // LegacyBusType (R)\n\tSPDRP_BUSNUMBER                   SPDRP = 0x00000015 // BusNumber (R)\n\tSPDRP_ENUMERATOR_NAME             SPDRP = 0x00000016 // Enumerator Name (R)\n\tSPDRP_SECURITY                    SPDRP = 0x00000017 // Security (R/W, binary form)\n\tSPDRP_SECURITY_SDS                SPDRP = 0x00000018 // Security (W, SDS form)\n\tSPDRP_DEVTYPE                     SPDRP = 0x00000019 // Device Type (R/W)\n\tSPDRP_EXCLUSIVE                   SPDRP = 0x0000001A // Device is exclusive-access (R/W)\n\tSPDRP_CHARACTERISTICS             SPDRP = 0x0000001B // Device Characteristics (R/W)\n\tSPDRP_ADDRESS                     SPDRP = 0x0000001C // Device Address (R)\n\tSPDRP_UI_NUMBER_DESC_FORMAT       SPDRP = 0x0000001D // UiNumberDescFormat (R/W)\n\tSPDRP_DEVICE_POWER_DATA           SPDRP = 0x0000001E // Device Power Data (R)\n\tSPDRP_REMOVAL_POLICY              SPDRP = 0x0000001F // Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_HW_DEFAULT   SPDRP = 0x00000020 // Hardware Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_OVERRIDE     SPDRP = 0x00000021 // Removal Policy Override (RW)\n\tSPDRP_INSTALL_STATE               SPDRP = 0x00000022 // Device Install State (R)\n\tSPDRP_LOCATION_PATHS              SPDRP = 0x00000023 // Device Location Paths (R)\n\tSPDRP_BASE_CONTAINERID            SPDRP = 0x00000024 // Base ContainerID (R)\n\n\tSPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals\n)\n\n// DEVPROPTYPE represents the property-data-type identifier that specifies the\n// data type of a device property value in the unified device property model.\ntype DEVPROPTYPE uint32\n\nconst (\n\tDEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000\n\tDEVPROP_TYPEMOD_LIST  DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_TYPE_EMPTY                      DEVPROPTYPE = 0x00000000\n\tDEVPROP_TYPE_NULL                       DEVPROPTYPE = 0x00000001\n\tDEVPROP_TYPE_SBYTE                      DEVPROPTYPE = 0x00000002\n\tDEVPROP_TYPE_BYTE                       DEVPROPTYPE = 0x00000003\n\tDEVPROP_TYPE_INT16                      DEVPROPTYPE = 0x00000004\n\tDEVPROP_TYPE_UINT16                     DEVPROPTYPE = 0x00000005\n\tDEVPROP_TYPE_INT32                      DEVPROPTYPE = 0x00000006\n\tDEVPROP_TYPE_UINT32                     DEVPROPTYPE = 0x00000007\n\tDEVPROP_TYPE_INT64                      DEVPROPTYPE = 0x00000008\n\tDEVPROP_TYPE_UINT64                     DEVPROPTYPE = 0x00000009\n\tDEVPROP_TYPE_FLOAT                      DEVPROPTYPE = 0x0000000A\n\tDEVPROP_TYPE_DOUBLE                     DEVPROPTYPE = 0x0000000B\n\tDEVPROP_TYPE_DECIMAL                    DEVPROPTYPE = 0x0000000C\n\tDEVPROP_TYPE_GUID                       DEVPROPTYPE = 0x0000000D\n\tDEVPROP_TYPE_CURRENCY                   DEVPROPTYPE = 0x0000000E\n\tDEVPROP_TYPE_DATE                       DEVPROPTYPE = 0x0000000F\n\tDEVPROP_TYPE_FILETIME                   DEVPROPTYPE = 0x00000010\n\tDEVPROP_TYPE_BOOLEAN                    DEVPROPTYPE = 0x00000011\n\tDEVPROP_TYPE_STRING                     DEVPROPTYPE = 0x00000012\n\tDEVPROP_TYPE_STRING_LIST                DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR        DEVPROPTYPE = 0x00000013\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014\n\tDEVPROP_TYPE_DEVPROPKEY                 DEVPROPTYPE = 0x00000015\n\tDEVPROP_TYPE_DEVPROPTYPE                DEVPROPTYPE = 0x00000016\n\tDEVPROP_TYPE_BINARY                     DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY\n\tDEVPROP_TYPE_ERROR                      DEVPROPTYPE = 0x00000017\n\tDEVPROP_TYPE_NTSTATUS                   DEVPROPTYPE = 0x00000018\n\tDEVPROP_TYPE_STRING_INDIRECT            DEVPROPTYPE = 0x00000019\n\n\tMAX_DEVPROP_TYPE    DEVPROPTYPE = 0x00000019\n\tMAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_MASK_TYPE    DEVPROPTYPE = 0x00000FFF\n\tDEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000\n)\n\n// DEVPROPGUID specifies a property category.\ntype DEVPROPGUID GUID\n\n// DEVPROPID uniquely identifies the property within the property category.\ntype DEVPROPID uint32\n\nconst DEVPROPID_FIRST_USABLE DEVPROPID = 2\n\n// DEVPROPKEY represents a device property key for a device property in the\n// unified device property model.\ntype DEVPROPKEY struct {\n\tFmtID DEVPROPGUID\n\tPID   DEVPROPID\n}\n\n// CONFIGRET is a return value or error code from cfgmgr32 APIs\ntype CONFIGRET uint32\n\nfunc (ret CONFIGRET) Error() string {\n\tif win32Error, ok := ret.Unwrap().(Errno); ok {\n\t\treturn fmt.Sprintf(\"%s (CfgMgr error: 0x%08x)\", win32Error.Error(), uint32(ret))\n\t}\n\treturn fmt.Sprintf(\"CfgMgr error: 0x%08x\", uint32(ret))\n}\n\nfunc (ret CONFIGRET) Win32Error(defaultError Errno) Errno {\n\treturn cm_MapCrToWin32Err(ret, defaultError)\n}\n\nfunc (ret CONFIGRET) Unwrap() error {\n\tconst noMatch = Errno(^uintptr(0))\n\twin32Error := ret.Win32Error(noMatch)\n\tif win32Error == noMatch {\n\t\treturn nil\n\t}\n\treturn win32Error\n}\n\nconst (\n\tCR_SUCCESS                  CONFIGRET = 0x00000000\n\tCR_DEFAULT                  CONFIGRET = 0x00000001\n\tCR_OUT_OF_MEMORY            CONFIGRET = 0x00000002\n\tCR_INVALID_POINTER          CONFIGRET = 0x00000003\n\tCR_INVALID_FLAG             CONFIGRET = 0x00000004\n\tCR_INVALID_DEVNODE          CONFIGRET = 0x00000005\n\tCR_INVALID_DEVINST                    = CR_INVALID_DEVNODE\n\tCR_INVALID_RES_DES          CONFIGRET = 0x00000006\n\tCR_INVALID_LOG_CONF         CONFIGRET = 0x00000007\n\tCR_INVALID_ARBITRATOR       CONFIGRET = 0x00000008\n\tCR_INVALID_NODELIST         CONFIGRET = 0x00000009\n\tCR_DEVNODE_HAS_REQS         CONFIGRET = 0x0000000A\n\tCR_DEVINST_HAS_REQS                   = CR_DEVNODE_HAS_REQS\n\tCR_INVALID_RESOURCEID       CONFIGRET = 0x0000000B\n\tCR_DLVXD_NOT_FOUND          CONFIGRET = 0x0000000C\n\tCR_NO_SUCH_DEVNODE          CONFIGRET = 0x0000000D\n\tCR_NO_SUCH_DEVINST                    = CR_NO_SUCH_DEVNODE\n\tCR_NO_MORE_LOG_CONF         CONFIGRET = 0x0000000E\n\tCR_NO_MORE_RES_DES          CONFIGRET = 0x0000000F\n\tCR_ALREADY_SUCH_DEVNODE     CONFIGRET = 0x00000010\n\tCR_ALREADY_SUCH_DEVINST               = CR_ALREADY_SUCH_DEVNODE\n\tCR_INVALID_RANGE_LIST       CONFIGRET = 0x00000011\n\tCR_INVALID_RANGE            CONFIGRET = 0x00000012\n\tCR_FAILURE                  CONFIGRET = 0x00000013\n\tCR_NO_SUCH_LOGICAL_DEV      CONFIGRET = 0x00000014\n\tCR_CREATE_BLOCKED           CONFIGRET = 0x00000015\n\tCR_NOT_SYSTEM_VM            CONFIGRET = 0x00000016\n\tCR_REMOVE_VETOED            CONFIGRET = 0x00000017\n\tCR_APM_VETOED               CONFIGRET = 0x00000018\n\tCR_INVALID_LOAD_TYPE        CONFIGRET = 0x00000019\n\tCR_BUFFER_SMALL             CONFIGRET = 0x0000001A\n\tCR_NO_ARBITRATOR            CONFIGRET = 0x0000001B\n\tCR_NO_REGISTRY_HANDLE       CONFIGRET = 0x0000001C\n\tCR_REGISTRY_ERROR           CONFIGRET = 0x0000001D\n\tCR_INVALID_DEVICE_ID        CONFIGRET = 0x0000001E\n\tCR_INVALID_DATA             CONFIGRET = 0x0000001F\n\tCR_INVALID_API              CONFIGRET = 0x00000020\n\tCR_DEVLOADER_NOT_READY      CONFIGRET = 0x00000021\n\tCR_NEED_RESTART             CONFIGRET = 0x00000022\n\tCR_NO_MORE_HW_PROFILES      CONFIGRET = 0x00000023\n\tCR_DEVICE_NOT_THERE         CONFIGRET = 0x00000024\n\tCR_NO_SUCH_VALUE            CONFIGRET = 0x00000025\n\tCR_WRONG_TYPE               CONFIGRET = 0x00000026\n\tCR_INVALID_PRIORITY         CONFIGRET = 0x00000027\n\tCR_NOT_DISABLEABLE          CONFIGRET = 0x00000028\n\tCR_FREE_RESOURCES           CONFIGRET = 0x00000029\n\tCR_QUERY_VETOED             CONFIGRET = 0x0000002A\n\tCR_CANT_SHARE_IRQ           CONFIGRET = 0x0000002B\n\tCR_NO_DEPENDENT             CONFIGRET = 0x0000002C\n\tCR_SAME_RESOURCES           CONFIGRET = 0x0000002D\n\tCR_NO_SUCH_REGISTRY_KEY     CONFIGRET = 0x0000002E\n\tCR_INVALID_MACHINENAME      CONFIGRET = 0x0000002F\n\tCR_REMOTE_COMM_FAILURE      CONFIGRET = 0x00000030\n\tCR_MACHINE_UNAVAILABLE      CONFIGRET = 0x00000031\n\tCR_NO_CM_SERVICES           CONFIGRET = 0x00000032\n\tCR_ACCESS_DENIED            CONFIGRET = 0x00000033\n\tCR_CALL_NOT_IMPLEMENTED     CONFIGRET = 0x00000034\n\tCR_INVALID_PROPERTY         CONFIGRET = 0x00000035\n\tCR_DEVICE_INTERFACE_ACTIVE  CONFIGRET = 0x00000036\n\tCR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037\n\tCR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038\n\tCR_INVALID_CONFLICT_LIST    CONFIGRET = 0x00000039\n\tCR_INVALID_INDEX            CONFIGRET = 0x0000003A\n\tCR_INVALID_STRUCTURE_SIZE   CONFIGRET = 0x0000003B\n\tNUM_CR_RESULTS              CONFIGRET = 0x0000003C\n)\n\nconst (\n\tCM_GET_DEVICE_INTERFACE_LIST_PRESENT     = 0 // only currently 'live' device interfaces\n\tCM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not\n)\n\nconst (\n\tDN_ROOT_ENUMERATED       = 0x00000001        // Was enumerated by ROOT\n\tDN_DRIVER_LOADED         = 0x00000002        // Has Register_Device_Driver\n\tDN_ENUM_LOADED           = 0x00000004        // Has Register_Enumerator\n\tDN_STARTED               = 0x00000008        // Is currently configured\n\tDN_MANUAL                = 0x00000010        // Manually installed\n\tDN_NEED_TO_ENUM          = 0x00000020        // May need reenumeration\n\tDN_NOT_FIRST_TIME        = 0x00000040        // Has received a config\n\tDN_HARDWARE_ENUM         = 0x00000080        // Enum generates hardware ID\n\tDN_LIAR                  = 0x00000100        // Lied about can reconfig once\n\tDN_HAS_MARK              = 0x00000200        // Not CM_Create_DevInst lately\n\tDN_HAS_PROBLEM           = 0x00000400        // Need device installer\n\tDN_FILTERED              = 0x00000800        // Is filtered\n\tDN_MOVED                 = 0x00001000        // Has been moved\n\tDN_DISABLEABLE           = 0x00002000        // Can be disabled\n\tDN_REMOVABLE             = 0x00004000        // Can be removed\n\tDN_PRIVATE_PROBLEM       = 0x00008000        // Has a private problem\n\tDN_MF_PARENT             = 0x00010000        // Multi function parent\n\tDN_MF_CHILD              = 0x00020000        // Multi function child\n\tDN_WILL_BE_REMOVED       = 0x00040000        // DevInst is being removed\n\tDN_NOT_FIRST_TIMEE       = 0x00080000        // Has received a config enumerate\n\tDN_STOP_FREE_RES         = 0x00100000        // When child is stopped, free resources\n\tDN_REBAL_CANDIDATE       = 0x00200000        // Don't skip during rebalance\n\tDN_BAD_PARTIAL           = 0x00400000        // This devnode's log_confs do not have same resources\n\tDN_NT_ENUMERATOR         = 0x00800000        // This devnode's is an NT enumerator\n\tDN_NT_DRIVER             = 0x01000000        // This devnode's is an NT driver\n\tDN_NEEDS_LOCKING         = 0x02000000        // Devnode need lock resume processing\n\tDN_ARM_WAKEUP            = 0x04000000        // Devnode can be the wakeup device\n\tDN_APM_ENUMERATOR        = 0x08000000        // APM aware enumerator\n\tDN_APM_DRIVER            = 0x10000000        // APM aware driver\n\tDN_SILENT_INSTALL        = 0x20000000        // Silent install\n\tDN_NO_SHOW_IN_DM         = 0x40000000        // No show in device manager\n\tDN_BOOT_LOG_PROB         = 0x80000000        // Had a problem during preassignment of boot log conf\n\tDN_NEED_RESTART          = DN_LIAR           // System needs to be restarted for this Devnode to work properly\n\tDN_DRIVER_BLOCKED        = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode\n\tDN_LEGACY_DRIVER         = DN_MOVED          // This device is using a legacy driver\n\tDN_CHILD_WITH_INVALID_ID = DN_HAS_MARK       // One or more children have invalid IDs\n\tDN_DEVICE_DISCONNECTED   = DN_NEEDS_LOCKING  // The function driver for a device reported that the device is not connected.  Typically this means a wireless device is out of range.\n\tDN_QUERY_REMOVE_PENDING  = DN_MF_PARENT      // Device is part of a set of related devices collectively pending query-removal\n\tDN_QUERY_REMOVE_ACTIVE   = DN_MF_CHILD       // Device is actively engaged in a query-remove IRP\n\tDN_CHANGEABLE_FLAGS      = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM\n)\n\n//sys\tsetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW\n\n// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class.\nfunc SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) {\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0)\n}\n\n//sys\tsetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW\n\n// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) {\n\tdata := &DevInfoListDetailData{}\n\tdata.size = data.unsafeSizeOf()\n\n\treturn data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data)\n}\n\n// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) {\n\treturn SetupDiGetDeviceInfoListDetail(deviceInfoSet)\n}\n\n//sys\tsetupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW\n\n// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set.\nfunc SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) {\n\tdeviceNameUTF16, err := UTF16PtrFromString(deviceName)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tvar deviceDescriptionUTF16 *uint16\n\tif deviceDescription != \"\" {\n\t\tdeviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data)\n}\n\n// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set.\nfunc (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) {\n\treturn SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags)\n}\n\n//sys\tsetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo\n\n// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data)\n}\n\n// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) {\n\treturn SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex)\n}\n\n// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory.\n//sys\tSetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList\n\n// Close method deletes a device information set and frees all associated memory.\nfunc (deviceInfoSet DevInfo) Close() error {\n\treturn SetupDiDestroyDeviceInfoList(deviceInfoSet)\n}\n\n//sys\tSetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList\n\n// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set.\nfunc (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tSetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch\n\n// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread.\nfunc (deviceInfoSet DevInfo) CancelDriverInfoSearch() error {\n\treturn SetupDiCancelDriverInfoSearch(deviceInfoSet)\n}\n\n//sys\tsetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW\n\n// SetupDiEnumDriverInfo function enumerates the members of a driver list.\nfunc SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data)\n}\n\n// EnumDriverInfo method enumerates the members of a driver list.\nfunc (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\treturn SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex)\n}\n\n//sys\tsetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW\n\n// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element.\nfunc SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data)\n}\n\n// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\treturn SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tSetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW\n\n// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set.\nfunc (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error {\n\treturn SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tsetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW\n\n// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treqSize := uint32(2048)\n\tfor {\n\t\tbuf := make([]byte, reqSize)\n\t\tdata := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0]))\n\t\tdata.size = data.unsafeSizeOf()\n\t\terr := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdata.size = reqSize\n\t\treturn data, nil\n\t}\n}\n\n// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treturn SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tSetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList\n\n// DestroyDriverInfoList method deletes a driver list.\nfunc (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tsetupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW\n\n// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer.\nfunc SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) {\n\tvar enumeratorUTF16 *uint16\n\tif enumerator != \"\" {\n\t\tenumeratorUTF16, err = UTF16PtrFromString(enumerator)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0)\n}\n\n// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\n//sys\tSetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller\n\n// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\nfunc (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error {\n\treturn SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information.\n//sys\tSetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey\n\n// OpenDevRegKey method opens a registry key for device-specific configuration information.\nfunc (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) {\n\treturn SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired)\n}\n\n//sys\tsetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW\n\n// SetupDiGetDeviceProperty function retrieves a specified device instance property.\nfunc SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType DEVPROPTYPE\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch dataType {\n\t\tcase DEVPROP_TYPE_STRING:\n\t\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\t\truntime.KeepAlive(buf)\n\t\t\treturn ret, nil\n\t\t}\n\t\treturn nil, errors.New(\"unimplemented property type\")\n\t}\n}\n\n//sys\tsetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW\n\n// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property.\nfunc SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType uint32\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn getRegistryValue(buf[:reqSize], dataType)\n\t}\n}\n\nfunc getRegistryValue(buf []byte, dataType uint32) (interface{}, error) {\n\tswitch dataType {\n\tcase REG_SZ:\n\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\truntime.KeepAlive(buf)\n\t\treturn ret, nil\n\tcase REG_EXPAND_SZ:\n\t\tvalue := UTF16ToString(bufToUTF16(buf))\n\t\tif value == \"\" {\n\t\t\treturn \"\", nil\n\t\t}\n\t\tp, err := syscall.UTF16PtrFromString(value)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tret := make([]uint16, 100)\n\t\tfor {\n\t\t\tn, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret)))\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tif n <= uint32(len(ret)) {\n\t\t\t\treturn UTF16ToString(ret[:n]), nil\n\t\t\t}\n\t\t\tret = make([]uint16, n)\n\t\t}\n\tcase REG_BINARY:\n\t\treturn buf, nil\n\tcase REG_DWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint32(buf), nil\n\tcase REG_DWORD_BIG_ENDIAN:\n\t\treturn binary.BigEndian.Uint32(buf), nil\n\tcase REG_MULTI_SZ:\n\t\tbufW := bufToUTF16(buf)\n\t\ta := []string{}\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t\truntime.KeepAlive(buf)\n\t\treturn a, nil\n\tcase REG_QWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint64(buf), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Unsupported registry value type: %v\", dataType)\n\t}\n}\n\n// bufToUTF16 function reinterprets []byte buffer as []uint16\nfunc bufToUTF16(buf []byte) []uint16 {\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// utf16ToBuf function reinterprets []uint16 as []byte\nfunc utf16ToBuf(buf []uint16) []byte {\n\tsl := struct {\n\t\taddr *byte\n\t\tlen  int\n\t\tcap  int\n\t}{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2}\n\treturn *(*[]byte)(unsafe.Pointer(&sl))\n}\n\nfunc wcslen(str []uint16) int {\n\tfor i := 0; i < len(str); i++ {\n\t\tif str[i] == 0 {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(str)\n}\n\n// DeviceRegistryProperty method retrieves a specified Plug and Play device property.\nfunc (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) {\n\treturn SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property)\n}\n\n//sys\tsetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW\n\n// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers)))\n}\n\n// SetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers)\n}\n\n// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error {\n\tstr16, err := UTF16FromString(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0)))\n\truntime.KeepAlive(str16)\n\treturn err\n}\n\n//sys\tsetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW\n\n// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element.\nfunc SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\tparams := &DevInstallParams{}\n\tparams.size = uint32(unsafe.Sizeof(*params))\n\n\treturn params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params)\n}\n\n// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\treturn SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW\n\n// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device.\nfunc SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) {\n\treqSize := uint32(1024)\n\tfor {\n\t\tbuf := make([]uint16, reqSize)\n\t\terr := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn UTF16ToString(buf), nil\n\t}\n}\n\n// DeviceInstanceID method retrieves the instance ID of the device.\nfunc (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) {\n\treturn SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element.\n//sys\tSetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW\n\n// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error {\n\treturn SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize)\n}\n\n//sys\tSetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW\n\n// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error {\n\treturn SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams)\n}\n\n// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element.\n//sys\tSetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW\n\n// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error {\n\treturn SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize)\n}\n\n//sys\tsetupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW\n\n// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer.\nfunc SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) {\n\tvar classNameUTF16 [MAX_CLASS_NAME_LEN]uint16\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\terr = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tclassName = UTF16ToString(classNameUTF16[:])\n\treturn\n}\n\n//sys\tsetupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW\n\n// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer.\nfunc SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) {\n\tclassNameUTF16, err := UTF16PtrFromString(className)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treqSize := uint32(4)\n\tfor {\n\t\tbuf := make([]GUID, reqSize)\n\t\terr = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn buf[:reqSize], nil\n\t}\n}\n\n//sys\tsetupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice\n\n// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set.\nfunc SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDevice(deviceInfoSet, data)\n}\n\n// SelectedDevice method retrieves the selected device information element in a device information set.\nfunc (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) {\n\treturn SetupDiGetSelectedDevice(deviceInfoSet)\n}\n\n// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\n//sys\tSetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice\n\n// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\nfunc (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error {\n\treturn SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW\n\n// SetupUninstallOEMInf uninstalls the specified driver.\nfunc SetupUninstallOEMInf(infFileName string, flags SUOI) error {\n\tinfFileName16, err := UTF16PtrFromString(infFileName)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn setupUninstallOEMInf(infFileName16, flags, 0)\n}\n\n//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err\n\n//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW\n//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW\n\nfunc CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) {\n\tdeviceID16, err := UTF16PtrFromString(deviceID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar buf []uint16\n\tvar buflen uint32\n\tfor {\n\t\tif ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS {\n\t\t\treturn nil, ret\n\t\t}\n\t\tbuf = make([]uint16, buflen)\n\t\tif ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS {\n\t\t\tbreak\n\t\t} else if ret != CR_BUFFER_SMALL {\n\t\t\treturn nil, ret\n\t\t}\n\t}\n\tvar interfaces []string\n\tfor i := 0; i < len(buf); {\n\t\tj := i + wcslen(buf[i:])\n\t\tif i < j {\n\t\t\tinterfaces = append(interfaces, UTF16ToString(buf[i:j]))\n\t\t}\n\t\ti = j + 1\n\t}\n\tif interfaces == nil {\n\t\treturn nil, ERROR_NO_SUCH_DEVICE_INTERFACE\n\t}\n\treturn interfaces, nil\n}\n\n//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status\n\nfunc CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error {\n\tret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags)\n\tif ret == CR_SUCCESS {\n\t\treturn nil\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\n// Package windows contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display syscall documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage windows // import \"golang.org/x/sys/windows\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows system calls.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\ntype (\n\tHandle uintptr\n\tHWND   uintptr\n)\n\nconst (\n\tInvalidHandle = ^Handle(0)\n\tInvalidHWND   = ^HWND(0)\n\n\t// Flags for DefineDosDevice.\n\tDDD_EXACT_MATCH_ON_REMOVE = 0x00000004\n\tDDD_NO_BROADCAST_SYSTEM   = 0x00000008\n\tDDD_RAW_TARGET_PATH       = 0x00000001\n\tDDD_REMOVE_DEFINITION     = 0x00000002\n\n\t// Return values for GetDriveType.\n\tDRIVE_UNKNOWN     = 0\n\tDRIVE_NO_ROOT_DIR = 1\n\tDRIVE_REMOVABLE   = 2\n\tDRIVE_FIXED       = 3\n\tDRIVE_REMOTE      = 4\n\tDRIVE_CDROM       = 5\n\tDRIVE_RAMDISK     = 6\n\n\t// File system flags from GetVolumeInformation and GetVolumeInformationByHandle.\n\tFILE_CASE_SENSITIVE_SEARCH        = 0x00000001\n\tFILE_CASE_PRESERVED_NAMES         = 0x00000002\n\tFILE_FILE_COMPRESSION             = 0x00000010\n\tFILE_DAX_VOLUME                   = 0x20000000\n\tFILE_NAMED_STREAMS                = 0x00040000\n\tFILE_PERSISTENT_ACLS              = 0x00000008\n\tFILE_READ_ONLY_VOLUME             = 0x00080000\n\tFILE_SEQUENTIAL_WRITE_ONCE        = 0x00100000\n\tFILE_SUPPORTS_ENCRYPTION          = 0x00020000\n\tFILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000\n\tFILE_SUPPORTS_HARD_LINKS          = 0x00400000\n\tFILE_SUPPORTS_OBJECT_IDS          = 0x00010000\n\tFILE_SUPPORTS_OPEN_BY_FILE_ID     = 0x01000000\n\tFILE_SUPPORTS_REPARSE_POINTS      = 0x00000080\n\tFILE_SUPPORTS_SPARSE_FILES        = 0x00000040\n\tFILE_SUPPORTS_TRANSACTIONS        = 0x00200000\n\tFILE_SUPPORTS_USN_JOURNAL         = 0x02000000\n\tFILE_UNICODE_ON_DISK              = 0x00000004\n\tFILE_VOLUME_IS_COMPRESSED         = 0x00008000\n\tFILE_VOLUME_QUOTAS                = 0x00000020\n\n\t// Flags for LockFileEx.\n\tLOCKFILE_FAIL_IMMEDIATELY = 0x00000001\n\tLOCKFILE_EXCLUSIVE_LOCK   = 0x00000002\n\n\t// Return value of SleepEx and other APC functions\n\tWAIT_IO_COMPLETION = 0x000000C0\n)\n\n// StringToUTF16 is deprecated. Use UTF16FromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16(s string) []uint16 {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\tpanic(\"windows: string with NUL passed to StringToUTF16\")\n\t}\n\treturn a\n}\n\n// UTF16FromString returns the UTF-16 encoding of the UTF-8 string\n// s, with a terminating NUL added. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc UTF16FromString(s string) ([]uint16, error) {\n\treturn syscall.UTF16FromString(s)\n}\n\n// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s,\n// with a terminating NUL and any bytes after the NUL removed.\nfunc UTF16ToString(s []uint16) string {\n\treturn syscall.UTF16ToString(s)\n}\n\n// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] }\n\n// UTF16PtrFromString returns pointer to the UTF-16 encoding of\n// the UTF-8 string s, with a terminating NUL added. If s\n// contains a NUL byte at any location, it returns (nil, syscall.EINVAL).\nfunc UTF16PtrFromString(s string) (*uint16, error) {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string.\n// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated\n// at a zero word; if the zero word is not present, the program may crash.\nfunc UTF16PtrToString(p *uint16) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p))\n\t}\n\treturn UTF16ToString(unsafe.Slice(p, n))\n}\n\nfunc Getpagesize() int { return 4096 }\n\n// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallback(fn interface{}) uintptr {\n\treturn syscall.NewCallback(fn)\n}\n\n// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallbackCDecl(fn interface{}) uintptr {\n\treturn syscall.NewCallbackCDecl(fn)\n}\n\n// windows api calls\n\n//sys\tGetLastError() (lasterr error)\n//sys\tLoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW\n//sys\tLoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW\n//sys\tFreeLibrary(handle Handle) (err error)\n//sys\tGetProcAddress(module Handle, procname string) (proc uintptr, err error)\n//sys\tGetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW\n//sys\tGetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW\n//sys\tSetDefaultDllDirectories(directoryFlags uint32) (err error)\n//sys\tAddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory\n//sys\tRemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory\n//sys\tSetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW\n//sys\tGetVersion() (ver uint32, err error)\n//sys\tFormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW\n//sys\tExitProcess(exitcode uint32)\n//sys\tIsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process\n//sys\tIsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2?\n//sys\tCreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW\n//sys\tCreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error)  [failretval==InvalidHandle] = CreateNamedPipeW\n//sys\tConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error)\n//sys\tDisconnectNamedPipe(pipe Handle) (err error)\n//sys   GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error)\n//sys   GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error)\n//sys\tGetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error)\n//sys\tGetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW\n//sys\tSetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState\n//sys\treadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile\n//sys\twriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile\n//sys\tGetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error)\n//sys\tSetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff]\n//sys\tCloseHandle(handle Handle) (err error)\n//sys\tGetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle]\n//sys\tSetStdHandle(stdhandle uint32, handle Handle) (err error)\n//sys\tfindFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW\n//sys\tfindNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW\n//sys\tFindClose(handle Handle) (err error)\n//sys\tGetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error)\n//sys\tGetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error)\n//sys\tSetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error)\n//sys\tGetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW\n//sys\tSetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW\n//sys\tCreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW\n//sys\tRemoveDirectory(path *uint16) (err error) = RemoveDirectoryW\n//sys\tDeleteFile(path *uint16) (err error) = DeleteFileW\n//sys\tMoveFile(from *uint16, to *uint16) (err error) = MoveFileW\n//sys\tMoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW\n//sys\tLockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tUnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tGetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW\n//sys\tGetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW\n//sys\tSetEndOfFile(handle Handle) (err error)\n//sys\tSetFileValidData(handle Handle, validDataLength int64) (err error)\n//sys\tGetSystemTimeAsFileTime(time *Filetime)\n//sys\tGetSystemTimePreciseAsFileTime(time *Filetime)\n//sys\tGetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff]\n//sys\tCreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error)\n//sys\tGetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error)\n//sys\tPostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error)\n//sys\tCancelIo(s Handle) (err error)\n//sys\tCancelIoEx(s Handle, o *Overlapped) (err error)\n//sys\tCreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW\n//sys\tCreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW\n//sys   initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList\n//sys   deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList\n//sys   updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute\n//sys\tOpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)\n//sys\tShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW\n//sys\tGetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId\n//sys\tLoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW\n//sys\tUnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout\n//sys\tGetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout\n//sys\tToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx\n//sys\tGetShellWindow() (shellWindow HWND) = user32.GetShellWindow\n//sys\tMessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW\n//sys\tExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx\n//sys\tshGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath\n//sys\tTerminateProcess(handle Handle, exitcode uint32) (err error)\n//sys\tGetExitCodeProcess(handle Handle, exitcode *uint32) (err error)\n//sys\tgetStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW\n//sys\tGetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)\n//sys\tDuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)\n//sys\tWaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]\n//sys\twaitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects\n//sys\tGetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW\n//sys\tCreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error)\n//sys\tGetFileType(filehandle Handle) (n uint32, err error)\n//sys\tCryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW\n//sys\tCryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext\n//sys\tCryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom\n//sys\tGetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW\n//sys\tFreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW\n//sys\tGetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW\n//sys\tSetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW\n//sys\tExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW\n//sys\tCreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock\n//sys\tDestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock\n//sys\tgetTickCount64() (ms uint64) = kernel32.GetTickCount64\n//sys   GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tSetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tGetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW\n//sys\tSetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW\n//sys\tGetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW\n//sys\tGetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW\n//sys\tcommandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW\n//sys\tLocalFree(hmem Handle) (handle Handle, err error) [failretval!=0]\n//sys\tLocalAlloc(flags uint32, length uint32) (ptr uintptr, err error)\n//sys\tSetHandleInformation(handle Handle, mask uint32, flags uint32) (err error)\n//sys\tFlushFileBuffers(handle Handle) (err error)\n//sys\tGetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW\n//sys\tGetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW\n//sys\tGetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW\n//sys\tGetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW\n//sys\tCreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW\n//sys\tMapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error)\n//sys\tUnmapViewOfFile(addr uintptr) (err error)\n//sys\tFlushViewOfFile(addr uintptr, length uintptr) (err error)\n//sys\tVirtualLock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualUnlock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc\n//sys\tVirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree\n//sys\tVirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect\n//sys\tVirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx\n//sys\tVirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery\n//sys\tVirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx\n//sys\tReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory\n//sys\tWriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory\n//sys\tTransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile\n//sys\tReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW\n//sys\tFindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW\n//sys\tFindNextChangeNotification(handle Handle) (err error)\n//sys\tFindCloseChangeNotification(handle Handle) (err error)\n//sys\tCertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW\n//sys\tCertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore\n//sys\tCertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore\n//sys\tCertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore\n//sys\tCertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore\n//sys\tCertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore\n//sys\tCertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext\n//sys\tPFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore\n//sys\tCertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain\n//sys\tCertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain\n//sys\tCertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext\n//sys\tCertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext\n//sys\tCertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy\n//sys\tCertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW\n//sys\tCertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension\n//sys   CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore\n//sys   CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore\n//sys   CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey\n//sys\tCryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject\n//sys\tCryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject\n//sys\tCryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData\n//sys\tCryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData\n//sys\tWinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx\n//sys\tRegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW\n//sys\tRegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey\n//sys\tRegQueryInfoKey(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\n//sys\tRegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW\n//sys\tRegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW\n//sys\tRegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue\n//sys\tGetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId\n//sys\tProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId\n//sys\tClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole\n//sys\tcreatePseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole\n//sys\tGetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode\n//sys\tSetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode\n//sys\tGetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo\n//sys\tsetConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition\n//sys\tGetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP\n//sys\tGetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP\n//sys\tSetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP\n//sys\tSetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP\n//sys\tWriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW\n//sys\tReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW\n//sys\tGetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents\n//sys\tFlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer\n//sys\tresizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole\n//sys\tCreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot\n//sys\tModule32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW\n//sys\tModule32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW\n//sys\tProcess32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW\n//sys\tProcess32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW\n//sys\tThread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tThread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tDeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error)\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n//sys\tCreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW\n//sys\tCreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW\n//sys\tGetCurrentThreadId() (id uint32)\n//sys\tCreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW\n//sys\tCreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW\n//sys\tOpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW\n//sys\tSetEvent(event Handle) (err error) = kernel32.SetEvent\n//sys\tResetEvent(event Handle) (err error) = kernel32.ResetEvent\n//sys\tPulseEvent(event Handle) (err error) = kernel32.PulseEvent\n//sys\tCreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW\n//sys\tCreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW\n//sys\tOpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW\n//sys\tReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex\n//sys\tSleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx\n//sys\tCreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW\n//sys\tAssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject\n//sys\tTerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject\n//sys\tSetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode\n//sys\tResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread\n//sys\tSetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass\n//sys\tGetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass\n//sys\tQueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject\n//sys\tSetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)\n//sys\tGenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error)\n//sys\tGetProcessId(process Handle) (id uint32, err error)\n//sys\tQueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW\n//sys\tOpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error)\n//sys\tSetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost\n//sys\tGetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32)\n//sys\tSetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error)\n//sys\tClearCommBreak(handle Handle) (err error)\n//sys\tClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error)\n//sys\tEscapeCommFunction(handle Handle, dwFunc uint32) (err error)\n//sys\tGetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tGetCommModemStatus(handle Handle, lpModemStat *uint32) (err error)\n//sys\tGetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tPurgeComm(handle Handle, dwFlags uint32) (err error)\n//sys\tSetCommBreak(handle Handle) (err error)\n//sys\tSetCommMask(handle Handle, dwEvtMask uint32) (err error)\n//sys\tSetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tSetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tSetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error)\n//sys\tWaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error)\n//sys\tGetActiveProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tGetMaximumProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tEnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows\n//sys\tEnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows\n//sys\tGetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW\n//sys\tGetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow\n//sys\tGetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow\n//sys\tIsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow\n//sys\tIsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode\n//sys\tIsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible\n//sys\tGetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo\n//sys\tGetLargePageMinimum() (size uintptr)\n\n// Volume Management Functions\n//sys\tDefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW\n//sys\tDeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW\n//sys\tFindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW\n//sys\tFindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW\n//sys\tFindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW\n//sys\tFindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW\n//sys\tFindVolumeClose(findVolume Handle) (err error)\n//sys\tFindVolumeMountPointClose(findVolumeMountPoint Handle) (err error)\n//sys\tGetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW\n//sys\tGetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW\n//sys\tGetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0]\n//sys\tGetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW\n//sys\tGetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW\n//sys\tGetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW\n//sys\tGetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW\n//sys\tGetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW\n//sys\tGetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW\n//sys\tQueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW\n//sys\tSetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW\n//sys\tSetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW\n//sys\tInitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW\n//sys\tSetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters\n//sys\tGetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters\n//sys\tclsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString\n//sys\tstringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2\n//sys\tcoCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid\n//sys\tCoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree\n//sys\tCoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx\n//sys\tCoUninitialize() = ole32.CoUninitialize\n//sys\tCoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject\n//sys\tgetProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages\n//sys\tgetThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages\n//sys\tgetUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages\n//sys\tgetSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages\n//sys\tfindResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW\n//sys\tSizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource\n//sys\tLoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource\n//sys\tLockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource\n\n// Version APIs\n//sys\tGetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW\n//sys\tGetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW\n//sys\tVerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW\n\n// Process Status API (PSAPI)\n//sys\tenumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses\n//sys\tEnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules\n//sys\tEnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx\n//sys\tGetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation\n//sys\tGetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW\n//sys\tGetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW\n//sys   QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx\n\n// NT Native APIs\n//sys\trtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb\n//sys\trtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion\n//sys\trtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers\n//sys\tRtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb\n//sys\tRtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString\n//sys\tRtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString\n//sys\tNtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile\n//sys\tNtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile\n//sys\tNtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile\n//sys\tRtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus\n//sys\tRtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus\n//sys\tRtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl\n//sys\tNtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess\n//sys\tNtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess\n//sys\tNtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation\n//sys\tNtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation\n//sys\tRtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable\n//sys\tRtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable\n\n// Desktop Window Manager API (Dwmapi)\n//sys\tDwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute\n//sys\tDwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute\n\n// Windows Multimedia API\n//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod\n//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod\n\n// syscall interface implementation for other packages\n\n// GetCurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentProcess for the same Handle without the nil\n// error.\nfunc GetCurrentProcess() (Handle, error) {\n\treturn CurrentProcess(), nil\n}\n\n// CurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }\n\n// GetCurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentThread for the same Handle without the nil\n// error.\nfunc GetCurrentThread() (Handle, error) {\n\treturn CurrentThread(), nil\n}\n\n// CurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }\n\n// GetProcAddressByOrdinal retrieves the address of the exported\n// function from module by ordinal.\nfunc GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0)\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Exit(code int) { ExitProcess(uint32(code)) }\n\nfunc makeInheritSa() *SecurityAttributes {\n\tvar sa SecurityAttributes\n\tsa.Length = uint32(unsafe.Sizeof(sa))\n\tsa.InheritHandle = 1\n\treturn &sa\n}\n\nfunc Open(path string, mode int, perm uint32) (fd Handle, err error) {\n\tif len(path) == 0 {\n\t\treturn InvalidHandle, ERROR_FILE_NOT_FOUND\n\t}\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn InvalidHandle, err\n\t}\n\tvar access uint32\n\tswitch mode & (O_RDONLY | O_WRONLY | O_RDWR) {\n\tcase O_RDONLY:\n\t\taccess = GENERIC_READ\n\tcase O_WRONLY:\n\t\taccess = GENERIC_WRITE\n\tcase O_RDWR:\n\t\taccess = GENERIC_READ | GENERIC_WRITE\n\t}\n\tif mode&O_CREAT != 0 {\n\t\taccess |= GENERIC_WRITE\n\t}\n\tif mode&O_APPEND != 0 {\n\t\taccess &^= GENERIC_WRITE\n\t\taccess |= FILE_APPEND_DATA\n\t}\n\tsharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE)\n\tvar sa *SecurityAttributes\n\tif mode&O_CLOEXEC == 0 {\n\t\tsa = makeInheritSa()\n\t}\n\tvar createmode uint32\n\tswitch {\n\tcase mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL):\n\t\tcreatemode = CREATE_NEW\n\tcase mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC):\n\t\tcreatemode = CREATE_ALWAYS\n\tcase mode&O_CREAT == O_CREAT:\n\t\tcreatemode = OPEN_ALWAYS\n\tcase mode&O_TRUNC == O_TRUNC:\n\t\tcreatemode = TRUNCATE_EXISTING\n\tdefault:\n\t\tcreatemode = OPEN_EXISTING\n\t}\n\tvar attrs uint32 = FILE_ATTRIBUTE_NORMAL\n\tif perm&S_IWRITE == 0 {\n\t\tattrs = FILE_ATTRIBUTE_READONLY\n\t}\n\th, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0)\n\treturn h, e\n}\n\nfunc Read(fd Handle, p []byte) (n int, err error) {\n\tvar done uint32\n\te := ReadFile(fd, p, &done, nil)\n\tif e != nil {\n\t\tif e == ERROR_BROKEN_PIPE {\n\t\t\t// NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin\n\t\t\treturn 0, nil\n\t\t}\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc Write(fd Handle, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar done uint32\n\te := WriteFile(fd, p, &done, nil)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\terr := readFile(fd, p, done, overlapped)\n\tif raceenabled {\n\t\tif *done > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), int(*done))\n\t\t}\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n\treturn err\n}\n\nfunc WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\terr := writeFile(fd, p, done, overlapped)\n\tif raceenabled && *done > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), int(*done))\n\t}\n\treturn err\n}\n\nvar ioSync int64\n\nfunc Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) {\n\tvar w uint32\n\tswitch whence {\n\tcase 0:\n\t\tw = FILE_BEGIN\n\tcase 1:\n\t\tw = FILE_CURRENT\n\tcase 2:\n\t\tw = FILE_END\n\t}\n\thi := int32(offset >> 32)\n\tlo := int32(offset)\n\t// use GetFileType to check pipe, pipe can't do seek\n\tft, _ := GetFileType(fd)\n\tif ft == FILE_TYPE_PIPE {\n\t\treturn 0, syscall.EPIPE\n\t}\n\trlo, e := SetFilePointer(fd, lo, &hi, w)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int64(hi)<<32 + int64(rlo), nil\n}\n\nfunc Close(fd Handle) (err error) {\n\treturn CloseHandle(fd)\n}\n\nvar (\n\tStdin  = getStdHandle(STD_INPUT_HANDLE)\n\tStdout = getStdHandle(STD_OUTPUT_HANDLE)\n\tStderr = getStdHandle(STD_ERROR_HANDLE)\n)\n\nfunc getStdHandle(stdhandle uint32) (fd Handle) {\n\tr, _ := GetStdHandle(stdhandle)\n\treturn r\n}\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (wd string, err error) {\n\tb := make([]uint16, 300)\n\tn, e := GetCurrentDirectory(uint32(len(b)), &b[0])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc Chdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn SetCurrentDirectory(pathp)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn CreateDirectory(pathp, nil)\n}\n\nfunc Rmdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn RemoveDirectory(pathp)\n}\n\nfunc Unlink(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn DeleteFile(pathp)\n}\n\nfunc Rename(oldpath, newpath string) (err error) {\n\tfrom, err := UTF16PtrFromString(oldpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tto, err := UTF16PtrFromString(newpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)\n}\n\nfunc ComputerName() (name string, err error) {\n\tvar n uint32 = MAX_COMPUTERNAME_LENGTH + 1\n\tb := make([]uint16, n)\n\te := GetComputerName(&b[0], &n)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc DurationSinceBoot() time.Duration {\n\treturn time.Duration(getTickCount64()) * time.Millisecond\n}\n\nfunc Ftruncate(fd Handle, length int64) (err error) {\n\ttype _FILE_END_OF_FILE_INFO struct {\n\t\tEndOfFile int64\n\t}\n\tvar info _FILE_END_OF_FILE_INFO\n\tinfo.EndOfFile = length\n\treturn SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info)))\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar ft Filetime\n\tGetSystemTimeAsFileTime(&ft)\n\t*tv = NsecToTimeval(ft.Nanoseconds())\n\treturn nil\n}\n\nfunc Pipe(p []Handle) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tvar r, w Handle\n\te := CreatePipe(&r, &w, makeInheritSa(), 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tp[0] = r\n\tp[1] = w\n\treturn nil\n}\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif len(tv) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(tv[0].Nanoseconds())\n\tw := NsecToFiletime(tv[1].Nanoseconds())\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc UtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(TimespecToNsec(ts[0]))\n\tw := NsecToFiletime(TimespecToNsec(ts[1]))\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc Fsync(fd Handle) (err error) {\n\treturn FlushFileBuffers(fd)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\tattrs, e := GetFileAttributes(p)\n\tif e != nil {\n\t\treturn e\n\t}\n\tif mode&S_IWRITE != 0 {\n\t\tattrs &^= FILE_ATTRIBUTE_READONLY\n\t} else {\n\t\tattrs |= FILE_ATTRIBUTE_READONLY\n\t}\n\treturn SetFileAttributes(p, attrs)\n}\n\nfunc LoadGetSystemTimePreciseAsFileTime() error {\n\treturn procGetSystemTimePreciseAsFileTime.Find()\n}\n\nfunc LoadCancelIoEx() error {\n\treturn procCancelIoEx.Find()\n}\n\nfunc LoadSetFileCompletionNotificationModes() error {\n\treturn procSetFileCompletionNotificationModes.Find()\n}\n\nfunc WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\t// Every other win32 array API takes arguments as \"pointer, count\", except for this function. So we\n\t// can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore\n\t// trivially stub this ourselves.\n\n\tvar handlePtr *Handle\n\tif len(handles) > 0 {\n\t\thandlePtr = &handles[0]\n\t}\n\treturn waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds)\n}\n\n// net api calls\n\nconst socket_error = uintptr(^uint32(0))\n\n//sys\tWSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup\n//sys\tWSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup\n//sys\tWSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl\n//sys\tWSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW\n//sys\tWSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW\n//sys\tWSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd\n//sys\tsocket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket\n//sys\tsendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto\n//sys\trecvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom\n//sys\tSetsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt\n//sys\tGetsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt\n//sys\tbind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind\n//sys\tconnect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect\n//sys\tgetsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname\n//sys\tgetpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername\n//sys\tlisten(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen\n//sys\tshutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown\n//sys\tClosesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket\n//sys\tAcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx\n//sys\tGetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs\n//sys\tWSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv\n//sys\tWSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend\n//sys\tWSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32,  from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom\n//sys\tWSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32,  overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo\n//sys\tWSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW\n//sys\tWSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW\n//sys\tGetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname\n//sys\tGetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname\n//sys\tNtohs(netshort uint16) (u uint16) = ws2_32.ntohs\n//sys\tGetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname\n//sys\tDnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W\n//sys\tDnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree\n//sys\tDnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W\n//sys\tGetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW\n//sys\tFreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW\n//sys\tGetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry\n//sys\tGetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo\n//sys\tSetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes\n//sys\tWSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW\n//sys\tWSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult\n//sys\tGetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses\n//sys\tGetACP() (acp uint32) = kernel32.GetACP\n//sys\tMultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar\n//sys\tgetBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx\n//sys   GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex\n//sys   GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) = iphlpapi.GetIpForwardEntry2\n//sys   GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) = iphlpapi.GetIpForwardTable2\n//sys   GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry\n//sys   FreeMibTable(memory unsafe.Pointer) = iphlpapi.FreeMibTable\n//sys   NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange\n//sys   NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyRouteChange2\n//sys   NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange\n//sys   CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\n// RawSockaddrInet is a union that contains an IPv4, an IPv6 address, or an address family. See\n// https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-sockaddr_inet.\n//\n// A [*RawSockaddrInet] may be converted to a [*RawSockaddrInet4] or [*RawSockaddrInet6] using\n// unsafe, depending on the address family.\ntype RawSockaddrInet struct {\n\tFamily uint16\n\tPort   uint16\n\tData   [6]uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [100]int8\n}\n\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs\n}\n\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [UNIX_PATH_MAX]int8\n}\n\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := int32(2)\n\tif n > 0 {\n\t\tsl += int32(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\ntype RawSockaddrBth struct {\n\tAddressFamily  [2]byte\n\tBtAddr         [8]byte\n\tServiceClassId [16]byte\n\tPort           [4]byte\n}\n\ntype SockaddrBth struct {\n\tBtAddr         uint64\n\tServiceClassId GUID\n\tPort           uint32\n\n\traw RawSockaddrBth\n}\n\nfunc (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) {\n\tfamily := AF_BTH\n\tsa.raw = RawSockaddrBth{\n\t\tAddressFamily:  *(*[2]byte)(unsafe.Pointer(&family)),\n\t\tBtAddr:         *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)),\n\t\tPort:           *(*[4]byte)(unsafe.Pointer(&sa.Port)),\n\t\tServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)),\n\t}\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\nfunc (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, syscall.EAFNOSUPPORT\n}\n\nfunc Socket(domain, typ, proto int) (fd Handle, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn InvalidHandle, syscall.EAFNOSUPPORT\n\t}\n\treturn socket(int32(domain), int32(typ), int32(proto))\n}\n\nfunc SetsockoptInt(fd Handle, level, opt int, value int) (err error) {\n\tv := int32(value)\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v)))\n}\n\nfunc Bind(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) {\n\tptr, _, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn getBestInterfaceEx(ptr, pdwBestIfIndex)\n}\n\nfunc Getsockname(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getsockname(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Getpeername(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getpeername(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Listen(s Handle, n int) (err error) {\n\treturn listen(s, int32(n))\n}\n\nfunc Shutdown(fd Handle, how int) (err error) {\n\treturn shutdown(fd, int32(how))\n}\n\nfunc WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) {\n\tvar rsa unsafe.Pointer\n\tvar l int32\n\tif to != nil {\n\t\trsa, l, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine)\n}\n\nfunc LoadGetAddrInfo() error {\n\treturn procGetAddrInfoW.Find()\n}\n\nvar connectExFunc struct {\n\tonce sync.Once\n\taddr uintptr\n\terr  error\n}\n\nfunc LoadConnectEx() error {\n\tconnectExFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)\n\t\tif connectExFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tconnectExFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_CONNECTEX)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_CONNECTEX)),\n\t\t\t(*byte)(unsafe.Pointer(&connectExFunc.addr)),\n\t\t\tuint32(unsafe.Sizeof(connectExFunc.addr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn connectExFunc.err\n}\n\nfunc connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0)\n\tif r1 == 0 {\n\t\tif e1 != 0 {\n\t\t\terr = error(e1)\n\t\t} else {\n\t\t\terr = syscall.EINVAL\n\t\t}\n\t}\n\treturn\n}\n\nfunc ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error {\n\terr := LoadConnectEx()\n\tif err != nil {\n\t\treturn errorspkg.New(\"failed to find ConnectEx: \" + err.Error())\n\t}\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped)\n}\n\nvar sendRecvMsgFunc struct {\n\tonce     sync.Once\n\tsendAddr uintptr\n\trecvAddr uintptr\n\terr      error\n}\n\nfunc loadWSASendRecvMsg() error {\n\tsendRecvMsgFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSARECVMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)),\n\t\t\t&n, nil, 0)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSASENDMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn sendRecvMsgFunc.err\n}\n\nfunc WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\nfunc WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\n// Invented structures to support what package os expects.\ntype Rusage struct {\n\tCreationTime Filetime\n\tExitTime     Filetime\n\tKernelTime   Filetime\n\tUserTime     Filetime\n}\n\ntype WaitStatus struct {\n\tExitCode uint32\n}\n\nfunc (w WaitStatus) Exited() bool { return true }\n\nfunc (w WaitStatus) ExitStatus() int { return int(w.ExitCode) }\n\nfunc (w WaitStatus) Signal() Signal { return -1 }\n\nfunc (w WaitStatus) CoreDump() bool { return false }\n\nfunc (w WaitStatus) Stopped() bool { return false }\n\nfunc (w WaitStatus) Continued() bool { return false }\n\nfunc (w WaitStatus) StopSignal() Signal { return -1 }\n\nfunc (w WaitStatus) Signaled() bool { return false }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n// Timespec is an invented structure on Windows, but here for\n// consistency with the corresponding package for other operating systems.\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\nfunc TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }\n\nfunc NsecToTimespec(nsec int64) (ts Timespec) {\n\tts.Sec = nsec / 1e9\n\tts.Nsec = nsec % 1e9\n\treturn\n}\n\n// TODO(brainman): fix all needed for net\n\nfunc Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS }\n\nfunc Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tn32, err := recvfrom(fd, p, int32(flags), &rsa, &l)\n\tn = int(n32)\n\tif err != nil {\n\t\treturn\n\t}\n\tfrom, err = rsa.Sockaddr()\n\treturn\n}\n\nfunc Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, l, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, int32(flags), ptr, l)\n}\n\nfunc SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS }\n\n// The Linger struct is wrong but we only noticed after Go 1.\n// sysLinger is the real system call structure.\n\n// BUG(brainman): The definition of Linger is not appropriate for direct use\n// with Setsockopt and Getsockopt.\n// Use SetsockoptLinger instead.\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype sysLinger struct {\n\tOnoff  uint16\n\tLinger uint16\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\nfunc GetsockoptInt(fd Handle, level, opt int) (int, error) {\n\tv := int32(0)\n\tl := int32(unsafe.Sizeof(v))\n\terr := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l)\n\treturn int(v), err\n}\n\nfunc SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) {\n\tsys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)}\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys)))\n}\n\nfunc SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4)\n}\n\nfunc SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq)))\n}\n\nfunc SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn syscall.EWINDOWS\n}\n\nfunc EnumProcesses(processIds []uint32, bytesReturned *uint32) error {\n\t// EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses\n\t// the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy.\n\tvar p *uint32\n\tif len(processIds) > 0 {\n\t\tp = &processIds[0]\n\t}\n\tsize := uint32(len(processIds) * 4)\n\treturn enumProcesses(p, size, bytesReturned)\n}\n\nfunc Getpid() (pid int) { return int(GetCurrentProcessId()) }\n\nfunc FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {\n\t// NOTE(rsc): The Win32finddata struct is wrong for the system call:\n\t// the two paths are each one uint16 short. Use the correct struct,\n\t// a win32finddata1, and then copy the results out.\n\t// There is no loss of expressivity here, because the final\n\t// uint16, if it is used, is supposed to be a NUL, and Go doesn't need that.\n\t// For Go 1.1, we might avoid the allocation of win32finddata1 here\n\t// by adding a final Bug [2]uint16 field to the struct and then\n\t// adjusting the fields in the result directly.\n\tvar data1 win32finddata1\n\thandle, err = findFirstFile1(name, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc FindNextFile(handle Handle, data *Win32finddata) (err error) {\n\tvar data1 win32finddata1\n\terr = findNextFile1(handle, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc getProcessEntry(pid int) (*ProcessEntry32, error) {\n\tsnapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer CloseHandle(snapshot)\n\tvar procEntry ProcessEntry32\n\tprocEntry.Size = uint32(unsafe.Sizeof(procEntry))\n\tif err = Process32First(snapshot, &procEntry); err != nil {\n\t\treturn nil, err\n\t}\n\tfor {\n\t\tif procEntry.ProcessID == uint32(pid) {\n\t\t\treturn &procEntry, nil\n\t\t}\n\t\terr = Process32Next(snapshot, &procEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nfunc Getppid() (ppid int) {\n\tpe, err := getProcessEntry(Getpid())\n\tif err != nil {\n\t\treturn -1\n\t}\n\treturn int(pe.ParentProcessID)\n}\n\n// TODO(brainman): fix all needed for os\nfunc Fchdir(fd Handle) (err error)             { return syscall.EWINDOWS }\nfunc Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS }\nfunc Symlink(path, link string) (err error)    { return syscall.EWINDOWS }\n\nfunc Fchmod(fd Handle, mode uint32) (err error)        { return syscall.EWINDOWS }\nfunc Chown(path string, uid int, gid int) (err error)  { return syscall.EWINDOWS }\nfunc Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS }\nfunc Fchown(fd Handle, uid int, gid int) (err error)   { return syscall.EWINDOWS }\n\nfunc Getuid() (uid int)                  { return -1 }\nfunc Geteuid() (euid int)                { return -1 }\nfunc Getgid() (gid int)                  { return -1 }\nfunc Getegid() (egid int)                { return -1 }\nfunc Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }\n\ntype Signal int\n\nfunc (s Signal) Signal() {}\n\nfunc (s Signal) String() string {\n\tif 0 <= s && int(s) < len(signals) {\n\t\tstr := signals[s]\n\t\tif str != \"\" {\n\t\t\treturn str\n\t\t}\n\t}\n\treturn \"signal \" + itoa(int(s))\n}\n\nfunc LoadCreateSymbolicLink() error {\n\treturn procCreateSymbolicLinkW.Find()\n}\n\n// Readlink returns the destination of the named symbolic link.\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tfd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING,\n\t\tFILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tdefer CloseHandle(fd)\n\n\trdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE)\n\tvar bytesReturned uint32\n\terr = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\trdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0]))\n\tvar s string\n\tswitch rdb.ReparseTag {\n\tcase IO_REPARSE_TAG_SYMLINK:\n\t\tdata := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tcase IO_REPARSE_TAG_MOUNT_POINT:\n\t\tdata := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tdefault:\n\t\t// the path is not a symlink or junction but another type of reparse\n\t\t// point\n\t\treturn -1, syscall.ENOENT\n\t}\n\tn = copy(buf, []byte(s))\n\n\treturn n, nil\n}\n\n// GUIDFromString parses a string in the form of\n// \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\" into a GUID.\nfunc GUIDFromString(str string) (GUID, error) {\n\tguid := GUID{}\n\tstr16, err := syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\terr = clsidFromString(str16, &guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// GenerateGUID creates a new random GUID.\nfunc GenerateGUID() (GUID, error) {\n\tguid := GUID{}\n\terr := coCreateGuid(&guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// String returns the canonical string form of the GUID,\n// in the form of \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\".\nfunc (guid GUID) String() string {\n\tvar str [100]uint16\n\tchars := stringFromGUID2(&guid, &str[0], int32(len(str)))\n\tif chars <= 1 {\n\t\treturn \"\"\n\t}\n\treturn string(utf16.Decode(str[:chars-1]))\n}\n\n// KnownFolderPath returns a well-known folder path for the current user, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\treturn Token(0).KnownFolderPath(folderID, flags)\n}\n\n// KnownFolderPath returns a well-known folder path for the user token, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\tvar p *uint16\n\terr := shGetKnownFolderPath(folderID, flags, t, &p)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer CoTaskMemFree(unsafe.Pointer(p))\n\treturn UTF16PtrToString(p), nil\n}\n\n// RtlGetVersion returns the version of the underlying operating system, ignoring\n// manifest semantics but is affected by the application compatibility layer.\nfunc RtlGetVersion() *OsVersionInfoEx {\n\tinfo := &OsVersionInfoEx{}\n\tinfo.osVersionInfoSize = uint32(unsafe.Sizeof(*info))\n\t// According to documentation, this function always succeeds.\n\t// The function doesn't even check the validity of the\n\t// osVersionInfoSize member. Disassembling ntdll.dll indicates\n\t// that the documentation is indeed correct about that.\n\t_ = rtlGetVersion(info)\n\treturn info\n}\n\n// RtlGetNtVersionNumbers returns the version of the underlying operating system,\n// ignoring manifest semantics and the application compatibility layer.\nfunc RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) {\n\trtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber)\n\tbuildNumber &= 0xffff\n\treturn\n}\n\n// GetProcessPreferredUILanguages retrieves the process preferred UI languages.\nfunc GetProcessPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getProcessPreferredUILanguages)\n}\n\n// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread.\nfunc GetThreadPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getThreadPreferredUILanguages)\n}\n\n// GetUserPreferredUILanguages retrieves information about the user preferred UI languages.\nfunc GetUserPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getUserPreferredUILanguages)\n}\n\n// GetSystemPreferredUILanguages retrieves the system preferred UI languages.\nfunc GetSystemPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getSystemPreferredUILanguages)\n}\n\nfunc getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) {\n\tsize := uint32(128)\n\tfor {\n\t\tvar numLanguages uint32\n\t\tbuf := make([]uint16, size)\n\t\terr := f(flags, &numLanguages, &buf[0], &size)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbuf = buf[:size]\n\t\tif numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with \"\\0\\0\"\n\t\t\treturn []string{}, nil\n\t\t}\n\t\tif buf[len(buf)-1] == 0 {\n\t\t\tbuf = buf[:len(buf)-1] // remove terminating null\n\t\t}\n\t\tlanguages := make([]string, 0, numLanguages)\n\t\tfrom := 0\n\t\tfor i, c := range buf {\n\t\t\tif c == 0 {\n\t\t\t\tlanguages = append(languages, string(utf16.Decode(buf[from:i])))\n\t\t\t\tfrom = i + 1\n\t\t\t}\n\t\t}\n\t\treturn languages, nil\n\t}\n}\n\nfunc SetConsoleCursorPosition(console Handle, position Coord) error {\n\treturn setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position))))\n}\n\nfunc GetStartupInfo(startupInfo *StartupInfo) error {\n\tgetStartupInfo(startupInfo)\n\treturn nil\n}\n\nfunc (s NTStatus) Errno() syscall.Errno {\n\treturn rtlNtStatusToDosErrorNoTeb(s)\n}\n\nfunc langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) }\n\nfunc (s NTStatus) Error() string {\n\tb := make([]uint16, 300)\n\tn, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"NTSTATUS 0x%08x\", uint32(s))\n\t}\n\t// trim terminating \\r and \\n\n\tfor ; n > 0 && (b[n-1] == '\\n' || b[n-1] == '\\r'); n-- {\n\t}\n\treturn string(utf16.Decode(b[:n]))\n}\n\n// NewNTUnicodeString returns a new NTUnicodeString structure for use with native\n// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs\n// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTUnicodeString(s string) (*NTUnicodeString, error) {\n\ts16, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tn := uint16(len(s16) * 2)\n\treturn &NTUnicodeString{\n\t\tLength:        n - 2, // subtract 2 bytes for the NULL terminator\n\t\tMaximumLength: n,\n\t\tBuffer:        &s16[0],\n\t}, nil\n}\n\n// Slice returns a uint16 slice that aliases the data in the NTUnicodeString.\nfunc (s *NTUnicodeString) Slice() []uint16 {\n\t// Note: this rounds the length down, if it happens\n\t// to (incorrectly) be odd. Probably safer than rounding up.\n\treturn unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2]\n}\n\nfunc (s *NTUnicodeString) String() string {\n\treturn UTF16ToString(s.Slice())\n}\n\n// NewNTString returns a new NTString structure for use with native\n// NT APIs that work over the NTString type. Note that most Windows APIs\n// do not use NTString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTString(s string) (*NTString, error) {\n\tvar nts NTString\n\ts8, err := BytePtrFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tRtlInitString(&nts, s8)\n\treturn &nts, nil\n}\n\n// Slice returns a byte slice that aliases the data in the NTString.\nfunc (s *NTString) Slice() []byte {\n\tslice := unsafe.Slice(s.Buffer, s.MaximumLength)\n\treturn slice[:s.Length]\n}\n\nfunc (s *NTString) String() string {\n\treturn ByteSliceToString(s.Slice())\n}\n\n// FindResource resolves a resource of the given name and resource type.\nfunc FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) {\n\tvar namePtr, resTypePtr uintptr\n\tvar name16, resType16 *uint16\n\tvar err error\n\tresolvePtr := func(i interface{}, keep **uint16) (uintptr, error) {\n\t\tswitch v := i.(type) {\n\t\tcase string:\n\t\t\t*keep, err = UTF16PtrFromString(v)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\treturn uintptr(unsafe.Pointer(*keep)), nil\n\t\tcase ResourceID:\n\t\t\treturn uintptr(v), nil\n\t\t}\n\t\treturn 0, errorspkg.New(\"parameter must be a ResourceID or a string\")\n\t}\n\tnamePtr, err = resolvePtr(name, &name16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresTypePtr, err = resolvePtr(resType, &resType16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresInfo, err := findResource(module, namePtr, resTypePtr)\n\truntime.KeepAlive(name16)\n\truntime.KeepAlive(resType16)\n\treturn resInfo, err\n}\n\nfunc LoadResourceData(module, resInfo Handle) (data []byte, err error) {\n\tsize, err := SizeofResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tresData, err := LoadResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tptr, err := LockResource(resData)\n\tif err != nil {\n\t\treturn\n\t}\n\tdata = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size)\n\treturn\n}\n\n// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page.\ntype PSAPI_WORKING_SET_EX_BLOCK uint64\n\n// Valid returns the validity of this page.\n// If this bit is 1, the subsequent members are valid; otherwise they should be ignored.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool {\n\treturn (b & 1) == 1\n}\n\n// ShareCount is the number of processes that share this page. The maximum value of this member is 7.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 {\n\treturn b.intField(1, 3)\n}\n\n// Win32Protection is the memory protection attributes of the page. For a list of values, see\n// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 {\n\treturn b.intField(4, 11)\n}\n\n// Shared returns the shared status of this page.\n// If this bit is 1, the page can be shared.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool {\n\treturn (b & (1 << 15)) == 1\n}\n\n// Node is the NUMA node. The maximum value of this member is 63.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 {\n\treturn b.intField(16, 6)\n}\n\n// Locked returns the locked status of this page.\n// If this bit is 1, the virtual page is locked in physical memory.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool {\n\treturn (b & (1 << 22)) == 1\n}\n\n// LargePage returns the large page status of this page.\n// If this bit is 1, the page is a large page.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool {\n\treturn (b & (1 << 23)) == 1\n}\n\n// Bad returns the bad status of this page.\n// If this bit is 1, the page is has been reported as bad.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool {\n\treturn (b & (1 << 31)) == 1\n}\n\n// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 {\n\tvar mask PSAPI_WORKING_SET_EX_BLOCK\n\tfor pos := start; pos < start+length; pos++ {\n\t\tmask |= (1 << pos)\n\t}\n\n\tmasked := b & mask\n\treturn uint64(masked >> start)\n}\n\n// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process.\ntype PSAPI_WORKING_SET_EX_INFORMATION struct {\n\t// The virtual address.\n\tVirtualAddress Pointer\n\t// A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress.\n\tVirtualAttributes PSAPI_WORKING_SET_EX_BLOCK\n}\n\n// CreatePseudoConsole creates a windows pseudo console.\nfunc CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole)\n}\n\n// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`.\nfunc ResizePseudoConsole(pconsole Handle, size Coord) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size))))\n}\n\n// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb.\nconst (\n\tCBR_110    = 110\n\tCBR_300    = 300\n\tCBR_600    = 600\n\tCBR_1200   = 1200\n\tCBR_2400   = 2400\n\tCBR_4800   = 4800\n\tCBR_9600   = 9600\n\tCBR_14400  = 14400\n\tCBR_19200  = 19200\n\tCBR_38400  = 38400\n\tCBR_57600  = 57600\n\tCBR_115200 = 115200\n\tCBR_128000 = 128000\n\tCBR_256000 = 256000\n\n\tDTR_CONTROL_DISABLE   = 0x00000000\n\tDTR_CONTROL_ENABLE    = 0x00000010\n\tDTR_CONTROL_HANDSHAKE = 0x00000020\n\n\tRTS_CONTROL_DISABLE   = 0x00000000\n\tRTS_CONTROL_ENABLE    = 0x00001000\n\tRTS_CONTROL_HANDSHAKE = 0x00002000\n\tRTS_CONTROL_TOGGLE    = 0x00003000\n\n\tNOPARITY    = 0\n\tODDPARITY   = 1\n\tEVENPARITY  = 2\n\tMARKPARITY  = 3\n\tSPACEPARITY = 4\n\n\tONESTOPBIT   = 0\n\tONE5STOPBITS = 1\n\tTWOSTOPBITS  = 2\n)\n\n// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction.\nconst (\n\tSETXOFF  = 1\n\tSETXON   = 2\n\tSETRTS   = 3\n\tCLRRTS   = 4\n\tSETDTR   = 5\n\tCLRDTR   = 6\n\tSETBREAK = 8\n\tCLRBREAK = 9\n)\n\n// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm.\nconst (\n\tPURGE_TXABORT = 0x0001\n\tPURGE_RXABORT = 0x0002\n\tPURGE_TXCLEAR = 0x0004\n\tPURGE_RXCLEAR = 0x0008\n)\n\n// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask.\nconst (\n\tEV_RXCHAR  = 0x0001\n\tEV_RXFLAG  = 0x0002\n\tEV_TXEMPTY = 0x0004\n\tEV_CTS     = 0x0008\n\tEV_DSR     = 0x0010\n\tEV_RLSD    = 0x0020\n\tEV_BREAK   = 0x0040\n\tEV_ERR     = 0x0080\n\tEV_RING    = 0x0100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"net\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and\n// other native functions.\ntype NTStatus uint32\n\nconst (\n\t// Invented values to support what package os expects.\n\tO_RDONLY   = 0x00000\n\tO_WRONLY   = 0x00001\n\tO_RDWR     = 0x00002\n\tO_CREAT    = 0x00040\n\tO_EXCL     = 0x00080\n\tO_NOCTTY   = 0x00100\n\tO_TRUNC    = 0x00200\n\tO_NONBLOCK = 0x00800\n\tO_APPEND   = 0x00400\n\tO_SYNC     = 0x01000\n\tO_ASYNC    = 0x02000\n\tO_CLOEXEC  = 0x80000\n)\n\nconst (\n\t// More invented values for signals\n\tSIGHUP  = Signal(0x1)\n\tSIGINT  = Signal(0x2)\n\tSIGQUIT = Signal(0x3)\n\tSIGILL  = Signal(0x4)\n\tSIGTRAP = Signal(0x5)\n\tSIGABRT = Signal(0x6)\n\tSIGBUS  = Signal(0x7)\n\tSIGFPE  = Signal(0x8)\n\tSIGKILL = Signal(0x9)\n\tSIGSEGV = Signal(0xb)\n\tSIGPIPE = Signal(0xd)\n\tSIGALRM = Signal(0xe)\n\tSIGTERM = Signal(0xf)\n)\n\nvar signals = [...]string{\n\t1:  \"hangup\",\n\t2:  \"interrupt\",\n\t3:  \"quit\",\n\t4:  \"illegal instruction\",\n\t5:  \"trace/breakpoint trap\",\n\t6:  \"aborted\",\n\t7:  \"bus error\",\n\t8:  \"floating point exception\",\n\t9:  \"killed\",\n\t10: \"user defined signal 1\",\n\t11: \"segmentation fault\",\n\t12: \"user defined signal 2\",\n\t13: \"broken pipe\",\n\t14: \"alarm clock\",\n\t15: \"terminated\",\n}\n\n// File flags for [os.OpenFile]. The O_ prefix is used to indicate\n// that these flags are specific to the OpenFile function.\nconst (\n\tO_FILE_FLAG_OPEN_NO_RECALL     = FILE_FLAG_OPEN_NO_RECALL\n\tO_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT\n\tO_FILE_FLAG_SESSION_AWARE      = FILE_FLAG_SESSION_AWARE\n\tO_FILE_FLAG_POSIX_SEMANTICS    = FILE_FLAG_POSIX_SEMANTICS\n\tO_FILE_FLAG_BACKUP_SEMANTICS   = FILE_FLAG_BACKUP_SEMANTICS\n\tO_FILE_FLAG_DELETE_ON_CLOSE    = FILE_FLAG_DELETE_ON_CLOSE\n\tO_FILE_FLAG_SEQUENTIAL_SCAN    = FILE_FLAG_SEQUENTIAL_SCAN\n\tO_FILE_FLAG_RANDOM_ACCESS      = FILE_FLAG_RANDOM_ACCESS\n\tO_FILE_FLAG_NO_BUFFERING       = FILE_FLAG_NO_BUFFERING\n\tO_FILE_FLAG_OVERLAPPED         = FILE_FLAG_OVERLAPPED\n\tO_FILE_FLAG_WRITE_THROUGH      = FILE_FLAG_WRITE_THROUGH\n)\n\nconst (\n\tFILE_READ_DATA        = 0x00000001\n\tFILE_READ_ATTRIBUTES  = 0x00000080\n\tFILE_READ_EA          = 0x00000008\n\tFILE_WRITE_DATA       = 0x00000002\n\tFILE_WRITE_ATTRIBUTES = 0x00000100\n\tFILE_WRITE_EA         = 0x00000010\n\tFILE_APPEND_DATA      = 0x00000004\n\tFILE_EXECUTE          = 0x00000020\n\n\tFILE_GENERIC_READ    = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE\n\tFILE_GENERIC_WRITE   = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE\n\tFILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE\n\n\tFILE_LIST_DIRECTORY = 0x00000001\n\tFILE_TRAVERSE       = 0x00000020\n\n\tFILE_SHARE_READ   = 0x00000001\n\tFILE_SHARE_WRITE  = 0x00000002\n\tFILE_SHARE_DELETE = 0x00000004\n\n\tFILE_ATTRIBUTE_READONLY              = 0x00000001\n\tFILE_ATTRIBUTE_HIDDEN                = 0x00000002\n\tFILE_ATTRIBUTE_SYSTEM                = 0x00000004\n\tFILE_ATTRIBUTE_DIRECTORY             = 0x00000010\n\tFILE_ATTRIBUTE_ARCHIVE               = 0x00000020\n\tFILE_ATTRIBUTE_DEVICE                = 0x00000040\n\tFILE_ATTRIBUTE_NORMAL                = 0x00000080\n\tFILE_ATTRIBUTE_TEMPORARY             = 0x00000100\n\tFILE_ATTRIBUTE_SPARSE_FILE           = 0x00000200\n\tFILE_ATTRIBUTE_REPARSE_POINT         = 0x00000400\n\tFILE_ATTRIBUTE_COMPRESSED            = 0x00000800\n\tFILE_ATTRIBUTE_OFFLINE               = 0x00001000\n\tFILE_ATTRIBUTE_NOT_CONTENT_INDEXED   = 0x00002000\n\tFILE_ATTRIBUTE_ENCRYPTED             = 0x00004000\n\tFILE_ATTRIBUTE_INTEGRITY_STREAM      = 0x00008000\n\tFILE_ATTRIBUTE_VIRTUAL               = 0x00010000\n\tFILE_ATTRIBUTE_NO_SCRUB_DATA         = 0x00020000\n\tFILE_ATTRIBUTE_RECALL_ON_OPEN        = 0x00040000\n\tFILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000\n\n\tINVALID_FILE_ATTRIBUTES = 0xffffffff\n\n\tCREATE_NEW        = 1\n\tCREATE_ALWAYS     = 2\n\tOPEN_EXISTING     = 3\n\tOPEN_ALWAYS       = 4\n\tTRUNCATE_EXISTING = 5\n\n\tFILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000\n\tFILE_FLAG_FIRST_PIPE_INSTANCE   = 0x00080000\n\tFILE_FLAG_OPEN_NO_RECALL        = 0x00100000\n\tFILE_FLAG_OPEN_REPARSE_POINT    = 0x00200000\n\tFILE_FLAG_SESSION_AWARE         = 0x00800000\n\tFILE_FLAG_POSIX_SEMANTICS       = 0x01000000\n\tFILE_FLAG_BACKUP_SEMANTICS      = 0x02000000\n\tFILE_FLAG_DELETE_ON_CLOSE       = 0x04000000\n\tFILE_FLAG_SEQUENTIAL_SCAN       = 0x08000000\n\tFILE_FLAG_RANDOM_ACCESS         = 0x10000000\n\tFILE_FLAG_NO_BUFFERING          = 0x20000000\n\tFILE_FLAG_OVERLAPPED            = 0x40000000\n\tFILE_FLAG_WRITE_THROUGH         = 0x80000000\n\n\tHANDLE_FLAG_INHERIT    = 0x00000001\n\tSTARTF_USESTDHANDLES   = 0x00000100\n\tSTARTF_USESHOWWINDOW   = 0x00000001\n\tDUPLICATE_CLOSE_SOURCE = 0x00000001\n\tDUPLICATE_SAME_ACCESS  = 0x00000002\n\n\tSTD_INPUT_HANDLE  = -10 & (1<<32 - 1)\n\tSTD_OUTPUT_HANDLE = -11 & (1<<32 - 1)\n\tSTD_ERROR_HANDLE  = -12 & (1<<32 - 1)\n\n\tFILE_BEGIN   = 0\n\tFILE_CURRENT = 1\n\tFILE_END     = 2\n\n\tLANG_ENGLISH       = 0x09\n\tSUBLANG_ENGLISH_US = 0x01\n\n\tFORMAT_MESSAGE_ALLOCATE_BUFFER = 256\n\tFORMAT_MESSAGE_IGNORE_INSERTS  = 512\n\tFORMAT_MESSAGE_FROM_STRING     = 1024\n\tFORMAT_MESSAGE_FROM_HMODULE    = 2048\n\tFORMAT_MESSAGE_FROM_SYSTEM     = 4096\n\tFORMAT_MESSAGE_ARGUMENT_ARRAY  = 8192\n\tFORMAT_MESSAGE_MAX_WIDTH_MASK  = 255\n\n\tMAX_PATH      = 260\n\tMAX_LONG_PATH = 32768\n\n\tMAX_MODULE_NAME32 = 255\n\n\tMAX_COMPUTERNAME_LENGTH = 15\n\n\tMAX_DHCPV6_DUID_LENGTH = 130\n\n\tMAX_DNS_SUFFIX_STRING_LENGTH = 256\n\n\tTIME_ZONE_ID_UNKNOWN  = 0\n\tTIME_ZONE_ID_STANDARD = 1\n\n\tTIME_ZONE_ID_DAYLIGHT = 2\n\tIGNORE                = 0\n\tINFINITE              = 0xffffffff\n\n\tWAIT_ABANDONED = 0x00000080\n\tWAIT_OBJECT_0  = 0x00000000\n\tWAIT_FAILED    = 0xFFFFFFFF\n\n\t// Access rights for process.\n\tPROCESS_ALL_ACCESS                = 0xFFFF\n\tPROCESS_CREATE_PROCESS            = 0x0080\n\tPROCESS_CREATE_THREAD             = 0x0002\n\tPROCESS_DUP_HANDLE                = 0x0040\n\tPROCESS_QUERY_INFORMATION         = 0x0400\n\tPROCESS_QUERY_LIMITED_INFORMATION = 0x1000\n\tPROCESS_SET_INFORMATION           = 0x0200\n\tPROCESS_SET_QUOTA                 = 0x0100\n\tPROCESS_SUSPEND_RESUME            = 0x0800\n\tPROCESS_TERMINATE                 = 0x0001\n\tPROCESS_VM_OPERATION              = 0x0008\n\tPROCESS_VM_READ                   = 0x0010\n\tPROCESS_VM_WRITE                  = 0x0020\n\n\t// Access rights for thread.\n\tTHREAD_DIRECT_IMPERSONATION      = 0x0200\n\tTHREAD_GET_CONTEXT               = 0x0008\n\tTHREAD_IMPERSONATE               = 0x0100\n\tTHREAD_QUERY_INFORMATION         = 0x0040\n\tTHREAD_QUERY_LIMITED_INFORMATION = 0x0800\n\tTHREAD_SET_CONTEXT               = 0x0010\n\tTHREAD_SET_INFORMATION           = 0x0020\n\tTHREAD_SET_LIMITED_INFORMATION   = 0x0400\n\tTHREAD_SET_THREAD_TOKEN          = 0x0080\n\tTHREAD_SUSPEND_RESUME            = 0x0002\n\tTHREAD_TERMINATE                 = 0x0001\n\n\tFILE_MAP_COPY    = 0x01\n\tFILE_MAP_WRITE   = 0x02\n\tFILE_MAP_READ    = 0x04\n\tFILE_MAP_EXECUTE = 0x20\n\n\tCTRL_C_EVENT        = 0\n\tCTRL_BREAK_EVENT    = 1\n\tCTRL_CLOSE_EVENT    = 2\n\tCTRL_LOGOFF_EVENT   = 5\n\tCTRL_SHUTDOWN_EVENT = 6\n\n\t// Windows reserves errors >= 1<<29 for application use.\n\tAPPLICATION_ERROR = 1 << 29\n)\n\nconst (\n\t// Process creation flags.\n\tCREATE_BREAKAWAY_FROM_JOB        = 0x01000000\n\tCREATE_DEFAULT_ERROR_MODE        = 0x04000000\n\tCREATE_NEW_CONSOLE               = 0x00000010\n\tCREATE_NEW_PROCESS_GROUP         = 0x00000200\n\tCREATE_NO_WINDOW                 = 0x08000000\n\tCREATE_PROTECTED_PROCESS         = 0x00040000\n\tCREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000\n\tCREATE_SEPARATE_WOW_VDM          = 0x00000800\n\tCREATE_SHARED_WOW_VDM            = 0x00001000\n\tCREATE_SUSPENDED                 = 0x00000004\n\tCREATE_UNICODE_ENVIRONMENT       = 0x00000400\n\tDEBUG_ONLY_THIS_PROCESS          = 0x00000002\n\tDEBUG_PROCESS                    = 0x00000001\n\tDETACHED_PROCESS                 = 0x00000008\n\tEXTENDED_STARTUPINFO_PRESENT     = 0x00080000\n\tINHERIT_PARENT_AFFINITY          = 0x00010000\n)\n\nconst (\n\t// attributes for ProcThreadAttributeList\n\tPROC_THREAD_ATTRIBUTE_PARENT_PROCESS    = 0x00020000\n\tPROC_THREAD_ATTRIBUTE_HANDLE_LIST       = 0x00020002\n\tPROC_THREAD_ATTRIBUTE_GROUP_AFFINITY    = 0x00030003\n\tPROC_THREAD_ATTRIBUTE_PREFERRED_NODE    = 0x00020004\n\tPROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR   = 0x00030005\n\tPROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007\n\tPROC_THREAD_ATTRIBUTE_UMS_THREAD        = 0x00030006\n\tPROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL  = 0x0002000b\n\tPROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE     = 0x00020016\n)\n\nconst (\n\t// flags for CreateToolhelp32Snapshot\n\tTH32CS_SNAPHEAPLIST = 0x01\n\tTH32CS_SNAPPROCESS  = 0x02\n\tTH32CS_SNAPTHREAD   = 0x04\n\tTH32CS_SNAPMODULE   = 0x08\n\tTH32CS_SNAPMODULE32 = 0x10\n\tTH32CS_SNAPALL      = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD\n\tTH32CS_INHERIT      = 0x80000000\n)\n\nconst (\n\t// flags for EnumProcessModulesEx\n\tLIST_MODULES_32BIT   = 0x01\n\tLIST_MODULES_64BIT   = 0x02\n\tLIST_MODULES_ALL     = 0x03\n\tLIST_MODULES_DEFAULT = 0x00\n)\n\nconst (\n\t// filters for ReadDirectoryChangesW and FindFirstChangeNotificationW\n\tFILE_NOTIFY_CHANGE_FILE_NAME   = 0x001\n\tFILE_NOTIFY_CHANGE_DIR_NAME    = 0x002\n\tFILE_NOTIFY_CHANGE_ATTRIBUTES  = 0x004\n\tFILE_NOTIFY_CHANGE_SIZE        = 0x008\n\tFILE_NOTIFY_CHANGE_LAST_WRITE  = 0x010\n\tFILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020\n\tFILE_NOTIFY_CHANGE_CREATION    = 0x040\n\tFILE_NOTIFY_CHANGE_SECURITY    = 0x100\n)\n\nconst (\n\t// do not reorder\n\tFILE_ACTION_ADDED = iota + 1\n\tFILE_ACTION_REMOVED\n\tFILE_ACTION_MODIFIED\n\tFILE_ACTION_RENAMED_OLD_NAME\n\tFILE_ACTION_RENAMED_NEW_NAME\n)\n\nconst (\n\t// wincrypt.h\n\t/* certenrolld_begin -- PROV_RSA_*/\n\tPROV_RSA_FULL      = 1\n\tPROV_RSA_SIG       = 2\n\tPROV_DSS           = 3\n\tPROV_FORTEZZA      = 4\n\tPROV_MS_EXCHANGE   = 5\n\tPROV_SSL           = 6\n\tPROV_RSA_SCHANNEL  = 12\n\tPROV_DSS_DH        = 13\n\tPROV_EC_ECDSA_SIG  = 14\n\tPROV_EC_ECNRA_SIG  = 15\n\tPROV_EC_ECDSA_FULL = 16\n\tPROV_EC_ECNRA_FULL = 17\n\tPROV_DH_SCHANNEL   = 18\n\tPROV_SPYRUS_LYNKS  = 20\n\tPROV_RNG           = 21\n\tPROV_INTEL_SEC     = 22\n\tPROV_REPLACE_OWF   = 23\n\tPROV_RSA_AES       = 24\n\n\t/* dwFlags definitions for CryptAcquireContext */\n\tCRYPT_VERIFYCONTEXT              = 0xF0000000\n\tCRYPT_NEWKEYSET                  = 0x00000008\n\tCRYPT_DELETEKEYSET               = 0x00000010\n\tCRYPT_MACHINE_KEYSET             = 0x00000020\n\tCRYPT_SILENT                     = 0x00000040\n\tCRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080\n\n\t/* Flags for PFXImportCertStore */\n\tCRYPT_EXPORTABLE                   = 0x00000001\n\tCRYPT_USER_PROTECTED               = 0x00000002\n\tCRYPT_USER_KEYSET                  = 0x00001000\n\tPKCS12_PREFER_CNG_KSP              = 0x00000100\n\tPKCS12_ALWAYS_CNG_KSP              = 0x00000200\n\tPKCS12_ALLOW_OVERWRITE_KEY         = 0x00004000\n\tPKCS12_NO_PERSIST_KEY              = 0x00008000\n\tPKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010\n\n\t/* Flags for CryptAcquireCertificatePrivateKey */\n\tCRYPT_ACQUIRE_CACHE_FLAG             = 0x00000001\n\tCRYPT_ACQUIRE_USE_PROV_INFO_FLAG     = 0x00000002\n\tCRYPT_ACQUIRE_COMPARE_KEY_FLAG       = 0x00000004\n\tCRYPT_ACQUIRE_NO_HEALING             = 0x00000008\n\tCRYPT_ACQUIRE_SILENT_FLAG            = 0x00000040\n\tCRYPT_ACQUIRE_WINDOW_HANDLE_FLAG     = 0x00000080\n\tCRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK  = 0x00070000\n\tCRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG  = 0x00010000\n\tCRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000\n\tCRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG   = 0x00040000\n\n\t/* pdwKeySpec for CryptAcquireCertificatePrivateKey */\n\tAT_KEYEXCHANGE       = 1\n\tAT_SIGNATURE         = 2\n\tCERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF\n\n\t/* Default usage match type is AND with value zero */\n\tUSAGE_MATCH_TYPE_AND = 0\n\tUSAGE_MATCH_TYPE_OR  = 1\n\n\t/* msgAndCertEncodingType values for CertOpenStore function */\n\tX509_ASN_ENCODING   = 0x00000001\n\tPKCS_7_ASN_ENCODING = 0x00010000\n\n\t/* storeProvider values for CertOpenStore function */\n\tCERT_STORE_PROV_MSG               = 1\n\tCERT_STORE_PROV_MEMORY            = 2\n\tCERT_STORE_PROV_FILE              = 3\n\tCERT_STORE_PROV_REG               = 4\n\tCERT_STORE_PROV_PKCS7             = 5\n\tCERT_STORE_PROV_SERIALIZED        = 6\n\tCERT_STORE_PROV_FILENAME_A        = 7\n\tCERT_STORE_PROV_FILENAME_W        = 8\n\tCERT_STORE_PROV_FILENAME          = CERT_STORE_PROV_FILENAME_W\n\tCERT_STORE_PROV_SYSTEM_A          = 9\n\tCERT_STORE_PROV_SYSTEM_W          = 10\n\tCERT_STORE_PROV_SYSTEM            = CERT_STORE_PROV_SYSTEM_W\n\tCERT_STORE_PROV_COLLECTION        = 11\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_A = 12\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_W = 13\n\tCERT_STORE_PROV_SYSTEM_REGISTRY   = CERT_STORE_PROV_SYSTEM_REGISTRY_W\n\tCERT_STORE_PROV_PHYSICAL_W        = 14\n\tCERT_STORE_PROV_PHYSICAL          = CERT_STORE_PROV_PHYSICAL_W\n\tCERT_STORE_PROV_SMART_CARD_W      = 15\n\tCERT_STORE_PROV_SMART_CARD        = CERT_STORE_PROV_SMART_CARD_W\n\tCERT_STORE_PROV_LDAP_W            = 16\n\tCERT_STORE_PROV_LDAP              = CERT_STORE_PROV_LDAP_W\n\tCERT_STORE_PROV_PKCS12            = 17\n\n\t/* store characteristics (low WORD of flag) for CertOpenStore function */\n\tCERT_STORE_NO_CRYPT_RELEASE_FLAG            = 0x00000001\n\tCERT_STORE_SET_LOCALIZED_NAME_FLAG          = 0x00000002\n\tCERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004\n\tCERT_STORE_DELETE_FLAG                      = 0x00000010\n\tCERT_STORE_UNSAFE_PHYSICAL_FLAG             = 0x00000020\n\tCERT_STORE_SHARE_STORE_FLAG                 = 0x00000040\n\tCERT_STORE_SHARE_CONTEXT_FLAG               = 0x00000080\n\tCERT_STORE_MANIFOLD_FLAG                    = 0x00000100\n\tCERT_STORE_ENUM_ARCHIVED_FLAG               = 0x00000200\n\tCERT_STORE_UPDATE_KEYID_FLAG                = 0x00000400\n\tCERT_STORE_BACKUP_RESTORE_FLAG              = 0x00000800\n\tCERT_STORE_MAXIMUM_ALLOWED_FLAG             = 0x00001000\n\tCERT_STORE_CREATE_NEW_FLAG                  = 0x00002000\n\tCERT_STORE_OPEN_EXISTING_FLAG               = 0x00004000\n\tCERT_STORE_READONLY_FLAG                    = 0x00008000\n\n\t/* store locations (high WORD of flag) for CertOpenStore function */\n\tCERT_SYSTEM_STORE_CURRENT_USER               = 0x00010000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE              = 0x00020000\n\tCERT_SYSTEM_STORE_CURRENT_SERVICE            = 0x00040000\n\tCERT_SYSTEM_STORE_SERVICES                   = 0x00050000\n\tCERT_SYSTEM_STORE_USERS                      = 0x00060000\n\tCERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY  = 0x00070000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE   = 0x00090000\n\tCERT_SYSTEM_STORE_UNPROTECTED_FLAG           = 0x40000000\n\tCERT_SYSTEM_STORE_RELOCATE_FLAG              = 0x80000000\n\n\t/* Miscellaneous high-WORD flags for CertOpenStore function */\n\tCERT_REGISTRY_STORE_REMOTE_FLAG      = 0x00010000\n\tCERT_REGISTRY_STORE_SERIALIZED_FLAG  = 0x00020000\n\tCERT_REGISTRY_STORE_ROAMING_FLAG     = 0x00040000\n\tCERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000\n\tCERT_REGISTRY_STORE_LM_GPT_FLAG      = 0x01000000\n\tCERT_REGISTRY_STORE_CLIENT_GPT_FLAG  = 0x80000000\n\tCERT_FILE_STORE_COMMIT_ENABLE_FLAG   = 0x00010000\n\tCERT_LDAP_STORE_SIGN_FLAG            = 0x00010000\n\tCERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG  = 0x00020000\n\tCERT_LDAP_STORE_OPENED_FLAG          = 0x00040000\n\tCERT_LDAP_STORE_UNBIND_FLAG          = 0x00080000\n\n\t/* addDisposition values for CertAddCertificateContextToStore function */\n\tCERT_STORE_ADD_NEW                                 = 1\n\tCERT_STORE_ADD_USE_EXISTING                        = 2\n\tCERT_STORE_ADD_REPLACE_EXISTING                    = 3\n\tCERT_STORE_ADD_ALWAYS                              = 4\n\tCERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5\n\tCERT_STORE_ADD_NEWER                               = 6\n\tCERT_STORE_ADD_NEWER_INHERIT_PROPERTIES            = 7\n\n\t/* ErrorStatus values for CertTrustStatus struct */\n\tCERT_TRUST_NO_ERROR                          = 0x00000000\n\tCERT_TRUST_IS_NOT_TIME_VALID                 = 0x00000001\n\tCERT_TRUST_IS_REVOKED                        = 0x00000004\n\tCERT_TRUST_IS_NOT_SIGNATURE_VALID            = 0x00000008\n\tCERT_TRUST_IS_NOT_VALID_FOR_USAGE            = 0x00000010\n\tCERT_TRUST_IS_UNTRUSTED_ROOT                 = 0x00000020\n\tCERT_TRUST_REVOCATION_STATUS_UNKNOWN         = 0x00000040\n\tCERT_TRUST_IS_CYCLIC                         = 0x00000080\n\tCERT_TRUST_INVALID_EXTENSION                 = 0x00000100\n\tCERT_TRUST_INVALID_POLICY_CONSTRAINTS        = 0x00000200\n\tCERT_TRUST_INVALID_BASIC_CONSTRAINTS         = 0x00000400\n\tCERT_TRUST_INVALID_NAME_CONSTRAINTS          = 0x00000800\n\tCERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000\n\tCERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT   = 0x00002000\n\tCERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000\n\tCERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT      = 0x00008000\n\tCERT_TRUST_IS_PARTIAL_CHAIN                  = 0x00010000\n\tCERT_TRUST_CTL_IS_NOT_TIME_VALID             = 0x00020000\n\tCERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID        = 0x00040000\n\tCERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE        = 0x00080000\n\tCERT_TRUST_HAS_WEAK_SIGNATURE                = 0x00100000\n\tCERT_TRUST_IS_OFFLINE_REVOCATION             = 0x01000000\n\tCERT_TRUST_NO_ISSUANCE_CHAIN_POLICY          = 0x02000000\n\tCERT_TRUST_IS_EXPLICIT_DISTRUST              = 0x04000000\n\tCERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT    = 0x08000000\n\n\t/* InfoStatus values for CertTrustStatus struct */\n\tCERT_TRUST_HAS_EXACT_MATCH_ISSUER        = 0x00000001\n\tCERT_TRUST_HAS_KEY_MATCH_ISSUER          = 0x00000002\n\tCERT_TRUST_HAS_NAME_MATCH_ISSUER         = 0x00000004\n\tCERT_TRUST_IS_SELF_SIGNED                = 0x00000008\n\tCERT_TRUST_HAS_PREFERRED_ISSUER          = 0x00000100\n\tCERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY     = 0x00000400\n\tCERT_TRUST_HAS_VALID_NAME_CONSTRAINTS    = 0x00000400\n\tCERT_TRUST_IS_PEER_TRUSTED               = 0x00000800\n\tCERT_TRUST_HAS_CRL_VALIDITY_EXTENDED     = 0x00001000\n\tCERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000\n\tCERT_TRUST_IS_CA_TRUSTED                 = 0x00004000\n\tCERT_TRUST_IS_COMPLEX_CHAIN              = 0x00010000\n\n\t/* Certificate Information Flags */\n\tCERT_INFO_VERSION_FLAG                 = 1\n\tCERT_INFO_SERIAL_NUMBER_FLAG           = 2\n\tCERT_INFO_SIGNATURE_ALGORITHM_FLAG     = 3\n\tCERT_INFO_ISSUER_FLAG                  = 4\n\tCERT_INFO_NOT_BEFORE_FLAG              = 5\n\tCERT_INFO_NOT_AFTER_FLAG               = 6\n\tCERT_INFO_SUBJECT_FLAG                 = 7\n\tCERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8\n\tCERT_INFO_ISSUER_UNIQUE_ID_FLAG        = 9\n\tCERT_INFO_SUBJECT_UNIQUE_ID_FLAG       = 10\n\tCERT_INFO_EXTENSION_FLAG               = 11\n\n\t/* dwFindType for CertFindCertificateInStore  */\n\tCERT_COMPARE_MASK                     = 0xFFFF\n\tCERT_COMPARE_SHIFT                    = 16\n\tCERT_COMPARE_ANY                      = 0\n\tCERT_COMPARE_SHA1_HASH                = 1\n\tCERT_COMPARE_NAME                     = 2\n\tCERT_COMPARE_ATTR                     = 3\n\tCERT_COMPARE_MD5_HASH                 = 4\n\tCERT_COMPARE_PROPERTY                 = 5\n\tCERT_COMPARE_PUBLIC_KEY               = 6\n\tCERT_COMPARE_HASH                     = CERT_COMPARE_SHA1_HASH\n\tCERT_COMPARE_NAME_STR_A               = 7\n\tCERT_COMPARE_NAME_STR_W               = 8\n\tCERT_COMPARE_KEY_SPEC                 = 9\n\tCERT_COMPARE_ENHKEY_USAGE             = 10\n\tCERT_COMPARE_CTL_USAGE                = CERT_COMPARE_ENHKEY_USAGE\n\tCERT_COMPARE_SUBJECT_CERT             = 11\n\tCERT_COMPARE_ISSUER_OF                = 12\n\tCERT_COMPARE_EXISTING                 = 13\n\tCERT_COMPARE_SIGNATURE_HASH           = 14\n\tCERT_COMPARE_KEY_IDENTIFIER           = 15\n\tCERT_COMPARE_CERT_ID                  = 16\n\tCERT_COMPARE_CROSS_CERT_DIST_POINTS   = 17\n\tCERT_COMPARE_PUBKEY_MD5_HASH          = 18\n\tCERT_COMPARE_SUBJECT_INFO_ACCESS      = 19\n\tCERT_COMPARE_HASH_STR                 = 20\n\tCERT_COMPARE_HAS_PRIVATE_KEY          = 21\n\tCERT_FIND_ANY                         = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SHA1_HASH                   = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_MD5_HASH                    = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SIGNATURE_HASH              = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_KEY_IDENTIFIER              = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH                        = CERT_FIND_SHA1_HASH\n\tCERT_FIND_PROPERTY                    = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBLIC_KEY                  = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_NAME                = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_ATTR                = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_ISSUER_NAME                 = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_ATTR                 = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_SUBJECT_STR_A               = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR_W               = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR                 = CERT_FIND_SUBJECT_STR_W\n\tCERT_FIND_ISSUER_STR_A                = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR_W                = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR                  = CERT_FIND_ISSUER_STR_W\n\tCERT_FIND_KEY_SPEC                    = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ENHKEY_USAGE                = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CTL_USAGE                   = CERT_FIND_ENHKEY_USAGE\n\tCERT_FIND_SUBJECT_CERT                = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ISSUER_OF                   = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)\n\tCERT_FIND_EXISTING                    = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CERT_ID                     = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CROSS_CERT_DIST_POINTS      = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBKEY_MD5_HASH             = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_INFO_ACCESS         = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH_STR                    = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HAS_PRIVATE_KEY             = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG  = 0x1\n\tCERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG  = 0x2\n\tCERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4\n\tCERT_FIND_NO_ENHKEY_USAGE_FLAG        = 0x8\n\tCERT_FIND_OR_ENHKEY_USAGE_FLAG        = 0x10\n\tCERT_FIND_VALID_ENHKEY_USAGE_FLAG     = 0x20\n\tCERT_FIND_OPTIONAL_CTL_USAGE_FLAG     = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG\n\tCERT_FIND_EXT_ONLY_CTL_USAGE_FLAG     = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_PROP_ONLY_CTL_USAGE_FLAG    = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_NO_CTL_USAGE_FLAG           = CERT_FIND_NO_ENHKEY_USAGE_FLAG\n\tCERT_FIND_OR_CTL_USAGE_FLAG           = CERT_FIND_OR_ENHKEY_USAGE_FLAG\n\tCERT_FIND_VALID_CTL_USAGE_FLAG        = CERT_FIND_VALID_ENHKEY_USAGE_FLAG\n\n\t/* policyOID values for CertVerifyCertificateChainPolicy function */\n\tCERT_CHAIN_POLICY_BASE              = 1\n\tCERT_CHAIN_POLICY_AUTHENTICODE      = 2\n\tCERT_CHAIN_POLICY_AUTHENTICODE_TS   = 3\n\tCERT_CHAIN_POLICY_SSL               = 4\n\tCERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5\n\tCERT_CHAIN_POLICY_NT_AUTH           = 6\n\tCERT_CHAIN_POLICY_MICROSOFT_ROOT    = 7\n\tCERT_CHAIN_POLICY_EV                = 8\n\tCERT_CHAIN_POLICY_SSL_F12           = 9\n\n\t/* flag for dwFindType CertFindChainInStore  */\n\tCERT_CHAIN_FIND_BY_ISSUER = 1\n\n\t/* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG    = 0x0001\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG  = 0x0002\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004\n\tCERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG  = 0x0008\n\tCERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG         = 0x4000\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG     = 0x8000\n\n\t/* Certificate Store close flags */\n\tCERT_CLOSE_STORE_FORCE_FLAG = 0x00000001\n\tCERT_CLOSE_STORE_CHECK_FLAG = 0x00000002\n\n\t/* CryptQueryObject object type */\n\tCERT_QUERY_OBJECT_FILE = 1\n\tCERT_QUERY_OBJECT_BLOB = 2\n\n\t/* CryptQueryObject content type flags */\n\tCERT_QUERY_CONTENT_CERT                    = 1\n\tCERT_QUERY_CONTENT_CTL                     = 2\n\tCERT_QUERY_CONTENT_CRL                     = 3\n\tCERT_QUERY_CONTENT_SERIALIZED_STORE        = 4\n\tCERT_QUERY_CONTENT_SERIALIZED_CERT         = 5\n\tCERT_QUERY_CONTENT_SERIALIZED_CTL          = 6\n\tCERT_QUERY_CONTENT_SERIALIZED_CRL          = 7\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED            = 8\n\tCERT_QUERY_CONTENT_PKCS7_UNSIGNED          = 9\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED      = 10\n\tCERT_QUERY_CONTENT_PKCS10                  = 11\n\tCERT_QUERY_CONTENT_PFX                     = 12\n\tCERT_QUERY_CONTENT_CERT_PAIR               = 13\n\tCERT_QUERY_CONTENT_PFX_AND_LOAD            = 14\n\tCERT_QUERY_CONTENT_FLAG_CERT               = (1 << CERT_QUERY_CONTENT_CERT)\n\tCERT_QUERY_CONTENT_FLAG_CTL                = (1 << CERT_QUERY_CONTENT_CTL)\n\tCERT_QUERY_CONTENT_FLAG_CRL                = (1 << CERT_QUERY_CONTENT_CRL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE   = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT    = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED       = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED     = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS10             = (1 << CERT_QUERY_CONTENT_PKCS10)\n\tCERT_QUERY_CONTENT_FLAG_PFX                = (1 << CERT_QUERY_CONTENT_PFX)\n\tCERT_QUERY_CONTENT_FLAG_CERT_PAIR          = (1 << CERT_QUERY_CONTENT_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD       = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD)\n\tCERT_QUERY_CONTENT_FLAG_ALL                = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT    = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)\n\n\t/* CryptQueryObject format type flags */\n\tCERT_QUERY_FORMAT_BINARY                     = 1\n\tCERT_QUERY_FORMAT_BASE64_ENCODED             = 2\n\tCERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED      = 3\n\tCERT_QUERY_FORMAT_FLAG_BINARY                = (1 << CERT_QUERY_FORMAT_BINARY)\n\tCERT_QUERY_FORMAT_FLAG_BASE64_ENCODED        = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ALL                   = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED)\n\n\t/* CertGetNameString name types */\n\tCERT_NAME_EMAIL_TYPE            = 1\n\tCERT_NAME_RDN_TYPE              = 2\n\tCERT_NAME_ATTR_TYPE             = 3\n\tCERT_NAME_SIMPLE_DISPLAY_TYPE   = 4\n\tCERT_NAME_FRIENDLY_DISPLAY_TYPE = 5\n\tCERT_NAME_DNS_TYPE              = 6\n\tCERT_NAME_URL_TYPE              = 7\n\tCERT_NAME_UPN_TYPE              = 8\n\n\t/* CertGetNameString flags */\n\tCERT_NAME_ISSUER_FLAG              = 0x1\n\tCERT_NAME_DISABLE_IE4_UTF8_FLAG    = 0x10000\n\tCERT_NAME_SEARCH_ALL_NAMES_FLAG    = 0x2\n\tCERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000\n\n\t/* AuthType values for SSLExtraCertChainPolicyPara struct */\n\tAUTHTYPE_CLIENT = 1\n\tAUTHTYPE_SERVER = 2\n\n\t/* Checks values for SSLExtraCertChainPolicyPara struct */\n\tSECURITY_FLAG_IGNORE_REVOCATION        = 0x00000080\n\tSECURITY_FLAG_IGNORE_UNKNOWN_CA        = 0x00000100\n\tSECURITY_FLAG_IGNORE_WRONG_USAGE       = 0x00000200\n\tSECURITY_FLAG_IGNORE_CERT_CN_INVALID   = 0x00001000\n\tSECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000\n\n\t/* Flags for Crypt[Un]ProtectData */\n\tCRYPTPROTECT_UI_FORBIDDEN      = 0x1\n\tCRYPTPROTECT_LOCAL_MACHINE     = 0x4\n\tCRYPTPROTECT_CRED_SYNC         = 0x8\n\tCRYPTPROTECT_AUDIT             = 0x10\n\tCRYPTPROTECT_NO_RECOVERY       = 0x20\n\tCRYPTPROTECT_VERIFY_PROTECTION = 0x40\n\tCRYPTPROTECT_CRED_REGENERATE   = 0x80\n\n\t/* Flags for CryptProtectPromptStruct */\n\tCRYPTPROTECT_PROMPT_ON_UNPROTECT   = 1\n\tCRYPTPROTECT_PROMPT_ON_PROTECT     = 2\n\tCRYPTPROTECT_PROMPT_RESERVED       = 4\n\tCRYPTPROTECT_PROMPT_STRONG         = 8\n\tCRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16\n)\n\nconst (\n\t// flags for SetErrorMode\n\tSEM_FAILCRITICALERRORS     = 0x0001\n\tSEM_NOALIGNMENTFAULTEXCEPT = 0x0004\n\tSEM_NOGPFAULTERRORBOX      = 0x0002\n\tSEM_NOOPENFILEERRORBOX     = 0x8000\n)\n\nconst (\n\t// Priority class.\n\tABOVE_NORMAL_PRIORITY_CLASS   = 0x00008000\n\tBELOW_NORMAL_PRIORITY_CLASS   = 0x00004000\n\tHIGH_PRIORITY_CLASS           = 0x00000080\n\tIDLE_PRIORITY_CLASS           = 0x00000040\n\tNORMAL_PRIORITY_CLASS         = 0x00000020\n\tPROCESS_MODE_BACKGROUND_BEGIN = 0x00100000\n\tPROCESS_MODE_BACKGROUND_END   = 0x00200000\n\tREALTIME_PRIORITY_CLASS       = 0x00000100\n)\n\n/* wintrust.h constants for WinVerifyTrustEx */\nconst (\n\tWTD_UI_ALL    = 1\n\tWTD_UI_NONE   = 2\n\tWTD_UI_NOBAD  = 3\n\tWTD_UI_NOGOOD = 4\n\n\tWTD_REVOKE_NONE       = 0\n\tWTD_REVOKE_WHOLECHAIN = 1\n\n\tWTD_CHOICE_FILE    = 1\n\tWTD_CHOICE_CATALOG = 2\n\tWTD_CHOICE_BLOB    = 3\n\tWTD_CHOICE_SIGNER  = 4\n\tWTD_CHOICE_CERT    = 5\n\n\tWTD_STATEACTION_IGNORE           = 0x00000000\n\tWTD_STATEACTION_VERIFY           = 0x00000001\n\tWTD_STATEACTION_CLOSE            = 0x00000002\n\tWTD_STATEACTION_AUTO_CACHE       = 0x00000003\n\tWTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004\n\n\tWTD_USE_IE4_TRUST_FLAG                  = 0x1\n\tWTD_NO_IE4_CHAIN_FLAG                   = 0x2\n\tWTD_NO_POLICY_USAGE_FLAG                = 0x4\n\tWTD_REVOCATION_CHECK_NONE               = 0x10\n\tWTD_REVOCATION_CHECK_END_CERT           = 0x20\n\tWTD_REVOCATION_CHECK_CHAIN              = 0x40\n\tWTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80\n\tWTD_SAFER_FLAG                          = 0x100\n\tWTD_HASH_ONLY_FLAG                      = 0x200\n\tWTD_USE_DEFAULT_OSVER_CHECK             = 0x400\n\tWTD_LIFETIME_SIGNING_FLAG               = 0x800\n\tWTD_CACHE_ONLY_URL_RETRIEVAL            = 0x1000\n\tWTD_DISABLE_MD2_MD4                     = 0x2000\n\tWTD_MOTW                                = 0x4000\n\n\tWTD_UICONTEXT_EXECUTE = 0\n\tWTD_UICONTEXT_INSTALL = 1\n)\n\nvar (\n\tOID_PKIX_KP_SERVER_AUTH = []byte(\"1.3.6.1.5.5.7.3.1\\x00\")\n\tOID_SERVER_GATED_CRYPTO = []byte(\"1.3.6.1.4.1.311.10.3.3\\x00\")\n\tOID_SGC_NETSCAPE        = []byte(\"2.16.840.1.113730.4.1\\x00\")\n\n\tWINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{\n\t\tData1: 0xaac56b,\n\t\tData2: 0xcd44,\n\t\tData3: 0x11d0,\n\t\tData4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee},\n\t}\n)\n\n// Pointer represents a pointer to an arbitrary Windows type.\n//\n// Pointer-typed fields may point to one of many different types. It's\n// up to the caller to provide a pointer to the appropriate type, cast\n// to Pointer. The caller must obey the unsafe.Pointer rules while\n// doing so.\ntype Pointer *struct{}\n\n// Invented values to support what package os expects.\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc (tv *Timeval) Nanoseconds() int64 {\n\treturn (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\ttv.Sec = int32(nsec / 1e9)\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\treturn\n}\n\ntype Overlapped struct {\n\tInternal     uintptr\n\tInternalHigh uintptr\n\tOffset       uint32\n\tOffsetHigh   uint32\n\tHEvent       Handle\n}\n\ntype FileNotifyInformation struct {\n\tNextEntryOffset uint32\n\tAction          uint32\n\tFileNameLength  uint32\n\tFileName        uint16\n}\n\ntype Filetime struct {\n\tLowDateTime  uint32\n\tHighDateTime uint32\n}\n\n// Nanoseconds returns Filetime ft in nanoseconds\n// since Epoch (00:00:00 UTC, January 1, 1970).\nfunc (ft *Filetime) Nanoseconds() int64 {\n\t// 100-nanosecond intervals since January 1, 1601\n\tnsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)\n\t// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)\n\tnsec -= 116444736000000000\n\t// convert into nanoseconds\n\tnsec *= 100\n\treturn nsec\n}\n\nfunc NsecToFiletime(nsec int64) (ft Filetime) {\n\t// convert into 100-nanosecond\n\tnsec /= 100\n\t// change starting time to January 1, 1601\n\tnsec += 116444736000000000\n\t// split into high / low\n\tft.LowDateTime = uint32(nsec & 0xffffffff)\n\tft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)\n\treturn ft\n}\n\ntype Win32finddata struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH - 1]uint16\n\tAlternateFileName [13]uint16\n}\n\n// This is the actual system call structure.\n// Win32finddata is what we committed to in Go 1.\ntype win32finddata1 struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH]uint16\n\tAlternateFileName [14]uint16\n\n\t// The Microsoft documentation for this struct¹ describes three additional\n\t// fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields\n\t// are empirically only present in the macOS port of the Win32 API,² and thus\n\t// not needed for binaries built for Windows.\n\t//\n\t// ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe\n\t// ² https://golang.org/issue/42637#issuecomment-760715755.\n}\n\nfunc copyFindData(dst *Win32finddata, src *win32finddata1) {\n\tdst.FileAttributes = src.FileAttributes\n\tdst.CreationTime = src.CreationTime\n\tdst.LastAccessTime = src.LastAccessTime\n\tdst.LastWriteTime = src.LastWriteTime\n\tdst.FileSizeHigh = src.FileSizeHigh\n\tdst.FileSizeLow = src.FileSizeLow\n\tdst.Reserved0 = src.Reserved0\n\tdst.Reserved1 = src.Reserved1\n\n\t// The src is 1 element bigger than dst, but it must be NUL.\n\tcopy(dst.FileName[:], src.FileName[:])\n\tcopy(dst.AlternateFileName[:], src.AlternateFileName[:])\n}\n\ntype ByHandleFileInformation struct {\n\tFileAttributes     uint32\n\tCreationTime       Filetime\n\tLastAccessTime     Filetime\n\tLastWriteTime      Filetime\n\tVolumeSerialNumber uint32\n\tFileSizeHigh       uint32\n\tFileSizeLow        uint32\n\tNumberOfLinks      uint32\n\tFileIndexHigh      uint32\n\tFileIndexLow       uint32\n}\n\nconst (\n\tGetFileExInfoStandard = 0\n\tGetFileExMaxInfoLevel = 1\n)\n\ntype Win32FileAttributeData struct {\n\tFileAttributes uint32\n\tCreationTime   Filetime\n\tLastAccessTime Filetime\n\tLastWriteTime  Filetime\n\tFileSizeHigh   uint32\n\tFileSizeLow    uint32\n}\n\n// ShowWindow constants\nconst (\n\t// winuser.h\n\tSW_HIDE            = 0\n\tSW_NORMAL          = 1\n\tSW_SHOWNORMAL      = 1\n\tSW_SHOWMINIMIZED   = 2\n\tSW_SHOWMAXIMIZED   = 3\n\tSW_MAXIMIZE        = 3\n\tSW_SHOWNOACTIVATE  = 4\n\tSW_SHOW            = 5\n\tSW_MINIMIZE        = 6\n\tSW_SHOWMINNOACTIVE = 7\n\tSW_SHOWNA          = 8\n\tSW_RESTORE         = 9\n\tSW_SHOWDEFAULT     = 10\n\tSW_FORCEMINIMIZE   = 11\n)\n\ntype StartupInfo struct {\n\tCb            uint32\n\t_             *uint16\n\tDesktop       *uint16\n\tTitle         *uint16\n\tX             uint32\n\tY             uint32\n\tXSize         uint32\n\tYSize         uint32\n\tXCountChars   uint32\n\tYCountChars   uint32\n\tFillAttribute uint32\n\tFlags         uint32\n\tShowWindow    uint16\n\t_             uint16\n\t_             *byte\n\tStdInput      Handle\n\tStdOutput     Handle\n\tStdErr        Handle\n}\n\ntype StartupInfoEx struct {\n\tStartupInfo\n\tProcThreadAttributeList *ProcThreadAttributeList\n}\n\n// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST.\n//\n// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update\n// it with ProcThreadAttributeListContainer.Update, free its memory using\n// ProcThreadAttributeListContainer.Delete, and access the list itself using\n// ProcThreadAttributeListContainer.List.\ntype ProcThreadAttributeList struct{}\n\ntype ProcThreadAttributeListContainer struct {\n\tdata     *ProcThreadAttributeList\n\tpointers []unsafe.Pointer\n}\n\ntype ProcessInformation struct {\n\tProcess   Handle\n\tThread    Handle\n\tProcessId uint32\n\tThreadId  uint32\n}\n\ntype ProcessEntry32 struct {\n\tSize            uint32\n\tUsage           uint32\n\tProcessID       uint32\n\tDefaultHeapID   uintptr\n\tModuleID        uint32\n\tThreads         uint32\n\tParentProcessID uint32\n\tPriClassBase    int32\n\tFlags           uint32\n\tExeFile         [MAX_PATH]uint16\n}\n\ntype ThreadEntry32 struct {\n\tSize           uint32\n\tUsage          uint32\n\tThreadID       uint32\n\tOwnerProcessID uint32\n\tBasePri        int32\n\tDeltaPri       int32\n\tFlags          uint32\n}\n\ntype ModuleEntry32 struct {\n\tSize         uint32\n\tModuleID     uint32\n\tProcessID    uint32\n\tGlblcntUsage uint32\n\tProccntUsage uint32\n\tModBaseAddr  uintptr\n\tModBaseSize  uint32\n\tModuleHandle Handle\n\tModule       [MAX_MODULE_NAME32 + 1]uint16\n\tExePath      [MAX_PATH]uint16\n}\n\nconst SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{})\n\ntype Systemtime struct {\n\tYear         uint16\n\tMonth        uint16\n\tDayOfWeek    uint16\n\tDay          uint16\n\tHour         uint16\n\tMinute       uint16\n\tSecond       uint16\n\tMilliseconds uint16\n}\n\ntype Timezoneinformation struct {\n\tBias         int32\n\tStandardName [32]uint16\n\tStandardDate Systemtime\n\tStandardBias int32\n\tDaylightName [32]uint16\n\tDaylightDate Systemtime\n\tDaylightBias int32\n}\n\n// Socket related.\n\nconst (\n\tAF_UNSPEC  = 0\n\tAF_UNIX    = 1\n\tAF_INET    = 2\n\tAF_NETBIOS = 17\n\tAF_INET6   = 23\n\tAF_IRDA    = 26\n\tAF_BTH     = 32\n\n\tSOCK_STREAM    = 1\n\tSOCK_DGRAM     = 2\n\tSOCK_RAW       = 3\n\tSOCK_RDM       = 4\n\tSOCK_SEQPACKET = 5\n\n\tIPPROTO_IP      = 0\n\tIPPROTO_ICMP    = 1\n\tIPPROTO_IGMP    = 2\n\tBTHPROTO_RFCOMM = 3\n\tIPPROTO_TCP     = 6\n\tIPPROTO_UDP     = 17\n\tIPPROTO_IPV6    = 41\n\tIPPROTO_ICMPV6  = 58\n\tIPPROTO_RM      = 113\n\n\tSOL_SOCKET                = 0xffff\n\tSO_REUSEADDR              = 4\n\tSO_KEEPALIVE              = 8\n\tSO_DONTROUTE              = 16\n\tSO_BROADCAST              = 32\n\tSO_LINGER                 = 128\n\tSO_RCVBUF                 = 0x1002\n\tSO_RCVTIMEO               = 0x1006\n\tSO_SNDBUF                 = 0x1001\n\tSO_UPDATE_ACCEPT_CONTEXT  = 0x700b\n\tSO_UPDATE_CONNECT_CONTEXT = 0x7010\n\n\tIOC_OUT                            = 0x40000000\n\tIOC_IN                             = 0x80000000\n\tIOC_VENDOR                         = 0x18000000\n\tIOC_INOUT                          = IOC_IN | IOC_OUT\n\tIOC_WS2                            = 0x08000000\n\tSIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6\n\tSIO_KEEPALIVE_VALS                 = IOC_IN | IOC_VENDOR | 4\n\tSIO_UDP_CONNRESET                  = IOC_IN | IOC_VENDOR | 12\n\tSIO_UDP_NETRESET                   = IOC_IN | IOC_VENDOR | 15\n\n\t// cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460\n\n\tIP_HDRINCL         = 0x2\n\tIP_TOS             = 0x3\n\tIP_TTL             = 0x4\n\tIP_MULTICAST_IF    = 0x9\n\tIP_MULTICAST_TTL   = 0xa\n\tIP_MULTICAST_LOOP  = 0xb\n\tIP_ADD_MEMBERSHIP  = 0xc\n\tIP_DROP_MEMBERSHIP = 0xd\n\tIP_PKTINFO         = 0x13\n\tIP_MTU_DISCOVER    = 0x47\n\n\tIPV6_V6ONLY         = 0x1b\n\tIPV6_UNICAST_HOPS   = 0x4\n\tIPV6_MULTICAST_IF   = 0x9\n\tIPV6_MULTICAST_HOPS = 0xa\n\tIPV6_MULTICAST_LOOP = 0xb\n\tIPV6_JOIN_GROUP     = 0xc\n\tIPV6_LEAVE_GROUP    = 0xd\n\tIPV6_PKTINFO        = 0x13\n\tIPV6_MTU_DISCOVER   = 0x47\n\n\tMSG_OOB       = 0x1\n\tMSG_PEEK      = 0x2\n\tMSG_DONTROUTE = 0x4\n\tMSG_WAITALL   = 0x8\n\n\tMSG_TRUNC  = 0x0100\n\tMSG_CTRUNC = 0x0200\n\tMSG_BCAST  = 0x0400\n\tMSG_MCAST  = 0x0800\n\n\tSOMAXCONN = 0x7fffffff\n\n\tTCP_NODELAY                    = 1\n\tTCP_EXPEDITED_1122             = 2\n\tTCP_KEEPALIVE                  = 3\n\tTCP_MAXSEG                     = 4\n\tTCP_MAXRT                      = 5\n\tTCP_STDURG                     = 6\n\tTCP_NOURG                      = 7\n\tTCP_ATMARK                     = 8\n\tTCP_NOSYNRETRIES               = 9\n\tTCP_TIMESTAMPS                 = 10\n\tTCP_OFFLOAD_PREFERENCE         = 11\n\tTCP_CONGESTION_ALGORITHM       = 12\n\tTCP_DELAY_FIN_ACK              = 13\n\tTCP_MAXRTMS                    = 14\n\tTCP_FASTOPEN                   = 15\n\tTCP_KEEPCNT                    = 16\n\tTCP_KEEPIDLE                   = TCP_KEEPALIVE\n\tTCP_KEEPINTVL                  = 17\n\tTCP_FAIL_CONNECT_ON_ICMP_ERROR = 18\n\tTCP_ICMP_ERROR_INFO            = 19\n\n\tUDP_NOCHECKSUM              = 1\n\tUDP_SEND_MSG_SIZE           = 2\n\tUDP_RECV_MAX_COALESCED_SIZE = 3\n\tUDP_CHECKSUM_COVERAGE       = 20\n\n\tUDP_COALESCED_INFO = 3\n\n\tSHUT_RD   = 0\n\tSHUT_WR   = 1\n\tSHUT_RDWR = 2\n\n\tWSADESCRIPTION_LEN = 256\n\tWSASYS_STATUS_LEN  = 128\n)\n\n// enum PMTUD_STATE from ws2ipdef.h\nconst (\n\tIP_PMTUDISC_NOT_SET = 0\n\tIP_PMTUDISC_DO      = 1\n\tIP_PMTUDISC_DONT    = 2\n\tIP_PMTUDISC_PROBE   = 3\n\tIP_PMTUDISC_MAX     = 4\n)\n\ntype WSABuf struct {\n\tLen uint32\n\tBuf *byte\n}\n\ntype WSAMsg struct {\n\tName        *syscall.RawSockaddrAny\n\tNamelen     int32\n\tBuffers     *WSABuf\n\tBufferCount uint32\n\tControl     WSABuf\n\tFlags       uint32\n}\n\ntype WSACMSGHDR struct {\n\tLen   uintptr\n\tLevel int32\n\tType  int32\n}\n\ntype IN_PKTINFO struct {\n\tAddr    [4]byte\n\tIfindex uint32\n}\n\ntype IN6_PKTINFO struct {\n\tAddr    [16]byte\n\tIfindex uint32\n}\n\n// Flags for WSASocket\nconst (\n\tWSA_FLAG_OVERLAPPED             = 0x01\n\tWSA_FLAG_MULTIPOINT_C_ROOT      = 0x02\n\tWSA_FLAG_MULTIPOINT_C_LEAF      = 0x04\n\tWSA_FLAG_MULTIPOINT_D_ROOT      = 0x08\n\tWSA_FLAG_MULTIPOINT_D_LEAF      = 0x10\n\tWSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40\n\tWSA_FLAG_NO_HANDLE_INHERIT      = 0x80\n\tWSA_FLAG_REGISTERED_IO          = 0x100\n)\n\n// Invented values to support what package os expects.\nconst (\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n\tS_ISUID  = 0x800\n\tS_ISGID  = 0x400\n\tS_ISVTX  = 0x200\n\tS_IRUSR  = 0x100\n\tS_IWRITE = 0x80\n\tS_IWUSR  = 0x80\n\tS_IXUSR  = 0x40\n)\n\nconst (\n\tFILE_TYPE_CHAR    = 0x0002\n\tFILE_TYPE_DISK    = 0x0001\n\tFILE_TYPE_PIPE    = 0x0003\n\tFILE_TYPE_REMOTE  = 0x8000\n\tFILE_TYPE_UNKNOWN = 0x0000\n)\n\ntype Hostent struct {\n\tName     *byte\n\tAliases  **byte\n\tAddrType uint16\n\tLength   uint16\n\tAddrList **byte\n}\n\ntype Protoent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   uint16\n}\n\nconst (\n\tDNS_TYPE_A       = 0x0001\n\tDNS_TYPE_NS      = 0x0002\n\tDNS_TYPE_MD      = 0x0003\n\tDNS_TYPE_MF      = 0x0004\n\tDNS_TYPE_CNAME   = 0x0005\n\tDNS_TYPE_SOA     = 0x0006\n\tDNS_TYPE_MB      = 0x0007\n\tDNS_TYPE_MG      = 0x0008\n\tDNS_TYPE_MR      = 0x0009\n\tDNS_TYPE_NULL    = 0x000a\n\tDNS_TYPE_WKS     = 0x000b\n\tDNS_TYPE_PTR     = 0x000c\n\tDNS_TYPE_HINFO   = 0x000d\n\tDNS_TYPE_MINFO   = 0x000e\n\tDNS_TYPE_MX      = 0x000f\n\tDNS_TYPE_TEXT    = 0x0010\n\tDNS_TYPE_RP      = 0x0011\n\tDNS_TYPE_AFSDB   = 0x0012\n\tDNS_TYPE_X25     = 0x0013\n\tDNS_TYPE_ISDN    = 0x0014\n\tDNS_TYPE_RT      = 0x0015\n\tDNS_TYPE_NSAP    = 0x0016\n\tDNS_TYPE_NSAPPTR = 0x0017\n\tDNS_TYPE_SIG     = 0x0018\n\tDNS_TYPE_KEY     = 0x0019\n\tDNS_TYPE_PX      = 0x001a\n\tDNS_TYPE_GPOS    = 0x001b\n\tDNS_TYPE_AAAA    = 0x001c\n\tDNS_TYPE_LOC     = 0x001d\n\tDNS_TYPE_NXT     = 0x001e\n\tDNS_TYPE_EID     = 0x001f\n\tDNS_TYPE_NIMLOC  = 0x0020\n\tDNS_TYPE_SRV     = 0x0021\n\tDNS_TYPE_ATMA    = 0x0022\n\tDNS_TYPE_NAPTR   = 0x0023\n\tDNS_TYPE_KX      = 0x0024\n\tDNS_TYPE_CERT    = 0x0025\n\tDNS_TYPE_A6      = 0x0026\n\tDNS_TYPE_DNAME   = 0x0027\n\tDNS_TYPE_SINK    = 0x0028\n\tDNS_TYPE_OPT     = 0x0029\n\tDNS_TYPE_DS      = 0x002B\n\tDNS_TYPE_RRSIG   = 0x002E\n\tDNS_TYPE_NSEC    = 0x002F\n\tDNS_TYPE_DNSKEY  = 0x0030\n\tDNS_TYPE_DHCID   = 0x0031\n\tDNS_TYPE_UINFO   = 0x0064\n\tDNS_TYPE_UID     = 0x0065\n\tDNS_TYPE_GID     = 0x0066\n\tDNS_TYPE_UNSPEC  = 0x0067\n\tDNS_TYPE_ADDRS   = 0x00f8\n\tDNS_TYPE_TKEY    = 0x00f9\n\tDNS_TYPE_TSIG    = 0x00fa\n\tDNS_TYPE_IXFR    = 0x00fb\n\tDNS_TYPE_AXFR    = 0x00fc\n\tDNS_TYPE_MAILB   = 0x00fd\n\tDNS_TYPE_MAILA   = 0x00fe\n\tDNS_TYPE_ALL     = 0x00ff\n\tDNS_TYPE_ANY     = 0x00ff\n\tDNS_TYPE_WINS    = 0xff01\n\tDNS_TYPE_WINSR   = 0xff02\n\tDNS_TYPE_NBSTAT  = 0xff01\n)\n\nconst (\n\t// flags inside DNSRecord.Dw\n\tDnsSectionQuestion   = 0x0000\n\tDnsSectionAnswer     = 0x0001\n\tDnsSectionAuthority  = 0x0002\n\tDnsSectionAdditional = 0x0003\n)\n\nconst (\n\t// flags of WSALookupService\n\tLUP_DEEP                = 0x0001\n\tLUP_CONTAINERS          = 0x0002\n\tLUP_NOCONTAINERS        = 0x0004\n\tLUP_NEAREST             = 0x0008\n\tLUP_RETURN_NAME         = 0x0010\n\tLUP_RETURN_TYPE         = 0x0020\n\tLUP_RETURN_VERSION      = 0x0040\n\tLUP_RETURN_COMMENT      = 0x0080\n\tLUP_RETURN_ADDR         = 0x0100\n\tLUP_RETURN_BLOB         = 0x0200\n\tLUP_RETURN_ALIASES      = 0x0400\n\tLUP_RETURN_QUERY_STRING = 0x0800\n\tLUP_RETURN_ALL          = 0x0FF0\n\tLUP_RES_SERVICE         = 0x8000\n\n\tLUP_FLUSHCACHE    = 0x1000\n\tLUP_FLUSHPREVIOUS = 0x2000\n\n\tLUP_NON_AUTHORITATIVE      = 0x4000\n\tLUP_SECURE                 = 0x8000\n\tLUP_RETURN_PREFERRED_NAMES = 0x10000\n\tLUP_DNS_ONLY               = 0x20000\n\n\tLUP_ADDRCONFIG           = 0x100000\n\tLUP_DUAL_ADDR            = 0x200000\n\tLUP_FILESERVER           = 0x400000\n\tLUP_DISABLE_IDN_ENCODING = 0x00800000\n\tLUP_API_ANSI             = 0x01000000\n\n\tLUP_RESOLUTION_HANDLE = 0x80000000\n)\n\nconst (\n\t// values of WSAQUERYSET's namespace\n\tNS_ALL       = 0\n\tNS_DNS       = 12\n\tNS_NLA       = 15\n\tNS_BTH       = 16\n\tNS_EMAIL     = 37\n\tNS_PNRPNAME  = 38\n\tNS_PNRPCLOUD = 39\n)\n\ntype DNSSRVData struct {\n\tTarget   *uint16\n\tPriority uint16\n\tWeight   uint16\n\tPort     uint16\n\tPad      uint16\n}\n\ntype DNSPTRData struct {\n\tHost *uint16\n}\n\ntype DNSMXData struct {\n\tNameExchange *uint16\n\tPreference   uint16\n\tPad          uint16\n}\n\ntype DNSTXTData struct {\n\tStringCount uint16\n\tStringArray [1]*uint16\n}\n\ntype DNSRecord struct {\n\tNext     *DNSRecord\n\tName     *uint16\n\tType     uint16\n\tLength   uint16\n\tDw       uint32\n\tTtl      uint32\n\tReserved uint32\n\tData     [40]byte\n}\n\nconst (\n\tTF_DISCONNECT         = 1\n\tTF_REUSE_SOCKET       = 2\n\tTF_WRITE_BEHIND       = 4\n\tTF_USE_DEFAULT_WORKER = 0\n\tTF_USE_SYSTEM_THREAD  = 16\n\tTF_USE_KERNEL_APC     = 32\n)\n\ntype TransmitFileBuffers struct {\n\tHead       uintptr\n\tHeadLength uint32\n\tTail       uintptr\n\tTailLength uint32\n}\n\nconst (\n\tIFF_UP           = 1\n\tIFF_BROADCAST    = 2\n\tIFF_LOOPBACK     = 4\n\tIFF_POINTTOPOINT = 8\n\tIFF_MULTICAST    = 16\n)\n\nconst SIO_GET_INTERFACE_LIST = 0x4004747F\n\n// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.\n// will be fixed to change variable type as suitable.\n\ntype SockaddrGen [24]byte\n\ntype InterfaceInfo struct {\n\tFlags            uint32\n\tAddress          SockaddrGen\n\tBroadcastAddress SockaddrGen\n\tNetmask          SockaddrGen\n}\n\ntype IpAddressString struct {\n\tString [16]byte\n}\n\ntype IpMaskString IpAddressString\n\ntype IpAddrString struct {\n\tNext      *IpAddrString\n\tIpAddress IpAddressString\n\tIpMask    IpMaskString\n\tContext   uint32\n}\n\nconst MAX_ADAPTER_NAME_LENGTH = 256\nconst MAX_ADAPTER_DESCRIPTION_LENGTH = 128\nconst MAX_ADAPTER_ADDRESS_LENGTH = 8\n\ntype IpAdapterInfo struct {\n\tNext                *IpAdapterInfo\n\tComboIndex          uint32\n\tAdapterName         [MAX_ADAPTER_NAME_LENGTH + 4]byte\n\tDescription         [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte\n\tAddressLength       uint32\n\tAddress             [MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tIndex               uint32\n\tType                uint32\n\tDhcpEnabled         uint32\n\tCurrentIpAddress    *IpAddrString\n\tIpAddressList       IpAddrString\n\tGatewayList         IpAddrString\n\tDhcpServer          IpAddrString\n\tHaveWins            bool\n\tPrimaryWinsServer   IpAddrString\n\tSecondaryWinsServer IpAddrString\n\tLeaseObtained       int64\n\tLeaseExpires        int64\n}\n\nconst MAXLEN_PHYSADDR = 8\nconst MAX_INTERFACE_NAME_LEN = 256\nconst MAXLEN_IFDESCR = 256\n\ntype MibIfRow struct {\n\tName            [MAX_INTERFACE_NAME_LEN]uint16\n\tIndex           uint32\n\tType            uint32\n\tMtu             uint32\n\tSpeed           uint32\n\tPhysAddrLen     uint32\n\tPhysAddr        [MAXLEN_PHYSADDR]byte\n\tAdminStatus     uint32\n\tOperStatus      uint32\n\tLastChange      uint32\n\tInOctets        uint32\n\tInUcastPkts     uint32\n\tInNUcastPkts    uint32\n\tInDiscards      uint32\n\tInErrors        uint32\n\tInUnknownProtos uint32\n\tOutOctets       uint32\n\tOutUcastPkts    uint32\n\tOutNUcastPkts   uint32\n\tOutDiscards     uint32\n\tOutErrors       uint32\n\tOutQLen         uint32\n\tDescrLen        uint32\n\tDescr           [MAXLEN_IFDESCR]byte\n}\n\ntype CertInfo struct {\n\tVersion              uint32\n\tSerialNumber         CryptIntegerBlob\n\tSignatureAlgorithm   CryptAlgorithmIdentifier\n\tIssuer               CertNameBlob\n\tNotBefore            Filetime\n\tNotAfter             Filetime\n\tSubject              CertNameBlob\n\tSubjectPublicKeyInfo CertPublicKeyInfo\n\tIssuerUniqueId       CryptBitBlob\n\tSubjectUniqueId      CryptBitBlob\n\tCountExtensions      uint32\n\tExtensions           *CertExtension\n}\n\ntype CertExtension struct {\n\tObjId    *byte\n\tCritical int32\n\tValue    CryptObjidBlob\n}\n\ntype CryptAlgorithmIdentifier struct {\n\tObjId      *byte\n\tParameters CryptObjidBlob\n}\n\ntype CertPublicKeyInfo struct {\n\tAlgorithm CryptAlgorithmIdentifier\n\tPublicKey CryptBitBlob\n}\n\ntype DataBlob struct {\n\tSize uint32\n\tData *byte\n}\ntype CryptIntegerBlob DataBlob\ntype CryptUintBlob DataBlob\ntype CryptObjidBlob DataBlob\ntype CertNameBlob DataBlob\ntype CertRdnValueBlob DataBlob\ntype CertBlob DataBlob\ntype CrlBlob DataBlob\ntype CryptDataBlob DataBlob\ntype CryptHashBlob DataBlob\ntype CryptDigestBlob DataBlob\ntype CryptDerBlob DataBlob\ntype CryptAttrBlob DataBlob\n\ntype CryptBitBlob struct {\n\tSize       uint32\n\tData       *byte\n\tUnusedBits uint32\n}\n\ntype CertContext struct {\n\tEncodingType uint32\n\tEncodedCert  *byte\n\tLength       uint32\n\tCertInfo     *CertInfo\n\tStore        Handle\n}\n\ntype CertChainContext struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tChainCount                 uint32\n\tChains                     **CertSimpleChain\n\tLowerQualityChainCount     uint32\n\tLowerQualityChains         **CertChainContext\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertTrustListInfo struct {\n\t// Not implemented\n}\n\ntype CertSimpleChain struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tNumElements                uint32\n\tElements                   **CertChainElement\n\tTrustListInfo              *CertTrustListInfo\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertChainElement struct {\n\tSize              uint32\n\tCertContext       *CertContext\n\tTrustStatus       CertTrustStatus\n\tRevocationInfo    *CertRevocationInfo\n\tIssuanceUsage     *CertEnhKeyUsage\n\tApplicationUsage  *CertEnhKeyUsage\n\tExtendedErrorInfo *uint16\n}\n\ntype CertRevocationCrlInfo struct {\n\t// Not implemented\n}\n\ntype CertRevocationInfo struct {\n\tSize             uint32\n\tRevocationResult uint32\n\tRevocationOid    *byte\n\tOidSpecificInfo  Pointer\n\tHasFreshnessTime uint32\n\tFreshnessTime    uint32\n\tCrlInfo          *CertRevocationCrlInfo\n}\n\ntype CertTrustStatus struct {\n\tErrorStatus uint32\n\tInfoStatus  uint32\n}\n\ntype CertUsageMatch struct {\n\tType  uint32\n\tUsage CertEnhKeyUsage\n}\n\ntype CertEnhKeyUsage struct {\n\tLength           uint32\n\tUsageIdentifiers **byte\n}\n\ntype CertChainPara struct {\n\tSize                         uint32\n\tRequestedUsage               CertUsageMatch\n\tRequstedIssuancePolicy       CertUsageMatch\n\tURLRetrievalTimeout          uint32\n\tCheckRevocationFreshnessTime uint32\n\tRevocationFreshnessTime      uint32\n\tCacheResync                  *Filetime\n}\n\ntype CertChainPolicyPara struct {\n\tSize            uint32\n\tFlags           uint32\n\tExtraPolicyPara Pointer\n}\n\ntype SSLExtraCertChainPolicyPara struct {\n\tSize       uint32\n\tAuthType   uint32\n\tChecks     uint32\n\tServerName *uint16\n}\n\ntype CertChainPolicyStatus struct {\n\tSize              uint32\n\tError             uint32\n\tChainIndex        uint32\n\tElementIndex      uint32\n\tExtraPolicyStatus Pointer\n}\n\ntype CertPolicyInfo struct {\n\tIdentifier      *byte\n\tCountQualifiers uint32\n\tQualifiers      *CertPolicyQualifierInfo\n}\n\ntype CertPoliciesInfo struct {\n\tCount       uint32\n\tPolicyInfos *CertPolicyInfo\n}\n\ntype CertPolicyQualifierInfo struct {\n\t// Not implemented\n}\n\ntype CertStrongSignPara struct {\n\tSize                      uint32\n\tInfoChoice                uint32\n\tInfoOrSerializedInfoOrOID unsafe.Pointer\n}\n\ntype CryptProtectPromptStruct struct {\n\tSize        uint32\n\tPromptFlags uint32\n\tApp         HWND\n\tPrompt      *uint16\n}\n\ntype CertChainFindByIssuerPara struct {\n\tSize                   uint32\n\tUsageIdentifier        *byte\n\tKeySpec                uint32\n\tAcquirePrivateKeyFlags uint32\n\tIssuerCount            uint32\n\tIssuer                 Pointer\n\tFindCallback           Pointer\n\tFindArg                Pointer\n\tIssuerChainIndex       *uint32\n\tIssuerElementIndex     *uint32\n}\n\ntype WinTrustData struct {\n\tSize                            uint32\n\tPolicyCallbackData              uintptr\n\tSIPClientData                   uintptr\n\tUIChoice                        uint32\n\tRevocationChecks                uint32\n\tUnionChoice                     uint32\n\tFileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer\n\tStateAction                     uint32\n\tStateData                       Handle\n\tURLReference                    *uint16\n\tProvFlags                       uint32\n\tUIContext                       uint32\n\tSignatureSettings               *WinTrustSignatureSettings\n}\n\ntype WinTrustFileInfo struct {\n\tSize         uint32\n\tFilePath     *uint16\n\tFile         Handle\n\tKnownSubject *GUID\n}\n\ntype WinTrustSignatureSettings struct {\n\tSize             uint32\n\tIndex            uint32\n\tFlags            uint32\n\tSecondarySigs    uint32\n\tVerifiedSigIndex uint32\n\tCryptoPolicy     *CertStrongSignPara\n}\n\nconst (\n\t// do not reorder\n\tHKEY_CLASSES_ROOT = 0x80000000 + iota\n\tHKEY_CURRENT_USER\n\tHKEY_LOCAL_MACHINE\n\tHKEY_USERS\n\tHKEY_PERFORMANCE_DATA\n\tHKEY_CURRENT_CONFIG\n\tHKEY_DYN_DATA\n\n\tKEY_QUERY_VALUE        = 1\n\tKEY_SET_VALUE          = 2\n\tKEY_CREATE_SUB_KEY     = 4\n\tKEY_ENUMERATE_SUB_KEYS = 8\n\tKEY_NOTIFY             = 16\n\tKEY_CREATE_LINK        = 32\n\tKEY_WRITE              = 0x20006\n\tKEY_EXECUTE            = 0x20019\n\tKEY_READ               = 0x20019\n\tKEY_WOW64_64KEY        = 0x0100\n\tKEY_WOW64_32KEY        = 0x0200\n\tKEY_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\t// do not reorder\n\tREG_NONE = iota\n\tREG_SZ\n\tREG_EXPAND_SZ\n\tREG_BINARY\n\tREG_DWORD_LITTLE_ENDIAN\n\tREG_DWORD_BIG_ENDIAN\n\tREG_LINK\n\tREG_MULTI_SZ\n\tREG_RESOURCE_LIST\n\tREG_FULL_RESOURCE_DESCRIPTOR\n\tREG_RESOURCE_REQUIREMENTS_LIST\n\tREG_QWORD_LITTLE_ENDIAN\n\tREG_DWORD = REG_DWORD_LITTLE_ENDIAN\n\tREG_QWORD = REG_QWORD_LITTLE_ENDIAN\n)\n\nconst (\n\tEVENT_MODIFY_STATE = 0x0002\n\tEVENT_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tMUTANT_QUERY_STATE = 0x0001\n\tMUTANT_ALL_ACCESS  = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE\n\n\tSEMAPHORE_MODIFY_STATE = 0x0002\n\tSEMAPHORE_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tTIMER_QUERY_STATE  = 0x0001\n\tTIMER_MODIFY_STATE = 0x0002\n\tTIMER_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE\n\n\tMUTEX_MODIFY_STATE = MUTANT_QUERY_STATE\n\tMUTEX_ALL_ACCESS   = MUTANT_ALL_ACCESS\n\n\tCREATE_EVENT_MANUAL_RESET  = 0x1\n\tCREATE_EVENT_INITIAL_SET   = 0x2\n\tCREATE_MUTEX_INITIAL_OWNER = 0x1\n)\n\ntype AddrinfoW struct {\n\tFlags     int32\n\tFamily    int32\n\tSocktype  int32\n\tProtocol  int32\n\tAddrlen   uintptr\n\tCanonname *uint16\n\tAddr      uintptr\n\tNext      *AddrinfoW\n}\n\nconst (\n\tAI_PASSIVE     = 1\n\tAI_CANONNAME   = 2\n\tAI_NUMERICHOST = 4\n)\n\ntype GUID struct {\n\tData1 uint32\n\tData2 uint16\n\tData3 uint16\n\tData4 [8]byte\n}\n\nvar WSAID_CONNECTEX = GUID{\n\t0x25a207b9,\n\t0xddf3,\n\t0x4660,\n\t[8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},\n}\n\nvar WSAID_WSASENDMSG = GUID{\n\t0xa441e712,\n\t0x754f,\n\t0x43ca,\n\t[8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},\n}\n\nvar WSAID_WSARECVMSG = GUID{\n\t0xf689d7c8,\n\t0x6f1f,\n\t0x436b,\n\t[8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},\n}\n\nconst (\n\tFILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1\n\tFILE_SKIP_SET_EVENT_ON_HANDLE        = 2\n)\n\nconst (\n\tWSAPROTOCOL_LEN    = 255\n\tMAX_PROTOCOL_CHAIN = 7\n\tBASE_PROTOCOL      = 1\n\tLAYERED_PROTOCOL   = 0\n\n\tXP1_CONNECTIONLESS           = 0x00000001\n\tXP1_GUARANTEED_DELIVERY      = 0x00000002\n\tXP1_GUARANTEED_ORDER         = 0x00000004\n\tXP1_MESSAGE_ORIENTED         = 0x00000008\n\tXP1_PSEUDO_STREAM            = 0x00000010\n\tXP1_GRACEFUL_CLOSE           = 0x00000020\n\tXP1_EXPEDITED_DATA           = 0x00000040\n\tXP1_CONNECT_DATA             = 0x00000080\n\tXP1_DISCONNECT_DATA          = 0x00000100\n\tXP1_SUPPORT_BROADCAST        = 0x00000200\n\tXP1_SUPPORT_MULTIPOINT       = 0x00000400\n\tXP1_MULTIPOINT_CONTROL_PLANE = 0x00000800\n\tXP1_MULTIPOINT_DATA_PLANE    = 0x00001000\n\tXP1_QOS_SUPPORTED            = 0x00002000\n\tXP1_UNI_SEND                 = 0x00008000\n\tXP1_UNI_RECV                 = 0x00010000\n\tXP1_IFS_HANDLES              = 0x00020000\n\tXP1_PARTIAL_MESSAGE          = 0x00040000\n\tXP1_SAN_SUPPORT_SDP          = 0x00080000\n\n\tPFL_MULTIPLE_PROTO_ENTRIES  = 0x00000001\n\tPFL_RECOMMENDED_PROTO_ENTRY = 0x00000002\n\tPFL_HIDDEN                  = 0x00000004\n\tPFL_MATCHES_PROTOCOL_ZERO   = 0x00000008\n\tPFL_NETWORKDIRECT_PROVIDER  = 0x00000010\n)\n\ntype WSAProtocolInfo struct {\n\tServiceFlags1     uint32\n\tServiceFlags2     uint32\n\tServiceFlags3     uint32\n\tServiceFlags4     uint32\n\tProviderFlags     uint32\n\tProviderId        GUID\n\tCatalogEntryId    uint32\n\tProtocolChain     WSAProtocolChain\n\tVersion           int32\n\tAddressFamily     int32\n\tMaxSockAddr       int32\n\tMinSockAddr       int32\n\tSocketType        int32\n\tProtocol          int32\n\tProtocolMaxOffset int32\n\tNetworkByteOrder  int32\n\tSecurityScheme    int32\n\tMessageSize       uint32\n\tProviderReserved  uint32\n\tProtocolName      [WSAPROTOCOL_LEN + 1]uint16\n}\n\ntype WSAProtocolChain struct {\n\tChainLen     int32\n\tChainEntries [MAX_PROTOCOL_CHAIN]uint32\n}\n\ntype TCPKeepalive struct {\n\tOnOff    uint32\n\tTime     uint32\n\tInterval uint32\n}\n\ntype symbolicLinkReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tFlags                uint32\n\tPathBuffer           [1]uint16\n}\n\ntype mountPointReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tPathBuffer           [1]uint16\n}\n\ntype reparseDataBuffer struct {\n\tReparseTag        uint32\n\tReparseDataLength uint16\n\tReserved          uint16\n\n\t// GenericReparseBuffer\n\treparseBuffer byte\n}\n\nconst (\n\tFSCTL_CREATE_OR_GET_OBJECT_ID             = 0x0900C0\n\tFSCTL_DELETE_OBJECT_ID                    = 0x0900A0\n\tFSCTL_DELETE_REPARSE_POINT                = 0x0900AC\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE           = 0x098344\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE_EX        = 0x0983E8\n\tFSCTL_FILESYSTEM_GET_STATISTICS           = 0x090060\n\tFSCTL_FILE_LEVEL_TRIM                     = 0x098208\n\tFSCTL_FIND_FILES_BY_SID                   = 0x09008F\n\tFSCTL_GET_COMPRESSION                     = 0x09003C\n\tFSCTL_GET_INTEGRITY_INFORMATION           = 0x09027C\n\tFSCTL_GET_NTFS_VOLUME_DATA                = 0x090064\n\tFSCTL_GET_REFS_VOLUME_DATA                = 0x0902D8\n\tFSCTL_GET_OBJECT_ID                       = 0x09009C\n\tFSCTL_GET_REPARSE_POINT                   = 0x0900A8\n\tFSCTL_GET_RETRIEVAL_POINTER_COUNT         = 0x09042B\n\tFSCTL_GET_RETRIEVAL_POINTERS              = 0x090073\n\tFSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3\n\tFSCTL_IS_PATHNAME_VALID                   = 0x09002C\n\tFSCTL_LMR_SET_LINK_TRACKING_INFORMATION   = 0x1400EC\n\tFSCTL_MARK_HANDLE                         = 0x0900FC\n\tFSCTL_OFFLOAD_READ                        = 0x094264\n\tFSCTL_OFFLOAD_WRITE                       = 0x098268\n\tFSCTL_PIPE_PEEK                           = 0x11400C\n\tFSCTL_PIPE_TRANSCEIVE                     = 0x11C017\n\tFSCTL_PIPE_WAIT                           = 0x110018\n\tFSCTL_QUERY_ALLOCATED_RANGES              = 0x0940CF\n\tFSCTL_QUERY_FAT_BPB                       = 0x090058\n\tFSCTL_QUERY_FILE_REGIONS                  = 0x090284\n\tFSCTL_QUERY_ON_DISK_VOLUME_INFO           = 0x09013C\n\tFSCTL_QUERY_SPARING_INFO                  = 0x090138\n\tFSCTL_READ_FILE_USN_DATA                  = 0x0900EB\n\tFSCTL_RECALL_FILE                         = 0x090117\n\tFSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT     = 0x090440\n\tFSCTL_SET_COMPRESSION                     = 0x09C040\n\tFSCTL_SET_DEFECT_MANAGEMENT               = 0x098134\n\tFSCTL_SET_ENCRYPTION                      = 0x0900D7\n\tFSCTL_SET_INTEGRITY_INFORMATION           = 0x09C280\n\tFSCTL_SET_INTEGRITY_INFORMATION_EX        = 0x090380\n\tFSCTL_SET_OBJECT_ID                       = 0x090098\n\tFSCTL_SET_OBJECT_ID_EXTENDED              = 0x0900BC\n\tFSCTL_SET_REPARSE_POINT                   = 0x0900A4\n\tFSCTL_SET_SPARSE                          = 0x0900C4\n\tFSCTL_SET_ZERO_DATA                       = 0x0980C8\n\tFSCTL_SET_ZERO_ON_DEALLOCATION            = 0x090194\n\tFSCTL_SIS_COPYFILE                        = 0x090100\n\tFSCTL_WRITE_USN_CLOSE_RECORD              = 0x0900EF\n\n\tMAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024\n\tIO_REPARSE_TAG_MOUNT_POINT       = 0xA0000003\n\tIO_REPARSE_TAG_SYMLINK           = 0xA000000C\n\tSYMBOLIC_LINK_FLAG_DIRECTORY     = 0x1\n)\n\n// FILE_ZERO_DATA_INFORMATION from winioctl.h\ntype FileZeroDataInformation struct {\n\tFileOffset      int64\n\tBeyondFinalZero int64\n}\n\nconst (\n\tComputerNameNetBIOS                   = 0\n\tComputerNameDnsHostname               = 1\n\tComputerNameDnsDomain                 = 2\n\tComputerNameDnsFullyQualified         = 3\n\tComputerNamePhysicalNetBIOS           = 4\n\tComputerNamePhysicalDnsHostname       = 5\n\tComputerNamePhysicalDnsDomain         = 6\n\tComputerNamePhysicalDnsFullyQualified = 7\n\tComputerNameMax                       = 8\n)\n\n// For MessageBox()\nconst (\n\tMB_OK                   = 0x00000000\n\tMB_OKCANCEL             = 0x00000001\n\tMB_ABORTRETRYIGNORE     = 0x00000002\n\tMB_YESNOCANCEL          = 0x00000003\n\tMB_YESNO                = 0x00000004\n\tMB_RETRYCANCEL          = 0x00000005\n\tMB_CANCELTRYCONTINUE    = 0x00000006\n\tMB_ICONHAND             = 0x00000010\n\tMB_ICONQUESTION         = 0x00000020\n\tMB_ICONEXCLAMATION      = 0x00000030\n\tMB_ICONASTERISK         = 0x00000040\n\tMB_USERICON             = 0x00000080\n\tMB_ICONWARNING          = MB_ICONEXCLAMATION\n\tMB_ICONERROR            = MB_ICONHAND\n\tMB_ICONINFORMATION      = MB_ICONASTERISK\n\tMB_ICONSTOP             = MB_ICONHAND\n\tMB_DEFBUTTON1           = 0x00000000\n\tMB_DEFBUTTON2           = 0x00000100\n\tMB_DEFBUTTON3           = 0x00000200\n\tMB_DEFBUTTON4           = 0x00000300\n\tMB_APPLMODAL            = 0x00000000\n\tMB_SYSTEMMODAL          = 0x00001000\n\tMB_TASKMODAL            = 0x00002000\n\tMB_HELP                 = 0x00004000\n\tMB_NOFOCUS              = 0x00008000\n\tMB_SETFOREGROUND        = 0x00010000\n\tMB_DEFAULT_DESKTOP_ONLY = 0x00020000\n\tMB_TOPMOST              = 0x00040000\n\tMB_RIGHT                = 0x00080000\n\tMB_RTLREADING           = 0x00100000\n\tMB_SERVICE_NOTIFICATION = 0x00200000\n)\n\nconst (\n\tMOVEFILE_REPLACE_EXISTING      = 0x1\n\tMOVEFILE_COPY_ALLOWED          = 0x2\n\tMOVEFILE_DELAY_UNTIL_REBOOT    = 0x4\n\tMOVEFILE_WRITE_THROUGH         = 0x8\n\tMOVEFILE_CREATE_HARDLINK       = 0x10\n\tMOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20\n)\n\n// Flags for GetAdaptersAddresses, see\n// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses.\nconst (\n\tGAA_FLAG_SKIP_UNICAST                = 0x1\n\tGAA_FLAG_SKIP_ANYCAST                = 0x2\n\tGAA_FLAG_SKIP_MULTICAST              = 0x4\n\tGAA_FLAG_SKIP_DNS_SERVER             = 0x8\n\tGAA_FLAG_INCLUDE_PREFIX              = 0x10\n\tGAA_FLAG_SKIP_FRIENDLY_NAME          = 0x20\n\tGAA_FLAG_INCLUDE_WINS_INFO           = 0x40\n\tGAA_FLAG_INCLUDE_GATEWAYS            = 0x80\n\tGAA_FLAG_INCLUDE_ALL_INTERFACES      = 0x100\n\tGAA_FLAG_INCLUDE_ALL_COMPARTMENTS    = 0x200\n\tGAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400\n)\n\nconst (\n\tIF_TYPE_OTHER              = 1\n\tIF_TYPE_ETHERNET_CSMACD    = 6\n\tIF_TYPE_ISO88025_TOKENRING = 9\n\tIF_TYPE_PPP                = 23\n\tIF_TYPE_SOFTWARE_LOOPBACK  = 24\n\tIF_TYPE_ATM                = 37\n\tIF_TYPE_IEEE80211          = 71\n\tIF_TYPE_TUNNEL             = 131\n\tIF_TYPE_IEEE1394           = 144\n)\n\n// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin\nconst (\n\tIpPrefixOriginOther               = 0\n\tIpPrefixOriginManual              = 1\n\tIpPrefixOriginWellKnown           = 2\n\tIpPrefixOriginDhcp                = 3\n\tIpPrefixOriginRouterAdvertisement = 4\n\tIpPrefixOriginUnchanged           = 1 << 4\n)\n\n// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin\nconst (\n\tNlsoOther                      = 0\n\tNlsoManual                     = 1\n\tNlsoWellKnown                  = 2\n\tNlsoDhcp                       = 3\n\tNlsoLinkLayerAddress           = 4\n\tNlsoRandom                     = 5\n\tIpSuffixOriginOther            = 0\n\tIpSuffixOriginManual           = 1\n\tIpSuffixOriginWellKnown        = 2\n\tIpSuffixOriginDhcp             = 3\n\tIpSuffixOriginLinkLayerAddress = 4\n\tIpSuffixOriginRandom           = 5\n\tIpSuffixOriginUnchanged        = 1 << 4\n)\n\n// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state\nconst (\n\tNldsInvalid          = 0\n\tNldsTentative        = 1\n\tNldsDuplicate        = 2\n\tNldsDeprecated       = 3\n\tNldsPreferred        = 4\n\tIpDadStateInvalid    = 0\n\tIpDadStateTentative  = 1\n\tIpDadStateDuplicate  = 2\n\tIpDadStateDeprecated = 3\n\tIpDadStatePreferred  = 4\n)\n\ntype SocketAddress struct {\n\tSockaddr       *syscall.RawSockaddrAny\n\tSockaddrLength int32\n}\n\n// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither.\nfunc (addr *SocketAddress) IP() net.IP {\n\tif uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET {\n\t\treturn (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t} else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 {\n\t\treturn (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t}\n\treturn nil\n}\n\ntype IpAdapterUnicastAddress struct {\n\tLength             uint32\n\tFlags              uint32\n\tNext               *IpAdapterUnicastAddress\n\tAddress            SocketAddress\n\tPrefixOrigin       int32\n\tSuffixOrigin       int32\n\tDadState           int32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tLeaseLifetime      uint32\n\tOnLinkPrefixLength uint8\n}\n\ntype IpAdapterAnycastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterAnycastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterMulticastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterMulticastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterDnsServerAdapter struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterDnsServerAdapter\n\tAddress  SocketAddress\n}\n\ntype IpAdapterPrefix struct {\n\tLength       uint32\n\tFlags        uint32\n\tNext         *IpAdapterPrefix\n\tAddress      SocketAddress\n\tPrefixLength uint32\n}\n\ntype IpAdapterAddresses struct {\n\tLength                 uint32\n\tIfIndex                uint32\n\tNext                   *IpAdapterAddresses\n\tAdapterName            *byte\n\tFirstUnicastAddress    *IpAdapterUnicastAddress\n\tFirstAnycastAddress    *IpAdapterAnycastAddress\n\tFirstMulticastAddress  *IpAdapterMulticastAddress\n\tFirstDnsServerAddress  *IpAdapterDnsServerAdapter\n\tDnsSuffix              *uint16\n\tDescription            *uint16\n\tFriendlyName           *uint16\n\tPhysicalAddress        [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tPhysicalAddressLength  uint32\n\tFlags                  uint32\n\tMtu                    uint32\n\tIfType                 uint32\n\tOperStatus             uint32\n\tIpv6IfIndex            uint32\n\tZoneIndices            [16]uint32\n\tFirstPrefix            *IpAdapterPrefix\n\tTransmitLinkSpeed      uint64\n\tReceiveLinkSpeed       uint64\n\tFirstWinsServerAddress *IpAdapterWinsServerAddress\n\tFirstGatewayAddress    *IpAdapterGatewayAddress\n\tIpv4Metric             uint32\n\tIpv6Metric             uint32\n\tLuid                   uint64\n\tDhcpv4Server           SocketAddress\n\tCompartmentId          uint32\n\tNetworkGuid            GUID\n\tConnectionType         uint32\n\tTunnelType             uint32\n\tDhcpv6Server           SocketAddress\n\tDhcpv6ClientDuid       [MAX_DHCPV6_DUID_LENGTH]byte\n\tDhcpv6ClientDuidLength uint32\n\tDhcpv6Iaid             uint32\n\tFirstDnsSuffix         *IpAdapterDNSSuffix\n}\n\ntype IpAdapterWinsServerAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterWinsServerAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterGatewayAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterGatewayAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterDNSSuffix struct {\n\tNext   *IpAdapterDNSSuffix\n\tString [MAX_DNS_SUFFIX_STRING_LENGTH]uint16\n}\n\nconst (\n\tIfOperStatusUp             = 1\n\tIfOperStatusDown           = 2\n\tIfOperStatusTesting        = 3\n\tIfOperStatusUnknown        = 4\n\tIfOperStatusDormant        = 5\n\tIfOperStatusNotPresent     = 6\n\tIfOperStatusLowerLayerDown = 7\n)\n\nconst (\n\tIF_MAX_PHYS_ADDRESS_LENGTH = 32\n\tIF_MAX_STRING_SIZE         = 256\n)\n\n// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex.\nconst (\n\tMibIfEntryNormal                  = 0\n\tMibIfEntryNormalWithoutStatistics = 2\n)\n\n// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type.\nconst (\n\tMibParameterNotification = 0\n\tMibAddInstance           = 1\n\tMibDeleteInstance        = 2\n\tMibInitialNotification   = 3\n)\n\n// MibIfRow2 stores information about a particular interface. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2.\ntype MibIfRow2 struct {\n\tInterfaceLuid               uint64\n\tInterfaceIndex              uint32\n\tInterfaceGuid               GUID\n\tAlias                       [IF_MAX_STRING_SIZE + 1]uint16\n\tDescription                 [IF_MAX_STRING_SIZE + 1]uint16\n\tPhysicalAddressLength       uint32\n\tPhysicalAddress             [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tPermanentPhysicalAddress    [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tMtu                         uint32\n\tType                        uint32\n\tTunnelType                  uint32\n\tMediaType                   uint32\n\tPhysicalMediumType          uint32\n\tAccessType                  uint32\n\tDirectionType               uint32\n\tInterfaceAndOperStatusFlags uint8\n\tOperStatus                  uint32\n\tAdminStatus                 uint32\n\tMediaConnectState           uint32\n\tNetworkGuid                 GUID\n\tConnectionType              uint32\n\tTransmitLinkSpeed           uint64\n\tReceiveLinkSpeed            uint64\n\tInOctets                    uint64\n\tInUcastPkts                 uint64\n\tInNUcastPkts                uint64\n\tInDiscards                  uint64\n\tInErrors                    uint64\n\tInUnknownProtos             uint64\n\tInUcastOctets               uint64\n\tInMulticastOctets           uint64\n\tInBroadcastOctets           uint64\n\tOutOctets                   uint64\n\tOutUcastPkts                uint64\n\tOutNUcastPkts               uint64\n\tOutDiscards                 uint64\n\tOutErrors                   uint64\n\tOutUcastOctets              uint64\n\tOutMulticastOctets          uint64\n\tOutBroadcastOctets          uint64\n\tOutQLen                     uint64\n}\n\n// IP_ADDRESS_PREFIX stores an IP address prefix. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-ip_address_prefix.\ntype IpAddressPrefix struct {\n\tPrefix       RawSockaddrInet\n\tPrefixLength uint8\n}\n\n// NL_ROUTE_ORIGIN enumeration from nldef.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_origin.\nconst (\n\tNlroManual              = 0\n\tNlroWellKnown           = 1\n\tNlroDHCP                = 2\n\tNlroRouterAdvertisement = 3\n\tNlro6to4                = 4\n)\n\n// NL_ROUTE_ORIGIN enumeration from nldef.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_protocol.\nconst (\n\tMIB_IPPROTO_OTHER             = 1\n\tMIB_IPPROTO_LOCAL             = 2\n\tMIB_IPPROTO_NETMGMT           = 3\n\tMIB_IPPROTO_ICMP              = 4\n\tMIB_IPPROTO_EGP               = 5\n\tMIB_IPPROTO_GGP               = 6\n\tMIB_IPPROTO_HELLO             = 7\n\tMIB_IPPROTO_RIP               = 8\n\tMIB_IPPROTO_IS_IS             = 9\n\tMIB_IPPROTO_ES_IS             = 10\n\tMIB_IPPROTO_CISCO             = 11\n\tMIB_IPPROTO_BBN               = 12\n\tMIB_IPPROTO_OSPF              = 13\n\tMIB_IPPROTO_BGP               = 14\n\tMIB_IPPROTO_IDPR              = 15\n\tMIB_IPPROTO_EIGRP             = 16\n\tMIB_IPPROTO_DVMRP             = 17\n\tMIB_IPPROTO_RPL               = 18\n\tMIB_IPPROTO_DHCP              = 19\n\tMIB_IPPROTO_NT_AUTOSTATIC     = 10002\n\tMIB_IPPROTO_NT_STATIC         = 10006\n\tMIB_IPPROTO_NT_STATIC_NON_DOD = 10007\n)\n\n// MIB_IPFORWARD_ROW2 stores information about an IP route entry. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_row2.\ntype MibIpForwardRow2 struct {\n\tInterfaceLuid        uint64\n\tInterfaceIndex       uint32\n\tDestinationPrefix    IpAddressPrefix\n\tNextHop              RawSockaddrInet\n\tSitePrefixLength     uint8\n\tValidLifetime        uint32\n\tPreferredLifetime    uint32\n\tMetric               uint32\n\tProtocol             uint32\n\tLoopback             uint8\n\tAutoconfigureAddress uint8\n\tPublish              uint8\n\tImmortal             uint8\n\tAge                  uint32\n\tOrigin               uint32\n}\n\n// MIB_IPFORWARD_TABLE2 contains a table of IP route entries. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_table2.\ntype MibIpForwardTable2 struct {\n\tNumEntries uint32\n\tTable      [1]MibIpForwardRow2\n}\n\n// Rows returns the IP route entries in the table.\nfunc (t *MibIpForwardTable2) Rows() []MibIpForwardRow2 {\n\treturn unsafe.Slice(&t.Table[0], t.NumEntries)\n}\n\n// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row.\ntype MibUnicastIpAddressRow struct {\n\tAddress            RawSockaddrInet6 // SOCKADDR_INET union\n\tInterfaceLuid      uint64\n\tInterfaceIndex     uint32\n\tPrefixOrigin       uint32\n\tSuffixOrigin       uint32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tOnLinkPrefixLength uint8\n\tSkipAsSource       uint8\n\tDadState           uint32\n\tScopeId            uint32\n\tCreationTimeStamp  Filetime\n}\n\nconst ScopeLevelCount = 16\n\n// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface.\n// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row.\ntype MibIpInterfaceRow struct {\n\tFamily                               uint16\n\tInterfaceLuid                        uint64\n\tInterfaceIndex                       uint32\n\tMaxReassemblySize                    uint32\n\tInterfaceIdentifier                  uint64\n\tMinRouterAdvertisementInterval       uint32\n\tMaxRouterAdvertisementInterval       uint32\n\tAdvertisingEnabled                   uint8\n\tForwardingEnabled                    uint8\n\tWeakHostSend                         uint8\n\tWeakHostReceive                      uint8\n\tUseAutomaticMetric                   uint8\n\tUseNeighborUnreachabilityDetection   uint8\n\tManagedAddressConfigurationSupported uint8\n\tOtherStatefulConfigurationSupported  uint8\n\tAdvertiseDefaultRoute                uint8\n\tRouterDiscoveryBehavior              uint32\n\tDadTransmits                         uint32\n\tBaseReachableTime                    uint32\n\tRetransmitTime                       uint32\n\tPathMtuDiscoveryTimeout              uint32\n\tLinkLocalAddressBehavior             uint32\n\tLinkLocalAddressTimeout              uint32\n\tZoneIndices                          [ScopeLevelCount]uint32\n\tSitePrefixLength                     uint32\n\tMetric                               uint32\n\tNlMtu                                uint32\n\tConnected                            uint8\n\tSupportsWakeUpPatterns               uint8\n\tSupportsNeighborDiscovery            uint8\n\tSupportsRouterDiscovery              uint8\n\tReachableTime                        uint32\n\tTransmitOffload                      uint32\n\tReceiveOffload                       uint32\n\tDisableDefaultRoutes                 uint8\n}\n\n// Console related constants used for the mode parameter to SetConsoleMode. See\n// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details.\n\nconst (\n\tENABLE_PROCESSED_INPUT        = 0x1\n\tENABLE_LINE_INPUT             = 0x2\n\tENABLE_ECHO_INPUT             = 0x4\n\tENABLE_WINDOW_INPUT           = 0x8\n\tENABLE_MOUSE_INPUT            = 0x10\n\tENABLE_INSERT_MODE            = 0x20\n\tENABLE_QUICK_EDIT_MODE        = 0x40\n\tENABLE_EXTENDED_FLAGS         = 0x80\n\tENABLE_AUTO_POSITION          = 0x100\n\tENABLE_VIRTUAL_TERMINAL_INPUT = 0x200\n\n\tENABLE_PROCESSED_OUTPUT            = 0x1\n\tENABLE_WRAP_AT_EOL_OUTPUT          = 0x2\n\tENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4\n\tDISABLE_NEWLINE_AUTO_RETURN        = 0x8\n\tENABLE_LVB_GRID_WORLDWIDE          = 0x10\n)\n\n// Pseudo console related constants used for the flags parameter to\n// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole\nconst (\n\tPSEUDOCONSOLE_INHERIT_CURSOR = 0x1\n)\n\ntype Coord struct {\n\tX int16\n\tY int16\n}\n\ntype SmallRect struct {\n\tLeft   int16\n\tTop    int16\n\tRight  int16\n\tBottom int16\n}\n\n// Used with GetConsoleScreenBuffer to retrieve information about a console\n// screen buffer. See\n// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str\n// for details.\n\ntype ConsoleScreenBufferInfo struct {\n\tSize              Coord\n\tCursorPosition    Coord\n\tAttributes        uint16\n\tWindow            SmallRect\n\tMaximumWindowSize Coord\n}\n\nconst UNIX_PATH_MAX = 108 // defined in afunix.h\n\nconst (\n\t// flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags\n\tJOB_OBJECT_LIMIT_ACTIVE_PROCESS             = 0x00000008\n\tJOB_OBJECT_LIMIT_AFFINITY                   = 0x00000010\n\tJOB_OBJECT_LIMIT_BREAKAWAY_OK               = 0x00000800\n\tJOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400\n\tJOB_OBJECT_LIMIT_JOB_MEMORY                 = 0x00000200\n\tJOB_OBJECT_LIMIT_JOB_TIME                   = 0x00000004\n\tJOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE          = 0x00002000\n\tJOB_OBJECT_LIMIT_PRESERVE_JOB_TIME          = 0x00000040\n\tJOB_OBJECT_LIMIT_PRIORITY_CLASS             = 0x00000020\n\tJOB_OBJECT_LIMIT_PROCESS_MEMORY             = 0x00000100\n\tJOB_OBJECT_LIMIT_PROCESS_TIME               = 0x00000002\n\tJOB_OBJECT_LIMIT_SCHEDULING_CLASS           = 0x00000080\n\tJOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK        = 0x00001000\n\tJOB_OBJECT_LIMIT_SUBSET_AFFINITY            = 0x00004000\n\tJOB_OBJECT_LIMIT_WORKINGSET                 = 0x00000001\n)\n\ntype IO_COUNTERS struct {\n\tReadOperationCount  uint64\n\tWriteOperationCount uint64\n\tOtherOperationCount uint64\n\tReadTransferCount   uint64\n\tWriteTransferCount  uint64\n\tOtherTransferCount  uint64\n}\n\ntype JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {\n\tBasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION\n\tIoInfo                IO_COUNTERS\n\tProcessMemoryLimit    uintptr\n\tJobMemoryLimit        uintptr\n\tPeakProcessMemoryUsed uintptr\n\tPeakJobMemoryUsed     uintptr\n}\n\nconst (\n\t// UIRestrictionsClass\n\tJOB_OBJECT_UILIMIT_DESKTOP          = 0x00000040\n\tJOB_OBJECT_UILIMIT_DISPLAYSETTINGS  = 0x00000010\n\tJOB_OBJECT_UILIMIT_EXITWINDOWS      = 0x00000080\n\tJOB_OBJECT_UILIMIT_GLOBALATOMS      = 0x00000020\n\tJOB_OBJECT_UILIMIT_HANDLES          = 0x00000001\n\tJOB_OBJECT_UILIMIT_READCLIPBOARD    = 0x00000002\n\tJOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008\n\tJOB_OBJECT_UILIMIT_WRITECLIPBOARD   = 0x00000004\n)\n\ntype JOBOBJECT_BASIC_UI_RESTRICTIONS struct {\n\tUIRestrictionsClass uint32\n}\n\nconst (\n\t// JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject\n\tJobObjectAssociateCompletionPortInformation = 7\n\tJobObjectBasicAccountingInformation         = 1\n\tJobObjectBasicAndIoAccountingInformation    = 8\n\tJobObjectBasicLimitInformation              = 2\n\tJobObjectBasicProcessIdList                 = 3\n\tJobObjectBasicUIRestrictions                = 4\n\tJobObjectCpuRateControlInformation          = 15\n\tJobObjectEndOfJobTimeInformation            = 6\n\tJobObjectExtendedLimitInformation           = 9\n\tJobObjectGroupInformation                   = 11\n\tJobObjectGroupInformationEx                 = 14\n\tJobObjectLimitViolationInformation          = 13\n\tJobObjectLimitViolationInformation2         = 34\n\tJobObjectNetRateControlInformation          = 32\n\tJobObjectNotificationLimitInformation       = 12\n\tJobObjectNotificationLimitInformation2      = 33\n\tJobObjectSecurityLimitInformation           = 5\n)\n\nconst (\n\tKF_FLAG_DEFAULT                          = 0x00000000\n\tKF_FLAG_FORCE_APP_DATA_REDIRECTION       = 0x00080000\n\tKF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000\n\tKF_FLAG_FORCE_PACKAGE_REDIRECTION        = 0x00020000\n\tKF_FLAG_NO_PACKAGE_REDIRECTION           = 0x00010000\n\tKF_FLAG_FORCE_APPCONTAINER_REDIRECTION   = 0x00020000\n\tKF_FLAG_NO_APPCONTAINER_REDIRECTION      = 0x00010000\n\tKF_FLAG_CREATE                           = 0x00008000\n\tKF_FLAG_DONT_VERIFY                      = 0x00004000\n\tKF_FLAG_DONT_UNEXPAND                    = 0x00002000\n\tKF_FLAG_NO_ALIAS                         = 0x00001000\n\tKF_FLAG_INIT                             = 0x00000800\n\tKF_FLAG_DEFAULT_PATH                     = 0x00000400\n\tKF_FLAG_NOT_PARENT_RELATIVE              = 0x00000200\n\tKF_FLAG_SIMPLE_IDLIST                    = 0x00000100\n\tKF_FLAG_ALIAS_ONLY                       = 0x80000000\n)\n\ntype OsVersionInfoEx struct {\n\tosVersionInfoSize uint32\n\tMajorVersion      uint32\n\tMinorVersion      uint32\n\tBuildNumber       uint32\n\tPlatformId        uint32\n\tCsdVersion        [128]uint16\n\tServicePackMajor  uint16\n\tServicePackMinor  uint16\n\tSuiteMask         uint16\n\tProductType       byte\n\t_                 byte\n}\n\nconst (\n\tEWX_LOGOFF          = 0x00000000\n\tEWX_SHUTDOWN        = 0x00000001\n\tEWX_REBOOT          = 0x00000002\n\tEWX_FORCE           = 0x00000004\n\tEWX_POWEROFF        = 0x00000008\n\tEWX_FORCEIFHUNG     = 0x00000010\n\tEWX_QUICKRESOLVE    = 0x00000020\n\tEWX_RESTARTAPPS     = 0x00000040\n\tEWX_HYBRID_SHUTDOWN = 0x00400000\n\tEWX_BOOTOPTIONS     = 0x01000000\n\n\tSHTDN_REASON_FLAG_COMMENT_REQUIRED          = 0x01000000\n\tSHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000\n\tSHTDN_REASON_FLAG_CLEAN_UI                  = 0x04000000\n\tSHTDN_REASON_FLAG_DIRTY_UI                  = 0x08000000\n\tSHTDN_REASON_FLAG_USER_DEFINED              = 0x40000000\n\tSHTDN_REASON_FLAG_PLANNED                   = 0x80000000\n\tSHTDN_REASON_MAJOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MAJOR_NONE                     = 0x00000000\n\tSHTDN_REASON_MAJOR_HARDWARE                 = 0x00010000\n\tSHTDN_REASON_MAJOR_OPERATINGSYSTEM          = 0x00020000\n\tSHTDN_REASON_MAJOR_SOFTWARE                 = 0x00030000\n\tSHTDN_REASON_MAJOR_APPLICATION              = 0x00040000\n\tSHTDN_REASON_MAJOR_SYSTEM                   = 0x00050000\n\tSHTDN_REASON_MAJOR_POWER                    = 0x00060000\n\tSHTDN_REASON_MAJOR_LEGACY_API               = 0x00070000\n\tSHTDN_REASON_MINOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MINOR_NONE                     = 0x000000ff\n\tSHTDN_REASON_MINOR_MAINTENANCE              = 0x00000001\n\tSHTDN_REASON_MINOR_INSTALLATION             = 0x00000002\n\tSHTDN_REASON_MINOR_UPGRADE                  = 0x00000003\n\tSHTDN_REASON_MINOR_RECONFIG                 = 0x00000004\n\tSHTDN_REASON_MINOR_HUNG                     = 0x00000005\n\tSHTDN_REASON_MINOR_UNSTABLE                 = 0x00000006\n\tSHTDN_REASON_MINOR_DISK                     = 0x00000007\n\tSHTDN_REASON_MINOR_PROCESSOR                = 0x00000008\n\tSHTDN_REASON_MINOR_NETWORKCARD              = 0x00000009\n\tSHTDN_REASON_MINOR_POWER_SUPPLY             = 0x0000000a\n\tSHTDN_REASON_MINOR_CORDUNPLUGGED            = 0x0000000b\n\tSHTDN_REASON_MINOR_ENVIRONMENT              = 0x0000000c\n\tSHTDN_REASON_MINOR_HARDWARE_DRIVER          = 0x0000000d\n\tSHTDN_REASON_MINOR_OTHERDRIVER              = 0x0000000e\n\tSHTDN_REASON_MINOR_BLUESCREEN               = 0x0000000F\n\tSHTDN_REASON_MINOR_SERVICEPACK              = 0x00000010\n\tSHTDN_REASON_MINOR_HOTFIX                   = 0x00000011\n\tSHTDN_REASON_MINOR_SECURITYFIX              = 0x00000012\n\tSHTDN_REASON_MINOR_SECURITY                 = 0x00000013\n\tSHTDN_REASON_MINOR_NETWORK_CONNECTIVITY     = 0x00000014\n\tSHTDN_REASON_MINOR_WMI                      = 0x00000015\n\tSHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL    = 0x00000016\n\tSHTDN_REASON_MINOR_HOTFIX_UNINSTALL         = 0x00000017\n\tSHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL    = 0x00000018\n\tSHTDN_REASON_MINOR_MMC                      = 0x00000019\n\tSHTDN_REASON_MINOR_SYSTEMRESTORE            = 0x0000001a\n\tSHTDN_REASON_MINOR_TERMSRV                  = 0x00000020\n\tSHTDN_REASON_MINOR_DC_PROMOTION             = 0x00000021\n\tSHTDN_REASON_MINOR_DC_DEMOTION              = 0x00000022\n\tSHTDN_REASON_UNKNOWN                        = SHTDN_REASON_MINOR_NONE\n\tSHTDN_REASON_LEGACY_API                     = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED\n\tSHTDN_REASON_VALID_BIT_MASK                 = 0xc0ffffff\n\n\tSHUTDOWN_NORETRY = 0x1\n)\n\n// Flags used for GetModuleHandleEx\nconst (\n\tGET_MODULE_HANDLE_EX_FLAG_PIN                = 1\n\tGET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2\n\tGET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS       = 4\n)\n\n// MUI function flag values\nconst (\n\tMUI_LANGUAGE_ID                    = 0x4\n\tMUI_LANGUAGE_NAME                  = 0x8\n\tMUI_MERGE_SYSTEM_FALLBACK          = 0x10\n\tMUI_MERGE_USER_FALLBACK            = 0x20\n\tMUI_UI_FALLBACK                    = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK\n\tMUI_THREAD_LANGUAGES               = 0x40\n\tMUI_CONSOLE_FILTER                 = 0x100\n\tMUI_COMPLEX_SCRIPT_FILTER          = 0x200\n\tMUI_RESET_FILTERS                  = 0x001\n\tMUI_USER_PREFERRED_UI_LANGUAGES    = 0x10\n\tMUI_USE_INSTALLED_LANGUAGES        = 0x20\n\tMUI_USE_SEARCH_ALL_LANGUAGES       = 0x40\n\tMUI_LANG_NEUTRAL_PE_FILE           = 0x100\n\tMUI_NON_LANG_NEUTRAL_FILE          = 0x200\n\tMUI_MACHINE_LANGUAGE_SETTINGS      = 0x400\n\tMUI_FILETYPE_NOT_LANGUAGE_NEUTRAL  = 0x001\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MUI  = 0x004\n\tMUI_QUERY_TYPE                     = 0x001\n\tMUI_QUERY_CHECKSUM                 = 0x002\n\tMUI_QUERY_LANGUAGE_NAME            = 0x004\n\tMUI_QUERY_RESOURCE_TYPES           = 0x008\n\tMUI_FILEINFO_VERSION               = 0x001\n\n\tMUI_FULL_LANGUAGE      = 0x01\n\tMUI_PARTIAL_LANGUAGE   = 0x02\n\tMUI_LIP_LANGUAGE       = 0x04\n\tMUI_LANGUAGE_INSTALLED = 0x20\n\tMUI_LANGUAGE_LICENSED  = 0x40\n)\n\n// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx\nconst (\n\tFileBasicInfo                  = 0\n\tFileStandardInfo               = 1\n\tFileNameInfo                   = 2\n\tFileRenameInfo                 = 3\n\tFileDispositionInfo            = 4\n\tFileAllocationInfo             = 5\n\tFileEndOfFileInfo              = 6\n\tFileStreamInfo                 = 7\n\tFileCompressionInfo            = 8\n\tFileAttributeTagInfo           = 9\n\tFileIdBothDirectoryInfo        = 10\n\tFileIdBothDirectoryRestartInfo = 11\n\tFileIoPriorityHintInfo         = 12\n\tFileRemoteProtocolInfo         = 13\n\tFileFullDirectoryInfo          = 14\n\tFileFullDirectoryRestartInfo   = 15\n\tFileStorageInfo                = 16\n\tFileAlignmentInfo              = 17\n\tFileIdInfo                     = 18\n\tFileIdExtdDirectoryInfo        = 19\n\tFileIdExtdDirectoryRestartInfo = 20\n\tFileDispositionInfoEx          = 21\n\tFileRenameInfoEx               = 22\n\tFileCaseSensitiveInfo          = 23\n\tFileNormalizedNameInfo         = 24\n)\n\n// LoadLibrary flags for determining from where to search for a DLL\nconst (\n\tDONT_RESOLVE_DLL_REFERENCES               = 0x1\n\tLOAD_LIBRARY_AS_DATAFILE                  = 0x2\n\tLOAD_WITH_ALTERED_SEARCH_PATH             = 0x8\n\tLOAD_IGNORE_CODE_AUTHZ_LEVEL              = 0x10\n\tLOAD_LIBRARY_AS_IMAGE_RESOURCE            = 0x20\n\tLOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE        = 0x40\n\tLOAD_LIBRARY_REQUIRE_SIGNED_TARGET        = 0x80\n\tLOAD_LIBRARY_SEARCH_DLL_LOAD_DIR          = 0x100\n\tLOAD_LIBRARY_SEARCH_APPLICATION_DIR       = 0x200\n\tLOAD_LIBRARY_SEARCH_USER_DIRS             = 0x400\n\tLOAD_LIBRARY_SEARCH_SYSTEM32              = 0x800\n\tLOAD_LIBRARY_SEARCH_DEFAULT_DIRS          = 0x1000\n\tLOAD_LIBRARY_SAFE_CURRENT_DIRS            = 0x00002000\n\tLOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000\n\tLOAD_LIBRARY_OS_INTEGRITY_CONTINUITY      = 0x00008000\n)\n\n// RegNotifyChangeKeyValue notifyFilter flags.\nconst (\n\t// REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted.\n\tREG_NOTIFY_CHANGE_NAME = 0x00000001\n\n\t// REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information.\n\tREG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002\n\n\t// REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value.\n\tREG_NOTIFY_CHANGE_LAST_SET = 0x00000004\n\n\t// REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key.\n\tREG_NOTIFY_CHANGE_SECURITY = 0x00000008\n\n\t// REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later.\n\tREG_NOTIFY_THREAD_AGNOSTIC = 0x10000000\n)\n\ntype CommTimeouts struct {\n\tReadIntervalTimeout         uint32\n\tReadTotalTimeoutMultiplier  uint32\n\tReadTotalTimeoutConstant    uint32\n\tWriteTotalTimeoutMultiplier uint32\n\tWriteTotalTimeoutConstant   uint32\n}\n\n// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING.\ntype NTUnicodeString struct {\n\t// Note: Length and MaximumLength are in *bytes*, not uint16s.\n\t// They should always be even.\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *uint16\n}\n\n// NTString is an ANSI string for NT native APIs, corresponding to STRING.\ntype NTString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *byte\n}\n\ntype LIST_ENTRY struct {\n\tFlink *LIST_ENTRY\n\tBlink *LIST_ENTRY\n}\n\ntype RUNTIME_FUNCTION struct {\n\tBeginAddress uint32\n\tEndAddress   uint32\n\tUnwindData   uint32\n}\n\ntype LDR_DATA_TABLE_ENTRY struct {\n\treserved1          [2]uintptr\n\tInMemoryOrderLinks LIST_ENTRY\n\treserved2          [2]uintptr\n\tDllBase            uintptr\n\treserved3          [2]uintptr\n\tFullDllName        NTUnicodeString\n\treserved4          [8]byte\n\treserved5          [3]uintptr\n\treserved6          uintptr\n\tTimeDateStamp      uint32\n}\n\ntype PEB_LDR_DATA struct {\n\treserved1               [8]byte\n\treserved2               [3]uintptr\n\tInMemoryOrderModuleList LIST_ENTRY\n}\n\ntype CURDIR struct {\n\tDosPath NTUnicodeString\n\tHandle  Handle\n}\n\ntype RTL_DRIVE_LETTER_CURDIR struct {\n\tFlags     uint16\n\tLength    uint16\n\tTimeStamp uint32\n\tDosPath   NTString\n}\n\ntype RTL_USER_PROCESS_PARAMETERS struct {\n\tMaximumLength, Length uint32\n\n\tFlags, DebugFlags uint32\n\n\tConsoleHandle                                Handle\n\tConsoleFlags                                 uint32\n\tStandardInput, StandardOutput, StandardError Handle\n\n\tCurrentDirectory CURDIR\n\tDllPath          NTUnicodeString\n\tImagePathName    NTUnicodeString\n\tCommandLine      NTUnicodeString\n\tEnvironment      unsafe.Pointer\n\n\tStartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32\n\n\tWindowFlags, ShowWindowFlags                     uint32\n\tWindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString\n\tCurrentDirectories                               [32]RTL_DRIVE_LETTER_CURDIR\n\n\tEnvironmentSize, EnvironmentVersion uintptr\n\n\tPackageDependencyData unsafe.Pointer\n\tProcessGroupId        uint32\n\tLoaderThreads         uint32\n\n\tRedirectionDllName               NTUnicodeString\n\tHeapPartitionName                NTUnicodeString\n\tDefaultThreadpoolCpuSetMasks     uintptr\n\tDefaultThreadpoolCpuSetMaskCount uint32\n}\n\ntype PEB struct {\n\treserved1              [2]byte\n\tBeingDebugged          byte\n\tBitField               byte\n\treserved3              uintptr\n\tImageBaseAddress       uintptr\n\tLdr                    *PEB_LDR_DATA\n\tProcessParameters      *RTL_USER_PROCESS_PARAMETERS\n\treserved4              [3]uintptr\n\tAtlThunkSListPtr       uintptr\n\treserved5              uintptr\n\treserved6              uint32\n\treserved7              uintptr\n\treserved8              uint32\n\tAtlThunkSListPtr32     uint32\n\treserved9              [45]uintptr\n\treserved10             [96]byte\n\tPostProcessInitRoutine uintptr\n\treserved11             [128]byte\n\treserved12             [1]uintptr\n\tSessionId              uint32\n}\n\ntype OBJECT_ATTRIBUTES struct {\n\tLength             uint32\n\tRootDirectory      Handle\n\tObjectName         *NTUnicodeString\n\tAttributes         uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tSecurityQoS        *SECURITY_QUALITY_OF_SERVICE\n}\n\n// Values for the Attributes member of OBJECT_ATTRIBUTES.\nconst (\n\tOBJ_INHERIT                       = 0x00000002\n\tOBJ_PERMANENT                     = 0x00000010\n\tOBJ_EXCLUSIVE                     = 0x00000020\n\tOBJ_CASE_INSENSITIVE              = 0x00000040\n\tOBJ_OPENIF                        = 0x00000080\n\tOBJ_OPENLINK                      = 0x00000100\n\tOBJ_KERNEL_HANDLE                 = 0x00000200\n\tOBJ_FORCE_ACCESS_CHECK            = 0x00000400\n\tOBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800\n\tOBJ_DONT_REPARSE                  = 0x00001000\n\tOBJ_VALID_ATTRIBUTES              = 0x00001FF2\n)\n\ntype IO_STATUS_BLOCK struct {\n\tStatus      NTStatus\n\tInformation uintptr\n}\n\ntype RTLP_CURDIR_REF struct {\n\tRefCount int32\n\tHandle   Handle\n}\n\ntype RTL_RELATIVE_NAME struct {\n\tRelativeName        NTUnicodeString\n\tContainingDirectory Handle\n\tCurDirRef           *RTLP_CURDIR_REF\n}\n\nconst (\n\t// CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_SUPERSEDE           = 0x00000000\n\tFILE_OPEN                = 0x00000001\n\tFILE_CREATE              = 0x00000002\n\tFILE_OPEN_IF             = 0x00000003\n\tFILE_OVERWRITE           = 0x00000004\n\tFILE_OVERWRITE_IF        = 0x00000005\n\tFILE_MAXIMUM_DISPOSITION = 0x00000005\n\n\t// CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_DIRECTORY_FILE            = 0x00000001\n\tFILE_WRITE_THROUGH             = 0x00000002\n\tFILE_SEQUENTIAL_ONLY           = 0x00000004\n\tFILE_NO_INTERMEDIATE_BUFFERING = 0x00000008\n\tFILE_SYNCHRONOUS_IO_ALERT      = 0x00000010\n\tFILE_SYNCHRONOUS_IO_NONALERT   = 0x00000020\n\tFILE_NON_DIRECTORY_FILE        = 0x00000040\n\tFILE_CREATE_TREE_CONNECTION    = 0x00000080\n\tFILE_COMPLETE_IF_OPLOCKED      = 0x00000100\n\tFILE_NO_EA_KNOWLEDGE           = 0x00000200\n\tFILE_OPEN_REMOTE_INSTANCE      = 0x00000400\n\tFILE_RANDOM_ACCESS             = 0x00000800\n\tFILE_DELETE_ON_CLOSE           = 0x00001000\n\tFILE_OPEN_BY_FILE_ID           = 0x00002000\n\tFILE_OPEN_FOR_BACKUP_INTENT    = 0x00004000\n\tFILE_NO_COMPRESSION            = 0x00008000\n\tFILE_OPEN_REQUIRING_OPLOCK     = 0x00010000\n\tFILE_DISALLOW_EXCLUSIVE        = 0x00020000\n\tFILE_RESERVE_OPFILTER          = 0x00100000\n\tFILE_OPEN_REPARSE_POINT        = 0x00200000\n\tFILE_OPEN_NO_RECALL            = 0x00400000\n\tFILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000\n\n\t// Parameter constants for NtCreateNamedPipeFile.\n\n\tFILE_PIPE_BYTE_STREAM_TYPE = 0x00000000\n\tFILE_PIPE_MESSAGE_TYPE     = 0x00000001\n\n\tFILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000\n\tFILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002\n\n\tFILE_PIPE_TYPE_VALID_MASK = 0x00000003\n\n\tFILE_PIPE_BYTE_STREAM_MODE = 0x00000000\n\tFILE_PIPE_MESSAGE_MODE     = 0x00000001\n\n\tFILE_PIPE_QUEUE_OPERATION    = 0x00000000\n\tFILE_PIPE_COMPLETE_OPERATION = 0x00000001\n\n\tFILE_PIPE_INBOUND     = 0x00000000\n\tFILE_PIPE_OUTBOUND    = 0x00000001\n\tFILE_PIPE_FULL_DUPLEX = 0x00000002\n\n\tFILE_PIPE_DISCONNECTED_STATE = 0x00000001\n\tFILE_PIPE_LISTENING_STATE    = 0x00000002\n\tFILE_PIPE_CONNECTED_STATE    = 0x00000003\n\tFILE_PIPE_CLOSING_STATE      = 0x00000004\n\n\tFILE_PIPE_CLIENT_END = 0x00000000\n\tFILE_PIPE_SERVER_END = 0x00000001\n)\n\nconst (\n\t// FileInformationClass for NtSetInformationFile\n\tFileBasicInformation                         = 4\n\tFileRenameInformation                        = 10\n\tFileDispositionInformation                   = 13\n\tFilePositionInformation                      = 14\n\tFileEndOfFileInformation                     = 20\n\tFileValidDataLengthInformation               = 39\n\tFileShortNameInformation                     = 40\n\tFileIoPriorityHintInformation                = 43\n\tFileReplaceCompletionInformation             = 61\n\tFileDispositionInformationEx                 = 64\n\tFileCaseSensitiveInformation                 = 71\n\tFileLinkInformation                          = 72\n\tFileCaseSensitiveInformationForceAccessCheck = 75\n\tFileKnownFolderInformation                   = 76\n\n\t// Flags for FILE_RENAME_INFORMATION\n\tFILE_RENAME_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_RENAME_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE       = 0x00000004\n\tFILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_RENAME_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_RENAME_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_RENAME_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_RENAME_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_RENAME_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_RENAME_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_RENAME_FORCE_RESIZE_SR                      = 0x00000180\n\n\t// Flags for FILE_DISPOSITION_INFORMATION_EX\n\tFILE_DISPOSITION_DO_NOT_DELETE             = 0x00000000\n\tFILE_DISPOSITION_DELETE                    = 0x00000001\n\tFILE_DISPOSITION_POSIX_SEMANTICS           = 0x00000002\n\tFILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004\n\tFILE_DISPOSITION_ON_CLOSE                  = 0x00000008\n\tFILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010\n\n\t// Flags for FILE_CASE_SENSITIVE_INFORMATION\n\tFILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001\n\n\t// Flags for FILE_LINK_INFORMATION\n\tFILE_LINK_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_LINK_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_LINK_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_LINK_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_LINK_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_LINK_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_LINK_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_LINK_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_LINK_FORCE_RESIZE_SR                      = 0x00000180\n)\n\n// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess.\nconst (\n\tProcessBasicInformation = iota\n\tProcessQuotaLimits\n\tProcessIoCounters\n\tProcessVmCounters\n\tProcessTimes\n\tProcessBasePriority\n\tProcessRaisePriority\n\tProcessDebugPort\n\tProcessExceptionPort\n\tProcessAccessToken\n\tProcessLdtInformation\n\tProcessLdtSize\n\tProcessDefaultHardErrorMode\n\tProcessIoPortHandlers\n\tProcessPooledUsageAndLimits\n\tProcessWorkingSetWatch\n\tProcessUserModeIOPL\n\tProcessEnableAlignmentFaultFixup\n\tProcessPriorityClass\n\tProcessWx86Information\n\tProcessHandleCount\n\tProcessAffinityMask\n\tProcessPriorityBoost\n\tProcessDeviceMap\n\tProcessSessionInformation\n\tProcessForegroundInformation\n\tProcessWow64Information\n\tProcessImageFileName\n\tProcessLUIDDeviceMapsEnabled\n\tProcessBreakOnTermination\n\tProcessDebugObjectHandle\n\tProcessDebugFlags\n\tProcessHandleTracing\n\tProcessIoPriority\n\tProcessExecuteFlags\n\tProcessTlsInformation\n\tProcessCookie\n\tProcessImageInformation\n\tProcessCycleTime\n\tProcessPagePriority\n\tProcessInstrumentationCallback\n\tProcessThreadStackAllocation\n\tProcessWorkingSetWatchEx\n\tProcessImageFileNameWin32\n\tProcessImageFileMapping\n\tProcessAffinityUpdateMode\n\tProcessMemoryAllocationMode\n\tProcessGroupInformation\n\tProcessTokenVirtualizationEnabled\n\tProcessConsoleHostProcess\n\tProcessWindowInformation\n\tProcessHandleInformation\n\tProcessMitigationPolicy\n\tProcessDynamicFunctionTableInformation\n\tProcessHandleCheckingMode\n\tProcessKeepAliveCount\n\tProcessRevokeFileHandles\n\tProcessWorkingSetControl\n\tProcessHandleTable\n\tProcessCheckStackExtentsMode\n\tProcessCommandLineInformation\n\tProcessProtectionInformation\n\tProcessMemoryExhaustion\n\tProcessFaultInformation\n\tProcessTelemetryIdInformation\n\tProcessCommitReleaseInformation\n\tProcessDefaultCpuSetsInformation\n\tProcessAllowedCpuSetsInformation\n\tProcessSubsystemProcess\n\tProcessJobMemoryInformation\n\tProcessInPrivate\n\tProcessRaiseUMExceptionOnInvalidHandleClose\n\tProcessIumChallengeResponse\n\tProcessChildProcessInformation\n\tProcessHighGraphicsPriorityInformation\n\tProcessSubsystemInformation\n\tProcessEnergyValues\n\tProcessActivityThrottleState\n\tProcessActivityThrottlePolicy\n\tProcessWin32kSyscallFilterInformation\n\tProcessDisableSystemAllowedCpuSets\n\tProcessWakeInformation\n\tProcessEnergyTrackingState\n\tProcessManageWritesToExecutableMemory\n\tProcessCaptureTrustletLiveDump\n\tProcessTelemetryCoverage\n\tProcessEnclaveInformation\n\tProcessEnableReadWriteVmLogging\n\tProcessUptimeInformation\n\tProcessImageSection\n\tProcessDebugAuthInformation\n\tProcessSystemResourceManagement\n\tProcessSequenceNumber\n\tProcessLoaderDetour\n\tProcessSecurityDomainInformation\n\tProcessCombineSecurityDomainsInformation\n\tProcessEnableLogging\n\tProcessLeapSecondInformation\n\tProcessFiberShadowStackAllocation\n\tProcessFreeFiberShadowStackAllocation\n\tProcessAltSystemCallInformation\n\tProcessDynamicEHContinuationTargets\n\tProcessDynamicEnforcedCetCompatibleRanges\n)\n\ntype PROCESS_BASIC_INFORMATION struct {\n\tExitStatus                   NTStatus\n\tPebBaseAddress               *PEB\n\tAffinityMask                 uintptr\n\tBasePriority                 int32\n\tUniqueProcessId              uintptr\n\tInheritedFromUniqueProcessId uintptr\n}\n\ntype SYSTEM_PROCESS_INFORMATION struct {\n\tNextEntryOffset              uint32\n\tNumberOfThreads              uint32\n\tWorkingSetPrivateSize        int64\n\tHardFaultCount               uint32\n\tNumberOfThreadsHighWatermark uint32\n\tCycleTime                    uint64\n\tCreateTime                   int64\n\tUserTime                     int64\n\tKernelTime                   int64\n\tImageName                    NTUnicodeString\n\tBasePriority                 int32\n\tUniqueProcessID              uintptr\n\tInheritedFromUniqueProcessID uintptr\n\tHandleCount                  uint32\n\tSessionID                    uint32\n\tUniqueProcessKey             *uint32\n\tPeakVirtualSize              uintptr\n\tVirtualSize                  uintptr\n\tPageFaultCount               uint32\n\tPeakWorkingSetSize           uintptr\n\tWorkingSetSize               uintptr\n\tQuotaPeakPagedPoolUsage      uintptr\n\tQuotaPagedPoolUsage          uintptr\n\tQuotaPeakNonPagedPoolUsage   uintptr\n\tQuotaNonPagedPoolUsage       uintptr\n\tPagefileUsage                uintptr\n\tPeakPagefileUsage            uintptr\n\tPrivatePageCount             uintptr\n\tReadOperationCount           int64\n\tWriteOperationCount          int64\n\tOtherOperationCount          int64\n\tReadTransferCount            int64\n\tWriteTransferCount           int64\n\tOtherTransferCount           int64\n}\n\n// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation\nconst (\n\tSystemBasicInformation = iota\n\tSystemProcessorInformation\n\tSystemPerformanceInformation\n\tSystemTimeOfDayInformation\n\tSystemPathInformation\n\tSystemProcessInformation\n\tSystemCallCountInformation\n\tSystemDeviceInformation\n\tSystemProcessorPerformanceInformation\n\tSystemFlagsInformation\n\tSystemCallTimeInformation\n\tSystemModuleInformation\n\tSystemLocksInformation\n\tSystemStackTraceInformation\n\tSystemPagedPoolInformation\n\tSystemNonPagedPoolInformation\n\tSystemHandleInformation\n\tSystemObjectInformation\n\tSystemPageFileInformation\n\tSystemVdmInstemulInformation\n\tSystemVdmBopInformation\n\tSystemFileCacheInformation\n\tSystemPoolTagInformation\n\tSystemInterruptInformation\n\tSystemDpcBehaviorInformation\n\tSystemFullMemoryInformation\n\tSystemLoadGdiDriverInformation\n\tSystemUnloadGdiDriverInformation\n\tSystemTimeAdjustmentInformation\n\tSystemSummaryMemoryInformation\n\tSystemMirrorMemoryInformation\n\tSystemPerformanceTraceInformation\n\tsystemObsolete0\n\tSystemExceptionInformation\n\tSystemCrashDumpStateInformation\n\tSystemKernelDebuggerInformation\n\tSystemContextSwitchInformation\n\tSystemRegistryQuotaInformation\n\tSystemExtendServiceTableInformation\n\tSystemPrioritySeperation\n\tSystemVerifierAddDriverInformation\n\tSystemVerifierRemoveDriverInformation\n\tSystemProcessorIdleInformation\n\tSystemLegacyDriverInformation\n\tSystemCurrentTimeZoneInformation\n\tSystemLookasideInformation\n\tSystemTimeSlipNotification\n\tSystemSessionCreate\n\tSystemSessionDetach\n\tSystemSessionInformation\n\tSystemRangeStartInformation\n\tSystemVerifierInformation\n\tSystemVerifierThunkExtend\n\tSystemSessionProcessInformation\n\tSystemLoadGdiDriverInSystemSpace\n\tSystemNumaProcessorMap\n\tSystemPrefetcherInformation\n\tSystemExtendedProcessInformation\n\tSystemRecommendedSharedDataAlignment\n\tSystemComPlusPackage\n\tSystemNumaAvailableMemory\n\tSystemProcessorPowerInformation\n\tSystemEmulationBasicInformation\n\tSystemEmulationProcessorInformation\n\tSystemExtendedHandleInformation\n\tSystemLostDelayedWriteInformation\n\tSystemBigPoolInformation\n\tSystemSessionPoolTagInformation\n\tSystemSessionMappedViewInformation\n\tSystemHotpatchInformation\n\tSystemObjectSecurityMode\n\tSystemWatchdogTimerHandler\n\tSystemWatchdogTimerInformation\n\tSystemLogicalProcessorInformation\n\tSystemWow64SharedInformationObsolete\n\tSystemRegisterFirmwareTableInformationHandler\n\tSystemFirmwareTableInformation\n\tSystemModuleInformationEx\n\tSystemVerifierTriageInformation\n\tSystemSuperfetchInformation\n\tSystemMemoryListInformation\n\tSystemFileCacheInformationEx\n\tSystemThreadPriorityClientIdInformation\n\tSystemProcessorIdleCycleTimeInformation\n\tSystemVerifierCancellationInformation\n\tSystemProcessorPowerInformationEx\n\tSystemRefTraceInformation\n\tSystemSpecialPoolInformation\n\tSystemProcessIdInformation\n\tSystemErrorPortInformation\n\tSystemBootEnvironmentInformation\n\tSystemHypervisorInformation\n\tSystemVerifierInformationEx\n\tSystemTimeZoneInformation\n\tSystemImageFileExecutionOptionsInformation\n\tSystemCoverageInformation\n\tSystemPrefetchPatchInformation\n\tSystemVerifierFaultsInformation\n\tSystemSystemPartitionInformation\n\tSystemSystemDiskInformation\n\tSystemProcessorPerformanceDistribution\n\tSystemNumaProximityNodeInformation\n\tSystemDynamicTimeZoneInformation\n\tSystemCodeIntegrityInformation\n\tSystemProcessorMicrocodeUpdateInformation\n\tSystemProcessorBrandString\n\tSystemVirtualAddressInformation\n\tSystemLogicalProcessorAndGroupInformation\n\tSystemProcessorCycleTimeInformation\n\tSystemStoreInformation\n\tSystemRegistryAppendString\n\tSystemAitSamplingValue\n\tSystemVhdBootInformation\n\tSystemCpuQuotaInformation\n\tSystemNativeBasicInformation\n\tsystemSpare1\n\tSystemLowPriorityIoInformation\n\tSystemTpmBootEntropyInformation\n\tSystemVerifierCountersInformation\n\tSystemPagedPoolInformationEx\n\tSystemSystemPtesInformationEx\n\tSystemNodeDistanceInformation\n\tSystemAcpiAuditInformation\n\tSystemBasicPerformanceInformation\n\tSystemQueryPerformanceCounterInformation\n\tSystemSessionBigPoolInformation\n\tSystemBootGraphicsInformation\n\tSystemScrubPhysicalMemoryInformation\n\tSystemBadPageInformation\n\tSystemProcessorProfileControlArea\n\tSystemCombinePhysicalMemoryInformation\n\tSystemEntropyInterruptTimingCallback\n\tSystemConsoleInformation\n\tSystemPlatformBinaryInformation\n\tSystemThrottleNotificationInformation\n\tSystemHypervisorProcessorCountInformation\n\tSystemDeviceDataInformation\n\tSystemDeviceDataEnumerationInformation\n\tSystemMemoryTopologyInformation\n\tSystemMemoryChannelInformation\n\tSystemBootLogoInformation\n\tSystemProcessorPerformanceInformationEx\n\tsystemSpare0\n\tSystemSecureBootPolicyInformation\n\tSystemPageFileInformationEx\n\tSystemSecureBootInformation\n\tSystemEntropyInterruptTimingRawInformation\n\tSystemPortableWorkspaceEfiLauncherInformation\n\tSystemFullProcessInformation\n\tSystemKernelDebuggerInformationEx\n\tSystemBootMetadataInformation\n\tSystemSoftRebootInformation\n\tSystemElamCertificateInformation\n\tSystemOfflineDumpConfigInformation\n\tSystemProcessorFeaturesInformation\n\tSystemRegistryReconciliationInformation\n\tSystemEdidInformation\n\tSystemManufacturingInformation\n\tSystemEnergyEstimationConfigInformation\n\tSystemHypervisorDetailInformation\n\tSystemProcessorCycleStatsInformation\n\tSystemVmGenerationCountInformation\n\tSystemTrustedPlatformModuleInformation\n\tSystemKernelDebuggerFlags\n\tSystemCodeIntegrityPolicyInformation\n\tSystemIsolatedUserModeInformation\n\tSystemHardwareSecurityTestInterfaceResultsInformation\n\tSystemSingleModuleInformation\n\tSystemAllowedCpuSetsInformation\n\tSystemDmaProtectionInformation\n\tSystemInterruptCpuSetsInformation\n\tSystemSecureBootPolicyFullInformation\n\tSystemCodeIntegrityPolicyFullInformation\n\tSystemAffinitizedInterruptProcessorInformation\n\tSystemRootSiloInformation\n)\n\ntype RTL_PROCESS_MODULE_INFORMATION struct {\n\tSection          Handle\n\tMappedBase       uintptr\n\tImageBase        uintptr\n\tImageSize        uint32\n\tFlags            uint32\n\tLoadOrderIndex   uint16\n\tInitOrderIndex   uint16\n\tLoadCount        uint16\n\tOffsetToFileName uint16\n\tFullPathName     [256]byte\n}\n\ntype RTL_PROCESS_MODULES struct {\n\tNumberOfModules uint32\n\tModules         [1]RTL_PROCESS_MODULE_INFORMATION\n}\n\n// Constants for LocalAlloc flags.\nconst (\n\tLMEM_FIXED          = 0x0\n\tLMEM_MOVEABLE       = 0x2\n\tLMEM_NOCOMPACT      = 0x10\n\tLMEM_NODISCARD      = 0x20\n\tLMEM_ZEROINIT       = 0x40\n\tLMEM_MODIFY         = 0x80\n\tLMEM_DISCARDABLE    = 0xf00\n\tLMEM_VALID_FLAGS    = 0xf72\n\tLMEM_INVALID_HANDLE = 0x8000\n\tLHND                = LMEM_MOVEABLE | LMEM_ZEROINIT\n\tLPTR                = LMEM_FIXED | LMEM_ZEROINIT\n\tNONZEROLHND         = LMEM_MOVEABLE\n\tNONZEROLPTR         = LMEM_FIXED\n)\n\n// Constants for the CreateNamedPipe-family of functions.\nconst (\n\tPIPE_ACCESS_INBOUND  = 0x1\n\tPIPE_ACCESS_OUTBOUND = 0x2\n\tPIPE_ACCESS_DUPLEX   = 0x3\n\n\tPIPE_CLIENT_END = 0x0\n\tPIPE_SERVER_END = 0x1\n\n\tPIPE_WAIT                  = 0x0\n\tPIPE_NOWAIT                = 0x1\n\tPIPE_READMODE_BYTE         = 0x0\n\tPIPE_READMODE_MESSAGE      = 0x2\n\tPIPE_TYPE_BYTE             = 0x0\n\tPIPE_TYPE_MESSAGE          = 0x4\n\tPIPE_ACCEPT_REMOTE_CLIENTS = 0x0\n\tPIPE_REJECT_REMOTE_CLIENTS = 0x8\n\n\tPIPE_UNLIMITED_INSTANCES = 255\n)\n\n// Constants for security attributes when opening named pipes.\nconst (\n\tSECURITY_ANONYMOUS      = SecurityAnonymous << 16\n\tSECURITY_IDENTIFICATION = SecurityIdentification << 16\n\tSECURITY_IMPERSONATION  = SecurityImpersonation << 16\n\tSECURITY_DELEGATION     = SecurityDelegation << 16\n\n\tSECURITY_CONTEXT_TRACKING = 0x40000\n\tSECURITY_EFFECTIVE_ONLY   = 0x80000\n\n\tSECURITY_SQOS_PRESENT     = 0x100000\n\tSECURITY_VALID_SQOS_FLAGS = 0x1f0000\n)\n\n// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro.\ntype ResourceID uint16\n\n// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID,\n// or a string, to specify a resource or resource type by name.\ntype ResourceIDOrString interface{}\n\n// Predefined resource names and types.\nvar (\n\t// Predefined names.\n\tCREATEPROCESS_MANIFEST_RESOURCE_ID                 ResourceID = 1\n\tISOLATIONAWARE_MANIFEST_RESOURCE_ID                ResourceID = 2\n\tISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3\n\tISOLATIONPOLICY_MANIFEST_RESOURCE_ID               ResourceID = 4\n\tISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID       ResourceID = 5\n\tMINIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 1  // inclusive\n\tMAXIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 16 // inclusive\n\n\t// Predefined types.\n\tRT_CURSOR       ResourceID = 1\n\tRT_BITMAP       ResourceID = 2\n\tRT_ICON         ResourceID = 3\n\tRT_MENU         ResourceID = 4\n\tRT_DIALOG       ResourceID = 5\n\tRT_STRING       ResourceID = 6\n\tRT_FONTDIR      ResourceID = 7\n\tRT_FONT         ResourceID = 8\n\tRT_ACCELERATOR  ResourceID = 9\n\tRT_RCDATA       ResourceID = 10\n\tRT_MESSAGETABLE ResourceID = 11\n\tRT_GROUP_CURSOR ResourceID = 12\n\tRT_GROUP_ICON   ResourceID = 14\n\tRT_VERSION      ResourceID = 16\n\tRT_DLGINCLUDE   ResourceID = 17\n\tRT_PLUGPLAY     ResourceID = 19\n\tRT_VXD          ResourceID = 20\n\tRT_ANICURSOR    ResourceID = 21\n\tRT_ANIICON      ResourceID = 22\n\tRT_HTML         ResourceID = 23\n\tRT_MANIFEST     ResourceID = 24\n)\n\ntype VS_FIXEDFILEINFO struct {\n\tSignature        uint32\n\tStrucVersion     uint32\n\tFileVersionMS    uint32\n\tFileVersionLS    uint32\n\tProductVersionMS uint32\n\tProductVersionLS uint32\n\tFileFlagsMask    uint32\n\tFileFlags        uint32\n\tFileOS           uint32\n\tFileType         uint32\n\tFileSubtype      uint32\n\tFileDateMS       uint32\n\tFileDateLS       uint32\n}\n\ntype COAUTHIDENTITY struct {\n\tUser           *uint16\n\tUserLength     uint32\n\tDomain         *uint16\n\tDomainLength   uint32\n\tPassword       *uint16\n\tPasswordLength uint32\n\tFlags          uint32\n}\n\ntype COAUTHINFO struct {\n\tAuthnSvc           uint32\n\tAuthzSvc           uint32\n\tServerPrincName    *uint16\n\tAuthnLevel         uint32\n\tImpersonationLevel uint32\n\tAuthIdentityData   *COAUTHIDENTITY\n\tCapabilities       uint32\n}\n\ntype COSERVERINFO struct {\n\tReserved1 uint32\n\tAame      *uint16\n\tAuthInfo  *COAUTHINFO\n\tReserved2 uint32\n}\n\ntype BIND_OPTS3 struct {\n\tCbStruct          uint32\n\tFlags             uint32\n\tMode              uint32\n\tTickCountDeadline uint32\n\tTrackFlags        uint32\n\tClassContext      uint32\n\tLocale            uint32\n\tServerInfo        *COSERVERINFO\n\tHwnd              HWND\n}\n\nconst (\n\tCLSCTX_INPROC_SERVER          = 0x1\n\tCLSCTX_INPROC_HANDLER         = 0x2\n\tCLSCTX_LOCAL_SERVER           = 0x4\n\tCLSCTX_INPROC_SERVER16        = 0x8\n\tCLSCTX_REMOTE_SERVER          = 0x10\n\tCLSCTX_INPROC_HANDLER16       = 0x20\n\tCLSCTX_RESERVED1              = 0x40\n\tCLSCTX_RESERVED2              = 0x80\n\tCLSCTX_RESERVED3              = 0x100\n\tCLSCTX_RESERVED4              = 0x200\n\tCLSCTX_NO_CODE_DOWNLOAD       = 0x400\n\tCLSCTX_RESERVED5              = 0x800\n\tCLSCTX_NO_CUSTOM_MARSHAL      = 0x1000\n\tCLSCTX_ENABLE_CODE_DOWNLOAD   = 0x2000\n\tCLSCTX_NO_FAILURE_LOG         = 0x4000\n\tCLSCTX_DISABLE_AAA            = 0x8000\n\tCLSCTX_ENABLE_AAA             = 0x10000\n\tCLSCTX_FROM_DEFAULT_CONTEXT   = 0x20000\n\tCLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000\n\tCLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000\n\tCLSCTX_ENABLE_CLOAKING        = 0x100000\n\tCLSCTX_APPCONTAINER           = 0x400000\n\tCLSCTX_ACTIVATE_AAA_AS_IU     = 0x800000\n\tCLSCTX_PS_DLL                 = 0x80000000\n\n\tCOINIT_MULTITHREADED     = 0x0\n\tCOINIT_APARTMENTTHREADED = 0x2\n\tCOINIT_DISABLE_OLE1DDE   = 0x4\n\tCOINIT_SPEED_OVER_MEMORY = 0x8\n)\n\n// Flag for QueryFullProcessImageName.\nconst PROCESS_NAME_NATIVE = 1\n\ntype ModuleInfo struct {\n\tBaseOfDll   uintptr\n\tSizeOfImage uint32\n\tEntryPoint  uintptr\n}\n\nconst ALL_PROCESSOR_GROUPS = 0xFFFF\n\ntype Rect struct {\n\tLeft   int32\n\tTop    int32\n\tRight  int32\n\tBottom int32\n}\n\ntype GUIThreadInfo struct {\n\tSize        uint32\n\tFlags       uint32\n\tActive      HWND\n\tFocus       HWND\n\tCapture     HWND\n\tMenuOwner   HWND\n\tMoveSize    HWND\n\tCaretHandle HWND\n\tCaretRect   Rect\n}\n\nconst (\n\tDWMWA_NCRENDERING_ENABLED            = 1\n\tDWMWA_NCRENDERING_POLICY             = 2\n\tDWMWA_TRANSITIONS_FORCEDISABLED      = 3\n\tDWMWA_ALLOW_NCPAINT                  = 4\n\tDWMWA_CAPTION_BUTTON_BOUNDS          = 5\n\tDWMWA_NONCLIENT_RTL_LAYOUT           = 6\n\tDWMWA_FORCE_ICONIC_REPRESENTATION    = 7\n\tDWMWA_FLIP3D_POLICY                  = 8\n\tDWMWA_EXTENDED_FRAME_BOUNDS          = 9\n\tDWMWA_HAS_ICONIC_BITMAP              = 10\n\tDWMWA_DISALLOW_PEEK                  = 11\n\tDWMWA_EXCLUDED_FROM_PEEK             = 12\n\tDWMWA_CLOAK                          = 13\n\tDWMWA_CLOAKED                        = 14\n\tDWMWA_FREEZE_REPRESENTATION          = 15\n\tDWMWA_PASSIVE_UPDATE_MODE            = 16\n\tDWMWA_USE_HOSTBACKDROPBRUSH          = 17\n\tDWMWA_USE_IMMERSIVE_DARK_MODE        = 20\n\tDWMWA_WINDOW_CORNER_PREFERENCE       = 33\n\tDWMWA_BORDER_COLOR                   = 34\n\tDWMWA_CAPTION_COLOR                  = 35\n\tDWMWA_TEXT_COLOR                     = 36\n\tDWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37\n)\n\ntype WSAQUERYSET struct {\n\tSize                uint32\n\tServiceInstanceName *uint16\n\tServiceClassId      *GUID\n\tVersion             *WSAVersion\n\tComment             *uint16\n\tNameSpace           uint32\n\tNSProviderId        *GUID\n\tContext             *uint16\n\tNumberOfProtocols   uint32\n\tAfpProtocols        *AFProtocols\n\tQueryString         *uint16\n\tNumberOfCsAddrs     uint32\n\tSaBuffer            *CSAddrInfo\n\tOutputFlags         uint32\n\tBlob                *BLOB\n}\n\ntype WSAVersion struct {\n\tVersion                 uint32\n\tEnumerationOfComparison int32\n}\n\ntype AFProtocols struct {\n\tAddressFamily int32\n\tProtocol      int32\n}\n\ntype CSAddrInfo struct {\n\tLocalAddr  SocketAddress\n\tRemoteAddr SocketAddress\n\tSocketType int32\n\tProtocol   int32\n}\n\ntype BLOB struct {\n\tSize     uint32\n\tBlobData *byte\n}\n\ntype ComStat struct {\n\tFlags    uint32\n\tCBInQue  uint32\n\tCBOutQue uint32\n}\n\ntype DCB struct {\n\tDCBlength  uint32\n\tBaudRate   uint32\n\tFlags      uint32\n\twReserved  uint16\n\tXonLim     uint16\n\tXoffLim    uint16\n\tByteSize   uint8\n\tParity     uint8\n\tStopBits   uint8\n\tXonChar    byte\n\tXoffChar   byte\n\tErrorChar  byte\n\tEofChar    byte\n\tEvtChar    byte\n\twReserved1 uint16\n}\n\n// Keyboard Layout Flags.\n// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw\nconst (\n\tKLF_ACTIVATE      = 0x00000001\n\tKLF_SUBSTITUTE_OK = 0x00000002\n\tKLF_REORDER       = 0x00000008\n\tKLF_REPLACELANG   = 0x00000010\n\tKLF_NOTELLSHELL   = 0x00000080\n\tKLF_SETFORPROCESS = 0x00000100\n)\n\n// Virtual Key codes\n// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes\nconst (\n\tVK_LBUTTON             = 0x01\n\tVK_RBUTTON             = 0x02\n\tVK_CANCEL              = 0x03\n\tVK_MBUTTON             = 0x04\n\tVK_XBUTTON1            = 0x05\n\tVK_XBUTTON2            = 0x06\n\tVK_BACK                = 0x08\n\tVK_TAB                 = 0x09\n\tVK_CLEAR               = 0x0C\n\tVK_RETURN              = 0x0D\n\tVK_SHIFT               = 0x10\n\tVK_CONTROL             = 0x11\n\tVK_MENU                = 0x12\n\tVK_PAUSE               = 0x13\n\tVK_CAPITAL             = 0x14\n\tVK_KANA                = 0x15\n\tVK_HANGEUL             = 0x15\n\tVK_HANGUL              = 0x15\n\tVK_IME_ON              = 0x16\n\tVK_JUNJA               = 0x17\n\tVK_FINAL               = 0x18\n\tVK_HANJA               = 0x19\n\tVK_KANJI               = 0x19\n\tVK_IME_OFF             = 0x1A\n\tVK_ESCAPE              = 0x1B\n\tVK_CONVERT             = 0x1C\n\tVK_NONCONVERT          = 0x1D\n\tVK_ACCEPT              = 0x1E\n\tVK_MODECHANGE          = 0x1F\n\tVK_SPACE               = 0x20\n\tVK_PRIOR               = 0x21\n\tVK_NEXT                = 0x22\n\tVK_END                 = 0x23\n\tVK_HOME                = 0x24\n\tVK_LEFT                = 0x25\n\tVK_UP                  = 0x26\n\tVK_RIGHT               = 0x27\n\tVK_DOWN                = 0x28\n\tVK_SELECT              = 0x29\n\tVK_PRINT               = 0x2A\n\tVK_EXECUTE             = 0x2B\n\tVK_SNAPSHOT            = 0x2C\n\tVK_INSERT              = 0x2D\n\tVK_DELETE              = 0x2E\n\tVK_HELP                = 0x2F\n\tVK_LWIN                = 0x5B\n\tVK_RWIN                = 0x5C\n\tVK_APPS                = 0x5D\n\tVK_SLEEP               = 0x5F\n\tVK_NUMPAD0             = 0x60\n\tVK_NUMPAD1             = 0x61\n\tVK_NUMPAD2             = 0x62\n\tVK_NUMPAD3             = 0x63\n\tVK_NUMPAD4             = 0x64\n\tVK_NUMPAD5             = 0x65\n\tVK_NUMPAD6             = 0x66\n\tVK_NUMPAD7             = 0x67\n\tVK_NUMPAD8             = 0x68\n\tVK_NUMPAD9             = 0x69\n\tVK_MULTIPLY            = 0x6A\n\tVK_ADD                 = 0x6B\n\tVK_SEPARATOR           = 0x6C\n\tVK_SUBTRACT            = 0x6D\n\tVK_DECIMAL             = 0x6E\n\tVK_DIVIDE              = 0x6F\n\tVK_F1                  = 0x70\n\tVK_F2                  = 0x71\n\tVK_F3                  = 0x72\n\tVK_F4                  = 0x73\n\tVK_F5                  = 0x74\n\tVK_F6                  = 0x75\n\tVK_F7                  = 0x76\n\tVK_F8                  = 0x77\n\tVK_F9                  = 0x78\n\tVK_F10                 = 0x79\n\tVK_F11                 = 0x7A\n\tVK_F12                 = 0x7B\n\tVK_F13                 = 0x7C\n\tVK_F14                 = 0x7D\n\tVK_F15                 = 0x7E\n\tVK_F16                 = 0x7F\n\tVK_F17                 = 0x80\n\tVK_F18                 = 0x81\n\tVK_F19                 = 0x82\n\tVK_F20                 = 0x83\n\tVK_F21                 = 0x84\n\tVK_F22                 = 0x85\n\tVK_F23                 = 0x86\n\tVK_F24                 = 0x87\n\tVK_NUMLOCK             = 0x90\n\tVK_SCROLL              = 0x91\n\tVK_OEM_NEC_EQUAL       = 0x92\n\tVK_OEM_FJ_JISHO        = 0x92\n\tVK_OEM_FJ_MASSHOU      = 0x93\n\tVK_OEM_FJ_TOUROKU      = 0x94\n\tVK_OEM_FJ_LOYA         = 0x95\n\tVK_OEM_FJ_ROYA         = 0x96\n\tVK_LSHIFT              = 0xA0\n\tVK_RSHIFT              = 0xA1\n\tVK_LCONTROL            = 0xA2\n\tVK_RCONTROL            = 0xA3\n\tVK_LMENU               = 0xA4\n\tVK_RMENU               = 0xA5\n\tVK_BROWSER_BACK        = 0xA6\n\tVK_BROWSER_FORWARD     = 0xA7\n\tVK_BROWSER_REFRESH     = 0xA8\n\tVK_BROWSER_STOP        = 0xA9\n\tVK_BROWSER_SEARCH      = 0xAA\n\tVK_BROWSER_FAVORITES   = 0xAB\n\tVK_BROWSER_HOME        = 0xAC\n\tVK_VOLUME_MUTE         = 0xAD\n\tVK_VOLUME_DOWN         = 0xAE\n\tVK_VOLUME_UP           = 0xAF\n\tVK_MEDIA_NEXT_TRACK    = 0xB0\n\tVK_MEDIA_PREV_TRACK    = 0xB1\n\tVK_MEDIA_STOP          = 0xB2\n\tVK_MEDIA_PLAY_PAUSE    = 0xB3\n\tVK_LAUNCH_MAIL         = 0xB4\n\tVK_LAUNCH_MEDIA_SELECT = 0xB5\n\tVK_LAUNCH_APP1         = 0xB6\n\tVK_LAUNCH_APP2         = 0xB7\n\tVK_OEM_1               = 0xBA\n\tVK_OEM_PLUS            = 0xBB\n\tVK_OEM_COMMA           = 0xBC\n\tVK_OEM_MINUS           = 0xBD\n\tVK_OEM_PERIOD          = 0xBE\n\tVK_OEM_2               = 0xBF\n\tVK_OEM_3               = 0xC0\n\tVK_OEM_4               = 0xDB\n\tVK_OEM_5               = 0xDC\n\tVK_OEM_6               = 0xDD\n\tVK_OEM_7               = 0xDE\n\tVK_OEM_8               = 0xDF\n\tVK_OEM_AX              = 0xE1\n\tVK_OEM_102             = 0xE2\n\tVK_ICO_HELP            = 0xE3\n\tVK_ICO_00              = 0xE4\n\tVK_PROCESSKEY          = 0xE5\n\tVK_ICO_CLEAR           = 0xE6\n\tVK_OEM_RESET           = 0xE9\n\tVK_OEM_JUMP            = 0xEA\n\tVK_OEM_PA1             = 0xEB\n\tVK_OEM_PA2             = 0xEC\n\tVK_OEM_PA3             = 0xED\n\tVK_OEM_WSCTRL          = 0xEE\n\tVK_OEM_CUSEL           = 0xEF\n\tVK_OEM_ATTN            = 0xF0\n\tVK_OEM_FINISH          = 0xF1\n\tVK_OEM_COPY            = 0xF2\n\tVK_OEM_AUTO            = 0xF3\n\tVK_OEM_ENLW            = 0xF4\n\tVK_OEM_BACKTAB         = 0xF5\n\tVK_ATTN                = 0xF6\n\tVK_CRSEL               = 0xF7\n\tVK_EXSEL               = 0xF8\n\tVK_EREOF               = 0xF9\n\tVK_PLAY                = 0xFA\n\tVK_ZOOM                = 0xFB\n\tVK_NONAME              = 0xFC\n\tVK_PA1                 = 0xFD\n\tVK_OEM_CLEAR           = 0xFE\n)\n\n// Mouse button constants.\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tFROM_LEFT_1ST_BUTTON_PRESSED = 0x0001\n\tRIGHTMOST_BUTTON_PRESSED     = 0x0002\n\tFROM_LEFT_2ND_BUTTON_PRESSED = 0x0004\n\tFROM_LEFT_3RD_BUTTON_PRESSED = 0x0008\n\tFROM_LEFT_4TH_BUTTON_PRESSED = 0x0010\n)\n\n// Control key state constaints.\n// https://docs.microsoft.com/en-us/windows/console/key-event-record-str\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tCAPSLOCK_ON        = 0x0080\n\tENHANCED_KEY       = 0x0100\n\tLEFT_ALT_PRESSED   = 0x0002\n\tLEFT_CTRL_PRESSED  = 0x0008\n\tNUMLOCK_ON         = 0x0020\n\tRIGHT_ALT_PRESSED  = 0x0001\n\tRIGHT_CTRL_PRESSED = 0x0004\n\tSCROLLLOCK_ON      = 0x0040\n\tSHIFT_PRESSED      = 0x0010\n)\n\n// Mouse event record event flags.\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tMOUSE_MOVED    = 0x0001\n\tDOUBLE_CLICK   = 0x0002\n\tMOUSE_WHEELED  = 0x0004\n\tMOUSE_HWHEELED = 0x0008\n)\n\n// Input Record Event Types\n// https://learn.microsoft.com/en-us/windows/console/input-record-str\nconst (\n\tFOCUS_EVENT              = 0x0010\n\tKEY_EVENT                = 0x0001\n\tMENU_EVENT               = 0x0008\n\tMOUSE_EVENT              = 0x0002\n\tWINDOW_BUFFER_SIZE_EVENT = 0x0004\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_386.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_amd64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zerrors_windows.go",
    "content": "// Code generated by 'mkerrors.bash'; DO NOT EDIT.\n\npackage windows\n\nimport \"syscall\"\n\nconst (\n\tFACILITY_NULL                                                                           = 0\n\tFACILITY_RPC                                                                            = 1\n\tFACILITY_DISPATCH                                                                       = 2\n\tFACILITY_STORAGE                                                                        = 3\n\tFACILITY_ITF                                                                            = 4\n\tFACILITY_WIN32                                                                          = 7\n\tFACILITY_WINDOWS                                                                        = 8\n\tFACILITY_SSPI                                                                           = 9\n\tFACILITY_SECURITY                                                                       = 9\n\tFACILITY_CONTROL                                                                        = 10\n\tFACILITY_CERT                                                                           = 11\n\tFACILITY_INTERNET                                                                       = 12\n\tFACILITY_MEDIASERVER                                                                    = 13\n\tFACILITY_MSMQ                                                                           = 14\n\tFACILITY_SETUPAPI                                                                       = 15\n\tFACILITY_SCARD                                                                          = 16\n\tFACILITY_COMPLUS                                                                        = 17\n\tFACILITY_AAF                                                                            = 18\n\tFACILITY_URT                                                                            = 19\n\tFACILITY_ACS                                                                            = 20\n\tFACILITY_DPLAY                                                                          = 21\n\tFACILITY_UMI                                                                            = 22\n\tFACILITY_SXS                                                                            = 23\n\tFACILITY_WINDOWS_CE                                                                     = 24\n\tFACILITY_HTTP                                                                           = 25\n\tFACILITY_USERMODE_COMMONLOG                                                             = 26\n\tFACILITY_WER                                                                            = 27\n\tFACILITY_USERMODE_FILTER_MANAGER                                                        = 31\n\tFACILITY_BACKGROUNDCOPY                                                                 = 32\n\tFACILITY_CONFIGURATION                                                                  = 33\n\tFACILITY_WIA                                                                            = 33\n\tFACILITY_STATE_MANAGEMENT                                                               = 34\n\tFACILITY_METADIRECTORY                                                                  = 35\n\tFACILITY_WINDOWSUPDATE                                                                  = 36\n\tFACILITY_DIRECTORYSERVICE                                                               = 37\n\tFACILITY_GRAPHICS                                                                       = 38\n\tFACILITY_SHELL                                                                          = 39\n\tFACILITY_NAP                                                                            = 39\n\tFACILITY_TPM_SERVICES                                                                   = 40\n\tFACILITY_TPM_SOFTWARE                                                                   = 41\n\tFACILITY_UI                                                                             = 42\n\tFACILITY_XAML                                                                           = 43\n\tFACILITY_ACTION_QUEUE                                                                   = 44\n\tFACILITY_PLA                                                                            = 48\n\tFACILITY_WINDOWS_SETUP                                                                  = 48\n\tFACILITY_FVE                                                                            = 49\n\tFACILITY_FWP                                                                            = 50\n\tFACILITY_WINRM                                                                          = 51\n\tFACILITY_NDIS                                                                           = 52\n\tFACILITY_USERMODE_HYPERVISOR                                                            = 53\n\tFACILITY_CMI                                                                            = 54\n\tFACILITY_USERMODE_VIRTUALIZATION                                                        = 55\n\tFACILITY_USERMODE_VOLMGR                                                                = 56\n\tFACILITY_BCD                                                                            = 57\n\tFACILITY_USERMODE_VHD                                                                   = 58\n\tFACILITY_USERMODE_HNS                                                                   = 59\n\tFACILITY_SDIAG                                                                          = 60\n\tFACILITY_WEBSERVICES                                                                    = 61\n\tFACILITY_WINPE                                                                          = 61\n\tFACILITY_WPN                                                                            = 62\n\tFACILITY_WINDOWS_STORE                                                                  = 63\n\tFACILITY_INPUT                                                                          = 64\n\tFACILITY_EAP                                                                            = 66\n\tFACILITY_WINDOWS_DEFENDER                                                               = 80\n\tFACILITY_OPC                                                                            = 81\n\tFACILITY_XPS                                                                            = 82\n\tFACILITY_MBN                                                                            = 84\n\tFACILITY_POWERSHELL                                                                     = 84\n\tFACILITY_RAS                                                                            = 83\n\tFACILITY_P2P_INT                                                                        = 98\n\tFACILITY_P2P                                                                            = 99\n\tFACILITY_DAF                                                                            = 100\n\tFACILITY_BLUETOOTH_ATT                                                                  = 101\n\tFACILITY_AUDIO                                                                          = 102\n\tFACILITY_STATEREPOSITORY                                                                = 103\n\tFACILITY_VISUALCPP                                                                      = 109\n\tFACILITY_SCRIPT                                                                         = 112\n\tFACILITY_PARSE                                                                          = 113\n\tFACILITY_BLB                                                                            = 120\n\tFACILITY_BLB_CLI                                                                        = 121\n\tFACILITY_WSBAPP                                                                         = 122\n\tFACILITY_BLBUI                                                                          = 128\n\tFACILITY_USN                                                                            = 129\n\tFACILITY_USERMODE_VOLSNAP                                                               = 130\n\tFACILITY_TIERING                                                                        = 131\n\tFACILITY_WSB_ONLINE                                                                     = 133\n\tFACILITY_ONLINE_ID                                                                      = 134\n\tFACILITY_DEVICE_UPDATE_AGENT                                                            = 135\n\tFACILITY_DRVSERVICING                                                                   = 136\n\tFACILITY_DLS                                                                            = 153\n\tFACILITY_DELIVERY_OPTIMIZATION                                                          = 208\n\tFACILITY_USERMODE_SPACES                                                                = 231\n\tFACILITY_USER_MODE_SECURITY_CORE                                                        = 232\n\tFACILITY_USERMODE_LICENSING                                                             = 234\n\tFACILITY_SOS                                                                            = 160\n\tFACILITY_DEBUGGERS                                                                      = 176\n\tFACILITY_SPP                                                                            = 256\n\tFACILITY_RESTORE                                                                        = 256\n\tFACILITY_DMSERVER                                                                       = 256\n\tFACILITY_DEPLOYMENT_SERVICES_SERVER                                                     = 257\n\tFACILITY_DEPLOYMENT_SERVICES_IMAGING                                                    = 258\n\tFACILITY_DEPLOYMENT_SERVICES_MANAGEMENT                                                 = 259\n\tFACILITY_DEPLOYMENT_SERVICES_UTIL                                                       = 260\n\tFACILITY_DEPLOYMENT_SERVICES_BINLSVC                                                    = 261\n\tFACILITY_DEPLOYMENT_SERVICES_PXE                                                        = 263\n\tFACILITY_DEPLOYMENT_SERVICES_TFTP                                                       = 264\n\tFACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT                                       = 272\n\tFACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING                                        = 278\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER                                           = 289\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT                                           = 290\n\tFACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER                                           = 293\n\tFACILITY_LINGUISTIC_SERVICES                                                            = 305\n\tFACILITY_AUDIOSTREAMING                                                                 = 1094\n\tFACILITY_ACCELERATOR                                                                    = 1536\n\tFACILITY_WMAAECMA                                                                       = 1996\n\tFACILITY_DIRECTMUSIC                                                                    = 2168\n\tFACILITY_DIRECT3D10                                                                     = 2169\n\tFACILITY_DXGI                                                                           = 2170\n\tFACILITY_DXGI_DDI                                                                       = 2171\n\tFACILITY_DIRECT3D11                                                                     = 2172\n\tFACILITY_DIRECT3D11_DEBUG                                                               = 2173\n\tFACILITY_DIRECT3D12                                                                     = 2174\n\tFACILITY_DIRECT3D12_DEBUG                                                               = 2175\n\tFACILITY_LEAP                                                                           = 2184\n\tFACILITY_AUDCLNT                                                                        = 2185\n\tFACILITY_WINCODEC_DWRITE_DWM                                                            = 2200\n\tFACILITY_WINML                                                                          = 2192\n\tFACILITY_DIRECT2D                                                                       = 2201\n\tFACILITY_DEFRAG                                                                         = 2304\n\tFACILITY_USERMODE_SDBUS                                                                 = 2305\n\tFACILITY_JSCRIPT                                                                        = 2306\n\tFACILITY_PIDGENX                                                                        = 2561\n\tFACILITY_EAS                                                                            = 85\n\tFACILITY_WEB                                                                            = 885\n\tFACILITY_WEB_SOCKET                                                                     = 886\n\tFACILITY_MOBILE                                                                         = 1793\n\tFACILITY_SQLITE                                                                         = 1967\n\tFACILITY_UTC                                                                            = 1989\n\tFACILITY_WEP                                                                            = 2049\n\tFACILITY_SYNCENGINE                                                                     = 2050\n\tFACILITY_XBOX                                                                           = 2339\n\tFACILITY_GAME                                                                           = 2340\n\tFACILITY_PIX                                                                            = 2748\n\tERROR_SUCCESS                                                             syscall.Errno = 0\n\tNO_ERROR                                                                                = 0\n\tSEC_E_OK                                                                  Handle        = 0x00000000\n\tERROR_INVALID_FUNCTION                                                    syscall.Errno = 1\n\tERROR_FILE_NOT_FOUND                                                      syscall.Errno = 2\n\tERROR_PATH_NOT_FOUND                                                      syscall.Errno = 3\n\tERROR_TOO_MANY_OPEN_FILES                                                 syscall.Errno = 4\n\tERROR_ACCESS_DENIED                                                       syscall.Errno = 5\n\tERROR_INVALID_HANDLE                                                      syscall.Errno = 6\n\tERROR_ARENA_TRASHED                                                       syscall.Errno = 7\n\tERROR_NOT_ENOUGH_MEMORY                                                   syscall.Errno = 8\n\tERROR_INVALID_BLOCK                                                       syscall.Errno = 9\n\tERROR_BAD_ENVIRONMENT                                                     syscall.Errno = 10\n\tERROR_BAD_FORMAT                                                          syscall.Errno = 11\n\tERROR_INVALID_ACCESS                                                      syscall.Errno = 12\n\tERROR_INVALID_DATA                                                        syscall.Errno = 13\n\tERROR_OUTOFMEMORY                                                         syscall.Errno = 14\n\tERROR_INVALID_DRIVE                                                       syscall.Errno = 15\n\tERROR_CURRENT_DIRECTORY                                                   syscall.Errno = 16\n\tERROR_NOT_SAME_DEVICE                                                     syscall.Errno = 17\n\tERROR_NO_MORE_FILES                                                       syscall.Errno = 18\n\tERROR_WRITE_PROTECT                                                       syscall.Errno = 19\n\tERROR_BAD_UNIT                                                            syscall.Errno = 20\n\tERROR_NOT_READY                                                           syscall.Errno = 21\n\tERROR_BAD_COMMAND                                                         syscall.Errno = 22\n\tERROR_CRC                                                                 syscall.Errno = 23\n\tERROR_BAD_LENGTH                                                          syscall.Errno = 24\n\tERROR_SEEK                                                                syscall.Errno = 25\n\tERROR_NOT_DOS_DISK                                                        syscall.Errno = 26\n\tERROR_SECTOR_NOT_FOUND                                                    syscall.Errno = 27\n\tERROR_OUT_OF_PAPER                                                        syscall.Errno = 28\n\tERROR_WRITE_FAULT                                                         syscall.Errno = 29\n\tERROR_READ_FAULT                                                          syscall.Errno = 30\n\tERROR_GEN_FAILURE                                                         syscall.Errno = 31\n\tERROR_SHARING_VIOLATION                                                   syscall.Errno = 32\n\tERROR_LOCK_VIOLATION                                                      syscall.Errno = 33\n\tERROR_WRONG_DISK                                                          syscall.Errno = 34\n\tERROR_SHARING_BUFFER_EXCEEDED                                             syscall.Errno = 36\n\tERROR_HANDLE_EOF                                                          syscall.Errno = 38\n\tERROR_HANDLE_DISK_FULL                                                    syscall.Errno = 39\n\tERROR_NOT_SUPPORTED                                                       syscall.Errno = 50\n\tERROR_REM_NOT_LIST                                                        syscall.Errno = 51\n\tERROR_DUP_NAME                                                            syscall.Errno = 52\n\tERROR_BAD_NETPATH                                                         syscall.Errno = 53\n\tERROR_NETWORK_BUSY                                                        syscall.Errno = 54\n\tERROR_DEV_NOT_EXIST                                                       syscall.Errno = 55\n\tERROR_TOO_MANY_CMDS                                                       syscall.Errno = 56\n\tERROR_ADAP_HDW_ERR                                                        syscall.Errno = 57\n\tERROR_BAD_NET_RESP                                                        syscall.Errno = 58\n\tERROR_UNEXP_NET_ERR                                                       syscall.Errno = 59\n\tERROR_BAD_REM_ADAP                                                        syscall.Errno = 60\n\tERROR_PRINTQ_FULL                                                         syscall.Errno = 61\n\tERROR_NO_SPOOL_SPACE                                                      syscall.Errno = 62\n\tERROR_PRINT_CANCELLED                                                     syscall.Errno = 63\n\tERROR_NETNAME_DELETED                                                     syscall.Errno = 64\n\tERROR_NETWORK_ACCESS_DENIED                                               syscall.Errno = 65\n\tERROR_BAD_DEV_TYPE                                                        syscall.Errno = 66\n\tERROR_BAD_NET_NAME                                                        syscall.Errno = 67\n\tERROR_TOO_MANY_NAMES                                                      syscall.Errno = 68\n\tERROR_TOO_MANY_SESS                                                       syscall.Errno = 69\n\tERROR_SHARING_PAUSED                                                      syscall.Errno = 70\n\tERROR_REQ_NOT_ACCEP                                                       syscall.Errno = 71\n\tERROR_REDIR_PAUSED                                                        syscall.Errno = 72\n\tERROR_FILE_EXISTS                                                         syscall.Errno = 80\n\tERROR_CANNOT_MAKE                                                         syscall.Errno = 82\n\tERROR_FAIL_I24                                                            syscall.Errno = 83\n\tERROR_OUT_OF_STRUCTURES                                                   syscall.Errno = 84\n\tERROR_ALREADY_ASSIGNED                                                    syscall.Errno = 85\n\tERROR_INVALID_PASSWORD                                                    syscall.Errno = 86\n\tERROR_INVALID_PARAMETER                                                   syscall.Errno = 87\n\tERROR_NET_WRITE_FAULT                                                     syscall.Errno = 88\n\tERROR_NO_PROC_SLOTS                                                       syscall.Errno = 89\n\tERROR_TOO_MANY_SEMAPHORES                                                 syscall.Errno = 100\n\tERROR_EXCL_SEM_ALREADY_OWNED                                              syscall.Errno = 101\n\tERROR_SEM_IS_SET                                                          syscall.Errno = 102\n\tERROR_TOO_MANY_SEM_REQUESTS                                               syscall.Errno = 103\n\tERROR_INVALID_AT_INTERRUPT_TIME                                           syscall.Errno = 104\n\tERROR_SEM_OWNER_DIED                                                      syscall.Errno = 105\n\tERROR_SEM_USER_LIMIT                                                      syscall.Errno = 106\n\tERROR_DISK_CHANGE                                                         syscall.Errno = 107\n\tERROR_DRIVE_LOCKED                                                        syscall.Errno = 108\n\tERROR_BROKEN_PIPE                                                         syscall.Errno = 109\n\tERROR_OPEN_FAILED                                                         syscall.Errno = 110\n\tERROR_BUFFER_OVERFLOW                                                     syscall.Errno = 111\n\tERROR_DISK_FULL                                                           syscall.Errno = 112\n\tERROR_NO_MORE_SEARCH_HANDLES                                              syscall.Errno = 113\n\tERROR_INVALID_TARGET_HANDLE                                               syscall.Errno = 114\n\tERROR_INVALID_CATEGORY                                                    syscall.Errno = 117\n\tERROR_INVALID_VERIFY_SWITCH                                               syscall.Errno = 118\n\tERROR_BAD_DRIVER_LEVEL                                                    syscall.Errno = 119\n\tERROR_CALL_NOT_IMPLEMENTED                                                syscall.Errno = 120\n\tERROR_SEM_TIMEOUT                                                         syscall.Errno = 121\n\tERROR_INSUFFICIENT_BUFFER                                                 syscall.Errno = 122\n\tERROR_INVALID_NAME                                                        syscall.Errno = 123\n\tERROR_INVALID_LEVEL                                                       syscall.Errno = 124\n\tERROR_NO_VOLUME_LABEL                                                     syscall.Errno = 125\n\tERROR_MOD_NOT_FOUND                                                       syscall.Errno = 126\n\tERROR_PROC_NOT_FOUND                                                      syscall.Errno = 127\n\tERROR_WAIT_NO_CHILDREN                                                    syscall.Errno = 128\n\tERROR_CHILD_NOT_COMPLETE                                                  syscall.Errno = 129\n\tERROR_DIRECT_ACCESS_HANDLE                                                syscall.Errno = 130\n\tERROR_NEGATIVE_SEEK                                                       syscall.Errno = 131\n\tERROR_SEEK_ON_DEVICE                                                      syscall.Errno = 132\n\tERROR_IS_JOIN_TARGET                                                      syscall.Errno = 133\n\tERROR_IS_JOINED                                                           syscall.Errno = 134\n\tERROR_IS_SUBSTED                                                          syscall.Errno = 135\n\tERROR_NOT_JOINED                                                          syscall.Errno = 136\n\tERROR_NOT_SUBSTED                                                         syscall.Errno = 137\n\tERROR_JOIN_TO_JOIN                                                        syscall.Errno = 138\n\tERROR_SUBST_TO_SUBST                                                      syscall.Errno = 139\n\tERROR_JOIN_TO_SUBST                                                       syscall.Errno = 140\n\tERROR_SUBST_TO_JOIN                                                       syscall.Errno = 141\n\tERROR_BUSY_DRIVE                                                          syscall.Errno = 142\n\tERROR_SAME_DRIVE                                                          syscall.Errno = 143\n\tERROR_DIR_NOT_ROOT                                                        syscall.Errno = 144\n\tERROR_DIR_NOT_EMPTY                                                       syscall.Errno = 145\n\tERROR_IS_SUBST_PATH                                                       syscall.Errno = 146\n\tERROR_IS_JOIN_PATH                                                        syscall.Errno = 147\n\tERROR_PATH_BUSY                                                           syscall.Errno = 148\n\tERROR_IS_SUBST_TARGET                                                     syscall.Errno = 149\n\tERROR_SYSTEM_TRACE                                                        syscall.Errno = 150\n\tERROR_INVALID_EVENT_COUNT                                                 syscall.Errno = 151\n\tERROR_TOO_MANY_MUXWAITERS                                                 syscall.Errno = 152\n\tERROR_INVALID_LIST_FORMAT                                                 syscall.Errno = 153\n\tERROR_LABEL_TOO_LONG                                                      syscall.Errno = 154\n\tERROR_TOO_MANY_TCBS                                                       syscall.Errno = 155\n\tERROR_SIGNAL_REFUSED                                                      syscall.Errno = 156\n\tERROR_DISCARDED                                                           syscall.Errno = 157\n\tERROR_NOT_LOCKED                                                          syscall.Errno = 158\n\tERROR_BAD_THREADID_ADDR                                                   syscall.Errno = 159\n\tERROR_BAD_ARGUMENTS                                                       syscall.Errno = 160\n\tERROR_BAD_PATHNAME                                                        syscall.Errno = 161\n\tERROR_SIGNAL_PENDING                                                      syscall.Errno = 162\n\tERROR_MAX_THRDS_REACHED                                                   syscall.Errno = 164\n\tERROR_LOCK_FAILED                                                         syscall.Errno = 167\n\tERROR_BUSY                                                                syscall.Errno = 170\n\tERROR_DEVICE_SUPPORT_IN_PROGRESS                                          syscall.Errno = 171\n\tERROR_CANCEL_VIOLATION                                                    syscall.Errno = 173\n\tERROR_ATOMIC_LOCKS_NOT_SUPPORTED                                          syscall.Errno = 174\n\tERROR_INVALID_SEGMENT_NUMBER                                              syscall.Errno = 180\n\tERROR_INVALID_ORDINAL                                                     syscall.Errno = 182\n\tERROR_ALREADY_EXISTS                                                      syscall.Errno = 183\n\tERROR_INVALID_FLAG_NUMBER                                                 syscall.Errno = 186\n\tERROR_SEM_NOT_FOUND                                                       syscall.Errno = 187\n\tERROR_INVALID_STARTING_CODESEG                                            syscall.Errno = 188\n\tERROR_INVALID_STACKSEG                                                    syscall.Errno = 189\n\tERROR_INVALID_MODULETYPE                                                  syscall.Errno = 190\n\tERROR_INVALID_EXE_SIGNATURE                                               syscall.Errno = 191\n\tERROR_EXE_MARKED_INVALID                                                  syscall.Errno = 192\n\tERROR_BAD_EXE_FORMAT                                                      syscall.Errno = 193\n\tERROR_ITERATED_DATA_EXCEEDS_64k                                           syscall.Errno = 194\n\tERROR_INVALID_MINALLOCSIZE                                                syscall.Errno = 195\n\tERROR_DYNLINK_FROM_INVALID_RING                                           syscall.Errno = 196\n\tERROR_IOPL_NOT_ENABLED                                                    syscall.Errno = 197\n\tERROR_INVALID_SEGDPL                                                      syscall.Errno = 198\n\tERROR_AUTODATASEG_EXCEEDS_64k                                             syscall.Errno = 199\n\tERROR_RING2SEG_MUST_BE_MOVABLE                                            syscall.Errno = 200\n\tERROR_RELOC_CHAIN_XEEDS_SEGLIM                                            syscall.Errno = 201\n\tERROR_INFLOOP_IN_RELOC_CHAIN                                              syscall.Errno = 202\n\tERROR_ENVVAR_NOT_FOUND                                                    syscall.Errno = 203\n\tERROR_NO_SIGNAL_SENT                                                      syscall.Errno = 205\n\tERROR_FILENAME_EXCED_RANGE                                                syscall.Errno = 206\n\tERROR_RING2_STACK_IN_USE                                                  syscall.Errno = 207\n\tERROR_META_EXPANSION_TOO_LONG                                             syscall.Errno = 208\n\tERROR_INVALID_SIGNAL_NUMBER                                               syscall.Errno = 209\n\tERROR_THREAD_1_INACTIVE                                                   syscall.Errno = 210\n\tERROR_LOCKED                                                              syscall.Errno = 212\n\tERROR_TOO_MANY_MODULES                                                    syscall.Errno = 214\n\tERROR_NESTING_NOT_ALLOWED                                                 syscall.Errno = 215\n\tERROR_EXE_MACHINE_TYPE_MISMATCH                                           syscall.Errno = 216\n\tERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY                                     syscall.Errno = 217\n\tERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY                              syscall.Errno = 218\n\tERROR_FILE_CHECKED_OUT                                                    syscall.Errno = 220\n\tERROR_CHECKOUT_REQUIRED                                                   syscall.Errno = 221\n\tERROR_BAD_FILE_TYPE                                                       syscall.Errno = 222\n\tERROR_FILE_TOO_LARGE                                                      syscall.Errno = 223\n\tERROR_FORMS_AUTH_REQUIRED                                                 syscall.Errno = 224\n\tERROR_VIRUS_INFECTED                                                      syscall.Errno = 225\n\tERROR_VIRUS_DELETED                                                       syscall.Errno = 226\n\tERROR_PIPE_LOCAL                                                          syscall.Errno = 229\n\tERROR_BAD_PIPE                                                            syscall.Errno = 230\n\tERROR_PIPE_BUSY                                                           syscall.Errno = 231\n\tERROR_NO_DATA                                                             syscall.Errno = 232\n\tERROR_PIPE_NOT_CONNECTED                                                  syscall.Errno = 233\n\tERROR_MORE_DATA                                                           syscall.Errno = 234\n\tERROR_NO_WORK_DONE                                                        syscall.Errno = 235\n\tERROR_VC_DISCONNECTED                                                     syscall.Errno = 240\n\tERROR_INVALID_EA_NAME                                                     syscall.Errno = 254\n\tERROR_EA_LIST_INCONSISTENT                                                syscall.Errno = 255\n\tWAIT_TIMEOUT                                                              syscall.Errno = 258\n\tERROR_NO_MORE_ITEMS                                                       syscall.Errno = 259\n\tERROR_CANNOT_COPY                                                         syscall.Errno = 266\n\tERROR_DIRECTORY                                                           syscall.Errno = 267\n\tERROR_EAS_DIDNT_FIT                                                       syscall.Errno = 275\n\tERROR_EA_FILE_CORRUPT                                                     syscall.Errno = 276\n\tERROR_EA_TABLE_FULL                                                       syscall.Errno = 277\n\tERROR_INVALID_EA_HANDLE                                                   syscall.Errno = 278\n\tERROR_EAS_NOT_SUPPORTED                                                   syscall.Errno = 282\n\tERROR_NOT_OWNER                                                           syscall.Errno = 288\n\tERROR_TOO_MANY_POSTS                                                      syscall.Errno = 298\n\tERROR_PARTIAL_COPY                                                        syscall.Errno = 299\n\tERROR_OPLOCK_NOT_GRANTED                                                  syscall.Errno = 300\n\tERROR_INVALID_OPLOCK_PROTOCOL                                             syscall.Errno = 301\n\tERROR_DISK_TOO_FRAGMENTED                                                 syscall.Errno = 302\n\tERROR_DELETE_PENDING                                                      syscall.Errno = 303\n\tERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING                syscall.Errno = 304\n\tERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                   syscall.Errno = 305\n\tERROR_SECURITY_STREAM_IS_INCONSISTENT                                     syscall.Errno = 306\n\tERROR_INVALID_LOCK_RANGE                                                  syscall.Errno = 307\n\tERROR_IMAGE_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 308\n\tERROR_NOTIFICATION_GUID_ALREADY_DEFINED                                   syscall.Errno = 309\n\tERROR_INVALID_EXCEPTION_HANDLER                                           syscall.Errno = 310\n\tERROR_DUPLICATE_PRIVILEGES                                                syscall.Errno = 311\n\tERROR_NO_RANGES_PROCESSED                                                 syscall.Errno = 312\n\tERROR_NOT_ALLOWED_ON_SYSTEM_FILE                                          syscall.Errno = 313\n\tERROR_DISK_RESOURCES_EXHAUSTED                                            syscall.Errno = 314\n\tERROR_INVALID_TOKEN                                                       syscall.Errno = 315\n\tERROR_DEVICE_FEATURE_NOT_SUPPORTED                                        syscall.Errno = 316\n\tERROR_MR_MID_NOT_FOUND                                                    syscall.Errno = 317\n\tERROR_SCOPE_NOT_FOUND                                                     syscall.Errno = 318\n\tERROR_UNDEFINED_SCOPE                                                     syscall.Errno = 319\n\tERROR_INVALID_CAP                                                         syscall.Errno = 320\n\tERROR_DEVICE_UNREACHABLE                                                  syscall.Errno = 321\n\tERROR_DEVICE_NO_RESOURCES                                                 syscall.Errno = 322\n\tERROR_DATA_CHECKSUM_ERROR                                                 syscall.Errno = 323\n\tERROR_INTERMIXED_KERNEL_EA_OPERATION                                      syscall.Errno = 324\n\tERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED                                       syscall.Errno = 326\n\tERROR_OFFSET_ALIGNMENT_VIOLATION                                          syscall.Errno = 327\n\tERROR_INVALID_FIELD_IN_PARAMETER_LIST                                     syscall.Errno = 328\n\tERROR_OPERATION_IN_PROGRESS                                               syscall.Errno = 329\n\tERROR_BAD_DEVICE_PATH                                                     syscall.Errno = 330\n\tERROR_TOO_MANY_DESCRIPTORS                                                syscall.Errno = 331\n\tERROR_SCRUB_DATA_DISABLED                                                 syscall.Errno = 332\n\tERROR_NOT_REDUNDANT_STORAGE                                               syscall.Errno = 333\n\tERROR_RESIDENT_FILE_NOT_SUPPORTED                                         syscall.Errno = 334\n\tERROR_COMPRESSED_FILE_NOT_SUPPORTED                                       syscall.Errno = 335\n\tERROR_DIRECTORY_NOT_SUPPORTED                                             syscall.Errno = 336\n\tERROR_NOT_READ_FROM_COPY                                                  syscall.Errno = 337\n\tERROR_FT_WRITE_FAILURE                                                    syscall.Errno = 338\n\tERROR_FT_DI_SCAN_REQUIRED                                                 syscall.Errno = 339\n\tERROR_INVALID_KERNEL_INFO_VERSION                                         syscall.Errno = 340\n\tERROR_INVALID_PEP_INFO_VERSION                                            syscall.Errno = 341\n\tERROR_OBJECT_NOT_EXTERNALLY_BACKED                                        syscall.Errno = 342\n\tERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                   syscall.Errno = 343\n\tERROR_COMPRESSION_NOT_BENEFICIAL                                          syscall.Errno = 344\n\tERROR_STORAGE_TOPOLOGY_ID_MISMATCH                                        syscall.Errno = 345\n\tERROR_BLOCKED_BY_PARENTAL_CONTROLS                                        syscall.Errno = 346\n\tERROR_BLOCK_TOO_MANY_REFERENCES                                           syscall.Errno = 347\n\tERROR_MARKED_TO_DISALLOW_WRITES                                           syscall.Errno = 348\n\tERROR_ENCLAVE_FAILURE                                                     syscall.Errno = 349\n\tERROR_FAIL_NOACTION_REBOOT                                                syscall.Errno = 350\n\tERROR_FAIL_SHUTDOWN                                                       syscall.Errno = 351\n\tERROR_FAIL_RESTART                                                        syscall.Errno = 352\n\tERROR_MAX_SESSIONS_REACHED                                                syscall.Errno = 353\n\tERROR_NETWORK_ACCESS_DENIED_EDP                                           syscall.Errno = 354\n\tERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                   syscall.Errno = 355\n\tERROR_EDP_POLICY_DENIES_OPERATION                                         syscall.Errno = 356\n\tERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED                                    syscall.Errno = 357\n\tERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                               syscall.Errno = 358\n\tERROR_DEVICE_IN_MAINTENANCE                                               syscall.Errno = 359\n\tERROR_NOT_SUPPORTED_ON_DAX                                                syscall.Errno = 360\n\tERROR_DAX_MAPPING_EXISTS                                                  syscall.Errno = 361\n\tERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING                                     syscall.Errno = 362\n\tERROR_CLOUD_FILE_METADATA_CORRUPT                                         syscall.Errno = 363\n\tERROR_CLOUD_FILE_METADATA_TOO_LARGE                                       syscall.Errno = 364\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                  syscall.Errno = 365\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                          syscall.Errno = 366\n\tERROR_CHILD_PROCESS_BLOCKED                                               syscall.Errno = 367\n\tERROR_STORAGE_LOST_DATA_PERSISTENCE                                       syscall.Errno = 368\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                              syscall.Errno = 369\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                         syscall.Errno = 370\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY                                     syscall.Errno = 371\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                         syscall.Errno = 372\n\tERROR_GDI_HANDLE_LEAK                                                     syscall.Errno = 373\n\tERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                  syscall.Errno = 374\n\tERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                           syscall.Errno = 375\n\tERROR_NOT_A_CLOUD_FILE                                                    syscall.Errno = 376\n\tERROR_CLOUD_FILE_NOT_IN_SYNC                                              syscall.Errno = 377\n\tERROR_CLOUD_FILE_ALREADY_CONNECTED                                        syscall.Errno = 378\n\tERROR_CLOUD_FILE_NOT_SUPPORTED                                            syscall.Errno = 379\n\tERROR_CLOUD_FILE_INVALID_REQUEST                                          syscall.Errno = 380\n\tERROR_CLOUD_FILE_READ_ONLY_VOLUME                                         syscall.Errno = 381\n\tERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                  syscall.Errno = 382\n\tERROR_CLOUD_FILE_VALIDATION_FAILED                                        syscall.Errno = 383\n\tERROR_SMB1_NOT_AVAILABLE                                                  syscall.Errno = 384\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                        syscall.Errno = 385\n\tERROR_CLOUD_FILE_AUTHENTICATION_FAILED                                    syscall.Errno = 386\n\tERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES                                   syscall.Errno = 387\n\tERROR_CLOUD_FILE_NETWORK_UNAVAILABLE                                      syscall.Errno = 388\n\tERROR_CLOUD_FILE_UNSUCCESSFUL                                             syscall.Errno = 389\n\tERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                      syscall.Errno = 390\n\tERROR_CLOUD_FILE_IN_USE                                                   syscall.Errno = 391\n\tERROR_CLOUD_FILE_PINNED                                                   syscall.Errno = 392\n\tERROR_CLOUD_FILE_REQUEST_ABORTED                                          syscall.Errno = 393\n\tERROR_CLOUD_FILE_PROPERTY_CORRUPT                                         syscall.Errno = 394\n\tERROR_CLOUD_FILE_ACCESS_DENIED                                            syscall.Errno = 395\n\tERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                   syscall.Errno = 396\n\tERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                   syscall.Errno = 397\n\tERROR_CLOUD_FILE_REQUEST_CANCELED                                         syscall.Errno = 398\n\tERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED                                       syscall.Errno = 399\n\tERROR_THREAD_MODE_ALREADY_BACKGROUND                                      syscall.Errno = 400\n\tERROR_THREAD_MODE_NOT_BACKGROUND                                          syscall.Errno = 401\n\tERROR_PROCESS_MODE_ALREADY_BACKGROUND                                     syscall.Errno = 402\n\tERROR_PROCESS_MODE_NOT_BACKGROUND                                         syscall.Errno = 403\n\tERROR_CLOUD_FILE_PROVIDER_TERMINATED                                      syscall.Errno = 404\n\tERROR_NOT_A_CLOUD_SYNC_ROOT                                               syscall.Errno = 405\n\tERROR_FILE_PROTECTED_UNDER_DPL                                            syscall.Errno = 406\n\tERROR_VOLUME_NOT_CLUSTER_ALIGNED                                          syscall.Errno = 407\n\tERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                              syscall.Errno = 408\n\tERROR_APPX_FILE_NOT_ENCRYPTED                                             syscall.Errno = 409\n\tERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                  syscall.Errno = 410\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                        syscall.Errno = 411\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                         syscall.Errno = 412\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                         syscall.Errno = 413\n\tERROR_LINUX_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 414\n\tERROR_FT_READ_FAILURE                                                     syscall.Errno = 415\n\tERROR_STORAGE_RESERVE_ID_INVALID                                          syscall.Errno = 416\n\tERROR_STORAGE_RESERVE_DOES_NOT_EXIST                                      syscall.Errno = 417\n\tERROR_STORAGE_RESERVE_ALREADY_EXISTS                                      syscall.Errno = 418\n\tERROR_STORAGE_RESERVE_NOT_EMPTY                                           syscall.Errno = 419\n\tERROR_NOT_A_DAX_VOLUME                                                    syscall.Errno = 420\n\tERROR_NOT_DAX_MAPPABLE                                                    syscall.Errno = 421\n\tERROR_TIME_SENSITIVE_THREAD                                               syscall.Errno = 422\n\tERROR_DPL_NOT_SUPPORTED_FOR_USER                                          syscall.Errno = 423\n\tERROR_CASE_DIFFERING_NAMES_IN_DIR                                         syscall.Errno = 424\n\tERROR_FILE_NOT_SUPPORTED                                                  syscall.Errno = 425\n\tERROR_CLOUD_FILE_REQUEST_TIMEOUT                                          syscall.Errno = 426\n\tERROR_NO_TASK_QUEUE                                                       syscall.Errno = 427\n\tERROR_SRC_SRV_DLL_LOAD_FAILED                                             syscall.Errno = 428\n\tERROR_NOT_SUPPORTED_WITH_BTT                                              syscall.Errno = 429\n\tERROR_ENCRYPTION_DISABLED                                                 syscall.Errno = 430\n\tERROR_ENCRYPTING_METADATA_DISALLOWED                                      syscall.Errno = 431\n\tERROR_CANT_CLEAR_ENCRYPTION_FLAG                                          syscall.Errno = 432\n\tERROR_NO_SUCH_DEVICE                                                      syscall.Errno = 433\n\tERROR_CAPAUTHZ_NOT_DEVUNLOCKED                                            syscall.Errno = 450\n\tERROR_CAPAUTHZ_CHANGE_TYPE                                                syscall.Errno = 451\n\tERROR_CAPAUTHZ_NOT_PROVISIONED                                            syscall.Errno = 452\n\tERROR_CAPAUTHZ_NOT_AUTHORIZED                                             syscall.Errno = 453\n\tERROR_CAPAUTHZ_NO_POLICY                                                  syscall.Errno = 454\n\tERROR_CAPAUTHZ_DB_CORRUPTED                                               syscall.Errno = 455\n\tERROR_CAPAUTHZ_SCCD_INVALID_CATALOG                                       syscall.Errno = 456\n\tERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY                                        syscall.Errno = 457\n\tERROR_CAPAUTHZ_SCCD_PARSE_ERROR                                           syscall.Errno = 458\n\tERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED                                     syscall.Errno = 459\n\tERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH                                   syscall.Errno = 460\n\tERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT                                     syscall.Errno = 480\n\tERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT                             syscall.Errno = 481\n\tERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT                           syscall.Errno = 482\n\tERROR_DEVICE_HARDWARE_ERROR                                               syscall.Errno = 483\n\tERROR_INVALID_ADDRESS                                                     syscall.Errno = 487\n\tERROR_VRF_CFG_ENABLED                                                     syscall.Errno = 1183\n\tERROR_PARTITION_TERMINATING                                               syscall.Errno = 1184\n\tERROR_USER_PROFILE_LOAD                                                   syscall.Errno = 500\n\tERROR_ARITHMETIC_OVERFLOW                                                 syscall.Errno = 534\n\tERROR_PIPE_CONNECTED                                                      syscall.Errno = 535\n\tERROR_PIPE_LISTENING                                                      syscall.Errno = 536\n\tERROR_VERIFIER_STOP                                                       syscall.Errno = 537\n\tERROR_ABIOS_ERROR                                                         syscall.Errno = 538\n\tERROR_WX86_WARNING                                                        syscall.Errno = 539\n\tERROR_WX86_ERROR                                                          syscall.Errno = 540\n\tERROR_TIMER_NOT_CANCELED                                                  syscall.Errno = 541\n\tERROR_UNWIND                                                              syscall.Errno = 542\n\tERROR_BAD_STACK                                                           syscall.Errno = 543\n\tERROR_INVALID_UNWIND_TARGET                                               syscall.Errno = 544\n\tERROR_INVALID_PORT_ATTRIBUTES                                             syscall.Errno = 545\n\tERROR_PORT_MESSAGE_TOO_LONG                                               syscall.Errno = 546\n\tERROR_INVALID_QUOTA_LOWER                                                 syscall.Errno = 547\n\tERROR_DEVICE_ALREADY_ATTACHED                                             syscall.Errno = 548\n\tERROR_INSTRUCTION_MISALIGNMENT                                            syscall.Errno = 549\n\tERROR_PROFILING_NOT_STARTED                                               syscall.Errno = 550\n\tERROR_PROFILING_NOT_STOPPED                                               syscall.Errno = 551\n\tERROR_COULD_NOT_INTERPRET                                                 syscall.Errno = 552\n\tERROR_PROFILING_AT_LIMIT                                                  syscall.Errno = 553\n\tERROR_CANT_WAIT                                                           syscall.Errno = 554\n\tERROR_CANT_TERMINATE_SELF                                                 syscall.Errno = 555\n\tERROR_UNEXPECTED_MM_CREATE_ERR                                            syscall.Errno = 556\n\tERROR_UNEXPECTED_MM_MAP_ERROR                                             syscall.Errno = 557\n\tERROR_UNEXPECTED_MM_EXTEND_ERR                                            syscall.Errno = 558\n\tERROR_BAD_FUNCTION_TABLE                                                  syscall.Errno = 559\n\tERROR_NO_GUID_TRANSLATION                                                 syscall.Errno = 560\n\tERROR_INVALID_LDT_SIZE                                                    syscall.Errno = 561\n\tERROR_INVALID_LDT_OFFSET                                                  syscall.Errno = 563\n\tERROR_INVALID_LDT_DESCRIPTOR                                              syscall.Errno = 564\n\tERROR_TOO_MANY_THREADS                                                    syscall.Errno = 565\n\tERROR_THREAD_NOT_IN_PROCESS                                               syscall.Errno = 566\n\tERROR_PAGEFILE_QUOTA_EXCEEDED                                             syscall.Errno = 567\n\tERROR_LOGON_SERVER_CONFLICT                                               syscall.Errno = 568\n\tERROR_SYNCHRONIZATION_REQUIRED                                            syscall.Errno = 569\n\tERROR_NET_OPEN_FAILED                                                     syscall.Errno = 570\n\tERROR_IO_PRIVILEGE_FAILED                                                 syscall.Errno = 571\n\tERROR_CONTROL_C_EXIT                                                      syscall.Errno = 572\n\tERROR_MISSING_SYSTEMFILE                                                  syscall.Errno = 573\n\tERROR_UNHANDLED_EXCEPTION                                                 syscall.Errno = 574\n\tERROR_APP_INIT_FAILURE                                                    syscall.Errno = 575\n\tERROR_PAGEFILE_CREATE_FAILED                                              syscall.Errno = 576\n\tERROR_INVALID_IMAGE_HASH                                                  syscall.Errno = 577\n\tERROR_NO_PAGEFILE                                                         syscall.Errno = 578\n\tERROR_ILLEGAL_FLOAT_CONTEXT                                               syscall.Errno = 579\n\tERROR_NO_EVENT_PAIR                                                       syscall.Errno = 580\n\tERROR_DOMAIN_CTRLR_CONFIG_ERROR                                           syscall.Errno = 581\n\tERROR_ILLEGAL_CHARACTER                                                   syscall.Errno = 582\n\tERROR_UNDEFINED_CHARACTER                                                 syscall.Errno = 583\n\tERROR_FLOPPY_VOLUME                                                       syscall.Errno = 584\n\tERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT                                    syscall.Errno = 585\n\tERROR_BACKUP_CONTROLLER                                                   syscall.Errno = 586\n\tERROR_MUTANT_LIMIT_EXCEEDED                                               syscall.Errno = 587\n\tERROR_FS_DRIVER_REQUIRED                                                  syscall.Errno = 588\n\tERROR_CANNOT_LOAD_REGISTRY_FILE                                           syscall.Errno = 589\n\tERROR_DEBUG_ATTACH_FAILED                                                 syscall.Errno = 590\n\tERROR_SYSTEM_PROCESS_TERMINATED                                           syscall.Errno = 591\n\tERROR_DATA_NOT_ACCEPTED                                                   syscall.Errno = 592\n\tERROR_VDM_HARD_ERROR                                                      syscall.Errno = 593\n\tERROR_DRIVER_CANCEL_TIMEOUT                                               syscall.Errno = 594\n\tERROR_REPLY_MESSAGE_MISMATCH                                              syscall.Errno = 595\n\tERROR_LOST_WRITEBEHIND_DATA                                               syscall.Errno = 596\n\tERROR_CLIENT_SERVER_PARAMETERS_INVALID                                    syscall.Errno = 597\n\tERROR_NOT_TINY_STREAM                                                     syscall.Errno = 598\n\tERROR_STACK_OVERFLOW_READ                                                 syscall.Errno = 599\n\tERROR_CONVERT_TO_LARGE                                                    syscall.Errno = 600\n\tERROR_FOUND_OUT_OF_SCOPE                                                  syscall.Errno = 601\n\tERROR_ALLOCATE_BUCKET                                                     syscall.Errno = 602\n\tERROR_MARSHALL_OVERFLOW                                                   syscall.Errno = 603\n\tERROR_INVALID_VARIANT                                                     syscall.Errno = 604\n\tERROR_BAD_COMPRESSION_BUFFER                                              syscall.Errno = 605\n\tERROR_AUDIT_FAILED                                                        syscall.Errno = 606\n\tERROR_TIMER_RESOLUTION_NOT_SET                                            syscall.Errno = 607\n\tERROR_INSUFFICIENT_LOGON_INFO                                             syscall.Errno = 608\n\tERROR_BAD_DLL_ENTRYPOINT                                                  syscall.Errno = 609\n\tERROR_BAD_SERVICE_ENTRYPOINT                                              syscall.Errno = 610\n\tERROR_IP_ADDRESS_CONFLICT1                                                syscall.Errno = 611\n\tERROR_IP_ADDRESS_CONFLICT2                                                syscall.Errno = 612\n\tERROR_REGISTRY_QUOTA_LIMIT                                                syscall.Errno = 613\n\tERROR_NO_CALLBACK_ACTIVE                                                  syscall.Errno = 614\n\tERROR_PWD_TOO_SHORT                                                       syscall.Errno = 615\n\tERROR_PWD_TOO_RECENT                                                      syscall.Errno = 616\n\tERROR_PWD_HISTORY_CONFLICT                                                syscall.Errno = 617\n\tERROR_UNSUPPORTED_COMPRESSION                                             syscall.Errno = 618\n\tERROR_INVALID_HW_PROFILE                                                  syscall.Errno = 619\n\tERROR_INVALID_PLUGPLAY_DEVICE_PATH                                        syscall.Errno = 620\n\tERROR_QUOTA_LIST_INCONSISTENT                                             syscall.Errno = 621\n\tERROR_EVALUATION_EXPIRATION                                               syscall.Errno = 622\n\tERROR_ILLEGAL_DLL_RELOCATION                                              syscall.Errno = 623\n\tERROR_DLL_INIT_FAILED_LOGOFF                                              syscall.Errno = 624\n\tERROR_VALIDATE_CONTINUE                                                   syscall.Errno = 625\n\tERROR_NO_MORE_MATCHES                                                     syscall.Errno = 626\n\tERROR_RANGE_LIST_CONFLICT                                                 syscall.Errno = 627\n\tERROR_SERVER_SID_MISMATCH                                                 syscall.Errno = 628\n\tERROR_CANT_ENABLE_DENY_ONLY                                               syscall.Errno = 629\n\tERROR_FLOAT_MULTIPLE_FAULTS                                               syscall.Errno = 630\n\tERROR_FLOAT_MULTIPLE_TRAPS                                                syscall.Errno = 631\n\tERROR_NOINTERFACE                                                         syscall.Errno = 632\n\tERROR_DRIVER_FAILED_SLEEP                                                 syscall.Errno = 633\n\tERROR_CORRUPT_SYSTEM_FILE                                                 syscall.Errno = 634\n\tERROR_COMMITMENT_MINIMUM                                                  syscall.Errno = 635\n\tERROR_PNP_RESTART_ENUMERATION                                             syscall.Errno = 636\n\tERROR_SYSTEM_IMAGE_BAD_SIGNATURE                                          syscall.Errno = 637\n\tERROR_PNP_REBOOT_REQUIRED                                                 syscall.Errno = 638\n\tERROR_INSUFFICIENT_POWER                                                  syscall.Errno = 639\n\tERROR_MULTIPLE_FAULT_VIOLATION                                            syscall.Errno = 640\n\tERROR_SYSTEM_SHUTDOWN                                                     syscall.Errno = 641\n\tERROR_PORT_NOT_SET                                                        syscall.Errno = 642\n\tERROR_DS_VERSION_CHECK_FAILURE                                            syscall.Errno = 643\n\tERROR_RANGE_NOT_FOUND                                                     syscall.Errno = 644\n\tERROR_NOT_SAFE_MODE_DRIVER                                                syscall.Errno = 646\n\tERROR_FAILED_DRIVER_ENTRY                                                 syscall.Errno = 647\n\tERROR_DEVICE_ENUMERATION_ERROR                                            syscall.Errno = 648\n\tERROR_MOUNT_POINT_NOT_RESOLVED                                            syscall.Errno = 649\n\tERROR_INVALID_DEVICE_OBJECT_PARAMETER                                     syscall.Errno = 650\n\tERROR_MCA_OCCURED                                                         syscall.Errno = 651\n\tERROR_DRIVER_DATABASE_ERROR                                               syscall.Errno = 652\n\tERROR_SYSTEM_HIVE_TOO_LARGE                                               syscall.Errno = 653\n\tERROR_DRIVER_FAILED_PRIOR_UNLOAD                                          syscall.Errno = 654\n\tERROR_VOLSNAP_PREPARE_HIBERNATE                                           syscall.Errno = 655\n\tERROR_HIBERNATION_FAILURE                                                 syscall.Errno = 656\n\tERROR_PWD_TOO_LONG                                                        syscall.Errno = 657\n\tERROR_FILE_SYSTEM_LIMITATION                                              syscall.Errno = 665\n\tERROR_ASSERTION_FAILURE                                                   syscall.Errno = 668\n\tERROR_ACPI_ERROR                                                          syscall.Errno = 669\n\tERROR_WOW_ASSERTION                                                       syscall.Errno = 670\n\tERROR_PNP_BAD_MPS_TABLE                                                   syscall.Errno = 671\n\tERROR_PNP_TRANSLATION_FAILED                                              syscall.Errno = 672\n\tERROR_PNP_IRQ_TRANSLATION_FAILED                                          syscall.Errno = 673\n\tERROR_PNP_INVALID_ID                                                      syscall.Errno = 674\n\tERROR_WAKE_SYSTEM_DEBUGGER                                                syscall.Errno = 675\n\tERROR_HANDLES_CLOSED                                                      syscall.Errno = 676\n\tERROR_EXTRANEOUS_INFORMATION                                              syscall.Errno = 677\n\tERROR_RXACT_COMMIT_NECESSARY                                              syscall.Errno = 678\n\tERROR_MEDIA_CHECK                                                         syscall.Errno = 679\n\tERROR_GUID_SUBSTITUTION_MADE                                              syscall.Errno = 680\n\tERROR_STOPPED_ON_SYMLINK                                                  syscall.Errno = 681\n\tERROR_LONGJUMP                                                            syscall.Errno = 682\n\tERROR_PLUGPLAY_QUERY_VETOED                                               syscall.Errno = 683\n\tERROR_UNWIND_CONSOLIDATE                                                  syscall.Errno = 684\n\tERROR_REGISTRY_HIVE_RECOVERED                                             syscall.Errno = 685\n\tERROR_DLL_MIGHT_BE_INSECURE                                               syscall.Errno = 686\n\tERROR_DLL_MIGHT_BE_INCOMPATIBLE                                           syscall.Errno = 687\n\tERROR_DBG_EXCEPTION_NOT_HANDLED                                           syscall.Errno = 688\n\tERROR_DBG_REPLY_LATER                                                     syscall.Errno = 689\n\tERROR_DBG_UNABLE_TO_PROVIDE_HANDLE                                        syscall.Errno = 690\n\tERROR_DBG_TERMINATE_THREAD                                                syscall.Errno = 691\n\tERROR_DBG_TERMINATE_PROCESS                                               syscall.Errno = 692\n\tERROR_DBG_CONTROL_C                                                       syscall.Errno = 693\n\tERROR_DBG_PRINTEXCEPTION_C                                                syscall.Errno = 694\n\tERROR_DBG_RIPEXCEPTION                                                    syscall.Errno = 695\n\tERROR_DBG_CONTROL_BREAK                                                   syscall.Errno = 696\n\tERROR_DBG_COMMAND_EXCEPTION                                               syscall.Errno = 697\n\tERROR_OBJECT_NAME_EXISTS                                                  syscall.Errno = 698\n\tERROR_THREAD_WAS_SUSPENDED                                                syscall.Errno = 699\n\tERROR_IMAGE_NOT_AT_BASE                                                   syscall.Errno = 700\n\tERROR_RXACT_STATE_CREATED                                                 syscall.Errno = 701\n\tERROR_SEGMENT_NOTIFICATION                                                syscall.Errno = 702\n\tERROR_BAD_CURRENT_DIRECTORY                                               syscall.Errno = 703\n\tERROR_FT_READ_RECOVERY_FROM_BACKUP                                        syscall.Errno = 704\n\tERROR_FT_WRITE_RECOVERY                                                   syscall.Errno = 705\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH                                         syscall.Errno = 706\n\tERROR_RECEIVE_PARTIAL                                                     syscall.Errno = 707\n\tERROR_RECEIVE_EXPEDITED                                                   syscall.Errno = 708\n\tERROR_RECEIVE_PARTIAL_EXPEDITED                                           syscall.Errno = 709\n\tERROR_EVENT_DONE                                                          syscall.Errno = 710\n\tERROR_EVENT_PENDING                                                       syscall.Errno = 711\n\tERROR_CHECKING_FILE_SYSTEM                                                syscall.Errno = 712\n\tERROR_FATAL_APP_EXIT                                                      syscall.Errno = 713\n\tERROR_PREDEFINED_HANDLE                                                   syscall.Errno = 714\n\tERROR_WAS_UNLOCKED                                                        syscall.Errno = 715\n\tERROR_SERVICE_NOTIFICATION                                                syscall.Errno = 716\n\tERROR_WAS_LOCKED                                                          syscall.Errno = 717\n\tERROR_LOG_HARD_ERROR                                                      syscall.Errno = 718\n\tERROR_ALREADY_WIN32                                                       syscall.Errno = 719\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                     syscall.Errno = 720\n\tERROR_NO_YIELD_PERFORMED                                                  syscall.Errno = 721\n\tERROR_TIMER_RESUME_IGNORED                                                syscall.Errno = 722\n\tERROR_ARBITRATION_UNHANDLED                                               syscall.Errno = 723\n\tERROR_CARDBUS_NOT_SUPPORTED                                               syscall.Errno = 724\n\tERROR_MP_PROCESSOR_MISMATCH                                               syscall.Errno = 725\n\tERROR_HIBERNATED                                                          syscall.Errno = 726\n\tERROR_RESUME_HIBERNATION                                                  syscall.Errno = 727\n\tERROR_FIRMWARE_UPDATED                                                    syscall.Errno = 728\n\tERROR_DRIVERS_LEAKING_LOCKED_PAGES                                        syscall.Errno = 729\n\tERROR_WAKE_SYSTEM                                                         syscall.Errno = 730\n\tERROR_WAIT_1                                                              syscall.Errno = 731\n\tERROR_WAIT_2                                                              syscall.Errno = 732\n\tERROR_WAIT_3                                                              syscall.Errno = 733\n\tERROR_WAIT_63                                                             syscall.Errno = 734\n\tERROR_ABANDONED_WAIT_0                                                    syscall.Errno = 735\n\tERROR_ABANDONED_WAIT_63                                                   syscall.Errno = 736\n\tERROR_USER_APC                                                            syscall.Errno = 737\n\tERROR_KERNEL_APC                                                          syscall.Errno = 738\n\tERROR_ALERTED                                                             syscall.Errno = 739\n\tERROR_ELEVATION_REQUIRED                                                  syscall.Errno = 740\n\tERROR_REPARSE                                                             syscall.Errno = 741\n\tERROR_OPLOCK_BREAK_IN_PROGRESS                                            syscall.Errno = 742\n\tERROR_VOLUME_MOUNTED                                                      syscall.Errno = 743\n\tERROR_RXACT_COMMITTED                                                     syscall.Errno = 744\n\tERROR_NOTIFY_CLEANUP                                                      syscall.Errno = 745\n\tERROR_PRIMARY_TRANSPORT_CONNECT_FAILED                                    syscall.Errno = 746\n\tERROR_PAGE_FAULT_TRANSITION                                               syscall.Errno = 747\n\tERROR_PAGE_FAULT_DEMAND_ZERO                                              syscall.Errno = 748\n\tERROR_PAGE_FAULT_COPY_ON_WRITE                                            syscall.Errno = 749\n\tERROR_PAGE_FAULT_GUARD_PAGE                                               syscall.Errno = 750\n\tERROR_PAGE_FAULT_PAGING_FILE                                              syscall.Errno = 751\n\tERROR_CACHE_PAGE_LOCKED                                                   syscall.Errno = 752\n\tERROR_CRASH_DUMP                                                          syscall.Errno = 753\n\tERROR_BUFFER_ALL_ZEROS                                                    syscall.Errno = 754\n\tERROR_REPARSE_OBJECT                                                      syscall.Errno = 755\n\tERROR_RESOURCE_REQUIREMENTS_CHANGED                                       syscall.Errno = 756\n\tERROR_TRANSLATION_COMPLETE                                                syscall.Errno = 757\n\tERROR_NOTHING_TO_TERMINATE                                                syscall.Errno = 758\n\tERROR_PROCESS_NOT_IN_JOB                                                  syscall.Errno = 759\n\tERROR_PROCESS_IN_JOB                                                      syscall.Errno = 760\n\tERROR_VOLSNAP_HIBERNATE_READY                                             syscall.Errno = 761\n\tERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                  syscall.Errno = 762\n\tERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED                                  syscall.Errno = 763\n\tERROR_INTERRUPT_STILL_CONNECTED                                           syscall.Errno = 764\n\tERROR_WAIT_FOR_OPLOCK                                                     syscall.Errno = 765\n\tERROR_DBG_EXCEPTION_HANDLED                                               syscall.Errno = 766\n\tERROR_DBG_CONTINUE                                                        syscall.Errno = 767\n\tERROR_CALLBACK_POP_STACK                                                  syscall.Errno = 768\n\tERROR_COMPRESSION_DISABLED                                                syscall.Errno = 769\n\tERROR_CANTFETCHBACKWARDS                                                  syscall.Errno = 770\n\tERROR_CANTSCROLLBACKWARDS                                                 syscall.Errno = 771\n\tERROR_ROWSNOTRELEASED                                                     syscall.Errno = 772\n\tERROR_BAD_ACCESSOR_FLAGS                                                  syscall.Errno = 773\n\tERROR_ERRORS_ENCOUNTERED                                                  syscall.Errno = 774\n\tERROR_NOT_CAPABLE                                                         syscall.Errno = 775\n\tERROR_REQUEST_OUT_OF_SEQUENCE                                             syscall.Errno = 776\n\tERROR_VERSION_PARSE_ERROR                                                 syscall.Errno = 777\n\tERROR_BADSTARTPOSITION                                                    syscall.Errno = 778\n\tERROR_MEMORY_HARDWARE                                                     syscall.Errno = 779\n\tERROR_DISK_REPAIR_DISABLED                                                syscall.Errno = 780\n\tERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE             syscall.Errno = 781\n\tERROR_SYSTEM_POWERSTATE_TRANSITION                                        syscall.Errno = 782\n\tERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                                syscall.Errno = 783\n\tERROR_MCA_EXCEPTION                                                       syscall.Errno = 784\n\tERROR_ACCESS_AUDIT_BY_POLICY                                              syscall.Errno = 785\n\tERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                               syscall.Errno = 786\n\tERROR_ABANDON_HIBERFILE                                                   syscall.Errno = 787\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                          syscall.Errno = 788\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                          syscall.Errno = 789\n\tERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                              syscall.Errno = 790\n\tERROR_BAD_MCFG_TABLE                                                      syscall.Errno = 791\n\tERROR_DISK_REPAIR_REDIRECTED                                              syscall.Errno = 792\n\tERROR_DISK_REPAIR_UNSUCCESSFUL                                            syscall.Errno = 793\n\tERROR_CORRUPT_LOG_OVERFULL                                                syscall.Errno = 794\n\tERROR_CORRUPT_LOG_CORRUPTED                                               syscall.Errno = 795\n\tERROR_CORRUPT_LOG_UNAVAILABLE                                             syscall.Errno = 796\n\tERROR_CORRUPT_LOG_DELETED_FULL                                            syscall.Errno = 797\n\tERROR_CORRUPT_LOG_CLEARED                                                 syscall.Errno = 798\n\tERROR_ORPHAN_NAME_EXHAUSTED                                               syscall.Errno = 799\n\tERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE                                       syscall.Errno = 800\n\tERROR_CANNOT_GRANT_REQUESTED_OPLOCK                                       syscall.Errno = 801\n\tERROR_CANNOT_BREAK_OPLOCK                                                 syscall.Errno = 802\n\tERROR_OPLOCK_HANDLE_CLOSED                                                syscall.Errno = 803\n\tERROR_NO_ACE_CONDITION                                                    syscall.Errno = 804\n\tERROR_INVALID_ACE_CONDITION                                               syscall.Errno = 805\n\tERROR_FILE_HANDLE_REVOKED                                                 syscall.Errno = 806\n\tERROR_IMAGE_AT_DIFFERENT_BASE                                             syscall.Errno = 807\n\tERROR_ENCRYPTED_IO_NOT_POSSIBLE                                           syscall.Errno = 808\n\tERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                              syscall.Errno = 809\n\tERROR_QUOTA_ACTIVITY                                                      syscall.Errno = 810\n\tERROR_HANDLE_REVOKED                                                      syscall.Errno = 811\n\tERROR_CALLBACK_INVOKE_INLINE                                              syscall.Errno = 812\n\tERROR_CPU_SET_INVALID                                                     syscall.Errno = 813\n\tERROR_ENCLAVE_NOT_TERMINATED                                              syscall.Errno = 814\n\tERROR_ENCLAVE_VIOLATION                                                   syscall.Errno = 815\n\tERROR_EA_ACCESS_DENIED                                                    syscall.Errno = 994\n\tERROR_OPERATION_ABORTED                                                   syscall.Errno = 995\n\tERROR_IO_INCOMPLETE                                                       syscall.Errno = 996\n\tERROR_IO_PENDING                                                          syscall.Errno = 997\n\tERROR_NOACCESS                                                            syscall.Errno = 998\n\tERROR_SWAPERROR                                                           syscall.Errno = 999\n\tERROR_STACK_OVERFLOW                                                      syscall.Errno = 1001\n\tERROR_INVALID_MESSAGE                                                     syscall.Errno = 1002\n\tERROR_CAN_NOT_COMPLETE                                                    syscall.Errno = 1003\n\tERROR_INVALID_FLAGS                                                       syscall.Errno = 1004\n\tERROR_UNRECOGNIZED_VOLUME                                                 syscall.Errno = 1005\n\tERROR_FILE_INVALID                                                        syscall.Errno = 1006\n\tERROR_FULLSCREEN_MODE                                                     syscall.Errno = 1007\n\tERROR_NO_TOKEN                                                            syscall.Errno = 1008\n\tERROR_BADDB                                                               syscall.Errno = 1009\n\tERROR_BADKEY                                                              syscall.Errno = 1010\n\tERROR_CANTOPEN                                                            syscall.Errno = 1011\n\tERROR_CANTREAD                                                            syscall.Errno = 1012\n\tERROR_CANTWRITE                                                           syscall.Errno = 1013\n\tERROR_REGISTRY_RECOVERED                                                  syscall.Errno = 1014\n\tERROR_REGISTRY_CORRUPT                                                    syscall.Errno = 1015\n\tERROR_REGISTRY_IO_FAILED                                                  syscall.Errno = 1016\n\tERROR_NOT_REGISTRY_FILE                                                   syscall.Errno = 1017\n\tERROR_KEY_DELETED                                                         syscall.Errno = 1018\n\tERROR_NO_LOG_SPACE                                                        syscall.Errno = 1019\n\tERROR_KEY_HAS_CHILDREN                                                    syscall.Errno = 1020\n\tERROR_CHILD_MUST_BE_VOLATILE                                              syscall.Errno = 1021\n\tERROR_NOTIFY_ENUM_DIR                                                     syscall.Errno = 1022\n\tERROR_DEPENDENT_SERVICES_RUNNING                                          syscall.Errno = 1051\n\tERROR_INVALID_SERVICE_CONTROL                                             syscall.Errno = 1052\n\tERROR_SERVICE_REQUEST_TIMEOUT                                             syscall.Errno = 1053\n\tERROR_SERVICE_NO_THREAD                                                   syscall.Errno = 1054\n\tERROR_SERVICE_DATABASE_LOCKED                                             syscall.Errno = 1055\n\tERROR_SERVICE_ALREADY_RUNNING                                             syscall.Errno = 1056\n\tERROR_INVALID_SERVICE_ACCOUNT                                             syscall.Errno = 1057\n\tERROR_SERVICE_DISABLED                                                    syscall.Errno = 1058\n\tERROR_CIRCULAR_DEPENDENCY                                                 syscall.Errno = 1059\n\tERROR_SERVICE_DOES_NOT_EXIST                                              syscall.Errno = 1060\n\tERROR_SERVICE_CANNOT_ACCEPT_CTRL                                          syscall.Errno = 1061\n\tERROR_SERVICE_NOT_ACTIVE                                                  syscall.Errno = 1062\n\tERROR_FAILED_SERVICE_CONTROLLER_CONNECT                                   syscall.Errno = 1063\n\tERROR_EXCEPTION_IN_SERVICE                                                syscall.Errno = 1064\n\tERROR_DATABASE_DOES_NOT_EXIST                                             syscall.Errno = 1065\n\tERROR_SERVICE_SPECIFIC_ERROR                                              syscall.Errno = 1066\n\tERROR_PROCESS_ABORTED                                                     syscall.Errno = 1067\n\tERROR_SERVICE_DEPENDENCY_FAIL                                             syscall.Errno = 1068\n\tERROR_SERVICE_LOGON_FAILED                                                syscall.Errno = 1069\n\tERROR_SERVICE_START_HANG                                                  syscall.Errno = 1070\n\tERROR_INVALID_SERVICE_LOCK                                                syscall.Errno = 1071\n\tERROR_SERVICE_MARKED_FOR_DELETE                                           syscall.Errno = 1072\n\tERROR_SERVICE_EXISTS                                                      syscall.Errno = 1073\n\tERROR_ALREADY_RUNNING_LKG                                                 syscall.Errno = 1074\n\tERROR_SERVICE_DEPENDENCY_DELETED                                          syscall.Errno = 1075\n\tERROR_BOOT_ALREADY_ACCEPTED                                               syscall.Errno = 1076\n\tERROR_SERVICE_NEVER_STARTED                                               syscall.Errno = 1077\n\tERROR_DUPLICATE_SERVICE_NAME                                              syscall.Errno = 1078\n\tERROR_DIFFERENT_SERVICE_ACCOUNT                                           syscall.Errno = 1079\n\tERROR_CANNOT_DETECT_DRIVER_FAILURE                                        syscall.Errno = 1080\n\tERROR_CANNOT_DETECT_PROCESS_ABORT                                         syscall.Errno = 1081\n\tERROR_NO_RECOVERY_PROGRAM                                                 syscall.Errno = 1082\n\tERROR_SERVICE_NOT_IN_EXE                                                  syscall.Errno = 1083\n\tERROR_NOT_SAFEBOOT_SERVICE                                                syscall.Errno = 1084\n\tERROR_END_OF_MEDIA                                                        syscall.Errno = 1100\n\tERROR_FILEMARK_DETECTED                                                   syscall.Errno = 1101\n\tERROR_BEGINNING_OF_MEDIA                                                  syscall.Errno = 1102\n\tERROR_SETMARK_DETECTED                                                    syscall.Errno = 1103\n\tERROR_NO_DATA_DETECTED                                                    syscall.Errno = 1104\n\tERROR_PARTITION_FAILURE                                                   syscall.Errno = 1105\n\tERROR_INVALID_BLOCK_LENGTH                                                syscall.Errno = 1106\n\tERROR_DEVICE_NOT_PARTITIONED                                              syscall.Errno = 1107\n\tERROR_UNABLE_TO_LOCK_MEDIA                                                syscall.Errno = 1108\n\tERROR_UNABLE_TO_UNLOAD_MEDIA                                              syscall.Errno = 1109\n\tERROR_MEDIA_CHANGED                                                       syscall.Errno = 1110\n\tERROR_BUS_RESET                                                           syscall.Errno = 1111\n\tERROR_NO_MEDIA_IN_DRIVE                                                   syscall.Errno = 1112\n\tERROR_NO_UNICODE_TRANSLATION                                              syscall.Errno = 1113\n\tERROR_DLL_INIT_FAILED                                                     syscall.Errno = 1114\n\tERROR_SHUTDOWN_IN_PROGRESS                                                syscall.Errno = 1115\n\tERROR_NO_SHUTDOWN_IN_PROGRESS                                             syscall.Errno = 1116\n\tERROR_IO_DEVICE                                                           syscall.Errno = 1117\n\tERROR_SERIAL_NO_DEVICE                                                    syscall.Errno = 1118\n\tERROR_IRQ_BUSY                                                            syscall.Errno = 1119\n\tERROR_MORE_WRITES                                                         syscall.Errno = 1120\n\tERROR_COUNTER_TIMEOUT                                                     syscall.Errno = 1121\n\tERROR_FLOPPY_ID_MARK_NOT_FOUND                                            syscall.Errno = 1122\n\tERROR_FLOPPY_WRONG_CYLINDER                                               syscall.Errno = 1123\n\tERROR_FLOPPY_UNKNOWN_ERROR                                                syscall.Errno = 1124\n\tERROR_FLOPPY_BAD_REGISTERS                                                syscall.Errno = 1125\n\tERROR_DISK_RECALIBRATE_FAILED                                             syscall.Errno = 1126\n\tERROR_DISK_OPERATION_FAILED                                               syscall.Errno = 1127\n\tERROR_DISK_RESET_FAILED                                                   syscall.Errno = 1128\n\tERROR_EOM_OVERFLOW                                                        syscall.Errno = 1129\n\tERROR_NOT_ENOUGH_SERVER_MEMORY                                            syscall.Errno = 1130\n\tERROR_POSSIBLE_DEADLOCK                                                   syscall.Errno = 1131\n\tERROR_MAPPED_ALIGNMENT                                                    syscall.Errno = 1132\n\tERROR_SET_POWER_STATE_VETOED                                              syscall.Errno = 1140\n\tERROR_SET_POWER_STATE_FAILED                                              syscall.Errno = 1141\n\tERROR_TOO_MANY_LINKS                                                      syscall.Errno = 1142\n\tERROR_OLD_WIN_VERSION                                                     syscall.Errno = 1150\n\tERROR_APP_WRONG_OS                                                        syscall.Errno = 1151\n\tERROR_SINGLE_INSTANCE_APP                                                 syscall.Errno = 1152\n\tERROR_RMODE_APP                                                           syscall.Errno = 1153\n\tERROR_INVALID_DLL                                                         syscall.Errno = 1154\n\tERROR_NO_ASSOCIATION                                                      syscall.Errno = 1155\n\tERROR_DDE_FAIL                                                            syscall.Errno = 1156\n\tERROR_DLL_NOT_FOUND                                                       syscall.Errno = 1157\n\tERROR_NO_MORE_USER_HANDLES                                                syscall.Errno = 1158\n\tERROR_MESSAGE_SYNC_ONLY                                                   syscall.Errno = 1159\n\tERROR_SOURCE_ELEMENT_EMPTY                                                syscall.Errno = 1160\n\tERROR_DESTINATION_ELEMENT_FULL                                            syscall.Errno = 1161\n\tERROR_ILLEGAL_ELEMENT_ADDRESS                                             syscall.Errno = 1162\n\tERROR_MAGAZINE_NOT_PRESENT                                                syscall.Errno = 1163\n\tERROR_DEVICE_REINITIALIZATION_NEEDED                                      syscall.Errno = 1164\n\tERROR_DEVICE_REQUIRES_CLEANING                                            syscall.Errno = 1165\n\tERROR_DEVICE_DOOR_OPEN                                                    syscall.Errno = 1166\n\tERROR_DEVICE_NOT_CONNECTED                                                syscall.Errno = 1167\n\tERROR_NOT_FOUND                                                           syscall.Errno = 1168\n\tERROR_NO_MATCH                                                            syscall.Errno = 1169\n\tERROR_SET_NOT_FOUND                                                       syscall.Errno = 1170\n\tERROR_POINT_NOT_FOUND                                                     syscall.Errno = 1171\n\tERROR_NO_TRACKING_SERVICE                                                 syscall.Errno = 1172\n\tERROR_NO_VOLUME_ID                                                        syscall.Errno = 1173\n\tERROR_UNABLE_TO_REMOVE_REPLACED                                           syscall.Errno = 1175\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT                                          syscall.Errno = 1176\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT_2                                        syscall.Errno = 1177\n\tERROR_JOURNAL_DELETE_IN_PROGRESS                                          syscall.Errno = 1178\n\tERROR_JOURNAL_NOT_ACTIVE                                                  syscall.Errno = 1179\n\tERROR_POTENTIAL_FILE_FOUND                                                syscall.Errno = 1180\n\tERROR_JOURNAL_ENTRY_DELETED                                               syscall.Errno = 1181\n\tERROR_SHUTDOWN_IS_SCHEDULED                                               syscall.Errno = 1190\n\tERROR_SHUTDOWN_USERS_LOGGED_ON                                            syscall.Errno = 1191\n\tERROR_BAD_DEVICE                                                          syscall.Errno = 1200\n\tERROR_CONNECTION_UNAVAIL                                                  syscall.Errno = 1201\n\tERROR_DEVICE_ALREADY_REMEMBERED                                           syscall.Errno = 1202\n\tERROR_NO_NET_OR_BAD_PATH                                                  syscall.Errno = 1203\n\tERROR_BAD_PROVIDER                                                        syscall.Errno = 1204\n\tERROR_CANNOT_OPEN_PROFILE                                                 syscall.Errno = 1205\n\tERROR_BAD_PROFILE                                                         syscall.Errno = 1206\n\tERROR_NOT_CONTAINER                                                       syscall.Errno = 1207\n\tERROR_EXTENDED_ERROR                                                      syscall.Errno = 1208\n\tERROR_INVALID_GROUPNAME                                                   syscall.Errno = 1209\n\tERROR_INVALID_COMPUTERNAME                                                syscall.Errno = 1210\n\tERROR_INVALID_EVENTNAME                                                   syscall.Errno = 1211\n\tERROR_INVALID_DOMAINNAME                                                  syscall.Errno = 1212\n\tERROR_INVALID_SERVICENAME                                                 syscall.Errno = 1213\n\tERROR_INVALID_NETNAME                                                     syscall.Errno = 1214\n\tERROR_INVALID_SHARENAME                                                   syscall.Errno = 1215\n\tERROR_INVALID_PASSWORDNAME                                                syscall.Errno = 1216\n\tERROR_INVALID_MESSAGENAME                                                 syscall.Errno = 1217\n\tERROR_INVALID_MESSAGEDEST                                                 syscall.Errno = 1218\n\tERROR_SESSION_CREDENTIAL_CONFLICT                                         syscall.Errno = 1219\n\tERROR_REMOTE_SESSION_LIMIT_EXCEEDED                                       syscall.Errno = 1220\n\tERROR_DUP_DOMAINNAME                                                      syscall.Errno = 1221\n\tERROR_NO_NETWORK                                                          syscall.Errno = 1222\n\tERROR_CANCELLED                                                           syscall.Errno = 1223\n\tERROR_USER_MAPPED_FILE                                                    syscall.Errno = 1224\n\tERROR_CONNECTION_REFUSED                                                  syscall.Errno = 1225\n\tERROR_GRACEFUL_DISCONNECT                                                 syscall.Errno = 1226\n\tERROR_ADDRESS_ALREADY_ASSOCIATED                                          syscall.Errno = 1227\n\tERROR_ADDRESS_NOT_ASSOCIATED                                              syscall.Errno = 1228\n\tERROR_CONNECTION_INVALID                                                  syscall.Errno = 1229\n\tERROR_CONNECTION_ACTIVE                                                   syscall.Errno = 1230\n\tERROR_NETWORK_UNREACHABLE                                                 syscall.Errno = 1231\n\tERROR_HOST_UNREACHABLE                                                    syscall.Errno = 1232\n\tERROR_PROTOCOL_UNREACHABLE                                                syscall.Errno = 1233\n\tERROR_PORT_UNREACHABLE                                                    syscall.Errno = 1234\n\tERROR_REQUEST_ABORTED                                                     syscall.Errno = 1235\n\tERROR_CONNECTION_ABORTED                                                  syscall.Errno = 1236\n\tERROR_RETRY                                                               syscall.Errno = 1237\n\tERROR_CONNECTION_COUNT_LIMIT                                              syscall.Errno = 1238\n\tERROR_LOGIN_TIME_RESTRICTION                                              syscall.Errno = 1239\n\tERROR_LOGIN_WKSTA_RESTRICTION                                             syscall.Errno = 1240\n\tERROR_INCORRECT_ADDRESS                                                   syscall.Errno = 1241\n\tERROR_ALREADY_REGISTERED                                                  syscall.Errno = 1242\n\tERROR_SERVICE_NOT_FOUND                                                   syscall.Errno = 1243\n\tERROR_NOT_AUTHENTICATED                                                   syscall.Errno = 1244\n\tERROR_NOT_LOGGED_ON                                                       syscall.Errno = 1245\n\tERROR_CONTINUE                                                            syscall.Errno = 1246\n\tERROR_ALREADY_INITIALIZED                                                 syscall.Errno = 1247\n\tERROR_NO_MORE_DEVICES                                                     syscall.Errno = 1248\n\tERROR_NO_SUCH_SITE                                                        syscall.Errno = 1249\n\tERROR_DOMAIN_CONTROLLER_EXISTS                                            syscall.Errno = 1250\n\tERROR_ONLY_IF_CONNECTED                                                   syscall.Errno = 1251\n\tERROR_OVERRIDE_NOCHANGES                                                  syscall.Errno = 1252\n\tERROR_BAD_USER_PROFILE                                                    syscall.Errno = 1253\n\tERROR_NOT_SUPPORTED_ON_SBS                                                syscall.Errno = 1254\n\tERROR_SERVER_SHUTDOWN_IN_PROGRESS                                         syscall.Errno = 1255\n\tERROR_HOST_DOWN                                                           syscall.Errno = 1256\n\tERROR_NON_ACCOUNT_SID                                                     syscall.Errno = 1257\n\tERROR_NON_DOMAIN_SID                                                      syscall.Errno = 1258\n\tERROR_APPHELP_BLOCK                                                       syscall.Errno = 1259\n\tERROR_ACCESS_DISABLED_BY_POLICY                                           syscall.Errno = 1260\n\tERROR_REG_NAT_CONSUMPTION                                                 syscall.Errno = 1261\n\tERROR_CSCSHARE_OFFLINE                                                    syscall.Errno = 1262\n\tERROR_PKINIT_FAILURE                                                      syscall.Errno = 1263\n\tERROR_SMARTCARD_SUBSYSTEM_FAILURE                                         syscall.Errno = 1264\n\tERROR_DOWNGRADE_DETECTED                                                  syscall.Errno = 1265\n\tERROR_MACHINE_LOCKED                                                      syscall.Errno = 1271\n\tERROR_SMB_GUEST_LOGON_BLOCKED                                             syscall.Errno = 1272\n\tERROR_CALLBACK_SUPPLIED_INVALID_DATA                                      syscall.Errno = 1273\n\tERROR_SYNC_FOREGROUND_REFRESH_REQUIRED                                    syscall.Errno = 1274\n\tERROR_DRIVER_BLOCKED                                                      syscall.Errno = 1275\n\tERROR_INVALID_IMPORT_OF_NON_DLL                                           syscall.Errno = 1276\n\tERROR_ACCESS_DISABLED_WEBBLADE                                            syscall.Errno = 1277\n\tERROR_ACCESS_DISABLED_WEBBLADE_TAMPER                                     syscall.Errno = 1278\n\tERROR_RECOVERY_FAILURE                                                    syscall.Errno = 1279\n\tERROR_ALREADY_FIBER                                                       syscall.Errno = 1280\n\tERROR_ALREADY_THREAD                                                      syscall.Errno = 1281\n\tERROR_STACK_BUFFER_OVERRUN                                                syscall.Errno = 1282\n\tERROR_PARAMETER_QUOTA_EXCEEDED                                            syscall.Errno = 1283\n\tERROR_DEBUGGER_INACTIVE                                                   syscall.Errno = 1284\n\tERROR_DELAY_LOAD_FAILED                                                   syscall.Errno = 1285\n\tERROR_VDM_DISALLOWED                                                      syscall.Errno = 1286\n\tERROR_UNIDENTIFIED_ERROR                                                  syscall.Errno = 1287\n\tERROR_INVALID_CRUNTIME_PARAMETER                                          syscall.Errno = 1288\n\tERROR_BEYOND_VDL                                                          syscall.Errno = 1289\n\tERROR_INCOMPATIBLE_SERVICE_SID_TYPE                                       syscall.Errno = 1290\n\tERROR_DRIVER_PROCESS_TERMINATED                                           syscall.Errno = 1291\n\tERROR_IMPLEMENTATION_LIMIT                                                syscall.Errno = 1292\n\tERROR_PROCESS_IS_PROTECTED                                                syscall.Errno = 1293\n\tERROR_SERVICE_NOTIFY_CLIENT_LAGGING                                       syscall.Errno = 1294\n\tERROR_DISK_QUOTA_EXCEEDED                                                 syscall.Errno = 1295\n\tERROR_CONTENT_BLOCKED                                                     syscall.Errno = 1296\n\tERROR_INCOMPATIBLE_SERVICE_PRIVILEGE                                      syscall.Errno = 1297\n\tERROR_APP_HANG                                                            syscall.Errno = 1298\n\tERROR_INVALID_LABEL                                                       syscall.Errno = 1299\n\tERROR_NOT_ALL_ASSIGNED                                                    syscall.Errno = 1300\n\tERROR_SOME_NOT_MAPPED                                                     syscall.Errno = 1301\n\tERROR_NO_QUOTAS_FOR_ACCOUNT                                               syscall.Errno = 1302\n\tERROR_LOCAL_USER_SESSION_KEY                                              syscall.Errno = 1303\n\tERROR_NULL_LM_PASSWORD                                                    syscall.Errno = 1304\n\tERROR_UNKNOWN_REVISION                                                    syscall.Errno = 1305\n\tERROR_REVISION_MISMATCH                                                   syscall.Errno = 1306\n\tERROR_INVALID_OWNER                                                       syscall.Errno = 1307\n\tERROR_INVALID_PRIMARY_GROUP                                               syscall.Errno = 1308\n\tERROR_NO_IMPERSONATION_TOKEN                                              syscall.Errno = 1309\n\tERROR_CANT_DISABLE_MANDATORY                                              syscall.Errno = 1310\n\tERROR_NO_LOGON_SERVERS                                                    syscall.Errno = 1311\n\tERROR_NO_SUCH_LOGON_SESSION                                               syscall.Errno = 1312\n\tERROR_NO_SUCH_PRIVILEGE                                                   syscall.Errno = 1313\n\tERROR_PRIVILEGE_NOT_HELD                                                  syscall.Errno = 1314\n\tERROR_INVALID_ACCOUNT_NAME                                                syscall.Errno = 1315\n\tERROR_USER_EXISTS                                                         syscall.Errno = 1316\n\tERROR_NO_SUCH_USER                                                        syscall.Errno = 1317\n\tERROR_GROUP_EXISTS                                                        syscall.Errno = 1318\n\tERROR_NO_SUCH_GROUP                                                       syscall.Errno = 1319\n\tERROR_MEMBER_IN_GROUP                                                     syscall.Errno = 1320\n\tERROR_MEMBER_NOT_IN_GROUP                                                 syscall.Errno = 1321\n\tERROR_LAST_ADMIN                                                          syscall.Errno = 1322\n\tERROR_WRONG_PASSWORD                                                      syscall.Errno = 1323\n\tERROR_ILL_FORMED_PASSWORD                                                 syscall.Errno = 1324\n\tERROR_PASSWORD_RESTRICTION                                                syscall.Errno = 1325\n\tERROR_LOGON_FAILURE                                                       syscall.Errno = 1326\n\tERROR_ACCOUNT_RESTRICTION                                                 syscall.Errno = 1327\n\tERROR_INVALID_LOGON_HOURS                                                 syscall.Errno = 1328\n\tERROR_INVALID_WORKSTATION                                                 syscall.Errno = 1329\n\tERROR_PASSWORD_EXPIRED                                                    syscall.Errno = 1330\n\tERROR_ACCOUNT_DISABLED                                                    syscall.Errno = 1331\n\tERROR_NONE_MAPPED                                                         syscall.Errno = 1332\n\tERROR_TOO_MANY_LUIDS_REQUESTED                                            syscall.Errno = 1333\n\tERROR_LUIDS_EXHAUSTED                                                     syscall.Errno = 1334\n\tERROR_INVALID_SUB_AUTHORITY                                               syscall.Errno = 1335\n\tERROR_INVALID_ACL                                                         syscall.Errno = 1336\n\tERROR_INVALID_SID                                                         syscall.Errno = 1337\n\tERROR_INVALID_SECURITY_DESCR                                              syscall.Errno = 1338\n\tERROR_BAD_INHERITANCE_ACL                                                 syscall.Errno = 1340\n\tERROR_SERVER_DISABLED                                                     syscall.Errno = 1341\n\tERROR_SERVER_NOT_DISABLED                                                 syscall.Errno = 1342\n\tERROR_INVALID_ID_AUTHORITY                                                syscall.Errno = 1343\n\tERROR_ALLOTTED_SPACE_EXCEEDED                                             syscall.Errno = 1344\n\tERROR_INVALID_GROUP_ATTRIBUTES                                            syscall.Errno = 1345\n\tERROR_BAD_IMPERSONATION_LEVEL                                             syscall.Errno = 1346\n\tERROR_CANT_OPEN_ANONYMOUS                                                 syscall.Errno = 1347\n\tERROR_BAD_VALIDATION_CLASS                                                syscall.Errno = 1348\n\tERROR_BAD_TOKEN_TYPE                                                      syscall.Errno = 1349\n\tERROR_NO_SECURITY_ON_OBJECT                                               syscall.Errno = 1350\n\tERROR_CANT_ACCESS_DOMAIN_INFO                                             syscall.Errno = 1351\n\tERROR_INVALID_SERVER_STATE                                                syscall.Errno = 1352\n\tERROR_INVALID_DOMAIN_STATE                                                syscall.Errno = 1353\n\tERROR_INVALID_DOMAIN_ROLE                                                 syscall.Errno = 1354\n\tERROR_NO_SUCH_DOMAIN                                                      syscall.Errno = 1355\n\tERROR_DOMAIN_EXISTS                                                       syscall.Errno = 1356\n\tERROR_DOMAIN_LIMIT_EXCEEDED                                               syscall.Errno = 1357\n\tERROR_INTERNAL_DB_CORRUPTION                                              syscall.Errno = 1358\n\tERROR_INTERNAL_ERROR                                                      syscall.Errno = 1359\n\tERROR_GENERIC_NOT_MAPPED                                                  syscall.Errno = 1360\n\tERROR_BAD_DESCRIPTOR_FORMAT                                               syscall.Errno = 1361\n\tERROR_NOT_LOGON_PROCESS                                                   syscall.Errno = 1362\n\tERROR_LOGON_SESSION_EXISTS                                                syscall.Errno = 1363\n\tERROR_NO_SUCH_PACKAGE                                                     syscall.Errno = 1364\n\tERROR_BAD_LOGON_SESSION_STATE                                             syscall.Errno = 1365\n\tERROR_LOGON_SESSION_COLLISION                                             syscall.Errno = 1366\n\tERROR_INVALID_LOGON_TYPE                                                  syscall.Errno = 1367\n\tERROR_CANNOT_IMPERSONATE                                                  syscall.Errno = 1368\n\tERROR_RXACT_INVALID_STATE                                                 syscall.Errno = 1369\n\tERROR_RXACT_COMMIT_FAILURE                                                syscall.Errno = 1370\n\tERROR_SPECIAL_ACCOUNT                                                     syscall.Errno = 1371\n\tERROR_SPECIAL_GROUP                                                       syscall.Errno = 1372\n\tERROR_SPECIAL_USER                                                        syscall.Errno = 1373\n\tERROR_MEMBERS_PRIMARY_GROUP                                               syscall.Errno = 1374\n\tERROR_TOKEN_ALREADY_IN_USE                                                syscall.Errno = 1375\n\tERROR_NO_SUCH_ALIAS                                                       syscall.Errno = 1376\n\tERROR_MEMBER_NOT_IN_ALIAS                                                 syscall.Errno = 1377\n\tERROR_MEMBER_IN_ALIAS                                                     syscall.Errno = 1378\n\tERROR_ALIAS_EXISTS                                                        syscall.Errno = 1379\n\tERROR_LOGON_NOT_GRANTED                                                   syscall.Errno = 1380\n\tERROR_TOO_MANY_SECRETS                                                    syscall.Errno = 1381\n\tERROR_SECRET_TOO_LONG                                                     syscall.Errno = 1382\n\tERROR_INTERNAL_DB_ERROR                                                   syscall.Errno = 1383\n\tERROR_TOO_MANY_CONTEXT_IDS                                                syscall.Errno = 1384\n\tERROR_LOGON_TYPE_NOT_GRANTED                                              syscall.Errno = 1385\n\tERROR_NT_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1386\n\tERROR_NO_SUCH_MEMBER                                                      syscall.Errno = 1387\n\tERROR_INVALID_MEMBER                                                      syscall.Errno = 1388\n\tERROR_TOO_MANY_SIDS                                                       syscall.Errno = 1389\n\tERROR_LM_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1390\n\tERROR_NO_INHERITANCE                                                      syscall.Errno = 1391\n\tERROR_FILE_CORRUPT                                                        syscall.Errno = 1392\n\tERROR_DISK_CORRUPT                                                        syscall.Errno = 1393\n\tERROR_NO_USER_SESSION_KEY                                                 syscall.Errno = 1394\n\tERROR_LICENSE_QUOTA_EXCEEDED                                              syscall.Errno = 1395\n\tERROR_WRONG_TARGET_NAME                                                   syscall.Errno = 1396\n\tERROR_MUTUAL_AUTH_FAILED                                                  syscall.Errno = 1397\n\tERROR_TIME_SKEW                                                           syscall.Errno = 1398\n\tERROR_CURRENT_DOMAIN_NOT_ALLOWED                                          syscall.Errno = 1399\n\tERROR_INVALID_WINDOW_HANDLE                                               syscall.Errno = 1400\n\tERROR_INVALID_MENU_HANDLE                                                 syscall.Errno = 1401\n\tERROR_INVALID_CURSOR_HANDLE                                               syscall.Errno = 1402\n\tERROR_INVALID_ACCEL_HANDLE                                                syscall.Errno = 1403\n\tERROR_INVALID_HOOK_HANDLE                                                 syscall.Errno = 1404\n\tERROR_INVALID_DWP_HANDLE                                                  syscall.Errno = 1405\n\tERROR_TLW_WITH_WSCHILD                                                    syscall.Errno = 1406\n\tERROR_CANNOT_FIND_WND_CLASS                                               syscall.Errno = 1407\n\tERROR_WINDOW_OF_OTHER_THREAD                                              syscall.Errno = 1408\n\tERROR_HOTKEY_ALREADY_REGISTERED                                           syscall.Errno = 1409\n\tERROR_CLASS_ALREADY_EXISTS                                                syscall.Errno = 1410\n\tERROR_CLASS_DOES_NOT_EXIST                                                syscall.Errno = 1411\n\tERROR_CLASS_HAS_WINDOWS                                                   syscall.Errno = 1412\n\tERROR_INVALID_INDEX                                                       syscall.Errno = 1413\n\tERROR_INVALID_ICON_HANDLE                                                 syscall.Errno = 1414\n\tERROR_PRIVATE_DIALOG_INDEX                                                syscall.Errno = 1415\n\tERROR_LISTBOX_ID_NOT_FOUND                                                syscall.Errno = 1416\n\tERROR_NO_WILDCARD_CHARACTERS                                              syscall.Errno = 1417\n\tERROR_CLIPBOARD_NOT_OPEN                                                  syscall.Errno = 1418\n\tERROR_HOTKEY_NOT_REGISTERED                                               syscall.Errno = 1419\n\tERROR_WINDOW_NOT_DIALOG                                                   syscall.Errno = 1420\n\tERROR_CONTROL_ID_NOT_FOUND                                                syscall.Errno = 1421\n\tERROR_INVALID_COMBOBOX_MESSAGE                                            syscall.Errno = 1422\n\tERROR_WINDOW_NOT_COMBOBOX                                                 syscall.Errno = 1423\n\tERROR_INVALID_EDIT_HEIGHT                                                 syscall.Errno = 1424\n\tERROR_DC_NOT_FOUND                                                        syscall.Errno = 1425\n\tERROR_INVALID_HOOK_FILTER                                                 syscall.Errno = 1426\n\tERROR_INVALID_FILTER_PROC                                                 syscall.Errno = 1427\n\tERROR_HOOK_NEEDS_HMOD                                                     syscall.Errno = 1428\n\tERROR_GLOBAL_ONLY_HOOK                                                    syscall.Errno = 1429\n\tERROR_JOURNAL_HOOK_SET                                                    syscall.Errno = 1430\n\tERROR_HOOK_NOT_INSTALLED                                                  syscall.Errno = 1431\n\tERROR_INVALID_LB_MESSAGE                                                  syscall.Errno = 1432\n\tERROR_SETCOUNT_ON_BAD_LB                                                  syscall.Errno = 1433\n\tERROR_LB_WITHOUT_TABSTOPS                                                 syscall.Errno = 1434\n\tERROR_DESTROY_OBJECT_OF_OTHER_THREAD                                      syscall.Errno = 1435\n\tERROR_CHILD_WINDOW_MENU                                                   syscall.Errno = 1436\n\tERROR_NO_SYSTEM_MENU                                                      syscall.Errno = 1437\n\tERROR_INVALID_MSGBOX_STYLE                                                syscall.Errno = 1438\n\tERROR_INVALID_SPI_VALUE                                                   syscall.Errno = 1439\n\tERROR_SCREEN_ALREADY_LOCKED                                               syscall.Errno = 1440\n\tERROR_HWNDS_HAVE_DIFF_PARENT                                              syscall.Errno = 1441\n\tERROR_NOT_CHILD_WINDOW                                                    syscall.Errno = 1442\n\tERROR_INVALID_GW_COMMAND                                                  syscall.Errno = 1443\n\tERROR_INVALID_THREAD_ID                                                   syscall.Errno = 1444\n\tERROR_NON_MDICHILD_WINDOW                                                 syscall.Errno = 1445\n\tERROR_POPUP_ALREADY_ACTIVE                                                syscall.Errno = 1446\n\tERROR_NO_SCROLLBARS                                                       syscall.Errno = 1447\n\tERROR_INVALID_SCROLLBAR_RANGE                                             syscall.Errno = 1448\n\tERROR_INVALID_SHOWWIN_COMMAND                                             syscall.Errno = 1449\n\tERROR_NO_SYSTEM_RESOURCES                                                 syscall.Errno = 1450\n\tERROR_NONPAGED_SYSTEM_RESOURCES                                           syscall.Errno = 1451\n\tERROR_PAGED_SYSTEM_RESOURCES                                              syscall.Errno = 1452\n\tERROR_WORKING_SET_QUOTA                                                   syscall.Errno = 1453\n\tERROR_PAGEFILE_QUOTA                                                      syscall.Errno = 1454\n\tERROR_COMMITMENT_LIMIT                                                    syscall.Errno = 1455\n\tERROR_MENU_ITEM_NOT_FOUND                                                 syscall.Errno = 1456\n\tERROR_INVALID_KEYBOARD_HANDLE                                             syscall.Errno = 1457\n\tERROR_HOOK_TYPE_NOT_ALLOWED                                               syscall.Errno = 1458\n\tERROR_REQUIRES_INTERACTIVE_WINDOWSTATION                                  syscall.Errno = 1459\n\tERROR_TIMEOUT                                                             syscall.Errno = 1460\n\tERROR_INVALID_MONITOR_HANDLE                                              syscall.Errno = 1461\n\tERROR_INCORRECT_SIZE                                                      syscall.Errno = 1462\n\tERROR_SYMLINK_CLASS_DISABLED                                              syscall.Errno = 1463\n\tERROR_SYMLINK_NOT_SUPPORTED                                               syscall.Errno = 1464\n\tERROR_XML_PARSE_ERROR                                                     syscall.Errno = 1465\n\tERROR_XMLDSIG_ERROR                                                       syscall.Errno = 1466\n\tERROR_RESTART_APPLICATION                                                 syscall.Errno = 1467\n\tERROR_WRONG_COMPARTMENT                                                   syscall.Errno = 1468\n\tERROR_AUTHIP_FAILURE                                                      syscall.Errno = 1469\n\tERROR_NO_NVRAM_RESOURCES                                                  syscall.Errno = 1470\n\tERROR_NOT_GUI_PROCESS                                                     syscall.Errno = 1471\n\tERROR_EVENTLOG_FILE_CORRUPT                                               syscall.Errno = 1500\n\tERROR_EVENTLOG_CANT_START                                                 syscall.Errno = 1501\n\tERROR_LOG_FILE_FULL                                                       syscall.Errno = 1502\n\tERROR_EVENTLOG_FILE_CHANGED                                               syscall.Errno = 1503\n\tERROR_CONTAINER_ASSIGNED                                                  syscall.Errno = 1504\n\tERROR_JOB_NO_CONTAINER                                                    syscall.Errno = 1505\n\tERROR_INVALID_TASK_NAME                                                   syscall.Errno = 1550\n\tERROR_INVALID_TASK_INDEX                                                  syscall.Errno = 1551\n\tERROR_THREAD_ALREADY_IN_TASK                                              syscall.Errno = 1552\n\tERROR_INSTALL_SERVICE_FAILURE                                             syscall.Errno = 1601\n\tERROR_INSTALL_USEREXIT                                                    syscall.Errno = 1602\n\tERROR_INSTALL_FAILURE                                                     syscall.Errno = 1603\n\tERROR_INSTALL_SUSPEND                                                     syscall.Errno = 1604\n\tERROR_UNKNOWN_PRODUCT                                                     syscall.Errno = 1605\n\tERROR_UNKNOWN_FEATURE                                                     syscall.Errno = 1606\n\tERROR_UNKNOWN_COMPONENT                                                   syscall.Errno = 1607\n\tERROR_UNKNOWN_PROPERTY                                                    syscall.Errno = 1608\n\tERROR_INVALID_HANDLE_STATE                                                syscall.Errno = 1609\n\tERROR_BAD_CONFIGURATION                                                   syscall.Errno = 1610\n\tERROR_INDEX_ABSENT                                                        syscall.Errno = 1611\n\tERROR_INSTALL_SOURCE_ABSENT                                               syscall.Errno = 1612\n\tERROR_INSTALL_PACKAGE_VERSION                                             syscall.Errno = 1613\n\tERROR_PRODUCT_UNINSTALLED                                                 syscall.Errno = 1614\n\tERROR_BAD_QUERY_SYNTAX                                                    syscall.Errno = 1615\n\tERROR_INVALID_FIELD                                                       syscall.Errno = 1616\n\tERROR_DEVICE_REMOVED                                                      syscall.Errno = 1617\n\tERROR_INSTALL_ALREADY_RUNNING                                             syscall.Errno = 1618\n\tERROR_INSTALL_PACKAGE_OPEN_FAILED                                         syscall.Errno = 1619\n\tERROR_INSTALL_PACKAGE_INVALID                                             syscall.Errno = 1620\n\tERROR_INSTALL_UI_FAILURE                                                  syscall.Errno = 1621\n\tERROR_INSTALL_LOG_FAILURE                                                 syscall.Errno = 1622\n\tERROR_INSTALL_LANGUAGE_UNSUPPORTED                                        syscall.Errno = 1623\n\tERROR_INSTALL_TRANSFORM_FAILURE                                           syscall.Errno = 1624\n\tERROR_INSTALL_PACKAGE_REJECTED                                            syscall.Errno = 1625\n\tERROR_FUNCTION_NOT_CALLED                                                 syscall.Errno = 1626\n\tERROR_FUNCTION_FAILED                                                     syscall.Errno = 1627\n\tERROR_INVALID_TABLE                                                       syscall.Errno = 1628\n\tERROR_DATATYPE_MISMATCH                                                   syscall.Errno = 1629\n\tERROR_UNSUPPORTED_TYPE                                                    syscall.Errno = 1630\n\tERROR_CREATE_FAILED                                                       syscall.Errno = 1631\n\tERROR_INSTALL_TEMP_UNWRITABLE                                             syscall.Errno = 1632\n\tERROR_INSTALL_PLATFORM_UNSUPPORTED                                        syscall.Errno = 1633\n\tERROR_INSTALL_NOTUSED                                                     syscall.Errno = 1634\n\tERROR_PATCH_PACKAGE_OPEN_FAILED                                           syscall.Errno = 1635\n\tERROR_PATCH_PACKAGE_INVALID                                               syscall.Errno = 1636\n\tERROR_PATCH_PACKAGE_UNSUPPORTED                                           syscall.Errno = 1637\n\tERROR_PRODUCT_VERSION                                                     syscall.Errno = 1638\n\tERROR_INVALID_COMMAND_LINE                                                syscall.Errno = 1639\n\tERROR_INSTALL_REMOTE_DISALLOWED                                           syscall.Errno = 1640\n\tERROR_SUCCESS_REBOOT_INITIATED                                            syscall.Errno = 1641\n\tERROR_PATCH_TARGET_NOT_FOUND                                              syscall.Errno = 1642\n\tERROR_PATCH_PACKAGE_REJECTED                                              syscall.Errno = 1643\n\tERROR_INSTALL_TRANSFORM_REJECTED                                          syscall.Errno = 1644\n\tERROR_INSTALL_REMOTE_PROHIBITED                                           syscall.Errno = 1645\n\tERROR_PATCH_REMOVAL_UNSUPPORTED                                           syscall.Errno = 1646\n\tERROR_UNKNOWN_PATCH                                                       syscall.Errno = 1647\n\tERROR_PATCH_NO_SEQUENCE                                                   syscall.Errno = 1648\n\tERROR_PATCH_REMOVAL_DISALLOWED                                            syscall.Errno = 1649\n\tERROR_INVALID_PATCH_XML                                                   syscall.Errno = 1650\n\tERROR_PATCH_MANAGED_ADVERTISED_PRODUCT                                    syscall.Errno = 1651\n\tERROR_INSTALL_SERVICE_SAFEBOOT                                            syscall.Errno = 1652\n\tERROR_FAIL_FAST_EXCEPTION                                                 syscall.Errno = 1653\n\tERROR_INSTALL_REJECTED                                                    syscall.Errno = 1654\n\tERROR_DYNAMIC_CODE_BLOCKED                                                syscall.Errno = 1655\n\tERROR_NOT_SAME_OBJECT                                                     syscall.Errno = 1656\n\tERROR_STRICT_CFG_VIOLATION                                                syscall.Errno = 1657\n\tERROR_SET_CONTEXT_DENIED                                                  syscall.Errno = 1660\n\tERROR_CROSS_PARTITION_VIOLATION                                           syscall.Errno = 1661\n\tRPC_S_INVALID_STRING_BINDING                                              syscall.Errno = 1700\n\tRPC_S_WRONG_KIND_OF_BINDING                                               syscall.Errno = 1701\n\tRPC_S_INVALID_BINDING                                                     syscall.Errno = 1702\n\tRPC_S_PROTSEQ_NOT_SUPPORTED                                               syscall.Errno = 1703\n\tRPC_S_INVALID_RPC_PROTSEQ                                                 syscall.Errno = 1704\n\tRPC_S_INVALID_STRING_UUID                                                 syscall.Errno = 1705\n\tRPC_S_INVALID_ENDPOINT_FORMAT                                             syscall.Errno = 1706\n\tRPC_S_INVALID_NET_ADDR                                                    syscall.Errno = 1707\n\tRPC_S_NO_ENDPOINT_FOUND                                                   syscall.Errno = 1708\n\tRPC_S_INVALID_TIMEOUT                                                     syscall.Errno = 1709\n\tRPC_S_OBJECT_NOT_FOUND                                                    syscall.Errno = 1710\n\tRPC_S_ALREADY_REGISTERED                                                  syscall.Errno = 1711\n\tRPC_S_TYPE_ALREADY_REGISTERED                                             syscall.Errno = 1712\n\tRPC_S_ALREADY_LISTENING                                                   syscall.Errno = 1713\n\tRPC_S_NO_PROTSEQS_REGISTERED                                              syscall.Errno = 1714\n\tRPC_S_NOT_LISTENING                                                       syscall.Errno = 1715\n\tRPC_S_UNKNOWN_MGR_TYPE                                                    syscall.Errno = 1716\n\tRPC_S_UNKNOWN_IF                                                          syscall.Errno = 1717\n\tRPC_S_NO_BINDINGS                                                         syscall.Errno = 1718\n\tRPC_S_NO_PROTSEQS                                                         syscall.Errno = 1719\n\tRPC_S_CANT_CREATE_ENDPOINT                                                syscall.Errno = 1720\n\tRPC_S_OUT_OF_RESOURCES                                                    syscall.Errno = 1721\n\tRPC_S_SERVER_UNAVAILABLE                                                  syscall.Errno = 1722\n\tRPC_S_SERVER_TOO_BUSY                                                     syscall.Errno = 1723\n\tRPC_S_INVALID_NETWORK_OPTIONS                                             syscall.Errno = 1724\n\tRPC_S_NO_CALL_ACTIVE                                                      syscall.Errno = 1725\n\tRPC_S_CALL_FAILED                                                         syscall.Errno = 1726\n\tRPC_S_CALL_FAILED_DNE                                                     syscall.Errno = 1727\n\tRPC_S_PROTOCOL_ERROR                                                      syscall.Errno = 1728\n\tRPC_S_PROXY_ACCESS_DENIED                                                 syscall.Errno = 1729\n\tRPC_S_UNSUPPORTED_TRANS_SYN                                               syscall.Errno = 1730\n\tRPC_S_UNSUPPORTED_TYPE                                                    syscall.Errno = 1732\n\tRPC_S_INVALID_TAG                                                         syscall.Errno = 1733\n\tRPC_S_INVALID_BOUND                                                       syscall.Errno = 1734\n\tRPC_S_NO_ENTRY_NAME                                                       syscall.Errno = 1735\n\tRPC_S_INVALID_NAME_SYNTAX                                                 syscall.Errno = 1736\n\tRPC_S_UNSUPPORTED_NAME_SYNTAX                                             syscall.Errno = 1737\n\tRPC_S_UUID_NO_ADDRESS                                                     syscall.Errno = 1739\n\tRPC_S_DUPLICATE_ENDPOINT                                                  syscall.Errno = 1740\n\tRPC_S_UNKNOWN_AUTHN_TYPE                                                  syscall.Errno = 1741\n\tRPC_S_MAX_CALLS_TOO_SMALL                                                 syscall.Errno = 1742\n\tRPC_S_STRING_TOO_LONG                                                     syscall.Errno = 1743\n\tRPC_S_PROTSEQ_NOT_FOUND                                                   syscall.Errno = 1744\n\tRPC_S_PROCNUM_OUT_OF_RANGE                                                syscall.Errno = 1745\n\tRPC_S_BINDING_HAS_NO_AUTH                                                 syscall.Errno = 1746\n\tRPC_S_UNKNOWN_AUTHN_SERVICE                                               syscall.Errno = 1747\n\tRPC_S_UNKNOWN_AUTHN_LEVEL                                                 syscall.Errno = 1748\n\tRPC_S_INVALID_AUTH_IDENTITY                                               syscall.Errno = 1749\n\tRPC_S_UNKNOWN_AUTHZ_SERVICE                                               syscall.Errno = 1750\n\tEPT_S_INVALID_ENTRY                                                       syscall.Errno = 1751\n\tEPT_S_CANT_PERFORM_OP                                                     syscall.Errno = 1752\n\tEPT_S_NOT_REGISTERED                                                      syscall.Errno = 1753\n\tRPC_S_NOTHING_TO_EXPORT                                                   syscall.Errno = 1754\n\tRPC_S_INCOMPLETE_NAME                                                     syscall.Errno = 1755\n\tRPC_S_INVALID_VERS_OPTION                                                 syscall.Errno = 1756\n\tRPC_S_NO_MORE_MEMBERS                                                     syscall.Errno = 1757\n\tRPC_S_NOT_ALL_OBJS_UNEXPORTED                                             syscall.Errno = 1758\n\tRPC_S_INTERFACE_NOT_FOUND                                                 syscall.Errno = 1759\n\tRPC_S_ENTRY_ALREADY_EXISTS                                                syscall.Errno = 1760\n\tRPC_S_ENTRY_NOT_FOUND                                                     syscall.Errno = 1761\n\tRPC_S_NAME_SERVICE_UNAVAILABLE                                            syscall.Errno = 1762\n\tRPC_S_INVALID_NAF_ID                                                      syscall.Errno = 1763\n\tRPC_S_CANNOT_SUPPORT                                                      syscall.Errno = 1764\n\tRPC_S_NO_CONTEXT_AVAILABLE                                                syscall.Errno = 1765\n\tRPC_S_INTERNAL_ERROR                                                      syscall.Errno = 1766\n\tRPC_S_ZERO_DIVIDE                                                         syscall.Errno = 1767\n\tRPC_S_ADDRESS_ERROR                                                       syscall.Errno = 1768\n\tRPC_S_FP_DIV_ZERO                                                         syscall.Errno = 1769\n\tRPC_S_FP_UNDERFLOW                                                        syscall.Errno = 1770\n\tRPC_S_FP_OVERFLOW                                                         syscall.Errno = 1771\n\tRPC_X_NO_MORE_ENTRIES                                                     syscall.Errno = 1772\n\tRPC_X_SS_CHAR_TRANS_OPEN_FAIL                                             syscall.Errno = 1773\n\tRPC_X_SS_CHAR_TRANS_SHORT_FILE                                            syscall.Errno = 1774\n\tRPC_X_SS_IN_NULL_CONTEXT                                                  syscall.Errno = 1775\n\tRPC_X_SS_CONTEXT_DAMAGED                                                  syscall.Errno = 1777\n\tRPC_X_SS_HANDLES_MISMATCH                                                 syscall.Errno = 1778\n\tRPC_X_SS_CANNOT_GET_CALL_HANDLE                                           syscall.Errno = 1779\n\tRPC_X_NULL_REF_POINTER                                                    syscall.Errno = 1780\n\tRPC_X_ENUM_VALUE_OUT_OF_RANGE                                             syscall.Errno = 1781\n\tRPC_X_BYTE_COUNT_TOO_SMALL                                                syscall.Errno = 1782\n\tRPC_X_BAD_STUB_DATA                                                       syscall.Errno = 1783\n\tERROR_INVALID_USER_BUFFER                                                 syscall.Errno = 1784\n\tERROR_UNRECOGNIZED_MEDIA                                                  syscall.Errno = 1785\n\tERROR_NO_TRUST_LSA_SECRET                                                 syscall.Errno = 1786\n\tERROR_NO_TRUST_SAM_ACCOUNT                                                syscall.Errno = 1787\n\tERROR_TRUSTED_DOMAIN_FAILURE                                              syscall.Errno = 1788\n\tERROR_TRUSTED_RELATIONSHIP_FAILURE                                        syscall.Errno = 1789\n\tERROR_TRUST_FAILURE                                                       syscall.Errno = 1790\n\tRPC_S_CALL_IN_PROGRESS                                                    syscall.Errno = 1791\n\tERROR_NETLOGON_NOT_STARTED                                                syscall.Errno = 1792\n\tERROR_ACCOUNT_EXPIRED                                                     syscall.Errno = 1793\n\tERROR_REDIRECTOR_HAS_OPEN_HANDLES                                         syscall.Errno = 1794\n\tERROR_PRINTER_DRIVER_ALREADY_INSTALLED                                    syscall.Errno = 1795\n\tERROR_UNKNOWN_PORT                                                        syscall.Errno = 1796\n\tERROR_UNKNOWN_PRINTER_DRIVER                                              syscall.Errno = 1797\n\tERROR_UNKNOWN_PRINTPROCESSOR                                              syscall.Errno = 1798\n\tERROR_INVALID_SEPARATOR_FILE                                              syscall.Errno = 1799\n\tERROR_INVALID_PRIORITY                                                    syscall.Errno = 1800\n\tERROR_INVALID_PRINTER_NAME                                                syscall.Errno = 1801\n\tERROR_PRINTER_ALREADY_EXISTS                                              syscall.Errno = 1802\n\tERROR_INVALID_PRINTER_COMMAND                                             syscall.Errno = 1803\n\tERROR_INVALID_DATATYPE                                                    syscall.Errno = 1804\n\tERROR_INVALID_ENVIRONMENT                                                 syscall.Errno = 1805\n\tRPC_S_NO_MORE_BINDINGS                                                    syscall.Errno = 1806\n\tERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                   syscall.Errno = 1807\n\tERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                   syscall.Errno = 1808\n\tERROR_NOLOGON_SERVER_TRUST_ACCOUNT                                        syscall.Errno = 1809\n\tERROR_DOMAIN_TRUST_INCONSISTENT                                           syscall.Errno = 1810\n\tERROR_SERVER_HAS_OPEN_HANDLES                                             syscall.Errno = 1811\n\tERROR_RESOURCE_DATA_NOT_FOUND                                             syscall.Errno = 1812\n\tERROR_RESOURCE_TYPE_NOT_FOUND                                             syscall.Errno = 1813\n\tERROR_RESOURCE_NAME_NOT_FOUND                                             syscall.Errno = 1814\n\tERROR_RESOURCE_LANG_NOT_FOUND                                             syscall.Errno = 1815\n\tERROR_NOT_ENOUGH_QUOTA                                                    syscall.Errno = 1816\n\tRPC_S_NO_INTERFACES                                                       syscall.Errno = 1817\n\tRPC_S_CALL_CANCELLED                                                      syscall.Errno = 1818\n\tRPC_S_BINDING_INCOMPLETE                                                  syscall.Errno = 1819\n\tRPC_S_COMM_FAILURE                                                        syscall.Errno = 1820\n\tRPC_S_UNSUPPORTED_AUTHN_LEVEL                                             syscall.Errno = 1821\n\tRPC_S_NO_PRINC_NAME                                                       syscall.Errno = 1822\n\tRPC_S_NOT_RPC_ERROR                                                       syscall.Errno = 1823\n\tRPC_S_UUID_LOCAL_ONLY                                                     syscall.Errno = 1824\n\tRPC_S_SEC_PKG_ERROR                                                       syscall.Errno = 1825\n\tRPC_S_NOT_CANCELLED                                                       syscall.Errno = 1826\n\tRPC_X_INVALID_ES_ACTION                                                   syscall.Errno = 1827\n\tRPC_X_WRONG_ES_VERSION                                                    syscall.Errno = 1828\n\tRPC_X_WRONG_STUB_VERSION                                                  syscall.Errno = 1829\n\tRPC_X_INVALID_PIPE_OBJECT                                                 syscall.Errno = 1830\n\tRPC_X_WRONG_PIPE_ORDER                                                    syscall.Errno = 1831\n\tRPC_X_WRONG_PIPE_VERSION                                                  syscall.Errno = 1832\n\tRPC_S_COOKIE_AUTH_FAILED                                                  syscall.Errno = 1833\n\tRPC_S_DO_NOT_DISTURB                                                      syscall.Errno = 1834\n\tRPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED                                        syscall.Errno = 1835\n\tRPC_S_SYSTEM_HANDLE_TYPE_MISMATCH                                         syscall.Errno = 1836\n\tRPC_S_GROUP_MEMBER_NOT_FOUND                                              syscall.Errno = 1898\n\tEPT_S_CANT_CREATE                                                         syscall.Errno = 1899\n\tRPC_S_INVALID_OBJECT                                                      syscall.Errno = 1900\n\tERROR_INVALID_TIME                                                        syscall.Errno = 1901\n\tERROR_INVALID_FORM_NAME                                                   syscall.Errno = 1902\n\tERROR_INVALID_FORM_SIZE                                                   syscall.Errno = 1903\n\tERROR_ALREADY_WAITING                                                     syscall.Errno = 1904\n\tERROR_PRINTER_DELETED                                                     syscall.Errno = 1905\n\tERROR_INVALID_PRINTER_STATE                                               syscall.Errno = 1906\n\tERROR_PASSWORD_MUST_CHANGE                                                syscall.Errno = 1907\n\tERROR_DOMAIN_CONTROLLER_NOT_FOUND                                         syscall.Errno = 1908\n\tERROR_ACCOUNT_LOCKED_OUT                                                  syscall.Errno = 1909\n\tOR_INVALID_OXID                                                           syscall.Errno = 1910\n\tOR_INVALID_OID                                                            syscall.Errno = 1911\n\tOR_INVALID_SET                                                            syscall.Errno = 1912\n\tRPC_S_SEND_INCOMPLETE                                                     syscall.Errno = 1913\n\tRPC_S_INVALID_ASYNC_HANDLE                                                syscall.Errno = 1914\n\tRPC_S_INVALID_ASYNC_CALL                                                  syscall.Errno = 1915\n\tRPC_X_PIPE_CLOSED                                                         syscall.Errno = 1916\n\tRPC_X_PIPE_DISCIPLINE_ERROR                                               syscall.Errno = 1917\n\tRPC_X_PIPE_EMPTY                                                          syscall.Errno = 1918\n\tERROR_NO_SITENAME                                                         syscall.Errno = 1919\n\tERROR_CANT_ACCESS_FILE                                                    syscall.Errno = 1920\n\tERROR_CANT_RESOLVE_FILENAME                                               syscall.Errno = 1921\n\tRPC_S_ENTRY_TYPE_MISMATCH                                                 syscall.Errno = 1922\n\tRPC_S_NOT_ALL_OBJS_EXPORTED                                               syscall.Errno = 1923\n\tRPC_S_INTERFACE_NOT_EXPORTED                                              syscall.Errno = 1924\n\tRPC_S_PROFILE_NOT_ADDED                                                   syscall.Errno = 1925\n\tRPC_S_PRF_ELT_NOT_ADDED                                                   syscall.Errno = 1926\n\tRPC_S_PRF_ELT_NOT_REMOVED                                                 syscall.Errno = 1927\n\tRPC_S_GRP_ELT_NOT_ADDED                                                   syscall.Errno = 1928\n\tRPC_S_GRP_ELT_NOT_REMOVED                                                 syscall.Errno = 1929\n\tERROR_KM_DRIVER_BLOCKED                                                   syscall.Errno = 1930\n\tERROR_CONTEXT_EXPIRED                                                     syscall.Errno = 1931\n\tERROR_PER_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1932\n\tERROR_ALL_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1933\n\tERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED                                    syscall.Errno = 1934\n\tERROR_AUTHENTICATION_FIREWALL_FAILED                                      syscall.Errno = 1935\n\tERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED                                    syscall.Errno = 1936\n\tERROR_NTLM_BLOCKED                                                        syscall.Errno = 1937\n\tERROR_PASSWORD_CHANGE_REQUIRED                                            syscall.Errno = 1938\n\tERROR_LOST_MODE_LOGON_RESTRICTION                                         syscall.Errno = 1939\n\tERROR_INVALID_PIXEL_FORMAT                                                syscall.Errno = 2000\n\tERROR_BAD_DRIVER                                                          syscall.Errno = 2001\n\tERROR_INVALID_WINDOW_STYLE                                                syscall.Errno = 2002\n\tERROR_METAFILE_NOT_SUPPORTED                                              syscall.Errno = 2003\n\tERROR_TRANSFORM_NOT_SUPPORTED                                             syscall.Errno = 2004\n\tERROR_CLIPPING_NOT_SUPPORTED                                              syscall.Errno = 2005\n\tERROR_INVALID_CMM                                                         syscall.Errno = 2010\n\tERROR_INVALID_PROFILE                                                     syscall.Errno = 2011\n\tERROR_TAG_NOT_FOUND                                                       syscall.Errno = 2012\n\tERROR_TAG_NOT_PRESENT                                                     syscall.Errno = 2013\n\tERROR_DUPLICATE_TAG                                                       syscall.Errno = 2014\n\tERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE                                  syscall.Errno = 2015\n\tERROR_PROFILE_NOT_FOUND                                                   syscall.Errno = 2016\n\tERROR_INVALID_COLORSPACE                                                  syscall.Errno = 2017\n\tERROR_ICM_NOT_ENABLED                                                     syscall.Errno = 2018\n\tERROR_DELETING_ICM_XFORM                                                  syscall.Errno = 2019\n\tERROR_INVALID_TRANSFORM                                                   syscall.Errno = 2020\n\tERROR_COLORSPACE_MISMATCH                                                 syscall.Errno = 2021\n\tERROR_INVALID_COLORINDEX                                                  syscall.Errno = 2022\n\tERROR_PROFILE_DOES_NOT_MATCH_DEVICE                                       syscall.Errno = 2023\n\tERROR_CONNECTED_OTHER_PASSWORD                                            syscall.Errno = 2108\n\tERROR_CONNECTED_OTHER_PASSWORD_DEFAULT                                    syscall.Errno = 2109\n\tERROR_BAD_USERNAME                                                        syscall.Errno = 2202\n\tERROR_NOT_CONNECTED                                                       syscall.Errno = 2250\n\tERROR_OPEN_FILES                                                          syscall.Errno = 2401\n\tERROR_ACTIVE_CONNECTIONS                                                  syscall.Errno = 2402\n\tERROR_DEVICE_IN_USE                                                       syscall.Errno = 2404\n\tERROR_UNKNOWN_PRINT_MONITOR                                               syscall.Errno = 3000\n\tERROR_PRINTER_DRIVER_IN_USE                                               syscall.Errno = 3001\n\tERROR_SPOOL_FILE_NOT_FOUND                                                syscall.Errno = 3002\n\tERROR_SPL_NO_STARTDOC                                                     syscall.Errno = 3003\n\tERROR_SPL_NO_ADDJOB                                                       syscall.Errno = 3004\n\tERROR_PRINT_PROCESSOR_ALREADY_INSTALLED                                   syscall.Errno = 3005\n\tERROR_PRINT_MONITOR_ALREADY_INSTALLED                                     syscall.Errno = 3006\n\tERROR_INVALID_PRINT_MONITOR                                               syscall.Errno = 3007\n\tERROR_PRINT_MONITOR_IN_USE                                                syscall.Errno = 3008\n\tERROR_PRINTER_HAS_JOBS_QUEUED                                             syscall.Errno = 3009\n\tERROR_SUCCESS_REBOOT_REQUIRED                                             syscall.Errno = 3010\n\tERROR_SUCCESS_RESTART_REQUIRED                                            syscall.Errno = 3011\n\tERROR_PRINTER_NOT_FOUND                                                   syscall.Errno = 3012\n\tERROR_PRINTER_DRIVER_WARNED                                               syscall.Errno = 3013\n\tERROR_PRINTER_DRIVER_BLOCKED                                              syscall.Errno = 3014\n\tERROR_PRINTER_DRIVER_PACKAGE_IN_USE                                       syscall.Errno = 3015\n\tERROR_CORE_DRIVER_PACKAGE_NOT_FOUND                                       syscall.Errno = 3016\n\tERROR_FAIL_REBOOT_REQUIRED                                                syscall.Errno = 3017\n\tERROR_FAIL_REBOOT_INITIATED                                               syscall.Errno = 3018\n\tERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED                                      syscall.Errno = 3019\n\tERROR_PRINT_JOB_RESTART_REQUIRED                                          syscall.Errno = 3020\n\tERROR_INVALID_PRINTER_DRIVER_MANIFEST                                     syscall.Errno = 3021\n\tERROR_PRINTER_NOT_SHAREABLE                                               syscall.Errno = 3022\n\tERROR_REQUEST_PAUSED                                                      syscall.Errno = 3050\n\tERROR_APPEXEC_CONDITION_NOT_SATISFIED                                     syscall.Errno = 3060\n\tERROR_APPEXEC_HANDLE_INVALIDATED                                          syscall.Errno = 3061\n\tERROR_APPEXEC_INVALID_HOST_GENERATION                                     syscall.Errno = 3062\n\tERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                             syscall.Errno = 3063\n\tERROR_APPEXEC_INVALID_HOST_STATE                                          syscall.Errno = 3064\n\tERROR_APPEXEC_NO_DONOR                                                    syscall.Errno = 3065\n\tERROR_APPEXEC_HOST_ID_MISMATCH                                            syscall.Errno = 3066\n\tERROR_APPEXEC_UNKNOWN_USER                                                syscall.Errno = 3067\n\tERROR_IO_REISSUE_AS_CACHED                                                syscall.Errno = 3950\n\tERROR_WINS_INTERNAL                                                       syscall.Errno = 4000\n\tERROR_CAN_NOT_DEL_LOCAL_WINS                                              syscall.Errno = 4001\n\tERROR_STATIC_INIT                                                         syscall.Errno = 4002\n\tERROR_INC_BACKUP                                                          syscall.Errno = 4003\n\tERROR_FULL_BACKUP                                                         syscall.Errno = 4004\n\tERROR_REC_NON_EXISTENT                                                    syscall.Errno = 4005\n\tERROR_RPL_NOT_ALLOWED                                                     syscall.Errno = 4006\n\tPEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED                            syscall.Errno = 4050\n\tPEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO                                   syscall.Errno = 4051\n\tPEERDIST_ERROR_MISSING_DATA                                               syscall.Errno = 4052\n\tPEERDIST_ERROR_NO_MORE                                                    syscall.Errno = 4053\n\tPEERDIST_ERROR_NOT_INITIALIZED                                            syscall.Errno = 4054\n\tPEERDIST_ERROR_ALREADY_INITIALIZED                                        syscall.Errno = 4055\n\tPEERDIST_ERROR_SHUTDOWN_IN_PROGRESS                                       syscall.Errno = 4056\n\tPEERDIST_ERROR_INVALIDATED                                                syscall.Errno = 4057\n\tPEERDIST_ERROR_ALREADY_EXISTS                                             syscall.Errno = 4058\n\tPEERDIST_ERROR_OPERATION_NOTFOUND                                         syscall.Errno = 4059\n\tPEERDIST_ERROR_ALREADY_COMPLETED                                          syscall.Errno = 4060\n\tPEERDIST_ERROR_OUT_OF_BOUNDS                                              syscall.Errno = 4061\n\tPEERDIST_ERROR_VERSION_UNSUPPORTED                                        syscall.Errno = 4062\n\tPEERDIST_ERROR_INVALID_CONFIGURATION                                      syscall.Errno = 4063\n\tPEERDIST_ERROR_NOT_LICENSED                                               syscall.Errno = 4064\n\tPEERDIST_ERROR_SERVICE_UNAVAILABLE                                        syscall.Errno = 4065\n\tPEERDIST_ERROR_TRUST_FAILURE                                              syscall.Errno = 4066\n\tERROR_DHCP_ADDRESS_CONFLICT                                               syscall.Errno = 4100\n\tERROR_WMI_GUID_NOT_FOUND                                                  syscall.Errno = 4200\n\tERROR_WMI_INSTANCE_NOT_FOUND                                              syscall.Errno = 4201\n\tERROR_WMI_ITEMID_NOT_FOUND                                                syscall.Errno = 4202\n\tERROR_WMI_TRY_AGAIN                                                       syscall.Errno = 4203\n\tERROR_WMI_DP_NOT_FOUND                                                    syscall.Errno = 4204\n\tERROR_WMI_UNRESOLVED_INSTANCE_REF                                         syscall.Errno = 4205\n\tERROR_WMI_ALREADY_ENABLED                                                 syscall.Errno = 4206\n\tERROR_WMI_GUID_DISCONNECTED                                               syscall.Errno = 4207\n\tERROR_WMI_SERVER_UNAVAILABLE                                              syscall.Errno = 4208\n\tERROR_WMI_DP_FAILED                                                       syscall.Errno = 4209\n\tERROR_WMI_INVALID_MOF                                                     syscall.Errno = 4210\n\tERROR_WMI_INVALID_REGINFO                                                 syscall.Errno = 4211\n\tERROR_WMI_ALREADY_DISABLED                                                syscall.Errno = 4212\n\tERROR_WMI_READ_ONLY                                                       syscall.Errno = 4213\n\tERROR_WMI_SET_FAILURE                                                     syscall.Errno = 4214\n\tERROR_NOT_APPCONTAINER                                                    syscall.Errno = 4250\n\tERROR_APPCONTAINER_REQUIRED                                               syscall.Errno = 4251\n\tERROR_NOT_SUPPORTED_IN_APPCONTAINER                                       syscall.Errno = 4252\n\tERROR_INVALID_PACKAGE_SID_LENGTH                                          syscall.Errno = 4253\n\tERROR_INVALID_MEDIA                                                       syscall.Errno = 4300\n\tERROR_INVALID_LIBRARY                                                     syscall.Errno = 4301\n\tERROR_INVALID_MEDIA_POOL                                                  syscall.Errno = 4302\n\tERROR_DRIVE_MEDIA_MISMATCH                                                syscall.Errno = 4303\n\tERROR_MEDIA_OFFLINE                                                       syscall.Errno = 4304\n\tERROR_LIBRARY_OFFLINE                                                     syscall.Errno = 4305\n\tERROR_EMPTY                                                               syscall.Errno = 4306\n\tERROR_NOT_EMPTY                                                           syscall.Errno = 4307\n\tERROR_MEDIA_UNAVAILABLE                                                   syscall.Errno = 4308\n\tERROR_RESOURCE_DISABLED                                                   syscall.Errno = 4309\n\tERROR_INVALID_CLEANER                                                     syscall.Errno = 4310\n\tERROR_UNABLE_TO_CLEAN                                                     syscall.Errno = 4311\n\tERROR_OBJECT_NOT_FOUND                                                    syscall.Errno = 4312\n\tERROR_DATABASE_FAILURE                                                    syscall.Errno = 4313\n\tERROR_DATABASE_FULL                                                       syscall.Errno = 4314\n\tERROR_MEDIA_INCOMPATIBLE                                                  syscall.Errno = 4315\n\tERROR_RESOURCE_NOT_PRESENT                                                syscall.Errno = 4316\n\tERROR_INVALID_OPERATION                                                   syscall.Errno = 4317\n\tERROR_MEDIA_NOT_AVAILABLE                                                 syscall.Errno = 4318\n\tERROR_DEVICE_NOT_AVAILABLE                                                syscall.Errno = 4319\n\tERROR_REQUEST_REFUSED                                                     syscall.Errno = 4320\n\tERROR_INVALID_DRIVE_OBJECT                                                syscall.Errno = 4321\n\tERROR_LIBRARY_FULL                                                        syscall.Errno = 4322\n\tERROR_MEDIUM_NOT_ACCESSIBLE                                               syscall.Errno = 4323\n\tERROR_UNABLE_TO_LOAD_MEDIUM                                               syscall.Errno = 4324\n\tERROR_UNABLE_TO_INVENTORY_DRIVE                                           syscall.Errno = 4325\n\tERROR_UNABLE_TO_INVENTORY_SLOT                                            syscall.Errno = 4326\n\tERROR_UNABLE_TO_INVENTORY_TRANSPORT                                       syscall.Errno = 4327\n\tERROR_TRANSPORT_FULL                                                      syscall.Errno = 4328\n\tERROR_CONTROLLING_IEPORT                                                  syscall.Errno = 4329\n\tERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA                                       syscall.Errno = 4330\n\tERROR_CLEANER_SLOT_SET                                                    syscall.Errno = 4331\n\tERROR_CLEANER_SLOT_NOT_SET                                                syscall.Errno = 4332\n\tERROR_CLEANER_CARTRIDGE_SPENT                                             syscall.Errno = 4333\n\tERROR_UNEXPECTED_OMID                                                     syscall.Errno = 4334\n\tERROR_CANT_DELETE_LAST_ITEM                                               syscall.Errno = 4335\n\tERROR_MESSAGE_EXCEEDS_MAX_SIZE                                            syscall.Errno = 4336\n\tERROR_VOLUME_CONTAINS_SYS_FILES                                           syscall.Errno = 4337\n\tERROR_INDIGENOUS_TYPE                                                     syscall.Errno = 4338\n\tERROR_NO_SUPPORTING_DRIVES                                                syscall.Errno = 4339\n\tERROR_CLEANER_CARTRIDGE_INSTALLED                                         syscall.Errno = 4340\n\tERROR_IEPORT_FULL                                                         syscall.Errno = 4341\n\tERROR_FILE_OFFLINE                                                        syscall.Errno = 4350\n\tERROR_REMOTE_STORAGE_NOT_ACTIVE                                           syscall.Errno = 4351\n\tERROR_REMOTE_STORAGE_MEDIA_ERROR                                          syscall.Errno = 4352\n\tERROR_NOT_A_REPARSE_POINT                                                 syscall.Errno = 4390\n\tERROR_REPARSE_ATTRIBUTE_CONFLICT                                          syscall.Errno = 4391\n\tERROR_INVALID_REPARSE_DATA                                                syscall.Errno = 4392\n\tERROR_REPARSE_TAG_INVALID                                                 syscall.Errno = 4393\n\tERROR_REPARSE_TAG_MISMATCH                                                syscall.Errno = 4394\n\tERROR_REPARSE_POINT_ENCOUNTERED                                           syscall.Errno = 4395\n\tERROR_APP_DATA_NOT_FOUND                                                  syscall.Errno = 4400\n\tERROR_APP_DATA_EXPIRED                                                    syscall.Errno = 4401\n\tERROR_APP_DATA_CORRUPT                                                    syscall.Errno = 4402\n\tERROR_APP_DATA_LIMIT_EXCEEDED                                             syscall.Errno = 4403\n\tERROR_APP_DATA_REBOOT_REQUIRED                                            syscall.Errno = 4404\n\tERROR_SECUREBOOT_ROLLBACK_DETECTED                                        syscall.Errno = 4420\n\tERROR_SECUREBOOT_POLICY_VIOLATION                                         syscall.Errno = 4421\n\tERROR_SECUREBOOT_INVALID_POLICY                                           syscall.Errno = 4422\n\tERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                               syscall.Errno = 4423\n\tERROR_SECUREBOOT_POLICY_NOT_SIGNED                                        syscall.Errno = 4424\n\tERROR_SECUREBOOT_NOT_ENABLED                                              syscall.Errno = 4425\n\tERROR_SECUREBOOT_FILE_REPLACED                                            syscall.Errno = 4426\n\tERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED                                    syscall.Errno = 4427\n\tERROR_SECUREBOOT_POLICY_UNKNOWN                                           syscall.Errno = 4428\n\tERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                       syscall.Errno = 4429\n\tERROR_SECUREBOOT_PLATFORM_ID_MISMATCH                                     syscall.Errno = 4430\n\tERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                 syscall.Errno = 4431\n\tERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                  syscall.Errno = 4432\n\tERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                             syscall.Errno = 4433\n\tERROR_SECUREBOOT_NOT_BASE_POLICY                                          syscall.Errno = 4434\n\tERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                  syscall.Errno = 4435\n\tERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED                                      syscall.Errno = 4440\n\tERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                     syscall.Errno = 4441\n\tERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED                                     syscall.Errno = 4442\n\tERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                    syscall.Errno = 4443\n\tERROR_ALREADY_HAS_STREAM_ID                                               syscall.Errno = 4444\n\tERROR_SMR_GARBAGE_COLLECTION_REQUIRED                                     syscall.Errno = 4445\n\tERROR_WOF_WIM_HEADER_CORRUPT                                              syscall.Errno = 4446\n\tERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT                                      syscall.Errno = 4447\n\tERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT                                     syscall.Errno = 4448\n\tERROR_VOLUME_NOT_SIS_ENABLED                                              syscall.Errno = 4500\n\tERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                  syscall.Errno = 4550\n\tERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION                                   syscall.Errno = 4551\n\tERROR_SYSTEM_INTEGRITY_INVALID_POLICY                                     syscall.Errno = 4552\n\tERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                  syscall.Errno = 4553\n\tERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                  syscall.Errno = 4554\n\tERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                 syscall.Errno = 4555\n\tERROR_VSM_NOT_INITIALIZED                                                 syscall.Errno = 4560\n\tERROR_VSM_DMA_PROTECTION_NOT_IN_USE                                       syscall.Errno = 4561\n\tERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED                                    syscall.Errno = 4570\n\tERROR_PLATFORM_MANIFEST_INVALID                                           syscall.Errno = 4571\n\tERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                               syscall.Errno = 4572\n\tERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                            syscall.Errno = 4573\n\tERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                               syscall.Errno = 4574\n\tERROR_PLATFORM_MANIFEST_NOT_ACTIVE                                        syscall.Errno = 4575\n\tERROR_PLATFORM_MANIFEST_NOT_SIGNED                                        syscall.Errno = 4576\n\tERROR_DEPENDENT_RESOURCE_EXISTS                                           syscall.Errno = 5001\n\tERROR_DEPENDENCY_NOT_FOUND                                                syscall.Errno = 5002\n\tERROR_DEPENDENCY_ALREADY_EXISTS                                           syscall.Errno = 5003\n\tERROR_RESOURCE_NOT_ONLINE                                                 syscall.Errno = 5004\n\tERROR_HOST_NODE_NOT_AVAILABLE                                             syscall.Errno = 5005\n\tERROR_RESOURCE_NOT_AVAILABLE                                              syscall.Errno = 5006\n\tERROR_RESOURCE_NOT_FOUND                                                  syscall.Errno = 5007\n\tERROR_SHUTDOWN_CLUSTER                                                    syscall.Errno = 5008\n\tERROR_CANT_EVICT_ACTIVE_NODE                                              syscall.Errno = 5009\n\tERROR_OBJECT_ALREADY_EXISTS                                               syscall.Errno = 5010\n\tERROR_OBJECT_IN_LIST                                                      syscall.Errno = 5011\n\tERROR_GROUP_NOT_AVAILABLE                                                 syscall.Errno = 5012\n\tERROR_GROUP_NOT_FOUND                                                     syscall.Errno = 5013\n\tERROR_GROUP_NOT_ONLINE                                                    syscall.Errno = 5014\n\tERROR_HOST_NODE_NOT_RESOURCE_OWNER                                        syscall.Errno = 5015\n\tERROR_HOST_NODE_NOT_GROUP_OWNER                                           syscall.Errno = 5016\n\tERROR_RESMON_CREATE_FAILED                                                syscall.Errno = 5017\n\tERROR_RESMON_ONLINE_FAILED                                                syscall.Errno = 5018\n\tERROR_RESOURCE_ONLINE                                                     syscall.Errno = 5019\n\tERROR_QUORUM_RESOURCE                                                     syscall.Errno = 5020\n\tERROR_NOT_QUORUM_CAPABLE                                                  syscall.Errno = 5021\n\tERROR_CLUSTER_SHUTTING_DOWN                                               syscall.Errno = 5022\n\tERROR_INVALID_STATE                                                       syscall.Errno = 5023\n\tERROR_RESOURCE_PROPERTIES_STORED                                          syscall.Errno = 5024\n\tERROR_NOT_QUORUM_CLASS                                                    syscall.Errno = 5025\n\tERROR_CORE_RESOURCE                                                       syscall.Errno = 5026\n\tERROR_QUORUM_RESOURCE_ONLINE_FAILED                                       syscall.Errno = 5027\n\tERROR_QUORUMLOG_OPEN_FAILED                                               syscall.Errno = 5028\n\tERROR_CLUSTERLOG_CORRUPT                                                  syscall.Errno = 5029\n\tERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE                                   syscall.Errno = 5030\n\tERROR_CLUSTERLOG_EXCEEDS_MAXSIZE                                          syscall.Errno = 5031\n\tERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND                                       syscall.Errno = 5032\n\tERROR_CLUSTERLOG_NOT_ENOUGH_SPACE                                         syscall.Errno = 5033\n\tERROR_QUORUM_OWNER_ALIVE                                                  syscall.Errno = 5034\n\tERROR_NETWORK_NOT_AVAILABLE                                               syscall.Errno = 5035\n\tERROR_NODE_NOT_AVAILABLE                                                  syscall.Errno = 5036\n\tERROR_ALL_NODES_NOT_AVAILABLE                                             syscall.Errno = 5037\n\tERROR_RESOURCE_FAILED                                                     syscall.Errno = 5038\n\tERROR_CLUSTER_INVALID_NODE                                                syscall.Errno = 5039\n\tERROR_CLUSTER_NODE_EXISTS                                                 syscall.Errno = 5040\n\tERROR_CLUSTER_JOIN_IN_PROGRESS                                            syscall.Errno = 5041\n\tERROR_CLUSTER_NODE_NOT_FOUND                                              syscall.Errno = 5042\n\tERROR_CLUSTER_LOCAL_NODE_NOT_FOUND                                        syscall.Errno = 5043\n\tERROR_CLUSTER_NETWORK_EXISTS                                              syscall.Errno = 5044\n\tERROR_CLUSTER_NETWORK_NOT_FOUND                                           syscall.Errno = 5045\n\tERROR_CLUSTER_NETINTERFACE_EXISTS                                         syscall.Errno = 5046\n\tERROR_CLUSTER_NETINTERFACE_NOT_FOUND                                      syscall.Errno = 5047\n\tERROR_CLUSTER_INVALID_REQUEST                                             syscall.Errno = 5048\n\tERROR_CLUSTER_INVALID_NETWORK_PROVIDER                                    syscall.Errno = 5049\n\tERROR_CLUSTER_NODE_DOWN                                                   syscall.Errno = 5050\n\tERROR_CLUSTER_NODE_UNREACHABLE                                            syscall.Errno = 5051\n\tERROR_CLUSTER_NODE_NOT_MEMBER                                             syscall.Errno = 5052\n\tERROR_CLUSTER_JOIN_NOT_IN_PROGRESS                                        syscall.Errno = 5053\n\tERROR_CLUSTER_INVALID_NETWORK                                             syscall.Errno = 5054\n\tERROR_CLUSTER_NODE_UP                                                     syscall.Errno = 5056\n\tERROR_CLUSTER_IPADDR_IN_USE                                               syscall.Errno = 5057\n\tERROR_CLUSTER_NODE_NOT_PAUSED                                             syscall.Errno = 5058\n\tERROR_CLUSTER_NO_SECURITY_CONTEXT                                         syscall.Errno = 5059\n\tERROR_CLUSTER_NETWORK_NOT_INTERNAL                                        syscall.Errno = 5060\n\tERROR_CLUSTER_NODE_ALREADY_UP                                             syscall.Errno = 5061\n\tERROR_CLUSTER_NODE_ALREADY_DOWN                                           syscall.Errno = 5062\n\tERROR_CLUSTER_NETWORK_ALREADY_ONLINE                                      syscall.Errno = 5063\n\tERROR_CLUSTER_NETWORK_ALREADY_OFFLINE                                     syscall.Errno = 5064\n\tERROR_CLUSTER_NODE_ALREADY_MEMBER                                         syscall.Errno = 5065\n\tERROR_CLUSTER_LAST_INTERNAL_NETWORK                                       syscall.Errno = 5066\n\tERROR_CLUSTER_NETWORK_HAS_DEPENDENTS                                      syscall.Errno = 5067\n\tERROR_INVALID_OPERATION_ON_QUORUM                                         syscall.Errno = 5068\n\tERROR_DEPENDENCY_NOT_ALLOWED                                              syscall.Errno = 5069\n\tERROR_CLUSTER_NODE_PAUSED                                                 syscall.Errno = 5070\n\tERROR_NODE_CANT_HOST_RESOURCE                                             syscall.Errno = 5071\n\tERROR_CLUSTER_NODE_NOT_READY                                              syscall.Errno = 5072\n\tERROR_CLUSTER_NODE_SHUTTING_DOWN                                          syscall.Errno = 5073\n\tERROR_CLUSTER_JOIN_ABORTED                                                syscall.Errno = 5074\n\tERROR_CLUSTER_INCOMPATIBLE_VERSIONS                                       syscall.Errno = 5075\n\tERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED                                syscall.Errno = 5076\n\tERROR_CLUSTER_SYSTEM_CONFIG_CHANGED                                       syscall.Errno = 5077\n\tERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND                                     syscall.Errno = 5078\n\tERROR_CLUSTER_RESTYPE_NOT_SUPPORTED                                       syscall.Errno = 5079\n\tERROR_CLUSTER_RESNAME_NOT_FOUND                                           syscall.Errno = 5080\n\tERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED                                  syscall.Errno = 5081\n\tERROR_CLUSTER_OWNER_NOT_IN_PREFLIST                                       syscall.Errno = 5082\n\tERROR_CLUSTER_DATABASE_SEQMISMATCH                                        syscall.Errno = 5083\n\tERROR_RESMON_INVALID_STATE                                                syscall.Errno = 5084\n\tERROR_CLUSTER_GUM_NOT_LOCKER                                              syscall.Errno = 5085\n\tERROR_QUORUM_DISK_NOT_FOUND                                               syscall.Errno = 5086\n\tERROR_DATABASE_BACKUP_CORRUPT                                             syscall.Errno = 5087\n\tERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT                                   syscall.Errno = 5088\n\tERROR_RESOURCE_PROPERTY_UNCHANGEABLE                                      syscall.Errno = 5089\n\tERROR_NO_ADMIN_ACCESS_POINT                                               syscall.Errno = 5090\n\tERROR_CLUSTER_MEMBERSHIP_INVALID_STATE                                    syscall.Errno = 5890\n\tERROR_CLUSTER_QUORUMLOG_NOT_FOUND                                         syscall.Errno = 5891\n\tERROR_CLUSTER_MEMBERSHIP_HALT                                             syscall.Errno = 5892\n\tERROR_CLUSTER_INSTANCE_ID_MISMATCH                                        syscall.Errno = 5893\n\tERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP                                    syscall.Errno = 5894\n\tERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH                                 syscall.Errno = 5895\n\tERROR_CLUSTER_EVICT_WITHOUT_CLEANUP                                       syscall.Errno = 5896\n\tERROR_CLUSTER_PARAMETER_MISMATCH                                          syscall.Errno = 5897\n\tERROR_NODE_CANNOT_BE_CLUSTERED                                            syscall.Errno = 5898\n\tERROR_CLUSTER_WRONG_OS_VERSION                                            syscall.Errno = 5899\n\tERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME                                syscall.Errno = 5900\n\tERROR_CLUSCFG_ALREADY_COMMITTED                                           syscall.Errno = 5901\n\tERROR_CLUSCFG_ROLLBACK_FAILED                                             syscall.Errno = 5902\n\tERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT                           syscall.Errno = 5903\n\tERROR_CLUSTER_OLD_VERSION                                                 syscall.Errno = 5904\n\tERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME                               syscall.Errno = 5905\n\tERROR_CLUSTER_NO_NET_ADAPTERS                                             syscall.Errno = 5906\n\tERROR_CLUSTER_POISONED                                                    syscall.Errno = 5907\n\tERROR_CLUSTER_GROUP_MOVING                                                syscall.Errno = 5908\n\tERROR_CLUSTER_RESOURCE_TYPE_BUSY                                          syscall.Errno = 5909\n\tERROR_RESOURCE_CALL_TIMED_OUT                                             syscall.Errno = 5910\n\tERROR_INVALID_CLUSTER_IPV6_ADDRESS                                        syscall.Errno = 5911\n\tERROR_CLUSTER_INTERNAL_INVALID_FUNCTION                                   syscall.Errno = 5912\n\tERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS                                     syscall.Errno = 5913\n\tERROR_CLUSTER_PARTIAL_SEND                                                syscall.Errno = 5914\n\tERROR_CLUSTER_REGISTRY_INVALID_FUNCTION                                   syscall.Errno = 5915\n\tERROR_CLUSTER_INVALID_STRING_TERMINATION                                  syscall.Errno = 5916\n\tERROR_CLUSTER_INVALID_STRING_FORMAT                                       syscall.Errno = 5917\n\tERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS                            syscall.Errno = 5918\n\tERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS                        syscall.Errno = 5919\n\tERROR_CLUSTER_NULL_DATA                                                   syscall.Errno = 5920\n\tERROR_CLUSTER_PARTIAL_READ                                                syscall.Errno = 5921\n\tERROR_CLUSTER_PARTIAL_WRITE                                               syscall.Errno = 5922\n\tERROR_CLUSTER_CANT_DESERIALIZE_DATA                                       syscall.Errno = 5923\n\tERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT                                syscall.Errno = 5924\n\tERROR_CLUSTER_NO_QUORUM                                                   syscall.Errno = 5925\n\tERROR_CLUSTER_INVALID_IPV6_NETWORK                                        syscall.Errno = 5926\n\tERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK                                 syscall.Errno = 5927\n\tERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP                                    syscall.Errno = 5928\n\tERROR_DEPENDENCY_TREE_TOO_COMPLEX                                         syscall.Errno = 5929\n\tERROR_EXCEPTION_IN_RESOURCE_CALL                                          syscall.Errno = 5930\n\tERROR_CLUSTER_RHS_FAILED_INITIALIZATION                                   syscall.Errno = 5931\n\tERROR_CLUSTER_NOT_INSTALLED                                               syscall.Errno = 5932\n\tERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE                   syscall.Errno = 5933\n\tERROR_CLUSTER_MAX_NODES_IN_CLUSTER                                        syscall.Errno = 5934\n\tERROR_CLUSTER_TOO_MANY_NODES                                              syscall.Errno = 5935\n\tERROR_CLUSTER_OBJECT_ALREADY_USED                                         syscall.Errno = 5936\n\tERROR_NONCORE_GROUPS_FOUND                                                syscall.Errno = 5937\n\tERROR_FILE_SHARE_RESOURCE_CONFLICT                                        syscall.Errno = 5938\n\tERROR_CLUSTER_EVICT_INVALID_REQUEST                                       syscall.Errno = 5939\n\tERROR_CLUSTER_SINGLETON_RESOURCE                                          syscall.Errno = 5940\n\tERROR_CLUSTER_GROUP_SINGLETON_RESOURCE                                    syscall.Errno = 5941\n\tERROR_CLUSTER_RESOURCE_PROVIDER_FAILED                                    syscall.Errno = 5942\n\tERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR                                syscall.Errno = 5943\n\tERROR_CLUSTER_GROUP_BUSY                                                  syscall.Errno = 5944\n\tERROR_CLUSTER_NOT_SHARED_VOLUME                                           syscall.Errno = 5945\n\tERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR                                 syscall.Errno = 5946\n\tERROR_CLUSTER_SHARED_VOLUMES_IN_USE                                       syscall.Errno = 5947\n\tERROR_CLUSTER_USE_SHARED_VOLUMES_API                                      syscall.Errno = 5948\n\tERROR_CLUSTER_BACKUP_IN_PROGRESS                                          syscall.Errno = 5949\n\tERROR_NON_CSV_PATH                                                        syscall.Errno = 5950\n\tERROR_CSV_VOLUME_NOT_LOCAL                                                syscall.Errno = 5951\n\tERROR_CLUSTER_WATCHDOG_TERMINATING                                        syscall.Errno = 5952\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES                     syscall.Errno = 5953\n\tERROR_CLUSTER_INVALID_NODE_WEIGHT                                         syscall.Errno = 5954\n\tERROR_CLUSTER_RESOURCE_VETOED_CALL                                        syscall.Errno = 5955\n\tERROR_RESMON_SYSTEM_RESOURCES_LACKING                                     syscall.Errno = 5956\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION    syscall.Errno = 5957\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE         syscall.Errno = 5958\n\tERROR_CLUSTER_GROUP_QUEUED                                                syscall.Errno = 5959\n\tERROR_CLUSTER_RESOURCE_LOCKED_STATUS                                      syscall.Errno = 5960\n\tERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED                          syscall.Errno = 5961\n\tERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS                                      syscall.Errno = 5962\n\tERROR_CLUSTER_DISK_NOT_CONNECTED                                          syscall.Errno = 5963\n\tERROR_DISK_NOT_CSV_CAPABLE                                                syscall.Errno = 5964\n\tERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE                                   syscall.Errno = 5965\n\tERROR_CLUSTER_SHARED_VOLUME_REDIRECTED                                    syscall.Errno = 5966\n\tERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED                                syscall.Errno = 5967\n\tERROR_CLUSTER_CANNOT_RETURN_PROPERTIES                                    syscall.Errno = 5968\n\tERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES  syscall.Errno = 5969\n\tERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE                             syscall.Errno = 5970\n\tERROR_CLUSTER_AFFINITY_CONFLICT                                           syscall.Errno = 5971\n\tERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE                         syscall.Errno = 5972\n\tERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS                               syscall.Errno = 5973\n\tERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED                            syscall.Errno = 5974\n\tERROR_CLUSTER_UPGRADE_RESTART_REQUIRED                                    syscall.Errno = 5975\n\tERROR_CLUSTER_UPGRADE_IN_PROGRESS                                         syscall.Errno = 5976\n\tERROR_CLUSTER_UPGRADE_INCOMPLETE                                          syscall.Errno = 5977\n\tERROR_CLUSTER_NODE_IN_GRACE_PERIOD                                        syscall.Errno = 5978\n\tERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT                                        syscall.Errno = 5979\n\tERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER                                      syscall.Errno = 5980\n\tERROR_CLUSTER_RESOURCE_NOT_MONITORED                                      syscall.Errno = 5981\n\tERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED                       syscall.Errno = 5982\n\tERROR_CLUSTER_RESOURCE_IS_REPLICATED                                      syscall.Errno = 5983\n\tERROR_CLUSTER_NODE_ISOLATED                                               syscall.Errno = 5984\n\tERROR_CLUSTER_NODE_QUARANTINED                                            syscall.Errno = 5985\n\tERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED                            syscall.Errno = 5986\n\tERROR_CLUSTER_SPACE_DEGRADED                                              syscall.Errno = 5987\n\tERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED                              syscall.Errno = 5988\n\tERROR_CLUSTER_CSV_INVALID_HANDLE                                          syscall.Errno = 5989\n\tERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                           syscall.Errno = 5990\n\tERROR_GROUPSET_NOT_AVAILABLE                                              syscall.Errno = 5991\n\tERROR_GROUPSET_NOT_FOUND                                                  syscall.Errno = 5992\n\tERROR_GROUPSET_CANT_PROVIDE                                               syscall.Errno = 5993\n\tERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND                               syscall.Errno = 5994\n\tERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY                              syscall.Errno = 5995\n\tERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION                          syscall.Errno = 5996\n\tERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS                          syscall.Errno = 5997\n\tERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME                      syscall.Errno = 5998\n\tERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE                           syscall.Errno = 5999\n\tERROR_ENCRYPTION_FAILED                                                   syscall.Errno = 6000\n\tERROR_DECRYPTION_FAILED                                                   syscall.Errno = 6001\n\tERROR_FILE_ENCRYPTED                                                      syscall.Errno = 6002\n\tERROR_NO_RECOVERY_POLICY                                                  syscall.Errno = 6003\n\tERROR_NO_EFS                                                              syscall.Errno = 6004\n\tERROR_WRONG_EFS                                                           syscall.Errno = 6005\n\tERROR_NO_USER_KEYS                                                        syscall.Errno = 6006\n\tERROR_FILE_NOT_ENCRYPTED                                                  syscall.Errno = 6007\n\tERROR_NOT_EXPORT_FORMAT                                                   syscall.Errno = 6008\n\tERROR_FILE_READ_ONLY                                                      syscall.Errno = 6009\n\tERROR_DIR_EFS_DISALLOWED                                                  syscall.Errno = 6010\n\tERROR_EFS_SERVER_NOT_TRUSTED                                              syscall.Errno = 6011\n\tERROR_BAD_RECOVERY_POLICY                                                 syscall.Errno = 6012\n\tERROR_EFS_ALG_BLOB_TOO_BIG                                                syscall.Errno = 6013\n\tERROR_VOLUME_NOT_SUPPORT_EFS                                              syscall.Errno = 6014\n\tERROR_EFS_DISABLED                                                        syscall.Errno = 6015\n\tERROR_EFS_VERSION_NOT_SUPPORT                                             syscall.Errno = 6016\n\tERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                               syscall.Errno = 6017\n\tERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER                                    syscall.Errno = 6018\n\tERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                               syscall.Errno = 6019\n\tERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                    syscall.Errno = 6020\n\tERROR_CS_ENCRYPTION_FILE_NOT_CSE                                          syscall.Errno = 6021\n\tERROR_ENCRYPTION_POLICY_DENIES_OPERATION                                  syscall.Errno = 6022\n\tERROR_WIP_ENCRYPTION_FAILED                                               syscall.Errno = 6023\n\tERROR_NO_BROWSER_SERVERS_FOUND                                            syscall.Errno = 6118\n\tSCHED_E_SERVICE_NOT_LOCALSYSTEM                                           syscall.Errno = 6200\n\tERROR_LOG_SECTOR_INVALID                                                  syscall.Errno = 6600\n\tERROR_LOG_SECTOR_PARITY_INVALID                                           syscall.Errno = 6601\n\tERROR_LOG_SECTOR_REMAPPED                                                 syscall.Errno = 6602\n\tERROR_LOG_BLOCK_INCOMPLETE                                                syscall.Errno = 6603\n\tERROR_LOG_INVALID_RANGE                                                   syscall.Errno = 6604\n\tERROR_LOG_BLOCKS_EXHAUSTED                                                syscall.Errno = 6605\n\tERROR_LOG_READ_CONTEXT_INVALID                                            syscall.Errno = 6606\n\tERROR_LOG_RESTART_INVALID                                                 syscall.Errno = 6607\n\tERROR_LOG_BLOCK_VERSION                                                   syscall.Errno = 6608\n\tERROR_LOG_BLOCK_INVALID                                                   syscall.Errno = 6609\n\tERROR_LOG_READ_MODE_INVALID                                               syscall.Errno = 6610\n\tERROR_LOG_NO_RESTART                                                      syscall.Errno = 6611\n\tERROR_LOG_METADATA_CORRUPT                                                syscall.Errno = 6612\n\tERROR_LOG_METADATA_INVALID                                                syscall.Errno = 6613\n\tERROR_LOG_METADATA_INCONSISTENT                                           syscall.Errno = 6614\n\tERROR_LOG_RESERVATION_INVALID                                             syscall.Errno = 6615\n\tERROR_LOG_CANT_DELETE                                                     syscall.Errno = 6616\n\tERROR_LOG_CONTAINER_LIMIT_EXCEEDED                                        syscall.Errno = 6617\n\tERROR_LOG_START_OF_LOG                                                    syscall.Errno = 6618\n\tERROR_LOG_POLICY_ALREADY_INSTALLED                                        syscall.Errno = 6619\n\tERROR_LOG_POLICY_NOT_INSTALLED                                            syscall.Errno = 6620\n\tERROR_LOG_POLICY_INVALID                                                  syscall.Errno = 6621\n\tERROR_LOG_POLICY_CONFLICT                                                 syscall.Errno = 6622\n\tERROR_LOG_PINNED_ARCHIVE_TAIL                                             syscall.Errno = 6623\n\tERROR_LOG_RECORD_NONEXISTENT                                              syscall.Errno = 6624\n\tERROR_LOG_RECORDS_RESERVED_INVALID                                        syscall.Errno = 6625\n\tERROR_LOG_SPACE_RESERVED_INVALID                                          syscall.Errno = 6626\n\tERROR_LOG_TAIL_INVALID                                                    syscall.Errno = 6627\n\tERROR_LOG_FULL                                                            syscall.Errno = 6628\n\tERROR_COULD_NOT_RESIZE_LOG                                                syscall.Errno = 6629\n\tERROR_LOG_MULTIPLEXED                                                     syscall.Errno = 6630\n\tERROR_LOG_DEDICATED                                                       syscall.Errno = 6631\n\tERROR_LOG_ARCHIVE_NOT_IN_PROGRESS                                         syscall.Errno = 6632\n\tERROR_LOG_ARCHIVE_IN_PROGRESS                                             syscall.Errno = 6633\n\tERROR_LOG_EPHEMERAL                                                       syscall.Errno = 6634\n\tERROR_LOG_NOT_ENOUGH_CONTAINERS                                           syscall.Errno = 6635\n\tERROR_LOG_CLIENT_ALREADY_REGISTERED                                       syscall.Errno = 6636\n\tERROR_LOG_CLIENT_NOT_REGISTERED                                           syscall.Errno = 6637\n\tERROR_LOG_FULL_HANDLER_IN_PROGRESS                                        syscall.Errno = 6638\n\tERROR_LOG_CONTAINER_READ_FAILED                                           syscall.Errno = 6639\n\tERROR_LOG_CONTAINER_WRITE_FAILED                                          syscall.Errno = 6640\n\tERROR_LOG_CONTAINER_OPEN_FAILED                                           syscall.Errno = 6641\n\tERROR_LOG_CONTAINER_STATE_INVALID                                         syscall.Errno = 6642\n\tERROR_LOG_STATE_INVALID                                                   syscall.Errno = 6643\n\tERROR_LOG_PINNED                                                          syscall.Errno = 6644\n\tERROR_LOG_METADATA_FLUSH_FAILED                                           syscall.Errno = 6645\n\tERROR_LOG_INCONSISTENT_SECURITY                                           syscall.Errno = 6646\n\tERROR_LOG_APPENDED_FLUSH_FAILED                                           syscall.Errno = 6647\n\tERROR_LOG_PINNED_RESERVATION                                              syscall.Errno = 6648\n\tERROR_INVALID_TRANSACTION                                                 syscall.Errno = 6700\n\tERROR_TRANSACTION_NOT_ACTIVE                                              syscall.Errno = 6701\n\tERROR_TRANSACTION_REQUEST_NOT_VALID                                       syscall.Errno = 6702\n\tERROR_TRANSACTION_NOT_REQUESTED                                           syscall.Errno = 6703\n\tERROR_TRANSACTION_ALREADY_ABORTED                                         syscall.Errno = 6704\n\tERROR_TRANSACTION_ALREADY_COMMITTED                                       syscall.Errno = 6705\n\tERROR_TM_INITIALIZATION_FAILED                                            syscall.Errno = 6706\n\tERROR_RESOURCEMANAGER_READ_ONLY                                           syscall.Errno = 6707\n\tERROR_TRANSACTION_NOT_JOINED                                              syscall.Errno = 6708\n\tERROR_TRANSACTION_SUPERIOR_EXISTS                                         syscall.Errno = 6709\n\tERROR_CRM_PROTOCOL_ALREADY_EXISTS                                         syscall.Errno = 6710\n\tERROR_TRANSACTION_PROPAGATION_FAILED                                      syscall.Errno = 6711\n\tERROR_CRM_PROTOCOL_NOT_FOUND                                              syscall.Errno = 6712\n\tERROR_TRANSACTION_INVALID_MARSHALL_BUFFER                                 syscall.Errno = 6713\n\tERROR_CURRENT_TRANSACTION_NOT_VALID                                       syscall.Errno = 6714\n\tERROR_TRANSACTION_NOT_FOUND                                               syscall.Errno = 6715\n\tERROR_RESOURCEMANAGER_NOT_FOUND                                           syscall.Errno = 6716\n\tERROR_ENLISTMENT_NOT_FOUND                                                syscall.Errno = 6717\n\tERROR_TRANSACTIONMANAGER_NOT_FOUND                                        syscall.Errno = 6718\n\tERROR_TRANSACTIONMANAGER_NOT_ONLINE                                       syscall.Errno = 6719\n\tERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                          syscall.Errno = 6720\n\tERROR_TRANSACTION_NOT_ROOT                                                syscall.Errno = 6721\n\tERROR_TRANSACTION_OBJECT_EXPIRED                                          syscall.Errno = 6722\n\tERROR_TRANSACTION_RESPONSE_NOT_ENLISTED                                   syscall.Errno = 6723\n\tERROR_TRANSACTION_RECORD_TOO_LONG                                         syscall.Errno = 6724\n\tERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED                                  syscall.Errno = 6725\n\tERROR_TRANSACTION_INTEGRITY_VIOLATED                                      syscall.Errno = 6726\n\tERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH                                syscall.Errno = 6727\n\tERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                    syscall.Errno = 6728\n\tERROR_TRANSACTION_MUST_WRITETHROUGH                                       syscall.Errno = 6729\n\tERROR_TRANSACTION_NO_SUPERIOR                                             syscall.Errno = 6730\n\tERROR_HEURISTIC_DAMAGE_POSSIBLE                                           syscall.Errno = 6731\n\tERROR_TRANSACTIONAL_CONFLICT                                              syscall.Errno = 6800\n\tERROR_RM_NOT_ACTIVE                                                       syscall.Errno = 6801\n\tERROR_RM_METADATA_CORRUPT                                                 syscall.Errno = 6802\n\tERROR_DIRECTORY_NOT_RM                                                    syscall.Errno = 6803\n\tERROR_TRANSACTIONS_UNSUPPORTED_REMOTE                                     syscall.Errno = 6805\n\tERROR_LOG_RESIZE_INVALID_SIZE                                             syscall.Errno = 6806\n\tERROR_OBJECT_NO_LONGER_EXISTS                                             syscall.Errno = 6807\n\tERROR_STREAM_MINIVERSION_NOT_FOUND                                        syscall.Errno = 6808\n\tERROR_STREAM_MINIVERSION_NOT_VALID                                        syscall.Errno = 6809\n\tERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                 syscall.Errno = 6810\n\tERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                            syscall.Errno = 6811\n\tERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS                                syscall.Errno = 6812\n\tERROR_REMOTE_FILE_VERSION_MISMATCH                                        syscall.Errno = 6814\n\tERROR_HANDLE_NO_LONGER_VALID                                              syscall.Errno = 6815\n\tERROR_NO_TXF_METADATA                                                     syscall.Errno = 6816\n\tERROR_LOG_CORRUPTION_DETECTED                                             syscall.Errno = 6817\n\tERROR_CANT_RECOVER_WITH_HANDLE_OPEN                                       syscall.Errno = 6818\n\tERROR_RM_DISCONNECTED                                                     syscall.Errno = 6819\n\tERROR_ENLISTMENT_NOT_SUPERIOR                                             syscall.Errno = 6820\n\tERROR_RECOVERY_NOT_NEEDED                                                 syscall.Errno = 6821\n\tERROR_RM_ALREADY_STARTED                                                  syscall.Errno = 6822\n\tERROR_FILE_IDENTITY_NOT_PERSISTENT                                        syscall.Errno = 6823\n\tERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                 syscall.Errno = 6824\n\tERROR_CANT_CROSS_RM_BOUNDARY                                              syscall.Errno = 6825\n\tERROR_TXF_DIR_NOT_EMPTY                                                   syscall.Errno = 6826\n\tERROR_INDOUBT_TRANSACTIONS_EXIST                                          syscall.Errno = 6827\n\tERROR_TM_VOLATILE                                                         syscall.Errno = 6828\n\tERROR_ROLLBACK_TIMER_EXPIRED                                              syscall.Errno = 6829\n\tERROR_TXF_ATTRIBUTE_CORRUPT                                               syscall.Errno = 6830\n\tERROR_EFS_NOT_ALLOWED_IN_TRANSACTION                                      syscall.Errno = 6831\n\tERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED                                      syscall.Errno = 6832\n\tERROR_LOG_GROWTH_FAILED                                                   syscall.Errno = 6833\n\tERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                               syscall.Errno = 6834\n\tERROR_TXF_METADATA_ALREADY_PRESENT                                        syscall.Errno = 6835\n\tERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                 syscall.Errno = 6836\n\tERROR_TRANSACTION_REQUIRED_PROMOTION                                      syscall.Errno = 6837\n\tERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                  syscall.Errno = 6838\n\tERROR_TRANSACTIONS_NOT_FROZEN                                             syscall.Errno = 6839\n\tERROR_TRANSACTION_FREEZE_IN_PROGRESS                                      syscall.Errno = 6840\n\tERROR_NOT_SNAPSHOT_VOLUME                                                 syscall.Errno = 6841\n\tERROR_NO_SAVEPOINT_WITH_OPEN_FILES                                        syscall.Errno = 6842\n\tERROR_DATA_LOST_REPAIR                                                    syscall.Errno = 6843\n\tERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                   syscall.Errno = 6844\n\tERROR_TM_IDENTITY_MISMATCH                                                syscall.Errno = 6845\n\tERROR_FLOATED_SECTION                                                     syscall.Errno = 6846\n\tERROR_CANNOT_ACCEPT_TRANSACTED_WORK                                       syscall.Errno = 6847\n\tERROR_CANNOT_ABORT_TRANSACTIONS                                           syscall.Errno = 6848\n\tERROR_BAD_CLUSTERS                                                        syscall.Errno = 6849\n\tERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                              syscall.Errno = 6850\n\tERROR_VOLUME_DIRTY                                                        syscall.Errno = 6851\n\tERROR_NO_LINK_TRACKING_IN_TRANSACTION                                     syscall.Errno = 6852\n\tERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                              syscall.Errno = 6853\n\tERROR_EXPIRED_HANDLE                                                      syscall.Errno = 6854\n\tERROR_TRANSACTION_NOT_ENLISTED                                            syscall.Errno = 6855\n\tERROR_CTX_WINSTATION_NAME_INVALID                                         syscall.Errno = 7001\n\tERROR_CTX_INVALID_PD                                                      syscall.Errno = 7002\n\tERROR_CTX_PD_NOT_FOUND                                                    syscall.Errno = 7003\n\tERROR_CTX_WD_NOT_FOUND                                                    syscall.Errno = 7004\n\tERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY                                      syscall.Errno = 7005\n\tERROR_CTX_SERVICE_NAME_COLLISION                                          syscall.Errno = 7006\n\tERROR_CTX_CLOSE_PENDING                                                   syscall.Errno = 7007\n\tERROR_CTX_NO_OUTBUF                                                       syscall.Errno = 7008\n\tERROR_CTX_MODEM_INF_NOT_FOUND                                             syscall.Errno = 7009\n\tERROR_CTX_INVALID_MODEMNAME                                               syscall.Errno = 7010\n\tERROR_CTX_MODEM_RESPONSE_ERROR                                            syscall.Errno = 7011\n\tERROR_CTX_MODEM_RESPONSE_TIMEOUT                                          syscall.Errno = 7012\n\tERROR_CTX_MODEM_RESPONSE_NO_CARRIER                                       syscall.Errno = 7013\n\tERROR_CTX_MODEM_RESPONSE_NO_DIALTONE                                      syscall.Errno = 7014\n\tERROR_CTX_MODEM_RESPONSE_BUSY                                             syscall.Errno = 7015\n\tERROR_CTX_MODEM_RESPONSE_VOICE                                            syscall.Errno = 7016\n\tERROR_CTX_TD_ERROR                                                        syscall.Errno = 7017\n\tERROR_CTX_WINSTATION_NOT_FOUND                                            syscall.Errno = 7022\n\tERROR_CTX_WINSTATION_ALREADY_EXISTS                                       syscall.Errno = 7023\n\tERROR_CTX_WINSTATION_BUSY                                                 syscall.Errno = 7024\n\tERROR_CTX_BAD_VIDEO_MODE                                                  syscall.Errno = 7025\n\tERROR_CTX_GRAPHICS_INVALID                                                syscall.Errno = 7035\n\tERROR_CTX_LOGON_DISABLED                                                  syscall.Errno = 7037\n\tERROR_CTX_NOT_CONSOLE                                                     syscall.Errno = 7038\n\tERROR_CTX_CLIENT_QUERY_TIMEOUT                                            syscall.Errno = 7040\n\tERROR_CTX_CONSOLE_DISCONNECT                                              syscall.Errno = 7041\n\tERROR_CTX_CONSOLE_CONNECT                                                 syscall.Errno = 7042\n\tERROR_CTX_SHADOW_DENIED                                                   syscall.Errno = 7044\n\tERROR_CTX_WINSTATION_ACCESS_DENIED                                        syscall.Errno = 7045\n\tERROR_CTX_INVALID_WD                                                      syscall.Errno = 7049\n\tERROR_CTX_SHADOW_INVALID                                                  syscall.Errno = 7050\n\tERROR_CTX_SHADOW_DISABLED                                                 syscall.Errno = 7051\n\tERROR_CTX_CLIENT_LICENSE_IN_USE                                           syscall.Errno = 7052\n\tERROR_CTX_CLIENT_LICENSE_NOT_SET                                          syscall.Errno = 7053\n\tERROR_CTX_LICENSE_NOT_AVAILABLE                                           syscall.Errno = 7054\n\tERROR_CTX_LICENSE_CLIENT_INVALID                                          syscall.Errno = 7055\n\tERROR_CTX_LICENSE_EXPIRED                                                 syscall.Errno = 7056\n\tERROR_CTX_SHADOW_NOT_RUNNING                                              syscall.Errno = 7057\n\tERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                     syscall.Errno = 7058\n\tERROR_ACTIVATION_COUNT_EXCEEDED                                           syscall.Errno = 7059\n\tERROR_CTX_WINSTATIONS_DISABLED                                            syscall.Errno = 7060\n\tERROR_CTX_ENCRYPTION_LEVEL_REQUIRED                                       syscall.Errno = 7061\n\tERROR_CTX_SESSION_IN_USE                                                  syscall.Errno = 7062\n\tERROR_CTX_NO_FORCE_LOGOFF                                                 syscall.Errno = 7063\n\tERROR_CTX_ACCOUNT_RESTRICTION                                             syscall.Errno = 7064\n\tERROR_RDP_PROTOCOL_ERROR                                                  syscall.Errno = 7065\n\tERROR_CTX_CDM_CONNECT                                                     syscall.Errno = 7066\n\tERROR_CTX_CDM_DISCONNECT                                                  syscall.Errno = 7067\n\tERROR_CTX_SECURITY_LAYER_ERROR                                            syscall.Errno = 7068\n\tERROR_TS_INCOMPATIBLE_SESSIONS                                            syscall.Errno = 7069\n\tERROR_TS_VIDEO_SUBSYSTEM_ERROR                                            syscall.Errno = 7070\n\tFRS_ERR_INVALID_API_SEQUENCE                                              syscall.Errno = 8001\n\tFRS_ERR_STARTING_SERVICE                                                  syscall.Errno = 8002\n\tFRS_ERR_STOPPING_SERVICE                                                  syscall.Errno = 8003\n\tFRS_ERR_INTERNAL_API                                                      syscall.Errno = 8004\n\tFRS_ERR_INTERNAL                                                          syscall.Errno = 8005\n\tFRS_ERR_SERVICE_COMM                                                      syscall.Errno = 8006\n\tFRS_ERR_INSUFFICIENT_PRIV                                                 syscall.Errno = 8007\n\tFRS_ERR_AUTHENTICATION                                                    syscall.Errno = 8008\n\tFRS_ERR_PARENT_INSUFFICIENT_PRIV                                          syscall.Errno = 8009\n\tFRS_ERR_PARENT_AUTHENTICATION                                             syscall.Errno = 8010\n\tFRS_ERR_CHILD_TO_PARENT_COMM                                              syscall.Errno = 8011\n\tFRS_ERR_PARENT_TO_CHILD_COMM                                              syscall.Errno = 8012\n\tFRS_ERR_SYSVOL_POPULATE                                                   syscall.Errno = 8013\n\tFRS_ERR_SYSVOL_POPULATE_TIMEOUT                                           syscall.Errno = 8014\n\tFRS_ERR_SYSVOL_IS_BUSY                                                    syscall.Errno = 8015\n\tFRS_ERR_SYSVOL_DEMOTE                                                     syscall.Errno = 8016\n\tFRS_ERR_INVALID_SERVICE_PARAMETER                                         syscall.Errno = 8017\n\tDS_S_SUCCESS                                                                            = ERROR_SUCCESS\n\tERROR_DS_NOT_INSTALLED                                                    syscall.Errno = 8200\n\tERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY                                     syscall.Errno = 8201\n\tERROR_DS_NO_ATTRIBUTE_OR_VALUE                                            syscall.Errno = 8202\n\tERROR_DS_INVALID_ATTRIBUTE_SYNTAX                                         syscall.Errno = 8203\n\tERROR_DS_ATTRIBUTE_TYPE_UNDEFINED                                         syscall.Errno = 8204\n\tERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS                                        syscall.Errno = 8205\n\tERROR_DS_BUSY                                                             syscall.Errno = 8206\n\tERROR_DS_UNAVAILABLE                                                      syscall.Errno = 8207\n\tERROR_DS_NO_RIDS_ALLOCATED                                                syscall.Errno = 8208\n\tERROR_DS_NO_MORE_RIDS                                                     syscall.Errno = 8209\n\tERROR_DS_INCORRECT_ROLE_OWNER                                             syscall.Errno = 8210\n\tERROR_DS_RIDMGR_INIT_ERROR                                                syscall.Errno = 8211\n\tERROR_DS_OBJ_CLASS_VIOLATION                                              syscall.Errno = 8212\n\tERROR_DS_CANT_ON_NON_LEAF                                                 syscall.Errno = 8213\n\tERROR_DS_CANT_ON_RDN                                                      syscall.Errno = 8214\n\tERROR_DS_CANT_MOD_OBJ_CLASS                                               syscall.Errno = 8215\n\tERROR_DS_CROSS_DOM_MOVE_ERROR                                             syscall.Errno = 8216\n\tERROR_DS_GC_NOT_AVAILABLE                                                 syscall.Errno = 8217\n\tERROR_SHARED_POLICY                                                       syscall.Errno = 8218\n\tERROR_POLICY_OBJECT_NOT_FOUND                                             syscall.Errno = 8219\n\tERROR_POLICY_ONLY_IN_DS                                                   syscall.Errno = 8220\n\tERROR_PROMOTION_ACTIVE                                                    syscall.Errno = 8221\n\tERROR_NO_PROMOTION_ACTIVE                                                 syscall.Errno = 8222\n\tERROR_DS_OPERATIONS_ERROR                                                 syscall.Errno = 8224\n\tERROR_DS_PROTOCOL_ERROR                                                   syscall.Errno = 8225\n\tERROR_DS_TIMELIMIT_EXCEEDED                                               syscall.Errno = 8226\n\tERROR_DS_SIZELIMIT_EXCEEDED                                               syscall.Errno = 8227\n\tERROR_DS_ADMIN_LIMIT_EXCEEDED                                             syscall.Errno = 8228\n\tERROR_DS_COMPARE_FALSE                                                    syscall.Errno = 8229\n\tERROR_DS_COMPARE_TRUE                                                     syscall.Errno = 8230\n\tERROR_DS_AUTH_METHOD_NOT_SUPPORTED                                        syscall.Errno = 8231\n\tERROR_DS_STRONG_AUTH_REQUIRED                                             syscall.Errno = 8232\n\tERROR_DS_INAPPROPRIATE_AUTH                                               syscall.Errno = 8233\n\tERROR_DS_AUTH_UNKNOWN                                                     syscall.Errno = 8234\n\tERROR_DS_REFERRAL                                                         syscall.Errno = 8235\n\tERROR_DS_UNAVAILABLE_CRIT_EXTENSION                                       syscall.Errno = 8236\n\tERROR_DS_CONFIDENTIALITY_REQUIRED                                         syscall.Errno = 8237\n\tERROR_DS_INAPPROPRIATE_MATCHING                                           syscall.Errno = 8238\n\tERROR_DS_CONSTRAINT_VIOLATION                                             syscall.Errno = 8239\n\tERROR_DS_NO_SUCH_OBJECT                                                   syscall.Errno = 8240\n\tERROR_DS_ALIAS_PROBLEM                                                    syscall.Errno = 8241\n\tERROR_DS_INVALID_DN_SYNTAX                                                syscall.Errno = 8242\n\tERROR_DS_IS_LEAF                                                          syscall.Errno = 8243\n\tERROR_DS_ALIAS_DEREF_PROBLEM                                              syscall.Errno = 8244\n\tERROR_DS_UNWILLING_TO_PERFORM                                             syscall.Errno = 8245\n\tERROR_DS_LOOP_DETECT                                                      syscall.Errno = 8246\n\tERROR_DS_NAMING_VIOLATION                                                 syscall.Errno = 8247\n\tERROR_DS_OBJECT_RESULTS_TOO_LARGE                                         syscall.Errno = 8248\n\tERROR_DS_AFFECTS_MULTIPLE_DSAS                                            syscall.Errno = 8249\n\tERROR_DS_SERVER_DOWN                                                      syscall.Errno = 8250\n\tERROR_DS_LOCAL_ERROR                                                      syscall.Errno = 8251\n\tERROR_DS_ENCODING_ERROR                                                   syscall.Errno = 8252\n\tERROR_DS_DECODING_ERROR                                                   syscall.Errno = 8253\n\tERROR_DS_FILTER_UNKNOWN                                                   syscall.Errno = 8254\n\tERROR_DS_PARAM_ERROR                                                      syscall.Errno = 8255\n\tERROR_DS_NOT_SUPPORTED                                                    syscall.Errno = 8256\n\tERROR_DS_NO_RESULTS_RETURNED                                              syscall.Errno = 8257\n\tERROR_DS_CONTROL_NOT_FOUND                                                syscall.Errno = 8258\n\tERROR_DS_CLIENT_LOOP                                                      syscall.Errno = 8259\n\tERROR_DS_REFERRAL_LIMIT_EXCEEDED                                          syscall.Errno = 8260\n\tERROR_DS_SORT_CONTROL_MISSING                                             syscall.Errno = 8261\n\tERROR_DS_OFFSET_RANGE_ERROR                                               syscall.Errno = 8262\n\tERROR_DS_RIDMGR_DISABLED                                                  syscall.Errno = 8263\n\tERROR_DS_ROOT_MUST_BE_NC                                                  syscall.Errno = 8301\n\tERROR_DS_ADD_REPLICA_INHIBITED                                            syscall.Errno = 8302\n\tERROR_DS_ATT_NOT_DEF_IN_SCHEMA                                            syscall.Errno = 8303\n\tERROR_DS_MAX_OBJ_SIZE_EXCEEDED                                            syscall.Errno = 8304\n\tERROR_DS_OBJ_STRING_NAME_EXISTS                                           syscall.Errno = 8305\n\tERROR_DS_NO_RDN_DEFINED_IN_SCHEMA                                         syscall.Errno = 8306\n\tERROR_DS_RDN_DOESNT_MATCH_SCHEMA                                          syscall.Errno = 8307\n\tERROR_DS_NO_REQUESTED_ATTS_FOUND                                          syscall.Errno = 8308\n\tERROR_DS_USER_BUFFER_TO_SMALL                                             syscall.Errno = 8309\n\tERROR_DS_ATT_IS_NOT_ON_OBJ                                                syscall.Errno = 8310\n\tERROR_DS_ILLEGAL_MOD_OPERATION                                            syscall.Errno = 8311\n\tERROR_DS_OBJ_TOO_LARGE                                                    syscall.Errno = 8312\n\tERROR_DS_BAD_INSTANCE_TYPE                                                syscall.Errno = 8313\n\tERROR_DS_MASTERDSA_REQUIRED                                               syscall.Errno = 8314\n\tERROR_DS_OBJECT_CLASS_REQUIRED                                            syscall.Errno = 8315\n\tERROR_DS_MISSING_REQUIRED_ATT                                             syscall.Errno = 8316\n\tERROR_DS_ATT_NOT_DEF_FOR_CLASS                                            syscall.Errno = 8317\n\tERROR_DS_ATT_ALREADY_EXISTS                                               syscall.Errno = 8318\n\tERROR_DS_CANT_ADD_ATT_VALUES                                              syscall.Errno = 8320\n\tERROR_DS_SINGLE_VALUE_CONSTRAINT                                          syscall.Errno = 8321\n\tERROR_DS_RANGE_CONSTRAINT                                                 syscall.Errno = 8322\n\tERROR_DS_ATT_VAL_ALREADY_EXISTS                                           syscall.Errno = 8323\n\tERROR_DS_CANT_REM_MISSING_ATT                                             syscall.Errno = 8324\n\tERROR_DS_CANT_REM_MISSING_ATT_VAL                                         syscall.Errno = 8325\n\tERROR_DS_ROOT_CANT_BE_SUBREF                                              syscall.Errno = 8326\n\tERROR_DS_NO_CHAINING                                                      syscall.Errno = 8327\n\tERROR_DS_NO_CHAINED_EVAL                                                  syscall.Errno = 8328\n\tERROR_DS_NO_PARENT_OBJECT                                                 syscall.Errno = 8329\n\tERROR_DS_PARENT_IS_AN_ALIAS                                               syscall.Errno = 8330\n\tERROR_DS_CANT_MIX_MASTER_AND_REPS                                         syscall.Errno = 8331\n\tERROR_DS_CHILDREN_EXIST                                                   syscall.Errno = 8332\n\tERROR_DS_OBJ_NOT_FOUND                                                    syscall.Errno = 8333\n\tERROR_DS_ALIASED_OBJ_MISSING                                              syscall.Errno = 8334\n\tERROR_DS_BAD_NAME_SYNTAX                                                  syscall.Errno = 8335\n\tERROR_DS_ALIAS_POINTS_TO_ALIAS                                            syscall.Errno = 8336\n\tERROR_DS_CANT_DEREF_ALIAS                                                 syscall.Errno = 8337\n\tERROR_DS_OUT_OF_SCOPE                                                     syscall.Errno = 8338\n\tERROR_DS_OBJECT_BEING_REMOVED                                             syscall.Errno = 8339\n\tERROR_DS_CANT_DELETE_DSA_OBJ                                              syscall.Errno = 8340\n\tERROR_DS_GENERIC_ERROR                                                    syscall.Errno = 8341\n\tERROR_DS_DSA_MUST_BE_INT_MASTER                                           syscall.Errno = 8342\n\tERROR_DS_CLASS_NOT_DSA                                                    syscall.Errno = 8343\n\tERROR_DS_INSUFF_ACCESS_RIGHTS                                             syscall.Errno = 8344\n\tERROR_DS_ILLEGAL_SUPERIOR                                                 syscall.Errno = 8345\n\tERROR_DS_ATTRIBUTE_OWNED_BY_SAM                                           syscall.Errno = 8346\n\tERROR_DS_NAME_TOO_MANY_PARTS                                              syscall.Errno = 8347\n\tERROR_DS_NAME_TOO_LONG                                                    syscall.Errno = 8348\n\tERROR_DS_NAME_VALUE_TOO_LONG                                              syscall.Errno = 8349\n\tERROR_DS_NAME_UNPARSEABLE                                                 syscall.Errno = 8350\n\tERROR_DS_NAME_TYPE_UNKNOWN                                                syscall.Errno = 8351\n\tERROR_DS_NOT_AN_OBJECT                                                    syscall.Errno = 8352\n\tERROR_DS_SEC_DESC_TOO_SHORT                                               syscall.Errno = 8353\n\tERROR_DS_SEC_DESC_INVALID                                                 syscall.Errno = 8354\n\tERROR_DS_NO_DELETED_NAME                                                  syscall.Errno = 8355\n\tERROR_DS_SUBREF_MUST_HAVE_PARENT                                          syscall.Errno = 8356\n\tERROR_DS_NCNAME_MUST_BE_NC                                                syscall.Errno = 8357\n\tERROR_DS_CANT_ADD_SYSTEM_ONLY                                             syscall.Errno = 8358\n\tERROR_DS_CLASS_MUST_BE_CONCRETE                                           syscall.Errno = 8359\n\tERROR_DS_INVALID_DMD                                                      syscall.Errno = 8360\n\tERROR_DS_OBJ_GUID_EXISTS                                                  syscall.Errno = 8361\n\tERROR_DS_NOT_ON_BACKLINK                                                  syscall.Errno = 8362\n\tERROR_DS_NO_CROSSREF_FOR_NC                                               syscall.Errno = 8363\n\tERROR_DS_SHUTTING_DOWN                                                    syscall.Errno = 8364\n\tERROR_DS_UNKNOWN_OPERATION                                                syscall.Errno = 8365\n\tERROR_DS_INVALID_ROLE_OWNER                                               syscall.Errno = 8366\n\tERROR_DS_COULDNT_CONTACT_FSMO                                             syscall.Errno = 8367\n\tERROR_DS_CROSS_NC_DN_RENAME                                               syscall.Errno = 8368\n\tERROR_DS_CANT_MOD_SYSTEM_ONLY                                             syscall.Errno = 8369\n\tERROR_DS_REPLICATOR_ONLY                                                  syscall.Errno = 8370\n\tERROR_DS_OBJ_CLASS_NOT_DEFINED                                            syscall.Errno = 8371\n\tERROR_DS_OBJ_CLASS_NOT_SUBCLASS                                           syscall.Errno = 8372\n\tERROR_DS_NAME_REFERENCE_INVALID                                           syscall.Errno = 8373\n\tERROR_DS_CROSS_REF_EXISTS                                                 syscall.Errno = 8374\n\tERROR_DS_CANT_DEL_MASTER_CROSSREF                                         syscall.Errno = 8375\n\tERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD                                       syscall.Errno = 8376\n\tERROR_DS_NOTIFY_FILTER_TOO_COMPLEX                                        syscall.Errno = 8377\n\tERROR_DS_DUP_RDN                                                          syscall.Errno = 8378\n\tERROR_DS_DUP_OID                                                          syscall.Errno = 8379\n\tERROR_DS_DUP_MAPI_ID                                                      syscall.Errno = 8380\n\tERROR_DS_DUP_SCHEMA_ID_GUID                                               syscall.Errno = 8381\n\tERROR_DS_DUP_LDAP_DISPLAY_NAME                                            syscall.Errno = 8382\n\tERROR_DS_SEMANTIC_ATT_TEST                                                syscall.Errno = 8383\n\tERROR_DS_SYNTAX_MISMATCH                                                  syscall.Errno = 8384\n\tERROR_DS_EXISTS_IN_MUST_HAVE                                              syscall.Errno = 8385\n\tERROR_DS_EXISTS_IN_MAY_HAVE                                               syscall.Errno = 8386\n\tERROR_DS_NONEXISTENT_MAY_HAVE                                             syscall.Errno = 8387\n\tERROR_DS_NONEXISTENT_MUST_HAVE                                            syscall.Errno = 8388\n\tERROR_DS_AUX_CLS_TEST_FAIL                                                syscall.Errno = 8389\n\tERROR_DS_NONEXISTENT_POSS_SUP                                             syscall.Errno = 8390\n\tERROR_DS_SUB_CLS_TEST_FAIL                                                syscall.Errno = 8391\n\tERROR_DS_BAD_RDN_ATT_ID_SYNTAX                                            syscall.Errno = 8392\n\tERROR_DS_EXISTS_IN_AUX_CLS                                                syscall.Errno = 8393\n\tERROR_DS_EXISTS_IN_SUB_CLS                                                syscall.Errno = 8394\n\tERROR_DS_EXISTS_IN_POSS_SUP                                               syscall.Errno = 8395\n\tERROR_DS_RECALCSCHEMA_FAILED                                              syscall.Errno = 8396\n\tERROR_DS_TREE_DELETE_NOT_FINISHED                                         syscall.Errno = 8397\n\tERROR_DS_CANT_DELETE                                                      syscall.Errno = 8398\n\tERROR_DS_ATT_SCHEMA_REQ_ID                                                syscall.Errno = 8399\n\tERROR_DS_BAD_ATT_SCHEMA_SYNTAX                                            syscall.Errno = 8400\n\tERROR_DS_CANT_CACHE_ATT                                                   syscall.Errno = 8401\n\tERROR_DS_CANT_CACHE_CLASS                                                 syscall.Errno = 8402\n\tERROR_DS_CANT_REMOVE_ATT_CACHE                                            syscall.Errno = 8403\n\tERROR_DS_CANT_REMOVE_CLASS_CACHE                                          syscall.Errno = 8404\n\tERROR_DS_CANT_RETRIEVE_DN                                                 syscall.Errno = 8405\n\tERROR_DS_MISSING_SUPREF                                                   syscall.Errno = 8406\n\tERROR_DS_CANT_RETRIEVE_INSTANCE                                           syscall.Errno = 8407\n\tERROR_DS_CODE_INCONSISTENCY                                               syscall.Errno = 8408\n\tERROR_DS_DATABASE_ERROR                                                   syscall.Errno = 8409\n\tERROR_DS_GOVERNSID_MISSING                                                syscall.Errno = 8410\n\tERROR_DS_MISSING_EXPECTED_ATT                                             syscall.Errno = 8411\n\tERROR_DS_NCNAME_MISSING_CR_REF                                            syscall.Errno = 8412\n\tERROR_DS_SECURITY_CHECKING_ERROR                                          syscall.Errno = 8413\n\tERROR_DS_SCHEMA_NOT_LOADED                                                syscall.Errno = 8414\n\tERROR_DS_SCHEMA_ALLOC_FAILED                                              syscall.Errno = 8415\n\tERROR_DS_ATT_SCHEMA_REQ_SYNTAX                                            syscall.Errno = 8416\n\tERROR_DS_GCVERIFY_ERROR                                                   syscall.Errno = 8417\n\tERROR_DS_DRA_SCHEMA_MISMATCH                                              syscall.Errno = 8418\n\tERROR_DS_CANT_FIND_DSA_OBJ                                                syscall.Errno = 8419\n\tERROR_DS_CANT_FIND_EXPECTED_NC                                            syscall.Errno = 8420\n\tERROR_DS_CANT_FIND_NC_IN_CACHE                                            syscall.Errno = 8421\n\tERROR_DS_CANT_RETRIEVE_CHILD                                              syscall.Errno = 8422\n\tERROR_DS_SECURITY_ILLEGAL_MODIFY                                          syscall.Errno = 8423\n\tERROR_DS_CANT_REPLACE_HIDDEN_REC                                          syscall.Errno = 8424\n\tERROR_DS_BAD_HIERARCHY_FILE                                               syscall.Errno = 8425\n\tERROR_DS_BUILD_HIERARCHY_TABLE_FAILED                                     syscall.Errno = 8426\n\tERROR_DS_CONFIG_PARAM_MISSING                                             syscall.Errno = 8427\n\tERROR_DS_COUNTING_AB_INDICES_FAILED                                       syscall.Errno = 8428\n\tERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED                                    syscall.Errno = 8429\n\tERROR_DS_INTERNAL_FAILURE                                                 syscall.Errno = 8430\n\tERROR_DS_UNKNOWN_ERROR                                                    syscall.Errno = 8431\n\tERROR_DS_ROOT_REQUIRES_CLASS_TOP                                          syscall.Errno = 8432\n\tERROR_DS_REFUSING_FSMO_ROLES                                              syscall.Errno = 8433\n\tERROR_DS_MISSING_FSMO_SETTINGS                                            syscall.Errno = 8434\n\tERROR_DS_UNABLE_TO_SURRENDER_ROLES                                        syscall.Errno = 8435\n\tERROR_DS_DRA_GENERIC                                                      syscall.Errno = 8436\n\tERROR_DS_DRA_INVALID_PARAMETER                                            syscall.Errno = 8437\n\tERROR_DS_DRA_BUSY                                                         syscall.Errno = 8438\n\tERROR_DS_DRA_BAD_DN                                                       syscall.Errno = 8439\n\tERROR_DS_DRA_BAD_NC                                                       syscall.Errno = 8440\n\tERROR_DS_DRA_DN_EXISTS                                                    syscall.Errno = 8441\n\tERROR_DS_DRA_INTERNAL_ERROR                                               syscall.Errno = 8442\n\tERROR_DS_DRA_INCONSISTENT_DIT                                             syscall.Errno = 8443\n\tERROR_DS_DRA_CONNECTION_FAILED                                            syscall.Errno = 8444\n\tERROR_DS_DRA_BAD_INSTANCE_TYPE                                            syscall.Errno = 8445\n\tERROR_DS_DRA_OUT_OF_MEM                                                   syscall.Errno = 8446\n\tERROR_DS_DRA_MAIL_PROBLEM                                                 syscall.Errno = 8447\n\tERROR_DS_DRA_REF_ALREADY_EXISTS                                           syscall.Errno = 8448\n\tERROR_DS_DRA_REF_NOT_FOUND                                                syscall.Errno = 8449\n\tERROR_DS_DRA_OBJ_IS_REP_SOURCE                                            syscall.Errno = 8450\n\tERROR_DS_DRA_DB_ERROR                                                     syscall.Errno = 8451\n\tERROR_DS_DRA_NO_REPLICA                                                   syscall.Errno = 8452\n\tERROR_DS_DRA_ACCESS_DENIED                                                syscall.Errno = 8453\n\tERROR_DS_DRA_NOT_SUPPORTED                                                syscall.Errno = 8454\n\tERROR_DS_DRA_RPC_CANCELLED                                                syscall.Errno = 8455\n\tERROR_DS_DRA_SOURCE_DISABLED                                              syscall.Errno = 8456\n\tERROR_DS_DRA_SINK_DISABLED                                                syscall.Errno = 8457\n\tERROR_DS_DRA_NAME_COLLISION                                               syscall.Errno = 8458\n\tERROR_DS_DRA_SOURCE_REINSTALLED                                           syscall.Errno = 8459\n\tERROR_DS_DRA_MISSING_PARENT                                               syscall.Errno = 8460\n\tERROR_DS_DRA_PREEMPTED                                                    syscall.Errno = 8461\n\tERROR_DS_DRA_ABANDON_SYNC                                                 syscall.Errno = 8462\n\tERROR_DS_DRA_SHUTDOWN                                                     syscall.Errno = 8463\n\tERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET                                     syscall.Errno = 8464\n\tERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA                                    syscall.Errno = 8465\n\tERROR_DS_DRA_EXTN_CONNECTION_FAILED                                       syscall.Errno = 8466\n\tERROR_DS_INSTALL_SCHEMA_MISMATCH                                          syscall.Errno = 8467\n\tERROR_DS_DUP_LINK_ID                                                      syscall.Errno = 8468\n\tERROR_DS_NAME_ERROR_RESOLVING                                             syscall.Errno = 8469\n\tERROR_DS_NAME_ERROR_NOT_FOUND                                             syscall.Errno = 8470\n\tERROR_DS_NAME_ERROR_NOT_UNIQUE                                            syscall.Errno = 8471\n\tERROR_DS_NAME_ERROR_NO_MAPPING                                            syscall.Errno = 8472\n\tERROR_DS_NAME_ERROR_DOMAIN_ONLY                                           syscall.Errno = 8473\n\tERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING                                syscall.Errno = 8474\n\tERROR_DS_CONSTRUCTED_ATT_MOD                                              syscall.Errno = 8475\n\tERROR_DS_WRONG_OM_OBJ_CLASS                                               syscall.Errno = 8476\n\tERROR_DS_DRA_REPL_PENDING                                                 syscall.Errno = 8477\n\tERROR_DS_DS_REQUIRED                                                      syscall.Errno = 8478\n\tERROR_DS_INVALID_LDAP_DISPLAY_NAME                                        syscall.Errno = 8479\n\tERROR_DS_NON_BASE_SEARCH                                                  syscall.Errno = 8480\n\tERROR_DS_CANT_RETRIEVE_ATTS                                               syscall.Errno = 8481\n\tERROR_DS_BACKLINK_WITHOUT_LINK                                            syscall.Errno = 8482\n\tERROR_DS_EPOCH_MISMATCH                                                   syscall.Errno = 8483\n\tERROR_DS_SRC_NAME_MISMATCH                                                syscall.Errno = 8484\n\tERROR_DS_SRC_AND_DST_NC_IDENTICAL                                         syscall.Errno = 8485\n\tERROR_DS_DST_NC_MISMATCH                                                  syscall.Errno = 8486\n\tERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC                                       syscall.Errno = 8487\n\tERROR_DS_SRC_GUID_MISMATCH                                                syscall.Errno = 8488\n\tERROR_DS_CANT_MOVE_DELETED_OBJECT                                         syscall.Errno = 8489\n\tERROR_DS_PDC_OPERATION_IN_PROGRESS                                        syscall.Errno = 8490\n\tERROR_DS_CROSS_DOMAIN_CLEANUP_REQD                                        syscall.Errno = 8491\n\tERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION                                      syscall.Errno = 8492\n\tERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS                                  syscall.Errno = 8493\n\tERROR_DS_NC_MUST_HAVE_NC_PARENT                                           syscall.Errno = 8494\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE                                        syscall.Errno = 8495\n\tERROR_DS_DST_DOMAIN_NOT_NATIVE                                            syscall.Errno = 8496\n\tERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER                                 syscall.Errno = 8497\n\tERROR_DS_CANT_MOVE_ACCOUNT_GROUP                                          syscall.Errno = 8498\n\tERROR_DS_CANT_MOVE_RESOURCE_GROUP                                         syscall.Errno = 8499\n\tERROR_DS_INVALID_SEARCH_FLAG                                              syscall.Errno = 8500\n\tERROR_DS_NO_TREE_DELETE_ABOVE_NC                                          syscall.Errno = 8501\n\tERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE                                     syscall.Errno = 8502\n\tERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE                         syscall.Errno = 8503\n\tERROR_DS_SAM_INIT_FAILURE                                                 syscall.Errno = 8504\n\tERROR_DS_SENSITIVE_GROUP_VIOLATION                                        syscall.Errno = 8505\n\tERROR_DS_CANT_MOD_PRIMARYGROUPID                                          syscall.Errno = 8506\n\tERROR_DS_ILLEGAL_BASE_SCHEMA_MOD                                          syscall.Errno = 8507\n\tERROR_DS_NONSAFE_SCHEMA_CHANGE                                            syscall.Errno = 8508\n\tERROR_DS_SCHEMA_UPDATE_DISALLOWED                                         syscall.Errno = 8509\n\tERROR_DS_CANT_CREATE_UNDER_SCHEMA                                         syscall.Errno = 8510\n\tERROR_DS_INSTALL_NO_SRC_SCH_VERSION                                       syscall.Errno = 8511\n\tERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE                                syscall.Errno = 8512\n\tERROR_DS_INVALID_GROUP_TYPE                                               syscall.Errno = 8513\n\tERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                               syscall.Errno = 8514\n\tERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                                syscall.Errno = 8515\n\tERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                    syscall.Errno = 8516\n\tERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                                syscall.Errno = 8517\n\tERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                 syscall.Errno = 8518\n\tERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                              syscall.Errno = 8519\n\tERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                         syscall.Errno = 8520\n\tERROR_DS_HAVE_PRIMARY_MEMBERS                                             syscall.Errno = 8521\n\tERROR_DS_STRING_SD_CONVERSION_FAILED                                      syscall.Errno = 8522\n\tERROR_DS_NAMING_MASTER_GC                                                 syscall.Errno = 8523\n\tERROR_DS_DNS_LOOKUP_FAILURE                                               syscall.Errno = 8524\n\tERROR_DS_COULDNT_UPDATE_SPNS                                              syscall.Errno = 8525\n\tERROR_DS_CANT_RETRIEVE_SD                                                 syscall.Errno = 8526\n\tERROR_DS_KEY_NOT_UNIQUE                                                   syscall.Errno = 8527\n\tERROR_DS_WRONG_LINKED_ATT_SYNTAX                                          syscall.Errno = 8528\n\tERROR_DS_SAM_NEED_BOOTKEY_PASSWORD                                        syscall.Errno = 8529\n\tERROR_DS_SAM_NEED_BOOTKEY_FLOPPY                                          syscall.Errno = 8530\n\tERROR_DS_CANT_START                                                       syscall.Errno = 8531\n\tERROR_DS_INIT_FAILURE                                                     syscall.Errno = 8532\n\tERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION                                     syscall.Errno = 8533\n\tERROR_DS_SOURCE_DOMAIN_IN_FOREST                                          syscall.Errno = 8534\n\tERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST                                 syscall.Errno = 8535\n\tERROR_DS_DESTINATION_AUDITING_NOT_ENABLED                                 syscall.Errno = 8536\n\tERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN                                      syscall.Errno = 8537\n\tERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER                                        syscall.Errno = 8538\n\tERROR_DS_SRC_SID_EXISTS_IN_FOREST                                         syscall.Errno = 8539\n\tERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH                                syscall.Errno = 8540\n\tERROR_SAM_INIT_FAILURE                                                    syscall.Errno = 8541\n\tERROR_DS_DRA_SCHEMA_INFO_SHIP                                             syscall.Errno = 8542\n\tERROR_DS_DRA_SCHEMA_CONFLICT                                              syscall.Errno = 8543\n\tERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT                                      syscall.Errno = 8544\n\tERROR_DS_DRA_OBJ_NC_MISMATCH                                              syscall.Errno = 8545\n\tERROR_DS_NC_STILL_HAS_DSAS                                                syscall.Errno = 8546\n\tERROR_DS_GC_REQUIRED                                                      syscall.Errno = 8547\n\tERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                       syscall.Errno = 8548\n\tERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                       syscall.Errno = 8549\n\tERROR_DS_CANT_ADD_TO_GC                                                   syscall.Errno = 8550\n\tERROR_DS_NO_CHECKPOINT_WITH_PDC                                           syscall.Errno = 8551\n\tERROR_DS_SOURCE_AUDITING_NOT_ENABLED                                      syscall.Errno = 8552\n\tERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC                                      syscall.Errno = 8553\n\tERROR_DS_INVALID_NAME_FOR_SPN                                             syscall.Errno = 8554\n\tERROR_DS_FILTER_USES_CONTRUCTED_ATTRS                                     syscall.Errno = 8555\n\tERROR_DS_UNICODEPWD_NOT_IN_QUOTES                                         syscall.Errno = 8556\n\tERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                   syscall.Errno = 8557\n\tERROR_DS_MUST_BE_RUN_ON_DST_DC                                            syscall.Errno = 8558\n\tERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER                                    syscall.Errno = 8559\n\tERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ                                    syscall.Errno = 8560\n\tERROR_DS_INIT_FAILURE_CONSOLE                                             syscall.Errno = 8561\n\tERROR_DS_SAM_INIT_FAILURE_CONSOLE                                         syscall.Errno = 8562\n\tERROR_DS_FOREST_VERSION_TOO_HIGH                                          syscall.Errno = 8563\n\tERROR_DS_DOMAIN_VERSION_TOO_HIGH                                          syscall.Errno = 8564\n\tERROR_DS_FOREST_VERSION_TOO_LOW                                           syscall.Errno = 8565\n\tERROR_DS_DOMAIN_VERSION_TOO_LOW                                           syscall.Errno = 8566\n\tERROR_DS_INCOMPATIBLE_VERSION                                             syscall.Errno = 8567\n\tERROR_DS_LOW_DSA_VERSION                                                  syscall.Errno = 8568\n\tERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN                               syscall.Errno = 8569\n\tERROR_DS_NOT_SUPPORTED_SORT_ORDER                                         syscall.Errno = 8570\n\tERROR_DS_NAME_NOT_UNIQUE                                                  syscall.Errno = 8571\n\tERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4                                   syscall.Errno = 8572\n\tERROR_DS_OUT_OF_VERSION_STORE                                             syscall.Errno = 8573\n\tERROR_DS_INCOMPATIBLE_CONTROLS_USED                                       syscall.Errno = 8574\n\tERROR_DS_NO_REF_DOMAIN                                                    syscall.Errno = 8575\n\tERROR_DS_RESERVED_LINK_ID                                                 syscall.Errno = 8576\n\tERROR_DS_LINK_ID_NOT_AVAILABLE                                            syscall.Errno = 8577\n\tERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                    syscall.Errno = 8578\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE                             syscall.Errno = 8579\n\tERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC                                      syscall.Errno = 8580\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG                                      syscall.Errno = 8581\n\tERROR_DS_MODIFYDN_WRONG_GRANDPARENT                                       syscall.Errno = 8582\n\tERROR_DS_NAME_ERROR_TRUST_REFERRAL                                        syscall.Errno = 8583\n\tERROR_NOT_SUPPORTED_ON_STANDARD_SERVER                                    syscall.Errno = 8584\n\tERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD                                    syscall.Errno = 8585\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2                                     syscall.Errno = 8586\n\tERROR_DS_THREAD_LIMIT_EXCEEDED                                            syscall.Errno = 8587\n\tERROR_DS_NOT_CLOSEST                                                      syscall.Errno = 8588\n\tERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF                               syscall.Errno = 8589\n\tERROR_DS_SINGLE_USER_MODE_FAILED                                          syscall.Errno = 8590\n\tERROR_DS_NTDSCRIPT_SYNTAX_ERROR                                           syscall.Errno = 8591\n\tERROR_DS_NTDSCRIPT_PROCESS_ERROR                                          syscall.Errno = 8592\n\tERROR_DS_DIFFERENT_REPL_EPOCHS                                            syscall.Errno = 8593\n\tERROR_DS_DRS_EXTENSIONS_CHANGED                                           syscall.Errno = 8594\n\tERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR                    syscall.Errno = 8595\n\tERROR_DS_NO_MSDS_INTID                                                    syscall.Errno = 8596\n\tERROR_DS_DUP_MSDS_INTID                                                   syscall.Errno = 8597\n\tERROR_DS_EXISTS_IN_RDNATTID                                               syscall.Errno = 8598\n\tERROR_DS_AUTHORIZATION_FAILED                                             syscall.Errno = 8599\n\tERROR_DS_INVALID_SCRIPT                                                   syscall.Errno = 8600\n\tERROR_DS_REMOTE_CROSSREF_OP_FAILED                                        syscall.Errno = 8601\n\tERROR_DS_CROSS_REF_BUSY                                                   syscall.Errno = 8602\n\tERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN                               syscall.Errno = 8603\n\tERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC                                    syscall.Errno = 8604\n\tERROR_DS_DUPLICATE_ID_FOUND                                               syscall.Errno = 8605\n\tERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT                               syscall.Errno = 8606\n\tERROR_DS_GROUP_CONVERSION_ERROR                                           syscall.Errno = 8607\n\tERROR_DS_CANT_MOVE_APP_BASIC_GROUP                                        syscall.Errno = 8608\n\tERROR_DS_CANT_MOVE_APP_QUERY_GROUP                                        syscall.Errno = 8609\n\tERROR_DS_ROLE_NOT_VERIFIED                                                syscall.Errno = 8610\n\tERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL                                  syscall.Errno = 8611\n\tERROR_DS_DOMAIN_RENAME_IN_PROGRESS                                        syscall.Errno = 8612\n\tERROR_DS_EXISTING_AD_CHILD_NC                                             syscall.Errno = 8613\n\tERROR_DS_REPL_LIFETIME_EXCEEDED                                           syscall.Errno = 8614\n\tERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER                                   syscall.Errno = 8615\n\tERROR_DS_LDAP_SEND_QUEUE_FULL                                             syscall.Errno = 8616\n\tERROR_DS_DRA_OUT_SCHEDULE_WINDOW                                          syscall.Errno = 8617\n\tERROR_DS_POLICY_NOT_KNOWN                                                 syscall.Errno = 8618\n\tERROR_NO_SITE_SETTINGS_OBJECT                                             syscall.Errno = 8619\n\tERROR_NO_SECRETS                                                          syscall.Errno = 8620\n\tERROR_NO_WRITABLE_DC_FOUND                                                syscall.Errno = 8621\n\tERROR_DS_NO_SERVER_OBJECT                                                 syscall.Errno = 8622\n\tERROR_DS_NO_NTDSA_OBJECT                                                  syscall.Errno = 8623\n\tERROR_DS_NON_ASQ_SEARCH                                                   syscall.Errno = 8624\n\tERROR_DS_AUDIT_FAILURE                                                    syscall.Errno = 8625\n\tERROR_DS_INVALID_SEARCH_FLAG_SUBTREE                                      syscall.Errno = 8626\n\tERROR_DS_INVALID_SEARCH_FLAG_TUPLE                                        syscall.Errno = 8627\n\tERROR_DS_HIERARCHY_TABLE_TOO_DEEP                                         syscall.Errno = 8628\n\tERROR_DS_DRA_CORRUPT_UTD_VECTOR                                           syscall.Errno = 8629\n\tERROR_DS_DRA_SECRETS_DENIED                                               syscall.Errno = 8630\n\tERROR_DS_RESERVED_MAPI_ID                                                 syscall.Errno = 8631\n\tERROR_DS_MAPI_ID_NOT_AVAILABLE                                            syscall.Errno = 8632\n\tERROR_DS_DRA_MISSING_KRBTGT_SECRET                                        syscall.Errno = 8633\n\tERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                     syscall.Errno = 8634\n\tERROR_DS_FLAT_NAME_EXISTS_IN_FOREST                                       syscall.Errno = 8635\n\tERROR_INVALID_USER_PRINCIPAL_NAME                                         syscall.Errno = 8636\n\tERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                               syscall.Errno = 8637\n\tERROR_DS_OID_NOT_FOUND                                                    syscall.Errno = 8638\n\tERROR_DS_DRA_RECYCLED_TARGET                                              syscall.Errno = 8639\n\tERROR_DS_DISALLOWED_NC_REDIRECT                                           syscall.Errno = 8640\n\tERROR_DS_HIGH_ADLDS_FFL                                                   syscall.Errno = 8641\n\tERROR_DS_HIGH_DSA_VERSION                                                 syscall.Errno = 8642\n\tERROR_DS_LOW_ADLDS_FFL                                                    syscall.Errno = 8643\n\tERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION                                syscall.Errno = 8644\n\tERROR_DS_UNDELETE_SAM_VALIDATION_FAILED                                   syscall.Errno = 8645\n\tERROR_INCORRECT_ACCOUNT_TYPE                                              syscall.Errno = 8646\n\tERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8647\n\tERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8648\n\tERROR_DS_MISSING_FOREST_TRUST                                             syscall.Errno = 8649\n\tERROR_DS_VALUE_KEY_NOT_UNIQUE                                             syscall.Errno = 8650\n\tDNS_ERROR_RESPONSE_CODES_BASE                                             syscall.Errno = 9000\n\tDNS_ERROR_RCODE_NO_ERROR                                                                = ERROR_SUCCESS\n\tDNS_ERROR_MASK                                                            syscall.Errno = 0x00002328\n\tDNS_ERROR_RCODE_FORMAT_ERROR                                              syscall.Errno = 9001\n\tDNS_ERROR_RCODE_SERVER_FAILURE                                            syscall.Errno = 9002\n\tDNS_ERROR_RCODE_NAME_ERROR                                                syscall.Errno = 9003\n\tDNS_ERROR_RCODE_NOT_IMPLEMENTED                                           syscall.Errno = 9004\n\tDNS_ERROR_RCODE_REFUSED                                                   syscall.Errno = 9005\n\tDNS_ERROR_RCODE_YXDOMAIN                                                  syscall.Errno = 9006\n\tDNS_ERROR_RCODE_YXRRSET                                                   syscall.Errno = 9007\n\tDNS_ERROR_RCODE_NXRRSET                                                   syscall.Errno = 9008\n\tDNS_ERROR_RCODE_NOTAUTH                                                   syscall.Errno = 9009\n\tDNS_ERROR_RCODE_NOTZONE                                                   syscall.Errno = 9010\n\tDNS_ERROR_RCODE_BADSIG                                                    syscall.Errno = 9016\n\tDNS_ERROR_RCODE_BADKEY                                                    syscall.Errno = 9017\n\tDNS_ERROR_RCODE_BADTIME                                                   syscall.Errno = 9018\n\tDNS_ERROR_RCODE_LAST                                                                    = DNS_ERROR_RCODE_BADTIME\n\tDNS_ERROR_DNSSEC_BASE                                                     syscall.Errno = 9100\n\tDNS_ERROR_KEYMASTER_REQUIRED                                              syscall.Errno = 9101\n\tDNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE                                      syscall.Errno = 9102\n\tDNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1                                syscall.Errno = 9103\n\tDNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS                              syscall.Errno = 9104\n\tDNS_ERROR_UNSUPPORTED_ALGORITHM                                           syscall.Errno = 9105\n\tDNS_ERROR_INVALID_KEY_SIZE                                                syscall.Errno = 9106\n\tDNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE                                      syscall.Errno = 9107\n\tDNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION                                 syscall.Errno = 9108\n\tDNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR                                syscall.Errno = 9109\n\tDNS_ERROR_UNEXPECTED_CNG_ERROR                                            syscall.Errno = 9110\n\tDNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION                               syscall.Errno = 9111\n\tDNS_ERROR_KSP_NOT_ACCESSIBLE                                              syscall.Errno = 9112\n\tDNS_ERROR_TOO_MANY_SKDS                                                   syscall.Errno = 9113\n\tDNS_ERROR_INVALID_ROLLOVER_PERIOD                                         syscall.Errno = 9114\n\tDNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET                                 syscall.Errno = 9115\n\tDNS_ERROR_ROLLOVER_IN_PROGRESS                                            syscall.Errno = 9116\n\tDNS_ERROR_STANDBY_KEY_NOT_PRESENT                                         syscall.Errno = 9117\n\tDNS_ERROR_NOT_ALLOWED_ON_ZSK                                              syscall.Errno = 9118\n\tDNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD                                       syscall.Errno = 9119\n\tDNS_ERROR_ROLLOVER_ALREADY_QUEUED                                         syscall.Errno = 9120\n\tDNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE                                    syscall.Errno = 9121\n\tDNS_ERROR_BAD_KEYMASTER                                                   syscall.Errno = 9122\n\tDNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD                               syscall.Errno = 9123\n\tDNS_ERROR_INVALID_NSEC3_ITERATION_COUNT                                   syscall.Errno = 9124\n\tDNS_ERROR_DNSSEC_IS_DISABLED                                              syscall.Errno = 9125\n\tDNS_ERROR_INVALID_XML                                                     syscall.Errno = 9126\n\tDNS_ERROR_NO_VALID_TRUST_ANCHORS                                          syscall.Errno = 9127\n\tDNS_ERROR_ROLLOVER_NOT_POKEABLE                                           syscall.Errno = 9128\n\tDNS_ERROR_NSEC3_NAME_COLLISION                                            syscall.Errno = 9129\n\tDNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1                           syscall.Errno = 9130\n\tDNS_ERROR_PACKET_FMT_BASE                                                 syscall.Errno = 9500\n\tDNS_INFO_NO_RECORDS                                                       syscall.Errno = 9501\n\tDNS_ERROR_BAD_PACKET                                                      syscall.Errno = 9502\n\tDNS_ERROR_NO_PACKET                                                       syscall.Errno = 9503\n\tDNS_ERROR_RCODE                                                           syscall.Errno = 9504\n\tDNS_ERROR_UNSECURE_PACKET                                                 syscall.Errno = 9505\n\tDNS_STATUS_PACKET_UNSECURE                                                              = DNS_ERROR_UNSECURE_PACKET\n\tDNS_REQUEST_PENDING                                                       syscall.Errno = 9506\n\tDNS_ERROR_NO_MEMORY                                                                     = ERROR_OUTOFMEMORY\n\tDNS_ERROR_INVALID_NAME                                                                  = ERROR_INVALID_NAME\n\tDNS_ERROR_INVALID_DATA                                                                  = ERROR_INVALID_DATA\n\tDNS_ERROR_GENERAL_API_BASE                                                syscall.Errno = 9550\n\tDNS_ERROR_INVALID_TYPE                                                    syscall.Errno = 9551\n\tDNS_ERROR_INVALID_IP_ADDRESS                                              syscall.Errno = 9552\n\tDNS_ERROR_INVALID_PROPERTY                                                syscall.Errno = 9553\n\tDNS_ERROR_TRY_AGAIN_LATER                                                 syscall.Errno = 9554\n\tDNS_ERROR_NOT_UNIQUE                                                      syscall.Errno = 9555\n\tDNS_ERROR_NON_RFC_NAME                                                    syscall.Errno = 9556\n\tDNS_STATUS_FQDN                                                           syscall.Errno = 9557\n\tDNS_STATUS_DOTTED_NAME                                                    syscall.Errno = 9558\n\tDNS_STATUS_SINGLE_PART_NAME                                               syscall.Errno = 9559\n\tDNS_ERROR_INVALID_NAME_CHAR                                               syscall.Errno = 9560\n\tDNS_ERROR_NUMERIC_NAME                                                    syscall.Errno = 9561\n\tDNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER                                      syscall.Errno = 9562\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION                                    syscall.Errno = 9563\n\tDNS_ERROR_CANNOT_FIND_ROOT_HINTS                                          syscall.Errno = 9564\n\tDNS_ERROR_INCONSISTENT_ROOT_HINTS                                         syscall.Errno = 9565\n\tDNS_ERROR_DWORD_VALUE_TOO_SMALL                                           syscall.Errno = 9566\n\tDNS_ERROR_DWORD_VALUE_TOO_LARGE                                           syscall.Errno = 9567\n\tDNS_ERROR_BACKGROUND_LOADING                                              syscall.Errno = 9568\n\tDNS_ERROR_NOT_ALLOWED_ON_RODC                                             syscall.Errno = 9569\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DNAME                                         syscall.Errno = 9570\n\tDNS_ERROR_DELEGATION_REQUIRED                                             syscall.Errno = 9571\n\tDNS_ERROR_INVALID_POLICY_TABLE                                            syscall.Errno = 9572\n\tDNS_ERROR_ADDRESS_REQUIRED                                                syscall.Errno = 9573\n\tDNS_ERROR_ZONE_BASE                                                       syscall.Errno = 9600\n\tDNS_ERROR_ZONE_DOES_NOT_EXIST                                             syscall.Errno = 9601\n\tDNS_ERROR_NO_ZONE_INFO                                                    syscall.Errno = 9602\n\tDNS_ERROR_INVALID_ZONE_OPERATION                                          syscall.Errno = 9603\n\tDNS_ERROR_ZONE_CONFIGURATION_ERROR                                        syscall.Errno = 9604\n\tDNS_ERROR_ZONE_HAS_NO_SOA_RECORD                                          syscall.Errno = 9605\n\tDNS_ERROR_ZONE_HAS_NO_NS_RECORDS                                          syscall.Errno = 9606\n\tDNS_ERROR_ZONE_LOCKED                                                     syscall.Errno = 9607\n\tDNS_ERROR_ZONE_CREATION_FAILED                                            syscall.Errno = 9608\n\tDNS_ERROR_ZONE_ALREADY_EXISTS                                             syscall.Errno = 9609\n\tDNS_ERROR_AUTOZONE_ALREADY_EXISTS                                         syscall.Errno = 9610\n\tDNS_ERROR_INVALID_ZONE_TYPE                                               syscall.Errno = 9611\n\tDNS_ERROR_SECONDARY_REQUIRES_MASTER_IP                                    syscall.Errno = 9612\n\tDNS_ERROR_ZONE_NOT_SECONDARY                                              syscall.Errno = 9613\n\tDNS_ERROR_NEED_SECONDARY_ADDRESSES                                        syscall.Errno = 9614\n\tDNS_ERROR_WINS_INIT_FAILED                                                syscall.Errno = 9615\n\tDNS_ERROR_NEED_WINS_SERVERS                                               syscall.Errno = 9616\n\tDNS_ERROR_NBSTAT_INIT_FAILED                                              syscall.Errno = 9617\n\tDNS_ERROR_SOA_DELETE_INVALID                                              syscall.Errno = 9618\n\tDNS_ERROR_FORWARDER_ALREADY_EXISTS                                        syscall.Errno = 9619\n\tDNS_ERROR_ZONE_REQUIRES_MASTER_IP                                         syscall.Errno = 9620\n\tDNS_ERROR_ZONE_IS_SHUTDOWN                                                syscall.Errno = 9621\n\tDNS_ERROR_ZONE_LOCKED_FOR_SIGNING                                         syscall.Errno = 9622\n\tDNS_ERROR_DATAFILE_BASE                                                   syscall.Errno = 9650\n\tDNS_ERROR_PRIMARY_REQUIRES_DATAFILE                                       syscall.Errno = 9651\n\tDNS_ERROR_INVALID_DATAFILE_NAME                                           syscall.Errno = 9652\n\tDNS_ERROR_DATAFILE_OPEN_FAILURE                                           syscall.Errno = 9653\n\tDNS_ERROR_FILE_WRITEBACK_FAILED                                           syscall.Errno = 9654\n\tDNS_ERROR_DATAFILE_PARSING                                                syscall.Errno = 9655\n\tDNS_ERROR_DATABASE_BASE                                                   syscall.Errno = 9700\n\tDNS_ERROR_RECORD_DOES_NOT_EXIST                                           syscall.Errno = 9701\n\tDNS_ERROR_RECORD_FORMAT                                                   syscall.Errno = 9702\n\tDNS_ERROR_NODE_CREATION_FAILED                                            syscall.Errno = 9703\n\tDNS_ERROR_UNKNOWN_RECORD_TYPE                                             syscall.Errno = 9704\n\tDNS_ERROR_RECORD_TIMED_OUT                                                syscall.Errno = 9705\n\tDNS_ERROR_NAME_NOT_IN_ZONE                                                syscall.Errno = 9706\n\tDNS_ERROR_CNAME_LOOP                                                      syscall.Errno = 9707\n\tDNS_ERROR_NODE_IS_CNAME                                                   syscall.Errno = 9708\n\tDNS_ERROR_CNAME_COLLISION                                                 syscall.Errno = 9709\n\tDNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT                                        syscall.Errno = 9710\n\tDNS_ERROR_RECORD_ALREADY_EXISTS                                           syscall.Errno = 9711\n\tDNS_ERROR_SECONDARY_DATA                                                  syscall.Errno = 9712\n\tDNS_ERROR_NO_CREATE_CACHE_DATA                                            syscall.Errno = 9713\n\tDNS_ERROR_NAME_DOES_NOT_EXIST                                             syscall.Errno = 9714\n\tDNS_WARNING_PTR_CREATE_FAILED                                             syscall.Errno = 9715\n\tDNS_WARNING_DOMAIN_UNDELETED                                              syscall.Errno = 9716\n\tDNS_ERROR_DS_UNAVAILABLE                                                  syscall.Errno = 9717\n\tDNS_ERROR_DS_ZONE_ALREADY_EXISTS                                          syscall.Errno = 9718\n\tDNS_ERROR_NO_BOOTFILE_IF_DS_ZONE                                          syscall.Errno = 9719\n\tDNS_ERROR_NODE_IS_DNAME                                                   syscall.Errno = 9720\n\tDNS_ERROR_DNAME_COLLISION                                                 syscall.Errno = 9721\n\tDNS_ERROR_ALIAS_LOOP                                                      syscall.Errno = 9722\n\tDNS_ERROR_OPERATION_BASE                                                  syscall.Errno = 9750\n\tDNS_INFO_AXFR_COMPLETE                                                    syscall.Errno = 9751\n\tDNS_ERROR_AXFR                                                            syscall.Errno = 9752\n\tDNS_INFO_ADDED_LOCAL_WINS                                                 syscall.Errno = 9753\n\tDNS_ERROR_SECURE_BASE                                                     syscall.Errno = 9800\n\tDNS_STATUS_CONTINUE_NEEDED                                                syscall.Errno = 9801\n\tDNS_ERROR_SETUP_BASE                                                      syscall.Errno = 9850\n\tDNS_ERROR_NO_TCPIP                                                        syscall.Errno = 9851\n\tDNS_ERROR_NO_DNS_SERVERS                                                  syscall.Errno = 9852\n\tDNS_ERROR_DP_BASE                                                         syscall.Errno = 9900\n\tDNS_ERROR_DP_DOES_NOT_EXIST                                               syscall.Errno = 9901\n\tDNS_ERROR_DP_ALREADY_EXISTS                                               syscall.Errno = 9902\n\tDNS_ERROR_DP_NOT_ENLISTED                                                 syscall.Errno = 9903\n\tDNS_ERROR_DP_ALREADY_ENLISTED                                             syscall.Errno = 9904\n\tDNS_ERROR_DP_NOT_AVAILABLE                                                syscall.Errno = 9905\n\tDNS_ERROR_DP_FSMO_ERROR                                                   syscall.Errno = 9906\n\tDNS_ERROR_RRL_NOT_ENABLED                                                 syscall.Errno = 9911\n\tDNS_ERROR_RRL_INVALID_WINDOW_SIZE                                         syscall.Errno = 9912\n\tDNS_ERROR_RRL_INVALID_IPV4_PREFIX                                         syscall.Errno = 9913\n\tDNS_ERROR_RRL_INVALID_IPV6_PREFIX                                         syscall.Errno = 9914\n\tDNS_ERROR_RRL_INVALID_TC_RATE                                             syscall.Errno = 9915\n\tDNS_ERROR_RRL_INVALID_LEAK_RATE                                           syscall.Errno = 9916\n\tDNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE                                  syscall.Errno = 9917\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS                          syscall.Errno = 9921\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST                          syscall.Errno = 9922\n\tDNS_ERROR_VIRTUALIZATION_TREE_LOCKED                                      syscall.Errno = 9923\n\tDNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME                            syscall.Errno = 9924\n\tDNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE                                 syscall.Errno = 9925\n\tDNS_ERROR_ZONESCOPE_ALREADY_EXISTS                                        syscall.Errno = 9951\n\tDNS_ERROR_ZONESCOPE_DOES_NOT_EXIST                                        syscall.Errno = 9952\n\tDNS_ERROR_DEFAULT_ZONESCOPE                                               syscall.Errno = 9953\n\tDNS_ERROR_INVALID_ZONESCOPE_NAME                                          syscall.Errno = 9954\n\tDNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES                                     syscall.Errno = 9955\n\tDNS_ERROR_LOAD_ZONESCOPE_FAILED                                           syscall.Errno = 9956\n\tDNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED                                 syscall.Errno = 9957\n\tDNS_ERROR_INVALID_SCOPE_NAME                                              syscall.Errno = 9958\n\tDNS_ERROR_SCOPE_DOES_NOT_EXIST                                            syscall.Errno = 9959\n\tDNS_ERROR_DEFAULT_SCOPE                                                   syscall.Errno = 9960\n\tDNS_ERROR_INVALID_SCOPE_OPERATION                                         syscall.Errno = 9961\n\tDNS_ERROR_SCOPE_LOCKED                                                    syscall.Errno = 9962\n\tDNS_ERROR_SCOPE_ALREADY_EXISTS                                            syscall.Errno = 9963\n\tDNS_ERROR_POLICY_ALREADY_EXISTS                                           syscall.Errno = 9971\n\tDNS_ERROR_POLICY_DOES_NOT_EXIST                                           syscall.Errno = 9972\n\tDNS_ERROR_POLICY_INVALID_CRITERIA                                         syscall.Errno = 9973\n\tDNS_ERROR_POLICY_INVALID_SETTINGS                                         syscall.Errno = 9974\n\tDNS_ERROR_CLIENT_SUBNET_IS_ACCESSED                                       syscall.Errno = 9975\n\tDNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST                                    syscall.Errno = 9976\n\tDNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS                                    syscall.Errno = 9977\n\tDNS_ERROR_SUBNET_DOES_NOT_EXIST                                           syscall.Errno = 9978\n\tDNS_ERROR_SUBNET_ALREADY_EXISTS                                           syscall.Errno = 9979\n\tDNS_ERROR_POLICY_LOCKED                                                   syscall.Errno = 9980\n\tDNS_ERROR_POLICY_INVALID_WEIGHT                                           syscall.Errno = 9981\n\tDNS_ERROR_POLICY_INVALID_NAME                                             syscall.Errno = 9982\n\tDNS_ERROR_POLICY_MISSING_CRITERIA                                         syscall.Errno = 9983\n\tDNS_ERROR_INVALID_CLIENT_SUBNET_NAME                                      syscall.Errno = 9984\n\tDNS_ERROR_POLICY_PROCESSING_ORDER_INVALID                                 syscall.Errno = 9985\n\tDNS_ERROR_POLICY_SCOPE_MISSING                                            syscall.Errno = 9986\n\tDNS_ERROR_POLICY_SCOPE_NOT_ALLOWED                                        syscall.Errno = 9987\n\tDNS_ERROR_SERVERSCOPE_IS_REFERENCED                                       syscall.Errno = 9988\n\tDNS_ERROR_ZONESCOPE_IS_REFERENCED                                         syscall.Errno = 9989\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET                           syscall.Errno = 9990\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL                      syscall.Errno = 9991\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL                        syscall.Errno = 9992\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE                               syscall.Errno = 9993\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_FQDN                                    syscall.Errno = 9994\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE                              syscall.Errno = 9995\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY                             syscall.Errno = 9996\n\tWSABASEERR                                                                syscall.Errno = 10000\n\tWSAEINTR                                                                  syscall.Errno = 10004\n\tWSAEBADF                                                                  syscall.Errno = 10009\n\tWSAEACCES                                                                 syscall.Errno = 10013\n\tWSAEFAULT                                                                 syscall.Errno = 10014\n\tWSAEINVAL                                                                 syscall.Errno = 10022\n\tWSAEMFILE                                                                 syscall.Errno = 10024\n\tWSAEWOULDBLOCK                                                            syscall.Errno = 10035\n\tWSAEINPROGRESS                                                            syscall.Errno = 10036\n\tWSAEALREADY                                                               syscall.Errno = 10037\n\tWSAENOTSOCK                                                               syscall.Errno = 10038\n\tWSAEDESTADDRREQ                                                           syscall.Errno = 10039\n\tWSAEMSGSIZE                                                               syscall.Errno = 10040\n\tWSAEPROTOTYPE                                                             syscall.Errno = 10041\n\tWSAENOPROTOOPT                                                            syscall.Errno = 10042\n\tWSAEPROTONOSUPPORT                                                        syscall.Errno = 10043\n\tWSAESOCKTNOSUPPORT                                                        syscall.Errno = 10044\n\tWSAEOPNOTSUPP                                                             syscall.Errno = 10045\n\tWSAEPFNOSUPPORT                                                           syscall.Errno = 10046\n\tWSAEAFNOSUPPORT                                                           syscall.Errno = 10047\n\tWSAEADDRINUSE                                                             syscall.Errno = 10048\n\tWSAEADDRNOTAVAIL                                                          syscall.Errno = 10049\n\tWSAENETDOWN                                                               syscall.Errno = 10050\n\tWSAENETUNREACH                                                            syscall.Errno = 10051\n\tWSAENETRESET                                                              syscall.Errno = 10052\n\tWSAECONNABORTED                                                           syscall.Errno = 10053\n\tWSAECONNRESET                                                             syscall.Errno = 10054\n\tWSAENOBUFS                                                                syscall.Errno = 10055\n\tWSAEISCONN                                                                syscall.Errno = 10056\n\tWSAENOTCONN                                                               syscall.Errno = 10057\n\tWSAESHUTDOWN                                                              syscall.Errno = 10058\n\tWSAETOOMANYREFS                                                           syscall.Errno = 10059\n\tWSAETIMEDOUT                                                              syscall.Errno = 10060\n\tWSAECONNREFUSED                                                           syscall.Errno = 10061\n\tWSAELOOP                                                                  syscall.Errno = 10062\n\tWSAENAMETOOLONG                                                           syscall.Errno = 10063\n\tWSAEHOSTDOWN                                                              syscall.Errno = 10064\n\tWSAEHOSTUNREACH                                                           syscall.Errno = 10065\n\tWSAENOTEMPTY                                                              syscall.Errno = 10066\n\tWSAEPROCLIM                                                               syscall.Errno = 10067\n\tWSAEUSERS                                                                 syscall.Errno = 10068\n\tWSAEDQUOT                                                                 syscall.Errno = 10069\n\tWSAESTALE                                                                 syscall.Errno = 10070\n\tWSAEREMOTE                                                                syscall.Errno = 10071\n\tWSASYSNOTREADY                                                            syscall.Errno = 10091\n\tWSAVERNOTSUPPORTED                                                        syscall.Errno = 10092\n\tWSANOTINITIALISED                                                         syscall.Errno = 10093\n\tWSAEDISCON                                                                syscall.Errno = 10101\n\tWSAENOMORE                                                                syscall.Errno = 10102\n\tWSAECANCELLED                                                             syscall.Errno = 10103\n\tWSAEINVALIDPROCTABLE                                                      syscall.Errno = 10104\n\tWSAEINVALIDPROVIDER                                                       syscall.Errno = 10105\n\tWSAEPROVIDERFAILEDINIT                                                    syscall.Errno = 10106\n\tWSASYSCALLFAILURE                                                         syscall.Errno = 10107\n\tWSASERVICE_NOT_FOUND                                                      syscall.Errno = 10108\n\tWSATYPE_NOT_FOUND                                                         syscall.Errno = 10109\n\tWSA_E_NO_MORE                                                             syscall.Errno = 10110\n\tWSA_E_CANCELLED                                                           syscall.Errno = 10111\n\tWSAEREFUSED                                                               syscall.Errno = 10112\n\tWSAHOST_NOT_FOUND                                                         syscall.Errno = 11001\n\tWSATRY_AGAIN                                                              syscall.Errno = 11002\n\tWSANO_RECOVERY                                                            syscall.Errno = 11003\n\tWSANO_DATA                                                                syscall.Errno = 11004\n\tWSA_QOS_RECEIVERS                                                         syscall.Errno = 11005\n\tWSA_QOS_SENDERS                                                           syscall.Errno = 11006\n\tWSA_QOS_NO_SENDERS                                                        syscall.Errno = 11007\n\tWSA_QOS_NO_RECEIVERS                                                      syscall.Errno = 11008\n\tWSA_QOS_REQUEST_CONFIRMED                                                 syscall.Errno = 11009\n\tWSA_QOS_ADMISSION_FAILURE                                                 syscall.Errno = 11010\n\tWSA_QOS_POLICY_FAILURE                                                    syscall.Errno = 11011\n\tWSA_QOS_BAD_STYLE                                                         syscall.Errno = 11012\n\tWSA_QOS_BAD_OBJECT                                                        syscall.Errno = 11013\n\tWSA_QOS_TRAFFIC_CTRL_ERROR                                                syscall.Errno = 11014\n\tWSA_QOS_GENERIC_ERROR                                                     syscall.Errno = 11015\n\tWSA_QOS_ESERVICETYPE                                                      syscall.Errno = 11016\n\tWSA_QOS_EFLOWSPEC                                                         syscall.Errno = 11017\n\tWSA_QOS_EPROVSPECBUF                                                      syscall.Errno = 11018\n\tWSA_QOS_EFILTERSTYLE                                                      syscall.Errno = 11019\n\tWSA_QOS_EFILTERTYPE                                                       syscall.Errno = 11020\n\tWSA_QOS_EFILTERCOUNT                                                      syscall.Errno = 11021\n\tWSA_QOS_EOBJLENGTH                                                        syscall.Errno = 11022\n\tWSA_QOS_EFLOWCOUNT                                                        syscall.Errno = 11023\n\tWSA_QOS_EUNKOWNPSOBJ                                                      syscall.Errno = 11024\n\tWSA_QOS_EPOLICYOBJ                                                        syscall.Errno = 11025\n\tWSA_QOS_EFLOWDESC                                                         syscall.Errno = 11026\n\tWSA_QOS_EPSFLOWSPEC                                                       syscall.Errno = 11027\n\tWSA_QOS_EPSFILTERSPEC                                                     syscall.Errno = 11028\n\tWSA_QOS_ESDMODEOBJ                                                        syscall.Errno = 11029\n\tWSA_QOS_ESHAPERATEOBJ                                                     syscall.Errno = 11030\n\tWSA_QOS_RESERVED_PETYPE                                                   syscall.Errno = 11031\n\tWSA_SECURE_HOST_NOT_FOUND                                                 syscall.Errno = 11032\n\tWSA_IPSEC_NAME_POLICY_ERROR                                               syscall.Errno = 11033\n\tERROR_IPSEC_QM_POLICY_EXISTS                                              syscall.Errno = 13000\n\tERROR_IPSEC_QM_POLICY_NOT_FOUND                                           syscall.Errno = 13001\n\tERROR_IPSEC_QM_POLICY_IN_USE                                              syscall.Errno = 13002\n\tERROR_IPSEC_MM_POLICY_EXISTS                                              syscall.Errno = 13003\n\tERROR_IPSEC_MM_POLICY_NOT_FOUND                                           syscall.Errno = 13004\n\tERROR_IPSEC_MM_POLICY_IN_USE                                              syscall.Errno = 13005\n\tERROR_IPSEC_MM_FILTER_EXISTS                                              syscall.Errno = 13006\n\tERROR_IPSEC_MM_FILTER_NOT_FOUND                                           syscall.Errno = 13007\n\tERROR_IPSEC_TRANSPORT_FILTER_EXISTS                                       syscall.Errno = 13008\n\tERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND                                    syscall.Errno = 13009\n\tERROR_IPSEC_MM_AUTH_EXISTS                                                syscall.Errno = 13010\n\tERROR_IPSEC_MM_AUTH_NOT_FOUND                                             syscall.Errno = 13011\n\tERROR_IPSEC_MM_AUTH_IN_USE                                                syscall.Errno = 13012\n\tERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND                                   syscall.Errno = 13013\n\tERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND                                     syscall.Errno = 13014\n\tERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND                                   syscall.Errno = 13015\n\tERROR_IPSEC_TUNNEL_FILTER_EXISTS                                          syscall.Errno = 13016\n\tERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND                                       syscall.Errno = 13017\n\tERROR_IPSEC_MM_FILTER_PENDING_DELETION                                    syscall.Errno = 13018\n\tERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION                             syscall.Errno = 13019\n\tERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION                                syscall.Errno = 13020\n\tERROR_IPSEC_MM_POLICY_PENDING_DELETION                                    syscall.Errno = 13021\n\tERROR_IPSEC_MM_AUTH_PENDING_DELETION                                      syscall.Errno = 13022\n\tERROR_IPSEC_QM_POLICY_PENDING_DELETION                                    syscall.Errno = 13023\n\tWARNING_IPSEC_MM_POLICY_PRUNED                                            syscall.Errno = 13024\n\tWARNING_IPSEC_QM_POLICY_PRUNED                                            syscall.Errno = 13025\n\tERROR_IPSEC_IKE_NEG_STATUS_BEGIN                                          syscall.Errno = 13800\n\tERROR_IPSEC_IKE_AUTH_FAIL                                                 syscall.Errno = 13801\n\tERROR_IPSEC_IKE_ATTRIB_FAIL                                               syscall.Errno = 13802\n\tERROR_IPSEC_IKE_NEGOTIATION_PENDING                                       syscall.Errno = 13803\n\tERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR                                  syscall.Errno = 13804\n\tERROR_IPSEC_IKE_TIMED_OUT                                                 syscall.Errno = 13805\n\tERROR_IPSEC_IKE_NO_CERT                                                   syscall.Errno = 13806\n\tERROR_IPSEC_IKE_SA_DELETED                                                syscall.Errno = 13807\n\tERROR_IPSEC_IKE_SA_REAPED                                                 syscall.Errno = 13808\n\tERROR_IPSEC_IKE_MM_ACQUIRE_DROP                                           syscall.Errno = 13809\n\tERROR_IPSEC_IKE_QM_ACQUIRE_DROP                                           syscall.Errno = 13810\n\tERROR_IPSEC_IKE_QUEUE_DROP_MM                                             syscall.Errno = 13811\n\tERROR_IPSEC_IKE_QUEUE_DROP_NO_MM                                          syscall.Errno = 13812\n\tERROR_IPSEC_IKE_DROP_NO_RESPONSE                                          syscall.Errno = 13813\n\tERROR_IPSEC_IKE_MM_DELAY_DROP                                             syscall.Errno = 13814\n\tERROR_IPSEC_IKE_QM_DELAY_DROP                                             syscall.Errno = 13815\n\tERROR_IPSEC_IKE_ERROR                                                     syscall.Errno = 13816\n\tERROR_IPSEC_IKE_CRL_FAILED                                                syscall.Errno = 13817\n\tERROR_IPSEC_IKE_INVALID_KEY_USAGE                                         syscall.Errno = 13818\n\tERROR_IPSEC_IKE_INVALID_CERT_TYPE                                         syscall.Errno = 13819\n\tERROR_IPSEC_IKE_NO_PRIVATE_KEY                                            syscall.Errno = 13820\n\tERROR_IPSEC_IKE_SIMULTANEOUS_REKEY                                        syscall.Errno = 13821\n\tERROR_IPSEC_IKE_DH_FAIL                                                   syscall.Errno = 13822\n\tERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED                           syscall.Errno = 13823\n\tERROR_IPSEC_IKE_INVALID_HEADER                                            syscall.Errno = 13824\n\tERROR_IPSEC_IKE_NO_POLICY                                                 syscall.Errno = 13825\n\tERROR_IPSEC_IKE_INVALID_SIGNATURE                                         syscall.Errno = 13826\n\tERROR_IPSEC_IKE_KERBEROS_ERROR                                            syscall.Errno = 13827\n\tERROR_IPSEC_IKE_NO_PUBLIC_KEY                                             syscall.Errno = 13828\n\tERROR_IPSEC_IKE_PROCESS_ERR                                               syscall.Errno = 13829\n\tERROR_IPSEC_IKE_PROCESS_ERR_SA                                            syscall.Errno = 13830\n\tERROR_IPSEC_IKE_PROCESS_ERR_PROP                                          syscall.Errno = 13831\n\tERROR_IPSEC_IKE_PROCESS_ERR_TRANS                                         syscall.Errno = 13832\n\tERROR_IPSEC_IKE_PROCESS_ERR_KE                                            syscall.Errno = 13833\n\tERROR_IPSEC_IKE_PROCESS_ERR_ID                                            syscall.Errno = 13834\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT                                          syscall.Errno = 13835\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ                                      syscall.Errno = 13836\n\tERROR_IPSEC_IKE_PROCESS_ERR_HASH                                          syscall.Errno = 13837\n\tERROR_IPSEC_IKE_PROCESS_ERR_SIG                                           syscall.Errno = 13838\n\tERROR_IPSEC_IKE_PROCESS_ERR_NONCE                                         syscall.Errno = 13839\n\tERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY                                        syscall.Errno = 13840\n\tERROR_IPSEC_IKE_PROCESS_ERR_DELETE                                        syscall.Errno = 13841\n\tERROR_IPSEC_IKE_PROCESS_ERR_VENDOR                                        syscall.Errno = 13842\n\tERROR_IPSEC_IKE_INVALID_PAYLOAD                                           syscall.Errno = 13843\n\tERROR_IPSEC_IKE_LOAD_SOFT_SA                                              syscall.Errno = 13844\n\tERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN                                         syscall.Errno = 13845\n\tERROR_IPSEC_IKE_INVALID_COOKIE                                            syscall.Errno = 13846\n\tERROR_IPSEC_IKE_NO_PEER_CERT                                              syscall.Errno = 13847\n\tERROR_IPSEC_IKE_PEER_CRL_FAILED                                           syscall.Errno = 13848\n\tERROR_IPSEC_IKE_POLICY_CHANGE                                             syscall.Errno = 13849\n\tERROR_IPSEC_IKE_NO_MM_POLICY                                              syscall.Errno = 13850\n\tERROR_IPSEC_IKE_NOTCBPRIV                                                 syscall.Errno = 13851\n\tERROR_IPSEC_IKE_SECLOADFAIL                                               syscall.Errno = 13852\n\tERROR_IPSEC_IKE_FAILSSPINIT                                               syscall.Errno = 13853\n\tERROR_IPSEC_IKE_FAILQUERYSSP                                              syscall.Errno = 13854\n\tERROR_IPSEC_IKE_SRVACQFAIL                                                syscall.Errno = 13855\n\tERROR_IPSEC_IKE_SRVQUERYCRED                                              syscall.Errno = 13856\n\tERROR_IPSEC_IKE_GETSPIFAIL                                                syscall.Errno = 13857\n\tERROR_IPSEC_IKE_INVALID_FILTER                                            syscall.Errno = 13858\n\tERROR_IPSEC_IKE_OUT_OF_MEMORY                                             syscall.Errno = 13859\n\tERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED                                     syscall.Errno = 13860\n\tERROR_IPSEC_IKE_INVALID_POLICY                                            syscall.Errno = 13861\n\tERROR_IPSEC_IKE_UNKNOWN_DOI                                               syscall.Errno = 13862\n\tERROR_IPSEC_IKE_INVALID_SITUATION                                         syscall.Errno = 13863\n\tERROR_IPSEC_IKE_DH_FAILURE                                                syscall.Errno = 13864\n\tERROR_IPSEC_IKE_INVALID_GROUP                                             syscall.Errno = 13865\n\tERROR_IPSEC_IKE_ENCRYPT                                                   syscall.Errno = 13866\n\tERROR_IPSEC_IKE_DECRYPT                                                   syscall.Errno = 13867\n\tERROR_IPSEC_IKE_POLICY_MATCH                                              syscall.Errno = 13868\n\tERROR_IPSEC_IKE_UNSUPPORTED_ID                                            syscall.Errno = 13869\n\tERROR_IPSEC_IKE_INVALID_HASH                                              syscall.Errno = 13870\n\tERROR_IPSEC_IKE_INVALID_HASH_ALG                                          syscall.Errno = 13871\n\tERROR_IPSEC_IKE_INVALID_HASH_SIZE                                         syscall.Errno = 13872\n\tERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG                                       syscall.Errno = 13873\n\tERROR_IPSEC_IKE_INVALID_AUTH_ALG                                          syscall.Errno = 13874\n\tERROR_IPSEC_IKE_INVALID_SIG                                               syscall.Errno = 13875\n\tERROR_IPSEC_IKE_LOAD_FAILED                                               syscall.Errno = 13876\n\tERROR_IPSEC_IKE_RPC_DELETE                                                syscall.Errno = 13877\n\tERROR_IPSEC_IKE_BENIGN_REINIT                                             syscall.Errno = 13878\n\tERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY                         syscall.Errno = 13879\n\tERROR_IPSEC_IKE_INVALID_MAJOR_VERSION                                     syscall.Errno = 13880\n\tERROR_IPSEC_IKE_INVALID_CERT_KEYLEN                                       syscall.Errno = 13881\n\tERROR_IPSEC_IKE_MM_LIMIT                                                  syscall.Errno = 13882\n\tERROR_IPSEC_IKE_NEGOTIATION_DISABLED                                      syscall.Errno = 13883\n\tERROR_IPSEC_IKE_QM_LIMIT                                                  syscall.Errno = 13884\n\tERROR_IPSEC_IKE_MM_EXPIRED                                                syscall.Errno = 13885\n\tERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID                                   syscall.Errno = 13886\n\tERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH                                syscall.Errno = 13887\n\tERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID                                     syscall.Errno = 13888\n\tERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD                                      syscall.Errno = 13889\n\tERROR_IPSEC_IKE_DOS_COOKIE_SENT                                           syscall.Errno = 13890\n\tERROR_IPSEC_IKE_SHUTTING_DOWN                                             syscall.Errno = 13891\n\tERROR_IPSEC_IKE_CGA_AUTH_FAILED                                           syscall.Errno = 13892\n\tERROR_IPSEC_IKE_PROCESS_ERR_NATOA                                         syscall.Errno = 13893\n\tERROR_IPSEC_IKE_INVALID_MM_FOR_QM                                         syscall.Errno = 13894\n\tERROR_IPSEC_IKE_QM_EXPIRED                                                syscall.Errno = 13895\n\tERROR_IPSEC_IKE_TOO_MANY_FILTERS                                          syscall.Errno = 13896\n\tERROR_IPSEC_IKE_NEG_STATUS_END                                            syscall.Errno = 13897\n\tERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL                                     syscall.Errno = 13898\n\tERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE                               syscall.Errno = 13899\n\tERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING                                syscall.Errno = 13900\n\tERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING                  syscall.Errno = 13901\n\tERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS                                      syscall.Errno = 13902\n\tERROR_IPSEC_IKE_RATELIMIT_DROP                                            syscall.Errno = 13903\n\tERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE                                syscall.Errno = 13904\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE                                     syscall.Errno = 13905\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE                         syscall.Errno = 13906\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY                 syscall.Errno = 13907\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE             syscall.Errno = 13908\n\tERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END                                   syscall.Errno = 13909\n\tERROR_IPSEC_BAD_SPI                                                       syscall.Errno = 13910\n\tERROR_IPSEC_SA_LIFETIME_EXPIRED                                           syscall.Errno = 13911\n\tERROR_IPSEC_WRONG_SA                                                      syscall.Errno = 13912\n\tERROR_IPSEC_REPLAY_CHECK_FAILED                                           syscall.Errno = 13913\n\tERROR_IPSEC_INVALID_PACKET                                                syscall.Errno = 13914\n\tERROR_IPSEC_INTEGRITY_CHECK_FAILED                                        syscall.Errno = 13915\n\tERROR_IPSEC_CLEAR_TEXT_DROP                                               syscall.Errno = 13916\n\tERROR_IPSEC_AUTH_FIREWALL_DROP                                            syscall.Errno = 13917\n\tERROR_IPSEC_THROTTLE_DROP                                                 syscall.Errno = 13918\n\tERROR_IPSEC_DOSP_BLOCK                                                    syscall.Errno = 13925\n\tERROR_IPSEC_DOSP_RECEIVED_MULTICAST                                       syscall.Errno = 13926\n\tERROR_IPSEC_DOSP_INVALID_PACKET                                           syscall.Errno = 13927\n\tERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED                                      syscall.Errno = 13928\n\tERROR_IPSEC_DOSP_MAX_ENTRIES                                              syscall.Errno = 13929\n\tERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                       syscall.Errno = 13930\n\tERROR_IPSEC_DOSP_NOT_INSTALLED                                            syscall.Errno = 13931\n\tERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                              syscall.Errno = 13932\n\tERROR_SXS_SECTION_NOT_FOUND                                               syscall.Errno = 14000\n\tERROR_SXS_CANT_GEN_ACTCTX                                                 syscall.Errno = 14001\n\tERROR_SXS_INVALID_ACTCTXDATA_FORMAT                                       syscall.Errno = 14002\n\tERROR_SXS_ASSEMBLY_NOT_FOUND                                              syscall.Errno = 14003\n\tERROR_SXS_MANIFEST_FORMAT_ERROR                                           syscall.Errno = 14004\n\tERROR_SXS_MANIFEST_PARSE_ERROR                                            syscall.Errno = 14005\n\tERROR_SXS_ACTIVATION_CONTEXT_DISABLED                                     syscall.Errno = 14006\n\tERROR_SXS_KEY_NOT_FOUND                                                   syscall.Errno = 14007\n\tERROR_SXS_VERSION_CONFLICT                                                syscall.Errno = 14008\n\tERROR_SXS_WRONG_SECTION_TYPE                                              syscall.Errno = 14009\n\tERROR_SXS_THREAD_QUERIES_DISABLED                                         syscall.Errno = 14010\n\tERROR_SXS_PROCESS_DEFAULT_ALREADY_SET                                     syscall.Errno = 14011\n\tERROR_SXS_UNKNOWN_ENCODING_GROUP                                          syscall.Errno = 14012\n\tERROR_SXS_UNKNOWN_ENCODING                                                syscall.Errno = 14013\n\tERROR_SXS_INVALID_XML_NAMESPACE_URI                                       syscall.Errno = 14014\n\tERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14015\n\tERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14016\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14017\n\tERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14018\n\tERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14019\n\tERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT                  syscall.Errno = 14020\n\tERROR_SXS_DUPLICATE_DLL_NAME                                              syscall.Errno = 14021\n\tERROR_SXS_DUPLICATE_WINDOWCLASS_NAME                                      syscall.Errno = 14022\n\tERROR_SXS_DUPLICATE_CLSID                                                 syscall.Errno = 14023\n\tERROR_SXS_DUPLICATE_IID                                                   syscall.Errno = 14024\n\tERROR_SXS_DUPLICATE_TLBID                                                 syscall.Errno = 14025\n\tERROR_SXS_DUPLICATE_PROGID                                                syscall.Errno = 14026\n\tERROR_SXS_DUPLICATE_ASSEMBLY_NAME                                         syscall.Errno = 14027\n\tERROR_SXS_FILE_HASH_MISMATCH                                              syscall.Errno = 14028\n\tERROR_SXS_POLICY_PARSE_ERROR                                              syscall.Errno = 14029\n\tERROR_SXS_XML_E_MISSINGQUOTE                                              syscall.Errno = 14030\n\tERROR_SXS_XML_E_COMMENTSYNTAX                                             syscall.Errno = 14031\n\tERROR_SXS_XML_E_BADSTARTNAMECHAR                                          syscall.Errno = 14032\n\tERROR_SXS_XML_E_BADNAMECHAR                                               syscall.Errno = 14033\n\tERROR_SXS_XML_E_BADCHARINSTRING                                           syscall.Errno = 14034\n\tERROR_SXS_XML_E_XMLDECLSYNTAX                                             syscall.Errno = 14035\n\tERROR_SXS_XML_E_BADCHARDATA                                               syscall.Errno = 14036\n\tERROR_SXS_XML_E_MISSINGWHITESPACE                                         syscall.Errno = 14037\n\tERROR_SXS_XML_E_EXPECTINGTAGEND                                           syscall.Errno = 14038\n\tERROR_SXS_XML_E_MISSINGSEMICOLON                                          syscall.Errno = 14039\n\tERROR_SXS_XML_E_UNBALANCEDPAREN                                           syscall.Errno = 14040\n\tERROR_SXS_XML_E_INTERNALERROR                                             syscall.Errno = 14041\n\tERROR_SXS_XML_E_UNEXPECTED_WHITESPACE                                     syscall.Errno = 14042\n\tERROR_SXS_XML_E_INCOMPLETE_ENCODING                                       syscall.Errno = 14043\n\tERROR_SXS_XML_E_MISSING_PAREN                                             syscall.Errno = 14044\n\tERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE                                       syscall.Errno = 14045\n\tERROR_SXS_XML_E_MULTIPLE_COLONS                                           syscall.Errno = 14046\n\tERROR_SXS_XML_E_INVALID_DECIMAL                                           syscall.Errno = 14047\n\tERROR_SXS_XML_E_INVALID_HEXIDECIMAL                                       syscall.Errno = 14048\n\tERROR_SXS_XML_E_INVALID_UNICODE                                           syscall.Errno = 14049\n\tERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK                                  syscall.Errno = 14050\n\tERROR_SXS_XML_E_UNEXPECTEDENDTAG                                          syscall.Errno = 14051\n\tERROR_SXS_XML_E_UNCLOSEDTAG                                               syscall.Errno = 14052\n\tERROR_SXS_XML_E_DUPLICATEATTRIBUTE                                        syscall.Errno = 14053\n\tERROR_SXS_XML_E_MULTIPLEROOTS                                             syscall.Errno = 14054\n\tERROR_SXS_XML_E_INVALIDATROOTLEVEL                                        syscall.Errno = 14055\n\tERROR_SXS_XML_E_BADXMLDECL                                                syscall.Errno = 14056\n\tERROR_SXS_XML_E_MISSINGROOT                                               syscall.Errno = 14057\n\tERROR_SXS_XML_E_UNEXPECTEDEOF                                             syscall.Errno = 14058\n\tERROR_SXS_XML_E_BADPEREFINSUBSET                                          syscall.Errno = 14059\n\tERROR_SXS_XML_E_UNCLOSEDSTARTTAG                                          syscall.Errno = 14060\n\tERROR_SXS_XML_E_UNCLOSEDENDTAG                                            syscall.Errno = 14061\n\tERROR_SXS_XML_E_UNCLOSEDSTRING                                            syscall.Errno = 14062\n\tERROR_SXS_XML_E_UNCLOSEDCOMMENT                                           syscall.Errno = 14063\n\tERROR_SXS_XML_E_UNCLOSEDDECL                                              syscall.Errno = 14064\n\tERROR_SXS_XML_E_UNCLOSEDCDATA                                             syscall.Errno = 14065\n\tERROR_SXS_XML_E_RESERVEDNAMESPACE                                         syscall.Errno = 14066\n\tERROR_SXS_XML_E_INVALIDENCODING                                           syscall.Errno = 14067\n\tERROR_SXS_XML_E_INVALIDSWITCH                                             syscall.Errno = 14068\n\tERROR_SXS_XML_E_BADXMLCASE                                                syscall.Errno = 14069\n\tERROR_SXS_XML_E_INVALID_STANDALONE                                        syscall.Errno = 14070\n\tERROR_SXS_XML_E_UNEXPECTED_STANDALONE                                     syscall.Errno = 14071\n\tERROR_SXS_XML_E_INVALID_VERSION                                           syscall.Errno = 14072\n\tERROR_SXS_XML_E_MISSINGEQUALS                                             syscall.Errno = 14073\n\tERROR_SXS_PROTECTION_RECOVERY_FAILED                                      syscall.Errno = 14074\n\tERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT                                 syscall.Errno = 14075\n\tERROR_SXS_PROTECTION_CATALOG_NOT_VALID                                    syscall.Errno = 14076\n\tERROR_SXS_UNTRANSLATABLE_HRESULT                                          syscall.Errno = 14077\n\tERROR_SXS_PROTECTION_CATALOG_FILE_MISSING                                 syscall.Errno = 14078\n\tERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14079\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME                        syscall.Errno = 14080\n\tERROR_SXS_ASSEMBLY_MISSING                                                syscall.Errno = 14081\n\tERROR_SXS_CORRUPT_ACTIVATION_STACK                                        syscall.Errno = 14082\n\tERROR_SXS_CORRUPTION                                                      syscall.Errno = 14083\n\tERROR_SXS_EARLY_DEACTIVATION                                              syscall.Errno = 14084\n\tERROR_SXS_INVALID_DEACTIVATION                                            syscall.Errno = 14085\n\tERROR_SXS_MULTIPLE_DEACTIVATION                                           syscall.Errno = 14086\n\tERROR_SXS_PROCESS_TERMINATION_REQUESTED                                   syscall.Errno = 14087\n\tERROR_SXS_RELEASE_ACTIVATION_CONTEXT                                      syscall.Errno = 14088\n\tERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                         syscall.Errno = 14089\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                                syscall.Errno = 14090\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                 syscall.Errno = 14091\n\tERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                    syscall.Errno = 14092\n\tERROR_SXS_IDENTITY_PARSE_ERROR                                            syscall.Errno = 14093\n\tERROR_MALFORMED_SUBSTITUTION_STRING                                       syscall.Errno = 14094\n\tERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN                                      syscall.Errno = 14095\n\tERROR_UNMAPPED_SUBSTITUTION_STRING                                        syscall.Errno = 14096\n\tERROR_SXS_ASSEMBLY_NOT_LOCKED                                             syscall.Errno = 14097\n\tERROR_SXS_COMPONENT_STORE_CORRUPT                                         syscall.Errno = 14098\n\tERROR_ADVANCED_INSTALLER_FAILED                                           syscall.Errno = 14099\n\tERROR_XML_ENCODING_MISMATCH                                               syscall.Errno = 14100\n\tERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                   syscall.Errno = 14101\n\tERROR_SXS_IDENTITIES_DIFFERENT                                            syscall.Errno = 14102\n\tERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                    syscall.Errno = 14103\n\tERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY                                       syscall.Errno = 14104\n\tERROR_SXS_MANIFEST_TOO_BIG                                                syscall.Errno = 14105\n\tERROR_SXS_SETTING_NOT_REGISTERED                                          syscall.Errno = 14106\n\tERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                  syscall.Errno = 14107\n\tERROR_SMI_PRIMITIVE_INSTALLER_FAILED                                      syscall.Errno = 14108\n\tERROR_GENERIC_COMMAND_FAILED                                              syscall.Errno = 14109\n\tERROR_SXS_FILE_HASH_MISSING                                               syscall.Errno = 14110\n\tERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS                                     syscall.Errno = 14111\n\tERROR_EVT_INVALID_CHANNEL_PATH                                            syscall.Errno = 15000\n\tERROR_EVT_INVALID_QUERY                                                   syscall.Errno = 15001\n\tERROR_EVT_PUBLISHER_METADATA_NOT_FOUND                                    syscall.Errno = 15002\n\tERROR_EVT_EVENT_TEMPLATE_NOT_FOUND                                        syscall.Errno = 15003\n\tERROR_EVT_INVALID_PUBLISHER_NAME                                          syscall.Errno = 15004\n\tERROR_EVT_INVALID_EVENT_DATA                                              syscall.Errno = 15005\n\tERROR_EVT_CHANNEL_NOT_FOUND                                               syscall.Errno = 15007\n\tERROR_EVT_MALFORMED_XML_TEXT                                              syscall.Errno = 15008\n\tERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL                                  syscall.Errno = 15009\n\tERROR_EVT_CONFIGURATION_ERROR                                             syscall.Errno = 15010\n\tERROR_EVT_QUERY_RESULT_STALE                                              syscall.Errno = 15011\n\tERROR_EVT_QUERY_RESULT_INVALID_POSITION                                   syscall.Errno = 15012\n\tERROR_EVT_NON_VALIDATING_MSXML                                            syscall.Errno = 15013\n\tERROR_EVT_FILTER_ALREADYSCOPED                                            syscall.Errno = 15014\n\tERROR_EVT_FILTER_NOTELTSET                                                syscall.Errno = 15015\n\tERROR_EVT_FILTER_INVARG                                                   syscall.Errno = 15016\n\tERROR_EVT_FILTER_INVTEST                                                  syscall.Errno = 15017\n\tERROR_EVT_FILTER_INVTYPE                                                  syscall.Errno = 15018\n\tERROR_EVT_FILTER_PARSEERR                                                 syscall.Errno = 15019\n\tERROR_EVT_FILTER_UNSUPPORTEDOP                                            syscall.Errno = 15020\n\tERROR_EVT_FILTER_UNEXPECTEDTOKEN                                          syscall.Errno = 15021\n\tERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL                   syscall.Errno = 15022\n\tERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE                                  syscall.Errno = 15023\n\tERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE                                syscall.Errno = 15024\n\tERROR_EVT_CHANNEL_CANNOT_ACTIVATE                                         syscall.Errno = 15025\n\tERROR_EVT_FILTER_TOO_COMPLEX                                              syscall.Errno = 15026\n\tERROR_EVT_MESSAGE_NOT_FOUND                                               syscall.Errno = 15027\n\tERROR_EVT_MESSAGE_ID_NOT_FOUND                                            syscall.Errno = 15028\n\tERROR_EVT_UNRESOLVED_VALUE_INSERT                                         syscall.Errno = 15029\n\tERROR_EVT_UNRESOLVED_PARAMETER_INSERT                                     syscall.Errno = 15030\n\tERROR_EVT_MAX_INSERTS_REACHED                                             syscall.Errno = 15031\n\tERROR_EVT_EVENT_DEFINITION_NOT_FOUND                                      syscall.Errno = 15032\n\tERROR_EVT_MESSAGE_LOCALE_NOT_FOUND                                        syscall.Errno = 15033\n\tERROR_EVT_VERSION_TOO_OLD                                                 syscall.Errno = 15034\n\tERROR_EVT_VERSION_TOO_NEW                                                 syscall.Errno = 15035\n\tERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY                                    syscall.Errno = 15036\n\tERROR_EVT_PUBLISHER_DISABLED                                              syscall.Errno = 15037\n\tERROR_EVT_FILTER_OUT_OF_RANGE                                             syscall.Errno = 15038\n\tERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE                                     syscall.Errno = 15080\n\tERROR_EC_LOG_DISABLED                                                     syscall.Errno = 15081\n\tERROR_EC_CIRCULAR_FORWARDING                                              syscall.Errno = 15082\n\tERROR_EC_CREDSTORE_FULL                                                   syscall.Errno = 15083\n\tERROR_EC_CRED_NOT_FOUND                                                   syscall.Errno = 15084\n\tERROR_EC_NO_ACTIVE_CHANNEL                                                syscall.Errno = 15085\n\tERROR_MUI_FILE_NOT_FOUND                                                  syscall.Errno = 15100\n\tERROR_MUI_INVALID_FILE                                                    syscall.Errno = 15101\n\tERROR_MUI_INVALID_RC_CONFIG                                               syscall.Errno = 15102\n\tERROR_MUI_INVALID_LOCALE_NAME                                             syscall.Errno = 15103\n\tERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME                                   syscall.Errno = 15104\n\tERROR_MUI_FILE_NOT_LOADED                                                 syscall.Errno = 15105\n\tERROR_RESOURCE_ENUM_USER_STOP                                             syscall.Errno = 15106\n\tERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED                               syscall.Errno = 15107\n\tERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME                                syscall.Errno = 15108\n\tERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE                          syscall.Errno = 15110\n\tERROR_MRM_INVALID_PRICONFIG                                               syscall.Errno = 15111\n\tERROR_MRM_INVALID_FILE_TYPE                                               syscall.Errno = 15112\n\tERROR_MRM_UNKNOWN_QUALIFIER                                               syscall.Errno = 15113\n\tERROR_MRM_INVALID_QUALIFIER_VALUE                                         syscall.Errno = 15114\n\tERROR_MRM_NO_CANDIDATE                                                    syscall.Errno = 15115\n\tERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE                                   syscall.Errno = 15116\n\tERROR_MRM_RESOURCE_TYPE_MISMATCH                                          syscall.Errno = 15117\n\tERROR_MRM_DUPLICATE_MAP_NAME                                              syscall.Errno = 15118\n\tERROR_MRM_DUPLICATE_ENTRY                                                 syscall.Errno = 15119\n\tERROR_MRM_INVALID_RESOURCE_IDENTIFIER                                     syscall.Errno = 15120\n\tERROR_MRM_FILEPATH_TOO_LONG                                               syscall.Errno = 15121\n\tERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE                                      syscall.Errno = 15122\n\tERROR_MRM_INVALID_PRI_FILE                                                syscall.Errno = 15126\n\tERROR_MRM_NAMED_RESOURCE_NOT_FOUND                                        syscall.Errno = 15127\n\tERROR_MRM_MAP_NOT_FOUND                                                   syscall.Errno = 15135\n\tERROR_MRM_UNSUPPORTED_PROFILE_TYPE                                        syscall.Errno = 15136\n\tERROR_MRM_INVALID_QUALIFIER_OPERATOR                                      syscall.Errno = 15137\n\tERROR_MRM_INDETERMINATE_QUALIFIER_VALUE                                   syscall.Errno = 15138\n\tERROR_MRM_AUTOMERGE_ENABLED                                               syscall.Errno = 15139\n\tERROR_MRM_TOO_MANY_RESOURCES                                              syscall.Errno = 15140\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE                                 syscall.Errno = 15141\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE                  syscall.Errno = 15142\n\tERROR_MRM_NO_CURRENT_VIEW_ON_THREAD                                       syscall.Errno = 15143\n\tERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST                            syscall.Errno = 15144\n\tERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT                         syscall.Errno = 15145\n\tERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE                              syscall.Errno = 15146\n\tERROR_MRM_GENERATION_COUNT_MISMATCH                                       syscall.Errno = 15147\n\tERROR_PRI_MERGE_VERSION_MISMATCH                                          syscall.Errno = 15148\n\tERROR_PRI_MERGE_MISSING_SCHEMA                                            syscall.Errno = 15149\n\tERROR_PRI_MERGE_LOAD_FILE_FAILED                                          syscall.Errno = 15150\n\tERROR_PRI_MERGE_ADD_FILE_FAILED                                           syscall.Errno = 15151\n\tERROR_PRI_MERGE_WRITE_FILE_FAILED                                         syscall.Errno = 15152\n\tERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED                     syscall.Errno = 15153\n\tERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED                        syscall.Errno = 15154\n\tERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED                               syscall.Errno = 15155\n\tERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED                                     syscall.Errno = 15156\n\tERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED                                 syscall.Errno = 15157\n\tERROR_PRI_MERGE_INVALID_FILE_NAME                                         syscall.Errno = 15158\n\tERROR_MRM_PACKAGE_NOT_FOUND                                               syscall.Errno = 15159\n\tERROR_MRM_MISSING_DEFAULT_LANGUAGE                                        syscall.Errno = 15160\n\tERROR_MCA_INVALID_CAPABILITIES_STRING                                     syscall.Errno = 15200\n\tERROR_MCA_INVALID_VCP_VERSION                                             syscall.Errno = 15201\n\tERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                             syscall.Errno = 15202\n\tERROR_MCA_MCCS_VERSION_MISMATCH                                           syscall.Errno = 15203\n\tERROR_MCA_UNSUPPORTED_MCCS_VERSION                                        syscall.Errno = 15204\n\tERROR_MCA_INTERNAL_ERROR                                                  syscall.Errno = 15205\n\tERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                                syscall.Errno = 15206\n\tERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE                                   syscall.Errno = 15207\n\tERROR_AMBIGUOUS_SYSTEM_DEVICE                                             syscall.Errno = 15250\n\tERROR_SYSTEM_DEVICE_NOT_FOUND                                             syscall.Errno = 15299\n\tERROR_HASH_NOT_SUPPORTED                                                  syscall.Errno = 15300\n\tERROR_HASH_NOT_PRESENT                                                    syscall.Errno = 15301\n\tERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED                                syscall.Errno = 15321\n\tERROR_GPIO_CLIENT_INFORMATION_INVALID                                     syscall.Errno = 15322\n\tERROR_GPIO_VERSION_NOT_SUPPORTED                                          syscall.Errno = 15323\n\tERROR_GPIO_INVALID_REGISTRATION_PACKET                                    syscall.Errno = 15324\n\tERROR_GPIO_OPERATION_DENIED                                               syscall.Errno = 15325\n\tERROR_GPIO_INCOMPATIBLE_CONNECT_MODE                                      syscall.Errno = 15326\n\tERROR_GPIO_INTERRUPT_ALREADY_UNMASKED                                     syscall.Errno = 15327\n\tERROR_CANNOT_SWITCH_RUNLEVEL                                              syscall.Errno = 15400\n\tERROR_INVALID_RUNLEVEL_SETTING                                            syscall.Errno = 15401\n\tERROR_RUNLEVEL_SWITCH_TIMEOUT                                             syscall.Errno = 15402\n\tERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                       syscall.Errno = 15403\n\tERROR_RUNLEVEL_SWITCH_IN_PROGRESS                                         syscall.Errno = 15404\n\tERROR_SERVICES_FAILED_AUTOSTART                                           syscall.Errno = 15405\n\tERROR_COM_TASK_STOP_PENDING                                               syscall.Errno = 15501\n\tERROR_INSTALL_OPEN_PACKAGE_FAILED                                         syscall.Errno = 15600\n\tERROR_INSTALL_PACKAGE_NOT_FOUND                                           syscall.Errno = 15601\n\tERROR_INSTALL_INVALID_PACKAGE                                             syscall.Errno = 15602\n\tERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED                                   syscall.Errno = 15603\n\tERROR_INSTALL_OUT_OF_DISK_SPACE                                           syscall.Errno = 15604\n\tERROR_INSTALL_NETWORK_FAILURE                                             syscall.Errno = 15605\n\tERROR_INSTALL_REGISTRATION_FAILURE                                        syscall.Errno = 15606\n\tERROR_INSTALL_DEREGISTRATION_FAILURE                                      syscall.Errno = 15607\n\tERROR_INSTALL_CANCEL                                                      syscall.Errno = 15608\n\tERROR_INSTALL_FAILED                                                      syscall.Errno = 15609\n\tERROR_REMOVE_FAILED                                                       syscall.Errno = 15610\n\tERROR_PACKAGE_ALREADY_EXISTS                                              syscall.Errno = 15611\n\tERROR_NEEDS_REMEDIATION                                                   syscall.Errno = 15612\n\tERROR_INSTALL_PREREQUISITE_FAILED                                         syscall.Errno = 15613\n\tERROR_PACKAGE_REPOSITORY_CORRUPTED                                        syscall.Errno = 15614\n\tERROR_INSTALL_POLICY_FAILURE                                              syscall.Errno = 15615\n\tERROR_PACKAGE_UPDATING                                                    syscall.Errno = 15616\n\tERROR_DEPLOYMENT_BLOCKED_BY_POLICY                                        syscall.Errno = 15617\n\tERROR_PACKAGES_IN_USE                                                     syscall.Errno = 15618\n\tERROR_RECOVERY_FILE_CORRUPT                                               syscall.Errno = 15619\n\tERROR_INVALID_STAGED_SIGNATURE                                            syscall.Errno = 15620\n\tERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED                      syscall.Errno = 15621\n\tERROR_INSTALL_PACKAGE_DOWNGRADE                                           syscall.Errno = 15622\n\tERROR_SYSTEM_NEEDS_REMEDIATION                                            syscall.Errno = 15623\n\tERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN                                     syscall.Errno = 15624\n\tERROR_RESILIENCY_FILE_CORRUPT                                             syscall.Errno = 15625\n\tERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING                                syscall.Errno = 15626\n\tERROR_PACKAGE_MOVE_FAILED                                                 syscall.Errno = 15627\n\tERROR_INSTALL_VOLUME_NOT_EMPTY                                            syscall.Errno = 15628\n\tERROR_INSTALL_VOLUME_OFFLINE                                              syscall.Errno = 15629\n\tERROR_INSTALL_VOLUME_CORRUPT                                              syscall.Errno = 15630\n\tERROR_NEEDS_REGISTRATION                                                  syscall.Errno = 15631\n\tERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE                                syscall.Errno = 15632\n\tERROR_DEV_SIDELOAD_LIMIT_EXCEEDED                                         syscall.Errno = 15633\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE                      syscall.Errno = 15634\n\tERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM                                 syscall.Errno = 15635\n\tERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING                                   syscall.Errno = 15636\n\tERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE                   syscall.Errno = 15637\n\tERROR_PACKAGE_STAGING_ONHOLD                                              syscall.Errno = 15638\n\tERROR_INSTALL_INVALID_RELATED_SET_UPDATE                                  syscall.Errno = 15639\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640\n\tERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF                                  syscall.Errno = 15641\n\tERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED        syscall.Errno = 15642\n\tERROR_PACKAGES_REPUTATION_CHECK_FAILED                                    syscall.Errno = 15643\n\tERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT                                  syscall.Errno = 15644\n\tERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED                                     syscall.Errno = 15645\n\tERROR_APPINSTALLER_ACTIVATION_BLOCKED                                     syscall.Errno = 15646\n\tERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED                        syscall.Errno = 15647\n\tERROR_APPX_RAW_DATA_WRITE_FAILED                                          syscall.Errno = 15648\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE                         syscall.Errno = 15649\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE                         syscall.Errno = 15650\n\tERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY                                syscall.Errno = 15651\n\tERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY             syscall.Errno = 15652\n\tERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER                         syscall.Errno = 15653\n\tERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED                     syscall.Errno = 15654\n\tERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE                              syscall.Errno = 15655\n\tERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES                          syscall.Errno = 15656\n\tAPPMODEL_ERROR_NO_PACKAGE                                                 syscall.Errno = 15700\n\tAPPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT                                    syscall.Errno = 15701\n\tAPPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT                                   syscall.Errno = 15702\n\tAPPMODEL_ERROR_NO_APPLICATION                                             syscall.Errno = 15703\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED                               syscall.Errno = 15704\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID                                   syscall.Errno = 15705\n\tAPPMODEL_ERROR_PACKAGE_NOT_AVAILABLE                                      syscall.Errno = 15706\n\tAPPMODEL_ERROR_NO_MUTABLE_DIRECTORY                                       syscall.Errno = 15707\n\tERROR_STATE_LOAD_STORE_FAILED                                             syscall.Errno = 15800\n\tERROR_STATE_GET_VERSION_FAILED                                            syscall.Errno = 15801\n\tERROR_STATE_SET_VERSION_FAILED                                            syscall.Errno = 15802\n\tERROR_STATE_STRUCTURED_RESET_FAILED                                       syscall.Errno = 15803\n\tERROR_STATE_OPEN_CONTAINER_FAILED                                         syscall.Errno = 15804\n\tERROR_STATE_CREATE_CONTAINER_FAILED                                       syscall.Errno = 15805\n\tERROR_STATE_DELETE_CONTAINER_FAILED                                       syscall.Errno = 15806\n\tERROR_STATE_READ_SETTING_FAILED                                           syscall.Errno = 15807\n\tERROR_STATE_WRITE_SETTING_FAILED                                          syscall.Errno = 15808\n\tERROR_STATE_DELETE_SETTING_FAILED                                         syscall.Errno = 15809\n\tERROR_STATE_QUERY_SETTING_FAILED                                          syscall.Errno = 15810\n\tERROR_STATE_READ_COMPOSITE_SETTING_FAILED                                 syscall.Errno = 15811\n\tERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED                                syscall.Errno = 15812\n\tERROR_STATE_ENUMERATE_CONTAINER_FAILED                                    syscall.Errno = 15813\n\tERROR_STATE_ENUMERATE_SETTINGS_FAILED                                     syscall.Errno = 15814\n\tERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                   syscall.Errno = 15815\n\tERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                             syscall.Errno = 15816\n\tERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED                              syscall.Errno = 15817\n\tERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED                            syscall.Errno = 15818\n\tERROR_API_UNAVAILABLE                                                     syscall.Errno = 15841\n\tSTORE_ERROR_UNLICENSED                                                    syscall.Errno = 15861\n\tSTORE_ERROR_UNLICENSED_USER                                               syscall.Errno = 15862\n\tSTORE_ERROR_PENDING_COM_TRANSACTION                                       syscall.Errno = 15863\n\tSTORE_ERROR_LICENSE_REVOKED                                               syscall.Errno = 15864\n\tSEVERITY_SUCCESS                                                          syscall.Errno = 0\n\tSEVERITY_ERROR                                                            syscall.Errno = 1\n\tFACILITY_NT_BIT                                                                         = 0x10000000\n\tE_NOT_SET                                                                               = ERROR_NOT_FOUND\n\tE_NOT_VALID_STATE                                                                       = ERROR_INVALID_STATE\n\tE_NOT_SUFFICIENT_BUFFER                                                                 = ERROR_INSUFFICIENT_BUFFER\n\tE_TIME_SENSITIVE_THREAD                                                                 = ERROR_TIME_SENSITIVE_THREAD\n\tE_NO_TASK_QUEUE                                                                         = ERROR_NO_TASK_QUEUE\n\tNOERROR                                                                   syscall.Errno = 0\n\tE_UNEXPECTED                                                              Handle        = 0x8000FFFF\n\tE_NOTIMPL                                                                 Handle        = 0x80004001\n\tE_OUTOFMEMORY                                                             Handle        = 0x8007000E\n\tE_INVALIDARG                                                              Handle        = 0x80070057\n\tE_NOINTERFACE                                                             Handle        = 0x80004002\n\tE_POINTER                                                                 Handle        = 0x80004003\n\tE_HANDLE                                                                  Handle        = 0x80070006\n\tE_ABORT                                                                   Handle        = 0x80004004\n\tE_FAIL                                                                    Handle        = 0x80004005\n\tE_ACCESSDENIED                                                            Handle        = 0x80070005\n\tE_PENDING                                                                 Handle        = 0x8000000A\n\tE_BOUNDS                                                                  Handle        = 0x8000000B\n\tE_CHANGED_STATE                                                           Handle        = 0x8000000C\n\tE_ILLEGAL_STATE_CHANGE                                                    Handle        = 0x8000000D\n\tE_ILLEGAL_METHOD_CALL                                                     Handle        = 0x8000000E\n\tRO_E_METADATA_NAME_NOT_FOUND                                              Handle        = 0x8000000F\n\tRO_E_METADATA_NAME_IS_NAMESPACE                                           Handle        = 0x80000010\n\tRO_E_METADATA_INVALID_TYPE_FORMAT                                         Handle        = 0x80000011\n\tRO_E_INVALID_METADATA_FILE                                                Handle        = 0x80000012\n\tRO_E_CLOSED                                                               Handle        = 0x80000013\n\tRO_E_EXCLUSIVE_WRITE                                                      Handle        = 0x80000014\n\tRO_E_CHANGE_NOTIFICATION_IN_PROGRESS                                      Handle        = 0x80000015\n\tRO_E_ERROR_STRING_NOT_FOUND                                               Handle        = 0x80000016\n\tE_STRING_NOT_NULL_TERMINATED                                              Handle        = 0x80000017\n\tE_ILLEGAL_DELEGATE_ASSIGNMENT                                             Handle        = 0x80000018\n\tE_ASYNC_OPERATION_NOT_STARTED                                             Handle        = 0x80000019\n\tE_APPLICATION_EXITING                                                     Handle        = 0x8000001A\n\tE_APPLICATION_VIEW_EXITING                                                Handle        = 0x8000001B\n\tRO_E_MUST_BE_AGILE                                                        Handle        = 0x8000001C\n\tRO_E_UNSUPPORTED_FROM_MTA                                                 Handle        = 0x8000001D\n\tRO_E_COMMITTED                                                            Handle        = 0x8000001E\n\tRO_E_BLOCKED_CROSS_ASTA_CALL                                              Handle        = 0x8000001F\n\tRO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER                                    Handle        = 0x80000020\n\tRO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER                         Handle        = 0x80000021\n\tCO_E_INIT_TLS                                                             Handle        = 0x80004006\n\tCO_E_INIT_SHARED_ALLOCATOR                                                Handle        = 0x80004007\n\tCO_E_INIT_MEMORY_ALLOCATOR                                                Handle        = 0x80004008\n\tCO_E_INIT_CLASS_CACHE                                                     Handle        = 0x80004009\n\tCO_E_INIT_RPC_CHANNEL                                                     Handle        = 0x8000400A\n\tCO_E_INIT_TLS_SET_CHANNEL_CONTROL                                         Handle        = 0x8000400B\n\tCO_E_INIT_TLS_CHANNEL_CONTROL                                             Handle        = 0x8000400C\n\tCO_E_INIT_UNACCEPTED_USER_ALLOCATOR                                       Handle        = 0x8000400D\n\tCO_E_INIT_SCM_MUTEX_EXISTS                                                Handle        = 0x8000400E\n\tCO_E_INIT_SCM_FILE_MAPPING_EXISTS                                         Handle        = 0x8000400F\n\tCO_E_INIT_SCM_MAP_VIEW_OF_FILE                                            Handle        = 0x80004010\n\tCO_E_INIT_SCM_EXEC_FAILURE                                                Handle        = 0x80004011\n\tCO_E_INIT_ONLY_SINGLE_THREADED                                            Handle        = 0x80004012\n\tCO_E_CANT_REMOTE                                                          Handle        = 0x80004013\n\tCO_E_BAD_SERVER_NAME                                                      Handle        = 0x80004014\n\tCO_E_WRONG_SERVER_IDENTITY                                                Handle        = 0x80004015\n\tCO_E_OLE1DDE_DISABLED                                                     Handle        = 0x80004016\n\tCO_E_RUNAS_SYNTAX                                                         Handle        = 0x80004017\n\tCO_E_CREATEPROCESS_FAILURE                                                Handle        = 0x80004018\n\tCO_E_RUNAS_CREATEPROCESS_FAILURE                                          Handle        = 0x80004019\n\tCO_E_RUNAS_LOGON_FAILURE                                                  Handle        = 0x8000401A\n\tCO_E_LAUNCH_PERMSSION_DENIED                                              Handle        = 0x8000401B\n\tCO_E_START_SERVICE_FAILURE                                                Handle        = 0x8000401C\n\tCO_E_REMOTE_COMMUNICATION_FAILURE                                         Handle        = 0x8000401D\n\tCO_E_SERVER_START_TIMEOUT                                                 Handle        = 0x8000401E\n\tCO_E_CLSREG_INCONSISTENT                                                  Handle        = 0x8000401F\n\tCO_E_IIDREG_INCONSISTENT                                                  Handle        = 0x80004020\n\tCO_E_NOT_SUPPORTED                                                        Handle        = 0x80004021\n\tCO_E_RELOAD_DLL                                                           Handle        = 0x80004022\n\tCO_E_MSI_ERROR                                                            Handle        = 0x80004023\n\tCO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT                             Handle        = 0x80004024\n\tCO_E_SERVER_PAUSED                                                        Handle        = 0x80004025\n\tCO_E_SERVER_NOT_PAUSED                                                    Handle        = 0x80004026\n\tCO_E_CLASS_DISABLED                                                       Handle        = 0x80004027\n\tCO_E_CLRNOTAVAILABLE                                                      Handle        = 0x80004028\n\tCO_E_ASYNC_WORK_REJECTED                                                  Handle        = 0x80004029\n\tCO_E_SERVER_INIT_TIMEOUT                                                  Handle        = 0x8000402A\n\tCO_E_NO_SECCTX_IN_ACTIVATE                                                Handle        = 0x8000402B\n\tCO_E_TRACKER_CONFIG                                                       Handle        = 0x80004030\n\tCO_E_THREADPOOL_CONFIG                                                    Handle        = 0x80004031\n\tCO_E_SXS_CONFIG                                                           Handle        = 0x80004032\n\tCO_E_MALFORMED_SPN                                                        Handle        = 0x80004033\n\tCO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN                         Handle        = 0x80004034\n\tCO_E_PREMATURE_STUB_RUNDOWN                                               Handle        = 0x80004035\n\tS_OK                                                                      Handle        = 0\n\tS_FALSE                                                                   Handle        = 1\n\tOLE_E_FIRST                                                               Handle        = 0x80040000\n\tOLE_E_LAST                                                                Handle        = 0x800400FF\n\tOLE_S_FIRST                                                               Handle        = 0x00040000\n\tOLE_S_LAST                                                                Handle        = 0x000400FF\n\tOLE_E_OLEVERB                                                             Handle        = 0x80040000\n\tOLE_E_ADVF                                                                Handle        = 0x80040001\n\tOLE_E_ENUM_NOMORE                                                         Handle        = 0x80040002\n\tOLE_E_ADVISENOTSUPPORTED                                                  Handle        = 0x80040003\n\tOLE_E_NOCONNECTION                                                        Handle        = 0x80040004\n\tOLE_E_NOTRUNNING                                                          Handle        = 0x80040005\n\tOLE_E_NOCACHE                                                             Handle        = 0x80040006\n\tOLE_E_BLANK                                                               Handle        = 0x80040007\n\tOLE_E_CLASSDIFF                                                           Handle        = 0x80040008\n\tOLE_E_CANT_GETMONIKER                                                     Handle        = 0x80040009\n\tOLE_E_CANT_BINDTOSOURCE                                                   Handle        = 0x8004000A\n\tOLE_E_STATIC                                                              Handle        = 0x8004000B\n\tOLE_E_PROMPTSAVECANCELLED                                                 Handle        = 0x8004000C\n\tOLE_E_INVALIDRECT                                                         Handle        = 0x8004000D\n\tOLE_E_WRONGCOMPOBJ                                                        Handle        = 0x8004000E\n\tOLE_E_INVALIDHWND                                                         Handle        = 0x8004000F\n\tOLE_E_NOT_INPLACEACTIVE                                                   Handle        = 0x80040010\n\tOLE_E_CANTCONVERT                                                         Handle        = 0x80040011\n\tOLE_E_NOSTORAGE                                                           Handle        = 0x80040012\n\tDV_E_FORMATETC                                                            Handle        = 0x80040064\n\tDV_E_DVTARGETDEVICE                                                       Handle        = 0x80040065\n\tDV_E_STGMEDIUM                                                            Handle        = 0x80040066\n\tDV_E_STATDATA                                                             Handle        = 0x80040067\n\tDV_E_LINDEX                                                               Handle        = 0x80040068\n\tDV_E_TYMED                                                                Handle        = 0x80040069\n\tDV_E_CLIPFORMAT                                                           Handle        = 0x8004006A\n\tDV_E_DVASPECT                                                             Handle        = 0x8004006B\n\tDV_E_DVTARGETDEVICE_SIZE                                                  Handle        = 0x8004006C\n\tDV_E_NOIVIEWOBJECT                                                        Handle        = 0x8004006D\n\tDRAGDROP_E_FIRST                                                          syscall.Errno = 0x80040100\n\tDRAGDROP_E_LAST                                                           syscall.Errno = 0x8004010F\n\tDRAGDROP_S_FIRST                                                          syscall.Errno = 0x00040100\n\tDRAGDROP_S_LAST                                                           syscall.Errno = 0x0004010F\n\tDRAGDROP_E_NOTREGISTERED                                                  Handle        = 0x80040100\n\tDRAGDROP_E_ALREADYREGISTERED                                              Handle        = 0x80040101\n\tDRAGDROP_E_INVALIDHWND                                                    Handle        = 0x80040102\n\tDRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED                                      Handle        = 0x80040103\n\tCLASSFACTORY_E_FIRST                                                      syscall.Errno = 0x80040110\n\tCLASSFACTORY_E_LAST                                                       syscall.Errno = 0x8004011F\n\tCLASSFACTORY_S_FIRST                                                      syscall.Errno = 0x00040110\n\tCLASSFACTORY_S_LAST                                                       syscall.Errno = 0x0004011F\n\tCLASS_E_NOAGGREGATION                                                     Handle        = 0x80040110\n\tCLASS_E_CLASSNOTAVAILABLE                                                 Handle        = 0x80040111\n\tCLASS_E_NOTLICENSED                                                       Handle        = 0x80040112\n\tMARSHAL_E_FIRST                                                           syscall.Errno = 0x80040120\n\tMARSHAL_E_LAST                                                            syscall.Errno = 0x8004012F\n\tMARSHAL_S_FIRST                                                           syscall.Errno = 0x00040120\n\tMARSHAL_S_LAST                                                            syscall.Errno = 0x0004012F\n\tDATA_E_FIRST                                                              syscall.Errno = 0x80040130\n\tDATA_E_LAST                                                               syscall.Errno = 0x8004013F\n\tDATA_S_FIRST                                                              syscall.Errno = 0x00040130\n\tDATA_S_LAST                                                               syscall.Errno = 0x0004013F\n\tVIEW_E_FIRST                                                              syscall.Errno = 0x80040140\n\tVIEW_E_LAST                                                               syscall.Errno = 0x8004014F\n\tVIEW_S_FIRST                                                              syscall.Errno = 0x00040140\n\tVIEW_S_LAST                                                               syscall.Errno = 0x0004014F\n\tVIEW_E_DRAW                                                               Handle        = 0x80040140\n\tREGDB_E_FIRST                                                             syscall.Errno = 0x80040150\n\tREGDB_E_LAST                                                              syscall.Errno = 0x8004015F\n\tREGDB_S_FIRST                                                             syscall.Errno = 0x00040150\n\tREGDB_S_LAST                                                              syscall.Errno = 0x0004015F\n\tREGDB_E_READREGDB                                                         Handle        = 0x80040150\n\tREGDB_E_WRITEREGDB                                                        Handle        = 0x80040151\n\tREGDB_E_KEYMISSING                                                        Handle        = 0x80040152\n\tREGDB_E_INVALIDVALUE                                                      Handle        = 0x80040153\n\tREGDB_E_CLASSNOTREG                                                       Handle        = 0x80040154\n\tREGDB_E_IIDNOTREG                                                         Handle        = 0x80040155\n\tREGDB_E_BADTHREADINGMODEL                                                 Handle        = 0x80040156\n\tREGDB_E_PACKAGEPOLICYVIOLATION                                            Handle        = 0x80040157\n\tCAT_E_FIRST                                                               syscall.Errno = 0x80040160\n\tCAT_E_LAST                                                                syscall.Errno = 0x80040161\n\tCAT_E_CATIDNOEXIST                                                        Handle        = 0x80040160\n\tCAT_E_NODESCRIPTION                                                       Handle        = 0x80040161\n\tCS_E_FIRST                                                                syscall.Errno = 0x80040164\n\tCS_E_LAST                                                                 syscall.Errno = 0x8004016F\n\tCS_E_PACKAGE_NOTFOUND                                                     Handle        = 0x80040164\n\tCS_E_NOT_DELETABLE                                                        Handle        = 0x80040165\n\tCS_E_CLASS_NOTFOUND                                                       Handle        = 0x80040166\n\tCS_E_INVALID_VERSION                                                      Handle        = 0x80040167\n\tCS_E_NO_CLASSSTORE                                                        Handle        = 0x80040168\n\tCS_E_OBJECT_NOTFOUND                                                      Handle        = 0x80040169\n\tCS_E_OBJECT_ALREADY_EXISTS                                                Handle        = 0x8004016A\n\tCS_E_INVALID_PATH                                                         Handle        = 0x8004016B\n\tCS_E_NETWORK_ERROR                                                        Handle        = 0x8004016C\n\tCS_E_ADMIN_LIMIT_EXCEEDED                                                 Handle        = 0x8004016D\n\tCS_E_SCHEMA_MISMATCH                                                      Handle        = 0x8004016E\n\tCS_E_INTERNAL_ERROR                                                       Handle        = 0x8004016F\n\tCACHE_E_FIRST                                                             syscall.Errno = 0x80040170\n\tCACHE_E_LAST                                                              syscall.Errno = 0x8004017F\n\tCACHE_S_FIRST                                                             syscall.Errno = 0x00040170\n\tCACHE_S_LAST                                                              syscall.Errno = 0x0004017F\n\tCACHE_E_NOCACHE_UPDATED                                                   Handle        = 0x80040170\n\tOLEOBJ_E_FIRST                                                            syscall.Errno = 0x80040180\n\tOLEOBJ_E_LAST                                                             syscall.Errno = 0x8004018F\n\tOLEOBJ_S_FIRST                                                            syscall.Errno = 0x00040180\n\tOLEOBJ_S_LAST                                                             syscall.Errno = 0x0004018F\n\tOLEOBJ_E_NOVERBS                                                          Handle        = 0x80040180\n\tOLEOBJ_E_INVALIDVERB                                                      Handle        = 0x80040181\n\tCLIENTSITE_E_FIRST                                                        syscall.Errno = 0x80040190\n\tCLIENTSITE_E_LAST                                                         syscall.Errno = 0x8004019F\n\tCLIENTSITE_S_FIRST                                                        syscall.Errno = 0x00040190\n\tCLIENTSITE_S_LAST                                                         syscall.Errno = 0x0004019F\n\tINPLACE_E_NOTUNDOABLE                                                     Handle        = 0x800401A0\n\tINPLACE_E_NOTOOLSPACE                                                     Handle        = 0x800401A1\n\tINPLACE_E_FIRST                                                           syscall.Errno = 0x800401A0\n\tINPLACE_E_LAST                                                            syscall.Errno = 0x800401AF\n\tINPLACE_S_FIRST                                                           syscall.Errno = 0x000401A0\n\tINPLACE_S_LAST                                                            syscall.Errno = 0x000401AF\n\tENUM_E_FIRST                                                              syscall.Errno = 0x800401B0\n\tENUM_E_LAST                                                               syscall.Errno = 0x800401BF\n\tENUM_S_FIRST                                                              syscall.Errno = 0x000401B0\n\tENUM_S_LAST                                                               syscall.Errno = 0x000401BF\n\tCONVERT10_E_FIRST                                                         syscall.Errno = 0x800401C0\n\tCONVERT10_E_LAST                                                          syscall.Errno = 0x800401CF\n\tCONVERT10_S_FIRST                                                         syscall.Errno = 0x000401C0\n\tCONVERT10_S_LAST                                                          syscall.Errno = 0x000401CF\n\tCONVERT10_E_OLESTREAM_GET                                                 Handle        = 0x800401C0\n\tCONVERT10_E_OLESTREAM_PUT                                                 Handle        = 0x800401C1\n\tCONVERT10_E_OLESTREAM_FMT                                                 Handle        = 0x800401C2\n\tCONVERT10_E_OLESTREAM_BITMAP_TO_DIB                                       Handle        = 0x800401C3\n\tCONVERT10_E_STG_FMT                                                       Handle        = 0x800401C4\n\tCONVERT10_E_STG_NO_STD_STREAM                                             Handle        = 0x800401C5\n\tCONVERT10_E_STG_DIB_TO_BITMAP                                             Handle        = 0x800401C6\n\tCLIPBRD_E_FIRST                                                           syscall.Errno = 0x800401D0\n\tCLIPBRD_E_LAST                                                            syscall.Errno = 0x800401DF\n\tCLIPBRD_S_FIRST                                                           syscall.Errno = 0x000401D0\n\tCLIPBRD_S_LAST                                                            syscall.Errno = 0x000401DF\n\tCLIPBRD_E_CANT_OPEN                                                       Handle        = 0x800401D0\n\tCLIPBRD_E_CANT_EMPTY                                                      Handle        = 0x800401D1\n\tCLIPBRD_E_CANT_SET                                                        Handle        = 0x800401D2\n\tCLIPBRD_E_BAD_DATA                                                        Handle        = 0x800401D3\n\tCLIPBRD_E_CANT_CLOSE                                                      Handle        = 0x800401D4\n\tMK_E_FIRST                                                                syscall.Errno = 0x800401E0\n\tMK_E_LAST                                                                 syscall.Errno = 0x800401EF\n\tMK_S_FIRST                                                                syscall.Errno = 0x000401E0\n\tMK_S_LAST                                                                 syscall.Errno = 0x000401EF\n\tMK_E_CONNECTMANUALLY                                                      Handle        = 0x800401E0\n\tMK_E_EXCEEDEDDEADLINE                                                     Handle        = 0x800401E1\n\tMK_E_NEEDGENERIC                                                          Handle        = 0x800401E2\n\tMK_E_UNAVAILABLE                                                          Handle        = 0x800401E3\n\tMK_E_SYNTAX                                                               Handle        = 0x800401E4\n\tMK_E_NOOBJECT                                                             Handle        = 0x800401E5\n\tMK_E_INVALIDEXTENSION                                                     Handle        = 0x800401E6\n\tMK_E_INTERMEDIATEINTERFACENOTSUPPORTED                                    Handle        = 0x800401E7\n\tMK_E_NOTBINDABLE                                                          Handle        = 0x800401E8\n\tMK_E_NOTBOUND                                                             Handle        = 0x800401E9\n\tMK_E_CANTOPENFILE                                                         Handle        = 0x800401EA\n\tMK_E_MUSTBOTHERUSER                                                       Handle        = 0x800401EB\n\tMK_E_NOINVERSE                                                            Handle        = 0x800401EC\n\tMK_E_NOSTORAGE                                                            Handle        = 0x800401ED\n\tMK_E_NOPREFIX                                                             Handle        = 0x800401EE\n\tMK_E_ENUMERATION_FAILED                                                   Handle        = 0x800401EF\n\tCO_E_FIRST                                                                syscall.Errno = 0x800401F0\n\tCO_E_LAST                                                                 syscall.Errno = 0x800401FF\n\tCO_S_FIRST                                                                syscall.Errno = 0x000401F0\n\tCO_S_LAST                                                                 syscall.Errno = 0x000401FF\n\tCO_E_NOTINITIALIZED                                                       Handle        = 0x800401F0\n\tCO_E_ALREADYINITIALIZED                                                   Handle        = 0x800401F1\n\tCO_E_CANTDETERMINECLASS                                                   Handle        = 0x800401F2\n\tCO_E_CLASSSTRING                                                          Handle        = 0x800401F3\n\tCO_E_IIDSTRING                                                            Handle        = 0x800401F4\n\tCO_E_APPNOTFOUND                                                          Handle        = 0x800401F5\n\tCO_E_APPSINGLEUSE                                                         Handle        = 0x800401F6\n\tCO_E_ERRORINAPP                                                           Handle        = 0x800401F7\n\tCO_E_DLLNOTFOUND                                                          Handle        = 0x800401F8\n\tCO_E_ERRORINDLL                                                           Handle        = 0x800401F9\n\tCO_E_WRONGOSFORAPP                                                        Handle        = 0x800401FA\n\tCO_E_OBJNOTREG                                                            Handle        = 0x800401FB\n\tCO_E_OBJISREG                                                             Handle        = 0x800401FC\n\tCO_E_OBJNOTCONNECTED                                                      Handle        = 0x800401FD\n\tCO_E_APPDIDNTREG                                                          Handle        = 0x800401FE\n\tCO_E_RELEASED                                                             Handle        = 0x800401FF\n\tEVENT_E_FIRST                                                             syscall.Errno = 0x80040200\n\tEVENT_E_LAST                                                              syscall.Errno = 0x8004021F\n\tEVENT_S_FIRST                                                             syscall.Errno = 0x00040200\n\tEVENT_S_LAST                                                              syscall.Errno = 0x0004021F\n\tEVENT_S_SOME_SUBSCRIBERS_FAILED                                           Handle        = 0x00040200\n\tEVENT_E_ALL_SUBSCRIBERS_FAILED                                            Handle        = 0x80040201\n\tEVENT_S_NOSUBSCRIBERS                                                     Handle        = 0x00040202\n\tEVENT_E_QUERYSYNTAX                                                       Handle        = 0x80040203\n\tEVENT_E_QUERYFIELD                                                        Handle        = 0x80040204\n\tEVENT_E_INTERNALEXCEPTION                                                 Handle        = 0x80040205\n\tEVENT_E_INTERNALERROR                                                     Handle        = 0x80040206\n\tEVENT_E_INVALID_PER_USER_SID                                              Handle        = 0x80040207\n\tEVENT_E_USER_EXCEPTION                                                    Handle        = 0x80040208\n\tEVENT_E_TOO_MANY_METHODS                                                  Handle        = 0x80040209\n\tEVENT_E_MISSING_EVENTCLASS                                                Handle        = 0x8004020A\n\tEVENT_E_NOT_ALL_REMOVED                                                   Handle        = 0x8004020B\n\tEVENT_E_COMPLUS_NOT_INSTALLED                                             Handle        = 0x8004020C\n\tEVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT                         Handle        = 0x8004020D\n\tEVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT                           Handle        = 0x8004020E\n\tEVENT_E_INVALID_EVENT_CLASS_PARTITION                                     Handle        = 0x8004020F\n\tEVENT_E_PER_USER_SID_NOT_LOGGED_ON                                        Handle        = 0x80040210\n\tTPC_E_INVALID_PROPERTY                                                    Handle        = 0x80040241\n\tTPC_E_NO_DEFAULT_TABLET                                                   Handle        = 0x80040212\n\tTPC_E_UNKNOWN_PROPERTY                                                    Handle        = 0x8004021B\n\tTPC_E_INVALID_INPUT_RECT                                                  Handle        = 0x80040219\n\tTPC_E_INVALID_STROKE                                                      Handle        = 0x80040222\n\tTPC_E_INITIALIZE_FAIL                                                     Handle        = 0x80040223\n\tTPC_E_NOT_RELEVANT                                                        Handle        = 0x80040232\n\tTPC_E_INVALID_PACKET_DESCRIPTION                                          Handle        = 0x80040233\n\tTPC_E_RECOGNIZER_NOT_REGISTERED                                           Handle        = 0x80040235\n\tTPC_E_INVALID_RIGHTS                                                      Handle        = 0x80040236\n\tTPC_E_OUT_OF_ORDER_CALL                                                   Handle        = 0x80040237\n\tTPC_E_QUEUE_FULL                                                          Handle        = 0x80040238\n\tTPC_E_INVALID_CONFIGURATION                                               Handle        = 0x80040239\n\tTPC_E_INVALID_DATA_FROM_RECOGNIZER                                        Handle        = 0x8004023A\n\tTPC_S_TRUNCATED                                                           Handle        = 0x00040252\n\tTPC_S_INTERRUPTED                                                         Handle        = 0x00040253\n\tTPC_S_NO_DATA_TO_PROCESS                                                  Handle        = 0x00040254\n\tXACT_E_FIRST                                                              syscall.Errno = 0x8004D000\n\tXACT_E_LAST                                                               syscall.Errno = 0x8004D02B\n\tXACT_S_FIRST                                                              syscall.Errno = 0x0004D000\n\tXACT_S_LAST                                                               syscall.Errno = 0x0004D010\n\tXACT_E_ALREADYOTHERSINGLEPHASE                                            Handle        = 0x8004D000\n\tXACT_E_CANTRETAIN                                                         Handle        = 0x8004D001\n\tXACT_E_COMMITFAILED                                                       Handle        = 0x8004D002\n\tXACT_E_COMMITPREVENTED                                                    Handle        = 0x8004D003\n\tXACT_E_HEURISTICABORT                                                     Handle        = 0x8004D004\n\tXACT_E_HEURISTICCOMMIT                                                    Handle        = 0x8004D005\n\tXACT_E_HEURISTICDAMAGE                                                    Handle        = 0x8004D006\n\tXACT_E_HEURISTICDANGER                                                    Handle        = 0x8004D007\n\tXACT_E_ISOLATIONLEVEL                                                     Handle        = 0x8004D008\n\tXACT_E_NOASYNC                                                            Handle        = 0x8004D009\n\tXACT_E_NOENLIST                                                           Handle        = 0x8004D00A\n\tXACT_E_NOISORETAIN                                                        Handle        = 0x8004D00B\n\tXACT_E_NORESOURCE                                                         Handle        = 0x8004D00C\n\tXACT_E_NOTCURRENT                                                         Handle        = 0x8004D00D\n\tXACT_E_NOTRANSACTION                                                      Handle        = 0x8004D00E\n\tXACT_E_NOTSUPPORTED                                                       Handle        = 0x8004D00F\n\tXACT_E_UNKNOWNRMGRID                                                      Handle        = 0x8004D010\n\tXACT_E_WRONGSTATE                                                         Handle        = 0x8004D011\n\tXACT_E_WRONGUOW                                                           Handle        = 0x8004D012\n\tXACT_E_XTIONEXISTS                                                        Handle        = 0x8004D013\n\tXACT_E_NOIMPORTOBJECT                                                     Handle        = 0x8004D014\n\tXACT_E_INVALIDCOOKIE                                                      Handle        = 0x8004D015\n\tXACT_E_INDOUBT                                                            Handle        = 0x8004D016\n\tXACT_E_NOTIMEOUT                                                          Handle        = 0x8004D017\n\tXACT_E_ALREADYINPROGRESS                                                  Handle        = 0x8004D018\n\tXACT_E_ABORTED                                                            Handle        = 0x8004D019\n\tXACT_E_LOGFULL                                                            Handle        = 0x8004D01A\n\tXACT_E_TMNOTAVAILABLE                                                     Handle        = 0x8004D01B\n\tXACT_E_CONNECTION_DOWN                                                    Handle        = 0x8004D01C\n\tXACT_E_CONNECTION_DENIED                                                  Handle        = 0x8004D01D\n\tXACT_E_REENLISTTIMEOUT                                                    Handle        = 0x8004D01E\n\tXACT_E_TIP_CONNECT_FAILED                                                 Handle        = 0x8004D01F\n\tXACT_E_TIP_PROTOCOL_ERROR                                                 Handle        = 0x8004D020\n\tXACT_E_TIP_PULL_FAILED                                                    Handle        = 0x8004D021\n\tXACT_E_DEST_TMNOTAVAILABLE                                                Handle        = 0x8004D022\n\tXACT_E_TIP_DISABLED                                                       Handle        = 0x8004D023\n\tXACT_E_NETWORK_TX_DISABLED                                                Handle        = 0x8004D024\n\tXACT_E_PARTNER_NETWORK_TX_DISABLED                                        Handle        = 0x8004D025\n\tXACT_E_XA_TX_DISABLED                                                     Handle        = 0x8004D026\n\tXACT_E_UNABLE_TO_READ_DTC_CONFIG                                          Handle        = 0x8004D027\n\tXACT_E_UNABLE_TO_LOAD_DTC_PROXY                                           Handle        = 0x8004D028\n\tXACT_E_ABORTING                                                           Handle        = 0x8004D029\n\tXACT_E_PUSH_COMM_FAILURE                                                  Handle        = 0x8004D02A\n\tXACT_E_PULL_COMM_FAILURE                                                  Handle        = 0x8004D02B\n\tXACT_E_LU_TX_DISABLED                                                     Handle        = 0x8004D02C\n\tXACT_E_CLERKNOTFOUND                                                      Handle        = 0x8004D080\n\tXACT_E_CLERKEXISTS                                                        Handle        = 0x8004D081\n\tXACT_E_RECOVERYINPROGRESS                                                 Handle        = 0x8004D082\n\tXACT_E_TRANSACTIONCLOSED                                                  Handle        = 0x8004D083\n\tXACT_E_INVALIDLSN                                                         Handle        = 0x8004D084\n\tXACT_E_REPLAYREQUEST                                                      Handle        = 0x8004D085\n\tXACT_S_ASYNC                                                              Handle        = 0x0004D000\n\tXACT_S_DEFECT                                                             Handle        = 0x0004D001\n\tXACT_S_READONLY                                                           Handle        = 0x0004D002\n\tXACT_S_SOMENORETAIN                                                       Handle        = 0x0004D003\n\tXACT_S_OKINFORM                                                           Handle        = 0x0004D004\n\tXACT_S_MADECHANGESCONTENT                                                 Handle        = 0x0004D005\n\tXACT_S_MADECHANGESINFORM                                                  Handle        = 0x0004D006\n\tXACT_S_ALLNORETAIN                                                        Handle        = 0x0004D007\n\tXACT_S_ABORTING                                                           Handle        = 0x0004D008\n\tXACT_S_SINGLEPHASE                                                        Handle        = 0x0004D009\n\tXACT_S_LOCALLY_OK                                                         Handle        = 0x0004D00A\n\tXACT_S_LASTRESOURCEMANAGER                                                Handle        = 0x0004D010\n\tCONTEXT_E_FIRST                                                           syscall.Errno = 0x8004E000\n\tCONTEXT_E_LAST                                                            syscall.Errno = 0x8004E02F\n\tCONTEXT_S_FIRST                                                           syscall.Errno = 0x0004E000\n\tCONTEXT_S_LAST                                                            syscall.Errno = 0x0004E02F\n\tCONTEXT_E_ABORTED                                                         Handle        = 0x8004E002\n\tCONTEXT_E_ABORTING                                                        Handle        = 0x8004E003\n\tCONTEXT_E_NOCONTEXT                                                       Handle        = 0x8004E004\n\tCONTEXT_E_WOULD_DEADLOCK                                                  Handle        = 0x8004E005\n\tCONTEXT_E_SYNCH_TIMEOUT                                                   Handle        = 0x8004E006\n\tCONTEXT_E_OLDREF                                                          Handle        = 0x8004E007\n\tCONTEXT_E_ROLENOTFOUND                                                    Handle        = 0x8004E00C\n\tCONTEXT_E_TMNOTAVAILABLE                                                  Handle        = 0x8004E00F\n\tCO_E_ACTIVATIONFAILED                                                     Handle        = 0x8004E021\n\tCO_E_ACTIVATIONFAILED_EVENTLOGGED                                         Handle        = 0x8004E022\n\tCO_E_ACTIVATIONFAILED_CATALOGERROR                                        Handle        = 0x8004E023\n\tCO_E_ACTIVATIONFAILED_TIMEOUT                                             Handle        = 0x8004E024\n\tCO_E_INITIALIZATIONFAILED                                                 Handle        = 0x8004E025\n\tCONTEXT_E_NOJIT                                                           Handle        = 0x8004E026\n\tCONTEXT_E_NOTRANSACTION                                                   Handle        = 0x8004E027\n\tCO_E_THREADINGMODEL_CHANGED                                               Handle        = 0x8004E028\n\tCO_E_NOIISINTRINSICS                                                      Handle        = 0x8004E029\n\tCO_E_NOCOOKIES                                                            Handle        = 0x8004E02A\n\tCO_E_DBERROR                                                              Handle        = 0x8004E02B\n\tCO_E_NOTPOOLED                                                            Handle        = 0x8004E02C\n\tCO_E_NOTCONSTRUCTED                                                       Handle        = 0x8004E02D\n\tCO_E_NOSYNCHRONIZATION                                                    Handle        = 0x8004E02E\n\tCO_E_ISOLEVELMISMATCH                                                     Handle        = 0x8004E02F\n\tCO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED                                     Handle        = 0x8004E030\n\tCO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED                                    Handle        = 0x8004E031\n\tOLE_S_USEREG                                                              Handle        = 0x00040000\n\tOLE_S_STATIC                                                              Handle        = 0x00040001\n\tOLE_S_MAC_CLIPFORMAT                                                      Handle        = 0x00040002\n\tDRAGDROP_S_DROP                                                           Handle        = 0x00040100\n\tDRAGDROP_S_CANCEL                                                         Handle        = 0x00040101\n\tDRAGDROP_S_USEDEFAULTCURSORS                                              Handle        = 0x00040102\n\tDATA_S_SAMEFORMATETC                                                      Handle        = 0x00040130\n\tVIEW_S_ALREADY_FROZEN                                                     Handle        = 0x00040140\n\tCACHE_S_FORMATETC_NOTSUPPORTED                                            Handle        = 0x00040170\n\tCACHE_S_SAMECACHE                                                         Handle        = 0x00040171\n\tCACHE_S_SOMECACHES_NOTUPDATED                                             Handle        = 0x00040172\n\tOLEOBJ_S_INVALIDVERB                                                      Handle        = 0x00040180\n\tOLEOBJ_S_CANNOT_DOVERB_NOW                                                Handle        = 0x00040181\n\tOLEOBJ_S_INVALIDHWND                                                      Handle        = 0x00040182\n\tINPLACE_S_TRUNCATED                                                       Handle        = 0x000401A0\n\tCONVERT10_S_NO_PRESENTATION                                               Handle        = 0x000401C0\n\tMK_S_REDUCED_TO_SELF                                                      Handle        = 0x000401E2\n\tMK_S_ME                                                                   Handle        = 0x000401E4\n\tMK_S_HIM                                                                  Handle        = 0x000401E5\n\tMK_S_US                                                                   Handle        = 0x000401E6\n\tMK_S_MONIKERALREADYREGISTERED                                             Handle        = 0x000401E7\n\tSCHED_S_TASK_READY                                                        Handle        = 0x00041300\n\tSCHED_S_TASK_RUNNING                                                      Handle        = 0x00041301\n\tSCHED_S_TASK_DISABLED                                                     Handle        = 0x00041302\n\tSCHED_S_TASK_HAS_NOT_RUN                                                  Handle        = 0x00041303\n\tSCHED_S_TASK_NO_MORE_RUNS                                                 Handle        = 0x00041304\n\tSCHED_S_TASK_NOT_SCHEDULED                                                Handle        = 0x00041305\n\tSCHED_S_TASK_TERMINATED                                                   Handle        = 0x00041306\n\tSCHED_S_TASK_NO_VALID_TRIGGERS                                            Handle        = 0x00041307\n\tSCHED_S_EVENT_TRIGGER                                                     Handle        = 0x00041308\n\tSCHED_E_TRIGGER_NOT_FOUND                                                 Handle        = 0x80041309\n\tSCHED_E_TASK_NOT_READY                                                    Handle        = 0x8004130A\n\tSCHED_E_TASK_NOT_RUNNING                                                  Handle        = 0x8004130B\n\tSCHED_E_SERVICE_NOT_INSTALLED                                             Handle        = 0x8004130C\n\tSCHED_E_CANNOT_OPEN_TASK                                                  Handle        = 0x8004130D\n\tSCHED_E_INVALID_TASK                                                      Handle        = 0x8004130E\n\tSCHED_E_ACCOUNT_INFORMATION_NOT_SET                                       Handle        = 0x8004130F\n\tSCHED_E_ACCOUNT_NAME_NOT_FOUND                                            Handle        = 0x80041310\n\tSCHED_E_ACCOUNT_DBASE_CORRUPT                                             Handle        = 0x80041311\n\tSCHED_E_NO_SECURITY_SERVICES                                              Handle        = 0x80041312\n\tSCHED_E_UNKNOWN_OBJECT_VERSION                                            Handle        = 0x80041313\n\tSCHED_E_UNSUPPORTED_ACCOUNT_OPTION                                        Handle        = 0x80041314\n\tSCHED_E_SERVICE_NOT_RUNNING                                               Handle        = 0x80041315\n\tSCHED_E_UNEXPECTEDNODE                                                    Handle        = 0x80041316\n\tSCHED_E_NAMESPACE                                                         Handle        = 0x80041317\n\tSCHED_E_INVALIDVALUE                                                      Handle        = 0x80041318\n\tSCHED_E_MISSINGNODE                                                       Handle        = 0x80041319\n\tSCHED_E_MALFORMEDXML                                                      Handle        = 0x8004131A\n\tSCHED_S_SOME_TRIGGERS_FAILED                                              Handle        = 0x0004131B\n\tSCHED_S_BATCH_LOGON_PROBLEM                                               Handle        = 0x0004131C\n\tSCHED_E_TOO_MANY_NODES                                                    Handle        = 0x8004131D\n\tSCHED_E_PAST_END_BOUNDARY                                                 Handle        = 0x8004131E\n\tSCHED_E_ALREADY_RUNNING                                                   Handle        = 0x8004131F\n\tSCHED_E_USER_NOT_LOGGED_ON                                                Handle        = 0x80041320\n\tSCHED_E_INVALID_TASK_HASH                                                 Handle        = 0x80041321\n\tSCHED_E_SERVICE_NOT_AVAILABLE                                             Handle        = 0x80041322\n\tSCHED_E_SERVICE_TOO_BUSY                                                  Handle        = 0x80041323\n\tSCHED_E_TASK_ATTEMPTED                                                    Handle        = 0x80041324\n\tSCHED_S_TASK_QUEUED                                                       Handle        = 0x00041325\n\tSCHED_E_TASK_DISABLED                                                     Handle        = 0x80041326\n\tSCHED_E_TASK_NOT_V1_COMPAT                                                Handle        = 0x80041327\n\tSCHED_E_START_ON_DEMAND                                                   Handle        = 0x80041328\n\tSCHED_E_TASK_NOT_UBPM_COMPAT                                              Handle        = 0x80041329\n\tSCHED_E_DEPRECATED_FEATURE_USED                                           Handle        = 0x80041330\n\tCO_E_CLASS_CREATE_FAILED                                                  Handle        = 0x80080001\n\tCO_E_SCM_ERROR                                                            Handle        = 0x80080002\n\tCO_E_SCM_RPC_FAILURE                                                      Handle        = 0x80080003\n\tCO_E_BAD_PATH                                                             Handle        = 0x80080004\n\tCO_E_SERVER_EXEC_FAILURE                                                  Handle        = 0x80080005\n\tCO_E_OBJSRV_RPC_FAILURE                                                   Handle        = 0x80080006\n\tMK_E_NO_NORMALIZED                                                        Handle        = 0x80080007\n\tCO_E_SERVER_STOPPING                                                      Handle        = 0x80080008\n\tMEM_E_INVALID_ROOT                                                        Handle        = 0x80080009\n\tMEM_E_INVALID_LINK                                                        Handle        = 0x80080010\n\tMEM_E_INVALID_SIZE                                                        Handle        = 0x80080011\n\tCO_S_NOTALLINTERFACES                                                     Handle        = 0x00080012\n\tCO_S_MACHINENAMENOTFOUND                                                  Handle        = 0x00080013\n\tCO_E_MISSING_DISPLAYNAME                                                  Handle        = 0x80080015\n\tCO_E_RUNAS_VALUE_MUST_BE_AAA                                              Handle        = 0x80080016\n\tCO_E_ELEVATION_DISABLED                                                   Handle        = 0x80080017\n\tAPPX_E_PACKAGING_INTERNAL                                                 Handle        = 0x80080200\n\tAPPX_E_INTERLEAVING_NOT_ALLOWED                                           Handle        = 0x80080201\n\tAPPX_E_RELATIONSHIPS_NOT_ALLOWED                                          Handle        = 0x80080202\n\tAPPX_E_MISSING_REQUIRED_FILE                                              Handle        = 0x80080203\n\tAPPX_E_INVALID_MANIFEST                                                   Handle        = 0x80080204\n\tAPPX_E_INVALID_BLOCKMAP                                                   Handle        = 0x80080205\n\tAPPX_E_CORRUPT_CONTENT                                                    Handle        = 0x80080206\n\tAPPX_E_BLOCK_HASH_INVALID                                                 Handle        = 0x80080207\n\tAPPX_E_REQUESTED_RANGE_TOO_LARGE                                          Handle        = 0x80080208\n\tAPPX_E_INVALID_SIP_CLIENT_DATA                                            Handle        = 0x80080209\n\tAPPX_E_INVALID_KEY_INFO                                                   Handle        = 0x8008020A\n\tAPPX_E_INVALID_CONTENTGROUPMAP                                            Handle        = 0x8008020B\n\tAPPX_E_INVALID_APPINSTALLER                                               Handle        = 0x8008020C\n\tAPPX_E_DELTA_BASELINE_VERSION_MISMATCH                                    Handle        = 0x8008020D\n\tAPPX_E_DELTA_PACKAGE_MISSING_FILE                                         Handle        = 0x8008020E\n\tAPPX_E_INVALID_DELTA_PACKAGE                                              Handle        = 0x8008020F\n\tAPPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED                                 Handle        = 0x80080210\n\tAPPX_E_INVALID_PACKAGING_LAYOUT                                           Handle        = 0x80080211\n\tAPPX_E_INVALID_PACKAGESIGNCONFIG                                          Handle        = 0x80080212\n\tAPPX_E_RESOURCESPRI_NOT_ALLOWED                                           Handle        = 0x80080213\n\tAPPX_E_FILE_COMPRESSION_MISMATCH                                          Handle        = 0x80080214\n\tAPPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION                                  Handle        = 0x80080215\n\tAPPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST                             Handle        = 0x80080216\n\tBT_E_SPURIOUS_ACTIVATION                                                  Handle        = 0x80080300\n\tDISP_E_UNKNOWNINTERFACE                                                   Handle        = 0x80020001\n\tDISP_E_MEMBERNOTFOUND                                                     Handle        = 0x80020003\n\tDISP_E_PARAMNOTFOUND                                                      Handle        = 0x80020004\n\tDISP_E_TYPEMISMATCH                                                       Handle        = 0x80020005\n\tDISP_E_UNKNOWNNAME                                                        Handle        = 0x80020006\n\tDISP_E_NONAMEDARGS                                                        Handle        = 0x80020007\n\tDISP_E_BADVARTYPE                                                         Handle        = 0x80020008\n\tDISP_E_EXCEPTION                                                          Handle        = 0x80020009\n\tDISP_E_OVERFLOW                                                           Handle        = 0x8002000A\n\tDISP_E_BADINDEX                                                           Handle        = 0x8002000B\n\tDISP_E_UNKNOWNLCID                                                        Handle        = 0x8002000C\n\tDISP_E_ARRAYISLOCKED                                                      Handle        = 0x8002000D\n\tDISP_E_BADPARAMCOUNT                                                      Handle        = 0x8002000E\n\tDISP_E_PARAMNOTOPTIONAL                                                   Handle        = 0x8002000F\n\tDISP_E_BADCALLEE                                                          Handle        = 0x80020010\n\tDISP_E_NOTACOLLECTION                                                     Handle        = 0x80020011\n\tDISP_E_DIVBYZERO                                                          Handle        = 0x80020012\n\tDISP_E_BUFFERTOOSMALL                                                     Handle        = 0x80020013\n\tTYPE_E_BUFFERTOOSMALL                                                     Handle        = 0x80028016\n\tTYPE_E_FIELDNOTFOUND                                                      Handle        = 0x80028017\n\tTYPE_E_INVDATAREAD                                                        Handle        = 0x80028018\n\tTYPE_E_UNSUPFORMAT                                                        Handle        = 0x80028019\n\tTYPE_E_REGISTRYACCESS                                                     Handle        = 0x8002801C\n\tTYPE_E_LIBNOTREGISTERED                                                   Handle        = 0x8002801D\n\tTYPE_E_UNDEFINEDTYPE                                                      Handle        = 0x80028027\n\tTYPE_E_QUALIFIEDNAMEDISALLOWED                                            Handle        = 0x80028028\n\tTYPE_E_INVALIDSTATE                                                       Handle        = 0x80028029\n\tTYPE_E_WRONGTYPEKIND                                                      Handle        = 0x8002802A\n\tTYPE_E_ELEMENTNOTFOUND                                                    Handle        = 0x8002802B\n\tTYPE_E_AMBIGUOUSNAME                                                      Handle        = 0x8002802C\n\tTYPE_E_NAMECONFLICT                                                       Handle        = 0x8002802D\n\tTYPE_E_UNKNOWNLCID                                                        Handle        = 0x8002802E\n\tTYPE_E_DLLFUNCTIONNOTFOUND                                                Handle        = 0x8002802F\n\tTYPE_E_BADMODULEKIND                                                      Handle        = 0x800288BD\n\tTYPE_E_SIZETOOBIG                                                         Handle        = 0x800288C5\n\tTYPE_E_DUPLICATEID                                                        Handle        = 0x800288C6\n\tTYPE_E_INVALIDID                                                          Handle        = 0x800288CF\n\tTYPE_E_TYPEMISMATCH                                                       Handle        = 0x80028CA0\n\tTYPE_E_OUTOFBOUNDS                                                        Handle        = 0x80028CA1\n\tTYPE_E_IOERROR                                                            Handle        = 0x80028CA2\n\tTYPE_E_CANTCREATETMPFILE                                                  Handle        = 0x80028CA3\n\tTYPE_E_CANTLOADLIBRARY                                                    Handle        = 0x80029C4A\n\tTYPE_E_INCONSISTENTPROPFUNCS                                              Handle        = 0x80029C83\n\tTYPE_E_CIRCULARTYPE                                                       Handle        = 0x80029C84\n\tSTG_E_INVALIDFUNCTION                                                     Handle        = 0x80030001\n\tSTG_E_FILENOTFOUND                                                        Handle        = 0x80030002\n\tSTG_E_PATHNOTFOUND                                                        Handle        = 0x80030003\n\tSTG_E_TOOMANYOPENFILES                                                    Handle        = 0x80030004\n\tSTG_E_ACCESSDENIED                                                        Handle        = 0x80030005\n\tSTG_E_INVALIDHANDLE                                                       Handle        = 0x80030006\n\tSTG_E_INSUFFICIENTMEMORY                                                  Handle        = 0x80030008\n\tSTG_E_INVALIDPOINTER                                                      Handle        = 0x80030009\n\tSTG_E_NOMOREFILES                                                         Handle        = 0x80030012\n\tSTG_E_DISKISWRITEPROTECTED                                                Handle        = 0x80030013\n\tSTG_E_SEEKERROR                                                           Handle        = 0x80030019\n\tSTG_E_WRITEFAULT                                                          Handle        = 0x8003001D\n\tSTG_E_READFAULT                                                           Handle        = 0x8003001E\n\tSTG_E_SHAREVIOLATION                                                      Handle        = 0x80030020\n\tSTG_E_LOCKVIOLATION                                                       Handle        = 0x80030021\n\tSTG_E_FILEALREADYEXISTS                                                   Handle        = 0x80030050\n\tSTG_E_INVALIDPARAMETER                                                    Handle        = 0x80030057\n\tSTG_E_MEDIUMFULL                                                          Handle        = 0x80030070\n\tSTG_E_PROPSETMISMATCHED                                                   Handle        = 0x800300F0\n\tSTG_E_ABNORMALAPIEXIT                                                     Handle        = 0x800300FA\n\tSTG_E_INVALIDHEADER                                                       Handle        = 0x800300FB\n\tSTG_E_INVALIDNAME                                                         Handle        = 0x800300FC\n\tSTG_E_UNKNOWN                                                             Handle        = 0x800300FD\n\tSTG_E_UNIMPLEMENTEDFUNCTION                                               Handle        = 0x800300FE\n\tSTG_E_INVALIDFLAG                                                         Handle        = 0x800300FF\n\tSTG_E_INUSE                                                               Handle        = 0x80030100\n\tSTG_E_NOTCURRENT                                                          Handle        = 0x80030101\n\tSTG_E_REVERTED                                                            Handle        = 0x80030102\n\tSTG_E_CANTSAVE                                                            Handle        = 0x80030103\n\tSTG_E_OLDFORMAT                                                           Handle        = 0x80030104\n\tSTG_E_OLDDLL                                                              Handle        = 0x80030105\n\tSTG_E_SHAREREQUIRED                                                       Handle        = 0x80030106\n\tSTG_E_NOTFILEBASEDSTORAGE                                                 Handle        = 0x80030107\n\tSTG_E_EXTANTMARSHALLINGS                                                  Handle        = 0x80030108\n\tSTG_E_DOCFILECORRUPT                                                      Handle        = 0x80030109\n\tSTG_E_BADBASEADDRESS                                                      Handle        = 0x80030110\n\tSTG_E_DOCFILETOOLARGE                                                     Handle        = 0x80030111\n\tSTG_E_NOTSIMPLEFORMAT                                                     Handle        = 0x80030112\n\tSTG_E_INCOMPLETE                                                          Handle        = 0x80030201\n\tSTG_E_TERMINATED                                                          Handle        = 0x80030202\n\tSTG_S_CONVERTED                                                           Handle        = 0x00030200\n\tSTG_S_BLOCK                                                               Handle        = 0x00030201\n\tSTG_S_RETRYNOW                                                            Handle        = 0x00030202\n\tSTG_S_MONITORING                                                          Handle        = 0x00030203\n\tSTG_S_MULTIPLEOPENS                                                       Handle        = 0x00030204\n\tSTG_S_CONSOLIDATIONFAILED                                                 Handle        = 0x00030205\n\tSTG_S_CANNOTCONSOLIDATE                                                   Handle        = 0x00030206\n\tSTG_S_POWER_CYCLE_REQUIRED                                                Handle        = 0x00030207\n\tSTG_E_FIRMWARE_SLOT_INVALID                                               Handle        = 0x80030208\n\tSTG_E_FIRMWARE_IMAGE_INVALID                                              Handle        = 0x80030209\n\tSTG_E_DEVICE_UNRESPONSIVE                                                 Handle        = 0x8003020A\n\tSTG_E_STATUS_COPY_PROTECTION_FAILURE                                      Handle        = 0x80030305\n\tSTG_E_CSS_AUTHENTICATION_FAILURE                                          Handle        = 0x80030306\n\tSTG_E_CSS_KEY_NOT_PRESENT                                                 Handle        = 0x80030307\n\tSTG_E_CSS_KEY_NOT_ESTABLISHED                                             Handle        = 0x80030308\n\tSTG_E_CSS_SCRAMBLED_SECTOR                                                Handle        = 0x80030309\n\tSTG_E_CSS_REGION_MISMATCH                                                 Handle        = 0x8003030A\n\tSTG_E_RESETS_EXHAUSTED                                                    Handle        = 0x8003030B\n\tRPC_E_CALL_REJECTED                                                       Handle        = 0x80010001\n\tRPC_E_CALL_CANCELED                                                       Handle        = 0x80010002\n\tRPC_E_CANTPOST_INSENDCALL                                                 Handle        = 0x80010003\n\tRPC_E_CANTCALLOUT_INASYNCCALL                                             Handle        = 0x80010004\n\tRPC_E_CANTCALLOUT_INEXTERNALCALL                                          Handle        = 0x80010005\n\tRPC_E_CONNECTION_TERMINATED                                               Handle        = 0x80010006\n\tRPC_E_SERVER_DIED                                                         Handle        = 0x80010007\n\tRPC_E_CLIENT_DIED                                                         Handle        = 0x80010008\n\tRPC_E_INVALID_DATAPACKET                                                  Handle        = 0x80010009\n\tRPC_E_CANTTRANSMIT_CALL                                                   Handle        = 0x8001000A\n\tRPC_E_CLIENT_CANTMARSHAL_DATA                                             Handle        = 0x8001000B\n\tRPC_E_CLIENT_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000C\n\tRPC_E_SERVER_CANTMARSHAL_DATA                                             Handle        = 0x8001000D\n\tRPC_E_SERVER_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000E\n\tRPC_E_INVALID_DATA                                                        Handle        = 0x8001000F\n\tRPC_E_INVALID_PARAMETER                                                   Handle        = 0x80010010\n\tRPC_E_CANTCALLOUT_AGAIN                                                   Handle        = 0x80010011\n\tRPC_E_SERVER_DIED_DNE                                                     Handle        = 0x80010012\n\tRPC_E_SYS_CALL_FAILED                                                     Handle        = 0x80010100\n\tRPC_E_OUT_OF_RESOURCES                                                    Handle        = 0x80010101\n\tRPC_E_ATTEMPTED_MULTITHREAD                                               Handle        = 0x80010102\n\tRPC_E_NOT_REGISTERED                                                      Handle        = 0x80010103\n\tRPC_E_FAULT                                                               Handle        = 0x80010104\n\tRPC_E_SERVERFAULT                                                         Handle        = 0x80010105\n\tRPC_E_CHANGED_MODE                                                        Handle        = 0x80010106\n\tRPC_E_INVALIDMETHOD                                                       Handle        = 0x80010107\n\tRPC_E_DISCONNECTED                                                        Handle        = 0x80010108\n\tRPC_E_RETRY                                                               Handle        = 0x80010109\n\tRPC_E_SERVERCALL_RETRYLATER                                               Handle        = 0x8001010A\n\tRPC_E_SERVERCALL_REJECTED                                                 Handle        = 0x8001010B\n\tRPC_E_INVALID_CALLDATA                                                    Handle        = 0x8001010C\n\tRPC_E_CANTCALLOUT_ININPUTSYNCCALL                                         Handle        = 0x8001010D\n\tRPC_E_WRONG_THREAD                                                        Handle        = 0x8001010E\n\tRPC_E_THREAD_NOT_INIT                                                     Handle        = 0x8001010F\n\tRPC_E_VERSION_MISMATCH                                                    Handle        = 0x80010110\n\tRPC_E_INVALID_HEADER                                                      Handle        = 0x80010111\n\tRPC_E_INVALID_EXTENSION                                                   Handle        = 0x80010112\n\tRPC_E_INVALID_IPID                                                        Handle        = 0x80010113\n\tRPC_E_INVALID_OBJECT                                                      Handle        = 0x80010114\n\tRPC_S_CALLPENDING                                                         Handle        = 0x80010115\n\tRPC_S_WAITONTIMER                                                         Handle        = 0x80010116\n\tRPC_E_CALL_COMPLETE                                                       Handle        = 0x80010117\n\tRPC_E_UNSECURE_CALL                                                       Handle        = 0x80010118\n\tRPC_E_TOO_LATE                                                            Handle        = 0x80010119\n\tRPC_E_NO_GOOD_SECURITY_PACKAGES                                           Handle        = 0x8001011A\n\tRPC_E_ACCESS_DENIED                                                       Handle        = 0x8001011B\n\tRPC_E_REMOTE_DISABLED                                                     Handle        = 0x8001011C\n\tRPC_E_INVALID_OBJREF                                                      Handle        = 0x8001011D\n\tRPC_E_NO_CONTEXT                                                          Handle        = 0x8001011E\n\tRPC_E_TIMEOUT                                                             Handle        = 0x8001011F\n\tRPC_E_NO_SYNC                                                             Handle        = 0x80010120\n\tRPC_E_FULLSIC_REQUIRED                                                    Handle        = 0x80010121\n\tRPC_E_INVALID_STD_NAME                                                    Handle        = 0x80010122\n\tCO_E_FAILEDTOIMPERSONATE                                                  Handle        = 0x80010123\n\tCO_E_FAILEDTOGETSECCTX                                                    Handle        = 0x80010124\n\tCO_E_FAILEDTOOPENTHREADTOKEN                                              Handle        = 0x80010125\n\tCO_E_FAILEDTOGETTOKENINFO                                                 Handle        = 0x80010126\n\tCO_E_TRUSTEEDOESNTMATCHCLIENT                                             Handle        = 0x80010127\n\tCO_E_FAILEDTOQUERYCLIENTBLANKET                                           Handle        = 0x80010128\n\tCO_E_FAILEDTOSETDACL                                                      Handle        = 0x80010129\n\tCO_E_ACCESSCHECKFAILED                                                    Handle        = 0x8001012A\n\tCO_E_NETACCESSAPIFAILED                                                   Handle        = 0x8001012B\n\tCO_E_WRONGTRUSTEENAMESYNTAX                                               Handle        = 0x8001012C\n\tCO_E_INVALIDSID                                                           Handle        = 0x8001012D\n\tCO_E_CONVERSIONFAILED                                                     Handle        = 0x8001012E\n\tCO_E_NOMATCHINGSIDFOUND                                                   Handle        = 0x8001012F\n\tCO_E_LOOKUPACCSIDFAILED                                                   Handle        = 0x80010130\n\tCO_E_NOMATCHINGNAMEFOUND                                                  Handle        = 0x80010131\n\tCO_E_LOOKUPACCNAMEFAILED                                                  Handle        = 0x80010132\n\tCO_E_SETSERLHNDLFAILED                                                    Handle        = 0x80010133\n\tCO_E_FAILEDTOGETWINDIR                                                    Handle        = 0x80010134\n\tCO_E_PATHTOOLONG                                                          Handle        = 0x80010135\n\tCO_E_FAILEDTOGENUUID                                                      Handle        = 0x80010136\n\tCO_E_FAILEDTOCREATEFILE                                                   Handle        = 0x80010137\n\tCO_E_FAILEDTOCLOSEHANDLE                                                  Handle        = 0x80010138\n\tCO_E_EXCEEDSYSACLLIMIT                                                    Handle        = 0x80010139\n\tCO_E_ACESINWRONGORDER                                                     Handle        = 0x8001013A\n\tCO_E_INCOMPATIBLESTREAMVERSION                                            Handle        = 0x8001013B\n\tCO_E_FAILEDTOOPENPROCESSTOKEN                                             Handle        = 0x8001013C\n\tCO_E_DECODEFAILED                                                         Handle        = 0x8001013D\n\tCO_E_ACNOTINITIALIZED                                                     Handle        = 0x8001013F\n\tCO_E_CANCEL_DISABLED                                                      Handle        = 0x80010140\n\tRPC_E_UNEXPECTED                                                          Handle        = 0x8001FFFF\n\tERROR_AUDITING_DISABLED                                                   Handle        = 0xC0090001\n\tERROR_ALL_SIDS_FILTERED                                                   Handle        = 0xC0090002\n\tERROR_BIZRULES_NOT_ENABLED                                                Handle        = 0xC0090003\n\tNTE_BAD_UID                                                               Handle        = 0x80090001\n\tNTE_BAD_HASH                                                              Handle        = 0x80090002\n\tNTE_BAD_KEY                                                               Handle        = 0x80090003\n\tNTE_BAD_LEN                                                               Handle        = 0x80090004\n\tNTE_BAD_DATA                                                              Handle        = 0x80090005\n\tNTE_BAD_SIGNATURE                                                         Handle        = 0x80090006\n\tNTE_BAD_VER                                                               Handle        = 0x80090007\n\tNTE_BAD_ALGID                                                             Handle        = 0x80090008\n\tNTE_BAD_FLAGS                                                             Handle        = 0x80090009\n\tNTE_BAD_TYPE                                                              Handle        = 0x8009000A\n\tNTE_BAD_KEY_STATE                                                         Handle        = 0x8009000B\n\tNTE_BAD_HASH_STATE                                                        Handle        = 0x8009000C\n\tNTE_NO_KEY                                                                Handle        = 0x8009000D\n\tNTE_NO_MEMORY                                                             Handle        = 0x8009000E\n\tNTE_EXISTS                                                                Handle        = 0x8009000F\n\tNTE_PERM                                                                  Handle        = 0x80090010\n\tNTE_NOT_FOUND                                                             Handle        = 0x80090011\n\tNTE_DOUBLE_ENCRYPT                                                        Handle        = 0x80090012\n\tNTE_BAD_PROVIDER                                                          Handle        = 0x80090013\n\tNTE_BAD_PROV_TYPE                                                         Handle        = 0x80090014\n\tNTE_BAD_PUBLIC_KEY                                                        Handle        = 0x80090015\n\tNTE_BAD_KEYSET                                                            Handle        = 0x80090016\n\tNTE_PROV_TYPE_NOT_DEF                                                     Handle        = 0x80090017\n\tNTE_PROV_TYPE_ENTRY_BAD                                                   Handle        = 0x80090018\n\tNTE_KEYSET_NOT_DEF                                                        Handle        = 0x80090019\n\tNTE_KEYSET_ENTRY_BAD                                                      Handle        = 0x8009001A\n\tNTE_PROV_TYPE_NO_MATCH                                                    Handle        = 0x8009001B\n\tNTE_SIGNATURE_FILE_BAD                                                    Handle        = 0x8009001C\n\tNTE_PROVIDER_DLL_FAIL                                                     Handle        = 0x8009001D\n\tNTE_PROV_DLL_NOT_FOUND                                                    Handle        = 0x8009001E\n\tNTE_BAD_KEYSET_PARAM                                                      Handle        = 0x8009001F\n\tNTE_FAIL                                                                  Handle        = 0x80090020\n\tNTE_SYS_ERR                                                               Handle        = 0x80090021\n\tNTE_SILENT_CONTEXT                                                        Handle        = 0x80090022\n\tNTE_TOKEN_KEYSET_STORAGE_FULL                                             Handle        = 0x80090023\n\tNTE_TEMPORARY_PROFILE                                                     Handle        = 0x80090024\n\tNTE_FIXEDPARAMETER                                                        Handle        = 0x80090025\n\tNTE_INVALID_HANDLE                                                        Handle        = 0x80090026\n\tNTE_INVALID_PARAMETER                                                     Handle        = 0x80090027\n\tNTE_BUFFER_TOO_SMALL                                                      Handle        = 0x80090028\n\tNTE_NOT_SUPPORTED                                                         Handle        = 0x80090029\n\tNTE_NO_MORE_ITEMS                                                         Handle        = 0x8009002A\n\tNTE_BUFFERS_OVERLAP                                                       Handle        = 0x8009002B\n\tNTE_DECRYPTION_FAILURE                                                    Handle        = 0x8009002C\n\tNTE_INTERNAL_ERROR                                                        Handle        = 0x8009002D\n\tNTE_UI_REQUIRED                                                           Handle        = 0x8009002E\n\tNTE_HMAC_NOT_SUPPORTED                                                    Handle        = 0x8009002F\n\tNTE_DEVICE_NOT_READY                                                      Handle        = 0x80090030\n\tNTE_AUTHENTICATION_IGNORED                                                Handle        = 0x80090031\n\tNTE_VALIDATION_FAILED                                                     Handle        = 0x80090032\n\tNTE_INCORRECT_PASSWORD                                                    Handle        = 0x80090033\n\tNTE_ENCRYPTION_FAILURE                                                    Handle        = 0x80090034\n\tNTE_DEVICE_NOT_FOUND                                                      Handle        = 0x80090035\n\tNTE_USER_CANCELLED                                                        Handle        = 0x80090036\n\tNTE_PASSWORD_CHANGE_REQUIRED                                              Handle        = 0x80090037\n\tNTE_NOT_ACTIVE_CONSOLE                                                    Handle        = 0x80090038\n\tSEC_E_INSUFFICIENT_MEMORY                                                 Handle        = 0x80090300\n\tSEC_E_INVALID_HANDLE                                                      Handle        = 0x80090301\n\tSEC_E_UNSUPPORTED_FUNCTION                                                Handle        = 0x80090302\n\tSEC_E_TARGET_UNKNOWN                                                      Handle        = 0x80090303\n\tSEC_E_INTERNAL_ERROR                                                      Handle        = 0x80090304\n\tSEC_E_SECPKG_NOT_FOUND                                                    Handle        = 0x80090305\n\tSEC_E_NOT_OWNER                                                           Handle        = 0x80090306\n\tSEC_E_CANNOT_INSTALL                                                      Handle        = 0x80090307\n\tSEC_E_INVALID_TOKEN                                                       Handle        = 0x80090308\n\tSEC_E_CANNOT_PACK                                                         Handle        = 0x80090309\n\tSEC_E_QOP_NOT_SUPPORTED                                                   Handle        = 0x8009030A\n\tSEC_E_NO_IMPERSONATION                                                    Handle        = 0x8009030B\n\tSEC_E_LOGON_DENIED                                                        Handle        = 0x8009030C\n\tSEC_E_UNKNOWN_CREDENTIALS                                                 Handle        = 0x8009030D\n\tSEC_E_NO_CREDENTIALS                                                      Handle        = 0x8009030E\n\tSEC_E_MESSAGE_ALTERED                                                     Handle        = 0x8009030F\n\tSEC_E_OUT_OF_SEQUENCE                                                     Handle        = 0x80090310\n\tSEC_E_NO_AUTHENTICATING_AUTHORITY                                         Handle        = 0x80090311\n\tSEC_I_CONTINUE_NEEDED                                                     Handle        = 0x00090312\n\tSEC_I_COMPLETE_NEEDED                                                     Handle        = 0x00090313\n\tSEC_I_COMPLETE_AND_CONTINUE                                               Handle        = 0x00090314\n\tSEC_I_LOCAL_LOGON                                                         Handle        = 0x00090315\n\tSEC_I_GENERIC_EXTENSION_RECEIVED                                          Handle        = 0x00090316\n\tSEC_E_BAD_PKGID                                                           Handle        = 0x80090316\n\tSEC_E_CONTEXT_EXPIRED                                                     Handle        = 0x80090317\n\tSEC_I_CONTEXT_EXPIRED                                                     Handle        = 0x00090317\n\tSEC_E_INCOMPLETE_MESSAGE                                                  Handle        = 0x80090318\n\tSEC_E_INCOMPLETE_CREDENTIALS                                              Handle        = 0x80090320\n\tSEC_E_BUFFER_TOO_SMALL                                                    Handle        = 0x80090321\n\tSEC_I_INCOMPLETE_CREDENTIALS                                              Handle        = 0x00090320\n\tSEC_I_RENEGOTIATE                                                         Handle        = 0x00090321\n\tSEC_E_WRONG_PRINCIPAL                                                     Handle        = 0x80090322\n\tSEC_I_NO_LSA_CONTEXT                                                      Handle        = 0x00090323\n\tSEC_E_TIME_SKEW                                                           Handle        = 0x80090324\n\tSEC_E_UNTRUSTED_ROOT                                                      Handle        = 0x80090325\n\tSEC_E_ILLEGAL_MESSAGE                                                     Handle        = 0x80090326\n\tSEC_E_CERT_UNKNOWN                                                        Handle        = 0x80090327\n\tSEC_E_CERT_EXPIRED                                                        Handle        = 0x80090328\n\tSEC_E_ENCRYPT_FAILURE                                                     Handle        = 0x80090329\n\tSEC_E_DECRYPT_FAILURE                                                     Handle        = 0x80090330\n\tSEC_E_ALGORITHM_MISMATCH                                                  Handle        = 0x80090331\n\tSEC_E_SECURITY_QOS_FAILED                                                 Handle        = 0x80090332\n\tSEC_E_UNFINISHED_CONTEXT_DELETED                                          Handle        = 0x80090333\n\tSEC_E_NO_TGT_REPLY                                                        Handle        = 0x80090334\n\tSEC_E_NO_IP_ADDRESSES                                                     Handle        = 0x80090335\n\tSEC_E_WRONG_CREDENTIAL_HANDLE                                             Handle        = 0x80090336\n\tSEC_E_CRYPTO_SYSTEM_INVALID                                               Handle        = 0x80090337\n\tSEC_E_MAX_REFERRALS_EXCEEDED                                              Handle        = 0x80090338\n\tSEC_E_MUST_BE_KDC                                                         Handle        = 0x80090339\n\tSEC_E_STRONG_CRYPTO_NOT_SUPPORTED                                         Handle        = 0x8009033A\n\tSEC_E_TOO_MANY_PRINCIPALS                                                 Handle        = 0x8009033B\n\tSEC_E_NO_PA_DATA                                                          Handle        = 0x8009033C\n\tSEC_E_PKINIT_NAME_MISMATCH                                                Handle        = 0x8009033D\n\tSEC_E_SMARTCARD_LOGON_REQUIRED                                            Handle        = 0x8009033E\n\tSEC_E_SHUTDOWN_IN_PROGRESS                                                Handle        = 0x8009033F\n\tSEC_E_KDC_INVALID_REQUEST                                                 Handle        = 0x80090340\n\tSEC_E_KDC_UNABLE_TO_REFER                                                 Handle        = 0x80090341\n\tSEC_E_KDC_UNKNOWN_ETYPE                                                   Handle        = 0x80090342\n\tSEC_E_UNSUPPORTED_PREAUTH                                                 Handle        = 0x80090343\n\tSEC_E_DELEGATION_REQUIRED                                                 Handle        = 0x80090345\n\tSEC_E_BAD_BINDINGS                                                        Handle        = 0x80090346\n\tSEC_E_MULTIPLE_ACCOUNTS                                                   Handle        = 0x80090347\n\tSEC_E_NO_KERB_KEY                                                         Handle        = 0x80090348\n\tSEC_E_CERT_WRONG_USAGE                                                    Handle        = 0x80090349\n\tSEC_E_DOWNGRADE_DETECTED                                                  Handle        = 0x80090350\n\tSEC_E_SMARTCARD_CERT_REVOKED                                              Handle        = 0x80090351\n\tSEC_E_ISSUING_CA_UNTRUSTED                                                Handle        = 0x80090352\n\tSEC_E_REVOCATION_OFFLINE_C                                                Handle        = 0x80090353\n\tSEC_E_PKINIT_CLIENT_FAILURE                                               Handle        = 0x80090354\n\tSEC_E_SMARTCARD_CERT_EXPIRED                                              Handle        = 0x80090355\n\tSEC_E_NO_S4U_PROT_SUPPORT                                                 Handle        = 0x80090356\n\tSEC_E_CROSSREALM_DELEGATION_FAILURE                                       Handle        = 0x80090357\n\tSEC_E_REVOCATION_OFFLINE_KDC                                              Handle        = 0x80090358\n\tSEC_E_ISSUING_CA_UNTRUSTED_KDC                                            Handle        = 0x80090359\n\tSEC_E_KDC_CERT_EXPIRED                                                    Handle        = 0x8009035A\n\tSEC_E_KDC_CERT_REVOKED                                                    Handle        = 0x8009035B\n\tSEC_I_SIGNATURE_NEEDED                                                    Handle        = 0x0009035C\n\tSEC_E_INVALID_PARAMETER                                                   Handle        = 0x8009035D\n\tSEC_E_DELEGATION_POLICY                                                   Handle        = 0x8009035E\n\tSEC_E_POLICY_NLTM_ONLY                                                    Handle        = 0x8009035F\n\tSEC_I_NO_RENEGOTIATION                                                    Handle        = 0x00090360\n\tSEC_E_NO_CONTEXT                                                          Handle        = 0x80090361\n\tSEC_E_PKU2U_CERT_FAILURE                                                  Handle        = 0x80090362\n\tSEC_E_MUTUAL_AUTH_FAILED                                                  Handle        = 0x80090363\n\tSEC_I_MESSAGE_FRAGMENT                                                    Handle        = 0x00090364\n\tSEC_E_ONLY_HTTPS_ALLOWED                                                  Handle        = 0x80090365\n\tSEC_I_CONTINUE_NEEDED_MESSAGE_OK                                          Handle        = 0x00090366\n\tSEC_E_APPLICATION_PROTOCOL_MISMATCH                                       Handle        = 0x80090367\n\tSEC_I_ASYNC_CALL_PENDING                                                  Handle        = 0x00090368\n\tSEC_E_INVALID_UPN_NAME                                                    Handle        = 0x80090369\n\tSEC_E_EXT_BUFFER_TOO_SMALL                                                Handle        = 0x8009036A\n\tSEC_E_INSUFFICIENT_BUFFERS                                                Handle        = 0x8009036B\n\tSEC_E_NO_SPM                                                                            = SEC_E_INTERNAL_ERROR\n\tSEC_E_NOT_SUPPORTED                                                                     = SEC_E_UNSUPPORTED_FUNCTION\n\tCRYPT_E_MSG_ERROR                                                         Handle        = 0x80091001\n\tCRYPT_E_UNKNOWN_ALGO                                                      Handle        = 0x80091002\n\tCRYPT_E_OID_FORMAT                                                        Handle        = 0x80091003\n\tCRYPT_E_INVALID_MSG_TYPE                                                  Handle        = 0x80091004\n\tCRYPT_E_UNEXPECTED_ENCODING                                               Handle        = 0x80091005\n\tCRYPT_E_AUTH_ATTR_MISSING                                                 Handle        = 0x80091006\n\tCRYPT_E_HASH_VALUE                                                        Handle        = 0x80091007\n\tCRYPT_E_INVALID_INDEX                                                     Handle        = 0x80091008\n\tCRYPT_E_ALREADY_DECRYPTED                                                 Handle        = 0x80091009\n\tCRYPT_E_NOT_DECRYPTED                                                     Handle        = 0x8009100A\n\tCRYPT_E_RECIPIENT_NOT_FOUND                                               Handle        = 0x8009100B\n\tCRYPT_E_CONTROL_TYPE                                                      Handle        = 0x8009100C\n\tCRYPT_E_ISSUER_SERIALNUMBER                                               Handle        = 0x8009100D\n\tCRYPT_E_SIGNER_NOT_FOUND                                                  Handle        = 0x8009100E\n\tCRYPT_E_ATTRIBUTES_MISSING                                                Handle        = 0x8009100F\n\tCRYPT_E_STREAM_MSG_NOT_READY                                              Handle        = 0x80091010\n\tCRYPT_E_STREAM_INSUFFICIENT_DATA                                          Handle        = 0x80091011\n\tCRYPT_I_NEW_PROTECTION_REQUIRED                                           Handle        = 0x00091012\n\tCRYPT_E_BAD_LEN                                                           Handle        = 0x80092001\n\tCRYPT_E_BAD_ENCODE                                                        Handle        = 0x80092002\n\tCRYPT_E_FILE_ERROR                                                        Handle        = 0x80092003\n\tCRYPT_E_NOT_FOUND                                                         Handle        = 0x80092004\n\tCRYPT_E_EXISTS                                                            Handle        = 0x80092005\n\tCRYPT_E_NO_PROVIDER                                                       Handle        = 0x80092006\n\tCRYPT_E_SELF_SIGNED                                                       Handle        = 0x80092007\n\tCRYPT_E_DELETED_PREV                                                      Handle        = 0x80092008\n\tCRYPT_E_NO_MATCH                                                          Handle        = 0x80092009\n\tCRYPT_E_UNEXPECTED_MSG_TYPE                                               Handle        = 0x8009200A\n\tCRYPT_E_NO_KEY_PROPERTY                                                   Handle        = 0x8009200B\n\tCRYPT_E_NO_DECRYPT_CERT                                                   Handle        = 0x8009200C\n\tCRYPT_E_BAD_MSG                                                           Handle        = 0x8009200D\n\tCRYPT_E_NO_SIGNER                                                         Handle        = 0x8009200E\n\tCRYPT_E_PENDING_CLOSE                                                     Handle        = 0x8009200F\n\tCRYPT_E_REVOKED                                                           Handle        = 0x80092010\n\tCRYPT_E_NO_REVOCATION_DLL                                                 Handle        = 0x80092011\n\tCRYPT_E_NO_REVOCATION_CHECK                                               Handle        = 0x80092012\n\tCRYPT_E_REVOCATION_OFFLINE                                                Handle        = 0x80092013\n\tCRYPT_E_NOT_IN_REVOCATION_DATABASE                                        Handle        = 0x80092014\n\tCRYPT_E_INVALID_NUMERIC_STRING                                            Handle        = 0x80092020\n\tCRYPT_E_INVALID_PRINTABLE_STRING                                          Handle        = 0x80092021\n\tCRYPT_E_INVALID_IA5_STRING                                                Handle        = 0x80092022\n\tCRYPT_E_INVALID_X500_STRING                                               Handle        = 0x80092023\n\tCRYPT_E_NOT_CHAR_STRING                                                   Handle        = 0x80092024\n\tCRYPT_E_FILERESIZED                                                       Handle        = 0x80092025\n\tCRYPT_E_SECURITY_SETTINGS                                                 Handle        = 0x80092026\n\tCRYPT_E_NO_VERIFY_USAGE_DLL                                               Handle        = 0x80092027\n\tCRYPT_E_NO_VERIFY_USAGE_CHECK                                             Handle        = 0x80092028\n\tCRYPT_E_VERIFY_USAGE_OFFLINE                                              Handle        = 0x80092029\n\tCRYPT_E_NOT_IN_CTL                                                        Handle        = 0x8009202A\n\tCRYPT_E_NO_TRUSTED_SIGNER                                                 Handle        = 0x8009202B\n\tCRYPT_E_MISSING_PUBKEY_PARA                                               Handle        = 0x8009202C\n\tCRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND                                   Handle        = 0x8009202D\n\tCRYPT_E_OSS_ERROR                                                         Handle        = 0x80093000\n\tOSS_MORE_BUF                                                              Handle        = 0x80093001\n\tOSS_NEGATIVE_UINTEGER                                                     Handle        = 0x80093002\n\tOSS_PDU_RANGE                                                             Handle        = 0x80093003\n\tOSS_MORE_INPUT                                                            Handle        = 0x80093004\n\tOSS_DATA_ERROR                                                            Handle        = 0x80093005\n\tOSS_BAD_ARG                                                               Handle        = 0x80093006\n\tOSS_BAD_VERSION                                                           Handle        = 0x80093007\n\tOSS_OUT_MEMORY                                                            Handle        = 0x80093008\n\tOSS_PDU_MISMATCH                                                          Handle        = 0x80093009\n\tOSS_LIMITED                                                               Handle        = 0x8009300A\n\tOSS_BAD_PTR                                                               Handle        = 0x8009300B\n\tOSS_BAD_TIME                                                              Handle        = 0x8009300C\n\tOSS_INDEFINITE_NOT_SUPPORTED                                              Handle        = 0x8009300D\n\tOSS_MEM_ERROR                                                             Handle        = 0x8009300E\n\tOSS_BAD_TABLE                                                             Handle        = 0x8009300F\n\tOSS_TOO_LONG                                                              Handle        = 0x80093010\n\tOSS_CONSTRAINT_VIOLATED                                                   Handle        = 0x80093011\n\tOSS_FATAL_ERROR                                                           Handle        = 0x80093012\n\tOSS_ACCESS_SERIALIZATION_ERROR                                            Handle        = 0x80093013\n\tOSS_NULL_TBL                                                              Handle        = 0x80093014\n\tOSS_NULL_FCN                                                              Handle        = 0x80093015\n\tOSS_BAD_ENCRULES                                                          Handle        = 0x80093016\n\tOSS_UNAVAIL_ENCRULES                                                      Handle        = 0x80093017\n\tOSS_CANT_OPEN_TRACE_WINDOW                                                Handle        = 0x80093018\n\tOSS_UNIMPLEMENTED                                                         Handle        = 0x80093019\n\tOSS_OID_DLL_NOT_LINKED                                                    Handle        = 0x8009301A\n\tOSS_CANT_OPEN_TRACE_FILE                                                  Handle        = 0x8009301B\n\tOSS_TRACE_FILE_ALREADY_OPEN                                               Handle        = 0x8009301C\n\tOSS_TABLE_MISMATCH                                                        Handle        = 0x8009301D\n\tOSS_TYPE_NOT_SUPPORTED                                                    Handle        = 0x8009301E\n\tOSS_REAL_DLL_NOT_LINKED                                                   Handle        = 0x8009301F\n\tOSS_REAL_CODE_NOT_LINKED                                                  Handle        = 0x80093020\n\tOSS_OUT_OF_RANGE                                                          Handle        = 0x80093021\n\tOSS_COPIER_DLL_NOT_LINKED                                                 Handle        = 0x80093022\n\tOSS_CONSTRAINT_DLL_NOT_LINKED                                             Handle        = 0x80093023\n\tOSS_COMPARATOR_DLL_NOT_LINKED                                             Handle        = 0x80093024\n\tOSS_COMPARATOR_CODE_NOT_LINKED                                            Handle        = 0x80093025\n\tOSS_MEM_MGR_DLL_NOT_LINKED                                                Handle        = 0x80093026\n\tOSS_PDV_DLL_NOT_LINKED                                                    Handle        = 0x80093027\n\tOSS_PDV_CODE_NOT_LINKED                                                   Handle        = 0x80093028\n\tOSS_API_DLL_NOT_LINKED                                                    Handle        = 0x80093029\n\tOSS_BERDER_DLL_NOT_LINKED                                                 Handle        = 0x8009302A\n\tOSS_PER_DLL_NOT_LINKED                                                    Handle        = 0x8009302B\n\tOSS_OPEN_TYPE_ERROR                                                       Handle        = 0x8009302C\n\tOSS_MUTEX_NOT_CREATED                                                     Handle        = 0x8009302D\n\tOSS_CANT_CLOSE_TRACE_FILE                                                 Handle        = 0x8009302E\n\tCRYPT_E_ASN1_ERROR                                                        Handle        = 0x80093100\n\tCRYPT_E_ASN1_INTERNAL                                                     Handle        = 0x80093101\n\tCRYPT_E_ASN1_EOD                                                          Handle        = 0x80093102\n\tCRYPT_E_ASN1_CORRUPT                                                      Handle        = 0x80093103\n\tCRYPT_E_ASN1_LARGE                                                        Handle        = 0x80093104\n\tCRYPT_E_ASN1_CONSTRAINT                                                   Handle        = 0x80093105\n\tCRYPT_E_ASN1_MEMORY                                                       Handle        = 0x80093106\n\tCRYPT_E_ASN1_OVERFLOW                                                     Handle        = 0x80093107\n\tCRYPT_E_ASN1_BADPDU                                                       Handle        = 0x80093108\n\tCRYPT_E_ASN1_BADARGS                                                      Handle        = 0x80093109\n\tCRYPT_E_ASN1_BADREAL                                                      Handle        = 0x8009310A\n\tCRYPT_E_ASN1_BADTAG                                                       Handle        = 0x8009310B\n\tCRYPT_E_ASN1_CHOICE                                                       Handle        = 0x8009310C\n\tCRYPT_E_ASN1_RULE                                                         Handle        = 0x8009310D\n\tCRYPT_E_ASN1_UTF8                                                         Handle        = 0x8009310E\n\tCRYPT_E_ASN1_PDU_TYPE                                                     Handle        = 0x80093133\n\tCRYPT_E_ASN1_NYI                                                          Handle        = 0x80093134\n\tCRYPT_E_ASN1_EXTENDED                                                     Handle        = 0x80093201\n\tCRYPT_E_ASN1_NOEOD                                                        Handle        = 0x80093202\n\tCERTSRV_E_BAD_REQUESTSUBJECT                                              Handle        = 0x80094001\n\tCERTSRV_E_NO_REQUEST                                                      Handle        = 0x80094002\n\tCERTSRV_E_BAD_REQUESTSTATUS                                               Handle        = 0x80094003\n\tCERTSRV_E_PROPERTY_EMPTY                                                  Handle        = 0x80094004\n\tCERTSRV_E_INVALID_CA_CERTIFICATE                                          Handle        = 0x80094005\n\tCERTSRV_E_SERVER_SUSPENDED                                                Handle        = 0x80094006\n\tCERTSRV_E_ENCODING_LENGTH                                                 Handle        = 0x80094007\n\tCERTSRV_E_ROLECONFLICT                                                    Handle        = 0x80094008\n\tCERTSRV_E_RESTRICTEDOFFICER                                               Handle        = 0x80094009\n\tCERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED                                     Handle        = 0x8009400A\n\tCERTSRV_E_NO_VALID_KRA                                                    Handle        = 0x8009400B\n\tCERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL                                        Handle        = 0x8009400C\n\tCERTSRV_E_NO_CAADMIN_DEFINED                                              Handle        = 0x8009400D\n\tCERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE                                      Handle        = 0x8009400E\n\tCERTSRV_E_NO_DB_SESSIONS                                                  Handle        = 0x8009400F\n\tCERTSRV_E_ALIGNMENT_FAULT                                                 Handle        = 0x80094010\n\tCERTSRV_E_ENROLL_DENIED                                                   Handle        = 0x80094011\n\tCERTSRV_E_TEMPLATE_DENIED                                                 Handle        = 0x80094012\n\tCERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE                                     Handle        = 0x80094013\n\tCERTSRV_E_ADMIN_DENIED_REQUEST                                            Handle        = 0x80094014\n\tCERTSRV_E_NO_POLICY_SERVER                                                Handle        = 0x80094015\n\tCERTSRV_E_WEAK_SIGNATURE_OR_KEY                                           Handle        = 0x80094016\n\tCERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED                                   Handle        = 0x80094017\n\tCERTSRV_E_ENCRYPTION_CERT_REQUIRED                                        Handle        = 0x80094018\n\tCERTSRV_E_UNSUPPORTED_CERT_TYPE                                           Handle        = 0x80094800\n\tCERTSRV_E_NO_CERT_TYPE                                                    Handle        = 0x80094801\n\tCERTSRV_E_TEMPLATE_CONFLICT                                               Handle        = 0x80094802\n\tCERTSRV_E_SUBJECT_ALT_NAME_REQUIRED                                       Handle        = 0x80094803\n\tCERTSRV_E_ARCHIVED_KEY_REQUIRED                                           Handle        = 0x80094804\n\tCERTSRV_E_SMIME_REQUIRED                                                  Handle        = 0x80094805\n\tCERTSRV_E_BAD_RENEWAL_SUBJECT                                             Handle        = 0x80094806\n\tCERTSRV_E_BAD_TEMPLATE_VERSION                                            Handle        = 0x80094807\n\tCERTSRV_E_TEMPLATE_POLICY_REQUIRED                                        Handle        = 0x80094808\n\tCERTSRV_E_SIGNATURE_POLICY_REQUIRED                                       Handle        = 0x80094809\n\tCERTSRV_E_SIGNATURE_COUNT                                                 Handle        = 0x8009480A\n\tCERTSRV_E_SIGNATURE_REJECTED                                              Handle        = 0x8009480B\n\tCERTSRV_E_ISSUANCE_POLICY_REQUIRED                                        Handle        = 0x8009480C\n\tCERTSRV_E_SUBJECT_UPN_REQUIRED                                            Handle        = 0x8009480D\n\tCERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED                                 Handle        = 0x8009480E\n\tCERTSRV_E_SUBJECT_DNS_REQUIRED                                            Handle        = 0x8009480F\n\tCERTSRV_E_ARCHIVED_KEY_UNEXPECTED                                         Handle        = 0x80094810\n\tCERTSRV_E_KEY_LENGTH                                                      Handle        = 0x80094811\n\tCERTSRV_E_SUBJECT_EMAIL_REQUIRED                                          Handle        = 0x80094812\n\tCERTSRV_E_UNKNOWN_CERT_TYPE                                               Handle        = 0x80094813\n\tCERTSRV_E_CERT_TYPE_OVERLAP                                               Handle        = 0x80094814\n\tCERTSRV_E_TOO_MANY_SIGNATURES                                             Handle        = 0x80094815\n\tCERTSRV_E_RENEWAL_BAD_PUBLIC_KEY                                          Handle        = 0x80094816\n\tCERTSRV_E_INVALID_EK                                                      Handle        = 0x80094817\n\tCERTSRV_E_INVALID_IDBINDING                                               Handle        = 0x80094818\n\tCERTSRV_E_INVALID_ATTESTATION                                             Handle        = 0x80094819\n\tCERTSRV_E_KEY_ATTESTATION                                                 Handle        = 0x8009481A\n\tCERTSRV_E_CORRUPT_KEY_ATTESTATION                                         Handle        = 0x8009481B\n\tCERTSRV_E_EXPIRED_CHALLENGE                                               Handle        = 0x8009481C\n\tCERTSRV_E_INVALID_RESPONSE                                                Handle        = 0x8009481D\n\tCERTSRV_E_INVALID_REQUESTID                                               Handle        = 0x8009481E\n\tCERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH                                 Handle        = 0x8009481F\n\tCERTSRV_E_PENDING_CLIENT_RESPONSE                                         Handle        = 0x80094820\n\tXENROLL_E_KEY_NOT_EXPORTABLE                                              Handle        = 0x80095000\n\tXENROLL_E_CANNOT_ADD_ROOT_CERT                                            Handle        = 0x80095001\n\tXENROLL_E_RESPONSE_KA_HASH_NOT_FOUND                                      Handle        = 0x80095002\n\tXENROLL_E_RESPONSE_UNEXPECTED_KA_HASH                                     Handle        = 0x80095003\n\tXENROLL_E_RESPONSE_KA_HASH_MISMATCH                                       Handle        = 0x80095004\n\tXENROLL_E_KEYSPEC_SMIME_MISMATCH                                          Handle        = 0x80095005\n\tTRUST_E_SYSTEM_ERROR                                                      Handle        = 0x80096001\n\tTRUST_E_NO_SIGNER_CERT                                                    Handle        = 0x80096002\n\tTRUST_E_COUNTER_SIGNER                                                    Handle        = 0x80096003\n\tTRUST_E_CERT_SIGNATURE                                                    Handle        = 0x80096004\n\tTRUST_E_TIME_STAMP                                                        Handle        = 0x80096005\n\tTRUST_E_BAD_DIGEST                                                        Handle        = 0x80096010\n\tTRUST_E_MALFORMED_SIGNATURE                                               Handle        = 0x80096011\n\tTRUST_E_BASIC_CONSTRAINTS                                                 Handle        = 0x80096019\n\tTRUST_E_FINANCIAL_CRITERIA                                                Handle        = 0x8009601E\n\tMSSIPOTF_E_OUTOFMEMRANGE                                                  Handle        = 0x80097001\n\tMSSIPOTF_E_CANTGETOBJECT                                                  Handle        = 0x80097002\n\tMSSIPOTF_E_NOHEADTABLE                                                    Handle        = 0x80097003\n\tMSSIPOTF_E_BAD_MAGICNUMBER                                                Handle        = 0x80097004\n\tMSSIPOTF_E_BAD_OFFSET_TABLE                                               Handle        = 0x80097005\n\tMSSIPOTF_E_TABLE_TAGORDER                                                 Handle        = 0x80097006\n\tMSSIPOTF_E_TABLE_LONGWORD                                                 Handle        = 0x80097007\n\tMSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT                                      Handle        = 0x80097008\n\tMSSIPOTF_E_TABLES_OVERLAP                                                 Handle        = 0x80097009\n\tMSSIPOTF_E_TABLE_PADBYTES                                                 Handle        = 0x8009700A\n\tMSSIPOTF_E_FILETOOSMALL                                                   Handle        = 0x8009700B\n\tMSSIPOTF_E_TABLE_CHECKSUM                                                 Handle        = 0x8009700C\n\tMSSIPOTF_E_FILE_CHECKSUM                                                  Handle        = 0x8009700D\n\tMSSIPOTF_E_FAILED_POLICY                                                  Handle        = 0x80097010\n\tMSSIPOTF_E_FAILED_HINTS_CHECK                                             Handle        = 0x80097011\n\tMSSIPOTF_E_NOT_OPENTYPE                                                   Handle        = 0x80097012\n\tMSSIPOTF_E_FILE                                                           Handle        = 0x80097013\n\tMSSIPOTF_E_CRYPT                                                          Handle        = 0x80097014\n\tMSSIPOTF_E_BADVERSION                                                     Handle        = 0x80097015\n\tMSSIPOTF_E_DSIG_STRUCTURE                                                 Handle        = 0x80097016\n\tMSSIPOTF_E_PCONST_CHECK                                                   Handle        = 0x80097017\n\tMSSIPOTF_E_STRUCTURE                                                      Handle        = 0x80097018\n\tERROR_CRED_REQUIRES_CONFIRMATION                                          Handle        = 0x80097019\n\tNTE_OP_OK                                                                 syscall.Errno = 0\n\tTRUST_E_PROVIDER_UNKNOWN                                                  Handle        = 0x800B0001\n\tTRUST_E_ACTION_UNKNOWN                                                    Handle        = 0x800B0002\n\tTRUST_E_SUBJECT_FORM_UNKNOWN                                              Handle        = 0x800B0003\n\tTRUST_E_SUBJECT_NOT_TRUSTED                                               Handle        = 0x800B0004\n\tDIGSIG_E_ENCODE                                                           Handle        = 0x800B0005\n\tDIGSIG_E_DECODE                                                           Handle        = 0x800B0006\n\tDIGSIG_E_EXTENSIBILITY                                                    Handle        = 0x800B0007\n\tDIGSIG_E_CRYPTO                                                           Handle        = 0x800B0008\n\tPERSIST_E_SIZEDEFINITE                                                    Handle        = 0x800B0009\n\tPERSIST_E_SIZEINDEFINITE                                                  Handle        = 0x800B000A\n\tPERSIST_E_NOTSELFSIZING                                                   Handle        = 0x800B000B\n\tTRUST_E_NOSIGNATURE                                                       Handle        = 0x800B0100\n\tCERT_E_EXPIRED                                                            Handle        = 0x800B0101\n\tCERT_E_VALIDITYPERIODNESTING                                              Handle        = 0x800B0102\n\tCERT_E_ROLE                                                               Handle        = 0x800B0103\n\tCERT_E_PATHLENCONST                                                       Handle        = 0x800B0104\n\tCERT_E_CRITICAL                                                           Handle        = 0x800B0105\n\tCERT_E_PURPOSE                                                            Handle        = 0x800B0106\n\tCERT_E_ISSUERCHAINING                                                     Handle        = 0x800B0107\n\tCERT_E_MALFORMED                                                          Handle        = 0x800B0108\n\tCERT_E_UNTRUSTEDROOT                                                      Handle        = 0x800B0109\n\tCERT_E_CHAINING                                                           Handle        = 0x800B010A\n\tTRUST_E_FAIL                                                              Handle        = 0x800B010B\n\tCERT_E_REVOKED                                                            Handle        = 0x800B010C\n\tCERT_E_UNTRUSTEDTESTROOT                                                  Handle        = 0x800B010D\n\tCERT_E_REVOCATION_FAILURE                                                 Handle        = 0x800B010E\n\tCERT_E_CN_NO_MATCH                                                        Handle        = 0x800B010F\n\tCERT_E_WRONG_USAGE                                                        Handle        = 0x800B0110\n\tTRUST_E_EXPLICIT_DISTRUST                                                 Handle        = 0x800B0111\n\tCERT_E_UNTRUSTEDCA                                                        Handle        = 0x800B0112\n\tCERT_E_INVALID_POLICY                                                     Handle        = 0x800B0113\n\tCERT_E_INVALID_NAME                                                       Handle        = 0x800B0114\n\tSPAPI_E_EXPECTED_SECTION_NAME                                             Handle        = 0x800F0000\n\tSPAPI_E_BAD_SECTION_NAME_LINE                                             Handle        = 0x800F0001\n\tSPAPI_E_SECTION_NAME_TOO_LONG                                             Handle        = 0x800F0002\n\tSPAPI_E_GENERAL_SYNTAX                                                    Handle        = 0x800F0003\n\tSPAPI_E_WRONG_INF_STYLE                                                   Handle        = 0x800F0100\n\tSPAPI_E_SECTION_NOT_FOUND                                                 Handle        = 0x800F0101\n\tSPAPI_E_LINE_NOT_FOUND                                                    Handle        = 0x800F0102\n\tSPAPI_E_NO_BACKUP                                                         Handle        = 0x800F0103\n\tSPAPI_E_NO_ASSOCIATED_CLASS                                               Handle        = 0x800F0200\n\tSPAPI_E_CLASS_MISMATCH                                                    Handle        = 0x800F0201\n\tSPAPI_E_DUPLICATE_FOUND                                                   Handle        = 0x800F0202\n\tSPAPI_E_NO_DRIVER_SELECTED                                                Handle        = 0x800F0203\n\tSPAPI_E_KEY_DOES_NOT_EXIST                                                Handle        = 0x800F0204\n\tSPAPI_E_INVALID_DEVINST_NAME                                              Handle        = 0x800F0205\n\tSPAPI_E_INVALID_CLASS                                                     Handle        = 0x800F0206\n\tSPAPI_E_DEVINST_ALREADY_EXISTS                                            Handle        = 0x800F0207\n\tSPAPI_E_DEVINFO_NOT_REGISTERED                                            Handle        = 0x800F0208\n\tSPAPI_E_INVALID_REG_PROPERTY                                              Handle        = 0x800F0209\n\tSPAPI_E_NO_INF                                                            Handle        = 0x800F020A\n\tSPAPI_E_NO_SUCH_DEVINST                                                   Handle        = 0x800F020B\n\tSPAPI_E_CANT_LOAD_CLASS_ICON                                              Handle        = 0x800F020C\n\tSPAPI_E_INVALID_CLASS_INSTALLER                                           Handle        = 0x800F020D\n\tSPAPI_E_DI_DO_DEFAULT                                                     Handle        = 0x800F020E\n\tSPAPI_E_DI_NOFILECOPY                                                     Handle        = 0x800F020F\n\tSPAPI_E_INVALID_HWPROFILE                                                 Handle        = 0x800F0210\n\tSPAPI_E_NO_DEVICE_SELECTED                                                Handle        = 0x800F0211\n\tSPAPI_E_DEVINFO_LIST_LOCKED                                               Handle        = 0x800F0212\n\tSPAPI_E_DEVINFO_DATA_LOCKED                                               Handle        = 0x800F0213\n\tSPAPI_E_DI_BAD_PATH                                                       Handle        = 0x800F0214\n\tSPAPI_E_NO_CLASSINSTALL_PARAMS                                            Handle        = 0x800F0215\n\tSPAPI_E_FILEQUEUE_LOCKED                                                  Handle        = 0x800F0216\n\tSPAPI_E_BAD_SERVICE_INSTALLSECT                                           Handle        = 0x800F0217\n\tSPAPI_E_NO_CLASS_DRIVER_LIST                                              Handle        = 0x800F0218\n\tSPAPI_E_NO_ASSOCIATED_SERVICE                                             Handle        = 0x800F0219\n\tSPAPI_E_NO_DEFAULT_DEVICE_INTERFACE                                       Handle        = 0x800F021A\n\tSPAPI_E_DEVICE_INTERFACE_ACTIVE                                           Handle        = 0x800F021B\n\tSPAPI_E_DEVICE_INTERFACE_REMOVED                                          Handle        = 0x800F021C\n\tSPAPI_E_BAD_INTERFACE_INSTALLSECT                                         Handle        = 0x800F021D\n\tSPAPI_E_NO_SUCH_INTERFACE_CLASS                                           Handle        = 0x800F021E\n\tSPAPI_E_INVALID_REFERENCE_STRING                                          Handle        = 0x800F021F\n\tSPAPI_E_INVALID_MACHINENAME                                               Handle        = 0x800F0220\n\tSPAPI_E_REMOTE_COMM_FAILURE                                               Handle        = 0x800F0221\n\tSPAPI_E_MACHINE_UNAVAILABLE                                               Handle        = 0x800F0222\n\tSPAPI_E_NO_CONFIGMGR_SERVICES                                             Handle        = 0x800F0223\n\tSPAPI_E_INVALID_PROPPAGE_PROVIDER                                         Handle        = 0x800F0224\n\tSPAPI_E_NO_SUCH_DEVICE_INTERFACE                                          Handle        = 0x800F0225\n\tSPAPI_E_DI_POSTPROCESSING_REQUIRED                                        Handle        = 0x800F0226\n\tSPAPI_E_INVALID_COINSTALLER                                               Handle        = 0x800F0227\n\tSPAPI_E_NO_COMPAT_DRIVERS                                                 Handle        = 0x800F0228\n\tSPAPI_E_NO_DEVICE_ICON                                                    Handle        = 0x800F0229\n\tSPAPI_E_INVALID_INF_LOGCONFIG                                             Handle        = 0x800F022A\n\tSPAPI_E_DI_DONT_INSTALL                                                   Handle        = 0x800F022B\n\tSPAPI_E_INVALID_FILTER_DRIVER                                             Handle        = 0x800F022C\n\tSPAPI_E_NON_WINDOWS_NT_DRIVER                                             Handle        = 0x800F022D\n\tSPAPI_E_NON_WINDOWS_DRIVER                                                Handle        = 0x800F022E\n\tSPAPI_E_NO_CATALOG_FOR_OEM_INF                                            Handle        = 0x800F022F\n\tSPAPI_E_DEVINSTALL_QUEUE_NONNATIVE                                        Handle        = 0x800F0230\n\tSPAPI_E_NOT_DISABLEABLE                                                   Handle        = 0x800F0231\n\tSPAPI_E_CANT_REMOVE_DEVINST                                               Handle        = 0x800F0232\n\tSPAPI_E_INVALID_TARGET                                                    Handle        = 0x800F0233\n\tSPAPI_E_DRIVER_NONNATIVE                                                  Handle        = 0x800F0234\n\tSPAPI_E_IN_WOW64                                                          Handle        = 0x800F0235\n\tSPAPI_E_SET_SYSTEM_RESTORE_POINT                                          Handle        = 0x800F0236\n\tSPAPI_E_INCORRECTLY_COPIED_INF                                            Handle        = 0x800F0237\n\tSPAPI_E_SCE_DISABLED                                                      Handle        = 0x800F0238\n\tSPAPI_E_UNKNOWN_EXCEPTION                                                 Handle        = 0x800F0239\n\tSPAPI_E_PNP_REGISTRY_ERROR                                                Handle        = 0x800F023A\n\tSPAPI_E_REMOTE_REQUEST_UNSUPPORTED                                        Handle        = 0x800F023B\n\tSPAPI_E_NOT_AN_INSTALLED_OEM_INF                                          Handle        = 0x800F023C\n\tSPAPI_E_INF_IN_USE_BY_DEVICES                                             Handle        = 0x800F023D\n\tSPAPI_E_DI_FUNCTION_OBSOLETE                                              Handle        = 0x800F023E\n\tSPAPI_E_NO_AUTHENTICODE_CATALOG                                           Handle        = 0x800F023F\n\tSPAPI_E_AUTHENTICODE_DISALLOWED                                           Handle        = 0x800F0240\n\tSPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER                                    Handle        = 0x800F0241\n\tSPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED                                Handle        = 0x800F0242\n\tSPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED                                Handle        = 0x800F0243\n\tSPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH                                    Handle        = 0x800F0244\n\tSPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE                                    Handle        = 0x800F0245\n\tSPAPI_E_DEVICE_INSTALLER_NOT_READY                                        Handle        = 0x800F0246\n\tSPAPI_E_DRIVER_STORE_ADD_FAILED                                           Handle        = 0x800F0247\n\tSPAPI_E_DEVICE_INSTALL_BLOCKED                                            Handle        = 0x800F0248\n\tSPAPI_E_DRIVER_INSTALL_BLOCKED                                            Handle        = 0x800F0249\n\tSPAPI_E_WRONG_INF_TYPE                                                    Handle        = 0x800F024A\n\tSPAPI_E_FILE_HASH_NOT_IN_CATALOG                                          Handle        = 0x800F024B\n\tSPAPI_E_DRIVER_STORE_DELETE_FAILED                                        Handle        = 0x800F024C\n\tSPAPI_E_UNRECOVERABLE_STACK_OVERFLOW                                      Handle        = 0x800F0300\n\tSPAPI_E_ERROR_NOT_INSTALLED                                               Handle        = 0x800F1000\n\tSCARD_S_SUCCESS                                                                         = S_OK\n\tSCARD_F_INTERNAL_ERROR                                                    Handle        = 0x80100001\n\tSCARD_E_CANCELLED                                                         Handle        = 0x80100002\n\tSCARD_E_INVALID_HANDLE                                                    Handle        = 0x80100003\n\tSCARD_E_INVALID_PARAMETER                                                 Handle        = 0x80100004\n\tSCARD_E_INVALID_TARGET                                                    Handle        = 0x80100005\n\tSCARD_E_NO_MEMORY                                                         Handle        = 0x80100006\n\tSCARD_F_WAITED_TOO_LONG                                                   Handle        = 0x80100007\n\tSCARD_E_INSUFFICIENT_BUFFER                                               Handle        = 0x80100008\n\tSCARD_E_UNKNOWN_READER                                                    Handle        = 0x80100009\n\tSCARD_E_TIMEOUT                                                           Handle        = 0x8010000A\n\tSCARD_E_SHARING_VIOLATION                                                 Handle        = 0x8010000B\n\tSCARD_E_NO_SMARTCARD                                                      Handle        = 0x8010000C\n\tSCARD_E_UNKNOWN_CARD                                                      Handle        = 0x8010000D\n\tSCARD_E_CANT_DISPOSE                                                      Handle        = 0x8010000E\n\tSCARD_E_PROTO_MISMATCH                                                    Handle        = 0x8010000F\n\tSCARD_E_NOT_READY                                                         Handle        = 0x80100010\n\tSCARD_E_INVALID_VALUE                                                     Handle        = 0x80100011\n\tSCARD_E_SYSTEM_CANCELLED                                                  Handle        = 0x80100012\n\tSCARD_F_COMM_ERROR                                                        Handle        = 0x80100013\n\tSCARD_F_UNKNOWN_ERROR                                                     Handle        = 0x80100014\n\tSCARD_E_INVALID_ATR                                                       Handle        = 0x80100015\n\tSCARD_E_NOT_TRANSACTED                                                    Handle        = 0x80100016\n\tSCARD_E_READER_UNAVAILABLE                                                Handle        = 0x80100017\n\tSCARD_P_SHUTDOWN                                                          Handle        = 0x80100018\n\tSCARD_E_PCI_TOO_SMALL                                                     Handle        = 0x80100019\n\tSCARD_E_READER_UNSUPPORTED                                                Handle        = 0x8010001A\n\tSCARD_E_DUPLICATE_READER                                                  Handle        = 0x8010001B\n\tSCARD_E_CARD_UNSUPPORTED                                                  Handle        = 0x8010001C\n\tSCARD_E_NO_SERVICE                                                        Handle        = 0x8010001D\n\tSCARD_E_SERVICE_STOPPED                                                   Handle        = 0x8010001E\n\tSCARD_E_UNEXPECTED                                                        Handle        = 0x8010001F\n\tSCARD_E_ICC_INSTALLATION                                                  Handle        = 0x80100020\n\tSCARD_E_ICC_CREATEORDER                                                   Handle        = 0x80100021\n\tSCARD_E_UNSUPPORTED_FEATURE                                               Handle        = 0x80100022\n\tSCARD_E_DIR_NOT_FOUND                                                     Handle        = 0x80100023\n\tSCARD_E_FILE_NOT_FOUND                                                    Handle        = 0x80100024\n\tSCARD_E_NO_DIR                                                            Handle        = 0x80100025\n\tSCARD_E_NO_FILE                                                           Handle        = 0x80100026\n\tSCARD_E_NO_ACCESS                                                         Handle        = 0x80100027\n\tSCARD_E_WRITE_TOO_MANY                                                    Handle        = 0x80100028\n\tSCARD_E_BAD_SEEK                                                          Handle        = 0x80100029\n\tSCARD_E_INVALID_CHV                                                       Handle        = 0x8010002A\n\tSCARD_E_UNKNOWN_RES_MNG                                                   Handle        = 0x8010002B\n\tSCARD_E_NO_SUCH_CERTIFICATE                                               Handle        = 0x8010002C\n\tSCARD_E_CERTIFICATE_UNAVAILABLE                                           Handle        = 0x8010002D\n\tSCARD_E_NO_READERS_AVAILABLE                                              Handle        = 0x8010002E\n\tSCARD_E_COMM_DATA_LOST                                                    Handle        = 0x8010002F\n\tSCARD_E_NO_KEY_CONTAINER                                                  Handle        = 0x80100030\n\tSCARD_E_SERVER_TOO_BUSY                                                   Handle        = 0x80100031\n\tSCARD_E_PIN_CACHE_EXPIRED                                                 Handle        = 0x80100032\n\tSCARD_E_NO_PIN_CACHE                                                      Handle        = 0x80100033\n\tSCARD_E_READ_ONLY_CARD                                                    Handle        = 0x80100034\n\tSCARD_W_UNSUPPORTED_CARD                                                  Handle        = 0x80100065\n\tSCARD_W_UNRESPONSIVE_CARD                                                 Handle        = 0x80100066\n\tSCARD_W_UNPOWERED_CARD                                                    Handle        = 0x80100067\n\tSCARD_W_RESET_CARD                                                        Handle        = 0x80100068\n\tSCARD_W_REMOVED_CARD                                                      Handle        = 0x80100069\n\tSCARD_W_SECURITY_VIOLATION                                                Handle        = 0x8010006A\n\tSCARD_W_WRONG_CHV                                                         Handle        = 0x8010006B\n\tSCARD_W_CHV_BLOCKED                                                       Handle        = 0x8010006C\n\tSCARD_W_EOF                                                               Handle        = 0x8010006D\n\tSCARD_W_CANCELLED_BY_USER                                                 Handle        = 0x8010006E\n\tSCARD_W_CARD_NOT_AUTHENTICATED                                            Handle        = 0x8010006F\n\tSCARD_W_CACHE_ITEM_NOT_FOUND                                              Handle        = 0x80100070\n\tSCARD_W_CACHE_ITEM_STALE                                                  Handle        = 0x80100071\n\tSCARD_W_CACHE_ITEM_TOO_BIG                                                Handle        = 0x80100072\n\tCOMADMIN_E_OBJECTERRORS                                                   Handle        = 0x80110401\n\tCOMADMIN_E_OBJECTINVALID                                                  Handle        = 0x80110402\n\tCOMADMIN_E_KEYMISSING                                                     Handle        = 0x80110403\n\tCOMADMIN_E_ALREADYINSTALLED                                               Handle        = 0x80110404\n\tCOMADMIN_E_APP_FILE_WRITEFAIL                                             Handle        = 0x80110407\n\tCOMADMIN_E_APP_FILE_READFAIL                                              Handle        = 0x80110408\n\tCOMADMIN_E_APP_FILE_VERSION                                               Handle        = 0x80110409\n\tCOMADMIN_E_BADPATH                                                        Handle        = 0x8011040A\n\tCOMADMIN_E_APPLICATIONEXISTS                                              Handle        = 0x8011040B\n\tCOMADMIN_E_ROLEEXISTS                                                     Handle        = 0x8011040C\n\tCOMADMIN_E_CANTCOPYFILE                                                   Handle        = 0x8011040D\n\tCOMADMIN_E_NOUSER                                                         Handle        = 0x8011040F\n\tCOMADMIN_E_INVALIDUSERIDS                                                 Handle        = 0x80110410\n\tCOMADMIN_E_NOREGISTRYCLSID                                                Handle        = 0x80110411\n\tCOMADMIN_E_BADREGISTRYPROGID                                              Handle        = 0x80110412\n\tCOMADMIN_E_AUTHENTICATIONLEVEL                                            Handle        = 0x80110413\n\tCOMADMIN_E_USERPASSWDNOTVALID                                             Handle        = 0x80110414\n\tCOMADMIN_E_CLSIDORIIDMISMATCH                                             Handle        = 0x80110418\n\tCOMADMIN_E_REMOTEINTERFACE                                                Handle        = 0x80110419\n\tCOMADMIN_E_DLLREGISTERSERVER                                              Handle        = 0x8011041A\n\tCOMADMIN_E_NOSERVERSHARE                                                  Handle        = 0x8011041B\n\tCOMADMIN_E_DLLLOADFAILED                                                  Handle        = 0x8011041D\n\tCOMADMIN_E_BADREGISTRYLIBID                                               Handle        = 0x8011041E\n\tCOMADMIN_E_APPDIRNOTFOUND                                                 Handle        = 0x8011041F\n\tCOMADMIN_E_REGISTRARFAILED                                                Handle        = 0x80110423\n\tCOMADMIN_E_COMPFILE_DOESNOTEXIST                                          Handle        = 0x80110424\n\tCOMADMIN_E_COMPFILE_LOADDLLFAIL                                           Handle        = 0x80110425\n\tCOMADMIN_E_COMPFILE_GETCLASSOBJ                                           Handle        = 0x80110426\n\tCOMADMIN_E_COMPFILE_CLASSNOTAVAIL                                         Handle        = 0x80110427\n\tCOMADMIN_E_COMPFILE_BADTLB                                                Handle        = 0x80110428\n\tCOMADMIN_E_COMPFILE_NOTINSTALLABLE                                        Handle        = 0x80110429\n\tCOMADMIN_E_NOTCHANGEABLE                                                  Handle        = 0x8011042A\n\tCOMADMIN_E_NOTDELETEABLE                                                  Handle        = 0x8011042B\n\tCOMADMIN_E_SESSION                                                        Handle        = 0x8011042C\n\tCOMADMIN_E_COMP_MOVE_LOCKED                                               Handle        = 0x8011042D\n\tCOMADMIN_E_COMP_MOVE_BAD_DEST                                             Handle        = 0x8011042E\n\tCOMADMIN_E_REGISTERTLB                                                    Handle        = 0x80110430\n\tCOMADMIN_E_SYSTEMAPP                                                      Handle        = 0x80110433\n\tCOMADMIN_E_COMPFILE_NOREGISTRAR                                           Handle        = 0x80110434\n\tCOMADMIN_E_COREQCOMPINSTALLED                                             Handle        = 0x80110435\n\tCOMADMIN_E_SERVICENOTINSTALLED                                            Handle        = 0x80110436\n\tCOMADMIN_E_PROPERTYSAVEFAILED                                             Handle        = 0x80110437\n\tCOMADMIN_E_OBJECTEXISTS                                                   Handle        = 0x80110438\n\tCOMADMIN_E_COMPONENTEXISTS                                                Handle        = 0x80110439\n\tCOMADMIN_E_REGFILE_CORRUPT                                                Handle        = 0x8011043B\n\tCOMADMIN_E_PROPERTY_OVERFLOW                                              Handle        = 0x8011043C\n\tCOMADMIN_E_NOTINREGISTRY                                                  Handle        = 0x8011043E\n\tCOMADMIN_E_OBJECTNOTPOOLABLE                                              Handle        = 0x8011043F\n\tCOMADMIN_E_APPLID_MATCHES_CLSID                                           Handle        = 0x80110446\n\tCOMADMIN_E_ROLE_DOES_NOT_EXIST                                            Handle        = 0x80110447\n\tCOMADMIN_E_START_APP_NEEDS_COMPONENTS                                     Handle        = 0x80110448\n\tCOMADMIN_E_REQUIRES_DIFFERENT_PLATFORM                                    Handle        = 0x80110449\n\tCOMADMIN_E_CAN_NOT_EXPORT_APP_PROXY                                       Handle        = 0x8011044A\n\tCOMADMIN_E_CAN_NOT_START_APP                                              Handle        = 0x8011044B\n\tCOMADMIN_E_CAN_NOT_EXPORT_SYS_APP                                         Handle        = 0x8011044C\n\tCOMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT                                    Handle        = 0x8011044D\n\tCOMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER                                  Handle        = 0x8011044E\n\tCOMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE                                     Handle        = 0x8011044F\n\tCOMADMIN_E_BASE_PARTITION_ONLY                                            Handle        = 0x80110450\n\tCOMADMIN_E_START_APP_DISABLED                                             Handle        = 0x80110451\n\tCOMADMIN_E_CAT_DUPLICATE_PARTITION_NAME                                   Handle        = 0x80110457\n\tCOMADMIN_E_CAT_INVALID_PARTITION_NAME                                     Handle        = 0x80110458\n\tCOMADMIN_E_CAT_PARTITION_IN_USE                                           Handle        = 0x80110459\n\tCOMADMIN_E_FILE_PARTITION_DUPLICATE_FILES                                 Handle        = 0x8011045A\n\tCOMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED                            Handle        = 0x8011045B\n\tCOMADMIN_E_AMBIGUOUS_APPLICATION_NAME                                     Handle        = 0x8011045C\n\tCOMADMIN_E_AMBIGUOUS_PARTITION_NAME                                       Handle        = 0x8011045D\n\tCOMADMIN_E_REGDB_NOTINITIALIZED                                           Handle        = 0x80110472\n\tCOMADMIN_E_REGDB_NOTOPEN                                                  Handle        = 0x80110473\n\tCOMADMIN_E_REGDB_SYSTEMERR                                                Handle        = 0x80110474\n\tCOMADMIN_E_REGDB_ALREADYRUNNING                                           Handle        = 0x80110475\n\tCOMADMIN_E_MIG_VERSIONNOTSUPPORTED                                        Handle        = 0x80110480\n\tCOMADMIN_E_MIG_SCHEMANOTFOUND                                             Handle        = 0x80110481\n\tCOMADMIN_E_CAT_BITNESSMISMATCH                                            Handle        = 0x80110482\n\tCOMADMIN_E_CAT_UNACCEPTABLEBITNESS                                        Handle        = 0x80110483\n\tCOMADMIN_E_CAT_WRONGAPPBITNESS                                            Handle        = 0x80110484\n\tCOMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED                                 Handle        = 0x80110485\n\tCOMADMIN_E_CAT_SERVERFAULT                                                Handle        = 0x80110486\n\tCOMQC_E_APPLICATION_NOT_QUEUED                                            Handle        = 0x80110600\n\tCOMQC_E_NO_QUEUEABLE_INTERFACES                                           Handle        = 0x80110601\n\tCOMQC_E_QUEUING_SERVICE_NOT_AVAILABLE                                     Handle        = 0x80110602\n\tCOMQC_E_NO_IPERSISTSTREAM                                                 Handle        = 0x80110603\n\tCOMQC_E_BAD_MESSAGE                                                       Handle        = 0x80110604\n\tCOMQC_E_UNAUTHENTICATED                                                   Handle        = 0x80110605\n\tCOMQC_E_UNTRUSTED_ENQUEUER                                                Handle        = 0x80110606\n\tMSDTC_E_DUPLICATE_RESOURCE                                                Handle        = 0x80110701\n\tCOMADMIN_E_OBJECT_PARENT_MISSING                                          Handle        = 0x80110808\n\tCOMADMIN_E_OBJECT_DOES_NOT_EXIST                                          Handle        = 0x80110809\n\tCOMADMIN_E_APP_NOT_RUNNING                                                Handle        = 0x8011080A\n\tCOMADMIN_E_INVALID_PARTITION                                              Handle        = 0x8011080B\n\tCOMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE                              Handle        = 0x8011080D\n\tCOMADMIN_E_USER_IN_SET                                                    Handle        = 0x8011080E\n\tCOMADMIN_E_CANTRECYCLELIBRARYAPPS                                         Handle        = 0x8011080F\n\tCOMADMIN_E_CANTRECYCLESERVICEAPPS                                         Handle        = 0x80110811\n\tCOMADMIN_E_PROCESSALREADYRECYCLED                                         Handle        = 0x80110812\n\tCOMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED                                  Handle        = 0x80110813\n\tCOMADMIN_E_CANTMAKEINPROCSERVICE                                          Handle        = 0x80110814\n\tCOMADMIN_E_PROGIDINUSEBYCLSID                                             Handle        = 0x80110815\n\tCOMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET                                   Handle        = 0x80110816\n\tCOMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED                                  Handle        = 0x80110817\n\tCOMADMIN_E_PARTITION_ACCESSDENIED                                         Handle        = 0x80110818\n\tCOMADMIN_E_PARTITION_MSI_ONLY                                             Handle        = 0x80110819\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT                          Handle        = 0x8011081A\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS                  Handle        = 0x8011081B\n\tCOMADMIN_E_COMP_MOVE_SOURCE                                               Handle        = 0x8011081C\n\tCOMADMIN_E_COMP_MOVE_DEST                                                 Handle        = 0x8011081D\n\tCOMADMIN_E_COMP_MOVE_PRIVATE                                              Handle        = 0x8011081E\n\tCOMADMIN_E_BASEPARTITION_REQUIRED_IN_SET                                  Handle        = 0x8011081F\n\tCOMADMIN_E_CANNOT_ALIAS_EVENTCLASS                                        Handle        = 0x80110820\n\tCOMADMIN_E_PRIVATE_ACCESSDENIED                                           Handle        = 0x80110821\n\tCOMADMIN_E_SAFERINVALID                                                   Handle        = 0x80110822\n\tCOMADMIN_E_REGISTRY_ACCESSDENIED                                          Handle        = 0x80110823\n\tCOMADMIN_E_PARTITIONS_DISABLED                                            Handle        = 0x80110824\n\tWER_S_REPORT_DEBUG                                                        Handle        = 0x001B0000\n\tWER_S_REPORT_UPLOADED                                                     Handle        = 0x001B0001\n\tWER_S_REPORT_QUEUED                                                       Handle        = 0x001B0002\n\tWER_S_DISABLED                                                            Handle        = 0x001B0003\n\tWER_S_SUSPENDED_UPLOAD                                                    Handle        = 0x001B0004\n\tWER_S_DISABLED_QUEUE                                                      Handle        = 0x001B0005\n\tWER_S_DISABLED_ARCHIVE                                                    Handle        = 0x001B0006\n\tWER_S_REPORT_ASYNC                                                        Handle        = 0x001B0007\n\tWER_S_IGNORE_ASSERT_INSTANCE                                              Handle        = 0x001B0008\n\tWER_S_IGNORE_ALL_ASSERTS                                                  Handle        = 0x001B0009\n\tWER_S_ASSERT_CONTINUE                                                     Handle        = 0x001B000A\n\tWER_S_THROTTLED                                                           Handle        = 0x001B000B\n\tWER_S_REPORT_UPLOADED_CAB                                                 Handle        = 0x001B000C\n\tWER_E_CRASH_FAILURE                                                       Handle        = 0x801B8000\n\tWER_E_CANCELED                                                            Handle        = 0x801B8001\n\tWER_E_NETWORK_FAILURE                                                     Handle        = 0x801B8002\n\tWER_E_NOT_INITIALIZED                                                     Handle        = 0x801B8003\n\tWER_E_ALREADY_REPORTING                                                   Handle        = 0x801B8004\n\tWER_E_DUMP_THROTTLED                                                      Handle        = 0x801B8005\n\tWER_E_INSUFFICIENT_CONSENT                                                Handle        = 0x801B8006\n\tWER_E_TOO_HEAVY                                                           Handle        = 0x801B8007\n\tERROR_FLT_IO_COMPLETE                                                     Handle        = 0x001F0001\n\tERROR_FLT_NO_HANDLER_DEFINED                                              Handle        = 0x801F0001\n\tERROR_FLT_CONTEXT_ALREADY_DEFINED                                         Handle        = 0x801F0002\n\tERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST                                    Handle        = 0x801F0003\n\tERROR_FLT_DISALLOW_FAST_IO                                                Handle        = 0x801F0004\n\tERROR_FLT_INVALID_NAME_REQUEST                                            Handle        = 0x801F0005\n\tERROR_FLT_NOT_SAFE_TO_POST_OPERATION                                      Handle        = 0x801F0006\n\tERROR_FLT_NOT_INITIALIZED                                                 Handle        = 0x801F0007\n\tERROR_FLT_FILTER_NOT_READY                                                Handle        = 0x801F0008\n\tERROR_FLT_POST_OPERATION_CLEANUP                                          Handle        = 0x801F0009\n\tERROR_FLT_INTERNAL_ERROR                                                  Handle        = 0x801F000A\n\tERROR_FLT_DELETING_OBJECT                                                 Handle        = 0x801F000B\n\tERROR_FLT_MUST_BE_NONPAGED_POOL                                           Handle        = 0x801F000C\n\tERROR_FLT_DUPLICATE_ENTRY                                                 Handle        = 0x801F000D\n\tERROR_FLT_CBDQ_DISABLED                                                   Handle        = 0x801F000E\n\tERROR_FLT_DO_NOT_ATTACH                                                   Handle        = 0x801F000F\n\tERROR_FLT_DO_NOT_DETACH                                                   Handle        = 0x801F0010\n\tERROR_FLT_INSTANCE_ALTITUDE_COLLISION                                     Handle        = 0x801F0011\n\tERROR_FLT_INSTANCE_NAME_COLLISION                                         Handle        = 0x801F0012\n\tERROR_FLT_FILTER_NOT_FOUND                                                Handle        = 0x801F0013\n\tERROR_FLT_VOLUME_NOT_FOUND                                                Handle        = 0x801F0014\n\tERROR_FLT_INSTANCE_NOT_FOUND                                              Handle        = 0x801F0015\n\tERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                    Handle        = 0x801F0016\n\tERROR_FLT_INVALID_CONTEXT_REGISTRATION                                    Handle        = 0x801F0017\n\tERROR_FLT_NAME_CACHE_MISS                                                 Handle        = 0x801F0018\n\tERROR_FLT_NO_DEVICE_OBJECT                                                Handle        = 0x801F0019\n\tERROR_FLT_VOLUME_ALREADY_MOUNTED                                          Handle        = 0x801F001A\n\tERROR_FLT_ALREADY_ENLISTED                                                Handle        = 0x801F001B\n\tERROR_FLT_CONTEXT_ALREADY_LINKED                                          Handle        = 0x801F001C\n\tERROR_FLT_NO_WAITER_FOR_REPLY                                             Handle        = 0x801F0020\n\tERROR_FLT_REGISTRATION_BUSY                                               Handle        = 0x801F0023\n\tERROR_HUNG_DISPLAY_DRIVER_THREAD                                          Handle        = 0x80260001\n\tDWM_E_COMPOSITIONDISABLED                                                 Handle        = 0x80263001\n\tDWM_E_REMOTING_NOT_SUPPORTED                                              Handle        = 0x80263002\n\tDWM_E_NO_REDIRECTION_SURFACE_AVAILABLE                                    Handle        = 0x80263003\n\tDWM_E_NOT_QUEUING_PRESENTS                                                Handle        = 0x80263004\n\tDWM_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x80263005\n\tDWM_S_GDI_REDIRECTION_SURFACE                                             Handle        = 0x00263005\n\tDWM_E_TEXTURE_TOO_LARGE                                                   Handle        = 0x80263007\n\tDWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI                                 Handle        = 0x00263008\n\tERROR_MONITOR_NO_DESCRIPTOR                                               Handle        = 0x00261001\n\tERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                   Handle        = 0x00261002\n\tERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                 Handle        = 0xC0261003\n\tERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK                               Handle        = 0xC0261004\n\tERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                           Handle        = 0xC0261005\n\tERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                          Handle        = 0xC0261006\n\tERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                          Handle        = 0xC0261007\n\tERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA                                     Handle        = 0xC0261008\n\tERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK                               Handle        = 0xC0261009\n\tERROR_MONITOR_INVALID_MANUFACTURE_DATE                                    Handle        = 0xC026100A\n\tERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                   Handle        = 0xC0262000\n\tERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                    Handle        = 0xC0262001\n\tERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER                                    Handle        = 0xC0262002\n\tERROR_GRAPHICS_ADAPTER_WAS_RESET                                          Handle        = 0xC0262003\n\tERROR_GRAPHICS_INVALID_DRIVER_MODEL                                       Handle        = 0xC0262004\n\tERROR_GRAPHICS_PRESENT_MODE_CHANGED                                       Handle        = 0xC0262005\n\tERROR_GRAPHICS_PRESENT_OCCLUDED                                           Handle        = 0xC0262006\n\tERROR_GRAPHICS_PRESENT_DENIED                                             Handle        = 0xC0262007\n\tERROR_GRAPHICS_CANNOTCOLORCONVERT                                         Handle        = 0xC0262008\n\tERROR_GRAPHICS_DRIVER_MISMATCH                                            Handle        = 0xC0262009\n\tERROR_GRAPHICS_PARTIAL_DATA_POPULATED                                     Handle        = 0x4026200A\n\tERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED                               Handle        = 0xC026200B\n\tERROR_GRAPHICS_PRESENT_UNOCCLUDED                                         Handle        = 0xC026200C\n\tERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                     Handle        = 0xC026200D\n\tERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                                Handle        = 0xC026200E\n\tERROR_GRAPHICS_PRESENT_INVALID_WINDOW                                     Handle        = 0xC026200F\n\tERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                   Handle        = 0xC0262010\n\tERROR_GRAPHICS_VAIL_STATE_CHANGED                                         Handle        = 0xC0262011\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                         Handle        = 0xC0262012\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                            Handle        = 0xC0262013\n\tERROR_GRAPHICS_NO_VIDEO_MEMORY                                            Handle        = 0xC0262100\n\tERROR_GRAPHICS_CANT_LOCK_MEMORY                                           Handle        = 0xC0262101\n\tERROR_GRAPHICS_ALLOCATION_BUSY                                            Handle        = 0xC0262102\n\tERROR_GRAPHICS_TOO_MANY_REFERENCES                                        Handle        = 0xC0262103\n\tERROR_GRAPHICS_TRY_AGAIN_LATER                                            Handle        = 0xC0262104\n\tERROR_GRAPHICS_TRY_AGAIN_NOW                                              Handle        = 0xC0262105\n\tERROR_GRAPHICS_ALLOCATION_INVALID                                         Handle        = 0xC0262106\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                           Handle        = 0xC0262107\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                           Handle        = 0xC0262108\n\tERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                               Handle        = 0xC0262109\n\tERROR_GRAPHICS_INVALID_ALLOCATION_USAGE                                   Handle        = 0xC0262110\n\tERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                              Handle        = 0xC0262111\n\tERROR_GRAPHICS_ALLOCATION_CLOSED                                          Handle        = 0xC0262112\n\tERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE                                Handle        = 0xC0262113\n\tERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE                                  Handle        = 0xC0262114\n\tERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE                                    Handle        = 0xC0262115\n\tERROR_GRAPHICS_ALLOCATION_CONTENT_LOST                                    Handle        = 0xC0262116\n\tERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                    Handle        = 0xC0262200\n\tERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION                                Handle        = 0x40262201\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                     Handle        = 0xC0262300\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                               Handle        = 0xC0262301\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                     Handle        = 0xC0262302\n\tERROR_GRAPHICS_INVALID_VIDPN                                              Handle        = 0xC0262303\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                               Handle        = 0xC0262304\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                               Handle        = 0xC0262305\n\tERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                               Handle        = 0xC0262306\n\tERROR_GRAPHICS_MODE_NOT_PINNED                                            Handle        = 0x00262307\n\tERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                                Handle        = 0xC0262308\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET                                Handle        = 0xC0262309\n\tERROR_GRAPHICS_INVALID_FREQUENCY                                          Handle        = 0xC026230A\n\tERROR_GRAPHICS_INVALID_ACTIVE_REGION                                      Handle        = 0xC026230B\n\tERROR_GRAPHICS_INVALID_TOTAL_REGION                                       Handle        = 0xC026230C\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                          Handle        = 0xC0262310\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                          Handle        = 0xC0262311\n\tERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                             Handle        = 0xC0262312\n\tERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                   Handle        = 0xC0262313\n\tERROR_GRAPHICS_MODE_ALREADY_IN_MODESET                                    Handle        = 0xC0262314\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                              Handle        = 0xC0262315\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                              Handle        = 0xC0262316\n\tERROR_GRAPHICS_SOURCE_ALREADY_IN_SET                                      Handle        = 0xC0262317\n\tERROR_GRAPHICS_TARGET_ALREADY_IN_SET                                      Handle        = 0xC0262318\n\tERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                 Handle        = 0xC0262319\n\tERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                              Handle        = 0xC026231A\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                          Handle        = 0xC026231B\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                             Handle        = 0xC026231C\n\tERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                  Handle        = 0xC026231D\n\tERROR_GRAPHICS_NO_PREFERRED_MODE                                          Handle        = 0x0026231E\n\tERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                              Handle        = 0xC026231F\n\tERROR_GRAPHICS_STALE_MODESET                                              Handle        = 0xC0262320\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                              Handle        = 0xC0262321\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                                Handle        = 0xC0262322\n\tERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                            Handle        = 0xC0262323\n\tERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                     Handle        = 0xC0262324\n\tERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION            Handle        = 0xC0262325\n\tERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                    Handle        = 0xC0262326\n\tERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                       Handle        = 0xC0262327\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                      Handle        = 0xC0262328\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                      Handle        = 0xC0262329\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET                               Handle        = 0xC026232A\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR                                  Handle        = 0xC026232B\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                               Handle        = 0xC026232C\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                           Handle        = 0xC026232D\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                        Handle        = 0xC026232E\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                           Handle        = 0xC026232F\n\tERROR_GRAPHICS_RESOURCES_NOT_RELATED                                      Handle        = 0xC0262330\n\tERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262331\n\tERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262332\n\tERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                  Handle        = 0xC0262333\n\tERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER               Handle        = 0xC0262334\n\tERROR_GRAPHICS_NO_VIDPNMGR                                                Handle        = 0xC0262335\n\tERROR_GRAPHICS_NO_ACTIVE_VIDPN                                            Handle        = 0xC0262336\n\tERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY                                       Handle        = 0xC0262337\n\tERROR_GRAPHICS_MONITOR_NOT_CONNECTED                                      Handle        = 0xC0262338\n\tERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262339\n\tERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                                Handle        = 0xC026233A\n\tERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                 Handle        = 0xC026233B\n\tERROR_GRAPHICS_INVALID_STRIDE                                             Handle        = 0xC026233C\n\tERROR_GRAPHICS_INVALID_PIXELFORMAT                                        Handle        = 0xC026233D\n\tERROR_GRAPHICS_INVALID_COLORBASIS                                         Handle        = 0xC026233E\n\tERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                               Handle        = 0xC026233F\n\tERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262340\n\tERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                         Handle        = 0xC0262341\n\tERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                        Handle        = 0xC0262342\n\tERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                   Handle        = 0xC0262343\n\tERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                            Handle        = 0xC0262344\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION               Handle        = 0xC0262345\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED         Handle        = 0xC0262346\n\tERROR_GRAPHICS_INVALID_GAMMA_RAMP                                         Handle        = 0xC0262347\n\tERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                   Handle        = 0xC0262348\n\tERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                                Handle        = 0xC0262349\n\tERROR_GRAPHICS_MODE_NOT_IN_MODESET                                        Handle        = 0xC026234A\n\tERROR_GRAPHICS_DATASET_IS_EMPTY                                           Handle        = 0x0026234B\n\tERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                                Handle        = 0x0026234C\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON               Handle        = 0xC026234D\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                  Handle        = 0xC026234E\n\tERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE                                Handle        = 0xC026234F\n\tERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                          Handle        = 0xC0262350\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED            Handle        = 0x00262351\n\tERROR_GRAPHICS_INVALID_SCANLINE_ORDERING                                  Handle        = 0xC0262352\n\tERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                               Handle        = 0xC0262353\n\tERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                           Handle        = 0xC0262354\n\tERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                                Handle        = 0xC0262355\n\tERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                             Handle        = 0xC0262356\n\tERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                          Handle        = 0xC0262357\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                  Handle        = 0xC0262358\n\tERROR_GRAPHICS_MAX_NUM_PATHS_REACHED                                      Handle        = 0xC0262359\n\tERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                         Handle        = 0xC026235A\n\tERROR_GRAPHICS_INVALID_CLIENT_TYPE                                        Handle        = 0xC026235B\n\tERROR_GRAPHICS_CLIENTVIDPN_NOT_SET                                        Handle        = 0xC026235C\n\tERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                          Handle        = 0xC0262400\n\tERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                             Handle        = 0xC0262401\n\tERROR_GRAPHICS_UNKNOWN_CHILD_STATUS                                       Handle        = 0x4026242F\n\tERROR_GRAPHICS_NOT_A_LINKED_ADAPTER                                       Handle        = 0xC0262430\n\tERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED                                    Handle        = 0xC0262431\n\tERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                  Handle        = 0xC0262432\n\tERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                    Handle        = 0xC0262433\n\tERROR_GRAPHICS_CHAINLINKS_NOT_STARTED                                     Handle        = 0xC0262434\n\tERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                  Handle        = 0xC0262435\n\tERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                             Handle        = 0xC0262436\n\tERROR_GRAPHICS_LEADLINK_START_DEFERRED                                    Handle        = 0x40262437\n\tERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER                                     Handle        = 0xC0262438\n\tERROR_GRAPHICS_POLLING_TOO_FREQUENTLY                                     Handle        = 0x40262439\n\tERROR_GRAPHICS_START_DEFERRED                                             Handle        = 0x4026243A\n\tERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                                Handle        = 0xC026243B\n\tERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS                                    Handle        = 0x4026243C\n\tERROR_GRAPHICS_OPM_NOT_SUPPORTED                                          Handle        = 0xC0262500\n\tERROR_GRAPHICS_COPP_NOT_SUPPORTED                                         Handle        = 0xC0262501\n\tERROR_GRAPHICS_UAB_NOT_SUPPORTED                                          Handle        = 0xC0262502\n\tERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                           Handle        = 0xC0262503\n\tERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST                                 Handle        = 0xC0262505\n\tERROR_GRAPHICS_OPM_INTERNAL_ERROR                                         Handle        = 0xC026250B\n\tERROR_GRAPHICS_OPM_INVALID_HANDLE                                         Handle        = 0xC026250C\n\tERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                             Handle        = 0xC026250E\n\tERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                  Handle        = 0xC026250F\n\tERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED                                   Handle        = 0xC0262510\n\tERROR_GRAPHICS_PVP_HFS_FAILED                                             Handle        = 0xC0262511\n\tERROR_GRAPHICS_OPM_INVALID_SRM                                            Handle        = 0xC0262512\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                           Handle        = 0xC0262513\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                            Handle        = 0xC0262514\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                          Handle        = 0xC0262515\n\tERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                     Handle        = 0xC0262516\n\tERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                    Handle        = 0xC0262517\n\tERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                       Handle        = 0xC0262518\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS                          Handle        = 0xC026251A\n\tERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS                        Handle        = 0xC026251B\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS              Handle        = 0xC026251C\n\tERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                            Handle        = 0xC026251D\n\tERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                  Handle        = 0xC026251E\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS               Handle        = 0xC026251F\n\tERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                                Handle        = 0xC0262520\n\tERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                          Handle        = 0xC0262521\n\tERROR_GRAPHICS_I2C_NOT_SUPPORTED                                          Handle        = 0xC0262580\n\tERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                  Handle        = 0xC0262581\n\tERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                                Handle        = 0xC0262582\n\tERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                   Handle        = 0xC0262583\n\tERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                    Handle        = 0xC0262584\n\tERROR_GRAPHICS_DDCCI_INVALID_DATA                                         Handle        = 0xC0262585\n\tERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE          Handle        = 0xC0262586\n\tERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING                            Handle        = 0xC0262587\n\tERROR_GRAPHICS_MCA_INTERNAL_ERROR                                         Handle        = 0xC0262588\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                              Handle        = 0xC0262589\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                               Handle        = 0xC026258A\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                             Handle        = 0xC026258B\n\tERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                            Handle        = 0xC026258C\n\tERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                   Handle        = 0xC026258D\n\tERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE     Handle        = 0xC02625D8\n\tERROR_GRAPHICS_MCA_INVALID_VCP_VERSION                                    Handle        = 0xC02625D9\n\tERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                    Handle        = 0xC02625DA\n\tERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH                                  Handle        = 0xC02625DB\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION                               Handle        = 0xC02625DC\n\tERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                       Handle        = 0xC02625DE\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE                          Handle        = 0xC02625DF\n\tERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                             Handle        = 0xC02625E0\n\tERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                      Handle        = 0xC02625E1\n\tERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                     Handle        = 0xC02625E2\n\tERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                            Handle        = 0xC02625E3\n\tERROR_GRAPHICS_INVALID_POINTER                                            Handle        = 0xC02625E4\n\tERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                   Handle        = 0xC02625E5\n\tERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                  Handle        = 0xC02625E6\n\tERROR_GRAPHICS_INTERNAL_ERROR                                             Handle        = 0xC02625E7\n\tERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                            Handle        = 0xC02605E8\n\tNAP_E_INVALID_PACKET                                                      Handle        = 0x80270001\n\tNAP_E_MISSING_SOH                                                         Handle        = 0x80270002\n\tNAP_E_CONFLICTING_ID                                                      Handle        = 0x80270003\n\tNAP_E_NO_CACHED_SOH                                                       Handle        = 0x80270004\n\tNAP_E_STILL_BOUND                                                         Handle        = 0x80270005\n\tNAP_E_NOT_REGISTERED                                                      Handle        = 0x80270006\n\tNAP_E_NOT_INITIALIZED                                                     Handle        = 0x80270007\n\tNAP_E_MISMATCHED_ID                                                       Handle        = 0x80270008\n\tNAP_E_NOT_PENDING                                                         Handle        = 0x80270009\n\tNAP_E_ID_NOT_FOUND                                                        Handle        = 0x8027000A\n\tNAP_E_MAXSIZE_TOO_SMALL                                                   Handle        = 0x8027000B\n\tNAP_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x8027000C\n\tNAP_S_CERT_ALREADY_PRESENT                                                Handle        = 0x0027000D\n\tNAP_E_ENTITY_DISABLED                                                     Handle        = 0x8027000E\n\tNAP_E_NETSH_GROUPPOLICY_ERROR                                             Handle        = 0x8027000F\n\tNAP_E_TOO_MANY_CALLS                                                      Handle        = 0x80270010\n\tNAP_E_SHV_CONFIG_EXISTED                                                  Handle        = 0x80270011\n\tNAP_E_SHV_CONFIG_NOT_FOUND                                                Handle        = 0x80270012\n\tNAP_E_SHV_TIMEOUT                                                         Handle        = 0x80270013\n\tTPM_E_ERROR_MASK                                                          Handle        = 0x80280000\n\tTPM_E_AUTHFAIL                                                            Handle        = 0x80280001\n\tTPM_E_BADINDEX                                                            Handle        = 0x80280002\n\tTPM_E_BAD_PARAMETER                                                       Handle        = 0x80280003\n\tTPM_E_AUDITFAILURE                                                        Handle        = 0x80280004\n\tTPM_E_CLEAR_DISABLED                                                      Handle        = 0x80280005\n\tTPM_E_DEACTIVATED                                                         Handle        = 0x80280006\n\tTPM_E_DISABLED                                                            Handle        = 0x80280007\n\tTPM_E_DISABLED_CMD                                                        Handle        = 0x80280008\n\tTPM_E_FAIL                                                                Handle        = 0x80280009\n\tTPM_E_BAD_ORDINAL                                                         Handle        = 0x8028000A\n\tTPM_E_INSTALL_DISABLED                                                    Handle        = 0x8028000B\n\tTPM_E_INVALID_KEYHANDLE                                                   Handle        = 0x8028000C\n\tTPM_E_KEYNOTFOUND                                                         Handle        = 0x8028000D\n\tTPM_E_INAPPROPRIATE_ENC                                                   Handle        = 0x8028000E\n\tTPM_E_MIGRATEFAIL                                                         Handle        = 0x8028000F\n\tTPM_E_INVALID_PCR_INFO                                                    Handle        = 0x80280010\n\tTPM_E_NOSPACE                                                             Handle        = 0x80280011\n\tTPM_E_NOSRK                                                               Handle        = 0x80280012\n\tTPM_E_NOTSEALED_BLOB                                                      Handle        = 0x80280013\n\tTPM_E_OWNER_SET                                                           Handle        = 0x80280014\n\tTPM_E_RESOURCES                                                           Handle        = 0x80280015\n\tTPM_E_SHORTRANDOM                                                         Handle        = 0x80280016\n\tTPM_E_SIZE                                                                Handle        = 0x80280017\n\tTPM_E_WRONGPCRVAL                                                         Handle        = 0x80280018\n\tTPM_E_BAD_PARAM_SIZE                                                      Handle        = 0x80280019\n\tTPM_E_SHA_THREAD                                                          Handle        = 0x8028001A\n\tTPM_E_SHA_ERROR                                                           Handle        = 0x8028001B\n\tTPM_E_FAILEDSELFTEST                                                      Handle        = 0x8028001C\n\tTPM_E_AUTH2FAIL                                                           Handle        = 0x8028001D\n\tTPM_E_BADTAG                                                              Handle        = 0x8028001E\n\tTPM_E_IOERROR                                                             Handle        = 0x8028001F\n\tTPM_E_ENCRYPT_ERROR                                                       Handle        = 0x80280020\n\tTPM_E_DECRYPT_ERROR                                                       Handle        = 0x80280021\n\tTPM_E_INVALID_AUTHHANDLE                                                  Handle        = 0x80280022\n\tTPM_E_NO_ENDORSEMENT                                                      Handle        = 0x80280023\n\tTPM_E_INVALID_KEYUSAGE                                                    Handle        = 0x80280024\n\tTPM_E_WRONG_ENTITYTYPE                                                    Handle        = 0x80280025\n\tTPM_E_INVALID_POSTINIT                                                    Handle        = 0x80280026\n\tTPM_E_INAPPROPRIATE_SIG                                                   Handle        = 0x80280027\n\tTPM_E_BAD_KEY_PROPERTY                                                    Handle        = 0x80280028\n\tTPM_E_BAD_MIGRATION                                                       Handle        = 0x80280029\n\tTPM_E_BAD_SCHEME                                                          Handle        = 0x8028002A\n\tTPM_E_BAD_DATASIZE                                                        Handle        = 0x8028002B\n\tTPM_E_BAD_MODE                                                            Handle        = 0x8028002C\n\tTPM_E_BAD_PRESENCE                                                        Handle        = 0x8028002D\n\tTPM_E_BAD_VERSION                                                         Handle        = 0x8028002E\n\tTPM_E_NO_WRAP_TRANSPORT                                                   Handle        = 0x8028002F\n\tTPM_E_AUDITFAIL_UNSUCCESSFUL                                              Handle        = 0x80280030\n\tTPM_E_AUDITFAIL_SUCCESSFUL                                                Handle        = 0x80280031\n\tTPM_E_NOTRESETABLE                                                        Handle        = 0x80280032\n\tTPM_E_NOTLOCAL                                                            Handle        = 0x80280033\n\tTPM_E_BAD_TYPE                                                            Handle        = 0x80280034\n\tTPM_E_INVALID_RESOURCE                                                    Handle        = 0x80280035\n\tTPM_E_NOTFIPS                                                             Handle        = 0x80280036\n\tTPM_E_INVALID_FAMILY                                                      Handle        = 0x80280037\n\tTPM_E_NO_NV_PERMISSION                                                    Handle        = 0x80280038\n\tTPM_E_REQUIRES_SIGN                                                       Handle        = 0x80280039\n\tTPM_E_KEY_NOTSUPPORTED                                                    Handle        = 0x8028003A\n\tTPM_E_AUTH_CONFLICT                                                       Handle        = 0x8028003B\n\tTPM_E_AREA_LOCKED                                                         Handle        = 0x8028003C\n\tTPM_E_BAD_LOCALITY                                                        Handle        = 0x8028003D\n\tTPM_E_READ_ONLY                                                           Handle        = 0x8028003E\n\tTPM_E_PER_NOWRITE                                                         Handle        = 0x8028003F\n\tTPM_E_FAMILYCOUNT                                                         Handle        = 0x80280040\n\tTPM_E_WRITE_LOCKED                                                        Handle        = 0x80280041\n\tTPM_E_BAD_ATTRIBUTES                                                      Handle        = 0x80280042\n\tTPM_E_INVALID_STRUCTURE                                                   Handle        = 0x80280043\n\tTPM_E_KEY_OWNER_CONTROL                                                   Handle        = 0x80280044\n\tTPM_E_BAD_COUNTER                                                         Handle        = 0x80280045\n\tTPM_E_NOT_FULLWRITE                                                       Handle        = 0x80280046\n\tTPM_E_CONTEXT_GAP                                                         Handle        = 0x80280047\n\tTPM_E_MAXNVWRITES                                                         Handle        = 0x80280048\n\tTPM_E_NOOPERATOR                                                          Handle        = 0x80280049\n\tTPM_E_RESOURCEMISSING                                                     Handle        = 0x8028004A\n\tTPM_E_DELEGATE_LOCK                                                       Handle        = 0x8028004B\n\tTPM_E_DELEGATE_FAMILY                                                     Handle        = 0x8028004C\n\tTPM_E_DELEGATE_ADMIN                                                      Handle        = 0x8028004D\n\tTPM_E_TRANSPORT_NOTEXCLUSIVE                                              Handle        = 0x8028004E\n\tTPM_E_OWNER_CONTROL                                                       Handle        = 0x8028004F\n\tTPM_E_DAA_RESOURCES                                                       Handle        = 0x80280050\n\tTPM_E_DAA_INPUT_DATA0                                                     Handle        = 0x80280051\n\tTPM_E_DAA_INPUT_DATA1                                                     Handle        = 0x80280052\n\tTPM_E_DAA_ISSUER_SETTINGS                                                 Handle        = 0x80280053\n\tTPM_E_DAA_TPM_SETTINGS                                                    Handle        = 0x80280054\n\tTPM_E_DAA_STAGE                                                           Handle        = 0x80280055\n\tTPM_E_DAA_ISSUER_VALIDITY                                                 Handle        = 0x80280056\n\tTPM_E_DAA_WRONG_W                                                         Handle        = 0x80280057\n\tTPM_E_BAD_HANDLE                                                          Handle        = 0x80280058\n\tTPM_E_BAD_DELEGATE                                                        Handle        = 0x80280059\n\tTPM_E_BADCONTEXT                                                          Handle        = 0x8028005A\n\tTPM_E_TOOMANYCONTEXTS                                                     Handle        = 0x8028005B\n\tTPM_E_MA_TICKET_SIGNATURE                                                 Handle        = 0x8028005C\n\tTPM_E_MA_DESTINATION                                                      Handle        = 0x8028005D\n\tTPM_E_MA_SOURCE                                                           Handle        = 0x8028005E\n\tTPM_E_MA_AUTHORITY                                                        Handle        = 0x8028005F\n\tTPM_E_PERMANENTEK                                                         Handle        = 0x80280061\n\tTPM_E_BAD_SIGNATURE                                                       Handle        = 0x80280062\n\tTPM_E_NOCONTEXTSPACE                                                      Handle        = 0x80280063\n\tTPM_20_E_ASYMMETRIC                                                       Handle        = 0x80280081\n\tTPM_20_E_ATTRIBUTES                                                       Handle        = 0x80280082\n\tTPM_20_E_HASH                                                             Handle        = 0x80280083\n\tTPM_20_E_VALUE                                                            Handle        = 0x80280084\n\tTPM_20_E_HIERARCHY                                                        Handle        = 0x80280085\n\tTPM_20_E_KEY_SIZE                                                         Handle        = 0x80280087\n\tTPM_20_E_MGF                                                              Handle        = 0x80280088\n\tTPM_20_E_MODE                                                             Handle        = 0x80280089\n\tTPM_20_E_TYPE                                                             Handle        = 0x8028008A\n\tTPM_20_E_HANDLE                                                           Handle        = 0x8028008B\n\tTPM_20_E_KDF                                                              Handle        = 0x8028008C\n\tTPM_20_E_RANGE                                                            Handle        = 0x8028008D\n\tTPM_20_E_AUTH_FAIL                                                        Handle        = 0x8028008E\n\tTPM_20_E_NONCE                                                            Handle        = 0x8028008F\n\tTPM_20_E_PP                                                               Handle        = 0x80280090\n\tTPM_20_E_SCHEME                                                           Handle        = 0x80280092\n\tTPM_20_E_SIZE                                                             Handle        = 0x80280095\n\tTPM_20_E_SYMMETRIC                                                        Handle        = 0x80280096\n\tTPM_20_E_TAG                                                              Handle        = 0x80280097\n\tTPM_20_E_SELECTOR                                                         Handle        = 0x80280098\n\tTPM_20_E_INSUFFICIENT                                                     Handle        = 0x8028009A\n\tTPM_20_E_SIGNATURE                                                        Handle        = 0x8028009B\n\tTPM_20_E_KEY                                                              Handle        = 0x8028009C\n\tTPM_20_E_POLICY_FAIL                                                      Handle        = 0x8028009D\n\tTPM_20_E_INTEGRITY                                                        Handle        = 0x8028009F\n\tTPM_20_E_TICKET                                                           Handle        = 0x802800A0\n\tTPM_20_E_RESERVED_BITS                                                    Handle        = 0x802800A1\n\tTPM_20_E_BAD_AUTH                                                         Handle        = 0x802800A2\n\tTPM_20_E_EXPIRED                                                          Handle        = 0x802800A3\n\tTPM_20_E_POLICY_CC                                                        Handle        = 0x802800A4\n\tTPM_20_E_BINDING                                                          Handle        = 0x802800A5\n\tTPM_20_E_CURVE                                                            Handle        = 0x802800A6\n\tTPM_20_E_ECC_POINT                                                        Handle        = 0x802800A7\n\tTPM_20_E_INITIALIZE                                                       Handle        = 0x80280100\n\tTPM_20_E_FAILURE                                                          Handle        = 0x80280101\n\tTPM_20_E_SEQUENCE                                                         Handle        = 0x80280103\n\tTPM_20_E_PRIVATE                                                          Handle        = 0x8028010B\n\tTPM_20_E_HMAC                                                             Handle        = 0x80280119\n\tTPM_20_E_DISABLED                                                         Handle        = 0x80280120\n\tTPM_20_E_EXCLUSIVE                                                        Handle        = 0x80280121\n\tTPM_20_E_ECC_CURVE                                                        Handle        = 0x80280123\n\tTPM_20_E_AUTH_TYPE                                                        Handle        = 0x80280124\n\tTPM_20_E_AUTH_MISSING                                                     Handle        = 0x80280125\n\tTPM_20_E_POLICY                                                           Handle        = 0x80280126\n\tTPM_20_E_PCR                                                              Handle        = 0x80280127\n\tTPM_20_E_PCR_CHANGED                                                      Handle        = 0x80280128\n\tTPM_20_E_UPGRADE                                                          Handle        = 0x8028012D\n\tTPM_20_E_TOO_MANY_CONTEXTS                                                Handle        = 0x8028012E\n\tTPM_20_E_AUTH_UNAVAILABLE                                                 Handle        = 0x8028012F\n\tTPM_20_E_REBOOT                                                           Handle        = 0x80280130\n\tTPM_20_E_UNBALANCED                                                       Handle        = 0x80280131\n\tTPM_20_E_COMMAND_SIZE                                                     Handle        = 0x80280142\n\tTPM_20_E_COMMAND_CODE                                                     Handle        = 0x80280143\n\tTPM_20_E_AUTHSIZE                                                         Handle        = 0x80280144\n\tTPM_20_E_AUTH_CONTEXT                                                     Handle        = 0x80280145\n\tTPM_20_E_NV_RANGE                                                         Handle        = 0x80280146\n\tTPM_20_E_NV_SIZE                                                          Handle        = 0x80280147\n\tTPM_20_E_NV_LOCKED                                                        Handle        = 0x80280148\n\tTPM_20_E_NV_AUTHORIZATION                                                 Handle        = 0x80280149\n\tTPM_20_E_NV_UNINITIALIZED                                                 Handle        = 0x8028014A\n\tTPM_20_E_NV_SPACE                                                         Handle        = 0x8028014B\n\tTPM_20_E_NV_DEFINED                                                       Handle        = 0x8028014C\n\tTPM_20_E_BAD_CONTEXT                                                      Handle        = 0x80280150\n\tTPM_20_E_CPHASH                                                           Handle        = 0x80280151\n\tTPM_20_E_PARENT                                                           Handle        = 0x80280152\n\tTPM_20_E_NEEDS_TEST                                                       Handle        = 0x80280153\n\tTPM_20_E_NO_RESULT                                                        Handle        = 0x80280154\n\tTPM_20_E_SENSITIVE                                                        Handle        = 0x80280155\n\tTPM_E_COMMAND_BLOCKED                                                     Handle        = 0x80280400\n\tTPM_E_INVALID_HANDLE                                                      Handle        = 0x80280401\n\tTPM_E_DUPLICATE_VHANDLE                                                   Handle        = 0x80280402\n\tTPM_E_EMBEDDED_COMMAND_BLOCKED                                            Handle        = 0x80280403\n\tTPM_E_EMBEDDED_COMMAND_UNSUPPORTED                                        Handle        = 0x80280404\n\tTPM_E_RETRY                                                               Handle        = 0x80280800\n\tTPM_E_NEEDS_SELFTEST                                                      Handle        = 0x80280801\n\tTPM_E_DOING_SELFTEST                                                      Handle        = 0x80280802\n\tTPM_E_DEFEND_LOCK_RUNNING                                                 Handle        = 0x80280803\n\tTPM_20_E_CONTEXT_GAP                                                      Handle        = 0x80280901\n\tTPM_20_E_OBJECT_MEMORY                                                    Handle        = 0x80280902\n\tTPM_20_E_SESSION_MEMORY                                                   Handle        = 0x80280903\n\tTPM_20_E_MEMORY                                                           Handle        = 0x80280904\n\tTPM_20_E_SESSION_HANDLES                                                  Handle        = 0x80280905\n\tTPM_20_E_OBJECT_HANDLES                                                   Handle        = 0x80280906\n\tTPM_20_E_LOCALITY                                                         Handle        = 0x80280907\n\tTPM_20_E_YIELDED                                                          Handle        = 0x80280908\n\tTPM_20_E_CANCELED                                                         Handle        = 0x80280909\n\tTPM_20_E_TESTING                                                          Handle        = 0x8028090A\n\tTPM_20_E_NV_RATE                                                          Handle        = 0x80280920\n\tTPM_20_E_LOCKOUT                                                          Handle        = 0x80280921\n\tTPM_20_E_RETRY                                                            Handle        = 0x80280922\n\tTPM_20_E_NV_UNAVAILABLE                                                   Handle        = 0x80280923\n\tTBS_E_INTERNAL_ERROR                                                      Handle        = 0x80284001\n\tTBS_E_BAD_PARAMETER                                                       Handle        = 0x80284002\n\tTBS_E_INVALID_OUTPUT_POINTER                                              Handle        = 0x80284003\n\tTBS_E_INVALID_CONTEXT                                                     Handle        = 0x80284004\n\tTBS_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80284005\n\tTBS_E_IOERROR                                                             Handle        = 0x80284006\n\tTBS_E_INVALID_CONTEXT_PARAM                                               Handle        = 0x80284007\n\tTBS_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x80284008\n\tTBS_E_TOO_MANY_TBS_CONTEXTS                                               Handle        = 0x80284009\n\tTBS_E_TOO_MANY_RESOURCES                                                  Handle        = 0x8028400A\n\tTBS_E_SERVICE_START_PENDING                                               Handle        = 0x8028400B\n\tTBS_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x8028400C\n\tTBS_E_COMMAND_CANCELED                                                    Handle        = 0x8028400D\n\tTBS_E_BUFFER_TOO_LARGE                                                    Handle        = 0x8028400E\n\tTBS_E_TPM_NOT_FOUND                                                       Handle        = 0x8028400F\n\tTBS_E_SERVICE_DISABLED                                                    Handle        = 0x80284010\n\tTBS_E_NO_EVENT_LOG                                                        Handle        = 0x80284011\n\tTBS_E_ACCESS_DENIED                                                       Handle        = 0x80284012\n\tTBS_E_PROVISIONING_NOT_ALLOWED                                            Handle        = 0x80284013\n\tTBS_E_PPI_FUNCTION_UNSUPPORTED                                            Handle        = 0x80284014\n\tTBS_E_OWNERAUTH_NOT_FOUND                                                 Handle        = 0x80284015\n\tTBS_E_PROVISIONING_INCOMPLETE                                             Handle        = 0x80284016\n\tTPMAPI_E_INVALID_STATE                                                    Handle        = 0x80290100\n\tTPMAPI_E_NOT_ENOUGH_DATA                                                  Handle        = 0x80290101\n\tTPMAPI_E_TOO_MUCH_DATA                                                    Handle        = 0x80290102\n\tTPMAPI_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290103\n\tTPMAPI_E_INVALID_PARAMETER                                                Handle        = 0x80290104\n\tTPMAPI_E_OUT_OF_MEMORY                                                    Handle        = 0x80290105\n\tTPMAPI_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290106\n\tTPMAPI_E_INTERNAL_ERROR                                                   Handle        = 0x80290107\n\tTPMAPI_E_ACCESS_DENIED                                                    Handle        = 0x80290108\n\tTPMAPI_E_AUTHORIZATION_FAILED                                             Handle        = 0x80290109\n\tTPMAPI_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x8029010A\n\tTPMAPI_E_TBS_COMMUNICATION_ERROR                                          Handle        = 0x8029010B\n\tTPMAPI_E_TPM_COMMAND_ERROR                                                Handle        = 0x8029010C\n\tTPMAPI_E_MESSAGE_TOO_LARGE                                                Handle        = 0x8029010D\n\tTPMAPI_E_INVALID_ENCODING                                                 Handle        = 0x8029010E\n\tTPMAPI_E_INVALID_KEY_SIZE                                                 Handle        = 0x8029010F\n\tTPMAPI_E_ENCRYPTION_FAILED                                                Handle        = 0x80290110\n\tTPMAPI_E_INVALID_KEY_PARAMS                                               Handle        = 0x80290111\n\tTPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB                             Handle        = 0x80290112\n\tTPMAPI_E_INVALID_PCR_INDEX                                                Handle        = 0x80290113\n\tTPMAPI_E_INVALID_DELEGATE_BLOB                                            Handle        = 0x80290114\n\tTPMAPI_E_INVALID_CONTEXT_PARAMS                                           Handle        = 0x80290115\n\tTPMAPI_E_INVALID_KEY_BLOB                                                 Handle        = 0x80290116\n\tTPMAPI_E_INVALID_PCR_DATA                                                 Handle        = 0x80290117\n\tTPMAPI_E_INVALID_OWNER_AUTH                                               Handle        = 0x80290118\n\tTPMAPI_E_FIPS_RNG_CHECK_FAILED                                            Handle        = 0x80290119\n\tTPMAPI_E_EMPTY_TCG_LOG                                                    Handle        = 0x8029011A\n\tTPMAPI_E_INVALID_TCG_LOG_ENTRY                                            Handle        = 0x8029011B\n\tTPMAPI_E_TCG_SEPARATOR_ABSENT                                             Handle        = 0x8029011C\n\tTPMAPI_E_TCG_INVALID_DIGEST_ENTRY                                         Handle        = 0x8029011D\n\tTPMAPI_E_POLICY_DENIES_OPERATION                                          Handle        = 0x8029011E\n\tTPMAPI_E_NV_BITS_NOT_DEFINED                                              Handle        = 0x8029011F\n\tTPMAPI_E_NV_BITS_NOT_READY                                                Handle        = 0x80290120\n\tTPMAPI_E_SEALING_KEY_NOT_AVAILABLE                                        Handle        = 0x80290121\n\tTPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND                                     Handle        = 0x80290122\n\tTPMAPI_E_SVN_COUNTER_NOT_AVAILABLE                                        Handle        = 0x80290123\n\tTPMAPI_E_OWNER_AUTH_NOT_NULL                                              Handle        = 0x80290124\n\tTPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL                                        Handle        = 0x80290125\n\tTPMAPI_E_AUTHORIZATION_REVOKED                                            Handle        = 0x80290126\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_KEY                                      Handle        = 0x80290127\n\tTPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED                                    Handle        = 0x80290128\n\tTPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE                                  Handle        = 0x80290129\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_POLICY                                   Handle        = 0x8029012A\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_OTHER                                    Handle        = 0x8029012B\n\tTPMAPI_E_SEALING_KEY_CHANGED                                              Handle        = 0x8029012C\n\tTBSIMP_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290200\n\tTBSIMP_E_CLEANUP_FAILED                                                   Handle        = 0x80290201\n\tTBSIMP_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x80290202\n\tTBSIMP_E_INVALID_CONTEXT_PARAM                                            Handle        = 0x80290203\n\tTBSIMP_E_TPM_ERROR                                                        Handle        = 0x80290204\n\tTBSIMP_E_HASH_BAD_KEY                                                     Handle        = 0x80290205\n\tTBSIMP_E_DUPLICATE_VHANDLE                                                Handle        = 0x80290206\n\tTBSIMP_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290207\n\tTBSIMP_E_INVALID_PARAMETER                                                Handle        = 0x80290208\n\tTBSIMP_E_RPC_INIT_FAILED                                                  Handle        = 0x80290209\n\tTBSIMP_E_SCHEDULER_NOT_RUNNING                                            Handle        = 0x8029020A\n\tTBSIMP_E_COMMAND_CANCELED                                                 Handle        = 0x8029020B\n\tTBSIMP_E_OUT_OF_MEMORY                                                    Handle        = 0x8029020C\n\tTBSIMP_E_LIST_NO_MORE_ITEMS                                               Handle        = 0x8029020D\n\tTBSIMP_E_LIST_NOT_FOUND                                                   Handle        = 0x8029020E\n\tTBSIMP_E_NOT_ENOUGH_SPACE                                                 Handle        = 0x8029020F\n\tTBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS                                          Handle        = 0x80290210\n\tTBSIMP_E_COMMAND_FAILED                                                   Handle        = 0x80290211\n\tTBSIMP_E_UNKNOWN_ORDINAL                                                  Handle        = 0x80290212\n\tTBSIMP_E_RESOURCE_EXPIRED                                                 Handle        = 0x80290213\n\tTBSIMP_E_INVALID_RESOURCE                                                 Handle        = 0x80290214\n\tTBSIMP_E_NOTHING_TO_UNLOAD                                                Handle        = 0x80290215\n\tTBSIMP_E_HASH_TABLE_FULL                                                  Handle        = 0x80290216\n\tTBSIMP_E_TOO_MANY_TBS_CONTEXTS                                            Handle        = 0x80290217\n\tTBSIMP_E_TOO_MANY_RESOURCES                                               Handle        = 0x80290218\n\tTBSIMP_E_PPI_NOT_SUPPORTED                                                Handle        = 0x80290219\n\tTBSIMP_E_TPM_INCOMPATIBLE                                                 Handle        = 0x8029021A\n\tTBSIMP_E_NO_EVENT_LOG                                                     Handle        = 0x8029021B\n\tTPM_E_PPI_ACPI_FAILURE                                                    Handle        = 0x80290300\n\tTPM_E_PPI_USER_ABORT                                                      Handle        = 0x80290301\n\tTPM_E_PPI_BIOS_FAILURE                                                    Handle        = 0x80290302\n\tTPM_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x80290303\n\tTPM_E_PPI_BLOCKED_IN_BIOS                                                 Handle        = 0x80290304\n\tTPM_E_PCP_ERROR_MASK                                                      Handle        = 0x80290400\n\tTPM_E_PCP_DEVICE_NOT_READY                                                Handle        = 0x80290401\n\tTPM_E_PCP_INVALID_HANDLE                                                  Handle        = 0x80290402\n\tTPM_E_PCP_INVALID_PARAMETER                                               Handle        = 0x80290403\n\tTPM_E_PCP_FLAG_NOT_SUPPORTED                                              Handle        = 0x80290404\n\tTPM_E_PCP_NOT_SUPPORTED                                                   Handle        = 0x80290405\n\tTPM_E_PCP_BUFFER_TOO_SMALL                                                Handle        = 0x80290406\n\tTPM_E_PCP_INTERNAL_ERROR                                                  Handle        = 0x80290407\n\tTPM_E_PCP_AUTHENTICATION_FAILED                                           Handle        = 0x80290408\n\tTPM_E_PCP_AUTHENTICATION_IGNORED                                          Handle        = 0x80290409\n\tTPM_E_PCP_POLICY_NOT_FOUND                                                Handle        = 0x8029040A\n\tTPM_E_PCP_PROFILE_NOT_FOUND                                               Handle        = 0x8029040B\n\tTPM_E_PCP_VALIDATION_FAILED                                               Handle        = 0x8029040C\n\tTPM_E_PCP_WRONG_PARENT                                                    Handle        = 0x8029040E\n\tTPM_E_KEY_NOT_LOADED                                                      Handle        = 0x8029040F\n\tTPM_E_NO_KEY_CERTIFICATION                                                Handle        = 0x80290410\n\tTPM_E_KEY_NOT_FINALIZED                                                   Handle        = 0x80290411\n\tTPM_E_ATTESTATION_CHALLENGE_NOT_SET                                       Handle        = 0x80290412\n\tTPM_E_NOT_PCR_BOUND                                                       Handle        = 0x80290413\n\tTPM_E_KEY_ALREADY_FINALIZED                                               Handle        = 0x80290414\n\tTPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED                                      Handle        = 0x80290415\n\tTPM_E_KEY_USAGE_POLICY_INVALID                                            Handle        = 0x80290416\n\tTPM_E_SOFT_KEY_ERROR                                                      Handle        = 0x80290417\n\tTPM_E_KEY_NOT_AUTHENTICATED                                               Handle        = 0x80290418\n\tTPM_E_PCP_KEY_NOT_AIK                                                     Handle        = 0x80290419\n\tTPM_E_KEY_NOT_SIGNING_KEY                                                 Handle        = 0x8029041A\n\tTPM_E_LOCKED_OUT                                                          Handle        = 0x8029041B\n\tTPM_E_CLAIM_TYPE_NOT_SUPPORTED                                            Handle        = 0x8029041C\n\tTPM_E_VERSION_NOT_SUPPORTED                                               Handle        = 0x8029041D\n\tTPM_E_BUFFER_LENGTH_MISMATCH                                              Handle        = 0x8029041E\n\tTPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                    Handle        = 0x8029041F\n\tTPM_E_PCP_TICKET_MISSING                                                  Handle        = 0x80290420\n\tTPM_E_PCP_RAW_POLICY_NOT_SUPPORTED                                        Handle        = 0x80290421\n\tTPM_E_PCP_KEY_HANDLE_INVALIDATED                                          Handle        = 0x80290422\n\tTPM_E_PCP_UNSUPPORTED_PSS_SALT                                            Handle        = 0x40290423\n\tTPM_E_ZERO_EXHAUST_ENABLED                                                Handle        = 0x80290500\n\tPLA_E_DCS_NOT_FOUND                                                       Handle        = 0x80300002\n\tPLA_E_DCS_IN_USE                                                          Handle        = 0x803000AA\n\tPLA_E_TOO_MANY_FOLDERS                                                    Handle        = 0x80300045\n\tPLA_E_NO_MIN_DISK                                                         Handle        = 0x80300070\n\tPLA_E_DCS_ALREADY_EXISTS                                                  Handle        = 0x803000B7\n\tPLA_S_PROPERTY_IGNORED                                                    Handle        = 0x00300100\n\tPLA_E_PROPERTY_CONFLICT                                                   Handle        = 0x80300101\n\tPLA_E_DCS_SINGLETON_REQUIRED                                              Handle        = 0x80300102\n\tPLA_E_CREDENTIALS_REQUIRED                                                Handle        = 0x80300103\n\tPLA_E_DCS_NOT_RUNNING                                                     Handle        = 0x80300104\n\tPLA_E_CONFLICT_INCL_EXCL_API                                              Handle        = 0x80300105\n\tPLA_E_NETWORK_EXE_NOT_VALID                                               Handle        = 0x80300106\n\tPLA_E_EXE_ALREADY_CONFIGURED                                              Handle        = 0x80300107\n\tPLA_E_EXE_PATH_NOT_VALID                                                  Handle        = 0x80300108\n\tPLA_E_DC_ALREADY_EXISTS                                                   Handle        = 0x80300109\n\tPLA_E_DCS_START_WAIT_TIMEOUT                                              Handle        = 0x8030010A\n\tPLA_E_DC_START_WAIT_TIMEOUT                                               Handle        = 0x8030010B\n\tPLA_E_REPORT_WAIT_TIMEOUT                                                 Handle        = 0x8030010C\n\tPLA_E_NO_DUPLICATES                                                       Handle        = 0x8030010D\n\tPLA_E_EXE_FULL_PATH_REQUIRED                                              Handle        = 0x8030010E\n\tPLA_E_INVALID_SESSION_NAME                                                Handle        = 0x8030010F\n\tPLA_E_PLA_CHANNEL_NOT_ENABLED                                             Handle        = 0x80300110\n\tPLA_E_TASKSCHED_CHANNEL_NOT_ENABLED                                       Handle        = 0x80300111\n\tPLA_E_RULES_MANAGER_FAILED                                                Handle        = 0x80300112\n\tPLA_E_CABAPI_FAILURE                                                      Handle        = 0x80300113\n\tFVE_E_LOCKED_VOLUME                                                       Handle        = 0x80310000\n\tFVE_E_NOT_ENCRYPTED                                                       Handle        = 0x80310001\n\tFVE_E_NO_TPM_BIOS                                                         Handle        = 0x80310002\n\tFVE_E_NO_MBR_METRIC                                                       Handle        = 0x80310003\n\tFVE_E_NO_BOOTSECTOR_METRIC                                                Handle        = 0x80310004\n\tFVE_E_NO_BOOTMGR_METRIC                                                   Handle        = 0x80310005\n\tFVE_E_WRONG_BOOTMGR                                                       Handle        = 0x80310006\n\tFVE_E_SECURE_KEY_REQUIRED                                                 Handle        = 0x80310007\n\tFVE_E_NOT_ACTIVATED                                                       Handle        = 0x80310008\n\tFVE_E_ACTION_NOT_ALLOWED                                                  Handle        = 0x80310009\n\tFVE_E_AD_SCHEMA_NOT_INSTALLED                                             Handle        = 0x8031000A\n\tFVE_E_AD_INVALID_DATATYPE                                                 Handle        = 0x8031000B\n\tFVE_E_AD_INVALID_DATASIZE                                                 Handle        = 0x8031000C\n\tFVE_E_AD_NO_VALUES                                                        Handle        = 0x8031000D\n\tFVE_E_AD_ATTR_NOT_SET                                                     Handle        = 0x8031000E\n\tFVE_E_AD_GUID_NOT_FOUND                                                   Handle        = 0x8031000F\n\tFVE_E_BAD_INFORMATION                                                     Handle        = 0x80310010\n\tFVE_E_TOO_SMALL                                                           Handle        = 0x80310011\n\tFVE_E_SYSTEM_VOLUME                                                       Handle        = 0x80310012\n\tFVE_E_FAILED_WRONG_FS                                                     Handle        = 0x80310013\n\tFVE_E_BAD_PARTITION_SIZE                                                  Handle        = 0x80310014\n\tFVE_E_NOT_SUPPORTED                                                       Handle        = 0x80310015\n\tFVE_E_BAD_DATA                                                            Handle        = 0x80310016\n\tFVE_E_VOLUME_NOT_BOUND                                                    Handle        = 0x80310017\n\tFVE_E_TPM_NOT_OWNED                                                       Handle        = 0x80310018\n\tFVE_E_NOT_DATA_VOLUME                                                     Handle        = 0x80310019\n\tFVE_E_AD_INSUFFICIENT_BUFFER                                              Handle        = 0x8031001A\n\tFVE_E_CONV_READ                                                           Handle        = 0x8031001B\n\tFVE_E_CONV_WRITE                                                          Handle        = 0x8031001C\n\tFVE_E_KEY_REQUIRED                                                        Handle        = 0x8031001D\n\tFVE_E_CLUSTERING_NOT_SUPPORTED                                            Handle        = 0x8031001E\n\tFVE_E_VOLUME_BOUND_ALREADY                                                Handle        = 0x8031001F\n\tFVE_E_OS_NOT_PROTECTED                                                    Handle        = 0x80310020\n\tFVE_E_PROTECTION_DISABLED                                                 Handle        = 0x80310021\n\tFVE_E_RECOVERY_KEY_REQUIRED                                               Handle        = 0x80310022\n\tFVE_E_FOREIGN_VOLUME                                                      Handle        = 0x80310023\n\tFVE_E_OVERLAPPED_UPDATE                                                   Handle        = 0x80310024\n\tFVE_E_TPM_SRK_AUTH_NOT_ZERO                                               Handle        = 0x80310025\n\tFVE_E_FAILED_SECTOR_SIZE                                                  Handle        = 0x80310026\n\tFVE_E_FAILED_AUTHENTICATION                                               Handle        = 0x80310027\n\tFVE_E_NOT_OS_VOLUME                                                       Handle        = 0x80310028\n\tFVE_E_AUTOUNLOCK_ENABLED                                                  Handle        = 0x80310029\n\tFVE_E_WRONG_BOOTSECTOR                                                    Handle        = 0x8031002A\n\tFVE_E_WRONG_SYSTEM_FS                                                     Handle        = 0x8031002B\n\tFVE_E_POLICY_PASSWORD_REQUIRED                                            Handle        = 0x8031002C\n\tFVE_E_CANNOT_SET_FVEK_ENCRYPTED                                           Handle        = 0x8031002D\n\tFVE_E_CANNOT_ENCRYPT_NO_KEY                                               Handle        = 0x8031002E\n\tFVE_E_BOOTABLE_CDDVD                                                      Handle        = 0x80310030\n\tFVE_E_PROTECTOR_EXISTS                                                    Handle        = 0x80310031\n\tFVE_E_RELATIVE_PATH                                                       Handle        = 0x80310032\n\tFVE_E_PROTECTOR_NOT_FOUND                                                 Handle        = 0x80310033\n\tFVE_E_INVALID_KEY_FORMAT                                                  Handle        = 0x80310034\n\tFVE_E_INVALID_PASSWORD_FORMAT                                             Handle        = 0x80310035\n\tFVE_E_FIPS_RNG_CHECK_FAILED                                               Handle        = 0x80310036\n\tFVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD                                     Handle        = 0x80310037\n\tFVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT                                   Handle        = 0x80310038\n\tFVE_E_NOT_DECRYPTED                                                       Handle        = 0x80310039\n\tFVE_E_INVALID_PROTECTOR_TYPE                                              Handle        = 0x8031003A\n\tFVE_E_NO_PROTECTORS_TO_TEST                                               Handle        = 0x8031003B\n\tFVE_E_KEYFILE_NOT_FOUND                                                   Handle        = 0x8031003C\n\tFVE_E_KEYFILE_INVALID                                                     Handle        = 0x8031003D\n\tFVE_E_KEYFILE_NO_VMK                                                      Handle        = 0x8031003E\n\tFVE_E_TPM_DISABLED                                                        Handle        = 0x8031003F\n\tFVE_E_NOT_ALLOWED_IN_SAFE_MODE                                            Handle        = 0x80310040\n\tFVE_E_TPM_INVALID_PCR                                                     Handle        = 0x80310041\n\tFVE_E_TPM_NO_VMK                                                          Handle        = 0x80310042\n\tFVE_E_PIN_INVALID                                                         Handle        = 0x80310043\n\tFVE_E_AUTH_INVALID_APPLICATION                                            Handle        = 0x80310044\n\tFVE_E_AUTH_INVALID_CONFIG                                                 Handle        = 0x80310045\n\tFVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED                                 Handle        = 0x80310046\n\tFVE_E_FS_NOT_EXTENDED                                                     Handle        = 0x80310047\n\tFVE_E_FIRMWARE_TYPE_NOT_SUPPORTED                                         Handle        = 0x80310048\n\tFVE_E_NO_LICENSE                                                          Handle        = 0x80310049\n\tFVE_E_NOT_ON_STACK                                                        Handle        = 0x8031004A\n\tFVE_E_FS_MOUNTED                                                          Handle        = 0x8031004B\n\tFVE_E_TOKEN_NOT_IMPERSONATED                                              Handle        = 0x8031004C\n\tFVE_E_DRY_RUN_FAILED                                                      Handle        = 0x8031004D\n\tFVE_E_REBOOT_REQUIRED                                                     Handle        = 0x8031004E\n\tFVE_E_DEBUGGER_ENABLED                                                    Handle        = 0x8031004F\n\tFVE_E_RAW_ACCESS                                                          Handle        = 0x80310050\n\tFVE_E_RAW_BLOCKED                                                         Handle        = 0x80310051\n\tFVE_E_BCD_APPLICATIONS_PATH_INCORRECT                                     Handle        = 0x80310052\n\tFVE_E_NOT_ALLOWED_IN_VERSION                                              Handle        = 0x80310053\n\tFVE_E_NO_AUTOUNLOCK_MASTER_KEY                                            Handle        = 0x80310054\n\tFVE_E_MOR_FAILED                                                          Handle        = 0x80310055\n\tFVE_E_HIDDEN_VOLUME                                                       Handle        = 0x80310056\n\tFVE_E_TRANSIENT_STATE                                                     Handle        = 0x80310057\n\tFVE_E_PUBKEY_NOT_ALLOWED                                                  Handle        = 0x80310058\n\tFVE_E_VOLUME_HANDLE_OPEN                                                  Handle        = 0x80310059\n\tFVE_E_NO_FEATURE_LICENSE                                                  Handle        = 0x8031005A\n\tFVE_E_INVALID_STARTUP_OPTIONS                                             Handle        = 0x8031005B\n\tFVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED                                Handle        = 0x8031005C\n\tFVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED                                   Handle        = 0x8031005D\n\tFVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED                                     Handle        = 0x8031005E\n\tFVE_E_POLICY_RECOVERY_KEY_REQUIRED                                        Handle        = 0x8031005F\n\tFVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED                                      Handle        = 0x80310060\n\tFVE_E_POLICY_STARTUP_PIN_REQUIRED                                         Handle        = 0x80310061\n\tFVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED                                      Handle        = 0x80310062\n\tFVE_E_POLICY_STARTUP_KEY_REQUIRED                                         Handle        = 0x80310063\n\tFVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED                                  Handle        = 0x80310064\n\tFVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED                                     Handle        = 0x80310065\n\tFVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED                                      Handle        = 0x80310066\n\tFVE_E_POLICY_STARTUP_TPM_REQUIRED                                         Handle        = 0x80310067\n\tFVE_E_POLICY_INVALID_PIN_LENGTH                                           Handle        = 0x80310068\n\tFVE_E_KEY_PROTECTOR_NOT_SUPPORTED                                         Handle        = 0x80310069\n\tFVE_E_POLICY_PASSPHRASE_NOT_ALLOWED                                       Handle        = 0x8031006A\n\tFVE_E_POLICY_PASSPHRASE_REQUIRED                                          Handle        = 0x8031006B\n\tFVE_E_FIPS_PREVENTS_PASSPHRASE                                            Handle        = 0x8031006C\n\tFVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED                                    Handle        = 0x8031006D\n\tFVE_E_INVALID_BITLOCKER_OID                                               Handle        = 0x8031006E\n\tFVE_E_VOLUME_TOO_SMALL                                                    Handle        = 0x8031006F\n\tFVE_E_DV_NOT_SUPPORTED_ON_FS                                              Handle        = 0x80310070\n\tFVE_E_DV_NOT_ALLOWED_BY_GP                                                Handle        = 0x80310071\n\tFVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED                                 Handle        = 0x80310072\n\tFVE_E_POLICY_USER_CERTIFICATE_REQUIRED                                    Handle        = 0x80310073\n\tFVE_E_POLICY_USER_CERT_MUST_BE_HW                                         Handle        = 0x80310074\n\tFVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310075\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310076\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED                               Handle        = 0x80310077\n\tFVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED                                  Handle        = 0x80310078\n\tFVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                                 Handle        = 0x80310079\n\tFVE_E_POLICY_INVALID_PASSPHRASE_LENGTH                                    Handle        = 0x80310080\n\tFVE_E_POLICY_PASSPHRASE_TOO_SIMPLE                                        Handle        = 0x80310081\n\tFVE_E_RECOVERY_PARTITION                                                  Handle        = 0x80310082\n\tFVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON                                   Handle        = 0x80310083\n\tFVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON                                   Handle        = 0x80310084\n\tFVE_E_NON_BITLOCKER_OID                                                   Handle        = 0x80310085\n\tFVE_E_POLICY_PROHIBITS_SELFSIGNED                                         Handle        = 0x80310086\n\tFVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED                         Handle        = 0x80310087\n\tFVE_E_CONV_RECOVERY_FAILED                                                Handle        = 0x80310088\n\tFVE_E_VIRTUALIZED_SPACE_TOO_BIG                                           Handle        = 0x80310089\n\tFVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON                                   Handle        = 0x80310090\n\tFVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON                                   Handle        = 0x80310091\n\tFVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON                                   Handle        = 0x80310092\n\tFVE_E_NON_BITLOCKER_KU                                                    Handle        = 0x80310093\n\tFVE_E_PRIVATEKEY_AUTH_FAILED                                              Handle        = 0x80310094\n\tFVE_E_REMOVAL_OF_DRA_FAILED                                               Handle        = 0x80310095\n\tFVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME                             Handle        = 0x80310096\n\tFVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME                                 Handle        = 0x80310097\n\tFVE_E_FIPS_HASH_KDF_NOT_ALLOWED                                           Handle        = 0x80310098\n\tFVE_E_ENH_PIN_INVALID                                                     Handle        = 0x80310099\n\tFVE_E_INVALID_PIN_CHARS                                                   Handle        = 0x8031009A\n\tFVE_E_INVALID_DATUM_TYPE                                                  Handle        = 0x8031009B\n\tFVE_E_EFI_ONLY                                                            Handle        = 0x8031009C\n\tFVE_E_MULTIPLE_NKP_CERTS                                                  Handle        = 0x8031009D\n\tFVE_E_REMOVAL_OF_NKP_FAILED                                               Handle        = 0x8031009E\n\tFVE_E_INVALID_NKP_CERT                                                    Handle        = 0x8031009F\n\tFVE_E_NO_EXISTING_PIN                                                     Handle        = 0x803100A0\n\tFVE_E_PROTECTOR_CHANGE_PIN_MISMATCH                                       Handle        = 0x803100A1\n\tFVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                         Handle        = 0x803100A2\n\tFVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED                    Handle        = 0x803100A3\n\tFVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII                                    Handle        = 0x803100A4\n\tFVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                           Handle        = 0x803100A5\n\tFVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                      Handle        = 0x803100A6\n\tFVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE                                  Handle        = 0x803100A7\n\tFVE_E_NO_EXISTING_PASSPHRASE                                              Handle        = 0x803100A8\n\tFVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH                                Handle        = 0x803100A9\n\tFVE_E_PASSPHRASE_TOO_LONG                                                 Handle        = 0x803100AA\n\tFVE_E_NO_PASSPHRASE_WITH_TPM                                              Handle        = 0x803100AB\n\tFVE_E_NO_TPM_WITH_PASSPHRASE                                              Handle        = 0x803100AC\n\tFVE_E_NOT_ALLOWED_ON_CSV_STACK                                            Handle        = 0x803100AD\n\tFVE_E_NOT_ALLOWED_ON_CLUSTER                                              Handle        = 0x803100AE\n\tFVE_E_EDRIVE_NO_FAILOVER_TO_SW                                            Handle        = 0x803100AF\n\tFVE_E_EDRIVE_BAND_IN_USE                                                  Handle        = 0x803100B0\n\tFVE_E_EDRIVE_DISALLOWED_BY_GP                                             Handle        = 0x803100B1\n\tFVE_E_EDRIVE_INCOMPATIBLE_VOLUME                                          Handle        = 0x803100B2\n\tFVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                             Handle        = 0x803100B3\n\tFVE_E_EDRIVE_DV_NOT_SUPPORTED                                             Handle        = 0x803100B4\n\tFVE_E_NO_PREBOOT_KEYBOARD_DETECTED                                        Handle        = 0x803100B5\n\tFVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED                               Handle        = 0x803100B6\n\tFVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE                         Handle        = 0x803100B7\n\tFVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE                   Handle        = 0x803100B8\n\tFVE_E_WIPE_CANCEL_NOT_APPLICABLE                                          Handle        = 0x803100B9\n\tFVE_E_SECUREBOOT_DISABLED                                                 Handle        = 0x803100BA\n\tFVE_E_SECUREBOOT_CONFIGURATION_INVALID                                    Handle        = 0x803100BB\n\tFVE_E_EDRIVE_DRY_RUN_FAILED                                               Handle        = 0x803100BC\n\tFVE_E_SHADOW_COPY_PRESENT                                                 Handle        = 0x803100BD\n\tFVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS                                Handle        = 0x803100BE\n\tFVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE                                        Handle        = 0x803100BF\n\tFVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED             Handle        = 0x803100C0\n\tFVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                  Handle        = 0x803100C1\n\tFVE_E_LIVEID_ACCOUNT_SUSPENDED                                            Handle        = 0x803100C2\n\tFVE_E_LIVEID_ACCOUNT_BLOCKED                                              Handle        = 0x803100C3\n\tFVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x803100C4\n\tFVE_E_DE_FIXED_DATA_NOT_SUPPORTED                                         Handle        = 0x803100C5\n\tFVE_E_DE_HARDWARE_NOT_COMPLIANT                                           Handle        = 0x803100C6\n\tFVE_E_DE_WINRE_NOT_CONFIGURED                                             Handle        = 0x803100C7\n\tFVE_E_DE_PROTECTION_SUSPENDED                                             Handle        = 0x803100C8\n\tFVE_E_DE_OS_VOLUME_NOT_PROTECTED                                          Handle        = 0x803100C9\n\tFVE_E_DE_DEVICE_LOCKEDOUT                                                 Handle        = 0x803100CA\n\tFVE_E_DE_PROTECTION_NOT_YET_ENABLED                                       Handle        = 0x803100CB\n\tFVE_E_INVALID_PIN_CHARS_DETAILED                                          Handle        = 0x803100CC\n\tFVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE                                  Handle        = 0x803100CD\n\tFVE_E_DEVICELOCKOUT_COUNTER_MISMATCH                                      Handle        = 0x803100CE\n\tFVE_E_BUFFER_TOO_LARGE                                                    Handle        = 0x803100CF\n\tFVE_E_NO_SUCH_CAPABILITY_ON_TARGET                                        Handle        = 0x803100D0\n\tFVE_E_DE_PREVENTED_FOR_OS                                                 Handle        = 0x803100D1\n\tFVE_E_DE_VOLUME_OPTED_OUT                                                 Handle        = 0x803100D2\n\tFVE_E_DE_VOLUME_NOT_SUPPORTED                                             Handle        = 0x803100D3\n\tFVE_E_EOW_NOT_SUPPORTED_IN_VERSION                                        Handle        = 0x803100D4\n\tFVE_E_ADBACKUP_NOT_ENABLED                                                Handle        = 0x803100D5\n\tFVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                                  Handle        = 0x803100D6\n\tFVE_E_NOT_DE_VOLUME                                                       Handle        = 0x803100D7\n\tFVE_E_PROTECTION_CANNOT_BE_DISABLED                                       Handle        = 0x803100D8\n\tFVE_E_OSV_KSR_NOT_ALLOWED                                                 Handle        = 0x803100D9\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE                          Handle        = 0x803100DA\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE                       Handle        = 0x803100DB\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE                   Handle        = 0x803100DC\n\tFVE_E_KEY_ROTATION_NOT_SUPPORTED                                          Handle        = 0x803100DD\n\tFVE_E_EXECUTE_REQUEST_SENT_TOO_SOON                                       Handle        = 0x803100DE\n\tFVE_E_KEY_ROTATION_NOT_ENABLED                                            Handle        = 0x803100DF\n\tFVE_E_DEVICE_NOT_JOINED                                                   Handle        = 0x803100E0\n\tFWP_E_CALLOUT_NOT_FOUND                                                   Handle        = 0x80320001\n\tFWP_E_CONDITION_NOT_FOUND                                                 Handle        = 0x80320002\n\tFWP_E_FILTER_NOT_FOUND                                                    Handle        = 0x80320003\n\tFWP_E_LAYER_NOT_FOUND                                                     Handle        = 0x80320004\n\tFWP_E_PROVIDER_NOT_FOUND                                                  Handle        = 0x80320005\n\tFWP_E_PROVIDER_CONTEXT_NOT_FOUND                                          Handle        = 0x80320006\n\tFWP_E_SUBLAYER_NOT_FOUND                                                  Handle        = 0x80320007\n\tFWP_E_NOT_FOUND                                                           Handle        = 0x80320008\n\tFWP_E_ALREADY_EXISTS                                                      Handle        = 0x80320009\n\tFWP_E_IN_USE                                                              Handle        = 0x8032000A\n\tFWP_E_DYNAMIC_SESSION_IN_PROGRESS                                         Handle        = 0x8032000B\n\tFWP_E_WRONG_SESSION                                                       Handle        = 0x8032000C\n\tFWP_E_NO_TXN_IN_PROGRESS                                                  Handle        = 0x8032000D\n\tFWP_E_TXN_IN_PROGRESS                                                     Handle        = 0x8032000E\n\tFWP_E_TXN_ABORTED                                                         Handle        = 0x8032000F\n\tFWP_E_SESSION_ABORTED                                                     Handle        = 0x80320010\n\tFWP_E_INCOMPATIBLE_TXN                                                    Handle        = 0x80320011\n\tFWP_E_TIMEOUT                                                             Handle        = 0x80320012\n\tFWP_E_NET_EVENTS_DISABLED                                                 Handle        = 0x80320013\n\tFWP_E_INCOMPATIBLE_LAYER                                                  Handle        = 0x80320014\n\tFWP_E_KM_CLIENTS_ONLY                                                     Handle        = 0x80320015\n\tFWP_E_LIFETIME_MISMATCH                                                   Handle        = 0x80320016\n\tFWP_E_BUILTIN_OBJECT                                                      Handle        = 0x80320017\n\tFWP_E_TOO_MANY_CALLOUTS                                                   Handle        = 0x80320018\n\tFWP_E_NOTIFICATION_DROPPED                                                Handle        = 0x80320019\n\tFWP_E_TRAFFIC_MISMATCH                                                    Handle        = 0x8032001A\n\tFWP_E_INCOMPATIBLE_SA_STATE                                               Handle        = 0x8032001B\n\tFWP_E_NULL_POINTER                                                        Handle        = 0x8032001C\n\tFWP_E_INVALID_ENUMERATOR                                                  Handle        = 0x8032001D\n\tFWP_E_INVALID_FLAGS                                                       Handle        = 0x8032001E\n\tFWP_E_INVALID_NET_MASK                                                    Handle        = 0x8032001F\n\tFWP_E_INVALID_RANGE                                                       Handle        = 0x80320020\n\tFWP_E_INVALID_INTERVAL                                                    Handle        = 0x80320021\n\tFWP_E_ZERO_LENGTH_ARRAY                                                   Handle        = 0x80320022\n\tFWP_E_NULL_DISPLAY_NAME                                                   Handle        = 0x80320023\n\tFWP_E_INVALID_ACTION_TYPE                                                 Handle        = 0x80320024\n\tFWP_E_INVALID_WEIGHT                                                      Handle        = 0x80320025\n\tFWP_E_MATCH_TYPE_MISMATCH                                                 Handle        = 0x80320026\n\tFWP_E_TYPE_MISMATCH                                                       Handle        = 0x80320027\n\tFWP_E_OUT_OF_BOUNDS                                                       Handle        = 0x80320028\n\tFWP_E_RESERVED                                                            Handle        = 0x80320029\n\tFWP_E_DUPLICATE_CONDITION                                                 Handle        = 0x8032002A\n\tFWP_E_DUPLICATE_KEYMOD                                                    Handle        = 0x8032002B\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_LAYER                                      Handle        = 0x8032002C\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER                                   Handle        = 0x8032002D\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER                                     Handle        = 0x8032002E\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                                   Handle        = 0x8032002F\n\tFWP_E_INCOMPATIBLE_AUTH_METHOD                                            Handle        = 0x80320030\n\tFWP_E_INCOMPATIBLE_DH_GROUP                                               Handle        = 0x80320031\n\tFWP_E_EM_NOT_SUPPORTED                                                    Handle        = 0x80320032\n\tFWP_E_NEVER_MATCH                                                         Handle        = 0x80320033\n\tFWP_E_PROVIDER_CONTEXT_MISMATCH                                           Handle        = 0x80320034\n\tFWP_E_INVALID_PARAMETER                                                   Handle        = 0x80320035\n\tFWP_E_TOO_MANY_SUBLAYERS                                                  Handle        = 0x80320036\n\tFWP_E_CALLOUT_NOTIFICATION_FAILED                                         Handle        = 0x80320037\n\tFWP_E_INVALID_AUTH_TRANSFORM                                              Handle        = 0x80320038\n\tFWP_E_INVALID_CIPHER_TRANSFORM                                            Handle        = 0x80320039\n\tFWP_E_INCOMPATIBLE_CIPHER_TRANSFORM                                       Handle        = 0x8032003A\n\tFWP_E_INVALID_TRANSFORM_COMBINATION                                       Handle        = 0x8032003B\n\tFWP_E_DUPLICATE_AUTH_METHOD                                               Handle        = 0x8032003C\n\tFWP_E_INVALID_TUNNEL_ENDPOINT                                             Handle        = 0x8032003D\n\tFWP_E_L2_DRIVER_NOT_READY                                                 Handle        = 0x8032003E\n\tFWP_E_KEY_DICTATOR_ALREADY_REGISTERED                                     Handle        = 0x8032003F\n\tFWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL                               Handle        = 0x80320040\n\tFWP_E_CONNECTIONS_DISABLED                                                Handle        = 0x80320041\n\tFWP_E_INVALID_DNS_NAME                                                    Handle        = 0x80320042\n\tFWP_E_STILL_ON                                                            Handle        = 0x80320043\n\tFWP_E_IKEEXT_NOT_RUNNING                                                  Handle        = 0x80320044\n\tFWP_E_DROP_NOICMP                                                         Handle        = 0x80320104\n\tWS_S_ASYNC                                                                Handle        = 0x003D0000\n\tWS_S_END                                                                  Handle        = 0x003D0001\n\tWS_E_INVALID_FORMAT                                                       Handle        = 0x803D0000\n\tWS_E_OBJECT_FAULTED                                                       Handle        = 0x803D0001\n\tWS_E_NUMERIC_OVERFLOW                                                     Handle        = 0x803D0002\n\tWS_E_INVALID_OPERATION                                                    Handle        = 0x803D0003\n\tWS_E_OPERATION_ABORTED                                                    Handle        = 0x803D0004\n\tWS_E_ENDPOINT_ACCESS_DENIED                                               Handle        = 0x803D0005\n\tWS_E_OPERATION_TIMED_OUT                                                  Handle        = 0x803D0006\n\tWS_E_OPERATION_ABANDONED                                                  Handle        = 0x803D0007\n\tWS_E_QUOTA_EXCEEDED                                                       Handle        = 0x803D0008\n\tWS_E_NO_TRANSLATION_AVAILABLE                                             Handle        = 0x803D0009\n\tWS_E_SECURITY_VERIFICATION_FAILURE                                        Handle        = 0x803D000A\n\tWS_E_ADDRESS_IN_USE                                                       Handle        = 0x803D000B\n\tWS_E_ADDRESS_NOT_AVAILABLE                                                Handle        = 0x803D000C\n\tWS_E_ENDPOINT_NOT_FOUND                                                   Handle        = 0x803D000D\n\tWS_E_ENDPOINT_NOT_AVAILABLE                                               Handle        = 0x803D000E\n\tWS_E_ENDPOINT_FAILURE                                                     Handle        = 0x803D000F\n\tWS_E_ENDPOINT_UNREACHABLE                                                 Handle        = 0x803D0010\n\tWS_E_ENDPOINT_ACTION_NOT_SUPPORTED                                        Handle        = 0x803D0011\n\tWS_E_ENDPOINT_TOO_BUSY                                                    Handle        = 0x803D0012\n\tWS_E_ENDPOINT_FAULT_RECEIVED                                              Handle        = 0x803D0013\n\tWS_E_ENDPOINT_DISCONNECTED                                                Handle        = 0x803D0014\n\tWS_E_PROXY_FAILURE                                                        Handle        = 0x803D0015\n\tWS_E_PROXY_ACCESS_DENIED                                                  Handle        = 0x803D0016\n\tWS_E_NOT_SUPPORTED                                                        Handle        = 0x803D0017\n\tWS_E_PROXY_REQUIRES_BASIC_AUTH                                            Handle        = 0x803D0018\n\tWS_E_PROXY_REQUIRES_DIGEST_AUTH                                           Handle        = 0x803D0019\n\tWS_E_PROXY_REQUIRES_NTLM_AUTH                                             Handle        = 0x803D001A\n\tWS_E_PROXY_REQUIRES_NEGOTIATE_AUTH                                        Handle        = 0x803D001B\n\tWS_E_SERVER_REQUIRES_BASIC_AUTH                                           Handle        = 0x803D001C\n\tWS_E_SERVER_REQUIRES_DIGEST_AUTH                                          Handle        = 0x803D001D\n\tWS_E_SERVER_REQUIRES_NTLM_AUTH                                            Handle        = 0x803D001E\n\tWS_E_SERVER_REQUIRES_NEGOTIATE_AUTH                                       Handle        = 0x803D001F\n\tWS_E_INVALID_ENDPOINT_URL                                                 Handle        = 0x803D0020\n\tWS_E_OTHER                                                                Handle        = 0x803D0021\n\tWS_E_SECURITY_TOKEN_EXPIRED                                               Handle        = 0x803D0022\n\tWS_E_SECURITY_SYSTEM_FAILURE                                              Handle        = 0x803D0023\n\tERROR_NDIS_INTERFACE_CLOSING                                              syscall.Errno = 0x80340002\n\tERROR_NDIS_BAD_VERSION                                                    syscall.Errno = 0x80340004\n\tERROR_NDIS_BAD_CHARACTERISTICS                                            syscall.Errno = 0x80340005\n\tERROR_NDIS_ADAPTER_NOT_FOUND                                              syscall.Errno = 0x80340006\n\tERROR_NDIS_OPEN_FAILED                                                    syscall.Errno = 0x80340007\n\tERROR_NDIS_DEVICE_FAILED                                                  syscall.Errno = 0x80340008\n\tERROR_NDIS_MULTICAST_FULL                                                 syscall.Errno = 0x80340009\n\tERROR_NDIS_MULTICAST_EXISTS                                               syscall.Errno = 0x8034000A\n\tERROR_NDIS_MULTICAST_NOT_FOUND                                            syscall.Errno = 0x8034000B\n\tERROR_NDIS_REQUEST_ABORTED                                                syscall.Errno = 0x8034000C\n\tERROR_NDIS_RESET_IN_PROGRESS                                              syscall.Errno = 0x8034000D\n\tERROR_NDIS_NOT_SUPPORTED                                                  syscall.Errno = 0x803400BB\n\tERROR_NDIS_INVALID_PACKET                                                 syscall.Errno = 0x8034000F\n\tERROR_NDIS_ADAPTER_NOT_READY                                              syscall.Errno = 0x80340011\n\tERROR_NDIS_INVALID_LENGTH                                                 syscall.Errno = 0x80340014\n\tERROR_NDIS_INVALID_DATA                                                   syscall.Errno = 0x80340015\n\tERROR_NDIS_BUFFER_TOO_SHORT                                               syscall.Errno = 0x80340016\n\tERROR_NDIS_INVALID_OID                                                    syscall.Errno = 0x80340017\n\tERROR_NDIS_ADAPTER_REMOVED                                                syscall.Errno = 0x80340018\n\tERROR_NDIS_UNSUPPORTED_MEDIA                                              syscall.Errno = 0x80340019\n\tERROR_NDIS_GROUP_ADDRESS_IN_USE                                           syscall.Errno = 0x8034001A\n\tERROR_NDIS_FILE_NOT_FOUND                                                 syscall.Errno = 0x8034001B\n\tERROR_NDIS_ERROR_READING_FILE                                             syscall.Errno = 0x8034001C\n\tERROR_NDIS_ALREADY_MAPPED                                                 syscall.Errno = 0x8034001D\n\tERROR_NDIS_RESOURCE_CONFLICT                                              syscall.Errno = 0x8034001E\n\tERROR_NDIS_MEDIA_DISCONNECTED                                             syscall.Errno = 0x8034001F\n\tERROR_NDIS_INVALID_ADDRESS                                                syscall.Errno = 0x80340022\n\tERROR_NDIS_INVALID_DEVICE_REQUEST                                         syscall.Errno = 0x80340010\n\tERROR_NDIS_PAUSED                                                         syscall.Errno = 0x8034002A\n\tERROR_NDIS_INTERFACE_NOT_FOUND                                            syscall.Errno = 0x8034002B\n\tERROR_NDIS_UNSUPPORTED_REVISION                                           syscall.Errno = 0x8034002C\n\tERROR_NDIS_INVALID_PORT                                                   syscall.Errno = 0x8034002D\n\tERROR_NDIS_INVALID_PORT_STATE                                             syscall.Errno = 0x8034002E\n\tERROR_NDIS_LOW_POWER_STATE                                                syscall.Errno = 0x8034002F\n\tERROR_NDIS_REINIT_REQUIRED                                                syscall.Errno = 0x80340030\n\tERROR_NDIS_NO_QUEUES                                                      syscall.Errno = 0x80340031\n\tERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED                                      syscall.Errno = 0x80342000\n\tERROR_NDIS_DOT11_MEDIA_IN_USE                                             syscall.Errno = 0x80342001\n\tERROR_NDIS_DOT11_POWER_STATE_INVALID                                      syscall.Errno = 0x80342002\n\tERROR_NDIS_PM_WOL_PATTERN_LIST_FULL                                       syscall.Errno = 0x80342003\n\tERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                  syscall.Errno = 0x80342004\n\tERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                       syscall.Errno = 0x80342005\n\tERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                          syscall.Errno = 0x80342006\n\tERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                   syscall.Errno = 0x80342007\n\tERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                      syscall.Errno = 0x80342008\n\tERROR_NDIS_INDICATION_REQUIRED                                            syscall.Errno = 0x00340001\n\tERROR_NDIS_OFFLOAD_POLICY                                                 syscall.Errno = 0xC034100F\n\tERROR_NDIS_OFFLOAD_CONNECTION_REJECTED                                    syscall.Errno = 0xC0341012\n\tERROR_NDIS_OFFLOAD_PATH_REJECTED                                          syscall.Errno = 0xC0341013\n\tERROR_HV_INVALID_HYPERCALL_CODE                                           syscall.Errno = 0xC0350002\n\tERROR_HV_INVALID_HYPERCALL_INPUT                                          syscall.Errno = 0xC0350003\n\tERROR_HV_INVALID_ALIGNMENT                                                syscall.Errno = 0xC0350004\n\tERROR_HV_INVALID_PARAMETER                                                syscall.Errno = 0xC0350005\n\tERROR_HV_ACCESS_DENIED                                                    syscall.Errno = 0xC0350006\n\tERROR_HV_INVALID_PARTITION_STATE                                          syscall.Errno = 0xC0350007\n\tERROR_HV_OPERATION_DENIED                                                 syscall.Errno = 0xC0350008\n\tERROR_HV_UNKNOWN_PROPERTY                                                 syscall.Errno = 0xC0350009\n\tERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE                                      syscall.Errno = 0xC035000A\n\tERROR_HV_INSUFFICIENT_MEMORY                                              syscall.Errno = 0xC035000B\n\tERROR_HV_PARTITION_TOO_DEEP                                               syscall.Errno = 0xC035000C\n\tERROR_HV_INVALID_PARTITION_ID                                             syscall.Errno = 0xC035000D\n\tERROR_HV_INVALID_VP_INDEX                                                 syscall.Errno = 0xC035000E\n\tERROR_HV_INVALID_PORT_ID                                                  syscall.Errno = 0xC0350011\n\tERROR_HV_INVALID_CONNECTION_ID                                            syscall.Errno = 0xC0350012\n\tERROR_HV_INSUFFICIENT_BUFFERS                                             syscall.Errno = 0xC0350013\n\tERROR_HV_NOT_ACKNOWLEDGED                                                 syscall.Errno = 0xC0350014\n\tERROR_HV_INVALID_VP_STATE                                                 syscall.Errno = 0xC0350015\n\tERROR_HV_ACKNOWLEDGED                                                     syscall.Errno = 0xC0350016\n\tERROR_HV_INVALID_SAVE_RESTORE_STATE                                       syscall.Errno = 0xC0350017\n\tERROR_HV_INVALID_SYNIC_STATE                                              syscall.Errno = 0xC0350018\n\tERROR_HV_OBJECT_IN_USE                                                    syscall.Errno = 0xC0350019\n\tERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO                                    syscall.Errno = 0xC035001A\n\tERROR_HV_NO_DATA                                                          syscall.Errno = 0xC035001B\n\tERROR_HV_INACTIVE                                                         syscall.Errno = 0xC035001C\n\tERROR_HV_NO_RESOURCES                                                     syscall.Errno = 0xC035001D\n\tERROR_HV_FEATURE_UNAVAILABLE                                              syscall.Errno = 0xC035001E\n\tERROR_HV_INSUFFICIENT_BUFFER                                              syscall.Errno = 0xC0350033\n\tERROR_HV_INSUFFICIENT_DEVICE_DOMAINS                                      syscall.Errno = 0xC0350038\n\tERROR_HV_CPUID_FEATURE_VALIDATION                                         syscall.Errno = 0xC035003C\n\tERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION                                   syscall.Errno = 0xC035003D\n\tERROR_HV_PROCESSOR_STARTUP_TIMEOUT                                        syscall.Errno = 0xC035003E\n\tERROR_HV_SMX_ENABLED                                                      syscall.Errno = 0xC035003F\n\tERROR_HV_INVALID_LP_INDEX                                                 syscall.Errno = 0xC0350041\n\tERROR_HV_INVALID_REGISTER_VALUE                                           syscall.Errno = 0xC0350050\n\tERROR_HV_INVALID_VTL_STATE                                                syscall.Errno = 0xC0350051\n\tERROR_HV_NX_NOT_DETECTED                                                  syscall.Errno = 0xC0350055\n\tERROR_HV_INVALID_DEVICE_ID                                                syscall.Errno = 0xC0350057\n\tERROR_HV_INVALID_DEVICE_STATE                                             syscall.Errno = 0xC0350058\n\tERROR_HV_PENDING_PAGE_REQUESTS                                            syscall.Errno = 0x00350059\n\tERROR_HV_PAGE_REQUEST_INVALID                                             syscall.Errno = 0xC0350060\n\tERROR_HV_INVALID_CPU_GROUP_ID                                             syscall.Errno = 0xC035006F\n\tERROR_HV_INVALID_CPU_GROUP_STATE                                          syscall.Errno = 0xC0350070\n\tERROR_HV_OPERATION_FAILED                                                 syscall.Errno = 0xC0350071\n\tERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                              syscall.Errno = 0xC0350072\n\tERROR_HV_INSUFFICIENT_ROOT_MEMORY                                         syscall.Errno = 0xC0350073\n\tERROR_HV_NOT_PRESENT                                                      syscall.Errno = 0xC0351000\n\tERROR_VID_DUPLICATE_HANDLER                                               syscall.Errno = 0xC0370001\n\tERROR_VID_TOO_MANY_HANDLERS                                               syscall.Errno = 0xC0370002\n\tERROR_VID_QUEUE_FULL                                                      syscall.Errno = 0xC0370003\n\tERROR_VID_HANDLER_NOT_PRESENT                                             syscall.Errno = 0xC0370004\n\tERROR_VID_INVALID_OBJECT_NAME                                             syscall.Errno = 0xC0370005\n\tERROR_VID_PARTITION_NAME_TOO_LONG                                         syscall.Errno = 0xC0370006\n\tERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                     syscall.Errno = 0xC0370007\n\tERROR_VID_PARTITION_ALREADY_EXISTS                                        syscall.Errno = 0xC0370008\n\tERROR_VID_PARTITION_DOES_NOT_EXIST                                        syscall.Errno = 0xC0370009\n\tERROR_VID_PARTITION_NAME_NOT_FOUND                                        syscall.Errno = 0xC037000A\n\tERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                    syscall.Errno = 0xC037000B\n\tERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                    syscall.Errno = 0xC037000C\n\tERROR_VID_MB_STILL_REFERENCED                                             syscall.Errno = 0xC037000D\n\tERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                    syscall.Errno = 0xC037000E\n\tERROR_VID_INVALID_NUMA_SETTINGS                                           syscall.Errno = 0xC037000F\n\tERROR_VID_INVALID_NUMA_NODE_INDEX                                         syscall.Errno = 0xC0370010\n\tERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                           syscall.Errno = 0xC0370011\n\tERROR_VID_INVALID_MEMORY_BLOCK_HANDLE                                     syscall.Errno = 0xC0370012\n\tERROR_VID_PAGE_RANGE_OVERFLOW                                             syscall.Errno = 0xC0370013\n\tERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE                                    syscall.Errno = 0xC0370014\n\tERROR_VID_INVALID_GPA_RANGE_HANDLE                                        syscall.Errno = 0xC0370015\n\tERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                              syscall.Errno = 0xC0370016\n\tERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                                syscall.Errno = 0xC0370017\n\tERROR_VID_INVALID_PPM_HANDLE                                              syscall.Errno = 0xC0370018\n\tERROR_VID_MBPS_ARE_LOCKED                                                 syscall.Errno = 0xC0370019\n\tERROR_VID_MESSAGE_QUEUE_CLOSED                                            syscall.Errno = 0xC037001A\n\tERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                                syscall.Errno = 0xC037001B\n\tERROR_VID_STOP_PENDING                                                    syscall.Errno = 0xC037001C\n\tERROR_VID_INVALID_PROCESSOR_STATE                                         syscall.Errno = 0xC037001D\n\tERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                 syscall.Errno = 0xC037001E\n\tERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED                                syscall.Errno = 0xC037001F\n\tERROR_VID_MB_PROPERTY_ALREADY_SET_RESET                                   syscall.Errno = 0xC0370020\n\tERROR_VID_MMIO_RANGE_DESTROYED                                            syscall.Errno = 0xC0370021\n\tERROR_VID_INVALID_CHILD_GPA_PAGE_SET                                      syscall.Errno = 0xC0370022\n\tERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED                                  syscall.Errno = 0xC0370023\n\tERROR_VID_RESERVE_PAGE_SET_TOO_SMALL                                      syscall.Errno = 0xC0370024\n\tERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                          syscall.Errno = 0xC0370025\n\tERROR_VID_MBP_COUNT_EXCEEDED_LIMIT                                        syscall.Errno = 0xC0370026\n\tERROR_VID_SAVED_STATE_CORRUPT                                             syscall.Errno = 0xC0370027\n\tERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                   syscall.Errno = 0xC0370028\n\tERROR_VID_SAVED_STATE_INCOMPATIBLE                                        syscall.Errno = 0xC0370029\n\tERROR_VID_VTL_ACCESS_DENIED                                               syscall.Errno = 0xC037002A\n\tERROR_VMCOMPUTE_TERMINATED_DURING_START                                   syscall.Errno = 0xC0370100\n\tERROR_VMCOMPUTE_IMAGE_MISMATCH                                            syscall.Errno = 0xC0370101\n\tERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED                                      syscall.Errno = 0xC0370102\n\tERROR_VMCOMPUTE_OPERATION_PENDING                                         syscall.Errno = 0xC0370103\n\tERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS                                    syscall.Errno = 0xC0370104\n\tERROR_VMCOMPUTE_INVALID_STATE                                             syscall.Errno = 0xC0370105\n\tERROR_VMCOMPUTE_UNEXPECTED_EXIT                                           syscall.Errno = 0xC0370106\n\tERROR_VMCOMPUTE_TERMINATED                                                syscall.Errno = 0xC0370107\n\tERROR_VMCOMPUTE_CONNECT_FAILED                                            syscall.Errno = 0xC0370108\n\tERROR_VMCOMPUTE_TIMEOUT                                                   syscall.Errno = 0xC0370109\n\tERROR_VMCOMPUTE_CONNECTION_CLOSED                                         syscall.Errno = 0xC037010A\n\tERROR_VMCOMPUTE_UNKNOWN_MESSAGE                                           syscall.Errno = 0xC037010B\n\tERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION                              syscall.Errno = 0xC037010C\n\tERROR_VMCOMPUTE_INVALID_JSON                                              syscall.Errno = 0xC037010D\n\tERROR_VMCOMPUTE_SYSTEM_NOT_FOUND                                          syscall.Errno = 0xC037010E\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS                                     syscall.Errno = 0xC037010F\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED                                    syscall.Errno = 0xC0370110\n\tERROR_VMCOMPUTE_PROTOCOL_ERROR                                            syscall.Errno = 0xC0370111\n\tERROR_VMCOMPUTE_INVALID_LAYER                                             syscall.Errno = 0xC0370112\n\tERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED                                  syscall.Errno = 0xC0370113\n\tHCS_E_TERMINATED_DURING_START                                             Handle        = 0x80370100\n\tHCS_E_IMAGE_MISMATCH                                                      Handle        = 0x80370101\n\tHCS_E_HYPERV_NOT_INSTALLED                                                Handle        = 0x80370102\n\tHCS_E_INVALID_STATE                                                       Handle        = 0x80370105\n\tHCS_E_UNEXPECTED_EXIT                                                     Handle        = 0x80370106\n\tHCS_E_TERMINATED                                                          Handle        = 0x80370107\n\tHCS_E_CONNECT_FAILED                                                      Handle        = 0x80370108\n\tHCS_E_CONNECTION_TIMEOUT                                                  Handle        = 0x80370109\n\tHCS_E_CONNECTION_CLOSED                                                   Handle        = 0x8037010A\n\tHCS_E_UNKNOWN_MESSAGE                                                     Handle        = 0x8037010B\n\tHCS_E_UNSUPPORTED_PROTOCOL_VERSION                                        Handle        = 0x8037010C\n\tHCS_E_INVALID_JSON                                                        Handle        = 0x8037010D\n\tHCS_E_SYSTEM_NOT_FOUND                                                    Handle        = 0x8037010E\n\tHCS_E_SYSTEM_ALREADY_EXISTS                                               Handle        = 0x8037010F\n\tHCS_E_SYSTEM_ALREADY_STOPPED                                              Handle        = 0x80370110\n\tHCS_E_PROTOCOL_ERROR                                                      Handle        = 0x80370111\n\tHCS_E_INVALID_LAYER                                                       Handle        = 0x80370112\n\tHCS_E_WINDOWS_INSIDER_REQUIRED                                            Handle        = 0x80370113\n\tHCS_E_SERVICE_NOT_AVAILABLE                                               Handle        = 0x80370114\n\tHCS_E_OPERATION_NOT_STARTED                                               Handle        = 0x80370115\n\tHCS_E_OPERATION_ALREADY_STARTED                                           Handle        = 0x80370116\n\tHCS_E_OPERATION_PENDING                                                   Handle        = 0x80370117\n\tHCS_E_OPERATION_TIMEOUT                                                   Handle        = 0x80370118\n\tHCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET                               Handle        = 0x80370119\n\tHCS_E_OPERATION_RESULT_ALLOCATION_FAILED                                  Handle        = 0x8037011A\n\tHCS_E_ACCESS_DENIED                                                       Handle        = 0x8037011B\n\tHCS_E_GUEST_CRITICAL_ERROR                                                Handle        = 0x8037011C\n\tERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND                                  syscall.Errno = 0xC0370200\n\tERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                               syscall.Errno = 0x80370001\n\tWHV_E_UNKNOWN_CAPABILITY                                                  Handle        = 0x80370300\n\tWHV_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80370301\n\tWHV_E_UNKNOWN_PROPERTY                                                    Handle        = 0x80370302\n\tWHV_E_UNSUPPORTED_HYPERVISOR_CONFIG                                       Handle        = 0x80370303\n\tWHV_E_INVALID_PARTITION_CONFIG                                            Handle        = 0x80370304\n\tWHV_E_GPA_RANGE_NOT_FOUND                                                 Handle        = 0x80370305\n\tWHV_E_VP_ALREADY_EXISTS                                                   Handle        = 0x80370306\n\tWHV_E_VP_DOES_NOT_EXIST                                                   Handle        = 0x80370307\n\tWHV_E_INVALID_VP_STATE                                                    Handle        = 0x80370308\n\tWHV_E_INVALID_VP_REGISTER_NAME                                            Handle        = 0x80370309\n\tERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND                                     syscall.Errno = 0xC0370400\n\tERROR_VSMB_SAVED_STATE_CORRUPT                                            syscall.Errno = 0xC0370401\n\tERROR_VOLMGR_INCOMPLETE_REGENERATION                                      syscall.Errno = 0x80380001\n\tERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION                                    syscall.Errno = 0x80380002\n\tERROR_VOLMGR_DATABASE_FULL                                                syscall.Errno = 0xC0380001\n\tERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                 syscall.Errno = 0xC0380002\n\tERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                               syscall.Errno = 0xC0380003\n\tERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                    syscall.Errno = 0xC0380004\n\tERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                              syscall.Errno = 0xC0380005\n\tERROR_VOLMGR_DISK_DUPLICATE                                               syscall.Errno = 0xC0380006\n\tERROR_VOLMGR_DISK_DYNAMIC                                                 syscall.Errno = 0xC0380007\n\tERROR_VOLMGR_DISK_ID_INVALID                                              syscall.Errno = 0xC0380008\n\tERROR_VOLMGR_DISK_INVALID                                                 syscall.Errno = 0xC0380009\n\tERROR_VOLMGR_DISK_LAST_VOTER                                              syscall.Errno = 0xC038000A\n\tERROR_VOLMGR_DISK_LAYOUT_INVALID                                          syscall.Errno = 0xC038000B\n\tERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS               syscall.Errno = 0xC038000C\n\tERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                             syscall.Errno = 0xC038000D\n\tERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                             syscall.Errno = 0xC038000E\n\tERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS               syscall.Errno = 0xC038000F\n\tERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                              syscall.Errno = 0xC0380010\n\tERROR_VOLMGR_DISK_MISSING                                                 syscall.Errno = 0xC0380011\n\tERROR_VOLMGR_DISK_NOT_EMPTY                                               syscall.Errno = 0xC0380012\n\tERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE                                        syscall.Errno = 0xC0380013\n\tERROR_VOLMGR_DISK_REVECTORING_FAILED                                      syscall.Errno = 0xC0380014\n\tERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID                                     syscall.Errno = 0xC0380015\n\tERROR_VOLMGR_DISK_SET_NOT_CONTAINED                                       syscall.Errno = 0xC0380016\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                                syscall.Errno = 0xC0380017\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                 syscall.Errno = 0xC0380018\n\tERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                   syscall.Errno = 0xC0380019\n\tERROR_VOLMGR_EXTENT_ALREADY_USED                                          syscall.Errno = 0xC038001A\n\tERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS                                        syscall.Errno = 0xC038001B\n\tERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                  syscall.Errno = 0xC038001C\n\tERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                    syscall.Errno = 0xC038001D\n\tERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                                syscall.Errno = 0xC038001E\n\tERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                           syscall.Errno = 0xC038001F\n\tERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                 syscall.Errno = 0xC0380020\n\tERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID                                    syscall.Errno = 0xC0380021\n\tERROR_VOLMGR_MAXIMUM_REGISTERED_USERS                                     syscall.Errno = 0xC0380022\n\tERROR_VOLMGR_MEMBER_IN_SYNC                                               syscall.Errno = 0xC0380023\n\tERROR_VOLMGR_MEMBER_INDEX_DUPLICATE                                       syscall.Errno = 0xC0380024\n\tERROR_VOLMGR_MEMBER_INDEX_INVALID                                         syscall.Errno = 0xC0380025\n\tERROR_VOLMGR_MEMBER_MISSING                                               syscall.Errno = 0xC0380026\n\tERROR_VOLMGR_MEMBER_NOT_DETACHED                                          syscall.Errno = 0xC0380027\n\tERROR_VOLMGR_MEMBER_REGENERATING                                          syscall.Errno = 0xC0380028\n\tERROR_VOLMGR_ALL_DISKS_FAILED                                             syscall.Errno = 0xC0380029\n\tERROR_VOLMGR_NO_REGISTERED_USERS                                          syscall.Errno = 0xC038002A\n\tERROR_VOLMGR_NO_SUCH_USER                                                 syscall.Errno = 0xC038002B\n\tERROR_VOLMGR_NOTIFICATION_RESET                                           syscall.Errno = 0xC038002C\n\tERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                    syscall.Errno = 0xC038002D\n\tERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID                                     syscall.Errno = 0xC038002E\n\tERROR_VOLMGR_PACK_DUPLICATE                                               syscall.Errno = 0xC038002F\n\tERROR_VOLMGR_PACK_ID_INVALID                                              syscall.Errno = 0xC0380030\n\tERROR_VOLMGR_PACK_INVALID                                                 syscall.Errno = 0xC0380031\n\tERROR_VOLMGR_PACK_NAME_INVALID                                            syscall.Errno = 0xC0380032\n\tERROR_VOLMGR_PACK_OFFLINE                                                 syscall.Errno = 0xC0380033\n\tERROR_VOLMGR_PACK_HAS_QUORUM                                              syscall.Errno = 0xC0380034\n\tERROR_VOLMGR_PACK_WITHOUT_QUORUM                                          syscall.Errno = 0xC0380035\n\tERROR_VOLMGR_PARTITION_STYLE_INVALID                                      syscall.Errno = 0xC0380036\n\tERROR_VOLMGR_PARTITION_UPDATE_FAILED                                      syscall.Errno = 0xC0380037\n\tERROR_VOLMGR_PLEX_IN_SYNC                                                 syscall.Errno = 0xC0380038\n\tERROR_VOLMGR_PLEX_INDEX_DUPLICATE                                         syscall.Errno = 0xC0380039\n\tERROR_VOLMGR_PLEX_INDEX_INVALID                                           syscall.Errno = 0xC038003A\n\tERROR_VOLMGR_PLEX_LAST_ACTIVE                                             syscall.Errno = 0xC038003B\n\tERROR_VOLMGR_PLEX_MISSING                                                 syscall.Errno = 0xC038003C\n\tERROR_VOLMGR_PLEX_REGENERATING                                            syscall.Errno = 0xC038003D\n\tERROR_VOLMGR_PLEX_TYPE_INVALID                                            syscall.Errno = 0xC038003E\n\tERROR_VOLMGR_PLEX_NOT_RAID5                                               syscall.Errno = 0xC038003F\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE                                              syscall.Errno = 0xC0380040\n\tERROR_VOLMGR_STRUCTURE_SIZE_INVALID                                       syscall.Errno = 0xC0380041\n\tERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                               syscall.Errno = 0xC0380042\n\tERROR_VOLMGR_TRANSACTION_IN_PROGRESS                                      syscall.Errno = 0xC0380043\n\tERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                                syscall.Errno = 0xC0380044\n\tERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                 syscall.Errno = 0xC0380045\n\tERROR_VOLMGR_VOLUME_ID_INVALID                                            syscall.Errno = 0xC0380046\n\tERROR_VOLMGR_VOLUME_LENGTH_INVALID                                        syscall.Errno = 0xC0380047\n\tERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                       syscall.Errno = 0xC0380048\n\tERROR_VOLMGR_VOLUME_NOT_MIRRORED                                          syscall.Errno = 0xC0380049\n\tERROR_VOLMGR_VOLUME_NOT_RETAINED                                          syscall.Errno = 0xC038004A\n\tERROR_VOLMGR_VOLUME_OFFLINE                                               syscall.Errno = 0xC038004B\n\tERROR_VOLMGR_VOLUME_RETAINED                                              syscall.Errno = 0xC038004C\n\tERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                    syscall.Errno = 0xC038004D\n\tERROR_VOLMGR_DIFFERENT_SECTOR_SIZE                                        syscall.Errno = 0xC038004E\n\tERROR_VOLMGR_BAD_BOOT_DISK                                                syscall.Errno = 0xC038004F\n\tERROR_VOLMGR_PACK_CONFIG_OFFLINE                                          syscall.Errno = 0xC0380050\n\tERROR_VOLMGR_PACK_CONFIG_ONLINE                                           syscall.Errno = 0xC0380051\n\tERROR_VOLMGR_NOT_PRIMARY_PACK                                             syscall.Errno = 0xC0380052\n\tERROR_VOLMGR_PACK_LOG_UPDATE_FAILED                                       syscall.Errno = 0xC0380053\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                              syscall.Errno = 0xC0380054\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                            syscall.Errno = 0xC0380055\n\tERROR_VOLMGR_VOLUME_MIRRORED                                              syscall.Errno = 0xC0380056\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                      syscall.Errno = 0xC0380057\n\tERROR_VOLMGR_NO_VALID_LOG_COPIES                                          syscall.Errno = 0xC0380058\n\tERROR_VOLMGR_PRIMARY_PACK_PRESENT                                         syscall.Errno = 0xC0380059\n\tERROR_VOLMGR_NUMBER_OF_DISKS_INVALID                                      syscall.Errno = 0xC038005A\n\tERROR_VOLMGR_MIRROR_NOT_SUPPORTED                                         syscall.Errno = 0xC038005B\n\tERROR_VOLMGR_RAID5_NOT_SUPPORTED                                          syscall.Errno = 0xC038005C\n\tERROR_BCD_NOT_ALL_ENTRIES_IMPORTED                                        syscall.Errno = 0x80390001\n\tERROR_BCD_TOO_MANY_ELEMENTS                                               syscall.Errno = 0xC0390002\n\tERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                    syscall.Errno = 0x80390003\n\tERROR_VHD_DRIVE_FOOTER_MISSING                                            syscall.Errno = 0xC03A0001\n\tERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                  syscall.Errno = 0xC03A0002\n\tERROR_VHD_DRIVE_FOOTER_CORRUPT                                            syscall.Errno = 0xC03A0003\n\tERROR_VHD_FORMAT_UNKNOWN                                                  syscall.Errno = 0xC03A0004\n\tERROR_VHD_FORMAT_UNSUPPORTED_VERSION                                      syscall.Errno = 0xC03A0005\n\tERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                 syscall.Errno = 0xC03A0006\n\tERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                               syscall.Errno = 0xC03A0007\n\tERROR_VHD_SPARSE_HEADER_CORRUPT                                           syscall.Errno = 0xC03A0008\n\tERROR_VHD_BLOCK_ALLOCATION_FAILURE                                        syscall.Errno = 0xC03A0009\n\tERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                  syscall.Errno = 0xC03A000A\n\tERROR_VHD_INVALID_BLOCK_SIZE                                              syscall.Errno = 0xC03A000B\n\tERROR_VHD_BITMAP_MISMATCH                                                 syscall.Errno = 0xC03A000C\n\tERROR_VHD_PARENT_VHD_NOT_FOUND                                            syscall.Errno = 0xC03A000D\n\tERROR_VHD_CHILD_PARENT_ID_MISMATCH                                        syscall.Errno = 0xC03A000E\n\tERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                 syscall.Errno = 0xC03A000F\n\tERROR_VHD_METADATA_READ_FAILURE                                           syscall.Errno = 0xC03A0010\n\tERROR_VHD_METADATA_WRITE_FAILURE                                          syscall.Errno = 0xC03A0011\n\tERROR_VHD_INVALID_SIZE                                                    syscall.Errno = 0xC03A0012\n\tERROR_VHD_INVALID_FILE_SIZE                                               syscall.Errno = 0xC03A0013\n\tERROR_VIRTDISK_PROVIDER_NOT_FOUND                                         syscall.Errno = 0xC03A0014\n\tERROR_VIRTDISK_NOT_VIRTUAL_DISK                                           syscall.Errno = 0xC03A0015\n\tERROR_VHD_PARENT_VHD_ACCESS_DENIED                                        syscall.Errno = 0xC03A0016\n\tERROR_VHD_CHILD_PARENT_SIZE_MISMATCH                                      syscall.Errno = 0xC03A0017\n\tERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                               syscall.Errno = 0xC03A0018\n\tERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                              syscall.Errno = 0xC03A0019\n\tERROR_VIRTUAL_DISK_LIMITATION                                             syscall.Errno = 0xC03A001A\n\tERROR_VHD_INVALID_TYPE                                                    syscall.Errno = 0xC03A001B\n\tERROR_VHD_INVALID_STATE                                                   syscall.Errno = 0xC03A001C\n\tERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                               syscall.Errno = 0xC03A001D\n\tERROR_VIRTDISK_DISK_ALREADY_OWNED                                         syscall.Errno = 0xC03A001E\n\tERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                   syscall.Errno = 0xC03A001F\n\tERROR_CTLOG_TRACKING_NOT_INITIALIZED                                      syscall.Errno = 0xC03A0020\n\tERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                 syscall.Errno = 0xC03A0021\n\tERROR_CTLOG_VHD_CHANGED_OFFLINE                                           syscall.Errno = 0xC03A0022\n\tERROR_CTLOG_INVALID_TRACKING_STATE                                        syscall.Errno = 0xC03A0023\n\tERROR_CTLOG_INCONSISTENT_TRACKING_FILE                                    syscall.Errno = 0xC03A0024\n\tERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA                                      syscall.Errno = 0xC03A0025\n\tERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                          syscall.Errno = 0xC03A0026\n\tERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                        syscall.Errno = 0xC03A0027\n\tERROR_VHD_METADATA_FULL                                                   syscall.Errno = 0xC03A0028\n\tERROR_VHD_INVALID_CHANGE_TRACKING_ID                                      syscall.Errno = 0xC03A0029\n\tERROR_VHD_CHANGE_TRACKING_DISABLED                                        syscall.Errno = 0xC03A002A\n\tERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION                             syscall.Errno = 0xC03A0030\n\tERROR_QUERY_STORAGE_ERROR                                                 syscall.Errno = 0x803A0001\n\tHCN_E_NETWORK_NOT_FOUND                                                   Handle        = 0x803B0001\n\tHCN_E_ENDPOINT_NOT_FOUND                                                  Handle        = 0x803B0002\n\tHCN_E_LAYER_NOT_FOUND                                                     Handle        = 0x803B0003\n\tHCN_E_SWITCH_NOT_FOUND                                                    Handle        = 0x803B0004\n\tHCN_E_SUBNET_NOT_FOUND                                                    Handle        = 0x803B0005\n\tHCN_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x803B0006\n\tHCN_E_PORT_NOT_FOUND                                                      Handle        = 0x803B0007\n\tHCN_E_POLICY_NOT_FOUND                                                    Handle        = 0x803B0008\n\tHCN_E_VFP_PORTSETTING_NOT_FOUND                                           Handle        = 0x803B0009\n\tHCN_E_INVALID_NETWORK                                                     Handle        = 0x803B000A\n\tHCN_E_INVALID_NETWORK_TYPE                                                Handle        = 0x803B000B\n\tHCN_E_INVALID_ENDPOINT                                                    Handle        = 0x803B000C\n\tHCN_E_INVALID_POLICY                                                      Handle        = 0x803B000D\n\tHCN_E_INVALID_POLICY_TYPE                                                 Handle        = 0x803B000E\n\tHCN_E_INVALID_REMOTE_ENDPOINT_OPERATION                                   Handle        = 0x803B000F\n\tHCN_E_NETWORK_ALREADY_EXISTS                                              Handle        = 0x803B0010\n\tHCN_E_LAYER_ALREADY_EXISTS                                                Handle        = 0x803B0011\n\tHCN_E_POLICY_ALREADY_EXISTS                                               Handle        = 0x803B0012\n\tHCN_E_PORT_ALREADY_EXISTS                                                 Handle        = 0x803B0013\n\tHCN_E_ENDPOINT_ALREADY_ATTACHED                                           Handle        = 0x803B0014\n\tHCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0015\n\tHCN_E_MAPPING_NOT_SUPPORTED                                               Handle        = 0x803B0016\n\tHCN_E_DEGRADED_OPERATION                                                  Handle        = 0x803B0017\n\tHCN_E_SHARED_SWITCH_MODIFICATION                                          Handle        = 0x803B0018\n\tHCN_E_GUID_CONVERSION_FAILURE                                             Handle        = 0x803B0019\n\tHCN_E_REGKEY_FAILURE                                                      Handle        = 0x803B001A\n\tHCN_E_INVALID_JSON                                                        Handle        = 0x803B001B\n\tHCN_E_INVALID_JSON_REFERENCE                                              Handle        = 0x803B001C\n\tHCN_E_ENDPOINT_SHARING_DISABLED                                           Handle        = 0x803B001D\n\tHCN_E_INVALID_IP                                                          Handle        = 0x803B001E\n\tHCN_E_SWITCH_EXTENSION_NOT_FOUND                                          Handle        = 0x803B001F\n\tHCN_E_MANAGER_STOPPED                                                     Handle        = 0x803B0020\n\tGCN_E_MODULE_NOT_FOUND                                                    Handle        = 0x803B0021\n\tGCN_E_NO_REQUEST_HANDLERS                                                 Handle        = 0x803B0022\n\tGCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0023\n\tGCN_E_RUNTIMEKEYS_FAILED                                                  Handle        = 0x803B0024\n\tGCN_E_NETADAPTER_TIMEOUT                                                  Handle        = 0x803B0025\n\tGCN_E_NETADAPTER_NOT_FOUND                                                Handle        = 0x803B0026\n\tGCN_E_NETCOMPARTMENT_NOT_FOUND                                            Handle        = 0x803B0027\n\tGCN_E_NETINTERFACE_NOT_FOUND                                              Handle        = 0x803B0028\n\tGCN_E_DEFAULTNAMESPACE_EXISTS                                             Handle        = 0x803B0029\n\tHCN_E_ICS_DISABLED                                                        Handle        = 0x803B002A\n\tHCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS                                   Handle        = 0x803B002B\n\tHCN_E_ENTITY_HAS_REFERENCES                                               Handle        = 0x803B002C\n\tHCN_E_INVALID_INTERNAL_PORT                                               Handle        = 0x803B002D\n\tHCN_E_NAMESPACE_ATTACH_FAILED                                             Handle        = 0x803B002E\n\tHCN_E_ADDR_INVALID_OR_RESERVED                                            Handle        = 0x803B002F\n\tSDIAG_E_CANCELLED                                                         syscall.Errno = 0x803C0100\n\tSDIAG_E_SCRIPT                                                            syscall.Errno = 0x803C0101\n\tSDIAG_E_POWERSHELL                                                        syscall.Errno = 0x803C0102\n\tSDIAG_E_MANAGEDHOST                                                       syscall.Errno = 0x803C0103\n\tSDIAG_E_NOVERIFIER                                                        syscall.Errno = 0x803C0104\n\tSDIAG_S_CANNOTRUN                                                         syscall.Errno = 0x003C0105\n\tSDIAG_E_DISABLED                                                          syscall.Errno = 0x803C0106\n\tSDIAG_E_TRUST                                                             syscall.Errno = 0x803C0107\n\tSDIAG_E_CANNOTRUN                                                         syscall.Errno = 0x803C0108\n\tSDIAG_E_VERSION                                                           syscall.Errno = 0x803C0109\n\tSDIAG_E_RESOURCE                                                          syscall.Errno = 0x803C010A\n\tSDIAG_E_ROOTCAUSE                                                         syscall.Errno = 0x803C010B\n\tWPN_E_CHANNEL_CLOSED                                                      Handle        = 0x803E0100\n\tWPN_E_CHANNEL_REQUEST_NOT_COMPLETE                                        Handle        = 0x803E0101\n\tWPN_E_INVALID_APP                                                         Handle        = 0x803E0102\n\tWPN_E_OUTSTANDING_CHANNEL_REQUEST                                         Handle        = 0x803E0103\n\tWPN_E_DUPLICATE_CHANNEL                                                   Handle        = 0x803E0104\n\tWPN_E_PLATFORM_UNAVAILABLE                                                Handle        = 0x803E0105\n\tWPN_E_NOTIFICATION_POSTED                                                 Handle        = 0x803E0106\n\tWPN_E_NOTIFICATION_HIDDEN                                                 Handle        = 0x803E0107\n\tWPN_E_NOTIFICATION_NOT_POSTED                                             Handle        = 0x803E0108\n\tWPN_E_CLOUD_DISABLED                                                      Handle        = 0x803E0109\n\tWPN_E_CLOUD_INCAPABLE                                                     Handle        = 0x803E0110\n\tWPN_E_CLOUD_AUTH_UNAVAILABLE                                              Handle        = 0x803E011A\n\tWPN_E_CLOUD_SERVICE_UNAVAILABLE                                           Handle        = 0x803E011B\n\tWPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION                             Handle        = 0x803E011C\n\tWPN_E_NOTIFICATION_DISABLED                                               Handle        = 0x803E0111\n\tWPN_E_NOTIFICATION_INCAPABLE                                              Handle        = 0x803E0112\n\tWPN_E_INTERNET_INCAPABLE                                                  Handle        = 0x803E0113\n\tWPN_E_NOTIFICATION_TYPE_DISABLED                                          Handle        = 0x803E0114\n\tWPN_E_NOTIFICATION_SIZE                                                   Handle        = 0x803E0115\n\tWPN_E_TAG_SIZE                                                            Handle        = 0x803E0116\n\tWPN_E_ACCESS_DENIED                                                       Handle        = 0x803E0117\n\tWPN_E_DUPLICATE_REGISTRATION                                              Handle        = 0x803E0118\n\tWPN_E_PUSH_NOTIFICATION_INCAPABLE                                         Handle        = 0x803E0119\n\tWPN_E_DEV_ID_SIZE                                                         Handle        = 0x803E0120\n\tWPN_E_TAG_ALPHANUMERIC                                                    Handle        = 0x803E012A\n\tWPN_E_INVALID_HTTP_STATUS_CODE                                            Handle        = 0x803E012B\n\tWPN_E_OUT_OF_SESSION                                                      Handle        = 0x803E0200\n\tWPN_E_POWER_SAVE                                                          Handle        = 0x803E0201\n\tWPN_E_IMAGE_NOT_FOUND_IN_CACHE                                            Handle        = 0x803E0202\n\tWPN_E_ALL_URL_NOT_COMPLETED                                               Handle        = 0x803E0203\n\tWPN_E_INVALID_CLOUD_IMAGE                                                 Handle        = 0x803E0204\n\tWPN_E_NOTIFICATION_ID_MATCHED                                             Handle        = 0x803E0205\n\tWPN_E_CALLBACK_ALREADY_REGISTERED                                         Handle        = 0x803E0206\n\tWPN_E_TOAST_NOTIFICATION_DROPPED                                          Handle        = 0x803E0207\n\tWPN_E_STORAGE_LOCKED                                                      Handle        = 0x803E0208\n\tWPN_E_GROUP_SIZE                                                          Handle        = 0x803E0209\n\tWPN_E_GROUP_ALPHANUMERIC                                                  Handle        = 0x803E020A\n\tWPN_E_CLOUD_DISABLED_FOR_APP                                              Handle        = 0x803E020B\n\tE_MBN_CONTEXT_NOT_ACTIVATED                                               Handle        = 0x80548201\n\tE_MBN_BAD_SIM                                                             Handle        = 0x80548202\n\tE_MBN_DATA_CLASS_NOT_AVAILABLE                                            Handle        = 0x80548203\n\tE_MBN_INVALID_ACCESS_STRING                                               Handle        = 0x80548204\n\tE_MBN_MAX_ACTIVATED_CONTEXTS                                              Handle        = 0x80548205\n\tE_MBN_PACKET_SVC_DETACHED                                                 Handle        = 0x80548206\n\tE_MBN_PROVIDER_NOT_VISIBLE                                                Handle        = 0x80548207\n\tE_MBN_RADIO_POWER_OFF                                                     Handle        = 0x80548208\n\tE_MBN_SERVICE_NOT_ACTIVATED                                               Handle        = 0x80548209\n\tE_MBN_SIM_NOT_INSERTED                                                    Handle        = 0x8054820A\n\tE_MBN_VOICE_CALL_IN_PROGRESS                                              Handle        = 0x8054820B\n\tE_MBN_INVALID_CACHE                                                       Handle        = 0x8054820C\n\tE_MBN_NOT_REGISTERED                                                      Handle        = 0x8054820D\n\tE_MBN_PROVIDERS_NOT_FOUND                                                 Handle        = 0x8054820E\n\tE_MBN_PIN_NOT_SUPPORTED                                                   Handle        = 0x8054820F\n\tE_MBN_PIN_REQUIRED                                                        Handle        = 0x80548210\n\tE_MBN_PIN_DISABLED                                                        Handle        = 0x80548211\n\tE_MBN_FAILURE                                                             Handle        = 0x80548212\n\tE_MBN_INVALID_PROFILE                                                     Handle        = 0x80548218\n\tE_MBN_DEFAULT_PROFILE_EXIST                                               Handle        = 0x80548219\n\tE_MBN_SMS_ENCODING_NOT_SUPPORTED                                          Handle        = 0x80548220\n\tE_MBN_SMS_FILTER_NOT_SUPPORTED                                            Handle        = 0x80548221\n\tE_MBN_SMS_INVALID_MEMORY_INDEX                                            Handle        = 0x80548222\n\tE_MBN_SMS_LANG_NOT_SUPPORTED                                              Handle        = 0x80548223\n\tE_MBN_SMS_MEMORY_FAILURE                                                  Handle        = 0x80548224\n\tE_MBN_SMS_NETWORK_TIMEOUT                                                 Handle        = 0x80548225\n\tE_MBN_SMS_UNKNOWN_SMSC_ADDRESS                                            Handle        = 0x80548226\n\tE_MBN_SMS_FORMAT_NOT_SUPPORTED                                            Handle        = 0x80548227\n\tE_MBN_SMS_OPERATION_NOT_ALLOWED                                           Handle        = 0x80548228\n\tE_MBN_SMS_MEMORY_FULL                                                     Handle        = 0x80548229\n\tPEER_E_IPV6_NOT_INSTALLED                                                 Handle        = 0x80630001\n\tPEER_E_NOT_INITIALIZED                                                    Handle        = 0x80630002\n\tPEER_E_CANNOT_START_SERVICE                                               Handle        = 0x80630003\n\tPEER_E_NOT_LICENSED                                                       Handle        = 0x80630004\n\tPEER_E_INVALID_GRAPH                                                      Handle        = 0x80630010\n\tPEER_E_DBNAME_CHANGED                                                     Handle        = 0x80630011\n\tPEER_E_DUPLICATE_GRAPH                                                    Handle        = 0x80630012\n\tPEER_E_GRAPH_NOT_READY                                                    Handle        = 0x80630013\n\tPEER_E_GRAPH_SHUTTING_DOWN                                                Handle        = 0x80630014\n\tPEER_E_GRAPH_IN_USE                                                       Handle        = 0x80630015\n\tPEER_E_INVALID_DATABASE                                                   Handle        = 0x80630016\n\tPEER_E_TOO_MANY_ATTRIBUTES                                                Handle        = 0x80630017\n\tPEER_E_CONNECTION_NOT_FOUND                                               Handle        = 0x80630103\n\tPEER_E_CONNECT_SELF                                                       Handle        = 0x80630106\n\tPEER_E_ALREADY_LISTENING                                                  Handle        = 0x80630107\n\tPEER_E_NODE_NOT_FOUND                                                     Handle        = 0x80630108\n\tPEER_E_CONNECTION_FAILED                                                  Handle        = 0x80630109\n\tPEER_E_CONNECTION_NOT_AUTHENTICATED                                       Handle        = 0x8063010A\n\tPEER_E_CONNECTION_REFUSED                                                 Handle        = 0x8063010B\n\tPEER_E_CLASSIFIER_TOO_LONG                                                Handle        = 0x80630201\n\tPEER_E_TOO_MANY_IDENTITIES                                                Handle        = 0x80630202\n\tPEER_E_NO_KEY_ACCESS                                                      Handle        = 0x80630203\n\tPEER_E_GROUPS_EXIST                                                       Handle        = 0x80630204\n\tPEER_E_RECORD_NOT_FOUND                                                   Handle        = 0x80630301\n\tPEER_E_DATABASE_ACCESSDENIED                                              Handle        = 0x80630302\n\tPEER_E_DBINITIALIZATION_FAILED                                            Handle        = 0x80630303\n\tPEER_E_MAX_RECORD_SIZE_EXCEEDED                                           Handle        = 0x80630304\n\tPEER_E_DATABASE_ALREADY_PRESENT                                           Handle        = 0x80630305\n\tPEER_E_DATABASE_NOT_PRESENT                                               Handle        = 0x80630306\n\tPEER_E_IDENTITY_NOT_FOUND                                                 Handle        = 0x80630401\n\tPEER_E_EVENT_HANDLE_NOT_FOUND                                             Handle        = 0x80630501\n\tPEER_E_INVALID_SEARCH                                                     Handle        = 0x80630601\n\tPEER_E_INVALID_ATTRIBUTES                                                 Handle        = 0x80630602\n\tPEER_E_INVITATION_NOT_TRUSTED                                             Handle        = 0x80630701\n\tPEER_E_CHAIN_TOO_LONG                                                     Handle        = 0x80630703\n\tPEER_E_INVALID_TIME_PERIOD                                                Handle        = 0x80630705\n\tPEER_E_CIRCULAR_CHAIN_DETECTED                                            Handle        = 0x80630706\n\tPEER_E_CERT_STORE_CORRUPTED                                               Handle        = 0x80630801\n\tPEER_E_NO_CLOUD                                                           Handle        = 0x80631001\n\tPEER_E_CLOUD_NAME_AMBIGUOUS                                               Handle        = 0x80631005\n\tPEER_E_INVALID_RECORD                                                     Handle        = 0x80632010\n\tPEER_E_NOT_AUTHORIZED                                                     Handle        = 0x80632020\n\tPEER_E_PASSWORD_DOES_NOT_MEET_POLICY                                      Handle        = 0x80632021\n\tPEER_E_DEFERRED_VALIDATION                                                Handle        = 0x80632030\n\tPEER_E_INVALID_GROUP_PROPERTIES                                           Handle        = 0x80632040\n\tPEER_E_INVALID_PEER_NAME                                                  Handle        = 0x80632050\n\tPEER_E_INVALID_CLASSIFIER                                                 Handle        = 0x80632060\n\tPEER_E_INVALID_FRIENDLY_NAME                                              Handle        = 0x80632070\n\tPEER_E_INVALID_ROLE_PROPERTY                                              Handle        = 0x80632071\n\tPEER_E_INVALID_CLASSIFIER_PROPERTY                                        Handle        = 0x80632072\n\tPEER_E_INVALID_RECORD_EXPIRATION                                          Handle        = 0x80632080\n\tPEER_E_INVALID_CREDENTIAL_INFO                                            Handle        = 0x80632081\n\tPEER_E_INVALID_CREDENTIAL                                                 Handle        = 0x80632082\n\tPEER_E_INVALID_RECORD_SIZE                                                Handle        = 0x80632083\n\tPEER_E_UNSUPPORTED_VERSION                                                Handle        = 0x80632090\n\tPEER_E_GROUP_NOT_READY                                                    Handle        = 0x80632091\n\tPEER_E_GROUP_IN_USE                                                       Handle        = 0x80632092\n\tPEER_E_INVALID_GROUP                                                      Handle        = 0x80632093\n\tPEER_E_NO_MEMBERS_FOUND                                                   Handle        = 0x80632094\n\tPEER_E_NO_MEMBER_CONNECTIONS                                              Handle        = 0x80632095\n\tPEER_E_UNABLE_TO_LISTEN                                                   Handle        = 0x80632096\n\tPEER_E_IDENTITY_DELETED                                                   Handle        = 0x806320A0\n\tPEER_E_SERVICE_NOT_AVAILABLE                                              Handle        = 0x806320A1\n\tPEER_E_CONTACT_NOT_FOUND                                                  Handle        = 0x80636001\n\tPEER_S_GRAPH_DATA_CREATED                                                 Handle        = 0x00630001\n\tPEER_S_NO_EVENT_DATA                                                      Handle        = 0x00630002\n\tPEER_S_ALREADY_CONNECTED                                                  Handle        = 0x00632000\n\tPEER_S_SUBSCRIPTION_EXISTS                                                Handle        = 0x00636000\n\tPEER_S_NO_CONNECTIVITY                                                    Handle        = 0x00630005\n\tPEER_S_ALREADY_A_MEMBER                                                   Handle        = 0x00630006\n\tPEER_E_CANNOT_CONVERT_PEER_NAME                                           Handle        = 0x80634001\n\tPEER_E_INVALID_PEER_HOST_NAME                                             Handle        = 0x80634002\n\tPEER_E_NO_MORE                                                            Handle        = 0x80634003\n\tPEER_E_PNRP_DUPLICATE_PEER_NAME                                           Handle        = 0x80634005\n\tPEER_E_INVITE_CANCELLED                                                   Handle        = 0x80637000\n\tPEER_E_INVITE_RESPONSE_NOT_AVAILABLE                                      Handle        = 0x80637001\n\tPEER_E_NOT_SIGNED_IN                                                      Handle        = 0x80637003\n\tPEER_E_PRIVACY_DECLINED                                                   Handle        = 0x80637004\n\tPEER_E_TIMEOUT                                                            Handle        = 0x80637005\n\tPEER_E_INVALID_ADDRESS                                                    Handle        = 0x80637007\n\tPEER_E_FW_EXCEPTION_DISABLED                                              Handle        = 0x80637008\n\tPEER_E_FW_BLOCKED_BY_POLICY                                               Handle        = 0x80637009\n\tPEER_E_FW_BLOCKED_BY_SHIELDS_UP                                           Handle        = 0x8063700A\n\tPEER_E_FW_DECLINED                                                        Handle        = 0x8063700B\n\tUI_E_CREATE_FAILED                                                        Handle        = 0x802A0001\n\tUI_E_SHUTDOWN_CALLED                                                      Handle        = 0x802A0002\n\tUI_E_ILLEGAL_REENTRANCY                                                   Handle        = 0x802A0003\n\tUI_E_OBJECT_SEALED                                                        Handle        = 0x802A0004\n\tUI_E_VALUE_NOT_SET                                                        Handle        = 0x802A0005\n\tUI_E_VALUE_NOT_DETERMINED                                                 Handle        = 0x802A0006\n\tUI_E_INVALID_OUTPUT                                                       Handle        = 0x802A0007\n\tUI_E_BOOLEAN_EXPECTED                                                     Handle        = 0x802A0008\n\tUI_E_DIFFERENT_OWNER                                                      Handle        = 0x802A0009\n\tUI_E_AMBIGUOUS_MATCH                                                      Handle        = 0x802A000A\n\tUI_E_FP_OVERFLOW                                                          Handle        = 0x802A000B\n\tUI_E_WRONG_THREAD                                                         Handle        = 0x802A000C\n\tUI_E_STORYBOARD_ACTIVE                                                    Handle        = 0x802A0101\n\tUI_E_STORYBOARD_NOT_PLAYING                                               Handle        = 0x802A0102\n\tUI_E_START_KEYFRAME_AFTER_END                                             Handle        = 0x802A0103\n\tUI_E_END_KEYFRAME_NOT_DETERMINED                                          Handle        = 0x802A0104\n\tUI_E_LOOPS_OVERLAP                                                        Handle        = 0x802A0105\n\tUI_E_TRANSITION_ALREADY_USED                                              Handle        = 0x802A0106\n\tUI_E_TRANSITION_NOT_IN_STORYBOARD                                         Handle        = 0x802A0107\n\tUI_E_TRANSITION_ECLIPSED                                                  Handle        = 0x802A0108\n\tUI_E_TIME_BEFORE_LAST_UPDATE                                              Handle        = 0x802A0109\n\tUI_E_TIMER_CLIENT_ALREADY_CONNECTED                                       Handle        = 0x802A010A\n\tUI_E_INVALID_DIMENSION                                                    Handle        = 0x802A010B\n\tUI_E_PRIMITIVE_OUT_OF_BOUNDS                                              Handle        = 0x802A010C\n\tUI_E_WINDOW_CLOSED                                                        Handle        = 0x802A0201\n\tE_BLUETOOTH_ATT_INVALID_HANDLE                                            Handle        = 0x80650001\n\tE_BLUETOOTH_ATT_READ_NOT_PERMITTED                                        Handle        = 0x80650002\n\tE_BLUETOOTH_ATT_WRITE_NOT_PERMITTED                                       Handle        = 0x80650003\n\tE_BLUETOOTH_ATT_INVALID_PDU                                               Handle        = 0x80650004\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION                               Handle        = 0x80650005\n\tE_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED                                     Handle        = 0x80650006\n\tE_BLUETOOTH_ATT_INVALID_OFFSET                                            Handle        = 0x80650007\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION                                Handle        = 0x80650008\n\tE_BLUETOOTH_ATT_PREPARE_QUEUE_FULL                                        Handle        = 0x80650009\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND                                       Handle        = 0x8065000A\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG                                        Handle        = 0x8065000B\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                          Handle        = 0x8065000C\n\tE_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                            Handle        = 0x8065000D\n\tE_BLUETOOTH_ATT_UNLIKELY                                                  Handle        = 0x8065000E\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION                                   Handle        = 0x8065000F\n\tE_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE                                    Handle        = 0x80650010\n\tE_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES                                    Handle        = 0x80650011\n\tE_BLUETOOTH_ATT_UNKNOWN_ERROR                                             Handle        = 0x80651000\n\tE_AUDIO_ENGINE_NODE_NOT_FOUND                                             Handle        = 0x80660001\n\tE_HDAUDIO_EMPTY_CONNECTION_LIST                                           Handle        = 0x80660002\n\tE_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                                   Handle        = 0x80660003\n\tE_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                      Handle        = 0x80660004\n\tE_HDAUDIO_NULL_LINKED_LIST_ENTRY                                          Handle        = 0x80660005\n\tSTATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE                             Handle        = 0x80670001\n\tSTATEREPOSITORY_E_STATEMENT_INPROGRESS                                    Handle        = 0x80670002\n\tSTATEREPOSITORY_E_CONFIGURATION_INVALID                                   Handle        = 0x80670003\n\tSTATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION                                  Handle        = 0x80670004\n\tSTATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED                                Handle        = 0x80670005\n\tSTATEREPOSITORY_E_BLOCKED                                                 Handle        = 0x80670006\n\tSTATEREPOSITORY_E_BUSY_RETRY                                              Handle        = 0x80670007\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_RETRY                                     Handle        = 0x80670008\n\tSTATEREPOSITORY_E_LOCKED_RETRY                                            Handle        = 0x80670009\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY                                Handle        = 0x8067000A\n\tSTATEREPOSITORY_E_TRANSACTION_REQUIRED                                    Handle        = 0x8067000B\n\tSTATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED                                   Handle        = 0x8067000C\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED                          Handle        = 0x8067000D\n\tSTATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED                                 Handle        = 0x8067000E\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED                     Handle        = 0x8067000F\n\tSTATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS                                Handle        = 0x80670010\n\tSTATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED                         Handle        = 0x80670011\n\tSTATEREPOSITORY_ERROR_CACHE_CORRUPTED                                     Handle        = 0x80670012\n\tSTATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED                             Handle        = 0x00670013\n\tSTATEREPOSITORY_TRANSACTION_IN_PROGRESS                                   Handle        = 0x00670014\n\tERROR_SPACES_POOL_WAS_DELETED                                             Handle        = 0x00E70001\n\tERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID                                    Handle        = 0x80E70001\n\tERROR_SPACES_INTERNAL_ERROR                                               Handle        = 0x80E70002\n\tERROR_SPACES_RESILIENCY_TYPE_INVALID                                      Handle        = 0x80E70003\n\tERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID                                    Handle        = 0x80E70004\n\tERROR_SPACES_DRIVE_REDUNDANCY_INVALID                                     Handle        = 0x80E70006\n\tERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID                                Handle        = 0x80E70007\n\tERROR_SPACES_PARITY_LAYOUT_INVALID                                        Handle        = 0x80E70008\n\tERROR_SPACES_INTERLEAVE_LENGTH_INVALID                                    Handle        = 0x80E70009\n\tERROR_SPACES_NUMBER_OF_COLUMNS_INVALID                                    Handle        = 0x80E7000A\n\tERROR_SPACES_NOT_ENOUGH_DRIVES                                            Handle        = 0x80E7000B\n\tERROR_SPACES_EXTENDED_ERROR                                               Handle        = 0x80E7000C\n\tERROR_SPACES_PROVISIONING_TYPE_INVALID                                    Handle        = 0x80E7000D\n\tERROR_SPACES_ALLOCATION_SIZE_INVALID                                      Handle        = 0x80E7000E\n\tERROR_SPACES_ENCLOSURE_AWARE_INVALID                                      Handle        = 0x80E7000F\n\tERROR_SPACES_WRITE_CACHE_SIZE_INVALID                                     Handle        = 0x80E70010\n\tERROR_SPACES_NUMBER_OF_GROUPS_INVALID                                     Handle        = 0x80E70011\n\tERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                              Handle        = 0x80E70012\n\tERROR_SPACES_ENTRY_INCOMPLETE                                             Handle        = 0x80E70013\n\tERROR_SPACES_ENTRY_INVALID                                                Handle        = 0x80E70014\n\tERROR_VOLSNAP_BOOTFILE_NOT_VALID                                          Handle        = 0x80820001\n\tERROR_VOLSNAP_ACTIVATION_TIMEOUT                                          Handle        = 0x80820002\n\tERROR_TIERING_NOT_SUPPORTED_ON_VOLUME                                     Handle        = 0x80830001\n\tERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS                                 Handle        = 0x80830002\n\tERROR_TIERING_STORAGE_TIER_NOT_FOUND                                      Handle        = 0x80830003\n\tERROR_TIERING_INVALID_FILE_ID                                             Handle        = 0x80830004\n\tERROR_TIERING_WRONG_CLUSTER_NODE                                          Handle        = 0x80830005\n\tERROR_TIERING_ALREADY_PROCESSING                                          Handle        = 0x80830006\n\tERROR_TIERING_CANNOT_PIN_OBJECT                                           Handle        = 0x80830007\n\tERROR_TIERING_FILE_IS_NOT_PINNED                                          Handle        = 0x80830008\n\tERROR_NOT_A_TIERED_VOLUME                                                 Handle        = 0x80830009\n\tERROR_ATTRIBUTE_NOT_PRESENT                                               Handle        = 0x8083000A\n\tERROR_SECCORE_INVALID_COMMAND                                             Handle        = 0xC0E80000\n\tERROR_NO_APPLICABLE_APP_LICENSES_FOUND                                    Handle        = 0xC0EA0001\n\tERROR_CLIP_LICENSE_NOT_FOUND                                              Handle        = 0xC0EA0002\n\tERROR_CLIP_DEVICE_LICENSE_MISSING                                         Handle        = 0xC0EA0003\n\tERROR_CLIP_LICENSE_INVALID_SIGNATURE                                      Handle        = 0xC0EA0004\n\tERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                           Handle        = 0xC0EA0005\n\tERROR_CLIP_LICENSE_EXPIRED                                                Handle        = 0xC0EA0006\n\tERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                               Handle        = 0xC0EA0007\n\tERROR_CLIP_LICENSE_NOT_SIGNED                                             Handle        = 0xC0EA0008\n\tERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                           Handle        = 0xC0EA0009\n\tERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH                                     Handle        = 0xC0EA000A\n\tDXGI_STATUS_OCCLUDED                                                      Handle        = 0x087A0001\n\tDXGI_STATUS_CLIPPED                                                       Handle        = 0x087A0002\n\tDXGI_STATUS_NO_REDIRECTION                                                Handle        = 0x087A0004\n\tDXGI_STATUS_NO_DESKTOP_ACCESS                                             Handle        = 0x087A0005\n\tDXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                  Handle        = 0x087A0006\n\tDXGI_STATUS_MODE_CHANGED                                                  Handle        = 0x087A0007\n\tDXGI_STATUS_MODE_CHANGE_IN_PROGRESS                                       Handle        = 0x087A0008\n\tDXGI_ERROR_INVALID_CALL                                                   Handle        = 0x887A0001\n\tDXGI_ERROR_NOT_FOUND                                                      Handle        = 0x887A0002\n\tDXGI_ERROR_MORE_DATA                                                      Handle        = 0x887A0003\n\tDXGI_ERROR_UNSUPPORTED                                                    Handle        = 0x887A0004\n\tDXGI_ERROR_DEVICE_REMOVED                                                 Handle        = 0x887A0005\n\tDXGI_ERROR_DEVICE_HUNG                                                    Handle        = 0x887A0006\n\tDXGI_ERROR_DEVICE_RESET                                                   Handle        = 0x887A0007\n\tDXGI_ERROR_WAS_STILL_DRAWING                                              Handle        = 0x887A000A\n\tDXGI_ERROR_FRAME_STATISTICS_DISJOINT                                      Handle        = 0x887A000B\n\tDXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                   Handle        = 0x887A000C\n\tDXGI_ERROR_DRIVER_INTERNAL_ERROR                                          Handle        = 0x887A0020\n\tDXGI_ERROR_NONEXCLUSIVE                                                   Handle        = 0x887A0021\n\tDXGI_ERROR_NOT_CURRENTLY_AVAILABLE                                        Handle        = 0x887A0022\n\tDXGI_ERROR_REMOTE_CLIENT_DISCONNECTED                                     Handle        = 0x887A0023\n\tDXGI_ERROR_REMOTE_OUTOFMEMORY                                             Handle        = 0x887A0024\n\tDXGI_ERROR_ACCESS_LOST                                                    Handle        = 0x887A0026\n\tDXGI_ERROR_WAIT_TIMEOUT                                                   Handle        = 0x887A0027\n\tDXGI_ERROR_SESSION_DISCONNECTED                                           Handle        = 0x887A0028\n\tDXGI_ERROR_RESTRICT_TO_OUTPUT_STALE                                       Handle        = 0x887A0029\n\tDXGI_ERROR_CANNOT_PROTECT_CONTENT                                         Handle        = 0x887A002A\n\tDXGI_ERROR_ACCESS_DENIED                                                  Handle        = 0x887A002B\n\tDXGI_ERROR_NAME_ALREADY_EXISTS                                            Handle        = 0x887A002C\n\tDXGI_ERROR_SDK_COMPONENT_MISSING                                          Handle        = 0x887A002D\n\tDXGI_ERROR_NOT_CURRENT                                                    Handle        = 0x887A002E\n\tDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY                                      Handle        = 0x887A0030\n\tDXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION                                  Handle        = 0x887A0031\n\tDXGI_ERROR_NON_COMPOSITED_UI                                              Handle        = 0x887A0032\n\tDXGI_STATUS_UNOCCLUDED                                                    Handle        = 0x087A0009\n\tDXGI_STATUS_DDA_WAS_STILL_DRAWING                                         Handle        = 0x087A000A\n\tDXGI_ERROR_MODE_CHANGE_IN_PROGRESS                                        Handle        = 0x887A0025\n\tDXGI_STATUS_PRESENT_REQUIRED                                              Handle        = 0x087A002F\n\tDXGI_ERROR_CACHE_CORRUPT                                                  Handle        = 0x887A0033\n\tDXGI_ERROR_CACHE_FULL                                                     Handle        = 0x887A0034\n\tDXGI_ERROR_CACHE_HASH_COLLISION                                           Handle        = 0x887A0035\n\tDXGI_ERROR_ALREADY_EXISTS                                                 Handle        = 0x887A0036\n\tDXGI_DDI_ERR_WASSTILLDRAWING                                              Handle        = 0x887B0001\n\tDXGI_DDI_ERR_UNSUPPORTED                                                  Handle        = 0x887B0002\n\tDXGI_DDI_ERR_NONEXCLUSIVE                                                 Handle        = 0x887B0003\n\tD3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x88790001\n\tD3D10_ERROR_FILE_NOT_FOUND                                                Handle        = 0x88790002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x887C0001\n\tD3D11_ERROR_FILE_NOT_FOUND                                                Handle        = 0x887C0002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS                                  Handle        = 0x887C0003\n\tD3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD                  Handle        = 0x887C0004\n\tD3D12_ERROR_ADAPTER_NOT_FOUND                                             Handle        = 0x887E0001\n\tD3D12_ERROR_DRIVER_VERSION_MISMATCH                                       Handle        = 0x887E0002\n\tD2DERR_WRONG_STATE                                                        Handle        = 0x88990001\n\tD2DERR_NOT_INITIALIZED                                                    Handle        = 0x88990002\n\tD2DERR_UNSUPPORTED_OPERATION                                              Handle        = 0x88990003\n\tD2DERR_SCANNER_FAILED                                                     Handle        = 0x88990004\n\tD2DERR_SCREEN_ACCESS_DENIED                                               Handle        = 0x88990005\n\tD2DERR_DISPLAY_STATE_INVALID                                              Handle        = 0x88990006\n\tD2DERR_ZERO_VECTOR                                                        Handle        = 0x88990007\n\tD2DERR_INTERNAL_ERROR                                                     Handle        = 0x88990008\n\tD2DERR_DISPLAY_FORMAT_NOT_SUPPORTED                                       Handle        = 0x88990009\n\tD2DERR_INVALID_CALL                                                       Handle        = 0x8899000A\n\tD2DERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8899000B\n\tD2DERR_RECREATE_TARGET                                                    Handle        = 0x8899000C\n\tD2DERR_TOO_MANY_SHADER_ELEMENTS                                           Handle        = 0x8899000D\n\tD2DERR_SHADER_COMPILE_FAILED                                              Handle        = 0x8899000E\n\tD2DERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8899000F\n\tD2DERR_UNSUPPORTED_VERSION                                                Handle        = 0x88990010\n\tD2DERR_BAD_NUMBER                                                         Handle        = 0x88990011\n\tD2DERR_WRONG_FACTORY                                                      Handle        = 0x88990012\n\tD2DERR_LAYER_ALREADY_IN_USE                                               Handle        = 0x88990013\n\tD2DERR_POP_CALL_DID_NOT_MATCH_PUSH                                        Handle        = 0x88990014\n\tD2DERR_WRONG_RESOURCE_DOMAIN                                              Handle        = 0x88990015\n\tD2DERR_PUSH_POP_UNBALANCED                                                Handle        = 0x88990016\n\tD2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT                                Handle        = 0x88990017\n\tD2DERR_INCOMPATIBLE_BRUSH_TYPES                                           Handle        = 0x88990018\n\tD2DERR_WIN32_ERROR                                                        Handle        = 0x88990019\n\tD2DERR_TARGET_NOT_GDI_COMPATIBLE                                          Handle        = 0x8899001A\n\tD2DERR_TEXT_EFFECT_IS_WRONG_TYPE                                          Handle        = 0x8899001B\n\tD2DERR_TEXT_RENDERER_NOT_RELEASED                                         Handle        = 0x8899001C\n\tD2DERR_EXCEEDS_MAX_BITMAP_SIZE                                            Handle        = 0x8899001D\n\tD2DERR_INVALID_GRAPH_CONFIGURATION                                        Handle        = 0x8899001E\n\tD2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION                               Handle        = 0x8899001F\n\tD2DERR_CYCLIC_GRAPH                                                       Handle        = 0x88990020\n\tD2DERR_BITMAP_CANNOT_DRAW                                                 Handle        = 0x88990021\n\tD2DERR_OUTSTANDING_BITMAP_REFERENCES                                      Handle        = 0x88990022\n\tD2DERR_ORIGINAL_TARGET_NOT_BOUND                                          Handle        = 0x88990023\n\tD2DERR_INVALID_TARGET                                                     Handle        = 0x88990024\n\tD2DERR_BITMAP_BOUND_AS_TARGET                                             Handle        = 0x88990025\n\tD2DERR_INSUFFICIENT_DEVICE_CAPABILITIES                                   Handle        = 0x88990026\n\tD2DERR_INTERMEDIATE_TOO_LARGE                                             Handle        = 0x88990027\n\tD2DERR_EFFECT_IS_NOT_REGISTERED                                           Handle        = 0x88990028\n\tD2DERR_INVALID_PROPERTY                                                   Handle        = 0x88990029\n\tD2DERR_NO_SUBPROPERTIES                                                   Handle        = 0x8899002A\n\tD2DERR_PRINT_JOB_CLOSED                                                   Handle        = 0x8899002B\n\tD2DERR_PRINT_FORMAT_NOT_SUPPORTED                                         Handle        = 0x8899002C\n\tD2DERR_TOO_MANY_TRANSFORM_INPUTS                                          Handle        = 0x8899002D\n\tD2DERR_INVALID_GLYPH_IMAGE                                                Handle        = 0x8899002E\n\tDWRITE_E_FILEFORMAT                                                       Handle        = 0x88985000\n\tDWRITE_E_UNEXPECTED                                                       Handle        = 0x88985001\n\tDWRITE_E_NOFONT                                                           Handle        = 0x88985002\n\tDWRITE_E_FILENOTFOUND                                                     Handle        = 0x88985003\n\tDWRITE_E_FILEACCESS                                                       Handle        = 0x88985004\n\tDWRITE_E_FONTCOLLECTIONOBSOLETE                                           Handle        = 0x88985005\n\tDWRITE_E_ALREADYREGISTERED                                                Handle        = 0x88985006\n\tDWRITE_E_CACHEFORMAT                                                      Handle        = 0x88985007\n\tDWRITE_E_CACHEVERSION                                                     Handle        = 0x88985008\n\tDWRITE_E_UNSUPPORTEDOPERATION                                             Handle        = 0x88985009\n\tDWRITE_E_TEXTRENDERERINCOMPATIBLE                                         Handle        = 0x8898500A\n\tDWRITE_E_FLOWDIRECTIONCONFLICTS                                           Handle        = 0x8898500B\n\tDWRITE_E_NOCOLOR                                                          Handle        = 0x8898500C\n\tDWRITE_E_REMOTEFONT                                                       Handle        = 0x8898500D\n\tDWRITE_E_DOWNLOADCANCELLED                                                Handle        = 0x8898500E\n\tDWRITE_E_DOWNLOADFAILED                                                   Handle        = 0x8898500F\n\tDWRITE_E_TOOMANYDOWNLOADS                                                 Handle        = 0x88985010\n\tWINCODEC_ERR_WRONGSTATE                                                   Handle        = 0x88982F04\n\tWINCODEC_ERR_VALUEOUTOFRANGE                                              Handle        = 0x88982F05\n\tWINCODEC_ERR_UNKNOWNIMAGEFORMAT                                           Handle        = 0x88982F07\n\tWINCODEC_ERR_UNSUPPORTEDVERSION                                           Handle        = 0x88982F0B\n\tWINCODEC_ERR_NOTINITIALIZED                                               Handle        = 0x88982F0C\n\tWINCODEC_ERR_ALREADYLOCKED                                                Handle        = 0x88982F0D\n\tWINCODEC_ERR_PROPERTYNOTFOUND                                             Handle        = 0x88982F40\n\tWINCODEC_ERR_PROPERTYNOTSUPPORTED                                         Handle        = 0x88982F41\n\tWINCODEC_ERR_PROPERTYSIZE                                                 Handle        = 0x88982F42\n\tWINCODEC_ERR_CODECPRESENT                                                 Handle        = 0x88982F43\n\tWINCODEC_ERR_CODECNOTHUMBNAIL                                             Handle        = 0x88982F44\n\tWINCODEC_ERR_PALETTEUNAVAILABLE                                           Handle        = 0x88982F45\n\tWINCODEC_ERR_CODECTOOMANYSCANLINES                                        Handle        = 0x88982F46\n\tWINCODEC_ERR_INTERNALERROR                                                Handle        = 0x88982F48\n\tWINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS                             Handle        = 0x88982F49\n\tWINCODEC_ERR_COMPONENTNOTFOUND                                            Handle        = 0x88982F50\n\tWINCODEC_ERR_IMAGESIZEOUTOFRANGE                                          Handle        = 0x88982F51\n\tWINCODEC_ERR_TOOMUCHMETADATA                                              Handle        = 0x88982F52\n\tWINCODEC_ERR_BADIMAGE                                                     Handle        = 0x88982F60\n\tWINCODEC_ERR_BADHEADER                                                    Handle        = 0x88982F61\n\tWINCODEC_ERR_FRAMEMISSING                                                 Handle        = 0x88982F62\n\tWINCODEC_ERR_BADMETADATAHEADER                                            Handle        = 0x88982F63\n\tWINCODEC_ERR_BADSTREAMDATA                                                Handle        = 0x88982F70\n\tWINCODEC_ERR_STREAMWRITE                                                  Handle        = 0x88982F71\n\tWINCODEC_ERR_STREAMREAD                                                   Handle        = 0x88982F72\n\tWINCODEC_ERR_STREAMNOTAVAILABLE                                           Handle        = 0x88982F73\n\tWINCODEC_ERR_UNSUPPORTEDPIXELFORMAT                                       Handle        = 0x88982F80\n\tWINCODEC_ERR_UNSUPPORTEDOPERATION                                         Handle        = 0x88982F81\n\tWINCODEC_ERR_INVALIDREGISTRATION                                          Handle        = 0x88982F8A\n\tWINCODEC_ERR_COMPONENTINITIALIZEFAILURE                                   Handle        = 0x88982F8B\n\tWINCODEC_ERR_INSUFFICIENTBUFFER                                           Handle        = 0x88982F8C\n\tWINCODEC_ERR_DUPLICATEMETADATAPRESENT                                     Handle        = 0x88982F8D\n\tWINCODEC_ERR_PROPERTYUNEXPECTEDTYPE                                       Handle        = 0x88982F8E\n\tWINCODEC_ERR_UNEXPECTEDSIZE                                               Handle        = 0x88982F8F\n\tWINCODEC_ERR_INVALIDQUERYREQUEST                                          Handle        = 0x88982F90\n\tWINCODEC_ERR_UNEXPECTEDMETADATATYPE                                       Handle        = 0x88982F91\n\tWINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT                               Handle        = 0x88982F92\n\tWINCODEC_ERR_INVALIDQUERYCHARACTER                                        Handle        = 0x88982F93\n\tWINCODEC_ERR_WIN32ERROR                                                   Handle        = 0x88982F94\n\tWINCODEC_ERR_INVALIDPROGRESSIVELEVEL                                      Handle        = 0x88982F95\n\tWINCODEC_ERR_INVALIDJPEGSCANINDEX                                         Handle        = 0x88982F96\n\tMILERR_OBJECTBUSY                                                         Handle        = 0x88980001\n\tMILERR_INSUFFICIENTBUFFER                                                 Handle        = 0x88980002\n\tMILERR_WIN32ERROR                                                         Handle        = 0x88980003\n\tMILERR_SCANNER_FAILED                                                     Handle        = 0x88980004\n\tMILERR_SCREENACCESSDENIED                                                 Handle        = 0x88980005\n\tMILERR_DISPLAYSTATEINVALID                                                Handle        = 0x88980006\n\tMILERR_NONINVERTIBLEMATRIX                                                Handle        = 0x88980007\n\tMILERR_ZEROVECTOR                                                         Handle        = 0x88980008\n\tMILERR_TERMINATED                                                         Handle        = 0x88980009\n\tMILERR_BADNUMBER                                                          Handle        = 0x8898000A\n\tMILERR_INTERNALERROR                                                      Handle        = 0x88980080\n\tMILERR_DISPLAYFORMATNOTSUPPORTED                                          Handle        = 0x88980084\n\tMILERR_INVALIDCALL                                                        Handle        = 0x88980085\n\tMILERR_ALREADYLOCKED                                                      Handle        = 0x88980086\n\tMILERR_NOTLOCKED                                                          Handle        = 0x88980087\n\tMILERR_DEVICECANNOTRENDERTEXT                                             Handle        = 0x88980088\n\tMILERR_GLYPHBITMAPMISSED                                                  Handle        = 0x88980089\n\tMILERR_MALFORMEDGLYPHCACHE                                                Handle        = 0x8898008A\n\tMILERR_GENERIC_IGNORE                                                     Handle        = 0x8898008B\n\tMILERR_MALFORMED_GUIDELINE_DATA                                           Handle        = 0x8898008C\n\tMILERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8898008D\n\tMILERR_NEED_RECREATE_AND_PRESENT                                          Handle        = 0x8898008E\n\tMILERR_ALREADY_INITIALIZED                                                Handle        = 0x8898008F\n\tMILERR_MISMATCHED_SIZE                                                    Handle        = 0x88980090\n\tMILERR_NO_REDIRECTION_SURFACE_AVAILABLE                                   Handle        = 0x88980091\n\tMILERR_REMOTING_NOT_SUPPORTED                                             Handle        = 0x88980092\n\tMILERR_QUEUED_PRESENT_NOT_SUPPORTED                                       Handle        = 0x88980093\n\tMILERR_NOT_QUEUING_PRESENTS                                               Handle        = 0x88980094\n\tMILERR_NO_REDIRECTION_SURFACE_RETRY_LATER                                 Handle        = 0x88980095\n\tMILERR_TOOMANYSHADERELEMNTS                                               Handle        = 0x88980096\n\tMILERR_MROW_READLOCK_FAILED                                               Handle        = 0x88980097\n\tMILERR_MROW_UPDATE_FAILED                                                 Handle        = 0x88980098\n\tMILERR_SHADER_COMPILE_FAILED                                              Handle        = 0x88980099\n\tMILERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8898009A\n\tMILERR_QPC_TIME_WENT_BACKWARD                                             Handle        = 0x8898009B\n\tMILERR_DXGI_ENUMERATION_OUT_OF_SYNC                                       Handle        = 0x8898009D\n\tMILERR_ADAPTER_NOT_FOUND                                                  Handle        = 0x8898009E\n\tMILERR_COLORSPACE_NOT_SUPPORTED                                           Handle        = 0x8898009F\n\tMILERR_PREFILTER_NOT_SUPPORTED                                            Handle        = 0x889800A0\n\tMILERR_DISPLAYID_ACCESS_DENIED                                            Handle        = 0x889800A1\n\tUCEERR_INVALIDPACKETHEADER                                                Handle        = 0x88980400\n\tUCEERR_UNKNOWNPACKET                                                      Handle        = 0x88980401\n\tUCEERR_ILLEGALPACKET                                                      Handle        = 0x88980402\n\tUCEERR_MALFORMEDPACKET                                                    Handle        = 0x88980403\n\tUCEERR_ILLEGALHANDLE                                                      Handle        = 0x88980404\n\tUCEERR_HANDLELOOKUPFAILED                                                 Handle        = 0x88980405\n\tUCEERR_RENDERTHREADFAILURE                                                Handle        = 0x88980406\n\tUCEERR_CTXSTACKFRSTTARGETNULL                                             Handle        = 0x88980407\n\tUCEERR_CONNECTIONIDLOOKUPFAILED                                           Handle        = 0x88980408\n\tUCEERR_BLOCKSFULL                                                         Handle        = 0x88980409\n\tUCEERR_MEMORYFAILURE                                                      Handle        = 0x8898040A\n\tUCEERR_PACKETRECORDOUTOFRANGE                                             Handle        = 0x8898040B\n\tUCEERR_ILLEGALRECORDTYPE                                                  Handle        = 0x8898040C\n\tUCEERR_OUTOFHANDLES                                                       Handle        = 0x8898040D\n\tUCEERR_UNCHANGABLE_UPDATE_ATTEMPTED                                       Handle        = 0x8898040E\n\tUCEERR_NO_MULTIPLE_WORKER_THREADS                                         Handle        = 0x8898040F\n\tUCEERR_REMOTINGNOTSUPPORTED                                               Handle        = 0x88980410\n\tUCEERR_MISSINGENDCOMMAND                                                  Handle        = 0x88980411\n\tUCEERR_MISSINGBEGINCOMMAND                                                Handle        = 0x88980412\n\tUCEERR_CHANNELSYNCTIMEDOUT                                                Handle        = 0x88980413\n\tUCEERR_CHANNELSYNCABANDONED                                               Handle        = 0x88980414\n\tUCEERR_UNSUPPORTEDTRANSPORTVERSION                                        Handle        = 0x88980415\n\tUCEERR_TRANSPORTUNAVAILABLE                                               Handle        = 0x88980416\n\tUCEERR_FEEDBACK_UNSUPPORTED                                               Handle        = 0x88980417\n\tUCEERR_COMMANDTRANSPORTDENIED                                             Handle        = 0x88980418\n\tUCEERR_GRAPHICSSTREAMUNAVAILABLE                                          Handle        = 0x88980419\n\tUCEERR_GRAPHICSSTREAMALREADYOPEN                                          Handle        = 0x88980420\n\tUCEERR_TRANSPORTDISCONNECTED                                              Handle        = 0x88980421\n\tUCEERR_TRANSPORTOVERLOADED                                                Handle        = 0x88980422\n\tUCEERR_PARTITION_ZOMBIED                                                  Handle        = 0x88980423\n\tMILAVERR_NOCLOCK                                                          Handle        = 0x88980500\n\tMILAVERR_NOMEDIATYPE                                                      Handle        = 0x88980501\n\tMILAVERR_NOVIDEOMIXER                                                     Handle        = 0x88980502\n\tMILAVERR_NOVIDEOPRESENTER                                                 Handle        = 0x88980503\n\tMILAVERR_NOREADYFRAMES                                                    Handle        = 0x88980504\n\tMILAVERR_MODULENOTLOADED                                                  Handle        = 0x88980505\n\tMILAVERR_WMPFACTORYNOTREGISTERED                                          Handle        = 0x88980506\n\tMILAVERR_INVALIDWMPVERSION                                                Handle        = 0x88980507\n\tMILAVERR_INSUFFICIENTVIDEORESOURCES                                       Handle        = 0x88980508\n\tMILAVERR_VIDEOACCELERATIONNOTAVAILABLE                                    Handle        = 0x88980509\n\tMILAVERR_REQUESTEDTEXTURETOOBIG                                           Handle        = 0x8898050A\n\tMILAVERR_SEEKFAILED                                                       Handle        = 0x8898050B\n\tMILAVERR_UNEXPECTEDWMPFAILURE                                             Handle        = 0x8898050C\n\tMILAVERR_MEDIAPLAYERCLOSED                                                Handle        = 0x8898050D\n\tMILAVERR_UNKNOWNHARDWAREERROR                                             Handle        = 0x8898050E\n\tMILEFFECTSERR_UNKNOWNPROPERTY                                             Handle        = 0x8898060E\n\tMILEFFECTSERR_EFFECTNOTPARTOFGROUP                                        Handle        = 0x8898060F\n\tMILEFFECTSERR_NOINPUTSOURCEATTACHED                                       Handle        = 0x88980610\n\tMILEFFECTSERR_CONNECTORNOTCONNECTED                                       Handle        = 0x88980611\n\tMILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT                            Handle        = 0x88980612\n\tMILEFFECTSERR_RESERVED                                                    Handle        = 0x88980613\n\tMILEFFECTSERR_CYCLEDETECTED                                               Handle        = 0x88980614\n\tMILEFFECTSERR_EFFECTINMORETHANONEGRAPH                                    Handle        = 0x88980615\n\tMILEFFECTSERR_EFFECTALREADYINAGRAPH                                       Handle        = 0x88980616\n\tMILEFFECTSERR_EFFECTHASNOCHILDREN                                         Handle        = 0x88980617\n\tMILEFFECTSERR_ALREADYATTACHEDTOLISTENER                                   Handle        = 0x88980618\n\tMILEFFECTSERR_NOTAFFINETRANSFORM                                          Handle        = 0x88980619\n\tMILEFFECTSERR_EMPTYBOUNDS                                                 Handle        = 0x8898061A\n\tMILEFFECTSERR_OUTPUTSIZETOOLARGE                                          Handle        = 0x8898061B\n\tDWMERR_STATE_TRANSITION_FAILED                                            Handle        = 0x88980700\n\tDWMERR_THEME_FAILED                                                       Handle        = 0x88980701\n\tDWMERR_CATASTROPHIC_FAILURE                                               Handle        = 0x88980702\n\tDCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED                                Handle        = 0x88980800\n\tDCOMPOSITION_ERROR_SURFACE_BEING_RENDERED                                 Handle        = 0x88980801\n\tDCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED                             Handle        = 0x88980802\n\tONL_E_INVALID_AUTHENTICATION_TARGET                                       Handle        = 0x80860001\n\tONL_E_ACCESS_DENIED_BY_TOU                                                Handle        = 0x80860002\n\tONL_E_INVALID_APPLICATION                                                 Handle        = 0x80860003\n\tONL_E_PASSWORD_UPDATE_REQUIRED                                            Handle        = 0x80860004\n\tONL_E_ACCOUNT_UPDATE_REQUIRED                                             Handle        = 0x80860005\n\tONL_E_FORCESIGNIN                                                         Handle        = 0x80860006\n\tONL_E_ACCOUNT_LOCKED                                                      Handle        = 0x80860007\n\tONL_E_PARENTAL_CONSENT_REQUIRED                                           Handle        = 0x80860008\n\tONL_E_EMAIL_VERIFICATION_REQUIRED                                         Handle        = 0x80860009\n\tONL_E_ACCOUNT_SUSPENDED_COMPROIMISE                                       Handle        = 0x8086000A\n\tONL_E_ACCOUNT_SUSPENDED_ABUSE                                             Handle        = 0x8086000B\n\tONL_E_ACTION_REQUIRED                                                     Handle        = 0x8086000C\n\tONL_CONNECTION_COUNT_LIMIT                                                Handle        = 0x8086000D\n\tONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT                                   Handle        = 0x8086000E\n\tONL_E_USER_AUTHENTICATION_REQUIRED                                        Handle        = 0x8086000F\n\tONL_E_REQUEST_THROTTLED                                                   Handle        = 0x80860010\n\tFA_E_MAX_PERSISTED_ITEMS_REACHED                                          Handle        = 0x80270220\n\tFA_E_HOMEGROUP_NOT_AVAILABLE                                              Handle        = 0x80270222\n\tE_MONITOR_RESOLUTION_TOO_LOW                                              Handle        = 0x80270250\n\tE_ELEVATED_ACTIVATION_NOT_SUPPORTED                                       Handle        = 0x80270251\n\tE_UAC_DISABLED                                                            Handle        = 0x80270252\n\tE_FULL_ADMIN_NOT_SUPPORTED                                                Handle        = 0x80270253\n\tE_APPLICATION_NOT_REGISTERED                                              Handle        = 0x80270254\n\tE_MULTIPLE_EXTENSIONS_FOR_APPLICATION                                     Handle        = 0x80270255\n\tE_MULTIPLE_PACKAGES_FOR_FAMILY                                            Handle        = 0x80270256\n\tE_APPLICATION_MANAGER_NOT_RUNNING                                         Handle        = 0x80270257\n\tS_STORE_LAUNCHED_FOR_REMEDIATION                                          Handle        = 0x00270258\n\tS_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG                          Handle        = 0x00270259\n\tE_APPLICATION_ACTIVATION_TIMED_OUT                                        Handle        = 0x8027025A\n\tE_APPLICATION_ACTIVATION_EXEC_FAILURE                                     Handle        = 0x8027025B\n\tE_APPLICATION_TEMPORARY_LICENSE_ERROR                                     Handle        = 0x8027025C\n\tE_APPLICATION_TRIAL_LICENSE_EXPIRED                                       Handle        = 0x8027025D\n\tE_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED                          Handle        = 0x80270260\n\tE_SKYDRIVE_ROOT_TARGET_OVERLAP                                            Handle        = 0x80270261\n\tE_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX                                       Handle        = 0x80270262\n\tE_SKYDRIVE_FILE_NOT_UPLOADED                                              Handle        = 0x80270263\n\tE_SKYDRIVE_UPDATE_AVAILABILITY_FAIL                                       Handle        = 0x80270264\n\tE_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED                          Handle        = 0x80270265\n\tE_SYNCENGINE_FILE_SIZE_OVER_LIMIT                                         Handle        = 0x8802B001\n\tE_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA                            Handle        = 0x8802B002\n\tE_SYNCENGINE_UNSUPPORTED_FILE_NAME                                        Handle        = 0x8802B003\n\tE_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED                             Handle        = 0x8802B004\n\tE_SYNCENGINE_FILE_SYNC_PARTNER_ERROR                                      Handle        = 0x8802B005\n\tE_SYNCENGINE_SYNC_PAUSED_BY_SERVICE                                       Handle        = 0x8802B006\n\tE_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN                                      Handle        = 0x8802C002\n\tE_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED                                Handle        = 0x8802C003\n\tE_SYNCENGINE_UNKNOWN_SERVICE_ERROR                                        Handle        = 0x8802C004\n\tE_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE                             Handle        = 0x8802C005\n\tE_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE                                   Handle        = 0x8802C006\n\tE_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR                          Handle        = 0x8802C007\n\tE_SYNCENGINE_FOLDER_INACCESSIBLE                                          Handle        = 0x8802D001\n\tE_SYNCENGINE_UNSUPPORTED_FOLDER_NAME                                      Handle        = 0x8802D002\n\tE_SYNCENGINE_UNSUPPORTED_MARKET                                           Handle        = 0x8802D003\n\tE_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED                                   Handle        = 0x8802D004\n\tE_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED                            Handle        = 0x8802D005\n\tE_SYNCENGINE_CLIENT_UPDATE_NEEDED                                         Handle        = 0x8802D006\n\tE_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED                                Handle        = 0x8802D007\n\tE_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED                          Handle        = 0x8802D008\n\tE_SYNCENGINE_UNSUPPORTED_REPARSE_POINT                                    Handle        = 0x8802D009\n\tE_SYNCENGINE_STORAGE_SERVICE_BLOCKED                                      Handle        = 0x8802D00A\n\tE_SYNCENGINE_FOLDER_IN_REDIRECTION                                        Handle        = 0x8802D00B\n\tEAS_E_POLICY_NOT_MANAGED_BY_OS                                            Handle        = 0x80550001\n\tEAS_E_POLICY_COMPLIANT_WITH_ACTIONS                                       Handle        = 0x80550002\n\tEAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE                                    Handle        = 0x80550003\n\tEAS_E_CURRENT_USER_HAS_BLANK_PASSWORD                                     Handle        = 0x80550004\n\tEAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE                   Handle        = 0x80550005\n\tEAS_E_USER_CANNOT_CHANGE_PASSWORD                                         Handle        = 0x80550006\n\tEAS_E_ADMINS_HAVE_BLANK_PASSWORD                                          Handle        = 0x80550007\n\tEAS_E_ADMINS_CANNOT_CHANGE_PASSWORD                                       Handle        = 0x80550008\n\tEAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD                       Handle        = 0x80550009\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS                Handle        = 0x8055000A\n\tEAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD                            Handle        = 0x8055000B\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER          Handle        = 0x8055000C\n\tEAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD                      Handle        = 0x8055000D\n\tWEB_E_UNSUPPORTED_FORMAT                                                  Handle        = 0x83750001\n\tWEB_E_INVALID_XML                                                         Handle        = 0x83750002\n\tWEB_E_MISSING_REQUIRED_ELEMENT                                            Handle        = 0x83750003\n\tWEB_E_MISSING_REQUIRED_ATTRIBUTE                                          Handle        = 0x83750004\n\tWEB_E_UNEXPECTED_CONTENT                                                  Handle        = 0x83750005\n\tWEB_E_RESOURCE_TOO_LARGE                                                  Handle        = 0x83750006\n\tWEB_E_INVALID_JSON_STRING                                                 Handle        = 0x83750007\n\tWEB_E_INVALID_JSON_NUMBER                                                 Handle        = 0x83750008\n\tWEB_E_JSON_VALUE_NOT_FOUND                                                Handle        = 0x83750009\n\tHTTP_E_STATUS_UNEXPECTED                                                  Handle        = 0x80190001\n\tHTTP_E_STATUS_UNEXPECTED_REDIRECTION                                      Handle        = 0x80190003\n\tHTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR                                     Handle        = 0x80190004\n\tHTTP_E_STATUS_UNEXPECTED_SERVER_ERROR                                     Handle        = 0x80190005\n\tHTTP_E_STATUS_AMBIGUOUS                                                   Handle        = 0x8019012C\n\tHTTP_E_STATUS_MOVED                                                       Handle        = 0x8019012D\n\tHTTP_E_STATUS_REDIRECT                                                    Handle        = 0x8019012E\n\tHTTP_E_STATUS_REDIRECT_METHOD                                             Handle        = 0x8019012F\n\tHTTP_E_STATUS_NOT_MODIFIED                                                Handle        = 0x80190130\n\tHTTP_E_STATUS_USE_PROXY                                                   Handle        = 0x80190131\n\tHTTP_E_STATUS_REDIRECT_KEEP_VERB                                          Handle        = 0x80190133\n\tHTTP_E_STATUS_BAD_REQUEST                                                 Handle        = 0x80190190\n\tHTTP_E_STATUS_DENIED                                                      Handle        = 0x80190191\n\tHTTP_E_STATUS_PAYMENT_REQ                                                 Handle        = 0x80190192\n\tHTTP_E_STATUS_FORBIDDEN                                                   Handle        = 0x80190193\n\tHTTP_E_STATUS_NOT_FOUND                                                   Handle        = 0x80190194\n\tHTTP_E_STATUS_BAD_METHOD                                                  Handle        = 0x80190195\n\tHTTP_E_STATUS_NONE_ACCEPTABLE                                             Handle        = 0x80190196\n\tHTTP_E_STATUS_PROXY_AUTH_REQ                                              Handle        = 0x80190197\n\tHTTP_E_STATUS_REQUEST_TIMEOUT                                             Handle        = 0x80190198\n\tHTTP_E_STATUS_CONFLICT                                                    Handle        = 0x80190199\n\tHTTP_E_STATUS_GONE                                                        Handle        = 0x8019019A\n\tHTTP_E_STATUS_LENGTH_REQUIRED                                             Handle        = 0x8019019B\n\tHTTP_E_STATUS_PRECOND_FAILED                                              Handle        = 0x8019019C\n\tHTTP_E_STATUS_REQUEST_TOO_LARGE                                           Handle        = 0x8019019D\n\tHTTP_E_STATUS_URI_TOO_LONG                                                Handle        = 0x8019019E\n\tHTTP_E_STATUS_UNSUPPORTED_MEDIA                                           Handle        = 0x8019019F\n\tHTTP_E_STATUS_RANGE_NOT_SATISFIABLE                                       Handle        = 0x801901A0\n\tHTTP_E_STATUS_EXPECTATION_FAILED                                          Handle        = 0x801901A1\n\tHTTP_E_STATUS_SERVER_ERROR                                                Handle        = 0x801901F4\n\tHTTP_E_STATUS_NOT_SUPPORTED                                               Handle        = 0x801901F5\n\tHTTP_E_STATUS_BAD_GATEWAY                                                 Handle        = 0x801901F6\n\tHTTP_E_STATUS_SERVICE_UNAVAIL                                             Handle        = 0x801901F7\n\tHTTP_E_STATUS_GATEWAY_TIMEOUT                                             Handle        = 0x801901F8\n\tHTTP_E_STATUS_VERSION_NOT_SUP                                             Handle        = 0x801901F9\n\tE_INVALID_PROTOCOL_OPERATION                                              Handle        = 0x83760001\n\tE_INVALID_PROTOCOL_FORMAT                                                 Handle        = 0x83760002\n\tE_PROTOCOL_EXTENSIONS_NOT_SUPPORTED                                       Handle        = 0x83760003\n\tE_SUBPROTOCOL_NOT_SUPPORTED                                               Handle        = 0x83760004\n\tE_PROTOCOL_VERSION_NOT_SUPPORTED                                          Handle        = 0x83760005\n\tINPUT_E_OUT_OF_ORDER                                                      Handle        = 0x80400000\n\tINPUT_E_REENTRANCY                                                        Handle        = 0x80400001\n\tINPUT_E_MULTIMODAL                                                        Handle        = 0x80400002\n\tINPUT_E_PACKET                                                            Handle        = 0x80400003\n\tINPUT_E_FRAME                                                             Handle        = 0x80400004\n\tINPUT_E_HISTORY                                                           Handle        = 0x80400005\n\tINPUT_E_DEVICE_INFO                                                       Handle        = 0x80400006\n\tINPUT_E_TRANSFORM                                                         Handle        = 0x80400007\n\tINPUT_E_DEVICE_PROPERTY                                                   Handle        = 0x80400008\n\tINET_E_INVALID_URL                                                        Handle        = 0x800C0002\n\tINET_E_NO_SESSION                                                         Handle        = 0x800C0003\n\tINET_E_CANNOT_CONNECT                                                     Handle        = 0x800C0004\n\tINET_E_RESOURCE_NOT_FOUND                                                 Handle        = 0x800C0005\n\tINET_E_OBJECT_NOT_FOUND                                                   Handle        = 0x800C0006\n\tINET_E_DATA_NOT_AVAILABLE                                                 Handle        = 0x800C0007\n\tINET_E_DOWNLOAD_FAILURE                                                   Handle        = 0x800C0008\n\tINET_E_AUTHENTICATION_REQUIRED                                            Handle        = 0x800C0009\n\tINET_E_NO_VALID_MEDIA                                                     Handle        = 0x800C000A\n\tINET_E_CONNECTION_TIMEOUT                                                 Handle        = 0x800C000B\n\tINET_E_INVALID_REQUEST                                                    Handle        = 0x800C000C\n\tINET_E_UNKNOWN_PROTOCOL                                                   Handle        = 0x800C000D\n\tINET_E_SECURITY_PROBLEM                                                   Handle        = 0x800C000E\n\tINET_E_CANNOT_LOAD_DATA                                                   Handle        = 0x800C000F\n\tINET_E_CANNOT_INSTANTIATE_OBJECT                                          Handle        = 0x800C0010\n\tINET_E_INVALID_CERTIFICATE                                                Handle        = 0x800C0019\n\tINET_E_REDIRECT_FAILED                                                    Handle        = 0x800C0014\n\tINET_E_REDIRECT_TO_DIR                                                    Handle        = 0x800C0015\n\tERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00001\n\tERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00002\n\tERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN                                 Handle        = 0x80B00003\n\tERROR_DBG_START_SERVER_FAILURE_LOCKDOWN                                   Handle        = 0x80B00004\n\tERROR_IO_PREEMPTED                                                        Handle        = 0x89010001\n\tJSCRIPT_E_CANTEXECUTE                                                     Handle        = 0x89020001\n\tWEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x88010001\n\tWEP_E_FIXED_DATA_NOT_SUPPORTED                                            Handle        = 0x88010002\n\tWEP_E_HARDWARE_NOT_COMPLIANT                                              Handle        = 0x88010003\n\tWEP_E_LOCK_NOT_CONFIGURED                                                 Handle        = 0x88010004\n\tWEP_E_PROTECTION_SUSPENDED                                                Handle        = 0x88010005\n\tWEP_E_NO_LICENSE                                                          Handle        = 0x88010006\n\tWEP_E_OS_NOT_PROTECTED                                                    Handle        = 0x88010007\n\tWEP_E_UNEXPECTED_FAIL                                                     Handle        = 0x88010008\n\tWEP_E_BUFFER_TOO_LARGE                                                    Handle        = 0x88010009\n\tERROR_SVHDX_ERROR_STORED                                                  Handle        = 0xC05C0000\n\tERROR_SVHDX_ERROR_NOT_AVAILABLE                                           Handle        = 0xC05CFF00\n\tERROR_SVHDX_UNIT_ATTENTION_AVAILABLE                                      Handle        = 0xC05CFF01\n\tERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                          Handle        = 0xC05CFF02\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                         Handle        = 0xC05CFF03\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                          Handle        = 0xC05CFF04\n\tERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                        Handle        = 0xC05CFF05\n\tERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                   Handle        = 0xC05CFF06\n\tERROR_SVHDX_RESERVATION_CONFLICT                                          Handle        = 0xC05CFF07\n\tERROR_SVHDX_WRONG_FILE_TYPE                                               Handle        = 0xC05CFF08\n\tERROR_SVHDX_VERSION_MISMATCH                                              Handle        = 0xC05CFF09\n\tERROR_VHD_SHARED                                                          Handle        = 0xC05CFF0A\n\tERROR_SVHDX_NO_INITIATOR                                                  Handle        = 0xC05CFF0B\n\tERROR_VHDSET_BACKING_STORAGE_NOT_FOUND                                    Handle        = 0xC05CFF0C\n\tERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                               Handle        = 0xC05D0000\n\tERROR_SMB_BAD_CLUSTER_DIALECT                                             Handle        = 0xC05D0001\n\tWININET_E_OUT_OF_HANDLES                                                  Handle        = 0x80072EE1\n\tWININET_E_TIMEOUT                                                         Handle        = 0x80072EE2\n\tWININET_E_EXTENDED_ERROR                                                  Handle        = 0x80072EE3\n\tWININET_E_INTERNAL_ERROR                                                  Handle        = 0x80072EE4\n\tWININET_E_INVALID_URL                                                     Handle        = 0x80072EE5\n\tWININET_E_UNRECOGNIZED_SCHEME                                             Handle        = 0x80072EE6\n\tWININET_E_NAME_NOT_RESOLVED                                               Handle        = 0x80072EE7\n\tWININET_E_PROTOCOL_NOT_FOUND                                              Handle        = 0x80072EE8\n\tWININET_E_INVALID_OPTION                                                  Handle        = 0x80072EE9\n\tWININET_E_BAD_OPTION_LENGTH                                               Handle        = 0x80072EEA\n\tWININET_E_OPTION_NOT_SETTABLE                                             Handle        = 0x80072EEB\n\tWININET_E_SHUTDOWN                                                        Handle        = 0x80072EEC\n\tWININET_E_INCORRECT_USER_NAME                                             Handle        = 0x80072EED\n\tWININET_E_INCORRECT_PASSWORD                                              Handle        = 0x80072EEE\n\tWININET_E_LOGIN_FAILURE                                                   Handle        = 0x80072EEF\n\tWININET_E_INVALID_OPERATION                                               Handle        = 0x80072EF0\n\tWININET_E_OPERATION_CANCELLED                                             Handle        = 0x80072EF1\n\tWININET_E_INCORRECT_HANDLE_TYPE                                           Handle        = 0x80072EF2\n\tWININET_E_INCORRECT_HANDLE_STATE                                          Handle        = 0x80072EF3\n\tWININET_E_NOT_PROXY_REQUEST                                               Handle        = 0x80072EF4\n\tWININET_E_REGISTRY_VALUE_NOT_FOUND                                        Handle        = 0x80072EF5\n\tWININET_E_BAD_REGISTRY_PARAMETER                                          Handle        = 0x80072EF6\n\tWININET_E_NO_DIRECT_ACCESS                                                Handle        = 0x80072EF7\n\tWININET_E_NO_CONTEXT                                                      Handle        = 0x80072EF8\n\tWININET_E_NO_CALLBACK                                                     Handle        = 0x80072EF9\n\tWININET_E_REQUEST_PENDING                                                 Handle        = 0x80072EFA\n\tWININET_E_INCORRECT_FORMAT                                                Handle        = 0x80072EFB\n\tWININET_E_ITEM_NOT_FOUND                                                  Handle        = 0x80072EFC\n\tWININET_E_CANNOT_CONNECT                                                  Handle        = 0x80072EFD\n\tWININET_E_CONNECTION_ABORTED                                              Handle        = 0x80072EFE\n\tWININET_E_CONNECTION_RESET                                                Handle        = 0x80072EFF\n\tWININET_E_FORCE_RETRY                                                     Handle        = 0x80072F00\n\tWININET_E_INVALID_PROXY_REQUEST                                           Handle        = 0x80072F01\n\tWININET_E_NEED_UI                                                         Handle        = 0x80072F02\n\tWININET_E_HANDLE_EXISTS                                                   Handle        = 0x80072F04\n\tWININET_E_SEC_CERT_DATE_INVALID                                           Handle        = 0x80072F05\n\tWININET_E_SEC_CERT_CN_INVALID                                             Handle        = 0x80072F06\n\tWININET_E_HTTP_TO_HTTPS_ON_REDIR                                          Handle        = 0x80072F07\n\tWININET_E_HTTPS_TO_HTTP_ON_REDIR                                          Handle        = 0x80072F08\n\tWININET_E_MIXED_SECURITY                                                  Handle        = 0x80072F09\n\tWININET_E_CHG_POST_IS_NON_SECURE                                          Handle        = 0x80072F0A\n\tWININET_E_POST_IS_NON_SECURE                                              Handle        = 0x80072F0B\n\tWININET_E_CLIENT_AUTH_CERT_NEEDED                                         Handle        = 0x80072F0C\n\tWININET_E_INVALID_CA                                                      Handle        = 0x80072F0D\n\tWININET_E_CLIENT_AUTH_NOT_SETUP                                           Handle        = 0x80072F0E\n\tWININET_E_ASYNC_THREAD_FAILED                                             Handle        = 0x80072F0F\n\tWININET_E_REDIRECT_SCHEME_CHANGE                                          Handle        = 0x80072F10\n\tWININET_E_DIALOG_PENDING                                                  Handle        = 0x80072F11\n\tWININET_E_RETRY_DIALOG                                                    Handle        = 0x80072F12\n\tWININET_E_NO_NEW_CONTAINERS                                               Handle        = 0x80072F13\n\tWININET_E_HTTPS_HTTP_SUBMIT_REDIR                                         Handle        = 0x80072F14\n\tWININET_E_SEC_CERT_ERRORS                                                 Handle        = 0x80072F17\n\tWININET_E_SEC_CERT_REV_FAILED                                             Handle        = 0x80072F19\n\tWININET_E_HEADER_NOT_FOUND                                                Handle        = 0x80072F76\n\tWININET_E_DOWNLEVEL_SERVER                                                Handle        = 0x80072F77\n\tWININET_E_INVALID_SERVER_RESPONSE                                         Handle        = 0x80072F78\n\tWININET_E_INVALID_HEADER                                                  Handle        = 0x80072F79\n\tWININET_E_INVALID_QUERY_REQUEST                                           Handle        = 0x80072F7A\n\tWININET_E_HEADER_ALREADY_EXISTS                                           Handle        = 0x80072F7B\n\tWININET_E_REDIRECT_FAILED                                                 Handle        = 0x80072F7C\n\tWININET_E_SECURITY_CHANNEL_ERROR                                          Handle        = 0x80072F7D\n\tWININET_E_UNABLE_TO_CACHE_FILE                                            Handle        = 0x80072F7E\n\tWININET_E_TCPIP_NOT_INSTALLED                                             Handle        = 0x80072F7F\n\tWININET_E_DISCONNECTED                                                    Handle        = 0x80072F83\n\tWININET_E_SERVER_UNREACHABLE                                              Handle        = 0x80072F84\n\tWININET_E_PROXY_SERVER_UNREACHABLE                                        Handle        = 0x80072F85\n\tWININET_E_BAD_AUTO_PROXY_SCRIPT                                           Handle        = 0x80072F86\n\tWININET_E_UNABLE_TO_DOWNLOAD_SCRIPT                                       Handle        = 0x80072F87\n\tWININET_E_SEC_INVALID_CERT                                                Handle        = 0x80072F89\n\tWININET_E_SEC_CERT_REVOKED                                                Handle        = 0x80072F8A\n\tWININET_E_FAILED_DUETOSECURITYCHECK                                       Handle        = 0x80072F8B\n\tWININET_E_NOT_INITIALIZED                                                 Handle        = 0x80072F8C\n\tWININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY                               Handle        = 0x80072F8E\n\tWININET_E_DECODING_FAILED                                                 Handle        = 0x80072F8F\n\tWININET_E_NOT_REDIRECTED                                                  Handle        = 0x80072F80\n\tWININET_E_COOKIE_NEEDS_CONFIRMATION                                       Handle        = 0x80072F81\n\tWININET_E_COOKIE_DECLINED                                                 Handle        = 0x80072F82\n\tWININET_E_REDIRECT_NEEDS_CONFIRMATION                                     Handle        = 0x80072F88\n\tSQLITE_E_ERROR                                                            Handle        = 0x87AF0001\n\tSQLITE_E_INTERNAL                                                         Handle        = 0x87AF0002\n\tSQLITE_E_PERM                                                             Handle        = 0x87AF0003\n\tSQLITE_E_ABORT                                                            Handle        = 0x87AF0004\n\tSQLITE_E_BUSY                                                             Handle        = 0x87AF0005\n\tSQLITE_E_LOCKED                                                           Handle        = 0x87AF0006\n\tSQLITE_E_NOMEM                                                            Handle        = 0x87AF0007\n\tSQLITE_E_READONLY                                                         Handle        = 0x87AF0008\n\tSQLITE_E_INTERRUPT                                                        Handle        = 0x87AF0009\n\tSQLITE_E_IOERR                                                            Handle        = 0x87AF000A\n\tSQLITE_E_CORRUPT                                                          Handle        = 0x87AF000B\n\tSQLITE_E_NOTFOUND                                                         Handle        = 0x87AF000C\n\tSQLITE_E_FULL                                                             Handle        = 0x87AF000D\n\tSQLITE_E_CANTOPEN                                                         Handle        = 0x87AF000E\n\tSQLITE_E_PROTOCOL                                                         Handle        = 0x87AF000F\n\tSQLITE_E_EMPTY                                                            Handle        = 0x87AF0010\n\tSQLITE_E_SCHEMA                                                           Handle        = 0x87AF0011\n\tSQLITE_E_TOOBIG                                                           Handle        = 0x87AF0012\n\tSQLITE_E_CONSTRAINT                                                       Handle        = 0x87AF0013\n\tSQLITE_E_MISMATCH                                                         Handle        = 0x87AF0014\n\tSQLITE_E_MISUSE                                                           Handle        = 0x87AF0015\n\tSQLITE_E_NOLFS                                                            Handle        = 0x87AF0016\n\tSQLITE_E_AUTH                                                             Handle        = 0x87AF0017\n\tSQLITE_E_FORMAT                                                           Handle        = 0x87AF0018\n\tSQLITE_E_RANGE                                                            Handle        = 0x87AF0019\n\tSQLITE_E_NOTADB                                                           Handle        = 0x87AF001A\n\tSQLITE_E_NOTICE                                                           Handle        = 0x87AF001B\n\tSQLITE_E_WARNING                                                          Handle        = 0x87AF001C\n\tSQLITE_E_ROW                                                              Handle        = 0x87AF0064\n\tSQLITE_E_DONE                                                             Handle        = 0x87AF0065\n\tSQLITE_E_IOERR_READ                                                       Handle        = 0x87AF010A\n\tSQLITE_E_IOERR_SHORT_READ                                                 Handle        = 0x87AF020A\n\tSQLITE_E_IOERR_WRITE                                                      Handle        = 0x87AF030A\n\tSQLITE_E_IOERR_FSYNC                                                      Handle        = 0x87AF040A\n\tSQLITE_E_IOERR_DIR_FSYNC                                                  Handle        = 0x87AF050A\n\tSQLITE_E_IOERR_TRUNCATE                                                   Handle        = 0x87AF060A\n\tSQLITE_E_IOERR_FSTAT                                                      Handle        = 0x87AF070A\n\tSQLITE_E_IOERR_UNLOCK                                                     Handle        = 0x87AF080A\n\tSQLITE_E_IOERR_RDLOCK                                                     Handle        = 0x87AF090A\n\tSQLITE_E_IOERR_DELETE                                                     Handle        = 0x87AF0A0A\n\tSQLITE_E_IOERR_BLOCKED                                                    Handle        = 0x87AF0B0A\n\tSQLITE_E_IOERR_NOMEM                                                      Handle        = 0x87AF0C0A\n\tSQLITE_E_IOERR_ACCESS                                                     Handle        = 0x87AF0D0A\n\tSQLITE_E_IOERR_CHECKRESERVEDLOCK                                          Handle        = 0x87AF0E0A\n\tSQLITE_E_IOERR_LOCK                                                       Handle        = 0x87AF0F0A\n\tSQLITE_E_IOERR_CLOSE                                                      Handle        = 0x87AF100A\n\tSQLITE_E_IOERR_DIR_CLOSE                                                  Handle        = 0x87AF110A\n\tSQLITE_E_IOERR_SHMOPEN                                                    Handle        = 0x87AF120A\n\tSQLITE_E_IOERR_SHMSIZE                                                    Handle        = 0x87AF130A\n\tSQLITE_E_IOERR_SHMLOCK                                                    Handle        = 0x87AF140A\n\tSQLITE_E_IOERR_SHMMAP                                                     Handle        = 0x87AF150A\n\tSQLITE_E_IOERR_SEEK                                                       Handle        = 0x87AF160A\n\tSQLITE_E_IOERR_DELETE_NOENT                                               Handle        = 0x87AF170A\n\tSQLITE_E_IOERR_MMAP                                                       Handle        = 0x87AF180A\n\tSQLITE_E_IOERR_GETTEMPPATH                                                Handle        = 0x87AF190A\n\tSQLITE_E_IOERR_CONVPATH                                                   Handle        = 0x87AF1A0A\n\tSQLITE_E_IOERR_VNODE                                                      Handle        = 0x87AF1A02\n\tSQLITE_E_IOERR_AUTH                                                       Handle        = 0x87AF1A03\n\tSQLITE_E_LOCKED_SHAREDCACHE                                               Handle        = 0x87AF0106\n\tSQLITE_E_BUSY_RECOVERY                                                    Handle        = 0x87AF0105\n\tSQLITE_E_BUSY_SNAPSHOT                                                    Handle        = 0x87AF0205\n\tSQLITE_E_CANTOPEN_NOTEMPDIR                                               Handle        = 0x87AF010E\n\tSQLITE_E_CANTOPEN_ISDIR                                                   Handle        = 0x87AF020E\n\tSQLITE_E_CANTOPEN_FULLPATH                                                Handle        = 0x87AF030E\n\tSQLITE_E_CANTOPEN_CONVPATH                                                Handle        = 0x87AF040E\n\tSQLITE_E_CORRUPT_VTAB                                                     Handle        = 0x87AF010B\n\tSQLITE_E_READONLY_RECOVERY                                                Handle        = 0x87AF0108\n\tSQLITE_E_READONLY_CANTLOCK                                                Handle        = 0x87AF0208\n\tSQLITE_E_READONLY_ROLLBACK                                                Handle        = 0x87AF0308\n\tSQLITE_E_READONLY_DBMOVED                                                 Handle        = 0x87AF0408\n\tSQLITE_E_ABORT_ROLLBACK                                                   Handle        = 0x87AF0204\n\tSQLITE_E_CONSTRAINT_CHECK                                                 Handle        = 0x87AF0113\n\tSQLITE_E_CONSTRAINT_COMMITHOOK                                            Handle        = 0x87AF0213\n\tSQLITE_E_CONSTRAINT_FOREIGNKEY                                            Handle        = 0x87AF0313\n\tSQLITE_E_CONSTRAINT_FUNCTION                                              Handle        = 0x87AF0413\n\tSQLITE_E_CONSTRAINT_NOTNULL                                               Handle        = 0x87AF0513\n\tSQLITE_E_CONSTRAINT_PRIMARYKEY                                            Handle        = 0x87AF0613\n\tSQLITE_E_CONSTRAINT_TRIGGER                                               Handle        = 0x87AF0713\n\tSQLITE_E_CONSTRAINT_UNIQUE                                                Handle        = 0x87AF0813\n\tSQLITE_E_CONSTRAINT_VTAB                                                  Handle        = 0x87AF0913\n\tSQLITE_E_CONSTRAINT_ROWID                                                 Handle        = 0x87AF0A13\n\tSQLITE_E_NOTICE_RECOVER_WAL                                               Handle        = 0x87AF011B\n\tSQLITE_E_NOTICE_RECOVER_ROLLBACK                                          Handle        = 0x87AF021B\n\tSQLITE_E_WARNING_AUTOINDEX                                                Handle        = 0x87AF011C\n\tUTC_E_TOGGLE_TRACE_STARTED                                                Handle        = 0x87C51001\n\tUTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT                                    Handle        = 0x87C51002\n\tUTC_E_AOT_NOT_RUNNING                                                     Handle        = 0x87C51003\n\tUTC_E_SCRIPT_TYPE_INVALID                                                 Handle        = 0x87C51004\n\tUTC_E_SCENARIODEF_NOT_FOUND                                               Handle        = 0x87C51005\n\tUTC_E_TRACEPROFILE_NOT_FOUND                                              Handle        = 0x87C51006\n\tUTC_E_FORWARDER_ALREADY_ENABLED                                           Handle        = 0x87C51007\n\tUTC_E_FORWARDER_ALREADY_DISABLED                                          Handle        = 0x87C51008\n\tUTC_E_EVENTLOG_ENTRY_MALFORMED                                            Handle        = 0x87C51009\n\tUTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH                                    Handle        = 0x87C5100A\n\tUTC_E_SCRIPT_TERMINATED                                                   Handle        = 0x87C5100B\n\tUTC_E_INVALID_CUSTOM_FILTER                                               Handle        = 0x87C5100C\n\tUTC_E_TRACE_NOT_RUNNING                                                   Handle        = 0x87C5100D\n\tUTC_E_REESCALATED_TOO_QUICKLY                                             Handle        = 0x87C5100E\n\tUTC_E_ESCALATION_ALREADY_RUNNING                                          Handle        = 0x87C5100F\n\tUTC_E_PERFTRACK_ALREADY_TRACING                                           Handle        = 0x87C51010\n\tUTC_E_REACHED_MAX_ESCALATIONS                                             Handle        = 0x87C51011\n\tUTC_E_FORWARDER_PRODUCER_MISMATCH                                         Handle        = 0x87C51012\n\tUTC_E_INTENTIONAL_SCRIPT_FAILURE                                          Handle        = 0x87C51013\n\tUTC_E_SQM_INIT_FAILED                                                     Handle        = 0x87C51014\n\tUTC_E_NO_WER_LOGGER_SUPPORTED                                             Handle        = 0x87C51015\n\tUTC_E_TRACERS_DONT_EXIST                                                  Handle        = 0x87C51016\n\tUTC_E_WINRT_INIT_FAILED                                                   Handle        = 0x87C51017\n\tUTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH                                  Handle        = 0x87C51018\n\tUTC_E_INVALID_FILTER                                                      Handle        = 0x87C51019\n\tUTC_E_EXE_TERMINATED                                                      Handle        = 0x87C5101A\n\tUTC_E_ESCALATION_NOT_AUTHORIZED                                           Handle        = 0x87C5101B\n\tUTC_E_SETUP_NOT_AUTHORIZED                                                Handle        = 0x87C5101C\n\tUTC_E_CHILD_PROCESS_FAILED                                                Handle        = 0x87C5101D\n\tUTC_E_COMMAND_LINE_NOT_AUTHORIZED                                         Handle        = 0x87C5101E\n\tUTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML                                     Handle        = 0x87C5101F\n\tUTC_E_ESCALATION_TIMED_OUT                                                Handle        = 0x87C51020\n\tUTC_E_SETUP_TIMED_OUT                                                     Handle        = 0x87C51021\n\tUTC_E_TRIGGER_MISMATCH                                                    Handle        = 0x87C51022\n\tUTC_E_TRIGGER_NOT_FOUND                                                   Handle        = 0x87C51023\n\tUTC_E_SIF_NOT_SUPPORTED                                                   Handle        = 0x87C51024\n\tUTC_E_DELAY_TERMINATED                                                    Handle        = 0x87C51025\n\tUTC_E_DEVICE_TICKET_ERROR                                                 Handle        = 0x87C51026\n\tUTC_E_TRACE_BUFFER_LIMIT_EXCEEDED                                         Handle        = 0x87C51027\n\tUTC_E_API_RESULT_UNAVAILABLE                                              Handle        = 0x87C51028\n\tUTC_E_RPC_TIMEOUT                                                         Handle        = 0x87C51029\n\tUTC_E_RPC_WAIT_FAILED                                                     Handle        = 0x87C5102A\n\tUTC_E_API_BUSY                                                            Handle        = 0x87C5102B\n\tUTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET                              Handle        = 0x87C5102C\n\tUTC_E_EXCLUSIVITY_NOT_AVAILABLE                                           Handle        = 0x87C5102D\n\tUTC_E_GETFILE_FILE_PATH_NOT_APPROVED                                      Handle        = 0x87C5102E\n\tUTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS                                 Handle        = 0x87C5102F\n\tUTC_E_TIME_TRIGGER_ON_START_INVALID                                       Handle        = 0x87C51030\n\tUTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION                        Handle        = 0x87C51031\n\tUTC_E_TIME_TRIGGER_INVALID_TIME_RANGE                                     Handle        = 0x87C51032\n\tUTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE                               Handle        = 0x87C51033\n\tUTC_E_BINARY_MISSING                                                      Handle        = 0x87C51034\n\tUTC_E_NETWORK_CAPTURE_NOT_ALLOWED                                         Handle        = 0x87C51035\n\tUTC_E_FAILED_TO_RESOLVE_CONTAINER_ID                                      Handle        = 0x87C51036\n\tUTC_E_UNABLE_TO_RESOLVE_SESSION                                           Handle        = 0x87C51037\n\tUTC_E_THROTTLED                                                           Handle        = 0x87C51038\n\tUTC_E_UNAPPROVED_SCRIPT                                                   Handle        = 0x87C51039\n\tUTC_E_SCRIPT_MISSING                                                      Handle        = 0x87C5103A\n\tUTC_E_SCENARIO_THROTTLED                                                  Handle        = 0x87C5103B\n\tUTC_E_API_NOT_SUPPORTED                                                   Handle        = 0x87C5103C\n\tUTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED                                  Handle        = 0x87C5103D\n\tUTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED                                   Handle        = 0x87C5103E\n\tUTC_E_CERT_REV_FAILED                                                     Handle        = 0x87C5103F\n\tUTC_E_FAILED_TO_START_NDISCAP                                             Handle        = 0x87C51040\n\tUTC_E_KERNELDUMP_LIMIT_REACHED                                            Handle        = 0x87C51041\n\tUTC_E_MISSING_AGGREGATE_EVENT_TAG                                         Handle        = 0x87C51042\n\tUTC_E_INVALID_AGGREGATION_STRUCT                                          Handle        = 0x87C51043\n\tUTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION                                 Handle        = 0x87C51044\n\tUTC_E_FILTER_MISSING_ATTRIBUTE                                            Handle        = 0x87C51045\n\tUTC_E_FILTER_INVALID_TYPE                                                 Handle        = 0x87C51046\n\tUTC_E_FILTER_VARIABLE_NOT_FOUND                                           Handle        = 0x87C51047\n\tUTC_E_FILTER_FUNCTION_RESTRICTED                                          Handle        = 0x87C51048\n\tUTC_E_FILTER_VERSION_MISMATCH                                             Handle        = 0x87C51049\n\tUTC_E_FILTER_INVALID_FUNCTION                                             Handle        = 0x87C51050\n\tUTC_E_FILTER_INVALID_FUNCTION_PARAMS                                      Handle        = 0x87C51051\n\tUTC_E_FILTER_INVALID_COMMAND                                              Handle        = 0x87C51052\n\tUTC_E_FILTER_ILLEGAL_EVAL                                                 Handle        = 0x87C51053\n\tUTC_E_TTTRACER_RETURNED_ERROR                                             Handle        = 0x87C51054\n\tUTC_E_AGENT_DIAGNOSTICS_TOO_LARGE                                         Handle        = 0x87C51055\n\tUTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS                                 Handle        = 0x87C51056\n\tUTC_E_SCENARIO_HAS_NO_ACTIONS                                             Handle        = 0x87C51057\n\tUTC_E_TTTRACER_STORAGE_FULL                                               Handle        = 0x87C51058\n\tUTC_E_INSUFFICIENT_SPACE_TO_START_TRACE                                   Handle        = 0x87C51059\n\tUTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN                                    Handle        = 0x87C5105A\n\tUTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED                                 Handle        = 0x87C5105B\n\tUTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED                                   Handle        = 0x87C5105C\n\tWINML_ERR_INVALID_DEVICE                                                  Handle        = 0x88900001\n\tWINML_ERR_INVALID_BINDING                                                 Handle        = 0x88900002\n\tWINML_ERR_VALUE_NOTFOUND                                                  Handle        = 0x88900003\n\tWINML_ERR_SIZE_MISMATCH                                                   Handle        = 0x88900004\n\tSTATUS_WAIT_0                                                             NTStatus      = 0x00000000\n\tSTATUS_SUCCESS                                                            NTStatus      = 0x00000000\n\tSTATUS_WAIT_1                                                             NTStatus      = 0x00000001\n\tSTATUS_WAIT_2                                                             NTStatus      = 0x00000002\n\tSTATUS_WAIT_3                                                             NTStatus      = 0x00000003\n\tSTATUS_WAIT_63                                                            NTStatus      = 0x0000003F\n\tSTATUS_ABANDONED                                                          NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_0                                                   NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_63                                                  NTStatus      = 0x000000BF\n\tSTATUS_USER_APC                                                           NTStatus      = 0x000000C0\n\tSTATUS_ALREADY_COMPLETE                                                   NTStatus      = 0x000000FF\n\tSTATUS_KERNEL_APC                                                         NTStatus      = 0x00000100\n\tSTATUS_ALERTED                                                            NTStatus      = 0x00000101\n\tSTATUS_TIMEOUT                                                            NTStatus      = 0x00000102\n\tSTATUS_PENDING                                                            NTStatus      = 0x00000103\n\tSTATUS_REPARSE                                                            NTStatus      = 0x00000104\n\tSTATUS_MORE_ENTRIES                                                       NTStatus      = 0x00000105\n\tSTATUS_NOT_ALL_ASSIGNED                                                   NTStatus      = 0x00000106\n\tSTATUS_SOME_NOT_MAPPED                                                    NTStatus      = 0x00000107\n\tSTATUS_OPLOCK_BREAK_IN_PROGRESS                                           NTStatus      = 0x00000108\n\tSTATUS_VOLUME_MOUNTED                                                     NTStatus      = 0x00000109\n\tSTATUS_RXACT_COMMITTED                                                    NTStatus      = 0x0000010A\n\tSTATUS_NOTIFY_CLEANUP                                                     NTStatus      = 0x0000010B\n\tSTATUS_NOTIFY_ENUM_DIR                                                    NTStatus      = 0x0000010C\n\tSTATUS_NO_QUOTAS_FOR_ACCOUNT                                              NTStatus      = 0x0000010D\n\tSTATUS_PRIMARY_TRANSPORT_CONNECT_FAILED                                   NTStatus      = 0x0000010E\n\tSTATUS_PAGE_FAULT_TRANSITION                                              NTStatus      = 0x00000110\n\tSTATUS_PAGE_FAULT_DEMAND_ZERO                                             NTStatus      = 0x00000111\n\tSTATUS_PAGE_FAULT_COPY_ON_WRITE                                           NTStatus      = 0x00000112\n\tSTATUS_PAGE_FAULT_GUARD_PAGE                                              NTStatus      = 0x00000113\n\tSTATUS_PAGE_FAULT_PAGING_FILE                                             NTStatus      = 0x00000114\n\tSTATUS_CACHE_PAGE_LOCKED                                                  NTStatus      = 0x00000115\n\tSTATUS_CRASH_DUMP                                                         NTStatus      = 0x00000116\n\tSTATUS_BUFFER_ALL_ZEROS                                                   NTStatus      = 0x00000117\n\tSTATUS_REPARSE_OBJECT                                                     NTStatus      = 0x00000118\n\tSTATUS_RESOURCE_REQUIREMENTS_CHANGED                                      NTStatus      = 0x00000119\n\tSTATUS_TRANSLATION_COMPLETE                                               NTStatus      = 0x00000120\n\tSTATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY                                    NTStatus      = 0x00000121\n\tSTATUS_NOTHING_TO_TERMINATE                                               NTStatus      = 0x00000122\n\tSTATUS_PROCESS_NOT_IN_JOB                                                 NTStatus      = 0x00000123\n\tSTATUS_PROCESS_IN_JOB                                                     NTStatus      = 0x00000124\n\tSTATUS_VOLSNAP_HIBERNATE_READY                                            NTStatus      = 0x00000125\n\tSTATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                 NTStatus      = 0x00000126\n\tSTATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED                                 NTStatus      = 0x00000127\n\tSTATUS_INTERRUPT_STILL_CONNECTED                                          NTStatus      = 0x00000128\n\tSTATUS_PROCESS_CLONED                                                     NTStatus      = 0x00000129\n\tSTATUS_FILE_LOCKED_WITH_ONLY_READERS                                      NTStatus      = 0x0000012A\n\tSTATUS_FILE_LOCKED_WITH_WRITERS                                           NTStatus      = 0x0000012B\n\tSTATUS_VALID_IMAGE_HASH                                                   NTStatus      = 0x0000012C\n\tSTATUS_VALID_CATALOG_HASH                                                 NTStatus      = 0x0000012D\n\tSTATUS_VALID_STRONG_CODE_HASH                                             NTStatus      = 0x0000012E\n\tSTATUS_GHOSTED                                                            NTStatus      = 0x0000012F\n\tSTATUS_DATA_OVERWRITTEN                                                   NTStatus      = 0x00000130\n\tSTATUS_RESOURCEMANAGER_READ_ONLY                                          NTStatus      = 0x00000202\n\tSTATUS_RING_PREVIOUSLY_EMPTY                                              NTStatus      = 0x00000210\n\tSTATUS_RING_PREVIOUSLY_FULL                                               NTStatus      = 0x00000211\n\tSTATUS_RING_PREVIOUSLY_ABOVE_QUOTA                                        NTStatus      = 0x00000212\n\tSTATUS_RING_NEWLY_EMPTY                                                   NTStatus      = 0x00000213\n\tSTATUS_RING_SIGNAL_OPPOSITE_ENDPOINT                                      NTStatus      = 0x00000214\n\tSTATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE                                      NTStatus      = 0x00000215\n\tSTATUS_OPLOCK_HANDLE_CLOSED                                               NTStatus      = 0x00000216\n\tSTATUS_WAIT_FOR_OPLOCK                                                    NTStatus      = 0x00000367\n\tSTATUS_REPARSE_GLOBAL                                                     NTStatus      = 0x00000368\n\tSTATUS_FLT_IO_COMPLETE                                                    NTStatus      = 0x001C0001\n\tSTATUS_OBJECT_NAME_EXISTS                                                 NTStatus      = 0x40000000\n\tSTATUS_THREAD_WAS_SUSPENDED                                               NTStatus      = 0x40000001\n\tSTATUS_WORKING_SET_LIMIT_RANGE                                            NTStatus      = 0x40000002\n\tSTATUS_IMAGE_NOT_AT_BASE                                                  NTStatus      = 0x40000003\n\tSTATUS_RXACT_STATE_CREATED                                                NTStatus      = 0x40000004\n\tSTATUS_SEGMENT_NOTIFICATION                                               NTStatus      = 0x40000005\n\tSTATUS_LOCAL_USER_SESSION_KEY                                             NTStatus      = 0x40000006\n\tSTATUS_BAD_CURRENT_DIRECTORY                                              NTStatus      = 0x40000007\n\tSTATUS_SERIAL_MORE_WRITES                                                 NTStatus      = 0x40000008\n\tSTATUS_REGISTRY_RECOVERED                                                 NTStatus      = 0x40000009\n\tSTATUS_FT_READ_RECOVERY_FROM_BACKUP                                       NTStatus      = 0x4000000A\n\tSTATUS_FT_WRITE_RECOVERY                                                  NTStatus      = 0x4000000B\n\tSTATUS_SERIAL_COUNTER_TIMEOUT                                             NTStatus      = 0x4000000C\n\tSTATUS_NULL_LM_PASSWORD                                                   NTStatus      = 0x4000000D\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH                                        NTStatus      = 0x4000000E\n\tSTATUS_RECEIVE_PARTIAL                                                    NTStatus      = 0x4000000F\n\tSTATUS_RECEIVE_EXPEDITED                                                  NTStatus      = 0x40000010\n\tSTATUS_RECEIVE_PARTIAL_EXPEDITED                                          NTStatus      = 0x40000011\n\tSTATUS_EVENT_DONE                                                         NTStatus      = 0x40000012\n\tSTATUS_EVENT_PENDING                                                      NTStatus      = 0x40000013\n\tSTATUS_CHECKING_FILE_SYSTEM                                               NTStatus      = 0x40000014\n\tSTATUS_FATAL_APP_EXIT                                                     NTStatus      = 0x40000015\n\tSTATUS_PREDEFINED_HANDLE                                                  NTStatus      = 0x40000016\n\tSTATUS_WAS_UNLOCKED                                                       NTStatus      = 0x40000017\n\tSTATUS_SERVICE_NOTIFICATION                                               NTStatus      = 0x40000018\n\tSTATUS_WAS_LOCKED                                                         NTStatus      = 0x40000019\n\tSTATUS_LOG_HARD_ERROR                                                     NTStatus      = 0x4000001A\n\tSTATUS_ALREADY_WIN32                                                      NTStatus      = 0x4000001B\n\tSTATUS_WX86_UNSIMULATE                                                    NTStatus      = 0x4000001C\n\tSTATUS_WX86_CONTINUE                                                      NTStatus      = 0x4000001D\n\tSTATUS_WX86_SINGLE_STEP                                                   NTStatus      = 0x4000001E\n\tSTATUS_WX86_BREAKPOINT                                                    NTStatus      = 0x4000001F\n\tSTATUS_WX86_EXCEPTION_CONTINUE                                            NTStatus      = 0x40000020\n\tSTATUS_WX86_EXCEPTION_LASTCHANCE                                          NTStatus      = 0x40000021\n\tSTATUS_WX86_EXCEPTION_CHAIN                                               NTStatus      = 0x40000022\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                    NTStatus      = 0x40000023\n\tSTATUS_NO_YIELD_PERFORMED                                                 NTStatus      = 0x40000024\n\tSTATUS_TIMER_RESUME_IGNORED                                               NTStatus      = 0x40000025\n\tSTATUS_ARBITRATION_UNHANDLED                                              NTStatus      = 0x40000026\n\tSTATUS_CARDBUS_NOT_SUPPORTED                                              NTStatus      = 0x40000027\n\tSTATUS_WX86_CREATEWX86TIB                                                 NTStatus      = 0x40000028\n\tSTATUS_MP_PROCESSOR_MISMATCH                                              NTStatus      = 0x40000029\n\tSTATUS_HIBERNATED                                                         NTStatus      = 0x4000002A\n\tSTATUS_RESUME_HIBERNATION                                                 NTStatus      = 0x4000002B\n\tSTATUS_FIRMWARE_UPDATED                                                   NTStatus      = 0x4000002C\n\tSTATUS_DRIVERS_LEAKING_LOCKED_PAGES                                       NTStatus      = 0x4000002D\n\tSTATUS_MESSAGE_RETRIEVED                                                  NTStatus      = 0x4000002E\n\tSTATUS_SYSTEM_POWERSTATE_TRANSITION                                       NTStatus      = 0x4000002F\n\tSTATUS_ALPC_CHECK_COMPLETION_LIST                                         NTStatus      = 0x40000030\n\tSTATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                               NTStatus      = 0x40000031\n\tSTATUS_ACCESS_AUDIT_BY_POLICY                                             NTStatus      = 0x40000032\n\tSTATUS_ABANDON_HIBERFILE                                                  NTStatus      = 0x40000033\n\tSTATUS_BIZRULES_NOT_ENABLED                                               NTStatus      = 0x40000034\n\tSTATUS_FT_READ_FROM_COPY                                                  NTStatus      = 0x40000035\n\tSTATUS_IMAGE_AT_DIFFERENT_BASE                                            NTStatus      = 0x40000036\n\tSTATUS_PATCH_DEFERRED                                                     NTStatus      = 0x40000037\n\tSTATUS_HEURISTIC_DAMAGE_POSSIBLE                                          NTStatus      = 0x40190001\n\tSTATUS_GUARD_PAGE_VIOLATION                                               NTStatus      = 0x80000001\n\tSTATUS_DATATYPE_MISALIGNMENT                                              NTStatus      = 0x80000002\n\tSTATUS_BREAKPOINT                                                         NTStatus      = 0x80000003\n\tSTATUS_SINGLE_STEP                                                        NTStatus      = 0x80000004\n\tSTATUS_BUFFER_OVERFLOW                                                    NTStatus      = 0x80000005\n\tSTATUS_NO_MORE_FILES                                                      NTStatus      = 0x80000006\n\tSTATUS_WAKE_SYSTEM_DEBUGGER                                               NTStatus      = 0x80000007\n\tSTATUS_HANDLES_CLOSED                                                     NTStatus      = 0x8000000A\n\tSTATUS_NO_INHERITANCE                                                     NTStatus      = 0x8000000B\n\tSTATUS_GUID_SUBSTITUTION_MADE                                             NTStatus      = 0x8000000C\n\tSTATUS_PARTIAL_COPY                                                       NTStatus      = 0x8000000D\n\tSTATUS_DEVICE_PAPER_EMPTY                                                 NTStatus      = 0x8000000E\n\tSTATUS_DEVICE_POWERED_OFF                                                 NTStatus      = 0x8000000F\n\tSTATUS_DEVICE_OFF_LINE                                                    NTStatus      = 0x80000010\n\tSTATUS_DEVICE_BUSY                                                        NTStatus      = 0x80000011\n\tSTATUS_NO_MORE_EAS                                                        NTStatus      = 0x80000012\n\tSTATUS_INVALID_EA_NAME                                                    NTStatus      = 0x80000013\n\tSTATUS_EA_LIST_INCONSISTENT                                               NTStatus      = 0x80000014\n\tSTATUS_INVALID_EA_FLAG                                                    NTStatus      = 0x80000015\n\tSTATUS_VERIFY_REQUIRED                                                    NTStatus      = 0x80000016\n\tSTATUS_EXTRANEOUS_INFORMATION                                             NTStatus      = 0x80000017\n\tSTATUS_RXACT_COMMIT_NECESSARY                                             NTStatus      = 0x80000018\n\tSTATUS_NO_MORE_ENTRIES                                                    NTStatus      = 0x8000001A\n\tSTATUS_FILEMARK_DETECTED                                                  NTStatus      = 0x8000001B\n\tSTATUS_MEDIA_CHANGED                                                      NTStatus      = 0x8000001C\n\tSTATUS_BUS_RESET                                                          NTStatus      = 0x8000001D\n\tSTATUS_END_OF_MEDIA                                                       NTStatus      = 0x8000001E\n\tSTATUS_BEGINNING_OF_MEDIA                                                 NTStatus      = 0x8000001F\n\tSTATUS_MEDIA_CHECK                                                        NTStatus      = 0x80000020\n\tSTATUS_SETMARK_DETECTED                                                   NTStatus      = 0x80000021\n\tSTATUS_NO_DATA_DETECTED                                                   NTStatus      = 0x80000022\n\tSTATUS_REDIRECTOR_HAS_OPEN_HANDLES                                        NTStatus      = 0x80000023\n\tSTATUS_SERVER_HAS_OPEN_HANDLES                                            NTStatus      = 0x80000024\n\tSTATUS_ALREADY_DISCONNECTED                                               NTStatus      = 0x80000025\n\tSTATUS_LONGJUMP                                                           NTStatus      = 0x80000026\n\tSTATUS_CLEANER_CARTRIDGE_INSTALLED                                        NTStatus      = 0x80000027\n\tSTATUS_PLUGPLAY_QUERY_VETOED                                              NTStatus      = 0x80000028\n\tSTATUS_UNWIND_CONSOLIDATE                                                 NTStatus      = 0x80000029\n\tSTATUS_REGISTRY_HIVE_RECOVERED                                            NTStatus      = 0x8000002A\n\tSTATUS_DLL_MIGHT_BE_INSECURE                                              NTStatus      = 0x8000002B\n\tSTATUS_DLL_MIGHT_BE_INCOMPATIBLE                                          NTStatus      = 0x8000002C\n\tSTATUS_STOPPED_ON_SYMLINK                                                 NTStatus      = 0x8000002D\n\tSTATUS_CANNOT_GRANT_REQUESTED_OPLOCK                                      NTStatus      = 0x8000002E\n\tSTATUS_NO_ACE_CONDITION                                                   NTStatus      = 0x8000002F\n\tSTATUS_DEVICE_SUPPORT_IN_PROGRESS                                         NTStatus      = 0x80000030\n\tSTATUS_DEVICE_POWER_CYCLE_REQUIRED                                        NTStatus      = 0x80000031\n\tSTATUS_NO_WORK_DONE                                                       NTStatus      = 0x80000032\n\tSTATUS_CLUSTER_NODE_ALREADY_UP                                            NTStatus      = 0x80130001\n\tSTATUS_CLUSTER_NODE_ALREADY_DOWN                                          NTStatus      = 0x80130002\n\tSTATUS_CLUSTER_NETWORK_ALREADY_ONLINE                                     NTStatus      = 0x80130003\n\tSTATUS_CLUSTER_NETWORK_ALREADY_OFFLINE                                    NTStatus      = 0x80130004\n\tSTATUS_CLUSTER_NODE_ALREADY_MEMBER                                        NTStatus      = 0x80130005\n\tSTATUS_FLT_BUFFER_TOO_SMALL                                               NTStatus      = 0x801C0001\n\tSTATUS_FVE_PARTIAL_METADATA                                               NTStatus      = 0x80210001\n\tSTATUS_FVE_TRANSIENT_STATE                                                NTStatus      = 0x80210002\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                         NTStatus      = 0x8000CF00\n\tSTATUS_UNSUCCESSFUL                                                       NTStatus      = 0xC0000001\n\tSTATUS_NOT_IMPLEMENTED                                                    NTStatus      = 0xC0000002\n\tSTATUS_INVALID_INFO_CLASS                                                 NTStatus      = 0xC0000003\n\tSTATUS_INFO_LENGTH_MISMATCH                                               NTStatus      = 0xC0000004\n\tSTATUS_ACCESS_VIOLATION                                                   NTStatus      = 0xC0000005\n\tSTATUS_IN_PAGE_ERROR                                                      NTStatus      = 0xC0000006\n\tSTATUS_PAGEFILE_QUOTA                                                     NTStatus      = 0xC0000007\n\tSTATUS_INVALID_HANDLE                                                     NTStatus      = 0xC0000008\n\tSTATUS_BAD_INITIAL_STACK                                                  NTStatus      = 0xC0000009\n\tSTATUS_BAD_INITIAL_PC                                                     NTStatus      = 0xC000000A\n\tSTATUS_INVALID_CID                                                        NTStatus      = 0xC000000B\n\tSTATUS_TIMER_NOT_CANCELED                                                 NTStatus      = 0xC000000C\n\tSTATUS_INVALID_PARAMETER                                                  NTStatus      = 0xC000000D\n\tSTATUS_NO_SUCH_DEVICE                                                     NTStatus      = 0xC000000E\n\tSTATUS_NO_SUCH_FILE                                                       NTStatus      = 0xC000000F\n\tSTATUS_INVALID_DEVICE_REQUEST                                             NTStatus      = 0xC0000010\n\tSTATUS_END_OF_FILE                                                        NTStatus      = 0xC0000011\n\tSTATUS_WRONG_VOLUME                                                       NTStatus      = 0xC0000012\n\tSTATUS_NO_MEDIA_IN_DEVICE                                                 NTStatus      = 0xC0000013\n\tSTATUS_UNRECOGNIZED_MEDIA                                                 NTStatus      = 0xC0000014\n\tSTATUS_NONEXISTENT_SECTOR                                                 NTStatus      = 0xC0000015\n\tSTATUS_MORE_PROCESSING_REQUIRED                                           NTStatus      = 0xC0000016\n\tSTATUS_NO_MEMORY                                                          NTStatus      = 0xC0000017\n\tSTATUS_CONFLICTING_ADDRESSES                                              NTStatus      = 0xC0000018\n\tSTATUS_NOT_MAPPED_VIEW                                                    NTStatus      = 0xC0000019\n\tSTATUS_UNABLE_TO_FREE_VM                                                  NTStatus      = 0xC000001A\n\tSTATUS_UNABLE_TO_DELETE_SECTION                                           NTStatus      = 0xC000001B\n\tSTATUS_INVALID_SYSTEM_SERVICE                                             NTStatus      = 0xC000001C\n\tSTATUS_ILLEGAL_INSTRUCTION                                                NTStatus      = 0xC000001D\n\tSTATUS_INVALID_LOCK_SEQUENCE                                              NTStatus      = 0xC000001E\n\tSTATUS_INVALID_VIEW_SIZE                                                  NTStatus      = 0xC000001F\n\tSTATUS_INVALID_FILE_FOR_SECTION                                           NTStatus      = 0xC0000020\n\tSTATUS_ALREADY_COMMITTED                                                  NTStatus      = 0xC0000021\n\tSTATUS_ACCESS_DENIED                                                      NTStatus      = 0xC0000022\n\tSTATUS_BUFFER_TOO_SMALL                                                   NTStatus      = 0xC0000023\n\tSTATUS_OBJECT_TYPE_MISMATCH                                               NTStatus      = 0xC0000024\n\tSTATUS_NONCONTINUABLE_EXCEPTION                                           NTStatus      = 0xC0000025\n\tSTATUS_INVALID_DISPOSITION                                                NTStatus      = 0xC0000026\n\tSTATUS_UNWIND                                                             NTStatus      = 0xC0000027\n\tSTATUS_BAD_STACK                                                          NTStatus      = 0xC0000028\n\tSTATUS_INVALID_UNWIND_TARGET                                              NTStatus      = 0xC0000029\n\tSTATUS_NOT_LOCKED                                                         NTStatus      = 0xC000002A\n\tSTATUS_PARITY_ERROR                                                       NTStatus      = 0xC000002B\n\tSTATUS_UNABLE_TO_DECOMMIT_VM                                              NTStatus      = 0xC000002C\n\tSTATUS_NOT_COMMITTED                                                      NTStatus      = 0xC000002D\n\tSTATUS_INVALID_PORT_ATTRIBUTES                                            NTStatus      = 0xC000002E\n\tSTATUS_PORT_MESSAGE_TOO_LONG                                              NTStatus      = 0xC000002F\n\tSTATUS_INVALID_PARAMETER_MIX                                              NTStatus      = 0xC0000030\n\tSTATUS_INVALID_QUOTA_LOWER                                                NTStatus      = 0xC0000031\n\tSTATUS_DISK_CORRUPT_ERROR                                                 NTStatus      = 0xC0000032\n\tSTATUS_OBJECT_NAME_INVALID                                                NTStatus      = 0xC0000033\n\tSTATUS_OBJECT_NAME_NOT_FOUND                                              NTStatus      = 0xC0000034\n\tSTATUS_OBJECT_NAME_COLLISION                                              NTStatus      = 0xC0000035\n\tSTATUS_PORT_DO_NOT_DISTURB                                                NTStatus      = 0xC0000036\n\tSTATUS_PORT_DISCONNECTED                                                  NTStatus      = 0xC0000037\n\tSTATUS_DEVICE_ALREADY_ATTACHED                                            NTStatus      = 0xC0000038\n\tSTATUS_OBJECT_PATH_INVALID                                                NTStatus      = 0xC0000039\n\tSTATUS_OBJECT_PATH_NOT_FOUND                                              NTStatus      = 0xC000003A\n\tSTATUS_OBJECT_PATH_SYNTAX_BAD                                             NTStatus      = 0xC000003B\n\tSTATUS_DATA_OVERRUN                                                       NTStatus      = 0xC000003C\n\tSTATUS_DATA_LATE_ERROR                                                    NTStatus      = 0xC000003D\n\tSTATUS_DATA_ERROR                                                         NTStatus      = 0xC000003E\n\tSTATUS_CRC_ERROR                                                          NTStatus      = 0xC000003F\n\tSTATUS_SECTION_TOO_BIG                                                    NTStatus      = 0xC0000040\n\tSTATUS_PORT_CONNECTION_REFUSED                                            NTStatus      = 0xC0000041\n\tSTATUS_INVALID_PORT_HANDLE                                                NTStatus      = 0xC0000042\n\tSTATUS_SHARING_VIOLATION                                                  NTStatus      = 0xC0000043\n\tSTATUS_QUOTA_EXCEEDED                                                     NTStatus      = 0xC0000044\n\tSTATUS_INVALID_PAGE_PROTECTION                                            NTStatus      = 0xC0000045\n\tSTATUS_MUTANT_NOT_OWNED                                                   NTStatus      = 0xC0000046\n\tSTATUS_SEMAPHORE_LIMIT_EXCEEDED                                           NTStatus      = 0xC0000047\n\tSTATUS_PORT_ALREADY_SET                                                   NTStatus      = 0xC0000048\n\tSTATUS_SECTION_NOT_IMAGE                                                  NTStatus      = 0xC0000049\n\tSTATUS_SUSPEND_COUNT_EXCEEDED                                             NTStatus      = 0xC000004A\n\tSTATUS_THREAD_IS_TERMINATING                                              NTStatus      = 0xC000004B\n\tSTATUS_BAD_WORKING_SET_LIMIT                                              NTStatus      = 0xC000004C\n\tSTATUS_INCOMPATIBLE_FILE_MAP                                              NTStatus      = 0xC000004D\n\tSTATUS_SECTION_PROTECTION                                                 NTStatus      = 0xC000004E\n\tSTATUS_EAS_NOT_SUPPORTED                                                  NTStatus      = 0xC000004F\n\tSTATUS_EA_TOO_LARGE                                                       NTStatus      = 0xC0000050\n\tSTATUS_NONEXISTENT_EA_ENTRY                                               NTStatus      = 0xC0000051\n\tSTATUS_NO_EAS_ON_FILE                                                     NTStatus      = 0xC0000052\n\tSTATUS_EA_CORRUPT_ERROR                                                   NTStatus      = 0xC0000053\n\tSTATUS_FILE_LOCK_CONFLICT                                                 NTStatus      = 0xC0000054\n\tSTATUS_LOCK_NOT_GRANTED                                                   NTStatus      = 0xC0000055\n\tSTATUS_DELETE_PENDING                                                     NTStatus      = 0xC0000056\n\tSTATUS_CTL_FILE_NOT_SUPPORTED                                             NTStatus      = 0xC0000057\n\tSTATUS_UNKNOWN_REVISION                                                   NTStatus      = 0xC0000058\n\tSTATUS_REVISION_MISMATCH                                                  NTStatus      = 0xC0000059\n\tSTATUS_INVALID_OWNER                                                      NTStatus      = 0xC000005A\n\tSTATUS_INVALID_PRIMARY_GROUP                                              NTStatus      = 0xC000005B\n\tSTATUS_NO_IMPERSONATION_TOKEN                                             NTStatus      = 0xC000005C\n\tSTATUS_CANT_DISABLE_MANDATORY                                             NTStatus      = 0xC000005D\n\tSTATUS_NO_LOGON_SERVERS                                                   NTStatus      = 0xC000005E\n\tSTATUS_NO_SUCH_LOGON_SESSION                                              NTStatus      = 0xC000005F\n\tSTATUS_NO_SUCH_PRIVILEGE                                                  NTStatus      = 0xC0000060\n\tSTATUS_PRIVILEGE_NOT_HELD                                                 NTStatus      = 0xC0000061\n\tSTATUS_INVALID_ACCOUNT_NAME                                               NTStatus      = 0xC0000062\n\tSTATUS_USER_EXISTS                                                        NTStatus      = 0xC0000063\n\tSTATUS_NO_SUCH_USER                                                       NTStatus      = 0xC0000064\n\tSTATUS_GROUP_EXISTS                                                       NTStatus      = 0xC0000065\n\tSTATUS_NO_SUCH_GROUP                                                      NTStatus      = 0xC0000066\n\tSTATUS_MEMBER_IN_GROUP                                                    NTStatus      = 0xC0000067\n\tSTATUS_MEMBER_NOT_IN_GROUP                                                NTStatus      = 0xC0000068\n\tSTATUS_LAST_ADMIN                                                         NTStatus      = 0xC0000069\n\tSTATUS_WRONG_PASSWORD                                                     NTStatus      = 0xC000006A\n\tSTATUS_ILL_FORMED_PASSWORD                                                NTStatus      = 0xC000006B\n\tSTATUS_PASSWORD_RESTRICTION                                               NTStatus      = 0xC000006C\n\tSTATUS_LOGON_FAILURE                                                      NTStatus      = 0xC000006D\n\tSTATUS_ACCOUNT_RESTRICTION                                                NTStatus      = 0xC000006E\n\tSTATUS_INVALID_LOGON_HOURS                                                NTStatus      = 0xC000006F\n\tSTATUS_INVALID_WORKSTATION                                                NTStatus      = 0xC0000070\n\tSTATUS_PASSWORD_EXPIRED                                                   NTStatus      = 0xC0000071\n\tSTATUS_ACCOUNT_DISABLED                                                   NTStatus      = 0xC0000072\n\tSTATUS_NONE_MAPPED                                                        NTStatus      = 0xC0000073\n\tSTATUS_TOO_MANY_LUIDS_REQUESTED                                           NTStatus      = 0xC0000074\n\tSTATUS_LUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000075\n\tSTATUS_INVALID_SUB_AUTHORITY                                              NTStatus      = 0xC0000076\n\tSTATUS_INVALID_ACL                                                        NTStatus      = 0xC0000077\n\tSTATUS_INVALID_SID                                                        NTStatus      = 0xC0000078\n\tSTATUS_INVALID_SECURITY_DESCR                                             NTStatus      = 0xC0000079\n\tSTATUS_PROCEDURE_NOT_FOUND                                                NTStatus      = 0xC000007A\n\tSTATUS_INVALID_IMAGE_FORMAT                                               NTStatus      = 0xC000007B\n\tSTATUS_NO_TOKEN                                                           NTStatus      = 0xC000007C\n\tSTATUS_BAD_INHERITANCE_ACL                                                NTStatus      = 0xC000007D\n\tSTATUS_RANGE_NOT_LOCKED                                                   NTStatus      = 0xC000007E\n\tSTATUS_DISK_FULL                                                          NTStatus      = 0xC000007F\n\tSTATUS_SERVER_DISABLED                                                    NTStatus      = 0xC0000080\n\tSTATUS_SERVER_NOT_DISABLED                                                NTStatus      = 0xC0000081\n\tSTATUS_TOO_MANY_GUIDS_REQUESTED                                           NTStatus      = 0xC0000082\n\tSTATUS_GUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000083\n\tSTATUS_INVALID_ID_AUTHORITY                                               NTStatus      = 0xC0000084\n\tSTATUS_AGENTS_EXHAUSTED                                                   NTStatus      = 0xC0000085\n\tSTATUS_INVALID_VOLUME_LABEL                                               NTStatus      = 0xC0000086\n\tSTATUS_SECTION_NOT_EXTENDED                                               NTStatus      = 0xC0000087\n\tSTATUS_NOT_MAPPED_DATA                                                    NTStatus      = 0xC0000088\n\tSTATUS_RESOURCE_DATA_NOT_FOUND                                            NTStatus      = 0xC0000089\n\tSTATUS_RESOURCE_TYPE_NOT_FOUND                                            NTStatus      = 0xC000008A\n\tSTATUS_RESOURCE_NAME_NOT_FOUND                                            NTStatus      = 0xC000008B\n\tSTATUS_ARRAY_BOUNDS_EXCEEDED                                              NTStatus      = 0xC000008C\n\tSTATUS_FLOAT_DENORMAL_OPERAND                                             NTStatus      = 0xC000008D\n\tSTATUS_FLOAT_DIVIDE_BY_ZERO                                               NTStatus      = 0xC000008E\n\tSTATUS_FLOAT_INEXACT_RESULT                                               NTStatus      = 0xC000008F\n\tSTATUS_FLOAT_INVALID_OPERATION                                            NTStatus      = 0xC0000090\n\tSTATUS_FLOAT_OVERFLOW                                                     NTStatus      = 0xC0000091\n\tSTATUS_FLOAT_STACK_CHECK                                                  NTStatus      = 0xC0000092\n\tSTATUS_FLOAT_UNDERFLOW                                                    NTStatus      = 0xC0000093\n\tSTATUS_INTEGER_DIVIDE_BY_ZERO                                             NTStatus      = 0xC0000094\n\tSTATUS_INTEGER_OVERFLOW                                                   NTStatus      = 0xC0000095\n\tSTATUS_PRIVILEGED_INSTRUCTION                                             NTStatus      = 0xC0000096\n\tSTATUS_TOO_MANY_PAGING_FILES                                              NTStatus      = 0xC0000097\n\tSTATUS_FILE_INVALID                                                       NTStatus      = 0xC0000098\n\tSTATUS_ALLOTTED_SPACE_EXCEEDED                                            NTStatus      = 0xC0000099\n\tSTATUS_INSUFFICIENT_RESOURCES                                             NTStatus      = 0xC000009A\n\tSTATUS_DFS_EXIT_PATH_FOUND                                                NTStatus      = 0xC000009B\n\tSTATUS_DEVICE_DATA_ERROR                                                  NTStatus      = 0xC000009C\n\tSTATUS_DEVICE_NOT_CONNECTED                                               NTStatus      = 0xC000009D\n\tSTATUS_DEVICE_POWER_FAILURE                                               NTStatus      = 0xC000009E\n\tSTATUS_FREE_VM_NOT_AT_BASE                                                NTStatus      = 0xC000009F\n\tSTATUS_MEMORY_NOT_ALLOCATED                                               NTStatus      = 0xC00000A0\n\tSTATUS_WORKING_SET_QUOTA                                                  NTStatus      = 0xC00000A1\n\tSTATUS_MEDIA_WRITE_PROTECTED                                              NTStatus      = 0xC00000A2\n\tSTATUS_DEVICE_NOT_READY                                                   NTStatus      = 0xC00000A3\n\tSTATUS_INVALID_GROUP_ATTRIBUTES                                           NTStatus      = 0xC00000A4\n\tSTATUS_BAD_IMPERSONATION_LEVEL                                            NTStatus      = 0xC00000A5\n\tSTATUS_CANT_OPEN_ANONYMOUS                                                NTStatus      = 0xC00000A6\n\tSTATUS_BAD_VALIDATION_CLASS                                               NTStatus      = 0xC00000A7\n\tSTATUS_BAD_TOKEN_TYPE                                                     NTStatus      = 0xC00000A8\n\tSTATUS_BAD_MASTER_BOOT_RECORD                                             NTStatus      = 0xC00000A9\n\tSTATUS_INSTRUCTION_MISALIGNMENT                                           NTStatus      = 0xC00000AA\n\tSTATUS_INSTANCE_NOT_AVAILABLE                                             NTStatus      = 0xC00000AB\n\tSTATUS_PIPE_NOT_AVAILABLE                                                 NTStatus      = 0xC00000AC\n\tSTATUS_INVALID_PIPE_STATE                                                 NTStatus      = 0xC00000AD\n\tSTATUS_PIPE_BUSY                                                          NTStatus      = 0xC00000AE\n\tSTATUS_ILLEGAL_FUNCTION                                                   NTStatus      = 0xC00000AF\n\tSTATUS_PIPE_DISCONNECTED                                                  NTStatus      = 0xC00000B0\n\tSTATUS_PIPE_CLOSING                                                       NTStatus      = 0xC00000B1\n\tSTATUS_PIPE_CONNECTED                                                     NTStatus      = 0xC00000B2\n\tSTATUS_PIPE_LISTENING                                                     NTStatus      = 0xC00000B3\n\tSTATUS_INVALID_READ_MODE                                                  NTStatus      = 0xC00000B4\n\tSTATUS_IO_TIMEOUT                                                         NTStatus      = 0xC00000B5\n\tSTATUS_FILE_FORCED_CLOSED                                                 NTStatus      = 0xC00000B6\n\tSTATUS_PROFILING_NOT_STARTED                                              NTStatus      = 0xC00000B7\n\tSTATUS_PROFILING_NOT_STOPPED                                              NTStatus      = 0xC00000B8\n\tSTATUS_COULD_NOT_INTERPRET                                                NTStatus      = 0xC00000B9\n\tSTATUS_FILE_IS_A_DIRECTORY                                                NTStatus      = 0xC00000BA\n\tSTATUS_NOT_SUPPORTED                                                      NTStatus      = 0xC00000BB\n\tSTATUS_REMOTE_NOT_LISTENING                                               NTStatus      = 0xC00000BC\n\tSTATUS_DUPLICATE_NAME                                                     NTStatus      = 0xC00000BD\n\tSTATUS_BAD_NETWORK_PATH                                                   NTStatus      = 0xC00000BE\n\tSTATUS_NETWORK_BUSY                                                       NTStatus      = 0xC00000BF\n\tSTATUS_DEVICE_DOES_NOT_EXIST                                              NTStatus      = 0xC00000C0\n\tSTATUS_TOO_MANY_COMMANDS                                                  NTStatus      = 0xC00000C1\n\tSTATUS_ADAPTER_HARDWARE_ERROR                                             NTStatus      = 0xC00000C2\n\tSTATUS_INVALID_NETWORK_RESPONSE                                           NTStatus      = 0xC00000C3\n\tSTATUS_UNEXPECTED_NETWORK_ERROR                                           NTStatus      = 0xC00000C4\n\tSTATUS_BAD_REMOTE_ADAPTER                                                 NTStatus      = 0xC00000C5\n\tSTATUS_PRINT_QUEUE_FULL                                                   NTStatus      = 0xC00000C6\n\tSTATUS_NO_SPOOL_SPACE                                                     NTStatus      = 0xC00000C7\n\tSTATUS_PRINT_CANCELLED                                                    NTStatus      = 0xC00000C8\n\tSTATUS_NETWORK_NAME_DELETED                                               NTStatus      = 0xC00000C9\n\tSTATUS_NETWORK_ACCESS_DENIED                                              NTStatus      = 0xC00000CA\n\tSTATUS_BAD_DEVICE_TYPE                                                    NTStatus      = 0xC00000CB\n\tSTATUS_BAD_NETWORK_NAME                                                   NTStatus      = 0xC00000CC\n\tSTATUS_TOO_MANY_NAMES                                                     NTStatus      = 0xC00000CD\n\tSTATUS_TOO_MANY_SESSIONS                                                  NTStatus      = 0xC00000CE\n\tSTATUS_SHARING_PAUSED                                                     NTStatus      = 0xC00000CF\n\tSTATUS_REQUEST_NOT_ACCEPTED                                               NTStatus      = 0xC00000D0\n\tSTATUS_REDIRECTOR_PAUSED                                                  NTStatus      = 0xC00000D1\n\tSTATUS_NET_WRITE_FAULT                                                    NTStatus      = 0xC00000D2\n\tSTATUS_PROFILING_AT_LIMIT                                                 NTStatus      = 0xC00000D3\n\tSTATUS_NOT_SAME_DEVICE                                                    NTStatus      = 0xC00000D4\n\tSTATUS_FILE_RENAMED                                                       NTStatus      = 0xC00000D5\n\tSTATUS_VIRTUAL_CIRCUIT_CLOSED                                             NTStatus      = 0xC00000D6\n\tSTATUS_NO_SECURITY_ON_OBJECT                                              NTStatus      = 0xC00000D7\n\tSTATUS_CANT_WAIT                                                          NTStatus      = 0xC00000D8\n\tSTATUS_PIPE_EMPTY                                                         NTStatus      = 0xC00000D9\n\tSTATUS_CANT_ACCESS_DOMAIN_INFO                                            NTStatus      = 0xC00000DA\n\tSTATUS_CANT_TERMINATE_SELF                                                NTStatus      = 0xC00000DB\n\tSTATUS_INVALID_SERVER_STATE                                               NTStatus      = 0xC00000DC\n\tSTATUS_INVALID_DOMAIN_STATE                                               NTStatus      = 0xC00000DD\n\tSTATUS_INVALID_DOMAIN_ROLE                                                NTStatus      = 0xC00000DE\n\tSTATUS_NO_SUCH_DOMAIN                                                     NTStatus      = 0xC00000DF\n\tSTATUS_DOMAIN_EXISTS                                                      NTStatus      = 0xC00000E0\n\tSTATUS_DOMAIN_LIMIT_EXCEEDED                                              NTStatus      = 0xC00000E1\n\tSTATUS_OPLOCK_NOT_GRANTED                                                 NTStatus      = 0xC00000E2\n\tSTATUS_INVALID_OPLOCK_PROTOCOL                                            NTStatus      = 0xC00000E3\n\tSTATUS_INTERNAL_DB_CORRUPTION                                             NTStatus      = 0xC00000E4\n\tSTATUS_INTERNAL_ERROR                                                     NTStatus      = 0xC00000E5\n\tSTATUS_GENERIC_NOT_MAPPED                                                 NTStatus      = 0xC00000E6\n\tSTATUS_BAD_DESCRIPTOR_FORMAT                                              NTStatus      = 0xC00000E7\n\tSTATUS_INVALID_USER_BUFFER                                                NTStatus      = 0xC00000E8\n\tSTATUS_UNEXPECTED_IO_ERROR                                                NTStatus      = 0xC00000E9\n\tSTATUS_UNEXPECTED_MM_CREATE_ERR                                           NTStatus      = 0xC00000EA\n\tSTATUS_UNEXPECTED_MM_MAP_ERROR                                            NTStatus      = 0xC00000EB\n\tSTATUS_UNEXPECTED_MM_EXTEND_ERR                                           NTStatus      = 0xC00000EC\n\tSTATUS_NOT_LOGON_PROCESS                                                  NTStatus      = 0xC00000ED\n\tSTATUS_LOGON_SESSION_EXISTS                                               NTStatus      = 0xC00000EE\n\tSTATUS_INVALID_PARAMETER_1                                                NTStatus      = 0xC00000EF\n\tSTATUS_INVALID_PARAMETER_2                                                NTStatus      = 0xC00000F0\n\tSTATUS_INVALID_PARAMETER_3                                                NTStatus      = 0xC00000F1\n\tSTATUS_INVALID_PARAMETER_4                                                NTStatus      = 0xC00000F2\n\tSTATUS_INVALID_PARAMETER_5                                                NTStatus      = 0xC00000F3\n\tSTATUS_INVALID_PARAMETER_6                                                NTStatus      = 0xC00000F4\n\tSTATUS_INVALID_PARAMETER_7                                                NTStatus      = 0xC00000F5\n\tSTATUS_INVALID_PARAMETER_8                                                NTStatus      = 0xC00000F6\n\tSTATUS_INVALID_PARAMETER_9                                                NTStatus      = 0xC00000F7\n\tSTATUS_INVALID_PARAMETER_10                                               NTStatus      = 0xC00000F8\n\tSTATUS_INVALID_PARAMETER_11                                               NTStatus      = 0xC00000F9\n\tSTATUS_INVALID_PARAMETER_12                                               NTStatus      = 0xC00000FA\n\tSTATUS_REDIRECTOR_NOT_STARTED                                             NTStatus      = 0xC00000FB\n\tSTATUS_REDIRECTOR_STARTED                                                 NTStatus      = 0xC00000FC\n\tSTATUS_STACK_OVERFLOW                                                     NTStatus      = 0xC00000FD\n\tSTATUS_NO_SUCH_PACKAGE                                                    NTStatus      = 0xC00000FE\n\tSTATUS_BAD_FUNCTION_TABLE                                                 NTStatus      = 0xC00000FF\n\tSTATUS_VARIABLE_NOT_FOUND                                                 NTStatus      = 0xC0000100\n\tSTATUS_DIRECTORY_NOT_EMPTY                                                NTStatus      = 0xC0000101\n\tSTATUS_FILE_CORRUPT_ERROR                                                 NTStatus      = 0xC0000102\n\tSTATUS_NOT_A_DIRECTORY                                                    NTStatus      = 0xC0000103\n\tSTATUS_BAD_LOGON_SESSION_STATE                                            NTStatus      = 0xC0000104\n\tSTATUS_LOGON_SESSION_COLLISION                                            NTStatus      = 0xC0000105\n\tSTATUS_NAME_TOO_LONG                                                      NTStatus      = 0xC0000106\n\tSTATUS_FILES_OPEN                                                         NTStatus      = 0xC0000107\n\tSTATUS_CONNECTION_IN_USE                                                  NTStatus      = 0xC0000108\n\tSTATUS_MESSAGE_NOT_FOUND                                                  NTStatus      = 0xC0000109\n\tSTATUS_PROCESS_IS_TERMINATING                                             NTStatus      = 0xC000010A\n\tSTATUS_INVALID_LOGON_TYPE                                                 NTStatus      = 0xC000010B\n\tSTATUS_NO_GUID_TRANSLATION                                                NTStatus      = 0xC000010C\n\tSTATUS_CANNOT_IMPERSONATE                                                 NTStatus      = 0xC000010D\n\tSTATUS_IMAGE_ALREADY_LOADED                                               NTStatus      = 0xC000010E\n\tSTATUS_ABIOS_NOT_PRESENT                                                  NTStatus      = 0xC000010F\n\tSTATUS_ABIOS_LID_NOT_EXIST                                                NTStatus      = 0xC0000110\n\tSTATUS_ABIOS_LID_ALREADY_OWNED                                            NTStatus      = 0xC0000111\n\tSTATUS_ABIOS_NOT_LID_OWNER                                                NTStatus      = 0xC0000112\n\tSTATUS_ABIOS_INVALID_COMMAND                                              NTStatus      = 0xC0000113\n\tSTATUS_ABIOS_INVALID_LID                                                  NTStatus      = 0xC0000114\n\tSTATUS_ABIOS_SELECTOR_NOT_AVAILABLE                                       NTStatus      = 0xC0000115\n\tSTATUS_ABIOS_INVALID_SELECTOR                                             NTStatus      = 0xC0000116\n\tSTATUS_NO_LDT                                                             NTStatus      = 0xC0000117\n\tSTATUS_INVALID_LDT_SIZE                                                   NTStatus      = 0xC0000118\n\tSTATUS_INVALID_LDT_OFFSET                                                 NTStatus      = 0xC0000119\n\tSTATUS_INVALID_LDT_DESCRIPTOR                                             NTStatus      = 0xC000011A\n\tSTATUS_INVALID_IMAGE_NE_FORMAT                                            NTStatus      = 0xC000011B\n\tSTATUS_RXACT_INVALID_STATE                                                NTStatus      = 0xC000011C\n\tSTATUS_RXACT_COMMIT_FAILURE                                               NTStatus      = 0xC000011D\n\tSTATUS_MAPPED_FILE_SIZE_ZERO                                              NTStatus      = 0xC000011E\n\tSTATUS_TOO_MANY_OPENED_FILES                                              NTStatus      = 0xC000011F\n\tSTATUS_CANCELLED                                                          NTStatus      = 0xC0000120\n\tSTATUS_CANNOT_DELETE                                                      NTStatus      = 0xC0000121\n\tSTATUS_INVALID_COMPUTER_NAME                                              NTStatus      = 0xC0000122\n\tSTATUS_FILE_DELETED                                                       NTStatus      = 0xC0000123\n\tSTATUS_SPECIAL_ACCOUNT                                                    NTStatus      = 0xC0000124\n\tSTATUS_SPECIAL_GROUP                                                      NTStatus      = 0xC0000125\n\tSTATUS_SPECIAL_USER                                                       NTStatus      = 0xC0000126\n\tSTATUS_MEMBERS_PRIMARY_GROUP                                              NTStatus      = 0xC0000127\n\tSTATUS_FILE_CLOSED                                                        NTStatus      = 0xC0000128\n\tSTATUS_TOO_MANY_THREADS                                                   NTStatus      = 0xC0000129\n\tSTATUS_THREAD_NOT_IN_PROCESS                                              NTStatus      = 0xC000012A\n\tSTATUS_TOKEN_ALREADY_IN_USE                                               NTStatus      = 0xC000012B\n\tSTATUS_PAGEFILE_QUOTA_EXCEEDED                                            NTStatus      = 0xC000012C\n\tSTATUS_COMMITMENT_LIMIT                                                   NTStatus      = 0xC000012D\n\tSTATUS_INVALID_IMAGE_LE_FORMAT                                            NTStatus      = 0xC000012E\n\tSTATUS_INVALID_IMAGE_NOT_MZ                                               NTStatus      = 0xC000012F\n\tSTATUS_INVALID_IMAGE_PROTECT                                              NTStatus      = 0xC0000130\n\tSTATUS_INVALID_IMAGE_WIN_16                                               NTStatus      = 0xC0000131\n\tSTATUS_LOGON_SERVER_CONFLICT                                              NTStatus      = 0xC0000132\n\tSTATUS_TIME_DIFFERENCE_AT_DC                                              NTStatus      = 0xC0000133\n\tSTATUS_SYNCHRONIZATION_REQUIRED                                           NTStatus      = 0xC0000134\n\tSTATUS_DLL_NOT_FOUND                                                      NTStatus      = 0xC0000135\n\tSTATUS_OPEN_FAILED                                                        NTStatus      = 0xC0000136\n\tSTATUS_IO_PRIVILEGE_FAILED                                                NTStatus      = 0xC0000137\n\tSTATUS_ORDINAL_NOT_FOUND                                                  NTStatus      = 0xC0000138\n\tSTATUS_ENTRYPOINT_NOT_FOUND                                               NTStatus      = 0xC0000139\n\tSTATUS_CONTROL_C_EXIT                                                     NTStatus      = 0xC000013A\n\tSTATUS_LOCAL_DISCONNECT                                                   NTStatus      = 0xC000013B\n\tSTATUS_REMOTE_DISCONNECT                                                  NTStatus      = 0xC000013C\n\tSTATUS_REMOTE_RESOURCES                                                   NTStatus      = 0xC000013D\n\tSTATUS_LINK_FAILED                                                        NTStatus      = 0xC000013E\n\tSTATUS_LINK_TIMEOUT                                                       NTStatus      = 0xC000013F\n\tSTATUS_INVALID_CONNECTION                                                 NTStatus      = 0xC0000140\n\tSTATUS_INVALID_ADDRESS                                                    NTStatus      = 0xC0000141\n\tSTATUS_DLL_INIT_FAILED                                                    NTStatus      = 0xC0000142\n\tSTATUS_MISSING_SYSTEMFILE                                                 NTStatus      = 0xC0000143\n\tSTATUS_UNHANDLED_EXCEPTION                                                NTStatus      = 0xC0000144\n\tSTATUS_APP_INIT_FAILURE                                                   NTStatus      = 0xC0000145\n\tSTATUS_PAGEFILE_CREATE_FAILED                                             NTStatus      = 0xC0000146\n\tSTATUS_NO_PAGEFILE                                                        NTStatus      = 0xC0000147\n\tSTATUS_INVALID_LEVEL                                                      NTStatus      = 0xC0000148\n\tSTATUS_WRONG_PASSWORD_CORE                                                NTStatus      = 0xC0000149\n\tSTATUS_ILLEGAL_FLOAT_CONTEXT                                              NTStatus      = 0xC000014A\n\tSTATUS_PIPE_BROKEN                                                        NTStatus      = 0xC000014B\n\tSTATUS_REGISTRY_CORRUPT                                                   NTStatus      = 0xC000014C\n\tSTATUS_REGISTRY_IO_FAILED                                                 NTStatus      = 0xC000014D\n\tSTATUS_NO_EVENT_PAIR                                                      NTStatus      = 0xC000014E\n\tSTATUS_UNRECOGNIZED_VOLUME                                                NTStatus      = 0xC000014F\n\tSTATUS_SERIAL_NO_DEVICE_INITED                                            NTStatus      = 0xC0000150\n\tSTATUS_NO_SUCH_ALIAS                                                      NTStatus      = 0xC0000151\n\tSTATUS_MEMBER_NOT_IN_ALIAS                                                NTStatus      = 0xC0000152\n\tSTATUS_MEMBER_IN_ALIAS                                                    NTStatus      = 0xC0000153\n\tSTATUS_ALIAS_EXISTS                                                       NTStatus      = 0xC0000154\n\tSTATUS_LOGON_NOT_GRANTED                                                  NTStatus      = 0xC0000155\n\tSTATUS_TOO_MANY_SECRETS                                                   NTStatus      = 0xC0000156\n\tSTATUS_SECRET_TOO_LONG                                                    NTStatus      = 0xC0000157\n\tSTATUS_INTERNAL_DB_ERROR                                                  NTStatus      = 0xC0000158\n\tSTATUS_FULLSCREEN_MODE                                                    NTStatus      = 0xC0000159\n\tSTATUS_TOO_MANY_CONTEXT_IDS                                               NTStatus      = 0xC000015A\n\tSTATUS_LOGON_TYPE_NOT_GRANTED                                             NTStatus      = 0xC000015B\n\tSTATUS_NOT_REGISTRY_FILE                                                  NTStatus      = 0xC000015C\n\tSTATUS_NT_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000015D\n\tSTATUS_DOMAIN_CTRLR_CONFIG_ERROR                                          NTStatus      = 0xC000015E\n\tSTATUS_FT_MISSING_MEMBER                                                  NTStatus      = 0xC000015F\n\tSTATUS_ILL_FORMED_SERVICE_ENTRY                                           NTStatus      = 0xC0000160\n\tSTATUS_ILLEGAL_CHARACTER                                                  NTStatus      = 0xC0000161\n\tSTATUS_UNMAPPABLE_CHARACTER                                               NTStatus      = 0xC0000162\n\tSTATUS_UNDEFINED_CHARACTER                                                NTStatus      = 0xC0000163\n\tSTATUS_FLOPPY_VOLUME                                                      NTStatus      = 0xC0000164\n\tSTATUS_FLOPPY_ID_MARK_NOT_FOUND                                           NTStatus      = 0xC0000165\n\tSTATUS_FLOPPY_WRONG_CYLINDER                                              NTStatus      = 0xC0000166\n\tSTATUS_FLOPPY_UNKNOWN_ERROR                                               NTStatus      = 0xC0000167\n\tSTATUS_FLOPPY_BAD_REGISTERS                                               NTStatus      = 0xC0000168\n\tSTATUS_DISK_RECALIBRATE_FAILED                                            NTStatus      = 0xC0000169\n\tSTATUS_DISK_OPERATION_FAILED                                              NTStatus      = 0xC000016A\n\tSTATUS_DISK_RESET_FAILED                                                  NTStatus      = 0xC000016B\n\tSTATUS_SHARED_IRQ_BUSY                                                    NTStatus      = 0xC000016C\n\tSTATUS_FT_ORPHANING                                                       NTStatus      = 0xC000016D\n\tSTATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT                                   NTStatus      = 0xC000016E\n\tSTATUS_PARTITION_FAILURE                                                  NTStatus      = 0xC0000172\n\tSTATUS_INVALID_BLOCK_LENGTH                                               NTStatus      = 0xC0000173\n\tSTATUS_DEVICE_NOT_PARTITIONED                                             NTStatus      = 0xC0000174\n\tSTATUS_UNABLE_TO_LOCK_MEDIA                                               NTStatus      = 0xC0000175\n\tSTATUS_UNABLE_TO_UNLOAD_MEDIA                                             NTStatus      = 0xC0000176\n\tSTATUS_EOM_OVERFLOW                                                       NTStatus      = 0xC0000177\n\tSTATUS_NO_MEDIA                                                           NTStatus      = 0xC0000178\n\tSTATUS_NO_SUCH_MEMBER                                                     NTStatus      = 0xC000017A\n\tSTATUS_INVALID_MEMBER                                                     NTStatus      = 0xC000017B\n\tSTATUS_KEY_DELETED                                                        NTStatus      = 0xC000017C\n\tSTATUS_NO_LOG_SPACE                                                       NTStatus      = 0xC000017D\n\tSTATUS_TOO_MANY_SIDS                                                      NTStatus      = 0xC000017E\n\tSTATUS_LM_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000017F\n\tSTATUS_KEY_HAS_CHILDREN                                                   NTStatus      = 0xC0000180\n\tSTATUS_CHILD_MUST_BE_VOLATILE                                             NTStatus      = 0xC0000181\n\tSTATUS_DEVICE_CONFIGURATION_ERROR                                         NTStatus      = 0xC0000182\n\tSTATUS_DRIVER_INTERNAL_ERROR                                              NTStatus      = 0xC0000183\n\tSTATUS_INVALID_DEVICE_STATE                                               NTStatus      = 0xC0000184\n\tSTATUS_IO_DEVICE_ERROR                                                    NTStatus      = 0xC0000185\n\tSTATUS_DEVICE_PROTOCOL_ERROR                                              NTStatus      = 0xC0000186\n\tSTATUS_BACKUP_CONTROLLER                                                  NTStatus      = 0xC0000187\n\tSTATUS_LOG_FILE_FULL                                                      NTStatus      = 0xC0000188\n\tSTATUS_TOO_LATE                                                           NTStatus      = 0xC0000189\n\tSTATUS_NO_TRUST_LSA_SECRET                                                NTStatus      = 0xC000018A\n\tSTATUS_NO_TRUST_SAM_ACCOUNT                                               NTStatus      = 0xC000018B\n\tSTATUS_TRUSTED_DOMAIN_FAILURE                                             NTStatus      = 0xC000018C\n\tSTATUS_TRUSTED_RELATIONSHIP_FAILURE                                       NTStatus      = 0xC000018D\n\tSTATUS_EVENTLOG_FILE_CORRUPT                                              NTStatus      = 0xC000018E\n\tSTATUS_EVENTLOG_CANT_START                                                NTStatus      = 0xC000018F\n\tSTATUS_TRUST_FAILURE                                                      NTStatus      = 0xC0000190\n\tSTATUS_MUTANT_LIMIT_EXCEEDED                                              NTStatus      = 0xC0000191\n\tSTATUS_NETLOGON_NOT_STARTED                                               NTStatus      = 0xC0000192\n\tSTATUS_ACCOUNT_EXPIRED                                                    NTStatus      = 0xC0000193\n\tSTATUS_POSSIBLE_DEADLOCK                                                  NTStatus      = 0xC0000194\n\tSTATUS_NETWORK_CREDENTIAL_CONFLICT                                        NTStatus      = 0xC0000195\n\tSTATUS_REMOTE_SESSION_LIMIT                                               NTStatus      = 0xC0000196\n\tSTATUS_EVENTLOG_FILE_CHANGED                                              NTStatus      = 0xC0000197\n\tSTATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                  NTStatus      = 0xC0000198\n\tSTATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                  NTStatus      = 0xC0000199\n\tSTATUS_NOLOGON_SERVER_TRUST_ACCOUNT                                       NTStatus      = 0xC000019A\n\tSTATUS_DOMAIN_TRUST_INCONSISTENT                                          NTStatus      = 0xC000019B\n\tSTATUS_FS_DRIVER_REQUIRED                                                 NTStatus      = 0xC000019C\n\tSTATUS_IMAGE_ALREADY_LOADED_AS_DLL                                        NTStatus      = 0xC000019D\n\tSTATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING               NTStatus      = 0xC000019E\n\tSTATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                  NTStatus      = 0xC000019F\n\tSTATUS_SECURITY_STREAM_IS_INCONSISTENT                                    NTStatus      = 0xC00001A0\n\tSTATUS_INVALID_LOCK_RANGE                                                 NTStatus      = 0xC00001A1\n\tSTATUS_INVALID_ACE_CONDITION                                              NTStatus      = 0xC00001A2\n\tSTATUS_IMAGE_SUBSYSTEM_NOT_PRESENT                                        NTStatus      = 0xC00001A3\n\tSTATUS_NOTIFICATION_GUID_ALREADY_DEFINED                                  NTStatus      = 0xC00001A4\n\tSTATUS_INVALID_EXCEPTION_HANDLER                                          NTStatus      = 0xC00001A5\n\tSTATUS_DUPLICATE_PRIVILEGES                                               NTStatus      = 0xC00001A6\n\tSTATUS_NOT_ALLOWED_ON_SYSTEM_FILE                                         NTStatus      = 0xC00001A7\n\tSTATUS_REPAIR_NEEDED                                                      NTStatus      = 0xC00001A8\n\tSTATUS_QUOTA_NOT_ENABLED                                                  NTStatus      = 0xC00001A9\n\tSTATUS_NO_APPLICATION_PACKAGE                                             NTStatus      = 0xC00001AA\n\tSTATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                             NTStatus      = 0xC00001AB\n\tSTATUS_NOT_SAME_OBJECT                                                    NTStatus      = 0xC00001AC\n\tSTATUS_FATAL_MEMORY_EXHAUSTION                                            NTStatus      = 0xC00001AD\n\tSTATUS_ERROR_PROCESS_NOT_IN_JOB                                           NTStatus      = 0xC00001AE\n\tSTATUS_CPU_SET_INVALID                                                    NTStatus      = 0xC00001AF\n\tSTATUS_IO_DEVICE_INVALID_DATA                                             NTStatus      = 0xC00001B0\n\tSTATUS_IO_UNALIGNED_WRITE                                                 NTStatus      = 0xC00001B1\n\tSTATUS_NETWORK_OPEN_RESTRICTION                                           NTStatus      = 0xC0000201\n\tSTATUS_NO_USER_SESSION_KEY                                                NTStatus      = 0xC0000202\n\tSTATUS_USER_SESSION_DELETED                                               NTStatus      = 0xC0000203\n\tSTATUS_RESOURCE_LANG_NOT_FOUND                                            NTStatus      = 0xC0000204\n\tSTATUS_INSUFF_SERVER_RESOURCES                                            NTStatus      = 0xC0000205\n\tSTATUS_INVALID_BUFFER_SIZE                                                NTStatus      = 0xC0000206\n\tSTATUS_INVALID_ADDRESS_COMPONENT                                          NTStatus      = 0xC0000207\n\tSTATUS_INVALID_ADDRESS_WILDCARD                                           NTStatus      = 0xC0000208\n\tSTATUS_TOO_MANY_ADDRESSES                                                 NTStatus      = 0xC0000209\n\tSTATUS_ADDRESS_ALREADY_EXISTS                                             NTStatus      = 0xC000020A\n\tSTATUS_ADDRESS_CLOSED                                                     NTStatus      = 0xC000020B\n\tSTATUS_CONNECTION_DISCONNECTED                                            NTStatus      = 0xC000020C\n\tSTATUS_CONNECTION_RESET                                                   NTStatus      = 0xC000020D\n\tSTATUS_TOO_MANY_NODES                                                     NTStatus      = 0xC000020E\n\tSTATUS_TRANSACTION_ABORTED                                                NTStatus      = 0xC000020F\n\tSTATUS_TRANSACTION_TIMED_OUT                                              NTStatus      = 0xC0000210\n\tSTATUS_TRANSACTION_NO_RELEASE                                             NTStatus      = 0xC0000211\n\tSTATUS_TRANSACTION_NO_MATCH                                               NTStatus      = 0xC0000212\n\tSTATUS_TRANSACTION_RESPONDED                                              NTStatus      = 0xC0000213\n\tSTATUS_TRANSACTION_INVALID_ID                                             NTStatus      = 0xC0000214\n\tSTATUS_TRANSACTION_INVALID_TYPE                                           NTStatus      = 0xC0000215\n\tSTATUS_NOT_SERVER_SESSION                                                 NTStatus      = 0xC0000216\n\tSTATUS_NOT_CLIENT_SESSION                                                 NTStatus      = 0xC0000217\n\tSTATUS_CANNOT_LOAD_REGISTRY_FILE                                          NTStatus      = 0xC0000218\n\tSTATUS_DEBUG_ATTACH_FAILED                                                NTStatus      = 0xC0000219\n\tSTATUS_SYSTEM_PROCESS_TERMINATED                                          NTStatus      = 0xC000021A\n\tSTATUS_DATA_NOT_ACCEPTED                                                  NTStatus      = 0xC000021B\n\tSTATUS_NO_BROWSER_SERVERS_FOUND                                           NTStatus      = 0xC000021C\n\tSTATUS_VDM_HARD_ERROR                                                     NTStatus      = 0xC000021D\n\tSTATUS_DRIVER_CANCEL_TIMEOUT                                              NTStatus      = 0xC000021E\n\tSTATUS_REPLY_MESSAGE_MISMATCH                                             NTStatus      = 0xC000021F\n\tSTATUS_MAPPED_ALIGNMENT                                                   NTStatus      = 0xC0000220\n\tSTATUS_IMAGE_CHECKSUM_MISMATCH                                            NTStatus      = 0xC0000221\n\tSTATUS_LOST_WRITEBEHIND_DATA                                              NTStatus      = 0xC0000222\n\tSTATUS_CLIENT_SERVER_PARAMETERS_INVALID                                   NTStatus      = 0xC0000223\n\tSTATUS_PASSWORD_MUST_CHANGE                                               NTStatus      = 0xC0000224\n\tSTATUS_NOT_FOUND                                                          NTStatus      = 0xC0000225\n\tSTATUS_NOT_TINY_STREAM                                                    NTStatus      = 0xC0000226\n\tSTATUS_RECOVERY_FAILURE                                                   NTStatus      = 0xC0000227\n\tSTATUS_STACK_OVERFLOW_READ                                                NTStatus      = 0xC0000228\n\tSTATUS_FAIL_CHECK                                                         NTStatus      = 0xC0000229\n\tSTATUS_DUPLICATE_OBJECTID                                                 NTStatus      = 0xC000022A\n\tSTATUS_OBJECTID_EXISTS                                                    NTStatus      = 0xC000022B\n\tSTATUS_CONVERT_TO_LARGE                                                   NTStatus      = 0xC000022C\n\tSTATUS_RETRY                                                              NTStatus      = 0xC000022D\n\tSTATUS_FOUND_OUT_OF_SCOPE                                                 NTStatus      = 0xC000022E\n\tSTATUS_ALLOCATE_BUCKET                                                    NTStatus      = 0xC000022F\n\tSTATUS_PROPSET_NOT_FOUND                                                  NTStatus      = 0xC0000230\n\tSTATUS_MARSHALL_OVERFLOW                                                  NTStatus      = 0xC0000231\n\tSTATUS_INVALID_VARIANT                                                    NTStatus      = 0xC0000232\n\tSTATUS_DOMAIN_CONTROLLER_NOT_FOUND                                        NTStatus      = 0xC0000233\n\tSTATUS_ACCOUNT_LOCKED_OUT                                                 NTStatus      = 0xC0000234\n\tSTATUS_HANDLE_NOT_CLOSABLE                                                NTStatus      = 0xC0000235\n\tSTATUS_CONNECTION_REFUSED                                                 NTStatus      = 0xC0000236\n\tSTATUS_GRACEFUL_DISCONNECT                                                NTStatus      = 0xC0000237\n\tSTATUS_ADDRESS_ALREADY_ASSOCIATED                                         NTStatus      = 0xC0000238\n\tSTATUS_ADDRESS_NOT_ASSOCIATED                                             NTStatus      = 0xC0000239\n\tSTATUS_CONNECTION_INVALID                                                 NTStatus      = 0xC000023A\n\tSTATUS_CONNECTION_ACTIVE                                                  NTStatus      = 0xC000023B\n\tSTATUS_NETWORK_UNREACHABLE                                                NTStatus      = 0xC000023C\n\tSTATUS_HOST_UNREACHABLE                                                   NTStatus      = 0xC000023D\n\tSTATUS_PROTOCOL_UNREACHABLE                                               NTStatus      = 0xC000023E\n\tSTATUS_PORT_UNREACHABLE                                                   NTStatus      = 0xC000023F\n\tSTATUS_REQUEST_ABORTED                                                    NTStatus      = 0xC0000240\n\tSTATUS_CONNECTION_ABORTED                                                 NTStatus      = 0xC0000241\n\tSTATUS_BAD_COMPRESSION_BUFFER                                             NTStatus      = 0xC0000242\n\tSTATUS_USER_MAPPED_FILE                                                   NTStatus      = 0xC0000243\n\tSTATUS_AUDIT_FAILED                                                       NTStatus      = 0xC0000244\n\tSTATUS_TIMER_RESOLUTION_NOT_SET                                           NTStatus      = 0xC0000245\n\tSTATUS_CONNECTION_COUNT_LIMIT                                             NTStatus      = 0xC0000246\n\tSTATUS_LOGIN_TIME_RESTRICTION                                             NTStatus      = 0xC0000247\n\tSTATUS_LOGIN_WKSTA_RESTRICTION                                            NTStatus      = 0xC0000248\n\tSTATUS_IMAGE_MP_UP_MISMATCH                                               NTStatus      = 0xC0000249\n\tSTATUS_INSUFFICIENT_LOGON_INFO                                            NTStatus      = 0xC0000250\n\tSTATUS_BAD_DLL_ENTRYPOINT                                                 NTStatus      = 0xC0000251\n\tSTATUS_BAD_SERVICE_ENTRYPOINT                                             NTStatus      = 0xC0000252\n\tSTATUS_LPC_REPLY_LOST                                                     NTStatus      = 0xC0000253\n\tSTATUS_IP_ADDRESS_CONFLICT1                                               NTStatus      = 0xC0000254\n\tSTATUS_IP_ADDRESS_CONFLICT2                                               NTStatus      = 0xC0000255\n\tSTATUS_REGISTRY_QUOTA_LIMIT                                               NTStatus      = 0xC0000256\n\tSTATUS_PATH_NOT_COVERED                                                   NTStatus      = 0xC0000257\n\tSTATUS_NO_CALLBACK_ACTIVE                                                 NTStatus      = 0xC0000258\n\tSTATUS_LICENSE_QUOTA_EXCEEDED                                             NTStatus      = 0xC0000259\n\tSTATUS_PWD_TOO_SHORT                                                      NTStatus      = 0xC000025A\n\tSTATUS_PWD_TOO_RECENT                                                     NTStatus      = 0xC000025B\n\tSTATUS_PWD_HISTORY_CONFLICT                                               NTStatus      = 0xC000025C\n\tSTATUS_PLUGPLAY_NO_DEVICE                                                 NTStatus      = 0xC000025E\n\tSTATUS_UNSUPPORTED_COMPRESSION                                            NTStatus      = 0xC000025F\n\tSTATUS_INVALID_HW_PROFILE                                                 NTStatus      = 0xC0000260\n\tSTATUS_INVALID_PLUGPLAY_DEVICE_PATH                                       NTStatus      = 0xC0000261\n\tSTATUS_DRIVER_ORDINAL_NOT_FOUND                                           NTStatus      = 0xC0000262\n\tSTATUS_DRIVER_ENTRYPOINT_NOT_FOUND                                        NTStatus      = 0xC0000263\n\tSTATUS_RESOURCE_NOT_OWNED                                                 NTStatus      = 0xC0000264\n\tSTATUS_TOO_MANY_LINKS                                                     NTStatus      = 0xC0000265\n\tSTATUS_QUOTA_LIST_INCONSISTENT                                            NTStatus      = 0xC0000266\n\tSTATUS_FILE_IS_OFFLINE                                                    NTStatus      = 0xC0000267\n\tSTATUS_EVALUATION_EXPIRATION                                              NTStatus      = 0xC0000268\n\tSTATUS_ILLEGAL_DLL_RELOCATION                                             NTStatus      = 0xC0000269\n\tSTATUS_LICENSE_VIOLATION                                                  NTStatus      = 0xC000026A\n\tSTATUS_DLL_INIT_FAILED_LOGOFF                                             NTStatus      = 0xC000026B\n\tSTATUS_DRIVER_UNABLE_TO_LOAD                                              NTStatus      = 0xC000026C\n\tSTATUS_DFS_UNAVAILABLE                                                    NTStatus      = 0xC000026D\n\tSTATUS_VOLUME_DISMOUNTED                                                  NTStatus      = 0xC000026E\n\tSTATUS_WX86_INTERNAL_ERROR                                                NTStatus      = 0xC000026F\n\tSTATUS_WX86_FLOAT_STACK_CHECK                                             NTStatus      = 0xC0000270\n\tSTATUS_VALIDATE_CONTINUE                                                  NTStatus      = 0xC0000271\n\tSTATUS_NO_MATCH                                                           NTStatus      = 0xC0000272\n\tSTATUS_NO_MORE_MATCHES                                                    NTStatus      = 0xC0000273\n\tSTATUS_NOT_A_REPARSE_POINT                                                NTStatus      = 0xC0000275\n\tSTATUS_IO_REPARSE_TAG_INVALID                                             NTStatus      = 0xC0000276\n\tSTATUS_IO_REPARSE_TAG_MISMATCH                                            NTStatus      = 0xC0000277\n\tSTATUS_IO_REPARSE_DATA_INVALID                                            NTStatus      = 0xC0000278\n\tSTATUS_IO_REPARSE_TAG_NOT_HANDLED                                         NTStatus      = 0xC0000279\n\tSTATUS_PWD_TOO_LONG                                                       NTStatus      = 0xC000027A\n\tSTATUS_STOWED_EXCEPTION                                                   NTStatus      = 0xC000027B\n\tSTATUS_CONTEXT_STOWED_EXCEPTION                                           NTStatus      = 0xC000027C\n\tSTATUS_REPARSE_POINT_NOT_RESOLVED                                         NTStatus      = 0xC0000280\n\tSTATUS_DIRECTORY_IS_A_REPARSE_POINT                                       NTStatus      = 0xC0000281\n\tSTATUS_RANGE_LIST_CONFLICT                                                NTStatus      = 0xC0000282\n\tSTATUS_SOURCE_ELEMENT_EMPTY                                               NTStatus      = 0xC0000283\n\tSTATUS_DESTINATION_ELEMENT_FULL                                           NTStatus      = 0xC0000284\n\tSTATUS_ILLEGAL_ELEMENT_ADDRESS                                            NTStatus      = 0xC0000285\n\tSTATUS_MAGAZINE_NOT_PRESENT                                               NTStatus      = 0xC0000286\n\tSTATUS_REINITIALIZATION_NEEDED                                            NTStatus      = 0xC0000287\n\tSTATUS_DEVICE_REQUIRES_CLEANING                                           NTStatus      = 0x80000288\n\tSTATUS_DEVICE_DOOR_OPEN                                                   NTStatus      = 0x80000289\n\tSTATUS_ENCRYPTION_FAILED                                                  NTStatus      = 0xC000028A\n\tSTATUS_DECRYPTION_FAILED                                                  NTStatus      = 0xC000028B\n\tSTATUS_RANGE_NOT_FOUND                                                    NTStatus      = 0xC000028C\n\tSTATUS_NO_RECOVERY_POLICY                                                 NTStatus      = 0xC000028D\n\tSTATUS_NO_EFS                                                             NTStatus      = 0xC000028E\n\tSTATUS_WRONG_EFS                                                          NTStatus      = 0xC000028F\n\tSTATUS_NO_USER_KEYS                                                       NTStatus      = 0xC0000290\n\tSTATUS_FILE_NOT_ENCRYPTED                                                 NTStatus      = 0xC0000291\n\tSTATUS_NOT_EXPORT_FORMAT                                                  NTStatus      = 0xC0000292\n\tSTATUS_FILE_ENCRYPTED                                                     NTStatus      = 0xC0000293\n\tSTATUS_WAKE_SYSTEM                                                        NTStatus      = 0x40000294\n\tSTATUS_WMI_GUID_NOT_FOUND                                                 NTStatus      = 0xC0000295\n\tSTATUS_WMI_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC0000296\n\tSTATUS_WMI_ITEMID_NOT_FOUND                                               NTStatus      = 0xC0000297\n\tSTATUS_WMI_TRY_AGAIN                                                      NTStatus      = 0xC0000298\n\tSTATUS_SHARED_POLICY                                                      NTStatus      = 0xC0000299\n\tSTATUS_POLICY_OBJECT_NOT_FOUND                                            NTStatus      = 0xC000029A\n\tSTATUS_POLICY_ONLY_IN_DS                                                  NTStatus      = 0xC000029B\n\tSTATUS_VOLUME_NOT_UPGRADED                                                NTStatus      = 0xC000029C\n\tSTATUS_REMOTE_STORAGE_NOT_ACTIVE                                          NTStatus      = 0xC000029D\n\tSTATUS_REMOTE_STORAGE_MEDIA_ERROR                                         NTStatus      = 0xC000029E\n\tSTATUS_NO_TRACKING_SERVICE                                                NTStatus      = 0xC000029F\n\tSTATUS_SERVER_SID_MISMATCH                                                NTStatus      = 0xC00002A0\n\tSTATUS_DS_NO_ATTRIBUTE_OR_VALUE                                           NTStatus      = 0xC00002A1\n\tSTATUS_DS_INVALID_ATTRIBUTE_SYNTAX                                        NTStatus      = 0xC00002A2\n\tSTATUS_DS_ATTRIBUTE_TYPE_UNDEFINED                                        NTStatus      = 0xC00002A3\n\tSTATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS                                       NTStatus      = 0xC00002A4\n\tSTATUS_DS_BUSY                                                            NTStatus      = 0xC00002A5\n\tSTATUS_DS_UNAVAILABLE                                                     NTStatus      = 0xC00002A6\n\tSTATUS_DS_NO_RIDS_ALLOCATED                                               NTStatus      = 0xC00002A7\n\tSTATUS_DS_NO_MORE_RIDS                                                    NTStatus      = 0xC00002A8\n\tSTATUS_DS_INCORRECT_ROLE_OWNER                                            NTStatus      = 0xC00002A9\n\tSTATUS_DS_RIDMGR_INIT_ERROR                                               NTStatus      = 0xC00002AA\n\tSTATUS_DS_OBJ_CLASS_VIOLATION                                             NTStatus      = 0xC00002AB\n\tSTATUS_DS_CANT_ON_NON_LEAF                                                NTStatus      = 0xC00002AC\n\tSTATUS_DS_CANT_ON_RDN                                                     NTStatus      = 0xC00002AD\n\tSTATUS_DS_CANT_MOD_OBJ_CLASS                                              NTStatus      = 0xC00002AE\n\tSTATUS_DS_CROSS_DOM_MOVE_FAILED                                           NTStatus      = 0xC00002AF\n\tSTATUS_DS_GC_NOT_AVAILABLE                                                NTStatus      = 0xC00002B0\n\tSTATUS_DIRECTORY_SERVICE_REQUIRED                                         NTStatus      = 0xC00002B1\n\tSTATUS_REPARSE_ATTRIBUTE_CONFLICT                                         NTStatus      = 0xC00002B2\n\tSTATUS_CANT_ENABLE_DENY_ONLY                                              NTStatus      = 0xC00002B3\n\tSTATUS_FLOAT_MULTIPLE_FAULTS                                              NTStatus      = 0xC00002B4\n\tSTATUS_FLOAT_MULTIPLE_TRAPS                                               NTStatus      = 0xC00002B5\n\tSTATUS_DEVICE_REMOVED                                                     NTStatus      = 0xC00002B6\n\tSTATUS_JOURNAL_DELETE_IN_PROGRESS                                         NTStatus      = 0xC00002B7\n\tSTATUS_JOURNAL_NOT_ACTIVE                                                 NTStatus      = 0xC00002B8\n\tSTATUS_NOINTERFACE                                                        NTStatus      = 0xC00002B9\n\tSTATUS_DS_RIDMGR_DISABLED                                                 NTStatus      = 0xC00002BA\n\tSTATUS_DS_ADMIN_LIMIT_EXCEEDED                                            NTStatus      = 0xC00002C1\n\tSTATUS_DRIVER_FAILED_SLEEP                                                NTStatus      = 0xC00002C2\n\tSTATUS_MUTUAL_AUTHENTICATION_FAILED                                       NTStatus      = 0xC00002C3\n\tSTATUS_CORRUPT_SYSTEM_FILE                                                NTStatus      = 0xC00002C4\n\tSTATUS_DATATYPE_MISALIGNMENT_ERROR                                        NTStatus      = 0xC00002C5\n\tSTATUS_WMI_READ_ONLY                                                      NTStatus      = 0xC00002C6\n\tSTATUS_WMI_SET_FAILURE                                                    NTStatus      = 0xC00002C7\n\tSTATUS_COMMITMENT_MINIMUM                                                 NTStatus      = 0xC00002C8\n\tSTATUS_REG_NAT_CONSUMPTION                                                NTStatus      = 0xC00002C9\n\tSTATUS_TRANSPORT_FULL                                                     NTStatus      = 0xC00002CA\n\tSTATUS_DS_SAM_INIT_FAILURE                                                NTStatus      = 0xC00002CB\n\tSTATUS_ONLY_IF_CONNECTED                                                  NTStatus      = 0xC00002CC\n\tSTATUS_DS_SENSITIVE_GROUP_VIOLATION                                       NTStatus      = 0xC00002CD\n\tSTATUS_PNP_RESTART_ENUMERATION                                            NTStatus      = 0xC00002CE\n\tSTATUS_JOURNAL_ENTRY_DELETED                                              NTStatus      = 0xC00002CF\n\tSTATUS_DS_CANT_MOD_PRIMARYGROUPID                                         NTStatus      = 0xC00002D0\n\tSTATUS_SYSTEM_IMAGE_BAD_SIGNATURE                                         NTStatus      = 0xC00002D1\n\tSTATUS_PNP_REBOOT_REQUIRED                                                NTStatus      = 0xC00002D2\n\tSTATUS_POWER_STATE_INVALID                                                NTStatus      = 0xC00002D3\n\tSTATUS_DS_INVALID_GROUP_TYPE                                              NTStatus      = 0xC00002D4\n\tSTATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                              NTStatus      = 0xC00002D5\n\tSTATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                               NTStatus      = 0xC00002D6\n\tSTATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                   NTStatus      = 0xC00002D7\n\tSTATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                               NTStatus      = 0xC00002D8\n\tSTATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                NTStatus      = 0xC00002D9\n\tSTATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                             NTStatus      = 0xC00002DA\n\tSTATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                        NTStatus      = 0xC00002DB\n\tSTATUS_DS_HAVE_PRIMARY_MEMBERS                                            NTStatus      = 0xC00002DC\n\tSTATUS_WMI_NOT_SUPPORTED                                                  NTStatus      = 0xC00002DD\n\tSTATUS_INSUFFICIENT_POWER                                                 NTStatus      = 0xC00002DE\n\tSTATUS_SAM_NEED_BOOTKEY_PASSWORD                                          NTStatus      = 0xC00002DF\n\tSTATUS_SAM_NEED_BOOTKEY_FLOPPY                                            NTStatus      = 0xC00002E0\n\tSTATUS_DS_CANT_START                                                      NTStatus      = 0xC00002E1\n\tSTATUS_DS_INIT_FAILURE                                                    NTStatus      = 0xC00002E2\n\tSTATUS_SAM_INIT_FAILURE                                                   NTStatus      = 0xC00002E3\n\tSTATUS_DS_GC_REQUIRED                                                     NTStatus      = 0xC00002E4\n\tSTATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                      NTStatus      = 0xC00002E5\n\tSTATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                      NTStatus      = 0xC00002E6\n\tSTATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                  NTStatus      = 0xC00002E7\n\tSTATUS_MULTIPLE_FAULT_VIOLATION                                           NTStatus      = 0xC00002E8\n\tSTATUS_CURRENT_DOMAIN_NOT_ALLOWED                                         NTStatus      = 0xC00002E9\n\tSTATUS_CANNOT_MAKE                                                        NTStatus      = 0xC00002EA\n\tSTATUS_SYSTEM_SHUTDOWN                                                    NTStatus      = 0xC00002EB\n\tSTATUS_DS_INIT_FAILURE_CONSOLE                                            NTStatus      = 0xC00002EC\n\tSTATUS_DS_SAM_INIT_FAILURE_CONSOLE                                        NTStatus      = 0xC00002ED\n\tSTATUS_UNFINISHED_CONTEXT_DELETED                                         NTStatus      = 0xC00002EE\n\tSTATUS_NO_TGT_REPLY                                                       NTStatus      = 0xC00002EF\n\tSTATUS_OBJECTID_NOT_FOUND                                                 NTStatus      = 0xC00002F0\n\tSTATUS_NO_IP_ADDRESSES                                                    NTStatus      = 0xC00002F1\n\tSTATUS_WRONG_CREDENTIAL_HANDLE                                            NTStatus      = 0xC00002F2\n\tSTATUS_CRYPTO_SYSTEM_INVALID                                              NTStatus      = 0xC00002F3\n\tSTATUS_MAX_REFERRALS_EXCEEDED                                             NTStatus      = 0xC00002F4\n\tSTATUS_MUST_BE_KDC                                                        NTStatus      = 0xC00002F5\n\tSTATUS_STRONG_CRYPTO_NOT_SUPPORTED                                        NTStatus      = 0xC00002F6\n\tSTATUS_TOO_MANY_PRINCIPALS                                                NTStatus      = 0xC00002F7\n\tSTATUS_NO_PA_DATA                                                         NTStatus      = 0xC00002F8\n\tSTATUS_PKINIT_NAME_MISMATCH                                               NTStatus      = 0xC00002F9\n\tSTATUS_SMARTCARD_LOGON_REQUIRED                                           NTStatus      = 0xC00002FA\n\tSTATUS_KDC_INVALID_REQUEST                                                NTStatus      = 0xC00002FB\n\tSTATUS_KDC_UNABLE_TO_REFER                                                NTStatus      = 0xC00002FC\n\tSTATUS_KDC_UNKNOWN_ETYPE                                                  NTStatus      = 0xC00002FD\n\tSTATUS_SHUTDOWN_IN_PROGRESS                                               NTStatus      = 0xC00002FE\n\tSTATUS_SERVER_SHUTDOWN_IN_PROGRESS                                        NTStatus      = 0xC00002FF\n\tSTATUS_NOT_SUPPORTED_ON_SBS                                               NTStatus      = 0xC0000300\n\tSTATUS_WMI_GUID_DISCONNECTED                                              NTStatus      = 0xC0000301\n\tSTATUS_WMI_ALREADY_DISABLED                                               NTStatus      = 0xC0000302\n\tSTATUS_WMI_ALREADY_ENABLED                                                NTStatus      = 0xC0000303\n\tSTATUS_MFT_TOO_FRAGMENTED                                                 NTStatus      = 0xC0000304\n\tSTATUS_COPY_PROTECTION_FAILURE                                            NTStatus      = 0xC0000305\n\tSTATUS_CSS_AUTHENTICATION_FAILURE                                         NTStatus      = 0xC0000306\n\tSTATUS_CSS_KEY_NOT_PRESENT                                                NTStatus      = 0xC0000307\n\tSTATUS_CSS_KEY_NOT_ESTABLISHED                                            NTStatus      = 0xC0000308\n\tSTATUS_CSS_SCRAMBLED_SECTOR                                               NTStatus      = 0xC0000309\n\tSTATUS_CSS_REGION_MISMATCH                                                NTStatus      = 0xC000030A\n\tSTATUS_CSS_RESETS_EXHAUSTED                                               NTStatus      = 0xC000030B\n\tSTATUS_PASSWORD_CHANGE_REQUIRED                                           NTStatus      = 0xC000030C\n\tSTATUS_LOST_MODE_LOGON_RESTRICTION                                        NTStatus      = 0xC000030D\n\tSTATUS_PKINIT_FAILURE                                                     NTStatus      = 0xC0000320\n\tSTATUS_SMARTCARD_SUBSYSTEM_FAILURE                                        NTStatus      = 0xC0000321\n\tSTATUS_NO_KERB_KEY                                                        NTStatus      = 0xC0000322\n\tSTATUS_HOST_DOWN                                                          NTStatus      = 0xC0000350\n\tSTATUS_UNSUPPORTED_PREAUTH                                                NTStatus      = 0xC0000351\n\tSTATUS_EFS_ALG_BLOB_TOO_BIG                                               NTStatus      = 0xC0000352\n\tSTATUS_PORT_NOT_SET                                                       NTStatus      = 0xC0000353\n\tSTATUS_DEBUGGER_INACTIVE                                                  NTStatus      = 0xC0000354\n\tSTATUS_DS_VERSION_CHECK_FAILURE                                           NTStatus      = 0xC0000355\n\tSTATUS_AUDITING_DISABLED                                                  NTStatus      = 0xC0000356\n\tSTATUS_PRENT4_MACHINE_ACCOUNT                                             NTStatus      = 0xC0000357\n\tSTATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                   NTStatus      = 0xC0000358\n\tSTATUS_INVALID_IMAGE_WIN_32                                               NTStatus      = 0xC0000359\n\tSTATUS_INVALID_IMAGE_WIN_64                                               NTStatus      = 0xC000035A\n\tSTATUS_BAD_BINDINGS                                                       NTStatus      = 0xC000035B\n\tSTATUS_NETWORK_SESSION_EXPIRED                                            NTStatus      = 0xC000035C\n\tSTATUS_APPHELP_BLOCK                                                      NTStatus      = 0xC000035D\n\tSTATUS_ALL_SIDS_FILTERED                                                  NTStatus      = 0xC000035E\n\tSTATUS_NOT_SAFE_MODE_DRIVER                                               NTStatus      = 0xC000035F\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT                                  NTStatus      = 0xC0000361\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PATH                                     NTStatus      = 0xC0000362\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER                                NTStatus      = 0xC0000363\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_OTHER                                    NTStatus      = 0xC0000364\n\tSTATUS_FAILED_DRIVER_ENTRY                                                NTStatus      = 0xC0000365\n\tSTATUS_DEVICE_ENUMERATION_ERROR                                           NTStatus      = 0xC0000366\n\tSTATUS_MOUNT_POINT_NOT_RESOLVED                                           NTStatus      = 0xC0000368\n\tSTATUS_INVALID_DEVICE_OBJECT_PARAMETER                                    NTStatus      = 0xC0000369\n\tSTATUS_MCA_OCCURED                                                        NTStatus      = 0xC000036A\n\tSTATUS_DRIVER_BLOCKED_CRITICAL                                            NTStatus      = 0xC000036B\n\tSTATUS_DRIVER_BLOCKED                                                     NTStatus      = 0xC000036C\n\tSTATUS_DRIVER_DATABASE_ERROR                                              NTStatus      = 0xC000036D\n\tSTATUS_SYSTEM_HIVE_TOO_LARGE                                              NTStatus      = 0xC000036E\n\tSTATUS_INVALID_IMPORT_OF_NON_DLL                                          NTStatus      = 0xC000036F\n\tSTATUS_DS_SHUTTING_DOWN                                                   NTStatus      = 0x40000370\n\tSTATUS_NO_SECRETS                                                         NTStatus      = 0xC0000371\n\tSTATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                              NTStatus      = 0xC0000372\n\tSTATUS_FAILED_STACK_SWITCH                                                NTStatus      = 0xC0000373\n\tSTATUS_HEAP_CORRUPTION                                                    NTStatus      = 0xC0000374\n\tSTATUS_SMARTCARD_WRONG_PIN                                                NTStatus      = 0xC0000380\n\tSTATUS_SMARTCARD_CARD_BLOCKED                                             NTStatus      = 0xC0000381\n\tSTATUS_SMARTCARD_CARD_NOT_AUTHENTICATED                                   NTStatus      = 0xC0000382\n\tSTATUS_SMARTCARD_NO_CARD                                                  NTStatus      = 0xC0000383\n\tSTATUS_SMARTCARD_NO_KEY_CONTAINER                                         NTStatus      = 0xC0000384\n\tSTATUS_SMARTCARD_NO_CERTIFICATE                                           NTStatus      = 0xC0000385\n\tSTATUS_SMARTCARD_NO_KEYSET                                                NTStatus      = 0xC0000386\n\tSTATUS_SMARTCARD_IO_ERROR                                                 NTStatus      = 0xC0000387\n\tSTATUS_DOWNGRADE_DETECTED                                                 NTStatus      = 0xC0000388\n\tSTATUS_SMARTCARD_CERT_REVOKED                                             NTStatus      = 0xC0000389\n\tSTATUS_ISSUING_CA_UNTRUSTED                                               NTStatus      = 0xC000038A\n\tSTATUS_REVOCATION_OFFLINE_C                                               NTStatus      = 0xC000038B\n\tSTATUS_PKINIT_CLIENT_FAILURE                                              NTStatus      = 0xC000038C\n\tSTATUS_SMARTCARD_CERT_EXPIRED                                             NTStatus      = 0xC000038D\n\tSTATUS_DRIVER_FAILED_PRIOR_UNLOAD                                         NTStatus      = 0xC000038E\n\tSTATUS_SMARTCARD_SILENT_CONTEXT                                           NTStatus      = 0xC000038F\n\tSTATUS_PER_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000401\n\tSTATUS_ALL_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000402\n\tSTATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED                                   NTStatus      = 0xC0000403\n\tSTATUS_DS_NAME_NOT_UNIQUE                                                 NTStatus      = 0xC0000404\n\tSTATUS_DS_DUPLICATE_ID_FOUND                                              NTStatus      = 0xC0000405\n\tSTATUS_DS_GROUP_CONVERSION_ERROR                                          NTStatus      = 0xC0000406\n\tSTATUS_VOLSNAP_PREPARE_HIBERNATE                                          NTStatus      = 0xC0000407\n\tSTATUS_USER2USER_REQUIRED                                                 NTStatus      = 0xC0000408\n\tSTATUS_STACK_BUFFER_OVERRUN                                               NTStatus      = 0xC0000409\n\tSTATUS_NO_S4U_PROT_SUPPORT                                                NTStatus      = 0xC000040A\n\tSTATUS_CROSSREALM_DELEGATION_FAILURE                                      NTStatus      = 0xC000040B\n\tSTATUS_REVOCATION_OFFLINE_KDC                                             NTStatus      = 0xC000040C\n\tSTATUS_ISSUING_CA_UNTRUSTED_KDC                                           NTStatus      = 0xC000040D\n\tSTATUS_KDC_CERT_EXPIRED                                                   NTStatus      = 0xC000040E\n\tSTATUS_KDC_CERT_REVOKED                                                   NTStatus      = 0xC000040F\n\tSTATUS_PARAMETER_QUOTA_EXCEEDED                                           NTStatus      = 0xC0000410\n\tSTATUS_HIBERNATION_FAILURE                                                NTStatus      = 0xC0000411\n\tSTATUS_DELAY_LOAD_FAILED                                                  NTStatus      = 0xC0000412\n\tSTATUS_AUTHENTICATION_FIREWALL_FAILED                                     NTStatus      = 0xC0000413\n\tSTATUS_VDM_DISALLOWED                                                     NTStatus      = 0xC0000414\n\tSTATUS_HUNG_DISPLAY_DRIVER_THREAD                                         NTStatus      = 0xC0000415\n\tSTATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE            NTStatus      = 0xC0000416\n\tSTATUS_INVALID_CRUNTIME_PARAMETER                                         NTStatus      = 0xC0000417\n\tSTATUS_NTLM_BLOCKED                                                       NTStatus      = 0xC0000418\n\tSTATUS_DS_SRC_SID_EXISTS_IN_FOREST                                        NTStatus      = 0xC0000419\n\tSTATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                    NTStatus      = 0xC000041A\n\tSTATUS_DS_FLAT_NAME_EXISTS_IN_FOREST                                      NTStatus      = 0xC000041B\n\tSTATUS_INVALID_USER_PRINCIPAL_NAME                                        NTStatus      = 0xC000041C\n\tSTATUS_FATAL_USER_CALLBACK_EXCEPTION                                      NTStatus      = 0xC000041D\n\tSTATUS_ASSERTION_FAILURE                                                  NTStatus      = 0xC0000420\n\tSTATUS_VERIFIER_STOP                                                      NTStatus      = 0xC0000421\n\tSTATUS_CALLBACK_POP_STACK                                                 NTStatus      = 0xC0000423\n\tSTATUS_INCOMPATIBLE_DRIVER_BLOCKED                                        NTStatus      = 0xC0000424\n\tSTATUS_HIVE_UNLOADED                                                      NTStatus      = 0xC0000425\n\tSTATUS_COMPRESSION_DISABLED                                               NTStatus      = 0xC0000426\n\tSTATUS_FILE_SYSTEM_LIMITATION                                             NTStatus      = 0xC0000427\n\tSTATUS_INVALID_IMAGE_HASH                                                 NTStatus      = 0xC0000428\n\tSTATUS_NOT_CAPABLE                                                        NTStatus      = 0xC0000429\n\tSTATUS_REQUEST_OUT_OF_SEQUENCE                                            NTStatus      = 0xC000042A\n\tSTATUS_IMPLEMENTATION_LIMIT                                               NTStatus      = 0xC000042B\n\tSTATUS_ELEVATION_REQUIRED                                                 NTStatus      = 0xC000042C\n\tSTATUS_NO_SECURITY_CONTEXT                                                NTStatus      = 0xC000042D\n\tSTATUS_PKU2U_CERT_FAILURE                                                 NTStatus      = 0xC000042F\n\tSTATUS_BEYOND_VDL                                                         NTStatus      = 0xC0000432\n\tSTATUS_ENCOUNTERED_WRITE_IN_PROGRESS                                      NTStatus      = 0xC0000433\n\tSTATUS_PTE_CHANGED                                                        NTStatus      = 0xC0000434\n\tSTATUS_PURGE_FAILED                                                       NTStatus      = 0xC0000435\n\tSTATUS_CRED_REQUIRES_CONFIRMATION                                         NTStatus      = 0xC0000440\n\tSTATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                              NTStatus      = 0xC0000441\n\tSTATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER                                   NTStatus      = 0xC0000442\n\tSTATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                              NTStatus      = 0xC0000443\n\tSTATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                   NTStatus      = 0xC0000444\n\tSTATUS_CS_ENCRYPTION_FILE_NOT_CSE                                         NTStatus      = 0xC0000445\n\tSTATUS_INVALID_LABEL                                                      NTStatus      = 0xC0000446\n\tSTATUS_DRIVER_PROCESS_TERMINATED                                          NTStatus      = 0xC0000450\n\tSTATUS_AMBIGUOUS_SYSTEM_DEVICE                                            NTStatus      = 0xC0000451\n\tSTATUS_SYSTEM_DEVICE_NOT_FOUND                                            NTStatus      = 0xC0000452\n\tSTATUS_RESTART_BOOT_APPLICATION                                           NTStatus      = 0xC0000453\n\tSTATUS_INSUFFICIENT_NVRAM_RESOURCES                                       NTStatus      = 0xC0000454\n\tSTATUS_INVALID_SESSION                                                    NTStatus      = 0xC0000455\n\tSTATUS_THREAD_ALREADY_IN_SESSION                                          NTStatus      = 0xC0000456\n\tSTATUS_THREAD_NOT_IN_SESSION                                              NTStatus      = 0xC0000457\n\tSTATUS_INVALID_WEIGHT                                                     NTStatus      = 0xC0000458\n\tSTATUS_REQUEST_PAUSED                                                     NTStatus      = 0xC0000459\n\tSTATUS_NO_RANGES_PROCESSED                                                NTStatus      = 0xC0000460\n\tSTATUS_DISK_RESOURCES_EXHAUSTED                                           NTStatus      = 0xC0000461\n\tSTATUS_NEEDS_REMEDIATION                                                  NTStatus      = 0xC0000462\n\tSTATUS_DEVICE_FEATURE_NOT_SUPPORTED                                       NTStatus      = 0xC0000463\n\tSTATUS_DEVICE_UNREACHABLE                                                 NTStatus      = 0xC0000464\n\tSTATUS_INVALID_TOKEN                                                      NTStatus      = 0xC0000465\n\tSTATUS_SERVER_UNAVAILABLE                                                 NTStatus      = 0xC0000466\n\tSTATUS_FILE_NOT_AVAILABLE                                                 NTStatus      = 0xC0000467\n\tSTATUS_DEVICE_INSUFFICIENT_RESOURCES                                      NTStatus      = 0xC0000468\n\tSTATUS_PACKAGE_UPDATING                                                   NTStatus      = 0xC0000469\n\tSTATUS_NOT_READ_FROM_COPY                                                 NTStatus      = 0xC000046A\n\tSTATUS_FT_WRITE_FAILURE                                                   NTStatus      = 0xC000046B\n\tSTATUS_FT_DI_SCAN_REQUIRED                                                NTStatus      = 0xC000046C\n\tSTATUS_OBJECT_NOT_EXTERNALLY_BACKED                                       NTStatus      = 0xC000046D\n\tSTATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                  NTStatus      = 0xC000046E\n\tSTATUS_COMPRESSION_NOT_BENEFICIAL                                         NTStatus      = 0xC000046F\n\tSTATUS_DATA_CHECKSUM_ERROR                                                NTStatus      = 0xC0000470\n\tSTATUS_INTERMIXED_KERNEL_EA_OPERATION                                     NTStatus      = 0xC0000471\n\tSTATUS_TRIM_READ_ZERO_NOT_SUPPORTED                                       NTStatus      = 0xC0000472\n\tSTATUS_TOO_MANY_SEGMENT_DESCRIPTORS                                       NTStatus      = 0xC0000473\n\tSTATUS_INVALID_OFFSET_ALIGNMENT                                           NTStatus      = 0xC0000474\n\tSTATUS_INVALID_FIELD_IN_PARAMETER_LIST                                    NTStatus      = 0xC0000475\n\tSTATUS_OPERATION_IN_PROGRESS                                              NTStatus      = 0xC0000476\n\tSTATUS_INVALID_INITIATOR_TARGET_PATH                                      NTStatus      = 0xC0000477\n\tSTATUS_SCRUB_DATA_DISABLED                                                NTStatus      = 0xC0000478\n\tSTATUS_NOT_REDUNDANT_STORAGE                                              NTStatus      = 0xC0000479\n\tSTATUS_RESIDENT_FILE_NOT_SUPPORTED                                        NTStatus      = 0xC000047A\n\tSTATUS_COMPRESSED_FILE_NOT_SUPPORTED                                      NTStatus      = 0xC000047B\n\tSTATUS_DIRECTORY_NOT_SUPPORTED                                            NTStatus      = 0xC000047C\n\tSTATUS_IO_OPERATION_TIMEOUT                                               NTStatus      = 0xC000047D\n\tSTATUS_SYSTEM_NEEDS_REMEDIATION                                           NTStatus      = 0xC000047E\n\tSTATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN                                    NTStatus      = 0xC000047F\n\tSTATUS_SHARE_UNAVAILABLE                                                  NTStatus      = 0xC0000480\n\tSTATUS_APISET_NOT_HOSTED                                                  NTStatus      = 0xC0000481\n\tSTATUS_APISET_NOT_PRESENT                                                 NTStatus      = 0xC0000482\n\tSTATUS_DEVICE_HARDWARE_ERROR                                              NTStatus      = 0xC0000483\n\tSTATUS_FIRMWARE_SLOT_INVALID                                              NTStatus      = 0xC0000484\n\tSTATUS_FIRMWARE_IMAGE_INVALID                                             NTStatus      = 0xC0000485\n\tSTATUS_STORAGE_TOPOLOGY_ID_MISMATCH                                       NTStatus      = 0xC0000486\n\tSTATUS_WIM_NOT_BOOTABLE                                                   NTStatus      = 0xC0000487\n\tSTATUS_BLOCKED_BY_PARENTAL_CONTROLS                                       NTStatus      = 0xC0000488\n\tSTATUS_NEEDS_REGISTRATION                                                 NTStatus      = 0xC0000489\n\tSTATUS_QUOTA_ACTIVITY                                                     NTStatus      = 0xC000048A\n\tSTATUS_CALLBACK_INVOKE_INLINE                                             NTStatus      = 0xC000048B\n\tSTATUS_BLOCK_TOO_MANY_REFERENCES                                          NTStatus      = 0xC000048C\n\tSTATUS_MARKED_TO_DISALLOW_WRITES                                          NTStatus      = 0xC000048D\n\tSTATUS_NETWORK_ACCESS_DENIED_EDP                                          NTStatus      = 0xC000048E\n\tSTATUS_ENCLAVE_FAILURE                                                    NTStatus      = 0xC000048F\n\tSTATUS_PNP_NO_COMPAT_DRIVERS                                              NTStatus      = 0xC0000490\n\tSTATUS_PNP_DRIVER_PACKAGE_NOT_FOUND                                       NTStatus      = 0xC0000491\n\tSTATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND                                 NTStatus      = 0xC0000492\n\tSTATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE                                NTStatus      = 0xC0000493\n\tSTATUS_PNP_FUNCTION_DRIVER_REQUIRED                                       NTStatus      = 0xC0000494\n\tSTATUS_PNP_DEVICE_CONFIGURATION_PENDING                                   NTStatus      = 0xC0000495\n\tSTATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                  NTStatus      = 0xC0000496\n\tSTATUS_PACKAGE_NOT_AVAILABLE                                              NTStatus      = 0xC0000497\n\tSTATUS_DEVICE_IN_MAINTENANCE                                              NTStatus      = 0xC0000499\n\tSTATUS_NOT_SUPPORTED_ON_DAX                                               NTStatus      = 0xC000049A\n\tSTATUS_FREE_SPACE_TOO_FRAGMENTED                                          NTStatus      = 0xC000049B\n\tSTATUS_DAX_MAPPING_EXISTS                                                 NTStatus      = 0xC000049C\n\tSTATUS_CHILD_PROCESS_BLOCKED                                              NTStatus      = 0xC000049D\n\tSTATUS_STORAGE_LOST_DATA_PERSISTENCE                                      NTStatus      = 0xC000049E\n\tSTATUS_VRF_CFG_ENABLED                                                    NTStatus      = 0xC000049F\n\tSTATUS_PARTITION_TERMINATING                                              NTStatus      = 0xC00004A0\n\tSTATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED                                      NTStatus      = 0xC00004A1\n\tSTATUS_ENCLAVE_VIOLATION                                                  NTStatus      = 0xC00004A2\n\tSTATUS_FILE_PROTECTED_UNDER_DPL                                           NTStatus      = 0xC00004A3\n\tSTATUS_VOLUME_NOT_CLUSTER_ALIGNED                                         NTStatus      = 0xC00004A4\n\tSTATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                             NTStatus      = 0xC00004A5\n\tSTATUS_APPX_FILE_NOT_ENCRYPTED                                            NTStatus      = 0xC00004A6\n\tSTATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                 NTStatus      = 0xC00004A7\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                       NTStatus      = 0xC00004A8\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                        NTStatus      = 0xC00004A9\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                        NTStatus      = 0xC00004AA\n\tSTATUS_FT_READ_FAILURE                                                    NTStatus      = 0xC00004AB\n\tSTATUS_PATCH_CONFLICT                                                     NTStatus      = 0xC00004AC\n\tSTATUS_STORAGE_RESERVE_ID_INVALID                                         NTStatus      = 0xC00004AD\n\tSTATUS_STORAGE_RESERVE_DOES_NOT_EXIST                                     NTStatus      = 0xC00004AE\n\tSTATUS_STORAGE_RESERVE_ALREADY_EXISTS                                     NTStatus      = 0xC00004AF\n\tSTATUS_STORAGE_RESERVE_NOT_EMPTY                                          NTStatus      = 0xC00004B0\n\tSTATUS_NOT_A_DAX_VOLUME                                                   NTStatus      = 0xC00004B1\n\tSTATUS_NOT_DAX_MAPPABLE                                                   NTStatus      = 0xC00004B2\n\tSTATUS_CASE_DIFFERING_NAMES_IN_DIR                                        NTStatus      = 0xC00004B3\n\tSTATUS_FILE_NOT_SUPPORTED                                                 NTStatus      = 0xC00004B4\n\tSTATUS_NOT_SUPPORTED_WITH_BTT                                             NTStatus      = 0xC00004B5\n\tSTATUS_ENCRYPTION_DISABLED                                                NTStatus      = 0xC00004B6\n\tSTATUS_ENCRYPTING_METADATA_DISALLOWED                                     NTStatus      = 0xC00004B7\n\tSTATUS_CANT_CLEAR_ENCRYPTION_FLAG                                         NTStatus      = 0xC00004B8\n\tSTATUS_INVALID_TASK_NAME                                                  NTStatus      = 0xC0000500\n\tSTATUS_INVALID_TASK_INDEX                                                 NTStatus      = 0xC0000501\n\tSTATUS_THREAD_ALREADY_IN_TASK                                             NTStatus      = 0xC0000502\n\tSTATUS_CALLBACK_BYPASS                                                    NTStatus      = 0xC0000503\n\tSTATUS_UNDEFINED_SCOPE                                                    NTStatus      = 0xC0000504\n\tSTATUS_INVALID_CAP                                                        NTStatus      = 0xC0000505\n\tSTATUS_NOT_GUI_PROCESS                                                    NTStatus      = 0xC0000506\n\tSTATUS_DEVICE_HUNG                                                        NTStatus      = 0xC0000507\n\tSTATUS_CONTAINER_ASSIGNED                                                 NTStatus      = 0xC0000508\n\tSTATUS_JOB_NO_CONTAINER                                                   NTStatus      = 0xC0000509\n\tSTATUS_DEVICE_UNRESPONSIVE                                                NTStatus      = 0xC000050A\n\tSTATUS_REPARSE_POINT_ENCOUNTERED                                          NTStatus      = 0xC000050B\n\tSTATUS_ATTRIBUTE_NOT_PRESENT                                              NTStatus      = 0xC000050C\n\tSTATUS_NOT_A_TIERED_VOLUME                                                NTStatus      = 0xC000050D\n\tSTATUS_ALREADY_HAS_STREAM_ID                                              NTStatus      = 0xC000050E\n\tSTATUS_JOB_NOT_EMPTY                                                      NTStatus      = 0xC000050F\n\tSTATUS_ALREADY_INITIALIZED                                                NTStatus      = 0xC0000510\n\tSTATUS_ENCLAVE_NOT_TERMINATED                                             NTStatus      = 0xC0000511\n\tSTATUS_ENCLAVE_IS_TERMINATING                                             NTStatus      = 0xC0000512\n\tSTATUS_SMB1_NOT_AVAILABLE                                                 NTStatus      = 0xC0000513\n\tSTATUS_SMR_GARBAGE_COLLECTION_REQUIRED                                    NTStatus      = 0xC0000514\n\tSTATUS_INTERRUPTED                                                        NTStatus      = 0xC0000515\n\tSTATUS_THREAD_NOT_RUNNING                                                 NTStatus      = 0xC0000516\n\tSTATUS_FAIL_FAST_EXCEPTION                                                NTStatus      = 0xC0000602\n\tSTATUS_IMAGE_CERT_REVOKED                                                 NTStatus      = 0xC0000603\n\tSTATUS_DYNAMIC_CODE_BLOCKED                                               NTStatus      = 0xC0000604\n\tSTATUS_IMAGE_CERT_EXPIRED                                                 NTStatus      = 0xC0000605\n\tSTATUS_STRICT_CFG_VIOLATION                                               NTStatus      = 0xC0000606\n\tSTATUS_SET_CONTEXT_DENIED                                                 NTStatus      = 0xC000060A\n\tSTATUS_CROSS_PARTITION_VIOLATION                                          NTStatus      = 0xC000060B\n\tSTATUS_PORT_CLOSED                                                        NTStatus      = 0xC0000700\n\tSTATUS_MESSAGE_LOST                                                       NTStatus      = 0xC0000701\n\tSTATUS_INVALID_MESSAGE                                                    NTStatus      = 0xC0000702\n\tSTATUS_REQUEST_CANCELED                                                   NTStatus      = 0xC0000703\n\tSTATUS_RECURSIVE_DISPATCH                                                 NTStatus      = 0xC0000704\n\tSTATUS_LPC_RECEIVE_BUFFER_EXPECTED                                        NTStatus      = 0xC0000705\n\tSTATUS_LPC_INVALID_CONNECTION_USAGE                                       NTStatus      = 0xC0000706\n\tSTATUS_LPC_REQUESTS_NOT_ALLOWED                                           NTStatus      = 0xC0000707\n\tSTATUS_RESOURCE_IN_USE                                                    NTStatus      = 0xC0000708\n\tSTATUS_HARDWARE_MEMORY_ERROR                                              NTStatus      = 0xC0000709\n\tSTATUS_THREADPOOL_HANDLE_EXCEPTION                                        NTStatus      = 0xC000070A\n\tSTATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED                          NTStatus      = 0xC000070B\n\tSTATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED                  NTStatus      = 0xC000070C\n\tSTATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED                      NTStatus      = 0xC000070D\n\tSTATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED                       NTStatus      = 0xC000070E\n\tSTATUS_THREADPOOL_RELEASED_DURING_OPERATION                               NTStatus      = 0xC000070F\n\tSTATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING                              NTStatus      = 0xC0000710\n\tSTATUS_APC_RETURNED_WHILE_IMPERSONATING                                   NTStatus      = 0xC0000711\n\tSTATUS_PROCESS_IS_PROTECTED                                               NTStatus      = 0xC0000712\n\tSTATUS_MCA_EXCEPTION                                                      NTStatus      = 0xC0000713\n\tSTATUS_CERTIFICATE_MAPPING_NOT_UNIQUE                                     NTStatus      = 0xC0000714\n\tSTATUS_SYMLINK_CLASS_DISABLED                                             NTStatus      = 0xC0000715\n\tSTATUS_INVALID_IDN_NORMALIZATION                                          NTStatus      = 0xC0000716\n\tSTATUS_NO_UNICODE_TRANSLATION                                             NTStatus      = 0xC0000717\n\tSTATUS_ALREADY_REGISTERED                                                 NTStatus      = 0xC0000718\n\tSTATUS_CONTEXT_MISMATCH                                                   NTStatus      = 0xC0000719\n\tSTATUS_PORT_ALREADY_HAS_COMPLETION_LIST                                   NTStatus      = 0xC000071A\n\tSTATUS_CALLBACK_RETURNED_THREAD_PRIORITY                                  NTStatus      = 0xC000071B\n\tSTATUS_INVALID_THREAD                                                     NTStatus      = 0xC000071C\n\tSTATUS_CALLBACK_RETURNED_TRANSACTION                                      NTStatus      = 0xC000071D\n\tSTATUS_CALLBACK_RETURNED_LDR_LOCK                                         NTStatus      = 0xC000071E\n\tSTATUS_CALLBACK_RETURNED_LANG                                             NTStatus      = 0xC000071F\n\tSTATUS_CALLBACK_RETURNED_PRI_BACK                                         NTStatus      = 0xC0000720\n\tSTATUS_CALLBACK_RETURNED_THREAD_AFFINITY                                  NTStatus      = 0xC0000721\n\tSTATUS_LPC_HANDLE_COUNT_EXCEEDED                                          NTStatus      = 0xC0000722\n\tSTATUS_EXECUTABLE_MEMORY_WRITE                                            NTStatus      = 0xC0000723\n\tSTATUS_KERNEL_EXECUTABLE_MEMORY_WRITE                                     NTStatus      = 0xC0000724\n\tSTATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE                                   NTStatus      = 0xC0000725\n\tSTATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE                                  NTStatus      = 0xC0000726\n\tSTATUS_DISK_REPAIR_DISABLED                                               NTStatus      = 0xC0000800\n\tSTATUS_DS_DOMAIN_RENAME_IN_PROGRESS                                       NTStatus      = 0xC0000801\n\tSTATUS_DISK_QUOTA_EXCEEDED                                                NTStatus      = 0xC0000802\n\tSTATUS_DATA_LOST_REPAIR                                                   NTStatus      = 0x80000803\n\tSTATUS_CONTENT_BLOCKED                                                    NTStatus      = 0xC0000804\n\tSTATUS_BAD_CLUSTERS                                                       NTStatus      = 0xC0000805\n\tSTATUS_VOLUME_DIRTY                                                       NTStatus      = 0xC0000806\n\tSTATUS_DISK_REPAIR_REDIRECTED                                             NTStatus      = 0x40000807\n\tSTATUS_DISK_REPAIR_UNSUCCESSFUL                                           NTStatus      = 0xC0000808\n\tSTATUS_CORRUPT_LOG_OVERFULL                                               NTStatus      = 0xC0000809\n\tSTATUS_CORRUPT_LOG_CORRUPTED                                              NTStatus      = 0xC000080A\n\tSTATUS_CORRUPT_LOG_UNAVAILABLE                                            NTStatus      = 0xC000080B\n\tSTATUS_CORRUPT_LOG_DELETED_FULL                                           NTStatus      = 0xC000080C\n\tSTATUS_CORRUPT_LOG_CLEARED                                                NTStatus      = 0xC000080D\n\tSTATUS_ORPHAN_NAME_EXHAUSTED                                              NTStatus      = 0xC000080E\n\tSTATUS_PROACTIVE_SCAN_IN_PROGRESS                                         NTStatus      = 0xC000080F\n\tSTATUS_ENCRYPTED_IO_NOT_POSSIBLE                                          NTStatus      = 0xC0000810\n\tSTATUS_CORRUPT_LOG_UPLEVEL_RECORDS                                        NTStatus      = 0xC0000811\n\tSTATUS_FILE_CHECKED_OUT                                                   NTStatus      = 0xC0000901\n\tSTATUS_CHECKOUT_REQUIRED                                                  NTStatus      = 0xC0000902\n\tSTATUS_BAD_FILE_TYPE                                                      NTStatus      = 0xC0000903\n\tSTATUS_FILE_TOO_LARGE                                                     NTStatus      = 0xC0000904\n\tSTATUS_FORMS_AUTH_REQUIRED                                                NTStatus      = 0xC0000905\n\tSTATUS_VIRUS_INFECTED                                                     NTStatus      = 0xC0000906\n\tSTATUS_VIRUS_DELETED                                                      NTStatus      = 0xC0000907\n\tSTATUS_BAD_MCFG_TABLE                                                     NTStatus      = 0xC0000908\n\tSTATUS_CANNOT_BREAK_OPLOCK                                                NTStatus      = 0xC0000909\n\tSTATUS_BAD_KEY                                                            NTStatus      = 0xC000090A\n\tSTATUS_BAD_DATA                                                           NTStatus      = 0xC000090B\n\tSTATUS_NO_KEY                                                             NTStatus      = 0xC000090C\n\tSTATUS_FILE_HANDLE_REVOKED                                                NTStatus      = 0xC0000910\n\tSTATUS_WOW_ASSERTION                                                      NTStatus      = 0xC0009898\n\tSTATUS_INVALID_SIGNATURE                                                  NTStatus      = 0xC000A000\n\tSTATUS_HMAC_NOT_SUPPORTED                                                 NTStatus      = 0xC000A001\n\tSTATUS_AUTH_TAG_MISMATCH                                                  NTStatus      = 0xC000A002\n\tSTATUS_INVALID_STATE_TRANSITION                                           NTStatus      = 0xC000A003\n\tSTATUS_INVALID_KERNEL_INFO_VERSION                                        NTStatus      = 0xC000A004\n\tSTATUS_INVALID_PEP_INFO_VERSION                                           NTStatus      = 0xC000A005\n\tSTATUS_HANDLE_REVOKED                                                     NTStatus      = 0xC000A006\n\tSTATUS_EOF_ON_GHOSTED_RANGE                                               NTStatus      = 0xC000A007\n\tSTATUS_IPSEC_QUEUE_OVERFLOW                                               NTStatus      = 0xC000A010\n\tSTATUS_ND_QUEUE_OVERFLOW                                                  NTStatus      = 0xC000A011\n\tSTATUS_HOPLIMIT_EXCEEDED                                                  NTStatus      = 0xC000A012\n\tSTATUS_PROTOCOL_NOT_SUPPORTED                                             NTStatus      = 0xC000A013\n\tSTATUS_FASTPATH_REJECTED                                                  NTStatus      = 0xC000A014\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                         NTStatus      = 0xC000A080\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                         NTStatus      = 0xC000A081\n\tSTATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                             NTStatus      = 0xC000A082\n\tSTATUS_XML_PARSE_ERROR                                                    NTStatus      = 0xC000A083\n\tSTATUS_XMLDSIG_ERROR                                                      NTStatus      = 0xC000A084\n\tSTATUS_WRONG_COMPARTMENT                                                  NTStatus      = 0xC000A085\n\tSTATUS_AUTHIP_FAILURE                                                     NTStatus      = 0xC000A086\n\tSTATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                              NTStatus      = 0xC000A087\n\tSTATUS_DS_OID_NOT_FOUND                                                   NTStatus      = 0xC000A088\n\tSTATUS_INCORRECT_ACCOUNT_TYPE                                             NTStatus      = 0xC000A089\n\tSTATUS_HASH_NOT_SUPPORTED                                                 NTStatus      = 0xC000A100\n\tSTATUS_HASH_NOT_PRESENT                                                   NTStatus      = 0xC000A101\n\tSTATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED                               NTStatus      = 0xC000A121\n\tSTATUS_GPIO_CLIENT_INFORMATION_INVALID                                    NTStatus      = 0xC000A122\n\tSTATUS_GPIO_VERSION_NOT_SUPPORTED                                         NTStatus      = 0xC000A123\n\tSTATUS_GPIO_INVALID_REGISTRATION_PACKET                                   NTStatus      = 0xC000A124\n\tSTATUS_GPIO_OPERATION_DENIED                                              NTStatus      = 0xC000A125\n\tSTATUS_GPIO_INCOMPATIBLE_CONNECT_MODE                                     NTStatus      = 0xC000A126\n\tSTATUS_GPIO_INTERRUPT_ALREADY_UNMASKED                                    NTStatus      = 0x8000A127\n\tSTATUS_CANNOT_SWITCH_RUNLEVEL                                             NTStatus      = 0xC000A141\n\tSTATUS_INVALID_RUNLEVEL_SETTING                                           NTStatus      = 0xC000A142\n\tSTATUS_RUNLEVEL_SWITCH_TIMEOUT                                            NTStatus      = 0xC000A143\n\tSTATUS_SERVICES_FAILED_AUTOSTART                                          NTStatus      = 0x4000A144\n\tSTATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                      NTStatus      = 0xC000A145\n\tSTATUS_RUNLEVEL_SWITCH_IN_PROGRESS                                        NTStatus      = 0xC000A146\n\tSTATUS_NOT_APPCONTAINER                                                   NTStatus      = 0xC000A200\n\tSTATUS_NOT_SUPPORTED_IN_APPCONTAINER                                      NTStatus      = 0xC000A201\n\tSTATUS_INVALID_PACKAGE_SID_LENGTH                                         NTStatus      = 0xC000A202\n\tSTATUS_LPAC_ACCESS_DENIED                                                 NTStatus      = 0xC000A203\n\tSTATUS_ADMINLESS_ACCESS_DENIED                                            NTStatus      = 0xC000A204\n\tSTATUS_APP_DATA_NOT_FOUND                                                 NTStatus      = 0xC000A281\n\tSTATUS_APP_DATA_EXPIRED                                                   NTStatus      = 0xC000A282\n\tSTATUS_APP_DATA_CORRUPT                                                   NTStatus      = 0xC000A283\n\tSTATUS_APP_DATA_LIMIT_EXCEEDED                                            NTStatus      = 0xC000A284\n\tSTATUS_APP_DATA_REBOOT_REQUIRED                                           NTStatus      = 0xC000A285\n\tSTATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED                                     NTStatus      = 0xC000A2A1\n\tSTATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A2\n\tSTATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A3\n\tSTATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                   NTStatus      = 0xC000A2A4\n\tSTATUS_WOF_WIM_HEADER_CORRUPT                                             NTStatus      = 0xC000A2A5\n\tSTATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT                                     NTStatus      = 0xC000A2A6\n\tSTATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT                                    NTStatus      = 0xC000A2A7\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                             NTStatus      = 0xC000CE01\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                        NTStatus      = 0xC000CE02\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY                                    NTStatus      = 0xC000CE03\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                        NTStatus      = 0xC000CE04\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                       NTStatus      = 0xC000CE05\n\tSTATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                              NTStatus      = 0xC000CF00\n\tSTATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING                                    NTStatus      = 0xC000CF01\n\tSTATUS_CLOUD_FILE_METADATA_CORRUPT                                        NTStatus      = 0xC000CF02\n\tSTATUS_CLOUD_FILE_METADATA_TOO_LARGE                                      NTStatus      = 0xC000CF03\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                 NTStatus      = 0x8000CF04\n\tSTATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                 NTStatus      = 0x8000CF05\n\tSTATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                          NTStatus      = 0xC000CF06\n\tSTATUS_NOT_A_CLOUD_FILE                                                   NTStatus      = 0xC000CF07\n\tSTATUS_CLOUD_FILE_NOT_IN_SYNC                                             NTStatus      = 0xC000CF08\n\tSTATUS_CLOUD_FILE_ALREADY_CONNECTED                                       NTStatus      = 0xC000CF09\n\tSTATUS_CLOUD_FILE_NOT_SUPPORTED                                           NTStatus      = 0xC000CF0A\n\tSTATUS_CLOUD_FILE_INVALID_REQUEST                                         NTStatus      = 0xC000CF0B\n\tSTATUS_CLOUD_FILE_READ_ONLY_VOLUME                                        NTStatus      = 0xC000CF0C\n\tSTATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                 NTStatus      = 0xC000CF0D\n\tSTATUS_CLOUD_FILE_VALIDATION_FAILED                                       NTStatus      = 0xC000CF0E\n\tSTATUS_CLOUD_FILE_AUTHENTICATION_FAILED                                   NTStatus      = 0xC000CF0F\n\tSTATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES                                  NTStatus      = 0xC000CF10\n\tSTATUS_CLOUD_FILE_NETWORK_UNAVAILABLE                                     NTStatus      = 0xC000CF11\n\tSTATUS_CLOUD_FILE_UNSUCCESSFUL                                            NTStatus      = 0xC000CF12\n\tSTATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                     NTStatus      = 0xC000CF13\n\tSTATUS_CLOUD_FILE_IN_USE                                                  NTStatus      = 0xC000CF14\n\tSTATUS_CLOUD_FILE_PINNED                                                  NTStatus      = 0xC000CF15\n\tSTATUS_CLOUD_FILE_REQUEST_ABORTED                                         NTStatus      = 0xC000CF16\n\tSTATUS_CLOUD_FILE_PROPERTY_CORRUPT                                        NTStatus      = 0xC000CF17\n\tSTATUS_CLOUD_FILE_ACCESS_DENIED                                           NTStatus      = 0xC000CF18\n\tSTATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                  NTStatus      = 0xC000CF19\n\tSTATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                  NTStatus      = 0xC000CF1A\n\tSTATUS_CLOUD_FILE_REQUEST_CANCELED                                        NTStatus      = 0xC000CF1B\n\tSTATUS_CLOUD_FILE_PROVIDER_TERMINATED                                     NTStatus      = 0xC000CF1D\n\tSTATUS_NOT_A_CLOUD_SYNC_ROOT                                              NTStatus      = 0xC000CF1E\n\tSTATUS_CLOUD_FILE_REQUEST_TIMEOUT                                         NTStatus      = 0xC000CF1F\n\tSTATUS_ACPI_INVALID_OPCODE                                                NTStatus      = 0xC0140001\n\tSTATUS_ACPI_STACK_OVERFLOW                                                NTStatus      = 0xC0140002\n\tSTATUS_ACPI_ASSERT_FAILED                                                 NTStatus      = 0xC0140003\n\tSTATUS_ACPI_INVALID_INDEX                                                 NTStatus      = 0xC0140004\n\tSTATUS_ACPI_INVALID_ARGUMENT                                              NTStatus      = 0xC0140005\n\tSTATUS_ACPI_FATAL                                                         NTStatus      = 0xC0140006\n\tSTATUS_ACPI_INVALID_SUPERNAME                                             NTStatus      = 0xC0140007\n\tSTATUS_ACPI_INVALID_ARGTYPE                                               NTStatus      = 0xC0140008\n\tSTATUS_ACPI_INVALID_OBJTYPE                                               NTStatus      = 0xC0140009\n\tSTATUS_ACPI_INVALID_TARGETTYPE                                            NTStatus      = 0xC014000A\n\tSTATUS_ACPI_INCORRECT_ARGUMENT_COUNT                                      NTStatus      = 0xC014000B\n\tSTATUS_ACPI_ADDRESS_NOT_MAPPED                                            NTStatus      = 0xC014000C\n\tSTATUS_ACPI_INVALID_EVENTTYPE                                             NTStatus      = 0xC014000D\n\tSTATUS_ACPI_HANDLER_COLLISION                                             NTStatus      = 0xC014000E\n\tSTATUS_ACPI_INVALID_DATA                                                  NTStatus      = 0xC014000F\n\tSTATUS_ACPI_INVALID_REGION                                                NTStatus      = 0xC0140010\n\tSTATUS_ACPI_INVALID_ACCESS_SIZE                                           NTStatus      = 0xC0140011\n\tSTATUS_ACPI_ACQUIRE_GLOBAL_LOCK                                           NTStatus      = 0xC0140012\n\tSTATUS_ACPI_ALREADY_INITIALIZED                                           NTStatus      = 0xC0140013\n\tSTATUS_ACPI_NOT_INITIALIZED                                               NTStatus      = 0xC0140014\n\tSTATUS_ACPI_INVALID_MUTEX_LEVEL                                           NTStatus      = 0xC0140015\n\tSTATUS_ACPI_MUTEX_NOT_OWNED                                               NTStatus      = 0xC0140016\n\tSTATUS_ACPI_MUTEX_NOT_OWNER                                               NTStatus      = 0xC0140017\n\tSTATUS_ACPI_RS_ACCESS                                                     NTStatus      = 0xC0140018\n\tSTATUS_ACPI_INVALID_TABLE                                                 NTStatus      = 0xC0140019\n\tSTATUS_ACPI_REG_HANDLER_FAILED                                            NTStatus      = 0xC0140020\n\tSTATUS_ACPI_POWER_REQUEST_FAILED                                          NTStatus      = 0xC0140021\n\tSTATUS_CTX_WINSTATION_NAME_INVALID                                        NTStatus      = 0xC00A0001\n\tSTATUS_CTX_INVALID_PD                                                     NTStatus      = 0xC00A0002\n\tSTATUS_CTX_PD_NOT_FOUND                                                   NTStatus      = 0xC00A0003\n\tSTATUS_CTX_CDM_CONNECT                                                    NTStatus      = 0x400A0004\n\tSTATUS_CTX_CDM_DISCONNECT                                                 NTStatus      = 0x400A0005\n\tSTATUS_CTX_CLOSE_PENDING                                                  NTStatus      = 0xC00A0006\n\tSTATUS_CTX_NO_OUTBUF                                                      NTStatus      = 0xC00A0007\n\tSTATUS_CTX_MODEM_INF_NOT_FOUND                                            NTStatus      = 0xC00A0008\n\tSTATUS_CTX_INVALID_MODEMNAME                                              NTStatus      = 0xC00A0009\n\tSTATUS_CTX_RESPONSE_ERROR                                                 NTStatus      = 0xC00A000A\n\tSTATUS_CTX_MODEM_RESPONSE_TIMEOUT                                         NTStatus      = 0xC00A000B\n\tSTATUS_CTX_MODEM_RESPONSE_NO_CARRIER                                      NTStatus      = 0xC00A000C\n\tSTATUS_CTX_MODEM_RESPONSE_NO_DIALTONE                                     NTStatus      = 0xC00A000D\n\tSTATUS_CTX_MODEM_RESPONSE_BUSY                                            NTStatus      = 0xC00A000E\n\tSTATUS_CTX_MODEM_RESPONSE_VOICE                                           NTStatus      = 0xC00A000F\n\tSTATUS_CTX_TD_ERROR                                                       NTStatus      = 0xC00A0010\n\tSTATUS_CTX_LICENSE_CLIENT_INVALID                                         NTStatus      = 0xC00A0012\n\tSTATUS_CTX_LICENSE_NOT_AVAILABLE                                          NTStatus      = 0xC00A0013\n\tSTATUS_CTX_LICENSE_EXPIRED                                                NTStatus      = 0xC00A0014\n\tSTATUS_CTX_WINSTATION_NOT_FOUND                                           NTStatus      = 0xC00A0015\n\tSTATUS_CTX_WINSTATION_NAME_COLLISION                                      NTStatus      = 0xC00A0016\n\tSTATUS_CTX_WINSTATION_BUSY                                                NTStatus      = 0xC00A0017\n\tSTATUS_CTX_BAD_VIDEO_MODE                                                 NTStatus      = 0xC00A0018\n\tSTATUS_CTX_GRAPHICS_INVALID                                               NTStatus      = 0xC00A0022\n\tSTATUS_CTX_NOT_CONSOLE                                                    NTStatus      = 0xC00A0024\n\tSTATUS_CTX_CLIENT_QUERY_TIMEOUT                                           NTStatus      = 0xC00A0026\n\tSTATUS_CTX_CONSOLE_DISCONNECT                                             NTStatus      = 0xC00A0027\n\tSTATUS_CTX_CONSOLE_CONNECT                                                NTStatus      = 0xC00A0028\n\tSTATUS_CTX_SHADOW_DENIED                                                  NTStatus      = 0xC00A002A\n\tSTATUS_CTX_WINSTATION_ACCESS_DENIED                                       NTStatus      = 0xC00A002B\n\tSTATUS_CTX_INVALID_WD                                                     NTStatus      = 0xC00A002E\n\tSTATUS_CTX_WD_NOT_FOUND                                                   NTStatus      = 0xC00A002F\n\tSTATUS_CTX_SHADOW_INVALID                                                 NTStatus      = 0xC00A0030\n\tSTATUS_CTX_SHADOW_DISABLED                                                NTStatus      = 0xC00A0031\n\tSTATUS_RDP_PROTOCOL_ERROR                                                 NTStatus      = 0xC00A0032\n\tSTATUS_CTX_CLIENT_LICENSE_NOT_SET                                         NTStatus      = 0xC00A0033\n\tSTATUS_CTX_CLIENT_LICENSE_IN_USE                                          NTStatus      = 0xC00A0034\n\tSTATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                    NTStatus      = 0xC00A0035\n\tSTATUS_CTX_SHADOW_NOT_RUNNING                                             NTStatus      = 0xC00A0036\n\tSTATUS_CTX_LOGON_DISABLED                                                 NTStatus      = 0xC00A0037\n\tSTATUS_CTX_SECURITY_LAYER_ERROR                                           NTStatus      = 0xC00A0038\n\tSTATUS_TS_INCOMPATIBLE_SESSIONS                                           NTStatus      = 0xC00A0039\n\tSTATUS_TS_VIDEO_SUBSYSTEM_ERROR                                           NTStatus      = 0xC00A003A\n\tSTATUS_PNP_BAD_MPS_TABLE                                                  NTStatus      = 0xC0040035\n\tSTATUS_PNP_TRANSLATION_FAILED                                             NTStatus      = 0xC0040036\n\tSTATUS_PNP_IRQ_TRANSLATION_FAILED                                         NTStatus      = 0xC0040037\n\tSTATUS_PNP_INVALID_ID                                                     NTStatus      = 0xC0040038\n\tSTATUS_IO_REISSUE_AS_CACHED                                               NTStatus      = 0xC0040039\n\tSTATUS_MUI_FILE_NOT_FOUND                                                 NTStatus      = 0xC00B0001\n\tSTATUS_MUI_INVALID_FILE                                                   NTStatus      = 0xC00B0002\n\tSTATUS_MUI_INVALID_RC_CONFIG                                              NTStatus      = 0xC00B0003\n\tSTATUS_MUI_INVALID_LOCALE_NAME                                            NTStatus      = 0xC00B0004\n\tSTATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME                                  NTStatus      = 0xC00B0005\n\tSTATUS_MUI_FILE_NOT_LOADED                                                NTStatus      = 0xC00B0006\n\tSTATUS_RESOURCE_ENUM_USER_STOP                                            NTStatus      = 0xC00B0007\n\tSTATUS_FLT_NO_HANDLER_DEFINED                                             NTStatus      = 0xC01C0001\n\tSTATUS_FLT_CONTEXT_ALREADY_DEFINED                                        NTStatus      = 0xC01C0002\n\tSTATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST                                   NTStatus      = 0xC01C0003\n\tSTATUS_FLT_DISALLOW_FAST_IO                                               NTStatus      = 0xC01C0004\n\tSTATUS_FLT_INVALID_NAME_REQUEST                                           NTStatus      = 0xC01C0005\n\tSTATUS_FLT_NOT_SAFE_TO_POST_OPERATION                                     NTStatus      = 0xC01C0006\n\tSTATUS_FLT_NOT_INITIALIZED                                                NTStatus      = 0xC01C0007\n\tSTATUS_FLT_FILTER_NOT_READY                                               NTStatus      = 0xC01C0008\n\tSTATUS_FLT_POST_OPERATION_CLEANUP                                         NTStatus      = 0xC01C0009\n\tSTATUS_FLT_INTERNAL_ERROR                                                 NTStatus      = 0xC01C000A\n\tSTATUS_FLT_DELETING_OBJECT                                                NTStatus      = 0xC01C000B\n\tSTATUS_FLT_MUST_BE_NONPAGED_POOL                                          NTStatus      = 0xC01C000C\n\tSTATUS_FLT_DUPLICATE_ENTRY                                                NTStatus      = 0xC01C000D\n\tSTATUS_FLT_CBDQ_DISABLED                                                  NTStatus      = 0xC01C000E\n\tSTATUS_FLT_DO_NOT_ATTACH                                                  NTStatus      = 0xC01C000F\n\tSTATUS_FLT_DO_NOT_DETACH                                                  NTStatus      = 0xC01C0010\n\tSTATUS_FLT_INSTANCE_ALTITUDE_COLLISION                                    NTStatus      = 0xC01C0011\n\tSTATUS_FLT_INSTANCE_NAME_COLLISION                                        NTStatus      = 0xC01C0012\n\tSTATUS_FLT_FILTER_NOT_FOUND                                               NTStatus      = 0xC01C0013\n\tSTATUS_FLT_VOLUME_NOT_FOUND                                               NTStatus      = 0xC01C0014\n\tSTATUS_FLT_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC01C0015\n\tSTATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                   NTStatus      = 0xC01C0016\n\tSTATUS_FLT_INVALID_CONTEXT_REGISTRATION                                   NTStatus      = 0xC01C0017\n\tSTATUS_FLT_NAME_CACHE_MISS                                                NTStatus      = 0xC01C0018\n\tSTATUS_FLT_NO_DEVICE_OBJECT                                               NTStatus      = 0xC01C0019\n\tSTATUS_FLT_VOLUME_ALREADY_MOUNTED                                         NTStatus      = 0xC01C001A\n\tSTATUS_FLT_ALREADY_ENLISTED                                               NTStatus      = 0xC01C001B\n\tSTATUS_FLT_CONTEXT_ALREADY_LINKED                                         NTStatus      = 0xC01C001C\n\tSTATUS_FLT_NO_WAITER_FOR_REPLY                                            NTStatus      = 0xC01C0020\n\tSTATUS_FLT_REGISTRATION_BUSY                                              NTStatus      = 0xC01C0023\n\tSTATUS_SXS_SECTION_NOT_FOUND                                              NTStatus      = 0xC0150001\n\tSTATUS_SXS_CANT_GEN_ACTCTX                                                NTStatus      = 0xC0150002\n\tSTATUS_SXS_INVALID_ACTCTXDATA_FORMAT                                      NTStatus      = 0xC0150003\n\tSTATUS_SXS_ASSEMBLY_NOT_FOUND                                             NTStatus      = 0xC0150004\n\tSTATUS_SXS_MANIFEST_FORMAT_ERROR                                          NTStatus      = 0xC0150005\n\tSTATUS_SXS_MANIFEST_PARSE_ERROR                                           NTStatus      = 0xC0150006\n\tSTATUS_SXS_ACTIVATION_CONTEXT_DISABLED                                    NTStatus      = 0xC0150007\n\tSTATUS_SXS_KEY_NOT_FOUND                                                  NTStatus      = 0xC0150008\n\tSTATUS_SXS_VERSION_CONFLICT                                               NTStatus      = 0xC0150009\n\tSTATUS_SXS_WRONG_SECTION_TYPE                                             NTStatus      = 0xC015000A\n\tSTATUS_SXS_THREAD_QUERIES_DISABLED                                        NTStatus      = 0xC015000B\n\tSTATUS_SXS_ASSEMBLY_MISSING                                               NTStatus      = 0xC015000C\n\tSTATUS_SXS_RELEASE_ACTIVATION_CONTEXT                                     NTStatus      = 0x4015000D\n\tSTATUS_SXS_PROCESS_DEFAULT_ALREADY_SET                                    NTStatus      = 0xC015000E\n\tSTATUS_SXS_EARLY_DEACTIVATION                                             NTStatus      = 0xC015000F\n\tSTATUS_SXS_INVALID_DEACTIVATION                                           NTStatus      = 0xC0150010\n\tSTATUS_SXS_MULTIPLE_DEACTIVATION                                          NTStatus      = 0xC0150011\n\tSTATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                        NTStatus      = 0xC0150012\n\tSTATUS_SXS_PROCESS_TERMINATION_REQUESTED                                  NTStatus      = 0xC0150013\n\tSTATUS_SXS_CORRUPT_ACTIVATION_STACK                                       NTStatus      = 0xC0150014\n\tSTATUS_SXS_CORRUPTION                                                     NTStatus      = 0xC0150015\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                               NTStatus      = 0xC0150016\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                NTStatus      = 0xC0150017\n\tSTATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                   NTStatus      = 0xC0150018\n\tSTATUS_SXS_IDENTITY_PARSE_ERROR                                           NTStatus      = 0xC0150019\n\tSTATUS_SXS_COMPONENT_STORE_CORRUPT                                        NTStatus      = 0xC015001A\n\tSTATUS_SXS_FILE_HASH_MISMATCH                                             NTStatus      = 0xC015001B\n\tSTATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                  NTStatus      = 0xC015001C\n\tSTATUS_SXS_IDENTITIES_DIFFERENT                                           NTStatus      = 0xC015001D\n\tSTATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                   NTStatus      = 0xC015001E\n\tSTATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY                                      NTStatus      = 0xC015001F\n\tSTATUS_ADVANCED_INSTALLER_FAILED                                          NTStatus      = 0xC0150020\n\tSTATUS_XML_ENCODING_MISMATCH                                              NTStatus      = 0xC0150021\n\tSTATUS_SXS_MANIFEST_TOO_BIG                                               NTStatus      = 0xC0150022\n\tSTATUS_SXS_SETTING_NOT_REGISTERED                                         NTStatus      = 0xC0150023\n\tSTATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                 NTStatus      = 0xC0150024\n\tSTATUS_SMI_PRIMITIVE_INSTALLER_FAILED                                     NTStatus      = 0xC0150025\n\tSTATUS_GENERIC_COMMAND_FAILED                                             NTStatus      = 0xC0150026\n\tSTATUS_SXS_FILE_HASH_MISSING                                              NTStatus      = 0xC0150027\n\tSTATUS_CLUSTER_INVALID_NODE                                               NTStatus      = 0xC0130001\n\tSTATUS_CLUSTER_NODE_EXISTS                                                NTStatus      = 0xC0130002\n\tSTATUS_CLUSTER_JOIN_IN_PROGRESS                                           NTStatus      = 0xC0130003\n\tSTATUS_CLUSTER_NODE_NOT_FOUND                                             NTStatus      = 0xC0130004\n\tSTATUS_CLUSTER_LOCAL_NODE_NOT_FOUND                                       NTStatus      = 0xC0130005\n\tSTATUS_CLUSTER_NETWORK_EXISTS                                             NTStatus      = 0xC0130006\n\tSTATUS_CLUSTER_NETWORK_NOT_FOUND                                          NTStatus      = 0xC0130007\n\tSTATUS_CLUSTER_NETINTERFACE_EXISTS                                        NTStatus      = 0xC0130008\n\tSTATUS_CLUSTER_NETINTERFACE_NOT_FOUND                                     NTStatus      = 0xC0130009\n\tSTATUS_CLUSTER_INVALID_REQUEST                                            NTStatus      = 0xC013000A\n\tSTATUS_CLUSTER_INVALID_NETWORK_PROVIDER                                   NTStatus      = 0xC013000B\n\tSTATUS_CLUSTER_NODE_DOWN                                                  NTStatus      = 0xC013000C\n\tSTATUS_CLUSTER_NODE_UNREACHABLE                                           NTStatus      = 0xC013000D\n\tSTATUS_CLUSTER_NODE_NOT_MEMBER                                            NTStatus      = 0xC013000E\n\tSTATUS_CLUSTER_JOIN_NOT_IN_PROGRESS                                       NTStatus      = 0xC013000F\n\tSTATUS_CLUSTER_INVALID_NETWORK                                            NTStatus      = 0xC0130010\n\tSTATUS_CLUSTER_NO_NET_ADAPTERS                                            NTStatus      = 0xC0130011\n\tSTATUS_CLUSTER_NODE_UP                                                    NTStatus      = 0xC0130012\n\tSTATUS_CLUSTER_NODE_PAUSED                                                NTStatus      = 0xC0130013\n\tSTATUS_CLUSTER_NODE_NOT_PAUSED                                            NTStatus      = 0xC0130014\n\tSTATUS_CLUSTER_NO_SECURITY_CONTEXT                                        NTStatus      = 0xC0130015\n\tSTATUS_CLUSTER_NETWORK_NOT_INTERNAL                                       NTStatus      = 0xC0130016\n\tSTATUS_CLUSTER_POISONED                                                   NTStatus      = 0xC0130017\n\tSTATUS_CLUSTER_NON_CSV_PATH                                               NTStatus      = 0xC0130018\n\tSTATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL                                       NTStatus      = 0xC0130019\n\tSTATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS                          NTStatus      = 0xC0130020\n\tSTATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR                                       NTStatus      = 0xC0130021\n\tSTATUS_CLUSTER_CSV_REDIRECTED                                             NTStatus      = 0xC0130022\n\tSTATUS_CLUSTER_CSV_NOT_REDIRECTED                                         NTStatus      = 0xC0130023\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING                                        NTStatus      = 0xC0130024\n\tSTATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS                          NTStatus      = 0xC0130025\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL                    NTStatus      = 0xC0130026\n\tSTATUS_CLUSTER_CSV_NO_SNAPSHOTS                                           NTStatus      = 0xC0130027\n\tSTATUS_CSV_IO_PAUSE_TIMEOUT                                               NTStatus      = 0xC0130028\n\tSTATUS_CLUSTER_CSV_INVALID_HANDLE                                         NTStatus      = 0xC0130029\n\tSTATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                          NTStatus      = 0xC0130030\n\tSTATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED                                 NTStatus      = 0xC0130031\n\tSTATUS_TRANSACTIONAL_CONFLICT                                             NTStatus      = 0xC0190001\n\tSTATUS_INVALID_TRANSACTION                                                NTStatus      = 0xC0190002\n\tSTATUS_TRANSACTION_NOT_ACTIVE                                             NTStatus      = 0xC0190003\n\tSTATUS_TM_INITIALIZATION_FAILED                                           NTStatus      = 0xC0190004\n\tSTATUS_RM_NOT_ACTIVE                                                      NTStatus      = 0xC0190005\n\tSTATUS_RM_METADATA_CORRUPT                                                NTStatus      = 0xC0190006\n\tSTATUS_TRANSACTION_NOT_JOINED                                             NTStatus      = 0xC0190007\n\tSTATUS_DIRECTORY_NOT_RM                                                   NTStatus      = 0xC0190008\n\tSTATUS_COULD_NOT_RESIZE_LOG                                               NTStatus      = 0x80190009\n\tSTATUS_TRANSACTIONS_UNSUPPORTED_REMOTE                                    NTStatus      = 0xC019000A\n\tSTATUS_LOG_RESIZE_INVALID_SIZE                                            NTStatus      = 0xC019000B\n\tSTATUS_REMOTE_FILE_VERSION_MISMATCH                                       NTStatus      = 0xC019000C\n\tSTATUS_CRM_PROTOCOL_ALREADY_EXISTS                                        NTStatus      = 0xC019000F\n\tSTATUS_TRANSACTION_PROPAGATION_FAILED                                     NTStatus      = 0xC0190010\n\tSTATUS_CRM_PROTOCOL_NOT_FOUND                                             NTStatus      = 0xC0190011\n\tSTATUS_TRANSACTION_SUPERIOR_EXISTS                                        NTStatus      = 0xC0190012\n\tSTATUS_TRANSACTION_REQUEST_NOT_VALID                                      NTStatus      = 0xC0190013\n\tSTATUS_TRANSACTION_NOT_REQUESTED                                          NTStatus      = 0xC0190014\n\tSTATUS_TRANSACTION_ALREADY_ABORTED                                        NTStatus      = 0xC0190015\n\tSTATUS_TRANSACTION_ALREADY_COMMITTED                                      NTStatus      = 0xC0190016\n\tSTATUS_TRANSACTION_INVALID_MARSHALL_BUFFER                                NTStatus      = 0xC0190017\n\tSTATUS_CURRENT_TRANSACTION_NOT_VALID                                      NTStatus      = 0xC0190018\n\tSTATUS_LOG_GROWTH_FAILED                                                  NTStatus      = 0xC0190019\n\tSTATUS_OBJECT_NO_LONGER_EXISTS                                            NTStatus      = 0xC0190021\n\tSTATUS_STREAM_MINIVERSION_NOT_FOUND                                       NTStatus      = 0xC0190022\n\tSTATUS_STREAM_MINIVERSION_NOT_VALID                                       NTStatus      = 0xC0190023\n\tSTATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                NTStatus      = 0xC0190024\n\tSTATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                           NTStatus      = 0xC0190025\n\tSTATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS                               NTStatus      = 0xC0190026\n\tSTATUS_HANDLE_NO_LONGER_VALID                                             NTStatus      = 0xC0190028\n\tSTATUS_NO_TXF_METADATA                                                    NTStatus      = 0x80190029\n\tSTATUS_LOG_CORRUPTION_DETECTED                                            NTStatus      = 0xC0190030\n\tSTATUS_CANT_RECOVER_WITH_HANDLE_OPEN                                      NTStatus      = 0x80190031\n\tSTATUS_RM_DISCONNECTED                                                    NTStatus      = 0xC0190032\n\tSTATUS_ENLISTMENT_NOT_SUPERIOR                                            NTStatus      = 0xC0190033\n\tSTATUS_RECOVERY_NOT_NEEDED                                                NTStatus      = 0x40190034\n\tSTATUS_RM_ALREADY_STARTED                                                 NTStatus      = 0x40190035\n\tSTATUS_FILE_IDENTITY_NOT_PERSISTENT                                       NTStatus      = 0xC0190036\n\tSTATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                NTStatus      = 0xC0190037\n\tSTATUS_CANT_CROSS_RM_BOUNDARY                                             NTStatus      = 0xC0190038\n\tSTATUS_TXF_DIR_NOT_EMPTY                                                  NTStatus      = 0xC0190039\n\tSTATUS_INDOUBT_TRANSACTIONS_EXIST                                         NTStatus      = 0xC019003A\n\tSTATUS_TM_VOLATILE                                                        NTStatus      = 0xC019003B\n\tSTATUS_ROLLBACK_TIMER_EXPIRED                                             NTStatus      = 0xC019003C\n\tSTATUS_TXF_ATTRIBUTE_CORRUPT                                              NTStatus      = 0xC019003D\n\tSTATUS_EFS_NOT_ALLOWED_IN_TRANSACTION                                     NTStatus      = 0xC019003E\n\tSTATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED                                     NTStatus      = 0xC019003F\n\tSTATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                              NTStatus      = 0xC0190040\n\tSTATUS_TXF_METADATA_ALREADY_PRESENT                                       NTStatus      = 0x80190041\n\tSTATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                NTStatus      = 0x80190042\n\tSTATUS_TRANSACTION_REQUIRED_PROMOTION                                     NTStatus      = 0xC0190043\n\tSTATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                 NTStatus      = 0xC0190044\n\tSTATUS_TRANSACTIONS_NOT_FROZEN                                            NTStatus      = 0xC0190045\n\tSTATUS_TRANSACTION_FREEZE_IN_PROGRESS                                     NTStatus      = 0xC0190046\n\tSTATUS_NOT_SNAPSHOT_VOLUME                                                NTStatus      = 0xC0190047\n\tSTATUS_NO_SAVEPOINT_WITH_OPEN_FILES                                       NTStatus      = 0xC0190048\n\tSTATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                  NTStatus      = 0xC0190049\n\tSTATUS_TM_IDENTITY_MISMATCH                                               NTStatus      = 0xC019004A\n\tSTATUS_FLOATED_SECTION                                                    NTStatus      = 0xC019004B\n\tSTATUS_CANNOT_ACCEPT_TRANSACTED_WORK                                      NTStatus      = 0xC019004C\n\tSTATUS_CANNOT_ABORT_TRANSACTIONS                                          NTStatus      = 0xC019004D\n\tSTATUS_TRANSACTION_NOT_FOUND                                              NTStatus      = 0xC019004E\n\tSTATUS_RESOURCEMANAGER_NOT_FOUND                                          NTStatus      = 0xC019004F\n\tSTATUS_ENLISTMENT_NOT_FOUND                                               NTStatus      = 0xC0190050\n\tSTATUS_TRANSACTIONMANAGER_NOT_FOUND                                       NTStatus      = 0xC0190051\n\tSTATUS_TRANSACTIONMANAGER_NOT_ONLINE                                      NTStatus      = 0xC0190052\n\tSTATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                         NTStatus      = 0xC0190053\n\tSTATUS_TRANSACTION_NOT_ROOT                                               NTStatus      = 0xC0190054\n\tSTATUS_TRANSACTION_OBJECT_EXPIRED                                         NTStatus      = 0xC0190055\n\tSTATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                             NTStatus      = 0xC0190056\n\tSTATUS_TRANSACTION_RESPONSE_NOT_ENLISTED                                  NTStatus      = 0xC0190057\n\tSTATUS_TRANSACTION_RECORD_TOO_LONG                                        NTStatus      = 0xC0190058\n\tSTATUS_NO_LINK_TRACKING_IN_TRANSACTION                                    NTStatus      = 0xC0190059\n\tSTATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                             NTStatus      = 0xC019005A\n\tSTATUS_TRANSACTION_INTEGRITY_VIOLATED                                     NTStatus      = 0xC019005B\n\tSTATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH                               NTStatus      = 0xC019005C\n\tSTATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                   NTStatus      = 0xC019005D\n\tSTATUS_TRANSACTION_MUST_WRITETHROUGH                                      NTStatus      = 0xC019005E\n\tSTATUS_TRANSACTION_NO_SUPERIOR                                            NTStatus      = 0xC019005F\n\tSTATUS_EXPIRED_HANDLE                                                     NTStatus      = 0xC0190060\n\tSTATUS_TRANSACTION_NOT_ENLISTED                                           NTStatus      = 0xC0190061\n\tSTATUS_LOG_SECTOR_INVALID                                                 NTStatus      = 0xC01A0001\n\tSTATUS_LOG_SECTOR_PARITY_INVALID                                          NTStatus      = 0xC01A0002\n\tSTATUS_LOG_SECTOR_REMAPPED                                                NTStatus      = 0xC01A0003\n\tSTATUS_LOG_BLOCK_INCOMPLETE                                               NTStatus      = 0xC01A0004\n\tSTATUS_LOG_INVALID_RANGE                                                  NTStatus      = 0xC01A0005\n\tSTATUS_LOG_BLOCKS_EXHAUSTED                                               NTStatus      = 0xC01A0006\n\tSTATUS_LOG_READ_CONTEXT_INVALID                                           NTStatus      = 0xC01A0007\n\tSTATUS_LOG_RESTART_INVALID                                                NTStatus      = 0xC01A0008\n\tSTATUS_LOG_BLOCK_VERSION                                                  NTStatus      = 0xC01A0009\n\tSTATUS_LOG_BLOCK_INVALID                                                  NTStatus      = 0xC01A000A\n\tSTATUS_LOG_READ_MODE_INVALID                                              NTStatus      = 0xC01A000B\n\tSTATUS_LOG_NO_RESTART                                                     NTStatus      = 0x401A000C\n\tSTATUS_LOG_METADATA_CORRUPT                                               NTStatus      = 0xC01A000D\n\tSTATUS_LOG_METADATA_INVALID                                               NTStatus      = 0xC01A000E\n\tSTATUS_LOG_METADATA_INCONSISTENT                                          NTStatus      = 0xC01A000F\n\tSTATUS_LOG_RESERVATION_INVALID                                            NTStatus      = 0xC01A0010\n\tSTATUS_LOG_CANT_DELETE                                                    NTStatus      = 0xC01A0011\n\tSTATUS_LOG_CONTAINER_LIMIT_EXCEEDED                                       NTStatus      = 0xC01A0012\n\tSTATUS_LOG_START_OF_LOG                                                   NTStatus      = 0xC01A0013\n\tSTATUS_LOG_POLICY_ALREADY_INSTALLED                                       NTStatus      = 0xC01A0014\n\tSTATUS_LOG_POLICY_NOT_INSTALLED                                           NTStatus      = 0xC01A0015\n\tSTATUS_LOG_POLICY_INVALID                                                 NTStatus      = 0xC01A0016\n\tSTATUS_LOG_POLICY_CONFLICT                                                NTStatus      = 0xC01A0017\n\tSTATUS_LOG_PINNED_ARCHIVE_TAIL                                            NTStatus      = 0xC01A0018\n\tSTATUS_LOG_RECORD_NONEXISTENT                                             NTStatus      = 0xC01A0019\n\tSTATUS_LOG_RECORDS_RESERVED_INVALID                                       NTStatus      = 0xC01A001A\n\tSTATUS_LOG_SPACE_RESERVED_INVALID                                         NTStatus      = 0xC01A001B\n\tSTATUS_LOG_TAIL_INVALID                                                   NTStatus      = 0xC01A001C\n\tSTATUS_LOG_FULL                                                           NTStatus      = 0xC01A001D\n\tSTATUS_LOG_MULTIPLEXED                                                    NTStatus      = 0xC01A001E\n\tSTATUS_LOG_DEDICATED                                                      NTStatus      = 0xC01A001F\n\tSTATUS_LOG_ARCHIVE_NOT_IN_PROGRESS                                        NTStatus      = 0xC01A0020\n\tSTATUS_LOG_ARCHIVE_IN_PROGRESS                                            NTStatus      = 0xC01A0021\n\tSTATUS_LOG_EPHEMERAL                                                      NTStatus      = 0xC01A0022\n\tSTATUS_LOG_NOT_ENOUGH_CONTAINERS                                          NTStatus      = 0xC01A0023\n\tSTATUS_LOG_CLIENT_ALREADY_REGISTERED                                      NTStatus      = 0xC01A0024\n\tSTATUS_LOG_CLIENT_NOT_REGISTERED                                          NTStatus      = 0xC01A0025\n\tSTATUS_LOG_FULL_HANDLER_IN_PROGRESS                                       NTStatus      = 0xC01A0026\n\tSTATUS_LOG_CONTAINER_READ_FAILED                                          NTStatus      = 0xC01A0027\n\tSTATUS_LOG_CONTAINER_WRITE_FAILED                                         NTStatus      = 0xC01A0028\n\tSTATUS_LOG_CONTAINER_OPEN_FAILED                                          NTStatus      = 0xC01A0029\n\tSTATUS_LOG_CONTAINER_STATE_INVALID                                        NTStatus      = 0xC01A002A\n\tSTATUS_LOG_STATE_INVALID                                                  NTStatus      = 0xC01A002B\n\tSTATUS_LOG_PINNED                                                         NTStatus      = 0xC01A002C\n\tSTATUS_LOG_METADATA_FLUSH_FAILED                                          NTStatus      = 0xC01A002D\n\tSTATUS_LOG_INCONSISTENT_SECURITY                                          NTStatus      = 0xC01A002E\n\tSTATUS_LOG_APPENDED_FLUSH_FAILED                                          NTStatus      = 0xC01A002F\n\tSTATUS_LOG_PINNED_RESERVATION                                             NTStatus      = 0xC01A0030\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD                                   NTStatus      = 0xC01B00EA\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED                         NTStatus      = 0x801B00EB\n\tSTATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST                                  NTStatus      = 0x401B00EC\n\tSTATUS_MONITOR_NO_DESCRIPTOR                                              NTStatus      = 0xC01D0001\n\tSTATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                  NTStatus      = 0xC01D0002\n\tSTATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                NTStatus      = 0xC01D0003\n\tSTATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK                              NTStatus      = 0xC01D0004\n\tSTATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                          NTStatus      = 0xC01D0005\n\tSTATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                         NTStatus      = 0xC01D0006\n\tSTATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                         NTStatus      = 0xC01D0007\n\tSTATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA                                    NTStatus      = 0xC01D0008\n\tSTATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK                              NTStatus      = 0xC01D0009\n\tSTATUS_MONITOR_INVALID_MANUFACTURE_DATE                                   NTStatus      = 0xC01D000A\n\tSTATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                  NTStatus      = 0xC01E0000\n\tSTATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                   NTStatus      = 0xC01E0001\n\tSTATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER                                   NTStatus      = 0xC01E0002\n\tSTATUS_GRAPHICS_ADAPTER_WAS_RESET                                         NTStatus      = 0xC01E0003\n\tSTATUS_GRAPHICS_INVALID_DRIVER_MODEL                                      NTStatus      = 0xC01E0004\n\tSTATUS_GRAPHICS_PRESENT_MODE_CHANGED                                      NTStatus      = 0xC01E0005\n\tSTATUS_GRAPHICS_PRESENT_OCCLUDED                                          NTStatus      = 0xC01E0006\n\tSTATUS_GRAPHICS_PRESENT_DENIED                                            NTStatus      = 0xC01E0007\n\tSTATUS_GRAPHICS_CANNOTCOLORCONVERT                                        NTStatus      = 0xC01E0008\n\tSTATUS_GRAPHICS_DRIVER_MISMATCH                                           NTStatus      = 0xC01E0009\n\tSTATUS_GRAPHICS_PARTIAL_DATA_POPULATED                                    NTStatus      = 0x401E000A\n\tSTATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED                              NTStatus      = 0xC01E000B\n\tSTATUS_GRAPHICS_PRESENT_UNOCCLUDED                                        NTStatus      = 0xC01E000C\n\tSTATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                    NTStatus      = 0xC01E000D\n\tSTATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                               NTStatus      = 0xC01E000E\n\tSTATUS_GRAPHICS_PRESENT_INVALID_WINDOW                                    NTStatus      = 0xC01E000F\n\tSTATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                  NTStatus      = 0xC01E0010\n\tSTATUS_GRAPHICS_VAIL_STATE_CHANGED                                        NTStatus      = 0xC01E0011\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                        NTStatus      = 0xC01E0012\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                           NTStatus      = 0xC01E0013\n\tSTATUS_GRAPHICS_NO_VIDEO_MEMORY                                           NTStatus      = 0xC01E0100\n\tSTATUS_GRAPHICS_CANT_LOCK_MEMORY                                          NTStatus      = 0xC01E0101\n\tSTATUS_GRAPHICS_ALLOCATION_BUSY                                           NTStatus      = 0xC01E0102\n\tSTATUS_GRAPHICS_TOO_MANY_REFERENCES                                       NTStatus      = 0xC01E0103\n\tSTATUS_GRAPHICS_TRY_AGAIN_LATER                                           NTStatus      = 0xC01E0104\n\tSTATUS_GRAPHICS_TRY_AGAIN_NOW                                             NTStatus      = 0xC01E0105\n\tSTATUS_GRAPHICS_ALLOCATION_INVALID                                        NTStatus      = 0xC01E0106\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                          NTStatus      = 0xC01E0107\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                          NTStatus      = 0xC01E0108\n\tSTATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                              NTStatus      = 0xC01E0109\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_USAGE                                  NTStatus      = 0xC01E0110\n\tSTATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                             NTStatus      = 0xC01E0111\n\tSTATUS_GRAPHICS_ALLOCATION_CLOSED                                         NTStatus      = 0xC01E0112\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE                               NTStatus      = 0xC01E0113\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE                                 NTStatus      = 0xC01E0114\n\tSTATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE                                   NTStatus      = 0xC01E0115\n\tSTATUS_GRAPHICS_ALLOCATION_CONTENT_LOST                                   NTStatus      = 0xC01E0116\n\tSTATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                   NTStatus      = 0xC01E0200\n\tSTATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION                               NTStatus      = 0x401E0201\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                    NTStatus      = 0xC01E0300\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                              NTStatus      = 0xC01E0301\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                    NTStatus      = 0xC01E0302\n\tSTATUS_GRAPHICS_INVALID_VIDPN                                             NTStatus      = 0xC01E0303\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                              NTStatus      = 0xC01E0304\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                              NTStatus      = 0xC01E0305\n\tSTATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                              NTStatus      = 0xC01E0306\n\tSTATUS_GRAPHICS_MODE_NOT_PINNED                                           NTStatus      = 0x401E0307\n\tSTATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                               NTStatus      = 0xC01E0308\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET                               NTStatus      = 0xC01E0309\n\tSTATUS_GRAPHICS_INVALID_FREQUENCY                                         NTStatus      = 0xC01E030A\n\tSTATUS_GRAPHICS_INVALID_ACTIVE_REGION                                     NTStatus      = 0xC01E030B\n\tSTATUS_GRAPHICS_INVALID_TOTAL_REGION                                      NTStatus      = 0xC01E030C\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                         NTStatus      = 0xC01E0310\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                         NTStatus      = 0xC01E0311\n\tSTATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                            NTStatus      = 0xC01E0312\n\tSTATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                  NTStatus      = 0xC01E0313\n\tSTATUS_GRAPHICS_MODE_ALREADY_IN_MODESET                                   NTStatus      = 0xC01E0314\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                             NTStatus      = 0xC01E0315\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                             NTStatus      = 0xC01E0316\n\tSTATUS_GRAPHICS_SOURCE_ALREADY_IN_SET                                     NTStatus      = 0xC01E0317\n\tSTATUS_GRAPHICS_TARGET_ALREADY_IN_SET                                     NTStatus      = 0xC01E0318\n\tSTATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                NTStatus      = 0xC01E0319\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                             NTStatus      = 0xC01E031A\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                         NTStatus      = 0xC01E031B\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                            NTStatus      = 0xC01E031C\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                 NTStatus      = 0xC01E031D\n\tSTATUS_GRAPHICS_NO_PREFERRED_MODE                                         NTStatus      = 0x401E031E\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                             NTStatus      = 0xC01E031F\n\tSTATUS_GRAPHICS_STALE_MODESET                                             NTStatus      = 0xC01E0320\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                             NTStatus      = 0xC01E0321\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                               NTStatus      = 0xC01E0322\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                           NTStatus      = 0xC01E0323\n\tSTATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                    NTStatus      = 0xC01E0324\n\tSTATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION           NTStatus      = 0xC01E0325\n\tSTATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                   NTStatus      = 0xC01E0326\n\tSTATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                      NTStatus      = 0xC01E0327\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                     NTStatus      = 0xC01E0328\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                     NTStatus      = 0xC01E0329\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET                              NTStatus      = 0xC01E032A\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR                                 NTStatus      = 0xC01E032B\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                              NTStatus      = 0xC01E032C\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                          NTStatus      = 0xC01E032D\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                       NTStatus      = 0xC01E032E\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                          NTStatus      = 0xC01E032F\n\tSTATUS_GRAPHICS_RESOURCES_NOT_RELATED                                     NTStatus      = 0xC01E0330\n\tSTATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0331\n\tSTATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0332\n\tSTATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                 NTStatus      = 0xC01E0333\n\tSTATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER              NTStatus      = 0xC01E0334\n\tSTATUS_GRAPHICS_NO_VIDPNMGR                                               NTStatus      = 0xC01E0335\n\tSTATUS_GRAPHICS_NO_ACTIVE_VIDPN                                           NTStatus      = 0xC01E0336\n\tSTATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY                                      NTStatus      = 0xC01E0337\n\tSTATUS_GRAPHICS_MONITOR_NOT_CONNECTED                                     NTStatus      = 0xC01E0338\n\tSTATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0339\n\tSTATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                               NTStatus      = 0xC01E033A\n\tSTATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                NTStatus      = 0xC01E033B\n\tSTATUS_GRAPHICS_INVALID_STRIDE                                            NTStatus      = 0xC01E033C\n\tSTATUS_GRAPHICS_INVALID_PIXELFORMAT                                       NTStatus      = 0xC01E033D\n\tSTATUS_GRAPHICS_INVALID_COLORBASIS                                        NTStatus      = 0xC01E033E\n\tSTATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                              NTStatus      = 0xC01E033F\n\tSTATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0340\n\tSTATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                        NTStatus      = 0xC01E0341\n\tSTATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                       NTStatus      = 0xC01E0342\n\tSTATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                  NTStatus      = 0xC01E0343\n\tSTATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                           NTStatus      = 0xC01E0344\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION              NTStatus      = 0xC01E0345\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED        NTStatus      = 0xC01E0346\n\tSTATUS_GRAPHICS_INVALID_GAMMA_RAMP                                        NTStatus      = 0xC01E0347\n\tSTATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                  NTStatus      = 0xC01E0348\n\tSTATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                               NTStatus      = 0xC01E0349\n\tSTATUS_GRAPHICS_MODE_NOT_IN_MODESET                                       NTStatus      = 0xC01E034A\n\tSTATUS_GRAPHICS_DATASET_IS_EMPTY                                          NTStatus      = 0x401E034B\n\tSTATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                               NTStatus      = 0x401E034C\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON              NTStatus      = 0xC01E034D\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                 NTStatus      = 0xC01E034E\n\tSTATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE                               NTStatus      = 0xC01E034F\n\tSTATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                         NTStatus      = 0xC01E0350\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED           NTStatus      = 0x401E0351\n\tSTATUS_GRAPHICS_INVALID_SCANLINE_ORDERING                                 NTStatus      = 0xC01E0352\n\tSTATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                              NTStatus      = 0xC01E0353\n\tSTATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                          NTStatus      = 0xC01E0354\n\tSTATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                               NTStatus      = 0xC01E0355\n\tSTATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                            NTStatus      = 0xC01E0356\n\tSTATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                         NTStatus      = 0xC01E0357\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                 NTStatus      = 0xC01E0358\n\tSTATUS_GRAPHICS_MAX_NUM_PATHS_REACHED                                     NTStatus      = 0xC01E0359\n\tSTATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                        NTStatus      = 0xC01E035A\n\tSTATUS_GRAPHICS_INVALID_CLIENT_TYPE                                       NTStatus      = 0xC01E035B\n\tSTATUS_GRAPHICS_CLIENTVIDPN_NOT_SET                                       NTStatus      = 0xC01E035C\n\tSTATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                         NTStatus      = 0xC01E0400\n\tSTATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                            NTStatus      = 0xC01E0401\n\tSTATUS_GRAPHICS_UNKNOWN_CHILD_STATUS                                      NTStatus      = 0x401E042F\n\tSTATUS_GRAPHICS_NOT_A_LINKED_ADAPTER                                      NTStatus      = 0xC01E0430\n\tSTATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED                                   NTStatus      = 0xC01E0431\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                 NTStatus      = 0xC01E0432\n\tSTATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                   NTStatus      = 0xC01E0433\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_STARTED                                    NTStatus      = 0xC01E0434\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                 NTStatus      = 0xC01E0435\n\tSTATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                            NTStatus      = 0xC01E0436\n\tSTATUS_GRAPHICS_LEADLINK_START_DEFERRED                                   NTStatus      = 0x401E0437\n\tSTATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER                                    NTStatus      = 0xC01E0438\n\tSTATUS_GRAPHICS_POLLING_TOO_FREQUENTLY                                    NTStatus      = 0x401E0439\n\tSTATUS_GRAPHICS_START_DEFERRED                                            NTStatus      = 0x401E043A\n\tSTATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                               NTStatus      = 0xC01E043B\n\tSTATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS                                   NTStatus      = 0x401E043C\n\tSTATUS_GRAPHICS_OPM_NOT_SUPPORTED                                         NTStatus      = 0xC01E0500\n\tSTATUS_GRAPHICS_COPP_NOT_SUPPORTED                                        NTStatus      = 0xC01E0501\n\tSTATUS_GRAPHICS_UAB_NOT_SUPPORTED                                         NTStatus      = 0xC01E0502\n\tSTATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                          NTStatus      = 0xC01E0503\n\tSTATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST                            NTStatus      = 0xC01E0505\n\tSTATUS_GRAPHICS_OPM_INTERNAL_ERROR                                        NTStatus      = 0xC01E050B\n\tSTATUS_GRAPHICS_OPM_INVALID_HANDLE                                        NTStatus      = 0xC01E050C\n\tSTATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                            NTStatus      = 0xC01E050E\n\tSTATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                 NTStatus      = 0xC01E050F\n\tSTATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED                                  NTStatus      = 0xC01E0510\n\tSTATUS_GRAPHICS_PVP_HFS_FAILED                                            NTStatus      = 0xC01E0511\n\tSTATUS_GRAPHICS_OPM_INVALID_SRM                                           NTStatus      = 0xC01E0512\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                          NTStatus      = 0xC01E0513\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                           NTStatus      = 0xC01E0514\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                         NTStatus      = 0xC01E0515\n\tSTATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                    NTStatus      = 0xC01E0516\n\tSTATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                   NTStatus      = 0xC01E0517\n\tSTATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                      NTStatus      = 0xC01E0518\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS                     NTStatus      = 0xC01E051A\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS         NTStatus      = 0xC01E051C\n\tSTATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                           NTStatus      = 0xC01E051D\n\tSTATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                 NTStatus      = 0xC01E051E\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS          NTStatus      = 0xC01E051F\n\tSTATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                               NTStatus      = 0xC01E0520\n\tSTATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                         NTStatus      = 0xC01E0521\n\tSTATUS_GRAPHICS_I2C_NOT_SUPPORTED                                         NTStatus      = 0xC01E0580\n\tSTATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                 NTStatus      = 0xC01E0581\n\tSTATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                               NTStatus      = 0xC01E0582\n\tSTATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                  NTStatus      = 0xC01E0583\n\tSTATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                   NTStatus      = 0xC01E0584\n\tSTATUS_GRAPHICS_DDCCI_INVALID_DATA                                        NTStatus      = 0xC01E0585\n\tSTATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE         NTStatus      = 0xC01E0586\n\tSTATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING                         NTStatus      = 0xC01E0587\n\tSTATUS_GRAPHICS_MCA_INTERNAL_ERROR                                        NTStatus      = 0xC01E0588\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                             NTStatus      = 0xC01E0589\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                              NTStatus      = 0xC01E058A\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                            NTStatus      = 0xC01E058B\n\tSTATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                           NTStatus      = 0xC01E058C\n\tSTATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                  NTStatus      = 0xC01E058D\n\tSTATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                            NTStatus      = 0xC01E05E0\n\tSTATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                     NTStatus      = 0xC01E05E1\n\tSTATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                    NTStatus      = 0xC01E05E2\n\tSTATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                           NTStatus      = 0xC01E05E3\n\tSTATUS_GRAPHICS_INVALID_POINTER                                           NTStatus      = 0xC01E05E4\n\tSTATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                  NTStatus      = 0xC01E05E5\n\tSTATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                 NTStatus      = 0xC01E05E6\n\tSTATUS_GRAPHICS_INTERNAL_ERROR                                            NTStatus      = 0xC01E05E7\n\tSTATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                           NTStatus      = 0xC01E05E8\n\tSTATUS_FVE_LOCKED_VOLUME                                                  NTStatus      = 0xC0210000\n\tSTATUS_FVE_NOT_ENCRYPTED                                                  NTStatus      = 0xC0210001\n\tSTATUS_FVE_BAD_INFORMATION                                                NTStatus      = 0xC0210002\n\tSTATUS_FVE_TOO_SMALL                                                      NTStatus      = 0xC0210003\n\tSTATUS_FVE_FAILED_WRONG_FS                                                NTStatus      = 0xC0210004\n\tSTATUS_FVE_BAD_PARTITION_SIZE                                             NTStatus      = 0xC0210005\n\tSTATUS_FVE_FS_NOT_EXTENDED                                                NTStatus      = 0xC0210006\n\tSTATUS_FVE_FS_MOUNTED                                                     NTStatus      = 0xC0210007\n\tSTATUS_FVE_NO_LICENSE                                                     NTStatus      = 0xC0210008\n\tSTATUS_FVE_ACTION_NOT_ALLOWED                                             NTStatus      = 0xC0210009\n\tSTATUS_FVE_BAD_DATA                                                       NTStatus      = 0xC021000A\n\tSTATUS_FVE_VOLUME_NOT_BOUND                                               NTStatus      = 0xC021000B\n\tSTATUS_FVE_NOT_DATA_VOLUME                                                NTStatus      = 0xC021000C\n\tSTATUS_FVE_CONV_READ_ERROR                                                NTStatus      = 0xC021000D\n\tSTATUS_FVE_CONV_WRITE_ERROR                                               NTStatus      = 0xC021000E\n\tSTATUS_FVE_OVERLAPPED_UPDATE                                              NTStatus      = 0xC021000F\n\tSTATUS_FVE_FAILED_SECTOR_SIZE                                             NTStatus      = 0xC0210010\n\tSTATUS_FVE_FAILED_AUTHENTICATION                                          NTStatus      = 0xC0210011\n\tSTATUS_FVE_NOT_OS_VOLUME                                                  NTStatus      = 0xC0210012\n\tSTATUS_FVE_KEYFILE_NOT_FOUND                                              NTStatus      = 0xC0210013\n\tSTATUS_FVE_KEYFILE_INVALID                                                NTStatus      = 0xC0210014\n\tSTATUS_FVE_KEYFILE_NO_VMK                                                 NTStatus      = 0xC0210015\n\tSTATUS_FVE_TPM_DISABLED                                                   NTStatus      = 0xC0210016\n\tSTATUS_FVE_TPM_SRK_AUTH_NOT_ZERO                                          NTStatus      = 0xC0210017\n\tSTATUS_FVE_TPM_INVALID_PCR                                                NTStatus      = 0xC0210018\n\tSTATUS_FVE_TPM_NO_VMK                                                     NTStatus      = 0xC0210019\n\tSTATUS_FVE_PIN_INVALID                                                    NTStatus      = 0xC021001A\n\tSTATUS_FVE_AUTH_INVALID_APPLICATION                                       NTStatus      = 0xC021001B\n\tSTATUS_FVE_AUTH_INVALID_CONFIG                                            NTStatus      = 0xC021001C\n\tSTATUS_FVE_DEBUGGER_ENABLED                                               NTStatus      = 0xC021001D\n\tSTATUS_FVE_DRY_RUN_FAILED                                                 NTStatus      = 0xC021001E\n\tSTATUS_FVE_BAD_METADATA_POINTER                                           NTStatus      = 0xC021001F\n\tSTATUS_FVE_OLD_METADATA_COPY                                              NTStatus      = 0xC0210020\n\tSTATUS_FVE_REBOOT_REQUIRED                                                NTStatus      = 0xC0210021\n\tSTATUS_FVE_RAW_ACCESS                                                     NTStatus      = 0xC0210022\n\tSTATUS_FVE_RAW_BLOCKED                                                    NTStatus      = 0xC0210023\n\tSTATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY                                       NTStatus      = 0xC0210024\n\tSTATUS_FVE_MOR_FAILED                                                     NTStatus      = 0xC0210025\n\tSTATUS_FVE_NO_FEATURE_LICENSE                                             NTStatus      = 0xC0210026\n\tSTATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                            NTStatus      = 0xC0210027\n\tSTATUS_FVE_CONV_RECOVERY_FAILED                                           NTStatus      = 0xC0210028\n\tSTATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG                                      NTStatus      = 0xC0210029\n\tSTATUS_FVE_INVALID_DATUM_TYPE                                             NTStatus      = 0xC021002A\n\tSTATUS_FVE_VOLUME_TOO_SMALL                                               NTStatus      = 0xC0210030\n\tSTATUS_FVE_ENH_PIN_INVALID                                                NTStatus      = 0xC0210031\n\tSTATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                      NTStatus      = 0xC0210032\n\tSTATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                 NTStatus      = 0xC0210033\n\tSTATUS_FVE_NOT_ALLOWED_ON_CSV_STACK                                       NTStatus      = 0xC0210034\n\tSTATUS_FVE_NOT_ALLOWED_ON_CLUSTER                                         NTStatus      = 0xC0210035\n\tSTATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                        NTStatus      = 0xC0210036\n\tSTATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE                                     NTStatus      = 0xC0210037\n\tSTATUS_FVE_EDRIVE_DRY_RUN_FAILED                                          NTStatus      = 0xC0210038\n\tSTATUS_FVE_SECUREBOOT_DISABLED                                            NTStatus      = 0xC0210039\n\tSTATUS_FVE_SECUREBOOT_CONFIG_CHANGE                                       NTStatus      = 0xC021003A\n\tSTATUS_FVE_DEVICE_LOCKEDOUT                                               NTStatus      = 0xC021003B\n\tSTATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                             NTStatus      = 0xC021003C\n\tSTATUS_FVE_NOT_DE_VOLUME                                                  NTStatus      = 0xC021003D\n\tSTATUS_FVE_PROTECTION_DISABLED                                            NTStatus      = 0xC021003E\n\tSTATUS_FVE_PROTECTION_CANNOT_BE_DISABLED                                  NTStatus      = 0xC021003F\n\tSTATUS_FVE_OSV_KSR_NOT_ALLOWED                                            NTStatus      = 0xC0210040\n\tSTATUS_FWP_CALLOUT_NOT_FOUND                                              NTStatus      = 0xC0220001\n\tSTATUS_FWP_CONDITION_NOT_FOUND                                            NTStatus      = 0xC0220002\n\tSTATUS_FWP_FILTER_NOT_FOUND                                               NTStatus      = 0xC0220003\n\tSTATUS_FWP_LAYER_NOT_FOUND                                                NTStatus      = 0xC0220004\n\tSTATUS_FWP_PROVIDER_NOT_FOUND                                             NTStatus      = 0xC0220005\n\tSTATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND                                     NTStatus      = 0xC0220006\n\tSTATUS_FWP_SUBLAYER_NOT_FOUND                                             NTStatus      = 0xC0220007\n\tSTATUS_FWP_NOT_FOUND                                                      NTStatus      = 0xC0220008\n\tSTATUS_FWP_ALREADY_EXISTS                                                 NTStatus      = 0xC0220009\n\tSTATUS_FWP_IN_USE                                                         NTStatus      = 0xC022000A\n\tSTATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS                                    NTStatus      = 0xC022000B\n\tSTATUS_FWP_WRONG_SESSION                                                  NTStatus      = 0xC022000C\n\tSTATUS_FWP_NO_TXN_IN_PROGRESS                                             NTStatus      = 0xC022000D\n\tSTATUS_FWP_TXN_IN_PROGRESS                                                NTStatus      = 0xC022000E\n\tSTATUS_FWP_TXN_ABORTED                                                    NTStatus      = 0xC022000F\n\tSTATUS_FWP_SESSION_ABORTED                                                NTStatus      = 0xC0220010\n\tSTATUS_FWP_INCOMPATIBLE_TXN                                               NTStatus      = 0xC0220011\n\tSTATUS_FWP_TIMEOUT                                                        NTStatus      = 0xC0220012\n\tSTATUS_FWP_NET_EVENTS_DISABLED                                            NTStatus      = 0xC0220013\n\tSTATUS_FWP_INCOMPATIBLE_LAYER                                             NTStatus      = 0xC0220014\n\tSTATUS_FWP_KM_CLIENTS_ONLY                                                NTStatus      = 0xC0220015\n\tSTATUS_FWP_LIFETIME_MISMATCH                                              NTStatus      = 0xC0220016\n\tSTATUS_FWP_BUILTIN_OBJECT                                                 NTStatus      = 0xC0220017\n\tSTATUS_FWP_TOO_MANY_CALLOUTS                                              NTStatus      = 0xC0220018\n\tSTATUS_FWP_NOTIFICATION_DROPPED                                           NTStatus      = 0xC0220019\n\tSTATUS_FWP_TRAFFIC_MISMATCH                                               NTStatus      = 0xC022001A\n\tSTATUS_FWP_INCOMPATIBLE_SA_STATE                                          NTStatus      = 0xC022001B\n\tSTATUS_FWP_NULL_POINTER                                                   NTStatus      = 0xC022001C\n\tSTATUS_FWP_INVALID_ENUMERATOR                                             NTStatus      = 0xC022001D\n\tSTATUS_FWP_INVALID_FLAGS                                                  NTStatus      = 0xC022001E\n\tSTATUS_FWP_INVALID_NET_MASK                                               NTStatus      = 0xC022001F\n\tSTATUS_FWP_INVALID_RANGE                                                  NTStatus      = 0xC0220020\n\tSTATUS_FWP_INVALID_INTERVAL                                               NTStatus      = 0xC0220021\n\tSTATUS_FWP_ZERO_LENGTH_ARRAY                                              NTStatus      = 0xC0220022\n\tSTATUS_FWP_NULL_DISPLAY_NAME                                              NTStatus      = 0xC0220023\n\tSTATUS_FWP_INVALID_ACTION_TYPE                                            NTStatus      = 0xC0220024\n\tSTATUS_FWP_INVALID_WEIGHT                                                 NTStatus      = 0xC0220025\n\tSTATUS_FWP_MATCH_TYPE_MISMATCH                                            NTStatus      = 0xC0220026\n\tSTATUS_FWP_TYPE_MISMATCH                                                  NTStatus      = 0xC0220027\n\tSTATUS_FWP_OUT_OF_BOUNDS                                                  NTStatus      = 0xC0220028\n\tSTATUS_FWP_RESERVED                                                       NTStatus      = 0xC0220029\n\tSTATUS_FWP_DUPLICATE_CONDITION                                            NTStatus      = 0xC022002A\n\tSTATUS_FWP_DUPLICATE_KEYMOD                                               NTStatus      = 0xC022002B\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER                                 NTStatus      = 0xC022002C\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER                              NTStatus      = 0xC022002D\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER                                NTStatus      = 0xC022002E\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                              NTStatus      = 0xC022002F\n\tSTATUS_FWP_INCOMPATIBLE_AUTH_METHOD                                       NTStatus      = 0xC0220030\n\tSTATUS_FWP_INCOMPATIBLE_DH_GROUP                                          NTStatus      = 0xC0220031\n\tSTATUS_FWP_EM_NOT_SUPPORTED                                               NTStatus      = 0xC0220032\n\tSTATUS_FWP_NEVER_MATCH                                                    NTStatus      = 0xC0220033\n\tSTATUS_FWP_PROVIDER_CONTEXT_MISMATCH                                      NTStatus      = 0xC0220034\n\tSTATUS_FWP_INVALID_PARAMETER                                              NTStatus      = 0xC0220035\n\tSTATUS_FWP_TOO_MANY_SUBLAYERS                                             NTStatus      = 0xC0220036\n\tSTATUS_FWP_CALLOUT_NOTIFICATION_FAILED                                    NTStatus      = 0xC0220037\n\tSTATUS_FWP_INVALID_AUTH_TRANSFORM                                         NTStatus      = 0xC0220038\n\tSTATUS_FWP_INVALID_CIPHER_TRANSFORM                                       NTStatus      = 0xC0220039\n\tSTATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM                                  NTStatus      = 0xC022003A\n\tSTATUS_FWP_INVALID_TRANSFORM_COMBINATION                                  NTStatus      = 0xC022003B\n\tSTATUS_FWP_DUPLICATE_AUTH_METHOD                                          NTStatus      = 0xC022003C\n\tSTATUS_FWP_INVALID_TUNNEL_ENDPOINT                                        NTStatus      = 0xC022003D\n\tSTATUS_FWP_L2_DRIVER_NOT_READY                                            NTStatus      = 0xC022003E\n\tSTATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED                                NTStatus      = 0xC022003F\n\tSTATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL                          NTStatus      = 0xC0220040\n\tSTATUS_FWP_CONNECTIONS_DISABLED                                           NTStatus      = 0xC0220041\n\tSTATUS_FWP_INVALID_DNS_NAME                                               NTStatus      = 0xC0220042\n\tSTATUS_FWP_STILL_ON                                                       NTStatus      = 0xC0220043\n\tSTATUS_FWP_IKEEXT_NOT_RUNNING                                             NTStatus      = 0xC0220044\n\tSTATUS_FWP_TCPIP_NOT_READY                                                NTStatus      = 0xC0220100\n\tSTATUS_FWP_INJECT_HANDLE_CLOSING                                          NTStatus      = 0xC0220101\n\tSTATUS_FWP_INJECT_HANDLE_STALE                                            NTStatus      = 0xC0220102\n\tSTATUS_FWP_CANNOT_PEND                                                    NTStatus      = 0xC0220103\n\tSTATUS_FWP_DROP_NOICMP                                                    NTStatus      = 0xC0220104\n\tSTATUS_NDIS_CLOSING                                                       NTStatus      = 0xC0230002\n\tSTATUS_NDIS_BAD_VERSION                                                   NTStatus      = 0xC0230004\n\tSTATUS_NDIS_BAD_CHARACTERISTICS                                           NTStatus      = 0xC0230005\n\tSTATUS_NDIS_ADAPTER_NOT_FOUND                                             NTStatus      = 0xC0230006\n\tSTATUS_NDIS_OPEN_FAILED                                                   NTStatus      = 0xC0230007\n\tSTATUS_NDIS_DEVICE_FAILED                                                 NTStatus      = 0xC0230008\n\tSTATUS_NDIS_MULTICAST_FULL                                                NTStatus      = 0xC0230009\n\tSTATUS_NDIS_MULTICAST_EXISTS                                              NTStatus      = 0xC023000A\n\tSTATUS_NDIS_MULTICAST_NOT_FOUND                                           NTStatus      = 0xC023000B\n\tSTATUS_NDIS_REQUEST_ABORTED                                               NTStatus      = 0xC023000C\n\tSTATUS_NDIS_RESET_IN_PROGRESS                                             NTStatus      = 0xC023000D\n\tSTATUS_NDIS_NOT_SUPPORTED                                                 NTStatus      = 0xC02300BB\n\tSTATUS_NDIS_INVALID_PACKET                                                NTStatus      = 0xC023000F\n\tSTATUS_NDIS_ADAPTER_NOT_READY                                             NTStatus      = 0xC0230011\n\tSTATUS_NDIS_INVALID_LENGTH                                                NTStatus      = 0xC0230014\n\tSTATUS_NDIS_INVALID_DATA                                                  NTStatus      = 0xC0230015\n\tSTATUS_NDIS_BUFFER_TOO_SHORT                                              NTStatus      = 0xC0230016\n\tSTATUS_NDIS_INVALID_OID                                                   NTStatus      = 0xC0230017\n\tSTATUS_NDIS_ADAPTER_REMOVED                                               NTStatus      = 0xC0230018\n\tSTATUS_NDIS_UNSUPPORTED_MEDIA                                             NTStatus      = 0xC0230019\n\tSTATUS_NDIS_GROUP_ADDRESS_IN_USE                                          NTStatus      = 0xC023001A\n\tSTATUS_NDIS_FILE_NOT_FOUND                                                NTStatus      = 0xC023001B\n\tSTATUS_NDIS_ERROR_READING_FILE                                            NTStatus      = 0xC023001C\n\tSTATUS_NDIS_ALREADY_MAPPED                                                NTStatus      = 0xC023001D\n\tSTATUS_NDIS_RESOURCE_CONFLICT                                             NTStatus      = 0xC023001E\n\tSTATUS_NDIS_MEDIA_DISCONNECTED                                            NTStatus      = 0xC023001F\n\tSTATUS_NDIS_INVALID_ADDRESS                                               NTStatus      = 0xC0230022\n\tSTATUS_NDIS_INVALID_DEVICE_REQUEST                                        NTStatus      = 0xC0230010\n\tSTATUS_NDIS_PAUSED                                                        NTStatus      = 0xC023002A\n\tSTATUS_NDIS_INTERFACE_NOT_FOUND                                           NTStatus      = 0xC023002B\n\tSTATUS_NDIS_UNSUPPORTED_REVISION                                          NTStatus      = 0xC023002C\n\tSTATUS_NDIS_INVALID_PORT                                                  NTStatus      = 0xC023002D\n\tSTATUS_NDIS_INVALID_PORT_STATE                                            NTStatus      = 0xC023002E\n\tSTATUS_NDIS_LOW_POWER_STATE                                               NTStatus      = 0xC023002F\n\tSTATUS_NDIS_REINIT_REQUIRED                                               NTStatus      = 0xC0230030\n\tSTATUS_NDIS_NO_QUEUES                                                     NTStatus      = 0xC0230031\n\tSTATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED                                     NTStatus      = 0xC0232000\n\tSTATUS_NDIS_DOT11_MEDIA_IN_USE                                            NTStatus      = 0xC0232001\n\tSTATUS_NDIS_DOT11_POWER_STATE_INVALID                                     NTStatus      = 0xC0232002\n\tSTATUS_NDIS_PM_WOL_PATTERN_LIST_FULL                                      NTStatus      = 0xC0232003\n\tSTATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                 NTStatus      = 0xC0232004\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                      NTStatus      = 0xC0232005\n\tSTATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                         NTStatus      = 0xC0232006\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                  NTStatus      = 0xC0232007\n\tSTATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                     NTStatus      = 0xC0232008\n\tSTATUS_NDIS_INDICATION_REQUIRED                                           NTStatus      = 0x40230001\n\tSTATUS_NDIS_OFFLOAD_POLICY                                                NTStatus      = 0xC023100F\n\tSTATUS_NDIS_OFFLOAD_CONNECTION_REJECTED                                   NTStatus      = 0xC0231012\n\tSTATUS_NDIS_OFFLOAD_PATH_REJECTED                                         NTStatus      = 0xC0231013\n\tSTATUS_TPM_ERROR_MASK                                                     NTStatus      = 0xC0290000\n\tSTATUS_TPM_AUTHFAIL                                                       NTStatus      = 0xC0290001\n\tSTATUS_TPM_BADINDEX                                                       NTStatus      = 0xC0290002\n\tSTATUS_TPM_BAD_PARAMETER                                                  NTStatus      = 0xC0290003\n\tSTATUS_TPM_AUDITFAILURE                                                   NTStatus      = 0xC0290004\n\tSTATUS_TPM_CLEAR_DISABLED                                                 NTStatus      = 0xC0290005\n\tSTATUS_TPM_DEACTIVATED                                                    NTStatus      = 0xC0290006\n\tSTATUS_TPM_DISABLED                                                       NTStatus      = 0xC0290007\n\tSTATUS_TPM_DISABLED_CMD                                                   NTStatus      = 0xC0290008\n\tSTATUS_TPM_FAIL                                                           NTStatus      = 0xC0290009\n\tSTATUS_TPM_BAD_ORDINAL                                                    NTStatus      = 0xC029000A\n\tSTATUS_TPM_INSTALL_DISABLED                                               NTStatus      = 0xC029000B\n\tSTATUS_TPM_INVALID_KEYHANDLE                                              NTStatus      = 0xC029000C\n\tSTATUS_TPM_KEYNOTFOUND                                                    NTStatus      = 0xC029000D\n\tSTATUS_TPM_INAPPROPRIATE_ENC                                              NTStatus      = 0xC029000E\n\tSTATUS_TPM_MIGRATEFAIL                                                    NTStatus      = 0xC029000F\n\tSTATUS_TPM_INVALID_PCR_INFO                                               NTStatus      = 0xC0290010\n\tSTATUS_TPM_NOSPACE                                                        NTStatus      = 0xC0290011\n\tSTATUS_TPM_NOSRK                                                          NTStatus      = 0xC0290012\n\tSTATUS_TPM_NOTSEALED_BLOB                                                 NTStatus      = 0xC0290013\n\tSTATUS_TPM_OWNER_SET                                                      NTStatus      = 0xC0290014\n\tSTATUS_TPM_RESOURCES                                                      NTStatus      = 0xC0290015\n\tSTATUS_TPM_SHORTRANDOM                                                    NTStatus      = 0xC0290016\n\tSTATUS_TPM_SIZE                                                           NTStatus      = 0xC0290017\n\tSTATUS_TPM_WRONGPCRVAL                                                    NTStatus      = 0xC0290018\n\tSTATUS_TPM_BAD_PARAM_SIZE                                                 NTStatus      = 0xC0290019\n\tSTATUS_TPM_SHA_THREAD                                                     NTStatus      = 0xC029001A\n\tSTATUS_TPM_SHA_ERROR                                                      NTStatus      = 0xC029001B\n\tSTATUS_TPM_FAILEDSELFTEST                                                 NTStatus      = 0xC029001C\n\tSTATUS_TPM_AUTH2FAIL                                                      NTStatus      = 0xC029001D\n\tSTATUS_TPM_BADTAG                                                         NTStatus      = 0xC029001E\n\tSTATUS_TPM_IOERROR                                                        NTStatus      = 0xC029001F\n\tSTATUS_TPM_ENCRYPT_ERROR                                                  NTStatus      = 0xC0290020\n\tSTATUS_TPM_DECRYPT_ERROR                                                  NTStatus      = 0xC0290021\n\tSTATUS_TPM_INVALID_AUTHHANDLE                                             NTStatus      = 0xC0290022\n\tSTATUS_TPM_NO_ENDORSEMENT                                                 NTStatus      = 0xC0290023\n\tSTATUS_TPM_INVALID_KEYUSAGE                                               NTStatus      = 0xC0290024\n\tSTATUS_TPM_WRONG_ENTITYTYPE                                               NTStatus      = 0xC0290025\n\tSTATUS_TPM_INVALID_POSTINIT                                               NTStatus      = 0xC0290026\n\tSTATUS_TPM_INAPPROPRIATE_SIG                                              NTStatus      = 0xC0290027\n\tSTATUS_TPM_BAD_KEY_PROPERTY                                               NTStatus      = 0xC0290028\n\tSTATUS_TPM_BAD_MIGRATION                                                  NTStatus      = 0xC0290029\n\tSTATUS_TPM_BAD_SCHEME                                                     NTStatus      = 0xC029002A\n\tSTATUS_TPM_BAD_DATASIZE                                                   NTStatus      = 0xC029002B\n\tSTATUS_TPM_BAD_MODE                                                       NTStatus      = 0xC029002C\n\tSTATUS_TPM_BAD_PRESENCE                                                   NTStatus      = 0xC029002D\n\tSTATUS_TPM_BAD_VERSION                                                    NTStatus      = 0xC029002E\n\tSTATUS_TPM_NO_WRAP_TRANSPORT                                              NTStatus      = 0xC029002F\n\tSTATUS_TPM_AUDITFAIL_UNSUCCESSFUL                                         NTStatus      = 0xC0290030\n\tSTATUS_TPM_AUDITFAIL_SUCCESSFUL                                           NTStatus      = 0xC0290031\n\tSTATUS_TPM_NOTRESETABLE                                                   NTStatus      = 0xC0290032\n\tSTATUS_TPM_NOTLOCAL                                                       NTStatus      = 0xC0290033\n\tSTATUS_TPM_BAD_TYPE                                                       NTStatus      = 0xC0290034\n\tSTATUS_TPM_INVALID_RESOURCE                                               NTStatus      = 0xC0290035\n\tSTATUS_TPM_NOTFIPS                                                        NTStatus      = 0xC0290036\n\tSTATUS_TPM_INVALID_FAMILY                                                 NTStatus      = 0xC0290037\n\tSTATUS_TPM_NO_NV_PERMISSION                                               NTStatus      = 0xC0290038\n\tSTATUS_TPM_REQUIRES_SIGN                                                  NTStatus      = 0xC0290039\n\tSTATUS_TPM_KEY_NOTSUPPORTED                                               NTStatus      = 0xC029003A\n\tSTATUS_TPM_AUTH_CONFLICT                                                  NTStatus      = 0xC029003B\n\tSTATUS_TPM_AREA_LOCKED                                                    NTStatus      = 0xC029003C\n\tSTATUS_TPM_BAD_LOCALITY                                                   NTStatus      = 0xC029003D\n\tSTATUS_TPM_READ_ONLY                                                      NTStatus      = 0xC029003E\n\tSTATUS_TPM_PER_NOWRITE                                                    NTStatus      = 0xC029003F\n\tSTATUS_TPM_FAMILYCOUNT                                                    NTStatus      = 0xC0290040\n\tSTATUS_TPM_WRITE_LOCKED                                                   NTStatus      = 0xC0290041\n\tSTATUS_TPM_BAD_ATTRIBUTES                                                 NTStatus      = 0xC0290042\n\tSTATUS_TPM_INVALID_STRUCTURE                                              NTStatus      = 0xC0290043\n\tSTATUS_TPM_KEY_OWNER_CONTROL                                              NTStatus      = 0xC0290044\n\tSTATUS_TPM_BAD_COUNTER                                                    NTStatus      = 0xC0290045\n\tSTATUS_TPM_NOT_FULLWRITE                                                  NTStatus      = 0xC0290046\n\tSTATUS_TPM_CONTEXT_GAP                                                    NTStatus      = 0xC0290047\n\tSTATUS_TPM_MAXNVWRITES                                                    NTStatus      = 0xC0290048\n\tSTATUS_TPM_NOOPERATOR                                                     NTStatus      = 0xC0290049\n\tSTATUS_TPM_RESOURCEMISSING                                                NTStatus      = 0xC029004A\n\tSTATUS_TPM_DELEGATE_LOCK                                                  NTStatus      = 0xC029004B\n\tSTATUS_TPM_DELEGATE_FAMILY                                                NTStatus      = 0xC029004C\n\tSTATUS_TPM_DELEGATE_ADMIN                                                 NTStatus      = 0xC029004D\n\tSTATUS_TPM_TRANSPORT_NOTEXCLUSIVE                                         NTStatus      = 0xC029004E\n\tSTATUS_TPM_OWNER_CONTROL                                                  NTStatus      = 0xC029004F\n\tSTATUS_TPM_DAA_RESOURCES                                                  NTStatus      = 0xC0290050\n\tSTATUS_TPM_DAA_INPUT_DATA0                                                NTStatus      = 0xC0290051\n\tSTATUS_TPM_DAA_INPUT_DATA1                                                NTStatus      = 0xC0290052\n\tSTATUS_TPM_DAA_ISSUER_SETTINGS                                            NTStatus      = 0xC0290053\n\tSTATUS_TPM_DAA_TPM_SETTINGS                                               NTStatus      = 0xC0290054\n\tSTATUS_TPM_DAA_STAGE                                                      NTStatus      = 0xC0290055\n\tSTATUS_TPM_DAA_ISSUER_VALIDITY                                            NTStatus      = 0xC0290056\n\tSTATUS_TPM_DAA_WRONG_W                                                    NTStatus      = 0xC0290057\n\tSTATUS_TPM_BAD_HANDLE                                                     NTStatus      = 0xC0290058\n\tSTATUS_TPM_BAD_DELEGATE                                                   NTStatus      = 0xC0290059\n\tSTATUS_TPM_BADCONTEXT                                                     NTStatus      = 0xC029005A\n\tSTATUS_TPM_TOOMANYCONTEXTS                                                NTStatus      = 0xC029005B\n\tSTATUS_TPM_MA_TICKET_SIGNATURE                                            NTStatus      = 0xC029005C\n\tSTATUS_TPM_MA_DESTINATION                                                 NTStatus      = 0xC029005D\n\tSTATUS_TPM_MA_SOURCE                                                      NTStatus      = 0xC029005E\n\tSTATUS_TPM_MA_AUTHORITY                                                   NTStatus      = 0xC029005F\n\tSTATUS_TPM_PERMANENTEK                                                    NTStatus      = 0xC0290061\n\tSTATUS_TPM_BAD_SIGNATURE                                                  NTStatus      = 0xC0290062\n\tSTATUS_TPM_NOCONTEXTSPACE                                                 NTStatus      = 0xC0290063\n\tSTATUS_TPM_20_E_ASYMMETRIC                                                NTStatus      = 0xC0290081\n\tSTATUS_TPM_20_E_ATTRIBUTES                                                NTStatus      = 0xC0290082\n\tSTATUS_TPM_20_E_HASH                                                      NTStatus      = 0xC0290083\n\tSTATUS_TPM_20_E_VALUE                                                     NTStatus      = 0xC0290084\n\tSTATUS_TPM_20_E_HIERARCHY                                                 NTStatus      = 0xC0290085\n\tSTATUS_TPM_20_E_KEY_SIZE                                                  NTStatus      = 0xC0290087\n\tSTATUS_TPM_20_E_MGF                                                       NTStatus      = 0xC0290088\n\tSTATUS_TPM_20_E_MODE                                                      NTStatus      = 0xC0290089\n\tSTATUS_TPM_20_E_TYPE                                                      NTStatus      = 0xC029008A\n\tSTATUS_TPM_20_E_HANDLE                                                    NTStatus      = 0xC029008B\n\tSTATUS_TPM_20_E_KDF                                                       NTStatus      = 0xC029008C\n\tSTATUS_TPM_20_E_RANGE                                                     NTStatus      = 0xC029008D\n\tSTATUS_TPM_20_E_AUTH_FAIL                                                 NTStatus      = 0xC029008E\n\tSTATUS_TPM_20_E_NONCE                                                     NTStatus      = 0xC029008F\n\tSTATUS_TPM_20_E_PP                                                        NTStatus      = 0xC0290090\n\tSTATUS_TPM_20_E_SCHEME                                                    NTStatus      = 0xC0290092\n\tSTATUS_TPM_20_E_SIZE                                                      NTStatus      = 0xC0290095\n\tSTATUS_TPM_20_E_SYMMETRIC                                                 NTStatus      = 0xC0290096\n\tSTATUS_TPM_20_E_TAG                                                       NTStatus      = 0xC0290097\n\tSTATUS_TPM_20_E_SELECTOR                                                  NTStatus      = 0xC0290098\n\tSTATUS_TPM_20_E_INSUFFICIENT                                              NTStatus      = 0xC029009A\n\tSTATUS_TPM_20_E_SIGNATURE                                                 NTStatus      = 0xC029009B\n\tSTATUS_TPM_20_E_KEY                                                       NTStatus      = 0xC029009C\n\tSTATUS_TPM_20_E_POLICY_FAIL                                               NTStatus      = 0xC029009D\n\tSTATUS_TPM_20_E_INTEGRITY                                                 NTStatus      = 0xC029009F\n\tSTATUS_TPM_20_E_TICKET                                                    NTStatus      = 0xC02900A0\n\tSTATUS_TPM_20_E_RESERVED_BITS                                             NTStatus      = 0xC02900A1\n\tSTATUS_TPM_20_E_BAD_AUTH                                                  NTStatus      = 0xC02900A2\n\tSTATUS_TPM_20_E_EXPIRED                                                   NTStatus      = 0xC02900A3\n\tSTATUS_TPM_20_E_POLICY_CC                                                 NTStatus      = 0xC02900A4\n\tSTATUS_TPM_20_E_BINDING                                                   NTStatus      = 0xC02900A5\n\tSTATUS_TPM_20_E_CURVE                                                     NTStatus      = 0xC02900A6\n\tSTATUS_TPM_20_E_ECC_POINT                                                 NTStatus      = 0xC02900A7\n\tSTATUS_TPM_20_E_INITIALIZE                                                NTStatus      = 0xC0290100\n\tSTATUS_TPM_20_E_FAILURE                                                   NTStatus      = 0xC0290101\n\tSTATUS_TPM_20_E_SEQUENCE                                                  NTStatus      = 0xC0290103\n\tSTATUS_TPM_20_E_PRIVATE                                                   NTStatus      = 0xC029010B\n\tSTATUS_TPM_20_E_HMAC                                                      NTStatus      = 0xC0290119\n\tSTATUS_TPM_20_E_DISABLED                                                  NTStatus      = 0xC0290120\n\tSTATUS_TPM_20_E_EXCLUSIVE                                                 NTStatus      = 0xC0290121\n\tSTATUS_TPM_20_E_ECC_CURVE                                                 NTStatus      = 0xC0290123\n\tSTATUS_TPM_20_E_AUTH_TYPE                                                 NTStatus      = 0xC0290124\n\tSTATUS_TPM_20_E_AUTH_MISSING                                              NTStatus      = 0xC0290125\n\tSTATUS_TPM_20_E_POLICY                                                    NTStatus      = 0xC0290126\n\tSTATUS_TPM_20_E_PCR                                                       NTStatus      = 0xC0290127\n\tSTATUS_TPM_20_E_PCR_CHANGED                                               NTStatus      = 0xC0290128\n\tSTATUS_TPM_20_E_UPGRADE                                                   NTStatus      = 0xC029012D\n\tSTATUS_TPM_20_E_TOO_MANY_CONTEXTS                                         NTStatus      = 0xC029012E\n\tSTATUS_TPM_20_E_AUTH_UNAVAILABLE                                          NTStatus      = 0xC029012F\n\tSTATUS_TPM_20_E_REBOOT                                                    NTStatus      = 0xC0290130\n\tSTATUS_TPM_20_E_UNBALANCED                                                NTStatus      = 0xC0290131\n\tSTATUS_TPM_20_E_COMMAND_SIZE                                              NTStatus      = 0xC0290142\n\tSTATUS_TPM_20_E_COMMAND_CODE                                              NTStatus      = 0xC0290143\n\tSTATUS_TPM_20_E_AUTHSIZE                                                  NTStatus      = 0xC0290144\n\tSTATUS_TPM_20_E_AUTH_CONTEXT                                              NTStatus      = 0xC0290145\n\tSTATUS_TPM_20_E_NV_RANGE                                                  NTStatus      = 0xC0290146\n\tSTATUS_TPM_20_E_NV_SIZE                                                   NTStatus      = 0xC0290147\n\tSTATUS_TPM_20_E_NV_LOCKED                                                 NTStatus      = 0xC0290148\n\tSTATUS_TPM_20_E_NV_AUTHORIZATION                                          NTStatus      = 0xC0290149\n\tSTATUS_TPM_20_E_NV_UNINITIALIZED                                          NTStatus      = 0xC029014A\n\tSTATUS_TPM_20_E_NV_SPACE                                                  NTStatus      = 0xC029014B\n\tSTATUS_TPM_20_E_NV_DEFINED                                                NTStatus      = 0xC029014C\n\tSTATUS_TPM_20_E_BAD_CONTEXT                                               NTStatus      = 0xC0290150\n\tSTATUS_TPM_20_E_CPHASH                                                    NTStatus      = 0xC0290151\n\tSTATUS_TPM_20_E_PARENT                                                    NTStatus      = 0xC0290152\n\tSTATUS_TPM_20_E_NEEDS_TEST                                                NTStatus      = 0xC0290153\n\tSTATUS_TPM_20_E_NO_RESULT                                                 NTStatus      = 0xC0290154\n\tSTATUS_TPM_20_E_SENSITIVE                                                 NTStatus      = 0xC0290155\n\tSTATUS_TPM_COMMAND_BLOCKED                                                NTStatus      = 0xC0290400\n\tSTATUS_TPM_INVALID_HANDLE                                                 NTStatus      = 0xC0290401\n\tSTATUS_TPM_DUPLICATE_VHANDLE                                              NTStatus      = 0xC0290402\n\tSTATUS_TPM_EMBEDDED_COMMAND_BLOCKED                                       NTStatus      = 0xC0290403\n\tSTATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED                                   NTStatus      = 0xC0290404\n\tSTATUS_TPM_RETRY                                                          NTStatus      = 0xC0290800\n\tSTATUS_TPM_NEEDS_SELFTEST                                                 NTStatus      = 0xC0290801\n\tSTATUS_TPM_DOING_SELFTEST                                                 NTStatus      = 0xC0290802\n\tSTATUS_TPM_DEFEND_LOCK_RUNNING                                            NTStatus      = 0xC0290803\n\tSTATUS_TPM_COMMAND_CANCELED                                               NTStatus      = 0xC0291001\n\tSTATUS_TPM_TOO_MANY_CONTEXTS                                              NTStatus      = 0xC0291002\n\tSTATUS_TPM_NOT_FOUND                                                      NTStatus      = 0xC0291003\n\tSTATUS_TPM_ACCESS_DENIED                                                  NTStatus      = 0xC0291004\n\tSTATUS_TPM_INSUFFICIENT_BUFFER                                            NTStatus      = 0xC0291005\n\tSTATUS_TPM_PPI_FUNCTION_UNSUPPORTED                                       NTStatus      = 0xC0291006\n\tSTATUS_PCP_ERROR_MASK                                                     NTStatus      = 0xC0292000\n\tSTATUS_PCP_DEVICE_NOT_READY                                               NTStatus      = 0xC0292001\n\tSTATUS_PCP_INVALID_HANDLE                                                 NTStatus      = 0xC0292002\n\tSTATUS_PCP_INVALID_PARAMETER                                              NTStatus      = 0xC0292003\n\tSTATUS_PCP_FLAG_NOT_SUPPORTED                                             NTStatus      = 0xC0292004\n\tSTATUS_PCP_NOT_SUPPORTED                                                  NTStatus      = 0xC0292005\n\tSTATUS_PCP_BUFFER_TOO_SMALL                                               NTStatus      = 0xC0292006\n\tSTATUS_PCP_INTERNAL_ERROR                                                 NTStatus      = 0xC0292007\n\tSTATUS_PCP_AUTHENTICATION_FAILED                                          NTStatus      = 0xC0292008\n\tSTATUS_PCP_AUTHENTICATION_IGNORED                                         NTStatus      = 0xC0292009\n\tSTATUS_PCP_POLICY_NOT_FOUND                                               NTStatus      = 0xC029200A\n\tSTATUS_PCP_PROFILE_NOT_FOUND                                              NTStatus      = 0xC029200B\n\tSTATUS_PCP_VALIDATION_FAILED                                              NTStatus      = 0xC029200C\n\tSTATUS_PCP_DEVICE_NOT_FOUND                                               NTStatus      = 0xC029200D\n\tSTATUS_PCP_WRONG_PARENT                                                   NTStatus      = 0xC029200E\n\tSTATUS_PCP_KEY_NOT_LOADED                                                 NTStatus      = 0xC029200F\n\tSTATUS_PCP_NO_KEY_CERTIFICATION                                           NTStatus      = 0xC0292010\n\tSTATUS_PCP_KEY_NOT_FINALIZED                                              NTStatus      = 0xC0292011\n\tSTATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET                                  NTStatus      = 0xC0292012\n\tSTATUS_PCP_NOT_PCR_BOUND                                                  NTStatus      = 0xC0292013\n\tSTATUS_PCP_KEY_ALREADY_FINALIZED                                          NTStatus      = 0xC0292014\n\tSTATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED                                 NTStatus      = 0xC0292015\n\tSTATUS_PCP_KEY_USAGE_POLICY_INVALID                                       NTStatus      = 0xC0292016\n\tSTATUS_PCP_SOFT_KEY_ERROR                                                 NTStatus      = 0xC0292017\n\tSTATUS_PCP_KEY_NOT_AUTHENTICATED                                          NTStatus      = 0xC0292018\n\tSTATUS_PCP_KEY_NOT_AIK                                                    NTStatus      = 0xC0292019\n\tSTATUS_PCP_KEY_NOT_SIGNING_KEY                                            NTStatus      = 0xC029201A\n\tSTATUS_PCP_LOCKED_OUT                                                     NTStatus      = 0xC029201B\n\tSTATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED                                       NTStatus      = 0xC029201C\n\tSTATUS_PCP_TPM_VERSION_NOT_SUPPORTED                                      NTStatus      = 0xC029201D\n\tSTATUS_PCP_BUFFER_LENGTH_MISMATCH                                         NTStatus      = 0xC029201E\n\tSTATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                   NTStatus      = 0xC029201F\n\tSTATUS_PCP_TICKET_MISSING                                                 NTStatus      = 0xC0292020\n\tSTATUS_PCP_RAW_POLICY_NOT_SUPPORTED                                       NTStatus      = 0xC0292021\n\tSTATUS_PCP_KEY_HANDLE_INVALIDATED                                         NTStatus      = 0xC0292022\n\tSTATUS_PCP_UNSUPPORTED_PSS_SALT                                           NTStatus      = 0x40292023\n\tSTATUS_RTPM_CONTEXT_CONTINUE                                              NTStatus      = 0x00293000\n\tSTATUS_RTPM_CONTEXT_COMPLETE                                              NTStatus      = 0x00293001\n\tSTATUS_RTPM_NO_RESULT                                                     NTStatus      = 0xC0293002\n\tSTATUS_RTPM_PCR_READ_INCOMPLETE                                           NTStatus      = 0xC0293003\n\tSTATUS_RTPM_INVALID_CONTEXT                                               NTStatus      = 0xC0293004\n\tSTATUS_RTPM_UNSUPPORTED_CMD                                               NTStatus      = 0xC0293005\n\tSTATUS_TPM_ZERO_EXHAUST_ENABLED                                           NTStatus      = 0xC0294000\n\tSTATUS_HV_INVALID_HYPERCALL_CODE                                          NTStatus      = 0xC0350002\n\tSTATUS_HV_INVALID_HYPERCALL_INPUT                                         NTStatus      = 0xC0350003\n\tSTATUS_HV_INVALID_ALIGNMENT                                               NTStatus      = 0xC0350004\n\tSTATUS_HV_INVALID_PARAMETER                                               NTStatus      = 0xC0350005\n\tSTATUS_HV_ACCESS_DENIED                                                   NTStatus      = 0xC0350006\n\tSTATUS_HV_INVALID_PARTITION_STATE                                         NTStatus      = 0xC0350007\n\tSTATUS_HV_OPERATION_DENIED                                                NTStatus      = 0xC0350008\n\tSTATUS_HV_UNKNOWN_PROPERTY                                                NTStatus      = 0xC0350009\n\tSTATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE                                     NTStatus      = 0xC035000A\n\tSTATUS_HV_INSUFFICIENT_MEMORY                                             NTStatus      = 0xC035000B\n\tSTATUS_HV_PARTITION_TOO_DEEP                                              NTStatus      = 0xC035000C\n\tSTATUS_HV_INVALID_PARTITION_ID                                            NTStatus      = 0xC035000D\n\tSTATUS_HV_INVALID_VP_INDEX                                                NTStatus      = 0xC035000E\n\tSTATUS_HV_INVALID_PORT_ID                                                 NTStatus      = 0xC0350011\n\tSTATUS_HV_INVALID_CONNECTION_ID                                           NTStatus      = 0xC0350012\n\tSTATUS_HV_INSUFFICIENT_BUFFERS                                            NTStatus      = 0xC0350013\n\tSTATUS_HV_NOT_ACKNOWLEDGED                                                NTStatus      = 0xC0350014\n\tSTATUS_HV_INVALID_VP_STATE                                                NTStatus      = 0xC0350015\n\tSTATUS_HV_ACKNOWLEDGED                                                    NTStatus      = 0xC0350016\n\tSTATUS_HV_INVALID_SAVE_RESTORE_STATE                                      NTStatus      = 0xC0350017\n\tSTATUS_HV_INVALID_SYNIC_STATE                                             NTStatus      = 0xC0350018\n\tSTATUS_HV_OBJECT_IN_USE                                                   NTStatus      = 0xC0350019\n\tSTATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO                                   NTStatus      = 0xC035001A\n\tSTATUS_HV_NO_DATA                                                         NTStatus      = 0xC035001B\n\tSTATUS_HV_INACTIVE                                                        NTStatus      = 0xC035001C\n\tSTATUS_HV_NO_RESOURCES                                                    NTStatus      = 0xC035001D\n\tSTATUS_HV_FEATURE_UNAVAILABLE                                             NTStatus      = 0xC035001E\n\tSTATUS_HV_INSUFFICIENT_BUFFER                                             NTStatus      = 0xC0350033\n\tSTATUS_HV_INSUFFICIENT_DEVICE_DOMAINS                                     NTStatus      = 0xC0350038\n\tSTATUS_HV_CPUID_FEATURE_VALIDATION_ERROR                                  NTStatus      = 0xC035003C\n\tSTATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR                            NTStatus      = 0xC035003D\n\tSTATUS_HV_PROCESSOR_STARTUP_TIMEOUT                                       NTStatus      = 0xC035003E\n\tSTATUS_HV_SMX_ENABLED                                                     NTStatus      = 0xC035003F\n\tSTATUS_HV_INVALID_LP_INDEX                                                NTStatus      = 0xC0350041\n\tSTATUS_HV_INVALID_REGISTER_VALUE                                          NTStatus      = 0xC0350050\n\tSTATUS_HV_INVALID_VTL_STATE                                               NTStatus      = 0xC0350051\n\tSTATUS_HV_NX_NOT_DETECTED                                                 NTStatus      = 0xC0350055\n\tSTATUS_HV_INVALID_DEVICE_ID                                               NTStatus      = 0xC0350057\n\tSTATUS_HV_INVALID_DEVICE_STATE                                            NTStatus      = 0xC0350058\n\tSTATUS_HV_PENDING_PAGE_REQUESTS                                           NTStatus      = 0x00350059\n\tSTATUS_HV_PAGE_REQUEST_INVALID                                            NTStatus      = 0xC0350060\n\tSTATUS_HV_INVALID_CPU_GROUP_ID                                            NTStatus      = 0xC035006F\n\tSTATUS_HV_INVALID_CPU_GROUP_STATE                                         NTStatus      = 0xC0350070\n\tSTATUS_HV_OPERATION_FAILED                                                NTStatus      = 0xC0350071\n\tSTATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                             NTStatus      = 0xC0350072\n\tSTATUS_HV_INSUFFICIENT_ROOT_MEMORY                                        NTStatus      = 0xC0350073\n\tSTATUS_HV_NOT_PRESENT                                                     NTStatus      = 0xC0351000\n\tSTATUS_VID_DUPLICATE_HANDLER                                              NTStatus      = 0xC0370001\n\tSTATUS_VID_TOO_MANY_HANDLERS                                              NTStatus      = 0xC0370002\n\tSTATUS_VID_QUEUE_FULL                                                     NTStatus      = 0xC0370003\n\tSTATUS_VID_HANDLER_NOT_PRESENT                                            NTStatus      = 0xC0370004\n\tSTATUS_VID_INVALID_OBJECT_NAME                                            NTStatus      = 0xC0370005\n\tSTATUS_VID_PARTITION_NAME_TOO_LONG                                        NTStatus      = 0xC0370006\n\tSTATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                    NTStatus      = 0xC0370007\n\tSTATUS_VID_PARTITION_ALREADY_EXISTS                                       NTStatus      = 0xC0370008\n\tSTATUS_VID_PARTITION_DOES_NOT_EXIST                                       NTStatus      = 0xC0370009\n\tSTATUS_VID_PARTITION_NAME_NOT_FOUND                                       NTStatus      = 0xC037000A\n\tSTATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                   NTStatus      = 0xC037000B\n\tSTATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                   NTStatus      = 0xC037000C\n\tSTATUS_VID_MB_STILL_REFERENCED                                            NTStatus      = 0xC037000D\n\tSTATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                   NTStatus      = 0xC037000E\n\tSTATUS_VID_INVALID_NUMA_SETTINGS                                          NTStatus      = 0xC037000F\n\tSTATUS_VID_INVALID_NUMA_NODE_INDEX                                        NTStatus      = 0xC0370010\n\tSTATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                          NTStatus      = 0xC0370011\n\tSTATUS_VID_INVALID_MEMORY_BLOCK_HANDLE                                    NTStatus      = 0xC0370012\n\tSTATUS_VID_PAGE_RANGE_OVERFLOW                                            NTStatus      = 0xC0370013\n\tSTATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE                                   NTStatus      = 0xC0370014\n\tSTATUS_VID_INVALID_GPA_RANGE_HANDLE                                       NTStatus      = 0xC0370015\n\tSTATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                             NTStatus      = 0xC0370016\n\tSTATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                               NTStatus      = 0xC0370017\n\tSTATUS_VID_INVALID_PPM_HANDLE                                             NTStatus      = 0xC0370018\n\tSTATUS_VID_MBPS_ARE_LOCKED                                                NTStatus      = 0xC0370019\n\tSTATUS_VID_MESSAGE_QUEUE_CLOSED                                           NTStatus      = 0xC037001A\n\tSTATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                               NTStatus      = 0xC037001B\n\tSTATUS_VID_STOP_PENDING                                                   NTStatus      = 0xC037001C\n\tSTATUS_VID_INVALID_PROCESSOR_STATE                                        NTStatus      = 0xC037001D\n\tSTATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                NTStatus      = 0xC037001E\n\tSTATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED                               NTStatus      = 0xC037001F\n\tSTATUS_VID_MB_PROPERTY_ALREADY_SET_RESET                                  NTStatus      = 0xC0370020\n\tSTATUS_VID_MMIO_RANGE_DESTROYED                                           NTStatus      = 0xC0370021\n\tSTATUS_VID_INVALID_CHILD_GPA_PAGE_SET                                     NTStatus      = 0xC0370022\n\tSTATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED                                 NTStatus      = 0xC0370023\n\tSTATUS_VID_RESERVE_PAGE_SET_TOO_SMALL                                     NTStatus      = 0xC0370024\n\tSTATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                         NTStatus      = 0xC0370025\n\tSTATUS_VID_MBP_COUNT_EXCEEDED_LIMIT                                       NTStatus      = 0xC0370026\n\tSTATUS_VID_SAVED_STATE_CORRUPT                                            NTStatus      = 0xC0370027\n\tSTATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                  NTStatus      = 0xC0370028\n\tSTATUS_VID_SAVED_STATE_INCOMPATIBLE                                       NTStatus      = 0xC0370029\n\tSTATUS_VID_VTL_ACCESS_DENIED                                              NTStatus      = 0xC037002A\n\tSTATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                              NTStatus      = 0x80370001\n\tSTATUS_IPSEC_BAD_SPI                                                      NTStatus      = 0xC0360001\n\tSTATUS_IPSEC_SA_LIFETIME_EXPIRED                                          NTStatus      = 0xC0360002\n\tSTATUS_IPSEC_WRONG_SA                                                     NTStatus      = 0xC0360003\n\tSTATUS_IPSEC_REPLAY_CHECK_FAILED                                          NTStatus      = 0xC0360004\n\tSTATUS_IPSEC_INVALID_PACKET                                               NTStatus      = 0xC0360005\n\tSTATUS_IPSEC_INTEGRITY_CHECK_FAILED                                       NTStatus      = 0xC0360006\n\tSTATUS_IPSEC_CLEAR_TEXT_DROP                                              NTStatus      = 0xC0360007\n\tSTATUS_IPSEC_AUTH_FIREWALL_DROP                                           NTStatus      = 0xC0360008\n\tSTATUS_IPSEC_THROTTLE_DROP                                                NTStatus      = 0xC0360009\n\tSTATUS_IPSEC_DOSP_BLOCK                                                   NTStatus      = 0xC0368000\n\tSTATUS_IPSEC_DOSP_RECEIVED_MULTICAST                                      NTStatus      = 0xC0368001\n\tSTATUS_IPSEC_DOSP_INVALID_PACKET                                          NTStatus      = 0xC0368002\n\tSTATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED                                     NTStatus      = 0xC0368003\n\tSTATUS_IPSEC_DOSP_MAX_ENTRIES                                             NTStatus      = 0xC0368004\n\tSTATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                      NTStatus      = 0xC0368005\n\tSTATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                             NTStatus      = 0xC0368006\n\tSTATUS_VOLMGR_INCOMPLETE_REGENERATION                                     NTStatus      = 0x80380001\n\tSTATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION                                   NTStatus      = 0x80380002\n\tSTATUS_VOLMGR_DATABASE_FULL                                               NTStatus      = 0xC0380001\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                NTStatus      = 0xC0380002\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                              NTStatus      = 0xC0380003\n\tSTATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                   NTStatus      = 0xC0380004\n\tSTATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                             NTStatus      = 0xC0380005\n\tSTATUS_VOLMGR_DISK_DUPLICATE                                              NTStatus      = 0xC0380006\n\tSTATUS_VOLMGR_DISK_DYNAMIC                                                NTStatus      = 0xC0380007\n\tSTATUS_VOLMGR_DISK_ID_INVALID                                             NTStatus      = 0xC0380008\n\tSTATUS_VOLMGR_DISK_INVALID                                                NTStatus      = 0xC0380009\n\tSTATUS_VOLMGR_DISK_LAST_VOTER                                             NTStatus      = 0xC038000A\n\tSTATUS_VOLMGR_DISK_LAYOUT_INVALID                                         NTStatus      = 0xC038000B\n\tSTATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS              NTStatus      = 0xC038000C\n\tSTATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                            NTStatus      = 0xC038000D\n\tSTATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                            NTStatus      = 0xC038000E\n\tSTATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS              NTStatus      = 0xC038000F\n\tSTATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                             NTStatus      = 0xC0380010\n\tSTATUS_VOLMGR_DISK_MISSING                                                NTStatus      = 0xC0380011\n\tSTATUS_VOLMGR_DISK_NOT_EMPTY                                              NTStatus      = 0xC0380012\n\tSTATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE                                       NTStatus      = 0xC0380013\n\tSTATUS_VOLMGR_DISK_REVECTORING_FAILED                                     NTStatus      = 0xC0380014\n\tSTATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID                                    NTStatus      = 0xC0380015\n\tSTATUS_VOLMGR_DISK_SET_NOT_CONTAINED                                      NTStatus      = 0xC0380016\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                               NTStatus      = 0xC0380017\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                NTStatus      = 0xC0380018\n\tSTATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                  NTStatus      = 0xC0380019\n\tSTATUS_VOLMGR_EXTENT_ALREADY_USED                                         NTStatus      = 0xC038001A\n\tSTATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS                                       NTStatus      = 0xC038001B\n\tSTATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                 NTStatus      = 0xC038001C\n\tSTATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                   NTStatus      = 0xC038001D\n\tSTATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                               NTStatus      = 0xC038001E\n\tSTATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                          NTStatus      = 0xC038001F\n\tSTATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                NTStatus      = 0xC0380020\n\tSTATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0380021\n\tSTATUS_VOLMGR_MAXIMUM_REGISTERED_USERS                                    NTStatus      = 0xC0380022\n\tSTATUS_VOLMGR_MEMBER_IN_SYNC                                              NTStatus      = 0xC0380023\n\tSTATUS_VOLMGR_MEMBER_INDEX_DUPLICATE                                      NTStatus      = 0xC0380024\n\tSTATUS_VOLMGR_MEMBER_INDEX_INVALID                                        NTStatus      = 0xC0380025\n\tSTATUS_VOLMGR_MEMBER_MISSING                                              NTStatus      = 0xC0380026\n\tSTATUS_VOLMGR_MEMBER_NOT_DETACHED                                         NTStatus      = 0xC0380027\n\tSTATUS_VOLMGR_MEMBER_REGENERATING                                         NTStatus      = 0xC0380028\n\tSTATUS_VOLMGR_ALL_DISKS_FAILED                                            NTStatus      = 0xC0380029\n\tSTATUS_VOLMGR_NO_REGISTERED_USERS                                         NTStatus      = 0xC038002A\n\tSTATUS_VOLMGR_NO_SUCH_USER                                                NTStatus      = 0xC038002B\n\tSTATUS_VOLMGR_NOTIFICATION_RESET                                          NTStatus      = 0xC038002C\n\tSTATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                   NTStatus      = 0xC038002D\n\tSTATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID                                    NTStatus      = 0xC038002E\n\tSTATUS_VOLMGR_PACK_DUPLICATE                                              NTStatus      = 0xC038002F\n\tSTATUS_VOLMGR_PACK_ID_INVALID                                             NTStatus      = 0xC0380030\n\tSTATUS_VOLMGR_PACK_INVALID                                                NTStatus      = 0xC0380031\n\tSTATUS_VOLMGR_PACK_NAME_INVALID                                           NTStatus      = 0xC0380032\n\tSTATUS_VOLMGR_PACK_OFFLINE                                                NTStatus      = 0xC0380033\n\tSTATUS_VOLMGR_PACK_HAS_QUORUM                                             NTStatus      = 0xC0380034\n\tSTATUS_VOLMGR_PACK_WITHOUT_QUORUM                                         NTStatus      = 0xC0380035\n\tSTATUS_VOLMGR_PARTITION_STYLE_INVALID                                     NTStatus      = 0xC0380036\n\tSTATUS_VOLMGR_PARTITION_UPDATE_FAILED                                     NTStatus      = 0xC0380037\n\tSTATUS_VOLMGR_PLEX_IN_SYNC                                                NTStatus      = 0xC0380038\n\tSTATUS_VOLMGR_PLEX_INDEX_DUPLICATE                                        NTStatus      = 0xC0380039\n\tSTATUS_VOLMGR_PLEX_INDEX_INVALID                                          NTStatus      = 0xC038003A\n\tSTATUS_VOLMGR_PLEX_LAST_ACTIVE                                            NTStatus      = 0xC038003B\n\tSTATUS_VOLMGR_PLEX_MISSING                                                NTStatus      = 0xC038003C\n\tSTATUS_VOLMGR_PLEX_REGENERATING                                           NTStatus      = 0xC038003D\n\tSTATUS_VOLMGR_PLEX_TYPE_INVALID                                           NTStatus      = 0xC038003E\n\tSTATUS_VOLMGR_PLEX_NOT_RAID5                                              NTStatus      = 0xC038003F\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE                                             NTStatus      = 0xC0380040\n\tSTATUS_VOLMGR_STRUCTURE_SIZE_INVALID                                      NTStatus      = 0xC0380041\n\tSTATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                              NTStatus      = 0xC0380042\n\tSTATUS_VOLMGR_TRANSACTION_IN_PROGRESS                                     NTStatus      = 0xC0380043\n\tSTATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                               NTStatus      = 0xC0380044\n\tSTATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                NTStatus      = 0xC0380045\n\tSTATUS_VOLMGR_VOLUME_ID_INVALID                                           NTStatus      = 0xC0380046\n\tSTATUS_VOLMGR_VOLUME_LENGTH_INVALID                                       NTStatus      = 0xC0380047\n\tSTATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                      NTStatus      = 0xC0380048\n\tSTATUS_VOLMGR_VOLUME_NOT_MIRRORED                                         NTStatus      = 0xC0380049\n\tSTATUS_VOLMGR_VOLUME_NOT_RETAINED                                         NTStatus      = 0xC038004A\n\tSTATUS_VOLMGR_VOLUME_OFFLINE                                              NTStatus      = 0xC038004B\n\tSTATUS_VOLMGR_VOLUME_RETAINED                                             NTStatus      = 0xC038004C\n\tSTATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                   NTStatus      = 0xC038004D\n\tSTATUS_VOLMGR_DIFFERENT_SECTOR_SIZE                                       NTStatus      = 0xC038004E\n\tSTATUS_VOLMGR_BAD_BOOT_DISK                                               NTStatus      = 0xC038004F\n\tSTATUS_VOLMGR_PACK_CONFIG_OFFLINE                                         NTStatus      = 0xC0380050\n\tSTATUS_VOLMGR_PACK_CONFIG_ONLINE                                          NTStatus      = 0xC0380051\n\tSTATUS_VOLMGR_NOT_PRIMARY_PACK                                            NTStatus      = 0xC0380052\n\tSTATUS_VOLMGR_PACK_LOG_UPDATE_FAILED                                      NTStatus      = 0xC0380053\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                             NTStatus      = 0xC0380054\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                           NTStatus      = 0xC0380055\n\tSTATUS_VOLMGR_VOLUME_MIRRORED                                             NTStatus      = 0xC0380056\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                     NTStatus      = 0xC0380057\n\tSTATUS_VOLMGR_NO_VALID_LOG_COPIES                                         NTStatus      = 0xC0380058\n\tSTATUS_VOLMGR_PRIMARY_PACK_PRESENT                                        NTStatus      = 0xC0380059\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_INVALID                                     NTStatus      = 0xC038005A\n\tSTATUS_VOLMGR_MIRROR_NOT_SUPPORTED                                        NTStatus      = 0xC038005B\n\tSTATUS_VOLMGR_RAID5_NOT_SUPPORTED                                         NTStatus      = 0xC038005C\n\tSTATUS_BCD_NOT_ALL_ENTRIES_IMPORTED                                       NTStatus      = 0x80390001\n\tSTATUS_BCD_TOO_MANY_ELEMENTS                                              NTStatus      = 0xC0390002\n\tSTATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                   NTStatus      = 0x80390003\n\tSTATUS_VHD_DRIVE_FOOTER_MISSING                                           NTStatus      = 0xC03A0001\n\tSTATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                 NTStatus      = 0xC03A0002\n\tSTATUS_VHD_DRIVE_FOOTER_CORRUPT                                           NTStatus      = 0xC03A0003\n\tSTATUS_VHD_FORMAT_UNKNOWN                                                 NTStatus      = 0xC03A0004\n\tSTATUS_VHD_FORMAT_UNSUPPORTED_VERSION                                     NTStatus      = 0xC03A0005\n\tSTATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                NTStatus      = 0xC03A0006\n\tSTATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                              NTStatus      = 0xC03A0007\n\tSTATUS_VHD_SPARSE_HEADER_CORRUPT                                          NTStatus      = 0xC03A0008\n\tSTATUS_VHD_BLOCK_ALLOCATION_FAILURE                                       NTStatus      = 0xC03A0009\n\tSTATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                 NTStatus      = 0xC03A000A\n\tSTATUS_VHD_INVALID_BLOCK_SIZE                                             NTStatus      = 0xC03A000B\n\tSTATUS_VHD_BITMAP_MISMATCH                                                NTStatus      = 0xC03A000C\n\tSTATUS_VHD_PARENT_VHD_NOT_FOUND                                           NTStatus      = 0xC03A000D\n\tSTATUS_VHD_CHILD_PARENT_ID_MISMATCH                                       NTStatus      = 0xC03A000E\n\tSTATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                NTStatus      = 0xC03A000F\n\tSTATUS_VHD_METADATA_READ_FAILURE                                          NTStatus      = 0xC03A0010\n\tSTATUS_VHD_METADATA_WRITE_FAILURE                                         NTStatus      = 0xC03A0011\n\tSTATUS_VHD_INVALID_SIZE                                                   NTStatus      = 0xC03A0012\n\tSTATUS_VHD_INVALID_FILE_SIZE                                              NTStatus      = 0xC03A0013\n\tSTATUS_VIRTDISK_PROVIDER_NOT_FOUND                                        NTStatus      = 0xC03A0014\n\tSTATUS_VIRTDISK_NOT_VIRTUAL_DISK                                          NTStatus      = 0xC03A0015\n\tSTATUS_VHD_PARENT_VHD_ACCESS_DENIED                                       NTStatus      = 0xC03A0016\n\tSTATUS_VHD_CHILD_PARENT_SIZE_MISMATCH                                     NTStatus      = 0xC03A0017\n\tSTATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                              NTStatus      = 0xC03A0018\n\tSTATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                             NTStatus      = 0xC03A0019\n\tSTATUS_VIRTUAL_DISK_LIMITATION                                            NTStatus      = 0xC03A001A\n\tSTATUS_VHD_INVALID_TYPE                                                   NTStatus      = 0xC03A001B\n\tSTATUS_VHD_INVALID_STATE                                                  NTStatus      = 0xC03A001C\n\tSTATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                              NTStatus      = 0xC03A001D\n\tSTATUS_VIRTDISK_DISK_ALREADY_OWNED                                        NTStatus      = 0xC03A001E\n\tSTATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                  NTStatus      = 0xC03A001F\n\tSTATUS_CTLOG_TRACKING_NOT_INITIALIZED                                     NTStatus      = 0xC03A0020\n\tSTATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                NTStatus      = 0xC03A0021\n\tSTATUS_CTLOG_VHD_CHANGED_OFFLINE                                          NTStatus      = 0xC03A0022\n\tSTATUS_CTLOG_INVALID_TRACKING_STATE                                       NTStatus      = 0xC03A0023\n\tSTATUS_CTLOG_INCONSISTENT_TRACKING_FILE                                   NTStatus      = 0xC03A0024\n\tSTATUS_VHD_METADATA_FULL                                                  NTStatus      = 0xC03A0028\n\tSTATUS_VHD_INVALID_CHANGE_TRACKING_ID                                     NTStatus      = 0xC03A0029\n\tSTATUS_VHD_CHANGE_TRACKING_DISABLED                                       NTStatus      = 0xC03A002A\n\tSTATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION                            NTStatus      = 0xC03A0030\n\tSTATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA                                     NTStatus      = 0xC03A0031\n\tSTATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                         NTStatus      = 0xC03A0032\n\tSTATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                       NTStatus      = 0xC03A0033\n\tSTATUS_QUERY_STORAGE_ERROR                                                NTStatus      = 0x803A0001\n\tSTATUS_GDI_HANDLE_LEAK                                                    NTStatus      = 0x803F0001\n\tSTATUS_RKF_KEY_NOT_FOUND                                                  NTStatus      = 0xC0400001\n\tSTATUS_RKF_DUPLICATE_KEY                                                  NTStatus      = 0xC0400002\n\tSTATUS_RKF_BLOB_FULL                                                      NTStatus      = 0xC0400003\n\tSTATUS_RKF_STORE_FULL                                                     NTStatus      = 0xC0400004\n\tSTATUS_RKF_FILE_BLOCKED                                                   NTStatus      = 0xC0400005\n\tSTATUS_RKF_ACTIVE_KEY                                                     NTStatus      = 0xC0400006\n\tSTATUS_RDBSS_RESTART_OPERATION                                            NTStatus      = 0xC0410001\n\tSTATUS_RDBSS_CONTINUE_OPERATION                                           NTStatus      = 0xC0410002\n\tSTATUS_RDBSS_POST_OPERATION                                               NTStatus      = 0xC0410003\n\tSTATUS_RDBSS_RETRY_LOOKUP                                                 NTStatus      = 0xC0410004\n\tSTATUS_BTH_ATT_INVALID_HANDLE                                             NTStatus      = 0xC0420001\n\tSTATUS_BTH_ATT_READ_NOT_PERMITTED                                         NTStatus      = 0xC0420002\n\tSTATUS_BTH_ATT_WRITE_NOT_PERMITTED                                        NTStatus      = 0xC0420003\n\tSTATUS_BTH_ATT_INVALID_PDU                                                NTStatus      = 0xC0420004\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION                                NTStatus      = 0xC0420005\n\tSTATUS_BTH_ATT_REQUEST_NOT_SUPPORTED                                      NTStatus      = 0xC0420006\n\tSTATUS_BTH_ATT_INVALID_OFFSET                                             NTStatus      = 0xC0420007\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION                                 NTStatus      = 0xC0420008\n\tSTATUS_BTH_ATT_PREPARE_QUEUE_FULL                                         NTStatus      = 0xC0420009\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND                                        NTStatus      = 0xC042000A\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_LONG                                         NTStatus      = 0xC042000B\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                           NTStatus      = 0xC042000C\n\tSTATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                             NTStatus      = 0xC042000D\n\tSTATUS_BTH_ATT_UNLIKELY                                                   NTStatus      = 0xC042000E\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION                                    NTStatus      = 0xC042000F\n\tSTATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE                                     NTStatus      = 0xC0420010\n\tSTATUS_BTH_ATT_INSUFFICIENT_RESOURCES                                     NTStatus      = 0xC0420011\n\tSTATUS_BTH_ATT_UNKNOWN_ERROR                                              NTStatus      = 0xC0421000\n\tSTATUS_SECUREBOOT_ROLLBACK_DETECTED                                       NTStatus      = 0xC0430001\n\tSTATUS_SECUREBOOT_POLICY_VIOLATION                                        NTStatus      = 0xC0430002\n\tSTATUS_SECUREBOOT_INVALID_POLICY                                          NTStatus      = 0xC0430003\n\tSTATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                              NTStatus      = 0xC0430004\n\tSTATUS_SECUREBOOT_POLICY_NOT_SIGNED                                       NTStatus      = 0xC0430005\n\tSTATUS_SECUREBOOT_NOT_ENABLED                                             NTStatus      = 0x80430006\n\tSTATUS_SECUREBOOT_FILE_REPLACED                                           NTStatus      = 0xC0430007\n\tSTATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED                                   NTStatus      = 0xC0430008\n\tSTATUS_SECUREBOOT_POLICY_UNKNOWN                                          NTStatus      = 0xC0430009\n\tSTATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                      NTStatus      = 0xC043000A\n\tSTATUS_SECUREBOOT_PLATFORM_ID_MISMATCH                                    NTStatus      = 0xC043000B\n\tSTATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                NTStatus      = 0xC043000C\n\tSTATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                 NTStatus      = 0xC043000D\n\tSTATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                            NTStatus      = 0xC043000E\n\tSTATUS_SECUREBOOT_NOT_BASE_POLICY                                         NTStatus      = 0xC043000F\n\tSTATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                 NTStatus      = 0xC0430010\n\tSTATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED                                   NTStatus      = 0xC0EB0001\n\tSTATUS_PLATFORM_MANIFEST_INVALID                                          NTStatus      = 0xC0EB0002\n\tSTATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                              NTStatus      = 0xC0EB0003\n\tSTATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                           NTStatus      = 0xC0EB0004\n\tSTATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                              NTStatus      = 0xC0EB0005\n\tSTATUS_PLATFORM_MANIFEST_NOT_ACTIVE                                       NTStatus      = 0xC0EB0006\n\tSTATUS_PLATFORM_MANIFEST_NOT_SIGNED                                       NTStatus      = 0xC0EB0007\n\tSTATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                 NTStatus      = 0xC0E90001\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION                                  NTStatus      = 0xC0E90002\n\tSTATUS_SYSTEM_INTEGRITY_INVALID_POLICY                                    NTStatus      = 0xC0E90003\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                 NTStatus      = 0xC0E90004\n\tSTATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                 NTStatus      = 0xC0E90005\n\tSTATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                NTStatus      = 0xC0E90006\n\tSTATUS_NO_APPLICABLE_APP_LICENSES_FOUND                                   NTStatus      = 0xC0EA0001\n\tSTATUS_CLIP_LICENSE_NOT_FOUND                                             NTStatus      = 0xC0EA0002\n\tSTATUS_CLIP_DEVICE_LICENSE_MISSING                                        NTStatus      = 0xC0EA0003\n\tSTATUS_CLIP_LICENSE_INVALID_SIGNATURE                                     NTStatus      = 0xC0EA0004\n\tSTATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                          NTStatus      = 0xC0EA0005\n\tSTATUS_CLIP_LICENSE_EXPIRED                                               NTStatus      = 0xC0EA0006\n\tSTATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                              NTStatus      = 0xC0EA0007\n\tSTATUS_CLIP_LICENSE_NOT_SIGNED                                            NTStatus      = 0xC0EA0008\n\tSTATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                          NTStatus      = 0xC0EA0009\n\tSTATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH                                    NTStatus      = 0xC0EA000A\n\tSTATUS_AUDIO_ENGINE_NODE_NOT_FOUND                                        NTStatus      = 0xC0440001\n\tSTATUS_HDAUDIO_EMPTY_CONNECTION_LIST                                      NTStatus      = 0xC0440002\n\tSTATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                              NTStatus      = 0xC0440003\n\tSTATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                 NTStatus      = 0xC0440004\n\tSTATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY                                     NTStatus      = 0xC0440005\n\tSTATUS_SPACES_REPAIRED                                                    NTStatus      = 0x00E70000\n\tSTATUS_SPACES_PAUSE                                                       NTStatus      = 0x00E70001\n\tSTATUS_SPACES_COMPLETE                                                    NTStatus      = 0x00E70002\n\tSTATUS_SPACES_REDIRECT                                                    NTStatus      = 0x00E70003\n\tSTATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID                                   NTStatus      = 0xC0E70001\n\tSTATUS_SPACES_RESILIENCY_TYPE_INVALID                                     NTStatus      = 0xC0E70003\n\tSTATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID                                   NTStatus      = 0xC0E70004\n\tSTATUS_SPACES_DRIVE_REDUNDANCY_INVALID                                    NTStatus      = 0xC0E70006\n\tSTATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID                               NTStatus      = 0xC0E70007\n\tSTATUS_SPACES_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0E70009\n\tSTATUS_SPACES_NUMBER_OF_COLUMNS_INVALID                                   NTStatus      = 0xC0E7000A\n\tSTATUS_SPACES_NOT_ENOUGH_DRIVES                                           NTStatus      = 0xC0E7000B\n\tSTATUS_SPACES_EXTENDED_ERROR                                              NTStatus      = 0xC0E7000C\n\tSTATUS_SPACES_PROVISIONING_TYPE_INVALID                                   NTStatus      = 0xC0E7000D\n\tSTATUS_SPACES_ALLOCATION_SIZE_INVALID                                     NTStatus      = 0xC0E7000E\n\tSTATUS_SPACES_ENCLOSURE_AWARE_INVALID                                     NTStatus      = 0xC0E7000F\n\tSTATUS_SPACES_WRITE_CACHE_SIZE_INVALID                                    NTStatus      = 0xC0E70010\n\tSTATUS_SPACES_NUMBER_OF_GROUPS_INVALID                                    NTStatus      = 0xC0E70011\n\tSTATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                             NTStatus      = 0xC0E70012\n\tSTATUS_SPACES_UPDATE_COLUMN_STATE                                         NTStatus      = 0xC0E70013\n\tSTATUS_SPACES_MAP_REQUIRED                                                NTStatus      = 0xC0E70014\n\tSTATUS_SPACES_UNSUPPORTED_VERSION                                         NTStatus      = 0xC0E70015\n\tSTATUS_SPACES_CORRUPT_METADATA                                            NTStatus      = 0xC0E70016\n\tSTATUS_SPACES_DRT_FULL                                                    NTStatus      = 0xC0E70017\n\tSTATUS_SPACES_INCONSISTENCY                                               NTStatus      = 0xC0E70018\n\tSTATUS_SPACES_LOG_NOT_READY                                               NTStatus      = 0xC0E70019\n\tSTATUS_SPACES_NO_REDUNDANCY                                               NTStatus      = 0xC0E7001A\n\tSTATUS_SPACES_DRIVE_NOT_READY                                             NTStatus      = 0xC0E7001B\n\tSTATUS_SPACES_DRIVE_SPLIT                                                 NTStatus      = 0xC0E7001C\n\tSTATUS_SPACES_DRIVE_LOST_DATA                                             NTStatus      = 0xC0E7001D\n\tSTATUS_SPACES_ENTRY_INCOMPLETE                                            NTStatus      = 0xC0E7001E\n\tSTATUS_SPACES_ENTRY_INVALID                                               NTStatus      = 0xC0E7001F\n\tSTATUS_SPACES_MARK_DIRTY                                                  NTStatus      = 0xC0E70020\n\tSTATUS_VOLSNAP_BOOTFILE_NOT_VALID                                         NTStatus      = 0xC0500003\n\tSTATUS_VOLSNAP_ACTIVATION_TIMEOUT                                         NTStatus      = 0xC0500004\n\tSTATUS_IO_PREEMPTED                                                       NTStatus      = 0xC0510001\n\tSTATUS_SVHDX_ERROR_STORED                                                 NTStatus      = 0xC05C0000\n\tSTATUS_SVHDX_ERROR_NOT_AVAILABLE                                          NTStatus      = 0xC05CFF00\n\tSTATUS_SVHDX_UNIT_ATTENTION_AVAILABLE                                     NTStatus      = 0xC05CFF01\n\tSTATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                         NTStatus      = 0xC05CFF02\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                        NTStatus      = 0xC05CFF03\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                         NTStatus      = 0xC05CFF04\n\tSTATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                       NTStatus      = 0xC05CFF05\n\tSTATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                  NTStatus      = 0xC05CFF06\n\tSTATUS_SVHDX_RESERVATION_CONFLICT                                         NTStatus      = 0xC05CFF07\n\tSTATUS_SVHDX_WRONG_FILE_TYPE                                              NTStatus      = 0xC05CFF08\n\tSTATUS_SVHDX_VERSION_MISMATCH                                             NTStatus      = 0xC05CFF09\n\tSTATUS_VHD_SHARED                                                         NTStatus      = 0xC05CFF0A\n\tSTATUS_SVHDX_NO_INITIATOR                                                 NTStatus      = 0xC05CFF0B\n\tSTATUS_VHDSET_BACKING_STORAGE_NOT_FOUND                                   NTStatus      = 0xC05CFF0C\n\tSTATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                              NTStatus      = 0xC05D0000\n\tSTATUS_SMB_BAD_CLUSTER_DIALECT                                            NTStatus      = 0xC05D0001\n\tSTATUS_SMB_GUEST_LOGON_BLOCKED                                            NTStatus      = 0xC05D0002\n\tSTATUS_SECCORE_INVALID_COMMAND                                            NTStatus      = 0xC0E80000\n\tSTATUS_VSM_NOT_INITIALIZED                                                NTStatus      = 0xC0450000\n\tSTATUS_VSM_DMA_PROTECTION_NOT_IN_USE                                      NTStatus      = 0xC0450001\n\tSTATUS_APPEXEC_CONDITION_NOT_SATISFIED                                    NTStatus      = 0xC0EC0000\n\tSTATUS_APPEXEC_HANDLE_INVALIDATED                                         NTStatus      = 0xC0EC0001\n\tSTATUS_APPEXEC_INVALID_HOST_GENERATION                                    NTStatus      = 0xC0EC0002\n\tSTATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                            NTStatus      = 0xC0EC0003\n\tSTATUS_APPEXEC_INVALID_HOST_STATE                                         NTStatus      = 0xC0EC0004\n\tSTATUS_APPEXEC_NO_DONOR                                                   NTStatus      = 0xC0EC0005\n\tSTATUS_APPEXEC_HOST_ID_MISMATCH                                           NTStatus      = 0xC0EC0006\n\tSTATUS_APPEXEC_UNKNOWN_USER                                               NTStatus      = 0xC0EC0007\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zknownfolderids_windows.go",
    "content": "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\n\npackage windows\n\ntype KNOWNFOLDERID GUID\n\nvar (\n\tFOLDERID_NetworkFolder          = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}}\n\tFOLDERID_ComputerFolder         = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}}\n\tFOLDERID_InternetFolder         = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}}\n\tFOLDERID_ControlPanelFolder     = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}}\n\tFOLDERID_PrintersFolder         = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}}\n\tFOLDERID_SyncManagerFolder      = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}}\n\tFOLDERID_SyncSetupFolder        = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}}\n\tFOLDERID_ConflictFolder         = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}}\n\tFOLDERID_SyncResultsFolder      = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}}\n\tFOLDERID_RecycleBinFolder       = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}}\n\tFOLDERID_ConnectionsFolder      = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}}\n\tFOLDERID_Fonts                  = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}}\n\tFOLDERID_Desktop                = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}}\n\tFOLDERID_Startup                = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}}\n\tFOLDERID_Programs               = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}}\n\tFOLDERID_StartMenu              = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}}\n\tFOLDERID_Recent                 = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}}\n\tFOLDERID_SendTo                 = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}}\n\tFOLDERID_Documents              = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}}\n\tFOLDERID_Favorites              = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}}\n\tFOLDERID_NetHood                = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}}\n\tFOLDERID_PrintHood              = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}}\n\tFOLDERID_Templates              = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}}\n\tFOLDERID_CommonStartup          = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}}\n\tFOLDERID_CommonPrograms         = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}}\n\tFOLDERID_CommonStartMenu        = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}}\n\tFOLDERID_PublicDesktop          = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}}\n\tFOLDERID_ProgramData            = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}}\n\tFOLDERID_CommonTemplates        = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}}\n\tFOLDERID_PublicDocuments        = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}}\n\tFOLDERID_RoamingAppData         = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}}\n\tFOLDERID_LocalAppData           = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}}\n\tFOLDERID_LocalAppDataLow        = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}}\n\tFOLDERID_InternetCache          = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}}\n\tFOLDERID_Cookies                = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}}\n\tFOLDERID_History                = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}}\n\tFOLDERID_System                 = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}}\n\tFOLDERID_SystemX86              = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}}\n\tFOLDERID_Windows                = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}}\n\tFOLDERID_Profile                = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}}\n\tFOLDERID_Pictures               = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}}\n\tFOLDERID_ProgramFilesX86        = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}}\n\tFOLDERID_ProgramFilesCommonX86  = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}}\n\tFOLDERID_ProgramFilesX64        = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}}\n\tFOLDERID_ProgramFilesCommonX64  = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}}\n\tFOLDERID_ProgramFiles           = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}}\n\tFOLDERID_ProgramFilesCommon     = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}}\n\tFOLDERID_UserProgramFiles       = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}}\n\tFOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}}\n\tFOLDERID_AdminTools             = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}}\n\tFOLDERID_CommonAdminTools       = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}}\n\tFOLDERID_Music                  = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}}\n\tFOLDERID_Videos                 = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}}\n\tFOLDERID_Ringtones              = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}}\n\tFOLDERID_PublicPictures         = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}}\n\tFOLDERID_PublicMusic            = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}}\n\tFOLDERID_PublicVideos           = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}}\n\tFOLDERID_PublicRingtones        = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}}\n\tFOLDERID_ResourceDir            = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}}\n\tFOLDERID_LocalizedResourcesDir  = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}}\n\tFOLDERID_CommonOEMLinks         = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}}\n\tFOLDERID_CDBurning              = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}}\n\tFOLDERID_UserProfiles           = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}}\n\tFOLDERID_Playlists              = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}}\n\tFOLDERID_SamplePlaylists        = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}}\n\tFOLDERID_SampleMusic            = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}}\n\tFOLDERID_SamplePictures         = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}}\n\tFOLDERID_SampleVideos           = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}}\n\tFOLDERID_PhotoAlbums            = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}}\n\tFOLDERID_Public                 = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}}\n\tFOLDERID_ChangeRemovePrograms   = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}}\n\tFOLDERID_AppUpdates             = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}}\n\tFOLDERID_AddNewPrograms         = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}}\n\tFOLDERID_Downloads              = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}}\n\tFOLDERID_PublicDownloads        = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}}\n\tFOLDERID_SavedSearches          = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}}\n\tFOLDERID_QuickLaunch            = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}}\n\tFOLDERID_Contacts               = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}}\n\tFOLDERID_SidebarParts           = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}}\n\tFOLDERID_SidebarDefaultParts    = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}}\n\tFOLDERID_PublicGameTasks        = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}}\n\tFOLDERID_GameTasks              = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}}\n\tFOLDERID_SavedGames             = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}}\n\tFOLDERID_Games                  = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}}\n\tFOLDERID_SEARCH_MAPI            = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}}\n\tFOLDERID_SEARCH_CSC             = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}}\n\tFOLDERID_Links                  = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}}\n\tFOLDERID_UsersFiles             = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}}\n\tFOLDERID_UsersLibraries         = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}}\n\tFOLDERID_SearchHome             = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}}\n\tFOLDERID_OriginalImages         = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}}\n\tFOLDERID_DocumentsLibrary       = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}}\n\tFOLDERID_MusicLibrary           = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}}\n\tFOLDERID_PicturesLibrary        = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}}\n\tFOLDERID_VideosLibrary          = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}}\n\tFOLDERID_RecordedTVLibrary      = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}}\n\tFOLDERID_HomeGroup              = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}}\n\tFOLDERID_HomeGroupCurrentUser   = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}}\n\tFOLDERID_DeviceMetadataStore    = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}}\n\tFOLDERID_Libraries              = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}}\n\tFOLDERID_PublicLibraries        = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}}\n\tFOLDERID_UserPinned             = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}}\n\tFOLDERID_ImplicitAppShortcuts   = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}}\n\tFOLDERID_AccountPictures        = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}}\n\tFOLDERID_PublicUserTiles        = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}}\n\tFOLDERID_AppsFolder             = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}}\n\tFOLDERID_StartMenuAllPrograms   = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}}\n\tFOLDERID_CommonStartMenuPlaces  = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}}\n\tFOLDERID_ApplicationShortcuts   = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}}\n\tFOLDERID_RoamingTiles           = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}}\n\tFOLDERID_RoamedTileImages       = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}}\n\tFOLDERID_Screenshots            = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}}\n\tFOLDERID_CameraRoll             = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}}\n\tFOLDERID_SkyDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_OneDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_SkyDriveDocuments      = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}}\n\tFOLDERID_SkyDrivePictures       = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}}\n\tFOLDERID_SkyDriveMusic          = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}}\n\tFOLDERID_SkyDriveCameraRoll     = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}}\n\tFOLDERID_SearchHistory          = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}}\n\tFOLDERID_SearchTemplates        = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}}\n\tFOLDERID_CameraRollLibrary      = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}}\n\tFOLDERID_SavedPictures          = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}}\n\tFOLDERID_SavedPicturesLibrary   = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}}\n\tFOLDERID_RetailDemo             = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}}\n\tFOLDERID_Device                 = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}}\n\tFOLDERID_DevelopmentFiles       = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}}\n\tFOLDERID_Objects3D              = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}}\n\tFOLDERID_AppCaptures            = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}}\n\tFOLDERID_LocalDocuments         = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}}\n\tFOLDERID_LocalPictures          = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}}\n\tFOLDERID_LocalVideos            = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}}\n\tFOLDERID_LocalMusic             = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}}\n\tFOLDERID_LocalDownloads         = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}}\n\tFOLDERID_RecordedCalls          = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}}\n\tFOLDERID_AllAppMods             = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}}\n\tFOLDERID_CurrentAppMods         = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}}\n\tFOLDERID_AppDataDesktop         = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}}\n\tFOLDERID_AppDataDocuments       = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}}\n\tFOLDERID_AppDataFavorites       = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}}\n\tFOLDERID_AppDataProgramData     = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}}\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zsyscall_windows.go",
    "content": "// Code generated by 'go generate'; DO NOT EDIT.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\t// TODO: add more here, after collecting data on the common\n\t// error values see on Windows. (perhaps when running\n\t// all.bat?)\n\treturn e\n}\n\nvar (\n\tmodCfgMgr32 = NewLazySystemDLL(\"CfgMgr32.dll\")\n\tmodadvapi32 = NewLazySystemDLL(\"advapi32.dll\")\n\tmodcrypt32  = NewLazySystemDLL(\"crypt32.dll\")\n\tmoddnsapi   = NewLazySystemDLL(\"dnsapi.dll\")\n\tmoddwmapi   = NewLazySystemDLL(\"dwmapi.dll\")\n\tmodiphlpapi = NewLazySystemDLL(\"iphlpapi.dll\")\n\tmodkernel32 = NewLazySystemDLL(\"kernel32.dll\")\n\tmodmswsock  = NewLazySystemDLL(\"mswsock.dll\")\n\tmodnetapi32 = NewLazySystemDLL(\"netapi32.dll\")\n\tmodntdll    = NewLazySystemDLL(\"ntdll.dll\")\n\tmodole32    = NewLazySystemDLL(\"ole32.dll\")\n\tmodpsapi    = NewLazySystemDLL(\"psapi.dll\")\n\tmodsechost  = NewLazySystemDLL(\"sechost.dll\")\n\tmodsecur32  = NewLazySystemDLL(\"secur32.dll\")\n\tmodsetupapi = NewLazySystemDLL(\"setupapi.dll\")\n\tmodshell32  = NewLazySystemDLL(\"shell32.dll\")\n\tmoduser32   = NewLazySystemDLL(\"user32.dll\")\n\tmoduserenv  = NewLazySystemDLL(\"userenv.dll\")\n\tmodversion  = NewLazySystemDLL(\"version.dll\")\n\tmodwinmm    = NewLazySystemDLL(\"winmm.dll\")\n\tmodwintrust = NewLazySystemDLL(\"wintrust.dll\")\n\tmodws2_32   = NewLazySystemDLL(\"ws2_32.dll\")\n\tmodwtsapi32 = NewLazySystemDLL(\"wtsapi32.dll\")\n\n\tprocCM_Get_DevNode_Status                                = modCfgMgr32.NewProc(\"CM_Get_DevNode_Status\")\n\tprocCM_Get_Device_Interface_ListW                        = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_ListW\")\n\tprocCM_Get_Device_Interface_List_SizeW                   = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_List_SizeW\")\n\tprocCM_MapCrToWin32Err                                   = modCfgMgr32.NewProc(\"CM_MapCrToWin32Err\")\n\tprocAdjustTokenGroups                                    = modadvapi32.NewProc(\"AdjustTokenGroups\")\n\tprocAdjustTokenPrivileges                                = modadvapi32.NewProc(\"AdjustTokenPrivileges\")\n\tprocAllocateAndInitializeSid                             = modadvapi32.NewProc(\"AllocateAndInitializeSid\")\n\tprocBuildSecurityDescriptorW                             = modadvapi32.NewProc(\"BuildSecurityDescriptorW\")\n\tprocChangeServiceConfig2W                                = modadvapi32.NewProc(\"ChangeServiceConfig2W\")\n\tprocChangeServiceConfigW                                 = modadvapi32.NewProc(\"ChangeServiceConfigW\")\n\tprocCheckTokenMembership                                 = modadvapi32.NewProc(\"CheckTokenMembership\")\n\tprocCloseServiceHandle                                   = modadvapi32.NewProc(\"CloseServiceHandle\")\n\tprocControlService                                       = modadvapi32.NewProc(\"ControlService\")\n\tprocConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc(\"ConvertSecurityDescriptorToStringSecurityDescriptorW\")\n\tprocConvertSidToStringSidW                               = modadvapi32.NewProc(\"ConvertSidToStringSidW\")\n\tprocConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc(\"ConvertStringSecurityDescriptorToSecurityDescriptorW\")\n\tprocConvertStringSidToSidW                               = modadvapi32.NewProc(\"ConvertStringSidToSidW\")\n\tprocCopySid                                              = modadvapi32.NewProc(\"CopySid\")\n\tprocCreateProcessAsUserW                                 = modadvapi32.NewProc(\"CreateProcessAsUserW\")\n\tprocCreateServiceW                                       = modadvapi32.NewProc(\"CreateServiceW\")\n\tprocCreateWellKnownSid                                   = modadvapi32.NewProc(\"CreateWellKnownSid\")\n\tprocCryptAcquireContextW                                 = modadvapi32.NewProc(\"CryptAcquireContextW\")\n\tprocCryptGenRandom                                       = modadvapi32.NewProc(\"CryptGenRandom\")\n\tprocCryptReleaseContext                                  = modadvapi32.NewProc(\"CryptReleaseContext\")\n\tprocDeleteService                                        = modadvapi32.NewProc(\"DeleteService\")\n\tprocDeregisterEventSource                                = modadvapi32.NewProc(\"DeregisterEventSource\")\n\tprocDuplicateTokenEx                                     = modadvapi32.NewProc(\"DuplicateTokenEx\")\n\tprocEnumDependentServicesW                               = modadvapi32.NewProc(\"EnumDependentServicesW\")\n\tprocEnumServicesStatusExW                                = modadvapi32.NewProc(\"EnumServicesStatusExW\")\n\tprocEqualSid                                             = modadvapi32.NewProc(\"EqualSid\")\n\tprocFreeSid                                              = modadvapi32.NewProc(\"FreeSid\")\n\tprocGetAce                                               = modadvapi32.NewProc(\"GetAce\")\n\tprocGetLengthSid                                         = modadvapi32.NewProc(\"GetLengthSid\")\n\tprocGetNamedSecurityInfoW                                = modadvapi32.NewProc(\"GetNamedSecurityInfoW\")\n\tprocGetSecurityDescriptorControl                         = modadvapi32.NewProc(\"GetSecurityDescriptorControl\")\n\tprocGetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorDacl\")\n\tprocGetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"GetSecurityDescriptorGroup\")\n\tprocGetSecurityDescriptorLength                          = modadvapi32.NewProc(\"GetSecurityDescriptorLength\")\n\tprocGetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"GetSecurityDescriptorOwner\")\n\tprocGetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"GetSecurityDescriptorRMControl\")\n\tprocGetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorSacl\")\n\tprocGetSecurityInfo                                      = modadvapi32.NewProc(\"GetSecurityInfo\")\n\tprocGetSidIdentifierAuthority                            = modadvapi32.NewProc(\"GetSidIdentifierAuthority\")\n\tprocGetSidSubAuthority                                   = modadvapi32.NewProc(\"GetSidSubAuthority\")\n\tprocGetSidSubAuthorityCount                              = modadvapi32.NewProc(\"GetSidSubAuthorityCount\")\n\tprocGetTokenInformation                                  = modadvapi32.NewProc(\"GetTokenInformation\")\n\tprocImpersonateSelf                                      = modadvapi32.NewProc(\"ImpersonateSelf\")\n\tprocInitializeSecurityDescriptor                         = modadvapi32.NewProc(\"InitializeSecurityDescriptor\")\n\tprocInitiateSystemShutdownExW                            = modadvapi32.NewProc(\"InitiateSystemShutdownExW\")\n\tprocIsTokenRestricted                                    = modadvapi32.NewProc(\"IsTokenRestricted\")\n\tprocIsValidSecurityDescriptor                            = modadvapi32.NewProc(\"IsValidSecurityDescriptor\")\n\tprocIsValidSid                                           = modadvapi32.NewProc(\"IsValidSid\")\n\tprocIsWellKnownSid                                       = modadvapi32.NewProc(\"IsWellKnownSid\")\n\tprocLookupAccountNameW                                   = modadvapi32.NewProc(\"LookupAccountNameW\")\n\tprocLookupAccountSidW                                    = modadvapi32.NewProc(\"LookupAccountSidW\")\n\tprocLookupPrivilegeValueW                                = modadvapi32.NewProc(\"LookupPrivilegeValueW\")\n\tprocMakeAbsoluteSD                                       = modadvapi32.NewProc(\"MakeAbsoluteSD\")\n\tprocMakeSelfRelativeSD                                   = modadvapi32.NewProc(\"MakeSelfRelativeSD\")\n\tprocNotifyServiceStatusChangeW                           = modadvapi32.NewProc(\"NotifyServiceStatusChangeW\")\n\tprocOpenProcessToken                                     = modadvapi32.NewProc(\"OpenProcessToken\")\n\tprocOpenSCManagerW                                       = modadvapi32.NewProc(\"OpenSCManagerW\")\n\tprocOpenServiceW                                         = modadvapi32.NewProc(\"OpenServiceW\")\n\tprocOpenThreadToken                                      = modadvapi32.NewProc(\"OpenThreadToken\")\n\tprocQueryServiceConfig2W                                 = modadvapi32.NewProc(\"QueryServiceConfig2W\")\n\tprocQueryServiceConfigW                                  = modadvapi32.NewProc(\"QueryServiceConfigW\")\n\tprocQueryServiceDynamicInformation                       = modadvapi32.NewProc(\"QueryServiceDynamicInformation\")\n\tprocQueryServiceLockStatusW                              = modadvapi32.NewProc(\"QueryServiceLockStatusW\")\n\tprocQueryServiceStatus                                   = modadvapi32.NewProc(\"QueryServiceStatus\")\n\tprocQueryServiceStatusEx                                 = modadvapi32.NewProc(\"QueryServiceStatusEx\")\n\tprocRegCloseKey                                          = modadvapi32.NewProc(\"RegCloseKey\")\n\tprocRegEnumKeyExW                                        = modadvapi32.NewProc(\"RegEnumKeyExW\")\n\tprocRegNotifyChangeKeyValue                              = modadvapi32.NewProc(\"RegNotifyChangeKeyValue\")\n\tprocRegOpenKeyExW                                        = modadvapi32.NewProc(\"RegOpenKeyExW\")\n\tprocRegQueryInfoKeyW                                     = modadvapi32.NewProc(\"RegQueryInfoKeyW\")\n\tprocRegQueryValueExW                                     = modadvapi32.NewProc(\"RegQueryValueExW\")\n\tprocRegisterEventSourceW                                 = modadvapi32.NewProc(\"RegisterEventSourceW\")\n\tprocRegisterServiceCtrlHandlerExW                        = modadvapi32.NewProc(\"RegisterServiceCtrlHandlerExW\")\n\tprocReportEventW                                         = modadvapi32.NewProc(\"ReportEventW\")\n\tprocRevertToSelf                                         = modadvapi32.NewProc(\"RevertToSelf\")\n\tprocSetEntriesInAclW                                     = modadvapi32.NewProc(\"SetEntriesInAclW\")\n\tprocSetKernelObjectSecurity                              = modadvapi32.NewProc(\"SetKernelObjectSecurity\")\n\tprocSetNamedSecurityInfoW                                = modadvapi32.NewProc(\"SetNamedSecurityInfoW\")\n\tprocSetSecurityDescriptorControl                         = modadvapi32.NewProc(\"SetSecurityDescriptorControl\")\n\tprocSetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorDacl\")\n\tprocSetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"SetSecurityDescriptorGroup\")\n\tprocSetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"SetSecurityDescriptorOwner\")\n\tprocSetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"SetSecurityDescriptorRMControl\")\n\tprocSetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorSacl\")\n\tprocSetSecurityInfo                                      = modadvapi32.NewProc(\"SetSecurityInfo\")\n\tprocSetServiceStatus                                     = modadvapi32.NewProc(\"SetServiceStatus\")\n\tprocSetThreadToken                                       = modadvapi32.NewProc(\"SetThreadToken\")\n\tprocSetTokenInformation                                  = modadvapi32.NewProc(\"SetTokenInformation\")\n\tprocStartServiceCtrlDispatcherW                          = modadvapi32.NewProc(\"StartServiceCtrlDispatcherW\")\n\tprocStartServiceW                                        = modadvapi32.NewProc(\"StartServiceW\")\n\tprocCertAddCertificateContextToStore                     = modcrypt32.NewProc(\"CertAddCertificateContextToStore\")\n\tprocCertCloseStore                                       = modcrypt32.NewProc(\"CertCloseStore\")\n\tprocCertCreateCertificateContext                         = modcrypt32.NewProc(\"CertCreateCertificateContext\")\n\tprocCertDeleteCertificateFromStore                       = modcrypt32.NewProc(\"CertDeleteCertificateFromStore\")\n\tprocCertDuplicateCertificateContext                      = modcrypt32.NewProc(\"CertDuplicateCertificateContext\")\n\tprocCertEnumCertificatesInStore                          = modcrypt32.NewProc(\"CertEnumCertificatesInStore\")\n\tprocCertFindCertificateInStore                           = modcrypt32.NewProc(\"CertFindCertificateInStore\")\n\tprocCertFindChainInStore                                 = modcrypt32.NewProc(\"CertFindChainInStore\")\n\tprocCertFindExtension                                    = modcrypt32.NewProc(\"CertFindExtension\")\n\tprocCertFreeCertificateChain                             = modcrypt32.NewProc(\"CertFreeCertificateChain\")\n\tprocCertFreeCertificateContext                           = modcrypt32.NewProc(\"CertFreeCertificateContext\")\n\tprocCertGetCertificateChain                              = modcrypt32.NewProc(\"CertGetCertificateChain\")\n\tprocCertGetNameStringW                                   = modcrypt32.NewProc(\"CertGetNameStringW\")\n\tprocCertOpenStore                                        = modcrypt32.NewProc(\"CertOpenStore\")\n\tprocCertOpenSystemStoreW                                 = modcrypt32.NewProc(\"CertOpenSystemStoreW\")\n\tprocCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc(\"CertVerifyCertificateChainPolicy\")\n\tprocCryptAcquireCertificatePrivateKey                    = modcrypt32.NewProc(\"CryptAcquireCertificatePrivateKey\")\n\tprocCryptDecodeObject                                    = modcrypt32.NewProc(\"CryptDecodeObject\")\n\tprocCryptProtectData                                     = modcrypt32.NewProc(\"CryptProtectData\")\n\tprocCryptQueryObject                                     = modcrypt32.NewProc(\"CryptQueryObject\")\n\tprocCryptUnprotectData                                   = modcrypt32.NewProc(\"CryptUnprotectData\")\n\tprocPFXImportCertStore                                   = modcrypt32.NewProc(\"PFXImportCertStore\")\n\tprocDnsNameCompare_W                                     = moddnsapi.NewProc(\"DnsNameCompare_W\")\n\tprocDnsQuery_W                                           = moddnsapi.NewProc(\"DnsQuery_W\")\n\tprocDnsRecordListFree                                    = moddnsapi.NewProc(\"DnsRecordListFree\")\n\tprocDwmGetWindowAttribute                                = moddwmapi.NewProc(\"DwmGetWindowAttribute\")\n\tprocDwmSetWindowAttribute                                = moddwmapi.NewProc(\"DwmSetWindowAttribute\")\n\tprocCancelMibChangeNotify2                               = modiphlpapi.NewProc(\"CancelMibChangeNotify2\")\n\tprocFreeMibTable                                         = modiphlpapi.NewProc(\"FreeMibTable\")\n\tprocGetAdaptersAddresses                                 = modiphlpapi.NewProc(\"GetAdaptersAddresses\")\n\tprocGetAdaptersInfo                                      = modiphlpapi.NewProc(\"GetAdaptersInfo\")\n\tprocGetBestInterfaceEx                                   = modiphlpapi.NewProc(\"GetBestInterfaceEx\")\n\tprocGetIfEntry                                           = modiphlpapi.NewProc(\"GetIfEntry\")\n\tprocGetIfEntry2Ex                                        = modiphlpapi.NewProc(\"GetIfEntry2Ex\")\n\tprocGetIpForwardEntry2                                   = modiphlpapi.NewProc(\"GetIpForwardEntry2\")\n\tprocGetIpForwardTable2                                   = modiphlpapi.NewProc(\"GetIpForwardTable2\")\n\tprocGetUnicastIpAddressEntry                             = modiphlpapi.NewProc(\"GetUnicastIpAddressEntry\")\n\tprocNotifyIpInterfaceChange                              = modiphlpapi.NewProc(\"NotifyIpInterfaceChange\")\n\tprocNotifyRouteChange2                                   = modiphlpapi.NewProc(\"NotifyRouteChange2\")\n\tprocNotifyUnicastIpAddressChange                         = modiphlpapi.NewProc(\"NotifyUnicastIpAddressChange\")\n\tprocAddDllDirectory                                      = modkernel32.NewProc(\"AddDllDirectory\")\n\tprocAssignProcessToJobObject                             = modkernel32.NewProc(\"AssignProcessToJobObject\")\n\tprocCancelIo                                             = modkernel32.NewProc(\"CancelIo\")\n\tprocCancelIoEx                                           = modkernel32.NewProc(\"CancelIoEx\")\n\tprocClearCommBreak                                       = modkernel32.NewProc(\"ClearCommBreak\")\n\tprocClearCommError                                       = modkernel32.NewProc(\"ClearCommError\")\n\tprocCloseHandle                                          = modkernel32.NewProc(\"CloseHandle\")\n\tprocClosePseudoConsole                                   = modkernel32.NewProc(\"ClosePseudoConsole\")\n\tprocConnectNamedPipe                                     = modkernel32.NewProc(\"ConnectNamedPipe\")\n\tprocCreateDirectoryW                                     = modkernel32.NewProc(\"CreateDirectoryW\")\n\tprocCreateEventExW                                       = modkernel32.NewProc(\"CreateEventExW\")\n\tprocCreateEventW                                         = modkernel32.NewProc(\"CreateEventW\")\n\tprocCreateFileMappingW                                   = modkernel32.NewProc(\"CreateFileMappingW\")\n\tprocCreateFileW                                          = modkernel32.NewProc(\"CreateFileW\")\n\tprocCreateHardLinkW                                      = modkernel32.NewProc(\"CreateHardLinkW\")\n\tprocCreateIoCompletionPort                               = modkernel32.NewProc(\"CreateIoCompletionPort\")\n\tprocCreateJobObjectW                                     = modkernel32.NewProc(\"CreateJobObjectW\")\n\tprocCreateMutexExW                                       = modkernel32.NewProc(\"CreateMutexExW\")\n\tprocCreateMutexW                                         = modkernel32.NewProc(\"CreateMutexW\")\n\tprocCreateNamedPipeW                                     = modkernel32.NewProc(\"CreateNamedPipeW\")\n\tprocCreatePipe                                           = modkernel32.NewProc(\"CreatePipe\")\n\tprocCreateProcessW                                       = modkernel32.NewProc(\"CreateProcessW\")\n\tprocCreatePseudoConsole                                  = modkernel32.NewProc(\"CreatePseudoConsole\")\n\tprocCreateSymbolicLinkW                                  = modkernel32.NewProc(\"CreateSymbolicLinkW\")\n\tprocCreateToolhelp32Snapshot                             = modkernel32.NewProc(\"CreateToolhelp32Snapshot\")\n\tprocDefineDosDeviceW                                     = modkernel32.NewProc(\"DefineDosDeviceW\")\n\tprocDeleteFileW                                          = modkernel32.NewProc(\"DeleteFileW\")\n\tprocDeleteProcThreadAttributeList                        = modkernel32.NewProc(\"DeleteProcThreadAttributeList\")\n\tprocDeleteVolumeMountPointW                              = modkernel32.NewProc(\"DeleteVolumeMountPointW\")\n\tprocDeviceIoControl                                      = modkernel32.NewProc(\"DeviceIoControl\")\n\tprocDisconnectNamedPipe                                  = modkernel32.NewProc(\"DisconnectNamedPipe\")\n\tprocDuplicateHandle                                      = modkernel32.NewProc(\"DuplicateHandle\")\n\tprocEscapeCommFunction                                   = modkernel32.NewProc(\"EscapeCommFunction\")\n\tprocExitProcess                                          = modkernel32.NewProc(\"ExitProcess\")\n\tprocExpandEnvironmentStringsW                            = modkernel32.NewProc(\"ExpandEnvironmentStringsW\")\n\tprocFindClose                                            = modkernel32.NewProc(\"FindClose\")\n\tprocFindCloseChangeNotification                          = modkernel32.NewProc(\"FindCloseChangeNotification\")\n\tprocFindFirstChangeNotificationW                         = modkernel32.NewProc(\"FindFirstChangeNotificationW\")\n\tprocFindFirstFileW                                       = modkernel32.NewProc(\"FindFirstFileW\")\n\tprocFindFirstVolumeMountPointW                           = modkernel32.NewProc(\"FindFirstVolumeMountPointW\")\n\tprocFindFirstVolumeW                                     = modkernel32.NewProc(\"FindFirstVolumeW\")\n\tprocFindNextChangeNotification                           = modkernel32.NewProc(\"FindNextChangeNotification\")\n\tprocFindNextFileW                                        = modkernel32.NewProc(\"FindNextFileW\")\n\tprocFindNextVolumeMountPointW                            = modkernel32.NewProc(\"FindNextVolumeMountPointW\")\n\tprocFindNextVolumeW                                      = modkernel32.NewProc(\"FindNextVolumeW\")\n\tprocFindResourceW                                        = modkernel32.NewProc(\"FindResourceW\")\n\tprocFindVolumeClose                                      = modkernel32.NewProc(\"FindVolumeClose\")\n\tprocFindVolumeMountPointClose                            = modkernel32.NewProc(\"FindVolumeMountPointClose\")\n\tprocFlushConsoleInputBuffer                              = modkernel32.NewProc(\"FlushConsoleInputBuffer\")\n\tprocFlushFileBuffers                                     = modkernel32.NewProc(\"FlushFileBuffers\")\n\tprocFlushViewOfFile                                      = modkernel32.NewProc(\"FlushViewOfFile\")\n\tprocFormatMessageW                                       = modkernel32.NewProc(\"FormatMessageW\")\n\tprocFreeEnvironmentStringsW                              = modkernel32.NewProc(\"FreeEnvironmentStringsW\")\n\tprocFreeLibrary                                          = modkernel32.NewProc(\"FreeLibrary\")\n\tprocGenerateConsoleCtrlEvent                             = modkernel32.NewProc(\"GenerateConsoleCtrlEvent\")\n\tprocGetACP                                               = modkernel32.NewProc(\"GetACP\")\n\tprocGetActiveProcessorCount                              = modkernel32.NewProc(\"GetActiveProcessorCount\")\n\tprocGetCommModemStatus                                   = modkernel32.NewProc(\"GetCommModemStatus\")\n\tprocGetCommState                                         = modkernel32.NewProc(\"GetCommState\")\n\tprocGetCommTimeouts                                      = modkernel32.NewProc(\"GetCommTimeouts\")\n\tprocGetCommandLineW                                      = modkernel32.NewProc(\"GetCommandLineW\")\n\tprocGetComputerNameExW                                   = modkernel32.NewProc(\"GetComputerNameExW\")\n\tprocGetComputerNameW                                     = modkernel32.NewProc(\"GetComputerNameW\")\n\tprocGetConsoleCP                                         = modkernel32.NewProc(\"GetConsoleCP\")\n\tprocGetConsoleMode                                       = modkernel32.NewProc(\"GetConsoleMode\")\n\tprocGetConsoleOutputCP                                   = modkernel32.NewProc(\"GetConsoleOutputCP\")\n\tprocGetConsoleScreenBufferInfo                           = modkernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocGetCurrentDirectoryW                                 = modkernel32.NewProc(\"GetCurrentDirectoryW\")\n\tprocGetCurrentProcessId                                  = modkernel32.NewProc(\"GetCurrentProcessId\")\n\tprocGetCurrentThreadId                                   = modkernel32.NewProc(\"GetCurrentThreadId\")\n\tprocGetDiskFreeSpaceExW                                  = modkernel32.NewProc(\"GetDiskFreeSpaceExW\")\n\tprocGetDriveTypeW                                        = modkernel32.NewProc(\"GetDriveTypeW\")\n\tprocGetEnvironmentStringsW                               = modkernel32.NewProc(\"GetEnvironmentStringsW\")\n\tprocGetEnvironmentVariableW                              = modkernel32.NewProc(\"GetEnvironmentVariableW\")\n\tprocGetExitCodeProcess                                   = modkernel32.NewProc(\"GetExitCodeProcess\")\n\tprocGetFileAttributesExW                                 = modkernel32.NewProc(\"GetFileAttributesExW\")\n\tprocGetFileAttributesW                                   = modkernel32.NewProc(\"GetFileAttributesW\")\n\tprocGetFileInformationByHandle                           = modkernel32.NewProc(\"GetFileInformationByHandle\")\n\tprocGetFileInformationByHandleEx                         = modkernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileTime                                          = modkernel32.NewProc(\"GetFileTime\")\n\tprocGetFileType                                          = modkernel32.NewProc(\"GetFileType\")\n\tprocGetFinalPathNameByHandleW                            = modkernel32.NewProc(\"GetFinalPathNameByHandleW\")\n\tprocGetFullPathNameW                                     = modkernel32.NewProc(\"GetFullPathNameW\")\n\tprocGetLargePageMinimum                                  = modkernel32.NewProc(\"GetLargePageMinimum\")\n\tprocGetLastError                                         = modkernel32.NewProc(\"GetLastError\")\n\tprocGetLogicalDriveStringsW                              = modkernel32.NewProc(\"GetLogicalDriveStringsW\")\n\tprocGetLogicalDrives                                     = modkernel32.NewProc(\"GetLogicalDrives\")\n\tprocGetLongPathNameW                                     = modkernel32.NewProc(\"GetLongPathNameW\")\n\tprocGetMaximumProcessorCount                             = modkernel32.NewProc(\"GetMaximumProcessorCount\")\n\tprocGetModuleFileNameW                                   = modkernel32.NewProc(\"GetModuleFileNameW\")\n\tprocGetModuleHandleExW                                   = modkernel32.NewProc(\"GetModuleHandleExW\")\n\tprocGetNamedPipeClientProcessId                          = modkernel32.NewProc(\"GetNamedPipeClientProcessId\")\n\tprocGetNamedPipeHandleStateW                             = modkernel32.NewProc(\"GetNamedPipeHandleStateW\")\n\tprocGetNamedPipeInfo                                     = modkernel32.NewProc(\"GetNamedPipeInfo\")\n\tprocGetNamedPipeServerProcessId                          = modkernel32.NewProc(\"GetNamedPipeServerProcessId\")\n\tprocGetNumberOfConsoleInputEvents                        = modkernel32.NewProc(\"GetNumberOfConsoleInputEvents\")\n\tprocGetOverlappedResult                                  = modkernel32.NewProc(\"GetOverlappedResult\")\n\tprocGetPriorityClass                                     = modkernel32.NewProc(\"GetPriorityClass\")\n\tprocGetProcAddress                                       = modkernel32.NewProc(\"GetProcAddress\")\n\tprocGetProcessId                                         = modkernel32.NewProc(\"GetProcessId\")\n\tprocGetProcessPreferredUILanguages                       = modkernel32.NewProc(\"GetProcessPreferredUILanguages\")\n\tprocGetProcessShutdownParameters                         = modkernel32.NewProc(\"GetProcessShutdownParameters\")\n\tprocGetProcessTimes                                      = modkernel32.NewProc(\"GetProcessTimes\")\n\tprocGetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"GetProcessWorkingSetSizeEx\")\n\tprocGetQueuedCompletionStatus                            = modkernel32.NewProc(\"GetQueuedCompletionStatus\")\n\tprocGetShortPathNameW                                    = modkernel32.NewProc(\"GetShortPathNameW\")\n\tprocGetStartupInfoW                                      = modkernel32.NewProc(\"GetStartupInfoW\")\n\tprocGetStdHandle                                         = modkernel32.NewProc(\"GetStdHandle\")\n\tprocGetSystemDirectoryW                                  = modkernel32.NewProc(\"GetSystemDirectoryW\")\n\tprocGetSystemPreferredUILanguages                        = modkernel32.NewProc(\"GetSystemPreferredUILanguages\")\n\tprocGetSystemTimeAsFileTime                              = modkernel32.NewProc(\"GetSystemTimeAsFileTime\")\n\tprocGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc(\"GetSystemTimePreciseAsFileTime\")\n\tprocGetSystemWindowsDirectoryW                           = modkernel32.NewProc(\"GetSystemWindowsDirectoryW\")\n\tprocGetTempPathW                                         = modkernel32.NewProc(\"GetTempPathW\")\n\tprocGetThreadPreferredUILanguages                        = modkernel32.NewProc(\"GetThreadPreferredUILanguages\")\n\tprocGetTickCount64                                       = modkernel32.NewProc(\"GetTickCount64\")\n\tprocGetTimeZoneInformation                               = modkernel32.NewProc(\"GetTimeZoneInformation\")\n\tprocGetUserPreferredUILanguages                          = modkernel32.NewProc(\"GetUserPreferredUILanguages\")\n\tprocGetVersion                                           = modkernel32.NewProc(\"GetVersion\")\n\tprocGetVolumeInformationByHandleW                        = modkernel32.NewProc(\"GetVolumeInformationByHandleW\")\n\tprocGetVolumeInformationW                                = modkernel32.NewProc(\"GetVolumeInformationW\")\n\tprocGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc(\"GetVolumeNameForVolumeMountPointW\")\n\tprocGetVolumePathNameW                                   = modkernel32.NewProc(\"GetVolumePathNameW\")\n\tprocGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc(\"GetVolumePathNamesForVolumeNameW\")\n\tprocGetWindowsDirectoryW                                 = modkernel32.NewProc(\"GetWindowsDirectoryW\")\n\tprocInitializeProcThreadAttributeList                    = modkernel32.NewProc(\"InitializeProcThreadAttributeList\")\n\tprocIsWow64Process                                       = modkernel32.NewProc(\"IsWow64Process\")\n\tprocIsWow64Process2                                      = modkernel32.NewProc(\"IsWow64Process2\")\n\tprocLoadLibraryExW                                       = modkernel32.NewProc(\"LoadLibraryExW\")\n\tprocLoadLibraryW                                         = modkernel32.NewProc(\"LoadLibraryW\")\n\tprocLoadResource                                         = modkernel32.NewProc(\"LoadResource\")\n\tprocLocalAlloc                                           = modkernel32.NewProc(\"LocalAlloc\")\n\tprocLocalFree                                            = modkernel32.NewProc(\"LocalFree\")\n\tprocLockFileEx                                           = modkernel32.NewProc(\"LockFileEx\")\n\tprocLockResource                                         = modkernel32.NewProc(\"LockResource\")\n\tprocMapViewOfFile                                        = modkernel32.NewProc(\"MapViewOfFile\")\n\tprocModule32FirstW                                       = modkernel32.NewProc(\"Module32FirstW\")\n\tprocModule32NextW                                        = modkernel32.NewProc(\"Module32NextW\")\n\tprocMoveFileExW                                          = modkernel32.NewProc(\"MoveFileExW\")\n\tprocMoveFileW                                            = modkernel32.NewProc(\"MoveFileW\")\n\tprocMultiByteToWideChar                                  = modkernel32.NewProc(\"MultiByteToWideChar\")\n\tprocOpenEventW                                           = modkernel32.NewProc(\"OpenEventW\")\n\tprocOpenMutexW                                           = modkernel32.NewProc(\"OpenMutexW\")\n\tprocOpenProcess                                          = modkernel32.NewProc(\"OpenProcess\")\n\tprocOpenThread                                           = modkernel32.NewProc(\"OpenThread\")\n\tprocPostQueuedCompletionStatus                           = modkernel32.NewProc(\"PostQueuedCompletionStatus\")\n\tprocProcess32FirstW                                      = modkernel32.NewProc(\"Process32FirstW\")\n\tprocProcess32NextW                                       = modkernel32.NewProc(\"Process32NextW\")\n\tprocProcessIdToSessionId                                 = modkernel32.NewProc(\"ProcessIdToSessionId\")\n\tprocPulseEvent                                           = modkernel32.NewProc(\"PulseEvent\")\n\tprocPurgeComm                                            = modkernel32.NewProc(\"PurgeComm\")\n\tprocQueryDosDeviceW                                      = modkernel32.NewProc(\"QueryDosDeviceW\")\n\tprocQueryFullProcessImageNameW                           = modkernel32.NewProc(\"QueryFullProcessImageNameW\")\n\tprocQueryInformationJobObject                            = modkernel32.NewProc(\"QueryInformationJobObject\")\n\tprocReadConsoleW                                         = modkernel32.NewProc(\"ReadConsoleW\")\n\tprocReadDirectoryChangesW                                = modkernel32.NewProc(\"ReadDirectoryChangesW\")\n\tprocReadFile                                             = modkernel32.NewProc(\"ReadFile\")\n\tprocReadProcessMemory                                    = modkernel32.NewProc(\"ReadProcessMemory\")\n\tprocReleaseMutex                                         = modkernel32.NewProc(\"ReleaseMutex\")\n\tprocRemoveDirectoryW                                     = modkernel32.NewProc(\"RemoveDirectoryW\")\n\tprocRemoveDllDirectory                                   = modkernel32.NewProc(\"RemoveDllDirectory\")\n\tprocResetEvent                                           = modkernel32.NewProc(\"ResetEvent\")\n\tprocResizePseudoConsole                                  = modkernel32.NewProc(\"ResizePseudoConsole\")\n\tprocResumeThread                                         = modkernel32.NewProc(\"ResumeThread\")\n\tprocSetCommBreak                                         = modkernel32.NewProc(\"SetCommBreak\")\n\tprocSetCommMask                                          = modkernel32.NewProc(\"SetCommMask\")\n\tprocSetCommState                                         = modkernel32.NewProc(\"SetCommState\")\n\tprocSetCommTimeouts                                      = modkernel32.NewProc(\"SetCommTimeouts\")\n\tprocSetConsoleCP                                         = modkernel32.NewProc(\"SetConsoleCP\")\n\tprocSetConsoleCursorPosition                             = modkernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocSetConsoleMode                                       = modkernel32.NewProc(\"SetConsoleMode\")\n\tprocSetConsoleOutputCP                                   = modkernel32.NewProc(\"SetConsoleOutputCP\")\n\tprocSetCurrentDirectoryW                                 = modkernel32.NewProc(\"SetCurrentDirectoryW\")\n\tprocSetDefaultDllDirectories                             = modkernel32.NewProc(\"SetDefaultDllDirectories\")\n\tprocSetDllDirectoryW                                     = modkernel32.NewProc(\"SetDllDirectoryW\")\n\tprocSetEndOfFile                                         = modkernel32.NewProc(\"SetEndOfFile\")\n\tprocSetEnvironmentVariableW                              = modkernel32.NewProc(\"SetEnvironmentVariableW\")\n\tprocSetErrorMode                                         = modkernel32.NewProc(\"SetErrorMode\")\n\tprocSetEvent                                             = modkernel32.NewProc(\"SetEvent\")\n\tprocSetFileAttributesW                                   = modkernel32.NewProc(\"SetFileAttributesW\")\n\tprocSetFileCompletionNotificationModes                   = modkernel32.NewProc(\"SetFileCompletionNotificationModes\")\n\tprocSetFileInformationByHandle                           = modkernel32.NewProc(\"SetFileInformationByHandle\")\n\tprocSetFilePointer                                       = modkernel32.NewProc(\"SetFilePointer\")\n\tprocSetFileTime                                          = modkernel32.NewProc(\"SetFileTime\")\n\tprocSetFileValidData                                     = modkernel32.NewProc(\"SetFileValidData\")\n\tprocSetHandleInformation                                 = modkernel32.NewProc(\"SetHandleInformation\")\n\tprocSetInformationJobObject                              = modkernel32.NewProc(\"SetInformationJobObject\")\n\tprocSetNamedPipeHandleState                              = modkernel32.NewProc(\"SetNamedPipeHandleState\")\n\tprocSetPriorityClass                                     = modkernel32.NewProc(\"SetPriorityClass\")\n\tprocSetProcessPriorityBoost                              = modkernel32.NewProc(\"SetProcessPriorityBoost\")\n\tprocSetProcessShutdownParameters                         = modkernel32.NewProc(\"SetProcessShutdownParameters\")\n\tprocSetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"SetProcessWorkingSetSizeEx\")\n\tprocSetStdHandle                                         = modkernel32.NewProc(\"SetStdHandle\")\n\tprocSetVolumeLabelW                                      = modkernel32.NewProc(\"SetVolumeLabelW\")\n\tprocSetVolumeMountPointW                                 = modkernel32.NewProc(\"SetVolumeMountPointW\")\n\tprocSetupComm                                            = modkernel32.NewProc(\"SetupComm\")\n\tprocSizeofResource                                       = modkernel32.NewProc(\"SizeofResource\")\n\tprocSleepEx                                              = modkernel32.NewProc(\"SleepEx\")\n\tprocTerminateJobObject                                   = modkernel32.NewProc(\"TerminateJobObject\")\n\tprocTerminateProcess                                     = modkernel32.NewProc(\"TerminateProcess\")\n\tprocThread32First                                        = modkernel32.NewProc(\"Thread32First\")\n\tprocThread32Next                                         = modkernel32.NewProc(\"Thread32Next\")\n\tprocUnlockFileEx                                         = modkernel32.NewProc(\"UnlockFileEx\")\n\tprocUnmapViewOfFile                                      = modkernel32.NewProc(\"UnmapViewOfFile\")\n\tprocUpdateProcThreadAttribute                            = modkernel32.NewProc(\"UpdateProcThreadAttribute\")\n\tprocVirtualAlloc                                         = modkernel32.NewProc(\"VirtualAlloc\")\n\tprocVirtualFree                                          = modkernel32.NewProc(\"VirtualFree\")\n\tprocVirtualLock                                          = modkernel32.NewProc(\"VirtualLock\")\n\tprocVirtualProtect                                       = modkernel32.NewProc(\"VirtualProtect\")\n\tprocVirtualProtectEx                                     = modkernel32.NewProc(\"VirtualProtectEx\")\n\tprocVirtualQuery                                         = modkernel32.NewProc(\"VirtualQuery\")\n\tprocVirtualQueryEx                                       = modkernel32.NewProc(\"VirtualQueryEx\")\n\tprocVirtualUnlock                                        = modkernel32.NewProc(\"VirtualUnlock\")\n\tprocWTSGetActiveConsoleSessionId                         = modkernel32.NewProc(\"WTSGetActiveConsoleSessionId\")\n\tprocWaitCommEvent                                        = modkernel32.NewProc(\"WaitCommEvent\")\n\tprocWaitForMultipleObjects                               = modkernel32.NewProc(\"WaitForMultipleObjects\")\n\tprocWaitForSingleObject                                  = modkernel32.NewProc(\"WaitForSingleObject\")\n\tprocWriteConsoleW                                        = modkernel32.NewProc(\"WriteConsoleW\")\n\tprocWriteFile                                            = modkernel32.NewProc(\"WriteFile\")\n\tprocWriteProcessMemory                                   = modkernel32.NewProc(\"WriteProcessMemory\")\n\tprocAcceptEx                                             = modmswsock.NewProc(\"AcceptEx\")\n\tprocGetAcceptExSockaddrs                                 = modmswsock.NewProc(\"GetAcceptExSockaddrs\")\n\tprocTransmitFile                                         = modmswsock.NewProc(\"TransmitFile\")\n\tprocNetApiBufferFree                                     = modnetapi32.NewProc(\"NetApiBufferFree\")\n\tprocNetGetJoinInformation                                = modnetapi32.NewProc(\"NetGetJoinInformation\")\n\tprocNetUserEnum                                          = modnetapi32.NewProc(\"NetUserEnum\")\n\tprocNetUserGetInfo                                       = modnetapi32.NewProc(\"NetUserGetInfo\")\n\tprocNtCreateFile                                         = modntdll.NewProc(\"NtCreateFile\")\n\tprocNtCreateNamedPipeFile                                = modntdll.NewProc(\"NtCreateNamedPipeFile\")\n\tprocNtQueryInformationProcess                            = modntdll.NewProc(\"NtQueryInformationProcess\")\n\tprocNtQuerySystemInformation                             = modntdll.NewProc(\"NtQuerySystemInformation\")\n\tprocNtSetInformationFile                                 = modntdll.NewProc(\"NtSetInformationFile\")\n\tprocNtSetInformationProcess                              = modntdll.NewProc(\"NtSetInformationProcess\")\n\tprocNtSetSystemInformation                               = modntdll.NewProc(\"NtSetSystemInformation\")\n\tprocRtlAddFunctionTable                                  = modntdll.NewProc(\"RtlAddFunctionTable\")\n\tprocRtlDefaultNpAcl                                      = modntdll.NewProc(\"RtlDefaultNpAcl\")\n\tprocRtlDeleteFunctionTable                               = modntdll.NewProc(\"RtlDeleteFunctionTable\")\n\tprocRtlDosPathNameToNtPathName_U_WithStatus              = modntdll.NewProc(\"RtlDosPathNameToNtPathName_U_WithStatus\")\n\tprocRtlDosPathNameToRelativeNtPathName_U_WithStatus      = modntdll.NewProc(\"RtlDosPathNameToRelativeNtPathName_U_WithStatus\")\n\tprocRtlGetCurrentPeb                                     = modntdll.NewProc(\"RtlGetCurrentPeb\")\n\tprocRtlGetNtVersionNumbers                               = modntdll.NewProc(\"RtlGetNtVersionNumbers\")\n\tprocRtlGetVersion                                        = modntdll.NewProc(\"RtlGetVersion\")\n\tprocRtlInitString                                        = modntdll.NewProc(\"RtlInitString\")\n\tprocRtlInitUnicodeString                                 = modntdll.NewProc(\"RtlInitUnicodeString\")\n\tprocRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc(\"RtlNtStatusToDosErrorNoTeb\")\n\tprocCLSIDFromString                                      = modole32.NewProc(\"CLSIDFromString\")\n\tprocCoCreateGuid                                         = modole32.NewProc(\"CoCreateGuid\")\n\tprocCoGetObject                                          = modole32.NewProc(\"CoGetObject\")\n\tprocCoInitializeEx                                       = modole32.NewProc(\"CoInitializeEx\")\n\tprocCoTaskMemFree                                        = modole32.NewProc(\"CoTaskMemFree\")\n\tprocCoUninitialize                                       = modole32.NewProc(\"CoUninitialize\")\n\tprocStringFromGUID2                                      = modole32.NewProc(\"StringFromGUID2\")\n\tprocEnumProcessModules                                   = modpsapi.NewProc(\"EnumProcessModules\")\n\tprocEnumProcessModulesEx                                 = modpsapi.NewProc(\"EnumProcessModulesEx\")\n\tprocEnumProcesses                                        = modpsapi.NewProc(\"EnumProcesses\")\n\tprocGetModuleBaseNameW                                   = modpsapi.NewProc(\"GetModuleBaseNameW\")\n\tprocGetModuleFileNameExW                                 = modpsapi.NewProc(\"GetModuleFileNameExW\")\n\tprocGetModuleInformation                                 = modpsapi.NewProc(\"GetModuleInformation\")\n\tprocQueryWorkingSetEx                                    = modpsapi.NewProc(\"QueryWorkingSetEx\")\n\tprocSubscribeServiceChangeNotifications                  = modsechost.NewProc(\"SubscribeServiceChangeNotifications\")\n\tprocUnsubscribeServiceChangeNotifications                = modsechost.NewProc(\"UnsubscribeServiceChangeNotifications\")\n\tprocGetUserNameExW                                       = modsecur32.NewProc(\"GetUserNameExW\")\n\tprocTranslateNameW                                       = modsecur32.NewProc(\"TranslateNameW\")\n\tprocSetupDiBuildDriverInfoList                           = modsetupapi.NewProc(\"SetupDiBuildDriverInfoList\")\n\tprocSetupDiCallClassInstaller                            = modsetupapi.NewProc(\"SetupDiCallClassInstaller\")\n\tprocSetupDiCancelDriverInfoSearch                        = modsetupapi.NewProc(\"SetupDiCancelDriverInfoSearch\")\n\tprocSetupDiClassGuidsFromNameExW                         = modsetupapi.NewProc(\"SetupDiClassGuidsFromNameExW\")\n\tprocSetupDiClassNameFromGuidExW                          = modsetupapi.NewProc(\"SetupDiClassNameFromGuidExW\")\n\tprocSetupDiCreateDeviceInfoListExW                       = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoListExW\")\n\tprocSetupDiCreateDeviceInfoW                             = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoW\")\n\tprocSetupDiDestroyDeviceInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDeviceInfoList\")\n\tprocSetupDiDestroyDriverInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDriverInfoList\")\n\tprocSetupDiEnumDeviceInfo                                = modsetupapi.NewProc(\"SetupDiEnumDeviceInfo\")\n\tprocSetupDiEnumDriverInfoW                               = modsetupapi.NewProc(\"SetupDiEnumDriverInfoW\")\n\tprocSetupDiGetClassDevsExW                               = modsetupapi.NewProc(\"SetupDiGetClassDevsExW\")\n\tprocSetupDiGetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiGetClassInstallParamsW\")\n\tprocSetupDiGetDeviceInfoListDetailW                      = modsetupapi.NewProc(\"SetupDiGetDeviceInfoListDetailW\")\n\tprocSetupDiGetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiGetDeviceInstallParamsW\")\n\tprocSetupDiGetDeviceInstanceIdW                          = modsetupapi.NewProc(\"SetupDiGetDeviceInstanceIdW\")\n\tprocSetupDiGetDevicePropertyW                            = modsetupapi.NewProc(\"SetupDiGetDevicePropertyW\")\n\tprocSetupDiGetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiGetDeviceRegistryPropertyW\")\n\tprocSetupDiGetDriverInfoDetailW                          = modsetupapi.NewProc(\"SetupDiGetDriverInfoDetailW\")\n\tprocSetupDiGetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiGetSelectedDevice\")\n\tprocSetupDiGetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiGetSelectedDriverW\")\n\tprocSetupDiOpenDevRegKey                                 = modsetupapi.NewProc(\"SetupDiOpenDevRegKey\")\n\tprocSetupDiSetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiSetClassInstallParamsW\")\n\tprocSetupDiSetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiSetDeviceInstallParamsW\")\n\tprocSetupDiSetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiSetDeviceRegistryPropertyW\")\n\tprocSetupDiSetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiSetSelectedDevice\")\n\tprocSetupDiSetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiSetSelectedDriverW\")\n\tprocSetupUninstallOEMInfW                                = modsetupapi.NewProc(\"SetupUninstallOEMInfW\")\n\tprocCommandLineToArgvW                                   = modshell32.NewProc(\"CommandLineToArgvW\")\n\tprocSHGetKnownFolderPath                                 = modshell32.NewProc(\"SHGetKnownFolderPath\")\n\tprocShellExecuteW                                        = modshell32.NewProc(\"ShellExecuteW\")\n\tprocEnumChildWindows                                     = moduser32.NewProc(\"EnumChildWindows\")\n\tprocEnumWindows                                          = moduser32.NewProc(\"EnumWindows\")\n\tprocExitWindowsEx                                        = moduser32.NewProc(\"ExitWindowsEx\")\n\tprocGetClassNameW                                        = moduser32.NewProc(\"GetClassNameW\")\n\tprocGetDesktopWindow                                     = moduser32.NewProc(\"GetDesktopWindow\")\n\tprocGetForegroundWindow                                  = moduser32.NewProc(\"GetForegroundWindow\")\n\tprocGetGUIThreadInfo                                     = moduser32.NewProc(\"GetGUIThreadInfo\")\n\tprocGetKeyboardLayout                                    = moduser32.NewProc(\"GetKeyboardLayout\")\n\tprocGetShellWindow                                       = moduser32.NewProc(\"GetShellWindow\")\n\tprocGetWindowThreadProcessId                             = moduser32.NewProc(\"GetWindowThreadProcessId\")\n\tprocIsWindow                                             = moduser32.NewProc(\"IsWindow\")\n\tprocIsWindowUnicode                                      = moduser32.NewProc(\"IsWindowUnicode\")\n\tprocIsWindowVisible                                      = moduser32.NewProc(\"IsWindowVisible\")\n\tprocLoadKeyboardLayoutW                                  = moduser32.NewProc(\"LoadKeyboardLayoutW\")\n\tprocMessageBoxW                                          = moduser32.NewProc(\"MessageBoxW\")\n\tprocToUnicodeEx                                          = moduser32.NewProc(\"ToUnicodeEx\")\n\tprocUnloadKeyboardLayout                                 = moduser32.NewProc(\"UnloadKeyboardLayout\")\n\tprocCreateEnvironmentBlock                               = moduserenv.NewProc(\"CreateEnvironmentBlock\")\n\tprocDestroyEnvironmentBlock                              = moduserenv.NewProc(\"DestroyEnvironmentBlock\")\n\tprocGetUserProfileDirectoryW                             = moduserenv.NewProc(\"GetUserProfileDirectoryW\")\n\tprocGetFileVersionInfoSizeW                              = modversion.NewProc(\"GetFileVersionInfoSizeW\")\n\tprocGetFileVersionInfoW                                  = modversion.NewProc(\"GetFileVersionInfoW\")\n\tprocVerQueryValueW                                       = modversion.NewProc(\"VerQueryValueW\")\n\tproctimeBeginPeriod                                      = modwinmm.NewProc(\"timeBeginPeriod\")\n\tproctimeEndPeriod                                        = modwinmm.NewProc(\"timeEndPeriod\")\n\tprocWinVerifyTrustEx                                     = modwintrust.NewProc(\"WinVerifyTrustEx\")\n\tprocFreeAddrInfoW                                        = modws2_32.NewProc(\"FreeAddrInfoW\")\n\tprocGetAddrInfoW                                         = modws2_32.NewProc(\"GetAddrInfoW\")\n\tprocWSACleanup                                           = modws2_32.NewProc(\"WSACleanup\")\n\tprocWSADuplicateSocketW                                  = modws2_32.NewProc(\"WSADuplicateSocketW\")\n\tprocWSAEnumProtocolsW                                    = modws2_32.NewProc(\"WSAEnumProtocolsW\")\n\tprocWSAGetOverlappedResult                               = modws2_32.NewProc(\"WSAGetOverlappedResult\")\n\tprocWSAIoctl                                             = modws2_32.NewProc(\"WSAIoctl\")\n\tprocWSALookupServiceBeginW                               = modws2_32.NewProc(\"WSALookupServiceBeginW\")\n\tprocWSALookupServiceEnd                                  = modws2_32.NewProc(\"WSALookupServiceEnd\")\n\tprocWSALookupServiceNextW                                = modws2_32.NewProc(\"WSALookupServiceNextW\")\n\tprocWSARecv                                              = modws2_32.NewProc(\"WSARecv\")\n\tprocWSARecvFrom                                          = modws2_32.NewProc(\"WSARecvFrom\")\n\tprocWSASend                                              = modws2_32.NewProc(\"WSASend\")\n\tprocWSASendTo                                            = modws2_32.NewProc(\"WSASendTo\")\n\tprocWSASocketW                                           = modws2_32.NewProc(\"WSASocketW\")\n\tprocWSAStartup                                           = modws2_32.NewProc(\"WSAStartup\")\n\tprocbind                                                 = modws2_32.NewProc(\"bind\")\n\tprocclosesocket                                          = modws2_32.NewProc(\"closesocket\")\n\tprocconnect                                              = modws2_32.NewProc(\"connect\")\n\tprocgethostbyname                                        = modws2_32.NewProc(\"gethostbyname\")\n\tprocgetpeername                                          = modws2_32.NewProc(\"getpeername\")\n\tprocgetprotobyname                                       = modws2_32.NewProc(\"getprotobyname\")\n\tprocgetservbyname                                        = modws2_32.NewProc(\"getservbyname\")\n\tprocgetsockname                                          = modws2_32.NewProc(\"getsockname\")\n\tprocgetsockopt                                           = modws2_32.NewProc(\"getsockopt\")\n\tproclisten                                               = modws2_32.NewProc(\"listen\")\n\tprocntohs                                                = modws2_32.NewProc(\"ntohs\")\n\tprocrecvfrom                                             = modws2_32.NewProc(\"recvfrom\")\n\tprocsendto                                               = modws2_32.NewProc(\"sendto\")\n\tprocsetsockopt                                           = modws2_32.NewProc(\"setsockopt\")\n\tprocshutdown                                             = modws2_32.NewProc(\"shutdown\")\n\tprocsocket                                               = modws2_32.NewProc(\"socket\")\n\tprocWTSEnumerateSessionsW                                = modwtsapi32.NewProc(\"WTSEnumerateSessionsW\")\n\tprocWTSFreeMemory                                        = modwtsapi32.NewProc(\"WTSFreeMemory\")\n\tprocWTSQueryUserToken                                    = modwtsapi32.NewProc(\"WTSQueryUserToken\")\n)\n\nfunc cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags))\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags))\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags))\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {\n\tr0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error))\n\tret = Errno(r0)\n\treturn\n}\n\nfunc AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif resetToDefault {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif disableAllPrivileges {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseServiceHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)\n}\n\nfunc _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc 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) {\n\tr0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptReleaseContext(provhandle Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteService(service Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeregisterEventSource(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {\n\tr0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)))\n\tisEqual = r0 != 0\n\treturn\n}\n\nfunc FreeSid(sid *SID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid)))\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLengthSid(sid *SID) (len uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid)))\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)\n}\n\nfunc _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)))\n\t*daclPresent = _p0 != 0\n\t*daclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))\n\t*groupDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd)))\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))\n\t*ownerDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)))\n\t*saclPresent = _p0 != 0\n\t*saclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {\n\tr0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid)))\n\tauthority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index))\n\tsubAuthority = (*uint32)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthorityCount(sid *SID) (count *uint8) {\n\tr0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid)))\n\tcount = (*uint8)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ImpersonateSelf(impersonationlevel uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {\n\tvar _p0 uint32\n\tif forceAppsClosed {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif rebootAfterShutdown {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isTokenRestricted(tokenHandle Token) (ret bool, err error) {\n\tr0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle))\n\tret = r0 != 0\n\tif !ret {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {\n\tr0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd)))\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isValidSid(sid *SID) (isValid bool) {\n\tr0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid)))\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType))\n\tisWellKnown = r0 != 0\n\treturn\n}\n\nfunc LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc OpenProcessToken(process Handle, access uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {\n\tvar _p0 uint32\n\tif openAsSelf {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) {\n\terr = procQueryServiceDynamicInformation.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegCloseKey(key Handle) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) {\n\tvar _p0 uint32\n\tif watchSubtree {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif asynchronous {\n\t\t_p1 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc 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) {\n\tr0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RevertToSelf() (err error) {\n\tr1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr())\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)\n}\n\nfunc _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {\n\tsyscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))\n\treturn\n}\n\nfunc setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetThreadToken(thread *Handle, token Token) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCloseStore(store Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDeleteCertificateFromStore(certContext *CertContext) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {\n\tr0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext)))\n\tdupContext = (*CertContext)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext)))\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext)))\n\tcert = (*CertContext)(unsafe.Pointer(r0))\n\tif cert == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext)))\n\tcertchain = (*CertChainContext)(unsafe.Pointer(r0))\n\tif certchain == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) {\n\tr0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions)))\n\tret = (*CertExtension)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertFreeCertificateChain(ctx *CertChainContext) {\n\tsyscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx)))\n\treturn\n}\n\nfunc CertFreeCertificateContext(ctx *CertContext) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) {\n\tr0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size))\n\tchars = uint32(r0)\n\treturn\n}\n\nfunc CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name)))\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) {\n\tvar _p0 uint32\n\tif *callerFreeProvOrNCryptKey {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0)))\n\t*callerFreeProvOrNCryptKey = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {\n\tr0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)))\n\tsame = r0 != 0\n\treturn\n}\n\nfunc DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tvar _p0 *uint16\n\t_p0, status = syscall.UTF16PtrFromString(name)\n\tif status != nil {\n\t\treturn\n\t}\n\treturn _DnsQuery(_p0, qtype, options, extra, qrs, pr)\n}\n\nfunc _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tr0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr)))\n\tif r0 != 0 {\n\t\tstatus = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DnsRecordListFree(rl *DNSRecord, freetype uint32) {\n\tsyscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype))\n\treturn\n}\n\nfunc DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CancelMibChangeNotify2(notificationHandle Handle) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc FreeMibTable(memory unsafe.Pointer) {\n\tsyscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory))\n\treturn\n}\n\nfunc GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry(pIfRow *MibIfRow) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), uintptr(family), uintptr(unsafe.Pointer(table)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc AddDllDirectory(path *uint16) (cookie uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path)))\n\tcookie = uintptr(r0)\n\tif cookie == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AssignProcessToJobObject(job Handle, process Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIo(s Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIoEx(s Handle, o *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClosePseudoConsole(console Handle) {\n\tsyscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console))\n\treturn\n}\n\nfunc ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif initialOwner {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) {\n\tr0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)))\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteFile(path *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {\n\tsyscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)))\n\treturn\n}\n\nfunc DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DisconnectNamedPipe(pipe Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {\n\tvar _p0 uint32\n\tif bInheritHandle {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitProcess(exitcode uint32) {\n\tsyscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode))\n\treturn\n}\n\nfunc ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindClose(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindCloseChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter)\n}\n\nfunc _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p1 uint32\n\tif watchSubtree {\n\t\t_p1 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findNextFile1(handle Handle, data *win32finddata1) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType))\n\tresInfo = Handle(r0)\n\tif resInfo == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeClose(findVolume Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushConsoleInputBuffer(console Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushFileBuffers(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushViewOfFile(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {\n\tvar _p0 *uint16\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeEnvironmentStrings(envs *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeLibrary(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetACP() (acp uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetACP.Addr())\n\tacp = uint32(r0)\n\treturn\n}\n\nfunc GetActiveProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommandLine() (cmd *uint16) {\n\tr0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr())\n\tcmd = (*uint16)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetComputerName(buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr())\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleMode(console Handle, mode *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleOutputCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr())\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentProcessId() (pid uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr())\n\tpid = uint32(r0)\n\treturn\n}\n\nfunc GetCurrentThreadId() (id uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr())\n\tid = uint32(r0)\n\treturn\n}\n\nfunc GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDriveType(rootPathName *uint16) (driveType uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName)))\n\tdriveType = uint32(r0)\n\treturn\n}\n\nfunc GetEnvironmentStrings() (envs *uint16, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr())\n\tenvs = (*uint16)(unsafe.Pointer(r0))\n\tif envs == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributes(name *uint16) (attrs uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)))\n\tattrs = uint32(r0)\n\tif attrs == INVALID_FILE_ATTRIBUTES {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileType(filehandle Handle) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLargePageMinimum() (size uintptr) {\n\tr0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr())\n\tsize = uintptr(r0)\n\treturn\n}\n\nfunc GetLastError() (lasterr error) {\n\tr0, _, _ := syscall.SyscallN(procGetLastError.Addr())\n\tif r0 != 0 {\n\t\tlasterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLogicalDrives() (drivesBitMask uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr())\n\tdrivesBitMask = uint32(r0)\n\tif drivesBitMask == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetMaximumProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetPriorityClass(process Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process))\n\tret = uint32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcAddress(module Handle, procname string) (proc uintptr, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(procname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProcAddress(module, _p0)\n}\n\nfunc _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname)))\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessId(process Handle) (id uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process))\n\tid = uint32(r0)\n\tif id == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {\n\tsyscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)))\n\treturn\n}\n\nfunc GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getStartupInfo(startupInfo *StartupInfo) {\n\tsyscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo)))\n\treturn\n}\n\nfunc GetStdHandle(stdhandle uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetSystemTimeAsFileTime(time *Filetime) {\n\tsyscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))\n\treturn\n}\n\nfunc GetSystemTimePreciseAsFileTime(time *Filetime) {\n\tsyscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))\n\treturn\n}\n\nfunc getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getTickCount64() (ms uint64) {\n\tr0, _, _ := syscall.SyscallN(procGetTickCount64.Addr())\n\tms = uint64(r0)\n\treturn\n}\n\nfunc GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi)))\n\trc = uint32(r0)\n\tif rc == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVersion() (ver uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetVersion.Addr())\n\tver = uint32(r0)\n\tif ver == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process(handle Handle, isWow64 *bool) (err error) {\n\tvar _p0 uint32\n\tif *isWow64 {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0)))\n\t*isWow64 = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {\n\terr = procIsWow64Process2.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibraryEx(_p0, zero, flags)\n}\n\nfunc _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibrary(libname string) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibrary(_p0)\n}\n\nfunc _LoadLibrary(libname *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadResource(module Handle, resInfo Handle) (resData Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo))\n\tresData = Handle(r0)\n\tif resData == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length))\n\tptr = uintptr(r0)\n\tif ptr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalFree(hmem Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem))\n\thandle = Handle(r0)\n\tif handle != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockResource(resData Handle) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData))\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length))\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFile(from *uint16, to *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))\n\tnwrite = int32(r0)\n\tif nwrite == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PulseEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PurgeComm(handle Handle, dwFlags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tvar _p0 uint32\n\tif watchSubTree {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReleaseMutex(mutex Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDllDirectory(cookie uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ResetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc resizePseudoConsole(pconsole Handle, size uint32) (hr error) {\n\tr0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size))\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ResumeThread(thread Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread))\n\tret = uint32(r0)\n\tif ret == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommMask(handle Handle, dwEvtMask uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setConsoleCursorPosition(console Handle, position uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleMode(console Handle, mode uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleOutputCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCurrentDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDefaultDllDirectories(directoryFlags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDllDirectory(path string) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _SetDllDirectory(_p0)\n}\n\nfunc _SetDllDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEndOfFile(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEnvironmentVariable(name *uint16, value *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetErrorMode(mode uint32) (ret uint32) {\n\tr0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc SetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileAttributes(name *uint16, attrs uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence))\n\tnewlowoffset = uint32(r0)\n\tif newlowoffset == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileValidData(handle Handle, validDataLength int64) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength))\n\tret = int(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetPriorityClass(process Handle, priorityClass uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessPriorityBoost(process Handle, disable bool) (err error) {\n\tvar _p0 uint32\n\tif disable {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessShutdownParameters(level uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetStdHandle(stdhandle uint32, handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo))\n\tsize = uint32(r0)\n\tif size == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SleepEx(milliseconds uint32, alertable bool) (ret uint32) {\n\tvar _p0 uint32\n\tif alertable {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc TerminateJobObject(job Handle, exitCode uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TerminateProcess(handle Handle, exitcode uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnmapViewOfFile(addr uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {\n\tr0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect))\n\tvalue = uintptr(r0)\n\tif value == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualLock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualUnlock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSGetActiveConsoleSessionId() (sessionID uint32) {\n\tr0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr())\n\tsessionID = uint32(r0)\n\treturn\n}\n\nfunc WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\tvar _p0 uint32\n\tif waitAll {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds))\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds))\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {\n\tsyscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)))\n\treturn\n}\n\nfunc TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NetApiBufferFree(buf *byte) (neterr error) {\n\tr0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {\n\tr0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {\n\tr0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {\n\tr0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) {\n\tr0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress))\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDefaultNpAcl(acl **ACL) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) {\n\tr0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)))\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlGetCurrentPeb() (peb *PEB) {\n\tr0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr())\n\tpeb = (*PEB)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {\n\tsyscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))\n\treturn\n}\n\nfunc rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) {\n\tr0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlInitString(destinationString *NTString, sourceString *byte) {\n\tsyscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))\n\treturn\n}\n\nfunc RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {\n\tsyscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))\n\treturn\n}\n\nfunc rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {\n\tr0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus))\n\tret = syscall.Errno(r0)\n\treturn\n}\n\nfunc clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc coCreateGuid(pguid *GUID) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoInitializeEx(reserved uintptr, coInit uint32) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoTaskMemFree(address unsafe.Pointer) {\n\tsyscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address))\n\treturn\n}\n\nfunc CoUninitialize() {\n\tsyscall.SyscallN(procCoUninitialize.Addr())\n\treturn\n}\n\nfunc stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {\n\tr0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))\n\tchars = int32(r0)\n\treturn\n}\n\nfunc EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) {\n\tret = procSubscribeServiceChangeNotifications.Find()\n\tif ret != nil {\n\t\treturn\n\t}\n\tr0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) {\n\terr = procUnsubscribeServiceChangeNotifications.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tsyscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription))\n\treturn\n}\n\nfunc GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired))\n\tkey = Handle(r0)\n\tif key == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)))\n\targv = (**uint16)(unsafe.Pointer(r0))\n\tif argv == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))\n\tif r1 <= 32 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) {\n\tsyscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param))\n\treturn\n}\n\nfunc EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitWindowsEx(flags uint32, reason uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount))\n\tcopied = int32(r0)\n\tif copied == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDesktopWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr())\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetForegroundWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr())\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetKeyboardLayout(tid uint32) (hkl Handle) {\n\tr0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid))\n\thkl = Handle(r0)\n\treturn\n}\n\nfunc GetShellWindow() (shellWindow HWND) {\n\tr0, _, _ := syscall.SyscallN(procGetShellWindow.Addr())\n\tshellWindow = HWND(r0)\n\treturn\n}\n\nfunc GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid)))\n\ttid = uint32(r0)\n\tif tid == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWindow(hwnd HWND) (isWindow bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd))\n\tisWindow = r0 != 0\n\treturn\n}\n\nfunc IsWindowUnicode(hwnd HWND) (isUnicode bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd))\n\tisUnicode = r0 != 0\n\treturn\n}\n\nfunc IsWindowVisible(hwnd HWND) (isVisible bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd))\n\tisVisible = r0 != 0\n\treturn\n}\n\nfunc LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags))\n\thkl = Handle(r0)\n\tif hkl == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype))\n\tret = int32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) {\n\tr0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl))\n\tret = int32(r0)\n\treturn\n}\n\nfunc UnloadKeyboardLayout(hkl Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {\n\tvar _p0 uint32\n\tif inheritExisting {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DestroyEnvironmentBlock(block *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfoSize(_p0, zeroHandle)\n}\n\nfunc _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)))\n\tbufSize = uint32(r0)\n\tif bufSize == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfo(_p0, handle, bufSize, buffer)\n}\n\nfunc _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(subBlock)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize)\n}\n\nfunc _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeBeginPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period))\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeEndPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period))\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc FreeAddrInfoW(addrinfo *AddrinfoW) {\n\tsyscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo)))\n\treturn\n}\n\nfunc GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {\n\tr0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)))\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc WSACleanup() (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSACleanup.Addr())\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info)))\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceEnd(handle Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAStartup(verreq uint32, data *WSAData) (sockerr error) {\n\tr0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data)))\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Closesocket(s Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetHostByName(name string) (h *Hostent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetHostByName(_p0)\n}\n\nfunc _GetHostByName(name *byte) (h *Hostent, err error) {\n\tr0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name)))\n\th = (*Hostent)(unsafe.Pointer(r0))\n\tif h == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProtoByName(name string) (p *Protoent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProtoByName(_p0)\n}\n\nfunc _GetProtoByName(name *byte) (p *Protoent, err error) {\n\tr0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name)))\n\tp = (*Protoent)(unsafe.Pointer(r0))\n\tif p == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetServByName(name string, proto string) (s *Servent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = syscall.BytePtrFromString(proto)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetServByName(_p0, _p1)\n}\n\nfunc _GetServByName(name *byte, proto *byte) (s *Servent, err error) {\n\tr0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)))\n\ts = (*Servent)(unsafe.Pointer(r0))\n\tif s == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc listen(s Handle, backlog int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Ntohs(netshort uint16) (u uint16) {\n\tr0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort))\n\tu = uint16(r0)\n\treturn\n}\n\nfunc recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shutdown(s Handle, how int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc socket(af int32, typ int32, protocol int32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSFreeMemory(ptr uintptr) {\n\tsyscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr))\n\treturn\n}\n\nfunc WTSQueryUserToken(session uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/CONTRIBUTING.md",
    "content": "# Contributing to Go\n\nGo is an open source project.\n\nIt is the work of hundreds of contributors. We appreciate your help!\n\n## Filing issues\n\nWhen [filing an issue](https://golang.org/issue/new), make sure to answer these five questions:\n\n1.  What version of Go are you using (`go version`)?\n2.  What operating system and processor architecture are you using?\n3.  What did you do?\n4.  What did you expect to see?\n5.  What did you see instead?\n\nGeneral questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.\nThe gophers there will answer or ask you to file an issue if you've tripped over a bug.\n\n## Contributing code\n\nPlease read the [Contribution Guidelines](https://golang.org/doc/contribute.html)\nbefore sending patches.\n\nUnless otherwise noted, the Go source files are distributed under\nthe BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/golang.org/x/term/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/term/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/term/README.md",
    "content": "# Go terminal/console support\n\n[![Go Reference](https://pkg.go.dev/badge/golang.org/x/term.svg)](https://pkg.go.dev/golang.org/x/term)\n\nThis repository provides Go terminal and console support packages.\n\n## Report Issues / Send Patches\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://go.dev/doc/contribute.\n\nThe git repository is https://go.googlesource.com/term.\n\nThe main issue tracker for the term repository is located at\nhttps://go.dev/issues. Prefix your issue with \"x/term:\" in the\nsubject line, so it is easy to find.\n"
  },
  {
    "path": "vendor/golang.org/x/term/codereview.cfg",
    "content": "issuerepo: golang/go\n"
  },
  {
    "path": "vendor/golang.org/x/term/term.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package term provides support functions for dealing with terminals, as\n// commonly found on UNIX systems.\n//\n// Putting a terminal into raw mode is the most common requirement:\n//\n//\toldState, err := term.MakeRaw(int(os.Stdin.Fd()))\n//\tif err != nil {\n//\t        panic(err)\n//\t}\n//\tdefer term.Restore(int(os.Stdin.Fd()), oldState)\n//\n// Note that on non-Unix systems os.Stdin.Fd() may not be 0.\npackage term\n\n// State contains the state of a terminal.\ntype State struct {\n\tstate\n}\n\n// IsTerminal returns whether the given file descriptor is a terminal.\nfunc IsTerminal(fd int) bool {\n\treturn isTerminal(fd)\n}\n\n// MakeRaw puts the terminal connected to the given file descriptor into raw\n// mode and returns the previous state of the terminal so that it can be\n// restored.\nfunc MakeRaw(fd int) (*State, error) {\n\treturn makeRaw(fd)\n}\n\n// GetState returns the current state of a terminal which may be useful to\n// restore the terminal after a signal.\nfunc GetState(fd int) (*State, error) {\n\treturn getState(fd)\n}\n\n// Restore restores the terminal connected to the given file descriptor to a\n// previous state.\nfunc Restore(fd int, oldState *State) error {\n\treturn restore(fd, oldState)\n}\n\n// GetSize returns the visible dimensions of the given terminal.\n//\n// These dimensions don't include any scrollback buffer height.\nfunc GetSize(fd int) (width, height int, err error) {\n\treturn getSize(fd)\n}\n\n// ReadPassword reads a line of input from a terminal without local echo.  This\n// is commonly used for inputting passwords and other sensitive data. The slice\n// returned does not include the \\n.\nfunc ReadPassword(fd int) ([]byte, error) {\n\treturn readPassword(fd)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_plan9.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\n\t\"golang.org/x/sys/plan9\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\tpath, err := plan9.Fd2path(fd)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn path == \"/dev/cons\" || path == \"/mnt/term/dev/cons\"\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage term\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\ntype state struct {\n\ttermios unix.Termios\n}\n\nfunc isTerminal(fd int) bool {\n\t_, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\treturn err == nil\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toldState := State{state{termios: *termios}}\n\n\t// This attempts to replicate the behaviour documented for cfmakeraw in\n\t// the termios(3) manpage.\n\ttermios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON\n\ttermios.Oflag &^= unix.OPOST\n\ttermios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN\n\ttermios.Cflag &^= unix.CSIZE | unix.PARENB\n\ttermios.Cflag |= unix.CS8\n\ttermios.Cc[unix.VMIN] = 1\n\ttermios.Cc[unix.VTIME] = 0\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, termios); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &oldState, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &State{state{termios: *termios}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn unix.IoctlSetTermios(fd, ioctlWriteTermios, &state.termios)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(ws.Col), int(ws.Row), nil\n}\n\n// passwordReader is an io.Reader that reads from a specific file descriptor.\ntype passwordReader int\n\nfunc (r passwordReader) Read(buf []byte) (int, error) {\n\treturn unix.Read(int(r), buf)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewState := *termios\n\tnewState.Lflag &^= unix.ECHO\n\tnewState.Lflag |= unix.ICANON | unix.ISIG\n\tnewState.Iflag |= unix.ICRNL\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newState); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer unix.IoctlSetTermios(fd, ioctlWriteTermios, termios)\n\n\treturn readPasswordLine(passwordReader(fd))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_bsd.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TIOCGETA\nconst ioctlWriteTermios = unix.TIOCSETA\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || linux || solaris || zos\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TCGETS\nconst ioctlWriteTermios = unix.TCSETS\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unsupported.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\treturn false\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_windows.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"os\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\ntype state struct {\n\tmode uint32\n}\n\nfunc isTerminal(fd int) bool {\n\tvar st uint32\n\terr := windows.GetConsoleMode(windows.Handle(fd), &st)\n\treturn err == nil\n}\n\n// This is intended to be used on a console input handle.\n// See https://learn.microsoft.com/en-us/windows/console/setconsolemode\nfunc makeRaw(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\traw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT)\n\traw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT\n\tif err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn windows.SetConsoleMode(windows.Handle(fd), state.mode)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tvar info windows.ConsoleScreenBufferInfo\n\tif err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\told := st\n\n\tst &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT)\n\tst |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT)\n\tif err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer windows.SetConsoleMode(windows.Handle(fd), old)\n\n\tvar h windows.Handle\n\tp, _ := windows.GetCurrentProcess()\n\tif err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := os.NewFile(uintptr(h), \"stdin\")\n\tdefer f.Close()\n\treturn readPasswordLine(f)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/terminal.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// EscapeCodes contains escape sequences that can be written to the terminal in\n// order to achieve different styles of text.\ntype EscapeCodes struct {\n\t// Foreground colors\n\tBlack, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte\n\n\t// Reset all attributes\n\tReset []byte\n}\n\nvar vt100EscapeCodes = EscapeCodes{\n\tBlack:   []byte{keyEscape, '[', '3', '0', 'm'},\n\tRed:     []byte{keyEscape, '[', '3', '1', 'm'},\n\tGreen:   []byte{keyEscape, '[', '3', '2', 'm'},\n\tYellow:  []byte{keyEscape, '[', '3', '3', 'm'},\n\tBlue:    []byte{keyEscape, '[', '3', '4', 'm'},\n\tMagenta: []byte{keyEscape, '[', '3', '5', 'm'},\n\tCyan:    []byte{keyEscape, '[', '3', '6', 'm'},\n\tWhite:   []byte{keyEscape, '[', '3', '7', 'm'},\n\n\tReset: []byte{keyEscape, '[', '0', 'm'},\n}\n\n// A History provides a (possibly bounded) queue of input lines read by [Terminal.ReadLine].\ntype History interface {\n\t// Add will be called by [Terminal.ReadLine] to add\n\t// a new, most recent entry to the history.\n\t// It is allowed to drop any entry, including\n\t// the entry being added (e.g., if it's deemed an invalid entry),\n\t// the least-recent entry (e.g., to keep the history bounded),\n\t// or any other entry.\n\tAdd(entry string)\n\n\t// Len returns the number of entries in the history.\n\tLen() int\n\n\t// At returns an entry from the history.\n\t// Index 0 is the most-recently added entry and\n\t// index Len()-1 is the least-recently added entry.\n\t// If index is < 0 or >= Len(), it panics.\n\tAt(idx int) string\n}\n\n// Terminal contains the state for running a VT100 terminal that is capable of\n// reading lines of input.\ntype Terminal struct {\n\t// AutoCompleteCallback, if non-null, is called for each keypress with\n\t// the full input line and the current position of the cursor (in\n\t// bytes, as an index into |line|). If it returns ok=false, the key\n\t// press is processed normally. Otherwise it returns a replacement line\n\t// and the new cursor position.\n\t//\n\t// This will be disabled during ReadPassword.\n\tAutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)\n\n\t// Escape contains a pointer to the escape codes for this terminal.\n\t// It's always a valid pointer, although the escape codes themselves\n\t// may be empty if the terminal doesn't support them.\n\tEscape *EscapeCodes\n\n\t// lock protects the terminal and the state in this object from\n\t// concurrent processing of a key press and a Write() call.\n\tlock sync.Mutex\n\n\tc      io.ReadWriter\n\tprompt []rune\n\n\t// line is the current line being entered.\n\tline []rune\n\t// pos is the logical position of the cursor in line\n\tpos int\n\t// echo is true if local echo is enabled\n\techo bool\n\t// pasteActive is true iff there is a bracketed paste operation in\n\t// progress.\n\tpasteActive bool\n\n\t// cursorX contains the current X value of the cursor where the left\n\t// edge is 0. cursorY contains the row number where the first row of\n\t// the current line is 0.\n\tcursorX, cursorY int\n\t// maxLine is the greatest value of cursorY so far.\n\tmaxLine int\n\n\ttermWidth, termHeight int\n\n\t// outBuf contains the terminal data to be sent.\n\toutBuf []byte\n\t// remainder contains the remainder of any partial key sequences after\n\t// a read. It aliases into inBuf.\n\tremainder []byte\n\tinBuf     [256]byte\n\n\t// History records and retrieves lines of input read by [ReadLine] which\n\t// a user can retrieve and navigate using the up and down arrow keys.\n\t//\n\t// It is not safe to call ReadLine concurrently with any methods on History.\n\t//\n\t// [NewTerminal] sets this to a default implementation that records the\n\t// last 100 lines of input.\n\tHistory History\n\t// historyIndex stores the currently accessed history entry, where zero\n\t// means the immediately previous entry.\n\thistoryIndex int\n\t// When navigating up and down the history it's possible to return to\n\t// the incomplete, initial line. That value is stored in\n\t// historyPending.\n\thistoryPending string\n}\n\n// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is\n// a local terminal, that terminal must first have been put into raw mode.\n// prompt is a string that is written at the start of each input line (i.e.\n// \"> \").\nfunc NewTerminal(c io.ReadWriter, prompt string) *Terminal {\n\treturn &Terminal{\n\t\tEscape:       &vt100EscapeCodes,\n\t\tc:            c,\n\t\tprompt:       []rune(prompt),\n\t\ttermWidth:    80,\n\t\ttermHeight:   24,\n\t\techo:         true,\n\t\thistoryIndex: -1,\n\t\tHistory:      &stRingBuffer{},\n\t}\n}\n\nconst (\n\tkeyCtrlC     = 3\n\tkeyCtrlD     = 4\n\tkeyCtrlU     = 21\n\tkeyEnter     = '\\r'\n\tkeyLF        = '\\n'\n\tkeyEscape    = 27\n\tkeyBackspace = 127\n\tkeyUnknown   = 0xd800 /* UTF-16 surrogate area */ + iota\n\tkeyUp\n\tkeyDown\n\tkeyLeft\n\tkeyRight\n\tkeyAltLeft\n\tkeyAltRight\n\tkeyHome\n\tkeyEnd\n\tkeyDeleteWord\n\tkeyDeleteLine\n\tkeyClearScreen\n\tkeyPasteStart\n\tkeyPasteEnd\n)\n\nvar (\n\tcrlf       = []byte{'\\r', '\\n'}\n\tpasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'}\n\tpasteEnd   = []byte{keyEscape, '[', '2', '0', '1', '~'}\n)\n\n// bytesToKey tries to parse a key sequence from b. If successful, it returns\n// the key and the remainder of the input. Otherwise it returns utf8.RuneError.\nfunc bytesToKey(b []byte, pasteActive bool) (rune, []byte) {\n\tif len(b) == 0 {\n\t\treturn utf8.RuneError, nil\n\t}\n\n\tif !pasteActive {\n\t\tswitch b[0] {\n\t\tcase 1: // ^A\n\t\t\treturn keyHome, b[1:]\n\t\tcase 2: // ^B\n\t\t\treturn keyLeft, b[1:]\n\t\tcase 5: // ^E\n\t\t\treturn keyEnd, b[1:]\n\t\tcase 6: // ^F\n\t\t\treturn keyRight, b[1:]\n\t\tcase 8: // ^H\n\t\t\treturn keyBackspace, b[1:]\n\t\tcase 11: // ^K\n\t\t\treturn keyDeleteLine, b[1:]\n\t\tcase 12: // ^L\n\t\t\treturn keyClearScreen, b[1:]\n\t\tcase 23: // ^W\n\t\t\treturn keyDeleteWord, b[1:]\n\t\tcase 14: // ^N\n\t\t\treturn keyDown, b[1:]\n\t\tcase 16: // ^P\n\t\t\treturn keyUp, b[1:]\n\t\t}\n\t}\n\n\tif b[0] != keyEscape {\n\t\tif !utf8.FullRune(b) {\n\t\t\treturn utf8.RuneError, b\n\t\t}\n\t\tr, l := utf8.DecodeRune(b)\n\t\treturn r, b[l:]\n\t}\n\n\tif !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' {\n\t\tswitch b[2] {\n\t\tcase 'A':\n\t\t\treturn keyUp, b[3:]\n\t\tcase 'B':\n\t\t\treturn keyDown, b[3:]\n\t\tcase 'C':\n\t\t\treturn keyRight, b[3:]\n\t\tcase 'D':\n\t\t\treturn keyLeft, b[3:]\n\t\tcase 'H':\n\t\t\treturn keyHome, b[3:]\n\t\tcase 'F':\n\t\t\treturn keyEnd, b[3:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {\n\t\tswitch b[5] {\n\t\tcase 'C':\n\t\t\treturn keyAltRight, b[6:]\n\t\tcase 'D':\n\t\t\treturn keyAltLeft, b[6:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {\n\t\treturn keyPasteStart, b[6:]\n\t}\n\n\tif pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) {\n\t\treturn keyPasteEnd, b[6:]\n\t}\n\n\t// If we get here then we have a key that we don't recognise, or a\n\t// partial sequence. It's not clear how one should find the end of a\n\t// sequence without knowing them all, but it seems that [a-zA-Z~] only\n\t// appears at the end of a sequence.\n\tfor i, c := range b[0:] {\n\t\tif c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' {\n\t\t\treturn keyUnknown, b[i+1:]\n\t\t}\n\t}\n\n\treturn utf8.RuneError, b\n}\n\n// queue appends data to the end of t.outBuf\nfunc (t *Terminal) queue(data []rune) {\n\tt.outBuf = append(t.outBuf, []byte(string(data))...)\n}\n\nvar space = []rune{' '}\n\nfunc isPrintable(key rune) bool {\n\tisInSurrogateArea := key >= 0xd800 && key <= 0xdbff\n\treturn key >= 32 && !isInSurrogateArea\n}\n\n// moveCursorToPos appends data to t.outBuf which will move the cursor to the\n// given, logical position in the text.\nfunc (t *Terminal) moveCursorToPos(pos int) {\n\tif !t.echo {\n\t\treturn\n\t}\n\n\tx := visualLength(t.prompt) + pos\n\ty := x / t.termWidth\n\tx = x % t.termWidth\n\n\tup := 0\n\tif y < t.cursorY {\n\t\tup = t.cursorY - y\n\t}\n\n\tdown := 0\n\tif y > t.cursorY {\n\t\tdown = y - t.cursorY\n\t}\n\n\tleft := 0\n\tif x < t.cursorX {\n\t\tleft = t.cursorX - x\n\t}\n\n\tright := 0\n\tif x > t.cursorX {\n\t\tright = x - t.cursorX\n\t}\n\n\tt.cursorX = x\n\tt.cursorY = y\n\tt.move(up, down, left, right)\n}\n\nfunc (t *Terminal) move(up, down, left, right int) {\n\tm := []rune{}\n\n\t// 1 unit up can be expressed as ^[[A or ^[A\n\t// 5 units up can be expressed as ^[[5A\n\n\tif up == 1 {\n\t\tm = append(m, keyEscape, '[', 'A')\n\t} else if up > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(up))...)\n\t\tm = append(m, 'A')\n\t}\n\n\tif down == 1 {\n\t\tm = append(m, keyEscape, '[', 'B')\n\t} else if down > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(down))...)\n\t\tm = append(m, 'B')\n\t}\n\n\tif right == 1 {\n\t\tm = append(m, keyEscape, '[', 'C')\n\t} else if right > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(right))...)\n\t\tm = append(m, 'C')\n\t}\n\n\tif left == 1 {\n\t\tm = append(m, keyEscape, '[', 'D')\n\t} else if left > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(left))...)\n\t\tm = append(m, 'D')\n\t}\n\n\tt.queue(m)\n}\n\nfunc (t *Terminal) clearLineToRight() {\n\top := []rune{keyEscape, '[', 'K'}\n\tt.queue(op)\n}\n\nconst maxLineLength = 4096\n\nfunc (t *Terminal) setLine(newLine []rune, newPos int) {\n\tif t.echo {\n\t\tt.moveCursorToPos(0)\n\t\tt.writeLine(newLine)\n\t\tfor i := len(newLine); i < len(t.line); i++ {\n\t\t\tt.writeLine(space)\n\t\t}\n\t\tt.moveCursorToPos(newPos)\n\t}\n\tt.line = newLine\n\tt.pos = newPos\n}\n\nfunc (t *Terminal) advanceCursor(places int) {\n\tt.cursorX += places\n\tt.cursorY += t.cursorX / t.termWidth\n\tif t.cursorY > t.maxLine {\n\t\tt.maxLine = t.cursorY\n\t}\n\tt.cursorX = t.cursorX % t.termWidth\n\n\tif places > 0 && t.cursorX == 0 {\n\t\t// Normally terminals will advance the current position\n\t\t// when writing a character. But that doesn't happen\n\t\t// for the last character in a line. However, when\n\t\t// writing a character (except a new line) that causes\n\t\t// a line wrap, the position will be advanced two\n\t\t// places.\n\t\t//\n\t\t// So, if we are stopping at the end of a line, we\n\t\t// need to write a newline so that our cursor can be\n\t\t// advanced to the next line.\n\t\tt.outBuf = append(t.outBuf, '\\r', '\\n')\n\t}\n}\n\nfunc (t *Terminal) eraseNPreviousChars(n int) {\n\tif n == 0 {\n\t\treturn\n\t}\n\n\tif t.pos < n {\n\t\tn = t.pos\n\t}\n\tt.pos -= n\n\tt.moveCursorToPos(t.pos)\n\n\tcopy(t.line[t.pos:], t.line[n+t.pos:])\n\tt.line = t.line[:len(t.line)-n]\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t\tfor i := 0; i < n; i++ {\n\t\t\tt.queue(space)\n\t\t}\n\t\tt.advanceCursor(n)\n\t\tt.moveCursorToPos(t.pos)\n\t}\n}\n\n// countToLeftWord returns the number of characters from the cursor to the\n// start of the previous word.\nfunc (t *Terminal) countToLeftWord() int {\n\tif t.pos == 0 {\n\t\treturn 0\n\t}\n\n\tpos := t.pos - 1\n\tfor pos > 0 {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\tfor pos > 0 {\n\t\tif t.line[pos] == ' ' {\n\t\t\tpos++\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\n\treturn t.pos - pos\n}\n\n// countToRightWord returns the number of characters from the cursor to the\n// start of the next word.\nfunc (t *Terminal) countToRightWord() int {\n\tpos := t.pos\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] == ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\treturn pos - t.pos\n}\n\n// visualLength returns the number of visible glyphs in s.\nfunc visualLength(runes []rune) int {\n\tinEscapeSeq := false\n\tlength := 0\n\n\tfor _, r := range runes {\n\t\tswitch {\n\t\tcase inEscapeSeq:\n\t\t\tif (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') {\n\t\t\t\tinEscapeSeq = false\n\t\t\t}\n\t\tcase r == '\\x1b':\n\t\t\tinEscapeSeq = true\n\t\tdefault:\n\t\t\tlength++\n\t\t}\n\t}\n\n\treturn length\n}\n\n// historyAt unlocks the terminal and relocks it while calling History.At.\nfunc (t *Terminal) historyAt(idx int) (string, bool) {\n\tt.lock.Unlock()     // Unlock to avoid deadlock if History methods use the output writer.\n\tdefer t.lock.Lock() // panic in At (or Len) protection.\n\tif idx < 0 || idx >= t.History.Len() {\n\t\treturn \"\", false\n\t}\n\treturn t.History.At(idx), true\n}\n\n// historyAdd unlocks the terminal and relocks it while calling History.Add.\nfunc (t *Terminal) historyAdd(entry string) {\n\tt.lock.Unlock()     // Unlock to avoid deadlock if History methods use the output writer.\n\tdefer t.lock.Lock() // panic in Add protection.\n\tt.History.Add(entry)\n}\n\n// handleKey processes the given key and, optionally, returns a line of text\n// that the user has entered.\nfunc (t *Terminal) handleKey(key rune) (line string, ok bool) {\n\tif t.pasteActive && key != keyEnter && key != keyLF {\n\t\tt.addKeyToLine(key)\n\t\treturn\n\t}\n\n\tswitch key {\n\tcase keyBackspace:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.eraseNPreviousChars(1)\n\tcase keyAltLeft:\n\t\t// move left by a word.\n\t\tt.pos -= t.countToLeftWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyAltRight:\n\t\t// move right by a word.\n\t\tt.pos += t.countToRightWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyLeft:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos--\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyRight:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos++\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyHome:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos = 0\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyEnd:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos = len(t.line)\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyUp:\n\t\tentry, ok := t.historyAt(t.historyIndex + 1)\n\t\tif !ok {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif t.historyIndex == -1 {\n\t\t\tt.historyPending = string(t.line)\n\t\t}\n\t\tt.historyIndex++\n\t\trunes := []rune(entry)\n\t\tt.setLine(runes, len(runes))\n\tcase keyDown:\n\t\tswitch t.historyIndex {\n\t\tcase -1:\n\t\t\treturn\n\t\tcase 0:\n\t\t\trunes := []rune(t.historyPending)\n\t\t\tt.setLine(runes, len(runes))\n\t\t\tt.historyIndex--\n\t\tdefault:\n\t\t\tentry, ok := t.historyAt(t.historyIndex - 1)\n\t\t\tif ok {\n\t\t\t\tt.historyIndex--\n\t\t\t\trunes := []rune(entry)\n\t\t\t\tt.setLine(runes, len(runes))\n\t\t\t}\n\t\t}\n\tcase keyEnter, keyLF:\n\t\tt.moveCursorToPos(len(t.line))\n\t\tt.queue([]rune(\"\\r\\n\"))\n\t\tline = string(t.line)\n\t\tok = true\n\t\tt.line = t.line[:0]\n\t\tt.pos = 0\n\t\tt.cursorX = 0\n\t\tt.cursorY = 0\n\t\tt.maxLine = 0\n\tcase keyDeleteWord:\n\t\t// Delete zero or more spaces and then one or more characters.\n\t\tt.eraseNPreviousChars(t.countToLeftWord())\n\tcase keyDeleteLine:\n\t\t// Delete everything from the current cursor position to the\n\t\t// end of line.\n\t\tfor i := t.pos; i < len(t.line); i++ {\n\t\t\tt.queue(space)\n\t\t\tt.advanceCursor(1)\n\t\t}\n\t\tt.line = t.line[:t.pos]\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyCtrlD:\n\t\t// Erase the character under the current position.\n\t\t// The EOF case when the line is empty is handled in\n\t\t// readLine().\n\t\tif t.pos < len(t.line) {\n\t\t\tt.pos++\n\t\t\tt.eraseNPreviousChars(1)\n\t\t}\n\tcase keyCtrlU:\n\t\tt.eraseNPreviousChars(t.pos)\n\tcase keyClearScreen:\n\t\t// Erases the screen and moves the cursor to the home position.\n\t\tt.queue([]rune(\"\\x1b[2J\\x1b[H\"))\n\t\tt.queue(t.prompt)\n\t\tt.cursorX, t.cursorY = 0, 0\n\t\tt.advanceCursor(visualLength(t.prompt))\n\t\tt.setLine(t.line, t.pos)\n\tdefault:\n\t\tif t.AutoCompleteCallback != nil {\n\t\t\tprefix := string(t.line[:t.pos])\n\t\t\tsuffix := string(t.line[t.pos:])\n\n\t\t\tt.lock.Unlock()\n\t\t\tnewLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key)\n\t\t\tt.lock.Lock()\n\n\t\t\tif completeOk {\n\t\t\t\tt.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos]))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif !isPrintable(key) {\n\t\t\treturn\n\t\t}\n\t\tif len(t.line) == maxLineLength {\n\t\t\treturn\n\t\t}\n\t\tt.addKeyToLine(key)\n\t}\n\treturn\n}\n\n// addKeyToLine inserts the given key at the current position in the current\n// line.\nfunc (t *Terminal) addKeyToLine(key rune) {\n\tif len(t.line) == cap(t.line) {\n\t\tnewLine := make([]rune, len(t.line), 2*(1+len(t.line)))\n\t\tcopy(newLine, t.line)\n\t\tt.line = newLine\n\t}\n\tt.line = t.line[:len(t.line)+1]\n\tcopy(t.line[t.pos+1:], t.line[t.pos:])\n\tt.line[t.pos] = key\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t}\n\tt.pos++\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) writeLine(line []rune) {\n\tfor len(line) != 0 {\n\t\tremainingOnLine := t.termWidth - t.cursorX\n\t\ttodo := len(line)\n\t\tif todo > remainingOnLine {\n\t\t\ttodo = remainingOnLine\n\t\t}\n\t\tt.queue(line[:todo])\n\t\tt.advanceCursor(visualLength(line[:todo]))\n\t\tline = line[todo:]\n\t}\n}\n\n// writeWithCRLF writes buf to w but replaces all occurrences of \\n with \\r\\n.\nfunc writeWithCRLF(w io.Writer, buf []byte) (n int, err error) {\n\tfor len(buf) > 0 {\n\t\ti := bytes.IndexByte(buf, '\\n')\n\t\ttodo := len(buf)\n\t\tif i >= 0 {\n\t\t\ttodo = i\n\t\t}\n\n\t\tvar nn int\n\t\tnn, err = w.Write(buf[:todo])\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tbuf = buf[todo:]\n\n\t\tif i >= 0 {\n\t\t\tif _, err = w.Write(crlf); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t\tbuf = buf[1:]\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\nfunc (t *Terminal) Write(buf []byte) (n int, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\t// This is the easy case: there's nothing on the screen that we\n\t\t// have to move out of the way.\n\t\treturn writeWithCRLF(t.c, buf)\n\t}\n\n\t// We have a prompt and possibly user input on the screen. We\n\t// have to clear it first.\n\tt.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */)\n\tt.cursorX = 0\n\tt.clearLineToRight()\n\n\tfor t.cursorY > 0 {\n\t\tt.move(1 /* up */, 0, 0, 0)\n\t\tt.cursorY--\n\t\tt.clearLineToRight()\n\t}\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\n\tif n, err = writeWithCRLF(t.c, buf); err != nil {\n\t\treturn\n\t}\n\n\tt.writeLine(t.prompt)\n\tif t.echo {\n\t\tt.writeLine(t.line)\n\t}\n\n\tt.moveCursorToPos(t.pos)\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\treturn\n}\n\n// ReadPassword temporarily changes the prompt and reads a password, without\n// echo, from the terminal.\n//\n// The AutoCompleteCallback is disabled during this call.\nfunc (t *Terminal) ReadPassword(prompt string) (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\toldPrompt := t.prompt\n\tt.prompt = []rune(prompt)\n\tt.echo = false\n\toldAutoCompleteCallback := t.AutoCompleteCallback\n\tt.AutoCompleteCallback = nil\n\tdefer func() {\n\t\tt.AutoCompleteCallback = oldAutoCompleteCallback\n\t}()\n\n\tline, err = t.readLine()\n\n\tt.prompt = oldPrompt\n\tt.echo = true\n\n\treturn\n}\n\n// ReadLine returns a line of input from the terminal.\nfunc (t *Terminal) ReadLine() (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\treturn t.readLine()\n}\n\nfunc (t *Terminal) readLine() (line string, err error) {\n\t// t.lock must be held at this point\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\tt.writeLine(t.prompt)\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t}\n\n\tlineIsPasted := t.pasteActive\n\n\tfor {\n\t\trest := t.remainder\n\t\tlineOk := false\n\t\tfor !lineOk {\n\t\t\tvar key rune\n\t\t\tkey, rest = bytesToKey(rest, t.pasteActive)\n\t\t\tif key == utf8.RuneError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tif key == keyCtrlD {\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif key == keyCtrlC {\n\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t}\n\t\t\t\tif key == keyPasteStart {\n\t\t\t\t\tt.pasteActive = true\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\tlineIsPasted = true\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if key == keyPasteEnd {\n\t\t\t\tt.pasteActive = false\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tlineIsPasted = false\n\t\t\t}\n\t\t\t// If we have CR, consume LF if present (CRLF sequence) to avoid returning an extra empty line.\n\t\t\tif key == keyEnter && len(rest) > 0 && rest[0] == keyLF {\n\t\t\t\trest = rest[1:]\n\t\t\t}\n\t\t\tline, lineOk = t.handleKey(key)\n\t\t}\n\t\tif len(rest) > 0 {\n\t\t\tn := copy(t.inBuf[:], rest)\n\t\t\tt.remainder = t.inBuf[:n]\n\t\t} else {\n\t\t\tt.remainder = nil\n\t\t}\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t\tif lineOk {\n\t\t\tif t.echo {\n\t\t\t\tt.historyIndex = -1\n\t\t\t\tt.historyAdd(line)\n\t\t\t}\n\t\t\tif lineIsPasted {\n\t\t\t\terr = ErrPasteIndicator\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// t.remainder is a slice at the beginning of t.inBuf\n\t\t// containing a partial key sequence\n\t\treadBuf := t.inBuf[len(t.remainder):]\n\t\tvar n int\n\n\t\tt.lock.Unlock()\n\t\tn, err = t.c.Read(readBuf)\n\t\tt.lock.Lock()\n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tt.remainder = t.inBuf[:n+len(t.remainder)]\n\t}\n}\n\n// SetPrompt sets the prompt to be used when reading subsequent lines.\nfunc (t *Terminal) SetPrompt(prompt string) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tt.prompt = []rune(prompt)\n}\n\nfunc (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) {\n\t// Move cursor to column zero at the start of the line.\n\tt.move(t.cursorY, 0, t.cursorX, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\tt.clearLineToRight()\n\tfor t.cursorY < numPrevLines {\n\t\t// Move down a line\n\t\tt.move(0, 1, 0, 0)\n\t\tt.cursorY++\n\t\tt.clearLineToRight()\n\t}\n\t// Move back to beginning.\n\tt.move(t.cursorY, 0, 0, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\n\tt.queue(t.prompt)\n\tt.advanceCursor(visualLength(t.prompt))\n\tt.writeLine(t.line)\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) SetSize(width, height int) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif width == 0 {\n\t\twidth = 1\n\t}\n\n\toldWidth := t.termWidth\n\tt.termWidth, t.termHeight = width, height\n\n\tswitch {\n\tcase width == oldWidth:\n\t\t// If the width didn't change then nothing else needs to be\n\t\t// done.\n\t\treturn nil\n\tcase len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0:\n\t\t// If there is nothing on current line and no prompt printed,\n\t\t// just do nothing\n\t\treturn nil\n\tcase width < oldWidth:\n\t\t// Some terminals (e.g. xterm) will truncate lines that were\n\t\t// too long when shinking. Others, (e.g. gnome-terminal) will\n\t\t// attempt to wrap them. For the former, repainting t.maxLine\n\t\t// works great, but that behaviour goes badly wrong in the case\n\t\t// of the latter because they have doubled every full line.\n\n\t\t// We assume that we are working on a terminal that wraps lines\n\t\t// and adjust the cursor position based on every previous line\n\t\t// wrapping and turning into two. This causes the prompt on\n\t\t// xterms to move upwards, which isn't great, but it avoids a\n\t\t// huge mess with gnome-terminal.\n\t\tif t.cursorX >= t.termWidth {\n\t\t\tt.cursorX = t.termWidth - 1\n\t\t}\n\t\tt.cursorY *= 2\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine * 2)\n\tcase width > oldWidth:\n\t\t// If the terminal expands then our position calculations will\n\t\t// be wrong in the future because we think the cursor is\n\t\t// |t.pos| chars into the string, but there will be a gap at\n\t\t// the end of any wrapped line.\n\t\t//\n\t\t// But the position will actually be correct until we move, so\n\t\t// we can move back to the beginning and repaint everything.\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine)\n\t}\n\n\t_, err := t.c.Write(t.outBuf)\n\tt.outBuf = t.outBuf[:0]\n\treturn err\n}\n\ntype pasteIndicatorError struct{}\n\nfunc (pasteIndicatorError) Error() string {\n\treturn \"terminal: ErrPasteIndicator not correctly handled\"\n}\n\n// ErrPasteIndicator may be returned from ReadLine as the error, in addition\n// to valid line data. It indicates that bracketed paste mode is enabled and\n// that the returned line consists only of pasted data. Programs may wish to\n// interpret pasted data more literally than typed data.\nvar ErrPasteIndicator = pasteIndicatorError{}\n\n// SetBracketedPasteMode requests that the terminal bracket paste operations\n// with markers. Not all terminals support this but, if it is supported, then\n// enabling this mode will stop any autocomplete callback from running due to\n// pastes. Additionally, any lines that are completely pasted will be returned\n// from ReadLine with the error set to ErrPasteIndicator.\nfunc (t *Terminal) SetBracketedPasteMode(on bool) {\n\tif on {\n\t\tio.WriteString(t.c, \"\\x1b[?2004h\")\n\t} else {\n\t\tio.WriteString(t.c, \"\\x1b[?2004l\")\n\t}\n}\n\n// stRingBuffer is a ring buffer of strings.\ntype stRingBuffer struct {\n\t// entries contains max elements.\n\tentries []string\n\tmax     int\n\t// head contains the index of the element most recently added to the ring.\n\thead int\n\t// size contains the number of elements in the ring.\n\tsize int\n}\n\nfunc (s *stRingBuffer) Add(a string) {\n\tif s.entries == nil {\n\t\tconst defaultNumEntries = 100\n\t\ts.entries = make([]string, defaultNumEntries)\n\t\ts.max = defaultNumEntries\n\t}\n\n\ts.head = (s.head + 1) % s.max\n\ts.entries[s.head] = a\n\tif s.size < s.max {\n\t\ts.size++\n\t}\n}\n\nfunc (s *stRingBuffer) Len() int {\n\treturn s.size\n}\n\n// At returns the value passed to the nth previous call to Add.\n// If n is zero then the immediately prior value is returned, if one, then the\n// next most recent, and so on. If such an element doesn't exist then ok is\n// false.\nfunc (s *stRingBuffer) At(n int) string {\n\tif n < 0 || n >= s.size {\n\t\tpanic(fmt.Sprintf(\"term: history index [%d] out of range [0,%d)\", n, s.size))\n\t}\n\tindex := s.head - n\n\tif index < 0 {\n\t\tindex += s.max\n\t}\n\treturn s.entries[index]\n}\n\n// readPasswordLine reads from reader until it finds \\n or io.EOF.\n// The slice returned does not include the \\n.\n// readPasswordLine also ignores any \\r it finds.\n// Windows uses \\r as end of line. So, on Windows, readPasswordLine\n// reads until it finds \\r and ignores any \\n it finds during processing.\nfunc readPasswordLine(reader io.Reader) ([]byte, error) {\n\tvar buf [1]byte\n\tvar ret []byte\n\n\tfor {\n\t\tn, err := reader.Read(buf[:])\n\t\tif n > 0 {\n\t\t\tswitch buf[0] {\n\t\t\tcase '\\b':\n\t\t\t\tif len(ret) > 0 {\n\t\t\t\t\tret = ret[:len(ret)-1]\n\t\t\t\t}\n\t\t\tcase '\\n':\n\t\t\t\tif runtime.GOOS != \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\n\n\t\t\tcase '\\r':\n\t\t\t\tif runtime.GOOS == \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\r\n\t\t\tdefault:\n\t\t\t\tret = append(ret, buf[0])\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\tif err == io.EOF && len(ret) > 0 {\n\t\t\t\treturn ret, nil\n\t\t\t}\n\t\t\treturn ret, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/text/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package bidirule implements the Bidi Rule defined by RFC 5893.\n//\n// This package is under development. The API may change without notice and\n// without preserving backward compatibility.\npackage bidirule\n\nimport (\n\t\"errors\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n\t\"golang.org/x/text/unicode/bidi\"\n)\n\n// This file contains an implementation of RFC 5893: Right-to-Left Scripts for\n// Internationalized Domain Names for Applications (IDNA)\n//\n// A label is an individual component of a domain name.  Labels are usually\n// shown separated by dots; for example, the domain name \"www.example.com\" is\n// composed of three labels: \"www\", \"example\", and \"com\".\n//\n// An RTL label is a label that contains at least one character of class R, AL,\n// or AN. An LTR label is any label that is not an RTL label.\n//\n// A \"Bidi domain name\" is a domain name that contains at least one RTL label.\n//\n//  The following guarantees can be made based on the above:\n//\n//  o  In a domain name consisting of only labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied.  Note that even LTR\n//     labels and pure ASCII labels have to be tested.\n//\n//  o  In a domain name consisting of only LDH labels (as defined in the\n//     Definitions document [RFC5890]) and labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied as long as a label\n//     that starts with an ASCII digit does not come after a\n//     right-to-left label.\n//\n//  No guarantee is given for other combinations.\n\n// ErrInvalid indicates a label is invalid according to the Bidi Rule.\nvar ErrInvalid = errors.New(\"bidirule: failed Bidi Rule\")\n\ntype ruleState uint8\n\nconst (\n\truleInitial ruleState = iota\n\truleLTR\n\truleLTRFinal\n\truleRTL\n\truleRTLFinal\n\truleInvalid\n)\n\ntype ruleTransition struct {\n\tnext ruleState\n\tmask uint16\n}\n\nvar transitions = [...][2]ruleTransition{\n\t// [2.1] The first character must be a character with Bidi property L, R, or\n\t// AL. If it has the R or AL property, it is an RTL label; if it has the L\n\t// property, it is an LTR label.\n\truleInitial: {\n\t\t{ruleLTRFinal, 1 << bidi.L},\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL},\n\t},\n\truleRTL: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3]\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleRTLFinal: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN | 1<<bidi.NSM},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3] and NSM.\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleLTR: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleLTRFinal: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN | 1<<bidi.NSM},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleInvalid: {\n\t\t{ruleInvalid, 0},\n\t\t{ruleInvalid, 0},\n\t},\n}\n\n// [2.4] In an RTL label, if an EN is present, no AN may be present, and\n// vice versa.\nconst exclusiveRTL = uint16(1<<bidi.EN | 1<<bidi.AN)\n\n// From RFC 5893\n// An RTL label is a label that contains at least one character of type\n// R, AL, or AN.\n//\n// An LTR label is any label that is not an RTL label.\n\n// Direction reports the direction of the given label as defined by RFC 5893.\n// The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc Direction(b []byte) bidi.Direction {\n\tfor i := 0; i < len(b); {\n\t\te, sz := bidi.Lookup(b[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// DirectionString reports the direction of the given label as defined by RFC\n// 5893. The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc DirectionString(s string) bidi.Direction {\n\tfor i := 0; i < len(s); {\n\t\te, sz := bidi.LookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// Valid reports whether b conforms to the BiDi rule.\nfunc Valid(b []byte) bool {\n\tvar t Transformer\n\tif n, ok := t.advance(b); !ok || n < len(b) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// ValidString reports whether s conforms to the BiDi rule.\nfunc ValidString(s string) bool {\n\tvar t Transformer\n\tif n, ok := t.advanceString(s); !ok || n < len(s) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// New returns a Transformer that verifies that input adheres to the Bidi Rule.\nfunc New() *Transformer {\n\treturn &Transformer{}\n}\n\n// Transformer implements transform.Transform.\ntype Transformer struct {\n\tstate  ruleState\n\thasRTL bool\n\tseen   uint16\n}\n\n// A rule can only be violated for \"Bidi Domain names\", meaning if one of the\n// following categories has been observed.\nfunc (t *Transformer) isRTL() bool {\n\tconst isRTL = 1<<bidi.R | 1<<bidi.AL | 1<<bidi.AN\n\treturn t.seen&isRTL != 0\n}\n\n// Reset implements transform.Transformer.\nfunc (t *Transformer) Reset() { *t = Transformer{} }\n\n// Transform implements transform.Transformer. This Transformer has state and\n// needs to be reset between uses.\nfunc (t *Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tif len(dst) < len(src) {\n\t\tsrc = src[:len(dst)]\n\t\tatEOF = false\n\t\terr = transform.ErrShortDst\n\t}\n\tn, err1 := t.Span(src, atEOF)\n\tcopy(dst, src[:n])\n\tif err == nil || err1 != nil && err1 != transform.ErrShortSrc {\n\t\terr = err1\n\t}\n\treturn n, n, err\n}\n\n// Span returns the first n bytes of src that conform to the Bidi rule.\nfunc (t *Transformer) Span(src []byte, atEOF bool) (n int, err error) {\n\tif t.state == ruleInvalid && t.isRTL() {\n\t\treturn 0, ErrInvalid\n\t}\n\tn, ok := t.advance(src)\n\tswitch {\n\tcase !ok:\n\t\terr = ErrInvalid\n\tcase n < len(src):\n\t\tif !atEOF {\n\t\t\terr = transform.ErrShortSrc\n\t\t\tbreak\n\t\t}\n\t\terr = ErrInvalid\n\tcase !t.isFinal():\n\t\terr = ErrInvalid\n\t}\n\treturn n, err\n}\n\n// Precomputing the ASCII values decreases running time for the ASCII fast path\n// by about 30%.\nvar asciiTable [128]bidi.Properties\n\nfunc init() {\n\tfor i := range asciiTable {\n\t\tp, _ := bidi.LookupRune(rune(i))\n\t\tasciiTable[i] = p\n\t}\n}\n\nfunc (t *Transformer) advance(s []byte) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.Lookup(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\t// We always consider invalid UTF-8 to be invalid, even if\n\t\t\t\t\t// the string has not yet been determined to be RTL.\n\t\t\t\t\t// TODO: is this correct?\n\t\t\t\t\treturn n, false\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass would result in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n\nfunc (t *Transformer) advanceString(s string) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.LookupString(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\treturn n, false // invalid UTF-8\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass results in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\tif !t.isRTL() {\n\t\treturn true\n\t}\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/transform/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package transform provides reader and writer wrappers that transform the\n// bytes passing through as well as various transformations. Example\n// transformations provided by other packages include normalization and\n// conversion between character sets.\npackage transform // import \"golang.org/x/text/transform\"\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"unicode/utf8\"\n)\n\nvar (\n\t// ErrShortDst means that the destination buffer was too short to\n\t// receive all of the transformed bytes.\n\tErrShortDst = errors.New(\"transform: short destination buffer\")\n\n\t// ErrShortSrc means that the source buffer has insufficient data to\n\t// complete the transformation.\n\tErrShortSrc = errors.New(\"transform: short source buffer\")\n\n\t// ErrEndOfSpan means that the input and output (the transformed input)\n\t// are not identical.\n\tErrEndOfSpan = errors.New(\"transform: input and output are not identical\")\n\n\t// errInconsistentByteCount means that Transform returned success (nil\n\t// error) but also returned nSrc inconsistent with the src argument.\n\terrInconsistentByteCount = errors.New(\"transform: inconsistent byte count returned\")\n\n\t// errShortInternal means that an internal buffer is not large enough\n\t// to make progress and the Transform operation must be aborted.\n\terrShortInternal = errors.New(\"transform: short internal buffer\")\n)\n\n// Transformer transforms bytes.\ntype Transformer interface {\n\t// Transform writes to dst the transformed bytes read from src, and\n\t// returns the number of dst bytes written and src bytes read. The\n\t// atEOF argument tells whether src represents the last bytes of the\n\t// input.\n\t//\n\t// Callers should always process the nDst bytes produced and account\n\t// for the nSrc bytes consumed before considering the error err.\n\t//\n\t// A nil error means that all of the transformed bytes (whether freshly\n\t// transformed from src or left over from previous Transform calls)\n\t// were written to dst. A nil error can be returned regardless of\n\t// whether atEOF is true. If err is nil then nSrc must equal len(src);\n\t// the converse is not necessarily true.\n\t//\n\t// ErrShortDst means that dst was too short to receive all of the\n\t// transformed bytes. ErrShortSrc means that src had insufficient data\n\t// to complete the transformation. If both conditions apply, then\n\t// either error may be returned. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\tTransform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)\n\n\t// Reset resets the state and allows a Transformer to be reused.\n\tReset()\n}\n\n// SpanningTransformer extends the Transformer interface with a Span method\n// that determines how much of the input already conforms to the Transformer.\ntype SpanningTransformer interface {\n\tTransformer\n\n\t// Span returns a position in src such that transforming src[:n] results in\n\t// identical output src[:n] for these bytes. It does not necessarily return\n\t// the largest such n. The atEOF argument tells whether src represents the\n\t// last bytes of the input.\n\t//\n\t// Callers should always account for the n bytes consumed before\n\t// considering the error err.\n\t//\n\t// A nil error means that all input bytes are known to be identical to the\n\t// output produced by the Transformer. A nil error can be returned\n\t// regardless of whether atEOF is true. If err is nil, then n must\n\t// equal len(src); the converse is not necessarily true.\n\t//\n\t// ErrEndOfSpan means that the Transformer output may differ from the\n\t// input after n bytes. Note that n may be len(src), meaning that the output\n\t// would contain additional bytes after otherwise identical output.\n\t// ErrShortSrc means that src had insufficient data to determine whether the\n\t// remaining bytes would change. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\t//\n\t// Calling Span can modify the Transformer state as a side effect. In\n\t// effect, it does the transformation just as calling Transform would, only\n\t// without copying to a destination buffer and only up to a point it can\n\t// determine the input and output bytes are the same. This is obviously more\n\t// limited than calling Transform, but can be more efficient in terms of\n\t// copying and allocating buffers. Calls to Span and Transform may be\n\t// interleaved.\n\tSpan(src []byte, atEOF bool) (n int, err error)\n}\n\n// NopResetter can be embedded by implementations of Transformer to add a nop\n// Reset method.\ntype NopResetter struct{}\n\n// Reset implements the Reset method of the Transformer interface.\nfunc (NopResetter) Reset() {}\n\n// Reader wraps another io.Reader by transforming the bytes read.\ntype Reader struct {\n\tr   io.Reader\n\tt   Transformer\n\terr error\n\n\t// dst[dst0:dst1] contains bytes that have been transformed by t but\n\t// not yet copied out via Read.\n\tdst        []byte\n\tdst0, dst1 int\n\n\t// src[src0:src1] contains bytes that have been read from r but not\n\t// yet transformed through t.\n\tsrc        []byte\n\tsrc0, src1 int\n\n\t// transformComplete is whether the transformation is complete,\n\t// regardless of whether or not it was successful.\n\ttransformComplete bool\n}\n\nconst defaultBufSize = 4096\n\n// NewReader returns a new Reader that wraps r by transforming the bytes read\n// via t. It calls Reset on t.\nfunc NewReader(r io.Reader, t Transformer) *Reader {\n\tt.Reset()\n\treturn &Reader{\n\t\tr:   r,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Read implements the io.Reader interface.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tn, err := 0, error(nil)\n\tfor {\n\t\t// Copy out any transformed bytes and return the final error if we are done.\n\t\tif r.dst0 != r.dst1 {\n\t\t\tn = copy(p, r.dst[r.dst0:r.dst1])\n\t\t\tr.dst0 += n\n\t\t\tif r.dst0 == r.dst1 && r.transformComplete {\n\t\t\t\treturn n, r.err\n\t\t\t}\n\t\t\treturn n, nil\n\t\t} else if r.transformComplete {\n\t\t\treturn 0, r.err\n\t\t}\n\n\t\t// Try to transform some source bytes, or to flush the transformer if we\n\t\t// are out of source bytes. We do this even if r.r.Read returned an error.\n\t\t// As the io.Reader documentation says, \"process the n > 0 bytes returned\n\t\t// before considering the error\".\n\t\tif r.src0 != r.src1 || r.err != nil {\n\t\t\tr.dst0 = 0\n\t\t\tr.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)\n\t\t\tr.src0 += n\n\n\t\t\tswitch {\n\t\t\tcase err == nil:\n\t\t\t\tif r.src0 != r.src1 {\n\t\t\t\t\tr.err = errInconsistentByteCount\n\t\t\t\t}\n\t\t\t\t// The Transform call was successful; we are complete if we\n\t\t\t\t// cannot read more bytes into src.\n\t\t\t\tr.transformComplete = r.err != nil\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortDst && (r.dst1 != 0 || n != 0):\n\t\t\t\t// Make room in dst by copying out, and try again.\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:\n\t\t\t\t// Read more bytes into src via the code below, and try again.\n\t\t\tdefault:\n\t\t\t\tr.transformComplete = true\n\t\t\t\t// The reader error (r.err) takes precedence over the\n\t\t\t\t// transformer error (err) unless r.err is nil or io.EOF.\n\t\t\t\tif r.err == nil || r.err == io.EOF {\n\t\t\t\t\tr.err = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Move any untransformed source bytes to the start of the buffer\n\t\t// and read more bytes.\n\t\tif r.src0 != 0 {\n\t\t\tr.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])\n\t\t}\n\t\tn, r.err = r.r.Read(r.src[r.src1:])\n\t\tr.src1 += n\n\t}\n}\n\n// TODO: implement ReadByte (and ReadRune??).\n\n// Writer wraps another io.Writer by transforming the bytes read.\n// The user needs to call Close to flush unwritten bytes that may\n// be buffered.\ntype Writer struct {\n\tw   io.Writer\n\tt   Transformer\n\tdst []byte\n\n\t// src[:n] contains bytes that have not yet passed through t.\n\tsrc []byte\n\tn   int\n}\n\n// NewWriter returns a new Writer that wraps w by transforming the bytes written\n// via t. It calls Reset on t.\nfunc NewWriter(w io.Writer, t Transformer) *Writer {\n\tt.Reset()\n\treturn &Writer{\n\t\tw:   w,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Write implements the io.Writer interface. If there are not enough\n// bytes available to complete a Transform, the bytes will be buffered\n// for the next write. Call Close to convert the remaining bytes.\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tsrc := data\n\tif w.n > 0 {\n\t\t// Append bytes from data to the last remainder.\n\t\t// TODO: limit the amount copied on first try.\n\t\tn = copy(w.src[w.n:], data)\n\t\tw.n += n\n\t\tsrc = w.src[:w.n]\n\t}\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, false)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn n, werr\n\t\t}\n\t\tsrc = src[nSrc:]\n\t\tif w.n == 0 {\n\t\t\tn += nSrc\n\t\t} else if len(src) <= n {\n\t\t\t// Enough bytes from w.src have been consumed. We make src point\n\t\t\t// to data instead to reduce the copying.\n\t\t\tw.n = 0\n\t\t\tn -= len(src)\n\t\t\tsrc = data[n:]\n\t\t\tif n < len(data) && (err == nil || err == ErrShortSrc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tswitch err {\n\t\tcase ErrShortDst:\n\t\t\t// This error is okay as long as we are making progress.\n\t\t\tif nDst > 0 || nSrc > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase ErrShortSrc:\n\t\t\tif len(src) < len(w.src) {\n\t\t\t\tm := copy(w.src, src)\n\t\t\t\t// If w.n > 0, bytes from data were already copied to w.src and n\n\t\t\t\t// was already set to the number of bytes consumed.\n\t\t\t\tif w.n == 0 {\n\t\t\t\t\tn += m\n\t\t\t\t}\n\t\t\t\tw.n = m\n\t\t\t\terr = nil\n\t\t\t} else if nDst > 0 || nSrc > 0 {\n\t\t\t\t// Not enough buffer to store the remainder. Keep processing as\n\t\t\t\t// long as there is progress. Without this case, transforms that\n\t\t\t\t// require a lookahead larger than the buffer may result in an\n\t\t\t\t// error. This is not something one may expect to be common in\n\t\t\t\t// practice, but it may occur when buffers are set to small\n\t\t\t\t// sizes during testing.\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase nil:\n\t\t\tif w.n > 0 {\n\t\t\t\terr = errInconsistentByteCount\n\t\t\t}\n\t\t}\n\t\treturn n, err\n\t}\n}\n\n// Close implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tsrc := w.src[:w.n]\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, true)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn werr\n\t\t}\n\t\tif err != ErrShortDst {\n\t\t\treturn err\n\t\t}\n\t\tsrc = src[nSrc:]\n\t}\n}\n\ntype nop struct{ NopResetter }\n\nfunc (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tn := copy(dst, src)\n\tif n < len(src) {\n\t\terr = ErrShortDst\n\t}\n\treturn n, n, err\n}\n\nfunc (nop) Span(src []byte, atEOF bool) (n int, err error) {\n\treturn len(src), nil\n}\n\ntype discard struct{ NopResetter }\n\nfunc (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\treturn 0, len(src), nil\n}\n\nvar (\n\t// Discard is a Transformer for which all Transform calls succeed\n\t// by consuming all bytes and writing nothing.\n\tDiscard Transformer = discard{}\n\n\t// Nop is a SpanningTransformer that copies src to dst.\n\tNop SpanningTransformer = nop{}\n)\n\n// chain is a sequence of links. A chain with N Transformers has N+1 links and\n// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst\n// buffers given to chain.Transform and the middle N-1 buffers are intermediate\n// buffers owned by the chain. The i'th link transforms bytes from the i'th\n// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer\n// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).\ntype chain struct {\n\tlink []link\n\terr  error\n\t// errStart is the index at which the error occurred plus 1. Processing\n\t// errStart at this level at the next call to Transform. As long as\n\t// errStart > 0, chain will not consume any more source bytes.\n\terrStart int\n}\n\nfunc (c *chain) fatalError(errIndex int, err error) {\n\tif i := errIndex + 1; i > c.errStart {\n\t\tc.errStart = i\n\t\tc.err = err\n\t}\n}\n\ntype link struct {\n\tt Transformer\n\t// b[p:n] holds the bytes to be transformed by t.\n\tb []byte\n\tp int\n\tn int\n}\n\nfunc (l *link) src() []byte {\n\treturn l.b[l.p:l.n]\n}\n\nfunc (l *link) dst() []byte {\n\treturn l.b[l.n:]\n}\n\n// Chain returns a Transformer that applies t in sequence.\nfunc Chain(t ...Transformer) Transformer {\n\tif len(t) == 0 {\n\t\treturn nop{}\n\t}\n\tc := &chain{link: make([]link, len(t)+1)}\n\tfor i, tt := range t {\n\t\tc.link[i].t = tt\n\t}\n\t// Allocate intermediate buffers.\n\tb := make([][defaultBufSize]byte, len(t)-1)\n\tfor i := range b {\n\t\tc.link[i+1].b = b[i][:]\n\t}\n\treturn c\n}\n\n// Reset resets the state of Chain. It calls Reset on all the Transformers.\nfunc (c *chain) Reset() {\n\tfor i, l := range c.link {\n\t\tif l.t != nil {\n\t\t\tl.t.Reset()\n\t\t}\n\t\tc.link[i].p, c.link[i].n = 0, 0\n\t}\n}\n\n// TODO: make chain use Span (is going to be fun to implement!)\n\n// Transform applies the transformers of c in sequence.\nfunc (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Set up src and dst in the chain.\n\tsrcL := &c.link[0]\n\tdstL := &c.link[len(c.link)-1]\n\tsrcL.b, srcL.p, srcL.n = src, 0, len(src)\n\tdstL.b, dstL.n = dst, 0\n\tvar lastFull, needProgress bool // for detecting progress\n\n\t// i is the index of the next Transformer to apply, for i in [low, high].\n\t// low is the lowest index for which c.link[low] may still produce bytes.\n\t// high is the highest index for which c.link[high] has a Transformer.\n\t// The error returned by Transform determines whether to increase or\n\t// decrease i. We try to completely fill a buffer before converting it.\n\tfor low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {\n\t\tin, out := &c.link[i], &c.link[i+1]\n\t\tnDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)\n\t\tout.n += nDst\n\t\tin.p += nSrc\n\t\tif i > 0 && in.p == in.n {\n\t\t\tin.p, in.n = 0, 0\n\t\t}\n\t\tneedProgress, lastFull = lastFull, false\n\t\tswitch err0 {\n\t\tcase ErrShortDst:\n\t\t\t// Process the destination buffer next. Return if we are already\n\t\t\t// at the high index.\n\t\t\tif i == high {\n\t\t\t\treturn dstL.n, srcL.p, ErrShortDst\n\t\t\t}\n\t\t\tif out.n != 0 {\n\t\t\t\ti++\n\t\t\t\t// If the Transformer at the next index is not able to process any\n\t\t\t\t// source bytes there is nothing that can be done to make progress\n\t\t\t\t// and the bytes will remain unprocessed. lastFull is used to\n\t\t\t\t// detect this and break out of the loop with a fatal error.\n\t\t\t\tlastFull = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The destination buffer was too small, but is completely empty.\n\t\t\t// Return a fatal error as this transformation can never complete.\n\t\t\tc.fatalError(i, errShortInternal)\n\t\tcase ErrShortSrc:\n\t\t\tif i == 0 {\n\t\t\t\t// Save ErrShortSrc in err. All other errors take precedence.\n\t\t\t\terr = ErrShortSrc\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Source bytes were depleted before filling up the destination buffer.\n\t\t\t// Verify we made some progress, move the remaining bytes to the errStart\n\t\t\t// and try to get more source bytes.\n\t\t\tif needProgress && nSrc == 0 || in.n-in.p == len(in.b) {\n\t\t\t\t// There were not enough source bytes to proceed while the source\n\t\t\t\t// buffer cannot hold any more bytes. Return a fatal error as this\n\t\t\t\t// transformation can never complete.\n\t\t\t\tc.fatalError(i, errShortInternal)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// in.b is an internal buffer and we can make progress.\n\t\t\tin.p, in.n = 0, copy(in.b, in.src())\n\t\t\tfallthrough\n\t\tcase nil:\n\t\t\t// if i == low, we have depleted the bytes at index i or any lower levels.\n\t\t\t// In that case we increase low and i. In all other cases we decrease i to\n\t\t\t// fetch more bytes before proceeding to the next index.\n\t\t\tif i > low {\n\t\t\t\ti--\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tc.fatalError(i, err0)\n\t\t}\n\t\t// Exhausted level low or fatal error: increase low and continue\n\t\t// to process the bytes accepted so far.\n\t\ti++\n\t\tlow = i\n\t}\n\n\t// If c.errStart > 0, this means we found a fatal error.  We will clear\n\t// all upstream buffers. At this point, no more progress can be made\n\t// downstream, as Transform would have bailed while handling ErrShortDst.\n\tif c.errStart > 0 {\n\t\tfor i := 1; i < c.errStart; i++ {\n\t\t\tc.link[i].p, c.link[i].n = 0, 0\n\t\t}\n\t\terr, c.errStart, c.err = c.err, 0, nil\n\t}\n\treturn dstL.n, srcL.p, err\n}\n\n// Deprecated: Use runes.Remove instead.\nfunc RemoveFunc(f func(r rune) bool) Transformer {\n\treturn removeF(f)\n}\n\ntype removeF func(r rune) bool\n\nfunc (removeF) Reset() {}\n\n// Transform implements the Transformer interface.\nfunc (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {\n\n\t\tif r = rune(src[0]); r < utf8.RuneSelf {\n\t\t\tsz = 1\n\t\t} else {\n\t\t\tr, sz = utf8.DecodeRune(src)\n\n\t\t\tif sz == 1 {\n\t\t\t\t// Invalid rune.\n\t\t\t\tif !atEOF && !utf8.FullRune(src) {\n\t\t\t\t\terr = ErrShortSrc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// We replace illegal bytes with RuneError. Not doing so might\n\t\t\t\t// otherwise turn a sequence of invalid UTF-8 into valid UTF-8.\n\t\t\t\t// The resulting byte sequence may subsequently contain runes\n\t\t\t\t// for which t(r) is true that were passed unnoticed.\n\t\t\t\tif !t(r) {\n\t\t\t\t\tif nDst+3 > len(dst) {\n\t\t\t\t\t\terr = ErrShortDst\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tnDst += copy(dst[nDst:], \"\\uFFFD\")\n\t\t\t\t}\n\t\t\t\tnSrc++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif !t(r) {\n\t\t\tif nDst+sz > len(dst) {\n\t\t\t\terr = ErrShortDst\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnDst += copy(dst[nDst:], src[:sz])\n\t\t}\n\t\tnSrc += sz\n\t}\n\treturn\n}\n\n// grow returns a new []byte that is longer than b, and copies the first n bytes\n// of b to the start of the new slice.\nfunc grow(b []byte, n int) []byte {\n\tm := len(b)\n\tif m <= 32 {\n\t\tm = 64\n\t} else if m <= 256 {\n\t\tm *= 2\n\t} else {\n\t\tm += m >> 1\n\t}\n\tbuf := make([]byte, m)\n\tcopy(buf, b[:n])\n\treturn buf\n}\n\nconst initialBufSize = 128\n\n// String returns a string with the result of converting s[:n] using t, where\n// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.\nfunc String(t Transformer, s string) (result string, n int, err error) {\n\tt.Reset()\n\tif s == \"\" {\n\t\t// Fast path for the common case for empty input. Results in about a\n\t\t// 86% reduction of running time for BenchmarkStringLowerEmpty.\n\t\tif _, _, err := t.Transform(nil, nil, true); err == nil {\n\t\t\treturn \"\", 0, nil\n\t\t}\n\t}\n\n\t// Allocate only once. Note that both dst and src escape when passed to\n\t// Transform.\n\tbuf := [2 * initialBufSize]byte{}\n\tdst := buf[:initialBufSize:initialBufSize]\n\tsrc := buf[initialBufSize : 2*initialBufSize]\n\n\t// The input string s is transformed in multiple chunks (starting with a\n\t// chunk size of initialBufSize). nDst and nSrc are per-chunk (or\n\t// per-Transform-call) indexes, pDst and pSrc are overall indexes.\n\tnDst, nSrc := 0, 0\n\tpDst, pSrc := 0, 0\n\n\t// pPrefix is the length of a common prefix: the first pPrefix bytes of the\n\t// result will equal the first pPrefix bytes of s. It is not guaranteed to\n\t// be the largest such value, but if pPrefix, len(result) and len(s) are\n\t// all equal after the final transform (i.e. calling Transform with atEOF\n\t// being true returned nil error) then we don't need to allocate a new\n\t// result string.\n\tpPrefix := 0\n\tfor {\n\t\t// Invariant: pDst == pPrefix && pSrc == pPrefix.\n\n\t\tn := copy(src, s[pSrc:])\n\t\tnDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// TODO:  let transformers implement an optional Spanner interface, akin\n\t\t// to norm's QuickSpan. This would even allow us to avoid any allocation.\n\t\tif !bytes.Equal(dst[:nDst], src[:nSrc]) {\n\t\t\tbreak\n\t\t}\n\t\tpPrefix = pSrc\n\t\tif err == ErrShortDst {\n\t\t\t// A buffer can only be short if a transformer modifies its input.\n\t\t\tbreak\n\t\t} else if err == ErrShortSrc {\n\t\t\tif nSrc == 0 {\n\t\t\t\t// No progress was made.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Equal so far and !atEOF, so continue checking.\n\t\t} else if err != nil || pPrefix == len(s) {\n\t\t\treturn string(s[:pPrefix]), pPrefix, err\n\t\t}\n\t}\n\t// Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.\n\n\t// We have transformed the first pSrc bytes of the input s to become pDst\n\t// transformed bytes. Those transformed bytes are discontiguous: the first\n\t// pPrefix of them equal s[:pPrefix] and the last nDst of them equal\n\t// dst[:nDst]. We copy them around, into a new dst buffer if necessary, so\n\t// that they become one contiguous slice: dst[:pDst].\n\tif pPrefix != 0 {\n\t\tnewDst := dst\n\t\tif pDst > len(newDst) {\n\t\t\tnewDst = make([]byte, len(s)+nDst-nSrc)\n\t\t}\n\t\tcopy(newDst[pPrefix:pDst], dst[:nDst])\n\t\tcopy(newDst[:pPrefix], s[:pPrefix])\n\t\tdst = newDst\n\t}\n\n\t// Prevent duplicate Transform calls with atEOF being true at the end of\n\t// the input. Also return if we have an unrecoverable error.\n\tif (err == nil && pSrc == len(s)) ||\n\t\t(err != nil && err != ErrShortDst && err != ErrShortSrc) {\n\t\treturn string(dst[:pDst]), pSrc, err\n\t}\n\n\t// Transform the remaining input, growing dst and src buffers as necessary.\n\tfor {\n\t\tn := copy(src, s[pSrc:])\n\t\tatEOF := pSrc+n == len(s)\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// If we got ErrShortDst or ErrShortSrc, do not grow as long as we can\n\t\t// make progress. This may avoid excessive allocations.\n\t\tif err == ErrShortDst {\n\t\t\tif nDst == 0 {\n\t\t\t\tdst = grow(dst, pDst)\n\t\t\t}\n\t\t} else if err == ErrShortSrc {\n\t\t\tif atEOF {\n\t\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t\t}\n\t\t\tif nSrc == 0 {\n\t\t\t\tsrc = grow(src, 0)\n\t\t\t}\n\t\t} else if err != nil || pSrc == len(s) {\n\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t}\n\t}\n}\n\n// Bytes returns a new byte slice with the result of converting b[:n] using t,\n// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.\nfunc Bytes(t Transformer, b []byte) (result []byte, n int, err error) {\n\treturn doAppend(t, 0, make([]byte, len(b)), b)\n}\n\n// Append appends the result of converting src[:n] using t to dst, where\n// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.\nfunc Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {\n\tif len(dst) == cap(dst) {\n\t\tn := len(src) + len(dst) // It is okay for this to be 0.\n\t\tb := make([]byte, n)\n\t\tdst = b[:copy(b, dst)]\n\t}\n\treturn doAppend(t, len(dst), dst[:cap(dst)], src)\n}\n\nfunc doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {\n\tt.Reset()\n\tpSrc := 0\n\tfor {\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\t\tif err != ErrShortDst {\n\t\t\treturn dst[:pDst], pSrc, err\n\t\t}\n\n\t\t// Grow the destination buffer, but do not grow as long as we can make\n\t\t// progress. This may avoid excessive allocations.\n\t\tif nDst == 0 {\n\t\t\tdst = grow(dst, pDst)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bidi.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:generate go run gen.go gen_trieval.go gen_ranges.go\n\n// Package bidi contains functionality for bidirectional text support.\n//\n// See https://www.unicode.org/reports/tr9.\n//\n// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways\n// and without notice.\npackage bidi // import \"golang.org/x/text/unicode/bidi\"\n\n// TODO\n// - Transformer for reordering?\n// - Transformer (validator, really) for Bidi Rule.\n\nimport (\n\t\"bytes\"\n)\n\n// This API tries to avoid dealing with embedding levels for now. Under the hood\n// these will be computed, but the question is to which extent the user should\n// know they exist. We should at some point allow the user to specify an\n// embedding hierarchy, though.\n\n// A Direction indicates the overall flow of text.\ntype Direction int\n\nconst (\n\t// LeftToRight indicates the text contains no right-to-left characters and\n\t// that either there are some left-to-right characters or the option\n\t// DefaultDirection(LeftToRight) was passed.\n\tLeftToRight Direction = iota\n\n\t// RightToLeft indicates the text contains no left-to-right characters and\n\t// that either there are some right-to-left characters or the option\n\t// DefaultDirection(RightToLeft) was passed.\n\tRightToLeft\n\n\t// Mixed indicates text contains both left-to-right and right-to-left\n\t// characters.\n\tMixed\n\n\t// Neutral means that text contains no left-to-right and right-to-left\n\t// characters and that no default direction has been set.\n\tNeutral\n)\n\ntype options struct {\n\tdefaultDirection Direction\n}\n\n// An Option is an option for Bidi processing.\ntype Option func(*options)\n\n// ICU allows the user to define embedding levels. This may be used, for example,\n// to use hierarchical structure of markup languages to define embeddings.\n// The following option may be a way to expose this functionality in this API.\n// // LevelFunc sets a function that associates nesting levels with the given text.\n// // The levels function will be called with monotonically increasing values for p.\n// func LevelFunc(levels func(p int) int) Option {\n// \tpanic(\"unimplemented\")\n// }\n\n// DefaultDirection sets the default direction for a Paragraph. The direction is\n// overridden if the text contains directional characters.\nfunc DefaultDirection(d Direction) Option {\n\treturn func(opts *options) {\n\t\topts.defaultDirection = d\n\t}\n}\n\n// A Paragraph holds a single Paragraph for Bidi processing.\ntype Paragraph struct {\n\tp          []byte\n\to          Ordering\n\topts       []Option\n\ttypes      []Class\n\tpairTypes  []bracketType\n\tpairValues []rune\n\trunes      []rune\n\toptions    options\n}\n\n// Initialize the p.pairTypes, p.pairValues and p.types from the input previously\n// set by p.SetBytes() or p.SetString(). Also limit the input up to (and including) a paragraph\n// separator (bidi class B).\n//\n// The function p.Order() needs these values to be set, so this preparation could be postponed.\n// But since the SetBytes and SetStrings functions return the length of the input up to the paragraph\n// separator, the whole input needs to be processed anyway and should not be done twice.\n//\n// The function has the same return values as SetBytes() / SetString()\nfunc (p *Paragraph) prepareInput() (n int, err error) {\n\tp.runes = bytes.Runes(p.p)\n\tbytecount := 0\n\t// clear slices from previous SetString or SetBytes\n\tp.pairTypes = nil\n\tp.pairValues = nil\n\tp.types = nil\n\n\tfor _, r := range p.runes {\n\t\tprops, i := LookupRune(r)\n\t\tbytecount += i\n\t\tcls := props.Class()\n\t\tif cls == B {\n\t\t\treturn bytecount, nil\n\t\t}\n\t\tp.types = append(p.types, cls)\n\t\tif props.IsOpeningBracket() {\n\t\t\tp.pairTypes = append(p.pairTypes, bpOpen)\n\t\t\tp.pairValues = append(p.pairValues, r)\n\t\t} else if props.IsBracket() {\n\t\t\t// this must be a closing bracket,\n\t\t\t// since IsOpeningBracket is not true\n\t\t\tp.pairTypes = append(p.pairTypes, bpClose)\n\t\t\tp.pairValues = append(p.pairValues, r)\n\t\t} else {\n\t\t\tp.pairTypes = append(p.pairTypes, bpNone)\n\t\t\tp.pairValues = append(p.pairValues, 0)\n\t\t}\n\t}\n\treturn bytecount, nil\n}\n\n// SetBytes configures p for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If b contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from b including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) {\n\tp.p = b\n\tp.opts = opts\n\treturn p.prepareInput()\n}\n\n// SetString configures s for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If s contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from s including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) {\n\tp.p = []byte(s)\n\tp.opts = opts\n\treturn p.prepareInput()\n}\n\n// IsLeftToRight reports whether the principle direction of rendering for this\n// paragraphs is left-to-right. If this returns false, the principle direction\n// of rendering is right-to-left.\nfunc (p *Paragraph) IsLeftToRight() bool {\n\treturn p.Direction() == LeftToRight\n}\n\n// Direction returns the direction of the text of this paragraph.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (p *Paragraph) Direction() Direction {\n\treturn p.o.Direction()\n}\n\n// TODO: what happens if the position is > len(input)? This should return an error.\n\n// RunAt reports the Run at the given position of the input text.\n//\n// This method can be used for computing line breaks on paragraphs.\nfunc (p *Paragraph) RunAt(pos int) Run {\n\tc := 0\n\trunNumber := 0\n\tfor i, r := range p.o.runes {\n\t\tc += len(r)\n\t\tif pos < c {\n\t\t\trunNumber = i\n\t\t}\n\t}\n\treturn p.o.Run(runNumber)\n}\n\nfunc calculateOrdering(levels []level, runes []rune) Ordering {\n\tvar curDir Direction\n\n\tprevDir := Neutral\n\tprevI := 0\n\n\to := Ordering{}\n\t// lvl = 0,2,4,...: left to right\n\t// lvl = 1,3,5,...: right to left\n\tfor i, lvl := range levels {\n\t\tif lvl%2 == 0 {\n\t\t\tcurDir = LeftToRight\n\t\t} else {\n\t\t\tcurDir = RightToLeft\n\t\t}\n\t\tif curDir != prevDir {\n\t\t\tif i > 0 {\n\t\t\t\to.runes = append(o.runes, runes[prevI:i])\n\t\t\t\to.directions = append(o.directions, prevDir)\n\t\t\t\to.startpos = append(o.startpos, prevI)\n\t\t\t}\n\t\t\tprevI = i\n\t\t\tprevDir = curDir\n\t\t}\n\t}\n\to.runes = append(o.runes, runes[prevI:])\n\to.directions = append(o.directions, prevDir)\n\to.startpos = append(o.startpos, prevI)\n\treturn o\n}\n\n// Order computes the visual ordering of all the runs in a Paragraph.\nfunc (p *Paragraph) Order() (Ordering, error) {\n\tif len(p.types) == 0 {\n\t\treturn Ordering{}, nil\n\t}\n\n\tfor _, fn := range p.opts {\n\t\tfn(&p.options)\n\t}\n\tlvl := level(-1)\n\tif p.options.defaultDirection == RightToLeft {\n\t\tlvl = 1\n\t}\n\tpara, err := newParagraph(p.types, p.pairTypes, p.pairValues, lvl)\n\tif err != nil {\n\t\treturn Ordering{}, err\n\t}\n\n\tlevels := para.getLevels([]int{len(p.types)})\n\n\tp.o = calculateOrdering(levels, p.runes)\n\treturn p.o, nil\n}\n\n// Line computes the visual ordering of runs for a single line starting and\n// ending at the given positions in the original text.\nfunc (p *Paragraph) Line(start, end int) (Ordering, error) {\n\tlineTypes := p.types[start:end]\n\tpara, err := newParagraph(lineTypes, p.pairTypes[start:end], p.pairValues[start:end], -1)\n\tif err != nil {\n\t\treturn Ordering{}, err\n\t}\n\tlevels := para.getLevels([]int{len(lineTypes)})\n\to := calculateOrdering(levels, p.runes[start:end])\n\treturn o, nil\n}\n\n// An Ordering holds the computed visual order of runs of a Paragraph. Calling\n// SetBytes or SetString on the originating Paragraph invalidates an Ordering.\n// The methods of an Ordering should only be called by one goroutine at a time.\ntype Ordering struct {\n\trunes      [][]rune\n\tdirections []Direction\n\tstartpos   []int\n}\n\n// Direction reports the directionality of the runs.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (o *Ordering) Direction() Direction {\n\treturn o.directions[0]\n}\n\n// NumRuns returns the number of runs.\nfunc (o *Ordering) NumRuns() int {\n\treturn len(o.runes)\n}\n\n// Run returns the ith run within the ordering.\nfunc (o *Ordering) Run(i int) Run {\n\tr := Run{\n\t\trunes:     o.runes[i],\n\t\tdirection: o.directions[i],\n\t\tstartpos:  o.startpos[i],\n\t}\n\treturn r\n}\n\n// TODO: perhaps with options.\n// // Reorder creates a reader that reads the runes in visual order per character.\n// // Modifiers remain after the runes they modify.\n// func (l *Runs) Reorder() io.Reader {\n// \tpanic(\"unimplemented\")\n// }\n\n// A Run is a continuous sequence of characters of a single direction.\ntype Run struct {\n\trunes     []rune\n\tdirection Direction\n\tstartpos  int\n}\n\n// String returns the text of the run in its original order.\nfunc (r *Run) String() string {\n\treturn string(r.runes)\n}\n\n// Bytes returns the text of the run in its original order.\nfunc (r *Run) Bytes() []byte {\n\treturn []byte(r.String())\n}\n\n// TODO: methods for\n// - Display order\n// - headers and footers\n// - bracket replacement.\n\n// Direction reports the direction of the run.\nfunc (r *Run) Direction() Direction {\n\treturn r.direction\n}\n\n// Pos returns the position of the Run within the text passed to SetBytes or SetString of the\n// originating Paragraph value.\nfunc (r *Run) Pos() (start, end int) {\n\treturn r.startpos, r.startpos + len(r.runes) - 1\n}\n\n// AppendReverse reverses the order of characters of in, appends them to out,\n// and returns the result. Modifiers will still follow the runes they modify.\n// Brackets are replaced with their counterparts.\nfunc AppendReverse(out, in []byte) []byte {\n\tret := make([]byte, len(in)+len(out))\n\tcopy(ret, out)\n\tinRunes := bytes.Runes(in)\n\n\tfor i, r := range inRunes {\n\t\tprop, _ := LookupRune(r)\n\t\tif prop.IsBracket() {\n\t\t\tinRunes[i] = prop.reverseBracket(r)\n\t\t}\n\t}\n\n\tfor i, j := 0, len(inRunes)-1; i < j; i, j = i+1, j-1 {\n\t\tinRunes[i], inRunes[j] = inRunes[j], inRunes[i]\n\t}\n\tcopy(ret[len(out):], string(inRunes))\n\n\treturn ret\n}\n\n// ReverseString reverses the order of characters in s and returns a new string.\n// Modifiers will still follow the runes they modify. Brackets are replaced with\n// their counterparts.\nfunc ReverseString(s string) string {\n\tinput := []rune(s)\n\tli := len(input)\n\tret := make([]rune, li)\n\tfor i, r := range input {\n\t\tprop, _ := LookupRune(r)\n\t\tif prop.IsBracket() {\n\t\t\tret[li-i-1] = prop.reverseBracket(r)\n\t\t} else {\n\t\t\tret[li-i-1] = r\n\t\t}\n\t}\n\treturn string(ret)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bracket.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport (\n\t\"container/list\"\n\t\"fmt\"\n\t\"sort\"\n)\n\n// This file contains a port of the reference implementation of the\n// Bidi Parentheses Algorithm:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java\n//\n// The implementation in this file covers definitions BD14-BD16 and rule N0\n// of UAX#9.\n//\n// Some preprocessing is done for each rune before data is passed to this\n// algorithm:\n//  - opening and closing brackets are identified\n//  - a bracket pair type, like '(' and ')' is assigned a unique identifier that\n//    is identical for the opening and closing bracket. It is left to do these\n//    mappings.\n//  - The BPA algorithm requires that bracket characters that are canonical\n//    equivalents of each other be able to be substituted for each other.\n//    It is the responsibility of the caller to do this canonicalization.\n//\n// In implementing BD16, this implementation departs slightly from the \"logical\"\n// algorithm defined in UAX#9. In particular, the stack referenced there\n// supports operations that go beyond a \"basic\" stack. An equivalent\n// implementation based on a linked list is used here.\n\n// Bidi_Paired_Bracket_Type\n// BD14. An opening paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Open.\n//\n// BD15. A closing paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Close.\ntype bracketType byte\n\nconst (\n\tbpNone bracketType = iota\n\tbpOpen\n\tbpClose\n)\n\n// bracketPair holds a pair of index values for opening and closing bracket\n// location of a bracket pair.\ntype bracketPair struct {\n\topener int\n\tcloser int\n}\n\nfunc (b *bracketPair) String() string {\n\treturn fmt.Sprintf(\"(%v, %v)\", b.opener, b.closer)\n}\n\n// bracketPairs is a slice of bracketPairs with a sort.Interface implementation.\ntype bracketPairs []bracketPair\n\nfunc (b bracketPairs) Len() int           { return len(b) }\nfunc (b bracketPairs) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }\nfunc (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener }\n\n// resolvePairedBrackets runs the paired bracket part of the UBA algorithm.\n//\n// For each rune, it takes the indexes into the original string, the class the\n// bracket type (in pairTypes) and the bracket identifier (pairValues). It also\n// takes the direction type for the start-of-sentence and the embedding level.\n//\n// The identifiers for bracket types are the rune of the canonicalized opening\n// bracket for brackets (open or close) or 0 for runes that are not brackets.\nfunc resolvePairedBrackets(s *isolatingRunSequence) {\n\tp := bracketPairer{\n\t\tsos:              s.sos,\n\t\topeners:          list.New(),\n\t\tcodesIsolatedRun: s.types,\n\t\tindexes:          s.indexes,\n\t}\n\tdirEmbed := L\n\tif s.level&1 != 0 {\n\t\tdirEmbed = R\n\t}\n\tp.locateBrackets(s.p.pairTypes, s.p.pairValues)\n\tp.resolveBrackets(dirEmbed, s.p.initialTypes)\n}\n\ntype bracketPairer struct {\n\tsos Class // direction corresponding to start of sequence\n\n\t// The following is a restatement of BD 16 using non-algorithmic language.\n\t//\n\t// A bracket pair is a pair of characters consisting of an opening\n\t// paired bracket and a closing paired bracket such that the\n\t// Bidi_Paired_Bracket property value of the former equals the latter,\n\t// subject to the following constraints.\n\t// - both characters of a pair occur in the same isolating run sequence\n\t// - the closing character of a pair follows the opening character\n\t// - any bracket character can belong at most to one pair, the earliest possible one\n\t// - any bracket character not part of a pair is treated like an ordinary character\n\t// - pairs may nest properly, but their spans may not overlap otherwise\n\n\t// Bracket characters with canonical decompositions are supposed to be\n\t// treated as if they had been normalized, to allow normalized and non-\n\t// normalized text to give the same result. In this implementation that step\n\t// is pushed out to the caller. The caller has to ensure that the pairValue\n\t// slices contain the rune of the opening bracket after normalization for\n\t// any opening or closing bracket.\n\n\topeners *list.List // list of positions for opening brackets\n\n\t// bracket pair positions sorted by location of opening bracket\n\tpairPositions bracketPairs\n\n\tcodesIsolatedRun []Class // directional bidi codes for an isolated run\n\tindexes          []int   // array of index values into the original string\n\n}\n\n// matchOpener reports whether characters at given positions form a matching\n// bracket pair.\nfunc (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool {\n\treturn pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]]\n}\n\nconst maxPairingDepth = 63\n\n// locateBrackets locates matching bracket pairs according to BD16.\n//\n// This implementation uses a linked list instead of a stack, because, while\n// elements are added at the front (like a push) they are not generally removed\n// in atomic 'pop' operations, reducing the benefit of the stack archetype.\nfunc (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) {\n\t// traverse the run\n\t// do that explicitly (not in a for-each) so we can record position\n\tfor i, index := range p.indexes {\n\n\t\t// look at the bracket type for each character\n\t\tif pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON {\n\t\t\t// continue scanning\n\t\t\tcontinue\n\t\t}\n\t\tswitch pairTypes[index] {\n\t\tcase bpOpen:\n\t\t\t// check if maximum pairing depth reached\n\t\t\tif p.openers.Len() == maxPairingDepth {\n\t\t\t\tp.openers.Init()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// remember opener location, most recent first\n\t\t\tp.openers.PushFront(i)\n\n\t\tcase bpClose:\n\t\t\t// see if there is a match\n\t\t\tcount := 0\n\t\t\tfor elem := p.openers.Front(); elem != nil; elem = elem.Next() {\n\t\t\t\tcount++\n\t\t\t\topener := elem.Value.(int)\n\t\t\t\tif p.matchOpener(pairValues, opener, i) {\n\t\t\t\t\t// if the opener matches, add nested pair to the ordered list\n\t\t\t\t\tp.pairPositions = append(p.pairPositions, bracketPair{opener, i})\n\t\t\t\t\t// remove up to and including matched opener\n\t\t\t\t\tfor ; count > 0; count-- {\n\t\t\t\t\t\tp.openers.Remove(p.openers.Front())\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsort.Sort(p.pairPositions)\n\t\t\t// if we get here, the closing bracket matched no openers\n\t\t\t// and gets ignored\n\t\t}\n\t}\n}\n\n// Bracket pairs within an isolating run sequence are processed as units so\n// that both the opening and the closing paired bracket in a pair resolve to\n// the same direction.\n//\n// N0. Process bracket pairs in an isolating run sequence sequentially in\n// the logical order of the text positions of the opening paired brackets\n// using the logic given below. Within this scope, bidirectional types EN\n// and AN are treated as R.\n//\n// Identify the bracket pairs in the current isolating run sequence\n// according to BD16. For each bracket-pair element in the list of pairs of\n// text positions:\n//\n// a Inspect the bidirectional types of the characters enclosed within the\n// bracket pair.\n//\n// b If any strong type (either L or R) matching the embedding direction is\n// found, set the type for both brackets in the pair to match the embedding\n// direction.\n//\n// o [ e ] o -> o e e e o\n//\n// o [ o e ] -> o e o e e\n//\n// o [ NI e ] -> o e NI e e\n//\n// c Otherwise, if a strong type (opposite the embedding direction) is\n// found, test for adjacent strong types as follows: 1 First, check\n// backwards before the opening paired bracket until the first strong type\n// (L, R, or sos) is found. If that first preceding strong type is opposite\n// the embedding direction, then set the type for both brackets in the pair\n// to that type. 2 Otherwise, set the type for both brackets in the pair to\n// the embedding direction.\n//\n// o [ o ] e -> o o o o e\n//\n// o [ o NI ] o -> o o o NI o o\n//\n// e [ o ] o -> e e o e o\n//\n// e [ o ] e -> e e o e e\n//\n// e ( o [ o ] NI ) e -> e e o o o o NI e e\n//\n// d Otherwise, do not set the type for the current bracket pair. Note that\n// if the enclosed text contains no strong types the paired brackets will\n// both resolve to the same level when resolved individually using rules N1\n// and N2.\n//\n// e ( NI ) o -> e ( NI ) o\n\n// getStrongTypeN0 maps character's directional code to strong type as required\n// by rule N0.\n//\n// TODO: have separate type for \"strong\" directionality.\nfunc (p *bracketPairer) getStrongTypeN0(index int) Class {\n\tswitch p.codesIsolatedRun[index] {\n\t// in the scope of N0, number types are treated as R\n\tcase EN, AN, AL, R:\n\t\treturn R\n\tcase L:\n\t\treturn L\n\tdefault:\n\t\treturn ON\n\t}\n}\n\n// classifyPairContent reports the strong types contained inside a Bracket Pair,\n// assuming the given embedding direction.\n//\n// It returns ON if no strong type is found. If a single strong type is found,\n// it returns this type. Otherwise it returns the embedding direction.\n//\n// TODO: use separate type for \"strong\" directionality.\nfunc (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class {\n\tdirOpposite := ON\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tdir := p.getStrongTypeN0(i)\n\t\tif dir == ON {\n\t\t\tcontinue\n\t\t}\n\t\tif dir == dirEmbed {\n\t\t\treturn dir // type matching embedding direction found\n\t\t}\n\t\tdirOpposite = dir\n\t}\n\t// return ON if no strong type found, or class opposite to dirEmbed\n\treturn dirOpposite\n}\n\n// classBeforePair determines which strong types are present before a Bracket\n// Pair. Return R or L if strong type found, otherwise ON.\nfunc (p *bracketPairer) classBeforePair(loc bracketPair) Class {\n\tfor i := loc.opener - 1; i >= 0; i-- {\n\t\tif dir := p.getStrongTypeN0(i); dir != ON {\n\t\t\treturn dir\n\t\t}\n\t}\n\t// no strong types found, return sos\n\treturn p.sos\n}\n\n// assignBracketType implements rule N0 for a single bracket pair.\nfunc (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) {\n\t// rule \"N0, a\", inspect contents of pair\n\tdirPair := p.classifyPairContent(loc, dirEmbed)\n\n\t// dirPair is now L, R, or N (no strong type found)\n\n\t// the following logical tests are performed out of order compared to\n\t// the statement of the rules but yield the same results\n\tif dirPair == ON {\n\t\treturn // case \"d\" - nothing to do\n\t}\n\n\tif dirPair != dirEmbed {\n\t\t// case \"c\": strong type found, opposite - check before (c.1)\n\t\tdirPair = p.classBeforePair(loc)\n\t\tif dirPair == dirEmbed || dirPair == ON {\n\t\t\t// no strong opposite type found before - use embedding (c.2)\n\t\t\tdirPair = dirEmbed\n\t\t}\n\t}\n\t// else: case \"b\", strong type found matching embedding,\n\t// no explicit action needed, as dirPair is already set to embedding\n\t// direction\n\n\t// set the bracket types to the type found\n\tp.setBracketsToType(loc, dirPair, initialTypes)\n}\n\nfunc (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) {\n\tp.codesIsolatedRun[loc.opener] = dirPair\n\tp.codesIsolatedRun[loc.closer] = dirPair\n\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n\n\tfor i := loc.closer + 1; i < len(p.indexes); i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n}\n\n// resolveBrackets implements rule N0 for a list of pairs.\nfunc (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) {\n\tfor _, loc := range p.pairPositions {\n\t\tp.assignBracketType(loc, dirEmbed, initialTypes)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/core.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport (\n\t\"fmt\"\n\t\"log\"\n)\n\n// This implementation is a port based on the reference implementation found at:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/\n//\n// described in Unicode Bidirectional Algorithm (UAX #9).\n//\n// Input:\n// There are two levels of input to the algorithm, since clients may prefer to\n// supply some information from out-of-band sources rather than relying on the\n// default behavior.\n//\n// - Bidi class array\n// - Bidi class array, with externally supplied base line direction\n//\n// Output:\n// Output is separated into several stages:\n//\n//  - levels array over entire paragraph\n//  - reordering array over entire paragraph\n//  - levels array over line\n//  - reordering array over line\n//\n// Note that for conformance to the Unicode Bidirectional Algorithm,\n// implementations are only required to generate correct reordering and\n// character directionality (odd or even levels) over a line. Generating\n// identical level arrays over a line is not required. Bidi explicit format\n// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and\n// positions as long as the rest of the input is properly reordered.\n//\n// As the algorithm is defined to operate on a single paragraph at a time, this\n// implementation is written to handle single paragraphs. Thus rule P1 is\n// presumed by this implementation-- the data provided to the implementation is\n// assumed to be a single paragraph, and either contains no 'B' codes, or a\n// single 'B' code at the end of the input. 'B' is allowed as input to\n// illustrate how the algorithm assigns it a level.\n//\n// Also note that rules L3 and L4 depend on the rendering engine that uses the\n// result of the bidi algorithm. This implementation assumes that the rendering\n// engine expects combining marks in visual order (e.g. to the left of their\n// base character in RTL runs) and that it adjusts the glyphs used to render\n// mirrored characters that are in RTL runs so that they render appropriately.\n\n// level is the embedding level of a character. Even embedding levels indicate\n// left-to-right order and odd levels indicate right-to-left order. The special\n// level of -1 is reserved for undefined order.\ntype level int8\n\nconst implicitLevel level = -1\n\n// in returns if x is equal to any of the values in set.\nfunc (c Class) in(set ...Class) bool {\n\tfor _, s := range set {\n\t\tif c == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// A paragraph contains the state of a paragraph.\ntype paragraph struct {\n\tinitialTypes []Class\n\n\t// Arrays of properties needed for paired bracket evaluation in N0\n\tpairTypes  []bracketType // paired Bracket types for paragraph\n\tpairValues []rune        // rune for opening bracket or pbOpen and pbClose; 0 for pbNone\n\n\tembeddingLevel level // default: = implicitLevel;\n\n\t// at the paragraph levels\n\tresultTypes  []Class\n\tresultLevels []level\n\n\t// Index of matching PDI for isolate initiator characters. For other\n\t// characters, the value of matchingPDI will be set to -1. For isolate\n\t// initiators with no matching PDI, matchingPDI will be set to the length of\n\t// the input string.\n\tmatchingPDI []int\n\n\t// Index of matching isolate initiator for PDI characters. For other\n\t// characters, and for PDIs with no matching isolate initiator, the value of\n\t// matchingIsolateInitiator will be set to -1.\n\tmatchingIsolateInitiator []int\n}\n\n// newParagraph initializes a paragraph. The user needs to supply a few arrays\n// corresponding to the preprocessed text input. The types correspond to the\n// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for\n// each rune. pairValues provides a unique bracket class identifier for each\n// rune (suggested is the rune of the open bracket for opening and matching\n// close brackets, after normalization). The embedding levels are optional, but\n// may be supplied to encode embedding levels of styled text.\nfunc newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) (*paragraph, error) {\n\tvar err error\n\tif err = validateTypes(types); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validatePbTypes(pairTypes); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validatePbValues(pairValues, pairTypes); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validateParagraphEmbeddingLevel(levels); err != nil {\n\t\treturn nil, err\n\t}\n\n\tp := &paragraph{\n\t\tinitialTypes:   append([]Class(nil), types...),\n\t\tembeddingLevel: levels,\n\n\t\tpairTypes:  pairTypes,\n\t\tpairValues: pairValues,\n\n\t\tresultTypes: append([]Class(nil), types...),\n\t}\n\tp.run()\n\treturn p, nil\n}\n\nfunc (p *paragraph) Len() int { return len(p.initialTypes) }\n\n// The algorithm. Does not include line-based processing (Rules L1, L2).\n// These are applied later in the line-based phase of the algorithm.\nfunc (p *paragraph) run() {\n\tp.determineMatchingIsolates()\n\n\t// 1) determining the paragraph level\n\t// Rule P1 is the requirement for entering this algorithm.\n\t// Rules P2, P3.\n\t// If no externally supplied paragraph embedding level, use default.\n\tif p.embeddingLevel == implicitLevel {\n\t\tp.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len())\n\t}\n\n\t// Initialize result levels to paragraph embedding level.\n\tp.resultLevels = make([]level, p.Len())\n\tsetLevels(p.resultLevels, p.embeddingLevel)\n\n\t// 2) Explicit levels and directions\n\t// Rules X1-X8.\n\tp.determineExplicitEmbeddingLevels()\n\n\t// Rule X9.\n\t// We do not remove the embeddings, the overrides, the PDFs, and the BNs\n\t// from the string explicitly. But they are not copied into isolating run\n\t// sequences when they are created, so they are removed for all\n\t// practical purposes.\n\n\t// Rule X10.\n\t// Run remainder of algorithm one isolating run sequence at a time\n\tfor _, seq := range p.determineIsolatingRunSequences() {\n\t\t// 3) resolving weak types\n\t\t// Rules W1-W7.\n\t\tseq.resolveWeakTypes()\n\n\t\t// 4a) resolving paired brackets\n\t\t// Rule N0\n\t\tresolvePairedBrackets(seq)\n\n\t\t// 4b) resolving neutral types\n\t\t// Rules N1-N3.\n\t\tseq.resolveNeutralTypes()\n\n\t\t// 5) resolving implicit embedding levels\n\t\t// Rules I1, I2.\n\t\tseq.resolveImplicitLevels()\n\n\t\t// Apply the computed levels and types\n\t\tseq.applyLevelsAndTypes()\n\t}\n\n\t// Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and\n\t// BNs. This is for convenience, so the resulting level array will have\n\t// a value for every character.\n\tp.assignLevelsToCharactersRemovedByX9()\n}\n\n// determineMatchingIsolates determines the matching PDI for each isolate\n// initiator and vice versa.\n//\n// Definition BD9.\n//\n// At the end of this function:\n//\n//   - The member variable matchingPDI is set to point to the index of the\n//     matching PDI character for each isolate initiator character. If there is\n//     no matching PDI, it is set to the length of the input text. For other\n//     characters, it is set to -1.\n//   - The member variable matchingIsolateInitiator is set to point to the\n//     index of the matching isolate initiator character for each PDI character.\n//     If there is no matching isolate initiator, or the character is not a PDI,\n//     it is set to -1.\nfunc (p *paragraph) determineMatchingIsolates() {\n\tp.matchingPDI = make([]int, p.Len())\n\tp.matchingIsolateInitiator = make([]int, p.Len())\n\n\tfor i := range p.matchingIsolateInitiator {\n\t\tp.matchingIsolateInitiator[i] = -1\n\t}\n\n\tfor i := range p.matchingPDI {\n\t\tp.matchingPDI[i] = -1\n\n\t\tif t := p.resultTypes[i]; t.in(LRI, RLI, FSI) {\n\t\t\tdepthCounter := 1\n\t\t\tfor j := i + 1; j < p.Len(); j++ {\n\t\t\t\tif u := p.resultTypes[j]; u.in(LRI, RLI, FSI) {\n\t\t\t\t\tdepthCounter++\n\t\t\t\t} else if u == PDI {\n\t\t\t\t\tif depthCounter--; depthCounter == 0 {\n\t\t\t\t\t\tp.matchingPDI[i] = j\n\t\t\t\t\t\tp.matchingIsolateInitiator[j] = i\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif p.matchingPDI[i] == -1 {\n\t\t\t\tp.matchingPDI[i] = p.Len()\n\t\t\t}\n\t\t}\n\t}\n}\n\n// determineParagraphEmbeddingLevel reports the resolved paragraph direction of\n// the substring limited by the given range [start, end).\n//\n// Determines the paragraph level based on rules P2, P3. This is also used\n// in rule X5c to find if an FSI should resolve to LRI or RLI.\nfunc (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level {\n\tvar strongType Class = unknownClass\n\n\t// Rule P2.\n\tfor i := start; i < end; i++ {\n\t\tif t := p.resultTypes[i]; t.in(L, AL, R) {\n\t\t\tstrongType = t\n\t\t\tbreak\n\t\t} else if t.in(FSI, LRI, RLI) {\n\t\t\ti = p.matchingPDI[i] // skip over to the matching PDI\n\t\t\tif i > end {\n\t\t\t\tlog.Panic(\"assert (i <= end)\")\n\t\t\t}\n\t\t}\n\t}\n\t// Rule P3.\n\tswitch strongType {\n\tcase unknownClass: // none found\n\t\t// default embedding level when no strong types found is 0.\n\t\treturn 0\n\tcase L:\n\t\treturn 0\n\tdefault: // AL, R\n\t\treturn 1\n\t}\n}\n\nconst maxDepth = 125\n\n// This stack will store the embedding levels and override and isolated\n// statuses\ntype directionalStatusStack struct {\n\tstackCounter        int\n\tembeddingLevelStack [maxDepth + 1]level\n\toverrideStatusStack [maxDepth + 1]Class\n\tisolateStatusStack  [maxDepth + 1]bool\n}\n\nfunc (s *directionalStatusStack) empty()     { s.stackCounter = 0 }\nfunc (s *directionalStatusStack) pop()       { s.stackCounter-- }\nfunc (s *directionalStatusStack) depth() int { return s.stackCounter }\n\nfunc (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) {\n\ts.embeddingLevelStack[s.stackCounter] = level\n\ts.overrideStatusStack[s.stackCounter] = overrideStatus\n\ts.isolateStatusStack[s.stackCounter] = isolateStatus\n\ts.stackCounter++\n}\n\nfunc (s *directionalStatusStack) lastEmbeddingLevel() level {\n\treturn s.embeddingLevelStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalOverrideStatus() Class {\n\treturn s.overrideStatusStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalIsolateStatus() bool {\n\treturn s.isolateStatusStack[s.stackCounter-1]\n}\n\n// Determine explicit levels using rules X1 - X8\nfunc (p *paragraph) determineExplicitEmbeddingLevels() {\n\tvar stack directionalStatusStack\n\tvar overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int\n\n\t// Rule X1.\n\tstack.push(p.embeddingLevel, ON, false)\n\n\tfor i, t := range p.resultTypes {\n\t\t// Rules X2, X3, X4, X5, X5a, X5b, X5c\n\t\tswitch t {\n\t\tcase RLE, LRE, RLO, LRO, RLI, LRI, FSI:\n\t\t\tisIsolate := t.in(RLI, LRI, FSI)\n\t\t\tisRTL := t.in(RLE, RLO, RLI)\n\n\t\t\t// override if this is an FSI that resolves to RLI\n\t\t\tif t == FSI {\n\t\t\t\tisRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1)\n\t\t\t}\n\t\t\tif isIsolate {\n\t\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar newLevel level\n\t\t\tif isRTL {\n\t\t\t\t// least greater odd\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 1) | 1\n\t\t\t} else {\n\t\t\t\t// least greater even\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 2) &^ 1\n\t\t\t}\n\n\t\t\tif newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 {\n\t\t\t\tif isIsolate {\n\t\t\t\t\tvalidIsolateCount++\n\t\t\t\t}\n\t\t\t\t// Push new embedding level, override status, and isolated\n\t\t\t\t// status.\n\t\t\t\t// No check for valid stack counter, since the level check\n\t\t\t\t// suffices.\n\t\t\t\tswitch t {\n\t\t\t\tcase LRO:\n\t\t\t\t\tstack.push(newLevel, L, isIsolate)\n\t\t\t\tcase RLO:\n\t\t\t\t\tstack.push(newLevel, R, isIsolate)\n\t\t\t\tdefault:\n\t\t\t\t\tstack.push(newLevel, ON, isIsolate)\n\t\t\t\t}\n\t\t\t\t// Not really part of the spec\n\t\t\t\tif !isIsolate {\n\t\t\t\t\tp.resultLevels[i] = newLevel\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// This is an invalid explicit formatting character,\n\t\t\t\t// so apply the \"Otherwise\" part of rules X2-X5b.\n\t\t\t\tif isIsolate {\n\t\t\t\t\toverflowIsolateCount++\n\t\t\t\t} else { // !isIsolate\n\t\t\t\t\tif overflowIsolateCount == 0 {\n\t\t\t\t\t\toverflowEmbeddingCount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Rule X6a\n\t\tcase PDI:\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\toverflowIsolateCount--\n\t\t\t} else if validIsolateCount == 0 {\n\t\t\t\t// do nothing\n\t\t\t} else {\n\t\t\t\toverflowEmbeddingCount = 0\n\t\t\t\tfor !stack.lastDirectionalIsolateStatus() {\n\t\t\t\t\tstack.pop()\n\t\t\t\t}\n\t\t\t\tstack.pop()\n\t\t\t\tvalidIsolateCount--\n\t\t\t}\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t// Rule X7\n\t\tcase PDF:\n\t\t\t// Not really part of the spec\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\t// do nothing\n\t\t\t} else if overflowEmbeddingCount > 0 {\n\t\t\t\toverflowEmbeddingCount--\n\t\t\t} else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 {\n\t\t\t\tstack.pop()\n\t\t\t}\n\n\t\tcase B: // paragraph separator.\n\t\t\t// Rule X8.\n\n\t\t\t// These values are reset for clarity, in this implementation B\n\t\t\t// can only occur as the last code in the array.\n\t\t\tstack.empty()\n\t\t\toverflowIsolateCount = 0\n\t\t\toverflowEmbeddingCount = 0\n\t\t\tvalidIsolateCount = 0\n\t\t\tp.resultLevels[i] = p.embeddingLevel\n\n\t\tdefault:\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype isolatingRunSequence struct {\n\tp *paragraph\n\n\tindexes []int // indexes to the original string\n\n\ttypes          []Class // type of each character using the index\n\tresolvedLevels []level // resolved levels after application of rules\n\tlevel          level\n\tsos, eos       Class\n}\n\nfunc (i *isolatingRunSequence) Len() int { return len(i.indexes) }\n\n// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,\n// either L or R, for each isolating run sequence.\nfunc (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {\n\tlength := len(indexes)\n\ttypes := make([]Class, length)\n\tfor i, x := range indexes {\n\t\ttypes[i] = p.resultTypes[x]\n\t}\n\n\t// assign level, sos and eos\n\tprevChar := indexes[0] - 1\n\tfor prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) {\n\t\tprevChar--\n\t}\n\tprevLevel := p.embeddingLevel\n\tif prevChar >= 0 {\n\t\tprevLevel = p.resultLevels[prevChar]\n\t}\n\n\tvar succLevel level\n\tlastType := types[length-1]\n\tif lastType.in(LRI, RLI, FSI) {\n\t\tsuccLevel = p.embeddingLevel\n\t} else {\n\t\t// the first character after the end of run sequence\n\t\tlimit := indexes[length-1] + 1\n\t\tfor ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ {\n\n\t\t}\n\t\tsuccLevel = p.embeddingLevel\n\t\tif limit < p.Len() {\n\t\t\tsuccLevel = p.resultLevels[limit]\n\t\t}\n\t}\n\tlevel := p.resultLevels[indexes[0]]\n\treturn &isolatingRunSequence{\n\t\tp:       p,\n\t\tindexes: indexes,\n\t\ttypes:   types,\n\t\tlevel:   level,\n\t\tsos:     typeForLevel(max(prevLevel, level)),\n\t\teos:     typeForLevel(max(succLevel, level)),\n\t}\n}\n\n// Resolving weak types Rules W1-W7.\n//\n// Note that some weak types (EN, AN) remain after this processing is\n// complete.\nfunc (s *isolatingRunSequence) resolveWeakTypes() {\n\n\t// on entry, only these types remain\n\ts.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI)\n\n\t// Rule W1.\n\t// Changes all NSMs.\n\tprecedingCharacterType := s.sos\n\tfor i, t := range s.types {\n\t\tif t == NSM {\n\t\t\ts.types[i] = precedingCharacterType\n\t\t} else {\n\t\t\t// if t.in(LRI, RLI, FSI, PDI) {\n\t\t\t// \tprecedingCharacterType = ON\n\t\t\t// }\n\t\t\tprecedingCharacterType = t\n\t\t}\n\t}\n\n\t// Rule W2.\n\t// EN does not change at the start of the run, because sos != AL.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif t := s.types[j]; t.in(L, R, AL) {\n\t\t\t\t\tif t == AL {\n\t\t\t\t\t\ts.types[i] = AN\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W3.\n\tfor i, t := range s.types {\n\t\tif t == AL {\n\t\t\ts.types[i] = R\n\t\t}\n\t}\n\n\t// Rule W4.\n\t// Since there must be values on both sides for this rule to have an\n\t// effect, the scan skips the first and last value.\n\t//\n\t// Although the scan proceeds left to right, and changes the type\n\t// values in a way that would appear to affect the computations\n\t// later in the scan, there is actually no problem. A change in the\n\t// current value can only affect the value to its immediate right,\n\t// and only affect it if it is ES or CS. But the current value can\n\t// only change if the value to its right is not ES or CS. Thus\n\t// either the current value will not change, or its change will have\n\t// no effect on the remainder of the analysis.\n\n\tfor i := 1; i < s.Len()-1; i++ {\n\t\tt := s.types[i]\n\t\tif t == ES || t == CS {\n\t\t\tprevSepType := s.types[i-1]\n\t\t\tsuccSepType := s.types[i+1]\n\t\t\tif prevSepType == EN && succSepType == EN {\n\t\t\t\ts.types[i] = EN\n\t\t\t} else if s.types[i] == CS && prevSepType == AN && succSepType == AN {\n\t\t\t\ts.types[i] = AN\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W5.\n\tfor i, t := range s.types {\n\t\tif t == ET {\n\t\t\t// locate end of sequence\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, ET)\n\n\t\t\t// check values at ends of sequence\n\t\t\tt := s.sos\n\t\t\tif runStart > 0 {\n\t\t\t\tt = s.types[runStart-1]\n\t\t\t}\n\t\t\tif t != EN {\n\t\t\t\tt = s.eos\n\t\t\t\tif runEnd < len(s.types) {\n\t\t\t\t\tt = s.types[runEnd]\n\t\t\t\t}\n\t\t\t}\n\t\t\tif t == EN {\n\t\t\t\tsetTypes(s.types[runStart:runEnd], EN)\n\t\t\t}\n\t\t\t// continue at end of sequence\n\t\t\ti = runEnd\n\t\t}\n\t}\n\n\t// Rule W6.\n\tfor i, t := range s.types {\n\t\tif t.in(ES, ET, CS) {\n\t\t\ts.types[i] = ON\n\t\t}\n\t}\n\n\t// Rule W7.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\t// set default if we reach start of run\n\t\t\tprevStrongType := s.sos\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tt = s.types[j]\n\t\t\t\tif t == L || t == R { // AL's have been changed to R\n\t\t\t\t\tprevStrongType = t\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif prevStrongType == L {\n\t\t\t\ts.types[i] = L\n\t\t\t}\n\t\t}\n\t}\n}\n\n// 6) resolving neutral types Rules N1-N2.\nfunc (s *isolatingRunSequence) resolveNeutralTypes() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\tfor i, t := range s.types {\n\t\tswitch t {\n\t\tcase WS, ON, B, S, RLI, LRI, FSI, PDI:\n\t\t\t// find bounds of run of neutrals\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\t\t\t// determine effective types at ends of run\n\t\t\tvar leadType, trailType Class\n\n\t\t\t// Note that the character found can only be L, R, AN, or\n\t\t\t// EN.\n\t\t\tif runStart == 0 {\n\t\t\t\tleadType = s.sos\n\t\t\t} else {\n\t\t\t\tleadType = s.types[runStart-1]\n\t\t\t\tif leadType.in(AN, EN) {\n\t\t\t\t\tleadType = R\n\t\t\t\t}\n\t\t\t}\n\t\t\tif runEnd == len(s.types) {\n\t\t\t\ttrailType = s.eos\n\t\t\t} else {\n\t\t\t\ttrailType = s.types[runEnd]\n\t\t\t\tif trailType.in(AN, EN) {\n\t\t\t\t\ttrailType = R\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar resolvedType Class\n\t\t\tif leadType == trailType {\n\t\t\t\t// Rule N1.\n\t\t\t\tresolvedType = leadType\n\t\t\t} else {\n\t\t\t\t// Rule N2.\n\t\t\t\t// Notice the embedding level of the run is used, not\n\t\t\t\t// the paragraph embedding level.\n\t\t\t\tresolvedType = typeForLevel(s.level)\n\t\t\t}\n\n\t\t\tsetTypes(s.types[runStart:runEnd], resolvedType)\n\n\t\t\t// skip over run of (former) neutrals\n\t\t\ti = runEnd\n\t\t}\n\t}\n}\n\nfunc setLevels(levels []level, newLevel level) {\n\tfor i := range levels {\n\t\tlevels[i] = newLevel\n\t}\n}\n\nfunc setTypes(types []Class, newType Class) {\n\tfor i := range types {\n\t\ttypes[i] = newType\n\t}\n}\n\n// 7) resolving implicit embedding levels Rules I1, I2.\nfunc (s *isolatingRunSequence) resolveImplicitLevels() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN)\n\n\ts.resolvedLevels = make([]level, len(s.types))\n\tsetLevels(s.resolvedLevels, s.level)\n\n\tif (s.level & 1) == 0 { // even level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I1.\n\t\t\tif t == L {\n\t\t\t\t// no change\n\t\t\t} else if t == R {\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t} else { // t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 2\n\t\t\t}\n\t\t}\n\t} else { // odd level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I2.\n\t\t\tif t == R {\n\t\t\t\t// no change\n\t\t\t} else { // t == L || t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Applies the levels and types resolved in rules W1-I2 to the\n// resultLevels array.\nfunc (s *isolatingRunSequence) applyLevelsAndTypes() {\n\tfor i, x := range s.indexes {\n\t\ts.p.resultTypes[x] = s.types[i]\n\t\ts.p.resultLevels[x] = s.resolvedLevels[i]\n\t}\n}\n\n// Return the limit of the run consisting only of the types in validSet\n// starting at index. This checks the value at index, and will return\n// index if that value is not in validSet.\nfunc (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int {\nloop:\n\tfor ; index < len(s.types); index++ {\n\t\tt := s.types[index]\n\t\tfor _, valid := range validSet {\n\t\t\tif t == valid {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\treturn index // didn't find a match in validSet\n\t}\n\treturn len(s.types)\n}\n\n// Algorithm validation. Assert that all values in types are in the\n// provided set.\nfunc (s *isolatingRunSequence) assertOnly(codes ...Class) {\nloop:\n\tfor i, t := range s.types {\n\t\tfor _, c := range codes {\n\t\t\tif t == c {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\tlog.Panicf(\"invalid bidi code %v present in assertOnly at position %d\", t, s.indexes[i])\n\t}\n}\n\n// determineLevelRuns returns an array of level runs. Each level run is\n// described as an array of indexes into the input string.\n//\n// Determines the level runs. Rule X9 will be applied in determining the\n// runs, in the way that makes sure the characters that are supposed to be\n// removed are not included in the runs.\nfunc (p *paragraph) determineLevelRuns() [][]int {\n\trun := []int{}\n\tallRuns := [][]int{}\n\tcurrentLevel := implicitLevel\n\n\tfor i := range p.initialTypes {\n\t\tif !isRemovedByX9(p.initialTypes[i]) {\n\t\t\tif p.resultLevels[i] != currentLevel {\n\t\t\t\t// we just encountered a new run; wrap up last run\n\t\t\t\tif currentLevel >= 0 { // only wrap it up if there was a run\n\t\t\t\t\tallRuns = append(allRuns, run)\n\t\t\t\t\trun = nil\n\t\t\t\t}\n\t\t\t\t// Start new run\n\t\t\t\tcurrentLevel = p.resultLevels[i]\n\t\t\t}\n\t\t\trun = append(run, i)\n\t\t}\n\t}\n\t// Wrap up the final run, if any\n\tif len(run) > 0 {\n\t\tallRuns = append(allRuns, run)\n\t}\n\treturn allRuns\n}\n\n// Definition BD13. Determine isolating run sequences.\nfunc (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence {\n\tlevelRuns := p.determineLevelRuns()\n\n\t// Compute the run that each character belongs to\n\trunForCharacter := make([]int, p.Len())\n\tfor i, run := range levelRuns {\n\t\tfor _, index := range run {\n\t\t\trunForCharacter[index] = i\n\t\t}\n\t}\n\n\tsequences := []*isolatingRunSequence{}\n\n\tvar currentRunSequence []int\n\n\tfor _, run := range levelRuns {\n\t\tfirst := run[0]\n\t\tif p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 {\n\t\t\tcurrentRunSequence = nil\n\t\t\t// int run = i;\n\t\t\tfor {\n\t\t\t\t// Copy this level run into currentRunSequence\n\t\t\t\tcurrentRunSequence = append(currentRunSequence, run...)\n\n\t\t\t\tlast := currentRunSequence[len(currentRunSequence)-1]\n\t\t\t\tlastT := p.initialTypes[last]\n\t\t\t\tif lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() {\n\t\t\t\t\trun = levelRuns[runForCharacter[p.matchingPDI[last]]]\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsequences = append(sequences, p.isolatingRunSequence(currentRunSequence))\n\t\t}\n\t}\n\treturn sequences\n}\n\n// Assign level information to characters removed by rule X9. This is for\n// ease of relating the level information to the original input data. Note\n// that the levels assigned to these codes are arbitrary, they're chosen so\n// as to avoid breaking level runs.\nfunc (p *paragraph) assignLevelsToCharactersRemovedByX9() {\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(LRE, RLE, LRO, RLO, PDF, BN) {\n\t\t\tp.resultTypes[i] = t\n\t\t\tp.resultLevels[i] = -1\n\t\t}\n\t}\n\t// now propagate forward the levels information (could have\n\t// propagated backward, the main thing is not to introduce a level\n\t// break where one doesn't already exist).\n\n\tif p.resultLevels[0] == -1 {\n\t\tp.resultLevels[0] = p.embeddingLevel\n\t}\n\tfor i := 1; i < len(p.initialTypes); i++ {\n\t\tif p.resultLevels[i] == -1 {\n\t\t\tp.resultLevels[i] = p.resultLevels[i-1]\n\t\t}\n\t}\n\t// Embedding information is for informational purposes only so need not be\n\t// adjusted.\n}\n\n//\n// Output\n//\n\n// getLevels computes levels array breaking lines at offsets in linebreaks.\n// Rule L1.\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getLevels(linebreaks []int) []level {\n\t// Note that since the previous processing has removed all\n\t// P, S, and WS values from resultTypes, the values referred to\n\t// in these rules are the initial types, before any processing\n\t// has been applied (including processing of overrides).\n\t//\n\t// This example implementation has reinserted explicit format codes\n\t// and BN, in order that the levels array correspond to the\n\t// initial text. Their final placement is not normative.\n\t// These codes are treated like WS in this implementation,\n\t// so they don't interrupt sequences of WS.\n\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\tresult := append([]level(nil), p.resultLevels...)\n\n\t// don't worry about linebreaks since if there is a break within\n\t// a series of WS values preceding S, the linebreak itself\n\t// causes the reset.\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(B, S) {\n\t\t\t// Rule L1, clauses one and two.\n\t\t\tresult[i] = p.embeddingLevel\n\n\t\t\t// Rule L1, clause three.\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule L1, clause four.\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\tfor j := limit - 1; j >= start; j-- {\n\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tstart = limit\n\t}\n\n\treturn result\n}\n\n// getReordering returns the reordering of lines from a visual index to a\n// logical index for line breaks at the given offsets.\n//\n// Lines are concatenated from left to right. So for example, the fifth\n// character from the left on the third line is\n//\n//\tgetReordering(linebreaks)[linebreaks[1] + 4]\n//\n// (linebreaks[1] is the position after the last character of the second\n// line, which is also the index of the first character on the third line,\n// and adding four gets the fifth character from the left).\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getReordering(linebreaks []int) []int {\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\treturn computeMultilineReordering(p.getLevels(linebreaks), linebreaks)\n}\n\n// Return multiline reordering array for a given level array. Reordering\n// does not occur across a line break.\nfunc computeMultilineReordering(levels []level, linebreaks []int) []int {\n\tresult := make([]int, len(levels))\n\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\ttempLevels := make([]level, limit-start)\n\t\tcopy(tempLevels, levels[start:])\n\n\t\tfor j, order := range computeReordering(tempLevels) {\n\t\t\tresult[start+j] = order + start\n\t\t}\n\t\tstart = limit\n\t}\n\treturn result\n}\n\n// Return reordering array for a given level array. This reorders a single\n// line. The reordering is a visual to logical map. For example, the\n// leftmost char is string.charAt(order[0]). Rule L2.\nfunc computeReordering(levels []level) []int {\n\tresult := make([]int, len(levels))\n\t// initialize order\n\tfor i := range result {\n\t\tresult[i] = i\n\t}\n\n\t// locate highest level found on line.\n\t// Note the rules say text, but no reordering across line bounds is\n\t// performed, so this is sufficient.\n\thighestLevel := level(0)\n\tlowestOddLevel := level(maxDepth + 2)\n\tfor _, level := range levels {\n\t\tif level > highestLevel {\n\t\t\thighestLevel = level\n\t\t}\n\t\tif level&1 != 0 && level < lowestOddLevel {\n\t\t\tlowestOddLevel = level\n\t\t}\n\t}\n\n\tfor level := highestLevel; level >= lowestOddLevel; level-- {\n\t\tfor i := 0; i < len(levels); i++ {\n\t\t\tif levels[i] >= level {\n\t\t\t\t// find range of text at or above this level\n\t\t\t\tstart := i\n\t\t\t\tlimit := i + 1\n\t\t\t\tfor limit < len(levels) && levels[limit] >= level {\n\t\t\t\t\tlimit++\n\t\t\t\t}\n\n\t\t\t\tfor j, k := start, limit-1; j < k; j, k = j+1, k-1 {\n\t\t\t\t\tresult[j], result[k] = result[k], result[j]\n\t\t\t\t}\n\t\t\t\t// skip to end of level run\n\t\t\t\ti = limit\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n// isWhitespace reports whether the type is considered a whitespace type for the\n// line break rules.\nfunc isWhitespace(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// isRemovedByX9 reports whether the type is one of the types removed in X9.\nfunc isRemovedByX9(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, BN:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// typeForLevel reports the strong type (L or R) corresponding to the level.\nfunc typeForLevel(level level) Class {\n\tif (level & 0x1) == 0 {\n\t\treturn L\n\t}\n\treturn R\n}\n\nfunc validateTypes(types []Class) error {\n\tif len(types) == 0 {\n\t\treturn fmt.Errorf(\"types is null\")\n\t}\n\tfor i, t := range types[:len(types)-1] {\n\t\tif t == B {\n\t\t\treturn fmt.Errorf(\"B type before end of paragraph at index: %d\", i)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateParagraphEmbeddingLevel(embeddingLevel level) error {\n\tif embeddingLevel != implicitLevel &&\n\t\tembeddingLevel != 0 &&\n\t\tembeddingLevel != 1 {\n\t\treturn fmt.Errorf(\"illegal paragraph embedding level: %d\", embeddingLevel)\n\t}\n\treturn nil\n}\n\nfunc validateLineBreaks(linebreaks []int, textLength int) error {\n\tprev := 0\n\tfor i, next := range linebreaks {\n\t\tif next <= prev {\n\t\t\treturn fmt.Errorf(\"bad linebreak: %d at index: %d\", next, i)\n\t\t}\n\t\tprev = next\n\t}\n\tif prev != textLength {\n\t\treturn fmt.Errorf(\"last linebreak was %d, want %d\", prev, textLength)\n\t}\n\treturn nil\n}\n\nfunc validatePbTypes(pairTypes []bracketType) error {\n\tif len(pairTypes) == 0 {\n\t\treturn fmt.Errorf(\"pairTypes is null\")\n\t}\n\tfor i, pt := range pairTypes {\n\t\tswitch pt {\n\t\tcase bpNone, bpOpen, bpClose:\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"illegal pairType value at %d: %v\", i, pairTypes[i])\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validatePbValues(pairValues []rune, pairTypes []bracketType) error {\n\tif pairValues == nil {\n\t\treturn fmt.Errorf(\"pairValues is null\")\n\t}\n\tif len(pairTypes) != len(pairValues) {\n\t\treturn fmt.Errorf(\"pairTypes is different length from pairValues\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/prop.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport \"unicode/utf8\"\n\n// Properties provides access to BiDi properties of runes.\ntype Properties struct {\n\tentry uint8\n\tlast  uint8\n}\n\nvar trie = newBidiTrie(0)\n\n// TODO: using this for bidirule reduces the running time by about 5%. Consider\n// if this is worth exposing or if we can find a way to speed up the Class\n// method.\n//\n// // CompactClass is like Class, but maps all of the BiDi control classes\n// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control.\n// func (p Properties) CompactClass() Class {\n// \treturn Class(p.entry & 0x0F)\n// }\n\n// Class returns the Bidi class for p.\nfunc (p Properties) Class() Class {\n\tc := Class(p.entry & 0x0F)\n\tif c == Control {\n\t\tc = controlByteToClass[p.last&0xF]\n\t}\n\treturn c\n}\n\n// IsBracket reports whether the rune is a bracket.\nfunc (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 }\n\n// IsOpeningBracket reports whether the rune is an opening bracket.\n// IsBracket must return true.\nfunc (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 }\n\n// TODO: find a better API and expose.\nfunc (p Properties) reverseBracket(r rune) rune {\n\treturn xorMasks[p.entry>>xorMaskShift] ^ r\n}\n\nvar controlByteToClass = [16]Class{\n\t0xD: LRO, // U+202D LeftToRightOverride,\n\t0xE: RLO, // U+202E RightToLeftOverride,\n\t0xA: LRE, // U+202A LeftToRightEmbedding,\n\t0xB: RLE, // U+202B RightToLeftEmbedding,\n\t0xC: PDF, // U+202C PopDirectionalFormat,\n\t0x6: LRI, // U+2066 LeftToRightIsolate,\n\t0x7: RLI, // U+2067 RightToLeftIsolate,\n\t0x8: FSI, // U+2068 FirstStrongIsolate,\n\t0x9: PDI, // U+2069 PopDirectionalIsolate,\n}\n\n// LookupRune returns properties for r.\nfunc LookupRune(r rune) (p Properties, size int) {\n\tvar buf [4]byte\n\tn := utf8.EncodeRune(buf[:], r)\n\treturn Lookup(buf[:n])\n}\n\n// TODO: these lookup methods are based on the generated trie code. The returned\n// sizes have slightly different semantics from the generated code, in that it\n// always returns size==1 for an illegal UTF-8 byte (instead of the length\n// of the maximum invalid subsequence). Most Transformers, like unicode/norm,\n// leave invalid UTF-8 untouched, in which case it has performance benefits to\n// do so (without changing the semantics). Bidi requires the semantics used here\n// for the bidirule implementation to be compatible with the Go semantics.\n//  They ultimately should perhaps be adopted by all trie implementations, for\n// convenience sake.\n// This unrolled code also boosts performance of the secure/bidirule package by\n// about 30%.\n// So, to remove this code:\n//   - add option to trie generator to define return type.\n//   - always return 1 byte size for ill-formed UTF-8 runes.\n\n// Lookup returns properties for the first rune in s and the width in bytes of\n// its encoding. The size will be 0 if s does not hold enough bytes to complete\n// the encoding.\nfunc Lookup(s []byte) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n\n// LookupString returns properties for the first rune in s and the width in\n// bytes of its encoding. The size will be 0 if s does not hold enough bytes to\n// complete the encoding.\nfunc LookupString(s string) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 228 blocks, 14592 entries, 14592 bytes\n// The third block is the zero block.\nvar bidiValues = [14592]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,\n\t0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a,\n\t0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,\n\t0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,\n\t0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,\n\t0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2881: 0x000c,\n\t0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,\n\t0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,\n\t0x28c6: 0x000c,\n\t0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,\n\t0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,\n\t0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,\n\t0x28e4: 0x000a, 0x28e5: 0x000a,\n\t0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c,\n\t0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,\n\t0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,\n\t0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,\n\t0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,\n\t0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x29b3: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,\n\t0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a0a: 0x000c, 0x2a0b: 0x000c,\n\t0x2a0c: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a6f: 0x000c,\n\t0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,\n\t0x2a76: 0x000c, 0x2a77: 0x000c,\n\t0x2a7e: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a9f: 0x000c, 0x2aa3: 0x000c,\n\t0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,\n\t0x2aaa: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c,\n\t0x2afc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c,\n\t0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,\n\t0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,\n\t0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,\n\t0x2b86: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,\n\t0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c,\n\t0x2c9c: 0x000c, 0x2c9d: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,\n\t0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,\n\t0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,\n\t0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d6b: 0x000c, 0x2d6d: 0x000c,\n\t0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d77: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d9d: 0x000c,\n\t0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,\n\t0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,\n\t0x2daa: 0x000c, 0x2dab: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,\n\t0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,\n\t0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,\n\t0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e07: 0x000c,\n\t0x2e11: 0x000c,\n\t0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,\n\t0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e4a: 0x000c, 0x2e4b: 0x000c,\n\t0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,\n\t0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,\n\t0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,\n\t0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,\n\t0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,\n\t0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f36: 0x000c, 0x2f3a: 0x000c,\n\t0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,\n\t0x2f47: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,\n\t0x3012: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x305d: 0x000c,\n\t0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,\n\t// Block 0xc2, offset 0x3080\n\t0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,\n\t0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,\n\t0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,\n\t0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,\n\t0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,\n\t0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,\n\t0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,\n\t0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,\n\t0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x319b: 0x000a,\n\t// Block 0xc7, offset 0x31c0\n\t0x31d5: 0x000a,\n\t// Block 0xc8, offset 0x3200\n\t0x320f: 0x000a,\n\t// Block 0xc9, offset 0x3240\n\t0x3249: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3283: 0x000a,\n\t0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,\n\t0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,\n\t0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,\n\t0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,\n\t0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,\n\t0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,\n\t0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,\n\t0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,\n\t0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,\n\t0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,\n\t0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,\n\t0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,\n\t0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,\n\t0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,\n\t0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,\n\t0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,\n\t0x32f6: 0x000c, 0x32fb: 0x000c,\n\t0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,\n\t0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,\n\t0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,\n\t0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,\n\t0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,\n\t0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,\n\t0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,\n\t0x3335: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x3344: 0x000c,\n\t0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,\n\t0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,\n\t0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,\n\t0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,\n\t0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,\n\t0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,\n\t0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,\n\t0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,\n\t0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,\n\t0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,\n\t0x33aa: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,\n\t0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,\n\t0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,\n\t0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,\n\t0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,\n\t0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,\n\t0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,\n\t0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,\n\t0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,\n\t0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,\n\t0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,\n\t0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,\n\t0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,\n\t0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,\n\t0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,\n\t0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,\n\t0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,\n\t0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,\n\t0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,\n\t0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,\n\t0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,\n\t0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,\n\t0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,\n\t0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,\n\t0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,\n\t0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,\n\t0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,\n\t0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,\n\t0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,\n\t0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,\n\t// Block 0xd2, offset 0x3480\n\t0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,\n\t0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,\n\t0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,\n\t0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,\n\t0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,\n\t0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,\n\t0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,\n\t0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,\n\t0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a, 0x34d3: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,\n\t0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,\n\t0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,\n\t0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,\n\t0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,\n\t0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,\n\t0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,\n\t0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,\n\t0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,\n\t0x354c: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x35aa: 0x000a, 0x35ab: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,\n\t0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x3690: 0x000a, 0x3691: 0x000a,\n\t0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,\n\t0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,\n\t0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,\n\t0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,\n\t0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,\n\t0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,\n\t0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,\n\t0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,\n\t0x36c6: 0x000a, 0x36c7: 0x000a,\n\t0x36d0: 0x000a, 0x36d1: 0x000a,\n\t0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,\n\t0x36d8: 0x000a, 0x36d9: 0x000a,\n\t0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,\n\t0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,\n\t0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,\n\t0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,\n\t0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,\n\t0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,\n\t0x3706: 0x000a, 0x3707: 0x000a,\n\t0x3710: 0x000a, 0x3711: 0x000a,\n\t0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,\n\t0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,\n\t0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,\n\t0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,\n\t0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,\n\t0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,\n\t0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,\n\t0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,\n\t0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,\n\t0x37aa: 0x000a, 0x37ab: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,\n\t0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x387e: 0x000b, 0x387f: 0x000b,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,\n\t0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,\n\t0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,\n\t0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,\n\t0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,\n\t0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,\n\t0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,\n\t0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,\n\t0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,\n\t0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,\n\t0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,\n\t0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,\n\t0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,\n\t0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,\n\t0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,\n\t0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,\n\t0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,\n\t0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,\n\t0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,\n\t0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,\n\t0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,\n\t0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,\n\t0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,\n\t0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,\n\t0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,\n\t0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xbc, 0x36c: 0xbd,\n\t0x37e: 0xbe,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbf,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc0, 0x3c6: 0xc1,\n\t0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,\n\t0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,\n\t0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xcc,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,\n\t0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,\n\t0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,\n\t0x47f: 0xdf,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xdf,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,\n\t0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,\n\t0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,\n\t0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,\n\t0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,\n\t0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,\n\t0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,\n\t0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16184 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 234 blocks, 14976 entries, 14976 bytes\n// The third block is the zero block.\nvar bidiValues = [14976]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t0x20ff: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d,\n\t0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d,\n\t0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d,\n\t0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d,\n\t0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d,\n\t0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d,\n\t0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d,\n\t0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d,\n\t0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,\n\t0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,\n\t0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,\n\t0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,\n\t0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,\n\t0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,\n\t0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,\n\t0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,\n\t0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d,\n\t0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d,\n\t0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,\n\t0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c,\n\t0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d,\n\t0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,\n\t0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,\n\t0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,\n\t0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d,\n\t0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d,\n\t0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001,\n\t0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001,\n\t0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2941: 0x000c,\n\t0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c,\n\t0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c,\n\t0x2986: 0x000c,\n\t0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a,\n\t0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a,\n\t0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a,\n\t0x29a4: 0x000a, 0x29a5: 0x000a,\n\t0x29bf: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c,\n\t0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c,\n\t0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c,\n\t0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c,\n\t0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a73: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a80: 0x000c, 0x2a81: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,\n\t0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c,\n\t0x2acc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b2f: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c,\n\t0x2b36: 0x000c, 0x2b37: 0x000c,\n\t0x2b3e: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b5f: 0x000c, 0x2b63: 0x000c,\n\t0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b80: 0x000c,\n\t0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c,\n\t0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c,\n\t0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,\n\t0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c,\n\t0x2c06: 0x000c,\n\t0x2c1e: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c,\n\t0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d1c: 0x000c, 0x2d1d: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c,\n\t0x2d7d: 0x000c, 0x2d7f: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d80: 0x000c,\n\t0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a,\n\t0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a,\n\t0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2deb: 0x000c, 0x2ded: 0x000c,\n\t0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df7: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e1d: 0x000c,\n\t0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c,\n\t0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c,\n\t0x2e2a: 0x000c, 0x2e2b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,\n\t0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec7: 0x000c,\n\t0x2ed1: 0x000c,\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,\n\t0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0a: 0x000c, 0x2f0b: 0x000c,\n\t0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,\n\t0x2f18: 0x000c, 0x2f19: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,\n\t0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7d: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,\n\t0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,\n\t0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,\n\t0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,\n\t0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c, 0x2ffa: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3007: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x000c, 0x3051: 0x000c,\n\t0x3055: 0x000c, 0x3057: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x30b3: 0x000c, 0x30b4: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c,\n\t0x3136: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c,\n\t0x3152: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x319d: 0x000c,\n\t0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b,\n\t// Block 0xc7, offset 0x31c0\n\t0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b,\n\t0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a,\n\t0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a,\n\t0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a,\n\t0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a,\n\t// Block 0xcb, offset 0x32c0\n\t0x32db: 0x000a,\n\t// Block 0xcc, offset 0x3300\n\t0x3315: 0x000a,\n\t// Block 0xcd, offset 0x3340\n\t0x334f: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x3389: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c3: 0x000a,\n\t0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002,\n\t0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002,\n\t0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002,\n\t0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002,\n\t0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002,\n\t0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002,\n\t0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002,\n\t0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002,\n\t0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c,\n\t0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c,\n\t0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c,\n\t0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c,\n\t0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c,\n\t0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,\n\t0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c,\n\t0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,\n\t0x3436: 0x000c, 0x343b: 0x000c,\n\t0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c,\n\t0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,\n\t0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c,\n\t0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c,\n\t0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c,\n\t0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c,\n\t0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c,\n\t0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c,\n\t0x3475: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x3484: 0x000c,\n\t0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c,\n\t0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c,\n\t0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c,\n\t0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,\n\t0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,\n\t0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,\n\t0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,\n\t0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,\n\t0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c,\n\t0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,\n\t0x34ea: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001,\n\t0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001,\n\t0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c,\n\t0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001,\n\t0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001,\n\t0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001,\n\t0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001,\n\t0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001,\n\t0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001,\n\t0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001,\n\t0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c,\n\t0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001,\n\t0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001,\n\t0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001,\n\t0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001,\n\t0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001,\n\t0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001,\n\t0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001,\n\t0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001,\n\t0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001,\n\t0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d,\n\t0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d,\n\t0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d,\n\t0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d,\n\t0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d,\n\t0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d,\n\t0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d,\n\t0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d,\n\t0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d,\n\t0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a,\n\t0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a,\n\t0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a,\n\t0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a,\n\t0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a,\n\t0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a,\n\t0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a,\n\t0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a,\n\t0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002,\n\t0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a,\n\t0x368c: 0x000a,\n\t0x36af: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36ea: 0x000a, 0x36eb: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a,\n\t0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a,\n\t0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a,\n\t0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a,\n\t0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a,\n\t0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a,\n\t0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a,\n\t0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a,\n\t0x3806: 0x000a, 0x3807: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a,\n\t0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a,\n\t0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a,\n\t0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a,\n\t0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a,\n\t0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a,\n\t0x3846: 0x000a, 0x3847: 0x000a,\n\t0x3850: 0x000a, 0x3851: 0x000a,\n\t0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a,\n\t0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a,\n\t0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,\n\t0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a,\n\t0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,\n\t0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,\n\t0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,\n\t0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,\n\t0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a,\n\t0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a,\n\t0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,\n\t0x38f6: 0x000a, 0x38fa: 0x000a,\n\t0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a,\n\t0x3950: 0x000a, 0x3951: 0x000a,\n\t0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,\n\t0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a,\n\t0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,\n\t0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,\n\t0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,\n\t0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,\n\t0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,\n\t0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,\n\t0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39fe: 0x000b, 0x39ff: 0x000b,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b,\n\t0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b,\n\t0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b,\n\t0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b,\n\t0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b,\n\t0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b,\n\t0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b,\n\t0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b,\n\t0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b,\n\t0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b,\n\t0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c,\n\t0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c,\n\t0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c,\n\t0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c,\n\t0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c,\n\t0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c,\n\t0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c,\n\t0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c,\n\t0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b,\n\t0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b,\n\t0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9,\n\t0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac,\n\t0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2,\n\t0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6,\n\t0x320: 0xb7,\n\t0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,\n\t0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,\n\t0x33b: 0xc0,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc1, 0x36c: 0xc2,\n\t0x37e: 0xc3,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xc4,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc5, 0x3c6: 0xc6,\n\t0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8,\n\t0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd,\n\t0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xd1,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9,\n\t0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc,\n\t0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3,\n\t0x469: 0xe4,\n\t0x47f: 0xe5,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xe5,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7,\n\t0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6,\n\t0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6,\n\t0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6,\n\t0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6,\n\t0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6,\n\t0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6,\n\t0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16568 bytes (16KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"12.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16896 bytes (16.50 KiB). Checksum: 6f0927067913dc6d.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 240 blocks, 15360 entries, 15360 bytes\n// The third block is the zero block.\nvar bidiValues = [15360]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7a: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19af: 0x000c,\n\t0x19b0: 0x000c, 0x19b1: 0x000c,\n\t0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19ff: 0x000c,\n\t// Block 0x68, offset 0x1a00\n\t0x1a20: 0x000c, 0x1a21: 0x000c, 0x1a22: 0x000c, 0x1a23: 0x000c,\n\t0x1a24: 0x000c, 0x1a25: 0x000c, 0x1a26: 0x000c, 0x1a27: 0x000c, 0x1a28: 0x000c, 0x1a29: 0x000c,\n\t0x1a2a: 0x000c, 0x1a2b: 0x000c, 0x1a2c: 0x000c, 0x1a2d: 0x000c, 0x1a2e: 0x000c, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c, 0x1a32: 0x000c, 0x1a33: 0x000c, 0x1a34: 0x000c, 0x1a35: 0x000c,\n\t0x1a36: 0x000c, 0x1a37: 0x000c, 0x1a38: 0x000c, 0x1a39: 0x000c, 0x1a3a: 0x000c, 0x1a3b: 0x000c,\n\t0x1a3c: 0x000c, 0x1a3d: 0x000c, 0x1a3e: 0x000c, 0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x000a, 0x1a41: 0x000a, 0x1a42: 0x000a, 0x1a43: 0x000a, 0x1a44: 0x000a, 0x1a45: 0x000a,\n\t0x1a46: 0x000a, 0x1a47: 0x000a, 0x1a48: 0x000a, 0x1a49: 0x000a, 0x1a4a: 0x000a, 0x1a4b: 0x000a,\n\t0x1a4c: 0x000a, 0x1a4d: 0x000a, 0x1a4e: 0x000a, 0x1a4f: 0x000a, 0x1a50: 0x000a, 0x1a51: 0x000a,\n\t0x1a52: 0x000a, 0x1a53: 0x000a, 0x1a54: 0x000a, 0x1a55: 0x000a, 0x1a56: 0x000a, 0x1a57: 0x000a,\n\t0x1a58: 0x000a, 0x1a59: 0x000a, 0x1a5a: 0x000a, 0x1a5b: 0x000a, 0x1a5c: 0x000a, 0x1a5d: 0x000a,\n\t0x1a5e: 0x000a, 0x1a5f: 0x000a, 0x1a60: 0x000a, 0x1a61: 0x000a, 0x1a62: 0x003a, 0x1a63: 0x002a,\n\t0x1a64: 0x003a, 0x1a65: 0x002a, 0x1a66: 0x003a, 0x1a67: 0x002a, 0x1a68: 0x003a, 0x1a69: 0x002a,\n\t0x1a6a: 0x000a, 0x1a6b: 0x000a, 0x1a6c: 0x000a, 0x1a6d: 0x000a, 0x1a6e: 0x000a, 0x1a6f: 0x000a,\n\t0x1a70: 0x000a, 0x1a71: 0x000a, 0x1a72: 0x000a, 0x1a73: 0x000a, 0x1a74: 0x000a, 0x1a75: 0x000a,\n\t0x1a76: 0x000a, 0x1a77: 0x000a, 0x1a78: 0x000a, 0x1a79: 0x000a, 0x1a7a: 0x000a, 0x1a7b: 0x000a,\n\t0x1a7c: 0x000a, 0x1a7d: 0x000a, 0x1a7e: 0x000a, 0x1a7f: 0x000a,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x000a, 0x1ae3: 0x000a,\n\t0x1ae4: 0x000a, 0x1ae5: 0x000a, 0x1ae6: 0x000a, 0x1ae7: 0x000a, 0x1ae8: 0x000a, 0x1ae9: 0x000a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1a: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x0009, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a,\n\t0x1b88: 0x003a, 0x1b89: 0x002a, 0x1b8a: 0x003a, 0x1b8b: 0x002a,\n\t0x1b8c: 0x003a, 0x1b8d: 0x002a, 0x1b8e: 0x003a, 0x1b8f: 0x002a, 0x1b90: 0x003a, 0x1b91: 0x002a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x003a, 0x1b95: 0x002a, 0x1b96: 0x003a, 0x1b97: 0x002a,\n\t0x1b98: 0x003a, 0x1b99: 0x002a, 0x1b9a: 0x003a, 0x1b9b: 0x002a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a,\n\t0x1baa: 0x000c, 0x1bab: 0x000c, 0x1bac: 0x000c, 0x1bad: 0x000c,\n\t0x1bb0: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a,\n\t0x1bbd: 0x000a, 0x1bbe: 0x000a, 0x1bbf: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bd9: 0x000c, 0x1bda: 0x000c, 0x1bdb: 0x000a, 0x1bdc: 0x000a,\n\t0x1be0: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c3b: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x000a, 0x1c41: 0x000a, 0x1c42: 0x000a, 0x1c43: 0x000a, 0x1c44: 0x000a, 0x1c45: 0x000a,\n\t0x1c46: 0x000a, 0x1c47: 0x000a, 0x1c48: 0x000a, 0x1c49: 0x000a, 0x1c4a: 0x000a, 0x1c4b: 0x000a,\n\t0x1c4c: 0x000a, 0x1c4d: 0x000a, 0x1c4e: 0x000a, 0x1c4f: 0x000a, 0x1c50: 0x000a, 0x1c51: 0x000a,\n\t0x1c52: 0x000a, 0x1c53: 0x000a, 0x1c54: 0x000a, 0x1c55: 0x000a, 0x1c56: 0x000a, 0x1c57: 0x000a,\n\t0x1c58: 0x000a, 0x1c59: 0x000a, 0x1c5a: 0x000a, 0x1c5b: 0x000a, 0x1c5c: 0x000a, 0x1c5d: 0x000a,\n\t0x1c5e: 0x000a, 0x1c5f: 0x000a, 0x1c60: 0x000a, 0x1c61: 0x000a, 0x1c62: 0x000a, 0x1c63: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c9d: 0x000a,\n\t0x1c9e: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a,\n\t0x1cfc: 0x000a, 0x1cfd: 0x000a, 0x1cfe: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d31: 0x000a, 0x1d32: 0x000a, 0x1d33: 0x000a, 0x1d34: 0x000a, 0x1d35: 0x000a,\n\t0x1d36: 0x000a, 0x1d37: 0x000a, 0x1d38: 0x000a, 0x1d39: 0x000a, 0x1d3a: 0x000a, 0x1d3b: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, 0x1d3f: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d4c: 0x000a, 0x1d4d: 0x000a, 0x1d4e: 0x000a, 0x1d4f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dde: 0x000a, 0x1ddf: 0x000a,\n\t0x1dff: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e10: 0x000a, 0x1e11: 0x000a,\n\t0x1e12: 0x000a, 0x1e13: 0x000a, 0x1e14: 0x000a, 0x1e15: 0x000a, 0x1e16: 0x000a, 0x1e17: 0x000a,\n\t0x1e18: 0x000a, 0x1e19: 0x000a, 0x1e1a: 0x000a, 0x1e1b: 0x000a, 0x1e1c: 0x000a, 0x1e1d: 0x000a,\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a, 0x1e20: 0x000a, 0x1e21: 0x000a, 0x1e22: 0x000a, 0x1e23: 0x000a,\n\t0x1e24: 0x000a, 0x1e25: 0x000a, 0x1e26: 0x000a, 0x1e27: 0x000a, 0x1e28: 0x000a, 0x1e29: 0x000a,\n\t0x1e2a: 0x000a, 0x1e2b: 0x000a, 0x1e2c: 0x000a, 0x1e2d: 0x000a, 0x1e2e: 0x000a, 0x1e2f: 0x000a,\n\t0x1e30: 0x000a, 0x1e31: 0x000a, 0x1e32: 0x000a, 0x1e33: 0x000a, 0x1e34: 0x000a, 0x1e35: 0x000a,\n\t0x1e36: 0x000a, 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, 0x1e3b: 0x000a,\n\t0x1e3c: 0x000a, 0x1e3d: 0x000a, 0x1e3e: 0x000a, 0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x000a, 0x1e41: 0x000a, 0x1e42: 0x000a, 0x1e43: 0x000a, 0x1e44: 0x000a, 0x1e45: 0x000a,\n\t0x1e46: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e8d: 0x000a, 0x1e8e: 0x000a, 0x1e8f: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1eef: 0x000c,\n\t0x1ef0: 0x000c, 0x1ef1: 0x000c, 0x1ef2: 0x000c, 0x1ef3: 0x000a, 0x1ef4: 0x000c, 0x1ef5: 0x000c,\n\t0x1ef6: 0x000c, 0x1ef7: 0x000c, 0x1ef8: 0x000c, 0x1ef9: 0x000c, 0x1efa: 0x000c, 0x1efb: 0x000c,\n\t0x1efc: 0x000c, 0x1efd: 0x000c, 0x1efe: 0x000a, 0x1eff: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f1e: 0x000c, 0x1f1f: 0x000c,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f70: 0x000c, 0x1f71: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x000a, 0x1f81: 0x000a, 0x1f82: 0x000a, 0x1f83: 0x000a, 0x1f84: 0x000a, 0x1f85: 0x000a,\n\t0x1f86: 0x000a, 0x1f87: 0x000a, 0x1f88: 0x000a, 0x1f89: 0x000a, 0x1f8a: 0x000a, 0x1f8b: 0x000a,\n\t0x1f8c: 0x000a, 0x1f8d: 0x000a, 0x1f8e: 0x000a, 0x1f8f: 0x000a, 0x1f90: 0x000a, 0x1f91: 0x000a,\n\t0x1f92: 0x000a, 0x1f93: 0x000a, 0x1f94: 0x000a, 0x1f95: 0x000a, 0x1f96: 0x000a, 0x1f97: 0x000a,\n\t0x1f98: 0x000a, 0x1f99: 0x000a, 0x1f9a: 0x000a, 0x1f9b: 0x000a, 0x1f9c: 0x000a, 0x1f9d: 0x000a,\n\t0x1f9e: 0x000a, 0x1f9f: 0x000a, 0x1fa0: 0x000a, 0x1fa1: 0x000a,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc8: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2002: 0x000c,\n\t0x2006: 0x000c, 0x200b: 0x000c,\n\t0x2025: 0x000c, 0x2026: 0x000c, 0x2028: 0x000a, 0x2029: 0x000a,\n\t0x202a: 0x000a, 0x202b: 0x000a,\n\t0x2038: 0x0004, 0x2039: 0x0004,\n\t// Block 0x81, offset 0x2040\n\t0x2074: 0x000a, 0x2075: 0x000a,\n\t0x2076: 0x000a, 0x2077: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2084: 0x000c, 0x2085: 0x000c,\n\t0x20a0: 0x000c, 0x20a1: 0x000c, 0x20a2: 0x000c, 0x20a3: 0x000c,\n\t0x20a4: 0x000c, 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a7: 0x000c, 0x20a8: 0x000c, 0x20a9: 0x000c,\n\t0x20aa: 0x000c, 0x20ab: 0x000c, 0x20ac: 0x000c, 0x20ad: 0x000c, 0x20ae: 0x000c, 0x20af: 0x000c,\n\t0x20b0: 0x000c, 0x20b1: 0x000c,\n\t0x20bf: 0x000c,\n\t// Block 0x83, offset 0x20c0\n\t0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2107: 0x000c, 0x2108: 0x000c, 0x2109: 0x000c, 0x210a: 0x000c, 0x210b: 0x000c,\n\t0x210c: 0x000c, 0x210d: 0x000c, 0x210e: 0x000c, 0x210f: 0x000c, 0x2110: 0x000c, 0x2111: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2140: 0x000c, 0x2141: 0x000c, 0x2142: 0x000c,\n\t0x2173: 0x000c,\n\t0x2176: 0x000c, 0x2177: 0x000c, 0x2178: 0x000c, 0x2179: 0x000c,\n\t0x217c: 0x000c, 0x217d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x21a5: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e9: 0x000c,\n\t0x21ea: 0x000c, 0x21eb: 0x000c, 0x21ec: 0x000c, 0x21ed: 0x000c, 0x21ee: 0x000c,\n\t0x21f1: 0x000c, 0x21f2: 0x000c, 0x21f5: 0x000c,\n\t0x21f6: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2203: 0x000c,\n\t0x220c: 0x000c,\n\t0x223c: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2270: 0x000c, 0x2272: 0x000c, 0x2273: 0x000c, 0x2274: 0x000c,\n\t0x2277: 0x000c, 0x2278: 0x000c,\n\t0x227e: 0x000c, 0x227f: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2281: 0x000c,\n\t0x22ac: 0x000c, 0x22ad: 0x000c,\n\t0x22b6: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22e5: 0x000c, 0x22e8: 0x000c,\n\t0x22ed: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x231d: 0x0001,\n\t0x231e: 0x000c, 0x231f: 0x0001, 0x2320: 0x0001, 0x2321: 0x0001, 0x2322: 0x0001, 0x2323: 0x0001,\n\t0x2324: 0x0001, 0x2325: 0x0001, 0x2326: 0x0001, 0x2327: 0x0001, 0x2328: 0x0001, 0x2329: 0x0003,\n\t0x232a: 0x0001, 0x232b: 0x0001, 0x232c: 0x0001, 0x232d: 0x0001, 0x232e: 0x0001, 0x232f: 0x0001,\n\t0x2330: 0x0001, 0x2331: 0x0001, 0x2332: 0x0001, 0x2333: 0x0001, 0x2334: 0x0001, 0x2335: 0x0001,\n\t0x2336: 0x0001, 0x2337: 0x0001, 0x2338: 0x0001, 0x2339: 0x0001, 0x233a: 0x0001, 0x233b: 0x0001,\n\t0x233c: 0x0001, 0x233d: 0x0001, 0x233e: 0x0001, 0x233f: 0x0001,\n\t// Block 0x8d, offset 0x2340\n\t0x2340: 0x0001, 0x2341: 0x0001, 0x2342: 0x0001, 0x2343: 0x0001, 0x2344: 0x0001, 0x2345: 0x0001,\n\t0x2346: 0x0001, 0x2347: 0x0001, 0x2348: 0x0001, 0x2349: 0x0001, 0x234a: 0x0001, 0x234b: 0x0001,\n\t0x234c: 0x0001, 0x234d: 0x0001, 0x234e: 0x0001, 0x234f: 0x0001, 0x2350: 0x000d, 0x2351: 0x000d,\n\t0x2352: 0x000d, 0x2353: 0x000d, 0x2354: 0x000d, 0x2355: 0x000d, 0x2356: 0x000d, 0x2357: 0x000d,\n\t0x2358: 0x000d, 0x2359: 0x000d, 0x235a: 0x000d, 0x235b: 0x000d, 0x235c: 0x000d, 0x235d: 0x000d,\n\t0x235e: 0x000d, 0x235f: 0x000d, 0x2360: 0x000d, 0x2361: 0x000d, 0x2362: 0x000d, 0x2363: 0x000d,\n\t0x2364: 0x000d, 0x2365: 0x000d, 0x2366: 0x000d, 0x2367: 0x000d, 0x2368: 0x000d, 0x2369: 0x000d,\n\t0x236a: 0x000d, 0x236b: 0x000d, 0x236c: 0x000d, 0x236d: 0x000d, 0x236e: 0x000d, 0x236f: 0x000d,\n\t0x2370: 0x000d, 0x2371: 0x000d, 0x2372: 0x000d, 0x2373: 0x000d, 0x2374: 0x000d, 0x2375: 0x000d,\n\t0x2376: 0x000d, 0x2377: 0x000d, 0x2378: 0x000d, 0x2379: 0x000d, 0x237a: 0x000d, 0x237b: 0x000d,\n\t0x237c: 0x000d, 0x237d: 0x000d, 0x237e: 0x000d, 0x237f: 0x000d,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x000d, 0x2381: 0x000d, 0x2382: 0x000d, 0x2383: 0x000d, 0x2384: 0x000d, 0x2385: 0x000d,\n\t0x2386: 0x000d, 0x2387: 0x000d, 0x2388: 0x000d, 0x2389: 0x000d, 0x238a: 0x000d, 0x238b: 0x000d,\n\t0x238c: 0x000d, 0x238d: 0x000d, 0x238e: 0x000d, 0x238f: 0x000d, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000a, 0x23bf: 0x000a,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000b, 0x23d1: 0x000b,\n\t0x23d2: 0x000b, 0x23d3: 0x000b, 0x23d4: 0x000b, 0x23d5: 0x000b, 0x23d6: 0x000b, 0x23d7: 0x000b,\n\t0x23d8: 0x000b, 0x23d9: 0x000b, 0x23da: 0x000b, 0x23db: 0x000b, 0x23dc: 0x000b, 0x23dd: 0x000b,\n\t0x23de: 0x000b, 0x23df: 0x000b, 0x23e0: 0x000b, 0x23e1: 0x000b, 0x23e2: 0x000b, 0x23e3: 0x000b,\n\t0x23e4: 0x000b, 0x23e5: 0x000b, 0x23e6: 0x000b, 0x23e7: 0x000b, 0x23e8: 0x000b, 0x23e9: 0x000b,\n\t0x23ea: 0x000b, 0x23eb: 0x000b, 0x23ec: 0x000b, 0x23ed: 0x000b, 0x23ee: 0x000b, 0x23ef: 0x000b,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000a, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000c, 0x2401: 0x000c, 0x2402: 0x000c, 0x2403: 0x000c, 0x2404: 0x000c, 0x2405: 0x000c,\n\t0x2406: 0x000c, 0x2407: 0x000c, 0x2408: 0x000c, 0x2409: 0x000c, 0x240a: 0x000c, 0x240b: 0x000c,\n\t0x240c: 0x000c, 0x240d: 0x000c, 0x240e: 0x000c, 0x240f: 0x000c, 0x2410: 0x000a, 0x2411: 0x000a,\n\t0x2412: 0x000a, 0x2413: 0x000a, 0x2414: 0x000a, 0x2415: 0x000a, 0x2416: 0x000a, 0x2417: 0x000a,\n\t0x2418: 0x000a, 0x2419: 0x000a,\n\t0x2420: 0x000c, 0x2421: 0x000c, 0x2422: 0x000c, 0x2423: 0x000c,\n\t0x2424: 0x000c, 0x2425: 0x000c, 0x2426: 0x000c, 0x2427: 0x000c, 0x2428: 0x000c, 0x2429: 0x000c,\n\t0x242a: 0x000c, 0x242b: 0x000c, 0x242c: 0x000c, 0x242d: 0x000c, 0x242e: 0x000c, 0x242f: 0x000c,\n\t0x2430: 0x000a, 0x2431: 0x000a, 0x2432: 0x000a, 0x2433: 0x000a, 0x2434: 0x000a, 0x2435: 0x000a,\n\t0x2436: 0x000a, 0x2437: 0x000a, 0x2438: 0x000a, 0x2439: 0x000a, 0x243a: 0x000a, 0x243b: 0x000a,\n\t0x243c: 0x000a, 0x243d: 0x000a, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,\n\t0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,\n\t0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x0006, 0x2451: 0x000a,\n\t0x2452: 0x0006, 0x2454: 0x000a, 0x2455: 0x0006, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x009a, 0x245a: 0x008a, 0x245b: 0x007a, 0x245c: 0x006a, 0x245d: 0x009a,\n\t0x245e: 0x008a, 0x245f: 0x0004, 0x2460: 0x000a, 0x2461: 0x000a, 0x2462: 0x0003, 0x2463: 0x0003,\n\t0x2464: 0x000a, 0x2465: 0x000a, 0x2466: 0x000a, 0x2468: 0x000a, 0x2469: 0x0004,\n\t0x246a: 0x0004, 0x246b: 0x000a,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000d, 0x2491: 0x000d,\n\t0x2492: 0x000d, 0x2493: 0x000d, 0x2494: 0x000d, 0x2495: 0x000d, 0x2496: 0x000d, 0x2497: 0x000d,\n\t0x2498: 0x000d, 0x2499: 0x000d, 0x249a: 0x000d, 0x249b: 0x000d, 0x249c: 0x000d, 0x249d: 0x000d,\n\t0x249e: 0x000d, 0x249f: 0x000d, 0x24a0: 0x000d, 0x24a1: 0x000d, 0x24a2: 0x000d, 0x24a3: 0x000d,\n\t0x24a4: 0x000d, 0x24a5: 0x000d, 0x24a6: 0x000d, 0x24a7: 0x000d, 0x24a8: 0x000d, 0x24a9: 0x000d,\n\t0x24aa: 0x000d, 0x24ab: 0x000d, 0x24ac: 0x000d, 0x24ad: 0x000d, 0x24ae: 0x000d, 0x24af: 0x000d,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000b,\n\t// Block 0x93, offset 0x24c0\n\t0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x0004, 0x24c4: 0x0004, 0x24c5: 0x0004,\n\t0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x003a, 0x24c9: 0x002a, 0x24ca: 0x000a, 0x24cb: 0x0003,\n\t0x24cc: 0x0006, 0x24cd: 0x0003, 0x24ce: 0x0006, 0x24cf: 0x0006, 0x24d0: 0x0002, 0x24d1: 0x0002,\n\t0x24d2: 0x0002, 0x24d3: 0x0002, 0x24d4: 0x0002, 0x24d5: 0x0002, 0x24d6: 0x0002, 0x24d7: 0x0002,\n\t0x24d8: 0x0002, 0x24d9: 0x0002, 0x24da: 0x0006, 0x24db: 0x000a, 0x24dc: 0x000a, 0x24dd: 0x000a,\n\t0x24de: 0x000a, 0x24df: 0x000a, 0x24e0: 0x000a,\n\t0x24fb: 0x005a,\n\t0x24fc: 0x000a, 0x24fd: 0x004a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a,\n\t0x251b: 0x005a, 0x251c: 0x000a, 0x251d: 0x004a,\n\t0x251e: 0x000a, 0x251f: 0x00fa, 0x2520: 0x00ea, 0x2521: 0x000a, 0x2522: 0x003a, 0x2523: 0x002a,\n\t0x2524: 0x000a, 0x2525: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2560: 0x0004, 0x2561: 0x0004, 0x2562: 0x000a, 0x2563: 0x000a,\n\t0x2564: 0x000a, 0x2565: 0x0004, 0x2566: 0x0004, 0x2568: 0x000a, 0x2569: 0x000a,\n\t0x256a: 0x000a, 0x256b: 0x000a, 0x256c: 0x000a, 0x256d: 0x000a, 0x256e: 0x000a,\n\t0x2570: 0x000b, 0x2571: 0x000b, 0x2572: 0x000b, 0x2573: 0x000b, 0x2574: 0x000b, 0x2575: 0x000b,\n\t0x2576: 0x000b, 0x2577: 0x000b, 0x2578: 0x000b, 0x2579: 0x000a, 0x257a: 0x000a, 0x257b: 0x000a,\n\t0x257c: 0x000a, 0x257d: 0x000a, 0x257e: 0x000b, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a, 0x25c1: 0x000a, 0x25c2: 0x000a, 0x25c3: 0x000a, 0x25c4: 0x000a, 0x25c5: 0x000a,\n\t0x25c6: 0x000a, 0x25c7: 0x000a, 0x25c8: 0x000a, 0x25c9: 0x000a, 0x25ca: 0x000a, 0x25cb: 0x000a,\n\t0x25cc: 0x000a, 0x25d0: 0x000a, 0x25d1: 0x000a,\n\t0x25d2: 0x000a, 0x25d3: 0x000a, 0x25d4: 0x000a, 0x25d5: 0x000a, 0x25d6: 0x000a, 0x25d7: 0x000a,\n\t0x25d8: 0x000a, 0x25d9: 0x000a, 0x25da: 0x000a, 0x25db: 0x000a,\n\t0x25e0: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x263d: 0x000c,\n\t// Block 0x99, offset 0x2640\n\t0x2660: 0x000c, 0x2661: 0x0002, 0x2662: 0x0002, 0x2663: 0x0002,\n\t0x2664: 0x0002, 0x2665: 0x0002, 0x2666: 0x0002, 0x2667: 0x0002, 0x2668: 0x0002, 0x2669: 0x0002,\n\t0x266a: 0x0002, 0x266b: 0x0002, 0x266c: 0x0002, 0x266d: 0x0002, 0x266e: 0x0002, 0x266f: 0x0002,\n\t0x2670: 0x0002, 0x2671: 0x0002, 0x2672: 0x0002, 0x2673: 0x0002, 0x2674: 0x0002, 0x2675: 0x0002,\n\t0x2676: 0x0002, 0x2677: 0x0002, 0x2678: 0x0002, 0x2679: 0x0002, 0x267a: 0x0002, 0x267b: 0x0002,\n\t// Block 0x9a, offset 0x2680\n\t0x26b6: 0x000c, 0x26b7: 0x000c, 0x26b8: 0x000c, 0x26b9: 0x000c, 0x26ba: 0x000c,\n\t// Block 0x9b, offset 0x26c0\n\t0x26c0: 0x0001, 0x26c1: 0x0001, 0x26c2: 0x0001, 0x26c3: 0x0001, 0x26c4: 0x0001, 0x26c5: 0x0001,\n\t0x26c6: 0x0001, 0x26c7: 0x0001, 0x26c8: 0x0001, 0x26c9: 0x0001, 0x26ca: 0x0001, 0x26cb: 0x0001,\n\t0x26cc: 0x0001, 0x26cd: 0x0001, 0x26ce: 0x0001, 0x26cf: 0x0001, 0x26d0: 0x0001, 0x26d1: 0x0001,\n\t0x26d2: 0x0001, 0x26d3: 0x0001, 0x26d4: 0x0001, 0x26d5: 0x0001, 0x26d6: 0x0001, 0x26d7: 0x0001,\n\t0x26d8: 0x0001, 0x26d9: 0x0001, 0x26da: 0x0001, 0x26db: 0x0001, 0x26dc: 0x0001, 0x26dd: 0x0001,\n\t0x26de: 0x0001, 0x26df: 0x0001, 0x26e0: 0x0001, 0x26e1: 0x0001, 0x26e2: 0x0001, 0x26e3: 0x0001,\n\t0x26e4: 0x0001, 0x26e5: 0x0001, 0x26e6: 0x0001, 0x26e7: 0x0001, 0x26e8: 0x0001, 0x26e9: 0x0001,\n\t0x26ea: 0x0001, 0x26eb: 0x0001, 0x26ec: 0x0001, 0x26ed: 0x0001, 0x26ee: 0x0001, 0x26ef: 0x0001,\n\t0x26f0: 0x0001, 0x26f1: 0x0001, 0x26f2: 0x0001, 0x26f3: 0x0001, 0x26f4: 0x0001, 0x26f5: 0x0001,\n\t0x26f6: 0x0001, 0x26f7: 0x0001, 0x26f8: 0x0001, 0x26f9: 0x0001, 0x26fa: 0x0001, 0x26fb: 0x0001,\n\t0x26fc: 0x0001, 0x26fd: 0x0001, 0x26fe: 0x0001, 0x26ff: 0x0001,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x000a, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x000c, 0x2742: 0x000c, 0x2743: 0x000c, 0x2744: 0x0001, 0x2745: 0x000c,\n\t0x2746: 0x000c, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x000c, 0x274d: 0x000c, 0x274e: 0x000c, 0x274f: 0x000c, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x000c, 0x27a6: 0x000c, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x000a, 0x27fa: 0x000a, 0x27fb: 0x000a,\n\t0x27fc: 0x000a, 0x27fd: 0x000a, 0x27fe: 0x000a, 0x27ff: 0x000a,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x000d, 0x2801: 0x000d, 0x2802: 0x000d, 0x2803: 0x000d, 0x2804: 0x000d, 0x2805: 0x000d,\n\t0x2806: 0x000d, 0x2807: 0x000d, 0x2808: 0x000d, 0x2809: 0x000d, 0x280a: 0x000d, 0x280b: 0x000d,\n\t0x280c: 0x000d, 0x280d: 0x000d, 0x280e: 0x000d, 0x280f: 0x000d, 0x2810: 0x000d, 0x2811: 0x000d,\n\t0x2812: 0x000d, 0x2813: 0x000d, 0x2814: 0x000d, 0x2815: 0x000d, 0x2816: 0x000d, 0x2817: 0x000d,\n\t0x2818: 0x000d, 0x2819: 0x000d, 0x281a: 0x000d, 0x281b: 0x000d, 0x281c: 0x000d, 0x281d: 0x000d,\n\t0x281e: 0x000d, 0x281f: 0x000d, 0x2820: 0x000d, 0x2821: 0x000d, 0x2822: 0x000d, 0x2823: 0x000d,\n\t0x2824: 0x000c, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x000c, 0x2828: 0x000d, 0x2829: 0x000d,\n\t0x282a: 0x000d, 0x282b: 0x000d, 0x282c: 0x000d, 0x282d: 0x000d, 0x282e: 0x000d, 0x282f: 0x000d,\n\t0x2830: 0x0005, 0x2831: 0x0005, 0x2832: 0x0005, 0x2833: 0x0005, 0x2834: 0x0005, 0x2835: 0x0005,\n\t0x2836: 0x0005, 0x2837: 0x0005, 0x2838: 0x0005, 0x2839: 0x0005, 0x283a: 0x000d, 0x283b: 0x000d,\n\t0x283c: 0x000d, 0x283d: 0x000d, 0x283e: 0x000d, 0x283f: 0x000d,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,\n\t0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,\n\t0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,\n\t0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x000d, 0x28b1: 0x000d, 0x28b2: 0x000d, 0x28b3: 0x000d, 0x28b4: 0x000d, 0x28b5: 0x000d,\n\t0x28b6: 0x000d, 0x28b7: 0x000d, 0x28b8: 0x000d, 0x28b9: 0x000d, 0x28ba: 0x000d, 0x28bb: 0x000d,\n\t0x28bc: 0x000d, 0x28bd: 0x000d, 0x28be: 0x000d, 0x28bf: 0x000d,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000c, 0x28c7: 0x000c, 0x28c8: 0x000c, 0x28c9: 0x000c, 0x28ca: 0x000c, 0x28cb: 0x000c,\n\t0x28cc: 0x000c, 0x28cd: 0x000c, 0x28ce: 0x000c, 0x28cf: 0x000c, 0x28d0: 0x000c, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000d, 0x28e5: 0x000d, 0x28e6: 0x000d, 0x28e7: 0x000d, 0x28e8: 0x000d, 0x28e9: 0x000d,\n\t0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,\n\t0x28f0: 0x0001, 0x28f1: 0x0001, 0x28f2: 0x0001, 0x28f3: 0x0001, 0x28f4: 0x0001, 0x28f5: 0x0001,\n\t0x28f6: 0x0001, 0x28f7: 0x0001, 0x28f8: 0x0001, 0x28f9: 0x0001, 0x28fa: 0x0001, 0x28fb: 0x0001,\n\t0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001,\n\t// Block 0xa4, offset 0x2900\n\t0x2901: 0x000c,\n\t0x2938: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c, 0x293b: 0x000c,\n\t0x293c: 0x000c, 0x293d: 0x000c, 0x293e: 0x000c, 0x293f: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c, 0x2943: 0x000c, 0x2944: 0x000c, 0x2945: 0x000c,\n\t0x2946: 0x000c,\n\t0x2952: 0x000a, 0x2953: 0x000a, 0x2954: 0x000a, 0x2955: 0x000a, 0x2956: 0x000a, 0x2957: 0x000a,\n\t0x2958: 0x000a, 0x2959: 0x000a, 0x295a: 0x000a, 0x295b: 0x000a, 0x295c: 0x000a, 0x295d: 0x000a,\n\t0x295e: 0x000a, 0x295f: 0x000a, 0x2960: 0x000a, 0x2961: 0x000a, 0x2962: 0x000a, 0x2963: 0x000a,\n\t0x2964: 0x000a, 0x2965: 0x000a,\n\t0x297f: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c,\n\t0x29b3: 0x000c, 0x29b4: 0x000c, 0x29b5: 0x000c,\n\t0x29b6: 0x000c, 0x29b9: 0x000c, 0x29ba: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c, 0x29c2: 0x000c,\n\t0x29e7: 0x000c, 0x29e8: 0x000c, 0x29e9: 0x000c,\n\t0x29ea: 0x000c, 0x29eb: 0x000c, 0x29ed: 0x000c, 0x29ee: 0x000c, 0x29ef: 0x000c,\n\t0x29f0: 0x000c, 0x29f1: 0x000c, 0x29f2: 0x000c, 0x29f3: 0x000c, 0x29f4: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a33: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x000c, 0x2a41: 0x000c,\n\t0x2a76: 0x000c, 0x2a77: 0x000c, 0x2a78: 0x000c, 0x2a79: 0x000c, 0x2a7a: 0x000c, 0x2a7b: 0x000c,\n\t0x2a7c: 0x000c, 0x2a7d: 0x000c, 0x2a7e: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a89: 0x000c, 0x2a8a: 0x000c, 0x2a8b: 0x000c,\n\t0x2a8c: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2aef: 0x000c,\n\t0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af4: 0x000c,\n\t0x2af6: 0x000c, 0x2af7: 0x000c,\n\t0x2afe: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b1f: 0x000c, 0x2b23: 0x000c,\n\t0x2b24: 0x000c, 0x2b25: 0x000c, 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,\n\t0x2b2a: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c,\n\t0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,\n\t0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,\n\t0x2bc6: 0x000c,\n\t0x2bde: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,\n\t0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,\n\t0x2c3f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2cdc: 0x000c, 0x2cdd: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3d: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c,\n\t0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,\n\t0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,\n\t0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,\n\t// Block 0xb6, offset 0x2d80\n\t0x2dab: 0x000c, 0x2dad: 0x000c,\n\t0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db7: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2ddd: 0x000c,\n\t0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,\n\t0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,\n\t0x2dea: 0x000c, 0x2deb: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e2f: 0x000c,\n\t0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,\n\t0x2e5a: 0x000c, 0x2e5b: 0x000c,\n\t0x2e60: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,\n\t0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec7: 0x000c,\n\t0x2ed1: 0x000c,\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,\n\t0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0a: 0x000c, 0x2f0b: 0x000c,\n\t0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,\n\t0x2f18: 0x000c, 0x2f19: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,\n\t0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7d: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,\n\t0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,\n\t0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,\n\t0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,\n\t0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c, 0x2ffa: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3007: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x000c, 0x3051: 0x000c,\n\t0x3055: 0x000c, 0x3057: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x30b3: 0x000c, 0x30b4: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30d5: 0x000a, 0x30d6: 0x000a, 0x30d7: 0x000a,\n\t0x30d8: 0x000a, 0x30d9: 0x000a, 0x30da: 0x000a, 0x30db: 0x000a, 0x30dc: 0x000a, 0x30dd: 0x0004,\n\t0x30de: 0x0004, 0x30df: 0x0004, 0x30e0: 0x0004, 0x30e1: 0x000a, 0x30e2: 0x000a, 0x30e3: 0x000a,\n\t0x30e4: 0x000a, 0x30e5: 0x000a, 0x30e6: 0x000a, 0x30e7: 0x000a, 0x30e8: 0x000a, 0x30e9: 0x000a,\n\t0x30ea: 0x000a, 0x30eb: 0x000a, 0x30ec: 0x000a, 0x30ed: 0x000a, 0x30ee: 0x000a, 0x30ef: 0x000a,\n\t0x30f0: 0x000a, 0x30f1: 0x000a,\n\t// Block 0xc4, offset 0x3100\n\t0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x318f: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d2: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3222: 0x000a,\n\t// Block 0xc9, offset 0x3240\n\t0x325d: 0x000c,\n\t0x325e: 0x000c, 0x3260: 0x000b, 0x3261: 0x000b, 0x3262: 0x000b, 0x3263: 0x000b,\n\t// Block 0xca, offset 0x3280\n\t0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,\n\t0x32b3: 0x000b, 0x32b4: 0x000b, 0x32b5: 0x000b,\n\t0x32b6: 0x000b, 0x32b7: 0x000b, 0x32b8: 0x000b, 0x32b9: 0x000b, 0x32ba: 0x000b, 0x32bb: 0x000c,\n\t0x32bc: 0x000c, 0x32bd: 0x000c, 0x32be: 0x000c, 0x32bf: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c5: 0x000c,\n\t0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,\n\t0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000a, 0x3301: 0x000a, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000a,\n\t// Block 0xcd, offset 0x3340\n\t0x3340: 0x000a, 0x3341: 0x000a, 0x3342: 0x000a, 0x3343: 0x000a, 0x3344: 0x000a, 0x3345: 0x000a,\n\t0x3346: 0x000a, 0x3347: 0x000a, 0x3348: 0x000a, 0x3349: 0x000a, 0x334a: 0x000a, 0x334b: 0x000a,\n\t0x334c: 0x000a, 0x334d: 0x000a, 0x334e: 0x000a, 0x334f: 0x000a, 0x3350: 0x000a, 0x3351: 0x000a,\n\t0x3352: 0x000a, 0x3353: 0x000a, 0x3354: 0x000a, 0x3355: 0x000a, 0x3356: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x339b: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33d5: 0x000a,\n\t// Block 0xd0, offset 0x3400\n\t0x340f: 0x000a,\n\t// Block 0xd1, offset 0x3440\n\t0x3449: 0x000a,\n\t// Block 0xd2, offset 0x3480\n\t0x3483: 0x000a,\n\t0x348e: 0x0002, 0x348f: 0x0002, 0x3490: 0x0002, 0x3491: 0x0002,\n\t0x3492: 0x0002, 0x3493: 0x0002, 0x3494: 0x0002, 0x3495: 0x0002, 0x3496: 0x0002, 0x3497: 0x0002,\n\t0x3498: 0x0002, 0x3499: 0x0002, 0x349a: 0x0002, 0x349b: 0x0002, 0x349c: 0x0002, 0x349d: 0x0002,\n\t0x349e: 0x0002, 0x349f: 0x0002, 0x34a0: 0x0002, 0x34a1: 0x0002, 0x34a2: 0x0002, 0x34a3: 0x0002,\n\t0x34a4: 0x0002, 0x34a5: 0x0002, 0x34a6: 0x0002, 0x34a7: 0x0002, 0x34a8: 0x0002, 0x34a9: 0x0002,\n\t0x34aa: 0x0002, 0x34ab: 0x0002, 0x34ac: 0x0002, 0x34ad: 0x0002, 0x34ae: 0x0002, 0x34af: 0x0002,\n\t0x34b0: 0x0002, 0x34b1: 0x0002, 0x34b2: 0x0002, 0x34b3: 0x0002, 0x34b4: 0x0002, 0x34b5: 0x0002,\n\t0x34b6: 0x0002, 0x34b7: 0x0002, 0x34b8: 0x0002, 0x34b9: 0x0002, 0x34ba: 0x0002, 0x34bb: 0x0002,\n\t0x34bc: 0x0002, 0x34bd: 0x0002, 0x34be: 0x0002, 0x34bf: 0x0002,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,\n\t0x34c6: 0x000c, 0x34c7: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,\n\t0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,\n\t0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,\n\t0x34d8: 0x000c, 0x34d9: 0x000c, 0x34da: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,\n\t0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e2: 0x000c, 0x34e3: 0x000c,\n\t0x34e4: 0x000c, 0x34e5: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,\n\t0x34ea: 0x000c, 0x34eb: 0x000c, 0x34ec: 0x000c, 0x34ed: 0x000c, 0x34ee: 0x000c, 0x34ef: 0x000c,\n\t0x34f0: 0x000c, 0x34f1: 0x000c, 0x34f2: 0x000c, 0x34f3: 0x000c, 0x34f4: 0x000c, 0x34f5: 0x000c,\n\t0x34f6: 0x000c, 0x34fb: 0x000c,\n\t0x34fc: 0x000c, 0x34fd: 0x000c, 0x34fe: 0x000c, 0x34ff: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x000c, 0x3501: 0x000c, 0x3502: 0x000c, 0x3503: 0x000c, 0x3504: 0x000c, 0x3505: 0x000c,\n\t0x3506: 0x000c, 0x3507: 0x000c, 0x3508: 0x000c, 0x3509: 0x000c, 0x350a: 0x000c, 0x350b: 0x000c,\n\t0x350c: 0x000c, 0x350d: 0x000c, 0x350e: 0x000c, 0x350f: 0x000c, 0x3510: 0x000c, 0x3511: 0x000c,\n\t0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x000c,\n\t0x3518: 0x000c, 0x3519: 0x000c, 0x351a: 0x000c, 0x351b: 0x000c, 0x351c: 0x000c, 0x351d: 0x000c,\n\t0x351e: 0x000c, 0x351f: 0x000c, 0x3520: 0x000c, 0x3521: 0x000c, 0x3522: 0x000c, 0x3523: 0x000c,\n\t0x3524: 0x000c, 0x3525: 0x000c, 0x3526: 0x000c, 0x3527: 0x000c, 0x3528: 0x000c, 0x3529: 0x000c,\n\t0x352a: 0x000c, 0x352b: 0x000c, 0x352c: 0x000c,\n\t0x3535: 0x000c,\n\t// Block 0xd5, offset 0x3540\n\t0x3544: 0x000c,\n\t0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c,\n\t0x355e: 0x000c, 0x355f: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c,\n\t0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c,\n\t0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c, 0x356e: 0x000c, 0x356f: 0x000c,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c,\n\t0x3586: 0x000c, 0x3588: 0x000c, 0x3589: 0x000c, 0x358a: 0x000c, 0x358b: 0x000c,\n\t0x358c: 0x000c, 0x358d: 0x000c, 0x358e: 0x000c, 0x358f: 0x000c, 0x3590: 0x000c, 0x3591: 0x000c,\n\t0x3592: 0x000c, 0x3593: 0x000c, 0x3594: 0x000c, 0x3595: 0x000c, 0x3596: 0x000c, 0x3597: 0x000c,\n\t0x3598: 0x000c, 0x359b: 0x000c, 0x359c: 0x000c, 0x359d: 0x000c,\n\t0x359e: 0x000c, 0x359f: 0x000c, 0x35a0: 0x000c, 0x35a1: 0x000c, 0x35a3: 0x000c,\n\t0x35a4: 0x000c, 0x35a6: 0x000c, 0x35a7: 0x000c, 0x35a8: 0x000c, 0x35a9: 0x000c,\n\t0x35aa: 0x000c,\n\t// Block 0xd7, offset 0x35c0\n\t0x35ec: 0x000c, 0x35ed: 0x000c, 0x35ee: 0x000c, 0x35ef: 0x000c,\n\t0x35ff: 0x0004,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x0001, 0x3601: 0x0001, 0x3602: 0x0001, 0x3603: 0x0001, 0x3604: 0x0001, 0x3605: 0x0001,\n\t0x3606: 0x0001, 0x3607: 0x0001, 0x3608: 0x0001, 0x3609: 0x0001, 0x360a: 0x0001, 0x360b: 0x0001,\n\t0x360c: 0x0001, 0x360d: 0x0001, 0x360e: 0x0001, 0x360f: 0x0001, 0x3610: 0x000c, 0x3611: 0x000c,\n\t0x3612: 0x000c, 0x3613: 0x000c, 0x3614: 0x000c, 0x3615: 0x000c, 0x3616: 0x000c, 0x3617: 0x0001,\n\t0x3618: 0x0001, 0x3619: 0x0001, 0x361a: 0x0001, 0x361b: 0x0001, 0x361c: 0x0001, 0x361d: 0x0001,\n\t0x361e: 0x0001, 0x361f: 0x0001, 0x3620: 0x0001, 0x3621: 0x0001, 0x3622: 0x0001, 0x3623: 0x0001,\n\t0x3624: 0x0001, 0x3625: 0x0001, 0x3626: 0x0001, 0x3627: 0x0001, 0x3628: 0x0001, 0x3629: 0x0001,\n\t0x362a: 0x0001, 0x362b: 0x0001, 0x362c: 0x0001, 0x362d: 0x0001, 0x362e: 0x0001, 0x362f: 0x0001,\n\t0x3630: 0x0001, 0x3631: 0x0001, 0x3632: 0x0001, 0x3633: 0x0001, 0x3634: 0x0001, 0x3635: 0x0001,\n\t0x3636: 0x0001, 0x3637: 0x0001, 0x3638: 0x0001, 0x3639: 0x0001, 0x363a: 0x0001, 0x363b: 0x0001,\n\t0x363c: 0x0001, 0x363d: 0x0001, 0x363e: 0x0001, 0x363f: 0x0001,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x0001, 0x3641: 0x0001, 0x3642: 0x0001, 0x3643: 0x0001, 0x3644: 0x000c, 0x3645: 0x000c,\n\t0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x0001,\n\t0x364c: 0x0001, 0x364d: 0x0001, 0x364e: 0x0001, 0x364f: 0x0001, 0x3650: 0x0001, 0x3651: 0x0001,\n\t0x3652: 0x0001, 0x3653: 0x0001, 0x3654: 0x0001, 0x3655: 0x0001, 0x3656: 0x0001, 0x3657: 0x0001,\n\t0x3658: 0x0001, 0x3659: 0x0001, 0x365a: 0x0001, 0x365b: 0x0001, 0x365c: 0x0001, 0x365d: 0x0001,\n\t0x365e: 0x0001, 0x365f: 0x0001, 0x3660: 0x0001, 0x3661: 0x0001, 0x3662: 0x0001, 0x3663: 0x0001,\n\t0x3664: 0x0001, 0x3665: 0x0001, 0x3666: 0x0001, 0x3667: 0x0001, 0x3668: 0x0001, 0x3669: 0x0001,\n\t0x366a: 0x0001, 0x366b: 0x0001, 0x366c: 0x0001, 0x366d: 0x0001, 0x366e: 0x0001, 0x366f: 0x0001,\n\t0x3670: 0x0001, 0x3671: 0x0001, 0x3672: 0x0001, 0x3673: 0x0001, 0x3674: 0x0001, 0x3675: 0x0001,\n\t0x3676: 0x0001, 0x3677: 0x0001, 0x3678: 0x0001, 0x3679: 0x0001, 0x367a: 0x0001, 0x367b: 0x0001,\n\t0x367c: 0x0001, 0x367d: 0x0001, 0x367e: 0x0001, 0x367f: 0x0001,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000d, 0x3681: 0x000d, 0x3682: 0x000d, 0x3683: 0x000d, 0x3684: 0x000d, 0x3685: 0x000d,\n\t0x3686: 0x000d, 0x3687: 0x000d, 0x3688: 0x000d, 0x3689: 0x000d, 0x368a: 0x000d, 0x368b: 0x000d,\n\t0x368c: 0x000d, 0x368d: 0x000d, 0x368e: 0x000d, 0x368f: 0x000d, 0x3690: 0x0001, 0x3691: 0x0001,\n\t0x3692: 0x0001, 0x3693: 0x0001, 0x3694: 0x0001, 0x3695: 0x0001, 0x3696: 0x0001, 0x3697: 0x0001,\n\t0x3698: 0x0001, 0x3699: 0x0001, 0x369a: 0x0001, 0x369b: 0x0001, 0x369c: 0x0001, 0x369d: 0x0001,\n\t0x369e: 0x0001, 0x369f: 0x0001, 0x36a0: 0x0001, 0x36a1: 0x0001, 0x36a2: 0x0001, 0x36a3: 0x0001,\n\t0x36a4: 0x0001, 0x36a5: 0x0001, 0x36a6: 0x0001, 0x36a7: 0x0001, 0x36a8: 0x0001, 0x36a9: 0x0001,\n\t0x36aa: 0x0001, 0x36ab: 0x0001, 0x36ac: 0x0001, 0x36ad: 0x0001, 0x36ae: 0x0001, 0x36af: 0x0001,\n\t0x36b0: 0x0001, 0x36b1: 0x0001, 0x36b2: 0x0001, 0x36b3: 0x0001, 0x36b4: 0x0001, 0x36b5: 0x0001,\n\t0x36b6: 0x0001, 0x36b7: 0x0001, 0x36b8: 0x0001, 0x36b9: 0x0001, 0x36ba: 0x0001, 0x36bb: 0x0001,\n\t0x36bc: 0x0001, 0x36bd: 0x0001, 0x36be: 0x0001, 0x36bf: 0x0001,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000d, 0x36c1: 0x000d, 0x36c2: 0x000d, 0x36c3: 0x000d, 0x36c4: 0x000d, 0x36c5: 0x000d,\n\t0x36c6: 0x000d, 0x36c7: 0x000d, 0x36c8: 0x000d, 0x36c9: 0x000d, 0x36ca: 0x000d, 0x36cb: 0x000d,\n\t0x36cc: 0x000d, 0x36cd: 0x000d, 0x36ce: 0x000d, 0x36cf: 0x000d, 0x36d0: 0x000d, 0x36d1: 0x000d,\n\t0x36d2: 0x000d, 0x36d3: 0x000d, 0x36d4: 0x000d, 0x36d5: 0x000d, 0x36d6: 0x000d, 0x36d7: 0x000d,\n\t0x36d8: 0x000d, 0x36d9: 0x000d, 0x36da: 0x000d, 0x36db: 0x000d, 0x36dc: 0x000d, 0x36dd: 0x000d,\n\t0x36de: 0x000d, 0x36df: 0x000d, 0x36e0: 0x000d, 0x36e1: 0x000d, 0x36e2: 0x000d, 0x36e3: 0x000d,\n\t0x36e4: 0x000d, 0x36e5: 0x000d, 0x36e6: 0x000d, 0x36e7: 0x000d, 0x36e8: 0x000d, 0x36e9: 0x000d,\n\t0x36ea: 0x000d, 0x36eb: 0x000d, 0x36ec: 0x000d, 0x36ed: 0x000d, 0x36ee: 0x000d, 0x36ef: 0x000d,\n\t0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000d, 0x36f3: 0x000d, 0x36f4: 0x000d, 0x36f5: 0x000d,\n\t0x36f6: 0x000d, 0x36f7: 0x000d, 0x36f8: 0x000d, 0x36f9: 0x000d, 0x36fa: 0x000d, 0x36fb: 0x000d,\n\t0x36fc: 0x000d, 0x36fd: 0x000d, 0x36fe: 0x000d, 0x36ff: 0x000d,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,\n\t0x3706: 0x000a, 0x3707: 0x000a, 0x3708: 0x000a, 0x3709: 0x000a, 0x370a: 0x000a, 0x370b: 0x000a,\n\t0x370c: 0x000a, 0x370d: 0x000a, 0x370e: 0x000a, 0x370f: 0x000a, 0x3710: 0x000a, 0x3711: 0x000a,\n\t0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,\n\t0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,\n\t0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,\n\t0x372a: 0x000a, 0x372b: 0x000a,\n\t0x3730: 0x000a, 0x3731: 0x000a, 0x3732: 0x000a, 0x3733: 0x000a, 0x3734: 0x000a, 0x3735: 0x000a,\n\t0x3736: 0x000a, 0x3737: 0x000a, 0x3738: 0x000a, 0x3739: 0x000a, 0x373a: 0x000a, 0x373b: 0x000a,\n\t0x373c: 0x000a, 0x373d: 0x000a, 0x373e: 0x000a, 0x373f: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a,\n\t0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a,\n\t0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,\n\t0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a, 0x377f: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,\n\t0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,\n\t0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,\n\t0x37aa: 0x000a, 0x37ab: 0x000a, 0x37ac: 0x000a, 0x37ad: 0x000a, 0x37ae: 0x000a, 0x37af: 0x000a,\n\t0x37b0: 0x000a, 0x37b1: 0x000a, 0x37b2: 0x000a, 0x37b3: 0x000a, 0x37b4: 0x000a, 0x37b5: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x0002, 0x37c1: 0x0002, 0x37c2: 0x0002, 0x37c3: 0x0002, 0x37c4: 0x0002, 0x37c5: 0x0002,\n\t0x37c6: 0x0002, 0x37c7: 0x0002, 0x37c8: 0x0002, 0x37c9: 0x0002, 0x37ca: 0x0002, 0x37cb: 0x000a,\n\t0x37cc: 0x000a,\n\t0x37ef: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,\n\t0x3864: 0x000a, 0x3865: 0x000a,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a,\n\t0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,\n\t0x38d8: 0x000a,\n\t0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x3910: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,\n\t0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,\n\t0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, 0x393a: 0x000a, 0x393b: 0x000a,\n\t0x393c: 0x000a, 0x393d: 0x000a, 0x393e: 0x000a, 0x393f: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, 0x3943: 0x000a, 0x3944: 0x000a, 0x3945: 0x000a,\n\t0x3946: 0x000a, 0x3947: 0x000a,\n\t0x3950: 0x000a, 0x3951: 0x000a,\n\t0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,\n\t0x3958: 0x000a, 0x3959: 0x000a,\n\t0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,\n\t0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,\n\t0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,\n\t0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,\n\t0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,\n\t0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x3980: 0x000a, 0x3981: 0x000a, 0x3982: 0x000a, 0x3983: 0x000a, 0x3984: 0x000a, 0x3985: 0x000a,\n\t0x3986: 0x000a, 0x3987: 0x000a,\n\t0x3990: 0x000a, 0x3991: 0x000a,\n\t0x3992: 0x000a, 0x3993: 0x000a, 0x3994: 0x000a, 0x3995: 0x000a, 0x3996: 0x000a, 0x3997: 0x000a,\n\t0x3998: 0x000a, 0x3999: 0x000a, 0x399a: 0x000a, 0x399b: 0x000a, 0x399c: 0x000a, 0x399d: 0x000a,\n\t0x399e: 0x000a, 0x399f: 0x000a, 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,\n\t0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39c0: 0x000a, 0x39c1: 0x000a, 0x39c2: 0x000a, 0x39c3: 0x000a, 0x39c4: 0x000a, 0x39c5: 0x000a,\n\t0x39c6: 0x000a, 0x39c7: 0x000a, 0x39c8: 0x000a, 0x39c9: 0x000a, 0x39ca: 0x000a, 0x39cb: 0x000a,\n\t0x39cd: 0x000a, 0x39ce: 0x000a, 0x39cf: 0x000a, 0x39d0: 0x000a, 0x39d1: 0x000a,\n\t0x39d2: 0x000a, 0x39d3: 0x000a, 0x39d4: 0x000a, 0x39d5: 0x000a, 0x39d6: 0x000a, 0x39d7: 0x000a,\n\t0x39d8: 0x000a, 0x39d9: 0x000a, 0x39da: 0x000a, 0x39db: 0x000a, 0x39dc: 0x000a, 0x39dd: 0x000a,\n\t0x39de: 0x000a, 0x39df: 0x000a, 0x39e0: 0x000a, 0x39e1: 0x000a, 0x39e2: 0x000a, 0x39e3: 0x000a,\n\t0x39e4: 0x000a, 0x39e5: 0x000a, 0x39e6: 0x000a, 0x39e7: 0x000a, 0x39e8: 0x000a, 0x39e9: 0x000a,\n\t0x39ea: 0x000a, 0x39eb: 0x000a, 0x39ec: 0x000a, 0x39ed: 0x000a, 0x39ee: 0x000a, 0x39ef: 0x000a,\n\t0x39f0: 0x000a, 0x39f1: 0x000a, 0x39f2: 0x000a, 0x39f3: 0x000a, 0x39f4: 0x000a, 0x39f5: 0x000a,\n\t0x39f6: 0x000a, 0x39f7: 0x000a, 0x39f8: 0x000a, 0x39f9: 0x000a, 0x39fa: 0x000a, 0x39fb: 0x000a,\n\t0x39fc: 0x000a, 0x39fd: 0x000a, 0x39fe: 0x000a, 0x39ff: 0x000a,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x000a, 0x3a01: 0x000a, 0x3a02: 0x000a, 0x3a03: 0x000a, 0x3a04: 0x000a, 0x3a05: 0x000a,\n\t0x3a06: 0x000a, 0x3a07: 0x000a, 0x3a08: 0x000a, 0x3a09: 0x000a, 0x3a0a: 0x000a, 0x3a0b: 0x000a,\n\t0x3a0c: 0x000a, 0x3a0d: 0x000a, 0x3a0e: 0x000a, 0x3a0f: 0x000a, 0x3a10: 0x000a, 0x3a11: 0x000a,\n\t0x3a12: 0x000a, 0x3a13: 0x000a, 0x3a14: 0x000a, 0x3a15: 0x000a, 0x3a16: 0x000a, 0x3a17: 0x000a,\n\t0x3a18: 0x000a, 0x3a19: 0x000a, 0x3a1a: 0x000a, 0x3a1b: 0x000a, 0x3a1c: 0x000a, 0x3a1d: 0x000a,\n\t0x3a1e: 0x000a, 0x3a1f: 0x000a, 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,\n\t0x3a24: 0x000a, 0x3a25: 0x000a, 0x3a26: 0x000a, 0x3a27: 0x000a, 0x3a28: 0x000a, 0x3a29: 0x000a,\n\t0x3a2a: 0x000a, 0x3a2b: 0x000a, 0x3a2c: 0x000a, 0x3a2d: 0x000a, 0x3a2e: 0x000a, 0x3a2f: 0x000a,\n\t0x3a30: 0x000a, 0x3a31: 0x000a, 0x3a33: 0x000a, 0x3a34: 0x000a, 0x3a35: 0x000a,\n\t0x3a36: 0x000a, 0x3a3a: 0x000a, 0x3a3b: 0x000a,\n\t0x3a3c: 0x000a, 0x3a3d: 0x000a, 0x3a3e: 0x000a, 0x3a3f: 0x000a,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,\n\t0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,\n\t0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,\n\t0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,\n\t0x3a58: 0x000a, 0x3a59: 0x000a, 0x3a5a: 0x000a, 0x3a5b: 0x000a, 0x3a5c: 0x000a, 0x3a5d: 0x000a,\n\t0x3a5e: 0x000a, 0x3a5f: 0x000a, 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a,\n\t0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,\n\t0x3a6a: 0x000a, 0x3a6e: 0x000a, 0x3a6f: 0x000a,\n\t0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,\n\t0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,\n\t0x3a7c: 0x000a, 0x3a7d: 0x000a, 0x3a7e: 0x000a, 0x3a7f: 0x000a,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,\n\t0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a,\n\t0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,\n\t0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,\n\t0x3a98: 0x000a, 0x3a99: 0x000a, 0x3a9a: 0x000a, 0x3a9b: 0x000a, 0x3a9c: 0x000a, 0x3a9d: 0x000a,\n\t0x3a9e: 0x000a, 0x3a9f: 0x000a, 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,\n\t0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,\n\t0x3aaa: 0x000a, 0x3aab: 0x000a, 0x3aac: 0x000a, 0x3aad: 0x000a, 0x3aae: 0x000a, 0x3aaf: 0x000a,\n\t0x3ab0: 0x000a, 0x3ab1: 0x000a, 0x3ab2: 0x000a, 0x3ab3: 0x000a, 0x3ab4: 0x000a, 0x3ab5: 0x000a,\n\t0x3ab6: 0x000a, 0x3ab7: 0x000a, 0x3ab8: 0x000a, 0x3ab9: 0x000a, 0x3aba: 0x000a, 0x3abb: 0x000a,\n\t0x3abc: 0x000a, 0x3abd: 0x000a, 0x3abe: 0x000a, 0x3abf: 0x000a,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,\n\t0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,\n\t0x3acc: 0x000a, 0x3acd: 0x000a, 0x3ace: 0x000a, 0x3acf: 0x000a, 0x3ad0: 0x000a, 0x3ad1: 0x000a,\n\t0x3ad2: 0x000a, 0x3ad3: 0x000a,\n\t0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,\n\t0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,\n\t0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a,\n\t0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a,\n\t0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a,\n\t0x3b10: 0x000a, 0x3b11: 0x000a,\n\t0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a,\n\t// Block 0xed, offset 0x3b40\n\t0x3b7e: 0x000b, 0x3b7f: 0x000b,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000b, 0x3b81: 0x000b, 0x3b82: 0x000b, 0x3b83: 0x000b, 0x3b84: 0x000b, 0x3b85: 0x000b,\n\t0x3b86: 0x000b, 0x3b87: 0x000b, 0x3b88: 0x000b, 0x3b89: 0x000b, 0x3b8a: 0x000b, 0x3b8b: 0x000b,\n\t0x3b8c: 0x000b, 0x3b8d: 0x000b, 0x3b8e: 0x000b, 0x3b8f: 0x000b, 0x3b90: 0x000b, 0x3b91: 0x000b,\n\t0x3b92: 0x000b, 0x3b93: 0x000b, 0x3b94: 0x000b, 0x3b95: 0x000b, 0x3b96: 0x000b, 0x3b97: 0x000b,\n\t0x3b98: 0x000b, 0x3b99: 0x000b, 0x3b9a: 0x000b, 0x3b9b: 0x000b, 0x3b9c: 0x000b, 0x3b9d: 0x000b,\n\t0x3b9e: 0x000b, 0x3b9f: 0x000b, 0x3ba0: 0x000b, 0x3ba1: 0x000b, 0x3ba2: 0x000b, 0x3ba3: 0x000b,\n\t0x3ba4: 0x000b, 0x3ba5: 0x000b, 0x3ba6: 0x000b, 0x3ba7: 0x000b, 0x3ba8: 0x000b, 0x3ba9: 0x000b,\n\t0x3baa: 0x000b, 0x3bab: 0x000b, 0x3bac: 0x000b, 0x3bad: 0x000b, 0x3bae: 0x000b, 0x3baf: 0x000b,\n\t0x3bb0: 0x000b, 0x3bb1: 0x000b, 0x3bb2: 0x000b, 0x3bb3: 0x000b, 0x3bb4: 0x000b, 0x3bb5: 0x000b,\n\t0x3bb6: 0x000b, 0x3bb7: 0x000b, 0x3bb8: 0x000b, 0x3bb9: 0x000b, 0x3bba: 0x000b, 0x3bbb: 0x000b,\n\t0x3bbc: 0x000b, 0x3bbd: 0x000b, 0x3bbe: 0x000b, 0x3bbf: 0x000b,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000c, 0x3bc1: 0x000c, 0x3bc2: 0x000c, 0x3bc3: 0x000c, 0x3bc4: 0x000c, 0x3bc5: 0x000c,\n\t0x3bc6: 0x000c, 0x3bc7: 0x000c, 0x3bc8: 0x000c, 0x3bc9: 0x000c, 0x3bca: 0x000c, 0x3bcb: 0x000c,\n\t0x3bcc: 0x000c, 0x3bcd: 0x000c, 0x3bce: 0x000c, 0x3bcf: 0x000c, 0x3bd0: 0x000c, 0x3bd1: 0x000c,\n\t0x3bd2: 0x000c, 0x3bd3: 0x000c, 0x3bd4: 0x000c, 0x3bd5: 0x000c, 0x3bd6: 0x000c, 0x3bd7: 0x000c,\n\t0x3bd8: 0x000c, 0x3bd9: 0x000c, 0x3bda: 0x000c, 0x3bdb: 0x000c, 0x3bdc: 0x000c, 0x3bdd: 0x000c,\n\t0x3bde: 0x000c, 0x3bdf: 0x000c, 0x3be0: 0x000c, 0x3be1: 0x000c, 0x3be2: 0x000c, 0x3be3: 0x000c,\n\t0x3be4: 0x000c, 0x3be5: 0x000c, 0x3be6: 0x000c, 0x3be7: 0x000c, 0x3be8: 0x000c, 0x3be9: 0x000c,\n\t0x3bea: 0x000c, 0x3beb: 0x000c, 0x3bec: 0x000c, 0x3bed: 0x000c, 0x3bee: 0x000c, 0x3bef: 0x000c,\n\t0x3bf0: 0x000b, 0x3bf1: 0x000b, 0x3bf2: 0x000b, 0x3bf3: 0x000b, 0x3bf4: 0x000b, 0x3bf5: 0x000b,\n\t0x3bf6: 0x000b, 0x3bf7: 0x000b, 0x3bf8: 0x000b, 0x3bf9: 0x000b, 0x3bfa: 0x000b, 0x3bfb: 0x000b,\n\t0x3bfc: 0x000b, 0x3bfd: 0x000b, 0x3bfe: 0x000b, 0x3bff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x54,\n\t0x1b3: 0x64, 0x1b5: 0x65, 0x1b7: 0x66,\n\t0x1b8: 0x67, 0x1b9: 0x68, 0x1ba: 0x69, 0x1bb: 0x6a, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6b,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6c, 0x1c2: 0x6d, 0x1c3: 0x6e, 0x1c7: 0x6f,\n\t0x1c8: 0x70, 0x1c9: 0x71, 0x1ca: 0x72, 0x1cb: 0x73, 0x1cd: 0x74, 0x1cf: 0x75,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x76, 0x253: 0x77,\n\t0x258: 0x78, 0x259: 0x79, 0x25a: 0x7a, 0x25b: 0x7b, 0x25c: 0x7c, 0x25e: 0x7d,\n\t0x260: 0x7e, 0x261: 0x7f, 0x263: 0x80, 0x264: 0x81, 0x265: 0x82, 0x266: 0x83, 0x267: 0x84,\n\t0x268: 0x85, 0x269: 0x86, 0x26a: 0x87, 0x26b: 0x88, 0x26f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8a, 0x2ad: 0x8b, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8c, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8d,\n\t0x2b8: 0x8e, 0x2b9: 0x8f, 0x2ba: 0x0e, 0x2bb: 0x90, 0x2bc: 0x91, 0x2bd: 0x92, 0x2bf: 0x93,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x94, 0x2c5: 0x54, 0x2c6: 0x95, 0x2c7: 0x96,\n\t0x2cb: 0x97, 0x2cd: 0x98,\n\t0x2e0: 0x99, 0x2e1: 0x99, 0x2e2: 0x99, 0x2e3: 0x99, 0x2e4: 0x9a, 0x2e5: 0x99, 0x2e6: 0x99, 0x2e7: 0x99,\n\t0x2e8: 0x9b, 0x2e9: 0x99, 0x2ea: 0x99, 0x2eb: 0x9c, 0x2ec: 0x9d, 0x2ed: 0x99, 0x2ee: 0x99, 0x2ef: 0x99,\n\t0x2f0: 0x99, 0x2f1: 0x99, 0x2f2: 0x99, 0x2f3: 0x99, 0x2f4: 0x9e, 0x2f5: 0x99, 0x2f6: 0x99, 0x2f7: 0x99,\n\t0x2f8: 0x99, 0x2f9: 0x9f, 0x2fa: 0x99, 0x2fb: 0x99, 0x2fc: 0xa0, 0x2fd: 0xa1, 0x2fe: 0x99, 0x2ff: 0x99,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa2, 0x301: 0xa3, 0x302: 0xa4, 0x304: 0xa5, 0x305: 0xa6, 0x306: 0xa7, 0x307: 0xa8,\n\t0x308: 0xa9, 0x30b: 0xaa, 0x30c: 0x26, 0x30d: 0xab,\n\t0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,\n\t0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,\n\t0x320: 0xb6, 0x327: 0xb7,\n\t0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,\n\t0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,\n\t0x33b: 0xc0, 0x33f: 0xc1,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc2, 0x36c: 0xc3,\n\t0x37d: 0xc4, 0x37e: 0xc5, 0x37f: 0xc6,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xc7,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc8, 0x3c6: 0xc9,\n\t0x3c8: 0x54, 0x3c9: 0xca, 0x3cc: 0x54, 0x3cd: 0xcb,\n\t0x3db: 0xcc, 0x3dc: 0xcd, 0x3dd: 0xce, 0x3de: 0xcf, 0x3df: 0xd0,\n\t0x3e8: 0xd1, 0x3e9: 0xd2, 0x3ea: 0xd3,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xd4, 0x404: 0xc3,\n\t0x40b: 0xd5,\n\t0x420: 0x99, 0x421: 0x99, 0x422: 0x99, 0x423: 0xd6, 0x424: 0x99, 0x425: 0xd7, 0x426: 0x99, 0x427: 0x99,\n\t0x428: 0x99, 0x429: 0x99, 0x42a: 0x99, 0x42b: 0x99, 0x42c: 0x99, 0x42d: 0x99, 0x42e: 0x99, 0x42f: 0x99,\n\t0x430: 0x99, 0x431: 0xa0, 0x432: 0x0e, 0x433: 0x99, 0x434: 0x0e, 0x435: 0xd8, 0x436: 0x99, 0x437: 0x99,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd9, 0x43c: 0x99, 0x43d: 0x99, 0x43e: 0x99, 0x43f: 0x99,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xda, 0x441: 0x54, 0x442: 0xdb, 0x443: 0xdc, 0x444: 0xdd, 0x445: 0xde,\n\t0x449: 0xdf, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xe0, 0x45c: 0x54, 0x45d: 0x6a, 0x45e: 0x54, 0x45f: 0xe1,\n\t0x460: 0xe2, 0x461: 0xe3, 0x462: 0xe4, 0x464: 0xe5, 0x465: 0xe6, 0x466: 0xe7, 0x467: 0xe8,\n\t0x468: 0x54, 0x469: 0xe9, 0x46a: 0xea,\n\t0x47f: 0xeb,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xeb,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xec, 0x541: 0xec, 0x542: 0xec, 0x543: 0xec, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xed,\n\t0x548: 0xec, 0x549: 0xec, 0x54a: 0xec, 0x54b: 0xec, 0x54c: 0xec, 0x54d: 0xec, 0x54e: 0xec, 0x54f: 0xec,\n\t0x550: 0xec, 0x551: 0xec, 0x552: 0xec, 0x553: 0xec, 0x554: 0xec, 0x555: 0xec, 0x556: 0xec, 0x557: 0xec,\n\t0x558: 0xec, 0x559: 0xec, 0x55a: 0xec, 0x55b: 0xec, 0x55c: 0xec, 0x55d: 0xec, 0x55e: 0xec, 0x55f: 0xec,\n\t0x560: 0xec, 0x561: 0xec, 0x562: 0xec, 0x563: 0xec, 0x564: 0xec, 0x565: 0xec, 0x566: 0xec, 0x567: 0xec,\n\t0x568: 0xec, 0x569: 0xec, 0x56a: 0xec, 0x56b: 0xec, 0x56c: 0xec, 0x56d: 0xec, 0x56e: 0xec, 0x56f: 0xec,\n\t0x570: 0xec, 0x571: 0xec, 0x572: 0xec, 0x573: 0xec, 0x574: 0xec, 0x575: 0xec, 0x576: 0xec, 0x577: 0xec,\n\t0x578: 0xec, 0x579: 0xec, 0x57a: 0xec, 0x57b: 0xec, 0x57c: 0xec, 0x57d: 0xec, 0x57e: 0xec, 0x57f: 0xec,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16952 bytes (16KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"13.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 17408 bytes (17.00 KiB). Checksum: df85fcbfe9b8377f.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 248 blocks, 15872 entries, 15872 bytes\n// The third block is the zero block.\nvar bidiValues = [15872]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x895: 0x000c, 0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa81: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaca: 0x000c,\n\t0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,\n\t// Block 0x2c, offset 0xb00\n\t0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,\n\t0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,\n\t0xb3f: 0x0004,\n\t// Block 0x2d, offset 0xb40\n\t0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,\n\t0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,\n\t0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,\n\t0xbbc: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,\n\t0xbcc: 0x000c, 0xbcd: 0x000c,\n\t// Block 0x30, offset 0xc00\n\t0xc18: 0x000c, 0xc19: 0x000c,\n\t0xc35: 0x000c,\n\t0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,\n\t0xc3c: 0x003a, 0xc3d: 0x002a,\n\t// Block 0x31, offset 0xc40\n\t0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,\n\t0xc86: 0x000c, 0xc87: 0x000c,\n\t0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,\n\t0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,\n\t0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,\n\t0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,\n\t0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,\n\t0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,\n\t0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,\n\t0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,\n\t0xcbc: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xcc6: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,\n\t0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,\n\t0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,\n\t0xd3d: 0x000c, 0xd3e: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd58: 0x000c, 0xd59: 0x000c,\n\t0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,\n\t0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd82: 0x000c, 0xd85: 0x000c,\n\t0xd86: 0x000c,\n\t0xd8d: 0x000c,\n\t0xd9d: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xddd: 0x000c,\n\t0xdde: 0x000c, 0xddf: 0x000c,\n\t// Block 0x38, offset 0xe00\n\t0xe10: 0x000a, 0xe11: 0x000a,\n\t0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,\n\t0xe18: 0x000a, 0xe19: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x0009,\n\t0xe9b: 0x007a, 0xe9c: 0x006a,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c, 0xef4: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf12: 0x000c, 0xf13: 0x000c,\n\t0xf32: 0x000c, 0xf33: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf74: 0x000c, 0xf75: 0x000c,\n\t0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,\n\t0xf7c: 0x000c, 0xf7d: 0x000c,\n\t// Block 0x3e, offset 0xf80\n\t0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,\n\t0xf92: 0x000c, 0xf93: 0x000c,\n\t0xf9b: 0x0004, 0xf9d: 0x000c,\n\t0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,\n\t0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,\n\t0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,\n\t0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b,\n\t// Block 0x40, offset 0x1000\n\t0x1005: 0x000c,\n\t0x1006: 0x000c,\n\t0x1029: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,\n\t0x1067: 0x000c, 0x1068: 0x000c,\n\t0x1072: 0x000c,\n\t0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,\n\t0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,\n\t0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,\n\t0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,\n\t0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,\n\t0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,\n\t// Block 0x44, offset 0x1100\n\t0x1117: 0x000c,\n\t0x1118: 0x000c, 0x111b: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1156: 0x000c,\n\t0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,\n\t0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,\n\t0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,\n\t0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,\n\t0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117f: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,\n\t0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,\n\t0x1234: 0x000c,\n\t0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,\n\t0x123c: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1242: 0x000c,\n\t0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x000c, 0x1281: 0x000c,\n\t0x12a2: 0x000c, 0x12a3: 0x000c,\n\t0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,\n\t0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,\n\t0x12ed: 0x000c, 0x12ef: 0x000c,\n\t0x12f0: 0x000c, 0x12f1: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x1350: 0x000c, 0x1351: 0x000c,\n\t0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,\n\t0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,\n\t0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,\n\t0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,\n\t0x136d: 0x000c,\n\t0x1374: 0x000c,\n\t0x1378: 0x000c, 0x1379: 0x000c,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000c, 0x1381: 0x000c, 0x1382: 0x000c, 0x1383: 0x000c, 0x1384: 0x000c, 0x1385: 0x000c,\n\t0x1386: 0x000c, 0x1387: 0x000c, 0x1388: 0x000c, 0x1389: 0x000c, 0x138a: 0x000c, 0x138b: 0x000c,\n\t0x138c: 0x000c, 0x138d: 0x000c, 0x138e: 0x000c, 0x138f: 0x000c, 0x1390: 0x000c, 0x1391: 0x000c,\n\t0x1392: 0x000c, 0x1393: 0x000c, 0x1394: 0x000c, 0x1395: 0x000c, 0x1396: 0x000c, 0x1397: 0x000c,\n\t0x1398: 0x000c, 0x1399: 0x000c, 0x139a: 0x000c, 0x139b: 0x000c, 0x139c: 0x000c, 0x139d: 0x000c,\n\t0x139e: 0x000c, 0x139f: 0x000c, 0x13a0: 0x000c, 0x13a1: 0x000c, 0x13a2: 0x000c, 0x13a3: 0x000c,\n\t0x13a4: 0x000c, 0x13a5: 0x000c, 0x13a6: 0x000c, 0x13a7: 0x000c, 0x13a8: 0x000c, 0x13a9: 0x000c,\n\t0x13aa: 0x000c, 0x13ab: 0x000c, 0x13ac: 0x000c, 0x13ad: 0x000c, 0x13ae: 0x000c, 0x13af: 0x000c,\n\t0x13b0: 0x000c, 0x13b1: 0x000c, 0x13b2: 0x000c, 0x13b3: 0x000c, 0x13b4: 0x000c, 0x13b5: 0x000c,\n\t0x13b6: 0x000c, 0x13b7: 0x000c, 0x13b8: 0x000c, 0x13b9: 0x000c, 0x13bb: 0x000c,\n\t0x13bc: 0x000c, 0x13bd: 0x000c, 0x13be: 0x000c, 0x13bf: 0x000c,\n\t// Block 0x4f, offset 0x13c0\n\t0x13fd: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a,\n\t0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a,\n\t0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x000a,\n\t0x142d: 0x000a, 0x142e: 0x000a, 0x142f: 0x000a,\n\t0x143d: 0x000a, 0x143e: 0x000a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0009, 0x1441: 0x0009, 0x1442: 0x0009, 0x1443: 0x0009, 0x1444: 0x0009, 0x1445: 0x0009,\n\t0x1446: 0x0009, 0x1447: 0x0009, 0x1448: 0x0009, 0x1449: 0x0009, 0x144a: 0x0009, 0x144b: 0x000b,\n\t0x144c: 0x000b, 0x144d: 0x000b, 0x144f: 0x0001, 0x1450: 0x000a, 0x1451: 0x000a,\n\t0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,\n\t0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,\n\t0x145e: 0x000a, 0x145f: 0x000a, 0x1460: 0x000a, 0x1461: 0x000a, 0x1462: 0x000a, 0x1463: 0x000a,\n\t0x1464: 0x000a, 0x1465: 0x000a, 0x1466: 0x000a, 0x1467: 0x000a, 0x1468: 0x0009, 0x1469: 0x0007,\n\t0x146a: 0x000e, 0x146b: 0x000e, 0x146c: 0x000e, 0x146d: 0x000e, 0x146e: 0x000e, 0x146f: 0x0006,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x000a,\n\t0x1476: 0x000a, 0x1477: 0x000a, 0x1478: 0x000a, 0x1479: 0x000a, 0x147a: 0x000a, 0x147b: 0x000a,\n\t0x147c: 0x000a, 0x147d: 0x000a, 0x147e: 0x000a, 0x147f: 0x000a,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x000a, 0x1481: 0x000a, 0x1482: 0x000a, 0x1483: 0x000a, 0x1484: 0x0006, 0x1485: 0x009a,\n\t0x1486: 0x008a, 0x1487: 0x000a, 0x1488: 0x000a, 0x1489: 0x000a, 0x148a: 0x000a, 0x148b: 0x000a,\n\t0x148c: 0x000a, 0x148d: 0x000a, 0x148e: 0x000a, 0x148f: 0x000a, 0x1490: 0x000a, 0x1491: 0x000a,\n\t0x1492: 0x000a, 0x1493: 0x000a, 0x1494: 0x000a, 0x1495: 0x000a, 0x1496: 0x000a, 0x1497: 0x000a,\n\t0x1498: 0x000a, 0x1499: 0x000a, 0x149a: 0x000a, 0x149b: 0x000a, 0x149c: 0x000a, 0x149d: 0x000a,\n\t0x149e: 0x000a, 0x149f: 0x0009, 0x14a0: 0x000b, 0x14a1: 0x000b, 0x14a2: 0x000b, 0x14a3: 0x000b,\n\t0x14a4: 0x000b, 0x14a5: 0x000b, 0x14a6: 0x000e, 0x14a7: 0x000e, 0x14a8: 0x000e, 0x14a9: 0x000e,\n\t0x14aa: 0x000b, 0x14ab: 0x000b, 0x14ac: 0x000b, 0x14ad: 0x000b, 0x14ae: 0x000b, 0x14af: 0x000b,\n\t0x14b0: 0x0002, 0x14b4: 0x0002, 0x14b5: 0x0002,\n\t0x14b6: 0x0002, 0x14b7: 0x0002, 0x14b8: 0x0002, 0x14b9: 0x0002, 0x14ba: 0x0003, 0x14bb: 0x0003,\n\t0x14bc: 0x000a, 0x14bd: 0x009a, 0x14be: 0x008a,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0002, 0x14c1: 0x0002, 0x14c2: 0x0002, 0x14c3: 0x0002, 0x14c4: 0x0002, 0x14c5: 0x0002,\n\t0x14c6: 0x0002, 0x14c7: 0x0002, 0x14c8: 0x0002, 0x14c9: 0x0002, 0x14ca: 0x0003, 0x14cb: 0x0003,\n\t0x14cc: 0x000a, 0x14cd: 0x009a, 0x14ce: 0x008a,\n\t0x14e0: 0x0004, 0x14e1: 0x0004, 0x14e2: 0x0004, 0x14e3: 0x0004,\n\t0x14e4: 0x0004, 0x14e5: 0x0004, 0x14e6: 0x0004, 0x14e7: 0x0004, 0x14e8: 0x0004, 0x14e9: 0x0004,\n\t0x14ea: 0x0004, 0x14eb: 0x0004, 0x14ec: 0x0004, 0x14ed: 0x0004, 0x14ee: 0x0004, 0x14ef: 0x0004,\n\t0x14f0: 0x0004, 0x14f1: 0x0004, 0x14f2: 0x0004, 0x14f3: 0x0004, 0x14f4: 0x0004, 0x14f5: 0x0004,\n\t0x14f6: 0x0004, 0x14f7: 0x0004, 0x14f8: 0x0004, 0x14f9: 0x0004, 0x14fa: 0x0004, 0x14fb: 0x0004,\n\t0x14fc: 0x0004, 0x14fd: 0x0004, 0x14fe: 0x0004, 0x14ff: 0x0004,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x0004, 0x1501: 0x0004, 0x1502: 0x0004, 0x1503: 0x0004, 0x1504: 0x0004, 0x1505: 0x0004,\n\t0x1506: 0x0004, 0x1507: 0x0004, 0x1508: 0x0004, 0x1509: 0x0004, 0x150a: 0x0004, 0x150b: 0x0004,\n\t0x150c: 0x0004, 0x150d: 0x0004, 0x150e: 0x0004, 0x150f: 0x0004, 0x1510: 0x000c, 0x1511: 0x000c,\n\t0x1512: 0x000c, 0x1513: 0x000c, 0x1514: 0x000c, 0x1515: 0x000c, 0x1516: 0x000c, 0x1517: 0x000c,\n\t0x1518: 0x000c, 0x1519: 0x000c, 0x151a: 0x000c, 0x151b: 0x000c, 0x151c: 0x000c, 0x151d: 0x000c,\n\t0x151e: 0x000c, 0x151f: 0x000c, 0x1520: 0x000c, 0x1521: 0x000c, 0x1522: 0x000c, 0x1523: 0x000c,\n\t0x1524: 0x000c, 0x1525: 0x000c, 0x1526: 0x000c, 0x1527: 0x000c, 0x1528: 0x000c, 0x1529: 0x000c,\n\t0x152a: 0x000c, 0x152b: 0x000c, 0x152c: 0x000c, 0x152d: 0x000c, 0x152e: 0x000c, 0x152f: 0x000c,\n\t0x1530: 0x000c,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x000a, 0x1541: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a, 0x1545: 0x000a,\n\t0x1546: 0x000a, 0x1548: 0x000a, 0x1549: 0x000a,\n\t0x1554: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1565: 0x000a, 0x1567: 0x000a, 0x1569: 0x000a,\n\t0x156e: 0x0004,\n\t0x157a: 0x000a, 0x157b: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a,\n\t0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,\n\t0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,\n\t0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,\n\t0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x000a, 0x1649: 0x000a, 0x164a: 0x000a, 0x164b: 0x000a,\n\t0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,\n\t0x1652: 0x0003, 0x1653: 0x0004, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,\n\t0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,\n\t0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,\n\t0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x000a,\n\t0x166a: 0x000a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,\n\t0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,\n\t0x1676: 0x000a, 0x1677: 0x000a, 0x1678: 0x000a, 0x1679: 0x000a, 0x167a: 0x000a, 0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x003a, 0x1689: 0x002a, 0x168a: 0x003a, 0x168b: 0x002a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1695: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x009a,\n\t0x16aa: 0x008a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, 0x174b: 0x000a,\n\t0x174c: 0x000a, 0x174d: 0x000a, 0x174e: 0x000a, 0x174f: 0x000a, 0x1750: 0x000a, 0x1751: 0x000a,\n\t0x1752: 0x000a, 0x1753: 0x000a, 0x1754: 0x000a, 0x1755: 0x000a, 0x1756: 0x000a, 0x1757: 0x000a,\n\t0x1758: 0x000a, 0x1759: 0x000a, 0x175a: 0x000a, 0x175b: 0x000a, 0x175c: 0x000a, 0x175d: 0x000a,\n\t0x175e: 0x000a, 0x175f: 0x000a, 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x000a, 0x1789: 0x000a, 0x178a: 0x000a,\n\t0x17a0: 0x000a, 0x17a1: 0x000a, 0x17a2: 0x000a, 0x17a3: 0x000a,\n\t0x17a4: 0x000a, 0x17a5: 0x000a, 0x17a6: 0x000a, 0x17a7: 0x000a, 0x17a8: 0x000a, 0x17a9: 0x000a,\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x0002, 0x17c9: 0x0002, 0x17ca: 0x0002, 0x17cb: 0x0002,\n\t0x17cc: 0x0002, 0x17cd: 0x0002, 0x17ce: 0x0002, 0x17cf: 0x0002, 0x17d0: 0x0002, 0x17d1: 0x0002,\n\t0x17d2: 0x0002, 0x17d3: 0x0002, 0x17d4: 0x0002, 0x17d5: 0x0002, 0x17d6: 0x0002, 0x17d7: 0x0002,\n\t0x17d8: 0x0002, 0x17d9: 0x0002, 0x17da: 0x0002, 0x17db: 0x0002,\n\t// Block 0x60, offset 0x1800\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182c: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x000a, 0x1869: 0x000a,\n\t0x186a: 0x000a, 0x186b: 0x000a, 0x186d: 0x000a, 0x186e: 0x000a, 0x186f: 0x000a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x000a,\n\t0x1886: 0x000a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x003a, 0x18b1: 0x002a, 0x18b2: 0x003a, 0x18b3: 0x002a, 0x18b4: 0x003a, 0x18b5: 0x002a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x000a, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x003a, 0x18e7: 0x002a, 0x18e8: 0x003a, 0x18e9: 0x002a,\n\t0x18ea: 0x003a, 0x18eb: 0x002a, 0x18ec: 0x003a, 0x18ed: 0x002a, 0x18ee: 0x003a, 0x18ef: 0x002a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x007a, 0x1904: 0x006a, 0x1905: 0x009a,\n\t0x1906: 0x008a, 0x1907: 0x00ba, 0x1908: 0x00aa, 0x1909: 0x009a, 0x190a: 0x008a, 0x190b: 0x007a,\n\t0x190c: 0x006a, 0x190d: 0x00da, 0x190e: 0x002a, 0x190f: 0x003a, 0x1910: 0x00ca, 0x1911: 0x009a,\n\t0x1912: 0x008a, 0x1913: 0x007a, 0x1914: 0x006a, 0x1915: 0x009a, 0x1916: 0x008a, 0x1917: 0x00ba,\n\t0x1918: 0x00aa, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x003a, 0x1959: 0x002a, 0x195a: 0x003a, 0x195b: 0x002a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x003a, 0x197d: 0x002a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,\n\t0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19c9: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,\n\t0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,\n\t0x19d2: 0x000a, 0x19d3: 0x000a, 0x19d4: 0x000a, 0x19d5: 0x000a, 0x19d7: 0x000a,\n\t0x19d8: 0x000a, 0x19d9: 0x000a, 0x19da: 0x000a, 0x19db: 0x000a, 0x19dc: 0x000a, 0x19dd: 0x000a,\n\t0x19de: 0x000a, 0x19df: 0x000a, 0x19e0: 0x000a, 0x19e1: 0x000a, 0x19e2: 0x000a, 0x19e3: 0x000a,\n\t0x19e4: 0x000a, 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19eb: 0x000a, 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,\n\t0x19f0: 0x000a, 0x19f1: 0x000a, 0x19f2: 0x000a, 0x19f3: 0x000a, 0x19f4: 0x000a, 0x19f5: 0x000a,\n\t0x19f6: 0x000a, 0x19f7: 0x000a, 0x19f8: 0x000a, 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,\n\t0x1a2a: 0x000a, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c,\n\t0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,\n\t0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,\n\t// Block 0x69, offset 0x1a40\n\t0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,\n\t0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,\n\t0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,\n\t0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,\n\t0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,\n\t0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,\n\t0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,\n\t0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,\n\t0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,\n\t0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,\n\t0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,\n\t0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,\n\t0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,\n\t0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,\n\t0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,\n\t0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,\n\t0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,\n\t0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,\n\t0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,\n\t0x1c30: 0x000a,\n\t0x1c36: 0x000a, 0x1c37: 0x000a,\n\t0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,\n\t0x1c60: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1cbb: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,\n\t0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,\n\t0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d1d: 0x000a,\n\t0x1d1e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d50: 0x000a, 0x1d51: 0x000a,\n\t0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,\n\t0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,\n\t0x1d5e: 0x000a, 0x1d5f: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,\n\t0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,\n\t0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a,\n\t0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e90: 0x000a, 0x1e91: 0x000a,\n\t0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,\n\t0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,\n\t0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,\n\t0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,\n\t0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,\n\t0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,\n\t0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,\n\t0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,\n\t0x1ec6: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f6f: 0x000c,\n\t0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,\n\t0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,\n\t0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f9e: 0x000c, 0x1f9f: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1ff0: 0x000c, 0x1ff1: 0x000c,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,\n\t0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,\n\t0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,\n\t0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,\n\t0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,\n\t0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2048: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2082: 0x000c,\n\t0x2086: 0x000c, 0x208b: 0x000c,\n\t0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,\n\t0x20aa: 0x000a, 0x20ab: 0x000a, 0x20ac: 0x000c,\n\t0x20b8: 0x0004, 0x20b9: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20f4: 0x000a, 0x20f5: 0x000a,\n\t0x20f6: 0x000a, 0x20f7: 0x000a,\n\t// Block 0x84, offset 0x2100\n\t0x2104: 0x000c, 0x2105: 0x000c,\n\t0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,\n\t0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,\n\t0x2130: 0x000c, 0x2131: 0x000c,\n\t0x213f: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,\n\t0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,\n\t0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,\n\t0x21f3: 0x000c,\n\t0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,\n\t0x21fc: 0x000c, 0x21fd: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2225: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2269: 0x000c,\n\t0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,\n\t0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,\n\t0x2276: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2283: 0x000c,\n\t0x228c: 0x000c,\n\t0x22bc: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,\n\t0x22f7: 0x000c, 0x22f8: 0x000c,\n\t0x22fe: 0x000c, 0x22ff: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2301: 0x000c,\n\t0x232c: 0x000c, 0x232d: 0x000c,\n\t0x2336: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x236a: 0x000a, 0x236b: 0x000a,\n\t// Block 0x8e, offset 0x2380\n\t0x23a5: 0x000c, 0x23a8: 0x000c,\n\t0x23ad: 0x000c,\n\t// Block 0x8f, offset 0x23c0\n\t0x23dd: 0x0001,\n\t0x23de: 0x000c, 0x23df: 0x0001, 0x23e0: 0x0001, 0x23e1: 0x0001, 0x23e2: 0x0001, 0x23e3: 0x0001,\n\t0x23e4: 0x0001, 0x23e5: 0x0001, 0x23e6: 0x0001, 0x23e7: 0x0001, 0x23e8: 0x0001, 0x23e9: 0x0003,\n\t0x23ea: 0x0001, 0x23eb: 0x0001, 0x23ec: 0x0001, 0x23ed: 0x0001, 0x23ee: 0x0001, 0x23ef: 0x0001,\n\t0x23f0: 0x0001, 0x23f1: 0x0001, 0x23f2: 0x0001, 0x23f3: 0x0001, 0x23f4: 0x0001, 0x23f5: 0x0001,\n\t0x23f6: 0x0001, 0x23f7: 0x0001, 0x23f8: 0x0001, 0x23f9: 0x0001, 0x23fa: 0x0001, 0x23fb: 0x0001,\n\t0x23fc: 0x0001, 0x23fd: 0x0001, 0x23fe: 0x0001, 0x23ff: 0x0001,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x0001, 0x2401: 0x0001, 0x2402: 0x0001, 0x2403: 0x0001, 0x2404: 0x0001, 0x2405: 0x0001,\n\t0x2406: 0x0001, 0x2407: 0x0001, 0x2408: 0x0001, 0x2409: 0x0001, 0x240a: 0x0001, 0x240b: 0x0001,\n\t0x240c: 0x0001, 0x240d: 0x0001, 0x240e: 0x0001, 0x240f: 0x0001, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,\n\t0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,\n\t0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000d, 0x2451: 0x000d,\n\t0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,\n\t0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,\n\t0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,\n\t0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,\n\t0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000b, 0x2491: 0x000b,\n\t0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b,\n\t0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b,\n\t0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b,\n\t0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b,\n\t0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c,\n\t0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c,\n\t0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a,\n\t0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x000a,\n\t0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c,\n\t0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c,\n\t0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c,\n\t0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a,\n\t0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a,\n\t0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a,\n\t0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a,\n\t0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a,\n\t0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a,\n\t0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003,\n\t0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004,\n\t0x252a: 0x0004, 0x252b: 0x000a,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d,\n\t0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d,\n\t0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d,\n\t0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d,\n\t0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d,\n\t0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d,\n\t0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d,\n\t0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d,\n\t0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,\n\t0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,\n\t0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004,\n\t0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003,\n\t0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002,\n\t0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002,\n\t0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a,\n\t0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a,\n\t0x25bb: 0x005a,\n\t0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a,\n\t0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a,\n\t0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a,\n\t0x25e4: 0x000a, 0x25e5: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a,\n\t0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a,\n\t0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a,\n\t0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b,\n\t0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a,\n\t0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b,\n\t// Block 0x99, offset 0x2640\n\t0x2641: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a,\n\t0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a,\n\t0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a,\n\t0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a,\n\t0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a,\n\t0x26a0: 0x000a,\n\t// Block 0x9b, offset 0x26c0\n\t0x26fd: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002,\n\t0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002,\n\t0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002,\n\t0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002,\n\t0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002,\n\t// Block 0x9d, offset 0x2740\n\t0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c,\n\t0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001,\n\t0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,\n\t0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a,\n\t0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d,\n\t0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x000d, 0x28e9: 0x000d,\n\t0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,\n\t0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005,\n\t0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x000d, 0x28fb: 0x000d,\n\t0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001,\n\t0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001,\n\t0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001,\n\t0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001,\n\t0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001,\n\t0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005,\n\t0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005,\n\t0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005,\n\t0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,\n\t0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005,\n\t0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001,\n\t0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001,\n\t0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,\n\t0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,\n\t0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,\n\t0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,\n\t0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001,\n\t0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001,\n\t0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,\n\t0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,\n\t0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,\n\t0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,\n\t0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,\n\t0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,\n\t0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,\n\t0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001,\n\t0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001,\n\t0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001,\n\t0x29b0: 0x000d, 0x29b1: 0x000d, 0x29b2: 0x000d, 0x29b3: 0x000d, 0x29b4: 0x000d, 0x29b5: 0x000d,\n\t0x29b6: 0x000d, 0x29b7: 0x000d, 0x29b8: 0x000d, 0x29b9: 0x000d, 0x29ba: 0x000d, 0x29bb: 0x000d,\n\t0x29bc: 0x000d, 0x29bd: 0x000d, 0x29be: 0x000d, 0x29bf: 0x000d,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000d, 0x29c1: 0x000d, 0x29c2: 0x000d, 0x29c3: 0x000d, 0x29c4: 0x000d, 0x29c5: 0x000d,\n\t0x29c6: 0x000c, 0x29c7: 0x000c, 0x29c8: 0x000c, 0x29c9: 0x000c, 0x29ca: 0x000c, 0x29cb: 0x000c,\n\t0x29cc: 0x000c, 0x29cd: 0x000c, 0x29ce: 0x000c, 0x29cf: 0x000c, 0x29d0: 0x000c, 0x29d1: 0x000d,\n\t0x29d2: 0x000d, 0x29d3: 0x000d, 0x29d4: 0x000d, 0x29d5: 0x000d, 0x29d6: 0x000d, 0x29d7: 0x000d,\n\t0x29d8: 0x000d, 0x29d9: 0x000d, 0x29da: 0x000d, 0x29db: 0x000d, 0x29dc: 0x000d, 0x29dd: 0x000d,\n\t0x29de: 0x000d, 0x29df: 0x000d, 0x29e0: 0x000d, 0x29e1: 0x000d, 0x29e2: 0x000d, 0x29e3: 0x000d,\n\t0x29e4: 0x000d, 0x29e5: 0x000d, 0x29e6: 0x000d, 0x29e7: 0x000d, 0x29e8: 0x000d, 0x29e9: 0x000d,\n\t0x29ea: 0x000d, 0x29eb: 0x000d, 0x29ec: 0x000d, 0x29ed: 0x000d, 0x29ee: 0x000d, 0x29ef: 0x000d,\n\t0x29f0: 0x0001, 0x29f1: 0x0001, 0x29f2: 0x0001, 0x29f3: 0x0001, 0x29f4: 0x0001, 0x29f5: 0x0001,\n\t0x29f6: 0x0001, 0x29f7: 0x0001, 0x29f8: 0x0001, 0x29f9: 0x0001, 0x29fa: 0x0001, 0x29fb: 0x0001,\n\t0x29fc: 0x0001, 0x29fd: 0x0001, 0x29fe: 0x0001, 0x29ff: 0x0001,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a01: 0x000c,\n\t0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,\n\t0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, 0x2a3f: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x000c, 0x2a41: 0x000c, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c,\n\t0x2a46: 0x000c,\n\t0x2a52: 0x000a, 0x2a53: 0x000a, 0x2a54: 0x000a, 0x2a55: 0x000a, 0x2a56: 0x000a, 0x2a57: 0x000a,\n\t0x2a58: 0x000a, 0x2a59: 0x000a, 0x2a5a: 0x000a, 0x2a5b: 0x000a, 0x2a5c: 0x000a, 0x2a5d: 0x000a,\n\t0x2a5e: 0x000a, 0x2a5f: 0x000a, 0x2a60: 0x000a, 0x2a61: 0x000a, 0x2a62: 0x000a, 0x2a63: 0x000a,\n\t0x2a64: 0x000a, 0x2a65: 0x000a,\n\t0x2a7f: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a80: 0x000c, 0x2a81: 0x000c,\n\t0x2ab3: 0x000c, 0x2ab4: 0x000c, 0x2ab5: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c,\n\t0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,\n\t0x2aea: 0x000c, 0x2aeb: 0x000c, 0x2aed: 0x000c, 0x2aee: 0x000c, 0x2aef: 0x000c,\n\t0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af2: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b33: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c, 0x2b41: 0x000c,\n\t0x2b76: 0x000c, 0x2b77: 0x000c, 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,\n\t0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b89: 0x000c, 0x2b8a: 0x000c, 0x2b8b: 0x000c,\n\t0x2b8c: 0x000c, 0x2b8f: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bef: 0x000c,\n\t0x2bf0: 0x000c, 0x2bf1: 0x000c, 0x2bf4: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c,\n\t0x2bfe: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c1f: 0x000c, 0x2c23: 0x000c,\n\t0x2c24: 0x000c, 0x2c25: 0x000c, 0x2c26: 0x000c, 0x2c27: 0x000c, 0x2c28: 0x000c, 0x2c29: 0x000c,\n\t0x2c2a: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c,\n\t0x2c66: 0x000c, 0x2c67: 0x000c, 0x2c68: 0x000c, 0x2c69: 0x000c,\n\t0x2c6a: 0x000c, 0x2c6b: 0x000c, 0x2c6c: 0x000c,\n\t0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb8: 0x000c, 0x2cb9: 0x000c, 0x2cba: 0x000c, 0x2cbb: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbe: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc2: 0x000c, 0x2cc3: 0x000c, 0x2cc4: 0x000c,\n\t0x2cc6: 0x000c,\n\t0x2cde: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c, 0x2d42: 0x000c, 0x2d43: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2dbc: 0x000c, 0x2dbd: 0x000c, 0x2dbf: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc0: 0x000c,\n\t0x2ddc: 0x000c, 0x2ddd: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,\n\t0x2e3d: 0x000c, 0x2e3f: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e40: 0x000c,\n\t0x2e60: 0x000a, 0x2e61: 0x000a, 0x2e62: 0x000a, 0x2e63: 0x000a,\n\t0x2e64: 0x000a, 0x2e65: 0x000a, 0x2e66: 0x000a, 0x2e67: 0x000a, 0x2e68: 0x000a, 0x2e69: 0x000a,\n\t0x2e6a: 0x000a, 0x2e6b: 0x000a, 0x2e6c: 0x000a,\n\t// Block 0xba, offset 0x2e80\n\t0x2eab: 0x000c, 0x2ead: 0x000c,\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb7: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2edd: 0x000c,\n\t0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,\n\t0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee7: 0x000c, 0x2ee8: 0x000c, 0x2ee9: 0x000c,\n\t0x2eea: 0x000c, 0x2eeb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f2f: 0x000c,\n\t0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f36: 0x000c, 0x2f37: 0x000c, 0x2f39: 0x000c, 0x2f3a: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7e: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f83: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fd4: 0x000c, 0x2fd5: 0x000c, 0x2fd6: 0x000c, 0x2fd7: 0x000c,\n\t0x2fda: 0x000c, 0x2fdb: 0x000c,\n\t0x2fe0: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3006: 0x000c, 0x3009: 0x000c, 0x300a: 0x000c,\n\t0x3033: 0x000c, 0x3034: 0x000c, 0x3035: 0x000c,\n\t0x3036: 0x000c, 0x3037: 0x000c, 0x3038: 0x000c, 0x303b: 0x000c,\n\t0x303c: 0x000c, 0x303d: 0x000c, 0x303e: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3047: 0x000c,\n\t0x3051: 0x000c,\n\t0x3052: 0x000c, 0x3053: 0x000c, 0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c,\n\t0x3059: 0x000c, 0x305a: 0x000c, 0x305b: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x308a: 0x000c, 0x308b: 0x000c,\n\t0x308c: 0x000c, 0x308d: 0x000c, 0x308e: 0x000c, 0x308f: 0x000c, 0x3090: 0x000c, 0x3091: 0x000c,\n\t0x3092: 0x000c, 0x3093: 0x000c, 0x3094: 0x000c, 0x3095: 0x000c, 0x3096: 0x000c,\n\t0x3098: 0x000c, 0x3099: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, 0x30f5: 0x000c,\n\t0x30f6: 0x000c, 0x30f8: 0x000c, 0x30f9: 0x000c, 0x30fa: 0x000c, 0x30fb: 0x000c,\n\t0x30fc: 0x000c, 0x30fd: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c, 0x3117: 0x000c,\n\t0x3118: 0x000c, 0x3119: 0x000c, 0x311a: 0x000c, 0x311b: 0x000c, 0x311c: 0x000c, 0x311d: 0x000c,\n\t0x311e: 0x000c, 0x311f: 0x000c, 0x3120: 0x000c, 0x3121: 0x000c, 0x3122: 0x000c, 0x3123: 0x000c,\n\t0x3124: 0x000c, 0x3125: 0x000c, 0x3126: 0x000c, 0x3127: 0x000c,\n\t0x312a: 0x000c, 0x312b: 0x000c, 0x312c: 0x000c, 0x312d: 0x000c, 0x312e: 0x000c, 0x312f: 0x000c,\n\t0x3130: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3135: 0x000c,\n\t0x3136: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c, 0x317a: 0x000c,\n\t0x317c: 0x000c, 0x317d: 0x000c, 0x317f: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x3180: 0x000c, 0x3181: 0x000c, 0x3182: 0x000c, 0x3183: 0x000c, 0x3184: 0x000c, 0x3185: 0x000c,\n\t0x3187: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d5: 0x000c, 0x31d7: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3233: 0x000c, 0x3234: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3255: 0x000a, 0x3256: 0x000a, 0x3257: 0x000a,\n\t0x3258: 0x000a, 0x3259: 0x000a, 0x325a: 0x000a, 0x325b: 0x000a, 0x325c: 0x000a, 0x325d: 0x0004,\n\t0x325e: 0x0004, 0x325f: 0x0004, 0x3260: 0x0004, 0x3261: 0x000a, 0x3262: 0x000a, 0x3263: 0x000a,\n\t0x3264: 0x000a, 0x3265: 0x000a, 0x3266: 0x000a, 0x3267: 0x000a, 0x3268: 0x000a, 0x3269: 0x000a,\n\t0x326a: 0x000a, 0x326b: 0x000a, 0x326c: 0x000a, 0x326d: 0x000a, 0x326e: 0x000a, 0x326f: 0x000a,\n\t0x3270: 0x000a, 0x3271: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x32b0: 0x000c, 0x32b1: 0x000c, 0x32b2: 0x000c, 0x32b3: 0x000c, 0x32b4: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,\n\t0x32f6: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x330f: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x334f: 0x000c, 0x3350: 0x000c, 0x3351: 0x000c,\n\t0x3352: 0x000c,\n\t// Block 0xce, offset 0x3380\n\t0x33a2: 0x000a,\n\t0x33a4: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33dd: 0x000c,\n\t0x33de: 0x000c, 0x33e0: 0x000b, 0x33e1: 0x000b, 0x33e2: 0x000b, 0x33e3: 0x000b,\n\t// Block 0xd0, offset 0x3400\n\t0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,\n\t0x3433: 0x000b, 0x3434: 0x000b, 0x3435: 0x000b,\n\t0x3436: 0x000b, 0x3437: 0x000b, 0x3438: 0x000b, 0x3439: 0x000b, 0x343a: 0x000b, 0x343b: 0x000c,\n\t0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3445: 0x000c,\n\t0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,\n\t0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, 0x346d: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000c, 0x3483: 0x000c, 0x3484: 0x000c, 0x3485: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a, 0x34d3: 0x000a, 0x34d4: 0x000a, 0x34d5: 0x000a, 0x34d6: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x351b: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3555: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x358f: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c9: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3603: 0x000a,\n\t0x360e: 0x0002, 0x360f: 0x0002, 0x3610: 0x0002, 0x3611: 0x0002,\n\t0x3612: 0x0002, 0x3613: 0x0002, 0x3614: 0x0002, 0x3615: 0x0002, 0x3616: 0x0002, 0x3617: 0x0002,\n\t0x3618: 0x0002, 0x3619: 0x0002, 0x361a: 0x0002, 0x361b: 0x0002, 0x361c: 0x0002, 0x361d: 0x0002,\n\t0x361e: 0x0002, 0x361f: 0x0002, 0x3620: 0x0002, 0x3621: 0x0002, 0x3622: 0x0002, 0x3623: 0x0002,\n\t0x3624: 0x0002, 0x3625: 0x0002, 0x3626: 0x0002, 0x3627: 0x0002, 0x3628: 0x0002, 0x3629: 0x0002,\n\t0x362a: 0x0002, 0x362b: 0x0002, 0x362c: 0x0002, 0x362d: 0x0002, 0x362e: 0x0002, 0x362f: 0x0002,\n\t0x3630: 0x0002, 0x3631: 0x0002, 0x3632: 0x0002, 0x3633: 0x0002, 0x3634: 0x0002, 0x3635: 0x0002,\n\t0x3636: 0x0002, 0x3637: 0x0002, 0x3638: 0x0002, 0x3639: 0x0002, 0x363a: 0x0002, 0x363b: 0x0002,\n\t0x363c: 0x0002, 0x363d: 0x0002, 0x363e: 0x0002, 0x363f: 0x0002,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000c, 0x3641: 0x000c, 0x3642: 0x000c, 0x3643: 0x000c, 0x3644: 0x000c, 0x3645: 0x000c,\n\t0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x000c,\n\t0x364c: 0x000c, 0x364d: 0x000c, 0x364e: 0x000c, 0x364f: 0x000c, 0x3650: 0x000c, 0x3651: 0x000c,\n\t0x3652: 0x000c, 0x3653: 0x000c, 0x3654: 0x000c, 0x3655: 0x000c, 0x3656: 0x000c, 0x3657: 0x000c,\n\t0x3658: 0x000c, 0x3659: 0x000c, 0x365a: 0x000c, 0x365b: 0x000c, 0x365c: 0x000c, 0x365d: 0x000c,\n\t0x365e: 0x000c, 0x365f: 0x000c, 0x3660: 0x000c, 0x3661: 0x000c, 0x3662: 0x000c, 0x3663: 0x000c,\n\t0x3664: 0x000c, 0x3665: 0x000c, 0x3666: 0x000c, 0x3667: 0x000c, 0x3668: 0x000c, 0x3669: 0x000c,\n\t0x366a: 0x000c, 0x366b: 0x000c, 0x366c: 0x000c, 0x366d: 0x000c, 0x366e: 0x000c, 0x366f: 0x000c,\n\t0x3670: 0x000c, 0x3671: 0x000c, 0x3672: 0x000c, 0x3673: 0x000c, 0x3674: 0x000c, 0x3675: 0x000c,\n\t0x3676: 0x000c, 0x367b: 0x000c,\n\t0x367c: 0x000c, 0x367d: 0x000c, 0x367e: 0x000c, 0x367f: 0x000c,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000c, 0x3681: 0x000c, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000c,\n\t0x3686: 0x000c, 0x3687: 0x000c, 0x3688: 0x000c, 0x3689: 0x000c, 0x368a: 0x000c, 0x368b: 0x000c,\n\t0x368c: 0x000c, 0x368d: 0x000c, 0x368e: 0x000c, 0x368f: 0x000c, 0x3690: 0x000c, 0x3691: 0x000c,\n\t0x3692: 0x000c, 0x3693: 0x000c, 0x3694: 0x000c, 0x3695: 0x000c, 0x3696: 0x000c, 0x3697: 0x000c,\n\t0x3698: 0x000c, 0x3699: 0x000c, 0x369a: 0x000c, 0x369b: 0x000c, 0x369c: 0x000c, 0x369d: 0x000c,\n\t0x369e: 0x000c, 0x369f: 0x000c, 0x36a0: 0x000c, 0x36a1: 0x000c, 0x36a2: 0x000c, 0x36a3: 0x000c,\n\t0x36a4: 0x000c, 0x36a5: 0x000c, 0x36a6: 0x000c, 0x36a7: 0x000c, 0x36a8: 0x000c, 0x36a9: 0x000c,\n\t0x36aa: 0x000c, 0x36ab: 0x000c, 0x36ac: 0x000c,\n\t0x36b5: 0x000c,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c4: 0x000c,\n\t0x36db: 0x000c, 0x36dc: 0x000c, 0x36dd: 0x000c,\n\t0x36de: 0x000c, 0x36df: 0x000c, 0x36e1: 0x000c, 0x36e2: 0x000c, 0x36e3: 0x000c,\n\t0x36e4: 0x000c, 0x36e5: 0x000c, 0x36e6: 0x000c, 0x36e7: 0x000c, 0x36e8: 0x000c, 0x36e9: 0x000c,\n\t0x36ea: 0x000c, 0x36eb: 0x000c, 0x36ec: 0x000c, 0x36ed: 0x000c, 0x36ee: 0x000c, 0x36ef: 0x000c,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000c, 0x3701: 0x000c, 0x3702: 0x000c, 0x3703: 0x000c, 0x3704: 0x000c, 0x3705: 0x000c,\n\t0x3706: 0x000c, 0x3708: 0x000c, 0x3709: 0x000c, 0x370a: 0x000c, 0x370b: 0x000c,\n\t0x370c: 0x000c, 0x370d: 0x000c, 0x370e: 0x000c, 0x370f: 0x000c, 0x3710: 0x000c, 0x3711: 0x000c,\n\t0x3712: 0x000c, 0x3713: 0x000c, 0x3714: 0x000c, 0x3715: 0x000c, 0x3716: 0x000c, 0x3717: 0x000c,\n\t0x3718: 0x000c, 0x371b: 0x000c, 0x371c: 0x000c, 0x371d: 0x000c,\n\t0x371e: 0x000c, 0x371f: 0x000c, 0x3720: 0x000c, 0x3721: 0x000c, 0x3723: 0x000c,\n\t0x3724: 0x000c, 0x3726: 0x000c, 0x3727: 0x000c, 0x3728: 0x000c, 0x3729: 0x000c,\n\t0x372a: 0x000c,\n\t// Block 0xdd, offset 0x3740\n\t0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,\n\t0x377f: 0x0004,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x0001, 0x3781: 0x0001, 0x3782: 0x0001, 0x3783: 0x0001, 0x3784: 0x0001, 0x3785: 0x0001,\n\t0x3786: 0x0001, 0x3787: 0x0001, 0x3788: 0x0001, 0x3789: 0x0001, 0x378a: 0x0001, 0x378b: 0x0001,\n\t0x378c: 0x0001, 0x378d: 0x0001, 0x378e: 0x0001, 0x378f: 0x0001, 0x3790: 0x000c, 0x3791: 0x000c,\n\t0x3792: 0x000c, 0x3793: 0x000c, 0x3794: 0x000c, 0x3795: 0x000c, 0x3796: 0x000c, 0x3797: 0x0001,\n\t0x3798: 0x0001, 0x3799: 0x0001, 0x379a: 0x0001, 0x379b: 0x0001, 0x379c: 0x0001, 0x379d: 0x0001,\n\t0x379e: 0x0001, 0x379f: 0x0001, 0x37a0: 0x0001, 0x37a1: 0x0001, 0x37a2: 0x0001, 0x37a3: 0x0001,\n\t0x37a4: 0x0001, 0x37a5: 0x0001, 0x37a6: 0x0001, 0x37a7: 0x0001, 0x37a8: 0x0001, 0x37a9: 0x0001,\n\t0x37aa: 0x0001, 0x37ab: 0x0001, 0x37ac: 0x0001, 0x37ad: 0x0001, 0x37ae: 0x0001, 0x37af: 0x0001,\n\t0x37b0: 0x0001, 0x37b1: 0x0001, 0x37b2: 0x0001, 0x37b3: 0x0001, 0x37b4: 0x0001, 0x37b5: 0x0001,\n\t0x37b6: 0x0001, 0x37b7: 0x0001, 0x37b8: 0x0001, 0x37b9: 0x0001, 0x37ba: 0x0001, 0x37bb: 0x0001,\n\t0x37bc: 0x0001, 0x37bd: 0x0001, 0x37be: 0x0001, 0x37bf: 0x0001,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x0001, 0x37c1: 0x0001, 0x37c2: 0x0001, 0x37c3: 0x0001, 0x37c4: 0x000c, 0x37c5: 0x000c,\n\t0x37c6: 0x000c, 0x37c7: 0x000c, 0x37c8: 0x000c, 0x37c9: 0x000c, 0x37ca: 0x000c, 0x37cb: 0x0001,\n\t0x37cc: 0x0001, 0x37cd: 0x0001, 0x37ce: 0x0001, 0x37cf: 0x0001, 0x37d0: 0x0001, 0x37d1: 0x0001,\n\t0x37d2: 0x0001, 0x37d3: 0x0001, 0x37d4: 0x0001, 0x37d5: 0x0001, 0x37d6: 0x0001, 0x37d7: 0x0001,\n\t0x37d8: 0x0001, 0x37d9: 0x0001, 0x37da: 0x0001, 0x37db: 0x0001, 0x37dc: 0x0001, 0x37dd: 0x0001,\n\t0x37de: 0x0001, 0x37df: 0x0001, 0x37e0: 0x0001, 0x37e1: 0x0001, 0x37e2: 0x0001, 0x37e3: 0x0001,\n\t0x37e4: 0x0001, 0x37e5: 0x0001, 0x37e6: 0x0001, 0x37e7: 0x0001, 0x37e8: 0x0001, 0x37e9: 0x0001,\n\t0x37ea: 0x0001, 0x37eb: 0x0001, 0x37ec: 0x0001, 0x37ed: 0x0001, 0x37ee: 0x0001, 0x37ef: 0x0001,\n\t0x37f0: 0x0001, 0x37f1: 0x0001, 0x37f2: 0x0001, 0x37f3: 0x0001, 0x37f4: 0x0001, 0x37f5: 0x0001,\n\t0x37f6: 0x0001, 0x37f7: 0x0001, 0x37f8: 0x0001, 0x37f9: 0x0001, 0x37fa: 0x0001, 0x37fb: 0x0001,\n\t0x37fc: 0x0001, 0x37fd: 0x0001, 0x37fe: 0x0001, 0x37ff: 0x0001,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000d, 0x3801: 0x000d, 0x3802: 0x000d, 0x3803: 0x000d, 0x3804: 0x000d, 0x3805: 0x000d,\n\t0x3806: 0x000d, 0x3807: 0x000d, 0x3808: 0x000d, 0x3809: 0x000d, 0x380a: 0x000d, 0x380b: 0x000d,\n\t0x380c: 0x000d, 0x380d: 0x000d, 0x380e: 0x000d, 0x380f: 0x000d, 0x3810: 0x0001, 0x3811: 0x0001,\n\t0x3812: 0x0001, 0x3813: 0x0001, 0x3814: 0x0001, 0x3815: 0x0001, 0x3816: 0x0001, 0x3817: 0x0001,\n\t0x3818: 0x0001, 0x3819: 0x0001, 0x381a: 0x0001, 0x381b: 0x0001, 0x381c: 0x0001, 0x381d: 0x0001,\n\t0x381e: 0x0001, 0x381f: 0x0001, 0x3820: 0x0001, 0x3821: 0x0001, 0x3822: 0x0001, 0x3823: 0x0001,\n\t0x3824: 0x0001, 0x3825: 0x0001, 0x3826: 0x0001, 0x3827: 0x0001, 0x3828: 0x0001, 0x3829: 0x0001,\n\t0x382a: 0x0001, 0x382b: 0x0001, 0x382c: 0x0001, 0x382d: 0x0001, 0x382e: 0x0001, 0x382f: 0x0001,\n\t0x3830: 0x0001, 0x3831: 0x0001, 0x3832: 0x0001, 0x3833: 0x0001, 0x3834: 0x0001, 0x3835: 0x0001,\n\t0x3836: 0x0001, 0x3837: 0x0001, 0x3838: 0x0001, 0x3839: 0x0001, 0x383a: 0x0001, 0x383b: 0x0001,\n\t0x383c: 0x0001, 0x383d: 0x0001, 0x383e: 0x0001, 0x383f: 0x0001,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000d, 0x3841: 0x000d, 0x3842: 0x000d, 0x3843: 0x000d, 0x3844: 0x000d, 0x3845: 0x000d,\n\t0x3846: 0x000d, 0x3847: 0x000d, 0x3848: 0x000d, 0x3849: 0x000d, 0x384a: 0x000d, 0x384b: 0x000d,\n\t0x384c: 0x000d, 0x384d: 0x000d, 0x384e: 0x000d, 0x384f: 0x000d, 0x3850: 0x000d, 0x3851: 0x000d,\n\t0x3852: 0x000d, 0x3853: 0x000d, 0x3854: 0x000d, 0x3855: 0x000d, 0x3856: 0x000d, 0x3857: 0x000d,\n\t0x3858: 0x000d, 0x3859: 0x000d, 0x385a: 0x000d, 0x385b: 0x000d, 0x385c: 0x000d, 0x385d: 0x000d,\n\t0x385e: 0x000d, 0x385f: 0x000d, 0x3860: 0x000d, 0x3861: 0x000d, 0x3862: 0x000d, 0x3863: 0x000d,\n\t0x3864: 0x000d, 0x3865: 0x000d, 0x3866: 0x000d, 0x3867: 0x000d, 0x3868: 0x000d, 0x3869: 0x000d,\n\t0x386a: 0x000d, 0x386b: 0x000d, 0x386c: 0x000d, 0x386d: 0x000d, 0x386e: 0x000d, 0x386f: 0x000d,\n\t0x3870: 0x000a, 0x3871: 0x000a, 0x3872: 0x000d, 0x3873: 0x000d, 0x3874: 0x000d, 0x3875: 0x000d,\n\t0x3876: 0x000d, 0x3877: 0x000d, 0x3878: 0x000d, 0x3879: 0x000d, 0x387a: 0x000d, 0x387b: 0x000d,\n\t0x387c: 0x000d, 0x387d: 0x000d, 0x387e: 0x000d, 0x387f: 0x000d,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,\n\t0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,\n\t0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,\n\t0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, 0x38bf: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a,\n\t0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a,\n\t0x38f1: 0x000a, 0x38f2: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,\n\t0x38f6: 0x000a, 0x38f7: 0x000a, 0x38f8: 0x000a, 0x38f9: 0x000a, 0x38fa: 0x000a, 0x38fb: 0x000a,\n\t0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,\n\t0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,\n\t0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x0002, 0x3941: 0x0002, 0x3942: 0x0002, 0x3943: 0x0002, 0x3944: 0x0002, 0x3945: 0x0002,\n\t0x3946: 0x0002, 0x3947: 0x0002, 0x3948: 0x0002, 0x3949: 0x0002, 0x394a: 0x0002, 0x394b: 0x000a,\n\t0x394c: 0x000a, 0x394d: 0x000a, 0x394e: 0x000a, 0x394f: 0x000a,\n\t0x396f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, 0x39ae: 0x000a, 0x39af: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39ed: 0x000a,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,\n\t0x3a24: 0x000a, 0x3a25: 0x000a,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,\n\t0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,\n\t0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,\n\t0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,\n\t0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a, 0x3a63: 0x000a,\n\t0x3a64: 0x000a, 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,\n\t0x3a6a: 0x000a, 0x3a6b: 0x000a, 0x3a6c: 0x000a,\n\t0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,\n\t0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,\n\t0x3a7c: 0x000a,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,\n\t0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a, 0x3a8b: 0x000a,\n\t0x3a8c: 0x000a, 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,\n\t0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,\n\t0x3a98: 0x000a,\n\t0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,\n\t0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,\n\t0x3aaa: 0x000a, 0x3aab: 0x000a,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,\n\t0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,\n\t0x3ad0: 0x000a, 0x3ad1: 0x000a,\n\t0x3ad2: 0x000a, 0x3ad3: 0x000a, 0x3ad4: 0x000a, 0x3ad5: 0x000a, 0x3ad6: 0x000a, 0x3ad7: 0x000a,\n\t0x3ad8: 0x000a, 0x3ad9: 0x000a, 0x3ada: 0x000a, 0x3adb: 0x000a, 0x3adc: 0x000a, 0x3add: 0x000a,\n\t0x3ade: 0x000a, 0x3adf: 0x000a, 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,\n\t0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,\n\t0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a, 0x3aee: 0x000a, 0x3aef: 0x000a,\n\t0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a, 0x3af4: 0x000a, 0x3af5: 0x000a,\n\t0x3af6: 0x000a, 0x3af7: 0x000a, 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a, 0x3afb: 0x000a,\n\t0x3afc: 0x000a, 0x3afd: 0x000a, 0x3afe: 0x000a, 0x3aff: 0x000a,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a, 0x3b03: 0x000a, 0x3b04: 0x000a, 0x3b05: 0x000a,\n\t0x3b06: 0x000a, 0x3b07: 0x000a,\n\t0x3b10: 0x000a, 0x3b11: 0x000a,\n\t0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a, 0x3b16: 0x000a, 0x3b17: 0x000a,\n\t0x3b18: 0x000a, 0x3b19: 0x000a,\n\t0x3b20: 0x000a, 0x3b21: 0x000a, 0x3b22: 0x000a, 0x3b23: 0x000a,\n\t0x3b24: 0x000a, 0x3b25: 0x000a, 0x3b26: 0x000a, 0x3b27: 0x000a, 0x3b28: 0x000a, 0x3b29: 0x000a,\n\t0x3b2a: 0x000a, 0x3b2b: 0x000a, 0x3b2c: 0x000a, 0x3b2d: 0x000a, 0x3b2e: 0x000a, 0x3b2f: 0x000a,\n\t0x3b30: 0x000a, 0x3b31: 0x000a, 0x3b32: 0x000a, 0x3b33: 0x000a, 0x3b34: 0x000a, 0x3b35: 0x000a,\n\t0x3b36: 0x000a, 0x3b37: 0x000a, 0x3b38: 0x000a, 0x3b39: 0x000a, 0x3b3a: 0x000a, 0x3b3b: 0x000a,\n\t0x3b3c: 0x000a, 0x3b3d: 0x000a, 0x3b3e: 0x000a, 0x3b3f: 0x000a,\n\t// Block 0xed, offset 0x3b40\n\t0x3b40: 0x000a, 0x3b41: 0x000a, 0x3b42: 0x000a, 0x3b43: 0x000a, 0x3b44: 0x000a, 0x3b45: 0x000a,\n\t0x3b46: 0x000a, 0x3b47: 0x000a,\n\t0x3b50: 0x000a, 0x3b51: 0x000a,\n\t0x3b52: 0x000a, 0x3b53: 0x000a, 0x3b54: 0x000a, 0x3b55: 0x000a, 0x3b56: 0x000a, 0x3b57: 0x000a,\n\t0x3b58: 0x000a, 0x3b59: 0x000a, 0x3b5a: 0x000a, 0x3b5b: 0x000a, 0x3b5c: 0x000a, 0x3b5d: 0x000a,\n\t0x3b5e: 0x000a, 0x3b5f: 0x000a, 0x3b60: 0x000a, 0x3b61: 0x000a, 0x3b62: 0x000a, 0x3b63: 0x000a,\n\t0x3b64: 0x000a, 0x3b65: 0x000a, 0x3b66: 0x000a, 0x3b67: 0x000a, 0x3b68: 0x000a, 0x3b69: 0x000a,\n\t0x3b6a: 0x000a, 0x3b6b: 0x000a, 0x3b6c: 0x000a, 0x3b6d: 0x000a,\n\t0x3b70: 0x000a, 0x3b71: 0x000a,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a,\n\t0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a,\n\t0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a,\n\t0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a,\n\t0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a,\n\t0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a,\n\t0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a,\n\t0x3baa: 0x000a, 0x3bab: 0x000a, 0x3bac: 0x000a, 0x3bad: 0x000a, 0x3bae: 0x000a, 0x3baf: 0x000a,\n\t0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a,\n\t0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a,\n\t0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a,\n\t0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a,\n\t0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a,\n\t0x3bd2: 0x000a, 0x3bd3: 0x000a, 0x3bd4: 0x000a, 0x3bd5: 0x000a, 0x3bd6: 0x000a, 0x3bd7: 0x000a,\n\t0x3bd8: 0x000a, 0x3bd9: 0x000a, 0x3bda: 0x000a, 0x3bdb: 0x000a, 0x3bdc: 0x000a, 0x3bdd: 0x000a,\n\t0x3bde: 0x000a, 0x3bdf: 0x000a, 0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a,\n\t0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a,\n\t0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a, 0x3bef: 0x000a,\n\t0x3bf0: 0x000a, 0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a,\n\t0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a,\n\t0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a,\n\t// Block 0xf0, offset 0x3c00\n\t0x3c00: 0x000a, 0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a,\n\t0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a,\n\t0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c10: 0x000a, 0x3c11: 0x000a,\n\t0x3c12: 0x000a, 0x3c13: 0x000a,\n\t0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a,\n\t0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a,\n\t0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a,\n\t0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a,\n\t0x3c38: 0x000a, 0x3c39: 0x000a, 0x3c3a: 0x000a,\n\t// Block 0xf1, offset 0x3c40\n\t0x3c40: 0x000a, 0x3c41: 0x000a, 0x3c42: 0x000a, 0x3c43: 0x000a, 0x3c44: 0x000a, 0x3c45: 0x000a,\n\t0x3c46: 0x000a,\n\t0x3c50: 0x000a, 0x3c51: 0x000a,\n\t0x3c52: 0x000a, 0x3c53: 0x000a, 0x3c54: 0x000a, 0x3c55: 0x000a, 0x3c56: 0x000a, 0x3c57: 0x000a,\n\t0x3c58: 0x000a, 0x3c59: 0x000a, 0x3c5a: 0x000a, 0x3c5b: 0x000a, 0x3c5c: 0x000a, 0x3c5d: 0x000a,\n\t0x3c5e: 0x000a, 0x3c5f: 0x000a, 0x3c60: 0x000a, 0x3c61: 0x000a, 0x3c62: 0x000a, 0x3c63: 0x000a,\n\t0x3c64: 0x000a, 0x3c65: 0x000a, 0x3c66: 0x000a, 0x3c67: 0x000a, 0x3c68: 0x000a,\n\t0x3c70: 0x000a, 0x3c71: 0x000a, 0x3c72: 0x000a, 0x3c73: 0x000a, 0x3c74: 0x000a, 0x3c75: 0x000a,\n\t0x3c76: 0x000a,\n\t// Block 0xf2, offset 0x3c80\n\t0x3c80: 0x000a, 0x3c81: 0x000a, 0x3c82: 0x000a,\n\t0x3c90: 0x000a, 0x3c91: 0x000a,\n\t0x3c92: 0x000a, 0x3c93: 0x000a, 0x3c94: 0x000a, 0x3c95: 0x000a, 0x3c96: 0x000a,\n\t// Block 0xf3, offset 0x3cc0\n\t0x3cc0: 0x000a, 0x3cc1: 0x000a, 0x3cc2: 0x000a, 0x3cc3: 0x000a, 0x3cc4: 0x000a, 0x3cc5: 0x000a,\n\t0x3cc6: 0x000a, 0x3cc7: 0x000a, 0x3cc8: 0x000a, 0x3cc9: 0x000a, 0x3cca: 0x000a, 0x3ccb: 0x000a,\n\t0x3ccc: 0x000a, 0x3ccd: 0x000a, 0x3cce: 0x000a, 0x3ccf: 0x000a, 0x3cd0: 0x000a, 0x3cd1: 0x000a,\n\t0x3cd2: 0x000a, 0x3cd4: 0x000a, 0x3cd5: 0x000a, 0x3cd6: 0x000a, 0x3cd7: 0x000a,\n\t0x3cd8: 0x000a, 0x3cd9: 0x000a, 0x3cda: 0x000a, 0x3cdb: 0x000a, 0x3cdc: 0x000a, 0x3cdd: 0x000a,\n\t0x3cde: 0x000a, 0x3cdf: 0x000a, 0x3ce0: 0x000a, 0x3ce1: 0x000a, 0x3ce2: 0x000a, 0x3ce3: 0x000a,\n\t0x3ce4: 0x000a, 0x3ce5: 0x000a, 0x3ce6: 0x000a, 0x3ce7: 0x000a, 0x3ce8: 0x000a, 0x3ce9: 0x000a,\n\t0x3cea: 0x000a, 0x3ceb: 0x000a, 0x3cec: 0x000a, 0x3ced: 0x000a, 0x3cee: 0x000a, 0x3cef: 0x000a,\n\t0x3cf0: 0x000a, 0x3cf1: 0x000a, 0x3cf2: 0x000a, 0x3cf3: 0x000a, 0x3cf4: 0x000a, 0x3cf5: 0x000a,\n\t0x3cf6: 0x000a, 0x3cf7: 0x000a, 0x3cf8: 0x000a, 0x3cf9: 0x000a, 0x3cfa: 0x000a, 0x3cfb: 0x000a,\n\t0x3cfc: 0x000a, 0x3cfd: 0x000a, 0x3cfe: 0x000a, 0x3cff: 0x000a,\n\t// Block 0xf4, offset 0x3d00\n\t0x3d00: 0x000a, 0x3d01: 0x000a, 0x3d02: 0x000a, 0x3d03: 0x000a, 0x3d04: 0x000a, 0x3d05: 0x000a,\n\t0x3d06: 0x000a, 0x3d07: 0x000a, 0x3d08: 0x000a, 0x3d09: 0x000a, 0x3d0a: 0x000a,\n\t0x3d30: 0x0002, 0x3d31: 0x0002, 0x3d32: 0x0002, 0x3d33: 0x0002, 0x3d34: 0x0002, 0x3d35: 0x0002,\n\t0x3d36: 0x0002, 0x3d37: 0x0002, 0x3d38: 0x0002, 0x3d39: 0x0002,\n\t// Block 0xf5, offset 0x3d40\n\t0x3d7e: 0x000b, 0x3d7f: 0x000b,\n\t// Block 0xf6, offset 0x3d80\n\t0x3d80: 0x000b, 0x3d81: 0x000b, 0x3d82: 0x000b, 0x3d83: 0x000b, 0x3d84: 0x000b, 0x3d85: 0x000b,\n\t0x3d86: 0x000b, 0x3d87: 0x000b, 0x3d88: 0x000b, 0x3d89: 0x000b, 0x3d8a: 0x000b, 0x3d8b: 0x000b,\n\t0x3d8c: 0x000b, 0x3d8d: 0x000b, 0x3d8e: 0x000b, 0x3d8f: 0x000b, 0x3d90: 0x000b, 0x3d91: 0x000b,\n\t0x3d92: 0x000b, 0x3d93: 0x000b, 0x3d94: 0x000b, 0x3d95: 0x000b, 0x3d96: 0x000b, 0x3d97: 0x000b,\n\t0x3d98: 0x000b, 0x3d99: 0x000b, 0x3d9a: 0x000b, 0x3d9b: 0x000b, 0x3d9c: 0x000b, 0x3d9d: 0x000b,\n\t0x3d9e: 0x000b, 0x3d9f: 0x000b, 0x3da0: 0x000b, 0x3da1: 0x000b, 0x3da2: 0x000b, 0x3da3: 0x000b,\n\t0x3da4: 0x000b, 0x3da5: 0x000b, 0x3da6: 0x000b, 0x3da7: 0x000b, 0x3da8: 0x000b, 0x3da9: 0x000b,\n\t0x3daa: 0x000b, 0x3dab: 0x000b, 0x3dac: 0x000b, 0x3dad: 0x000b, 0x3dae: 0x000b, 0x3daf: 0x000b,\n\t0x3db0: 0x000b, 0x3db1: 0x000b, 0x3db2: 0x000b, 0x3db3: 0x000b, 0x3db4: 0x000b, 0x3db5: 0x000b,\n\t0x3db6: 0x000b, 0x3db7: 0x000b, 0x3db8: 0x000b, 0x3db9: 0x000b, 0x3dba: 0x000b, 0x3dbb: 0x000b,\n\t0x3dbc: 0x000b, 0x3dbd: 0x000b, 0x3dbe: 0x000b, 0x3dbf: 0x000b,\n\t// Block 0xf7, offset 0x3dc0\n\t0x3dc0: 0x000c, 0x3dc1: 0x000c, 0x3dc2: 0x000c, 0x3dc3: 0x000c, 0x3dc4: 0x000c, 0x3dc5: 0x000c,\n\t0x3dc6: 0x000c, 0x3dc7: 0x000c, 0x3dc8: 0x000c, 0x3dc9: 0x000c, 0x3dca: 0x000c, 0x3dcb: 0x000c,\n\t0x3dcc: 0x000c, 0x3dcd: 0x000c, 0x3dce: 0x000c, 0x3dcf: 0x000c, 0x3dd0: 0x000c, 0x3dd1: 0x000c,\n\t0x3dd2: 0x000c, 0x3dd3: 0x000c, 0x3dd4: 0x000c, 0x3dd5: 0x000c, 0x3dd6: 0x000c, 0x3dd7: 0x000c,\n\t0x3dd8: 0x000c, 0x3dd9: 0x000c, 0x3dda: 0x000c, 0x3ddb: 0x000c, 0x3ddc: 0x000c, 0x3ddd: 0x000c,\n\t0x3dde: 0x000c, 0x3ddf: 0x000c, 0x3de0: 0x000c, 0x3de1: 0x000c, 0x3de2: 0x000c, 0x3de3: 0x000c,\n\t0x3de4: 0x000c, 0x3de5: 0x000c, 0x3de6: 0x000c, 0x3de7: 0x000c, 0x3de8: 0x000c, 0x3de9: 0x000c,\n\t0x3dea: 0x000c, 0x3deb: 0x000c, 0x3dec: 0x000c, 0x3ded: 0x000c, 0x3dee: 0x000c, 0x3def: 0x000c,\n\t0x3df0: 0x000b, 0x3df1: 0x000b, 0x3df2: 0x000b, 0x3df3: 0x000b, 0x3df4: 0x000b, 0x3df5: 0x000b,\n\t0x3df6: 0x000b, 0x3df7: 0x000b, 0x3df8: 0x000b, 0x3df9: 0x000b, 0x3dfa: 0x000b, 0x3dfb: 0x000b,\n\t0x3dfc: 0x000b, 0x3dfd: 0x000b, 0x3dfe: 0x000b, 0x3dff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,\n\t0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x32, 0x141: 0x33, 0x142: 0x34,\n\t0x14d: 0x35, 0x14e: 0x36,\n\t0x150: 0x37,\n\t0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,\n\t0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,\n\t0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,\n\t0x170: 0x4a, 0x173: 0x4b, 0x177: 0x4c,\n\t0x17e: 0x4d, 0x17f: 0x4e,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4f, 0x181: 0x50, 0x182: 0x51, 0x183: 0x52, 0x184: 0x53, 0x185: 0x54, 0x186: 0x55, 0x187: 0x56,\n\t0x188: 0x57, 0x189: 0x56, 0x18a: 0x56, 0x18b: 0x56, 0x18c: 0x58, 0x18d: 0x59, 0x18e: 0x5a, 0x18f: 0x56,\n\t0x190: 0x5b, 0x191: 0x5c, 0x192: 0x5d, 0x193: 0x5e, 0x194: 0x56, 0x195: 0x56, 0x196: 0x56, 0x197: 0x56,\n\t0x198: 0x56, 0x199: 0x56, 0x19a: 0x5f, 0x19b: 0x56, 0x19c: 0x56, 0x19d: 0x60, 0x19e: 0x56, 0x19f: 0x61,\n\t0x1a4: 0x56, 0x1a5: 0x56, 0x1a6: 0x62, 0x1a7: 0x63,\n\t0x1a8: 0x56, 0x1a9: 0x56, 0x1aa: 0x56, 0x1ab: 0x56, 0x1ac: 0x56, 0x1ad: 0x64, 0x1ae: 0x65, 0x1af: 0x56,\n\t0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,\n\t0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x56, 0x1bd: 0x56, 0x1be: 0x56, 0x1bf: 0x6d,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,\n\t0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x56,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x78, 0x253: 0x79,\n\t0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,\n\t0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26d: 0x8b, 0x26f: 0x8c,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8f, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x90,\n\t0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x97, 0x2c5: 0x56, 0x2c6: 0x98, 0x2c7: 0x99,\n\t0x2cb: 0x9a, 0x2cd: 0x9b,\n\t0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c,\n\t0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c,\n\t0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c,\n\t0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0x9c, 0x2fc: 0xa4, 0x2fd: 0xa5, 0x2fe: 0x9c, 0x2ff: 0x9c,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa6, 0x301: 0xa7, 0x302: 0xa8, 0x304: 0xa9, 0x305: 0xaa, 0x306: 0xab, 0x307: 0xac,\n\t0x308: 0xad, 0x30b: 0xae, 0x30c: 0x26, 0x30d: 0xaf,\n\t0x310: 0xb0, 0x311: 0xb1, 0x312: 0xb2, 0x313: 0xb3, 0x316: 0xb4, 0x317: 0xb5,\n\t0x318: 0xb6, 0x319: 0xb7, 0x31a: 0xb8, 0x31c: 0xb9,\n\t0x320: 0xba, 0x324: 0xbb, 0x325: 0xbc, 0x327: 0xbd,\n\t0x328: 0xbe, 0x329: 0xbf, 0x32a: 0xc0,\n\t0x330: 0xc1, 0x332: 0xc2, 0x334: 0xc3, 0x335: 0xc4, 0x336: 0xc5,\n\t0x33b: 0xc6, 0x33f: 0xc7,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc8, 0x36c: 0xc9,\n\t0x37d: 0xca, 0x37e: 0xcb, 0x37f: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xcd,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xce, 0x3c6: 0xcf,\n\t0x3c8: 0x56, 0x3c9: 0xd0, 0x3cc: 0x56, 0x3cd: 0xd1,\n\t0x3db: 0xd2, 0x3dc: 0xd3, 0x3dd: 0xd4, 0x3de: 0xd5, 0x3df: 0xd6,\n\t0x3e8: 0xd7, 0x3e9: 0xd8, 0x3ea: 0xd9,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xda, 0x404: 0xc9,\n\t0x40b: 0xdb,\n\t0x420: 0x9c, 0x421: 0x9c, 0x422: 0x9c, 0x423: 0xdc, 0x424: 0x9c, 0x425: 0xdd, 0x426: 0x9c, 0x427: 0x9c,\n\t0x428: 0x9c, 0x429: 0x9c, 0x42a: 0x9c, 0x42b: 0x9c, 0x42c: 0x9c, 0x42d: 0x9c, 0x42e: 0x9c, 0x42f: 0x9c,\n\t0x430: 0x9c, 0x431: 0xa4, 0x432: 0x0e, 0x433: 0x9c, 0x434: 0x0e, 0x435: 0xde, 0x436: 0x9c, 0x437: 0x9c,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xdf, 0x43c: 0x9c, 0x43d: 0x9c, 0x43e: 0x9c, 0x43f: 0x9c,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xe0, 0x441: 0x56, 0x442: 0xe1, 0x443: 0xe2, 0x444: 0xe3, 0x445: 0xe4, 0x446: 0xe5,\n\t0x449: 0xe6, 0x44c: 0x56, 0x44d: 0x56, 0x44e: 0x56, 0x44f: 0x56,\n\t0x450: 0x56, 0x451: 0x56, 0x452: 0x56, 0x453: 0x56, 0x454: 0x56, 0x455: 0x56, 0x456: 0x56, 0x457: 0x56,\n\t0x458: 0x56, 0x459: 0x56, 0x45a: 0x56, 0x45b: 0xe7, 0x45c: 0x56, 0x45d: 0x6c, 0x45e: 0x56, 0x45f: 0xe8,\n\t0x460: 0xe9, 0x461: 0xea, 0x462: 0xeb, 0x464: 0x56, 0x465: 0xec, 0x466: 0x56, 0x467: 0xed,\n\t0x468: 0x56, 0x469: 0xee, 0x46a: 0xef, 0x46b: 0xf0, 0x46c: 0x56, 0x46d: 0x56, 0x46e: 0xf1, 0x46f: 0xf2,\n\t0x47f: 0xf3,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xf3,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xf4, 0x541: 0xf4, 0x542: 0xf4, 0x543: 0xf4, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xf5,\n\t0x548: 0xf4, 0x549: 0xf4, 0x54a: 0xf4, 0x54b: 0xf4, 0x54c: 0xf4, 0x54d: 0xf4, 0x54e: 0xf4, 0x54f: 0xf4,\n\t0x550: 0xf4, 0x551: 0xf4, 0x552: 0xf4, 0x553: 0xf4, 0x554: 0xf4, 0x555: 0xf4, 0x556: 0xf4, 0x557: 0xf4,\n\t0x558: 0xf4, 0x559: 0xf4, 0x55a: 0xf4, 0x55b: 0xf4, 0x55c: 0xf4, 0x55d: 0xf4, 0x55e: 0xf4, 0x55f: 0xf4,\n\t0x560: 0xf4, 0x561: 0xf4, 0x562: 0xf4, 0x563: 0xf4, 0x564: 0xf4, 0x565: 0xf4, 0x566: 0xf4, 0x567: 0xf4,\n\t0x568: 0xf4, 0x569: 0xf4, 0x56a: 0xf4, 0x56b: 0xf4, 0x56c: 0xf4, 0x56d: 0xf4, 0x56e: 0xf4, 0x56f: 0xf4,\n\t0x570: 0xf4, 0x571: 0xf4, 0x572: 0xf4, 0x573: 0xf4, 0x574: 0xf4, 0x575: 0xf4, 0x576: 0xf4, 0x577: 0xf4,\n\t0x578: 0xf4, 0x579: 0xf4, 0x57a: 0xf4, 0x57b: 0xf4, 0x57c: 0xf4, 0x57d: 0xf4, 0x57e: 0xf4, 0x57f: 0xf4,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 17464 bytes (17KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"15.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 19904 bytes (19.44 KiB). Checksum: b1f201ed2debb6c8.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 259 blocks, 16576 entries, 16576 bytes\n// The third block is the zero block.\nvar bidiValues = [16576]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,\n\t0x5f0: 0x000d, 0x5f1: 0x000d, 0x5f2: 0x000d, 0x5f3: 0x000d, 0x5f4: 0x000d, 0x5f5: 0x000d,\n\t0x5f6: 0x000d, 0x5f7: 0x000d, 0x5f8: 0x000d, 0x5f9: 0x000d, 0x5fa: 0x000d, 0x5fb: 0x000d,\n\t0x5fc: 0x000d, 0x5fd: 0x000d, 0x5fe: 0x000d, 0x5ff: 0x000d,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x000d, 0x601: 0x000d, 0x602: 0x000d, 0x603: 0x000d, 0x604: 0x000d, 0x605: 0x000d,\n\t0x606: 0x000d, 0x607: 0x000d, 0x608: 0x000d, 0x609: 0x000d, 0x60a: 0x000d, 0x60b: 0x000d,\n\t0x60c: 0x000d, 0x60d: 0x000d, 0x60e: 0x000d, 0x60f: 0x0001, 0x610: 0x0005, 0x611: 0x0005,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x000c, 0x619: 0x000c, 0x61a: 0x000c, 0x61b: 0x000c, 0x61c: 0x000c, 0x61d: 0x000c,\n\t0x61e: 0x000c, 0x61f: 0x000c, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000c, 0x64b: 0x000c,\n\t0x64c: 0x000c, 0x64d: 0x000c, 0x64e: 0x000c, 0x64f: 0x000c, 0x650: 0x000c, 0x651: 0x000c,\n\t0x652: 0x000c, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x895: 0x000c, 0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97c: 0x000c, 0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa81: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaca: 0x000c,\n\t0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,\n\t// Block 0x2c, offset 0xb00\n\t0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,\n\t0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,\n\t0xb3f: 0x0004,\n\t// Block 0x2d, offset 0xb40\n\t0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,\n\t0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,\n\t0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,\n\t0xbbc: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,\n\t0xbcc: 0x000c, 0xbcd: 0x000c, 0xbce: 0x000c,\n\t// Block 0x30, offset 0xc00\n\t0xc18: 0x000c, 0xc19: 0x000c,\n\t0xc35: 0x000c,\n\t0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,\n\t0xc3c: 0x003a, 0xc3d: 0x002a,\n\t// Block 0x31, offset 0xc40\n\t0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,\n\t0xc86: 0x000c, 0xc87: 0x000c,\n\t0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,\n\t0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,\n\t0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,\n\t0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,\n\t0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,\n\t0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,\n\t0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,\n\t0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,\n\t0xcbc: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xcc6: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,\n\t0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,\n\t0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,\n\t0xd3d: 0x000c, 0xd3e: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd58: 0x000c, 0xd59: 0x000c,\n\t0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,\n\t0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd82: 0x000c, 0xd85: 0x000c,\n\t0xd86: 0x000c,\n\t0xd8d: 0x000c,\n\t0xd9d: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xddd: 0x000c,\n\t0xdde: 0x000c, 0xddf: 0x000c,\n\t// Block 0x38, offset 0xe00\n\t0xe10: 0x000a, 0xe11: 0x000a,\n\t0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,\n\t0xe18: 0x000a, 0xe19: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x0009,\n\t0xe9b: 0x007a, 0xe9c: 0x006a,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf12: 0x000c, 0xf13: 0x000c,\n\t0xf32: 0x000c, 0xf33: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf74: 0x000c, 0xf75: 0x000c,\n\t0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,\n\t0xf7c: 0x000c, 0xf7d: 0x000c,\n\t// Block 0x3e, offset 0xf80\n\t0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,\n\t0xf92: 0x000c, 0xf93: 0x000c,\n\t0xf9b: 0x0004, 0xf9d: 0x000c,\n\t0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,\n\t0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,\n\t0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,\n\t0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b, 0xfcf: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1005: 0x000c,\n\t0x1006: 0x000c,\n\t0x1029: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,\n\t0x1067: 0x000c, 0x1068: 0x000c,\n\t0x1072: 0x000c,\n\t0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,\n\t0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,\n\t0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,\n\t0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,\n\t0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,\n\t0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,\n\t// Block 0x44, offset 0x1100\n\t0x1117: 0x000c,\n\t0x1118: 0x000c, 0x111b: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1156: 0x000c,\n\t0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,\n\t0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,\n\t0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,\n\t0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,\n\t0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117f: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,\n\t0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x000c, 0x11c1: 0x000c, 0x11c2: 0x000c, 0x11c3: 0x000c, 0x11c4: 0x000c, 0x11c5: 0x000c,\n\t0x11c6: 0x000c, 0x11c7: 0x000c, 0x11c8: 0x000c, 0x11c9: 0x000c, 0x11ca: 0x000c, 0x11cb: 0x000c,\n\t0x11cc: 0x000c, 0x11cd: 0x000c, 0x11ce: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,\n\t0x1234: 0x000c,\n\t0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,\n\t0x123c: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1242: 0x000c,\n\t0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x000c, 0x1281: 0x000c,\n\t0x12a2: 0x000c, 0x12a3: 0x000c,\n\t0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,\n\t0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,\n\t0x12ed: 0x000c, 0x12ef: 0x000c,\n\t0x12f0: 0x000c, 0x12f1: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x1350: 0x000c, 0x1351: 0x000c,\n\t0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,\n\t0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,\n\t0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,\n\t0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,\n\t0x136d: 0x000c,\n\t0x1374: 0x000c,\n\t0x1378: 0x000c, 0x1379: 0x000c,\n\t// Block 0x4e, offset 0x1380\n\t0x13bd: 0x000a, 0x13bf: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x000a, 0x13c1: 0x000a,\n\t0x13cd: 0x000a, 0x13ce: 0x000a, 0x13cf: 0x000a,\n\t0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a,\n\t0x13ed: 0x000a, 0x13ee: 0x000a, 0x13ef: 0x000a,\n\t0x13fd: 0x000a, 0x13fe: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0009, 0x1401: 0x0009, 0x1402: 0x0009, 0x1403: 0x0009, 0x1404: 0x0009, 0x1405: 0x0009,\n\t0x1406: 0x0009, 0x1407: 0x0009, 0x1408: 0x0009, 0x1409: 0x0009, 0x140a: 0x0009, 0x140b: 0x000b,\n\t0x140c: 0x000b, 0x140d: 0x000b, 0x140f: 0x0001, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x000a, 0x1420: 0x000a, 0x1421: 0x000a, 0x1422: 0x000a, 0x1423: 0x000a,\n\t0x1424: 0x000a, 0x1425: 0x000a, 0x1426: 0x000a, 0x1427: 0x000a, 0x1428: 0x0009, 0x1429: 0x0007,\n\t0x142a: 0x000e, 0x142b: 0x000e, 0x142c: 0x000e, 0x142d: 0x000e, 0x142e: 0x000e, 0x142f: 0x0006,\n\t0x1430: 0x0004, 0x1431: 0x0004, 0x1432: 0x0004, 0x1433: 0x0004, 0x1434: 0x0004, 0x1435: 0x000a,\n\t0x1436: 0x000a, 0x1437: 0x000a, 0x1438: 0x000a, 0x1439: 0x000a, 0x143a: 0x000a, 0x143b: 0x000a,\n\t0x143c: 0x000a, 0x143d: 0x000a, 0x143e: 0x000a, 0x143f: 0x000a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x000a, 0x1441: 0x000a, 0x1442: 0x000a, 0x1443: 0x000a, 0x1444: 0x0006, 0x1445: 0x009a,\n\t0x1446: 0x008a, 0x1447: 0x000a, 0x1448: 0x000a, 0x1449: 0x000a, 0x144a: 0x000a, 0x144b: 0x000a,\n\t0x144c: 0x000a, 0x144d: 0x000a, 0x144e: 0x000a, 0x144f: 0x000a, 0x1450: 0x000a, 0x1451: 0x000a,\n\t0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,\n\t0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,\n\t0x145e: 0x000a, 0x145f: 0x0009, 0x1460: 0x000b, 0x1461: 0x000b, 0x1462: 0x000b, 0x1463: 0x000b,\n\t0x1464: 0x000b, 0x1465: 0x000b, 0x1466: 0x000e, 0x1467: 0x000e, 0x1468: 0x000e, 0x1469: 0x000e,\n\t0x146a: 0x000b, 0x146b: 0x000b, 0x146c: 0x000b, 0x146d: 0x000b, 0x146e: 0x000b, 0x146f: 0x000b,\n\t0x1470: 0x0002, 0x1474: 0x0002, 0x1475: 0x0002,\n\t0x1476: 0x0002, 0x1477: 0x0002, 0x1478: 0x0002, 0x1479: 0x0002, 0x147a: 0x0003, 0x147b: 0x0003,\n\t0x147c: 0x000a, 0x147d: 0x009a, 0x147e: 0x008a,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0002, 0x1481: 0x0002, 0x1482: 0x0002, 0x1483: 0x0002, 0x1484: 0x0002, 0x1485: 0x0002,\n\t0x1486: 0x0002, 0x1487: 0x0002, 0x1488: 0x0002, 0x1489: 0x0002, 0x148a: 0x0003, 0x148b: 0x0003,\n\t0x148c: 0x000a, 0x148d: 0x009a, 0x148e: 0x008a,\n\t0x14a0: 0x0004, 0x14a1: 0x0004, 0x14a2: 0x0004, 0x14a3: 0x0004,\n\t0x14a4: 0x0004, 0x14a5: 0x0004, 0x14a6: 0x0004, 0x14a7: 0x0004, 0x14a8: 0x0004, 0x14a9: 0x0004,\n\t0x14aa: 0x0004, 0x14ab: 0x0004, 0x14ac: 0x0004, 0x14ad: 0x0004, 0x14ae: 0x0004, 0x14af: 0x0004,\n\t0x14b0: 0x0004, 0x14b1: 0x0004, 0x14b2: 0x0004, 0x14b3: 0x0004, 0x14b4: 0x0004, 0x14b5: 0x0004,\n\t0x14b6: 0x0004, 0x14b7: 0x0004, 0x14b8: 0x0004, 0x14b9: 0x0004, 0x14ba: 0x0004, 0x14bb: 0x0004,\n\t0x14bc: 0x0004, 0x14bd: 0x0004, 0x14be: 0x0004, 0x14bf: 0x0004,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0004, 0x14c1: 0x0004, 0x14c2: 0x0004, 0x14c3: 0x0004, 0x14c4: 0x0004, 0x14c5: 0x0004,\n\t0x14c6: 0x0004, 0x14c7: 0x0004, 0x14c8: 0x0004, 0x14c9: 0x0004, 0x14ca: 0x0004, 0x14cb: 0x0004,\n\t0x14cc: 0x0004, 0x14cd: 0x0004, 0x14ce: 0x0004, 0x14cf: 0x0004, 0x14d0: 0x000c, 0x14d1: 0x000c,\n\t0x14d2: 0x000c, 0x14d3: 0x000c, 0x14d4: 0x000c, 0x14d5: 0x000c, 0x14d6: 0x000c, 0x14d7: 0x000c,\n\t0x14d8: 0x000c, 0x14d9: 0x000c, 0x14da: 0x000c, 0x14db: 0x000c, 0x14dc: 0x000c, 0x14dd: 0x000c,\n\t0x14de: 0x000c, 0x14df: 0x000c, 0x14e0: 0x000c, 0x14e1: 0x000c, 0x14e2: 0x000c, 0x14e3: 0x000c,\n\t0x14e4: 0x000c, 0x14e5: 0x000c, 0x14e6: 0x000c, 0x14e7: 0x000c, 0x14e8: 0x000c, 0x14e9: 0x000c,\n\t0x14ea: 0x000c, 0x14eb: 0x000c, 0x14ec: 0x000c, 0x14ed: 0x000c, 0x14ee: 0x000c, 0x14ef: 0x000c,\n\t0x14f0: 0x000c,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, 0x1505: 0x000a,\n\t0x1506: 0x000a, 0x1508: 0x000a, 0x1509: 0x000a,\n\t0x1514: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a, 0x1520: 0x000a, 0x1521: 0x000a, 0x1522: 0x000a, 0x1523: 0x000a,\n\t0x1525: 0x000a, 0x1527: 0x000a, 0x1529: 0x000a,\n\t0x152e: 0x0004,\n\t0x153a: 0x000a, 0x153b: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x000a, 0x1541: 0x000a, 0x1542: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a,\n\t0x154a: 0x000a, 0x154b: 0x000a,\n\t0x154c: 0x000a, 0x154d: 0x000a, 0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x0003, 0x1613: 0x0004, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,\n\t0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,\n\t0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,\n\t0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x003a, 0x1649: 0x002a, 0x164a: 0x003a, 0x164b: 0x002a,\n\t0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,\n\t0x1652: 0x000a, 0x1653: 0x000a, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,\n\t0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,\n\t0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,\n\t0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x009a,\n\t0x166a: 0x008a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,\n\t0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,\n\t0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,\n\t0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,\n\t0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,\n\t0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,\n\t0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,\n\t0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,\n\t0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,\n\t0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,\n\t0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,\n\t0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,\n\t0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,\n\t0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,\n\t0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,\n\t0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x009a, 0x1ad6: 0x008a, 0x1ad7: 0x00ba,\n\t0x1ad8: 0x00aa, 0x1ad9: 0x009a, 0x1ada: 0x008a, 0x1adb: 0x007a, 0x1adc: 0x006a, 0x1add: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a, 0x206c: 0x000c,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t0x20ff: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c, 0x21bd: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x232a: 0x000a, 0x232b: 0x000a,\n\t// Block 0x8d, offset 0x2340\n\t0x2365: 0x000c, 0x2368: 0x000c,\n\t0x236d: 0x000c,\n\t// Block 0x8e, offset 0x2380\n\t0x239d: 0x0001,\n\t0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,\n\t0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,\n\t0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,\n\t0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,\n\t0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,\n\t0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,\n\t0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,\n\t0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,\n\t0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,\n\t0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x000d, 0x2451: 0x000d,\n\t0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,\n\t0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,\n\t0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,\n\t0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,\n\t0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000a, 0x2490: 0x000b, 0x2491: 0x000b,\n\t0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b,\n\t0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b,\n\t0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b,\n\t0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b,\n\t0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c,\n\t0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c,\n\t0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a,\n\t0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x000a,\n\t0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c,\n\t0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c,\n\t0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c,\n\t0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a,\n\t0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a,\n\t0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a,\n\t0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a,\n\t0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a,\n\t0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a,\n\t0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003,\n\t0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004,\n\t0x252a: 0x0004, 0x252b: 0x000a,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d,\n\t0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d,\n\t0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d,\n\t0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d,\n\t0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d,\n\t0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d,\n\t0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d,\n\t0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d,\n\t0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,\n\t0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,\n\t0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004,\n\t0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003,\n\t0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002,\n\t0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002,\n\t0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a,\n\t0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a,\n\t0x25bb: 0x005a,\n\t0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a,\n\t0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a,\n\t0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a,\n\t0x25e4: 0x000a, 0x25e5: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a,\n\t0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a,\n\t0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a,\n\t0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b,\n\t0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a,\n\t0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b,\n\t// Block 0x99, offset 0x2640\n\t0x2641: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a,\n\t0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a,\n\t0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a,\n\t0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a,\n\t0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a,\n\t0x26a0: 0x000a,\n\t// Block 0x9b, offset 0x26c0\n\t0x26fd: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002,\n\t0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002,\n\t0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002,\n\t0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002,\n\t0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002,\n\t// Block 0x9d, offset 0x2740\n\t0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c,\n\t0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001,\n\t0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,\n\t0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a,\n\t0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d,\n\t0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x0001, 0x28e9: 0x0001,\n\t0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,\n\t0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005,\n\t0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x0001, 0x28fb: 0x0001,\n\t0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001,\n\t0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001,\n\t0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001,\n\t0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001,\n\t0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001,\n\t0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005,\n\t0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005,\n\t0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005,\n\t0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,\n\t0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005,\n\t0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001,\n\t0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001,\n\t0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,\n\t0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,\n\t0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,\n\t0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,\n\t0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001,\n\t0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001,\n\t0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,\n\t0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,\n\t0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,\n\t0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,\n\t0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,\n\t0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,\n\t0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,\n\t0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001,\n\t0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001,\n\t0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001,\n\t0x29b0: 0x0001, 0x29b1: 0x0001, 0x29b2: 0x0001, 0x29b3: 0x0001, 0x29b4: 0x0001, 0x29b5: 0x0001,\n\t0x29b6: 0x0001, 0x29b7: 0x0001, 0x29b8: 0x0001, 0x29b9: 0x0001, 0x29ba: 0x0001, 0x29bb: 0x0001,\n\t0x29bc: 0x0001, 0x29bd: 0x000c, 0x29be: 0x000c, 0x29bf: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x0001, 0x29c1: 0x0001, 0x29c2: 0x0001, 0x29c3: 0x0001, 0x29c4: 0x0001, 0x29c5: 0x0001,\n\t0x29c6: 0x0001, 0x29c7: 0x0001, 0x29c8: 0x0001, 0x29c9: 0x0001, 0x29ca: 0x0001, 0x29cb: 0x0001,\n\t0x29cc: 0x0001, 0x29cd: 0x0001, 0x29ce: 0x0001, 0x29cf: 0x0001, 0x29d0: 0x0001, 0x29d1: 0x0001,\n\t0x29d2: 0x0001, 0x29d3: 0x0001, 0x29d4: 0x0001, 0x29d5: 0x0001, 0x29d6: 0x0001, 0x29d7: 0x0001,\n\t0x29d8: 0x0001, 0x29d9: 0x0001, 0x29da: 0x0001, 0x29db: 0x0001, 0x29dc: 0x0001, 0x29dd: 0x0001,\n\t0x29de: 0x0001, 0x29df: 0x0001, 0x29e0: 0x0001, 0x29e1: 0x0001, 0x29e2: 0x0001, 0x29e3: 0x0001,\n\t0x29e4: 0x0001, 0x29e5: 0x0001, 0x29e6: 0x0001, 0x29e7: 0x0001, 0x29e8: 0x0001, 0x29e9: 0x0001,\n\t0x29ea: 0x0001, 0x29eb: 0x0001, 0x29ec: 0x0001, 0x29ed: 0x0001, 0x29ee: 0x0001, 0x29ef: 0x0001,\n\t0x29f0: 0x000d, 0x29f1: 0x000d, 0x29f2: 0x000d, 0x29f3: 0x000d, 0x29f4: 0x000d, 0x29f5: 0x000d,\n\t0x29f6: 0x000d, 0x29f7: 0x000d, 0x29f8: 0x000d, 0x29f9: 0x000d, 0x29fa: 0x000d, 0x29fb: 0x000d,\n\t0x29fc: 0x000d, 0x29fd: 0x000d, 0x29fe: 0x000d, 0x29ff: 0x000d,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000d, 0x2a01: 0x000d, 0x2a02: 0x000d, 0x2a03: 0x000d, 0x2a04: 0x000d, 0x2a05: 0x000d,\n\t0x2a06: 0x000c, 0x2a07: 0x000c, 0x2a08: 0x000c, 0x2a09: 0x000c, 0x2a0a: 0x000c, 0x2a0b: 0x000c,\n\t0x2a0c: 0x000c, 0x2a0d: 0x000c, 0x2a0e: 0x000c, 0x2a0f: 0x000c, 0x2a10: 0x000c, 0x2a11: 0x000d,\n\t0x2a12: 0x000d, 0x2a13: 0x000d, 0x2a14: 0x000d, 0x2a15: 0x000d, 0x2a16: 0x000d, 0x2a17: 0x000d,\n\t0x2a18: 0x000d, 0x2a19: 0x000d, 0x2a1a: 0x0001, 0x2a1b: 0x0001, 0x2a1c: 0x0001, 0x2a1d: 0x0001,\n\t0x2a1e: 0x0001, 0x2a1f: 0x0001, 0x2a20: 0x0001, 0x2a21: 0x0001, 0x2a22: 0x0001, 0x2a23: 0x0001,\n\t0x2a24: 0x0001, 0x2a25: 0x0001, 0x2a26: 0x0001, 0x2a27: 0x0001, 0x2a28: 0x0001, 0x2a29: 0x0001,\n\t0x2a2a: 0x0001, 0x2a2b: 0x0001, 0x2a2c: 0x0001, 0x2a2d: 0x0001, 0x2a2e: 0x0001, 0x2a2f: 0x0001,\n\t0x2a30: 0x0001, 0x2a31: 0x0001, 0x2a32: 0x0001, 0x2a33: 0x0001, 0x2a34: 0x0001, 0x2a35: 0x0001,\n\t0x2a36: 0x0001, 0x2a37: 0x0001, 0x2a38: 0x0001, 0x2a39: 0x0001, 0x2a3a: 0x0001, 0x2a3b: 0x0001,\n\t0x2a3c: 0x0001, 0x2a3d: 0x0001, 0x2a3e: 0x0001, 0x2a3f: 0x0001,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x0001, 0x2a41: 0x0001, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c,\n\t0x2a46: 0x0001, 0x2a47: 0x0001, 0x2a48: 0x0001, 0x2a49: 0x0001, 0x2a4a: 0x0001, 0x2a4b: 0x0001,\n\t0x2a4c: 0x0001, 0x2a4d: 0x0001, 0x2a4e: 0x0001, 0x2a4f: 0x0001, 0x2a50: 0x0001, 0x2a51: 0x0001,\n\t0x2a52: 0x0001, 0x2a53: 0x0001, 0x2a54: 0x0001, 0x2a55: 0x0001, 0x2a56: 0x0001, 0x2a57: 0x0001,\n\t0x2a58: 0x0001, 0x2a59: 0x0001, 0x2a5a: 0x0001, 0x2a5b: 0x0001, 0x2a5c: 0x0001, 0x2a5d: 0x0001,\n\t0x2a5e: 0x0001, 0x2a5f: 0x0001, 0x2a60: 0x0001, 0x2a61: 0x0001, 0x2a62: 0x0001, 0x2a63: 0x0001,\n\t0x2a64: 0x0001, 0x2a65: 0x0001, 0x2a66: 0x0001, 0x2a67: 0x0001, 0x2a68: 0x0001, 0x2a69: 0x0001,\n\t0x2a6a: 0x0001, 0x2a6b: 0x0001, 0x2a6c: 0x0001, 0x2a6d: 0x0001, 0x2a6e: 0x0001, 0x2a6f: 0x0001,\n\t0x2a70: 0x0001, 0x2a71: 0x0001, 0x2a72: 0x0001, 0x2a73: 0x0001, 0x2a74: 0x0001, 0x2a75: 0x0001,\n\t0x2a76: 0x0001, 0x2a77: 0x0001, 0x2a78: 0x0001, 0x2a79: 0x0001, 0x2a7a: 0x0001, 0x2a7b: 0x0001,\n\t0x2a7c: 0x0001, 0x2a7d: 0x0001, 0x2a7e: 0x0001, 0x2a7f: 0x0001,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a81: 0x000c,\n\t0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,\n\t0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c, 0x2abf: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c, 0x2ac3: 0x000c, 0x2ac4: 0x000c, 0x2ac5: 0x000c,\n\t0x2ac6: 0x000c,\n\t0x2ad2: 0x000a, 0x2ad3: 0x000a, 0x2ad4: 0x000a, 0x2ad5: 0x000a, 0x2ad6: 0x000a, 0x2ad7: 0x000a,\n\t0x2ad8: 0x000a, 0x2ad9: 0x000a, 0x2ada: 0x000a, 0x2adb: 0x000a, 0x2adc: 0x000a, 0x2add: 0x000a,\n\t0x2ade: 0x000a, 0x2adf: 0x000a, 0x2ae0: 0x000a, 0x2ae1: 0x000a, 0x2ae2: 0x000a, 0x2ae3: 0x000a,\n\t0x2ae4: 0x000a, 0x2ae5: 0x000a,\n\t0x2af0: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c,\n\t0x2aff: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c, 0x2b01: 0x000c,\n\t0x2b33: 0x000c, 0x2b34: 0x000c, 0x2b35: 0x000c,\n\t0x2b36: 0x000c, 0x2b39: 0x000c, 0x2b3a: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c, 0x2b41: 0x000c, 0x2b42: 0x000c,\n\t0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6d: 0x000c, 0x2b6e: 0x000c, 0x2b6f: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb3: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc0: 0x000c, 0x2bc1: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,\n\t0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c09: 0x000c, 0x2c0a: 0x000c, 0x2c0b: 0x000c,\n\t0x2c0c: 0x000c, 0x2c0f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c6f: 0x000c,\n\t0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c74: 0x000c,\n\t0x2c76: 0x000c, 0x2c77: 0x000c,\n\t0x2c7e: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c9f: 0x000c, 0x2ca3: 0x000c,\n\t0x2ca4: 0x000c, 0x2ca5: 0x000c, 0x2ca6: 0x000c, 0x2ca7: 0x000c, 0x2ca8: 0x000c, 0x2ca9: 0x000c,\n\t0x2caa: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2ce6: 0x000c, 0x2ce7: 0x000c, 0x2ce8: 0x000c, 0x2ce9: 0x000c,\n\t0x2cea: 0x000c, 0x2ceb: 0x000c, 0x2cec: 0x000c,\n\t0x2cf0: 0x000c, 0x2cf1: 0x000c, 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, 0x2d3b: 0x000c,\n\t0x2d3c: 0x000c, 0x2d3d: 0x000c, 0x2d3e: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d42: 0x000c, 0x2d43: 0x000c, 0x2d44: 0x000c,\n\t0x2d46: 0x000c,\n\t0x2d5e: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db6: 0x000c, 0x2db7: 0x000c, 0x2db8: 0x000c, 0x2dba: 0x000c,\n\t0x2dbf: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc0: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e3c: 0x000c, 0x2e3d: 0x000c, 0x2e3f: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e40: 0x000c,\n\t0x2e5c: 0x000c, 0x2e5d: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c,\n\t0x2ebd: 0x000c, 0x2ebf: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec0: 0x000c,\n\t0x2ee0: 0x000a, 0x2ee1: 0x000a, 0x2ee2: 0x000a, 0x2ee3: 0x000a,\n\t0x2ee4: 0x000a, 0x2ee5: 0x000a, 0x2ee6: 0x000a, 0x2ee7: 0x000a, 0x2ee8: 0x000a, 0x2ee9: 0x000a,\n\t0x2eea: 0x000a, 0x2eeb: 0x000a, 0x2eec: 0x000a,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f2b: 0x000c, 0x2f2d: 0x000c,\n\t0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f37: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f5d: 0x000c,\n\t0x2f5e: 0x000c, 0x2f5f: 0x000c, 0x2f62: 0x000c, 0x2f63: 0x000c,\n\t0x2f64: 0x000c, 0x2f65: 0x000c, 0x2f67: 0x000c, 0x2f68: 0x000c, 0x2f69: 0x000c,\n\t0x2f6a: 0x000c, 0x2f6b: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c, 0x2fb7: 0x000c, 0x2fb9: 0x000c, 0x2fba: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ffb: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffe: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3003: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c, 0x3057: 0x000c,\n\t0x305a: 0x000c, 0x305b: 0x000c,\n\t0x3060: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x3081: 0x000c, 0x3082: 0x000c, 0x3083: 0x000c, 0x3084: 0x000c, 0x3085: 0x000c,\n\t0x3086: 0x000c, 0x3089: 0x000c, 0x308a: 0x000c,\n\t0x30b3: 0x000c, 0x30b4: 0x000c, 0x30b5: 0x000c,\n\t0x30b6: 0x000c, 0x30b7: 0x000c, 0x30b8: 0x000c, 0x30bb: 0x000c,\n\t0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30c7: 0x000c,\n\t0x30d1: 0x000c,\n\t0x30d2: 0x000c, 0x30d3: 0x000c, 0x30d4: 0x000c, 0x30d5: 0x000c, 0x30d6: 0x000c,\n\t0x30d9: 0x000c, 0x30da: 0x000c, 0x30db: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x310a: 0x000c, 0x310b: 0x000c,\n\t0x310c: 0x000c, 0x310d: 0x000c, 0x310e: 0x000c, 0x310f: 0x000c, 0x3110: 0x000c, 0x3111: 0x000c,\n\t0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c,\n\t0x3118: 0x000c, 0x3119: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c, 0x3178: 0x000c, 0x3179: 0x000c, 0x317a: 0x000c, 0x317b: 0x000c,\n\t0x317c: 0x000c, 0x317d: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x3192: 0x000c, 0x3193: 0x000c, 0x3194: 0x000c, 0x3195: 0x000c, 0x3196: 0x000c, 0x3197: 0x000c,\n\t0x3198: 0x000c, 0x3199: 0x000c, 0x319a: 0x000c, 0x319b: 0x000c, 0x319c: 0x000c, 0x319d: 0x000c,\n\t0x319e: 0x000c, 0x319f: 0x000c, 0x31a0: 0x000c, 0x31a1: 0x000c, 0x31a2: 0x000c, 0x31a3: 0x000c,\n\t0x31a4: 0x000c, 0x31a5: 0x000c, 0x31a6: 0x000c, 0x31a7: 0x000c,\n\t0x31aa: 0x000c, 0x31ab: 0x000c, 0x31ac: 0x000c, 0x31ad: 0x000c, 0x31ae: 0x000c, 0x31af: 0x000c,\n\t0x31b0: 0x000c, 0x31b2: 0x000c, 0x31b3: 0x000c, 0x31b5: 0x000c,\n\t0x31b6: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,\n\t0x31f6: 0x000c, 0x31fa: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,\n\t0x3207: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3250: 0x000c, 0x3251: 0x000c,\n\t0x3255: 0x000c, 0x3257: 0x000c,\n\t// Block 0xca, offset 0x3280\n\t0x32b3: 0x000c, 0x32b4: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c,\n\t0x32f6: 0x000c, 0x32f7: 0x000c, 0x32f8: 0x000c, 0x32f9: 0x000c, 0x32fa: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000c, 0x3302: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x3355: 0x000a, 0x3356: 0x000a, 0x3357: 0x000a,\n\t0x3358: 0x000a, 0x3359: 0x000a, 0x335a: 0x000a, 0x335b: 0x000a, 0x335c: 0x000a, 0x335d: 0x0004,\n\t0x335e: 0x0004, 0x335f: 0x0004, 0x3360: 0x0004, 0x3361: 0x000a, 0x3362: 0x000a, 0x3363: 0x000a,\n\t0x3364: 0x000a, 0x3365: 0x000a, 0x3366: 0x000a, 0x3367: 0x000a, 0x3368: 0x000a, 0x3369: 0x000a,\n\t0x336a: 0x000a, 0x336b: 0x000a, 0x336c: 0x000a, 0x336d: 0x000a, 0x336e: 0x000a, 0x336f: 0x000a,\n\t0x3370: 0x000a, 0x3371: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000c,\n\t0x3387: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,\n\t0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,\n\t0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33f0: 0x000c, 0x33f1: 0x000c, 0x33f2: 0x000c, 0x33f3: 0x000c, 0x33f4: 0x000c,\n\t// Block 0xd0, offset 0x3400\n\t0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,\n\t0x3436: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x344f: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x348f: 0x000c, 0x3490: 0x000c, 0x3491: 0x000c,\n\t0x3492: 0x000c,\n\t// Block 0xd3, offset 0x34c0\n\t0x34e2: 0x000a,\n\t0x34e4: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x351d: 0x000c,\n\t0x351e: 0x000c, 0x3520: 0x000b, 0x3521: 0x000b, 0x3522: 0x000b, 0x3523: 0x000b,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x000c, 0x3541: 0x000c, 0x3542: 0x000c, 0x3543: 0x000c, 0x3544: 0x000c, 0x3545: 0x000c,\n\t0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x000c,\n\t0x354c: 0x000c, 0x354d: 0x000c, 0x354e: 0x000c, 0x354f: 0x000c, 0x3550: 0x000c, 0x3551: 0x000c,\n\t0x3552: 0x000c, 0x3553: 0x000c, 0x3554: 0x000c, 0x3555: 0x000c, 0x3556: 0x000c, 0x3557: 0x000c,\n\t0x3558: 0x000c, 0x3559: 0x000c, 0x355a: 0x000c, 0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c,\n\t0x355e: 0x000c, 0x355f: 0x000c, 0x3560: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c,\n\t0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c,\n\t0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c,\n\t0x3570: 0x000c, 0x3571: 0x000c, 0x3572: 0x000c, 0x3573: 0x000c, 0x3574: 0x000c, 0x3575: 0x000c,\n\t0x3576: 0x000c, 0x3577: 0x000c, 0x3578: 0x000c, 0x3579: 0x000c, 0x357a: 0x000c, 0x357b: 0x000c,\n\t0x357c: 0x000c, 0x357d: 0x000c, 0x357e: 0x000c, 0x357f: 0x000c,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c,\n\t0x3586: 0x000c,\n\t// Block 0xd7, offset 0x35c0\n\t0x35e7: 0x000c, 0x35e8: 0x000c, 0x35e9: 0x000c,\n\t0x35f3: 0x000b, 0x35f4: 0x000b, 0x35f5: 0x000b,\n\t0x35f6: 0x000b, 0x35f7: 0x000b, 0x35f8: 0x000b, 0x35f9: 0x000b, 0x35fa: 0x000b, 0x35fb: 0x000c,\n\t0x35fc: 0x000c, 0x35fd: 0x000c, 0x35fe: 0x000c, 0x35ff: 0x000c,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000c, 0x3601: 0x000c, 0x3602: 0x000c, 0x3605: 0x000c,\n\t0x3606: 0x000c, 0x3607: 0x000c, 0x3608: 0x000c, 0x3609: 0x000c, 0x360a: 0x000c, 0x360b: 0x000c,\n\t0x362a: 0x000c, 0x362b: 0x000c, 0x362c: 0x000c, 0x362d: 0x000c,\n\t// Block 0xd9, offset 0x3640\n\t0x3669: 0x000a,\n\t0x366a: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,\n\t0x36c6: 0x000a, 0x36c7: 0x000a, 0x36c8: 0x000a, 0x36c9: 0x000a, 0x36ca: 0x000a, 0x36cb: 0x000a,\n\t0x36cc: 0x000a, 0x36cd: 0x000a, 0x36ce: 0x000a, 0x36cf: 0x000a, 0x36d0: 0x000a, 0x36d1: 0x000a,\n\t0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x371b: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3755: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x378f: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c9: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3803: 0x000a,\n\t0x380e: 0x0002, 0x380f: 0x0002, 0x3810: 0x0002, 0x3811: 0x0002,\n\t0x3812: 0x0002, 0x3813: 0x0002, 0x3814: 0x0002, 0x3815: 0x0002, 0x3816: 0x0002, 0x3817: 0x0002,\n\t0x3818: 0x0002, 0x3819: 0x0002, 0x381a: 0x0002, 0x381b: 0x0002, 0x381c: 0x0002, 0x381d: 0x0002,\n\t0x381e: 0x0002, 0x381f: 0x0002, 0x3820: 0x0002, 0x3821: 0x0002, 0x3822: 0x0002, 0x3823: 0x0002,\n\t0x3824: 0x0002, 0x3825: 0x0002, 0x3826: 0x0002, 0x3827: 0x0002, 0x3828: 0x0002, 0x3829: 0x0002,\n\t0x382a: 0x0002, 0x382b: 0x0002, 0x382c: 0x0002, 0x382d: 0x0002, 0x382e: 0x0002, 0x382f: 0x0002,\n\t0x3830: 0x0002, 0x3831: 0x0002, 0x3832: 0x0002, 0x3833: 0x0002, 0x3834: 0x0002, 0x3835: 0x0002,\n\t0x3836: 0x0002, 0x3837: 0x0002, 0x3838: 0x0002, 0x3839: 0x0002, 0x383a: 0x0002, 0x383b: 0x0002,\n\t0x383c: 0x0002, 0x383d: 0x0002, 0x383e: 0x0002, 0x383f: 0x0002,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000c, 0x3841: 0x000c, 0x3842: 0x000c, 0x3843: 0x000c, 0x3844: 0x000c, 0x3845: 0x000c,\n\t0x3846: 0x000c, 0x3847: 0x000c, 0x3848: 0x000c, 0x3849: 0x000c, 0x384a: 0x000c, 0x384b: 0x000c,\n\t0x384c: 0x000c, 0x384d: 0x000c, 0x384e: 0x000c, 0x384f: 0x000c, 0x3850: 0x000c, 0x3851: 0x000c,\n\t0x3852: 0x000c, 0x3853: 0x000c, 0x3854: 0x000c, 0x3855: 0x000c, 0x3856: 0x000c, 0x3857: 0x000c,\n\t0x3858: 0x000c, 0x3859: 0x000c, 0x385a: 0x000c, 0x385b: 0x000c, 0x385c: 0x000c, 0x385d: 0x000c,\n\t0x385e: 0x000c, 0x385f: 0x000c, 0x3860: 0x000c, 0x3861: 0x000c, 0x3862: 0x000c, 0x3863: 0x000c,\n\t0x3864: 0x000c, 0x3865: 0x000c, 0x3866: 0x000c, 0x3867: 0x000c, 0x3868: 0x000c, 0x3869: 0x000c,\n\t0x386a: 0x000c, 0x386b: 0x000c, 0x386c: 0x000c, 0x386d: 0x000c, 0x386e: 0x000c, 0x386f: 0x000c,\n\t0x3870: 0x000c, 0x3871: 0x000c, 0x3872: 0x000c, 0x3873: 0x000c, 0x3874: 0x000c, 0x3875: 0x000c,\n\t0x3876: 0x000c, 0x387b: 0x000c,\n\t0x387c: 0x000c, 0x387d: 0x000c, 0x387e: 0x000c, 0x387f: 0x000c,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000c, 0x3881: 0x000c, 0x3882: 0x000c, 0x3883: 0x000c, 0x3884: 0x000c, 0x3885: 0x000c,\n\t0x3886: 0x000c, 0x3887: 0x000c, 0x3888: 0x000c, 0x3889: 0x000c, 0x388a: 0x000c, 0x388b: 0x000c,\n\t0x388c: 0x000c, 0x388d: 0x000c, 0x388e: 0x000c, 0x388f: 0x000c, 0x3890: 0x000c, 0x3891: 0x000c,\n\t0x3892: 0x000c, 0x3893: 0x000c, 0x3894: 0x000c, 0x3895: 0x000c, 0x3896: 0x000c, 0x3897: 0x000c,\n\t0x3898: 0x000c, 0x3899: 0x000c, 0x389a: 0x000c, 0x389b: 0x000c, 0x389c: 0x000c, 0x389d: 0x000c,\n\t0x389e: 0x000c, 0x389f: 0x000c, 0x38a0: 0x000c, 0x38a1: 0x000c, 0x38a2: 0x000c, 0x38a3: 0x000c,\n\t0x38a4: 0x000c, 0x38a5: 0x000c, 0x38a6: 0x000c, 0x38a7: 0x000c, 0x38a8: 0x000c, 0x38a9: 0x000c,\n\t0x38aa: 0x000c, 0x38ab: 0x000c, 0x38ac: 0x000c,\n\t0x38b5: 0x000c,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c4: 0x000c,\n\t0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,\n\t0x38de: 0x000c, 0x38df: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,\n\t0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,\n\t0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000c, 0x3901: 0x000c, 0x3902: 0x000c, 0x3903: 0x000c, 0x3904: 0x000c, 0x3905: 0x000c,\n\t0x3906: 0x000c, 0x3908: 0x000c, 0x3909: 0x000c, 0x390a: 0x000c, 0x390b: 0x000c,\n\t0x390c: 0x000c, 0x390d: 0x000c, 0x390e: 0x000c, 0x390f: 0x000c, 0x3910: 0x000c, 0x3911: 0x000c,\n\t0x3912: 0x000c, 0x3913: 0x000c, 0x3914: 0x000c, 0x3915: 0x000c, 0x3916: 0x000c, 0x3917: 0x000c,\n\t0x3918: 0x000c, 0x391b: 0x000c, 0x391c: 0x000c, 0x391d: 0x000c,\n\t0x391e: 0x000c, 0x391f: 0x000c, 0x3920: 0x000c, 0x3921: 0x000c, 0x3923: 0x000c,\n\t0x3924: 0x000c, 0x3926: 0x000c, 0x3927: 0x000c, 0x3928: 0x000c, 0x3929: 0x000c,\n\t0x392a: 0x000c,\n\t// Block 0xe5, offset 0x3940\n\t0x396e: 0x000c,\n\t// Block 0xe6, offset 0x3980\n\t0x39ac: 0x000c, 0x39ad: 0x000c, 0x39ae: 0x000c, 0x39af: 0x000c,\n\t0x39bf: 0x0004,\n\t// Block 0xe7, offset 0x39c0\n\t0x39ec: 0x000c, 0x39ed: 0x000c, 0x39ee: 0x000c, 0x39ef: 0x000c,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x0001, 0x3a01: 0x0001, 0x3a02: 0x0001, 0x3a03: 0x0001, 0x3a04: 0x0001, 0x3a05: 0x0001,\n\t0x3a06: 0x0001, 0x3a07: 0x0001, 0x3a08: 0x0001, 0x3a09: 0x0001, 0x3a0a: 0x0001, 0x3a0b: 0x0001,\n\t0x3a0c: 0x0001, 0x3a0d: 0x0001, 0x3a0e: 0x0001, 0x3a0f: 0x0001, 0x3a10: 0x000c, 0x3a11: 0x000c,\n\t0x3a12: 0x000c, 0x3a13: 0x000c, 0x3a14: 0x000c, 0x3a15: 0x000c, 0x3a16: 0x000c, 0x3a17: 0x0001,\n\t0x3a18: 0x0001, 0x3a19: 0x0001, 0x3a1a: 0x0001, 0x3a1b: 0x0001, 0x3a1c: 0x0001, 0x3a1d: 0x0001,\n\t0x3a1e: 0x0001, 0x3a1f: 0x0001, 0x3a20: 0x0001, 0x3a21: 0x0001, 0x3a22: 0x0001, 0x3a23: 0x0001,\n\t0x3a24: 0x0001, 0x3a25: 0x0001, 0x3a26: 0x0001, 0x3a27: 0x0001, 0x3a28: 0x0001, 0x3a29: 0x0001,\n\t0x3a2a: 0x0001, 0x3a2b: 0x0001, 0x3a2c: 0x0001, 0x3a2d: 0x0001, 0x3a2e: 0x0001, 0x3a2f: 0x0001,\n\t0x3a30: 0x0001, 0x3a31: 0x0001, 0x3a32: 0x0001, 0x3a33: 0x0001, 0x3a34: 0x0001, 0x3a35: 0x0001,\n\t0x3a36: 0x0001, 0x3a37: 0x0001, 0x3a38: 0x0001, 0x3a39: 0x0001, 0x3a3a: 0x0001, 0x3a3b: 0x0001,\n\t0x3a3c: 0x0001, 0x3a3d: 0x0001, 0x3a3e: 0x0001, 0x3a3f: 0x0001,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x0001, 0x3a41: 0x0001, 0x3a42: 0x0001, 0x3a43: 0x0001, 0x3a44: 0x000c, 0x3a45: 0x000c,\n\t0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x0001,\n\t0x3a4c: 0x0001, 0x3a4d: 0x0001, 0x3a4e: 0x0001, 0x3a4f: 0x0001, 0x3a50: 0x0001, 0x3a51: 0x0001,\n\t0x3a52: 0x0001, 0x3a53: 0x0001, 0x3a54: 0x0001, 0x3a55: 0x0001, 0x3a56: 0x0001, 0x3a57: 0x0001,\n\t0x3a58: 0x0001, 0x3a59: 0x0001, 0x3a5a: 0x0001, 0x3a5b: 0x0001, 0x3a5c: 0x0001, 0x3a5d: 0x0001,\n\t0x3a5e: 0x0001, 0x3a5f: 0x0001, 0x3a60: 0x0001, 0x3a61: 0x0001, 0x3a62: 0x0001, 0x3a63: 0x0001,\n\t0x3a64: 0x0001, 0x3a65: 0x0001, 0x3a66: 0x0001, 0x3a67: 0x0001, 0x3a68: 0x0001, 0x3a69: 0x0001,\n\t0x3a6a: 0x0001, 0x3a6b: 0x0001, 0x3a6c: 0x0001, 0x3a6d: 0x0001, 0x3a6e: 0x0001, 0x3a6f: 0x0001,\n\t0x3a70: 0x0001, 0x3a71: 0x0001, 0x3a72: 0x0001, 0x3a73: 0x0001, 0x3a74: 0x0001, 0x3a75: 0x0001,\n\t0x3a76: 0x0001, 0x3a77: 0x0001, 0x3a78: 0x0001, 0x3a79: 0x0001, 0x3a7a: 0x0001, 0x3a7b: 0x0001,\n\t0x3a7c: 0x0001, 0x3a7d: 0x0001, 0x3a7e: 0x0001, 0x3a7f: 0x0001,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x0001, 0x3a81: 0x0001, 0x3a82: 0x0001, 0x3a83: 0x0001, 0x3a84: 0x0001, 0x3a85: 0x0001,\n\t0x3a86: 0x0001, 0x3a87: 0x0001, 0x3a88: 0x0001, 0x3a89: 0x0001, 0x3a8a: 0x0001, 0x3a8b: 0x0001,\n\t0x3a8c: 0x0001, 0x3a8d: 0x0001, 0x3a8e: 0x0001, 0x3a8f: 0x0001, 0x3a90: 0x0001, 0x3a91: 0x0001,\n\t0x3a92: 0x0001, 0x3a93: 0x0001, 0x3a94: 0x0001, 0x3a95: 0x0001, 0x3a96: 0x0001, 0x3a97: 0x0001,\n\t0x3a98: 0x0001, 0x3a99: 0x0001, 0x3a9a: 0x0001, 0x3a9b: 0x0001, 0x3a9c: 0x0001, 0x3a9d: 0x0001,\n\t0x3a9e: 0x0001, 0x3a9f: 0x0001, 0x3aa0: 0x0001, 0x3aa1: 0x0001, 0x3aa2: 0x0001, 0x3aa3: 0x0001,\n\t0x3aa4: 0x0001, 0x3aa5: 0x0001, 0x3aa6: 0x0001, 0x3aa7: 0x0001, 0x3aa8: 0x0001, 0x3aa9: 0x0001,\n\t0x3aaa: 0x0001, 0x3aab: 0x0001, 0x3aac: 0x0001, 0x3aad: 0x0001, 0x3aae: 0x0001, 0x3aaf: 0x0001,\n\t0x3ab0: 0x0001, 0x3ab1: 0x000d, 0x3ab2: 0x000d, 0x3ab3: 0x000d, 0x3ab4: 0x000d, 0x3ab5: 0x000d,\n\t0x3ab6: 0x000d, 0x3ab7: 0x000d, 0x3ab8: 0x000d, 0x3ab9: 0x000d, 0x3aba: 0x000d, 0x3abb: 0x000d,\n\t0x3abc: 0x000d, 0x3abd: 0x000d, 0x3abe: 0x000d, 0x3abf: 0x000d,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000d, 0x3ac1: 0x000d, 0x3ac2: 0x000d, 0x3ac3: 0x000d, 0x3ac4: 0x000d, 0x3ac5: 0x000d,\n\t0x3ac6: 0x000d, 0x3ac7: 0x000d, 0x3ac8: 0x000d, 0x3ac9: 0x000d, 0x3aca: 0x000d, 0x3acb: 0x000d,\n\t0x3acc: 0x000d, 0x3acd: 0x000d, 0x3ace: 0x000d, 0x3acf: 0x000d, 0x3ad0: 0x000d, 0x3ad1: 0x000d,\n\t0x3ad2: 0x000d, 0x3ad3: 0x000d, 0x3ad4: 0x000d, 0x3ad5: 0x000d, 0x3ad6: 0x000d, 0x3ad7: 0x000d,\n\t0x3ad8: 0x000d, 0x3ad9: 0x000d, 0x3ada: 0x000d, 0x3adb: 0x000d, 0x3adc: 0x000d, 0x3add: 0x000d,\n\t0x3ade: 0x000d, 0x3adf: 0x000d, 0x3ae0: 0x000d, 0x3ae1: 0x000d, 0x3ae2: 0x000d, 0x3ae3: 0x000d,\n\t0x3ae4: 0x000d, 0x3ae5: 0x000d, 0x3ae6: 0x000d, 0x3ae7: 0x000d, 0x3ae8: 0x000d, 0x3ae9: 0x000d,\n\t0x3aea: 0x000d, 0x3aeb: 0x000d, 0x3aec: 0x000d, 0x3aed: 0x000d, 0x3aee: 0x000d, 0x3aef: 0x000d,\n\t0x3af0: 0x000d, 0x3af1: 0x000d, 0x3af2: 0x000d, 0x3af3: 0x000d, 0x3af4: 0x000d, 0x3af5: 0x0001,\n\t0x3af6: 0x0001, 0x3af7: 0x0001, 0x3af8: 0x0001, 0x3af9: 0x0001, 0x3afa: 0x0001, 0x3afb: 0x0001,\n\t0x3afc: 0x0001, 0x3afd: 0x0001, 0x3afe: 0x0001, 0x3aff: 0x0001,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x0001, 0x3b01: 0x000d, 0x3b02: 0x000d, 0x3b03: 0x000d, 0x3b04: 0x000d, 0x3b05: 0x000d,\n\t0x3b06: 0x000d, 0x3b07: 0x000d, 0x3b08: 0x000d, 0x3b09: 0x000d, 0x3b0a: 0x000d, 0x3b0b: 0x000d,\n\t0x3b0c: 0x000d, 0x3b0d: 0x000d, 0x3b0e: 0x000d, 0x3b0f: 0x000d, 0x3b10: 0x000d, 0x3b11: 0x000d,\n\t0x3b12: 0x000d, 0x3b13: 0x000d, 0x3b14: 0x000d, 0x3b15: 0x000d, 0x3b16: 0x000d, 0x3b17: 0x000d,\n\t0x3b18: 0x000d, 0x3b19: 0x000d, 0x3b1a: 0x000d, 0x3b1b: 0x000d, 0x3b1c: 0x000d, 0x3b1d: 0x000d,\n\t0x3b1e: 0x000d, 0x3b1f: 0x000d, 0x3b20: 0x000d, 0x3b21: 0x000d, 0x3b22: 0x000d, 0x3b23: 0x000d,\n\t0x3b24: 0x000d, 0x3b25: 0x000d, 0x3b26: 0x000d, 0x3b27: 0x000d, 0x3b28: 0x000d, 0x3b29: 0x000d,\n\t0x3b2a: 0x000d, 0x3b2b: 0x000d, 0x3b2c: 0x000d, 0x3b2d: 0x000d, 0x3b2e: 0x000d, 0x3b2f: 0x000d,\n\t0x3b30: 0x000d, 0x3b31: 0x000d, 0x3b32: 0x000d, 0x3b33: 0x000d, 0x3b34: 0x000d, 0x3b35: 0x000d,\n\t0x3b36: 0x000d, 0x3b37: 0x000d, 0x3b38: 0x000d, 0x3b39: 0x000d, 0x3b3a: 0x000d, 0x3b3b: 0x000d,\n\t0x3b3c: 0x000d, 0x3b3d: 0x000d, 0x3b3e: 0x0001, 0x3b3f: 0x0001,\n\t// Block 0xed, offset 0x3b40\n\t0x3b40: 0x000d, 0x3b41: 0x000d, 0x3b42: 0x000d, 0x3b43: 0x000d, 0x3b44: 0x000d, 0x3b45: 0x000d,\n\t0x3b46: 0x000d, 0x3b47: 0x000d, 0x3b48: 0x000d, 0x3b49: 0x000d, 0x3b4a: 0x000d, 0x3b4b: 0x000d,\n\t0x3b4c: 0x000d, 0x3b4d: 0x000d, 0x3b4e: 0x000d, 0x3b4f: 0x000d, 0x3b50: 0x000d, 0x3b51: 0x000d,\n\t0x3b52: 0x000d, 0x3b53: 0x000d, 0x3b54: 0x000d, 0x3b55: 0x000d, 0x3b56: 0x000d, 0x3b57: 0x000d,\n\t0x3b58: 0x000d, 0x3b59: 0x000d, 0x3b5a: 0x000d, 0x3b5b: 0x000d, 0x3b5c: 0x000d, 0x3b5d: 0x000d,\n\t0x3b5e: 0x000d, 0x3b5f: 0x000d, 0x3b60: 0x000d, 0x3b61: 0x000d, 0x3b62: 0x000d, 0x3b63: 0x000d,\n\t0x3b64: 0x000d, 0x3b65: 0x000d, 0x3b66: 0x000d, 0x3b67: 0x000d, 0x3b68: 0x000d, 0x3b69: 0x000d,\n\t0x3b6a: 0x000d, 0x3b6b: 0x000d, 0x3b6c: 0x000d, 0x3b6d: 0x000d, 0x3b6e: 0x000d, 0x3b6f: 0x000d,\n\t0x3b70: 0x000a, 0x3b71: 0x000a, 0x3b72: 0x000d, 0x3b73: 0x000d, 0x3b74: 0x000d, 0x3b75: 0x000d,\n\t0x3b76: 0x000d, 0x3b77: 0x000d, 0x3b78: 0x000d, 0x3b79: 0x000d, 0x3b7a: 0x000d, 0x3b7b: 0x000d,\n\t0x3b7c: 0x000d, 0x3b7d: 0x000d, 0x3b7e: 0x000d, 0x3b7f: 0x000d,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a,\n\t0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a,\n\t0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a,\n\t0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a,\n\t0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a,\n\t0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a,\n\t0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a,\n\t0x3baa: 0x000a, 0x3bab: 0x000a,\n\t0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a,\n\t0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bb9: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a,\n\t0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a,\n\t0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a,\n\t0x3bcc: 0x000a, 0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a,\n\t0x3bd2: 0x000a, 0x3bd3: 0x000a,\n\t0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a,\n\t0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a,\n\t0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a,\n\t0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a,\n\t0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a,\n\t0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a,\n\t// Block 0xf0, offset 0x3c00\n\t0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a,\n\t0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a,\n\t0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c11: 0x000a,\n\t0x3c12: 0x000a, 0x3c13: 0x000a, 0x3c14: 0x000a, 0x3c15: 0x000a, 0x3c16: 0x000a, 0x3c17: 0x000a,\n\t0x3c18: 0x000a, 0x3c19: 0x000a, 0x3c1a: 0x000a, 0x3c1b: 0x000a, 0x3c1c: 0x000a, 0x3c1d: 0x000a,\n\t0x3c1e: 0x000a, 0x3c1f: 0x000a, 0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a,\n\t0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a,\n\t0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a, 0x3c2e: 0x000a, 0x3c2f: 0x000a,\n\t0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a, 0x3c35: 0x000a,\n\t// Block 0xf1, offset 0x3c40\n\t0x3c40: 0x0002, 0x3c41: 0x0002, 0x3c42: 0x0002, 0x3c43: 0x0002, 0x3c44: 0x0002, 0x3c45: 0x0002,\n\t0x3c46: 0x0002, 0x3c47: 0x0002, 0x3c48: 0x0002, 0x3c49: 0x0002, 0x3c4a: 0x0002, 0x3c4b: 0x000a,\n\t0x3c4c: 0x000a, 0x3c4d: 0x000a, 0x3c4e: 0x000a, 0x3c4f: 0x000a,\n\t0x3c6f: 0x000a,\n\t// Block 0xf2, offset 0x3c80\n\t0x3caa: 0x000a, 0x3cab: 0x000a, 0x3cac: 0x000a, 0x3cad: 0x000a, 0x3cae: 0x000a, 0x3caf: 0x000a,\n\t// Block 0xf3, offset 0x3cc0\n\t0x3ced: 0x000a,\n\t// Block 0xf4, offset 0x3d00\n\t0x3d20: 0x000a, 0x3d21: 0x000a, 0x3d22: 0x000a, 0x3d23: 0x000a,\n\t0x3d24: 0x000a, 0x3d25: 0x000a,\n\t// Block 0xf5, offset 0x3d40\n\t0x3d40: 0x000a, 0x3d41: 0x000a, 0x3d42: 0x000a, 0x3d43: 0x000a, 0x3d44: 0x000a, 0x3d45: 0x000a,\n\t0x3d46: 0x000a, 0x3d47: 0x000a, 0x3d48: 0x000a, 0x3d49: 0x000a, 0x3d4a: 0x000a, 0x3d4b: 0x000a,\n\t0x3d4c: 0x000a, 0x3d4d: 0x000a, 0x3d4e: 0x000a, 0x3d4f: 0x000a, 0x3d50: 0x000a, 0x3d51: 0x000a,\n\t0x3d52: 0x000a, 0x3d53: 0x000a, 0x3d54: 0x000a, 0x3d55: 0x000a, 0x3d56: 0x000a, 0x3d57: 0x000a,\n\t0x3d5c: 0x000a, 0x3d5d: 0x000a,\n\t0x3d5e: 0x000a, 0x3d5f: 0x000a, 0x3d60: 0x000a, 0x3d61: 0x000a, 0x3d62: 0x000a, 0x3d63: 0x000a,\n\t0x3d64: 0x000a, 0x3d65: 0x000a, 0x3d66: 0x000a, 0x3d67: 0x000a, 0x3d68: 0x000a, 0x3d69: 0x000a,\n\t0x3d6a: 0x000a, 0x3d6b: 0x000a, 0x3d6c: 0x000a,\n\t0x3d70: 0x000a, 0x3d71: 0x000a, 0x3d72: 0x000a, 0x3d73: 0x000a, 0x3d74: 0x000a, 0x3d75: 0x000a,\n\t0x3d76: 0x000a, 0x3d77: 0x000a, 0x3d78: 0x000a, 0x3d79: 0x000a, 0x3d7a: 0x000a, 0x3d7b: 0x000a,\n\t0x3d7c: 0x000a,\n\t// Block 0xf6, offset 0x3d80\n\t0x3d80: 0x000a, 0x3d81: 0x000a, 0x3d82: 0x000a, 0x3d83: 0x000a, 0x3d84: 0x000a, 0x3d85: 0x000a,\n\t0x3d86: 0x000a, 0x3d87: 0x000a, 0x3d88: 0x000a, 0x3d89: 0x000a, 0x3d8a: 0x000a, 0x3d8b: 0x000a,\n\t0x3d8c: 0x000a, 0x3d8d: 0x000a, 0x3d8e: 0x000a, 0x3d8f: 0x000a, 0x3d90: 0x000a, 0x3d91: 0x000a,\n\t0x3d92: 0x000a, 0x3d93: 0x000a, 0x3d94: 0x000a, 0x3d95: 0x000a, 0x3d96: 0x000a, 0x3d97: 0x000a,\n\t0x3d98: 0x000a, 0x3d99: 0x000a, 0x3d9a: 0x000a, 0x3d9b: 0x000a, 0x3d9c: 0x000a, 0x3d9d: 0x000a,\n\t0x3d9e: 0x000a, 0x3d9f: 0x000a, 0x3da0: 0x000a, 0x3da1: 0x000a, 0x3da2: 0x000a, 0x3da3: 0x000a,\n\t0x3da4: 0x000a, 0x3da5: 0x000a, 0x3da6: 0x000a, 0x3da7: 0x000a, 0x3da8: 0x000a, 0x3da9: 0x000a,\n\t0x3daa: 0x000a, 0x3dab: 0x000a, 0x3dac: 0x000a, 0x3dad: 0x000a, 0x3dae: 0x000a, 0x3daf: 0x000a,\n\t0x3db0: 0x000a, 0x3db1: 0x000a, 0x3db2: 0x000a, 0x3db3: 0x000a, 0x3db4: 0x000a, 0x3db5: 0x000a,\n\t0x3db6: 0x000a, 0x3dbb: 0x000a,\n\t0x3dbc: 0x000a, 0x3dbd: 0x000a, 0x3dbe: 0x000a, 0x3dbf: 0x000a,\n\t// Block 0xf7, offset 0x3dc0\n\t0x3dc0: 0x000a, 0x3dc1: 0x000a, 0x3dc2: 0x000a, 0x3dc3: 0x000a, 0x3dc4: 0x000a, 0x3dc5: 0x000a,\n\t0x3dc6: 0x000a, 0x3dc7: 0x000a, 0x3dc8: 0x000a, 0x3dc9: 0x000a, 0x3dca: 0x000a, 0x3dcb: 0x000a,\n\t0x3dcc: 0x000a, 0x3dcd: 0x000a, 0x3dce: 0x000a, 0x3dcf: 0x000a, 0x3dd0: 0x000a, 0x3dd1: 0x000a,\n\t0x3dd2: 0x000a, 0x3dd3: 0x000a, 0x3dd4: 0x000a, 0x3dd5: 0x000a, 0x3dd6: 0x000a, 0x3dd7: 0x000a,\n\t0x3dd8: 0x000a, 0x3dd9: 0x000a,\n\t0x3de0: 0x000a, 0x3de1: 0x000a, 0x3de2: 0x000a, 0x3de3: 0x000a,\n\t0x3de4: 0x000a, 0x3de5: 0x000a, 0x3de6: 0x000a, 0x3de7: 0x000a, 0x3de8: 0x000a, 0x3de9: 0x000a,\n\t0x3dea: 0x000a, 0x3deb: 0x000a,\n\t0x3df0: 0x000a,\n\t// Block 0xf8, offset 0x3e00\n\t0x3e00: 0x000a, 0x3e01: 0x000a, 0x3e02: 0x000a, 0x3e03: 0x000a, 0x3e04: 0x000a, 0x3e05: 0x000a,\n\t0x3e06: 0x000a, 0x3e07: 0x000a, 0x3e08: 0x000a, 0x3e09: 0x000a, 0x3e0a: 0x000a, 0x3e0b: 0x000a,\n\t0x3e10: 0x000a, 0x3e11: 0x000a,\n\t0x3e12: 0x000a, 0x3e13: 0x000a, 0x3e14: 0x000a, 0x3e15: 0x000a, 0x3e16: 0x000a, 0x3e17: 0x000a,\n\t0x3e18: 0x000a, 0x3e19: 0x000a, 0x3e1a: 0x000a, 0x3e1b: 0x000a, 0x3e1c: 0x000a, 0x3e1d: 0x000a,\n\t0x3e1e: 0x000a, 0x3e1f: 0x000a, 0x3e20: 0x000a, 0x3e21: 0x000a, 0x3e22: 0x000a, 0x3e23: 0x000a,\n\t0x3e24: 0x000a, 0x3e25: 0x000a, 0x3e26: 0x000a, 0x3e27: 0x000a, 0x3e28: 0x000a, 0x3e29: 0x000a,\n\t0x3e2a: 0x000a, 0x3e2b: 0x000a, 0x3e2c: 0x000a, 0x3e2d: 0x000a, 0x3e2e: 0x000a, 0x3e2f: 0x000a,\n\t0x3e30: 0x000a, 0x3e31: 0x000a, 0x3e32: 0x000a, 0x3e33: 0x000a, 0x3e34: 0x000a, 0x3e35: 0x000a,\n\t0x3e36: 0x000a, 0x3e37: 0x000a, 0x3e38: 0x000a, 0x3e39: 0x000a, 0x3e3a: 0x000a, 0x3e3b: 0x000a,\n\t0x3e3c: 0x000a, 0x3e3d: 0x000a, 0x3e3e: 0x000a, 0x3e3f: 0x000a,\n\t// Block 0xf9, offset 0x3e40\n\t0x3e40: 0x000a, 0x3e41: 0x000a, 0x3e42: 0x000a, 0x3e43: 0x000a, 0x3e44: 0x000a, 0x3e45: 0x000a,\n\t0x3e46: 0x000a, 0x3e47: 0x000a,\n\t0x3e50: 0x000a, 0x3e51: 0x000a,\n\t0x3e52: 0x000a, 0x3e53: 0x000a, 0x3e54: 0x000a, 0x3e55: 0x000a, 0x3e56: 0x000a, 0x3e57: 0x000a,\n\t0x3e58: 0x000a, 0x3e59: 0x000a,\n\t0x3e60: 0x000a, 0x3e61: 0x000a, 0x3e62: 0x000a, 0x3e63: 0x000a,\n\t0x3e64: 0x000a, 0x3e65: 0x000a, 0x3e66: 0x000a, 0x3e67: 0x000a, 0x3e68: 0x000a, 0x3e69: 0x000a,\n\t0x3e6a: 0x000a, 0x3e6b: 0x000a, 0x3e6c: 0x000a, 0x3e6d: 0x000a, 0x3e6e: 0x000a, 0x3e6f: 0x000a,\n\t0x3e70: 0x000a, 0x3e71: 0x000a, 0x3e72: 0x000a, 0x3e73: 0x000a, 0x3e74: 0x000a, 0x3e75: 0x000a,\n\t0x3e76: 0x000a, 0x3e77: 0x000a, 0x3e78: 0x000a, 0x3e79: 0x000a, 0x3e7a: 0x000a, 0x3e7b: 0x000a,\n\t0x3e7c: 0x000a, 0x3e7d: 0x000a, 0x3e7e: 0x000a, 0x3e7f: 0x000a,\n\t// Block 0xfa, offset 0x3e80\n\t0x3e80: 0x000a, 0x3e81: 0x000a, 0x3e82: 0x000a, 0x3e83: 0x000a, 0x3e84: 0x000a, 0x3e85: 0x000a,\n\t0x3e86: 0x000a, 0x3e87: 0x000a,\n\t0x3e90: 0x000a, 0x3e91: 0x000a,\n\t0x3e92: 0x000a, 0x3e93: 0x000a, 0x3e94: 0x000a, 0x3e95: 0x000a, 0x3e96: 0x000a, 0x3e97: 0x000a,\n\t0x3e98: 0x000a, 0x3e99: 0x000a, 0x3e9a: 0x000a, 0x3e9b: 0x000a, 0x3e9c: 0x000a, 0x3e9d: 0x000a,\n\t0x3e9e: 0x000a, 0x3e9f: 0x000a, 0x3ea0: 0x000a, 0x3ea1: 0x000a, 0x3ea2: 0x000a, 0x3ea3: 0x000a,\n\t0x3ea4: 0x000a, 0x3ea5: 0x000a, 0x3ea6: 0x000a, 0x3ea7: 0x000a, 0x3ea8: 0x000a, 0x3ea9: 0x000a,\n\t0x3eaa: 0x000a, 0x3eab: 0x000a, 0x3eac: 0x000a, 0x3ead: 0x000a,\n\t0x3eb0: 0x000a, 0x3eb1: 0x000a,\n\t// Block 0xfb, offset 0x3ec0\n\t0x3ec0: 0x000a, 0x3ec1: 0x000a, 0x3ec2: 0x000a, 0x3ec3: 0x000a, 0x3ec4: 0x000a, 0x3ec5: 0x000a,\n\t0x3ec6: 0x000a, 0x3ec7: 0x000a, 0x3ec8: 0x000a, 0x3ec9: 0x000a, 0x3eca: 0x000a, 0x3ecb: 0x000a,\n\t0x3ecc: 0x000a, 0x3ecd: 0x000a, 0x3ece: 0x000a, 0x3ecf: 0x000a, 0x3ed0: 0x000a, 0x3ed1: 0x000a,\n\t0x3ed2: 0x000a, 0x3ed3: 0x000a,\n\t0x3ee0: 0x000a, 0x3ee1: 0x000a, 0x3ee2: 0x000a, 0x3ee3: 0x000a,\n\t0x3ee4: 0x000a, 0x3ee5: 0x000a, 0x3ee6: 0x000a, 0x3ee7: 0x000a, 0x3ee8: 0x000a, 0x3ee9: 0x000a,\n\t0x3eea: 0x000a, 0x3eeb: 0x000a, 0x3eec: 0x000a, 0x3eed: 0x000a,\n\t0x3ef0: 0x000a, 0x3ef1: 0x000a, 0x3ef2: 0x000a, 0x3ef3: 0x000a, 0x3ef4: 0x000a, 0x3ef5: 0x000a,\n\t0x3ef6: 0x000a, 0x3ef7: 0x000a, 0x3ef8: 0x000a, 0x3ef9: 0x000a, 0x3efa: 0x000a, 0x3efb: 0x000a,\n\t0x3efc: 0x000a,\n\t// Block 0xfc, offset 0x3f00\n\t0x3f00: 0x000a, 0x3f01: 0x000a, 0x3f02: 0x000a, 0x3f03: 0x000a, 0x3f04: 0x000a, 0x3f05: 0x000a,\n\t0x3f06: 0x000a, 0x3f07: 0x000a, 0x3f08: 0x000a,\n\t0x3f10: 0x000a, 0x3f11: 0x000a,\n\t0x3f12: 0x000a, 0x3f13: 0x000a, 0x3f14: 0x000a, 0x3f15: 0x000a, 0x3f16: 0x000a, 0x3f17: 0x000a,\n\t0x3f18: 0x000a, 0x3f19: 0x000a, 0x3f1a: 0x000a, 0x3f1b: 0x000a, 0x3f1c: 0x000a, 0x3f1d: 0x000a,\n\t0x3f1e: 0x000a, 0x3f1f: 0x000a, 0x3f20: 0x000a, 0x3f21: 0x000a, 0x3f22: 0x000a, 0x3f23: 0x000a,\n\t0x3f24: 0x000a, 0x3f25: 0x000a, 0x3f26: 0x000a, 0x3f27: 0x000a, 0x3f28: 0x000a, 0x3f29: 0x000a,\n\t0x3f2a: 0x000a, 0x3f2b: 0x000a, 0x3f2c: 0x000a, 0x3f2d: 0x000a, 0x3f2e: 0x000a, 0x3f2f: 0x000a,\n\t0x3f30: 0x000a, 0x3f31: 0x000a, 0x3f32: 0x000a, 0x3f33: 0x000a, 0x3f34: 0x000a, 0x3f35: 0x000a,\n\t0x3f36: 0x000a, 0x3f37: 0x000a, 0x3f38: 0x000a, 0x3f39: 0x000a, 0x3f3a: 0x000a, 0x3f3b: 0x000a,\n\t0x3f3c: 0x000a, 0x3f3d: 0x000a, 0x3f3f: 0x000a,\n\t// Block 0xfd, offset 0x3f40\n\t0x3f40: 0x000a, 0x3f41: 0x000a, 0x3f42: 0x000a, 0x3f43: 0x000a, 0x3f44: 0x000a, 0x3f45: 0x000a,\n\t0x3f4e: 0x000a, 0x3f4f: 0x000a, 0x3f50: 0x000a, 0x3f51: 0x000a,\n\t0x3f52: 0x000a, 0x3f53: 0x000a, 0x3f54: 0x000a, 0x3f55: 0x000a, 0x3f56: 0x000a, 0x3f57: 0x000a,\n\t0x3f58: 0x000a, 0x3f59: 0x000a, 0x3f5a: 0x000a, 0x3f5b: 0x000a,\n\t0x3f60: 0x000a, 0x3f61: 0x000a, 0x3f62: 0x000a, 0x3f63: 0x000a,\n\t0x3f64: 0x000a, 0x3f65: 0x000a, 0x3f66: 0x000a, 0x3f67: 0x000a, 0x3f68: 0x000a,\n\t0x3f70: 0x000a, 0x3f71: 0x000a, 0x3f72: 0x000a, 0x3f73: 0x000a, 0x3f74: 0x000a, 0x3f75: 0x000a,\n\t0x3f76: 0x000a, 0x3f77: 0x000a, 0x3f78: 0x000a,\n\t// Block 0xfe, offset 0x3f80\n\t0x3f80: 0x000a, 0x3f81: 0x000a, 0x3f82: 0x000a, 0x3f83: 0x000a, 0x3f84: 0x000a, 0x3f85: 0x000a,\n\t0x3f86: 0x000a, 0x3f87: 0x000a, 0x3f88: 0x000a, 0x3f89: 0x000a, 0x3f8a: 0x000a, 0x3f8b: 0x000a,\n\t0x3f8c: 0x000a, 0x3f8d: 0x000a, 0x3f8e: 0x000a, 0x3f8f: 0x000a, 0x3f90: 0x000a, 0x3f91: 0x000a,\n\t0x3f92: 0x000a, 0x3f94: 0x000a, 0x3f95: 0x000a, 0x3f96: 0x000a, 0x3f97: 0x000a,\n\t0x3f98: 0x000a, 0x3f99: 0x000a, 0x3f9a: 0x000a, 0x3f9b: 0x000a, 0x3f9c: 0x000a, 0x3f9d: 0x000a,\n\t0x3f9e: 0x000a, 0x3f9f: 0x000a, 0x3fa0: 0x000a, 0x3fa1: 0x000a, 0x3fa2: 0x000a, 0x3fa3: 0x000a,\n\t0x3fa4: 0x000a, 0x3fa5: 0x000a, 0x3fa6: 0x000a, 0x3fa7: 0x000a, 0x3fa8: 0x000a, 0x3fa9: 0x000a,\n\t0x3faa: 0x000a, 0x3fab: 0x000a, 0x3fac: 0x000a, 0x3fad: 0x000a, 0x3fae: 0x000a, 0x3faf: 0x000a,\n\t0x3fb0: 0x000a, 0x3fb1: 0x000a, 0x3fb2: 0x000a, 0x3fb3: 0x000a, 0x3fb4: 0x000a, 0x3fb5: 0x000a,\n\t0x3fb6: 0x000a, 0x3fb7: 0x000a, 0x3fb8: 0x000a, 0x3fb9: 0x000a, 0x3fba: 0x000a, 0x3fbb: 0x000a,\n\t0x3fbc: 0x000a, 0x3fbd: 0x000a, 0x3fbe: 0x000a, 0x3fbf: 0x000a,\n\t// Block 0xff, offset 0x3fc0\n\t0x3fc0: 0x000a, 0x3fc1: 0x000a, 0x3fc2: 0x000a, 0x3fc3: 0x000a, 0x3fc4: 0x000a, 0x3fc5: 0x000a,\n\t0x3fc6: 0x000a, 0x3fc7: 0x000a, 0x3fc8: 0x000a, 0x3fc9: 0x000a, 0x3fca: 0x000a,\n\t0x3ff0: 0x0002, 0x3ff1: 0x0002, 0x3ff2: 0x0002, 0x3ff3: 0x0002, 0x3ff4: 0x0002, 0x3ff5: 0x0002,\n\t0x3ff6: 0x0002, 0x3ff7: 0x0002, 0x3ff8: 0x0002, 0x3ff9: 0x0002,\n\t// Block 0x100, offset 0x4000\n\t0x403e: 0x000b, 0x403f: 0x000b,\n\t// Block 0x101, offset 0x4040\n\t0x4040: 0x000b, 0x4041: 0x000b, 0x4042: 0x000b, 0x4043: 0x000b, 0x4044: 0x000b, 0x4045: 0x000b,\n\t0x4046: 0x000b, 0x4047: 0x000b, 0x4048: 0x000b, 0x4049: 0x000b, 0x404a: 0x000b, 0x404b: 0x000b,\n\t0x404c: 0x000b, 0x404d: 0x000b, 0x404e: 0x000b, 0x404f: 0x000b, 0x4050: 0x000b, 0x4051: 0x000b,\n\t0x4052: 0x000b, 0x4053: 0x000b, 0x4054: 0x000b, 0x4055: 0x000b, 0x4056: 0x000b, 0x4057: 0x000b,\n\t0x4058: 0x000b, 0x4059: 0x000b, 0x405a: 0x000b, 0x405b: 0x000b, 0x405c: 0x000b, 0x405d: 0x000b,\n\t0x405e: 0x000b, 0x405f: 0x000b, 0x4060: 0x000b, 0x4061: 0x000b, 0x4062: 0x000b, 0x4063: 0x000b,\n\t0x4064: 0x000b, 0x4065: 0x000b, 0x4066: 0x000b, 0x4067: 0x000b, 0x4068: 0x000b, 0x4069: 0x000b,\n\t0x406a: 0x000b, 0x406b: 0x000b, 0x406c: 0x000b, 0x406d: 0x000b, 0x406e: 0x000b, 0x406f: 0x000b,\n\t0x4070: 0x000b, 0x4071: 0x000b, 0x4072: 0x000b, 0x4073: 0x000b, 0x4074: 0x000b, 0x4075: 0x000b,\n\t0x4076: 0x000b, 0x4077: 0x000b, 0x4078: 0x000b, 0x4079: 0x000b, 0x407a: 0x000b, 0x407b: 0x000b,\n\t0x407c: 0x000b, 0x407d: 0x000b, 0x407e: 0x000b, 0x407f: 0x000b,\n\t// Block 0x102, offset 0x4080\n\t0x4080: 0x000c, 0x4081: 0x000c, 0x4082: 0x000c, 0x4083: 0x000c, 0x4084: 0x000c, 0x4085: 0x000c,\n\t0x4086: 0x000c, 0x4087: 0x000c, 0x4088: 0x000c, 0x4089: 0x000c, 0x408a: 0x000c, 0x408b: 0x000c,\n\t0x408c: 0x000c, 0x408d: 0x000c, 0x408e: 0x000c, 0x408f: 0x000c, 0x4090: 0x000c, 0x4091: 0x000c,\n\t0x4092: 0x000c, 0x4093: 0x000c, 0x4094: 0x000c, 0x4095: 0x000c, 0x4096: 0x000c, 0x4097: 0x000c,\n\t0x4098: 0x000c, 0x4099: 0x000c, 0x409a: 0x000c, 0x409b: 0x000c, 0x409c: 0x000c, 0x409d: 0x000c,\n\t0x409e: 0x000c, 0x409f: 0x000c, 0x40a0: 0x000c, 0x40a1: 0x000c, 0x40a2: 0x000c, 0x40a3: 0x000c,\n\t0x40a4: 0x000c, 0x40a5: 0x000c, 0x40a6: 0x000c, 0x40a7: 0x000c, 0x40a8: 0x000c, 0x40a9: 0x000c,\n\t0x40aa: 0x000c, 0x40ab: 0x000c, 0x40ac: 0x000c, 0x40ad: 0x000c, 0x40ae: 0x000c, 0x40af: 0x000c,\n\t0x40b0: 0x000b, 0x40b1: 0x000b, 0x40b2: 0x000b, 0x40b3: 0x000b, 0x40b4: 0x000b, 0x40b5: 0x000b,\n\t0x40b6: 0x000b, 0x40b7: 0x000b, 0x40b8: 0x000b, 0x40b9: 0x000b, 0x40ba: 0x000b, 0x40bb: 0x000b,\n\t0x40bc: 0x000b, 0x40bd: 0x000b, 0x40be: 0x000b, 0x40bf: 0x000b,\n}\n\n// bidiIndex: 26 blocks, 1664 entries, 3328 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1664]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x13, 0xf1: 0x14, 0xf2: 0x14, 0xf3: 0x16, 0xf4: 0x17,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,\n\t0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x32, 0x141: 0x33, 0x142: 0x34,\n\t0x14d: 0x35, 0x14e: 0x36,\n\t0x150: 0x37,\n\t0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,\n\t0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,\n\t0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,\n\t0x170: 0x4a, 0x173: 0x4b, 0x177: 0x05,\n\t0x17e: 0x4c, 0x17f: 0x4d,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4e, 0x181: 0x4f, 0x182: 0x50, 0x183: 0x51, 0x184: 0x52, 0x185: 0x53, 0x186: 0x54, 0x187: 0x55,\n\t0x188: 0x56, 0x189: 0x55, 0x18a: 0x55, 0x18b: 0x55, 0x18c: 0x57, 0x18d: 0x58, 0x18e: 0x59, 0x18f: 0x55,\n\t0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x55, 0x195: 0x55, 0x196: 0x55, 0x197: 0x55,\n\t0x198: 0x55, 0x199: 0x55, 0x19a: 0x5e, 0x19b: 0x55, 0x19c: 0x55, 0x19d: 0x5f, 0x19e: 0x55, 0x19f: 0x60,\n\t0x1a4: 0x55, 0x1a5: 0x55, 0x1a6: 0x61, 0x1a7: 0x62,\n\t0x1a8: 0x55, 0x1a9: 0x55, 0x1aa: 0x55, 0x1ab: 0x55, 0x1ac: 0x55, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x55,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x55, 0x1bd: 0x55, 0x1be: 0x55, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x55,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26d: 0x8a, 0x26f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x8f, 0x2b6: 0x0e, 0x2b7: 0x90,\n\t0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x97, 0x2c5: 0x55, 0x2c6: 0x98, 0x2c7: 0x99,\n\t0x2cb: 0x9a, 0x2cd: 0x9b,\n\t0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c,\n\t0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c,\n\t0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c,\n\t0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0xa4, 0x2fc: 0xa5, 0x2fd: 0xa6, 0x2fe: 0xa7, 0x2ff: 0x9c,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa8, 0x301: 0xa9, 0x302: 0xaa, 0x303: 0x21, 0x304: 0xab, 0x305: 0xac, 0x306: 0xad, 0x307: 0xae,\n\t0x308: 0xaf, 0x309: 0x28, 0x30b: 0xb0, 0x30c: 0x26, 0x30d: 0xb1,\n\t0x310: 0xb2, 0x311: 0xb3, 0x312: 0xb4, 0x313: 0xb5, 0x316: 0xb6, 0x317: 0xb7,\n\t0x318: 0xb8, 0x319: 0xb9, 0x31a: 0xba, 0x31c: 0xbb,\n\t0x320: 0xbc, 0x324: 0xbd, 0x325: 0xbe, 0x327: 0xbf,\n\t0x328: 0xc0, 0x329: 0xc1, 0x32a: 0xc2,\n\t0x330: 0xc3, 0x332: 0xc4, 0x334: 0xc5, 0x335: 0xc6, 0x336: 0xc7,\n\t0x33b: 0xc8, 0x33c: 0xc9, 0x33d: 0xca, 0x33f: 0xcb,\n\t// Block 0xd, offset 0x340\n\t0x351: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x3ab: 0xcd, 0x3ac: 0xce,\n\t0x3bd: 0xcf, 0x3be: 0xd0, 0x3bf: 0xd1,\n\t// Block 0xf, offset 0x3c0\n\t0x3f2: 0xd2,\n\t// Block 0x10, offset 0x400\n\t0x43c: 0xd3, 0x43d: 0xd4,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xd5, 0x446: 0xd6, 0x447: 0xd7,\n\t0x448: 0x55, 0x449: 0xd8, 0x44c: 0x55, 0x44d: 0xd9,\n\t0x45b: 0xda, 0x45c: 0xdb, 0x45d: 0xdc, 0x45e: 0xdd, 0x45f: 0xde,\n\t0x468: 0xdf, 0x469: 0xe0, 0x46a: 0xe1,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xe2, 0x482: 0xcf, 0x484: 0xce,\n\t0x48a: 0xe3, 0x48b: 0xe4,\n\t0x493: 0xe5,\n\t0x4a0: 0x9c, 0x4a1: 0x9c, 0x4a2: 0x9c, 0x4a3: 0xe6, 0x4a4: 0x9c, 0x4a5: 0xe7, 0x4a6: 0x9c, 0x4a7: 0x9c,\n\t0x4a8: 0x9c, 0x4a9: 0x9c, 0x4aa: 0x9c, 0x4ab: 0x9c, 0x4ac: 0x9c, 0x4ad: 0x9c, 0x4ae: 0x9c, 0x4af: 0x9c,\n\t0x4b0: 0x9c, 0x4b1: 0xe8, 0x4b2: 0xe9, 0x4b3: 0x9c, 0x4b4: 0xea, 0x4b5: 0x9c, 0x4b6: 0x9c, 0x4b7: 0x9c,\n\t0x4b8: 0x0e, 0x4b9: 0x0e, 0x4ba: 0x0e, 0x4bb: 0xeb, 0x4bc: 0x9c, 0x4bd: 0x9c, 0x4be: 0x9c, 0x4bf: 0x9c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xec, 0x4c1: 0x55, 0x4c2: 0xed, 0x4c3: 0xee, 0x4c4: 0xef, 0x4c5: 0xf0, 0x4c6: 0xf1,\n\t0x4c9: 0xf2, 0x4cc: 0x55, 0x4cd: 0x55, 0x4ce: 0x55, 0x4cf: 0x55,\n\t0x4d0: 0x55, 0x4d1: 0x55, 0x4d2: 0x55, 0x4d3: 0x55, 0x4d4: 0x55, 0x4d5: 0x55, 0x4d6: 0x55, 0x4d7: 0x55,\n\t0x4d8: 0x55, 0x4d9: 0x55, 0x4da: 0x55, 0x4db: 0xf3, 0x4dc: 0x55, 0x4dd: 0xf4, 0x4de: 0x55, 0x4df: 0xf5,\n\t0x4e0: 0xf6, 0x4e1: 0xf7, 0x4e2: 0xf8, 0x4e4: 0x55, 0x4e5: 0x55, 0x4e6: 0x55, 0x4e7: 0x55,\n\t0x4e8: 0x55, 0x4e9: 0xf9, 0x4ea: 0xfa, 0x4eb: 0xfb, 0x4ec: 0x55, 0x4ed: 0x55, 0x4ee: 0xfc, 0x4ef: 0xfd,\n\t0x4ff: 0xfe,\n\t// Block 0x14, offset 0x500\n\t0x53f: 0xfe,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x09, 0x551: 0x0a, 0x553: 0x0b, 0x556: 0x0c,\n\t0x55b: 0x0d, 0x55c: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n\t0x57f: 0x12,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x12,\n\t0x59f: 0x12,\n\t0x5af: 0x12,\n\t0x5bf: 0x12,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0xff, 0x5c1: 0xff, 0x5c2: 0xff, 0x5c3: 0xff, 0x5c4: 0x05, 0x5c5: 0x05, 0x5c6: 0x05, 0x5c7: 0x100,\n\t0x5c8: 0xff, 0x5c9: 0xff, 0x5ca: 0xff, 0x5cb: 0xff, 0x5cc: 0xff, 0x5cd: 0xff, 0x5ce: 0xff, 0x5cf: 0xff,\n\t0x5d0: 0xff, 0x5d1: 0xff, 0x5d2: 0xff, 0x5d3: 0xff, 0x5d4: 0xff, 0x5d5: 0xff, 0x5d6: 0xff, 0x5d7: 0xff,\n\t0x5d8: 0xff, 0x5d9: 0xff, 0x5da: 0xff, 0x5db: 0xff, 0x5dc: 0xff, 0x5dd: 0xff, 0x5de: 0xff, 0x5df: 0xff,\n\t0x5e0: 0xff, 0x5e1: 0xff, 0x5e2: 0xff, 0x5e3: 0xff, 0x5e4: 0xff, 0x5e5: 0xff, 0x5e6: 0xff, 0x5e7: 0xff,\n\t0x5e8: 0xff, 0x5e9: 0xff, 0x5ea: 0xff, 0x5eb: 0xff, 0x5ec: 0xff, 0x5ed: 0xff, 0x5ee: 0xff, 0x5ef: 0xff,\n\t0x5f0: 0xff, 0x5f1: 0xff, 0x5f2: 0xff, 0x5f3: 0xff, 0x5f4: 0xff, 0x5f5: 0xff, 0x5f6: 0xff, 0x5f7: 0xff,\n\t0x5f8: 0xff, 0x5f9: 0xff, 0x5fa: 0xff, 0x5fb: 0xff, 0x5fc: 0xff, 0x5fd: 0xff, 0x5fe: 0xff, 0x5ff: 0xff,\n\t// Block 0x18, offset 0x600\n\t0x60f: 0x12,\n\t0x61f: 0x12,\n\t0x620: 0x15,\n\t0x62f: 0x12,\n\t0x63f: 0x12,\n\t// Block 0x19, offset 0x640\n\t0x64f: 0x12,\n}\n\n// Total table size 19960 bytes (19KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 222 blocks, 14208 entries, 14208 bytes\n// The third block is the zero block.\nvar bidiValues = [14208]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,\n\t0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,\n\t0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa01: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,\n\t0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,\n\t0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,\n\t0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,\n\t0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,\n\t0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,\n\t0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,\n\t0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,\n\t0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,\n\t0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,\n\t0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,\n\t0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,\n\t0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,\n\t0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,\n\t0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,\n\t0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,\n\t0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,\n\t0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,\n\t0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,\n\t0x1a2a: 0x000a, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c,\n\t0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,\n\t0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,\n\t// Block 0x69, offset 0x1a40\n\t0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,\n\t0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,\n\t0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,\n\t0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,\n\t0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,\n\t0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,\n\t0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,\n\t0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,\n\t0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,\n\t0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,\n\t0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,\n\t0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,\n\t0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,\n\t0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,\n\t0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,\n\t0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,\n\t0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,\n\t0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,\n\t0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,\n\t0x1c30: 0x000a,\n\t0x1c36: 0x000a, 0x1c37: 0x000a,\n\t0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,\n\t0x1c60: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1cbb: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,\n\t0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,\n\t0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d1d: 0x000a,\n\t0x1d1e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d50: 0x000a, 0x1d51: 0x000a,\n\t0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,\n\t0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,\n\t0x1d5e: 0x000a, 0x1d5f: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,\n\t0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,\n\t0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a,\n\t0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e90: 0x000a, 0x1e91: 0x000a,\n\t0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,\n\t0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,\n\t0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,\n\t0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,\n\t0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,\n\t0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,\n\t0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,\n\t0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,\n\t0x1ec6: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f6f: 0x000c,\n\t0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,\n\t0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,\n\t0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f9e: 0x000c, 0x1f9f: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1ff0: 0x000c, 0x1ff1: 0x000c,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,\n\t0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,\n\t0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,\n\t0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,\n\t0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,\n\t0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2048: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2082: 0x000c,\n\t0x2086: 0x000c, 0x208b: 0x000c,\n\t0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,\n\t0x20aa: 0x000a, 0x20ab: 0x000a,\n\t0x20b8: 0x0004, 0x20b9: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20f4: 0x000a, 0x20f5: 0x000a,\n\t0x20f6: 0x000a, 0x20f7: 0x000a,\n\t// Block 0x84, offset 0x2100\n\t0x2104: 0x000c, 0x2105: 0x000c,\n\t0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,\n\t0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,\n\t0x2130: 0x000c, 0x2131: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,\n\t0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,\n\t0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,\n\t0x21f3: 0x000c,\n\t0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,\n\t0x21fc: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2225: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2269: 0x000c,\n\t0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,\n\t0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,\n\t0x2276: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2283: 0x000c,\n\t0x228c: 0x000c,\n\t0x22bc: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,\n\t0x22f7: 0x000c, 0x22f8: 0x000c,\n\t0x22fe: 0x000c, 0x22ff: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2301: 0x000c,\n\t0x232c: 0x000c, 0x232d: 0x000c,\n\t0x2336: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x2365: 0x000c, 0x2368: 0x000c,\n\t0x236d: 0x000c,\n\t// Block 0x8e, offset 0x2380\n\t0x239d: 0x0001,\n\t0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,\n\t0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,\n\t0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,\n\t0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,\n\t0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,\n\t0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,\n\t0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,\n\t0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,\n\t0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,\n\t0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,\n\t0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,\n\t0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,\n\t0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,\n\t0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,\n\t0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,\n\t0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,\n\t0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,\n\t0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x000a,\n\t0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,\n\t0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,\n\t0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,\n\t0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,\n\t0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,\n\t0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,\n\t0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,\n\t0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,\n\t0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,\n\t0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,\n\t0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,\n\t0x24ea: 0x0004, 0x24eb: 0x000a,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,\n\t0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,\n\t0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,\n\t0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,\n\t0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,\n\t0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,\n\t0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,\n\t0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,\n\t// Block 0x95, offset 0x2540\n\t0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,\n\t0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,\n\t0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,\n\t0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,\n\t0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,\n\t0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,\n\t0x257b: 0x005a,\n\t0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x2580: 0x000a,\n\t0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,\n\t0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,\n\t0x25a4: 0x000a, 0x25a5: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,\n\t0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,\n\t0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,\n\t0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,\n\t0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,\n\t0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,\n\t// Block 0x98, offset 0x2600\n\t0x2601: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,\n\t0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,\n\t0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,\n\t0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,\n\t0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,\n\t0x2660: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x26bd: 0x000c,\n\t// Block 0x9b, offset 0x26c0\n\t0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,\n\t0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,\n\t0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,\n\t0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,\n\t0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,\n\t// Block 0x9c, offset 0x2700\n\t0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,\n\t0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,\n\t0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c1: 0x000c,\n\t0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,\n\t0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,\n\t0x2906: 0x000c,\n\t0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,\n\t0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,\n\t0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,\n\t0x2924: 0x000a, 0x2925: 0x000a,\n\t0x293f: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c,\n\t0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,\n\t0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,\n\t0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,\n\t0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,\n\t0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29f3: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c,\n\t0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,\n\t0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a4a: 0x000c, 0x2a4b: 0x000c,\n\t0x2a4c: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2aaf: 0x000c,\n\t0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c,\n\t0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2adf: 0x000c, 0x2ae3: 0x000c,\n\t0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,\n\t0x2aea: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c, 0x2b01: 0x000c,\n\t0x2b3c: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c,\n\t0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,\n\t0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,\n\t0x2bc6: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,\n\t0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,\n\t0x2c3f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2cdc: 0x000c, 0x2cdd: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3d: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c,\n\t0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,\n\t0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,\n\t0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,\n\t// Block 0xb6, offset 0x2d80\n\t0x2dab: 0x000c, 0x2dad: 0x000c,\n\t0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db7: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2ddd: 0x000c,\n\t0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,\n\t0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,\n\t0x2dea: 0x000c, 0x2deb: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,\n\t0x2e3c: 0x000c, 0x2e3d: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,\n\t0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,\n\t0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,\n\t0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f5d: 0x000c,\n\t0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,\n\t0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,\n\t0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,\n\t0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,\n\t0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,\n\t0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,\n\t// Block 0xc1, offset 0x3040\n\t0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,\n\t0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,\n\t0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,\n\t0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,\n\t// Block 0xc2, offset 0x3080\n\t0x309b: 0x000a,\n\t// Block 0xc3, offset 0x30c0\n\t0x30d5: 0x000a,\n\t// Block 0xc4, offset 0x3100\n\t0x310f: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3149: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x3183: 0x000a,\n\t0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,\n\t0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,\n\t0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,\n\t0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,\n\t0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,\n\t0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,\n\t0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,\n\t0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,\n\t0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,\n\t// Block 0xc7, offset 0x31c0\n\t0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,\n\t0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,\n\t0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,\n\t0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,\n\t0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,\n\t0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,\n\t0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,\n\t0x31f6: 0x000c, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,\n\t0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,\n\t0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,\n\t0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,\n\t0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,\n\t0x3235: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3244: 0x000c,\n\t0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,\n\t0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,\n\t0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,\n\t0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,\n\t0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,\n\t0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,\n\t0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,\n\t0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,\n\t0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,\n\t0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,\n\t0x32aa: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,\n\t0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,\n\t0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,\n\t0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,\n\t0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,\n\t0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,\n\t0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,\n\t0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,\n\t0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,\n\t0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,\n\t0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,\n\t0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,\n\t0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,\n\t0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,\n\t0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,\n\t0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,\n\t0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,\n\t0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,\n\t0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,\n\t// Block 0xcd, offset 0x3340\n\t0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,\n\t0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,\n\t0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,\n\t0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,\n\t0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,\n\t0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,\n\t0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,\n\t0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,\n\t0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,\n\t0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,\n\t0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,\n\t0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,\n\t0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,\n\t0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,\n\t0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,\n\t0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,\n\t0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,\n\t0x33aa: 0x000a, 0x33ab: 0x000a,\n\t0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,\n\t0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,\n\t0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,\n\t0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,\n\t0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,\n\t0x33d2: 0x000a, 0x33d3: 0x000a,\n\t0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,\n\t0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,\n\t0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,\n\t0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,\n\t0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,\n\t0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,\n\t// Block 0xd0, offset 0x3400\n\t0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,\n\t0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,\n\t0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,\n\t0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,\n\t0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,\n\t0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,\n\t0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,\n\t0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,\n\t0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,\n\t0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,\n\t0x344c: 0x000a,\n\t// Block 0xd2, offset 0x3480\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,\n\t0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,\n\t0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,\n\t0x3550: 0x000a, 0x3551: 0x000a,\n\t0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,\n\t0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,\n\t0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,\n\t0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,\n\t0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,\n\t0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,\n\t0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,\n\t0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,\n\t0x3586: 0x000a, 0x3587: 0x000a,\n\t0x3590: 0x000a, 0x3591: 0x000a,\n\t0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,\n\t0x3598: 0x000a, 0x3599: 0x000a,\n\t0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,\n\t0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,\n\t0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,\n\t0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,\n\t0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a,\n\t0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,\n\t0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,\n\t0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,\n\t0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36fe: 0x000b, 0x36ff: 0x000b,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,\n\t0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,\n\t0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,\n\t0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,\n\t0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,\n\t0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,\n\t0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,\n\t0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,\n\t0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,\n\t0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,\n\t0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,\n\t0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,\n\t0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,\n\t0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,\n\t0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,\n\t0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,\n\t0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,\n\t0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,\n\t0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,\n\t0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,\n\t0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,\n\t0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,\n\t0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,\n\t0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,\n\t0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x78, 0x253: 0x79,\n\t0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,\n\t0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,\n\t0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,\n\t0x2cb: 0x99, 0x2cd: 0x9a,\n\t0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,\n\t0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,\n\t0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,\n\t0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,\n\t0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,\n\t0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,\n\t0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,\n\t0x330: 0xb6, 0x332: 0xb7,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xb8, 0x36c: 0xb9,\n\t0x37e: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbb,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xbc, 0x3c6: 0xbd,\n\t0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,\n\t0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,\n\t0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xc8,\n\t0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,\n\t0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,\n\t0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,\n\t0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,\n\t0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,\n\t0x47f: 0xd9,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xd9,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,\n\t0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,\n\t0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,\n\t0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,\n\t0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,\n\t0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,\n\t0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,\n\t0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 15800 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage bidi\n\n// Class is the Unicode BiDi class. Each rune has a single class.\ntype Class uint\n\nconst (\n\tL       Class = iota // LeftToRight\n\tR                    // RightToLeft\n\tEN                   // EuropeanNumber\n\tES                   // EuropeanSeparator\n\tET                   // EuropeanTerminator\n\tAN                   // ArabicNumber\n\tCS                   // CommonSeparator\n\tB                    // ParagraphSeparator\n\tS                    // SegmentSeparator\n\tWS                   // WhiteSpace\n\tON                   // OtherNeutral\n\tBN                   // BoundaryNeutral\n\tNSM                  // NonspacingMark\n\tAL                   // ArabicLetter\n\tControl              // Control LRO - PDI\n\n\tnumClass\n\n\tLRO // LeftToRightOverride\n\tRLO // RightToLeftOverride\n\tLRE // LeftToRightEmbedding\n\tRLE // RightToLeftEmbedding\n\tPDF // PopDirectionalFormat\n\tLRI // LeftToRightIsolate\n\tRLI // RightToLeftIsolate\n\tFSI // FirstStrongIsolate\n\tPDI // PopDirectionalIsolate\n\n\tunknownClass = ^Class(0)\n)\n\n// A trie entry has the following bits:\n// 7..5  XOR mask for brackets\n// 4     1: Bracket open, 0: Bracket close\n// 3..0  Class type\n\nconst (\n\topenMask     = 0x10\n\txorMaskShift = 5\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/composition.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\nconst (\n\tmaxNonStarters = 30\n\t// The maximum number of characters needed for a buffer is\n\t// maxNonStarters + 1 for the starter + 1 for the GCJ\n\tmaxBufferSize    = maxNonStarters + 2\n\tmaxNFCExpansion  = 3  // NFC(0x1D160)\n\tmaxNFKCExpansion = 18 // NFKC(0xFDFA)\n\n\tmaxByteBufferSize = utf8.UTFMax * maxBufferSize // 128\n)\n\n// ssState is used for reporting the segment state after inserting a rune.\n// It is returned by streamSafe.next.\ntype ssState int\n\nconst (\n\t// Indicates a rune was successfully added to the segment.\n\tssSuccess ssState = iota\n\t// Indicates a rune starts a new segment and should not be added.\n\tssStarter\n\t// Indicates a rune caused a segment overflow and a CGJ should be inserted.\n\tssOverflow\n)\n\n// streamSafe implements the policy of when a CGJ should be inserted.\ntype streamSafe uint8\n\n// first inserts the first rune of a segment. It is a faster version of next if\n// it is known p represents the first rune in a segment.\nfunc (ss *streamSafe) first(p Properties) {\n\t*ss = streamSafe(p.nTrailingNonStarters())\n}\n\n// insert returns a ssState value to indicate whether a rune represented by p\n// can be inserted.\nfunc (ss *streamSafe) next(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tn := p.nLeadingNonStarters()\n\tif *ss += streamSafe(n); *ss > maxNonStarters {\n\t\t*ss = 0\n\t\treturn ssOverflow\n\t}\n\t// The Stream-Safe Text Processing prescribes that the counting can stop\n\t// as soon as a starter is encountered. However, there are some starters,\n\t// like Jamo V and T, that can combine with other runes, leaving their\n\t// successive non-starters appended to the previous, possibly causing an\n\t// overflow. We will therefore consider any rune with a non-zero nLead to\n\t// be a non-starter. Note that it always hold that if nLead > 0 then\n\t// nLead == nTrail.\n\tif n == 0 {\n\t\t*ss = streamSafe(p.nTrailingNonStarters())\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\n// backwards is used for checking for overflow and segment starts\n// when traversing a string backwards. Users do not need to call first\n// for the first rune. The state of the streamSafe retains the count of\n// the non-starters loaded.\nfunc (ss *streamSafe) backwards(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tc := *ss + streamSafe(p.nTrailingNonStarters())\n\tif c > maxNonStarters {\n\t\treturn ssOverflow\n\t}\n\t*ss = c\n\tif p.nLeadingNonStarters() == 0 {\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\nfunc (ss streamSafe) isMax() bool {\n\treturn ss == maxNonStarters\n}\n\n// GraphemeJoiner is inserted after maxNonStarters non-starter runes.\nconst GraphemeJoiner = \"\\u034F\"\n\n// reorderBuffer is used to normalize a single segment.  Characters inserted with\n// insert are decomposed and reordered based on CCC. The compose method can\n// be used to recombine characters.  Note that the byte buffer does not hold\n// the UTF-8 characters in order.  Only the rune array is maintained in sorted\n// order. flush writes the resulting segment to a byte array.\ntype reorderBuffer struct {\n\trune  [maxBufferSize]Properties // Per character info.\n\tbyte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.\n\tnbyte uint8                     // Number or bytes.\n\tss    streamSafe                // For limiting length of non-starter sequence.\n\tnrune int                       // Number of runeInfos.\n\tf     formInfo\n\n\tsrc      input\n\tnsrc     int\n\ttmpBytes input\n\n\tout    []byte\n\tflushF func(*reorderBuffer) bool\n}\n\nfunc (rb *reorderBuffer) init(f Form, src []byte) {\n\trb.f = *formTable[f]\n\trb.src.setBytes(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) initString(f Form, src string) {\n\trb.f = *formTable[f]\n\trb.src.setString(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) {\n\trb.out = out\n\trb.flushF = f\n}\n\n// reset discards all characters from the buffer.\nfunc (rb *reorderBuffer) reset() {\n\trb.nrune = 0\n\trb.nbyte = 0\n}\n\nfunc (rb *reorderBuffer) doFlush() bool {\n\tif rb.f.composing {\n\t\trb.compose()\n\t}\n\tres := rb.flushF(rb)\n\trb.reset()\n\treturn res\n}\n\n// appendFlush appends the normalized segment to rb.out.\nfunc appendFlush(rb *reorderBuffer) bool {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\trb.out = append(rb.out, rb.byte[start:end]...)\n\t}\n\treturn true\n}\n\n// flush appends the normalized segment to out and resets rb.\nfunc (rb *reorderBuffer) flush(out []byte) []byte {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\tout = append(out, rb.byte[start:end]...)\n\t}\n\trb.reset()\n\treturn out\n}\n\n// flushCopy copies the normalized segment to buf and resets rb.\n// It returns the number of bytes written to buf.\nfunc (rb *reorderBuffer) flushCopy(buf []byte) int {\n\tp := 0\n\tfor i := 0; i < rb.nrune; i++ {\n\t\trunep := rb.rune[i]\n\t\tp += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])\n\t}\n\trb.reset()\n\treturn p\n}\n\n// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.\n// It returns false if the buffer is not large enough to hold the rune.\n// It is used internally by insert and insertString only.\nfunc (rb *reorderBuffer) insertOrdered(info Properties) {\n\tn := rb.nrune\n\tb := rb.rune[:]\n\tcc := info.ccc\n\tif cc > 0 {\n\t\t// Find insertion position + move elements to make room.\n\t\tfor ; n > 0; n-- {\n\t\t\tif b[n-1].ccc <= cc {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb[n] = b[n-1]\n\t\t}\n\t}\n\trb.nrune += 1\n\tpos := uint8(rb.nbyte)\n\trb.nbyte += utf8.UTFMax\n\tinfo.pos = pos\n\tb[n] = info\n}\n\n// insertErr is an error code returned by insert. Using this type instead\n// of error improves performance up to 20% for many of the benchmarks.\ntype insertErr int\n\nconst (\n\tiSuccess insertErr = -iota\n\tiShortDst\n\tiShortSrc\n)\n\n// insertFlush inserts the given rune in the buffer ordered by CCC.\n// If a decomposition with multiple segments are encountered, they leading\n// ones are flushed.\n// It returns a non-zero error code if the rune was not inserted.\nfunc (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t\treturn iSuccess\n\t}\n\tif info.hasDecomposition() {\n\t\treturn rb.insertDecomposed(info.Decomposition())\n\t}\n\trb.insertSingle(src, i, info)\n\treturn iSuccess\n}\n\n// insertUnsafe inserts the given rune in the buffer ordered by CCC.\n// It is assumed there is sufficient space to hold the runes. It is the\n// responsibility of the caller to ensure this. This can be done by checking\n// the state returned by the streamSafe type.\nfunc (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t}\n\tif info.hasDecomposition() {\n\t\t// TODO: inline.\n\t\trb.insertDecomposed(info.Decomposition())\n\t} else {\n\t\trb.insertSingle(src, i, info)\n\t}\n}\n\n// insertDecomposed inserts an entry in to the reorderBuffer for each rune\n// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes.\n// It flushes the buffer on each new segment start.\nfunc (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr {\n\trb.tmpBytes.setBytes(dcomp)\n\t// As the streamSafe accounting already handles the counting for modifiers,\n\t// we don't have to call next. However, we do need to keep the accounting\n\t// intact when flushing the buffer.\n\tfor i := 0; i < len(dcomp); {\n\t\tinfo := rb.f.info(rb.tmpBytes, i)\n\t\tif info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() {\n\t\t\treturn iShortDst\n\t\t}\n\t\ti += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)])\n\t\trb.insertOrdered(info)\n\t}\n\treturn iSuccess\n}\n\n// insertSingle inserts an entry in the reorderBuffer for the rune at\n// position i. info is the runeInfo for the rune at position i.\nfunc (rb *reorderBuffer) insertSingle(src input, i int, info Properties) {\n\tsrc.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size))\n\trb.insertOrdered(info)\n}\n\n// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb.\nfunc (rb *reorderBuffer) insertCGJ() {\n\trb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))})\n}\n\n// appendRune inserts a rune at the end of the buffer. It is used for Hangul.\nfunc (rb *reorderBuffer) appendRune(r rune) {\n\tbn := rb.nbyte\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.nbyte += utf8.UTFMax\n\trb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}\n\trb.nrune++\n}\n\n// assignRune sets a rune at position pos. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) assignRune(pos int, r rune) {\n\tbn := rb.rune[pos].pos\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.rune[pos] = Properties{pos: bn, size: uint8(sz)}\n}\n\n// runeAt returns the rune at position n. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) runeAt(n int) rune {\n\tinf := rb.rune[n]\n\tr, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])\n\treturn r\n}\n\n// bytesAt returns the UTF-8 encoding of the rune at position n.\n// It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) bytesAt(n int) []byte {\n\tinf := rb.rune[n]\n\treturn rb.byte[inf.pos : int(inf.pos)+int(inf.size)]\n}\n\n// For Hangul we combine algorithmically, instead of using tables.\nconst (\n\thangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80\n\thangulBase0 = 0xEA\n\thangulBase1 = 0xB0\n\thangulBase2 = 0x80\n\n\thangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4\n\thangulEnd0 = 0xED\n\thangulEnd1 = 0x9E\n\thangulEnd2 = 0xA4\n\n\tjamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00\n\tjamoLBase0 = 0xE1\n\tjamoLBase1 = 0x84\n\tjamoLEnd   = 0x1113\n\tjamoVBase  = 0x1161\n\tjamoVEnd   = 0x1176\n\tjamoTBase  = 0x11A7\n\tjamoTEnd   = 0x11C3\n\n\tjamoTCount   = 28\n\tjamoVCount   = 21\n\tjamoVTCount  = 21 * 28\n\tjamoLVTCount = 19 * 21 * 28\n)\n\nconst hangulUTF8Size = 3\n\nfunc isHangul(b []byte) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\nfunc isHangulString(b string) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\n// Caller must ensure len(b) >= 2.\nfunc isJamoVT(b []byte) bool {\n\t// True if (rune & 0xff00) == jamoLBase\n\treturn b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1\n}\n\nfunc isHangulWithoutJamoT(b []byte) bool {\n\tc, _ := utf8.DecodeRune(b)\n\tc -= hangulBase\n\treturn c < jamoLVTCount && c%jamoTCount == 0\n}\n\n// decomposeHangul writes the decomposed Hangul to buf and returns the number\n// of bytes written.  len(buf) should be at least 9.\nfunc decomposeHangul(buf []byte, r rune) int {\n\tconst JamoUTF8Len = 3\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\tutf8.EncodeRune(buf, jamoLBase+r/jamoVCount)\n\tutf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)\n\tif x != 0 {\n\t\tutf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)\n\t\treturn 3 * JamoUTF8Len\n\t}\n\treturn 2 * JamoUTF8Len\n}\n\n// decomposeHangul algorithmically decomposes a Hangul rune into\n// its Jamo components.\n// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.\nfunc (rb *reorderBuffer) decomposeHangul(r rune) {\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\trb.appendRune(jamoLBase + r/jamoVCount)\n\trb.appendRune(jamoVBase + r%jamoVCount)\n\tif x != 0 {\n\t\trb.appendRune(jamoTBase + x)\n\t}\n}\n\n// combineHangul algorithmically combines Jamo character components into Hangul.\n// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul.\nfunc (rb *reorderBuffer) combineHangul(s, i, k int) {\n\tb := rb.rune[:]\n\tbn := rb.nrune\n\tfor ; i < bn; i++ {\n\t\tcccB := b[k-1].ccc\n\t\tcccC := b[i].ccc\n\t\tif cccB == 0 {\n\t\t\ts = k - 1\n\t\t}\n\t\tif s != k-1 && cccB >= cccC {\n\t\t\t// b[i] is blocked by greater-equal cccX below it\n\t\t\tb[k] = b[i]\n\t\t\tk++\n\t\t} else {\n\t\t\tl := rb.runeAt(s) // also used to compare to hangulBase\n\t\t\tv := rb.runeAt(i) // also used to compare to jamoT\n\t\t\tswitch {\n\t\t\tcase jamoLBase <= l && l < jamoLEnd &&\n\t\t\t\tjamoVBase <= v && v < jamoVEnd:\n\t\t\t\t// 11xx plus 116x to LV\n\t\t\t\trb.assignRune(s, hangulBase+\n\t\t\t\t\t(l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)\n\t\t\tcase hangulBase <= l && l < hangulEnd &&\n\t\t\t\tjamoTBase < v && v < jamoTEnd &&\n\t\t\t\t((l-hangulBase)%jamoTCount) == 0:\n\t\t\t\t// ACxx plus 11Ax to LVT\n\t\t\t\trb.assignRune(s, l+v-jamoTBase)\n\t\t\tdefault:\n\t\t\t\tb[k] = b[i]\n\t\t\t\tk++\n\t\t\t}\n\t\t}\n\t}\n\trb.nrune = k\n}\n\n// compose recombines the runes in the buffer.\n// It should only be used to recompose a single segment, as it will not\n// handle alternations between Hangul and non-Hangul characters correctly.\nfunc (rb *reorderBuffer) compose() {\n\t// Lazily load the map used by the combine func below, but do\n\t// it outside of the loop.\n\trecompMapOnce.Do(buildRecompMap)\n\n\t// UAX #15, section X5 , including Corrigendum #5\n\t// \"In any character sequence beginning with starter S, a character C is\n\t//  blocked from S if and only if there is some character B between S\n\t//  and C, and either B is a starter or it has the same or higher\n\t//  combining class as C.\"\n\tbn := rb.nrune\n\tif bn == 0 {\n\t\treturn\n\t}\n\tk := 1\n\tb := rb.rune[:]\n\tfor s, i := 0, 1; i < bn; i++ {\n\t\tif isJamoVT(rb.bytesAt(i)) {\n\t\t\t// Redo from start in Hangul mode. Necessary to support\n\t\t\t// U+320E..U+321E in NFKC mode.\n\t\t\trb.combineHangul(s, i, k)\n\t\t\treturn\n\t\t}\n\t\tii := b[i]\n\t\t// We can only use combineForward as a filter if we later\n\t\t// get the info for the combined character. This is more\n\t\t// expensive than using the filter. Using combinesBackward()\n\t\t// is safe.\n\t\tif ii.combinesBackward() {\n\t\t\tcccB := b[k-1].ccc\n\t\t\tcccC := ii.ccc\n\t\t\tblocked := false // b[i] blocked by starter or greater or equal CCC?\n\t\t\tif cccB == 0 {\n\t\t\t\ts = k - 1\n\t\t\t} else {\n\t\t\t\tblocked = s != k-1 && cccB >= cccC\n\t\t\t}\n\t\t\tif !blocked {\n\t\t\t\tcombined := combine(rb.runeAt(s), rb.runeAt(i))\n\t\t\t\tif combined != 0 {\n\t\t\t\t\trb.assignRune(s, combined)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tb[k] = b[i]\n\t\tk++\n\t}\n\trb.nrune = k\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/forminfo.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"encoding/binary\"\n\n// This file contains Form-specific logic and wrappers for data in tables.go.\n\n// Rune info is stored in a separate trie per composing form. A composing form\n// and its corresponding decomposing form share the same trie.  Each trie maps\n// a rune to a uint16. The values take two forms.  For v >= 0x8000:\n//   bits\n//   15:    1 (inverse of NFD_QC bit of qcInfo)\n//   13..7: qcInfo (see below). isYesD is always true (no decomposition).\n//    6..0: ccc (compressed CCC value).\n// For v < 0x8000, the respective rune has a decomposition and v is an index\n// into a byte array of UTF-8 decomposition sequences and additional info and\n// has the form:\n//    <header> <decomp_byte>* [<tccc> [<lccc>]]\n// The header contains the number of bytes in the decomposition (excluding this\n// length byte). The two most significant bits of this length byte correspond\n// to bit 5 and 4 of qcInfo (see below).  The byte sequence itself starts at v+1.\n// The byte sequence is followed by a trailing and leading CCC if the values\n// for these are not zero.  The value of v determines which ccc are appended\n// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,\n// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC\n// there is an additional leading ccc. The value of tccc itself is the\n// trailing CCC shifted left 2 bits. The two least-significant bits of tccc\n// are the number of trailing non-starters.\n\nconst (\n\tqcInfoMask      = 0x3F // to clear all but the relevant bits in a qcInfo\n\theaderLenMask   = 0x3F // extract the length value from the header byte\n\theaderFlagsMask = 0xC0 // extract the qcInfo bits from the header byte\n)\n\n// Properties provides access to normalization properties of a rune.\ntype Properties struct {\n\tpos   uint8  // start position in reorderBuffer; used in composition.go\n\tsize  uint8  // length of UTF-8 encoding of this rune\n\tccc   uint8  // leading canonical combining class (ccc if not decomposition)\n\ttccc  uint8  // trailing canonical combining class (ccc if not decomposition)\n\tnLead uint8  // number of leading non-starters.\n\tflags qcInfo // quick check flags\n\tindex uint16\n}\n\n// functions dispatchable per form\ntype lookupFunc func(b input, i int) Properties\n\n// formInfo holds Form-specific functions and tables.\ntype formInfo struct {\n\tform                     Form\n\tcomposing, compatibility bool // form type\n\tinfo                     lookupFunc\n\tnextMain                 iterFunc\n}\n\nvar formTable = []*formInfo{{\n\tform:          NFC,\n\tcomposing:     true,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFD,\n\tcomposing:     false,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextDecomposed,\n}, {\n\tform:          NFKC,\n\tcomposing:     true,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFKD,\n\tcomposing:     false,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextDecomposed,\n}}\n\n// We do not distinguish between boundaries for NFC, NFD, etc. to avoid\n// unexpected behavior for the user.  For example, in NFD, there is a boundary\n// after 'a'.  However, 'a' might combine with modifiers, so from the application's\n// perspective it is not a good boundary. We will therefore always use the\n// boundaries for the combining variants.\n\n// BoundaryBefore returns true if this rune starts a new segment and\n// cannot combine with any rune on the left.\nfunc (p Properties) BoundaryBefore() bool {\n\tif p.ccc == 0 && !p.combinesBackward() {\n\t\treturn true\n\t}\n\t// We assume that the CCC of the first character in a decomposition\n\t// is always non-zero if different from info.ccc and that we can return\n\t// false at this point. This is verified by maketables.\n\treturn false\n}\n\n// BoundaryAfter returns true if runes cannot combine with or otherwise\n// interact with this or previous runes.\nfunc (p Properties) BoundaryAfter() bool {\n\t// TODO: loosen these conditions.\n\treturn p.isInert()\n}\n\n// We pack quick check data in 4 bits:\n//\n//\t5:    Combines forward  (0 == false, 1 == true)\n//\t4..3: NFC_QC Yes(00), No (10), or Maybe (11)\n//\t2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.\n//\t1..0: Number of trailing non-starters.\n//\n// When all 4 bits are zero, the character is inert, meaning it is never\n// influenced by normalization.\ntype qcInfo uint8\n\nfunc (p Properties) isYesC() bool { return p.flags&0x10 == 0 }\nfunc (p Properties) isYesD() bool { return p.flags&0x4 == 0 }\n\nfunc (p Properties) combinesForward() bool  { return p.flags&0x20 != 0 }\nfunc (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe\nfunc (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD\n\nfunc (p Properties) isInert() bool {\n\treturn p.flags&qcInfoMask == 0 && p.ccc == 0\n}\n\nfunc (p Properties) multiSegment() bool {\n\treturn p.index >= firstMulti && p.index < endMulti\n}\n\nfunc (p Properties) nLeadingNonStarters() uint8 {\n\treturn p.nLead\n}\n\nfunc (p Properties) nTrailingNonStarters() uint8 {\n\treturn uint8(p.flags & 0x03)\n}\n\n// Decomposition returns the decomposition for the underlying rune\n// or nil if there is none.\nfunc (p Properties) Decomposition() []byte {\n\t// TODO: create the decomposition for Hangul?\n\tif p.index == 0 {\n\t\treturn nil\n\t}\n\ti := p.index\n\tn := decomps[i] & headerLenMask\n\ti++\n\treturn decomps[i : i+uint16(n)]\n}\n\n// Size returns the length of UTF-8 encoding of the rune.\nfunc (p Properties) Size() int {\n\treturn int(p.size)\n}\n\n// CCC returns the canonical combining class of the underlying rune.\nfunc (p Properties) CCC() uint8 {\n\tif p.index >= firstCCCZeroExcept {\n\t\treturn 0\n\t}\n\treturn ccc[p.ccc]\n}\n\n// LeadCCC returns the CCC of the first rune in the decomposition.\n// If there is no decomposition, LeadCCC equals CCC.\nfunc (p Properties) LeadCCC() uint8 {\n\treturn ccc[p.ccc]\n}\n\n// TrailCCC returns the CCC of the last rune in the decomposition.\n// If there is no decomposition, TrailCCC equals CCC.\nfunc (p Properties) TrailCCC() uint8 {\n\treturn ccc[p.tccc]\n}\n\nfunc buildRecompMap() {\n\trecompMap = make(map[uint32]rune, len(recompMapPacked)/8)\n\tvar buf [8]byte\n\tfor i := 0; i < len(recompMapPacked); i += 8 {\n\t\tcopy(buf[:], recompMapPacked[i:i+8])\n\t\tkey := binary.BigEndian.Uint32(buf[:4])\n\t\tval := binary.BigEndian.Uint32(buf[4:])\n\t\trecompMap[key] = rune(val)\n\t}\n}\n\n// Recomposition\n// We use 32-bit keys instead of 64-bit for the two codepoint keys.\n// This clips off the bits of three entries, but we know this will not\n// result in a collision. In the unlikely event that changes to\n// UnicodeData.txt introduce collisions, the compiler will catch it.\n// Note that the recomposition map for NFC and NFKC are identical.\n\n// combine returns the combined rune or 0 if it doesn't exist.\n//\n// The caller is responsible for calling\n// recompMapOnce.Do(buildRecompMap) sometime before this is called.\nfunc combine(a, b rune) rune {\n\tkey := uint32(uint16(a))<<16 + uint32(uint16(b))\n\tif recompMap == nil {\n\t\tpanic(\"caller error\") // see func comment\n\t}\n\treturn recompMap[key]\n}\n\nfunc lookupInfoNFC(b input, i int) Properties {\n\tv, sz := b.charinfoNFC(i)\n\treturn compInfo(v, sz)\n}\n\nfunc lookupInfoNFKC(b input, i int) Properties {\n\tv, sz := b.charinfoNFKC(i)\n\treturn compInfo(v, sz)\n}\n\n// Properties returns properties for the first rune in s.\nfunc (f Form) Properties(s []byte) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookup(s))\n\t}\n\treturn compInfo(nfkcData.lookup(s))\n}\n\n// PropertiesString returns properties for the first rune in s.\nfunc (f Form) PropertiesString(s string) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookupString(s))\n\t}\n\treturn compInfo(nfkcData.lookupString(s))\n}\n\n// compInfo converts the information contained in v and sz\n// to a Properties.  See the comment at the top of the file\n// for more information on the format.\nfunc compInfo(v uint16, sz int) Properties {\n\tif v == 0 {\n\t\treturn Properties{size: uint8(sz)}\n\t} else if v >= 0x8000 {\n\t\tp := Properties{\n\t\t\tsize:  uint8(sz),\n\t\t\tccc:   uint8(v),\n\t\t\ttccc:  uint8(v),\n\t\t\tflags: qcInfo(v >> 8),\n\t\t}\n\t\tif p.ccc > 0 || p.combinesBackward() {\n\t\t\tp.nLead = uint8(p.flags & 0x3)\n\t\t}\n\t\treturn p\n\t}\n\t// has decomposition\n\th := decomps[v]\n\tf := (qcInfo(h&headerFlagsMask) >> 2) | 0x4\n\tp := Properties{size: uint8(sz), flags: f, index: v}\n\tif v >= firstCCC {\n\t\tv += uint16(h&headerLenMask) + 1\n\t\tc := decomps[v]\n\t\tp.tccc = c >> 2\n\t\tp.flags |= qcInfo(c & 0x3)\n\t\tif v >= firstLeadingCCC {\n\t\t\tp.nLead = c & 0x3\n\t\t\tif v >= firstStarterWithNLead {\n\t\t\t\t// We were tricked. Remove the decomposition.\n\t\t\t\tp.flags &= 0x03\n\t\t\t\tp.index = 0\n\t\t\t\treturn p\n\t\t\t}\n\t\t\tp.ccc = decomps[v+1]\n\t\t}\n\t}\n\treturn p\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/input.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\ntype input struct {\n\tstr   string\n\tbytes []byte\n}\n\nfunc inputBytes(str []byte) input {\n\treturn input{bytes: str}\n}\n\nfunc inputString(str string) input {\n\treturn input{str: str}\n}\n\nfunc (in *input) setBytes(str []byte) {\n\tin.str = \"\"\n\tin.bytes = str\n}\n\nfunc (in *input) setString(str string) {\n\tin.str = str\n\tin.bytes = nil\n}\n\nfunc (in *input) _byte(p int) byte {\n\tif in.bytes == nil {\n\t\treturn in.str[p]\n\t}\n\treturn in.bytes[p]\n}\n\nfunc (in *input) skipASCII(p, max int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < max && in.str[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) skipContinuationBytes(p int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) appendSlice(buf []byte, b, e int) []byte {\n\tif in.bytes != nil {\n\t\treturn append(buf, in.bytes[b:e]...)\n\t}\n\tfor i := b; i < e; i++ {\n\t\tbuf = append(buf, in.str[i])\n\t}\n\treturn buf\n}\n\nfunc (in *input) copySlice(buf []byte, b, e int) int {\n\tif in.bytes == nil {\n\t\treturn copy(buf, in.str[b:e])\n\t}\n\treturn copy(buf, in.bytes[b:e])\n}\n\nfunc (in *input) charinfoNFC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfcData.lookupString(in.str[p:])\n\t}\n\treturn nfcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) charinfoNFKC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfkcData.lookupString(in.str[p:])\n\t}\n\treturn nfkcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) hangul(p int) (r rune) {\n\tvar size int\n\tif in.bytes == nil {\n\t\tif !isHangulString(in.str[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRuneInString(in.str[p:])\n\t} else {\n\t\tif !isHangul(in.bytes[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRune(in.bytes[p:])\n\t}\n\tif size != hangulUTF8Size {\n\t\treturn 0\n\t}\n\treturn r\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/iter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n)\n\n// MaxSegmentSize is the maximum size of a byte buffer needed to consider any\n// sequence of starter and non-starter runes for the purpose of normalization.\nconst MaxSegmentSize = maxByteBufferSize\n\n// An Iter iterates over a string or byte slice, while normalizing it\n// to a given Form.\ntype Iter struct {\n\trb     reorderBuffer\n\tbuf    [maxByteBufferSize]byte\n\tinfo   Properties // first character saved from previous iteration\n\tnext   iterFunc   // implementation of next depends on form\n\tasciiF iterFunc\n\n\tp        int    // current position in input source\n\tmultiSeg []byte // remainder of multi-segment decomposition\n}\n\ntype iterFunc func(*Iter) []byte\n\n// Init initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) Init(f Form, src []byte) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.init(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIBytes\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// InitString initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) InitString(f Form, src string) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.initString(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIString\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// Seek sets the segment to be returned by the next call to Next to start\n// at position p.  It is the responsibility of the caller to set p to the\n// start of a segment.\nfunc (i *Iter) Seek(offset int64, whence int) (int64, error) {\n\tvar abs int64\n\tswitch whence {\n\tcase 0:\n\t\tabs = offset\n\tcase 1:\n\t\tabs = int64(i.p) + offset\n\tcase 2:\n\t\tabs = int64(i.rb.nsrc) + offset\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"norm: invalid whence\")\n\t}\n\tif abs < 0 {\n\t\treturn 0, fmt.Errorf(\"norm: negative position\")\n\t}\n\tif int(abs) >= i.rb.nsrc {\n\t\ti.setDone()\n\t\treturn int64(i.p), nil\n\t}\n\ti.p = int(abs)\n\ti.multiSeg = nil\n\ti.next = i.rb.f.nextMain\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\treturn abs, nil\n}\n\n// returnSlice returns a slice of the underlying input type as a byte slice.\n// If the underlying is of type []byte, it will simply return a slice.\n// If the underlying is of type string, it will copy the slice to the buffer\n// and return that.\nfunc (i *Iter) returnSlice(a, b int) []byte {\n\tif i.rb.src.bytes == nil {\n\t\treturn i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]\n\t}\n\treturn i.rb.src.bytes[a:b]\n}\n\n// Pos returns the byte position at which the next call to Next will commence processing.\nfunc (i *Iter) Pos() int {\n\treturn i.p\n}\n\nfunc (i *Iter) setDone() {\n\ti.next = nextDone\n\ti.p = i.rb.nsrc\n}\n\n// Done returns true if there is no more input to process.\nfunc (i *Iter) Done() bool {\n\treturn i.p >= i.rb.nsrc\n}\n\n// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.\n// For any input a and b for which f(a) == f(b), subsequent calls\n// to Next will return the same segments.\n// Modifying runes are grouped together with the preceding starter, if such a starter exists.\n// Although not guaranteed, n will typically be the smallest possible n.\nfunc (i *Iter) Next() []byte {\n\treturn i.next(i)\n}\n\nfunc nextASCIIBytes(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\tp0 := i.p\n\t\ti.setDone()\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\tif i.rb.src.bytes[p] < utf8.RuneSelf {\n\t\tp0 := i.p\n\t\ti.p = p\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextASCIIString(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.setDone()\n\t\treturn i.buf[:1]\n\t}\n\tif i.rb.src.str[p] < utf8.RuneSelf {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.p = p\n\t\treturn i.buf[:1]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextHangul(i *Iter) []byte {\n\tp := i.p\n\tnext := p + hangulUTF8Size\n\tif next >= i.rb.nsrc {\n\t\ti.setDone()\n\t} else if i.rb.src.hangul(next) == 0 {\n\t\ti.rb.ss.next(i.info)\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\ti.next = i.rb.f.nextMain\n\t\treturn i.next(i)\n\t}\n\ti.p = next\n\treturn i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))]\n}\n\nfunc nextDone(i *Iter) []byte {\n\treturn nil\n}\n\n// nextMulti is used for iterating over multi-segment decompositions\n// for decomposing normal forms.\nfunc nextMulti(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\t// skip first rune\n\tfor j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {\n\t}\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.multiSeg = d[j:]\n\t\t\treturn d[:j]\n\t\t}\n\t\tj += int(info.size)\n\t}\n\t// treat last segment as normal decomposition\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\n// nextMultiNorm is used for iterating over multi-segment decompositions\n// for composing normal forms.\nfunc nextMultiNorm(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.rb.compose()\n\t\t\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\t\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\t\ti.multiSeg = d[j+int(info.size):]\n\t\t\treturn seg\n\t\t}\n\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\tj += int(info.size)\n\t}\n\ti.multiSeg = nil\n\ti.next = nextComposed\n\treturn doNormComposed(i)\n}\n\n// nextDecomposed is the implementation of Next for forms NFD and NFKD.\nfunc nextDecomposed(i *Iter) (next []byte) {\n\toutp := 0\n\tinCopyStart, outCopyStart := i.p, 0\n\tfor {\n\t\tif sz := int(i.info.size); sz <= 1 {\n\t\t\ti.rb.ss = 0\n\t\t\tp := i.p\n\t\t\ti.p++ // ASCII or illegal byte.  Either way, advance by 1.\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\t\ti.next = i.asciiF\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t}\n\t\t\toutp++\n\t\t} else if d := i.info.Decomposition(); d != nil {\n\t\t\t// Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.\n\t\t\t// Case 1: there is a leftover to copy.  In this case the decomposition\n\t\t\t// must begin with a modifier and should always be appended.\n\t\t\t// Case 2: no leftover. Simply return d if followed by a ccc == 0 value.\n\t\t\tp := outp + len(d)\n\t\t\tif outp > 0 {\n\t\t\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t\t\t\t// TODO: this condition should not be possible, but we leave it\n\t\t\t\t// in for defensive purposes.\n\t\t\t\tif p > len(i.buf) {\n\t\t\t\t\treturn i.buf[:outp]\n\t\t\t\t}\n\t\t\t} else if i.info.multiSegment() {\n\t\t\t\t// outp must be 0 as multi-segment decompositions always\n\t\t\t\t// start a new segment.\n\t\t\t\tif i.multiSeg == nil {\n\t\t\t\t\ti.multiSeg = d\n\t\t\t\t\ti.next = nextMulti\n\t\t\t\t\treturn nextMulti(i)\n\t\t\t\t}\n\t\t\t\t// We are in the last segment.  Treat as normal decomposition.\n\t\t\t\td = i.multiSeg\n\t\t\t\ti.multiSeg = nil\n\t\t\t\tp = len(d)\n\t\t\t}\n\t\t\tprevCC := i.info.tccc\n\t\t\tif i.p += sz; i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\ti.info = Properties{} // Force BoundaryBefore to succeed.\n\t\t\t} else {\n\t\t\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\t\t}\n\t\t\tswitch i.rb.ss.next(i.info) {\n\t\t\tcase ssOverflow:\n\t\t\t\ti.next = nextCGJDecompose\n\t\t\t\tfallthrough\n\t\t\tcase ssStarter:\n\t\t\t\tif outp > 0 {\n\t\t\t\t\tcopy(i.buf[outp:], d)\n\t\t\t\t\treturn i.buf[:p]\n\t\t\t\t}\n\t\t\t\treturn d\n\t\t\t}\n\t\t\tcopy(i.buf[outp:], d)\n\t\t\toutp = p\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.info.ccc < prevCC {\n\t\t\t\tgoto doNorm\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if r := i.rb.src.hangul(i.p); r != 0 {\n\t\t\toutp = decomposeHangul(i.buf[:], r)\n\t\t\ti.p += hangulUTF8Size\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\tbreak\n\t\t\t} else if i.rb.src.hangul(i.p) != 0 {\n\t\t\t\ti.next = nextHangul\n\t\t\t\treturn i.buf[:outp]\n\t\t\t}\n\t\t} else {\n\t\t\tp := outp + sz\n\t\t\tif p > len(i.buf) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toutp = p\n\t\t\ti.p += sz\n\t\t}\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\tprevCC := i.info.tccc\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\tif outCopyStart == 0 {\n\t\treturn i.returnSlice(inCopyStart, i.p)\n\t} else if inCopyStart < i.p {\n\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t}\n\treturn i.buf[:outp]\ndoNorm:\n\t// Insert what we have decomposed so far in the reorderBuffer.\n\t// As we will only reorder, there will always be enough room.\n\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\ti.rb.insertDecomposed(i.buf[0:outp])\n\treturn doNormDecomposed(i)\n}\n\nfunc doNormDecomposed(i *Iter) []byte {\n\tfor {\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif i.info.ccc == 0 {\n\t\t\tbreak\n\t\t}\n\t\tif s := i.rb.ss.next(i.info); s == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t}\n\t// new segment or too many combining characters: exit normalization\n\treturn i.buf[:i.rb.flushCopy(i.buf[:])]\n}\n\nfunc nextCGJDecompose(i *Iter) []byte {\n\ti.rb.ss = 0\n\ti.rb.insertCGJ()\n\ti.next = nextDecomposed\n\ti.rb.ss.first(i.info)\n\tbuf := doNormDecomposed(i)\n\treturn buf\n}\n\n// nextComposed is the implementation of Next for forms NFC and NFKC.\nfunc nextComposed(i *Iter) []byte {\n\toutp, startp := 0, i.p\n\tvar prevCC uint8\n\tfor {\n\t\tif !i.info.isYesC() {\n\t\t\tgoto doNorm\n\t\t}\n\t\tprevCC = i.info.tccc\n\t\tsz := int(i.info.size)\n\t\tif sz == 0 {\n\t\t\tsz = 1 // illegal rune: copy byte-by-byte\n\t\t}\n\t\tp := outp + sz\n\t\tif p > len(i.buf) {\n\t\t\tbreak\n\t\t}\n\t\toutp = p\n\t\ti.p += sz\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\ti.rb.ss = 0\n\t\t\ti.next = i.asciiF\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\treturn i.returnSlice(startp, i.p)\ndoNorm:\n\t// reset to start position\n\ti.p = startp\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\tif i.info.multiSegment() {\n\t\td := i.info.Decomposition()\n\t\tinfo := i.rb.f.info(input{bytes: d}, 0)\n\t\ti.rb.insertUnsafe(input{bytes: d}, 0, info)\n\t\ti.multiSeg = d[int(info.size):]\n\t\ti.next = nextMultiNorm\n\t\treturn nextMultiNorm(i)\n\t}\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n\nfunc doNormComposed(i *Iter) []byte {\n\t// First rune should already be inserted.\n\tfor {\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif s := i.rb.ss.next(i.info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t}\n\ti.rb.compose()\n\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\treturn seg\n}\n\nfunc nextCGJCompose(i *Iter) []byte {\n\ti.rb.ss = 0 // instead of first\n\ti.rb.insertCGJ()\n\ti.next = nextComposed\n\t// Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter,\n\t// even if they are not. This is particularly dubious for U+FF9E and UFF9A.\n\t// If we ever change that, insert a check here.\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/normalize.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Note: the file data_test.go that is generated should not be checked in.\n//go:generate go run maketables.go triegen.go\n//go:generate go test -tags test\n\n// Package norm contains types and functions for normalizing Unicode strings.\npackage norm // import \"golang.org/x/text/unicode/norm\"\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// A Form denotes a canonical representation of Unicode code points.\n// The Unicode-defined normalization and equivalence forms are:\n//\n//\tNFC   Unicode Normalization Form C\n//\tNFD   Unicode Normalization Form D\n//\tNFKC  Unicode Normalization Form KC\n//\tNFKD  Unicode Normalization Form KD\n//\n// For a Form f, this documentation uses the notation f(x) to mean\n// the bytes or string x converted to the given form.\n// A position n in x is called a boundary if conversion to the form can\n// proceed independently on both sides:\n//\n//\tf(x) == append(f(x[0:n]), f(x[n:])...)\n//\n// References: https://unicode.org/reports/tr15/ and\n// https://unicode.org/notes/tn5/.\ntype Form int\n\nconst (\n\tNFC Form = iota\n\tNFD\n\tNFKC\n\tNFKD\n)\n\n// Bytes returns f(b). May return b if f(b) = b.\nfunc (f Form) Bytes(b []byte) []byte {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn b\n\t}\n\tout := make([]byte, n, len(b))\n\tcopy(out, b[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush}\n\treturn doAppendInner(&rb, n)\n}\n\n// String returns f(s).\nfunc (f Form) String(s string) string {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn s\n\t}\n\tout := make([]byte, n, len(s))\n\tcopy(out, s[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush}\n\treturn string(doAppendInner(&rb, n))\n}\n\n// IsNormal returns true if b == f(b).\nfunc (f Form) IsNormal(b []byte) bool {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b)}\n\trb.setFlusher(nil, cmpNormalBytes)\n\tfor bp < len(b) {\n\t\trb.out = b[bp:]\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(b), true)\n\t}\n\treturn true\n}\n\nfunc cmpNormalBytes(rb *reorderBuffer) bool {\n\tb := rb.out\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tinfo := rb.rune[i]\n\t\tif int(info.size) > len(b) {\n\t\t\treturn false\n\t\t}\n\t\tp := info.pos\n\t\tpe := p + info.size\n\t\tfor ; p < pe; p++ {\n\t\t\tif b[0] != rb.byte[p] {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tb = b[1:]\n\t\t}\n\t}\n\treturn true\n}\n\n// IsNormalString returns true if s == f(s).\nfunc (f Form) IsNormalString(s string) bool {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s)}\n\trb.setFlusher(nil, func(rb *reorderBuffer) bool {\n\t\tfor i := 0; i < rb.nrune; i++ {\n\t\t\tinfo := rb.rune[i]\n\t\t\tif bp+int(info.size) > len(s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tp := info.pos\n\t\t\tpe := p + info.size\n\t\t\tfor ; p < pe; p++ {\n\t\t\t\tif s[bp] != rb.byte[p] {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tbp++\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\tfor bp < len(s) {\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(s), true)\n\t}\n\treturn true\n}\n\n// patchTail fixes a case where a rune may be incorrectly normalized\n// if it is followed by illegal continuation bytes. It returns the\n// patched buffer and whether the decomposition is still in progress.\nfunc patchTail(rb *reorderBuffer) bool {\n\tinfo, p := lastRuneStart(&rb.f, rb.out)\n\tif p == -1 || info.size == 0 {\n\t\treturn true\n\t}\n\tend := p + int(info.size)\n\textra := len(rb.out) - end\n\tif extra > 0 {\n\t\t// Potentially allocating memory. However, this only\n\t\t// happens with ill-formed UTF-8.\n\t\tx := make([]byte, 0)\n\t\tx = append(x, rb.out[len(rb.out)-extra:]...)\n\t\trb.out = rb.out[:end]\n\t\tdecomposeToLastBoundary(rb)\n\t\trb.doFlush()\n\t\trb.out = append(rb.out, x...)\n\t\treturn false\n\t}\n\tbuf := rb.out[p:]\n\trb.out = rb.out[:p]\n\tdecomposeToLastBoundary(rb)\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\trb.doFlush()\n\t\trb.ss.first(info)\n\t} else if s == ssOverflow {\n\t\trb.doFlush()\n\t\trb.insertCGJ()\n\t\trb.ss = 0\n\t}\n\trb.insertUnsafe(inputBytes(buf), 0, info)\n\treturn true\n}\n\nfunc appendQuick(rb *reorderBuffer, i int) int {\n\tif rb.nsrc == i {\n\t\treturn i\n\t}\n\tend, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true)\n\trb.out = rb.src.appendSlice(rb.out, i, end)\n\treturn end\n}\n\n// Append returns f(append(out, b...)).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) Append(out []byte, src ...byte) []byte {\n\treturn f.doAppend(out, inputBytes(src), len(src))\n}\n\nfunc (f Form) doAppend(out []byte, src input, n int) []byte {\n\tif n == 0 {\n\t\treturn out\n\t}\n\tft := formTable[f]\n\t// Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer.\n\tif len(out) == 0 {\n\t\tp, _ := ft.quickSpan(src, 0, n, true)\n\t\tout = src.appendSlice(out, 0, p)\n\t\tif p == n {\n\t\t\treturn out\n\t\t}\n\t\trb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush}\n\t\treturn doAppendInner(&rb, p)\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: n}\n\treturn doAppend(&rb, out, 0)\n}\n\nfunc doAppend(rb *reorderBuffer, out []byte, p int) []byte {\n\trb.setFlusher(out, appendFlush)\n\tsrc, n := rb.src, rb.nsrc\n\tdoMerge := len(out) > 0\n\tif q := src.skipContinuationBytes(p); q > p {\n\t\t// Move leading non-starters to destination.\n\t\trb.out = src.appendSlice(rb.out, p, q)\n\t\tp = q\n\t\tdoMerge = patchTail(rb)\n\t}\n\tfd := &rb.f\n\tif doMerge {\n\t\tvar info Properties\n\t\tif p < n {\n\t\t\tinfo = fd.info(src, p)\n\t\t\tif !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 {\n\t\t\t\tif p == 0 {\n\t\t\t\t\tdecomposeToLastBoundary(rb)\n\t\t\t\t}\n\t\t\t\tp = decomposeSegment(rb, p, true)\n\t\t\t}\n\t\t}\n\t\tif info.size == 0 {\n\t\t\trb.doFlush()\n\t\t\t// Append incomplete UTF-8 encoding.\n\t\t\treturn src.appendSlice(rb.out, p, n)\n\t\t}\n\t\tif rb.nrune > 0 {\n\t\t\treturn doAppendInner(rb, p)\n\t\t}\n\t}\n\tp = appendQuick(rb, p)\n\treturn doAppendInner(rb, p)\n}\n\nfunc doAppendInner(rb *reorderBuffer, p int) []byte {\n\tfor n := rb.nsrc; p < n; {\n\t\tp = decomposeSegment(rb, p, true)\n\t\tp = appendQuick(rb, p)\n\t}\n\treturn rb.out\n}\n\n// AppendString returns f(append(out, []byte(s))).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) AppendString(out []byte, src string) []byte {\n\treturn f.doAppend(out, inputString(src), len(src))\n}\n\n// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpan(b []byte) int {\n\tn, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true)\n\treturn n\n}\n\n// Span implements transform.SpanningTransformer. It returns a boundary n such\n// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n.\nfunc (f Form) Span(b []byte, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF)\n\tif n < len(b) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// SpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) SpanString(s string, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF)\n\tif n < len(s) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and\n// whether any non-normalized parts were found. If atEOF is false, n will\n// not point past the last segment if this segment might be become\n// non-normalized by appending other runes.\nfunc (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) {\n\tvar lastCC uint8\n\tss := streamSafe(0)\n\tlastSegStart := i\n\tfor n = end; i < n; {\n\t\tif j := src.skipASCII(i, n); i != j {\n\t\t\ti = j\n\t\t\tlastSegStart = i - 1\n\t\t\tlastCC = 0\n\t\t\tss = 0\n\t\t\tcontinue\n\t\t}\n\t\tinfo := f.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\t// include incomplete runes\n\t\t\t\treturn n, true\n\t\t\t}\n\t\t\treturn lastSegStart, true\n\t\t}\n\t\t// This block needs to be before the next, because it is possible to\n\t\t// have an overflow for runes that are starters (e.g. with U+FF9E).\n\t\tswitch ss.next(info) {\n\t\tcase ssStarter:\n\t\t\tlastSegStart = i\n\t\tcase ssOverflow:\n\t\t\treturn lastSegStart, false\n\t\tcase ssSuccess:\n\t\t\tif lastCC > info.ccc {\n\t\t\t\treturn lastSegStart, false\n\t\t\t}\n\t\t}\n\t\tif f.composing {\n\t\t\tif !info.isYesC() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif !info.isYesD() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tlastCC = info.ccc\n\t\ti += int(info.size)\n\t}\n\tif i == n {\n\t\tif !atEOF {\n\t\t\tn = lastSegStart\n\t\t}\n\t\treturn n, true\n\t}\n\treturn lastSegStart, false\n}\n\n// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpanString(s string) int {\n\tn, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true)\n\treturn n\n}\n\n// FirstBoundary returns the position i of the first boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) FirstBoundary(b []byte) int {\n\treturn f.firstBoundary(inputBytes(b), len(b))\n}\n\nfunc (f Form) firstBoundary(src input, nsrc int) int {\n\ti := src.skipContinuationBytes(0)\n\tif i >= nsrc {\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tss := streamSafe(0)\n\t// We should call ss.first here, but we can't as the first rune is\n\t// skipped already. This means FirstBoundary can't really determine\n\t// CGJ insertion points correctly. Luckily it doesn't have to.\n\tfor {\n\t\tinfo := fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\treturn -1\n\t\t}\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t\ti += int(info.size)\n\t\tif i >= nsrc {\n\t\t\tif !info.BoundaryAfter() && !ss.isMax() {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn nsrc\n\t\t}\n\t}\n}\n\n// FirstBoundaryInString returns the position i of the first boundary in s\n// or -1 if s contains no boundary.\nfunc (f Form) FirstBoundaryInString(s string) int {\n\treturn f.firstBoundary(inputString(s), len(s))\n}\n\n// NextBoundary reports the index of the boundary between the first and next\n// segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundary(b []byte, atEOF bool) int {\n\treturn f.nextBoundary(inputBytes(b), len(b), atEOF)\n}\n\n// NextBoundaryInString reports the index of the boundary between the first and\n// next segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundaryInString(s string, atEOF bool) int {\n\treturn f.nextBoundary(inputString(s), len(s), atEOF)\n}\n\nfunc (f Form) nextBoundary(src input, nsrc int, atEOF bool) int {\n\tif nsrc == 0 {\n\t\tif atEOF {\n\t\t\treturn 0\n\t\t}\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tinfo := fd.info(src, 0)\n\tif info.size == 0 {\n\t\tif atEOF {\n\t\t\treturn 1\n\t\t}\n\t\treturn -1\n\t}\n\tss := streamSafe(0)\n\tss.first(info)\n\n\tfor i := int(info.size); i < nsrc; i += int(info.size) {\n\t\tinfo = fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t\t// TODO: Using streamSafe to determine the boundary isn't the same as\n\t\t// using BoundaryBefore. Determine which should be used.\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t}\n\tif !atEOF && !info.BoundaryAfter() && !ss.isMax() {\n\t\treturn -1\n\t}\n\treturn nsrc\n}\n\n// LastBoundary returns the position i of the last boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) LastBoundary(b []byte) int {\n\treturn lastBoundary(formTable[f], b)\n}\n\nfunc lastBoundary(fd *formInfo, b []byte) int {\n\ti := len(b)\n\tinfo, p := lastRuneStart(fd, b)\n\tif p == -1 {\n\t\treturn -1\n\t}\n\tif info.size == 0 { // ends with incomplete rune\n\t\tif p == 0 { // starts with incomplete rune\n\t\t\treturn -1\n\t\t}\n\t\ti = p\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter\n\t\t\treturn i\n\t\t}\n\t}\n\tif p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8\n\t\treturn i\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn i\n\t}\n\tss := streamSafe(0)\n\tv := ss.backwards(info)\n\tfor i = p; i >= 0 && v != ssStarter; i = p {\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif v = ss.backwards(info); v == ssOverflow {\n\t\t\tbreak\n\t\t}\n\t\tif p+int(info.size) != i {\n\t\t\tif p == -1 { // no boundary found\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn i // boundary after an illegal UTF-8 encoding\n\t\t}\n\t}\n\treturn i\n}\n\n// decomposeSegment scans the first segment in src into rb. It inserts 0x034f\n// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters\n// and returns the number of bytes consumed from src or iShortDst or iShortSrc.\nfunc decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int {\n\t// Force one character to be consumed.\n\tinfo := rb.f.info(rb.src, sp)\n\tif info.size == 0 {\n\t\treturn 0\n\t}\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\t// TODO: this could be removed if we don't support merging.\n\t\tif rb.nrune > 0 {\n\t\t\tgoto end\n\t\t}\n\t} else if s == ssOverflow {\n\t\trb.insertCGJ()\n\t\tgoto end\n\t}\n\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\treturn int(err)\n\t}\n\tfor {\n\t\tsp += int(info.size)\n\t\tif sp >= rb.nsrc {\n\t\t\tif !atEOF && !info.BoundaryAfter() {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tinfo = rb.f.info(rb.src, sp)\n\t\tif info.size == 0 {\n\t\t\tif !atEOF {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif s := rb.ss.next(info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\trb.insertCGJ()\n\t\t\tbreak\n\t\t}\n\t\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\t\treturn int(err)\n\t\t}\n\t}\nend:\n\tif !rb.doFlush() {\n\t\treturn int(iShortDst)\n\t}\n\treturn sp\n}\n\n// lastRuneStart returns the runeInfo and position of the last\n// rune in buf or the zero runeInfo and -1 if no rune was found.\nfunc lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {\n\tp := len(buf) - 1\n\tfor ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {\n\t}\n\tif p < 0 {\n\t\treturn Properties{}, -1\n\t}\n\treturn fd.info(inputBytes(buf), p), p\n}\n\n// decomposeToLastBoundary finds an open segment at the end of the buffer\n// and scans it into rb. Returns the buffer minus the last segment.\nfunc decomposeToLastBoundary(rb *reorderBuffer) {\n\tfd := &rb.f\n\tinfo, i := lastRuneStart(fd, rb.out)\n\tif int(info.size) != len(rb.out)-i {\n\t\t// illegal trailing continuation bytes\n\t\treturn\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn\n\t}\n\tvar add [maxNonStarters + 1]Properties // stores runeInfo in reverse order\n\tpadd := 0\n\tss := streamSafe(0)\n\tp := len(rb.out)\n\tfor {\n\t\tadd[padd] = info\n\t\tv := ss.backwards(info)\n\t\tif v == ssOverflow {\n\t\t\t// Note that if we have an overflow, it the string we are appending to\n\t\t\t// is not correctly normalized. In this case the behavior is undefined.\n\t\t\tbreak\n\t\t}\n\t\tpadd++\n\t\tp -= int(info.size)\n\t\tif v == ssStarter || p < 0 {\n\t\t\tbreak\n\t\t}\n\t\tinfo, i = lastRuneStart(fd, rb.out[:p])\n\t\tif int(info.size) != p-i {\n\t\t\tbreak\n\t\t}\n\t}\n\trb.ss = ss\n\t// Copy bytes for insertion as we may need to overwrite rb.out.\n\tvar buf [maxBufferSize * utf8.UTFMax]byte\n\tcp := buf[:copy(buf[:], rb.out[p:])]\n\trb.out = rb.out[:p]\n\tfor padd--; padd >= 0; padd-- {\n\t\tinfo = add[padd]\n\t\trb.insertUnsafe(inputBytes(cp), 0, info)\n\t\tcp = cp[info.size:]\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/readwriter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"io\"\n\ntype normWriter struct {\n\trb  reorderBuffer\n\tw   io.Writer\n\tbuf []byte\n}\n\n// Write implements the standard write interface.  If the last characters are\n// not at a normalization boundary, the bytes will be buffered for the next\n// write. The remaining bytes will be written on close.\nfunc (w *normWriter) Write(data []byte) (n int, err error) {\n\t// Process data in pieces to keep w.buf size bounded.\n\tconst chunk = 4000\n\n\tfor len(data) > 0 {\n\t\t// Normalize into w.buf.\n\t\tm := len(data)\n\t\tif m > chunk {\n\t\t\tm = chunk\n\t\t}\n\t\tw.rb.src = inputBytes(data[:m])\n\t\tw.rb.nsrc = m\n\t\tw.buf = doAppend(&w.rb, w.buf, 0)\n\t\tdata = data[m:]\n\t\tn += m\n\n\t\t// Write out complete prefix, save remainder.\n\t\t// Note that lastBoundary looks back at most 31 runes.\n\t\ti := lastBoundary(&w.rb.f, w.buf)\n\t\tif i == -1 {\n\t\t\ti = 0\n\t\t}\n\t\tif i > 0 {\n\t\t\tif _, err = w.w.Write(w.buf[:i]); err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbn := copy(w.buf, w.buf[i:])\n\t\t\tw.buf = w.buf[:bn]\n\t\t}\n\t}\n\treturn n, err\n}\n\n// Close forces data that remains in the buffer to be written.\nfunc (w *normWriter) Close() error {\n\tif len(w.buf) > 0 {\n\t\t_, err := w.w.Write(w.buf)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Writer returns a new writer that implements Write(b)\n// by writing f(b) to w. The returned writer may use an\n// internal buffer to maintain state across Write calls.\n// Calling its Close method writes any buffered data to w.\nfunc (f Form) Writer(w io.Writer) io.WriteCloser {\n\twr := &normWriter{rb: reorderBuffer{}, w: w}\n\twr.rb.init(f, nil)\n\treturn wr\n}\n\ntype normReader struct {\n\trb           reorderBuffer\n\tr            io.Reader\n\tinbuf        []byte\n\toutbuf       []byte\n\tbufStart     int\n\tlastBoundary int\n\terr          error\n}\n\n// Read implements the standard read interface.\nfunc (r *normReader) Read(p []byte) (int, error) {\n\tfor {\n\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\tn := copy(p, r.outbuf[r.bufStart:r.lastBoundary])\n\t\t\tr.bufStart += n\n\t\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\t\treturn n, nil\n\t\t\t}\n\t\t\treturn n, r.err\n\t\t}\n\t\tif r.err != nil {\n\t\t\treturn 0, r.err\n\t\t}\n\t\toutn := copy(r.outbuf, r.outbuf[r.lastBoundary:])\n\t\tr.outbuf = r.outbuf[0:outn]\n\t\tr.bufStart = 0\n\n\t\tn, err := r.r.Read(r.inbuf)\n\t\tr.rb.src = inputBytes(r.inbuf[0:n])\n\t\tr.rb.nsrc, r.err = n, err\n\t\tif n > 0 {\n\t\t\tr.outbuf = doAppend(&r.rb, r.outbuf, 0)\n\t\t}\n\t\tif err == io.EOF {\n\t\t\tr.lastBoundary = len(r.outbuf)\n\t\t} else {\n\t\t\tr.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)\n\t\t\tif r.lastBoundary == -1 {\n\t\t\t\tr.lastBoundary = 0\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Reader returns a new reader that implements Read\n// by reading data from r and returning f(data).\nfunc (f Form) Reader(r io.Reader) io.Reader {\n\tconst chunk = 4000\n\tbuf := make([]byte, chunk)\n\trr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}\n\trr.rb.init(f, buf)\n\treturn rr\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"10.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 45:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 45\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 47 blocks, 3008 entries, 6016 bytes\n// The third block is the zero block.\nvar nfcValues = [3008]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132,\n\t0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132,\n\t0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132,\n\t0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132,\n\t0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2,\n\t0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0,\n\t0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df,\n\t0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85,\n\t0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93,\n\t0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c,\n\t0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370,\n\t0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a,\n\t0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de,\n\t0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7,\n\t0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a,\n\t0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e,\n\t0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9,\n\t0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465,\n\t0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26,\n\t0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791,\n\t0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b,\n\t0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4,\n\t0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f,\n\t0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49,\n\t0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532,\n\t0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541,\n\t0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582,\n\t0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6,\n\t0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1,\n\t0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f,\n\t0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15,\n\t0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23,\n\t0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a,\n\t0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c,\n\t0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70,\n\t0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1,\n\t0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf,\n\t0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6,\n\t0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5,\n\t0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11,\n\t0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73,\n\t0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a,\n\t0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578,\n\t0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e,\n\t0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6,\n\t0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c,\n\t0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0,\n\t0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00,\n\t0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966,\n\t0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8,\n\t0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6,\n\t0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38,\n\t0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30,\n\t0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60,\n\t0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58,\n\t0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a,\n\t0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8,\n\t0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70,\n\t0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996,\n\t0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2,\n\t0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916,\n\t0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a,\n\t0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c,\n\t0x5bc: 0x4870, 0x5bd: 0x4342,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac,\n\t0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee,\n\t0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0,\n\t0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2,\n\t0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134,\n\t0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a,\n\t0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88,\n\t0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a,\n\t0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98,\n\t0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee,\n\t0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0,\n\t0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa,\n\t0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af,\n\t0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10,\n\t0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4,\n\t0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec,\n\t0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b,\n\t0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081,\n\t0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8,\n\t0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318,\n\t0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000,\n\t0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b,\n\t0x64d: 0xa000,\n\t0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29,\n\t0x664: 0xa000, 0x665: 0xa000,\n\t0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a,\n\t0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45,\n\t0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000,\n\t0x67c: 0xa000, 0x67d: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d,\n\t0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b,\n\t0x691: 0xa000,\n\t0x692: 0xa000,\n\t0x6a2: 0xa000,\n\t0x6a8: 0xa000, 0x6a9: 0xa000,\n\t0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5,\n\t0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c6: 0xa000, 0x6cb: 0xa000,\n\t0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000,\n\t0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000,\n\t0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000,\n\t0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60,\n\t0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78,\n\t0x6ef: 0xa000,\n\t0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000,\n\t0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000,\n\t0x6fc: 0x3fc0, 0x6fd: 0x3fc8,\n\t// Block 0x1c, offset 0x700\n\t0x714: 0x3f00,\n\t0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000,\n\t0x71e: 0x3fd0,\n\t0x726: 0xa000,\n\t0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000,\n\t0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000,\n\t0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000,\n\t0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040,\n\t0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050,\n\t0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060,\n\t0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080,\n\t0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0,\n\t0x76f: 0xa000,\n\t0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8,\n\t0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0,\n\t0x77d: 0xa000, 0x77e: 0x40c8,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb,\n\t0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943,\n\t0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3,\n\t0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43,\n\t0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87,\n\t0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283,\n\t0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f,\n\t0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853,\n\t0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b,\n\t0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b,\n\t0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b,\n\t0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f,\n\t0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7,\n\t0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127,\n\t0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357,\n\t0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873,\n\t0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3,\n\t0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b,\n\t0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57,\n\t0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb,\n\t0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f,\n\t0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3,\n\t0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83,\n\t0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193,\n\t0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b,\n\t0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b,\n\t0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f,\n\t0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b,\n\t0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753,\n\t0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777,\n\t0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3,\n\t0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47,\n\t0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af,\n\t0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df,\n\t0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817,\n\t0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3,\n\t0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457,\n\t0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b,\n\t0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27,\n\t0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f,\n\t0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03,\n\t0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27,\n\t0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af,\n\t0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3,\n\t0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb,\n\t0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353,\n\t0x8a5: 0x1407, 0x8a6: 0x1433,\n\t0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7,\n\t0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897,\n\t0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93,\n\t0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b,\n\t0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f,\n\t0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f,\n\t0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f,\n\t0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff,\n\t0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f,\n\t0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f,\n\t0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3,\n\t0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7,\n\t0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963,\n\t0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b,\n\t0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb,\n\t0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf,\n\t0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f,\n\t0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013,\n\t0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f,\n\t0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b,\n\t0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b,\n\t0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb,\n\t0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343,\n\t0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b,\n\t0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b,\n\t0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2,\n\t0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809,\n\t0x958: 0x1617, 0x959: 0x1627,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757,\n\t0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773,\n\t0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3,\n\t0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf,\n\t0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff,\n\t0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f,\n\t0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867,\n\t0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af,\n\t0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93,\n\t0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3,\n\t0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f,\n\t0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983,\n\t0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf,\n\t0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3,\n\t0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef,\n\t0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23,\n\t0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37,\n\t0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63,\n\t0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f,\n\t0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692,\n\t0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb,\n\t0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f,\n\t0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6,\n\t0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9,\n\t0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83,\n\t0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3,\n\t0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf,\n\t0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7,\n\t0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f,\n\t0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b,\n\t0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87,\n\t0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb,\n\t0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7,\n\t0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663,\n\t0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd,\n\t0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7,\n\t0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b,\n\t0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f,\n\t0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7,\n\t0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700,\n\t0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23,\n\t0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53,\n\t0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714,\n\t0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b,\n\t0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719,\n\t0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728,\n\t0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37,\n\t0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57,\n\t0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737,\n\t0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741,\n\t0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff,\n\t0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637,\n\t0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f,\n\t0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093,\n\t0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782,\n\t0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3,\n\t0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7,\n\t0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133,\n\t0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa,\n\t0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4,\n\t0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7,\n\t0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7,\n\t0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b,\n\t0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd,\n\t0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f,\n\t0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f,\n\t0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273,\n\t0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677,\n\t0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7,\n\t0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb,\n\t0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5,\n\t0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa,\n\t0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b,\n\t0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7,\n\t0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665,\n\t0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f,\n\t0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477,\n\t0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693,\n\t0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb,\n\t0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b,\n\t0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567,\n\t0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7,\n\t0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7,\n\t0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef,\n\t0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31,\n\t0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34,\n\t0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0e,\n\t0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f,\n\t0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1,\n\t0x3b0: 0x73, 0x3b5: 0xb2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb3, 0x3ec: 0xb4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8,\n\t0x449: 0xb9,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xba,\n\t0x4a3: 0xbb, 0x4a5: 0xbc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xbd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b,\n\t0x528: 0x2c,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 145 entries, 290 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8}\n\n// nfcSparseValues: 682 entries, 2728 bytes\nvar nfcSparseValues = [682]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xcf\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xda\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xde\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xe0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x104\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x10a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x116\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x119\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11e\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x121\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x124\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x128\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x136\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x138\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x148\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x14c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3e, offset 0x15a\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3f, offset 0x15d\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x40, offset 0x163\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x41, offset 0x169\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x42, offset 0x174\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x43, offset 0x178\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x44, offset 0x17a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x45, offset 0x17c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x46, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x47, offset 0x180\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x48, offset 0x182\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x49, offset 0x188\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4a, offset 0x18c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4b, offset 0x18e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4c, offset 0x190\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4d, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4e, offset 0x19c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4f, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x50, offset 0x1a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x51, offset 0x1a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x52, offset 0x1a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x53, offset 0x1a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x54, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x55, offset 0x1ac\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x56, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x57, offset 0x1b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x58, offset 0x1b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x59, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5a, offset 0x1bb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5b, offset 0x1c2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5d, offset 0x1ce\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5e, offset 0x1d6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5f, offset 0x1dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x60, offset 0x1e2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x61, offset 0x1e8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x62, offset 0x1ec\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x63, offset 0x1fa\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x64, offset 0x203\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x65, offset 0x206\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x66, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x67, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x68, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x69, offset 0x210\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6a, offset 0x214\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6b, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6c, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6d, offset 0x21d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6e, offset 0x222\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6f, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x70, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x71, offset 0x22c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x72, offset 0x22e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x234\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x74, offset 0x237\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x75, offset 0x23a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x76, offset 0x242\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x77, offset 0x249\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x78, offset 0x24c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x79, offset 0x24f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7a, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7b, offset 0x259\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7c, offset 0x25c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x263\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7e, offset 0x266\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x26c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x80, offset 0x26e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x81, offset 0x271\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x82, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x87, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x88, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x89, offset 0x282\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8a, offset 0x28f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8b, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8c, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8d, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8f, offset 0x2a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x90, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 91:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 91\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 93 blocks, 5952 entries, 11904 bytes\n// The third block is the zero block.\nvar nfkcValues = [5952]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132,\n\t0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132,\n\t0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132,\n\t0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132,\n\t0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132,\n\t0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132,\n\t0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132,\n\t0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132,\n\t0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132,\n\t0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132,\n\t0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2,\n\t0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0,\n\t0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df,\n\t0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85,\n\t0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93,\n\t0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c,\n\t0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370,\n\t0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a,\n\t0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de,\n\t0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7,\n\t0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a,\n\t0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e,\n\t0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9,\n\t0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465,\n\t0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26,\n\t0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791,\n\t0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b,\n\t0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4,\n\t0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f,\n\t0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49,\n\t0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532,\n\t0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541,\n\t0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582,\n\t0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6,\n\t0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7,\n\t0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f,\n\t0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15,\n\t0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23,\n\t0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a,\n\t0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c,\n\t0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70,\n\t0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1,\n\t0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf,\n\t0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6,\n\t0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5,\n\t0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11,\n\t0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73,\n\t0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a,\n\t0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578,\n\t0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e,\n\t0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6,\n\t0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c,\n\t0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0,\n\t0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00,\n\t0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966,\n\t0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8,\n\t0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6,\n\t0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38,\n\t0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30,\n\t0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60,\n\t0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58,\n\t0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a,\n\t0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8,\n\t0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70,\n\t0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996,\n\t0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2,\n\t0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916,\n\t0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a,\n\t0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c,\n\t0x67c: 0x4870, 0x67d: 0x4342,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac,\n\t0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee,\n\t0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0,\n\t0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2,\n\t0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134,\n\t0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a,\n\t0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88,\n\t0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a,\n\t0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98,\n\t0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee,\n\t0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0,\n\t0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa,\n\t0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af,\n\t0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10,\n\t0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e,\n\t0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec,\n\t0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b,\n\t0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081,\n\t0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8,\n\t0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318,\n\t0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8,\n\t0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051,\n\t0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053,\n\t0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d,\n\t0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065,\n\t0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8,\n\t0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075,\n\t0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b,\n\t0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215,\n\t0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98,\n\t0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0463, 0x745: 0x0049,\n\t0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095,\n\t0x750: 0x222e, 0x751: 0x223a,\n\t0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8,\n\t0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0,\n\t0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963,\n\t0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071,\n\t0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b,\n\t0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62,\n\t0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50,\n\t0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000,\n\t0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b,\n\t0x78d: 0xa000,\n\t0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29,\n\t0x7a4: 0xa000, 0x7a5: 0xa000,\n\t0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a,\n\t0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45,\n\t0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000,\n\t0x7bc: 0xa000, 0x7bd: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d,\n\t0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b,\n\t0x7d1: 0xa000,\n\t0x7d2: 0xa000,\n\t0x7e2: 0xa000,\n\t0x7e8: 0xa000, 0x7e9: 0xa000,\n\t0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5,\n\t0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029,\n\t0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882,\n\t0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894,\n\t0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c,\n\t0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84,\n\t0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8,\n\t0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb,\n\t0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60,\n\t0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78,\n\t0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8,\n\t0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10,\n\t0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28,\n\t0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40,\n\t0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58,\n\t0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d,\n\t0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713,\n\t0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab,\n\t0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803,\n\t0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887,\n\t0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db,\n\t0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb,\n\t0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b,\n\t0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7,\n\t0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33,\n\t0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63,\n\t0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb,\n\t0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b,\n\t0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb,\n\t0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3,\n\t0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f,\n\t0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83,\n\t0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7,\n\t0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f,\n\t0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf,\n\t0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f,\n\t0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3,\n\t0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb,\n\t0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b,\n\t0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b,\n\t0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf,\n\t0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f,\n\t0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f,\n\t0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503,\n\t0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f,\n\t0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f,\n\t0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593,\n\t// Block 0x25, offset 0x940\n\t0x946: 0xa000, 0x94b: 0xa000,\n\t0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000,\n\t0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000,\n\t0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000,\n\t0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60,\n\t0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78,\n\t0x96f: 0xa000,\n\t0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000,\n\t0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000,\n\t0x97c: 0x3fc0, 0x97d: 0x3fc8,\n\t// Block 0x26, offset 0x980\n\t0x994: 0x3f00,\n\t0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000,\n\t0x99e: 0x3fd0, 0x99f: 0x26b4,\n\t0x9a6: 0xa000,\n\t0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000,\n\t0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000,\n\t0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000,\n\t0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040,\n\t0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050,\n\t0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060,\n\t0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080,\n\t0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0,\n\t0x9ef: 0xa000,\n\t0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8,\n\t0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0,\n\t0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337,\n\t0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f,\n\t0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9,\n\t0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed,\n\t0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11,\n\t0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35,\n\t0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef,\n\t0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403,\n\t0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383,\n\t0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b,\n\t0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb,\n\t0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7,\n\t0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3,\n\t0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7,\n\t0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff,\n\t0xa5e: 0x098f, 0xa5f: 0x072f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072,\n\t0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096,\n\t0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741,\n\t0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780,\n\t0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac,\n\t0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108,\n\t0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0,\n\t0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e,\n\t0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144,\n\t0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114,\n\t0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03,\n\t0xac6: 0x0ca7, 0xac7: 0x10c7,\n\t0xad0: 0x1bc4, 0xad1: 0x18a9,\n\t0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb,\n\t0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3,\n\t0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327,\n\t0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b,\n\t0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20,\n\t0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50,\n\t0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88,\n\t0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af,\n\t0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f,\n\t0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b,\n\t0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f,\n\t0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f,\n\t0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b,\n\t0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f,\n\t0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b,\n\t0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee,\n\t0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900,\n\t0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11,\n\t0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0,\n\t0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3,\n\t0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7,\n\t0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f,\n\t0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b,\n\t0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543,\n\t0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b,\n\t0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f,\n\t0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597,\n\t0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a,\n\t0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2,\n\t0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6,\n\t0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c,\n\t0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6,\n\t0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da,\n\t0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8,\n\t0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51,\n\t0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920,\n\t0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06,\n\t0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c,\n\t0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90,\n\t0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6,\n\t0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984,\n\t0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07,\n\t0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4,\n\t0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2,\n\t0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a,\n\t0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47,\n\t0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701,\n\t0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969,\n\t0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35,\n\t0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c,\n\t0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9,\n\t0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0,\n\t0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40,\n\t0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996,\n\t0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad,\n\t0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38,\n\t0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b,\n\t0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd,\n\t0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e,\n\t0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e,\n\t0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990,\n\t0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4,\n\t0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee,\n\t0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186,\n\t0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0,\n\t0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258,\n\t0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e,\n\t0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb,\n\t0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943,\n\t0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3,\n\t0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43,\n\t0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87,\n\t0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283,\n\t0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f,\n\t0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853,\n\t0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b,\n\t0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b,\n\t0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b,\n\t0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f,\n\t0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7,\n\t0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127,\n\t0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357,\n\t0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873,\n\t0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3,\n\t0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b,\n\t0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57,\n\t0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb,\n\t0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f,\n\t0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3,\n\t0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83,\n\t0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193,\n\t0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b,\n\t0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b,\n\t0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f,\n\t0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b,\n\t0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753,\n\t0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777,\n\t0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3,\n\t0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47,\n\t0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af,\n\t0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df,\n\t0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817,\n\t0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3,\n\t0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457,\n\t0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b,\n\t0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27,\n\t0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f,\n\t0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03,\n\t0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27,\n\t0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af,\n\t0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3,\n\t0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb,\n\t0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353,\n\t0xda5: 0x1407, 0xda6: 0x1433,\n\t0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7,\n\t0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897,\n\t0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93,\n\t0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b,\n\t0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f,\n\t0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f,\n\t0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f,\n\t0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff,\n\t0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f,\n\t0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f,\n\t0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3,\n\t0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7,\n\t0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963,\n\t0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b,\n\t0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb,\n\t0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf,\n\t0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f,\n\t0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013,\n\t0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f,\n\t0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b,\n\t0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b,\n\t0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb,\n\t0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343,\n\t0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b,\n\t0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b,\n\t0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2,\n\t0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809,\n\t0xe58: 0x1617, 0xe59: 0x1627,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f,\n\t0xe86: 0x1a5f,\n\t0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70,\n\t0xe9d: 0x4390,\n\t0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221,\n\t0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017,\n\t0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e,\n\t0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e,\n\t0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2,\n\t0xebc: 0x43ae, 0xebe: 0x43b4,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc,\n\t0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378,\n\t0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299,\n\t0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5,\n\t0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab,\n\t0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8,\n\t0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c,\n\t0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2,\n\t0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1,\n\t0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4,\n\t0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd,\n\t0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9,\n\t0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5,\n\t0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1,\n\t0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de,\n\t0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7,\n\t0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed,\n\t0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308,\n\t0xf30: 0x4468, 0xf31: 0x4468,\n\t// Block 0x3d, offset 0xf40\n\t0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6,\n\t0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f,\n\t0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc,\n\t0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d,\n\t0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9,\n\t0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c,\n\t0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0,\n\t0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89,\n\t0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb,\n\t0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded,\n\t0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29,\n\t0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b,\n\t0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9,\n\t0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00,\n\t0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32,\n\t0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50,\n\t0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e,\n\t0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf,\n\t0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd,\n\t0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff,\n\t0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022,\n\t0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c,\n\t0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6,\n\t0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7,\n\t0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6,\n\t0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8,\n\t0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10,\n\t0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96,\n\t0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1,\n\t0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027,\n\t0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1,\n\t0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e,\n\t0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5,\n\t0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29,\n\t0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60,\n\t0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9,\n\t0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05,\n\t0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64,\n\t0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91,\n\t0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe,\n\t0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff,\n\t0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031,\n\t0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4,\n\t0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92,\n\t0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0,\n\t0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1,\n\t0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74,\n\t0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba,\n\t0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88,\n\t0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1,\n\t0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74,\n\t0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f,\n\t0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd,\n\t0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d,\n\t0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88,\n\t0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b,\n\t0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb,\n\t0x10bc: 0x4408, 0x10bd: 0x4408,\n\t// Block 0x43, offset 0x10c0\n\t0x10d0: 0x2311, 0x10d1: 0x2326,\n\t0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357,\n\t0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4,\n\t0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5,\n\t0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc,\n\t0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430,\n\t0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c,\n\t0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f,\n\t0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df,\n\t0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e,\n\t0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c,\n\t0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548,\n\t0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c,\n\t0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365,\n\t0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406,\n\t0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e,\n\t0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca,\n\t0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7,\n\t0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b,\n\t0x1146: 0x23c0, 0x1147: 0x2556,\n\t0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da,\n\t0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc,\n\t0x117c: 0x27d1,\n\t// Block 0x46, offset 0x1180\n\t0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf,\n\t0x1198: 0x04c3, 0x1199: 0x1b5c,\n\t0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132,\n\t0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d,\n\t0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132,\n\t0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011,\n\t0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab,\n\t0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7,\n\t0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269,\n\t0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003,\n\t0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7,\n\t0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b,\n\t0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009,\n\t0x11ea: 0x000b, 0x11eb: 0x0041,\n\t0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4,\n\t0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e,\n\t0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456,\n\t0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462,\n\t0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c,\n\t0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242,\n\t0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248,\n\t0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b,\n\t0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251,\n\t0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a,\n\t0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260,\n\t0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263,\n\t0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c,\n\t0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f,\n\t0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275,\n\t0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278,\n\t0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e,\n\t0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281,\n\t0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287,\n\t0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d,\n\t0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00,\n\t0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82,\n\t0x127c: 0x1f82,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b,\n\t0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097,\n\t0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3,\n\t0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af,\n\t0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb,\n\t0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f,\n\t0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7,\n\t0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f,\n\t0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb,\n\t0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503,\n\t0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f,\n\t0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547,\n\t0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f,\n\t0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583,\n\t0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7,\n\t0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b,\n\t0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327,\n\t0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b,\n\t0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337,\n\t0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f,\n\t0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b,\n\t// Block 0x4c, offset 0x1300\n\t0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf,\n\t0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7,\n\t0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff,\n\t0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23,\n\t0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35,\n\t0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264,\n\t0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b,\n\t0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d,\n\t0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085,\n\t0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091,\n\t0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d,\n\t0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9,\n\t0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5,\n\t0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176,\n\t0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188,\n\t0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a,\n\t0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9,\n\t0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0,\n\t0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209,\n\t0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027,\n\t0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033,\n\t0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b,\n\t0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023,\n\t0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f,\n\t0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027,\n\t0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033,\n\t0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b,\n\t0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a,\n\t0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e,\n\t0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e,\n\t0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4,\n\t0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272,\n\t// Block 0x50, offset 0x1400\n\t0x1402: 0x0248,\n\t0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e,\n\t0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4,\n\t0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t0x143c: 0x0293, 0x143e: 0x02cc,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a,\n\t0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e,\n\t0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272,\n\t0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251,\n\t0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8,\n\t0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927,\n\t0x1490: 0x1a8c, 0x1491: 0x1a90,\n\t0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8,\n\t0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0,\n\t0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8,\n\t0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0,\n\t0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1,\n\t0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d,\n\t0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059,\n\t0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503,\n\t0x14d0: 0x0c0f, 0x14d1: 0x0a47,\n\t0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff,\n\t0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b,\n\t0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b,\n\t0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf,\n\t0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b,\n\t0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43,\n\t0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757,\n\t0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773,\n\t0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3,\n\t0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf,\n\t0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff,\n\t0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f,\n\t0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867,\n\t0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af,\n\t0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93,\n\t0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3,\n\t0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f,\n\t0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983,\n\t0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf,\n\t0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3,\n\t0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef,\n\t0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23,\n\t0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37,\n\t0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63,\n\t0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f,\n\t0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692,\n\t0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb,\n\t0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f,\n\t0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6,\n\t0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9,\n\t0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83,\n\t0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3,\n\t0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf,\n\t0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7,\n\t0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f,\n\t0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b,\n\t0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87,\n\t0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb,\n\t0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7,\n\t0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663,\n\t0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd,\n\t0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7,\n\t0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b,\n\t0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f,\n\t0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7,\n\t0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700,\n\t0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23,\n\t0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53,\n\t0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714,\n\t0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b,\n\t0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719,\n\t0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728,\n\t0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37,\n\t0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57,\n\t0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737,\n\t0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741,\n\t0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff,\n\t0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637,\n\t0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f,\n\t0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093,\n\t0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782,\n\t0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3,\n\t0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7,\n\t0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133,\n\t0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa,\n\t0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4,\n\t0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7,\n\t0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7,\n\t0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b,\n\t0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd,\n\t0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f,\n\t0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f,\n\t0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273,\n\t0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677,\n\t0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7,\n\t0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb,\n\t0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5,\n\t0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa,\n\t0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b,\n\t0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7,\n\t0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665,\n\t0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f,\n\t0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477,\n\t0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693,\n\t0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb,\n\t0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b,\n\t0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567,\n\t0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7,\n\t0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7,\n\t0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef,\n\t0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61,\n\t0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11,\n\t0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27,\n\t0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33,\n\t0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b,\n\t0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43,\n\t0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc,\n\t0x3b0: 0xd7, 0x3b5: 0xdd,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xde, 0x3ec: 0xdf,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe0,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3,\n\t0x449: 0xe4,\n\t0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec,\n\t0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf3,\n\t0x4a3: 0xf4, 0x4a5: 0xf5,\n\t0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7,\n\t0x4c8: 0x51, 0x4c9: 0xf8,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59,\n\t0x528: 0x5a,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 158 entries, 316 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b}\n\n// nfkcSparseValues: 869 entries, 3476 bytes\nvar nfkcSparseValues = [869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdc\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xea\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x108\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x116\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x120\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x124\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x126\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x128\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x12a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x130\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x132\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x135\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x138\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x141\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x14a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x151\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15c\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x167\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x175\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x183\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x40, offset 0x193\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x41, offset 0x1a1\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x42, offset 0x1a8\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x45, offset 0x1c1\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x46, offset 0x1c3\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x47, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x48, offset 0x1c9\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x49, offset 0x1cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4a, offset 0x1ce\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4b, offset 0x1d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4c, offset 0x1d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4d, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4e, offset 0x1d8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4f, offset 0x1da\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x50, offset 0x1dc\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x51, offset 0x1e8\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x52, offset 0x1f2\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x53, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x54, offset 0x1ff\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x55, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x56, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x57, offset 0x207\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x58, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x59, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5a, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5b, offset 0x210\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5c, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5d, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5e, offset 0x216\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5f, offset 0x21c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x60, offset 0x21f\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x61, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x62, offset 0x225\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x63, offset 0x22c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x64, offset 0x232\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x65, offset 0x238\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x66, offset 0x240\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x67, offset 0x246\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x68, offset 0x24c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x69, offset 0x252\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6a, offset 0x256\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6b, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6c, offset 0x25a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6d, offset 0x25c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6e, offset 0x25e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x264\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x70, offset 0x267\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x26a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x72, offset 0x272\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x73, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x74, offset 0x27c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x75, offset 0x27f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x76, offset 0x281\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x77, offset 0x289\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x78, offset 0x28c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x79, offset 0x293\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7a, offset 0x296\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7b, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7c, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x2a0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x7f, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x80, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x81, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x82, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x83, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x2b4\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x2c1\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x2cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2cf\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8b, offset 0x2d3\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x8c, offset 0x2d8\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8d, offset 0x2e4\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8e, offset 0x2e9\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8f, offset 0x2f2\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x90, offset 0x2f8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x91, offset 0x2fd\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x92, offset 0x301\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x93, offset 0x306\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x30a\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x31a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x96, offset 0x328\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x336\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x98, offset 0x344\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x99, offset 0x34a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9a, offset 0x34c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9b, offset 0x34f\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x9c, offset 0x359\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9d, offset 0x35b\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54226 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"11.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,\n\t0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,\n\t0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,\n\t0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,\n\t0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,\n\t0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,\n\t0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,\n\t0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,\n\t0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,\n\t0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,\n\t0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,\n\t0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,\n\t0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,\n\t0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,\n\t0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,\n\t0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2,\n\t0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0,\n\t0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df,\n\t0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85,\n\t0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93,\n\t0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c,\n\t0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370,\n\t0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a,\n\t0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de,\n\t0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7,\n\t0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a,\n\t0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e,\n\t0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9,\n\t0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465,\n\t0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26,\n\t0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791,\n\t0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b,\n\t0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4,\n\t0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f,\n\t0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49,\n\t0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532,\n\t0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541,\n\t0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582,\n\t0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6,\n\t0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1,\n\t0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f,\n\t0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15,\n\t0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23,\n\t0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a,\n\t0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c,\n\t0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70,\n\t0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1,\n\t0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf,\n\t0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6,\n\t0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5,\n\t0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11,\n\t0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73,\n\t0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a,\n\t0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578,\n\t0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e,\n\t0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6,\n\t0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c,\n\t0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0,\n\t0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00,\n\t0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966,\n\t0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8,\n\t0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6,\n\t0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38,\n\t0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30,\n\t0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60,\n\t0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58,\n\t0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a,\n\t0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8,\n\t0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70,\n\t0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996,\n\t0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2,\n\t0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916,\n\t0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a,\n\t0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c,\n\t0x5fc: 0x4870, 0x5fd: 0x4342,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac,\n\t0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee,\n\t0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0,\n\t0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2,\n\t0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134,\n\t0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a,\n\t0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88,\n\t0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a,\n\t0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98,\n\t0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee,\n\t0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0,\n\t0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa,\n\t0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af,\n\t0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10,\n\t0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4,\n\t0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec,\n\t0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b,\n\t0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081,\n\t0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8,\n\t0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318,\n\t0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000,\n\t0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a,\n\t0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000,\n\t0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000,\n\t0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000,\n\t0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60,\n\t0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78,\n\t0x72f: 0xa000,\n\t0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000,\n\t0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000,\n\t0x73c: 0x3fc0, 0x73d: 0x3fc8,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f00,\n\t0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fd0,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000,\n\t0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000,\n\t0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000,\n\t0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040,\n\t0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050,\n\t0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060,\n\t0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080,\n\t0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8,\n\t0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0,\n\t0x7bd: 0xa000, 0x7be: 0x40c8,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,\n\t0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,\n\t0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,\n\t0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,\n\t0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,\n\t0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,\n\t0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,\n\t0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,\n\t0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,\n\t0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,\n\t0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,\n\t0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,\n\t0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,\n\t0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,\n\t0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,\n\t0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,\n\t0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,\n\t0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,\n\t0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,\n\t0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,\n\t0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,\n\t0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,\n\t0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,\n\t0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,\n\t0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,\n\t0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,\n\t0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,\n\t0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,\n\t0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,\n\t0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,\n\t0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,\n\t0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,\n\t0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,\n\t0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,\n\t0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,\n\t0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,\n\t0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,\n\t0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,\n\t0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,\n\t0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,\n\t0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,\n\t0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,\n\t0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,\n\t0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,\n\t0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,\n\t0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,\n\t0x8e5: 0x1407, 0x8e6: 0x1433,\n\t0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,\n\t0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,\n\t0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,\n\t0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,\n\t0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,\n\t0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,\n\t0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,\n\t0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,\n\t0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,\n\t0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,\n\t0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,\n\t0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,\n\t0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,\n\t0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,\n\t0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,\n\t0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,\n\t0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,\n\t0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,\n\t0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,\n\t0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,\n\t0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,\n\t0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,\n\t0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,\n\t0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,\n\t0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,\n\t0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,\n\t0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,\n\t0x998: 0x1617, 0x999: 0x1627,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,\n\t0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,\n\t0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,\n\t0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,\n\t0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,\n\t0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,\n\t0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,\n\t0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,\n\t0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,\n\t0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,\n\t0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,\n\t0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,\n\t0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,\n\t0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,\n\t0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,\n\t0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,\n\t0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,\n\t0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,\n\t0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,\n\t0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,\n\t0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,\n\t0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,\n\t0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,\n\t0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,\n\t0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,\n\t0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,\n\t0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,\n\t0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,\n\t0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,\n\t0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,\n\t0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,\n\t0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,\n\t0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,\n\t0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,\n\t0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,\n\t0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,\n\t0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,\n\t0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,\n\t0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,\n\t0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,\n\t0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,\n\t0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,\n\t0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,\n\t0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,\n\t0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,\n\t0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,\n\t0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,\n\t0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,\n\t0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,\n\t0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,\n\t0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,\n\t0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,\n\t0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,\n\t0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,\n\t0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,\n\t0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,\n\t0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,\n\t0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,\n\t0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,\n\t0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,\n\t0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,\n\t0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,\n\t0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,\n\t0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,\n\t0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,\n\t0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,\n\t0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,\n\t0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,\n\t0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,\n\t0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,\n\t0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,\n\t0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,\n\t0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,\n\t0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,\n\t0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,\n\t0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,\n\t0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,\n\t0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,\n\t0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,\n\t0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,\n\t0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,\n\t0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,\n\t0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,\n\t0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,\n\t0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t0x374: 0xa1,\n\t0x37d: 0xa2,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,\n\t0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,\n\t0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,\n\t0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,\n\t0x3a0: 0xb2,\n\t0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5,\n\t0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb8, 0x3ec: 0xb9,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd,\n\t0x449: 0xbe,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xbf,\n\t0x4a3: 0xc0, 0x4a5: 0xc1,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc2,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 149 entries, 298 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa}\n\n// nfcSparseValues: 684 entries, 2736 bytes\nvar nfcSparseValues = [684]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xcf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0xff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x103\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x107\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x10f\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x112\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x115\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x119\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x11e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x12c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x12e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x139\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3c, offset 0x13d\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3d, offset 0x14b\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3e, offset 0x14e\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x3f, offset 0x154\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x40, offset 0x15a\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x41, offset 0x165\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x42, offset 0x169\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x43, offset 0x16b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x44, offset 0x16d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x45, offset 0x16f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x46, offset 0x171\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x47, offset 0x173\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x48, offset 0x179\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x49, offset 0x17d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4a, offset 0x17f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4b, offset 0x181\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4c, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4d, offset 0x18d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4e, offset 0x190\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x4f, offset 0x192\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x50, offset 0x194\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x51, offset 0x196\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x52, offset 0x199\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x53, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x54, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x55, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x56, offset 0x1a1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x57, offset 0x1a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x58, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x59, offset 0x1ac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5a, offset 0x1b3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5b, offset 0x1b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1bf\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x60, offset 0x1d9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x61, offset 0x1dd\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x62, offset 0x1eb\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x63, offset 0x1f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x64, offset 0x1f7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x65, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x66, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x67, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x68, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x69, offset 0x205\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6a, offset 0x20a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6b, offset 0x20c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6c, offset 0x20e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6d, offset 0x213\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6e, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6f, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x70, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x71, offset 0x21f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x225\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x73, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x74, offset 0x22a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x230\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x233\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x23b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x242\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x245\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x248\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x24a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7c, offset 0x24d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7d, offset 0x255\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7e, offset 0x259\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7f, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x80, offset 0x263\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x82, offset 0x26b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x83, offset 0x26e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x84, offset 0x270\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x85, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x86, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x87, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x88, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x89, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x8a, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8b, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8c, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8d, offset 0x284\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8e, offset 0x291\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8f, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x90, offset 0x29d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x91, offset 0x29f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x92, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x93, offset 0x2a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x94, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,\n\t0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000,\n\t0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000,\n\t0x452: 0x2d4e,\n\t0x474: 0x8102, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d56,\n\t0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,\n\t0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,\n\t0x4aa: 0x01fd,\n\t0x4b8: 0x020c,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,\n\t0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,\n\t0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,\n\t0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,\n\t0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,\n\t0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,\n\t0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,\n\t0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,\n\t0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,\n\t0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,\n\t0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,\n\t0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2,\n\t0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0,\n\t0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df,\n\t0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85,\n\t0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93,\n\t0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c,\n\t0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370,\n\t0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a,\n\t0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de,\n\t0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7,\n\t0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a,\n\t0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e,\n\t0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9,\n\t0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465,\n\t0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26,\n\t0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791,\n\t0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b,\n\t0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4,\n\t0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f,\n\t0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49,\n\t0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532,\n\t0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541,\n\t0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582,\n\t0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6,\n\t0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7,\n\t0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f,\n\t0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15,\n\t0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23,\n\t0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a,\n\t0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c,\n\t0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70,\n\t0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1,\n\t0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf,\n\t0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6,\n\t0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5,\n\t0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11,\n\t0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73,\n\t0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a,\n\t0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578,\n\t0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e,\n\t0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6,\n\t0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c,\n\t0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0,\n\t0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00,\n\t0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966,\n\t0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8,\n\t0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6,\n\t0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38,\n\t0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30,\n\t0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60,\n\t0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58,\n\t0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a,\n\t0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8,\n\t0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70,\n\t0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996,\n\t0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2,\n\t0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916,\n\t0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a,\n\t0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c,\n\t0x6bc: 0x4870, 0x6bd: 0x4342,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac,\n\t0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee,\n\t0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0,\n\t0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2,\n\t0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134,\n\t0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a,\n\t0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88,\n\t0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a,\n\t0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98,\n\t0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee,\n\t0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0,\n\t0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa,\n\t0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af,\n\t0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10,\n\t0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e,\n\t0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec,\n\t0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b,\n\t0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081,\n\t0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8,\n\t0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318,\n\t0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8,\n\t0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8,\n\t0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,\n\t0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98,\n\t0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0463, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x222e, 0x791: 0x223a,\n\t0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8,\n\t0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0,\n\t0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963,\n\t0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071,\n\t0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62,\n\t0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000,\n\t0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a,\n\t0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,\n\t0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,\n\t0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c,\n\t0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84,\n\t0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8,\n\t0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,\n\t0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60,\n\t0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78,\n\t0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8,\n\t0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10,\n\t0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28,\n\t0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40,\n\t0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,\n\t0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,\n\t0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,\n\t0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,\n\t0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,\n\t0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,\n\t0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,\n\t0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,\n\t0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,\n\t0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,\n\t0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,\n\t0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,\n\t0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,\n\t0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,\n\t0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,\n\t0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,\n\t0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,\n\t0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,\n\t0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,\n\t0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,\n\t0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,\n\t0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,\n\t0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,\n\t0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,\n\t0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,\n\t0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,\n\t0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,\n\t0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,\n\t0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,\n\t0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,\n\t0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000,\n\t0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000,\n\t0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000,\n\t0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60,\n\t0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000,\n\t0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000,\n\t0x9bc: 0x3fc0, 0x9bd: 0x3fc8,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f00,\n\t0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000,\n\t0x9de: 0x3fd0, 0x9df: 0x26b4,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000,\n\t0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000,\n\t0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000,\n\t0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040,\n\t0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050,\n\t0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060,\n\t0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080,\n\t0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8,\n\t0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0,\n\t0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,\n\t0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,\n\t0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9,\n\t0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed,\n\t0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11,\n\t0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35,\n\t0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,\n\t0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,\n\t0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,\n\t0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,\n\t0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,\n\t0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,\n\t0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,\n\t0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,\n\t0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,\n\t0xa9e: 0x098f, 0xa9f: 0x072f,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072,\n\t0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096,\n\t0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741,\n\t0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780,\n\t0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac,\n\t0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108,\n\t0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0,\n\t0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e,\n\t0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144,\n\t0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114,\n\t0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03,\n\t0xb06: 0x0ca7, 0xb07: 0x10c7,\n\t0xb10: 0x1bc4, 0xb11: 0x18a9,\n\t0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,\n\t0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,\n\t0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,\n\t0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,\n\t0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20,\n\t0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50,\n\t0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88,\n\t0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,\n\t0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,\n\t0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,\n\t0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,\n\t0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,\n\t0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,\n\t0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,\n\t0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,\n\t0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,\n\t0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,\n\t0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11,\n\t0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0,\n\t0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3,\n\t0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,\n\t0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,\n\t0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,\n\t0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,\n\t0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,\n\t0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,\n\t0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,\n\t0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a,\n\t0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2,\n\t0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6,\n\t0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c,\n\t0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6,\n\t0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da,\n\t0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8,\n\t0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51,\n\t0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920,\n\t0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06,\n\t0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c,\n\t0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90,\n\t0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6,\n\t0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984,\n\t0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07,\n\t0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4,\n\t0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2,\n\t0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a,\n\t0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47,\n\t0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701,\n\t0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969,\n\t0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35,\n\t0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c,\n\t0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9,\n\t0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0,\n\t0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40,\n\t0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996,\n\t0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad,\n\t0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38,\n\t0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b,\n\t0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd,\n\t0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e,\n\t0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e,\n\t0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990,\n\t0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4,\n\t0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee,\n\t0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186,\n\t0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0,\n\t0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258,\n\t0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e,\n\t0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,\n\t0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,\n\t0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,\n\t0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,\n\t0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,\n\t0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,\n\t0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,\n\t0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,\n\t0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,\n\t0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,\n\t0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,\n\t0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,\n\t0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,\n\t0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,\n\t0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,\n\t0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,\n\t0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,\n\t0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,\n\t0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,\n\t0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,\n\t0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,\n\t0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,\n\t0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,\n\t0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,\n\t0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,\n\t0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,\n\t0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,\n\t0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,\n\t0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,\n\t0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,\n\t0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,\n\t0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,\n\t0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,\n\t0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,\n\t0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,\n\t0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,\n\t0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,\n\t0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,\n\t0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,\n\t0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,\n\t0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,\n\t0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,\n\t0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,\n\t0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,\n\t0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,\n\t0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,\n\t0xde5: 0x1407, 0xde6: 0x1433,\n\t0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,\n\t0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,\n\t0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,\n\t0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,\n\t0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,\n\t0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,\n\t0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,\n\t0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,\n\t0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,\n\t0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,\n\t0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,\n\t0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,\n\t0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,\n\t0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,\n\t0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,\n\t0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,\n\t0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,\n\t0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,\n\t0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,\n\t0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,\n\t0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,\n\t0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,\n\t0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,\n\t0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,\n\t0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,\n\t0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,\n\t0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,\n\t0xe98: 0x1617, 0xe99: 0x1627,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f,\n\t0xec6: 0x1a5f,\n\t0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70,\n\t0xedd: 0x4390,\n\t0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,\n\t0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,\n\t0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e,\n\t0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e,\n\t0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2,\n\t0xefc: 0x43ae, 0xefe: 0x43b4,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc,\n\t0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378,\n\t0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299,\n\t0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,\n\t0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,\n\t0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,\n\t0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,\n\t0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,\n\t0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,\n\t0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,\n\t0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,\n\t0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,\n\t0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,\n\t0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,\n\t0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,\n\t0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,\n\t0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,\n\t0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,\n\t0xf70: 0x4468, 0xf71: 0x4468,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,\n\t0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f,\n\t0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,\n\t0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,\n\t0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9,\n\t0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c,\n\t0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0,\n\t0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89,\n\t0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb,\n\t0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded,\n\t0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29,\n\t0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b,\n\t0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9,\n\t0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00,\n\t0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32,\n\t0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50,\n\t0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e,\n\t0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf,\n\t0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd,\n\t0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff,\n\t0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022,\n\t0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c,\n\t0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6,\n\t0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7,\n\t0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6,\n\t0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8,\n\t0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10,\n\t0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96,\n\t0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1,\n\t0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027,\n\t0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1,\n\t0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e,\n\t0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5,\n\t0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29,\n\t0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60,\n\t0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9,\n\t0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05,\n\t0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64,\n\t0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91,\n\t0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe,\n\t0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff,\n\t0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031,\n\t0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4,\n\t0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92,\n\t0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0,\n\t0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1,\n\t0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74,\n\t0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba,\n\t0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88,\n\t0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1,\n\t0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74,\n\t0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f,\n\t0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd,\n\t0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d,\n\t0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88,\n\t0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b,\n\t0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb,\n\t0x10fc: 0x4408, 0x10fd: 0x4408,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2311, 0x1111: 0x2326,\n\t0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357,\n\t0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4,\n\t0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5,\n\t0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc,\n\t0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430,\n\t0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c,\n\t0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f,\n\t0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df,\n\t0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e,\n\t0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c,\n\t0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548,\n\t0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c,\n\t0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365,\n\t0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406,\n\t0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e,\n\t0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca,\n\t0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7,\n\t0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b,\n\t0x1186: 0x23c0, 0x1187: 0x2556,\n\t0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da,\n\t0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc,\n\t0x11bc: 0x27d1,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,\n\t0x11d8: 0x04c3, 0x11d9: 0x1b5c,\n\t0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,\n\t0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,\n\t0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,\n\t0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,\n\t0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269,\n\t0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,\n\t0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4,\n\t0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e,\n\t0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456,\n\t0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462,\n\t0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,\n\t0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,\n\t0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,\n\t0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,\n\t0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,\n\t0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,\n\t0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,\n\t0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,\n\t0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,\n\t0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,\n\t0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,\n\t0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,\n\t0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,\n\t0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,\n\t0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,\n\t0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,\n\t0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00,\n\t0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82,\n\t0x12bc: 0x1f82,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,\n\t0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,\n\t0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,\n\t0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,\n\t0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,\n\t0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,\n\t0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,\n\t0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,\n\t0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,\n\t0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,\n\t0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b,\n\t0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,\n\t0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b,\n\t0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,\n\t0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,\n\t0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf,\n\t0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7,\n\t0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff,\n\t0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23,\n\t0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,\n\t0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,\n\t0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,\n\t0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,\n\t0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,\n\t0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,\n\t0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,\n\t0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x0248,\n\t0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,\n\t0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,\n\t0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,\n\t0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t0x147c: 0x0293, 0x147e: 0x02cc,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,\n\t0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,\n\t0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,\n\t0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,\n\t0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,\n\t0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,\n\t0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,\n\t0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,\n\t0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,\n\t0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,\n\t0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,\n\t0x14d0: 0x1a8c, 0x14d1: 0x1a90,\n\t0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8,\n\t0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0,\n\t0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8,\n\t0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0,\n\t0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503,\n\t0x1510: 0x0c0f, 0x1511: 0x0a47,\n\t0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,\n\t0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,\n\t0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,\n\t0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,\n\t0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,\n\t0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,\n\t0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,\n\t0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,\n\t0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,\n\t0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,\n\t0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,\n\t0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,\n\t0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,\n\t0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,\n\t0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,\n\t0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,\n\t0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,\n\t0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,\n\t0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,\n\t0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,\n\t0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,\n\t0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,\n\t0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,\n\t0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,\n\t0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,\n\t0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,\n\t0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,\n\t0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,\n\t0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,\n\t0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,\n\t0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,\n\t0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,\n\t0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,\n\t0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,\n\t0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,\n\t0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,\n\t0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,\n\t0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,\n\t0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,\n\t0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,\n\t0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,\n\t0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,\n\t0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,\n\t0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,\n\t0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,\n\t0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,\n\t0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,\n\t0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,\n\t0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,\n\t0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,\n\t0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,\n\t0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,\n\t0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,\n\t0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,\n\t0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,\n\t0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,\n\t0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,\n\t0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,\n\t0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,\n\t0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,\n\t0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,\n\t0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,\n\t0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,\n\t0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,\n\t0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,\n\t0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,\n\t0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,\n\t0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,\n\t0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,\n\t0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,\n\t0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,\n\t0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,\n\t0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,\n\t0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,\n\t0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,\n\t0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,\n\t0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,\n\t0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,\n\t0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,\n\t0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,\n\t0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,\n\t0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,\n\t0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,\n\t0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,\n\t0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,\n\t0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,\n\t0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,\n\t0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,\n\t0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,\n\t0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,\n\t0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t0x374: 0xcb,\n\t0x37d: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,\n\t0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,\n\t0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,\n\t0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,\n\t0x3a0: 0xdd,\n\t0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0,\n\t0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe3, 0x3ec: 0xe4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8,\n\t0x449: 0xe9,\n\t0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1,\n\t0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf8,\n\t0x4a3: 0xf9, 0x4a5: 0xfa,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc,\n\t0x4c8: 0x52, 0x4c9: 0xfd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 162 entries, 324 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d}\n\n// nfkcSparseValues: 871 entries, 3484 bytes\nvar nfkcSparseValues = [871]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x22, offset 0xde\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xf9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x107\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x115\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x117\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x119\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x123\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x126\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x129\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x132\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x13d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x140\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x142\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x14d\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x158\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x174\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x199\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x19f\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x1b2\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x1b4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x46, offset 0x1b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x47, offset 0x1ba\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x48, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x49, offset 0x1bf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4a, offset 0x1c2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4b, offset 0x1c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4c, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4d, offset 0x1c9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4e, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x4f, offset 0x1cd\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x50, offset 0x1d9\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x51, offset 0x1e3\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x52, offset 0x1ed\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x53, offset 0x1f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x54, offset 0x1f4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x55, offset 0x1f6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x56, offset 0x1f8\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x57, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x58, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x59, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5a, offset 0x201\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5b, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5c, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5d, offset 0x207\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5e, offset 0x20d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5f, offset 0x210\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x60, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x61, offset 0x216\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x62, offset 0x21d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x63, offset 0x223\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x64, offset 0x229\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x65, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x66, offset 0x237\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x67, offset 0x23d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x68, offset 0x243\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x69, offset 0x247\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6a, offset 0x249\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6b, offset 0x24b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6c, offset 0x24d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6d, offset 0x24f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6e, offset 0x255\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x6f, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x70, offset 0x25a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x71, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x263\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x26b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x275\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x278\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x27a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x78, offset 0x27d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x79, offset 0x285\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7a, offset 0x289\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7b, offset 0x290\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7c, offset 0x293\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7e, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x29d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x80, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x81, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x82, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x87, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x88, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x89, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8a, offset 0x2b6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x2c3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8c, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8d, offset 0x2cf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8e, offset 0x2d1\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8f, offset 0x2d5\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x90, offset 0x2da\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x91, offset 0x2e6\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x92, offset 0x2eb\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x93, offset 0x2f4\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x94, offset 0x2fa\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x95, offset 0x2ff\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x96, offset 0x303\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x308\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x30c\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x99, offset 0x31c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x9a, offset 0x32a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9b, offset 0x338\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9c, offset 0x346\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9d, offset 0x34c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9e, offset 0x34e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9f, offset 0x351\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0xa0, offset 0x35b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0xa1, offset 0x35d\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54514 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"12.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2CA1\n\tendMulti              = 0x2F63\n\tfirstLeadingCCC       = 0x49B1\n\tfirstCCCZeroExcept    = 0x4A7B\n\tfirstStarterWithNLead = 0x4AA2\n\tlastDecomp            = 0x4AA4\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19108 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42,\n\t0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A,\n\t0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50,\n\t0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42,\n\t0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53,\n\t0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56,\n\t0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42,\n\t0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64,\n\t0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42,\n\t0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56,\n\t0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66,\n\t0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42,\n\t0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E,\n\t0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B,\n\t0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D,\n\t0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C,\n\t0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42,\n\t0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41,\n\t0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D,\n\t0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42,\n\t0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41,\n\t0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42,\n\t0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41,\n\t0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70,\n\t0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42,\n\t0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69,\n\t0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43,\n\t0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43,\n\t0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43,\n\t// Bytes 1a80 - 1abf\n\t0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43,\n\t0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43,\n\t0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43,\n\t0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43,\n\t0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43,\n\t0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43,\n\t0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43,\n\t0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43,\n\t// Bytes 1ac0 - 1aff\n\t0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43,\n\t0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43,\n\t0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43,\n\t0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43,\n\t0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43,\n\t0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43,\n\t0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43,\n\t0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43,\n\t// Bytes 1b00 - 1b3f\n\t0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43,\n\t0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43,\n\t0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43,\n\t0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43,\n\t0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43,\n\t0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43,\n\t0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43,\n\t0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43,\n\t// Bytes 1b40 - 1b7f\n\t0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43,\n\t0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43,\n\t0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43,\n\t0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43,\n\t0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43,\n\t0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43,\n\t0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43,\n\t0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43,\n\t// Bytes 1b80 - 1bbf\n\t0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43,\n\t0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43,\n\t0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43,\n\t0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43,\n\t0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43,\n\t0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43,\n\t0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43,\n\t0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43,\n\t// Bytes 1bc0 - 1bff\n\t0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43,\n\t0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43,\n\t0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43,\n\t0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43,\n\t0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43,\n\t0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43,\n\t0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43,\n\t0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43,\n\t// Bytes 1c00 - 1c3f\n\t0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43,\n\t0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43,\n\t0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43,\n\t0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43,\n\t0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43,\n\t0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43,\n\t0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43,\n\t0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43,\n\t// Bytes 1c40 - 1c7f\n\t0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43,\n\t0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43,\n\t0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43,\n\t0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43,\n\t0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43,\n\t0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43,\n\t0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43,\n\t0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43,\n\t// Bytes 1c80 - 1cbf\n\t0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29,\n\t0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31,\n\t0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44,\n\t0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35,\n\t0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28,\n\t0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29,\n\t0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32,\n\t0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44,\n\t// Bytes 1cc0 - 1cff\n\t0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97,\n\t0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31,\n\t0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5,\n\t0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7,\n\t0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44,\n\t0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82,\n\t0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34,\n\t0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9,\n\t// Bytes 1d00 - 1d3f\n\t0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6,\n\t0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44,\n\t0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C,\n\t0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37,\n\t0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88,\n\t0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6,\n\t0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44,\n\t0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97,\n\t// Bytes 1d40 - 1d7f\n\t0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39,\n\t0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49,\n\t0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63,\n\t0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44,\n\t0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6,\n\t0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE,\n\t// Bytes 1d80 - 1dbf\n\t0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44,\n\t0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8,\n\t0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1dc0 - 1dff\n\t0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44,\n\t0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A,\n\t0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44,\n\t// Bytes 1e00 - 1e3f\n\t0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A,\n\t0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC,\n\t0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A,\n\t// Bytes 1e40 - 1e7f\n\t0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9,\n\t// Bytes 1e80 - 1ebf\n\t0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5,\n\t// Bytes 1ec0 - 1eff\n\t0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1f00 - 1f3f\n\t0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44,\n\t// Bytes 1f40 - 1f7f\n\t0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9,\n\t0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9,\n\t0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89,\n\t0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9,\n\t0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89,\n\t// Bytes 1f80 - 1fbf\n\t0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9,\n\t0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89,\n\t0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8,\n\t// Bytes 1fc0 - 1fff\n\t0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9,\n\t0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9,\n\t0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87,\n\t0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9,\n\t0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9,\n\t0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9,\n\t// Bytes 2040 - 207f\n\t0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89,\n\t0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A,\n\t0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45,\n\t0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83,\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89,\n\t// Bytes 2080 - 20bf\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F,\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80,\n\t0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45,\n\t0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4,\n\t// Bytes 20c0 - 20ff\n\t0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C,\n\t0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45,\n\t0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4,\n\t0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91,\n\t0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45,\n\t0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5,\n\t0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81,\n\t0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45,\n\t// Bytes 2100 - 213f\n\t0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5,\n\t0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B,\n\t0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45,\n\t0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6,\n\t0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88,\n\t0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45,\n\t0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6,\n\t0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4,\n\t// Bytes 2140 - 217f\n\t0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45,\n\t0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7,\n\t0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE,\n\t0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45,\n\t0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8,\n\t0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3,\n\t0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45,\n\t0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9,\n\t// Bytes 2180 - 21bf\n\t0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84,\n\t0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45,\n\t0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45,\n\t0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32,\n\t0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C,\n\t0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45,\n\t// Bytes 21c0 - 21ff\n\t0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97,\n\t// Bytes 2200 - 223f\n\t0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84,\n\t0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45,\n\t0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2,\n\t0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84,\n\t0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45,\n\t0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2,\n\t// Bytes 2240 - 227f\n\t0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45,\n\t0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31,\n\t0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45,\n\t0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33,\n\t0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45,\n\t// Bytes 2280 - 22bf\n\t0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36,\n\t0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45,\n\t0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2,\n\t0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84,\n\t0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45,\n\t0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2,\n\t0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84,\n\t// Bytes 22c0 - 22ff\n\t0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45,\n\t0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2,\n\t0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84,\n\t0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45,\n\t0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2,\n\t0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95,\n\t0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30,\n\t0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46,\n\t// Bytes 2300 - 233f\n\t0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8,\n\t// Bytes 2340 - 237f\n\t0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9,\n\t0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85,\n\t0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,\n\t0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC,\n\t// Bytes 2380 - 23bf\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8,\n\t// Bytes 23c0 - 23ff\n\t0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD,\n\t0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9,\n\t0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85,\n\t// Bytes 2400 - 243f\n\t0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8,\n\t0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6,\n\t0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,\n\t0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2480 - 24bf\n\t0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82,\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46,\n\t// Bytes 24c0 - 24ff\n\t0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,\n\t// Bytes 2500 - 253f\n\t0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t// Bytes 2540 - 257f\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC,\n\t0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9,\n\t// Bytes 2580 - 25bf\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t// Bytes 25c0 - 25ff\n\t0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D,\n\t0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0,\n\t0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA,\n\t0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2,\n\t// Bytes 2640 - 267f\n\t0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46,\n\t0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD,\n\t0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE,\n\t0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,\n\t0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46,\n\t0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82,\n\t0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3,\n\t0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83,\n\t0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3,\n\t0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3,\n\t0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4,\n\t// Bytes 2700 - 273f\n\t0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3,\n\t0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6,\n\t0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92,\n\t0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95,\n\t0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80,\n\t0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83,\n\t// Bytes 2740 - 277f\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1,\n\t// Bytes 2780 - 27bf\n\t0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73,\n\t0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3,\n\t0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB,\n\t0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8,\n\t0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF,\n\t0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,\n\t// Bytes 2800 - 283f\n\t0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88,\n\t0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4,\n\t0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t// Bytes 2840 - 287f\n\t0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,\n\t0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97,\n\t// Bytes 2880 - 28bf\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,\n\t0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82,\n\t0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,\n\t0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49,\n\t0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t// Bytes 2940 - 297f\n\t0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,\n\t0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t// Bytes 2980 - 29bf\n\t0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1,\n\t0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83,\n\t0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82,\n\t0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82,\n\t// Bytes 2a40 - 2a7f\n\t0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C,\n\t0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5,\n\t0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE,\n\t0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9,\n\t0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F,\n\t// Bytes 2b00 - 2b3f\n\t0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9,\n\t0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F,\n\t0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51,\n\t0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB,\n\t// Bytes 2bc0 - 2bff\n\t0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52,\n\t0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t// Bytes 2c00 - 2c3f\n\t0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD,\n\t0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82,\n\t0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61,\n\t// Bytes 2c80 - 2cbf\n\t0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8,\n\t0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20,\n\t0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87,\n\t0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,\n\t0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE,\n\t0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97,\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE,\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96,\n\t// Bytes 2cc0 - 2cff\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97,\n\t0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97,\n\t0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE,\n\t0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97,\n\t0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95,\n\t0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95,\n\t0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96,\n\t// Bytes 2d00 - 2d3f\n\t0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97,\n\t0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F,\n\t0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE,\n\t0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5,\n\t// Bytes 2d40 - 2d7f\n\t0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5,\n\t// Bytes 2d80 - 2dbf\n\t0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91,\n\t0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2,\n\t0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,\n\t0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08,\n\t0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97,\n\t0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,\n\t0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,\n\t0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91,\n\t// Bytes 2dc0 - 2dff\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08,\n\t0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF,\n\t0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91,\n\t0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A,\n\t0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44,\n\t0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A,\n\t// Bytes 2e00 - 2e3f\n\t0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1,\n\t// Bytes 2e40 - 2e7f\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1,\n\t// Bytes 2e80 - 2ebf\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1,\n\t0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B,\n\t0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1,\n\t0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,\n\t0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82,\n\t0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3,\n\t0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05,\n\t0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC,\n\t0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03,\n\t0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83,\n\t// Bytes 2f80 - 2fbf\n\t0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41,\n\t0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC,\n\t0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03,\n\t0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87,\n\t0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9,\n\t0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC,\n\t// Bytes 2fc0 - 2fff\n\t0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5,\n\t0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC,\n\t0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03,\n\t0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86,\n\t0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45,\n\t// Bytes 3000 - 303f\n\t0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9,\n\t0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03,\n\t0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46,\n\t0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9,\n\t0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC,\n\t0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03,\n\t// Bytes 3040 - 307f\n\t0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48,\n\t0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9,\n\t0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE,\n\t0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49,\n\t0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9,\n\t// Bytes 3080 - 30bf\n\t0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC,\n\t0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03,\n\t0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89,\n\t0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9,\n\t0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81,\n\t// Bytes 30c0 - 30ff\n\t0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC,\n\t0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D,\n\t0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9,\n\t0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC,\n\t// Bytes 3100 - 313f\n\t0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03,\n\t0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F,\n\t// Bytes 3140 - 317f\n\t0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03,\n\t0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81,\n\t0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3180 - 31bf\n\t0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87,\n\t0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9,\n\t0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55,\n\t0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9,\n\t// Bytes 31c0 - 31ff\n\t0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC,\n\t0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03,\n\t0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9,\n\t0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC,\n\t0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0,\n\t// Bytes 3200 - 323f\n\t0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9,\n\t0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC,\n\t0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03,\n\t0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9,\n\t0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC,\n\t// Bytes 3240 - 327f\n\t0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03,\n\t0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87,\n\t0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59,\n\t0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC,\n\t0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61,\n\t// Bytes 3280 - 32bf\n\t0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9,\n\t0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC,\n\t0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03,\n\t0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F,\n\t0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61,\n\t0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5,\n\t0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 32c0 - 32ff\n\t0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82,\n\t0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9,\n\t0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65,\n\t0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9,\n\t// Bytes 3300 - 333f\n\t0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC,\n\t0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03,\n\t0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65,\n\t0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5,\n\t0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC,\n\t0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03,\n\t0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82,\n\t// Bytes 3340 - 337f\n\t0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67,\n\t0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9,\n\t0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03,\n\t0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88,\n\t0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC,\n\t// Bytes 3380 - 33bf\n\t0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03,\n\t0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82,\n\t0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69,\n\t0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9,\n\t0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69,\n\t// Bytes 33c0 - 33ff\n\t0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9,\n\t0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC,\n\t0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C,\n\t0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3400 - 343f\n\t0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87,\n\t0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E,\n\t0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9,\n\t// Bytes 3440 - 347f\n\t0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC,\n\t0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9,\n\t0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC,\n\t0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03,\n\t0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F,\n\t// Bytes 3480 - 34bf\n\t0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC,\n\t0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03,\n\t0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87,\n\t0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC,\n\t// Bytes 34c0 - 34ff\n\t0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80,\n\t0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75,\n\t0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9,\n\t0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC,\n\t0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F,\n\t0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75,\n\t// Bytes 3500 - 353f\n\t0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5,\n\t0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77,\n\t0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9,\n\t0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC,\n\t0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03,\n\t// Bytes 3540 - 357f\n\t0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87,\n\t0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9,\n\t0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC,\n\t0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03,\n\t0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88,\n\t0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79,\n\t0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3580 - 35bf\n\t0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC,\n\t0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2,\n\t0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC,\n\t0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA,\n\t0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3,\n\t0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC,\n\t// Bytes 35c0 - 35ff\n\t0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9,\n\t0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3,\n\t0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC,\n\t0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9,\n\t0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE,\n\t0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC,\n\t0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t// Bytes 3600 - 363f\n\t0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD,\n\t0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9,\n\t0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE,\n\t0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC,\n\t0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9,\n\t// Bytes 3640 - 367f\n\t0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC,\n\t0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD,\n\t// Bytes 3680 - 36bf\n\t0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t// Bytes 36c0 - 36ff\n\t0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF,\n\t0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF,\n\t0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD,\n\t0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9,\n\t// Bytes 3700 - 373f\n\t0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF,\n\t0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC,\n\t0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC,\n\t// Bytes 3740 - 377f\n\t0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0,\n\t0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC,\n\t0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0,\n\t0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC,\n\t0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t// Bytes 3780 - 37bf\n\t0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9,\n\t0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0,\n\t0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9,\n\t// Bytes 37c0 - 37ff\n\t0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC,\n\t0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1,\n\t0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC,\n\t// Bytes 3800 - 383f\n\t0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9,\n\t0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1,\n\t0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1,\n\t0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3,\n\t// Bytes 3840 - 387f\n\t0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9,\n\t0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9,\n\t0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC,\n\t// Bytes 3880 - 38bf\n\t0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA,\n\t0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05,\n\t0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87,\n\t0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC,\n\t0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81,\n\t// Bytes 38c0 - 38ff\n\t0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05,\n\t0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45,\n\t0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC,\n\t0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82,\n\t0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t// Bytes 3900 - 393f\n\t0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC,\n\t0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3940 - 397f\n\t0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84,\n\t0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC,\n\t0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t// Bytes 3980 - 39bf\n\t0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC,\n\t0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA,\n\t0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05,\n\t0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55,\n\t0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC,\n\t// Bytes 39c0 - 39ff\n\t0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA,\n\t0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,\n\t0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55,\n\t0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t// Bytes 3a00 - 3a3f\n\t0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61,\n\t0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC,\n\t// Bytes 3a40 - 3a7f\n\t0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA,\n\t0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63,\n\t0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC,\n\t0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82,\n\t0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC,\n\t0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89,\n\t// Bytes 3a80 - 3abf\n\t0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65,\n\t0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3,\n\t0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t// Bytes 3ac0 - 3aff\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84,\n\t0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC,\n\t0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,\n\t// Bytes 3b00 - 3b3f\n\t0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC,\n\t0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84,\n\t0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05,\n\t0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73,\n\t// Bytes 3b40 - 3b7f\n\t0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84,\n\t0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC,\n\t0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05,\n\t0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75,\n\t0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC,\n\t// Bytes 3b80 - 3bbf\n\t0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80,\n\t0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA,\n\t0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05,\n\t0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF,\n\t0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90,\n\t// Bytes 3bc0 - 3bff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,\n\t0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC,\n\t// Bytes 3c00 - 3c3f\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8,\n\t// Bytes 3c40 - 3c7f\n\t0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05,\n\t// Bytes 3c80 - 3cbf\n\t0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3cc0 - 3cff\n\t0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5,\n\t0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,\n\t// Bytes 3d00 - 3d3f\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t// Bytes 3d40 - 3d7f\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t// Bytes 3d80 - 3dbf\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,\n\t// Bytes 3dc0 - 3dff\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82,\n\t// Bytes 3e00 - 3e3f\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t// Bytes 3e40 - 3e7f\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t// Bytes 3e80 - 3ebf\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81,\n\t// Bytes 3ec0 - 3eff\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0,\n\t0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0,\n\t// Bytes 3f00 - 3f3f\n\t0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3,\n\t// Bytes 3f40 - 3f7f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3,\n\t// Bytes 3f80 - 3fbf\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,\n\t// Bytes 3fc0 - 3fff\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3,\n\t// Bytes 4000 - 403f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3,\n\t// Bytes 4040 - 407f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,\n\t// Bytes 4080 - 40bf\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3,\n\t// Bytes 40c0 - 40ff\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94,\n\t// Bytes 4100 - 413f\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t// Bytes 4140 - 417f\n\t0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,\n\t// Bytes 4180 - 41bf\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 41c0 - 41ff\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t// Bytes 4200 - 423f\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99,\n\t// Bytes 4240 - 427f\n\t0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91,\n\t0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08,\n\t0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA,\n\t0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC,\n\t0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43,\n\t0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85,\n\t0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20,\n\t0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9,\n\t// Bytes 4280 - 42bf\n\t0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC,\n\t0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43,\n\t0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7,\n\t0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20,\n\t0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9,\n\t0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9,\n\t0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43,\n\t0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E,\n\t// Bytes 42c0 - 42ff\n\t0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20,\n\t0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71,\n\t0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC,\n\t0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44,\n\t0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81,\n\t0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97,\n\t// Bytes 4300 - 433f\n\t0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5,\n\t0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7,\n\t0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44,\n\t// Bytes 4340 - 437f\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89,\n\t0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7,\n\t0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44,\n\t0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF,\n\t0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9,\n\t// Bytes 4380 - 43bf\n\t0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4,\n\t0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF,\n\t0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0,\n\t// Bytes 43c0 - 43ff\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC,\n\t0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4,\n\t0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC,\n\t0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81,\n\t0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44,\n\t// Bytes 4400 - 443f\n\t0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2,\n\t0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B,\n\t0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0,\n\t0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44,\n\t0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80,\n\t0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F,\n\t// Bytes 4440 - 447f\n\t0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44,\n\t0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80,\n\t0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0,\n\t0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44,\n\t0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94,\n\t0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45,\n\t0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20,\n\t// Bytes 4480 - 44bf\n\t0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC,\n\t0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9,\n\t// Bytes 44c0 - 44ff\n\t0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E,\n\t0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91,\n\t0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A,\n\t0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,\n\t0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46,\n\t// Bytes 4500 - 453f\n\t0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46,\n\t0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46,\n\t0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46,\n\t0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46,\n\t0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46,\n\t0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46,\n\t0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48,\n\t0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D,\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49,\n\t0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t// Bytes 4600 - 463f\n\t0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,\n\t0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t// Bytes 4640 - 467f\n\t0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D,\n\t// Bytes 4680 - 46bf\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9,\n\t0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC,\n\t0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83,\n\t0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45,\n\t0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9,\n\t0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC,\n\t// Bytes 46c0 - 46ff\n\t0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83,\n\t0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82,\n\t0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53,\n\t// Bytes 4700 - 473f\n\t0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5,\n\t0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC,\n\t0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83,\n\t0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82,\n\t0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61,\n\t0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9,\n\t0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 4740 - 477f\n\t0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84,\n\t0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9,\n\t0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5,\n\t// Bytes 4780 - 47bf\n\t0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83,\n\t0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75,\n\t0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9,\n\t0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84,\n\t// Bytes 47c0 - 47ff\n\t0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80,\n\t// Bytes 4800 - 483f\n\t0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82,\n\t0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,\n\t// Bytes 4840 - 487f\n\t0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84,\n\t0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80,\n\t0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84,\n\t// Bytes 4880 - 48bf\n\t0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82,\n\t0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 48c0 - 48ff\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,\n\t// Bytes 4900 - 493f\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 4940 - 497f\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 4980 - 49bf\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC,\n\t0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32,\n\t// Bytes 49c0 - 49ff\n\t0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB,\n\t// Bytes 4a00 - 4a3f\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1,\n\t// Bytes 4a40 - 4a7f\n\t0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4a80 - 4abf\n\t0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26,\n\t0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2,\n\t0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,\n\t0x9E, 0x26, 0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,\n\t0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,\n\t0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,\n\t0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,\n\t0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,\n\t0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,\n\t0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,\n\t0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,\n\t0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,\n\t0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,\n\t0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,\n\t0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,\n\t0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,\n\t0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,\n\t0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,\n\t0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,\n\t0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,\n\t0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,\n\t0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3,\n\t0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,\n\t0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,\n\t0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422,\n\t0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,\n\t0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,\n\t0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,\n\t0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,\n\t0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,\n\t0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,\n\t0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,\n\t0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,\n\t0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,\n\t0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,\n\t0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,\n\t0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,\n\t0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,\n\t0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,\n\t0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337,\n\t0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,\n\t0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,\n\t0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,\n\t0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,\n\t0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,\n\t0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,\n\t0x1de: 0x305d, 0x1df: 0x3369,\n\t0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,\n\t0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,\n\t0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a4,\n\t0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,\n\t0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,\n\t0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e,\n\t0x2c6: 0xa000, 0x2c7: 0x370c,\n\t0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3736, 0x302: 0x37ba,\n\t0x310: 0x3712, 0x311: 0x3796,\n\t0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0,\n\t0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2,\n\t0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0,\n\t0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808,\n\t0x338: 0x378a, 0x339: 0x380e,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,\n\t0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,\n\t0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,\n\t0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,\n\t0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,\n\t0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000,\n\t0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000,\n\t0x412: 0x2d51,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d59,\n\t0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,\n\t0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,\n\t0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,\n\t0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,\n\t0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,\n\t0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,\n\t0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,\n\t0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,\n\t0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,\n\t0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,\n\t0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5,\n\t0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3,\n\t0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2,\n\t0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88,\n\t0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96,\n\t0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f,\n\t0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373,\n\t0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d,\n\t0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1,\n\t0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa,\n\t0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d,\n\t0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431,\n\t0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc,\n\t0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468,\n\t0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29,\n\t0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794,\n\t0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e,\n\t0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7,\n\t0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512,\n\t0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c,\n\t0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535,\n\t0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544,\n\t0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585,\n\t0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9,\n\t0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4,\n\t0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292,\n\t0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18,\n\t0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26,\n\t0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d,\n\t0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f,\n\t0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73,\n\t0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4,\n\t0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2,\n\t0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9,\n\t0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8,\n\t0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14,\n\t0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76,\n\t0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d,\n\t0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b,\n\t0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941,\n\t0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9,\n\t0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f,\n\t0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3,\n\t0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03,\n\t0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969,\n\t0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb,\n\t0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9,\n\t0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b,\n\t0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33,\n\t0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63,\n\t0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b,\n\t0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d,\n\t0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab,\n\t0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73,\n\t0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999,\n\t0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5,\n\t0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919,\n\t0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d,\n\t0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f,\n\t0x5fc: 0x4873, 0x5fd: 0x4345,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af,\n\t0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1,\n\t0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3,\n\t0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5,\n\t0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137,\n\t0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d,\n\t0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b,\n\t0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d,\n\t0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b,\n\t0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1,\n\t0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3,\n\t0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd,\n\t0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2,\n\t0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13,\n\t0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7,\n\t0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef,\n\t0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e,\n\t0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081,\n\t0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb,\n\t0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b,\n\t0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000,\n\t0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d,\n\t0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000,\n\t0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000,\n\t0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000,\n\t0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63,\n\t0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b,\n\t0x72f: 0xa000,\n\t0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000,\n\t0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000,\n\t0x73c: 0x3fc3, 0x73d: 0x3fcb,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f03,\n\t0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fd3,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000,\n\t0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000,\n\t0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000,\n\t0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043,\n\t0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053,\n\t0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063,\n\t0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083,\n\t0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb,\n\t0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3,\n\t0x7bd: 0xa000, 0x7be: 0x40cb,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,\n\t0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,\n\t0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,\n\t0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,\n\t0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,\n\t0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,\n\t0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,\n\t0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,\n\t0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,\n\t0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,\n\t0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,\n\t0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,\n\t0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,\n\t0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,\n\t0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,\n\t0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,\n\t0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,\n\t0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,\n\t0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,\n\t0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,\n\t0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,\n\t0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,\n\t0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,\n\t0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,\n\t0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,\n\t0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,\n\t0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,\n\t0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,\n\t0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,\n\t0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,\n\t0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,\n\t0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,\n\t0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,\n\t0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,\n\t0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,\n\t0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,\n\t0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,\n\t0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,\n\t0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,\n\t0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,\n\t0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,\n\t0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,\n\t0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,\n\t0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,\n\t0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,\n\t0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,\n\t0x8e5: 0x1407, 0x8e6: 0x1433,\n\t0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,\n\t0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,\n\t0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,\n\t0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,\n\t0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,\n\t0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,\n\t0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,\n\t0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,\n\t0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,\n\t0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,\n\t0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,\n\t0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,\n\t0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,\n\t0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,\n\t0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,\n\t0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,\n\t0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,\n\t0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,\n\t0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,\n\t0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,\n\t0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,\n\t0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,\n\t0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,\n\t0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,\n\t0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,\n\t0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,\n\t0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,\n\t0x998: 0x1617, 0x999: 0x1627,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,\n\t0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,\n\t0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,\n\t0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,\n\t0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,\n\t0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,\n\t0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,\n\t0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,\n\t0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,\n\t0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,\n\t0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,\n\t0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,\n\t0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,\n\t0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,\n\t0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,\n\t0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,\n\t0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,\n\t0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,\n\t0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,\n\t0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,\n\t0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,\n\t0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,\n\t0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,\n\t0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,\n\t0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,\n\t0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,\n\t0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,\n\t0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,\n\t0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,\n\t0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,\n\t0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,\n\t0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,\n\t0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,\n\t0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,\n\t0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,\n\t0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,\n\t0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,\n\t0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,\n\t0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,\n\t0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,\n\t0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,\n\t0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,\n\t0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,\n\t0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,\n\t0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,\n\t0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,\n\t0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,\n\t0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,\n\t0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,\n\t0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,\n\t0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,\n\t0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,\n\t0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,\n\t0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,\n\t0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,\n\t0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,\n\t0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,\n\t0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,\n\t0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,\n\t0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,\n\t0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,\n\t0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,\n\t0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,\n\t0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,\n\t0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,\n\t0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,\n\t0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,\n\t0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,\n\t0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,\n\t0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,\n\t0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,\n\t0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,\n\t0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,\n\t0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,\n\t0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,\n\t0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,\n\t0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,\n\t0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,\n\t0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,\n\t0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,\n\t0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,\n\t0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,\n\t0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,\n\t0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,\n\t0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t0x374: 0xa1,\n\t0x37d: 0xa2,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,\n\t0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,\n\t0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,\n\t0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,\n\t0x3a0: 0xb2, 0x3a7: 0xb3,\n\t0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6,\n\t0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb9, 0x3ec: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xbb,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe,\n\t0x449: 0xbf,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc0, 0x484: 0xba,\n\t0x48b: 0xc1,\n\t0x4a3: 0xc2, 0x4a5: 0xc3,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc4,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 151 entries, 302 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af}\n\n// nfcSparseValues: 689 entries, 2756 bytes\nvar nfcSparseValues = [689]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e5, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4717, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4843, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4861, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36ca, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36e2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4879, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3700, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a8, lo: 0x90, hi: 0x90},\n\t{value: 0x37b4, lo: 0x91, hi: 0x91},\n\t{value: 0x37a2, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x381a, lo: 0x97, hi: 0x97},\n\t{value: 0x37e4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37cc, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f6, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3820, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3826, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3844, lo: 0xa2, hi: 0xa2},\n\t{value: 0x384a, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3856, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3850, lo: 0xa5, hi: 0xa5},\n\t{value: 0x385c, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386e, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3862, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3868, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3edb, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee3, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eeb, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451f, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ca1, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455f, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4597, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459f, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4577, lo: 0x99, hi: 0x9b},\n\t{value: 0x458f, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb9, lo: 0x88, hi: 0x88},\n\t{value: 0x2cb1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cc1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45af, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc9, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cd1, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ce1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef3, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce9, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cf1, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf9, lo: 0x88, hi: 0x88},\n\t{value: 0x2f53, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ddb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d01, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d11, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d09, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6be7, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3efb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f5b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de6, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d19, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xd0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2647, lo: 0x83, hi: 0x83},\n\t{value: 0x264e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2655, lo: 0x92, hi: 0x92},\n\t{value: 0x265c, lo: 0x97, hi: 0x97},\n\t{value: 0x2663, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2640, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a87, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a90, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b7, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bf, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a99, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x2671, lo: 0x93, hi: 0x93},\n\t{value: 0x2678, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2686, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268d, lo: 0xac, hi: 0xac},\n\t{value: 0x266a, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d21, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfe\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x108\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x110\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x113\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x116\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x11f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d69, lo: 0x80, hi: 0x80},\n\t{value: 0x2d71, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d79, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x128\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x12a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x12d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x12f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x13a\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3c, offset 0x13e\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3d, offset 0x14c\n\t{value: 0x427e, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3e, offset 0x14f\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bbc, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bca, lo: 0xae, hi: 0xae},\n\t// Block 0x3f, offset 0x155\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bd1, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd8, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x40, offset 0x15b\n\t{value: 0x6405, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be6, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bed, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf4, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bfb, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3c02, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x41, offset 0x166\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c6b, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c95, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbf, lo: 0xaa, hi: 0xad},\n\t// Block 0x42, offset 0x16a\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x43, offset 0x16c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44e0, lo: 0x9c, hi: 0x9c},\n\t// Block 0x44, offset 0x16e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x45, offset 0x170\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x46, offset 0x172\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x47, offset 0x174\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x48, offset 0x17a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4aa2, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4aa2, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4aa2, lo: 0xba, hi: 0xbf},\n\t// Block 0x49, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4aa2, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4a, offset 0x180\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4b, offset 0x182\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4c, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4d, offset 0x18e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4e, offset 0x191\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x4f, offset 0x193\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x50, offset 0x195\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x51, offset 0x197\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x52, offset 0x19a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x53, offset 0x19c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x54, offset 0x19e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x55, offset 0x1a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x56, offset 0x1a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x57, offset 0x1a8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x58, offset 0x1ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x59, offset 0x1ad\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5a, offset 0x1b4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5b, offset 0x1ba\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5e, offset 0x1ce\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x60, offset 0x1da\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x61, offset 0x1de\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4393, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4405, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f3, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f7, lo: 0xac, hi: 0xac},\n\t{value: 0x44ff, lo: 0xad, hi: 0xad},\n\t{value: 0x434b, lo: 0xae, hi: 0xb1},\n\t{value: 0x4369, lo: 0xb2, hi: 0xb4},\n\t{value: 0x4381, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438d, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4399, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43b1, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x62, offset 0x1ec\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43bd, lo: 0x80, hi: 0x81},\n\t{value: 0x43c9, lo: 0x83, hi: 0x84},\n\t{value: 0x43db, lo: 0x86, hi: 0x89},\n\t{value: 0x43ff, lo: 0x8a, hi: 0x8a},\n\t{value: 0x437b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4363, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43ab, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d5, lo: 0x8e, hi: 0x8e},\n\t// Block 0x63, offset 0x1f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x64, offset 0x1f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x65, offset 0x1fb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x66, offset 0x1fd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x67, offset 0x200\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x68, offset 0x202\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x69, offset 0x206\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6a, offset 0x20b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6b, offset 0x20d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6c, offset 0x20f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4aa2, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4aa2, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4aa2, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4aa2, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6d, offset 0x214\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4aa2, lo: 0x82, hi: 0x87},\n\t{value: 0x4aa2, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4aa2, lo: 0x92, hi: 0x97},\n\t{value: 0x4aa2, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6e, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6f, offset 0x21c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x70, offset 0x21e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x71, offset 0x220\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x226\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x73, offset 0x229\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x74, offset 0x22b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x231\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x234\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x423b, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4245, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424f, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x23c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d81, lo: 0xae, hi: 0xae},\n\t{value: 0x2d8b, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x243\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x246\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x249\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x24b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7c, offset 0x24e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d95, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7d, offset 0x256\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7e, offset 0x25a\n\t{value: 0x6b57, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da9, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dbd, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7f, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x80, offset 0x264\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc7, lo: 0xba, hi: 0xba},\n\t{value: 0x2dd1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x26a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x82, offset 0x26c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x83, offset 0x26f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x84, offset 0x271\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x85, offset 0x274\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t// Block 0x86, offset 0x276\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x87, offset 0x278\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x88, offset 0x27a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x89, offset 0x27c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x8a, offset 0x27f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x8b, offset 0x281\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8c, offset 0x283\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8d, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8e, offset 0x287\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cf, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d9, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460d, lo: 0xa0, hi: 0xa0},\n\t{value: 0x461b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4629, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4637, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4645, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8f, offset 0x294\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ed, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4653, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466f, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4661, lo: 0xbf, hi: 0xbf},\n\t// Block 0x90, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467d, lo: 0x80, hi: 0x80},\n\t// Block 0x91, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x92, offset 0x2a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x93, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xac, hi: 0xaf},\n\t// Block 0x94, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x95, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x96, offset 0x2af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,\n\t0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,\n\t0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,\n\t0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,\n\t0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,\n\t0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,\n\t0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,\n\t0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,\n\t0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,\n\t0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,\n\t0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,\n\t0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,\n\t0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,\n\t0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,\n\t0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,\n\t0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,\n\t0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,\n\t0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,\n\t0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3,\n\t0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,\n\t0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,\n\t0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f,\n\t0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,\n\t0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,\n\t0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,\n\t0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,\n\t0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,\n\t0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,\n\t0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,\n\t0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,\n\t0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2df1, 0x185: 0x2df7,\n\t0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d,\n\t0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,\n\t0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,\n\t0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,\n\t0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,\n\t0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,\n\t0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,\n\t0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337,\n\t0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,\n\t0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,\n\t0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,\n\t0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,\n\t0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,\n\t0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,\n\t0x1de: 0x305d, 0x1df: 0x3369,\n\t0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,\n\t0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,\n\t0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a8,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425d, 0x285: 0x447e,\n\t0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,\n\t0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,\n\t0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861,\n\t0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e,\n\t0x306: 0xa000, 0x307: 0x370c,\n\t0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3736, 0x342: 0x37ba,\n\t0x350: 0x3712, 0x351: 0x3796,\n\t0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0,\n\t0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2,\n\t0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0,\n\t0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808,\n\t0x378: 0x378a, 0x379: 0x380e,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d64,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d87,\n\t0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,\n\t0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000,\n\t0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000,\n\t0x452: 0x2d51,\n\t0x474: 0x8102, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d59,\n\t0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,\n\t0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,\n\t0x4aa: 0x01fd,\n\t0x4b8: 0x020c,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,\n\t0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,\n\t0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,\n\t0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,\n\t0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,\n\t0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,\n\t0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,\n\t0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,\n\t0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,\n\t0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,\n\t0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,\n\t0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5,\n\t0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3,\n\t0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2,\n\t0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88,\n\t0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96,\n\t0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f,\n\t0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373,\n\t0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d,\n\t0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1,\n\t0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa,\n\t0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d,\n\t0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431,\n\t0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc,\n\t0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468,\n\t0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29,\n\t0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794,\n\t0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e,\n\t0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7,\n\t0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512,\n\t0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c,\n\t0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535,\n\t0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544,\n\t0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585,\n\t0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9,\n\t0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da,\n\t0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292,\n\t0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18,\n\t0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26,\n\t0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d,\n\t0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f,\n\t0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73,\n\t0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4,\n\t0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2,\n\t0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9,\n\t0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8,\n\t0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14,\n\t0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76,\n\t0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d,\n\t0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b,\n\t0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941,\n\t0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9,\n\t0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f,\n\t0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3,\n\t0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03,\n\t0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969,\n\t0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb,\n\t0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9,\n\t0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b,\n\t0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33,\n\t0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63,\n\t0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b,\n\t0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d,\n\t0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab,\n\t0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73,\n\t0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999,\n\t0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5,\n\t0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919,\n\t0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d,\n\t0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f,\n\t0x6bc: 0x4873, 0x6bd: 0x4345,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af,\n\t0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1,\n\t0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3,\n\t0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5,\n\t0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137,\n\t0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d,\n\t0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b,\n\t0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d,\n\t0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b,\n\t0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1,\n\t0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3,\n\t0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd,\n\t0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2,\n\t0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13,\n\t0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1,\n\t0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef,\n\t0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e,\n\t0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081,\n\t0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb,\n\t0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b,\n\t0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb,\n\t0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab,\n\t0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,\n\t0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b,\n\t0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0463, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x2231, 0x791: 0x223d,\n\t0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb,\n\t0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3,\n\t0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963,\n\t0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071,\n\t0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65,\n\t0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000,\n\t0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d,\n\t0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,\n\t0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,\n\t0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f,\n\t0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87,\n\t0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab,\n\t0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,\n\t0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63,\n\t0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b,\n\t0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb,\n\t0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13,\n\t0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b,\n\t0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43,\n\t0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,\n\t0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,\n\t0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,\n\t0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,\n\t0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,\n\t0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,\n\t0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,\n\t0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,\n\t0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,\n\t0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,\n\t0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,\n\t0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,\n\t0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,\n\t0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,\n\t0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,\n\t0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,\n\t0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,\n\t0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,\n\t0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,\n\t0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,\n\t0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,\n\t0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,\n\t0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,\n\t0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,\n\t0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,\n\t0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,\n\t0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,\n\t0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,\n\t0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,\n\t0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,\n\t0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000,\n\t0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000,\n\t0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000,\n\t0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63,\n\t0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000,\n\t0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000,\n\t0x9bc: 0x3fc3, 0x9bd: 0x3fcb,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f03,\n\t0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000,\n\t0x9de: 0x3fd3, 0x9df: 0x26b7,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000,\n\t0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000,\n\t0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000,\n\t0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043,\n\t0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053,\n\t0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063,\n\t0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083,\n\t0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb,\n\t0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3,\n\t0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,\n\t0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,\n\t0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc,\n\t0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0,\n\t0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14,\n\t0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38,\n\t0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,\n\t0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,\n\t0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,\n\t0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,\n\t0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,\n\t0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,\n\t0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,\n\t0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,\n\t0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,\n\t0xa9e: 0x098f, 0xa9f: 0x072f,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075,\n\t0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099,\n\t0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744,\n\t0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783,\n\t0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf,\n\t0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b,\n\t0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3,\n\t0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111,\n\t0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147,\n\t0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117,\n\t0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03,\n\t0xb06: 0x0ca7, 0xb07: 0x10c7,\n\t0xb10: 0x1bc7, 0xb11: 0x18a9,\n\t0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,\n\t0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,\n\t0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,\n\t0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,\n\t0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23,\n\t0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53,\n\t0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b,\n\t0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,\n\t0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,\n\t0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,\n\t0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,\n\t0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,\n\t0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,\n\t0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,\n\t0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,\n\t0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,\n\t0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,\n\t0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14,\n\t0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3,\n\t0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3,\n\t0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,\n\t0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,\n\t0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,\n\t0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,\n\t0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,\n\t0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,\n\t0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,\n\t0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d,\n\t0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5,\n\t0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9,\n\t0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f,\n\t0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9,\n\t0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd,\n\t0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb,\n\t0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54,\n\t0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923,\n\t0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09,\n\t0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f,\n\t0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93,\n\t0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9,\n\t0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987,\n\t0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a,\n\t0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7,\n\t0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5,\n\t0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d,\n\t0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a,\n\t0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704,\n\t0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969,\n\t0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38,\n\t0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f,\n\t0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc,\n\t0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3,\n\t0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43,\n\t0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999,\n\t0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0,\n\t0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b,\n\t0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e,\n\t0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0,\n\t0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e,\n\t0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11,\n\t0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993,\n\t0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7,\n\t0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1,\n\t0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189,\n\t0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3,\n\t0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b,\n\t0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291,\n\t0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,\n\t0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,\n\t0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,\n\t0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,\n\t0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,\n\t0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,\n\t0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,\n\t0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,\n\t0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,\n\t0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,\n\t0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,\n\t0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,\n\t0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,\n\t0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,\n\t0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,\n\t0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,\n\t0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,\n\t0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,\n\t0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,\n\t0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,\n\t0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,\n\t0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,\n\t0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,\n\t0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,\n\t0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,\n\t0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,\n\t0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,\n\t0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,\n\t0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,\n\t0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,\n\t0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,\n\t0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,\n\t0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,\n\t0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,\n\t0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,\n\t0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,\n\t0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,\n\t0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,\n\t0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,\n\t0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,\n\t0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,\n\t0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,\n\t0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,\n\t0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,\n\t0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,\n\t0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,\n\t0xde5: 0x1407, 0xde6: 0x1433,\n\t0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,\n\t0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,\n\t0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,\n\t0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,\n\t0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,\n\t0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,\n\t0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,\n\t0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,\n\t0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,\n\t0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,\n\t0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,\n\t0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,\n\t0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,\n\t0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,\n\t0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,\n\t0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,\n\t0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,\n\t0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,\n\t0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,\n\t0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,\n\t0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,\n\t0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,\n\t0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,\n\t0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,\n\t0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,\n\t0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,\n\t0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,\n\t0xe98: 0x1617, 0xe99: 0x1627,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62,\n\t0xec6: 0x1a62,\n\t0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73,\n\t0xedd: 0x4393,\n\t0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,\n\t0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,\n\t0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351,\n\t0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381,\n\t0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5,\n\t0xefc: 0x43b1, 0xefe: 0x43b7,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf,\n\t0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b,\n\t0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299,\n\t0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,\n\t0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,\n\t0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,\n\t0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,\n\t0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,\n\t0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,\n\t0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,\n\t0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,\n\t0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,\n\t0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,\n\t0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,\n\t0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,\n\t0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,\n\t0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,\n\t0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,\n\t0xf70: 0x446b, 0xf71: 0x446b,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,\n\t0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052,\n\t0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,\n\t0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,\n\t0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec,\n\t0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f,\n\t0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3,\n\t0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c,\n\t0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe,\n\t0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0,\n\t0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c,\n\t0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e,\n\t0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc,\n\t0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03,\n\t0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35,\n\t0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53,\n\t0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71,\n\t0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2,\n\t0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0,\n\t0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002,\n\t0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025,\n\t0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f,\n\t0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9,\n\t0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa,\n\t0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9,\n\t0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb,\n\t0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13,\n\t0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99,\n\t0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4,\n\t0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a,\n\t0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4,\n\t0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91,\n\t0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8,\n\t0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c,\n\t0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63,\n\t0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc,\n\t0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08,\n\t0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67,\n\t0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94,\n\t0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1,\n\t0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002,\n\t0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034,\n\t0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7,\n\t0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95,\n\t0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3,\n\t0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4,\n\t0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77,\n\t0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd,\n\t0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b,\n\t0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4,\n\t0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77,\n\t0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22,\n\t0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0,\n\t0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90,\n\t0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b,\n\t0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e,\n\t0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe,\n\t0x10fc: 0x440b, 0x10fd: 0x440b,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2314, 0x1111: 0x2329,\n\t0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a,\n\t0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7,\n\t0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8,\n\t0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df,\n\t0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433,\n\t0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f,\n\t0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472,\n\t0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2,\n\t0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521,\n\t0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f,\n\t0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b,\n\t0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f,\n\t0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368,\n\t0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409,\n\t0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591,\n\t0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd,\n\t0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa,\n\t0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e,\n\t0x1186: 0x23c3, 0x1187: 0x2559,\n\t0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd,\n\t0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff,\n\t0x11bc: 0x27d4,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,\n\t0x11d8: 0x04c3, 0x11d9: 0x1b5f,\n\t0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,\n\t0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,\n\t0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,\n\t0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,\n\t0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c,\n\t0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,\n\t0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7,\n\t0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441,\n\t0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459,\n\t0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465,\n\t0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,\n\t0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,\n\t0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,\n\t0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,\n\t0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,\n\t0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,\n\t0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,\n\t0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,\n\t0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,\n\t0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,\n\t0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,\n\t0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,\n\t0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,\n\t0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,\n\t0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,\n\t0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,\n\t0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03,\n\t0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85,\n\t0x12bc: 0x1f85,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,\n\t0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,\n\t0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,\n\t0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,\n\t0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,\n\t0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,\n\t0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,\n\t0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,\n\t0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,\n\t0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,\n\t0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e,\n\t0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,\n\t0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e,\n\t0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,\n\t0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,\n\t0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2,\n\t0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea,\n\t0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02,\n\t0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26,\n\t0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,\n\t0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,\n\t0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,\n\t0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,\n\t0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,\n\t0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,\n\t0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,\n\t0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x0248,\n\t0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,\n\t0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,\n\t0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,\n\t0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t0x147c: 0x0293, 0x147e: 0x02cc,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,\n\t0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,\n\t0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,\n\t0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,\n\t0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,\n\t0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,\n\t0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,\n\t0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,\n\t0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,\n\t0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,\n\t0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,\n\t0x14d0: 0x1a8f, 0x14d1: 0x1a93,\n\t0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab,\n\t0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3,\n\t0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb,\n\t0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3,\n\t0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503,\n\t0x1510: 0x0c0f, 0x1511: 0x0a47,\n\t0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,\n\t0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,\n\t0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,\n\t0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,\n\t0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,\n\t0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,\n\t0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,\n\t0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,\n\t0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,\n\t0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,\n\t0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,\n\t0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,\n\t0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,\n\t0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,\n\t0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,\n\t0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,\n\t0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,\n\t0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,\n\t0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,\n\t0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,\n\t0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,\n\t0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,\n\t0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,\n\t0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,\n\t0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,\n\t0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,\n\t0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,\n\t0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,\n\t0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,\n\t0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,\n\t0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,\n\t0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,\n\t0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,\n\t0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,\n\t0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,\n\t0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,\n\t0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,\n\t0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,\n\t0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,\n\t0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,\n\t0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,\n\t0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,\n\t0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,\n\t0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,\n\t0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,\n\t0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,\n\t0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,\n\t0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,\n\t0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,\n\t0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,\n\t0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,\n\t0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,\n\t0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,\n\t0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,\n\t0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,\n\t0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,\n\t0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,\n\t0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,\n\t0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,\n\t0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,\n\t0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,\n\t0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,\n\t0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,\n\t0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,\n\t0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,\n\t0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,\n\t0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,\n\t0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,\n\t0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,\n\t0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,\n\t0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,\n\t0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,\n\t0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,\n\t0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,\n\t0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,\n\t0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,\n\t0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,\n\t0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,\n\t0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,\n\t0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,\n\t0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,\n\t0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,\n\t0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,\n\t0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,\n\t0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,\n\t0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,\n\t0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,\n\t0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,\n\t0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,\n\t0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,\n\t0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t0x374: 0xcb,\n\t0x37d: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,\n\t0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,\n\t0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,\n\t0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,\n\t0x3a0: 0xdd, 0x3a7: 0xde,\n\t0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1,\n\t0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe4, 0x3ec: 0xe5,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe6,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9,\n\t0x449: 0xea,\n\t0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2,\n\t0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf9, 0x484: 0xe5,\n\t0x48b: 0xfa,\n\t0x4a3: 0xfb, 0x4a5: 0xfc,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe,\n\t0x4c8: 0x52, 0x4c9: 0xff,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 164 entries, 328 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363}\n\n// nfkcSparseValues: 877 entries, 3508 bytes\nvar nfkcSparseValues = [877]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x427b, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4267, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4294, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2213, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b5, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e5, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4717, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x4271, lo: 0x98, hi: 0x98},\n\t{value: 0x4276, lo: 0x99, hi: 0x9a},\n\t{value: 0x4299, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4262, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4285, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a8, lo: 0x90, hi: 0x90},\n\t{value: 0x37b4, lo: 0x91, hi: 0x91},\n\t{value: 0x37a2, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x381a, lo: 0x97, hi: 0x97},\n\t{value: 0x37e4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37cc, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f6, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3820, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3826, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3844, lo: 0xa2, hi: 0xa2},\n\t{value: 0x384a, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3856, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3850, lo: 0xa5, hi: 0xa5},\n\t{value: 0x385c, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386e, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3862, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3868, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3edb, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee3, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eeb, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451f, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ca1, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455f, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4597, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459f, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4577, lo: 0x99, hi: 0x9b},\n\t{value: 0x458f, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb9, lo: 0x88, hi: 0x88},\n\t{value: 0x2cb1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cc1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45af, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc9, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cd1, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ce1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef3, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce9, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cf1, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf9, lo: 0x88, hi: 0x88},\n\t{value: 0x2f53, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ddb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d01, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d11, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d09, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6be7, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3efb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f5b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de6, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d19, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2624, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2639, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xdf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x262b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2632, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2647, lo: 0x83, hi: 0x83},\n\t{value: 0x264e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2655, lo: 0x92, hi: 0x92},\n\t{value: 0x265c, lo: 0x97, hi: 0x97},\n\t{value: 0x2663, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2640, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a87, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a90, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b7, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f7, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bf, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4602, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xfa\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a99, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x2671, lo: 0x93, hi: 0x93},\n\t{value: 0x2678, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2686, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268d, lo: 0xac, hi: 0xac},\n\t{value: 0x266a, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x108\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d21, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x116\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x118\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x11a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x124\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x127\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x12a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x133\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d69, lo: 0x80, hi: 0x80},\n\t{value: 0x2d71, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d79, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x13c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x13e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x141\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x143\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x14e\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x159\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429e, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5f, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2694, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2801, lo: 0xb4, hi: 0xb4},\n\t{value: 0x269b, lo: 0xb6, hi: 0xb6},\n\t{value: 0x280b, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x426c, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x167\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x2991, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x175\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x199c, lo: 0xa8, hi: 0xa8},\n\t// Block 0x3f, offset 0x185\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x40, offset 0x193\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2183, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bbc, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bca, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x19a\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bd1, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd8, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x1a0\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be6, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bed, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf4, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bfb, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3c02, lo: 0xa6, hi: 0xa6},\n\t{value: 0x26a2, lo: 0xac, hi: 0xad},\n\t{value: 0x26a9, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281f, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x1af\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c6b, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c95, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbf, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x1b3\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x1b5\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x46, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299e, lo: 0x8c, hi: 0x8c},\n\t// Block 0x47, offset 0x1bb\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1b8f, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x48, offset 0x1be\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44e0, lo: 0x9c, hi: 0x9c},\n\t// Block 0x49, offset 0x1c0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4a, offset 0x1c3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4b, offset 0x1c5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4c, offset 0x1c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4d, offset 0x1ca\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4e, offset 0x1cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x4f, offset 0x1ce\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x50, offset 0x1da\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x51, offset 0x1e4\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3e, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a44, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a50, lo: 0xba, hi: 0xbf},\n\t// Block 0x52, offset 0x1ee\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x54, offset 0x1f5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x55, offset 0x1f7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x56, offset 0x1f9\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x57, offset 0x1fb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x58, offset 0x1fd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x59, offset 0x200\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5a, offset 0x202\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5b, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5c, offset 0x206\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5d, offset 0x208\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5e, offset 0x20e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5f, offset 0x211\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x60, offset 0x215\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x61, offset 0x217\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x62, offset 0x21e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x63, offset 0x224\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x64, offset 0x22a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x65, offset 0x232\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x66, offset 0x238\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x67, offset 0x23e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x68, offset 0x244\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x69, offset 0x248\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6a, offset 0x24a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6b, offset 0x24c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6c, offset 0x24e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6d, offset 0x250\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6e, offset 0x256\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x6f, offset 0x259\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x70, offset 0x25b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x71, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x264\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x423b, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4245, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424f, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x26c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d81, lo: 0xae, hi: 0xae},\n\t{value: 0x2d8b, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x273\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x276\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x279\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x27b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x78, offset 0x27e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d95, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x79, offset 0x286\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7a, offset 0x28a\n\t{value: 0x6b57, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da9, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dbd, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7b, offset 0x291\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7c, offset 0x294\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc7, lo: 0xba, hi: 0xba},\n\t{value: 0x2dd1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x29a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7e, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x29e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x80, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x81, offset 0x2a3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x82, offset 0x2a6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t// Block 0x83, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x84, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x85, offset 0x2ac\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x86, offset 0x2ae\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x87, offset 0x2b1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x88, offset 0x2b3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x89, offset 0x2b5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8a, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8b, offset 0x2b9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cf, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d9, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460d, lo: 0xa0, hi: 0xa0},\n\t{value: 0x461b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4629, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4637, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4645, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8c, offset 0x2c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ed, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4653, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466f, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4661, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8d, offset 0x2d0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467d, lo: 0x80, hi: 0x80},\n\t// Block 0x8e, offset 0x2d2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8f, offset 0x2d4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x90, offset 0x2d8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x91, offset 0x2dd\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x92, offset 0x2e9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x93, offset 0x2ee\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x94, offset 0x2f7\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x95, offset 0x2fd\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x96, offset 0x302\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x97, offset 0x306\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x98, offset 0x30b\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x30f\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9a, offset 0x31f\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x9b, offset 0x32d\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x33b\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9d, offset 0x349\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9e, offset 0x34f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xac, hi: 0xaf},\n\t// Block 0x9f, offset 0x351\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0xa0, offset 0x353\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa1, offset 0x356\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1984, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a5, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc3, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19b1, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t{value: 0x1981, lo: 0xac, hi: 0xac},\n\t// Block 0xa2, offset 0x361\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0xa3, offset 0x363\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2865, lo: 0x80, hi: 0x80},\n\t{value: 0x2829, lo: 0x81, hi: 0x81},\n\t{value: 0x2833, lo: 0x82, hi: 0x82},\n\t{value: 0x2847, lo: 0x83, hi: 0x84},\n\t{value: 0x2851, lo: 0x85, hi: 0x86},\n\t{value: 0x283d, lo: 0x87, hi: 0x87},\n\t{value: 0x285b, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 55KB (55977 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"13.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [56]uint8{\n\t0, 1, 6, 7, 8, 9, 10, 11,\n\t12, 13, 14, 15, 16, 17, 18, 19,\n\t20, 21, 22, 23, 24, 25, 26, 27,\n\t28, 29, 30, 31, 32, 33, 34, 35,\n\t36, 84, 91, 103, 107, 118, 122, 129,\n\t130, 132, 202, 214, 216, 218, 220, 222,\n\t224, 226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x1870\n\tfirstCCC              = 0x2CAB\n\tendMulti              = 0x2F77\n\tfirstLeadingCCC       = 0x49C5\n\tfirstCCCZeroExcept    = 0x4A8F\n\tfirstStarterWithNLead = 0x4AB6\n\tlastDecomp            = 0x4AB8\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19128 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x8D, 0x42, 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42,\n\t0xCA, 0x92, 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x9D,\n\t0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xB9, 0x42, 0xCE,\n\t0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, 0x96,\n\t0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, 0xCE,\n\t0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, 0x42,\n\t0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, 0x9E,\n\t0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, 0xCE,\n\t0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, 0x42,\n\t0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, 0xA7,\n\t0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, 0x42,\n\t0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, 0xB6,\n\t0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, 0xCE,\n\t0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, 0x42,\n\t0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, 0xBE,\n\t0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, 0xCF,\n\t0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, 0x42,\n\t0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, 0x86,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, 0xCF,\n\t0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, 0x42,\n\t0xD0, 0xBD, 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8C,\n\t0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7,\n\t0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42,\n\t0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D,\n\t0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7,\n\t0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA,\n\t0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8,\n\t0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42,\n\t0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2,\n\t0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8,\n\t0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42,\n\t0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA,\n\t0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42,\n\t0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88,\n\t0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9,\n\t0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42,\n\t0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB,\n\t0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA,\n\t0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42,\n\t0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA,\n\t0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42,\n\t0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6,\n\t0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA,\n\t0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42,\n\t0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE,\n\t0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB,\n\t0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C,\n\t0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0,\n\t0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1,\n\t0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1,\n\t0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1,\n\t0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1,\n\t0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1,\n\t0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1,\n\t// Bytes 340 - 37f\n\t0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1,\n\t0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1,\n\t0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1,\n\t0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1,\n\t0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1,\n\t0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1,\n\t0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1,\n\t0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1,\n\t// Bytes 380 - 3bf\n\t0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1,\n\t0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1,\n\t0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1,\n\t0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1,\n\t0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1,\n\t0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1,\n\t0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1,\n\t0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1,\n\t// Bytes 3c0 - 3ff\n\t0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1,\n\t0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1,\n\t0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1,\n\t0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1,\n\t0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1,\n\t0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1,\n\t0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1,\n\t0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1,\n\t// Bytes 400 - 43f\n\t0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1,\n\t0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1,\n\t0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1,\n\t0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1,\n\t0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1,\n\t0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1,\n\t0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2,\n\t0x80, 0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2,\n\t// Bytes 440 - 47f\n\t0x80, 0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2,\n\t0x80, 0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2,\n\t0x86, 0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2,\n\t0x86, 0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2,\n\t0x88, 0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2,\n\t0x88, 0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2,\n\t0x94, 0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2,\n\t0x97, 0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2,\n\t// Bytes 480 - 4bf\n\t0xA6, 0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,\n\t0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3,\n\t0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3,\n\t0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3,\n\t0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3,\n\t0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3,\n\t0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3,\n\t0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3,\n\t// Bytes 4c0 - 4ff\n\t0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3,\n\t0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3,\n\t0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3,\n\t0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3,\n\t0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3,\n\t0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3,\n\t0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3,\n\t0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3,\n\t// Bytes 500 - 53f\n\t0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3,\n\t0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3,\n\t0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3,\n\t0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3,\n\t0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3,\n\t0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3,\n\t0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3,\n\t0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3,\n\t// Bytes 540 - 57f\n\t0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3,\n\t0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3,\n\t0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3,\n\t0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3,\n\t0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3,\n\t0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3,\n\t0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3,\n\t0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3,\n\t// Bytes 580 - 5bf\n\t0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3,\n\t0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3,\n\t0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3,\n\t0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3,\n\t0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3,\n\t0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3,\n\t0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3,\n\t0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3,\n\t// Bytes 5c0 - 5ff\n\t0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3,\n\t0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3,\n\t0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3,\n\t0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3,\n\t0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3,\n\t0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3,\n\t0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3,\n\t0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3,\n\t// Bytes 600 - 63f\n\t0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3,\n\t0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3,\n\t0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3,\n\t0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3,\n\t0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3,\n\t0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4,\n\t0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4,\n\t0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4,\n\t// Bytes 640 - 67f\n\t0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4,\n\t0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4,\n\t0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4,\n\t0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4,\n\t0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4,\n\t0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4,\n\t0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4,\n\t0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4,\n\t// Bytes 680 - 6bf\n\t0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4,\n\t0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4,\n\t0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4,\n\t0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4,\n\t0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4,\n\t0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4,\n\t0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4,\n\t0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4,\n\t// Bytes 6c0 - 6ff\n\t0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4,\n\t0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4,\n\t0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4,\n\t0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4,\n\t0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4,\n\t0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4,\n\t0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4,\n\t0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4,\n\t// Bytes 700 - 73f\n\t0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4,\n\t0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4,\n\t0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4,\n\t0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4,\n\t0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4,\n\t0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4,\n\t0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4,\n\t0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4,\n\t// Bytes 740 - 77f\n\t0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4,\n\t0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4,\n\t0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4,\n\t0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4,\n\t0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5,\n\t0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5,\n\t0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5,\n\t0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5,\n\t// Bytes 780 - 7bf\n\t0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5,\n\t0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5,\n\t0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5,\n\t0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5,\n\t0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5,\n\t0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5,\n\t0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5,\n\t0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5,\n\t// Bytes 7c0 - 7ff\n\t0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5,\n\t0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5,\n\t0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5,\n\t0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5,\n\t0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5,\n\t0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5,\n\t0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5,\n\t0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5,\n\t// Bytes 800 - 83f\n\t0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5,\n\t0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5,\n\t0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5,\n\t0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5,\n\t0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5,\n\t0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5,\n\t0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5,\n\t0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5,\n\t// Bytes 840 - 87f\n\t0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5,\n\t0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5,\n\t0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5,\n\t0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5,\n\t0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5,\n\t0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5,\n\t0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5,\n\t0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5,\n\t// Bytes 880 - 8bf\n\t0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5,\n\t0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5,\n\t0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5,\n\t0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5,\n\t0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5,\n\t0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5,\n\t0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5,\n\t0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5,\n\t// Bytes 8c0 - 8ff\n\t0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5,\n\t0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5,\n\t0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5,\n\t0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5,\n\t0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5,\n\t0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5,\n\t0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5,\n\t0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5,\n\t// Bytes 900 - 93f\n\t0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5,\n\t0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5,\n\t0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5,\n\t0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5,\n\t0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5,\n\t0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5,\n\t0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5,\n\t0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5,\n\t// Bytes 940 - 97f\n\t0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5,\n\t0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5,\n\t0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5,\n\t0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5,\n\t0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5,\n\t0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5,\n\t0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5,\n\t0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5,\n\t// Bytes 980 - 9bf\n\t0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5,\n\t0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5,\n\t0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5,\n\t0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5,\n\t0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5,\n\t0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5,\n\t0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5,\n\t0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5,\n\t// Bytes 9c0 - 9ff\n\t0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5,\n\t0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5,\n\t0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5,\n\t0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5,\n\t0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5,\n\t0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5,\n\t0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5,\n\t0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5,\n\t// Bytes a00 - a3f\n\t0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5,\n\t0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5,\n\t0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5,\n\t0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5,\n\t0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5,\n\t0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5,\n\t0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5,\n\t0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5,\n\t// Bytes a40 - a7f\n\t0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5,\n\t0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5,\n\t0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5,\n\t0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5,\n\t0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5,\n\t0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5,\n\t0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5,\n\t0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5,\n\t// Bytes a80 - abf\n\t0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5,\n\t0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5,\n\t0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5,\n\t0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5,\n\t0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5,\n\t0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5,\n\t0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5,\n\t0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5,\n\t// Bytes ac0 - aff\n\t0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5,\n\t0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5,\n\t0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5,\n\t0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5,\n\t0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5,\n\t0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5,\n\t0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5,\n\t0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5,\n\t// Bytes b00 - b3f\n\t0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5,\n\t0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5,\n\t0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5,\n\t0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5,\n\t0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5,\n\t0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5,\n\t0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5,\n\t0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5,\n\t// Bytes b40 - b7f\n\t0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5,\n\t0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5,\n\t0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5,\n\t0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5,\n\t0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5,\n\t0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5,\n\t0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5,\n\t0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5,\n\t// Bytes b80 - bbf\n\t0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5,\n\t0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5,\n\t0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6,\n\t0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6,\n\t0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6,\n\t0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6,\n\t0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6,\n\t0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6,\n\t// Bytes bc0 - bff\n\t0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6,\n\t0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6,\n\t0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6,\n\t0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6,\n\t0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6,\n\t0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6,\n\t0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6,\n\t0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6,\n\t// Bytes c00 - c3f\n\t0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6,\n\t0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6,\n\t0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6,\n\t0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6,\n\t0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6,\n\t0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6,\n\t0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6,\n\t0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6,\n\t// Bytes c40 - c7f\n\t0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6,\n\t0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6,\n\t0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6,\n\t0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6,\n\t0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6,\n\t0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6,\n\t0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6,\n\t0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6,\n\t// Bytes c80 - cbf\n\t0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6,\n\t0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6,\n\t0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6,\n\t0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6,\n\t0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6,\n\t0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6,\n\t0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6,\n\t0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6,\n\t// Bytes cc0 - cff\n\t0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6,\n\t0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6,\n\t0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6,\n\t0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6,\n\t0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6,\n\t0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6,\n\t0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6,\n\t0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6,\n\t// Bytes d00 - d3f\n\t0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6,\n\t0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6,\n\t0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6,\n\t0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6,\n\t0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6,\n\t0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6,\n\t0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6,\n\t0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6,\n\t// Bytes d40 - d7f\n\t0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6,\n\t0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6,\n\t0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6,\n\t0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6,\n\t0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6,\n\t0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6,\n\t0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6,\n\t0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6,\n\t// Bytes d80 - dbf\n\t0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6,\n\t0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6,\n\t0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6,\n\t0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6,\n\t0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6,\n\t0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6,\n\t0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6,\n\t0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6,\n\t// Bytes dc0 - dff\n\t0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6,\n\t0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6,\n\t0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6,\n\t0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6,\n\t0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6,\n\t0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6,\n\t0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6,\n\t0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6,\n\t// Bytes e00 - e3f\n\t0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6,\n\t0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6,\n\t0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6,\n\t0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6,\n\t0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6,\n\t0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6,\n\t0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6,\n\t0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6,\n\t// Bytes e40 - e7f\n\t0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6,\n\t0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6,\n\t0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6,\n\t0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6,\n\t0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6,\n\t0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6,\n\t0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6,\n\t0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6,\n\t// Bytes e80 - ebf\n\t0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7,\n\t0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7,\n\t0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7,\n\t0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7,\n\t0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7,\n\t0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7,\n\t0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7,\n\t0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7,\n\t// Bytes ec0 - eff\n\t0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7,\n\t0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7,\n\t0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7,\n\t0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7,\n\t0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7,\n\t0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7,\n\t0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7,\n\t0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7,\n\t// Bytes f00 - f3f\n\t0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7,\n\t0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7,\n\t0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7,\n\t0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7,\n\t0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7,\n\t0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7,\n\t0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7,\n\t0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7,\n\t// Bytes f40 - f7f\n\t0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7,\n\t0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7,\n\t0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7,\n\t0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7,\n\t0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7,\n\t0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7,\n\t0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7,\n\t0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7,\n\t// Bytes f80 - fbf\n\t0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7,\n\t0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7,\n\t0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7,\n\t0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7,\n\t0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7,\n\t0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7,\n\t0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7,\n\t0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7,\n\t// Bytes fc0 - fff\n\t0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7,\n\t0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7,\n\t0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7,\n\t0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7,\n\t0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7,\n\t0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7,\n\t0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7,\n\t0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7,\n\t// Bytes 1000 - 103f\n\t0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7,\n\t0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7,\n\t0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7,\n\t0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7,\n\t0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7,\n\t0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7,\n\t0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7,\n\t0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7,\n\t// Bytes 1040 - 107f\n\t0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7,\n\t0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7,\n\t0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7,\n\t0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7,\n\t0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7,\n\t0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7,\n\t0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7,\n\t0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7,\n\t// Bytes 1080 - 10bf\n\t0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7,\n\t0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7,\n\t0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7,\n\t0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7,\n\t0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7,\n\t0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7,\n\t0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7,\n\t0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7,\n\t// Bytes 10c0 - 10ff\n\t0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7,\n\t0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7,\n\t0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7,\n\t0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7,\n\t0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7,\n\t0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7,\n\t0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7,\n\t0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7,\n\t// Bytes 1100 - 113f\n\t0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7,\n\t0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7,\n\t0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7,\n\t0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7,\n\t0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7,\n\t0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7,\n\t0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7,\n\t0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7,\n\t// Bytes 1140 - 117f\n\t0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7,\n\t0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7,\n\t0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7,\n\t0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7,\n\t0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7,\n\t0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7,\n\t0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7,\n\t0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8,\n\t// Bytes 1180 - 11bf\n\t0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8,\n\t0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8,\n\t0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8,\n\t0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8,\n\t0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8,\n\t0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8,\n\t0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8,\n\t0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8,\n\t// Bytes 11c0 - 11ff\n\t0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8,\n\t0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8,\n\t0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8,\n\t0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8,\n\t0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8,\n\t0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8,\n\t0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8,\n\t0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8,\n\t// Bytes 1200 - 123f\n\t0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8,\n\t0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8,\n\t0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8,\n\t0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8,\n\t0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8,\n\t0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8,\n\t0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8,\n\t0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8,\n\t// Bytes 1240 - 127f\n\t0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8,\n\t0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8,\n\t0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8,\n\t0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8,\n\t0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8,\n\t0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8,\n\t0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8,\n\t0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8,\n\t// Bytes 1280 - 12bf\n\t0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8,\n\t0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8,\n\t0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8,\n\t0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8,\n\t0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8,\n\t0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8,\n\t0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8,\n\t0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8,\n\t// Bytes 12c0 - 12ff\n\t0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8,\n\t0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8,\n\t0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8,\n\t0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8,\n\t0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8,\n\t0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8,\n\t0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8,\n\t0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8,\n\t// Bytes 1300 - 133f\n\t0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8,\n\t0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8,\n\t0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8,\n\t0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8,\n\t0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8,\n\t0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8,\n\t0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8,\n\t0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8,\n\t// Bytes 1340 - 137f\n\t0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8,\n\t0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8,\n\t0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8,\n\t0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8,\n\t0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8,\n\t0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8,\n\t0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8,\n\t0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8,\n\t// Bytes 1380 - 13bf\n\t0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8,\n\t0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8,\n\t0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8,\n\t0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8,\n\t0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8,\n\t0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8,\n\t0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8,\n\t0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8,\n\t// Bytes 13c0 - 13ff\n\t0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8,\n\t0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8,\n\t0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8,\n\t0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8,\n\t0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8,\n\t0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8,\n\t0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8,\n\t0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8,\n\t// Bytes 1400 - 143f\n\t0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9,\n\t0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9,\n\t0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9,\n\t0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9,\n\t0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9,\n\t0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9,\n\t0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9,\n\t0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9,\n\t// Bytes 1440 - 147f\n\t0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9,\n\t0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9,\n\t0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9,\n\t0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9,\n\t0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9,\n\t0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9,\n\t0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9,\n\t0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9,\n\t// Bytes 1480 - 14bf\n\t0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9,\n\t0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9,\n\t0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9,\n\t0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9,\n\t0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9,\n\t0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9,\n\t0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9,\n\t0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9,\n\t// Bytes 14c0 - 14ff\n\t0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9,\n\t0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9,\n\t0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9,\n\t0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9,\n\t0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9,\n\t0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9,\n\t0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9,\n\t0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9,\n\t// Bytes 1500 - 153f\n\t0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9,\n\t0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9,\n\t0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9,\n\t0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9,\n\t0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9,\n\t0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9,\n\t0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9,\n\t0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9,\n\t// Bytes 1540 - 157f\n\t0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9,\n\t0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9,\n\t0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9,\n\t0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9,\n\t0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9,\n\t0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9,\n\t0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9,\n\t0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9,\n\t// Bytes 1580 - 15bf\n\t0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9,\n\t0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9,\n\t0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9,\n\t0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9,\n\t0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9,\n\t0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9,\n\t0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9,\n\t0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9,\n\t// Bytes 15c0 - 15ff\n\t0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9,\n\t0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9,\n\t0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9,\n\t0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9,\n\t0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9,\n\t0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9,\n\t0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9,\n\t0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9,\n\t// Bytes 1600 - 163f\n\t0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9,\n\t0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9,\n\t0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9,\n\t0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9,\n\t0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9,\n\t0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9,\n\t0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9,\n\t0xBE, 0xA0, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,\n\t// Bytes 1640 - 167f\n\t0x9D, 0xAF, 0x43, 0xEA, 0xAC, 0xB7, 0x43, 0xEA,\n\t0xAD, 0x92, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44,\n\t0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94,\n\t0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0,\n\t0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84,\n\t0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0,\n\t0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44,\n\t0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A,\n\t// Bytes 1680 - 16bf\n\t0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0,\n\t0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98,\n\t0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1,\n\t0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44,\n\t0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86,\n\t0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0,\n\t0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2,\n\t// Bytes 16c0 - 16ff\n\t0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44,\n\t0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A,\n\t0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0,\n\t0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C,\n\t0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44,\n\t0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2,\n\t0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0,\n\t// Bytes 1700 - 173f\n\t0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC,\n\t0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3,\n\t0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44,\n\t0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89,\n\t0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0,\n\t0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88,\n\t0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4,\n\t0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44,\n\t// Bytes 1740 - 177f\n\t0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE,\n\t0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0,\n\t0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5,\n\t0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44,\n\t0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90,\n\t0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0,\n\t0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85,\n\t// Bytes 1780 - 17bf\n\t0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5,\n\t0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44,\n\t0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3,\n\t0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0,\n\t0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8,\n\t0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6,\n\t0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44,\n\t0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94,\n\t// Bytes 17c0 - 17ff\n\t0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0,\n\t0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5,\n\t0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6,\n\t0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44,\n\t0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC,\n\t0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0,\n\t0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A,\n\t0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7,\n\t// Bytes 1800 - 183f\n\t0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44,\n\t0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB,\n\t0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0,\n\t0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD,\n\t0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8,\n\t0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44,\n\t0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87,\n\t0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0,\n\t// Bytes 1840 - 187f\n\t0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96,\n\t0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9,\n\t0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44,\n\t0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88,\n\t0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0,\n\t0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80,\n\t0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E,\n\t0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30,\n\t0x42, 0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31,\n\t0x33, 0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42,\n\t0x31, 0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38,\n\t0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32,\n\t0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42,\n\t0x32, 0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34,\n\t0x42, 0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x37, 0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42,\n\t0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30,\n\t0x42, 0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33,\n\t0x33, 0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42,\n\t0x33, 0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38,\n\t0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34,\n\t0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42,\n\t0x34, 0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34,\n\t0x37, 0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42,\n\t0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30,\n\t0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37,\n\t0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42,\n\t0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E,\n\t0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F,\n\t0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42,\n\t// Bytes 1940 - 197f\n\t0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A,\n\t0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47,\n\t0x79, 0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42,\n\t0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49,\n\t0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49,\n\t0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42,\n\t0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A,\n\t0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, 0x52, 0x42,\n\t0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, 0x4E, 0x4A,\n\t0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, 0x42, 0x50,\n\t0x48, 0x42, 0x50, 0x52, 0x42, 0x50, 0x61, 0x42,\n\t0x52, 0x73, 0x42, 0x53, 0x44, 0x42, 0x53, 0x4D,\n\t0x42, 0x53, 0x53, 0x42, 0x53, 0x76, 0x42, 0x54,\n\t0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, 0x43, 0x42,\n\t0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, 0x58, 0x49,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x63, 0x42, 0x63, 0x64, 0x42, 0x63,\n\t0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, 0x61, 0x42,\n\t0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, 0x64, 0x7A,\n\t0x42, 0x65, 0x56, 0x42, 0x66, 0x66, 0x42, 0x66,\n\t0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, 0x6D, 0x42,\n\t0x68, 0x61, 0x42, 0x69, 0x69, 0x42, 0x69, 0x6A,\n\t0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, 0x42, 0x69,\n\t0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, 0x56, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, 0x6B, 0x6C,\n\t0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, 0x42, 0x6C,\n\t0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, 0x6E, 0x42,\n\t0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, 0x6D, 0x33,\n\t0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, 0x42, 0x6D,\n\t0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, 0x67, 0x42,\n\t0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, 0x6D, 0x73,\n\t0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, 0x6A, 0x42,\n\t0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, 0x6F, 0x56,\n\t0x42, 0x70, 0x41, 0x42, 0x70, 0x46, 0x42, 0x70,\n\t0x56, 0x42, 0x70, 0x57, 0x42, 0x70, 0x63, 0x42,\n\t0x70, 0x73, 0x42, 0x73, 0x72, 0x42, 0x73, 0x74,\n\t0x42, 0x76, 0x69, 0x42, 0x78, 0x69, 0x43, 0x28,\n\t0x31, 0x29, 0x43, 0x28, 0x32, 0x29, 0x43, 0x28,\n\t0x33, 0x29, 0x43, 0x28, 0x34, 0x29, 0x43, 0x28,\n\t// Bytes 1a80 - 1abf\n\t0x35, 0x29, 0x43, 0x28, 0x36, 0x29, 0x43, 0x28,\n\t0x37, 0x29, 0x43, 0x28, 0x38, 0x29, 0x43, 0x28,\n\t0x39, 0x29, 0x43, 0x28, 0x41, 0x29, 0x43, 0x28,\n\t0x42, 0x29, 0x43, 0x28, 0x43, 0x29, 0x43, 0x28,\n\t0x44, 0x29, 0x43, 0x28, 0x45, 0x29, 0x43, 0x28,\n\t0x46, 0x29, 0x43, 0x28, 0x47, 0x29, 0x43, 0x28,\n\t0x48, 0x29, 0x43, 0x28, 0x49, 0x29, 0x43, 0x28,\n\t0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, 0x43, 0x28,\n\t// Bytes 1ac0 - 1aff\n\t0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, 0x43, 0x28,\n\t0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, 0x43, 0x28,\n\t0x50, 0x29, 0x43, 0x28, 0x51, 0x29, 0x43, 0x28,\n\t0x52, 0x29, 0x43, 0x28, 0x53, 0x29, 0x43, 0x28,\n\t0x54, 0x29, 0x43, 0x28, 0x55, 0x29, 0x43, 0x28,\n\t0x56, 0x29, 0x43, 0x28, 0x57, 0x29, 0x43, 0x28,\n\t0x58, 0x29, 0x43, 0x28, 0x59, 0x29, 0x43, 0x28,\n\t0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, 0x43, 0x28,\n\t// Bytes 1b00 - 1b3f\n\t0x62, 0x29, 0x43, 0x28, 0x63, 0x29, 0x43, 0x28,\n\t0x64, 0x29, 0x43, 0x28, 0x65, 0x29, 0x43, 0x28,\n\t0x66, 0x29, 0x43, 0x28, 0x67, 0x29, 0x43, 0x28,\n\t0x68, 0x29, 0x43, 0x28, 0x69, 0x29, 0x43, 0x28,\n\t0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, 0x43, 0x28,\n\t0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, 0x43, 0x28,\n\t0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, 0x43, 0x28,\n\t0x70, 0x29, 0x43, 0x28, 0x71, 0x29, 0x43, 0x28,\n\t// Bytes 1b40 - 1b7f\n\t0x72, 0x29, 0x43, 0x28, 0x73, 0x29, 0x43, 0x28,\n\t0x74, 0x29, 0x43, 0x28, 0x75, 0x29, 0x43, 0x28,\n\t0x76, 0x29, 0x43, 0x28, 0x77, 0x29, 0x43, 0x28,\n\t0x78, 0x29, 0x43, 0x28, 0x79, 0x29, 0x43, 0x28,\n\t0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, 0x43, 0x31,\n\t0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, 0x43, 0x31,\n\t0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, 0x43, 0x31,\n\t0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, 0x43, 0x31,\n\t// Bytes 1b80 - 1bbf\n\t0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, 0x43, 0x31,\n\t0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, 0x43, 0x32,\n\t0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, 0x43, 0x3D,\n\t0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, 0x43, 0x46,\n\t0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, 0x43, 0x47,\n\t0x50, 0x61, 0x43, 0x49, 0x49, 0x49, 0x43, 0x4C,\n\t0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, 0x43, 0x4D,\n\t0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, 0x43, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, 0x43, 0x50,\n\t0x50, 0x56, 0x43, 0x50, 0x54, 0x45, 0x43, 0x54,\n\t0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, 0x43, 0x56,\n\t0x49, 0x49, 0x43, 0x58, 0x49, 0x49, 0x43, 0x61,\n\t0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, 0x43, 0x61,\n\t0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, 0x43, 0x63,\n\t0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, 0x43, 0x63,\n\t0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, 0x43, 0x63,\n\t// Bytes 1c00 - 1c3f\n\t0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, 0x43, 0x64,\n\t0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, 0x43, 0x66,\n\t0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, 0x43, 0x67,\n\t0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, 0x43, 0x69,\n\t0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, 0x43, 0x6B,\n\t0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, 0x43, 0x6B,\n\t0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, 0x43, 0x6C,\n\t0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, 0x43, 0x6D,\n\t// Bytes 1c40 - 1c7f\n\t0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, 0x43, 0x6D,\n\t0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, 0x43, 0x72,\n\t0x61, 0x64, 0x43, 0x76, 0x69, 0x69, 0x43, 0x78,\n\t0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, 0x43, 0xC2,\n\t0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, 0x43, 0xCE,\n\t0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, 0x43, 0xCE,\n\t0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, 0x43, 0xCE,\n\t0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, 0x43, 0xCE,\n\t// Bytes 1c80 - 1cbf\n\t0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, 0x44, 0x28,\n\t0x31, 0x30, 0x29, 0x44, 0x28, 0x31, 0x31, 0x29,\n\t0x44, 0x28, 0x31, 0x32, 0x29, 0x44, 0x28, 0x31,\n\t0x33, 0x29, 0x44, 0x28, 0x31, 0x34, 0x29, 0x44,\n\t0x28, 0x31, 0x35, 0x29, 0x44, 0x28, 0x31, 0x36,\n\t0x29, 0x44, 0x28, 0x31, 0x37, 0x29, 0x44, 0x28,\n\t0x31, 0x38, 0x29, 0x44, 0x28, 0x31, 0x39, 0x29,\n\t0x44, 0x28, 0x32, 0x30, 0x29, 0x44, 0x30, 0xE7,\n\t// Bytes 1cc0 - 1cff\n\t0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, 0x84, 0x44,\n\t0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, 0xE6, 0x9C,\n\t0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, 0x44, 0x32,\n\t0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, 0x9C, 0x88,\n\t0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, 0x33, 0xE6,\n\t0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, 0x88, 0x44,\n\t0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, 0xE6, 0x97,\n\t0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, 0x44, 0x34,\n\t// Bytes 1d00 - 1d3f\n\t0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, 0x97, 0xA5,\n\t0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, 0x35, 0xE7,\n\t0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, 0xA5, 0x44,\n\t0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, 0xE7, 0x82,\n\t0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, 0x44, 0x37,\n\t0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, 0x82, 0xB9,\n\t0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, 0x38, 0xE6,\n\t0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, 0xB9, 0x44,\n\t// Bytes 1d40 - 1d7f\n\t0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, 0xE6, 0x9C,\n\t0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, 0x44, 0x56,\n\t0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, 0x6D, 0x2E,\n\t0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, 0x70, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, 0x69, 0x44,\n\t0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, 0xB4, 0xD5,\n\t0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, 0xD5, 0xB6,\n\t// Bytes 1d80 - 1dbf\n\t0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, 0xD7, 0x90,\n\t0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, 0xB4, 0x44,\n\t0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, 0xA8, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, 0xD8, 0xB2,\n\t0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, 0xD8, 0xA8,\n\t0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, 0x87, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, 0xA8, 0xD9,\n\t// Bytes 1dc0 - 1dff\n\t0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, 0xD8, 0xAB,\n\t// Bytes 1e00 - 1e3f\n\t0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, 0x44, 0xD8,\n\t// Bytes 1e40 - 1e7f\n\t0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, 0x89, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, 0xD8, 0xB3,\n\t0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, 0x89, 0x44,\n\t// Bytes 1e80 - 1ebf\n\t0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, 0xD8, 0xB4,\n\t0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, 0xB5, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, 0xD9, 0x85,\n\t// Bytes 1ec0 - 1eff\n\t0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, 0xAC, 0x44,\n\t0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, 0x44, 0xD8,\n\t0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, 0xD9, 0x89,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, 0xD8, 0xB7,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, 0xB7, 0xD9,\n\t// Bytes 1f00 - 1f3f\n\t0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, 0x44, 0xD8,\n\t0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, 0xAC, 0x44,\n\t0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, 0xBA, 0xD9,\n\t0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, 0xD8, 0xAD,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, 0xD9, 0x81,\n\t// Bytes 1f40 - 1f7f\n\t0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, 0x89, 0x44,\n\t0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, 0x82, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, 0x44, 0xD9,\n\t0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, 0xD9, 0x83,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, 0x83, 0xD9,\n\t0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, 0x44, 0xD9,\n\t// Bytes 1f80 - 1fbf\n\t0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, 0xD9, 0x84,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, 0x84, 0xD9,\n\t0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, 0x44, 0xD9,\n\t0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, 0xD9, 0x85,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, 0xAD, 0x44,\n\t// Bytes 1fc0 - 1fff\n\t0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, 0x85, 0xD9,\n\t0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, 0x44, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, 0xB1, 0x44,\n\t0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, 0x86, 0xD9,\n\t0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, 0x44, 0xD9,\n\t0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, 0xD9, 0x89,\n\t// Bytes 2000 - 203f\n\t0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, 0xD9, 0x87,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, 0x85, 0x44,\n\t0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, 0x87, 0xD9,\n\t0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, 0x44, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, 0xD8, 0xAD,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, 0xB2, 0x44,\n\t0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, 0x8A, 0xD9,\n\t// Bytes 2040 - 207f\n\t0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, 0xDB, 0x87,\n\t0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, 0x80, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x86, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8C, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x91, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x89, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, 0xE4, 0xBA,\n\t0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, 0xA3, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, 0x45, 0x28,\n\t0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAD, 0x29,\n\t0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, 0xE5, 0x8D,\n\t// Bytes 2100 - 213f\n\t0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, 0x8D, 0x29,\n\t0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, 0x45, 0x28,\n\t0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, 0xE5, 0x9C,\n\t0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, 0xA6, 0x29,\n\t0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0xA8, 0x29,\n\t0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, 0xE7, 0x81,\n\t0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, 0xB9, 0x29,\n\t0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x45, 0x28,\n\t0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, 0xAD, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, 0x45, 0x28,\n\t0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, 0xE8, 0xB2,\n\t0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, 0x87, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x45, 0x30,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0x30, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, 0x9C, 0x88,\n\t0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x31, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x32, 0xE7,\n\t// Bytes 21c0 - 21ff\n\t0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x34, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x36, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x38, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x38,\n\t// Bytes 2240 - 227f\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, 0x45, 0x32,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x30, 0xE7,\n\t0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x32,\n\t0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x32, 0xE7,\n\t0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x32,\n\t0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x34, 0xE7,\n\t// Bytes 2280 - 22bf\n\t0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x38, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x32,\n\t0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0x30, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, 0x97, 0xA5,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x35,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x6D,\n\t0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, 0xE2, 0x81,\n\t0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, 0x88, 0x95,\n\t// Bytes 2300 - 233f\n\t0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, 0x95, 0x73,\n\t0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t// Bytes 2340 - 237f\n\t0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xAA, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x8A,\n\t// Bytes 2380 - 23bf\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAD,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89,\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t// Bytes 23c0 - 23ff\n\t0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8,\n\t0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD9,\n\t0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t// Bytes 2400 - 243f\n\t0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB5,\n\t0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, 0xB5, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, 0xD9, 0x84,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xDB,\n\t0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t// Bytes 2440 - 247f\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB7, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xBA,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xBA, 0xD9,\n\t// Bytes 2480 - 24bf\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, 0x85, 0xD9,\n\t0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, 0xDB, 0x92,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x83,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x83, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t// Bytes 24c0 - 24ff\n\t0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,\n\t0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD9,\n\t0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8,\n\t// Bytes 2500 - 253f\n\t0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAE,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x8A,\n\t// Bytes 2540 - 257f\n\t0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, 0x46,\n\t// Bytes 2580 - 25bf\n\t0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD9, 0x87,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, 0x46, 0xD9,\n\t// Bytes 25c0 - 25ff\n\t0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x86,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x87, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, 0xD9, 0x8A,\n\t// Bytes 2600 - 263f\n\t0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, 0x46,\n\t0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, 0x46, 0xE0,\n\t0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, 0xE0, 0xBA,\n\t0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, 0xBB, 0x8D,\n\t// Bytes 2640 - 267f\n\t0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, 0x80, 0xE0,\n\t0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBE, 0x92,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x9C, 0xE0,\n\t// Bytes 2680 - 26bf\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x46, 0xE2,\n\t0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, 0xE3, 0x82,\n\t// Bytes 26c0 - 26ff\n\t0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB3, 0x46,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, 0x46, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, 0xE3, 0x83,\n\t0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0,\n\t// Bytes 2700 - 273f\n\t0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, 0x8C, 0x46,\n\t0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5,\n\t0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98,\n\t0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD,\n\t0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2,\n\t0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53,\n\t0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t// Bytes 2740 - 277f\n\t0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C,\n\t// Bytes 2780 - 27bf\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88,\n\t// Bytes 27c0 - 27ff\n\t0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83,\n\t0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9,\n\t0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1,\n\t0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8,\n\t0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48,\n\t0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85,\n\t0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9,\n\t0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85,\n\t// Bytes 2800 - 283f\n\t0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,\n\t0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80,\n\t0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4,\n\t0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t// Bytes 2840 - 287f\n\t0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,\n\t0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9,\n\t// Bytes 2880 - 28bf\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,\n\t0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9,\n\t0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,\n\t0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83,\n\t0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t// Bytes 2940 - 297f\n\t0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83,\n\t// Bytes 2980 - 29bf\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C,\n\t0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t// Bytes 2a40 - 2a7f\n\t0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3,\n\t0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,\n\t0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,\n\t0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0,\n\t0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7,\n\t0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1,\n\t// Bytes 2b00 - 2b3f\n\t0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE,\n\t0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8,\n\t0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83,\n\t0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83,\n\t0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85,\n\t// Bytes 2bc0 - 2bff\n\t0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1,\n\t0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,\n\t0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83,\n\t// Bytes 2c40 - 2c7f\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,\n\t0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7,\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t// Bytes 2c80 - 2cbf\n\t0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89,\n\t0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9,\n\t0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A,\n\t0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,\n\t0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0,\n\t0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0,\n\t0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0,\n\t0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,\n\t0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,\n\t0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0,\n\t0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0,\n\t0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,\n\t0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,\n\t0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0,\n\t0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1,\n\t0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1,\n\t// Bytes 2d80 - 2dbf\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1,\n\t0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,\n\t0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,\n\t0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE,\n\t0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,\n\t0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,\n\t0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91,\n\t// Bytes 2dc0 - 2dff\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08,\n\t0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD,\n\t0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91,\n\t0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9,\n\t0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,\n\t0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, 0x01, 0x09,\n\t0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3,\n\t0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,\n\t// Bytes 2e00 - 2e3f\n\t0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, 0x44, 0x5A,\n\t0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C,\n\t0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x46,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t// Bytes 2e40 - 2e7f\n\t0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t// Bytes 2e80 - 2ebf\n\t0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x49,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01,\n\t// Bytes 2ec0 - 2eff\n\t0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82,\n\t0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85,\n\t0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1,\n\t0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x86,\n\t0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86,\n\t0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x03,\n\t0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8,\n\t// Bytes 2f80 - 2fbf\n\t0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41,\n\t0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD,\n\t0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC,\n\t0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, 0xCD, 0x03,\n\t0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41,\n\t0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC,\n\t// Bytes 2fc0 - 2fff\n\t0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82,\n\t0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, 0x87, 0xCD,\n\t0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45,\n\t// Bytes 3000 - 303f\n\t0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD,\n\t0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC,\n\t0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03,\n\t0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45,\n\t0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC,\n\t0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03,\n\t// Bytes 3040 - 307f\n\t0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82,\n\t0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47,\n\t0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD,\n\t0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, 0x47, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03,\n\t0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88,\n\t0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9,\n\t// Bytes 3080 - 30bf\n\t0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC,\n\t0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03,\n\t0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83,\n\t0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, 0x03, 0x49,\n\t0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD,\n\t0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3,\n\t// Bytes 30c0 - 30ff\n\t0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49,\n\t0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC,\n\t// Bytes 3100 - 313f\n\t0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03,\n\t0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E,\n\t0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, 0x83, 0xCD,\n\t0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD,\n\t0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F,\n\t// Bytes 3140 - 317f\n\t0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD,\n\t0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC,\n\t0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03,\n\t0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50,\n\t0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD,\n\t0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC,\n\t0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03,\n\t// Bytes 3180 - 31bf\n\t0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91,\n\t0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD,\n\t0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, 0x53, 0xCC,\n\t0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9,\n\t// Bytes 31c0 - 31ff\n\t0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03,\n\t0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82,\n\t0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, 0x03, 0x55,\n\t0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD,\n\t0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3,\n\t// Bytes 3200 - 323f\n\t0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55,\n\t0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC,\n\t0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81,\n\t0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57,\n\t0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD,\n\t0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC,\n\t// Bytes 3240 - 327f\n\t0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03,\n\t0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81,\n\t0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59,\n\t0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, 0x84, 0xCD,\n\t0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC,\n\t0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03,\n\t0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81,\n\t0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A,\n\t// Bytes 3280 - 32bf\n\t0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03,\n\t0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, 0xCC, 0x83,\n\t0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61,\n\t0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC,\n\t0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03,\n\t// Bytes 32c0 - 32ff\n\t0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87,\n\t0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD,\n\t0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, 0x63, 0xCC,\n\t0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64,\n\t0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9,\n\t// Bytes 3300 - 333f\n\t0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC,\n\t0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03,\n\t0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86,\n\t0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, 0x03, 0x65,\n\t0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD,\n\t0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC,\n\t0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03,\n\t0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD,\n\t// Bytes 3340 - 337f\n\t0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66,\n\t0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD,\n\t0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC,\n\t0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, 0xCD, 0x03,\n\t0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68,\n\t0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD,\n\t0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC,\n\t// Bytes 3380 - 33bf\n\t0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE,\n\t0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69,\n\t0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, 0x81, 0xCD,\n\t0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC,\n\t0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03,\n\t0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89,\n\t0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69,\n\t// Bytes 33c0 - 33ff\n\t0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD,\n\t0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03,\n\t0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3400 - 343f\n\t0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD,\n\t0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, 0x6D, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03,\n\t0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83,\n\t0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9,\n\t// Bytes 3440 - 347f\n\t0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81,\n\t0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, 0x03, 0x6F,\n\t0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD,\n\t0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC,\n\t0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03,\n\t0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87,\n\t// Bytes 3480 - 34bf\n\t0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72,\n\t0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC,\n\t0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82,\n\t0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC,\n\t// Bytes 34c0 - 34ff\n\t0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6,\n\t0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, 0xB1, 0xB9,\n\t0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC,\n\t0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03,\n\t0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89,\n\t0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75,\n\t// Bytes 3500 - 353f\n\t0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC,\n\t0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, 0xCC, 0xA8,\n\t0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75,\n\t0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD,\n\t0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC,\n\t0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3540 - 357f\n\t0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87,\n\t0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77,\n\t0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, 0x78, 0xCC,\n\t0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03,\n\t0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82,\n\t0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79,\n\t0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD,\n\t// Bytes 3580 - 35bf\n\t0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC,\n\t0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03,\n\t0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81,\n\t0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, 0x03, 0x7A,\n\t0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC,\n\t0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE,\n\t0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2,\n\t// Bytes 35c0 - 35ff\n\t0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC,\n\t0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD,\n\t0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3,\n\t0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0xA6, 0xCC,\n\t0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD,\n\t0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6,\n\t0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC,\n\t0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD,\n\t// Bytes 3600 - 363f\n\t0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC,\n\t// Bytes 3640 - 367f\n\t0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE,\n\t// Bytes 3680 - 36bf\n\t0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE,\n\t0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB1, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD,\n\t0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD,\n\t// Bytes 36c0 - 36ff\n\t0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD,\n\t0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC,\n\t0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF,\n\t0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC,\n\t// Bytes 3700 - 373f\n\t0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF,\n\t0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD,\n\t0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0,\n\t// Bytes 3740 - 377f\n\t0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x98, 0xCC,\n\t0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD,\n\t0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC,\n\t0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD,\n\t// Bytes 3780 - 37bf\n\t0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0,\n\t0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD,\n\t0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,\n\t// Bytes 37c0 - 37ff\n\t0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0,\n\t// Bytes 3800 - 383f\n\t0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC,\n\t0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, 0x87, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC,\n\t0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD,\n\t// Bytes 3840 - 387f\n\t0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3,\n\t0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x04, 0xD8,\n\t0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9,\n\t0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD,\n\t0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB,\n\t0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9,\n\t// Bytes 3880 - 38bf\n\t0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,\n\t0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE,\n\t// Bytes 38c0 - 38ff\n\t0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,\n\t0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t// Bytes 3900 - 393f\n\t0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,\n\t0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05,\n\t0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C,\n\t// Bytes 39c0 - 39ff\n\t0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC,\n\t0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3a00 - 3a3f\n\t0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83,\n\t0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,\n\t0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82,\n\t0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81,\n\t// Bytes 3a40 - 3a7f\n\t0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE,\n\t0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05,\n\t0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x61, 0xCC,\n\t0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC,\n\t0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81,\n\t0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t// Bytes 3a80 - 3abf\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x84,\n\t0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC,\n\t0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86,\n\t0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,\n\t// Bytes 3ac0 - 3aff\n\t0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82,\n\t0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x83,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,\n\t0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F,\n\t0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81,\n\t0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC,\n\t0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87,\n\t0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, 0xCE,\n\t0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88,\n\t// Bytes 3b80 - 3bbf\n\t0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81,\n\t0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, 0x05,\n\t0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF,\n\t0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t// Bytes 3bc0 - 3bff\n\t0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81,\n\t0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE,\n\t0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8,\n\t// Bytes 3c00 - 3c3f\n\t0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,\n\t0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05,\n\t// Bytes 3c40 - 3c7f\n\t0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB3,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c80 - 3cbf\n\t0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3cc0 - 3cff\n\t0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3d00 - 3d3f\n\t0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3d40 - 3d7f\n\t0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3d80 - 3dbf\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3dc0 - 3dff\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3e00 - 3e3f\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3e40 - 3e7f\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3e80 - 3ebf\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3ec0 - 3eff\n\t0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t// Bytes 3f00 - 3f3f\n\t0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06,\n\t0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06,\n\t0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3f40 - 3f7f\n\t0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3f80 - 3fbf\n\t0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3fc0 - 3fff\n\t0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 4000 - 403f\n\t0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 4040 - 407f\n\t0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t// Bytes 4080 - 40bf\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t// Bytes 40c0 - 40ff\n\t0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t// Bytes 4100 - 413f\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 4140 - 417f\n\t0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,\n\t// Bytes 4180 - 41bf\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 41c0 - 41ff\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t// Bytes 4200 - 423f\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,\n\t// Bytes 4240 - 427f\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA,\n\t0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91,\n\t0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5,\n\t0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, 0xC2, 0xB4,\n\t0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, 0x43, 0x20,\n\t0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, 0x84, 0xCD,\n\t// Bytes 4280 - 42bf\n\t0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, 0x20, 0xCC,\n\t0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, 0xCD, 0x43,\n\t0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, 0xCC, 0x8A,\n\t0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, 0x43, 0x20,\n\t0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, 0x94, 0xCD,\n\t0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, 0x20, 0xCC,\n\t0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, 0xB9, 0x43,\n\t0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, 0xCD, 0x85,\n\t// Bytes 42c0 - 42ff\n\t0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, 0x43, 0x20,\n\t0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, 0x8D, 0x65,\n\t0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, 0x20, 0xD9,\n\t0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, 0x71, 0x43,\n\t0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, 0xD9, 0x92,\n\t0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, 0x43, 0x73,\n\t0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, 0x82, 0x99,\n\t0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x11, 0x44,\n\t// Bytes 4300 - 433f\n\t0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, 0xCE, 0x91,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x9F,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x44,\n\t0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB1,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, 0xCC, 0x81,\n\t// Bytes 4340 - 437f\n\t0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xBF,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x44,\n\t0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, 0xD7, 0x90,\n\t0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x92,\n\t// Bytes 4380 - 43bf\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, 0xD7, 0x95,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, 0xD7, 0x99,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x45, 0x44,\n\t// Bytes 43c0 - 43ff\n\t0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x9C,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA3,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA7,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, 0xD6, 0xBC,\n\t// Bytes 4400 - 443f\n\t0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, 0xD7, 0xA9,\n\t0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x35, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x94,\n\t0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x44,\n\t0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, 0xD8, 0xB1,\n\t// Bytes 4440 - 447f\n\t0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, 0xD9, 0x8B,\n\t0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x69, 0x44,\n\t0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, 0xD9, 0x80,\n\t0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x91,\n\t0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x79, 0x44,\n\t0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x88,\n\t0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, 0xD9, 0xB0,\n\t0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x44,\n\t// Bytes 4480 - 44bf\n\t0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, 0xDB, 0x95,\n\t0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCE,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x45,\n\t0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x45, 0x20,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x94,\n\t// Bytes 44c0 - 44ff\n\t0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91,\n\t0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x76,\n\t0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x45,\n\t0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x45, 0x20,\n\t0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9,\n\t0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, 0xAB, 0x9D,\n\t0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88,\n\t// Bytes 4500 - 453f\n\t0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, 0xD9, 0x8E,\n\t0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x8F,\n\t0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x90,\n\t0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, 0x95, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x96, 0xE0,\n\t// Bytes 4540 - 457f\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x97, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x9C, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA1, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA2, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAB, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAF, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA1, 0xE0,\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA2, 0xE0,\n\t// Bytes 4580 - 45bf\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xAF, 0xE0,\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x96, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x97, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x9C, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xAB, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB2, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB8, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA1, 0xE0,\n\t// Bytes 45c0 - 45ff\n\t0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA2, 0xE0,\n\t0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, 0xB2, 0xE0,\n\t0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, 0xB3, 0xE0,\n\t0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, 0x85, 0x97,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t// Bytes 4600 - 463f\n\t0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, 0xB2, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x49, 0xE0,\n\t0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,\n\t0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,\n\t// Bytes 4640 - 467f\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t// Bytes 4680 - 46bf\n\t0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x83,\n\t0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, 0xCC, 0x86,\n\t0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, 0x83, 0x41,\n\t0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, 0x8A, 0xCD,\n\t0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, 0x43, 0xCC,\n\t// Bytes 46c0 - 46ff\n\t0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, 0xCD, 0x83,\n\t0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, 0xCC, 0xA3,\n\t0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, 0x83, 0x49,\n\t0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, 0x4F, 0xCC,\n\t0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, 0xCD, 0x83,\n\t0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, 0xCC, 0x88,\n\t0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, 0x83, 0x4F,\n\t// Bytes 4700 - 473f\n\t0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0xA8, 0xA9,\n\t0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, 0x53, 0xCC,\n\t0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, 0xCD, 0x83,\n\t0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, 0xCC, 0x83,\n\t0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, 0x83, 0x55,\n\t0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, 0x9B, 0xB1,\n\t0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, 0x61, 0xCC,\n\t0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, 0xCD, 0x83,\n\t// Bytes 4740 - 477f\n\t0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, 0xCC, 0x8A,\n\t0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, 0x83, 0x63,\n\t0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, 0x82, 0xCD,\n\t0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, 0x65, 0xCC,\n\t0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, 0xA9, 0x83,\n\t0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, 0xCC, 0xA3,\n\t0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, 0x83, 0x6F,\n\t0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, 0x84, 0xCD,\n\t// Bytes 4780 - 47bf\n\t0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, 0x6F, 0xCC,\n\t0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, 0xB1, 0x83,\n\t0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0xA8,\n\t0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, 0x83, 0x73,\n\t0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, 0x8C, 0xCD,\n\t0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, 0x75, 0xCC,\n\t0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, 0xCD, 0x83,\n\t0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, 0xCC, 0x9B,\n\t// Bytes 47c0 - 47ff\n\t0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x95,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x99,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA5,\n\t// Bytes 4800 - 483f\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, 0xCE, 0xB5,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x84,\n\t// Bytes 4840 - 487f\n\t0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, 0xCE, 0xB9,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, 0xCF, 0x85,\n\t0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x93,\n\t// Bytes 4880 - 48bf\n\t0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, 0xCF, 0x89,\n\t0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x91,\n\t// Bytes 48c0 - 48ff\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,\n\t// Bytes 4900 - 493f\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,\n\t// Bytes 4940 - 497f\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,\n\t// Bytes 4980 - 49bf\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,\n\t// Bytes 49c0 - 49ff\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, 0xCC, 0x80,\n\t0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, 0x33, 0x42,\n\t0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, 0x85, 0xA1,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA5,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, 0xE1,\n\t// Bytes 4a00 - 4a3f\n\t0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA9,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAD,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB1,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x00,\n\t// Bytes 4a40 - 4a7f\n\t0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB5,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB0,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB4,\n\t// Bytes 4a80 - 4abf\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x00,\n\t0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x33, 0x43,\n\t0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, 0xE3, 0x82,\n\t0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, 0xB1, 0xE0,\n\t0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, 0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10680 bytes (10.43 KiB). Checksum: a555db76d4becdd2.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,\n\t0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,\n\t0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,\n\t0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,\n\t0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,\n\t0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,\n\t0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,\n\t0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,\n\t0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,\n\t0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,\n\t0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,\n\t0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,\n\t0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,\n\t0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,\n\t0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,\n\t0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,\n\t0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,\n\t0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,\n\t0x130: 0x30a3, 0x134: 0x30cb, 0x135: 0x33d7,\n\t0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,\n\t0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,\n\t0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436,\n\t0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,\n\t0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,\n\t0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,\n\t0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,\n\t0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,\n\t0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,\n\t0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,\n\t0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,\n\t0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,\n\t0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,\n\t0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,\n\t0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,\n\t0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,\n\t0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,\n\t0x1b0: 0x33dc, 0x1b4: 0x303f, 0x1b5: 0x334b,\n\t0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,\n\t0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,\n\t0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,\n\t0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,\n\t0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,\n\t0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,\n\t0x1de: 0x3071, 0x1df: 0x337d,\n\t0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,\n\t0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,\n\t0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x0173,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35b8,\n\t0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,\n\t0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,\n\t0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3738, 0x2c1: 0x3744, 0x2c3: 0x3732,\n\t0x2c6: 0xa000, 0x2c7: 0x3720,\n\t0x2cc: 0x3774, 0x2cd: 0x375c, 0x2ce: 0x3786, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3768, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37ec, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x374a, 0x302: 0x37ce,\n\t0x310: 0x3726, 0x311: 0x37aa,\n\t0x312: 0x372c, 0x313: 0x37b0, 0x316: 0x373e, 0x317: 0x37c2,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3840, 0x31b: 0x3846, 0x31c: 0x3750, 0x31d: 0x37d4,\n\t0x31e: 0x3756, 0x31f: 0x37da, 0x322: 0x3762, 0x323: 0x37e6,\n\t0x324: 0x376e, 0x325: 0x37f2, 0x326: 0x377a, 0x327: 0x37fe, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x384c, 0x32b: 0x3852, 0x32c: 0x37a4, 0x32d: 0x3828, 0x32e: 0x3780, 0x32f: 0x3804,\n\t0x330: 0x378c, 0x331: 0x3810, 0x332: 0x3792, 0x333: 0x3816, 0x334: 0x3798, 0x335: 0x381c,\n\t0x338: 0x379e, 0x339: 0x3822,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812e,\n\t0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,\n\t0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133,\n\t0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e,\n\t0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133,\n\t0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133,\n\t0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b,\n\t0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110,\n\t0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117,\n\t0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d,\n\t0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x812e,\n\t0x3b0: 0x811f,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e,\n\t0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e,\n\t0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e,\n\t0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133,\n\t0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133,\n\t0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d33, 0x407: 0xa000, 0x408: 0x2d3b, 0x409: 0xa000, 0x40a: 0x2d43, 0x40b: 0xa000,\n\t0x40c: 0x2d4b, 0x40d: 0xa000, 0x40e: 0x2d53, 0x411: 0xa000,\n\t0x412: 0x2d5b,\n\t0x434: 0x8103, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d63,\n\t0x43c: 0xa000, 0x43d: 0x2d6b, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,\n\t0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,\n\t0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133,\n\t0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133,\n\t0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133,\n\t0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133,\n\t0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133,\n\t0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133,\n\t0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133,\n\t0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47b: 0x8133,\n\t0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2fae, 0x481: 0x32ba, 0x482: 0x2fb8, 0x483: 0x32c4, 0x484: 0x2fbd, 0x485: 0x32c9,\n\t0x486: 0x2fc2, 0x487: 0x32ce, 0x488: 0x38e3, 0x489: 0x3a72, 0x48a: 0x2fdb, 0x48b: 0x32e7,\n\t0x48c: 0x2fe5, 0x48d: 0x32f1, 0x48e: 0x2ff4, 0x48f: 0x3300, 0x490: 0x2fea, 0x491: 0x32f6,\n\t0x492: 0x2fef, 0x493: 0x32fb, 0x494: 0x3906, 0x495: 0x3a95, 0x496: 0x390d, 0x497: 0x3a9c,\n\t0x498: 0x3030, 0x499: 0x333c, 0x49a: 0x3035, 0x49b: 0x3341, 0x49c: 0x391b, 0x49d: 0x3aaa,\n\t0x49e: 0x303a, 0x49f: 0x3346, 0x4a0: 0x3049, 0x4a1: 0x3355, 0x4a2: 0x3067, 0x4a3: 0x3373,\n\t0x4a4: 0x3076, 0x4a5: 0x3382, 0x4a6: 0x306c, 0x4a7: 0x3378, 0x4a8: 0x307b, 0x4a9: 0x3387,\n\t0x4aa: 0x3080, 0x4ab: 0x338c, 0x4ac: 0x30c6, 0x4ad: 0x33d2, 0x4ae: 0x3922, 0x4af: 0x3ab1,\n\t0x4b0: 0x30d0, 0x4b1: 0x33e1, 0x4b2: 0x30da, 0x4b3: 0x33eb, 0x4b4: 0x30e4, 0x4b5: 0x33f5,\n\t0x4b6: 0x46db, 0x4b7: 0x476c, 0x4b8: 0x3929, 0x4b9: 0x3ab8, 0x4ba: 0x30fd, 0x4bb: 0x340e,\n\t0x4bc: 0x30f8, 0x4bd: 0x3409, 0x4be: 0x3102, 0x4bf: 0x3413,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3107, 0x4c1: 0x3418, 0x4c2: 0x310c, 0x4c3: 0x341d, 0x4c4: 0x3120, 0x4c5: 0x3431,\n\t0x4c6: 0x312a, 0x4c7: 0x343b, 0x4c8: 0x3139, 0x4c9: 0x344a, 0x4ca: 0x3134, 0x4cb: 0x3445,\n\t0x4cc: 0x394c, 0x4cd: 0x3adb, 0x4ce: 0x395a, 0x4cf: 0x3ae9, 0x4d0: 0x3961, 0x4d1: 0x3af0,\n\t0x4d2: 0x3968, 0x4d3: 0x3af7, 0x4d4: 0x3166, 0x4d5: 0x3477, 0x4d6: 0x316b, 0x4d7: 0x347c,\n\t0x4d8: 0x3175, 0x4d9: 0x3486, 0x4da: 0x4708, 0x4db: 0x4799, 0x4dc: 0x39ae, 0x4dd: 0x3b3d,\n\t0x4de: 0x318e, 0x4df: 0x349f, 0x4e0: 0x3198, 0x4e1: 0x34a9, 0x4e2: 0x4717, 0x4e3: 0x47a8,\n\t0x4e4: 0x39b5, 0x4e5: 0x3b44, 0x4e6: 0x39bc, 0x4e7: 0x3b4b, 0x4e8: 0x39c3, 0x4e9: 0x3b52,\n\t0x4ea: 0x31a7, 0x4eb: 0x34b8, 0x4ec: 0x31b1, 0x4ed: 0x34c7, 0x4ee: 0x31c5, 0x4ef: 0x34db,\n\t0x4f0: 0x31c0, 0x4f1: 0x34d6, 0x4f2: 0x3201, 0x4f3: 0x3517, 0x4f4: 0x3210, 0x4f5: 0x3526,\n\t0x4f6: 0x320b, 0x4f7: 0x3521, 0x4f8: 0x39ca, 0x4f9: 0x3b59, 0x4fa: 0x39d1, 0x4fb: 0x3b60,\n\t0x4fc: 0x3215, 0x4fd: 0x352b, 0x4fe: 0x321a, 0x4ff: 0x3530,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x321f, 0x501: 0x3535, 0x502: 0x3224, 0x503: 0x353a, 0x504: 0x3233, 0x505: 0x3549,\n\t0x506: 0x322e, 0x507: 0x3544, 0x508: 0x3238, 0x509: 0x3553, 0x50a: 0x323d, 0x50b: 0x3558,\n\t0x50c: 0x3242, 0x50d: 0x355d, 0x50e: 0x3260, 0x50f: 0x357b, 0x510: 0x3279, 0x511: 0x3599,\n\t0x512: 0x3288, 0x513: 0x35a8, 0x514: 0x328d, 0x515: 0x35ad, 0x516: 0x3391, 0x517: 0x34bd,\n\t0x518: 0x354e, 0x519: 0x358a, 0x51b: 0x35e8,\n\t0x520: 0x46b8, 0x521: 0x4749, 0x522: 0x2f9a, 0x523: 0x32a6,\n\t0x524: 0x388f, 0x525: 0x3a1e, 0x526: 0x3888, 0x527: 0x3a17, 0x528: 0x389d, 0x529: 0x3a2c,\n\t0x52a: 0x3896, 0x52b: 0x3a25, 0x52c: 0x38d5, 0x52d: 0x3a64, 0x52e: 0x38ab, 0x52f: 0x3a3a,\n\t0x530: 0x38a4, 0x531: 0x3a33, 0x532: 0x38b9, 0x533: 0x3a48, 0x534: 0x38b2, 0x535: 0x3a41,\n\t0x536: 0x38dc, 0x537: 0x3a6b, 0x538: 0x46cc, 0x539: 0x475d, 0x53a: 0x3017, 0x53b: 0x3323,\n\t0x53c: 0x3003, 0x53d: 0x330f, 0x53e: 0x38f1, 0x53f: 0x3a80,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38ea, 0x541: 0x3a79, 0x542: 0x38ff, 0x543: 0x3a8e, 0x544: 0x38f8, 0x545: 0x3a87,\n\t0x546: 0x3914, 0x547: 0x3aa3, 0x548: 0x30a8, 0x549: 0x33b4, 0x54a: 0x30bc, 0x54b: 0x33c8,\n\t0x54c: 0x46fe, 0x54d: 0x478f, 0x54e: 0x314d, 0x54f: 0x345e, 0x550: 0x3937, 0x551: 0x3ac6,\n\t0x552: 0x3930, 0x553: 0x3abf, 0x554: 0x3945, 0x555: 0x3ad4, 0x556: 0x393e, 0x557: 0x3acd,\n\t0x558: 0x39a0, 0x559: 0x3b2f, 0x55a: 0x3984, 0x55b: 0x3b13, 0x55c: 0x397d, 0x55d: 0x3b0c,\n\t0x55e: 0x3992, 0x55f: 0x3b21, 0x560: 0x398b, 0x561: 0x3b1a, 0x562: 0x3999, 0x563: 0x3b28,\n\t0x564: 0x31fc, 0x565: 0x3512, 0x566: 0x31de, 0x567: 0x34f4, 0x568: 0x39fb, 0x569: 0x3b8a,\n\t0x56a: 0x39f4, 0x56b: 0x3b83, 0x56c: 0x3a09, 0x56d: 0x3b98, 0x56e: 0x3a02, 0x56f: 0x3b91,\n\t0x570: 0x3a10, 0x571: 0x3b9f, 0x572: 0x3247, 0x573: 0x3562, 0x574: 0x326f, 0x575: 0x358f,\n\t0x576: 0x326a, 0x577: 0x3585, 0x578: 0x3256, 0x579: 0x3571,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x481b, 0x581: 0x4821, 0x582: 0x4935, 0x583: 0x494d, 0x584: 0x493d, 0x585: 0x4955,\n\t0x586: 0x4945, 0x587: 0x495d, 0x588: 0x47c1, 0x589: 0x47c7, 0x58a: 0x48a5, 0x58b: 0x48bd,\n\t0x58c: 0x48ad, 0x58d: 0x48c5, 0x58e: 0x48b5, 0x58f: 0x48cd, 0x590: 0x482d, 0x591: 0x4833,\n\t0x592: 0x3dcf, 0x593: 0x3ddf, 0x594: 0x3dd7, 0x595: 0x3de7,\n\t0x598: 0x47cd, 0x599: 0x47d3, 0x59a: 0x3cff, 0x59b: 0x3d0f, 0x59c: 0x3d07, 0x59d: 0x3d17,\n\t0x5a0: 0x4845, 0x5a1: 0x484b, 0x5a2: 0x4965, 0x5a3: 0x497d,\n\t0x5a4: 0x496d, 0x5a5: 0x4985, 0x5a6: 0x4975, 0x5a7: 0x498d, 0x5a8: 0x47d9, 0x5a9: 0x47df,\n\t0x5aa: 0x48d5, 0x5ab: 0x48ed, 0x5ac: 0x48dd, 0x5ad: 0x48f5, 0x5ae: 0x48e5, 0x5af: 0x48fd,\n\t0x5b0: 0x485d, 0x5b1: 0x4863, 0x5b2: 0x3e2f, 0x5b3: 0x3e47, 0x5b4: 0x3e37, 0x5b5: 0x3e4f,\n\t0x5b6: 0x3e3f, 0x5b7: 0x3e57, 0x5b8: 0x47e5, 0x5b9: 0x47eb, 0x5ba: 0x3d2f, 0x5bb: 0x3d47,\n\t0x5bc: 0x3d37, 0x5bd: 0x3d4f, 0x5be: 0x3d3f, 0x5bf: 0x3d57,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4869, 0x5c1: 0x486f, 0x5c2: 0x3e5f, 0x5c3: 0x3e6f, 0x5c4: 0x3e67, 0x5c5: 0x3e77,\n\t0x5c8: 0x47f1, 0x5c9: 0x47f7, 0x5ca: 0x3d5f, 0x5cb: 0x3d6f,\n\t0x5cc: 0x3d67, 0x5cd: 0x3d77, 0x5d0: 0x487b, 0x5d1: 0x4881,\n\t0x5d2: 0x3e97, 0x5d3: 0x3eaf, 0x5d4: 0x3e9f, 0x5d5: 0x3eb7, 0x5d6: 0x3ea7, 0x5d7: 0x3ebf,\n\t0x5d9: 0x47fd, 0x5db: 0x3d7f, 0x5dd: 0x3d87,\n\t0x5df: 0x3d8f, 0x5e0: 0x4893, 0x5e1: 0x4899, 0x5e2: 0x4995, 0x5e3: 0x49ad,\n\t0x5e4: 0x499d, 0x5e5: 0x49b5, 0x5e6: 0x49a5, 0x5e7: 0x49bd, 0x5e8: 0x4803, 0x5e9: 0x4809,\n\t0x5ea: 0x4905, 0x5eb: 0x491d, 0x5ec: 0x490d, 0x5ed: 0x4925, 0x5ee: 0x4915, 0x5ef: 0x492d,\n\t0x5f0: 0x480f, 0x5f1: 0x4335, 0x5f2: 0x36a8, 0x5f3: 0x433b, 0x5f4: 0x4839, 0x5f5: 0x4341,\n\t0x5f6: 0x36ba, 0x5f7: 0x4347, 0x5f8: 0x36d8, 0x5f9: 0x434d, 0x5fa: 0x36f0, 0x5fb: 0x4353,\n\t0x5fc: 0x4887, 0x5fd: 0x4359,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3db7, 0x601: 0x3dbf, 0x602: 0x419b, 0x603: 0x41b9, 0x604: 0x41a5, 0x605: 0x41c3,\n\t0x606: 0x41af, 0x607: 0x41cd, 0x608: 0x3cef, 0x609: 0x3cf7, 0x60a: 0x40e7, 0x60b: 0x4105,\n\t0x60c: 0x40f1, 0x60d: 0x410f, 0x60e: 0x40fb, 0x60f: 0x4119, 0x610: 0x3dff, 0x611: 0x3e07,\n\t0x612: 0x41d7, 0x613: 0x41f5, 0x614: 0x41e1, 0x615: 0x41ff, 0x616: 0x41eb, 0x617: 0x4209,\n\t0x618: 0x3d1f, 0x619: 0x3d27, 0x61a: 0x4123, 0x61b: 0x4141, 0x61c: 0x412d, 0x61d: 0x414b,\n\t0x61e: 0x4137, 0x61f: 0x4155, 0x620: 0x3ed7, 0x621: 0x3edf, 0x622: 0x4213, 0x623: 0x4231,\n\t0x624: 0x421d, 0x625: 0x423b, 0x626: 0x4227, 0x627: 0x4245, 0x628: 0x3d97, 0x629: 0x3d9f,\n\t0x62a: 0x415f, 0x62b: 0x417d, 0x62c: 0x4169, 0x62d: 0x4187, 0x62e: 0x4173, 0x62f: 0x4191,\n\t0x630: 0x369c, 0x631: 0x3696, 0x632: 0x3da7, 0x633: 0x36a2, 0x634: 0x3daf,\n\t0x636: 0x4827, 0x637: 0x3dc7, 0x638: 0x360c, 0x639: 0x3606, 0x63a: 0x35fa, 0x63b: 0x4305,\n\t0x63c: 0x3612, 0x63d: 0x8100, 0x63e: 0x01d6, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35be, 0x642: 0x3def, 0x643: 0x36b4, 0x644: 0x3df7,\n\t0x646: 0x4851, 0x647: 0x3e0f, 0x648: 0x3618, 0x649: 0x430b, 0x64a: 0x3624, 0x64b: 0x4311,\n\t0x64c: 0x3630, 0x64d: 0x3ba6, 0x64e: 0x3bad, 0x64f: 0x3bb4, 0x650: 0x36cc, 0x651: 0x36c6,\n\t0x652: 0x3e17, 0x653: 0x44fb, 0x656: 0x36d2, 0x657: 0x3e27,\n\t0x658: 0x3648, 0x659: 0x3642, 0x65a: 0x3636, 0x65b: 0x4317, 0x65d: 0x3bbb,\n\t0x65e: 0x3bc2, 0x65f: 0x3bc9, 0x660: 0x3702, 0x661: 0x36fc, 0x662: 0x3e7f, 0x663: 0x4503,\n\t0x664: 0x36e4, 0x665: 0x36ea, 0x666: 0x3708, 0x667: 0x3e8f, 0x668: 0x3678, 0x669: 0x3672,\n\t0x66a: 0x3666, 0x66b: 0x4323, 0x66c: 0x3660, 0x66d: 0x35b2, 0x66e: 0x42ff, 0x66f: 0x0081,\n\t0x672: 0x3ec7, 0x673: 0x370e, 0x674: 0x3ecf,\n\t0x676: 0x489f, 0x677: 0x3ee7, 0x678: 0x3654, 0x679: 0x431d, 0x67a: 0x3684, 0x67b: 0x432f,\n\t0x67c: 0x3690, 0x67d: 0x426d, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c1d, 0x683: 0xa000, 0x684: 0x3c24, 0x685: 0xa000,\n\t0x687: 0x3c2b, 0x688: 0xa000, 0x689: 0x3c32,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f7c, 0x6a1: 0xa000, 0x6a2: 0x3c40,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c39, 0x6ae: 0x2f77, 0x6af: 0x2f81,\n\t0x6b0: 0x3c47, 0x6b1: 0x3c4e, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c55, 0x6b5: 0x3c5c,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c63, 0x6b9: 0x3c6a, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c71, 0x6c1: 0x3c78, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c8d, 0x6c5: 0x3c94,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c9b, 0x6c9: 0x3ca2,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3cb7, 0x6ed: 0x3cbe, 0x6ee: 0x3cc5, 0x6ef: 0x3ccc,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f1f, 0x70d: 0xa000, 0x70e: 0x3f27, 0x70f: 0xa000, 0x710: 0x3f2f, 0x711: 0xa000,\n\t0x712: 0x3f37, 0x713: 0xa000, 0x714: 0x3f3f, 0x715: 0xa000, 0x716: 0x3f47, 0x717: 0xa000,\n\t0x718: 0x3f4f, 0x719: 0xa000, 0x71a: 0x3f57, 0x71b: 0xa000, 0x71c: 0x3f5f, 0x71d: 0xa000,\n\t0x71e: 0x3f67, 0x71f: 0xa000, 0x720: 0x3f6f, 0x721: 0xa000, 0x722: 0x3f77,\n\t0x724: 0xa000, 0x725: 0x3f7f, 0x726: 0xa000, 0x727: 0x3f87, 0x728: 0xa000, 0x729: 0x3f8f,\n\t0x72f: 0xa000,\n\t0x730: 0x3f97, 0x731: 0x3f9f, 0x732: 0xa000, 0x733: 0x3fa7, 0x734: 0x3faf, 0x735: 0xa000,\n\t0x736: 0x3fb7, 0x737: 0x3fbf, 0x738: 0xa000, 0x739: 0x3fc7, 0x73a: 0x3fcf, 0x73b: 0xa000,\n\t0x73c: 0x3fd7, 0x73d: 0x3fdf,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f17,\n\t0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fe7,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3ff7, 0x76d: 0xa000, 0x76e: 0x3fff, 0x76f: 0xa000,\n\t0x770: 0x4007, 0x771: 0xa000, 0x772: 0x400f, 0x773: 0xa000, 0x774: 0x4017, 0x775: 0xa000,\n\t0x776: 0x401f, 0x777: 0xa000, 0x778: 0x4027, 0x779: 0xa000, 0x77a: 0x402f, 0x77b: 0xa000,\n\t0x77c: 0x4037, 0x77d: 0xa000, 0x77e: 0x403f, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4047, 0x781: 0xa000, 0x782: 0x404f, 0x784: 0xa000, 0x785: 0x4057,\n\t0x786: 0xa000, 0x787: 0x405f, 0x788: 0xa000, 0x789: 0x4067,\n\t0x78f: 0xa000, 0x790: 0x406f, 0x791: 0x4077,\n\t0x792: 0xa000, 0x793: 0x407f, 0x794: 0x4087, 0x795: 0xa000, 0x796: 0x408f, 0x797: 0x4097,\n\t0x798: 0xa000, 0x799: 0x409f, 0x79a: 0x40a7, 0x79b: 0xa000, 0x79c: 0x40af, 0x79d: 0x40b7,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fef,\n\t0x7b7: 0x40bf, 0x7b8: 0x40c7, 0x7b9: 0x40cf, 0x7ba: 0x40d7,\n\t0x7bd: 0xa000, 0x7be: 0x40df,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x137a, 0x7c1: 0x0cfe, 0x7c2: 0x13d6, 0x7c3: 0x13a2, 0x7c4: 0x0e5a, 0x7c5: 0x06ee,\n\t0x7c6: 0x08e2, 0x7c7: 0x162e, 0x7c8: 0x162e, 0x7c9: 0x0a0e, 0x7ca: 0x1462, 0x7cb: 0x0946,\n\t0x7cc: 0x0a0a, 0x7cd: 0x0bf2, 0x7ce: 0x0fd2, 0x7cf: 0x1162, 0x7d0: 0x129a, 0x7d1: 0x12d6,\n\t0x7d2: 0x130a, 0x7d3: 0x141e, 0x7d4: 0x0d76, 0x7d5: 0x0e02, 0x7d6: 0x0eae, 0x7d7: 0x0f46,\n\t0x7d8: 0x1262, 0x7d9: 0x144a, 0x7da: 0x1576, 0x7db: 0x0712, 0x7dc: 0x08b6, 0x7dd: 0x0d8a,\n\t0x7de: 0x0ed2, 0x7df: 0x1296, 0x7e0: 0x15c6, 0x7e1: 0x0ab6, 0x7e2: 0x0e7a, 0x7e3: 0x1286,\n\t0x7e4: 0x131a, 0x7e5: 0x0c26, 0x7e6: 0x11be, 0x7e7: 0x12e2, 0x7e8: 0x0b22, 0x7e9: 0x0d12,\n\t0x7ea: 0x0e1a, 0x7eb: 0x0f1e, 0x7ec: 0x142a, 0x7ed: 0x0752, 0x7ee: 0x07ea, 0x7ef: 0x0856,\n\t0x7f0: 0x0c8e, 0x7f1: 0x0d82, 0x7f2: 0x0ece, 0x7f3: 0x0ff2, 0x7f4: 0x117a, 0x7f5: 0x128e,\n\t0x7f6: 0x12a6, 0x7f7: 0x13ca, 0x7f8: 0x14f2, 0x7f9: 0x15a6, 0x7fa: 0x15c2, 0x7fb: 0x102e,\n\t0x7fc: 0x106e, 0x7fd: 0x1126, 0x7fe: 0x1246, 0x7ff: 0x147e,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15ce, 0x801: 0x134e, 0x802: 0x09ca, 0x803: 0x0b3e, 0x804: 0x10de, 0x805: 0x119e,\n\t0x806: 0x0f02, 0x807: 0x1036, 0x808: 0x139a, 0x809: 0x14ea, 0x80a: 0x09c6, 0x80b: 0x0a92,\n\t0x80c: 0x0d7a, 0x80d: 0x0e2e, 0x80e: 0x0e62, 0x80f: 0x1116, 0x810: 0x113e, 0x811: 0x14aa,\n\t0x812: 0x0852, 0x813: 0x11aa, 0x814: 0x07f6, 0x815: 0x07f2, 0x816: 0x109a, 0x817: 0x112a,\n\t0x818: 0x125e, 0x819: 0x14b2, 0x81a: 0x136a, 0x81b: 0x0c2a, 0x81c: 0x0d76, 0x81d: 0x135a,\n\t0x81e: 0x06fa, 0x81f: 0x0a66, 0x820: 0x0b96, 0x821: 0x0f32, 0x822: 0x0fb2, 0x823: 0x0876,\n\t0x824: 0x103e, 0x825: 0x0762, 0x826: 0x0b7a, 0x827: 0x06da, 0x828: 0x0dee, 0x829: 0x0ca6,\n\t0x82a: 0x1112, 0x82b: 0x08ca, 0x82c: 0x09b6, 0x82d: 0x0ffe, 0x82e: 0x1266, 0x82f: 0x133e,\n\t0x830: 0x0dba, 0x831: 0x13fa, 0x832: 0x0de6, 0x833: 0x0c3a, 0x834: 0x121e, 0x835: 0x0c5a,\n\t0x836: 0x0fae, 0x837: 0x072e, 0x838: 0x07aa, 0x839: 0x07ee, 0x83a: 0x0d56, 0x83b: 0x10fe,\n\t0x83c: 0x11f6, 0x83d: 0x134a, 0x83e: 0x145e, 0x83f: 0x085e,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0912, 0x841: 0x0a1a, 0x842: 0x0b32, 0x843: 0x0cc2, 0x844: 0x0e7e, 0x845: 0x1042,\n\t0x846: 0x149a, 0x847: 0x157e, 0x848: 0x15d2, 0x849: 0x15ea, 0x84a: 0x083a, 0x84b: 0x0cf6,\n\t0x84c: 0x0da6, 0x84d: 0x13ee, 0x84e: 0x0afe, 0x84f: 0x0bda, 0x850: 0x0bf6, 0x851: 0x0c86,\n\t0x852: 0x0e6e, 0x853: 0x0eba, 0x854: 0x0f6a, 0x855: 0x108e, 0x856: 0x1132, 0x857: 0x1196,\n\t0x858: 0x13de, 0x859: 0x126e, 0x85a: 0x1406, 0x85b: 0x1482, 0x85c: 0x0812, 0x85d: 0x083e,\n\t0x85e: 0x0926, 0x85f: 0x0eaa, 0x860: 0x12f6, 0x861: 0x133e, 0x862: 0x0b1e, 0x863: 0x0b8e,\n\t0x864: 0x0c52, 0x865: 0x0db2, 0x866: 0x10da, 0x867: 0x0f26, 0x868: 0x073e, 0x869: 0x0982,\n\t0x86a: 0x0a66, 0x86b: 0x0aca, 0x86c: 0x0b9a, 0x86d: 0x0f42, 0x86e: 0x0f5e, 0x86f: 0x116e,\n\t0x870: 0x118e, 0x871: 0x1466, 0x872: 0x14e6, 0x873: 0x14f6, 0x874: 0x1532, 0x875: 0x0756,\n\t0x876: 0x1082, 0x877: 0x1452, 0x878: 0x14ce, 0x879: 0x0bb2, 0x87a: 0x071a, 0x87b: 0x077a,\n\t0x87c: 0x0a6a, 0x87d: 0x0a8a, 0x87e: 0x0cb2, 0x87f: 0x0d76,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec6, 0x881: 0x0fce, 0x882: 0x127a, 0x883: 0x141a, 0x884: 0x1626, 0x885: 0x0ce6,\n\t0x886: 0x14a6, 0x887: 0x0836, 0x888: 0x0d32, 0x889: 0x0d3e, 0x88a: 0x0e12, 0x88b: 0x0e4a,\n\t0x88c: 0x0f4e, 0x88d: 0x0faa, 0x88e: 0x102a, 0x88f: 0x110e, 0x890: 0x153e, 0x891: 0x07b2,\n\t0x892: 0x0c06, 0x893: 0x14b6, 0x894: 0x076a, 0x895: 0x0aae, 0x896: 0x0e32, 0x897: 0x13e2,\n\t0x898: 0x0b6a, 0x899: 0x0bba, 0x89a: 0x0d46, 0x89b: 0x0f32, 0x89c: 0x14be, 0x89d: 0x081a,\n\t0x89e: 0x0902, 0x89f: 0x0a9a, 0x8a0: 0x0cd6, 0x8a1: 0x0d22, 0x8a2: 0x0d62, 0x8a3: 0x0df6,\n\t0x8a4: 0x0f4a, 0x8a5: 0x0fbe, 0x8a6: 0x115a, 0x8a7: 0x12fa, 0x8a8: 0x1306, 0x8a9: 0x145a,\n\t0x8aa: 0x14da, 0x8ab: 0x0886, 0x8ac: 0x0e4e, 0x8ad: 0x0906, 0x8ae: 0x0eca, 0x8af: 0x0f6e,\n\t0x8b0: 0x128a, 0x8b1: 0x14c2, 0x8b2: 0x15ae, 0x8b3: 0x15d6, 0x8b4: 0x0d3a, 0x8b5: 0x0e2a,\n\t0x8b6: 0x11c6, 0x8b7: 0x10ba, 0x8b8: 0x10c6, 0x8b9: 0x10ea, 0x8ba: 0x0f1a, 0x8bb: 0x0ea2,\n\t0x8bc: 0x1366, 0x8bd: 0x0736, 0x8be: 0x122e, 0x8bf: 0x081e,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080e, 0x8c1: 0x0b0e, 0x8c2: 0x0c2e, 0x8c3: 0x10f6, 0x8c4: 0x0a56, 0x8c5: 0x0e06,\n\t0x8c6: 0x0cf2, 0x8c7: 0x13ea, 0x8c8: 0x12ea, 0x8c9: 0x14ae, 0x8ca: 0x1326, 0x8cb: 0x0b2a,\n\t0x8cc: 0x078a, 0x8cd: 0x095e, 0x8d0: 0x09b2,\n\t0x8d2: 0x0ce2, 0x8d5: 0x07fa, 0x8d6: 0x0f22, 0x8d7: 0x0fe6,\n\t0x8d8: 0x104a, 0x8d9: 0x1066, 0x8da: 0x106a, 0x8db: 0x107e, 0x8dc: 0x14fe, 0x8dd: 0x10ee,\n\t0x8de: 0x1172, 0x8e0: 0x1292, 0x8e2: 0x1356,\n\t0x8e5: 0x140a, 0x8e6: 0x1436,\n\t0x8ea: 0x1552, 0x8eb: 0x1556, 0x8ec: 0x155a, 0x8ed: 0x15be, 0x8ee: 0x142e, 0x8ef: 0x14ca,\n\t0x8f0: 0x075a, 0x8f1: 0x077e, 0x8f2: 0x0792, 0x8f3: 0x084e, 0x8f4: 0x085a, 0x8f5: 0x089a,\n\t0x8f6: 0x094e, 0x8f7: 0x096a, 0x8f8: 0x0972, 0x8f9: 0x09ae, 0x8fa: 0x09ba, 0x8fb: 0x0a96,\n\t0x8fc: 0x0a9e, 0x8fd: 0x0ba6, 0x8fe: 0x0bce, 0x8ff: 0x0bd6,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0bee, 0x901: 0x0c9a, 0x902: 0x0cca, 0x903: 0x0cea, 0x904: 0x0d5a, 0x905: 0x0e1e,\n\t0x906: 0x0e3a, 0x907: 0x0e6a, 0x908: 0x0ebe, 0x909: 0x0ede, 0x90a: 0x0f52, 0x90b: 0x1032,\n\t0x90c: 0x104e, 0x90d: 0x1056, 0x90e: 0x1052, 0x90f: 0x105a, 0x910: 0x105e, 0x911: 0x1062,\n\t0x912: 0x1076, 0x913: 0x107a, 0x914: 0x109e, 0x915: 0x10b2, 0x916: 0x10ce, 0x917: 0x1132,\n\t0x918: 0x113a, 0x919: 0x1142, 0x91a: 0x1156, 0x91b: 0x117e, 0x91c: 0x11ce, 0x91d: 0x1202,\n\t0x91e: 0x1202, 0x91f: 0x126a, 0x920: 0x1312, 0x921: 0x132a, 0x922: 0x135e, 0x923: 0x1362,\n\t0x924: 0x13a6, 0x925: 0x13aa, 0x926: 0x1402, 0x927: 0x140a, 0x928: 0x14de, 0x929: 0x1522,\n\t0x92a: 0x153a, 0x92b: 0x0b9e, 0x92c: 0x1721, 0x92d: 0x11e6,\n\t0x930: 0x06e2, 0x931: 0x07e6, 0x932: 0x07a6, 0x933: 0x074e, 0x934: 0x078e, 0x935: 0x07ba,\n\t0x936: 0x084a, 0x937: 0x0866, 0x938: 0x094e, 0x939: 0x093a, 0x93a: 0x094a, 0x93b: 0x0966,\n\t0x93c: 0x09b2, 0x93d: 0x09c2, 0x93e: 0x0a06, 0x93f: 0x0a12,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2e, 0x941: 0x0a3e, 0x942: 0x0b26, 0x943: 0x0b2e, 0x944: 0x0b5e, 0x945: 0x0b7e,\n\t0x946: 0x0bae, 0x947: 0x0bc6, 0x948: 0x0bb6, 0x949: 0x0bd6, 0x94a: 0x0bca, 0x94b: 0x0bee,\n\t0x94c: 0x0c0a, 0x94d: 0x0c62, 0x94e: 0x0c6e, 0x94f: 0x0c76, 0x950: 0x0c9e, 0x951: 0x0ce2,\n\t0x952: 0x0d12, 0x953: 0x0d16, 0x954: 0x0d2a, 0x955: 0x0daa, 0x956: 0x0dba, 0x957: 0x0e12,\n\t0x958: 0x0e5e, 0x959: 0x0e56, 0x95a: 0x0e6a, 0x95b: 0x0e86, 0x95c: 0x0ebe, 0x95d: 0x1016,\n\t0x95e: 0x0ee2, 0x95f: 0x0f16, 0x960: 0x0f22, 0x961: 0x0f62, 0x962: 0x0f7e, 0x963: 0x0fa2,\n\t0x964: 0x0fc6, 0x965: 0x0fca, 0x966: 0x0fe6, 0x967: 0x0fea, 0x968: 0x0ffa, 0x969: 0x100e,\n\t0x96a: 0x100a, 0x96b: 0x103a, 0x96c: 0x10b6, 0x96d: 0x10ce, 0x96e: 0x10e6, 0x96f: 0x111e,\n\t0x970: 0x1132, 0x971: 0x114e, 0x972: 0x117e, 0x973: 0x1232, 0x974: 0x125a, 0x975: 0x12ce,\n\t0x976: 0x1316, 0x977: 0x1322, 0x978: 0x132a, 0x979: 0x1342, 0x97a: 0x1356, 0x97b: 0x1346,\n\t0x97c: 0x135e, 0x97d: 0x135a, 0x97e: 0x1352, 0x97f: 0x1362,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136e, 0x981: 0x13aa, 0x982: 0x13e6, 0x983: 0x1416, 0x984: 0x144e, 0x985: 0x146e,\n\t0x986: 0x14ba, 0x987: 0x14de, 0x988: 0x14fe, 0x989: 0x1512, 0x98a: 0x1522, 0x98b: 0x152e,\n\t0x98c: 0x153a, 0x98d: 0x158e, 0x98e: 0x162e, 0x98f: 0x16b8, 0x990: 0x16b3, 0x991: 0x16e5,\n\t0x992: 0x060a, 0x993: 0x0632, 0x994: 0x0636, 0x995: 0x1767, 0x996: 0x1794, 0x997: 0x180c,\n\t0x998: 0x161a, 0x999: 0x162a,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fe, 0x9c1: 0x06f6, 0x9c2: 0x0706, 0x9c3: 0x164a, 0x9c4: 0x074a, 0x9c5: 0x075a,\n\t0x9c6: 0x075e, 0x9c7: 0x0766, 0x9c8: 0x076e, 0x9c9: 0x0772, 0x9ca: 0x077e, 0x9cb: 0x0776,\n\t0x9cc: 0x05b6, 0x9cd: 0x165e, 0x9ce: 0x0792, 0x9cf: 0x0796, 0x9d0: 0x079a, 0x9d1: 0x07b6,\n\t0x9d2: 0x164f, 0x9d3: 0x05ba, 0x9d4: 0x07a2, 0x9d5: 0x07c2, 0x9d6: 0x1659, 0x9d7: 0x07d2,\n\t0x9d8: 0x07da, 0x9d9: 0x073a, 0x9da: 0x07e2, 0x9db: 0x07e6, 0x9dc: 0x1834, 0x9dd: 0x0802,\n\t0x9de: 0x080a, 0x9df: 0x05c2, 0x9e0: 0x0822, 0x9e1: 0x0826, 0x9e2: 0x082e, 0x9e3: 0x0832,\n\t0x9e4: 0x05c6, 0x9e5: 0x084a, 0x9e6: 0x084e, 0x9e7: 0x085a, 0x9e8: 0x0866, 0x9e9: 0x086a,\n\t0x9ea: 0x086e, 0x9eb: 0x0876, 0x9ec: 0x0896, 0x9ed: 0x089a, 0x9ee: 0x08a2, 0x9ef: 0x08b2,\n\t0x9f0: 0x08ba, 0x9f1: 0x08be, 0x9f2: 0x08be, 0x9f3: 0x08be, 0x9f4: 0x166d, 0x9f5: 0x0e96,\n\t0x9f6: 0x08d2, 0x9f7: 0x08da, 0x9f8: 0x1672, 0x9f9: 0x08e6, 0x9fa: 0x08ee, 0x9fb: 0x08f6,\n\t0x9fc: 0x091e, 0x9fd: 0x090a, 0x9fe: 0x0916, 0x9ff: 0x091a,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0922, 0xa01: 0x092a, 0xa02: 0x092e, 0xa03: 0x0936, 0xa04: 0x093e, 0xa05: 0x0942,\n\t0xa06: 0x0942, 0xa07: 0x094a, 0xa08: 0x0952, 0xa09: 0x0956, 0xa0a: 0x0962, 0xa0b: 0x0986,\n\t0xa0c: 0x096a, 0xa0d: 0x098a, 0xa0e: 0x096e, 0xa0f: 0x0976, 0xa10: 0x080e, 0xa11: 0x09d2,\n\t0xa12: 0x099a, 0xa13: 0x099e, 0xa14: 0x09a2, 0xa15: 0x0996, 0xa16: 0x09aa, 0xa17: 0x09a6,\n\t0xa18: 0x09be, 0xa19: 0x1677, 0xa1a: 0x09da, 0xa1b: 0x09de, 0xa1c: 0x09e6, 0xa1d: 0x09f2,\n\t0xa1e: 0x09fa, 0xa1f: 0x0a16, 0xa20: 0x167c, 0xa21: 0x1681, 0xa22: 0x0a22, 0xa23: 0x0a26,\n\t0xa24: 0x0a2a, 0xa25: 0x0a1e, 0xa26: 0x0a32, 0xa27: 0x05ca, 0xa28: 0x05ce, 0xa29: 0x0a3a,\n\t0xa2a: 0x0a42, 0xa2b: 0x0a42, 0xa2c: 0x1686, 0xa2d: 0x0a5e, 0xa2e: 0x0a62, 0xa2f: 0x0a66,\n\t0xa30: 0x0a6e, 0xa31: 0x168b, 0xa32: 0x0a76, 0xa33: 0x0a7a, 0xa34: 0x0b52, 0xa35: 0x0a82,\n\t0xa36: 0x05d2, 0xa37: 0x0a8e, 0xa38: 0x0a9e, 0xa39: 0x0aaa, 0xa3a: 0x0aa6, 0xa3b: 0x1695,\n\t0xa3c: 0x0ab2, 0xa3d: 0x169a, 0xa3e: 0x0abe, 0xa3f: 0x0aba,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0ac2, 0xa41: 0x0ad2, 0xa42: 0x0ad6, 0xa43: 0x05d6, 0xa44: 0x0ae6, 0xa45: 0x0aee,\n\t0xa46: 0x0af2, 0xa47: 0x0af6, 0xa48: 0x05da, 0xa49: 0x169f, 0xa4a: 0x05de, 0xa4b: 0x0b12,\n\t0xa4c: 0x0b16, 0xa4d: 0x0b1a, 0xa4e: 0x0b22, 0xa4f: 0x1866, 0xa50: 0x0b3a, 0xa51: 0x16a9,\n\t0xa52: 0x16a9, 0xa53: 0x11da, 0xa54: 0x0b4a, 0xa55: 0x0b4a, 0xa56: 0x05e2, 0xa57: 0x16cc,\n\t0xa58: 0x179e, 0xa59: 0x0b5a, 0xa5a: 0x0b62, 0xa5b: 0x05e6, 0xa5c: 0x0b76, 0xa5d: 0x0b86,\n\t0xa5e: 0x0b8a, 0xa5f: 0x0b92, 0xa60: 0x0ba2, 0xa61: 0x05ee, 0xa62: 0x05ea, 0xa63: 0x0ba6,\n\t0xa64: 0x16ae, 0xa65: 0x0baa, 0xa66: 0x0bbe, 0xa67: 0x0bc2, 0xa68: 0x0bc6, 0xa69: 0x0bc2,\n\t0xa6a: 0x0bd2, 0xa6b: 0x0bd6, 0xa6c: 0x0be6, 0xa6d: 0x0bde, 0xa6e: 0x0be2, 0xa6f: 0x0bea,\n\t0xa70: 0x0bee, 0xa71: 0x0bf2, 0xa72: 0x0bfe, 0xa73: 0x0c02, 0xa74: 0x0c1a, 0xa75: 0x0c22,\n\t0xa76: 0x0c32, 0xa77: 0x0c46, 0xa78: 0x16bd, 0xa79: 0x0c42, 0xa7a: 0x0c36, 0xa7b: 0x0c4e,\n\t0xa7c: 0x0c56, 0xa7d: 0x0c6a, 0xa7e: 0x16c2, 0xa7f: 0x0c72,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c66, 0xa81: 0x0c5e, 0xa82: 0x05f2, 0xa83: 0x0c7a, 0xa84: 0x0c82, 0xa85: 0x0c8a,\n\t0xa86: 0x0c7e, 0xa87: 0x05f6, 0xa88: 0x0c9a, 0xa89: 0x0ca2, 0xa8a: 0x16c7, 0xa8b: 0x0cce,\n\t0xa8c: 0x0d02, 0xa8d: 0x0cde, 0xa8e: 0x0602, 0xa8f: 0x0cea, 0xa90: 0x05fe, 0xa91: 0x05fa,\n\t0xa92: 0x07c6, 0xa93: 0x07ca, 0xa94: 0x0d06, 0xa95: 0x0cee, 0xa96: 0x11ae, 0xa97: 0x0666,\n\t0xa98: 0x0d12, 0xa99: 0x0d16, 0xa9a: 0x0d1a, 0xa9b: 0x0d2e, 0xa9c: 0x0d26, 0xa9d: 0x16e0,\n\t0xa9e: 0x0606, 0xa9f: 0x0d42, 0xaa0: 0x0d36, 0xaa1: 0x0d52, 0xaa2: 0x0d5a, 0xaa3: 0x16ea,\n\t0xaa4: 0x0d5e, 0xaa5: 0x0d4a, 0xaa6: 0x0d66, 0xaa7: 0x060a, 0xaa8: 0x0d6a, 0xaa9: 0x0d6e,\n\t0xaaa: 0x0d72, 0xaab: 0x0d7e, 0xaac: 0x16ef, 0xaad: 0x0d86, 0xaae: 0x060e, 0xaaf: 0x0d92,\n\t0xab0: 0x16f4, 0xab1: 0x0d96, 0xab2: 0x0612, 0xab3: 0x0da2, 0xab4: 0x0dae, 0xab5: 0x0dba,\n\t0xab6: 0x0dbe, 0xab7: 0x16f9, 0xab8: 0x1690, 0xab9: 0x16fe, 0xaba: 0x0dde, 0xabb: 0x1703,\n\t0xabc: 0x0dea, 0xabd: 0x0df2, 0xabe: 0x0de2, 0xabf: 0x0dfe,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0e, 0xac1: 0x0e1e, 0xac2: 0x0e12, 0xac3: 0x0e16, 0xac4: 0x0e22, 0xac5: 0x0e26,\n\t0xac6: 0x1708, 0xac7: 0x0e0a, 0xac8: 0x0e3e, 0xac9: 0x0e42, 0xaca: 0x0616, 0xacb: 0x0e56,\n\t0xacc: 0x0e52, 0xacd: 0x170d, 0xace: 0x0e36, 0xacf: 0x0e72, 0xad0: 0x1712, 0xad1: 0x1717,\n\t0xad2: 0x0e76, 0xad3: 0x0e8a, 0xad4: 0x0e86, 0xad5: 0x0e82, 0xad6: 0x061a, 0xad7: 0x0e8e,\n\t0xad8: 0x0e9e, 0xad9: 0x0e9a, 0xada: 0x0ea6, 0xadb: 0x1654, 0xadc: 0x0eb6, 0xadd: 0x171c,\n\t0xade: 0x0ec2, 0xadf: 0x1726, 0xae0: 0x0ed6, 0xae1: 0x0ee2, 0xae2: 0x0ef6, 0xae3: 0x172b,\n\t0xae4: 0x0f0a, 0xae5: 0x0f0e, 0xae6: 0x1730, 0xae7: 0x1735, 0xae8: 0x0f2a, 0xae9: 0x0f3a,\n\t0xaea: 0x061e, 0xaeb: 0x0f3e, 0xaec: 0x0622, 0xaed: 0x0622, 0xaee: 0x0f56, 0xaef: 0x0f5a,\n\t0xaf0: 0x0f62, 0xaf1: 0x0f66, 0xaf2: 0x0f72, 0xaf3: 0x0626, 0xaf4: 0x0f8a, 0xaf5: 0x173a,\n\t0xaf6: 0x0fa6, 0xaf7: 0x173f, 0xaf8: 0x0fb2, 0xaf9: 0x16a4, 0xafa: 0x0fc2, 0xafb: 0x1744,\n\t0xafc: 0x1749, 0xafd: 0x174e, 0xafe: 0x062a, 0xaff: 0x062e,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ffa, 0xb01: 0x1758, 0xb02: 0x1753, 0xb03: 0x175d, 0xb04: 0x1762, 0xb05: 0x1002,\n\t0xb06: 0x1006, 0xb07: 0x1006, 0xb08: 0x100e, 0xb09: 0x0636, 0xb0a: 0x1012, 0xb0b: 0x063a,\n\t0xb0c: 0x063e, 0xb0d: 0x176c, 0xb0e: 0x1026, 0xb0f: 0x102e, 0xb10: 0x103a, 0xb11: 0x0642,\n\t0xb12: 0x1771, 0xb13: 0x105e, 0xb14: 0x1776, 0xb15: 0x177b, 0xb16: 0x107e, 0xb17: 0x1096,\n\t0xb18: 0x0646, 0xb19: 0x109e, 0xb1a: 0x10a2, 0xb1b: 0x10a6, 0xb1c: 0x1780, 0xb1d: 0x1785,\n\t0xb1e: 0x1785, 0xb1f: 0x10be, 0xb20: 0x064a, 0xb21: 0x178a, 0xb22: 0x10d2, 0xb23: 0x10d6,\n\t0xb24: 0x064e, 0xb25: 0x178f, 0xb26: 0x10f2, 0xb27: 0x0652, 0xb28: 0x1102, 0xb29: 0x10fa,\n\t0xb2a: 0x110a, 0xb2b: 0x1799, 0xb2c: 0x1122, 0xb2d: 0x0656, 0xb2e: 0x112e, 0xb2f: 0x1136,\n\t0xb30: 0x1146, 0xb31: 0x065a, 0xb32: 0x17a3, 0xb33: 0x17a8, 0xb34: 0x065e, 0xb35: 0x17ad,\n\t0xb36: 0x115e, 0xb37: 0x17b2, 0xb38: 0x116a, 0xb39: 0x1176, 0xb3a: 0x117e, 0xb3b: 0x17b7,\n\t0xb3c: 0x17bc, 0xb3d: 0x1192, 0xb3e: 0x17c1, 0xb3f: 0x119a,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16d1, 0xb41: 0x0662, 0xb42: 0x11b2, 0xb43: 0x11b6, 0xb44: 0x066a, 0xb45: 0x11ba,\n\t0xb46: 0x0a36, 0xb47: 0x17c6, 0xb48: 0x17cb, 0xb49: 0x16d6, 0xb4a: 0x16db, 0xb4b: 0x11da,\n\t0xb4c: 0x11de, 0xb4d: 0x13f6, 0xb4e: 0x066e, 0xb4f: 0x120a, 0xb50: 0x1206, 0xb51: 0x120e,\n\t0xb52: 0x0842, 0xb53: 0x1212, 0xb54: 0x1216, 0xb55: 0x121a, 0xb56: 0x1222, 0xb57: 0x17d0,\n\t0xb58: 0x121e, 0xb59: 0x1226, 0xb5a: 0x123a, 0xb5b: 0x123e, 0xb5c: 0x122a, 0xb5d: 0x1242,\n\t0xb5e: 0x1256, 0xb5f: 0x126a, 0xb60: 0x1236, 0xb61: 0x124a, 0xb62: 0x124e, 0xb63: 0x1252,\n\t0xb64: 0x17d5, 0xb65: 0x17df, 0xb66: 0x17da, 0xb67: 0x0672, 0xb68: 0x1272, 0xb69: 0x1276,\n\t0xb6a: 0x127e, 0xb6b: 0x17f3, 0xb6c: 0x1282, 0xb6d: 0x17e4, 0xb6e: 0x0676, 0xb6f: 0x067a,\n\t0xb70: 0x17e9, 0xb71: 0x17ee, 0xb72: 0x067e, 0xb73: 0x12a2, 0xb74: 0x12a6, 0xb75: 0x12aa,\n\t0xb76: 0x12ae, 0xb77: 0x12ba, 0xb78: 0x12b6, 0xb79: 0x12c2, 0xb7a: 0x12be, 0xb7b: 0x12ce,\n\t0xb7c: 0x12c6, 0xb7d: 0x12ca, 0xb7e: 0x12d2, 0xb7f: 0x0682,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12da, 0xb81: 0x12de, 0xb82: 0x0686, 0xb83: 0x12ee, 0xb84: 0x12f2, 0xb85: 0x17f8,\n\t0xb86: 0x12fe, 0xb87: 0x1302, 0xb88: 0x068a, 0xb89: 0x130e, 0xb8a: 0x05be, 0xb8b: 0x17fd,\n\t0xb8c: 0x1802, 0xb8d: 0x068e, 0xb8e: 0x0692, 0xb8f: 0x133a, 0xb90: 0x1352, 0xb91: 0x136e,\n\t0xb92: 0x137e, 0xb93: 0x1807, 0xb94: 0x1392, 0xb95: 0x1396, 0xb96: 0x13ae, 0xb97: 0x13ba,\n\t0xb98: 0x1811, 0xb99: 0x1663, 0xb9a: 0x13c6, 0xb9b: 0x13c2, 0xb9c: 0x13ce, 0xb9d: 0x1668,\n\t0xb9e: 0x13da, 0xb9f: 0x13e6, 0xba0: 0x1816, 0xba1: 0x181b, 0xba2: 0x1426, 0xba3: 0x1432,\n\t0xba4: 0x143a, 0xba5: 0x1820, 0xba6: 0x143e, 0xba7: 0x146a, 0xba8: 0x1476, 0xba9: 0x147a,\n\t0xbaa: 0x1472, 0xbab: 0x1486, 0xbac: 0x148a, 0xbad: 0x1825, 0xbae: 0x1496, 0xbaf: 0x0696,\n\t0xbb0: 0x149e, 0xbb1: 0x182a, 0xbb2: 0x069a, 0xbb3: 0x14d6, 0xbb4: 0x0ac6, 0xbb5: 0x14ee,\n\t0xbb6: 0x182f, 0xbb7: 0x1839, 0xbb8: 0x069e, 0xbb9: 0x06a2, 0xbba: 0x1516, 0xbbb: 0x183e,\n\t0xbbc: 0x06a6, 0xbbd: 0x1843, 0xbbe: 0x152e, 0xbbf: 0x152e,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1536, 0xbc1: 0x1848, 0xbc2: 0x154e, 0xbc3: 0x06aa, 0xbc4: 0x155e, 0xbc5: 0x156a,\n\t0xbc6: 0x1572, 0xbc7: 0x157a, 0xbc8: 0x06ae, 0xbc9: 0x184d, 0xbca: 0x158e, 0xbcb: 0x15aa,\n\t0xbcc: 0x15b6, 0xbcd: 0x06b2, 0xbce: 0x06b6, 0xbcf: 0x15ba, 0xbd0: 0x1852, 0xbd1: 0x06ba,\n\t0xbd2: 0x1857, 0xbd3: 0x185c, 0xbd4: 0x1861, 0xbd5: 0x15de, 0xbd6: 0x06be, 0xbd7: 0x15f2,\n\t0xbd8: 0x15fa, 0xbd9: 0x15fe, 0xbda: 0x1606, 0xbdb: 0x160e, 0xbdc: 0x1616, 0xbdd: 0x186b,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16b: 0x64, 0x16c: 0x0e, 0x16d: 0x65, 0x16e: 0x66, 0x16f: 0x67,\n\t0x170: 0x68, 0x173: 0x69, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x6a, 0x183: 0x6b, 0x184: 0x6c, 0x186: 0x6d, 0x187: 0x6e,\n\t0x188: 0x6f, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x70, 0x18c: 0x71,\n\t0x1ab: 0x72,\n\t0x1b3: 0x73, 0x1b5: 0x74, 0x1b7: 0x75,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x76, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x77, 0x1c5: 0x78,\n\t0x1c9: 0x79, 0x1cc: 0x7a, 0x1cd: 0x7b,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7c, 0x21a: 0x7d, 0x21b: 0x7e,\n\t0x220: 0x7f, 0x223: 0x80, 0x224: 0x81, 0x225: 0x82, 0x226: 0x83, 0x227: 0x84,\n\t0x22a: 0x85, 0x22b: 0x86, 0x22f: 0x87,\n\t0x230: 0x88, 0x231: 0x89, 0x232: 0x8a, 0x233: 0x8b, 0x234: 0x8c, 0x235: 0x8d, 0x236: 0x8e, 0x237: 0x88,\n\t0x238: 0x89, 0x239: 0x8a, 0x23a: 0x8b, 0x23b: 0x8c, 0x23c: 0x8d, 0x23d: 0x8e, 0x23e: 0x88, 0x23f: 0x89,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x8a, 0x241: 0x8b, 0x242: 0x8c, 0x243: 0x8d, 0x244: 0x8e, 0x245: 0x88, 0x246: 0x89, 0x247: 0x8a,\n\t0x248: 0x8b, 0x249: 0x8c, 0x24a: 0x8d, 0x24b: 0x8e, 0x24c: 0x88, 0x24d: 0x89, 0x24e: 0x8a, 0x24f: 0x8b,\n\t0x250: 0x8c, 0x251: 0x8d, 0x252: 0x8e, 0x253: 0x88, 0x254: 0x89, 0x255: 0x8a, 0x256: 0x8b, 0x257: 0x8c,\n\t0x258: 0x8d, 0x259: 0x8e, 0x25a: 0x88, 0x25b: 0x89, 0x25c: 0x8a, 0x25d: 0x8b, 0x25e: 0x8c, 0x25f: 0x8d,\n\t0x260: 0x8e, 0x261: 0x88, 0x262: 0x89, 0x263: 0x8a, 0x264: 0x8b, 0x265: 0x8c, 0x266: 0x8d, 0x267: 0x8e,\n\t0x268: 0x88, 0x269: 0x89, 0x26a: 0x8a, 0x26b: 0x8b, 0x26c: 0x8c, 0x26d: 0x8d, 0x26e: 0x8e, 0x26f: 0x88,\n\t0x270: 0x89, 0x271: 0x8a, 0x272: 0x8b, 0x273: 0x8c, 0x274: 0x8d, 0x275: 0x8e, 0x276: 0x88, 0x277: 0x89,\n\t0x278: 0x8a, 0x279: 0x8b, 0x27a: 0x8c, 0x27b: 0x8d, 0x27c: 0x8e, 0x27d: 0x88, 0x27e: 0x89, 0x27f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8b, 0x281: 0x8c, 0x282: 0x8d, 0x283: 0x8e, 0x284: 0x88, 0x285: 0x89, 0x286: 0x8a, 0x287: 0x8b,\n\t0x288: 0x8c, 0x289: 0x8d, 0x28a: 0x8e, 0x28b: 0x88, 0x28c: 0x89, 0x28d: 0x8a, 0x28e: 0x8b, 0x28f: 0x8c,\n\t0x290: 0x8d, 0x291: 0x8e, 0x292: 0x88, 0x293: 0x89, 0x294: 0x8a, 0x295: 0x8b, 0x296: 0x8c, 0x297: 0x8d,\n\t0x298: 0x8e, 0x299: 0x88, 0x29a: 0x89, 0x29b: 0x8a, 0x29c: 0x8b, 0x29d: 0x8c, 0x29e: 0x8d, 0x29f: 0x8e,\n\t0x2a0: 0x88, 0x2a1: 0x89, 0x2a2: 0x8a, 0x2a3: 0x8b, 0x2a4: 0x8c, 0x2a5: 0x8d, 0x2a6: 0x8e, 0x2a7: 0x88,\n\t0x2a8: 0x89, 0x2a9: 0x8a, 0x2aa: 0x8b, 0x2ab: 0x8c, 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x88, 0x2af: 0x89,\n\t0x2b0: 0x8a, 0x2b1: 0x8b, 0x2b2: 0x8c, 0x2b3: 0x8d, 0x2b4: 0x8e, 0x2b5: 0x88, 0x2b6: 0x89, 0x2b7: 0x8a,\n\t0x2b8: 0x8b, 0x2b9: 0x8c, 0x2ba: 0x8d, 0x2bb: 0x8e, 0x2bc: 0x88, 0x2bd: 0x89, 0x2be: 0x8a, 0x2bf: 0x8b,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8c, 0x2c1: 0x8d, 0x2c2: 0x8e, 0x2c3: 0x88, 0x2c4: 0x89, 0x2c5: 0x8a, 0x2c6: 0x8b, 0x2c7: 0x8c,\n\t0x2c8: 0x8d, 0x2c9: 0x8e, 0x2ca: 0x88, 0x2cb: 0x89, 0x2cc: 0x8a, 0x2cd: 0x8b, 0x2ce: 0x8c, 0x2cf: 0x8d,\n\t0x2d0: 0x8e, 0x2d1: 0x88, 0x2d2: 0x89, 0x2d3: 0x8a, 0x2d4: 0x8b, 0x2d5: 0x8c, 0x2d6: 0x8d, 0x2d7: 0x8e,\n\t0x2d8: 0x88, 0x2d9: 0x89, 0x2da: 0x8a, 0x2db: 0x8b, 0x2dc: 0x8c, 0x2dd: 0x8d, 0x2de: 0x8f,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x90, 0x32d: 0x91, 0x32e: 0x92,\n\t0x331: 0x93, 0x332: 0x94, 0x333: 0x95, 0x334: 0x96,\n\t0x338: 0x97, 0x339: 0x98, 0x33a: 0x99, 0x33b: 0x9a, 0x33e: 0x9b, 0x33f: 0x9c,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9d,\n\t0x34b: 0x9e, 0x34d: 0x9f,\n\t0x368: 0xa0, 0x36b: 0xa1,\n\t0x374: 0xa2,\n\t0x37a: 0xa3, 0x37d: 0xa4,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa5, 0x382: 0xa6, 0x384: 0xa7, 0x385: 0x83, 0x387: 0xa8,\n\t0x388: 0xa9, 0x38b: 0xaa, 0x38c: 0xab, 0x38d: 0xac,\n\t0x391: 0xad, 0x392: 0xae, 0x393: 0xaf, 0x396: 0xb0, 0x397: 0xb1,\n\t0x398: 0x74, 0x39a: 0xb2, 0x39c: 0xb3,\n\t0x3a0: 0xb4, 0x3a4: 0xb5, 0x3a5: 0xb6, 0x3a7: 0xb7,\n\t0x3a8: 0xb8, 0x3a9: 0xb9, 0x3aa: 0xba,\n\t0x3b0: 0x74, 0x3b5: 0xbb, 0x3b6: 0xbc,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xbd, 0x3ec: 0xbe,\n\t0x3ff: 0xbf,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xc0,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xc1, 0x446: 0xc2, 0x447: 0xc3,\n\t0x449: 0xc4,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc5, 0x484: 0xbe,\n\t0x48b: 0xc6,\n\t0x4a3: 0xc7, 0x4a5: 0xc8,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc9,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 156 entries, 312 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x120, 0x122, 0x12b, 0x12d, 0x130, 0x132, 0x13d, 0x141, 0x14f, 0x152, 0x158, 0x15e, 0x169, 0x16d, 0x16f, 0x171, 0x173, 0x175, 0x177, 0x17d, 0x181, 0x183, 0x185, 0x18d, 0x191, 0x194, 0x196, 0x198, 0x19b, 0x19e, 0x1a0, 0x1a2, 0x1a4, 0x1a6, 0x1ac, 0x1af, 0x1b1, 0x1b8, 0x1be, 0x1c4, 0x1cc, 0x1d2, 0x1d8, 0x1de, 0x1e2, 0x1f0, 0x1f9, 0x1fc, 0x1ff, 0x201, 0x204, 0x206, 0x20a, 0x20f, 0x211, 0x213, 0x218, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x254, 0x25c, 0x260, 0x267, 0x26a, 0x270, 0x272, 0x275, 0x277, 0x27a, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x289, 0x28c, 0x28e, 0x290, 0x292, 0x294, 0x296, 0x2a3, 0x2ad, 0x2af, 0x2b1, 0x2b7, 0x2b9, 0x2bb, 0x2be}\n\n// nfcSparseValues: 704 entries, 2816 bytes\nvar nfcSparseValues = [704]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46f9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x472b, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4857, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4875, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36de, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36f6, lo: 0x8d, hi: 0x8d},\n\t{value: 0x488d, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3714, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37bc, lo: 0x90, hi: 0x90},\n\t{value: 0x37c8, lo: 0x91, hi: 0x91},\n\t{value: 0x37b6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x382e, lo: 0x97, hi: 0x97},\n\t{value: 0x37f8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37e0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x380a, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3834, lo: 0xb6, hi: 0xb6},\n\t{value: 0x383a, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3858, lo: 0xa2, hi: 0xa2},\n\t{value: 0x385e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x386a, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3864, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3870, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3882, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3876, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x387c, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3eef, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ef7, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eff, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x4533, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cab, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x4573, lo: 0x9c, hi: 0x9d},\n\t{value: 0x4583, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x45ab, lo: 0xb3, hi: 0xb3},\n\t{value: 0x45b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x458b, lo: 0x99, hi: 0x9b},\n\t{value: 0x45a3, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cc3, lo: 0x88, hi: 0x88},\n\t{value: 0x2cbb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ccb, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45bb, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45c3, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cd3, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cdb, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ceb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ce3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3f07, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2cf3, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cfb, lo: 0x87, hi: 0x87},\n\t{value: 0x2d03, lo: 0x88, hi: 0x88},\n\t{value: 0x2f67, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2def, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d0b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d1b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d13, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6bdd, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3f0f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f6f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2dfa, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d23, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xd0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x264a, lo: 0x83, hi: 0x83},\n\t{value: 0x2651, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2658, lo: 0x92, hi: 0x92},\n\t{value: 0x265f, lo: 0x97, hi: 0x97},\n\t{value: 0x2666, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2643, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a9b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4aa4, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45cb, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45d3, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4aad, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x2674, lo: 0x93, hi: 0x93},\n\t{value: 0x267b, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2682, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2689, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2690, lo: 0xac, hi: 0xac},\n\t{value: 0x266d, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d2b, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfe\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x108\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x94},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x110\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x113\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x116\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x120\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t// Block 0x37, offset 0x122\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d73, lo: 0x80, hi: 0x80},\n\t{value: 0x2d7b, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d83, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x12b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x12d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x130\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x132\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x13d\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0436, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x141\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3e, offset 0x14f\n\t{value: 0x4292, lo: 0x02},\n\t{value: 0x01bb, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3f, offset 0x152\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bd0, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bde, lo: 0xae, hi: 0xae},\n\t// Block 0x40, offset 0x158\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3be5, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bec, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x41, offset 0x15e\n\t{value: 0x63f1, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3bfa, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3c01, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3c08, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3c0f, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3c16, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x42, offset 0x169\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c7f, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3ca9, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cd3, lo: 0xaa, hi: 0xad},\n\t// Block 0x43, offset 0x16d\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048e, lo: 0xa9, hi: 0xaa},\n\t// Block 0x44, offset 0x16f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44f4, lo: 0x9c, hi: 0x9c},\n\t// Block 0x45, offset 0x171\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x46, offset 0x173\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x47, offset 0x175\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x48, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xaf},\n\t// Block 0x49, offset 0x17d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4ab6, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4ab6, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4ab6, lo: 0xba, hi: 0xbf},\n\t// Block 0x4a, offset 0x181\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4ab6, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4b, offset 0x183\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4c, offset 0x185\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4d, offset 0x18d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4e, offset 0x191\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4f, offset 0x194\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x50, offset 0x196\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x51, offset 0x198\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x52, offset 0x19b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x53, offset 0x19e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x54, offset 0x1a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x55, offset 0x1a2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x56, offset 0x1a4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x57, offset 0x1a6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x58, offset 0x1ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x59, offset 0x1af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x5a, offset 0x1b1\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5b, offset 0x1b8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5c, offset 0x1be\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c4\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x60, offset 0x1d8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x61, offset 0x1de\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x62, offset 0x1e2\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x43a7, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8116, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4419, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4407, lo: 0xaa, hi: 0xab},\n\t{value: 0x450b, lo: 0xac, hi: 0xac},\n\t{value: 0x4513, lo: 0xad, hi: 0xad},\n\t{value: 0x435f, lo: 0xae, hi: 0xb1},\n\t{value: 0x437d, lo: 0xb2, hi: 0xb4},\n\t{value: 0x4395, lo: 0xb5, hi: 0xb6},\n\t{value: 0x43a1, lo: 0xb8, hi: 0xb8},\n\t{value: 0x43ad, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43c5, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43cb, lo: 0xbe, hi: 0xbe},\n\t// Block 0x63, offset 0x1f0\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43d1, lo: 0x80, hi: 0x81},\n\t{value: 0x43dd, lo: 0x83, hi: 0x84},\n\t{value: 0x43ef, lo: 0x86, hi: 0x89},\n\t{value: 0x4413, lo: 0x8a, hi: 0x8a},\n\t{value: 0x438f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4377, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43bf, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43e9, lo: 0x8e, hi: 0x8e},\n\t// Block 0x64, offset 0x1f9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x65, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x66, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x67, offset 0x201\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x68, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x69, offset 0x206\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812e, lo: 0xa7, hi: 0xad},\n\t{value: 0x8133, lo: 0xae, hi: 0xaf},\n\t// Block 0x6a, offset 0x20a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6b, offset 0x20f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6c, offset 0x211\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6d, offset 0x213\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4ab6, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4ab6, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4ab6, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4ab6, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6e, offset 0x218\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4ab6, lo: 0x82, hi: 0x87},\n\t{value: 0x4ab6, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4ab6, lo: 0x92, hi: 0x97},\n\t{value: 0x4ab6, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6f, offset 0x21e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x70, offset 0x220\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x71, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x72, offset 0x224\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x22a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x74, offset 0x22d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x75, offset 0x22f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x76, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x77, offset 0x237\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x78, offset 0x23a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x424f, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4259, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x4263, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x79, offset 0x242\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d8b, lo: 0xae, hi: 0xae},\n\t{value: 0x2d95, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x7a, offset 0x249\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7b, offset 0x24c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7c, offset 0x24f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7d, offset 0x251\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7e, offset 0x254\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d9f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2da9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7f, offset 0x25c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x80, offset 0x260\n\t{value: 0x6b4d, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2dbd, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2db3, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dc7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x81, offset 0x267\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x82, offset 0x26a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dd1, lo: 0xba, hi: 0xba},\n\t{value: 0x2ddb, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x83, offset 0x270\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x84, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x85, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x86, offset 0x277\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x87, offset 0x27a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2de5, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x88, offset 0x27f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x89, offset 0x281\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8a, offset 0x283\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8b, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8c, offset 0x287\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8d, offset 0x289\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8e, offset 0x28c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8f, offset 0x28e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x90, offset 0x290\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x91, offset 0x292\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x92, offset 0x294\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x93, offset 0x296\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45e3, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45ed, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4621, lo: 0xa0, hi: 0xa0},\n\t{value: 0x462f, lo: 0xa1, hi: 0xa1},\n\t{value: 0x463d, lo: 0xa2, hi: 0xa2},\n\t{value: 0x464b, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4659, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x94, offset 0x2a3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x45f7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x4601, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4667, lo: 0xbd, hi: 0xbd},\n\t{value: 0x4683, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4675, lo: 0xbf, hi: 0xbf},\n\t// Block 0x95, offset 0x2ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4691, lo: 0x80, hi: 0x80},\n\t// Block 0x96, offset 0x2af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x97, offset 0x2b1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0x98, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0x99, offset 0x2b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0x9a, offset 0x2bb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9b, offset 0x2be\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 18768 bytes (18.33 KiB). Checksum: c51186dd2412943d.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,\n\t0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,\n\t0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,\n\t0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,\n\t0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,\n\t0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,\n\t0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,\n\t0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,\n\t0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,\n\t0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,\n\t0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,\n\t0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,\n\t0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,\n\t0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,\n\t0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,\n\t0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,\n\t0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,\n\t0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,\n\t0x130: 0x30a3, 0x132: 0x1960, 0x133: 0x19ed, 0x134: 0x30cb, 0x135: 0x33d7,\n\t0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,\n\t0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, 0x13f: 0x1bb2,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c3a, 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,\n\t0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, 0x149: 0x1c62,\n\t0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,\n\t0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,\n\t0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,\n\t0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,\n\t0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,\n\t0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,\n\t0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,\n\t0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,\n\t0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2e05, 0x185: 0x2e0b,\n\t0x186: 0x2e11, 0x187: 0x1975, 0x188: 0x1978, 0x189: 0x1a0e, 0x18a: 0x198d, 0x18b: 0x1990,\n\t0x18c: 0x1a44, 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,\n\t0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,\n\t0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,\n\t0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,\n\t0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,\n\t0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,\n\t0x1b0: 0x33dc, 0x1b1: 0x1945, 0x1b2: 0x1948, 0x1b3: 0x19d5, 0x1b4: 0x303f, 0x1b5: 0x334b,\n\t0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,\n\t0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,\n\t0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,\n\t0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,\n\t0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,\n\t0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,\n\t0x1de: 0x3071, 0x1df: 0x337d,\n\t0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,\n\t0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,\n\t0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x0173,\n\t0x27a: 0x42bc,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x4271, 0x285: 0x4492,\n\t0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,\n\t0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,\n\t0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4857, 0x2cb: 0x4875,\n\t0x2cc: 0x36de, 0x2cd: 0x36f6, 0x2ce: 0x488d, 0x2d0: 0x01c1, 0x2d1: 0x01d3,\n\t0x2d2: 0x01af, 0x2d3: 0x4323, 0x2d4: 0x4329, 0x2d5: 0x01fd, 0x2d6: 0x01eb,\n\t0x2f0: 0x01d9, 0x2f1: 0x01ee, 0x2f2: 0x01f1, 0x2f4: 0x018b, 0x2f5: 0x01ca,\n\t0x2f9: 0x01a9,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3738, 0x301: 0x3744, 0x303: 0x3732,\n\t0x306: 0xa000, 0x307: 0x3720,\n\t0x30c: 0x3774, 0x30d: 0x375c, 0x30e: 0x3786, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3768, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37ec, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x374a, 0x342: 0x37ce,\n\t0x350: 0x3726, 0x351: 0x37aa,\n\t0x352: 0x372c, 0x353: 0x37b0, 0x356: 0x373e, 0x357: 0x37c2,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3840, 0x35b: 0x3846, 0x35c: 0x3750, 0x35d: 0x37d4,\n\t0x35e: 0x3756, 0x35f: 0x37da, 0x362: 0x3762, 0x363: 0x37e6,\n\t0x364: 0x376e, 0x365: 0x37f2, 0x366: 0x377a, 0x367: 0x37fe, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x384c, 0x36b: 0x3852, 0x36c: 0x37a4, 0x36d: 0x3828, 0x36e: 0x3780, 0x36f: 0x3804,\n\t0x370: 0x378c, 0x371: 0x3810, 0x372: 0x3792, 0x373: 0x3816, 0x374: 0x3798, 0x375: 0x381c,\n\t0x378: 0x379e, 0x379: 0x3822,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d67,\n\t0x391: 0x812e,\n\t0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e,\n\t0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133,\n\t0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133,\n\t0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b,\n\t0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110,\n\t0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117,\n\t0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d,\n\t0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x812e,\n\t0x3f0: 0x811f, 0x3f5: 0x1d8a,\n\t0x3f6: 0x2019, 0x3f7: 0x2055, 0x3f8: 0x2050,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,\n\t0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133,\n\t0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e,\n\t0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e,\n\t0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e,\n\t0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133,\n\t0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133,\n\t0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d33, 0x447: 0xa000, 0x448: 0x2d3b, 0x449: 0xa000, 0x44a: 0x2d43, 0x44b: 0xa000,\n\t0x44c: 0x2d4b, 0x44d: 0xa000, 0x44e: 0x2d53, 0x451: 0xa000,\n\t0x452: 0x2d5b,\n\t0x474: 0x8103, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d63,\n\t0x47c: 0xa000, 0x47d: 0x2d6b, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0416, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x041a, 0x495: 0x041e, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0426, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x042a, 0x49d: 0x01c1,\n\t0x49e: 0x01c4, 0x49f: 0x01c7, 0x4a0: 0x01fd, 0x4a1: 0x0200, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01c1, 0x4a7: 0x01c4, 0x4a8: 0x01ee, 0x4a9: 0x01fd,\n\t0x4aa: 0x0200,\n\t0x4b8: 0x020f,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042e, 0x4e8: 0x016d, 0x4e9: 0x0128,\n\t0x4ea: 0x0432, 0x4eb: 0x0170, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x0422, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x0161, 0x4fd: 0x0164, 0x4fe: 0x0167, 0x4ff: 0x01d3,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133,\n\t0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133,\n\t0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133,\n\t0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133,\n\t0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133,\n\t0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133,\n\t0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133,\n\t0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133,\n\t0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133,\n\t0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53b: 0x8133,\n\t0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2fae, 0x541: 0x32ba, 0x542: 0x2fb8, 0x543: 0x32c4, 0x544: 0x2fbd, 0x545: 0x32c9,\n\t0x546: 0x2fc2, 0x547: 0x32ce, 0x548: 0x38e3, 0x549: 0x3a72, 0x54a: 0x2fdb, 0x54b: 0x32e7,\n\t0x54c: 0x2fe5, 0x54d: 0x32f1, 0x54e: 0x2ff4, 0x54f: 0x3300, 0x550: 0x2fea, 0x551: 0x32f6,\n\t0x552: 0x2fef, 0x553: 0x32fb, 0x554: 0x3906, 0x555: 0x3a95, 0x556: 0x390d, 0x557: 0x3a9c,\n\t0x558: 0x3030, 0x559: 0x333c, 0x55a: 0x3035, 0x55b: 0x3341, 0x55c: 0x391b, 0x55d: 0x3aaa,\n\t0x55e: 0x303a, 0x55f: 0x3346, 0x560: 0x3049, 0x561: 0x3355, 0x562: 0x3067, 0x563: 0x3373,\n\t0x564: 0x3076, 0x565: 0x3382, 0x566: 0x306c, 0x567: 0x3378, 0x568: 0x307b, 0x569: 0x3387,\n\t0x56a: 0x3080, 0x56b: 0x338c, 0x56c: 0x30c6, 0x56d: 0x33d2, 0x56e: 0x3922, 0x56f: 0x3ab1,\n\t0x570: 0x30d0, 0x571: 0x33e1, 0x572: 0x30da, 0x573: 0x33eb, 0x574: 0x30e4, 0x575: 0x33f5,\n\t0x576: 0x46db, 0x577: 0x476c, 0x578: 0x3929, 0x579: 0x3ab8, 0x57a: 0x30fd, 0x57b: 0x340e,\n\t0x57c: 0x30f8, 0x57d: 0x3409, 0x57e: 0x3102, 0x57f: 0x3413,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3107, 0x581: 0x3418, 0x582: 0x310c, 0x583: 0x341d, 0x584: 0x3120, 0x585: 0x3431,\n\t0x586: 0x312a, 0x587: 0x343b, 0x588: 0x3139, 0x589: 0x344a, 0x58a: 0x3134, 0x58b: 0x3445,\n\t0x58c: 0x394c, 0x58d: 0x3adb, 0x58e: 0x395a, 0x58f: 0x3ae9, 0x590: 0x3961, 0x591: 0x3af0,\n\t0x592: 0x3968, 0x593: 0x3af7, 0x594: 0x3166, 0x595: 0x3477, 0x596: 0x316b, 0x597: 0x347c,\n\t0x598: 0x3175, 0x599: 0x3486, 0x59a: 0x4708, 0x59b: 0x4799, 0x59c: 0x39ae, 0x59d: 0x3b3d,\n\t0x59e: 0x318e, 0x59f: 0x349f, 0x5a0: 0x3198, 0x5a1: 0x34a9, 0x5a2: 0x4717, 0x5a3: 0x47a8,\n\t0x5a4: 0x39b5, 0x5a5: 0x3b44, 0x5a6: 0x39bc, 0x5a7: 0x3b4b, 0x5a8: 0x39c3, 0x5a9: 0x3b52,\n\t0x5aa: 0x31a7, 0x5ab: 0x34b8, 0x5ac: 0x31b1, 0x5ad: 0x34c7, 0x5ae: 0x31c5, 0x5af: 0x34db,\n\t0x5b0: 0x31c0, 0x5b1: 0x34d6, 0x5b2: 0x3201, 0x5b3: 0x3517, 0x5b4: 0x3210, 0x5b5: 0x3526,\n\t0x5b6: 0x320b, 0x5b7: 0x3521, 0x5b8: 0x39ca, 0x5b9: 0x3b59, 0x5ba: 0x39d1, 0x5bb: 0x3b60,\n\t0x5bc: 0x3215, 0x5bd: 0x352b, 0x5be: 0x321a, 0x5bf: 0x3530,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x321f, 0x5c1: 0x3535, 0x5c2: 0x3224, 0x5c3: 0x353a, 0x5c4: 0x3233, 0x5c5: 0x3549,\n\t0x5c6: 0x322e, 0x5c7: 0x3544, 0x5c8: 0x3238, 0x5c9: 0x3553, 0x5ca: 0x323d, 0x5cb: 0x3558,\n\t0x5cc: 0x3242, 0x5cd: 0x355d, 0x5ce: 0x3260, 0x5cf: 0x357b, 0x5d0: 0x3279, 0x5d1: 0x3599,\n\t0x5d2: 0x3288, 0x5d3: 0x35a8, 0x5d4: 0x328d, 0x5d5: 0x35ad, 0x5d6: 0x3391, 0x5d7: 0x34bd,\n\t0x5d8: 0x354e, 0x5d9: 0x358a, 0x5da: 0x1be6, 0x5db: 0x42ee,\n\t0x5e0: 0x46b8, 0x5e1: 0x4749, 0x5e2: 0x2f9a, 0x5e3: 0x32a6,\n\t0x5e4: 0x388f, 0x5e5: 0x3a1e, 0x5e6: 0x3888, 0x5e7: 0x3a17, 0x5e8: 0x389d, 0x5e9: 0x3a2c,\n\t0x5ea: 0x3896, 0x5eb: 0x3a25, 0x5ec: 0x38d5, 0x5ed: 0x3a64, 0x5ee: 0x38ab, 0x5ef: 0x3a3a,\n\t0x5f0: 0x38a4, 0x5f1: 0x3a33, 0x5f2: 0x38b9, 0x5f3: 0x3a48, 0x5f4: 0x38b2, 0x5f5: 0x3a41,\n\t0x5f6: 0x38dc, 0x5f7: 0x3a6b, 0x5f8: 0x46cc, 0x5f9: 0x475d, 0x5fa: 0x3017, 0x5fb: 0x3323,\n\t0x5fc: 0x3003, 0x5fd: 0x330f, 0x5fe: 0x38f1, 0x5ff: 0x3a80,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38ea, 0x601: 0x3a79, 0x602: 0x38ff, 0x603: 0x3a8e, 0x604: 0x38f8, 0x605: 0x3a87,\n\t0x606: 0x3914, 0x607: 0x3aa3, 0x608: 0x30a8, 0x609: 0x33b4, 0x60a: 0x30bc, 0x60b: 0x33c8,\n\t0x60c: 0x46fe, 0x60d: 0x478f, 0x60e: 0x314d, 0x60f: 0x345e, 0x610: 0x3937, 0x611: 0x3ac6,\n\t0x612: 0x3930, 0x613: 0x3abf, 0x614: 0x3945, 0x615: 0x3ad4, 0x616: 0x393e, 0x617: 0x3acd,\n\t0x618: 0x39a0, 0x619: 0x3b2f, 0x61a: 0x3984, 0x61b: 0x3b13, 0x61c: 0x397d, 0x61d: 0x3b0c,\n\t0x61e: 0x3992, 0x61f: 0x3b21, 0x620: 0x398b, 0x621: 0x3b1a, 0x622: 0x3999, 0x623: 0x3b28,\n\t0x624: 0x31fc, 0x625: 0x3512, 0x626: 0x31de, 0x627: 0x34f4, 0x628: 0x39fb, 0x629: 0x3b8a,\n\t0x62a: 0x39f4, 0x62b: 0x3b83, 0x62c: 0x3a09, 0x62d: 0x3b98, 0x62e: 0x3a02, 0x62f: 0x3b91,\n\t0x630: 0x3a10, 0x631: 0x3b9f, 0x632: 0x3247, 0x633: 0x3562, 0x634: 0x326f, 0x635: 0x358f,\n\t0x636: 0x326a, 0x637: 0x3585, 0x638: 0x3256, 0x639: 0x3571,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x481b, 0x641: 0x4821, 0x642: 0x4935, 0x643: 0x494d, 0x644: 0x493d, 0x645: 0x4955,\n\t0x646: 0x4945, 0x647: 0x495d, 0x648: 0x47c1, 0x649: 0x47c7, 0x64a: 0x48a5, 0x64b: 0x48bd,\n\t0x64c: 0x48ad, 0x64d: 0x48c5, 0x64e: 0x48b5, 0x64f: 0x48cd, 0x650: 0x482d, 0x651: 0x4833,\n\t0x652: 0x3dcf, 0x653: 0x3ddf, 0x654: 0x3dd7, 0x655: 0x3de7,\n\t0x658: 0x47cd, 0x659: 0x47d3, 0x65a: 0x3cff, 0x65b: 0x3d0f, 0x65c: 0x3d07, 0x65d: 0x3d17,\n\t0x660: 0x4845, 0x661: 0x484b, 0x662: 0x4965, 0x663: 0x497d,\n\t0x664: 0x496d, 0x665: 0x4985, 0x666: 0x4975, 0x667: 0x498d, 0x668: 0x47d9, 0x669: 0x47df,\n\t0x66a: 0x48d5, 0x66b: 0x48ed, 0x66c: 0x48dd, 0x66d: 0x48f5, 0x66e: 0x48e5, 0x66f: 0x48fd,\n\t0x670: 0x485d, 0x671: 0x4863, 0x672: 0x3e2f, 0x673: 0x3e47, 0x674: 0x3e37, 0x675: 0x3e4f,\n\t0x676: 0x3e3f, 0x677: 0x3e57, 0x678: 0x47e5, 0x679: 0x47eb, 0x67a: 0x3d2f, 0x67b: 0x3d47,\n\t0x67c: 0x3d37, 0x67d: 0x3d4f, 0x67e: 0x3d3f, 0x67f: 0x3d57,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4869, 0x681: 0x486f, 0x682: 0x3e5f, 0x683: 0x3e6f, 0x684: 0x3e67, 0x685: 0x3e77,\n\t0x688: 0x47f1, 0x689: 0x47f7, 0x68a: 0x3d5f, 0x68b: 0x3d6f,\n\t0x68c: 0x3d67, 0x68d: 0x3d77, 0x690: 0x487b, 0x691: 0x4881,\n\t0x692: 0x3e97, 0x693: 0x3eaf, 0x694: 0x3e9f, 0x695: 0x3eb7, 0x696: 0x3ea7, 0x697: 0x3ebf,\n\t0x699: 0x47fd, 0x69b: 0x3d7f, 0x69d: 0x3d87,\n\t0x69f: 0x3d8f, 0x6a0: 0x4893, 0x6a1: 0x4899, 0x6a2: 0x4995, 0x6a3: 0x49ad,\n\t0x6a4: 0x499d, 0x6a5: 0x49b5, 0x6a6: 0x49a5, 0x6a7: 0x49bd, 0x6a8: 0x4803, 0x6a9: 0x4809,\n\t0x6aa: 0x4905, 0x6ab: 0x491d, 0x6ac: 0x490d, 0x6ad: 0x4925, 0x6ae: 0x4915, 0x6af: 0x492d,\n\t0x6b0: 0x480f, 0x6b1: 0x4335, 0x6b2: 0x36a8, 0x6b3: 0x433b, 0x6b4: 0x4839, 0x6b5: 0x4341,\n\t0x6b6: 0x36ba, 0x6b7: 0x4347, 0x6b8: 0x36d8, 0x6b9: 0x434d, 0x6ba: 0x36f0, 0x6bb: 0x4353,\n\t0x6bc: 0x4887, 0x6bd: 0x4359,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3db7, 0x6c1: 0x3dbf, 0x6c2: 0x419b, 0x6c3: 0x41b9, 0x6c4: 0x41a5, 0x6c5: 0x41c3,\n\t0x6c6: 0x41af, 0x6c7: 0x41cd, 0x6c8: 0x3cef, 0x6c9: 0x3cf7, 0x6ca: 0x40e7, 0x6cb: 0x4105,\n\t0x6cc: 0x40f1, 0x6cd: 0x410f, 0x6ce: 0x40fb, 0x6cf: 0x4119, 0x6d0: 0x3dff, 0x6d1: 0x3e07,\n\t0x6d2: 0x41d7, 0x6d3: 0x41f5, 0x6d4: 0x41e1, 0x6d5: 0x41ff, 0x6d6: 0x41eb, 0x6d7: 0x4209,\n\t0x6d8: 0x3d1f, 0x6d9: 0x3d27, 0x6da: 0x4123, 0x6db: 0x4141, 0x6dc: 0x412d, 0x6dd: 0x414b,\n\t0x6de: 0x4137, 0x6df: 0x4155, 0x6e0: 0x3ed7, 0x6e1: 0x3edf, 0x6e2: 0x4213, 0x6e3: 0x4231,\n\t0x6e4: 0x421d, 0x6e5: 0x423b, 0x6e6: 0x4227, 0x6e7: 0x4245, 0x6e8: 0x3d97, 0x6e9: 0x3d9f,\n\t0x6ea: 0x415f, 0x6eb: 0x417d, 0x6ec: 0x4169, 0x6ed: 0x4187, 0x6ee: 0x4173, 0x6ef: 0x4191,\n\t0x6f0: 0x369c, 0x6f1: 0x3696, 0x6f2: 0x3da7, 0x6f3: 0x36a2, 0x6f4: 0x3daf,\n\t0x6f6: 0x4827, 0x6f7: 0x3dc7, 0x6f8: 0x360c, 0x6f9: 0x3606, 0x6fa: 0x35fa, 0x6fb: 0x4305,\n\t0x6fc: 0x3612, 0x6fd: 0x429e, 0x6fe: 0x01d6, 0x6ff: 0x429e,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42b7, 0x701: 0x4499, 0x702: 0x3def, 0x703: 0x36b4, 0x704: 0x3df7,\n\t0x706: 0x4851, 0x707: 0x3e0f, 0x708: 0x3618, 0x709: 0x430b, 0x70a: 0x3624, 0x70b: 0x4311,\n\t0x70c: 0x3630, 0x70d: 0x44a0, 0x70e: 0x44a7, 0x70f: 0x44ae, 0x710: 0x36cc, 0x711: 0x36c6,\n\t0x712: 0x3e17, 0x713: 0x44fb, 0x716: 0x36d2, 0x717: 0x3e27,\n\t0x718: 0x3648, 0x719: 0x3642, 0x71a: 0x3636, 0x71b: 0x4317, 0x71d: 0x44b5,\n\t0x71e: 0x44bc, 0x71f: 0x44c3, 0x720: 0x3702, 0x721: 0x36fc, 0x722: 0x3e7f, 0x723: 0x4503,\n\t0x724: 0x36e4, 0x725: 0x36ea, 0x726: 0x3708, 0x727: 0x3e8f, 0x728: 0x3678, 0x729: 0x3672,\n\t0x72a: 0x3666, 0x72b: 0x4323, 0x72c: 0x3660, 0x72d: 0x448b, 0x72e: 0x4492, 0x72f: 0x0081,\n\t0x732: 0x3ec7, 0x733: 0x370e, 0x734: 0x3ecf,\n\t0x736: 0x489f, 0x737: 0x3ee7, 0x738: 0x3654, 0x739: 0x431d, 0x73a: 0x3684, 0x73b: 0x432f,\n\t0x73c: 0x3690, 0x73d: 0x4271, 0x73e: 0x42a3,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bde, 0x741: 0x1be2, 0x742: 0x0047, 0x743: 0x1c5a, 0x745: 0x1bee,\n\t0x746: 0x1bf2, 0x747: 0x00e9, 0x749: 0x1c5e, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1993,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x19a5, 0x761: 0x1bce, 0x762: 0x19ae,\n\t0x764: 0x0075, 0x766: 0x01bb, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42e9, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0218,\n\t0x776: 0x021b, 0x777: 0x021e, 0x778: 0x0221, 0x779: 0x0093, 0x77b: 0x1b9e,\n\t0x77c: 0x01eb, 0x77d: 0x01c4, 0x77e: 0x017c, 0x77f: 0x01a3,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0466, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x2234, 0x791: 0x2240,\n\t0x792: 0x22f4, 0x793: 0x221c, 0x794: 0x22a0, 0x795: 0x2228, 0x796: 0x22a6, 0x797: 0x22be,\n\t0x798: 0x22ca, 0x799: 0x222e, 0x79a: 0x22d0, 0x79b: 0x223a, 0x79c: 0x22c4, 0x79d: 0x22d6,\n\t0x79e: 0x22dc, 0x79f: 0x1cc2, 0x7a0: 0x0053, 0x7a1: 0x195d, 0x7a2: 0x1baa, 0x7a3: 0x1966,\n\t0x7a4: 0x006d, 0x7a5: 0x19b1, 0x7a6: 0x1bd6, 0x7a7: 0x1d4e, 0x7a8: 0x1969, 0x7a9: 0x0071,\n\t0x7aa: 0x19bd, 0x7ab: 0x1bda, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19ea, 0x7b2: 0x1c1e, 0x7b3: 0x19f3, 0x7b4: 0x00ad, 0x7b5: 0x1a68,\n\t0x7b6: 0x1c52, 0x7b7: 0x1d62, 0x7b8: 0x19f6, 0x7b9: 0x00b1, 0x7ba: 0x1a6b, 0x7bb: 0x1c56,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c1d, 0x7c3: 0xa000, 0x7c4: 0x3c24, 0x7c5: 0xa000,\n\t0x7c7: 0x3c2b, 0x7c8: 0xa000, 0x7c9: 0x3c32,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f7c, 0x7e1: 0xa000, 0x7e2: 0x3c40,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c39, 0x7ee: 0x2f77, 0x7ef: 0x2f81,\n\t0x7f0: 0x3c47, 0x7f1: 0x3c4e, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c55, 0x7f5: 0x3c5c,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c63, 0x7f9: 0x3c6a, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c71, 0x801: 0x3c78, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c8d, 0x805: 0x3c94,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c9b, 0x809: 0x3ca2,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3cb7, 0x82d: 0x3cbe, 0x82e: 0x3cc5, 0x82f: 0x3ccc,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1885,\n\t0x86a: 0x1888, 0x86b: 0x188b, 0x86c: 0x188e, 0x86d: 0x1891, 0x86e: 0x1894, 0x86f: 0x1897,\n\t0x870: 0x189a, 0x871: 0x189d, 0x872: 0x18a0, 0x873: 0x18a9, 0x874: 0x1a6e, 0x875: 0x1a72,\n\t0x876: 0x1a76, 0x877: 0x1a7a, 0x878: 0x1a7e, 0x879: 0x1a82, 0x87a: 0x1a86, 0x87b: 0x1a8a,\n\t0x87c: 0x1a8e, 0x87d: 0x1c86, 0x87e: 0x1c8b, 0x87f: 0x1c90,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c95, 0x881: 0x1c9a, 0x882: 0x1c9f, 0x883: 0x1ca4, 0x884: 0x1ca9, 0x885: 0x1cae,\n\t0x886: 0x1cb3, 0x887: 0x1cb8, 0x888: 0x1882, 0x889: 0x18a6, 0x88a: 0x18ca, 0x88b: 0x18ee,\n\t0x88c: 0x1912, 0x88d: 0x191b, 0x88e: 0x1921, 0x88f: 0x1927, 0x890: 0x192d, 0x891: 0x1b66,\n\t0x892: 0x1b6a, 0x893: 0x1b6e, 0x894: 0x1b72, 0x895: 0x1b76, 0x896: 0x1b7a, 0x897: 0x1b7e,\n\t0x898: 0x1b82, 0x899: 0x1b86, 0x89a: 0x1b8a, 0x89b: 0x1b8e, 0x89c: 0x1afa, 0x89d: 0x1afe,\n\t0x89e: 0x1b02, 0x89f: 0x1b06, 0x8a0: 0x1b0a, 0x8a1: 0x1b0e, 0x8a2: 0x1b12, 0x8a3: 0x1b16,\n\t0x8a4: 0x1b1a, 0x8a5: 0x1b1e, 0x8a6: 0x1b22, 0x8a7: 0x1b26, 0x8a8: 0x1b2a, 0x8a9: 0x1b2e,\n\t0x8aa: 0x1b32, 0x8ab: 0x1b36, 0x8ac: 0x1b3a, 0x8ad: 0x1b3e, 0x8ae: 0x1b42, 0x8af: 0x1b46,\n\t0x8b0: 0x1b4a, 0x8b1: 0x1b4e, 0x8b2: 0x1b52, 0x8b3: 0x1b56, 0x8b4: 0x1b5a, 0x8b5: 0x1b5e,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06c2, 0x8c1: 0x06e6, 0x8c2: 0x06f2, 0x8c3: 0x0702, 0x8c4: 0x070a, 0x8c5: 0x0716,\n\t0x8c6: 0x071e, 0x8c7: 0x0726, 0x8c8: 0x0732, 0x8c9: 0x0786, 0x8ca: 0x079e, 0x8cb: 0x07ae,\n\t0x8cc: 0x07be, 0x8cd: 0x07ce, 0x8ce: 0x07de, 0x8cf: 0x07fe, 0x8d0: 0x0802, 0x8d1: 0x0806,\n\t0x8d2: 0x083a, 0x8d3: 0x0862, 0x8d4: 0x0872, 0x8d5: 0x087a, 0x8d6: 0x087e, 0x8d7: 0x088a,\n\t0x8d8: 0x08a6, 0x8d9: 0x08aa, 0x8da: 0x08c2, 0x8db: 0x08c6, 0x8dc: 0x08ce, 0x8dd: 0x08de,\n\t0x8de: 0x097a, 0x8df: 0x098e, 0x8e0: 0x09ce, 0x8e1: 0x09e2, 0x8e2: 0x09ea, 0x8e3: 0x09ee,\n\t0x8e4: 0x09fe, 0x8e5: 0x0a1a, 0x8e6: 0x0a46, 0x8e7: 0x0a52, 0x8e8: 0x0a72, 0x8e9: 0x0a7e,\n\t0x8ea: 0x0a82, 0x8eb: 0x0a86, 0x8ec: 0x0a9e, 0x8ed: 0x0aa2, 0x8ee: 0x0ace, 0x8ef: 0x0ada,\n\t0x8f0: 0x0ae2, 0x8f1: 0x0aea, 0x8f2: 0x0afa, 0x8f3: 0x0b02, 0x8f4: 0x0b0a, 0x8f5: 0x0b36,\n\t0x8f6: 0x0b3a, 0x8f7: 0x0b42, 0x8f8: 0x0b46, 0x8f9: 0x0b4e, 0x8fa: 0x0b56, 0x8fb: 0x0b66,\n\t0x8fc: 0x0b82, 0x8fd: 0x0bfa, 0x8fe: 0x0c0e, 0x8ff: 0x0c12,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c92, 0x901: 0x0c96, 0x902: 0x0caa, 0x903: 0x0cae, 0x904: 0x0cb6, 0x905: 0x0cbe,\n\t0x906: 0x0cc6, 0x907: 0x0cd2, 0x908: 0x0cfa, 0x909: 0x0d0a, 0x90a: 0x0d1e, 0x90b: 0x0d8e,\n\t0x90c: 0x0d9a, 0x90d: 0x0daa, 0x90e: 0x0db6, 0x90f: 0x0dc2, 0x910: 0x0dca, 0x911: 0x0dce,\n\t0x912: 0x0dd2, 0x913: 0x0dd6, 0x914: 0x0dda, 0x915: 0x0e92, 0x916: 0x0eda, 0x917: 0x0ee6,\n\t0x918: 0x0eea, 0x919: 0x0eee, 0x91a: 0x0ef2, 0x91b: 0x0efa, 0x91c: 0x0efe, 0x91d: 0x0f12,\n\t0x91e: 0x0f2e, 0x91f: 0x0f36, 0x920: 0x0f76, 0x921: 0x0f7a, 0x922: 0x0f82, 0x923: 0x0f86,\n\t0x924: 0x0f8e, 0x925: 0x0f92, 0x926: 0x0fb6, 0x927: 0x0fba, 0x928: 0x0fd6, 0x929: 0x0fda,\n\t0x92a: 0x0fde, 0x92b: 0x0fe2, 0x92c: 0x0ff6, 0x92d: 0x101a, 0x92e: 0x101e, 0x92f: 0x1022,\n\t0x930: 0x1046, 0x931: 0x1086, 0x932: 0x108a, 0x933: 0x10aa, 0x934: 0x10ba, 0x935: 0x10c2,\n\t0x936: 0x10e2, 0x937: 0x1106, 0x938: 0x114a, 0x939: 0x1152, 0x93a: 0x1166, 0x93b: 0x1172,\n\t0x93c: 0x117a, 0x93d: 0x1182, 0x93e: 0x1186, 0x93f: 0x118a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x11a2, 0x941: 0x11a6, 0x942: 0x11c2, 0x943: 0x11ca, 0x944: 0x11d2, 0x945: 0x11d6,\n\t0x946: 0x11e2, 0x947: 0x11ea, 0x948: 0x11ee, 0x949: 0x11f2, 0x94a: 0x11fa, 0x94b: 0x11fe,\n\t0x94c: 0x129e, 0x94d: 0x12b2, 0x94e: 0x12e6, 0x94f: 0x12ea, 0x950: 0x12f2, 0x951: 0x131e,\n\t0x952: 0x1326, 0x953: 0x132e, 0x954: 0x1336, 0x955: 0x1372, 0x956: 0x1376, 0x957: 0x137e,\n\t0x958: 0x1382, 0x959: 0x1386, 0x95a: 0x13b2, 0x95b: 0x13b6, 0x95c: 0x13be, 0x95d: 0x13d2,\n\t0x95e: 0x13d6, 0x95f: 0x13f2, 0x960: 0x13fa, 0x961: 0x13fe, 0x962: 0x1422, 0x963: 0x1442,\n\t0x964: 0x1456, 0x965: 0x145a, 0x966: 0x1462, 0x967: 0x148e, 0x968: 0x1492, 0x969: 0x14a2,\n\t0x96a: 0x14c6, 0x96b: 0x14d2, 0x96c: 0x14e2, 0x96d: 0x14fa, 0x96e: 0x1502, 0x96f: 0x1506,\n\t0x970: 0x150a, 0x971: 0x150e, 0x972: 0x151a, 0x973: 0x151e, 0x974: 0x1526, 0x975: 0x1542,\n\t0x976: 0x1546, 0x977: 0x154a, 0x978: 0x1562, 0x979: 0x1566, 0x97a: 0x156e, 0x97b: 0x1582,\n\t0x97c: 0x1586, 0x97d: 0x158a, 0x97e: 0x1592, 0x97f: 0x1596,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f1f, 0x98d: 0xa000, 0x98e: 0x3f27, 0x98f: 0xa000, 0x990: 0x3f2f, 0x991: 0xa000,\n\t0x992: 0x3f37, 0x993: 0xa000, 0x994: 0x3f3f, 0x995: 0xa000, 0x996: 0x3f47, 0x997: 0xa000,\n\t0x998: 0x3f4f, 0x999: 0xa000, 0x99a: 0x3f57, 0x99b: 0xa000, 0x99c: 0x3f5f, 0x99d: 0xa000,\n\t0x99e: 0x3f67, 0x99f: 0xa000, 0x9a0: 0x3f6f, 0x9a1: 0xa000, 0x9a2: 0x3f77,\n\t0x9a4: 0xa000, 0x9a5: 0x3f7f, 0x9a6: 0xa000, 0x9a7: 0x3f87, 0x9a8: 0xa000, 0x9a9: 0x3f8f,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f97, 0x9b1: 0x3f9f, 0x9b2: 0xa000, 0x9b3: 0x3fa7, 0x9b4: 0x3faf, 0x9b5: 0xa000,\n\t0x9b6: 0x3fb7, 0x9b7: 0x3fbf, 0x9b8: 0xa000, 0x9b9: 0x3fc7, 0x9ba: 0x3fcf, 0x9bb: 0xa000,\n\t0x9bc: 0x3fd7, 0x9bd: 0x3fdf,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f17,\n\t0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x42f3, 0x9dc: 0x42f9, 0x9dd: 0xa000,\n\t0x9de: 0x3fe7, 0x9df: 0x26ba,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3ff7, 0x9ed: 0xa000, 0x9ee: 0x3fff, 0x9ef: 0xa000,\n\t0x9f0: 0x4007, 0x9f1: 0xa000, 0x9f2: 0x400f, 0x9f3: 0xa000, 0x9f4: 0x4017, 0x9f5: 0xa000,\n\t0x9f6: 0x401f, 0x9f7: 0xa000, 0x9f8: 0x4027, 0x9f9: 0xa000, 0x9fa: 0x402f, 0x9fb: 0xa000,\n\t0x9fc: 0x4037, 0x9fd: 0xa000, 0x9fe: 0x403f, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4047, 0xa01: 0xa000, 0xa02: 0x404f, 0xa04: 0xa000, 0xa05: 0x4057,\n\t0xa06: 0xa000, 0xa07: 0x405f, 0xa08: 0xa000, 0xa09: 0x4067,\n\t0xa0f: 0xa000, 0xa10: 0x406f, 0xa11: 0x4077,\n\t0xa12: 0xa000, 0xa13: 0x407f, 0xa14: 0x4087, 0xa15: 0xa000, 0xa16: 0x408f, 0xa17: 0x4097,\n\t0xa18: 0xa000, 0xa19: 0x409f, 0xa1a: 0x40a7, 0xa1b: 0xa000, 0xa1c: 0x40af, 0xa1d: 0x40b7,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fef,\n\t0xa37: 0x40bf, 0xa38: 0x40c7, 0xa39: 0x40cf, 0xa3a: 0x40d7,\n\t0xa3d: 0xa000, 0xa3e: 0x40df, 0xa3f: 0x26cf,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x036a, 0xa41: 0x032e, 0xa42: 0x0332, 0xa43: 0x0336, 0xa44: 0x037e, 0xa45: 0x033a,\n\t0xa46: 0x033e, 0xa47: 0x0342, 0xa48: 0x0346, 0xa49: 0x034a, 0xa4a: 0x034e, 0xa4b: 0x0352,\n\t0xa4c: 0x0356, 0xa4d: 0x035a, 0xa4e: 0x035e, 0xa4f: 0x49d4, 0xa50: 0x49da, 0xa51: 0x49e0,\n\t0xa52: 0x49e6, 0xa53: 0x49ec, 0xa54: 0x49f2, 0xa55: 0x49f8, 0xa56: 0x49fe, 0xa57: 0x4a04,\n\t0xa58: 0x4a0a, 0xa59: 0x4a10, 0xa5a: 0x4a16, 0xa5b: 0x4a1c, 0xa5c: 0x4a22, 0xa5d: 0x4a28,\n\t0xa5e: 0x4a2e, 0xa5f: 0x4a34, 0xa60: 0x4a3a, 0xa61: 0x4a40, 0xa62: 0x4a46, 0xa63: 0x4a4c,\n\t0xa64: 0x03c6, 0xa65: 0x0362, 0xa66: 0x0366, 0xa67: 0x03ea, 0xa68: 0x03ee, 0xa69: 0x03f2,\n\t0xa6a: 0x03f6, 0xa6b: 0x03fa, 0xa6c: 0x03fe, 0xa6d: 0x0402, 0xa6e: 0x036e, 0xa6f: 0x0406,\n\t0xa70: 0x040a, 0xa71: 0x0372, 0xa72: 0x0376, 0xa73: 0x037a, 0xa74: 0x0382, 0xa75: 0x0386,\n\t0xa76: 0x038a, 0xa77: 0x038e, 0xa78: 0x0392, 0xa79: 0x0396, 0xa7a: 0x039a, 0xa7b: 0x039e,\n\t0xa7c: 0x03a2, 0xa7d: 0x03a6, 0xa7e: 0x03aa, 0xa7f: 0x03ae,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03b2, 0xa81: 0x03b6, 0xa82: 0x040e, 0xa83: 0x0412, 0xa84: 0x03ba, 0xa85: 0x03be,\n\t0xa86: 0x03c2, 0xa87: 0x03ca, 0xa88: 0x03ce, 0xa89: 0x03d2, 0xa8a: 0x03d6, 0xa8b: 0x03da,\n\t0xa8c: 0x03de, 0xa8d: 0x03e2, 0xa8e: 0x03e6,\n\t0xa92: 0x06c2, 0xa93: 0x071e, 0xa94: 0x06ce, 0xa95: 0x097e, 0xa96: 0x06d2, 0xa97: 0x06ea,\n\t0xa98: 0x06d6, 0xa99: 0x0f96, 0xa9a: 0x070a, 0xa9b: 0x06de, 0xa9c: 0x06c6, 0xa9d: 0x0a02,\n\t0xa9e: 0x0992, 0xa9f: 0x0732,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x205a, 0xac1: 0x2060, 0xac2: 0x2066, 0xac3: 0x206c, 0xac4: 0x2072, 0xac5: 0x2078,\n\t0xac6: 0x207e, 0xac7: 0x2084, 0xac8: 0x208a, 0xac9: 0x2090, 0xaca: 0x2096, 0xacb: 0x209c,\n\t0xacc: 0x20a2, 0xacd: 0x20a8, 0xace: 0x2733, 0xacf: 0x273c, 0xad0: 0x2745, 0xad1: 0x274e,\n\t0xad2: 0x2757, 0xad3: 0x2760, 0xad4: 0x2769, 0xad5: 0x2772, 0xad6: 0x277b, 0xad7: 0x278d,\n\t0xad8: 0x2796, 0xad9: 0x279f, 0xada: 0x27a8, 0xadb: 0x27b1, 0xadc: 0x2784, 0xadd: 0x2bb9,\n\t0xade: 0x2afa, 0xae0: 0x20ae, 0xae1: 0x20c6, 0xae2: 0x20ba, 0xae3: 0x210e,\n\t0xae4: 0x20cc, 0xae5: 0x20ea, 0xae6: 0x20b4, 0xae7: 0x20e4, 0xae8: 0x20c0, 0xae9: 0x20f6,\n\t0xaea: 0x2126, 0xaeb: 0x2144, 0xaec: 0x213e, 0xaed: 0x2132, 0xaee: 0x2180, 0xaef: 0x2114,\n\t0xaf0: 0x2120, 0xaf1: 0x2138, 0xaf2: 0x212c, 0xaf3: 0x2156, 0xaf4: 0x2102, 0xaf5: 0x214a,\n\t0xaf6: 0x2174, 0xaf7: 0x215c, 0xaf8: 0x20f0, 0xaf9: 0x20d2, 0xafa: 0x2108, 0xafb: 0x211a,\n\t0xafc: 0x2150, 0xafd: 0x20d8, 0xafe: 0x217a, 0xaff: 0x20fc,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x2162, 0xb01: 0x20de, 0xb02: 0x2168, 0xb03: 0x216e, 0xb04: 0x0932, 0xb05: 0x0b06,\n\t0xb06: 0x0caa, 0xb07: 0x10ca,\n\t0xb10: 0x1bca, 0xb11: 0x18ac,\n\t0xb12: 0x18af, 0xb13: 0x18b2, 0xb14: 0x18b5, 0xb15: 0x18b8, 0xb16: 0x18bb, 0xb17: 0x18be,\n\t0xb18: 0x18c1, 0xb19: 0x18c4, 0xb1a: 0x18cd, 0xb1b: 0x18d0, 0xb1c: 0x18d3, 0xb1d: 0x18d6,\n\t0xb1e: 0x18d9, 0xb1f: 0x18dc, 0xb20: 0x0316, 0xb21: 0x031e, 0xb22: 0x0322, 0xb23: 0x032a,\n\t0xb24: 0x032e, 0xb25: 0x0332, 0xb26: 0x033a, 0xb27: 0x0342, 0xb28: 0x0346, 0xb29: 0x034e,\n\t0xb2a: 0x0352, 0xb2b: 0x0356, 0xb2c: 0x035a, 0xb2d: 0x035e, 0xb2e: 0x2e2f, 0xb2f: 0x2e37,\n\t0xb30: 0x2e3f, 0xb31: 0x2e47, 0xb32: 0x2e4f, 0xb33: 0x2e57, 0xb34: 0x2e5f, 0xb35: 0x2e67,\n\t0xb36: 0x2e77, 0xb37: 0x2e7f, 0xb38: 0x2e87, 0xb39: 0x2e8f, 0xb3a: 0x2e97, 0xb3b: 0x2e9f,\n\t0xb3c: 0x2eea, 0xb3d: 0x2eb2, 0xb3e: 0x2e6f,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06c2, 0xb41: 0x071e, 0xb42: 0x06ce, 0xb43: 0x097e, 0xb44: 0x0722, 0xb45: 0x07b2,\n\t0xb46: 0x06ca, 0xb47: 0x07ae, 0xb48: 0x070e, 0xb49: 0x088a, 0xb4a: 0x0d0a, 0xb4b: 0x0e92,\n\t0xb4c: 0x0dda, 0xb4d: 0x0d1e, 0xb4e: 0x1462, 0xb4f: 0x098e, 0xb50: 0x0cd2, 0xb51: 0x0d4e,\n\t0xb52: 0x0d0e, 0xb53: 0x104e, 0xb54: 0x08fe, 0xb55: 0x0f06, 0xb56: 0x138a, 0xb57: 0x1062,\n\t0xb58: 0x0846, 0xb59: 0x1092, 0xb5a: 0x0f9e, 0xb5b: 0x0a1a, 0xb5c: 0x1412, 0xb5d: 0x0782,\n\t0xb5e: 0x08ae, 0xb5f: 0x0dfa, 0xb60: 0x152a, 0xb61: 0x0746, 0xb62: 0x07d6, 0xb63: 0x0d9e,\n\t0xb64: 0x06d2, 0xb65: 0x06ea, 0xb66: 0x06d6, 0xb67: 0x0ade, 0xb68: 0x08f2, 0xb69: 0x0882,\n\t0xb6a: 0x0a5a, 0xb6b: 0x0a4e, 0xb6c: 0x0fee, 0xb6d: 0x0742, 0xb6e: 0x139e, 0xb6f: 0x089e,\n\t0xb70: 0x09f6, 0xb71: 0x18df, 0xb72: 0x18e2, 0xb73: 0x18e5, 0xb74: 0x18e8, 0xb75: 0x18f1,\n\t0xb76: 0x18f4, 0xb77: 0x18f7, 0xb78: 0x18fa, 0xb79: 0x18fd, 0xb7a: 0x1900, 0xb7b: 0x1903,\n\t0xb7c: 0x1906, 0xb7d: 0x1909, 0xb7e: 0x190c, 0xb7f: 0x1915,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1ccc, 0xb81: 0x1cdb, 0xb82: 0x1cea, 0xb83: 0x1cf9, 0xb84: 0x1d08, 0xb85: 0x1d17,\n\t0xb86: 0x1d26, 0xb87: 0x1d35, 0xb88: 0x1d44, 0xb89: 0x2192, 0xb8a: 0x21a4, 0xb8b: 0x21b6,\n\t0xb8c: 0x1957, 0xb8d: 0x1c0a, 0xb8e: 0x19d8, 0xb8f: 0x1bae, 0xb90: 0x04ce, 0xb91: 0x04d6,\n\t0xb92: 0x04de, 0xb93: 0x04e6, 0xb94: 0x04ee, 0xb95: 0x04f2, 0xb96: 0x04f6, 0xb97: 0x04fa,\n\t0xb98: 0x04fe, 0xb99: 0x0502, 0xb9a: 0x0506, 0xb9b: 0x050a, 0xb9c: 0x050e, 0xb9d: 0x0512,\n\t0xb9e: 0x0516, 0xb9f: 0x051a, 0xba0: 0x051e, 0xba1: 0x0526, 0xba2: 0x052a, 0xba3: 0x052e,\n\t0xba4: 0x0532, 0xba5: 0x0536, 0xba6: 0x053a, 0xba7: 0x053e, 0xba8: 0x0542, 0xba9: 0x0546,\n\t0xbaa: 0x054a, 0xbab: 0x054e, 0xbac: 0x0552, 0xbad: 0x0556, 0xbae: 0x055a, 0xbaf: 0x055e,\n\t0xbb0: 0x0562, 0xbb1: 0x0566, 0xbb2: 0x056a, 0xbb3: 0x0572, 0xbb4: 0x057a, 0xbb5: 0x0582,\n\t0xbb6: 0x0586, 0xbb7: 0x058a, 0xbb8: 0x058e, 0xbb9: 0x0592, 0xbba: 0x0596, 0xbbb: 0x059a,\n\t0xbbc: 0x059e, 0xbbd: 0x05a2, 0xbbe: 0x05a6, 0xbbf: 0x2700,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b19, 0xbc1: 0x29b5, 0xbc2: 0x2b29, 0xbc3: 0x288d, 0xbc4: 0x2efb, 0xbc5: 0x2897,\n\t0xbc6: 0x28a1, 0xbc7: 0x2f3f, 0xbc8: 0x29c2, 0xbc9: 0x28ab, 0xbca: 0x28b5, 0xbcb: 0x28bf,\n\t0xbcc: 0x29e9, 0xbcd: 0x29f6, 0xbce: 0x29cf, 0xbcf: 0x29dc, 0xbd0: 0x2ec0, 0xbd1: 0x2a03,\n\t0xbd2: 0x2a10, 0xbd3: 0x2bcb, 0xbd4: 0x26c1, 0xbd5: 0x2bde, 0xbd6: 0x2bf1, 0xbd7: 0x2b39,\n\t0xbd8: 0x2a1d, 0xbd9: 0x2c04, 0xbda: 0x2c17, 0xbdb: 0x2a2a, 0xbdc: 0x28c9, 0xbdd: 0x28d3,\n\t0xbde: 0x2ece, 0xbdf: 0x2a37, 0xbe0: 0x2b49, 0xbe1: 0x2f0c, 0xbe2: 0x28dd, 0xbe3: 0x28e7,\n\t0xbe4: 0x2a44, 0xbe5: 0x28f1, 0xbe6: 0x28fb, 0xbe7: 0x26d6, 0xbe8: 0x26dd, 0xbe9: 0x2905,\n\t0xbea: 0x290f, 0xbeb: 0x2c2a, 0xbec: 0x2a51, 0xbed: 0x2b59, 0xbee: 0x2c3d, 0xbef: 0x2a5e,\n\t0xbf0: 0x2923, 0xbf1: 0x2919, 0xbf2: 0x2f53, 0xbf3: 0x2a6b, 0xbf4: 0x2c50, 0xbf5: 0x292d,\n\t0xbf6: 0x2b69, 0xbf7: 0x2937, 0xbf8: 0x2a85, 0xbf9: 0x2941, 0xbfa: 0x2a92, 0xbfb: 0x2f1d,\n\t0xbfc: 0x2a78, 0xbfd: 0x2b79, 0xbfe: 0x2a9f, 0xbff: 0x26e4,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f2e, 0xc01: 0x294b, 0xc02: 0x2955, 0xc03: 0x2aac, 0xc04: 0x295f, 0xc05: 0x2969,\n\t0xc06: 0x2973, 0xc07: 0x2b89, 0xc08: 0x2ab9, 0xc09: 0x26eb, 0xc0a: 0x2c63, 0xc0b: 0x2ea7,\n\t0xc0c: 0x2b99, 0xc0d: 0x2ac6, 0xc0e: 0x2edc, 0xc0f: 0x297d, 0xc10: 0x2987, 0xc11: 0x2ad3,\n\t0xc12: 0x26f2, 0xc13: 0x2ae0, 0xc14: 0x2ba9, 0xc15: 0x26f9, 0xc16: 0x2c76, 0xc17: 0x2991,\n\t0xc18: 0x1cbd, 0xc19: 0x1cd1, 0xc1a: 0x1ce0, 0xc1b: 0x1cef, 0xc1c: 0x1cfe, 0xc1d: 0x1d0d,\n\t0xc1e: 0x1d1c, 0xc1f: 0x1d2b, 0xc20: 0x1d3a, 0xc21: 0x1d49, 0xc22: 0x2198, 0xc23: 0x21aa,\n\t0xc24: 0x21bc, 0xc25: 0x21c8, 0xc26: 0x21d4, 0xc27: 0x21e0, 0xc28: 0x21ec, 0xc29: 0x21f8,\n\t0xc2a: 0x2204, 0xc2b: 0x2210, 0xc2c: 0x224c, 0xc2d: 0x2258, 0xc2e: 0x2264, 0xc2f: 0x2270,\n\t0xc30: 0x227c, 0xc31: 0x1c1a, 0xc32: 0x19cc, 0xc33: 0x1939, 0xc34: 0x1bea, 0xc35: 0x1a4d,\n\t0xc36: 0x1a5c, 0xc37: 0x19d2, 0xc38: 0x1c02, 0xc39: 0x1c06, 0xc3a: 0x1963, 0xc3b: 0x270e,\n\t0xc3c: 0x271c, 0xc3d: 0x2707, 0xc3e: 0x2715, 0xc3f: 0x2aed,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a50, 0xc41: 0x1a38, 0xc42: 0x1c66, 0xc43: 0x1a20, 0xc44: 0x19f9, 0xc45: 0x196c,\n\t0xc46: 0x197b, 0xc47: 0x194b, 0xc48: 0x1bf6, 0xc49: 0x1d58, 0xc4a: 0x1a53, 0xc4b: 0x1a3b,\n\t0xc4c: 0x1c6a, 0xc4d: 0x1c76, 0xc4e: 0x1a2c, 0xc4f: 0x1a02, 0xc50: 0x195a, 0xc51: 0x1c22,\n\t0xc52: 0x1bb6, 0xc53: 0x1ba2, 0xc54: 0x1bd2, 0xc55: 0x1c7a, 0xc56: 0x1a2f, 0xc57: 0x19cf,\n\t0xc58: 0x1a05, 0xc59: 0x19e4, 0xc5a: 0x1a47, 0xc5b: 0x1c7e, 0xc5c: 0x1a32, 0xc5d: 0x19c6,\n\t0xc5e: 0x1a08, 0xc5f: 0x1c42, 0xc60: 0x1bfa, 0xc61: 0x1a1a, 0xc62: 0x1c2a, 0xc63: 0x1c46,\n\t0xc64: 0x1bfe, 0xc65: 0x1a1d, 0xc66: 0x1c2e, 0xc67: 0x22ee, 0xc68: 0x2302, 0xc69: 0x199c,\n\t0xc6a: 0x1c26, 0xc6b: 0x1bba, 0xc6c: 0x1ba6, 0xc6d: 0x1c4e, 0xc6e: 0x2723, 0xc6f: 0x27ba,\n\t0xc70: 0x1a5f, 0xc71: 0x1a4a, 0xc72: 0x1c82, 0xc73: 0x1a35, 0xc74: 0x1a56, 0xc75: 0x1a3e,\n\t0xc76: 0x1c6e, 0xc77: 0x1a23, 0xc78: 0x19fc, 0xc79: 0x1987, 0xc7a: 0x1a59, 0xc7b: 0x1a41,\n\t0xc7c: 0x1c72, 0xc7d: 0x1a26, 0xc7e: 0x19ff, 0xc7f: 0x198a,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c32, 0xc81: 0x1bbe, 0xc82: 0x1d53, 0xc83: 0x193c, 0xc84: 0x19c0, 0xc85: 0x19c3,\n\t0xc86: 0x22fb, 0xc87: 0x1b9a, 0xc88: 0x19c9, 0xc89: 0x194e, 0xc8a: 0x19e7, 0xc8b: 0x1951,\n\t0xc8c: 0x19f0, 0xc8d: 0x196f, 0xc8e: 0x1972, 0xc8f: 0x1a0b, 0xc90: 0x1a11, 0xc91: 0x1a14,\n\t0xc92: 0x1c36, 0xc93: 0x1a17, 0xc94: 0x1a29, 0xc95: 0x1c3e, 0xc96: 0x1c4a, 0xc97: 0x1996,\n\t0xc98: 0x1d5d, 0xc99: 0x1bc2, 0xc9a: 0x1999, 0xc9b: 0x1a62, 0xc9c: 0x19ab, 0xc9d: 0x19ba,\n\t0xc9e: 0x22e8, 0xc9f: 0x22e2, 0xca0: 0x1cc7, 0xca1: 0x1cd6, 0xca2: 0x1ce5, 0xca3: 0x1cf4,\n\t0xca4: 0x1d03, 0xca5: 0x1d12, 0xca6: 0x1d21, 0xca7: 0x1d30, 0xca8: 0x1d3f, 0xca9: 0x218c,\n\t0xcaa: 0x219e, 0xcab: 0x21b0, 0xcac: 0x21c2, 0xcad: 0x21ce, 0xcae: 0x21da, 0xcaf: 0x21e6,\n\t0xcb0: 0x21f2, 0xcb1: 0x21fe, 0xcb2: 0x220a, 0xcb3: 0x2246, 0xcb4: 0x2252, 0xcb5: 0x225e,\n\t0xcb6: 0x226a, 0xcb7: 0x2276, 0xcb8: 0x2282, 0xcb9: 0x2288, 0xcba: 0x228e, 0xcbb: 0x2294,\n\t0xcbc: 0x229a, 0xcbd: 0x22ac, 0xcbe: 0x22b2, 0xcbf: 0x1c16,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x137a, 0xcc1: 0x0cfe, 0xcc2: 0x13d6, 0xcc3: 0x13a2, 0xcc4: 0x0e5a, 0xcc5: 0x06ee,\n\t0xcc6: 0x08e2, 0xcc7: 0x162e, 0xcc8: 0x162e, 0xcc9: 0x0a0e, 0xcca: 0x1462, 0xccb: 0x0946,\n\t0xccc: 0x0a0a, 0xccd: 0x0bf2, 0xcce: 0x0fd2, 0xccf: 0x1162, 0xcd0: 0x129a, 0xcd1: 0x12d6,\n\t0xcd2: 0x130a, 0xcd3: 0x141e, 0xcd4: 0x0d76, 0xcd5: 0x0e02, 0xcd6: 0x0eae, 0xcd7: 0x0f46,\n\t0xcd8: 0x1262, 0xcd9: 0x144a, 0xcda: 0x1576, 0xcdb: 0x0712, 0xcdc: 0x08b6, 0xcdd: 0x0d8a,\n\t0xcde: 0x0ed2, 0xcdf: 0x1296, 0xce0: 0x15c6, 0xce1: 0x0ab6, 0xce2: 0x0e7a, 0xce3: 0x1286,\n\t0xce4: 0x131a, 0xce5: 0x0c26, 0xce6: 0x11be, 0xce7: 0x12e2, 0xce8: 0x0b22, 0xce9: 0x0d12,\n\t0xcea: 0x0e1a, 0xceb: 0x0f1e, 0xcec: 0x142a, 0xced: 0x0752, 0xcee: 0x07ea, 0xcef: 0x0856,\n\t0xcf0: 0x0c8e, 0xcf1: 0x0d82, 0xcf2: 0x0ece, 0xcf3: 0x0ff2, 0xcf4: 0x117a, 0xcf5: 0x128e,\n\t0xcf6: 0x12a6, 0xcf7: 0x13ca, 0xcf8: 0x14f2, 0xcf9: 0x15a6, 0xcfa: 0x15c2, 0xcfb: 0x102e,\n\t0xcfc: 0x106e, 0xcfd: 0x1126, 0xcfe: 0x1246, 0xcff: 0x147e,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15ce, 0xd01: 0x134e, 0xd02: 0x09ca, 0xd03: 0x0b3e, 0xd04: 0x10de, 0xd05: 0x119e,\n\t0xd06: 0x0f02, 0xd07: 0x1036, 0xd08: 0x139a, 0xd09: 0x14ea, 0xd0a: 0x09c6, 0xd0b: 0x0a92,\n\t0xd0c: 0x0d7a, 0xd0d: 0x0e2e, 0xd0e: 0x0e62, 0xd0f: 0x1116, 0xd10: 0x113e, 0xd11: 0x14aa,\n\t0xd12: 0x0852, 0xd13: 0x11aa, 0xd14: 0x07f6, 0xd15: 0x07f2, 0xd16: 0x109a, 0xd17: 0x112a,\n\t0xd18: 0x125e, 0xd19: 0x14b2, 0xd1a: 0x136a, 0xd1b: 0x0c2a, 0xd1c: 0x0d76, 0xd1d: 0x135a,\n\t0xd1e: 0x06fa, 0xd1f: 0x0a66, 0xd20: 0x0b96, 0xd21: 0x0f32, 0xd22: 0x0fb2, 0xd23: 0x0876,\n\t0xd24: 0x103e, 0xd25: 0x0762, 0xd26: 0x0b7a, 0xd27: 0x06da, 0xd28: 0x0dee, 0xd29: 0x0ca6,\n\t0xd2a: 0x1112, 0xd2b: 0x08ca, 0xd2c: 0x09b6, 0xd2d: 0x0ffe, 0xd2e: 0x1266, 0xd2f: 0x133e,\n\t0xd30: 0x0dba, 0xd31: 0x13fa, 0xd32: 0x0de6, 0xd33: 0x0c3a, 0xd34: 0x121e, 0xd35: 0x0c5a,\n\t0xd36: 0x0fae, 0xd37: 0x072e, 0xd38: 0x07aa, 0xd39: 0x07ee, 0xd3a: 0x0d56, 0xd3b: 0x10fe,\n\t0xd3c: 0x11f6, 0xd3d: 0x134a, 0xd3e: 0x145e, 0xd3f: 0x085e,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0912, 0xd41: 0x0a1a, 0xd42: 0x0b32, 0xd43: 0x0cc2, 0xd44: 0x0e7e, 0xd45: 0x1042,\n\t0xd46: 0x149a, 0xd47: 0x157e, 0xd48: 0x15d2, 0xd49: 0x15ea, 0xd4a: 0x083a, 0xd4b: 0x0cf6,\n\t0xd4c: 0x0da6, 0xd4d: 0x13ee, 0xd4e: 0x0afe, 0xd4f: 0x0bda, 0xd50: 0x0bf6, 0xd51: 0x0c86,\n\t0xd52: 0x0e6e, 0xd53: 0x0eba, 0xd54: 0x0f6a, 0xd55: 0x108e, 0xd56: 0x1132, 0xd57: 0x1196,\n\t0xd58: 0x13de, 0xd59: 0x126e, 0xd5a: 0x1406, 0xd5b: 0x1482, 0xd5c: 0x0812, 0xd5d: 0x083e,\n\t0xd5e: 0x0926, 0xd5f: 0x0eaa, 0xd60: 0x12f6, 0xd61: 0x133e, 0xd62: 0x0b1e, 0xd63: 0x0b8e,\n\t0xd64: 0x0c52, 0xd65: 0x0db2, 0xd66: 0x10da, 0xd67: 0x0f26, 0xd68: 0x073e, 0xd69: 0x0982,\n\t0xd6a: 0x0a66, 0xd6b: 0x0aca, 0xd6c: 0x0b9a, 0xd6d: 0x0f42, 0xd6e: 0x0f5e, 0xd6f: 0x116e,\n\t0xd70: 0x118e, 0xd71: 0x1466, 0xd72: 0x14e6, 0xd73: 0x14f6, 0xd74: 0x1532, 0xd75: 0x0756,\n\t0xd76: 0x1082, 0xd77: 0x1452, 0xd78: 0x14ce, 0xd79: 0x0bb2, 0xd7a: 0x071a, 0xd7b: 0x077a,\n\t0xd7c: 0x0a6a, 0xd7d: 0x0a8a, 0xd7e: 0x0cb2, 0xd7f: 0x0d76,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec6, 0xd81: 0x0fce, 0xd82: 0x127a, 0xd83: 0x141a, 0xd84: 0x1626, 0xd85: 0x0ce6,\n\t0xd86: 0x14a6, 0xd87: 0x0836, 0xd88: 0x0d32, 0xd89: 0x0d3e, 0xd8a: 0x0e12, 0xd8b: 0x0e4a,\n\t0xd8c: 0x0f4e, 0xd8d: 0x0faa, 0xd8e: 0x102a, 0xd8f: 0x110e, 0xd90: 0x153e, 0xd91: 0x07b2,\n\t0xd92: 0x0c06, 0xd93: 0x14b6, 0xd94: 0x076a, 0xd95: 0x0aae, 0xd96: 0x0e32, 0xd97: 0x13e2,\n\t0xd98: 0x0b6a, 0xd99: 0x0bba, 0xd9a: 0x0d46, 0xd9b: 0x0f32, 0xd9c: 0x14be, 0xd9d: 0x081a,\n\t0xd9e: 0x0902, 0xd9f: 0x0a9a, 0xda0: 0x0cd6, 0xda1: 0x0d22, 0xda2: 0x0d62, 0xda3: 0x0df6,\n\t0xda4: 0x0f4a, 0xda5: 0x0fbe, 0xda6: 0x115a, 0xda7: 0x12fa, 0xda8: 0x1306, 0xda9: 0x145a,\n\t0xdaa: 0x14da, 0xdab: 0x0886, 0xdac: 0x0e4e, 0xdad: 0x0906, 0xdae: 0x0eca, 0xdaf: 0x0f6e,\n\t0xdb0: 0x128a, 0xdb1: 0x14c2, 0xdb2: 0x15ae, 0xdb3: 0x15d6, 0xdb4: 0x0d3a, 0xdb5: 0x0e2a,\n\t0xdb6: 0x11c6, 0xdb7: 0x10ba, 0xdb8: 0x10c6, 0xdb9: 0x10ea, 0xdba: 0x0f1a, 0xdbb: 0x0ea2,\n\t0xdbc: 0x1366, 0xdbd: 0x0736, 0xdbe: 0x122e, 0xdbf: 0x081e,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080e, 0xdc1: 0x0b0e, 0xdc2: 0x0c2e, 0xdc3: 0x10f6, 0xdc4: 0x0a56, 0xdc5: 0x0e06,\n\t0xdc6: 0x0cf2, 0xdc7: 0x13ea, 0xdc8: 0x12ea, 0xdc9: 0x14ae, 0xdca: 0x1326, 0xdcb: 0x0b2a,\n\t0xdcc: 0x078a, 0xdcd: 0x095e, 0xdd0: 0x09b2,\n\t0xdd2: 0x0ce2, 0xdd5: 0x07fa, 0xdd6: 0x0f22, 0xdd7: 0x0fe6,\n\t0xdd8: 0x104a, 0xdd9: 0x1066, 0xdda: 0x106a, 0xddb: 0x107e, 0xddc: 0x14fe, 0xddd: 0x10ee,\n\t0xdde: 0x1172, 0xde0: 0x1292, 0xde2: 0x1356,\n\t0xde5: 0x140a, 0xde6: 0x1436,\n\t0xdea: 0x1552, 0xdeb: 0x1556, 0xdec: 0x155a, 0xded: 0x15be, 0xdee: 0x142e, 0xdef: 0x14ca,\n\t0xdf0: 0x075a, 0xdf1: 0x077e, 0xdf2: 0x0792, 0xdf3: 0x084e, 0xdf4: 0x085a, 0xdf5: 0x089a,\n\t0xdf6: 0x094e, 0xdf7: 0x096a, 0xdf8: 0x0972, 0xdf9: 0x09ae, 0xdfa: 0x09ba, 0xdfb: 0x0a96,\n\t0xdfc: 0x0a9e, 0xdfd: 0x0ba6, 0xdfe: 0x0bce, 0xdff: 0x0bd6,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0bee, 0xe01: 0x0c9a, 0xe02: 0x0cca, 0xe03: 0x0cea, 0xe04: 0x0d5a, 0xe05: 0x0e1e,\n\t0xe06: 0x0e3a, 0xe07: 0x0e6a, 0xe08: 0x0ebe, 0xe09: 0x0ede, 0xe0a: 0x0f52, 0xe0b: 0x1032,\n\t0xe0c: 0x104e, 0xe0d: 0x1056, 0xe0e: 0x1052, 0xe0f: 0x105a, 0xe10: 0x105e, 0xe11: 0x1062,\n\t0xe12: 0x1076, 0xe13: 0x107a, 0xe14: 0x109e, 0xe15: 0x10b2, 0xe16: 0x10ce, 0xe17: 0x1132,\n\t0xe18: 0x113a, 0xe19: 0x1142, 0xe1a: 0x1156, 0xe1b: 0x117e, 0xe1c: 0x11ce, 0xe1d: 0x1202,\n\t0xe1e: 0x1202, 0xe1f: 0x126a, 0xe20: 0x1312, 0xe21: 0x132a, 0xe22: 0x135e, 0xe23: 0x1362,\n\t0xe24: 0x13a6, 0xe25: 0x13aa, 0xe26: 0x1402, 0xe27: 0x140a, 0xe28: 0x14de, 0xe29: 0x1522,\n\t0xe2a: 0x153a, 0xe2b: 0x0b9e, 0xe2c: 0x1721, 0xe2d: 0x11e6,\n\t0xe30: 0x06e2, 0xe31: 0x07e6, 0xe32: 0x07a6, 0xe33: 0x074e, 0xe34: 0x078e, 0xe35: 0x07ba,\n\t0xe36: 0x084a, 0xe37: 0x0866, 0xe38: 0x094e, 0xe39: 0x093a, 0xe3a: 0x094a, 0xe3b: 0x0966,\n\t0xe3c: 0x09b2, 0xe3d: 0x09c2, 0xe3e: 0x0a06, 0xe3f: 0x0a12,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2e, 0xe41: 0x0a3e, 0xe42: 0x0b26, 0xe43: 0x0b2e, 0xe44: 0x0b5e, 0xe45: 0x0b7e,\n\t0xe46: 0x0bae, 0xe47: 0x0bc6, 0xe48: 0x0bb6, 0xe49: 0x0bd6, 0xe4a: 0x0bca, 0xe4b: 0x0bee,\n\t0xe4c: 0x0c0a, 0xe4d: 0x0c62, 0xe4e: 0x0c6e, 0xe4f: 0x0c76, 0xe50: 0x0c9e, 0xe51: 0x0ce2,\n\t0xe52: 0x0d12, 0xe53: 0x0d16, 0xe54: 0x0d2a, 0xe55: 0x0daa, 0xe56: 0x0dba, 0xe57: 0x0e12,\n\t0xe58: 0x0e5e, 0xe59: 0x0e56, 0xe5a: 0x0e6a, 0xe5b: 0x0e86, 0xe5c: 0x0ebe, 0xe5d: 0x1016,\n\t0xe5e: 0x0ee2, 0xe5f: 0x0f16, 0xe60: 0x0f22, 0xe61: 0x0f62, 0xe62: 0x0f7e, 0xe63: 0x0fa2,\n\t0xe64: 0x0fc6, 0xe65: 0x0fca, 0xe66: 0x0fe6, 0xe67: 0x0fea, 0xe68: 0x0ffa, 0xe69: 0x100e,\n\t0xe6a: 0x100a, 0xe6b: 0x103a, 0xe6c: 0x10b6, 0xe6d: 0x10ce, 0xe6e: 0x10e6, 0xe6f: 0x111e,\n\t0xe70: 0x1132, 0xe71: 0x114e, 0xe72: 0x117e, 0xe73: 0x1232, 0xe74: 0x125a, 0xe75: 0x12ce,\n\t0xe76: 0x1316, 0xe77: 0x1322, 0xe78: 0x132a, 0xe79: 0x1342, 0xe7a: 0x1356, 0xe7b: 0x1346,\n\t0xe7c: 0x135e, 0xe7d: 0x135a, 0xe7e: 0x1352, 0xe7f: 0x1362,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136e, 0xe81: 0x13aa, 0xe82: 0x13e6, 0xe83: 0x1416, 0xe84: 0x144e, 0xe85: 0x146e,\n\t0xe86: 0x14ba, 0xe87: 0x14de, 0xe88: 0x14fe, 0xe89: 0x1512, 0xe8a: 0x1522, 0xe8b: 0x152e,\n\t0xe8c: 0x153a, 0xe8d: 0x158e, 0xe8e: 0x162e, 0xe8f: 0x16b8, 0xe90: 0x16b3, 0xe91: 0x16e5,\n\t0xe92: 0x060a, 0xe93: 0x0632, 0xe94: 0x0636, 0xe95: 0x1767, 0xe96: 0x1794, 0xe97: 0x180c,\n\t0xe98: 0x161a, 0xe99: 0x162a,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19db, 0xec1: 0x19de, 0xec2: 0x19e1, 0xec3: 0x1c0e, 0xec4: 0x1c12, 0xec5: 0x1a65,\n\t0xec6: 0x1a65,\n\t0xed3: 0x1d7b, 0xed4: 0x1d6c, 0xed5: 0x1d71, 0xed6: 0x1d80, 0xed7: 0x1d76,\n\t0xedd: 0x43a7,\n\t0xede: 0x8116, 0xedf: 0x4419, 0xee0: 0x0230, 0xee1: 0x0218, 0xee2: 0x0221, 0xee3: 0x0224,\n\t0xee4: 0x0227, 0xee5: 0x022a, 0xee6: 0x022d, 0xee7: 0x0233, 0xee8: 0x0236, 0xee9: 0x0017,\n\t0xeea: 0x4407, 0xeeb: 0x440d, 0xeec: 0x450b, 0xeed: 0x4513, 0xeee: 0x435f, 0xeef: 0x4365,\n\t0xef0: 0x436b, 0xef1: 0x4371, 0xef2: 0x437d, 0xef3: 0x4383, 0xef4: 0x4389, 0xef5: 0x4395,\n\t0xef6: 0x439b, 0xef8: 0x43a1, 0xef9: 0x43ad, 0xefa: 0x43b3, 0xefb: 0x43b9,\n\t0xefc: 0x43c5, 0xefe: 0x43cb,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43d1, 0xf01: 0x43d7, 0xf03: 0x43dd, 0xf04: 0x43e3,\n\t0xf06: 0x43ef, 0xf07: 0x43f5, 0xf08: 0x43fb, 0xf09: 0x4401, 0xf0a: 0x4413, 0xf0b: 0x438f,\n\t0xf0c: 0x4377, 0xf0d: 0x43bf, 0xf0e: 0x43e9, 0xf0f: 0x1d85, 0xf10: 0x029c, 0xf11: 0x029c,\n\t0xf12: 0x02a5, 0xf13: 0x02a5, 0xf14: 0x02a5, 0xf15: 0x02a5, 0xf16: 0x02a8, 0xf17: 0x02a8,\n\t0xf18: 0x02a8, 0xf19: 0x02a8, 0xf1a: 0x02ae, 0xf1b: 0x02ae, 0xf1c: 0x02ae, 0xf1d: 0x02ae,\n\t0xf1e: 0x02a2, 0xf1f: 0x02a2, 0xf20: 0x02a2, 0xf21: 0x02a2, 0xf22: 0x02ab, 0xf23: 0x02ab,\n\t0xf24: 0x02ab, 0xf25: 0x02ab, 0xf26: 0x029f, 0xf27: 0x029f, 0xf28: 0x029f, 0xf29: 0x029f,\n\t0xf2a: 0x02d2, 0xf2b: 0x02d2, 0xf2c: 0x02d2, 0xf2d: 0x02d2, 0xf2e: 0x02d5, 0xf2f: 0x02d5,\n\t0xf30: 0x02d5, 0xf31: 0x02d5, 0xf32: 0x02b4, 0xf33: 0x02b4, 0xf34: 0x02b4, 0xf35: 0x02b4,\n\t0xf36: 0x02b1, 0xf37: 0x02b1, 0xf38: 0x02b1, 0xf39: 0x02b1, 0xf3a: 0x02b7, 0xf3b: 0x02b7,\n\t0xf3c: 0x02b7, 0xf3d: 0x02b7, 0xf3e: 0x02ba, 0xf3f: 0x02ba,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02ba, 0xf41: 0x02ba, 0xf42: 0x02c3, 0xf43: 0x02c3, 0xf44: 0x02c0, 0xf45: 0x02c0,\n\t0xf46: 0x02c6, 0xf47: 0x02c6, 0xf48: 0x02bd, 0xf49: 0x02bd, 0xf4a: 0x02cc, 0xf4b: 0x02cc,\n\t0xf4c: 0x02c9, 0xf4d: 0x02c9, 0xf4e: 0x02d8, 0xf4f: 0x02d8, 0xf50: 0x02d8, 0xf51: 0x02d8,\n\t0xf52: 0x02de, 0xf53: 0x02de, 0xf54: 0x02de, 0xf55: 0x02de, 0xf56: 0x02e4, 0xf57: 0x02e4,\n\t0xf58: 0x02e4, 0xf59: 0x02e4, 0xf5a: 0x02e1, 0xf5b: 0x02e1, 0xf5c: 0x02e1, 0xf5d: 0x02e1,\n\t0xf5e: 0x02e7, 0xf5f: 0x02e7, 0xf60: 0x02ea, 0xf61: 0x02ea, 0xf62: 0x02ea, 0xf63: 0x02ea,\n\t0xf64: 0x4485, 0xf65: 0x4485, 0xf66: 0x02f0, 0xf67: 0x02f0, 0xf68: 0x02f0, 0xf69: 0x02f0,\n\t0xf6a: 0x02ed, 0xf6b: 0x02ed, 0xf6c: 0x02ed, 0xf6d: 0x02ed, 0xf6e: 0x030b, 0xf6f: 0x030b,\n\t0xf70: 0x447f, 0xf71: 0x447f,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02db, 0xf94: 0x02db, 0xf95: 0x02db, 0xf96: 0x02db, 0xf97: 0x02f9,\n\t0xf98: 0x02f9, 0xf99: 0x02f6, 0xf9a: 0x02f6, 0xf9b: 0x02fc, 0xf9c: 0x02fc, 0xf9d: 0x2055,\n\t0xf9e: 0x0302, 0xf9f: 0x0302, 0xfa0: 0x02f3, 0xfa1: 0x02f3, 0xfa2: 0x02ff, 0xfa3: 0x02ff,\n\t0xfa4: 0x0308, 0xfa5: 0x0308, 0xfa6: 0x0308, 0xfa7: 0x0308, 0xfa8: 0x0290, 0xfa9: 0x0290,\n\t0xfaa: 0x25b0, 0xfab: 0x25b0, 0xfac: 0x2620, 0xfad: 0x2620, 0xfae: 0x25ef, 0xfaf: 0x25ef,\n\t0xfb0: 0x260b, 0xfb1: 0x260b, 0xfb2: 0x2604, 0xfb3: 0x2604, 0xfb4: 0x2612, 0xfb5: 0x2612,\n\t0xfb6: 0x2619, 0xfb7: 0x2619, 0xfb8: 0x2619, 0xfb9: 0x25f6, 0xfba: 0x25f6, 0xfbb: 0x25f6,\n\t0xfbc: 0x0305, 0xfbd: 0x0305, 0xfbe: 0x0305, 0xfbf: 0x0305,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b7, 0xfc1: 0x25be, 0xfc2: 0x25da, 0xfc3: 0x25f6, 0xfc4: 0x25fd, 0xfc5: 0x1d8f,\n\t0xfc6: 0x1d94, 0xfc7: 0x1d99, 0xfc8: 0x1da8, 0xfc9: 0x1db7, 0xfca: 0x1dbc, 0xfcb: 0x1dc1,\n\t0xfcc: 0x1dc6, 0xfcd: 0x1dcb, 0xfce: 0x1dda, 0xfcf: 0x1de9, 0xfd0: 0x1dee, 0xfd1: 0x1df3,\n\t0xfd2: 0x1e02, 0xfd3: 0x1e11, 0xfd4: 0x1e16, 0xfd5: 0x1e1b, 0xfd6: 0x1e20, 0xfd7: 0x1e2f,\n\t0xfd8: 0x1e34, 0xfd9: 0x1e43, 0xfda: 0x1e48, 0xfdb: 0x1e4d, 0xfdc: 0x1e5c, 0xfdd: 0x1e61,\n\t0xfde: 0x1e66, 0xfdf: 0x1e70, 0xfe0: 0x1eac, 0xfe1: 0x1ebb, 0xfe2: 0x1eca, 0xfe3: 0x1ecf,\n\t0xfe4: 0x1ed4, 0xfe5: 0x1ede, 0xfe6: 0x1eed, 0xfe7: 0x1ef2, 0xfe8: 0x1f01, 0xfe9: 0x1f06,\n\t0xfea: 0x1f0b, 0xfeb: 0x1f1a, 0xfec: 0x1f1f, 0xfed: 0x1f2e, 0xfee: 0x1f33, 0xfef: 0x1f38,\n\t0xff0: 0x1f3d, 0xff1: 0x1f42, 0xff2: 0x1f47, 0xff3: 0x1f4c, 0xff4: 0x1f51, 0xff5: 0x1f56,\n\t0xff6: 0x1f5b, 0xff7: 0x1f60, 0xff8: 0x1f65, 0xff9: 0x1f6a, 0xffa: 0x1f6f, 0xffb: 0x1f74,\n\t0xffc: 0x1f79, 0xffd: 0x1f7e, 0xffe: 0x1f83, 0xfff: 0x1f8d,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f92, 0x1001: 0x1f97, 0x1002: 0x1f9c, 0x1003: 0x1fa6, 0x1004: 0x1fab, 0x1005: 0x1fb5,\n\t0x1006: 0x1fba, 0x1007: 0x1fbf, 0x1008: 0x1fc4, 0x1009: 0x1fc9, 0x100a: 0x1fce, 0x100b: 0x1fd3,\n\t0x100c: 0x1fd8, 0x100d: 0x1fdd, 0x100e: 0x1fec, 0x100f: 0x1ffb, 0x1010: 0x2000, 0x1011: 0x2005,\n\t0x1012: 0x200a, 0x1013: 0x200f, 0x1014: 0x2014, 0x1015: 0x201e, 0x1016: 0x2023, 0x1017: 0x2028,\n\t0x1018: 0x2037, 0x1019: 0x2046, 0x101a: 0x204b, 0x101b: 0x4437, 0x101c: 0x443d, 0x101d: 0x4473,\n\t0x101e: 0x44ca, 0x101f: 0x44d1, 0x1020: 0x44d8, 0x1021: 0x44df, 0x1022: 0x44e6, 0x1023: 0x44ed,\n\t0x1024: 0x25cc, 0x1025: 0x25d3, 0x1026: 0x25da, 0x1027: 0x25e1, 0x1028: 0x25f6, 0x1029: 0x25fd,\n\t0x102a: 0x1d9e, 0x102b: 0x1da3, 0x102c: 0x1da8, 0x102d: 0x1dad, 0x102e: 0x1db7, 0x102f: 0x1dbc,\n\t0x1030: 0x1dd0, 0x1031: 0x1dd5, 0x1032: 0x1dda, 0x1033: 0x1ddf, 0x1034: 0x1de9, 0x1035: 0x1dee,\n\t0x1036: 0x1df8, 0x1037: 0x1dfd, 0x1038: 0x1e02, 0x1039: 0x1e07, 0x103a: 0x1e11, 0x103b: 0x1e16,\n\t0x103c: 0x1f42, 0x103d: 0x1f47, 0x103e: 0x1f56, 0x103f: 0x1f5b,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f60, 0x1041: 0x1f74, 0x1042: 0x1f79, 0x1043: 0x1f7e, 0x1044: 0x1f83, 0x1045: 0x1f9c,\n\t0x1046: 0x1fa6, 0x1047: 0x1fab, 0x1048: 0x1fb0, 0x1049: 0x1fc4, 0x104a: 0x1fe2, 0x104b: 0x1fe7,\n\t0x104c: 0x1fec, 0x104d: 0x1ff1, 0x104e: 0x1ffb, 0x104f: 0x2000, 0x1050: 0x4473, 0x1051: 0x202d,\n\t0x1052: 0x2032, 0x1053: 0x2037, 0x1054: 0x203c, 0x1055: 0x2046, 0x1056: 0x204b, 0x1057: 0x25b7,\n\t0x1058: 0x25be, 0x1059: 0x25c5, 0x105a: 0x25da, 0x105b: 0x25e8, 0x105c: 0x1d8f, 0x105d: 0x1d94,\n\t0x105e: 0x1d99, 0x105f: 0x1da8, 0x1060: 0x1db2, 0x1061: 0x1dc1, 0x1062: 0x1dc6, 0x1063: 0x1dcb,\n\t0x1064: 0x1dda, 0x1065: 0x1de4, 0x1066: 0x1e02, 0x1067: 0x1e1b, 0x1068: 0x1e20, 0x1069: 0x1e2f,\n\t0x106a: 0x1e34, 0x106b: 0x1e43, 0x106c: 0x1e4d, 0x106d: 0x1e5c, 0x106e: 0x1e61, 0x106f: 0x1e66,\n\t0x1070: 0x1e70, 0x1071: 0x1eac, 0x1072: 0x1eb1, 0x1073: 0x1ebb, 0x1074: 0x1eca, 0x1075: 0x1ecf,\n\t0x1076: 0x1ed4, 0x1077: 0x1ede, 0x1078: 0x1eed, 0x1079: 0x1f01, 0x107a: 0x1f06, 0x107b: 0x1f0b,\n\t0x107c: 0x1f1a, 0x107d: 0x1f1f, 0x107e: 0x1f2e, 0x107f: 0x1f33,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f38, 0x1081: 0x1f3d, 0x1082: 0x1f4c, 0x1083: 0x1f51, 0x1084: 0x1f65, 0x1085: 0x1f6a,\n\t0x1086: 0x1f6f, 0x1087: 0x1f74, 0x1088: 0x1f79, 0x1089: 0x1f8d, 0x108a: 0x1f92, 0x108b: 0x1f97,\n\t0x108c: 0x1f9c, 0x108d: 0x1fa1, 0x108e: 0x1fb5, 0x108f: 0x1fba, 0x1090: 0x1fbf, 0x1091: 0x1fc4,\n\t0x1092: 0x1fd3, 0x1093: 0x1fd8, 0x1094: 0x1fdd, 0x1095: 0x1fec, 0x1096: 0x1ff6, 0x1097: 0x2005,\n\t0x1098: 0x200a, 0x1099: 0x4467, 0x109a: 0x201e, 0x109b: 0x2023, 0x109c: 0x2028, 0x109d: 0x2037,\n\t0x109e: 0x2041, 0x109f: 0x25da, 0x10a0: 0x25e8, 0x10a1: 0x1da8, 0x10a2: 0x1db2, 0x10a3: 0x1dda,\n\t0x10a4: 0x1de4, 0x10a5: 0x1e02, 0x10a6: 0x1e0c, 0x10a7: 0x1e70, 0x10a8: 0x1e75, 0x10a9: 0x1e98,\n\t0x10aa: 0x1e9d, 0x10ab: 0x1f74, 0x10ac: 0x1f79, 0x10ad: 0x1f9c, 0x10ae: 0x1fec, 0x10af: 0x1ff6,\n\t0x10b0: 0x2037, 0x10b1: 0x2041, 0x10b2: 0x451b, 0x10b3: 0x4523, 0x10b4: 0x452b, 0x10b5: 0x1ef7,\n\t0x10b6: 0x1efc, 0x10b7: 0x1f10, 0x10b8: 0x1f15, 0x10b9: 0x1f24, 0x10ba: 0x1f29, 0x10bb: 0x1e7a,\n\t0x10bc: 0x1e7f, 0x10bd: 0x1ea2, 0x10be: 0x1ea7, 0x10bf: 0x1e39,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e3e, 0x10c1: 0x1e25, 0x10c2: 0x1e2a, 0x10c3: 0x1e52, 0x10c4: 0x1e57, 0x10c5: 0x1ec0,\n\t0x10c6: 0x1ec5, 0x10c7: 0x1ee3, 0x10c8: 0x1ee8, 0x10c9: 0x1e84, 0x10ca: 0x1e89, 0x10cb: 0x1e8e,\n\t0x10cc: 0x1e98, 0x10cd: 0x1e93, 0x10ce: 0x1e6b, 0x10cf: 0x1eb6, 0x10d0: 0x1ed9, 0x10d1: 0x1ef7,\n\t0x10d2: 0x1efc, 0x10d3: 0x1f10, 0x10d4: 0x1f15, 0x10d5: 0x1f24, 0x10d6: 0x1f29, 0x10d7: 0x1e7a,\n\t0x10d8: 0x1e7f, 0x10d9: 0x1ea2, 0x10da: 0x1ea7, 0x10db: 0x1e39, 0x10dc: 0x1e3e, 0x10dd: 0x1e25,\n\t0x10de: 0x1e2a, 0x10df: 0x1e52, 0x10e0: 0x1e57, 0x10e1: 0x1ec0, 0x10e2: 0x1ec5, 0x10e3: 0x1ee3,\n\t0x10e4: 0x1ee8, 0x10e5: 0x1e84, 0x10e6: 0x1e89, 0x10e7: 0x1e8e, 0x10e8: 0x1e98, 0x10e9: 0x1e93,\n\t0x10ea: 0x1e6b, 0x10eb: 0x1eb6, 0x10ec: 0x1ed9, 0x10ed: 0x1e84, 0x10ee: 0x1e89, 0x10ef: 0x1e8e,\n\t0x10f0: 0x1e98, 0x10f1: 0x1e75, 0x10f2: 0x1e9d, 0x10f3: 0x1ef2, 0x10f4: 0x1e5c, 0x10f5: 0x1e61,\n\t0x10f6: 0x1e66, 0x10f7: 0x1e84, 0x10f8: 0x1e89, 0x10f9: 0x1e8e, 0x10fa: 0x1ef2, 0x10fb: 0x1f01,\n\t0x10fc: 0x441f, 0x10fd: 0x441f,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2317, 0x1111: 0x232c,\n\t0x1112: 0x232c, 0x1113: 0x2333, 0x1114: 0x233a, 0x1115: 0x234f, 0x1116: 0x2356, 0x1117: 0x235d,\n\t0x1118: 0x2380, 0x1119: 0x2380, 0x111a: 0x23a3, 0x111b: 0x239c, 0x111c: 0x23b8, 0x111d: 0x23aa,\n\t0x111e: 0x23b1, 0x111f: 0x23d4, 0x1120: 0x23d4, 0x1121: 0x23cd, 0x1122: 0x23db, 0x1123: 0x23db,\n\t0x1124: 0x2405, 0x1125: 0x2405, 0x1126: 0x2421, 0x1127: 0x23e9, 0x1128: 0x23e9, 0x1129: 0x23e2,\n\t0x112a: 0x23f7, 0x112b: 0x23f7, 0x112c: 0x23fe, 0x112d: 0x23fe, 0x112e: 0x2428, 0x112f: 0x2436,\n\t0x1130: 0x2436, 0x1131: 0x243d, 0x1132: 0x243d, 0x1133: 0x2444, 0x1134: 0x244b, 0x1135: 0x2452,\n\t0x1136: 0x2459, 0x1137: 0x2459, 0x1138: 0x2460, 0x1139: 0x246e, 0x113a: 0x247c, 0x113b: 0x2475,\n\t0x113c: 0x2483, 0x113d: 0x2483, 0x113e: 0x2498, 0x113f: 0x249f,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24d0, 0x1141: 0x24de, 0x1142: 0x24d7, 0x1143: 0x24bb, 0x1144: 0x24bb, 0x1145: 0x24e5,\n\t0x1146: 0x24e5, 0x1147: 0x24ec, 0x1148: 0x24ec, 0x1149: 0x2516, 0x114a: 0x251d, 0x114b: 0x2524,\n\t0x114c: 0x24fa, 0x114d: 0x2508, 0x114e: 0x252b, 0x114f: 0x2532,\n\t0x1152: 0x2501, 0x1153: 0x2586, 0x1154: 0x258d, 0x1155: 0x2563, 0x1156: 0x256a, 0x1157: 0x254e,\n\t0x1158: 0x254e, 0x1159: 0x2555, 0x115a: 0x257f, 0x115b: 0x2578, 0x115c: 0x25a2, 0x115d: 0x25a2,\n\t0x115e: 0x2310, 0x115f: 0x2325, 0x1160: 0x231e, 0x1161: 0x2348, 0x1162: 0x2341, 0x1163: 0x236b,\n\t0x1164: 0x2364, 0x1165: 0x238e, 0x1166: 0x2372, 0x1167: 0x2387, 0x1168: 0x23bf, 0x1169: 0x240c,\n\t0x116a: 0x23f0, 0x116b: 0x242f, 0x116c: 0x24c9, 0x116d: 0x24f3, 0x116e: 0x259b, 0x116f: 0x2594,\n\t0x1170: 0x25a9, 0x1171: 0x2540, 0x1172: 0x24a6, 0x1173: 0x2571, 0x1174: 0x2498, 0x1175: 0x24d0,\n\t0x1176: 0x2467, 0x1177: 0x24b4, 0x1178: 0x2547, 0x1179: 0x2539, 0x117a: 0x24c2, 0x117b: 0x24ad,\n\t0x117c: 0x24c2, 0x117d: 0x2547, 0x117e: 0x2379, 0x117f: 0x2395,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x250f, 0x1181: 0x248a, 0x1182: 0x2309, 0x1183: 0x24ad, 0x1184: 0x2452, 0x1185: 0x2421,\n\t0x1186: 0x23c6, 0x1187: 0x255c,\n\t0x11b0: 0x241a, 0x11b1: 0x2491, 0x11b2: 0x27cc, 0x11b3: 0x27c3, 0x11b4: 0x27f9, 0x11b5: 0x27e7,\n\t0x11b6: 0x27d5, 0x11b7: 0x27f0, 0x11b8: 0x2802, 0x11b9: 0x2413, 0x11ba: 0x2c89, 0x11bb: 0x2b09,\n\t0x11bc: 0x27de,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0486,\n\t0x11d2: 0x048a, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04c2,\n\t0x11d8: 0x04c6, 0x11d9: 0x1b62,\n\t0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133,\n\t0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e,\n\t0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133,\n\t0x11f0: 0x1876, 0x11f1: 0x0446, 0x11f2: 0x0442, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04ba, 0x11fa: 0x04be, 0x11fb: 0x04ae,\n\t0x11fc: 0x04b2, 0x11fd: 0x0496, 0x11fe: 0x049a, 0x11ff: 0x048e,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0492, 0x1201: 0x049e, 0x1202: 0x04a2, 0x1203: 0x04a6, 0x1204: 0x04aa,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4280, 0x120a: 0x4280, 0x120b: 0x4280,\n\t0x120c: 0x4280, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0486,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0446, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04ba,\n\t0x121e: 0x04be, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42c1, 0x1231: 0x4443, 0x1232: 0x42c6, 0x1234: 0x42cb,\n\t0x1236: 0x42d0, 0x1237: 0x4449, 0x1238: 0x42d5, 0x1239: 0x444f, 0x123a: 0x42da, 0x123b: 0x4455,\n\t0x123c: 0x42df, 0x123d: 0x445b, 0x123e: 0x42e4, 0x123f: 0x4461,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0239, 0x1241: 0x4425, 0x1242: 0x4425, 0x1243: 0x442b, 0x1244: 0x442b, 0x1245: 0x446d,\n\t0x1246: 0x446d, 0x1247: 0x4431, 0x1248: 0x4431, 0x1249: 0x4479, 0x124a: 0x4479, 0x124b: 0x4479,\n\t0x124c: 0x4479, 0x124d: 0x023c, 0x124e: 0x023c, 0x124f: 0x023f, 0x1250: 0x023f, 0x1251: 0x023f,\n\t0x1252: 0x023f, 0x1253: 0x0242, 0x1254: 0x0242, 0x1255: 0x0245, 0x1256: 0x0245, 0x1257: 0x0245,\n\t0x1258: 0x0245, 0x1259: 0x0248, 0x125a: 0x0248, 0x125b: 0x0248, 0x125c: 0x0248, 0x125d: 0x024b,\n\t0x125e: 0x024b, 0x125f: 0x024b, 0x1260: 0x024b, 0x1261: 0x024e, 0x1262: 0x024e, 0x1263: 0x024e,\n\t0x1264: 0x024e, 0x1265: 0x0251, 0x1266: 0x0251, 0x1267: 0x0251, 0x1268: 0x0251, 0x1269: 0x0254,\n\t0x126a: 0x0254, 0x126b: 0x0257, 0x126c: 0x0257, 0x126d: 0x025a, 0x126e: 0x025a, 0x126f: 0x025d,\n\t0x1270: 0x025d, 0x1271: 0x0260, 0x1272: 0x0260, 0x1273: 0x0260, 0x1274: 0x0260, 0x1275: 0x0263,\n\t0x1276: 0x0263, 0x1277: 0x0263, 0x1278: 0x0263, 0x1279: 0x0266, 0x127a: 0x0266, 0x127b: 0x0266,\n\t0x127c: 0x0266, 0x127d: 0x0269, 0x127e: 0x0269, 0x127f: 0x0269,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0269, 0x1281: 0x026c, 0x1282: 0x026c, 0x1283: 0x026c, 0x1284: 0x026c, 0x1285: 0x026f,\n\t0x1286: 0x026f, 0x1287: 0x026f, 0x1288: 0x026f, 0x1289: 0x0272, 0x128a: 0x0272, 0x128b: 0x0272,\n\t0x128c: 0x0272, 0x128d: 0x0275, 0x128e: 0x0275, 0x128f: 0x0275, 0x1290: 0x0275, 0x1291: 0x0278,\n\t0x1292: 0x0278, 0x1293: 0x0278, 0x1294: 0x0278, 0x1295: 0x027b, 0x1296: 0x027b, 0x1297: 0x027b,\n\t0x1298: 0x027b, 0x1299: 0x027e, 0x129a: 0x027e, 0x129b: 0x027e, 0x129c: 0x027e, 0x129d: 0x0281,\n\t0x129e: 0x0281, 0x129f: 0x0281, 0x12a0: 0x0281, 0x12a1: 0x0284, 0x12a2: 0x0284, 0x12a3: 0x0284,\n\t0x12a4: 0x0284, 0x12a5: 0x0287, 0x12a6: 0x0287, 0x12a7: 0x0287, 0x12a8: 0x0287, 0x12a9: 0x028a,\n\t0x12aa: 0x028a, 0x12ab: 0x028a, 0x12ac: 0x028a, 0x12ad: 0x028d, 0x12ae: 0x028d, 0x12af: 0x0290,\n\t0x12b0: 0x0290, 0x12b1: 0x0293, 0x12b2: 0x0293, 0x12b3: 0x0293, 0x12b4: 0x0293, 0x12b5: 0x2e17,\n\t0x12b6: 0x2e17, 0x12b7: 0x2e1f, 0x12b8: 0x2e1f, 0x12b9: 0x2e27, 0x12ba: 0x2e27, 0x12bb: 0x1f88,\n\t0x12bc: 0x1f88,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x047a, 0x12e0: 0x047e, 0x12e1: 0x048a, 0x12e2: 0x049e, 0x12e3: 0x04a2,\n\t0x12e4: 0x0486, 0x12e5: 0x05ae, 0x12e6: 0x05a6, 0x12e7: 0x04ca, 0x12e8: 0x04d2, 0x12e9: 0x04da,\n\t0x12ea: 0x04e2, 0x12eb: 0x04ea, 0x12ec: 0x056e, 0x12ed: 0x0576, 0x12ee: 0x057e, 0x12ef: 0x0522,\n\t0x12f0: 0x05b2, 0x12f1: 0x04ce, 0x12f2: 0x04d6, 0x12f3: 0x04de, 0x12f4: 0x04e6, 0x12f5: 0x04ee,\n\t0x12f6: 0x04f2, 0x12f7: 0x04f6, 0x12f8: 0x04fa, 0x12f9: 0x04fe, 0x12fa: 0x0502, 0x12fb: 0x0506,\n\t0x12fc: 0x050a, 0x12fd: 0x050e, 0x12fe: 0x0512, 0x12ff: 0x0516,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x051a, 0x1301: 0x051e, 0x1302: 0x0526, 0x1303: 0x052a, 0x1304: 0x052e, 0x1305: 0x0532,\n\t0x1306: 0x0536, 0x1307: 0x053a, 0x1308: 0x053e, 0x1309: 0x0542, 0x130a: 0x0546, 0x130b: 0x054a,\n\t0x130c: 0x054e, 0x130d: 0x0552, 0x130e: 0x0556, 0x130f: 0x055a, 0x1310: 0x055e, 0x1311: 0x0562,\n\t0x1312: 0x0566, 0x1313: 0x056a, 0x1314: 0x0572, 0x1315: 0x057a, 0x1316: 0x0582, 0x1317: 0x0586,\n\t0x1318: 0x058a, 0x1319: 0x058e, 0x131a: 0x0592, 0x131b: 0x0596, 0x131c: 0x059a, 0x131d: 0x05aa,\n\t0x131e: 0x4a8f, 0x131f: 0x4a95, 0x1320: 0x03c6, 0x1321: 0x0316, 0x1322: 0x031a, 0x1323: 0x4a52,\n\t0x1324: 0x031e, 0x1325: 0x4a58, 0x1326: 0x4a5e, 0x1327: 0x0322, 0x1328: 0x0326, 0x1329: 0x032a,\n\t0x132a: 0x4a64, 0x132b: 0x4a6a, 0x132c: 0x4a70, 0x132d: 0x4a76, 0x132e: 0x4a7c, 0x132f: 0x4a82,\n\t0x1330: 0x036a, 0x1331: 0x032e, 0x1332: 0x0332, 0x1333: 0x0336, 0x1334: 0x037e, 0x1335: 0x033a,\n\t0x1336: 0x033e, 0x1337: 0x0342, 0x1338: 0x0346, 0x1339: 0x034a, 0x133a: 0x034e, 0x133b: 0x0352,\n\t0x133c: 0x0356, 0x133d: 0x035a, 0x133e: 0x035e,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49d4, 0x1343: 0x49da, 0x1344: 0x49e0, 0x1345: 0x49e6,\n\t0x1346: 0x49ec, 0x1347: 0x49f2, 0x134a: 0x49f8, 0x134b: 0x49fe,\n\t0x134c: 0x4a04, 0x134d: 0x4a0a, 0x134e: 0x4a10, 0x134f: 0x4a16,\n\t0x1352: 0x4a1c, 0x1353: 0x4a22, 0x1354: 0x4a28, 0x1355: 0x4a2e, 0x1356: 0x4a34, 0x1357: 0x4a3a,\n\t0x135a: 0x4a40, 0x135b: 0x4a46, 0x135c: 0x4a4c,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x427b,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x044a, 0x1368: 0x046e, 0x1369: 0x044e,\n\t0x136a: 0x0452, 0x136b: 0x0456, 0x136c: 0x045a, 0x136d: 0x0472, 0x136e: 0x0476,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0176, 0x13a9: 0x0179,\n\t0x13aa: 0x017c, 0x13ab: 0x017f, 0x13ac: 0x0182, 0x13ad: 0x0185, 0x13ae: 0x0188, 0x13af: 0x018b,\n\t0x13b0: 0x018e, 0x13b1: 0x0191, 0x13b2: 0x0194, 0x13b3: 0x0197, 0x13b4: 0x019a, 0x13b5: 0x019d,\n\t0x13b6: 0x01a0, 0x13b7: 0x01a3, 0x13b8: 0x01a6, 0x13b9: 0x018b, 0x13ba: 0x01a9, 0x13bb: 0x01ac,\n\t0x13bc: 0x01af, 0x13bd: 0x01b2, 0x13be: 0x01b5, 0x13bf: 0x01b8,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0200, 0x13c1: 0x0203, 0x13c2: 0x0206, 0x13c3: 0x045e, 0x13c4: 0x01ca, 0x13c5: 0x01d3,\n\t0x13c6: 0x01d9, 0x13c7: 0x01fd, 0x13c8: 0x01ee, 0x13c9: 0x01eb, 0x13ca: 0x0209, 0x13cb: 0x020c,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x023c, 0x1401: 0x023f, 0x1402: 0x024b, 0x1403: 0x0254, 0x1405: 0x028d,\n\t0x1406: 0x025d, 0x1407: 0x024e, 0x1408: 0x026c, 0x1409: 0x0293, 0x140a: 0x027e, 0x140b: 0x0281,\n\t0x140c: 0x0284, 0x140d: 0x0287, 0x140e: 0x0260, 0x140f: 0x0272, 0x1410: 0x0278, 0x1411: 0x0266,\n\t0x1412: 0x027b, 0x1413: 0x025a, 0x1414: 0x0263, 0x1415: 0x0245, 0x1416: 0x0248, 0x1417: 0x0251,\n\t0x1418: 0x0257, 0x1419: 0x0269, 0x141a: 0x026f, 0x141b: 0x0275, 0x141c: 0x0296, 0x141d: 0x02e7,\n\t0x141e: 0x02cf, 0x141f: 0x0299, 0x1421: 0x023f, 0x1422: 0x024b,\n\t0x1424: 0x028a, 0x1427: 0x024e, 0x1429: 0x0293,\n\t0x142a: 0x027e, 0x142b: 0x0281, 0x142c: 0x0284, 0x142d: 0x0287, 0x142e: 0x0260, 0x142f: 0x0272,\n\t0x1430: 0x0278, 0x1431: 0x0266, 0x1432: 0x027b, 0x1434: 0x0263, 0x1435: 0x0245,\n\t0x1436: 0x0248, 0x1437: 0x0251, 0x1439: 0x0269, 0x143b: 0x0275,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x024b,\n\t0x1447: 0x024e, 0x1449: 0x0293, 0x144b: 0x0281,\n\t0x144d: 0x0287, 0x144e: 0x0260, 0x144f: 0x0272, 0x1451: 0x0266,\n\t0x1452: 0x027b, 0x1454: 0x0263, 0x1457: 0x0251,\n\t0x1459: 0x0269, 0x145b: 0x0275, 0x145d: 0x02e7,\n\t0x145f: 0x0299, 0x1461: 0x023f, 0x1462: 0x024b,\n\t0x1464: 0x028a, 0x1467: 0x024e, 0x1468: 0x026c, 0x1469: 0x0293,\n\t0x146a: 0x027e, 0x146c: 0x0284, 0x146d: 0x0287, 0x146e: 0x0260, 0x146f: 0x0272,\n\t0x1470: 0x0278, 0x1471: 0x0266, 0x1472: 0x027b, 0x1474: 0x0263, 0x1475: 0x0245,\n\t0x1476: 0x0248, 0x1477: 0x0251, 0x1479: 0x0269, 0x147a: 0x026f, 0x147b: 0x0275,\n\t0x147c: 0x0296, 0x147e: 0x02cf,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x023c, 0x1481: 0x023f, 0x1482: 0x024b, 0x1483: 0x0254, 0x1484: 0x028a, 0x1485: 0x028d,\n\t0x1486: 0x025d, 0x1487: 0x024e, 0x1488: 0x026c, 0x1489: 0x0293, 0x148b: 0x0281,\n\t0x148c: 0x0284, 0x148d: 0x0287, 0x148e: 0x0260, 0x148f: 0x0272, 0x1490: 0x0278, 0x1491: 0x0266,\n\t0x1492: 0x027b, 0x1493: 0x025a, 0x1494: 0x0263, 0x1495: 0x0245, 0x1496: 0x0248, 0x1497: 0x0251,\n\t0x1498: 0x0257, 0x1499: 0x0269, 0x149a: 0x026f, 0x149b: 0x0275,\n\t0x14a1: 0x023f, 0x14a2: 0x024b, 0x14a3: 0x0254,\n\t0x14a5: 0x028d, 0x14a6: 0x025d, 0x14a7: 0x024e, 0x14a8: 0x026c, 0x14a9: 0x0293,\n\t0x14ab: 0x0281, 0x14ac: 0x0284, 0x14ad: 0x0287, 0x14ae: 0x0260, 0x14af: 0x0272,\n\t0x14b0: 0x0278, 0x14b1: 0x0266, 0x14b2: 0x027b, 0x14b3: 0x025a, 0x14b4: 0x0263, 0x14b5: 0x0245,\n\t0x14b6: 0x0248, 0x14b7: 0x0251, 0x14b8: 0x0257, 0x14b9: 0x0269, 0x14ba: 0x026f, 0x14bb: 0x0275,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x187c, 0x14c1: 0x1879, 0x14c2: 0x187f, 0x14c3: 0x18a3, 0x14c4: 0x18c7, 0x14c5: 0x18eb,\n\t0x14c6: 0x190f, 0x14c7: 0x1918, 0x14c8: 0x191e, 0x14c9: 0x1924, 0x14ca: 0x192a,\n\t0x14d0: 0x1a92, 0x14d1: 0x1a96,\n\t0x14d2: 0x1a9a, 0x14d3: 0x1a9e, 0x14d4: 0x1aa2, 0x14d5: 0x1aa6, 0x14d6: 0x1aaa, 0x14d7: 0x1aae,\n\t0x14d8: 0x1ab2, 0x14d9: 0x1ab6, 0x14da: 0x1aba, 0x14db: 0x1abe, 0x14dc: 0x1ac2, 0x14dd: 0x1ac6,\n\t0x14de: 0x1aca, 0x14df: 0x1ace, 0x14e0: 0x1ad2, 0x14e1: 0x1ad6, 0x14e2: 0x1ada, 0x14e3: 0x1ade,\n\t0x14e4: 0x1ae2, 0x14e5: 0x1ae6, 0x14e6: 0x1aea, 0x14e7: 0x1aee, 0x14e8: 0x1af2, 0x14e9: 0x1af6,\n\t0x14ea: 0x272b, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193f, 0x14ee: 0x19b7,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26b3, 0x1501: 0x26c8, 0x1502: 0x0506,\n\t0x1510: 0x0c12, 0x1511: 0x0a4a,\n\t0x1512: 0x08d6, 0x1513: 0x45db, 0x1514: 0x071e, 0x1515: 0x09f2, 0x1516: 0x1332, 0x1517: 0x0a02,\n\t0x1518: 0x072a, 0x1519: 0x0cda, 0x151a: 0x0eb2, 0x151b: 0x0cb2, 0x151c: 0x082a, 0x151d: 0x0b6e,\n\t0x151e: 0x07c2, 0x151f: 0x0cba, 0x1520: 0x0816, 0x1521: 0x111a, 0x1522: 0x0f86, 0x1523: 0x138e,\n\t0x1524: 0x09d6, 0x1525: 0x090e, 0x1526: 0x0e66, 0x1527: 0x0c1e, 0x1528: 0x0c4a, 0x1529: 0x06c2,\n\t0x152a: 0x06ce, 0x152b: 0x140e, 0x152c: 0x0ade, 0x152d: 0x06ea, 0x152e: 0x08f2, 0x152f: 0x0c3e,\n\t0x1530: 0x13b6, 0x1531: 0x0c16, 0x1532: 0x1072, 0x1533: 0x10ae, 0x1534: 0x08fa, 0x1535: 0x0e46,\n\t0x1536: 0x0d0e, 0x1537: 0x0d0a, 0x1538: 0x0f9a, 0x1539: 0x082e, 0x153a: 0x095a, 0x153b: 0x1446,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fe, 0x1541: 0x06f6, 0x1542: 0x0706, 0x1543: 0x164a, 0x1544: 0x074a, 0x1545: 0x075a,\n\t0x1546: 0x075e, 0x1547: 0x0766, 0x1548: 0x076e, 0x1549: 0x0772, 0x154a: 0x077e, 0x154b: 0x0776,\n\t0x154c: 0x05b6, 0x154d: 0x165e, 0x154e: 0x0792, 0x154f: 0x0796, 0x1550: 0x079a, 0x1551: 0x07b6,\n\t0x1552: 0x164f, 0x1553: 0x05ba, 0x1554: 0x07a2, 0x1555: 0x07c2, 0x1556: 0x1659, 0x1557: 0x07d2,\n\t0x1558: 0x07da, 0x1559: 0x073a, 0x155a: 0x07e2, 0x155b: 0x07e6, 0x155c: 0x1834, 0x155d: 0x0802,\n\t0x155e: 0x080a, 0x155f: 0x05c2, 0x1560: 0x0822, 0x1561: 0x0826, 0x1562: 0x082e, 0x1563: 0x0832,\n\t0x1564: 0x05c6, 0x1565: 0x084a, 0x1566: 0x084e, 0x1567: 0x085a, 0x1568: 0x0866, 0x1569: 0x086a,\n\t0x156a: 0x086e, 0x156b: 0x0876, 0x156c: 0x0896, 0x156d: 0x089a, 0x156e: 0x08a2, 0x156f: 0x08b2,\n\t0x1570: 0x08ba, 0x1571: 0x08be, 0x1572: 0x08be, 0x1573: 0x08be, 0x1574: 0x166d, 0x1575: 0x0e96,\n\t0x1576: 0x08d2, 0x1577: 0x08da, 0x1578: 0x1672, 0x1579: 0x08e6, 0x157a: 0x08ee, 0x157b: 0x08f6,\n\t0x157c: 0x091e, 0x157d: 0x090a, 0x157e: 0x0916, 0x157f: 0x091a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0922, 0x1581: 0x092a, 0x1582: 0x092e, 0x1583: 0x0936, 0x1584: 0x093e, 0x1585: 0x0942,\n\t0x1586: 0x0942, 0x1587: 0x094a, 0x1588: 0x0952, 0x1589: 0x0956, 0x158a: 0x0962, 0x158b: 0x0986,\n\t0x158c: 0x096a, 0x158d: 0x098a, 0x158e: 0x096e, 0x158f: 0x0976, 0x1590: 0x080e, 0x1591: 0x09d2,\n\t0x1592: 0x099a, 0x1593: 0x099e, 0x1594: 0x09a2, 0x1595: 0x0996, 0x1596: 0x09aa, 0x1597: 0x09a6,\n\t0x1598: 0x09be, 0x1599: 0x1677, 0x159a: 0x09da, 0x159b: 0x09de, 0x159c: 0x09e6, 0x159d: 0x09f2,\n\t0x159e: 0x09fa, 0x159f: 0x0a16, 0x15a0: 0x167c, 0x15a1: 0x1681, 0x15a2: 0x0a22, 0x15a3: 0x0a26,\n\t0x15a4: 0x0a2a, 0x15a5: 0x0a1e, 0x15a6: 0x0a32, 0x15a7: 0x05ca, 0x15a8: 0x05ce, 0x15a9: 0x0a3a,\n\t0x15aa: 0x0a42, 0x15ab: 0x0a42, 0x15ac: 0x1686, 0x15ad: 0x0a5e, 0x15ae: 0x0a62, 0x15af: 0x0a66,\n\t0x15b0: 0x0a6e, 0x15b1: 0x168b, 0x15b2: 0x0a76, 0x15b3: 0x0a7a, 0x15b4: 0x0b52, 0x15b5: 0x0a82,\n\t0x15b6: 0x05d2, 0x15b7: 0x0a8e, 0x15b8: 0x0a9e, 0x15b9: 0x0aaa, 0x15ba: 0x0aa6, 0x15bb: 0x1695,\n\t0x15bc: 0x0ab2, 0x15bd: 0x169a, 0x15be: 0x0abe, 0x15bf: 0x0aba,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0ac2, 0x15c1: 0x0ad2, 0x15c2: 0x0ad6, 0x15c3: 0x05d6, 0x15c4: 0x0ae6, 0x15c5: 0x0aee,\n\t0x15c6: 0x0af2, 0x15c7: 0x0af6, 0x15c8: 0x05da, 0x15c9: 0x169f, 0x15ca: 0x05de, 0x15cb: 0x0b12,\n\t0x15cc: 0x0b16, 0x15cd: 0x0b1a, 0x15ce: 0x0b22, 0x15cf: 0x1866, 0x15d0: 0x0b3a, 0x15d1: 0x16a9,\n\t0x15d2: 0x16a9, 0x15d3: 0x11da, 0x15d4: 0x0b4a, 0x15d5: 0x0b4a, 0x15d6: 0x05e2, 0x15d7: 0x16cc,\n\t0x15d8: 0x179e, 0x15d9: 0x0b5a, 0x15da: 0x0b62, 0x15db: 0x05e6, 0x15dc: 0x0b76, 0x15dd: 0x0b86,\n\t0x15de: 0x0b8a, 0x15df: 0x0b92, 0x15e0: 0x0ba2, 0x15e1: 0x05ee, 0x15e2: 0x05ea, 0x15e3: 0x0ba6,\n\t0x15e4: 0x16ae, 0x15e5: 0x0baa, 0x15e6: 0x0bbe, 0x15e7: 0x0bc2, 0x15e8: 0x0bc6, 0x15e9: 0x0bc2,\n\t0x15ea: 0x0bd2, 0x15eb: 0x0bd6, 0x15ec: 0x0be6, 0x15ed: 0x0bde, 0x15ee: 0x0be2, 0x15ef: 0x0bea,\n\t0x15f0: 0x0bee, 0x15f1: 0x0bf2, 0x15f2: 0x0bfe, 0x15f3: 0x0c02, 0x15f4: 0x0c1a, 0x15f5: 0x0c22,\n\t0x15f6: 0x0c32, 0x15f7: 0x0c46, 0x15f8: 0x16bd, 0x15f9: 0x0c42, 0x15fa: 0x0c36, 0x15fb: 0x0c4e,\n\t0x15fc: 0x0c56, 0x15fd: 0x0c6a, 0x15fe: 0x16c2, 0x15ff: 0x0c72,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c66, 0x1601: 0x0c5e, 0x1602: 0x05f2, 0x1603: 0x0c7a, 0x1604: 0x0c82, 0x1605: 0x0c8a,\n\t0x1606: 0x0c7e, 0x1607: 0x05f6, 0x1608: 0x0c9a, 0x1609: 0x0ca2, 0x160a: 0x16c7, 0x160b: 0x0cce,\n\t0x160c: 0x0d02, 0x160d: 0x0cde, 0x160e: 0x0602, 0x160f: 0x0cea, 0x1610: 0x05fe, 0x1611: 0x05fa,\n\t0x1612: 0x07c6, 0x1613: 0x07ca, 0x1614: 0x0d06, 0x1615: 0x0cee, 0x1616: 0x11ae, 0x1617: 0x0666,\n\t0x1618: 0x0d12, 0x1619: 0x0d16, 0x161a: 0x0d1a, 0x161b: 0x0d2e, 0x161c: 0x0d26, 0x161d: 0x16e0,\n\t0x161e: 0x0606, 0x161f: 0x0d42, 0x1620: 0x0d36, 0x1621: 0x0d52, 0x1622: 0x0d5a, 0x1623: 0x16ea,\n\t0x1624: 0x0d5e, 0x1625: 0x0d4a, 0x1626: 0x0d66, 0x1627: 0x060a, 0x1628: 0x0d6a, 0x1629: 0x0d6e,\n\t0x162a: 0x0d72, 0x162b: 0x0d7e, 0x162c: 0x16ef, 0x162d: 0x0d86, 0x162e: 0x060e, 0x162f: 0x0d92,\n\t0x1630: 0x16f4, 0x1631: 0x0d96, 0x1632: 0x0612, 0x1633: 0x0da2, 0x1634: 0x0dae, 0x1635: 0x0dba,\n\t0x1636: 0x0dbe, 0x1637: 0x16f9, 0x1638: 0x1690, 0x1639: 0x16fe, 0x163a: 0x0dde, 0x163b: 0x1703,\n\t0x163c: 0x0dea, 0x163d: 0x0df2, 0x163e: 0x0de2, 0x163f: 0x0dfe,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0e, 0x1641: 0x0e1e, 0x1642: 0x0e12, 0x1643: 0x0e16, 0x1644: 0x0e22, 0x1645: 0x0e26,\n\t0x1646: 0x1708, 0x1647: 0x0e0a, 0x1648: 0x0e3e, 0x1649: 0x0e42, 0x164a: 0x0616, 0x164b: 0x0e56,\n\t0x164c: 0x0e52, 0x164d: 0x170d, 0x164e: 0x0e36, 0x164f: 0x0e72, 0x1650: 0x1712, 0x1651: 0x1717,\n\t0x1652: 0x0e76, 0x1653: 0x0e8a, 0x1654: 0x0e86, 0x1655: 0x0e82, 0x1656: 0x061a, 0x1657: 0x0e8e,\n\t0x1658: 0x0e9e, 0x1659: 0x0e9a, 0x165a: 0x0ea6, 0x165b: 0x1654, 0x165c: 0x0eb6, 0x165d: 0x171c,\n\t0x165e: 0x0ec2, 0x165f: 0x1726, 0x1660: 0x0ed6, 0x1661: 0x0ee2, 0x1662: 0x0ef6, 0x1663: 0x172b,\n\t0x1664: 0x0f0a, 0x1665: 0x0f0e, 0x1666: 0x1730, 0x1667: 0x1735, 0x1668: 0x0f2a, 0x1669: 0x0f3a,\n\t0x166a: 0x061e, 0x166b: 0x0f3e, 0x166c: 0x0622, 0x166d: 0x0622, 0x166e: 0x0f56, 0x166f: 0x0f5a,\n\t0x1670: 0x0f62, 0x1671: 0x0f66, 0x1672: 0x0f72, 0x1673: 0x0626, 0x1674: 0x0f8a, 0x1675: 0x173a,\n\t0x1676: 0x0fa6, 0x1677: 0x173f, 0x1678: 0x0fb2, 0x1679: 0x16a4, 0x167a: 0x0fc2, 0x167b: 0x1744,\n\t0x167c: 0x1749, 0x167d: 0x174e, 0x167e: 0x062a, 0x167f: 0x062e,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ffa, 0x1681: 0x1758, 0x1682: 0x1753, 0x1683: 0x175d, 0x1684: 0x1762, 0x1685: 0x1002,\n\t0x1686: 0x1006, 0x1687: 0x1006, 0x1688: 0x100e, 0x1689: 0x0636, 0x168a: 0x1012, 0x168b: 0x063a,\n\t0x168c: 0x063e, 0x168d: 0x176c, 0x168e: 0x1026, 0x168f: 0x102e, 0x1690: 0x103a, 0x1691: 0x0642,\n\t0x1692: 0x1771, 0x1693: 0x105e, 0x1694: 0x1776, 0x1695: 0x177b, 0x1696: 0x107e, 0x1697: 0x1096,\n\t0x1698: 0x0646, 0x1699: 0x109e, 0x169a: 0x10a2, 0x169b: 0x10a6, 0x169c: 0x1780, 0x169d: 0x1785,\n\t0x169e: 0x1785, 0x169f: 0x10be, 0x16a0: 0x064a, 0x16a1: 0x178a, 0x16a2: 0x10d2, 0x16a3: 0x10d6,\n\t0x16a4: 0x064e, 0x16a5: 0x178f, 0x16a6: 0x10f2, 0x16a7: 0x0652, 0x16a8: 0x1102, 0x16a9: 0x10fa,\n\t0x16aa: 0x110a, 0x16ab: 0x1799, 0x16ac: 0x1122, 0x16ad: 0x0656, 0x16ae: 0x112e, 0x16af: 0x1136,\n\t0x16b0: 0x1146, 0x16b1: 0x065a, 0x16b2: 0x17a3, 0x16b3: 0x17a8, 0x16b4: 0x065e, 0x16b5: 0x17ad,\n\t0x16b6: 0x115e, 0x16b7: 0x17b2, 0x16b8: 0x116a, 0x16b9: 0x1176, 0x16ba: 0x117e, 0x16bb: 0x17b7,\n\t0x16bc: 0x17bc, 0x16bd: 0x1192, 0x16be: 0x17c1, 0x16bf: 0x119a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16d1, 0x16c1: 0x0662, 0x16c2: 0x11b2, 0x16c3: 0x11b6, 0x16c4: 0x066a, 0x16c5: 0x11ba,\n\t0x16c6: 0x0a36, 0x16c7: 0x17c6, 0x16c8: 0x17cb, 0x16c9: 0x16d6, 0x16ca: 0x16db, 0x16cb: 0x11da,\n\t0x16cc: 0x11de, 0x16cd: 0x13f6, 0x16ce: 0x066e, 0x16cf: 0x120a, 0x16d0: 0x1206, 0x16d1: 0x120e,\n\t0x16d2: 0x0842, 0x16d3: 0x1212, 0x16d4: 0x1216, 0x16d5: 0x121a, 0x16d6: 0x1222, 0x16d7: 0x17d0,\n\t0x16d8: 0x121e, 0x16d9: 0x1226, 0x16da: 0x123a, 0x16db: 0x123e, 0x16dc: 0x122a, 0x16dd: 0x1242,\n\t0x16de: 0x1256, 0x16df: 0x126a, 0x16e0: 0x1236, 0x16e1: 0x124a, 0x16e2: 0x124e, 0x16e3: 0x1252,\n\t0x16e4: 0x17d5, 0x16e5: 0x17df, 0x16e6: 0x17da, 0x16e7: 0x0672, 0x16e8: 0x1272, 0x16e9: 0x1276,\n\t0x16ea: 0x127e, 0x16eb: 0x17f3, 0x16ec: 0x1282, 0x16ed: 0x17e4, 0x16ee: 0x0676, 0x16ef: 0x067a,\n\t0x16f0: 0x17e9, 0x16f1: 0x17ee, 0x16f2: 0x067e, 0x16f3: 0x12a2, 0x16f4: 0x12a6, 0x16f5: 0x12aa,\n\t0x16f6: 0x12ae, 0x16f7: 0x12ba, 0x16f8: 0x12b6, 0x16f9: 0x12c2, 0x16fa: 0x12be, 0x16fb: 0x12ce,\n\t0x16fc: 0x12c6, 0x16fd: 0x12ca, 0x16fe: 0x12d2, 0x16ff: 0x0682,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12da, 0x1701: 0x12de, 0x1702: 0x0686, 0x1703: 0x12ee, 0x1704: 0x12f2, 0x1705: 0x17f8,\n\t0x1706: 0x12fe, 0x1707: 0x1302, 0x1708: 0x068a, 0x1709: 0x130e, 0x170a: 0x05be, 0x170b: 0x17fd,\n\t0x170c: 0x1802, 0x170d: 0x068e, 0x170e: 0x0692, 0x170f: 0x133a, 0x1710: 0x1352, 0x1711: 0x136e,\n\t0x1712: 0x137e, 0x1713: 0x1807, 0x1714: 0x1392, 0x1715: 0x1396, 0x1716: 0x13ae, 0x1717: 0x13ba,\n\t0x1718: 0x1811, 0x1719: 0x1663, 0x171a: 0x13c6, 0x171b: 0x13c2, 0x171c: 0x13ce, 0x171d: 0x1668,\n\t0x171e: 0x13da, 0x171f: 0x13e6, 0x1720: 0x1816, 0x1721: 0x181b, 0x1722: 0x1426, 0x1723: 0x1432,\n\t0x1724: 0x143a, 0x1725: 0x1820, 0x1726: 0x143e, 0x1727: 0x146a, 0x1728: 0x1476, 0x1729: 0x147a,\n\t0x172a: 0x1472, 0x172b: 0x1486, 0x172c: 0x148a, 0x172d: 0x1825, 0x172e: 0x1496, 0x172f: 0x0696,\n\t0x1730: 0x149e, 0x1731: 0x182a, 0x1732: 0x069a, 0x1733: 0x14d6, 0x1734: 0x0ac6, 0x1735: 0x14ee,\n\t0x1736: 0x182f, 0x1737: 0x1839, 0x1738: 0x069e, 0x1739: 0x06a2, 0x173a: 0x1516, 0x173b: 0x183e,\n\t0x173c: 0x06a6, 0x173d: 0x1843, 0x173e: 0x152e, 0x173f: 0x152e,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1536, 0x1741: 0x1848, 0x1742: 0x154e, 0x1743: 0x06aa, 0x1744: 0x155e, 0x1745: 0x156a,\n\t0x1746: 0x1572, 0x1747: 0x157a, 0x1748: 0x06ae, 0x1749: 0x184d, 0x174a: 0x158e, 0x174b: 0x15aa,\n\t0x174c: 0x15b6, 0x174d: 0x06b2, 0x174e: 0x06b6, 0x174f: 0x15ba, 0x1750: 0x1852, 0x1751: 0x06ba,\n\t0x1752: 0x1857, 0x1753: 0x185c, 0x1754: 0x1861, 0x1755: 0x15de, 0x1756: 0x06be, 0x1757: 0x15f2,\n\t0x1758: 0x15fa, 0x1759: 0x15fe, 0x175a: 0x1606, 0x175b: 0x160e, 0x175c: 0x1616, 0x175d: 0x186b,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16b: 0x92, 0x16c: 0x0f, 0x16d: 0x93, 0x16e: 0x94, 0x16f: 0x95,\n\t0x170: 0x96, 0x173: 0x97, 0x174: 0x98, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x99, 0x181: 0x9a, 0x182: 0x9b, 0x183: 0x9c, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9d, 0x187: 0x9e,\n\t0x188: 0x9f, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa0, 0x18c: 0xa1,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa2,\n\t0x1a8: 0xa3, 0x1a9: 0xa4, 0x1ab: 0xa5,\n\t0x1b1: 0xa6, 0x1b3: 0xa7, 0x1b5: 0xa8, 0x1b7: 0xa9,\n\t0x1ba: 0xaa, 0x1bb: 0xab, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xac,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xad, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xae, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xaf, 0x21a: 0xb0, 0x21b: 0xb1, 0x21d: 0xb2, 0x21f: 0xb3,\n\t0x220: 0xb4, 0x223: 0xb5, 0x224: 0xb6, 0x225: 0xb7, 0x226: 0xb8, 0x227: 0xb9,\n\t0x22a: 0xba, 0x22b: 0xbb, 0x22d: 0xbc, 0x22f: 0xbd,\n\t0x230: 0xbe, 0x231: 0xbf, 0x232: 0xc0, 0x233: 0xc1, 0x234: 0xc2, 0x235: 0xc3, 0x236: 0xc4, 0x237: 0xbe,\n\t0x238: 0xbf, 0x239: 0xc0, 0x23a: 0xc1, 0x23b: 0xc2, 0x23c: 0xc3, 0x23d: 0xc4, 0x23e: 0xbe, 0x23f: 0xbf,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xc0, 0x241: 0xc1, 0x242: 0xc2, 0x243: 0xc3, 0x244: 0xc4, 0x245: 0xbe, 0x246: 0xbf, 0x247: 0xc0,\n\t0x248: 0xc1, 0x249: 0xc2, 0x24a: 0xc3, 0x24b: 0xc4, 0x24c: 0xbe, 0x24d: 0xbf, 0x24e: 0xc0, 0x24f: 0xc1,\n\t0x250: 0xc2, 0x251: 0xc3, 0x252: 0xc4, 0x253: 0xbe, 0x254: 0xbf, 0x255: 0xc0, 0x256: 0xc1, 0x257: 0xc2,\n\t0x258: 0xc3, 0x259: 0xc4, 0x25a: 0xbe, 0x25b: 0xbf, 0x25c: 0xc0, 0x25d: 0xc1, 0x25e: 0xc2, 0x25f: 0xc3,\n\t0x260: 0xc4, 0x261: 0xbe, 0x262: 0xbf, 0x263: 0xc0, 0x264: 0xc1, 0x265: 0xc2, 0x266: 0xc3, 0x267: 0xc4,\n\t0x268: 0xbe, 0x269: 0xbf, 0x26a: 0xc0, 0x26b: 0xc1, 0x26c: 0xc2, 0x26d: 0xc3, 0x26e: 0xc4, 0x26f: 0xbe,\n\t0x270: 0xbf, 0x271: 0xc0, 0x272: 0xc1, 0x273: 0xc2, 0x274: 0xc3, 0x275: 0xc4, 0x276: 0xbe, 0x277: 0xbf,\n\t0x278: 0xc0, 0x279: 0xc1, 0x27a: 0xc2, 0x27b: 0xc3, 0x27c: 0xc4, 0x27d: 0xbe, 0x27e: 0xbf, 0x27f: 0xc0,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc1, 0x281: 0xc2, 0x282: 0xc3, 0x283: 0xc4, 0x284: 0xbe, 0x285: 0xbf, 0x286: 0xc0, 0x287: 0xc1,\n\t0x288: 0xc2, 0x289: 0xc3, 0x28a: 0xc4, 0x28b: 0xbe, 0x28c: 0xbf, 0x28d: 0xc0, 0x28e: 0xc1, 0x28f: 0xc2,\n\t0x290: 0xc3, 0x291: 0xc4, 0x292: 0xbe, 0x293: 0xbf, 0x294: 0xc0, 0x295: 0xc1, 0x296: 0xc2, 0x297: 0xc3,\n\t0x298: 0xc4, 0x299: 0xbe, 0x29a: 0xbf, 0x29b: 0xc0, 0x29c: 0xc1, 0x29d: 0xc2, 0x29e: 0xc3, 0x29f: 0xc4,\n\t0x2a0: 0xbe, 0x2a1: 0xbf, 0x2a2: 0xc0, 0x2a3: 0xc1, 0x2a4: 0xc2, 0x2a5: 0xc3, 0x2a6: 0xc4, 0x2a7: 0xbe,\n\t0x2a8: 0xbf, 0x2a9: 0xc0, 0x2aa: 0xc1, 0x2ab: 0xc2, 0x2ac: 0xc3, 0x2ad: 0xc4, 0x2ae: 0xbe, 0x2af: 0xbf,\n\t0x2b0: 0xc0, 0x2b1: 0xc1, 0x2b2: 0xc2, 0x2b3: 0xc3, 0x2b4: 0xc4, 0x2b5: 0xbe, 0x2b6: 0xbf, 0x2b7: 0xc0,\n\t0x2b8: 0xc1, 0x2b9: 0xc2, 0x2ba: 0xc3, 0x2bb: 0xc4, 0x2bc: 0xbe, 0x2bd: 0xbf, 0x2be: 0xc0, 0x2bf: 0xc1,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc2, 0x2c1: 0xc3, 0x2c2: 0xc4, 0x2c3: 0xbe, 0x2c4: 0xbf, 0x2c5: 0xc0, 0x2c6: 0xc1, 0x2c7: 0xc2,\n\t0x2c8: 0xc3, 0x2c9: 0xc4, 0x2ca: 0xbe, 0x2cb: 0xbf, 0x2cc: 0xc0, 0x2cd: 0xc1, 0x2ce: 0xc2, 0x2cf: 0xc3,\n\t0x2d0: 0xc4, 0x2d1: 0xbe, 0x2d2: 0xbf, 0x2d3: 0xc0, 0x2d4: 0xc1, 0x2d5: 0xc2, 0x2d6: 0xc3, 0x2d7: 0xc4,\n\t0x2d8: 0xbe, 0x2d9: 0xbf, 0x2da: 0xc0, 0x2db: 0xc1, 0x2dc: 0xc2, 0x2dd: 0xc3, 0x2de: 0xc5,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc6, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc7,\n\t0x34b: 0xc8, 0x34d: 0xc9,\n\t0x368: 0xca, 0x36b: 0xcb,\n\t0x374: 0xcc,\n\t0x37a: 0xcd, 0x37d: 0xce,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcf, 0x382: 0xd0, 0x384: 0xd1, 0x385: 0xb8, 0x387: 0xd2,\n\t0x388: 0xd3, 0x38b: 0xd4, 0x38c: 0xd5, 0x38d: 0xd6,\n\t0x391: 0xd7, 0x392: 0xd8, 0x393: 0xd9, 0x396: 0xda, 0x397: 0xdb,\n\t0x398: 0xdc, 0x39a: 0xdd, 0x39c: 0xde,\n\t0x3a0: 0xdf, 0x3a4: 0xe0, 0x3a5: 0xe1, 0x3a7: 0xe2,\n\t0x3a8: 0xe3, 0x3a9: 0xe4, 0x3aa: 0xe5,\n\t0x3b0: 0xdc, 0x3b5: 0xe6, 0x3b6: 0xe7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe8, 0x3ec: 0xe9,\n\t0x3ff: 0xea,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xeb,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xec, 0x446: 0xed, 0x447: 0xee,\n\t0x449: 0xef,\n\t0x450: 0xf0, 0x451: 0xf1, 0x452: 0xf2, 0x453: 0xf3, 0x454: 0xf4, 0x455: 0xf5, 0x456: 0xf6, 0x457: 0xf7,\n\t0x458: 0xf8, 0x459: 0xf9, 0x45a: 0x4c, 0x45b: 0xfa, 0x45c: 0xfb, 0x45d: 0xfc, 0x45e: 0xfd, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xfe, 0x484: 0xe9,\n\t0x48b: 0xff,\n\t0x4a3: 0x100, 0x4a5: 0x101,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0x102, 0x4c6: 0x103,\n\t0x4c8: 0x52, 0x4c9: 0x104,\n\t0x4ef: 0x105,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 170 entries, 340 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x134, 0x136, 0x13f, 0x141, 0x144, 0x146, 0x151, 0x15c, 0x16a, 0x178, 0x188, 0x196, 0x19d, 0x1a3, 0x1b2, 0x1b6, 0x1b8, 0x1bc, 0x1be, 0x1c1, 0x1c3, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1cf, 0x1d1, 0x1dd, 0x1e7, 0x1f1, 0x1f4, 0x1f8, 0x1fa, 0x1fc, 0x1fe, 0x201, 0x204, 0x206, 0x208, 0x20a, 0x20c, 0x212, 0x215, 0x21a, 0x21c, 0x223, 0x229, 0x22f, 0x237, 0x23d, 0x243, 0x249, 0x24d, 0x24f, 0x251, 0x253, 0x255, 0x25b, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x273, 0x27a, 0x27d, 0x280, 0x282, 0x285, 0x28d, 0x291, 0x298, 0x29b, 0x2a1, 0x2a3, 0x2a5, 0x2a8, 0x2aa, 0x2ad, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2bc, 0x2bf, 0x2c1, 0x2c3, 0x2c5, 0x2c7, 0x2c9, 0x2d6, 0x2e0, 0x2e2, 0x2e4, 0x2e8, 0x2ed, 0x2f9, 0x2fe, 0x307, 0x30d, 0x312, 0x316, 0x31b, 0x31f, 0x32f, 0x33d, 0x34b, 0x359, 0x35f, 0x361, 0x363, 0x366, 0x371, 0x373, 0x37d}\n\n// nfkcSparseValues: 895 entries, 3580 bytes\nvar nfkcSparseValues = [895]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x428f, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x427b, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4271, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01df, lo: 0xb5, hi: 0xb5},\n\t{value: 0x42a8, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x2222, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2216, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b8, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46f9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x472b, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x4285, lo: 0x98, hi: 0x98},\n\t{value: 0x428a, lo: 0x99, hi: 0x9a},\n\t{value: 0x42ad, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4276, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4299, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x016a, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37bc, lo: 0x90, hi: 0x90},\n\t{value: 0x37c8, lo: 0x91, hi: 0x91},\n\t{value: 0x37b6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x382e, lo: 0x97, hi: 0x97},\n\t{value: 0x37f8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37e0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x380a, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3834, lo: 0xb6, hi: 0xb6},\n\t{value: 0x383a, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3858, lo: 0xa2, hi: 0xa2},\n\t{value: 0x385e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x386a, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3864, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3870, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3882, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3876, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x387c, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3eef, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ef7, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eff, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x4533, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cab, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x4573, lo: 0x9c, hi: 0x9d},\n\t{value: 0x4583, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x45ab, lo: 0xb3, hi: 0xb3},\n\t{value: 0x45b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x458b, lo: 0x99, hi: 0x9b},\n\t{value: 0x45a3, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cc3, lo: 0x88, hi: 0x88},\n\t{value: 0x2cbb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ccb, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45bb, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45c3, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cd3, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cdb, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ceb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ce3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3f07, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2cf3, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cfb, lo: 0x87, hi: 0x87},\n\t{value: 0x2d03, lo: 0x88, hi: 0x88},\n\t{value: 0x2f67, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2def, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d0b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d1b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d13, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6bdd, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3f0f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f6f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2dfa, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d23, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2627, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x263c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xdf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t{value: 0x262e, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2635, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030e, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x264a, lo: 0x83, hi: 0x83},\n\t{value: 0x2651, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2658, lo: 0x92, hi: 0x92},\n\t{value: 0x265f, lo: 0x97, hi: 0x97},\n\t{value: 0x2666, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2643, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a9b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4aa4, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45cb, lo: 0xb6, hi: 0xb6},\n\t{value: 0x460b, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45d3, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4616, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xfa\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4aad, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x2674, lo: 0x93, hi: 0x93},\n\t{value: 0x267b, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2682, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2689, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2690, lo: 0xac, hi: 0xac},\n\t{value: 0x266d, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x108\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d2b, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0312, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x116\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x118\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x11a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x94},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x124\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x127\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x12a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x134\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t// Block 0x37, offset 0x136\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d73, lo: 0x80, hi: 0x80},\n\t{value: 0x2d7b, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d83, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x13f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x141\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x144\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x146\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x151\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x15c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043e, lo: 0x91, hi: 0x91},\n\t{value: 0x42b2, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1876, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b62, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2697, lo: 0xb3, hi: 0xb3},\n\t{value: 0x280b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x269e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2815, lo: 0xb7, hi: 0xb7},\n\t{value: 0x1870, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4280, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x16a\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1936, lo: 0x87, hi: 0x87},\n\t{value: 0x1933, lo: 0x88, hi: 0x88},\n\t{value: 0x1873, lo: 0x89, hi: 0x89},\n\t{value: 0x299b, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x046a, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x178\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x046a, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x199f, lo: 0xa8, hi: 0xa8},\n\t// Block 0x40, offset 0x188\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x41, offset 0x196\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2186, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bd0, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bde, lo: 0xae, hi: 0xae},\n\t// Block 0x42, offset 0x19d\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3be5, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bec, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x43, offset 0x1a3\n\t{value: 0x017a, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3bfa, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3c01, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3c08, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3c0f, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3c16, lo: 0xa6, hi: 0xa6},\n\t{value: 0x26a5, lo: 0xac, hi: 0xad},\n\t{value: 0x26ac, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2829, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x44, offset 0x1b2\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c7f, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3ca9, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cd3, lo: 0xaa, hi: 0xad},\n\t// Block 0x45, offset 0x1b6\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048e, lo: 0xa9, hi: 0xaa},\n\t// Block 0x46, offset 0x1b8\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x47, offset 0x1bc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x29a8, lo: 0x8c, hi: 0x8c},\n\t// Block 0x48, offset 0x1be\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1b92, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1930, lo: 0xb5, hi: 0xb6},\n\t// Block 0x49, offset 0x1c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44f4, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4a, offset 0x1c3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4b, offset 0x1c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4c, offset 0x1c8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0482, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4d, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4e, offset 0x1cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc6, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4f, offset 0x1cf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1632, lo: 0xb3, hi: 0xb3},\n\t// Block 0x50, offset 0x1d1\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x159a, lo: 0x80, hi: 0x82},\n\t{value: 0x15b2, lo: 0x83, hi: 0x83},\n\t{value: 0x15ca, lo: 0x84, hi: 0x85},\n\t{value: 0x15da, lo: 0x86, hi: 0x89},\n\t{value: 0x15ee, lo: 0x8a, hi: 0x8c},\n\t{value: 0x1602, lo: 0x8d, hi: 0x8d},\n\t{value: 0x160a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x1612, lo: 0x8f, hi: 0x90},\n\t{value: 0x161e, lo: 0x91, hi: 0x93},\n\t{value: 0x162e, lo: 0x94, hi: 0x94},\n\t{value: 0x1636, lo: 0x95, hi: 0x95},\n\t// Block 0x51, offset 0x1dd\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xae},\n\t{value: 0x8130, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b6, lo: 0xb6, hi: 0xb6},\n\t{value: 0x088a, lo: 0xb8, hi: 0xba},\n\t// Block 0x52, offset 0x1e7\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0316, lo: 0xb1, hi: 0xb1},\n\t{value: 0x031a, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a52, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a58, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0322, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0326, lo: 0xb8, hi: 0xb8},\n\t{value: 0x032a, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a64, lo: 0xba, hi: 0xbf},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x54, offset 0x1f4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0212, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0215, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x55, offset 0x1f8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x56, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163e, lo: 0xb0, hi: 0xb0},\n\t// Block 0x57, offset 0x1fc\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x58, offset 0x1fe\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x59, offset 0x201\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5a, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x5b, offset 0x206\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x5c, offset 0x208\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5d, offset 0x20a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x5e, offset 0x20c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5f, offset 0x212\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x60, offset 0x215\n\t{value: 0x0008, lo: 0x04},\n\t{value: 0x163a, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1646, lo: 0x9f, hi: 0x9f},\n\t{value: 0x015e, lo: 0xa9, hi: 0xa9},\n\t// Block 0x61, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x62, offset 0x21c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x63, offset 0x223\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x64, offset 0x229\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x65, offset 0x22f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x66, offset 0x237\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x67, offset 0x23d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x68, offset 0x243\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x69, offset 0x249\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6a, offset 0x24d\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6b, offset 0x24f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6c, offset 0x251\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6d, offset 0x253\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x6e, offset 0x255\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x25b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x70, offset 0x25e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x71, offset 0x260\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x72, offset 0x262\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x73, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x26b\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x424f, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4259, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x4263, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x75, offset 0x273\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d8b, lo: 0xae, hi: 0xae},\n\t{value: 0x2d95, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x76, offset 0x27a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x77, offset 0x27d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x78, offset 0x280\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x79, offset 0x282\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7a, offset 0x285\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d9f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2da9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7b, offset 0x28d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7c, offset 0x291\n\t{value: 0x6b4d, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2dbd, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2db3, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dc7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x298\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x7e, offset 0x29b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dd1, lo: 0xba, hi: 0xba},\n\t{value: 0x2ddb, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x80, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x2a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x82, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x83, offset 0x2aa\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x84, offset 0x2ad\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2de5, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x85, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x86, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x87, offset 0x2b6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x88, offset 0x2b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x89, offset 0x2ba\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8a, offset 0x2bc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8b, offset 0x2bf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8c, offset 0x2c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8d, offset 0x2c3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8e, offset 0x2c5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x8f, offset 0x2c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x90, offset 0x2c9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45e3, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45ed, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4621, lo: 0xa0, hi: 0xa0},\n\t{value: 0x462f, lo: 0xa1, hi: 0xa1},\n\t{value: 0x463d, lo: 0xa2, hi: 0xa2},\n\t{value: 0x464b, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4659, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x91, offset 0x2d6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x45f7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x4601, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4667, lo: 0xbd, hi: 0xbd},\n\t{value: 0x4683, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4675, lo: 0xbf, hi: 0xbf},\n\t// Block 0x92, offset 0x2e0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4691, lo: 0x80, hi: 0x80},\n\t// Block 0x93, offset 0x2e2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x94, offset 0x2e4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x95, offset 0x2e8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x96, offset 0x2ed\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x97, offset 0x2f9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x98, offset 0x2fe\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x99, offset 0x307\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x9a, offset 0x30d\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x9b, offset 0x312\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x9c, offset 0x316\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9d, offset 0x31b\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x31f\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01bb, lo: 0x80, hi: 0x80},\n\t{value: 0x0462, lo: 0x81, hi: 0x81},\n\t{value: 0x01be, lo: 0x82, hi: 0x9a},\n\t{value: 0x045e, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01ca, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d9, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01ee, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01eb, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0176, lo: 0xa2, hi: 0xb2},\n\t{value: 0x018b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a9, lo: 0xb4, hi: 0xba},\n\t{value: 0x0462, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01be, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9f, offset 0x32f\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01ca, lo: 0x80, hi: 0x94},\n\t{value: 0x045e, lo: 0x95, hi: 0x95},\n\t{value: 0x01ca, lo: 0x96, hi: 0x96},\n\t{value: 0x01d3, lo: 0x97, hi: 0x97},\n\t{value: 0x01d9, lo: 0x98, hi: 0x98},\n\t{value: 0x01fd, lo: 0x99, hi: 0x99},\n\t{value: 0x01ee, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01eb, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0176, lo: 0x9c, hi: 0xac},\n\t{value: 0x018b, lo: 0xad, hi: 0xad},\n\t{value: 0x01a9, lo: 0xae, hi: 0xb4},\n\t{value: 0x0462, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01be, lo: 0xb6, hi: 0xbf},\n\t// Block 0xa0, offset 0x33d\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01dc, lo: 0x80, hi: 0x8e},\n\t{value: 0x045e, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01ca, lo: 0x90, hi: 0x90},\n\t{value: 0x01d3, lo: 0x91, hi: 0x91},\n\t{value: 0x01d9, lo: 0x92, hi: 0x92},\n\t{value: 0x01fd, lo: 0x93, hi: 0x93},\n\t{value: 0x01ee, lo: 0x94, hi: 0x94},\n\t{value: 0x01eb, lo: 0x95, hi: 0x95},\n\t{value: 0x0176, lo: 0x96, hi: 0xa6},\n\t{value: 0x018b, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a9, lo: 0xa8, hi: 0xae},\n\t{value: 0x0462, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01be, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa1, offset 0x34b\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01ee, lo: 0x80, hi: 0x88},\n\t{value: 0x045e, lo: 0x89, hi: 0x89},\n\t{value: 0x01ca, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d3, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fd, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01ee, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01eb, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0176, lo: 0x90, hi: 0xa0},\n\t{value: 0x018b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a9, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0462, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01be, lo: 0xaa, hi: 0xbf},\n\t// Block 0xa2, offset 0x359\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0xa3, offset 0x35f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0xa4, offset 0x361\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xa5, offset 0x363\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa6, offset 0x366\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1954, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1987, lo: 0x8b, hi: 0x8b},\n\t{value: 0x19a2, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc6, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19b4, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x1981, lo: 0xab, hi: 0xab},\n\t{value: 0x1984, lo: 0xac, hi: 0xac},\n\t// Block 0xa7, offset 0x371\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1942, lo: 0x90, hi: 0x90},\n\t// Block 0xa8, offset 0x373\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x286f, lo: 0x80, hi: 0x80},\n\t{value: 0x2833, lo: 0x81, hi: 0x81},\n\t{value: 0x283d, lo: 0x82, hi: 0x82},\n\t{value: 0x2851, lo: 0x83, hi: 0x84},\n\t{value: 0x285b, lo: 0x85, hi: 0x86},\n\t{value: 0x2847, lo: 0x87, hi: 0x87},\n\t{value: 0x2865, lo: 0x88, hi: 0x88},\n\t{value: 0x0b72, lo: 0x90, hi: 0x90},\n\t{value: 0x08ea, lo: 0x91, hi: 0x91},\n\t// Block 0xa9, offset 0x37d\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb9},\n}\n\n// recompMap: 7528 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\x7f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\x7f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\\x195\\x190\\x00\\x01\\x198\" + // 0x19351930: 0x00011938\n\t\"\"\n\t// Total size of tables: 55KB (56160 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"15.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [56]uint8{\n\t0, 1, 6, 7, 8, 9, 10, 11,\n\t12, 13, 14, 15, 16, 17, 18, 19,\n\t20, 21, 22, 23, 24, 25, 26, 27,\n\t28, 29, 30, 31, 32, 33, 34, 35,\n\t36, 84, 91, 103, 107, 118, 122, 129,\n\t130, 132, 202, 214, 216, 218, 220, 222,\n\t224, 226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x199A\n\tfirstCCC              = 0x2DD5\n\tendMulti              = 0x30A1\n\tfirstLeadingCCC       = 0x4AEF\n\tfirstCCCZeroExcept    = 0x4BB9\n\tfirstStarterWithNLead = 0x4BE0\n\tlastDecomp            = 0x4BE2\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19426 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xA6, 0x42,\n\t0xC3, 0xB0, 0x42, 0xC3, 0xB8, 0x42, 0xC4, 0xA6,\n\t0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, 0x42, 0xC5,\n\t0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, 0x8E, 0x42,\n\t0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, 0xC7, 0x80,\n\t0x42, 0xC7, 0x81, 0x42, 0xC7, 0x82, 0x42, 0xC8,\n\t// Bytes 100 - 13f\n\t0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, 0x42,\n\t0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, 0x93,\n\t0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9,\n\t0x96, 0x42, 0xC9, 0x97, 0x42, 0xC9, 0x98, 0x42,\n\t0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C,\n\t0x42, 0xC9, 0x9E, 0x42, 0xC9, 0x9F, 0x42, 0xC9,\n\t0xA0, 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA2, 0x42,\n\t0xC9, 0xA3, 0x42, 0xC9, 0xA4, 0x42, 0xC9, 0xA5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA7, 0x42, 0xC9,\n\t0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42,\n\t0xC9, 0xAB, 0x42, 0xC9, 0xAC, 0x42, 0xC9, 0xAD,\n\t0x42, 0xC9, 0xAE, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t0x42, 0xC9, 0xB6, 0x42, 0xC9, 0xB7, 0x42, 0xC9,\n\t0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, 0xBA, 0x42,\n\t// Bytes 180 - 1bf\n\t0xC9, 0xBB, 0x42, 0xC9, 0xBD, 0x42, 0xC9, 0xBE,\n\t0x42, 0xCA, 0x80, 0x42, 0xCA, 0x81, 0x42, 0xCA,\n\t0x82, 0x42, 0xCA, 0x83, 0x42, 0xCA, 0x84, 0x42,\n\t0xCA, 0x88, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x8D, 0x42, 0xCA, 0x8E, 0x42, 0xCA, 0x8F, 0x42,\n\t0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92,\n\t0x42, 0xCA, 0x95, 0x42, 0xCA, 0x98, 0x42, 0xCA,\n\t// Bytes 1c0 - 1ff\n\t0x99, 0x42, 0xCA, 0x9B, 0x42, 0xCA, 0x9C, 0x42,\n\t0xCA, 0x9D, 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xA1,\n\t0x42, 0xCA, 0xA2, 0x42, 0xCA, 0xA3, 0x42, 0xCA,\n\t0xA4, 0x42, 0xCA, 0xA5, 0x42, 0xCA, 0xA6, 0x42,\n\t0xCA, 0xA7, 0x42, 0xCA, 0xA8, 0x42, 0xCA, 0xA9,\n\t0x42, 0xCA, 0xAA, 0x42, 0xCA, 0xAB, 0x42, 0xCA,\n\t0xB9, 0x42, 0xCB, 0x90, 0x42, 0xCB, 0x91, 0x42,\n\t0xCE, 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93,\n\t// Bytes 200 - 23f\n\t0x42, 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE,\n\t0x96, 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42,\n\t0xCE, 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B,\n\t0x42, 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE,\n\t0x9E, 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42,\n\t0xCE, 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4,\n\t0x42, 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE,\n\t0xA7, 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42,\n\t// Bytes 240 - 27f\n\t0xCE, 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3,\n\t0x42, 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE,\n\t0xB6, 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42,\n\t0xCE, 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB,\n\t0x42, 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE,\n\t0xBE, 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42,\n\t0xCF, 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83,\n\t0x42, 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF,\n\t// Bytes 280 - 2bf\n\t0x86, 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42,\n\t0xCF, 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D,\n\t0x42, 0xD0, 0xB0, 0x42, 0xD0, 0xB1, 0x42, 0xD0,\n\t0xB2, 0x42, 0xD0, 0xB3, 0x42, 0xD0, 0xB4, 0x42,\n\t0xD0, 0xB5, 0x42, 0xD0, 0xB6, 0x42, 0xD0, 0xB7,\n\t0x42, 0xD0, 0xB8, 0x42, 0xD0, 0xBA, 0x42, 0xD0,\n\t0xBB, 0x42, 0xD0, 0xBC, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD0, 0xBE, 0x42, 0xD0, 0xBF, 0x42, 0xD1, 0x80,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xD1, 0x81, 0x42, 0xD1, 0x82, 0x42, 0xD1,\n\t0x83, 0x42, 0xD1, 0x84, 0x42, 0xD1, 0x85, 0x42,\n\t0xD1, 0x86, 0x42, 0xD1, 0x87, 0x42, 0xD1, 0x88,\n\t0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8B, 0x42, 0xD1,\n\t0x8C, 0x42, 0xD1, 0x8D, 0x42, 0xD1, 0x8E, 0x42,\n\t0xD1, 0x95, 0x42, 0xD1, 0x96, 0x42, 0xD1, 0x98,\n\t0x42, 0xD1, 0x9F, 0x42, 0xD2, 0x91, 0x42, 0xD2,\n\t0xAB, 0x42, 0xD2, 0xAF, 0x42, 0xD2, 0xB1, 0x42,\n\t// Bytes 300 - 33f\n\t0xD3, 0x8F, 0x42, 0xD3, 0x99, 0x42, 0xD3, 0xA9,\n\t0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7,\n\t0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42,\n\t0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D,\n\t0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7,\n\t0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42,\n\t0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA,\n\t0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8,\n\t// Bytes 340 - 37f\n\t0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42,\n\t0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2,\n\t0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8,\n\t0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42,\n\t0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA,\n\t0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9,\n\t0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42,\n\t0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88,\n\t// Bytes 380 - 3bf\n\t0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9,\n\t0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42,\n\t0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB,\n\t0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA,\n\t0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42,\n\t0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88,\n\t0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA,\n\t0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42,\n\t// Bytes 3c0 - 3ff\n\t0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6,\n\t0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA,\n\t0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42,\n\t0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE,\n\t0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB,\n\t0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42,\n\t0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C,\n\t0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0,\n\t// Bytes 400 - 43f\n\t0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1,\n\t0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1,\n\t0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1,\n\t0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1,\n\t0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1,\n\t0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1,\n\t0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1,\n\t0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1,\n\t// Bytes 440 - 47f\n\t0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1,\n\t0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1,\n\t0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1,\n\t0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1,\n\t0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1,\n\t0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1,\n\t0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1,\n\t0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1,\n\t// Bytes 480 - 4bf\n\t0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1,\n\t0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1,\n\t0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1,\n\t0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1,\n\t0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1,\n\t0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1,\n\t0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1,\n\t0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1,\n\t// Bytes 4c0 - 4ff\n\t0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1,\n\t0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1,\n\t0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1,\n\t0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1,\n\t0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1,\n\t0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1,\n\t0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1,\n\t0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1,\n\t// Bytes 500 - 53f\n\t0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1,\n\t0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1,\n\t0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1,\n\t0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1,\n\t0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE1,\n\t0xB6, 0x91, 0x43, 0xE2, 0x80, 0x82, 0x43, 0xE2,\n\t0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, 0xE2,\n\t0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, 0xE2,\n\t// Bytes 540 - 57f\n\t0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, 0xE2,\n\t0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, 0xE2,\n\t0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, 0xE2,\n\t0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, 0xE2,\n\t0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, 0xE2,\n\t0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, 0xE2,\n\t0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, 0xE2,\n\t0xB1, 0xB1, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,\n\t// Bytes 580 - 5bf\n\t0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3,\n\t0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3,\n\t0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3,\n\t0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3,\n\t0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3,\n\t0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3,\n\t0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3,\n\t0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3,\n\t// Bytes 5c0 - 5ff\n\t0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3,\n\t0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3,\n\t0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3,\n\t0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3,\n\t0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3,\n\t0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3,\n\t0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3,\n\t0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3,\n\t// Bytes 600 - 63f\n\t0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3,\n\t0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3,\n\t0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3,\n\t0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3,\n\t0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3,\n\t0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3,\n\t0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3,\n\t0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3,\n\t// Bytes 640 - 67f\n\t0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3,\n\t0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3,\n\t0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3,\n\t0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3,\n\t0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3,\n\t0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3,\n\t0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3,\n\t0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3,\n\t// Bytes 680 - 6bf\n\t0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3,\n\t0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3,\n\t0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3,\n\t0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3,\n\t0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3,\n\t0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3,\n\t0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3,\n\t0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3,\n\t// Bytes 6c0 - 6ff\n\t0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3,\n\t0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3,\n\t0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3,\n\t0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3,\n\t0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3,\n\t0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3,\n\t0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3,\n\t0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3,\n\t// Bytes 700 - 73f\n\t0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3,\n\t0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3,\n\t0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3,\n\t0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3,\n\t0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4,\n\t0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4,\n\t0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4,\n\t0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4,\n\t// Bytes 740 - 77f\n\t0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4,\n\t0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4,\n\t0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4,\n\t0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4,\n\t0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4,\n\t0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4,\n\t0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4,\n\t0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4,\n\t// Bytes 780 - 7bf\n\t0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4,\n\t0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4,\n\t0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4,\n\t0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4,\n\t0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4,\n\t0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4,\n\t0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4,\n\t0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4,\n\t// Bytes 7c0 - 7ff\n\t0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4,\n\t0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4,\n\t0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4,\n\t0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4,\n\t0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4,\n\t0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4,\n\t0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4,\n\t0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4,\n\t// Bytes 800 - 83f\n\t0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4,\n\t0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4,\n\t0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4,\n\t0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4,\n\t0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4,\n\t0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4,\n\t0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4,\n\t0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4,\n\t// Bytes 840 - 87f\n\t0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4,\n\t0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4,\n\t0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4,\n\t0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5,\n\t0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5,\n\t0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5,\n\t0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5,\n\t0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5,\n\t// Bytes 880 - 8bf\n\t0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5,\n\t0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5,\n\t0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5,\n\t0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5,\n\t0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5,\n\t0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5,\n\t0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5,\n\t0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5,\n\t// Bytes 8c0 - 8ff\n\t0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5,\n\t0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5,\n\t0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5,\n\t0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5,\n\t0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5,\n\t0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5,\n\t0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5,\n\t0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5,\n\t// Bytes 900 - 93f\n\t0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5,\n\t0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5,\n\t0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5,\n\t0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5,\n\t0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5,\n\t0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5,\n\t0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5,\n\t0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5,\n\t// Bytes 940 - 97f\n\t0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5,\n\t0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5,\n\t0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5,\n\t0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5,\n\t0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5,\n\t0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5,\n\t0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5,\n\t0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5,\n\t// Bytes 980 - 9bf\n\t0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5,\n\t0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5,\n\t0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5,\n\t0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5,\n\t0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5,\n\t0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5,\n\t0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5,\n\t0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5,\n\t// Bytes 9c0 - 9ff\n\t0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5,\n\t0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5,\n\t0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5,\n\t0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5,\n\t0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5,\n\t0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5,\n\t0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5,\n\t0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5,\n\t// Bytes a00 - a3f\n\t0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5,\n\t0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5,\n\t0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5,\n\t0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5,\n\t0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5,\n\t0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5,\n\t0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5,\n\t0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5,\n\t// Bytes a40 - a7f\n\t0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5,\n\t0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5,\n\t0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5,\n\t0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5,\n\t0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5,\n\t0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5,\n\t0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5,\n\t0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5,\n\t// Bytes a80 - abf\n\t0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5,\n\t0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5,\n\t0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5,\n\t0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5,\n\t0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5,\n\t0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5,\n\t0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5,\n\t0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5,\n\t// Bytes ac0 - aff\n\t0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5,\n\t0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5,\n\t0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5,\n\t0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5,\n\t0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5,\n\t0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5,\n\t0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5,\n\t0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5,\n\t// Bytes b00 - b3f\n\t0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5,\n\t0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5,\n\t0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5,\n\t0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5,\n\t0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5,\n\t0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5,\n\t0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5,\n\t0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5,\n\t// Bytes b40 - b7f\n\t0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5,\n\t0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5,\n\t0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5,\n\t0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5,\n\t0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5,\n\t0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5,\n\t0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5,\n\t0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5,\n\t// Bytes b80 - bbf\n\t0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5,\n\t0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5,\n\t0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5,\n\t0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5,\n\t0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5,\n\t0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5,\n\t0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5,\n\t0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5,\n\t// Bytes bc0 - bff\n\t0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5,\n\t0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5,\n\t0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5,\n\t0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5,\n\t0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5,\n\t0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5,\n\t0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5,\n\t0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5,\n\t// Bytes c00 - c3f\n\t0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5,\n\t0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5,\n\t0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5,\n\t0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5,\n\t0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5,\n\t0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5,\n\t0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5,\n\t0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5,\n\t// Bytes c40 - c7f\n\t0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5,\n\t0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5,\n\t0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5,\n\t0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5,\n\t0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5,\n\t0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5,\n\t0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5,\n\t0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5,\n\t// Bytes c80 - cbf\n\t0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5,\n\t0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6,\n\t0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6,\n\t0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6,\n\t0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6,\n\t0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6,\n\t0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6,\n\t0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6,\n\t// Bytes cc0 - cff\n\t0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6,\n\t0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6,\n\t0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6,\n\t0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6,\n\t0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6,\n\t0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6,\n\t0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6,\n\t0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6,\n\t// Bytes d00 - d3f\n\t0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6,\n\t0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6,\n\t0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6,\n\t0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6,\n\t0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6,\n\t0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6,\n\t0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6,\n\t0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6,\n\t// Bytes d40 - d7f\n\t0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6,\n\t0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6,\n\t0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6,\n\t0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6,\n\t0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6,\n\t0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6,\n\t0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6,\n\t0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6,\n\t// Bytes d80 - dbf\n\t0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6,\n\t0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6,\n\t0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6,\n\t0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6,\n\t0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6,\n\t0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6,\n\t0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6,\n\t0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6,\n\t// Bytes dc0 - dff\n\t0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6,\n\t0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6,\n\t0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6,\n\t0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6,\n\t0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6,\n\t0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6,\n\t0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6,\n\t0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6,\n\t// Bytes e00 - e3f\n\t0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6,\n\t0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6,\n\t0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6,\n\t0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6,\n\t0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6,\n\t0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6,\n\t0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6,\n\t0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6,\n\t// Bytes e40 - e7f\n\t0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6,\n\t0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6,\n\t0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6,\n\t0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6,\n\t0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6,\n\t0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6,\n\t0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6,\n\t0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6,\n\t// Bytes e80 - ebf\n\t0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6,\n\t0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6,\n\t0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6,\n\t0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6,\n\t0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6,\n\t0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6,\n\t0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6,\n\t0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6,\n\t// Bytes ec0 - eff\n\t0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6,\n\t0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6,\n\t0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6,\n\t0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6,\n\t0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6,\n\t0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6,\n\t0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6,\n\t0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6,\n\t// Bytes f00 - f3f\n\t0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6,\n\t0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6,\n\t0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6,\n\t0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6,\n\t0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6,\n\t0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6,\n\t0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6,\n\t0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6,\n\t// Bytes f40 - f7f\n\t0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6,\n\t0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6,\n\t0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6,\n\t0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6,\n\t0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6,\n\t0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6,\n\t0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6,\n\t0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7,\n\t// Bytes f80 - fbf\n\t0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7,\n\t0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7,\n\t0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7,\n\t0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7,\n\t0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7,\n\t0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7,\n\t0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7,\n\t0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7,\n\t// Bytes fc0 - fff\n\t0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7,\n\t0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7,\n\t0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7,\n\t0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7,\n\t0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7,\n\t0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7,\n\t0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7,\n\t0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7,\n\t// Bytes 1000 - 103f\n\t0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7,\n\t0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7,\n\t0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7,\n\t0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7,\n\t0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7,\n\t0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7,\n\t0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7,\n\t0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7,\n\t// Bytes 1040 - 107f\n\t0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7,\n\t0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7,\n\t0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7,\n\t0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7,\n\t0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7,\n\t0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7,\n\t0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7,\n\t0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7,\n\t// Bytes 1080 - 10bf\n\t0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7,\n\t0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7,\n\t0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7,\n\t0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7,\n\t0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7,\n\t0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7,\n\t0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7,\n\t0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7,\n\t// Bytes 10c0 - 10ff\n\t0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7,\n\t0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7,\n\t0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7,\n\t0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7,\n\t0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7,\n\t0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7,\n\t0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7,\n\t0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7,\n\t// Bytes 1100 - 113f\n\t0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7,\n\t0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7,\n\t0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7,\n\t0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7,\n\t0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7,\n\t0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7,\n\t0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7,\n\t0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7,\n\t// Bytes 1140 - 117f\n\t0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7,\n\t0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7,\n\t0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7,\n\t0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7,\n\t0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7,\n\t0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7,\n\t0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7,\n\t0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7,\n\t// Bytes 1180 - 11bf\n\t0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7,\n\t0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7,\n\t0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7,\n\t0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7,\n\t0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7,\n\t0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7,\n\t0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7,\n\t0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7,\n\t// Bytes 11c0 - 11ff\n\t0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7,\n\t0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7,\n\t0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7,\n\t0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7,\n\t0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7,\n\t0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7,\n\t0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7,\n\t0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7,\n\t// Bytes 1200 - 123f\n\t0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7,\n\t0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7,\n\t0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7,\n\t0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7,\n\t0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7,\n\t0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7,\n\t0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7,\n\t0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7,\n\t// Bytes 1240 - 127f\n\t0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7,\n\t0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7,\n\t0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7,\n\t0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7,\n\t0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7,\n\t0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7,\n\t0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8,\n\t0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8,\n\t// Bytes 1280 - 12bf\n\t0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8,\n\t0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8,\n\t0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8,\n\t0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8,\n\t0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8,\n\t0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8,\n\t0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8,\n\t0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8,\n\t// Bytes 12c0 - 12ff\n\t0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8,\n\t0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8,\n\t0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8,\n\t0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8,\n\t0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8,\n\t0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8,\n\t0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8,\n\t0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8,\n\t// Bytes 1300 - 133f\n\t0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8,\n\t0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8,\n\t0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8,\n\t0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8,\n\t0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8,\n\t0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8,\n\t0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8,\n\t0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8,\n\t// Bytes 1340 - 137f\n\t0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8,\n\t0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8,\n\t0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8,\n\t0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8,\n\t0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8,\n\t0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8,\n\t0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8,\n\t0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8,\n\t// Bytes 1380 - 13bf\n\t0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8,\n\t0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8,\n\t0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8,\n\t0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8,\n\t0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8,\n\t0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8,\n\t0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8,\n\t0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8,\n\t// Bytes 13c0 - 13ff\n\t0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8,\n\t0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8,\n\t0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8,\n\t0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8,\n\t0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8,\n\t0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8,\n\t0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8,\n\t0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8,\n\t// Bytes 1400 - 143f\n\t0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8,\n\t0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8,\n\t0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8,\n\t0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8,\n\t0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8,\n\t0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8,\n\t0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8,\n\t0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8,\n\t// Bytes 1440 - 147f\n\t0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8,\n\t0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8,\n\t0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8,\n\t0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8,\n\t0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8,\n\t0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8,\n\t0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8,\n\t0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8,\n\t// Bytes 1480 - 14bf\n\t0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8,\n\t0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8,\n\t0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8,\n\t0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8,\n\t0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8,\n\t0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8,\n\t0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8,\n\t0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8,\n\t// Bytes 14c0 - 14ff\n\t0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8,\n\t0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8,\n\t0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8,\n\t0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8,\n\t0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8,\n\t0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8,\n\t0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8,\n\t0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9,\n\t// Bytes 1500 - 153f\n\t0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9,\n\t0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9,\n\t0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9,\n\t0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9,\n\t0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9,\n\t0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9,\n\t0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9,\n\t0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9,\n\t// Bytes 1540 - 157f\n\t0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9,\n\t0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9,\n\t0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9,\n\t0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9,\n\t0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9,\n\t0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9,\n\t0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9,\n\t0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9,\n\t// Bytes 1580 - 15bf\n\t0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9,\n\t0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9,\n\t0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9,\n\t0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9,\n\t0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9,\n\t0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9,\n\t0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9,\n\t0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9,\n\t// Bytes 15c0 - 15ff\n\t0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9,\n\t0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9,\n\t0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9,\n\t0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9,\n\t0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9,\n\t0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9,\n\t0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9,\n\t0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9,\n\t// Bytes 1600 - 163f\n\t0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9,\n\t0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9,\n\t0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9,\n\t0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9,\n\t0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9,\n\t0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9,\n\t0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9,\n\t0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9,\n\t// Bytes 1640 - 167f\n\t0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9,\n\t0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9,\n\t0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9,\n\t0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9,\n\t0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9,\n\t0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9,\n\t0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9,\n\t0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9,\n\t// Bytes 1680 - 16bf\n\t0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9,\n\t0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9,\n\t0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9,\n\t0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9,\n\t0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9,\n\t0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9,\n\t0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9,\n\t0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9,\n\t// Bytes 16c0 - 16ff\n\t0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9,\n\t0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9,\n\t0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9,\n\t0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9,\n\t0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9,\n\t0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9,\n\t0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9,\n\t0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9,\n\t// Bytes 1700 - 173f\n\t0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9,\n\t0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9,\n\t0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9,\n\t0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9,\n\t0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9,\n\t0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9,\n\t0xBE, 0xA0, 0x43, 0xEA, 0x99, 0x91, 0x43, 0xEA,\n\t0x9A, 0x89, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,\n\t// Bytes 1740 - 177f\n\t0x9D, 0xAF, 0x43, 0xEA, 0x9E, 0x8E, 0x43, 0xEA,\n\t0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x43, 0xEA,\n\t0xAD, 0xA6, 0x43, 0xEA, 0xAD, 0xA7, 0x44, 0xF0,\n\t0x9D, 0xBC, 0x84, 0x44, 0xF0, 0x9D, 0xBC, 0x85,\n\t0x44, 0xF0, 0x9D, 0xBC, 0x86, 0x44, 0xF0, 0x9D,\n\t0xBC, 0x88, 0x44, 0xF0, 0x9D, 0xBC, 0x8A, 0x44,\n\t0xF0, 0x9D, 0xBC, 0x9E, 0x44, 0xF0, 0xA0, 0x84,\n\t0xA2, 0x44, 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0,\n\t// Bytes 1780 - 17bf\n\t0xA0, 0x94, 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B,\n\t0x44, 0xF0, 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0,\n\t0xA0, 0x84, 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44,\n\t0xF0, 0xA0, 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD,\n\t0xA3, 0x44, 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0,\n\t0xA1, 0x9A, 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA,\n\t0x44, 0xF0, 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1,\n\t0xAC, 0x98, 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44,\n\t// Bytes 17c0 - 17ff\n\t0xF0, 0xA1, 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7,\n\t0xA6, 0x44, 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0,\n\t0xA2, 0x86, 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1,\n\t0x44, 0xF0, 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x84, 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44,\n\t0xF0, 0xA2, 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF,\n\t0xB1, 0x44, 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0,\n\t0xA3, 0x8A, 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F,\n\t// Bytes 1800 - 183f\n\t0x44, 0xF0, 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3,\n\t0x8E, 0x9C, 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44,\n\t0xF0, 0xA3, 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91,\n\t0xAD, 0x44, 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0,\n\t0xA3, 0xA2, 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D,\n\t0x44, 0xF0, 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3,\n\t0xB2, 0xBC, 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44,\n\t0xF0, 0xA3, 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD,\n\t// Bytes 1840 - 187f\n\t0x9E, 0x44, 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0,\n\t0xA4, 0x89, 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE,\n\t0x44, 0xF0, 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4,\n\t0x98, 0x88, 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44,\n\t0xF0, 0xA4, 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0,\n\t0xB6, 0x44, 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8,\n\t0x44, 0xF0, 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5,\n\t// Bytes 1880 - 18bf\n\t0x83, 0xB2, 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44,\n\t0xF0, 0xA5, 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84,\n\t0xB3, 0x44, 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0,\n\t0xA5, 0x90, 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6,\n\t0x44, 0xF0, 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5,\n\t0x9B, 0x85, 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44,\n\t0xF0, 0xA5, 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE,\n\t0xAB, 0x44, 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0,\n\t// Bytes 18c0 - 18ff\n\t0xA5, 0xB3, 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86,\n\t0x44, 0xF0, 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6,\n\t0x88, 0xA8, 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44,\n\t0xF0, 0xA6, 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C,\n\t0xBE, 0x44, 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0,\n\t0xA6, 0x94, 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6,\n\t0x9E, 0xB5, 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44,\n\t// Bytes 1900 - 193f\n\t0xF0, 0xA6, 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3,\n\t0x95, 0x44, 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0,\n\t0xA6, 0xBC, 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1,\n\t0x44, 0xF0, 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7,\n\t0x8F, 0x8A, 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44,\n\t0xF0, 0xA7, 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5,\n\t0xA6, 0x44, 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0,\n\t0xA7, 0xBB, 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF,\n\t// Bytes 1940 - 197f\n\t0x44, 0xF0, 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8,\n\t0x97, 0xAD, 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44,\n\t0xF0, 0xA8, 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5,\n\t0xB7, 0x44, 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0,\n\t0xA9, 0x87, 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A,\n\t0x44, 0xF0, 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9,\n\t0x92, 0x96, 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44,\n\t0xF0, 0xA9, 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83,\n\t// Bytes 1980 - 19bf\n\t0x8E, 0x44, 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0,\n\t0xAA, 0x88, 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91,\n\t0x44, 0xF0, 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA,\n\t0x98, 0x80, 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F,\n\t0x42, 0x2E, 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30,\n\t0x2E, 0x42, 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42,\n\t0x31, 0x30, 0x42, 0x31, 0x31, 0x42, 0x31, 0x32,\n\t0x42, 0x31, 0x33, 0x42, 0x31, 0x34, 0x42, 0x31,\n\t// Bytes 19c0 - 19ff\n\t0x35, 0x42, 0x31, 0x36, 0x42, 0x31, 0x37, 0x42,\n\t0x31, 0x38, 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C,\n\t0x42, 0x32, 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32,\n\t0x31, 0x42, 0x32, 0x32, 0x42, 0x32, 0x33, 0x42,\n\t0x32, 0x34, 0x42, 0x32, 0x35, 0x42, 0x32, 0x36,\n\t0x42, 0x32, 0x37, 0x42, 0x32, 0x38, 0x42, 0x32,\n\t0x39, 0x42, 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42,\n\t0x33, 0x30, 0x42, 0x33, 0x31, 0x42, 0x33, 0x32,\n\t// Bytes 1a00 - 1a3f\n\t0x42, 0x33, 0x33, 0x42, 0x33, 0x34, 0x42, 0x33,\n\t0x35, 0x42, 0x33, 0x36, 0x42, 0x33, 0x37, 0x42,\n\t0x33, 0x38, 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C,\n\t0x42, 0x34, 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34,\n\t0x31, 0x42, 0x34, 0x32, 0x42, 0x34, 0x33, 0x42,\n\t0x34, 0x34, 0x42, 0x34, 0x35, 0x42, 0x34, 0x36,\n\t0x42, 0x34, 0x37, 0x42, 0x34, 0x38, 0x42, 0x34,\n\t0x39, 0x42, 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42,\n\t// Bytes 1a40 - 1a7f\n\t0x35, 0x30, 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E,\n\t0x42, 0x37, 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38,\n\t0x2C, 0x42, 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42,\n\t0x39, 0x2E, 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21,\n\t0x42, 0x3F, 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42,\n\t0x71, 0x42, 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42,\n\t0x44, 0x5A, 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42,\n\t0x42, 0x47, 0x79, 0x42, 0x48, 0x50, 0x42, 0x48,\n\t// Bytes 1a80 - 1abf\n\t0x56, 0x42, 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42,\n\t0x49, 0x49, 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55,\n\t0x42, 0x49, 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B,\n\t0x42, 0x42, 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42,\n\t0x4C, 0x4A, 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42,\n\t0x42, 0x4D, 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D,\n\t0x52, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t// Bytes 1ac0 - 1aff\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t// Bytes 1b00 - 1b3f\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t// Bytes 1b40 - 1b7f\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t// Bytes 1b80 - 1bbf\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t// Bytes 1c80 - 1cbf\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t// Bytes 1cc0 - 1cff\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t// Bytes 1d00 - 1d3f\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t// Bytes 1d40 - 1d7f\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t// Bytes 1d80 - 1dbf\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t// Bytes 1dc0 - 1dff\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t// Bytes 1e00 - 1e3f\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t// Bytes 1e40 - 1e7f\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t// Bytes 1e80 - 1ebf\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t// Bytes 1ec0 - 1eff\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t// Bytes 1f00 - 1f3f\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t// Bytes 1f40 - 1f7f\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t// Bytes 1f80 - 1fbf\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t// Bytes 1fc0 - 1fff\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t// Bytes 2000 - 203f\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t// Bytes 2040 - 207f\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t// Bytes 2080 - 20bf\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t// Bytes 20c0 - 20ff\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t// Bytes 2100 - 213f\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t// Bytes 2140 - 217f\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t// Bytes 2180 - 21bf\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t// Bytes 21c0 - 21ff\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t// Bytes 2200 - 223f\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t// Bytes 2240 - 227f\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t// Bytes 2280 - 22bf\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t// Bytes 22c0 - 22ff\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2300 - 233f\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t// Bytes 2340 - 237f\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t// Bytes 2380 - 23bf\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t// Bytes 23c0 - 23ff\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t// Bytes 2400 - 243f\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t// Bytes 2440 - 247f\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2480 - 24bf\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t// Bytes 24c0 - 24ff\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t// Bytes 2500 - 253f\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t// Bytes 2540 - 257f\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t// Bytes 2580 - 25bf\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t// Bytes 25c0 - 25ff\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t// Bytes 2640 - 267f\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t// Bytes 2680 - 26bf\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t// Bytes 26c0 - 26ff\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t// Bytes 2700 - 273f\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t// Bytes 2740 - 277f\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t// Bytes 2780 - 27bf\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t// Bytes 27c0 - 27ff\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t// Bytes 2800 - 283f\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92,\n\t0x8C, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3,\n\t0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46,\n\t// Bytes 2840 - 287f\n\t0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6,\n\t0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80,\n\t0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1,\n\t0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,\n\t// Bytes 2880 - 28bf\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29,\n\t// Bytes 28c0 - 28ff\n\t0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64,\n\t0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7,\n\t0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48,\n\t// Bytes 2900 - 293f\n\t0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84,\n\t0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9,\n\t0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8,\n\t0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80,\n\t0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49,\n\t// Bytes 2940 - 297f\n\t0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80,\n\t0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80,\n\t0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5,\n\t// Bytes 2980 - 29bf\n\t0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,\n\t0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 29c0 - 29ff\n\t0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3,\n\t0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82,\n\t0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49,\n\t0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,\n\t// Bytes 2a00 - 2a3f\n\t0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83,\n\t0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4,\n\t// Bytes 2a40 - 2a7f\n\t0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49,\n\t0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t// Bytes 2a80 - 2abf\n\t0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83,\n\t0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49,\n\t0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3,\n\t// Bytes 2ac0 - 2aff\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80,\n\t0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83,\n\t0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,\n\t// Bytes 2b00 - 2b3f\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3,\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83,\n\t// Bytes 2b40 - 2b7f\n\t0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3,\n\t// Bytes 2b80 - 2bbf\n\t0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84,\n\t0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98,\n\t// Bytes 2bc0 - 2bff\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3,\n\t0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC,\n\t0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1,\n\t0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84,\n\t0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,\n\t// Bytes 2c40 - 2c7f\n\t0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC,\n\t// Bytes 2c80 - 2cbf\n\t0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC,\n\t0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7,\n\t// Bytes 2cc0 - 2cff\n\t0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B,\n\t0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82,\n\t0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,\n\t// Bytes 2d00 - 2d3f\n\t0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t// Bytes 2d40 - 2d7f\n\t0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t// Bytes 2d80 - 2dbf\n\t0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3,\n\t0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84,\n\t0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t// Bytes 2dc0 - 2dff\n\t0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8,\n\t0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7,\n\t0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7,\n\t0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE,\n\t// Bytes 2e00 - 2e3f\n\t0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,\n\t0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF,\n\t0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,\n\t0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2,\n\t0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,\n\t0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,\n\t0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5,\n\t0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5,\n\t// Bytes 2e40 - 2e7f\n\t0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5,\n\t0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7,\n\t0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80,\n\t0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC,\n\t0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t// Bytes 2e80 - 2ebf\n\t0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD,\n\t0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91,\n\t0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,\n\t// Bytes 2ec0 - 2eff\n\t0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7,\n\t0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,\n\t0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87,\n\t0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91,\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08,\n\t0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA,\n\t0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,\n\t0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8,\n\t// Bytes 2f00 - 2f3f\n\t0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,\n\t0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08,\n\t0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0,\n\t0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,\n\t0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99,\n\t0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44,\n\t0x44, 0x5A, 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A,\n\t0xCC, 0x8C, 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C,\n\t// Bytes 2f40 - 2f7f\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93,\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95,\n\t0xB9, 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1,\n\t// Bytes 2f80 - 2fbf\n\t0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE,\n\t0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1,\n\t// Bytes 2fc0 - 2fff\n\t0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1,\n\t0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C,\n\t0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85,\n\t0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82,\n\t0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11,\n\t0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3,\n\t// Bytes 3000 - 303f\n\t0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3,\n\t0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E,\n\t0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84,\n\t0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,\n\t0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3,\n\t// Bytes 3040 - 307f\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11,\n\t0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83,\n\t// Bytes 3080 - 30bf\n\t0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,\n\t0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F,\n\t0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D,\n\t0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05,\n\t0x03, 0x41, 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC,\n\t0x81, 0xCD, 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03,\n\t// Bytes 30c0 - 30ff\n\t0x41, 0xCC, 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89,\n\t0xCD, 0x03, 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41,\n\t0xCC, 0x8F, 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD,\n\t0x03, 0x41, 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03,\n\t0x42, 0xCC, 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43,\n\t0xCC, 0x82, 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD,\n\t// Bytes 3100 - 313f\n\t0x03, 0x43, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,\n\t0x87, 0xCD, 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x44, 0xCC, 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD,\n\t0x03, 0x45, 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC,\n\t0x83, 0xCD, 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03,\n\t0x45, 0xCC, 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88,\n\t// Bytes 3140 - 317f\n\t0xCD, 0x03, 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD,\n\t0x03, 0x45, 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x45, 0xCC, 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87,\n\t0xCD, 0x03, 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47,\n\t0xCC, 0x82, 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD,\n\t0x03, 0x47, 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC,\n\t// Bytes 3180 - 31bf\n\t0x87, 0xCD, 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x47, 0xCC, 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82,\n\t0xCD, 0x03, 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48,\n\t0xCC, 0x88, 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x48, 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03,\n\t0x49, 0xCC, 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81,\n\t0xCD, 0x03, 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49,\n\t// Bytes 31c0 - 31ff\n\t0xCC, 0x83, 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD,\n\t0x03, 0x49, 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC,\n\t0x87, 0xCD, 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03,\n\t0x49, 0xCC, 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x49, 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC,\n\t0x82, 0xCD, 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3200 - 323f\n\t0x4B, 0xCC, 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD,\n\t0x03, 0x4C, 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x4C, 0xCC, 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81,\n\t0xCD, 0x03, 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD,\n\t// Bytes 3240 - 327f\n\t0x03, 0x4E, 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC,\n\t0x83, 0xCD, 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03,\n\t0x4E, 0xCC, 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9,\n\t0x03, 0x4F, 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC,\n\t0x81, 0xCD, 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03,\n\t0x4F, 0xCC, 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B,\n\t// Bytes 3280 - 32bf\n\t0xCD, 0x03, 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F,\n\t0xCC, 0x8F, 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD,\n\t0x03, 0x50, 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC,\n\t0x87, 0xCD, 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03,\n\t0x52, 0xCC, 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52,\n\t0xCC, 0x91, 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x52, 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC,\n\t// Bytes 32c0 - 32ff\n\t0x82, 0xCD, 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03,\n\t0x53, 0xCC, 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x54, 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x54, 0xCC, 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80,\n\t0xCD, 0x03, 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55,\n\t// Bytes 3300 - 333f\n\t0xCC, 0x82, 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD,\n\t0x03, 0x55, 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC,\n\t0x8A, 0xCD, 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03,\n\t0x55, 0xCC, 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9,\n\t0x03, 0x55, 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03,\n\t// Bytes 3340 - 337f\n\t0x56, 0xCC, 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57,\n\t0xCC, 0x81, 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD,\n\t0x03, 0x57, 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC,\n\t0x88, 0xCD, 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x58, 0xCC, 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88,\n\t0xCD, 0x03, 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59,\n\t0xCC, 0x81, 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD,\n\t// Bytes 3380 - 33bf\n\t0x03, 0x59, 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC,\n\t0x84, 0xCD, 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03,\n\t0x59, 0xCC, 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89,\n\t0xCD, 0x03, 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A,\n\t0xCC, 0x81, 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x5A, 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x5A, 0xCC, 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80,\n\t// Bytes 33c0 - 33ff\n\t0xCD, 0x03, 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61,\n\t0xCC, 0x83, 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD,\n\t0x03, 0x61, 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x61, 0xCC, 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5,\n\t0xB9, 0x03, 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62,\n\t0xCC, 0x87, 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x62, 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC,\n\t// Bytes 3400 - 343f\n\t0x81, 0xCD, 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03,\n\t0x63, 0xCC, 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x64, 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x65, 0xCC, 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81,\n\t0xCD, 0x03, 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65,\n\t// Bytes 3440 - 347f\n\t0xCC, 0x86, 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD,\n\t0x03, 0x65, 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC,\n\t0x89, 0xCD, 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x65, 0xCC, 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91,\n\t0xCD, 0x03, 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9,\n\t0x03, 0x66, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC,\n\t0x81, 0xCD, 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03,\n\t// Bytes 3480 - 34bf\n\t0x67, 0xCC, 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86,\n\t0xCD, 0x03, 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x68, 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC,\n\t0x87, 0xCD, 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03,\n\t0x68, 0xCC, 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68,\n\t0xCC, 0xAE, 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9,\n\t// Bytes 34c0 - 34ff\n\t0x03, 0x69, 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC,\n\t0x81, 0xCD, 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03,\n\t0x69, 0xCC, 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84,\n\t0xCD, 0x03, 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69,\n\t0xCC, 0x89, 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x69, 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC,\n\t0x91, 0xCD, 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x69, 0xCC, 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0,\n\t// Bytes 3500 - 353f\n\t0xB9, 0x03, 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD,\n\t0x03, 0x6B, 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x6B, 0xCC, 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81,\n\t0xCD, 0x03, 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C,\n\t0xCC, 0xA7, 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x6C, 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC,\n\t// Bytes 3540 - 357f\n\t0x81, 0xCD, 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03,\n\t0x6D, 0xCC, 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80,\n\t0xCD, 0x03, 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E,\n\t0xCC, 0x83, 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD,\n\t0x03, 0x6E, 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x6E, 0xCC, 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F,\n\t// Bytes 3580 - 35bf\n\t0xCC, 0x81, 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD,\n\t0x03, 0x6F, 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC,\n\t0x8B, 0xCD, 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x6F, 0xCC, 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91,\n\t0xCD, 0x03, 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70,\n\t0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD,\n\t0x03, 0x72, 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03,\n\t// Bytes 35c0 - 35ff\n\t0x72, 0xCC, 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73,\n\t0xCC, 0x82, 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD,\n\t0x03, 0x73, 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03,\n\t0x74, 0xCC, 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9,\n\t// Bytes 3600 - 363f\n\t0x03, 0x74, 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03,\n\t0x75, 0xCC, 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82,\n\t0xCD, 0x03, 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75,\n\t0xCC, 0x89, 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD,\n\t0x03, 0x75, 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x75, 0xCC, 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3,\n\t// Bytes 3640 - 367f\n\t0xB9, 0x03, 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75,\n\t0xCC, 0xA8, 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x75, 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC,\n\t0x83, 0xCD, 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x77, 0xCC, 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81,\n\t0xCD, 0x03, 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77,\n\t0xCC, 0x87, 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD,\n\t0x03, 0x77, 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC,\n\t// Bytes 3680 - 36bf\n\t0xA3, 0xB9, 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03,\n\t0x78, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80,\n\t0xCD, 0x03, 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79,\n\t0xCC, 0x82, 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD,\n\t0x03, 0x79, 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC,\n\t0x87, 0xCD, 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03,\n\t0x79, 0xCC, 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A,\n\t0xCD, 0x03, 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A,\n\t// Bytes 36c0 - 36ff\n\t0xCC, 0x81, 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x7A, 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x7A, 0xCC, 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC,\n\t0x80, 0xCE, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE,\n\t0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3,\n\t0x86, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC,\n\t0x84, 0xCD, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD,\n\t// Bytes 3700 - 373f\n\t0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3,\n\t0xA6, 0xCC, 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC,\n\t0x81, 0xCD, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD,\n\t0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA,\n\t0x92, 0xCC, 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0x91, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD,\n\t// Bytes 3740 - 377f\n\t0x85, 0xDD, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0x97, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC,\n\t0x84, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE,\n\t// Bytes 3780 - 37bf\n\t0x9F, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x84, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE,\n\t0xA9, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD,\n\t// Bytes 37c0 - 37ff\n\t0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0xB1, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD,\n\t0x85, 0xDD, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0xB7, 0xCD, 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD,\n\t// Bytes 3800 - 383f\n\t0x82, 0xCD, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF,\n\t0x81, 0xCC, 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC,\n\t0x94, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF,\n\t0x85, 0xCC, 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD,\n\t0x04, 0xCF, 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF,\n\t// Bytes 3840 - 387f\n\t0x92, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x90, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC,\n\t0x81, 0xCD, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD,\n\t0x04, 0xD0, 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x95, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD,\n\t// Bytes 3880 - 38bf\n\t0x04, 0xD0, 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x98, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC,\n\t0x84, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x9A, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD,\n\t0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0xA3, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,\n\t// Bytes 38c0 - 38ff\n\t0x8B, 0xCD, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xAD, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0,\n\t0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t// Bytes 3900 - 393f\n\t0xB6, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD,\n\t0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x83, 0xCC, 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD,\n\t// Bytes 3940 - 397f\n\t0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1,\n\t0x87, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD1, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0xB4, 0xCC, 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC,\n\t0x8F, 0xCD, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD3, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3,\n\t0xA8, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x88, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8,\n\t0xA7, 0xD9, 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9,\n\t0x94, 0xCD, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD,\n\t0x04, 0xDB, 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB,\n\t0x92, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9,\n\t0x94, 0xCD, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t// Bytes 39c0 - 39ff\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41,\n\t0xCC, 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x89, 0xCE, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84,\n\t0xCE, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE,\n\t0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05,\n\t// Bytes 3a00 - 3a3f\n\t0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41,\n\t0xCC, 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC,\n\t0xA7, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE,\n\t0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45,\n\t// Bytes 3a40 - 3a7f\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC,\n\t0xA7, 0xCC, 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC,\n\t0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,\n\t// Bytes 3a80 - 3abf\n\t0x83, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83,\n\t0xCC, 0x88, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC,\n\t0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,\n\t// Bytes 3ac0 - 3aff\n\t0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t0xA3, 0xBA, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82,\n\t0xCE, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE,\n\t0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,\n\t0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53,\n\t0xCC, 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC,\n\t0xA3, 0xCC, 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC,\n\t// Bytes 3b00 - 3b3f\n\t0x88, 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x89, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3,\n\t// Bytes 3b40 - 3b7f\n\t0xBA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCE, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE,\n\t// Bytes 3b80 - 3bbf\n\t0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61,\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F,\n\t// Bytes 3c00 - 3c3f\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC,\n\t// Bytes 3c40 - 3c7f\n\t0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xBA, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE,\n\t0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05,\n\t0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3,\n\t// Bytes 3c80 - 3cbf\n\t0xCC, 0x87, 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCE, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88,\n\t0xCE, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3cc0 - 3cff\n\t0x83, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,\n\t0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF,\n\t0xBE, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD,\n\t0x82, 0xCE, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8,\n\t// Bytes 3d00 - 3d3f\n\t0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05,\n\t// Bytes 3d40 - 3d7f\n\t0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3d80 - 3dbf\n\t0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3dc0 - 3dff\n\t0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3e00 - 3e3f\n\t0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8,\n\t0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 3e40 - 3e7f\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 3e80 - 3ebf\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 3ec0 - 3eff\n\t0xCE, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80,\n\t// Bytes 3f00 - 3f3f\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 3f40 - 3f7f\n\t0xDE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 3f80 - 3fbf\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82,\n\t// Bytes 3fc0 - 3fff\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85,\n\t// Bytes 4000 - 403f\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDE, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96,\n\t0x89, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A,\n\t// Bytes 4040 - 407f\n\t0x15, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99,\n\t// Bytes 4080 - 40bf\n\t0x11, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99,\n\t// Bytes 40c0 - 40ff\n\t0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A,\n\t// Bytes 4100 - 413f\n\t0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,\n\t// Bytes 4140 - 417f\n\t0x11, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99,\n\t// Bytes 4180 - 41bf\n\t0x11, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,\n\t// Bytes 41c0 - 41ff\n\t0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99,\n\t// Bytes 4200 - 423f\n\t0x11, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99,\n\t0x11, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 4240 - 427f\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t// Bytes 4280 - 42bf\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94,\n\t// Bytes 42c0 - 42ff\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 4300 - 433f\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t// Bytes 4340 - 437f\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91,\n\t// Bytes 4380 - 43bf\n\t0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B,\n\t0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91,\n\t0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42,\n\t0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD,\n\t0x43, 0x20, 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC,\n\t0x84, 0xCD, 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43,\n\t0x20, 0xCC, 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87,\n\t0xCD, 0x43, 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20,\n\t// Bytes 43c0 - 43ff\n\t0xCC, 0x8A, 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD,\n\t0x43, 0x20, 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC,\n\t0x94, 0xCD, 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43,\n\t0x20, 0xCC, 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3,\n\t0xB9, 0x43, 0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20,\n\t0xCD, 0x85, 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D,\n\t0x43, 0x20, 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9,\n\t0x8D, 0x65, 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43,\n\t// Bytes 4400 - 443f\n\t0x20, 0xD9, 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90,\n\t0x71, 0x43, 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20,\n\t0xD9, 0x92, 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD,\n\t0x43, 0x73, 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3,\n\t0x82, 0x99, 0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A,\n\t0x11, 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44,\n\t0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81,\n\t// Bytes 4440 - 447f\n\t0xCD, 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0x9F, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88,\n\t0xCD, 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85,\n\t// Bytes 4480 - 44bf\n\t0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81,\n\t0xCD, 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44,\n\t0xD7, 0x90, 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0x92, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44,\n\t// Bytes 44c0 - 44ff\n\t0xD7, 0x95, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44,\n\t0xD7, 0x99, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0x9C, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC,\n\t// Bytes 4500 - 453f\n\t0x45, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA3, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF,\n\t0x4D, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA7, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44,\n\t0xD7, 0xA9, 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA,\n\t// Bytes 4540 - 457f\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7,\n\t0x35, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x94, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95,\n\t0xB9, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44,\n\t0xD8, 0xB1, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80,\n\t0xD9, 0x8B, 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E,\n\t0x69, 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44,\n\t// Bytes 4580 - 45bf\n\t0xD9, 0x80, 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80,\n\t0xD9, 0x91, 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92,\n\t0x79, 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44,\n\t0xD9, 0x88, 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89,\n\t0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xCD, 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44,\n\t0xDB, 0x95, 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC,\n\t0x88, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88,\n\t// Bytes 45c0 - 45ff\n\t0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD,\n\t0x82, 0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE,\n\t0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45,\n\t0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC,\n\t0x94, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C,\n\t0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9,\n\t// Bytes 4600 - 463f\n\t0x91, 0x76, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91,\n\t0x76, 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76,\n\t0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45,\n\t0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2,\n\t0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9,\n\t0xD6, 0xBC, 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9,\n\t// Bytes 4640 - 467f\n\t0xD6, 0xBC, 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80,\n\t0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,\n\t0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,\n\t0xD9, 0x90, 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4,\n\t0x95, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x96, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x97, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x9C, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t// Bytes 4680 - 46bf\n\t0xA1, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xA2, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xAB, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xAF, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xA1, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xA2, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xAF, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0x96, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t// Bytes 46c0 - 46ff\n\t0x97, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0x9C, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xAB, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xB2, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xB8, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC,\n\t0xA1, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC,\n\t0xA2, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE,\n\t0xB2, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE,\n\t// Bytes 4700 - 473f\n\t0xB3, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83,\n\t0x86, 0xE3, 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D,\n\t0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE,\n\t0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2,\n\t// Bytes 4740 - 477f\n\t0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0,\n\t0xBE, 0x80, 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t// Bytes 4780 - 47bf\n\t0x85, 0xB1, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,\n\t// Bytes 47c0 - 47ff\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,\n\t0xB2, 0x83, 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41,\n\t0xCC, 0x86, 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD,\n\t0x83, 0x41, 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC,\n\t0x8A, 0xCD, 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x43, 0xCC, 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82,\n\t0xCD, 0x83, 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45,\n\t0xCC, 0xA3, 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9,\n\t// Bytes 4800 - 483f\n\t0x83, 0x49, 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC,\n\t0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83,\n\t0x4F, 0xCC, 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84,\n\t0xCD, 0x83, 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F,\n\t0xCC, 0x88, 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1,\n\t0x83, 0x4F, 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC,\n\t0xA8, 0xA9, 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x53, 0xCC, 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C,\n\t// Bytes 4840 - 487f\n\t0xCD, 0x83, 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55,\n\t0xCC, 0x83, 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD,\n\t0x83, 0x55, 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC,\n\t0x9B, 0xB1, 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83,\n\t0x61, 0xCC, 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87,\n\t0xCD, 0x83, 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61,\n\t0xCC, 0x8A, 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x63, 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x82, 0xCD, 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83,\n\t0x65, 0xCC, 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7,\n\t0xA9, 0x83, 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C,\n\t0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD,\n\t0x83, 0x6F, 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC,\n\t0x84, 0xCD, 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83,\n\t0x6F, 0xCC, 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B,\n\t0xB1, 0x83, 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F,\n\t// Bytes 48c0 - 48ff\n\t0xCC, 0xA8, 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x73, 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC,\n\t0x8C, 0xCD, 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x75, 0xCC, 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84,\n\t0xCD, 0x83, 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75,\n\t0xCC, 0x9B, 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0x95, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95,\n\t// Bytes 4900 - 493f\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84,\n\t// Bytes 4940 - 497f\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82,\n\t// Bytes 4980 - 49bf\n\t0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89,\n\t// Bytes 49c0 - 49ff\n\t0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t// Bytes 4a00 - 4a3f\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t// Bytes 4a40 - 4a7f\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t// Bytes 4a80 - 4abf\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t// Bytes 4ac0 - 4aff\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42,\n\t0xCC, 0x80, 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD,\n\t0x33, 0x42, 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1,\n\t// Bytes 4b00 - 4b3f\n\t0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00,\n\t// Bytes 4b40 - 4b7f\n\t0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA,\n\t// Bytes 4b80 - 4bbf\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5,\n\t0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x33, 0x43, 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43,\n\t// Bytes 4bc0 - 4bff\n\t0xE3, 0x82, 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27,\n\t0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10798 bytes (10.54 KiB). Checksum: b5981cc85e3bd14.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,\n\t0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,\n\t0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,\n\t0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,\n\t0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,\n\t0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,\n\t0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,\n\t0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,\n\t0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,\n\t0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,\n\t0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,\n\t0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,\n\t0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,\n\t0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,\n\t0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,\n\t0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,\n\t0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,\n\t0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,\n\t0x130: 0x31cd, 0x134: 0x31f5, 0x135: 0x3501,\n\t0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,\n\t0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,\n\t0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560,\n\t0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,\n\t0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,\n\t0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,\n\t0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,\n\t0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,\n\t0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,\n\t0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,\n\t0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,\n\t0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,\n\t0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,\n\t0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,\n\t0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,\n\t0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,\n\t0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,\n\t0x1b0: 0x3506, 0x1b4: 0x3169, 0x1b5: 0x3475,\n\t0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,\n\t0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,\n\t0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,\n\t0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,\n\t0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,\n\t0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,\n\t0x1de: 0x319b, 0x1df: 0x34a7,\n\t0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,\n\t0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,\n\t0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x01ee,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x36e2,\n\t0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,\n\t0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,\n\t0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3862, 0x2c1: 0x386e, 0x2c3: 0x385c,\n\t0x2c6: 0xa000, 0x2c7: 0x384a,\n\t0x2cc: 0x389e, 0x2cd: 0x3886, 0x2ce: 0x38b0, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3892, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3916, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3874, 0x302: 0x38f8,\n\t0x310: 0x3850, 0x311: 0x38d4,\n\t0x312: 0x3856, 0x313: 0x38da, 0x316: 0x3868, 0x317: 0x38ec,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x396a, 0x31b: 0x3970, 0x31c: 0x387a, 0x31d: 0x38fe,\n\t0x31e: 0x3880, 0x31f: 0x3904, 0x322: 0x388c, 0x323: 0x3910,\n\t0x324: 0x3898, 0x325: 0x391c, 0x326: 0x38a4, 0x327: 0x3928, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3976, 0x32b: 0x397c, 0x32c: 0x38ce, 0x32d: 0x3952, 0x32e: 0x38aa, 0x32f: 0x392e,\n\t0x330: 0x38b6, 0x331: 0x393a, 0x332: 0x38bc, 0x333: 0x3940, 0x334: 0x38c2, 0x335: 0x3946,\n\t0x338: 0x38c8, 0x339: 0x394c,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812e,\n\t0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,\n\t0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133,\n\t0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e,\n\t0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133,\n\t0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133,\n\t0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b,\n\t0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110,\n\t0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117,\n\t0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d,\n\t0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x812e,\n\t0x3b0: 0x811f,\n\t// Block 0xf, offset 0x3c0\n\t0x3ca: 0x8133, 0x3cb: 0x8133,\n\t0x3cc: 0x8133, 0x3cd: 0x8133, 0x3ce: 0x8133, 0x3cf: 0x812e, 0x3d0: 0x812e, 0x3d1: 0x812e,\n\t0x3d2: 0x812e, 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e,\n\t0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e,\n\t0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e,\n\t0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133,\n\t0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133,\n\t0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2e5d, 0x407: 0xa000, 0x408: 0x2e65, 0x409: 0xa000, 0x40a: 0x2e6d, 0x40b: 0xa000,\n\t0x40c: 0x2e75, 0x40d: 0xa000, 0x40e: 0x2e7d, 0x411: 0xa000,\n\t0x412: 0x2e85,\n\t0x434: 0x8103, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2e8d,\n\t0x43c: 0xa000, 0x43d: 0x2e95, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,\n\t0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,\n\t0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133,\n\t0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133,\n\t0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133,\n\t0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133,\n\t0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133,\n\t0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133,\n\t0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133,\n\t0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47a: 0x812d, 0x47b: 0x8133,\n\t0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x30d8, 0x481: 0x33e4, 0x482: 0x30e2, 0x483: 0x33ee, 0x484: 0x30e7, 0x485: 0x33f3,\n\t0x486: 0x30ec, 0x487: 0x33f8, 0x488: 0x3a0d, 0x489: 0x3b9c, 0x48a: 0x3105, 0x48b: 0x3411,\n\t0x48c: 0x310f, 0x48d: 0x341b, 0x48e: 0x311e, 0x48f: 0x342a, 0x490: 0x3114, 0x491: 0x3420,\n\t0x492: 0x3119, 0x493: 0x3425, 0x494: 0x3a30, 0x495: 0x3bbf, 0x496: 0x3a37, 0x497: 0x3bc6,\n\t0x498: 0x315a, 0x499: 0x3466, 0x49a: 0x315f, 0x49b: 0x346b, 0x49c: 0x3a45, 0x49d: 0x3bd4,\n\t0x49e: 0x3164, 0x49f: 0x3470, 0x4a0: 0x3173, 0x4a1: 0x347f, 0x4a2: 0x3191, 0x4a3: 0x349d,\n\t0x4a4: 0x31a0, 0x4a5: 0x34ac, 0x4a6: 0x3196, 0x4a7: 0x34a2, 0x4a8: 0x31a5, 0x4a9: 0x34b1,\n\t0x4aa: 0x31aa, 0x4ab: 0x34b6, 0x4ac: 0x31f0, 0x4ad: 0x34fc, 0x4ae: 0x3a4c, 0x4af: 0x3bdb,\n\t0x4b0: 0x31fa, 0x4b1: 0x350b, 0x4b2: 0x3204, 0x4b3: 0x3515, 0x4b4: 0x320e, 0x4b5: 0x351f,\n\t0x4b6: 0x4805, 0x4b7: 0x4896, 0x4b8: 0x3a53, 0x4b9: 0x3be2, 0x4ba: 0x3227, 0x4bb: 0x3538,\n\t0x4bc: 0x3222, 0x4bd: 0x3533, 0x4be: 0x322c, 0x4bf: 0x353d,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3231, 0x4c1: 0x3542, 0x4c2: 0x3236, 0x4c3: 0x3547, 0x4c4: 0x324a, 0x4c5: 0x355b,\n\t0x4c6: 0x3254, 0x4c7: 0x3565, 0x4c8: 0x3263, 0x4c9: 0x3574, 0x4ca: 0x325e, 0x4cb: 0x356f,\n\t0x4cc: 0x3a76, 0x4cd: 0x3c05, 0x4ce: 0x3a84, 0x4cf: 0x3c13, 0x4d0: 0x3a8b, 0x4d1: 0x3c1a,\n\t0x4d2: 0x3a92, 0x4d3: 0x3c21, 0x4d4: 0x3290, 0x4d5: 0x35a1, 0x4d6: 0x3295, 0x4d7: 0x35a6,\n\t0x4d8: 0x329f, 0x4d9: 0x35b0, 0x4da: 0x4832, 0x4db: 0x48c3, 0x4dc: 0x3ad8, 0x4dd: 0x3c67,\n\t0x4de: 0x32b8, 0x4df: 0x35c9, 0x4e0: 0x32c2, 0x4e1: 0x35d3, 0x4e2: 0x4841, 0x4e3: 0x48d2,\n\t0x4e4: 0x3adf, 0x4e5: 0x3c6e, 0x4e6: 0x3ae6, 0x4e7: 0x3c75, 0x4e8: 0x3aed, 0x4e9: 0x3c7c,\n\t0x4ea: 0x32d1, 0x4eb: 0x35e2, 0x4ec: 0x32db, 0x4ed: 0x35f1, 0x4ee: 0x32ef, 0x4ef: 0x3605,\n\t0x4f0: 0x32ea, 0x4f1: 0x3600, 0x4f2: 0x332b, 0x4f3: 0x3641, 0x4f4: 0x333a, 0x4f5: 0x3650,\n\t0x4f6: 0x3335, 0x4f7: 0x364b, 0x4f8: 0x3af4, 0x4f9: 0x3c83, 0x4fa: 0x3afb, 0x4fb: 0x3c8a,\n\t0x4fc: 0x333f, 0x4fd: 0x3655, 0x4fe: 0x3344, 0x4ff: 0x365a,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x3349, 0x501: 0x365f, 0x502: 0x334e, 0x503: 0x3664, 0x504: 0x335d, 0x505: 0x3673,\n\t0x506: 0x3358, 0x507: 0x366e, 0x508: 0x3362, 0x509: 0x367d, 0x50a: 0x3367, 0x50b: 0x3682,\n\t0x50c: 0x336c, 0x50d: 0x3687, 0x50e: 0x338a, 0x50f: 0x36a5, 0x510: 0x33a3, 0x511: 0x36c3,\n\t0x512: 0x33b2, 0x513: 0x36d2, 0x514: 0x33b7, 0x515: 0x36d7, 0x516: 0x34bb, 0x517: 0x35e7,\n\t0x518: 0x3678, 0x519: 0x36b4, 0x51b: 0x3712,\n\t0x520: 0x47e2, 0x521: 0x4873, 0x522: 0x30c4, 0x523: 0x33d0,\n\t0x524: 0x39b9, 0x525: 0x3b48, 0x526: 0x39b2, 0x527: 0x3b41, 0x528: 0x39c7, 0x529: 0x3b56,\n\t0x52a: 0x39c0, 0x52b: 0x3b4f, 0x52c: 0x39ff, 0x52d: 0x3b8e, 0x52e: 0x39d5, 0x52f: 0x3b64,\n\t0x530: 0x39ce, 0x531: 0x3b5d, 0x532: 0x39e3, 0x533: 0x3b72, 0x534: 0x39dc, 0x535: 0x3b6b,\n\t0x536: 0x3a06, 0x537: 0x3b95, 0x538: 0x47f6, 0x539: 0x4887, 0x53a: 0x3141, 0x53b: 0x344d,\n\t0x53c: 0x312d, 0x53d: 0x3439, 0x53e: 0x3a1b, 0x53f: 0x3baa,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3a14, 0x541: 0x3ba3, 0x542: 0x3a29, 0x543: 0x3bb8, 0x544: 0x3a22, 0x545: 0x3bb1,\n\t0x546: 0x3a3e, 0x547: 0x3bcd, 0x548: 0x31d2, 0x549: 0x34de, 0x54a: 0x31e6, 0x54b: 0x34f2,\n\t0x54c: 0x4828, 0x54d: 0x48b9, 0x54e: 0x3277, 0x54f: 0x3588, 0x550: 0x3a61, 0x551: 0x3bf0,\n\t0x552: 0x3a5a, 0x553: 0x3be9, 0x554: 0x3a6f, 0x555: 0x3bfe, 0x556: 0x3a68, 0x557: 0x3bf7,\n\t0x558: 0x3aca, 0x559: 0x3c59, 0x55a: 0x3aae, 0x55b: 0x3c3d, 0x55c: 0x3aa7, 0x55d: 0x3c36,\n\t0x55e: 0x3abc, 0x55f: 0x3c4b, 0x560: 0x3ab5, 0x561: 0x3c44, 0x562: 0x3ac3, 0x563: 0x3c52,\n\t0x564: 0x3326, 0x565: 0x363c, 0x566: 0x3308, 0x567: 0x361e, 0x568: 0x3b25, 0x569: 0x3cb4,\n\t0x56a: 0x3b1e, 0x56b: 0x3cad, 0x56c: 0x3b33, 0x56d: 0x3cc2, 0x56e: 0x3b2c, 0x56f: 0x3cbb,\n\t0x570: 0x3b3a, 0x571: 0x3cc9, 0x572: 0x3371, 0x573: 0x368c, 0x574: 0x3399, 0x575: 0x36b9,\n\t0x576: 0x3394, 0x577: 0x36af, 0x578: 0x3380, 0x579: 0x369b,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4945, 0x581: 0x494b, 0x582: 0x4a5f, 0x583: 0x4a77, 0x584: 0x4a67, 0x585: 0x4a7f,\n\t0x586: 0x4a6f, 0x587: 0x4a87, 0x588: 0x48eb, 0x589: 0x48f1, 0x58a: 0x49cf, 0x58b: 0x49e7,\n\t0x58c: 0x49d7, 0x58d: 0x49ef, 0x58e: 0x49df, 0x58f: 0x49f7, 0x590: 0x4957, 0x591: 0x495d,\n\t0x592: 0x3ef9, 0x593: 0x3f09, 0x594: 0x3f01, 0x595: 0x3f11,\n\t0x598: 0x48f7, 0x599: 0x48fd, 0x59a: 0x3e29, 0x59b: 0x3e39, 0x59c: 0x3e31, 0x59d: 0x3e41,\n\t0x5a0: 0x496f, 0x5a1: 0x4975, 0x5a2: 0x4a8f, 0x5a3: 0x4aa7,\n\t0x5a4: 0x4a97, 0x5a5: 0x4aaf, 0x5a6: 0x4a9f, 0x5a7: 0x4ab7, 0x5a8: 0x4903, 0x5a9: 0x4909,\n\t0x5aa: 0x49ff, 0x5ab: 0x4a17, 0x5ac: 0x4a07, 0x5ad: 0x4a1f, 0x5ae: 0x4a0f, 0x5af: 0x4a27,\n\t0x5b0: 0x4987, 0x5b1: 0x498d, 0x5b2: 0x3f59, 0x5b3: 0x3f71, 0x5b4: 0x3f61, 0x5b5: 0x3f79,\n\t0x5b6: 0x3f69, 0x5b7: 0x3f81, 0x5b8: 0x490f, 0x5b9: 0x4915, 0x5ba: 0x3e59, 0x5bb: 0x3e71,\n\t0x5bc: 0x3e61, 0x5bd: 0x3e79, 0x5be: 0x3e69, 0x5bf: 0x3e81,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4993, 0x5c1: 0x4999, 0x5c2: 0x3f89, 0x5c3: 0x3f99, 0x5c4: 0x3f91, 0x5c5: 0x3fa1,\n\t0x5c8: 0x491b, 0x5c9: 0x4921, 0x5ca: 0x3e89, 0x5cb: 0x3e99,\n\t0x5cc: 0x3e91, 0x5cd: 0x3ea1, 0x5d0: 0x49a5, 0x5d1: 0x49ab,\n\t0x5d2: 0x3fc1, 0x5d3: 0x3fd9, 0x5d4: 0x3fc9, 0x5d5: 0x3fe1, 0x5d6: 0x3fd1, 0x5d7: 0x3fe9,\n\t0x5d9: 0x4927, 0x5db: 0x3ea9, 0x5dd: 0x3eb1,\n\t0x5df: 0x3eb9, 0x5e0: 0x49bd, 0x5e1: 0x49c3, 0x5e2: 0x4abf, 0x5e3: 0x4ad7,\n\t0x5e4: 0x4ac7, 0x5e5: 0x4adf, 0x5e6: 0x4acf, 0x5e7: 0x4ae7, 0x5e8: 0x492d, 0x5e9: 0x4933,\n\t0x5ea: 0x4a2f, 0x5eb: 0x4a47, 0x5ec: 0x4a37, 0x5ed: 0x4a4f, 0x5ee: 0x4a3f, 0x5ef: 0x4a57,\n\t0x5f0: 0x4939, 0x5f1: 0x445f, 0x5f2: 0x37d2, 0x5f3: 0x4465, 0x5f4: 0x4963, 0x5f5: 0x446b,\n\t0x5f6: 0x37e4, 0x5f7: 0x4471, 0x5f8: 0x3802, 0x5f9: 0x4477, 0x5fa: 0x381a, 0x5fb: 0x447d,\n\t0x5fc: 0x49b1, 0x5fd: 0x4483,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3ee1, 0x601: 0x3ee9, 0x602: 0x42c5, 0x603: 0x42e3, 0x604: 0x42cf, 0x605: 0x42ed,\n\t0x606: 0x42d9, 0x607: 0x42f7, 0x608: 0x3e19, 0x609: 0x3e21, 0x60a: 0x4211, 0x60b: 0x422f,\n\t0x60c: 0x421b, 0x60d: 0x4239, 0x60e: 0x4225, 0x60f: 0x4243, 0x610: 0x3f29, 0x611: 0x3f31,\n\t0x612: 0x4301, 0x613: 0x431f, 0x614: 0x430b, 0x615: 0x4329, 0x616: 0x4315, 0x617: 0x4333,\n\t0x618: 0x3e49, 0x619: 0x3e51, 0x61a: 0x424d, 0x61b: 0x426b, 0x61c: 0x4257, 0x61d: 0x4275,\n\t0x61e: 0x4261, 0x61f: 0x427f, 0x620: 0x4001, 0x621: 0x4009, 0x622: 0x433d, 0x623: 0x435b,\n\t0x624: 0x4347, 0x625: 0x4365, 0x626: 0x4351, 0x627: 0x436f, 0x628: 0x3ec1, 0x629: 0x3ec9,\n\t0x62a: 0x4289, 0x62b: 0x42a7, 0x62c: 0x4293, 0x62d: 0x42b1, 0x62e: 0x429d, 0x62f: 0x42bb,\n\t0x630: 0x37c6, 0x631: 0x37c0, 0x632: 0x3ed1, 0x633: 0x37cc, 0x634: 0x3ed9,\n\t0x636: 0x4951, 0x637: 0x3ef1, 0x638: 0x3736, 0x639: 0x3730, 0x63a: 0x3724, 0x63b: 0x442f,\n\t0x63c: 0x373c, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x36e8, 0x642: 0x3f19, 0x643: 0x37de, 0x644: 0x3f21,\n\t0x646: 0x497b, 0x647: 0x3f39, 0x648: 0x3742, 0x649: 0x4435, 0x64a: 0x374e, 0x64b: 0x443b,\n\t0x64c: 0x375a, 0x64d: 0x3cd0, 0x64e: 0x3cd7, 0x64f: 0x3cde, 0x650: 0x37f6, 0x651: 0x37f0,\n\t0x652: 0x3f41, 0x653: 0x4625, 0x656: 0x37fc, 0x657: 0x3f51,\n\t0x658: 0x3772, 0x659: 0x376c, 0x65a: 0x3760, 0x65b: 0x4441, 0x65d: 0x3ce5,\n\t0x65e: 0x3cec, 0x65f: 0x3cf3, 0x660: 0x382c, 0x661: 0x3826, 0x662: 0x3fa9, 0x663: 0x462d,\n\t0x664: 0x380e, 0x665: 0x3814, 0x666: 0x3832, 0x667: 0x3fb9, 0x668: 0x37a2, 0x669: 0x379c,\n\t0x66a: 0x3790, 0x66b: 0x444d, 0x66c: 0x378a, 0x66d: 0x36dc, 0x66e: 0x4429, 0x66f: 0x0081,\n\t0x672: 0x3ff1, 0x673: 0x3838, 0x674: 0x3ff9,\n\t0x676: 0x49c9, 0x677: 0x4011, 0x678: 0x377e, 0x679: 0x4447, 0x67a: 0x37ae, 0x67b: 0x4459,\n\t0x67c: 0x37ba, 0x67d: 0x4397, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3d47, 0x683: 0xa000, 0x684: 0x3d4e, 0x685: 0xa000,\n\t0x687: 0x3d55, 0x688: 0xa000, 0x689: 0x3d5c,\n\t0x68d: 0xa000,\n\t0x6a0: 0x30a6, 0x6a1: 0xa000, 0x6a2: 0x3d6a,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3d63, 0x6ae: 0x30a1, 0x6af: 0x30ab,\n\t0x6b0: 0x3d71, 0x6b1: 0x3d78, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3d7f, 0x6b5: 0x3d86,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3d8d, 0x6b9: 0x3d94, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3d9b, 0x6c1: 0x3da2, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3db7, 0x6c5: 0x3dbe,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3dc5, 0x6c9: 0x3dcc,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3de1, 0x6ed: 0x3de8, 0x6ee: 0x3def, 0x6ef: 0x3df6,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x4049, 0x70d: 0xa000, 0x70e: 0x4051, 0x70f: 0xa000, 0x710: 0x4059, 0x711: 0xa000,\n\t0x712: 0x4061, 0x713: 0xa000, 0x714: 0x4069, 0x715: 0xa000, 0x716: 0x4071, 0x717: 0xa000,\n\t0x718: 0x4079, 0x719: 0xa000, 0x71a: 0x4081, 0x71b: 0xa000, 0x71c: 0x4089, 0x71d: 0xa000,\n\t0x71e: 0x4091, 0x71f: 0xa000, 0x720: 0x4099, 0x721: 0xa000, 0x722: 0x40a1,\n\t0x724: 0xa000, 0x725: 0x40a9, 0x726: 0xa000, 0x727: 0x40b1, 0x728: 0xa000, 0x729: 0x40b9,\n\t0x72f: 0xa000,\n\t0x730: 0x40c1, 0x731: 0x40c9, 0x732: 0xa000, 0x733: 0x40d1, 0x734: 0x40d9, 0x735: 0xa000,\n\t0x736: 0x40e1, 0x737: 0x40e9, 0x738: 0xa000, 0x739: 0x40f1, 0x73a: 0x40f9, 0x73b: 0xa000,\n\t0x73c: 0x4101, 0x73d: 0x4109,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x4041,\n\t0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x4111,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x4121, 0x76d: 0xa000, 0x76e: 0x4129, 0x76f: 0xa000,\n\t0x770: 0x4131, 0x771: 0xa000, 0x772: 0x4139, 0x773: 0xa000, 0x774: 0x4141, 0x775: 0xa000,\n\t0x776: 0x4149, 0x777: 0xa000, 0x778: 0x4151, 0x779: 0xa000, 0x77a: 0x4159, 0x77b: 0xa000,\n\t0x77c: 0x4161, 0x77d: 0xa000, 0x77e: 0x4169, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4171, 0x781: 0xa000, 0x782: 0x4179, 0x784: 0xa000, 0x785: 0x4181,\n\t0x786: 0xa000, 0x787: 0x4189, 0x788: 0xa000, 0x789: 0x4191,\n\t0x78f: 0xa000, 0x790: 0x4199, 0x791: 0x41a1,\n\t0x792: 0xa000, 0x793: 0x41a9, 0x794: 0x41b1, 0x795: 0xa000, 0x796: 0x41b9, 0x797: 0x41c1,\n\t0x798: 0xa000, 0x799: 0x41c9, 0x79a: 0x41d1, 0x79b: 0xa000, 0x79c: 0x41d9, 0x79d: 0x41e1,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4119,\n\t0x7b7: 0x41e9, 0x7b8: 0x41f1, 0x7b9: 0x41f9, 0x7ba: 0x4201,\n\t0x7bd: 0xa000, 0x7be: 0x4209,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1472, 0x7c1: 0x0df6, 0x7c2: 0x14ce, 0x7c3: 0x149a, 0x7c4: 0x0f52, 0x7c5: 0x07e6,\n\t0x7c6: 0x09da, 0x7c7: 0x1726, 0x7c8: 0x1726, 0x7c9: 0x0b06, 0x7ca: 0x155a, 0x7cb: 0x0a3e,\n\t0x7cc: 0x0b02, 0x7cd: 0x0cea, 0x7ce: 0x10ca, 0x7cf: 0x125a, 0x7d0: 0x1392, 0x7d1: 0x13ce,\n\t0x7d2: 0x1402, 0x7d3: 0x1516, 0x7d4: 0x0e6e, 0x7d5: 0x0efa, 0x7d6: 0x0fa6, 0x7d7: 0x103e,\n\t0x7d8: 0x135a, 0x7d9: 0x1542, 0x7da: 0x166e, 0x7db: 0x080a, 0x7dc: 0x09ae, 0x7dd: 0x0e82,\n\t0x7de: 0x0fca, 0x7df: 0x138e, 0x7e0: 0x16be, 0x7e1: 0x0bae, 0x7e2: 0x0f72, 0x7e3: 0x137e,\n\t0x7e4: 0x1412, 0x7e5: 0x0d1e, 0x7e6: 0x12b6, 0x7e7: 0x13da, 0x7e8: 0x0c1a, 0x7e9: 0x0e0a,\n\t0x7ea: 0x0f12, 0x7eb: 0x1016, 0x7ec: 0x1522, 0x7ed: 0x084a, 0x7ee: 0x08e2, 0x7ef: 0x094e,\n\t0x7f0: 0x0d86, 0x7f1: 0x0e7a, 0x7f2: 0x0fc6, 0x7f3: 0x10ea, 0x7f4: 0x1272, 0x7f5: 0x1386,\n\t0x7f6: 0x139e, 0x7f7: 0x14c2, 0x7f8: 0x15ea, 0x7f9: 0x169e, 0x7fa: 0x16ba, 0x7fb: 0x1126,\n\t0x7fc: 0x1166, 0x7fd: 0x121e, 0x7fe: 0x133e, 0x7ff: 0x1576,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x16c6, 0x801: 0x1446, 0x802: 0x0ac2, 0x803: 0x0c36, 0x804: 0x11d6, 0x805: 0x1296,\n\t0x806: 0x0ffa, 0x807: 0x112e, 0x808: 0x1492, 0x809: 0x15e2, 0x80a: 0x0abe, 0x80b: 0x0b8a,\n\t0x80c: 0x0e72, 0x80d: 0x0f26, 0x80e: 0x0f5a, 0x80f: 0x120e, 0x810: 0x1236, 0x811: 0x15a2,\n\t0x812: 0x094a, 0x813: 0x12a2, 0x814: 0x08ee, 0x815: 0x08ea, 0x816: 0x1192, 0x817: 0x1222,\n\t0x818: 0x1356, 0x819: 0x15aa, 0x81a: 0x1462, 0x81b: 0x0d22, 0x81c: 0x0e6e, 0x81d: 0x1452,\n\t0x81e: 0x07f2, 0x81f: 0x0b5e, 0x820: 0x0c8e, 0x821: 0x102a, 0x822: 0x10aa, 0x823: 0x096e,\n\t0x824: 0x1136, 0x825: 0x085a, 0x826: 0x0c72, 0x827: 0x07d2, 0x828: 0x0ee6, 0x829: 0x0d9e,\n\t0x82a: 0x120a, 0x82b: 0x09c2, 0x82c: 0x0aae, 0x82d: 0x10f6, 0x82e: 0x135e, 0x82f: 0x1436,\n\t0x830: 0x0eb2, 0x831: 0x14f2, 0x832: 0x0ede, 0x833: 0x0d32, 0x834: 0x1316, 0x835: 0x0d52,\n\t0x836: 0x10a6, 0x837: 0x0826, 0x838: 0x08a2, 0x839: 0x08e6, 0x83a: 0x0e4e, 0x83b: 0x11f6,\n\t0x83c: 0x12ee, 0x83d: 0x1442, 0x83e: 0x1556, 0x83f: 0x0956,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0a0a, 0x841: 0x0b12, 0x842: 0x0c2a, 0x843: 0x0dba, 0x844: 0x0f76, 0x845: 0x113a,\n\t0x846: 0x1592, 0x847: 0x1676, 0x848: 0x16ca, 0x849: 0x16e2, 0x84a: 0x0932, 0x84b: 0x0dee,\n\t0x84c: 0x0e9e, 0x84d: 0x14e6, 0x84e: 0x0bf6, 0x84f: 0x0cd2, 0x850: 0x0cee, 0x851: 0x0d7e,\n\t0x852: 0x0f66, 0x853: 0x0fb2, 0x854: 0x1062, 0x855: 0x1186, 0x856: 0x122a, 0x857: 0x128e,\n\t0x858: 0x14d6, 0x859: 0x1366, 0x85a: 0x14fe, 0x85b: 0x157a, 0x85c: 0x090a, 0x85d: 0x0936,\n\t0x85e: 0x0a1e, 0x85f: 0x0fa2, 0x860: 0x13ee, 0x861: 0x1436, 0x862: 0x0c16, 0x863: 0x0c86,\n\t0x864: 0x0d4a, 0x865: 0x0eaa, 0x866: 0x11d2, 0x867: 0x101e, 0x868: 0x0836, 0x869: 0x0a7a,\n\t0x86a: 0x0b5e, 0x86b: 0x0bc2, 0x86c: 0x0c92, 0x86d: 0x103a, 0x86e: 0x1056, 0x86f: 0x1266,\n\t0x870: 0x1286, 0x871: 0x155e, 0x872: 0x15de, 0x873: 0x15ee, 0x874: 0x162a, 0x875: 0x084e,\n\t0x876: 0x117a, 0x877: 0x154a, 0x878: 0x15c6, 0x879: 0x0caa, 0x87a: 0x0812, 0x87b: 0x0872,\n\t0x87c: 0x0b62, 0x87d: 0x0b82, 0x87e: 0x0daa, 0x87f: 0x0e6e,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0fbe, 0x881: 0x10c6, 0x882: 0x1372, 0x883: 0x1512, 0x884: 0x171e, 0x885: 0x0dde,\n\t0x886: 0x159e, 0x887: 0x092e, 0x888: 0x0e2a, 0x889: 0x0e36, 0x88a: 0x0f0a, 0x88b: 0x0f42,\n\t0x88c: 0x1046, 0x88d: 0x10a2, 0x88e: 0x1122, 0x88f: 0x1206, 0x890: 0x1636, 0x891: 0x08aa,\n\t0x892: 0x0cfe, 0x893: 0x15ae, 0x894: 0x0862, 0x895: 0x0ba6, 0x896: 0x0f2a, 0x897: 0x14da,\n\t0x898: 0x0c62, 0x899: 0x0cb2, 0x89a: 0x0e3e, 0x89b: 0x102a, 0x89c: 0x15b6, 0x89d: 0x0912,\n\t0x89e: 0x09fa, 0x89f: 0x0b92, 0x8a0: 0x0dce, 0x8a1: 0x0e1a, 0x8a2: 0x0e5a, 0x8a3: 0x0eee,\n\t0x8a4: 0x1042, 0x8a5: 0x10b6, 0x8a6: 0x1252, 0x8a7: 0x13f2, 0x8a8: 0x13fe, 0x8a9: 0x1552,\n\t0x8aa: 0x15d2, 0x8ab: 0x097e, 0x8ac: 0x0f46, 0x8ad: 0x09fe, 0x8ae: 0x0fc2, 0x8af: 0x1066,\n\t0x8b0: 0x1382, 0x8b1: 0x15ba, 0x8b2: 0x16a6, 0x8b3: 0x16ce, 0x8b4: 0x0e32, 0x8b5: 0x0f22,\n\t0x8b6: 0x12be, 0x8b7: 0x11b2, 0x8b8: 0x11be, 0x8b9: 0x11e2, 0x8ba: 0x1012, 0x8bb: 0x0f9a,\n\t0x8bc: 0x145e, 0x8bd: 0x082e, 0x8be: 0x1326, 0x8bf: 0x0916,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0906, 0x8c1: 0x0c06, 0x8c2: 0x0d26, 0x8c3: 0x11ee, 0x8c4: 0x0b4e, 0x8c5: 0x0efe,\n\t0x8c6: 0x0dea, 0x8c7: 0x14e2, 0x8c8: 0x13e2, 0x8c9: 0x15a6, 0x8ca: 0x141e, 0x8cb: 0x0c22,\n\t0x8cc: 0x0882, 0x8cd: 0x0a56, 0x8d0: 0x0aaa,\n\t0x8d2: 0x0dda, 0x8d5: 0x08f2, 0x8d6: 0x101a, 0x8d7: 0x10de,\n\t0x8d8: 0x1142, 0x8d9: 0x115e, 0x8da: 0x1162, 0x8db: 0x1176, 0x8dc: 0x15f6, 0x8dd: 0x11e6,\n\t0x8de: 0x126a, 0x8e0: 0x138a, 0x8e2: 0x144e,\n\t0x8e5: 0x1502, 0x8e6: 0x152e,\n\t0x8ea: 0x164a, 0x8eb: 0x164e, 0x8ec: 0x1652, 0x8ed: 0x16b6, 0x8ee: 0x1526, 0x8ef: 0x15c2,\n\t0x8f0: 0x0852, 0x8f1: 0x0876, 0x8f2: 0x088a, 0x8f3: 0x0946, 0x8f4: 0x0952, 0x8f5: 0x0992,\n\t0x8f6: 0x0a46, 0x8f7: 0x0a62, 0x8f8: 0x0a6a, 0x8f9: 0x0aa6, 0x8fa: 0x0ab2, 0x8fb: 0x0b8e,\n\t0x8fc: 0x0b96, 0x8fd: 0x0c9e, 0x8fe: 0x0cc6, 0x8ff: 0x0cce,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0ce6, 0x901: 0x0d92, 0x902: 0x0dc2, 0x903: 0x0de2, 0x904: 0x0e52, 0x905: 0x0f16,\n\t0x906: 0x0f32, 0x907: 0x0f62, 0x908: 0x0fb6, 0x909: 0x0fd6, 0x90a: 0x104a, 0x90b: 0x112a,\n\t0x90c: 0x1146, 0x90d: 0x114e, 0x90e: 0x114a, 0x90f: 0x1152, 0x910: 0x1156, 0x911: 0x115a,\n\t0x912: 0x116e, 0x913: 0x1172, 0x914: 0x1196, 0x915: 0x11aa, 0x916: 0x11c6, 0x917: 0x122a,\n\t0x918: 0x1232, 0x919: 0x123a, 0x91a: 0x124e, 0x91b: 0x1276, 0x91c: 0x12c6, 0x91d: 0x12fa,\n\t0x91e: 0x12fa, 0x91f: 0x1362, 0x920: 0x140a, 0x921: 0x1422, 0x922: 0x1456, 0x923: 0x145a,\n\t0x924: 0x149e, 0x925: 0x14a2, 0x926: 0x14fa, 0x927: 0x1502, 0x928: 0x15d6, 0x929: 0x161a,\n\t0x92a: 0x1632, 0x92b: 0x0c96, 0x92c: 0x184b, 0x92d: 0x12de,\n\t0x930: 0x07da, 0x931: 0x08de, 0x932: 0x089e, 0x933: 0x0846, 0x934: 0x0886, 0x935: 0x08b2,\n\t0x936: 0x0942, 0x937: 0x095e, 0x938: 0x0a46, 0x939: 0x0a32, 0x93a: 0x0a42, 0x93b: 0x0a5e,\n\t0x93c: 0x0aaa, 0x93d: 0x0aba, 0x93e: 0x0afe, 0x93f: 0x0b0a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0b26, 0x941: 0x0b36, 0x942: 0x0c1e, 0x943: 0x0c26, 0x944: 0x0c56, 0x945: 0x0c76,\n\t0x946: 0x0ca6, 0x947: 0x0cbe, 0x948: 0x0cae, 0x949: 0x0cce, 0x94a: 0x0cc2, 0x94b: 0x0ce6,\n\t0x94c: 0x0d02, 0x94d: 0x0d5a, 0x94e: 0x0d66, 0x94f: 0x0d6e, 0x950: 0x0d96, 0x951: 0x0dda,\n\t0x952: 0x0e0a, 0x953: 0x0e0e, 0x954: 0x0e22, 0x955: 0x0ea2, 0x956: 0x0eb2, 0x957: 0x0f0a,\n\t0x958: 0x0f56, 0x959: 0x0f4e, 0x95a: 0x0f62, 0x95b: 0x0f7e, 0x95c: 0x0fb6, 0x95d: 0x110e,\n\t0x95e: 0x0fda, 0x95f: 0x100e, 0x960: 0x101a, 0x961: 0x105a, 0x962: 0x1076, 0x963: 0x109a,\n\t0x964: 0x10be, 0x965: 0x10c2, 0x966: 0x10de, 0x967: 0x10e2, 0x968: 0x10f2, 0x969: 0x1106,\n\t0x96a: 0x1102, 0x96b: 0x1132, 0x96c: 0x11ae, 0x96d: 0x11c6, 0x96e: 0x11de, 0x96f: 0x1216,\n\t0x970: 0x122a, 0x971: 0x1246, 0x972: 0x1276, 0x973: 0x132a, 0x974: 0x1352, 0x975: 0x13c6,\n\t0x976: 0x140e, 0x977: 0x141a, 0x978: 0x1422, 0x979: 0x143a, 0x97a: 0x144e, 0x97b: 0x143e,\n\t0x97c: 0x1456, 0x97d: 0x1452, 0x97e: 0x144a, 0x97f: 0x145a,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x1466, 0x981: 0x14a2, 0x982: 0x14de, 0x983: 0x150e, 0x984: 0x1546, 0x985: 0x1566,\n\t0x986: 0x15b2, 0x987: 0x15d6, 0x988: 0x15f6, 0x989: 0x160a, 0x98a: 0x161a, 0x98b: 0x1626,\n\t0x98c: 0x1632, 0x98d: 0x1686, 0x98e: 0x1726, 0x98f: 0x17e2, 0x990: 0x17dd, 0x991: 0x180f,\n\t0x992: 0x0702, 0x993: 0x072a, 0x994: 0x072e, 0x995: 0x1891, 0x996: 0x18be, 0x997: 0x1936,\n\t0x998: 0x1712, 0x999: 0x1722,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x07f6, 0x9c1: 0x07ee, 0x9c2: 0x07fe, 0x9c3: 0x1774, 0x9c4: 0x0842, 0x9c5: 0x0852,\n\t0x9c6: 0x0856, 0x9c7: 0x085e, 0x9c8: 0x0866, 0x9c9: 0x086a, 0x9ca: 0x0876, 0x9cb: 0x086e,\n\t0x9cc: 0x06ae, 0x9cd: 0x1788, 0x9ce: 0x088a, 0x9cf: 0x088e, 0x9d0: 0x0892, 0x9d1: 0x08ae,\n\t0x9d2: 0x1779, 0x9d3: 0x06b2, 0x9d4: 0x089a, 0x9d5: 0x08ba, 0x9d6: 0x1783, 0x9d7: 0x08ca,\n\t0x9d8: 0x08d2, 0x9d9: 0x0832, 0x9da: 0x08da, 0x9db: 0x08de, 0x9dc: 0x195e, 0x9dd: 0x08fa,\n\t0x9de: 0x0902, 0x9df: 0x06ba, 0x9e0: 0x091a, 0x9e1: 0x091e, 0x9e2: 0x0926, 0x9e3: 0x092a,\n\t0x9e4: 0x06be, 0x9e5: 0x0942, 0x9e6: 0x0946, 0x9e7: 0x0952, 0x9e8: 0x095e, 0x9e9: 0x0962,\n\t0x9ea: 0x0966, 0x9eb: 0x096e, 0x9ec: 0x098e, 0x9ed: 0x0992, 0x9ee: 0x099a, 0x9ef: 0x09aa,\n\t0x9f0: 0x09b2, 0x9f1: 0x09b6, 0x9f2: 0x09b6, 0x9f3: 0x09b6, 0x9f4: 0x1797, 0x9f5: 0x0f8e,\n\t0x9f6: 0x09ca, 0x9f7: 0x09d2, 0x9f8: 0x179c, 0x9f9: 0x09de, 0x9fa: 0x09e6, 0x9fb: 0x09ee,\n\t0x9fc: 0x0a16, 0x9fd: 0x0a02, 0x9fe: 0x0a0e, 0x9ff: 0x0a12,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0a1a, 0xa01: 0x0a22, 0xa02: 0x0a26, 0xa03: 0x0a2e, 0xa04: 0x0a36, 0xa05: 0x0a3a,\n\t0xa06: 0x0a3a, 0xa07: 0x0a42, 0xa08: 0x0a4a, 0xa09: 0x0a4e, 0xa0a: 0x0a5a, 0xa0b: 0x0a7e,\n\t0xa0c: 0x0a62, 0xa0d: 0x0a82, 0xa0e: 0x0a66, 0xa0f: 0x0a6e, 0xa10: 0x0906, 0xa11: 0x0aca,\n\t0xa12: 0x0a92, 0xa13: 0x0a96, 0xa14: 0x0a9a, 0xa15: 0x0a8e, 0xa16: 0x0aa2, 0xa17: 0x0a9e,\n\t0xa18: 0x0ab6, 0xa19: 0x17a1, 0xa1a: 0x0ad2, 0xa1b: 0x0ad6, 0xa1c: 0x0ade, 0xa1d: 0x0aea,\n\t0xa1e: 0x0af2, 0xa1f: 0x0b0e, 0xa20: 0x17a6, 0xa21: 0x17ab, 0xa22: 0x0b1a, 0xa23: 0x0b1e,\n\t0xa24: 0x0b22, 0xa25: 0x0b16, 0xa26: 0x0b2a, 0xa27: 0x06c2, 0xa28: 0x06c6, 0xa29: 0x0b32,\n\t0xa2a: 0x0b3a, 0xa2b: 0x0b3a, 0xa2c: 0x17b0, 0xa2d: 0x0b56, 0xa2e: 0x0b5a, 0xa2f: 0x0b5e,\n\t0xa30: 0x0b66, 0xa31: 0x17b5, 0xa32: 0x0b6e, 0xa33: 0x0b72, 0xa34: 0x0c4a, 0xa35: 0x0b7a,\n\t0xa36: 0x06ca, 0xa37: 0x0b86, 0xa38: 0x0b96, 0xa39: 0x0ba2, 0xa3a: 0x0b9e, 0xa3b: 0x17bf,\n\t0xa3c: 0x0baa, 0xa3d: 0x17c4, 0xa3e: 0x0bb6, 0xa3f: 0x0bb2,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0bba, 0xa41: 0x0bca, 0xa42: 0x0bce, 0xa43: 0x06ce, 0xa44: 0x0bde, 0xa45: 0x0be6,\n\t0xa46: 0x0bea, 0xa47: 0x0bee, 0xa48: 0x06d2, 0xa49: 0x17c9, 0xa4a: 0x06d6, 0xa4b: 0x0c0a,\n\t0xa4c: 0x0c0e, 0xa4d: 0x0c12, 0xa4e: 0x0c1a, 0xa4f: 0x1990, 0xa50: 0x0c32, 0xa51: 0x17d3,\n\t0xa52: 0x17d3, 0xa53: 0x12d2, 0xa54: 0x0c42, 0xa55: 0x0c42, 0xa56: 0x06da, 0xa57: 0x17f6,\n\t0xa58: 0x18c8, 0xa59: 0x0c52, 0xa5a: 0x0c5a, 0xa5b: 0x06de, 0xa5c: 0x0c6e, 0xa5d: 0x0c7e,\n\t0xa5e: 0x0c82, 0xa5f: 0x0c8a, 0xa60: 0x0c9a, 0xa61: 0x06e6, 0xa62: 0x06e2, 0xa63: 0x0c9e,\n\t0xa64: 0x17d8, 0xa65: 0x0ca2, 0xa66: 0x0cb6, 0xa67: 0x0cba, 0xa68: 0x0cbe, 0xa69: 0x0cba,\n\t0xa6a: 0x0cca, 0xa6b: 0x0cce, 0xa6c: 0x0cde, 0xa6d: 0x0cd6, 0xa6e: 0x0cda, 0xa6f: 0x0ce2,\n\t0xa70: 0x0ce6, 0xa71: 0x0cea, 0xa72: 0x0cf6, 0xa73: 0x0cfa, 0xa74: 0x0d12, 0xa75: 0x0d1a,\n\t0xa76: 0x0d2a, 0xa77: 0x0d3e, 0xa78: 0x17e7, 0xa79: 0x0d3a, 0xa7a: 0x0d2e, 0xa7b: 0x0d46,\n\t0xa7c: 0x0d4e, 0xa7d: 0x0d62, 0xa7e: 0x17ec, 0xa7f: 0x0d6a,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0d5e, 0xa81: 0x0d56, 0xa82: 0x06ea, 0xa83: 0x0d72, 0xa84: 0x0d7a, 0xa85: 0x0d82,\n\t0xa86: 0x0d76, 0xa87: 0x06ee, 0xa88: 0x0d92, 0xa89: 0x0d9a, 0xa8a: 0x17f1, 0xa8b: 0x0dc6,\n\t0xa8c: 0x0dfa, 0xa8d: 0x0dd6, 0xa8e: 0x06fa, 0xa8f: 0x0de2, 0xa90: 0x06f6, 0xa91: 0x06f2,\n\t0xa92: 0x08be, 0xa93: 0x08c2, 0xa94: 0x0dfe, 0xa95: 0x0de6, 0xa96: 0x12a6, 0xa97: 0x075e,\n\t0xa98: 0x0e0a, 0xa99: 0x0e0e, 0xa9a: 0x0e12, 0xa9b: 0x0e26, 0xa9c: 0x0e1e, 0xa9d: 0x180a,\n\t0xa9e: 0x06fe, 0xa9f: 0x0e3a, 0xaa0: 0x0e2e, 0xaa1: 0x0e4a, 0xaa2: 0x0e52, 0xaa3: 0x1814,\n\t0xaa4: 0x0e56, 0xaa5: 0x0e42, 0xaa6: 0x0e5e, 0xaa7: 0x0702, 0xaa8: 0x0e62, 0xaa9: 0x0e66,\n\t0xaaa: 0x0e6a, 0xaab: 0x0e76, 0xaac: 0x1819, 0xaad: 0x0e7e, 0xaae: 0x0706, 0xaaf: 0x0e8a,\n\t0xab0: 0x181e, 0xab1: 0x0e8e, 0xab2: 0x070a, 0xab3: 0x0e9a, 0xab4: 0x0ea6, 0xab5: 0x0eb2,\n\t0xab6: 0x0eb6, 0xab7: 0x1823, 0xab8: 0x17ba, 0xab9: 0x1828, 0xaba: 0x0ed6, 0xabb: 0x182d,\n\t0xabc: 0x0ee2, 0xabd: 0x0eea, 0xabe: 0x0eda, 0xabf: 0x0ef6,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0f06, 0xac1: 0x0f16, 0xac2: 0x0f0a, 0xac3: 0x0f0e, 0xac4: 0x0f1a, 0xac5: 0x0f1e,\n\t0xac6: 0x1832, 0xac7: 0x0f02, 0xac8: 0x0f36, 0xac9: 0x0f3a, 0xaca: 0x070e, 0xacb: 0x0f4e,\n\t0xacc: 0x0f4a, 0xacd: 0x1837, 0xace: 0x0f2e, 0xacf: 0x0f6a, 0xad0: 0x183c, 0xad1: 0x1841,\n\t0xad2: 0x0f6e, 0xad3: 0x0f82, 0xad4: 0x0f7e, 0xad5: 0x0f7a, 0xad6: 0x0712, 0xad7: 0x0f86,\n\t0xad8: 0x0f96, 0xad9: 0x0f92, 0xada: 0x0f9e, 0xadb: 0x177e, 0xadc: 0x0fae, 0xadd: 0x1846,\n\t0xade: 0x0fba, 0xadf: 0x1850, 0xae0: 0x0fce, 0xae1: 0x0fda, 0xae2: 0x0fee, 0xae3: 0x1855,\n\t0xae4: 0x1002, 0xae5: 0x1006, 0xae6: 0x185a, 0xae7: 0x185f, 0xae8: 0x1022, 0xae9: 0x1032,\n\t0xaea: 0x0716, 0xaeb: 0x1036, 0xaec: 0x071a, 0xaed: 0x071a, 0xaee: 0x104e, 0xaef: 0x1052,\n\t0xaf0: 0x105a, 0xaf1: 0x105e, 0xaf2: 0x106a, 0xaf3: 0x071e, 0xaf4: 0x1082, 0xaf5: 0x1864,\n\t0xaf6: 0x109e, 0xaf7: 0x1869, 0xaf8: 0x10aa, 0xaf9: 0x17ce, 0xafa: 0x10ba, 0xafb: 0x186e,\n\t0xafc: 0x1873, 0xafd: 0x1878, 0xafe: 0x0722, 0xaff: 0x0726,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x10f2, 0xb01: 0x1882, 0xb02: 0x187d, 0xb03: 0x1887, 0xb04: 0x188c, 0xb05: 0x10fa,\n\t0xb06: 0x10fe, 0xb07: 0x10fe, 0xb08: 0x1106, 0xb09: 0x072e, 0xb0a: 0x110a, 0xb0b: 0x0732,\n\t0xb0c: 0x0736, 0xb0d: 0x1896, 0xb0e: 0x111e, 0xb0f: 0x1126, 0xb10: 0x1132, 0xb11: 0x073a,\n\t0xb12: 0x189b, 0xb13: 0x1156, 0xb14: 0x18a0, 0xb15: 0x18a5, 0xb16: 0x1176, 0xb17: 0x118e,\n\t0xb18: 0x073e, 0xb19: 0x1196, 0xb1a: 0x119a, 0xb1b: 0x119e, 0xb1c: 0x18aa, 0xb1d: 0x18af,\n\t0xb1e: 0x18af, 0xb1f: 0x11b6, 0xb20: 0x0742, 0xb21: 0x18b4, 0xb22: 0x11ca, 0xb23: 0x11ce,\n\t0xb24: 0x0746, 0xb25: 0x18b9, 0xb26: 0x11ea, 0xb27: 0x074a, 0xb28: 0x11fa, 0xb29: 0x11f2,\n\t0xb2a: 0x1202, 0xb2b: 0x18c3, 0xb2c: 0x121a, 0xb2d: 0x074e, 0xb2e: 0x1226, 0xb2f: 0x122e,\n\t0xb30: 0x123e, 0xb31: 0x0752, 0xb32: 0x18cd, 0xb33: 0x18d2, 0xb34: 0x0756, 0xb35: 0x18d7,\n\t0xb36: 0x1256, 0xb37: 0x18dc, 0xb38: 0x1262, 0xb39: 0x126e, 0xb3a: 0x1276, 0xb3b: 0x18e1,\n\t0xb3c: 0x18e6, 0xb3d: 0x128a, 0xb3e: 0x18eb, 0xb3f: 0x1292,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x17fb, 0xb41: 0x075a, 0xb42: 0x12aa, 0xb43: 0x12ae, 0xb44: 0x0762, 0xb45: 0x12b2,\n\t0xb46: 0x0b2e, 0xb47: 0x18f0, 0xb48: 0x18f5, 0xb49: 0x1800, 0xb4a: 0x1805, 0xb4b: 0x12d2,\n\t0xb4c: 0x12d6, 0xb4d: 0x14ee, 0xb4e: 0x0766, 0xb4f: 0x1302, 0xb50: 0x12fe, 0xb51: 0x1306,\n\t0xb52: 0x093a, 0xb53: 0x130a, 0xb54: 0x130e, 0xb55: 0x1312, 0xb56: 0x131a, 0xb57: 0x18fa,\n\t0xb58: 0x1316, 0xb59: 0x131e, 0xb5a: 0x1332, 0xb5b: 0x1336, 0xb5c: 0x1322, 0xb5d: 0x133a,\n\t0xb5e: 0x134e, 0xb5f: 0x1362, 0xb60: 0x132e, 0xb61: 0x1342, 0xb62: 0x1346, 0xb63: 0x134a,\n\t0xb64: 0x18ff, 0xb65: 0x1909, 0xb66: 0x1904, 0xb67: 0x076a, 0xb68: 0x136a, 0xb69: 0x136e,\n\t0xb6a: 0x1376, 0xb6b: 0x191d, 0xb6c: 0x137a, 0xb6d: 0x190e, 0xb6e: 0x076e, 0xb6f: 0x0772,\n\t0xb70: 0x1913, 0xb71: 0x1918, 0xb72: 0x0776, 0xb73: 0x139a, 0xb74: 0x139e, 0xb75: 0x13a2,\n\t0xb76: 0x13a6, 0xb77: 0x13b2, 0xb78: 0x13ae, 0xb79: 0x13ba, 0xb7a: 0x13b6, 0xb7b: 0x13c6,\n\t0xb7c: 0x13be, 0xb7d: 0x13c2, 0xb7e: 0x13ca, 0xb7f: 0x077a,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x13d2, 0xb81: 0x13d6, 0xb82: 0x077e, 0xb83: 0x13e6, 0xb84: 0x13ea, 0xb85: 0x1922,\n\t0xb86: 0x13f6, 0xb87: 0x13fa, 0xb88: 0x0782, 0xb89: 0x1406, 0xb8a: 0x06b6, 0xb8b: 0x1927,\n\t0xb8c: 0x192c, 0xb8d: 0x0786, 0xb8e: 0x078a, 0xb8f: 0x1432, 0xb90: 0x144a, 0xb91: 0x1466,\n\t0xb92: 0x1476, 0xb93: 0x1931, 0xb94: 0x148a, 0xb95: 0x148e, 0xb96: 0x14a6, 0xb97: 0x14b2,\n\t0xb98: 0x193b, 0xb99: 0x178d, 0xb9a: 0x14be, 0xb9b: 0x14ba, 0xb9c: 0x14c6, 0xb9d: 0x1792,\n\t0xb9e: 0x14d2, 0xb9f: 0x14de, 0xba0: 0x1940, 0xba1: 0x1945, 0xba2: 0x151e, 0xba3: 0x152a,\n\t0xba4: 0x1532, 0xba5: 0x194a, 0xba6: 0x1536, 0xba7: 0x1562, 0xba8: 0x156e, 0xba9: 0x1572,\n\t0xbaa: 0x156a, 0xbab: 0x157e, 0xbac: 0x1582, 0xbad: 0x194f, 0xbae: 0x158e, 0xbaf: 0x078e,\n\t0xbb0: 0x1596, 0xbb1: 0x1954, 0xbb2: 0x0792, 0xbb3: 0x15ce, 0xbb4: 0x0bbe, 0xbb5: 0x15e6,\n\t0xbb6: 0x1959, 0xbb7: 0x1963, 0xbb8: 0x0796, 0xbb9: 0x079a, 0xbba: 0x160e, 0xbbb: 0x1968,\n\t0xbbc: 0x079e, 0xbbd: 0x196d, 0xbbe: 0x1626, 0xbbf: 0x1626,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x162e, 0xbc1: 0x1972, 0xbc2: 0x1646, 0xbc3: 0x07a2, 0xbc4: 0x1656, 0xbc5: 0x1662,\n\t0xbc6: 0x166a, 0xbc7: 0x1672, 0xbc8: 0x07a6, 0xbc9: 0x1977, 0xbca: 0x1686, 0xbcb: 0x16a2,\n\t0xbcc: 0x16ae, 0xbcd: 0x07aa, 0xbce: 0x07ae, 0xbcf: 0x16b2, 0xbd0: 0x197c, 0xbd1: 0x07b2,\n\t0xbd2: 0x1981, 0xbd3: 0x1986, 0xbd4: 0x198b, 0xbd5: 0x16d6, 0xbd6: 0x07b6, 0xbd7: 0x16ea,\n\t0xbd8: 0x16f2, 0xbd9: 0x16f6, 0xbda: 0x16fe, 0xbdb: 0x1706, 0xbdc: 0x170e, 0xbdd: 0x1995,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x122: 0x3d, 0x123: 0x0d, 0x124: 0x3e, 0x125: 0x3f, 0x126: 0x40, 0x127: 0x41,\n\t0x128: 0x42, 0x129: 0x43, 0x12a: 0x44, 0x12b: 0x45, 0x12c: 0x40, 0x12d: 0x46, 0x12e: 0x47, 0x12f: 0x48,\n\t0x130: 0x44, 0x131: 0x49, 0x132: 0x4a, 0x133: 0x4b, 0x134: 0x4c, 0x135: 0x4d, 0x137: 0x4e,\n\t0x138: 0x4f, 0x139: 0x50, 0x13a: 0x51, 0x13b: 0x52, 0x13c: 0x53, 0x13d: 0x54, 0x13e: 0x55, 0x13f: 0x56,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x57, 0x142: 0x58, 0x144: 0x59, 0x145: 0x5a, 0x146: 0x5b, 0x147: 0x5c,\n\t0x14d: 0x5d,\n\t0x15c: 0x5e, 0x15f: 0x5f,\n\t0x162: 0x60, 0x164: 0x61,\n\t0x168: 0x62, 0x169: 0x63, 0x16a: 0x64, 0x16b: 0x65, 0x16c: 0x0e, 0x16d: 0x66, 0x16e: 0x67, 0x16f: 0x68,\n\t0x170: 0x69, 0x173: 0x6a, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x6b, 0x183: 0x6c, 0x184: 0x6d, 0x186: 0x6e, 0x187: 0x6f,\n\t0x188: 0x70, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x71, 0x18c: 0x72,\n\t0x1ab: 0x73,\n\t0x1b3: 0x74, 0x1b5: 0x75, 0x1b7: 0x76,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x77, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x78, 0x1c5: 0x79,\n\t0x1c9: 0x7a, 0x1cc: 0x7b, 0x1cd: 0x7c,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7d, 0x21a: 0x7e, 0x21b: 0x7f,\n\t0x220: 0x80, 0x223: 0x81, 0x224: 0x82, 0x225: 0x83, 0x226: 0x84, 0x227: 0x85,\n\t0x22a: 0x86, 0x22b: 0x87, 0x22f: 0x88,\n\t0x230: 0x89, 0x231: 0x8a, 0x232: 0x8b, 0x233: 0x8c, 0x234: 0x8d, 0x235: 0x8e, 0x236: 0x8f, 0x237: 0x89,\n\t0x238: 0x8a, 0x239: 0x8b, 0x23a: 0x8c, 0x23b: 0x8d, 0x23c: 0x8e, 0x23d: 0x8f, 0x23e: 0x89, 0x23f: 0x8a,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x8b, 0x241: 0x8c, 0x242: 0x8d, 0x243: 0x8e, 0x244: 0x8f, 0x245: 0x89, 0x246: 0x8a, 0x247: 0x8b,\n\t0x248: 0x8c, 0x249: 0x8d, 0x24a: 0x8e, 0x24b: 0x8f, 0x24c: 0x89, 0x24d: 0x8a, 0x24e: 0x8b, 0x24f: 0x8c,\n\t0x250: 0x8d, 0x251: 0x8e, 0x252: 0x8f, 0x253: 0x89, 0x254: 0x8a, 0x255: 0x8b, 0x256: 0x8c, 0x257: 0x8d,\n\t0x258: 0x8e, 0x259: 0x8f, 0x25a: 0x89, 0x25b: 0x8a, 0x25c: 0x8b, 0x25d: 0x8c, 0x25e: 0x8d, 0x25f: 0x8e,\n\t0x260: 0x8f, 0x261: 0x89, 0x262: 0x8a, 0x263: 0x8b, 0x264: 0x8c, 0x265: 0x8d, 0x266: 0x8e, 0x267: 0x8f,\n\t0x268: 0x89, 0x269: 0x8a, 0x26a: 0x8b, 0x26b: 0x8c, 0x26c: 0x8d, 0x26d: 0x8e, 0x26e: 0x8f, 0x26f: 0x89,\n\t0x270: 0x8a, 0x271: 0x8b, 0x272: 0x8c, 0x273: 0x8d, 0x274: 0x8e, 0x275: 0x8f, 0x276: 0x89, 0x277: 0x8a,\n\t0x278: 0x8b, 0x279: 0x8c, 0x27a: 0x8d, 0x27b: 0x8e, 0x27c: 0x8f, 0x27d: 0x89, 0x27e: 0x8a, 0x27f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8c, 0x281: 0x8d, 0x282: 0x8e, 0x283: 0x8f, 0x284: 0x89, 0x285: 0x8a, 0x286: 0x8b, 0x287: 0x8c,\n\t0x288: 0x8d, 0x289: 0x8e, 0x28a: 0x8f, 0x28b: 0x89, 0x28c: 0x8a, 0x28d: 0x8b, 0x28e: 0x8c, 0x28f: 0x8d,\n\t0x290: 0x8e, 0x291: 0x8f, 0x292: 0x89, 0x293: 0x8a, 0x294: 0x8b, 0x295: 0x8c, 0x296: 0x8d, 0x297: 0x8e,\n\t0x298: 0x8f, 0x299: 0x89, 0x29a: 0x8a, 0x29b: 0x8b, 0x29c: 0x8c, 0x29d: 0x8d, 0x29e: 0x8e, 0x29f: 0x8f,\n\t0x2a0: 0x89, 0x2a1: 0x8a, 0x2a2: 0x8b, 0x2a3: 0x8c, 0x2a4: 0x8d, 0x2a5: 0x8e, 0x2a6: 0x8f, 0x2a7: 0x89,\n\t0x2a8: 0x8a, 0x2a9: 0x8b, 0x2aa: 0x8c, 0x2ab: 0x8d, 0x2ac: 0x8e, 0x2ad: 0x8f, 0x2ae: 0x89, 0x2af: 0x8a,\n\t0x2b0: 0x8b, 0x2b1: 0x8c, 0x2b2: 0x8d, 0x2b3: 0x8e, 0x2b4: 0x8f, 0x2b5: 0x89, 0x2b6: 0x8a, 0x2b7: 0x8b,\n\t0x2b8: 0x8c, 0x2b9: 0x8d, 0x2ba: 0x8e, 0x2bb: 0x8f, 0x2bc: 0x89, 0x2bd: 0x8a, 0x2be: 0x8b, 0x2bf: 0x8c,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8d, 0x2c1: 0x8e, 0x2c2: 0x8f, 0x2c3: 0x89, 0x2c4: 0x8a, 0x2c5: 0x8b, 0x2c6: 0x8c, 0x2c7: 0x8d,\n\t0x2c8: 0x8e, 0x2c9: 0x8f, 0x2ca: 0x89, 0x2cb: 0x8a, 0x2cc: 0x8b, 0x2cd: 0x8c, 0x2ce: 0x8d, 0x2cf: 0x8e,\n\t0x2d0: 0x8f, 0x2d1: 0x89, 0x2d2: 0x8a, 0x2d3: 0x8b, 0x2d4: 0x8c, 0x2d5: 0x8d, 0x2d6: 0x8e, 0x2d7: 0x8f,\n\t0x2d8: 0x89, 0x2d9: 0x8a, 0x2da: 0x8b, 0x2db: 0x8c, 0x2dc: 0x8d, 0x2dd: 0x8e, 0x2de: 0x90,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x91, 0x32d: 0x92, 0x32e: 0x93,\n\t0x331: 0x94, 0x332: 0x95, 0x333: 0x96, 0x334: 0x97,\n\t0x338: 0x98, 0x339: 0x99, 0x33a: 0x9a, 0x33b: 0x9b, 0x33e: 0x9c, 0x33f: 0x9d,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9e,\n\t0x34b: 0x9f, 0x34d: 0xa0,\n\t0x368: 0xa1, 0x36b: 0xa2,\n\t0x374: 0xa3,\n\t0x37a: 0xa4, 0x37b: 0xa5, 0x37d: 0xa6, 0x37e: 0xa7,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa8, 0x382: 0xa9, 0x384: 0xaa, 0x385: 0x84, 0x387: 0xab,\n\t0x388: 0xac, 0x38b: 0xad, 0x38c: 0xae, 0x38d: 0xaf,\n\t0x391: 0xb0, 0x392: 0xb1, 0x393: 0xb2, 0x396: 0xb3, 0x397: 0xb4,\n\t0x398: 0x75, 0x39a: 0xb5, 0x39c: 0xb6,\n\t0x3a0: 0xb7, 0x3a4: 0xb8, 0x3a5: 0xb9, 0x3a7: 0xba,\n\t0x3a8: 0xbb, 0x3a9: 0xbc, 0x3aa: 0xbd,\n\t0x3b0: 0x75, 0x3b5: 0xbe, 0x3b6: 0xbf,\n\t0x3bd: 0xc0,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xc1, 0x3ec: 0xc2,\n\t0x3ff: 0xc3,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xc4,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xc5, 0x446: 0xc6, 0x447: 0xc7,\n\t0x449: 0xc8,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc9, 0x482: 0xca, 0x484: 0xc2,\n\t0x48a: 0xcb, 0x48b: 0xcc,\n\t0x493: 0xcd,\n\t0x4a3: 0xce, 0x4a5: 0xcf,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xd0,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 163 entries, 326 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x6e, 0x76, 0x7d, 0x80, 0x88, 0x8c, 0x90, 0x92, 0x94, 0x9d, 0xa1, 0xa8, 0xad, 0xb0, 0xba, 0xbd, 0xc4, 0xcc, 0xcf, 0xd1, 0xd4, 0xd6, 0xdb, 0xec, 0xf8, 0xfa, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10a, 0x10c, 0x10f, 0x112, 0x114, 0x117, 0x11a, 0x11e, 0x124, 0x12b, 0x134, 0x136, 0x139, 0x13b, 0x146, 0x14a, 0x158, 0x15b, 0x161, 0x167, 0x172, 0x176, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x186, 0x18a, 0x18c, 0x18e, 0x196, 0x19a, 0x19d, 0x19f, 0x1a1, 0x1a4, 0x1a7, 0x1a9, 0x1ab, 0x1ad, 0x1af, 0x1b5, 0x1b8, 0x1ba, 0x1c1, 0x1c7, 0x1cd, 0x1d5, 0x1db, 0x1e1, 0x1e7, 0x1eb, 0x1f9, 0x202, 0x205, 0x208, 0x20a, 0x20d, 0x20f, 0x213, 0x218, 0x21a, 0x21c, 0x221, 0x227, 0x229, 0x22b, 0x22d, 0x233, 0x236, 0x238, 0x23a, 0x23c, 0x242, 0x246, 0x24a, 0x252, 0x259, 0x25c, 0x25f, 0x261, 0x264, 0x26c, 0x270, 0x277, 0x27a, 0x280, 0x282, 0x285, 0x287, 0x28a, 0x28f, 0x291, 0x293, 0x295, 0x297, 0x299, 0x29c, 0x29e, 0x2a0, 0x2a2, 0x2a4, 0x2a6, 0x2a8, 0x2b5, 0x2bf, 0x2c1, 0x2c3, 0x2c9, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d5, 0x2d8}\n\n// nfcSparseValues: 730 entries, 2920 bytes\nvar nfcSparseValues = [730]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x4823, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4855, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4981, lo: 0x8a, hi: 0x8a},\n\t{value: 0x499f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3808, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3820, lo: 0x8d, hi: 0x8d},\n\t{value: 0x49b7, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x383e, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x38e6, lo: 0x90, hi: 0x90},\n\t{value: 0x38f2, lo: 0x91, hi: 0x91},\n\t{value: 0x38e0, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3958, lo: 0x97, hi: 0x97},\n\t{value: 0x3922, lo: 0x9c, hi: 0x9c},\n\t{value: 0x390a, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3934, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x395e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3964, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3982, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3988, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3994, lo: 0xa4, hi: 0xa4},\n\t{value: 0x398e, lo: 0xa5, hi: 0xa5},\n\t{value: 0x399a, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x39ac, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x39a0, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x39a6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0x98, hi: 0x98},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t{value: 0x8133, lo: 0x9c, hi: 0x9f},\n\t// Block 0x10, offset 0x6e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x4019, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x4021, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4029, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x76\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x465d, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x7d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x80\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2dd5, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x469d, lo: 0x9c, hi: 0x9d},\n\t{value: 0x46ad, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x46d5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x46dd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x46b5, lo: 0x99, hi: 0x9b},\n\t{value: 0x46cd, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x90\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x92\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x94\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ded, lo: 0x88, hi: 0x88},\n\t{value: 0x2de5, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2df5, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x46e5, lo: 0x9c, hi: 0x9c},\n\t{value: 0x46ed, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2dfd, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xa1\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e05, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e15, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e0d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xa8\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x4031, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xb0\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2e1d, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2e25, lo: 0x87, hi: 0x87},\n\t{value: 0x2e2d, lo: 0x88, hi: 0x88},\n\t{value: 0x3091, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2f19, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xbd\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e45, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e3d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xc4\n\t{value: 0x6ab3, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4039, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3099, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2f24, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2e4d, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xcc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xcf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xd1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x24, offset 0xd4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xd6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xdb\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2774, lo: 0x83, hi: 0x83},\n\t{value: 0x277b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2782, lo: 0x92, hi: 0x92},\n\t{value: 0x2789, lo: 0x97, hi: 0x97},\n\t{value: 0x2790, lo: 0x9c, hi: 0x9c},\n\t{value: 0x276d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4bc5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4bce, lo: 0xb5, hi: 0xb5},\n\t{value: 0x46f5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x46fd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xec\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4bd7, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x279e, lo: 0x93, hi: 0x93},\n\t{value: 0x27a5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x27ac, lo: 0xa2, hi: 0xa2},\n\t{value: 0x27b3, lo: 0xa7, hi: 0xa7},\n\t{value: 0x27ba, lo: 0xac, hi: 0xac},\n\t{value: 0x2797, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0xf8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0xfa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2e55, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x108\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x10a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x10c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x95},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x10f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x114\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x117\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x11e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x37, offset 0x124\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8133, lo: 0x8b, hi: 0x8e},\n\t// Block 0x38, offset 0x12b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2e9d, lo: 0x80, hi: 0x80},\n\t{value: 0x2ea5, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2ead, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x39, offset 0x134\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x3a, offset 0x136\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3b, offset 0x139\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3c, offset 0x13b\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3d, offset 0x146\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x052a, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x14a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3f, offset 0x158\n\t{value: 0x43bc, lo: 0x02},\n\t{value: 0x023c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x40, offset 0x15b\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3cfa, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3d08, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x161\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3d0f, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3d16, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x167\n\t{value: 0x62c7, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3d24, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3d2b, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3d32, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3d39, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3d40, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x172\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3da9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3dd3, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3dfd, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x176\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x0586, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x178\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x461e, lo: 0x9c, hi: 0x9c},\n\t// Block 0x46, offset 0x17a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x47, offset 0x17c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x48, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x49, offset 0x180\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xaf},\n\t// Block 0x4a, offset 0x186\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4be0, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4be0, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4be0, lo: 0xba, hi: 0xbf},\n\t// Block 0x4b, offset 0x18a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4be0, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4c, offset 0x18c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4d, offset 0x18e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4e, offset 0x196\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4f, offset 0x19a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x50, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x51, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x52, offset 0x1a1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x53, offset 0x1a4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x54, offset 0x1a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x55, offset 0x1a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x56, offset 0x1ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x57, offset 0x1ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x58, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x59, offset 0x1b5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5a, offset 0x1b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x5b, offset 0x1ba\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x60, offset 0x1db\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x61, offset 0x1e1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x62, offset 0x1e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x63, offset 0x1eb\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x44d1, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8116, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4543, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4531, lo: 0xaa, hi: 0xab},\n\t{value: 0x4635, lo: 0xac, hi: 0xac},\n\t{value: 0x463d, lo: 0xad, hi: 0xad},\n\t{value: 0x4489, lo: 0xae, hi: 0xb1},\n\t{value: 0x44a7, lo: 0xb2, hi: 0xb4},\n\t{value: 0x44bf, lo: 0xb5, hi: 0xb6},\n\t{value: 0x44cb, lo: 0xb8, hi: 0xb8},\n\t{value: 0x44d7, lo: 0xb9, hi: 0xbb},\n\t{value: 0x44ef, lo: 0xbc, hi: 0xbc},\n\t{value: 0x44f5, lo: 0xbe, hi: 0xbe},\n\t// Block 0x64, offset 0x1f9\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x44fb, lo: 0x80, hi: 0x81},\n\t{value: 0x4507, lo: 0x83, hi: 0x84},\n\t{value: 0x4519, lo: 0x86, hi: 0x89},\n\t{value: 0x453d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x44b9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x44a1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x44e9, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4513, lo: 0x8e, hi: 0x8e},\n\t// Block 0x65, offset 0x202\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x66, offset 0x205\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x67, offset 0x208\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x68, offset 0x20a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x69, offset 0x20d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x6a, offset 0x20f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812e, lo: 0xa7, hi: 0xad},\n\t{value: 0x8133, lo: 0xae, hi: 0xaf},\n\t// Block 0x6b, offset 0x213\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6c, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6d, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6e, offset 0x21c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4be0, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4be0, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4be0, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4be0, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6f, offset 0x221\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4be0, lo: 0x82, hi: 0x87},\n\t{value: 0x4be0, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4be0, lo: 0x92, hi: 0x97},\n\t{value: 0x4be0, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x70, offset 0x227\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x71, offset 0x229\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x72, offset 0x22b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x73, offset 0x22d\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x233\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x75, offset 0x236\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x76, offset 0x238\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x77, offset 0x23a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbf},\n\t// Block 0x78, offset 0x23c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x79, offset 0x242\n\t{value: 0x0005, lo: 0x03},\n\t{value: 0x8133, lo: 0x82, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t// Block 0x7a, offset 0x246\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7b, offset 0x24a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4379, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4383, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x438d, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x7c, offset 0x252\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2eb5, lo: 0xae, hi: 0xae},\n\t{value: 0x2ebf, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x7d, offset 0x259\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7e, offset 0x25c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7f, offset 0x25f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x80, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x81, offset 0x264\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ec9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ed3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x82, offset 0x26c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x83, offset 0x270\n\t{value: 0x6a23, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2ee7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2edd, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2ef1, lo: 0xbe, hi: 0xbe},\n\t// Block 0x84, offset 0x277\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x85, offset 0x27a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2efb, lo: 0xba, hi: 0xba},\n\t{value: 0x2f05, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x86, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x87, offset 0x282\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x88, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x89, offset 0x287\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x8a, offset 0x28a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2f0f, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x8b, offset 0x28f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x8c, offset 0x291\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8d, offset 0x293\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8e, offset 0x295\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8f, offset 0x297\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x90, offset 0x299\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x91, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x92, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x81, hi: 0x82},\n\t// Block 0x93, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x94, offset 0x2a2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x95, offset 0x2a4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x96, offset 0x2a6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x97, offset 0x2a8\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x470d, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4717, lo: 0x9f, hi: 0x9f},\n\t{value: 0x474b, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4759, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4767, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4775, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4783, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x98, offset 0x2b5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x4721, lo: 0xbb, hi: 0xbb},\n\t{value: 0x472b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4791, lo: 0xbd, hi: 0xbd},\n\t{value: 0x47ad, lo: 0xbe, hi: 0xbe},\n\t{value: 0x479f, lo: 0xbf, hi: 0xbf},\n\t// Block 0x99, offset 0x2bf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x47bb, lo: 0x80, hi: 0x80},\n\t// Block 0x9a, offset 0x2c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x9b, offset 0x2c3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9c, offset 0x2c9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t// Block 0x9d, offset 0x2cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xae, hi: 0xae},\n\t// Block 0x9e, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0x9f, offset 0x2cf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8134, lo: 0xac, hi: 0xad},\n\t{value: 0x812e, lo: 0xae, hi: 0xae},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t// Block 0xa0, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xa1, offset 0x2d5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa2, offset 0x2d8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 19260 bytes (18.81 KiB). Checksum: 1a0bbc4c8c24da49.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 95:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 95\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 97 blocks, 6208 entries, 12416 bytes\n// The third block is the zero block.\nvar nfkcValues = [6208]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,\n\t0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,\n\t0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,\n\t0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,\n\t0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,\n\t0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,\n\t0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,\n\t0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,\n\t0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,\n\t0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,\n\t0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,\n\t0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,\n\t0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,\n\t0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,\n\t0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,\n\t0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,\n\t0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,\n\t0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,\n\t0x130: 0x31cd, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x31f5, 0x135: 0x3501,\n\t0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,\n\t0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529, 0x13f: 0x1cdc,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1d64, 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,\n\t0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560, 0x149: 0x1d8c,\n\t0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,\n\t0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,\n\t0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,\n\t0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,\n\t0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,\n\t0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,\n\t0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,\n\t0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,\n\t0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2f2f, 0x185: 0x2f35,\n\t0x186: 0x2f3b, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba,\n\t0x18c: 0x1b6e, 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,\n\t0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,\n\t0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,\n\t0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,\n\t0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,\n\t0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,\n\t0x1b0: 0x3506, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x3169, 0x1b5: 0x3475,\n\t0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,\n\t0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,\n\t0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,\n\t0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,\n\t0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,\n\t0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,\n\t0x1de: 0x319b, 0x1df: 0x34a7,\n\t0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,\n\t0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,\n\t0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x01ee,\n\t0x27a: 0x43e6,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x439b, 0x285: 0x45bc,\n\t0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,\n\t0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,\n\t0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4981, 0x2cb: 0x499f,\n\t0x2cc: 0x3808, 0x2cd: 0x3820, 0x2ce: 0x49b7, 0x2d0: 0x0242, 0x2d1: 0x0254,\n\t0x2d2: 0x0230, 0x2d3: 0x444d, 0x2d4: 0x4453, 0x2d5: 0x027e, 0x2d6: 0x026c,\n\t0x2f0: 0x025a, 0x2f1: 0x026f, 0x2f2: 0x0272, 0x2f4: 0x020c, 0x2f5: 0x024b,\n\t0x2f9: 0x022a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3862, 0x301: 0x386e, 0x303: 0x385c,\n\t0x306: 0xa000, 0x307: 0x384a,\n\t0x30c: 0x389e, 0x30d: 0x3886, 0x30e: 0x38b0, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3892, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3916, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3874, 0x342: 0x38f8,\n\t0x350: 0x3850, 0x351: 0x38d4,\n\t0x352: 0x3856, 0x353: 0x38da, 0x356: 0x3868, 0x357: 0x38ec,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x396a, 0x35b: 0x3970, 0x35c: 0x387a, 0x35d: 0x38fe,\n\t0x35e: 0x3880, 0x35f: 0x3904, 0x362: 0x388c, 0x363: 0x3910,\n\t0x364: 0x3898, 0x365: 0x391c, 0x366: 0x38a4, 0x367: 0x3928, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3976, 0x36b: 0x397c, 0x36c: 0x38ce, 0x36d: 0x3952, 0x36e: 0x38aa, 0x36f: 0x392e,\n\t0x370: 0x38b6, 0x371: 0x393a, 0x372: 0x38bc, 0x373: 0x3940, 0x374: 0x38c2, 0x375: 0x3946,\n\t0x378: 0x38c8, 0x379: 0x394c,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1e91,\n\t0x391: 0x812e,\n\t0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e,\n\t0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133,\n\t0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133,\n\t0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b,\n\t0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110,\n\t0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117,\n\t0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d,\n\t0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x812e,\n\t0x3f0: 0x811f, 0x3f5: 0x1eb4,\n\t0x3f6: 0x2143, 0x3f7: 0x217f, 0x3f8: 0x217a,\n\t// Block 0x10, offset 0x400\n\t0x40a: 0x8133, 0x40b: 0x8133,\n\t0x40c: 0x8133, 0x40d: 0x8133, 0x40e: 0x8133, 0x40f: 0x812e, 0x410: 0x812e, 0x411: 0x812e,\n\t0x412: 0x812e, 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,\n\t0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133,\n\t0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e,\n\t0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e,\n\t0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e,\n\t0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133,\n\t0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133,\n\t0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2e5d, 0x447: 0xa000, 0x448: 0x2e65, 0x449: 0xa000, 0x44a: 0x2e6d, 0x44b: 0xa000,\n\t0x44c: 0x2e75, 0x44d: 0xa000, 0x44e: 0x2e7d, 0x451: 0xa000,\n\t0x452: 0x2e85,\n\t0x474: 0x8103, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2e8d,\n\t0x47c: 0xa000, 0x47d: 0x2e95, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x0104, 0x485: 0x0107,\n\t0x486: 0x0506, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x011f, 0x48b: 0x0122,\n\t0x48c: 0x0125, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e6,\n\t0x492: 0x009f, 0x493: 0x0110, 0x494: 0x050a, 0x495: 0x050e, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0516, 0x49a: 0x015b, 0x49b: 0x00ad, 0x49c: 0x051a, 0x49d: 0x0242,\n\t0x49e: 0x0245, 0x49f: 0x0248, 0x4a0: 0x027e, 0x4a1: 0x0281, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x0242, 0x4a7: 0x0245, 0x4a8: 0x026f, 0x4a9: 0x027e,\n\t0x4aa: 0x0281,\n\t0x4b8: 0x02b4,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x010a, 0x4dc: 0x0087, 0x4dd: 0x0113,\n\t0x4de: 0x00d7, 0x4df: 0x0125, 0x4e0: 0x008d, 0x4e1: 0x012b, 0x4e2: 0x0131, 0x4e3: 0x013d,\n\t0x4e4: 0x0146, 0x4e5: 0x0149, 0x4e6: 0x014c, 0x4e7: 0x051e, 0x4e8: 0x01c7, 0x4e9: 0x0155,\n\t0x4ea: 0x0522, 0x4eb: 0x01ca, 0x4ec: 0x0161, 0x4ed: 0x015e, 0x4ee: 0x0164, 0x4ef: 0x0167,\n\t0x4f0: 0x016a, 0x4f1: 0x016d, 0x4f2: 0x0176, 0x4f3: 0x018e, 0x4f4: 0x0191, 0x4f5: 0x00f2,\n\t0x4f6: 0x019a, 0x4f7: 0x019d, 0x4f8: 0x0512, 0x4f9: 0x01a0, 0x4fa: 0x01a3, 0x4fb: 0x00b5,\n\t0x4fc: 0x01af, 0x4fd: 0x01b2, 0x4fe: 0x01b5, 0x4ff: 0x0254,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133,\n\t0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133,\n\t0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133,\n\t0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133,\n\t0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133,\n\t0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133,\n\t0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133,\n\t0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133,\n\t0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133,\n\t0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53a: 0x812d, 0x53b: 0x8133,\n\t0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x30d8, 0x541: 0x33e4, 0x542: 0x30e2, 0x543: 0x33ee, 0x544: 0x30e7, 0x545: 0x33f3,\n\t0x546: 0x30ec, 0x547: 0x33f8, 0x548: 0x3a0d, 0x549: 0x3b9c, 0x54a: 0x3105, 0x54b: 0x3411,\n\t0x54c: 0x310f, 0x54d: 0x341b, 0x54e: 0x311e, 0x54f: 0x342a, 0x550: 0x3114, 0x551: 0x3420,\n\t0x552: 0x3119, 0x553: 0x3425, 0x554: 0x3a30, 0x555: 0x3bbf, 0x556: 0x3a37, 0x557: 0x3bc6,\n\t0x558: 0x315a, 0x559: 0x3466, 0x55a: 0x315f, 0x55b: 0x346b, 0x55c: 0x3a45, 0x55d: 0x3bd4,\n\t0x55e: 0x3164, 0x55f: 0x3470, 0x560: 0x3173, 0x561: 0x347f, 0x562: 0x3191, 0x563: 0x349d,\n\t0x564: 0x31a0, 0x565: 0x34ac, 0x566: 0x3196, 0x567: 0x34a2, 0x568: 0x31a5, 0x569: 0x34b1,\n\t0x56a: 0x31aa, 0x56b: 0x34b6, 0x56c: 0x31f0, 0x56d: 0x34fc, 0x56e: 0x3a4c, 0x56f: 0x3bdb,\n\t0x570: 0x31fa, 0x571: 0x350b, 0x572: 0x3204, 0x573: 0x3515, 0x574: 0x320e, 0x575: 0x351f,\n\t0x576: 0x4805, 0x577: 0x4896, 0x578: 0x3a53, 0x579: 0x3be2, 0x57a: 0x3227, 0x57b: 0x3538,\n\t0x57c: 0x3222, 0x57d: 0x3533, 0x57e: 0x322c, 0x57f: 0x353d,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3231, 0x581: 0x3542, 0x582: 0x3236, 0x583: 0x3547, 0x584: 0x324a, 0x585: 0x355b,\n\t0x586: 0x3254, 0x587: 0x3565, 0x588: 0x3263, 0x589: 0x3574, 0x58a: 0x325e, 0x58b: 0x356f,\n\t0x58c: 0x3a76, 0x58d: 0x3c05, 0x58e: 0x3a84, 0x58f: 0x3c13, 0x590: 0x3a8b, 0x591: 0x3c1a,\n\t0x592: 0x3a92, 0x593: 0x3c21, 0x594: 0x3290, 0x595: 0x35a1, 0x596: 0x3295, 0x597: 0x35a6,\n\t0x598: 0x329f, 0x599: 0x35b0, 0x59a: 0x4832, 0x59b: 0x48c3, 0x59c: 0x3ad8, 0x59d: 0x3c67,\n\t0x59e: 0x32b8, 0x59f: 0x35c9, 0x5a0: 0x32c2, 0x5a1: 0x35d3, 0x5a2: 0x4841, 0x5a3: 0x48d2,\n\t0x5a4: 0x3adf, 0x5a5: 0x3c6e, 0x5a6: 0x3ae6, 0x5a7: 0x3c75, 0x5a8: 0x3aed, 0x5a9: 0x3c7c,\n\t0x5aa: 0x32d1, 0x5ab: 0x35e2, 0x5ac: 0x32db, 0x5ad: 0x35f1, 0x5ae: 0x32ef, 0x5af: 0x3605,\n\t0x5b0: 0x32ea, 0x5b1: 0x3600, 0x5b2: 0x332b, 0x5b3: 0x3641, 0x5b4: 0x333a, 0x5b5: 0x3650,\n\t0x5b6: 0x3335, 0x5b7: 0x364b, 0x5b8: 0x3af4, 0x5b9: 0x3c83, 0x5ba: 0x3afb, 0x5bb: 0x3c8a,\n\t0x5bc: 0x333f, 0x5bd: 0x3655, 0x5be: 0x3344, 0x5bf: 0x365a,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3349, 0x5c1: 0x365f, 0x5c2: 0x334e, 0x5c3: 0x3664, 0x5c4: 0x335d, 0x5c5: 0x3673,\n\t0x5c6: 0x3358, 0x5c7: 0x366e, 0x5c8: 0x3362, 0x5c9: 0x367d, 0x5ca: 0x3367, 0x5cb: 0x3682,\n\t0x5cc: 0x336c, 0x5cd: 0x3687, 0x5ce: 0x338a, 0x5cf: 0x36a5, 0x5d0: 0x33a3, 0x5d1: 0x36c3,\n\t0x5d2: 0x33b2, 0x5d3: 0x36d2, 0x5d4: 0x33b7, 0x5d5: 0x36d7, 0x5d6: 0x34bb, 0x5d7: 0x35e7,\n\t0x5d8: 0x3678, 0x5d9: 0x36b4, 0x5da: 0x1d10, 0x5db: 0x4418,\n\t0x5e0: 0x47e2, 0x5e1: 0x4873, 0x5e2: 0x30c4, 0x5e3: 0x33d0,\n\t0x5e4: 0x39b9, 0x5e5: 0x3b48, 0x5e6: 0x39b2, 0x5e7: 0x3b41, 0x5e8: 0x39c7, 0x5e9: 0x3b56,\n\t0x5ea: 0x39c0, 0x5eb: 0x3b4f, 0x5ec: 0x39ff, 0x5ed: 0x3b8e, 0x5ee: 0x39d5, 0x5ef: 0x3b64,\n\t0x5f0: 0x39ce, 0x5f1: 0x3b5d, 0x5f2: 0x39e3, 0x5f3: 0x3b72, 0x5f4: 0x39dc, 0x5f5: 0x3b6b,\n\t0x5f6: 0x3a06, 0x5f7: 0x3b95, 0x5f8: 0x47f6, 0x5f9: 0x4887, 0x5fa: 0x3141, 0x5fb: 0x344d,\n\t0x5fc: 0x312d, 0x5fd: 0x3439, 0x5fe: 0x3a1b, 0x5ff: 0x3baa,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3a14, 0x601: 0x3ba3, 0x602: 0x3a29, 0x603: 0x3bb8, 0x604: 0x3a22, 0x605: 0x3bb1,\n\t0x606: 0x3a3e, 0x607: 0x3bcd, 0x608: 0x31d2, 0x609: 0x34de, 0x60a: 0x31e6, 0x60b: 0x34f2,\n\t0x60c: 0x4828, 0x60d: 0x48b9, 0x60e: 0x3277, 0x60f: 0x3588, 0x610: 0x3a61, 0x611: 0x3bf0,\n\t0x612: 0x3a5a, 0x613: 0x3be9, 0x614: 0x3a6f, 0x615: 0x3bfe, 0x616: 0x3a68, 0x617: 0x3bf7,\n\t0x618: 0x3aca, 0x619: 0x3c59, 0x61a: 0x3aae, 0x61b: 0x3c3d, 0x61c: 0x3aa7, 0x61d: 0x3c36,\n\t0x61e: 0x3abc, 0x61f: 0x3c4b, 0x620: 0x3ab5, 0x621: 0x3c44, 0x622: 0x3ac3, 0x623: 0x3c52,\n\t0x624: 0x3326, 0x625: 0x363c, 0x626: 0x3308, 0x627: 0x361e, 0x628: 0x3b25, 0x629: 0x3cb4,\n\t0x62a: 0x3b1e, 0x62b: 0x3cad, 0x62c: 0x3b33, 0x62d: 0x3cc2, 0x62e: 0x3b2c, 0x62f: 0x3cbb,\n\t0x630: 0x3b3a, 0x631: 0x3cc9, 0x632: 0x3371, 0x633: 0x368c, 0x634: 0x3399, 0x635: 0x36b9,\n\t0x636: 0x3394, 0x637: 0x36af, 0x638: 0x3380, 0x639: 0x369b,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4945, 0x641: 0x494b, 0x642: 0x4a5f, 0x643: 0x4a77, 0x644: 0x4a67, 0x645: 0x4a7f,\n\t0x646: 0x4a6f, 0x647: 0x4a87, 0x648: 0x48eb, 0x649: 0x48f1, 0x64a: 0x49cf, 0x64b: 0x49e7,\n\t0x64c: 0x49d7, 0x64d: 0x49ef, 0x64e: 0x49df, 0x64f: 0x49f7, 0x650: 0x4957, 0x651: 0x495d,\n\t0x652: 0x3ef9, 0x653: 0x3f09, 0x654: 0x3f01, 0x655: 0x3f11,\n\t0x658: 0x48f7, 0x659: 0x48fd, 0x65a: 0x3e29, 0x65b: 0x3e39, 0x65c: 0x3e31, 0x65d: 0x3e41,\n\t0x660: 0x496f, 0x661: 0x4975, 0x662: 0x4a8f, 0x663: 0x4aa7,\n\t0x664: 0x4a97, 0x665: 0x4aaf, 0x666: 0x4a9f, 0x667: 0x4ab7, 0x668: 0x4903, 0x669: 0x4909,\n\t0x66a: 0x49ff, 0x66b: 0x4a17, 0x66c: 0x4a07, 0x66d: 0x4a1f, 0x66e: 0x4a0f, 0x66f: 0x4a27,\n\t0x670: 0x4987, 0x671: 0x498d, 0x672: 0x3f59, 0x673: 0x3f71, 0x674: 0x3f61, 0x675: 0x3f79,\n\t0x676: 0x3f69, 0x677: 0x3f81, 0x678: 0x490f, 0x679: 0x4915, 0x67a: 0x3e59, 0x67b: 0x3e71,\n\t0x67c: 0x3e61, 0x67d: 0x3e79, 0x67e: 0x3e69, 0x67f: 0x3e81,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4993, 0x681: 0x4999, 0x682: 0x3f89, 0x683: 0x3f99, 0x684: 0x3f91, 0x685: 0x3fa1,\n\t0x688: 0x491b, 0x689: 0x4921, 0x68a: 0x3e89, 0x68b: 0x3e99,\n\t0x68c: 0x3e91, 0x68d: 0x3ea1, 0x690: 0x49a5, 0x691: 0x49ab,\n\t0x692: 0x3fc1, 0x693: 0x3fd9, 0x694: 0x3fc9, 0x695: 0x3fe1, 0x696: 0x3fd1, 0x697: 0x3fe9,\n\t0x699: 0x4927, 0x69b: 0x3ea9, 0x69d: 0x3eb1,\n\t0x69f: 0x3eb9, 0x6a0: 0x49bd, 0x6a1: 0x49c3, 0x6a2: 0x4abf, 0x6a3: 0x4ad7,\n\t0x6a4: 0x4ac7, 0x6a5: 0x4adf, 0x6a6: 0x4acf, 0x6a7: 0x4ae7, 0x6a8: 0x492d, 0x6a9: 0x4933,\n\t0x6aa: 0x4a2f, 0x6ab: 0x4a47, 0x6ac: 0x4a37, 0x6ad: 0x4a4f, 0x6ae: 0x4a3f, 0x6af: 0x4a57,\n\t0x6b0: 0x4939, 0x6b1: 0x445f, 0x6b2: 0x37d2, 0x6b3: 0x4465, 0x6b4: 0x4963, 0x6b5: 0x446b,\n\t0x6b6: 0x37e4, 0x6b7: 0x4471, 0x6b8: 0x3802, 0x6b9: 0x4477, 0x6ba: 0x381a, 0x6bb: 0x447d,\n\t0x6bc: 0x49b1, 0x6bd: 0x4483,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3ee1, 0x6c1: 0x3ee9, 0x6c2: 0x42c5, 0x6c3: 0x42e3, 0x6c4: 0x42cf, 0x6c5: 0x42ed,\n\t0x6c6: 0x42d9, 0x6c7: 0x42f7, 0x6c8: 0x3e19, 0x6c9: 0x3e21, 0x6ca: 0x4211, 0x6cb: 0x422f,\n\t0x6cc: 0x421b, 0x6cd: 0x4239, 0x6ce: 0x4225, 0x6cf: 0x4243, 0x6d0: 0x3f29, 0x6d1: 0x3f31,\n\t0x6d2: 0x4301, 0x6d3: 0x431f, 0x6d4: 0x430b, 0x6d5: 0x4329, 0x6d6: 0x4315, 0x6d7: 0x4333,\n\t0x6d8: 0x3e49, 0x6d9: 0x3e51, 0x6da: 0x424d, 0x6db: 0x426b, 0x6dc: 0x4257, 0x6dd: 0x4275,\n\t0x6de: 0x4261, 0x6df: 0x427f, 0x6e0: 0x4001, 0x6e1: 0x4009, 0x6e2: 0x433d, 0x6e3: 0x435b,\n\t0x6e4: 0x4347, 0x6e5: 0x4365, 0x6e6: 0x4351, 0x6e7: 0x436f, 0x6e8: 0x3ec1, 0x6e9: 0x3ec9,\n\t0x6ea: 0x4289, 0x6eb: 0x42a7, 0x6ec: 0x4293, 0x6ed: 0x42b1, 0x6ee: 0x429d, 0x6ef: 0x42bb,\n\t0x6f0: 0x37c6, 0x6f1: 0x37c0, 0x6f2: 0x3ed1, 0x6f3: 0x37cc, 0x6f4: 0x3ed9,\n\t0x6f6: 0x4951, 0x6f7: 0x3ef1, 0x6f8: 0x3736, 0x6f9: 0x3730, 0x6fa: 0x3724, 0x6fb: 0x442f,\n\t0x6fc: 0x373c, 0x6fd: 0x43c8, 0x6fe: 0x0257, 0x6ff: 0x43c8,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x43e1, 0x701: 0x45c3, 0x702: 0x3f19, 0x703: 0x37de, 0x704: 0x3f21,\n\t0x706: 0x497b, 0x707: 0x3f39, 0x708: 0x3742, 0x709: 0x4435, 0x70a: 0x374e, 0x70b: 0x443b,\n\t0x70c: 0x375a, 0x70d: 0x45ca, 0x70e: 0x45d1, 0x70f: 0x45d8, 0x710: 0x37f6, 0x711: 0x37f0,\n\t0x712: 0x3f41, 0x713: 0x4625, 0x716: 0x37fc, 0x717: 0x3f51,\n\t0x718: 0x3772, 0x719: 0x376c, 0x71a: 0x3760, 0x71b: 0x4441, 0x71d: 0x45df,\n\t0x71e: 0x45e6, 0x71f: 0x45ed, 0x720: 0x382c, 0x721: 0x3826, 0x722: 0x3fa9, 0x723: 0x462d,\n\t0x724: 0x380e, 0x725: 0x3814, 0x726: 0x3832, 0x727: 0x3fb9, 0x728: 0x37a2, 0x729: 0x379c,\n\t0x72a: 0x3790, 0x72b: 0x444d, 0x72c: 0x378a, 0x72d: 0x45b5, 0x72e: 0x45bc, 0x72f: 0x0081,\n\t0x732: 0x3ff1, 0x733: 0x3838, 0x734: 0x3ff9,\n\t0x736: 0x49c9, 0x737: 0x4011, 0x738: 0x377e, 0x739: 0x4447, 0x73a: 0x37ae, 0x73b: 0x4459,\n\t0x73c: 0x37ba, 0x73d: 0x439b, 0x73e: 0x43cd,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1d08, 0x741: 0x1d0c, 0x742: 0x0047, 0x743: 0x1d84, 0x745: 0x1d18,\n\t0x746: 0x1d1c, 0x747: 0x00ef, 0x749: 0x1d88, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00e0, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1abd,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x1acf, 0x761: 0x1cf8, 0x762: 0x1ad8,\n\t0x764: 0x0075, 0x766: 0x023c, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x4413, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0308,\n\t0x776: 0x030b, 0x777: 0x030e, 0x778: 0x0311, 0x779: 0x0093, 0x77b: 0x1cc8,\n\t0x77c: 0x026c, 0x77d: 0x0245, 0x77e: 0x01fd, 0x77f: 0x0224,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x055a, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x235e, 0x791: 0x236a,\n\t0x792: 0x241e, 0x793: 0x2346, 0x794: 0x23ca, 0x795: 0x2352, 0x796: 0x23d0, 0x797: 0x23e8,\n\t0x798: 0x23f4, 0x799: 0x2358, 0x79a: 0x23fa, 0x79b: 0x2364, 0x79c: 0x23ee, 0x79d: 0x2400,\n\t0x79e: 0x2406, 0x79f: 0x1dec, 0x7a0: 0x0053, 0x7a1: 0x1a87, 0x7a2: 0x1cd4, 0x7a3: 0x1a90,\n\t0x7a4: 0x006d, 0x7a5: 0x1adb, 0x7a6: 0x1d00, 0x7a7: 0x1e78, 0x7a8: 0x1a93, 0x7a9: 0x0071,\n\t0x7aa: 0x1ae7, 0x7ab: 0x1d04, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x1b14, 0x7b2: 0x1d48, 0x7b3: 0x1b1d, 0x7b4: 0x00ad, 0x7b5: 0x1b92,\n\t0x7b6: 0x1d7c, 0x7b7: 0x1e8c, 0x7b8: 0x1b20, 0x7b9: 0x00b1, 0x7ba: 0x1b95, 0x7bb: 0x1d80,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3d47, 0x7c3: 0xa000, 0x7c4: 0x3d4e, 0x7c5: 0xa000,\n\t0x7c7: 0x3d55, 0x7c8: 0xa000, 0x7c9: 0x3d5c,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x30a6, 0x7e1: 0xa000, 0x7e2: 0x3d6a,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3d63, 0x7ee: 0x30a1, 0x7ef: 0x30ab,\n\t0x7f0: 0x3d71, 0x7f1: 0x3d78, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3d7f, 0x7f5: 0x3d86,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3d8d, 0x7f9: 0x3d94, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3d9b, 0x801: 0x3da2, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3db7, 0x805: 0x3dbe,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3dc5, 0x809: 0x3dcc,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3de1, 0x82d: 0x3de8, 0x82e: 0x3def, 0x82f: 0x3df6,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x19af,\n\t0x86a: 0x19b2, 0x86b: 0x19b5, 0x86c: 0x19b8, 0x86d: 0x19bb, 0x86e: 0x19be, 0x86f: 0x19c1,\n\t0x870: 0x19c4, 0x871: 0x19c7, 0x872: 0x19ca, 0x873: 0x19d3, 0x874: 0x1b98, 0x875: 0x1b9c,\n\t0x876: 0x1ba0, 0x877: 0x1ba4, 0x878: 0x1ba8, 0x879: 0x1bac, 0x87a: 0x1bb0, 0x87b: 0x1bb4,\n\t0x87c: 0x1bb8, 0x87d: 0x1db0, 0x87e: 0x1db5, 0x87f: 0x1dba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1dbf, 0x881: 0x1dc4, 0x882: 0x1dc9, 0x883: 0x1dce, 0x884: 0x1dd3, 0x885: 0x1dd8,\n\t0x886: 0x1ddd, 0x887: 0x1de2, 0x888: 0x19ac, 0x889: 0x19d0, 0x88a: 0x19f4, 0x88b: 0x1a18,\n\t0x88c: 0x1a3c, 0x88d: 0x1a45, 0x88e: 0x1a4b, 0x88f: 0x1a51, 0x890: 0x1a57, 0x891: 0x1c90,\n\t0x892: 0x1c94, 0x893: 0x1c98, 0x894: 0x1c9c, 0x895: 0x1ca0, 0x896: 0x1ca4, 0x897: 0x1ca8,\n\t0x898: 0x1cac, 0x899: 0x1cb0, 0x89a: 0x1cb4, 0x89b: 0x1cb8, 0x89c: 0x1c24, 0x89d: 0x1c28,\n\t0x89e: 0x1c2c, 0x89f: 0x1c30, 0x8a0: 0x1c34, 0x8a1: 0x1c38, 0x8a2: 0x1c3c, 0x8a3: 0x1c40,\n\t0x8a4: 0x1c44, 0x8a5: 0x1c48, 0x8a6: 0x1c4c, 0x8a7: 0x1c50, 0x8a8: 0x1c54, 0x8a9: 0x1c58,\n\t0x8aa: 0x1c5c, 0x8ab: 0x1c60, 0x8ac: 0x1c64, 0x8ad: 0x1c68, 0x8ae: 0x1c6c, 0x8af: 0x1c70,\n\t0x8b0: 0x1c74, 0x8b1: 0x1c78, 0x8b2: 0x1c7c, 0x8b3: 0x1c80, 0x8b4: 0x1c84, 0x8b5: 0x1c88,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x07ba, 0x8c1: 0x07de, 0x8c2: 0x07ea, 0x8c3: 0x07fa, 0x8c4: 0x0802, 0x8c5: 0x080e,\n\t0x8c6: 0x0816, 0x8c7: 0x081e, 0x8c8: 0x082a, 0x8c9: 0x087e, 0x8ca: 0x0896, 0x8cb: 0x08a6,\n\t0x8cc: 0x08b6, 0x8cd: 0x08c6, 0x8ce: 0x08d6, 0x8cf: 0x08f6, 0x8d0: 0x08fa, 0x8d1: 0x08fe,\n\t0x8d2: 0x0932, 0x8d3: 0x095a, 0x8d4: 0x096a, 0x8d5: 0x0972, 0x8d6: 0x0976, 0x8d7: 0x0982,\n\t0x8d8: 0x099e, 0x8d9: 0x09a2, 0x8da: 0x09ba, 0x8db: 0x09be, 0x8dc: 0x09c6, 0x8dd: 0x09d6,\n\t0x8de: 0x0a72, 0x8df: 0x0a86, 0x8e0: 0x0ac6, 0x8e1: 0x0ada, 0x8e2: 0x0ae2, 0x8e3: 0x0ae6,\n\t0x8e4: 0x0af6, 0x8e5: 0x0b12, 0x8e6: 0x0b3e, 0x8e7: 0x0b4a, 0x8e8: 0x0b6a, 0x8e9: 0x0b76,\n\t0x8ea: 0x0b7a, 0x8eb: 0x0b7e, 0x8ec: 0x0b96, 0x8ed: 0x0b9a, 0x8ee: 0x0bc6, 0x8ef: 0x0bd2,\n\t0x8f0: 0x0bda, 0x8f1: 0x0be2, 0x8f2: 0x0bf2, 0x8f3: 0x0bfa, 0x8f4: 0x0c02, 0x8f5: 0x0c2e,\n\t0x8f6: 0x0c32, 0x8f7: 0x0c3a, 0x8f8: 0x0c3e, 0x8f9: 0x0c46, 0x8fa: 0x0c4e, 0x8fb: 0x0c5e,\n\t0x8fc: 0x0c7a, 0x8fd: 0x0cf2, 0x8fe: 0x0d06, 0x8ff: 0x0d0a,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0d8a, 0x901: 0x0d8e, 0x902: 0x0da2, 0x903: 0x0da6, 0x904: 0x0dae, 0x905: 0x0db6,\n\t0x906: 0x0dbe, 0x907: 0x0dca, 0x908: 0x0df2, 0x909: 0x0e02, 0x90a: 0x0e16, 0x90b: 0x0e86,\n\t0x90c: 0x0e92, 0x90d: 0x0ea2, 0x90e: 0x0eae, 0x90f: 0x0eba, 0x910: 0x0ec2, 0x911: 0x0ec6,\n\t0x912: 0x0eca, 0x913: 0x0ece, 0x914: 0x0ed2, 0x915: 0x0f8a, 0x916: 0x0fd2, 0x917: 0x0fde,\n\t0x918: 0x0fe2, 0x919: 0x0fe6, 0x91a: 0x0fea, 0x91b: 0x0ff2, 0x91c: 0x0ff6, 0x91d: 0x100a,\n\t0x91e: 0x1026, 0x91f: 0x102e, 0x920: 0x106e, 0x921: 0x1072, 0x922: 0x107a, 0x923: 0x107e,\n\t0x924: 0x1086, 0x925: 0x108a, 0x926: 0x10ae, 0x927: 0x10b2, 0x928: 0x10ce, 0x929: 0x10d2,\n\t0x92a: 0x10d6, 0x92b: 0x10da, 0x92c: 0x10ee, 0x92d: 0x1112, 0x92e: 0x1116, 0x92f: 0x111a,\n\t0x930: 0x113e, 0x931: 0x117e, 0x932: 0x1182, 0x933: 0x11a2, 0x934: 0x11b2, 0x935: 0x11ba,\n\t0x936: 0x11da, 0x937: 0x11fe, 0x938: 0x1242, 0x939: 0x124a, 0x93a: 0x125e, 0x93b: 0x126a,\n\t0x93c: 0x1272, 0x93d: 0x127a, 0x93e: 0x127e, 0x93f: 0x1282,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x129a, 0x941: 0x129e, 0x942: 0x12ba, 0x943: 0x12c2, 0x944: 0x12ca, 0x945: 0x12ce,\n\t0x946: 0x12da, 0x947: 0x12e2, 0x948: 0x12e6, 0x949: 0x12ea, 0x94a: 0x12f2, 0x94b: 0x12f6,\n\t0x94c: 0x1396, 0x94d: 0x13aa, 0x94e: 0x13de, 0x94f: 0x13e2, 0x950: 0x13ea, 0x951: 0x1416,\n\t0x952: 0x141e, 0x953: 0x1426, 0x954: 0x142e, 0x955: 0x146a, 0x956: 0x146e, 0x957: 0x1476,\n\t0x958: 0x147a, 0x959: 0x147e, 0x95a: 0x14aa, 0x95b: 0x14ae, 0x95c: 0x14b6, 0x95d: 0x14ca,\n\t0x95e: 0x14ce, 0x95f: 0x14ea, 0x960: 0x14f2, 0x961: 0x14f6, 0x962: 0x151a, 0x963: 0x153a,\n\t0x964: 0x154e, 0x965: 0x1552, 0x966: 0x155a, 0x967: 0x1586, 0x968: 0x158a, 0x969: 0x159a,\n\t0x96a: 0x15be, 0x96b: 0x15ca, 0x96c: 0x15da, 0x96d: 0x15f2, 0x96e: 0x15fa, 0x96f: 0x15fe,\n\t0x970: 0x1602, 0x971: 0x1606, 0x972: 0x1612, 0x973: 0x1616, 0x974: 0x161e, 0x975: 0x163a,\n\t0x976: 0x163e, 0x977: 0x1642, 0x978: 0x165a, 0x979: 0x165e, 0x97a: 0x1666, 0x97b: 0x167a,\n\t0x97c: 0x167e, 0x97d: 0x1682, 0x97e: 0x168a, 0x97f: 0x168e,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x4049, 0x98d: 0xa000, 0x98e: 0x4051, 0x98f: 0xa000, 0x990: 0x4059, 0x991: 0xa000,\n\t0x992: 0x4061, 0x993: 0xa000, 0x994: 0x4069, 0x995: 0xa000, 0x996: 0x4071, 0x997: 0xa000,\n\t0x998: 0x4079, 0x999: 0xa000, 0x99a: 0x4081, 0x99b: 0xa000, 0x99c: 0x4089, 0x99d: 0xa000,\n\t0x99e: 0x4091, 0x99f: 0xa000, 0x9a0: 0x4099, 0x9a1: 0xa000, 0x9a2: 0x40a1,\n\t0x9a4: 0xa000, 0x9a5: 0x40a9, 0x9a6: 0xa000, 0x9a7: 0x40b1, 0x9a8: 0xa000, 0x9a9: 0x40b9,\n\t0x9af: 0xa000,\n\t0x9b0: 0x40c1, 0x9b1: 0x40c9, 0x9b2: 0xa000, 0x9b3: 0x40d1, 0x9b4: 0x40d9, 0x9b5: 0xa000,\n\t0x9b6: 0x40e1, 0x9b7: 0x40e9, 0x9b8: 0xa000, 0x9b9: 0x40f1, 0x9ba: 0x40f9, 0x9bb: 0xa000,\n\t0x9bc: 0x4101, 0x9bd: 0x4109,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x4041,\n\t0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x441d, 0x9dc: 0x4423, 0x9dd: 0xa000,\n\t0x9de: 0x4111, 0x9df: 0x27e4,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x4121, 0x9ed: 0xa000, 0x9ee: 0x4129, 0x9ef: 0xa000,\n\t0x9f0: 0x4131, 0x9f1: 0xa000, 0x9f2: 0x4139, 0x9f3: 0xa000, 0x9f4: 0x4141, 0x9f5: 0xa000,\n\t0x9f6: 0x4149, 0x9f7: 0xa000, 0x9f8: 0x4151, 0x9f9: 0xa000, 0x9fa: 0x4159, 0x9fb: 0xa000,\n\t0x9fc: 0x4161, 0x9fd: 0xa000, 0x9fe: 0x4169, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4171, 0xa01: 0xa000, 0xa02: 0x4179, 0xa04: 0xa000, 0xa05: 0x4181,\n\t0xa06: 0xa000, 0xa07: 0x4189, 0xa08: 0xa000, 0xa09: 0x4191,\n\t0xa0f: 0xa000, 0xa10: 0x4199, 0xa11: 0x41a1,\n\t0xa12: 0xa000, 0xa13: 0x41a9, 0xa14: 0x41b1, 0xa15: 0xa000, 0xa16: 0x41b9, 0xa17: 0x41c1,\n\t0xa18: 0xa000, 0xa19: 0x41c9, 0xa1a: 0x41d1, 0xa1b: 0xa000, 0xa1c: 0x41d9, 0xa1d: 0x41e1,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4119,\n\t0xa37: 0x41e9, 0xa38: 0x41f1, 0xa39: 0x41f9, 0xa3a: 0x4201,\n\t0xa3d: 0xa000, 0xa3e: 0x4209, 0xa3f: 0x27f9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x045a, 0xa41: 0x041e, 0xa42: 0x0422, 0xa43: 0x0426, 0xa44: 0x046e, 0xa45: 0x042a,\n\t0xa46: 0x042e, 0xa47: 0x0432, 0xa48: 0x0436, 0xa49: 0x043a, 0xa4a: 0x043e, 0xa4b: 0x0442,\n\t0xa4c: 0x0446, 0xa4d: 0x044a, 0xa4e: 0x044e, 0xa4f: 0x4afe, 0xa50: 0x4b04, 0xa51: 0x4b0a,\n\t0xa52: 0x4b10, 0xa53: 0x4b16, 0xa54: 0x4b1c, 0xa55: 0x4b22, 0xa56: 0x4b28, 0xa57: 0x4b2e,\n\t0xa58: 0x4b34, 0xa59: 0x4b3a, 0xa5a: 0x4b40, 0xa5b: 0x4b46, 0xa5c: 0x4b4c, 0xa5d: 0x4b52,\n\t0xa5e: 0x4b58, 0xa5f: 0x4b5e, 0xa60: 0x4b64, 0xa61: 0x4b6a, 0xa62: 0x4b70, 0xa63: 0x4b76,\n\t0xa64: 0x04b6, 0xa65: 0x0452, 0xa66: 0x0456, 0xa67: 0x04da, 0xa68: 0x04de, 0xa69: 0x04e2,\n\t0xa6a: 0x04e6, 0xa6b: 0x04ea, 0xa6c: 0x04ee, 0xa6d: 0x04f2, 0xa6e: 0x045e, 0xa6f: 0x04f6,\n\t0xa70: 0x04fa, 0xa71: 0x0462, 0xa72: 0x0466, 0xa73: 0x046a, 0xa74: 0x0472, 0xa75: 0x0476,\n\t0xa76: 0x047a, 0xa77: 0x047e, 0xa78: 0x0482, 0xa79: 0x0486, 0xa7a: 0x048a, 0xa7b: 0x048e,\n\t0xa7c: 0x0492, 0xa7d: 0x0496, 0xa7e: 0x049a, 0xa7f: 0x049e,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x04a2, 0xa81: 0x04a6, 0xa82: 0x04fe, 0xa83: 0x0502, 0xa84: 0x04aa, 0xa85: 0x04ae,\n\t0xa86: 0x04b2, 0xa87: 0x04ba, 0xa88: 0x04be, 0xa89: 0x04c2, 0xa8a: 0x04c6, 0xa8b: 0x04ca,\n\t0xa8c: 0x04ce, 0xa8d: 0x04d2, 0xa8e: 0x04d6,\n\t0xa92: 0x07ba, 0xa93: 0x0816, 0xa94: 0x07c6, 0xa95: 0x0a76, 0xa96: 0x07ca, 0xa97: 0x07e2,\n\t0xa98: 0x07ce, 0xa99: 0x108e, 0xa9a: 0x0802, 0xa9b: 0x07d6, 0xa9c: 0x07be, 0xa9d: 0x0afa,\n\t0xa9e: 0x0a8a, 0xa9f: 0x082a,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2184, 0xac1: 0x218a, 0xac2: 0x2190, 0xac3: 0x2196, 0xac4: 0x219c, 0xac5: 0x21a2,\n\t0xac6: 0x21a8, 0xac7: 0x21ae, 0xac8: 0x21b4, 0xac9: 0x21ba, 0xaca: 0x21c0, 0xacb: 0x21c6,\n\t0xacc: 0x21cc, 0xacd: 0x21d2, 0xace: 0x285d, 0xacf: 0x2866, 0xad0: 0x286f, 0xad1: 0x2878,\n\t0xad2: 0x2881, 0xad3: 0x288a, 0xad4: 0x2893, 0xad5: 0x289c, 0xad6: 0x28a5, 0xad7: 0x28b7,\n\t0xad8: 0x28c0, 0xad9: 0x28c9, 0xada: 0x28d2, 0xadb: 0x28db, 0xadc: 0x28ae, 0xadd: 0x2ce3,\n\t0xade: 0x2c24, 0xae0: 0x21d8, 0xae1: 0x21f0, 0xae2: 0x21e4, 0xae3: 0x2238,\n\t0xae4: 0x21f6, 0xae5: 0x2214, 0xae6: 0x21de, 0xae7: 0x220e, 0xae8: 0x21ea, 0xae9: 0x2220,\n\t0xaea: 0x2250, 0xaeb: 0x226e, 0xaec: 0x2268, 0xaed: 0x225c, 0xaee: 0x22aa, 0xaef: 0x223e,\n\t0xaf0: 0x224a, 0xaf1: 0x2262, 0xaf2: 0x2256, 0xaf3: 0x2280, 0xaf4: 0x222c, 0xaf5: 0x2274,\n\t0xaf6: 0x229e, 0xaf7: 0x2286, 0xaf8: 0x221a, 0xaf9: 0x21fc, 0xafa: 0x2232, 0xafb: 0x2244,\n\t0xafc: 0x227a, 0xafd: 0x2202, 0xafe: 0x22a4, 0xaff: 0x2226,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x228c, 0xb01: 0x2208, 0xb02: 0x2292, 0xb03: 0x2298, 0xb04: 0x0a2a, 0xb05: 0x0bfe,\n\t0xb06: 0x0da2, 0xb07: 0x11c2,\n\t0xb10: 0x1cf4, 0xb11: 0x19d6,\n\t0xb12: 0x19d9, 0xb13: 0x19dc, 0xb14: 0x19df, 0xb15: 0x19e2, 0xb16: 0x19e5, 0xb17: 0x19e8,\n\t0xb18: 0x19eb, 0xb19: 0x19ee, 0xb1a: 0x19f7, 0xb1b: 0x19fa, 0xb1c: 0x19fd, 0xb1d: 0x1a00,\n\t0xb1e: 0x1a03, 0xb1f: 0x1a06, 0xb20: 0x0406, 0xb21: 0x040e, 0xb22: 0x0412, 0xb23: 0x041a,\n\t0xb24: 0x041e, 0xb25: 0x0422, 0xb26: 0x042a, 0xb27: 0x0432, 0xb28: 0x0436, 0xb29: 0x043e,\n\t0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x2f59, 0xb2f: 0x2f61,\n\t0xb30: 0x2f69, 0xb31: 0x2f71, 0xb32: 0x2f79, 0xb33: 0x2f81, 0xb34: 0x2f89, 0xb35: 0x2f91,\n\t0xb36: 0x2fa1, 0xb37: 0x2fa9, 0xb38: 0x2fb1, 0xb39: 0x2fb9, 0xb3a: 0x2fc1, 0xb3b: 0x2fc9,\n\t0xb3c: 0x3014, 0xb3d: 0x2fdc, 0xb3e: 0x2f99,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x07ba, 0xb41: 0x0816, 0xb42: 0x07c6, 0xb43: 0x0a76, 0xb44: 0x081a, 0xb45: 0x08aa,\n\t0xb46: 0x07c2, 0xb47: 0x08a6, 0xb48: 0x0806, 0xb49: 0x0982, 0xb4a: 0x0e02, 0xb4b: 0x0f8a,\n\t0xb4c: 0x0ed2, 0xb4d: 0x0e16, 0xb4e: 0x155a, 0xb4f: 0x0a86, 0xb50: 0x0dca, 0xb51: 0x0e46,\n\t0xb52: 0x0e06, 0xb53: 0x1146, 0xb54: 0x09f6, 0xb55: 0x0ffe, 0xb56: 0x1482, 0xb57: 0x115a,\n\t0xb58: 0x093e, 0xb59: 0x118a, 0xb5a: 0x1096, 0xb5b: 0x0b12, 0xb5c: 0x150a, 0xb5d: 0x087a,\n\t0xb5e: 0x09a6, 0xb5f: 0x0ef2, 0xb60: 0x1622, 0xb61: 0x083e, 0xb62: 0x08ce, 0xb63: 0x0e96,\n\t0xb64: 0x07ca, 0xb65: 0x07e2, 0xb66: 0x07ce, 0xb67: 0x0bd6, 0xb68: 0x09ea, 0xb69: 0x097a,\n\t0xb6a: 0x0b52, 0xb6b: 0x0b46, 0xb6c: 0x10e6, 0xb6d: 0x083a, 0xb6e: 0x1496, 0xb6f: 0x0996,\n\t0xb70: 0x0aee, 0xb71: 0x1a09, 0xb72: 0x1a0c, 0xb73: 0x1a0f, 0xb74: 0x1a12, 0xb75: 0x1a1b,\n\t0xb76: 0x1a1e, 0xb77: 0x1a21, 0xb78: 0x1a24, 0xb79: 0x1a27, 0xb7a: 0x1a2a, 0xb7b: 0x1a2d,\n\t0xb7c: 0x1a30, 0xb7d: 0x1a33, 0xb7e: 0x1a36, 0xb7f: 0x1a3f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1df6, 0xb81: 0x1e05, 0xb82: 0x1e14, 0xb83: 0x1e23, 0xb84: 0x1e32, 0xb85: 0x1e41,\n\t0xb86: 0x1e50, 0xb87: 0x1e5f, 0xb88: 0x1e6e, 0xb89: 0x22bc, 0xb8a: 0x22ce, 0xb8b: 0x22e0,\n\t0xb8c: 0x1a81, 0xb8d: 0x1d34, 0xb8e: 0x1b02, 0xb8f: 0x1cd8, 0xb90: 0x05c6, 0xb91: 0x05ce,\n\t0xb92: 0x05d6, 0xb93: 0x05de, 0xb94: 0x05e6, 0xb95: 0x05ea, 0xb96: 0x05ee, 0xb97: 0x05f2,\n\t0xb98: 0x05f6, 0xb99: 0x05fa, 0xb9a: 0x05fe, 0xb9b: 0x0602, 0xb9c: 0x0606, 0xb9d: 0x060a,\n\t0xb9e: 0x060e, 0xb9f: 0x0612, 0xba0: 0x0616, 0xba1: 0x061e, 0xba2: 0x0622, 0xba3: 0x0626,\n\t0xba4: 0x062a, 0xba5: 0x062e, 0xba6: 0x0632, 0xba7: 0x0636, 0xba8: 0x063a, 0xba9: 0x063e,\n\t0xbaa: 0x0642, 0xbab: 0x0646, 0xbac: 0x064a, 0xbad: 0x064e, 0xbae: 0x0652, 0xbaf: 0x0656,\n\t0xbb0: 0x065a, 0xbb1: 0x065e, 0xbb2: 0x0662, 0xbb3: 0x066a, 0xbb4: 0x0672, 0xbb5: 0x067a,\n\t0xbb6: 0x067e, 0xbb7: 0x0682, 0xbb8: 0x0686, 0xbb9: 0x068a, 0xbba: 0x068e, 0xbbb: 0x0692,\n\t0xbbc: 0x0696, 0xbbd: 0x069a, 0xbbe: 0x069e, 0xbbf: 0x282a,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x3025, 0xbc5: 0x29c1,\n\t0xbc6: 0x29cb, 0xbc7: 0x3069, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9,\n\t0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2fea, 0xbd1: 0x2b2d,\n\t0xbd2: 0x2b3a, 0xbd3: 0x2cf5, 0xbd4: 0x27eb, 0xbd5: 0x2d08, 0xbd6: 0x2d1b, 0xbd7: 0x2c63,\n\t0xbd8: 0x2b47, 0xbd9: 0x2d2e, 0xbda: 0x2d41, 0xbdb: 0x2b54, 0xbdc: 0x29f3, 0xbdd: 0x29fd,\n\t0xbde: 0x2ff8, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x3036, 0xbe2: 0x2a07, 0xbe3: 0x2a11,\n\t0xbe4: 0x2b6e, 0xbe5: 0x2a1b, 0xbe6: 0x2a25, 0xbe7: 0x2800, 0xbe8: 0x2807, 0xbe9: 0x2a2f,\n\t0xbea: 0x2a39, 0xbeb: 0x2d54, 0xbec: 0x2b7b, 0xbed: 0x2c83, 0xbee: 0x2d67, 0xbef: 0x2b88,\n\t0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x307d, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57,\n\t0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x3047,\n\t0xbfc: 0x2ba2, 0xbfd: 0x2ca3, 0xbfe: 0x2bc9, 0xbff: 0x280e,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x3058, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93,\n\t0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2fd1,\n\t0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x3006, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd,\n\t0xc12: 0x281c, 0xc13: 0x2c0a, 0xc14: 0x2cd3, 0xc15: 0x2823, 0xc16: 0x2da0, 0xc17: 0x2abb,\n\t0xc18: 0x1de7, 0xc19: 0x1dfb, 0xc1a: 0x1e0a, 0xc1b: 0x1e19, 0xc1c: 0x1e28, 0xc1d: 0x1e37,\n\t0xc1e: 0x1e46, 0xc1f: 0x1e55, 0xc20: 0x1e64, 0xc21: 0x1e73, 0xc22: 0x22c2, 0xc23: 0x22d4,\n\t0xc24: 0x22e6, 0xc25: 0x22f2, 0xc26: 0x22fe, 0xc27: 0x230a, 0xc28: 0x2316, 0xc29: 0x2322,\n\t0xc2a: 0x232e, 0xc2b: 0x233a, 0xc2c: 0x2376, 0xc2d: 0x2382, 0xc2e: 0x238e, 0xc2f: 0x239a,\n\t0xc30: 0x23a6, 0xc31: 0x1d44, 0xc32: 0x1af6, 0xc33: 0x1a63, 0xc34: 0x1d14, 0xc35: 0x1b77,\n\t0xc36: 0x1b86, 0xc37: 0x1afc, 0xc38: 0x1d2c, 0xc39: 0x1d30, 0xc3a: 0x1a8d, 0xc3b: 0x2838,\n\t0xc3c: 0x2846, 0xc3d: 0x2831, 0xc3e: 0x283f, 0xc3f: 0x2c17,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1b7a, 0xc41: 0x1b62, 0xc42: 0x1d90, 0xc43: 0x1b4a, 0xc44: 0x1b23, 0xc45: 0x1a96,\n\t0xc46: 0x1aa5, 0xc47: 0x1a75, 0xc48: 0x1d20, 0xc49: 0x1e82, 0xc4a: 0x1b7d, 0xc4b: 0x1b65,\n\t0xc4c: 0x1d94, 0xc4d: 0x1da0, 0xc4e: 0x1b56, 0xc4f: 0x1b2c, 0xc50: 0x1a84, 0xc51: 0x1d4c,\n\t0xc52: 0x1ce0, 0xc53: 0x1ccc, 0xc54: 0x1cfc, 0xc55: 0x1da4, 0xc56: 0x1b59, 0xc57: 0x1af9,\n\t0xc58: 0x1b2f, 0xc59: 0x1b0e, 0xc5a: 0x1b71, 0xc5b: 0x1da8, 0xc5c: 0x1b5c, 0xc5d: 0x1af0,\n\t0xc5e: 0x1b32, 0xc5f: 0x1d6c, 0xc60: 0x1d24, 0xc61: 0x1b44, 0xc62: 0x1d54, 0xc63: 0x1d70,\n\t0xc64: 0x1d28, 0xc65: 0x1b47, 0xc66: 0x1d58, 0xc67: 0x2418, 0xc68: 0x242c, 0xc69: 0x1ac6,\n\t0xc6a: 0x1d50, 0xc6b: 0x1ce4, 0xc6c: 0x1cd0, 0xc6d: 0x1d78, 0xc6e: 0x284d, 0xc6f: 0x28e4,\n\t0xc70: 0x1b89, 0xc71: 0x1b74, 0xc72: 0x1dac, 0xc73: 0x1b5f, 0xc74: 0x1b80, 0xc75: 0x1b68,\n\t0xc76: 0x1d98, 0xc77: 0x1b4d, 0xc78: 0x1b26, 0xc79: 0x1ab1, 0xc7a: 0x1b83, 0xc7b: 0x1b6b,\n\t0xc7c: 0x1d9c, 0xc7d: 0x1b50, 0xc7e: 0x1b29, 0xc7f: 0x1ab4,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1d5c, 0xc81: 0x1ce8, 0xc82: 0x1e7d, 0xc83: 0x1a66, 0xc84: 0x1aea, 0xc85: 0x1aed,\n\t0xc86: 0x2425, 0xc87: 0x1cc4, 0xc88: 0x1af3, 0xc89: 0x1a78, 0xc8a: 0x1b11, 0xc8b: 0x1a7b,\n\t0xc8c: 0x1b1a, 0xc8d: 0x1a99, 0xc8e: 0x1a9c, 0xc8f: 0x1b35, 0xc90: 0x1b3b, 0xc91: 0x1b3e,\n\t0xc92: 0x1d60, 0xc93: 0x1b41, 0xc94: 0x1b53, 0xc95: 0x1d68, 0xc96: 0x1d74, 0xc97: 0x1ac0,\n\t0xc98: 0x1e87, 0xc99: 0x1cec, 0xc9a: 0x1ac3, 0xc9b: 0x1b8c, 0xc9c: 0x1ad5, 0xc9d: 0x1ae4,\n\t0xc9e: 0x2412, 0xc9f: 0x240c, 0xca0: 0x1df1, 0xca1: 0x1e00, 0xca2: 0x1e0f, 0xca3: 0x1e1e,\n\t0xca4: 0x1e2d, 0xca5: 0x1e3c, 0xca6: 0x1e4b, 0xca7: 0x1e5a, 0xca8: 0x1e69, 0xca9: 0x22b6,\n\t0xcaa: 0x22c8, 0xcab: 0x22da, 0xcac: 0x22ec, 0xcad: 0x22f8, 0xcae: 0x2304, 0xcaf: 0x2310,\n\t0xcb0: 0x231c, 0xcb1: 0x2328, 0xcb2: 0x2334, 0xcb3: 0x2370, 0xcb4: 0x237c, 0xcb5: 0x2388,\n\t0xcb6: 0x2394, 0xcb7: 0x23a0, 0xcb8: 0x23ac, 0xcb9: 0x23b2, 0xcba: 0x23b8, 0xcbb: 0x23be,\n\t0xcbc: 0x23c4, 0xcbd: 0x23d6, 0xcbe: 0x23dc, 0xcbf: 0x1d40,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1472, 0xcc1: 0x0df6, 0xcc2: 0x14ce, 0xcc3: 0x149a, 0xcc4: 0x0f52, 0xcc5: 0x07e6,\n\t0xcc6: 0x09da, 0xcc7: 0x1726, 0xcc8: 0x1726, 0xcc9: 0x0b06, 0xcca: 0x155a, 0xccb: 0x0a3e,\n\t0xccc: 0x0b02, 0xccd: 0x0cea, 0xcce: 0x10ca, 0xccf: 0x125a, 0xcd0: 0x1392, 0xcd1: 0x13ce,\n\t0xcd2: 0x1402, 0xcd3: 0x1516, 0xcd4: 0x0e6e, 0xcd5: 0x0efa, 0xcd6: 0x0fa6, 0xcd7: 0x103e,\n\t0xcd8: 0x135a, 0xcd9: 0x1542, 0xcda: 0x166e, 0xcdb: 0x080a, 0xcdc: 0x09ae, 0xcdd: 0x0e82,\n\t0xcde: 0x0fca, 0xcdf: 0x138e, 0xce0: 0x16be, 0xce1: 0x0bae, 0xce2: 0x0f72, 0xce3: 0x137e,\n\t0xce4: 0x1412, 0xce5: 0x0d1e, 0xce6: 0x12b6, 0xce7: 0x13da, 0xce8: 0x0c1a, 0xce9: 0x0e0a,\n\t0xcea: 0x0f12, 0xceb: 0x1016, 0xcec: 0x1522, 0xced: 0x084a, 0xcee: 0x08e2, 0xcef: 0x094e,\n\t0xcf0: 0x0d86, 0xcf1: 0x0e7a, 0xcf2: 0x0fc6, 0xcf3: 0x10ea, 0xcf4: 0x1272, 0xcf5: 0x1386,\n\t0xcf6: 0x139e, 0xcf7: 0x14c2, 0xcf8: 0x15ea, 0xcf9: 0x169e, 0xcfa: 0x16ba, 0xcfb: 0x1126,\n\t0xcfc: 0x1166, 0xcfd: 0x121e, 0xcfe: 0x133e, 0xcff: 0x1576,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x16c6, 0xd01: 0x1446, 0xd02: 0x0ac2, 0xd03: 0x0c36, 0xd04: 0x11d6, 0xd05: 0x1296,\n\t0xd06: 0x0ffa, 0xd07: 0x112e, 0xd08: 0x1492, 0xd09: 0x15e2, 0xd0a: 0x0abe, 0xd0b: 0x0b8a,\n\t0xd0c: 0x0e72, 0xd0d: 0x0f26, 0xd0e: 0x0f5a, 0xd0f: 0x120e, 0xd10: 0x1236, 0xd11: 0x15a2,\n\t0xd12: 0x094a, 0xd13: 0x12a2, 0xd14: 0x08ee, 0xd15: 0x08ea, 0xd16: 0x1192, 0xd17: 0x1222,\n\t0xd18: 0x1356, 0xd19: 0x15aa, 0xd1a: 0x1462, 0xd1b: 0x0d22, 0xd1c: 0x0e6e, 0xd1d: 0x1452,\n\t0xd1e: 0x07f2, 0xd1f: 0x0b5e, 0xd20: 0x0c8e, 0xd21: 0x102a, 0xd22: 0x10aa, 0xd23: 0x096e,\n\t0xd24: 0x1136, 0xd25: 0x085a, 0xd26: 0x0c72, 0xd27: 0x07d2, 0xd28: 0x0ee6, 0xd29: 0x0d9e,\n\t0xd2a: 0x120a, 0xd2b: 0x09c2, 0xd2c: 0x0aae, 0xd2d: 0x10f6, 0xd2e: 0x135e, 0xd2f: 0x1436,\n\t0xd30: 0x0eb2, 0xd31: 0x14f2, 0xd32: 0x0ede, 0xd33: 0x0d32, 0xd34: 0x1316, 0xd35: 0x0d52,\n\t0xd36: 0x10a6, 0xd37: 0x0826, 0xd38: 0x08a2, 0xd39: 0x08e6, 0xd3a: 0x0e4e, 0xd3b: 0x11f6,\n\t0xd3c: 0x12ee, 0xd3d: 0x1442, 0xd3e: 0x1556, 0xd3f: 0x0956,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0a0a, 0xd41: 0x0b12, 0xd42: 0x0c2a, 0xd43: 0x0dba, 0xd44: 0x0f76, 0xd45: 0x113a,\n\t0xd46: 0x1592, 0xd47: 0x1676, 0xd48: 0x16ca, 0xd49: 0x16e2, 0xd4a: 0x0932, 0xd4b: 0x0dee,\n\t0xd4c: 0x0e9e, 0xd4d: 0x14e6, 0xd4e: 0x0bf6, 0xd4f: 0x0cd2, 0xd50: 0x0cee, 0xd51: 0x0d7e,\n\t0xd52: 0x0f66, 0xd53: 0x0fb2, 0xd54: 0x1062, 0xd55: 0x1186, 0xd56: 0x122a, 0xd57: 0x128e,\n\t0xd58: 0x14d6, 0xd59: 0x1366, 0xd5a: 0x14fe, 0xd5b: 0x157a, 0xd5c: 0x090a, 0xd5d: 0x0936,\n\t0xd5e: 0x0a1e, 0xd5f: 0x0fa2, 0xd60: 0x13ee, 0xd61: 0x1436, 0xd62: 0x0c16, 0xd63: 0x0c86,\n\t0xd64: 0x0d4a, 0xd65: 0x0eaa, 0xd66: 0x11d2, 0xd67: 0x101e, 0xd68: 0x0836, 0xd69: 0x0a7a,\n\t0xd6a: 0x0b5e, 0xd6b: 0x0bc2, 0xd6c: 0x0c92, 0xd6d: 0x103a, 0xd6e: 0x1056, 0xd6f: 0x1266,\n\t0xd70: 0x1286, 0xd71: 0x155e, 0xd72: 0x15de, 0xd73: 0x15ee, 0xd74: 0x162a, 0xd75: 0x084e,\n\t0xd76: 0x117a, 0xd77: 0x154a, 0xd78: 0x15c6, 0xd79: 0x0caa, 0xd7a: 0x0812, 0xd7b: 0x0872,\n\t0xd7c: 0x0b62, 0xd7d: 0x0b82, 0xd7e: 0x0daa, 0xd7f: 0x0e6e,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0fbe, 0xd81: 0x10c6, 0xd82: 0x1372, 0xd83: 0x1512, 0xd84: 0x171e, 0xd85: 0x0dde,\n\t0xd86: 0x159e, 0xd87: 0x092e, 0xd88: 0x0e2a, 0xd89: 0x0e36, 0xd8a: 0x0f0a, 0xd8b: 0x0f42,\n\t0xd8c: 0x1046, 0xd8d: 0x10a2, 0xd8e: 0x1122, 0xd8f: 0x1206, 0xd90: 0x1636, 0xd91: 0x08aa,\n\t0xd92: 0x0cfe, 0xd93: 0x15ae, 0xd94: 0x0862, 0xd95: 0x0ba6, 0xd96: 0x0f2a, 0xd97: 0x14da,\n\t0xd98: 0x0c62, 0xd99: 0x0cb2, 0xd9a: 0x0e3e, 0xd9b: 0x102a, 0xd9c: 0x15b6, 0xd9d: 0x0912,\n\t0xd9e: 0x09fa, 0xd9f: 0x0b92, 0xda0: 0x0dce, 0xda1: 0x0e1a, 0xda2: 0x0e5a, 0xda3: 0x0eee,\n\t0xda4: 0x1042, 0xda5: 0x10b6, 0xda6: 0x1252, 0xda7: 0x13f2, 0xda8: 0x13fe, 0xda9: 0x1552,\n\t0xdaa: 0x15d2, 0xdab: 0x097e, 0xdac: 0x0f46, 0xdad: 0x09fe, 0xdae: 0x0fc2, 0xdaf: 0x1066,\n\t0xdb0: 0x1382, 0xdb1: 0x15ba, 0xdb2: 0x16a6, 0xdb3: 0x16ce, 0xdb4: 0x0e32, 0xdb5: 0x0f22,\n\t0xdb6: 0x12be, 0xdb7: 0x11b2, 0xdb8: 0x11be, 0xdb9: 0x11e2, 0xdba: 0x1012, 0xdbb: 0x0f9a,\n\t0xdbc: 0x145e, 0xdbd: 0x082e, 0xdbe: 0x1326, 0xdbf: 0x0916,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0906, 0xdc1: 0x0c06, 0xdc2: 0x0d26, 0xdc3: 0x11ee, 0xdc4: 0x0b4e, 0xdc5: 0x0efe,\n\t0xdc6: 0x0dea, 0xdc7: 0x14e2, 0xdc8: 0x13e2, 0xdc9: 0x15a6, 0xdca: 0x141e, 0xdcb: 0x0c22,\n\t0xdcc: 0x0882, 0xdcd: 0x0a56, 0xdd0: 0x0aaa,\n\t0xdd2: 0x0dda, 0xdd5: 0x08f2, 0xdd6: 0x101a, 0xdd7: 0x10de,\n\t0xdd8: 0x1142, 0xdd9: 0x115e, 0xdda: 0x1162, 0xddb: 0x1176, 0xddc: 0x15f6, 0xddd: 0x11e6,\n\t0xdde: 0x126a, 0xde0: 0x138a, 0xde2: 0x144e,\n\t0xde5: 0x1502, 0xde6: 0x152e,\n\t0xdea: 0x164a, 0xdeb: 0x164e, 0xdec: 0x1652, 0xded: 0x16b6, 0xdee: 0x1526, 0xdef: 0x15c2,\n\t0xdf0: 0x0852, 0xdf1: 0x0876, 0xdf2: 0x088a, 0xdf3: 0x0946, 0xdf4: 0x0952, 0xdf5: 0x0992,\n\t0xdf6: 0x0a46, 0xdf7: 0x0a62, 0xdf8: 0x0a6a, 0xdf9: 0x0aa6, 0xdfa: 0x0ab2, 0xdfb: 0x0b8e,\n\t0xdfc: 0x0b96, 0xdfd: 0x0c9e, 0xdfe: 0x0cc6, 0xdff: 0x0cce,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0ce6, 0xe01: 0x0d92, 0xe02: 0x0dc2, 0xe03: 0x0de2, 0xe04: 0x0e52, 0xe05: 0x0f16,\n\t0xe06: 0x0f32, 0xe07: 0x0f62, 0xe08: 0x0fb6, 0xe09: 0x0fd6, 0xe0a: 0x104a, 0xe0b: 0x112a,\n\t0xe0c: 0x1146, 0xe0d: 0x114e, 0xe0e: 0x114a, 0xe0f: 0x1152, 0xe10: 0x1156, 0xe11: 0x115a,\n\t0xe12: 0x116e, 0xe13: 0x1172, 0xe14: 0x1196, 0xe15: 0x11aa, 0xe16: 0x11c6, 0xe17: 0x122a,\n\t0xe18: 0x1232, 0xe19: 0x123a, 0xe1a: 0x124e, 0xe1b: 0x1276, 0xe1c: 0x12c6, 0xe1d: 0x12fa,\n\t0xe1e: 0x12fa, 0xe1f: 0x1362, 0xe20: 0x140a, 0xe21: 0x1422, 0xe22: 0x1456, 0xe23: 0x145a,\n\t0xe24: 0x149e, 0xe25: 0x14a2, 0xe26: 0x14fa, 0xe27: 0x1502, 0xe28: 0x15d6, 0xe29: 0x161a,\n\t0xe2a: 0x1632, 0xe2b: 0x0c96, 0xe2c: 0x184b, 0xe2d: 0x12de,\n\t0xe30: 0x07da, 0xe31: 0x08de, 0xe32: 0x089e, 0xe33: 0x0846, 0xe34: 0x0886, 0xe35: 0x08b2,\n\t0xe36: 0x0942, 0xe37: 0x095e, 0xe38: 0x0a46, 0xe39: 0x0a32, 0xe3a: 0x0a42, 0xe3b: 0x0a5e,\n\t0xe3c: 0x0aaa, 0xe3d: 0x0aba, 0xe3e: 0x0afe, 0xe3f: 0x0b0a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0b26, 0xe41: 0x0b36, 0xe42: 0x0c1e, 0xe43: 0x0c26, 0xe44: 0x0c56, 0xe45: 0x0c76,\n\t0xe46: 0x0ca6, 0xe47: 0x0cbe, 0xe48: 0x0cae, 0xe49: 0x0cce, 0xe4a: 0x0cc2, 0xe4b: 0x0ce6,\n\t0xe4c: 0x0d02, 0xe4d: 0x0d5a, 0xe4e: 0x0d66, 0xe4f: 0x0d6e, 0xe50: 0x0d96, 0xe51: 0x0dda,\n\t0xe52: 0x0e0a, 0xe53: 0x0e0e, 0xe54: 0x0e22, 0xe55: 0x0ea2, 0xe56: 0x0eb2, 0xe57: 0x0f0a,\n\t0xe58: 0x0f56, 0xe59: 0x0f4e, 0xe5a: 0x0f62, 0xe5b: 0x0f7e, 0xe5c: 0x0fb6, 0xe5d: 0x110e,\n\t0xe5e: 0x0fda, 0xe5f: 0x100e, 0xe60: 0x101a, 0xe61: 0x105a, 0xe62: 0x1076, 0xe63: 0x109a,\n\t0xe64: 0x10be, 0xe65: 0x10c2, 0xe66: 0x10de, 0xe67: 0x10e2, 0xe68: 0x10f2, 0xe69: 0x1106,\n\t0xe6a: 0x1102, 0xe6b: 0x1132, 0xe6c: 0x11ae, 0xe6d: 0x11c6, 0xe6e: 0x11de, 0xe6f: 0x1216,\n\t0xe70: 0x122a, 0xe71: 0x1246, 0xe72: 0x1276, 0xe73: 0x132a, 0xe74: 0x1352, 0xe75: 0x13c6,\n\t0xe76: 0x140e, 0xe77: 0x141a, 0xe78: 0x1422, 0xe79: 0x143a, 0xe7a: 0x144e, 0xe7b: 0x143e,\n\t0xe7c: 0x1456, 0xe7d: 0x1452, 0xe7e: 0x144a, 0xe7f: 0x145a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x1466, 0xe81: 0x14a2, 0xe82: 0x14de, 0xe83: 0x150e, 0xe84: 0x1546, 0xe85: 0x1566,\n\t0xe86: 0x15b2, 0xe87: 0x15d6, 0xe88: 0x15f6, 0xe89: 0x160a, 0xe8a: 0x161a, 0xe8b: 0x1626,\n\t0xe8c: 0x1632, 0xe8d: 0x1686, 0xe8e: 0x1726, 0xe8f: 0x17e2, 0xe90: 0x17dd, 0xe91: 0x180f,\n\t0xe92: 0x0702, 0xe93: 0x072a, 0xe94: 0x072e, 0xe95: 0x1891, 0xe96: 0x18be, 0xe97: 0x1936,\n\t0xe98: 0x1712, 0xe99: 0x1722,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x1b05, 0xec1: 0x1b08, 0xec2: 0x1b0b, 0xec3: 0x1d38, 0xec4: 0x1d3c, 0xec5: 0x1b8f,\n\t0xec6: 0x1b8f,\n\t0xed3: 0x1ea5, 0xed4: 0x1e96, 0xed5: 0x1e9b, 0xed6: 0x1eaa, 0xed7: 0x1ea0,\n\t0xedd: 0x44d1,\n\t0xede: 0x8116, 0xedf: 0x4543, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314,\n\t0xee4: 0x0317, 0xee5: 0x031a, 0xee6: 0x031d, 0xee7: 0x0323, 0xee8: 0x0326, 0xee9: 0x0017,\n\t0xeea: 0x4531, 0xeeb: 0x4537, 0xeec: 0x4635, 0xeed: 0x463d, 0xeee: 0x4489, 0xeef: 0x448f,\n\t0xef0: 0x4495, 0xef1: 0x449b, 0xef2: 0x44a7, 0xef3: 0x44ad, 0xef4: 0x44b3, 0xef5: 0x44bf,\n\t0xef6: 0x44c5, 0xef8: 0x44cb, 0xef9: 0x44d7, 0xefa: 0x44dd, 0xefb: 0x44e3,\n\t0xefc: 0x44ef, 0xefe: 0x44f5,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x44fb, 0xf01: 0x4501, 0xf03: 0x4507, 0xf04: 0x450d,\n\t0xf06: 0x4519, 0xf07: 0x451f, 0xf08: 0x4525, 0xf09: 0x452b, 0xf0a: 0x453d, 0xf0b: 0x44b9,\n\t0xf0c: 0x44a1, 0xf0d: 0x44e9, 0xf0e: 0x4513, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c,\n\t0xf12: 0x0395, 0xf13: 0x0395, 0xf14: 0x0395, 0xf15: 0x0395, 0xf16: 0x0398, 0xf17: 0x0398,\n\t0xf18: 0x0398, 0xf19: 0x0398, 0xf1a: 0x039e, 0xf1b: 0x039e, 0xf1c: 0x039e, 0xf1d: 0x039e,\n\t0xf1e: 0x0392, 0xf1f: 0x0392, 0xf20: 0x0392, 0xf21: 0x0392, 0xf22: 0x039b, 0xf23: 0x039b,\n\t0xf24: 0x039b, 0xf25: 0x039b, 0xf26: 0x038f, 0xf27: 0x038f, 0xf28: 0x038f, 0xf29: 0x038f,\n\t0xf2a: 0x03c2, 0xf2b: 0x03c2, 0xf2c: 0x03c2, 0xf2d: 0x03c2, 0xf2e: 0x03c5, 0xf2f: 0x03c5,\n\t0xf30: 0x03c5, 0xf31: 0x03c5, 0xf32: 0x03a4, 0xf33: 0x03a4, 0xf34: 0x03a4, 0xf35: 0x03a4,\n\t0xf36: 0x03a1, 0xf37: 0x03a1, 0xf38: 0x03a1, 0xf39: 0x03a1, 0xf3a: 0x03a7, 0xf3b: 0x03a7,\n\t0xf3c: 0x03a7, 0xf3d: 0x03a7, 0xf3e: 0x03aa, 0xf3f: 0x03aa,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x03aa, 0xf41: 0x03aa, 0xf42: 0x03b3, 0xf43: 0x03b3, 0xf44: 0x03b0, 0xf45: 0x03b0,\n\t0xf46: 0x03b6, 0xf47: 0x03b6, 0xf48: 0x03ad, 0xf49: 0x03ad, 0xf4a: 0x03bc, 0xf4b: 0x03bc,\n\t0xf4c: 0x03b9, 0xf4d: 0x03b9, 0xf4e: 0x03c8, 0xf4f: 0x03c8, 0xf50: 0x03c8, 0xf51: 0x03c8,\n\t0xf52: 0x03ce, 0xf53: 0x03ce, 0xf54: 0x03ce, 0xf55: 0x03ce, 0xf56: 0x03d4, 0xf57: 0x03d4,\n\t0xf58: 0x03d4, 0xf59: 0x03d4, 0xf5a: 0x03d1, 0xf5b: 0x03d1, 0xf5c: 0x03d1, 0xf5d: 0x03d1,\n\t0xf5e: 0x03d7, 0xf5f: 0x03d7, 0xf60: 0x03da, 0xf61: 0x03da, 0xf62: 0x03da, 0xf63: 0x03da,\n\t0xf64: 0x45af, 0xf65: 0x45af, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0,\n\t0xf6a: 0x03dd, 0xf6b: 0x03dd, 0xf6c: 0x03dd, 0xf6d: 0x03dd, 0xf6e: 0x03fb, 0xf6f: 0x03fb,\n\t0xf70: 0x45a9, 0xf71: 0x45a9,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x03cb, 0xf94: 0x03cb, 0xf95: 0x03cb, 0xf96: 0x03cb, 0xf97: 0x03e9,\n\t0xf98: 0x03e9, 0xf99: 0x03e6, 0xf9a: 0x03e6, 0xf9b: 0x03ec, 0xf9c: 0x03ec, 0xf9d: 0x217f,\n\t0xf9e: 0x03f2, 0xf9f: 0x03f2, 0xfa0: 0x03e3, 0xfa1: 0x03e3, 0xfa2: 0x03ef, 0xfa3: 0x03ef,\n\t0xfa4: 0x03f8, 0xfa5: 0x03f8, 0xfa6: 0x03f8, 0xfa7: 0x03f8, 0xfa8: 0x0380, 0xfa9: 0x0380,\n\t0xfaa: 0x26da, 0xfab: 0x26da, 0xfac: 0x274a, 0xfad: 0x274a, 0xfae: 0x2719, 0xfaf: 0x2719,\n\t0xfb0: 0x2735, 0xfb1: 0x2735, 0xfb2: 0x272e, 0xfb3: 0x272e, 0xfb4: 0x273c, 0xfb5: 0x273c,\n\t0xfb6: 0x2743, 0xfb7: 0x2743, 0xfb8: 0x2743, 0xfb9: 0x2720, 0xfba: 0x2720, 0xfbb: 0x2720,\n\t0xfbc: 0x03f5, 0xfbd: 0x03f5, 0xfbe: 0x03f5, 0xfbf: 0x03f5,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x26e1, 0xfc1: 0x26e8, 0xfc2: 0x2704, 0xfc3: 0x2720, 0xfc4: 0x2727, 0xfc5: 0x1eb9,\n\t0xfc6: 0x1ebe, 0xfc7: 0x1ec3, 0xfc8: 0x1ed2, 0xfc9: 0x1ee1, 0xfca: 0x1ee6, 0xfcb: 0x1eeb,\n\t0xfcc: 0x1ef0, 0xfcd: 0x1ef5, 0xfce: 0x1f04, 0xfcf: 0x1f13, 0xfd0: 0x1f18, 0xfd1: 0x1f1d,\n\t0xfd2: 0x1f2c, 0xfd3: 0x1f3b, 0xfd4: 0x1f40, 0xfd5: 0x1f45, 0xfd6: 0x1f4a, 0xfd7: 0x1f59,\n\t0xfd8: 0x1f5e, 0xfd9: 0x1f6d, 0xfda: 0x1f72, 0xfdb: 0x1f77, 0xfdc: 0x1f86, 0xfdd: 0x1f8b,\n\t0xfde: 0x1f90, 0xfdf: 0x1f9a, 0xfe0: 0x1fd6, 0xfe1: 0x1fe5, 0xfe2: 0x1ff4, 0xfe3: 0x1ff9,\n\t0xfe4: 0x1ffe, 0xfe5: 0x2008, 0xfe6: 0x2017, 0xfe7: 0x201c, 0xfe8: 0x202b, 0xfe9: 0x2030,\n\t0xfea: 0x2035, 0xfeb: 0x2044, 0xfec: 0x2049, 0xfed: 0x2058, 0xfee: 0x205d, 0xfef: 0x2062,\n\t0xff0: 0x2067, 0xff1: 0x206c, 0xff2: 0x2071, 0xff3: 0x2076, 0xff4: 0x207b, 0xff5: 0x2080,\n\t0xff6: 0x2085, 0xff7: 0x208a, 0xff8: 0x208f, 0xff9: 0x2094, 0xffa: 0x2099, 0xffb: 0x209e,\n\t0xffc: 0x20a3, 0xffd: 0x20a8, 0xffe: 0x20ad, 0xfff: 0x20b7,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x20bc, 0x1001: 0x20c1, 0x1002: 0x20c6, 0x1003: 0x20d0, 0x1004: 0x20d5, 0x1005: 0x20df,\n\t0x1006: 0x20e4, 0x1007: 0x20e9, 0x1008: 0x20ee, 0x1009: 0x20f3, 0x100a: 0x20f8, 0x100b: 0x20fd,\n\t0x100c: 0x2102, 0x100d: 0x2107, 0x100e: 0x2116, 0x100f: 0x2125, 0x1010: 0x212a, 0x1011: 0x212f,\n\t0x1012: 0x2134, 0x1013: 0x2139, 0x1014: 0x213e, 0x1015: 0x2148, 0x1016: 0x214d, 0x1017: 0x2152,\n\t0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x4561, 0x101c: 0x4567, 0x101d: 0x459d,\n\t0x101e: 0x45f4, 0x101f: 0x45fb, 0x1020: 0x4602, 0x1021: 0x4609, 0x1022: 0x4610, 0x1023: 0x4617,\n\t0x1024: 0x26f6, 0x1025: 0x26fd, 0x1026: 0x2704, 0x1027: 0x270b, 0x1028: 0x2720, 0x1029: 0x2727,\n\t0x102a: 0x1ec8, 0x102b: 0x1ecd, 0x102c: 0x1ed2, 0x102d: 0x1ed7, 0x102e: 0x1ee1, 0x102f: 0x1ee6,\n\t0x1030: 0x1efa, 0x1031: 0x1eff, 0x1032: 0x1f04, 0x1033: 0x1f09, 0x1034: 0x1f13, 0x1035: 0x1f18,\n\t0x1036: 0x1f22, 0x1037: 0x1f27, 0x1038: 0x1f2c, 0x1039: 0x1f31, 0x103a: 0x1f3b, 0x103b: 0x1f40,\n\t0x103c: 0x206c, 0x103d: 0x2071, 0x103e: 0x2080, 0x103f: 0x2085,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x208a, 0x1041: 0x209e, 0x1042: 0x20a3, 0x1043: 0x20a8, 0x1044: 0x20ad, 0x1045: 0x20c6,\n\t0x1046: 0x20d0, 0x1047: 0x20d5, 0x1048: 0x20da, 0x1049: 0x20ee, 0x104a: 0x210c, 0x104b: 0x2111,\n\t0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x459d, 0x1051: 0x2157,\n\t0x1052: 0x215c, 0x1053: 0x2161, 0x1054: 0x2166, 0x1055: 0x2170, 0x1056: 0x2175, 0x1057: 0x26e1,\n\t0x1058: 0x26e8, 0x1059: 0x26ef, 0x105a: 0x2704, 0x105b: 0x2712, 0x105c: 0x1eb9, 0x105d: 0x1ebe,\n\t0x105e: 0x1ec3, 0x105f: 0x1ed2, 0x1060: 0x1edc, 0x1061: 0x1eeb, 0x1062: 0x1ef0, 0x1063: 0x1ef5,\n\t0x1064: 0x1f04, 0x1065: 0x1f0e, 0x1066: 0x1f2c, 0x1067: 0x1f45, 0x1068: 0x1f4a, 0x1069: 0x1f59,\n\t0x106a: 0x1f5e, 0x106b: 0x1f6d, 0x106c: 0x1f77, 0x106d: 0x1f86, 0x106e: 0x1f8b, 0x106f: 0x1f90,\n\t0x1070: 0x1f9a, 0x1071: 0x1fd6, 0x1072: 0x1fdb, 0x1073: 0x1fe5, 0x1074: 0x1ff4, 0x1075: 0x1ff9,\n\t0x1076: 0x1ffe, 0x1077: 0x2008, 0x1078: 0x2017, 0x1079: 0x202b, 0x107a: 0x2030, 0x107b: 0x2035,\n\t0x107c: 0x2044, 0x107d: 0x2049, 0x107e: 0x2058, 0x107f: 0x205d,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x2062, 0x1081: 0x2067, 0x1082: 0x2076, 0x1083: 0x207b, 0x1084: 0x208f, 0x1085: 0x2094,\n\t0x1086: 0x2099, 0x1087: 0x209e, 0x1088: 0x20a3, 0x1089: 0x20b7, 0x108a: 0x20bc, 0x108b: 0x20c1,\n\t0x108c: 0x20c6, 0x108d: 0x20cb, 0x108e: 0x20df, 0x108f: 0x20e4, 0x1090: 0x20e9, 0x1091: 0x20ee,\n\t0x1092: 0x20fd, 0x1093: 0x2102, 0x1094: 0x2107, 0x1095: 0x2116, 0x1096: 0x2120, 0x1097: 0x212f,\n\t0x1098: 0x2134, 0x1099: 0x4591, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161,\n\t0x109e: 0x216b, 0x109f: 0x2704, 0x10a0: 0x2712, 0x10a1: 0x1ed2, 0x10a2: 0x1edc, 0x10a3: 0x1f04,\n\t0x10a4: 0x1f0e, 0x10a5: 0x1f2c, 0x10a6: 0x1f36, 0x10a7: 0x1f9a, 0x10a8: 0x1f9f, 0x10a9: 0x1fc2,\n\t0x10aa: 0x1fc7, 0x10ab: 0x209e, 0x10ac: 0x20a3, 0x10ad: 0x20c6, 0x10ae: 0x2116, 0x10af: 0x2120,\n\t0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x4645, 0x10b3: 0x464d, 0x10b4: 0x4655, 0x10b5: 0x2021,\n\t0x10b6: 0x2026, 0x10b7: 0x203a, 0x10b8: 0x203f, 0x10b9: 0x204e, 0x10ba: 0x2053, 0x10bb: 0x1fa4,\n\t0x10bc: 0x1fa9, 0x10bd: 0x1fcc, 0x10be: 0x1fd1, 0x10bf: 0x1f63,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1f68, 0x10c1: 0x1f4f, 0x10c2: 0x1f54, 0x10c3: 0x1f7c, 0x10c4: 0x1f81, 0x10c5: 0x1fea,\n\t0x10c6: 0x1fef, 0x10c7: 0x200d, 0x10c8: 0x2012, 0x10c9: 0x1fae, 0x10ca: 0x1fb3, 0x10cb: 0x1fb8,\n\t0x10cc: 0x1fc2, 0x10cd: 0x1fbd, 0x10ce: 0x1f95, 0x10cf: 0x1fe0, 0x10d0: 0x2003, 0x10d1: 0x2021,\n\t0x10d2: 0x2026, 0x10d3: 0x203a, 0x10d4: 0x203f, 0x10d5: 0x204e, 0x10d6: 0x2053, 0x10d7: 0x1fa4,\n\t0x10d8: 0x1fa9, 0x10d9: 0x1fcc, 0x10da: 0x1fd1, 0x10db: 0x1f63, 0x10dc: 0x1f68, 0x10dd: 0x1f4f,\n\t0x10de: 0x1f54, 0x10df: 0x1f7c, 0x10e0: 0x1f81, 0x10e1: 0x1fea, 0x10e2: 0x1fef, 0x10e3: 0x200d,\n\t0x10e4: 0x2012, 0x10e5: 0x1fae, 0x10e6: 0x1fb3, 0x10e7: 0x1fb8, 0x10e8: 0x1fc2, 0x10e9: 0x1fbd,\n\t0x10ea: 0x1f95, 0x10eb: 0x1fe0, 0x10ec: 0x2003, 0x10ed: 0x1fae, 0x10ee: 0x1fb3, 0x10ef: 0x1fb8,\n\t0x10f0: 0x1fc2, 0x10f1: 0x1f9f, 0x10f2: 0x1fc7, 0x10f3: 0x201c, 0x10f4: 0x1f86, 0x10f5: 0x1f8b,\n\t0x10f6: 0x1f90, 0x10f7: 0x1fae, 0x10f8: 0x1fb3, 0x10f9: 0x1fb8, 0x10fa: 0x201c, 0x10fb: 0x202b,\n\t0x10fc: 0x4549, 0x10fd: 0x4549,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2441, 0x1111: 0x2456,\n\t0x1112: 0x2456, 0x1113: 0x245d, 0x1114: 0x2464, 0x1115: 0x2479, 0x1116: 0x2480, 0x1117: 0x2487,\n\t0x1118: 0x24aa, 0x1119: 0x24aa, 0x111a: 0x24cd, 0x111b: 0x24c6, 0x111c: 0x24e2, 0x111d: 0x24d4,\n\t0x111e: 0x24db, 0x111f: 0x24fe, 0x1120: 0x24fe, 0x1121: 0x24f7, 0x1122: 0x2505, 0x1123: 0x2505,\n\t0x1124: 0x252f, 0x1125: 0x252f, 0x1126: 0x254b, 0x1127: 0x2513, 0x1128: 0x2513, 0x1129: 0x250c,\n\t0x112a: 0x2521, 0x112b: 0x2521, 0x112c: 0x2528, 0x112d: 0x2528, 0x112e: 0x2552, 0x112f: 0x2560,\n\t0x1130: 0x2560, 0x1131: 0x2567, 0x1132: 0x2567, 0x1133: 0x256e, 0x1134: 0x2575, 0x1135: 0x257c,\n\t0x1136: 0x2583, 0x1137: 0x2583, 0x1138: 0x258a, 0x1139: 0x2598, 0x113a: 0x25a6, 0x113b: 0x259f,\n\t0x113c: 0x25ad, 0x113d: 0x25ad, 0x113e: 0x25c2, 0x113f: 0x25c9,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x25fa, 0x1141: 0x2608, 0x1142: 0x2601, 0x1143: 0x25e5, 0x1144: 0x25e5, 0x1145: 0x260f,\n\t0x1146: 0x260f, 0x1147: 0x2616, 0x1148: 0x2616, 0x1149: 0x2640, 0x114a: 0x2647, 0x114b: 0x264e,\n\t0x114c: 0x2624, 0x114d: 0x2632, 0x114e: 0x2655, 0x114f: 0x265c,\n\t0x1152: 0x262b, 0x1153: 0x26b0, 0x1154: 0x26b7, 0x1155: 0x268d, 0x1156: 0x2694, 0x1157: 0x2678,\n\t0x1158: 0x2678, 0x1159: 0x267f, 0x115a: 0x26a9, 0x115b: 0x26a2, 0x115c: 0x26cc, 0x115d: 0x26cc,\n\t0x115e: 0x243a, 0x115f: 0x244f, 0x1160: 0x2448, 0x1161: 0x2472, 0x1162: 0x246b, 0x1163: 0x2495,\n\t0x1164: 0x248e, 0x1165: 0x24b8, 0x1166: 0x249c, 0x1167: 0x24b1, 0x1168: 0x24e9, 0x1169: 0x2536,\n\t0x116a: 0x251a, 0x116b: 0x2559, 0x116c: 0x25f3, 0x116d: 0x261d, 0x116e: 0x26c5, 0x116f: 0x26be,\n\t0x1170: 0x26d3, 0x1171: 0x266a, 0x1172: 0x25d0, 0x1173: 0x269b, 0x1174: 0x25c2, 0x1175: 0x25fa,\n\t0x1176: 0x2591, 0x1177: 0x25de, 0x1178: 0x2671, 0x1179: 0x2663, 0x117a: 0x25ec, 0x117b: 0x25d7,\n\t0x117c: 0x25ec, 0x117d: 0x2671, 0x117e: 0x24a3, 0x117f: 0x24bf,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x2639, 0x1181: 0x25b4, 0x1182: 0x2433, 0x1183: 0x25d7, 0x1184: 0x257c, 0x1185: 0x254b,\n\t0x1186: 0x24f0, 0x1187: 0x2686,\n\t0x11b0: 0x2544, 0x11b1: 0x25bb, 0x11b2: 0x28f6, 0x11b3: 0x28ed, 0x11b4: 0x2923, 0x11b5: 0x2911,\n\t0x11b6: 0x28ff, 0x11b7: 0x291a, 0x11b8: 0x292c, 0x11b9: 0x253d, 0x11ba: 0x2db3, 0x11bb: 0x2c33,\n\t0x11bc: 0x2908,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x057e,\n\t0x11d2: 0x0582, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x05ba,\n\t0x11d8: 0x05be, 0x11d9: 0x1c8c,\n\t0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133,\n\t0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e,\n\t0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133,\n\t0x11f0: 0x19a0, 0x11f1: 0x053a, 0x11f2: 0x0536, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x05b2, 0x11fa: 0x05b6, 0x11fb: 0x05a6,\n\t0x11fc: 0x05aa, 0x11fd: 0x058e, 0x11fe: 0x0592, 0x11ff: 0x0586,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x058a, 0x1201: 0x0596, 0x1202: 0x059a, 0x1203: 0x059e, 0x1204: 0x05a2,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x43aa, 0x120a: 0x43aa, 0x120b: 0x43aa,\n\t0x120c: 0x43aa, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x053a, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x05b2,\n\t0x121e: 0x05b6, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x43eb, 0x1231: 0x456d, 0x1232: 0x43f0, 0x1234: 0x43f5,\n\t0x1236: 0x43fa, 0x1237: 0x4573, 0x1238: 0x43ff, 0x1239: 0x4579, 0x123a: 0x4404, 0x123b: 0x457f,\n\t0x123c: 0x4409, 0x123d: 0x4585, 0x123e: 0x440e, 0x123f: 0x458b,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0329, 0x1241: 0x454f, 0x1242: 0x454f, 0x1243: 0x4555, 0x1244: 0x4555, 0x1245: 0x4597,\n\t0x1246: 0x4597, 0x1247: 0x455b, 0x1248: 0x455b, 0x1249: 0x45a3, 0x124a: 0x45a3, 0x124b: 0x45a3,\n\t0x124c: 0x45a3, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f,\n\t0x1252: 0x032f, 0x1253: 0x0332, 0x1254: 0x0332, 0x1255: 0x0335, 0x1256: 0x0335, 0x1257: 0x0335,\n\t0x1258: 0x0335, 0x1259: 0x0338, 0x125a: 0x0338, 0x125b: 0x0338, 0x125c: 0x0338, 0x125d: 0x033b,\n\t0x125e: 0x033b, 0x125f: 0x033b, 0x1260: 0x033b, 0x1261: 0x033e, 0x1262: 0x033e, 0x1263: 0x033e,\n\t0x1264: 0x033e, 0x1265: 0x0341, 0x1266: 0x0341, 0x1267: 0x0341, 0x1268: 0x0341, 0x1269: 0x0344,\n\t0x126a: 0x0344, 0x126b: 0x0347, 0x126c: 0x0347, 0x126d: 0x034a, 0x126e: 0x034a, 0x126f: 0x034d,\n\t0x1270: 0x034d, 0x1271: 0x0350, 0x1272: 0x0350, 0x1273: 0x0350, 0x1274: 0x0350, 0x1275: 0x0353,\n\t0x1276: 0x0353, 0x1277: 0x0353, 0x1278: 0x0353, 0x1279: 0x0356, 0x127a: 0x0356, 0x127b: 0x0356,\n\t0x127c: 0x0356, 0x127d: 0x0359, 0x127e: 0x0359, 0x127f: 0x0359,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0359, 0x1281: 0x035c, 0x1282: 0x035c, 0x1283: 0x035c, 0x1284: 0x035c, 0x1285: 0x035f,\n\t0x1286: 0x035f, 0x1287: 0x035f, 0x1288: 0x035f, 0x1289: 0x0362, 0x128a: 0x0362, 0x128b: 0x0362,\n\t0x128c: 0x0362, 0x128d: 0x0365, 0x128e: 0x0365, 0x128f: 0x0365, 0x1290: 0x0365, 0x1291: 0x0368,\n\t0x1292: 0x0368, 0x1293: 0x0368, 0x1294: 0x0368, 0x1295: 0x036b, 0x1296: 0x036b, 0x1297: 0x036b,\n\t0x1298: 0x036b, 0x1299: 0x036e, 0x129a: 0x036e, 0x129b: 0x036e, 0x129c: 0x036e, 0x129d: 0x0371,\n\t0x129e: 0x0371, 0x129f: 0x0371, 0x12a0: 0x0371, 0x12a1: 0x0374, 0x12a2: 0x0374, 0x12a3: 0x0374,\n\t0x12a4: 0x0374, 0x12a5: 0x0377, 0x12a6: 0x0377, 0x12a7: 0x0377, 0x12a8: 0x0377, 0x12a9: 0x037a,\n\t0x12aa: 0x037a, 0x12ab: 0x037a, 0x12ac: 0x037a, 0x12ad: 0x037d, 0x12ae: 0x037d, 0x12af: 0x0380,\n\t0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2f41,\n\t0x12b6: 0x2f41, 0x12b7: 0x2f49, 0x12b8: 0x2f49, 0x12b9: 0x2f51, 0x12ba: 0x2f51, 0x12bb: 0x20b2,\n\t0x12bc: 0x20b2,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x056e, 0x12e0: 0x0572, 0x12e1: 0x0582, 0x12e2: 0x0596, 0x12e3: 0x059a,\n\t0x12e4: 0x057e, 0x12e5: 0x06a6, 0x12e6: 0x069e, 0x12e7: 0x05c2, 0x12e8: 0x05ca, 0x12e9: 0x05d2,\n\t0x12ea: 0x05da, 0x12eb: 0x05e2, 0x12ec: 0x0666, 0x12ed: 0x066e, 0x12ee: 0x0676, 0x12ef: 0x061a,\n\t0x12f0: 0x06aa, 0x12f1: 0x05c6, 0x12f2: 0x05ce, 0x12f3: 0x05d6, 0x12f4: 0x05de, 0x12f5: 0x05e6,\n\t0x12f6: 0x05ea, 0x12f7: 0x05ee, 0x12f8: 0x05f2, 0x12f9: 0x05f6, 0x12fa: 0x05fa, 0x12fb: 0x05fe,\n\t0x12fc: 0x0602, 0x12fd: 0x0606, 0x12fe: 0x060a, 0x12ff: 0x060e,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0612, 0x1301: 0x0616, 0x1302: 0x061e, 0x1303: 0x0622, 0x1304: 0x0626, 0x1305: 0x062a,\n\t0x1306: 0x062e, 0x1307: 0x0632, 0x1308: 0x0636, 0x1309: 0x063a, 0x130a: 0x063e, 0x130b: 0x0642,\n\t0x130c: 0x0646, 0x130d: 0x064a, 0x130e: 0x064e, 0x130f: 0x0652, 0x1310: 0x0656, 0x1311: 0x065a,\n\t0x1312: 0x065e, 0x1313: 0x0662, 0x1314: 0x066a, 0x1315: 0x0672, 0x1316: 0x067a, 0x1317: 0x067e,\n\t0x1318: 0x0682, 0x1319: 0x0686, 0x131a: 0x068a, 0x131b: 0x068e, 0x131c: 0x0692, 0x131d: 0x06a2,\n\t0x131e: 0x4bb9, 0x131f: 0x4bbf, 0x1320: 0x04b6, 0x1321: 0x0406, 0x1322: 0x040a, 0x1323: 0x4b7c,\n\t0x1324: 0x040e, 0x1325: 0x4b82, 0x1326: 0x4b88, 0x1327: 0x0412, 0x1328: 0x0416, 0x1329: 0x041a,\n\t0x132a: 0x4b8e, 0x132b: 0x4b94, 0x132c: 0x4b9a, 0x132d: 0x4ba0, 0x132e: 0x4ba6, 0x132f: 0x4bac,\n\t0x1330: 0x045a, 0x1331: 0x041e, 0x1332: 0x0422, 0x1333: 0x0426, 0x1334: 0x046e, 0x1335: 0x042a,\n\t0x1336: 0x042e, 0x1337: 0x0432, 0x1338: 0x0436, 0x1339: 0x043a, 0x133a: 0x043e, 0x133b: 0x0442,\n\t0x133c: 0x0446, 0x133d: 0x044a, 0x133e: 0x044e,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x4afe, 0x1343: 0x4b04, 0x1344: 0x4b0a, 0x1345: 0x4b10,\n\t0x1346: 0x4b16, 0x1347: 0x4b1c, 0x134a: 0x4b22, 0x134b: 0x4b28,\n\t0x134c: 0x4b2e, 0x134d: 0x4b34, 0x134e: 0x4b3a, 0x134f: 0x4b40,\n\t0x1352: 0x4b46, 0x1353: 0x4b4c, 0x1354: 0x4b52, 0x1355: 0x4b58, 0x1356: 0x4b5e, 0x1357: 0x4b64,\n\t0x135a: 0x4b6a, 0x135b: 0x4b70, 0x135c: 0x4b76,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x43a5,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x053e, 0x1368: 0x0562, 0x1369: 0x0542,\n\t0x136a: 0x0546, 0x136b: 0x054a, 0x136c: 0x054e, 0x136d: 0x0566, 0x136e: 0x056a,\n\t// Block 0x4e, offset 0x1380\n\t0x1381: 0x01f1, 0x1382: 0x01f4, 0x1383: 0x00d4, 0x1384: 0x01be, 0x1385: 0x010d,\n\t0x1387: 0x01d3, 0x1388: 0x174e, 0x1389: 0x01d9, 0x138a: 0x01d6, 0x138b: 0x0116,\n\t0x138c: 0x0119, 0x138d: 0x0526, 0x138e: 0x011c, 0x138f: 0x0128, 0x1390: 0x01e5, 0x1391: 0x013a,\n\t0x1392: 0x0134, 0x1393: 0x012e, 0x1394: 0x01c1, 0x1395: 0x00e0, 0x1396: 0x01c4, 0x1397: 0x0143,\n\t0x1398: 0x0194, 0x1399: 0x01e8, 0x139a: 0x01eb, 0x139b: 0x0152, 0x139c: 0x1756, 0x139d: 0x1742,\n\t0x139e: 0x0158, 0x139f: 0x175b, 0x13a0: 0x01a9, 0x13a1: 0x1760, 0x13a2: 0x00da, 0x13a3: 0x0170,\n\t0x13a4: 0x0173, 0x13a5: 0x00a3, 0x13a6: 0x017c, 0x13a7: 0x1765, 0x13a8: 0x0182, 0x13a9: 0x0185,\n\t0x13aa: 0x0188, 0x13ab: 0x01e2, 0x13ac: 0x01dc, 0x13ad: 0x1752, 0x13ae: 0x01df, 0x13af: 0x0197,\n\t0x13b0: 0x0576, 0x13b2: 0x01ac, 0x13b3: 0x01cd, 0x13b4: 0x01d0, 0x13b5: 0x01bb,\n\t0x13b6: 0x00f5, 0x13b7: 0x00f8, 0x13b8: 0x00fb, 0x13b9: 0x176a, 0x13ba: 0x176f,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0063, 0x13c1: 0x0065, 0x13c2: 0x0067, 0x13c3: 0x0069, 0x13c4: 0x006b, 0x13c5: 0x006d,\n\t0x13c6: 0x006f, 0x13c7: 0x0071, 0x13c8: 0x0073, 0x13c9: 0x0075, 0x13ca: 0x0083, 0x13cb: 0x0085,\n\t0x13cc: 0x0087, 0x13cd: 0x0089, 0x13ce: 0x008b, 0x13cf: 0x008d, 0x13d0: 0x008f, 0x13d1: 0x0091,\n\t0x13d2: 0x0093, 0x13d3: 0x0095, 0x13d4: 0x0097, 0x13d5: 0x0099, 0x13d6: 0x009b, 0x13d7: 0x009d,\n\t0x13d8: 0x009f, 0x13d9: 0x00a1, 0x13da: 0x00a3, 0x13db: 0x00a5, 0x13dc: 0x00a7, 0x13dd: 0x00a9,\n\t0x13de: 0x00ab, 0x13df: 0x00ad, 0x13e0: 0x00af, 0x13e1: 0x00b1, 0x13e2: 0x00b3, 0x13e3: 0x00b5,\n\t0x13e4: 0x00e3, 0x13e5: 0x0101, 0x13e8: 0x01f7, 0x13e9: 0x01fa,\n\t0x13ea: 0x01fd, 0x13eb: 0x0200, 0x13ec: 0x0203, 0x13ed: 0x0206, 0x13ee: 0x0209, 0x13ef: 0x020c,\n\t0x13f0: 0x020f, 0x13f1: 0x0212, 0x13f2: 0x0215, 0x13f3: 0x0218, 0x13f4: 0x021b, 0x13f5: 0x021e,\n\t0x13f6: 0x0221, 0x13f7: 0x0224, 0x13f8: 0x0227, 0x13f9: 0x020c, 0x13fa: 0x022a, 0x13fb: 0x022d,\n\t0x13fc: 0x0230, 0x13fd: 0x0233, 0x13fe: 0x0236, 0x13ff: 0x0239,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0281, 0x1401: 0x0284, 0x1402: 0x0287, 0x1403: 0x0552, 0x1404: 0x024b, 0x1405: 0x0254,\n\t0x1406: 0x025a, 0x1407: 0x027e, 0x1408: 0x026f, 0x1409: 0x026c, 0x140a: 0x028a, 0x140b: 0x028d,\n\t0x140e: 0x0021, 0x140f: 0x0023, 0x1410: 0x0025, 0x1411: 0x0027,\n\t0x1412: 0x0029, 0x1413: 0x002b, 0x1414: 0x002d, 0x1415: 0x002f, 0x1416: 0x0031, 0x1417: 0x0033,\n\t0x1418: 0x0021, 0x1419: 0x0023, 0x141a: 0x0025, 0x141b: 0x0027, 0x141c: 0x0029, 0x141d: 0x002b,\n\t0x141e: 0x002d, 0x141f: 0x002f, 0x1420: 0x0031, 0x1421: 0x0033, 0x1422: 0x0021, 0x1423: 0x0023,\n\t0x1424: 0x0025, 0x1425: 0x0027, 0x1426: 0x0029, 0x1427: 0x002b, 0x1428: 0x002d, 0x1429: 0x002f,\n\t0x142a: 0x0031, 0x142b: 0x0033, 0x142c: 0x0021, 0x142d: 0x0023, 0x142e: 0x0025, 0x142f: 0x0027,\n\t0x1430: 0x0029, 0x1431: 0x002b, 0x1432: 0x002d, 0x1433: 0x002f, 0x1434: 0x0031, 0x1435: 0x0033,\n\t0x1436: 0x0021, 0x1437: 0x0023, 0x1438: 0x0025, 0x1439: 0x0027, 0x143a: 0x0029, 0x143b: 0x002b,\n\t0x143c: 0x002d, 0x143d: 0x002f, 0x143e: 0x0031, 0x143f: 0x0033,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8133, 0x1441: 0x8133, 0x1442: 0x8133, 0x1443: 0x8133, 0x1444: 0x8133, 0x1445: 0x8133,\n\t0x1446: 0x8133, 0x1448: 0x8133, 0x1449: 0x8133, 0x144a: 0x8133, 0x144b: 0x8133,\n\t0x144c: 0x8133, 0x144d: 0x8133, 0x144e: 0x8133, 0x144f: 0x8133, 0x1450: 0x8133, 0x1451: 0x8133,\n\t0x1452: 0x8133, 0x1453: 0x8133, 0x1454: 0x8133, 0x1455: 0x8133, 0x1456: 0x8133, 0x1457: 0x8133,\n\t0x1458: 0x8133, 0x145b: 0x8133, 0x145c: 0x8133, 0x145d: 0x8133,\n\t0x145e: 0x8133, 0x145f: 0x8133, 0x1460: 0x8133, 0x1461: 0x8133, 0x1463: 0x8133,\n\t0x1464: 0x8133, 0x1466: 0x8133, 0x1467: 0x8133, 0x1468: 0x8133, 0x1469: 0x8133,\n\t0x146a: 0x8133,\n\t0x1470: 0x0290, 0x1471: 0x0293, 0x1472: 0x0296, 0x1473: 0x0299, 0x1474: 0x029c, 0x1475: 0x029f,\n\t0x1476: 0x02a2, 0x1477: 0x02a5, 0x1478: 0x02a8, 0x1479: 0x02ab, 0x147a: 0x02ae, 0x147b: 0x02b1,\n\t0x147c: 0x02b7, 0x147d: 0x02ba, 0x147e: 0x02bd, 0x147f: 0x02c0,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x02c3, 0x1481: 0x02c6, 0x1482: 0x02c9, 0x1483: 0x02cc, 0x1484: 0x02cf, 0x1485: 0x02d2,\n\t0x1486: 0x02d5, 0x1487: 0x02db, 0x1488: 0x02e1, 0x1489: 0x02e4, 0x148a: 0x1736, 0x148b: 0x0302,\n\t0x148c: 0x02ea, 0x148d: 0x02ed, 0x148e: 0x0305, 0x148f: 0x02f9, 0x1490: 0x02ff, 0x1491: 0x0290,\n\t0x1492: 0x0293, 0x1493: 0x0296, 0x1494: 0x0299, 0x1495: 0x029c, 0x1496: 0x029f, 0x1497: 0x02a2,\n\t0x1498: 0x02a5, 0x1499: 0x02a8, 0x149a: 0x02ab, 0x149b: 0x02ae, 0x149c: 0x02b7, 0x149d: 0x02ba,\n\t0x149e: 0x02c0, 0x149f: 0x02c6, 0x14a0: 0x02c9, 0x14a1: 0x02cc, 0x14a2: 0x02cf, 0x14a3: 0x02d2,\n\t0x14a4: 0x02d5, 0x14a5: 0x02d8, 0x14a6: 0x02db, 0x14a7: 0x02f3, 0x14a8: 0x02ea, 0x14a9: 0x02e7,\n\t0x14aa: 0x02f0, 0x14ab: 0x02f6, 0x14ac: 0x1732, 0x14ad: 0x02fc,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x032c, 0x14c1: 0x032f, 0x14c2: 0x033b, 0x14c3: 0x0344, 0x14c5: 0x037d,\n\t0x14c6: 0x034d, 0x14c7: 0x033e, 0x14c8: 0x035c, 0x14c9: 0x0383, 0x14ca: 0x036e, 0x14cb: 0x0371,\n\t0x14cc: 0x0374, 0x14cd: 0x0377, 0x14ce: 0x0350, 0x14cf: 0x0362, 0x14d0: 0x0368, 0x14d1: 0x0356,\n\t0x14d2: 0x036b, 0x14d3: 0x034a, 0x14d4: 0x0353, 0x14d5: 0x0335, 0x14d6: 0x0338, 0x14d7: 0x0341,\n\t0x14d8: 0x0347, 0x14d9: 0x0359, 0x14da: 0x035f, 0x14db: 0x0365, 0x14dc: 0x0386, 0x14dd: 0x03d7,\n\t0x14de: 0x03bf, 0x14df: 0x0389, 0x14e1: 0x032f, 0x14e2: 0x033b,\n\t0x14e4: 0x037a, 0x14e7: 0x033e, 0x14e9: 0x0383,\n\t0x14ea: 0x036e, 0x14eb: 0x0371, 0x14ec: 0x0374, 0x14ed: 0x0377, 0x14ee: 0x0350, 0x14ef: 0x0362,\n\t0x14f0: 0x0368, 0x14f1: 0x0356, 0x14f2: 0x036b, 0x14f4: 0x0353, 0x14f5: 0x0335,\n\t0x14f6: 0x0338, 0x14f7: 0x0341, 0x14f9: 0x0359, 0x14fb: 0x0365,\n\t// Block 0x54, offset 0x1500\n\t0x1502: 0x033b,\n\t0x1507: 0x033e, 0x1509: 0x0383, 0x150b: 0x0371,\n\t0x150d: 0x0377, 0x150e: 0x0350, 0x150f: 0x0362, 0x1511: 0x0356,\n\t0x1512: 0x036b, 0x1514: 0x0353, 0x1517: 0x0341,\n\t0x1519: 0x0359, 0x151b: 0x0365, 0x151d: 0x03d7,\n\t0x151f: 0x0389, 0x1521: 0x032f, 0x1522: 0x033b,\n\t0x1524: 0x037a, 0x1527: 0x033e, 0x1528: 0x035c, 0x1529: 0x0383,\n\t0x152a: 0x036e, 0x152c: 0x0374, 0x152d: 0x0377, 0x152e: 0x0350, 0x152f: 0x0362,\n\t0x1530: 0x0368, 0x1531: 0x0356, 0x1532: 0x036b, 0x1534: 0x0353, 0x1535: 0x0335,\n\t0x1536: 0x0338, 0x1537: 0x0341, 0x1539: 0x0359, 0x153a: 0x035f, 0x153b: 0x0365,\n\t0x153c: 0x0386, 0x153e: 0x03bf,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x032c, 0x1541: 0x032f, 0x1542: 0x033b, 0x1543: 0x0344, 0x1544: 0x037a, 0x1545: 0x037d,\n\t0x1546: 0x034d, 0x1547: 0x033e, 0x1548: 0x035c, 0x1549: 0x0383, 0x154b: 0x0371,\n\t0x154c: 0x0374, 0x154d: 0x0377, 0x154e: 0x0350, 0x154f: 0x0362, 0x1550: 0x0368, 0x1551: 0x0356,\n\t0x1552: 0x036b, 0x1553: 0x034a, 0x1554: 0x0353, 0x1555: 0x0335, 0x1556: 0x0338, 0x1557: 0x0341,\n\t0x1558: 0x0347, 0x1559: 0x0359, 0x155a: 0x035f, 0x155b: 0x0365,\n\t0x1561: 0x032f, 0x1562: 0x033b, 0x1563: 0x0344,\n\t0x1565: 0x037d, 0x1566: 0x034d, 0x1567: 0x033e, 0x1568: 0x035c, 0x1569: 0x0383,\n\t0x156b: 0x0371, 0x156c: 0x0374, 0x156d: 0x0377, 0x156e: 0x0350, 0x156f: 0x0362,\n\t0x1570: 0x0368, 0x1571: 0x0356, 0x1572: 0x036b, 0x1573: 0x034a, 0x1574: 0x0353, 0x1575: 0x0335,\n\t0x1576: 0x0338, 0x1577: 0x0341, 0x1578: 0x0347, 0x1579: 0x0359, 0x157a: 0x035f, 0x157b: 0x0365,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x19a6, 0x1581: 0x19a3, 0x1582: 0x19a9, 0x1583: 0x19cd, 0x1584: 0x19f1, 0x1585: 0x1a15,\n\t0x1586: 0x1a39, 0x1587: 0x1a42, 0x1588: 0x1a48, 0x1589: 0x1a4e, 0x158a: 0x1a54,\n\t0x1590: 0x1bbc, 0x1591: 0x1bc0,\n\t0x1592: 0x1bc4, 0x1593: 0x1bc8, 0x1594: 0x1bcc, 0x1595: 0x1bd0, 0x1596: 0x1bd4, 0x1597: 0x1bd8,\n\t0x1598: 0x1bdc, 0x1599: 0x1be0, 0x159a: 0x1be4, 0x159b: 0x1be8, 0x159c: 0x1bec, 0x159d: 0x1bf0,\n\t0x159e: 0x1bf4, 0x159f: 0x1bf8, 0x15a0: 0x1bfc, 0x15a1: 0x1c00, 0x15a2: 0x1c04, 0x15a3: 0x1c08,\n\t0x15a4: 0x1c0c, 0x15a5: 0x1c10, 0x15a6: 0x1c14, 0x15a7: 0x1c18, 0x15a8: 0x1c1c, 0x15a9: 0x1c20,\n\t0x15aa: 0x2855, 0x15ab: 0x0047, 0x15ac: 0x0065, 0x15ad: 0x1a69, 0x15ae: 0x1ae1,\n\t0x15b0: 0x0043, 0x15b1: 0x0045, 0x15b2: 0x0047, 0x15b3: 0x0049, 0x15b4: 0x004b, 0x15b5: 0x004d,\n\t0x15b6: 0x004f, 0x15b7: 0x0051, 0x15b8: 0x0053, 0x15b9: 0x0055, 0x15ba: 0x0057, 0x15bb: 0x0059,\n\t0x15bc: 0x005b, 0x15bd: 0x005d, 0x15be: 0x005f, 0x15bf: 0x0061,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x27dd, 0x15c1: 0x27f2, 0x15c2: 0x05fe,\n\t0x15d0: 0x0d0a, 0x15d1: 0x0b42,\n\t0x15d2: 0x09ce, 0x15d3: 0x4705, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa,\n\t0x15d8: 0x0822, 0x15d9: 0x0dd2, 0x15da: 0x0faa, 0x15db: 0x0daa, 0x15dc: 0x0922, 0x15dd: 0x0c66,\n\t0x15de: 0x08ba, 0x15df: 0x0db2, 0x15e0: 0x090e, 0x15e1: 0x1212, 0x15e2: 0x107e, 0x15e3: 0x1486,\n\t0x15e4: 0x0ace, 0x15e5: 0x0a06, 0x15e6: 0x0f5e, 0x15e7: 0x0d16, 0x15e8: 0x0d42, 0x15e9: 0x07ba,\n\t0x15ea: 0x07c6, 0x15eb: 0x1506, 0x15ec: 0x0bd6, 0x15ed: 0x07e2, 0x15ee: 0x09ea, 0x15ef: 0x0d36,\n\t0x15f0: 0x14ae, 0x15f1: 0x0d0e, 0x15f2: 0x116a, 0x15f3: 0x11a6, 0x15f4: 0x09f2, 0x15f5: 0x0f3e,\n\t0x15f6: 0x0e06, 0x15f7: 0x0e02, 0x15f8: 0x1092, 0x15f9: 0x0926, 0x15fa: 0x0a52, 0x15fb: 0x153e,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x07f6, 0x1601: 0x07ee, 0x1602: 0x07fe, 0x1603: 0x1774, 0x1604: 0x0842, 0x1605: 0x0852,\n\t0x1606: 0x0856, 0x1607: 0x085e, 0x1608: 0x0866, 0x1609: 0x086a, 0x160a: 0x0876, 0x160b: 0x086e,\n\t0x160c: 0x06ae, 0x160d: 0x1788, 0x160e: 0x088a, 0x160f: 0x088e, 0x1610: 0x0892, 0x1611: 0x08ae,\n\t0x1612: 0x1779, 0x1613: 0x06b2, 0x1614: 0x089a, 0x1615: 0x08ba, 0x1616: 0x1783, 0x1617: 0x08ca,\n\t0x1618: 0x08d2, 0x1619: 0x0832, 0x161a: 0x08da, 0x161b: 0x08de, 0x161c: 0x195e, 0x161d: 0x08fa,\n\t0x161e: 0x0902, 0x161f: 0x06ba, 0x1620: 0x091a, 0x1621: 0x091e, 0x1622: 0x0926, 0x1623: 0x092a,\n\t0x1624: 0x06be, 0x1625: 0x0942, 0x1626: 0x0946, 0x1627: 0x0952, 0x1628: 0x095e, 0x1629: 0x0962,\n\t0x162a: 0x0966, 0x162b: 0x096e, 0x162c: 0x098e, 0x162d: 0x0992, 0x162e: 0x099a, 0x162f: 0x09aa,\n\t0x1630: 0x09b2, 0x1631: 0x09b6, 0x1632: 0x09b6, 0x1633: 0x09b6, 0x1634: 0x1797, 0x1635: 0x0f8e,\n\t0x1636: 0x09ca, 0x1637: 0x09d2, 0x1638: 0x179c, 0x1639: 0x09de, 0x163a: 0x09e6, 0x163b: 0x09ee,\n\t0x163c: 0x0a16, 0x163d: 0x0a02, 0x163e: 0x0a0e, 0x163f: 0x0a12,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0a1a, 0x1641: 0x0a22, 0x1642: 0x0a26, 0x1643: 0x0a2e, 0x1644: 0x0a36, 0x1645: 0x0a3a,\n\t0x1646: 0x0a3a, 0x1647: 0x0a42, 0x1648: 0x0a4a, 0x1649: 0x0a4e, 0x164a: 0x0a5a, 0x164b: 0x0a7e,\n\t0x164c: 0x0a62, 0x164d: 0x0a82, 0x164e: 0x0a66, 0x164f: 0x0a6e, 0x1650: 0x0906, 0x1651: 0x0aca,\n\t0x1652: 0x0a92, 0x1653: 0x0a96, 0x1654: 0x0a9a, 0x1655: 0x0a8e, 0x1656: 0x0aa2, 0x1657: 0x0a9e,\n\t0x1658: 0x0ab6, 0x1659: 0x17a1, 0x165a: 0x0ad2, 0x165b: 0x0ad6, 0x165c: 0x0ade, 0x165d: 0x0aea,\n\t0x165e: 0x0af2, 0x165f: 0x0b0e, 0x1660: 0x17a6, 0x1661: 0x17ab, 0x1662: 0x0b1a, 0x1663: 0x0b1e,\n\t0x1664: 0x0b22, 0x1665: 0x0b16, 0x1666: 0x0b2a, 0x1667: 0x06c2, 0x1668: 0x06c6, 0x1669: 0x0b32,\n\t0x166a: 0x0b3a, 0x166b: 0x0b3a, 0x166c: 0x17b0, 0x166d: 0x0b56, 0x166e: 0x0b5a, 0x166f: 0x0b5e,\n\t0x1670: 0x0b66, 0x1671: 0x17b5, 0x1672: 0x0b6e, 0x1673: 0x0b72, 0x1674: 0x0c4a, 0x1675: 0x0b7a,\n\t0x1676: 0x06ca, 0x1677: 0x0b86, 0x1678: 0x0b96, 0x1679: 0x0ba2, 0x167a: 0x0b9e, 0x167b: 0x17bf,\n\t0x167c: 0x0baa, 0x167d: 0x17c4, 0x167e: 0x0bb6, 0x167f: 0x0bb2,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0bba, 0x1681: 0x0bca, 0x1682: 0x0bce, 0x1683: 0x06ce, 0x1684: 0x0bde, 0x1685: 0x0be6,\n\t0x1686: 0x0bea, 0x1687: 0x0bee, 0x1688: 0x06d2, 0x1689: 0x17c9, 0x168a: 0x06d6, 0x168b: 0x0c0a,\n\t0x168c: 0x0c0e, 0x168d: 0x0c12, 0x168e: 0x0c1a, 0x168f: 0x1990, 0x1690: 0x0c32, 0x1691: 0x17d3,\n\t0x1692: 0x17d3, 0x1693: 0x12d2, 0x1694: 0x0c42, 0x1695: 0x0c42, 0x1696: 0x06da, 0x1697: 0x17f6,\n\t0x1698: 0x18c8, 0x1699: 0x0c52, 0x169a: 0x0c5a, 0x169b: 0x06de, 0x169c: 0x0c6e, 0x169d: 0x0c7e,\n\t0x169e: 0x0c82, 0x169f: 0x0c8a, 0x16a0: 0x0c9a, 0x16a1: 0x06e6, 0x16a2: 0x06e2, 0x16a3: 0x0c9e,\n\t0x16a4: 0x17d8, 0x16a5: 0x0ca2, 0x16a6: 0x0cb6, 0x16a7: 0x0cba, 0x16a8: 0x0cbe, 0x16a9: 0x0cba,\n\t0x16aa: 0x0cca, 0x16ab: 0x0cce, 0x16ac: 0x0cde, 0x16ad: 0x0cd6, 0x16ae: 0x0cda, 0x16af: 0x0ce2,\n\t0x16b0: 0x0ce6, 0x16b1: 0x0cea, 0x16b2: 0x0cf6, 0x16b3: 0x0cfa, 0x16b4: 0x0d12, 0x16b5: 0x0d1a,\n\t0x16b6: 0x0d2a, 0x16b7: 0x0d3e, 0x16b8: 0x17e7, 0x16b9: 0x0d3a, 0x16ba: 0x0d2e, 0x16bb: 0x0d46,\n\t0x16bc: 0x0d4e, 0x16bd: 0x0d62, 0x16be: 0x17ec, 0x16bf: 0x0d6a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0d5e, 0x16c1: 0x0d56, 0x16c2: 0x06ea, 0x16c3: 0x0d72, 0x16c4: 0x0d7a, 0x16c5: 0x0d82,\n\t0x16c6: 0x0d76, 0x16c7: 0x06ee, 0x16c8: 0x0d92, 0x16c9: 0x0d9a, 0x16ca: 0x17f1, 0x16cb: 0x0dc6,\n\t0x16cc: 0x0dfa, 0x16cd: 0x0dd6, 0x16ce: 0x06fa, 0x16cf: 0x0de2, 0x16d0: 0x06f6, 0x16d1: 0x06f2,\n\t0x16d2: 0x08be, 0x16d3: 0x08c2, 0x16d4: 0x0dfe, 0x16d5: 0x0de6, 0x16d6: 0x12a6, 0x16d7: 0x075e,\n\t0x16d8: 0x0e0a, 0x16d9: 0x0e0e, 0x16da: 0x0e12, 0x16db: 0x0e26, 0x16dc: 0x0e1e, 0x16dd: 0x180a,\n\t0x16de: 0x06fe, 0x16df: 0x0e3a, 0x16e0: 0x0e2e, 0x16e1: 0x0e4a, 0x16e2: 0x0e52, 0x16e3: 0x1814,\n\t0x16e4: 0x0e56, 0x16e5: 0x0e42, 0x16e6: 0x0e5e, 0x16e7: 0x0702, 0x16e8: 0x0e62, 0x16e9: 0x0e66,\n\t0x16ea: 0x0e6a, 0x16eb: 0x0e76, 0x16ec: 0x1819, 0x16ed: 0x0e7e, 0x16ee: 0x0706, 0x16ef: 0x0e8a,\n\t0x16f0: 0x181e, 0x16f1: 0x0e8e, 0x16f2: 0x070a, 0x16f3: 0x0e9a, 0x16f4: 0x0ea6, 0x16f5: 0x0eb2,\n\t0x16f6: 0x0eb6, 0x16f7: 0x1823, 0x16f8: 0x17ba, 0x16f9: 0x1828, 0x16fa: 0x0ed6, 0x16fb: 0x182d,\n\t0x16fc: 0x0ee2, 0x16fd: 0x0eea, 0x16fe: 0x0eda, 0x16ff: 0x0ef6,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0f06, 0x1701: 0x0f16, 0x1702: 0x0f0a, 0x1703: 0x0f0e, 0x1704: 0x0f1a, 0x1705: 0x0f1e,\n\t0x1706: 0x1832, 0x1707: 0x0f02, 0x1708: 0x0f36, 0x1709: 0x0f3a, 0x170a: 0x070e, 0x170b: 0x0f4e,\n\t0x170c: 0x0f4a, 0x170d: 0x1837, 0x170e: 0x0f2e, 0x170f: 0x0f6a, 0x1710: 0x183c, 0x1711: 0x1841,\n\t0x1712: 0x0f6e, 0x1713: 0x0f82, 0x1714: 0x0f7e, 0x1715: 0x0f7a, 0x1716: 0x0712, 0x1717: 0x0f86,\n\t0x1718: 0x0f96, 0x1719: 0x0f92, 0x171a: 0x0f9e, 0x171b: 0x177e, 0x171c: 0x0fae, 0x171d: 0x1846,\n\t0x171e: 0x0fba, 0x171f: 0x1850, 0x1720: 0x0fce, 0x1721: 0x0fda, 0x1722: 0x0fee, 0x1723: 0x1855,\n\t0x1724: 0x1002, 0x1725: 0x1006, 0x1726: 0x185a, 0x1727: 0x185f, 0x1728: 0x1022, 0x1729: 0x1032,\n\t0x172a: 0x0716, 0x172b: 0x1036, 0x172c: 0x071a, 0x172d: 0x071a, 0x172e: 0x104e, 0x172f: 0x1052,\n\t0x1730: 0x105a, 0x1731: 0x105e, 0x1732: 0x106a, 0x1733: 0x071e, 0x1734: 0x1082, 0x1735: 0x1864,\n\t0x1736: 0x109e, 0x1737: 0x1869, 0x1738: 0x10aa, 0x1739: 0x17ce, 0x173a: 0x10ba, 0x173b: 0x186e,\n\t0x173c: 0x1873, 0x173d: 0x1878, 0x173e: 0x0722, 0x173f: 0x0726,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x10f2, 0x1741: 0x1882, 0x1742: 0x187d, 0x1743: 0x1887, 0x1744: 0x188c, 0x1745: 0x10fa,\n\t0x1746: 0x10fe, 0x1747: 0x10fe, 0x1748: 0x1106, 0x1749: 0x072e, 0x174a: 0x110a, 0x174b: 0x0732,\n\t0x174c: 0x0736, 0x174d: 0x1896, 0x174e: 0x111e, 0x174f: 0x1126, 0x1750: 0x1132, 0x1751: 0x073a,\n\t0x1752: 0x189b, 0x1753: 0x1156, 0x1754: 0x18a0, 0x1755: 0x18a5, 0x1756: 0x1176, 0x1757: 0x118e,\n\t0x1758: 0x073e, 0x1759: 0x1196, 0x175a: 0x119a, 0x175b: 0x119e, 0x175c: 0x18aa, 0x175d: 0x18af,\n\t0x175e: 0x18af, 0x175f: 0x11b6, 0x1760: 0x0742, 0x1761: 0x18b4, 0x1762: 0x11ca, 0x1763: 0x11ce,\n\t0x1764: 0x0746, 0x1765: 0x18b9, 0x1766: 0x11ea, 0x1767: 0x074a, 0x1768: 0x11fa, 0x1769: 0x11f2,\n\t0x176a: 0x1202, 0x176b: 0x18c3, 0x176c: 0x121a, 0x176d: 0x074e, 0x176e: 0x1226, 0x176f: 0x122e,\n\t0x1770: 0x123e, 0x1771: 0x0752, 0x1772: 0x18cd, 0x1773: 0x18d2, 0x1774: 0x0756, 0x1775: 0x18d7,\n\t0x1776: 0x1256, 0x1777: 0x18dc, 0x1778: 0x1262, 0x1779: 0x126e, 0x177a: 0x1276, 0x177b: 0x18e1,\n\t0x177c: 0x18e6, 0x177d: 0x128a, 0x177e: 0x18eb, 0x177f: 0x1292,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x17fb, 0x1781: 0x075a, 0x1782: 0x12aa, 0x1783: 0x12ae, 0x1784: 0x0762, 0x1785: 0x12b2,\n\t0x1786: 0x0b2e, 0x1787: 0x18f0, 0x1788: 0x18f5, 0x1789: 0x1800, 0x178a: 0x1805, 0x178b: 0x12d2,\n\t0x178c: 0x12d6, 0x178d: 0x14ee, 0x178e: 0x0766, 0x178f: 0x1302, 0x1790: 0x12fe, 0x1791: 0x1306,\n\t0x1792: 0x093a, 0x1793: 0x130a, 0x1794: 0x130e, 0x1795: 0x1312, 0x1796: 0x131a, 0x1797: 0x18fa,\n\t0x1798: 0x1316, 0x1799: 0x131e, 0x179a: 0x1332, 0x179b: 0x1336, 0x179c: 0x1322, 0x179d: 0x133a,\n\t0x179e: 0x134e, 0x179f: 0x1362, 0x17a0: 0x132e, 0x17a1: 0x1342, 0x17a2: 0x1346, 0x17a3: 0x134a,\n\t0x17a4: 0x18ff, 0x17a5: 0x1909, 0x17a6: 0x1904, 0x17a7: 0x076a, 0x17a8: 0x136a, 0x17a9: 0x136e,\n\t0x17aa: 0x1376, 0x17ab: 0x191d, 0x17ac: 0x137a, 0x17ad: 0x190e, 0x17ae: 0x076e, 0x17af: 0x0772,\n\t0x17b0: 0x1913, 0x17b1: 0x1918, 0x17b2: 0x0776, 0x17b3: 0x139a, 0x17b4: 0x139e, 0x17b5: 0x13a2,\n\t0x17b6: 0x13a6, 0x17b7: 0x13b2, 0x17b8: 0x13ae, 0x17b9: 0x13ba, 0x17ba: 0x13b6, 0x17bb: 0x13c6,\n\t0x17bc: 0x13be, 0x17bd: 0x13c2, 0x17be: 0x13ca, 0x17bf: 0x077a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x13d2, 0x17c1: 0x13d6, 0x17c2: 0x077e, 0x17c3: 0x13e6, 0x17c4: 0x13ea, 0x17c5: 0x1922,\n\t0x17c6: 0x13f6, 0x17c7: 0x13fa, 0x17c8: 0x0782, 0x17c9: 0x1406, 0x17ca: 0x06b6, 0x17cb: 0x1927,\n\t0x17cc: 0x192c, 0x17cd: 0x0786, 0x17ce: 0x078a, 0x17cf: 0x1432, 0x17d0: 0x144a, 0x17d1: 0x1466,\n\t0x17d2: 0x1476, 0x17d3: 0x1931, 0x17d4: 0x148a, 0x17d5: 0x148e, 0x17d6: 0x14a6, 0x17d7: 0x14b2,\n\t0x17d8: 0x193b, 0x17d9: 0x178d, 0x17da: 0x14be, 0x17db: 0x14ba, 0x17dc: 0x14c6, 0x17dd: 0x1792,\n\t0x17de: 0x14d2, 0x17df: 0x14de, 0x17e0: 0x1940, 0x17e1: 0x1945, 0x17e2: 0x151e, 0x17e3: 0x152a,\n\t0x17e4: 0x1532, 0x17e5: 0x194a, 0x17e6: 0x1536, 0x17e7: 0x1562, 0x17e8: 0x156e, 0x17e9: 0x1572,\n\t0x17ea: 0x156a, 0x17eb: 0x157e, 0x17ec: 0x1582, 0x17ed: 0x194f, 0x17ee: 0x158e, 0x17ef: 0x078e,\n\t0x17f0: 0x1596, 0x17f1: 0x1954, 0x17f2: 0x0792, 0x17f3: 0x15ce, 0x17f4: 0x0bbe, 0x17f5: 0x15e6,\n\t0x17f6: 0x1959, 0x17f7: 0x1963, 0x17f8: 0x0796, 0x17f9: 0x079a, 0x17fa: 0x160e, 0x17fb: 0x1968,\n\t0x17fc: 0x079e, 0x17fd: 0x196d, 0x17fe: 0x1626, 0x17ff: 0x1626,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x162e, 0x1801: 0x1972, 0x1802: 0x1646, 0x1803: 0x07a2, 0x1804: 0x1656, 0x1805: 0x1662,\n\t0x1806: 0x166a, 0x1807: 0x1672, 0x1808: 0x07a6, 0x1809: 0x1977, 0x180a: 0x1686, 0x180b: 0x16a2,\n\t0x180c: 0x16ae, 0x180d: 0x07aa, 0x180e: 0x07ae, 0x180f: 0x16b2, 0x1810: 0x197c, 0x1811: 0x07b2,\n\t0x1812: 0x1981, 0x1813: 0x1986, 0x1814: 0x198b, 0x1815: 0x16d6, 0x1816: 0x07b6, 0x1817: 0x16ea,\n\t0x1818: 0x16f2, 0x1819: 0x16f6, 0x181a: 0x16fe, 0x181b: 0x1706, 0x181c: 0x170e, 0x181d: 0x1995,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5f, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x60, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x61, 0xcb: 0x62, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x63, 0xd2: 0x64, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x65,\n\t0xd8: 0x66, 0xd9: 0x0d, 0xdb: 0x67, 0xdc: 0x68, 0xdd: 0x69, 0xdf: 0x6a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x6b, 0x121: 0x6c, 0x122: 0x6d, 0x123: 0x0e, 0x124: 0x6e, 0x125: 0x6f, 0x126: 0x70, 0x127: 0x71,\n\t0x128: 0x72, 0x129: 0x73, 0x12a: 0x74, 0x12b: 0x75, 0x12c: 0x70, 0x12d: 0x76, 0x12e: 0x77, 0x12f: 0x78,\n\t0x130: 0x74, 0x131: 0x79, 0x132: 0x7a, 0x133: 0x7b, 0x134: 0x7c, 0x135: 0x7d, 0x137: 0x7e,\n\t0x138: 0x7f, 0x139: 0x80, 0x13a: 0x81, 0x13b: 0x82, 0x13c: 0x83, 0x13d: 0x84, 0x13e: 0x85, 0x13f: 0x86,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x87, 0x142: 0x88, 0x143: 0x89, 0x144: 0x8a, 0x145: 0x8b, 0x146: 0x8c, 0x147: 0x8d,\n\t0x14d: 0x8e,\n\t0x15c: 0x8f, 0x15f: 0x90,\n\t0x162: 0x91, 0x164: 0x92,\n\t0x168: 0x93, 0x169: 0x94, 0x16a: 0x95, 0x16b: 0x96, 0x16c: 0x0f, 0x16d: 0x97, 0x16e: 0x98, 0x16f: 0x99,\n\t0x170: 0x9a, 0x173: 0x9b, 0x174: 0x9c, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x9d, 0x181: 0x9e, 0x182: 0x9f, 0x183: 0xa0, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0xa1, 0x187: 0xa2,\n\t0x188: 0xa3, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa4, 0x18c: 0xa5,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa6,\n\t0x1a8: 0xa7, 0x1a9: 0xa8, 0x1ab: 0xa9,\n\t0x1b1: 0xaa, 0x1b3: 0xab, 0x1b5: 0xac, 0x1b7: 0xad,\n\t0x1ba: 0xae, 0x1bb: 0xaf, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xb0,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xb1, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xb2, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xb3, 0x21a: 0xb4, 0x21b: 0xb5, 0x21d: 0xb6, 0x21f: 0xb7,\n\t0x220: 0xb8, 0x223: 0xb9, 0x224: 0xba, 0x225: 0xbb, 0x226: 0xbc, 0x227: 0xbd,\n\t0x22a: 0xbe, 0x22b: 0xbf, 0x22d: 0xc0, 0x22f: 0xc1,\n\t0x230: 0xc2, 0x231: 0xc3, 0x232: 0xc4, 0x233: 0xc5, 0x234: 0xc6, 0x235: 0xc7, 0x236: 0xc8, 0x237: 0xc2,\n\t0x238: 0xc3, 0x239: 0xc4, 0x23a: 0xc5, 0x23b: 0xc6, 0x23c: 0xc7, 0x23d: 0xc8, 0x23e: 0xc2, 0x23f: 0xc3,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xc4, 0x241: 0xc5, 0x242: 0xc6, 0x243: 0xc7, 0x244: 0xc8, 0x245: 0xc2, 0x246: 0xc3, 0x247: 0xc4,\n\t0x248: 0xc5, 0x249: 0xc6, 0x24a: 0xc7, 0x24b: 0xc8, 0x24c: 0xc2, 0x24d: 0xc3, 0x24e: 0xc4, 0x24f: 0xc5,\n\t0x250: 0xc6, 0x251: 0xc7, 0x252: 0xc8, 0x253: 0xc2, 0x254: 0xc3, 0x255: 0xc4, 0x256: 0xc5, 0x257: 0xc6,\n\t0x258: 0xc7, 0x259: 0xc8, 0x25a: 0xc2, 0x25b: 0xc3, 0x25c: 0xc4, 0x25d: 0xc5, 0x25e: 0xc6, 0x25f: 0xc7,\n\t0x260: 0xc8, 0x261: 0xc2, 0x262: 0xc3, 0x263: 0xc4, 0x264: 0xc5, 0x265: 0xc6, 0x266: 0xc7, 0x267: 0xc8,\n\t0x268: 0xc2, 0x269: 0xc3, 0x26a: 0xc4, 0x26b: 0xc5, 0x26c: 0xc6, 0x26d: 0xc7, 0x26e: 0xc8, 0x26f: 0xc2,\n\t0x270: 0xc3, 0x271: 0xc4, 0x272: 0xc5, 0x273: 0xc6, 0x274: 0xc7, 0x275: 0xc8, 0x276: 0xc2, 0x277: 0xc3,\n\t0x278: 0xc4, 0x279: 0xc5, 0x27a: 0xc6, 0x27b: 0xc7, 0x27c: 0xc8, 0x27d: 0xc2, 0x27e: 0xc3, 0x27f: 0xc4,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc5, 0x281: 0xc6, 0x282: 0xc7, 0x283: 0xc8, 0x284: 0xc2, 0x285: 0xc3, 0x286: 0xc4, 0x287: 0xc5,\n\t0x288: 0xc6, 0x289: 0xc7, 0x28a: 0xc8, 0x28b: 0xc2, 0x28c: 0xc3, 0x28d: 0xc4, 0x28e: 0xc5, 0x28f: 0xc6,\n\t0x290: 0xc7, 0x291: 0xc8, 0x292: 0xc2, 0x293: 0xc3, 0x294: 0xc4, 0x295: 0xc5, 0x296: 0xc6, 0x297: 0xc7,\n\t0x298: 0xc8, 0x299: 0xc2, 0x29a: 0xc3, 0x29b: 0xc4, 0x29c: 0xc5, 0x29d: 0xc6, 0x29e: 0xc7, 0x29f: 0xc8,\n\t0x2a0: 0xc2, 0x2a1: 0xc3, 0x2a2: 0xc4, 0x2a3: 0xc5, 0x2a4: 0xc6, 0x2a5: 0xc7, 0x2a6: 0xc8, 0x2a7: 0xc2,\n\t0x2a8: 0xc3, 0x2a9: 0xc4, 0x2aa: 0xc5, 0x2ab: 0xc6, 0x2ac: 0xc7, 0x2ad: 0xc8, 0x2ae: 0xc2, 0x2af: 0xc3,\n\t0x2b0: 0xc4, 0x2b1: 0xc5, 0x2b2: 0xc6, 0x2b3: 0xc7, 0x2b4: 0xc8, 0x2b5: 0xc2, 0x2b6: 0xc3, 0x2b7: 0xc4,\n\t0x2b8: 0xc5, 0x2b9: 0xc6, 0x2ba: 0xc7, 0x2bb: 0xc8, 0x2bc: 0xc2, 0x2bd: 0xc3, 0x2be: 0xc4, 0x2bf: 0xc5,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc6, 0x2c1: 0xc7, 0x2c2: 0xc8, 0x2c3: 0xc2, 0x2c4: 0xc3, 0x2c5: 0xc4, 0x2c6: 0xc5, 0x2c7: 0xc6,\n\t0x2c8: 0xc7, 0x2c9: 0xc8, 0x2ca: 0xc2, 0x2cb: 0xc3, 0x2cc: 0xc4, 0x2cd: 0xc5, 0x2ce: 0xc6, 0x2cf: 0xc7,\n\t0x2d0: 0xc8, 0x2d1: 0xc2, 0x2d2: 0xc3, 0x2d3: 0xc4, 0x2d4: 0xc5, 0x2d5: 0xc6, 0x2d6: 0xc7, 0x2d7: 0xc8,\n\t0x2d8: 0xc2, 0x2d9: 0xc3, 0x2da: 0xc4, 0x2db: 0xc5, 0x2dc: 0xc6, 0x2dd: 0xc7, 0x2de: 0xc9,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xca, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xcb,\n\t0x34b: 0xcc, 0x34d: 0xcd,\n\t0x35e: 0x4c,\n\t0x368: 0xce, 0x36b: 0xcf,\n\t0x374: 0xd0,\n\t0x37a: 0xd1, 0x37b: 0xd2, 0x37d: 0xd3, 0x37e: 0xd4,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xd5, 0x382: 0xd6, 0x384: 0xd7, 0x385: 0xbc, 0x387: 0xd8,\n\t0x388: 0xd9, 0x38b: 0xda, 0x38c: 0xdb, 0x38d: 0xdc,\n\t0x391: 0xdd, 0x392: 0xde, 0x393: 0xdf, 0x396: 0xe0, 0x397: 0xe1,\n\t0x398: 0xe2, 0x39a: 0xe3, 0x39c: 0xe4,\n\t0x3a0: 0xe5, 0x3a4: 0xe6, 0x3a5: 0xe7, 0x3a7: 0xe8,\n\t0x3a8: 0xe9, 0x3a9: 0xea, 0x3aa: 0xeb,\n\t0x3b0: 0xe2, 0x3b5: 0xec, 0x3b6: 0xed,\n\t0x3bd: 0xee,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xef, 0x3ec: 0xf0,\n\t0x3ff: 0xf1,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xf2,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xf3, 0x446: 0xf4, 0x447: 0xf5,\n\t0x449: 0xf6,\n\t0x450: 0xf7, 0x451: 0xf8, 0x452: 0xf9, 0x453: 0xfa, 0x454: 0xfb, 0x455: 0xfc, 0x456: 0xfd, 0x457: 0xfe,\n\t0x458: 0xff, 0x459: 0x100, 0x45a: 0x4d, 0x45b: 0x101, 0x45c: 0x102, 0x45d: 0x103, 0x45e: 0x104, 0x45f: 0x4e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x4f, 0x481: 0x50, 0x482: 0x105, 0x484: 0xf0,\n\t0x48a: 0x106, 0x48b: 0x107,\n\t0x493: 0x108,\n\t0x4a3: 0x109, 0x4a5: 0x10a,\n\t0x4b8: 0x51, 0x4b9: 0x52, 0x4ba: 0x53,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x54, 0x4c5: 0x10b, 0x4c6: 0x10c,\n\t0x4c8: 0x55, 0x4c9: 0x10d,\n\t0x4ef: 0x10e,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x56, 0x521: 0x57, 0x522: 0x58, 0x523: 0x59, 0x524: 0x5a, 0x525: 0x5b, 0x526: 0x5c, 0x527: 0x5d,\n\t0x528: 0x5e,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 176 entries, 352 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1c, 0x26, 0x36, 0x38, 0x3d, 0x48, 0x57, 0x64, 0x6c, 0x71, 0x76, 0x78, 0x7c, 0x84, 0x8b, 0x8e, 0x96, 0x9a, 0x9e, 0xa0, 0xa2, 0xab, 0xaf, 0xb6, 0xbb, 0xbe, 0xc8, 0xcb, 0xd2, 0xda, 0xde, 0xe0, 0xe4, 0xe8, 0xee, 0xff, 0x10b, 0x10d, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11d, 0x11f, 0x121, 0x124, 0x127, 0x129, 0x12c, 0x12f, 0x133, 0x139, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x174, 0x182, 0x192, 0x1a0, 0x1a7, 0x1ad, 0x1bc, 0x1c0, 0x1c2, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1d0, 0x1d2, 0x1d5, 0x1d7, 0x1d9, 0x1db, 0x1e7, 0x1f1, 0x1fb, 0x1fe, 0x202, 0x204, 0x206, 0x20b, 0x20e, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21f, 0x222, 0x227, 0x229, 0x230, 0x236, 0x23c, 0x244, 0x24a, 0x250, 0x256, 0x25a, 0x25c, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x26d, 0x26f, 0x271, 0x277, 0x27b, 0x27f, 0x287, 0x28e, 0x291, 0x294, 0x296, 0x299, 0x2a1, 0x2a5, 0x2ac, 0x2af, 0x2b5, 0x2b7, 0x2b9, 0x2bc, 0x2be, 0x2c1, 0x2c6, 0x2c8, 0x2ca, 0x2cc, 0x2ce, 0x2d0, 0x2d3, 0x2d5, 0x2d7, 0x2d9, 0x2db, 0x2dd, 0x2df, 0x2ec, 0x2f6, 0x2f8, 0x2fa, 0x2fe, 0x303, 0x30f, 0x314, 0x31d, 0x323, 0x328, 0x32c, 0x331, 0x335, 0x345, 0x353, 0x361, 0x36f, 0x371, 0x373, 0x375, 0x379, 0x37b, 0x37e, 0x389, 0x38b, 0x395}\n\n// nfkcSparseValues: 919 entries, 3676 bytes\nvar nfkcSparseValues = [919]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x43b9, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x43a5, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x439b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0260, lo: 0xb5, hi: 0xb5},\n\t{value: 0x43d2, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x234c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x23e2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x4823, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4855, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0140, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0179, lo: 0xb4, hi: 0xb4},\n\t{value: 0x017f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x018b, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb8},\n\t// Block 0x3, offset 0x1c\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x43af, lo: 0x98, hi: 0x98},\n\t{value: 0x43b4, lo: 0x99, hi: 0x9a},\n\t{value: 0x43d7, lo: 0x9b, hi: 0x9b},\n\t{value: 0x43a0, lo: 0x9c, hi: 0x9c},\n\t{value: 0x43c3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0137, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x01b8, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x26\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x38e6, lo: 0x90, hi: 0x90},\n\t{value: 0x38f2, lo: 0x91, hi: 0x91},\n\t{value: 0x38e0, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3958, lo: 0x97, hi: 0x97},\n\t{value: 0x3922, lo: 0x9c, hi: 0x9c},\n\t{value: 0x390a, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3934, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x395e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3964, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x36\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x38\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3982, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3988, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3994, lo: 0xa4, hi: 0xa4},\n\t{value: 0x398e, lo: 0xa5, hi: 0xa5},\n\t{value: 0x399a, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x48\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x39ac, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x39a0, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x39a6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x57\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x64\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x71\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x76\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x78\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0x98, hi: 0x98},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t{value: 0x8133, lo: 0x9c, hi: 0x9f},\n\t// Block 0xf, offset 0x7c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x4019, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x4021, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4029, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x84\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x465d, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x8b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x8e\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2dd5, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x469d, lo: 0x9c, hi: 0x9d},\n\t{value: 0x46ad, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x96\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x46d5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x46dd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x9a\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x46b5, lo: 0x99, hi: 0x9b},\n\t{value: 0x46cd, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x9e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xa0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xa2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ded, lo: 0x88, hi: 0x88},\n\t{value: 0x2de5, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2df5, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x46e5, lo: 0x9c, hi: 0x9c},\n\t{value: 0x46ed, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2dfd, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xaf\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e05, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e15, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e0d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x4031, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xbb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xbe\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2e1d, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2e25, lo: 0x87, hi: 0x87},\n\t{value: 0x2e2d, lo: 0x88, hi: 0x88},\n\t{value: 0x3091, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2f19, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xcb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e45, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e3d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xd2\n\t{value: 0x6ab3, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4039, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3099, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2f24, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2e4d, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xda\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2751, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xde\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xe0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2766, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xe4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t{value: 0x2758, lo: 0x9c, hi: 0x9c},\n\t{value: 0x275f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xe8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x03fe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xee\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2774, lo: 0x83, hi: 0x83},\n\t{value: 0x277b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2782, lo: 0x92, hi: 0x92},\n\t{value: 0x2789, lo: 0x97, hi: 0x97},\n\t{value: 0x2790, lo: 0x9c, hi: 0x9c},\n\t{value: 0x276d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4bc5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4bce, lo: 0xb5, hi: 0xb5},\n\t{value: 0x46f5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x4735, lo: 0xb7, hi: 0xb7},\n\t{value: 0x46fd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4740, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xff\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4bd7, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x279e, lo: 0x93, hi: 0x93},\n\t{value: 0x27a5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x27ac, lo: 0xa2, hi: 0xa2},\n\t{value: 0x27b3, lo: 0xa7, hi: 0xa7},\n\t{value: 0x27ba, lo: 0xac, hi: 0xac},\n\t{value: 0x2797, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x10b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x10d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2e55, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x115\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0402, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x117\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x119\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x11d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x11f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x121\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x95},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x124\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x129\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x12c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x12f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x133\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x37, offset 0x139\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8133, lo: 0x8b, hi: 0x8e},\n\t// Block 0x38, offset 0x140\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2e9d, lo: 0x80, hi: 0x80},\n\t{value: 0x2ea5, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2ead, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x39, offset 0x149\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x3a, offset 0x14b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3b, offset 0x14e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3c, offset 0x150\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3d, offset 0x15b\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00ec, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00fe, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x166\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x0532, lo: 0x91, hi: 0x91},\n\t{value: 0x43dc, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x19a0, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1c8c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x27c1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2935, lo: 0xb4, hi: 0xb4},\n\t{value: 0x27c8, lo: 0xb6, hi: 0xb6},\n\t{value: 0x293f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x199a, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43aa, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3f, offset 0x174\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1a60, lo: 0x87, hi: 0x87},\n\t{value: 0x1a5d, lo: 0x88, hi: 0x88},\n\t{value: 0x199d, lo: 0x89, hi: 0x89},\n\t{value: 0x2ac5, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x055e, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x40, offset 0x182\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x055e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x011f, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1ac9, lo: 0xa8, hi: 0xa8},\n\t// Block 0x41, offset 0x192\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x42, offset 0x1a0\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x22b0, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3cfa, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3d08, lo: 0xae, hi: 0xae},\n\t// Block 0x43, offset 0x1a7\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3d0f, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3d16, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x44, offset 0x1ad\n\t{value: 0x017a, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3d24, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3d2b, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3d32, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3d39, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3d40, lo: 0xa6, hi: 0xa6},\n\t{value: 0x27cf, lo: 0xac, hi: 0xad},\n\t{value: 0x27d6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2953, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x45, offset 0x1bc\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3da9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3dd3, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3dfd, lo: 0xaa, hi: 0xad},\n\t// Block 0x46, offset 0x1c0\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x0586, lo: 0xa9, hi: 0xaa},\n\t// Block 0x47, offset 0x1c2\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x48, offset 0x1c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x2ad2, lo: 0x8c, hi: 0x8c},\n\t// Block 0x49, offset 0x1c8\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1cbc, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1a5a, lo: 0xb5, hi: 0xb6},\n\t// Block 0x4a, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x461e, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4b, offset 0x1cd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4c, offset 0x1d0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4d, offset 0x1d2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x057a, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4e, offset 0x1d5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4f, offset 0x1d7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0ebe, lo: 0x9f, hi: 0x9f},\n\t// Block 0x50, offset 0x1d9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x172a, lo: 0xb3, hi: 0xb3},\n\t// Block 0x51, offset 0x1db\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1692, lo: 0x80, hi: 0x82},\n\t{value: 0x16aa, lo: 0x83, hi: 0x83},\n\t{value: 0x16c2, lo: 0x84, hi: 0x85},\n\t{value: 0x16d2, lo: 0x86, hi: 0x89},\n\t{value: 0x16e6, lo: 0x8a, hi: 0x8c},\n\t{value: 0x16fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1702, lo: 0x8e, hi: 0x8e},\n\t{value: 0x170a, lo: 0x8f, hi: 0x90},\n\t{value: 0x1716, lo: 0x91, hi: 0x93},\n\t{value: 0x1726, lo: 0x94, hi: 0x94},\n\t{value: 0x172e, lo: 0x95, hi: 0x95},\n\t// Block 0x52, offset 0x1e7\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xae},\n\t{value: 0x8130, lo: 0xaf, hi: 0xaf},\n\t{value: 0x05ae, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0982, lo: 0xb8, hi: 0xba},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0406, lo: 0xb1, hi: 0xb1},\n\t{value: 0x040a, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4b7c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x040e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4b82, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0412, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0416, lo: 0xb8, hi: 0xb8},\n\t{value: 0x041a, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4b8e, lo: 0xba, hi: 0xbf},\n\t// Block 0x54, offset 0x1fb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x55, offset 0x1fe\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x02d8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x02de, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x56, offset 0x202\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x57, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x173e, lo: 0xb0, hi: 0xb0},\n\t// Block 0x58, offset 0x206\n\t{value: 0x0006, lo: 0x04},\n\t{value: 0x0047, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0063, lo: 0xb4, hi: 0xb4},\n\t{value: 0x00dd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x00e9, lo: 0xb9, hi: 0xb9},\n\t// Block 0x59, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x5a, offset 0x20e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5b, offset 0x211\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x5c, offset 0x213\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x5d, offset 0x215\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5e, offset 0x217\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x5f, offset 0x219\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x60, offset 0x21f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x61, offset 0x222\n\t{value: 0x000c, lo: 0x04},\n\t{value: 0x173a, lo: 0x9c, hi: 0x9d},\n\t{value: 0x014f, lo: 0x9e, hi: 0x9e},\n\t{value: 0x174a, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01a6, lo: 0xa9, hi: 0xa9},\n\t// Block 0x62, offset 0x227\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x63, offset 0x229\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x64, offset 0x230\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x65, offset 0x236\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x66, offset 0x23c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x67, offset 0x244\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x68, offset 0x24a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x69, offset 0x250\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x6a, offset 0x256\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6b, offset 0x25a\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6c, offset 0x25c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6d, offset 0x25e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6e, offset 0x260\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x6f, offset 0x262\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x71, offset 0x26b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x72, offset 0x26d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x73, offset 0x26f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbf},\n\t// Block 0x74, offset 0x271\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x277\n\t{value: 0x0005, lo: 0x03},\n\t{value: 0x8133, lo: 0x82, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t// Block 0x76, offset 0x27b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x77, offset 0x27f\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4379, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4383, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x438d, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x78, offset 0x287\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2eb5, lo: 0xae, hi: 0xae},\n\t{value: 0x2ebf, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x79, offset 0x28e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7a, offset 0x291\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7b, offset 0x294\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7c, offset 0x296\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x299\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ec9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ed3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7e, offset 0x2a1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7f, offset 0x2a5\n\t{value: 0x6a23, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2ee7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2edd, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2ef1, lo: 0xbe, hi: 0xbe},\n\t// Block 0x80, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x81, offset 0x2af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2efb, lo: 0xba, hi: 0xba},\n\t{value: 0x2f05, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x82, offset 0x2b5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x83, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x84, offset 0x2b9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x85, offset 0x2bc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x86, offset 0x2be\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x87, offset 0x2c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2f0f, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x88, offset 0x2c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x89, offset 0x2c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8a, offset 0x2ca\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8b, offset 0x2cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8c, offset 0x2ce\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8d, offset 0x2d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8e, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8f, offset 0x2d5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x81, hi: 0x82},\n\t// Block 0x90, offset 0x2d7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x91, offset 0x2d9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x92, offset 0x2db\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x93, offset 0x2dd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x94, offset 0x2df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x470d, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4717, lo: 0x9f, hi: 0x9f},\n\t{value: 0x474b, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4759, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4767, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4775, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4783, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x95, offset 0x2ec\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x4721, lo: 0xbb, hi: 0xbb},\n\t{value: 0x472b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4791, lo: 0xbd, hi: 0xbd},\n\t{value: 0x47ad, lo: 0xbe, hi: 0xbe},\n\t{value: 0x479f, lo: 0xbf, hi: 0xbf},\n\t// Block 0x96, offset 0x2f6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x47bb, lo: 0x80, hi: 0x80},\n\t// Block 0x97, offset 0x2f8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x98, offset 0x2fa\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x99, offset 0x2fe\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9a, offset 0x303\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x9b, offset 0x30f\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9c, offset 0x314\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x9d, offset 0x31d\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x9e, offset 0x323\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x9f, offset 0x328\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0xa0, offset 0x32c\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0xa1, offset 0x331\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa2, offset 0x335\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x023c, lo: 0x80, hi: 0x80},\n\t{value: 0x0556, lo: 0x81, hi: 0x81},\n\t{value: 0x023f, lo: 0x82, hi: 0x9a},\n\t{value: 0x0552, lo: 0x9b, hi: 0x9b},\n\t{value: 0x024b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0254, lo: 0x9d, hi: 0x9d},\n\t{value: 0x025a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x027e, lo: 0x9f, hi: 0x9f},\n\t{value: 0x026f, lo: 0xa0, hi: 0xa0},\n\t{value: 0x026c, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01f7, lo: 0xa2, hi: 0xb2},\n\t{value: 0x020c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x022a, lo: 0xb4, hi: 0xba},\n\t{value: 0x0556, lo: 0xbb, hi: 0xbb},\n\t{value: 0x023f, lo: 0xbc, hi: 0xbf},\n\t// Block 0xa3, offset 0x345\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x024b, lo: 0x80, hi: 0x94},\n\t{value: 0x0552, lo: 0x95, hi: 0x95},\n\t{value: 0x024b, lo: 0x96, hi: 0x96},\n\t{value: 0x0254, lo: 0x97, hi: 0x97},\n\t{value: 0x025a, lo: 0x98, hi: 0x98},\n\t{value: 0x027e, lo: 0x99, hi: 0x99},\n\t{value: 0x026f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x026c, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01f7, lo: 0x9c, hi: 0xac},\n\t{value: 0x020c, lo: 0xad, hi: 0xad},\n\t{value: 0x022a, lo: 0xae, hi: 0xb4},\n\t{value: 0x0556, lo: 0xb5, hi: 0xb5},\n\t{value: 0x023f, lo: 0xb6, hi: 0xbf},\n\t// Block 0xa4, offset 0x353\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x025d, lo: 0x80, hi: 0x8e},\n\t{value: 0x0552, lo: 0x8f, hi: 0x8f},\n\t{value: 0x024b, lo: 0x90, hi: 0x90},\n\t{value: 0x0254, lo: 0x91, hi: 0x91},\n\t{value: 0x025a, lo: 0x92, hi: 0x92},\n\t{value: 0x027e, lo: 0x93, hi: 0x93},\n\t{value: 0x026f, lo: 0x94, hi: 0x94},\n\t{value: 0x026c, lo: 0x95, hi: 0x95},\n\t{value: 0x01f7, lo: 0x96, hi: 0xa6},\n\t{value: 0x020c, lo: 0xa7, hi: 0xa7},\n\t{value: 0x022a, lo: 0xa8, hi: 0xae},\n\t{value: 0x0556, lo: 0xaf, hi: 0xaf},\n\t{value: 0x023f, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa5, offset 0x361\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x026f, lo: 0x80, hi: 0x88},\n\t{value: 0x0552, lo: 0x89, hi: 0x89},\n\t{value: 0x024b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0254, lo: 0x8b, hi: 0x8b},\n\t{value: 0x025a, lo: 0x8c, hi: 0x8c},\n\t{value: 0x027e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x026f, lo: 0x8e, hi: 0x8e},\n\t{value: 0x026c, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01f7, lo: 0x90, hi: 0xa0},\n\t{value: 0x020c, lo: 0xa1, hi: 0xa1},\n\t{value: 0x022a, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0556, lo: 0xa9, hi: 0xa9},\n\t{value: 0x023f, lo: 0xaa, hi: 0xbf},\n\t// Block 0xa6, offset 0x36f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t// Block 0xa7, offset 0x371\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xae, hi: 0xae},\n\t// Block 0xa8, offset 0x373\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0xa9, offset 0x375\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8134, lo: 0xac, hi: 0xad},\n\t{value: 0x812e, lo: 0xae, hi: 0xae},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t// Block 0xaa, offset 0x379\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xab, offset 0x37b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xac, offset 0x37e\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1a7e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1ab1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x1acc, lo: 0x8c, hi: 0x8c},\n\t{value: 0x1ad2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1cf0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x1ade, lo: 0x8f, hi: 0x8f},\n\t{value: 0x1aa8, lo: 0xaa, hi: 0xaa},\n\t{value: 0x1aab, lo: 0xab, hi: 0xab},\n\t{value: 0x1aae, lo: 0xac, hi: 0xac},\n\t// Block 0xad, offset 0x389\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1a6c, lo: 0x90, hi: 0x90},\n\t// Block 0xae, offset 0x38b\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2999, lo: 0x80, hi: 0x80},\n\t{value: 0x295d, lo: 0x81, hi: 0x81},\n\t{value: 0x2967, lo: 0x82, hi: 0x82},\n\t{value: 0x297b, lo: 0x83, hi: 0x84},\n\t{value: 0x2985, lo: 0x85, hi: 0x86},\n\t{value: 0x2971, lo: 0x87, hi: 0x87},\n\t{value: 0x298f, lo: 0x88, hi: 0x88},\n\t{value: 0x0c6a, lo: 0x90, hi: 0x90},\n\t{value: 0x09e2, lo: 0x91, hi: 0x91},\n\t// Block 0xaf, offset 0x395\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb9},\n}\n\n// recompMap: 7528 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\x7f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\x7f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\\x195\\x190\\x00\\x01\\x198\" + // 0x19351930: 0x00011938\n\t\"\"\n\t// Total size of tables: 56KB (57068 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"9.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 44:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 44\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 46 blocks, 2944 entries, 5888 bytes\n// The third block is the zero block.\nvar nfcValues = [2944]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2,\n\t0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0,\n\t0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df,\n\t0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85,\n\t0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93,\n\t0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c,\n\t0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370,\n\t0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a,\n\t0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de,\n\t0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7,\n\t0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a,\n\t0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e,\n\t0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9,\n\t0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465,\n\t0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26,\n\t0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791,\n\t0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b,\n\t0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4,\n\t0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f,\n\t0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49,\n\t0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532,\n\t0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541,\n\t0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582,\n\t0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6,\n\t0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1,\n\t0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f,\n\t0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15,\n\t0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23,\n\t0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a,\n\t0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c,\n\t0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70,\n\t0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1,\n\t0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf,\n\t0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6,\n\t0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5,\n\t0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11,\n\t0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73,\n\t0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a,\n\t0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578,\n\t0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e,\n\t0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6,\n\t0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c,\n\t0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,\n\t0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,\n\t0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966,\n\t0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8,\n\t0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6,\n\t0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,\n\t0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30,\n\t0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,\n\t0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58,\n\t0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a,\n\t0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,\n\t0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70,\n\t0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996,\n\t0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2,\n\t0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916,\n\t0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a,\n\t0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c,\n\t0x57c: 0x4870, 0x57d: 0x4342,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac,\n\t0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee,\n\t0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0,\n\t0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2,\n\t0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134,\n\t0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a,\n\t0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88,\n\t0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a,\n\t0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98,\n\t0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee,\n\t0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,\n\t0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa,\n\t0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,\n\t0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10,\n\t0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4,\n\t0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec,\n\t0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,\n\t0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081,\n\t0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,\n\t0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318,\n\t0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000,\n\t0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b,\n\t0x60d: 0xa000,\n\t0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29,\n\t0x624: 0xa000, 0x625: 0xa000,\n\t0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a,\n\t0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45,\n\t0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000,\n\t0x63c: 0xa000, 0x63d: 0xa000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d,\n\t0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b,\n\t0x651: 0xa000,\n\t0x652: 0xa000,\n\t0x662: 0xa000,\n\t0x668: 0xa000, 0x669: 0xa000,\n\t0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5,\n\t0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x686: 0xa000, 0x68b: 0xa000,\n\t0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000,\n\t0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000,\n\t0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000,\n\t0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60,\n\t0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78,\n\t0x6af: 0xa000,\n\t0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000,\n\t0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000,\n\t0x6bc: 0x3fc0, 0x6bd: 0x3fc8,\n\t// Block 0x1b, offset 0x6c0\n\t0x6d4: 0x3f00,\n\t0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000,\n\t0x6de: 0x3fd0,\n\t0x6e6: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000,\n\t0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000,\n\t0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000,\n\t0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040,\n\t0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050,\n\t0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060,\n\t0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080,\n\t0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0,\n\t0x72f: 0xa000,\n\t0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8,\n\t0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0,\n\t0x73d: 0xa000, 0x73e: 0x40c8,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb,\n\t0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943,\n\t0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3,\n\t0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43,\n\t0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87,\n\t0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283,\n\t0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f,\n\t0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853,\n\t0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b,\n\t0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b,\n\t0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b,\n\t0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f,\n\t0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7,\n\t0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127,\n\t0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357,\n\t0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873,\n\t0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3,\n\t0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b,\n\t0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57,\n\t0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb,\n\t0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f,\n\t0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3,\n\t0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83,\n\t0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193,\n\t0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b,\n\t0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b,\n\t0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f,\n\t0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b,\n\t0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753,\n\t0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777,\n\t0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3,\n\t0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47,\n\t0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af,\n\t0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df,\n\t0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817,\n\t0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3,\n\t0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457,\n\t0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b,\n\t0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27,\n\t0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f,\n\t0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03,\n\t0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27,\n\t0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af,\n\t0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3,\n\t0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb,\n\t0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353,\n\t0x865: 0x1407, 0x866: 0x1433,\n\t0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7,\n\t0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897,\n\t0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93,\n\t0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b,\n\t0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f,\n\t0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f,\n\t0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f,\n\t0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff,\n\t0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f,\n\t0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f,\n\t0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3,\n\t0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7,\n\t0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963,\n\t0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b,\n\t0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb,\n\t0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf,\n\t0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f,\n\t0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013,\n\t0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f,\n\t0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b,\n\t0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b,\n\t0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb,\n\t0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343,\n\t0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b,\n\t0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b,\n\t0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2,\n\t0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809,\n\t0x918: 0x1617, 0x919: 0x1627,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757,\n\t0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773,\n\t0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3,\n\t0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf,\n\t0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff,\n\t0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f,\n\t0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867,\n\t0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af,\n\t0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93,\n\t0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3,\n\t0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f,\n\t0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983,\n\t0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf,\n\t0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3,\n\t0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef,\n\t0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23,\n\t0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37,\n\t0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63,\n\t0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f,\n\t0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692,\n\t0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb,\n\t0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f,\n\t0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6,\n\t0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9,\n\t0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83,\n\t0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3,\n\t0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf,\n\t0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7,\n\t0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f,\n\t0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b,\n\t0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87,\n\t0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb,\n\t0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7,\n\t0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663,\n\t0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd,\n\t0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7,\n\t0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b,\n\t0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f,\n\t0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7,\n\t0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700,\n\t0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23,\n\t0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53,\n\t0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714,\n\t0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b,\n\t0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719,\n\t0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728,\n\t0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37,\n\t0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57,\n\t0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737,\n\t0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741,\n\t0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff,\n\t0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637,\n\t0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f,\n\t0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093,\n\t0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782,\n\t0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3,\n\t0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7,\n\t0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133,\n\t0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa,\n\t0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4,\n\t0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7,\n\t0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7,\n\t0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b,\n\t0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd,\n\t0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f,\n\t0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f,\n\t0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273,\n\t0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677,\n\t0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7,\n\t0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb,\n\t0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5,\n\t0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa,\n\t0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b,\n\t0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7,\n\t0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665,\n\t0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f,\n\t0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477,\n\t0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693,\n\t0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb,\n\t0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b,\n\t0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567,\n\t0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7,\n\t0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7,\n\t0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef,\n\t0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30,\n\t0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33,\n\t0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f,\n\t0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46,\n\t0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c,\n\t0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a,\n\t0x14d: 0x5b,\n\t0x15c: 0x5c, 0x15f: 0x5d,\n\t0x162: 0x5e, 0x164: 0x5f,\n\t0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65,\n\t0x170: 0x66, 0x173: 0x67, 0x177: 0x68,\n\t0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e,\n\t0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3b0: 0x73,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xaf, 0x3ec: 0xb0,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb1,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4,\n\t0x449: 0xb5,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xb6,\n\t0x4a3: 0xb7, 0x4a5: 0xb8,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xb9,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a,\n\t0x528: 0x2b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 142 entries, 284 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae}\n\n// nfcSparseValues: 688 entries, 2752 bytes\nvar nfcSparseValues = [688]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xce\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xdd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xdf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf5\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x103\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x109\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x115\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x118\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11d\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x120\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x123\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x127\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x135\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x137\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x147\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x157\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x15b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3f, offset 0x169\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x40, offset 0x16c\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x172\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x178\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x183\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x187\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x189\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x46, offset 0x18b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x47, offset 0x18d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x48, offset 0x18f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x49, offset 0x191\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x4a, offset 0x197\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4b, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4c, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4d, offset 0x19f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4e, offset 0x1a7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4f, offset 0x1ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x50, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x51, offset 0x1b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x52, offset 0x1b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x53, offset 0x1b4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x54, offset 0x1b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x55, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x56, offset 0x1bb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x57, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x58, offset 0x1bf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x59, offset 0x1c5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5a, offset 0x1c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5b, offset 0x1ca\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1d1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5d, offset 0x1d7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5e, offset 0x1dd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5f, offset 0x1e5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x60, offset 0x1eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x61, offset 0x1f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x62, offset 0x1f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x63, offset 0x1fb\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x64, offset 0x209\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x65, offset 0x212\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x66, offset 0x215\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x67, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x68, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x69, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x6a, offset 0x21f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6b, offset 0x223\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6c, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6d, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6e, offset 0x22c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6f, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x70, offset 0x237\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x71, offset 0x239\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x72, offset 0x23b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x73, offset 0x23d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x243\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x75, offset 0x246\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x249\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x251\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x258\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x25b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x25e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7c, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7d, offset 0x26b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7e, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7f, offset 0x275\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x80, offset 0x27b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x81, offset 0x27d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x82, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x83, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x284\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x286\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x288\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x295\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x29f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2a3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8b, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8c, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x8d, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 90:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 90\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 92 blocks, 5888 entries, 11776 bytes\n// The third block is the zero block.\nvar nfkcValues = [5888]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2,\n\t0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0,\n\t0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df,\n\t0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85,\n\t0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93,\n\t0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c,\n\t0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370,\n\t0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a,\n\t0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de,\n\t0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7,\n\t0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a,\n\t0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e,\n\t0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9,\n\t0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465,\n\t0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26,\n\t0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791,\n\t0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b,\n\t0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4,\n\t0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f,\n\t0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49,\n\t0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532,\n\t0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541,\n\t0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582,\n\t0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6,\n\t0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7,\n\t0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f,\n\t0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15,\n\t0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23,\n\t0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a,\n\t0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c,\n\t0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70,\n\t0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1,\n\t0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf,\n\t0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6,\n\t0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5,\n\t0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11,\n\t0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73,\n\t0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a,\n\t0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578,\n\t0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e,\n\t0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6,\n\t0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c,\n\t0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,\n\t0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,\n\t0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966,\n\t0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8,\n\t0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6,\n\t0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,\n\t0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30,\n\t0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,\n\t0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58,\n\t0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a,\n\t0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,\n\t0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70,\n\t0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996,\n\t0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2,\n\t0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916,\n\t0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a,\n\t0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c,\n\t0x63c: 0x4870, 0x63d: 0x4342,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac,\n\t0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee,\n\t0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0,\n\t0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2,\n\t0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134,\n\t0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a,\n\t0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88,\n\t0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a,\n\t0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98,\n\t0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee,\n\t0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,\n\t0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa,\n\t0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af,\n\t0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10,\n\t0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e,\n\t0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec,\n\t0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,\n\t0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081,\n\t0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,\n\t0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318,\n\t0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8,\n\t0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051,\n\t0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053,\n\t0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d,\n\t0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065,\n\t0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8,\n\t0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075,\n\t0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b,\n\t0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215,\n\t0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98,\n\t0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0463, 0x705: 0x0049,\n\t0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095,\n\t0x710: 0x222e, 0x711: 0x223a,\n\t0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8,\n\t0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0,\n\t0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963,\n\t0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071,\n\t0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b,\n\t0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62,\n\t0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50,\n\t0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000,\n\t0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b,\n\t0x74d: 0xa000,\n\t0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29,\n\t0x764: 0xa000, 0x765: 0xa000,\n\t0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a,\n\t0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45,\n\t0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000,\n\t0x77c: 0xa000, 0x77d: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d,\n\t0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b,\n\t0x791: 0xa000,\n\t0x792: 0xa000,\n\t0x7a2: 0xa000,\n\t0x7a8: 0xa000, 0x7a9: 0xa000,\n\t0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5,\n\t0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029,\n\t0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882,\n\t0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894,\n\t0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c,\n\t0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84,\n\t0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8,\n\t0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb,\n\t0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60,\n\t0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78,\n\t0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8,\n\t0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10,\n\t0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28,\n\t0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40,\n\t0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58,\n\t0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d,\n\t0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713,\n\t0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab,\n\t0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803,\n\t0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887,\n\t0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db,\n\t0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb,\n\t0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b,\n\t0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7,\n\t0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33,\n\t0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63,\n\t0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb,\n\t0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b,\n\t0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb,\n\t0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3,\n\t0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f,\n\t0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83,\n\t0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7,\n\t0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f,\n\t0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf,\n\t0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f,\n\t0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3,\n\t0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb,\n\t0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b,\n\t0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b,\n\t0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf,\n\t0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f,\n\t0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f,\n\t0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503,\n\t0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f,\n\t0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f,\n\t0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593,\n\t// Block 0x24, offset 0x900\n\t0x906: 0xa000, 0x90b: 0xa000,\n\t0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000,\n\t0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000,\n\t0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000,\n\t0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60,\n\t0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78,\n\t0x92f: 0xa000,\n\t0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000,\n\t0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000,\n\t0x93c: 0x3fc0, 0x93d: 0x3fc8,\n\t// Block 0x25, offset 0x940\n\t0x954: 0x3f00,\n\t0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000,\n\t0x95e: 0x3fd0, 0x95f: 0x26b4,\n\t0x966: 0xa000,\n\t0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000,\n\t0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000,\n\t0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000,\n\t0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040,\n\t0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050,\n\t0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060,\n\t0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080,\n\t0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0,\n\t0x9af: 0xa000,\n\t0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8,\n\t0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0,\n\t0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337,\n\t0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f,\n\t0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9,\n\t0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed,\n\t0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11,\n\t0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35,\n\t0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef,\n\t0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403,\n\t0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383,\n\t0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b,\n\t0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb,\n\t0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7,\n\t0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3,\n\t0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7,\n\t0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff,\n\t0xa1e: 0x098f, 0xa1f: 0x072f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072,\n\t0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096,\n\t0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741,\n\t0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780,\n\t0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac,\n\t0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108,\n\t0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0,\n\t0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e,\n\t0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144,\n\t0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114,\n\t0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03,\n\t0xa86: 0x0ca7, 0xa87: 0x10c7,\n\t0xa90: 0x1bc4, 0xa91: 0x18a9,\n\t0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb,\n\t0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3,\n\t0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327,\n\t0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b,\n\t0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20,\n\t0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50,\n\t0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88,\n\t0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af,\n\t0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f,\n\t0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b,\n\t0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f,\n\t0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f,\n\t0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b,\n\t0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f,\n\t0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b,\n\t0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee,\n\t0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900,\n\t0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11,\n\t0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0,\n\t0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3,\n\t0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7,\n\t0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f,\n\t0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b,\n\t0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543,\n\t0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b,\n\t0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f,\n\t0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597,\n\t0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a,\n\t0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2,\n\t0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6,\n\t0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c,\n\t0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6,\n\t0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da,\n\t0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8,\n\t0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51,\n\t0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920,\n\t0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06,\n\t0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c,\n\t0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90,\n\t0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6,\n\t0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984,\n\t0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07,\n\t0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4,\n\t0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2,\n\t0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a,\n\t0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47,\n\t0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701,\n\t0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969,\n\t0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35,\n\t0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c,\n\t0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9,\n\t0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0,\n\t0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40,\n\t0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996,\n\t0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad,\n\t0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38,\n\t0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b,\n\t0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd,\n\t0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e,\n\t0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e,\n\t0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990,\n\t0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4,\n\t0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee,\n\t0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186,\n\t0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0,\n\t0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258,\n\t0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e,\n\t0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb,\n\t0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943,\n\t0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3,\n\t0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43,\n\t0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87,\n\t0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283,\n\t0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f,\n\t0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853,\n\t0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b,\n\t0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b,\n\t0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b,\n\t0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f,\n\t0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7,\n\t0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127,\n\t0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357,\n\t0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873,\n\t0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3,\n\t0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b,\n\t0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57,\n\t0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb,\n\t0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f,\n\t0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3,\n\t0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83,\n\t0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193,\n\t0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b,\n\t0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b,\n\t0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f,\n\t0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b,\n\t0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753,\n\t0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777,\n\t0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3,\n\t0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47,\n\t0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af,\n\t0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df,\n\t0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817,\n\t0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3,\n\t0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457,\n\t0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b,\n\t0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27,\n\t0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f,\n\t0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03,\n\t0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27,\n\t0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af,\n\t0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3,\n\t0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb,\n\t0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353,\n\t0xd65: 0x1407, 0xd66: 0x1433,\n\t0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7,\n\t0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897,\n\t0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93,\n\t0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b,\n\t0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f,\n\t0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f,\n\t0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f,\n\t0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff,\n\t0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f,\n\t0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f,\n\t0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3,\n\t0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7,\n\t0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963,\n\t0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b,\n\t0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb,\n\t0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf,\n\t0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f,\n\t0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013,\n\t0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f,\n\t0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b,\n\t0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b,\n\t0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb,\n\t0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343,\n\t0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b,\n\t0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b,\n\t0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2,\n\t0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809,\n\t0xe18: 0x1617, 0xe19: 0x1627,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f,\n\t0xe46: 0x1a5f,\n\t0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70,\n\t0xe5d: 0x4390,\n\t0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,\n\t0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,\n\t0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e,\n\t0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e,\n\t0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2,\n\t0xe7c: 0x43ae, 0xe7e: 0x43b4,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc,\n\t0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378,\n\t0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299,\n\t0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5,\n\t0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab,\n\t0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8,\n\t0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c,\n\t0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2,\n\t0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1,\n\t0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4,\n\t0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd,\n\t0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9,\n\t0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5,\n\t0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1,\n\t0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de,\n\t0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7,\n\t0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,\n\t0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,\n\t0xef0: 0x4468, 0xef1: 0x4468,\n\t// Block 0x3c, offset 0xf00\n\t0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6,\n\t0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f,\n\t0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc,\n\t0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d,\n\t0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9,\n\t0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c,\n\t0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0,\n\t0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89,\n\t0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb,\n\t0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded,\n\t0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29,\n\t0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b,\n\t0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9,\n\t0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00,\n\t0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32,\n\t0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50,\n\t0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e,\n\t0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf,\n\t0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd,\n\t0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff,\n\t0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022,\n\t0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c,\n\t0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6,\n\t0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7,\n\t0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6,\n\t0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8,\n\t0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10,\n\t0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96,\n\t0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1,\n\t0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027,\n\t0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1,\n\t0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e,\n\t0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5,\n\t0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29,\n\t0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60,\n\t0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9,\n\t0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05,\n\t0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64,\n\t0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91,\n\t0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe,\n\t0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff,\n\t0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031,\n\t0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4,\n\t0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92,\n\t0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0,\n\t0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1,\n\t0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74,\n\t0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba,\n\t0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88,\n\t0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1,\n\t0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74,\n\t0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f,\n\t0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd,\n\t0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d,\n\t0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88,\n\t0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b,\n\t0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb,\n\t0x107c: 0x4408, 0x107d: 0x4408,\n\t// Block 0x42, offset 0x1080\n\t0x1090: 0x2311, 0x1091: 0x2326,\n\t0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357,\n\t0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4,\n\t0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5,\n\t0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc,\n\t0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430,\n\t0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c,\n\t0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f,\n\t0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df,\n\t0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e,\n\t0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c,\n\t0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548,\n\t0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c,\n\t0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365,\n\t0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406,\n\t0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e,\n\t0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca,\n\t0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7,\n\t0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b,\n\t0x1106: 0x23c0, 0x1107: 0x2556,\n\t0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da,\n\t0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc,\n\t0x113c: 0x27d1,\n\t// Block 0x45, offset 0x1140\n\t0x1150: 0x0019, 0x1151: 0x0483,\n\t0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf,\n\t0x1158: 0x04c3, 0x1159: 0x1b5c,\n\t0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132,\n\t0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d,\n\t0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132,\n\t0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011,\n\t0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab,\n\t0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7,\n\t0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269,\n\t0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003,\n\t0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7,\n\t0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b,\n\t0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009,\n\t0x11aa: 0x000b, 0x11ab: 0x0041,\n\t0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4,\n\t0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e,\n\t0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456,\n\t0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462,\n\t0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c,\n\t0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242,\n\t0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248,\n\t0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b,\n\t0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251,\n\t0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a,\n\t0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260,\n\t0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263,\n\t0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c,\n\t0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f,\n\t0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275,\n\t0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278,\n\t0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e,\n\t0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281,\n\t0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287,\n\t0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d,\n\t0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00,\n\t0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82,\n\t0x123c: 0x1f82,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b,\n\t0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097,\n\t0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3,\n\t0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af,\n\t0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb,\n\t0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f,\n\t0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7,\n\t0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f,\n\t0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb,\n\t0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503,\n\t0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f,\n\t0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547,\n\t0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f,\n\t0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583,\n\t0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7,\n\t0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b,\n\t0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,\n\t0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b,\n\t0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337,\n\t0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f,\n\t0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf,\n\t0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7,\n\t0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff,\n\t0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23,\n\t0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35,\n\t0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264,\n\t0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b,\n\t0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d,\n\t0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085,\n\t0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091,\n\t0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d,\n\t0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9,\n\t0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5,\n\t0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176,\n\t0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188,\n\t0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a,\n\t0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9,\n\t0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0,\n\t0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209,\n\t0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027,\n\t0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033,\n\t0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b,\n\t0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023,\n\t0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f,\n\t0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027,\n\t0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033,\n\t0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b,\n\t0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a,\n\t0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e,\n\t0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263,\n\t0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e,\n\t0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4,\n\t0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248,\n\t0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290,\n\t0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f,\n\t0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242,\n\t0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c2: 0x0248,\n\t0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e,\n\t0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e,\n\t0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4,\n\t0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272,\n\t0x13fc: 0x0293, 0x13fe: 0x02cc,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272,\n\t0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251,\n\t0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8,\n\t0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927,\n\t0x1450: 0x1a8c, 0x1451: 0x1a90,\n\t0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8,\n\t0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0,\n\t0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8,\n\t0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0,\n\t0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1,\n\t0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d,\n\t0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059,\n\t0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503,\n\t0x1490: 0x0c0f, 0x1491: 0x0a47,\n\t0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff,\n\t0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b,\n\t0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b,\n\t0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf,\n\t0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b,\n\t0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43,\n\t0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757,\n\t0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773,\n\t0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3,\n\t0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf,\n\t0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff,\n\t0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f,\n\t0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867,\n\t0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af,\n\t0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93,\n\t0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3,\n\t0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f,\n\t0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983,\n\t0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf,\n\t0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3,\n\t0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef,\n\t0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23,\n\t0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37,\n\t0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63,\n\t0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f,\n\t0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692,\n\t0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb,\n\t0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f,\n\t0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6,\n\t0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9,\n\t0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83,\n\t0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3,\n\t0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf,\n\t0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7,\n\t0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f,\n\t0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b,\n\t0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87,\n\t0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb,\n\t0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7,\n\t0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663,\n\t0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd,\n\t0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7,\n\t0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b,\n\t0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f,\n\t0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7,\n\t0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700,\n\t0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23,\n\t0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53,\n\t0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714,\n\t0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b,\n\t0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719,\n\t0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728,\n\t0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37,\n\t0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57,\n\t0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737,\n\t0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741,\n\t0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff,\n\t0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637,\n\t0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f,\n\t0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093,\n\t0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782,\n\t0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3,\n\t0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7,\n\t0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133,\n\t0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa,\n\t0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4,\n\t0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7,\n\t0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7,\n\t0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b,\n\t0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd,\n\t0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f,\n\t0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f,\n\t0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273,\n\t0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677,\n\t0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7,\n\t0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb,\n\t0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5,\n\t0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa,\n\t0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b,\n\t0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7,\n\t0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665,\n\t0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f,\n\t0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477,\n\t0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693,\n\t0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb,\n\t0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b,\n\t0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567,\n\t0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7,\n\t0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7,\n\t0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef,\n\t0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60,\n\t0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c,\n\t0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73,\n\t0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79,\n\t0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88,\n\t0x14d: 0x89,\n\t0x15c: 0x8a, 0x15f: 0x8b,\n\t0x162: 0x8c, 0x164: 0x8d,\n\t0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93,\n\t0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97,\n\t0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26,\n\t0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32,\n\t0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a,\n\t0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42,\n\t0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3b0: 0xd7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xda, 0x3ec: 0xdb,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xdc,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf,\n\t0x449: 0xe0,\n\t0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8,\n\t0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xef,\n\t0x4a3: 0xf0, 0x4a5: 0xf1,\n\t0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3,\n\t0x4c8: 0x50, 0x4c9: 0xf4,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58,\n\t0x528: 0x59,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 155 entries, 310 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361}\n\n// nfkcSparseValues: 875 entries, 3500 bytes\nvar nfkcSparseValues = [875]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdb\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xe9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xec\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x107\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x115\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x11f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x123\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x125\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x12f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x131\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x134\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x137\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x140\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x149\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x150\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15b\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x176\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x41, offset 0x1a2\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x42, offset 0x1b0\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x43, offset 0x1b7\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x45, offset 0x1cc\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x46, offset 0x1d0\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x47, offset 0x1d2\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x48, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x49, offset 0x1d8\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x4a, offset 0x1db\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4b, offset 0x1dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4c, offset 0x1e0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4d, offset 0x1e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4e, offset 0x1e5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4f, offset 0x1e7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x50, offset 0x1e9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x51, offset 0x1eb\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x52, offset 0x1f7\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x53, offset 0x201\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x54, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x55, offset 0x20e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x56, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x57, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x58, offset 0x216\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x59, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x5a, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5b, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5c, offset 0x21f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5e, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5f, offset 0x225\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x60, offset 0x22b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x61, offset 0x22e\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x62, offset 0x232\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x63, offset 0x234\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x64, offset 0x23b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x65, offset 0x241\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x66, offset 0x247\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x67, offset 0x24f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x68, offset 0x255\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x69, offset 0x25b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x6a, offset 0x261\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6b, offset 0x265\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6c, offset 0x267\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6d, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6e, offset 0x26b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6f, offset 0x26d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x273\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x71, offset 0x276\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x279\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x281\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x288\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x28b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x28e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x290\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x78, offset 0x298\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x79, offset 0x29b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7a, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7b, offset 0x2a5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7c, offset 0x2ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7d, offset 0x2ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7e, offset 0x2af\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7f, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x80, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x81, offset 0x2b6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x82, offset 0x2b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x83, offset 0x2ba\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x84, offset 0x2c7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x85, offset 0x2d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x86, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x87, offset 0x2d5\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x88, offset 0x2d9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x89, offset 0x2de\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8a, offset 0x2ea\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8b, offset 0x2ef\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8c, offset 0x2f8\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x8d, offset 0x2fe\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x8e, offset 0x303\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x8f, offset 0x307\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x30c\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x310\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x92, offset 0x320\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x93, offset 0x32e\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x33c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x95, offset 0x34a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x96, offset 0x350\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x97, offset 0x352\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x98, offset 0x355\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x99, offset 0x35f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9a, offset 0x361\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54006 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// Reset implements the Reset method of the transform.Transformer interface.\nfunc (Form) Reset() {}\n\n// Transform implements the Transform method of the transform.Transformer\n// interface. It may need to write segments of up to MaxSegmentSize at once.\n// Users should either catch ErrShortDst and allow dst to grow or have dst be at\n// least of size MaxTransformChunkSize to be guaranteed of progress.\nfunc (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Cap the maximum number of src bytes to check.\n\tb := src\n\teof := atEOF\n\tif ns := len(dst); ns < len(b) {\n\t\terr = transform.ErrShortDst\n\t\teof = false\n\t\tb = b[:ns]\n\t}\n\ti, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof)\n\tn := copy(dst, b[:i])\n\tif !ok {\n\t\tnDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF)\n\t\treturn nDst + n, nSrc + n, err\n\t}\n\n\tif err == nil && n < len(src) && !atEOF {\n\t\terr = transform.ErrShortSrc\n\t}\n\treturn n, n, err\n}\n\nfunc flushTransform(rb *reorderBuffer) bool {\n\t// Write out (must fully fit in dst, or else it is an ErrShortDst).\n\tif len(rb.out) < rb.nrune*utf8.UTFMax {\n\t\treturn false\n\t}\n\trb.out = rb.out[rb.flushCopy(rb.out):]\n\treturn true\n}\n\nvar errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc}\n\n// transform implements the transform.Transformer interface. It is only called\n// when quickSpan does not pass for a given string.\nfunc (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// TODO: get rid of reorderBuffer. See CL 23460044.\n\trb := reorderBuffer{}\n\trb.init(f, src)\n\tfor {\n\t\t// Load segment into reorder buffer.\n\t\trb.setFlusher(dst[nDst:], flushTransform)\n\t\tend := decomposeSegment(&rb, nSrc, atEOF)\n\t\tif end < 0 {\n\t\t\treturn nDst, nSrc, errs[-end]\n\t\t}\n\t\tnDst = len(dst) - len(rb.out)\n\t\tnSrc = end\n\n\t\t// Next quickSpan.\n\t\tend = rb.nsrc\n\t\teof := atEOF\n\t\tif n := nSrc + len(dst) - nDst; n < end {\n\t\t\terr = transform.ErrShortDst\n\t\t\tend = n\n\t\t\teof = false\n\t\t}\n\t\tend, ok := rb.f.quickSpan(rb.src, nSrc, end, eof)\n\t\tn := copy(dst[nDst:], rb.src.bytes[nSrc:end])\n\t\tnSrc += n\n\t\tnDst += n\n\t\tif ok {\n\t\t\tif err == nil && n < rb.nsrc && !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t}\n\t\t\treturn nDst, nSrc, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/trie.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar nfcSparse = sparseBlocks{\n\tvalues: nfcSparseValues[:],\n\toffset: nfcSparseOffset[:],\n}\n\nvar nfkcSparse = sparseBlocks{\n\tvalues: nfkcSparseValues[:],\n\toffset: nfkcSparseOffset[:],\n}\n\nvar (\n\tnfcData  = newNfcTrie(0)\n\tnfkcData = newNfkcTrie(0)\n)\n\n// lookup determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/time/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/time/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/time/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/time/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/time/rate/rate.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package rate provides a rate limiter.\npackage rate\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n)\n\n// Limit defines the maximum frequency of some events.\n// Limit is represented as number of events per second.\n// A zero Limit allows no events.\ntype Limit float64\n\n// Inf is the infinite rate limit; it allows all events (even if burst is zero).\nconst Inf = Limit(math.MaxFloat64)\n\n// Every converts a minimum time interval between events to a Limit.\nfunc Every(interval time.Duration) Limit {\n\tif interval <= 0 {\n\t\treturn Inf\n\t}\n\treturn 1 / Limit(interval.Seconds())\n}\n\n// A Limiter controls how frequently events are allowed to happen.\n// It implements a \"token bucket\" of size b, initially full and refilled\n// at rate r tokens per second.\n// Informally, in any large enough time interval, the Limiter limits the\n// rate to r tokens per second, with a maximum burst size of b events.\n// As a special case, if r == Inf (the infinite rate), b is ignored.\n// See https://en.wikipedia.org/wiki/Token_bucket for more about token buckets.\n//\n// The zero value is a valid Limiter, but it will reject all events.\n// Use NewLimiter to create non-zero Limiters.\n//\n// Limiter has three main methods, Allow, Reserve, and Wait.\n// Most callers should use Wait.\n//\n// Each of the three methods consumes a single token.\n// They differ in their behavior when no token is available.\n// If no token is available, Allow returns false.\n// If no token is available, Reserve returns a reservation for a future token\n// and the amount of time the caller must wait before using it.\n// If no token is available, Wait blocks until one can be obtained\n// or its associated context.Context is canceled.\n//\n// The methods AllowN, ReserveN, and WaitN consume n tokens.\ntype Limiter struct {\n\tmu     sync.Mutex\n\tlimit  Limit\n\tburst  int\n\ttokens float64\n\t// last is the last time the limiter's tokens field was updated\n\tlast time.Time\n\t// lastEvent is the latest time of a rate-limited event (past or future)\n\tlastEvent time.Time\n}\n\n// Limit returns the maximum overall event rate.\nfunc (lim *Limiter) Limit() Limit {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\treturn lim.limit\n}\n\n// Burst returns the maximum burst size. Burst is the maximum number of tokens\n// that can be consumed in a single call to Allow, Reserve, or Wait, so higher\n// Burst values allow more events to happen at once.\n// A zero Burst allows no events, unless limit == Inf.\nfunc (lim *Limiter) Burst() int {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\treturn lim.burst\n}\n\n// NewLimiter returns a new Limiter that allows events up to rate r and permits\n// bursts of at most b tokens.\nfunc NewLimiter(r Limit, b int) *Limiter {\n\treturn &Limiter{\n\t\tlimit: r,\n\t\tburst: b,\n\t}\n}\n\n// Allow is shorthand for AllowN(time.Now(), 1).\nfunc (lim *Limiter) Allow() bool {\n\treturn lim.AllowN(time.Now(), 1)\n}\n\n// AllowN reports whether n events may happen at time now.\n// Use this method if you intend to drop / skip events that exceed the rate limit.\n// Otherwise use Reserve or Wait.\nfunc (lim *Limiter) AllowN(now time.Time, n int) bool {\n\treturn lim.reserveN(now, n, 0).ok\n}\n\n// A Reservation holds information about events that are permitted by a Limiter to happen after a delay.\n// A Reservation may be canceled, which may enable the Limiter to permit additional events.\ntype Reservation struct {\n\tok        bool\n\tlim       *Limiter\n\ttokens    int\n\ttimeToAct time.Time\n\t// This is the Limit at reservation time, it can change later.\n\tlimit Limit\n}\n\n// OK returns whether the limiter can provide the requested number of tokens\n// within the maximum wait time.  If OK is false, Delay returns InfDuration, and\n// Cancel does nothing.\nfunc (r *Reservation) OK() bool {\n\treturn r.ok\n}\n\n// Delay is shorthand for DelayFrom(time.Now()).\nfunc (r *Reservation) Delay() time.Duration {\n\treturn r.DelayFrom(time.Now())\n}\n\n// InfDuration is the duration returned by Delay when a Reservation is not OK.\nconst InfDuration = time.Duration(1<<63 - 1)\n\n// DelayFrom returns the duration for which the reservation holder must wait\n// before taking the reserved action.  Zero duration means act immediately.\n// InfDuration means the limiter cannot grant the tokens requested in this\n// Reservation within the maximum wait time.\nfunc (r *Reservation) DelayFrom(now time.Time) time.Duration {\n\tif !r.ok {\n\t\treturn InfDuration\n\t}\n\tdelay := r.timeToAct.Sub(now)\n\tif delay < 0 {\n\t\treturn 0\n\t}\n\treturn delay\n}\n\n// Cancel is shorthand for CancelAt(time.Now()).\nfunc (r *Reservation) Cancel() {\n\tr.CancelAt(time.Now())\n}\n\n// CancelAt indicates that the reservation holder will not perform the reserved action\n// and reverses the effects of this Reservation on the rate limit as much as possible,\n// considering that other reservations may have already been made.\nfunc (r *Reservation) CancelAt(now time.Time) {\n\tif !r.ok {\n\t\treturn\n\t}\n\n\tr.lim.mu.Lock()\n\tdefer r.lim.mu.Unlock()\n\n\tif r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(now) {\n\t\treturn\n\t}\n\n\t// calculate tokens to restore\n\t// The duration between lim.lastEvent and r.timeToAct tells us how many tokens were reserved\n\t// after r was obtained. These tokens should not be restored.\n\trestoreTokens := float64(r.tokens) - r.limit.tokensFromDuration(r.lim.lastEvent.Sub(r.timeToAct))\n\tif restoreTokens <= 0 {\n\t\treturn\n\t}\n\t// advance time to now\n\tnow, _, tokens := r.lim.advance(now)\n\t// calculate new number of tokens\n\ttokens += restoreTokens\n\tif burst := float64(r.lim.burst); tokens > burst {\n\t\ttokens = burst\n\t}\n\t// update state\n\tr.lim.last = now\n\tr.lim.tokens = tokens\n\tif r.timeToAct == r.lim.lastEvent {\n\t\tprevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens)))\n\t\tif !prevEvent.Before(now) {\n\t\t\tr.lim.lastEvent = prevEvent\n\t\t}\n\t}\n}\n\n// Reserve is shorthand for ReserveN(time.Now(), 1).\nfunc (lim *Limiter) Reserve() *Reservation {\n\treturn lim.ReserveN(time.Now(), 1)\n}\n\n// ReserveN returns a Reservation that indicates how long the caller must wait before n events happen.\n// The Limiter takes this Reservation into account when allowing future events.\n// The returned Reservation’s OK() method returns false if n exceeds the Limiter's burst size.\n// Usage example:\n//   r := lim.ReserveN(time.Now(), 1)\n//   if !r.OK() {\n//     // Not allowed to act! Did you remember to set lim.burst to be > 0 ?\n//     return\n//   }\n//   time.Sleep(r.Delay())\n//   Act()\n// Use this method if you wish to wait and slow down in accordance with the rate limit without dropping events.\n// If you need to respect a deadline or cancel the delay, use Wait instead.\n// To drop or skip events exceeding rate limit, use Allow instead.\nfunc (lim *Limiter) ReserveN(now time.Time, n int) *Reservation {\n\tr := lim.reserveN(now, n, InfDuration)\n\treturn &r\n}\n\n// Wait is shorthand for WaitN(ctx, 1).\nfunc (lim *Limiter) Wait(ctx context.Context) (err error) {\n\treturn lim.WaitN(ctx, 1)\n}\n\n// WaitN blocks until lim permits n events to happen.\n// It returns an error if n exceeds the Limiter's burst size, the Context is\n// canceled, or the expected wait time exceeds the Context's Deadline.\n// The burst limit is ignored if the rate limit is Inf.\nfunc (lim *Limiter) WaitN(ctx context.Context, n int) (err error) {\n\tlim.mu.Lock()\n\tburst := lim.burst\n\tlimit := lim.limit\n\tlim.mu.Unlock()\n\n\tif n > burst && limit != Inf {\n\t\treturn fmt.Errorf(\"rate: Wait(n=%d) exceeds limiter's burst %d\", n, burst)\n\t}\n\t// Check if ctx is already cancelled\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tdefault:\n\t}\n\t// Determine wait limit\n\tnow := time.Now()\n\twaitLimit := InfDuration\n\tif deadline, ok := ctx.Deadline(); ok {\n\t\twaitLimit = deadline.Sub(now)\n\t}\n\t// Reserve\n\tr := lim.reserveN(now, n, waitLimit)\n\tif !r.ok {\n\t\treturn fmt.Errorf(\"rate: Wait(n=%d) would exceed context deadline\", n)\n\t}\n\t// Wait if necessary\n\tdelay := r.DelayFrom(now)\n\tif delay == 0 {\n\t\treturn nil\n\t}\n\tt := time.NewTimer(delay)\n\tdefer t.Stop()\n\tselect {\n\tcase <-t.C:\n\t\t// We can proceed.\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\t// Context was canceled before we could proceed.  Cancel the\n\t\t// reservation, which may permit other events to proceed sooner.\n\t\tr.Cancel()\n\t\treturn ctx.Err()\n\t}\n}\n\n// SetLimit is shorthand for SetLimitAt(time.Now(), newLimit).\nfunc (lim *Limiter) SetLimit(newLimit Limit) {\n\tlim.SetLimitAt(time.Now(), newLimit)\n}\n\n// SetLimitAt sets a new Limit for the limiter. The new Limit, and Burst, may be violated\n// or underutilized by those which reserved (using Reserve or Wait) but did not yet act\n// before SetLimitAt was called.\nfunc (lim *Limiter) SetLimitAt(now time.Time, newLimit Limit) {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tnow, _, tokens := lim.advance(now)\n\n\tlim.last = now\n\tlim.tokens = tokens\n\tlim.limit = newLimit\n}\n\n// SetBurst is shorthand for SetBurstAt(time.Now(), newBurst).\nfunc (lim *Limiter) SetBurst(newBurst int) {\n\tlim.SetBurstAt(time.Now(), newBurst)\n}\n\n// SetBurstAt sets a new burst size for the limiter.\nfunc (lim *Limiter) SetBurstAt(now time.Time, newBurst int) {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tnow, _, tokens := lim.advance(now)\n\n\tlim.last = now\n\tlim.tokens = tokens\n\tlim.burst = newBurst\n}\n\n// reserveN is a helper method for AllowN, ReserveN, and WaitN.\n// maxFutureReserve specifies the maximum reservation wait duration allowed.\n// reserveN returns Reservation, not *Reservation, to avoid allocation in AllowN and WaitN.\nfunc (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duration) Reservation {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tif lim.limit == Inf {\n\t\treturn Reservation{\n\t\t\tok:        true,\n\t\t\tlim:       lim,\n\t\t\ttokens:    n,\n\t\t\ttimeToAct: now,\n\t\t}\n\t} else if lim.limit == 0 {\n\t\tvar ok bool\n\t\tif lim.burst >= n {\n\t\t\tok = true\n\t\t\tlim.burst -= n\n\t\t}\n\t\treturn Reservation{\n\t\t\tok:        ok,\n\t\t\tlim:       lim,\n\t\t\ttokens:    lim.burst,\n\t\t\ttimeToAct: now,\n\t\t}\n\t}\n\n\tnow, last, tokens := lim.advance(now)\n\n\t// Calculate the remaining number of tokens resulting from the request.\n\ttokens -= float64(n)\n\n\t// Calculate the wait duration\n\tvar waitDuration time.Duration\n\tif tokens < 0 {\n\t\twaitDuration = lim.limit.durationFromTokens(-tokens)\n\t}\n\n\t// Decide result\n\tok := n <= lim.burst && waitDuration <= maxFutureReserve\n\n\t// Prepare reservation\n\tr := Reservation{\n\t\tok:    ok,\n\t\tlim:   lim,\n\t\tlimit: lim.limit,\n\t}\n\tif ok {\n\t\tr.tokens = n\n\t\tr.timeToAct = now.Add(waitDuration)\n\t}\n\n\t// Update state\n\tif ok {\n\t\tlim.last = now\n\t\tlim.tokens = tokens\n\t\tlim.lastEvent = r.timeToAct\n\t} else {\n\t\tlim.last = last\n\t}\n\n\treturn r\n}\n\n// advance calculates and returns an updated state for lim resulting from the passage of time.\n// lim is not changed.\n// advance requires that lim.mu is held.\nfunc (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) {\n\tlast := lim.last\n\tif now.Before(last) {\n\t\tlast = now\n\t}\n\n\t// Calculate the new number of tokens, due to time that passed.\n\telapsed := now.Sub(last)\n\tdelta := lim.limit.tokensFromDuration(elapsed)\n\ttokens := lim.tokens + delta\n\tif burst := float64(lim.burst); tokens > burst {\n\t\ttokens = burst\n\t}\n\treturn now, last, tokens\n}\n\n// durationFromTokens is a unit conversion function from the number of tokens to the duration\n// of time it takes to accumulate them at a rate of limit tokens per second.\nfunc (limit Limit) durationFromTokens(tokens float64) time.Duration {\n\tif limit <= 0 {\n\t\treturn InfDuration\n\t}\n\tseconds := tokens / float64(limit)\n\treturn time.Duration(float64(time.Second) * seconds)\n}\n\n// tokensFromDuration is a unit conversion function from a time duration to the number of tokens\n// which could be accumulated during that duration at a rate of limit tokens per second.\nfunc (limit Limit) tokensFromDuration(d time.Duration) float64 {\n\tif limit <= 0 {\n\t\treturn 0\n\t}\n\treturn d.Seconds() * float64(limit)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/genproto/googleapis/rpc/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go",
    "content": "// Copyright 2025 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.26.0\n// \tprotoc        v4.24.4\n// source: google/rpc/status.proto\n\npackage status\n\nimport (\n\treflect \"reflect\"\n\tsync \"sync\"\n\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\n// The `Status` type defines a logical error model that is suitable for\n// different programming environments, including REST APIs and RPC APIs. It is\n// used by [gRPC](https://github.com/grpc). Each `Status` message contains\n// three pieces of data: error code, error message, and error details.\n//\n// You can find out more about this error model and how to work with it in the\n// [API Design Guide](https://cloud.google.com/apis/design/errors).\ntype Status struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The status code, which should be an enum value of\n\t// [google.rpc.Code][google.rpc.Code].\n\tCode int32 `protobuf:\"varint,1,opt,name=code,proto3\" json:\"code,omitempty\"`\n\t// A developer-facing error message, which should be in English. Any\n\t// user-facing error message should be localized and sent in the\n\t// [google.rpc.Status.details][google.rpc.Status.details] field, or localized\n\t// by the client.\n\tMessage string `protobuf:\"bytes,2,opt,name=message,proto3\" json:\"message,omitempty\"`\n\t// A list of messages that carry the error details.  There is a common set of\n\t// message types for APIs to use.\n\tDetails []*anypb.Any `protobuf:\"bytes,3,rep,name=details,proto3\" json:\"details,omitempty\"`\n}\n\nfunc (x *Status) Reset() {\n\t*x = Status{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_google_rpc_status_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Status) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Status) ProtoMessage() {}\n\nfunc (x *Status) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_rpc_status_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Status.ProtoReflect.Descriptor instead.\nfunc (*Status) Descriptor() ([]byte, []int) {\n\treturn file_google_rpc_status_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Status) GetCode() int32 {\n\tif x != nil {\n\t\treturn x.Code\n\t}\n\treturn 0\n}\n\nfunc (x *Status) GetMessage() string {\n\tif x != nil {\n\t\treturn x.Message\n\t}\n\treturn \"\"\n}\n\nfunc (x *Status) GetDetails() []*anypb.Any {\n\tif x != nil {\n\t\treturn x.Details\n\t}\n\treturn nil\n}\n\nvar File_google_rpc_status_proto protoreflect.FileDescriptor\n\nvar file_google_rpc_status_proto_rawDesc = []byte{\n\t0x0a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61,\n\t0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x72, 0x70, 0x63, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x22, 0x66, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,\n\t0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18,\n\t0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61,\n\t0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,\n\t0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x61, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x53, 0x74, 0x61, 0x74,\n\t0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,\n\t0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74,\n\t0x75, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_google_rpc_status_proto_rawDescOnce sync.Once\n\tfile_google_rpc_status_proto_rawDescData = file_google_rpc_status_proto_rawDesc\n)\n\nfunc file_google_rpc_status_proto_rawDescGZIP() []byte {\n\tfile_google_rpc_status_proto_rawDescOnce.Do(func() {\n\t\tfile_google_rpc_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_rpc_status_proto_rawDescData)\n\t})\n\treturn file_google_rpc_status_proto_rawDescData\n}\n\nvar file_google_rpc_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_rpc_status_proto_goTypes = []interface{}{\n\t(*Status)(nil),    // 0: google.rpc.Status\n\t(*anypb.Any)(nil), // 1: google.protobuf.Any\n}\nvar file_google_rpc_status_proto_depIdxs = []int32{\n\t1, // 0: google.rpc.Status.details:type_name -> google.protobuf.Any\n\t1, // [1:1] is the sub-list for method output_type\n\t1, // [1:1] is the sub-list for method input_type\n\t1, // [1:1] is the sub-list for extension type_name\n\t1, // [1:1] is the sub-list for extension extendee\n\t0, // [0:1] is the sub-list for field type_name\n}\n\nfunc init() { file_google_rpc_status_proto_init() }\nfunc file_google_rpc_status_proto_init() {\n\tif File_google_rpc_status_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_google_rpc_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Status); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_rpc_status_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_rpc_status_proto_goTypes,\n\t\tDependencyIndexes: file_google_rpc_status_proto_depIdxs,\n\t\tMessageInfos:      file_google_rpc_status_proto_msgTypes,\n\t}.Build()\n\tFile_google_rpc_status_proto = out.File\n\tfile_google_rpc_status_proto_rawDesc = nil\n\tfile_google_rpc_status_proto_goTypes = nil\n\tfile_google_rpc_status_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/AUTHORS",
    "content": "Google Inc.\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md",
    "content": "## Community Code of Conduct\n\ngRPC follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/CONTRIBUTING.md",
    "content": "# How to contribute\n\nWe welcome your patches and contributions to gRPC! Please read the gRPC\norganization's [governance\nrules](https://github.com/grpc/grpc-community/blob/master/governance.md) before\nproceeding.\n\nIf you are new to GitHub, please start by reading [Pull Request howto](https://help.github.com/articles/about-pull-requests/)\n\n## Legal requirements\n\nIn order to protect both you and ourselves, you will need to sign the\n[Contributor License\nAgreement](https://identity.linuxfoundation.org/projects/cncf). When you create\nyour first PR, a link will be added as a comment that contains the steps needed\nto complete this process.\n\n## Getting Started\n\nA great way to start is by searching through our open issues. [Unassigned issues\nlabeled as \"help\nwanted\"](https://github.com/grpc/grpc-go/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20label%3A%22Status%3A%20Help%20Wanted%22%20no%3Aassignee)\nare especially nice for first-time contributors, as they should be well-defined\nproblems that already have agreed-upon solutions.\n\n## Code Style\n\nWe follow [Google's published Go style\nguide](https://google.github.io/styleguide/go/). Note that there are three\nprimary documents that make up this style guide; please follow them as closely\nas possible. If a reviewer recommends something that contradicts those\nguidelines, there may be valid reasons to do so, but it should be rare.\n\n## Guidelines for Pull Requests\n\nPlease read the following carefully to ensure your contributions can be merged\nsmoothly and quickly.\n\n### PR Contents\n\n- Create **small PRs** that are narrowly focused on **addressing a single\n  concern**. We often receive PRs that attempt to fix several things at the same\n  time, and if one part of the PR has a problem, that will hold up the entire\n  PR.\n\n- If your change does not address an **open issue** with an **agreed\n  resolution**, consider opening an issue and discussing it first. If you are\n  suggesting a behavioral or API change, consider starting with a [gRFC\n  proposal](https://github.com/grpc/proposal). Many new features that are not\n  bug fixes will require cross-language agreement.\n\n- If you want to fix **formatting or style**, consider whether your changes are\n  an obvious improvement or might be considered a personal preference. If a\n  style change is based on preference, it likely will not be accepted. If it\n  corrects widely agreed-upon anti-patterns, then please do create a PR and\n  explain the benefits of the change.\n\n- For correcting **misspellings**, please be aware that we use some terms that\n  are sometimes flagged by spell checkers. As an example, \"if an only if\" is\n  often written as \"iff\". Please do not make spelling correction changes unless\n  you are certain they are misspellings.\n\n- **All tests need to be passing** before your change can be merged. We\n  recommend you run tests locally before creating your PR to catch breakages\n  early on:\n\n  - `./scripts/vet.sh` to catch vet errors.\n  - `go test -cpu 1,4 -timeout 7m ./...` to run the tests.\n  - `go test -race -cpu 1,4 -timeout 7m ./...` to run tests in race mode.\n\n  Note that we have a multi-module repo, so `go test` commands may need to be\n  run from the root of each module in order to cause all tests to run.\n\n  *Alternatively*, you may find it easier to push your changes to your fork on\n  GitHub, which will trigger a GitHub Actions run that you can use to verify\n  everything is passing.\n\n- Note that there are two GitHub actions checks that need not be green:\n\n  1. We test the freshness of the generated proto code we maintain via the\n     `vet-proto` check. If the source proto files are updated, but our repo is\n     not updated, an optional checker will fail. This will be fixed by our team\n     in a separate PR and will not prevent the merge of your PR.\n\n  2. We run a checker that will fail if there is any change in dependencies of\n     an exported package via the `dependencies` check. If new dependencies are\n     added that are not appropriate, we may not accept your PR (see below).\n\n- If you are adding a **new file**, make sure it has the **copyright message**\n  template at the top as a comment. You can copy the message from an existing\n  file and update the year.\n\n- The grpc package should only depend on standard Go packages and a small number\n  of exceptions. **If your contribution introduces new dependencies**, you will\n  need a discussion with gRPC-Go maintainers.\n\n### PR Descriptions\n\n- **PR titles** should start with the name of the component being addressed, or\n  the type of change. Examples: transport, client, server, round_robin, xds,\n  cleanup, deps.\n\n- Read and follow the **guidelines for PR titles and descriptions** here:\n  https://google.github.io/eng-practices/review/developer/cl-descriptions.html\n\n  *particularly* the sections \"First Line\" and \"Body is Informative\".\n\n  Note: your PR description will be used as the git commit message in a\n  squash-and-merge if your PR is approved. We may make changes to this as\n  necessary.\n\n- **Does this PR relate to an open issue?** On the first line, please use the\n  tag `Fixes #<issue>` to ensure the issue is closed when the PR is merged. Or\n  use `Updates #<issue>` if the PR is related to an open issue, but does not fix\n  it. Consider filing an issue if one does not already exist.\n\n- PR descriptions *must* conclude with **release notes** as follows:\n\n  ```\n  RELEASE NOTES:\n  * <component>: <summary>\n  ```\n\n  This need not match the PR title.\n\n  The summary must:\n\n  * be something that gRPC users will understand.\n\n  * clearly explain the feature being added, the issue being fixed, or the\n    behavior being changed, etc. If fixing a bug, be clear about how the bug\n    can be triggered by an end-user.\n\n  * begin with a capital letter and use complete sentences.\n\n  * be as short as possible to describe the change being made.\n\n  If a PR is *not* end-user visible -- e.g. a cleanup, testing change, or\n  GitHub-related, use `RELEASE NOTES: n/a`.\n\n### PR Process\n\n- Please **self-review** your code changes before sending your PR. This will\n  prevent simple, obvious errors from causing delays.\n\n- Maintain a **clean commit history** and use **meaningful commit messages**.\n  PRs with messy commit histories are difficult to review and won't be merged.\n  Before sending your PR, ensure your changes are based on top of the latest\n  `upstream/master` commits, and avoid rebasing in the middle of a code review.\n  You should **never use `git push -f`** unless absolutely necessary during a\n  review, as it can interfere with GitHub's tracking of comments.\n\n- Unless your PR is trivial, you should **expect reviewer comments** that you\n  will need to address before merging. We'll label the PR as `Status: Requires\n  Reporter Clarification` if we expect you to respond to these comments in a\n  timely manner. If the PR remains inactive for 6 days, it will be marked as\n  `stale`, and we will automatically close it after 7 days if we don't hear back\n  from you. Please feel free to ping issues or bugs if you do not get a response\n  within a week.\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/GOVERNANCE.md",
    "content": "This repository is governed by the gRPC organization's [governance rules](https://github.com/grpc/grpc-community/blob/master/governance.md).\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/MAINTAINERS.md",
    "content": "This page lists all active maintainers of this repository. If you were a\nmaintainer and would like to add your name to the Emeritus list, please send us a\nPR.\n\nSee [GOVERNANCE.md](https://github.com/grpc/grpc-community/blob/master/governance.md)\nfor governance guidelines and how to become a maintainer.\nSee [CONTRIBUTING.md](https://github.com/grpc/grpc-community/blob/master/CONTRIBUTING.md)\nfor general contribution guidelines.\n\n## Maintainers (in alphabetical order)\n\n- [arjan-bal](https://github.com/arjan-bal), Google LLC\n- [arvindbr8](https://github.com/arvindbr8), Google LLC\n- [atollena](https://github.com/atollena), Datadog, Inc.\n- [dfawley](https://github.com/dfawley), Google LLC\n- [easwars](https://github.com/easwars), Google LLC\n- [gtcooke94](https://github.com/gtcooke94), Google LLC\n\n## Emeritus Maintainers (in alphabetical order)\n- [adelez](https://github.com/adelez)\n- [aranjans](https://github.com/aranjans)\n- [canguler](https://github.com/canguler)\n- [cesarghali](https://github.com/cesarghali)\n- [erm-g](https://github.com/erm-g)\n- [iamqizhao](https://github.com/iamqizhao)\n- [jeanbza](https://github.com/jeanbza)\n- [jtattermusch](https://github.com/jtattermusch)\n- [lyuxuan](https://github.com/lyuxuan)\n- [makmukhi](https://github.com/makmukhi)\n- [matt-kwong](https://github.com/matt-kwong)\n- [menghanl](https://github.com/menghanl)\n- [nicolasnoble](https://github.com/nicolasnoble)\n- [purnesh42h](https://github.com/purnesh42h)\n- [srini100](https://github.com/srini100)\n- [yongni](https://github.com/yongni)\n- [zasweq](https://github.com/zasweq)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/Makefile",
    "content": "all: vet test testrace\n\nbuild:\n\tgo build google.golang.org/grpc/...\n\nclean:\n\tgo clean -i google.golang.org/grpc/...\n\ndeps:\n\tGO111MODULE=on go get -d -v google.golang.org/grpc/...\n\nproto:\n\t@ if ! which protoc > /dev/null; then \\\n\t\techo \"error: protoc not installed\" >&2; \\\n\t\texit 1; \\\n\tfi\n\tgo generate google.golang.org/grpc/...\n\ntest:\n\tgo test -cpu 1,4 -timeout 7m google.golang.org/grpc/...\n\ntestsubmodule:\n\tcd security/advancedtls && go test -cpu 1,4 -timeout 7m google.golang.org/grpc/security/advancedtls/...\n\tcd security/authorization && go test -cpu 1,4 -timeout 7m google.golang.org/grpc/security/authorization/...\n\ntestrace:\n\tgo test -race -cpu 1,4 -timeout 7m google.golang.org/grpc/...\n\ntestdeps:\n\tGO111MODULE=on go get -d -v -t google.golang.org/grpc/...\n\nvet: vetdeps\n\t./scripts/vet.sh\n\nvetdeps:\n\t./scripts/vet.sh -install\n\n.PHONY: \\\n\tall \\\n\tbuild \\\n\tclean \\\n\tdeps \\\n\tproto \\\n\ttest \\\n\ttestsubmodule \\\n\ttestrace \\\n\ttestdeps \\\n\tvet \\\n\tvetdeps\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/NOTICE.txt",
    "content": "Copyright 2014 gRPC authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/README.md",
    "content": "# gRPC-Go\n\n[![GoDoc](https://pkg.go.dev/badge/google.golang.org/grpc)][API]\n[![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go)\n[![codecov](https://codecov.io/gh/grpc/grpc-go/graph/badge.svg)](https://codecov.io/gh/grpc/grpc-go)\n\nThe [Go][] implementation of [gRPC][]: A high performance, open source, general\nRPC framework that puts mobile and HTTP/2 first. For more information see the\n[Go gRPC docs][], or jump directly into the [quick start][].\n\n## Prerequisites\n\n- **[Go][]**: any one of the **two latest major** [releases][go-releases].\n\n## Installation\n\nSimply add the following import to your code, and then `go [build|run|test]`\nwill automatically fetch the necessary dependencies:\n\n\n```go\nimport \"google.golang.org/grpc\"\n```\n\n> **Note:** If you are trying to access `grpc-go` from **China**, see the\n> [FAQ](#FAQ) below.\n\n## Learn more\n\n- [Go gRPC docs][], which include a [quick start][] and [API\n  reference][API] among other resources\n- [Low-level technical docs](Documentation) from this repository\n- [Performance benchmark][]\n- [Examples](examples)\n- [Contribution guidelines](CONTRIBUTING.md)\n\n## FAQ\n\n### I/O Timeout Errors\n\nThe `golang.org` domain may be blocked from some countries. `go get` usually\nproduces an error like the following when this happens:\n\n```console\n$ go get -u google.golang.org/grpc\npackage 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)\n```\n\nTo build Go code, there are several options:\n\n- Set up a VPN and access google.golang.org through that.\n\n- With Go module support: it is possible to use the `replace` feature of `go\n  mod` to create aliases for golang.org packages.  In your project's directory:\n\n  ```sh\n  go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@latest\n  go mod tidy\n  go mod vendor\n  go build -mod=vendor\n  ```\n\n  Again, this will need to be done for all transitive dependencies hosted on\n  golang.org as well. For details, refer to [golang/go issue\n  #28652](https://github.com/golang/go/issues/28652).\n\n### Compiling error, undefined: grpc.SupportPackageIsVersion\n\nPlease update to the latest version of gRPC-Go using\n`go get google.golang.org/grpc`.\n\n### How to turn on logging\n\nThe default logger is controlled by environment variables. Turn everything on\nlike this:\n\n```console\n$ export GRPC_GO_LOG_VERBOSITY_LEVEL=99\n$ export GRPC_GO_LOG_SEVERITY_LEVEL=info\n```\n\n### The RPC failed with error `\"code = Unavailable desc = transport is closing\"`\n\nThis error means the connection the RPC is using was closed, and there are many\npossible reasons, including:\n 1. mis-configured transport credentials, connection failed on handshaking\n 1. bytes disrupted, possibly by a proxy in between\n 1. server shutdown\n 1. Keepalive parameters caused connection shutdown, for example if you have\n    configured your server to terminate connections regularly to [trigger DNS\n    lookups](https://github.com/grpc/grpc-go/issues/3170#issuecomment-552517779).\n    If this is the case, you may want to increase your\n    [MaxConnectionAgeGrace](https://pkg.go.dev/google.golang.org/grpc/keepalive?tab=doc#ServerParameters),\n    to allow longer RPC calls to finish.\n\nIt can be tricky to debug this because the error happens on the client side but\nthe root cause of the connection being closed is on the server side. Turn on\nlogging on __both client and server__, and see if there are any transport\nerrors.\n\n[API]: https://pkg.go.dev/google.golang.org/grpc\n[Go]: https://golang.org\n[Go module]: https://github.com/golang/go/wiki/Modules\n[gRPC]: https://grpc.io\n[Go gRPC docs]: https://grpc.io/docs/languages/go\n[Performance benchmark]: https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5180705743044608\n[quick start]: https://grpc.io/docs/languages/go/quickstart\n[go-releases]: https://golang.org/doc/devel/release.html\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/SECURITY.md",
    "content": "# Security Policy\n\nFor information on gRPC Security Policy and reporting potential security issues, please see [gRPC CVE Process](https://github.com/grpc/proposal/blob/master/P4-grpc-cve-process.md).\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/attributes/attributes.go",
    "content": "/*\n *\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package attributes defines a generic key/value store used in various gRPC\n// components.\n//\n// # Experimental\n//\n// Notice: This package is EXPERIMENTAL and may be changed or removed in a\n// later release.\npackage attributes\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Attributes is an immutable struct for storing and retrieving generic\n// key/value pairs.  Keys must be hashable, and users should define their own\n// types for keys.  Values should not be modified after they are added to an\n// Attributes or if they were received from one.  If values implement 'Equal(o\n// any) bool', it will be called by (*Attributes).Equal to determine whether\n// two values with the same key should be considered equal.\ntype Attributes struct {\n\tm map[any]any\n}\n\n// New returns a new Attributes containing the key/value pair.\nfunc New(key, value any) *Attributes {\n\treturn &Attributes{m: map[any]any{key: value}}\n}\n\n// WithValue returns a new Attributes containing the previous keys and values\n// and the new key/value pair.  If the same key appears multiple times, the\n// last value overwrites all previous values for that key.  To remove an\n// existing key, use a nil value.  value should not be modified later.\nfunc (a *Attributes) WithValue(key, value any) *Attributes {\n\tif a == nil {\n\t\treturn New(key, value)\n\t}\n\tn := &Attributes{m: make(map[any]any, len(a.m)+1)}\n\tfor k, v := range a.m {\n\t\tn.m[k] = v\n\t}\n\tn.m[key] = value\n\treturn n\n}\n\n// Value returns the value associated with these attributes for key, or nil if\n// no value is associated with key.  The returned value should not be modified.\nfunc (a *Attributes) Value(key any) any {\n\tif a == nil {\n\t\treturn nil\n\t}\n\treturn a.m[key]\n}\n\n// Equal returns whether a and o are equivalent.  If 'Equal(o any) bool' is\n// implemented for a value in the attributes, it is called to determine if the\n// value matches the one stored in the other attributes.  If Equal is not\n// implemented, standard equality is used to determine if the two values are\n// equal. Note that some types (e.g. maps) aren't comparable by default, so\n// they must be wrapped in a struct, or in an alias type, with Equal defined.\nfunc (a *Attributes) Equal(o *Attributes) bool {\n\tif a == nil && o == nil {\n\t\treturn true\n\t}\n\tif a == nil || o == nil {\n\t\treturn false\n\t}\n\tif len(a.m) != len(o.m) {\n\t\treturn false\n\t}\n\tfor k, v := range a.m {\n\t\tov, ok := o.m[k]\n\t\tif !ok {\n\t\t\t// o missing element of a\n\t\t\treturn false\n\t\t}\n\t\tif eq, ok := v.(interface{ Equal(o any) bool }); ok {\n\t\t\tif !eq.Equal(ov) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else if v != ov {\n\t\t\t// Fallback to a standard equality check if Value is unimplemented.\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// String prints the attribute map. If any key or values throughout the map\n// implement fmt.Stringer, it calls that method and appends.\nfunc (a *Attributes) String() string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"{\")\n\tfirst := true\n\tfor k, v := range a.m {\n\t\tif !first {\n\t\t\tsb.WriteString(\", \")\n\t\t}\n\t\tsb.WriteString(fmt.Sprintf(\"%q: %q \", str(k), str(v)))\n\t\tfirst = false\n\t}\n\tsb.WriteString(\"}\")\n\treturn sb.String()\n}\n\nfunc str(x any) (s string) {\n\tif v, ok := x.(fmt.Stringer); ok {\n\t\treturn fmt.Sprint(v)\n\t} else if v, ok := x.(string); ok {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"<%p>\", x)\n}\n\n// MarshalJSON helps implement the json.Marshaler interface, thereby rendering\n// the Attributes correctly when printing (via pretty.JSON) structs containing\n// Attributes as fields.\n//\n// Is it impossible to unmarshal attributes from a JSON representation and this\n// method is meant only for debugging purposes.\nfunc (a *Attributes) MarshalJSON() ([]byte, error) {\n\treturn []byte(a.String()), nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/backoff/backoff.go",
    "content": "/*\n *\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package backoff provides configuration options for backoff.\n//\n// More details can be found at:\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\n//\n// All APIs in this package are experimental.\npackage backoff\n\nimport \"time\"\n\n// Config defines the configuration options for backoff.\ntype Config struct {\n\t// BaseDelay is the amount of time to backoff after the first failure.\n\tBaseDelay time.Duration\n\t// Multiplier is the factor with which to multiply backoffs after a\n\t// failed retry. Should ideally be greater than 1.\n\tMultiplier float64\n\t// Jitter is the factor with which backoffs are randomized.\n\tJitter float64\n\t// MaxDelay is the upper bound of backoff delay.\n\tMaxDelay time.Duration\n}\n\n// DefaultConfig is a backoff configuration with the default values specified\n// at https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\n//\n// This should be useful for callers who want to configure backoff with\n// non-default values only for a subset of the options.\nvar DefaultConfig = Config{\n\tBaseDelay:  1.0 * time.Second,\n\tMultiplier: 1.6,\n\tJitter:     0.2,\n\tMaxDelay:   120 * time.Second,\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/backoff.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// See internal/backoff package for the backoff implementation. This file is\n// kept for the exported types and API backward compatibility.\n\npackage grpc\n\nimport (\n\t\"time\"\n\n\t\"google.golang.org/grpc/backoff\"\n)\n\n// DefaultBackoffConfig uses values specified for backoff in\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\n//\n// Deprecated: use ConnectParams instead. Will be supported throughout 1.x.\nvar DefaultBackoffConfig = BackoffConfig{\n\tMaxDelay: 120 * time.Second,\n}\n\n// BackoffConfig defines the parameters for the default gRPC backoff strategy.\n//\n// Deprecated: use ConnectParams instead. Will be supported throughout 1.x.\ntype BackoffConfig struct {\n\t// MaxDelay is the upper bound of backoff delay.\n\tMaxDelay time.Duration\n}\n\n// ConnectParams defines the parameters for connecting and retrying. Users are\n// encouraged to use this instead of the BackoffConfig type defined above. See\n// here for more details:\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype ConnectParams struct {\n\t// Backoff specifies the configuration options for connection backoff.\n\tBackoff backoff.Config\n\t// MinConnectTimeout is the minimum amount of time we are willing to give a\n\t// connection to complete.\n\tMinConnectTimeout time.Duration\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/balancer.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package balancer defines APIs for load balancing in gRPC.\n// All APIs in this package are experimental.\npackage balancer\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"net\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/channelz\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/credentials\"\n\testats \"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nvar (\n\t// m is a map from name to balancer builder.\n\tm = make(map[string]Builder)\n\n\tlogger = grpclog.Component(\"balancer\")\n)\n\n// Register registers the balancer builder to the balancer map. b.Name\n// (lowercased) will be used as the name registered with this builder.  If the\n// Builder implements ConfigParser, ParseConfig will be called when new service\n// configs are received by the resolver, and the result will be provided to the\n// Balancer in UpdateClientConnState.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple Balancers are\n// registered with the same name, the one registered last will take effect.\nfunc Register(b Builder) {\n\tname := strings.ToLower(b.Name())\n\tif name != b.Name() {\n\t\t// TODO: Skip the use of strings.ToLower() to index the map after v1.59\n\t\t// is released to switch to case sensitive balancer registry. Also,\n\t\t// remove this warning and update the docstrings for Register and Get.\n\t\tlogger.Warningf(\"Balancer registered with name %q. grpc-go will be switching to case sensitive balancer registries soon\", b.Name())\n\t}\n\tm[name] = b\n}\n\n// unregisterForTesting deletes the balancer with the given name from the\n// balancer map.\n//\n// This function is not thread-safe.\nfunc unregisterForTesting(name string) {\n\tdelete(m, name)\n}\n\nfunc init() {\n\tinternal.BalancerUnregister = unregisterForTesting\n}\n\n// Get returns the resolver builder registered with the given name.\n// Note that the compare is done in a case-insensitive fashion.\n// If no builder is register with the name, nil will be returned.\nfunc Get(name string) Builder {\n\tif strings.ToLower(name) != name {\n\t\t// TODO: Skip the use of strings.ToLower() to index the map after v1.59\n\t\t// is released to switch to case sensitive balancer registry. Also,\n\t\t// remove this warning and update the docstrings for Register and Get.\n\t\tlogger.Warningf(\"Balancer retrieved for name %q. grpc-go will be switching to case sensitive balancer registries soon\", name)\n\t}\n\tif b, ok := m[strings.ToLower(name)]; ok {\n\t\treturn b\n\t}\n\treturn nil\n}\n\n// NewSubConnOptions contains options to create new SubConn.\ntype NewSubConnOptions struct {\n\t// CredsBundle is the credentials bundle that will be used in the created\n\t// SubConn. If it's nil, the original creds from grpc DialOptions will be\n\t// used.\n\t//\n\t// Deprecated: Use the Attributes field in resolver.Address to pass\n\t// arbitrary data to the credential handshaker.\n\tCredsBundle credentials.Bundle\n\t// HealthCheckEnabled indicates whether health check service should be\n\t// enabled on this SubConn\n\tHealthCheckEnabled bool\n\t// StateListener is called when the state of the subconn changes.  If nil,\n\t// Balancer.UpdateSubConnState will be called instead.  Will never be\n\t// invoked until after Connect() is called on the SubConn created with\n\t// these options.\n\tStateListener func(SubConnState)\n}\n\n// State contains the balancer's state relevant to the gRPC ClientConn.\ntype State struct {\n\t// State contains the connectivity state of the balancer, which is used to\n\t// determine the state of the ClientConn.\n\tConnectivityState connectivity.State\n\t// Picker is used to choose connections (SubConns) for RPCs.\n\tPicker Picker\n}\n\n// ClientConn represents a gRPC ClientConn.\n//\n// This interface is to be implemented by gRPC. Users should not need a\n// brand new implementation of this interface. For the situations like\n// testing, the new implementation should embed this interface. This allows\n// gRPC to add new methods to this interface.\n//\n// NOTICE: This interface is intended to be implemented by gRPC, or intercepted\n// by custom load balancing polices.  Users should not need their own complete\n// implementation of this interface -- they should always delegate to a\n// ClientConn passed to Builder.Build() by embedding it in their\n// implementations. An embedded ClientConn must never be nil, or runtime panics\n// will occur.\ntype ClientConn interface {\n\t// NewSubConn is called by balancer to create a new SubConn.\n\t// It doesn't block and wait for the connections to be established.\n\t// Behaviors of the SubConn can be controlled by options.\n\t//\n\t// Deprecated: please be aware that in a future version, SubConns will only\n\t// support one address per SubConn.\n\tNewSubConn([]resolver.Address, NewSubConnOptions) (SubConn, error)\n\t// RemoveSubConn removes the SubConn from ClientConn.\n\t// The SubConn will be shutdown.\n\t//\n\t// Deprecated: use SubConn.Shutdown instead.\n\tRemoveSubConn(SubConn)\n\t// UpdateAddresses updates the addresses used in the passed in SubConn.\n\t// gRPC checks if the currently connected address is still in the new list.\n\t// If so, the connection will be kept. Else, the connection will be\n\t// gracefully closed, and a new connection will be created.\n\t//\n\t// This may trigger a state transition for the SubConn.\n\t//\n\t// Deprecated: this method will be removed.  Create new SubConns for new\n\t// addresses instead.\n\tUpdateAddresses(SubConn, []resolver.Address)\n\n\t// UpdateState notifies gRPC that the balancer's internal state has\n\t// changed.\n\t//\n\t// gRPC will update the connectivity state of the ClientConn, and will call\n\t// Pick on the new Picker to pick new SubConns.\n\tUpdateState(State)\n\n\t// ResolveNow is called by balancer to notify gRPC to do a name resolving.\n\tResolveNow(resolver.ResolveNowOptions)\n\n\t// Target returns the dial target for this ClientConn.\n\t//\n\t// Deprecated: Use the Target field in the BuildOptions instead.\n\tTarget() string\n\n\t// MetricsRecorder provides the metrics recorder that balancers can use to\n\t// record metrics. Balancer implementations which do not register metrics on\n\t// metrics registry and record on them can ignore this method. The returned\n\t// MetricsRecorder is guaranteed to never be nil.\n\tMetricsRecorder() estats.MetricsRecorder\n\n\t// EnforceClientConnEmbedding is included to force implementers to embed\n\t// another implementation of this interface, allowing gRPC to add methods\n\t// without breaking users.\n\tinternal.EnforceClientConnEmbedding\n}\n\n// BuildOptions contains additional information for Build.\ntype BuildOptions struct {\n\t// DialCreds is the transport credentials to use when communicating with a\n\t// remote load balancer server. Balancer implementations which do not\n\t// communicate with a remote load balancer server can ignore this field.\n\tDialCreds credentials.TransportCredentials\n\t// CredsBundle is the credentials bundle to use when communicating with a\n\t// remote load balancer server. Balancer implementations which do not\n\t// communicate with a remote load balancer server can ignore this field.\n\tCredsBundle credentials.Bundle\n\t// Dialer is the custom dialer to use when communicating with a remote load\n\t// balancer server. Balancer implementations which do not communicate with a\n\t// remote load balancer server can ignore this field.\n\tDialer func(context.Context, string) (net.Conn, error)\n\t// Authority is the server name to use as part of the authentication\n\t// handshake when communicating with a remote load balancer server. Balancer\n\t// implementations which do not communicate with a remote load balancer\n\t// server can ignore this field.\n\tAuthority string\n\t// ChannelzParent is the parent ClientConn's channelz channel.\n\tChannelzParent channelz.Identifier\n\t// CustomUserAgent is the custom user agent set on the parent ClientConn.\n\t// The balancer should set the same custom user agent if it creates a\n\t// ClientConn.\n\tCustomUserAgent string\n\t// Target contains the parsed address info of the dial target. It is the\n\t// same resolver.Target as passed to the resolver. See the documentation for\n\t// the resolver.Target type for details about what it contains.\n\tTarget resolver.Target\n}\n\n// Builder creates a balancer.\ntype Builder interface {\n\t// Build creates a new balancer with the ClientConn.\n\tBuild(cc ClientConn, opts BuildOptions) Balancer\n\t// Name returns the name of balancers built by this builder.\n\t// It will be used to pick balancers (for example in service config).\n\tName() string\n}\n\n// ConfigParser parses load balancer configs.\ntype ConfigParser interface {\n\t// ParseConfig parses the JSON load balancer config provided into an\n\t// internal form or returns an error if the config is invalid.  For future\n\t// compatibility reasons, unknown fields in the config should be ignored.\n\tParseConfig(LoadBalancingConfigJSON json.RawMessage) (serviceconfig.LoadBalancingConfig, error)\n}\n\n// PickInfo contains additional information for the Pick operation.\ntype PickInfo struct {\n\t// FullMethodName is the method name that NewClientStream() is called\n\t// with. The canonical format is /service/Method.\n\tFullMethodName string\n\t// Ctx is the RPC's context, and may contain relevant RPC-level information\n\t// like the outgoing header metadata.\n\tCtx context.Context\n}\n\n// DoneInfo contains additional information for done.\ntype DoneInfo struct {\n\t// Err is the rpc error the RPC finished with. It could be nil.\n\tErr error\n\t// Trailer contains the metadata from the RPC's trailer, if present.\n\tTrailer metadata.MD\n\t// BytesSent indicates if any bytes have been sent to the server.\n\tBytesSent bool\n\t// BytesReceived indicates if any byte has been received from the server.\n\tBytesReceived bool\n\t// ServerLoad is the load received from server. It's usually sent as part of\n\t// trailing metadata.\n\t//\n\t// The only supported type now is *orca_v3.LoadReport.\n\tServerLoad any\n}\n\nvar (\n\t// ErrNoSubConnAvailable indicates no SubConn is available for pick().\n\t// gRPC will block the RPC until a new picker is available via UpdateState().\n\tErrNoSubConnAvailable = errors.New(\"no SubConn is available\")\n\t// ErrTransientFailure indicates all SubConns are in TransientFailure.\n\t// WaitForReady RPCs will block, non-WaitForReady RPCs will fail.\n\t//\n\t// Deprecated: return an appropriate error based on the last resolution or\n\t// connection attempt instead.  The behavior is the same for any non-gRPC\n\t// status error.\n\tErrTransientFailure = errors.New(\"all SubConns are in TransientFailure\")\n)\n\n// PickResult contains information related to a connection chosen for an RPC.\ntype PickResult struct {\n\t// SubConn is the connection to use for this pick, if its state is Ready.\n\t// If the state is not Ready, gRPC will block the RPC until a new Picker is\n\t// provided by the balancer (using ClientConn.UpdateState).  The SubConn\n\t// must be one returned by ClientConn.NewSubConn.\n\tSubConn SubConn\n\n\t// Done is called when the RPC is completed.  If the SubConn is not ready,\n\t// this will be called with a nil parameter.  If the SubConn is not a valid\n\t// type, Done may not be called.  May be nil if the balancer does not wish\n\t// to be notified when the RPC completes.\n\tDone func(DoneInfo)\n\n\t// Metadata provides a way for LB policies to inject arbitrary per-call\n\t// metadata. Any metadata returned here will be merged with existing\n\t// metadata added by the client application.\n\t//\n\t// LB policies with child policies are responsible for propagating metadata\n\t// injected by their children to the ClientConn, as part of Pick().\n\tMetadata metadata.MD\n}\n\n// TransientFailureError returns e.  It exists for backward compatibility and\n// will be deleted soon.\n//\n// Deprecated: no longer necessary, picker errors are treated this way by\n// default.\nfunc TransientFailureError(e error) error { return e }\n\n// Picker is used by gRPC to pick a SubConn to send an RPC.\n// Balancer is expected to generate a new picker from its snapshot every time its\n// internal state has changed.\n//\n// The pickers used by gRPC can be updated by ClientConn.UpdateState().\ntype Picker interface {\n\t// Pick returns the connection to use for this RPC and related information.\n\t//\n\t// Pick should not block.  If the balancer needs to do I/O or any blocking\n\t// or time-consuming work to service this call, it should return\n\t// ErrNoSubConnAvailable, and the Pick call will be repeated by gRPC when\n\t// the Picker is updated (using ClientConn.UpdateState).\n\t//\n\t// If an error is returned:\n\t//\n\t// - If the error is ErrNoSubConnAvailable, gRPC will block until a new\n\t//   Picker is provided by the balancer (using ClientConn.UpdateState).\n\t//\n\t// - If the error is a status error (implemented by the grpc/status\n\t//   package), gRPC will terminate the RPC with the code and message\n\t//   provided.\n\t//\n\t// - For all other errors, wait for ready RPCs will wait, but non-wait for\n\t//   ready RPCs will be terminated with this error's Error() string and\n\t//   status code Unavailable.\n\tPick(info PickInfo) (PickResult, error)\n}\n\n// Balancer takes input from gRPC, manages SubConns, and collects and aggregates\n// the connectivity states.\n//\n// It also generates and updates the Picker used by gRPC to pick SubConns for RPCs.\n//\n// UpdateClientConnState, ResolverError, UpdateSubConnState, and Close are\n// guaranteed to be called synchronously from the same goroutine.  There's no\n// guarantee on picker.Pick, it may be called anytime.\ntype Balancer interface {\n\t// UpdateClientConnState is called by gRPC when the state of the ClientConn\n\t// changes.  If the error returned is ErrBadResolverState, the ClientConn\n\t// will begin calling ResolveNow on the active name resolver with\n\t// exponential backoff until a subsequent call to UpdateClientConnState\n\t// returns a nil error.  Any other errors are currently ignored.\n\tUpdateClientConnState(ClientConnState) error\n\t// ResolverError is called by gRPC when the name resolver reports an error.\n\tResolverError(error)\n\t// UpdateSubConnState is called by gRPC when the state of a SubConn\n\t// changes.\n\t//\n\t// Deprecated: Use NewSubConnOptions.StateListener when creating the\n\t// SubConn instead.\n\tUpdateSubConnState(SubConn, SubConnState)\n\t// Close closes the balancer. The balancer is not currently required to\n\t// call SubConn.Shutdown for its existing SubConns; however, this will be\n\t// required in a future release, so it is recommended.\n\tClose()\n\t// ExitIdle instructs the LB policy to reconnect to backends / exit the\n\t// IDLE state, if appropriate and possible.  Note that SubConns that enter\n\t// the IDLE state will not reconnect until SubConn.Connect is called.\n\tExitIdle()\n}\n\n// ExitIdler is an optional interface for balancers to implement.  If\n// implemented, ExitIdle will be called when ClientConn.Connect is called, if\n// the ClientConn is idle.  If unimplemented, ClientConn.Connect will cause\n// all SubConns to connect.\n//\n// Deprecated: All balancers must implement this interface. This interface will\n// be removed in a future release.\ntype ExitIdler interface {\n\t// ExitIdle instructs the LB policy to reconnect to backends / exit the\n\t// IDLE state, if appropriate and possible.  Note that SubConns that enter\n\t// the IDLE state will not reconnect until SubConn.Connect is called.\n\tExitIdle()\n}\n\n// ClientConnState describes the state of a ClientConn relevant to the\n// balancer.\ntype ClientConnState struct {\n\tResolverState resolver.State\n\t// The parsed load balancing configuration returned by the builder's\n\t// ParseConfig method, if implemented.\n\tBalancerConfig serviceconfig.LoadBalancingConfig\n}\n\n// ErrBadResolverState may be returned by UpdateClientConnState to indicate a\n// problem with the provided name resolver data.\nvar ErrBadResolverState = errors.New(\"bad resolver state\")\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/base/balancer.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage base\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\nvar logger = grpclog.Component(\"balancer\")\n\ntype baseBuilder struct {\n\tname          string\n\tpickerBuilder PickerBuilder\n\tconfig        Config\n}\n\nfunc (bb *baseBuilder) Build(cc balancer.ClientConn, _ balancer.BuildOptions) balancer.Balancer {\n\tbal := &baseBalancer{\n\t\tcc:            cc,\n\t\tpickerBuilder: bb.pickerBuilder,\n\n\t\tsubConns: resolver.NewAddressMapV2[balancer.SubConn](),\n\t\tscStates: make(map[balancer.SubConn]connectivity.State),\n\t\tcsEvltr:  &balancer.ConnectivityStateEvaluator{},\n\t\tconfig:   bb.config,\n\t\tstate:    connectivity.Connecting,\n\t}\n\t// Initialize picker to a picker that always returns\n\t// ErrNoSubConnAvailable, because when state of a SubConn changes, we\n\t// may call UpdateState with this picker.\n\tbal.picker = NewErrPicker(balancer.ErrNoSubConnAvailable)\n\treturn bal\n}\n\nfunc (bb *baseBuilder) Name() string {\n\treturn bb.name\n}\n\ntype baseBalancer struct {\n\tcc            balancer.ClientConn\n\tpickerBuilder PickerBuilder\n\n\tcsEvltr *balancer.ConnectivityStateEvaluator\n\tstate   connectivity.State\n\n\tsubConns *resolver.AddressMapV2[balancer.SubConn]\n\tscStates map[balancer.SubConn]connectivity.State\n\tpicker   balancer.Picker\n\tconfig   Config\n\n\tresolverErr error // the last error reported by the resolver; cleared on successful resolution\n\tconnErr     error // the last connection error; cleared upon leaving TransientFailure\n}\n\nfunc (b *baseBalancer) ResolverError(err error) {\n\tb.resolverErr = err\n\tif b.subConns.Len() == 0 {\n\t\tb.state = connectivity.TransientFailure\n\t}\n\n\tif b.state != connectivity.TransientFailure {\n\t\t// The picker will not change since the balancer does not currently\n\t\t// report an error.\n\t\treturn\n\t}\n\tb.regeneratePicker()\n\tb.cc.UpdateState(balancer.State{\n\t\tConnectivityState: b.state,\n\t\tPicker:            b.picker,\n\t})\n}\n\nfunc (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error {\n\t// TODO: handle s.ResolverState.ServiceConfig?\n\tif logger.V(2) {\n\t\tlogger.Info(\"base.baseBalancer: got new ClientConn state: \", s)\n\t}\n\t// Successful resolution; clear resolver error and ensure we return nil.\n\tb.resolverErr = nil\n\t// addrsSet is the set converted from addrs, it's used for quick lookup of an address.\n\taddrsSet := resolver.NewAddressMapV2[any]()\n\tfor _, a := range s.ResolverState.Addresses {\n\t\taddrsSet.Set(a, nil)\n\t\tif _, ok := b.subConns.Get(a); !ok {\n\t\t\t// a is a new address (not existing in b.subConns).\n\t\t\tvar sc balancer.SubConn\n\t\t\topts := balancer.NewSubConnOptions{\n\t\t\t\tHealthCheckEnabled: b.config.HealthCheck,\n\t\t\t\tStateListener:      func(scs balancer.SubConnState) { b.updateSubConnState(sc, scs) },\n\t\t\t}\n\t\t\tsc, err := b.cc.NewSubConn([]resolver.Address{a}, opts)\n\t\t\tif err != nil {\n\t\t\t\tlogger.Warningf(\"base.baseBalancer: failed to create new SubConn: %v\", err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tb.subConns.Set(a, sc)\n\t\t\tb.scStates[sc] = connectivity.Idle\n\t\t\tb.csEvltr.RecordTransition(connectivity.Shutdown, connectivity.Idle)\n\t\t\tsc.Connect()\n\t\t}\n\t}\n\tfor _, a := range b.subConns.Keys() {\n\t\tsc, _ := b.subConns.Get(a)\n\t\t// a was removed by resolver.\n\t\tif _, ok := addrsSet.Get(a); !ok {\n\t\t\tsc.Shutdown()\n\t\t\tb.subConns.Delete(a)\n\t\t\t// Keep the state of this sc in b.scStates until sc's state becomes Shutdown.\n\t\t\t// The entry will be deleted in updateSubConnState.\n\t\t}\n\t}\n\t// If resolver state contains no addresses, return an error so ClientConn\n\t// will trigger re-resolve. Also records this as a resolver error, so when\n\t// the overall state turns transient failure, the error message will have\n\t// the zero address information.\n\tif len(s.ResolverState.Addresses) == 0 {\n\t\tb.ResolverError(errors.New(\"produced zero addresses\"))\n\t\treturn balancer.ErrBadResolverState\n\t}\n\n\tb.regeneratePicker()\n\tb.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker})\n\treturn nil\n}\n\n// mergeErrors builds an error from the last connection error and the last\n// resolver error.  Must only be called if b.state is TransientFailure.\nfunc (b *baseBalancer) mergeErrors() error {\n\t// connErr must always be non-nil unless there are no SubConns, in which\n\t// case resolverErr must be non-nil.\n\tif b.connErr == nil {\n\t\treturn fmt.Errorf(\"last resolver error: %v\", b.resolverErr)\n\t}\n\tif b.resolverErr == nil {\n\t\treturn fmt.Errorf(\"last connection error: %v\", b.connErr)\n\t}\n\treturn fmt.Errorf(\"last connection error: %v; last resolver error: %v\", b.connErr, b.resolverErr)\n}\n\n// regeneratePicker takes a snapshot of the balancer, and generates a picker\n// from it. The picker is\n//   - errPicker if the balancer is in TransientFailure,\n//   - built by the pickerBuilder with all READY SubConns otherwise.\nfunc (b *baseBalancer) regeneratePicker() {\n\tif b.state == connectivity.TransientFailure {\n\t\tb.picker = NewErrPicker(b.mergeErrors())\n\t\treturn\n\t}\n\treadySCs := make(map[balancer.SubConn]SubConnInfo)\n\n\t// Filter out all ready SCs from full subConn map.\n\tfor _, addr := range b.subConns.Keys() {\n\t\tsc, _ := b.subConns.Get(addr)\n\t\tif st, ok := b.scStates[sc]; ok && st == connectivity.Ready {\n\t\t\treadySCs[sc] = SubConnInfo{Address: addr}\n\t\t}\n\t}\n\tb.picker = b.pickerBuilder.Build(PickerBuildInfo{ReadySCs: readySCs})\n}\n\n// UpdateSubConnState is a nop because a StateListener is always set in NewSubConn.\nfunc (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {\n\tlogger.Errorf(\"base.baseBalancer: UpdateSubConnState(%v, %+v) called unexpectedly\", sc, state)\n}\n\nfunc (b *baseBalancer) updateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {\n\ts := state.ConnectivityState\n\tif logger.V(2) {\n\t\tlogger.Infof(\"base.baseBalancer: handle SubConn state change: %p, %v\", sc, s)\n\t}\n\toldS, ok := b.scStates[sc]\n\tif !ok {\n\t\tif logger.V(2) {\n\t\t\tlogger.Infof(\"base.baseBalancer: got state changes for an unknown SubConn: %p, %v\", sc, s)\n\t\t}\n\t\treturn\n\t}\n\tif oldS == connectivity.TransientFailure &&\n\t\t(s == connectivity.Connecting || s == connectivity.Idle) {\n\t\t// Once a subconn enters TRANSIENT_FAILURE, ignore subsequent IDLE or\n\t\t// CONNECTING transitions to prevent the aggregated state from being\n\t\t// always CONNECTING when many backends exist but are all down.\n\t\tif s == connectivity.Idle {\n\t\t\tsc.Connect()\n\t\t}\n\t\treturn\n\t}\n\tb.scStates[sc] = s\n\tswitch s {\n\tcase connectivity.Idle:\n\t\tsc.Connect()\n\tcase connectivity.Shutdown:\n\t\t// When an address was removed by resolver, b called Shutdown but kept\n\t\t// the sc's state in scStates. Remove state for this sc here.\n\t\tdelete(b.scStates, sc)\n\tcase connectivity.TransientFailure:\n\t\t// Save error to be reported via picker.\n\t\tb.connErr = state.ConnectionError\n\t}\n\n\tb.state = b.csEvltr.RecordTransition(oldS, s)\n\n\t// Regenerate picker when one of the following happens:\n\t//  - this sc entered or left ready\n\t//  - the aggregated state of balancer is TransientFailure\n\t//    (may need to update error message)\n\tif (s == connectivity.Ready) != (oldS == connectivity.Ready) ||\n\t\tb.state == connectivity.TransientFailure {\n\t\tb.regeneratePicker()\n\t}\n\tb.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker})\n}\n\n// Close is a nop because base balancer doesn't have internal state to clean up,\n// and it doesn't need to call Shutdown for the SubConns.\nfunc (b *baseBalancer) Close() {\n}\n\n// ExitIdle is a nop because the base balancer attempts to stay connected to\n// all SubConns at all times.\nfunc (b *baseBalancer) ExitIdle() {\n}\n\n// NewErrPicker returns a Picker that always returns err on Pick().\nfunc NewErrPicker(err error) balancer.Picker {\n\treturn &errPicker{err: err}\n}\n\n// NewErrPickerV2 is temporarily defined for backward compatibility reasons.\n//\n// Deprecated: use NewErrPicker instead.\nvar NewErrPickerV2 = NewErrPicker\n\ntype errPicker struct {\n\terr error // Pick() always returns this err.\n}\n\nfunc (p *errPicker) Pick(balancer.PickInfo) (balancer.PickResult, error) {\n\treturn balancer.PickResult{}, p.err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/base/base.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package base defines a balancer base that can be used to build balancers with\n// different picking algorithms.\n//\n// The base balancer creates a new SubConn for each resolved address. The\n// provided picker will only be notified about READY SubConns.\n//\n// This package is the base of round_robin balancer, its purpose is to be used\n// to build round_robin like balancers with complex picking algorithms.\n// Balancers with more complicated logic should try to implement a balancer\n// builder from scratch.\n//\n// All APIs in this package are experimental.\npackage base\n\nimport (\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// PickerBuilder creates balancer.Picker.\ntype PickerBuilder interface {\n\t// Build returns a picker that will be used by gRPC to pick a SubConn.\n\tBuild(info PickerBuildInfo) balancer.Picker\n}\n\n// PickerBuildInfo contains information needed by the picker builder to\n// construct a picker.\ntype PickerBuildInfo struct {\n\t// ReadySCs is a map from all ready SubConns to the Addresses used to\n\t// create them.\n\tReadySCs map[balancer.SubConn]SubConnInfo\n}\n\n// SubConnInfo contains information about a SubConn created by the base\n// balancer.\ntype SubConnInfo struct {\n\tAddress resolver.Address // the address used to create this SubConn\n}\n\n// Config contains the config info about the base balancer builder.\ntype Config struct {\n\t// HealthCheck indicates whether health checking should be enabled for this specific balancer.\n\tHealthCheck bool\n}\n\n// NewBalancerBuilder returns a base balancer builder configured by the provided config.\nfunc NewBalancerBuilder(name string, pb PickerBuilder, config Config) balancer.Builder {\n\treturn &baseBuilder{\n\t\tname:          name,\n\t\tpickerBuilder: pb,\n\t\tconfig:        config,\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/conn_state_evaluator.go",
    "content": "/*\n *\n * Copyright 2022 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage balancer\n\nimport \"google.golang.org/grpc/connectivity\"\n\n// ConnectivityStateEvaluator takes the connectivity states of multiple SubConns\n// and returns one aggregated connectivity state.\n//\n// It's not thread safe.\ntype ConnectivityStateEvaluator struct {\n\tnumReady            uint64 // Number of addrConns in ready state.\n\tnumConnecting       uint64 // Number of addrConns in connecting state.\n\tnumTransientFailure uint64 // Number of addrConns in transient failure state.\n\tnumIdle             uint64 // Number of addrConns in idle state.\n}\n\n// RecordTransition records state change happening in subConn and based on that\n// it evaluates what aggregated state should be.\n//\n//   - If at least one SubConn in Ready, the aggregated state is Ready;\n//   - Else if at least one SubConn in Connecting, the aggregated state is Connecting;\n//   - Else if at least one SubConn is Idle, the aggregated state is Idle;\n//   - Else if at least one SubConn is TransientFailure (or there are no SubConns), the aggregated state is Transient Failure.\n//\n// Shutdown is not considered.\nfunc (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState connectivity.State) connectivity.State {\n\t// Update counters.\n\tfor idx, state := range []connectivity.State{oldState, newState} {\n\t\tupdateVal := 2*uint64(idx) - 1 // -1 for oldState and +1 for new.\n\t\tswitch state {\n\t\tcase connectivity.Ready:\n\t\t\tcse.numReady += updateVal\n\t\tcase connectivity.Connecting:\n\t\t\tcse.numConnecting += updateVal\n\t\tcase connectivity.TransientFailure:\n\t\t\tcse.numTransientFailure += updateVal\n\t\tcase connectivity.Idle:\n\t\t\tcse.numIdle += updateVal\n\t\t}\n\t}\n\treturn cse.CurrentState()\n}\n\n// CurrentState returns the current aggregate conn state by evaluating the counters\nfunc (cse *ConnectivityStateEvaluator) CurrentState() connectivity.State {\n\t// Evaluate.\n\tif cse.numReady > 0 {\n\t\treturn connectivity.Ready\n\t}\n\tif cse.numConnecting > 0 {\n\t\treturn connectivity.Connecting\n\t}\n\tif cse.numIdle > 0 {\n\t\treturn connectivity.Idle\n\t}\n\treturn connectivity.TransientFailure\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package endpointsharding implements a load balancing policy that manages\n// homogeneous child policies each owning a single endpoint.\n//\n// # Experimental\n//\n// Notice: This package is EXPERIMENTAL and may be changed or removed in a\n// later release.\npackage endpointsharding\n\nimport (\n\t\"errors\"\n\trand \"math/rand/v2\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/base\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\nvar randIntN = rand.IntN\n\n// ChildState is the balancer state of a child along with the endpoint which\n// identifies the child balancer.\ntype ChildState struct {\n\tEndpoint resolver.Endpoint\n\tState    balancer.State\n\n\t// Balancer exposes only the ExitIdler interface of the child LB policy.\n\t// Other methods of the child policy are called only by endpointsharding.\n\tBalancer ExitIdler\n}\n\n// ExitIdler provides access to only the ExitIdle method of the child balancer.\ntype ExitIdler interface {\n\t// ExitIdle instructs the LB policy to reconnect to backends / exit the\n\t// IDLE state, if appropriate and possible.  Note that SubConns that enter\n\t// the IDLE state will not reconnect until SubConn.Connect is called.\n\tExitIdle()\n}\n\n// Options are the options to configure the behaviour of the\n// endpointsharding balancer.\ntype Options struct {\n\t// DisableAutoReconnect allows the balancer to keep child balancer in the\n\t// IDLE state until they are explicitly triggered to exit using the\n\t// ChildState obtained from the endpointsharding picker. When set to false,\n\t// the endpointsharding balancer will automatically call ExitIdle on child\n\t// connections that report IDLE.\n\tDisableAutoReconnect bool\n}\n\n// ChildBuilderFunc creates a new balancer with the ClientConn. It has the same\n// type as the balancer.Builder.Build method.\ntype ChildBuilderFunc func(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer\n\n// NewBalancer returns a load balancing policy that manages homogeneous child\n// policies each owning a single endpoint. The endpointsharding balancer\n// forwards the LoadBalancingConfig in ClientConn state updates to its children.\nfunc NewBalancer(cc balancer.ClientConn, opts balancer.BuildOptions, childBuilder ChildBuilderFunc, esOpts Options) balancer.Balancer {\n\tes := &endpointSharding{\n\t\tcc:           cc,\n\t\tbOpts:        opts,\n\t\tesOpts:       esOpts,\n\t\tchildBuilder: childBuilder,\n\t}\n\tes.children.Store(resolver.NewEndpointMap[*balancerWrapper]())\n\treturn es\n}\n\n// endpointSharding is a balancer that wraps child balancers. It creates a child\n// balancer with child config for every unique Endpoint received. It updates the\n// child states on any update from parent or child.\ntype endpointSharding struct {\n\tcc           balancer.ClientConn\n\tbOpts        balancer.BuildOptions\n\tesOpts       Options\n\tchildBuilder ChildBuilderFunc\n\n\t// childMu synchronizes calls to any single child. It must be held for all\n\t// calls into a child. To avoid deadlocks, do not acquire childMu while\n\t// holding mu.\n\tchildMu  sync.Mutex\n\tchildren atomic.Pointer[resolver.EndpointMap[*balancerWrapper]]\n\n\t// inhibitChildUpdates is set during UpdateClientConnState/ResolverError\n\t// calls (calls to children will each produce an update, only want one\n\t// update).\n\tinhibitChildUpdates atomic.Bool\n\n\t// mu synchronizes access to the state stored in balancerWrappers in the\n\t// children field. mu must not be held during calls into a child since\n\t// synchronous calls back from the child may require taking mu, causing a\n\t// deadlock. To avoid deadlocks, do not acquire childMu while holding mu.\n\tmu sync.Mutex\n}\n\n// rotateEndpoints returns a slice of all the input endpoints rotated a random\n// amount.\nfunc rotateEndpoints(es []resolver.Endpoint) []resolver.Endpoint {\n\tles := len(es)\n\tif les == 0 {\n\t\treturn es\n\t}\n\tr := randIntN(les)\n\t// Make a copy to avoid mutating data beyond the end of es.\n\tret := make([]resolver.Endpoint, les)\n\tcopy(ret, es[r:])\n\tcopy(ret[les-r:], es[:r])\n\treturn ret\n}\n\n// UpdateClientConnState creates a child for new endpoints and deletes children\n// for endpoints that are no longer present. It also updates all the children,\n// and sends a single synchronous update of the childrens' aggregated state at\n// the end of the UpdateClientConnState operation. If any endpoint has no\n// addresses it will ignore that endpoint. Otherwise, returns first error found\n// from a child, but fully processes the new update.\nfunc (es *endpointSharding) UpdateClientConnState(state balancer.ClientConnState) error {\n\tes.childMu.Lock()\n\tdefer es.childMu.Unlock()\n\n\tes.inhibitChildUpdates.Store(true)\n\tdefer func() {\n\t\tes.inhibitChildUpdates.Store(false)\n\t\tes.updateState()\n\t}()\n\tvar ret error\n\n\tchildren := es.children.Load()\n\tnewChildren := resolver.NewEndpointMap[*balancerWrapper]()\n\n\t// Update/Create new children.\n\tfor _, endpoint := range rotateEndpoints(state.ResolverState.Endpoints) {\n\t\tif _, ok := newChildren.Get(endpoint); ok {\n\t\t\t// Endpoint child was already created, continue to avoid duplicate\n\t\t\t// update.\n\t\t\tcontinue\n\t\t}\n\t\tchildBalancer, ok := children.Get(endpoint)\n\t\tif ok {\n\t\t\t// Endpoint attributes may have changed, update the stored endpoint.\n\t\t\tes.mu.Lock()\n\t\t\tchildBalancer.childState.Endpoint = endpoint\n\t\t\tes.mu.Unlock()\n\t\t} else {\n\t\t\tchildBalancer = &balancerWrapper{\n\t\t\t\tchildState: ChildState{Endpoint: endpoint},\n\t\t\t\tClientConn: es.cc,\n\t\t\t\tes:         es,\n\t\t\t}\n\t\t\tchildBalancer.childState.Balancer = childBalancer\n\t\t\tchildBalancer.child = es.childBuilder(childBalancer, es.bOpts)\n\t\t}\n\t\tnewChildren.Set(endpoint, childBalancer)\n\t\tif err := childBalancer.updateClientConnStateLocked(balancer.ClientConnState{\n\t\t\tBalancerConfig: state.BalancerConfig,\n\t\t\tResolverState: resolver.State{\n\t\t\t\tEndpoints:  []resolver.Endpoint{endpoint},\n\t\t\t\tAttributes: state.ResolverState.Attributes,\n\t\t\t},\n\t\t}); err != nil && ret == nil {\n\t\t\t// Return first error found, and always commit full processing of\n\t\t\t// updating children. If desired to process more specific errors\n\t\t\t// across all endpoints, caller should make these specific\n\t\t\t// validations, this is a current limitation for simplicity sake.\n\t\t\tret = err\n\t\t}\n\t}\n\t// Delete old children that are no longer present.\n\tfor _, e := range children.Keys() {\n\t\tchild, _ := children.Get(e)\n\t\tif _, ok := newChildren.Get(e); !ok {\n\t\t\tchild.closeLocked()\n\t\t}\n\t}\n\tes.children.Store(newChildren)\n\tif newChildren.Len() == 0 {\n\t\treturn balancer.ErrBadResolverState\n\t}\n\treturn ret\n}\n\n// ResolverError forwards the resolver error to all of the endpointSharding's\n// children and sends a single synchronous update of the childStates at the end\n// of the ResolverError operation.\nfunc (es *endpointSharding) ResolverError(err error) {\n\tes.childMu.Lock()\n\tdefer es.childMu.Unlock()\n\tes.inhibitChildUpdates.Store(true)\n\tdefer func() {\n\t\tes.inhibitChildUpdates.Store(false)\n\t\tes.updateState()\n\t}()\n\tchildren := es.children.Load()\n\tfor _, child := range children.Values() {\n\t\tchild.resolverErrorLocked(err)\n\t}\n}\n\nfunc (es *endpointSharding) UpdateSubConnState(balancer.SubConn, balancer.SubConnState) {\n\t// UpdateSubConnState is deprecated.\n}\n\nfunc (es *endpointSharding) Close() {\n\tes.childMu.Lock()\n\tdefer es.childMu.Unlock()\n\tchildren := es.children.Load()\n\tfor _, child := range children.Values() {\n\t\tchild.closeLocked()\n\t}\n}\n\nfunc (es *endpointSharding) ExitIdle() {\n\tes.childMu.Lock()\n\tdefer es.childMu.Unlock()\n\tfor _, bw := range es.children.Load().Values() {\n\t\tif !bw.isClosed {\n\t\t\tbw.child.ExitIdle()\n\t\t}\n\t}\n}\n\n// updateState updates this component's state. It sends the aggregated state,\n// and a picker with round robin behavior with all the child states present if\n// needed.\nfunc (es *endpointSharding) updateState() {\n\tif es.inhibitChildUpdates.Load() {\n\t\treturn\n\t}\n\tvar readyPickers, connectingPickers, idlePickers, transientFailurePickers []balancer.Picker\n\n\tes.mu.Lock()\n\tdefer es.mu.Unlock()\n\n\tchildren := es.children.Load()\n\tchildStates := make([]ChildState, 0, children.Len())\n\n\tfor _, child := range children.Values() {\n\t\tchildState := child.childState\n\t\tchildStates = append(childStates, childState)\n\t\tchildPicker := childState.State.Picker\n\t\tswitch childState.State.ConnectivityState {\n\t\tcase connectivity.Ready:\n\t\t\treadyPickers = append(readyPickers, childPicker)\n\t\tcase connectivity.Connecting:\n\t\t\tconnectingPickers = append(connectingPickers, childPicker)\n\t\tcase connectivity.Idle:\n\t\t\tidlePickers = append(idlePickers, childPicker)\n\t\tcase connectivity.TransientFailure:\n\t\t\ttransientFailurePickers = append(transientFailurePickers, childPicker)\n\t\t\t// connectivity.Shutdown shouldn't appear.\n\t\t}\n\t}\n\n\t// Construct the round robin picker based off the aggregated state. Whatever\n\t// the aggregated state, use the pickers present that are currently in that\n\t// state only.\n\tvar aggState connectivity.State\n\tvar pickers []balancer.Picker\n\tif len(readyPickers) >= 1 {\n\t\taggState = connectivity.Ready\n\t\tpickers = readyPickers\n\t} else if len(connectingPickers) >= 1 {\n\t\taggState = connectivity.Connecting\n\t\tpickers = connectingPickers\n\t} else if len(idlePickers) >= 1 {\n\t\taggState = connectivity.Idle\n\t\tpickers = idlePickers\n\t} else if len(transientFailurePickers) >= 1 {\n\t\taggState = connectivity.TransientFailure\n\t\tpickers = transientFailurePickers\n\t} else {\n\t\taggState = connectivity.TransientFailure\n\t\tpickers = []balancer.Picker{base.NewErrPicker(errors.New(\"no children to pick from\"))}\n\t} // No children (resolver error before valid update).\n\tp := &pickerWithChildStates{\n\t\tpickers:     pickers,\n\t\tchildStates: childStates,\n\t\tnext:        uint32(randIntN(len(pickers))),\n\t}\n\tes.cc.UpdateState(balancer.State{\n\t\tConnectivityState: aggState,\n\t\tPicker:            p,\n\t})\n}\n\n// pickerWithChildStates delegates to the pickers it holds in a round robin\n// fashion. It also contains the childStates of all the endpointSharding's\n// children.\ntype pickerWithChildStates struct {\n\tpickers     []balancer.Picker\n\tchildStates []ChildState\n\tnext        uint32\n}\n\nfunc (p *pickerWithChildStates) Pick(info balancer.PickInfo) (balancer.PickResult, error) {\n\tnextIndex := atomic.AddUint32(&p.next, 1)\n\tpicker := p.pickers[nextIndex%uint32(len(p.pickers))]\n\treturn picker.Pick(info)\n}\n\n// ChildStatesFromPicker returns the state of all the children managed by the\n// endpoint sharding balancer that created this picker.\nfunc ChildStatesFromPicker(picker balancer.Picker) []ChildState {\n\tp, ok := picker.(*pickerWithChildStates)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn p.childStates\n}\n\n// balancerWrapper is a wrapper of a balancer. It ID's a child balancer by\n// endpoint, and persists recent child balancer state.\ntype balancerWrapper struct {\n\t// The following fields are initialized at build time and read-only after\n\t// that and therefore do not need to be guarded by a mutex.\n\n\t// child contains the wrapped balancer. Access its methods only through\n\t// methods on balancerWrapper to ensure proper synchronization\n\tchild               balancer.Balancer\n\tbalancer.ClientConn // embed to intercept UpdateState, doesn't deal with SubConns\n\n\tes *endpointSharding\n\n\t// Access to the following fields is guarded by es.mu.\n\n\tchildState ChildState\n\tisClosed   bool\n}\n\nfunc (bw *balancerWrapper) UpdateState(state balancer.State) {\n\tbw.es.mu.Lock()\n\tbw.childState.State = state\n\tbw.es.mu.Unlock()\n\tif state.ConnectivityState == connectivity.Idle && !bw.es.esOpts.DisableAutoReconnect {\n\t\tbw.ExitIdle()\n\t}\n\tbw.es.updateState()\n}\n\n// ExitIdle pings an IDLE child balancer to exit idle in a new goroutine to\n// avoid deadlocks due to synchronous balancer state updates.\nfunc (bw *balancerWrapper) ExitIdle() {\n\tgo func() {\n\t\tbw.es.childMu.Lock()\n\t\tif !bw.isClosed {\n\t\t\tbw.child.ExitIdle()\n\t\t}\n\t\tbw.es.childMu.Unlock()\n\t}()\n}\n\n// updateClientConnStateLocked delivers the ClientConnState to the child\n// balancer. Callers must hold the child mutex of the parent endpointsharding\n// balancer.\nfunc (bw *balancerWrapper) updateClientConnStateLocked(ccs balancer.ClientConnState) error {\n\treturn bw.child.UpdateClientConnState(ccs)\n}\n\n// closeLocked closes the child balancer. Callers must hold the child mutext of\n// the parent endpointsharding balancer.\nfunc (bw *balancerWrapper) closeLocked() {\n\tbw.child.Close()\n\tbw.isClosed = true\n}\n\nfunc (bw *balancerWrapper) resolverErrorLocked(err error) {\n\tbw.child.ResolverError(err)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/grpclb/state/state.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package state declares grpclb types to be set by resolvers wishing to pass\n// information to grpclb via resolver.State Attributes.\npackage state\n\nimport (\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// keyType is the key to use for storing State in Attributes.\ntype keyType string\n\nconst key = keyType(\"grpc.grpclb.state\")\n\n// State contains gRPCLB-relevant data passed from the name resolver.\ntype State struct {\n\t// BalancerAddresses contains the remote load balancer address(es).  If\n\t// set, overrides any resolver-provided addresses with Type of GRPCLB.\n\tBalancerAddresses []resolver.Address\n}\n\n// Set returns a copy of the provided state with attributes containing s.  s's\n// data should not be mutated after calling Set.\nfunc Set(state resolver.State, s *State) resolver.State {\n\tstate.Attributes = state.Attributes.WithValue(key, s)\n\treturn state\n}\n\n// Get returns the grpclb State in the resolver.State, or nil if not present.\n// The returned data should not be mutated.\nfunc Get(state resolver.State) *State {\n\ts, _ := state.Attributes.Value(key).(*State)\n\treturn s\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/pickfirst/internal/internal.go",
    "content": "/*\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package internal contains code internal to the pickfirst package.\npackage internal\n\nimport (\n\trand \"math/rand/v2\"\n\t\"time\"\n)\n\nvar (\n\t// RandShuffle pseudo-randomizes the order of addresses.\n\tRandShuffle = rand.Shuffle\n\t// RandFloat64 returns, as a float64, a pseudo-random number in [0.0,1.0).\n\tRandFloat64 = rand.Float64\n\t// TimeAfterFunc allows mocking the timer for testing connection delay\n\t// related functionality.\n\tTimeAfterFunc = func(d time.Duration, f func()) func() {\n\t\ttimer := time.AfterFunc(d, f)\n\t\treturn func() { timer.Stop() }\n\t}\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package pickfirst contains the pick_first load balancing policy which\n// is the universal leaf policy.\npackage pickfirst\n\nimport (\n\t\"cmp\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"net\"\n\t\"net/netip\"\n\t\"slices\"\n\t\"sync\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/pickfirst/internal\"\n\t\"google.golang.org/grpc/connectivity\"\n\texpstats \"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal/balancer/weight\"\n\t\"google.golang.org/grpc/internal/envconfig\"\n\tinternalgrpclog \"google.golang.org/grpc/internal/grpclog\"\n\t\"google.golang.org/grpc/internal/pretty\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nfunc init() {\n\tbalancer.Register(pickfirstBuilder{})\n}\n\n// Name is the name of the pick_first balancer.\nconst Name = \"pick_first\"\n\n// enableHealthListenerKeyType is a unique key type used in resolver\n// attributes to indicate whether the health listener usage is enabled.\ntype enableHealthListenerKeyType struct{}\n\nvar (\n\tlogger               = grpclog.Component(\"pick-first-leaf-lb\")\n\tdisconnectionsMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:        \"grpc.lb.pick_first.disconnections\",\n\t\tDescription: \"EXPERIMENTAL. Number of times the selected subchannel becomes disconnected.\",\n\t\tUnit:        \"{disconnection}\",\n\t\tLabels:      []string{\"grpc.target\"},\n\t\tDefault:     false,\n\t})\n\tconnectionAttemptsSucceededMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:        \"grpc.lb.pick_first.connection_attempts_succeeded\",\n\t\tDescription: \"EXPERIMENTAL. Number of successful connection attempts.\",\n\t\tUnit:        \"{attempt}\",\n\t\tLabels:      []string{\"grpc.target\"},\n\t\tDefault:     false,\n\t})\n\tconnectionAttemptsFailedMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:        \"grpc.lb.pick_first.connection_attempts_failed\",\n\t\tDescription: \"EXPERIMENTAL. Number of failed connection attempts.\",\n\t\tUnit:        \"{attempt}\",\n\t\tLabels:      []string{\"grpc.target\"},\n\t\tDefault:     false,\n\t})\n)\n\nconst (\n\t// TODO: change to pick-first when this becomes the default pick_first policy.\n\tlogPrefix = \"[pick-first-leaf-lb %p] \"\n\t// connectionDelayInterval is the time to wait for during the happy eyeballs\n\t// pass before starting the next connection attempt.\n\tconnectionDelayInterval = 250 * time.Millisecond\n)\n\ntype ipAddrFamily int\n\nconst (\n\t// ipAddrFamilyUnknown represents strings that can't be parsed as an IP\n\t// address.\n\tipAddrFamilyUnknown ipAddrFamily = iota\n\tipAddrFamilyV4\n\tipAddrFamilyV6\n)\n\ntype pickfirstBuilder struct{}\n\nfunc (pickfirstBuilder) Build(cc balancer.ClientConn, bo balancer.BuildOptions) balancer.Balancer {\n\tb := &pickfirstBalancer{\n\t\tcc:              cc,\n\t\ttarget:          bo.Target.String(),\n\t\tmetricsRecorder: cc.MetricsRecorder(),\n\n\t\tsubConns:              resolver.NewAddressMapV2[*scData](),\n\t\tstate:                 connectivity.Connecting,\n\t\tcancelConnectionTimer: func() {},\n\t}\n\tb.logger = internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(logPrefix, b))\n\treturn b\n}\n\nfunc (b pickfirstBuilder) Name() string {\n\treturn Name\n}\n\nfunc (pickfirstBuilder) ParseConfig(js json.RawMessage) (serviceconfig.LoadBalancingConfig, error) {\n\tvar cfg pfConfig\n\tif err := json.Unmarshal(js, &cfg); err != nil {\n\t\treturn nil, fmt.Errorf(\"pickfirst: unable to unmarshal LB policy config: %s, error: %v\", string(js), err)\n\t}\n\treturn cfg, nil\n}\n\n// EnableHealthListener updates the state to configure pickfirst for using a\n// generic health listener.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a later\n// release.\nfunc EnableHealthListener(state resolver.State) resolver.State {\n\tstate.Attributes = state.Attributes.WithValue(enableHealthListenerKeyType{}, true)\n\treturn state\n}\n\ntype pfConfig struct {\n\tserviceconfig.LoadBalancingConfig `json:\"-\"`\n\n\t// If set to true, instructs the LB policy to shuffle the order of the list\n\t// of endpoints received from the name resolver before attempting to\n\t// connect to them.\n\tShuffleAddressList bool `json:\"shuffleAddressList\"`\n}\n\n// scData keeps track of the current state of the subConn.\n// It is not safe for concurrent access.\ntype scData struct {\n\t// The following fields are initialized at build time and read-only after\n\t// that.\n\tsubConn balancer.SubConn\n\taddr    resolver.Address\n\n\trawConnectivityState connectivity.State\n\t// The effective connectivity state based on raw connectivity, health state\n\t// and after following sticky TransientFailure behaviour defined in A62.\n\teffectiveState              connectivity.State\n\tlastErr                     error\n\tconnectionFailedInFirstPass bool\n}\n\nfunc (b *pickfirstBalancer) newSCData(addr resolver.Address) (*scData, error) {\n\tsd := &scData{\n\t\trawConnectivityState: connectivity.Idle,\n\t\teffectiveState:       connectivity.Idle,\n\t\taddr:                 addr,\n\t}\n\tsc, err := b.cc.NewSubConn([]resolver.Address{addr}, balancer.NewSubConnOptions{\n\t\tStateListener: func(state balancer.SubConnState) {\n\t\t\tb.updateSubConnState(sd, state)\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsd.subConn = sc\n\treturn sd, nil\n}\n\ntype pickfirstBalancer struct {\n\t// The following fields are initialized at build time and read-only after\n\t// that and therefore do not need to be guarded by a mutex.\n\tlogger          *internalgrpclog.PrefixLogger\n\tcc              balancer.ClientConn\n\ttarget          string\n\tmetricsRecorder expstats.MetricsRecorder // guaranteed to be non nil\n\n\t// The mutex is used to ensure synchronization of updates triggered\n\t// from the idle picker and the already serialized resolver,\n\t// SubConn state updates.\n\tmu sync.Mutex\n\t// State reported to the channel based on SubConn states and resolver\n\t// updates.\n\tstate connectivity.State\n\t// scData for active subonns mapped by address.\n\tsubConns              *resolver.AddressMapV2[*scData]\n\taddressList           addressList\n\tfirstPass             bool\n\tnumTF                 int\n\tcancelConnectionTimer func()\n\thealthCheckingEnabled bool\n}\n\n// ResolverError is called by the ClientConn when the name resolver produces\n// an error or when pickfirst determined the resolver update to be invalid.\nfunc (b *pickfirstBalancer) ResolverError(err error) {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tb.resolverErrorLocked(err)\n}\n\nfunc (b *pickfirstBalancer) resolverErrorLocked(err error) {\n\tif b.logger.V(2) {\n\t\tb.logger.Infof(\"Received error from the name resolver: %v\", err)\n\t}\n\n\t// The picker will not change since the balancer does not currently\n\t// report an error. If the balancer hasn't received a single good resolver\n\t// update yet, transition to TRANSIENT_FAILURE.\n\tif b.state != connectivity.TransientFailure && b.addressList.size() > 0 {\n\t\tif b.logger.V(2) {\n\t\t\tb.logger.Infof(\"Ignoring resolver error because balancer is using a previous good update.\")\n\t\t}\n\t\treturn\n\t}\n\n\tb.updateBalancerState(balancer.State{\n\t\tConnectivityState: connectivity.TransientFailure,\n\t\tPicker:            &picker{err: fmt.Errorf(\"name resolver error: %v\", err)},\n\t})\n}\n\nfunc (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState) error {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tb.cancelConnectionTimer()\n\tif len(state.ResolverState.Addresses) == 0 && len(state.ResolverState.Endpoints) == 0 {\n\t\t// Cleanup state pertaining to the previous resolver state.\n\t\t// Treat an empty address list like an error by calling b.ResolverError.\n\t\tb.closeSubConnsLocked()\n\t\tb.addressList.updateAddrs(nil)\n\t\tb.resolverErrorLocked(errors.New(\"produced zero addresses\"))\n\t\treturn balancer.ErrBadResolverState\n\t}\n\tb.healthCheckingEnabled = state.ResolverState.Attributes.Value(enableHealthListenerKeyType{}) != nil\n\tcfg, ok := state.BalancerConfig.(pfConfig)\n\tif state.BalancerConfig != nil && !ok {\n\t\treturn fmt.Errorf(\"pickfirst: received illegal BalancerConfig (type %T): %v: %w\", state.BalancerConfig, state.BalancerConfig, balancer.ErrBadResolverState)\n\t}\n\n\tif b.logger.V(2) {\n\t\tb.logger.Infof(\"Received new config %s, resolver state %s\", pretty.ToJSON(cfg), pretty.ToJSON(state.ResolverState))\n\t}\n\n\tvar newAddrs []resolver.Address\n\tif endpoints := state.ResolverState.Endpoints; len(endpoints) != 0 {\n\t\t// Perform the optional shuffling described in gRFC A62. The shuffling\n\t\t// will change the order of endpoints but not touch the order of the\n\t\t// addresses within each endpoint. - A61\n\t\tif cfg.ShuffleAddressList {\n\t\t\tif envconfig.PickFirstWeightedShuffling {\n\t\t\t\ttype weightedEndpoint struct {\n\t\t\t\t\tendpoint resolver.Endpoint\n\t\t\t\t\tweight   float64\n\t\t\t\t}\n\n\t\t\t\t// For each endpoint, compute a key as described in A113 and\n\t\t\t\t// https://utopia.duth.gr/~pefraimi/research/data/2007EncOfAlg.pdf:\n\t\t\t\tvar weightedEndpoints []weightedEndpoint\n\t\t\t\tfor _, endpoint := range endpoints {\n\t\t\t\t\tu := internal.RandFloat64() // Random number in [0.0, 1.0)\n\t\t\t\t\tweight := weightAttribute(endpoint)\n\t\t\t\t\tweightedEndpoints = append(weightedEndpoints, weightedEndpoint{\n\t\t\t\t\t\tendpoint: endpoint,\n\t\t\t\t\t\tweight:   math.Pow(u, 1.0/float64(weight)),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t// Sort endpoints by key in descending order and reconstruct the\n\t\t\t\t// endpoints slice.\n\t\t\t\tslices.SortFunc(weightedEndpoints, func(a, b weightedEndpoint) int {\n\t\t\t\t\treturn cmp.Compare(b.weight, a.weight)\n\t\t\t\t})\n\n\t\t\t\t// Here, and in the \"else\" block below, we clone the endpoints\n\t\t\t\t// slice to avoid mutating the resolver state. Doing the latter\n\t\t\t\t// would lead to data races if the caller is accessing the same\n\t\t\t\t// slice concurrently.\n\t\t\t\tsortedEndpoints := make([]resolver.Endpoint, len(endpoints))\n\t\t\t\tfor i, we := range weightedEndpoints {\n\t\t\t\t\tsortedEndpoints[i] = we.endpoint\n\t\t\t\t}\n\t\t\t\tendpoints = sortedEndpoints\n\t\t\t} else {\n\t\t\t\tendpoints = slices.Clone(endpoints)\n\t\t\t\tinternal.RandShuffle(len(endpoints), func(i, j int) { endpoints[i], endpoints[j] = endpoints[j], endpoints[i] })\n\t\t\t}\n\t\t}\n\n\t\t// \"Flatten the list by concatenating the ordered list of addresses for\n\t\t// each of the endpoints, in order.\" - A61\n\t\tfor _, endpoint := range endpoints {\n\t\t\tnewAddrs = append(newAddrs, endpoint.Addresses...)\n\t\t}\n\t} else {\n\t\t// Endpoints not set, process addresses until we migrate resolver\n\t\t// emissions fully to Endpoints. The top channel does wrap emitted\n\t\t// addresses with endpoints, however some balancers such as weighted\n\t\t// target do not forward the corresponding correct endpoints down/split\n\t\t// endpoints properly. Once all balancers correctly forward endpoints\n\t\t// down, can delete this else conditional.\n\t\tnewAddrs = state.ResolverState.Addresses\n\t\tif cfg.ShuffleAddressList {\n\t\t\tnewAddrs = append([]resolver.Address{}, newAddrs...)\n\t\t\tinternal.RandShuffle(len(newAddrs), func(i, j int) { newAddrs[i], newAddrs[j] = newAddrs[j], newAddrs[i] })\n\t\t}\n\t}\n\n\t// If an address appears in multiple endpoints or in the same endpoint\n\t// multiple times, we keep it only once. We will create only one SubConn\n\t// for the address because an AddressMap is used to store SubConns.\n\t// Not de-duplicating would result in attempting to connect to the same\n\t// SubConn multiple times in the same pass. We don't want this.\n\tnewAddrs = deDupAddresses(newAddrs)\n\tnewAddrs = interleaveAddresses(newAddrs)\n\n\tprevAddr := b.addressList.currentAddress()\n\tprevSCData, found := b.subConns.Get(prevAddr)\n\tprevAddrsCount := b.addressList.size()\n\tisPrevRawConnectivityStateReady := found && prevSCData.rawConnectivityState == connectivity.Ready\n\tb.addressList.updateAddrs(newAddrs)\n\n\t// If the previous ready SubConn exists in new address list,\n\t// keep this connection and don't create new SubConns.\n\tif isPrevRawConnectivityStateReady && b.addressList.seekTo(prevAddr) {\n\t\treturn nil\n\t}\n\n\tb.reconcileSubConnsLocked(newAddrs)\n\t// If it's the first resolver update or the balancer was already READY\n\t// (but the new address list does not contain the ready SubConn) or\n\t// CONNECTING, enter CONNECTING.\n\t// We may be in TRANSIENT_FAILURE due to a previous empty address list,\n\t// we should still enter CONNECTING because the sticky TF behaviour\n\t//  mentioned in A62 applies only when the TRANSIENT_FAILURE is reported\n\t// due to connectivity failures.\n\tif isPrevRawConnectivityStateReady || b.state == connectivity.Connecting || prevAddrsCount == 0 {\n\t\t// Start connection attempt at first address.\n\t\tb.forceUpdateConcludedStateLocked(balancer.State{\n\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\tPicker:            &picker{err: balancer.ErrNoSubConnAvailable},\n\t\t})\n\t\tb.startFirstPassLocked()\n\t} else if b.state == connectivity.TransientFailure {\n\t\t// If we're in TRANSIENT_FAILURE, we stay in TRANSIENT_FAILURE until\n\t\t// we're READY. See A62.\n\t\tb.startFirstPassLocked()\n\t}\n\treturn nil\n}\n\n// UpdateSubConnState is unused as a StateListener is always registered when\n// creating SubConns.\nfunc (b *pickfirstBalancer) UpdateSubConnState(subConn balancer.SubConn, state balancer.SubConnState) {\n\tb.logger.Errorf(\"UpdateSubConnState(%v, %+v) called unexpectedly\", subConn, state)\n}\n\nfunc (b *pickfirstBalancer) Close() {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tb.closeSubConnsLocked()\n\tb.cancelConnectionTimer()\n\tb.state = connectivity.Shutdown\n}\n\n// ExitIdle moves the balancer out of idle state. It can be called concurrently\n// by the idlePicker and clientConn so access to variables should be\n// synchronized.\nfunc (b *pickfirstBalancer) ExitIdle() {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tif b.state == connectivity.Idle {\n\t\t// Move the balancer into CONNECTING state immediately. This is done to\n\t\t// avoid staying in IDLE if a resolver update arrives before the first\n\t\t// SubConn reports CONNECTING.\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\tPicker:            &picker{err: balancer.ErrNoSubConnAvailable},\n\t\t})\n\t\tb.startFirstPassLocked()\n\t}\n}\n\nfunc (b *pickfirstBalancer) startFirstPassLocked() {\n\tb.firstPass = true\n\tb.numTF = 0\n\t// Reset the connection attempt record for existing SubConns.\n\tfor _, sd := range b.subConns.Values() {\n\t\tsd.connectionFailedInFirstPass = false\n\t}\n\tb.requestConnectionLocked()\n}\n\nfunc (b *pickfirstBalancer) closeSubConnsLocked() {\n\tfor _, sd := range b.subConns.Values() {\n\t\tsd.subConn.Shutdown()\n\t}\n\tb.subConns = resolver.NewAddressMapV2[*scData]()\n}\n\n// deDupAddresses ensures that each address appears only once in the slice.\nfunc deDupAddresses(addrs []resolver.Address) []resolver.Address {\n\tseenAddrs := resolver.NewAddressMapV2[bool]()\n\tretAddrs := []resolver.Address{}\n\n\tfor _, addr := range addrs {\n\t\tif _, ok := seenAddrs.Get(addr); ok {\n\t\t\tcontinue\n\t\t}\n\t\tseenAddrs.Set(addr, true)\n\t\tretAddrs = append(retAddrs, addr)\n\t}\n\treturn retAddrs\n}\n\n// interleaveAddresses interleaves addresses of both families (IPv4 and IPv6)\n// as per RFC-8305 section 4.\n// Whichever address family is first in the list is followed by an address of\n// the other address family; that is, if the first address in the list is IPv6,\n// then the first IPv4 address should be moved up in the list to be second in\n// the list. It doesn't support configuring \"First Address Family Count\", i.e.\n// there will always be a single member of the first address family at the\n// beginning of the interleaved list.\n// Addresses that are neither IPv4 nor IPv6 are treated as part of a third\n// \"unknown\" family for interleaving.\n// See: https://datatracker.ietf.org/doc/html/rfc8305#autoid-6\nfunc interleaveAddresses(addrs []resolver.Address) []resolver.Address {\n\tfamilyAddrsMap := map[ipAddrFamily][]resolver.Address{}\n\tinterleavingOrder := []ipAddrFamily{}\n\tfor _, addr := range addrs {\n\t\tfamily := addressFamily(addr.Addr)\n\t\tif _, found := familyAddrsMap[family]; !found {\n\t\t\tinterleavingOrder = append(interleavingOrder, family)\n\t\t}\n\t\tfamilyAddrsMap[family] = append(familyAddrsMap[family], addr)\n\t}\n\n\tinterleavedAddrs := make([]resolver.Address, 0, len(addrs))\n\n\tfor curFamilyIdx := 0; len(interleavedAddrs) < len(addrs); curFamilyIdx = (curFamilyIdx + 1) % len(interleavingOrder) {\n\t\t// Some IP types may have fewer addresses than others, so we look for\n\t\t// the next type that has a remaining member to add to the interleaved\n\t\t// list.\n\t\tfamily := interleavingOrder[curFamilyIdx]\n\t\tremainingMembers := familyAddrsMap[family]\n\t\tif len(remainingMembers) > 0 {\n\t\t\tinterleavedAddrs = append(interleavedAddrs, remainingMembers[0])\n\t\t\tfamilyAddrsMap[family] = remainingMembers[1:]\n\t\t}\n\t}\n\n\treturn interleavedAddrs\n}\n\n// addressFamily returns the ipAddrFamily after parsing the address string.\n// If the address isn't of the format \"ip-address:port\", it returns\n// ipAddrFamilyUnknown. The address may be valid even if it's not an IP when\n// using a resolver like passthrough where the address may be a hostname in\n// some format that the dialer can resolve.\nfunc addressFamily(address string) ipAddrFamily {\n\t// Parse the IP after removing the port.\n\thost, _, err := net.SplitHostPort(address)\n\tif err != nil {\n\t\treturn ipAddrFamilyUnknown\n\t}\n\tip, err := netip.ParseAddr(host)\n\tif err != nil {\n\t\treturn ipAddrFamilyUnknown\n\t}\n\tswitch {\n\tcase ip.Is4() || ip.Is4In6():\n\t\treturn ipAddrFamilyV4\n\tcase ip.Is6():\n\t\treturn ipAddrFamilyV6\n\tdefault:\n\t\treturn ipAddrFamilyUnknown\n\t}\n}\n\n// reconcileSubConnsLocked updates the active subchannels based on a new address\n// list from the resolver. It does this by:\n//   - closing subchannels: any existing subchannels associated with addresses\n//     that are no longer in the updated list are shut down.\n//   - removing subchannels: entries for these closed subchannels are removed\n//     from the subchannel map.\n//\n// This ensures that the subchannel map accurately reflects the current set of\n// addresses received from the name resolver.\nfunc (b *pickfirstBalancer) reconcileSubConnsLocked(newAddrs []resolver.Address) {\n\tnewAddrsMap := resolver.NewAddressMapV2[bool]()\n\tfor _, addr := range newAddrs {\n\t\tnewAddrsMap.Set(addr, true)\n\t}\n\n\tfor _, oldAddr := range b.subConns.Keys() {\n\t\tif _, ok := newAddrsMap.Get(oldAddr); ok {\n\t\t\tcontinue\n\t\t}\n\t\tval, _ := b.subConns.Get(oldAddr)\n\t\tval.subConn.Shutdown()\n\t\tb.subConns.Delete(oldAddr)\n\t}\n}\n\n// shutdownRemainingLocked shuts down remaining subConns. Called when a subConn\n// becomes ready, which means that all other subConn must be shutdown.\nfunc (b *pickfirstBalancer) shutdownRemainingLocked(selected *scData) {\n\tb.cancelConnectionTimer()\n\tfor _, sd := range b.subConns.Values() {\n\t\tif sd.subConn != selected.subConn {\n\t\t\tsd.subConn.Shutdown()\n\t\t}\n\t}\n\tb.subConns = resolver.NewAddressMapV2[*scData]()\n\tb.subConns.Set(selected.addr, selected)\n}\n\n// requestConnectionLocked starts connecting on the subchannel corresponding to\n// the current address. If no subchannel exists, one is created. If the current\n// subchannel is in TransientFailure, a connection to the next address is\n// attempted until a subchannel is found.\nfunc (b *pickfirstBalancer) requestConnectionLocked() {\n\tif !b.addressList.isValid() {\n\t\treturn\n\t}\n\tvar lastErr error\n\tfor valid := true; valid; valid = b.addressList.increment() {\n\t\tcurAddr := b.addressList.currentAddress()\n\t\tsd, ok := b.subConns.Get(curAddr)\n\t\tif !ok {\n\t\t\tvar err error\n\t\t\t// We want to assign the new scData to sd from the outer scope,\n\t\t\t// hence we can't use := below.\n\t\t\tsd, err = b.newSCData(curAddr)\n\t\t\tif err != nil {\n\t\t\t\t// This should never happen, unless the clientConn is being shut\n\t\t\t\t// down.\n\t\t\t\tif b.logger.V(2) {\n\t\t\t\t\tb.logger.Infof(\"Failed to create a subConn for address %v: %v\", curAddr.String(), err)\n\t\t\t\t}\n\t\t\t\t// Do nothing, the LB policy will be closed soon.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb.subConns.Set(curAddr, sd)\n\t\t}\n\n\t\tswitch sd.rawConnectivityState {\n\t\tcase connectivity.Idle:\n\t\t\tsd.subConn.Connect()\n\t\t\tb.scheduleNextConnectionLocked()\n\t\t\treturn\n\t\tcase connectivity.TransientFailure:\n\t\t\t// The SubConn is being re-used and failed during a previous pass\n\t\t\t// over the addressList. It has not completed backoff yet.\n\t\t\t// Mark it as having failed and try the next address.\n\t\t\tsd.connectionFailedInFirstPass = true\n\t\t\tlastErr = sd.lastErr\n\t\t\tcontinue\n\t\tcase connectivity.Connecting:\n\t\t\t// Wait for the connection attempt to complete or the timer to fire\n\t\t\t// before attempting the next address.\n\t\t\tb.scheduleNextConnectionLocked()\n\t\t\treturn\n\t\tdefault:\n\t\t\tb.logger.Errorf(\"SubConn with unexpected state %v present in SubConns map.\", sd.rawConnectivityState)\n\t\t\treturn\n\n\t\t}\n\t}\n\n\t// All the remaining addresses in the list are in TRANSIENT_FAILURE, end the\n\t// first pass if possible.\n\tb.endFirstPassIfPossibleLocked(lastErr)\n}\n\nfunc (b *pickfirstBalancer) scheduleNextConnectionLocked() {\n\tb.cancelConnectionTimer()\n\tif !b.addressList.hasNext() {\n\t\treturn\n\t}\n\tcurAddr := b.addressList.currentAddress()\n\tcancelled := false // Access to this is protected by the balancer's mutex.\n\tcloseFn := internal.TimeAfterFunc(connectionDelayInterval, func() {\n\t\tb.mu.Lock()\n\t\tdefer b.mu.Unlock()\n\t\t// If the scheduled task is cancelled while acquiring the mutex, return.\n\t\tif cancelled {\n\t\t\treturn\n\t\t}\n\t\tif b.logger.V(2) {\n\t\t\tb.logger.Infof(\"Happy Eyeballs timer expired while waiting for connection to %q.\", curAddr.Addr)\n\t\t}\n\t\tif b.addressList.increment() {\n\t\t\tb.requestConnectionLocked()\n\t\t}\n\t})\n\t// Access to the cancellation callback held by the balancer is guarded by\n\t// the balancer's mutex, so it's safe to set the boolean from the callback.\n\tb.cancelConnectionTimer = sync.OnceFunc(func() {\n\t\tcancelled = true\n\t\tcloseFn()\n\t})\n}\n\nfunc (b *pickfirstBalancer) updateSubConnState(sd *scData, newState balancer.SubConnState) {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\toldState := sd.rawConnectivityState\n\tsd.rawConnectivityState = newState.ConnectivityState\n\t// Previously relevant SubConns can still callback with state updates.\n\t// To prevent pickers from returning these obsolete SubConns, this logic\n\t// is included to check if the current list of active SubConns includes this\n\t// SubConn.\n\tif !b.isActiveSCData(sd) {\n\t\treturn\n\t}\n\tif newState.ConnectivityState == connectivity.Shutdown {\n\t\tsd.effectiveState = connectivity.Shutdown\n\t\treturn\n\t}\n\n\t// Record a connection attempt when exiting CONNECTING.\n\tif newState.ConnectivityState == connectivity.TransientFailure {\n\t\tsd.connectionFailedInFirstPass = true\n\t\tconnectionAttemptsFailedMetric.Record(b.metricsRecorder, 1, b.target)\n\t}\n\n\tif newState.ConnectivityState == connectivity.Ready {\n\t\tconnectionAttemptsSucceededMetric.Record(b.metricsRecorder, 1, b.target)\n\t\tb.shutdownRemainingLocked(sd)\n\t\tif !b.addressList.seekTo(sd.addr) {\n\t\t\t// This should not fail as we should have only one SubConn after\n\t\t\t// entering READY. The SubConn should be present in the addressList.\n\t\t\tb.logger.Errorf(\"Address %q not found address list in %v\", sd.addr, b.addressList.addresses)\n\t\t\treturn\n\t\t}\n\t\tif !b.healthCheckingEnabled {\n\t\t\tif b.logger.V(2) {\n\t\t\t\tb.logger.Infof(\"SubConn %p reported connectivity state READY and the health listener is disabled. Transitioning SubConn to READY.\", sd.subConn)\n\t\t\t}\n\n\t\t\tsd.effectiveState = connectivity.Ready\n\t\t\tb.updateBalancerState(balancer.State{\n\t\t\t\tConnectivityState: connectivity.Ready,\n\t\t\t\tPicker:            &picker{result: balancer.PickResult{SubConn: sd.subConn}},\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t\tif b.logger.V(2) {\n\t\t\tb.logger.Infof(\"SubConn %p reported connectivity state READY. Registering health listener.\", sd.subConn)\n\t\t}\n\t\t// Send a CONNECTING update to take the SubConn out of sticky-TF if\n\t\t// required.\n\t\tsd.effectiveState = connectivity.Connecting\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\tPicker:            &picker{err: balancer.ErrNoSubConnAvailable},\n\t\t})\n\t\tsd.subConn.RegisterHealthListener(func(scs balancer.SubConnState) {\n\t\t\tb.updateSubConnHealthState(sd, scs)\n\t\t})\n\t\treturn\n\t}\n\n\t// If the LB policy is READY, and it receives a subchannel state change,\n\t// it means that the READY subchannel has failed.\n\t// A SubConn can also transition from CONNECTING directly to IDLE when\n\t// a transport is successfully created, but the connection fails\n\t// before the SubConn can send the notification for READY. We treat\n\t// this as a successful connection and transition to IDLE.\n\t// TODO: https://github.com/grpc/grpc-go/issues/7862 - Remove the second\n\t// part of the if condition below once the issue is fixed.\n\tif oldState == connectivity.Ready || (oldState == connectivity.Connecting && newState.ConnectivityState == connectivity.Idle) {\n\t\t// Once a transport fails, the balancer enters IDLE and starts from\n\t\t// the first address when the picker is used.\n\t\tb.shutdownRemainingLocked(sd)\n\t\tsd.effectiveState = newState.ConnectivityState\n\t\t// READY SubConn interspliced in between CONNECTING and IDLE, need to\n\t\t// account for that.\n\t\tif oldState == connectivity.Connecting {\n\t\t\t// A known issue (https://github.com/grpc/grpc-go/issues/7862)\n\t\t\t// causes a race that prevents the READY state change notification.\n\t\t\t// This works around it.\n\t\t\tconnectionAttemptsSucceededMetric.Record(b.metricsRecorder, 1, b.target)\n\t\t}\n\t\tdisconnectionsMetric.Record(b.metricsRecorder, 1, b.target)\n\t\tb.addressList.reset()\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.Idle,\n\t\t\tPicker:            &idlePicker{exitIdle: sync.OnceFunc(b.ExitIdle)},\n\t\t})\n\t\treturn\n\t}\n\n\tif b.firstPass {\n\t\tswitch newState.ConnectivityState {\n\t\tcase connectivity.Connecting:\n\t\t\t// The effective state can be in either IDLE, CONNECTING or\n\t\t\t// TRANSIENT_FAILURE. If it's  TRANSIENT_FAILURE, stay in\n\t\t\t// TRANSIENT_FAILURE until it's READY. See A62.\n\t\t\tif sd.effectiveState != connectivity.TransientFailure {\n\t\t\t\tsd.effectiveState = connectivity.Connecting\n\t\t\t\tb.updateBalancerState(balancer.State{\n\t\t\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\t\t\tPicker:            &picker{err: balancer.ErrNoSubConnAvailable},\n\t\t\t\t})\n\t\t\t}\n\t\tcase connectivity.TransientFailure:\n\t\t\tsd.lastErr = newState.ConnectionError\n\t\t\tsd.effectiveState = connectivity.TransientFailure\n\t\t\t// Since we're re-using common SubConns while handling resolver\n\t\t\t// updates, we could receive an out of turn TRANSIENT_FAILURE from\n\t\t\t// a pass over the previous address list. Happy Eyeballs will also\n\t\t\t// cause out of order updates to arrive.\n\n\t\t\tif curAddr := b.addressList.currentAddress(); equalAddressIgnoringBalAttributes(&curAddr, &sd.addr) {\n\t\t\t\tb.cancelConnectionTimer()\n\t\t\t\tif b.addressList.increment() {\n\t\t\t\t\tb.requestConnectionLocked()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// End the first pass if we've seen a TRANSIENT_FAILURE from all\n\t\t\t// SubConns once.\n\t\t\tb.endFirstPassIfPossibleLocked(newState.ConnectionError)\n\t\t}\n\t\treturn\n\t}\n\n\t// We have finished the first pass, keep re-connecting failing SubConns.\n\tswitch newState.ConnectivityState {\n\tcase connectivity.TransientFailure:\n\t\tb.numTF = (b.numTF + 1) % b.subConns.Len()\n\t\tsd.lastErr = newState.ConnectionError\n\t\tif b.numTF%b.subConns.Len() == 0 {\n\t\t\tb.updateBalancerState(balancer.State{\n\t\t\t\tConnectivityState: connectivity.TransientFailure,\n\t\t\t\tPicker:            &picker{err: newState.ConnectionError},\n\t\t\t})\n\t\t}\n\t\t// We don't need to request re-resolution since the SubConn already\n\t\t// does that before reporting TRANSIENT_FAILURE.\n\t\t// TODO: #7534 - Move re-resolution requests from SubConn into\n\t\t// pick_first.\n\tcase connectivity.Idle:\n\t\tsd.subConn.Connect()\n\t}\n}\n\n// endFirstPassIfPossibleLocked ends the first happy-eyeballs pass if all the\n// addresses are tried and their SubConns have reported a failure.\nfunc (b *pickfirstBalancer) endFirstPassIfPossibleLocked(lastErr error) {\n\t// An optimization to avoid iterating over the entire SubConn map.\n\tif b.addressList.isValid() {\n\t\treturn\n\t}\n\t// Connect() has been called on all the SubConns. The first pass can be\n\t// ended if all the SubConns have reported a failure.\n\tfor _, sd := range b.subConns.Values() {\n\t\tif !sd.connectionFailedInFirstPass {\n\t\t\treturn\n\t\t}\n\t}\n\tb.firstPass = false\n\tb.updateBalancerState(balancer.State{\n\t\tConnectivityState: connectivity.TransientFailure,\n\t\tPicker:            &picker{err: lastErr},\n\t})\n\t// Start re-connecting all the SubConns that are already in IDLE.\n\tfor _, sd := range b.subConns.Values() {\n\t\tif sd.rawConnectivityState == connectivity.Idle {\n\t\t\tsd.subConn.Connect()\n\t\t}\n\t}\n}\n\nfunc (b *pickfirstBalancer) isActiveSCData(sd *scData) bool {\n\tactiveSD, found := b.subConns.Get(sd.addr)\n\treturn found && activeSD == sd\n}\n\nfunc (b *pickfirstBalancer) updateSubConnHealthState(sd *scData, state balancer.SubConnState) {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\t// Previously relevant SubConns can still callback with state updates.\n\t// To prevent pickers from returning these obsolete SubConns, this logic\n\t// is included to check if the current list of active SubConns includes\n\t// this SubConn.\n\tif !b.isActiveSCData(sd) {\n\t\treturn\n\t}\n\tsd.effectiveState = state.ConnectivityState\n\tswitch state.ConnectivityState {\n\tcase connectivity.Ready:\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.Ready,\n\t\t\tPicker:            &picker{result: balancer.PickResult{SubConn: sd.subConn}},\n\t\t})\n\tcase connectivity.TransientFailure:\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.TransientFailure,\n\t\t\tPicker:            &picker{err: fmt.Errorf(\"pickfirst: health check failure: %v\", state.ConnectionError)},\n\t\t})\n\tcase connectivity.Connecting:\n\t\tb.updateBalancerState(balancer.State{\n\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\tPicker:            &picker{err: balancer.ErrNoSubConnAvailable},\n\t\t})\n\tdefault:\n\t\tb.logger.Errorf(\"Got unexpected health update for SubConn %p: %v\", state)\n\t}\n}\n\n// updateBalancerState stores the state reported to the channel and calls\n// ClientConn.UpdateState(). As an optimization, it avoids sending duplicate\n// updates to the channel.\nfunc (b *pickfirstBalancer) updateBalancerState(newState balancer.State) {\n\t// In case of TransientFailures allow the picker to be updated to update\n\t// the connectivity error, in all other cases don't send duplicate state\n\t// updates.\n\tif newState.ConnectivityState == b.state && b.state != connectivity.TransientFailure {\n\t\treturn\n\t}\n\tb.forceUpdateConcludedStateLocked(newState)\n}\n\n// forceUpdateConcludedStateLocked stores the state reported to the channel and\n// calls ClientConn.UpdateState().\n// A separate function is defined to force update the ClientConn state since the\n// channel doesn't correctly assume that LB policies start in CONNECTING and\n// relies on LB policy to send an initial CONNECTING update.\nfunc (b *pickfirstBalancer) forceUpdateConcludedStateLocked(newState balancer.State) {\n\tb.state = newState.ConnectivityState\n\tb.cc.UpdateState(newState)\n}\n\ntype picker struct {\n\tresult balancer.PickResult\n\terr    error\n}\n\nfunc (p *picker) Pick(balancer.PickInfo) (balancer.PickResult, error) {\n\treturn p.result, p.err\n}\n\n// idlePicker is used when the SubConn is IDLE and kicks the SubConn into\n// CONNECTING when Pick is called.\ntype idlePicker struct {\n\texitIdle func()\n}\n\nfunc (i *idlePicker) Pick(balancer.PickInfo) (balancer.PickResult, error) {\n\ti.exitIdle()\n\treturn balancer.PickResult{}, balancer.ErrNoSubConnAvailable\n}\n\n// addressList manages sequentially iterating over addresses present in a list\n// of endpoints. It provides a 1 dimensional view of the addresses present in\n// the endpoints.\n// This type is not safe for concurrent access.\ntype addressList struct {\n\taddresses []resolver.Address\n\tidx       int\n}\n\nfunc (al *addressList) isValid() bool {\n\treturn al.idx < len(al.addresses)\n}\n\nfunc (al *addressList) size() int {\n\treturn len(al.addresses)\n}\n\n// increment moves to the next index in the address list.\n// This method returns false if it went off the list, true otherwise.\nfunc (al *addressList) increment() bool {\n\tif !al.isValid() {\n\t\treturn false\n\t}\n\tal.idx++\n\treturn al.idx < len(al.addresses)\n}\n\n// currentAddress returns the current address pointed to in the addressList.\n// If the list is in an invalid state, it returns an empty address instead.\nfunc (al *addressList) currentAddress() resolver.Address {\n\tif !al.isValid() {\n\t\treturn resolver.Address{}\n\t}\n\treturn al.addresses[al.idx]\n}\n\nfunc (al *addressList) reset() {\n\tal.idx = 0\n}\n\nfunc (al *addressList) updateAddrs(addrs []resolver.Address) {\n\tal.addresses = addrs\n\tal.reset()\n}\n\n// seekTo returns false if the needle was not found and the current index was\n// left unchanged.\nfunc (al *addressList) seekTo(needle resolver.Address) bool {\n\tfor ai, addr := range al.addresses {\n\t\tif !equalAddressIgnoringBalAttributes(&addr, &needle) {\n\t\t\tcontinue\n\t\t}\n\t\tal.idx = ai\n\t\treturn true\n\t}\n\treturn false\n}\n\n// hasNext returns whether incrementing the addressList will result in moving\n// past the end of the list. If the list has already moved past the end, it\n// returns false.\nfunc (al *addressList) hasNext() bool {\n\tif !al.isValid() {\n\t\treturn false\n\t}\n\treturn al.idx+1 < len(al.addresses)\n}\n\n// equalAddressIgnoringBalAttributes returns true is a and b are considered\n// equal. This is different from the Equal method on the resolver.Address type\n// which considers all fields to determine equality. Here, we only consider\n// fields that are meaningful to the SubConn.\nfunc equalAddressIgnoringBalAttributes(a, b *resolver.Address) bool {\n\treturn a.Addr == b.Addr && a.ServerName == b.ServerName &&\n\t\ta.Attributes.Equal(b.Attributes)\n}\n\n// weightAttribute is a convenience function which returns the value of the\n// weight endpoint Attribute.\n//\n// When used in the xDS context, the weight attribute is guaranteed to be\n// non-zero. But, when used in a non-xDS context, the weight attribute could be\n// unset. A Default of 1 is used in the latter case.\nfunc weightAttribute(e resolver.Endpoint) uint32 {\n\tw := weight.FromEndpoint(e).Weight\n\tif w == 0 {\n\t\treturn 1\n\t}\n\treturn w\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package roundrobin defines a roundrobin balancer. Roundrobin balancer is\n// installed as one of the default balancers in gRPC, users don't need to\n// explicitly install this balancer.\npackage roundrobin\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/endpointsharding\"\n\t\"google.golang.org/grpc/balancer/pickfirst\"\n\t\"google.golang.org/grpc/grpclog\"\n\tinternalgrpclog \"google.golang.org/grpc/internal/grpclog\"\n)\n\n// Name is the name of round_robin balancer.\nconst Name = \"round_robin\"\n\nvar logger = grpclog.Component(\"roundrobin\")\n\nfunc init() {\n\tbalancer.Register(builder{})\n}\n\ntype builder struct{}\n\nfunc (bb builder) Name() string {\n\treturn Name\n}\n\nfunc (bb builder) Build(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer {\n\tchildBuilder := balancer.Get(pickfirst.Name).Build\n\tbal := &rrBalancer{\n\t\tcc:       cc,\n\t\tBalancer: endpointsharding.NewBalancer(cc, opts, childBuilder, endpointsharding.Options{}),\n\t}\n\tbal.logger = internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(\"[%p] \", bal))\n\tbal.logger.Infof(\"Created\")\n\treturn bal\n}\n\ntype rrBalancer struct {\n\tbalancer.Balancer\n\tcc     balancer.ClientConn\n\tlogger *internalgrpclog.PrefixLogger\n}\n\nfunc (b *rrBalancer) UpdateClientConnState(ccs balancer.ClientConnState) error {\n\treturn b.Balancer.UpdateClientConnState(balancer.ClientConnState{\n\t\t// Enable the health listener in pickfirst children for client side health\n\t\t// checks and outlier detection, if configured.\n\t\tResolverState: pickfirst.EnableHealthListener(ccs.ResolverState),\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer/subconn.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage balancer\n\nimport (\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// A SubConn represents a single connection to a gRPC backend service.\n//\n// All SubConns start in IDLE, and will not try to connect. To trigger a\n// connection attempt, Balancers must call Connect.\n//\n// If the connection attempt fails, the SubConn will transition to\n// TRANSIENT_FAILURE for a backoff period, and then return to IDLE.  If the\n// connection attempt succeeds, it will transition to READY.\n//\n// If a READY SubConn becomes disconnected, the SubConn will transition to IDLE.\n//\n// If a connection re-enters IDLE, Balancers must call Connect again to trigger\n// a new connection attempt.\n//\n// Each SubConn contains a list of addresses.  gRPC will try to connect to the\n// addresses in sequence, and stop trying the remainder once the first\n// connection is successful.  However, this behavior is deprecated.  SubConns\n// should only use a single address.\n//\n// NOTICE: This interface is intended to be implemented by gRPC, or intercepted\n// by custom load balancing polices.  Users should not need their own complete\n// implementation of this interface -- they should always delegate to a SubConn\n// returned by ClientConn.NewSubConn() by embedding it in their implementations.\n// An embedded SubConn must never be nil, or runtime panics will occur.\ntype SubConn interface {\n\t// UpdateAddresses updates the addresses used in this SubConn.\n\t// gRPC checks if currently-connected address is still in the new list.\n\t// If it's in the list, the connection will be kept.\n\t// If it's not in the list, the connection will gracefully close, and\n\t// a new connection will be created.\n\t//\n\t// This will trigger a state transition for the SubConn.\n\t//\n\t// Deprecated: this method will be removed.  Create new SubConns for new\n\t// addresses instead.\n\tUpdateAddresses([]resolver.Address)\n\t// Connect starts the connecting for this SubConn.\n\tConnect()\n\t// GetOrBuildProducer returns a reference to the existing Producer for this\n\t// ProducerBuilder in this SubConn, or, if one does not currently exist,\n\t// creates a new one and returns it.  Returns a close function which may be\n\t// called when the Producer is no longer needed.  Otherwise the producer\n\t// will automatically be closed upon connection loss or subchannel close.\n\t// Should only be called on a SubConn in state Ready.  Otherwise the\n\t// producer will be unable to create streams.\n\tGetOrBuildProducer(ProducerBuilder) (p Producer, close func())\n\t// Shutdown shuts down the SubConn gracefully.  Any started RPCs will be\n\t// allowed to complete.  No future calls should be made on the SubConn.\n\t// One final state update will be delivered to the StateListener (or\n\t// UpdateSubConnState; deprecated) with ConnectivityState of Shutdown to\n\t// indicate the shutdown operation.  This may be delivered before\n\t// in-progress RPCs are complete and the actual connection is closed.\n\tShutdown()\n\t// RegisterHealthListener registers a health listener that receives health\n\t// updates for a Ready SubConn. Only one health listener can be registered\n\t// at a time. A health listener should be registered each time the SubConn's\n\t// connectivity state changes to READY. Registering a health listener when\n\t// the connectivity state is not READY may result in undefined behaviour.\n\t// This method must not be called synchronously while handling an update\n\t// from a previously registered health listener.\n\tRegisterHealthListener(func(SubConnState))\n\t// EnforceSubConnEmbedding is included to force implementers to embed\n\t// another implementation of this interface, allowing gRPC to add methods\n\t// without breaking users.\n\tinternal.EnforceSubConnEmbedding\n}\n\n// A ProducerBuilder is a simple constructor for a Producer.  It is used by the\n// SubConn to create producers when needed.\ntype ProducerBuilder interface {\n\t// Build creates a Producer.  The first parameter is always a\n\t// grpc.ClientConnInterface (a type to allow creating RPCs/streams on the\n\t// associated SubConn), but is declared as `any` to avoid a dependency\n\t// cycle.  Build also returns a close function that will be called when all\n\t// references to the Producer have been given up for a SubConn, or when a\n\t// connectivity state change occurs on the SubConn.  The close function\n\t// should always block until all asynchronous cleanup work is completed.\n\tBuild(grpcClientConnInterface any) (p Producer, close func())\n}\n\n// SubConnState describes the state of a SubConn.\ntype SubConnState struct {\n\t// ConnectivityState is the connectivity state of the SubConn.\n\tConnectivityState connectivity.State\n\t// ConnectionError is set if the ConnectivityState is TransientFailure,\n\t// describing the reason the SubConn failed.  Otherwise, it is nil.\n\tConnectionError error\n}\n\n// A Producer is a type shared among potentially many consumers.  It is\n// associated with a SubConn, and an implementation will typically contain\n// other methods to provide additional functionality, e.g. configuration or\n// subscription registration.\ntype Producer any\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/balancer_wrapper.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/balancer/gracefulswitch\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/status\"\n)\n\nvar (\n\t// noOpRegisterHealthListenerFn is used when client side health checking is\n\t// disabled. It sends a single READY update on the registered listener.\n\tnoOpRegisterHealthListenerFn = func(_ context.Context, listener func(balancer.SubConnState)) func() {\n\t\tlistener(balancer.SubConnState{ConnectivityState: connectivity.Ready})\n\t\treturn func() {}\n\t}\n)\n\n// ccBalancerWrapper sits between the ClientConn and the Balancer.\n//\n// ccBalancerWrapper implements methods corresponding to the ones on the\n// balancer.Balancer interface. The ClientConn is free to call these methods\n// concurrently and the ccBalancerWrapper ensures that calls from the ClientConn\n// to the Balancer happen in order by performing them in the serializer, without\n// any mutexes held.\n//\n// ccBalancerWrapper also implements the balancer.ClientConn interface and is\n// passed to the Balancer implementations. It invokes unexported methods on the\n// ClientConn to handle these calls from the Balancer.\n//\n// It uses the gracefulswitch.Balancer internally to ensure that balancer\n// switches happen in a graceful manner.\ntype ccBalancerWrapper struct {\n\tinternal.EnforceClientConnEmbedding\n\t// The following fields are initialized when the wrapper is created and are\n\t// read-only afterwards, and therefore can be accessed without a mutex.\n\tcc               *ClientConn\n\topts             balancer.BuildOptions\n\tserializer       *grpcsync.CallbackSerializer\n\tserializerCancel context.CancelFunc\n\n\t// The following fields are only accessed within the serializer or during\n\t// initialization.\n\tcurBalancerName string\n\tbalancer        *gracefulswitch.Balancer\n\n\t// The following field is protected by mu.  Caller must take cc.mu before\n\t// taking mu.\n\tmu     sync.Mutex\n\tclosed bool\n}\n\n// newCCBalancerWrapper creates a new balancer wrapper in idle state. The\n// underlying balancer is not created until the updateClientConnState() method\n// is invoked.\nfunc newCCBalancerWrapper(cc *ClientConn) *ccBalancerWrapper {\n\tctx, cancel := context.WithCancel(cc.ctx)\n\tccb := &ccBalancerWrapper{\n\t\tcc: cc,\n\t\topts: balancer.BuildOptions{\n\t\t\tDialCreds:       cc.dopts.copts.TransportCredentials,\n\t\t\tCredsBundle:     cc.dopts.copts.CredsBundle,\n\t\t\tDialer:          cc.dopts.copts.Dialer,\n\t\t\tAuthority:       cc.authority,\n\t\t\tCustomUserAgent: cc.dopts.copts.UserAgent,\n\t\t\tChannelzParent:  cc.channelz,\n\t\t\tTarget:          cc.parsedTarget,\n\t\t},\n\t\tserializer:       grpcsync.NewCallbackSerializer(ctx),\n\t\tserializerCancel: cancel,\n\t}\n\tccb.balancer = gracefulswitch.NewBalancer(ccb, ccb.opts)\n\treturn ccb\n}\n\nfunc (ccb *ccBalancerWrapper) MetricsRecorder() stats.MetricsRecorder {\n\treturn ccb.cc.metricsRecorderList\n}\n\n// updateClientConnState is invoked by grpc to push a ClientConnState update to\n// the underlying balancer.  This is always executed from the serializer, so\n// it is safe to call into the balancer here.\nfunc (ccb *ccBalancerWrapper) updateClientConnState(ccs *balancer.ClientConnState) error {\n\terrCh := make(chan error)\n\tuccs := func(ctx context.Context) {\n\t\tdefer close(errCh)\n\t\tif ctx.Err() != nil || ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\tname := gracefulswitch.ChildName(ccs.BalancerConfig)\n\t\tif ccb.curBalancerName != name {\n\t\t\tccb.curBalancerName = name\n\t\t\tchannelz.Infof(logger, ccb.cc.channelz, \"Channel switches to new LB policy %q\", name)\n\t\t}\n\t\terr := ccb.balancer.UpdateClientConnState(*ccs)\n\t\tif logger.V(2) && err != nil {\n\t\t\tlogger.Infof(\"error from balancer.UpdateClientConnState: %v\", err)\n\t\t}\n\t\terrCh <- err\n\t}\n\tonFailure := func() { close(errCh) }\n\n\t// UpdateClientConnState can race with Close, and when the latter wins, the\n\t// serializer is closed, and the attempt to schedule the callback will fail.\n\t// It is acceptable to ignore this failure. But since we want to handle the\n\t// state update in a blocking fashion (when we successfully schedule the\n\t// callback), we have to use the ScheduleOr method and not the MaybeSchedule\n\t// method on the serializer.\n\tccb.serializer.ScheduleOr(uccs, onFailure)\n\treturn <-errCh\n}\n\n// resolverError is invoked by grpc to push a resolver error to the underlying\n// balancer.  The call to the balancer is executed from the serializer.\nfunc (ccb *ccBalancerWrapper) resolverError(err error) {\n\tccb.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil || ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\tccb.balancer.ResolverError(err)\n\t})\n}\n\n// close initiates async shutdown of the wrapper.  cc.mu must be held when\n// calling this function.  To determine the wrapper has finished shutting down,\n// the channel should block on ccb.serializer.Done() without cc.mu held.\nfunc (ccb *ccBalancerWrapper) close() {\n\tccb.mu.Lock()\n\tccb.closed = true\n\tccb.mu.Unlock()\n\tchannelz.Info(logger, ccb.cc.channelz, \"ccBalancerWrapper: closing\")\n\tccb.serializer.TrySchedule(func(context.Context) {\n\t\tif ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\tccb.balancer.Close()\n\t\tccb.balancer = nil\n\t})\n\tccb.serializerCancel()\n}\n\n// exitIdle invokes the balancer's exitIdle method in the serializer.\nfunc (ccb *ccBalancerWrapper) exitIdle() {\n\tccb.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil || ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\tccb.balancer.ExitIdle()\n\t})\n}\n\nfunc (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) {\n\tccb.cc.mu.Lock()\n\tdefer ccb.cc.mu.Unlock()\n\n\tccb.mu.Lock()\n\tif ccb.closed {\n\t\tccb.mu.Unlock()\n\t\treturn nil, fmt.Errorf(\"balancer is being closed; no new SubConns allowed\")\n\t}\n\tccb.mu.Unlock()\n\n\tif len(addrs) == 0 {\n\t\treturn nil, fmt.Errorf(\"grpc: cannot create SubConn with empty address list\")\n\t}\n\tac, err := ccb.cc.newAddrConnLocked(addrs, opts)\n\tif err != nil {\n\t\tchannelz.Warningf(logger, ccb.cc.channelz, \"acBalancerWrapper: NewSubConn: failed to newAddrConn: %v\", err)\n\t\treturn nil, err\n\t}\n\tacbw := &acBalancerWrapper{\n\t\tccb:           ccb,\n\t\tac:            ac,\n\t\tproducers:     make(map[balancer.ProducerBuilder]*refCountedProducer),\n\t\tstateListener: opts.StateListener,\n\t\thealthData:    newHealthData(connectivity.Idle),\n\t}\n\tac.acbw = acbw\n\treturn acbw, nil\n}\n\nfunc (ccb *ccBalancerWrapper) RemoveSubConn(balancer.SubConn) {\n\t// The graceful switch balancer will never call this.\n\tlogger.Errorf(\"ccb RemoveSubConn(%v) called unexpectedly, sc\")\n}\n\nfunc (ccb *ccBalancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) {\n\tacbw, ok := sc.(*acBalancerWrapper)\n\tif !ok {\n\t\treturn\n\t}\n\tacbw.UpdateAddresses(addrs)\n}\n\nfunc (ccb *ccBalancerWrapper) UpdateState(s balancer.State) {\n\tccb.cc.mu.Lock()\n\tdefer ccb.cc.mu.Unlock()\n\tif ccb.cc.conns == nil {\n\t\t// The CC has been closed; ignore this update.\n\t\treturn\n\t}\n\n\tccb.mu.Lock()\n\tif ccb.closed {\n\t\tccb.mu.Unlock()\n\t\treturn\n\t}\n\tccb.mu.Unlock()\n\t// Update picker before updating state.  Even though the ordering here does\n\t// not matter, it can lead to multiple calls of Pick in the common start-up\n\t// case where we wait for ready and then perform an RPC.  If the picker is\n\t// updated later, we could call the \"connecting\" picker when the state is\n\t// updated, and then call the \"ready\" picker after the picker gets updated.\n\n\t// Note that there is no need to check if the balancer wrapper was closed,\n\t// as we know the graceful switch LB policy will not call cc if it has been\n\t// closed.\n\tccb.cc.pickerWrapper.updatePicker(s.Picker)\n\tccb.cc.csMgr.updateState(s.ConnectivityState)\n}\n\nfunc (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOptions) {\n\tccb.cc.mu.RLock()\n\tdefer ccb.cc.mu.RUnlock()\n\n\tccb.mu.Lock()\n\tif ccb.closed {\n\t\tccb.mu.Unlock()\n\t\treturn\n\t}\n\tccb.mu.Unlock()\n\tccb.cc.resolveNowLocked(o)\n}\n\nfunc (ccb *ccBalancerWrapper) Target() string {\n\treturn ccb.cc.target\n}\n\n// acBalancerWrapper is a wrapper on top of ac for balancers.\n// It implements balancer.SubConn interface.\ntype acBalancerWrapper struct {\n\tinternal.EnforceSubConnEmbedding\n\tac            *addrConn          // read-only\n\tccb           *ccBalancerWrapper // read-only\n\tstateListener func(balancer.SubConnState)\n\n\tproducersMu sync.Mutex\n\tproducers   map[balancer.ProducerBuilder]*refCountedProducer\n\n\t// Access to healthData is protected by healthMu.\n\thealthMu sync.Mutex\n\t// healthData is stored as a pointer to detect when the health listener is\n\t// dropped or updated. This is required as closures can't be compared for\n\t// equality.\n\thealthData *healthData\n}\n\n// healthData holds data related to health state reporting.\ntype healthData struct {\n\t// connectivityState stores the most recent connectivity state delivered\n\t// to the LB policy. This is stored to avoid sending updates when the\n\t// SubConn has already exited connectivity state READY.\n\tconnectivityState connectivity.State\n\t// closeHealthProducer stores function to close the ref counted health\n\t// producer. The health producer is automatically closed when the SubConn\n\t// state changes.\n\tcloseHealthProducer func()\n}\n\nfunc newHealthData(s connectivity.State) *healthData {\n\treturn &healthData{\n\t\tconnectivityState:   s,\n\t\tcloseHealthProducer: func() {},\n\t}\n}\n\n// updateState is invoked by grpc to push a subConn state update to the\n// underlying balancer.\nfunc (acbw *acBalancerWrapper) updateState(s connectivity.State, err error) {\n\tacbw.ccb.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil || acbw.ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\t// Invalidate all producers on any state change.\n\t\tacbw.closeProducers()\n\n\t\t// Even though it is optional for balancers, gracefulswitch ensures\n\t\t// opts.StateListener is set, so this cannot ever be nil.\n\t\t// TODO: delete this comment when UpdateSubConnState is removed.\n\t\tscs := balancer.SubConnState{ConnectivityState: s, ConnectionError: err}\n\t\t// Invalidate the health listener by updating the healthData.\n\t\tacbw.healthMu.Lock()\n\t\t// A race may occur if a health listener is registered soon after the\n\t\t// connectivity state is set but before the stateListener is called.\n\t\t// Two cases may arise:\n\t\t// 1. The new state is not READY: RegisterHealthListener has checks to\n\t\t//    ensure no updates are sent when the connectivity state is not\n\t\t//    READY.\n\t\t// 2. The new state is READY: This means that the old state wasn't Ready.\n\t\t//    The RegisterHealthListener API mentions that a health listener\n\t\t//    must not be registered when a SubConn is not ready to avoid such\n\t\t//    races. When this happens, the LB policy would get health updates\n\t\t//    on the old listener. When the LB policy registers a new listener\n\t\t//    on receiving the connectivity update, the health updates will be\n\t\t//    sent to the new health listener.\n\t\tacbw.healthData = newHealthData(scs.ConnectivityState)\n\t\tacbw.healthMu.Unlock()\n\n\t\tacbw.stateListener(scs)\n\t})\n}\n\nfunc (acbw *acBalancerWrapper) String() string {\n\treturn fmt.Sprintf(\"SubConn(id:%d)\", acbw.ac.channelz.ID)\n}\n\nfunc (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) {\n\tacbw.ac.updateAddrs(addrs)\n}\n\nfunc (acbw *acBalancerWrapper) Connect() {\n\tgo acbw.ac.connect()\n}\n\nfunc (acbw *acBalancerWrapper) Shutdown() {\n\tacbw.closeProducers()\n\tacbw.ccb.cc.removeAddrConn(acbw.ac, errConnDrain)\n}\n\n// NewStream begins a streaming RPC on the addrConn.  If the addrConn is not\n// ready, blocks until it is or ctx expires.  Returns an error when the context\n// expires or the addrConn is shut down.\nfunc (acbw *acBalancerWrapper) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) {\n\ttransport := acbw.ac.getReadyTransport()\n\tif transport == nil {\n\t\treturn nil, status.Errorf(codes.Unavailable, \"SubConn state is not Ready\")\n\n\t}\n\treturn newNonRetryClientStream(ctx, desc, method, transport, acbw.ac, opts...)\n}\n\n// Invoke performs a unary RPC.  If the addrConn is not ready, returns\n// errSubConnNotReady.\nfunc (acbw *acBalancerWrapper) Invoke(ctx context.Context, method string, args any, reply any, opts ...CallOption) error {\n\tcs, err := acbw.NewStream(ctx, unaryStreamDesc, method, opts...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cs.SendMsg(args); err != nil {\n\t\treturn err\n\t}\n\treturn cs.RecvMsg(reply)\n}\n\ntype refCountedProducer struct {\n\tproducer balancer.Producer\n\trefs     int    // number of current refs to the producer\n\tclose    func() // underlying producer's close function\n}\n\nfunc (acbw *acBalancerWrapper) GetOrBuildProducer(pb balancer.ProducerBuilder) (balancer.Producer, func()) {\n\tacbw.producersMu.Lock()\n\tdefer acbw.producersMu.Unlock()\n\n\t// Look up existing producer from this builder.\n\tpData := acbw.producers[pb]\n\tif pData == nil {\n\t\t// Not found; create a new one and add it to the producers map.\n\t\tp, closeFn := pb.Build(acbw)\n\t\tpData = &refCountedProducer{producer: p, close: closeFn}\n\t\tacbw.producers[pb] = pData\n\t}\n\t// Account for this new reference.\n\tpData.refs++\n\n\t// Return a cleanup function wrapped in a OnceFunc to remove this reference\n\t// and delete the refCountedProducer from the map if the total reference\n\t// count goes to zero.\n\tunref := func() {\n\t\tacbw.producersMu.Lock()\n\t\t// If closeProducers has already closed this producer instance, refs is\n\t\t// set to 0, so the check after decrementing will never pass, and the\n\t\t// producer will not be double-closed.\n\t\tpData.refs--\n\t\tif pData.refs == 0 {\n\t\t\tdefer pData.close() // Run outside the acbw mutex\n\t\t\tdelete(acbw.producers, pb)\n\t\t}\n\t\tacbw.producersMu.Unlock()\n\t}\n\treturn pData.producer, sync.OnceFunc(unref)\n}\n\nfunc (acbw *acBalancerWrapper) closeProducers() {\n\tacbw.producersMu.Lock()\n\tdefer acbw.producersMu.Unlock()\n\tfor pb, pData := range acbw.producers {\n\t\tpData.refs = 0\n\t\tpData.close()\n\t\tdelete(acbw.producers, pb)\n\t}\n}\n\n// healthProducerRegisterFn is a type alias for the health producer's function\n// for registering listeners.\ntype healthProducerRegisterFn = func(context.Context, balancer.SubConn, string, func(balancer.SubConnState)) func()\n\n// healthListenerRegFn returns a function to register a listener for health\n// updates. If client side health checks are disabled, the registered listener\n// will get a single READY (raw connectivity state) update.\n//\n// Client side health checking is enabled when all the following\n// conditions are satisfied:\n// 1. Health checking is not disabled using the dial option.\n// 2. The health package is imported.\n// 3. The health check config is present in the service config.\nfunc (acbw *acBalancerWrapper) healthListenerRegFn() func(context.Context, func(balancer.SubConnState)) func() {\n\tif acbw.ccb.cc.dopts.disableHealthCheck {\n\t\treturn noOpRegisterHealthListenerFn\n\t}\n\tcfg := acbw.ac.cc.healthCheckConfig()\n\tif cfg == nil {\n\t\treturn noOpRegisterHealthListenerFn\n\t}\n\tregHealthLisFn := internal.RegisterClientHealthCheckListener\n\tif regHealthLisFn == nil {\n\t\t// The health package is not imported.\n\t\tchannelz.Error(logger, acbw.ac.channelz, \"Health check is requested but health package is not imported.\")\n\t\treturn noOpRegisterHealthListenerFn\n\t}\n\treturn func(ctx context.Context, listener func(balancer.SubConnState)) func() {\n\t\treturn regHealthLisFn.(healthProducerRegisterFn)(ctx, acbw, cfg.ServiceName, listener)\n\t}\n}\n\n// RegisterHealthListener accepts a health listener from the LB policy. It sends\n// updates to the health listener as long as the SubConn's connectivity state\n// doesn't change and a new health listener is not registered. To invalidate\n// the currently registered health listener, acbw updates the healthData. If a\n// nil listener is registered, the active health listener is dropped.\nfunc (acbw *acBalancerWrapper) RegisterHealthListener(listener func(balancer.SubConnState)) {\n\tacbw.healthMu.Lock()\n\tdefer acbw.healthMu.Unlock()\n\tacbw.healthData.closeHealthProducer()\n\t// listeners should not be registered when the connectivity state\n\t// isn't Ready. This may happen when the balancer registers a listener\n\t// after the connectivityState is updated, but before it is notified\n\t// of the update.\n\tif acbw.healthData.connectivityState != connectivity.Ready {\n\t\treturn\n\t}\n\t// Replace the health data to stop sending updates to any previously\n\t// registered health listeners.\n\thd := newHealthData(connectivity.Ready)\n\tacbw.healthData = hd\n\tif listener == nil {\n\t\treturn\n\t}\n\n\tregisterFn := acbw.healthListenerRegFn()\n\tacbw.ccb.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil || acbw.ccb.balancer == nil {\n\t\t\treturn\n\t\t}\n\t\t// Don't send updates if a new listener is registered.\n\t\tacbw.healthMu.Lock()\n\t\tdefer acbw.healthMu.Unlock()\n\t\tif acbw.healthData != hd {\n\t\t\treturn\n\t\t}\n\t\t// Serialize the health updates from the health producer with\n\t\t// other calls into the LB policy.\n\t\tlistenerWrapper := func(scs balancer.SubConnState) {\n\t\t\tacbw.ccb.serializer.TrySchedule(func(ctx context.Context) {\n\t\t\t\tif ctx.Err() != nil || acbw.ccb.balancer == nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tacbw.healthMu.Lock()\n\t\t\t\tdefer acbw.healthMu.Unlock()\n\t\t\t\tif acbw.healthData != hd {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlistener(scs)\n\t\t\t})\n\t\t}\n\n\t\thd.closeHealthProducer = registerFn(ctx, listenerWrapper)\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go",
    "content": "// Copyright 2018 The gRPC Authors\n// All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// The canonical version of this proto can be found at\n// https://github.com/grpc/grpc-proto/blob/master/grpc/binlog/v1/binarylog.proto\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.36.10\n// \tprotoc        v5.27.1\n// source: grpc/binlog/v1/binarylog.proto\n\npackage grpc_binarylog_v1\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tdurationpb \"google.golang.org/protobuf/types/known/durationpb\"\n\ttimestamppb \"google.golang.org/protobuf/types/known/timestamppb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\tunsafe \"unsafe\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\n// Enumerates the type of event\n// Note the terminology is different from the RPC semantics\n// definition, but the same meaning is expressed here.\ntype GrpcLogEntry_EventType int32\n\nconst (\n\tGrpcLogEntry_EVENT_TYPE_UNKNOWN GrpcLogEntry_EventType = 0\n\t// Header sent from client to server\n\tGrpcLogEntry_EVENT_TYPE_CLIENT_HEADER GrpcLogEntry_EventType = 1\n\t// Header sent from server to client\n\tGrpcLogEntry_EVENT_TYPE_SERVER_HEADER GrpcLogEntry_EventType = 2\n\t// Message sent from client to server\n\tGrpcLogEntry_EVENT_TYPE_CLIENT_MESSAGE GrpcLogEntry_EventType = 3\n\t// Message sent from server to client\n\tGrpcLogEntry_EVENT_TYPE_SERVER_MESSAGE GrpcLogEntry_EventType = 4\n\t// A signal that client is done sending\n\tGrpcLogEntry_EVENT_TYPE_CLIENT_HALF_CLOSE GrpcLogEntry_EventType = 5\n\t// Trailer indicates the end of the RPC.\n\t// On client side, this event means a trailer was either received\n\t// from the network or the gRPC library locally generated a status\n\t// to inform the application about a failure.\n\t// On server side, this event means the server application requested\n\t// to send a trailer. Note: EVENT_TYPE_CANCEL may still arrive after\n\t// this due to races on server side.\n\tGrpcLogEntry_EVENT_TYPE_SERVER_TRAILER GrpcLogEntry_EventType = 6\n\t// A signal that the RPC is cancelled. On client side, this\n\t// indicates the client application requests a cancellation.\n\t// On server side, this indicates that cancellation was detected.\n\t// Note: This marks the end of the RPC. Events may arrive after\n\t// this due to races. For example, on client side a trailer\n\t// may arrive even though the application requested to cancel the RPC.\n\tGrpcLogEntry_EVENT_TYPE_CANCEL GrpcLogEntry_EventType = 7\n)\n\n// Enum value maps for GrpcLogEntry_EventType.\nvar (\n\tGrpcLogEntry_EventType_name = map[int32]string{\n\t\t0: \"EVENT_TYPE_UNKNOWN\",\n\t\t1: \"EVENT_TYPE_CLIENT_HEADER\",\n\t\t2: \"EVENT_TYPE_SERVER_HEADER\",\n\t\t3: \"EVENT_TYPE_CLIENT_MESSAGE\",\n\t\t4: \"EVENT_TYPE_SERVER_MESSAGE\",\n\t\t5: \"EVENT_TYPE_CLIENT_HALF_CLOSE\",\n\t\t6: \"EVENT_TYPE_SERVER_TRAILER\",\n\t\t7: \"EVENT_TYPE_CANCEL\",\n\t}\n\tGrpcLogEntry_EventType_value = map[string]int32{\n\t\t\"EVENT_TYPE_UNKNOWN\":           0,\n\t\t\"EVENT_TYPE_CLIENT_HEADER\":     1,\n\t\t\"EVENT_TYPE_SERVER_HEADER\":     2,\n\t\t\"EVENT_TYPE_CLIENT_MESSAGE\":    3,\n\t\t\"EVENT_TYPE_SERVER_MESSAGE\":    4,\n\t\t\"EVENT_TYPE_CLIENT_HALF_CLOSE\": 5,\n\t\t\"EVENT_TYPE_SERVER_TRAILER\":    6,\n\t\t\"EVENT_TYPE_CANCEL\":            7,\n\t}\n)\n\nfunc (x GrpcLogEntry_EventType) Enum() *GrpcLogEntry_EventType {\n\tp := new(GrpcLogEntry_EventType)\n\t*p = x\n\treturn p\n}\n\nfunc (x GrpcLogEntry_EventType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GrpcLogEntry_EventType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_grpc_binlog_v1_binarylog_proto_enumTypes[0].Descriptor()\n}\n\nfunc (GrpcLogEntry_EventType) Type() protoreflect.EnumType {\n\treturn &file_grpc_binlog_v1_binarylog_proto_enumTypes[0]\n}\n\nfunc (x GrpcLogEntry_EventType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use GrpcLogEntry_EventType.Descriptor instead.\nfunc (GrpcLogEntry_EventType) EnumDescriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0, 0}\n}\n\n// Enumerates the entity that generates the log entry\ntype GrpcLogEntry_Logger int32\n\nconst (\n\tGrpcLogEntry_LOGGER_UNKNOWN GrpcLogEntry_Logger = 0\n\tGrpcLogEntry_LOGGER_CLIENT  GrpcLogEntry_Logger = 1\n\tGrpcLogEntry_LOGGER_SERVER  GrpcLogEntry_Logger = 2\n)\n\n// Enum value maps for GrpcLogEntry_Logger.\nvar (\n\tGrpcLogEntry_Logger_name = map[int32]string{\n\t\t0: \"LOGGER_UNKNOWN\",\n\t\t1: \"LOGGER_CLIENT\",\n\t\t2: \"LOGGER_SERVER\",\n\t}\n\tGrpcLogEntry_Logger_value = map[string]int32{\n\t\t\"LOGGER_UNKNOWN\": 0,\n\t\t\"LOGGER_CLIENT\":  1,\n\t\t\"LOGGER_SERVER\":  2,\n\t}\n)\n\nfunc (x GrpcLogEntry_Logger) Enum() *GrpcLogEntry_Logger {\n\tp := new(GrpcLogEntry_Logger)\n\t*p = x\n\treturn p\n}\n\nfunc (x GrpcLogEntry_Logger) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GrpcLogEntry_Logger) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_grpc_binlog_v1_binarylog_proto_enumTypes[1].Descriptor()\n}\n\nfunc (GrpcLogEntry_Logger) Type() protoreflect.EnumType {\n\treturn &file_grpc_binlog_v1_binarylog_proto_enumTypes[1]\n}\n\nfunc (x GrpcLogEntry_Logger) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use GrpcLogEntry_Logger.Descriptor instead.\nfunc (GrpcLogEntry_Logger) EnumDescriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0, 1}\n}\n\ntype Address_Type int32\n\nconst (\n\tAddress_TYPE_UNKNOWN Address_Type = 0\n\t// address is in 1.2.3.4 form\n\tAddress_TYPE_IPV4 Address_Type = 1\n\t// address is in IPv6 canonical form (RFC5952 section 4)\n\t// The scope is NOT included in the address string.\n\tAddress_TYPE_IPV6 Address_Type = 2\n\t// address is UDS string\n\tAddress_TYPE_UNIX Address_Type = 3\n)\n\n// Enum value maps for Address_Type.\nvar (\n\tAddress_Type_name = map[int32]string{\n\t\t0: \"TYPE_UNKNOWN\",\n\t\t1: \"TYPE_IPV4\",\n\t\t2: \"TYPE_IPV6\",\n\t\t3: \"TYPE_UNIX\",\n\t}\n\tAddress_Type_value = map[string]int32{\n\t\t\"TYPE_UNKNOWN\": 0,\n\t\t\"TYPE_IPV4\":    1,\n\t\t\"TYPE_IPV6\":    2,\n\t\t\"TYPE_UNIX\":    3,\n\t}\n)\n\nfunc (x Address_Type) Enum() *Address_Type {\n\tp := new(Address_Type)\n\t*p = x\n\treturn p\n}\n\nfunc (x Address_Type) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Address_Type) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_grpc_binlog_v1_binarylog_proto_enumTypes[2].Descriptor()\n}\n\nfunc (Address_Type) Type() protoreflect.EnumType {\n\treturn &file_grpc_binlog_v1_binarylog_proto_enumTypes[2]\n}\n\nfunc (x Address_Type) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use Address_Type.Descriptor instead.\nfunc (Address_Type) EnumDescriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{7, 0}\n}\n\n// Log entry we store in binary logs\ntype GrpcLogEntry struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// The timestamp of the binary log message\n\tTimestamp *timestamppb.Timestamp `protobuf:\"bytes,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// Uniquely identifies a call. The value must not be 0 in order to disambiguate\n\t// from an unset value.\n\t// Each call may have several log entries, they will all have the same call_id.\n\t// Nothing is guaranteed about their value other than they are unique across\n\t// different RPCs in the same gRPC process.\n\tCallId uint64 `protobuf:\"varint,2,opt,name=call_id,json=callId,proto3\" json:\"call_id,omitempty\"`\n\t// The entry sequence id for this call. The first GrpcLogEntry has a\n\t// value of 1, to disambiguate from an unset value. The purpose of\n\t// this field is to detect missing entries in environments where\n\t// durability or ordering is not guaranteed.\n\tSequenceIdWithinCall uint64                 `protobuf:\"varint,3,opt,name=sequence_id_within_call,json=sequenceIdWithinCall,proto3\" json:\"sequence_id_within_call,omitempty\"`\n\tType                 GrpcLogEntry_EventType `protobuf:\"varint,4,opt,name=type,proto3,enum=grpc.binarylog.v1.GrpcLogEntry_EventType\" json:\"type,omitempty\"`\n\tLogger               GrpcLogEntry_Logger    `protobuf:\"varint,5,opt,name=logger,proto3,enum=grpc.binarylog.v1.GrpcLogEntry_Logger\" json:\"logger,omitempty\"` // One of the above Logger enum\n\t// The logger uses one of the following fields to record the payload,\n\t// according to the type of the log entry.\n\t//\n\t// Types that are valid to be assigned to Payload:\n\t//\n\t//\t*GrpcLogEntry_ClientHeader\n\t//\t*GrpcLogEntry_ServerHeader\n\t//\t*GrpcLogEntry_Message\n\t//\t*GrpcLogEntry_Trailer\n\tPayload isGrpcLogEntry_Payload `protobuf_oneof:\"payload\"`\n\t// true if payload does not represent the full message or metadata.\n\tPayloadTruncated bool `protobuf:\"varint,10,opt,name=payload_truncated,json=payloadTruncated,proto3\" json:\"payload_truncated,omitempty\"`\n\t// Peer address information, will only be recorded on the first\n\t// incoming event. On client side, peer is logged on\n\t// EVENT_TYPE_SERVER_HEADER normally or EVENT_TYPE_SERVER_TRAILER in\n\t// the case of trailers-only. On server side, peer is always\n\t// logged on EVENT_TYPE_CLIENT_HEADER.\n\tPeer          *Address `protobuf:\"bytes,11,opt,name=peer,proto3\" json:\"peer,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *GrpcLogEntry) Reset() {\n\t*x = GrpcLogEntry{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GrpcLogEntry) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GrpcLogEntry) ProtoMessage() {}\n\nfunc (x *GrpcLogEntry) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GrpcLogEntry.ProtoReflect.Descriptor instead.\nfunc (*GrpcLogEntry) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *GrpcLogEntry) GetTimestamp() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.Timestamp\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetCallId() uint64 {\n\tif x != nil {\n\t\treturn x.CallId\n\t}\n\treturn 0\n}\n\nfunc (x *GrpcLogEntry) GetSequenceIdWithinCall() uint64 {\n\tif x != nil {\n\t\treturn x.SequenceIdWithinCall\n\t}\n\treturn 0\n}\n\nfunc (x *GrpcLogEntry) GetType() GrpcLogEntry_EventType {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn GrpcLogEntry_EVENT_TYPE_UNKNOWN\n}\n\nfunc (x *GrpcLogEntry) GetLogger() GrpcLogEntry_Logger {\n\tif x != nil {\n\t\treturn x.Logger\n\t}\n\treturn GrpcLogEntry_LOGGER_UNKNOWN\n}\n\nfunc (x *GrpcLogEntry) GetPayload() isGrpcLogEntry_Payload {\n\tif x != nil {\n\t\treturn x.Payload\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetClientHeader() *ClientHeader {\n\tif x != nil {\n\t\tif x, ok := x.Payload.(*GrpcLogEntry_ClientHeader); ok {\n\t\t\treturn x.ClientHeader\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetServerHeader() *ServerHeader {\n\tif x != nil {\n\t\tif x, ok := x.Payload.(*GrpcLogEntry_ServerHeader); ok {\n\t\t\treturn x.ServerHeader\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetMessage() *Message {\n\tif x != nil {\n\t\tif x, ok := x.Payload.(*GrpcLogEntry_Message); ok {\n\t\t\treturn x.Message\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetTrailer() *Trailer {\n\tif x != nil {\n\t\tif x, ok := x.Payload.(*GrpcLogEntry_Trailer); ok {\n\t\t\treturn x.Trailer\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (x *GrpcLogEntry) GetPayloadTruncated() bool {\n\tif x != nil {\n\t\treturn x.PayloadTruncated\n\t}\n\treturn false\n}\n\nfunc (x *GrpcLogEntry) GetPeer() *Address {\n\tif x != nil {\n\t\treturn x.Peer\n\t}\n\treturn nil\n}\n\ntype isGrpcLogEntry_Payload interface {\n\tisGrpcLogEntry_Payload()\n}\n\ntype GrpcLogEntry_ClientHeader struct {\n\tClientHeader *ClientHeader `protobuf:\"bytes,6,opt,name=client_header,json=clientHeader,proto3,oneof\"`\n}\n\ntype GrpcLogEntry_ServerHeader struct {\n\tServerHeader *ServerHeader `protobuf:\"bytes,7,opt,name=server_header,json=serverHeader,proto3,oneof\"`\n}\n\ntype GrpcLogEntry_Message struct {\n\t// Used by EVENT_TYPE_CLIENT_MESSAGE, EVENT_TYPE_SERVER_MESSAGE\n\tMessage *Message `protobuf:\"bytes,8,opt,name=message,proto3,oneof\"`\n}\n\ntype GrpcLogEntry_Trailer struct {\n\tTrailer *Trailer `protobuf:\"bytes,9,opt,name=trailer,proto3,oneof\"`\n}\n\nfunc (*GrpcLogEntry_ClientHeader) isGrpcLogEntry_Payload() {}\n\nfunc (*GrpcLogEntry_ServerHeader) isGrpcLogEntry_Payload() {}\n\nfunc (*GrpcLogEntry_Message) isGrpcLogEntry_Payload() {}\n\nfunc (*GrpcLogEntry_Trailer) isGrpcLogEntry_Payload() {}\n\ntype ClientHeader struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// This contains only the metadata from the application.\n\tMetadata *Metadata `protobuf:\"bytes,1,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// The name of the RPC method, which looks something like:\n\t// /<service>/<method>\n\t// Note the leading \"/\" character.\n\tMethodName string `protobuf:\"bytes,2,opt,name=method_name,json=methodName,proto3\" json:\"method_name,omitempty\"`\n\t// A single process may be used to run multiple virtual\n\t// servers with different identities.\n\t// The authority is the name of such a server identity.\n\t// It is typically a portion of the URI in the form of\n\t// <host> or <host>:<port> .\n\tAuthority string `protobuf:\"bytes,3,opt,name=authority,proto3\" json:\"authority,omitempty\"`\n\t// the RPC timeout\n\tTimeout       *durationpb.Duration `protobuf:\"bytes,4,opt,name=timeout,proto3\" json:\"timeout,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *ClientHeader) Reset() {\n\t*x = ClientHeader{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[1]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ClientHeader) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ClientHeader) ProtoMessage() {}\n\nfunc (x *ClientHeader) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[1]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ClientHeader.ProtoReflect.Descriptor instead.\nfunc (*ClientHeader) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *ClientHeader) GetMetadata() *Metadata {\n\tif x != nil {\n\t\treturn x.Metadata\n\t}\n\treturn nil\n}\n\nfunc (x *ClientHeader) GetMethodName() string {\n\tif x != nil {\n\t\treturn x.MethodName\n\t}\n\treturn \"\"\n}\n\nfunc (x *ClientHeader) GetAuthority() string {\n\tif x != nil {\n\t\treturn x.Authority\n\t}\n\treturn \"\"\n}\n\nfunc (x *ClientHeader) GetTimeout() *durationpb.Duration {\n\tif x != nil {\n\t\treturn x.Timeout\n\t}\n\treturn nil\n}\n\ntype ServerHeader struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// This contains only the metadata from the application.\n\tMetadata      *Metadata `protobuf:\"bytes,1,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *ServerHeader) Reset() {\n\t*x = ServerHeader{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[2]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ServerHeader) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServerHeader) ProtoMessage() {}\n\nfunc (x *ServerHeader) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[2]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServerHeader.ProtoReflect.Descriptor instead.\nfunc (*ServerHeader) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *ServerHeader) GetMetadata() *Metadata {\n\tif x != nil {\n\t\treturn x.Metadata\n\t}\n\treturn nil\n}\n\ntype Trailer struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// This contains only the metadata from the application.\n\tMetadata *Metadata `protobuf:\"bytes,1,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// The gRPC status code.\n\tStatusCode uint32 `protobuf:\"varint,2,opt,name=status_code,json=statusCode,proto3\" json:\"status_code,omitempty\"`\n\t// An original status message before any transport specific\n\t// encoding.\n\tStatusMessage string `protobuf:\"bytes,3,opt,name=status_message,json=statusMessage,proto3\" json:\"status_message,omitempty\"`\n\t// The value of the 'grpc-status-details-bin' metadata key. If\n\t// present, this is always an encoded 'google.rpc.Status' message.\n\tStatusDetails []byte `protobuf:\"bytes,4,opt,name=status_details,json=statusDetails,proto3\" json:\"status_details,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *Trailer) Reset() {\n\t*x = Trailer{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[3]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Trailer) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trailer) ProtoMessage() {}\n\nfunc (x *Trailer) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[3]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trailer.ProtoReflect.Descriptor instead.\nfunc (*Trailer) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Trailer) GetMetadata() *Metadata {\n\tif x != nil {\n\t\treturn x.Metadata\n\t}\n\treturn nil\n}\n\nfunc (x *Trailer) GetStatusCode() uint32 {\n\tif x != nil {\n\t\treturn x.StatusCode\n\t}\n\treturn 0\n}\n\nfunc (x *Trailer) GetStatusMessage() string {\n\tif x != nil {\n\t\treturn x.StatusMessage\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trailer) GetStatusDetails() []byte {\n\tif x != nil {\n\t\treturn x.StatusDetails\n\t}\n\treturn nil\n}\n\n// Message payload, used by CLIENT_MESSAGE and SERVER_MESSAGE\ntype Message struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Length of the message. It may not be the same as the length of the\n\t// data field, as the logging payload can be truncated or omitted.\n\tLength uint32 `protobuf:\"varint,1,opt,name=length,proto3\" json:\"length,omitempty\"`\n\t// May be truncated or omitted.\n\tData          []byte `protobuf:\"bytes,2,opt,name=data,proto3\" json:\"data,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *Message) Reset() {\n\t*x = Message{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[4]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Message) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Message) ProtoMessage() {}\n\nfunc (x *Message) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[4]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Message.ProtoReflect.Descriptor instead.\nfunc (*Message) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *Message) GetLength() uint32 {\n\tif x != nil {\n\t\treturn x.Length\n\t}\n\treturn 0\n}\n\nfunc (x *Message) GetData() []byte {\n\tif x != nil {\n\t\treturn x.Data\n\t}\n\treturn nil\n}\n\n// A list of metadata pairs, used in the payload of client header,\n// server header, and server trailer.\n// Implementations may omit some entries to honor the header limits\n// of GRPC_BINARY_LOG_CONFIG.\n//\n// Header keys added by gRPC are omitted. To be more specific,\n// implementations will not log the following entries, and this is\n// not to be treated as a truncation:\n//   - entries handled by grpc that are not user visible, such as those\n//     that begin with 'grpc-' (with exception of grpc-trace-bin)\n//     or keys like 'lb-token'\n//   - transport specific entries, including but not limited to:\n//     ':path', ':authority', 'content-encoding', 'user-agent', 'te', etc\n//   - entries added for call credentials\n//\n// Implementations must always log grpc-trace-bin if it is present.\n// Practically speaking it will only be visible on server side because\n// grpc-trace-bin is managed by low level client side mechanisms\n// inaccessible from the application level. On server side, the\n// header is just a normal metadata key.\n// The pair will not count towards the size limit.\ntype Metadata struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tEntry         []*MetadataEntry       `protobuf:\"bytes,1,rep,name=entry,proto3\" json:\"entry,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *Metadata) Reset() {\n\t*x = Metadata{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[5]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Metadata) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Metadata) ProtoMessage() {}\n\nfunc (x *Metadata) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[5]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Metadata.ProtoReflect.Descriptor instead.\nfunc (*Metadata) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *Metadata) GetEntry() []*MetadataEntry {\n\tif x != nil {\n\t\treturn x.Entry\n\t}\n\treturn nil\n}\n\n// A metadata key value pair\ntype MetadataEntry struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tKey           string                 `protobuf:\"bytes,1,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tValue         []byte                 `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *MetadataEntry) Reset() {\n\t*x = MetadataEntry{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[6]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MetadataEntry) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MetadataEntry) ProtoMessage() {}\n\nfunc (x *MetadataEntry) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[6]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MetadataEntry.ProtoReflect.Descriptor instead.\nfunc (*MetadataEntry) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *MetadataEntry) GetKey() string {\n\tif x != nil {\n\t\treturn x.Key\n\t}\n\treturn \"\"\n}\n\nfunc (x *MetadataEntry) GetValue() []byte {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Address information\ntype Address struct {\n\tstate   protoimpl.MessageState `protogen:\"open.v1\"`\n\tType    Address_Type           `protobuf:\"varint,1,opt,name=type,proto3,enum=grpc.binarylog.v1.Address_Type\" json:\"type,omitempty\"`\n\tAddress string                 `protobuf:\"bytes,2,opt,name=address,proto3\" json:\"address,omitempty\"`\n\t// only for TYPE_IPV4 and TYPE_IPV6\n\tIpPort        uint32 `protobuf:\"varint,3,opt,name=ip_port,json=ipPort,proto3\" json:\"ip_port,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *Address) Reset() {\n\t*x = Address{}\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[7]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Address) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Address) ProtoMessage() {}\n\nfunc (x *Address) ProtoReflect() protoreflect.Message {\n\tmi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[7]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Address.ProtoReflect.Descriptor instead.\nfunc (*Address) Descriptor() ([]byte, []int) {\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Address) GetType() Address_Type {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn Address_TYPE_UNKNOWN\n}\n\nfunc (x *Address) GetAddress() string {\n\tif x != nil {\n\t\treturn x.Address\n\t}\n\treturn \"\"\n}\n\nfunc (x *Address) GetIpPort() uint32 {\n\tif x != nil {\n\t\treturn x.IpPort\n\t}\n\treturn 0\n}\n\nvar File_grpc_binlog_v1_binarylog_proto protoreflect.FileDescriptor\n\nconst file_grpc_binlog_v1_binarylog_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\"\\x1egrpc/binlog/v1/binarylog.proto\\x12\\x11grpc.binarylog.v1\\x1a\\x1egoogle/protobuf/duration.proto\\x1a\\x1fgoogle/protobuf/timestamp.proto\\\"\\xbb\\a\\n\" +\n\t\"\\fGrpcLogEntry\\x128\\n\" +\n\t\"\\ttimestamp\\x18\\x01 \\x01(\\v2\\x1a.google.protobuf.TimestampR\\ttimestamp\\x12\\x17\\n\" +\n\t\"\\acall_id\\x18\\x02 \\x01(\\x04R\\x06callId\\x125\\n\" +\n\t\"\\x17sequence_id_within_call\\x18\\x03 \\x01(\\x04R\\x14sequenceIdWithinCall\\x12=\\n\" +\n\t\"\\x04type\\x18\\x04 \\x01(\\x0e2).grpc.binarylog.v1.GrpcLogEntry.EventTypeR\\x04type\\x12>\\n\" +\n\t\"\\x06logger\\x18\\x05 \\x01(\\x0e2&.grpc.binarylog.v1.GrpcLogEntry.LoggerR\\x06logger\\x12F\\n\" +\n\t\"\\rclient_header\\x18\\x06 \\x01(\\v2\\x1f.grpc.binarylog.v1.ClientHeaderH\\x00R\\fclientHeader\\x12F\\n\" +\n\t\"\\rserver_header\\x18\\a \\x01(\\v2\\x1f.grpc.binarylog.v1.ServerHeaderH\\x00R\\fserverHeader\\x126\\n\" +\n\t\"\\amessage\\x18\\b \\x01(\\v2\\x1a.grpc.binarylog.v1.MessageH\\x00R\\amessage\\x126\\n\" +\n\t\"\\atrailer\\x18\\t \\x01(\\v2\\x1a.grpc.binarylog.v1.TrailerH\\x00R\\atrailer\\x12+\\n\" +\n\t\"\\x11payload_truncated\\x18\\n\" +\n\t\" \\x01(\\bR\\x10payloadTruncated\\x12.\\n\" +\n\t\"\\x04peer\\x18\\v \\x01(\\v2\\x1a.grpc.binarylog.v1.AddressR\\x04peer\\\"\\xf5\\x01\\n\" +\n\t\"\\tEventType\\x12\\x16\\n\" +\n\t\"\\x12EVENT_TYPE_UNKNOWN\\x10\\x00\\x12\\x1c\\n\" +\n\t\"\\x18EVENT_TYPE_CLIENT_HEADER\\x10\\x01\\x12\\x1c\\n\" +\n\t\"\\x18EVENT_TYPE_SERVER_HEADER\\x10\\x02\\x12\\x1d\\n\" +\n\t\"\\x19EVENT_TYPE_CLIENT_MESSAGE\\x10\\x03\\x12\\x1d\\n\" +\n\t\"\\x19EVENT_TYPE_SERVER_MESSAGE\\x10\\x04\\x12 \\n\" +\n\t\"\\x1cEVENT_TYPE_CLIENT_HALF_CLOSE\\x10\\x05\\x12\\x1d\\n\" +\n\t\"\\x19EVENT_TYPE_SERVER_TRAILER\\x10\\x06\\x12\\x15\\n\" +\n\t\"\\x11EVENT_TYPE_CANCEL\\x10\\a\\\"B\\n\" +\n\t\"\\x06Logger\\x12\\x12\\n\" +\n\t\"\\x0eLOGGER_UNKNOWN\\x10\\x00\\x12\\x11\\n\" +\n\t\"\\rLOGGER_CLIENT\\x10\\x01\\x12\\x11\\n\" +\n\t\"\\rLOGGER_SERVER\\x10\\x02B\\t\\n\" +\n\t\"\\apayload\\\"\\xbb\\x01\\n\" +\n\t\"\\fClientHeader\\x127\\n\" +\n\t\"\\bmetadata\\x18\\x01 \\x01(\\v2\\x1b.grpc.binarylog.v1.MetadataR\\bmetadata\\x12\\x1f\\n\" +\n\t\"\\vmethod_name\\x18\\x02 \\x01(\\tR\\n\" +\n\t\"methodName\\x12\\x1c\\n\" +\n\t\"\\tauthority\\x18\\x03 \\x01(\\tR\\tauthority\\x123\\n\" +\n\t\"\\atimeout\\x18\\x04 \\x01(\\v2\\x19.google.protobuf.DurationR\\atimeout\\\"G\\n\" +\n\t\"\\fServerHeader\\x127\\n\" +\n\t\"\\bmetadata\\x18\\x01 \\x01(\\v2\\x1b.grpc.binarylog.v1.MetadataR\\bmetadata\\\"\\xb1\\x01\\n\" +\n\t\"\\aTrailer\\x127\\n\" +\n\t\"\\bmetadata\\x18\\x01 \\x01(\\v2\\x1b.grpc.binarylog.v1.MetadataR\\bmetadata\\x12\\x1f\\n\" +\n\t\"\\vstatus_code\\x18\\x02 \\x01(\\rR\\n\" +\n\t\"statusCode\\x12%\\n\" +\n\t\"\\x0estatus_message\\x18\\x03 \\x01(\\tR\\rstatusMessage\\x12%\\n\" +\n\t\"\\x0estatus_details\\x18\\x04 \\x01(\\fR\\rstatusDetails\\\"5\\n\" +\n\t\"\\aMessage\\x12\\x16\\n\" +\n\t\"\\x06length\\x18\\x01 \\x01(\\rR\\x06length\\x12\\x12\\n\" +\n\t\"\\x04data\\x18\\x02 \\x01(\\fR\\x04data\\\"B\\n\" +\n\t\"\\bMetadata\\x126\\n\" +\n\t\"\\x05entry\\x18\\x01 \\x03(\\v2 .grpc.binarylog.v1.MetadataEntryR\\x05entry\\\"7\\n\" +\n\t\"\\rMetadataEntry\\x12\\x10\\n\" +\n\t\"\\x03key\\x18\\x01 \\x01(\\tR\\x03key\\x12\\x14\\n\" +\n\t\"\\x05value\\x18\\x02 \\x01(\\fR\\x05value\\\"\\xb8\\x01\\n\" +\n\t\"\\aAddress\\x123\\n\" +\n\t\"\\x04type\\x18\\x01 \\x01(\\x0e2\\x1f.grpc.binarylog.v1.Address.TypeR\\x04type\\x12\\x18\\n\" +\n\t\"\\aaddress\\x18\\x02 \\x01(\\tR\\aaddress\\x12\\x17\\n\" +\n\t\"\\aip_port\\x18\\x03 \\x01(\\rR\\x06ipPort\\\"E\\n\" +\n\t\"\\x04Type\\x12\\x10\\n\" +\n\t\"\\fTYPE_UNKNOWN\\x10\\x00\\x12\\r\\n\" +\n\t\"\\tTYPE_IPV4\\x10\\x01\\x12\\r\\n\" +\n\t\"\\tTYPE_IPV6\\x10\\x02\\x12\\r\\n\" +\n\t\"\\tTYPE_UNIX\\x10\\x03B\\\\\\n\" +\n\t\"\\x14io.grpc.binarylog.v1B\\x0eBinaryLogProtoP\\x01Z2google.golang.org/grpc/binarylog/grpc_binarylog_v1b\\x06proto3\"\n\nvar (\n\tfile_grpc_binlog_v1_binarylog_proto_rawDescOnce sync.Once\n\tfile_grpc_binlog_v1_binarylog_proto_rawDescData []byte\n)\n\nfunc file_grpc_binlog_v1_binarylog_proto_rawDescGZIP() []byte {\n\tfile_grpc_binlog_v1_binarylog_proto_rawDescOnce.Do(func() {\n\t\tfile_grpc_binlog_v1_binarylog_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_grpc_binlog_v1_binarylog_proto_rawDesc), len(file_grpc_binlog_v1_binarylog_proto_rawDesc)))\n\t})\n\treturn file_grpc_binlog_v1_binarylog_proto_rawDescData\n}\n\nvar file_grpc_binlog_v1_binarylog_proto_enumTypes = make([]protoimpl.EnumInfo, 3)\nvar file_grpc_binlog_v1_binarylog_proto_msgTypes = make([]protoimpl.MessageInfo, 8)\nvar file_grpc_binlog_v1_binarylog_proto_goTypes = []any{\n\t(GrpcLogEntry_EventType)(0),   // 0: grpc.binarylog.v1.GrpcLogEntry.EventType\n\t(GrpcLogEntry_Logger)(0),      // 1: grpc.binarylog.v1.GrpcLogEntry.Logger\n\t(Address_Type)(0),             // 2: grpc.binarylog.v1.Address.Type\n\t(*GrpcLogEntry)(nil),          // 3: grpc.binarylog.v1.GrpcLogEntry\n\t(*ClientHeader)(nil),          // 4: grpc.binarylog.v1.ClientHeader\n\t(*ServerHeader)(nil),          // 5: grpc.binarylog.v1.ServerHeader\n\t(*Trailer)(nil),               // 6: grpc.binarylog.v1.Trailer\n\t(*Message)(nil),               // 7: grpc.binarylog.v1.Message\n\t(*Metadata)(nil),              // 8: grpc.binarylog.v1.Metadata\n\t(*MetadataEntry)(nil),         // 9: grpc.binarylog.v1.MetadataEntry\n\t(*Address)(nil),               // 10: grpc.binarylog.v1.Address\n\t(*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp\n\t(*durationpb.Duration)(nil),   // 12: google.protobuf.Duration\n}\nvar file_grpc_binlog_v1_binarylog_proto_depIdxs = []int32{\n\t11, // 0: grpc.binarylog.v1.GrpcLogEntry.timestamp:type_name -> google.protobuf.Timestamp\n\t0,  // 1: grpc.binarylog.v1.GrpcLogEntry.type:type_name -> grpc.binarylog.v1.GrpcLogEntry.EventType\n\t1,  // 2: grpc.binarylog.v1.GrpcLogEntry.logger:type_name -> grpc.binarylog.v1.GrpcLogEntry.Logger\n\t4,  // 3: grpc.binarylog.v1.GrpcLogEntry.client_header:type_name -> grpc.binarylog.v1.ClientHeader\n\t5,  // 4: grpc.binarylog.v1.GrpcLogEntry.server_header:type_name -> grpc.binarylog.v1.ServerHeader\n\t7,  // 5: grpc.binarylog.v1.GrpcLogEntry.message:type_name -> grpc.binarylog.v1.Message\n\t6,  // 6: grpc.binarylog.v1.GrpcLogEntry.trailer:type_name -> grpc.binarylog.v1.Trailer\n\t10, // 7: grpc.binarylog.v1.GrpcLogEntry.peer:type_name -> grpc.binarylog.v1.Address\n\t8,  // 8: grpc.binarylog.v1.ClientHeader.metadata:type_name -> grpc.binarylog.v1.Metadata\n\t12, // 9: grpc.binarylog.v1.ClientHeader.timeout:type_name -> google.protobuf.Duration\n\t8,  // 10: grpc.binarylog.v1.ServerHeader.metadata:type_name -> grpc.binarylog.v1.Metadata\n\t8,  // 11: grpc.binarylog.v1.Trailer.metadata:type_name -> grpc.binarylog.v1.Metadata\n\t9,  // 12: grpc.binarylog.v1.Metadata.entry:type_name -> grpc.binarylog.v1.MetadataEntry\n\t2,  // 13: grpc.binarylog.v1.Address.type:type_name -> grpc.binarylog.v1.Address.Type\n\t14, // [14:14] is the sub-list for method output_type\n\t14, // [14:14] is the sub-list for method input_type\n\t14, // [14:14] is the sub-list for extension type_name\n\t14, // [14:14] is the sub-list for extension extendee\n\t0,  // [0:14] is the sub-list for field type_name\n}\n\nfunc init() { file_grpc_binlog_v1_binarylog_proto_init() }\nfunc file_grpc_binlog_v1_binarylog_proto_init() {\n\tif File_grpc_binlog_v1_binarylog_proto != nil {\n\t\treturn\n\t}\n\tfile_grpc_binlog_v1_binarylog_proto_msgTypes[0].OneofWrappers = []any{\n\t\t(*GrpcLogEntry_ClientHeader)(nil),\n\t\t(*GrpcLogEntry_ServerHeader)(nil),\n\t\t(*GrpcLogEntry_Message)(nil),\n\t\t(*GrpcLogEntry_Trailer)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_grpc_binlog_v1_binarylog_proto_rawDesc), len(file_grpc_binlog_v1_binarylog_proto_rawDesc)),\n\t\t\tNumEnums:      3,\n\t\t\tNumMessages:   8,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_grpc_binlog_v1_binarylog_proto_goTypes,\n\t\tDependencyIndexes: file_grpc_binlog_v1_binarylog_proto_depIdxs,\n\t\tEnumInfos:         file_grpc_binlog_v1_binarylog_proto_enumTypes,\n\t\tMessageInfos:      file_grpc_binlog_v1_binarylog_proto_msgTypes,\n\t}.Build()\n\tFile_grpc_binlog_v1_binarylog_proto = out.File\n\tfile_grpc_binlog_v1_binarylog_proto_goTypes = nil\n\tfile_grpc_binlog_v1_binarylog_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/call.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n)\n\n// Invoke sends the RPC request on the wire and returns after response is\n// received.  This is typically called by generated code.\n//\n// All errors returned by Invoke are compatible with the status package.\nfunc (cc *ClientConn) Invoke(ctx context.Context, method string, args, reply any, opts ...CallOption) error {\n\t// allow interceptor to see all applicable call options, which means those\n\t// configured as defaults from dial option as well as per-call options\n\topts = combine(cc.dopts.callOptions, opts)\n\n\tif cc.dopts.unaryInt != nil {\n\t\treturn cc.dopts.unaryInt(ctx, method, args, reply, cc, invoke, opts...)\n\t}\n\treturn invoke(ctx, method, args, reply, cc, opts...)\n}\n\nfunc combine(o1 []CallOption, o2 []CallOption) []CallOption {\n\t// we don't use append because o1 could have extra capacity whose\n\t// elements would be overwritten, which could cause inadvertent\n\t// sharing (and race conditions) between concurrent calls\n\tif len(o1) == 0 {\n\t\treturn o2\n\t} else if len(o2) == 0 {\n\t\treturn o1\n\t}\n\tret := make([]CallOption, len(o1)+len(o2))\n\tcopy(ret, o1)\n\tcopy(ret[len(o1):], o2)\n\treturn ret\n}\n\n// Invoke sends the RPC request on the wire and returns after response is\n// received.  This is typically called by generated code.\n//\n// DEPRECATED: Use ClientConn.Invoke instead.\nfunc Invoke(ctx context.Context, method string, args, reply any, cc *ClientConn, opts ...CallOption) error {\n\treturn cc.Invoke(ctx, method, args, reply, opts...)\n}\n\nvar unaryStreamDesc = &StreamDesc{ServerStreams: false, ClientStreams: false}\n\nfunc invoke(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error {\n\tcs, err := newClientStream(ctx, unaryStreamDesc, cc, method, opts...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cs.SendMsg(req); err != nil {\n\t\treturn err\n\t}\n\treturn cs.RecvMsg(reply)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/channelz/channelz.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package channelz exports internals of the channelz implementation as required\n// by other gRPC packages.\n//\n// The implementation of the channelz spec as defined in\n// https://github.com/grpc/proposal/blob/master/A14-channelz.md, is provided by\n// the `internal/channelz` package.\n//\n// # Experimental\n//\n// Notice: All APIs in this package are experimental and may be removed in a\n// later release.\npackage channelz\n\nimport \"google.golang.org/grpc/internal/channelz\"\n\n// Identifier is an opaque identifier which uniquely identifies an entity in the\n// channelz database.\ntype Identifier = channelz.Identifier\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/clientconn.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"net/url\"\n\t\"slices\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/base\"\n\t\"google.golang.org/grpc/balancer/pickfirst\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/credentials\"\n\texpstats \"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/internal/idle\"\n\tiresolver \"google.golang.org/grpc/internal/resolver\"\n\tistats \"google.golang.org/grpc/internal/stats\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n\n\t_ \"google.golang.org/grpc/balancer/roundrobin\"           // To register roundrobin.\n\t_ \"google.golang.org/grpc/internal/resolver/passthrough\" // To register passthrough resolver.\n\t_ \"google.golang.org/grpc/internal/resolver/unix\"        // To register unix resolver.\n\t_ \"google.golang.org/grpc/resolver/dns\"                  // To register dns resolver.\n)\n\nconst (\n\t// minimum time to give a connection to complete\n\tminConnectTimeout = 20 * time.Second\n)\n\nvar (\n\t// ErrClientConnClosing indicates that the operation is illegal because\n\t// the ClientConn is closing.\n\t//\n\t// Deprecated: this error should not be relied upon by users; use the status\n\t// code of Canceled instead.\n\tErrClientConnClosing = status.Error(codes.Canceled, \"grpc: the client connection is closing\")\n\t// errConnDrain indicates that the connection starts to be drained and does not accept any new RPCs.\n\terrConnDrain = errors.New(\"grpc: the connection is drained\")\n\t// errConnClosing indicates that the connection is closing.\n\terrConnClosing = errors.New(\"grpc: the connection is closing\")\n\t// errConnIdling indicates the connection is being closed as the channel\n\t// is moving to an idle mode due to inactivity.\n\terrConnIdling = errors.New(\"grpc: the connection is closing due to channel idleness\")\n\t// invalidDefaultServiceConfigErrPrefix is used to prefix the json parsing error for the default\n\t// service config.\n\tinvalidDefaultServiceConfigErrPrefix = \"grpc: the provided default service config is invalid\"\n\t// PickFirstBalancerName is the name of the pick_first balancer.\n\tPickFirstBalancerName = pickfirst.Name\n)\n\n// The following errors are returned from Dial and DialContext\nvar (\n\t// errNoTransportSecurity indicates that there is no transport security\n\t// being set for ClientConn. Users should either set one or explicitly\n\t// call WithInsecure DialOption to disable security.\n\terrNoTransportSecurity = errors.New(\"grpc: no transport security set (use grpc.WithTransportCredentials(insecure.NewCredentials()) explicitly or set credentials)\")\n\t// errTransportCredsAndBundle indicates that creds bundle is used together\n\t// with other individual Transport Credentials.\n\terrTransportCredsAndBundle = errors.New(\"grpc: credentials.Bundle may not be used with individual TransportCredentials\")\n\t// errNoTransportCredsInBundle indicated that the configured creds bundle\n\t// returned a transport credentials which was nil.\n\terrNoTransportCredsInBundle = errors.New(\"grpc: credentials.Bundle must return non-nil transport credentials\")\n\t// errTransportCredentialsMissing indicates that users want to transmit\n\t// security information (e.g., OAuth2 token) which requires secure\n\t// connection on an insecure connection.\n\terrTransportCredentialsMissing = errors.New(\"grpc: the credentials require transport level security (use grpc.WithTransportCredentials() to set)\")\n)\n\nvar (\n\tdisconnectionsMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:           \"grpc.subchannel.disconnections\",\n\t\tDescription:    \"EXPERIMENTAL. Number of times the selected subchannel becomes disconnected.\",\n\t\tUnit:           \"{disconnection}\",\n\t\tLabels:         []string{\"grpc.target\"},\n\t\tOptionalLabels: []string{\"grpc.lb.backend_service\", \"grpc.lb.locality\", \"grpc.disconnect_error\"},\n\t\tDefault:        false,\n\t})\n\tconnectionAttemptsSucceededMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:           \"grpc.subchannel.connection_attempts_succeeded\",\n\t\tDescription:    \"EXPERIMENTAL. Number of successful connection attempts.\",\n\t\tUnit:           \"{attempt}\",\n\t\tLabels:         []string{\"grpc.target\"},\n\t\tOptionalLabels: []string{\"grpc.lb.backend_service\", \"grpc.lb.locality\"},\n\t\tDefault:        false,\n\t})\n\tconnectionAttemptsFailedMetric = expstats.RegisterInt64Count(expstats.MetricDescriptor{\n\t\tName:           \"grpc.subchannel.connection_attempts_failed\",\n\t\tDescription:    \"EXPERIMENTAL. Number of failed connection attempts.\",\n\t\tUnit:           \"{attempt}\",\n\t\tLabels:         []string{\"grpc.target\"},\n\t\tOptionalLabels: []string{\"grpc.lb.backend_service\", \"grpc.lb.locality\"},\n\t\tDefault:        false,\n\t})\n\topenConnectionsMetric = expstats.RegisterInt64UpDownCount(expstats.MetricDescriptor{\n\t\tName:           \"grpc.subchannel.open_connections\",\n\t\tDescription:    \"EXPERIMENTAL. Number of open connections.\",\n\t\tUnit:           \"{attempt}\",\n\t\tLabels:         []string{\"grpc.target\"},\n\t\tOptionalLabels: []string{\"grpc.lb.backend_service\", \"grpc.security_level\", \"grpc.lb.locality\"},\n\t\tDefault:        false,\n\t})\n)\n\nconst (\n\tdefaultClientMaxReceiveMessageSize = 1024 * 1024 * 4\n\tdefaultClientMaxSendMessageSize    = math.MaxInt32\n\t// http2IOBufSize specifies the buffer size for sending frames.\n\tdefaultWriteBufSize = 32 * 1024\n\tdefaultReadBufSize  = 32 * 1024\n)\n\ntype defaultConfigSelector struct {\n\tsc *ServiceConfig\n}\n\nfunc (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*iresolver.RPCConfig, error) {\n\treturn &iresolver.RPCConfig{\n\t\tContext:      rpcInfo.Context,\n\t\tMethodConfig: getMethodConfig(dcs.sc, rpcInfo.Method),\n\t}, nil\n}\n\n// NewClient creates a new gRPC \"channel\" for the target URI provided.  No I/O\n// is performed.  Use of the ClientConn for RPCs will automatically cause it to\n// connect.  The Connect method may be called to manually create a connection,\n// but for most users this should be unnecessary.\n//\n// The target name syntax is defined in\n// https://github.com/grpc/grpc/blob/master/doc/naming.md.  E.g. to use the dns\n// name resolver, a \"dns:///\" prefix may be applied to the target.  The default\n// name resolver will be used if no scheme is detected, or if the parsed scheme\n// is not a registered name resolver.  The default resolver is \"dns\" but can be\n// overridden using the resolver package's SetDefaultScheme.\n//\n// Examples:\n//\n//   - \"foo.googleapis.com:8080\"\n//   - \"dns:///foo.googleapis.com:8080\"\n//   - \"dns:///foo.googleapis.com\"\n//   - \"dns:///10.0.0.213:8080\"\n//   - \"dns:///%5B2001:db8:85a3:8d3:1319:8a2e:370:7348%5D:443\"\n//   - \"dns://8.8.8.8/foo.googleapis.com:8080\"\n//   - \"dns://8.8.8.8/foo.googleapis.com\"\n//   - \"zookeeper://zk.example.com:9900/example_service\"\n//\n// The DialOptions returned by WithBlock, WithTimeout,\n// WithReturnConnectionError, and FailOnNonTempDialError are ignored by this\n// function.\nfunc NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) {\n\tcc := &ClientConn{\n\t\ttarget: target,\n\t\tconns:  make(map[*addrConn]struct{}),\n\t\tdopts:  defaultDialOptions(),\n\t}\n\n\tcc.retryThrottler.Store((*retryThrottler)(nil))\n\tcc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil})\n\tcc.ctx, cc.cancel = context.WithCancel(context.Background())\n\n\t// Apply dial options.\n\tdisableGlobalOpts := false\n\tfor _, opt := range opts {\n\t\tif _, ok := opt.(*disableGlobalDialOptions); ok {\n\t\t\tdisableGlobalOpts = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !disableGlobalOpts {\n\t\tfor _, opt := range globalDialOptions {\n\t\t\topt.apply(&cc.dopts)\n\t\t}\n\t}\n\n\tfor _, opt := range opts {\n\t\topt.apply(&cc.dopts)\n\t}\n\n\t// Determine the resolver to use.\n\tif err := cc.initParsedTargetAndResolverBuilder(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, opt := range globalPerTargetDialOptions {\n\t\topt.DialOptionForTarget(cc.parsedTarget.URL).apply(&cc.dopts)\n\t}\n\n\tchainUnaryClientInterceptors(cc)\n\tchainStreamClientInterceptors(cc)\n\n\tif err := cc.validateTransportCredentials(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif cc.dopts.defaultServiceConfigRawJSON != nil {\n\t\tscpr := parseServiceConfig(*cc.dopts.defaultServiceConfigRawJSON, cc.dopts.maxCallAttempts)\n\t\tif scpr.Err != nil {\n\t\t\treturn nil, fmt.Errorf(\"%s: %v\", invalidDefaultServiceConfigErrPrefix, scpr.Err)\n\t\t}\n\t\tcc.dopts.defaultServiceConfig, _ = scpr.Config.(*ServiceConfig)\n\t}\n\tcc.keepaliveParams = cc.dopts.copts.KeepaliveParams\n\n\tif err = cc.initAuthority(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Register ClientConn with channelz. Note that this is only done after\n\t// channel creation cannot fail.\n\tcc.channelzRegistration(target)\n\tchannelz.Infof(logger, cc.channelz, \"parsed dial target is: %#v\", cc.parsedTarget)\n\tchannelz.Infof(logger, cc.channelz, \"Channel authority set to %q\", cc.authority)\n\n\tcc.csMgr = newConnectivityStateManager(cc.ctx, cc.channelz)\n\tcc.pickerWrapper = newPickerWrapper()\n\n\tcc.metricsRecorderList = istats.NewMetricsRecorderList(cc.dopts.copts.StatsHandlers)\n\tcc.statsHandler = istats.NewCombinedHandler(cc.dopts.copts.StatsHandlers...)\n\n\tcc.initIdleStateLocked() // Safe to call without the lock, since nothing else has a reference to cc.\n\tcc.idlenessMgr = idle.NewManager((*idler)(cc), cc.dopts.idleTimeout)\n\n\treturn cc, nil\n}\n\n// Dial calls DialContext(context.Background(), target, opts...).\n//\n// Deprecated: use NewClient instead.  Will be supported throughout 1.x.\nfunc Dial(target string, opts ...DialOption) (*ClientConn, error) {\n\treturn DialContext(context.Background(), target, opts...)\n}\n\n// DialContext calls NewClient and then exits idle mode.  If WithBlock(true) is\n// used, it calls Connect and WaitForStateChange until either the context\n// expires or the state of the ClientConn is Ready.\n//\n// One subtle difference between NewClient and Dial and DialContext is that the\n// former uses \"dns\" as the default name resolver, while the latter use\n// \"passthrough\" for backward compatibility.  This distinction should not matter\n// to most users, but could matter to legacy users that specify a custom dialer\n// and expect it to receive the target string directly.\n//\n// Deprecated: use NewClient instead.  Will be supported throughout 1.x.\nfunc DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) {\n\t// At the end of this method, we kick the channel out of idle, rather than\n\t// waiting for the first rpc.\n\t//\n\t// WithLocalDNSResolution dial option in `grpc.Dial` ensures that it\n\t// preserves behavior: when default scheme passthrough is used, skip\n\t// hostname resolution, when \"dns\" is used for resolution, perform\n\t// resolution on the client.\n\topts = append([]DialOption{withDefaultScheme(\"passthrough\"), WithLocalDNSResolution()}, opts...)\n\tcc, err := NewClient(target, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We start the channel off in idle mode, but kick it out of idle now,\n\t// instead of waiting for the first RPC.  This is the legacy behavior of\n\t// Dial.\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tcc.Close()\n\t\t}\n\t}()\n\n\t// This creates the name resolver, load balancer, etc.\n\tif err := cc.exitIdleMode(); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to exit idle mode: %w\", err)\n\t}\n\tcc.idlenessMgr.UnsafeSetNotIdle()\n\n\t// Return now for non-blocking dials.\n\tif !cc.dopts.block {\n\t\treturn cc, nil\n\t}\n\n\tif cc.dopts.timeout > 0 {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithTimeout(ctx, cc.dopts.timeout)\n\t\tdefer cancel()\n\t}\n\tdefer func() {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tswitch {\n\t\t\tcase ctx.Err() == err:\n\t\t\t\tconn = nil\n\t\t\tcase err == nil || !cc.dopts.returnLastError:\n\t\t\t\tconn, err = nil, ctx.Err()\n\t\t\tdefault:\n\t\t\t\tconn, err = nil, fmt.Errorf(\"%v: %v\", ctx.Err(), err)\n\t\t\t}\n\t\tdefault:\n\t\t}\n\t}()\n\n\t// A blocking dial blocks until the clientConn is ready.\n\tfor {\n\t\ts := cc.GetState()\n\t\tif s == connectivity.Idle {\n\t\t\tcc.Connect()\n\t\t}\n\t\tif s == connectivity.Ready {\n\t\t\treturn cc, nil\n\t\t} else if cc.dopts.copts.FailOnNonTempDialError && s == connectivity.TransientFailure {\n\t\t\tif err = cc.connectionError(); err != nil {\n\t\t\t\tterr, ok := err.(interface {\n\t\t\t\t\tTemporary() bool\n\t\t\t\t})\n\t\t\t\tif ok && !terr.Temporary() {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif !cc.WaitForStateChange(ctx, s) {\n\t\t\t// ctx got timeout or canceled.\n\t\t\tif err = cc.connectionError(); err != nil && cc.dopts.returnLastError {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn nil, ctx.Err()\n\t\t}\n\t}\n}\n\n// addTraceEvent is a helper method to add a trace event on the channel. If the\n// channel is a nested one, the same event is also added on the parent channel.\nfunc (cc *ClientConn) addTraceEvent(msg string) {\n\tted := &channelz.TraceEvent{\n\t\tDesc:     fmt.Sprintf(\"Channel %s\", msg),\n\t\tSeverity: channelz.CtInfo,\n\t}\n\tif cc.dopts.channelzParent != nil {\n\t\tted.Parent = &channelz.TraceEvent{\n\t\t\tDesc:     fmt.Sprintf(\"Nested channel(id:%d) %s\", cc.channelz.ID, msg),\n\t\t\tSeverity: channelz.CtInfo,\n\t\t}\n\t}\n\tchannelz.AddTraceEvent(logger, cc.channelz, 1, ted)\n}\n\ntype idler ClientConn\n\nfunc (i *idler) EnterIdleMode() {\n\t(*ClientConn)(i).enterIdleMode()\n}\n\nfunc (i *idler) ExitIdleMode() {\n\t// Ignore the error returned from this method, because from the perspective\n\t// of the caller (idleness manager), the channel would have always moved out\n\t// of IDLE by the time this method returns.\n\t(*ClientConn)(i).exitIdleMode()\n}\n\n// exitIdleMode moves the channel out of idle mode by recreating the name\n// resolver and load balancer.  This should never be called directly; use\n// cc.idlenessMgr.ExitIdleMode instead.\nfunc (cc *ClientConn) exitIdleMode() error {\n\tcc.mu.Lock()\n\tif cc.conns == nil {\n\t\tcc.mu.Unlock()\n\t\treturn errConnClosing\n\t}\n\tcc.mu.Unlock()\n\n\t// Set state to CONNECTING before building the name resolver\n\t// so the channel does not remain in IDLE.\n\tcc.csMgr.updateState(connectivity.Connecting)\n\n\t// This needs to be called without cc.mu because this builds a new resolver\n\t// which might update state or report error inline, which would then need to\n\t// acquire cc.mu.\n\tif err := cc.resolverWrapper.start(); err != nil {\n\t\t// If resolver creation fails, treat it like an error reported by the\n\t\t// resolver before any valid updates. Set channel's state to\n\t\t// TransientFailure, and set an erroring picker with the resolver build\n\t\t// error, which will returned as part of any subsequent RPCs.\n\t\tlogger.Warningf(\"Failed to start resolver: %v\", err)\n\t\tcc.csMgr.updateState(connectivity.TransientFailure)\n\t\tcc.mu.Lock()\n\t\tcc.updateResolverStateAndUnlock(resolver.State{}, err)\n\t\treturn fmt.Errorf(\"failed to start resolver: %w\", err)\n\t}\n\n\tcc.addTraceEvent(\"exiting idle mode\")\n\treturn nil\n}\n\n// initIdleStateLocked initializes common state to how it should be while idle.\nfunc (cc *ClientConn) initIdleStateLocked() {\n\tcc.resolverWrapper = newCCResolverWrapper(cc)\n\tcc.balancerWrapper = newCCBalancerWrapper(cc)\n\tcc.firstResolveEvent = grpcsync.NewEvent()\n\t// cc.conns == nil is a proxy for the ClientConn being closed. So, instead\n\t// of setting it to nil here, we recreate the map. This also means that we\n\t// don't have to do this when exiting idle mode.\n\tcc.conns = make(map[*addrConn]struct{})\n}\n\n// enterIdleMode puts the channel in idle mode, and as part of it shuts down the\n// name resolver, load balancer, and any subchannels.  This should never be\n// called directly; use cc.idlenessMgr.EnterIdleMode instead.\nfunc (cc *ClientConn) enterIdleMode() {\n\tcc.mu.Lock()\n\n\tif cc.conns == nil {\n\t\tcc.mu.Unlock()\n\t\treturn\n\t}\n\n\tconns := cc.conns\n\n\trWrapper := cc.resolverWrapper\n\trWrapper.close()\n\tcc.pickerWrapper.reset()\n\tbWrapper := cc.balancerWrapper\n\tbWrapper.close()\n\tcc.csMgr.updateState(connectivity.Idle)\n\tcc.addTraceEvent(\"entering idle mode\")\n\n\tcc.initIdleStateLocked()\n\n\tcc.mu.Unlock()\n\n\t// Block until the name resolver and LB policy are closed.\n\t<-rWrapper.serializer.Done()\n\t<-bWrapper.serializer.Done()\n\n\t// Close all subchannels after the LB policy is closed.\n\tfor ac := range conns {\n\t\tac.tearDown(errConnIdling)\n\t}\n}\n\n// validateTransportCredentials performs a series of checks on the configured\n// transport credentials. It returns a non-nil error if any of these conditions\n// are met:\n//   - no transport creds and no creds bundle is configured\n//   - both transport creds and creds bundle are configured\n//   - creds bundle is configured, but it lacks a transport credentials\n//   - insecure transport creds configured alongside call creds that require\n//     transport level security\n//\n// If none of the above conditions are met, the configured credentials are\n// deemed valid and a nil error is returned.\nfunc (cc *ClientConn) validateTransportCredentials() error {\n\tif cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil {\n\t\treturn errNoTransportSecurity\n\t}\n\tif cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil {\n\t\treturn errTransportCredsAndBundle\n\t}\n\tif cc.dopts.copts.CredsBundle != nil && cc.dopts.copts.CredsBundle.TransportCredentials() == nil {\n\t\treturn errNoTransportCredsInBundle\n\t}\n\ttransportCreds := cc.dopts.copts.TransportCredentials\n\tif transportCreds == nil {\n\t\ttransportCreds = cc.dopts.copts.CredsBundle.TransportCredentials()\n\t}\n\tif transportCreds.Info().SecurityProtocol == \"insecure\" {\n\t\tfor _, cd := range cc.dopts.copts.PerRPCCredentials {\n\t\t\tif cd.RequireTransportSecurity() {\n\t\t\t\treturn errTransportCredentialsMissing\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// channelzRegistration registers the newly created ClientConn with channelz and\n// stores the returned identifier in `cc.channelz`.  A channelz trace event is\n// emitted for ClientConn creation. If the newly created ClientConn is a nested\n// one, i.e a valid parent ClientConn ID is specified via a dial option, the\n// trace event is also added to the parent.\n//\n// Doesn't grab cc.mu as this method is expected to be called only at Dial time.\nfunc (cc *ClientConn) channelzRegistration(target string) {\n\tparentChannel, _ := cc.dopts.channelzParent.(*channelz.Channel)\n\tcc.channelz = channelz.RegisterChannel(parentChannel, target)\n\tcc.addTraceEvent(fmt.Sprintf(\"created for target %q\", target))\n}\n\n// chainUnaryClientInterceptors chains all unary client interceptors into one.\nfunc chainUnaryClientInterceptors(cc *ClientConn) {\n\tinterceptors := cc.dopts.chainUnaryInts\n\t// Prepend dopts.unaryInt to the chaining interceptors if it exists, since unaryInt will\n\t// be executed before any other chained interceptors.\n\tif cc.dopts.unaryInt != nil {\n\t\tinterceptors = append([]UnaryClientInterceptor{cc.dopts.unaryInt}, interceptors...)\n\t}\n\tvar chainedInt UnaryClientInterceptor\n\tif len(interceptors) == 0 {\n\t\tchainedInt = nil\n\t} else if len(interceptors) == 1 {\n\t\tchainedInt = interceptors[0]\n\t} else {\n\t\tchainedInt = func(ctx context.Context, method string, req, reply any, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error {\n\t\t\treturn interceptors[0](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, 0, invoker), opts...)\n\t\t}\n\t}\n\tcc.dopts.unaryInt = chainedInt\n}\n\n// getChainUnaryInvoker recursively generate the chained unary invoker.\nfunc getChainUnaryInvoker(interceptors []UnaryClientInterceptor, curr int, finalInvoker UnaryInvoker) UnaryInvoker {\n\tif curr == len(interceptors)-1 {\n\t\treturn finalInvoker\n\t}\n\treturn func(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error {\n\t\treturn interceptors[curr+1](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, curr+1, finalInvoker), opts...)\n\t}\n}\n\n// chainStreamClientInterceptors chains all stream client interceptors into one.\nfunc chainStreamClientInterceptors(cc *ClientConn) {\n\tinterceptors := cc.dopts.chainStreamInts\n\t// Prepend dopts.streamInt to the chaining interceptors if it exists, since streamInt will\n\t// be executed before any other chained interceptors.\n\tif cc.dopts.streamInt != nil {\n\t\tinterceptors = append([]StreamClientInterceptor{cc.dopts.streamInt}, interceptors...)\n\t}\n\tvar chainedInt StreamClientInterceptor\n\tif len(interceptors) == 0 {\n\t\tchainedInt = nil\n\t} else if len(interceptors) == 1 {\n\t\tchainedInt = interceptors[0]\n\t} else {\n\t\tchainedInt = func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) {\n\t\t\treturn interceptors[0](ctx, desc, cc, method, getChainStreamer(interceptors, 0, streamer), opts...)\n\t\t}\n\t}\n\tcc.dopts.streamInt = chainedInt\n}\n\n// getChainStreamer recursively generate the chained client stream constructor.\nfunc getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStreamer Streamer) Streamer {\n\tif curr == len(interceptors)-1 {\n\t\treturn finalStreamer\n\t}\n\treturn func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) {\n\t\treturn interceptors[curr+1](ctx, desc, cc, method, getChainStreamer(interceptors, curr+1, finalStreamer), opts...)\n\t}\n}\n\n// newConnectivityStateManager creates an connectivityStateManager with\n// the specified channel.\nfunc newConnectivityStateManager(ctx context.Context, channel *channelz.Channel) *connectivityStateManager {\n\treturn &connectivityStateManager{\n\t\tchannelz: channel,\n\t\tpubSub:   grpcsync.NewPubSub(ctx),\n\t}\n}\n\n// connectivityStateManager keeps the connectivity.State of ClientConn.\n// This struct will eventually be exported so the balancers can access it.\n//\n// TODO: If possible, get rid of the `connectivityStateManager` type, and\n// provide this functionality using the `PubSub`, to avoid keeping track of\n// the connectivity state at two places.\ntype connectivityStateManager struct {\n\tmu         sync.Mutex\n\tstate      connectivity.State\n\tnotifyChan chan struct{}\n\tchannelz   *channelz.Channel\n\tpubSub     *grpcsync.PubSub\n}\n\n// updateState updates the connectivity.State of ClientConn.\n// If there's a change it notifies goroutines waiting on state change to\n// happen.\nfunc (csm *connectivityStateManager) updateState(state connectivity.State) {\n\tcsm.mu.Lock()\n\tdefer csm.mu.Unlock()\n\tif csm.state == connectivity.Shutdown {\n\t\treturn\n\t}\n\tif csm.state == state {\n\t\treturn\n\t}\n\tcsm.state = state\n\tcsm.channelz.ChannelMetrics.State.Store(&state)\n\tcsm.pubSub.Publish(state)\n\n\tchannelz.Infof(logger, csm.channelz, \"Channel Connectivity change to %v\", state)\n\tif csm.notifyChan != nil {\n\t\t// There are other goroutines waiting on this channel.\n\t\tclose(csm.notifyChan)\n\t\tcsm.notifyChan = nil\n\t}\n}\n\nfunc (csm *connectivityStateManager) getState() connectivity.State {\n\tcsm.mu.Lock()\n\tdefer csm.mu.Unlock()\n\treturn csm.state\n}\n\nfunc (csm *connectivityStateManager) getNotifyChan() <-chan struct{} {\n\tcsm.mu.Lock()\n\tdefer csm.mu.Unlock()\n\tif csm.notifyChan == nil {\n\t\tcsm.notifyChan = make(chan struct{})\n\t}\n\treturn csm.notifyChan\n}\n\n// ClientConnInterface defines the functions clients need to perform unary and\n// streaming RPCs.  It is implemented by *ClientConn, and is only intended to\n// be referenced by generated code.\ntype ClientConnInterface interface {\n\t// Invoke performs a unary RPC and returns after the response is received\n\t// into reply.\n\tInvoke(ctx context.Context, method string, args any, reply any, opts ...CallOption) error\n\t// NewStream begins a streaming RPC.\n\tNewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error)\n}\n\n// Assert *ClientConn implements ClientConnInterface.\nvar _ ClientConnInterface = (*ClientConn)(nil)\n\n// ClientConn represents a virtual connection to a conceptual endpoint, to\n// perform RPCs.\n//\n// A ClientConn is free to have zero or more actual connections to the endpoint\n// based on configuration, load, etc. It is also free to determine which actual\n// endpoints to use and may change it every RPC, permitting client-side load\n// balancing.\n//\n// A ClientConn encapsulates a range of functionality including name\n// resolution, TCP connection establishment (with retries and backoff) and TLS\n// handshakes. It also handles errors on established connections by\n// re-resolving the name and reconnecting.\ntype ClientConn struct {\n\tctx    context.Context    // Initialized using the background context at dial time.\n\tcancel context.CancelFunc // Cancelled on close.\n\n\t// The following are initialized at dial time, and are read-only after that.\n\ttarget              string            // User's dial target.\n\tparsedTarget        resolver.Target   // See initParsedTargetAndResolverBuilder().\n\tauthority           string            // See initAuthority().\n\tdopts               dialOptions       // Default and user specified dial options.\n\tchannelz            *channelz.Channel // Channelz object.\n\tresolverBuilder     resolver.Builder  // See initParsedTargetAndResolverBuilder().\n\tidlenessMgr         *idle.Manager\n\tmetricsRecorderList *istats.MetricsRecorderList\n\tstatsHandler        stats.Handler\n\n\t// The following provide their own synchronization, and therefore don't\n\t// require cc.mu to be held to access them.\n\tcsMgr              *connectivityStateManager\n\tpickerWrapper      *pickerWrapper\n\tsafeConfigSelector iresolver.SafeConfigSelector\n\tretryThrottler     atomic.Value // Updated from service config.\n\n\t// mu protects the following fields.\n\t// TODO: split mu so the same mutex isn't used for everything.\n\tmu              sync.RWMutex\n\tresolverWrapper *ccResolverWrapper         // Always recreated whenever entering idle to simplify Close.\n\tbalancerWrapper *ccBalancerWrapper         // Always recreated whenever entering idle to simplify Close.\n\tsc              *ServiceConfig             // Latest service config received from the resolver.\n\tconns           map[*addrConn]struct{}     // Set to nil on close.\n\tkeepaliveParams keepalive.ClientParameters // May be updated upon receipt of a GoAway.\n\t// firstResolveEvent is used to track whether the name resolver sent us at\n\t// least one update. RPCs block on this event.  May be accessed without mu\n\t// if we know we cannot be asked to enter idle mode while accessing it (e.g.\n\t// when the idle manager has already been closed, or if we are already\n\t// entering idle mode).\n\tfirstResolveEvent *grpcsync.Event\n\n\tlceMu               sync.Mutex // protects lastConnectionError\n\tlastConnectionError error\n}\n\n// WaitForStateChange waits until the connectivity.State of ClientConn changes from sourceState or\n// ctx expires. A true value is returned in former case and false in latter.\nfunc (cc *ClientConn) WaitForStateChange(ctx context.Context, sourceState connectivity.State) bool {\n\tch := cc.csMgr.getNotifyChan()\n\tif cc.csMgr.getState() != sourceState {\n\t\treturn true\n\t}\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn false\n\tcase <-ch:\n\t\treturn true\n\t}\n}\n\n// GetState returns the connectivity.State of ClientConn.\nfunc (cc *ClientConn) GetState() connectivity.State {\n\treturn cc.csMgr.getState()\n}\n\n// Connect causes all subchannels in the ClientConn to attempt to connect if\n// the channel is idle.  Does not wait for the connection attempts to begin\n// before returning.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a later\n// release.\nfunc (cc *ClientConn) Connect() {\n\tcc.idlenessMgr.ExitIdleMode()\n\n\t// If the ClientConn was not in idle mode, we need to call ExitIdle on the\n\t// LB policy so that connections can be created.\n\tcc.mu.Lock()\n\tcc.balancerWrapper.exitIdle()\n\tcc.mu.Unlock()\n}\n\n// waitForResolvedAddrs blocks until the resolver provides addresses or the\n// context expires, whichever happens first.\n//\n// Error is nil unless the context expires first; otherwise returns a status\n// error based on the context.\n//\n// The returned boolean indicates whether it did block or not. If the\n// resolution has already happened once before, it returns false without\n// blocking. Otherwise, it wait for the resolution and return true if\n// resolution has succeeded or return false along with error if resolution has\n// failed.\nfunc (cc *ClientConn) waitForResolvedAddrs(ctx context.Context) (bool, error) {\n\t// This is on the RPC path, so we use a fast path to avoid the\n\t// more-expensive \"select\" below after the resolver has returned once.\n\tif cc.firstResolveEvent.HasFired() {\n\t\treturn false, nil\n\t}\n\tinternal.NewStreamWaitingForResolver()\n\tselect {\n\tcase <-cc.firstResolveEvent.Done():\n\t\treturn true, nil\n\tcase <-ctx.Done():\n\t\treturn false, status.FromContextError(ctx.Err()).Err()\n\tcase <-cc.ctx.Done():\n\t\treturn false, ErrClientConnClosing\n\t}\n}\n\nvar emptyServiceConfig *ServiceConfig\n\nfunc init() {\n\tcfg := parseServiceConfig(\"{}\", defaultMaxCallAttempts)\n\tif cfg.Err != nil {\n\t\tpanic(fmt.Sprintf(\"impossible error parsing empty service config: %v\", cfg.Err))\n\t}\n\temptyServiceConfig = cfg.Config.(*ServiceConfig)\n\n\tinternal.SubscribeToConnectivityStateChanges = func(cc *ClientConn, s grpcsync.Subscriber) func() {\n\t\treturn cc.csMgr.pubSub.Subscribe(s)\n\t}\n\tinternal.EnterIdleModeForTesting = func(cc *ClientConn) {\n\t\tcc.idlenessMgr.EnterIdleModeForTesting()\n\t}\n\tinternal.ExitIdleModeForTesting = func(cc *ClientConn) {\n\t\tcc.idlenessMgr.ExitIdleMode()\n\t}\n}\n\nfunc (cc *ClientConn) maybeApplyDefaultServiceConfig() {\n\tif cc.sc != nil {\n\t\tcc.applyServiceConfigAndBalancer(cc.sc, nil)\n\t\treturn\n\t}\n\tif cc.dopts.defaultServiceConfig != nil {\n\t\tcc.applyServiceConfigAndBalancer(cc.dopts.defaultServiceConfig, &defaultConfigSelector{cc.dopts.defaultServiceConfig})\n\t} else {\n\t\tcc.applyServiceConfigAndBalancer(emptyServiceConfig, &defaultConfigSelector{emptyServiceConfig})\n\t}\n}\n\nfunc (cc *ClientConn) updateResolverStateAndUnlock(s resolver.State, err error) error {\n\tdefer cc.firstResolveEvent.Fire()\n\t// Check if the ClientConn is already closed. Some fields (e.g.\n\t// balancerWrapper) are set to nil when closing the ClientConn, and could\n\t// cause nil pointer panic if we don't have this check.\n\tif cc.conns == nil {\n\t\tcc.mu.Unlock()\n\t\treturn nil\n\t}\n\n\tif err != nil {\n\t\t// May need to apply the initial service config in case the resolver\n\t\t// doesn't support service configs, or doesn't provide a service config\n\t\t// with the new addresses.\n\t\tcc.maybeApplyDefaultServiceConfig()\n\n\t\tcc.balancerWrapper.resolverError(err)\n\n\t\t// No addresses are valid with err set; return early.\n\t\tcc.mu.Unlock()\n\t\treturn balancer.ErrBadResolverState\n\t}\n\n\tvar ret error\n\tif cc.dopts.disableServiceConfig {\n\t\tchannelz.Infof(logger, cc.channelz, \"ignoring service config from resolver (%v) and applying the default because service config is disabled\", s.ServiceConfig)\n\t\tcc.maybeApplyDefaultServiceConfig()\n\t} else if s.ServiceConfig == nil {\n\t\tcc.maybeApplyDefaultServiceConfig()\n\t\t// TODO: do we need to apply a failing LB policy if there is no\n\t\t// default, per the error handling design?\n\t} else {\n\t\tif sc, ok := s.ServiceConfig.Config.(*ServiceConfig); s.ServiceConfig.Err == nil && ok {\n\t\t\tconfigSelector := iresolver.GetConfigSelector(s)\n\t\t\tif configSelector != nil {\n\t\t\t\tif len(s.ServiceConfig.Config.(*ServiceConfig).Methods) != 0 {\n\t\t\t\t\tchannelz.Infof(logger, cc.channelz, \"method configs in service config will be ignored due to presence of config selector\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconfigSelector = &defaultConfigSelector{sc}\n\t\t\t}\n\t\t\tcc.applyServiceConfigAndBalancer(sc, configSelector)\n\t\t} else {\n\t\t\tret = balancer.ErrBadResolverState\n\t\t\tif cc.sc == nil {\n\t\t\t\t// Apply the failing LB only if we haven't received valid service config\n\t\t\t\t// from the name resolver in the past.\n\t\t\t\tcc.applyFailingLBLocked(s.ServiceConfig)\n\t\t\t\tcc.mu.Unlock()\n\t\t\t\treturn ret\n\t\t\t}\n\t\t}\n\t}\n\n\tbalCfg := cc.sc.lbConfig\n\tbw := cc.balancerWrapper\n\tcc.mu.Unlock()\n\n\tuccsErr := bw.updateClientConnState(&balancer.ClientConnState{ResolverState: s, BalancerConfig: balCfg})\n\tif ret == nil {\n\t\tret = uccsErr // prefer ErrBadResolver state since any other error is\n\t\t// currently meaningless to the caller.\n\t}\n\treturn ret\n}\n\n// applyFailingLBLocked is akin to configuring an LB policy on the channel which\n// always fails RPCs. Here, an actual LB policy is not configured, but an always\n// erroring picker is configured, which returns errors with information about\n// what was invalid in the received service config. A config selector with no\n// service config is configured, and the connectivity state of the channel is\n// set to TransientFailure.\nfunc (cc *ClientConn) applyFailingLBLocked(sc *serviceconfig.ParseResult) {\n\tvar err error\n\tif sc.Err != nil {\n\t\terr = status.Errorf(codes.Unavailable, \"error parsing service config: %v\", sc.Err)\n\t} else {\n\t\terr = status.Errorf(codes.Unavailable, \"illegal service config type: %T\", sc.Config)\n\t}\n\tcc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil})\n\tcc.pickerWrapper.updatePicker(base.NewErrPicker(err))\n\tcc.csMgr.updateState(connectivity.TransientFailure)\n}\n\n// Makes a copy of the input addresses slice. Addresses are passed during\n// subconn creation and address update operations.\nfunc copyAddresses(in []resolver.Address) []resolver.Address {\n\tout := make([]resolver.Address, len(in))\n\tcopy(out, in)\n\treturn out\n}\n\n// newAddrConnLocked creates an addrConn for addrs and adds it to cc.conns.\n//\n// Caller needs to make sure len(addrs) > 0.\nfunc (cc *ClientConn) newAddrConnLocked(addrs []resolver.Address, opts balancer.NewSubConnOptions) (*addrConn, error) {\n\tif cc.conns == nil {\n\t\treturn nil, ErrClientConnClosing\n\t}\n\n\tac := &addrConn{\n\t\tstate:        connectivity.Idle,\n\t\tcc:           cc,\n\t\taddrs:        copyAddresses(addrs),\n\t\tscopts:       opts,\n\t\tdopts:        cc.dopts,\n\t\tchannelz:     channelz.RegisterSubChannel(cc.channelz, \"\"),\n\t\tresetBackoff: make(chan struct{}),\n\t}\n\tac.updateTelemetryLabelsLocked()\n\tac.ctx, ac.cancel = context.WithCancel(cc.ctx)\n\t// Start with our address set to the first address; this may be updated if\n\t// we connect to different addresses.\n\tac.channelz.ChannelMetrics.Target.Store(&addrs[0].Addr)\n\n\tchannelz.AddTraceEvent(logger, ac.channelz, 0, &channelz.TraceEvent{\n\t\tDesc:     \"Subchannel created\",\n\t\tSeverity: channelz.CtInfo,\n\t\tParent: &channelz.TraceEvent{\n\t\t\tDesc:     fmt.Sprintf(\"Subchannel(id:%d) created\", ac.channelz.ID),\n\t\t\tSeverity: channelz.CtInfo,\n\t\t},\n\t})\n\n\t// Track ac in cc. This needs to be done before any getTransport(...) is called.\n\tcc.conns[ac] = struct{}{}\n\treturn ac, nil\n}\n\n// removeAddrConn removes the addrConn in the subConn from clientConn.\n// It also tears down the ac with the given error.\nfunc (cc *ClientConn) removeAddrConn(ac *addrConn, err error) {\n\tcc.mu.Lock()\n\tif cc.conns == nil {\n\t\tcc.mu.Unlock()\n\t\treturn\n\t}\n\tdelete(cc.conns, ac)\n\tcc.mu.Unlock()\n\tac.tearDown(err)\n}\n\n// Target returns the target string of the ClientConn.\nfunc (cc *ClientConn) Target() string {\n\treturn cc.target\n}\n\n// CanonicalTarget returns the canonical target string used when creating cc.\n//\n// This always has the form \"<scheme>://[authority]/<endpoint>\".  For example:\n//\n//   - \"dns:///example.com:42\"\n//   - \"dns://8.8.8.8/example.com:42\"\n//   - \"unix:///path/to/socket\"\nfunc (cc *ClientConn) CanonicalTarget() string {\n\treturn cc.parsedTarget.String()\n}\n\nfunc (cc *ClientConn) incrCallsStarted() {\n\tcc.channelz.ChannelMetrics.CallsStarted.Add(1)\n\tcc.channelz.ChannelMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano())\n}\n\nfunc (cc *ClientConn) incrCallsSucceeded() {\n\tcc.channelz.ChannelMetrics.CallsSucceeded.Add(1)\n}\n\nfunc (cc *ClientConn) incrCallsFailed() {\n\tcc.channelz.ChannelMetrics.CallsFailed.Add(1)\n}\n\n// connect starts creating a transport.\n// It does nothing if the ac is not IDLE.\n// TODO(bar) Move this to the addrConn section.\nfunc (ac *addrConn) connect() {\n\tac.mu.Lock()\n\tif ac.state == connectivity.Shutdown {\n\t\tif logger.V(2) {\n\t\t\tlogger.Infof(\"connect called on shutdown addrConn; ignoring.\")\n\t\t}\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\tif ac.state != connectivity.Idle {\n\t\tif logger.V(2) {\n\t\t\tlogger.Infof(\"connect called on addrConn in non-idle state (%v); ignoring.\", ac.state)\n\t\t}\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\n\tac.resetTransportAndUnlock()\n}\n\n// equalAddressIgnoringBalAttributes returns true is a and b are considered equal.\n// This is different from the Equal method on the resolver.Address type which\n// considers all fields to determine equality. Here, we only consider fields\n// that are meaningful to the subConn.\nfunc equalAddressIgnoringBalAttributes(a, b *resolver.Address) bool {\n\treturn a.Addr == b.Addr && a.ServerName == b.ServerName &&\n\t\ta.Attributes.Equal(b.Attributes) &&\n\t\ta.Metadata == b.Metadata\n}\n\nfunc equalAddressesIgnoringBalAttributes(a, b []resolver.Address) bool {\n\treturn slices.EqualFunc(a, b, func(a, b resolver.Address) bool { return equalAddressIgnoringBalAttributes(&a, &b) })\n}\n\n// updateAddrs updates ac.addrs with the new addresses list and handles active\n// connections or connection attempts.\nfunc (ac *addrConn) updateAddrs(addrs []resolver.Address) {\n\taddrs = copyAddresses(addrs)\n\tlimit := len(addrs)\n\tif limit > 5 {\n\t\tlimit = 5\n\t}\n\tchannelz.Infof(logger, ac.channelz, \"addrConn: updateAddrs addrs (%d of %d): %v\", limit, len(addrs), addrs[:limit])\n\n\tac.mu.Lock()\n\tif equalAddressesIgnoringBalAttributes(ac.addrs, addrs) {\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\n\tac.addrs = addrs\n\tac.updateTelemetryLabelsLocked()\n\tif ac.state == connectivity.Shutdown ||\n\t\tac.state == connectivity.TransientFailure ||\n\t\tac.state == connectivity.Idle {\n\t\t// We were not connecting, so do nothing but update the addresses.\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\n\tif ac.state == connectivity.Ready {\n\t\t// Try to find the connected address.\n\t\tfor _, a := range addrs {\n\t\t\ta.ServerName = ac.cc.getServerName(a)\n\t\t\tif equalAddressIgnoringBalAttributes(&a, &ac.curAddr) {\n\t\t\t\t// We are connected to a valid address, so do nothing but\n\t\t\t\t// update the addresses.\n\t\t\t\tac.mu.Unlock()\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\t// We are either connected to the wrong address or currently connecting.\n\t// Stop the current iteration and restart.\n\n\tac.cancel()\n\tac.ctx, ac.cancel = context.WithCancel(ac.cc.ctx)\n\n\t// We have to defer here because GracefulClose => onClose, which requires\n\t// locking ac.mu.\n\tif ac.transport != nil {\n\t\tdefer ac.transport.GracefulClose()\n\t\tac.transport = nil\n\t}\n\n\tif len(addrs) == 0 {\n\t\tac.updateConnectivityState(connectivity.Idle, nil)\n\t}\n\n\t// Since we were connecting/connected, we should start a new connection\n\t// attempt.\n\tgo ac.resetTransportAndUnlock()\n}\n\n// getServerName determines the serverName to be used in the connection\n// handshake. The default value for the serverName is the authority on the\n// ClientConn, which either comes from the user's dial target or through an\n// authority override specified using the WithAuthority dial option. Name\n// resolvers can specify a per-address override for the serverName through the\n// resolver.Address.ServerName field which is used only if the WithAuthority\n// dial option was not used. The rationale is that per-address authority\n// overrides specified by the name resolver can represent a security risk, while\n// an override specified by the user is more dependable since they probably know\n// what they are doing.\nfunc (cc *ClientConn) getServerName(addr resolver.Address) string {\n\tif cc.dopts.authority != \"\" {\n\t\treturn cc.dopts.authority\n\t}\n\tif addr.ServerName != \"\" {\n\t\treturn addr.ServerName\n\t}\n\treturn cc.authority\n}\n\nfunc getMethodConfig(sc *ServiceConfig, method string) MethodConfig {\n\tif sc == nil {\n\t\treturn MethodConfig{}\n\t}\n\tif m, ok := sc.Methods[method]; ok {\n\t\treturn m\n\t}\n\ti := strings.LastIndex(method, \"/\")\n\tif m, ok := sc.Methods[method[:i+1]]; ok {\n\t\treturn m\n\t}\n\treturn sc.Methods[\"\"]\n}\n\n// GetMethodConfig gets the method config of the input method.\n// If there's an exact match for input method (i.e. /service/method), we return\n// the corresponding MethodConfig.\n// If there isn't an exact match for the input method, we look for the service's default\n// config under the service (i.e /service/) and then for the default for all services (empty string).\n//\n// If there is a default MethodConfig for the service, we return it.\n// Otherwise, we return an empty MethodConfig.\nfunc (cc *ClientConn) GetMethodConfig(method string) MethodConfig {\n\t// TODO: Avoid the locking here.\n\tcc.mu.RLock()\n\tdefer cc.mu.RUnlock()\n\treturn getMethodConfig(cc.sc, method)\n}\n\nfunc (cc *ClientConn) healthCheckConfig() *healthCheckConfig {\n\tcc.mu.RLock()\n\tdefer cc.mu.RUnlock()\n\tif cc.sc == nil {\n\t\treturn nil\n\t}\n\treturn cc.sc.healthCheckConfig\n}\n\nfunc (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSelector iresolver.ConfigSelector) {\n\tif sc == nil {\n\t\t// should never reach here.\n\t\treturn\n\t}\n\tcc.sc = sc\n\tif configSelector != nil {\n\t\tcc.safeConfigSelector.UpdateConfigSelector(configSelector)\n\t}\n\n\tif cc.sc.retryThrottling != nil {\n\t\tnewThrottler := &retryThrottler{\n\t\t\ttokens: cc.sc.retryThrottling.MaxTokens,\n\t\t\tmax:    cc.sc.retryThrottling.MaxTokens,\n\t\t\tthresh: cc.sc.retryThrottling.MaxTokens / 2,\n\t\t\tratio:  cc.sc.retryThrottling.TokenRatio,\n\t\t}\n\t\tcc.retryThrottler.Store(newThrottler)\n\t} else {\n\t\tcc.retryThrottler.Store((*retryThrottler)(nil))\n\t}\n}\n\nfunc (cc *ClientConn) resolveNow(o resolver.ResolveNowOptions) {\n\tcc.mu.RLock()\n\tcc.resolverWrapper.resolveNow(o)\n\tcc.mu.RUnlock()\n}\n\nfunc (cc *ClientConn) resolveNowLocked(o resolver.ResolveNowOptions) {\n\tcc.resolverWrapper.resolveNow(o)\n}\n\n// ResetConnectBackoff wakes up all subchannels in transient failure and causes\n// them to attempt another connection immediately.  It also resets the backoff\n// times used for subsequent attempts regardless of the current state.\n//\n// In general, this function should not be used.  Typical service or network\n// outages result in a reasonable client reconnection strategy by default.\n// However, if a previously unavailable network becomes available, this may be\n// used to trigger an immediate reconnect.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc (cc *ClientConn) ResetConnectBackoff() {\n\tcc.mu.Lock()\n\tconns := cc.conns\n\tcc.mu.Unlock()\n\tfor ac := range conns {\n\t\tac.resetConnectBackoff()\n\t}\n}\n\n// Close tears down the ClientConn and all underlying connections.\nfunc (cc *ClientConn) Close() error {\n\tdefer func() {\n\t\tcc.cancel()\n\t\t<-cc.csMgr.pubSub.Done()\n\t}()\n\n\t// Prevent calls to enter/exit idle immediately, and ensure we are not\n\t// currently entering/exiting idle mode.\n\tcc.idlenessMgr.Close()\n\n\tcc.mu.Lock()\n\tif cc.conns == nil {\n\t\tcc.mu.Unlock()\n\t\treturn ErrClientConnClosing\n\t}\n\n\tconns := cc.conns\n\tcc.conns = nil\n\tcc.csMgr.updateState(connectivity.Shutdown)\n\n\t// We can safely unlock and continue to access all fields now as\n\t// cc.conns==nil, preventing any further operations on cc.\n\tcc.mu.Unlock()\n\n\tcc.resolverWrapper.close()\n\t// The order of closing matters here since the balancer wrapper assumes the\n\t// picker is closed before it is closed.\n\tcc.pickerWrapper.close()\n\tcc.balancerWrapper.close()\n\n\t<-cc.resolverWrapper.serializer.Done()\n\t<-cc.balancerWrapper.serializer.Done()\n\tvar wg sync.WaitGroup\n\tfor ac := range conns {\n\t\twg.Add(1)\n\t\tgo func(ac *addrConn) {\n\t\t\tdefer wg.Done()\n\t\t\tac.tearDown(ErrClientConnClosing)\n\t\t}(ac)\n\t}\n\twg.Wait()\n\tcc.addTraceEvent(\"deleted\")\n\t// TraceEvent needs to be called before RemoveEntry, as TraceEvent may add\n\t// trace reference to the entity being deleted, and thus prevent it from being\n\t// deleted right away.\n\tchannelz.RemoveEntry(cc.channelz.ID)\n\n\treturn nil\n}\n\n// addrConn is a network connection to a given address.\ntype addrConn struct {\n\tctx    context.Context\n\tcancel context.CancelFunc\n\n\tcc     *ClientConn\n\tdopts  dialOptions\n\tacbw   *acBalancerWrapper\n\tscopts balancer.NewSubConnOptions\n\n\t// transport is set when there's a viable transport (note: ac state may not be READY as LB channel\n\t// health checking may require server to report healthy to set ac to READY), and is reset\n\t// to nil when the current transport should no longer be used to create a stream (e.g. after GoAway\n\t// is received, transport is closed, ac has been torn down).\n\ttransport transport.ClientTransport // The current transport.\n\n\t// This mutex is used on the RPC path, so its usage should be minimized as\n\t// much as possible.\n\t// TODO: Find a lock-free way to retrieve the transport and state from the\n\t// addrConn.\n\tmu      sync.Mutex\n\tcurAddr resolver.Address   // The current address.\n\taddrs   []resolver.Address // All addresses that the resolver resolved to.\n\n\t// Use updateConnectivityState for updating addrConn's connectivity state.\n\tstate connectivity.State\n\n\tbackoffIdx   int // Needs to be stateful for resetConnectBackoff.\n\tresetBackoff chan struct{}\n\n\tchannelz *channelz.SubChannel\n\n\tlocalityLabel       string\n\tbackendServiceLabel string\n}\n\n// Note: this requires a lock on ac.mu.\nfunc (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error) {\n\tif ac.state == s {\n\t\treturn\n\t}\n\n\t// If we are transitioning out of Ready, it means there is a disconnection.\n\t// A SubConn can also transition from CONNECTING directly to IDLE when\n\t// a transport is successfully created, but the connection fails\n\t// before the SubConn can send the notification for READY. We treat\n\t// this as a successful connection and transition to IDLE.\n\t// TODO: https://github.com/grpc/grpc-go/issues/7862 - Remove the second\n\t// part of the if condition below once the issue is fixed.\n\tif ac.state == connectivity.Ready || (ac.state == connectivity.Connecting && s == connectivity.Idle) {\n\t\tdisconnectionsMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.localityLabel, \"unknown\")\n\t\topenConnectionsMetric.Record(ac.cc.metricsRecorderList, -1, ac.cc.target, ac.backendServiceLabel, ac.securityLevelLocked(), ac.localityLabel)\n\t}\n\tac.state = s\n\tac.channelz.ChannelMetrics.State.Store(&s)\n\tif lastErr == nil {\n\t\tchannelz.Infof(logger, ac.channelz, \"Subchannel Connectivity change to %v\", s)\n\t} else {\n\t\tchannelz.Infof(logger, ac.channelz, \"Subchannel Connectivity change to %v, last error: %s\", s, lastErr)\n\t}\n\tac.acbw.updateState(s, lastErr)\n}\n\n// adjustParams updates parameters used to create transports upon\n// receiving a GoAway.\nfunc (ac *addrConn) adjustParams(r transport.GoAwayReason) {\n\tif r == transport.GoAwayTooManyPings {\n\t\tv := 2 * ac.dopts.copts.KeepaliveParams.Time\n\t\tac.cc.mu.Lock()\n\t\tif v > ac.cc.keepaliveParams.Time {\n\t\t\tac.cc.keepaliveParams.Time = v\n\t\t}\n\t\tac.cc.mu.Unlock()\n\t}\n}\n\n// resetTransportAndUnlock unconditionally connects the addrConn.\n//\n// ac.mu must be held by the caller, and this function will guarantee it is released.\nfunc (ac *addrConn) resetTransportAndUnlock() {\n\tacCtx := ac.ctx\n\tif acCtx.Err() != nil {\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\n\taddrs := ac.addrs\n\tbackoffFor := ac.dopts.bs.Backoff(ac.backoffIdx)\n\t// This will be the duration that dial gets to finish.\n\tdialDuration := minConnectTimeout\n\tif ac.dopts.minConnectTimeout != nil {\n\t\tdialDuration = ac.dopts.minConnectTimeout()\n\t}\n\n\tif dialDuration < backoffFor {\n\t\t// Give dial more time as we keep failing to connect.\n\t\tdialDuration = backoffFor\n\t}\n\t// We can potentially spend all the time trying the first address, and\n\t// if the server accepts the connection and then hangs, the following\n\t// addresses will never be tried.\n\t//\n\t// The spec doesn't mention what should be done for multiple addresses.\n\t// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md#proposed-backoff-algorithm\n\tconnectDeadline := time.Now().Add(dialDuration)\n\n\tac.updateConnectivityState(connectivity.Connecting, nil)\n\tac.mu.Unlock()\n\n\tif err := ac.tryAllAddrs(acCtx, addrs, connectDeadline); err != nil {\n\t\tif !errors.Is(err, context.Canceled) {\n\t\t\tconnectionAttemptsFailedMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.localityLabel)\n\t\t} else {\n\t\t\tif logger.V(2) {\n\t\t\t\t// This records cancelled connection attempts which can be later\n\t\t\t\t// replaced by a metric.\n\t\t\t\tlogger.Infof(\"Context cancellation detected; not recording this as a failed connection attempt.\")\n\t\t\t}\n\t\t}\n\t\t// TODO: #7534 - Move re-resolution requests into the pick_first LB policy\n\t\t// to ensure one resolution request per pass instead of per subconn failure.\n\t\tac.cc.resolveNow(resolver.ResolveNowOptions{})\n\t\tac.mu.Lock()\n\t\tif acCtx.Err() != nil {\n\t\t\t// addrConn was torn down.\n\t\t\tac.mu.Unlock()\n\t\t\treturn\n\t\t}\n\t\t// After exhausting all addresses, the addrConn enters\n\t\t// TRANSIENT_FAILURE.\n\t\tac.updateConnectivityState(connectivity.TransientFailure, err)\n\n\t\t// Backoff.\n\t\tb := ac.resetBackoff\n\t\tac.mu.Unlock()\n\n\t\ttimer := time.NewTimer(backoffFor)\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\tac.mu.Lock()\n\t\t\tac.backoffIdx++\n\t\t\tac.mu.Unlock()\n\t\tcase <-b:\n\t\t\ttimer.Stop()\n\t\tcase <-acCtx.Done():\n\t\t\ttimer.Stop()\n\t\t\treturn\n\t\t}\n\n\t\tac.mu.Lock()\n\t\tif acCtx.Err() == nil {\n\t\t\tac.updateConnectivityState(connectivity.Idle, err)\n\t\t}\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\t// Success; reset backoff.\n\tac.mu.Lock()\n\tconnectionAttemptsSucceededMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.localityLabel)\n\topenConnectionsMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.securityLevelLocked(), ac.localityLabel)\n\tac.backoffIdx = 0\n\tac.mu.Unlock()\n}\n\n// updateTelemetryLabelsLocked calculates and caches the telemetry labels based on the\n// first address in addrConn.\nfunc (ac *addrConn) updateTelemetryLabelsLocked() {\n\tlabelsFunc, ok := internal.AddressToTelemetryLabels.(func(resolver.Address) map[string]string)\n\tif !ok || len(ac.addrs) == 0 {\n\t\t// Reset defaults\n\t\tac.localityLabel = \"\"\n\t\tac.backendServiceLabel = \"\"\n\t\treturn\n\t}\n\tlabels := labelsFunc(ac.addrs[0])\n\tac.localityLabel = labels[\"grpc.lb.locality\"]\n\tac.backendServiceLabel = labels[\"grpc.lb.backend_service\"]\n}\n\ntype securityLevelKey struct{}\n\nfunc (ac *addrConn) securityLevelLocked() string {\n\tvar secLevel string\n\t// During disconnection, ac.transport is nil. Fall back to the security level\n\t// stored in the current address during connection.\n\tif ac.transport == nil {\n\t\tsecLevel, _ = ac.curAddr.Attributes.Value(securityLevelKey{}).(string)\n\t\treturn secLevel\n\t}\n\tauthInfo := ac.transport.Peer().AuthInfo\n\tif ci, ok := authInfo.(interface {\n\t\tGetCommonAuthInfo() credentials.CommonAuthInfo\n\t}); ok {\n\t\tsecLevel = ci.GetCommonAuthInfo().SecurityLevel.String()\n\t\t// Store the security level in the current address' attributes so\n\t\t// that it remains available for disconnection metrics after the\n\t\t// transport is closed.\n\t\tac.curAddr.Attributes = ac.curAddr.Attributes.WithValue(securityLevelKey{}, secLevel)\n\t}\n\treturn secLevel\n}\n\n// tryAllAddrs tries to create a connection to the addresses, and stop when at\n// the first successful one. It returns an error if no address was successfully\n// connected, or updates ac appropriately with the new transport.\nfunc (ac *addrConn) tryAllAddrs(ctx context.Context, addrs []resolver.Address, connectDeadline time.Time) error {\n\tvar firstConnErr error\n\tfor _, addr := range addrs {\n\t\tac.channelz.ChannelMetrics.Target.Store(&addr.Addr)\n\t\tif ctx.Err() != nil {\n\t\t\treturn errConnClosing\n\t\t}\n\t\tac.mu.Lock()\n\n\t\tac.cc.mu.RLock()\n\t\tac.dopts.copts.KeepaliveParams = ac.cc.keepaliveParams\n\t\tac.cc.mu.RUnlock()\n\n\t\tcopts := ac.dopts.copts\n\t\tif ac.scopts.CredsBundle != nil {\n\t\t\tcopts.CredsBundle = ac.scopts.CredsBundle\n\t\t}\n\t\tac.mu.Unlock()\n\n\t\tchannelz.Infof(logger, ac.channelz, \"Subchannel picks a new address %q to connect\", addr.Addr)\n\n\t\terr := ac.createTransport(ctx, addr, copts, connectDeadline)\n\t\tif err == nil {\n\t\t\treturn nil\n\t\t}\n\t\tif firstConnErr == nil {\n\t\t\tfirstConnErr = err\n\t\t}\n\t\tac.cc.updateConnectionError(err)\n\t}\n\n\t// Couldn't connect to any address.\n\treturn firstConnErr\n}\n\n// createTransport creates a connection to addr. It returns an error if the\n// address was not successfully connected, or updates ac appropriately with the\n// new transport.\nfunc (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) error {\n\taddr.ServerName = ac.cc.getServerName(addr)\n\thctx, hcancel := context.WithCancel(ctx)\n\n\tonClose := func(r transport.GoAwayReason) {\n\t\tac.mu.Lock()\n\t\tdefer ac.mu.Unlock()\n\t\t// adjust params based on GoAwayReason\n\t\tac.adjustParams(r)\n\t\tif ctx.Err() != nil {\n\t\t\t// Already shut down or connection attempt canceled.  tearDown() or\n\t\t\t// updateAddrs() already cleared the transport and canceled hctx\n\t\t\t// via ac.ctx, and we expected this connection to be closed, so do\n\t\t\t// nothing here.\n\t\t\treturn\n\t\t}\n\t\thcancel()\n\t\tif ac.transport == nil {\n\t\t\t// We're still connecting to this address, which could error.  Do\n\t\t\t// not update the connectivity state or resolve; these will happen\n\t\t\t// at the end of the tryAllAddrs connection loop in the event of an\n\t\t\t// error.\n\t\t\treturn\n\t\t}\n\t\tac.transport = nil\n\t\t// Refresh the name resolver on any connection loss.\n\t\tac.cc.resolveNow(resolver.ResolveNowOptions{})\n\t\t// Always go idle and wait for the LB policy to initiate a new\n\t\t// connection attempt.\n\t\tac.updateConnectivityState(connectivity.Idle, nil)\n\t}\n\n\tconnectCtx, cancel := context.WithDeadline(ctx, connectDeadline)\n\tdefer cancel()\n\tcopts.ChannelzParent = ac.channelz\n\n\tnewTr, err := transport.NewHTTP2Client(connectCtx, ac.cc.ctx, addr, copts, onClose)\n\tif err != nil {\n\t\tif logger.V(2) {\n\t\t\tlogger.Infof(\"Creating new client transport to %q: %v\", addr, err)\n\t\t}\n\t\t// newTr is either nil, or closed.\n\t\thcancel()\n\t\tchannelz.Warningf(logger, ac.channelz, \"grpc: addrConn.createTransport failed to connect to %s. Err: %v\", addr, err)\n\t\treturn err\n\t}\n\n\tac.mu.Lock()\n\tif ctx.Err() != nil {\n\t\t// This can happen if the subConn was removed while in `Connecting`\n\t\t// state. tearDown() would have set the state to `Shutdown`, but\n\t\t// would not have closed the transport since ac.transport would not\n\t\t// have been set at that point.\n\n\t\t// We unlock ac.mu because newTr.Close() calls onClose()\n\t\t// inline, which requires locking ac.mu.\n\t\tac.mu.Unlock()\n\n\t\t// The error we pass to Close() is immaterial since there are no open\n\t\t// streams at this point, so no trailers with error details will be sent\n\t\t// out. We just need to pass a non-nil error.\n\t\t//\n\t\t// This can also happen when updateAddrs is called during a connection\n\t\t// attempt.\n\t\tnewTr.Close(transport.ErrConnClosing)\n\t\treturn nil\n\t}\n\tdefer ac.mu.Unlock()\n\tif hctx.Err() != nil {\n\t\t// onClose was already called for this connection, but the connection\n\t\t// was successfully established first.  Consider it a success and set\n\t\t// the new state to Idle.\n\t\tac.updateConnectivityState(connectivity.Idle, nil)\n\t\treturn nil\n\t}\n\tac.curAddr = addr\n\tac.transport = newTr\n\tac.startHealthCheck(hctx) // Will set state to READY if appropriate.\n\treturn nil\n}\n\n// startHealthCheck starts the health checking stream (RPC) to watch the health\n// stats of this connection if health checking is requested and configured.\n//\n// LB channel health checking is enabled when all requirements below are met:\n// 1. it is not disabled by the user with the WithDisableHealthCheck DialOption\n// 2. internal.HealthCheckFunc is set by importing the grpc/health package\n// 3. a service config with non-empty healthCheckConfig field is provided\n// 4. the load balancer requests it\n//\n// It sets addrConn to READY if the health checking stream is not started.\n//\n// Caller must hold ac.mu.\nfunc (ac *addrConn) startHealthCheck(ctx context.Context) {\n\tvar healthcheckManagingState bool\n\tdefer func() {\n\t\tif !healthcheckManagingState {\n\t\t\tac.updateConnectivityState(connectivity.Ready, nil)\n\t\t}\n\t}()\n\n\tif ac.cc.dopts.disableHealthCheck {\n\t\treturn\n\t}\n\thealthCheckConfig := ac.cc.healthCheckConfig()\n\tif healthCheckConfig == nil {\n\t\treturn\n\t}\n\tif !ac.scopts.HealthCheckEnabled {\n\t\treturn\n\t}\n\thealthCheckFunc := internal.HealthCheckFunc\n\tif healthCheckFunc == nil {\n\t\t// The health package is not imported to set health check function.\n\t\t//\n\t\t// TODO: add a link to the health check doc in the error message.\n\t\tchannelz.Error(logger, ac.channelz, \"Health check is requested but health check function is not set.\")\n\t\treturn\n\t}\n\n\thealthcheckManagingState = true\n\n\t// Set up the health check helper functions.\n\tcurrentTr := ac.transport\n\tnewStream := func(method string) (any, error) {\n\t\tac.mu.Lock()\n\t\tif ac.transport != currentTr {\n\t\t\tac.mu.Unlock()\n\t\t\treturn nil, status.Error(codes.Canceled, \"the provided transport is no longer valid to use\")\n\t\t}\n\t\tac.mu.Unlock()\n\t\treturn newNonRetryClientStream(ctx, &StreamDesc{ServerStreams: true}, method, currentTr, ac)\n\t}\n\tsetConnectivityState := func(s connectivity.State, lastErr error) {\n\t\tac.mu.Lock()\n\t\tdefer ac.mu.Unlock()\n\t\tif ac.transport != currentTr {\n\t\t\treturn\n\t\t}\n\t\tac.updateConnectivityState(s, lastErr)\n\t}\n\t// Start the health checking stream.\n\tgo func() {\n\t\terr := healthCheckFunc(ctx, newStream, setConnectivityState, healthCheckConfig.ServiceName)\n\t\tif err != nil {\n\t\t\tif status.Code(err) == codes.Unimplemented {\n\t\t\t\tchannelz.Error(logger, ac.channelz, \"Subchannel health check is unimplemented at server side, thus health check is disabled\")\n\t\t\t} else {\n\t\t\t\tchannelz.Errorf(logger, ac.channelz, \"Health checking failed: %v\", err)\n\t\t\t}\n\t\t}\n\t}()\n}\n\nfunc (ac *addrConn) resetConnectBackoff() {\n\tac.mu.Lock()\n\tclose(ac.resetBackoff)\n\tac.backoffIdx = 0\n\tac.resetBackoff = make(chan struct{})\n\tac.mu.Unlock()\n}\n\n// getReadyTransport returns the transport if ac's state is READY or nil if not.\nfunc (ac *addrConn) getReadyTransport() transport.ClientTransport {\n\tac.mu.Lock()\n\tdefer ac.mu.Unlock()\n\tif ac.state == connectivity.Ready {\n\t\treturn ac.transport\n\t}\n\treturn nil\n}\n\n// tearDown starts to tear down the addrConn.\n//\n// Note that tearDown doesn't remove ac from ac.cc.conns, so the addrConn struct\n// will leak. In most cases, call cc.removeAddrConn() instead.\nfunc (ac *addrConn) tearDown(err error) {\n\tac.mu.Lock()\n\tif ac.state == connectivity.Shutdown {\n\t\tac.mu.Unlock()\n\t\treturn\n\t}\n\tcurTr := ac.transport\n\tac.transport = nil\n\t// We have to set the state to Shutdown before anything else to prevent races\n\t// between setting the state and logic that waits on context cancellation / etc.\n\tac.updateConnectivityState(connectivity.Shutdown, nil)\n\tac.cancel()\n\tac.curAddr = resolver.Address{}\n\n\tchannelz.AddTraceEvent(logger, ac.channelz, 0, &channelz.TraceEvent{\n\t\tDesc:     \"Subchannel deleted\",\n\t\tSeverity: channelz.CtInfo,\n\t\tParent: &channelz.TraceEvent{\n\t\t\tDesc:     fmt.Sprintf(\"Subchannel(id:%d) deleted\", ac.channelz.ID),\n\t\t\tSeverity: channelz.CtInfo,\n\t\t},\n\t})\n\t// TraceEvent needs to be called before RemoveEntry, as TraceEvent may add\n\t// trace reference to the entity being deleted, and thus prevent it from\n\t// being deleted right away.\n\tchannelz.RemoveEntry(ac.channelz.ID)\n\tac.mu.Unlock()\n\n\t// We have to release the lock before the call to GracefulClose/Close here\n\t// because both of them call onClose(), which requires locking ac.mu.\n\tif curTr != nil {\n\t\tif err == errConnDrain {\n\t\t\t// Close the transport gracefully when the subConn is being shutdown.\n\t\t\t//\n\t\t\t// GracefulClose() may be executed multiple times if:\n\t\t\t// - multiple GoAway frames are received from the server\n\t\t\t// - there are concurrent name resolver or balancer triggered\n\t\t\t//   address removal and GoAway\n\t\t\tcurTr.GracefulClose()\n\t\t} else {\n\t\t\t// Hard close the transport when the channel is entering idle or is\n\t\t\t// being shutdown. In the case where the channel is being shutdown,\n\t\t\t// closing of transports is also taken care of by cancellation of cc.ctx.\n\t\t\t// But in the case where the channel is entering idle, we need to\n\t\t\t// explicitly close the transports here. Instead of distinguishing\n\t\t\t// between these two cases, it is simpler to close the transport\n\t\t\t// unconditionally here.\n\t\t\tcurTr.Close(err)\n\t\t}\n\t}\n}\n\ntype retryThrottler struct {\n\tmax    float64\n\tthresh float64\n\tratio  float64\n\n\tmu     sync.Mutex\n\ttokens float64 // TODO(dfawley): replace with atomic and remove lock.\n}\n\n// throttle subtracts a retry token from the pool and returns whether a retry\n// should be throttled (disallowed) based upon the retry throttling policy in\n// the service config.\nfunc (rt *retryThrottler) throttle() bool {\n\tif rt == nil {\n\t\treturn false\n\t}\n\trt.mu.Lock()\n\tdefer rt.mu.Unlock()\n\trt.tokens--\n\tif rt.tokens < 0 {\n\t\trt.tokens = 0\n\t}\n\treturn rt.tokens <= rt.thresh\n}\n\nfunc (rt *retryThrottler) successfulRPC() {\n\tif rt == nil {\n\t\treturn\n\t}\n\trt.mu.Lock()\n\tdefer rt.mu.Unlock()\n\trt.tokens += rt.ratio\n\tif rt.tokens > rt.max {\n\t\trt.tokens = rt.max\n\t}\n}\n\nfunc (ac *addrConn) incrCallsStarted() {\n\tac.channelz.ChannelMetrics.CallsStarted.Add(1)\n\tac.channelz.ChannelMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano())\n}\n\nfunc (ac *addrConn) incrCallsSucceeded() {\n\tac.channelz.ChannelMetrics.CallsSucceeded.Add(1)\n}\n\nfunc (ac *addrConn) incrCallsFailed() {\n\tac.channelz.ChannelMetrics.CallsFailed.Add(1)\n}\n\n// ErrClientConnTimeout indicates that the ClientConn cannot establish the\n// underlying connections within the specified timeout.\n//\n// Deprecated: This error is never returned by grpc and should not be\n// referenced by users.\nvar ErrClientConnTimeout = errors.New(\"grpc: timed out when dialing\")\n\n// getResolver finds the scheme in the cc's resolvers or the global registry.\n// scheme should always be lowercase (typically by virtue of url.Parse()\n// performing proper RFC3986 behavior).\nfunc (cc *ClientConn) getResolver(scheme string) resolver.Builder {\n\tfor _, rb := range cc.dopts.resolvers {\n\t\tif scheme == rb.Scheme() {\n\t\t\treturn rb\n\t\t}\n\t}\n\treturn resolver.Get(scheme)\n}\n\nfunc (cc *ClientConn) updateConnectionError(err error) {\n\tcc.lceMu.Lock()\n\tcc.lastConnectionError = err\n\tcc.lceMu.Unlock()\n}\n\nfunc (cc *ClientConn) connectionError() error {\n\tcc.lceMu.Lock()\n\tdefer cc.lceMu.Unlock()\n\treturn cc.lastConnectionError\n}\n\n// initParsedTargetAndResolverBuilder parses the user's dial target and stores\n// the parsed target in `cc.parsedTarget`.\n//\n// The resolver to use is determined based on the scheme in the parsed target\n// and the same is stored in `cc.resolverBuilder`.\n//\n// Doesn't grab cc.mu as this method is expected to be called only at Dial time.\nfunc (cc *ClientConn) initParsedTargetAndResolverBuilder() error {\n\tlogger.Infof(\"original dial target is: %q\", cc.target)\n\n\tvar rb resolver.Builder\n\tparsedTarget, err := parseTarget(cc.target)\n\tif err == nil {\n\t\trb = cc.getResolver(parsedTarget.URL.Scheme)\n\t\tif rb != nil {\n\t\t\tcc.parsedTarget = parsedTarget\n\t\t\tcc.resolverBuilder = rb\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// We are here because the user's dial target did not contain a scheme or\n\t// specified an unregistered scheme. We should fallback to the default\n\t// scheme, except when a custom dialer is specified in which case, we should\n\t// always use passthrough scheme. For either case, we need to respect any overridden\n\t// global defaults set by the user.\n\tdefScheme := cc.dopts.defaultScheme\n\tif internal.UserSetDefaultScheme {\n\t\tdefScheme = resolver.GetDefaultScheme()\n\t}\n\n\tcanonicalTarget := defScheme + \":///\" + cc.target\n\n\tparsedTarget, err = parseTarget(canonicalTarget)\n\tif err != nil {\n\t\treturn err\n\t}\n\trb = cc.getResolver(parsedTarget.URL.Scheme)\n\tif rb == nil {\n\t\treturn fmt.Errorf(\"could not get resolver for default scheme: %q\", parsedTarget.URL.Scheme)\n\t}\n\tcc.parsedTarget = parsedTarget\n\tcc.resolverBuilder = rb\n\treturn nil\n}\n\n// parseTarget uses RFC 3986 semantics to parse the given target into a\n// resolver.Target struct containing url. Query params are stripped from the\n// endpoint.\nfunc parseTarget(target string) (resolver.Target, error) {\n\tu, err := url.Parse(target)\n\tif err != nil {\n\t\treturn resolver.Target{}, err\n\t}\n\n\treturn resolver.Target{URL: *u}, nil\n}\n\n// encodeAuthority escapes the authority string based on valid chars defined in\n// https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.\nfunc encodeAuthority(authority string) string {\n\tconst upperhex = \"0123456789ABCDEF\"\n\n\t// Return for characters that must be escaped as per\n\t// Valid chars are mentioned here:\n\t// https://datatracker.ietf.org/doc/html/rfc3986#section-3.2\n\tshouldEscape := func(c byte) bool {\n\t\t// Alphanum are always allowed.\n\t\tif 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {\n\t\t\treturn false\n\t\t}\n\t\tswitch c {\n\t\tcase '-', '_', '.', '~': // Unreserved characters\n\t\t\treturn false\n\t\tcase '!', '$', '&', '\\'', '(', ')', '*', '+', ',', ';', '=': // Subdelim characters\n\t\t\treturn false\n\t\tcase ':', '[', ']', '@': // Authority related delimiters\n\t\t\treturn false\n\t\t}\n\t\t// Everything else must be escaped.\n\t\treturn true\n\t}\n\n\thexCount := 0\n\tfor i := 0; i < len(authority); i++ {\n\t\tc := authority[i]\n\t\tif shouldEscape(c) {\n\t\t\thexCount++\n\t\t}\n\t}\n\n\tif hexCount == 0 {\n\t\treturn authority\n\t}\n\n\trequired := len(authority) + 2*hexCount\n\tt := make([]byte, required)\n\n\tj := 0\n\t// This logic is a barebones version of escape in the go net/url library.\n\tfor i := 0; i < len(authority); i++ {\n\t\tswitch c := authority[i]; {\n\t\tcase shouldEscape(c):\n\t\t\tt[j] = '%'\n\t\t\tt[j+1] = upperhex[c>>4]\n\t\t\tt[j+2] = upperhex[c&15]\n\t\t\tj += 3\n\t\tdefault:\n\t\t\tt[j] = authority[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn string(t)\n}\n\n// Determine channel authority. The order of precedence is as follows:\n// - user specified authority override using `WithAuthority` dial option\n// - creds' notion of server name for the authentication handshake\n// - endpoint from dial target of the form \"scheme://[authority]/endpoint\"\n//\n// Stores the determined authority in `cc.authority`.\n//\n// Returns a non-nil error if the authority returned by the transport\n// credentials do not match the authority configured through the dial option.\n//\n// Doesn't grab cc.mu as this method is expected to be called only at Dial time.\nfunc (cc *ClientConn) initAuthority() error {\n\tdopts := cc.dopts\n\t// Historically, we had two options for users to specify the serverName or\n\t// authority for a channel. One was through the transport credentials\n\t// (either in its constructor, or through the OverrideServerName() method).\n\t// The other option (for cases where WithInsecure() dial option was used)\n\t// was to use the WithAuthority() dial option.\n\t//\n\t// A few things have changed since:\n\t// - `insecure` package with an implementation of the `TransportCredentials`\n\t//   interface for the insecure case\n\t// - WithAuthority() dial option support for secure credentials\n\tauthorityFromCreds := \"\"\n\tif creds := dopts.copts.TransportCredentials; creds != nil && creds.Info().ServerName != \"\" {\n\t\tauthorityFromCreds = creds.Info().ServerName\n\t}\n\tauthorityFromDialOption := dopts.authority\n\tif (authorityFromCreds != \"\" && authorityFromDialOption != \"\") && authorityFromCreds != authorityFromDialOption {\n\t\treturn fmt.Errorf(\"ClientConn's authority from transport creds %q and dial option %q don't match\", authorityFromCreds, authorityFromDialOption)\n\t}\n\n\tendpoint := cc.parsedTarget.Endpoint()\n\tif authorityFromDialOption != \"\" {\n\t\tcc.authority = authorityFromDialOption\n\t} else if authorityFromCreds != \"\" {\n\t\tcc.authority = authorityFromCreds\n\t} else if auth, ok := cc.resolverBuilder.(resolver.AuthorityOverrider); ok {\n\t\tcc.authority = auth.OverrideAuthority(cc.parsedTarget)\n\t} else if strings.HasPrefix(endpoint, \":\") {\n\t\tcc.authority = \"localhost\" + encodeAuthority(endpoint)\n\t} else {\n\t\tcc.authority = encodeAuthority(endpoint)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/codec.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"google.golang.org/grpc/encoding\"\n\t_ \"google.golang.org/grpc/encoding/proto\" // to register the Codec for \"proto\"\n\t\"google.golang.org/grpc/mem\"\n)\n\n// baseCodec captures the new encoding.CodecV2 interface without the Name\n// function, allowing it to be implemented by older Codec and encoding.Codec\n// implementations. The omitted Name function is only needed for the register in\n// the encoding package and is not part of the core functionality.\ntype baseCodec interface {\n\tMarshal(v any) (mem.BufferSlice, error)\n\tUnmarshal(data mem.BufferSlice, v any) error\n}\n\n// getCodec returns an encoding.CodecV2 for the codec of the given name (if\n// registered). Initially checks the V2 registry with encoding.GetCodecV2 and\n// returns the V2 codec if it is registered. Otherwise, it checks the V1 registry\n// with encoding.GetCodec and if it is registered wraps it with newCodecV1Bridge\n// to turn it into an encoding.CodecV2. Returns nil otherwise.\nfunc getCodec(name string) encoding.CodecV2 {\n\tif codecV1 := encoding.GetCodec(name); codecV1 != nil {\n\t\treturn newCodecV1Bridge(codecV1)\n\t}\n\n\treturn encoding.GetCodecV2(name)\n}\n\nfunc newCodecV0Bridge(c Codec) baseCodec {\n\treturn codecV0Bridge{codec: c}\n}\n\nfunc newCodecV1Bridge(c encoding.Codec) encoding.CodecV2 {\n\treturn codecV1Bridge{\n\t\tcodecV0Bridge: codecV0Bridge{codec: c},\n\t\tname:          c.Name(),\n\t}\n}\n\nvar _ baseCodec = codecV0Bridge{}\n\ntype codecV0Bridge struct {\n\tcodec interface {\n\t\tMarshal(v any) ([]byte, error)\n\t\tUnmarshal(data []byte, v any) error\n\t}\n}\n\nfunc (c codecV0Bridge) Marshal(v any) (mem.BufferSlice, error) {\n\tdata, err := c.codec.Marshal(v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn mem.BufferSlice{mem.SliceBuffer(data)}, nil\n}\n\nfunc (c codecV0Bridge) Unmarshal(data mem.BufferSlice, v any) (err error) {\n\treturn c.codec.Unmarshal(data.Materialize(), v)\n}\n\nvar _ encoding.CodecV2 = codecV1Bridge{}\n\ntype codecV1Bridge struct {\n\tcodecV0Bridge\n\tname string\n}\n\nfunc (c codecV1Bridge) Name() string {\n\treturn c.name\n}\n\n// Codec defines the interface gRPC uses to encode and decode messages.\n// Note that implementations of this interface must be thread safe;\n// a Codec's methods can be called from concurrent goroutines.\n//\n// Deprecated: use encoding.Codec instead.\ntype Codec interface {\n\t// Marshal returns the wire format of v.\n\tMarshal(v any) ([]byte, error)\n\t// Unmarshal parses the wire format into v.\n\tUnmarshal(data []byte, v any) error\n\t// String returns the name of the Codec implementation.  This is unused by\n\t// gRPC.\n\tString() string\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/codes/code_string.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage codes\n\nimport (\n\t\"strconv\"\n\n\t\"google.golang.org/grpc/internal\"\n)\n\nfunc init() {\n\tinternal.CanonicalString = canonicalString\n}\n\nfunc (c Code) String() string {\n\tswitch c {\n\tcase OK:\n\t\treturn \"OK\"\n\tcase Canceled:\n\t\treturn \"Canceled\"\n\tcase Unknown:\n\t\treturn \"Unknown\"\n\tcase InvalidArgument:\n\t\treturn \"InvalidArgument\"\n\tcase DeadlineExceeded:\n\t\treturn \"DeadlineExceeded\"\n\tcase NotFound:\n\t\treturn \"NotFound\"\n\tcase AlreadyExists:\n\t\treturn \"AlreadyExists\"\n\tcase PermissionDenied:\n\t\treturn \"PermissionDenied\"\n\tcase ResourceExhausted:\n\t\treturn \"ResourceExhausted\"\n\tcase FailedPrecondition:\n\t\treturn \"FailedPrecondition\"\n\tcase Aborted:\n\t\treturn \"Aborted\"\n\tcase OutOfRange:\n\t\treturn \"OutOfRange\"\n\tcase Unimplemented:\n\t\treturn \"Unimplemented\"\n\tcase Internal:\n\t\treturn \"Internal\"\n\tcase Unavailable:\n\t\treturn \"Unavailable\"\n\tcase DataLoss:\n\t\treturn \"DataLoss\"\n\tcase Unauthenticated:\n\t\treturn \"Unauthenticated\"\n\tdefault:\n\t\treturn \"Code(\" + strconv.FormatInt(int64(c), 10) + \")\"\n\t}\n}\n\nfunc canonicalString(c Code) string {\n\tswitch c {\n\tcase OK:\n\t\treturn \"OK\"\n\tcase Canceled:\n\t\treturn \"CANCELLED\"\n\tcase Unknown:\n\t\treturn \"UNKNOWN\"\n\tcase InvalidArgument:\n\t\treturn \"INVALID_ARGUMENT\"\n\tcase DeadlineExceeded:\n\t\treturn \"DEADLINE_EXCEEDED\"\n\tcase NotFound:\n\t\treturn \"NOT_FOUND\"\n\tcase AlreadyExists:\n\t\treturn \"ALREADY_EXISTS\"\n\tcase PermissionDenied:\n\t\treturn \"PERMISSION_DENIED\"\n\tcase ResourceExhausted:\n\t\treturn \"RESOURCE_EXHAUSTED\"\n\tcase FailedPrecondition:\n\t\treturn \"FAILED_PRECONDITION\"\n\tcase Aborted:\n\t\treturn \"ABORTED\"\n\tcase OutOfRange:\n\t\treturn \"OUT_OF_RANGE\"\n\tcase Unimplemented:\n\t\treturn \"UNIMPLEMENTED\"\n\tcase Internal:\n\t\treturn \"INTERNAL\"\n\tcase Unavailable:\n\t\treturn \"UNAVAILABLE\"\n\tcase DataLoss:\n\t\treturn \"DATA_LOSS\"\n\tcase Unauthenticated:\n\t\treturn \"UNAUTHENTICATED\"\n\tdefault:\n\t\treturn \"CODE(\" + strconv.FormatInt(int64(c), 10) + \")\"\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/codes/codes.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package codes defines the canonical error codes used by gRPC. It is\n// consistent across various languages.\npackage codes // import \"google.golang.org/grpc/codes\"\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// A Code is a status code defined according to the [gRPC documentation].\n//\n// Only the codes defined as consts in this package are valid codes. Do not use\n// other code values.  Behavior of other codes is implementation-specific and\n// interoperability between implementations is not guaranteed.\n//\n// [gRPC documentation]: https://github.com/grpc/grpc/blob/master/doc/statuscodes.md\ntype Code uint32\n\nconst (\n\t// OK is returned on success.\n\tOK Code = 0\n\n\t// Canceled indicates the operation was canceled (typically by the caller).\n\t//\n\t// The gRPC framework will generate this error code when cancellation\n\t// is requested.\n\tCanceled Code = 1\n\n\t// Unknown error. An example of where this error may be returned is\n\t// if a Status value received from another address space belongs to\n\t// an error-space that is not known in this address space. Also\n\t// errors raised by APIs that do not return enough error information\n\t// may be converted to this error.\n\t//\n\t// The gRPC framework will generate this error code in the above two\n\t// mentioned cases.\n\tUnknown Code = 2\n\n\t// InvalidArgument indicates client specified an invalid argument.\n\t// Note that this differs from FailedPrecondition. It indicates arguments\n\t// that are problematic regardless of the state of the system\n\t// (e.g., a malformed file name).\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tInvalidArgument Code = 3\n\n\t// DeadlineExceeded means operation expired before completion.\n\t// For operations that change the state of the system, this error may be\n\t// returned even if the operation has completed successfully. For\n\t// example, a successful response from a server could have been delayed\n\t// long enough for the deadline to expire.\n\t//\n\t// The gRPC framework will generate this error code when the deadline is\n\t// exceeded.\n\tDeadlineExceeded Code = 4\n\n\t// NotFound means some requested entity (e.g., file or directory) was\n\t// not found.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tNotFound Code = 5\n\n\t// AlreadyExists means an attempt to create an entity failed because one\n\t// already exists.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tAlreadyExists Code = 6\n\n\t// PermissionDenied indicates the caller does not have permission to\n\t// execute the specified operation. It must not be used for rejections\n\t// caused by exhausting some resource (use ResourceExhausted\n\t// instead for those errors). It must not be\n\t// used if the caller cannot be identified (use Unauthenticated\n\t// instead for those errors).\n\t//\n\t// This error code will not be generated by the gRPC core framework,\n\t// but expect authentication middleware to use it.\n\tPermissionDenied Code = 7\n\n\t// ResourceExhausted indicates some resource has been exhausted, perhaps\n\t// a per-user quota, or perhaps the entire file system is out of space.\n\t//\n\t// This error code will be generated by the gRPC framework in\n\t// out-of-memory and server overload situations, or when a message is\n\t// larger than the configured maximum size.\n\tResourceExhausted Code = 8\n\n\t// FailedPrecondition indicates operation was rejected because the\n\t// system is not in a state required for the operation's execution.\n\t// For example, directory to be deleted may be non-empty, an rmdir\n\t// operation is applied to a non-directory, etc.\n\t//\n\t// A litmus test that may help a service implementor in deciding\n\t// between FailedPrecondition, Aborted, and Unavailable:\n\t//  (a) Use Unavailable if the client can retry just the failing call.\n\t//  (b) Use Aborted if the client should retry at a higher-level\n\t//      (e.g., restarting a read-modify-write sequence).\n\t//  (c) Use FailedPrecondition if the client should not retry until\n\t//      the system state has been explicitly fixed. E.g., if an \"rmdir\"\n\t//      fails because the directory is non-empty, FailedPrecondition\n\t//      should be returned since the client should not retry unless\n\t//      they have first fixed up the directory by deleting files from it.\n\t//  (d) Use FailedPrecondition if the client performs conditional\n\t//      REST Get/Update/Delete on a resource and the resource on the\n\t//      server does not match the condition. E.g., conflicting\n\t//      read-modify-write on the same resource.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tFailedPrecondition Code = 9\n\n\t// Aborted indicates the operation was aborted, typically due to a\n\t// concurrency issue like sequencer check failures, transaction aborts,\n\t// etc.\n\t//\n\t// See litmus test above for deciding between FailedPrecondition,\n\t// Aborted, and Unavailable.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tAborted Code = 10\n\n\t// OutOfRange means operation was attempted past the valid range.\n\t// E.g., seeking or reading past end of file.\n\t//\n\t// Unlike InvalidArgument, this error indicates a problem that may\n\t// be fixed if the system state changes. For example, a 32-bit file\n\t// system will generate InvalidArgument if asked to read at an\n\t// offset that is not in the range [0,2^32-1], but it will generate\n\t// OutOfRange if asked to read from an offset past the current\n\t// file size.\n\t//\n\t// There is a fair bit of overlap between FailedPrecondition and\n\t// OutOfRange. We recommend using OutOfRange (the more specific\n\t// error) when it applies so that callers who are iterating through\n\t// a space can easily look for an OutOfRange error to detect when\n\t// they are done.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tOutOfRange Code = 11\n\n\t// Unimplemented indicates operation is not implemented or not\n\t// supported/enabled in this service.\n\t//\n\t// This error code will be generated by the gRPC framework. Most\n\t// commonly, you will see this error code when a method implementation\n\t// is missing on the server. It can also be generated for unknown\n\t// compression algorithms or a disagreement as to whether an RPC should\n\t// be streaming.\n\tUnimplemented Code = 12\n\n\t// Internal errors. Means some invariants expected by underlying\n\t// system has been broken. If you see one of these errors,\n\t// something is very broken.\n\t//\n\t// This error code will be generated by the gRPC framework in several\n\t// internal error conditions.\n\tInternal Code = 13\n\n\t// Unavailable indicates the service is currently unavailable.\n\t// This is a most likely a transient condition and may be corrected\n\t// by retrying with a backoff. Note that it is not always safe to retry\n\t// non-idempotent operations.\n\t//\n\t// See litmus test above for deciding between FailedPrecondition,\n\t// Aborted, and Unavailable.\n\t//\n\t// This error code will be generated by the gRPC framework during\n\t// abrupt shutdown of a server process or network connection.\n\tUnavailable Code = 14\n\n\t// DataLoss indicates unrecoverable data loss or corruption.\n\t//\n\t// This error code will not be generated by the gRPC framework.\n\tDataLoss Code = 15\n\n\t// Unauthenticated indicates the request does not have valid\n\t// authentication credentials for the operation.\n\t//\n\t// The gRPC framework will generate this error code when the\n\t// authentication metadata is invalid or a Credentials callback fails,\n\t// but also expect authentication middleware to generate it.\n\tUnauthenticated Code = 16\n\n\t_maxCode = 17\n)\n\nvar strToCode = map[string]Code{\n\t`\"OK\"`: OK,\n\t`\"CANCELLED\"`:/* [sic] */ Canceled,\n\t`\"UNKNOWN\"`:             Unknown,\n\t`\"INVALID_ARGUMENT\"`:    InvalidArgument,\n\t`\"DEADLINE_EXCEEDED\"`:   DeadlineExceeded,\n\t`\"NOT_FOUND\"`:           NotFound,\n\t`\"ALREADY_EXISTS\"`:      AlreadyExists,\n\t`\"PERMISSION_DENIED\"`:   PermissionDenied,\n\t`\"RESOURCE_EXHAUSTED\"`:  ResourceExhausted,\n\t`\"FAILED_PRECONDITION\"`: FailedPrecondition,\n\t`\"ABORTED\"`:             Aborted,\n\t`\"OUT_OF_RANGE\"`:        OutOfRange,\n\t`\"UNIMPLEMENTED\"`:       Unimplemented,\n\t`\"INTERNAL\"`:            Internal,\n\t`\"UNAVAILABLE\"`:         Unavailable,\n\t`\"DATA_LOSS\"`:           DataLoss,\n\t`\"UNAUTHENTICATED\"`:     Unauthenticated,\n}\n\n// UnmarshalJSON unmarshals b into the Code.\nfunc (c *Code) UnmarshalJSON(b []byte) error {\n\t// From json.Unmarshaler: By convention, to approximate the behavior of\n\t// Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte(\"null\")) as\n\t// a no-op.\n\tif string(b) == \"null\" {\n\t\treturn nil\n\t}\n\tif c == nil {\n\t\treturn fmt.Errorf(\"nil receiver passed to UnmarshalJSON\")\n\t}\n\n\tif ci, err := strconv.ParseUint(string(b), 10, 32); err == nil {\n\t\tif ci >= _maxCode {\n\t\t\treturn fmt.Errorf(\"invalid code: %d\", ci)\n\t\t}\n\n\t\t*c = Code(ci)\n\t\treturn nil\n\t}\n\n\tif jc, ok := strToCode[string(b)]; ok {\n\t\t*c = jc\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"invalid code: %q\", string(b))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/connectivity/connectivity.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package connectivity defines connectivity semantics.\n// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md.\npackage connectivity\n\nimport (\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nvar logger = grpclog.Component(\"core\")\n\n// State indicates the state of connectivity.\n// It can be the state of a ClientConn or SubConn.\ntype State int\n\nfunc (s State) String() string {\n\tswitch s {\n\tcase Idle:\n\t\treturn \"IDLE\"\n\tcase Connecting:\n\t\treturn \"CONNECTING\"\n\tcase Ready:\n\t\treturn \"READY\"\n\tcase TransientFailure:\n\t\treturn \"TRANSIENT_FAILURE\"\n\tcase Shutdown:\n\t\treturn \"SHUTDOWN\"\n\tdefault:\n\t\tlogger.Errorf(\"unknown connectivity state: %d\", s)\n\t\treturn \"INVALID_STATE\"\n\t}\n}\n\nconst (\n\t// Idle indicates the ClientConn is idle.\n\tIdle State = iota\n\t// Connecting indicates the ClientConn is connecting.\n\tConnecting\n\t// Ready indicates the ClientConn is ready for work.\n\tReady\n\t// TransientFailure indicates the ClientConn has seen a failure but expects to recover.\n\tTransientFailure\n\t// Shutdown indicates the ClientConn has started shutting down.\n\tShutdown\n)\n\n// ServingMode indicates the current mode of operation of the server.\n//\n// Only xDS enabled gRPC servers currently report their serving mode.\ntype ServingMode int\n\nconst (\n\t// ServingModeStarting indicates that the server is starting up.\n\tServingModeStarting ServingMode = iota\n\t// ServingModeServing indicates that the server contains all required\n\t// configuration and is serving RPCs.\n\tServingModeServing\n\t// ServingModeNotServing indicates that the server is not accepting new\n\t// connections. Existing connections will be closed gracefully, allowing\n\t// in-progress RPCs to complete. A server enters this mode when it does not\n\t// contain the required configuration to serve RPCs.\n\tServingModeNotServing\n)\n\nfunc (s ServingMode) String() string {\n\tswitch s {\n\tcase ServingModeStarting:\n\t\treturn \"STARTING\"\n\tcase ServingModeServing:\n\t\treturn \"SERVING\"\n\tcase ServingModeNotServing:\n\t\treturn \"NOT_SERVING\"\n\tdefault:\n\t\tlogger.Errorf(\"unknown serving mode: %d\", s)\n\t\treturn \"INVALID_MODE\"\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/credentials/credentials.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package credentials implements various credentials supported by gRPC library,\n// which encapsulate all the state needed by a client to authenticate with a\n// server and make various assertions, e.g., about the client's identity, role,\n// or whether it is authorized to make a particular call.\npackage credentials // import \"google.golang.org/grpc/credentials\"\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\n\t\"google.golang.org/grpc/attributes\"\n\ticredentials \"google.golang.org/grpc/internal/credentials\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// PerRPCCredentials defines the common interface for the credentials which need to\n// attach security information to every RPC (e.g., oauth2).\ntype PerRPCCredentials interface {\n\t// GetRequestMetadata gets the current request metadata, refreshing tokens\n\t// if required. This should be called by the transport layer on each\n\t// request, and the data should be populated in headers or other\n\t// context. If a status code is returned, it will be used as the status for\n\t// the RPC (restricted to an allowable set of codes as defined by gRFC\n\t// A54). uri is the URI of the entry point for the request.  When supported\n\t// by the underlying implementation, ctx can be used for timeout and\n\t// cancellation. Additionally, RequestInfo data will be available via ctx\n\t// to this call.\n\tGetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error)\n\t// RequireTransportSecurity indicates whether the credentials requires\n\t// transport security.\n\tRequireTransportSecurity() bool\n}\n\n// SecurityLevel defines the protection level on an established connection.\n//\n// This API is experimental.\ntype SecurityLevel int\n\nconst (\n\t// InvalidSecurityLevel indicates an invalid security level.\n\t// The zero SecurityLevel value is invalid for backward compatibility.\n\tInvalidSecurityLevel SecurityLevel = iota\n\t// NoSecurity indicates a connection is insecure.\n\tNoSecurity\n\t// IntegrityOnly indicates a connection only provides integrity protection.\n\tIntegrityOnly\n\t// PrivacyAndIntegrity indicates a connection provides both privacy and integrity protection.\n\tPrivacyAndIntegrity\n)\n\n// String returns SecurityLevel in a string format.\nfunc (s SecurityLevel) String() string {\n\tswitch s {\n\tcase NoSecurity:\n\t\treturn \"NoSecurity\"\n\tcase IntegrityOnly:\n\t\treturn \"IntegrityOnly\"\n\tcase PrivacyAndIntegrity:\n\t\treturn \"PrivacyAndIntegrity\"\n\t}\n\treturn fmt.Sprintf(\"invalid SecurityLevel: %v\", int(s))\n}\n\n// CommonAuthInfo contains authenticated information common to AuthInfo implementations.\n// It should be embedded in a struct implementing AuthInfo to provide additional information\n// about the credentials.\n//\n// This API is experimental.\ntype CommonAuthInfo struct {\n\tSecurityLevel SecurityLevel\n}\n\n// GetCommonAuthInfo returns the pointer to CommonAuthInfo struct.\nfunc (c CommonAuthInfo) GetCommonAuthInfo() CommonAuthInfo {\n\treturn c\n}\n\n// ProtocolInfo provides static information regarding transport credentials.\ntype ProtocolInfo struct {\n\t// ProtocolVersion is the gRPC wire protocol version.\n\t//\n\t// Deprecated: this is unused by gRPC.\n\tProtocolVersion string\n\t// SecurityProtocol is the security protocol in use.\n\tSecurityProtocol string\n\t// SecurityVersion is the security protocol version.  It is a static version string from the\n\t// credentials, not a value that reflects per-connection protocol negotiation.  To retrieve\n\t// details about the credentials used for a connection, use the Peer's AuthInfo field instead.\n\t//\n\t// Deprecated: please use Peer.AuthInfo.\n\tSecurityVersion string\n\t// ServerName is the user-configured server name.  If set, this overrides\n\t// the default :authority header used for all RPCs on the channel using the\n\t// containing credentials, unless grpc.WithAuthority is set on the channel,\n\t// in which case that setting will take precedence.\n\t//\n\t// This must be a valid `:authority` header according to\n\t// [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#section-3.2).\n\t//\n\t// Deprecated: Users should use grpc.WithAuthority to override the authority\n\t// on a channel instead of configuring the credentials.\n\tServerName string\n}\n\n// AuthInfo defines the common interface for the auth information the users are interested in.\n// A struct that implements AuthInfo should embed CommonAuthInfo by including additional\n// information about the credentials in it.\ntype AuthInfo interface {\n\tAuthType() string\n}\n\n// AuthorityValidator validates the authority used to override the `:authority`\n// header. This is an optional interface that implementations of AuthInfo can\n// implement if they support per-RPC authority overrides. It is invoked when the\n// application attempts to override the HTTP/2 `:authority` header using the\n// CallAuthority call option.\ntype AuthorityValidator interface {\n\t// ValidateAuthority checks the authority value used to override the\n\t// `:authority` header. The authority parameter is the override value\n\t// provided by the application via the CallAuthority option. This value\n\t// typically corresponds to the server hostname or endpoint the RPC is\n\t// targeting. It returns non-nil error if the validation fails.\n\tValidateAuthority(authority string) error\n}\n\n// ErrConnDispatched indicates that rawConn has been dispatched out of gRPC\n// and the caller should not close rawConn.\nvar ErrConnDispatched = errors.New(\"credentials: rawConn is dispatched out of gRPC\")\n\n// TransportCredentials defines the common interface for all the live gRPC wire\n// protocols and supported transport security protocols (e.g., TLS, SSL).\ntype TransportCredentials interface {\n\t// ClientHandshake does the authentication handshake specified by the\n\t// corresponding authentication protocol on rawConn for clients. It returns\n\t// the authenticated connection and the corresponding auth information\n\t// about the connection.  The auth information should embed CommonAuthInfo\n\t// to return additional information about the credentials. Implementations\n\t// must use the provided context to implement timely cancellation.  gRPC\n\t// will try to reconnect if the error returned is a temporary error\n\t// (io.EOF, context.DeadlineExceeded or err.Temporary() == true).  If the\n\t// returned error is a wrapper error, implementations should make sure that\n\t// the error implements Temporary() to have the correct retry behaviors.\n\t// Additionally, ClientHandshakeInfo data will be available via the context\n\t// passed to this call.\n\t//\n\t// The second argument to this method is the `:authority` header value used\n\t// while creating new streams on this connection after authentication\n\t// succeeds. Implementations must use this as the server name during the\n\t// authentication handshake.\n\t//\n\t// If the returned net.Conn is closed, it MUST close the net.Conn provided.\n\tClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error)\n\t// ServerHandshake does the authentication handshake for servers. It returns\n\t// the authenticated connection and the corresponding auth information about\n\t// the connection. The auth information should embed CommonAuthInfo to return additional information\n\t// about the credentials.\n\t//\n\t// If the returned net.Conn is closed, it MUST close the net.Conn provided.\n\tServerHandshake(net.Conn) (net.Conn, AuthInfo, error)\n\t// Info provides the ProtocolInfo of this TransportCredentials.\n\tInfo() ProtocolInfo\n\t// Clone makes a copy of this TransportCredentials.\n\tClone() TransportCredentials\n\t// OverrideServerName specifies the value used for the following:\n\t//\n\t// - verifying the hostname on the returned certificates\n\t// - as SNI in the client's handshake to support virtual hosting\n\t// - as the value for `:authority` header at stream creation time\n\t//\n\t// The provided string should be a valid `:authority` header according to\n\t// [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#section-3.2).\n\t//\n\t// Deprecated: this method is unused by gRPC.  Users should use\n\t// grpc.WithAuthority to override the authority on a channel instead of\n\t// configuring the credentials.\n\tOverrideServerName(string) error\n}\n\n// Bundle is a combination of TransportCredentials and PerRPCCredentials.\n//\n// It also contains a mode switching method, so it can be used as a combination\n// of different credential policies.\n//\n// Bundle cannot be used together with individual TransportCredentials.\n// PerRPCCredentials from Bundle will be appended to other PerRPCCredentials.\n//\n// This API is experimental.\ntype Bundle interface {\n\t// TransportCredentials returns the transport credentials from the Bundle.\n\t//\n\t// Implementations must return non-nil transport credentials. If transport\n\t// security is not needed by the Bundle, implementations may choose to\n\t// return insecure.NewCredentials().\n\tTransportCredentials() TransportCredentials\n\n\t// PerRPCCredentials returns the per-RPC credentials from the Bundle.\n\t//\n\t// May be nil if per-RPC credentials are not needed.\n\tPerRPCCredentials() PerRPCCredentials\n\n\t// NewWithMode should make a copy of Bundle, and switch mode. Modifying the\n\t// existing Bundle may cause races.\n\t//\n\t// NewWithMode returns nil if the requested mode is not supported.\n\tNewWithMode(mode string) (Bundle, error)\n}\n\n// RequestInfo contains request data attached to the context passed to GetRequestMetadata calls.\n//\n// This API is experimental.\ntype RequestInfo struct {\n\t// The method passed to Invoke or NewStream for this RPC. (For proto methods, this has the format \"/some.Service/Method\")\n\tMethod string\n\t// AuthInfo contains the information from a security handshake (TransportCredentials.ClientHandshake, TransportCredentials.ServerHandshake)\n\tAuthInfo AuthInfo\n}\n\n// requestInfoKey is a struct to be used as the key to store RequestInfo in a\n// context.\ntype requestInfoKey struct{}\n\n// RequestInfoFromContext extracts the RequestInfo from the context if it exists.\n//\n// This API is experimental.\nfunc RequestInfoFromContext(ctx context.Context) (ri RequestInfo, ok bool) {\n\tri, ok = ctx.Value(requestInfoKey{}).(RequestInfo)\n\treturn ri, ok\n}\n\n// NewContextWithRequestInfo creates a new context from ctx and attaches ri to it.\n//\n// This RequestInfo will be accessible via RequestInfoFromContext.\n//\n// Intended to be used from tests for PerRPCCredentials implementations (that\n// often need to check connection's SecurityLevel). Should not be used from\n// non-test code: the gRPC client already prepares a context with the correct\n// RequestInfo attached when calling PerRPCCredentials.GetRequestMetadata.\n//\n// This API is experimental.\nfunc NewContextWithRequestInfo(ctx context.Context, ri RequestInfo) context.Context {\n\treturn context.WithValue(ctx, requestInfoKey{}, ri)\n}\n\n// ClientHandshakeInfo holds data to be passed to ClientHandshake. This makes\n// it possible to pass arbitrary data to the handshaker from gRPC, resolver,\n// balancer etc. Individual credential implementations control the actual\n// format of the data that they are willing to receive.\n//\n// This API is experimental.\ntype ClientHandshakeInfo struct {\n\t// Attributes contains the attributes for the address. It could be provided\n\t// by the gRPC, resolver, balancer etc.\n\tAttributes *attributes.Attributes\n}\n\n// ClientHandshakeInfoFromContext returns the ClientHandshakeInfo struct stored\n// in ctx.\n//\n// This API is experimental.\nfunc ClientHandshakeInfoFromContext(ctx context.Context) ClientHandshakeInfo {\n\tchi, _ := icredentials.ClientHandshakeInfoFromContext(ctx).(ClientHandshakeInfo)\n\treturn chi\n}\n\n// CheckSecurityLevel checks if a connection's security level is greater than or equal to the specified one.\n// It returns success if 1) the condition is satisfied or 2) AuthInfo struct does not implement GetCommonAuthInfo() method\n// or 3) CommonAuthInfo.SecurityLevel has an invalid zero value. For 2) and 3), it is for the purpose of backward-compatibility.\n//\n// This API is experimental.\nfunc CheckSecurityLevel(ai AuthInfo, level SecurityLevel) error {\n\ttype internalInfo interface {\n\t\tGetCommonAuthInfo() CommonAuthInfo\n\t}\n\tif ai == nil {\n\t\treturn errors.New(\"AuthInfo is nil\")\n\t}\n\tif ci, ok := ai.(internalInfo); ok {\n\t\t// CommonAuthInfo.SecurityLevel has an invalid value.\n\t\tif ci.GetCommonAuthInfo().SecurityLevel == InvalidSecurityLevel {\n\t\t\treturn nil\n\t\t}\n\t\tif ci.GetCommonAuthInfo().SecurityLevel < level {\n\t\t\treturn fmt.Errorf(\"requires SecurityLevel %v; connection has %v\", level, ci.GetCommonAuthInfo().SecurityLevel)\n\t\t}\n\t}\n\t// The condition is satisfied or AuthInfo struct does not implement GetCommonAuthInfo() method.\n\treturn nil\n}\n\n// ChannelzSecurityInfo defines the interface that security protocols should implement\n// in order to provide security info to channelz.\n//\n// This API is experimental.\ntype ChannelzSecurityInfo interface {\n\tGetSecurityValue() ChannelzSecurityValue\n}\n\n// ChannelzSecurityValue defines the interface that GetSecurityValue() return value\n// should satisfy. This interface should only be satisfied by *TLSChannelzSecurityValue\n// and *OtherChannelzSecurityValue.\n//\n// This API is experimental.\ntype ChannelzSecurityValue interface {\n\tisChannelzSecurityValue()\n}\n\n// OtherChannelzSecurityValue defines the struct that non-TLS protocol should return\n// from GetSecurityValue(), which contains protocol specific security info. Note\n// the Value field will be sent to users of channelz requesting channel info, and\n// thus sensitive info should better be avoided.\n//\n// This API is experimental.\ntype OtherChannelzSecurityValue struct {\n\tChannelzSecurityValue\n\tName  string\n\tValue proto.Message\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/credentials/insecure/insecure.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package insecure provides an implementation of the\n// credentials.TransportCredentials interface which disables transport security.\npackage insecure\n\nimport (\n\t\"context\"\n\t\"net\"\n\n\t\"google.golang.org/grpc/credentials\"\n)\n\n// NewCredentials returns a credentials which disables transport security.\n//\n// Note that using this credentials with per-RPC credentials which require\n// transport security is incompatible and will cause RPCs to fail.\nfunc NewCredentials() credentials.TransportCredentials {\n\treturn insecureTC{}\n}\n\n// insecureTC implements the insecure transport credentials. The handshake\n// methods simply return the passed in net.Conn and set the security level to\n// NoSecurity.\ntype insecureTC struct{}\n\nfunc (insecureTC) ClientHandshake(_ context.Context, _ string, conn net.Conn) (net.Conn, credentials.AuthInfo, error) {\n\treturn conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil\n}\n\nfunc (insecureTC) ServerHandshake(conn net.Conn) (net.Conn, credentials.AuthInfo, error) {\n\treturn conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil\n}\n\nfunc (insecureTC) Info() credentials.ProtocolInfo {\n\treturn credentials.ProtocolInfo{SecurityProtocol: \"insecure\"}\n}\n\nfunc (insecureTC) Clone() credentials.TransportCredentials {\n\treturn insecureTC{}\n}\n\nfunc (insecureTC) OverrideServerName(string) error {\n\treturn nil\n}\n\n// info contains the auth information for an insecure connection.\n// It implements the AuthInfo interface.\ntype info struct {\n\tcredentials.CommonAuthInfo\n}\n\n// AuthType returns the type of info as a string.\nfunc (info) AuthType() string {\n\treturn \"insecure\"\n}\n\n// ValidateAuthority allows any value to be overridden for the :authority\n// header.\nfunc (info) ValidateAuthority(string) error {\n\treturn nil\n}\n\n// insecureBundle implements an insecure bundle.\n// An insecure bundle provides a thin wrapper around insecureTC to support\n// the credentials.Bundle interface.\ntype insecureBundle struct{}\n\n// NewBundle returns a bundle with disabled transport security and no per rpc credential.\nfunc NewBundle() credentials.Bundle {\n\treturn insecureBundle{}\n}\n\n// NewWithMode returns a new insecure Bundle. The mode is ignored.\nfunc (insecureBundle) NewWithMode(string) (credentials.Bundle, error) {\n\treturn insecureBundle{}, nil\n}\n\n// PerRPCCredentials returns an nil implementation as insecure\n// bundle does not support a per rpc credential.\nfunc (insecureBundle) PerRPCCredentials() credentials.PerRPCCredentials {\n\treturn nil\n}\n\n// TransportCredentials returns the underlying insecure transport credential.\nfunc (insecureBundle) TransportCredentials() credentials.TransportCredentials {\n\treturn NewCredentials()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/credentials/tls.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage credentials\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"os\"\n\n\t\"google.golang.org/grpc/grpclog\"\n\tcredinternal \"google.golang.org/grpc/internal/credentials\"\n\t\"google.golang.org/grpc/internal/envconfig\"\n)\n\nconst alpnFailureHelpMessage = \"If you upgraded from a grpc-go version earlier than 1.67, your TLS connections may have stopped working due to ALPN enforcement. For more details, see: https://github.com/grpc/grpc-go/issues/434\"\n\nvar logger = grpclog.Component(\"credentials\")\n\n// TLSInfo contains the auth information for a TLS authenticated connection.\n// It implements the AuthInfo interface.\ntype TLSInfo struct {\n\tState tls.ConnectionState\n\tCommonAuthInfo\n\t// This API is experimental.\n\tSPIFFEID *url.URL\n}\n\n// AuthType returns the type of TLSInfo as a string.\nfunc (t TLSInfo) AuthType() string {\n\treturn \"tls\"\n}\n\n// ValidateAuthority validates the provided authority being used to override the\n// :authority header by verifying it against the peer certificates. It returns a\n// non-nil error if the validation fails.\nfunc (t TLSInfo) ValidateAuthority(authority string) error {\n\tvar errs []error\n\thost, _, err := net.SplitHostPort(authority)\n\tif err != nil {\n\t\thost = authority\n\t}\n\tfor _, cert := range t.State.PeerCertificates {\n\t\tvar err error\n\t\tif err = cert.VerifyHostname(host); err == nil {\n\t\t\treturn nil\n\t\t}\n\t\terrs = append(errs, err)\n\t}\n\treturn fmt.Errorf(\"credentials: invalid authority %q: %v\", authority, errors.Join(errs...))\n}\n\n// cipherSuiteLookup returns the string version of a TLS cipher suite ID.\nfunc cipherSuiteLookup(cipherSuiteID uint16) string {\n\tfor _, s := range tls.CipherSuites() {\n\t\tif s.ID == cipherSuiteID {\n\t\t\treturn s.Name\n\t\t}\n\t}\n\tfor _, s := range tls.InsecureCipherSuites() {\n\t\tif s.ID == cipherSuiteID {\n\t\t\treturn s.Name\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"unknown ID: %v\", cipherSuiteID)\n}\n\n// GetSecurityValue returns security info requested by channelz.\nfunc (t TLSInfo) GetSecurityValue() ChannelzSecurityValue {\n\tv := &TLSChannelzSecurityValue{\n\t\tStandardName: cipherSuiteLookup(t.State.CipherSuite),\n\t}\n\t// Currently there's no way to get LocalCertificate info from tls package.\n\tif len(t.State.PeerCertificates) > 0 {\n\t\tv.RemoteCertificate = t.State.PeerCertificates[0].Raw\n\t}\n\treturn v\n}\n\n// tlsCreds is the credentials required for authenticating a connection using TLS.\ntype tlsCreds struct {\n\t// TLS configuration\n\tconfig *tls.Config\n}\n\nfunc (c tlsCreds) Info() ProtocolInfo {\n\treturn ProtocolInfo{\n\t\tSecurityProtocol: \"tls\",\n\t\tSecurityVersion:  \"1.2\",\n\t\tServerName:       c.config.ServerName,\n\t}\n}\n\nfunc (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawConn net.Conn) (_ net.Conn, _ AuthInfo, err error) {\n\t// use local cfg to avoid clobbering ServerName if using multiple endpoints\n\tcfg := credinternal.CloneTLSConfig(c.config)\n\n\tserverName, _, err := net.SplitHostPort(authority)\n\tif err != nil {\n\t\t// If the authority had no host port or if the authority cannot be parsed, use it as-is.\n\t\tserverName = authority\n\t}\n\tcfg.ServerName = serverName\n\n\tconn := tls.Client(rawConn, cfg)\n\terrChannel := make(chan error, 1)\n\tgo func() {\n\t\terrChannel <- conn.Handshake()\n\t\tclose(errChannel)\n\t}()\n\tselect {\n\tcase err := <-errChannel:\n\t\tif err != nil {\n\t\t\tconn.Close()\n\t\t\treturn nil, nil, err\n\t\t}\n\tcase <-ctx.Done():\n\t\tconn.Close()\n\t\treturn nil, nil, ctx.Err()\n\t}\n\n\t// The negotiated protocol can be either of the following:\n\t// 1. h2: When the server supports ALPN. Only HTTP/2 can be negotiated since\n\t//    it is the only protocol advertised by the client during the handshake.\n\t//    The tls library ensures that the server chooses a protocol advertised\n\t//    by the client.\n\t// 2. \"\" (empty string): If the server doesn't support ALPN. ALPN is a requirement\n\t//    for using HTTP/2 over TLS. We can terminate the connection immediately.\n\tnp := conn.ConnectionState().NegotiatedProtocol\n\tif np == \"\" {\n\t\tif envconfig.EnforceALPNEnabled {\n\t\t\tconn.Close()\n\t\t\treturn nil, nil, fmt.Errorf(\"credentials: cannot check peer: missing selected ALPN property. %s\", alpnFailureHelpMessage)\n\t\t}\n\t\tlogger.Warningf(\"Allowing TLS connection to server %q with ALPN disabled. TLS connections to servers with ALPN disabled will be disallowed in future grpc-go releases\", cfg.ServerName)\n\t}\n\ttlsInfo := TLSInfo{\n\t\tState: conn.ConnectionState(),\n\t\tCommonAuthInfo: CommonAuthInfo{\n\t\t\tSecurityLevel: PrivacyAndIntegrity,\n\t\t},\n\t}\n\tid := credinternal.SPIFFEIDFromState(conn.ConnectionState())\n\tif id != nil {\n\t\ttlsInfo.SPIFFEID = id\n\t}\n\treturn credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil\n}\n\nfunc (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) {\n\tconn := tls.Server(rawConn, c.config)\n\tif err := conn.Handshake(); err != nil {\n\t\tconn.Close()\n\t\treturn nil, nil, err\n\t}\n\tcs := conn.ConnectionState()\n\t// The negotiated application protocol can be empty only if the client doesn't\n\t// support ALPN. In such cases, we can close the connection since ALPN is required\n\t// for using HTTP/2 over TLS.\n\tif cs.NegotiatedProtocol == \"\" {\n\t\tif envconfig.EnforceALPNEnabled {\n\t\t\tconn.Close()\n\t\t\treturn nil, nil, fmt.Errorf(\"credentials: cannot check peer: missing selected ALPN property. %s\", alpnFailureHelpMessage)\n\t\t} else if logger.V(2) {\n\t\t\tlogger.Info(\"Allowing TLS connection from client with ALPN disabled. TLS connections with ALPN disabled will be disallowed in future grpc-go releases\")\n\t\t}\n\t}\n\ttlsInfo := TLSInfo{\n\t\tState: cs,\n\t\tCommonAuthInfo: CommonAuthInfo{\n\t\t\tSecurityLevel: PrivacyAndIntegrity,\n\t\t},\n\t}\n\tid := credinternal.SPIFFEIDFromState(conn.ConnectionState())\n\tif id != nil {\n\t\ttlsInfo.SPIFFEID = id\n\t}\n\treturn credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil\n}\n\nfunc (c *tlsCreds) Clone() TransportCredentials {\n\treturn NewTLS(c.config)\n}\n\nfunc (c *tlsCreds) OverrideServerName(serverNameOverride string) error {\n\tc.config.ServerName = serverNameOverride\n\treturn nil\n}\n\n// The following cipher suites are forbidden for use with HTTP/2 by\n// https://datatracker.ietf.org/doc/html/rfc7540#appendix-A\nvar tls12ForbiddenCipherSuites = map[uint16]struct{}{\n\ttls.TLS_RSA_WITH_AES_128_CBC_SHA:         {},\n\ttls.TLS_RSA_WITH_AES_256_CBC_SHA:         {},\n\ttls.TLS_RSA_WITH_AES_128_GCM_SHA256:      {},\n\ttls.TLS_RSA_WITH_AES_256_GCM_SHA384:      {},\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: {},\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: {},\n\ttls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:   {},\n\ttls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:   {},\n}\n\n// NewTLS uses c to construct a TransportCredentials based on TLS.\nfunc NewTLS(c *tls.Config) TransportCredentials {\n\tconfig := applyDefaults(c)\n\tif config.GetConfigForClient != nil {\n\t\toldFn := config.GetConfigForClient\n\t\tconfig.GetConfigForClient = func(hello *tls.ClientHelloInfo) (*tls.Config, error) {\n\t\t\tcfgForClient, err := oldFn(hello)\n\t\t\tif err != nil || cfgForClient == nil {\n\t\t\t\treturn cfgForClient, err\n\t\t\t}\n\t\t\treturn applyDefaults(cfgForClient), nil\n\t\t}\n\t}\n\treturn &tlsCreds{config: config}\n}\n\nfunc applyDefaults(c *tls.Config) *tls.Config {\n\tconfig := credinternal.CloneTLSConfig(c)\n\tconfig.NextProtos = credinternal.AppendH2ToNextProtos(config.NextProtos)\n\t// If the user did not configure a MinVersion and did not configure a\n\t// MaxVersion < 1.2, use MinVersion=1.2, which is required by\n\t// https://datatracker.ietf.org/doc/html/rfc7540#section-9.2\n\tif config.MinVersion == 0 && (config.MaxVersion == 0 || config.MaxVersion >= tls.VersionTLS12) {\n\t\tconfig.MinVersion = tls.VersionTLS12\n\t}\n\t// If the user did not configure CipherSuites, use all \"secure\" cipher\n\t// suites reported by the TLS package, but remove some explicitly forbidden\n\t// by https://datatracker.ietf.org/doc/html/rfc7540#appendix-A\n\tif config.CipherSuites == nil {\n\t\tfor _, cs := range tls.CipherSuites() {\n\t\t\tif _, ok := tls12ForbiddenCipherSuites[cs.ID]; !ok {\n\t\t\t\tconfig.CipherSuites = append(config.CipherSuites, cs.ID)\n\t\t\t}\n\t\t}\n\t}\n\treturn config\n}\n\n// NewClientTLSFromCert constructs TLS credentials from the provided root\n// certificate authority certificate(s) to validate server connections. If\n// certificates to establish the identity of the client need to be included in\n// the credentials (eg: for mTLS), use NewTLS instead, where a complete\n// tls.Config can be specified.\n//\n// serverNameOverride is for testing only. If set to a non empty string, it will\n// override the virtual host name of authority (e.g. :authority header field) in\n// requests.  Users should use grpc.WithAuthority passed to grpc.NewClient to\n// override the authority of the client instead.\nfunc NewClientTLSFromCert(cp *x509.CertPool, serverNameOverride string) TransportCredentials {\n\treturn NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp})\n}\n\n// NewClientTLSFromFile constructs TLS credentials from the provided root\n// certificate authority certificate file(s) to validate server connections. If\n// certificates to establish the identity of the client need to be included in\n// the credentials (eg: for mTLS), use NewTLS instead, where a complete\n// tls.Config can be specified.\n//\n// serverNameOverride is for testing only. If set to a non empty string, it will\n// override the virtual host name of authority (e.g. :authority header field) in\n// requests.  Users should use grpc.WithAuthority passed to grpc.NewClient to\n// override the authority of the client instead.\nfunc NewClientTLSFromFile(certFile, serverNameOverride string) (TransportCredentials, error) {\n\tb, err := os.ReadFile(certFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcp := x509.NewCertPool()\n\tif !cp.AppendCertsFromPEM(b) {\n\t\treturn nil, fmt.Errorf(\"credentials: failed to append certificates\")\n\t}\n\treturn NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}), nil\n}\n\n// NewServerTLSFromCert constructs TLS credentials from the input certificate for server.\nfunc NewServerTLSFromCert(cert *tls.Certificate) TransportCredentials {\n\treturn NewTLS(&tls.Config{Certificates: []tls.Certificate{*cert}})\n}\n\n// NewServerTLSFromFile constructs TLS credentials from the input certificate file and key\n// file for server.\nfunc NewServerTLSFromFile(certFile, keyFile string) (TransportCredentials, error) {\n\tcert, err := tls.LoadX509KeyPair(certFile, keyFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}}), nil\n}\n\n// TLSChannelzSecurityValue defines the struct that TLS protocol should return\n// from GetSecurityValue(), containing security info like cipher and certificate used.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype TLSChannelzSecurityValue struct {\n\tChannelzSecurityValue\n\tStandardName      string\n\tLocalCertificate  []byte\n\tRemoteCertificate []byte\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/dialoptions.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/backoff\"\n\t\"google.golang.org/grpc/channelz\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/credentials/insecure\"\n\t\"google.golang.org/grpc/internal\"\n\tinternalbackoff \"google.golang.org/grpc/internal/backoff\"\n\t\"google.golang.org/grpc/internal/binarylog\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/stats\"\n)\n\nconst (\n\t// https://github.com/grpc/proposal/blob/master/A6-client-retries.md#limits-on-retries-and-hedges\n\tdefaultMaxCallAttempts = 5\n)\n\nfunc init() {\n\tinternal.AddGlobalDialOptions = func(opt ...DialOption) {\n\t\tglobalDialOptions = append(globalDialOptions, opt...)\n\t}\n\tinternal.ClearGlobalDialOptions = func() {\n\t\tglobalDialOptions = nil\n\t}\n\tinternal.AddGlobalPerTargetDialOptions = func(opt any) {\n\t\tif ptdo, ok := opt.(perTargetDialOption); ok {\n\t\t\tglobalPerTargetDialOptions = append(globalPerTargetDialOptions, ptdo)\n\t\t}\n\t}\n\tinternal.ClearGlobalPerTargetDialOptions = func() {\n\t\tglobalPerTargetDialOptions = nil\n\t}\n\tinternal.WithBinaryLogger = withBinaryLogger\n\tinternal.JoinDialOptions = newJoinDialOption\n\tinternal.DisableGlobalDialOptions = newDisableGlobalDialOptions\n\tinternal.WithBufferPool = withBufferPool\n}\n\n// dialOptions configure a Dial call. dialOptions are set by the DialOption\n// values passed to Dial.\ntype dialOptions struct {\n\tunaryInt  UnaryClientInterceptor\n\tstreamInt StreamClientInterceptor\n\n\tchainUnaryInts  []UnaryClientInterceptor\n\tchainStreamInts []StreamClientInterceptor\n\n\tcompressorV0                Compressor\n\tdc                          Decompressor\n\tbs                          internalbackoff.Strategy\n\tblock                       bool\n\treturnLastError             bool\n\ttimeout                     time.Duration\n\tauthority                   string\n\tbinaryLogger                binarylog.Logger\n\tcopts                       transport.ConnectOptions\n\tcallOptions                 []CallOption\n\tchannelzParent              channelz.Identifier\n\tdisableServiceConfig        bool\n\tdisableRetry                bool\n\tdisableHealthCheck          bool\n\tminConnectTimeout           func() time.Duration\n\tdefaultServiceConfig        *ServiceConfig // defaultServiceConfig is parsed from defaultServiceConfigRawJSON.\n\tdefaultServiceConfigRawJSON *string\n\tresolvers                   []resolver.Builder\n\tidleTimeout                 time.Duration\n\tdefaultScheme               string\n\tmaxCallAttempts             int\n\tenableLocalDNSResolution    bool // Specifies if target hostnames should be resolved when proxying is enabled.\n\tuseProxy                    bool // Specifies if a server should be connected via proxy.\n}\n\n// DialOption configures how we set up the connection.\ntype DialOption interface {\n\tapply(*dialOptions)\n}\n\nvar globalDialOptions []DialOption\n\n// perTargetDialOption takes a parsed target and returns a dial option to apply.\n//\n// This gets called after NewClient() parses the target, and allows per target\n// configuration set through a returned DialOption. The DialOption will not take\n// effect if specifies a resolver builder, as that Dial Option is factored in\n// while parsing target.\ntype perTargetDialOption interface {\n\t// DialOption returns a Dial Option to apply.\n\tDialOptionForTarget(parsedTarget url.URL) DialOption\n}\n\nvar globalPerTargetDialOptions []perTargetDialOption\n\n// EmptyDialOption does not alter the dial configuration. It can be embedded in\n// another structure to build custom dial options.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype EmptyDialOption struct{}\n\nfunc (EmptyDialOption) apply(*dialOptions) {}\n\ntype disableGlobalDialOptions struct{}\n\nfunc (disableGlobalDialOptions) apply(*dialOptions) {}\n\n// newDisableGlobalDialOptions returns a DialOption that prevents the ClientConn\n// from applying the global DialOptions (set via AddGlobalDialOptions).\nfunc newDisableGlobalDialOptions() DialOption {\n\treturn &disableGlobalDialOptions{}\n}\n\n// funcDialOption wraps a function that modifies dialOptions into an\n// implementation of the DialOption interface.\ntype funcDialOption struct {\n\tf func(*dialOptions)\n}\n\nfunc (fdo *funcDialOption) apply(do *dialOptions) {\n\tfdo.f(do)\n}\n\nfunc newFuncDialOption(f func(*dialOptions)) *funcDialOption {\n\treturn &funcDialOption{\n\t\tf: f,\n\t}\n}\n\ntype joinDialOption struct {\n\topts []DialOption\n}\n\nfunc (jdo *joinDialOption) apply(do *dialOptions) {\n\tfor _, opt := range jdo.opts {\n\t\topt.apply(do)\n\t}\n}\n\nfunc newJoinDialOption(opts ...DialOption) DialOption {\n\treturn &joinDialOption{opts: opts}\n}\n\n// WithSharedWriteBuffer allows reusing per-connection transport write buffer.\n// If this option is set to true every connection will release the buffer after\n// flushing the data on the wire.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithSharedWriteBuffer(val bool) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.SharedWriteBuffer = val\n\t})\n}\n\n// WithWriteBufferSize determines how much data can be batched before doing a\n// write on the wire. The default value for this buffer is 32KB.\n//\n// Zero or negative values will disable the write buffer such that each write\n// will be on underlying connection. Note: A Send call may not directly\n// translate to a write.\nfunc WithWriteBufferSize(s int) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.WriteBufferSize = s\n\t})\n}\n\n// WithReadBufferSize lets you set the size of read buffer, this determines how\n// much data can be read at most for each read syscall.\n//\n// The default value for this buffer is 32KB. Zero or negative values will\n// disable read buffer for a connection so data framer can access the\n// underlying conn directly.\nfunc WithReadBufferSize(s int) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.ReadBufferSize = s\n\t})\n}\n\n// WithInitialWindowSize returns a DialOption which sets the value for initial\n// window size on a stream. The lower bound for window size is 64K and any value\n// smaller than that will be ignored.\nfunc WithInitialWindowSize(s int32) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.InitialWindowSize = s\n\t\to.copts.StaticWindowSize = true\n\t})\n}\n\n// WithInitialConnWindowSize returns a DialOption which sets the value for\n// initial window size on a connection. The lower bound for window size is 64K\n// and any value smaller than that will be ignored.\nfunc WithInitialConnWindowSize(s int32) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.InitialConnWindowSize = s\n\t\to.copts.StaticWindowSize = true\n\t})\n}\n\n// WithStaticStreamWindowSize returns a DialOption which sets the initial\n// stream window size to the value provided and disables dynamic flow control.\nfunc WithStaticStreamWindowSize(s int32) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.InitialWindowSize = s\n\t\to.copts.StaticWindowSize = true\n\t})\n}\n\n// WithStaticConnWindowSize returns a DialOption which sets the initial\n// connection window size to the value provided and disables dynamic flow\n// control.\nfunc WithStaticConnWindowSize(s int32) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.InitialConnWindowSize = s\n\t\to.copts.StaticWindowSize = true\n\t})\n}\n\n// WithMaxMsgSize returns a DialOption which sets the maximum message size the\n// client can receive.\n//\n// Deprecated: use WithDefaultCallOptions(MaxCallRecvMsgSize(s)) instead.  Will\n// be supported throughout 1.x.\nfunc WithMaxMsgSize(s int) DialOption {\n\treturn WithDefaultCallOptions(MaxCallRecvMsgSize(s))\n}\n\n// WithDefaultCallOptions returns a DialOption which sets the default\n// CallOptions for calls over the connection.\nfunc WithDefaultCallOptions(cos ...CallOption) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.callOptions = append(o.callOptions, cos...)\n\t})\n}\n\n// WithCodec returns a DialOption which sets a codec for message marshaling and\n// unmarshaling.\n//\n// Deprecated: use WithDefaultCallOptions(ForceCodec(_)) instead.  Will be\n// supported throughout 1.x.\nfunc WithCodec(c Codec) DialOption {\n\treturn WithDefaultCallOptions(CallCustomCodec(c))\n}\n\n// WithCompressor returns a DialOption which sets a Compressor to use for\n// message compression. It has lower priority than the compressor set by the\n// UseCompressor CallOption.\n//\n// Deprecated: use UseCompressor instead.  Will be supported throughout 1.x.\nfunc WithCompressor(cp Compressor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.compressorV0 = cp\n\t})\n}\n\n// WithDecompressor returns a DialOption which sets a Decompressor to use for\n// incoming message decompression.  If incoming response messages are encoded\n// using the decompressor's Type(), it will be used.  Otherwise, the message\n// encoding will be used to look up the compressor registered via\n// encoding.RegisterCompressor, which will then be used to decompress the\n// message.  If no compressor is registered for the encoding, an Unimplemented\n// status error will be returned.\n//\n// Deprecated: use encoding.RegisterCompressor instead.  Will be supported\n// throughout 1.x.\nfunc WithDecompressor(dc Decompressor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.dc = dc\n\t})\n}\n\n// WithConnectParams configures the ClientConn to use the provided ConnectParams\n// for creating and maintaining connections to servers.\n//\n// The backoff configuration specified as part of the ConnectParams overrides\n// all defaults specified in\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. Consider\n// using the backoff.DefaultConfig as a base, in cases where you want to\n// override only a subset of the backoff configuration.\nfunc WithConnectParams(p ConnectParams) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.bs = internalbackoff.Exponential{Config: p.Backoff}\n\t\to.minConnectTimeout = func() time.Duration {\n\t\t\treturn p.MinConnectTimeout\n\t\t}\n\t})\n}\n\n// WithBackoffMaxDelay configures the dialer to use the provided maximum delay\n// when backing off after failed connection attempts.\n//\n// Deprecated: use WithConnectParams instead. Will be supported throughout 1.x.\nfunc WithBackoffMaxDelay(md time.Duration) DialOption {\n\treturn WithBackoffConfig(BackoffConfig{MaxDelay: md})\n}\n\n// WithBackoffConfig configures the dialer to use the provided backoff\n// parameters after connection failures.\n//\n// Deprecated: use WithConnectParams instead. Will be supported throughout 1.x.\nfunc WithBackoffConfig(b BackoffConfig) DialOption {\n\tbc := backoff.DefaultConfig\n\tbc.MaxDelay = b.MaxDelay\n\treturn withBackoff(internalbackoff.Exponential{Config: bc})\n}\n\n// withBackoff sets the backoff strategy used for connectRetryNum after a failed\n// connection attempt.\n//\n// This can be exported if arbitrary backoff strategies are allowed by gRPC.\nfunc withBackoff(bs internalbackoff.Strategy) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.bs = bs\n\t})\n}\n\n// WithBlock returns a DialOption which makes callers of Dial block until the\n// underlying connection is up. Without this, Dial returns immediately and\n// connecting the server happens in background.\n//\n// Use of this feature is not recommended.  For more information, please see:\n// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md\n//\n// Deprecated: this DialOption is not supported by NewClient.\n// Will be supported throughout 1.x.\nfunc WithBlock() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.block = true\n\t})\n}\n\n// WithReturnConnectionError returns a DialOption which makes the client connection\n// return a string containing both the last connection error that occurred and\n// the context.DeadlineExceeded error.\n// Implies WithBlock()\n//\n// Use of this feature is not recommended.  For more information, please see:\n// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md\n//\n// Deprecated: this DialOption is not supported by NewClient.\n// Will be supported throughout 1.x.\nfunc WithReturnConnectionError() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.block = true\n\t\to.returnLastError = true\n\t})\n}\n\n// WithInsecure returns a DialOption which disables transport security for this\n// ClientConn. Under the hood, it uses insecure.NewCredentials().\n//\n// Note that using this DialOption with per-RPC credentials (through\n// WithCredentialsBundle or WithPerRPCCredentials) which require transport\n// security is incompatible and will cause RPCs to fail.\n//\n// Deprecated: use WithTransportCredentials and insecure.NewCredentials()\n// instead. Will be supported throughout 1.x.\nfunc WithInsecure() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.TransportCredentials = insecure.NewCredentials()\n\t})\n}\n\n// WithNoProxy returns a DialOption which disables the use of proxies for this\n// ClientConn. This is ignored if WithDialer or WithContextDialer are used.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithNoProxy() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.useProxy = false\n\t})\n}\n\n// WithLocalDNSResolution forces local DNS name resolution even when a proxy is\n// specified in the environment.  By default, the server name is provided\n// directly to the proxy as part of the CONNECT handshake. This is ignored if\n// WithNoProxy is used.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithLocalDNSResolution() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.enableLocalDNSResolution = true\n\t})\n}\n\n// WithTransportCredentials returns a DialOption which configures a connection\n// level security credentials (e.g., TLS/SSL). This should not be used together\n// with WithCredentialsBundle.\nfunc WithTransportCredentials(creds credentials.TransportCredentials) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.TransportCredentials = creds\n\t})\n}\n\n// WithPerRPCCredentials returns a DialOption which sets credentials and places\n// auth state on each outbound RPC.\nfunc WithPerRPCCredentials(creds credentials.PerRPCCredentials) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.PerRPCCredentials = append(o.copts.PerRPCCredentials, creds)\n\t})\n}\n\n// WithCredentialsBundle returns a DialOption to set a credentials bundle for\n// the ClientConn.WithCreds. This should not be used together with\n// WithTransportCredentials.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithCredentialsBundle(b credentials.Bundle) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.CredsBundle = b\n\t})\n}\n\n// WithTimeout returns a DialOption that configures a timeout for dialing a\n// ClientConn initially. This is valid if and only if WithBlock() is present.\n//\n// Deprecated: this DialOption is not supported by NewClient.\n// Will be supported throughout 1.x.\nfunc WithTimeout(d time.Duration) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.timeout = d\n\t})\n}\n\n// WithContextDialer returns a DialOption that sets a dialer to create\n// connections. If FailOnNonTempDialError() is set to true, and an error is\n// returned by f, gRPC checks the error's Temporary() method to decide if it\n// should try to reconnect to the network address.\n//\n// Note that gRPC by default performs name resolution on the target passed to\n// NewClient. To bypass name resolution and cause the target string to be\n// passed directly to the dialer here instead, use the \"passthrough\" resolver\n// by specifying it in the target string, e.g. \"passthrough:target\".\n//\n// Note: All supported releases of Go (as of December 2023) override the OS\n// defaults for TCP keepalive time and interval to 15s. To enable TCP keepalive\n// with OS defaults for keepalive time and interval, use a net.Dialer that sets\n// the KeepAlive field to a negative value, and sets the SO_KEEPALIVE socket\n// option to true from the Control field. For a concrete example of how to do\n// this, see internal.NetDialerWithTCPKeepalive().\n//\n// For more information, please see [issue 23459] in the Go GitHub repo.\n//\n// [issue 23459]: https://github.com/golang/go/issues/23459\nfunc WithContextDialer(f func(context.Context, string) (net.Conn, error)) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.Dialer = f\n\t})\n}\n\n// WithDialer returns a DialOption that specifies a function to use for dialing\n// network addresses. If FailOnNonTempDialError() is set to true, and an error\n// is returned by f, gRPC checks the error's Temporary() method to decide if it\n// should try to reconnect to the network address.\n//\n// Deprecated: use WithContextDialer instead.  Will be supported throughout\n// 1.x.\nfunc WithDialer(f func(string, time.Duration) (net.Conn, error)) DialOption {\n\treturn WithContextDialer(\n\t\tfunc(ctx context.Context, addr string) (net.Conn, error) {\n\t\t\tif deadline, ok := ctx.Deadline(); ok {\n\t\t\t\treturn f(addr, time.Until(deadline))\n\t\t\t}\n\t\t\treturn f(addr, 0)\n\t\t})\n}\n\n// WithStatsHandler returns a DialOption that specifies the stats handler for\n// all the RPCs and underlying network connections in this ClientConn.\nfunc WithStatsHandler(h stats.Handler) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\tif h == nil {\n\t\t\tlogger.Error(\"ignoring nil parameter in grpc.WithStatsHandler ClientOption\")\n\t\t\t// Do not allow a nil stats handler, which would otherwise cause\n\t\t\t// panics.\n\t\t\treturn\n\t\t}\n\t\to.copts.StatsHandlers = append(o.copts.StatsHandlers, h)\n\t})\n}\n\n// withBinaryLogger returns a DialOption that specifies the binary logger for\n// this ClientConn.\nfunc withBinaryLogger(bl binarylog.Logger) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.binaryLogger = bl\n\t})\n}\n\n// FailOnNonTempDialError returns a DialOption that specifies if gRPC fails on\n// non-temporary dial errors. If f is true, and dialer returns a non-temporary\n// error, gRPC will fail the connection to the network address and won't try to\n// reconnect. The default value of FailOnNonTempDialError is false.\n//\n// FailOnNonTempDialError only affects the initial dial, and does not do\n// anything useful unless you are also using WithBlock().\n//\n// Use of this feature is not recommended.  For more information, please see:\n// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md\n//\n// Deprecated: this DialOption is not supported by NewClient.\n// This API may be changed or removed in a\n// later release.\nfunc FailOnNonTempDialError(f bool) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.FailOnNonTempDialError = f\n\t})\n}\n\n// WithUserAgent returns a DialOption that specifies a user agent string for all\n// the RPCs.\nfunc WithUserAgent(s string) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.UserAgent = s + \" \" + grpcUA\n\t})\n}\n\n// WithKeepaliveParams returns a DialOption that specifies keepalive parameters\n// for the client transport.\n//\n// Keepalive is disabled by default.\nfunc WithKeepaliveParams(kp keepalive.ClientParameters) DialOption {\n\tif kp.Time < internal.KeepaliveMinPingTime {\n\t\tlogger.Warningf(\"Adjusting keepalive ping interval to minimum period of %v\", internal.KeepaliveMinPingTime)\n\t\tkp.Time = internal.KeepaliveMinPingTime\n\t}\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.KeepaliveParams = kp\n\t})\n}\n\n// WithUnaryInterceptor returns a DialOption that specifies the interceptor for\n// unary RPCs.\nfunc WithUnaryInterceptor(f UnaryClientInterceptor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.unaryInt = f\n\t})\n}\n\n// WithChainUnaryInterceptor returns a DialOption that specifies the chained\n// interceptor for unary RPCs. The first interceptor will be the outer most,\n// while the last interceptor will be the inner most wrapper around the real call.\n// All interceptors added by this method will be chained, and the interceptor\n// defined by WithUnaryInterceptor will always be prepended to the chain.\nfunc WithChainUnaryInterceptor(interceptors ...UnaryClientInterceptor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.chainUnaryInts = append(o.chainUnaryInts, interceptors...)\n\t})\n}\n\n// WithStreamInterceptor returns a DialOption that specifies the interceptor for\n// streaming RPCs.\nfunc WithStreamInterceptor(f StreamClientInterceptor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.streamInt = f\n\t})\n}\n\n// WithChainStreamInterceptor returns a DialOption that specifies the chained\n// interceptor for streaming RPCs. The first interceptor will be the outer most,\n// while the last interceptor will be the inner most wrapper around the real call.\n// All interceptors added by this method will be chained, and the interceptor\n// defined by WithStreamInterceptor will always be prepended to the chain.\nfunc WithChainStreamInterceptor(interceptors ...StreamClientInterceptor) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.chainStreamInts = append(o.chainStreamInts, interceptors...)\n\t})\n}\n\n// WithAuthority returns a DialOption that specifies the value to be used as the\n// :authority pseudo-header and as the server name in authentication handshake.\n// This overrides all other ways of setting authority on the channel, but can be\n// overridden per-call by using grpc.CallAuthority.\nfunc WithAuthority(a string) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.authority = a\n\t})\n}\n\n// WithChannelzParentID returns a DialOption that specifies the channelz ID of\n// current ClientConn's parent. This function is used in nested channel creation\n// (e.g. grpclb dial).\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithChannelzParentID(c channelz.Identifier) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.channelzParent = c\n\t})\n}\n\n// WithDisableServiceConfig returns a DialOption that causes gRPC to ignore any\n// service config provided by the resolver and provides a hint to the resolver\n// to not fetch service configs.\n//\n// Note that this dial option only disables service config from resolver. If\n// default service config is provided, gRPC will use the default service config.\nfunc WithDisableServiceConfig() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.disableServiceConfig = true\n\t})\n}\n\n// WithDefaultServiceConfig returns a DialOption that configures the default\n// service config, which will be used in cases where:\n//\n// 1. WithDisableServiceConfig is also used, or\n//\n// 2. The name resolver does not provide a service config or provides an\n// invalid service config.\n//\n// The parameter s is the JSON representation of the default service config.\n// For more information about service configs, see:\n// https://github.com/grpc/grpc/blob/master/doc/service_config.md\n// For a simple example of usage, see:\n// examples/features/load_balancing/client/main.go\nfunc WithDefaultServiceConfig(s string) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.defaultServiceConfigRawJSON = &s\n\t})\n}\n\n// WithDisableRetry returns a DialOption that disables retries, even if the\n// service config enables them.  This does not impact transparent retries, which\n// will happen automatically if no data is written to the wire or if the RPC is\n// unprocessed by the remote server.\nfunc WithDisableRetry() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.disableRetry = true\n\t})\n}\n\n// MaxHeaderListSizeDialOption is a DialOption that specifies the maximum\n// (uncompressed) size of header list that the client is prepared to accept.\ntype MaxHeaderListSizeDialOption struct {\n\tMaxHeaderListSize uint32\n}\n\nfunc (o MaxHeaderListSizeDialOption) apply(do *dialOptions) {\n\tdo.copts.MaxHeaderListSize = &o.MaxHeaderListSize\n}\n\n// WithMaxHeaderListSize returns a DialOption that specifies the maximum\n// (uncompressed) size of header list that the client is prepared to accept.\nfunc WithMaxHeaderListSize(s uint32) DialOption {\n\treturn MaxHeaderListSizeDialOption{\n\t\tMaxHeaderListSize: s,\n\t}\n}\n\n// WithDisableHealthCheck disables the LB channel health checking for all\n// SubConns of this ClientConn.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithDisableHealthCheck() DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.disableHealthCheck = true\n\t})\n}\n\nfunc defaultDialOptions() dialOptions {\n\treturn dialOptions{\n\t\tcopts: transport.ConnectOptions{\n\t\t\tReadBufferSize:  defaultReadBufSize,\n\t\t\tWriteBufferSize: defaultWriteBufSize,\n\t\t\tUserAgent:       grpcUA,\n\t\t\tBufferPool:      mem.DefaultBufferPool(),\n\t\t},\n\t\tbs:                       internalbackoff.DefaultExponential,\n\t\tidleTimeout:              30 * time.Minute,\n\t\tdefaultScheme:            \"dns\",\n\t\tmaxCallAttempts:          defaultMaxCallAttempts,\n\t\tuseProxy:                 true,\n\t\tenableLocalDNSResolution: false,\n\t}\n}\n\n// withMinConnectDeadline specifies the function that clientconn uses to\n// get minConnectDeadline. This can be used to make connection attempts happen\n// faster/slower.\n//\n// For testing purpose only.\nfunc withMinConnectDeadline(f func() time.Duration) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.minConnectTimeout = f\n\t})\n}\n\n// withDefaultScheme is used to allow Dial to use \"passthrough\" as the default\n// name resolver, while NewClient uses \"dns\" otherwise.\nfunc withDefaultScheme(s string) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.defaultScheme = s\n\t})\n}\n\n// WithResolvers allows a list of resolver implementations to be registered\n// locally with the ClientConn without needing to be globally registered via\n// resolver.Register.  They will be matched against the scheme used for the\n// current Dial only, and will take precedence over the global registry.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithResolvers(rs ...resolver.Builder) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.resolvers = append(o.resolvers, rs...)\n\t})\n}\n\n// WithIdleTimeout returns a DialOption that configures an idle timeout for the\n// channel. If the channel is idle for the configured timeout, i.e there are no\n// ongoing RPCs and no new RPCs are initiated, the channel will enter idle mode\n// and as a result the name resolver and load balancer will be shut down. The\n// channel will exit idle mode when the Connect() method is called or when an\n// RPC is initiated.\n//\n// A default timeout of 30 minutes will be used if this dial option is not set\n// at dial time and idleness can be disabled by passing a timeout of zero.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WithIdleTimeout(d time.Duration) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.idleTimeout = d\n\t})\n}\n\n// WithMaxCallAttempts returns a DialOption that configures the maximum number\n// of attempts per call (including retries and hedging) using the channel.\n// Service owners may specify a higher value for these parameters, but higher\n// values will be treated as equal to the maximum value by the client\n// implementation. This mitigates security concerns related to the service\n// config being transferred to the client via DNS.\n//\n// A value of 5 will be used if this dial option is not set or n < 2.\nfunc WithMaxCallAttempts(n int) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\tif n < 2 {\n\t\t\tn = defaultMaxCallAttempts\n\t\t}\n\t\to.maxCallAttempts = n\n\t})\n}\n\nfunc withBufferPool(bufferPool mem.BufferPool) DialOption {\n\treturn newFuncDialOption(func(o *dialOptions) {\n\t\to.copts.BufferPool = bufferPool\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/doc.go",
    "content": "/*\n *\n * Copyright 2015 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n//go:generate ./scripts/regenerate.sh\n\n/*\nPackage grpc implements an RPC system called gRPC.\n\nSee grpc.io for more information about gRPC.\n*/\npackage grpc // import \"google.golang.org/grpc\"\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/encoding/encoding.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package encoding defines the interface for the compressor and codec, and\n// functions to register and retrieve compressors and codecs.\n//\n// # Experimental\n//\n// Notice: This package is EXPERIMENTAL and may be changed or removed in a\n// later release.\npackage encoding\n\nimport (\n\t\"io\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/encoding/internal\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n)\n\n// Identity specifies the optional encoding for uncompressed streams.\n// It is intended for grpc internal use only.\nconst Identity = \"identity\"\n\nfunc init() {\n\tinternal.RegisterCompressorForTesting = func(c Compressor) func() {\n\t\tname := c.Name()\n\t\tcurCompressor, found := registeredCompressor[name]\n\t\tRegisterCompressor(c)\n\t\treturn func() {\n\t\t\tif found {\n\t\t\t\tregisteredCompressor[name] = curCompressor\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdelete(registeredCompressor, name)\n\t\t\tgrpcutil.RegisteredCompressorNames = slices.DeleteFunc(grpcutil.RegisteredCompressorNames, func(s string) bool {\n\t\t\t\treturn s == name\n\t\t\t})\n\t\t}\n\t}\n}\n\n// Compressor is used for compressing and decompressing when sending or\n// receiving messages.\ntype Compressor interface {\n\t// Compress writes the data written to wc to w after compressing it.  If an\n\t// error occurs while initializing the compressor, that error is returned\n\t// instead.\n\tCompress(w io.Writer) (io.WriteCloser, error)\n\t// Decompress reads data from r, decompresses it, and provides the\n\t// uncompressed data via the returned io.Reader.  If an error occurs while\n\t// initializing the decompressor, that error is returned instead.\n\tDecompress(r io.Reader) (io.Reader, error)\n\t// Name is the name of the compression codec and is used to set the content\n\t// coding header.  The result must be static; the result cannot change\n\t// between calls.\n\tName() string\n}\n\nvar registeredCompressor = make(map[string]Compressor)\n\n// RegisterCompressor registers the compressor with gRPC by its name.  It can\n// be activated when sending an RPC via grpc.UseCompressor().  It will be\n// automatically accessed when receiving a message based on the content coding\n// header.  Servers also use it to send a response with the same encoding as\n// the request.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe.  If multiple Compressors are\n// registered with the same name, the one registered last will take effect.\nfunc RegisterCompressor(c Compressor) {\n\tregisteredCompressor[c.Name()] = c\n\tif !grpcutil.IsCompressorNameRegistered(c.Name()) {\n\t\tgrpcutil.RegisteredCompressorNames = append(grpcutil.RegisteredCompressorNames, c.Name())\n\t}\n}\n\n// GetCompressor returns Compressor for the given compressor name.\nfunc GetCompressor(name string) Compressor {\n\treturn registeredCompressor[name]\n}\n\n// Codec defines the interface gRPC uses to encode and decode messages.  Note\n// that implementations of this interface must be thread safe; a Codec's\n// methods can be called from concurrent goroutines.\ntype Codec interface {\n\t// Marshal returns the wire format of v.\n\tMarshal(v any) ([]byte, error)\n\t// Unmarshal parses the wire format into v.\n\tUnmarshal(data []byte, v any) error\n\t// Name returns the name of the Codec implementation. The returned string\n\t// will be used as part of content type in transmission.  The result must be\n\t// static; the result cannot change between calls.\n\tName() string\n}\n\nvar registeredCodecs = make(map[string]any)\n\n// RegisterCodec registers the provided Codec for use with all gRPC clients and\n// servers.\n//\n// The Codec will be stored and looked up by result of its Name() method, which\n// should match the content-subtype of the encoding handled by the Codec.  This\n// is case-insensitive, and is stored and looked up as lowercase.  If the\n// result of calling Name() is an empty string, RegisterCodec will panic. See\n// Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe.  If multiple Codecs are\n// registered with the same name, the one registered last will take effect.\nfunc RegisterCodec(codec Codec) {\n\tif codec == nil {\n\t\tpanic(\"cannot register a nil Codec\")\n\t}\n\tif codec.Name() == \"\" {\n\t\tpanic(\"cannot register Codec with empty string result for Name()\")\n\t}\n\tcontentSubtype := strings.ToLower(codec.Name())\n\tregisteredCodecs[contentSubtype] = codec\n}\n\n// GetCodec gets a registered Codec by content-subtype, or nil if no Codec is\n// registered for the content-subtype.\n//\n// The content-subtype is expected to be lowercase.\nfunc GetCodec(contentSubtype string) Codec {\n\tc, _ := registeredCodecs[contentSubtype].(Codec)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/encoding/encoding_v2.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage encoding\n\nimport (\n\t\"strings\"\n\n\t\"google.golang.org/grpc/mem\"\n)\n\n// CodecV2 defines the interface gRPC uses to encode and decode messages. Note\n// that implementations of this interface must be thread safe; a CodecV2's\n// methods can be called from concurrent goroutines.\ntype CodecV2 interface {\n\t// Marshal returns the wire format of v. The buffers in the returned\n\t// [mem.BufferSlice] must have at least one reference each, which will be freed\n\t// by gRPC when they are no longer needed.\n\tMarshal(v any) (out mem.BufferSlice, err error)\n\t// Unmarshal parses the wire format into v. Note that data will be freed as soon\n\t// as this function returns. If the codec wishes to guarantee access to the data\n\t// after this function, it must take its own reference that it frees when it is\n\t// no longer needed.\n\tUnmarshal(data mem.BufferSlice, v any) error\n\t// Name returns the name of the Codec implementation. The returned string\n\t// will be used as part of content type in transmission.  The result must be\n\t// static; the result cannot change between calls.\n\tName() string\n}\n\n// RegisterCodecV2 registers the provided CodecV2 for use with all gRPC clients and\n// servers.\n//\n// The CodecV2 will be stored and looked up by result of its Name() method, which\n// should match the content-subtype of the encoding handled by the CodecV2.  This\n// is case-insensitive, and is stored and looked up as lowercase.  If the\n// result of calling Name() is an empty string, RegisterCodecV2 will panic. See\n// Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details.\n//\n// If both a Codec and CodecV2 are registered with the same name, the CodecV2\n// will be used.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe.  If multiple Codecs are\n// registered with the same name, the one registered last will take effect.\nfunc RegisterCodecV2(codec CodecV2) {\n\tif codec == nil {\n\t\tpanic(\"cannot register a nil CodecV2\")\n\t}\n\tif codec.Name() == \"\" {\n\t\tpanic(\"cannot register CodecV2 with empty string result for Name()\")\n\t}\n\tcontentSubtype := strings.ToLower(codec.Name())\n\tregisteredCodecs[contentSubtype] = codec\n}\n\n// GetCodecV2 gets a registered CodecV2 by content-subtype, or nil if no CodecV2 is\n// registered for the content-subtype.\n//\n// The content-subtype is expected to be lowercase.\nfunc GetCodecV2(contentSubtype string) CodecV2 {\n\tc, _ := registeredCodecs[contentSubtype].(CodecV2)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/encoding/internal/internal.go",
    "content": "/*\n *\n * Copyright 2025 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package internal contains code internal to the encoding package.\npackage internal\n\n// RegisterCompressorForTesting registers a compressor in the global compressor\n// registry. It returns a cleanup function that should be called at the end\n// of the test to unregister the compressor.\n//\n// This prevents compressors registered in one test from appearing in the\n// encoding headers of subsequent tests.\nvar RegisterCompressorForTesting any // func RegisterCompressor(c Compressor) func()\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/encoding/proto/proto.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package proto defines the protobuf codec. Importing this package will\n// register the codec.\npackage proto\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/encoding\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/protoadapt\"\n)\n\n// Name is the name registered for the proto compressor.\nconst Name = \"proto\"\n\nfunc init() {\n\tencoding.RegisterCodecV2(&codecV2{})\n}\n\n// codec is a CodecV2 implementation with protobuf. It is the default codec for\n// gRPC.\ntype codecV2 struct{}\n\nfunc (c *codecV2) Marshal(v any) (data mem.BufferSlice, err error) {\n\tvv := messageV2Of(v)\n\tif vv == nil {\n\t\treturn nil, fmt.Errorf(\"proto: failed to marshal, message is %T, want proto.Message\", v)\n\t}\n\n\t// Important: if we remove this Size call then we cannot use\n\t// UseCachedSize in MarshalOptions below.\n\tsize := proto.Size(vv)\n\n\t// MarshalOptions with UseCachedSize allows reusing the result from the\n\t// previous Size call. This is safe here because:\n\t//\n\t// 1. We just computed the size.\n\t// 2. We assume the message is not being mutated concurrently.\n\t//\n\t// Important: If the proto.Size call above is removed, using UseCachedSize\n\t// becomes unsafe and may lead to incorrect marshaling.\n\t//\n\t// For more details, see the doc of UseCachedSize:\n\t// https://pkg.go.dev/google.golang.org/protobuf/proto#MarshalOptions\n\tmarshalOptions := proto.MarshalOptions{UseCachedSize: true}\n\n\tif mem.IsBelowBufferPoolingThreshold(size) {\n\t\tbuf, err := marshalOptions.Marshal(vv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdata = append(data, mem.SliceBuffer(buf))\n\t} else {\n\t\tpool := mem.DefaultBufferPool()\n\t\tbuf := pool.Get(size)\n\t\tif _, err := marshalOptions.MarshalAppend((*buf)[:0], vv); err != nil {\n\t\t\tpool.Put(buf)\n\t\t\treturn nil, err\n\t\t}\n\t\tdata = append(data, mem.NewBuffer(buf, pool))\n\t}\n\n\treturn data, nil\n}\n\nfunc (c *codecV2) Unmarshal(data mem.BufferSlice, v any) (err error) {\n\tvv := messageV2Of(v)\n\tif vv == nil {\n\t\treturn fmt.Errorf(\"failed to unmarshal, message is %T, want proto.Message\", v)\n\t}\n\n\tbuf := data.MaterializeToBuffer(mem.DefaultBufferPool())\n\tdefer buf.Free()\n\t// TODO: Upgrade proto.Unmarshal to support mem.BufferSlice. Right now, it's not\n\t//  really possible without a major overhaul of the proto package, but the\n\t//  vtprotobuf library may be able to support this.\n\treturn proto.Unmarshal(buf.ReadOnlyData(), vv)\n}\n\nfunc messageV2Of(v any) proto.Message {\n\tswitch v := v.(type) {\n\tcase protoadapt.MessageV1:\n\t\treturn protoadapt.MessageV2Of(v)\n\tcase protoadapt.MessageV2:\n\t\treturn v\n\t}\n\n\treturn nil\n}\n\nfunc (c *codecV2) Name() string {\n\treturn Name\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/experimental/stats/metricregistry.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage stats\n\nimport (\n\t\"maps\"\n\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/stats\"\n)\n\nfunc init() {\n\tinternal.SnapshotMetricRegistryForTesting = snapshotMetricsRegistryForTesting\n}\n\nvar logger = grpclog.Component(\"metrics-registry\")\n\n// DefaultMetrics are the default metrics registered through global metrics\n// registry. This is written to at initialization time only, and is read only\n// after initialization.\nvar DefaultMetrics = stats.NewMetricSet()\n\n// MetricDescriptor is the data for a registered metric.\ntype MetricDescriptor struct {\n\t// The name of this metric. This name must be unique across the whole binary\n\t// (including any per call metrics). See\n\t// https://github.com/grpc/proposal/blob/master/A79-non-per-call-metrics-architecture.md#metric-instrument-naming-conventions\n\t// for metric naming conventions.\n\tName string\n\t// The description of this metric.\n\tDescription string\n\t// The unit (e.g. entries, seconds) of this metric.\n\tUnit string\n\t// The required label keys for this metric. These are intended to\n\t// metrics emitted from a stats handler.\n\tLabels []string\n\t// The optional label keys for this metric. These are intended to attached\n\t// to metrics emitted from a stats handler if configured.\n\tOptionalLabels []string\n\t// Whether this metric is on by default.\n\tDefault bool\n\t// The type of metric. This is set by the metric registry, and not intended\n\t// to be set by a component registering a metric.\n\tType MetricType\n\t// Bounds are the bounds of this metric. This only applies to histogram\n\t// metrics. If unset or set with length 0, stats handlers will fall back to\n\t// default bounds.\n\tBounds []float64\n}\n\n// MetricType is the type of metric.\ntype MetricType int\n\n// Type of metric supported by this instrument registry.\nconst (\n\tMetricTypeIntCount MetricType = iota\n\tMetricTypeFloatCount\n\tMetricTypeIntHisto\n\tMetricTypeFloatHisto\n\tMetricTypeIntGauge\n\tMetricTypeIntUpDownCount\n\tMetricTypeIntAsyncGauge\n)\n\n// Int64CountHandle is a typed handle for a int count metric. This handle\n// is passed at the recording point in order to know which metric to record\n// on.\ntype Int64CountHandle MetricDescriptor\n\n// Descriptor returns the int64 count handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Int64CountHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the int64 count value on the metrics recorder provided.\nfunc (h *Int64CountHandle) Record(recorder MetricsRecorder, incr int64, labels ...string) {\n\trecorder.RecordInt64Count(h, incr, labels...)\n}\n\n// Int64UpDownCountHandle is a typed handle for an int up-down counter metric.\n// This handle is passed at the recording point in order to know which metric\n// to record on.\ntype Int64UpDownCountHandle MetricDescriptor\n\n// Descriptor returns the int64 up-down counter handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Int64UpDownCountHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the int64 up-down counter value on the metrics recorder provided.\n// The value 'v' can be positive to increment or negative to decrement.\nfunc (h *Int64UpDownCountHandle) Record(recorder MetricsRecorder, v int64, labels ...string) {\n\trecorder.RecordInt64UpDownCount(h, v, labels...)\n}\n\n// Float64CountHandle is a typed handle for a float count metric. This handle is\n// passed at the recording point in order to know which metric to record on.\ntype Float64CountHandle MetricDescriptor\n\n// Descriptor returns the float64 count handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Float64CountHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the float64 count value on the metrics recorder provided.\nfunc (h *Float64CountHandle) Record(recorder MetricsRecorder, incr float64, labels ...string) {\n\trecorder.RecordFloat64Count(h, incr, labels...)\n}\n\n// Int64HistoHandle is a typed handle for an int histogram metric. This handle\n// is passed at the recording point in order to know which metric to record on.\ntype Int64HistoHandle MetricDescriptor\n\n// Descriptor returns the int64 histo handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Int64HistoHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the int64 histo value on the metrics recorder provided.\nfunc (h *Int64HistoHandle) Record(recorder MetricsRecorder, incr int64, labels ...string) {\n\trecorder.RecordInt64Histo(h, incr, labels...)\n}\n\n// Float64HistoHandle is a typed handle for a float histogram metric. This\n// handle is passed at the recording point in order to know which metric to\n// record on.\ntype Float64HistoHandle MetricDescriptor\n\n// Descriptor returns the float64 histo handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Float64HistoHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the float64 histo value on the metrics recorder provided.\nfunc (h *Float64HistoHandle) Record(recorder MetricsRecorder, incr float64, labels ...string) {\n\trecorder.RecordFloat64Histo(h, incr, labels...)\n}\n\n// Int64GaugeHandle is a typed handle for an int gauge metric. This handle is\n// passed at the recording point in order to know which metric to record on.\ntype Int64GaugeHandle MetricDescriptor\n\n// Descriptor returns the int64 gauge handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Int64GaugeHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the int64 histo value on the metrics recorder provided.\nfunc (h *Int64GaugeHandle) Record(recorder MetricsRecorder, incr int64, labels ...string) {\n\trecorder.RecordInt64Gauge(h, incr, labels...)\n}\n\n// AsyncMetric is a marker interface for asynchronous metric types.\ntype AsyncMetric interface {\n\tisAsync()\n\tDescriptor() *MetricDescriptor\n}\n\n// Int64AsyncGaugeHandle is a typed handle for an int gauge metric. This handle is\n// passed at the recording point in order to know which metric to record on.\ntype Int64AsyncGaugeHandle MetricDescriptor\n\n// isAsync implements the AsyncMetric interface.\nfunc (h *Int64AsyncGaugeHandle) isAsync() {}\n\n// Descriptor returns the int64 gauge handle typecast to a pointer to a\n// MetricDescriptor.\nfunc (h *Int64AsyncGaugeHandle) Descriptor() *MetricDescriptor {\n\treturn (*MetricDescriptor)(h)\n}\n\n// Record records the int64 gauge value on the metrics recorder provided.\nfunc (h *Int64AsyncGaugeHandle) Record(recorder AsyncMetricsRecorder, value int64, labels ...string) {\n\trecorder.RecordInt64AsyncGauge(h, value, labels...)\n}\n\n// registeredMetrics are the registered metric descriptor names.\nvar registeredMetrics = make(map[string]bool)\n\n// metricsRegistry contains all of the registered metrics.\n//\n// This is written to only at init time, and read only after that.\nvar metricsRegistry = make(map[string]*MetricDescriptor)\n\n// DescriptorForMetric returns the MetricDescriptor from the global registry.\n//\n// Returns nil if MetricDescriptor not present.\nfunc DescriptorForMetric(metricName string) *MetricDescriptor {\n\treturn metricsRegistry[metricName]\n}\n\nfunc registerMetric(metricName string, def bool) {\n\tif registeredMetrics[metricName] {\n\t\tlogger.Fatalf(\"metric %v already registered\", metricName)\n\t}\n\tregisteredMetrics[metricName] = true\n\tif def {\n\t\tDefaultMetrics = DefaultMetrics.Add(metricName)\n\t}\n}\n\n// RegisterInt64Count registers the metric description onto the global registry.\n// It returns a typed handle to use to recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterInt64Count(descriptor MetricDescriptor) *Int64CountHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeIntCount\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Int64CountHandle)(descPtr)\n}\n\n// RegisterFloat64Count registers the metric description onto the global\n// registry. It returns a typed handle to use to recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterFloat64Count(descriptor MetricDescriptor) *Float64CountHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeFloatCount\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Float64CountHandle)(descPtr)\n}\n\n// RegisterInt64Histo registers the metric description onto the global registry.\n// It returns a typed handle to use to recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterInt64Histo(descriptor MetricDescriptor) *Int64HistoHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeIntHisto\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Int64HistoHandle)(descPtr)\n}\n\n// RegisterFloat64Histo registers the metric description onto the global\n// registry. It returns a typed handle to use to recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterFloat64Histo(descriptor MetricDescriptor) *Float64HistoHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeFloatHisto\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Float64HistoHandle)(descPtr)\n}\n\n// RegisterInt64Gauge registers the metric description onto the global registry.\n// It returns a typed handle to use to recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterInt64Gauge(descriptor MetricDescriptor) *Int64GaugeHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeIntGauge\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Int64GaugeHandle)(descPtr)\n}\n\n// RegisterInt64UpDownCount registers the metric description onto the global registry.\n// It returns a typed handle to use for recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterInt64UpDownCount(descriptor MetricDescriptor) *Int64UpDownCountHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\t// Set the specific metric type for the up-down counter\n\tdescriptor.Type = MetricTypeIntUpDownCount\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Int64UpDownCountHandle)(descPtr)\n}\n\n// RegisterInt64AsyncGauge registers the metric description onto the global registry.\n// It returns a typed handle to use for recording data.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple metrics are\n// registered with the same name, this function will panic.\nfunc RegisterInt64AsyncGauge(descriptor MetricDescriptor) *Int64AsyncGaugeHandle {\n\tregisterMetric(descriptor.Name, descriptor.Default)\n\tdescriptor.Type = MetricTypeIntAsyncGauge\n\tdescPtr := &descriptor\n\tmetricsRegistry[descriptor.Name] = descPtr\n\treturn (*Int64AsyncGaugeHandle)(descPtr)\n}\n\n// snapshotMetricsRegistryForTesting snapshots the global data of the metrics\n// registry. Returns a cleanup function that sets the metrics registry to its\n// original state.\nfunc snapshotMetricsRegistryForTesting() func() {\n\toldDefaultMetrics := DefaultMetrics\n\toldRegisteredMetrics := registeredMetrics\n\toldMetricsRegistry := metricsRegistry\n\n\tregisteredMetrics = make(map[string]bool)\n\tmetricsRegistry = make(map[string]*MetricDescriptor)\n\tmaps.Copy(registeredMetrics, registeredMetrics)\n\tmaps.Copy(metricsRegistry, metricsRegistry)\n\n\treturn func() {\n\t\tDefaultMetrics = oldDefaultMetrics\n\t\tregisteredMetrics = oldRegisteredMetrics\n\t\tmetricsRegistry = oldMetricsRegistry\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/experimental/stats/metrics.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package stats contains experimental metrics/stats API's.\npackage stats\n\nimport (\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/stats\"\n)\n\n// MetricsRecorder records on metrics derived from metric registry.\n// Implementors must embed UnimplementedMetricsRecorder.\ntype MetricsRecorder interface {\n\t// RecordInt64Count records the measurement alongside labels on the int\n\t// count associated with the provided handle.\n\tRecordInt64Count(handle *Int64CountHandle, incr int64, labels ...string)\n\t// RecordFloat64Count records the measurement alongside labels on the float\n\t// count associated with the provided handle.\n\tRecordFloat64Count(handle *Float64CountHandle, incr float64, labels ...string)\n\t// RecordInt64Histo records the measurement alongside labels on the int\n\t// histo associated with the provided handle.\n\tRecordInt64Histo(handle *Int64HistoHandle, incr int64, labels ...string)\n\t// RecordFloat64Histo records the measurement alongside labels on the float\n\t// histo associated with the provided handle.\n\tRecordFloat64Histo(handle *Float64HistoHandle, incr float64, labels ...string)\n\t// RecordInt64Gauge records the measurement alongside labels on the int\n\t// gauge associated with the provided handle.\n\tRecordInt64Gauge(handle *Int64GaugeHandle, incr int64, labels ...string)\n\t// RecordInt64UpDownCounter records the measurement alongside labels on the int\n\t// count associated with the provided handle.\n\tRecordInt64UpDownCount(handle *Int64UpDownCountHandle, incr int64, labels ...string)\n\t// RegisterAsyncReporter registers a reporter to produce metric values for\n\t// only the listed descriptors. The returned function must be called when\n\t// the metrics are no longer needed, which will remove the reporter. The\n\t// returned method needs to be idempotent and concurrent safe.\n\tRegisterAsyncReporter(reporter AsyncMetricReporter, descriptors ...AsyncMetric) func()\n\n\t// EnforceMetricsRecorderEmbedding is included to force implementers to embed\n\t// another implementation of this interface, allowing gRPC to add methods\n\t// without breaking users.\n\tinternal.EnforceMetricsRecorderEmbedding\n}\n\n// AsyncMetricReporter is an interface for types that record metrics asynchronously\n// for the set of descriptors they are registered with. The AsyncMetricsRecorder\n// parameter is used to record values for these metrics.\n//\n// Implementations must make unique recordings across all registered\n// AsyncMetricReporters. Meaning, they should not report values for a metric with\n// the same attributes as another AsyncMetricReporter will report.\n//\n// Implementations must be concurrent-safe.\ntype AsyncMetricReporter interface {\n\t// Report records metric values using the provided recorder.\n\tReport(AsyncMetricsRecorder) error\n}\n\n// AsyncMetricReporterFunc is an adapter to allow the use of ordinary functions as\n// AsyncMetricReporters.\ntype AsyncMetricReporterFunc func(AsyncMetricsRecorder) error\n\n// Report calls f(r).\nfunc (f AsyncMetricReporterFunc) Report(r AsyncMetricsRecorder) error {\n\treturn f(r)\n}\n\n// AsyncMetricsRecorder records on asynchronous metrics derived from metric registry.\ntype AsyncMetricsRecorder interface {\n\t// RecordInt64AsyncGauge records the measurement alongside labels on the int\n\t// count associated with the provided handle asynchronously\n\tRecordInt64AsyncGauge(handle *Int64AsyncGaugeHandle, incr int64, labels ...string)\n}\n\n// Metrics is an experimental legacy alias of the now-stable stats.MetricSet.\n// Metrics will be deleted in a future release.\ntype Metrics = stats.MetricSet\n\n// Metric was replaced by direct usage of strings.\ntype Metric = string\n\n// NewMetrics is an experimental legacy alias of the now-stable\n// stats.NewMetricSet.  NewMetrics will be deleted in a future release.\nfunc NewMetrics(metrics ...Metric) *Metrics {\n\treturn stats.NewMetricSet(metrics...)\n}\n\n// UnimplementedMetricsRecorder must be embedded to have forward compatible implementations.\ntype UnimplementedMetricsRecorder struct {\n\tinternal.EnforceMetricsRecorderEmbedding\n}\n\n// RecordInt64Count provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordInt64Count(*Int64CountHandle, int64, ...string) {}\n\n// RecordFloat64Count provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordFloat64Count(*Float64CountHandle, float64, ...string) {}\n\n// RecordInt64Histo provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordInt64Histo(*Int64HistoHandle, int64, ...string) {}\n\n// RecordFloat64Histo provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordFloat64Histo(*Float64HistoHandle, float64, ...string) {}\n\n// RecordInt64Gauge provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordInt64Gauge(*Int64GaugeHandle, int64, ...string) {}\n\n// RecordInt64UpDownCount provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RecordInt64UpDownCount(*Int64UpDownCountHandle, int64, ...string) {\n}\n\n// RegisterAsyncReporter provides a no-op implementation.\nfunc (UnimplementedMetricsRecorder) RegisterAsyncReporter(AsyncMetricReporter, ...AsyncMetric) func() {\n\t// No-op: Return an empty function to ensure caller doesn't panic on nil function call\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/component.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpclog\n\nimport (\n\t\"fmt\"\n)\n\n// componentData records the settings for a component.\ntype componentData struct {\n\tname string\n}\n\nvar cache = map[string]*componentData{}\n\nfunc (c *componentData) InfoDepth(depth int, args ...any) {\n\targs = append([]any{\"[\" + string(c.name) + \"]\"}, args...)\n\tInfoDepth(depth+1, args...)\n}\n\nfunc (c *componentData) WarningDepth(depth int, args ...any) {\n\targs = append([]any{\"[\" + string(c.name) + \"]\"}, args...)\n\tWarningDepth(depth+1, args...)\n}\n\nfunc (c *componentData) ErrorDepth(depth int, args ...any) {\n\targs = append([]any{\"[\" + string(c.name) + \"]\"}, args...)\n\tErrorDepth(depth+1, args...)\n}\n\nfunc (c *componentData) FatalDepth(depth int, args ...any) {\n\targs = append([]any{\"[\" + string(c.name) + \"]\"}, args...)\n\tFatalDepth(depth+1, args...)\n}\n\nfunc (c *componentData) Info(args ...any) {\n\tc.InfoDepth(1, args...)\n}\n\nfunc (c *componentData) Warning(args ...any) {\n\tc.WarningDepth(1, args...)\n}\n\nfunc (c *componentData) Error(args ...any) {\n\tc.ErrorDepth(1, args...)\n}\n\nfunc (c *componentData) Fatal(args ...any) {\n\tc.FatalDepth(1, args...)\n}\n\nfunc (c *componentData) Infof(format string, args ...any) {\n\tc.InfoDepth(1, fmt.Sprintf(format, args...))\n}\n\nfunc (c *componentData) Warningf(format string, args ...any) {\n\tc.WarningDepth(1, fmt.Sprintf(format, args...))\n}\n\nfunc (c *componentData) Errorf(format string, args ...any) {\n\tc.ErrorDepth(1, fmt.Sprintf(format, args...))\n}\n\nfunc (c *componentData) Fatalf(format string, args ...any) {\n\tc.FatalDepth(1, fmt.Sprintf(format, args...))\n}\n\nfunc (c *componentData) Infoln(args ...any) {\n\tc.InfoDepth(1, args...)\n}\n\nfunc (c *componentData) Warningln(args ...any) {\n\tc.WarningDepth(1, args...)\n}\n\nfunc (c *componentData) Errorln(args ...any) {\n\tc.ErrorDepth(1, args...)\n}\n\nfunc (c *componentData) Fatalln(args ...any) {\n\tc.FatalDepth(1, args...)\n}\n\nfunc (c *componentData) V(l int) bool {\n\treturn V(l)\n}\n\n// Component creates a new component and returns it for logging. If a component\n// with the name already exists, nothing will be created and it will be\n// returned. SetLoggerV2 will panic if it is called with a logger created by\n// Component.\nfunc Component(componentName string) DepthLoggerV2 {\n\tif cData, ok := cache[componentName]; ok {\n\t\treturn cData\n\t}\n\tc := &componentData{componentName}\n\tcache[componentName] = c\n\treturn c\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/grpclog.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package grpclog defines logging for grpc.\n//\n// In the default logger, severity level can be set by environment variable\n// GRPC_GO_LOG_SEVERITY_LEVEL, verbosity level can be set by\n// GRPC_GO_LOG_VERBOSITY_LEVEL.\npackage grpclog\n\nimport (\n\t\"os\"\n\n\t\"google.golang.org/grpc/grpclog/internal\"\n)\n\nfunc init() {\n\tSetLoggerV2(newLoggerV2())\n}\n\n// V reports whether verbosity level l is at least the requested verbose level.\nfunc V(l int) bool {\n\treturn internal.LoggerV2Impl.V(l)\n}\n\n// Info logs to the INFO log.\nfunc Info(args ...any) {\n\tinternal.LoggerV2Impl.Info(args...)\n}\n\n// Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf.\nfunc Infof(format string, args ...any) {\n\tinternal.LoggerV2Impl.Infof(format, args...)\n}\n\n// Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println.\nfunc Infoln(args ...any) {\n\tinternal.LoggerV2Impl.Infoln(args...)\n}\n\n// Warning logs to the WARNING log.\nfunc Warning(args ...any) {\n\tinternal.LoggerV2Impl.Warning(args...)\n}\n\n// Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf.\nfunc Warningf(format string, args ...any) {\n\tinternal.LoggerV2Impl.Warningf(format, args...)\n}\n\n// Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println.\nfunc Warningln(args ...any) {\n\tinternal.LoggerV2Impl.Warningln(args...)\n}\n\n// Error logs to the ERROR log.\nfunc Error(args ...any) {\n\tinternal.LoggerV2Impl.Error(args...)\n}\n\n// Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf.\nfunc Errorf(format string, args ...any) {\n\tinternal.LoggerV2Impl.Errorf(format, args...)\n}\n\n// Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println.\nfunc Errorln(args ...any) {\n\tinternal.LoggerV2Impl.Errorln(args...)\n}\n\n// Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print.\n// It calls os.Exit() with exit code 1.\nfunc Fatal(args ...any) {\n\tinternal.LoggerV2Impl.Fatal(args...)\n\t// Make sure fatal logs will exit.\n\tos.Exit(1)\n}\n\n// Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf.\n// It calls os.Exit() with exit code 1.\nfunc Fatalf(format string, args ...any) {\n\tinternal.LoggerV2Impl.Fatalf(format, args...)\n\t// Make sure fatal logs will exit.\n\tos.Exit(1)\n}\n\n// Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println.\n// It calls os.Exit() with exit code 1.\nfunc Fatalln(args ...any) {\n\tinternal.LoggerV2Impl.Fatalln(args...)\n\t// Make sure fatal logs will exit.\n\tos.Exit(1)\n}\n\n// Print prints to the logger. Arguments are handled in the manner of fmt.Print.\n//\n// Deprecated: use Info.\nfunc Print(args ...any) {\n\tinternal.LoggerV2Impl.Info(args...)\n}\n\n// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf.\n//\n// Deprecated: use Infof.\nfunc Printf(format string, args ...any) {\n\tinternal.LoggerV2Impl.Infof(format, args...)\n}\n\n// Println prints to the logger. Arguments are handled in the manner of fmt.Println.\n//\n// Deprecated: use Infoln.\nfunc Println(args ...any) {\n\tinternal.LoggerV2Impl.Infoln(args...)\n}\n\n// InfoDepth logs to the INFO log at the specified depth.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc InfoDepth(depth int, args ...any) {\n\tif internal.DepthLoggerV2Impl != nil {\n\t\tinternal.DepthLoggerV2Impl.InfoDepth(depth, args...)\n\t} else {\n\t\tinternal.LoggerV2Impl.Infoln(args...)\n\t}\n}\n\n// WarningDepth logs to the WARNING log at the specified depth.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WarningDepth(depth int, args ...any) {\n\tif internal.DepthLoggerV2Impl != nil {\n\t\tinternal.DepthLoggerV2Impl.WarningDepth(depth, args...)\n\t} else {\n\t\tinternal.LoggerV2Impl.Warningln(args...)\n\t}\n}\n\n// ErrorDepth logs to the ERROR log at the specified depth.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ErrorDepth(depth int, args ...any) {\n\tif internal.DepthLoggerV2Impl != nil {\n\t\tinternal.DepthLoggerV2Impl.ErrorDepth(depth, args...)\n\t} else {\n\t\tinternal.LoggerV2Impl.Errorln(args...)\n\t}\n}\n\n// FatalDepth logs to the FATAL log at the specified depth.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc FatalDepth(depth int, args ...any) {\n\tif internal.DepthLoggerV2Impl != nil {\n\t\tinternal.DepthLoggerV2Impl.FatalDepth(depth, args...)\n\t} else {\n\t\tinternal.LoggerV2Impl.Fatalln(args...)\n\t}\n\tos.Exit(1)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/internal/grpclog.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package internal contains functionality internal to the grpclog package.\npackage internal\n\n// LoggerV2Impl is the logger used for the non-depth log functions.\nvar LoggerV2Impl LoggerV2\n\n// DepthLoggerV2Impl is the logger used for the depth log functions.\nvar DepthLoggerV2Impl DepthLoggerV2\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/internal/logger.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\n// Logger mimics golang's standard Logger as an interface.\n//\n// Deprecated: use LoggerV2.\ntype Logger interface {\n\tFatal(args ...any)\n\tFatalf(format string, args ...any)\n\tFatalln(args ...any)\n\tPrint(args ...any)\n\tPrintf(format string, args ...any)\n\tPrintln(args ...any)\n}\n\n// LoggerWrapper wraps Logger into a LoggerV2.\ntype LoggerWrapper struct {\n\tLogger\n}\n\n// Info logs to INFO log. Arguments are handled in the manner of fmt.Print.\nfunc (l *LoggerWrapper) Info(args ...any) {\n\tl.Logger.Print(args...)\n}\n\n// Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println.\nfunc (l *LoggerWrapper) Infoln(args ...any) {\n\tl.Logger.Println(args...)\n}\n\n// Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf.\nfunc (l *LoggerWrapper) Infof(format string, args ...any) {\n\tl.Logger.Printf(format, args...)\n}\n\n// Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print.\nfunc (l *LoggerWrapper) Warning(args ...any) {\n\tl.Logger.Print(args...)\n}\n\n// Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println.\nfunc (l *LoggerWrapper) Warningln(args ...any) {\n\tl.Logger.Println(args...)\n}\n\n// Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf.\nfunc (l *LoggerWrapper) Warningf(format string, args ...any) {\n\tl.Logger.Printf(format, args...)\n}\n\n// Error logs to ERROR log. Arguments are handled in the manner of fmt.Print.\nfunc (l *LoggerWrapper) Error(args ...any) {\n\tl.Logger.Print(args...)\n}\n\n// Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println.\nfunc (l *LoggerWrapper) Errorln(args ...any) {\n\tl.Logger.Println(args...)\n}\n\n// Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.\nfunc (l *LoggerWrapper) Errorf(format string, args ...any) {\n\tl.Logger.Printf(format, args...)\n}\n\n// V reports whether verbosity level l is at least the requested verbose level.\nfunc (*LoggerWrapper) V(int) bool {\n\t// Returns true for all verbose level.\n\treturn true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/internal/loggerv2.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n)\n\n// LoggerV2 does underlying logging work for grpclog.\ntype LoggerV2 interface {\n\t// Info logs to INFO log. Arguments are handled in the manner of fmt.Print.\n\tInfo(args ...any)\n\t// Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println.\n\tInfoln(args ...any)\n\t// Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf.\n\tInfof(format string, args ...any)\n\t// Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print.\n\tWarning(args ...any)\n\t// Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println.\n\tWarningln(args ...any)\n\t// Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf.\n\tWarningf(format string, args ...any)\n\t// Error logs to ERROR log. Arguments are handled in the manner of fmt.Print.\n\tError(args ...any)\n\t// Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println.\n\tErrorln(args ...any)\n\t// Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.\n\tErrorf(format string, args ...any)\n\t// Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print.\n\t// gRPC ensures that all Fatal logs will exit with os.Exit(1).\n\t// Implementations may also call os.Exit() with a non-zero exit code.\n\tFatal(args ...any)\n\t// Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println.\n\t// gRPC ensures that all Fatal logs will exit with os.Exit(1).\n\t// Implementations may also call os.Exit() with a non-zero exit code.\n\tFatalln(args ...any)\n\t// Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.\n\t// gRPC ensures that all Fatal logs will exit with os.Exit(1).\n\t// Implementations may also call os.Exit() with a non-zero exit code.\n\tFatalf(format string, args ...any)\n\t// V reports whether verbosity level l is at least the requested verbose level.\n\tV(l int) bool\n}\n\n// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements\n// DepthLoggerV2, the below functions will be called with the appropriate stack\n// depth set for trivial functions the logger may ignore.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype DepthLoggerV2 interface {\n\tLoggerV2\n\t// InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println.\n\tInfoDepth(depth int, args ...any)\n\t// WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println.\n\tWarningDepth(depth int, args ...any)\n\t// ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println.\n\tErrorDepth(depth int, args ...any)\n\t// FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println.\n\tFatalDepth(depth int, args ...any)\n}\n\nconst (\n\t// infoLog indicates Info severity.\n\tinfoLog int = iota\n\t// warningLog indicates Warning severity.\n\twarningLog\n\t// errorLog indicates Error severity.\n\terrorLog\n\t// fatalLog indicates Fatal severity.\n\tfatalLog\n)\n\n// severityName contains the string representation of each severity.\nvar severityName = []string{\n\tinfoLog:    \"INFO\",\n\twarningLog: \"WARNING\",\n\terrorLog:   \"ERROR\",\n\tfatalLog:   \"FATAL\",\n}\n\n// sprintf is fmt.Sprintf.\n// These vars exist to make it possible to test that expensive format calls aren't made unnecessarily.\nvar sprintf = fmt.Sprintf\n\n// sprint is fmt.Sprint.\n// These vars exist to make it possible to test that expensive format calls aren't made unnecessarily.\nvar sprint = fmt.Sprint\n\n// sprintln is fmt.Sprintln.\n// These vars exist to make it possible to test that expensive format calls aren't made unnecessarily.\nvar sprintln = fmt.Sprintln\n\n// exit is os.Exit.\n// This var exists to make it possible to test functions calling os.Exit.\nvar exit = os.Exit\n\n// loggerT is the default logger used by grpclog.\ntype loggerT struct {\n\tm          []*log.Logger\n\tv          int\n\tjsonFormat bool\n}\n\nfunc (g *loggerT) output(severity int, s string) {\n\tsevStr := severityName[severity]\n\tif !g.jsonFormat {\n\t\tg.m[severity].Output(2, sevStr+\": \"+s)\n\t\treturn\n\t}\n\t// TODO: we can also include the logging component, but that needs more\n\t// (API) changes.\n\tb, _ := json.Marshal(map[string]string{\n\t\t\"severity\": sevStr,\n\t\t\"message\":  s,\n\t})\n\tg.m[severity].Output(2, string(b))\n}\n\nfunc (g *loggerT) printf(severity int, format string, args ...any) {\n\t// Note the discard check is duplicated in each print func, rather than in\n\t// output, to avoid the expensive Sprint calls.\n\t// De-duplicating this by moving to output would be a significant performance regression!\n\tif lg := g.m[severity]; lg.Writer() == io.Discard {\n\t\treturn\n\t}\n\tg.output(severity, sprintf(format, args...))\n}\n\nfunc (g *loggerT) print(severity int, v ...any) {\n\tif lg := g.m[severity]; lg.Writer() == io.Discard {\n\t\treturn\n\t}\n\tg.output(severity, sprint(v...))\n}\n\nfunc (g *loggerT) println(severity int, v ...any) {\n\tif lg := g.m[severity]; lg.Writer() == io.Discard {\n\t\treturn\n\t}\n\tg.output(severity, sprintln(v...))\n}\n\nfunc (g *loggerT) Info(args ...any) {\n\tg.print(infoLog, args...)\n}\n\nfunc (g *loggerT) Infoln(args ...any) {\n\tg.println(infoLog, args...)\n}\n\nfunc (g *loggerT) Infof(format string, args ...any) {\n\tg.printf(infoLog, format, args...)\n}\n\nfunc (g *loggerT) Warning(args ...any) {\n\tg.print(warningLog, args...)\n}\n\nfunc (g *loggerT) Warningln(args ...any) {\n\tg.println(warningLog, args...)\n}\n\nfunc (g *loggerT) Warningf(format string, args ...any) {\n\tg.printf(warningLog, format, args...)\n}\n\nfunc (g *loggerT) Error(args ...any) {\n\tg.print(errorLog, args...)\n}\n\nfunc (g *loggerT) Errorln(args ...any) {\n\tg.println(errorLog, args...)\n}\n\nfunc (g *loggerT) Errorf(format string, args ...any) {\n\tg.printf(errorLog, format, args...)\n}\n\nfunc (g *loggerT) Fatal(args ...any) {\n\tg.print(fatalLog, args...)\n\texit(1)\n}\n\nfunc (g *loggerT) Fatalln(args ...any) {\n\tg.println(fatalLog, args...)\n\texit(1)\n}\n\nfunc (g *loggerT) Fatalf(format string, args ...any) {\n\tg.printf(fatalLog, format, args...)\n\texit(1)\n}\n\nfunc (g *loggerT) V(l int) bool {\n\treturn l <= g.v\n}\n\n// LoggerV2Config configures the LoggerV2 implementation.\ntype LoggerV2Config struct {\n\t// Verbosity sets the verbosity level of the logger.\n\tVerbosity int\n\t// FormatJSON controls whether the logger should output logs in JSON format.\n\tFormatJSON bool\n}\n\n// combineLoggers returns a combined logger for both higher & lower severity logs,\n// or only one if the other is io.Discard.\n//\n// This uses io.Discard instead of io.MultiWriter when all loggers\n// are set to io.Discard. Both this package and the standard log package have\n// significant optimizations for io.Discard, which io.MultiWriter lacks (as of\n// this writing).\nfunc combineLoggers(lower, higher io.Writer) io.Writer {\n\tif lower == io.Discard {\n\t\treturn higher\n\t}\n\tif higher == io.Discard {\n\t\treturn lower\n\t}\n\treturn io.MultiWriter(lower, higher)\n}\n\n// NewLoggerV2 creates a new LoggerV2 instance with the provided configuration.\n// The infoW, warningW, and errorW writers are used to write log messages of\n// different severity levels.\nfunc NewLoggerV2(infoW, warningW, errorW io.Writer, c LoggerV2Config) LoggerV2 {\n\tflag := log.LstdFlags\n\tif c.FormatJSON {\n\t\tflag = 0\n\t}\n\n\twarningW = combineLoggers(infoW, warningW)\n\terrorW = combineLoggers(errorW, warningW)\n\n\tfatalW := errorW\n\n\tm := []*log.Logger{\n\t\tlog.New(infoW, \"\", flag),\n\t\tlog.New(warningW, \"\", flag),\n\t\tlog.New(errorW, \"\", flag),\n\t\tlog.New(fatalW, \"\", flag),\n\t}\n\treturn &loggerT{m: m, v: c.Verbosity, jsonFormat: c.FormatJSON}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/logger.go",
    "content": "/*\n *\n * Copyright 2015 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpclog\n\nimport \"google.golang.org/grpc/grpclog/internal\"\n\n// Logger mimics golang's standard Logger as an interface.\n//\n// Deprecated: use LoggerV2.\ntype Logger internal.Logger\n\n// SetLogger sets the logger that is used in grpc. Call only from\n// init() functions.\n//\n// Deprecated: use SetLoggerV2.\nfunc SetLogger(l Logger) {\n\tinternal.LoggerV2Impl = &internal.LoggerWrapper{Logger: l}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/grpclog/loggerv2.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpclog\n\nimport (\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/grpclog/internal\"\n)\n\n// LoggerV2 does underlying logging work for grpclog.\ntype LoggerV2 internal.LoggerV2\n\n// SetLoggerV2 sets logger that is used in grpc to a V2 logger.\n// Not mutex-protected, should be called before any gRPC functions.\nfunc SetLoggerV2(l LoggerV2) {\n\tif _, ok := l.(*componentData); ok {\n\t\tpanic(\"cannot use component logger as grpclog logger\")\n\t}\n\tinternal.LoggerV2Impl = l\n\tinternal.DepthLoggerV2Impl, _ = l.(internal.DepthLoggerV2)\n}\n\n// NewLoggerV2 creates a loggerV2 with the provided writers.\n// Fatal logs will be written to errorW, warningW, infoW, followed by exit(1).\n// Error logs will be written to errorW, warningW and infoW.\n// Warning logs will be written to warningW and infoW.\n// Info logs will be written to infoW.\nfunc NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 {\n\treturn internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{})\n}\n\n// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and\n// verbosity level.\nfunc NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 {\n\treturn internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{Verbosity: v})\n}\n\n// newLoggerV2 creates a loggerV2 to be used as default logger.\n// All logs are written to stderr.\nfunc newLoggerV2() LoggerV2 {\n\terrorW := io.Discard\n\twarningW := io.Discard\n\tinfoW := io.Discard\n\n\tlogLevel := os.Getenv(\"GRPC_GO_LOG_SEVERITY_LEVEL\")\n\tswitch logLevel {\n\tcase \"\", \"ERROR\", \"error\": // If env is unset, set level to ERROR.\n\t\terrorW = os.Stderr\n\tcase \"WARNING\", \"warning\":\n\t\twarningW = os.Stderr\n\tcase \"INFO\", \"info\":\n\t\tinfoW = os.Stderr\n\t}\n\n\tvar v int\n\tvLevel := os.Getenv(\"GRPC_GO_LOG_VERBOSITY_LEVEL\")\n\tif vl, err := strconv.Atoi(vLevel); err == nil {\n\t\tv = vl\n\t}\n\n\tjsonFormat := strings.EqualFold(os.Getenv(\"GRPC_GO_LOG_FORMATTER\"), \"json\")\n\n\treturn internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{\n\t\tVerbosity:  v,\n\t\tFormatJSON: jsonFormat,\n\t})\n}\n\n// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements\n// DepthLoggerV2, the below functions will be called with the appropriate stack\n// depth set for trivial functions the logger may ignore.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype DepthLoggerV2 internal.DepthLoggerV2\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/interceptor.go",
    "content": "/*\n *\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n)\n\n// UnaryInvoker is called by UnaryClientInterceptor to complete RPCs.\ntype UnaryInvoker func(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error\n\n// UnaryClientInterceptor intercepts the execution of a unary RPC on the client.\n// Unary interceptors can be specified as a DialOption, using\n// WithUnaryInterceptor() or WithChainUnaryInterceptor(), when creating a\n// ClientConn. When a unary interceptor(s) is set on a ClientConn, gRPC\n// delegates all unary RPC invocations to the interceptor, and it is the\n// responsibility of the interceptor to call invoker to complete the processing\n// of the RPC.\n//\n// method is the RPC name. req and reply are the corresponding request and\n// response messages. cc is the ClientConn on which the RPC was invoked. invoker\n// is the handler to complete the RPC and it is the responsibility of the\n// interceptor to call it. opts contain all applicable call options, including\n// defaults from the ClientConn as well as per-call options.\n//\n// The returned error must be compatible with the status package.\ntype UnaryClientInterceptor func(ctx context.Context, method string, req, reply any, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error\n\n// Streamer is called by StreamClientInterceptor to create a ClientStream.\ntype Streamer func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error)\n\n// StreamClientInterceptor intercepts the creation of a ClientStream. Stream\n// interceptors can be specified as a DialOption, using WithStreamInterceptor()\n// or WithChainStreamInterceptor(), when creating a ClientConn. When a stream\n// interceptor(s) is set on the ClientConn, gRPC delegates all stream creations\n// to the interceptor, and it is the responsibility of the interceptor to call\n// streamer.\n//\n// desc contains a description of the stream. cc is the ClientConn on which the\n// RPC was invoked. streamer is the handler to create a ClientStream and it is\n// the responsibility of the interceptor to call it. opts contain all applicable\n// call options, including defaults from the ClientConn as well as per-call\n// options.\n//\n// StreamClientInterceptor may return a custom ClientStream to intercept all I/O\n// operations. The returned error must be compatible with the status package.\ntype StreamClientInterceptor func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error)\n\n// UnaryServerInfo consists of various information about a unary RPC on\n// server side. All per-rpc information may be mutated by the interceptor.\ntype UnaryServerInfo struct {\n\t// Server is the service implementation the user provides. This is read-only.\n\tServer any\n\t// FullMethod is the full RPC method string, i.e., /package.service/method.\n\tFullMethod string\n}\n\n// UnaryHandler defines the handler invoked by UnaryServerInterceptor to complete the normal\n// execution of a unary RPC.\n//\n// If a UnaryHandler returns an error, it should either be produced by the\n// status package, or be one of the context errors. Otherwise, gRPC will use\n// codes.Unknown as the status code and err.Error() as the status message of the\n// RPC.\ntype UnaryHandler func(ctx context.Context, req any) (any, error)\n\n// UnaryServerInterceptor provides a hook to intercept the execution of a unary RPC on the server. info\n// contains all the information of this RPC the interceptor can operate on. And handler is the wrapper\n// of the service method implementation. It is the responsibility of the interceptor to invoke handler\n// to complete the RPC.\ntype UnaryServerInterceptor func(ctx context.Context, req any, info *UnaryServerInfo, handler UnaryHandler) (resp any, err error)\n\n// StreamServerInfo consists of various information about a streaming RPC on\n// server side. All per-rpc information may be mutated by the interceptor.\ntype StreamServerInfo struct {\n\t// FullMethod is the full RPC method string, i.e., /package.service/method.\n\tFullMethod string\n\t// IsClientStream indicates whether the RPC is a client streaming RPC.\n\tIsClientStream bool\n\t// IsServerStream indicates whether the RPC is a server streaming RPC.\n\tIsServerStream bool\n}\n\n// StreamServerInterceptor provides a hook to intercept the execution of a\n// streaming RPC on the server.\n//\n// srv is the service implementation on which the RPC was invoked, and needs to\n// be passed to handler, and not used otherwise. ss is the server side of the\n// stream. info contains all the information of this RPC the interceptor can\n// operate on. And handler is the service method implementation. It is the\n// responsibility of the interceptor to invoke handler to complete the RPC.\ntype StreamServerInterceptor func(srv any, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/backoff/backoff.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package backoff implement the backoff strategy for gRPC.\n//\n// This is kept in internal until the gRPC project decides whether or not to\n// allow alternative backoff strategies.\npackage backoff\n\nimport (\n\t\"context\"\n\t\"errors\"\n\trand \"math/rand/v2\"\n\t\"time\"\n\n\tgrpcbackoff \"google.golang.org/grpc/backoff\"\n)\n\n// Strategy defines the methodology for backing off after a grpc connection\n// failure.\ntype Strategy interface {\n\t// Backoff returns the amount of time to wait before the next retry given\n\t// the number of consecutive failures.\n\tBackoff(retries int) time.Duration\n}\n\n// DefaultExponential is an exponential backoff implementation using the\n// default values for all the configurable knobs defined in\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\nvar DefaultExponential = Exponential{Config: grpcbackoff.DefaultConfig}\n\n// Exponential implements exponential backoff algorithm as defined in\n// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.\ntype Exponential struct {\n\t// Config contains all options to configure the backoff algorithm.\n\tConfig grpcbackoff.Config\n}\n\n// Backoff returns the amount of time to wait before the next retry given the\n// number of retries.\nfunc (bc Exponential) Backoff(retries int) time.Duration {\n\tif retries == 0 {\n\t\treturn bc.Config.BaseDelay\n\t}\n\tbackoff, max := float64(bc.Config.BaseDelay), float64(bc.Config.MaxDelay)\n\tfor backoff < max && retries > 0 {\n\t\tbackoff *= bc.Config.Multiplier\n\t\tretries--\n\t}\n\tif backoff > max {\n\t\tbackoff = max\n\t}\n\t// Randomize backoff delays so that if a cluster of requests start at\n\t// the same time, they won't operate in lockstep.\n\tbackoff *= 1 + bc.Config.Jitter*(rand.Float64()*2-1)\n\tif backoff < 0 {\n\t\treturn 0\n\t}\n\treturn time.Duration(backoff)\n}\n\n// ErrResetBackoff is the error to be returned by the function executed by RunF,\n// to instruct the latter to reset its backoff state.\nvar ErrResetBackoff = errors.New(\"reset backoff state\")\n\n// RunF provides a convenient way to run a function f repeatedly until the\n// context expires or f returns a non-nil error that is not ErrResetBackoff.\n// When f returns ErrResetBackoff, RunF continues to run f, but resets its\n// backoff state before doing so. backoff accepts an integer representing the\n// number of retries, and returns the amount of time to backoff.\nfunc RunF(ctx context.Context, f func() error, backoff func(int) time.Duration) {\n\tattempt := 0\n\ttimer := time.NewTimer(0)\n\tfor ctx.Err() == nil {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\tcase <-ctx.Done():\n\t\t\ttimer.Stop()\n\t\t\treturn\n\t\t}\n\n\t\terr := f()\n\t\tif errors.Is(err, ErrResetBackoff) {\n\t\t\ttimer.Reset(0)\n\t\t\tattempt = 0\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\ttimer.Reset(backoff(attempt))\n\t\tattempt++\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage gracefulswitch\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\ntype lbConfig struct {\n\tserviceconfig.LoadBalancingConfig\n\n\tchildBuilder balancer.Builder\n\tchildConfig  serviceconfig.LoadBalancingConfig\n}\n\n// ChildName returns the name of the child balancer of the gracefulswitch\n// Balancer.\nfunc ChildName(l serviceconfig.LoadBalancingConfig) string {\n\treturn l.(*lbConfig).childBuilder.Name()\n}\n\n// ParseConfig parses a child config list and returns a LB config for the\n// gracefulswitch Balancer.\n//\n// cfg is expected to be a json.RawMessage containing a JSON array of LB policy\n// names + configs as the format of the \"loadBalancingConfig\" field in\n// ServiceConfig.  It returns a type that should be passed to\n// UpdateClientConnState in the BalancerConfig field.\nfunc ParseConfig(cfg json.RawMessage) (serviceconfig.LoadBalancingConfig, error) {\n\tvar lbCfg []map[string]json.RawMessage\n\tif err := json.Unmarshal(cfg, &lbCfg); err != nil {\n\t\treturn nil, err\n\t}\n\tfor i, e := range lbCfg {\n\t\tif len(e) != 1 {\n\t\t\treturn nil, fmt.Errorf(\"expected a JSON struct with one entry; received entry %v at index %d\", e, i)\n\t\t}\n\n\t\tvar name string\n\t\tvar jsonCfg json.RawMessage\n\t\tfor name, jsonCfg = range e {\n\t\t}\n\n\t\tbuilder := balancer.Get(name)\n\t\tif builder == nil {\n\t\t\t// Skip unregistered balancer names.\n\t\t\tcontinue\n\t\t}\n\n\t\tparser, ok := builder.(balancer.ConfigParser)\n\t\tif !ok {\n\t\t\t// This is a valid child with no config.\n\t\t\treturn &lbConfig{childBuilder: builder}, nil\n\t\t}\n\n\t\tcfg, err := parser.ParseConfig(jsonCfg)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error parsing config for policy %q: %v\", name, err)\n\t\t}\n\t\treturn &lbConfig{childBuilder: builder, childConfig: cfg}, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"no supported policies found in config: %v\", string(cfg))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go",
    "content": "/*\n *\n * Copyright 2022 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package gracefulswitch implements a graceful switch load balancer.\npackage gracefulswitch\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/base\"\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\nvar errBalancerClosed = errors.New(\"gracefulSwitchBalancer is closed\")\nvar _ balancer.Balancer = (*Balancer)(nil)\n\n// NewBalancer returns a graceful switch Balancer.\nfunc NewBalancer(cc balancer.ClientConn, opts balancer.BuildOptions) *Balancer {\n\treturn &Balancer{\n\t\tcc:    cc,\n\t\tbOpts: opts,\n\t}\n}\n\n// Balancer is a utility to gracefully switch from one balancer to\n// a new balancer. It implements the balancer.Balancer interface.\ntype Balancer struct {\n\tbOpts balancer.BuildOptions\n\tcc    balancer.ClientConn\n\n\t// mu protects the following fields and all fields within balancerCurrent\n\t// and balancerPending. mu does not need to be held when calling into the\n\t// child balancers, as all calls into these children happen only as a direct\n\t// result of a call into the gracefulSwitchBalancer, which are also\n\t// guaranteed to be synchronous. There is one exception: an UpdateState call\n\t// from a child balancer when current and pending are populated can lead to\n\t// calling Close() on the current. To prevent that racing with an\n\t// UpdateSubConnState from the channel, we hold currentMu during Close and\n\t// UpdateSubConnState calls.\n\tmu              sync.Mutex\n\tbalancerCurrent *balancerWrapper\n\tbalancerPending *balancerWrapper\n\tclosed          bool // set to true when this balancer is closed\n\n\t// currentMu must be locked before mu. This mutex guards against this\n\t// sequence of events: UpdateSubConnState() called, finds the\n\t// balancerCurrent, gives up lock, updateState comes in, causes Close() on\n\t// balancerCurrent before the UpdateSubConnState is called on the\n\t// balancerCurrent.\n\tcurrentMu sync.Mutex\n\n\t// activeGoroutines tracks all the goroutines that this balancer has started\n\t// and that should be waited on when the balancer closes.\n\tactiveGoroutines sync.WaitGroup\n}\n\n// swap swaps out the current lb with the pending lb and updates the ClientConn.\n// The caller must hold gsb.mu.\nfunc (gsb *Balancer) swap() {\n\tgsb.cc.UpdateState(gsb.balancerPending.lastState)\n\tcur := gsb.balancerCurrent\n\tgsb.balancerCurrent = gsb.balancerPending\n\tgsb.balancerPending = nil\n\tgsb.activeGoroutines.Add(1)\n\tgo func() {\n\t\tdefer gsb.activeGoroutines.Done()\n\t\tgsb.currentMu.Lock()\n\t\tdefer gsb.currentMu.Unlock()\n\t\tcur.Close()\n\t}()\n}\n\n// Helper function that checks if the balancer passed in is current or pending.\n// The caller must hold gsb.mu.\nfunc (gsb *Balancer) balancerCurrentOrPending(bw *balancerWrapper) bool {\n\treturn bw == gsb.balancerCurrent || bw == gsb.balancerPending\n}\n\n// SwitchTo initializes the graceful switch process, which completes based on\n// connectivity state changes on the current/pending balancer. Thus, the switch\n// process is not complete when this method returns. This method must be called\n// synchronously alongside the rest of the balancer.Balancer methods this\n// Graceful Switch Balancer implements.\n//\n// Deprecated: use ParseConfig and pass a parsed config to UpdateClientConnState\n// to cause the Balancer to automatically change to the new child when necessary.\nfunc (gsb *Balancer) SwitchTo(builder balancer.Builder) error {\n\t_, err := gsb.switchTo(builder)\n\treturn err\n}\n\nfunc (gsb *Balancer) switchTo(builder balancer.Builder) (*balancerWrapper, error) {\n\tgsb.mu.Lock()\n\tif gsb.closed {\n\t\tgsb.mu.Unlock()\n\t\treturn nil, errBalancerClosed\n\t}\n\tbw := &balancerWrapper{\n\t\tClientConn: gsb.cc,\n\t\tbuilder:    builder,\n\t\tgsb:        gsb,\n\t\tlastState: balancer.State{\n\t\t\tConnectivityState: connectivity.Connecting,\n\t\t\tPicker:            base.NewErrPicker(balancer.ErrNoSubConnAvailable),\n\t\t},\n\t\tsubconns: make(map[balancer.SubConn]bool),\n\t}\n\tbalToClose := gsb.balancerPending // nil if there is no pending balancer\n\tif gsb.balancerCurrent == nil {\n\t\tgsb.balancerCurrent = bw\n\t} else {\n\t\tgsb.balancerPending = bw\n\t}\n\tgsb.mu.Unlock()\n\tbalToClose.Close()\n\t// This function takes a builder instead of a balancer because builder.Build\n\t// can call back inline, and this utility needs to handle the callbacks.\n\tnewBalancer := builder.Build(bw, gsb.bOpts)\n\tif newBalancer == nil {\n\t\t// This is illegal and should never happen; we clear the balancerWrapper\n\t\t// we were constructing if it happens to avoid a potential panic.\n\t\tgsb.mu.Lock()\n\t\tif gsb.balancerPending != nil {\n\t\t\tgsb.balancerPending = nil\n\t\t} else {\n\t\t\tgsb.balancerCurrent = nil\n\t\t}\n\t\tgsb.mu.Unlock()\n\t\treturn nil, balancer.ErrBadResolverState\n\t}\n\n\t// This write doesn't need to take gsb.mu because this field never gets read\n\t// or written to on any calls from the current or pending. Calls from grpc\n\t// to this balancer are guaranteed to be called synchronously, so this\n\t// bw.Balancer field will never be forwarded to until this SwitchTo()\n\t// function returns.\n\tbw.Balancer = newBalancer\n\treturn bw, nil\n}\n\n// Returns nil if the graceful switch balancer is closed.\nfunc (gsb *Balancer) latestBalancer() *balancerWrapper {\n\tgsb.mu.Lock()\n\tdefer gsb.mu.Unlock()\n\tif gsb.balancerPending != nil {\n\t\treturn gsb.balancerPending\n\t}\n\treturn gsb.balancerCurrent\n}\n\n// UpdateClientConnState forwards the update to the latest balancer created.\n//\n// If the state's BalancerConfig is the config returned by a call to\n// gracefulswitch.ParseConfig, then this function will automatically SwitchTo\n// the balancer indicated by the config before forwarding its config to it, if\n// necessary.\nfunc (gsb *Balancer) UpdateClientConnState(state balancer.ClientConnState) error {\n\t// The resolver data is only relevant to the most recent LB Policy.\n\tbalToUpdate := gsb.latestBalancer()\n\tgsbCfg, ok := state.BalancerConfig.(*lbConfig)\n\tif ok {\n\t\t// Switch to the child in the config unless it is already active.\n\t\tif balToUpdate == nil || gsbCfg.childBuilder.Name() != balToUpdate.builder.Name() {\n\t\t\tvar err error\n\t\t\tbalToUpdate, err = gsb.switchTo(gsbCfg.childBuilder)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"could not switch to new child balancer: %w\", err)\n\t\t\t}\n\t\t}\n\t\t// Unwrap the child balancer's config.\n\t\tstate.BalancerConfig = gsbCfg.childConfig\n\t}\n\n\tif balToUpdate == nil {\n\t\treturn errBalancerClosed\n\t}\n\n\t// Perform this call without gsb.mu to prevent deadlocks if the child calls\n\t// back into the channel. The latest balancer can never be closed during a\n\t// call from the channel, even without gsb.mu held.\n\treturn balToUpdate.UpdateClientConnState(state)\n}\n\n// ResolverError forwards the error to the latest balancer created.\nfunc (gsb *Balancer) ResolverError(err error) {\n\t// The resolver data is only relevant to the most recent LB Policy.\n\tbalToUpdate := gsb.latestBalancer()\n\tif balToUpdate == nil {\n\t\tgsb.cc.UpdateState(balancer.State{\n\t\t\tConnectivityState: connectivity.TransientFailure,\n\t\t\tPicker:            base.NewErrPicker(err),\n\t\t})\n\t\treturn\n\t}\n\t// Perform this call without gsb.mu to prevent deadlocks if the child calls\n\t// back into the channel. The latest balancer can never be closed during a\n\t// call from the channel, even without gsb.mu held.\n\tbalToUpdate.ResolverError(err)\n}\n\n// ExitIdle forwards the call to the latest balancer created.\n//\n// If the latest balancer does not support ExitIdle, the subConns are\n// re-connected to manually.\nfunc (gsb *Balancer) ExitIdle() {\n\tbalToUpdate := gsb.latestBalancer()\n\tif balToUpdate == nil {\n\t\treturn\n\t}\n\t// There is no need to protect this read with a mutex, as the write to the\n\t// Balancer field happens in SwitchTo, which completes before this can be\n\t// called.\n\tbalToUpdate.ExitIdle()\n}\n\n// updateSubConnState forwards the update to the appropriate child.\nfunc (gsb *Balancer) updateSubConnState(sc balancer.SubConn, state balancer.SubConnState, cb func(balancer.SubConnState)) {\n\tgsb.currentMu.Lock()\n\tdefer gsb.currentMu.Unlock()\n\tgsb.mu.Lock()\n\t// Forward update to the appropriate child.  Even if there is a pending\n\t// balancer, the current balancer should continue to get SubConn updates to\n\t// maintain the proper state while the pending is still connecting.\n\tvar balToUpdate *balancerWrapper\n\tif gsb.balancerCurrent != nil && gsb.balancerCurrent.subconns[sc] {\n\t\tbalToUpdate = gsb.balancerCurrent\n\t} else if gsb.balancerPending != nil && gsb.balancerPending.subconns[sc] {\n\t\tbalToUpdate = gsb.balancerPending\n\t}\n\tif balToUpdate == nil {\n\t\t// SubConn belonged to a stale lb policy that has not yet fully closed,\n\t\t// or the balancer was already closed.\n\t\tgsb.mu.Unlock()\n\t\treturn\n\t}\n\tif state.ConnectivityState == connectivity.Shutdown {\n\t\tdelete(balToUpdate.subconns, sc)\n\t}\n\tgsb.mu.Unlock()\n\tif cb != nil {\n\t\tcb(state)\n\t} else {\n\t\tbalToUpdate.UpdateSubConnState(sc, state)\n\t}\n}\n\n// UpdateSubConnState forwards the update to the appropriate child.\nfunc (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {\n\tgsb.updateSubConnState(sc, state, nil)\n}\n\n// Close closes any active child balancers.\nfunc (gsb *Balancer) Close() {\n\tgsb.mu.Lock()\n\tgsb.closed = true\n\tcurrentBalancerToClose := gsb.balancerCurrent\n\tgsb.balancerCurrent = nil\n\tpendingBalancerToClose := gsb.balancerPending\n\tgsb.balancerPending = nil\n\tgsb.mu.Unlock()\n\n\tcurrentBalancerToClose.Close()\n\tpendingBalancerToClose.Close()\n\tgsb.activeGoroutines.Wait()\n}\n\n// balancerWrapper wraps a balancer.Balancer, and overrides some Balancer\n// methods to help cleanup SubConns created by the wrapped balancer.\n//\n// It implements the balancer.ClientConn interface and is passed down in that\n// capacity to the wrapped balancer. It maintains a set of subConns created by\n// the wrapped balancer and calls from the latter to create/update/shutdown\n// SubConns update this set before being forwarded to the parent ClientConn.\n// State updates from the wrapped balancer can result in invocation of the\n// graceful switch logic.\ntype balancerWrapper struct {\n\tbalancer.ClientConn\n\tbalancer.Balancer\n\tgsb     *Balancer\n\tbuilder balancer.Builder\n\n\tlastState balancer.State\n\tsubconns  map[balancer.SubConn]bool // subconns created by this balancer\n}\n\n// Close closes the underlying LB policy and shuts down the subconns it\n// created. bw must not be referenced via balancerCurrent or balancerPending in\n// gsb when called. gsb.mu must not be held.  Does not panic with a nil\n// receiver.\nfunc (bw *balancerWrapper) Close() {\n\t// before Close is called.\n\tif bw == nil {\n\t\treturn\n\t}\n\t// There is no need to protect this read with a mutex, as Close() is\n\t// impossible to be called concurrently with the write in SwitchTo(). The\n\t// callsites of Close() for this balancer in Graceful Switch Balancer will\n\t// never be called until SwitchTo() returns.\n\tbw.Balancer.Close()\n\tbw.gsb.mu.Lock()\n\tfor sc := range bw.subconns {\n\t\tsc.Shutdown()\n\t}\n\tbw.gsb.mu.Unlock()\n}\n\nfunc (bw *balancerWrapper) UpdateState(state balancer.State) {\n\t// Hold the mutex for this entire call to ensure it cannot occur\n\t// concurrently with other updateState() calls. This causes updates to\n\t// lastState and calls to cc.UpdateState to happen atomically.\n\tbw.gsb.mu.Lock()\n\tdefer bw.gsb.mu.Unlock()\n\tbw.lastState = state\n\n\t// If Close() acquires the mutex before UpdateState(), the balancer\n\t// will already have been removed from the current or pending state when\n\t// reaching this point.\n\tif !bw.gsb.balancerCurrentOrPending(bw) {\n\t\t// Returning here ensures that (*Balancer).swap() is not invoked after\n\t\t// (*Balancer).Close() and therefore prevents \"use after close\".\n\t\treturn\n\t}\n\n\tif bw == bw.gsb.balancerCurrent {\n\t\t// In the case that the current balancer exits READY, and there is a pending\n\t\t// balancer, you can forward the pending balancer's cached State up to\n\t\t// ClientConn and swap the pending into the current. This is because there\n\t\t// is no reason to gracefully switch from and keep using the old policy as\n\t\t// the ClientConn is not connected to any backends.\n\t\tif state.ConnectivityState != connectivity.Ready && bw.gsb.balancerPending != nil {\n\t\t\tbw.gsb.swap()\n\t\t\treturn\n\t\t}\n\t\t// Even if there is a pending balancer waiting to be gracefully switched to,\n\t\t// continue to forward current balancer updates to the Client Conn. Ignoring\n\t\t// state + picker from the current would cause undefined behavior/cause the\n\t\t// system to behave incorrectly from the current LB policies perspective.\n\t\t// Also, the current LB is still being used by grpc to choose SubConns per\n\t\t// RPC, and thus should use the most updated form of the current balancer.\n\t\tbw.gsb.cc.UpdateState(state)\n\t\treturn\n\t}\n\t// This method is now dealing with a state update from the pending balancer.\n\t// If the current balancer is currently in a state other than READY, the new\n\t// policy can be swapped into place immediately. This is because there is no\n\t// reason to gracefully switch from and keep using the old policy as the\n\t// ClientConn is not connected to any backends.\n\tif state.ConnectivityState != connectivity.Connecting || bw.gsb.balancerCurrent.lastState.ConnectivityState != connectivity.Ready {\n\t\tbw.gsb.swap()\n\t}\n}\n\nfunc (bw *balancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) {\n\tbw.gsb.mu.Lock()\n\tif !bw.gsb.balancerCurrentOrPending(bw) {\n\t\tbw.gsb.mu.Unlock()\n\t\treturn nil, fmt.Errorf(\"%T at address %p that called NewSubConn is deleted\", bw, bw)\n\t}\n\tbw.gsb.mu.Unlock()\n\n\tvar sc balancer.SubConn\n\toldListener := opts.StateListener\n\topts.StateListener = func(state balancer.SubConnState) { bw.gsb.updateSubConnState(sc, state, oldListener) }\n\tsc, err := bw.gsb.cc.NewSubConn(addrs, opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbw.gsb.mu.Lock()\n\tif !bw.gsb.balancerCurrentOrPending(bw) { // balancer was closed during this call\n\t\tsc.Shutdown()\n\t\tbw.gsb.mu.Unlock()\n\t\treturn nil, fmt.Errorf(\"%T at address %p that called NewSubConn is deleted\", bw, bw)\n\t}\n\tbw.subconns[sc] = true\n\tbw.gsb.mu.Unlock()\n\treturn sc, nil\n}\n\nfunc (bw *balancerWrapper) ResolveNow(opts resolver.ResolveNowOptions) {\n\t// Ignore ResolveNow requests from anything other than the most recent\n\t// balancer, because older balancers were already removed from the config.\n\tif bw != bw.gsb.latestBalancer() {\n\t\treturn\n\t}\n\tbw.gsb.cc.ResolveNow(opts)\n}\n\nfunc (bw *balancerWrapper) RemoveSubConn(sc balancer.SubConn) {\n\t// Note: existing third party balancers may call this, so it must remain\n\t// until RemoveSubConn is fully removed.\n\tsc.Shutdown()\n}\n\nfunc (bw *balancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) {\n\tbw.gsb.mu.Lock()\n\tif !bw.gsb.balancerCurrentOrPending(bw) {\n\t\tbw.gsb.mu.Unlock()\n\t\treturn\n\t}\n\tbw.gsb.mu.Unlock()\n\tbw.gsb.cc.UpdateAddresses(sc, addrs)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/balancer/weight/weight.go",
    "content": "/*\n *\n * Copyright 2025 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package weight contains utilities to manage endpoint weights. Weights are\n// used by LB policies such as ringhash to distribute load across multiple\n// endpoints.\npackage weight\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// attributeKey is the type used as the key to store EndpointInfo in the\n// Attributes field of resolver.Endpoint.\ntype attributeKey struct{}\n\n// EndpointInfo will be stored in the Attributes field of Endpoints in order to\n// use the ringhash balancer.\ntype EndpointInfo struct {\n\tWeight uint32\n}\n\n// Equal allows the values to be compared by Attributes.Equal.\nfunc (a EndpointInfo) Equal(o any) bool {\n\toa, ok := o.(EndpointInfo)\n\treturn ok && oa.Weight == a.Weight\n}\n\n// Set returns a copy of endpoint in which the Attributes field is updated with\n// EndpointInfo.\nfunc Set(endpoint resolver.Endpoint, epInfo EndpointInfo) resolver.Endpoint {\n\tendpoint.Attributes = endpoint.Attributes.WithValue(attributeKey{}, epInfo)\n\treturn endpoint\n}\n\n// String returns a human-readable representation of EndpointInfo.\n// This method is intended for logging, testing, and debugging purposes only.\n// Do not rely on the output format, as it is not guaranteed to remain stable.\nfunc (a EndpointInfo) String() string {\n\treturn fmt.Sprintf(\"Weight: %d\", a.Weight)\n}\n\n// FromEndpoint returns the EndpointInfo stored in the Attributes field of an\n// endpoint. It returns an empty EndpointInfo if attribute is not found.\nfunc FromEndpoint(endpoint resolver.Endpoint) EndpointInfo {\n\tv := endpoint.Attributes.Value(attributeKey{})\n\tei, _ := v.(EndpointInfo)\n\treturn ei\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/balancerload/load.go",
    "content": "/*\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Package balancerload defines APIs to parse server loads in trailers. The\n// parsed loads are sent to balancers in DoneInfo.\npackage balancerload\n\nimport (\n\t\"google.golang.org/grpc/metadata\"\n)\n\n// Parser converts loads from metadata into a concrete type.\ntype Parser interface {\n\t// Parse parses loads from metadata.\n\tParse(md metadata.MD) any\n}\n\nvar parser Parser\n\n// SetParser sets the load parser.\n//\n// Not mutex-protected, should be called before any gRPC functions.\nfunc SetParser(lr Parser) {\n\tparser = lr\n}\n\n// Parse calls parser.Read().\nfunc Parse(md metadata.MD) any {\n\tif parser == nil {\n\t\treturn nil\n\t}\n\treturn parser.Parse(md)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/binarylog/binarylog.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package binarylog implementation binary logging as defined in\n// https://github.com/grpc/proposal/blob/master/A16-binary-logging.md.\npackage binarylog\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n)\n\nvar grpclogLogger = grpclog.Component(\"binarylog\")\n\n// Logger specifies MethodLoggers for method names with a Log call that\n// takes a context.\n//\n// This is used in the 1.0 release of gcp/observability, and thus must not be\n// deleted or changed.\ntype Logger interface {\n\tGetMethodLogger(methodName string) MethodLogger\n}\n\n// binLogger is the global binary logger for the binary. One of this should be\n// built at init time from the configuration (environment variable or flags).\n//\n// It is used to get a MethodLogger for each individual method.\nvar binLogger Logger\n\n// SetLogger sets the binary logger.\n//\n// Only call this at init time.\nfunc SetLogger(l Logger) {\n\tbinLogger = l\n}\n\n// GetLogger gets the binary logger.\n//\n// Only call this at init time.\nfunc GetLogger() Logger {\n\treturn binLogger\n}\n\n// GetMethodLogger returns the MethodLogger for the given methodName.\n//\n// methodName should be in the format of \"/service/method\".\n//\n// Each MethodLogger returned by this method is a new instance. This is to\n// generate sequence id within the call.\nfunc GetMethodLogger(methodName string) MethodLogger {\n\tif binLogger == nil {\n\t\treturn nil\n\t}\n\treturn binLogger.GetMethodLogger(methodName)\n}\n\nfunc init() {\n\tconst envStr = \"GRPC_BINARY_LOG_FILTER\"\n\tconfigStr := os.Getenv(envStr)\n\tbinLogger = NewLoggerFromConfigString(configStr)\n}\n\n// MethodLoggerConfig contains the setting for logging behavior of a method\n// logger. Currently, it contains the max length of header and message.\ntype MethodLoggerConfig struct {\n\t// Max length of header and message.\n\tHeader, Message uint64\n}\n\n// LoggerConfig contains the config for loggers to create method loggers.\ntype LoggerConfig struct {\n\tAll      *MethodLoggerConfig\n\tServices map[string]*MethodLoggerConfig\n\tMethods  map[string]*MethodLoggerConfig\n\n\tBlacklist map[string]struct{}\n}\n\ntype logger struct {\n\tconfig LoggerConfig\n}\n\n// NewLoggerFromConfig builds a logger with the given LoggerConfig.\nfunc NewLoggerFromConfig(config LoggerConfig) Logger {\n\treturn &logger{config: config}\n}\n\n// newEmptyLogger creates an empty logger. The map fields need to be filled in\n// using the set* functions.\nfunc newEmptyLogger() *logger {\n\treturn &logger{}\n}\n\n// Set method logger for \"*\".\nfunc (l *logger) setDefaultMethodLogger(ml *MethodLoggerConfig) error {\n\tif l.config.All != nil {\n\t\treturn fmt.Errorf(\"conflicting global rules found\")\n\t}\n\tl.config.All = ml\n\treturn nil\n}\n\n// Set method logger for \"service/*\".\n//\n// New MethodLogger with same service overrides the old one.\nfunc (l *logger) setServiceMethodLogger(service string, ml *MethodLoggerConfig) error {\n\tif _, ok := l.config.Services[service]; ok {\n\t\treturn fmt.Errorf(\"conflicting service rules for service %v found\", service)\n\t}\n\tif l.config.Services == nil {\n\t\tl.config.Services = make(map[string]*MethodLoggerConfig)\n\t}\n\tl.config.Services[service] = ml\n\treturn nil\n}\n\n// Set method logger for \"service/method\".\n//\n// New MethodLogger with same method overrides the old one.\nfunc (l *logger) setMethodMethodLogger(method string, ml *MethodLoggerConfig) error {\n\tif _, ok := l.config.Blacklist[method]; ok {\n\t\treturn fmt.Errorf(\"conflicting blacklist rules for method %v found\", method)\n\t}\n\tif _, ok := l.config.Methods[method]; ok {\n\t\treturn fmt.Errorf(\"conflicting method rules for method %v found\", method)\n\t}\n\tif l.config.Methods == nil {\n\t\tl.config.Methods = make(map[string]*MethodLoggerConfig)\n\t}\n\tl.config.Methods[method] = ml\n\treturn nil\n}\n\n// Set blacklist method for \"-service/method\".\nfunc (l *logger) setBlacklist(method string) error {\n\tif _, ok := l.config.Blacklist[method]; ok {\n\t\treturn fmt.Errorf(\"conflicting blacklist rules for method %v found\", method)\n\t}\n\tif _, ok := l.config.Methods[method]; ok {\n\t\treturn fmt.Errorf(\"conflicting method rules for method %v found\", method)\n\t}\n\tif l.config.Blacklist == nil {\n\t\tl.config.Blacklist = make(map[string]struct{})\n\t}\n\tl.config.Blacklist[method] = struct{}{}\n\treturn nil\n}\n\n// getMethodLogger returns the MethodLogger for the given methodName.\n//\n// methodName should be in the format of \"/service/method\".\n//\n// Each MethodLogger returned by this method is a new instance. This is to\n// generate sequence id within the call.\nfunc (l *logger) GetMethodLogger(methodName string) MethodLogger {\n\ts, m, err := grpcutil.ParseMethod(methodName)\n\tif err != nil {\n\t\tgrpclogLogger.Infof(\"binarylogging: failed to parse %q: %v\", methodName, err)\n\t\treturn nil\n\t}\n\tif ml, ok := l.config.Methods[s+\"/\"+m]; ok {\n\t\treturn NewTruncatingMethodLogger(ml.Header, ml.Message)\n\t}\n\tif _, ok := l.config.Blacklist[s+\"/\"+m]; ok {\n\t\treturn nil\n\t}\n\tif ml, ok := l.config.Services[s]; ok {\n\t\treturn NewTruncatingMethodLogger(ml.Header, ml.Message)\n\t}\n\tif l.config.All == nil {\n\t\treturn nil\n\t}\n\treturn NewTruncatingMethodLogger(l.config.All.Header, l.config.All.Message)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// This file contains exported variables/functions that are exported for testing\n// only.\n//\n// An ideal way for this would be to put those in a *_test.go but in binarylog\n// package. But this doesn't work with staticcheck with go module. Error was:\n// \"MdToMetadataProto not declared by package binarylog\". This could be caused\n// by the way staticcheck looks for files for a certain package, which doesn't\n// support *_test.go files.\n//\n// Move those to binary_test.go when staticcheck is fixed.\n\npackage binarylog\n\nvar (\n\t// AllLogger is a logger that logs all headers/messages for all RPCs. It's\n\t// for testing only.\n\tAllLogger = NewLoggerFromConfigString(\"*\")\n\t// MdToMetadataProto converts metadata to a binary logging proto message.\n\t// It's for testing only.\n\tMdToMetadataProto = mdToMetadataProto\n\t// AddrToProto converts an address to a binary logging proto message. It's\n\t// for testing only.\n\tAddrToProto = addrToProto\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/binarylog/env_config.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage binarylog\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// NewLoggerFromConfigString reads the string and build a logger. It can be used\n// to build a new logger and assign it to binarylog.Logger.\n//\n// Example filter config strings:\n//   - \"\" Nothing will be logged\n//   - \"*\" All headers and messages will be fully logged.\n//   - \"*{h}\" Only headers will be logged.\n//   - \"*{m:256}\" Only the first 256 bytes of each message will be logged.\n//   - \"Foo/*\" Logs every method in service Foo\n//   - \"Foo/*,-Foo/Bar\" Logs every method in service Foo except method /Foo/Bar\n//   - \"Foo/*,Foo/Bar{m:256}\" Logs the first 256 bytes of each message in method\n//     /Foo/Bar, logs all headers and messages in every other method in service\n//     Foo.\n//\n// If two configs exist for one certain method or service, the one specified\n// later overrides the previous config.\nfunc NewLoggerFromConfigString(s string) Logger {\n\tif s == \"\" {\n\t\treturn nil\n\t}\n\tl := newEmptyLogger()\n\tmethods := strings.Split(s, \",\")\n\tfor _, method := range methods {\n\t\tif err := l.fillMethodLoggerWithConfigString(method); err != nil {\n\t\t\tgrpclogLogger.Warningf(\"failed to parse binary log config: %v\", err)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn l\n}\n\n// fillMethodLoggerWithConfigString parses config, creates TruncatingMethodLogger and adds\n// it to the right map in the logger.\nfunc (l *logger) fillMethodLoggerWithConfigString(config string) error {\n\t// \"\" is invalid.\n\tif config == \"\" {\n\t\treturn errors.New(\"empty string is not a valid method binary logging config\")\n\t}\n\n\t// \"-service/method\", blacklist, no * or {} allowed.\n\tif config[0] == '-' {\n\t\ts, m, suffix, err := parseMethodConfigAndSuffix(config[1:])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %q, %v\", config, err)\n\t\t}\n\t\tif m == \"*\" {\n\t\t\treturn fmt.Errorf(\"invalid config: %q, %v\", config, \"* not allowed in blacklist config\")\n\t\t}\n\t\tif suffix != \"\" {\n\t\t\treturn fmt.Errorf(\"invalid config: %q, %v\", config, \"header/message limit not allowed in blacklist config\")\n\t\t}\n\t\tif err := l.setBlacklist(s + \"/\" + m); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %v\", err)\n\t\t}\n\t\treturn nil\n\t}\n\n\t// \"*{h:256;m:256}\"\n\tif config[0] == '*' {\n\t\thdr, msg, err := parseHeaderMessageLengthConfig(config[1:])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %q, %v\", config, err)\n\t\t}\n\t\tif err := l.setDefaultMethodLogger(&MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %v\", err)\n\t\t}\n\t\treturn nil\n\t}\n\n\ts, m, suffix, err := parseMethodConfigAndSuffix(config)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"invalid config: %q, %v\", config, err)\n\t}\n\thdr, msg, err := parseHeaderMessageLengthConfig(suffix)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"invalid header/message length config: %q, %v\", suffix, err)\n\t}\n\tif m == \"*\" {\n\t\tif err := l.setServiceMethodLogger(s, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %v\", err)\n\t\t}\n\t} else {\n\t\tif err := l.setMethodMethodLogger(s+\"/\"+m, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid config: %v\", err)\n\t\t}\n\t}\n\treturn nil\n}\n\nconst (\n\t// TODO: this const is only used by env_config now. But could be useful for\n\t// other config. Move to binarylog.go if necessary.\n\tmaxUInt = ^uint64(0)\n\n\t// For \"p.s/m\" plus any suffix. Suffix will be parsed again. See test for\n\t// expected output.\n\tlongMethodConfigRegexpStr = `^([\\w./]+)/((?:\\w+)|[*])(.+)?$`\n\n\t// For suffix from above, \"{h:123,m:123}\". See test for expected output.\n\toptionalLengthRegexpStr      = `(?::(\\d+))?` // Optional \":123\".\n\theaderConfigRegexpStr        = `^{h` + optionalLengthRegexpStr + `}$`\n\tmessageConfigRegexpStr       = `^{m` + optionalLengthRegexpStr + `}$`\n\theaderMessageConfigRegexpStr = `^{h` + optionalLengthRegexpStr + `;m` + optionalLengthRegexpStr + `}$`\n)\n\nvar (\n\tlongMethodConfigRegexp    = regexp.MustCompile(longMethodConfigRegexpStr)\n\theaderConfigRegexp        = regexp.MustCompile(headerConfigRegexpStr)\n\tmessageConfigRegexp       = regexp.MustCompile(messageConfigRegexpStr)\n\theaderMessageConfigRegexp = regexp.MustCompile(headerMessageConfigRegexpStr)\n)\n\n// Turn \"service/method{h;m}\" into \"service\", \"method\", \"{h;m}\".\nfunc parseMethodConfigAndSuffix(c string) (service, method, suffix string, _ error) {\n\t// Regexp result:\n\t//\n\t// in:  \"p.s/m{h:123,m:123}\",\n\t// out: []string{\"p.s/m{h:123,m:123}\", \"p.s\", \"m\", \"{h:123,m:123}\"},\n\tmatch := longMethodConfigRegexp.FindStringSubmatch(c)\n\tif match == nil {\n\t\treturn \"\", \"\", \"\", fmt.Errorf(\"%q contains invalid substring\", c)\n\t}\n\tservice = match[1]\n\tmethod = match[2]\n\tsuffix = match[3]\n\treturn\n}\n\n// Turn \"{h:123;m:345}\" into 123, 345.\n//\n// Return maxUInt if length is unspecified.\nfunc parseHeaderMessageLengthConfig(c string) (hdrLenStr, msgLenStr uint64, err error) {\n\tif c == \"\" {\n\t\treturn maxUInt, maxUInt, nil\n\t}\n\t// Header config only.\n\tif match := headerConfigRegexp.FindStringSubmatch(c); match != nil {\n\t\tif s := match[1]; s != \"\" {\n\t\t\thdrLenStr, err = strconv.ParseUint(s, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, 0, fmt.Errorf(\"failed to convert %q to uint\", s)\n\t\t\t}\n\t\t\treturn hdrLenStr, 0, nil\n\t\t}\n\t\treturn maxUInt, 0, nil\n\t}\n\n\t// Message config only.\n\tif match := messageConfigRegexp.FindStringSubmatch(c); match != nil {\n\t\tif s := match[1]; s != \"\" {\n\t\t\tmsgLenStr, err = strconv.ParseUint(s, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, 0, fmt.Errorf(\"failed to convert %q to uint\", s)\n\t\t\t}\n\t\t\treturn 0, msgLenStr, nil\n\t\t}\n\t\treturn 0, maxUInt, nil\n\t}\n\n\t// Header and message config both.\n\tif match := headerMessageConfigRegexp.FindStringSubmatch(c); match != nil {\n\t\t// Both hdr and msg are specified, but one or two of them might be empty.\n\t\thdrLenStr = maxUInt\n\t\tmsgLenStr = maxUInt\n\t\tif s := match[1]; s != \"\" {\n\t\t\thdrLenStr, err = strconv.ParseUint(s, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, 0, fmt.Errorf(\"failed to convert %q to uint\", s)\n\t\t\t}\n\t\t}\n\t\tif s := match[2]; s != \"\" {\n\t\t\tmsgLenStr, err = strconv.ParseUint(s, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, 0, fmt.Errorf(\"failed to convert %q to uint\", s)\n\t\t\t}\n\t\t}\n\t\treturn hdrLenStr, msgLenStr, nil\n\t}\n\treturn 0, 0, fmt.Errorf(\"%q contains invalid substring\", c)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/binarylog/method_logger.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage binarylog\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"strings\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tbinlogpb \"google.golang.org/grpc/binarylog/grpc_binarylog_v1\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/types/known/durationpb\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n)\n\ntype callIDGenerator struct {\n\tid uint64\n}\n\nfunc (g *callIDGenerator) next() uint64 {\n\tid := atomic.AddUint64(&g.id, 1)\n\treturn id\n}\n\n// reset is for testing only, and doesn't need to be thread safe.\nfunc (g *callIDGenerator) reset() {\n\tg.id = 0\n}\n\nvar idGen callIDGenerator\n\n// MethodLogger is the sub-logger for each method.\n//\n// This is used in the 1.0 release of gcp/observability, and thus must not be\n// deleted or changed.\ntype MethodLogger interface {\n\tLog(context.Context, LogEntryConfig)\n}\n\n// TruncatingMethodLogger is a method logger that truncates headers and messages\n// based on configured fields.\ntype TruncatingMethodLogger struct {\n\theaderMaxLen, messageMaxLen uint64\n\n\tcallID          uint64\n\tidWithinCallGen *callIDGenerator\n\n\tsink Sink // TODO(blog): make this pluggable.\n}\n\n// NewTruncatingMethodLogger returns a new truncating method logger.\n//\n// This is used in the 1.0 release of gcp/observability, and thus must not be\n// deleted or changed.\nfunc NewTruncatingMethodLogger(h, m uint64) *TruncatingMethodLogger {\n\treturn &TruncatingMethodLogger{\n\t\theaderMaxLen:  h,\n\t\tmessageMaxLen: m,\n\n\t\tcallID:          idGen.next(),\n\t\tidWithinCallGen: &callIDGenerator{},\n\n\t\tsink: DefaultSink, // TODO(blog): make it pluggable.\n\t}\n}\n\n// Build is an internal only method for building the proto message out of the\n// input event. It's made public to enable other library to reuse as much logic\n// in TruncatingMethodLogger as possible.\nfunc (ml *TruncatingMethodLogger) Build(c LogEntryConfig) *binlogpb.GrpcLogEntry {\n\tm := c.toProto()\n\ttimestamp := timestamppb.Now()\n\tm.Timestamp = timestamp\n\tm.CallId = ml.callID\n\tm.SequenceIdWithinCall = ml.idWithinCallGen.next()\n\n\tswitch pay := m.Payload.(type) {\n\tcase *binlogpb.GrpcLogEntry_ClientHeader:\n\t\tm.PayloadTruncated = ml.truncateMetadata(pay.ClientHeader.GetMetadata())\n\tcase *binlogpb.GrpcLogEntry_ServerHeader:\n\t\tm.PayloadTruncated = ml.truncateMetadata(pay.ServerHeader.GetMetadata())\n\tcase *binlogpb.GrpcLogEntry_Message:\n\t\tm.PayloadTruncated = ml.truncateMessage(pay.Message)\n\t}\n\treturn m\n}\n\n// Log creates a proto binary log entry, and logs it to the sink.\nfunc (ml *TruncatingMethodLogger) Log(_ context.Context, c LogEntryConfig) {\n\tml.sink.Write(ml.Build(c))\n}\n\nfunc (ml *TruncatingMethodLogger) truncateMetadata(mdPb *binlogpb.Metadata) (truncated bool) {\n\tif ml.headerMaxLen == maxUInt {\n\t\treturn false\n\t}\n\tvar (\n\t\tbytesLimit = ml.headerMaxLen\n\t\tindex      int\n\t)\n\t// At the end of the loop, index will be the first entry where the total\n\t// size is greater than the limit:\n\t//\n\t// len(entry[:index]) <= ml.hdr && len(entry[:index+1]) > ml.hdr.\n\tfor ; index < len(mdPb.Entry); index++ {\n\t\tentry := mdPb.Entry[index]\n\t\tif entry.Key == \"grpc-trace-bin\" {\n\t\t\t// \"grpc-trace-bin\" is a special key. It's kept in the log entry,\n\t\t\t// but not counted towards the size limit.\n\t\t\tcontinue\n\t\t}\n\t\tcurrentEntryLen := uint64(len(entry.GetKey())) + uint64(len(entry.GetValue()))\n\t\tif currentEntryLen > bytesLimit {\n\t\t\tbreak\n\t\t}\n\t\tbytesLimit -= currentEntryLen\n\t}\n\ttruncated = index < len(mdPb.Entry)\n\tmdPb.Entry = mdPb.Entry[:index]\n\treturn truncated\n}\n\nfunc (ml *TruncatingMethodLogger) truncateMessage(msgPb *binlogpb.Message) (truncated bool) {\n\tif ml.messageMaxLen == maxUInt {\n\t\treturn false\n\t}\n\tif ml.messageMaxLen >= uint64(len(msgPb.Data)) {\n\t\treturn false\n\t}\n\tmsgPb.Data = msgPb.Data[:ml.messageMaxLen]\n\treturn true\n}\n\n// LogEntryConfig represents the configuration for binary log entry.\n//\n// This is used in the 1.0 release of gcp/observability, and thus must not be\n// deleted or changed.\ntype LogEntryConfig interface {\n\ttoProto() *binlogpb.GrpcLogEntry\n}\n\n// ClientHeader configs the binary log entry to be a ClientHeader entry.\ntype ClientHeader struct {\n\tOnClientSide bool\n\tHeader       metadata.MD\n\tMethodName   string\n\tAuthority    string\n\tTimeout      time.Duration\n\t// PeerAddr is required only when it's on server side.\n\tPeerAddr net.Addr\n}\n\nfunc (c *ClientHeader) toProto() *binlogpb.GrpcLogEntry {\n\t// This function doesn't need to set all the fields (e.g. seq ID). The Log\n\t// function will set the fields when necessary.\n\tclientHeader := &binlogpb.ClientHeader{\n\t\tMetadata:   mdToMetadataProto(c.Header),\n\t\tMethodName: c.MethodName,\n\t\tAuthority:  c.Authority,\n\t}\n\tif c.Timeout > 0 {\n\t\tclientHeader.Timeout = durationpb.New(c.Timeout)\n\t}\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType: binlogpb.GrpcLogEntry_EVENT_TYPE_CLIENT_HEADER,\n\t\tPayload: &binlogpb.GrpcLogEntry_ClientHeader{\n\t\t\tClientHeader: clientHeader,\n\t\t},\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\tif c.PeerAddr != nil {\n\t\tret.Peer = addrToProto(c.PeerAddr)\n\t}\n\treturn ret\n}\n\n// ServerHeader configs the binary log entry to be a ServerHeader entry.\ntype ServerHeader struct {\n\tOnClientSide bool\n\tHeader       metadata.MD\n\t// PeerAddr is required only when it's on client side.\n\tPeerAddr net.Addr\n}\n\nfunc (c *ServerHeader) toProto() *binlogpb.GrpcLogEntry {\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType: binlogpb.GrpcLogEntry_EVENT_TYPE_SERVER_HEADER,\n\t\tPayload: &binlogpb.GrpcLogEntry_ServerHeader{\n\t\t\tServerHeader: &binlogpb.ServerHeader{\n\t\t\t\tMetadata: mdToMetadataProto(c.Header),\n\t\t\t},\n\t\t},\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\tif c.PeerAddr != nil {\n\t\tret.Peer = addrToProto(c.PeerAddr)\n\t}\n\treturn ret\n}\n\n// ClientMessage configs the binary log entry to be a ClientMessage entry.\ntype ClientMessage struct {\n\tOnClientSide bool\n\t// Message can be a proto.Message or []byte. Other messages formats are not\n\t// supported.\n\tMessage any\n}\n\nfunc (c *ClientMessage) toProto() *binlogpb.GrpcLogEntry {\n\tvar (\n\t\tdata []byte\n\t\terr  error\n\t)\n\tif m, ok := c.Message.(proto.Message); ok {\n\t\tdata, err = proto.Marshal(m)\n\t\tif err != nil {\n\t\t\tgrpclogLogger.Infof(\"binarylogging: failed to marshal proto message: %v\", err)\n\t\t}\n\t} else if b, ok := c.Message.([]byte); ok {\n\t\tdata = b\n\t} else {\n\t\tgrpclogLogger.Infof(\"binarylogging: message to log is neither proto.message nor []byte\")\n\t}\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType: binlogpb.GrpcLogEntry_EVENT_TYPE_CLIENT_MESSAGE,\n\t\tPayload: &binlogpb.GrpcLogEntry_Message{\n\t\t\tMessage: &binlogpb.Message{\n\t\t\t\tLength: uint32(len(data)),\n\t\t\t\tData:   data,\n\t\t\t},\n\t\t},\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\treturn ret\n}\n\n// ServerMessage configs the binary log entry to be a ServerMessage entry.\ntype ServerMessage struct {\n\tOnClientSide bool\n\t// Message can be a proto.Message or []byte. Other messages formats are not\n\t// supported.\n\tMessage any\n}\n\nfunc (c *ServerMessage) toProto() *binlogpb.GrpcLogEntry {\n\tvar (\n\t\tdata []byte\n\t\terr  error\n\t)\n\tif m, ok := c.Message.(proto.Message); ok {\n\t\tdata, err = proto.Marshal(m)\n\t\tif err != nil {\n\t\t\tgrpclogLogger.Infof(\"binarylogging: failed to marshal proto message: %v\", err)\n\t\t}\n\t} else if b, ok := c.Message.([]byte); ok {\n\t\tdata = b\n\t} else {\n\t\tgrpclogLogger.Infof(\"binarylogging: message to log is neither proto.message nor []byte\")\n\t}\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType: binlogpb.GrpcLogEntry_EVENT_TYPE_SERVER_MESSAGE,\n\t\tPayload: &binlogpb.GrpcLogEntry_Message{\n\t\t\tMessage: &binlogpb.Message{\n\t\t\t\tLength: uint32(len(data)),\n\t\t\t\tData:   data,\n\t\t\t},\n\t\t},\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\treturn ret\n}\n\n// ClientHalfClose configs the binary log entry to be a ClientHalfClose entry.\ntype ClientHalfClose struct {\n\tOnClientSide bool\n}\n\nfunc (c *ClientHalfClose) toProto() *binlogpb.GrpcLogEntry {\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType:    binlogpb.GrpcLogEntry_EVENT_TYPE_CLIENT_HALF_CLOSE,\n\t\tPayload: nil, // No payload here.\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\treturn ret\n}\n\n// ServerTrailer configs the binary log entry to be a ServerTrailer entry.\ntype ServerTrailer struct {\n\tOnClientSide bool\n\tTrailer      metadata.MD\n\t// Err is the status error.\n\tErr error\n\t// PeerAddr is required only when it's on client side and the RPC is trailer\n\t// only.\n\tPeerAddr net.Addr\n}\n\nfunc (c *ServerTrailer) toProto() *binlogpb.GrpcLogEntry {\n\tst, ok := status.FromError(c.Err)\n\tif !ok {\n\t\tgrpclogLogger.Info(\"binarylogging: error in trailer is not a status error\")\n\t}\n\tvar (\n\t\tdetailsBytes []byte\n\t\terr          error\n\t)\n\tstProto := st.Proto()\n\tif stProto != nil && len(stProto.Details) != 0 {\n\t\tdetailsBytes, err = proto.Marshal(stProto)\n\t\tif err != nil {\n\t\t\tgrpclogLogger.Infof(\"binarylogging: failed to marshal status proto: %v\", err)\n\t\t}\n\t}\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType: binlogpb.GrpcLogEntry_EVENT_TYPE_SERVER_TRAILER,\n\t\tPayload: &binlogpb.GrpcLogEntry_Trailer{\n\t\t\tTrailer: &binlogpb.Trailer{\n\t\t\t\tMetadata:      mdToMetadataProto(c.Trailer),\n\t\t\t\tStatusCode:    uint32(st.Code()),\n\t\t\t\tStatusMessage: st.Message(),\n\t\t\t\tStatusDetails: detailsBytes,\n\t\t\t},\n\t\t},\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\tif c.PeerAddr != nil {\n\t\tret.Peer = addrToProto(c.PeerAddr)\n\t}\n\treturn ret\n}\n\n// Cancel configs the binary log entry to be a Cancel entry.\ntype Cancel struct {\n\tOnClientSide bool\n}\n\nfunc (c *Cancel) toProto() *binlogpb.GrpcLogEntry {\n\tret := &binlogpb.GrpcLogEntry{\n\t\tType:    binlogpb.GrpcLogEntry_EVENT_TYPE_CANCEL,\n\t\tPayload: nil,\n\t}\n\tif c.OnClientSide {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_CLIENT\n\t} else {\n\t\tret.Logger = binlogpb.GrpcLogEntry_LOGGER_SERVER\n\t}\n\treturn ret\n}\n\n// metadataKeyOmit returns whether the metadata entry with this key should be\n// omitted.\nfunc metadataKeyOmit(key string) bool {\n\tswitch key {\n\tcase \"lb-token\", \":path\", \":authority\", \"content-encoding\", \"content-type\", \"user-agent\", \"te\":\n\t\treturn true\n\tcase \"grpc-trace-bin\": // grpc-trace-bin is special because it's visible to users.\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(key, \"grpc-\")\n}\n\nfunc mdToMetadataProto(md metadata.MD) *binlogpb.Metadata {\n\tret := &binlogpb.Metadata{}\n\tfor k, vv := range md {\n\t\tif metadataKeyOmit(k) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\tret.Entry = append(ret.Entry,\n\t\t\t\t&binlogpb.MetadataEntry{\n\t\t\t\t\tKey:   k,\n\t\t\t\t\tValue: []byte(v),\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n\treturn ret\n}\n\nfunc addrToProto(addr net.Addr) *binlogpb.Address {\n\tret := &binlogpb.Address{}\n\tswitch a := addr.(type) {\n\tcase *net.TCPAddr:\n\t\tif a.IP.To4() != nil {\n\t\t\tret.Type = binlogpb.Address_TYPE_IPV4\n\t\t} else if a.IP.To16() != nil {\n\t\t\tret.Type = binlogpb.Address_TYPE_IPV6\n\t\t} else {\n\t\t\tret.Type = binlogpb.Address_TYPE_UNKNOWN\n\t\t\t// Do not set address and port fields.\n\t\t\tbreak\n\t\t}\n\t\tret.Address = a.IP.String()\n\t\tret.IpPort = uint32(a.Port)\n\tcase *net.UnixAddr:\n\t\tret.Type = binlogpb.Address_TYPE_UNIX\n\t\tret.Address = a.String()\n\tdefault:\n\t\tret.Type = binlogpb.Address_TYPE_UNKNOWN\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/binarylog/sink.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage binarylog\n\nimport (\n\t\"bufio\"\n\t\"encoding/binary\"\n\t\"io\"\n\t\"sync\"\n\t\"time\"\n\n\tbinlogpb \"google.golang.org/grpc/binarylog/grpc_binarylog_v1\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\nvar (\n\t// DefaultSink is the sink where the logs will be written to. It's exported\n\t// for the binarylog package to update.\n\tDefaultSink Sink = &noopSink{} // TODO(blog): change this default (file in /tmp).\n)\n\n// Sink writes log entry into the binary log sink.\n//\n// sink is a copy of the exported binarylog.Sink, to avoid circular dependency.\ntype Sink interface {\n\t// Write will be called to write the log entry into the sink.\n\t//\n\t// It should be thread-safe so it can be called in parallel.\n\tWrite(*binlogpb.GrpcLogEntry) error\n\t// Close will be called when the Sink is replaced by a new Sink.\n\tClose() error\n}\n\ntype noopSink struct{}\n\nfunc (ns *noopSink) Write(*binlogpb.GrpcLogEntry) error { return nil }\nfunc (ns *noopSink) Close() error                       { return nil }\n\n// newWriterSink creates a binary log sink with the given writer.\n//\n// Write() marshals the proto message and writes it to the given writer. Each\n// message is prefixed with a 4 byte big endian unsigned integer as the length.\n//\n// No buffer is done, Close() doesn't try to close the writer.\nfunc newWriterSink(w io.Writer) Sink {\n\treturn &writerSink{out: w}\n}\n\ntype writerSink struct {\n\tout io.Writer\n}\n\nfunc (ws *writerSink) Write(e *binlogpb.GrpcLogEntry) error {\n\tb, err := proto.Marshal(e)\n\tif err != nil {\n\t\tgrpclogLogger.Errorf(\"binary logging: failed to marshal proto message: %v\", err)\n\t\treturn err\n\t}\n\thdr := make([]byte, 4)\n\tbinary.BigEndian.PutUint32(hdr, uint32(len(b)))\n\tif _, err := ws.out.Write(hdr); err != nil {\n\t\treturn err\n\t}\n\tif _, err := ws.out.Write(b); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (ws *writerSink) Close() error { return nil }\n\ntype bufferedSink struct {\n\tmu             sync.Mutex\n\tcloser         io.Closer\n\tout            Sink          // out is built on buf.\n\tbuf            *bufio.Writer // buf is kept for flush.\n\tflusherStarted bool\n\n\twriteTicker *time.Ticker\n\tdone        chan struct{}\n}\n\nfunc (fs *bufferedSink) Write(e *binlogpb.GrpcLogEntry) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\tif !fs.flusherStarted {\n\t\t// Start the write loop when Write is called.\n\t\tfs.startFlushGoroutine()\n\t\tfs.flusherStarted = true\n\t}\n\tif err := fs.out.Write(e); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nconst (\n\tbufFlushDuration = 60 * time.Second\n)\n\nfunc (fs *bufferedSink) startFlushGoroutine() {\n\tfs.writeTicker = time.NewTicker(bufFlushDuration)\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-fs.done:\n\t\t\t\treturn\n\t\t\tcase <-fs.writeTicker.C:\n\t\t\t}\n\t\t\tfs.mu.Lock()\n\t\t\tif err := fs.buf.Flush(); err != nil {\n\t\t\t\tgrpclogLogger.Warningf(\"failed to flush to Sink: %v\", err)\n\t\t\t}\n\t\t\tfs.mu.Unlock()\n\t\t}\n\t}()\n}\n\nfunc (fs *bufferedSink) Close() error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\tif fs.writeTicker != nil {\n\t\tfs.writeTicker.Stop()\n\t}\n\tclose(fs.done)\n\tif err := fs.buf.Flush(); err != nil {\n\t\tgrpclogLogger.Warningf(\"failed to flush to Sink: %v\", err)\n\t}\n\tif err := fs.closer.Close(); err != nil {\n\t\tgrpclogLogger.Warningf(\"failed to close the underlying WriterCloser: %v\", err)\n\t}\n\tif err := fs.out.Close(); err != nil {\n\t\tgrpclogLogger.Warningf(\"failed to close the Sink: %v\", err)\n\t}\n\treturn nil\n}\n\n// NewBufferedSink creates a binary log sink with the given WriteCloser.\n//\n// Write() marshals the proto message and writes it to the given writer. Each\n// message is prefixed with a 4 byte big endian unsigned integer as the length.\n//\n// Content is kept in a buffer, and is flushed every 60 seconds.\n//\n// Close closes the WriteCloser.\nfunc NewBufferedSink(o io.WriteCloser) Sink {\n\tbufW := bufio.NewWriter(o)\n\treturn &bufferedSink{\n\t\tcloser: o,\n\t\tout:    newWriterSink(bufW),\n\t\tbuf:    bufW,\n\t\tdone:   make(chan struct{}),\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/buffer/unbounded.go",
    "content": "/*\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package buffer provides an implementation of an unbounded buffer.\npackage buffer\n\nimport (\n\t\"errors\"\n\t\"sync\"\n)\n\n// Unbounded is an implementation of an unbounded buffer which does not use\n// extra goroutines. This is typically used for passing updates from one entity\n// to another within gRPC.\n//\n// All methods on this type are thread-safe and don't block on anything except\n// the underlying mutex used for synchronization.\n//\n// Unbounded supports values of any type to be stored in it by using a channel\n// of `any`. This means that a call to Put() incurs an extra memory allocation,\n// and also that users need a type assertion while reading. For performance\n// critical code paths, using Unbounded is strongly discouraged and defining a\n// new type specific implementation of this buffer is preferred. See\n// internal/transport/transport.go for an example of this.\ntype Unbounded struct {\n\tc       chan any\n\tclosed  bool\n\tclosing bool\n\tmu      sync.Mutex\n\tbacklog []any\n}\n\n// NewUnbounded returns a new instance of Unbounded.\nfunc NewUnbounded() *Unbounded {\n\treturn &Unbounded{c: make(chan any, 1)}\n}\n\nvar errBufferClosed = errors.New(\"Put called on closed buffer.Unbounded\")\n\n// Put adds t to the unbounded buffer.\nfunc (b *Unbounded) Put(t any) error {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tif b.closing {\n\t\treturn errBufferClosed\n\t}\n\tif len(b.backlog) == 0 {\n\t\tselect {\n\t\tcase b.c <- t:\n\t\t\treturn nil\n\t\tdefault:\n\t\t}\n\t}\n\tb.backlog = append(b.backlog, t)\n\treturn nil\n}\n\n// Load sends the earliest buffered data, if any, onto the read channel returned\n// by Get(). Users are expected to call this every time they successfully read a\n// value from the read channel.\nfunc (b *Unbounded) Load() {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tif len(b.backlog) > 0 {\n\t\tselect {\n\t\tcase b.c <- b.backlog[0]:\n\t\t\tb.backlog[0] = nil\n\t\t\tb.backlog = b.backlog[1:]\n\t\tdefault:\n\t\t}\n\t} else if b.closing && !b.closed {\n\t\tb.closed = true\n\t\tclose(b.c)\n\t}\n}\n\n// Get returns a read channel on which values added to the buffer, via Put(),\n// are sent on.\n//\n// Upon reading a value from this channel, users are expected to call Load() to\n// send the next buffered value onto the channel if there is any.\n//\n// If the unbounded buffer is closed, the read channel returned by this method\n// is closed after all data is drained.\nfunc (b *Unbounded) Get() <-chan any {\n\treturn b.c\n}\n\n// Close closes the unbounded buffer. No subsequent data may be Put(), and the\n// channel returned from Get() will be closed after all the data is read and\n// Load() is called for the final time.\nfunc (b *Unbounded) Close() {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tif b.closing {\n\t\treturn\n\t}\n\tb.closing = true\n\tif len(b.backlog) == 0 {\n\t\tb.closed = true\n\t\tclose(b.c)\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/channel.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/grpc/connectivity\"\n)\n\n// Channel represents a channel within channelz, which includes metrics and\n// internal channelz data, such as channelz id, child list, etc.\ntype Channel struct {\n\tEntity\n\t// ID is the channelz id of this channel.\n\tID int64\n\t// RefName is the human readable reference string of this channel.\n\tRefName string\n\n\tcloseCalled bool\n\tnestedChans map[int64]string\n\tsubChans    map[int64]string\n\tParent      *Channel\n\ttrace       *ChannelTrace\n\t// traceRefCount is the number of trace events that reference this channel.\n\t// Non-zero traceRefCount means the trace of this channel cannot be deleted.\n\ttraceRefCount int32\n\n\t// ChannelMetrics holds connectivity state, target and call metrics for the\n\t// channel within channelz.\n\tChannelMetrics ChannelMetrics\n}\n\n// Implemented to make Channel implement the Identifier interface used for\n// nesting.\nfunc (c *Channel) channelzIdentifier() {}\n\n// String returns a string representation of the Channel, including its parent\n// entity and ID.\nfunc (c *Channel) String() string {\n\tif c.Parent == nil {\n\t\treturn fmt.Sprintf(\"Channel #%d\", c.ID)\n\t}\n\treturn fmt.Sprintf(\"%s Channel #%d\", c.Parent, c.ID)\n}\n\nfunc (c *Channel) id() int64 {\n\treturn c.ID\n}\n\n// SubChans returns a copy of the map of sub-channels associated with the\n// Channel.\nfunc (c *Channel) SubChans() map[int64]string {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn copyMap(c.subChans)\n}\n\n// NestedChans returns a copy of the map of nested channels associated with the\n// Channel.\nfunc (c *Channel) NestedChans() map[int64]string {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn copyMap(c.nestedChans)\n}\n\n// Trace returns a copy of the Channel's trace data.\nfunc (c *Channel) Trace() *ChannelTrace {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn c.trace.copy()\n}\n\n// ChannelMetrics holds connectivity state, target and call metrics for the\n// channel within channelz.\ntype ChannelMetrics struct {\n\t// The current connectivity state of the channel.\n\tState atomic.Pointer[connectivity.State]\n\t// The target this channel originally tried to connect to.  May be absent\n\tTarget atomic.Pointer[string]\n\t// The number of calls started on the channel.\n\tCallsStarted atomic.Int64\n\t// The number of calls that have completed with an OK status.\n\tCallsSucceeded atomic.Int64\n\t// The number of calls that have a completed with a non-OK status.\n\tCallsFailed atomic.Int64\n\t// The last time a call was started on the channel.\n\tLastCallStartedTimestamp atomic.Int64\n}\n\n// CopyFrom copies the metrics in o to c.  For testing only.\nfunc (c *ChannelMetrics) CopyFrom(o *ChannelMetrics) {\n\tc.State.Store(o.State.Load())\n\tc.Target.Store(o.Target.Load())\n\tc.CallsStarted.Store(o.CallsStarted.Load())\n\tc.CallsSucceeded.Store(o.CallsSucceeded.Load())\n\tc.CallsFailed.Store(o.CallsFailed.Load())\n\tc.LastCallStartedTimestamp.Store(o.LastCallStartedTimestamp.Load())\n}\n\n// Equal returns true iff the metrics of c are the same as the metrics of o.\n// For testing only.\nfunc (c *ChannelMetrics) Equal(o any) bool {\n\toc, ok := o.(*ChannelMetrics)\n\tif !ok {\n\t\treturn false\n\t}\n\tif (c.State.Load() == nil) != (oc.State.Load() == nil) {\n\t\treturn false\n\t}\n\tif c.State.Load() != nil && *c.State.Load() != *oc.State.Load() {\n\t\treturn false\n\t}\n\tif (c.Target.Load() == nil) != (oc.Target.Load() == nil) {\n\t\treturn false\n\t}\n\tif c.Target.Load() != nil && *c.Target.Load() != *oc.Target.Load() {\n\t\treturn false\n\t}\n\treturn c.CallsStarted.Load() == oc.CallsStarted.Load() &&\n\t\tc.CallsFailed.Load() == oc.CallsFailed.Load() &&\n\t\tc.CallsSucceeded.Load() == oc.CallsSucceeded.Load() &&\n\t\tc.LastCallStartedTimestamp.Load() == oc.LastCallStartedTimestamp.Load()\n}\n\nfunc strFromPointer(s *string) string {\n\tif s == nil {\n\t\treturn \"\"\n\t}\n\treturn *s\n}\n\n// String returns a string representation of the ChannelMetrics, including its\n// state, target, and call metrics.\nfunc (c *ChannelMetrics) String() string {\n\treturn fmt.Sprintf(\"State: %v, Target: %s, CallsStarted: %v, CallsSucceeded: %v, CallsFailed: %v, LastCallStartedTimestamp: %v\",\n\t\tc.State.Load(), strFromPointer(c.Target.Load()), c.CallsStarted.Load(), c.CallsSucceeded.Load(), c.CallsFailed.Load(), c.LastCallStartedTimestamp.Load(),\n\t)\n}\n\n// NewChannelMetricForTesting creates a new instance of ChannelMetrics with\n// specified initial values for testing purposes.\nfunc NewChannelMetricForTesting(state connectivity.State, target string, started, succeeded, failed, timestamp int64) *ChannelMetrics {\n\tc := &ChannelMetrics{}\n\tc.State.Store(&state)\n\tc.Target.Store(&target)\n\tc.CallsStarted.Store(started)\n\tc.CallsSucceeded.Store(succeeded)\n\tc.CallsFailed.Store(failed)\n\tc.LastCallStartedTimestamp.Store(timestamp)\n\treturn c\n}\n\nfunc (c *Channel) addChild(id int64, e entry) {\n\tswitch v := e.(type) {\n\tcase *SubChannel:\n\t\tc.subChans[id] = v.RefName\n\tcase *Channel:\n\t\tc.nestedChans[id] = v.RefName\n\tdefault:\n\t\tlogger.Errorf(\"cannot add a child (id = %d) of type %T to a channel\", id, e)\n\t}\n}\n\nfunc (c *Channel) deleteChild(id int64) {\n\tdelete(c.subChans, id)\n\tdelete(c.nestedChans, id)\n\tc.deleteSelfIfReady()\n}\n\nfunc (c *Channel) triggerDelete() {\n\tc.closeCalled = true\n\tc.deleteSelfIfReady()\n}\n\nfunc (c *Channel) getParentID() int64 {\n\tif c.Parent == nil {\n\t\treturn -1\n\t}\n\treturn c.Parent.ID\n}\n\n// deleteSelfFromTree tries to delete the channel from the channelz entry relation tree, which means\n// deleting the channel reference from its parent's child list.\n//\n// In order for a channel to be deleted from the tree, it must meet the criteria that, removal of the\n// corresponding grpc object has been invoked, and the channel does not have any children left.\n//\n// The returned boolean value indicates whether the channel has been successfully deleted from tree.\nfunc (c *Channel) deleteSelfFromTree() (deleted bool) {\n\tif !c.closeCalled || len(c.subChans)+len(c.nestedChans) != 0 {\n\t\treturn false\n\t}\n\t// not top channel\n\tif c.Parent != nil {\n\t\tc.Parent.deleteChild(c.ID)\n\t}\n\treturn true\n}\n\n// deleteSelfFromMap checks whether it is valid to delete the channel from the map, which means\n// deleting the channel from channelz's tracking entirely. Users can no longer use id to query the\n// channel, and its memory will be garbage collected.\n//\n// The trace reference count of the channel must be 0 in order to be deleted from the map. This is\n// specified in the channel tracing gRFC that as long as some other trace has reference to an entity,\n// the trace of the referenced entity must not be deleted. In order to release the resource allocated\n// by grpc, the reference to the grpc object is reset to a dummy object.\n//\n// deleteSelfFromMap must be called after deleteSelfFromTree returns true.\n//\n// It returns a bool to indicate whether the channel can be safely deleted from map.\nfunc (c *Channel) deleteSelfFromMap() (delete bool) {\n\treturn c.getTraceRefCount() == 0\n}\n\n// deleteSelfIfReady tries to delete the channel itself from the channelz database.\n// The delete process includes two steps:\n//  1. delete the channel from the entry relation tree, i.e. delete the channel reference from its\n//     parent's child list.\n//  2. delete the channel from the map, i.e. delete the channel entirely from channelz. Lookup by id\n//     will return entry not found error.\nfunc (c *Channel) deleteSelfIfReady() {\n\tif !c.deleteSelfFromTree() {\n\t\treturn\n\t}\n\tif !c.deleteSelfFromMap() {\n\t\treturn\n\t}\n\tdb.deleteEntry(c.ID)\n\tc.trace.clear()\n}\n\nfunc (c *Channel) getChannelTrace() *ChannelTrace {\n\treturn c.trace\n}\n\nfunc (c *Channel) incrTraceRefCount() {\n\tatomic.AddInt32(&c.traceRefCount, 1)\n}\n\nfunc (c *Channel) decrTraceRefCount() {\n\tatomic.AddInt32(&c.traceRefCount, -1)\n}\n\nfunc (c *Channel) getTraceRefCount() int {\n\ti := atomic.LoadInt32(&c.traceRefCount)\n\treturn int(i)\n}\n\nfunc (c *Channel) getRefName() string {\n\treturn c.RefName\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/channelmap.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"sync\"\n\t\"time\"\n)\n\n// entry represents a node in the channelz database.\ntype entry interface {\n\t// addChild adds a child e, whose channelz id is id to child list\n\taddChild(id int64, e entry)\n\t// deleteChild deletes a child with channelz id to be id from child list\n\tdeleteChild(id int64)\n\t// triggerDelete tries to delete self from channelz database. However, if\n\t// child list is not empty, then deletion from the database is on hold until\n\t// the last child is deleted from database.\n\ttriggerDelete()\n\t// deleteSelfIfReady check whether triggerDelete() has been called before,\n\t// and whether child list is now empty. If both conditions are met, then\n\t// delete self from database.\n\tdeleteSelfIfReady()\n\t// getParentID returns parent ID of the entry. 0 value parent ID means no parent.\n\tgetParentID() int64\n\tEntity\n}\n\n// channelMap is the storage data structure for channelz.\n//\n// Methods of channelMap can be divided into two categories with respect to\n// locking.\n//\n// 1. Methods acquire the global lock.\n// 2. Methods that can only be called when global lock is held.\n//\n// A second type of method need always to be called inside a first type of method.\ntype channelMap struct {\n\tmu               sync.RWMutex\n\ttopLevelChannels map[int64]struct{}\n\tchannels         map[int64]*Channel\n\tsubChannels      map[int64]*SubChannel\n\tsockets          map[int64]*Socket\n\tservers          map[int64]*Server\n}\n\nfunc newChannelMap() *channelMap {\n\treturn &channelMap{\n\t\ttopLevelChannels: make(map[int64]struct{}),\n\t\tchannels:         make(map[int64]*Channel),\n\t\tsubChannels:      make(map[int64]*SubChannel),\n\t\tsockets:          make(map[int64]*Socket),\n\t\tservers:          make(map[int64]*Server),\n\t}\n}\n\nfunc (c *channelMap) addServer(id int64, s *Server) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\ts.cm = c\n\tc.servers[id] = s\n}\n\nfunc (c *channelMap) addChannel(id int64, cn *Channel, isTopChannel bool, pid int64) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tcn.trace.cm = c\n\tc.channels[id] = cn\n\tif isTopChannel {\n\t\tc.topLevelChannels[id] = struct{}{}\n\t} else if p := c.channels[pid]; p != nil {\n\t\tp.addChild(id, cn)\n\t} else {\n\t\tlogger.Infof(\"channel %d references invalid parent ID %d\", id, pid)\n\t}\n}\n\nfunc (c *channelMap) addSubChannel(id int64, sc *SubChannel, pid int64) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tsc.trace.cm = c\n\tc.subChannels[id] = sc\n\tif p := c.channels[pid]; p != nil {\n\t\tp.addChild(id, sc)\n\t} else {\n\t\tlogger.Infof(\"subchannel %d references invalid parent ID %d\", id, pid)\n\t}\n}\n\nfunc (c *channelMap) addSocket(s *Socket) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\ts.cm = c\n\tc.sockets[s.ID] = s\n\tif s.Parent == nil {\n\t\tlogger.Infof(\"normal socket %d has no parent\", s.ID)\n\t}\n\ts.Parent.(entry).addChild(s.ID, s)\n}\n\n// removeEntry triggers the removal of an entry, which may not indeed delete the\n// entry, if it has to wait on the deletion of its children and until no other\n// entity's channel trace references it.  It may lead to a chain of entry\n// deletion. For example, deleting the last socket of a gracefully shutting down\n// server will lead to the server being also deleted.\nfunc (c *channelMap) removeEntry(id int64) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tc.findEntry(id).triggerDelete()\n}\n\n// tracedChannel represents tracing operations which are present on both\n// channels and subChannels.\ntype tracedChannel interface {\n\tgetChannelTrace() *ChannelTrace\n\tincrTraceRefCount()\n\tdecrTraceRefCount()\n\tgetRefName() string\n}\n\n// c.mu must be held by the caller\nfunc (c *channelMap) decrTraceRefCount(id int64) {\n\te := c.findEntry(id)\n\tif v, ok := e.(tracedChannel); ok {\n\t\tv.decrTraceRefCount()\n\t\te.deleteSelfIfReady()\n\t}\n}\n\n// c.mu must be held by the caller.\nfunc (c *channelMap) findEntry(id int64) entry {\n\tif v, ok := c.channels[id]; ok {\n\t\treturn v\n\t}\n\tif v, ok := c.subChannels[id]; ok {\n\t\treturn v\n\t}\n\tif v, ok := c.servers[id]; ok {\n\t\treturn v\n\t}\n\tif v, ok := c.sockets[id]; ok {\n\t\treturn v\n\t}\n\treturn &dummyEntry{idNotFound: id}\n}\n\n// c.mu must be held by the caller\n//\n// deleteEntry deletes an entry from the channelMap. Before calling this method,\n// caller must check this entry is ready to be deleted, i.e removeEntry() has\n// been called on it, and no children still exist.\nfunc (c *channelMap) deleteEntry(id int64) entry {\n\tif v, ok := c.sockets[id]; ok {\n\t\tdelete(c.sockets, id)\n\t\treturn v\n\t}\n\tif v, ok := c.subChannels[id]; ok {\n\t\tdelete(c.subChannels, id)\n\t\treturn v\n\t}\n\tif v, ok := c.channels[id]; ok {\n\t\tdelete(c.channels, id)\n\t\tdelete(c.topLevelChannels, id)\n\t\treturn v\n\t}\n\tif v, ok := c.servers[id]; ok {\n\t\tdelete(c.servers, id)\n\t\treturn v\n\t}\n\treturn &dummyEntry{idNotFound: id}\n}\n\nfunc (c *channelMap) traceEvent(id int64, desc *TraceEvent) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tchild := c.findEntry(id)\n\tchildTC, ok := child.(tracedChannel)\n\tif !ok {\n\t\treturn\n\t}\n\tchildTC.getChannelTrace().append(&traceEvent{Desc: desc.Desc, Severity: desc.Severity, Timestamp: time.Now()})\n\tif desc.Parent != nil {\n\t\tparent := c.findEntry(child.getParentID())\n\t\tvar chanType RefChannelType\n\t\tswitch child.(type) {\n\t\tcase *Channel:\n\t\t\tchanType = RefChannel\n\t\tcase *SubChannel:\n\t\t\tchanType = RefSubChannel\n\t\t}\n\t\tif parentTC, ok := parent.(tracedChannel); ok {\n\t\t\tparentTC.getChannelTrace().append(&traceEvent{\n\t\t\t\tDesc:      desc.Parent.Desc,\n\t\t\t\tSeverity:  desc.Parent.Severity,\n\t\t\t\tTimestamp: time.Now(),\n\t\t\t\tRefID:     id,\n\t\t\t\tRefName:   childTC.getRefName(),\n\t\t\t\tRefType:   chanType,\n\t\t\t})\n\t\t\tchildTC.incrTraceRefCount()\n\t\t}\n\t}\n}\n\ntype int64Slice []int64\n\nfunc (s int64Slice) Len() int           { return len(s) }\nfunc (s int64Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\nfunc (s int64Slice) Less(i, j int) bool { return s[i] < s[j] }\n\nfunc copyMap(m map[int64]string) map[int64]string {\n\tn := make(map[int64]string)\n\tfor k, v := range m {\n\t\tn[k] = v\n\t}\n\treturn n\n}\n\nfunc (c *channelMap) getTopChannels(id int64, maxResults int) ([]*Channel, bool) {\n\tif maxResults <= 0 {\n\t\tmaxResults = EntriesPerPage\n\t}\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\tl := int64(len(c.topLevelChannels))\n\tids := make([]int64, 0, l)\n\n\tfor k := range c.topLevelChannels {\n\t\tids = append(ids, k)\n\t}\n\tsort.Sort(int64Slice(ids))\n\tidx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id })\n\tend := true\n\tvar t []*Channel\n\tfor _, v := range ids[idx:] {\n\t\tif len(t) == maxResults {\n\t\t\tend = false\n\t\t\tbreak\n\t\t}\n\t\tif cn, ok := c.channels[v]; ok {\n\t\t\tt = append(t, cn)\n\t\t}\n\t}\n\treturn t, end\n}\n\nfunc (c *channelMap) getServers(id int64, maxResults int) ([]*Server, bool) {\n\tif maxResults <= 0 {\n\t\tmaxResults = EntriesPerPage\n\t}\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\tids := make([]int64, 0, len(c.servers))\n\tfor k := range c.servers {\n\t\tids = append(ids, k)\n\t}\n\tsort.Sort(int64Slice(ids))\n\tidx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id })\n\tend := true\n\tvar s []*Server\n\tfor _, v := range ids[idx:] {\n\t\tif len(s) == maxResults {\n\t\t\tend = false\n\t\t\tbreak\n\t\t}\n\t\tif svr, ok := c.servers[v]; ok {\n\t\t\ts = append(s, svr)\n\t\t}\n\t}\n\treturn s, end\n}\n\nfunc (c *channelMap) getServerSockets(id int64, startID int64, maxResults int) ([]*Socket, bool) {\n\tif maxResults <= 0 {\n\t\tmaxResults = EntriesPerPage\n\t}\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\tsvr, ok := c.servers[id]\n\tif !ok {\n\t\t// server with id doesn't exist.\n\t\treturn nil, true\n\t}\n\tsvrskts := svr.sockets\n\tids := make([]int64, 0, len(svrskts))\n\tsks := make([]*Socket, 0, min(len(svrskts), maxResults))\n\tfor k := range svrskts {\n\t\tids = append(ids, k)\n\t}\n\tsort.Sort(int64Slice(ids))\n\tidx := sort.Search(len(ids), func(i int) bool { return ids[i] >= startID })\n\tend := true\n\tfor _, v := range ids[idx:] {\n\t\tif len(sks) == maxResults {\n\t\t\tend = false\n\t\t\tbreak\n\t\t}\n\t\tif ns, ok := c.sockets[v]; ok {\n\t\t\tsks = append(sks, ns)\n\t\t}\n\t}\n\treturn sks, end\n}\n\nfunc (c *channelMap) getChannel(id int64) *Channel {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\treturn c.channels[id]\n}\n\nfunc (c *channelMap) getSubChannel(id int64) *SubChannel {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\treturn c.subChannels[id]\n}\n\nfunc (c *channelMap) getSocket(id int64) *Socket {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\treturn c.sockets[id]\n}\n\nfunc (c *channelMap) getServer(id int64) *Server {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\treturn c.servers[id]\n}\n\ntype dummyEntry struct {\n\t// dummyEntry is a fake entry to handle entry not found case.\n\tidNotFound int64\n\tEntity\n}\n\nfunc (d *dummyEntry) String() string {\n\treturn fmt.Sprintf(\"non-existent entity #%d\", d.idNotFound)\n}\n\nfunc (d *dummyEntry) ID() int64 { return d.idNotFound }\n\nfunc (d *dummyEntry) addChild(id int64, e entry) {\n\t// Note: It is possible for a normal program to reach here under race\n\t// condition.  For example, there could be a race between ClientConn.Close()\n\t// info being propagated to addrConn and http2Client. ClientConn.Close()\n\t// cancel the context and result in http2Client to error. The error info is\n\t// then caught by transport monitor and before addrConn.tearDown() is called\n\t// in side ClientConn.Close(). Therefore, the addrConn will create a new\n\t// transport. And when registering the new transport in channelz, its parent\n\t// addrConn could have already been torn down and deleted from channelz\n\t// tracking, and thus reach the code here.\n\tlogger.Infof(\"attempt to add child of type %T with id %d to a parent (id=%d) that doesn't currently exist\", e, id, d.idNotFound)\n}\n\nfunc (d *dummyEntry) deleteChild(id int64) {\n\t// It is possible for a normal program to reach here under race condition.\n\t// Refer to the example described in addChild().\n\tlogger.Infof(\"attempt to delete child with id %d from a parent (id=%d) that doesn't currently exist\", id, d.idNotFound)\n}\n\nfunc (d *dummyEntry) triggerDelete() {\n\tlogger.Warningf(\"attempt to delete an entry (id=%d) that doesn't currently exist\", d.idNotFound)\n}\n\nfunc (*dummyEntry) deleteSelfIfReady() {\n\t// code should not reach here. deleteSelfIfReady is always called on an existing entry.\n}\n\nfunc (*dummyEntry) getParentID() int64 {\n\treturn 0\n}\n\n// Entity is implemented by all channelz types.\ntype Entity interface {\n\tisEntity()\n\tfmt.Stringer\n\tid() int64\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/funcs.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package channelz defines internal APIs for enabling channelz service, entry\n// registration/deletion, and accessing channelz data. It also defines channelz\n// metric struct formats.\npackage channelz\n\nimport (\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/internal\"\n)\n\nvar (\n\t// IDGen is the global channelz entity ID generator.  It should not be used\n\t// outside this package except by tests.\n\tIDGen IDGenerator\n\n\tdb = newChannelMap()\n\t// EntriesPerPage defines the number of channelz entries to be shown on a web page.\n\tEntriesPerPage = 50\n\tcurState       int32\n)\n\n// TurnOn turns on channelz data collection.\nfunc TurnOn() {\n\tatomic.StoreInt32(&curState, 1)\n}\n\nfunc init() {\n\tinternal.ChannelzTurnOffForTesting = func() {\n\t\tatomic.StoreInt32(&curState, 0)\n\t}\n}\n\n// IsOn returns whether channelz data collection is on.\nfunc IsOn() bool {\n\treturn atomic.LoadInt32(&curState) == 1\n}\n\n// GetTopChannels returns a slice of top channel's ChannelMetric, along with a\n// boolean indicating whether there's more top channels to be queried for.\n//\n// The arg id specifies that only top channel with id at or above it will be\n// included in the result. The returned slice is up to a length of the arg\n// maxResults or EntriesPerPage if maxResults is zero, and is sorted in ascending\n// id order.\nfunc GetTopChannels(id int64, maxResults int) ([]*Channel, bool) {\n\treturn db.getTopChannels(id, maxResults)\n}\n\n// GetServers returns a slice of server's ServerMetric, along with a\n// boolean indicating whether there's more servers to be queried for.\n//\n// The arg id specifies that only server with id at or above it will be included\n// in the result. The returned slice is up to a length of the arg maxResults or\n// EntriesPerPage if maxResults is zero, and is sorted in ascending id order.\nfunc GetServers(id int64, maxResults int) ([]*Server, bool) {\n\treturn db.getServers(id, maxResults)\n}\n\n// GetServerSockets returns a slice of server's (identified by id) normal socket's\n// SocketMetrics, along with a boolean indicating whether there's more sockets to\n// be queried for.\n//\n// The arg startID specifies that only sockets with id at or above it will be\n// included in the result. The returned slice is up to a length of the arg maxResults\n// or EntriesPerPage if maxResults is zero, and is sorted in ascending id order.\nfunc GetServerSockets(id int64, startID int64, maxResults int) ([]*Socket, bool) {\n\treturn db.getServerSockets(id, startID, maxResults)\n}\n\n// GetChannel returns the Channel for the channel (identified by id).\nfunc GetChannel(id int64) *Channel {\n\treturn db.getChannel(id)\n}\n\n// GetSubChannel returns the SubChannel for the subchannel (identified by id).\nfunc GetSubChannel(id int64) *SubChannel {\n\treturn db.getSubChannel(id)\n}\n\n// GetSocket returns the Socket for the socket (identified by id).\nfunc GetSocket(id int64) *Socket {\n\treturn db.getSocket(id)\n}\n\n// GetServer returns the ServerMetric for the server (identified by id).\nfunc GetServer(id int64) *Server {\n\treturn db.getServer(id)\n}\n\n// RegisterChannel registers the given channel c in the channelz database with\n// target as its target and reference name, and adds it to the child list of its\n// parent.  parent == nil means no parent.\n//\n// Returns a unique channelz identifier assigned to this channel.\n//\n// If channelz is not turned ON, the channelz database is not mutated.\nfunc RegisterChannel(parent *Channel, target string) *Channel {\n\tid := IDGen.genID()\n\n\tif !IsOn() {\n\t\treturn &Channel{ID: id}\n\t}\n\n\tisTopChannel := parent == nil\n\n\tcn := &Channel{\n\t\tID:          id,\n\t\tRefName:     target,\n\t\tnestedChans: make(map[int64]string),\n\t\tsubChans:    make(map[int64]string),\n\t\tParent:      parent,\n\t\ttrace:       &ChannelTrace{CreationTime: time.Now(), Events: make([]*traceEvent, 0, getMaxTraceEntry())},\n\t}\n\tcn.ChannelMetrics.Target.Store(&target)\n\tdb.addChannel(id, cn, isTopChannel, cn.getParentID())\n\treturn cn\n}\n\n// RegisterSubChannel registers the given subChannel c in the channelz database\n// with ref as its reference name, and adds it to the child list of its parent\n// (identified by pid).\n//\n// Returns a unique channelz identifier assigned to this subChannel.\n//\n// If channelz is not turned ON, the channelz database is not mutated.\nfunc RegisterSubChannel(parent *Channel, ref string) *SubChannel {\n\tid := IDGen.genID()\n\tsc := &SubChannel{\n\t\tID:      id,\n\t\tRefName: ref,\n\t\tparent:  parent,\n\t}\n\n\tif !IsOn() {\n\t\treturn sc\n\t}\n\n\tsc.sockets = make(map[int64]string)\n\tsc.trace = &ChannelTrace{CreationTime: time.Now(), Events: make([]*traceEvent, 0, getMaxTraceEntry())}\n\tdb.addSubChannel(id, sc, parent.ID)\n\treturn sc\n}\n\n// RegisterServer registers the given server s in channelz database. It returns\n// the unique channelz tracking id assigned to this server.\n//\n// If channelz is not turned ON, the channelz database is not mutated.\nfunc RegisterServer(ref string) *Server {\n\tid := IDGen.genID()\n\tif !IsOn() {\n\t\treturn &Server{ID: id}\n\t}\n\n\tsvr := &Server{\n\t\tRefName:       ref,\n\t\tsockets:       make(map[int64]string),\n\t\tlistenSockets: make(map[int64]string),\n\t\tID:            id,\n\t}\n\tdb.addServer(id, svr)\n\treturn svr\n}\n\n// RegisterSocket registers the given normal socket s in channelz database\n// with ref as its reference name, and adds it to the child list of its parent\n// (identified by skt.Parent, which must be set). It returns the unique channelz\n// tracking id assigned to this normal socket.\n//\n// If channelz is not turned ON, the channelz database is not mutated.\nfunc RegisterSocket(skt *Socket) *Socket {\n\tskt.ID = IDGen.genID()\n\tif IsOn() {\n\t\tdb.addSocket(skt)\n\t}\n\treturn skt\n}\n\n// RemoveEntry removes an entry with unique channelz tracking id to be id from\n// channelz database.\n//\n// If channelz is not turned ON, this function is a no-op.\nfunc RemoveEntry(id int64) {\n\tif !IsOn() {\n\t\treturn\n\t}\n\tdb.removeEntry(id)\n}\n\n// IDGenerator is an incrementing atomic that tracks IDs for channelz entities.\ntype IDGenerator struct {\n\tid int64\n}\n\n// Reset resets the generated ID back to zero.  Should only be used at\n// initialization or by tests sensitive to the ID number.\nfunc (i *IDGenerator) Reset() {\n\tatomic.StoreInt64(&i.id, 0)\n}\n\nfunc (i *IDGenerator) genID() int64 {\n\treturn atomic.AddInt64(&i.id, 1)\n}\n\n// Identifier is an opaque channelz identifier used to expose channelz symbols\n// outside of grpc.  Currently only implemented by Channel since no other\n// types require exposure outside grpc.\ntype Identifier interface {\n\tEntity\n\tchannelzIdentifier()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/logging.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nvar logger = grpclog.Component(\"channelz\")\n\n// Info logs and adds a trace event if channelz is on.\nfunc Info(l grpclog.DepthLoggerV2, e Entity, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprint(args...),\n\t\tSeverity: CtInfo,\n\t})\n}\n\n// Infof logs and adds a trace event if channelz is on.\nfunc Infof(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprintf(format, args...),\n\t\tSeverity: CtInfo,\n\t})\n}\n\n// Warning logs and adds a trace event if channelz is on.\nfunc Warning(l grpclog.DepthLoggerV2, e Entity, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprint(args...),\n\t\tSeverity: CtWarning,\n\t})\n}\n\n// Warningf logs and adds a trace event if channelz is on.\nfunc Warningf(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprintf(format, args...),\n\t\tSeverity: CtWarning,\n\t})\n}\n\n// Error logs and adds a trace event if channelz is on.\nfunc Error(l grpclog.DepthLoggerV2, e Entity, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprint(args...),\n\t\tSeverity: CtError,\n\t})\n}\n\n// Errorf logs and adds a trace event if channelz is on.\nfunc Errorf(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) {\n\tAddTraceEvent(l, e, 1, &TraceEvent{\n\t\tDesc:     fmt.Sprintf(format, args...),\n\t\tSeverity: CtError,\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/server.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"sync/atomic\"\n)\n\n// Server is the channelz representation of a server.\ntype Server struct {\n\tEntity\n\tID      int64\n\tRefName string\n\n\tServerMetrics ServerMetrics\n\n\tcloseCalled   bool\n\tsockets       map[int64]string\n\tlistenSockets map[int64]string\n\tcm            *channelMap\n}\n\n// ServerMetrics defines a struct containing metrics for servers.\ntype ServerMetrics struct {\n\t// The number of incoming calls started on the server.\n\tCallsStarted atomic.Int64\n\t// The number of incoming calls that have completed with an OK status.\n\tCallsSucceeded atomic.Int64\n\t// The number of incoming calls that have a completed with a non-OK status.\n\tCallsFailed atomic.Int64\n\t// The last time a call was started on the server.\n\tLastCallStartedTimestamp atomic.Int64\n}\n\n// NewServerMetricsForTesting returns an initialized ServerMetrics.\nfunc NewServerMetricsForTesting(started, succeeded, failed, timestamp int64) *ServerMetrics {\n\tsm := &ServerMetrics{}\n\tsm.CallsStarted.Store(started)\n\tsm.CallsSucceeded.Store(succeeded)\n\tsm.CallsFailed.Store(failed)\n\tsm.LastCallStartedTimestamp.Store(timestamp)\n\treturn sm\n}\n\n// CopyFrom copies the metrics data from the provided ServerMetrics\n// instance into the current instance.\nfunc (sm *ServerMetrics) CopyFrom(o *ServerMetrics) {\n\tsm.CallsStarted.Store(o.CallsStarted.Load())\n\tsm.CallsSucceeded.Store(o.CallsSucceeded.Load())\n\tsm.CallsFailed.Store(o.CallsFailed.Load())\n\tsm.LastCallStartedTimestamp.Store(o.LastCallStartedTimestamp.Load())\n}\n\n// ListenSockets returns the listening sockets for s.\nfunc (s *Server) ListenSockets() map[int64]string {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn copyMap(s.listenSockets)\n}\n\n// String returns a printable description of s.\nfunc (s *Server) String() string {\n\treturn fmt.Sprintf(\"Server #%d\", s.ID)\n}\n\nfunc (s *Server) id() int64 {\n\treturn s.ID\n}\n\nfunc (s *Server) addChild(id int64, e entry) {\n\tswitch v := e.(type) {\n\tcase *Socket:\n\t\tswitch v.SocketType {\n\t\tcase SocketTypeNormal:\n\t\t\ts.sockets[id] = v.RefName\n\t\tcase SocketTypeListen:\n\t\t\ts.listenSockets[id] = v.RefName\n\t\t}\n\tdefault:\n\t\tlogger.Errorf(\"cannot add a child (id = %d) of type %T to a server\", id, e)\n\t}\n}\n\nfunc (s *Server) deleteChild(id int64) {\n\tdelete(s.sockets, id)\n\tdelete(s.listenSockets, id)\n\ts.deleteSelfIfReady()\n}\n\nfunc (s *Server) triggerDelete() {\n\ts.closeCalled = true\n\ts.deleteSelfIfReady()\n}\n\nfunc (s *Server) deleteSelfIfReady() {\n\tif !s.closeCalled || len(s.sockets)+len(s.listenSockets) != 0 {\n\t\treturn\n\t}\n\ts.cm.deleteEntry(s.ID)\n}\n\nfunc (s *Server) getParentID() int64 {\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/socket.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/grpc/credentials\"\n)\n\n// SocketMetrics defines the struct that the implementor of Socket interface\n// should return from ChannelzMetric().\ntype SocketMetrics struct {\n\t// The number of streams that have been started.\n\tStreamsStarted atomic.Int64\n\t// The number of streams that have ended successfully:\n\t// On client side, receiving frame with eos bit set.\n\t// On server side, sending frame with eos bit set.\n\tStreamsSucceeded atomic.Int64\n\t// The number of streams that have ended unsuccessfully:\n\t// On client side, termination without receiving frame with eos bit set.\n\t// On server side, termination without sending frame with eos bit set.\n\tStreamsFailed atomic.Int64\n\t// The number of messages successfully sent on this socket.\n\tMessagesSent     atomic.Int64\n\tMessagesReceived atomic.Int64\n\t// The number of keep alives sent.  This is typically implemented with HTTP/2\n\t// ping messages.\n\tKeepAlivesSent atomic.Int64\n\t// The last time a stream was created by this endpoint.  Usually unset for\n\t// servers.\n\tLastLocalStreamCreatedTimestamp atomic.Int64\n\t// The last time a stream was created by the remote endpoint.  Usually unset\n\t// for clients.\n\tLastRemoteStreamCreatedTimestamp atomic.Int64\n\t// The last time a message was sent by this endpoint.\n\tLastMessageSentTimestamp atomic.Int64\n\t// The last time a message was received by this endpoint.\n\tLastMessageReceivedTimestamp atomic.Int64\n}\n\n// EphemeralSocketMetrics are metrics that change rapidly and are tracked\n// outside of channelz.\ntype EphemeralSocketMetrics struct {\n\t// The amount of window, granted to the local endpoint by the remote endpoint.\n\t// This may be slightly out of date due to network latency.  This does NOT\n\t// include stream level or TCP level flow control info.\n\tLocalFlowControlWindow int64\n\t// The amount of window, granted to the remote endpoint by the local endpoint.\n\t// This may be slightly out of date due to network latency.  This does NOT\n\t// include stream level or TCP level flow control info.\n\tRemoteFlowControlWindow int64\n}\n\n// SocketType represents the type of socket.\ntype SocketType string\n\n// SocketType can be one of these.\nconst (\n\tSocketTypeNormal = \"NormalSocket\"\n\tSocketTypeListen = \"ListenSocket\"\n)\n\n// Socket represents a socket within channelz which includes socket\n// metrics and data related to socket activity and provides methods\n// for managing and interacting with sockets.\ntype Socket struct {\n\tEntity\n\tSocketType       SocketType\n\tID               int64\n\tParent           Entity\n\tcm               *channelMap\n\tSocketMetrics    SocketMetrics\n\tEphemeralMetrics func() *EphemeralSocketMetrics\n\n\tRefName string\n\t// The locally bound address.  Immutable.\n\tLocalAddr net.Addr\n\t// The remote bound address.  May be absent.  Immutable.\n\tRemoteAddr net.Addr\n\t// Optional, represents the name of the remote endpoint, if different than\n\t// the original target name.  Immutable.\n\tRemoteName string\n\t// Immutable.\n\tSocketOptions *SocketOptionData\n\t// Immutable.\n\tSecurity credentials.ChannelzSecurityValue\n}\n\n// String returns a string representation of the Socket, including its parent\n// entity, socket type, and ID.\nfunc (ls *Socket) String() string {\n\treturn fmt.Sprintf(\"%s %s #%d\", ls.Parent, ls.SocketType, ls.ID)\n}\n\nfunc (ls *Socket) id() int64 {\n\treturn ls.ID\n}\n\nfunc (ls *Socket) addChild(id int64, e entry) {\n\tlogger.Errorf(\"cannot add a child (id = %d) of type %T to a listen socket\", id, e)\n}\n\nfunc (ls *Socket) deleteChild(id int64) {\n\tlogger.Errorf(\"cannot delete a child (id = %d) from a listen socket\", id)\n}\n\nfunc (ls *Socket) triggerDelete() {\n\tls.cm.deleteEntry(ls.ID)\n\tls.Parent.(entry).deleteChild(ls.ID)\n}\n\nfunc (ls *Socket) deleteSelfIfReady() {\n\tlogger.Errorf(\"cannot call deleteSelfIfReady on a listen socket\")\n}\n\nfunc (ls *Socket) getParentID() int64 {\n\treturn ls.Parent.id()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/subchannel.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"sync/atomic\"\n)\n\n// SubChannel is the channelz representation of a subchannel.\ntype SubChannel struct {\n\tEntity\n\t// ID is the channelz id of this subchannel.\n\tID int64\n\t// RefName is the human readable reference string of this subchannel.\n\tRefName       string\n\tcloseCalled   bool\n\tsockets       map[int64]string\n\tparent        *Channel\n\ttrace         *ChannelTrace\n\ttraceRefCount int32\n\n\tChannelMetrics ChannelMetrics\n}\n\nfunc (sc *SubChannel) String() string {\n\treturn fmt.Sprintf(\"%s SubChannel #%d\", sc.parent, sc.ID)\n}\n\nfunc (sc *SubChannel) id() int64 {\n\treturn sc.ID\n}\n\n// Sockets returns a copy of the sockets map associated with the SubChannel.\nfunc (sc *SubChannel) Sockets() map[int64]string {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn copyMap(sc.sockets)\n}\n\n// Trace returns a copy of the ChannelTrace associated with the SubChannel.\nfunc (sc *SubChannel) Trace() *ChannelTrace {\n\tdb.mu.RLock()\n\tdefer db.mu.RUnlock()\n\treturn sc.trace.copy()\n}\n\nfunc (sc *SubChannel) addChild(id int64, e entry) {\n\tif v, ok := e.(*Socket); ok && v.SocketType == SocketTypeNormal {\n\t\tsc.sockets[id] = v.RefName\n\t} else {\n\t\tlogger.Errorf(\"cannot add a child (id = %d) of type %T to a subChannel\", id, e)\n\t}\n}\n\nfunc (sc *SubChannel) deleteChild(id int64) {\n\tdelete(sc.sockets, id)\n\tsc.deleteSelfIfReady()\n}\n\nfunc (sc *SubChannel) triggerDelete() {\n\tsc.closeCalled = true\n\tsc.deleteSelfIfReady()\n}\n\nfunc (sc *SubChannel) getParentID() int64 {\n\treturn sc.parent.ID\n}\n\n// deleteSelfFromTree tries to delete the subchannel from the channelz entry relation tree, which\n// means deleting the subchannel reference from its parent's child list.\n//\n// In order for a subchannel to be deleted from the tree, it must meet the criteria that, removal of\n// the corresponding grpc object has been invoked, and the subchannel does not have any children left.\n//\n// The returned boolean value indicates whether the channel has been successfully deleted from tree.\nfunc (sc *SubChannel) deleteSelfFromTree() (deleted bool) {\n\tif !sc.closeCalled || len(sc.sockets) != 0 {\n\t\treturn false\n\t}\n\tsc.parent.deleteChild(sc.ID)\n\treturn true\n}\n\n// deleteSelfFromMap checks whether it is valid to delete the subchannel from the map, which means\n// deleting the subchannel from channelz's tracking entirely. Users can no longer use id to query\n// the subchannel, and its memory will be garbage collected.\n//\n// The trace reference count of the subchannel must be 0 in order to be deleted from the map. This is\n// specified in the channel tracing gRFC that as long as some other trace has reference to an entity,\n// the trace of the referenced entity must not be deleted. In order to release the resource allocated\n// by grpc, the reference to the grpc object is reset to a dummy object.\n//\n// deleteSelfFromMap must be called after deleteSelfFromTree returns true.\n//\n// It returns a bool to indicate whether the channel can be safely deleted from map.\nfunc (sc *SubChannel) deleteSelfFromMap() (delete bool) {\n\treturn sc.getTraceRefCount() == 0\n}\n\n// deleteSelfIfReady tries to delete the subchannel itself from the channelz database.\n// The delete process includes two steps:\n//  1. delete the subchannel from the entry relation tree, i.e. delete the subchannel reference from\n//     its parent's child list.\n//  2. delete the subchannel from the map, i.e. delete the subchannel entirely from channelz. Lookup\n//     by id will return entry not found error.\nfunc (sc *SubChannel) deleteSelfIfReady() {\n\tif !sc.deleteSelfFromTree() {\n\t\treturn\n\t}\n\tif !sc.deleteSelfFromMap() {\n\t\treturn\n\t}\n\tdb.deleteEntry(sc.ID)\n\tsc.trace.clear()\n}\n\nfunc (sc *SubChannel) getChannelTrace() *ChannelTrace {\n\treturn sc.trace\n}\n\nfunc (sc *SubChannel) incrTraceRefCount() {\n\tatomic.AddInt32(&sc.traceRefCount, 1)\n}\n\nfunc (sc *SubChannel) decrTraceRefCount() {\n\tatomic.AddInt32(&sc.traceRefCount, -1)\n}\n\nfunc (sc *SubChannel) getTraceRefCount() int {\n\ti := atomic.LoadInt32(&sc.traceRefCount)\n\treturn int(i)\n}\n\nfunc (sc *SubChannel) getRefName() string {\n\treturn sc.RefName\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/syscall_linux.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"syscall\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// SocketOptionData defines the struct to hold socket option data, and related\n// getter function to obtain info from fd.\ntype SocketOptionData struct {\n\tLinger      *unix.Linger\n\tRecvTimeout *unix.Timeval\n\tSendTimeout *unix.Timeval\n\tTCPInfo     *unix.TCPInfo\n}\n\n// Getsockopt defines the function to get socket options requested by channelz.\n// It is to be passed to syscall.RawConn.Control().\nfunc (s *SocketOptionData) Getsockopt(fd uintptr) {\n\tif v, err := unix.GetsockoptLinger(int(fd), syscall.SOL_SOCKET, syscall.SO_LINGER); err == nil {\n\t\ts.Linger = v\n\t}\n\tif v, err := unix.GetsockoptTimeval(int(fd), syscall.SOL_SOCKET, syscall.SO_RCVTIMEO); err == nil {\n\t\ts.RecvTimeout = v\n\t}\n\tif v, err := unix.GetsockoptTimeval(int(fd), syscall.SOL_SOCKET, syscall.SO_SNDTIMEO); err == nil {\n\t\ts.SendTimeout = v\n\t}\n\tif v, err := unix.GetsockoptTCPInfo(int(fd), syscall.SOL_TCP, syscall.TCP_INFO); err == nil {\n\t\ts.TCPInfo = v\n\t}\n}\n\n// GetSocketOption gets the socket option info of the conn.\nfunc GetSocketOption(socket any) *SocketOptionData {\n\tc, ok := socket.(syscall.Conn)\n\tif !ok {\n\t\treturn nil\n\t}\n\tdata := &SocketOptionData{}\n\tif rawConn, err := c.SyscallConn(); err == nil {\n\t\trawConn.Control(data.Getsockopt)\n\t\treturn data\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/syscall_nonlinux.go",
    "content": "//go:build !linux\n\n/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"sync\"\n)\n\nvar once sync.Once\n\n// SocketOptionData defines the struct to hold socket option data, and related\n// getter function to obtain info from fd.\n// Windows OS doesn't support Socket Option\ntype SocketOptionData struct {\n}\n\n// Getsockopt defines the function to get socket options requested by channelz.\n// It is to be passed to syscall.RawConn.Control().\n// Windows OS doesn't support Socket Option\nfunc (s *SocketOptionData) Getsockopt(uintptr) {\n\tonce.Do(func() {\n\t\tlogger.Warning(\"Channelz: socket options are not supported on non-linux environments\")\n\t})\n}\n\n// GetSocketOption gets the socket option info of the conn.\nfunc GetSocketOption(any) *SocketOptionData {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/channelz/trace.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage channelz\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nconst (\n\tdefaultMaxTraceEntry int32 = 30\n)\n\nvar maxTraceEntry = defaultMaxTraceEntry\n\n// SetMaxTraceEntry sets maximum number of trace entries per entity (i.e.\n// channel/subchannel).  Setting it to 0 will disable channel tracing.\nfunc SetMaxTraceEntry(i int32) {\n\tatomic.StoreInt32(&maxTraceEntry, i)\n}\n\n// ResetMaxTraceEntryToDefault resets the maximum number of trace entries per\n// entity to default.\nfunc ResetMaxTraceEntryToDefault() {\n\tatomic.StoreInt32(&maxTraceEntry, defaultMaxTraceEntry)\n}\n\nfunc getMaxTraceEntry() int {\n\ti := atomic.LoadInt32(&maxTraceEntry)\n\treturn int(i)\n}\n\n// traceEvent is an internal representation of a single trace event\ntype traceEvent struct {\n\t// Desc is a simple description of the trace event.\n\tDesc string\n\t// Severity states the severity of this trace event.\n\tSeverity Severity\n\t// Timestamp is the event time.\n\tTimestamp time.Time\n\t// RefID is the id of the entity that gets referenced in the event. RefID is 0 if no other entity is\n\t// involved in this event.\n\t// e.g. SubChannel (id: 4[]) Created. --> RefID = 4, RefName = \"\" (inside [])\n\tRefID int64\n\t// RefName is the reference name for the entity that gets referenced in the event.\n\tRefName string\n\t// RefType indicates the referenced entity type, i.e Channel or SubChannel.\n\tRefType RefChannelType\n}\n\n// TraceEvent is what the caller of AddTraceEvent should provide to describe the\n// event to be added to the channel trace.\n//\n// The Parent field is optional. It is used for an event that will be recorded\n// in the entity's parent trace.\ntype TraceEvent struct {\n\tDesc     string\n\tSeverity Severity\n\tParent   *TraceEvent\n}\n\n// ChannelTrace provides tracing information for a channel.\n// It tracks various events and metadata related to the channel's lifecycle\n// and operations.\ntype ChannelTrace struct {\n\tcm          *channelMap\n\tclearCalled bool\n\t// The time when the trace was created.\n\tCreationTime time.Time\n\t// A counter for the number of events recorded in the\n\t// trace.\n\tEventNum int64\n\tmu       sync.Mutex\n\t// A slice of traceEvent pointers representing the events recorded for\n\t// this channel.\n\tEvents []*traceEvent\n}\n\nfunc (c *ChannelTrace) copy() *ChannelTrace {\n\treturn &ChannelTrace{\n\t\tCreationTime: c.CreationTime,\n\t\tEventNum:     c.EventNum,\n\t\tEvents:       append(([]*traceEvent)(nil), c.Events...),\n\t}\n}\n\nfunc (c *ChannelTrace) append(e *traceEvent) {\n\tc.mu.Lock()\n\tif len(c.Events) == getMaxTraceEntry() {\n\t\tdel := c.Events[0]\n\t\tc.Events = c.Events[1:]\n\t\tif del.RefID != 0 {\n\t\t\t// start recursive cleanup in a goroutine to not block the call originated from grpc.\n\t\t\tgo func() {\n\t\t\t\t// need to acquire c.cm.mu lock to call the unlocked attemptCleanup func.\n\t\t\t\tc.cm.mu.Lock()\n\t\t\t\tc.cm.decrTraceRefCount(del.RefID)\n\t\t\t\tc.cm.mu.Unlock()\n\t\t\t}()\n\t\t}\n\t}\n\te.Timestamp = time.Now()\n\tc.Events = append(c.Events, e)\n\tc.EventNum++\n\tc.mu.Unlock()\n}\n\nfunc (c *ChannelTrace) clear() {\n\tif c.clearCalled {\n\t\treturn\n\t}\n\tc.clearCalled = true\n\tc.mu.Lock()\n\tfor _, e := range c.Events {\n\t\tif e.RefID != 0 {\n\t\t\t// caller should have already held the c.cm.mu lock.\n\t\t\tc.cm.decrTraceRefCount(e.RefID)\n\t\t}\n\t}\n\tc.mu.Unlock()\n}\n\n// Severity is the severity level of a trace event.\n// The canonical enumeration of all valid values is here:\n// https://github.com/grpc/grpc-proto/blob/9b13d199cc0d4703c7ea26c9c330ba695866eb23/grpc/channelz/v1/channelz.proto#L126.\ntype Severity int\n\nconst (\n\t// CtUnknown indicates unknown severity of a trace event.\n\tCtUnknown Severity = iota\n\t// CtInfo indicates info level severity of a trace event.\n\tCtInfo\n\t// CtWarning indicates warning level severity of a trace event.\n\tCtWarning\n\t// CtError indicates error level severity of a trace event.\n\tCtError\n)\n\n// RefChannelType is the type of the entity being referenced in a trace event.\ntype RefChannelType int\n\nconst (\n\t// RefUnknown indicates an unknown entity type, the zero value for this type.\n\tRefUnknown RefChannelType = iota\n\t// RefChannel indicates the referenced entity is a Channel.\n\tRefChannel\n\t// RefSubChannel indicates the referenced entity is a SubChannel.\n\tRefSubChannel\n\t// RefServer indicates the referenced entity is a Server.\n\tRefServer\n\t// RefListenSocket indicates the referenced entity is a ListenSocket.\n\tRefListenSocket\n\t// RefNormalSocket indicates the referenced entity is a NormalSocket.\n\tRefNormalSocket\n)\n\nvar refChannelTypeToString = map[RefChannelType]string{\n\tRefUnknown:      \"Unknown\",\n\tRefChannel:      \"Channel\",\n\tRefSubChannel:   \"SubChannel\",\n\tRefServer:       \"Server\",\n\tRefListenSocket: \"ListenSocket\",\n\tRefNormalSocket: \"NormalSocket\",\n}\n\n// String returns a string representation of the RefChannelType\nfunc (r RefChannelType) String() string {\n\treturn refChannelTypeToString[r]\n}\n\n// AddTraceEvent adds trace related to the entity with specified id, using the\n// provided TraceEventDesc.\n//\n// If channelz is not turned ON, this will simply log the event descriptions.\nfunc AddTraceEvent(l grpclog.DepthLoggerV2, e Entity, depth int, desc *TraceEvent) {\n\t// Log only the trace description associated with the bottom most entity.\n\td := fmt.Sprintf(\"[%s] %s\", e, desc.Desc)\n\tswitch desc.Severity {\n\tcase CtUnknown, CtInfo:\n\t\tl.InfoDepth(depth+1, d)\n\tcase CtWarning:\n\t\tl.WarningDepth(depth+1, d)\n\tcase CtError:\n\t\tl.ErrorDepth(depth+1, d)\n\t}\n\n\tif getMaxTraceEntry() == 0 {\n\t\treturn\n\t}\n\tif IsOn() {\n\t\tdb.traceEvent(e.id(), desc)\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/credentials/credentials.go",
    "content": "/*\n * Copyright 2021 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage credentials\n\nimport (\n\t\"context\"\n)\n\n// clientHandshakeInfoKey is a struct used as the key to store\n// ClientHandshakeInfo in a context.\ntype clientHandshakeInfoKey struct{}\n\n// ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx.\nfunc ClientHandshakeInfoFromContext(ctx context.Context) any {\n\treturn ctx.Value(clientHandshakeInfoKey{})\n}\n\n// NewClientHandshakeInfoContext creates a context with chi.\nfunc NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context {\n\treturn context.WithValue(ctx, clientHandshakeInfoKey{}, chi)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/credentials/spiffe.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package credentials defines APIs for parsing SPIFFE ID.\n//\n// All APIs in this package are experimental.\npackage credentials\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"net/url\"\n\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nvar logger = grpclog.Component(\"credentials\")\n\n// SPIFFEIDFromState parses the SPIFFE ID from State. If the SPIFFE ID format\n// is invalid, return nil with warning.\nfunc SPIFFEIDFromState(state tls.ConnectionState) *url.URL {\n\tif len(state.PeerCertificates) == 0 || len(state.PeerCertificates[0].URIs) == 0 {\n\t\treturn nil\n\t}\n\treturn SPIFFEIDFromCert(state.PeerCertificates[0])\n}\n\n// SPIFFEIDFromCert parses the SPIFFE ID from x509.Certificate. If the SPIFFE\n// ID format is invalid, return nil with warning.\nfunc SPIFFEIDFromCert(cert *x509.Certificate) *url.URL {\n\tif cert == nil || cert.URIs == nil {\n\t\treturn nil\n\t}\n\tvar spiffeID *url.URL\n\tfor _, uri := range cert.URIs {\n\t\tif uri == nil || uri.Scheme != \"spiffe\" || uri.Opaque != \"\" || (uri.User != nil && uri.User.Username() != \"\") {\n\t\t\tcontinue\n\t\t}\n\t\t// From this point, we assume the uri is intended for a SPIFFE ID.\n\t\tif len(uri.String()) > 2048 {\n\t\t\tlogger.Warning(\"invalid SPIFFE ID: total ID length larger than 2048 bytes\")\n\t\t\treturn nil\n\t\t}\n\t\tif len(uri.Host) == 0 || len(uri.Path) == 0 {\n\t\t\tlogger.Warning(\"invalid SPIFFE ID: domain or workload ID is empty\")\n\t\t\treturn nil\n\t\t}\n\t\tif len(uri.Host) > 255 {\n\t\t\tlogger.Warning(\"invalid SPIFFE ID: domain length larger than 255 characters\")\n\t\t\treturn nil\n\t\t}\n\t\t// A valid SPIFFE certificate can only have exactly one URI SAN field.\n\t\tif len(cert.URIs) > 1 {\n\t\t\tlogger.Warning(\"invalid SPIFFE ID: multiple URI SANs\")\n\t\t\treturn nil\n\t\t}\n\t\tspiffeID = uri\n\t}\n\treturn spiffeID\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/credentials/syscallconn.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage credentials\n\nimport (\n\t\"net\"\n\t\"syscall\"\n)\n\ntype sysConn = syscall.Conn\n\n// syscallConn keeps reference of rawConn to support syscall.Conn for channelz.\n// SyscallConn() (the method in interface syscall.Conn) is explicitly\n// implemented on this type,\n//\n// Interface syscall.Conn is implemented by most net.Conn implementations (e.g.\n// TCPConn, UnixConn), but is not part of net.Conn interface. So wrapper conns\n// that embed net.Conn don't implement syscall.Conn. (Side note: tls.Conn\n// doesn't embed net.Conn, so even if syscall.Conn is part of net.Conn, it won't\n// help here).\ntype syscallConn struct {\n\tnet.Conn\n\t// sysConn is a type alias of syscall.Conn. It's necessary because the name\n\t// `Conn` collides with `net.Conn`.\n\tsysConn\n}\n\n// WrapSyscallConn tries to wrap rawConn and newConn into a net.Conn that\n// implements syscall.Conn. rawConn will be used to support syscall, and newConn\n// will be used for read/write.\n//\n// This function returns newConn if rawConn doesn't implement syscall.Conn.\nfunc WrapSyscallConn(rawConn, newConn net.Conn) net.Conn {\n\tsysConn, ok := rawConn.(syscall.Conn)\n\tif !ok {\n\t\treturn newConn\n\t}\n\treturn &syscallConn{\n\t\tConn:    newConn,\n\t\tsysConn: sysConn,\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/credentials/util.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage credentials\n\nimport (\n\t\"crypto/tls\"\n)\n\nconst alpnProtoStrH2 = \"h2\"\n\n// AppendH2ToNextProtos appends h2 to next protos.\nfunc AppendH2ToNextProtos(ps []string) []string {\n\tfor _, p := range ps {\n\t\tif p == alpnProtoStrH2 {\n\t\t\treturn ps\n\t\t}\n\t}\n\tret := make([]string, 0, len(ps)+1)\n\tret = append(ret, ps...)\n\treturn append(ret, alpnProtoStrH2)\n}\n\n// CloneTLSConfig returns a shallow clone of the exported\n// fields of cfg, ignoring the unexported sync.Once, which\n// contains a mutex and must not be copied.\n//\n// If cfg is nil, a new zero tls.Config is returned.\n//\n// TODO: inline this function if possible.\nfunc CloneTLSConfig(cfg *tls.Config) *tls.Config {\n\tif cfg == nil {\n\t\treturn &tls.Config{}\n\t}\n\n\treturn cfg.Clone()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/envconfig/envconfig.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package envconfig contains grpc settings configured by environment variables.\npackage envconfig\n\nimport (\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// EnableTXTServiceConfig is set if the DNS resolver should perform TXT\n\t// lookups for service config (\"GRPC_ENABLE_TXT_SERVICE_CONFIG\" is not\n\t// \"false\").\n\tEnableTXTServiceConfig = boolFromEnv(\"GRPC_ENABLE_TXT_SERVICE_CONFIG\", true)\n\n\t// TXTErrIgnore is set if TXT errors should be ignored\n\t// (\"GRPC_GO_IGNORE_TXT_ERRORS\" is not \"false\").\n\tTXTErrIgnore = boolFromEnv(\"GRPC_GO_IGNORE_TXT_ERRORS\", true)\n\n\t// RingHashCap indicates the maximum ring size which defaults to 4096\n\t// entries but may be overridden by setting the environment variable\n\t// \"GRPC_RING_HASH_CAP\".  This does not override the default bounds\n\t// checking which NACKs configs specifying ring sizes > 8*1024*1024 (~8M).\n\tRingHashCap = uint64FromEnv(\"GRPC_RING_HASH_CAP\", 4096, 1, 8*1024*1024)\n\n\t// ALTSMaxConcurrentHandshakes is the maximum number of concurrent ALTS\n\t// handshakes that can be performed.\n\tALTSMaxConcurrentHandshakes = uint64FromEnv(\"GRPC_ALTS_MAX_CONCURRENT_HANDSHAKES\", 100, 1, 100)\n\n\t// EnforceALPNEnabled is set if TLS connections to servers with ALPN disabled\n\t// should be rejected. The HTTP/2 protocol requires ALPN to be enabled, this\n\t// option is present for backward compatibility. This option may be overridden\n\t// by setting the environment variable \"GRPC_ENFORCE_ALPN_ENABLED\" to \"true\"\n\t// or \"false\".\n\tEnforceALPNEnabled = boolFromEnv(\"GRPC_ENFORCE_ALPN_ENABLED\", true)\n\n\t// XDSEndpointHashKeyBackwardCompat controls the parsing of the endpoint hash\n\t// key from EDS LbEndpoint metadata. Endpoint hash keys can be disabled by\n\t// setting \"GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT\" to \"true\". When the\n\t// implementation of A76 is stable, we will flip the default value to false\n\t// in a subsequent release. A final release will remove this environment\n\t// variable, enabling the new behavior unconditionally.\n\tXDSEndpointHashKeyBackwardCompat = boolFromEnv(\"GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT\", true)\n\n\t// RingHashSetRequestHashKey is set if the ring hash balancer can get the\n\t// request hash header by setting the \"requestHashHeader\" field, according\n\t// to gRFC A76. It can be enabled by setting the environment variable\n\t// \"GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY\" to \"true\".\n\tRingHashSetRequestHashKey = boolFromEnv(\"GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY\", false)\n\n\t// ALTSHandshakerKeepaliveParams is set if we should add the\n\t// KeepaliveParams when dial the ALTS handshaker service.\n\tALTSHandshakerKeepaliveParams = boolFromEnv(\"GRPC_EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS\", false)\n\n\t// EnableDefaultPortForProxyTarget controls whether the resolver adds a default port 443\n\t// to a target address that lacks one. This flag only has an effect when all of\n\t// the following conditions are met:\n\t//   - A connect proxy is being used.\n\t//   - Target resolution is disabled.\n\t//   - The DNS resolver is being used.\n\tEnableDefaultPortForProxyTarget = boolFromEnv(\"GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET\", true)\n\n\t// XDSAuthorityRewrite indicates whether xDS authority rewriting is enabled.\n\t// This feature is defined in gRFC A81 and is enabled by setting the\n\t// environment variable GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE to \"true\".\n\tXDSAuthorityRewrite = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE\", false)\n\n\t// PickFirstWeightedShuffling indicates whether weighted endpoint shuffling\n\t// is enabled in the pick_first LB policy, as defined in gRFC A113. This\n\t// feature can be disabled by setting the environment variable\n\t// GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING to \"false\".\n\tPickFirstWeightedShuffling = boolFromEnv(\"GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING\", true)\n\n\t// DisableStrictPathChecking indicates whether strict path checking is\n\t// disabled. This feature can be disabled by setting the environment\n\t// variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING to \"true\".\n\t//\n\t// When strict path checking is enabled, gRPC will reject requests with\n\t// paths that do not conform to the gRPC over HTTP/2 specification found at\n\t// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md.\n\t//\n\t// When disabled, gRPC will allow paths that do not contain a leading slash.\n\t// Enabling strict path checking is recommended for security reasons, as it\n\t// prevents potential path traversal vulnerabilities.\n\t//\n\t// A future release will remove this environment variable, enabling strict\n\t// path checking behavior unconditionally.\n\tDisableStrictPathChecking = boolFromEnv(\"GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING\", false)\n)\n\nfunc boolFromEnv(envVar string, def bool) bool {\n\tif def {\n\t\t// The default is true; return true unless the variable is \"false\".\n\t\treturn !strings.EqualFold(os.Getenv(envVar), \"false\")\n\t}\n\t// The default is false; return false unless the variable is \"true\".\n\treturn strings.EqualFold(os.Getenv(envVar), \"true\")\n}\n\nfunc uint64FromEnv(envVar string, def, min, max uint64) uint64 {\n\tv, err := strconv.ParseUint(os.Getenv(envVar), 10, 64)\n\tif err != nil {\n\t\treturn def\n\t}\n\tif v < min {\n\t\treturn min\n\t}\n\tif v > max {\n\t\treturn max\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/envconfig/observability.go",
    "content": "/*\n *\n * Copyright 2022 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage envconfig\n\nimport \"os\"\n\nconst (\n\tenvObservabilityConfig     = \"GRPC_GCP_OBSERVABILITY_CONFIG\"\n\tenvObservabilityConfigFile = \"GRPC_GCP_OBSERVABILITY_CONFIG_FILE\"\n)\n\nvar (\n\t// ObservabilityConfig is the json configuration for the gcp/observability\n\t// package specified directly in the envObservabilityConfig env var.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tObservabilityConfig = os.Getenv(envObservabilityConfig)\n\t// ObservabilityConfigFile is the json configuration for the\n\t// gcp/observability specified in a file with the location specified in\n\t// envObservabilityConfigFile env var.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tObservabilityConfigFile = os.Getenv(envObservabilityConfigFile)\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/envconfig/xds.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage envconfig\n\nimport (\n\t\"os\"\n)\n\nconst (\n\t// XDSBootstrapFileNameEnv is the env variable to set bootstrap file name.\n\t// Do not use this and read from env directly. Its value is read and kept in\n\t// variable XDSBootstrapFileName.\n\t//\n\t// When both bootstrap FileName and FileContent are set, FileName is used.\n\tXDSBootstrapFileNameEnv = \"GRPC_XDS_BOOTSTRAP\"\n\t// XDSBootstrapFileContentEnv is the env variable to set bootstrap file\n\t// content. Do not use this and read from env directly. Its value is read\n\t// and kept in variable XDSBootstrapFileContent.\n\t//\n\t// When both bootstrap FileName and FileContent are set, FileName is used.\n\tXDSBootstrapFileContentEnv = \"GRPC_XDS_BOOTSTRAP_CONFIG\"\n)\n\nvar (\n\t// XDSBootstrapFileName holds the name of the file which contains xDS\n\t// bootstrap configuration. Users can specify the location of the bootstrap\n\t// file by setting the environment variable \"GRPC_XDS_BOOTSTRAP\".\n\t//\n\t// When both bootstrap FileName and FileContent are set, FileName is used.\n\tXDSBootstrapFileName = os.Getenv(XDSBootstrapFileNameEnv)\n\t// XDSBootstrapFileContent holds the content of the xDS bootstrap\n\t// configuration. Users can specify the bootstrap config by setting the\n\t// environment variable \"GRPC_XDS_BOOTSTRAP_CONFIG\".\n\t//\n\t// When both bootstrap FileName and FileContent are set, FileName is used.\n\tXDSBootstrapFileContent = os.Getenv(XDSBootstrapFileContentEnv)\n\n\t// C2PResolverTestOnlyTrafficDirectorURI is the TD URI for testing.\n\tC2PResolverTestOnlyTrafficDirectorURI = os.Getenv(\"GRPC_TEST_ONLY_GOOGLE_C2P_RESOLVER_TRAFFIC_DIRECTOR_URI\")\n\n\t// XDSDualstackEndpointsEnabled is true if gRPC should read the\n\t// \"additional addresses\" in the xDS endpoint resource.\n\tXDSDualstackEndpointsEnabled = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS\", true)\n\n\t// XDSSystemRootCertsEnabled is true when xDS enabled gRPC clients can use\n\t// the system's default root certificates for TLS certificate validation.\n\t// For more details, see:\n\t// https://github.com/grpc/proposal/blob/master/A82-xds-system-root-certs.md.\n\tXDSSystemRootCertsEnabled = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS\", false)\n\n\t// XDSSPIFFEEnabled controls if SPIFFE Bundle Maps can be used as roots of\n\t// trust.  For more details, see:\n\t// https://github.com/grpc/proposal/blob/master/A87-mtls-spiffe-support.md\n\tXDSSPIFFEEnabled = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_MTLS_SPIFFE\", false)\n\n\t// XDSHTTPConnectEnabled is true if gRPC should parse custom Metadata\n\t// configuring use of an HTTP CONNECT proxy via xDS from cluster resources.\n\t// For more details, see:\n\t// https://github.com/grpc/proposal/blob/master/A86-xds-http-connect.md\n\tXDSHTTPConnectEnabled = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT\", false)\n\n\t// XDSBootstrapCallCredsEnabled controls if call credentials can be used in\n\t// xDS bootstrap configuration via the `call_creds` field. For more details,\n\t// see: https://github.com/grpc/proposal/blob/master/A97-xds-jwt-call-creds.md\n\tXDSBootstrapCallCredsEnabled = boolFromEnv(\"GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS\", false)\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/experimental.go",
    "content": "/*\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\nvar (\n\t// WithBufferPool is implemented by the grpc package and returns a dial\n\t// option to configure a shared buffer pool for a grpc.ClientConn.\n\tWithBufferPool any // func (grpc.SharedBufferPool) grpc.DialOption\n\n\t// BufferPool is implemented by the grpc package and returns a server\n\t// option to configure a shared buffer pool for a grpc.Server.\n\tBufferPool any // func (grpc.SharedBufferPool) grpc.ServerOption\n\n\t// SetDefaultBufferPool updates the default buffer pool.\n\tSetDefaultBufferPool any // func(mem.BufferPool)\n\n\t// AcceptCompressors is implemented by the grpc package and returns\n\t// a call option that restricts the grpc-accept-encoding header for a call.\n\tAcceptCompressors any // func(...string) grpc.CallOption\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpclog/prefix_logger.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package grpclog provides logging functionality for internal gRPC packages,\n// outside of the functionality provided by the external `grpclog` package.\npackage grpclog\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/grpclog\"\n)\n\n// PrefixLogger does logging with a prefix.\n//\n// Logging method on a nil logs without any prefix.\ntype PrefixLogger struct {\n\tlogger grpclog.DepthLoggerV2\n\tprefix string\n}\n\n// Infof does info logging.\nfunc (pl *PrefixLogger) Infof(format string, args ...any) {\n\tif pl != nil {\n\t\t// Handle nil, so the tests can pass in a nil logger.\n\t\tformat = pl.prefix + format\n\t\tpl.logger.InfoDepth(1, fmt.Sprintf(format, args...))\n\t\treturn\n\t}\n\tgrpclog.InfoDepth(1, fmt.Sprintf(format, args...))\n}\n\n// Warningf does warning logging.\nfunc (pl *PrefixLogger) Warningf(format string, args ...any) {\n\tif pl != nil {\n\t\tformat = pl.prefix + format\n\t\tpl.logger.WarningDepth(1, fmt.Sprintf(format, args...))\n\t\treturn\n\t}\n\tgrpclog.WarningDepth(1, fmt.Sprintf(format, args...))\n}\n\n// Errorf does error logging.\nfunc (pl *PrefixLogger) Errorf(format string, args ...any) {\n\tif pl != nil {\n\t\tformat = pl.prefix + format\n\t\tpl.logger.ErrorDepth(1, fmt.Sprintf(format, args...))\n\t\treturn\n\t}\n\tgrpclog.ErrorDepth(1, fmt.Sprintf(format, args...))\n}\n\n// V reports whether verbosity level l is at least the requested verbose level.\nfunc (pl *PrefixLogger) V(l int) bool {\n\tif pl != nil {\n\t\treturn pl.logger.V(l)\n\t}\n\treturn true\n}\n\n// NewPrefixLogger creates a prefix logger with the given prefix.\nfunc NewPrefixLogger(logger grpclog.DepthLoggerV2, prefix string) *PrefixLogger {\n\treturn &PrefixLogger{logger: logger, prefix: prefix}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go",
    "content": "/*\n *\n * Copyright 2022 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcsync\n\nimport (\n\t\"context\"\n\n\t\"google.golang.org/grpc/internal/buffer\"\n)\n\n// CallbackSerializer provides a mechanism to schedule callbacks in a\n// synchronized manner. It provides a FIFO guarantee on the order of execution\n// of scheduled callbacks. New callbacks can be scheduled by invoking the\n// Schedule() method.\n//\n// This type is safe for concurrent access.\ntype CallbackSerializer struct {\n\t// done is closed once the serializer is shut down completely, i.e all\n\t// scheduled callbacks are executed and the serializer has deallocated all\n\t// its resources.\n\tdone chan struct{}\n\n\tcallbacks *buffer.Unbounded\n}\n\n// NewCallbackSerializer returns a new CallbackSerializer instance. The provided\n// context will be passed to the scheduled callbacks. Users should cancel the\n// provided context to shutdown the CallbackSerializer. It is guaranteed that no\n// callbacks will be added once this context is canceled, and any pending un-run\n// callbacks will be executed before the serializer is shut down.\nfunc NewCallbackSerializer(ctx context.Context) *CallbackSerializer {\n\tcs := &CallbackSerializer{\n\t\tdone:      make(chan struct{}),\n\t\tcallbacks: buffer.NewUnbounded(),\n\t}\n\tgo cs.run(ctx)\n\treturn cs\n}\n\n// TrySchedule tries to schedule the provided callback function f to be\n// executed in the order it was added. This is a best-effort operation. If the\n// context passed to NewCallbackSerializer was canceled before this method is\n// called, the callback will not be scheduled.\n//\n// Callbacks are expected to honor the context when performing any blocking\n// operations, and should return early when the context is canceled.\nfunc (cs *CallbackSerializer) TrySchedule(f func(ctx context.Context)) {\n\tcs.callbacks.Put(f)\n}\n\n// ScheduleOr schedules the provided callback function f to be executed in the\n// order it was added. If the context passed to NewCallbackSerializer has been\n// canceled before this method is called, the onFailure callback will be\n// executed inline instead.\n//\n// Callbacks are expected to honor the context when performing any blocking\n// operations, and should return early when the context is canceled.\nfunc (cs *CallbackSerializer) ScheduleOr(f func(ctx context.Context), onFailure func()) {\n\tif cs.callbacks.Put(f) != nil {\n\t\tonFailure()\n\t}\n}\n\nfunc (cs *CallbackSerializer) run(ctx context.Context) {\n\tdefer close(cs.done)\n\n\t// Close the buffer when the context is canceled\n\t// to prevent new callbacks from being added.\n\tcontext.AfterFunc(ctx, cs.callbacks.Close)\n\n\t// Run all callbacks.\n\tfor cb := range cs.callbacks.Get() {\n\t\tcs.callbacks.Load()\n\t\tcb.(func(context.Context))(ctx)\n\t}\n}\n\n// Done returns a channel that is closed after the context passed to\n// NewCallbackSerializer is canceled and all callbacks have been executed.\nfunc (cs *CallbackSerializer) Done() <-chan struct{} {\n\treturn cs.done\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcsync/event.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package grpcsync implements additional synchronization primitives built upon\n// the sync package.\npackage grpcsync\n\nimport (\n\t\"sync/atomic\"\n)\n\n// Event represents a one-time event that may occur in the future.\ntype Event struct {\n\tfired atomic.Bool\n\tc     chan struct{}\n}\n\n// Fire causes e to complete.  It is safe to call multiple times, and\n// concurrently.  It returns true iff this call to Fire caused the signaling\n// channel returned by Done to close. If Fire returns false, it is possible\n// the Done channel has not been closed yet.\nfunc (e *Event) Fire() bool {\n\tif e.fired.CompareAndSwap(false, true) {\n\t\tclose(e.c)\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Done returns a channel that will be closed when Fire is called.\nfunc (e *Event) Done() <-chan struct{} {\n\treturn e.c\n}\n\n// HasFired returns true if Fire has been called.\nfunc (e *Event) HasFired() bool {\n\treturn e.fired.Load()\n}\n\n// NewEvent returns a new, ready-to-use Event.\nfunc NewEvent() *Event {\n\treturn &Event{c: make(chan struct{})}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcsync/pubsub.go",
    "content": "/*\n *\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcsync\n\nimport (\n\t\"context\"\n\t\"sync\"\n)\n\n// Subscriber represents an entity that is subscribed to messages published on\n// a PubSub. It wraps the callback to be invoked by the PubSub when a new\n// message is published.\ntype Subscriber interface {\n\t// OnMessage is invoked when a new message is published. Implementations\n\t// must not block in this method.\n\tOnMessage(msg any)\n}\n\n// PubSub is a simple one-to-many publish-subscribe system that supports\n// messages of arbitrary type. It guarantees that messages are delivered in\n// the same order in which they were published.\n//\n// Publisher invokes the Publish() method to publish new messages, while\n// subscribers interested in receiving these messages register a callback\n// via the Subscribe() method.\n//\n// Once a PubSub is stopped, no more messages can be published, but any pending\n// published messages will be delivered to the subscribers.  Done may be used\n// to determine when all published messages have been delivered.\ntype PubSub struct {\n\tcs *CallbackSerializer\n\n\t// Access to the below fields are guarded by this mutex.\n\tmu          sync.Mutex\n\tmsg         any\n\tsubscribers map[Subscriber]bool\n}\n\n// NewPubSub returns a new PubSub instance.  Users should cancel the\n// provided context to shutdown the PubSub.\nfunc NewPubSub(ctx context.Context) *PubSub {\n\treturn &PubSub{\n\t\tcs:          NewCallbackSerializer(ctx),\n\t\tsubscribers: map[Subscriber]bool{},\n\t}\n}\n\n// Subscribe registers the provided Subscriber to the PubSub.\n//\n// If the PubSub contains a previously published message, the Subscriber's\n// OnMessage() callback will be invoked asynchronously with the existing\n// message to begin with, and subsequently for every newly published message.\n//\n// The caller is responsible for invoking the returned cancel function to\n// unsubscribe itself from the PubSub.\nfunc (ps *PubSub) Subscribe(sub Subscriber) (cancel func()) {\n\tps.mu.Lock()\n\tdefer ps.mu.Unlock()\n\n\tps.subscribers[sub] = true\n\n\tif ps.msg != nil {\n\t\tmsg := ps.msg\n\t\tps.cs.TrySchedule(func(context.Context) {\n\t\t\tps.mu.Lock()\n\t\t\tdefer ps.mu.Unlock()\n\t\t\tif !ps.subscribers[sub] {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsub.OnMessage(msg)\n\t\t})\n\t}\n\n\treturn func() {\n\t\tps.mu.Lock()\n\t\tdefer ps.mu.Unlock()\n\t\tdelete(ps.subscribers, sub)\n\t}\n}\n\n// Publish publishes the provided message to the PubSub, and invokes\n// callbacks registered by subscribers asynchronously.\nfunc (ps *PubSub) Publish(msg any) {\n\tps.mu.Lock()\n\tdefer ps.mu.Unlock()\n\n\tps.msg = msg\n\tfor sub := range ps.subscribers {\n\t\ts := sub\n\t\tps.cs.TrySchedule(func(context.Context) {\n\t\t\tps.mu.Lock()\n\t\t\tdefer ps.mu.Unlock()\n\t\t\tif !ps.subscribers[s] {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ts.OnMessage(msg)\n\t\t})\n\t}\n}\n\n// Done returns a channel that is closed after the context passed to NewPubSub\n// is canceled and all updates have been sent to subscribers.\nfunc (ps *PubSub) Done() <-chan struct{} {\n\treturn ps.cs.Done()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/compressor.go",
    "content": "/*\n *\n * Copyright 2022 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcutil\n\nimport (\n\t\"strings\"\n)\n\n// RegisteredCompressorNames holds names of the registered compressors.\nvar RegisteredCompressorNames []string\n\n// IsCompressorNameRegistered returns true when name is available in registry.\nfunc IsCompressorNameRegistered(name string) bool {\n\tfor _, compressor := range RegisteredCompressorNames {\n\t\tif compressor == name {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// RegisteredCompressors returns a string of registered compressor names\n// separated by comma.\nfunc RegisteredCompressors() string {\n\treturn strings.Join(RegisteredCompressorNames, \",\")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcutil\n\nimport (\n\t\"strconv\"\n\t\"time\"\n)\n\nconst maxTimeoutValue int64 = 100000000 - 1\n\n// div does integer division and round-up the result. Note that this is\n// equivalent to (d+r-1)/r but has less chance to overflow.\nfunc div(d, r time.Duration) int64 {\n\tif d%r > 0 {\n\t\treturn int64(d/r + 1)\n\t}\n\treturn int64(d / r)\n}\n\n// EncodeDuration encodes the duration to the format grpc-timeout header\n// accepts.\n//\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests\nfunc EncodeDuration(t time.Duration) string {\n\t// TODO: This is simplistic and not bandwidth efficient. Improve it.\n\tif t <= 0 {\n\t\treturn \"0n\"\n\t}\n\tif d := div(t, time.Nanosecond); d <= maxTimeoutValue {\n\t\treturn strconv.FormatInt(d, 10) + \"n\"\n\t}\n\tif d := div(t, time.Microsecond); d <= maxTimeoutValue {\n\t\treturn strconv.FormatInt(d, 10) + \"u\"\n\t}\n\tif d := div(t, time.Millisecond); d <= maxTimeoutValue {\n\t\treturn strconv.FormatInt(d, 10) + \"m\"\n\t}\n\tif d := div(t, time.Second); d <= maxTimeoutValue {\n\t\treturn strconv.FormatInt(d, 10) + \"S\"\n\t}\n\tif d := div(t, time.Minute); d <= maxTimeoutValue {\n\t\treturn strconv.FormatInt(d, 10) + \"M\"\n\t}\n\t// Note that maxTimeoutValue * time.Hour > MaxInt64.\n\treturn strconv.FormatInt(div(t, time.Hour), 10) + \"H\"\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/grpcutil.go",
    "content": "/*\n *\n * Copyright 2021 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package grpcutil provides utility functions used across the gRPC codebase.\npackage grpcutil\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/metadata.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcutil\n\nimport (\n\t\"context\"\n\n\t\"google.golang.org/grpc/metadata\"\n)\n\ntype mdExtraKey struct{}\n\n// WithExtraMetadata creates a new context with incoming md attached.\nfunc WithExtraMetadata(ctx context.Context, md metadata.MD) context.Context {\n\treturn context.WithValue(ctx, mdExtraKey{}, md)\n}\n\n// ExtraMetadata returns the incoming metadata in ctx if it exists.  The\n// returned MD should not be modified. Writing to it may cause races.\n// Modification should be made to copies of the returned MD.\nfunc ExtraMetadata(ctx context.Context) (md metadata.MD, ok bool) {\n\tmd, ok = ctx.Value(mdExtraKey{}).(metadata.MD)\n\treturn\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/method.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcutil\n\nimport (\n\t\"errors\"\n\t\"strings\"\n)\n\n// ParseMethod splits service and method from the input. It expects format\n// \"/service/method\".\nfunc ParseMethod(methodName string) (service, method string, _ error) {\n\tif !strings.HasPrefix(methodName, \"/\") {\n\t\treturn \"\", \"\", errors.New(\"invalid method name: should start with /\")\n\t}\n\tmethodName = methodName[1:]\n\n\tpos := strings.LastIndex(methodName, \"/\")\n\tif pos < 0 {\n\t\treturn \"\", \"\", errors.New(\"invalid method name: suffix /method is missing\")\n\t}\n\treturn methodName[:pos], methodName[pos+1:], nil\n}\n\n// baseContentType is the base content-type for gRPC.  This is a valid\n// content-type on its own, but can also include a content-subtype such as\n// \"proto\" as a suffix after \"+\" or \";\".  See\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests\n// for more details.\nconst baseContentType = \"application/grpc\"\n\n// ContentSubtype returns the content-subtype for the given content-type.  The\n// given content-type must be a valid content-type that starts with\n// \"application/grpc\". A content-subtype will follow \"application/grpc\" after a\n// \"+\" or \";\". See\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details.\n//\n// If contentType is not a valid content-type for gRPC, the boolean\n// will be false, otherwise true. If content-type == \"application/grpc\",\n// \"application/grpc+\", or \"application/grpc;\", the boolean will be true,\n// but no content-subtype will be returned.\n//\n// contentType is assumed to be lowercase already.\nfunc ContentSubtype(contentType string) (string, bool) {\n\tif contentType == baseContentType {\n\t\treturn \"\", true\n\t}\n\tif !strings.HasPrefix(contentType, baseContentType) {\n\t\treturn \"\", false\n\t}\n\t// guaranteed since != baseContentType and has baseContentType prefix\n\tswitch contentType[len(baseContentType)] {\n\tcase '+', ';':\n\t\t// this will return true for \"application/grpc+\" or \"application/grpc;\"\n\t\t// which the previous validContentType function tested to be valid, so we\n\t\t// just say that no content-subtype is specified in this case\n\t\treturn contentType[len(baseContentType)+1:], true\n\tdefault:\n\t\treturn \"\", false\n\t}\n}\n\n// ContentType builds full content type with the given sub-type.\n//\n// contentSubtype is assumed to be lowercase\nfunc ContentType(contentSubtype string) string {\n\tif contentSubtype == \"\" {\n\t\treturn baseContentType\n\t}\n\treturn baseContentType + \"+\" + contentSubtype\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/grpcutil/regex.go",
    "content": "/*\n *\n * Copyright 2021 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpcutil\n\nimport \"regexp\"\n\n// FullMatchWithRegex returns whether the full text matches the regex provided.\nfunc FullMatchWithRegex(re *regexp.Regexp, text string) bool {\n\tif len(text) == 0 {\n\t\treturn re.MatchString(text)\n\t}\n\tre.Longest()\n\trem := re.FindString(text)\n\treturn len(rem) == len(text)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/idle/idle.go",
    "content": "/*\n *\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package idle contains a component for managing idleness (entering and exiting)\n// based on RPC activity.\npackage idle\n\nimport (\n\t\"math\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\n// For overriding in unit tests.\nvar timeAfterFunc = func(d time.Duration, f func()) *time.Timer {\n\treturn time.AfterFunc(d, f)\n}\n\n// ClientConn is the functionality provided by grpc.ClientConn to enter and exit\n// from idle mode.\ntype ClientConn interface {\n\tExitIdleMode()\n\tEnterIdleMode()\n}\n\n// Manager implements idleness detection and calls the ClientConn to enter/exit\n// idle mode when appropriate. Must be created by NewManager.\ntype Manager struct {\n\t// State accessed atomically.\n\tlastCallEndTime           int64 // Unix timestamp in nanos; time when the most recent RPC completed.\n\tactiveCallsCount          int32 // Count of active RPCs; -math.MaxInt32 means channel is idle or is trying to get there.\n\tactiveSinceLastTimerCheck int32 // Boolean; True if there was an RPC since the last timer callback.\n\tclosed                    int32 // Boolean; True when the manager is closed.\n\n\t// Can be accessed without atomics or mutex since these are set at creation\n\t// time and read-only after that.\n\tcc      ClientConn // Functionality provided by grpc.ClientConn.\n\ttimeout time.Duration\n\n\t// idleMu is used to guarantee mutual exclusion in two scenarios:\n\t// - Opposing intentions:\n\t//   - a: Idle timeout has fired and handleIdleTimeout() is trying to put\n\t//     the channel in idle mode because the channel has been inactive.\n\t//   - b: At the same time an RPC is made on the channel, and OnCallBegin()\n\t//     is trying to prevent the channel from going idle.\n\t// - Competing intentions:\n\t//   - The channel is in idle mode and there are multiple RPCs starting at\n\t//     the same time, all trying to move the channel out of idle. Only one\n\t//     of them should succeed in doing so, while the other RPCs should\n\t//     piggyback on the first one and be successfully handled.\n\tidleMu       sync.RWMutex\n\tactuallyIdle bool\n\ttimer        *time.Timer\n}\n\n// NewManager creates a new idleness manager implementation for the\n// given idle timeout.  It begins in idle mode.\nfunc NewManager(cc ClientConn, timeout time.Duration) *Manager {\n\treturn &Manager{\n\t\tcc:               cc,\n\t\ttimeout:          timeout,\n\t\tactuallyIdle:     true,\n\t\tactiveCallsCount: -math.MaxInt32,\n\t}\n}\n\n// resetIdleTimerLocked resets the idle timer to the given duration.  Called\n// when exiting idle mode or when the timer fires and we need to reset it.\nfunc (m *Manager) resetIdleTimerLocked(d time.Duration) {\n\tif m.isClosed() || m.timeout == 0 || m.actuallyIdle {\n\t\treturn\n\t}\n\n\t// It is safe to ignore the return value from Reset() because this method is\n\t// only ever called from the timer callback or when exiting idle mode.\n\tif m.timer != nil {\n\t\tm.timer.Stop()\n\t}\n\tm.timer = timeAfterFunc(d, m.handleIdleTimeout)\n}\n\nfunc (m *Manager) resetIdleTimer(d time.Duration) {\n\tm.idleMu.Lock()\n\tdefer m.idleMu.Unlock()\n\tm.resetIdleTimerLocked(d)\n}\n\n// handleIdleTimeout is the timer callback that is invoked upon expiry of the\n// configured idle timeout. The channel is considered inactive if there are no\n// ongoing calls and no RPC activity since the last time the timer fired.\nfunc (m *Manager) handleIdleTimeout() {\n\tif m.isClosed() {\n\t\treturn\n\t}\n\n\tif atomic.LoadInt32(&m.activeCallsCount) > 0 {\n\t\tm.resetIdleTimer(m.timeout)\n\t\treturn\n\t}\n\n\t// There has been activity on the channel since we last got here. Reset the\n\t// timer and return.\n\tif atomic.LoadInt32(&m.activeSinceLastTimerCheck) == 1 {\n\t\t// Set the timer to fire after a duration of idle timeout, calculated\n\t\t// from the time the most recent RPC completed.\n\t\tatomic.StoreInt32(&m.activeSinceLastTimerCheck, 0)\n\t\tm.resetIdleTimer(time.Duration(atomic.LoadInt64(&m.lastCallEndTime)-time.Now().UnixNano()) + m.timeout)\n\t\treturn\n\t}\n\n\t// Now that we've checked that there has been no activity, attempt to enter\n\t// idle mode, which is very likely to succeed.\n\tif m.tryEnterIdleMode(true) {\n\t\t// Successfully entered idle mode. No timer needed until we exit idle.\n\t\treturn\n\t}\n\n\t// Failed to enter idle mode due to a concurrent RPC that kept the channel\n\t// active, or because of an error from the channel. Undo the attempt to\n\t// enter idle, and reset the timer to try again later.\n\tm.resetIdleTimer(m.timeout)\n}\n\n// tryEnterIdleMode instructs the channel to enter idle mode. But before\n// that, it performs a last minute check to ensure that no new RPC has come in,\n// making the channel active.\n//\n// checkActivity controls if a check for RPC activity, since the last time the\n// idle_timeout fired, is made.\n\n// Return value indicates whether or not the channel moved to idle mode.\n//\n// Holds idleMu which ensures mutual exclusion with exitIdleMode.\nfunc (m *Manager) tryEnterIdleMode(checkActivity bool) bool {\n\t// Setting the activeCallsCount to -math.MaxInt32 indicates to OnCallBegin()\n\t// that the channel is either in idle mode or is trying to get there.\n\tif !atomic.CompareAndSwapInt32(&m.activeCallsCount, 0, -math.MaxInt32) {\n\t\t// This CAS operation can fail if an RPC started after we checked for\n\t\t// activity in the timer handler, or one was ongoing from before the\n\t\t// last time the timer fired, or if a test is attempting to enter idle\n\t\t// mode without checking.  In all cases, abort going into idle mode.\n\t\treturn false\n\t}\n\t// N.B. if we fail to enter idle mode after this, we must re-add\n\t// math.MaxInt32 to m.activeCallsCount.\n\n\tm.idleMu.Lock()\n\tdefer m.idleMu.Unlock()\n\n\tif atomic.LoadInt32(&m.activeCallsCount) != -math.MaxInt32 {\n\t\t// We raced and lost to a new RPC. Very rare, but stop entering idle.\n\t\tatomic.AddInt32(&m.activeCallsCount, math.MaxInt32)\n\t\treturn false\n\t}\n\tif checkActivity && atomic.LoadInt32(&m.activeSinceLastTimerCheck) == 1 {\n\t\t// A very short RPC could have come in (and also finished) after we\n\t\t// checked for calls count and activity in handleIdleTimeout(), but\n\t\t// before the CAS operation. So, we need to check for activity again.\n\t\tatomic.AddInt32(&m.activeCallsCount, math.MaxInt32)\n\t\treturn false\n\t}\n\n\t// No new RPCs have come in since we set the active calls count value to\n\t// -math.MaxInt32. And since we have the lock, it is safe to enter idle mode\n\t// unconditionally now.\n\tm.cc.EnterIdleMode()\n\tm.actuallyIdle = true\n\treturn true\n}\n\n// EnterIdleModeForTesting instructs the channel to enter idle mode.\nfunc (m *Manager) EnterIdleModeForTesting() {\n\tm.tryEnterIdleMode(false)\n}\n\n// OnCallBegin is invoked at the start of every RPC.\nfunc (m *Manager) OnCallBegin() {\n\tif m.isClosed() {\n\t\treturn\n\t}\n\n\tif atomic.AddInt32(&m.activeCallsCount, 1) > 0 {\n\t\t// Channel is not idle now. Set the activity bit and allow the call.\n\t\tatomic.StoreInt32(&m.activeSinceLastTimerCheck, 1)\n\t\treturn\n\t}\n\n\t// Channel is either in idle mode or is in the process of moving to idle\n\t// mode. Attempt to exit idle mode to allow this RPC.\n\tm.ExitIdleMode()\n\tatomic.StoreInt32(&m.activeSinceLastTimerCheck, 1)\n}\n\n// ExitIdleMode instructs m to call the ClientConn's ExitIdleMode and update its\n// internal state.\nfunc (m *Manager) ExitIdleMode() {\n\t// Holds idleMu which ensures mutual exclusion with tryEnterIdleMode.\n\tm.idleMu.Lock()\n\tdefer m.idleMu.Unlock()\n\n\tif m.isClosed() || !m.actuallyIdle {\n\t\t// This can happen in three scenarios:\n\t\t// - handleIdleTimeout() set the calls count to -math.MaxInt32 and called\n\t\t//   tryEnterIdleMode(). But before the latter could grab the lock, an RPC\n\t\t//   came in and OnCallBegin() noticed that the calls count is negative.\n\t\t// - Channel is in idle mode, and multiple new RPCs come in at the same\n\t\t//   time, all of them notice a negative calls count in OnCallBegin and get\n\t\t//   here. The first one to get the lock would get the channel to exit idle.\n\t\t// - Channel is not in idle mode, and the user calls Connect which calls\n\t\t//   m.ExitIdleMode.\n\t\t//\n\t\t// In any case, there is nothing to do here.\n\t\treturn\n\t}\n\n\tm.cc.ExitIdleMode()\n\n\t// Undo the idle entry process. This also respects any new RPC attempts.\n\tatomic.AddInt32(&m.activeCallsCount, math.MaxInt32)\n\tm.actuallyIdle = false\n\n\t// Start a new timer to fire after the configured idle timeout.\n\tm.resetIdleTimerLocked(m.timeout)\n}\n\n// UnsafeSetNotIdle instructs the Manager to update its internal state to\n// reflect the reality that the channel is no longer in IDLE mode.\n//\n// N.B. This method is intended only for internal use by the gRPC client\n// when it exits IDLE mode **manually** from `Dial`. The callsite must ensure:\n//   - The channel was **actually in IDLE mode** immediately prior to the call.\n//   - There is **no concurrent activity** that could cause the channel to exit\n//     IDLE mode *naturally* at the same time.\nfunc (m *Manager) UnsafeSetNotIdle() {\n\tm.idleMu.Lock()\n\tdefer m.idleMu.Unlock()\n\n\tatomic.AddInt32(&m.activeCallsCount, math.MaxInt32)\n\tm.actuallyIdle = false\n\tm.resetIdleTimerLocked(m.timeout)\n}\n\n// OnCallEnd is invoked at the end of every RPC.\nfunc (m *Manager) OnCallEnd() {\n\tif m.isClosed() {\n\t\treturn\n\t}\n\n\t// Record the time at which the most recent call finished.\n\tatomic.StoreInt64(&m.lastCallEndTime, time.Now().UnixNano())\n\n\t// Decrement the active calls count. This count can temporarily go negative\n\t// when the timer callback is in the process of moving the channel to idle\n\t// mode, but one or more RPCs come in and complete before the timer callback\n\t// can get done with the process of moving to idle mode.\n\tatomic.AddInt32(&m.activeCallsCount, -1)\n}\n\nfunc (m *Manager) isClosed() bool {\n\treturn atomic.LoadInt32(&m.closed) == 1\n}\n\n// Close stops the timer associated with the Manager, if it exists.\nfunc (m *Manager) Close() {\n\tatomic.StoreInt32(&m.closed, 1)\n\n\tm.idleMu.Lock()\n\tif m.timer != nil {\n\t\tm.timer.Stop()\n\t\tm.timer = nil\n\t}\n\tm.idleMu.Unlock()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/internal.go",
    "content": "/*\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package internal contains gRPC-internal code, to avoid polluting\n// the godoc of the top-level grpc package.  It must not import any grpc\n// symbols to avoid circular dependencies.\npackage internal\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/connectivity\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nvar (\n\t// HealthCheckFunc is used to provide client-side LB channel health checking\n\tHealthCheckFunc HealthChecker\n\t// RegisterClientHealthCheckListener is used to provide a listener for\n\t// updates from the client-side health checking service. It returns a\n\t// function that can be called to stop the health producer.\n\tRegisterClientHealthCheckListener any // func(ctx context.Context, sc balancer.SubConn, serviceName string, listener func(balancer.SubConnState)) func()\n\t// BalancerUnregister is exported by package balancer to unregister a balancer.\n\tBalancerUnregister func(name string)\n\t// KeepaliveMinPingTime is the minimum ping interval.  This must be 10s by\n\t// default, but tests may wish to set it lower for convenience.\n\tKeepaliveMinPingTime = 10 * time.Second\n\t// KeepaliveMinServerPingTime is the minimum ping interval for servers.\n\t// This must be 1s by default, but tests may wish to set it lower for\n\t// convenience.\n\tKeepaliveMinServerPingTime = time.Second\n\t// ParseServiceConfig parses a JSON representation of the service config.\n\tParseServiceConfig any // func(string) *serviceconfig.ParseResult\n\t// EqualServiceConfigForTesting is for testing service config generation and\n\t// parsing. Both a and b should be returned by ParseServiceConfig.\n\t// This function compares the config without rawJSON stripped, in case the\n\t// there's difference in white space.\n\tEqualServiceConfigForTesting func(a, b serviceconfig.Config) bool\n\t// GetCertificateProviderBuilder returns the registered builder for the\n\t// given name. This is set by package certprovider for use from xDS\n\t// bootstrap code while parsing certificate provider configs in the\n\t// bootstrap file.\n\tGetCertificateProviderBuilder any // func(string) certprovider.Builder\n\t// GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo\n\t// stored in the passed in attributes. This is set by\n\t// credentials/xds/xds.go.\n\tGetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *unsafe.Pointer\n\t// GetServerCredentials returns the transport credentials configured on a\n\t// gRPC server. An xDS-enabled server needs to know what type of credentials\n\t// is configured on the underlying gRPC server. This is set by server.go.\n\tGetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials\n\t// MetricsRecorderForServer returns the MetricsRecorderList derived from a\n\t// server's stats handlers.\n\tMetricsRecorderForServer any // func (*grpc.Server) estats.MetricsRecorder\n\t// CanonicalString returns the canonical string of the code defined here:\n\t// https://github.com/grpc/grpc/blob/master/doc/statuscodes.md.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tCanonicalString any // func (codes.Code) string\n\t// IsRegisteredMethod returns whether the passed in method is registered as\n\t// a method on the server.\n\tIsRegisteredMethod any // func(*grpc.Server, string) bool\n\t// ServerFromContext returns the server from the context.\n\tServerFromContext any // func(context.Context) *grpc.Server\n\t// AddGlobalServerOptions adds an array of ServerOption that will be\n\t// effective globally for newly created servers. The priority will be: 1.\n\t// user-provided; 2. this method; 3. default values.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tAddGlobalServerOptions any // func(opt ...ServerOption)\n\t// ClearGlobalServerOptions clears the array of extra ServerOption. This\n\t// method is useful in testing and benchmarking.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tClearGlobalServerOptions func()\n\t// AddGlobalDialOptions adds an array of DialOption that will be effective\n\t// globally for newly created client channels. The priority will be: 1.\n\t// user-provided; 2. this method; 3. default values.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tAddGlobalDialOptions any // func(opt ...DialOption)\n\t// DisableGlobalDialOptions returns a DialOption that prevents the\n\t// ClientConn from applying the global DialOptions (set via\n\t// AddGlobalDialOptions).\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tDisableGlobalDialOptions any // func() grpc.DialOption\n\t// ClearGlobalDialOptions clears the array of extra DialOption. This\n\t// method is useful in testing and benchmarking.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tClearGlobalDialOptions func()\n\n\t// AddGlobalPerTargetDialOptions adds a PerTargetDialOption that will be\n\t// configured for newly created ClientConns.\n\tAddGlobalPerTargetDialOptions any // func (opt any)\n\t// ClearGlobalPerTargetDialOptions clears the slice of global late apply\n\t// dial options.\n\tClearGlobalPerTargetDialOptions func()\n\n\t// JoinDialOptions combines the dial options passed as arguments into a\n\t// single dial option.\n\tJoinDialOptions any // func(...grpc.DialOption) grpc.DialOption\n\t// JoinServerOptions combines the server options passed as arguments into a\n\t// single server option.\n\tJoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption\n\n\t// WithBinaryLogger returns a DialOption that specifies the binary logger\n\t// for a ClientConn.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tWithBinaryLogger any // func(binarylog.Logger) grpc.DialOption\n\t// BinaryLogger returns a ServerOption that can set the binary logger for a\n\t// server.\n\t//\n\t// This is used in the 1.0 release of gcp/observability, and thus must not be\n\t// deleted or changed.\n\tBinaryLogger any // func(binarylog.Logger) grpc.ServerOption\n\n\t// SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a\n\t// provided grpc.ClientConn.\n\tSubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber)\n\n\t// NewXDSResolverWithConfigForTesting creates a new xds resolver builder using\n\t// the provided xds bootstrap config instead of the global configuration from\n\t// the supported environment variables.  The resolver.Builder is meant to be\n\t// used in conjunction with the grpc.WithResolvers DialOption.\n\t//\n\t// Testing Only\n\t//\n\t// This function should ONLY be used for testing and may not work with some\n\t// other features, including the CSDS service.\n\tNewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error)\n\n\t// NewXDSResolverWithPoolForTesting creates a new xDS resolver builder\n\t// using the provided xDS pool instead of creating a new one using the\n\t// bootstrap configuration specified by the supported environment variables.\n\t// The resolver.Builder is meant to be used in conjunction with the\n\t// grpc.WithResolvers DialOption. The resolver.Builder does not take\n\t// ownership of the provided xDS client and it is the responsibility of the\n\t// caller to close the client when no longer required.\n\t//\n\t// Testing Only\n\t//\n\t// This function should ONLY be used for testing and may not work with some\n\t// other features, including the CSDS service.\n\tNewXDSResolverWithPoolForTesting any // func(*xdsclient.Pool) (resolver.Builder, error)\n\n\t// NewXDSResolverWithClientForTesting creates a new xDS resolver builder\n\t// using the provided xDS client instead of creating a new one using the\n\t// bootstrap configuration specified by the supported environment variables.\n\t// The resolver.Builder is meant to be used in conjunction with the\n\t// grpc.WithResolvers DialOption. The resolver.Builder does not take\n\t// ownership of the provided xDS client and it is the responsibility of the\n\t// caller to close the client when no longer required.\n\t//\n\t// Testing Only\n\t//\n\t// This function should ONLY be used for testing and may not work with some\n\t// other features, including the CSDS service.\n\tNewXDSResolverWithClientForTesting any // func(xdsclient.XDSClient) (resolver.Builder, error)\n\n\t// ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY.\n\tORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions)\n\n\t// GRPCResolverSchemeExtraMetadata determines when gRPC will add extra\n\t// metadata to RPCs.\n\tGRPCResolverSchemeExtraMetadata = \"xds\"\n\n\t// EnterIdleModeForTesting gets the ClientConn to enter IDLE mode.\n\tEnterIdleModeForTesting any // func(*grpc.ClientConn)\n\n\t// ExitIdleModeForTesting gets the ClientConn to exit IDLE mode.\n\tExitIdleModeForTesting any // func(*grpc.ClientConn) error\n\n\t// ChannelzTurnOffForTesting disables the Channelz service for testing\n\t// purposes.\n\tChannelzTurnOffForTesting func()\n\n\t// TriggerXDSResourceNotFoundForTesting causes the provided xDS Client to\n\t// invoke resource-not-found error for the given resource type and name.\n\tTriggerXDSResourceNotFoundForTesting any // func(xdsclient.XDSClient, xdsresource.Type, string) error\n\n\t// FromOutgoingContextRaw returns the un-merged, intermediary contents of\n\t// metadata.rawMD.\n\tFromOutgoingContextRaw any // func(context.Context) (metadata.MD, [][]string, bool)\n\n\t// UserSetDefaultScheme is set to true if the user has overridden the\n\t// default resolver scheme.\n\tUserSetDefaultScheme = false\n\n\t// SnapshotMetricRegistryForTesting snapshots the global data of the metric\n\t// registry. Returns a cleanup function that sets the metric registry to its\n\t// original state. Only called in testing functions.\n\tSnapshotMetricRegistryForTesting func() func()\n\n\t// SetBufferPoolingThresholdForTesting updates the buffer pooling threshold, for\n\t// testing purposes.\n\tSetBufferPoolingThresholdForTesting any // func(int)\n\n\t// TimeAfterFunc is used to create timers. During tests the function is\n\t// replaced to track allocated timers and fail the test if a timer isn't\n\t// cancelled.\n\tTimeAfterFunc = func(d time.Duration, f func()) Timer {\n\t\treturn time.AfterFunc(d, f)\n\t}\n\n\t// NewStreamWaitingForResolver is a test hook that is triggered when a\n\t// new stream blocks while waiting for name resolution. This can be\n\t// used in tests to synchronize resolver updates and avoid race conditions.\n\t// When set, the function will be called before the stream enters\n\t// the blocking state.\n\tNewStreamWaitingForResolver = func() {}\n\n\t// AddressToTelemetryLabels is an xDS-provided function to extract telemetry\n\t// labels from a resolver.Address. Callers must assert its type before calling.\n\tAddressToTelemetryLabels any // func(addr resolver.Address) map[string]string\n\n\t// AsyncReporterCleanupDelegate is initialized to a pass-through function by\n\t// default (production behavior), allowing tests to swap it with an\n\t// implementation which tracks registration of async reporter and its\n\t// corresponding cleanup.\n\tAsyncReporterCleanupDelegate = func(cleanup func()) func() {\n\t\treturn cleanup\n\t}\n)\n\n// HealthChecker defines the signature of the client-side LB channel health\n// checking function.\n//\n// The implementation is expected to create a health checking RPC stream by\n// calling newStream(), watch for the health status of serviceName, and report\n// its health back by calling setConnectivityState().\n//\n// The health checking protocol is defined at:\n// https://github.com/grpc/grpc/blob/master/doc/health-checking.md\ntype HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error\n\nconst (\n\t// CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode.\n\tCredsBundleModeFallback = \"fallback\"\n\t// CredsBundleModeBalancer switches GoogleDefaultCreds to grpclb balancer\n\t// mode.\n\tCredsBundleModeBalancer = \"balancer\"\n\t// CredsBundleModeBackendFromBalancer switches GoogleDefaultCreds to mode\n\t// that supports backend returned by grpclb balancer.\n\tCredsBundleModeBackendFromBalancer = \"backend-from-balancer\"\n)\n\n// RLSLoadBalancingPolicyName is the name of the RLS LB policy.\n//\n// It currently has an experimental suffix which would be removed once\n// end-to-end testing of the policy is completed.\nconst RLSLoadBalancingPolicyName = \"rls_experimental\"\n\n// EnforceSubConnEmbedding is used to enforce proper SubConn implementation\n// embedding.\ntype EnforceSubConnEmbedding interface {\n\tenforceSubConnEmbedding()\n}\n\n// EnforceClientConnEmbedding is used to enforce proper ClientConn implementation\n// embedding.\ntype EnforceClientConnEmbedding interface {\n\tenforceClientConnEmbedding()\n}\n\n// Timer is an interface to allow injecting different time.Timer implementations\n// during tests.\ntype Timer interface {\n\tStop() bool\n}\n\n// EnforceMetricsRecorderEmbedding is used to enforce proper MetricsRecorder\n// implementation embedding.\ntype EnforceMetricsRecorderEmbedding interface {\n\tenforceMetricsRecorderEmbedding()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/metadata/metadata.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package metadata contains functions to set and get metadata from addresses.\n//\n// This package is experimental.\npackage metadata\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\ntype mdKeyType string\n\nconst mdKey = mdKeyType(\"grpc.internal.address.metadata\")\n\ntype mdValue metadata.MD\n\nfunc (m mdValue) Equal(o any) bool {\n\tom, ok := o.(mdValue)\n\tif !ok {\n\t\treturn false\n\t}\n\tif len(m) != len(om) {\n\t\treturn false\n\t}\n\tfor k, v := range m {\n\t\tov := om[k]\n\t\tif len(ov) != len(v) {\n\t\t\treturn false\n\t\t}\n\t\tfor i, ve := range v {\n\t\t\tif ov[i] != ve {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Get returns the metadata of addr.\nfunc Get(addr resolver.Address) metadata.MD {\n\tattrs := addr.Attributes\n\tif attrs == nil {\n\t\treturn nil\n\t}\n\tmd, _ := attrs.Value(mdKey).(mdValue)\n\treturn metadata.MD(md)\n}\n\n// Set sets (overrides) the metadata in addr.\n//\n// When a SubConn is created with this address, the RPCs sent on it will all\n// have this metadata.\nfunc Set(addr resolver.Address, md metadata.MD) resolver.Address {\n\taddr.Attributes = addr.Attributes.WithValue(mdKey, mdValue(md))\n\treturn addr\n}\n\n// Validate validates every pair in md with ValidatePair.\nfunc Validate(md metadata.MD) error {\n\tfor k, vals := range md {\n\t\tif err := ValidatePair(k, vals...); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// hasNotPrintable return true if msg contains any characters which are not in %x20-%x7E\nfunc hasNotPrintable(msg string) bool {\n\t// for i that saving a conversion if not using for range\n\tfor i := 0; i < len(msg); i++ {\n\t\tif msg[i] < 0x20 || msg[i] > 0x7E {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// ValidateKey validates a key with the following rules (pseudo-headers are\n// skipped):\n// - the key must contain one or more characters.\n// - the characters in the key must be in [0-9 a-z _ - .].\nfunc ValidateKey(key string) error {\n\t// key should not be empty\n\tif key == \"\" {\n\t\treturn fmt.Errorf(\"there is an empty key in the header\")\n\t}\n\t// pseudo-header will be ignored\n\tif key[0] == ':' {\n\t\treturn nil\n\t}\n\t// check key, for i that saving a conversion if not using for range\n\tfor i := 0; i < len(key); i++ {\n\t\tr := key[i]\n\t\tif !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' {\n\t\t\treturn fmt.Errorf(\"header key %q contains illegal characters not in [0-9a-z-_.]\", key)\n\t\t}\n\t}\n\treturn nil\n}\n\n// ValidatePair validates a key-value pair with the following rules\n// (pseudo-header are skipped):\n//   - the key must contain one or more characters.\n//   - the characters in the key must be in [0-9 a-z _ - .].\n//   - if the key ends with a \"-bin\" suffix, no validation of the corresponding\n//     value is performed.\n//   - the characters in every value must be printable (in [%x20-%x7E]).\nfunc ValidatePair(key string, vals ...string) error {\n\tif err := ValidateKey(key); err != nil {\n\t\treturn err\n\t}\n\tif strings.HasSuffix(key, \"-bin\") {\n\t\treturn nil\n\t}\n\t// check value\n\tfor _, val := range vals {\n\t\tif hasNotPrintable(val) {\n\t\t\treturn fmt.Errorf(\"header key %q contains value with non-printable ASCII characters\", key)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/pretty/pretty.go",
    "content": "/*\n *\n * Copyright 2021 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package pretty defines helper functions to pretty-print structs for logging.\npackage pretty\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/protojson\"\n\t\"google.golang.org/protobuf/protoadapt\"\n)\n\nconst jsonIndent = \"  \"\n\n// ToJSON marshals the input into a json string.\n//\n// If marshal fails, it falls back to fmt.Sprintf(\"%+v\").\nfunc ToJSON(e any) string {\n\tif ee, ok := e.(protoadapt.MessageV1); ok {\n\t\te = protoadapt.MessageV2Of(ee)\n\t}\n\n\tif ee, ok := e.(protoadapt.MessageV2); ok {\n\t\tmm := protojson.MarshalOptions{\n\t\t\tIndent:    jsonIndent,\n\t\t\tMultiline: true,\n\t\t}\n\t\tret, err := mm.Marshal(ee)\n\t\tif err != nil {\n\t\t\t// This may fail for proto.Anys, e.g. for xDS v2, LDS, the v2\n\t\t\t// messages are not imported, and this will fail because the message\n\t\t\t// is not found.\n\t\t\treturn fmt.Sprintf(\"%+v\", ee)\n\t\t}\n\t\treturn string(ret)\n\t}\n\n\tret, err := json.MarshalIndent(e, \"\", jsonIndent)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"%+v\", e)\n\t}\n\treturn string(ret)\n}\n\n// FormatJSON formats the input json bytes with indentation.\n//\n// If Indent fails, it returns the unchanged input as string.\nfunc FormatJSON(b []byte) string {\n\tvar out bytes.Buffer\n\terr := json.Indent(&out, b, \"\", jsonIndent)\n\tif err != nil {\n\t\treturn string(b)\n\t}\n\treturn out.String()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/proxyattributes/proxyattributes.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package proxyattributes contains functions for getting and setting proxy\n// attributes like the CONNECT address and user info.\npackage proxyattributes\n\nimport (\n\t\"net/url\"\n\n\t\"google.golang.org/grpc/resolver\"\n)\n\ntype keyType string\n\nconst proxyOptionsKey = keyType(\"grpc.resolver.delegatingresolver.proxyOptions\")\n\n// Options holds the proxy connection details needed during the CONNECT\n// handshake.\ntype Options struct {\n\tUser        *url.Userinfo\n\tConnectAddr string\n}\n\n// Set returns a copy of addr with opts set in its attributes.\nfunc Set(addr resolver.Address, opts Options) resolver.Address {\n\taddr.Attributes = addr.Attributes.WithValue(proxyOptionsKey, opts)\n\treturn addr\n}\n\n// Get returns the Options for the proxy [resolver.Address] and a boolean\n// value representing if the attribute is present or not. The returned data\n// should not be mutated.\nfunc Get(addr resolver.Address) (Options, bool) {\n\tif a := addr.Attributes.Value(proxyOptionsKey); a != nil {\n\t\treturn a.(Options), true\n\t}\n\treturn Options{}, false\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/config_selector.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package resolver provides internal resolver-related functionality.\npackage resolver\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/internal/serviceconfig\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// ConfigSelector controls what configuration to use for every RPC.\ntype ConfigSelector interface {\n\t// Selects the configuration for the RPC, or terminates it using the error.\n\t// This error will be converted by the gRPC library to a status error with\n\t// code UNKNOWN if it is not returned as a status error.\n\tSelectConfig(RPCInfo) (*RPCConfig, error)\n}\n\n// RPCInfo contains RPC information needed by a ConfigSelector.\ntype RPCInfo struct {\n\t// Context is the user's context for the RPC and contains headers and\n\t// application timeout.  It is passed for interception purposes and for\n\t// efficiency reasons.  SelectConfig should not be blocking.\n\tContext context.Context\n\tMethod  string // i.e. \"/Service/Method\"\n}\n\n// RPCConfig describes the configuration to use for each RPC.\ntype RPCConfig struct {\n\t// The context to use for the remainder of the RPC; can pass info to LB\n\t// policy or affect timeout or metadata.\n\tContext      context.Context\n\tMethodConfig serviceconfig.MethodConfig // configuration to use for this RPC\n\tOnCommitted  func()                     // Called when the RPC has been committed (retries no longer possible)\n\tInterceptor  ClientInterceptor\n}\n\n// ClientStream is the same as grpc.ClientStream, but defined here for circular\n// dependency reasons.\ntype ClientStream interface {\n\t// Header returns the header metadata received from the server if there\n\t// is any. It blocks if the metadata is not ready to read.\n\tHeader() (metadata.MD, error)\n\t// Trailer returns the trailer metadata from the server, if there is any.\n\t// It must only be called after stream.CloseAndRecv has returned, or\n\t// stream.Recv has returned a non-nil error (including io.EOF).\n\tTrailer() metadata.MD\n\t// CloseSend closes the send direction of the stream. It closes the stream\n\t// when non-nil error is met. It is also not safe to call CloseSend\n\t// concurrently with SendMsg.\n\tCloseSend() error\n\t// Context returns the context for this stream.\n\t//\n\t// It should not be called until after Header or RecvMsg has returned. Once\n\t// called, subsequent client-side retries are disabled.\n\tContext() context.Context\n\t// SendMsg is generally called by generated code. On error, SendMsg aborts\n\t// the stream. If the error was generated by the client, the status is\n\t// returned directly; otherwise, io.EOF is returned and the status of\n\t// the stream may be discovered using RecvMsg.\n\t//\n\t// SendMsg blocks until:\n\t//   - There is sufficient flow control to schedule m with the transport, or\n\t//   - The stream is done, or\n\t//   - The stream breaks.\n\t//\n\t// SendMsg does not wait until the message is received by the server. An\n\t// untimely stream closure may result in lost messages. To ensure delivery,\n\t// users should ensure the RPC completed successfully using RecvMsg.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not safe\n\t// to call SendMsg on the same stream in different goroutines. It is also\n\t// not safe to call CloseSend concurrently with SendMsg.\n\tSendMsg(m any) error\n\t// RecvMsg blocks until it receives a message into m or the stream is\n\t// done. It returns io.EOF when the stream completes successfully. On\n\t// any other error, the stream is aborted and the error contains the RPC\n\t// status.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not\n\t// safe to call RecvMsg on the same stream in different goroutines.\n\tRecvMsg(m any) error\n}\n\n// ClientInterceptor is an interceptor for gRPC client streams.\ntype ClientInterceptor interface {\n\t// NewStream produces a ClientStream for an RPC which may optionally use\n\t// the provided function to produce a stream for delegation.  Note:\n\t// RPCInfo.Context should not be used (will be nil).\n\t//\n\t// done is invoked when the RPC is finished using its connection, or could\n\t// not be assigned a connection.  RPC operations may still occur on\n\t// ClientStream after done is called, since the interceptor is invoked by\n\t// application-layer operations.  done must never be nil when called.\n\tNewStream(ctx context.Context, ri RPCInfo, done func(), newStream func(ctx context.Context, done func()) (ClientStream, error)) (ClientStream, error)\n}\n\n// ServerInterceptor is an interceptor for incoming RPC's on gRPC server side.\ntype ServerInterceptor interface {\n\t// AllowRPC checks if an incoming RPC is allowed to proceed based on\n\t// information about connection RPC was received on, and HTTP Headers. This\n\t// information will be piped into context.\n\tAllowRPC(ctx context.Context) error // TODO: Make this a real interceptor for filters such as rate limiting.\n}\n\ntype csKeyType string\n\nconst csKey = csKeyType(\"grpc.internal.resolver.configSelector\")\n\n// SetConfigSelector sets the config selector in state and returns the new\n// state.\nfunc SetConfigSelector(state resolver.State, cs ConfigSelector) resolver.State {\n\tstate.Attributes = state.Attributes.WithValue(csKey, cs)\n\treturn state\n}\n\n// GetConfigSelector retrieves the config selector from state, if present, and\n// returns it or nil if absent.\nfunc GetConfigSelector(state resolver.State) ConfigSelector {\n\tcs, _ := state.Attributes.Value(csKey).(ConfigSelector)\n\treturn cs\n}\n\n// SafeConfigSelector allows for safe switching of ConfigSelector\n// implementations such that previous values are guaranteed to not be in use\n// when UpdateConfigSelector returns.\ntype SafeConfigSelector struct {\n\tmu sync.RWMutex\n\tcs ConfigSelector\n}\n\n// UpdateConfigSelector swaps to the provided ConfigSelector and blocks until\n// all uses of the previous ConfigSelector have completed.\nfunc (scs *SafeConfigSelector) UpdateConfigSelector(cs ConfigSelector) {\n\tscs.mu.Lock()\n\tdefer scs.mu.Unlock()\n\tscs.cs = cs\n}\n\n// SelectConfig defers to the current ConfigSelector in scs.\nfunc (scs *SafeConfigSelector) SelectConfig(r RPCInfo) (*RPCConfig, error) {\n\tscs.mu.RLock()\n\tdefer scs.mu.RUnlock()\n\treturn scs.cs.SelectConfig(r)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package delegatingresolver implements a resolver capable of resolving both\n// target URIs and proxy addresses.\npackage delegatingresolver\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal/envconfig\"\n\t\"google.golang.org/grpc/internal/proxyattributes\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/internal/transport/networktype\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nvar (\n\tlogger = grpclog.Component(\"delegating-resolver\")\n\t// HTTPSProxyFromEnvironment will be overwritten in the tests\n\tHTTPSProxyFromEnvironment = http.ProxyFromEnvironment\n)\n\nconst defaultPort = \"443\"\n\n// delegatingResolver manages both target URI and proxy address resolution by\n// delegating these tasks to separate child resolvers. Essentially, it acts as\n// an intermediary between the gRPC ClientConn and the child resolvers.\n//\n// It implements the [resolver.Resolver] interface.\ntype delegatingResolver struct {\n\ttarget   resolver.Target     // parsed target URI to be resolved\n\tcc       resolver.ClientConn // gRPC ClientConn\n\tproxyURL *url.URL            // proxy URL, derived from proxy environment and target\n\n\t// We do not hold both mu and childMu in the same goroutine. Avoid holding\n\t// both locks when calling into the child, as the child resolver may\n\t// synchronously callback into the channel.\n\tmu                  sync.Mutex         // protects all the fields below\n\ttargetResolverState *resolver.State    // state of the target resolver\n\tproxyAddrs          []resolver.Address // resolved proxy addresses; empty if no proxy is configured\n\n\t// childMu serializes calls into child resolvers. It also protects access to\n\t// the following fields.\n\tchildMu        sync.Mutex\n\ttargetResolver resolver.Resolver // resolver for the target URI, based on its scheme\n\tproxyResolver  resolver.Resolver // resolver for the proxy URI; nil if no proxy is configured\n}\n\n// nopResolver is a resolver that does nothing.\ntype nopResolver struct{}\n\nfunc (nopResolver) ResolveNow(resolver.ResolveNowOptions) {}\n\nfunc (nopResolver) Close() {}\n\n// proxyURLForTarget determines the proxy URL for the given address based on the\n// environment. It can return the following:\n//   - nil URL, nil error: No proxy is configured or the address is excluded\n//     using the `NO_PROXY` environment variable or if req.URL.Host is\n//     \"localhost\" (with or without // a port number)\n//   - nil URL, non-nil error: An error occurred while retrieving the proxy URL.\n//   - non-nil URL, nil error: A proxy is configured, and the proxy URL was\n//     retrieved successfully without any errors.\nfunc proxyURLForTarget(address string) (*url.URL, error) {\n\treq := &http.Request{URL: &url.URL{\n\t\tScheme: \"https\",\n\t\tHost:   address,\n\t}}\n\treturn HTTPSProxyFromEnvironment(req)\n}\n\n// New creates a new delegating resolver that can create up to two child\n// resolvers:\n//   - one to resolve the proxy address specified using the supported\n//     environment variables. This uses the registered resolver for the \"dns\"\n//     scheme. It is lazily built when a target resolver update contains at least\n//     one TCP address.\n//   - one to resolve the target URI using the resolver specified by the scheme\n//     in the target URI or specified by the user using the WithResolvers dial\n//     option. As a special case, if the target URI's scheme is \"dns\" and a\n//     proxy is specified using the supported environment variables, the target\n//     URI's path portion is used as the resolved address unless target\n//     resolution is enabled using the dial option.\nfunc New(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions, targetResolverBuilder resolver.Builder, targetResolutionEnabled bool) (resolver.Resolver, error) {\n\tr := &delegatingResolver{\n\t\ttarget:         target,\n\t\tcc:             cc,\n\t\tproxyResolver:  nopResolver{},\n\t\ttargetResolver: nopResolver{},\n\t}\n\n\taddr := target.Endpoint()\n\tvar err error\n\tif target.URL.Scheme == \"dns\" && !targetResolutionEnabled && envconfig.EnableDefaultPortForProxyTarget {\n\t\taddr, err = parseTarget(addr)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"delegating_resolver: invalid target address %q: %v\", target.Endpoint(), err)\n\t\t}\n\t}\n\n\tr.proxyURL, err = proxyURLForTarget(addr)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"delegating_resolver: failed to determine proxy URL for target %q: %v\", target, err)\n\t}\n\n\t// proxy is not configured or proxy address excluded using `NO_PROXY` env\n\t// var, so only target resolver is used.\n\tif r.proxyURL == nil {\n\t\treturn targetResolverBuilder.Build(target, cc, opts)\n\t}\n\n\tif logger.V(2) {\n\t\tlogger.Infof(\"Proxy URL detected : %s\", r.proxyURL)\n\t}\n\n\t// Resolver updates from one child may trigger calls into the other. Block\n\t// updates until the children are initialized.\n\tr.childMu.Lock()\n\tdefer r.childMu.Unlock()\n\t// When the scheme is 'dns' and target resolution on client is not enabled,\n\t// resolution should be handled by the proxy, not the client. Therefore, we\n\t// bypass the target resolver and store the unresolved target address.\n\tif target.URL.Scheme == \"dns\" && !targetResolutionEnabled {\n\t\tr.targetResolverState = &resolver.State{\n\t\t\tAddresses: []resolver.Address{{Addr: addr}},\n\t\t\tEndpoints: []resolver.Endpoint{{Addresses: []resolver.Address{{Addr: addr}}}},\n\t\t}\n\t\tr.updateTargetResolverState(*r.targetResolverState)\n\t\treturn r, nil\n\t}\n\twcc := &wrappingClientConn{\n\t\tstateListener: r.updateTargetResolverState,\n\t\tparent:        r,\n\t}\n\tif r.targetResolver, err = targetResolverBuilder.Build(target, wcc, opts); err != nil {\n\t\treturn nil, fmt.Errorf(\"delegating_resolver: unable to build the resolver for target %s: %v\", target, err)\n\t}\n\treturn r, nil\n}\n\n// proxyURIResolver creates a resolver for resolving proxy URIs using the \"dns\"\n// scheme. It adjusts the proxyURL to conform to the \"dns:///\" format and builds\n// a resolver with a wrappingClientConn to capture resolved addresses.\nfunc (r *delegatingResolver) proxyURIResolver(opts resolver.BuildOptions) (resolver.Resolver, error) {\n\tproxyBuilder := resolver.Get(\"dns\")\n\tif proxyBuilder == nil {\n\t\tpanic(\"delegating_resolver: resolver for proxy not found for scheme dns\")\n\t}\n\turl := *r.proxyURL\n\turl.Scheme = \"dns\"\n\turl.Path = \"/\" + r.proxyURL.Host\n\turl.Host = \"\" // Clear the Host field to conform to the \"dns:///\" format\n\n\tproxyTarget := resolver.Target{URL: url}\n\twcc := &wrappingClientConn{\n\t\tstateListener: r.updateProxyResolverState,\n\t\tparent:        r,\n\t}\n\treturn proxyBuilder.Build(proxyTarget, wcc, opts)\n}\n\nfunc (r *delegatingResolver) ResolveNow(o resolver.ResolveNowOptions) {\n\tr.childMu.Lock()\n\tdefer r.childMu.Unlock()\n\tr.targetResolver.ResolveNow(o)\n\tr.proxyResolver.ResolveNow(o)\n}\n\nfunc (r *delegatingResolver) Close() {\n\tr.childMu.Lock()\n\tdefer r.childMu.Unlock()\n\tr.targetResolver.Close()\n\tr.targetResolver = nil\n\n\tr.proxyResolver.Close()\n\tr.proxyResolver = nil\n}\n\nfunc needsProxyResolver(state *resolver.State) bool {\n\tfor _, addr := range state.Addresses {\n\t\tif !skipProxy(addr) {\n\t\t\treturn true\n\t\t}\n\t}\n\tfor _, endpoint := range state.Endpoints {\n\t\tfor _, addr := range endpoint.Addresses {\n\t\t\tif !skipProxy(addr) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// parseTarget takes a target string and ensures it is a valid \"host:port\" target.\n//\n// It does the following:\n//  1. If the target already has a port (e.g., \"host:port\", \"[ipv6]:port\"),\n//     it is returned as is.\n//  2. If the host part is empty (e.g., \":80\"), it defaults to \"localhost\",\n//     returning \"localhost:80\".\n//  3. If the target is missing a port (e.g., \"host\", \"ipv6\"), the defaultPort\n//     is added.\n//\n// An error is returned for empty targets or targets with a trailing colon\n// but no port (e.g., \"host:\").\nfunc parseTarget(target string) (string, error) {\n\tif target == \"\" {\n\t\treturn \"\", fmt.Errorf(\"missing address\")\n\t}\n\n\thost, port, err := net.SplitHostPort(target)\n\tif err != nil {\n\t\t// If SplitHostPort fails, it's likely because the port is missing.\n\t\t// We append the default port and return the result.\n\t\treturn net.JoinHostPort(target, defaultPort), nil\n\t}\n\n\t// If SplitHostPort succeeds, we check for edge cases.\n\tif port == \"\" {\n\t\t// A success with an empty port means the target had a trailing colon,\n\t\t// e.g., \"host:\", which is an error.\n\t\treturn \"\", fmt.Errorf(\"missing port after port-separator colon\")\n\t}\n\tif host == \"\" {\n\t\t// A success with an empty host means the target was like \":80\".\n\t\t// We default the host to \"localhost\".\n\t\thost = \"localhost\"\n\t}\n\treturn net.JoinHostPort(host, port), nil\n}\n\nfunc skipProxy(address resolver.Address) bool {\n\t// Avoid proxy when network is not tcp.\n\tnetworkType, ok := networktype.Get(address)\n\tif !ok {\n\t\tnetworkType, _ = transport.ParseDialTarget(address.Addr)\n\t}\n\tif networkType != \"tcp\" {\n\t\treturn true\n\t}\n\n\treq := &http.Request{URL: &url.URL{\n\t\tScheme: \"https\",\n\t\tHost:   address.Addr,\n\t}}\n\t// Avoid proxy when address included in `NO_PROXY` environment variable or\n\t// fails to get the proxy address.\n\turl, err := HTTPSProxyFromEnvironment(req)\n\tif err != nil || url == nil {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// updateClientConnStateLocked constructs a combined list of addresses by\n// pairing each proxy address with every target address of type TCP. For each\n// pair, it creates a new [resolver.Address] using the proxy address and\n// attaches the corresponding target address and user info as attributes. Target\n// addresses that are not of type TCP are appended to the list as-is. The\n// function returns nil if either resolver has not yet provided an update, and\n// returns the result of ClientConn.UpdateState once both resolvers have\n// provided at least one update.\nfunc (r *delegatingResolver) updateClientConnStateLocked() error {\n\tif r.targetResolverState == nil || r.proxyAddrs == nil {\n\t\treturn nil\n\t}\n\n\t// If multiple resolved proxy addresses are present, we send only the\n\t// unresolved proxy host and let net.Dial handle the proxy host name\n\t// resolution when creating the transport. Sending all resolved addresses\n\t// would increase the number of addresses passed to the ClientConn and\n\t// subsequently to load balancing (LB) policies like Round Robin, leading\n\t// to additional TCP connections. However, if there's only one resolved\n\t// proxy address, we send it directly, as it doesn't affect the address\n\t// count returned by the target resolver and the address count sent to the\n\t// ClientConn.\n\tvar proxyAddr resolver.Address\n\tif len(r.proxyAddrs) == 1 {\n\t\tproxyAddr = r.proxyAddrs[0]\n\t} else {\n\t\tproxyAddr = resolver.Address{Addr: r.proxyURL.Host}\n\t}\n\tvar addresses []resolver.Address\n\tfor _, targetAddr := range (*r.targetResolverState).Addresses {\n\t\tif skipProxy(targetAddr) {\n\t\t\taddresses = append(addresses, targetAddr)\n\t\t\tcontinue\n\t\t}\n\t\taddresses = append(addresses, proxyattributes.Set(proxyAddr, proxyattributes.Options{\n\t\t\tUser:        r.proxyURL.User,\n\t\t\tConnectAddr: targetAddr.Addr,\n\t\t}))\n\t}\n\n\t// For each target endpoint, construct a new [resolver.Endpoint] that\n\t// includes all addresses from all proxy endpoints and the addresses from\n\t// that target endpoint, preserving the number of target endpoints.\n\tvar endpoints []resolver.Endpoint\n\tfor _, endpt := range (*r.targetResolverState).Endpoints {\n\t\tvar addrs []resolver.Address\n\t\tfor _, targetAddr := range endpt.Addresses {\n\t\t\t// Avoid proxy when network is not tcp.\n\t\t\tif skipProxy(targetAddr) {\n\t\t\t\taddrs = append(addrs, targetAddr)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, proxyAddr := range r.proxyAddrs {\n\t\t\t\taddrs = append(addrs, proxyattributes.Set(proxyAddr, proxyattributes.Options{\n\t\t\t\t\tUser:        r.proxyURL.User,\n\t\t\t\t\tConnectAddr: targetAddr.Addr,\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\t\tendpoints = append(endpoints, resolver.Endpoint{Addresses: addrs})\n\t}\n\t// Use the targetResolverState for its service config and attributes\n\t// contents. The state update is only sent after both the target and proxy\n\t// resolvers have sent their updates, and curState has been updated with the\n\t// combined addresses.\n\tcurState := *r.targetResolverState\n\tcurState.Addresses = addresses\n\tcurState.Endpoints = endpoints\n\treturn r.cc.UpdateState(curState)\n}\n\n// updateProxyResolverState updates the proxy resolver state by storing proxy\n// addresses and endpoints, marking the resolver as ready, and triggering a\n// state update if both proxy and target resolvers are ready. If the ClientConn\n// returns a non-nil error, it calls `ResolveNow()` on the target resolver.  It\n// is a StateListener function of wrappingClientConn passed to the proxy\n// resolver.\nfunc (r *delegatingResolver) updateProxyResolverState(state resolver.State) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif logger.V(2) {\n\t\tlogger.Infof(\"Addresses received from proxy resolver: %s\", state.Addresses)\n\t}\n\tif len(state.Endpoints) > 0 {\n\t\t// We expect exactly one address per endpoint because the proxy resolver\n\t\t// uses \"dns\" resolution.\n\t\tr.proxyAddrs = make([]resolver.Address, 0, len(state.Endpoints))\n\t\tfor _, endpoint := range state.Endpoints {\n\t\t\tr.proxyAddrs = append(r.proxyAddrs, endpoint.Addresses...)\n\t\t}\n\t} else if state.Addresses != nil {\n\t\tr.proxyAddrs = state.Addresses\n\t} else {\n\t\tr.proxyAddrs = []resolver.Address{} // ensure proxyAddrs is non-nil to indicate an update has been received\n\t}\n\terr := r.updateClientConnStateLocked()\n\t// Another possible approach was to block until updates are received from\n\t// both resolvers. But this is not used because calling `New()` triggers\n\t// `Build()` for the first resolver, which calls `UpdateState()`. And the\n\t// second resolver hasn't sent an update yet, so it would cause `New()` to\n\t// block indefinitely.\n\tif err != nil {\n\t\tgo func() {\n\t\t\tr.childMu.Lock()\n\t\t\tdefer r.childMu.Unlock()\n\t\t\tif r.targetResolver != nil {\n\t\t\t\tr.targetResolver.ResolveNow(resolver.ResolveNowOptions{})\n\t\t\t}\n\t\t}()\n\t}\n\treturn err\n}\n\n// updateTargetResolverState is the StateListener function provided to the\n// target resolver via wrappingClientConn. It updates the resolver state and\n// marks the target resolver as ready. If the update includes at least one TCP\n// address and the proxy resolver has not yet been constructed, it initializes\n// the proxy resolver. A combined state update is triggered once both resolvers\n// are ready. If all addresses are non-TCP, it proceeds without waiting for the\n// proxy resolver. If ClientConn.UpdateState returns a non-nil error,\n// ResolveNow() is called on the proxy resolver.\nfunc (r *delegatingResolver) updateTargetResolverState(state resolver.State) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\n\tif logger.V(2) {\n\t\tlogger.Infof(\"Addresses received from target resolver: %v\", state.Addresses)\n\t}\n\tr.targetResolverState = &state\n\t// If all addresses returned by the target resolver have a non-TCP network\n\t// type, or are listed in the `NO_PROXY` environment variable, do not wait\n\t// for proxy update.\n\tif !needsProxyResolver(r.targetResolverState) {\n\t\treturn r.cc.UpdateState(*r.targetResolverState)\n\t}\n\n\t// The proxy resolver may be rebuilt multiple times, specifically each time\n\t// the target resolver sends an update, even if the target resolver is built\n\t// successfully but building the proxy resolver fails.\n\tif len(r.proxyAddrs) == 0 {\n\t\tgo func() {\n\t\t\tr.childMu.Lock()\n\t\t\tdefer r.childMu.Unlock()\n\t\t\tif _, ok := r.proxyResolver.(nopResolver); !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tproxyResolver, err := r.proxyURIResolver(resolver.BuildOptions{})\n\t\t\tif err != nil {\n\t\t\t\tr.cc.ReportError(fmt.Errorf(\"delegating_resolver: unable to build the proxy resolver: %v\", err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tr.proxyResolver = proxyResolver\n\t\t}()\n\t}\n\n\terr := r.updateClientConnStateLocked()\n\tif err != nil {\n\t\tgo func() {\n\t\t\tr.childMu.Lock()\n\t\t\tdefer r.childMu.Unlock()\n\t\t\tif r.proxyResolver != nil {\n\t\t\t\tr.proxyResolver.ResolveNow(resolver.ResolveNowOptions{})\n\t\t\t}\n\t\t}()\n\t}\n\treturn nil\n}\n\n// wrappingClientConn serves as an intermediary between the parent ClientConn\n// and the child resolvers created here. It implements the resolver.ClientConn\n// interface and is passed in that capacity to the child resolvers.\ntype wrappingClientConn struct {\n\t// Callback to deliver resolver state updates\n\tstateListener func(state resolver.State) error\n\tparent        *delegatingResolver\n}\n\n// UpdateState receives resolver state updates and forwards them to the\n// appropriate listener function (either for the proxy or target resolver).\nfunc (wcc *wrappingClientConn) UpdateState(state resolver.State) error {\n\treturn wcc.stateListener(state)\n}\n\n// ReportError intercepts errors from the child resolvers and passes them to\n// ClientConn.\nfunc (wcc *wrappingClientConn) ReportError(err error) {\n\twcc.parent.cc.ReportError(err)\n}\n\n// NewAddress intercepts the new resolved address from the child resolvers and\n// passes them to ClientConn.\nfunc (wcc *wrappingClientConn) NewAddress(addrs []resolver.Address) {\n\twcc.UpdateState(resolver.State{Addresses: addrs})\n}\n\n// ParseServiceConfig parses the provided service config and returns an object\n// that provides the parsed config.\nfunc (wcc *wrappingClientConn) ParseServiceConfig(serviceConfigJSON string) *serviceconfig.ParseResult {\n\treturn wcc.parent.cc.ParseServiceConfig(serviceConfigJSON)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package dns implements a dns resolver to be installed as the default resolver\n// in grpc.\npackage dns\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\trand \"math/rand/v2\"\n\t\"net\"\n\t\"net/netip\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\tgrpclbstate \"google.golang.org/grpc/balancer/grpclb/state\"\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal/backoff\"\n\t\"google.golang.org/grpc/internal/envconfig\"\n\t\"google.golang.org/grpc/internal/resolver/dns/internal\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nvar (\n\t// EnableSRVLookups controls whether the DNS resolver attempts to fetch gRPCLB\n\t// addresses from SRV records.  Must not be changed after init time.\n\tEnableSRVLookups = false\n\n\t// MinResolutionInterval is the minimum interval at which re-resolutions are\n\t// allowed. This helps to prevent excessive re-resolution.\n\tMinResolutionInterval = 30 * time.Second\n\n\t// ResolvingTimeout specifies the maximum duration for a DNS resolution request.\n\t// If the timeout expires before a response is received, the request will be canceled.\n\t//\n\t// It is recommended to set this value at application startup. Avoid modifying this variable\n\t// after initialization as it's not thread-safe for concurrent modification.\n\tResolvingTimeout = 30 * time.Second\n\n\tlogger = grpclog.Component(\"dns\")\n)\n\nfunc init() {\n\tresolver.Register(NewBuilder())\n\tinternal.TimeAfterFunc = time.After\n\tinternal.TimeNowFunc = time.Now\n\tinternal.TimeUntilFunc = time.Until\n\tinternal.NewNetResolver = newNetResolver\n\tinternal.AddressDialer = addressDialer\n}\n\nconst (\n\tdefaultPort       = \"443\"\n\tdefaultDNSSvrPort = \"53\"\n\tgolang            = \"GO\"\n\t// txtPrefix is the prefix string to be prepended to the host name for txt\n\t// record lookup.\n\ttxtPrefix = \"_grpc_config.\"\n\t// In DNS, service config is encoded in a TXT record via the mechanism\n\t// described in RFC-1464 using the attribute name grpc_config.\n\ttxtAttribute = \"grpc_config=\"\n)\n\nvar addressDialer = func(address string) func(context.Context, string, string) (net.Conn, error) {\n\treturn func(ctx context.Context, network, _ string) (net.Conn, error) {\n\t\tvar dialer net.Dialer\n\t\treturn dialer.DialContext(ctx, network, address)\n\t}\n}\n\nvar newNetResolver = func(authority string) (internal.NetResolver, error) {\n\tif authority == \"\" {\n\t\treturn net.DefaultResolver, nil\n\t}\n\n\thost, port, err := parseTarget(authority, defaultDNSSvrPort)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tauthorityWithPort := net.JoinHostPort(host, port)\n\n\treturn &net.Resolver{\n\t\tPreferGo: true,\n\t\tDial:     internal.AddressDialer(authorityWithPort),\n\t}, nil\n}\n\n// NewBuilder creates a dnsBuilder which is used to factory DNS resolvers.\nfunc NewBuilder() resolver.Builder {\n\treturn &dnsBuilder{}\n}\n\ntype dnsBuilder struct{}\n\n// Build creates and starts a DNS resolver that watches the name resolution of\n// the target.\nfunc (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {\n\thost, port, err := parseTarget(target.Endpoint(), defaultPort)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// IP address.\n\tif ipAddr, err := formatIP(host); err == nil {\n\t\taddr := []resolver.Address{{Addr: ipAddr + \":\" + port}}\n\t\tcc.UpdateState(resolver.State{\n\t\t\tAddresses: addr,\n\t\t\tEndpoints: []resolver.Endpoint{{Addresses: addr}},\n\t\t})\n\t\treturn deadResolver{}, nil\n\t}\n\n\t// DNS address (non-IP).\n\tctx, cancel := context.WithCancel(context.Background())\n\td := &dnsResolver{\n\t\thost:                host,\n\t\tport:                port,\n\t\tctx:                 ctx,\n\t\tcancel:              cancel,\n\t\tcc:                  cc,\n\t\trn:                  make(chan struct{}, 1),\n\t\tenableServiceConfig: envconfig.EnableTXTServiceConfig && !opts.DisableServiceConfig,\n\t}\n\n\td.resolver, err = internal.NewNetResolver(target.URL.Host)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\td.wg.Add(1)\n\tgo d.watcher()\n\treturn d, nil\n}\n\n// Scheme returns the naming scheme of this resolver builder, which is \"dns\".\nfunc (b *dnsBuilder) Scheme() string {\n\treturn \"dns\"\n}\n\n// deadResolver is a resolver that does nothing.\ntype deadResolver struct{}\n\nfunc (deadResolver) ResolveNow(resolver.ResolveNowOptions) {}\n\nfunc (deadResolver) Close() {}\n\n// dnsResolver watches for the name resolution update for a non-IP target.\ntype dnsResolver struct {\n\thost     string\n\tport     string\n\tresolver internal.NetResolver\n\tctx      context.Context\n\tcancel   context.CancelFunc\n\tcc       resolver.ClientConn\n\t// rn channel is used by ResolveNow() to force an immediate resolution of the\n\t// target.\n\trn chan struct{}\n\t// wg is used to enforce Close() to return after the watcher() goroutine has\n\t// finished. Otherwise, data race will be possible. [Race Example] in\n\t// dns_resolver_test we replace the real lookup functions with mocked ones to\n\t// facilitate testing. If Close() doesn't wait for watcher() goroutine\n\t// finishes, race detector sometimes will warn lookup (READ the lookup\n\t// function pointers) inside watcher() goroutine has data race with\n\t// replaceNetFunc (WRITE the lookup function pointers).\n\twg                  sync.WaitGroup\n\tenableServiceConfig bool\n}\n\n// ResolveNow invoke an immediate resolution of the target that this\n// dnsResolver watches.\nfunc (d *dnsResolver) ResolveNow(resolver.ResolveNowOptions) {\n\tselect {\n\tcase d.rn <- struct{}{}:\n\tdefault:\n\t}\n}\n\n// Close closes the dnsResolver.\nfunc (d *dnsResolver) Close() {\n\td.cancel()\n\td.wg.Wait()\n}\n\nfunc (d *dnsResolver) watcher() {\n\tdefer d.wg.Done()\n\tbackoffIndex := 1\n\tfor {\n\t\tstate, err := d.lookup()\n\t\tif err != nil {\n\t\t\t// Report error to the underlying grpc.ClientConn.\n\t\t\td.cc.ReportError(err)\n\t\t} else {\n\t\t\terr = d.cc.UpdateState(*state)\n\t\t}\n\n\t\tvar nextResolutionTime time.Time\n\t\tif err == nil {\n\t\t\t// Success resolving, wait for the next ResolveNow. However, also wait 30\n\t\t\t// seconds at the very least to prevent constantly re-resolving.\n\t\t\tbackoffIndex = 1\n\t\t\tnextResolutionTime = internal.TimeNowFunc().Add(MinResolutionInterval)\n\t\t\tselect {\n\t\t\tcase <-d.ctx.Done():\n\t\t\t\treturn\n\t\t\tcase <-d.rn:\n\t\t\t}\n\t\t} else {\n\t\t\t// Poll on an error found in DNS Resolver or an error received from\n\t\t\t// ClientConn.\n\t\t\tnextResolutionTime = internal.TimeNowFunc().Add(backoff.DefaultExponential.Backoff(backoffIndex))\n\t\t\tbackoffIndex++\n\t\t}\n\t\tselect {\n\t\tcase <-d.ctx.Done():\n\t\t\treturn\n\t\tcase <-internal.TimeAfterFunc(internal.TimeUntilFunc(nextResolutionTime)):\n\t\t}\n\t}\n}\n\nfunc (d *dnsResolver) lookupSRV(ctx context.Context) ([]resolver.Address, error) {\n\t// Skip this particular host to avoid timeouts with some versions of\n\t// systemd-resolved.\n\tif !EnableSRVLookups || d.host == \"metadata.google.internal.\" {\n\t\treturn nil, nil\n\t}\n\tvar newAddrs []resolver.Address\n\t_, srvs, err := d.resolver.LookupSRV(ctx, \"grpclb\", \"tcp\", d.host)\n\tif err != nil {\n\t\terr = handleDNSError(err, \"SRV\") // may become nil\n\t\treturn nil, err\n\t}\n\tfor _, s := range srvs {\n\t\tlbAddrs, err := d.resolver.LookupHost(ctx, s.Target)\n\t\tif err != nil {\n\t\t\terr = handleDNSError(err, \"A\") // may become nil\n\t\t\tif err == nil {\n\t\t\t\t// If there are other SRV records, look them up and ignore this\n\t\t\t\t// one that does not exist.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, a := range lbAddrs {\n\t\t\tip, err := formatIP(a)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"dns: error parsing A record IP address %v: %v\", a, err)\n\t\t\t}\n\t\t\taddr := ip + \":\" + strconv.Itoa(int(s.Port))\n\t\t\tnewAddrs = append(newAddrs, resolver.Address{Addr: addr, ServerName: s.Target})\n\t\t}\n\t}\n\treturn newAddrs, nil\n}\n\nfunc handleDNSError(err error, lookupType string) error {\n\tdnsErr, ok := err.(*net.DNSError)\n\tif ok && !dnsErr.IsTimeout && !dnsErr.IsTemporary {\n\t\t// Timeouts and temporary errors should be communicated to gRPC to\n\t\t// attempt another DNS query (with backoff).  Other errors should be\n\t\t// suppressed (they may represent the absence of a TXT record).\n\t\treturn nil\n\t}\n\tif err != nil {\n\t\terr = fmt.Errorf(\"dns: %v record lookup error: %v\", lookupType, err)\n\t\tlogger.Info(err)\n\t}\n\treturn err\n}\n\nfunc (d *dnsResolver) lookupTXT(ctx context.Context) *serviceconfig.ParseResult {\n\tss, err := d.resolver.LookupTXT(ctx, txtPrefix+d.host)\n\tif err != nil {\n\t\tif envconfig.TXTErrIgnore {\n\t\t\treturn nil\n\t\t}\n\t\tif err = handleDNSError(err, \"TXT\"); err != nil {\n\t\t\treturn &serviceconfig.ParseResult{Err: err}\n\t\t}\n\t\treturn nil\n\t}\n\tvar res string\n\tfor _, s := range ss {\n\t\tres += s\n\t}\n\n\t// TXT record must have \"grpc_config=\" attribute in order to be used as\n\t// service config.\n\tif !strings.HasPrefix(res, txtAttribute) {\n\t\tlogger.Warningf(\"dns: TXT record %v missing %v attribute\", res, txtAttribute)\n\t\t// This is not an error; it is the equivalent of not having a service\n\t\t// config.\n\t\treturn nil\n\t}\n\tsc := canaryingSC(strings.TrimPrefix(res, txtAttribute))\n\treturn d.cc.ParseServiceConfig(sc)\n}\n\nfunc (d *dnsResolver) lookupHost(ctx context.Context) ([]resolver.Address, error) {\n\taddrs, err := d.resolver.LookupHost(ctx, d.host)\n\tif err != nil {\n\t\terr = handleDNSError(err, \"A\")\n\t\treturn nil, err\n\t}\n\tnewAddrs := make([]resolver.Address, 0, len(addrs))\n\tfor _, a := range addrs {\n\t\tip, err := formatIP(a)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"dns: error parsing A record IP address %v: %v\", a, err)\n\t\t}\n\t\taddr := ip + \":\" + d.port\n\t\tnewAddrs = append(newAddrs, resolver.Address{Addr: addr})\n\t}\n\treturn newAddrs, nil\n}\n\nfunc (d *dnsResolver) lookup() (*resolver.State, error) {\n\tctx, cancel := context.WithTimeout(d.ctx, ResolvingTimeout)\n\tdefer cancel()\n\tsrv, srvErr := d.lookupSRV(ctx)\n\taddrs, hostErr := d.lookupHost(ctx)\n\tif hostErr != nil && (srvErr != nil || len(srv) == 0) {\n\t\treturn nil, hostErr\n\t}\n\n\teps := make([]resolver.Endpoint, 0, len(addrs))\n\tfor _, addr := range addrs {\n\t\teps = append(eps, resolver.Endpoint{Addresses: []resolver.Address{addr}})\n\t}\n\n\tstate := resolver.State{\n\t\tAddresses: addrs,\n\t\tEndpoints: eps,\n\t}\n\tif len(srv) > 0 {\n\t\tstate = grpclbstate.Set(state, &grpclbstate.State{BalancerAddresses: srv})\n\t}\n\tif d.enableServiceConfig {\n\t\tstate.ServiceConfig = d.lookupTXT(ctx)\n\t}\n\treturn &state, nil\n}\n\n// formatIP returns an error if addr is not a valid textual representation of\n// an IP address. If addr is an IPv4 address, return the addr and error = nil.\n// If addr is an IPv6 address, return the addr enclosed in square brackets and\n// error = nil.\nfunc formatIP(addr string) (string, error) {\n\tip, err := netip.ParseAddr(addr)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif ip.Is4() {\n\t\treturn addr, nil\n\t}\n\treturn \"[\" + addr + \"]\", nil\n}\n\n// parseTarget takes the user input target string and default port, returns\n// formatted host and port info. If target doesn't specify a port, set the port\n// to be the defaultPort. If target is in IPv6 format and host-name is enclosed\n// in square brackets, brackets are stripped when setting the host.\n// examples:\n// target: \"www.google.com\" defaultPort: \"443\" returns host: \"www.google.com\", port: \"443\"\n// target: \"ipv4-host:80\" defaultPort: \"443\" returns host: \"ipv4-host\", port: \"80\"\n// target: \"[ipv6-host]\" defaultPort: \"443\" returns host: \"ipv6-host\", port: \"443\"\n// target: \":80\" defaultPort: \"443\" returns host: \"localhost\", port: \"80\"\nfunc parseTarget(target, defaultPort string) (host, port string, err error) {\n\tif target == \"\" {\n\t\treturn \"\", \"\", internal.ErrMissingAddr\n\t}\n\tif _, err := netip.ParseAddr(target); err == nil {\n\t\t// target is an IPv4 or IPv6(without brackets) address\n\t\treturn target, defaultPort, nil\n\t}\n\tif host, port, err = net.SplitHostPort(target); err == nil {\n\t\tif port == \"\" {\n\t\t\t// If the port field is empty (target ends with colon), e.g. \"[::1]:\",\n\t\t\t// this is an error.\n\t\t\treturn \"\", \"\", internal.ErrEndsWithColon\n\t\t}\n\t\t// target has port, i.e ipv4-host:port, [ipv6-host]:port, host-name:port\n\t\tif host == \"\" {\n\t\t\t// Keep consistent with net.Dial(): If the host is empty, as in \":80\",\n\t\t\t// the local system is assumed.\n\t\t\thost = \"localhost\"\n\t\t}\n\t\treturn host, port, nil\n\t}\n\tif host, port, err = net.SplitHostPort(target + \":\" + defaultPort); err == nil {\n\t\t// target doesn't have port\n\t\treturn host, port, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(\"invalid target address %v, error info: %v\", target, err)\n}\n\ntype rawChoice struct {\n\tClientLanguage *[]string        `json:\"clientLanguage,omitempty\"`\n\tPercentage     *int             `json:\"percentage,omitempty\"`\n\tClientHostName *[]string        `json:\"clientHostName,omitempty\"`\n\tServiceConfig  *json.RawMessage `json:\"serviceConfig,omitempty\"`\n}\n\nfunc containsString(a *[]string, b string) bool {\n\tif a == nil {\n\t\treturn true\n\t}\n\tfor _, c := range *a {\n\t\tif c == b {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc chosenByPercentage(a *int) bool {\n\tif a == nil {\n\t\treturn true\n\t}\n\treturn rand.IntN(100)+1 <= *a\n}\n\nfunc canaryingSC(js string) string {\n\tif js == \"\" {\n\t\treturn \"\"\n\t}\n\tvar rcs []rawChoice\n\terr := json.Unmarshal([]byte(js), &rcs)\n\tif err != nil {\n\t\tlogger.Warningf(\"dns: error parsing service config json: %v\", err)\n\t\treturn \"\"\n\t}\n\tcliHostname, err := os.Hostname()\n\tif err != nil {\n\t\tlogger.Warningf(\"dns: error getting client hostname: %v\", err)\n\t\treturn \"\"\n\t}\n\tvar sc string\n\tfor _, c := range rcs {\n\t\tif !containsString(c.ClientLanguage, golang) ||\n\t\t\t!chosenByPercentage(c.Percentage) ||\n\t\t\t!containsString(c.ClientHostName, cliHostname) ||\n\t\t\tc.ServiceConfig == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsc = string(*c.ServiceConfig)\n\t\tbreak\n\t}\n\treturn sc\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/dns/internal/internal.go",
    "content": "/*\n *\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package internal contains functionality internal to the dns resolver package.\npackage internal\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net\"\n\t\"time\"\n)\n\n// NetResolver groups the methods on net.Resolver that are used by the DNS\n// resolver implementation. This allows the default net.Resolver instance to be\n// overridden from tests.\ntype NetResolver interface {\n\tLookupHost(ctx context.Context, host string) (addrs []string, err error)\n\tLookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*net.SRV, err error)\n\tLookupTXT(ctx context.Context, name string) (txts []string, err error)\n}\n\nvar (\n\t// ErrMissingAddr is the error returned when building a DNS resolver when\n\t// the provided target name is empty.\n\tErrMissingAddr = errors.New(\"dns resolver: missing address\")\n\n\t// ErrEndsWithColon is the error returned when building a DNS resolver when\n\t// the provided target name ends with a colon that is supposed to be the\n\t// separator between host and port.  E.g. \"::\" is a valid address as it is\n\t// an IPv6 address (host only) and \"[::]:\" is invalid as it ends with a\n\t// colon as the host and port separator\n\tErrEndsWithColon = errors.New(\"dns resolver: missing port after port-separator colon\")\n)\n\n// The following vars are overridden from tests.\nvar (\n\t// TimeAfterFunc is used by the DNS resolver to wait for the given duration\n\t// to elapse. In non-test code, this is implemented by time.After. In test\n\t// code, this can be used to control the amount of time the resolver is\n\t// blocked waiting for the duration to elapse.\n\tTimeAfterFunc func(time.Duration) <-chan time.Time\n\n\t// TimeNowFunc is used by the DNS resolver to get the current time.\n\t// In non-test code, this is implemented by time.Now. In test code,\n\t// this can be used to control the current time for the resolver.\n\tTimeNowFunc func() time.Time\n\n\t// TimeUntilFunc is used by the DNS resolver to calculate the remaining\n\t// wait time for re-resolution. In non-test code, this is implemented by\n\t// time.Until. In test code, this can be used to control the remaining\n\t// time for resolver to wait for re-resolution.\n\tTimeUntilFunc func(time.Time) time.Duration\n\n\t// NewNetResolver returns the net.Resolver instance for the given target.\n\tNewNetResolver func(string) (NetResolver, error)\n\n\t// AddressDialer is the dialer used to dial the DNS server. It accepts the\n\t// Host portion of the URL corresponding to the user's dial target and\n\t// returns a dial function.\n\tAddressDialer func(address string) func(context.Context, string, string) (net.Conn, error)\n)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/passthrough/passthrough.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package passthrough implements a pass-through resolver. It sends the target\n// name without scheme back to gRPC as resolved address.\npackage passthrough\n\nimport (\n\t\"errors\"\n\n\t\"google.golang.org/grpc/resolver\"\n)\n\nconst scheme = \"passthrough\"\n\ntype passthroughBuilder struct{}\n\nfunc (*passthroughBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {\n\tif target.Endpoint() == \"\" && opts.Dialer == nil {\n\t\treturn nil, errors.New(\"passthrough: received empty target in Build()\")\n\t}\n\tr := &passthroughResolver{\n\t\ttarget: target,\n\t\tcc:     cc,\n\t}\n\tr.start()\n\treturn r, nil\n}\n\nfunc (*passthroughBuilder) Scheme() string {\n\treturn scheme\n}\n\ntype passthroughResolver struct {\n\ttarget resolver.Target\n\tcc     resolver.ClientConn\n}\n\nfunc (r *passthroughResolver) start() {\n\tr.cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: r.target.Endpoint()}}})\n}\n\nfunc (*passthroughResolver) ResolveNow(resolver.ResolveNowOptions) {}\n\nfunc (*passthroughResolver) Close() {}\n\nfunc init() {\n\tresolver.Register(&passthroughBuilder{})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/resolver/unix/unix.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package unix implements a resolver for unix targets.\npackage unix\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/internal/transport/networktype\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\nconst unixScheme = \"unix\"\nconst unixAbstractScheme = \"unix-abstract\"\n\ntype builder struct {\n\tscheme string\n}\n\nfunc (b *builder) Build(target resolver.Target, cc resolver.ClientConn, _ resolver.BuildOptions) (resolver.Resolver, error) {\n\tif target.URL.Host != \"\" {\n\t\treturn nil, fmt.Errorf(\"invalid (non-empty) authority: %v\", target.URL.Host)\n\t}\n\n\t// gRPC was parsing the dial target manually before PR #4817, and we\n\t// switched to using url.Parse() in that PR. To avoid breaking existing\n\t// resolver implementations we ended up stripping the leading \"/\" from the\n\t// endpoint. This obviously does not work for the \"unix\" scheme. Hence we\n\t// end up using the parsed URL instead.\n\tendpoint := target.URL.Path\n\tif endpoint == \"\" {\n\t\tendpoint = target.URL.Opaque\n\t}\n\taddr := resolver.Address{Addr: endpoint}\n\tif b.scheme == unixAbstractScheme {\n\t\t// We can not prepend \\0 as c++ gRPC does, as in Golang '@' is used to signify we do\n\t\t// not want trailing \\0 in address.\n\t\taddr.Addr = \"@\" + addr.Addr\n\t}\n\tcc.UpdateState(resolver.State{Addresses: []resolver.Address{networktype.Set(addr, \"unix\")}})\n\treturn &nopResolver{}, nil\n}\n\nfunc (b *builder) Scheme() string {\n\treturn b.scheme\n}\n\nfunc (b *builder) OverrideAuthority(resolver.Target) string {\n\treturn \"localhost\"\n}\n\ntype nopResolver struct {\n}\n\nfunc (*nopResolver) ResolveNow(resolver.ResolveNowOptions) {}\n\nfunc (*nopResolver) Close() {}\n\nfunc init() {\n\tresolver.Register(&builder{scheme: unixScheme})\n\tresolver.Register(&builder{scheme: unixAbstractScheme})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/serviceconfig/duration.go",
    "content": "/*\n *\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage serviceconfig\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Duration defines JSON marshal and unmarshal methods to conform to the\n// protobuf JSON spec defined [here].\n//\n// [here]: https://protobuf.dev/reference/protobuf/google.protobuf/#duration\ntype Duration time.Duration\n\nfunc (d Duration) String() string {\n\treturn fmt.Sprint(time.Duration(d))\n}\n\n// MarshalJSON converts from d to a JSON string output.\nfunc (d Duration) MarshalJSON() ([]byte, error) {\n\tns := time.Duration(d).Nanoseconds()\n\tsec := ns / int64(time.Second)\n\tns = ns % int64(time.Second)\n\n\tvar sign string\n\tif sec < 0 || ns < 0 {\n\t\tsign, sec, ns = \"-\", -1*sec, -1*ns\n\t}\n\n\t// Generated output always contains 0, 3, 6, or 9 fractional digits,\n\t// depending on required precision.\n\tstr := fmt.Sprintf(\"%s%d.%09d\", sign, sec, ns)\n\tstr = strings.TrimSuffix(str, \"000\")\n\tstr = strings.TrimSuffix(str, \"000\")\n\tstr = strings.TrimSuffix(str, \".000\")\n\treturn []byte(fmt.Sprintf(\"\\\"%ss\\\"\", str)), nil\n}\n\n// UnmarshalJSON unmarshals b as a duration JSON string into d.\nfunc (d *Duration) UnmarshalJSON(b []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\tif !strings.HasSuffix(s, \"s\") {\n\t\treturn fmt.Errorf(\"malformed duration %q: missing seconds unit\", s)\n\t}\n\tneg := false\n\tif s[0] == '-' {\n\t\tneg = true\n\t\ts = s[1:]\n\t}\n\tss := strings.SplitN(s[:len(s)-1], \".\", 3)\n\tif len(ss) > 2 {\n\t\treturn fmt.Errorf(\"malformed duration %q: too many decimals\", s)\n\t}\n\t// hasDigits is set if either the whole or fractional part of the number is\n\t// present, since both are optional but one is required.\n\thasDigits := false\n\tvar sec, ns int64\n\tif len(ss[0]) > 0 {\n\t\tvar err error\n\t\tif sec, err = strconv.ParseInt(ss[0], 10, 64); err != nil {\n\t\t\treturn fmt.Errorf(\"malformed duration %q: %v\", s, err)\n\t\t}\n\t\t// Maximum seconds value per the durationpb spec.\n\t\tconst maxProtoSeconds = 315_576_000_000\n\t\tif sec > maxProtoSeconds {\n\t\t\treturn fmt.Errorf(\"out of range: %q\", s)\n\t\t}\n\t\thasDigits = true\n\t}\n\tif len(ss) == 2 && len(ss[1]) > 0 {\n\t\tif len(ss[1]) > 9 {\n\t\t\treturn fmt.Errorf(\"malformed duration %q: too many digits after decimal\", s)\n\t\t}\n\t\tvar err error\n\t\tif ns, err = strconv.ParseInt(ss[1], 10, 64); err != nil {\n\t\t\treturn fmt.Errorf(\"malformed duration %q: %v\", s, err)\n\t\t}\n\t\tfor i := 9; i > len(ss[1]); i-- {\n\t\t\tns *= 10\n\t\t}\n\t\thasDigits = true\n\t}\n\tif !hasDigits {\n\t\treturn fmt.Errorf(\"malformed duration %q: contains no numbers\", s)\n\t}\n\n\tif neg {\n\t\tsec *= -1\n\t\tns *= -1\n\t}\n\n\t// Maximum/minimum seconds/nanoseconds representable by Go's time.Duration.\n\tconst maxSeconds = math.MaxInt64 / int64(time.Second)\n\tconst maxNanosAtMaxSeconds = math.MaxInt64 % int64(time.Second)\n\tconst minSeconds = math.MinInt64 / int64(time.Second)\n\tconst minNanosAtMinSeconds = math.MinInt64 % int64(time.Second)\n\n\tif sec > maxSeconds || (sec == maxSeconds && ns >= maxNanosAtMaxSeconds) {\n\t\t*d = Duration(math.MaxInt64)\n\t} else if sec < minSeconds || (sec == minSeconds && ns <= minNanosAtMinSeconds) {\n\t\t*d = Duration(math.MinInt64)\n\t} else {\n\t\t*d = Duration(sec*int64(time.Second) + ns)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package serviceconfig contains utility functions to parse service config.\npackage serviceconfig\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/grpclog\"\n\texternalserviceconfig \"google.golang.org/grpc/serviceconfig\"\n)\n\nvar logger = grpclog.Component(\"core\")\n\n// BalancerConfig wraps the name and config associated with one load balancing\n// policy. It corresponds to a single entry of the loadBalancingConfig field\n// from ServiceConfig.\n//\n// It implements the json.Unmarshaler interface.\n//\n// https://github.com/grpc/grpc-proto/blob/54713b1e8bc6ed2d4f25fb4dff527842150b91b2/grpc/service_config/service_config.proto#L247\ntype BalancerConfig struct {\n\tName   string\n\tConfig externalserviceconfig.LoadBalancingConfig\n}\n\ntype intermediateBalancerConfig []map[string]json.RawMessage\n\n// MarshalJSON implements the json.Marshaler interface.\n//\n// It marshals the balancer and config into a length-1 slice\n// ([]map[string]config).\nfunc (bc *BalancerConfig) MarshalJSON() ([]byte, error) {\n\tif bc.Config == nil {\n\t\t// If config is nil, return empty config `{}`.\n\t\treturn []byte(fmt.Sprintf(`[{%q: %v}]`, bc.Name, \"{}\")), nil\n\t}\n\tc, err := json.Marshal(bc.Config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn []byte(fmt.Sprintf(`[{%q: %s}]`, bc.Name, c)), nil\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface.\n//\n// ServiceConfig contains a list of loadBalancingConfigs, each with a name and\n// config. This method iterates through that list in order, and stops at the\n// first policy that is supported.\n//   - If the config for the first supported policy is invalid, the whole service\n//     config is invalid.\n//   - If the list doesn't contain any supported policy, the whole service config\n//     is invalid.\nfunc (bc *BalancerConfig) UnmarshalJSON(b []byte) error {\n\tvar ir intermediateBalancerConfig\n\terr := json.Unmarshal(b, &ir)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar names []string\n\tfor i, lbcfg := range ir {\n\t\tif len(lbcfg) != 1 {\n\t\t\treturn fmt.Errorf(\"invalid loadBalancingConfig: entry %v does not contain exactly 1 policy/config pair: %q\", i, lbcfg)\n\t\t}\n\n\t\tvar (\n\t\t\tname    string\n\t\t\tjsonCfg json.RawMessage\n\t\t)\n\t\t// Get the key:value pair from the map. We have already made sure that\n\t\t// the map contains a single entry.\n\t\tfor name, jsonCfg = range lbcfg {\n\t\t}\n\n\t\tnames = append(names, name)\n\t\tbuilder := balancer.Get(name)\n\t\tif builder == nil {\n\t\t\t// If the balancer is not registered, move on to the next config.\n\t\t\t// This is not an error.\n\t\t\tcontinue\n\t\t}\n\t\tbc.Name = name\n\n\t\tparser, ok := builder.(balancer.ConfigParser)\n\t\tif !ok {\n\t\t\tif string(jsonCfg) != \"{}\" {\n\t\t\t\tlogger.Warningf(\"non-empty balancer configuration %q, but balancer does not implement ParseConfig\", string(jsonCfg))\n\t\t\t}\n\t\t\t// Stop at this, though the builder doesn't support parsing config.\n\t\t\treturn nil\n\t\t}\n\n\t\tcfg, err := parser.ParseConfig(jsonCfg)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"error parsing loadBalancingConfig for policy %q: %v\", name, err)\n\t\t}\n\t\tbc.Config = cfg\n\t\treturn nil\n\t}\n\t// This is reached when the for loop iterates over all entries, but didn't\n\t// return. This means we had a loadBalancingConfig slice but did not\n\t// encounter a registered policy. The config is considered invalid in this\n\t// case.\n\treturn fmt.Errorf(\"invalid loadBalancingConfig: no supported policies found in %v\", names)\n}\n\n// MethodConfig defines the configuration recommended by the service providers for a\n// particular method.\ntype MethodConfig struct {\n\t// WaitForReady indicates whether RPCs sent to this method should wait until\n\t// the connection is ready by default (!failfast). The value specified via the\n\t// gRPC client API will override the value set here.\n\tWaitForReady *bool\n\t// Timeout is the default timeout for RPCs sent to this method. The actual\n\t// deadline used will be the minimum of the value specified here and the value\n\t// set by the application via the gRPC client API.  If either one is not set,\n\t// then the other will be used.  If neither is set, then the RPC has no deadline.\n\tTimeout *time.Duration\n\t// MaxReqSize is the maximum allowed payload size for an individual request in a\n\t// stream (client->server) in bytes. The size which is measured is the serialized\n\t// payload after per-message compression (but before stream compression) in bytes.\n\t// The actual value used is the minimum of the value specified here and the value set\n\t// by the application via the gRPC client API. If either one is not set, then the other\n\t// will be used.  If neither is set, then the built-in default is used.\n\tMaxReqSize *int\n\t// MaxRespSize is the maximum allowed payload size for an individual response in a\n\t// stream (server->client) in bytes.\n\tMaxRespSize *int\n\t// RetryPolicy configures retry options for the method.\n\tRetryPolicy *RetryPolicy\n}\n\n// RetryPolicy defines the go-native version of the retry policy defined by the\n// service config here:\n// https://github.com/grpc/proposal/blob/master/A6-client-retries.md#integration-with-service-config\ntype RetryPolicy struct {\n\t// MaxAttempts is the maximum number of attempts, including the original RPC.\n\t//\n\t// This field is required and must be two or greater.\n\tMaxAttempts int\n\n\t// Exponential backoff parameters. The initial retry attempt will occur at\n\t// random(0, initialBackoff). In general, the nth attempt will occur at\n\t// random(0,\n\t//   min(initialBackoff*backoffMultiplier**(n-1), maxBackoff)).\n\t//\n\t// These fields are required and must be greater than zero.\n\tInitialBackoff    time.Duration\n\tMaxBackoff        time.Duration\n\tBackoffMultiplier float64\n\n\t// The set of status codes which may be retried.\n\t//\n\t// Status codes are specified as strings, e.g., \"UNAVAILABLE\".\n\t//\n\t// This field is required and must be non-empty.\n\t// Note: a set is used to store this for easy lookup.\n\tRetryableStatusCodes map[codes.Code]bool\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/stats/labels.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package stats provides internal stats related functionality.\npackage stats\n\nimport \"context\"\n\n// Labels are the labels for metrics.\ntype Labels struct {\n\t// TelemetryLabels are the telemetry labels to record.\n\tTelemetryLabels map[string]string\n}\n\ntype labelsKey struct{}\n\n// GetLabels returns the Labels stored in the context, or nil if there is one.\nfunc GetLabels(ctx context.Context) *Labels {\n\tlabels, _ := ctx.Value(labelsKey{}).(*Labels)\n\treturn labels\n}\n\n// SetLabels sets the Labels in the context.\nfunc SetLabels(ctx context.Context, labels *Labels) context.Context {\n\t// could also append\n\treturn context.WithValue(ctx, labelsKey{}, labels)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/stats/metrics_recorder_list.go",
    "content": "/*\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage stats\n\nimport (\n\t\"fmt\"\n\n\testats \"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/stats\"\n)\n\n// MetricsRecorderList forwards Record calls to all of its metricsRecorders.\n//\n// It eats any record calls where the label values provided do not match the\n// number of label keys.\ntype MetricsRecorderList struct {\n\tinternal.EnforceMetricsRecorderEmbedding\n\t// metricsRecorders are the metrics recorders this list will forward to.\n\tmetricsRecorders []estats.MetricsRecorder\n}\n\n// NewMetricsRecorderList creates a new metric recorder list with all the stats\n// handlers provided which implement the MetricsRecorder interface.\n// If no stats handlers provided implement the MetricsRecorder interface,\n// the MetricsRecorder list returned is a no-op.\nfunc NewMetricsRecorderList(shs []stats.Handler) *MetricsRecorderList {\n\tvar mrs []estats.MetricsRecorder\n\tfor _, sh := range shs {\n\t\tif mr, ok := sh.(estats.MetricsRecorder); ok {\n\t\t\tmrs = append(mrs, mr)\n\t\t}\n\t}\n\treturn &MetricsRecorderList{\n\t\tmetricsRecorders: mrs,\n\t}\n}\n\nfunc verifyLabels(desc *estats.MetricDescriptor, labelsRecv ...string) {\n\tif got, want := len(labelsRecv), len(desc.Labels)+len(desc.OptionalLabels); got != want {\n\t\tpanic(fmt.Sprintf(\"Received %d labels in call to record metric %q, but expected %d.\", got, desc.Name, want))\n\t}\n}\n\n// RecordInt64Count records the measurement alongside labels on the int\n// count associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordInt64Count(handle *estats.Int64CountHandle, incr int64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordInt64Count(handle, incr, labels...)\n\t}\n}\n\n// RecordInt64UpDownCount records the measurement alongside labels on the int\n// count associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordInt64UpDownCount(handle *estats.Int64UpDownCountHandle, incr int64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordInt64UpDownCount(handle, incr, labels...)\n\t}\n}\n\n// RecordFloat64Count records the measurement alongside labels on the float\n// count associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordFloat64Count(handle *estats.Float64CountHandle, incr float64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordFloat64Count(handle, incr, labels...)\n\t}\n}\n\n// RecordInt64Histo records the measurement alongside labels on the int\n// histo associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordInt64Histo(handle *estats.Int64HistoHandle, incr int64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordInt64Histo(handle, incr, labels...)\n\t}\n}\n\n// RecordFloat64Histo records the measurement alongside labels on the float\n// histo associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordFloat64Histo(handle *estats.Float64HistoHandle, incr float64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordFloat64Histo(handle, incr, labels...)\n\t}\n}\n\n// RecordInt64Gauge records the measurement alongside labels on the int\n// gauge associated with the provided handle.\nfunc (l *MetricsRecorderList) RecordInt64Gauge(handle *estats.Int64GaugeHandle, incr int64, labels ...string) {\n\tverifyLabels(handle.Descriptor(), labels...)\n\n\tfor _, metricRecorder := range l.metricsRecorders {\n\t\tmetricRecorder.RecordInt64Gauge(handle, incr, labels...)\n\t}\n}\n\n// RegisterAsyncReporter forwards the registration to all underlying metrics\n// recorders.\n//\n// It returns a cleanup function that, when called, invokes the cleanup function\n// returned by each underlying recorder, ensuring the reporter is unregistered\n// from all of them.\nfunc (l *MetricsRecorderList) RegisterAsyncReporter(reporter estats.AsyncMetricReporter, metrics ...estats.AsyncMetric) func() {\n\tdescriptorsMap := make(map[*estats.MetricDescriptor]bool, len(metrics))\n\tfor _, m := range metrics {\n\t\tdescriptorsMap[m.Descriptor()] = true\n\t}\n\tunregisterFns := make([]func(), 0, len(l.metricsRecorders))\n\tfor _, mr := range l.metricsRecorders {\n\t\t// Wrap the AsyncMetricsRecorder to intercept calls to RecordInt64Gauge\n\t\t// and validate the labels.\n\t\twrappedCallback := func(recorder estats.AsyncMetricsRecorder) error {\n\t\t\twrappedRecorder := &asyncRecorderWrapper{\n\t\t\t\tdelegate:    recorder,\n\t\t\t\tdescriptors: descriptorsMap,\n\t\t\t}\n\t\t\treturn reporter.Report(wrappedRecorder)\n\t\t}\n\t\tunregisterFns = append(unregisterFns, mr.RegisterAsyncReporter(estats.AsyncMetricReporterFunc(wrappedCallback), metrics...))\n\t}\n\n\t// Wrap the cleanup function using the internal delegate.\n\t// In production, this returns realCleanup as-is.\n\t// In tests, the leak checker can swap this to track the registration lifetime.\n\treturn internal.AsyncReporterCleanupDelegate(defaultCleanUp(unregisterFns))\n}\n\nfunc defaultCleanUp(unregisterFns []func()) func() {\n\treturn func() {\n\t\tfor _, unregister := range unregisterFns {\n\t\t\tunregister()\n\t\t}\n\t}\n}\n\ntype asyncRecorderWrapper struct {\n\tdelegate    estats.AsyncMetricsRecorder\n\tdescriptors map[*estats.MetricDescriptor]bool\n}\n\n// RecordIntAsync64Gauge records the measurement alongside labels on the int\n// gauge associated with the provided handle.\nfunc (w *asyncRecorderWrapper) RecordInt64AsyncGauge(handle *estats.Int64AsyncGaugeHandle, value int64, labels ...string) {\n\t// Ensure only metrics for descriptors passed during callback registration\n\t// are emitted.\n\td := handle.Descriptor()\n\tif _, ok := w.descriptors[d]; !ok {\n\t\treturn\n\t}\n\t// Validate labels and delegate.\n\tverifyLabels(d, labels...)\n\tw.delegate.RecordInt64AsyncGauge(handle, value, labels...)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/stats/stats.go",
    "content": "/*\n *\n * Copyright 2025 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage stats\n\nimport (\n\t\"context\"\n\n\t\"google.golang.org/grpc/stats\"\n)\n\ntype combinedHandler struct {\n\thandlers []stats.Handler\n}\n\n// NewCombinedHandler combines multiple stats.Handlers into a single handler.\n//\n// It returns nil if no handlers are provided. If only one handler is\n// provided, it is returned directly without wrapping.\nfunc NewCombinedHandler(handlers ...stats.Handler) stats.Handler {\n\tswitch len(handlers) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn handlers[0]\n\tdefault:\n\t\treturn &combinedHandler{handlers: handlers}\n\t}\n}\n\nfunc (ch *combinedHandler) TagRPC(ctx context.Context, info *stats.RPCTagInfo) context.Context {\n\tfor _, h := range ch.handlers {\n\t\tctx = h.TagRPC(ctx, info)\n\t}\n\treturn ctx\n}\n\nfunc (ch *combinedHandler) HandleRPC(ctx context.Context, stats stats.RPCStats) {\n\tfor _, h := range ch.handlers {\n\t\th.HandleRPC(ctx, stats)\n\t}\n}\n\nfunc (ch *combinedHandler) TagConn(ctx context.Context, info *stats.ConnTagInfo) context.Context {\n\tfor _, h := range ch.handlers {\n\t\tctx = h.TagConn(ctx, info)\n\t}\n\treturn ctx\n}\n\nfunc (ch *combinedHandler) HandleConn(ctx context.Context, stats stats.ConnStats) {\n\tfor _, h := range ch.handlers {\n\t\th.HandleConn(ctx, stats)\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/status/status.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package status implements errors returned by gRPC.  These errors are\n// serialized and transmitted on the wire between server and client, and allow\n// for additional data to be transmitted via the Details field in the status\n// proto.  gRPC service handlers should return an error created by this\n// package, and gRPC clients should expect a corresponding error to be\n// returned from the RPC call.\n//\n// This package upholds the invariants that a non-nil error may not\n// contain an OK code, and an OK code must result in a nil error.\npackage status\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\tspb \"google.golang.org/genproto/googleapis/rpc/status\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/protoadapt\"\n\t\"google.golang.org/protobuf/types/known/anypb\"\n)\n\n// Status represents an RPC status code, message, and details.  It is immutable\n// and should be created with New, Newf, or FromProto.\ntype Status struct {\n\ts *spb.Status\n}\n\n// NewWithProto returns a new status including details from statusProto.  This\n// is meant to be used by the gRPC library only.\nfunc NewWithProto(code codes.Code, message string, statusProto []string) *Status {\n\tif len(statusProto) != 1 {\n\t\t// No grpc-status-details bin header, or multiple; just ignore.\n\t\treturn &Status{s: &spb.Status{Code: int32(code), Message: message}}\n\t}\n\tst := &spb.Status{}\n\tif err := proto.Unmarshal([]byte(statusProto[0]), st); err != nil {\n\t\t// Probably not a google.rpc.Status proto; do not provide details.\n\t\treturn &Status{s: &spb.Status{Code: int32(code), Message: message}}\n\t}\n\tif st.Code == int32(code) {\n\t\t// The codes match between the grpc-status header and the\n\t\t// grpc-status-details-bin header; use the full details proto.\n\t\treturn &Status{s: st}\n\t}\n\treturn &Status{\n\t\ts: &spb.Status{\n\t\t\tCode: int32(codes.Internal),\n\t\t\tMessage: fmt.Sprintf(\n\t\t\t\t\"grpc-status-details-bin mismatch: grpc-status=%v, grpc-message=%q, grpc-status-details-bin=%+v\",\n\t\t\t\tcode, message, st,\n\t\t\t),\n\t\t},\n\t}\n}\n\n// New returns a Status representing c and msg.\nfunc New(c codes.Code, msg string) *Status {\n\treturn &Status{s: &spb.Status{Code: int32(c), Message: msg}}\n}\n\n// Newf returns New(c, fmt.Sprintf(format, a...)).\nfunc Newf(c codes.Code, format string, a ...any) *Status {\n\treturn New(c, fmt.Sprintf(format, a...))\n}\n\n// FromProto returns a Status representing s.\nfunc FromProto(s *spb.Status) *Status {\n\treturn &Status{s: proto.Clone(s).(*spb.Status)}\n}\n\n// Err returns an error representing c and msg.  If c is OK, returns nil.\nfunc Err(c codes.Code, msg string) error {\n\treturn New(c, msg).Err()\n}\n\n// Errorf returns Error(c, fmt.Sprintf(format, a...)).\nfunc Errorf(c codes.Code, format string, a ...any) error {\n\treturn Err(c, fmt.Sprintf(format, a...))\n}\n\n// Code returns the status code contained in s.\nfunc (s *Status) Code() codes.Code {\n\tif s == nil || s.s == nil {\n\t\treturn codes.OK\n\t}\n\treturn codes.Code(s.s.Code)\n}\n\n// Message returns the message contained in s.\nfunc (s *Status) Message() string {\n\tif s == nil || s.s == nil {\n\t\treturn \"\"\n\t}\n\treturn s.s.Message\n}\n\n// Proto returns s's status as an spb.Status proto message.\nfunc (s *Status) Proto() *spb.Status {\n\tif s == nil {\n\t\treturn nil\n\t}\n\treturn proto.Clone(s.s).(*spb.Status)\n}\n\n// Err returns an immutable error representing s; returns nil if s.Code() is OK.\nfunc (s *Status) Err() error {\n\tif s.Code() == codes.OK {\n\t\treturn nil\n\t}\n\treturn &Error{s: s}\n}\n\n// WithDetails returns a new status with the provided details messages appended to the status.\n// If any errors are encountered, it returns nil and the first error encountered.\nfunc (s *Status) WithDetails(details ...protoadapt.MessageV1) (*Status, error) {\n\tif s.Code() == codes.OK {\n\t\treturn nil, errors.New(\"no error details for status with code OK\")\n\t}\n\t// s.Code() != OK implies that s.Proto() != nil.\n\tp := s.Proto()\n\tfor _, detail := range details {\n\t\tm, err := anypb.New(protoadapt.MessageV2Of(detail))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp.Details = append(p.Details, m)\n\t}\n\treturn &Status{s: p}, nil\n}\n\n// Details returns a slice of details messages attached to the status.\n// If a detail cannot be decoded, the error is returned in place of the detail.\n// If the detail can be decoded, the proto message returned is of the same\n// type that was given to WithDetails().\nfunc (s *Status) Details() []any {\n\tif s == nil || s.s == nil {\n\t\treturn nil\n\t}\n\tdetails := make([]any, 0, len(s.s.Details))\n\tfor _, any := range s.s.Details {\n\t\tdetail, err := any.UnmarshalNew()\n\t\tif err != nil {\n\t\t\tdetails = append(details, err)\n\t\t\tcontinue\n\t\t}\n\t\t// The call to MessageV1Of is required to unwrap the proto message if\n\t\t// it implemented only the MessageV1 API. The proto message would have\n\t\t// been wrapped in a V2 wrapper in Status.WithDetails. V2 messages are\n\t\t// added to a global registry used by any.UnmarshalNew().\n\t\t// MessageV1Of has the following behaviour:\n\t\t// 1. If the given message is a wrapped MessageV1, it returns the\n\t\t//   unwrapped value.\n\t\t// 2. If the given message already implements MessageV1, it returns it\n\t\t//   as is.\n\t\t// 3. Else, it wraps the MessageV2 in a MessageV1 wrapper.\n\t\t//\n\t\t// Since the Status.WithDetails() API only accepts MessageV1, calling\n\t\t// MessageV1Of ensures we return the same type that was given to\n\t\t// WithDetails:\n\t\t// * If the give type implemented only MessageV1, the unwrapping from\n\t\t//   point 1 above will restore the type.\n\t\t// * If the given type implemented both MessageV1 and MessageV2, point 2\n\t\t//   above will ensure no wrapping is performed.\n\t\t// * If the given type implemented only MessageV2 and was wrapped using\n\t\t//   MessageV1Of before passing to WithDetails(), it would be unwrapped\n\t\t//   in WithDetails by calling MessageV2Of(). Point 3 above will ensure\n\t\t//   that the type is wrapped in a MessageV1 wrapper again before\n\t\t//   returning. Note that protoc-gen-go doesn't generate code which\n\t\t//   implements ONLY MessageV2 at the time of writing.\n\t\t//\n\t\t// NOTE: Status details can also be added using the FromProto method.\n\t\t// This could theoretically allow passing a Detail message that only\n\t\t// implements the V2 API. In such a case the message will be wrapped in\n\t\t// a MessageV1 wrapper when fetched using Details().\n\t\t// Since protoc-gen-go generates only code that implements both V1 and\n\t\t// V2 APIs for backward compatibility, this is not a concern.\n\t\tdetails = append(details, protoadapt.MessageV1Of(detail))\n\t}\n\treturn details\n}\n\nfunc (s *Status) String() string {\n\treturn fmt.Sprintf(\"rpc error: code = %s desc = %s\", s.Code(), s.Message())\n}\n\n// Error wraps a pointer of a status proto. It implements error and Status,\n// and a nil *Error should never be returned by this package.\ntype Error struct {\n\ts *Status\n}\n\nfunc (e *Error) Error() string {\n\treturn e.s.String()\n}\n\n// GRPCStatus returns the Status represented by se.\nfunc (e *Error) GRPCStatus() *Status {\n\treturn e.s\n}\n\n// Is implements future error.Is functionality.\n// A Error is equivalent if the code and message are identical.\nfunc (e *Error) Is(target error) bool {\n\ttse, ok := target.(*Error)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn proto.Equal(e.s.s, tse.s.s)\n}\n\n// IsRestrictedControlPlaneCode returns whether the status includes a code\n// restricted for control plane usage as defined by gRFC A54.\nfunc IsRestrictedControlPlaneCode(s *Status) bool {\n\tswitch s.Code() {\n\tcase codes.InvalidArgument, codes.NotFound, codes.AlreadyExists, codes.FailedPrecondition, codes.Aborted, codes.OutOfRange, codes.DataLoss:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// RawStatusProto returns the internal protobuf message for use by gRPC itself.\nfunc RawStatusProto(s *Status) *spb.Status {\n\tif s == nil {\n\t\treturn nil\n\t}\n\treturn s.s\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package syscall provides functionalities that grpc uses to get low-level operating system\n// stats/info.\npackage syscall\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/unix\"\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nvar logger = grpclog.Component(\"core\")\n\n// GetCPUTime returns the how much CPU time has passed since the start of this process.\nfunc GetCPUTime() int64 {\n\tvar ts unix.Timespec\n\tif err := unix.ClockGettime(unix.CLOCK_PROCESS_CPUTIME_ID, &ts); err != nil {\n\t\tlogger.Fatal(err)\n\t}\n\treturn ts.Nano()\n}\n\n// Rusage is an alias for syscall.Rusage under linux environment.\ntype Rusage = syscall.Rusage\n\n// GetRusage returns the resource usage of current process.\nfunc GetRusage() *Rusage {\n\trusage := new(Rusage)\n\tsyscall.Getrusage(syscall.RUSAGE_SELF, rusage)\n\treturn rusage\n}\n\n// CPUTimeDiff returns the differences of user CPU time and system CPU time used\n// between two Rusage structs.\nfunc CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) {\n\tvar (\n\t\tutimeDiffs  = latest.Utime.Sec - first.Utime.Sec\n\t\tutimeDiffus = latest.Utime.Usec - first.Utime.Usec\n\t\tstimeDiffs  = latest.Stime.Sec - first.Stime.Sec\n\t\tstimeDiffus = latest.Stime.Usec - first.Stime.Usec\n\t)\n\n\tuTimeElapsed := float64(utimeDiffs) + float64(utimeDiffus)*1.0e-6\n\tsTimeElapsed := float64(stimeDiffs) + float64(stimeDiffus)*1.0e-6\n\n\treturn uTimeElapsed, sTimeElapsed\n}\n\n// SetTCPUserTimeout sets the TCP user timeout on a connection's socket\nfunc SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error {\n\ttcpconn, ok := conn.(*net.TCPConn)\n\tif !ok {\n\t\t// not a TCP connection. exit early\n\t\treturn nil\n\t}\n\trawConn, err := tcpconn.SyscallConn()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting raw connection: %v\", err)\n\t}\n\terr = rawConn.Control(func(fd uintptr) {\n\t\terr = syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT, int(timeout/time.Millisecond))\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error setting option on socket: %v\", err)\n\t}\n\n\treturn nil\n}\n\n// GetTCPUserTimeout gets the TCP user timeout on a connection's socket\nfunc GetTCPUserTimeout(conn net.Conn) (opt int, err error) {\n\ttcpconn, ok := conn.(*net.TCPConn)\n\tif !ok {\n\t\terr = fmt.Errorf(\"conn is not *net.TCPConn. got %T\", conn)\n\t\treturn\n\t}\n\trawConn, err := tcpconn.SyscallConn()\n\tif err != nil {\n\t\terr = fmt.Errorf(\"error getting raw connection: %v\", err)\n\t\treturn\n\t}\n\terr = rawConn.Control(func(fd uintptr) {\n\t\topt, err = syscall.GetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT)\n\t})\n\tif err != nil {\n\t\terr = fmt.Errorf(\"error getting option on socket: %v\", err)\n\t\treturn\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go",
    "content": "//go:build !linux\n// +build !linux\n\n/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package syscall provides functionalities that grpc uses to get low-level\n// operating system stats/info.\npackage syscall\n\nimport (\n\t\"net\"\n\t\"sync\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/grpclog\"\n)\n\nvar once sync.Once\nvar logger = grpclog.Component(\"core\")\n\nfunc log() {\n\tonce.Do(func() {\n\t\tlogger.Info(\"CPU time info is unavailable on non-linux environments.\")\n\t})\n}\n\n// GetCPUTime returns the how much CPU time has passed since the start of this\n// process. It always returns 0 under non-linux environments.\nfunc GetCPUTime() int64 {\n\tlog()\n\treturn 0\n}\n\n// Rusage is an empty struct under non-linux environments.\ntype Rusage struct{}\n\n// GetRusage is a no-op function under non-linux environments.\nfunc GetRusage() *Rusage {\n\tlog()\n\treturn nil\n}\n\n// CPUTimeDiff returns the differences of user CPU time and system CPU time used\n// between two Rusage structs. It a no-op function for non-linux environments.\nfunc CPUTimeDiff(*Rusage, *Rusage) (float64, float64) {\n\tlog()\n\treturn 0, 0\n}\n\n// SetTCPUserTimeout is a no-op function under non-linux environments.\nfunc SetTCPUserTimeout(net.Conn, time.Duration) error {\n\tlog()\n\treturn nil\n}\n\n// GetTCPUserTimeout is a no-op function under non-linux environments.\n// A negative return value indicates the operation is not supported\nfunc GetTCPUserTimeout(net.Conn) (int, error) {\n\tlog()\n\treturn -1, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/tcp_keepalive_others.go",
    "content": "//go:build !unix && !windows\n\n/*\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\nimport (\n\t\"net\"\n)\n\n// NetDialerWithTCPKeepalive returns a vanilla net.Dialer on non-unix platforms.\nfunc NetDialerWithTCPKeepalive() *net.Dialer {\n\treturn &net.Dialer{}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/tcp_keepalive_unix.go",
    "content": "//go:build unix\n\n/*\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\nimport (\n\t\"net\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// NetDialerWithTCPKeepalive returns a net.Dialer that enables TCP keepalives on\n// the underlying connection with OS default values for keepalive parameters.\n//\n// TODO: Once https://github.com/golang/go/issues/62254 lands, and the\n// appropriate Go version becomes less than our least supported Go version, we\n// should look into using the new API to make things more straightforward.\nfunc NetDialerWithTCPKeepalive() *net.Dialer {\n\treturn &net.Dialer{\n\t\t// Setting a negative value here prevents the Go stdlib from overriding\n\t\t// the values of TCP keepalive time and interval. It also prevents the\n\t\t// Go stdlib from enabling TCP keepalives by default.\n\t\tKeepAlive: time.Duration(-1),\n\t\t// This method is called after the underlying network socket is created,\n\t\t// but before dialing the socket (or calling its connect() method). The\n\t\t// combination of unconditionally enabling TCP keepalives here, and\n\t\t// disabling the overriding of TCP keepalive parameters by setting the\n\t\t// KeepAlive field to a negative value above, results in OS defaults for\n\t\t// the TCP keepalive interval and time parameters.\n\t\tControl: func(_, _ string, c syscall.RawConn) error {\n\t\t\treturn c.Control(func(fd uintptr) {\n\t\t\t\tunix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_KEEPALIVE, 1)\n\t\t\t})\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/tcp_keepalive_windows.go",
    "content": "//go:build windows\n\n/*\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage internal\n\nimport (\n\t\"net\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n// NetDialerWithTCPKeepalive returns a net.Dialer that enables TCP keepalives on\n// the underlying connection with OS default values for keepalive parameters.\n//\n// TODO: Once https://github.com/golang/go/issues/62254 lands, and the\n// appropriate Go version becomes less than our least supported Go version, we\n// should look into using the new API to make things more straightforward.\nfunc NetDialerWithTCPKeepalive() *net.Dialer {\n\treturn &net.Dialer{\n\t\t// Setting a negative value here prevents the Go stdlib from overriding\n\t\t// the values of TCP keepalive time and interval. It also prevents the\n\t\t// Go stdlib from enabling TCP keepalives by default.\n\t\tKeepAlive: time.Duration(-1),\n\t\t// This method is called after the underlying network socket is created,\n\t\t// but before dialing the socket (or calling its connect() method). The\n\t\t// combination of unconditionally enabling TCP keepalives here, and\n\t\t// disabling the overriding of TCP keepalive parameters by setting the\n\t\t// KeepAlive field to a negative value above, results in OS defaults for\n\t\t// the TCP keepalive interval and time parameters.\n\t\tControl: func(_, _ string, c syscall.RawConn) error {\n\t\t\treturn c.Control(func(fd uintptr) {\n\t\t\t\twindows.SetsockoptInt(windows.Handle(fd), windows.SOL_SOCKET, windows.SO_KEEPALIVE, 1)\n\t\t\t})\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\t// bdpLimit is the maximum value the flow control windows will be increased\n\t// to.  TCP typically limits this to 4MB, but some systems go up to 16MB.\n\t// Since this is only a limit, it is safe to make it optimistic.\n\tbdpLimit = (1 << 20) * 16\n\t// alpha is a constant factor used to keep a moving average\n\t// of RTTs.\n\talpha = 0.9\n\t// If the current bdp sample is greater than or equal to\n\t// our beta * our estimated bdp and the current bandwidth\n\t// sample is the maximum bandwidth observed so far, we\n\t// increase our bbp estimate by a factor of gamma.\n\tbeta = 0.66\n\t// To put our bdp to be smaller than or equal to twice the real BDP,\n\t// we should multiply our current sample with 4/3, however to round things out\n\t// we use 2 as the multiplication factor.\n\tgamma = 2\n)\n\n// Adding arbitrary data to ping so that its ack can be identified.\n// Easter-egg: what does the ping message say?\nvar bdpPing = &ping{data: [8]byte{2, 4, 16, 16, 9, 14, 7, 7}}\n\ntype bdpEstimator struct {\n\t// sentAt is the time when the ping was sent.\n\tsentAt time.Time\n\n\tmu sync.Mutex\n\t// bdp is the current bdp estimate.\n\tbdp uint32\n\t// sample is the number of bytes received in one measurement cycle.\n\tsample uint32\n\t// bwMax is the maximum bandwidth noted so far (bytes/sec).\n\tbwMax float64\n\t// bool to keep track of the beginning of a new measurement cycle.\n\tisSent bool\n\t// Callback to update the window sizes.\n\tupdateFlowControl func(n uint32)\n\t// sampleCount is the number of samples taken so far.\n\tsampleCount uint64\n\t// round trip time (seconds)\n\trtt float64\n}\n\n// timesnap registers the time bdp ping was sent out so that\n// network rtt can be calculated when its ack is received.\n// It is called (by controller) when the bdpPing is\n// being written on the wire.\nfunc (b *bdpEstimator) timesnap(d [8]byte) {\n\tif bdpPing.data != d {\n\t\treturn\n\t}\n\tb.sentAt = time.Now()\n}\n\n// add adds bytes to the current sample for calculating bdp.\n// It returns true only if a ping must be sent. This can be used\n// by the caller (handleData) to make decision about batching\n// a window update with it.\nfunc (b *bdpEstimator) add(n uint32) bool {\n\tb.mu.Lock()\n\tdefer b.mu.Unlock()\n\tif b.bdp == bdpLimit {\n\t\treturn false\n\t}\n\tif !b.isSent {\n\t\tb.isSent = true\n\t\tb.sample = n\n\t\tb.sentAt = time.Time{}\n\t\tb.sampleCount++\n\t\treturn true\n\t}\n\tb.sample += n\n\treturn false\n}\n\n// calculate is called when an ack for a bdp ping is received.\n// Here we calculate the current bdp and bandwidth sample and\n// decide if the flow control windows should go up.\nfunc (b *bdpEstimator) calculate(d [8]byte) {\n\t// Check if the ping acked for was the bdp ping.\n\tif bdpPing.data != d {\n\t\treturn\n\t}\n\tb.mu.Lock()\n\trttSample := time.Since(b.sentAt).Seconds()\n\tif b.sampleCount < 10 {\n\t\t// Bootstrap rtt with an average of first 10 rtt samples.\n\t\tb.rtt += (rttSample - b.rtt) / float64(b.sampleCount)\n\t} else {\n\t\t// Heed to the recent past more.\n\t\tb.rtt += (rttSample - b.rtt) * float64(alpha)\n\t}\n\tb.isSent = false\n\t// The number of bytes accumulated so far in the sample is smaller\n\t// than or equal to 1.5 times the real BDP on a saturated connection.\n\tbwCurrent := float64(b.sample) / (b.rtt * float64(1.5))\n\tif bwCurrent > b.bwMax {\n\t\tb.bwMax = bwCurrent\n\t}\n\t// If the current sample (which is smaller than or equal to the 1.5 times the real BDP) is\n\t// greater than or equal to 2/3rd our perceived bdp AND this is the maximum bandwidth seen so far, we\n\t// should update our perception of the network BDP.\n\tif float64(b.sample) >= beta*float64(b.bdp) && bwCurrent == b.bwMax && b.bdp != bdpLimit {\n\t\tsampleFloat := float64(b.sample)\n\t\tb.bdp = uint32(gamma * sampleFloat)\n\t\tif b.bdp > bdpLimit {\n\t\t\tb.bdp = bdpLimit\n\t\t}\n\t\tbdp := b.bdp\n\t\tb.mu.Unlock()\n\t\tb.updateFlowControl(bdp)\n\t\treturn\n\t}\n\tb.mu.Unlock()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/client_stream.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"sync/atomic\"\n\n\t\"golang.org/x/net/http2\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n)\n\n// ClientStream implements streaming functionality for a gRPC client.\ntype ClientStream struct {\n\tStream // Embed for common stream functionality.\n\n\tct       *http2Client\n\tdone     chan struct{} // closed at the end of stream to unblock writers.\n\tdoneFunc func()        // invoked at the end of stream.\n\n\theaderChan chan struct{} // closed to indicate the end of header metadata.\n\theader     metadata.MD   // the received header metadata\n\n\tstatus *status.Status // the status error received from the server\n\n\t// Non-pointer fields are at the end to optimize GC allocations.\n\n\t// headerValid indicates whether a valid header was received.  Only\n\t// meaningful after headerChan is closed (always call waitOnHeader() before\n\t// reading its value).\n\theaderValid      bool\n\tnoHeaders        bool          // set if the client never received headers (set only after the stream is done).\n\theaderChanClosed uint32        // set when headerChan is closed. Used to avoid closing headerChan multiple times.\n\tbytesReceived    atomic.Bool   // indicates whether any bytes have been received on this stream\n\tunprocessed      atomic.Bool   // set if the server sends a refused stream or GOAWAY including this stream\n\tstatsHandler     stats.Handler // nil for internal streams (e.g., health check, ORCA) where telemetry is not supported.\n}\n\n// Read reads an n byte message from the input stream.\nfunc (s *ClientStream) Read(n int) (mem.BufferSlice, error) {\n\tb, err := s.Stream.read(n)\n\tif err == nil {\n\t\ts.ct.incrMsgRecv()\n\t}\n\treturn b, err\n}\n\n// Close closes the stream and propagates err to any readers.\nfunc (s *ClientStream) Close(err error) {\n\tvar (\n\t\trst     bool\n\t\trstCode http2.ErrCode\n\t)\n\tif err != nil {\n\t\trst = true\n\t\trstCode = http2.ErrCodeCancel\n\t}\n\ts.ct.closeStream(s, err, rst, rstCode, status.Convert(err), nil, false)\n}\n\n// Write writes the hdr and data bytes to the output stream.\nfunc (s *ClientStream) Write(hdr []byte, data mem.BufferSlice, opts *WriteOptions) error {\n\treturn s.ct.write(s, hdr, data, opts)\n}\n\n// BytesReceived indicates whether any bytes have been received on this stream.\nfunc (s *ClientStream) BytesReceived() bool {\n\treturn s.bytesReceived.Load()\n}\n\n// Unprocessed indicates whether the server did not process this stream --\n// i.e. it sent a refused stream or GOAWAY including this stream ID.\nfunc (s *ClientStream) Unprocessed() bool {\n\treturn s.unprocessed.Load()\n}\n\nfunc (s *ClientStream) waitOnHeader() {\n\tselect {\n\tcase <-s.ctx.Done():\n\t\t// Close the stream to prevent headers/trailers from changing after\n\t\t// this function returns.\n\t\ts.Close(ContextErr(s.ctx.Err()))\n\t\t// headerChan could possibly not be closed yet if closeStream raced\n\t\t// with operateHeaders; wait until it is closed explicitly here.\n\t\t<-s.headerChan\n\tcase <-s.headerChan:\n\t}\n}\n\n// RecvCompress returns the compression algorithm applied to the inbound\n// message. It is empty string if there is no compression applied.\nfunc (s *ClientStream) RecvCompress() string {\n\ts.waitOnHeader()\n\treturn s.recvCompress\n}\n\n// Done returns a channel which is closed when it receives the final status\n// from the server.\nfunc (s *ClientStream) Done() <-chan struct{} {\n\treturn s.done\n}\n\n// Header returns the header metadata of the stream. Acquires the key-value\n// pairs of header metadata once it is available. It blocks until i) the\n// metadata is ready or ii) there is no header metadata or iii) the stream is\n// canceled/expired.\nfunc (s *ClientStream) Header() (metadata.MD, error) {\n\ts.waitOnHeader()\n\n\tif !s.headerValid || s.noHeaders {\n\t\treturn nil, s.status.Err()\n\t}\n\n\treturn s.header.Copy(), nil\n}\n\n// TrailersOnly blocks until a header or trailers-only frame is received and\n// then returns true if the stream was trailers-only.  If the stream ends\n// before headers are received, returns true, nil.\nfunc (s *ClientStream) TrailersOnly() bool {\n\ts.waitOnHeader()\n\treturn s.noHeaders\n}\n\n// Status returns the status received from the server.\n// Status can be read safely only after the stream has ended,\n// that is, after Done() is closed.\nfunc (s *ClientStream) Status() *status.Status {\n\treturn s.status\n}\n\nfunc (s *ClientStream) requestRead(n int) {\n\ts.ct.adjustWindow(s, uint32(n))\n}\n\nfunc (s *ClientStream) updateWindow(n int) {\n\ts.ct.updateWindow(s, uint32(n))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/controlbuf.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"runtime\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"golang.org/x/net/http2\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"google.golang.org/grpc/internal/grpclog\"\n\t\"google.golang.org/grpc/mem\"\n)\n\nvar updateHeaderTblSize = func(e *hpack.Encoder, v uint32) {\n\te.SetMaxDynamicTableSizeLimit(v)\n}\n\n// itemNodePool is used to reduce heap allocations.\nvar itemNodePool = sync.Pool{\n\tNew: func() any {\n\t\treturn &itemNode{}\n\t},\n}\n\ntype itemNode struct {\n\tit   any\n\tnext *itemNode\n}\n\ntype itemList struct {\n\thead *itemNode\n\ttail *itemNode\n}\n\nfunc (il *itemList) enqueue(i any) {\n\tn := itemNodePool.Get().(*itemNode)\n\tn.next = nil\n\tn.it = i\n\tif il.tail == nil {\n\t\til.head, il.tail = n, n\n\t\treturn\n\t}\n\til.tail.next = n\n\til.tail = n\n}\n\n// peek returns the first item in the list without removing it from the\n// list.\nfunc (il *itemList) peek() any {\n\treturn il.head.it\n}\n\nfunc (il *itemList) dequeue() any {\n\tif il.head == nil {\n\t\treturn nil\n\t}\n\ti := il.head.it\n\ttemp := il.head\n\til.head = il.head.next\n\titemNodePool.Put(temp)\n\tif il.head == nil {\n\t\til.tail = nil\n\t}\n\treturn i\n}\n\nfunc (il *itemList) dequeueAll() *itemNode {\n\th := il.head\n\til.head, il.tail = nil, nil\n\treturn h\n}\n\nfunc (il *itemList) isEmpty() bool {\n\treturn il.head == nil\n}\n\n// The following defines various control items which could flow through\n// the control buffer of transport. They represent different aspects of\n// control tasks, e.g., flow control, settings, streaming resetting, etc.\n\n// maxQueuedTransportResponseFrames is the most queued \"transport response\"\n// frames we will buffer before preventing new reads from occurring on the\n// transport.  These are control frames sent in response to client requests,\n// such as RST_STREAM due to bad headers or settings acks.\nconst maxQueuedTransportResponseFrames = 50\n\ntype cbItem interface {\n\tisTransportResponseFrame() bool\n}\n\n// registerStream is used to register an incoming stream with loopy writer.\ntype registerStream struct {\n\tstreamID uint32\n\twq       *writeQuota\n}\n\nfunc (*registerStream) isTransportResponseFrame() bool { return false }\n\n// headerFrame is also used to register stream on the client-side.\ntype headerFrame struct {\n\tstreamID   uint32\n\thf         []hpack.HeaderField\n\tendStream  bool               // Valid on server side.\n\tinitStream func(uint32) error // Used only on the client side.\n\tonWrite    func()\n\twq         *writeQuota    // write quota for the stream created.\n\tcleanup    *cleanupStream // Valid on the server side.\n\tonOrphaned func(error)    // Valid on client-side\n}\n\nfunc (h *headerFrame) isTransportResponseFrame() bool {\n\treturn h.cleanup != nil && h.cleanup.rst // Results in a RST_STREAM\n}\n\ntype cleanupStream struct {\n\tstreamID uint32\n\trst      bool\n\trstCode  http2.ErrCode\n\tonWrite  func()\n}\n\nfunc (c *cleanupStream) isTransportResponseFrame() bool { return c.rst } // Results in a RST_STREAM\n\ntype earlyAbortStream struct {\n\tstreamID uint32\n\trst      bool\n\thf       []hpack.HeaderField // Pre-built header fields\n}\n\nfunc (*earlyAbortStream) isTransportResponseFrame() bool { return false }\n\ntype dataFrame struct {\n\tstreamID   uint32\n\tendStream  bool\n\th          []byte\n\tdata       mem.BufferSlice\n\tprocessing bool\n\t// onEachWrite is called every time\n\t// a part of data is written out.\n\tonEachWrite func()\n}\n\nfunc (*dataFrame) isTransportResponseFrame() bool { return false }\n\ntype incomingWindowUpdate struct {\n\tstreamID  uint32\n\tincrement uint32\n}\n\nfunc (*incomingWindowUpdate) isTransportResponseFrame() bool { return false }\n\ntype outgoingWindowUpdate struct {\n\tstreamID  uint32\n\tincrement uint32\n}\n\nfunc (*outgoingWindowUpdate) isTransportResponseFrame() bool {\n\treturn false // window updates are throttled by thresholds\n}\n\ntype incomingSettings struct {\n\tss []http2.Setting\n}\n\nfunc (*incomingSettings) isTransportResponseFrame() bool { return true } // Results in a settings ACK\n\ntype outgoingSettings struct {\n\tss []http2.Setting\n}\n\nfunc (*outgoingSettings) isTransportResponseFrame() bool { return false }\n\ntype incomingGoAway struct {\n}\n\nfunc (*incomingGoAway) isTransportResponseFrame() bool { return false }\n\ntype goAway struct {\n\tcode      http2.ErrCode\n\tdebugData []byte\n\theadsUp   bool\n\tcloseConn error // if set, loopyWriter will exit with this error\n}\n\nfunc (*goAway) isTransportResponseFrame() bool { return false }\n\ntype ping struct {\n\tack  bool\n\tdata [8]byte\n}\n\nfunc (*ping) isTransportResponseFrame() bool { return true }\n\ntype outFlowControlSizeRequest struct {\n\tresp chan uint32\n}\n\nfunc (*outFlowControlSizeRequest) isTransportResponseFrame() bool { return false }\n\n// closeConnection is an instruction to tell the loopy writer to flush the\n// framer and exit, which will cause the transport's connection to be closed\n// (by the client or server).  The transport itself will close after the reader\n// encounters the EOF caused by the connection closure.\ntype closeConnection struct{}\n\nfunc (closeConnection) isTransportResponseFrame() bool { return false }\n\ntype outStreamState int\n\nconst (\n\tactive outStreamState = iota\n\tempty\n\twaitingOnStreamQuota\n)\n\ntype outStream struct {\n\tid               uint32\n\tstate            outStreamState\n\titl              *itemList\n\tbytesOutStanding int\n\twq               *writeQuota\n\treader           mem.Reader\n\n\tnext *outStream\n\tprev *outStream\n}\n\nfunc (s *outStream) deleteSelf() {\n\tif s.prev != nil {\n\t\ts.prev.next = s.next\n\t}\n\tif s.next != nil {\n\t\ts.next.prev = s.prev\n\t}\n\ts.next, s.prev = nil, nil\n}\n\ntype outStreamList struct {\n\t// Following are sentinel objects that mark the\n\t// beginning and end of the list. They do not\n\t// contain any item lists. All valid objects are\n\t// inserted in between them.\n\t// This is needed so that an outStream object can\n\t// deleteSelf() in O(1) time without knowing which\n\t// list it belongs to.\n\thead *outStream\n\ttail *outStream\n}\n\nfunc newOutStreamList() *outStreamList {\n\thead, tail := new(outStream), new(outStream)\n\thead.next = tail\n\ttail.prev = head\n\treturn &outStreamList{\n\t\thead: head,\n\t\ttail: tail,\n\t}\n}\n\nfunc (l *outStreamList) enqueue(s *outStream) {\n\te := l.tail.prev\n\te.next = s\n\ts.prev = e\n\ts.next = l.tail\n\tl.tail.prev = s\n}\n\n// remove from the beginning of the list.\nfunc (l *outStreamList) dequeue() *outStream {\n\tb := l.head.next\n\tif b == l.tail {\n\t\treturn nil\n\t}\n\tb.deleteSelf()\n\treturn b\n}\n\n// controlBuffer is a way to pass information to loopy.\n//\n// Information is passed as specific struct types called control frames. A\n// control frame not only represents data, messages or headers to be sent out\n// but can also be used to instruct loopy to update its internal state. It\n// shouldn't be confused with an HTTP2 frame, although some of the control\n// frames like dataFrame and headerFrame do go out on wire as HTTP2 frames.\ntype controlBuffer struct {\n\twakeupCh chan struct{}   // Unblocks readers waiting for something to read.\n\tdone     <-chan struct{} // Closed when the transport is done.\n\n\t// Mutex guards all the fields below, except trfChan which can be read\n\t// atomically without holding mu.\n\tmu              sync.Mutex\n\tconsumerWaiting bool      // True when readers are blocked waiting for new data.\n\tclosed          bool      // True when the controlbuf is finished.\n\tlist            *itemList // List of queued control frames.\n\n\t// transportResponseFrames counts the number of queued items that represent\n\t// the response of an action initiated by the peer.  trfChan is created\n\t// when transportResponseFrames >= maxQueuedTransportResponseFrames and is\n\t// closed and nilled when transportResponseFrames drops below the\n\t// threshold.  Both fields are protected by mu.\n\ttransportResponseFrames int\n\ttrfChan                 atomic.Pointer[chan struct{}]\n}\n\nfunc newControlBuffer(done <-chan struct{}) *controlBuffer {\n\treturn &controlBuffer{\n\t\twakeupCh: make(chan struct{}, 1),\n\t\tlist:     &itemList{},\n\t\tdone:     done,\n\t}\n}\n\n// throttle blocks if there are too many frames in the control buf that\n// represent the response of an action initiated by the peer, like\n// incomingSettings cleanupStreams etc.\nfunc (c *controlBuffer) throttle() {\n\tif ch := c.trfChan.Load(); ch != nil {\n\t\tselect {\n\t\tcase <-(*ch):\n\t\tcase <-c.done:\n\t\t}\n\t}\n}\n\n// put adds an item to the controlbuf.\nfunc (c *controlBuffer) put(it cbItem) error {\n\t_, err := c.executeAndPut(nil, it)\n\treturn err\n}\n\n// executeAndPut runs f, and if the return value is true, adds the given item to\n// the controlbuf. The item could be nil, in which case, this method simply\n// executes f and does not add the item to the controlbuf.\n//\n// The first return value indicates whether the item was successfully added to\n// the control buffer. A non-nil error, specifically ErrConnClosing, is returned\n// if the control buffer is already closed.\nfunc (c *controlBuffer) executeAndPut(f func() bool, it cbItem) (bool, error) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tif c.closed {\n\t\treturn false, ErrConnClosing\n\t}\n\tif f != nil {\n\t\tif !f() { // f wasn't successful\n\t\t\treturn false, nil\n\t\t}\n\t}\n\tif it == nil {\n\t\treturn true, nil\n\t}\n\n\tvar wakeUp bool\n\tif c.consumerWaiting {\n\t\twakeUp = true\n\t\tc.consumerWaiting = false\n\t}\n\tc.list.enqueue(it)\n\tif it.isTransportResponseFrame() {\n\t\tc.transportResponseFrames++\n\t\tif c.transportResponseFrames == maxQueuedTransportResponseFrames {\n\t\t\t// We are adding the frame that puts us over the threshold; create\n\t\t\t// a throttling channel.\n\t\t\tch := make(chan struct{})\n\t\t\tc.trfChan.Store(&ch)\n\t\t}\n\t}\n\tif wakeUp {\n\t\tselect {\n\t\tcase c.wakeupCh <- struct{}{}:\n\t\tdefault:\n\t\t}\n\t}\n\treturn true, nil\n}\n\n// get returns the next control frame from the control buffer. If block is true\n// **and** there are no control frames in the control buffer, the call blocks\n// until one of the conditions is met: there is a frame to return or the\n// transport is closed.\nfunc (c *controlBuffer) get(block bool) (any, error) {\n\tfor {\n\t\tc.mu.Lock()\n\t\tframe, err := c.getOnceLocked()\n\t\tif frame != nil || err != nil || !block {\n\t\t\t// If we read a frame or an error, we can return to the caller. The\n\t\t\t// call to getOnceLocked() returns a nil frame and a nil error if\n\t\t\t// there is nothing to read, and in that case, if the caller asked\n\t\t\t// us not to block, we can return now as well.\n\t\t\tc.mu.Unlock()\n\t\t\treturn frame, err\n\t\t}\n\t\tc.consumerWaiting = true\n\t\tc.mu.Unlock()\n\n\t\t// Release the lock above and wait to be woken up.\n\t\tselect {\n\t\tcase <-c.wakeupCh:\n\t\tcase <-c.done:\n\t\t\treturn nil, errors.New(\"transport closed by client\")\n\t\t}\n\t}\n}\n\n// Callers must not use this method, but should instead use get().\n//\n// Caller must hold c.mu.\nfunc (c *controlBuffer) getOnceLocked() (any, error) {\n\tif c.closed {\n\t\treturn false, ErrConnClosing\n\t}\n\tif c.list.isEmpty() {\n\t\treturn nil, nil\n\t}\n\th := c.list.dequeue().(cbItem)\n\tif h.isTransportResponseFrame() {\n\t\tif c.transportResponseFrames == maxQueuedTransportResponseFrames {\n\t\t\t// We are removing the frame that put us over the\n\t\t\t// threshold; close and clear the throttling channel.\n\t\t\tch := c.trfChan.Swap(nil)\n\t\t\tclose(*ch)\n\t\t}\n\t\tc.transportResponseFrames--\n\t}\n\treturn h, nil\n}\n\n// finish closes the control buffer, cleaning up any streams that have queued\n// header frames. Once this method returns, no more frames can be added to the\n// control buffer, and attempts to do so will return ErrConnClosing.\nfunc (c *controlBuffer) finish() {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tif c.closed {\n\t\treturn\n\t}\n\tc.closed = true\n\t// There may be headers for streams in the control buffer.\n\t// These streams need to be cleaned out since the transport\n\t// is still not aware of these yet.\n\tfor head := c.list.dequeueAll(); head != nil; head = head.next {\n\t\tswitch v := head.it.(type) {\n\t\tcase *headerFrame:\n\t\t\tif v.onOrphaned != nil { // It will be nil on the server-side.\n\t\t\t\tv.onOrphaned(ErrConnClosing)\n\t\t\t}\n\t\tcase *dataFrame:\n\t\t\tif !v.processing {\n\t\t\t\tv.data.Free()\n\t\t\t}\n\t\t}\n\t}\n\n\t// In case throttle() is currently in flight, it needs to be unblocked.\n\t// Otherwise, the transport may not close, since the transport is closed by\n\t// the reader encountering the connection error.\n\tch := c.trfChan.Swap(nil)\n\tif ch != nil {\n\t\tclose(*ch)\n\t}\n}\n\ntype side int\n\nconst (\n\tclientSide side = iota\n\tserverSide\n)\n\n// maxWriteBufSize is the maximum length (number of elements) the cached\n// writeBuf can grow to. The length depends on the number of buffers\n// contained within the BufferSlice produced by the codec, which is\n// generally small.\n//\n// If a writeBuf larger than this limit is required, it will be allocated\n// and freed after use, rather than being cached. This avoids holding\n// on to large amounts of memory.\nconst maxWriteBufSize = 64\n\n// Loopy receives frames from the control buffer.\n// Each frame is handled individually; most of the work done by loopy goes\n// into handling data frames. Loopy maintains a queue of active streams, and each\n// stream maintains a queue of data frames; as loopy receives data frames\n// it gets added to the queue of the relevant stream.\n// Loopy goes over this list of active streams by processing one node every iteration,\n// thereby closely resembling a round-robin scheduling over all streams. While\n// processing a stream, loopy writes out data bytes from this stream capped by the min\n// of http2MaxFrameLen, connection-level flow control and stream-level flow control.\ntype loopyWriter struct {\n\tside      side\n\tcbuf      *controlBuffer\n\tsendQuota uint32\n\toiws      uint32 // outbound initial window size.\n\t// estdStreams is map of all established streams that are not cleaned-up yet.\n\t// On client-side, this is all streams whose headers were sent out.\n\t// On server-side, this is all streams whose headers were received.\n\testdStreams map[uint32]*outStream // Established streams.\n\t// activeStreams is a linked-list of all streams that have data to send and some\n\t// stream-level flow control quota.\n\t// Each of these streams internally have a list of data items(and perhaps trailers\n\t// on the server-side) to be sent out.\n\tactiveStreams *outStreamList\n\tframer        *framer\n\thBuf          *bytes.Buffer  // The buffer for HPACK encoding.\n\thEnc          *hpack.Encoder // HPACK encoder.\n\tbdpEst        *bdpEstimator\n\tdraining      bool\n\tconn          net.Conn\n\tlogger        *grpclog.PrefixLogger\n\tbufferPool    mem.BufferPool\n\n\t// Side-specific handlers\n\tssGoAwayHandler func(*goAway) (bool, error)\n\n\twriteBuf [][]byte // cached slice to avoid heap allocations for calls to mem.Reader.Peek.\n}\n\nfunc newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator, conn net.Conn, logger *grpclog.PrefixLogger, goAwayHandler func(*goAway) (bool, error), bufferPool mem.BufferPool) *loopyWriter {\n\tvar buf bytes.Buffer\n\tl := &loopyWriter{\n\t\tside:            s,\n\t\tcbuf:            cbuf,\n\t\tsendQuota:       defaultWindowSize,\n\t\toiws:            defaultWindowSize,\n\t\testdStreams:     make(map[uint32]*outStream),\n\t\tactiveStreams:   newOutStreamList(),\n\t\tframer:          fr,\n\t\thBuf:            &buf,\n\t\thEnc:            hpack.NewEncoder(&buf),\n\t\tbdpEst:          bdpEst,\n\t\tconn:            conn,\n\t\tlogger:          logger,\n\t\tssGoAwayHandler: goAwayHandler,\n\t\tbufferPool:      bufferPool,\n\t}\n\treturn l\n}\n\nconst minBatchSize = 1000\n\n// run should be run in a separate goroutine.\n// It reads control frames from controlBuf and processes them by:\n// 1. Updating loopy's internal state, or/and\n// 2. Writing out HTTP2 frames on the wire.\n//\n// Loopy keeps all active streams with data to send in a linked-list.\n// All streams in the activeStreams linked-list must have both:\n// 1. Data to send, and\n// 2. Stream level flow control quota available.\n//\n// In each iteration of run loop, other than processing the incoming control\n// frame, loopy calls processData, which processes one node from the\n// activeStreams linked-list.  This results in writing of HTTP2 frames into an\n// underlying write buffer.  When there's no more control frames to read from\n// controlBuf, loopy flushes the write buffer.  As an optimization, to increase\n// the batch size for each flush, loopy yields the processor, once if the batch\n// size is too low to give stream goroutines a chance to fill it up.\n//\n// Upon exiting, if the error causing the exit is not an I/O error, run()\n// flushes the underlying connection.  The connection is always left open to\n// allow different closing behavior on the client and server.\nfunc (l *loopyWriter) run() (err error) {\n\tdefer func() {\n\t\tif l.logger.V(logLevel) {\n\t\t\tl.logger.Infof(\"loopyWriter exiting with error: %v\", err)\n\t\t}\n\t\tif !isIOError(err) {\n\t\t\tl.framer.writer.Flush()\n\t\t}\n\t\tl.cbuf.finish()\n\t}()\n\tfor {\n\t\tit, err := l.cbuf.get(true)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = l.handle(it); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err = l.processData(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgosched := true\n\thasdata:\n\t\tfor {\n\t\t\tit, err := l.cbuf.get(false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif it != nil {\n\t\t\t\tif err = l.handle(it); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif _, err = l.processData(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tcontinue hasdata\n\t\t\t}\n\t\t\tisEmpty, err := l.processData()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !isEmpty {\n\t\t\t\tcontinue hasdata\n\t\t\t}\n\t\t\tif gosched {\n\t\t\t\tgosched = false\n\t\t\t\tif l.framer.writer.offset < minBatchSize {\n\t\t\t\t\truntime.Gosched()\n\t\t\t\t\tcontinue hasdata\n\t\t\t\t}\n\t\t\t}\n\t\t\tl.framer.writer.Flush()\n\t\t\tbreak hasdata\n\t\t}\n\t}\n}\n\nfunc (l *loopyWriter) outgoingWindowUpdateHandler(w *outgoingWindowUpdate) error {\n\treturn l.framer.fr.WriteWindowUpdate(w.streamID, w.increment)\n}\n\nfunc (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) {\n\t// Otherwise update the quota.\n\tif w.streamID == 0 {\n\t\tl.sendQuota += w.increment\n\t\treturn\n\t}\n\t// Find the stream and update it.\n\tif str, ok := l.estdStreams[w.streamID]; ok {\n\t\tstr.bytesOutStanding -= int(w.increment)\n\t\tif strQuota := int(l.oiws) - str.bytesOutStanding; strQuota > 0 && str.state == waitingOnStreamQuota {\n\t\t\tstr.state = active\n\t\t\tl.activeStreams.enqueue(str)\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error {\n\treturn l.framer.fr.WriteSettings(s.ss...)\n}\n\nfunc (l *loopyWriter) incomingSettingsHandler(s *incomingSettings) error {\n\tl.applySettings(s.ss)\n\treturn l.framer.fr.WriteSettingsAck()\n}\n\nfunc (l *loopyWriter) registerStreamHandler(h *registerStream) {\n\tstr := &outStream{\n\t\tid:    h.streamID,\n\t\tstate: empty,\n\t\titl:   &itemList{},\n\t\twq:    h.wq,\n\t}\n\tl.estdStreams[h.streamID] = str\n}\n\nfunc (l *loopyWriter) headerHandler(h *headerFrame) error {\n\tif l.side == serverSide {\n\t\tstr, ok := l.estdStreams[h.streamID]\n\t\tif !ok {\n\t\t\tif l.logger.V(logLevel) {\n\t\t\t\tl.logger.Infof(\"Unrecognized streamID %d in loopyWriter\", h.streamID)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\t// Case 1.A: Server is responding back with headers.\n\t\tif !h.endStream {\n\t\t\treturn l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite)\n\t\t}\n\t\t// else:  Case 1.B: Server wants to close stream.\n\n\t\tif str.state != empty { // either active or waiting on stream quota.\n\t\t\t// add it str's list of items.\n\t\t\tstr.itl.enqueue(h)\n\t\t\treturn nil\n\t\t}\n\t\tif err := l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn l.cleanupStreamHandler(h.cleanup)\n\t}\n\t// Case 2: Client wants to originate stream.\n\tstr := &outStream{\n\t\tid:    h.streamID,\n\t\tstate: empty,\n\t\titl:   &itemList{},\n\t\twq:    h.wq,\n\t}\n\treturn l.originateStream(str, h)\n}\n\nfunc (l *loopyWriter) originateStream(str *outStream, hdr *headerFrame) error {\n\t// l.draining is set when handling GoAway. In which case, we want to avoid\n\t// creating new streams.\n\tif l.draining {\n\t\t// TODO: provide a better error with the reason we are in draining.\n\t\thdr.onOrphaned(errStreamDrain)\n\t\treturn nil\n\t}\n\tif err := hdr.initStream(str.id); err != nil {\n\t\treturn err\n\t}\n\tif err := l.writeHeader(str.id, hdr.endStream, hdr.hf, hdr.onWrite); err != nil {\n\t\treturn err\n\t}\n\tl.estdStreams[str.id] = str\n\treturn nil\n}\n\nfunc (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.HeaderField, onWrite func()) error {\n\tif onWrite != nil {\n\t\tonWrite()\n\t}\n\tl.hBuf.Reset()\n\tfor _, f := range hf {\n\t\tif err := l.hEnc.WriteField(f); err != nil {\n\t\t\tif l.logger.V(logLevel) {\n\t\t\t\tl.logger.Warningf(\"Encountered error while encoding headers: %v\", err)\n\t\t\t}\n\t\t}\n\t}\n\tvar (\n\t\terr               error\n\t\tendHeaders, first bool\n\t)\n\tfirst = true\n\tfor !endHeaders {\n\t\tsize := l.hBuf.Len()\n\t\tif size > http2MaxFrameLen {\n\t\t\tsize = http2MaxFrameLen\n\t\t} else {\n\t\t\tendHeaders = true\n\t\t}\n\t\tif first {\n\t\t\tfirst = false\n\t\t\terr = l.framer.fr.WriteHeaders(http2.HeadersFrameParam{\n\t\t\t\tStreamID:      streamID,\n\t\t\t\tBlockFragment: l.hBuf.Next(size),\n\t\t\t\tEndStream:     endStream,\n\t\t\t\tEndHeaders:    endHeaders,\n\t\t\t})\n\t\t} else {\n\t\t\terr = l.framer.fr.WriteContinuation(\n\t\t\t\tstreamID,\n\t\t\t\tendHeaders,\n\t\t\t\tl.hBuf.Next(size),\n\t\t\t)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) preprocessData(df *dataFrame) {\n\tstr, ok := l.estdStreams[df.streamID]\n\tif !ok {\n\t\treturn\n\t}\n\t// If we got data for a stream it means that\n\t// stream was originated and the headers were sent out.\n\tstr.itl.enqueue(df)\n\tif str.state == empty {\n\t\tstr.state = active\n\t\tl.activeStreams.enqueue(str)\n\t}\n}\n\nfunc (l *loopyWriter) pingHandler(p *ping) error {\n\tif !p.ack {\n\t\tl.bdpEst.timesnap(p.data)\n\t}\n\treturn l.framer.fr.WritePing(p.ack, p.data)\n\n}\n\nfunc (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) {\n\to.resp <- l.sendQuota\n}\n\nfunc (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error {\n\tc.onWrite()\n\tif str, ok := l.estdStreams[c.streamID]; ok {\n\t\t// On the server side it could be a trailers-only response or\n\t\t// a RST_STREAM before stream initialization thus the stream might\n\t\t// not be established yet.\n\t\tdelete(l.estdStreams, c.streamID)\n\t\tstr.reader.Close()\n\t\tstr.deleteSelf()\n\t\tfor head := str.itl.dequeueAll(); head != nil; head = head.next {\n\t\t\tif df, ok := head.it.(*dataFrame); ok {\n\t\t\t\tif !df.processing {\n\t\t\t\t\tdf.data.Free()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif c.rst { // If RST_STREAM needs to be sent.\n\t\tif err := l.framer.fr.WriteRSTStream(c.streamID, c.rstCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif l.draining && len(l.estdStreams) == 0 {\n\t\t// Flush and close the connection; we are done with it.\n\t\treturn errors.New(\"finished processing active streams while in draining mode\")\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) earlyAbortStreamHandler(eas *earlyAbortStream) error {\n\tif l.side == clientSide {\n\t\treturn errors.New(\"earlyAbortStream not handled on client\")\n\t}\n\tif err := l.writeHeader(eas.streamID, true, eas.hf, nil); err != nil {\n\t\treturn err\n\t}\n\tif eas.rst {\n\t\tif err := l.framer.fr.WriteRSTStream(eas.streamID, http2.ErrCodeNo); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) incomingGoAwayHandler(*incomingGoAway) error {\n\tif l.side == clientSide {\n\t\tl.draining = true\n\t\tif len(l.estdStreams) == 0 {\n\t\t\t// Flush and close the connection; we are done with it.\n\t\t\treturn errors.New(\"received GOAWAY with no active streams\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) goAwayHandler(g *goAway) error {\n\t// Handling of outgoing GoAway is very specific to side.\n\tif l.ssGoAwayHandler != nil {\n\t\tdraining, err := l.ssGoAwayHandler(g)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl.draining = draining\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) handle(i any) error {\n\tswitch i := i.(type) {\n\tcase *incomingWindowUpdate:\n\t\tl.incomingWindowUpdateHandler(i)\n\tcase *outgoingWindowUpdate:\n\t\treturn l.outgoingWindowUpdateHandler(i)\n\tcase *incomingSettings:\n\t\treturn l.incomingSettingsHandler(i)\n\tcase *outgoingSettings:\n\t\treturn l.outgoingSettingsHandler(i)\n\tcase *headerFrame:\n\t\treturn l.headerHandler(i)\n\tcase *registerStream:\n\t\tl.registerStreamHandler(i)\n\tcase *cleanupStream:\n\t\treturn l.cleanupStreamHandler(i)\n\tcase *earlyAbortStream:\n\t\treturn l.earlyAbortStreamHandler(i)\n\tcase *incomingGoAway:\n\t\treturn l.incomingGoAwayHandler(i)\n\tcase *dataFrame:\n\t\tl.preprocessData(i)\n\tcase *ping:\n\t\treturn l.pingHandler(i)\n\tcase *goAway:\n\t\treturn l.goAwayHandler(i)\n\tcase *outFlowControlSizeRequest:\n\t\tl.outFlowControlSizeRequestHandler(i)\n\tcase closeConnection:\n\t\t// Just return a non-I/O error and run() will flush and close the\n\t\t// connection.\n\t\treturn ErrConnClosing\n\tdefault:\n\t\treturn fmt.Errorf(\"transport: unknown control message type %T\", i)\n\t}\n\treturn nil\n}\n\nfunc (l *loopyWriter) applySettings(ss []http2.Setting) {\n\tfor _, s := range ss {\n\t\tswitch s.ID {\n\t\tcase http2.SettingInitialWindowSize:\n\t\t\to := l.oiws\n\t\t\tl.oiws = s.Val\n\t\t\tif o < l.oiws {\n\t\t\t\t// If the new limit is greater make all depleted streams active.\n\t\t\t\tfor _, stream := range l.estdStreams {\n\t\t\t\t\tif stream.state == waitingOnStreamQuota {\n\t\t\t\t\t\tstream.state = active\n\t\t\t\t\t\tl.activeStreams.enqueue(stream)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase http2.SettingHeaderTableSize:\n\t\t\tupdateHeaderTblSize(l.hEnc, s.Val)\n\t\t}\n\t}\n}\n\n// processData removes the first stream from active streams, writes out at most 16KB\n// of its data and then puts it at the end of activeStreams if there's still more data\n// to be sent and stream has some stream-level flow control.\nfunc (l *loopyWriter) processData() (bool, error) {\n\tif l.sendQuota == 0 {\n\t\treturn true, nil\n\t}\n\tstr := l.activeStreams.dequeue() // Remove the first stream.\n\tif str == nil {\n\t\treturn true, nil\n\t}\n\treader := &str.reader\n\tdataItem := str.itl.peek().(*dataFrame) // Peek at the first data item this stream.\n\tif !dataItem.processing {\n\t\tdataItem.processing = true\n\t\treader.Reset(dataItem.data)\n\t\tdataItem.data.Free()\n\t}\n\t// A data item is represented by a dataFrame, since it later translates into\n\t// multiple HTTP2 data frames.\n\t// Every dataFrame has two buffers; h that keeps grpc-message header and data\n\t// that is the actual message. As an optimization to keep wire traffic low, data\n\t// from data is copied to h to make as big as the maximum possible HTTP2 frame\n\t// size.\n\n\tif len(dataItem.h) == 0 && reader.Remaining() == 0 { // Empty data frame\n\t\t// Client sends out empty data frame with endStream = true\n\t\tif err := l.framer.writeData(dataItem.streamID, dataItem.endStream, nil); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tstr.itl.dequeue() // remove the empty data item from stream\n\t\treader.Close()\n\t\tif str.itl.isEmpty() {\n\t\t\tstr.state = empty\n\t\t} else if trailer, ok := str.itl.peek().(*headerFrame); ok { // the next item is trailers.\n\t\t\tif err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t\tif err := l.cleanupStreamHandler(trailer.cleanup); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t} else {\n\t\t\tl.activeStreams.enqueue(str)\n\t\t}\n\t\treturn false, nil\n\t}\n\n\t// Figure out the maximum size we can send\n\tmaxSize := http2MaxFrameLen\n\tif strQuota := int(l.oiws) - str.bytesOutStanding; strQuota <= 0 { // stream-level flow control.\n\t\tstr.state = waitingOnStreamQuota\n\t\treturn false, nil\n\t} else if maxSize > strQuota {\n\t\tmaxSize = strQuota\n\t}\n\tif maxSize > int(l.sendQuota) { // connection-level flow control.\n\t\tmaxSize = int(l.sendQuota)\n\t}\n\t// Compute how much of the header and data we can send within quota and max frame length\n\thSize := min(maxSize, len(dataItem.h))\n\tdSize := min(maxSize-hSize, reader.Remaining())\n\tremainingBytes := len(dataItem.h) + reader.Remaining() - hSize - dSize\n\tsize := hSize + dSize\n\n\tl.writeBuf = l.writeBuf[:0]\n\tif hSize > 0 {\n\t\tl.writeBuf = append(l.writeBuf, dataItem.h[:hSize])\n\t}\n\tif dSize > 0 {\n\t\tvar err error\n\t\tl.writeBuf, err = reader.Peek(dSize, l.writeBuf)\n\t\tif err != nil {\n\t\t\t// This must never happen since the reader must have at least dSize\n\t\t\t// bytes.\n\t\t\t// Log an error to fail tests.\n\t\t\tl.logger.Errorf(\"unexpected error while reading Data frame payload: %v\", err)\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// Now that outgoing flow controls are checked we can replenish str's write quota\n\tstr.wq.replenish(size)\n\tvar endStream bool\n\t// If this is the last data message on this stream and all of it can be written in this iteration.\n\tif dataItem.endStream && remainingBytes == 0 {\n\t\tendStream = true\n\t}\n\tif dataItem.onEachWrite != nil {\n\t\tdataItem.onEachWrite()\n\t}\n\terr := l.framer.writeData(dataItem.streamID, endStream, l.writeBuf)\n\treader.Discard(dSize)\n\tif cap(l.writeBuf) > maxWriteBufSize {\n\t\tl.writeBuf = nil\n\t} else {\n\t\tclear(l.writeBuf)\n\t}\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tstr.bytesOutStanding += size\n\tl.sendQuota -= uint32(size)\n\tdataItem.h = dataItem.h[hSize:]\n\n\tif remainingBytes == 0 { // All the data from that message was written out.\n\t\treader.Close()\n\t\tstr.itl.dequeue()\n\t}\n\tif str.itl.isEmpty() {\n\t\tstr.state = empty\n\t} else if trailer, ok := str.itl.peek().(*headerFrame); ok { // The next item is trailers.\n\t\tif err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif err := l.cleanupStreamHandler(trailer.cleanup); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if int(l.oiws)-str.bytesOutStanding <= 0 { // Ran out of stream quota.\n\t\tstr.state = waitingOnStreamQuota\n\t} else { // Otherwise add it back to the list of active streams.\n\t\tl.activeStreams.enqueue(str)\n\t}\n\treturn false, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/defaults.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"math\"\n\t\"time\"\n)\n\nconst (\n\t// The default value of flow control window size in HTTP2 spec.\n\tdefaultWindowSize = 65535\n\t// The initial window size for flow control.\n\tinitialWindowSize             = defaultWindowSize // for an RPC\n\tinfinity                      = time.Duration(math.MaxInt64)\n\tdefaultClientKeepaliveTime    = infinity\n\tdefaultClientKeepaliveTimeout = 20 * time.Second\n\tdefaultMaxStreamsClient       = 100\n\tdefaultMaxConnectionIdle      = infinity\n\tdefaultMaxConnectionAge       = infinity\n\tdefaultMaxConnectionAgeGrace  = infinity\n\tdefaultServerKeepaliveTime    = 2 * time.Hour\n\tdefaultServerKeepaliveTimeout = 20 * time.Second\n\tdefaultKeepalivePolicyMinTime = 5 * time.Minute\n\t// max window limit set by HTTP2 Specs.\n\tmaxWindowSize = math.MaxInt32\n\t// defaultWriteQuota is the default value for number of data\n\t// bytes that each stream can schedule before some of it being\n\t// flushed out.\n\tdefaultWriteQuota              = 64 * 1024\n\tdefaultClientMaxHeaderListSize = uint32(16 << 20)\n\tdefaultServerMaxHeaderListSize = uint32(16 << 20)\n)\n\n// MaxStreamID is the upper bound for the stream ID before the current\n// transport gracefully closes and new transport is created for subsequent RPCs.\n// This is set to 75% of 2^31-1. Streams are identified with an unsigned 31-bit\n// integer. It's exported so that tests can override it.\nvar MaxStreamID = uint32(math.MaxInt32 * 3 / 4)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/flowcontrol.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// writeQuota is a soft limit on the amount of data a stream can\n// schedule before some of it is written out.\ntype writeQuota struct {\n\t_ noCopy\n\t// get waits on read from when quota goes less than or equal to zero.\n\t// replenish writes on it when quota goes positive again.\n\tch chan struct{}\n\t// done is triggered in error case.\n\tdone <-chan struct{}\n\t// replenish is called by loopyWriter to give quota back to.\n\t// It is implemented as a field so that it can be updated\n\t// by tests.\n\treplenish func(n int)\n\tquota     int32\n}\n\n// init allows a writeQuota to be initialized in-place, which is useful for\n// resetting a buffer or for avoiding a heap allocation when the buffer is\n// embedded in another struct.\nfunc (w *writeQuota) init(sz int32, done <-chan struct{}) {\n\tw.quota = sz\n\tw.ch = make(chan struct{}, 1)\n\tw.done = done\n\tw.replenish = w.realReplenish\n}\n\nfunc (w *writeQuota) get(sz int32) error {\n\tfor {\n\t\tif atomic.LoadInt32(&w.quota) > 0 {\n\t\t\tatomic.AddInt32(&w.quota, -sz)\n\t\t\treturn nil\n\t\t}\n\t\tselect {\n\t\tcase <-w.ch:\n\t\t\tcontinue\n\t\tcase <-w.done:\n\t\t\treturn errStreamDone\n\t\t}\n\t}\n}\n\nfunc (w *writeQuota) realReplenish(n int) {\n\tsz := int32(n)\n\tnewQuota := atomic.AddInt32(&w.quota, sz)\n\tpreviousQuota := newQuota - sz\n\tif previousQuota <= 0 && newQuota > 0 {\n\t\tselect {\n\t\tcase w.ch <- struct{}{}:\n\t\tdefault:\n\t\t}\n\t}\n}\n\ntype trInFlow struct {\n\tlimit               uint32\n\tunacked             uint32\n\teffectiveWindowSize uint32\n}\n\nfunc (f *trInFlow) newLimit(n uint32) uint32 {\n\td := n - f.limit\n\tf.limit = n\n\tf.updateEffectiveWindowSize()\n\treturn d\n}\n\nfunc (f *trInFlow) onData(n uint32) uint32 {\n\tf.unacked += n\n\tif f.unacked < f.limit/4 {\n\t\tf.updateEffectiveWindowSize()\n\t\treturn 0\n\t}\n\treturn f.reset()\n}\n\nfunc (f *trInFlow) reset() uint32 {\n\tw := f.unacked\n\tf.unacked = 0\n\tf.updateEffectiveWindowSize()\n\treturn w\n}\n\nfunc (f *trInFlow) updateEffectiveWindowSize() {\n\tatomic.StoreUint32(&f.effectiveWindowSize, f.limit-f.unacked)\n}\n\nfunc (f *trInFlow) getSize() uint32 {\n\treturn atomic.LoadUint32(&f.effectiveWindowSize)\n}\n\n// TODO(mmukhi): Simplify this code.\n// inFlow deals with inbound flow control\ntype inFlow struct {\n\tmu sync.Mutex\n\t// The inbound flow control limit for pending data.\n\tlimit uint32\n\t// pendingData is the overall data which have been received but not been\n\t// consumed by applications.\n\tpendingData uint32\n\t// The amount of data the application has consumed but grpc has not sent\n\t// window update for them. Used to reduce window update frequency.\n\tpendingUpdate uint32\n\t// delta is the extra window update given by receiver when an application\n\t// is reading data bigger in size than the inFlow limit.\n\tdelta uint32\n}\n\n// newLimit updates the inflow window to a new value n.\n// It assumes that n is always greater than the old limit.\nfunc (f *inFlow) newLimit(n uint32) {\n\tf.mu.Lock()\n\tf.limit = n\n\tf.mu.Unlock()\n}\n\nfunc (f *inFlow) maybeAdjust(n uint32) uint32 {\n\tif n > uint32(math.MaxInt32) {\n\t\tn = uint32(math.MaxInt32)\n\t}\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\t// estSenderQuota is the receiver's view of the maximum number of bytes the sender\n\t// can send without a window update.\n\testSenderQuota := int32(f.limit - (f.pendingData + f.pendingUpdate))\n\t// estUntransmittedData is the maximum number of bytes the sends might not have put\n\t// on the wire yet. A value of 0 or less means that we have already received all or\n\t// more bytes than the application is requesting to read.\n\testUntransmittedData := int32(n - f.pendingData) // Casting into int32 since it could be negative.\n\t// This implies that unless we send a window update, the sender won't be able to send all the bytes\n\t// for this message. Therefore we must send an update over the limit since there's an active read\n\t// request from the application.\n\tif estUntransmittedData > estSenderQuota {\n\t\t// Sender's window shouldn't go more than 2^31 - 1 as specified in the HTTP spec.\n\t\tif f.limit+n > maxWindowSize {\n\t\t\tf.delta = maxWindowSize - f.limit\n\t\t} else {\n\t\t\t// Send a window update for the whole message and not just the difference between\n\t\t\t// estUntransmittedData and estSenderQuota. This will be helpful in case the message\n\t\t\t// is padded; We will fallback on the current available window(at least a 1/4th of the limit).\n\t\t\tf.delta = n\n\t\t}\n\t\treturn f.delta\n\t}\n\treturn 0\n}\n\n// onData is invoked when some data frame is received. It updates pendingData.\nfunc (f *inFlow) onData(n uint32) error {\n\tf.mu.Lock()\n\tf.pendingData += n\n\tif f.pendingData+f.pendingUpdate > f.limit+f.delta {\n\t\tlimit := f.limit\n\t\trcvd := f.pendingData + f.pendingUpdate\n\t\tf.mu.Unlock()\n\t\treturn fmt.Errorf(\"received %d-bytes data exceeding the limit %d bytes\", rcvd, limit)\n\t}\n\tf.mu.Unlock()\n\treturn nil\n}\n\n// onRead is invoked when the application reads the data. It returns the window size\n// to be sent to the peer.\nfunc (f *inFlow) onRead(n uint32) uint32 {\n\tf.mu.Lock()\n\tif f.pendingData == 0 {\n\t\tf.mu.Unlock()\n\t\treturn 0\n\t}\n\tf.pendingData -= n\n\tif n > f.delta {\n\t\tn -= f.delta\n\t\tf.delta = 0\n\t} else {\n\t\tf.delta -= n\n\t\tn = 0\n\t}\n\tf.pendingUpdate += n\n\tif f.pendingUpdate >= f.limit/4 {\n\t\twu := f.pendingUpdate\n\t\tf.pendingUpdate = 0\n\t\tf.mu.Unlock()\n\t\treturn wu\n\t}\n\tf.mu.Unlock()\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/handler_server.go",
    "content": "/*\n *\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// This file is the implementation of a gRPC server using HTTP/2 which\n// uses the standard Go http2 Server implementation (via the\n// http.Handler interface), rather than speaking low-level HTTP/2\n// frames itself. It is the implementation of *grpc.Server.ServeHTTP.\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http2\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/internal/grpclog\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/protobuf/proto\"\n)\n\n// NewServerHandlerTransport returns a ServerTransport handling gRPC from\n// inside an http.Handler, or writes an HTTP error to w and returns an error.\n// It requires that the http Server supports HTTP/2.\nfunc NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats stats.Handler, bufferPool mem.BufferPool) (ServerTransport, error) {\n\tif r.Method != http.MethodPost {\n\t\tw.Header().Set(\"Allow\", http.MethodPost)\n\t\tmsg := fmt.Sprintf(\"invalid gRPC request method %q\", r.Method)\n\t\thttp.Error(w, msg, http.StatusMethodNotAllowed)\n\t\treturn nil, errors.New(msg)\n\t}\n\tcontentType := r.Header.Get(\"Content-Type\")\n\t// TODO: do we assume contentType is lowercase? we did before\n\tcontentSubtype, validContentType := grpcutil.ContentSubtype(contentType)\n\tif !validContentType {\n\t\tmsg := fmt.Sprintf(\"invalid gRPC request content-type %q\", contentType)\n\t\thttp.Error(w, msg, http.StatusUnsupportedMediaType)\n\t\treturn nil, errors.New(msg)\n\t}\n\tif r.ProtoMajor != 2 {\n\t\tmsg := \"gRPC requires HTTP/2\"\n\t\thttp.Error(w, msg, http.StatusHTTPVersionNotSupported)\n\t\treturn nil, errors.New(msg)\n\t}\n\tif _, ok := w.(http.Flusher); !ok {\n\t\tmsg := \"gRPC requires a ResponseWriter supporting http.Flusher\"\n\t\thttp.Error(w, msg, http.StatusInternalServerError)\n\t\treturn nil, errors.New(msg)\n\t}\n\n\tvar localAddr net.Addr\n\tif la := r.Context().Value(http.LocalAddrContextKey); la != nil {\n\t\tlocalAddr, _ = la.(net.Addr)\n\t}\n\tvar authInfo credentials.AuthInfo\n\tif r.TLS != nil {\n\t\tauthInfo = credentials.TLSInfo{State: *r.TLS, CommonAuthInfo: credentials.CommonAuthInfo{SecurityLevel: credentials.PrivacyAndIntegrity}}\n\t}\n\tp := peer.Peer{\n\t\tAddr:      strAddr(r.RemoteAddr),\n\t\tLocalAddr: localAddr,\n\t\tAuthInfo:  authInfo,\n\t}\n\tst := &serverHandlerTransport{\n\t\trw:             w,\n\t\treq:            r,\n\t\tclosedCh:       make(chan struct{}),\n\t\twrites:         make(chan func()),\n\t\tpeer:           p,\n\t\tcontentType:    contentType,\n\t\tcontentSubtype: contentSubtype,\n\t\tstats:          stats,\n\t\tbufferPool:     bufferPool,\n\t}\n\tst.logger = prefixLoggerForServerHandlerTransport(st)\n\n\tif v := r.Header.Get(\"grpc-timeout\"); v != \"\" {\n\t\tto, err := decodeTimeout(v)\n\t\tif err != nil {\n\t\t\tmsg := fmt.Sprintf(\"malformed grpc-timeout: %v\", err)\n\t\t\thttp.Error(w, msg, http.StatusBadRequest)\n\t\t\treturn nil, status.Error(codes.Internal, msg)\n\t\t}\n\t\tst.timeoutSet = true\n\t\tst.timeout = to\n\t}\n\n\tmetakv := []string{\"content-type\", contentType}\n\tif r.Host != \"\" {\n\t\tmetakv = append(metakv, \":authority\", r.Host)\n\t}\n\tfor k, vv := range r.Header {\n\t\tk = strings.ToLower(k)\n\t\tif isReservedHeader(k) && !isWhitelistedHeader(k) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\tv, err := decodeMetadataHeader(k, v)\n\t\t\tif err != nil {\n\t\t\t\tmsg := fmt.Sprintf(\"malformed binary metadata %q in header %q: %v\", v, k, err)\n\t\t\t\thttp.Error(w, msg, http.StatusBadRequest)\n\t\t\t\treturn nil, status.Error(codes.Internal, msg)\n\t\t\t}\n\t\t\tmetakv = append(metakv, k, v)\n\t\t}\n\t}\n\tst.headerMD = metadata.Pairs(metakv...)\n\n\treturn st, nil\n}\n\n// serverHandlerTransport is an implementation of ServerTransport\n// which replies to exactly one gRPC request (exactly one HTTP request),\n// using the net/http.Handler interface. This http.Handler is guaranteed\n// at this point to be speaking over HTTP/2, so it's able to speak valid\n// gRPC.\ntype serverHandlerTransport struct {\n\trw         http.ResponseWriter\n\treq        *http.Request\n\ttimeoutSet bool\n\ttimeout    time.Duration\n\n\theaderMD metadata.MD\n\n\tpeer peer.Peer\n\n\tcloseOnce sync.Once\n\tclosedCh  chan struct{} // closed on Close\n\n\t// writes is a channel of code to run serialized in the\n\t// ServeHTTP (HandleStreams) goroutine. The channel is closed\n\t// when WriteStatus is called.\n\twrites chan func()\n\n\t// block concurrent WriteStatus calls\n\t// e.g. grpc/(*serverStream).SendMsg/RecvMsg\n\twriteStatusMu sync.Mutex\n\n\t// we just mirror the request content-type\n\tcontentType string\n\t// we store both contentType and contentSubtype so we don't keep recreating them\n\t// TODO make sure this is consistent across handler_server and http2_server\n\tcontentSubtype string\n\n\tstats  stats.Handler\n\tlogger *grpclog.PrefixLogger\n\n\tbufferPool mem.BufferPool\n}\n\nfunc (ht *serverHandlerTransport) Close(err error) {\n\tht.closeOnce.Do(func() {\n\t\tif ht.logger.V(logLevel) {\n\t\t\tht.logger.Infof(\"Closing: %v\", err)\n\t\t}\n\t\tclose(ht.closedCh)\n\t})\n}\n\nfunc (ht *serverHandlerTransport) Peer() *peer.Peer {\n\treturn &peer.Peer{\n\t\tAddr:      ht.peer.Addr,\n\t\tLocalAddr: ht.peer.LocalAddr,\n\t\tAuthInfo:  ht.peer.AuthInfo,\n\t}\n}\n\n// strAddr is a net.Addr backed by either a TCP \"ip:port\" string, or\n// the empty string if unknown.\ntype strAddr string\n\nfunc (a strAddr) Network() string {\n\tif a != \"\" {\n\t\t// Per the documentation on net/http.Request.RemoteAddr, if this is\n\t\t// set, it's set to the IP:port of the peer (hence, TCP):\n\t\t// https://golang.org/pkg/net/http/#Request\n\t\t//\n\t\t// If we want to support Unix sockets later, we can\n\t\t// add our own grpc-specific convention within the\n\t\t// grpc codebase to set RemoteAddr to a different\n\t\t// format, or probably better: we can attach it to the\n\t\t// context and use that from serverHandlerTransport.RemoteAddr.\n\t\treturn \"tcp\"\n\t}\n\treturn \"\"\n}\n\nfunc (a strAddr) String() string { return string(a) }\n\n// do runs fn in the ServeHTTP goroutine.\nfunc (ht *serverHandlerTransport) do(fn func()) error {\n\tselect {\n\tcase <-ht.closedCh:\n\t\treturn ErrConnClosing\n\tcase ht.writes <- fn:\n\t\treturn nil\n\t}\n}\n\nfunc (ht *serverHandlerTransport) writeStatus(s *ServerStream, st *status.Status) error {\n\tht.writeStatusMu.Lock()\n\tdefer ht.writeStatusMu.Unlock()\n\n\theadersWritten := s.updateHeaderSent()\n\terr := ht.do(func() {\n\t\tif !headersWritten {\n\t\t\tht.writePendingHeaders(s)\n\t\t}\n\n\t\t// And flush, in case no header or body has been sent yet.\n\t\t// This forces a separation of headers and trailers if this is the\n\t\t// first call (for example, in end2end tests's TestNoService).\n\t\tht.rw.(http.Flusher).Flush()\n\n\t\th := ht.rw.Header()\n\t\th.Set(\"Grpc-Status\", fmt.Sprintf(\"%d\", st.Code()))\n\t\tif m := st.Message(); m != \"\" {\n\t\t\th.Set(\"Grpc-Message\", encodeGrpcMessage(m))\n\t\t}\n\n\t\ts.hdrMu.Lock()\n\t\tdefer s.hdrMu.Unlock()\n\t\tif p := st.Proto(); p != nil && len(p.Details) > 0 {\n\t\t\tdelete(s.trailer, grpcStatusDetailsBinHeader)\n\t\t\tstBytes, err := proto.Marshal(p)\n\t\t\tif err != nil {\n\t\t\t\t// TODO: return error instead, when callers are able to handle it.\n\t\t\t\tpanic(err)\n\t\t\t}\n\n\t\t\th.Set(grpcStatusDetailsBinHeader, encodeBinHeader(stBytes))\n\t\t}\n\n\t\tif len(s.trailer) > 0 {\n\t\t\tfor k, vv := range s.trailer {\n\t\t\t\t// Clients don't tolerate reading restricted headers after some non restricted ones were sent.\n\t\t\t\tif isReservedHeader(k) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tfor _, v := range vv {\n\t\t\t\t\t// http2 ResponseWriter mechanism to send undeclared Trailers after\n\t\t\t\t\t// the headers have possibly been written.\n\t\t\t\t\th.Add(http2.TrailerPrefix+k, encodeMetadataHeader(k, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\n\tif err == nil && ht.stats != nil { // transport has not been closed\n\t\t// Note: The trailer fields are compressed with hpack after this call returns.\n\t\t// No WireLength field is set here.\n\t\ts.hdrMu.Lock()\n\t\tht.stats.HandleRPC(s.Context(), &stats.OutTrailer{\n\t\t\tTrailer: s.trailer.Copy(),\n\t\t})\n\t\ts.hdrMu.Unlock()\n\t}\n\tht.Close(errors.New(\"finished writing status\"))\n\treturn err\n}\n\n// writePendingHeaders sets common and custom headers on the first\n// write call (Write, WriteHeader, or WriteStatus)\nfunc (ht *serverHandlerTransport) writePendingHeaders(s *ServerStream) {\n\tht.writeCommonHeaders(s)\n\tht.writeCustomHeaders(s)\n}\n\n// writeCommonHeaders sets common headers on the first write\n// call (Write, WriteHeader, or WriteStatus).\nfunc (ht *serverHandlerTransport) writeCommonHeaders(s *ServerStream) {\n\th := ht.rw.Header()\n\th[\"Date\"] = nil // suppress Date to make tests happy; TODO: restore\n\th.Set(\"Content-Type\", ht.contentType)\n\n\t// Predeclare trailers we'll set later in WriteStatus (after the body).\n\t// This is a SHOULD in the HTTP RFC, and the way you add (known)\n\t// Trailers per the net/http.ResponseWriter contract.\n\t// See https://golang.org/pkg/net/http/#ResponseWriter\n\t// and https://golang.org/pkg/net/http/#example_ResponseWriter_trailers\n\th.Add(\"Trailer\", \"Grpc-Status\")\n\th.Add(\"Trailer\", \"Grpc-Message\")\n\th.Add(\"Trailer\", \"Grpc-Status-Details-Bin\")\n\n\tif s.sendCompress != \"\" {\n\t\th.Set(\"Grpc-Encoding\", s.sendCompress)\n\t}\n}\n\n// writeCustomHeaders sets custom headers set on the stream via SetHeader\n// on the first write call (Write, WriteHeader, or WriteStatus)\nfunc (ht *serverHandlerTransport) writeCustomHeaders(s *ServerStream) {\n\th := ht.rw.Header()\n\n\ts.hdrMu.Lock()\n\tfor k, vv := range s.header {\n\t\tif isReservedHeader(k) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\th.Add(k, encodeMetadataHeader(k, v))\n\t\t}\n\t}\n\n\ts.hdrMu.Unlock()\n}\n\nfunc (ht *serverHandlerTransport) write(s *ServerStream, hdr []byte, data mem.BufferSlice, _ *WriteOptions) error {\n\t// Always take a reference because otherwise there is no guarantee the data will\n\t// be available after this function returns. This is what callers to Write\n\t// expect.\n\tdata.Ref()\n\theadersWritten := s.updateHeaderSent()\n\terr := ht.do(func() {\n\t\tdefer data.Free()\n\t\tif !headersWritten {\n\t\t\tht.writePendingHeaders(s)\n\t\t}\n\t\tht.rw.Write(hdr)\n\t\tfor _, b := range data {\n\t\t\t_, _ = ht.rw.Write(b.ReadOnlyData())\n\t\t}\n\t\tht.rw.(http.Flusher).Flush()\n\t})\n\tif err != nil {\n\t\tdata.Free()\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (ht *serverHandlerTransport) writeHeader(s *ServerStream, md metadata.MD) error {\n\tif err := s.SetHeader(md); err != nil {\n\t\treturn err\n\t}\n\n\theadersWritten := s.updateHeaderSent()\n\terr := ht.do(func() {\n\t\tif !headersWritten {\n\t\t\tht.writePendingHeaders(s)\n\t\t}\n\n\t\tht.rw.WriteHeader(200)\n\t\tht.rw.(http.Flusher).Flush()\n\t})\n\n\tif err == nil && ht.stats != nil {\n\t\t// Note: The header fields are compressed with hpack after this call returns.\n\t\t// No WireLength field is set here.\n\t\tht.stats.HandleRPC(s.Context(), &stats.OutHeader{\n\t\t\tHeader:      md.Copy(),\n\t\t\tCompression: s.sendCompress,\n\t\t})\n\t}\n\treturn err\n}\n\nfunc (ht *serverHandlerTransport) adjustWindow(*ServerStream, uint32) {\n}\n\nfunc (ht *serverHandlerTransport) updateWindow(*ServerStream, uint32) {\n}\n\nfunc (ht *serverHandlerTransport) HandleStreams(ctx context.Context, startStream func(*ServerStream)) {\n\t// With this transport type there will be exactly 1 stream: this HTTP request.\n\tvar cancel context.CancelFunc\n\tif ht.timeoutSet {\n\t\tctx, cancel = context.WithTimeout(ctx, ht.timeout)\n\t} else {\n\t\tctx, cancel = context.WithCancel(ctx)\n\t}\n\n\t// requestOver is closed when the status has been written via WriteStatus.\n\trequestOver := make(chan struct{})\n\tgo func() {\n\t\tselect {\n\t\tcase <-requestOver:\n\t\tcase <-ht.closedCh:\n\t\tcase <-ht.req.Context().Done():\n\t\t}\n\t\tcancel()\n\t\tht.Close(errors.New(\"request is done processing\"))\n\t}()\n\n\tctx = metadata.NewIncomingContext(ctx, ht.headerMD)\n\treq := ht.req\n\ts := &ServerStream{\n\t\tStream: Stream{\n\t\t\tid:             0, // irrelevant\n\t\t\tctx:            ctx,\n\t\t\tmethod:         req.URL.Path,\n\t\t\trecvCompress:   req.Header.Get(\"grpc-encoding\"),\n\t\t\tcontentSubtype: ht.contentSubtype,\n\t\t},\n\t\tcancel:           cancel,\n\t\tst:               ht,\n\t\theaderWireLength: 0, // won't have access to header wire length until golang/go#18997.\n\t}\n\ts.Stream.buf.init()\n\ts.readRequester = s\n\ts.trReader = transportReader{\n\t\treader:        recvBufferReader{ctx: s.ctx, ctxDone: s.ctx.Done(), recv: &s.buf},\n\t\twindowHandler: s,\n\t}\n\n\t// readerDone is closed when the Body.Read-ing goroutine exits.\n\treaderDone := make(chan struct{})\n\tgo func() {\n\t\tdefer close(readerDone)\n\n\t\tfor {\n\t\t\tbuf := ht.bufferPool.Get(http2MaxFrameLen)\n\t\t\tn, err := req.Body.Read(*buf)\n\t\t\tif n > 0 {\n\t\t\t\t*buf = (*buf)[:n]\n\t\t\t\ts.buf.put(recvMsg{buffer: mem.NewBuffer(buf, ht.bufferPool)})\n\t\t\t} else {\n\t\t\t\tht.bufferPool.Put(buf)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\ts.buf.put(recvMsg{err: mapRecvMsgError(err)})\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\t// startStream is provided by the *grpc.Server's serveStreams.\n\t// It starts a goroutine serving s and exits immediately.\n\t// The goroutine that is started is the one that then calls\n\t// into ht, calling WriteHeader, Write, WriteStatus, Close, etc.\n\tstartStream(s)\n\n\tht.runStream()\n\tclose(requestOver)\n\n\t// Wait for reading goroutine to finish.\n\treq.Body.Close()\n\t<-readerDone\n}\n\nfunc (ht *serverHandlerTransport) runStream() {\n\tfor {\n\t\tselect {\n\t\tcase fn := <-ht.writes:\n\t\t\tfn()\n\t\tcase <-ht.closedCh:\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (ht *serverHandlerTransport) incrMsgRecv() {}\n\nfunc (ht *serverHandlerTransport) Drain(string) {\n\tpanic(\"Drain() is not implemented\")\n}\n\n// mapRecvMsgError returns the non-nil err into the appropriate\n// error value as expected by callers of *grpc.parser.recvMsg.\n// In particular, in can only be:\n//   - io.EOF\n//   - io.ErrUnexpectedEOF\n//   - of type transport.ConnectionError\n//   - an error from the status package\nfunc mapRecvMsgError(err error) error {\n\tif err == io.EOF || err == io.ErrUnexpectedEOF {\n\t\treturn err\n\t}\n\tif se, ok := err.(http2.StreamError); ok {\n\t\tif code, ok := http2ErrConvTab[se.Code]; ok {\n\t\t\treturn status.Error(code, se.Error())\n\t\t}\n\t}\n\tif strings.Contains(err.Error(), \"body closed by handler\") {\n\t\treturn status.Error(codes.Canceled, err.Error())\n\t}\n\treturn connectionErrorf(true, err, \"%s\", err.Error())\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/http2_client.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net\"\n\t\"net/http\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"golang.org/x/net/http2\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\ticredentials \"google.golang.org/grpc/internal/credentials\"\n\t\"google.golang.org/grpc/internal/grpclog\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\timetadata \"google.golang.org/grpc/internal/metadata\"\n\t\"google.golang.org/grpc/internal/proxyattributes\"\n\tistats \"google.golang.org/grpc/internal/stats\"\n\tistatus \"google.golang.org/grpc/internal/status\"\n\tisyscall \"google.golang.org/grpc/internal/syscall\"\n\t\"google.golang.org/grpc/internal/transport/networktype\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n)\n\n// clientConnectionCounter counts the number of connections a client has\n// initiated (equal to the number of http2Clients created). Must be accessed\n// atomically.\nvar clientConnectionCounter uint64\n\nvar goAwayLoopyWriterTimeout = 5 * time.Second\n\nvar metadataFromOutgoingContextRaw = internal.FromOutgoingContextRaw.(func(context.Context) (metadata.MD, [][]string, bool))\n\n// http2Client implements the ClientTransport interface with HTTP2.\ntype http2Client struct {\n\tlastRead  int64 // Keep this field 64-bit aligned. Accessed atomically.\n\tctx       context.Context\n\tcancel    context.CancelFunc\n\tctxDone   <-chan struct{} // Cache the ctx.Done() chan.\n\tuserAgent string\n\t// address contains the resolver returned address for this transport.\n\t// If the `ServerName` field is set, it takes precedence over `CallHdr.Host`\n\t// passed to `NewStream`, when determining the :authority header.\n\taddress    resolver.Address\n\tmd         metadata.MD\n\tconn       net.Conn // underlying communication channel\n\tloopy      *loopyWriter\n\tremoteAddr net.Addr\n\tlocalAddr  net.Addr\n\tauthInfo   credentials.AuthInfo // auth info about the connection\n\n\treaderDone chan struct{} // sync point to enable testing.\n\twriterDone chan struct{} // sync point to enable testing.\n\t// goAway is closed to notify the upper layer (i.e., addrConn.transportMonitor)\n\t// that the server sent GoAway on this transport.\n\tgoAway        chan struct{}\n\tkeepaliveDone chan struct{} // Closed when the keepalive goroutine exits.\n\tframer        *framer\n\t// controlBuf delivers all the control related tasks (e.g., window\n\t// updates, reset streams, and various settings) to the controller.\n\t// Do not access controlBuf with mu held.\n\tcontrolBuf *controlBuffer\n\tfc         *trInFlow\n\t// The scheme used: https if TLS is on, http otherwise.\n\tscheme string\n\n\tisSecure bool\n\n\tperRPCCreds []credentials.PerRPCCredentials\n\n\tkp               keepalive.ClientParameters\n\tkeepaliveEnabled bool\n\n\tstatsHandler stats.Handler\n\n\tinitialWindowSize int32\n\n\t// configured by peer through SETTINGS_MAX_HEADER_LIST_SIZE\n\tmaxSendHeaderListSize *uint32\n\n\tbdpEst *bdpEstimator\n\n\tmaxConcurrentStreams  uint32\n\tstreamQuota           int64\n\tstreamsQuotaAvailable chan struct{}\n\twaitingStreams        uint32\n\tregisteredCompressors string\n\n\t// Do not access controlBuf with mu held.\n\tmu            sync.Mutex // guard the following variables\n\tnextID        uint32\n\tstate         transportState\n\tactiveStreams map[uint32]*ClientStream\n\t// prevGoAway ID records the Last-Stream-ID in the previous GOAway frame.\n\tprevGoAwayID uint32\n\t// goAwayReason records the http2.ErrCode and debug data received with the\n\t// GoAway frame.\n\tgoAwayReason GoAwayReason\n\t// goAwayDebugMessage contains a detailed human readable string about a\n\t// GoAway frame, useful for error messages.\n\tgoAwayDebugMessage string\n\t// A condition variable used to signal when the keepalive goroutine should\n\t// go dormant. The condition for dormancy is based on the number of active\n\t// streams and the `PermitWithoutStream` keepalive client parameter. And\n\t// since the number of active streams is guarded by the above mutex, we use\n\t// the same for this condition variable as well.\n\tkpDormancyCond *sync.Cond\n\t// A boolean to track whether the keepalive goroutine is dormant or not.\n\t// This is checked before attempting to signal the above condition\n\t// variable.\n\tkpDormant bool\n\n\tchannelz *channelz.Socket\n\n\tonClose func(GoAwayReason)\n\n\tbufferPool mem.BufferPool\n\n\tconnectionID uint64\n\tlogger       *grpclog.PrefixLogger\n}\n\nfunc dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr resolver.Address, grpcUA string) (net.Conn, error) {\n\taddress := addr.Addr\n\tnetworkType, ok := networktype.Get(addr)\n\tif fn != nil {\n\t\t// Special handling for unix scheme with custom dialer. Back in the day,\n\t\t// we did not have a unix resolver and therefore targets with a unix\n\t\t// scheme would end up using the passthrough resolver. So, user's used a\n\t\t// custom dialer in this case and expected the original dial target to\n\t\t// be passed to the custom dialer. Now, we have a unix resolver. But if\n\t\t// a custom dialer is specified, we want to retain the old behavior in\n\t\t// terms of the address being passed to the custom dialer.\n\t\tif networkType == \"unix\" && !strings.HasPrefix(address, \"\\x00\") {\n\t\t\t// Supported unix targets are either \"unix://absolute-path\" or\n\t\t\t// \"unix:relative-path\".\n\t\t\tif filepath.IsAbs(address) {\n\t\t\t\treturn fn(ctx, \"unix://\"+address)\n\t\t\t}\n\t\t\treturn fn(ctx, \"unix:\"+address)\n\t\t}\n\t\treturn fn(ctx, address)\n\t}\n\tif !ok {\n\t\tnetworkType, address = ParseDialTarget(address)\n\t}\n\tif opts, present := proxyattributes.Get(addr); present {\n\t\treturn proxyDial(ctx, addr, grpcUA, opts)\n\t}\n\treturn internal.NetDialerWithTCPKeepalive().DialContext(ctx, networkType, address)\n}\n\nfunc isTemporary(err error) bool {\n\tswitch err := err.(type) {\n\tcase interface {\n\t\tTemporary() bool\n\t}:\n\t\treturn err.Temporary()\n\tcase interface {\n\t\tTimeout() bool\n\t}:\n\t\t// Timeouts may be resolved upon retry, and are thus treated as\n\t\t// temporary.\n\t\treturn err.Timeout()\n\t}\n\treturn true\n}\n\n// NewHTTP2Client constructs a connected ClientTransport to addr based on HTTP2\n// and starts to receive messages on it. Non-nil error returns if construction\n// fails.\nfunc NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts ConnectOptions, onClose func(GoAwayReason)) (_ ClientTransport, err error) {\n\tscheme := \"http\"\n\tctx, cancel := context.WithCancel(ctx)\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tcancel()\n\t\t}\n\t}()\n\n\t// gRPC, resolver, balancer etc. can specify arbitrary data in the\n\t// Attributes field of resolver.Address, which is shoved into connectCtx\n\t// and passed to the dialer and credential handshaker. This makes it possible for\n\t// address specific arbitrary data to reach custom dialers and credential handshakers.\n\tconnectCtx = icredentials.NewClientHandshakeInfoContext(connectCtx, credentials.ClientHandshakeInfo{Attributes: addr.Attributes})\n\n\tconn, err := dial(connectCtx, opts.Dialer, addr, opts.UserAgent)\n\tif err != nil {\n\t\tif opts.FailOnNonTempDialError {\n\t\t\treturn nil, connectionErrorf(isTemporary(err), err, \"transport: error while dialing: %v\", err)\n\t\t}\n\t\treturn nil, connectionErrorf(true, err, \"transport: Error while dialing: %v\", err)\n\t}\n\n\t// Any further errors will close the underlying connection\n\tdefer func(conn net.Conn) {\n\t\tif err != nil {\n\t\t\tconn.Close()\n\t\t}\n\t}(conn)\n\n\t// The following defer and goroutine monitor the connectCtx for cancellation\n\t// and deadline.  On context expiration, the connection is hard closed and\n\t// this function will naturally fail as a result.  Otherwise, the defer\n\t// waits for the goroutine to exit to prevent the context from being\n\t// monitored (and to prevent the connection from ever being closed) after\n\t// returning from this function.\n\tctxMonitorDone := grpcsync.NewEvent()\n\tnewClientCtx, newClientDone := context.WithCancel(connectCtx)\n\tdefer func() {\n\t\tnewClientDone()         // Awaken the goroutine below if connectCtx hasn't expired.\n\t\t<-ctxMonitorDone.Done() // Wait for the goroutine below to exit.\n\t}()\n\tgo func(conn net.Conn) {\n\t\tdefer ctxMonitorDone.Fire() // Signal this goroutine has exited.\n\t\t<-newClientCtx.Done()       // Block until connectCtx expires or the defer above executes.\n\t\tif err := connectCtx.Err(); err != nil {\n\t\t\t// connectCtx expired before exiting the function.  Hard close the connection.\n\t\t\tif logger.V(logLevel) {\n\t\t\t\tlogger.Infof(\"Aborting due to connect deadline expiring: %v\", err)\n\t\t\t}\n\t\t\tconn.Close()\n\t\t}\n\t}(conn)\n\n\tkp := opts.KeepaliveParams\n\t// Validate keepalive parameters.\n\tif kp.Time == 0 {\n\t\tkp.Time = defaultClientKeepaliveTime\n\t}\n\tif kp.Timeout == 0 {\n\t\tkp.Timeout = defaultClientKeepaliveTimeout\n\t}\n\tkeepaliveEnabled := false\n\tif kp.Time != infinity {\n\t\tif err = isyscall.SetTCPUserTimeout(conn, kp.Timeout); err != nil {\n\t\t\treturn nil, connectionErrorf(false, err, \"transport: failed to set TCP_USER_TIMEOUT: %v\", err)\n\t\t}\n\t\tkeepaliveEnabled = true\n\t}\n\tvar (\n\t\tisSecure bool\n\t\tauthInfo credentials.AuthInfo\n\t)\n\ttransportCreds := opts.TransportCredentials\n\tperRPCCreds := opts.PerRPCCredentials\n\n\tif b := opts.CredsBundle; b != nil {\n\t\tif t := b.TransportCredentials(); t != nil {\n\t\t\ttransportCreds = t\n\t\t}\n\t\tif t := b.PerRPCCredentials(); t != nil {\n\t\t\tperRPCCreds = append(perRPCCreds, t)\n\t\t}\n\t}\n\tif transportCreds != nil {\n\t\tconn, authInfo, err = transportCreds.ClientHandshake(connectCtx, addr.ServerName, conn)\n\t\tif err != nil {\n\t\t\treturn nil, connectionErrorf(isTemporary(err), err, \"transport: authentication handshake failed: %v\", err)\n\t\t}\n\t\tfor _, cd := range perRPCCreds {\n\t\t\tif cd.RequireTransportSecurity() {\n\t\t\t\tif ci, ok := authInfo.(interface {\n\t\t\t\t\tGetCommonAuthInfo() credentials.CommonAuthInfo\n\t\t\t\t}); ok {\n\t\t\t\t\tsecLevel := ci.GetCommonAuthInfo().SecurityLevel\n\t\t\t\t\tif secLevel != credentials.InvalidSecurityLevel && secLevel < credentials.PrivacyAndIntegrity {\n\t\t\t\t\t\treturn nil, connectionErrorf(true, nil, \"transport: cannot send secure credentials on an insecure connection\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tisSecure = true\n\t\tif transportCreds.Info().SecurityProtocol == \"tls\" {\n\t\t\tscheme = \"https\"\n\t\t}\n\t}\n\ticwz := int32(initialWindowSize)\n\tif opts.InitialConnWindowSize >= defaultWindowSize {\n\t\ticwz = opts.InitialConnWindowSize\n\t}\n\twriteBufSize := opts.WriteBufferSize\n\treadBufSize := opts.ReadBufferSize\n\tmaxHeaderListSize := defaultClientMaxHeaderListSize\n\tif opts.MaxHeaderListSize != nil {\n\t\tmaxHeaderListSize = *opts.MaxHeaderListSize\n\t}\n\n\tt := &http2Client{\n\t\tctx:                   ctx,\n\t\tctxDone:               ctx.Done(), // Cache Done chan.\n\t\tcancel:                cancel,\n\t\tuserAgent:             opts.UserAgent,\n\t\tregisteredCompressors: grpcutil.RegisteredCompressors(),\n\t\taddress:               addr,\n\t\tconn:                  conn,\n\t\tremoteAddr:            conn.RemoteAddr(),\n\t\tlocalAddr:             conn.LocalAddr(),\n\t\tauthInfo:              authInfo,\n\t\treaderDone:            make(chan struct{}),\n\t\twriterDone:            make(chan struct{}),\n\t\tgoAway:                make(chan struct{}),\n\t\tkeepaliveDone:         make(chan struct{}),\n\t\tframer:                newFramer(conn, writeBufSize, readBufSize, opts.SharedWriteBuffer, maxHeaderListSize, opts.BufferPool),\n\t\tfc:                    &trInFlow{limit: uint32(icwz)},\n\t\tscheme:                scheme,\n\t\tactiveStreams:         make(map[uint32]*ClientStream),\n\t\tisSecure:              isSecure,\n\t\tperRPCCreds:           perRPCCreds,\n\t\tkp:                    kp,\n\t\tstatsHandler:          istats.NewCombinedHandler(opts.StatsHandlers...),\n\t\tinitialWindowSize:     initialWindowSize,\n\t\tnextID:                1,\n\t\tmaxConcurrentStreams:  defaultMaxStreamsClient,\n\t\tstreamQuota:           defaultMaxStreamsClient,\n\t\tstreamsQuotaAvailable: make(chan struct{}, 1),\n\t\tkeepaliveEnabled:      keepaliveEnabled,\n\t\tbufferPool:            opts.BufferPool,\n\t\tonClose:               onClose,\n\t}\n\tvar czSecurity credentials.ChannelzSecurityValue\n\tif au, ok := authInfo.(credentials.ChannelzSecurityInfo); ok {\n\t\tczSecurity = au.GetSecurityValue()\n\t}\n\tt.channelz = channelz.RegisterSocket(\n\t\t&channelz.Socket{\n\t\t\tSocketType:       channelz.SocketTypeNormal,\n\t\t\tParent:           opts.ChannelzParent,\n\t\t\tSocketMetrics:    channelz.SocketMetrics{},\n\t\t\tEphemeralMetrics: t.socketMetrics,\n\t\t\tLocalAddr:        t.localAddr,\n\t\t\tRemoteAddr:       t.remoteAddr,\n\t\t\tSocketOptions:    channelz.GetSocketOption(t.conn),\n\t\t\tSecurity:         czSecurity,\n\t\t})\n\tt.logger = prefixLoggerForClientTransport(t)\n\t// Add peer information to the http2client context.\n\tt.ctx = peer.NewContext(t.ctx, t.Peer())\n\n\tif md, ok := addr.Metadata.(*metadata.MD); ok {\n\t\tt.md = *md\n\t} else if md := imetadata.Get(addr); md != nil {\n\t\tt.md = md\n\t}\n\tt.controlBuf = newControlBuffer(t.ctxDone)\n\tif opts.InitialWindowSize >= defaultWindowSize {\n\t\tt.initialWindowSize = opts.InitialWindowSize\n\t}\n\tif !opts.StaticWindowSize {\n\t\tt.bdpEst = &bdpEstimator{\n\t\t\tbdp:               initialWindowSize,\n\t\t\tupdateFlowControl: t.updateFlowControl,\n\t\t}\n\t}\n\tif t.statsHandler != nil {\n\t\tt.ctx = t.statsHandler.TagConn(t.ctx, &stats.ConnTagInfo{\n\t\t\tRemoteAddr: t.remoteAddr,\n\t\t\tLocalAddr:  t.localAddr,\n\t\t})\n\t\tt.statsHandler.HandleConn(t.ctx, &stats.ConnBegin{\n\t\t\tClient: true,\n\t\t})\n\t}\n\tif t.keepaliveEnabled {\n\t\tt.kpDormancyCond = sync.NewCond(&t.mu)\n\t\tgo t.keepalive()\n\t}\n\n\t// Start the reader goroutine for incoming messages. Each transport has a\n\t// dedicated goroutine which reads HTTP2 frames from the network. Then it\n\t// dispatches the frame to the corresponding stream entity.  When the\n\t// server preface is received, readerErrCh is closed.  If an error occurs\n\t// first, an error is pushed to the channel.  This must be checked before\n\t// returning from this function.\n\treaderErrCh := make(chan error, 1)\n\tgo t.reader(readerErrCh)\n\tdefer func() {\n\t\tif err != nil {\n\t\t\t// writerDone should be closed since the loopy goroutine\n\t\t\t// wouldn't have started in the case this function returns an error.\n\t\t\tclose(t.writerDone)\n\t\t\tt.Close(err)\n\t\t}\n\t}()\n\n\t// Send connection preface to server.\n\tn, err := t.conn.Write(clientPreface)\n\tif err != nil {\n\t\terr = connectionErrorf(true, err, \"transport: failed to write client preface: %v\", err)\n\t\treturn nil, err\n\t}\n\tif n != len(clientPreface) {\n\t\terr = connectionErrorf(true, nil, \"transport: preface mismatch, wrote %d bytes; want %d\", n, len(clientPreface))\n\t\treturn nil, err\n\t}\n\tvar ss []http2.Setting\n\n\tif t.initialWindowSize != defaultWindowSize {\n\t\tss = append(ss, http2.Setting{\n\t\t\tID:  http2.SettingInitialWindowSize,\n\t\t\tVal: uint32(t.initialWindowSize),\n\t\t})\n\t}\n\tif opts.MaxHeaderListSize != nil {\n\t\tss = append(ss, http2.Setting{\n\t\t\tID:  http2.SettingMaxHeaderListSize,\n\t\t\tVal: *opts.MaxHeaderListSize,\n\t\t})\n\t}\n\terr = t.framer.fr.WriteSettings(ss...)\n\tif err != nil {\n\t\terr = connectionErrorf(true, err, \"transport: failed to write initial settings frame: %v\", err)\n\t\treturn nil, err\n\t}\n\t// Adjust the connection flow control window if needed.\n\tif delta := uint32(icwz - defaultWindowSize); delta > 0 {\n\t\tif err := t.framer.fr.WriteWindowUpdate(0, delta); err != nil {\n\t\t\terr = connectionErrorf(true, err, \"transport: failed to write window update: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tt.connectionID = atomic.AddUint64(&clientConnectionCounter, 1)\n\n\tif err := t.framer.writer.Flush(); err != nil {\n\t\treturn nil, err\n\t}\n\t// Block until the server preface is received successfully or an error occurs.\n\tif err = <-readerErrCh; err != nil {\n\t\treturn nil, err\n\t}\n\tgo func() {\n\t\tt.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger, t.outgoingGoAwayHandler, t.bufferPool)\n\t\tif err := t.loopy.run(); !isIOError(err) {\n\t\t\t// Immediately close the connection, as the loopy writer returns\n\t\t\t// when there are no more active streams and we were draining (the\n\t\t\t// server sent a GOAWAY).  For I/O errors, the reader will hit it\n\t\t\t// after draining any remaining incoming data.\n\t\t\tt.conn.Close()\n\t\t}\n\t\tclose(t.writerDone)\n\t}()\n\treturn t, nil\n}\n\nfunc (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) *ClientStream {\n\t// TODO(zhaoq): Handle uint32 overflow of Stream.id.\n\ts := &ClientStream{\n\t\tStream: Stream{\n\t\t\tmethod:         callHdr.Method,\n\t\t\tsendCompress:   callHdr.SendCompress,\n\t\t\tcontentSubtype: callHdr.ContentSubtype,\n\t\t},\n\t\tct:           t,\n\t\tdone:         make(chan struct{}),\n\t\theaderChan:   make(chan struct{}),\n\t\tdoneFunc:     callHdr.DoneFunc,\n\t\tstatsHandler: handler,\n\t}\n\ts.Stream.buf.init()\n\ts.Stream.wq.init(defaultWriteQuota, s.done)\n\ts.readRequester = s\n\t// The client side stream context should have exactly the same life cycle with the user provided context.\n\t// That means, s.ctx should be read-only. And s.ctx is done iff ctx is done.\n\t// So we use the original context here instead of creating a copy.\n\ts.ctx = ctx\n\ts.trReader = transportReader{\n\t\treader: recvBufferReader{\n\t\t\tctx:          s.ctx,\n\t\t\tctxDone:      s.ctx.Done(),\n\t\t\trecv:         &s.buf,\n\t\t\tclientStream: s,\n\t\t},\n\t\twindowHandler: s,\n\t}\n\treturn s\n}\n\nfunc (t *http2Client) Peer() *peer.Peer {\n\treturn &peer.Peer{\n\t\tAddr:      t.remoteAddr,\n\t\tAuthInfo:  t.authInfo, // Can be nil\n\t\tLocalAddr: t.localAddr,\n\t}\n}\n\n// OutgoingGoAwayHandler writes a GOAWAY to the connection.  Always returns (false, err) as we want the GoAway\n// to be the last frame loopy writes to the transport.\nfunc (t *http2Client) outgoingGoAwayHandler(g *goAway) (bool, error) {\n\tt.mu.Lock()\n\tmaxStreamID := t.nextID - 2\n\tt.mu.Unlock()\n\tif err := t.framer.fr.WriteGoAway(maxStreamID, http2.ErrCodeNo, g.debugData); err != nil {\n\t\treturn false, err\n\t}\n\treturn false, g.closeConn\n}\n\nfunc (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr) ([]hpack.HeaderField, error) {\n\taud := t.createAudience(callHdr)\n\tri := credentials.RequestInfo{\n\t\tMethod:   callHdr.Method,\n\t\tAuthInfo: t.authInfo,\n\t}\n\tctxWithRequestInfo := credentials.NewContextWithRequestInfo(ctx, ri)\n\tauthData, err := t.getTrAuthData(ctxWithRequestInfo, aud)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcallAuthData, err := t.getCallAuthData(ctxWithRequestInfo, aud, callHdr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields\n\t// first and create a slice of that exact size.\n\t// Make the slice of certain predictable size to reduce allocations made by append.\n\thfLen := 7 // :method, :scheme, :path, :authority, content-type, user-agent, te\n\thfLen += len(authData) + len(callAuthData)\n\tregisteredCompressors := t.registeredCompressors\n\tif callHdr.AcceptedCompressors != nil {\n\t\tregisteredCompressors = *callHdr.AcceptedCompressors\n\t}\n\tif callHdr.PreviousAttempts > 0 {\n\t\thfLen++\n\t}\n\tif callHdr.SendCompress != \"\" {\n\t\thfLen++\n\t}\n\tif registeredCompressors != \"\" {\n\t\thfLen++\n\t}\n\tif _, ok := ctx.Deadline(); ok {\n\t\thfLen++\n\t}\n\theaderFields := make([]hpack.HeaderField, 0, hfLen)\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \":method\", Value: \"POST\"})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \":scheme\", Value: t.scheme})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \":path\", Value: callHdr.Method})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \":authority\", Value: callHdr.Host})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"content-type\", Value: grpcutil.ContentType(callHdr.ContentSubtype)})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"user-agent\", Value: t.userAgent})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"te\", Value: \"trailers\"})\n\tif callHdr.PreviousAttempts > 0 {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-previous-rpc-attempts\", Value: strconv.Itoa(callHdr.PreviousAttempts)})\n\t}\n\n\tif callHdr.SendCompress != \"\" {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-encoding\", Value: callHdr.SendCompress})\n\t\t// Include the outgoing compressor name when compressor is not registered\n\t\t// via encoding.RegisterCompressor. This is possible when client uses\n\t\t// WithCompressor dial option.\n\t\tif !grpcutil.IsCompressorNameRegistered(callHdr.SendCompress) {\n\t\t\tif registeredCompressors != \"\" {\n\t\t\t\tregisteredCompressors += \",\"\n\t\t\t}\n\t\t\tregisteredCompressors += callHdr.SendCompress\n\t\t}\n\t}\n\n\tif registeredCompressors != \"\" {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-accept-encoding\", Value: registeredCompressors})\n\t}\n\tif dl, ok := ctx.Deadline(); ok {\n\t\t// Send out timeout regardless its value. The server can detect timeout context by itself.\n\t\t// TODO(mmukhi): Perhaps this field should be updated when actually writing out to the wire.\n\t\ttimeout := time.Until(dl)\n\t\tif timeout <= 0 {\n\t\t\treturn nil, status.Error(codes.DeadlineExceeded, context.DeadlineExceeded.Error())\n\t\t}\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-timeout\", Value: grpcutil.EncodeDuration(timeout)})\n\t}\n\tfor k, v := range authData {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t}\n\tfor k, v := range callAuthData {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t}\n\n\tif md, added, ok := metadataFromOutgoingContextRaw(ctx); ok {\n\t\tvar k string\n\t\tfor k, vv := range md {\n\t\t\t// HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set.\n\t\t\tif isReservedHeader(k) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, v := range vv {\n\t\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t\t\t}\n\t\t}\n\t\tfor _, vv := range added {\n\t\t\tfor i, v := range vv {\n\t\t\t\tif i%2 == 0 {\n\t\t\t\t\tk = strings.ToLower(v)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set.\n\t\t\t\tif isReservedHeader(k) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t\t\t}\n\t\t}\n\t}\n\tfor k, vv := range t.md {\n\t\tif isReservedHeader(k) {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t\t}\n\t}\n\treturn headerFields, nil\n}\n\nfunc (t *http2Client) createAudience(callHdr *CallHdr) string {\n\t// Create an audience string only if needed.\n\tif len(t.perRPCCreds) == 0 && callHdr.Creds == nil {\n\t\treturn \"\"\n\t}\n\t// Construct URI required to get auth request metadata.\n\t// Omit port if it is the default one.\n\thost := strings.TrimSuffix(callHdr.Host, \":443\")\n\tpos := strings.LastIndex(callHdr.Method, \"/\")\n\tif pos == -1 {\n\t\tpos = len(callHdr.Method)\n\t}\n\treturn \"https://\" + host + callHdr.Method[:pos]\n}\n\nfunc (t *http2Client) getTrAuthData(ctx context.Context, audience string) (map[string]string, error) {\n\tif len(t.perRPCCreds) == 0 {\n\t\treturn nil, nil\n\t}\n\tauthData := map[string]string{}\n\tfor _, c := range t.perRPCCreds {\n\t\tdata, err := c.GetRequestMetadata(ctx, audience)\n\t\tif err != nil {\n\t\t\tif st, ok := status.FromError(err); ok {\n\t\t\t\t// Restrict the code to the list allowed by gRFC A54.\n\t\t\t\tif istatus.IsRestrictedControlPlaneCode(st) {\n\t\t\t\t\terr = status.Errorf(codes.Internal, \"transport: received per-RPC creds error with illegal status: %v\", err)\n\t\t\t\t}\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\treturn nil, status.Errorf(codes.Unauthenticated, \"transport: per-RPC creds failed due to error: %v\", err)\n\t\t}\n\t\tfor k, v := range data {\n\t\t\t// Capital header names are illegal in HTTP/2.\n\t\t\tk = strings.ToLower(k)\n\t\t\tauthData[k] = v\n\t\t}\n\t}\n\treturn authData, nil\n}\n\nfunc (t *http2Client) getCallAuthData(ctx context.Context, audience string, callHdr *CallHdr) (map[string]string, error) {\n\tvar callAuthData map[string]string\n\t// Check if credentials.PerRPCCredentials were provided via call options.\n\t// Note: if these credentials are provided both via dial options and call\n\t// options, then both sets of credentials will be applied.\n\tif callCreds := callHdr.Creds; callCreds != nil {\n\t\tif callCreds.RequireTransportSecurity() {\n\t\t\tri, _ := credentials.RequestInfoFromContext(ctx)\n\t\t\tif !t.isSecure || credentials.CheckSecurityLevel(ri.AuthInfo, credentials.PrivacyAndIntegrity) != nil {\n\t\t\t\treturn nil, status.Error(codes.Unauthenticated, \"transport: cannot send secure credentials on an insecure connection\")\n\t\t\t}\n\t\t}\n\t\tdata, err := callCreds.GetRequestMetadata(ctx, audience)\n\t\tif err != nil {\n\t\t\tif st, ok := status.FromError(err); ok {\n\t\t\t\t// Restrict the code to the list allowed by gRFC A54.\n\t\t\t\tif istatus.IsRestrictedControlPlaneCode(st) {\n\t\t\t\t\terr = status.Errorf(codes.Internal, \"transport: received per-RPC creds error with illegal status: %v\", err)\n\t\t\t\t}\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn nil, status.Errorf(codes.Internal, \"transport: per-RPC creds failed due to error: %v\", err)\n\t\t}\n\t\tcallAuthData = make(map[string]string, len(data))\n\t\tfor k, v := range data {\n\t\t\t// Capital header names are illegal in HTTP/2\n\t\t\tk = strings.ToLower(k)\n\t\t\tcallAuthData[k] = v\n\t\t}\n\t}\n\treturn callAuthData, nil\n}\n\n// NewStreamError wraps an error and reports additional information.  Typically\n// NewStream errors result in transparent retry, as they mean nothing went onto\n// the wire.  However, there are two notable exceptions:\n//\n//  1. If the stream headers violate the max header list size allowed by the\n//     server.  It's possible this could succeed on another transport, even if\n//     it's unlikely, but do not transparently retry.\n//  2. If the credentials errored when requesting their headers.  In this case,\n//     it's possible a retry can fix the problem, but indefinitely transparently\n//     retrying is not appropriate as it is likely the credentials, if they can\n//     eventually succeed, would need I/O to do so.\ntype NewStreamError struct {\n\tErr error\n\n\tAllowTransparentRetry bool\n}\n\nfunc (e NewStreamError) Error() string {\n\treturn e.Err.Error()\n}\n\n// NewStream creates a stream and registers it into the transport as \"active\"\n// streams.  All non-nil errors returned will be *NewStreamError.\nfunc (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) (*ClientStream, error) {\n\tctx = peer.NewContext(ctx, t.Peer())\n\n\t// ServerName field of the resolver returned address takes precedence over\n\t// Host field of CallHdr to determine the :authority header. This is because,\n\t// the ServerName field takes precedence for server authentication during\n\t// TLS handshake, and the :authority header should match the value used\n\t// for server authentication.\n\tif t.address.ServerName != \"\" {\n\t\tnewCallHdr := *callHdr\n\t\tnewCallHdr.Host = t.address.ServerName\n\t\tcallHdr = &newCallHdr\n\t}\n\n\t// The authority specified via the `CallAuthority` CallOption takes the\n\t// highest precedence when determining the `:authority` header. It overrides\n\t// any value present in the Host field of CallHdr. Before applying this\n\t// override, the authority string is validated. If the credentials do not\n\t// implement the AuthorityValidator interface, or if validation fails, the\n\t// RPC is failed with a status code of `UNAVAILABLE`.\n\tif callHdr.Authority != \"\" {\n\t\tauth, ok := t.authInfo.(credentials.AuthorityValidator)\n\t\tif !ok {\n\t\t\treturn nil, &NewStreamError{Err: status.Errorf(codes.Unavailable, \"credentials type %q does not implement the AuthorityValidator interface, but authority override specified with CallAuthority call option\", t.authInfo.AuthType())}\n\t\t}\n\t\tif err := auth.ValidateAuthority(callHdr.Authority); err != nil {\n\t\t\treturn nil, &NewStreamError{Err: status.Errorf(codes.Unavailable, \"failed to validate authority %q : %v\", callHdr.Authority, err)}\n\t\t}\n\t\tnewCallHdr := *callHdr\n\t\tnewCallHdr.Host = callHdr.Authority\n\t\tcallHdr = &newCallHdr\n\t}\n\n\theaderFields, err := t.createHeaderFields(ctx, callHdr)\n\tif err != nil {\n\t\treturn nil, &NewStreamError{Err: err, AllowTransparentRetry: false}\n\t}\n\ts := t.newStream(ctx, callHdr, handler)\n\tcleanup := func(err error) {\n\t\tif s.swapState(streamDone) == streamDone {\n\t\t\t// If it was already done, return.\n\t\t\treturn\n\t\t}\n\t\t// The stream was unprocessed by the server.\n\t\ts.unprocessed.Store(true)\n\t\ts.write(recvMsg{err: err})\n\t\tclose(s.done)\n\t\t// If headerChan isn't closed, then close it.\n\t\tif atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) {\n\t\t\tclose(s.headerChan)\n\t\t}\n\t}\n\thdr := &headerFrame{\n\t\thf:        headerFields,\n\t\tendStream: false,\n\t\tinitStream: func(uint32) error {\n\t\t\tt.mu.Lock()\n\t\t\t// TODO: handle transport closure in loopy instead and remove this\n\t\t\t// initStream is never called when transport is draining.\n\t\t\tif t.state == closing {\n\t\t\t\tt.mu.Unlock()\n\t\t\t\tcleanup(ErrConnClosing)\n\t\t\t\treturn ErrConnClosing\n\t\t\t}\n\t\t\tif channelz.IsOn() {\n\t\t\t\tt.channelz.SocketMetrics.StreamsStarted.Add(1)\n\t\t\t\tt.channelz.SocketMetrics.LastLocalStreamCreatedTimestamp.Store(time.Now().UnixNano())\n\t\t\t}\n\t\t\t// If the keepalive goroutine has gone dormant, wake it up.\n\t\t\tif t.kpDormant {\n\t\t\t\tt.kpDormancyCond.Signal()\n\t\t\t}\n\t\t\tt.mu.Unlock()\n\t\t\treturn nil\n\t\t},\n\t\tonOrphaned: cleanup,\n\t\twq:         &s.wq,\n\t}\n\tfirstTry := true\n\tvar ch chan struct{}\n\ttransportDrainRequired := false\n\tcheckForStreamQuota := func() bool {\n\t\tif t.streamQuota <= 0 { // Can go negative if server decreases it.\n\t\t\tif firstTry {\n\t\t\t\tt.waitingStreams++\n\t\t\t}\n\t\t\tch = t.streamsQuotaAvailable\n\t\t\treturn false\n\t\t}\n\t\tif !firstTry {\n\t\t\tt.waitingStreams--\n\t\t}\n\t\tt.streamQuota--\n\n\t\tt.mu.Lock()\n\t\tif t.state == draining || t.activeStreams == nil { // Can be niled from Close().\n\t\t\tt.mu.Unlock()\n\t\t\treturn false // Don't create a stream if the transport is already closed.\n\t\t}\n\n\t\thdr.streamID = t.nextID\n\t\tt.nextID += 2\n\t\t// Drain client transport if nextID > MaxStreamID which signals gRPC that\n\t\t// the connection is closed and a new one must be created for subsequent RPCs.\n\t\ttransportDrainRequired = t.nextID > MaxStreamID\n\n\t\ts.id = hdr.streamID\n\t\ts.fc = inFlow{limit: uint32(t.initialWindowSize)}\n\t\tt.activeStreams[s.id] = s\n\t\tt.mu.Unlock()\n\n\t\tif t.streamQuota > 0 && t.waitingStreams > 0 {\n\t\t\tselect {\n\t\t\tcase t.streamsQuotaAvailable <- struct{}{}:\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\tvar hdrListSizeErr error\n\tcheckForHeaderListSize := func() bool {\n\t\tif t.maxSendHeaderListSize == nil {\n\t\t\treturn true\n\t\t}\n\t\tvar sz int64\n\t\tfor _, f := range hdr.hf {\n\t\t\tif sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) {\n\t\t\t\thdrListSizeErr = status.Errorf(codes.Internal, \"header list size to send violates the maximum size (%d bytes) set by server\", *t.maxSendHeaderListSize)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\tfor {\n\t\tsuccess, err := t.controlBuf.executeAndPut(func() bool {\n\t\t\treturn checkForHeaderListSize() && checkForStreamQuota()\n\t\t}, hdr)\n\t\tif err != nil {\n\t\t\t// Connection closed.\n\t\t\treturn nil, &NewStreamError{Err: err, AllowTransparentRetry: true}\n\t\t}\n\t\tif success {\n\t\t\tbreak\n\t\t}\n\t\tif hdrListSizeErr != nil {\n\t\t\treturn nil, &NewStreamError{Err: hdrListSizeErr}\n\t\t}\n\t\tfirstTry = false\n\t\tselect {\n\t\tcase <-ch:\n\t\tcase <-ctx.Done():\n\t\t\treturn nil, &NewStreamError{Err: ContextErr(ctx.Err())}\n\t\tcase <-t.goAway:\n\t\t\treturn nil, &NewStreamError{Err: errStreamDrain, AllowTransparentRetry: true}\n\t\tcase <-t.ctx.Done():\n\t\t\treturn nil, &NewStreamError{Err: ErrConnClosing, AllowTransparentRetry: true}\n\t\t}\n\t}\n\tif s.statsHandler != nil {\n\t\theader, ok := metadata.FromOutgoingContext(ctx)\n\t\tif ok {\n\t\t\theader.Set(\"user-agent\", t.userAgent)\n\t\t} else {\n\t\t\theader = metadata.Pairs(\"user-agent\", t.userAgent)\n\t\t}\n\t\t// Note: The header fields are compressed with hpack after this call returns.\n\t\t// No WireLength field is set here.\n\t\ts.statsHandler.HandleRPC(s.ctx, &stats.OutHeader{\n\t\t\tClient:      true,\n\t\t\tFullMethod:  callHdr.Method,\n\t\t\tRemoteAddr:  t.remoteAddr,\n\t\t\tLocalAddr:   t.localAddr,\n\t\t\tCompression: callHdr.SendCompress,\n\t\t\tHeader:      header,\n\t\t})\n\t}\n\tif transportDrainRequired {\n\t\tif t.logger.V(logLevel) {\n\t\t\tt.logger.Infof(\"Draining transport: t.nextID > MaxStreamID\")\n\t\t}\n\t\tt.GracefulClose()\n\t}\n\treturn s, nil\n}\n\nfunc (t *http2Client) closeStream(s *ClientStream, err error, rst bool, rstCode http2.ErrCode, st *status.Status, mdata map[string][]string, eosReceived bool) {\n\t// Set stream status to done.\n\tif s.swapState(streamDone) == streamDone {\n\t\t// If it was already done, return.  If multiple closeStream calls\n\t\t// happen simultaneously, wait for the first to finish.\n\t\t<-s.done\n\t\treturn\n\t}\n\t// status and trailers can be updated here without any synchronization because the stream goroutine will\n\t// only read it after it sees an io.EOF error from read or write and we'll write those errors\n\t// only after updating this.\n\ts.status = st\n\tif len(mdata) > 0 {\n\t\ts.trailer = mdata\n\t}\n\tif err != nil {\n\t\t// This will unblock reads eventually.\n\t\ts.write(recvMsg{err: err})\n\t}\n\t// If headerChan isn't closed, then close it.\n\tif atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) {\n\t\ts.noHeaders = true\n\t\tclose(s.headerChan)\n\t}\n\tcleanup := &cleanupStream{\n\t\tstreamID: s.id,\n\t\tonWrite: func() {\n\t\t\tt.mu.Lock()\n\t\t\tif t.activeStreams != nil {\n\t\t\t\tdelete(t.activeStreams, s.id)\n\t\t\t}\n\t\t\tt.mu.Unlock()\n\t\t\tif channelz.IsOn() {\n\t\t\t\tif eosReceived {\n\t\t\t\t\tt.channelz.SocketMetrics.StreamsSucceeded.Add(1)\n\t\t\t\t} else {\n\t\t\t\t\tt.channelz.SocketMetrics.StreamsFailed.Add(1)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\trst:     rst,\n\t\trstCode: rstCode,\n\t}\n\taddBackStreamQuota := func() bool {\n\t\tt.streamQuota++\n\t\tif t.streamQuota > 0 && t.waitingStreams > 0 {\n\t\t\tselect {\n\t\t\tcase t.streamsQuotaAvailable <- struct{}{}:\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\tt.controlBuf.executeAndPut(addBackStreamQuota, cleanup)\n\t// This will unblock write.\n\tclose(s.done)\n\tif s.doneFunc != nil {\n\t\ts.doneFunc()\n\t}\n}\n\n// Close kicks off the shutdown process of the transport. This should be called\n// only once on a transport. Once it is called, the transport should not be\n// accessed anymore.\nfunc (t *http2Client) Close(err error) {\n\tt.conn.SetWriteDeadline(time.Now().Add(time.Second * 10))\n\t// For background on the deadline value chosen here, see\n\t// https://github.com/grpc/grpc-go/issues/8425#issuecomment-3057938248 .\n\tt.conn.SetReadDeadline(time.Now().Add(time.Second))\n\tt.mu.Lock()\n\t// Make sure we only close once.\n\tif t.state == closing {\n\t\tt.mu.Unlock()\n\t\treturn\n\t}\n\tif t.logger.V(logLevel) {\n\t\tt.logger.Infof(\"Closing: %v\", err)\n\t}\n\t// Call t.onClose ASAP to prevent the client from attempting to create new\n\t// streams.\n\tif t.state != draining {\n\t\tt.onClose(GoAwayInvalid)\n\t}\n\tt.state = closing\n\tstreams := t.activeStreams\n\tt.activeStreams = nil\n\tif t.kpDormant {\n\t\t// If the keepalive goroutine is blocked on this condition variable, we\n\t\t// should unblock it so that the goroutine eventually exits.\n\t\tt.kpDormancyCond.Signal()\n\t}\n\t// Append info about previous goaways if there were any, since this may be important\n\t// for understanding the root cause for this connection to be closed.\n\tgoAwayDebugMessage := t.goAwayDebugMessage\n\tt.mu.Unlock()\n\n\t// Per HTTP/2 spec, a GOAWAY frame must be sent before closing the\n\t// connection. See https://httpwg.org/specs/rfc7540.html#GOAWAY. It\n\t// also waits for loopyWriter to be closed with a timer to avoid the\n\t// long blocking in case the connection is blackholed, i.e. TCP is\n\t// just stuck.\n\tt.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte(\"client transport shutdown\"), closeConn: err})\n\ttimer := time.NewTimer(goAwayLoopyWriterTimeout)\n\tdefer timer.Stop()\n\tselect {\n\tcase <-t.writerDone: // success\n\tcase <-timer.C:\n\t\tt.logger.Infof(\"Failed to write a GOAWAY frame as part of connection close after %s. Giving up and closing the transport.\", goAwayLoopyWriterTimeout)\n\t}\n\tt.cancel()\n\tt.conn.Close()\n\t// Waits for the reader and keepalive goroutines to exit before returning to\n\t// ensure all resources are cleaned up before Close can return.\n\t<-t.readerDone\n\tif t.keepaliveEnabled {\n\t\t<-t.keepaliveDone\n\t}\n\tchannelz.RemoveEntry(t.channelz.ID)\n\tvar st *status.Status\n\tif len(goAwayDebugMessage) > 0 {\n\t\tst = status.Newf(codes.Unavailable, \"closing transport due to: %v, received prior goaway: %v\", err, goAwayDebugMessage)\n\t\terr = st.Err()\n\t} else {\n\t\tst = status.New(codes.Unavailable, err.Error())\n\t}\n\n\t// Notify all active streams.\n\tfor _, s := range streams {\n\t\tt.closeStream(s, err, false, http2.ErrCodeNo, st, nil, false)\n\t}\n\tif t.statsHandler != nil {\n\t\tt.statsHandler.HandleConn(t.ctx, &stats.ConnEnd{\n\t\t\tClient: true,\n\t\t})\n\t}\n}\n\n// GracefulClose sets the state to draining, which prevents new streams from\n// being created and causes the transport to be closed when the last active\n// stream is closed.  If there are no active streams, the transport is closed\n// immediately.  This does nothing if the transport is already draining or\n// closing.\nfunc (t *http2Client) GracefulClose() {\n\tt.mu.Lock()\n\t// Make sure we move to draining only from active.\n\tif t.state == draining || t.state == closing {\n\t\tt.mu.Unlock()\n\t\treturn\n\t}\n\tif t.logger.V(logLevel) {\n\t\tt.logger.Infof(\"GracefulClose called\")\n\t}\n\tt.onClose(GoAwayInvalid)\n\tt.state = draining\n\tactive := len(t.activeStreams)\n\tt.mu.Unlock()\n\tif active == 0 {\n\t\tt.Close(connectionErrorf(true, nil, \"no active streams left to process while draining\"))\n\t\treturn\n\t}\n\tt.controlBuf.put(&incomingGoAway{})\n}\n\n// Write formats the data into HTTP2 data frame(s) and sends it out. The caller\n// should proceed only if Write returns nil.\nfunc (t *http2Client) write(s *ClientStream, hdr []byte, data mem.BufferSlice, opts *WriteOptions) error {\n\tif opts.Last {\n\t\t// If it's the last message, update stream state.\n\t\tif !s.compareAndSwapState(streamActive, streamWriteDone) {\n\t\t\treturn errStreamDone\n\t\t}\n\t} else if s.getState() != streamActive {\n\t\treturn errStreamDone\n\t}\n\tdf := &dataFrame{\n\t\tstreamID:  s.id,\n\t\tendStream: opts.Last,\n\t\th:         hdr,\n\t\tdata:      data,\n\t}\n\tdataLen := data.Len()\n\tif hdr != nil || dataLen != 0 { // If it's not an empty data frame, check quota.\n\t\tif err := s.wq.get(int32(len(hdr) + dataLen)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tdata.Ref()\n\tif err := t.controlBuf.put(df); err != nil {\n\t\tdata.Free()\n\t\treturn err\n\t}\n\tt.incrMsgSent()\n\treturn nil\n}\n\nfunc (t *http2Client) getStream(f http2.Frame) *ClientStream {\n\tt.mu.Lock()\n\ts := t.activeStreams[f.Header().StreamID]\n\tt.mu.Unlock()\n\treturn s\n}\n\n// adjustWindow sends out extra window update over the initial window size\n// of stream if the application is requesting data larger in size than\n// the window.\nfunc (t *http2Client) adjustWindow(s *ClientStream, n uint32) {\n\tif w := s.fc.maybeAdjust(n); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w})\n\t}\n}\n\n// updateWindow adjusts the inbound quota for the stream.\n// Window updates will be sent out when the cumulative quota\n// exceeds the corresponding threshold.\nfunc (t *http2Client) updateWindow(s *ClientStream, n uint32) {\n\tif w := s.fc.onRead(n); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w})\n\t}\n}\n\n// updateFlowControl updates the incoming flow control windows\n// for the transport and the stream based on the current bdp\n// estimation.\nfunc (t *http2Client) updateFlowControl(n uint32) {\n\tupdateIWS := func() bool {\n\t\tt.initialWindowSize = int32(n)\n\t\tt.mu.Lock()\n\t\tfor _, s := range t.activeStreams {\n\t\t\ts.fc.newLimit(n)\n\t\t}\n\t\tt.mu.Unlock()\n\t\treturn true\n\t}\n\tt.controlBuf.executeAndPut(updateIWS, &outgoingWindowUpdate{streamID: 0, increment: t.fc.newLimit(n)})\n\tt.controlBuf.put(&outgoingSettings{\n\t\tss: []http2.Setting{\n\t\t\t{\n\t\t\t\tID:  http2.SettingInitialWindowSize,\n\t\t\t\tVal: n,\n\t\t\t},\n\t\t},\n\t})\n}\n\nfunc (t *http2Client) handleData(f *parsedDataFrame) {\n\tsize := f.Header().Length\n\tvar sendBDPPing bool\n\tif t.bdpEst != nil {\n\t\tsendBDPPing = t.bdpEst.add(size)\n\t}\n\t// Decouple connection's flow control from application's read.\n\t// An update on connection's flow control should not depend on\n\t// whether user application has read the data or not. Such a\n\t// restriction is already imposed on the stream's flow control,\n\t// and therefore the sender will be blocked anyways.\n\t// Decoupling the connection flow control will prevent other\n\t// active(fast) streams from starving in presence of slow or\n\t// inactive streams.\n\t//\n\tif w := t.fc.onData(size); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{\n\t\t\tstreamID:  0,\n\t\t\tincrement: w,\n\t\t})\n\t}\n\tif sendBDPPing {\n\t\t// Avoid excessive ping detection (e.g. in an L7 proxy)\n\t\t// by sending a window update prior to the BDP ping.\n\n\t\tif w := t.fc.reset(); w > 0 {\n\t\t\tt.controlBuf.put(&outgoingWindowUpdate{\n\t\t\t\tstreamID:  0,\n\t\t\t\tincrement: w,\n\t\t\t})\n\t\t}\n\n\t\tt.controlBuf.put(bdpPing)\n\t}\n\t// Select the right stream to dispatch.\n\ts := t.getStream(f)\n\tif s == nil {\n\t\treturn\n\t}\n\tif size > 0 {\n\t\tif err := s.fc.onData(size); err != nil {\n\t\t\tt.closeStream(s, io.EOF, true, http2.ErrCodeFlowControl, status.New(codes.Internal, err.Error()), nil, false)\n\t\t\treturn\n\t\t}\n\t\tdataLen := f.data.Len()\n\t\tif f.Header().Flags.Has(http2.FlagDataPadded) {\n\t\t\tif w := s.fc.onRead(size - uint32(dataLen)); w > 0 {\n\t\t\t\tt.controlBuf.put(&outgoingWindowUpdate{s.id, w})\n\t\t\t}\n\t\t}\n\t\tif dataLen > 0 {\n\t\t\tf.data.Ref()\n\t\t\ts.write(recvMsg{buffer: f.data})\n\t\t}\n\t}\n\t// The server has closed the stream without sending trailers.  Record that\n\t// the read direction is closed, and set the status appropriately.\n\tif f.StreamEnded() {\n\t\tt.closeStream(s, io.EOF, false, http2.ErrCodeNo, status.New(codes.Internal, \"server closed the stream without sending trailers\"), nil, true)\n\t}\n}\n\nfunc (t *http2Client) handleRSTStream(f *http2.RSTStreamFrame) {\n\ts := t.getStream(f)\n\tif s == nil {\n\t\treturn\n\t}\n\tif f.ErrCode == http2.ErrCodeRefusedStream {\n\t\t// The stream was unprocessed by the server.\n\t\ts.unprocessed.Store(true)\n\t}\n\tstatusCode, ok := http2ErrConvTab[f.ErrCode]\n\tif !ok {\n\t\tif t.logger.V(logLevel) {\n\t\t\tt.logger.Infof(\"Received a RST_STREAM frame with code %q, but found no mapped gRPC status\", f.ErrCode)\n\t\t}\n\t\tstatusCode = codes.Unknown\n\t}\n\tif statusCode == codes.Canceled {\n\t\tif d, ok := s.ctx.Deadline(); ok && !d.After(time.Now()) {\n\t\t\t// Our deadline was already exceeded, and that was likely the cause\n\t\t\t// of this cancellation.  Alter the status code accordingly.\n\t\t\tstatusCode = codes.DeadlineExceeded\n\t\t}\n\t}\n\tst := status.Newf(statusCode, \"stream terminated by RST_STREAM with error code: %v\", f.ErrCode)\n\tt.closeStream(s, st.Err(), false, http2.ErrCodeNo, st, nil, false)\n}\n\nfunc (t *http2Client) handleSettings(f *http2.SettingsFrame, isFirst bool) {\n\tif f.IsAck() {\n\t\treturn\n\t}\n\tvar maxStreams *uint32\n\tvar ss []http2.Setting\n\tvar updateFuncs []func()\n\tf.ForeachSetting(func(s http2.Setting) error {\n\t\tswitch s.ID {\n\t\tcase http2.SettingMaxConcurrentStreams:\n\t\t\tmaxStreams = new(uint32)\n\t\t\t*maxStreams = s.Val\n\t\tcase http2.SettingMaxHeaderListSize:\n\t\t\tupdateFuncs = append(updateFuncs, func() {\n\t\t\t\tt.maxSendHeaderListSize = new(uint32)\n\t\t\t\t*t.maxSendHeaderListSize = s.Val\n\t\t\t})\n\t\tdefault:\n\t\t\tss = append(ss, s)\n\t\t}\n\t\treturn nil\n\t})\n\tif isFirst && maxStreams == nil {\n\t\tmaxStreams = new(uint32)\n\t\t*maxStreams = math.MaxUint32\n\t}\n\tsf := &incomingSettings{\n\t\tss: ss,\n\t}\n\tif maxStreams != nil {\n\t\tupdateStreamQuota := func() {\n\t\t\tdelta := int64(*maxStreams) - int64(t.maxConcurrentStreams)\n\t\t\tt.maxConcurrentStreams = *maxStreams\n\t\t\tt.streamQuota += delta\n\t\t\tif delta > 0 && t.waitingStreams > 0 {\n\t\t\t\tclose(t.streamsQuotaAvailable) // wake all of them up.\n\t\t\t\tt.streamsQuotaAvailable = make(chan struct{}, 1)\n\t\t\t}\n\t\t}\n\t\tupdateFuncs = append(updateFuncs, updateStreamQuota)\n\t}\n\tt.controlBuf.executeAndPut(func() bool {\n\t\tfor _, f := range updateFuncs {\n\t\t\tf()\n\t\t}\n\t\treturn true\n\t}, sf)\n}\n\nfunc (t *http2Client) handlePing(f *http2.PingFrame) {\n\tif f.IsAck() {\n\t\t// Maybe it's a BDP ping.\n\t\tif t.bdpEst != nil {\n\t\t\tt.bdpEst.calculate(f.Data)\n\t\t}\n\t\treturn\n\t}\n\tpingAck := &ping{ack: true}\n\tcopy(pingAck.data[:], f.Data[:])\n\tt.controlBuf.put(pingAck)\n}\n\nfunc (t *http2Client) handleGoAway(f *http2.GoAwayFrame) error {\n\tt.mu.Lock()\n\tif t.state == closing {\n\t\tt.mu.Unlock()\n\t\treturn nil\n\t}\n\tif f.ErrCode == http2.ErrCodeEnhanceYourCalm && string(f.DebugData()) == \"too_many_pings\" {\n\t\t// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug\n\t\t// data equal to ASCII \"too_many_pings\", it should log the occurrence at a log level that is\n\t\t// enabled by default and double the configure KEEPALIVE_TIME used for new connections\n\t\t// on that channel.\n\t\tlogger.Errorf(\"Client received GoAway with error code ENHANCE_YOUR_CALM and debug data equal to ASCII \\\"too_many_pings\\\".\")\n\t}\n\tid := f.LastStreamID\n\tif id > 0 && id%2 == 0 {\n\t\tt.mu.Unlock()\n\t\treturn connectionErrorf(true, nil, \"received goaway with non-zero even-numbered stream id: %v\", id)\n\t}\n\t// A client can receive multiple GoAways from the server (see\n\t// https://github.com/grpc/grpc-go/issues/1387).  The idea is that the first\n\t// GoAway will be sent with an ID of MaxInt32 and the second GoAway will be\n\t// sent after an RTT delay with the ID of the last stream the server will\n\t// process.\n\t//\n\t// Therefore, when we get the first GoAway we don't necessarily close any\n\t// streams. While in case of second GoAway we close all streams created after\n\t// the GoAwayId. This way streams that were in-flight while the GoAway from\n\t// server was being sent don't get killed.\n\tselect {\n\tcase <-t.goAway: // t.goAway has been closed (i.e.,multiple GoAways).\n\t\t// If there are multiple GoAways the first one should always have an ID greater than the following ones.\n\t\tif id > t.prevGoAwayID {\n\t\t\tt.mu.Unlock()\n\t\t\treturn connectionErrorf(true, nil, \"received goaway with stream id: %v, which exceeds stream id of previous goaway: %v\", id, t.prevGoAwayID)\n\t\t}\n\tdefault:\n\t\tt.setGoAwayReason(f)\n\t\tclose(t.goAway)\n\t\tdefer t.controlBuf.put(&incomingGoAway{}) // Defer as t.mu is currently held.\n\t\t// Notify the clientconn about the GOAWAY before we set the state to\n\t\t// draining, to allow the client to stop attempting to create streams\n\t\t// before disallowing new streams on this connection.\n\t\tif t.state != draining {\n\t\t\tt.onClose(t.goAwayReason)\n\t\t\tt.state = draining\n\t\t}\n\t}\n\t// All streams with IDs greater than the GoAwayId\n\t// and smaller than the previous GoAway ID should be killed.\n\tupperLimit := t.prevGoAwayID\n\tif upperLimit == 0 { // This is the first GoAway Frame.\n\t\tupperLimit = math.MaxUint32 // Kill all streams after the GoAway ID.\n\t}\n\n\tt.prevGoAwayID = id\n\tif len(t.activeStreams) == 0 {\n\t\tt.mu.Unlock()\n\t\treturn connectionErrorf(true, nil, \"received goaway and there are no active streams\")\n\t}\n\n\tstreamsToClose := make([]*ClientStream, 0)\n\tfor streamID, stream := range t.activeStreams {\n\t\tif streamID > id && streamID <= upperLimit {\n\t\t\t// The stream was unprocessed by the server.\n\t\t\tstream.unprocessed.Store(true)\n\t\t\tstreamsToClose = append(streamsToClose, stream)\n\t\t}\n\t}\n\tt.mu.Unlock()\n\t// Called outside t.mu because closeStream can take controlBuf's mu, which\n\t// could induce deadlock and is not allowed.\n\tfor _, stream := range streamsToClose {\n\t\tt.closeStream(stream, errStreamDrain, false, http2.ErrCodeNo, statusGoAway, nil, false)\n\t}\n\treturn nil\n}\n\n// setGoAwayReason sets the value of t.goAwayReason based\n// on the GoAway frame received.\n// It expects a lock on transport's mutex to be held by\n// the caller.\nfunc (t *http2Client) setGoAwayReason(f *http2.GoAwayFrame) {\n\tt.goAwayReason = GoAwayNoReason\n\tif f.ErrCode == http2.ErrCodeEnhanceYourCalm {\n\t\tif string(f.DebugData()) == \"too_many_pings\" {\n\t\t\tt.goAwayReason = GoAwayTooManyPings\n\t\t}\n\t}\n\tif len(f.DebugData()) == 0 {\n\t\tt.goAwayDebugMessage = fmt.Sprintf(\"code: %s\", f.ErrCode)\n\t} else {\n\t\tt.goAwayDebugMessage = fmt.Sprintf(\"code: %s, debug data: %q\", f.ErrCode, string(f.DebugData()))\n\t}\n}\n\nfunc (t *http2Client) GetGoAwayReason() (GoAwayReason, string) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\treturn t.goAwayReason, t.goAwayDebugMessage\n}\n\nfunc (t *http2Client) handleWindowUpdate(f *http2.WindowUpdateFrame) {\n\tt.controlBuf.put(&incomingWindowUpdate{\n\t\tstreamID:  f.Header().StreamID,\n\t\tincrement: f.Increment,\n\t})\n}\n\n// operateHeaders takes action on the decoded headers.\nfunc (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {\n\ts := t.getStream(frame)\n\tif s == nil {\n\t\treturn\n\t}\n\tendStream := frame.StreamEnded()\n\ts.bytesReceived.Store(true)\n\tinitialHeader := atomic.LoadUint32(&s.headerChanClosed) == 0\n\n\tif !initialHeader && !endStream {\n\t\t// 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.\n\t\tst := status.New(codes.Internal, \"a HEADERS frame cannot appear in the middle of a stream\")\n\t\tt.closeStream(s, st.Err(), true, http2.ErrCodeProtocol, st, nil, false)\n\t\treturn\n\t}\n\n\t// frame.Truncated is set to true when framer detects that the current header\n\t// list size hits MaxHeaderListSize limit.\n\tif frame.Truncated {\n\t\tse := status.New(codes.Internal, \"peer header list size exceeded limit\")\n\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeFrameSize, se, nil, endStream)\n\t\treturn\n\t}\n\n\tvar (\n\t\t// If a gRPC Response-Headers has already been received, then it means\n\t\t// that the peer is speaking gRPC and we are in gRPC mode.\n\t\tisGRPC         = !initialHeader\n\t\tmdata          = make(map[string][]string)\n\t\tcontentTypeErr = \"malformed header: missing HTTP content-type\"\n\t\tgrpcMessage    string\n\t\trecvCompress   string\n\t\thttpStatusErr  string\n\t\t// the code from the grpc-status header, if present\n\t\tgrpcStatusCode = codes.Unknown\n\t\t// headerError is set if an error is encountered while parsing the headers\n\t\theaderError string\n\t\thttpStatus  string\n\t)\n\n\tfor _, hf := range frame.Fields {\n\t\tswitch hf.Name {\n\t\tcase \"content-type\":\n\t\t\tif _, validContentType := grpcutil.ContentSubtype(hf.Value); !validContentType {\n\t\t\t\tcontentTypeErr = fmt.Sprintf(\"transport: received unexpected content-type %q\", hf.Value)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcontentTypeErr = \"\"\n\t\t\tmdata[hf.Name] = append(mdata[hf.Name], hf.Value)\n\t\t\tisGRPC = true\n\t\tcase \"grpc-encoding\":\n\t\t\trecvCompress = hf.Value\n\t\tcase \"grpc-status\":\n\t\t\tcode, err := strconv.ParseInt(hf.Value, 10, 32)\n\t\t\tif err != nil {\n\t\t\t\tse := status.New(codes.Unknown, fmt.Sprintf(\"transport: malformed grpc-status: %v\", err))\n\t\t\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tgrpcStatusCode = codes.Code(uint32(code))\n\t\tcase \"grpc-message\":\n\t\t\tgrpcMessage = decodeGrpcMessage(hf.Value)\n\t\tcase \":status\":\n\t\t\thttpStatus = hf.Value\n\t\tdefault:\n\t\t\tif isReservedHeader(hf.Name) && !isWhitelistedHeader(hf.Name) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv, err := decodeMetadataHeader(hf.Name, hf.Value)\n\t\t\tif err != nil {\n\t\t\t\theaderError = fmt.Sprintf(\"transport: malformed %s: %v\", hf.Name, err)\n\t\t\t\tlogger.Warningf(\"Failed to decode metadata header (%q, %q): %v\", hf.Name, hf.Value, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tmdata[hf.Name] = append(mdata[hf.Name], v)\n\t\t}\n\t}\n\n\t// If a non-gRPC response is received, then evaluate the HTTP status to\n\t// process the response and close the stream.\n\t// In case http status doesn't provide any error information (status : 200),\n\t// then evalute response code to be Unknown.\n\tif !isGRPC {\n\t\tvar grpcErrorCode = codes.Internal\n\t\tif httpStatus == \"\" {\n\t\t\thttpStatusErr = \"malformed header: missing HTTP status\"\n\t\t} else {\n\t\t\t// Parse the status codes (e.g. \"200\", 404\").\n\t\t\tstatusCode, err := strconv.Atoi(httpStatus)\n\t\t\tif err != nil {\n\t\t\t\tse := status.New(grpcErrorCode, fmt.Sprintf(\"transport: malformed http-status: %v\", err))\n\t\t\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif statusCode >= 100 && statusCode < 200 {\n\t\t\t\tif endStream {\n\t\t\t\t\tse := status.New(codes.Internal, fmt.Sprintf(\n\t\t\t\t\t\t\"protocol error: informational header with status code %d must not have END_STREAM set\", statusCode))\n\t\t\t\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)\n\t\t\t\t}\n\t\t\t\t// In case of informational headers, return.\n\t\t\t\treturn\n\t\t\t}\n\t\t\thttpStatusErr = fmt.Sprintf(\n\t\t\t\t\"unexpected HTTP status code received from server: %d (%s)\",\n\t\t\t\tstatusCode,\n\t\t\t\thttp.StatusText(statusCode),\n\t\t\t)\n\t\t\tvar ok bool\n\t\t\tgrpcErrorCode, ok = HTTPStatusConvTab[statusCode]\n\t\t\tif !ok {\n\t\t\t\tgrpcErrorCode = codes.Unknown\n\t\t\t}\n\t\t}\n\t\tvar errs []string\n\t\tif httpStatusErr != \"\" {\n\t\t\terrs = append(errs, httpStatusErr)\n\t\t}\n\n\t\tif contentTypeErr != \"\" {\n\t\t\terrs = append(errs, contentTypeErr)\n\t\t}\n\n\t\tse := status.New(grpcErrorCode, strings.Join(errs, \"; \"))\n\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)\n\t\treturn\n\t}\n\n\tif headerError != \"\" {\n\t\tse := status.New(codes.Internal, headerError)\n\t\tt.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)\n\t\treturn\n\t}\n\n\t// For headers, set them in s.header and close headerChan.  For trailers or\n\t// trailers-only, closeStream will set the trailers and close headerChan as\n\t// needed.\n\tif !endStream {\n\t\t// If headerChan hasn't been closed yet (expected, given we checked it\n\t\t// above, but something else could have potentially closed the whole\n\t\t// stream).\n\t\tif atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) {\n\t\t\ts.headerValid = true\n\t\t\t// These values can be set without any synchronization because\n\t\t\t// stream goroutine will read it only after seeing a closed\n\t\t\t// headerChan which we'll close after setting this.\n\t\t\ts.recvCompress = recvCompress\n\t\t\tif len(mdata) > 0 {\n\t\t\t\ts.header = mdata\n\t\t\t}\n\t\t\tclose(s.headerChan)\n\t\t}\n\t}\n\n\tif s.statsHandler != nil {\n\t\tif !endStream {\n\t\t\ts.statsHandler.HandleRPC(s.ctx, &stats.InHeader{\n\t\t\t\tClient:      true,\n\t\t\t\tWireLength:  int(frame.Header().Length),\n\t\t\t\tHeader:      metadata.MD(mdata).Copy(),\n\t\t\t\tCompression: s.recvCompress,\n\t\t\t})\n\t\t} else {\n\t\t\ts.statsHandler.HandleRPC(s.ctx, &stats.InTrailer{\n\t\t\t\tClient:     true,\n\t\t\t\tWireLength: int(frame.Header().Length),\n\t\t\t\tTrailer:    metadata.MD(mdata).Copy(),\n\t\t\t})\n\t\t}\n\t}\n\n\tif !endStream {\n\t\treturn\n\t}\n\n\tstatus := istatus.NewWithProto(grpcStatusCode, grpcMessage, mdata[grpcStatusDetailsBinHeader])\n\n\t// If client received END_STREAM from server while stream was still active,\n\t// send RST_STREAM.\n\trstStream := s.getState() == streamActive\n\tt.closeStream(s, io.EOF, rstStream, http2.ErrCodeNo, status, mdata, true)\n}\n\n// readServerPreface reads and handles the initial settings frame from the\n// server.\nfunc (t *http2Client) readServerPreface() error {\n\tframe, err := t.framer.fr.ReadFrame()\n\tif err != nil {\n\t\treturn connectionErrorf(true, err, \"error reading server preface: %v\", err)\n\t}\n\tsf, ok := frame.(*http2.SettingsFrame)\n\tif !ok {\n\t\treturn connectionErrorf(true, nil, \"initial http2 frame from server is not a settings frame: %T\", frame)\n\t}\n\tt.handleSettings(sf, true)\n\treturn nil\n}\n\n// reader verifies the server preface and reads all subsequent data from\n// network connection.  If the server preface is not read successfully, an\n// error is pushed to errCh; otherwise errCh is closed with no error.\nfunc (t *http2Client) reader(errCh chan<- error) {\n\tvar errClose error\n\tdefer func() {\n\t\tclose(t.readerDone)\n\t\tif errClose != nil {\n\t\t\tt.Close(errClose)\n\t\t}\n\t}()\n\n\tif err := t.readServerPreface(); err != nil {\n\t\terrCh <- err\n\t\treturn\n\t}\n\tclose(errCh)\n\tif t.keepaliveEnabled {\n\t\tatomic.StoreInt64(&t.lastRead, time.Now().UnixNano())\n\t}\n\n\t// loop to keep reading incoming messages on this transport.\n\tfor {\n\t\tt.controlBuf.throttle()\n\t\tframe, err := t.framer.readFrame()\n\t\tif t.keepaliveEnabled {\n\t\t\tatomic.StoreInt64(&t.lastRead, time.Now().UnixNano())\n\t\t}\n\t\tif err != nil {\n\t\t\t// Abort an active stream if the http2.Framer returns a\n\t\t\t// http2.StreamError. This can happen only if the server's response\n\t\t\t// is malformed http2.\n\t\t\tif se, ok := err.(http2.StreamError); ok {\n\t\t\t\tt.mu.Lock()\n\t\t\t\ts := t.activeStreams[se.StreamID]\n\t\t\t\tt.mu.Unlock()\n\t\t\t\tif s != nil {\n\t\t\t\t\t// use error detail to provide better err message\n\t\t\t\t\tcode := http2ErrConvTab[se.Code]\n\t\t\t\t\terrorDetail := t.framer.errorDetail()\n\t\t\t\t\tvar msg string\n\t\t\t\t\tif errorDetail != nil {\n\t\t\t\t\t\tmsg = errorDetail.Error()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmsg = \"received invalid frame\"\n\t\t\t\t\t}\n\t\t\t\t\tt.closeStream(s, status.Error(code, msg), true, http2.ErrCodeProtocol, status.New(code, msg), nil, false)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Transport error.\n\t\t\terrClose = connectionErrorf(true, err, \"error reading from server: %v\", err)\n\t\t\treturn\n\t\t}\n\t\tswitch frame := frame.(type) {\n\t\tcase *http2.MetaHeadersFrame:\n\t\t\tt.operateHeaders(frame)\n\t\tcase *parsedDataFrame:\n\t\t\tt.handleData(frame)\n\t\t\tframe.data.Free()\n\t\tcase *http2.RSTStreamFrame:\n\t\t\tt.handleRSTStream(frame)\n\t\tcase *http2.SettingsFrame:\n\t\t\tt.handleSettings(frame, false)\n\t\tcase *http2.PingFrame:\n\t\t\tt.handlePing(frame)\n\t\tcase *http2.GoAwayFrame:\n\t\t\terrClose = t.handleGoAway(frame)\n\t\tcase *http2.WindowUpdateFrame:\n\t\t\tt.handleWindowUpdate(frame)\n\t\tdefault:\n\t\t\tif logger.V(logLevel) {\n\t\t\t\tlogger.Errorf(\"transport: http2Client.reader got unhandled frame type %v.\", frame)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// keepalive running in a separate goroutine makes sure the connection is alive by sending pings.\nfunc (t *http2Client) keepalive() {\n\tvar err error\n\tdefer func() {\n\t\tclose(t.keepaliveDone)\n\t\tif err != nil {\n\t\t\tt.Close(err)\n\t\t}\n\t}()\n\tp := &ping{data: [8]byte{}}\n\t// True iff a ping has been sent, and no data has been received since then.\n\toutstandingPing := false\n\t// Amount of time remaining before which we should receive an ACK for the\n\t// last sent ping.\n\ttimeoutLeft := time.Duration(0)\n\t// Records the last value of t.lastRead before we go block on the timer.\n\t// This is required to check for read activity since then.\n\tprevNano := time.Now().UnixNano()\n\ttimer := time.NewTimer(t.kp.Time)\n\tfor {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\tlastRead := atomic.LoadInt64(&t.lastRead)\n\t\t\tif lastRead > prevNano {\n\t\t\t\t// There has been read activity since the last time we were here.\n\t\t\t\toutstandingPing = false\n\t\t\t\t// Next timer should fire at kp.Time seconds from lastRead time.\n\t\t\t\ttimer.Reset(time.Duration(lastRead) + t.kp.Time - time.Duration(time.Now().UnixNano()))\n\t\t\t\tprevNano = lastRead\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif outstandingPing && timeoutLeft <= 0 {\n\t\t\t\terr = connectionErrorf(true, nil, \"keepalive ping failed to receive ACK within timeout\")\n\t\t\t\treturn\n\t\t\t}\n\t\t\tt.mu.Lock()\n\t\t\tif t.state == closing {\n\t\t\t\t// If the transport is closing, we should exit from the\n\t\t\t\t// keepalive goroutine here. If not, we could have a race\n\t\t\t\t// between the call to Signal() from Close() and the call to\n\t\t\t\t// Wait() here, whereby the keepalive goroutine ends up\n\t\t\t\t// blocking on the condition variable which will never be\n\t\t\t\t// signalled again.\n\t\t\t\tt.mu.Unlock()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif len(t.activeStreams) < 1 && !t.kp.PermitWithoutStream {\n\t\t\t\t// If a ping was sent out previously (because there were active\n\t\t\t\t// streams at that point) which wasn't acked and its timeout\n\t\t\t\t// hadn't fired, but we got here and are about to go dormant,\n\t\t\t\t// we should make sure that we unconditionally send a ping once\n\t\t\t\t// we awaken.\n\t\t\t\toutstandingPing = false\n\t\t\t\tt.kpDormant = true\n\t\t\t\tt.kpDormancyCond.Wait()\n\t\t\t}\n\t\t\tt.kpDormant = false\n\t\t\tt.mu.Unlock()\n\n\t\t\t// We get here either because we were dormant and a new stream was\n\t\t\t// created which unblocked the Wait() call, or because the\n\t\t\t// keepalive timer expired. In both cases, we need to send a ping.\n\t\t\tif !outstandingPing {\n\t\t\t\tif channelz.IsOn() {\n\t\t\t\t\tt.channelz.SocketMetrics.KeepAlivesSent.Add(1)\n\t\t\t\t}\n\t\t\t\tt.controlBuf.put(p)\n\t\t\t\ttimeoutLeft = t.kp.Timeout\n\t\t\t\toutstandingPing = true\n\t\t\t}\n\t\t\t// The amount of time to sleep here is the minimum of kp.Time and\n\t\t\t// timeoutLeft. This will ensure that we wait only for kp.Time\n\t\t\t// before sending out the next ping (for cases where the ping is\n\t\t\t// acked).\n\t\t\tsleepDuration := min(t.kp.Time, timeoutLeft)\n\t\t\ttimeoutLeft -= sleepDuration\n\t\t\ttimer.Reset(sleepDuration)\n\t\tcase <-t.ctx.Done():\n\t\t\tif !timer.Stop() {\n\t\t\t\t<-timer.C\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (t *http2Client) Error() <-chan struct{} {\n\treturn t.ctx.Done()\n}\n\nfunc (t *http2Client) GoAway() <-chan struct{} {\n\treturn t.goAway\n}\n\nfunc (t *http2Client) socketMetrics() *channelz.EphemeralSocketMetrics {\n\treturn &channelz.EphemeralSocketMetrics{\n\t\tLocalFlowControlWindow:  int64(t.fc.getSize()),\n\t\tRemoteFlowControlWindow: t.getOutFlowWindow(),\n\t}\n}\n\nfunc (t *http2Client) incrMsgSent() {\n\tif channelz.IsOn() {\n\t\tt.channelz.SocketMetrics.MessagesSent.Add(1)\n\t\tt.channelz.SocketMetrics.LastMessageSentTimestamp.Store(time.Now().UnixNano())\n\t}\n}\n\nfunc (t *http2Client) incrMsgRecv() {\n\tif channelz.IsOn() {\n\t\tt.channelz.SocketMetrics.MessagesReceived.Add(1)\n\t\tt.channelz.SocketMetrics.LastMessageReceivedTimestamp.Store(time.Now().UnixNano())\n\t}\n}\n\nfunc (t *http2Client) getOutFlowWindow() int64 {\n\tresp := make(chan uint32, 1)\n\ttimer := time.NewTimer(time.Second)\n\tdefer timer.Stop()\n\tt.controlBuf.put(&outFlowControlSizeRequest{resp})\n\tselect {\n\tcase sz := <-resp:\n\t\treturn int64(sz)\n\tcase <-t.ctxDone:\n\t\treturn -1\n\tcase <-timer.C:\n\t\treturn -2\n\t}\n}\n\nfunc (t *http2Client) stateForTesting() transportState {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\treturn t.state\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/http2_server.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\trand \"math/rand/v2\"\n\t\"net\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"golang.org/x/net/http2\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"google.golang.org/protobuf/proto\"\n\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/grpclog\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\t\"google.golang.org/grpc/internal/pretty\"\n\tistatus \"google.golang.org/grpc/internal/status\"\n\t\"google.golang.org/grpc/internal/syscall\"\n\t\"google.golang.org/grpc/mem\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/grpc/tap\"\n)\n\nvar (\n\t// ErrIllegalHeaderWrite indicates that setting header is illegal because of\n\t// the stream's state.\n\tErrIllegalHeaderWrite = status.Error(codes.Internal, \"transport: SendHeader called multiple times\")\n\t// ErrHeaderListSizeLimitViolation indicates that the header list size is larger\n\t// than the limit set by peer.\n\tErrHeaderListSizeLimitViolation = status.Error(codes.Internal, \"transport: trying to send header list size larger than the limit set by peer\")\n)\n\n// serverConnectionCounter counts the number of connections a server has seen\n// (equal to the number of http2Servers created). Must be accessed atomically.\nvar serverConnectionCounter uint64\n\n// http2Server implements the ServerTransport interface with HTTP2.\ntype http2Server struct {\n\tlastRead        int64 // Keep this field 64-bit aligned. Accessed atomically.\n\tdone            chan struct{}\n\tconn            net.Conn\n\tloopy           *loopyWriter\n\treaderDone      chan struct{} // sync point to enable testing.\n\tloopyWriterDone chan struct{}\n\tpeer            peer.Peer\n\tinTapHandle     tap.ServerInHandle\n\tframer          *framer\n\t// The max number of concurrent streams.\n\tmaxStreams uint32\n\t// controlBuf delivers all the control related tasks (e.g., window\n\t// updates, reset streams, and various settings) to the controller.\n\tcontrolBuf *controlBuffer\n\tfc         *trInFlow\n\tstats      stats.Handler\n\t// Keepalive and max-age parameters for the server.\n\tkp keepalive.ServerParameters\n\t// Keepalive enforcement policy.\n\tkep keepalive.EnforcementPolicy\n\t// The time instance last ping was received.\n\tlastPingAt time.Time\n\t// Number of times the client has violated keepalive ping policy so far.\n\tpingStrikes uint8\n\t// Flag to signify that number of ping strikes should be reset to 0.\n\t// This is set whenever data or header frames are sent.\n\t// 1 means yes.\n\tresetPingStrikes      uint32 // Accessed atomically.\n\tinitialWindowSize     int32\n\tbdpEst                *bdpEstimator\n\tmaxSendHeaderListSize *uint32\n\n\tmu sync.Mutex // guard the following\n\n\t// drainEvent is initialized when Drain() is called the first time. After\n\t// which the server writes out the first GoAway(with ID 2^31-1) frame. Then\n\t// an independent goroutine will be launched to later send the second\n\t// GoAway. During this time we don't want to write another first GoAway(with\n\t// ID 2^31 -1) frame. Thus call to Drain() will be a no-op if drainEvent is\n\t// already initialized since draining is already underway.\n\tdrainEvent    *grpcsync.Event\n\tstate         transportState\n\tactiveStreams map[uint32]*ServerStream\n\t// idle is the time instant when the connection went idle.\n\t// This is either the beginning of the connection or when the number of\n\t// RPCs go down to 0.\n\t// When the connection is busy, this value is set to 0.\n\tidle time.Time\n\n\t// Fields below are for channelz metric collection.\n\tchannelz   *channelz.Socket\n\tbufferPool mem.BufferPool\n\n\tconnectionID uint64\n\n\t// maxStreamMu guards the maximum stream ID\n\t// This lock may not be taken if mu is already held.\n\tmaxStreamMu sync.Mutex\n\tmaxStreamID uint32 // max stream ID ever seen\n\n\tlogger *grpclog.PrefixLogger\n\t// setResetPingStrikes is stored as a closure instead of making this a\n\t// method on http2Server to avoid a heap allocation when converting a method\n\t// to a closure for passing to frames objects.\n\tsetResetPingStrikes func()\n}\n\n// NewServerTransport creates a http2 transport with conn and configuration\n// options from config.\n//\n// It returns a non-nil transport and a nil error on success. On failure, it\n// returns a nil transport and a non-nil error. For a special case where the\n// underlying conn gets closed before the client preface could be read, it\n// returns a nil transport and a nil error.\nfunc NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, err error) {\n\tvar authInfo credentials.AuthInfo\n\trawConn := conn\n\tif config.Credentials != nil {\n\t\tvar err error\n\t\tconn, authInfo, err = config.Credentials.ServerHandshake(rawConn)\n\t\tif err != nil {\n\t\t\t// ErrConnDispatched means that the connection was dispatched away\n\t\t\t// from gRPC; those connections should be left open. io.EOF means\n\t\t\t// the connection was closed before handshaking completed, which can\n\t\t\t// happen naturally from probers. Return these errors directly.\n\t\t\tif err == credentials.ErrConnDispatched || err == io.EOF {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn nil, connectionErrorf(false, err, \"ServerHandshake(%q) failed: %v\", rawConn.RemoteAddr(), err)\n\t\t}\n\t}\n\twriteBufSize := config.WriteBufferSize\n\treadBufSize := config.ReadBufferSize\n\tmaxHeaderListSize := defaultServerMaxHeaderListSize\n\tif config.MaxHeaderListSize != nil {\n\t\tmaxHeaderListSize = *config.MaxHeaderListSize\n\t}\n\tframer := newFramer(conn, writeBufSize, readBufSize, config.SharedWriteBuffer, maxHeaderListSize, config.BufferPool)\n\t// Send initial settings as connection preface to client.\n\tisettings := []http2.Setting{{\n\t\tID:  http2.SettingMaxFrameSize,\n\t\tVal: http2MaxFrameLen,\n\t}}\n\tif config.MaxStreams != math.MaxUint32 {\n\t\tisettings = append(isettings, http2.Setting{\n\t\t\tID:  http2.SettingMaxConcurrentStreams,\n\t\t\tVal: config.MaxStreams,\n\t\t})\n\t}\n\tiwz := int32(initialWindowSize)\n\tif config.InitialWindowSize >= defaultWindowSize {\n\t\tiwz = config.InitialWindowSize\n\t}\n\ticwz := int32(initialWindowSize)\n\tif config.InitialConnWindowSize >= defaultWindowSize {\n\t\ticwz = config.InitialConnWindowSize\n\t}\n\tif iwz != defaultWindowSize {\n\t\tisettings = append(isettings, http2.Setting{\n\t\t\tID:  http2.SettingInitialWindowSize,\n\t\t\tVal: uint32(iwz)})\n\t}\n\tif config.MaxHeaderListSize != nil {\n\t\tisettings = append(isettings, http2.Setting{\n\t\t\tID:  http2.SettingMaxHeaderListSize,\n\t\t\tVal: *config.MaxHeaderListSize,\n\t\t})\n\t}\n\tif config.HeaderTableSize != nil {\n\t\tisettings = append(isettings, http2.Setting{\n\t\t\tID:  http2.SettingHeaderTableSize,\n\t\t\tVal: *config.HeaderTableSize,\n\t\t})\n\t}\n\tif err := framer.fr.WriteSettings(isettings...); err != nil {\n\t\treturn nil, connectionErrorf(false, err, \"transport: %v\", err)\n\t}\n\t// Adjust the connection flow control window if needed.\n\tif delta := uint32(icwz - defaultWindowSize); delta > 0 {\n\t\tif err := framer.fr.WriteWindowUpdate(0, delta); err != nil {\n\t\t\treturn nil, connectionErrorf(false, err, \"transport: %v\", err)\n\t\t}\n\t}\n\tkp := config.KeepaliveParams\n\tif kp.MaxConnectionIdle == 0 {\n\t\tkp.MaxConnectionIdle = defaultMaxConnectionIdle\n\t}\n\tif kp.MaxConnectionAge == 0 {\n\t\tkp.MaxConnectionAge = defaultMaxConnectionAge\n\t}\n\t// Add a jitter to MaxConnectionAge.\n\tkp.MaxConnectionAge += getJitter(kp.MaxConnectionAge)\n\tif kp.MaxConnectionAgeGrace == 0 {\n\t\tkp.MaxConnectionAgeGrace = defaultMaxConnectionAgeGrace\n\t}\n\tif kp.Time == 0 {\n\t\tkp.Time = defaultServerKeepaliveTime\n\t}\n\tif kp.Timeout == 0 {\n\t\tkp.Timeout = defaultServerKeepaliveTimeout\n\t}\n\tif kp.Time != infinity {\n\t\tif err = syscall.SetTCPUserTimeout(rawConn, kp.Timeout); err != nil {\n\t\t\treturn nil, connectionErrorf(false, err, \"transport: failed to set TCP_USER_TIMEOUT: %v\", err)\n\t\t}\n\t}\n\tkep := config.KeepalivePolicy\n\tif kep.MinTime == 0 {\n\t\tkep.MinTime = defaultKeepalivePolicyMinTime\n\t}\n\n\tdone := make(chan struct{})\n\tpeer := peer.Peer{\n\t\tAddr:      conn.RemoteAddr(),\n\t\tLocalAddr: conn.LocalAddr(),\n\t\tAuthInfo:  authInfo,\n\t}\n\tt := &http2Server{\n\t\tdone:              done,\n\t\tconn:              conn,\n\t\tpeer:              peer,\n\t\tframer:            framer,\n\t\treaderDone:        make(chan struct{}),\n\t\tloopyWriterDone:   make(chan struct{}),\n\t\tmaxStreams:        config.MaxStreams,\n\t\tinTapHandle:       config.InTapHandle,\n\t\tfc:                &trInFlow{limit: uint32(icwz)},\n\t\tstate:             reachable,\n\t\tactiveStreams:     make(map[uint32]*ServerStream),\n\t\tstats:             config.StatsHandler,\n\t\tkp:                kp,\n\t\tidle:              time.Now(),\n\t\tkep:               kep,\n\t\tinitialWindowSize: iwz,\n\t\tbufferPool:        config.BufferPool,\n\t}\n\tt.setResetPingStrikes = func() {\n\t\tatomic.StoreUint32(&t.resetPingStrikes, 1)\n\t}\n\tvar czSecurity credentials.ChannelzSecurityValue\n\tif au, ok := authInfo.(credentials.ChannelzSecurityInfo); ok {\n\t\tczSecurity = au.GetSecurityValue()\n\t}\n\tt.channelz = channelz.RegisterSocket(\n\t\t&channelz.Socket{\n\t\t\tSocketType:       channelz.SocketTypeNormal,\n\t\t\tParent:           config.ChannelzParent,\n\t\t\tSocketMetrics:    channelz.SocketMetrics{},\n\t\t\tEphemeralMetrics: t.socketMetrics,\n\t\t\tLocalAddr:        t.peer.LocalAddr,\n\t\t\tRemoteAddr:       t.peer.Addr,\n\t\t\tSocketOptions:    channelz.GetSocketOption(t.conn),\n\t\t\tSecurity:         czSecurity,\n\t\t},\n\t)\n\tt.logger = prefixLoggerForServerTransport(t)\n\n\tt.controlBuf = newControlBuffer(t.done)\n\tif !config.StaticWindowSize {\n\t\tt.bdpEst = &bdpEstimator{\n\t\t\tbdp:               initialWindowSize,\n\t\t\tupdateFlowControl: t.updateFlowControl,\n\t\t}\n\t}\n\n\tt.connectionID = atomic.AddUint64(&serverConnectionCounter, 1)\n\tt.framer.writer.Flush()\n\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tt.Close(err)\n\t\t}\n\t}()\n\n\t// Check the validity of client preface.\n\tpreface := make([]byte, len(clientPreface))\n\tif _, err := io.ReadFull(t.conn, preface); err != nil {\n\t\t// In deployments where a gRPC server runs behind a cloud load balancer\n\t\t// which performs regular TCP level health checks, the connection is\n\t\t// closed immediately by the latter.  Returning io.EOF here allows the\n\t\t// grpc server implementation to recognize this scenario and suppress\n\t\t// logging to reduce spam.\n\t\tif err == io.EOF {\n\t\t\treturn nil, io.EOF\n\t\t}\n\t\treturn nil, connectionErrorf(false, err, \"transport: http2Server.HandleStreams failed to receive the preface from client: %v\", err)\n\t}\n\tif !bytes.Equal(preface, clientPreface) {\n\t\treturn nil, connectionErrorf(false, nil, \"transport: http2Server.HandleStreams received bogus greeting from client: %q\", preface)\n\t}\n\n\tframe, err := t.framer.fr.ReadFrame()\n\tif err == io.EOF || err == io.ErrUnexpectedEOF {\n\t\treturn nil, err\n\t}\n\tif err != nil {\n\t\treturn nil, connectionErrorf(false, err, \"transport: http2Server.HandleStreams failed to read initial settings frame: %v\", err)\n\t}\n\tatomic.StoreInt64(&t.lastRead, time.Now().UnixNano())\n\tsf, ok := frame.(*http2.SettingsFrame)\n\tif !ok {\n\t\treturn nil, connectionErrorf(false, nil, \"transport: http2Server.HandleStreams saw invalid preface type %T from client\", frame)\n\t}\n\tt.handleSettings(sf)\n\n\tgo func() {\n\t\tt.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger, t.outgoingGoAwayHandler, t.bufferPool)\n\t\terr := t.loopy.run()\n\t\tclose(t.loopyWriterDone)\n\t\tif !isIOError(err) {\n\t\t\t// Close the connection if a non-I/O error occurs (for I/O errors\n\t\t\t// the reader will also encounter the error and close).  Wait 1\n\t\t\t// second before closing the connection, or when the reader is done\n\t\t\t// (i.e. the client already closed the connection or a connection\n\t\t\t// error occurred).  This avoids the potential problem where there\n\t\t\t// is unread data on the receive side of the connection, which, if\n\t\t\t// closed, would lead to a TCP RST instead of FIN, and the client\n\t\t\t// encountering errors.  For more info:\n\t\t\t// https://github.com/grpc/grpc-go/issues/5358\n\t\t\ttimer := time.NewTimer(time.Second)\n\t\t\tdefer timer.Stop()\n\t\t\tselect {\n\t\t\tcase <-t.readerDone:\n\t\t\tcase <-timer.C:\n\t\t\t}\n\t\t\tt.conn.Close()\n\t\t}\n\t}()\n\tgo t.keepalive()\n\treturn t, nil\n}\n\n// operateHeaders takes action on the decoded headers. Returns an error if fatal\n// error encountered and transport needs to close, otherwise returns nil.\nfunc (t *http2Server) operateHeaders(ctx context.Context, frame *http2.MetaHeadersFrame, handle func(*ServerStream)) error {\n\t// Acquire max stream ID lock for entire duration\n\tt.maxStreamMu.Lock()\n\tdefer t.maxStreamMu.Unlock()\n\n\tstreamID := frame.Header().StreamID\n\n\t// frame.Truncated is set to true when framer detects that the current header\n\t// list size hits MaxHeaderListSize limit.\n\tif frame.Truncated {\n\t\tt.controlBuf.put(&cleanupStream{\n\t\t\tstreamID: streamID,\n\t\t\trst:      true,\n\t\t\trstCode:  http2.ErrCodeFrameSize,\n\t\t\tonWrite:  func() {},\n\t\t})\n\t\treturn nil\n\t}\n\n\tif streamID%2 != 1 || streamID <= t.maxStreamID {\n\t\t// illegal gRPC stream id.\n\t\treturn fmt.Errorf(\"received an illegal stream id: %v. headers frame: %+v\", streamID, frame)\n\t}\n\tt.maxStreamID = streamID\n\n\ts := &ServerStream{\n\t\tStream: Stream{\n\t\t\tid: streamID,\n\t\t\tfc: inFlow{limit: uint32(t.initialWindowSize)},\n\t\t},\n\t\tst:               t,\n\t\theaderWireLength: int(frame.Header().Length),\n\t}\n\ts.Stream.buf.init()\n\tvar (\n\t\t// if false, content-type was missing or invalid\n\t\tisGRPC      = false\n\t\tcontentType = \"\"\n\t\tmdata       = make(metadata.MD, len(frame.Fields))\n\t\thttpMethod  string\n\t\t// these are set if an error is encountered while parsing the headers\n\t\tprotocolError bool\n\t\theaderError   *status.Status\n\n\t\ttimeoutSet bool\n\t\ttimeout    time.Duration\n\t)\n\n\tfor _, hf := range frame.Fields {\n\t\tswitch hf.Name {\n\t\tcase \"content-type\":\n\t\t\tcontentSubtype, validContentType := grpcutil.ContentSubtype(hf.Value)\n\t\t\tif !validContentType {\n\t\t\t\tcontentType = hf.Value\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tmdata[hf.Name] = append(mdata[hf.Name], hf.Value)\n\t\t\ts.contentSubtype = contentSubtype\n\t\t\tisGRPC = true\n\n\t\tcase \"grpc-accept-encoding\":\n\t\t\tmdata[hf.Name] = append(mdata[hf.Name], hf.Value)\n\t\t\tif hf.Value == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcompressors := hf.Value\n\t\t\tif s.clientAdvertisedCompressors != \"\" {\n\t\t\t\tcompressors = s.clientAdvertisedCompressors + \",\" + compressors\n\t\t\t}\n\t\t\ts.clientAdvertisedCompressors = compressors\n\t\tcase \"grpc-encoding\":\n\t\t\ts.recvCompress = hf.Value\n\t\tcase \":method\":\n\t\t\thttpMethod = hf.Value\n\t\tcase \":path\":\n\t\t\ts.method = hf.Value\n\t\tcase \"grpc-timeout\":\n\t\t\ttimeoutSet = true\n\t\t\tvar err error\n\t\t\tif timeout, err = decodeTimeout(hf.Value); err != nil {\n\t\t\t\theaderError = status.Newf(codes.Internal, \"malformed grpc-timeout: %v\", err)\n\t\t\t}\n\t\t// \"Transports must consider requests containing the Connection header\n\t\t// as malformed.\" - A41\n\t\tcase \"connection\":\n\t\t\tif t.logger.V(logLevel) {\n\t\t\t\tt.logger.Infof(\"Received a HEADERS frame with a :connection header which makes the request malformed, as per the HTTP/2 spec\")\n\t\t\t}\n\t\t\tprotocolError = true\n\t\tdefault:\n\t\t\tif isReservedHeader(hf.Name) && !isWhitelistedHeader(hf.Name) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv, err := decodeMetadataHeader(hf.Name, hf.Value)\n\t\t\tif err != nil {\n\t\t\t\theaderError = status.Newf(codes.Internal, \"malformed binary metadata %q in header %q: %v\", hf.Value, hf.Name, err)\n\t\t\t\tt.logger.Warningf(\"Failed to decode metadata header (%q, %q): %v\", hf.Name, hf.Value, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tmdata[hf.Name] = append(mdata[hf.Name], v)\n\t\t}\n\t}\n\n\t// \"If multiple Host headers or multiple :authority headers are present, the\n\t// request must be rejected with an HTTP status code 400 as required by Host\n\t// validation in RFC 7230 §5.4, gRPC status code INTERNAL, or RST_STREAM\n\t// with HTTP/2 error code PROTOCOL_ERROR.\" - A41. Since this is a HTTP/2\n\t// error, this takes precedence over a client not speaking gRPC.\n\tif len(mdata[\":authority\"]) > 1 || len(mdata[\"host\"]) > 1 {\n\t\terrMsg := fmt.Sprintf(\"num values of :authority: %v, num values of host: %v, both must only have 1 value as per HTTP/2 spec\", len(mdata[\":authority\"]), len(mdata[\"host\"]))\n\t\tif t.logger.V(logLevel) {\n\t\t\tt.logger.Infof(\"Aborting the stream early: %v\", errMsg)\n\t\t}\n\t\tt.writeEarlyAbort(streamID, s.contentSubtype, status.New(codes.Internal, errMsg), http.StatusBadRequest, !frame.StreamEnded())\n\t\treturn nil\n\t}\n\n\tif protocolError {\n\t\tt.controlBuf.put(&cleanupStream{\n\t\t\tstreamID: streamID,\n\t\t\trst:      true,\n\t\t\trstCode:  http2.ErrCodeProtocol,\n\t\t\tonWrite:  func() {},\n\t\t})\n\t\treturn nil\n\t}\n\tif !isGRPC {\n\t\tt.writeEarlyAbort(streamID, s.contentSubtype, status.Newf(codes.InvalidArgument, \"invalid gRPC request content-type %q\", contentType), http.StatusUnsupportedMediaType, !frame.StreamEnded())\n\t\treturn nil\n\t}\n\tif headerError != nil {\n\t\tt.writeEarlyAbort(streamID, s.contentSubtype, headerError, http.StatusBadRequest, !frame.StreamEnded())\n\t\treturn nil\n\t}\n\n\t// \"If :authority is missing, Host must be renamed to :authority.\" - A41\n\tif len(mdata[\":authority\"]) == 0 {\n\t\t// No-op if host isn't present, no eventual :authority header is a valid\n\t\t// RPC.\n\t\tif host, ok := mdata[\"host\"]; ok {\n\t\t\tmdata[\":authority\"] = host\n\t\t\tdelete(mdata, \"host\")\n\t\t}\n\t} else {\n\t\t// \"If :authority is present, Host must be discarded\" - A41\n\t\tdelete(mdata, \"host\")\n\t}\n\n\tif frame.StreamEnded() {\n\t\t// s is just created by the caller. No lock needed.\n\t\ts.state = streamReadDone\n\t}\n\tif timeoutSet {\n\t\ts.ctx, s.cancel = context.WithTimeout(ctx, timeout)\n\t} else {\n\t\ts.ctx, s.cancel = context.WithCancel(ctx)\n\t}\n\n\t// Attach the received metadata to the context.\n\tif len(mdata) > 0 {\n\t\ts.ctx = metadata.NewIncomingContext(s.ctx, mdata)\n\t}\n\tt.mu.Lock()\n\tif t.state != reachable {\n\t\tt.mu.Unlock()\n\t\ts.cancel()\n\t\treturn nil\n\t}\n\tif uint32(len(t.activeStreams)) >= t.maxStreams {\n\t\tt.mu.Unlock()\n\t\tt.controlBuf.put(&cleanupStream{\n\t\t\tstreamID: streamID,\n\t\t\trst:      true,\n\t\t\trstCode:  http2.ErrCodeRefusedStream,\n\t\t\tonWrite:  func() {},\n\t\t})\n\t\ts.cancel()\n\t\treturn nil\n\t}\n\tif httpMethod != http.MethodPost {\n\t\tt.mu.Unlock()\n\t\terrMsg := fmt.Sprintf(\"Received a HEADERS frame with :method %q which should be POST\", httpMethod)\n\t\tif t.logger.V(logLevel) {\n\t\t\tt.logger.Infof(\"Aborting the stream early: %v\", errMsg)\n\t\t}\n\t\tt.writeEarlyAbort(streamID, s.contentSubtype, status.New(codes.Internal, errMsg), http.StatusMethodNotAllowed, !frame.StreamEnded())\n\t\ts.cancel()\n\t\treturn nil\n\t}\n\tif t.inTapHandle != nil {\n\t\tvar err error\n\t\tif s.ctx, err = t.inTapHandle(s.ctx, &tap.Info{FullMethodName: s.method, Header: mdata}); err != nil {\n\t\t\tt.mu.Unlock()\n\t\t\tif t.logger.V(logLevel) {\n\t\t\t\tt.logger.Infof(\"Aborting the stream early due to InTapHandle failure: %v\", err)\n\t\t\t}\n\t\t\tstat, ok := status.FromError(err)\n\t\t\tif !ok {\n\t\t\t\tstat = status.New(codes.PermissionDenied, err.Error())\n\t\t\t}\n\t\t\tt.writeEarlyAbort(s.id, s.contentSubtype, stat, http.StatusOK, !frame.StreamEnded())\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tif s.ctx.Err() != nil {\n\t\tt.mu.Unlock()\n\t\tst := status.New(codes.DeadlineExceeded, context.DeadlineExceeded.Error())\n\t\t// Early abort in case the timeout was zero or so low it already fired.\n\t\tt.writeEarlyAbort(s.id, s.contentSubtype, st, http.StatusOK, !frame.StreamEnded())\n\t\treturn nil\n\t}\n\n\tt.activeStreams[streamID] = s\n\tif len(t.activeStreams) == 1 {\n\t\tt.idle = time.Time{}\n\t}\n\n\t// Start a timer to close the stream on reaching the deadline.\n\tif timeoutSet {\n\t\t// We need to wait for s.cancel to be updated before calling\n\t\t// t.closeStream to avoid data races.\n\t\tcancelUpdated := make(chan struct{})\n\t\ttimer := internal.TimeAfterFunc(timeout, func() {\n\t\t\t<-cancelUpdated\n\t\t\tt.closeStream(s, true, http2.ErrCodeCancel, false)\n\t\t})\n\t\toldCancel := s.cancel\n\t\ts.cancel = func() {\n\t\t\toldCancel()\n\t\t\ttimer.Stop()\n\t\t}\n\t\tclose(cancelUpdated)\n\t}\n\tt.mu.Unlock()\n\tif channelz.IsOn() {\n\t\tt.channelz.SocketMetrics.StreamsStarted.Add(1)\n\t\tt.channelz.SocketMetrics.LastRemoteStreamCreatedTimestamp.Store(time.Now().UnixNano())\n\t}\n\ts.readRequester = s\n\ts.ctxDone = s.ctx.Done()\n\ts.Stream.wq.init(defaultWriteQuota, s.ctxDone)\n\ts.trReader = transportReader{\n\t\treader: recvBufferReader{\n\t\t\tctx:     s.ctx,\n\t\t\tctxDone: s.ctxDone,\n\t\t\trecv:    &s.buf,\n\t\t},\n\t\twindowHandler: s,\n\t}\n\t// Register the stream with loopy.\n\tt.controlBuf.put(&registerStream{\n\t\tstreamID: s.id,\n\t\twq:       &s.wq,\n\t})\n\thandle(s)\n\treturn nil\n}\n\n// HandleStreams receives incoming streams using the given handler. This is\n// typically run in a separate goroutine.\n// traceCtx attaches trace to ctx and returns the new context.\nfunc (t *http2Server) HandleStreams(ctx context.Context, handle func(*ServerStream)) {\n\tdefer func() {\n\t\tclose(t.readerDone)\n\t\t<-t.loopyWriterDone\n\t}()\n\tfor {\n\t\tt.controlBuf.throttle()\n\t\tframe, err := t.framer.readFrame()\n\t\tatomic.StoreInt64(&t.lastRead, time.Now().UnixNano())\n\t\tif err != nil {\n\t\t\tif se, ok := err.(http2.StreamError); ok {\n\t\t\t\tif t.logger.V(logLevel) {\n\t\t\t\t\tt.logger.Warningf(\"Encountered http2.StreamError: %v\", se)\n\t\t\t\t}\n\t\t\t\tt.mu.Lock()\n\t\t\t\ts := t.activeStreams[se.StreamID]\n\t\t\t\tt.mu.Unlock()\n\t\t\t\tif s != nil {\n\t\t\t\t\tt.closeStream(s, true, se.Code, false)\n\t\t\t\t} else {\n\t\t\t\t\tt.controlBuf.put(&cleanupStream{\n\t\t\t\t\t\tstreamID: se.StreamID,\n\t\t\t\t\t\trst:      true,\n\t\t\t\t\t\trstCode:  se.Code,\n\t\t\t\t\t\tonWrite:  func() {},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tt.Close(err)\n\t\t\treturn\n\t\t}\n\t\tswitch frame := frame.(type) {\n\t\tcase *http2.MetaHeadersFrame:\n\t\t\tif err := t.operateHeaders(ctx, frame, handle); err != nil {\n\t\t\t\t// Any error processing client headers, e.g. invalid stream ID,\n\t\t\t\t// is considered a protocol violation.\n\t\t\t\tt.controlBuf.put(&goAway{\n\t\t\t\t\tcode:      http2.ErrCodeProtocol,\n\t\t\t\t\tdebugData: []byte(err.Error()),\n\t\t\t\t\tcloseConn: err,\n\t\t\t\t})\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase *parsedDataFrame:\n\t\t\tt.handleData(frame)\n\t\t\tframe.data.Free()\n\t\tcase *http2.RSTStreamFrame:\n\t\t\tt.handleRSTStream(frame)\n\t\tcase *http2.SettingsFrame:\n\t\t\tt.handleSettings(frame)\n\t\tcase *http2.PingFrame:\n\t\t\tt.handlePing(frame)\n\t\tcase *http2.WindowUpdateFrame:\n\t\t\tt.handleWindowUpdate(frame)\n\t\tcase *http2.GoAwayFrame:\n\t\t\t// TODO: Handle GoAway from the client appropriately.\n\t\tdefault:\n\t\t\tif t.logger.V(logLevel) {\n\t\t\t\tt.logger.Infof(\"Received unsupported frame type %T\", frame)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (t *http2Server) getStream(f http2.Frame) (*ServerStream, bool) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.activeStreams == nil {\n\t\t// The transport is closing.\n\t\treturn nil, false\n\t}\n\ts, ok := t.activeStreams[f.Header().StreamID]\n\tif !ok {\n\t\t// The stream is already done.\n\t\treturn nil, false\n\t}\n\treturn s, true\n}\n\n// adjustWindow sends out extra window update over the initial window size\n// of stream if the application is requesting data larger in size than\n// the window.\nfunc (t *http2Server) adjustWindow(s *ServerStream, n uint32) {\n\tif w := s.fc.maybeAdjust(n); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w})\n\t}\n\n}\n\n// updateWindow adjusts the inbound quota for the stream and the transport.\n// Window updates will deliver to the controller for sending when\n// the cumulative quota exceeds the corresponding threshold.\nfunc (t *http2Server) updateWindow(s *ServerStream, n uint32) {\n\tif w := s.fc.onRead(n); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{streamID: s.id,\n\t\t\tincrement: w,\n\t\t})\n\t}\n}\n\n// updateFlowControl updates the incoming flow control windows\n// for the transport and the stream based on the current bdp\n// estimation.\nfunc (t *http2Server) updateFlowControl(n uint32) {\n\tt.mu.Lock()\n\tfor _, s := range t.activeStreams {\n\t\ts.fc.newLimit(n)\n\t}\n\tt.initialWindowSize = int32(n)\n\tt.mu.Unlock()\n\tt.controlBuf.put(&outgoingWindowUpdate{\n\t\tstreamID:  0,\n\t\tincrement: t.fc.newLimit(n),\n\t})\n\tt.controlBuf.put(&outgoingSettings{\n\t\tss: []http2.Setting{\n\t\t\t{\n\t\t\t\tID:  http2.SettingInitialWindowSize,\n\t\t\t\tVal: n,\n\t\t\t},\n\t\t},\n\t})\n\n}\n\nfunc (t *http2Server) handleData(f *parsedDataFrame) {\n\tsize := f.Header().Length\n\tvar sendBDPPing bool\n\tif t.bdpEst != nil {\n\t\tsendBDPPing = t.bdpEst.add(size)\n\t}\n\t// Decouple connection's flow control from application's read.\n\t// An update on connection's flow control should not depend on\n\t// whether user application has read the data or not. Such a\n\t// restriction is already imposed on the stream's flow control,\n\t// and therefore the sender will be blocked anyways.\n\t// Decoupling the connection flow control will prevent other\n\t// active(fast) streams from starving in presence of slow or\n\t// inactive streams.\n\tif w := t.fc.onData(size); w > 0 {\n\t\tt.controlBuf.put(&outgoingWindowUpdate{\n\t\t\tstreamID:  0,\n\t\t\tincrement: w,\n\t\t})\n\t}\n\tif sendBDPPing {\n\t\t// Avoid excessive ping detection (e.g. in an L7 proxy)\n\t\t// by sending a window update prior to the BDP ping.\n\t\tif w := t.fc.reset(); w > 0 {\n\t\t\tt.controlBuf.put(&outgoingWindowUpdate{\n\t\t\t\tstreamID:  0,\n\t\t\t\tincrement: w,\n\t\t\t})\n\t\t}\n\t\tt.controlBuf.put(bdpPing)\n\t}\n\t// Select the right stream to dispatch.\n\ts, ok := t.getStream(f)\n\tif !ok {\n\t\treturn\n\t}\n\tif s.getState() == streamReadDone {\n\t\tt.closeStream(s, true, http2.ErrCodeStreamClosed, false)\n\t\treturn\n\t}\n\tif size > 0 {\n\t\tif err := s.fc.onData(size); err != nil {\n\t\t\tt.closeStream(s, true, http2.ErrCodeFlowControl, false)\n\t\t\treturn\n\t\t}\n\t\tdataLen := f.data.Len()\n\t\tif f.Header().Flags.Has(http2.FlagDataPadded) {\n\t\t\tif w := s.fc.onRead(size - uint32(dataLen)); w > 0 {\n\t\t\t\tt.controlBuf.put(&outgoingWindowUpdate{s.id, w})\n\t\t\t}\n\t\t}\n\t\tif dataLen > 0 {\n\t\t\tf.data.Ref()\n\t\t\ts.write(recvMsg{buffer: f.data})\n\t\t}\n\t}\n\tif f.StreamEnded() {\n\t\t// Received the end of stream from the client.\n\t\ts.compareAndSwapState(streamActive, streamReadDone)\n\t\ts.write(recvMsg{err: io.EOF})\n\t}\n}\n\nfunc (t *http2Server) handleRSTStream(f *http2.RSTStreamFrame) {\n\t// If the stream is not deleted from the transport's active streams map, then do a regular close stream.\n\tif s, ok := t.getStream(f); ok {\n\t\tt.closeStream(s, false, 0, false)\n\t\treturn\n\t}\n\t// 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.\n\tt.controlBuf.put(&cleanupStream{\n\t\tstreamID: f.Header().StreamID,\n\t\trst:      false,\n\t\trstCode:  0,\n\t\tonWrite:  func() {},\n\t})\n}\n\nfunc (t *http2Server) handleSettings(f *http2.SettingsFrame) {\n\tif f.IsAck() {\n\t\treturn\n\t}\n\tvar ss []http2.Setting\n\tvar updateFuncs []func()\n\tf.ForeachSetting(func(s http2.Setting) error {\n\t\tswitch s.ID {\n\t\tcase http2.SettingMaxHeaderListSize:\n\t\t\tupdateFuncs = append(updateFuncs, func() {\n\t\t\t\tt.maxSendHeaderListSize = new(uint32)\n\t\t\t\t*t.maxSendHeaderListSize = s.Val\n\t\t\t})\n\t\tdefault:\n\t\t\tss = append(ss, s)\n\t\t}\n\t\treturn nil\n\t})\n\tt.controlBuf.executeAndPut(func() bool {\n\t\tfor _, f := range updateFuncs {\n\t\t\tf()\n\t\t}\n\t\treturn true\n\t}, &incomingSettings{\n\t\tss: ss,\n\t})\n}\n\nconst (\n\tmaxPingStrikes     = 2\n\tdefaultPingTimeout = 2 * time.Hour\n)\n\nfunc (t *http2Server) handlePing(f *http2.PingFrame) {\n\tif f.IsAck() {\n\t\tif f.Data == goAwayPing.data && t.drainEvent != nil {\n\t\t\tt.drainEvent.Fire()\n\t\t\treturn\n\t\t}\n\t\t// Maybe it's a BDP ping.\n\t\tif t.bdpEst != nil {\n\t\t\tt.bdpEst.calculate(f.Data)\n\t\t}\n\t\treturn\n\t}\n\tpingAck := &ping{ack: true}\n\tcopy(pingAck.data[:], f.Data[:])\n\tt.controlBuf.put(pingAck)\n\n\tnow := time.Now()\n\tdefer func() {\n\t\tt.lastPingAt = now\n\t}()\n\t// A reset ping strikes means that we don't need to check for policy\n\t// violation for this ping and the pingStrikes counter should be set\n\t// to 0.\n\tif atomic.CompareAndSwapUint32(&t.resetPingStrikes, 1, 0) {\n\t\tt.pingStrikes = 0\n\t\treturn\n\t}\n\tt.mu.Lock()\n\tns := len(t.activeStreams)\n\tt.mu.Unlock()\n\tif ns < 1 && !t.kep.PermitWithoutStream {\n\t\t// Keepalive shouldn't be active thus, this new ping should\n\t\t// have come after at least defaultPingTimeout.\n\t\tif t.lastPingAt.Add(defaultPingTimeout).After(now) {\n\t\t\tt.pingStrikes++\n\t\t}\n\t} else {\n\t\t// Check if keepalive policy is respected.\n\t\tif t.lastPingAt.Add(t.kep.MinTime).After(now) {\n\t\t\tt.pingStrikes++\n\t\t}\n\t}\n\n\tif t.pingStrikes > maxPingStrikes {\n\t\t// Send goaway and close the connection.\n\t\tt.controlBuf.put(&goAway{code: http2.ErrCodeEnhanceYourCalm, debugData: []byte(\"too_many_pings\"), closeConn: errors.New(\"got too many pings from the client\")})\n\t}\n}\n\nfunc (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) {\n\tt.controlBuf.put(&incomingWindowUpdate{\n\t\tstreamID:  f.Header().StreamID,\n\t\tincrement: f.Increment,\n\t})\n}\n\nfunc appendHeaderFieldsFromMD(headerFields []hpack.HeaderField, md metadata.MD) []hpack.HeaderField {\n\tfor k, vv := range md {\n\t\tif isReservedHeader(k) {\n\t\t\t// Clients don't tolerate reading restricted headers after some non restricted ones were sent.\n\t\t\tcontinue\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)})\n\t\t}\n\t}\n\treturn headerFields\n}\n\nfunc (t *http2Server) checkForHeaderListSize(hf []hpack.HeaderField) bool {\n\tif t.maxSendHeaderListSize == nil {\n\t\treturn true\n\t}\n\tvar sz int64\n\tfor _, f := range hf {\n\t\tif sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) {\n\t\t\tif t.logger.V(logLevel) {\n\t\t\t\tt.logger.Infof(\"Header list size to send violates the maximum size (%d bytes) set by client\", *t.maxSendHeaderListSize)\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// writeEarlyAbort sends an early abort response with the given HTTP status and\n// gRPC status. If the header list size exceeds the peer's limit, it sends a\n// RST_STREAM instead.\nfunc (t *http2Server) writeEarlyAbort(streamID uint32, contentSubtype string, stat *status.Status, httpStatus uint32, rst bool) {\n\thf := []hpack.HeaderField{\n\t\t{Name: \":status\", Value: strconv.Itoa(int(httpStatus))},\n\t\t{Name: \"content-type\", Value: grpcutil.ContentType(contentSubtype)},\n\t\t{Name: \"grpc-status\", Value: strconv.Itoa(int(stat.Code()))},\n\t\t{Name: \"grpc-message\", Value: encodeGrpcMessage(stat.Message())},\n\t}\n\tif p := istatus.RawStatusProto(stat); len(p.GetDetails()) > 0 {\n\t\tstBytes, err := proto.Marshal(p)\n\t\tif err != nil {\n\t\t\tt.logger.Errorf(\"Failed to marshal rpc status: %s, error: %v\", pretty.ToJSON(p), err)\n\t\t}\n\t\tif err == nil {\n\t\t\thf = append(hf, hpack.HeaderField{Name: grpcStatusDetailsBinHeader, Value: encodeBinHeader(stBytes)})\n\t\t}\n\t}\n\tsuccess, _ := t.controlBuf.executeAndPut(func() bool {\n\t\treturn t.checkForHeaderListSize(hf)\n\t}, &earlyAbortStream{\n\t\tstreamID: streamID,\n\t\trst:      rst,\n\t\thf:       hf,\n\t})\n\tif !success {\n\t\tt.controlBuf.put(&cleanupStream{\n\t\t\tstreamID: streamID,\n\t\t\trst:      true,\n\t\t\trstCode:  http2.ErrCodeInternal,\n\t\t\tonWrite:  func() {},\n\t\t})\n\t}\n}\n\nfunc (t *http2Server) streamContextErr(s *ServerStream) error {\n\tselect {\n\tcase <-t.done:\n\t\treturn ErrConnClosing\n\tdefault:\n\t}\n\treturn ContextErr(s.ctx.Err())\n}\n\n// WriteHeader sends the header metadata md back to the client.\nfunc (t *http2Server) writeHeader(s *ServerStream, md metadata.MD) error {\n\ts.hdrMu.Lock()\n\tdefer s.hdrMu.Unlock()\n\tif s.getState() == streamDone {\n\t\treturn t.streamContextErr(s)\n\t}\n\n\tif s.updateHeaderSent() {\n\t\treturn ErrIllegalHeaderWrite\n\t}\n\n\tif md.Len() > 0 {\n\t\tif s.header.Len() > 0 {\n\t\t\ts.header = metadata.Join(s.header, md)\n\t\t} else {\n\t\t\ts.header = md\n\t\t}\n\t}\n\tif err := t.writeHeaderLocked(s); err != nil {\n\t\tswitch e := err.(type) {\n\t\tcase ConnectionError:\n\t\t\treturn status.Error(codes.Unavailable, e.Desc)\n\t\tdefault:\n\t\t\treturn status.Convert(err).Err()\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *http2Server) writeHeaderLocked(s *ServerStream) error {\n\t// TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields\n\t// first and create a slice of that exact size.\n\theaderFields := make([]hpack.HeaderField, 0, 2) // at least :status, content-type will be there if none else.\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \":status\", Value: \"200\"})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"content-type\", Value: grpcutil.ContentType(s.contentSubtype)})\n\tif s.sendCompress != \"\" {\n\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-encoding\", Value: s.sendCompress})\n\t}\n\theaderFields = appendHeaderFieldsFromMD(headerFields, s.header)\n\thf := &headerFrame{\n\t\tstreamID:  s.id,\n\t\thf:        headerFields,\n\t\tendStream: false,\n\t\tonWrite:   t.setResetPingStrikes,\n\t}\n\tsuccess, err := t.controlBuf.executeAndPut(func() bool { return t.checkForHeaderListSize(hf.hf) }, hf)\n\tif !success {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tt.closeStream(s, true, http2.ErrCodeInternal, false)\n\t\treturn ErrHeaderListSizeLimitViolation\n\t}\n\tif t.stats != nil {\n\t\t// Note: Headers are compressed with hpack after this call returns.\n\t\t// No WireLength field is set here.\n\t\tt.stats.HandleRPC(s.Context(), &stats.OutHeader{\n\t\t\tHeader:      s.header.Copy(),\n\t\t\tCompression: s.sendCompress,\n\t\t})\n\t}\n\treturn nil\n}\n\n// writeStatus sends stream status to the client and terminates the stream.\n// There is no further I/O operations being able to perform on this stream.\n// TODO(zhaoq): Now it indicates the end of entire stream. Revisit if early\n// OK is adopted.\nfunc (t *http2Server) writeStatus(s *ServerStream, st *status.Status) error {\n\ts.hdrMu.Lock()\n\tdefer s.hdrMu.Unlock()\n\n\tif s.getState() == streamDone {\n\t\treturn nil\n\t}\n\n\t// TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields\n\t// first and create a slice of that exact size.\n\theaderFields := make([]hpack.HeaderField, 0, 2) // grpc-status and grpc-message will be there if none else.\n\tif !s.updateHeaderSent() {                      // No headers have been sent.\n\t\tif len(s.header) > 0 { // Send a separate header frame.\n\t\t\tif err := t.writeHeaderLocked(s); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else { // Send a trailer only response.\n\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \":status\", Value: \"200\"})\n\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: \"content-type\", Value: grpcutil.ContentType(s.contentSubtype)})\n\t\t}\n\t}\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-status\", Value: strconv.Itoa(int(st.Code()))})\n\theaderFields = append(headerFields, hpack.HeaderField{Name: \"grpc-message\", Value: encodeGrpcMessage(st.Message())})\n\n\tif p := istatus.RawStatusProto(st); len(p.GetDetails()) > 0 {\n\t\t// Do not use the user's grpc-status-details-bin (if present) if we are\n\t\t// even attempting to set our own.\n\t\tdelete(s.trailer, grpcStatusDetailsBinHeader)\n\t\tstBytes, err := proto.Marshal(p)\n\t\tif err != nil {\n\t\t\t// TODO: return error instead, when callers are able to handle it.\n\t\t\tt.logger.Errorf(\"Failed to marshal rpc status: %s, error: %v\", pretty.ToJSON(p), err)\n\t\t} else {\n\t\t\theaderFields = append(headerFields, hpack.HeaderField{Name: grpcStatusDetailsBinHeader, Value: encodeBinHeader(stBytes)})\n\t\t}\n\t}\n\n\t// Attach the trailer metadata.\n\theaderFields = appendHeaderFieldsFromMD(headerFields, s.trailer)\n\ttrailingHeader := &headerFrame{\n\t\tstreamID:  s.id,\n\t\thf:        headerFields,\n\t\tendStream: true,\n\t\tonWrite:   t.setResetPingStrikes,\n\t}\n\n\tsuccess, err := t.controlBuf.executeAndPut(func() bool {\n\t\treturn t.checkForHeaderListSize(trailingHeader.hf)\n\t}, nil)\n\tif !success {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tt.closeStream(s, true, http2.ErrCodeInternal, false)\n\t\treturn ErrHeaderListSizeLimitViolation\n\t}\n\t// Send a RST_STREAM after the trailers if the client has not already half-closed.\n\trst := s.getState() == streamActive\n\tt.finishStream(s, rst, http2.ErrCodeNo, trailingHeader, true)\n\tif t.stats != nil {\n\t\t// Note: The trailer fields are compressed with hpack after this call returns.\n\t\t// No WireLength field is set here.\n\t\tt.stats.HandleRPC(s.Context(), &stats.OutTrailer{\n\t\t\tTrailer: s.trailer.Copy(),\n\t\t})\n\t}\n\treturn nil\n}\n\n// Write converts the data into HTTP2 data frame and sends it out. Non-nil error\n// is returns if it fails (e.g., framing error, transport error).\nfunc (t *http2Server) write(s *ServerStream, hdr []byte, data mem.BufferSlice, _ *WriteOptions) error {\n\tif !s.isHeaderSent() { // Headers haven't been written yet.\n\t\tif err := t.writeHeader(s, nil); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// Writing headers checks for this condition.\n\t\tif s.getState() == streamDone {\n\t\t\treturn t.streamContextErr(s)\n\t\t}\n\t}\n\n\tdf := &dataFrame{\n\t\tstreamID:    s.id,\n\t\th:           hdr,\n\t\tdata:        data,\n\t\tonEachWrite: t.setResetPingStrikes,\n\t}\n\tdataLen := data.Len()\n\tif err := s.wq.get(int32(len(hdr) + dataLen)); err != nil {\n\t\treturn t.streamContextErr(s)\n\t}\n\tdata.Ref()\n\tif err := t.controlBuf.put(df); err != nil {\n\t\tdata.Free()\n\t\treturn err\n\t}\n\tt.incrMsgSent()\n\treturn nil\n}\n\n// keepalive running in a separate goroutine does the following:\n// 1. Gracefully closes an idle connection after a duration of keepalive.MaxConnectionIdle.\n// 2. Gracefully closes any connection after a duration of keepalive.MaxConnectionAge.\n// 3. Forcibly closes a connection after an additive period of keepalive.MaxConnectionAgeGrace over keepalive.MaxConnectionAge.\n// 4. Makes sure a connection is alive by sending pings with a frequency of keepalive.Time and closes a non-responsive connection\n// after an additional duration of keepalive.Timeout.\nfunc (t *http2Server) keepalive() {\n\tp := &ping{}\n\t// True iff a ping has been sent, and no data has been received since then.\n\toutstandingPing := false\n\t// Amount of time remaining before which we should receive an ACK for the\n\t// last sent ping.\n\tkpTimeoutLeft := time.Duration(0)\n\t// Records the last value of t.lastRead before we go block on the timer.\n\t// This is required to check for read activity since then.\n\tprevNano := time.Now().UnixNano()\n\t// Initialize the different timers to their default values.\n\tidleTimer := time.NewTimer(t.kp.MaxConnectionIdle)\n\tageTimer := time.NewTimer(t.kp.MaxConnectionAge)\n\tkpTimer := time.NewTimer(t.kp.Time)\n\tdefer func() {\n\t\t// We need to drain the underlying channel in these timers after a call\n\t\t// to Stop(), only if we are interested in resetting them. Clearly we\n\t\t// are not interested in resetting them here.\n\t\tidleTimer.Stop()\n\t\tageTimer.Stop()\n\t\tkpTimer.Stop()\n\t}()\n\n\tfor {\n\t\tselect {\n\t\tcase <-idleTimer.C:\n\t\t\tt.mu.Lock()\n\t\t\tidle := t.idle\n\t\t\tif idle.IsZero() { // The connection is non-idle.\n\t\t\t\tt.mu.Unlock()\n\t\t\t\tidleTimer.Reset(t.kp.MaxConnectionIdle)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tval := t.kp.MaxConnectionIdle - time.Since(idle)\n\t\t\tt.mu.Unlock()\n\t\t\tif val <= 0 {\n\t\t\t\t// The connection has been idle for a duration of keepalive.MaxConnectionIdle or more.\n\t\t\t\t// Gracefully close the connection.\n\t\t\t\tt.Drain(\"max_idle\")\n\t\t\t\treturn\n\t\t\t}\n\t\t\tidleTimer.Reset(val)\n\t\tcase <-ageTimer.C:\n\t\t\tt.Drain(\"max_age\")\n\t\t\tageTimer.Reset(t.kp.MaxConnectionAgeGrace)\n\t\t\tselect {\n\t\t\tcase <-ageTimer.C:\n\t\t\t\t// Close the connection after grace period.\n\t\t\t\tif t.logger.V(logLevel) {\n\t\t\t\t\tt.logger.Infof(\"Closing server transport due to maximum connection age\")\n\t\t\t\t}\n\t\t\t\tt.controlBuf.put(closeConnection{})\n\t\t\tcase <-t.done:\n\t\t\t}\n\t\t\treturn\n\t\tcase <-kpTimer.C:\n\t\t\tlastRead := atomic.LoadInt64(&t.lastRead)\n\t\t\tif lastRead > prevNano {\n\t\t\t\t// There has been read activity since the last time we were\n\t\t\t\t// here. Setup the timer to fire at kp.Time seconds from\n\t\t\t\t// lastRead time and continue.\n\t\t\t\toutstandingPing = false\n\t\t\t\tkpTimer.Reset(time.Duration(lastRead) + t.kp.Time - time.Duration(time.Now().UnixNano()))\n\t\t\t\tprevNano = lastRead\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif outstandingPing && kpTimeoutLeft <= 0 {\n\t\t\t\tt.Close(fmt.Errorf(\"keepalive ping not acked within timeout %s\", t.kp.Timeout))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !outstandingPing {\n\t\t\t\tif channelz.IsOn() {\n\t\t\t\t\tt.channelz.SocketMetrics.KeepAlivesSent.Add(1)\n\t\t\t\t}\n\t\t\t\tt.controlBuf.put(p)\n\t\t\t\tkpTimeoutLeft = t.kp.Timeout\n\t\t\t\toutstandingPing = true\n\t\t\t}\n\t\t\t// The amount of time to sleep here is the minimum of kp.Time and\n\t\t\t// timeoutLeft. This will ensure that we wait only for kp.Time\n\t\t\t// before sending out the next ping (for cases where the ping is\n\t\t\t// acked).\n\t\t\tsleepDuration := min(t.kp.Time, kpTimeoutLeft)\n\t\t\tkpTimeoutLeft -= sleepDuration\n\t\t\tkpTimer.Reset(sleepDuration)\n\t\tcase <-t.done:\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// Close starts shutting down the http2Server transport.\n// TODO(zhaoq): Now the destruction is not blocked on any pending streams. This\n// could cause some resource issue. Revisit this later.\nfunc (t *http2Server) Close(err error) {\n\tt.mu.Lock()\n\tif t.state == closing {\n\t\tt.mu.Unlock()\n\t\treturn\n\t}\n\tif t.logger.V(logLevel) {\n\t\tt.logger.Infof(\"Closing: %v\", err)\n\t}\n\tt.state = closing\n\tstreams := t.activeStreams\n\tt.activeStreams = nil\n\tt.mu.Unlock()\n\tt.controlBuf.finish()\n\tclose(t.done)\n\tif err := t.conn.Close(); err != nil && t.logger.V(logLevel) {\n\t\tt.logger.Infof(\"Error closing underlying net.Conn during Close: %v\", err)\n\t}\n\tchannelz.RemoveEntry(t.channelz.ID)\n\t// Cancel all active streams.\n\tfor _, s := range streams {\n\t\ts.cancel()\n\t}\n}\n\n// deleteStream deletes the stream s from transport's active streams.\nfunc (t *http2Server) deleteStream(s *ServerStream, eosReceived bool) {\n\tt.mu.Lock()\n\t_, isActive := t.activeStreams[s.id]\n\tif isActive {\n\t\tdelete(t.activeStreams, s.id)\n\t\tif len(t.activeStreams) == 0 {\n\t\t\tt.idle = time.Now()\n\t\t}\n\t}\n\tt.mu.Unlock()\n\n\tif isActive && channelz.IsOn() {\n\t\tif eosReceived {\n\t\t\tt.channelz.SocketMetrics.StreamsSucceeded.Add(1)\n\t\t} else {\n\t\t\tt.channelz.SocketMetrics.StreamsFailed.Add(1)\n\t\t}\n\t}\n}\n\n// finishStream closes the stream and puts the trailing headerFrame into controlbuf.\nfunc (t *http2Server) finishStream(s *ServerStream, rst bool, rstCode http2.ErrCode, hdr *headerFrame, eosReceived bool) {\n\t// In case stream sending and receiving are invoked in separate\n\t// goroutines (e.g., bi-directional streaming), cancel needs to be\n\t// called to interrupt the potential blocking on other goroutines.\n\ts.cancel()\n\n\toldState := s.swapState(streamDone)\n\tif oldState == streamDone {\n\t\t// If the stream was already done, return.\n\t\treturn\n\t}\n\n\thdr.cleanup = &cleanupStream{\n\t\tstreamID: s.id,\n\t\trst:      rst,\n\t\trstCode:  rstCode,\n\t\tonWrite: func() {\n\t\t\tt.deleteStream(s, eosReceived)\n\t\t},\n\t}\n\tt.controlBuf.put(hdr)\n}\n\n// closeStream clears the footprint of a stream when the stream is not needed any more.\nfunc (t *http2Server) closeStream(s *ServerStream, rst bool, rstCode http2.ErrCode, eosReceived bool) {\n\t// In case stream sending and receiving are invoked in separate\n\t// goroutines (e.g., bi-directional streaming), cancel needs to be\n\t// called to interrupt the potential blocking on other goroutines.\n\ts.cancel()\n\n\t// We can't return early even if the stream's state is \"done\" as the state\n\t// might have been set by the `finishStream` method. Deleting the stream via\n\t// `finishStream` can get blocked on flow control.\n\ts.swapState(streamDone)\n\tt.deleteStream(s, eosReceived)\n\n\tt.controlBuf.put(&cleanupStream{\n\t\tstreamID: s.id,\n\t\trst:      rst,\n\t\trstCode:  rstCode,\n\t\tonWrite:  func() {},\n\t})\n}\n\nfunc (t *http2Server) Drain(debugData string) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.drainEvent != nil {\n\t\treturn\n\t}\n\tt.drainEvent = grpcsync.NewEvent()\n\tt.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte(debugData), headsUp: true})\n}\n\nvar goAwayPing = &ping{data: [8]byte{1, 6, 1, 8, 0, 3, 3, 9}}\n\n// Handles outgoing GoAway and returns true if loopy needs to put itself\n// in draining mode.\nfunc (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) {\n\tt.maxStreamMu.Lock()\n\tt.mu.Lock()\n\tif t.state == closing { // TODO(mmukhi): This seems unnecessary.\n\t\tt.mu.Unlock()\n\t\tt.maxStreamMu.Unlock()\n\t\t// The transport is closing.\n\t\treturn false, ErrConnClosing\n\t}\n\tif !g.headsUp {\n\t\t// Stop accepting more streams now.\n\t\tt.state = draining\n\t\tsid := t.maxStreamID\n\t\tretErr := g.closeConn\n\t\tif len(t.activeStreams) == 0 {\n\t\t\tretErr = errors.New(\"second GOAWAY written and no active streams left to process\")\n\t\t}\n\t\tt.mu.Unlock()\n\t\tt.maxStreamMu.Unlock()\n\t\tif err := t.framer.fr.WriteGoAway(sid, g.code, g.debugData); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tt.framer.writer.Flush()\n\t\tif retErr != nil {\n\t\t\treturn false, retErr\n\t\t}\n\t\treturn true, nil\n\t}\n\tt.mu.Unlock()\n\tt.maxStreamMu.Unlock()\n\t// For a graceful close, send out a GoAway with stream ID of MaxUInt32,\n\t// Follow that with a ping and wait for the ack to come back or a timer\n\t// to expire. During this time accept new streams since they might have\n\t// originated before the GoAway reaches the client.\n\t// After getting the ack or timer expiration send out another GoAway this\n\t// time with an ID of the max stream server intends to process.\n\tif err := t.framer.fr.WriteGoAway(math.MaxUint32, http2.ErrCodeNo, g.debugData); err != nil {\n\t\treturn false, err\n\t}\n\tif err := t.framer.fr.WritePing(false, goAwayPing.data); err != nil {\n\t\treturn false, err\n\t}\n\tgo func() {\n\t\ttimer := time.NewTimer(5 * time.Second)\n\t\tdefer timer.Stop()\n\t\tselect {\n\t\tcase <-t.drainEvent.Done():\n\t\tcase <-timer.C:\n\t\tcase <-t.done:\n\t\t\treturn\n\t\t}\n\t\tt.controlBuf.put(&goAway{code: g.code, debugData: g.debugData})\n\t}()\n\treturn false, nil\n}\n\nfunc (t *http2Server) socketMetrics() *channelz.EphemeralSocketMetrics {\n\treturn &channelz.EphemeralSocketMetrics{\n\t\tLocalFlowControlWindow:  int64(t.fc.getSize()),\n\t\tRemoteFlowControlWindow: t.getOutFlowWindow(),\n\t}\n}\n\nfunc (t *http2Server) incrMsgSent() {\n\tif channelz.IsOn() {\n\t\tt.channelz.SocketMetrics.MessagesSent.Add(1)\n\t\tt.channelz.SocketMetrics.LastMessageSentTimestamp.Add(1)\n\t}\n}\n\nfunc (t *http2Server) incrMsgRecv() {\n\tif channelz.IsOn() {\n\t\tt.channelz.SocketMetrics.MessagesReceived.Add(1)\n\t\tt.channelz.SocketMetrics.LastMessageReceivedTimestamp.Add(1)\n\t}\n}\n\nfunc (t *http2Server) getOutFlowWindow() int64 {\n\tresp := make(chan uint32, 1)\n\ttimer := time.NewTimer(time.Second)\n\tdefer timer.Stop()\n\tt.controlBuf.put(&outFlowControlSizeRequest{resp})\n\tselect {\n\tcase sz := <-resp:\n\t\treturn int64(sz)\n\tcase <-t.done:\n\t\treturn -1\n\tcase <-timer.C:\n\t\treturn -2\n\t}\n}\n\n// Peer returns the peer of the transport.\nfunc (t *http2Server) Peer() *peer.Peer {\n\treturn &peer.Peer{\n\t\tAddr:      t.peer.Addr,\n\t\tLocalAddr: t.peer.LocalAddr,\n\t\tAuthInfo:  t.peer.AuthInfo, // Can be nil\n\t}\n}\n\nfunc getJitter(v time.Duration) time.Duration {\n\tif v == infinity {\n\t\treturn 0\n\t}\n\t// Generate a jitter between +/- 10% of the value.\n\tr := int64(v / 10)\n\tj := rand.Int64N(2*r) - r\n\treturn time.Duration(j)\n}\n\ntype connectionKey struct{}\n\n// GetConnection gets the connection from the context.\nfunc GetConnection(ctx context.Context) net.Conn {\n\tconn, _ := ctx.Value(connectionKey{}).(net.Conn)\n\treturn conn\n}\n\n// SetConnection adds the connection to the context to be able to get\n// information about the destination ip and port for an incoming RPC. This also\n// allows any unary or streaming interceptors to see the connection.\nfunc SetConnection(ctx context.Context, conn net.Conn) context.Context {\n\treturn context.WithValue(ctx, connectionKey{}, conn)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/http_util.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"bufio\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/net/http2\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/mem\"\n)\n\nconst (\n\t// http2MaxFrameLen specifies the max length of a HTTP2 frame.\n\thttp2MaxFrameLen = 16384 // 16KB frame\n\t// https://httpwg.org/specs/rfc7540.html#SettingValues\n\thttp2InitHeaderTableSize = 4096\n)\n\nvar (\n\tclientPreface   = []byte(http2.ClientPreface)\n\thttp2ErrConvTab = map[http2.ErrCode]codes.Code{\n\t\thttp2.ErrCodeNo:                 codes.Internal,\n\t\thttp2.ErrCodeProtocol:           codes.Internal,\n\t\thttp2.ErrCodeInternal:           codes.Internal,\n\t\thttp2.ErrCodeFlowControl:        codes.ResourceExhausted,\n\t\thttp2.ErrCodeSettingsTimeout:    codes.Internal,\n\t\thttp2.ErrCodeStreamClosed:       codes.Internal,\n\t\thttp2.ErrCodeFrameSize:          codes.Internal,\n\t\thttp2.ErrCodeRefusedStream:      codes.Unavailable,\n\t\thttp2.ErrCodeCancel:             codes.Canceled,\n\t\thttp2.ErrCodeCompression:        codes.Internal,\n\t\thttp2.ErrCodeConnect:            codes.Internal,\n\t\thttp2.ErrCodeEnhanceYourCalm:    codes.ResourceExhausted,\n\t\thttp2.ErrCodeInadequateSecurity: codes.PermissionDenied,\n\t\thttp2.ErrCodeHTTP11Required:     codes.Internal,\n\t}\n\t// HTTPStatusConvTab is the HTTP status code to gRPC error code conversion table.\n\tHTTPStatusConvTab = map[int]codes.Code{\n\t\t// 400 Bad Request - INTERNAL.\n\t\thttp.StatusBadRequest: codes.Internal,\n\t\t// 401 Unauthorized  - UNAUTHENTICATED.\n\t\thttp.StatusUnauthorized: codes.Unauthenticated,\n\t\t// 403 Forbidden - PERMISSION_DENIED.\n\t\thttp.StatusForbidden: codes.PermissionDenied,\n\t\t// 404 Not Found - UNIMPLEMENTED.\n\t\thttp.StatusNotFound: codes.Unimplemented,\n\t\t// 429 Too Many Requests - UNAVAILABLE.\n\t\thttp.StatusTooManyRequests: codes.Unavailable,\n\t\t// 502 Bad Gateway - UNAVAILABLE.\n\t\thttp.StatusBadGateway: codes.Unavailable,\n\t\t// 503 Service Unavailable - UNAVAILABLE.\n\t\thttp.StatusServiceUnavailable: codes.Unavailable,\n\t\t// 504 Gateway timeout - UNAVAILABLE.\n\t\thttp.StatusGatewayTimeout: codes.Unavailable,\n\t}\n)\n\nvar grpcStatusDetailsBinHeader = \"grpc-status-details-bin\"\n\n// isReservedHeader checks whether hdr belongs to HTTP2 headers\n// reserved by gRPC protocol. Any other headers are classified as the\n// user-specified metadata.\nfunc isReservedHeader(hdr string) bool {\n\tif hdr != \"\" && hdr[0] == ':' {\n\t\treturn true\n\t}\n\tswitch hdr {\n\tcase \"content-type\",\n\t\t\"user-agent\",\n\t\t\"grpc-message-type\",\n\t\t\"grpc-encoding\",\n\t\t\"grpc-message\",\n\t\t\"grpc-status\",\n\t\t\"grpc-timeout\",\n\t\t// Intentionally exclude grpc-previous-rpc-attempts and\n\t\t// grpc-retry-pushback-ms, which are \"reserved\", but their API\n\t\t// intentionally works via metadata.\n\t\t\"te\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// isWhitelistedHeader checks whether hdr should be propagated into metadata\n// visible to users, even though it is classified as \"reserved\", above.\nfunc isWhitelistedHeader(hdr string) bool {\n\tswitch hdr {\n\tcase \":authority\", \"user-agent\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nconst binHdrSuffix = \"-bin\"\n\nfunc encodeBinHeader(v []byte) string {\n\treturn base64.RawStdEncoding.EncodeToString(v)\n}\n\nfunc decodeBinHeader(v string) ([]byte, error) {\n\tif len(v)%4 == 0 {\n\t\t// Input was padded, or padding was not necessary.\n\t\treturn base64.StdEncoding.DecodeString(v)\n\t}\n\treturn base64.RawStdEncoding.DecodeString(v)\n}\n\nfunc encodeMetadataHeader(k, v string) string {\n\tif strings.HasSuffix(k, binHdrSuffix) {\n\t\treturn encodeBinHeader(([]byte)(v))\n\t}\n\treturn v\n}\n\nfunc decodeMetadataHeader(k, v string) (string, error) {\n\tif strings.HasSuffix(k, binHdrSuffix) {\n\t\tb, err := decodeBinHeader(v)\n\t\treturn string(b), err\n\t}\n\treturn v, nil\n}\n\ntype timeoutUnit uint8\n\nconst (\n\thour        timeoutUnit = 'H'\n\tminute      timeoutUnit = 'M'\n\tsecond      timeoutUnit = 'S'\n\tmillisecond timeoutUnit = 'm'\n\tmicrosecond timeoutUnit = 'u'\n\tnanosecond  timeoutUnit = 'n'\n)\n\nfunc timeoutUnitToDuration(u timeoutUnit) (d time.Duration, ok bool) {\n\tswitch u {\n\tcase hour:\n\t\treturn time.Hour, true\n\tcase minute:\n\t\treturn time.Minute, true\n\tcase second:\n\t\treturn time.Second, true\n\tcase millisecond:\n\t\treturn time.Millisecond, true\n\tcase microsecond:\n\t\treturn time.Microsecond, true\n\tcase nanosecond:\n\t\treturn time.Nanosecond, true\n\tdefault:\n\t}\n\treturn\n}\n\nfunc decodeTimeout(s string) (time.Duration, error) {\n\tsize := len(s)\n\tif size < 2 {\n\t\treturn 0, fmt.Errorf(\"transport: timeout string is too short: %q\", s)\n\t}\n\tif size > 9 {\n\t\t// Spec allows for 8 digits plus the unit.\n\t\treturn 0, fmt.Errorf(\"transport: timeout string is too long: %q\", s)\n\t}\n\tunit := timeoutUnit(s[size-1])\n\td, ok := timeoutUnitToDuration(unit)\n\tif !ok {\n\t\treturn 0, fmt.Errorf(\"transport: timeout unit is not recognized: %q\", s)\n\t}\n\tt, err := strconv.ParseUint(s[:size-1], 10, 64)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tconst maxHours = math.MaxInt64 / uint64(time.Hour)\n\tif d == time.Hour && t > maxHours {\n\t\t// This timeout would overflow math.MaxInt64; clamp it.\n\t\treturn time.Duration(math.MaxInt64), nil\n\t}\n\treturn d * time.Duration(t), nil\n}\n\nconst (\n\tspaceByte   = ' '\n\ttildeByte   = '~'\n\tpercentByte = '%'\n)\n\n// encodeGrpcMessage is used to encode status code in header field\n// \"grpc-message\". It does percent encoding and also replaces invalid utf-8\n// characters with Unicode replacement character.\n//\n// It checks to see if each individual byte in msg is an allowable byte, and\n// then either percent encoding or passing it through. When percent encoding,\n// the byte is converted into hexadecimal notation with a '%' prepended.\nfunc encodeGrpcMessage(msg string) string {\n\tif msg == \"\" {\n\t\treturn \"\"\n\t}\n\tlenMsg := len(msg)\n\tfor i := 0; i < lenMsg; i++ {\n\t\tc := msg[i]\n\t\tif !(c >= spaceByte && c <= tildeByte && c != percentByte) {\n\t\t\treturn encodeGrpcMessageUnchecked(msg)\n\t\t}\n\t}\n\treturn msg\n}\n\nfunc encodeGrpcMessageUnchecked(msg string) string {\n\tvar sb strings.Builder\n\tfor len(msg) > 0 {\n\t\tr, size := utf8.DecodeRuneInString(msg)\n\t\tfor _, b := range []byte(string(r)) {\n\t\t\tif size > 1 {\n\t\t\t\t// If size > 1, r is not ascii. Always do percent encoding.\n\t\t\t\tfmt.Fprintf(&sb, \"%%%02X\", b)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// The for loop is necessary even if size == 1. r could be\n\t\t\t// utf8.RuneError.\n\t\t\t//\n\t\t\t// fmt.Sprintf(\"%%%02X\", utf8.RuneError) gives \"%FFFD\".\n\t\t\tif b >= spaceByte && b <= tildeByte && b != percentByte {\n\t\t\t\tsb.WriteByte(b)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(&sb, \"%%%02X\", b)\n\t\t\t}\n\t\t}\n\t\tmsg = msg[size:]\n\t}\n\treturn sb.String()\n}\n\n// decodeGrpcMessage decodes the msg encoded by encodeGrpcMessage.\nfunc decodeGrpcMessage(msg string) string {\n\tif msg == \"\" {\n\t\treturn \"\"\n\t}\n\tlenMsg := len(msg)\n\tfor i := 0; i < lenMsg; i++ {\n\t\tif msg[i] == percentByte && i+2 < lenMsg {\n\t\t\treturn decodeGrpcMessageUnchecked(msg)\n\t\t}\n\t}\n\treturn msg\n}\n\nfunc decodeGrpcMessageUnchecked(msg string) string {\n\tvar sb strings.Builder\n\tlenMsg := len(msg)\n\tfor i := 0; i < lenMsg; i++ {\n\t\tc := msg[i]\n\t\tif c == percentByte && i+2 < lenMsg {\n\t\t\tparsed, err := strconv.ParseUint(msg[i+1:i+3], 16, 8)\n\t\t\tif err != nil {\n\t\t\t\tsb.WriteByte(c)\n\t\t\t} else {\n\t\t\t\tsb.WriteByte(byte(parsed))\n\t\t\t\ti += 2\n\t\t\t}\n\t\t} else {\n\t\t\tsb.WriteByte(c)\n\t\t}\n\t}\n\treturn sb.String()\n}\n\ntype bufWriter struct {\n\tpool      *sync.Pool\n\tbuf       []byte\n\toffset    int\n\tbatchSize int\n\tconn      io.Writer\n\terr       error\n}\n\nfunc newBufWriter(conn io.Writer, batchSize int, pool *sync.Pool) *bufWriter {\n\tw := &bufWriter{\n\t\tbatchSize: batchSize,\n\t\tconn:      conn,\n\t\tpool:      pool,\n\t}\n\t// this indicates that we should use non shared buf\n\tif pool == nil {\n\t\tw.buf = make([]byte, batchSize)\n\t}\n\treturn w\n}\n\nfunc (w *bufWriter) Write(b []byte) (int, error) {\n\tif w.err != nil {\n\t\treturn 0, w.err\n\t}\n\tif w.batchSize == 0 { // Buffer has been disabled.\n\t\tn, err := w.conn.Write(b)\n\t\treturn n, toIOError(err)\n\t}\n\tif w.buf == nil {\n\t\tb := w.pool.Get().(*[]byte)\n\t\tw.buf = *b\n\t}\n\twritten := 0\n\tfor len(b) > 0 {\n\t\tcopied := copy(w.buf[w.offset:], b)\n\t\tb = b[copied:]\n\t\twritten += copied\n\t\tw.offset += copied\n\t\tif w.offset < w.batchSize {\n\t\t\tcontinue\n\t\t}\n\t\tif err := w.flushKeepBuffer(); err != nil {\n\t\t\treturn written, err\n\t\t}\n\t}\n\treturn written, nil\n}\n\nfunc (w *bufWriter) Flush() error {\n\terr := w.flushKeepBuffer()\n\t// Only release the buffer if we are in a \"shared\" mode\n\tif w.buf != nil && w.pool != nil {\n\t\tb := w.buf\n\t\tw.pool.Put(&b)\n\t\tw.buf = nil\n\t}\n\treturn err\n}\n\nfunc (w *bufWriter) flushKeepBuffer() error {\n\tif w.err != nil {\n\t\treturn w.err\n\t}\n\tif w.offset == 0 {\n\t\treturn nil\n\t}\n\t_, w.err = w.conn.Write(w.buf[:w.offset])\n\tw.err = toIOError(w.err)\n\tw.offset = 0\n\treturn w.err\n}\n\ntype ioError struct {\n\terror\n}\n\nfunc (i ioError) Unwrap() error {\n\treturn i.error\n}\n\nfunc isIOError(err error) bool {\n\treturn errors.As(err, &ioError{})\n}\n\nfunc toIOError(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn ioError{error: err}\n}\n\ntype parsedDataFrame struct {\n\thttp2.FrameHeader\n\tdata mem.Buffer\n}\n\nfunc (df *parsedDataFrame) StreamEnded() bool {\n\treturn df.FrameHeader.Flags.Has(http2.FlagDataEndStream)\n}\n\ntype framer struct {\n\twriter    *bufWriter\n\tfr        *http2.Framer\n\theaderBuf []byte // cached slice for framer headers to reduce heap allocs.\n\treader    io.Reader\n\tdataFrame parsedDataFrame // Cached data frame to avoid heap allocations.\n\tpool      mem.BufferPool\n\terrDetail error\n}\n\nvar writeBufferPoolMap = make(map[int]*sync.Pool)\nvar writeBufferMutex sync.Mutex\n\nfunc newFramer(conn io.ReadWriter, writeBufferSize, readBufferSize int, sharedWriteBuffer bool, maxHeaderListSize uint32, memPool mem.BufferPool) *framer {\n\tif writeBufferSize < 0 {\n\t\twriteBufferSize = 0\n\t}\n\tvar r io.Reader = conn\n\tif readBufferSize > 0 {\n\t\tr = bufio.NewReaderSize(r, readBufferSize)\n\t}\n\tvar pool *sync.Pool\n\tif sharedWriteBuffer {\n\t\tpool = getWriteBufferPool(writeBufferSize)\n\t}\n\tw := newBufWriter(conn, writeBufferSize, pool)\n\tf := &framer{\n\t\twriter: w,\n\t\tfr:     http2.NewFramer(w, r),\n\t\treader: r,\n\t\tpool:   memPool,\n\t}\n\tf.fr.SetMaxReadFrameSize(http2MaxFrameLen)\n\t// Opt-in to Frame reuse API on framer to reduce garbage.\n\t// Frames aren't safe to read from after a subsequent call to ReadFrame.\n\tf.fr.SetReuseFrames()\n\tf.fr.MaxHeaderListSize = maxHeaderListSize\n\tf.fr.ReadMetaHeaders = hpack.NewDecoder(http2InitHeaderTableSize, nil)\n\treturn f\n}\n\n// writeData writes a DATA frame.\n//\n// It is the caller's responsibility not to violate the maximum frame size.\nfunc (f *framer) writeData(streamID uint32, endStream bool, data [][]byte) error {\n\tvar flags http2.Flags\n\tif endStream {\n\t\tflags = http2.FlagDataEndStream\n\t}\n\tlength := uint32(0)\n\tfor _, d := range data {\n\t\tlength += uint32(len(d))\n\t}\n\t// TODO: Replace the header write with the framer API being added in\n\t// https://github.com/golang/go/issues/66655.\n\tf.headerBuf = append(f.headerBuf[:0],\n\t\tbyte(length>>16),\n\t\tbyte(length>>8),\n\t\tbyte(length),\n\t\tbyte(http2.FrameData),\n\t\tbyte(flags),\n\t\tbyte(streamID>>24),\n\t\tbyte(streamID>>16),\n\t\tbyte(streamID>>8),\n\t\tbyte(streamID))\n\tif _, err := f.writer.Write(f.headerBuf); err != nil {\n\t\treturn err\n\t}\n\tfor _, d := range data {\n\t\tif _, err := f.writer.Write(d); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// readFrame reads a single frame. The returned Frame is only valid\n// until the next call to readFrame.\nfunc (f *framer) readFrame() (any, error) {\n\tf.errDetail = nil\n\tfh, err := f.fr.ReadFrameHeader()\n\tif err != nil {\n\t\tf.errDetail = f.fr.ErrorDetail()\n\t\treturn nil, err\n\t}\n\t// Read the data frame directly from the underlying io.Reader to avoid\n\t// copies.\n\tif fh.Type == http2.FrameData {\n\t\terr = f.readDataFrame(fh)\n\t\treturn &f.dataFrame, err\n\t}\n\tfr, err := f.fr.ReadFrameForHeader(fh)\n\tif err != nil {\n\t\tf.errDetail = f.fr.ErrorDetail()\n\t\treturn nil, err\n\t}\n\treturn fr, err\n}\n\n// errorDetail returns a more detailed error of the last error\n// returned by framer.readFrame. For instance, if readFrame\n// returns a StreamError with code PROTOCOL_ERROR, errorDetail\n// will say exactly what was invalid. errorDetail is not guaranteed\n// to return a non-nil value.\n// errorDetail is reset after the next call to readFrame.\nfunc (f *framer) errorDetail() error {\n\treturn f.errDetail\n}\n\nfunc (f *framer) readDataFrame(fh http2.FrameHeader) (err error) {\n\tif fh.StreamID == 0 {\n\t\t// DATA frames MUST be associated with a stream. If a\n\t\t// DATA frame is received whose stream identifier\n\t\t// field is 0x0, the recipient MUST respond with a\n\t\t// connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\n\t\tf.errDetail = errors.New(\"DATA frame with stream ID 0\")\n\t\treturn http2.ConnectionError(http2.ErrCodeProtocol)\n\t}\n\t// Converting a *[]byte to a mem.SliceBuffer incurs a heap allocation. This\n\t// conversion is performed by mem.NewBuffer. To avoid the extra allocation\n\t// a []byte is allocated directly if required and cast to a mem.SliceBuffer.\n\tvar buf []byte\n\t// poolHandle is the pointer returned by the buffer pool (if it's used.).\n\tvar poolHandle *[]byte\n\tuseBufferPool := !mem.IsBelowBufferPoolingThreshold(int(fh.Length))\n\tif useBufferPool {\n\t\tpoolHandle = f.pool.Get(int(fh.Length))\n\t\tbuf = *poolHandle\n\t\tdefer func() {\n\t\t\tif err != nil {\n\t\t\t\tf.pool.Put(poolHandle)\n\t\t\t}\n\t\t}()\n\t} else {\n\t\tbuf = make([]byte, int(fh.Length))\n\t}\n\tif fh.Flags.Has(http2.FlagDataPadded) {\n\t\tif fh.Length == 0 {\n\t\t\treturn io.ErrUnexpectedEOF\n\t\t}\n\t\t// This initial 1-byte read can be inefficient for unbuffered readers,\n\t\t// but it allows the rest of the payload to be read directly to the\n\t\t// start of the destination slice. This makes it easy to return the\n\t\t// original slice back to the buffer pool.\n\t\tif _, err := io.ReadFull(f.reader, buf[:1]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpadSize := buf[0]\n\t\tbuf = buf[:len(buf)-1]\n\t\tif int(padSize) > len(buf) {\n\t\t\t// If the length of the padding is greater than the\n\t\t\t// length of the frame payload, the recipient MUST\n\t\t\t// treat this as a connection error.\n\t\t\t// Filed: https://github.com/http2/http2-spec/issues/610\n\t\t\tf.errDetail = errors.New(\"pad size larger than data payload\")\n\t\t\treturn http2.ConnectionError(http2.ErrCodeProtocol)\n\t\t}\n\t\tif _, err := io.ReadFull(f.reader, buf); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbuf = buf[:len(buf)-int(padSize)]\n\t} else if _, err := io.ReadFull(f.reader, buf); err != nil {\n\t\treturn err\n\t}\n\n\tf.dataFrame.FrameHeader = fh\n\tif useBufferPool {\n\t\t// Update the handle to point to the (potentially re-sliced) buf.\n\t\t*poolHandle = buf\n\t\tf.dataFrame.data = mem.NewBuffer(poolHandle, f.pool)\n\t} else {\n\t\tf.dataFrame.data = mem.SliceBuffer(buf)\n\t}\n\treturn nil\n}\n\nfunc (df *parsedDataFrame) Header() http2.FrameHeader {\n\treturn df.FrameHeader\n}\n\nfunc getWriteBufferPool(size int) *sync.Pool {\n\twriteBufferMutex.Lock()\n\tdefer writeBufferMutex.Unlock()\n\tpool, ok := writeBufferPoolMap[size]\n\tif ok {\n\t\treturn pool\n\t}\n\tpool = &sync.Pool{\n\t\tNew: func() any {\n\t\t\tb := make([]byte, size)\n\t\t\treturn &b\n\t\t},\n\t}\n\twriteBufferPoolMap[size] = pool\n\treturn pool\n}\n\n// ParseDialTarget returns the network and address to pass to dialer.\nfunc ParseDialTarget(target string) (string, string) {\n\tnet := \"tcp\"\n\tm1 := strings.Index(target, \":\")\n\tm2 := strings.Index(target, \":/\")\n\t// handle unix:addr which will fail with url.Parse\n\tif m1 >= 0 && m2 < 0 {\n\t\tif n := target[0:m1]; n == \"unix\" {\n\t\t\treturn n, target[m1+1:]\n\t\t}\n\t}\n\tif m2 >= 0 {\n\t\tt, err := url.Parse(target)\n\t\tif err != nil {\n\t\t\treturn net, target\n\t\t}\n\t\tscheme := t.Scheme\n\t\taddr := t.Path\n\t\tif scheme == \"unix\" {\n\t\t\tif addr == \"\" {\n\t\t\t\taddr = t.Host\n\t\t\t}\n\t\t\treturn scheme, addr\n\t\t}\n\t}\n\treturn net, target\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/logging.go",
    "content": "/*\n *\n * Copyright 2023 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/grpc/grpclog\"\n\tinternalgrpclog \"google.golang.org/grpc/internal/grpclog\"\n)\n\nvar logger = grpclog.Component(\"transport\")\n\nfunc prefixLoggerForServerTransport(p *http2Server) *internalgrpclog.PrefixLogger {\n\treturn internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(\"[server-transport %p] \", p))\n}\n\nfunc prefixLoggerForServerHandlerTransport(p *serverHandlerTransport) *internalgrpclog.PrefixLogger {\n\treturn internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(\"[server-handler-transport %p] \", p))\n}\n\nfunc prefixLoggerForClientTransport(p *http2Client) *internalgrpclog.PrefixLogger {\n\treturn internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(\"[client-transport %p] \", p))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/networktype/networktype.go",
    "content": "/*\n *\n * Copyright 2020 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package networktype declares the network type to be used in the default\n// dialer. Attribute of a resolver.Address.\npackage networktype\n\nimport (\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// keyType is the key to use for storing State in Attributes.\ntype keyType string\n\nconst key = keyType(\"grpc.internal.transport.networktype\")\n\n// Set returns a copy of the provided address with attributes containing networkType.\nfunc Set(address resolver.Address, networkType string) resolver.Address {\n\taddress.Attributes = address.Attributes.WithValue(key, networkType)\n\treturn address\n}\n\n// Get returns the network type in the resolver.Address and true, or \"\", false\n// if not present.\nfunc Get(address resolver.Address) (string, bool) {\n\tv := address.Attributes.Value(key)\n\tif v == nil {\n\t\treturn \"\", false\n\t}\n\treturn v.(string), true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/proxy.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"net/url\"\n\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/proxyattributes\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\nconst proxyAuthHeaderKey = \"Proxy-Authorization\"\n\n// To read a response from a net.Conn, http.ReadResponse() takes a bufio.Reader.\n// It's possible that this reader reads more than what's need for the response\n// and stores those bytes in the buffer. bufConn wraps the original net.Conn\n// and the bufio.Reader to make sure we don't lose the bytes in the buffer.\ntype bufConn struct {\n\tnet.Conn\n\tr io.Reader\n}\n\nfunc (c *bufConn) Read(b []byte) (int, error) {\n\treturn c.r.Read(b)\n}\n\nfunc basicAuth(username, password string) string {\n\tauth := username + \":\" + password\n\treturn base64.StdEncoding.EncodeToString([]byte(auth))\n}\n\nfunc doHTTPConnectHandshake(ctx context.Context, conn net.Conn, grpcUA string, opts proxyattributes.Options) (_ net.Conn, err error) {\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tconn.Close()\n\t\t}\n\t}()\n\n\treq := &http.Request{\n\t\tMethod: http.MethodConnect,\n\t\tURL:    &url.URL{Host: opts.ConnectAddr},\n\t\tHeader: map[string][]string{\"User-Agent\": {grpcUA}},\n\t}\n\tif user := opts.User; user != nil {\n\t\tu := user.Username()\n\t\tp, _ := user.Password()\n\t\treq.Header.Add(proxyAuthHeaderKey, \"Basic \"+basicAuth(u, p))\n\t}\n\tif err := sendHTTPRequest(ctx, req, conn); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write the HTTP request: %v\", err)\n\t}\n\n\tr := bufio.NewReader(conn)\n\tresp, err := http.ReadResponse(r, req)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"reading server HTTP response: %v\", err)\n\t}\n\tdefer resp.Body.Close()\n\tif resp.StatusCode != http.StatusOK {\n\t\tdump, err := httputil.DumpResponse(resp, true)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to do connect handshake, status code: %s\", resp.Status)\n\t\t}\n\t\treturn nil, fmt.Errorf(\"failed to do connect handshake, response: %q\", dump)\n\t}\n\t// The buffer could contain extra bytes from the target server, so we can't\n\t// discard it. However, in many cases where the server waits for the client\n\t// to send the first message (e.g. when TLS is being used), the buffer will\n\t// be empty, so we can avoid the overhead of reading through this buffer.\n\tif r.Buffered() != 0 {\n\t\treturn &bufConn{Conn: conn, r: r}, nil\n\t}\n\treturn conn, nil\n}\n\n// proxyDial establishes a TCP connection to the specified address and performs an HTTP CONNECT handshake.\nfunc proxyDial(ctx context.Context, addr resolver.Address, grpcUA string, opts proxyattributes.Options) (net.Conn, error) {\n\tconn, err := internal.NetDialerWithTCPKeepalive().DialContext(ctx, \"tcp\", addr.Addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn doHTTPConnectHandshake(ctx, conn, grpcUA, opts)\n}\n\nfunc sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error {\n\treq = req.WithContext(ctx)\n\tif err := req.Write(conn); err != nil {\n\t\treturn fmt.Errorf(\"failed to write the HTTP request: %v\", err)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/server_stream.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/status\"\n)\n\n// ServerStream implements streaming functionality for a gRPC server.\ntype ServerStream struct {\n\tStream // Embed for common stream functionality.\n\n\tst      internalServerTransport\n\tctxDone <-chan struct{} // closed at the end of stream.  Cache of ctx.Done() (for performance)\n\t// cancel is invoked at the end of stream to cancel ctx. It also stops the\n\t// timer for monitoring the rpc deadline if configured.\n\tcancel func()\n\n\t// Holds compressor names passed in grpc-accept-encoding metadata from the\n\t// client.\n\tclientAdvertisedCompressors string\n\n\t// hdrMu protects outgoing header and trailer metadata.\n\thdrMu      sync.Mutex\n\theader     metadata.MD // the outgoing header metadata.  Updated by WriteHeader.\n\theaderSent atomic.Bool // atomically set when the headers are sent out.\n\n\theaderWireLength int\n}\n\n// Read reads an n byte message from the input stream.\nfunc (s *ServerStream) Read(n int) (mem.BufferSlice, error) {\n\tb, err := s.Stream.read(n)\n\tif err == nil {\n\t\ts.st.incrMsgRecv()\n\t}\n\treturn b, err\n}\n\n// SendHeader sends the header metadata for the given stream.\nfunc (s *ServerStream) SendHeader(md metadata.MD) error {\n\treturn s.st.writeHeader(s, md)\n}\n\n// Write writes the hdr and data bytes to the output stream.\nfunc (s *ServerStream) Write(hdr []byte, data mem.BufferSlice, opts *WriteOptions) error {\n\treturn s.st.write(s, hdr, data, opts)\n}\n\n// WriteStatus sends the status of a stream to the client.  WriteStatus is\n// the final call made on a stream and always occurs.\nfunc (s *ServerStream) WriteStatus(st *status.Status) error {\n\treturn s.st.writeStatus(s, st)\n}\n\n// isHeaderSent indicates whether headers have been sent.\nfunc (s *ServerStream) isHeaderSent() bool {\n\treturn s.headerSent.Load()\n}\n\n// updateHeaderSent updates headerSent and returns true\n// if it was already set.\nfunc (s *ServerStream) updateHeaderSent() bool {\n\treturn s.headerSent.Swap(true)\n}\n\n// RecvCompress returns the compression algorithm applied to the inbound\n// message. It is empty string if there is no compression applied.\nfunc (s *ServerStream) RecvCompress() string {\n\treturn s.recvCompress\n}\n\n// SendCompress returns the send compressor name.\nfunc (s *ServerStream) SendCompress() string {\n\treturn s.sendCompress\n}\n\n// ContentSubtype returns the content-subtype for a request. For example, a\n// content-subtype of \"proto\" will result in a content-type of\n// \"application/grpc+proto\". This will always be lowercase.  See\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details.\nfunc (s *ServerStream) ContentSubtype() string {\n\treturn s.contentSubtype\n}\n\n// SetSendCompress sets the compression algorithm to the stream.\nfunc (s *ServerStream) SetSendCompress(name string) error {\n\tif s.isHeaderSent() || s.getState() == streamDone {\n\t\treturn errors.New(\"transport: set send compressor called after headers sent or stream done\")\n\t}\n\n\ts.sendCompress = name\n\treturn nil\n}\n\n// SetContext sets the context of the stream. This will be deleted once the\n// stats handler callouts all move to gRPC layer.\nfunc (s *ServerStream) SetContext(ctx context.Context) {\n\ts.ctx = ctx\n}\n\n// ClientAdvertisedCompressors returns the compressor names advertised by the\n// client via grpc-accept-encoding header.\nfunc (s *ServerStream) ClientAdvertisedCompressors() []string {\n\tvalues := strings.Split(s.clientAdvertisedCompressors, \",\")\n\tfor i, v := range values {\n\t\tvalues[i] = strings.TrimSpace(v)\n\t}\n\treturn values\n}\n\n// Header returns the header metadata of the stream.  It returns the out header\n// after t.WriteHeader is called.  It does not block and must not be called\n// until after WriteHeader.\nfunc (s *ServerStream) Header() (metadata.MD, error) {\n\t// Return the header in stream. It will be the out\n\t// header after t.WriteHeader is called.\n\treturn s.header.Copy(), nil\n}\n\n// HeaderWireLength returns the size of the headers of the stream as received\n// from the wire.\nfunc (s *ServerStream) HeaderWireLength() int {\n\treturn s.headerWireLength\n}\n\n// SetHeader sets the header metadata. This can be called multiple times.\n// This should not be called in parallel to other data writes.\nfunc (s *ServerStream) SetHeader(md metadata.MD) error {\n\tif md.Len() == 0 {\n\t\treturn nil\n\t}\n\tif s.isHeaderSent() || s.getState() == streamDone {\n\t\treturn ErrIllegalHeaderWrite\n\t}\n\ts.hdrMu.Lock()\n\ts.header = metadata.Join(s.header, md)\n\ts.hdrMu.Unlock()\n\treturn nil\n}\n\n// SetTrailer sets the trailer metadata which will be sent with the RPC status\n// by the server. This can be called multiple times.\n// This should not be called parallel to other data writes.\nfunc (s *ServerStream) SetTrailer(md metadata.MD) error {\n\tif md.Len() == 0 {\n\t\treturn nil\n\t}\n\tif s.getState() == streamDone {\n\t\treturn ErrIllegalHeaderWrite\n\t}\n\ts.hdrMu.Lock()\n\ts.trailer = metadata.Join(s.trailer, md)\n\ts.hdrMu.Unlock()\n\treturn nil\n}\n\nfunc (s *ServerStream) requestRead(n int) {\n\ts.st.adjustWindow(s, uint32(n))\n}\n\nfunc (s *ServerStream) updateWindow(n int) {\n\ts.st.updateWindow(s, uint32(n))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/internal/transport/transport.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package transport defines and implements message oriented communication\n// channel to complete various transactions (e.g., an RPC).  It is meant for\n// grpc-internal usage and is not intended to be imported directly by users.\npackage transport\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/grpc/tap\"\n)\n\nconst logLevel = 2\n\n// recvMsg represents the received msg from the transport. All transport\n// protocol specific info has been removed.\ntype recvMsg struct {\n\tbuffer mem.Buffer\n\t// nil: received some data\n\t// io.EOF: stream is completed. data is nil.\n\t// other non-nil error: transport failure. data is nil.\n\terr error\n}\n\n// recvBuffer is an unbounded channel of recvMsg structs.\n//\n// Note: recvBuffer differs from buffer.Unbounded only in the fact that it\n// holds a channel of recvMsg structs instead of objects implementing \"item\"\n// interface. recvBuffer is written to much more often and using strict recvMsg\n// structs helps avoid allocation in \"recvBuffer.put\"\ntype recvBuffer struct {\n\tc       chan recvMsg\n\tmu      sync.Mutex\n\tbacklog []recvMsg\n\terr     error\n}\n\n// init allows a recvBuffer to be initialized in-place, which is useful\n// for resetting a buffer or for avoiding a heap allocation when the buffer\n// is embedded in another struct.\nfunc (b *recvBuffer) init() {\n\tb.c = make(chan recvMsg, 1)\n}\n\nfunc (b *recvBuffer) put(r recvMsg) {\n\tb.mu.Lock()\n\tif b.err != nil {\n\t\t// drop the buffer on the floor. Since b.err is not nil, any subsequent reads\n\t\t// will always return an error, making this buffer inaccessible.\n\t\tr.buffer.Free()\n\t\tb.mu.Unlock()\n\t\t// An error had occurred earlier, don't accept more\n\t\t// data or errors.\n\t\treturn\n\t}\n\tb.err = r.err\n\tif len(b.backlog) == 0 {\n\t\tselect {\n\t\tcase b.c <- r:\n\t\t\tb.mu.Unlock()\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\t}\n\tb.backlog = append(b.backlog, r)\n\tb.mu.Unlock()\n}\n\nfunc (b *recvBuffer) load() {\n\tb.mu.Lock()\n\tif len(b.backlog) > 0 {\n\t\tselect {\n\t\tcase b.c <- b.backlog[0]:\n\t\t\tb.backlog[0] = recvMsg{}\n\t\t\tb.backlog = b.backlog[1:]\n\t\tdefault:\n\t\t}\n\t}\n\tb.mu.Unlock()\n}\n\n// get returns the channel that receives a recvMsg in the buffer.\n//\n// Upon receipt of a recvMsg, the caller should call load to send another\n// recvMsg onto the channel if there is any.\nfunc (b *recvBuffer) get() <-chan recvMsg {\n\treturn b.c\n}\n\n// recvBufferReader implements io.Reader interface to read the data from\n// recvBuffer.\ntype recvBufferReader struct {\n\t_            noCopy\n\tclientStream *ClientStream // The client transport stream is closed with a status representing ctx.Err() and nil trailer metadata.\n\tctx          context.Context\n\tctxDone      <-chan struct{} // cache of ctx.Done() (for performance).\n\trecv         *recvBuffer\n\tlast         mem.Buffer // Stores the remaining data in the previous calls.\n\terr          error\n}\n\nfunc (r *recvBufferReader) ReadMessageHeader(header []byte) (n int, err error) {\n\tif r.err != nil {\n\t\treturn 0, r.err\n\t}\n\tif r.last != nil {\n\t\tn, r.last = mem.ReadUnsafe(header, r.last)\n\t\treturn n, nil\n\t}\n\tif r.clientStream != nil {\n\t\tn, r.err = r.readMessageHeaderClient(header)\n\t} else {\n\t\tn, r.err = r.readMessageHeader(header)\n\t}\n\treturn n, r.err\n}\n\n// Read reads the next n bytes from last. If last is drained, it tries to read\n// additional data from recv. It blocks if there no additional data available in\n// recv. If Read returns any non-nil error, it will continue to return that\n// error.\nfunc (r *recvBufferReader) Read(n int) (buf mem.Buffer, err error) {\n\tif r.err != nil {\n\t\treturn nil, r.err\n\t}\n\tif r.last != nil {\n\t\tbuf = r.last\n\t\tif r.last.Len() > n {\n\t\t\tbuf, r.last = mem.SplitUnsafe(buf, n)\n\t\t} else {\n\t\t\tr.last = nil\n\t\t}\n\t\treturn buf, nil\n\t}\n\tif r.clientStream != nil {\n\t\tbuf, r.err = r.readClient(n)\n\t} else {\n\t\tbuf, r.err = r.read(n)\n\t}\n\treturn buf, r.err\n}\n\nfunc (r *recvBufferReader) readMessageHeader(header []byte) (n int, err error) {\n\tselect {\n\tcase <-r.ctxDone:\n\t\treturn 0, ContextErr(r.ctx.Err())\n\tcase m := <-r.recv.get():\n\t\treturn r.readMessageHeaderAdditional(m, header)\n\t}\n}\n\nfunc (r *recvBufferReader) read(n int) (buf mem.Buffer, err error) {\n\tselect {\n\tcase <-r.ctxDone:\n\t\treturn nil, ContextErr(r.ctx.Err())\n\tcase m := <-r.recv.get():\n\t\treturn r.readAdditional(m, n)\n\t}\n}\n\nfunc (r *recvBufferReader) readMessageHeaderClient(header []byte) (n int, err error) {\n\t// If the context is canceled, then closes the stream with nil metadata.\n\t// closeStream writes its error parameter to r.recv as a recvMsg.\n\t// r.readAdditional acts on that message and returns the necessary error.\n\tselect {\n\tcase <-r.ctxDone:\n\t\t// Note that this adds the ctx error to the end of recv buffer, and\n\t\t// reads from the head. This will delay the error until recv buffer is\n\t\t// empty, thus will delay ctx cancellation in Recv().\n\t\t//\n\t\t// It's done this way to fix a race between ctx cancel and trailer. The\n\t\t// race was, stream.Recv() may return ctx error if ctxDone wins the\n\t\t// race, but stream.Trailer() may return a non-nil md because the stream\n\t\t// was not marked as done when trailer is received. This closeStream\n\t\t// call will mark stream as done, thus fix the race.\n\t\t//\n\t\t// TODO: delaying ctx error seems like a unnecessary side effect. What\n\t\t// we really want is to mark the stream as done, and return ctx error\n\t\t// faster.\n\t\tr.clientStream.Close(ContextErr(r.ctx.Err()))\n\t\tm := <-r.recv.get()\n\t\treturn r.readMessageHeaderAdditional(m, header)\n\tcase m := <-r.recv.get():\n\t\treturn r.readMessageHeaderAdditional(m, header)\n\t}\n}\n\nfunc (r *recvBufferReader) readClient(n int) (buf mem.Buffer, err error) {\n\t// If the context is canceled, then closes the stream with nil metadata.\n\t// closeStream writes its error parameter to r.recv as a recvMsg.\n\t// r.readAdditional acts on that message and returns the necessary error.\n\tselect {\n\tcase <-r.ctxDone:\n\t\t// Note that this adds the ctx error to the end of recv buffer, and\n\t\t// reads from the head. This will delay the error until recv buffer is\n\t\t// empty, thus will delay ctx cancellation in Recv().\n\t\t//\n\t\t// It's done this way to fix a race between ctx cancel and trailer. The\n\t\t// race was, stream.Recv() may return ctx error if ctxDone wins the\n\t\t// race, but stream.Trailer() may return a non-nil md because the stream\n\t\t// was not marked as done when trailer is received. This closeStream\n\t\t// call will mark stream as done, thus fix the race.\n\t\t//\n\t\t// TODO: delaying ctx error seems like a unnecessary side effect. What\n\t\t// we really want is to mark the stream as done, and return ctx error\n\t\t// faster.\n\t\tr.clientStream.Close(ContextErr(r.ctx.Err()))\n\t\tm := <-r.recv.get()\n\t\treturn r.readAdditional(m, n)\n\tcase m := <-r.recv.get():\n\t\treturn r.readAdditional(m, n)\n\t}\n}\n\nfunc (r *recvBufferReader) readMessageHeaderAdditional(m recvMsg, header []byte) (n int, err error) {\n\tr.recv.load()\n\tif m.err != nil {\n\t\tif m.buffer != nil {\n\t\t\tm.buffer.Free()\n\t\t}\n\t\treturn 0, m.err\n\t}\n\n\tn, r.last = mem.ReadUnsafe(header, m.buffer)\n\n\treturn n, nil\n}\n\nfunc (r *recvBufferReader) readAdditional(m recvMsg, n int) (b mem.Buffer, err error) {\n\tr.recv.load()\n\tif m.err != nil {\n\t\tif m.buffer != nil {\n\t\t\tm.buffer.Free()\n\t\t}\n\t\treturn nil, m.err\n\t}\n\n\tif m.buffer.Len() > n {\n\t\tm.buffer, r.last = mem.SplitUnsafe(m.buffer, n)\n\t}\n\n\treturn m.buffer, nil\n}\n\ntype streamState uint32\n\nconst (\n\tstreamActive    streamState = iota\n\tstreamWriteDone             // EndStream sent\n\tstreamReadDone              // EndStream received\n\tstreamDone                  // the entire stream is finished.\n)\n\n// Stream represents an RPC in the transport layer.\ntype Stream struct {\n\tctx          context.Context // the associated context of the stream\n\tmethod       string          // the associated RPC method of the stream\n\trecvCompress string\n\tsendCompress string\n\n\treadRequester readRequester\n\n\t// contentSubtype is the content-subtype for requests.\n\t// this must be lowercase or the behavior is undefined.\n\tcontentSubtype string\n\n\ttrailer metadata.MD // the key-value map of trailer metadata.\n\n\t// Non-pointer fields are at the end to optimize GC performance.\n\tstate    streamState\n\tid       uint32\n\tbuf      recvBuffer\n\ttrReader transportReader\n\tfc       inFlow\n\twq       writeQuota\n}\n\n// readRequester is used to state application's intentions to read data. This\n// is used to adjust flow control, if needed.\ntype readRequester interface {\n\trequestRead(int)\n}\n\nfunc (s *Stream) swapState(st streamState) streamState {\n\treturn streamState(atomic.SwapUint32((*uint32)(&s.state), uint32(st)))\n}\n\nfunc (s *Stream) compareAndSwapState(oldState, newState streamState) bool {\n\treturn atomic.CompareAndSwapUint32((*uint32)(&s.state), uint32(oldState), uint32(newState))\n}\n\nfunc (s *Stream) getState() streamState {\n\treturn streamState(atomic.LoadUint32((*uint32)(&s.state)))\n}\n\n// Trailer returns the cached trailer metadata. Note that if it is not called\n// after the entire stream is done, it could return an empty MD.\n// It can be safely read only after stream has ended that is either read\n// or write have returned io.EOF.\nfunc (s *Stream) Trailer() metadata.MD {\n\treturn s.trailer.Copy()\n}\n\n// Context returns the context of the stream.\nfunc (s *Stream) Context() context.Context {\n\treturn s.ctx\n}\n\n// Method returns the method for the stream.\nfunc (s *Stream) Method() string {\n\treturn s.method\n}\n\nfunc (s *Stream) write(m recvMsg) {\n\ts.buf.put(m)\n}\n\n// ReadMessageHeader reads data into the provided header slice from the stream.\n// It first checks if there was an error during a previous read operation and\n// returns it if present. It then requests a read operation for the length of\n// the header. It continues to read from the stream until the entire header\n// slice is filled or an error occurs. If an `io.EOF` error is encountered with\n// partially read data, it is converted to `io.ErrUnexpectedEOF` to indicate an\n// unexpected end of the stream. The method returns any error encountered during\n// the read process or nil if the header was successfully read.\nfunc (s *Stream) ReadMessageHeader(header []byte) (err error) {\n\t// Don't request a read if there was an error earlier\n\tif er := s.trReader.er; er != nil {\n\t\treturn er\n\t}\n\ts.readRequester.requestRead(len(header))\n\tfor len(header) != 0 {\n\t\tn, err := s.trReader.ReadMessageHeader(header)\n\t\theader = header[n:]\n\t\tif len(header) == 0 {\n\t\t\terr = nil\n\t\t}\n\t\tif err != nil {\n\t\t\tif n > 0 && err == io.EOF {\n\t\t\t\terr = io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ceil returns the ceil after dividing the numerator and denominator while\n// avoiding integer overflows.\nfunc ceil(numerator, denominator int) int {\n\tif numerator == 0 {\n\t\treturn 0\n\t}\n\treturn (numerator-1)/denominator + 1\n}\n\n// Read reads n bytes from the wire for this stream.\nfunc (s *Stream) read(n int) (data mem.BufferSlice, err error) {\n\t// Don't request a read if there was an error earlier\n\tif er := s.trReader.er; er != nil {\n\t\treturn nil, er\n\t}\n\t// gRPC Go accepts data frames with a maximum length of 16KB. Larger\n\t// messages must be split into multiple frames. We pre-allocate the\n\t// buffer to avoid resizing during the read loop, but cap the initial\n\t// capacity to 128 frames (2MB) to prevent over-allocation or panics\n\t// when reading extremely large streams.\n\tallocCap := min(ceil(n, http2MaxFrameLen), 128)\n\tdata = make(mem.BufferSlice, 0, allocCap)\n\ts.readRequester.requestRead(n)\n\tfor n != 0 {\n\t\tbuf, err := s.trReader.Read(n)\n\t\tvar bufLen int\n\t\tif buf != nil {\n\t\t\tbufLen = buf.Len()\n\t\t}\n\t\tn -= bufLen\n\t\tif n == 0 {\n\t\t\terr = nil\n\t\t}\n\t\tif err != nil {\n\t\t\tif bufLen > 0 && err == io.EOF {\n\t\t\t\terr = io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tdata.Free()\n\t\t\treturn nil, err\n\t\t}\n\t\tdata = append(data, buf)\n\t}\n\treturn data, nil\n}\n\n// noCopy may be embedded into structs which must not be copied\n// after the first use.\n//\n// See https://golang.org/issues/8005#issuecomment-190753527\n// for details.\ntype noCopy struct {\n}\n\nfunc (*noCopy) Lock()   {}\nfunc (*noCopy) Unlock() {}\n\n// transportReader reads all the data available for this Stream from the transport and\n// passes them into the decoder, which converts them into a gRPC message stream.\n// The error is io.EOF when the stream is done or another non-nil error if\n// the stream broke.\ntype transportReader struct {\n\t_ noCopy\n\t// The handler to control the window update procedure for both this\n\t// particular stream and the associated transport.\n\twindowHandler windowHandler\n\ter            error\n\treader        recvBufferReader\n}\n\n// The handler to control the window update procedure for both this\n// particular stream and the associated transport.\ntype windowHandler interface {\n\tupdateWindow(int)\n}\n\nfunc (t *transportReader) ReadMessageHeader(header []byte) (int, error) {\n\tn, err := t.reader.ReadMessageHeader(header)\n\tif err != nil {\n\t\tt.er = err\n\t\treturn 0, err\n\t}\n\tt.windowHandler.updateWindow(n)\n\treturn n, nil\n}\n\nfunc (t *transportReader) Read(n int) (mem.Buffer, error) {\n\tbuf, err := t.reader.Read(n)\n\tif err != nil {\n\t\tt.er = err\n\t\treturn buf, err\n\t}\n\tt.windowHandler.updateWindow(buf.Len())\n\treturn buf, nil\n}\n\n// GoString is implemented by Stream so context.String() won't\n// race when printing %#v.\nfunc (s *Stream) GoString() string {\n\treturn fmt.Sprintf(\"<stream: %p, %v>\", s, s.method)\n}\n\n// state of transport\ntype transportState int\n\nconst (\n\treachable transportState = iota\n\tclosing\n\tdraining\n)\n\n// ServerConfig consists of all the configurations to establish a server transport.\ntype ServerConfig struct {\n\tMaxStreams            uint32\n\tConnectionTimeout     time.Duration\n\tCredentials           credentials.TransportCredentials\n\tInTapHandle           tap.ServerInHandle\n\tStatsHandler          stats.Handler\n\tKeepaliveParams       keepalive.ServerParameters\n\tKeepalivePolicy       keepalive.EnforcementPolicy\n\tInitialWindowSize     int32\n\tInitialConnWindowSize int32\n\tWriteBufferSize       int\n\tReadBufferSize        int\n\tSharedWriteBuffer     bool\n\tChannelzParent        *channelz.Server\n\tMaxHeaderListSize     *uint32\n\tHeaderTableSize       *uint32\n\tBufferPool            mem.BufferPool\n\tStaticWindowSize      bool\n}\n\n// ConnectOptions covers all relevant options for communicating with the server.\ntype ConnectOptions struct {\n\t// UserAgent is the application user agent.\n\tUserAgent string\n\t// Dialer specifies how to dial a network address.\n\tDialer func(context.Context, string) (net.Conn, error)\n\t// FailOnNonTempDialError specifies if gRPC fails on non-temporary dial errors.\n\tFailOnNonTempDialError bool\n\t// PerRPCCredentials stores the PerRPCCredentials required to issue RPCs.\n\tPerRPCCredentials []credentials.PerRPCCredentials\n\t// TransportCredentials stores the Authenticator required to setup a client\n\t// connection. Only one of TransportCredentials and CredsBundle is non-nil.\n\tTransportCredentials credentials.TransportCredentials\n\t// CredsBundle is the credentials bundle to be used. Only one of\n\t// TransportCredentials and CredsBundle is non-nil.\n\tCredsBundle credentials.Bundle\n\t// KeepaliveParams stores the keepalive parameters.\n\tKeepaliveParams keepalive.ClientParameters\n\t// StatsHandlers stores the handler for stats.\n\tStatsHandlers []stats.Handler\n\t// InitialWindowSize sets the initial window size for a stream.\n\tInitialWindowSize int32\n\t// InitialConnWindowSize sets the initial window size for a connection.\n\tInitialConnWindowSize int32\n\t// WriteBufferSize sets the size of write buffer which in turn determines how much data can be batched before it's written on the wire.\n\tWriteBufferSize int\n\t// ReadBufferSize sets the size of read buffer, which in turn determines how much data can be read at most for one read syscall.\n\tReadBufferSize int\n\t// SharedWriteBuffer indicates whether connections should reuse write buffer\n\tSharedWriteBuffer bool\n\t// ChannelzParent sets the addrConn id which initiated the creation of this client transport.\n\tChannelzParent *channelz.SubChannel\n\t// MaxHeaderListSize sets the max (uncompressed) size of header list that is prepared to be received.\n\tMaxHeaderListSize *uint32\n\t// The mem.BufferPool to use when reading/writing to the wire.\n\tBufferPool mem.BufferPool\n\t// StaticWindowSize controls whether dynamic window sizing is enabled.\n\tStaticWindowSize bool\n}\n\n// WriteOptions provides additional hints and information for message\n// transmission.\ntype WriteOptions struct {\n\t// Last indicates whether this write is the last piece for\n\t// this stream.\n\tLast bool\n}\n\n// CallHdr carries the information of a particular RPC.\ntype CallHdr struct {\n\t// Host specifies the peer's host.\n\tHost string\n\n\t// Method specifies the operation to perform.\n\tMethod string\n\n\t// SendCompress specifies the compression algorithm applied on\n\t// outbound message.\n\tSendCompress string\n\n\t// AcceptedCompressors overrides the grpc-accept-encoding header for this\n\t// call. When nil, the transport advertises the default set of registered\n\t// compressors. A non-nil pointer overrides that value (including the empty\n\t// string to advertise none).\n\tAcceptedCompressors *string\n\n\t// Creds specifies credentials.PerRPCCredentials for a call.\n\tCreds credentials.PerRPCCredentials\n\n\t// ContentSubtype specifies the content-subtype for a request. For example, a\n\t// content-subtype of \"proto\" will result in a content-type of\n\t// \"application/grpc+proto\". The value of ContentSubtype must be all\n\t// lowercase, otherwise the behavior is undefined. See\n\t// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests\n\t// for more details.\n\tContentSubtype string\n\n\tPreviousAttempts int // value of grpc-previous-rpc-attempts header to set\n\n\tDoneFunc func() // called when the stream is finished\n\n\t// Authority is used to explicitly override the `:authority` header.\n\t//\n\t// This value comes from one of two sources:\n\t// 1. The `CallAuthority` call option, if specified by the user.\n\t// 2. An override provided by the LB picker (e.g. xDS authority rewriting).\n\t//\n\t// The `CallAuthority` call option always takes precedence over the LB\n\t// picker override.\n\tAuthority string\n}\n\n// ClientTransport is the common interface for all gRPC client-side transport\n// implementations.\ntype ClientTransport interface {\n\t// Close tears down this transport. Once it returns, the transport\n\t// should not be accessed any more. The caller must make sure this\n\t// is called only once.\n\tClose(err error)\n\n\t// GracefulClose starts to tear down the transport: the transport will stop\n\t// accepting new RPCs and NewStream will return error. Once all streams are\n\t// finished, the transport will close.\n\t//\n\t// It does not block.\n\tGracefulClose()\n\n\t// NewStream creates a Stream for an RPC.\n\tNewStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) (*ClientStream, error)\n\n\t// Error returns a channel that is closed when some I/O error\n\t// happens. Typically the caller should have a goroutine to monitor\n\t// this in order to take action (e.g., close the current transport\n\t// and create a new one) in error case. It should not return nil\n\t// once the transport is initiated.\n\tError() <-chan struct{}\n\n\t// GoAway returns a channel that is closed when ClientTransport\n\t// receives the draining signal from the server (e.g., GOAWAY frame in\n\t// HTTP/2).\n\tGoAway() <-chan struct{}\n\n\t// GetGoAwayReason returns the reason why GoAway frame was received, along\n\t// with a human readable string with debug info.\n\tGetGoAwayReason() (GoAwayReason, string)\n\n\t// Peer returns information about the peer associated with the Transport.\n\t// The returned information includes authentication and network address details.\n\tPeer() *peer.Peer\n}\n\n// ServerTransport is the common interface for all gRPC server-side transport\n// implementations.\n//\n// Methods may be called concurrently from multiple goroutines, but\n// Write methods for a given Stream will be called serially.\ntype ServerTransport interface {\n\t// HandleStreams receives incoming streams using the given handler.\n\tHandleStreams(context.Context, func(*ServerStream))\n\n\t// Close tears down the transport. Once it is called, the transport\n\t// should not be accessed any more. All the pending streams and their\n\t// handlers will be terminated asynchronously.\n\tClose(err error)\n\n\t// Peer returns the peer of the server transport.\n\tPeer() *peer.Peer\n\n\t// Drain notifies the client this ServerTransport stops accepting new RPCs.\n\tDrain(debugData string)\n}\n\ntype internalServerTransport interface {\n\tServerTransport\n\twriteHeader(s *ServerStream, md metadata.MD) error\n\twrite(s *ServerStream, hdr []byte, data mem.BufferSlice, opts *WriteOptions) error\n\twriteStatus(s *ServerStream, st *status.Status) error\n\tincrMsgRecv()\n\tadjustWindow(s *ServerStream, n uint32)\n\tupdateWindow(s *ServerStream, n uint32)\n}\n\n// connectionErrorf creates an ConnectionError with the specified error description.\nfunc connectionErrorf(temp bool, e error, format string, a ...any) ConnectionError {\n\treturn ConnectionError{\n\t\tDesc: fmt.Sprintf(format, a...),\n\t\ttemp: temp,\n\t\terr:  e,\n\t}\n}\n\n// ConnectionError is an error that results in the termination of the\n// entire connection and the retry of all the active streams.\ntype ConnectionError struct {\n\tDesc string\n\ttemp bool\n\terr  error\n}\n\nfunc (e ConnectionError) Error() string {\n\treturn fmt.Sprintf(\"connection error: desc = %q\", e.Desc)\n}\n\n// Temporary indicates if this connection error is temporary or fatal.\nfunc (e ConnectionError) Temporary() bool {\n\treturn e.temp\n}\n\n// Origin returns the original error of this connection error.\nfunc (e ConnectionError) Origin() error {\n\t// Never return nil error here.\n\t// If the original error is nil, return itself.\n\tif e.err == nil {\n\t\treturn e\n\t}\n\treturn e.err\n}\n\n// Unwrap returns the original error of this connection error or nil when the\n// origin is nil.\nfunc (e ConnectionError) Unwrap() error {\n\treturn e.err\n}\n\nvar (\n\t// ErrConnClosing indicates that the transport is closing.\n\tErrConnClosing = connectionErrorf(true, nil, \"transport is closing\")\n\t// errStreamDrain indicates that the stream is rejected because the\n\t// connection is draining. This could be caused by goaway or balancer\n\t// removing the address.\n\terrStreamDrain = status.Error(codes.Unavailable, \"the connection is draining\")\n\t// errStreamDone is returned from write at the client side to indicate application\n\t// layer of an error.\n\terrStreamDone = errors.New(\"the stream is done\")\n\t// StatusGoAway indicates that the server sent a GOAWAY that included this\n\t// stream's ID in unprocessed RPCs.\n\tstatusGoAway = status.New(codes.Unavailable, \"the stream is rejected because server is draining the connection\")\n)\n\n// GoAwayReason contains the reason for the GoAway frame received.\ntype GoAwayReason uint8\n\nconst (\n\t// GoAwayInvalid indicates that no GoAway frame is received.\n\tGoAwayInvalid GoAwayReason = 0\n\t// GoAwayNoReason is the default value when GoAway frame is received.\n\tGoAwayNoReason GoAwayReason = 1\n\t// GoAwayTooManyPings indicates that a GoAway frame with\n\t// ErrCodeEnhanceYourCalm was received and that the debug data said\n\t// \"too_many_pings\".\n\tGoAwayTooManyPings GoAwayReason = 2\n)\n\n// ContextErr converts the error from context package into a status error.\nfunc ContextErr(err error) error {\n\tswitch err {\n\tcase context.DeadlineExceeded:\n\t\treturn status.Error(codes.DeadlineExceeded, err.Error())\n\tcase context.Canceled:\n\t\treturn status.Error(codes.Canceled, err.Error())\n\t}\n\treturn status.Errorf(codes.Internal, \"Unexpected error from context packet: %v\", err)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/keepalive/keepalive.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package keepalive defines configurable parameters for point-to-point\n// healthcheck.\npackage keepalive\n\nimport (\n\t\"time\"\n)\n\n// ClientParameters is used to set keepalive parameters on the client-side.\n// These configure how the client will actively probe to notice when a\n// connection is broken and send pings so intermediaries will be aware of the\n// liveness of the connection. Make sure these parameters are set in\n// coordination with the keepalive policy on the server, as incompatible\n// settings can result in closing of connection.\ntype ClientParameters struct {\n\t// After a duration of this time if the client doesn't see any activity it\n\t// pings the server to see if the transport is still alive.\n\t// If set below 10s, a minimum value of 10s will be used instead.\n\t//\n\t// Note that gRPC servers have a default EnforcementPolicy.MinTime of 5\n\t// minutes (which means the client shouldn't ping more frequently than every\n\t// 5 minutes).\n\t//\n\t// Though not ideal, it's not a strong requirement for Time to be less than\n\t// EnforcementPolicy.MinTime.  Time will automatically double if the server\n\t// disconnects due to its enforcement policy.\n\t//\n\t// For more details, see\n\t// https://github.com/grpc/proposal/blob/master/A8-client-side-keepalive.md\n\tTime time.Duration\n\t// After having pinged for keepalive check, the client waits for a duration\n\t// of Timeout and if no activity is seen even after that the connection is\n\t// closed.\n\t//\n\t// If keepalive is enabled, and this value is not explicitly set, the default\n\t// is 20 seconds.\n\tTimeout time.Duration\n\t// If true, client sends keepalive pings even with no active RPCs. If false,\n\t// when there are no active RPCs, Time and Timeout will be ignored and no\n\t// keepalive pings will be sent.\n\tPermitWithoutStream bool\n}\n\n// ServerParameters is used to set keepalive and max-age parameters on the\n// server-side.\ntype ServerParameters struct {\n\t// MaxConnectionIdle is a duration for the amount of time after which an\n\t// idle connection would be closed by sending a GoAway. Idleness duration is\n\t// defined since the most recent time the number of outstanding RPCs became\n\t// zero or the connection establishment.\n\tMaxConnectionIdle time.Duration // The current default value is infinity.\n\t// MaxConnectionAge is a duration for the maximum amount of time a\n\t// connection may exist before it will be closed by sending a GoAway. A\n\t// random jitter of +/-10% will be added to MaxConnectionAge to spread out\n\t// connection storms.\n\tMaxConnectionAge time.Duration // The current default value is infinity.\n\t// MaxConnectionAgeGrace is an additive period after MaxConnectionAge after\n\t// which the connection will be forcibly closed.\n\tMaxConnectionAgeGrace time.Duration // The current default value is infinity.\n\t// After a duration of this time if the server doesn't see any activity it\n\t// pings the client to see if the transport is still alive.\n\t// If set below 1s, a minimum value of 1s will be used instead.\n\tTime time.Duration // The current default value is 2 hours.\n\t// After having pinged for keepalive check, the server waits for a duration\n\t// of Timeout and if no activity is seen even after that the connection is\n\t// closed.\n\tTimeout time.Duration // The current default value is 20 seconds.\n}\n\n// EnforcementPolicy is used to set keepalive enforcement policy on the\n// server-side. Server will close connection with a client that violates this\n// policy.\ntype EnforcementPolicy struct {\n\t// MinTime is the minimum amount of time a client should wait before sending\n\t// a keepalive ping.\n\tMinTime time.Duration // The current default value is 5 minutes.\n\t// If true, server allows keepalive pings even when there are no active\n\t// streams(RPCs). If false, and client sends ping when there are no active\n\t// streams, server will send GOAWAY and close the connection.\n\tPermitWithoutStream bool // false by default.\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/mem/buffer_pool.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage mem\n\nimport (\n\t\"sort\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/internal\"\n)\n\n// BufferPool is a pool of buffers that can be shared and reused, resulting in\n// decreased memory allocation.\ntype BufferPool interface {\n\t// Get returns a buffer with specified length from the pool.\n\tGet(length int) *[]byte\n\n\t// Put returns a buffer to the pool.\n\t//\n\t// The provided pointer must hold a prefix of the buffer obtained via\n\t// BufferPool.Get to ensure the buffer's entire capacity can be re-used.\n\tPut(*[]byte)\n}\n\nconst goPageSize = 4 << 10 // 4KiB. N.B. this must be a power of 2.\n\nvar defaultBufferPoolSizes = []int{\n\t256,\n\tgoPageSize,\n\t16 << 10, // 16KB (max HTTP/2 frame size used by gRPC)\n\t32 << 10, // 32KB (default buffer size for io.Copy)\n\t1 << 20,  // 1MB\n}\n\nvar defaultBufferPool BufferPool\n\nfunc init() {\n\tdefaultBufferPool = NewTieredBufferPool(defaultBufferPoolSizes...)\n\n\tinternal.SetDefaultBufferPool = func(pool BufferPool) {\n\t\tdefaultBufferPool = pool\n\t}\n\n\tinternal.SetBufferPoolingThresholdForTesting = func(threshold int) {\n\t\tbufferPoolingThreshold = threshold\n\t}\n}\n\n// DefaultBufferPool returns the current default buffer pool. It is a BufferPool\n// created with NewBufferPool that uses a set of default sizes optimized for\n// expected workflows.\nfunc DefaultBufferPool() BufferPool {\n\treturn defaultBufferPool\n}\n\n// NewTieredBufferPool returns a BufferPool implementation that uses multiple\n// underlying pools of the given pool sizes.\nfunc NewTieredBufferPool(poolSizes ...int) BufferPool {\n\tsort.Ints(poolSizes)\n\tpools := make([]*sizedBufferPool, len(poolSizes))\n\tfor i, s := range poolSizes {\n\t\tpools[i] = newSizedBufferPool(s)\n\t}\n\treturn &tieredBufferPool{\n\t\tsizedPools: pools,\n\t}\n}\n\n// tieredBufferPool implements the BufferPool interface with multiple tiers of\n// buffer pools for different sizes of buffers.\ntype tieredBufferPool struct {\n\tsizedPools   []*sizedBufferPool\n\tfallbackPool simpleBufferPool\n}\n\nfunc (p *tieredBufferPool) Get(size int) *[]byte {\n\treturn p.getPool(size).Get(size)\n}\n\nfunc (p *tieredBufferPool) Put(buf *[]byte) {\n\tp.getPool(cap(*buf)).Put(buf)\n}\n\nfunc (p *tieredBufferPool) getPool(size int) BufferPool {\n\tpoolIdx := sort.Search(len(p.sizedPools), func(i int) bool {\n\t\treturn p.sizedPools[i].defaultSize >= size\n\t})\n\n\tif poolIdx == len(p.sizedPools) {\n\t\treturn &p.fallbackPool\n\t}\n\n\treturn p.sizedPools[poolIdx]\n}\n\n// sizedBufferPool is a BufferPool implementation that is optimized for specific\n// buffer sizes. For example, HTTP/2 frames within gRPC have a default max size\n// of 16kb and a sizedBufferPool can be configured to only return buffers with a\n// capacity of 16kb. Note that however it does not support returning larger\n// buffers and in fact panics if such a buffer is requested. Because of this,\n// this BufferPool implementation is not meant to be used on its own and rather\n// is intended to be embedded in a tieredBufferPool such that Get is only\n// invoked when the required size is smaller than or equal to defaultSize.\ntype sizedBufferPool struct {\n\tpool        sync.Pool\n\tdefaultSize int\n}\n\nfunc (p *sizedBufferPool) Get(size int) *[]byte {\n\tbuf, ok := p.pool.Get().(*[]byte)\n\tif !ok {\n\t\tbuf := make([]byte, size, p.defaultSize)\n\t\treturn &buf\n\t}\n\tb := *buf\n\tclear(b[:cap(b)])\n\t*buf = b[:size]\n\treturn buf\n}\n\nfunc (p *sizedBufferPool) Put(buf *[]byte) {\n\tif cap(*buf) < p.defaultSize {\n\t\t// Ignore buffers that are too small to fit in the pool. Otherwise, when\n\t\t// Get is called it will panic as it tries to index outside the bounds\n\t\t// of the buffer.\n\t\treturn\n\t}\n\tp.pool.Put(buf)\n}\n\nfunc newSizedBufferPool(size int) *sizedBufferPool {\n\treturn &sizedBufferPool{\n\t\tdefaultSize: size,\n\t}\n}\n\nvar _ BufferPool = (*simpleBufferPool)(nil)\n\n// simpleBufferPool is an implementation of the BufferPool interface that\n// attempts to pool buffers with a sync.Pool. When Get is invoked, it tries to\n// acquire a buffer from the pool but if that buffer is too small, it returns it\n// to the pool and creates a new one.\ntype simpleBufferPool struct {\n\tpool sync.Pool\n}\n\nfunc (p *simpleBufferPool) Get(size int) *[]byte {\n\tbs, ok := p.pool.Get().(*[]byte)\n\tif ok && cap(*bs) >= size {\n\t\tclear((*bs)[:cap(*bs)])\n\t\t*bs = (*bs)[:size]\n\t\treturn bs\n\t}\n\n\t// A buffer was pulled from the pool, but it is too small. Put it back in\n\t// the pool and create one large enough.\n\tif ok {\n\t\tp.pool.Put(bs)\n\t}\n\n\t// If we're going to allocate, round up to the nearest page. This way if\n\t// requests frequently arrive with small variation we don't allocate\n\t// repeatedly if we get unlucky and they increase over time. By default we\n\t// only allocate here if size > 1MiB. Because goPageSize is a power of 2, we\n\t// can round up efficiently.\n\tallocSize := (size + goPageSize - 1) & ^(goPageSize - 1)\n\n\tb := make([]byte, size, allocSize)\n\treturn &b\n}\n\nfunc (p *simpleBufferPool) Put(buf *[]byte) {\n\tp.pool.Put(buf)\n}\n\nvar _ BufferPool = NopBufferPool{}\n\n// NopBufferPool is a buffer pool that returns new buffers without pooling.\ntype NopBufferPool struct{}\n\n// Get returns a buffer with specified length from the pool.\nfunc (NopBufferPool) Get(length int) *[]byte {\n\tb := make([]byte, length)\n\treturn &b\n}\n\n// Put returns a buffer to the pool.\nfunc (NopBufferPool) Put(*[]byte) {\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/mem/buffer_slice.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage mem\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\nconst (\n\t// 32 KiB is what io.Copy uses.\n\treadAllBufSize = 32 * 1024\n)\n\n// BufferSlice offers a means to represent data that spans one or more Buffer\n// instances. A BufferSlice is meant to be immutable after creation, and methods\n// like Ref create and return copies of the slice. This is why all methods have\n// value receivers rather than pointer receivers.\n//\n// Note that any of the methods that read the underlying buffers such as Ref,\n// Len or CopyTo etc., will panic if any underlying buffers have already been\n// freed. It is recommended to not directly interact with any of the underlying\n// buffers directly, rather such interactions should be mediated through the\n// various methods on this type.\n//\n// By convention, any APIs that return (mem.BufferSlice, error) should reduce\n// the burden on the caller by never returning a mem.BufferSlice that needs to\n// be freed if the error is non-nil, unless explicitly stated.\ntype BufferSlice []Buffer\n\n// Len returns the sum of the length of all the Buffers in this slice.\n//\n// # Warning\n//\n// Invoking the built-in len on a BufferSlice will return the number of buffers\n// in the slice, and *not* the value returned by this function.\nfunc (s BufferSlice) Len() int {\n\tvar length int\n\tfor _, b := range s {\n\t\tlength += b.Len()\n\t}\n\treturn length\n}\n\n// Ref invokes Ref on each buffer in the slice.\nfunc (s BufferSlice) Ref() {\n\tfor _, b := range s {\n\t\tb.Ref()\n\t}\n}\n\n// Free invokes Buffer.Free() on each Buffer in the slice.\nfunc (s BufferSlice) Free() {\n\tfor _, b := range s {\n\t\tb.Free()\n\t}\n}\n\n// CopyTo copies each of the underlying Buffer's data into the given buffer,\n// returning the number of bytes copied. Has the same semantics as the copy\n// builtin in that it will copy as many bytes as it can, stopping when either dst\n// is full or s runs out of data, returning the minimum of s.Len() and len(dst).\nfunc (s BufferSlice) CopyTo(dst []byte) int {\n\toff := 0\n\tfor _, b := range s {\n\t\toff += copy(dst[off:], b.ReadOnlyData())\n\t}\n\treturn off\n}\n\n// Materialize concatenates all the underlying Buffer's data into a single\n// contiguous buffer using CopyTo.\nfunc (s BufferSlice) Materialize() []byte {\n\tl := s.Len()\n\tif l == 0 {\n\t\treturn nil\n\t}\n\tout := make([]byte, l)\n\ts.CopyTo(out)\n\treturn out\n}\n\n// MaterializeToBuffer functions like Materialize except that it writes the data\n// to a single Buffer pulled from the given BufferPool.\n//\n// As a special case, if the input BufferSlice only actually has one Buffer, this\n// function simply increases the refcount before returning said Buffer. Freeing this\n// buffer won't release it until the BufferSlice is itself released.\nfunc (s BufferSlice) MaterializeToBuffer(pool BufferPool) Buffer {\n\tif len(s) == 1 {\n\t\ts[0].Ref()\n\t\treturn s[0]\n\t}\n\tsLen := s.Len()\n\tif sLen == 0 {\n\t\treturn emptyBuffer{}\n\t}\n\tbuf := pool.Get(sLen)\n\ts.CopyTo(*buf)\n\treturn NewBuffer(buf, pool)\n}\n\n// Reader returns a new Reader for the input slice after taking references to\n// each underlying buffer.\nfunc (s BufferSlice) Reader() *Reader {\n\ts.Ref()\n\treturn &Reader{\n\t\tdata: s,\n\t\tlen:  s.Len(),\n\t}\n}\n\n// Reader exposes a BufferSlice's data as an io.Reader, allowing it to interface\n// with other systems.\n//\n// Buffers will be freed as they are read.\n//\n// A Reader can be constructed from a BufferSlice; alternatively the zero value\n// of a Reader may be used after calling Reset on it.\ntype Reader struct {\n\tdata BufferSlice\n\tlen  int\n\t// The index into data[0].ReadOnlyData().\n\tbufferIdx int\n}\n\n// Remaining returns the number of unread bytes remaining in the slice.\nfunc (r *Reader) Remaining() int {\n\treturn r.len\n}\n\n// Reset frees the currently held buffer slice and starts reading from the\n// provided slice. This allows reusing the reader object.\nfunc (r *Reader) Reset(s BufferSlice) {\n\tr.data.Free()\n\ts.Ref()\n\tr.data = s\n\tr.len = s.Len()\n\tr.bufferIdx = 0\n}\n\n// Close frees the underlying BufferSlice and never returns an error. Subsequent\n// calls to Read will return (0, io.EOF).\nfunc (r *Reader) Close() error {\n\tr.data.Free()\n\tr.data = nil\n\tr.len = 0\n\treturn nil\n}\n\nfunc (r *Reader) freeFirstBufferIfEmpty() bool {\n\tif len(r.data) == 0 || r.bufferIdx != len(r.data[0].ReadOnlyData()) {\n\t\treturn false\n\t}\n\n\tr.data[0].Free()\n\tr.data = r.data[1:]\n\tr.bufferIdx = 0\n\treturn true\n}\n\nfunc (r *Reader) Read(buf []byte) (n int, _ error) {\n\tif r.len == 0 {\n\t\treturn 0, io.EOF\n\t}\n\n\tfor len(buf) != 0 && r.len != 0 {\n\t\t// Copy as much as possible from the first Buffer in the slice into the\n\t\t// given byte slice.\n\t\tdata := r.data[0].ReadOnlyData()\n\t\tcopied := copy(buf, data[r.bufferIdx:])\n\t\tr.len -= copied       // Reduce len by the number of bytes copied.\n\t\tr.bufferIdx += copied // Increment the buffer index.\n\t\tn += copied           // Increment the total number of bytes read.\n\t\tbuf = buf[copied:]    // Shrink the given byte slice.\n\n\t\t// If we have copied all the data from the first Buffer, free it and advance to\n\t\t// the next in the slice.\n\t\tr.freeFirstBufferIfEmpty()\n\t}\n\n\treturn n, nil\n}\n\n// ReadByte reads a single byte.\nfunc (r *Reader) ReadByte() (byte, error) {\n\tif r.len == 0 {\n\t\treturn 0, io.EOF\n\t}\n\n\t// There may be any number of empty buffers in the slice, clear them all until a\n\t// non-empty buffer is reached. This is guaranteed to exit since r.len is not 0.\n\tfor r.freeFirstBufferIfEmpty() {\n\t}\n\n\tb := r.data[0].ReadOnlyData()[r.bufferIdx]\n\tr.len--\n\tr.bufferIdx++\n\t// Free the first buffer in the slice if the last byte was read\n\tr.freeFirstBufferIfEmpty()\n\treturn b, nil\n}\n\nvar _ io.Writer = (*writer)(nil)\n\ntype writer struct {\n\tbuffers *BufferSlice\n\tpool    BufferPool\n}\n\nfunc (w *writer) Write(p []byte) (n int, err error) {\n\tb := Copy(p, w.pool)\n\t*w.buffers = append(*w.buffers, b)\n\treturn b.Len(), nil\n}\n\n// NewWriter wraps the given BufferSlice and BufferPool to implement the\n// io.Writer interface. Every call to Write copies the contents of the given\n// buffer into a new Buffer pulled from the given pool and the Buffer is\n// added to the given BufferSlice.\nfunc NewWriter(buffers *BufferSlice, pool BufferPool) io.Writer {\n\treturn &writer{buffers: buffers, pool: pool}\n}\n\n// ReadAll reads from r until an error or EOF and returns the data it read.\n// A successful call returns err == nil, not err == EOF. Because ReadAll is\n// defined to read from src until EOF, it does not treat an EOF from Read\n// as an error to be reported.\n//\n// Important: A failed call returns a non-nil error and may also return\n// partially read buffers. It is the responsibility of the caller to free the\n// BufferSlice returned, or its memory will not be reused.\nfunc ReadAll(r io.Reader, pool BufferPool) (BufferSlice, error) {\n\tvar result BufferSlice\n\tif wt, ok := r.(io.WriterTo); ok {\n\t\t// This is more optimal since wt knows the size of chunks it wants to\n\t\t// write and, hence, we can allocate buffers of an optimal size to fit\n\t\t// them. E.g. might be a single big chunk, and we wouldn't chop it\n\t\t// into pieces.\n\t\tw := NewWriter(&result, pool)\n\t\t_, err := wt.WriteTo(w)\n\t\treturn result, err\n\t}\nnextBuffer:\n\tfor {\n\t\tbuf := pool.Get(readAllBufSize)\n\t\t// We asked for 32KiB but may have been given a bigger buffer.\n\t\t// Use all of it if that's the case.\n\t\t*buf = (*buf)[:cap(*buf)]\n\t\tusedCap := 0\n\t\tfor {\n\t\t\tn, err := r.Read((*buf)[usedCap:])\n\t\t\tusedCap += n\n\t\t\tif err != nil {\n\t\t\t\tif usedCap == 0 {\n\t\t\t\t\t// Nothing in this buf, put it back\n\t\t\t\t\tpool.Put(buf)\n\t\t\t\t} else {\n\t\t\t\t\t*buf = (*buf)[:usedCap]\n\t\t\t\t\tresult = append(result, NewBuffer(buf, pool))\n\t\t\t\t}\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\terr = nil\n\t\t\t\t}\n\t\t\t\treturn result, err\n\t\t\t}\n\t\t\tif len(*buf) == usedCap {\n\t\t\t\tresult = append(result, NewBuffer(buf, pool))\n\t\t\t\tcontinue nextBuffer\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Discard skips the next n bytes, returning the number of bytes discarded.\n//\n// It frees buffers as they are fully consumed.\n//\n// If Discard skips fewer than n bytes, it also returns an error.\nfunc (r *Reader) Discard(n int) (discarded int, err error) {\n\ttotal := n\n\tfor n > 0 && r.len > 0 {\n\t\tcurData := r.data[0].ReadOnlyData()\n\t\tcurSize := min(n, len(curData)-r.bufferIdx)\n\t\tn -= curSize\n\t\tr.len -= curSize\n\t\tr.bufferIdx += curSize\n\t\tif r.bufferIdx >= len(curData) {\n\t\t\tr.data[0].Free()\n\t\t\tr.data = r.data[1:]\n\t\t\tr.bufferIdx = 0\n\t\t}\n\t}\n\tdiscarded = total - n\n\tif n > 0 {\n\t\treturn discarded, fmt.Errorf(\"insufficient bytes in reader\")\n\t}\n\treturn discarded, nil\n}\n\n// Peek returns the next n bytes without advancing the reader.\n//\n// Peek appends results to the provided res slice and returns the updated slice.\n// This pattern allows re-using the storage of res if it has sufficient\n// capacity.\n//\n// The returned subslices are views into the underlying buffers and are only\n// valid until the reader is advanced past the corresponding buffer.\n//\n// If Peek returns fewer than n bytes, it also returns an error.\nfunc (r *Reader) Peek(n int, res [][]byte) ([][]byte, error) {\n\tfor i := 0; n > 0 && i < len(r.data); i++ {\n\t\tcurData := r.data[i].ReadOnlyData()\n\t\tstart := 0\n\t\tif i == 0 {\n\t\t\tstart = r.bufferIdx\n\t\t}\n\t\tcurSize := min(n, len(curData)-start)\n\t\tif curSize == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, curData[start:start+curSize])\n\t\tn -= curSize\n\t}\n\tif n > 0 {\n\t\treturn nil, fmt.Errorf(\"insufficient bytes in reader\")\n\t}\n\treturn res, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/mem/buffers.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package mem provides utilities that facilitate memory reuse in byte slices\n// that are used as buffers.\n//\n// # Experimental\n//\n// Notice: All APIs in this package are EXPERIMENTAL and may be changed or\n// removed in a later release.\npackage mem\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// A Buffer represents a reference counted piece of data (in bytes) that can be\n// acquired by a call to NewBuffer() or Copy(). A reference to a Buffer may be\n// released by calling Free(), which invokes the free function given at creation\n// only after all references are released.\n//\n// Note that a Buffer is not safe for concurrent access and instead each\n// goroutine should use its own reference to the data, which can be acquired via\n// a call to Ref().\n//\n// Attempts to access the underlying data after releasing the reference to the\n// Buffer will panic.\ntype Buffer interface {\n\t// ReadOnlyData returns the underlying byte slice. Note that it is undefined\n\t// behavior to modify the contents of this slice in any way.\n\tReadOnlyData() []byte\n\t// Ref increases the reference counter for this Buffer.\n\tRef()\n\t// Free decrements this Buffer's reference counter and frees the underlying\n\t// byte slice if the counter reaches 0 as a result of this call.\n\tFree()\n\t// Len returns the Buffer's size.\n\tLen() int\n\n\tsplit(n int) (left, right Buffer)\n\tread(buf []byte) (int, Buffer)\n}\n\nvar (\n\tbufferPoolingThreshold = 1 << 10\n\n\tbufferObjectPool = sync.Pool{New: func() any { return new(buffer) }}\n)\n\n// IsBelowBufferPoolingThreshold returns true if the given size is less than or\n// equal to the threshold for buffer pooling. This is used to determine whether\n// to pool buffers or allocate them directly.\nfunc IsBelowBufferPoolingThreshold(size int) bool {\n\treturn size <= bufferPoolingThreshold\n}\n\ntype buffer struct {\n\trefs atomic.Int32\n\tdata []byte\n\n\t// rootBuf is the buffer responsible for returning origData to the pool\n\t// once the reference count drops to 0.\n\t//\n\t// When a buffer is split, the new buffer inherits the rootBuf of the\n\t// original and increments the root's reference count. For the\n\t// initial buffer (the root), this field points to itself.\n\trootBuf *buffer\n\n\t// The following fields are only set for root buffers.\n\torigData *[]byte\n\tpool     BufferPool\n}\n\nfunc newBuffer() *buffer {\n\treturn bufferObjectPool.Get().(*buffer)\n}\n\n// NewBuffer creates a new Buffer from the given data, initializing the reference\n// counter to 1. The data will then be returned to the given pool when all\n// references to the returned Buffer are released. As a special case to avoid\n// additional allocations, if the given buffer pool is nil, the returned buffer\n// will be a \"no-op\" Buffer where invoking Buffer.Free() does nothing and the\n// underlying data is never freed.\n//\n// Note that the backing array of the given data is not copied.\nfunc NewBuffer(data *[]byte, pool BufferPool) Buffer {\n\t// Use the buffer's capacity instead of the length, otherwise buffers may\n\t// not be reused under certain conditions. For example, if a large buffer\n\t// is acquired from the pool, but fewer bytes than the buffering threshold\n\t// are written to it, the buffer will not be returned to the pool.\n\tif pool == nil || IsBelowBufferPoolingThreshold(cap(*data)) {\n\t\treturn (SliceBuffer)(*data)\n\t}\n\tb := newBuffer()\n\tb.origData = data\n\tb.data = *data\n\tb.pool = pool\n\tb.rootBuf = b\n\tb.refs.Store(1)\n\treturn b\n}\n\n// Copy creates a new Buffer from the given data, initializing the reference\n// counter to 1.\n//\n// It acquires a []byte from the given pool and copies over the backing array\n// of the given data. The []byte acquired from the pool is returned to the\n// pool when all references to the returned Buffer are released.\nfunc Copy(data []byte, pool BufferPool) Buffer {\n\tif IsBelowBufferPoolingThreshold(len(data)) {\n\t\tbuf := make(SliceBuffer, len(data))\n\t\tcopy(buf, data)\n\t\treturn buf\n\t}\n\n\tbuf := pool.Get(len(data))\n\tcopy(*buf, data)\n\treturn NewBuffer(buf, pool)\n}\n\nfunc (b *buffer) ReadOnlyData() []byte {\n\tif b.rootBuf == nil {\n\t\tpanic(\"Cannot read freed buffer\")\n\t}\n\treturn b.data\n}\n\nfunc (b *buffer) Ref() {\n\tif b.refs.Add(1) <= 1 {\n\t\tpanic(\"Cannot ref freed buffer\")\n\t}\n}\n\nfunc (b *buffer) Free() {\n\trefs := b.refs.Add(-1)\n\tif refs < 0 {\n\t\tpanic(\"Cannot free freed buffer\")\n\t}\n\tif refs > 0 {\n\t\treturn\n\t}\n\n\tb.data = nil\n\tif b.rootBuf == b {\n\t\t// This buffer is the owner of the data slice and its ref count reached\n\t\t// 0, free the slice.\n\t\tif b.pool != nil {\n\t\t\tb.pool.Put(b.origData)\n\t\t\tb.pool = nil\n\t\t}\n\t\tb.origData = nil\n\t} else {\n\t\t// This buffer doesn't own the data slice, decrement a ref on the root\n\t\t// buffer.\n\t\tb.rootBuf.Free()\n\t}\n\n\tb.rootBuf = nil\n\tbufferObjectPool.Put(b)\n}\n\nfunc (b *buffer) Len() int {\n\treturn len(b.ReadOnlyData())\n}\n\nfunc (b *buffer) split(n int) (Buffer, Buffer) {\n\tif b.rootBuf == nil || b.rootBuf.refs.Add(1) <= 1 {\n\t\tpanic(\"Cannot split freed buffer\")\n\t}\n\n\tsplit := newBuffer()\n\tsplit.data = b.data[n:]\n\tsplit.rootBuf = b.rootBuf\n\tsplit.refs.Store(1)\n\n\tb.data = b.data[:n]\n\n\treturn b, split\n}\n\nfunc (b *buffer) read(buf []byte) (int, Buffer) {\n\tif b.rootBuf == nil {\n\t\tpanic(\"Cannot read freed buffer\")\n\t}\n\n\tn := copy(buf, b.data)\n\tif n == len(b.data) {\n\t\tb.Free()\n\t\treturn n, nil\n\t}\n\n\tb.data = b.data[n:]\n\treturn n, b\n}\n\nfunc (b *buffer) String() string {\n\treturn fmt.Sprintf(\"mem.Buffer(%p, data: %p, length: %d)\", b, b.ReadOnlyData(), len(b.ReadOnlyData()))\n}\n\n// ReadUnsafe reads bytes from the given Buffer into the provided slice.\n// It does not perform safety checks.\nfunc ReadUnsafe(dst []byte, buf Buffer) (int, Buffer) {\n\treturn buf.read(dst)\n}\n\n// SplitUnsafe modifies the receiver to point to the first n bytes while it\n// returns a new reference to the remaining bytes. The returned Buffer\n// functions just like a normal reference acquired using Ref().\nfunc SplitUnsafe(buf Buffer, n int) (left, right Buffer) {\n\treturn buf.split(n)\n}\n\ntype emptyBuffer struct{}\n\nfunc (e emptyBuffer) ReadOnlyData() []byte {\n\treturn nil\n}\n\nfunc (e emptyBuffer) Ref()  {}\nfunc (e emptyBuffer) Free() {}\n\nfunc (e emptyBuffer) Len() int {\n\treturn 0\n}\n\nfunc (e emptyBuffer) split(int) (left, right Buffer) {\n\treturn e, e\n}\n\nfunc (e emptyBuffer) read([]byte) (int, Buffer) {\n\treturn 0, e\n}\n\n// SliceBuffer is a Buffer implementation that wraps a byte slice. It provides\n// methods for reading, splitting, and managing the byte slice.\ntype SliceBuffer []byte\n\n// ReadOnlyData returns the byte slice.\nfunc (s SliceBuffer) ReadOnlyData() []byte { return s }\n\n// Ref is a noop implementation of Ref.\nfunc (s SliceBuffer) Ref() {}\n\n// Free is a noop implementation of Free.\nfunc (s SliceBuffer) Free() {}\n\n// Len is a noop implementation of Len.\nfunc (s SliceBuffer) Len() int { return len(s) }\n\nfunc (s SliceBuffer) split(n int) (left, right Buffer) {\n\treturn s[:n], s[n:]\n}\n\nfunc (s SliceBuffer) read(buf []byte) (int, Buffer) {\n\tn := copy(buf, s)\n\tif n == len(s) {\n\t\treturn n, nil\n\t}\n\treturn n, s[n:]\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/metadata/metadata.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package metadata define the structure of the metadata supported by gRPC library.\n// Please refer to https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md\n// for more information about custom-metadata.\npackage metadata // import \"google.golang.org/grpc/metadata\"\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/internal\"\n)\n\nfunc init() {\n\tinternal.FromOutgoingContextRaw = fromOutgoingContextRaw\n}\n\n// DecodeKeyValue returns k, v, nil.\n//\n// Deprecated: use k and v directly instead.\nfunc DecodeKeyValue(k, v string) (string, string, error) {\n\treturn k, v, nil\n}\n\n// MD is a mapping from metadata keys to values. Users should use the following\n// two convenience functions New and Pairs to generate MD.\ntype MD map[string][]string\n\n// New creates an MD from a given key-value map.\n//\n// Only the following ASCII characters are allowed in keys:\n//   - digits: 0-9\n//   - uppercase letters: A-Z (normalized to lower)\n//   - lowercase letters: a-z\n//   - special characters: -_.\n//\n// Uppercase letters are automatically converted to lowercase.\n//\n// Keys beginning with \"grpc-\" are reserved for grpc-internal use only and may\n// result in errors if set in metadata.\nfunc New(m map[string]string) MD {\n\tmd := make(MD, len(m))\n\tfor k, val := range m {\n\t\tkey := strings.ToLower(k)\n\t\tmd[key] = append(md[key], val)\n\t}\n\treturn md\n}\n\n// Pairs returns an MD formed by the mapping of key, value ...\n// Pairs panics if len(kv) is odd.\n//\n// Only the following ASCII characters are allowed in keys:\n//   - digits: 0-9\n//   - uppercase letters: A-Z (normalized to lower)\n//   - lowercase letters: a-z\n//   - special characters: -_.\n//\n// Uppercase letters are automatically converted to lowercase.\n//\n// Keys beginning with \"grpc-\" are reserved for grpc-internal use only and may\n// result in errors if set in metadata.\nfunc Pairs(kv ...string) MD {\n\tif len(kv)%2 == 1 {\n\t\tpanic(fmt.Sprintf(\"metadata: Pairs got the odd number of input pairs for metadata: %d\", len(kv)))\n\t}\n\tmd := make(MD, len(kv)/2)\n\tfor i := 0; i < len(kv); i += 2 {\n\t\tkey := strings.ToLower(kv[i])\n\t\tmd[key] = append(md[key], kv[i+1])\n\t}\n\treturn md\n}\n\n// Len returns the number of items in md.\nfunc (md MD) Len() int {\n\treturn len(md)\n}\n\n// Copy returns a copy of md.\nfunc (md MD) Copy() MD {\n\tout := make(MD, len(md))\n\tfor k, v := range md {\n\t\tout[k] = copyOf(v)\n\t}\n\treturn out\n}\n\n// Get obtains the values for a given key.\n//\n// k is converted to lowercase before searching in md.\nfunc (md MD) Get(k string) []string {\n\tk = strings.ToLower(k)\n\treturn md[k]\n}\n\n// Set sets the value of a given key with a slice of values.\n//\n// k is converted to lowercase before storing in md.\nfunc (md MD) Set(k string, vals ...string) {\n\tif len(vals) == 0 {\n\t\treturn\n\t}\n\tk = strings.ToLower(k)\n\tmd[k] = vals\n}\n\n// Append adds the values to key k, not overwriting what was already stored at\n// that key.\n//\n// k is converted to lowercase before storing in md.\nfunc (md MD) Append(k string, vals ...string) {\n\tif len(vals) == 0 {\n\t\treturn\n\t}\n\tk = strings.ToLower(k)\n\tmd[k] = append(md[k], vals...)\n}\n\n// Delete removes the values for a given key k which is converted to lowercase\n// before removing it from md.\nfunc (md MD) Delete(k string) {\n\tk = strings.ToLower(k)\n\tdelete(md, k)\n}\n\n// Join joins any number of mds into a single MD.\n//\n// The order of values for each key is determined by the order in which the mds\n// containing those values are presented to Join.\nfunc Join(mds ...MD) MD {\n\tout := MD{}\n\tfor _, md := range mds {\n\t\tfor k, v := range md {\n\t\t\tout[k] = append(out[k], v...)\n\t\t}\n\t}\n\treturn out\n}\n\ntype mdIncomingKey struct{}\ntype mdOutgoingKey struct{}\n\n// NewIncomingContext creates a new context with incoming md attached. md must\n// not be modified after calling this function.\nfunc NewIncomingContext(ctx context.Context, md MD) context.Context {\n\treturn context.WithValue(ctx, mdIncomingKey{}, md)\n}\n\n// NewOutgoingContext creates a new context with outgoing md attached. If used\n// in conjunction with AppendToOutgoingContext, NewOutgoingContext will\n// overwrite any previously-appended metadata. md must not be modified after\n// calling this function.\nfunc NewOutgoingContext(ctx context.Context, md MD) context.Context {\n\treturn context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md})\n}\n\n// AppendToOutgoingContext returns a new context with the provided kv merged\n// with any existing metadata in the context. Please refer to the documentation\n// of Pairs for a description of kv.\nfunc AppendToOutgoingContext(ctx context.Context, kv ...string) context.Context {\n\tif len(kv)%2 == 1 {\n\t\tpanic(fmt.Sprintf(\"metadata: AppendToOutgoingContext got an odd number of input pairs for metadata: %d\", len(kv)))\n\t}\n\tmd, _ := ctx.Value(mdOutgoingKey{}).(rawMD)\n\tadded := make([][]string, len(md.added)+1)\n\tcopy(added, md.added)\n\tkvCopy := make([]string, 0, len(kv))\n\tfor i := 0; i < len(kv); i += 2 {\n\t\tkvCopy = append(kvCopy, strings.ToLower(kv[i]), kv[i+1])\n\t}\n\tadded[len(added)-1] = kvCopy\n\treturn context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md.md, added: added})\n}\n\n// FromIncomingContext returns the incoming metadata in ctx if it exists.\n//\n// All keys in the returned MD are lowercase.\nfunc FromIncomingContext(ctx context.Context) (MD, bool) {\n\tmd, ok := ctx.Value(mdIncomingKey{}).(MD)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tout := make(MD, len(md))\n\tfor k, v := range md {\n\t\t// We need to manually convert all keys to lower case, because MD is a\n\t\t// map, and there's no guarantee that the MD attached to the context is\n\t\t// created using our helper functions.\n\t\tkey := strings.ToLower(k)\n\t\tout[key] = copyOf(v)\n\t}\n\treturn out, true\n}\n\n// ValueFromIncomingContext returns the metadata value corresponding to the metadata\n// key from the incoming metadata if it exists. Keys are matched in a case insensitive\n// manner.\nfunc ValueFromIncomingContext(ctx context.Context, key string) []string {\n\tmd, ok := ctx.Value(mdIncomingKey{}).(MD)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tif v, ok := md[key]; ok {\n\t\treturn copyOf(v)\n\t}\n\tfor k, v := range md {\n\t\t// Case insensitive comparison: MD is a map, and there's no guarantee\n\t\t// that the MD attached to the context is created using our helper\n\t\t// functions.\n\t\tif strings.EqualFold(k, key) {\n\t\t\treturn copyOf(v)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc copyOf(v []string) []string {\n\tvals := make([]string, len(v))\n\tcopy(vals, v)\n\treturn vals\n}\n\n// fromOutgoingContextRaw returns the un-merged, intermediary contents of rawMD.\n//\n// Remember to perform strings.ToLower on the keys, for both the returned MD (MD\n// is a map, there's no guarantee it's created using our helper functions) and\n// the extra kv pairs (AppendToOutgoingContext doesn't turn them into\n// lowercase).\nfunc fromOutgoingContextRaw(ctx context.Context) (MD, [][]string, bool) {\n\traw, ok := ctx.Value(mdOutgoingKey{}).(rawMD)\n\tif !ok {\n\t\treturn nil, nil, false\n\t}\n\n\treturn raw.md, raw.added, true\n}\n\n// FromOutgoingContext returns the outgoing metadata in ctx if it exists.\n//\n// All keys in the returned MD are lowercase.\nfunc FromOutgoingContext(ctx context.Context) (MD, bool) {\n\traw, ok := ctx.Value(mdOutgoingKey{}).(rawMD)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\n\tmdSize := len(raw.md)\n\tfor i := range raw.added {\n\t\tmdSize += len(raw.added[i]) / 2\n\t}\n\n\tout := make(MD, mdSize)\n\tfor k, v := range raw.md {\n\t\t// We need to manually convert all keys to lower case, because MD is a\n\t\t// map, and there's no guarantee that the MD attached to the context is\n\t\t// created using our helper functions.\n\t\tkey := strings.ToLower(k)\n\t\tout[key] = copyOf(v)\n\t}\n\tfor _, added := range raw.added {\n\t\tif len(added)%2 == 1 {\n\t\t\tpanic(fmt.Sprintf(\"metadata: FromOutgoingContext got an odd number of input pairs for metadata: %d\", len(added)))\n\t\t}\n\n\t\tfor i := 0; i < len(added); i += 2 {\n\t\t\tkey := strings.ToLower(added[i])\n\t\t\tout[key] = append(out[key], added[i+1])\n\t\t}\n\t}\n\treturn out, ok\n}\n\ntype rawMD struct {\n\tmd    MD\n\tadded [][]string\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/peer/peer.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package peer defines various peer information associated with RPCs and\n// corresponding utils.\npackage peer\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/credentials\"\n)\n\n// Peer contains the information of the peer for an RPC, such as the address\n// and authentication information.\ntype Peer struct {\n\t// Addr is the peer address.\n\tAddr net.Addr\n\t// LocalAddr is the local address.\n\tLocalAddr net.Addr\n\t// AuthInfo is the authentication information of the transport.\n\t// It is nil if there is no transport security being used.\n\tAuthInfo credentials.AuthInfo\n}\n\n// String ensures the Peer types implements the Stringer interface in order to\n// allow to print a context with a peerKey value effectively.\nfunc (p *Peer) String() string {\n\tif p == nil {\n\t\treturn \"Peer<nil>\"\n\t}\n\tsb := &strings.Builder{}\n\tsb.WriteString(\"Peer{\")\n\tif p.Addr != nil {\n\t\tfmt.Fprintf(sb, \"Addr: '%s', \", p.Addr.String())\n\t} else {\n\t\tfmt.Fprintf(sb, \"Addr: <nil>, \")\n\t}\n\tif p.LocalAddr != nil {\n\t\tfmt.Fprintf(sb, \"LocalAddr: '%s', \", p.LocalAddr.String())\n\t} else {\n\t\tfmt.Fprintf(sb, \"LocalAddr: <nil>, \")\n\t}\n\tif p.AuthInfo != nil {\n\t\tfmt.Fprintf(sb, \"AuthInfo: '%s'\", p.AuthInfo.AuthType())\n\t} else {\n\t\tfmt.Fprintf(sb, \"AuthInfo: <nil>\")\n\t}\n\tsb.WriteString(\"}\")\n\n\treturn sb.String()\n}\n\ntype peerKey struct{}\n\n// NewContext creates a new context with peer information attached.\nfunc NewContext(ctx context.Context, p *Peer) context.Context {\n\treturn context.WithValue(ctx, peerKey{}, p)\n}\n\n// FromContext returns the peer information in ctx if it exists.\nfunc FromContext(ctx context.Context) (p *Peer, ok bool) {\n\tp, ok = ctx.Value(peerKey{}).(*Peer)\n\treturn\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/picker_wrapper.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\tistatus \"google.golang.org/grpc/internal/status\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/status\"\n)\n\n// pickerGeneration stores a picker and a channel used to signal that a picker\n// newer than this one is available.\ntype pickerGeneration struct {\n\t// picker is the picker produced by the LB policy.  May be nil if a picker\n\t// has never been produced.\n\tpicker balancer.Picker\n\t// blockingCh is closed when the picker has been invalidated because there\n\t// is a new one available.\n\tblockingCh chan struct{}\n}\n\n// pickerWrapper is a wrapper of balancer.Picker. It blocks on certain pick\n// actions and unblock when there's a picker update.\ntype pickerWrapper struct {\n\t// If pickerGen holds a nil pointer, the pickerWrapper is closed.\n\tpickerGen atomic.Pointer[pickerGeneration]\n}\n\nfunc newPickerWrapper() *pickerWrapper {\n\tpw := &pickerWrapper{}\n\tpw.pickerGen.Store(&pickerGeneration{\n\t\tblockingCh: make(chan struct{}),\n\t})\n\treturn pw\n}\n\n// updatePicker is called by UpdateState calls from the LB policy. It\n// unblocks all blocked pick.\nfunc (pw *pickerWrapper) updatePicker(p balancer.Picker) {\n\told := pw.pickerGen.Swap(&pickerGeneration{\n\t\tpicker:     p,\n\t\tblockingCh: make(chan struct{}),\n\t})\n\tclose(old.blockingCh)\n}\n\n// doneChannelzWrapper performs the following:\n//   - increments the calls started channelz counter\n//   - wraps the done function in the passed in result to increment the calls\n//     failed or calls succeeded channelz counter before invoking the actual\n//     done function.\nfunc doneChannelzWrapper(acbw *acBalancerWrapper, result *balancer.PickResult) {\n\tac := acbw.ac\n\tac.incrCallsStarted()\n\tdone := result.Done\n\tresult.Done = func(b balancer.DoneInfo) {\n\t\tif b.Err != nil && b.Err != io.EOF {\n\t\t\tac.incrCallsFailed()\n\t\t} else {\n\t\t\tac.incrCallsSucceeded()\n\t\t}\n\t\tif done != nil {\n\t\t\tdone(b)\n\t\t}\n\t}\n}\n\ntype pick struct {\n\ttransport transport.ClientTransport // the selected transport\n\tresult    balancer.PickResult       // the contents of the pick from the LB policy\n\tblocked   bool                      // set if a picker call queued for a new picker\n}\n\n// pick returns the transport that will be used for the RPC.\n// It may block in the following cases:\n// - there's no picker\n// - the current picker returns ErrNoSubConnAvailable\n// - the current picker returns other errors and failfast is false.\n// - the subConn returned by the current picker is not READY\n// When one of these situations happens, pick blocks until the picker gets updated.\nfunc (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer.PickInfo) (pick, error) {\n\tvar ch chan struct{}\n\n\tvar lastPickErr error\n\tpickBlocked := false\n\n\tfor {\n\t\tpg := pw.pickerGen.Load()\n\t\tif pg == nil {\n\t\t\treturn pick{}, ErrClientConnClosing\n\t\t}\n\t\tif pg.picker == nil {\n\t\t\tch = pg.blockingCh\n\t\t}\n\t\tif ch == pg.blockingCh {\n\t\t\t// This could happen when either:\n\t\t\t// - pw.picker is nil (the previous if condition), or\n\t\t\t// - we have already called pick on the current picker.\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\tvar errStr string\n\t\t\t\tif lastPickErr != nil {\n\t\t\t\t\terrStr = \"latest balancer error: \" + lastPickErr.Error()\n\t\t\t\t} else {\n\t\t\t\t\terrStr = fmt.Sprintf(\"%v while waiting for connections to become ready\", ctx.Err())\n\t\t\t\t}\n\t\t\t\tswitch ctx.Err() {\n\t\t\t\tcase context.DeadlineExceeded:\n\t\t\t\t\treturn pick{}, status.Error(codes.DeadlineExceeded, errStr)\n\t\t\t\tcase context.Canceled:\n\t\t\t\t\treturn pick{}, status.Error(codes.Canceled, errStr)\n\t\t\t\t}\n\t\t\tcase <-ch:\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// If the channel is set, it means that the pick call had to wait for a\n\t\t// new picker at some point. Either it's the first iteration and this\n\t\t// function received the first picker, or a picker errored with\n\t\t// ErrNoSubConnAvailable or errored with failfast set to false, which\n\t\t// will trigger a continue to the next iteration. In the first case this\n\t\t// conditional will hit if this call had to block (the channel is set).\n\t\t// In the second case, the only way it will get to this conditional is\n\t\t// if there is a new picker.\n\t\tif ch != nil {\n\t\t\tpickBlocked = true\n\t\t}\n\n\t\tch = pg.blockingCh\n\t\tp := pg.picker\n\n\t\tpickResult, err := p.Pick(info)\n\t\tif err != nil {\n\t\t\tif err == balancer.ErrNoSubConnAvailable {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif st, ok := status.FromError(err); ok {\n\t\t\t\t// Status error: end the RPC unconditionally with this status.\n\t\t\t\t// First restrict the code to the list allowed by gRFC A54.\n\t\t\t\tif istatus.IsRestrictedControlPlaneCode(st) {\n\t\t\t\t\terr = status.Errorf(codes.Internal, \"received picker error with illegal status: %v\", err)\n\t\t\t\t}\n\t\t\t\treturn pick{}, dropError{error: err}\n\t\t\t}\n\t\t\t// For all other errors, wait for ready RPCs should block and other\n\t\t\t// RPCs should fail with unavailable.\n\t\t\tif !failfast {\n\t\t\t\tlastPickErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn pick{}, status.Error(codes.Unavailable, err.Error())\n\t\t}\n\n\t\tacbw, ok := pickResult.SubConn.(*acBalancerWrapper)\n\t\tif !ok {\n\t\t\tlogger.Errorf(\"subconn returned from pick is type %T, not *acBalancerWrapper\", pickResult.SubConn)\n\t\t\tcontinue\n\t\t}\n\t\tif t := acbw.ac.getReadyTransport(); t != nil {\n\t\t\tif channelz.IsOn() {\n\t\t\t\tdoneChannelzWrapper(acbw, &pickResult)\n\t\t\t}\n\t\t\treturn pick{transport: t, result: pickResult, blocked: pickBlocked}, nil\n\t\t}\n\t\tif pickResult.Done != nil {\n\t\t\t// Calling done with nil error, no bytes sent and no bytes received.\n\t\t\t// DoneInfo with default value works.\n\t\t\tpickResult.Done(balancer.DoneInfo{})\n\t\t}\n\t\tlogger.Infof(\"blockingPicker: the picked transport is not ready, loop back to repick\")\n\t\t// If ok == false, ac.state is not READY.\n\t\t// A valid picker always returns READY subConn. This means the state of ac\n\t\t// just changed, and picker will be updated shortly.\n\t\t// continue back to the beginning of the for loop to repick.\n\t}\n}\n\nfunc (pw *pickerWrapper) close() {\n\told := pw.pickerGen.Swap(nil)\n\tclose(old.blockingCh)\n}\n\n// reset clears the pickerWrapper and prepares it for being used again when idle\n// mode is exited.\nfunc (pw *pickerWrapper) reset() {\n\told := pw.pickerGen.Swap(&pickerGeneration{blockingCh: make(chan struct{})})\n\tclose(old.blockingCh)\n}\n\n// dropError is a wrapper error that indicates the LB policy wishes to drop the\n// RPC and not retry it.\ntype dropError struct {\n\terror\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/preloader.go",
    "content": "/*\n *\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/status\"\n)\n\n// PreparedMsg is responsible for creating a Marshalled and Compressed object.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype PreparedMsg struct {\n\t// Struct for preparing msg before sending them\n\tencodedData mem.BufferSlice\n\thdr         []byte\n\tpayload     mem.BufferSlice\n\tpf          payloadFormat\n}\n\n// Encode marshalls and compresses the message using the codec and compressor for the stream.\nfunc (p *PreparedMsg) Encode(s Stream, msg any) error {\n\tctx := s.Context()\n\trpcInfo, ok := rpcInfoFromContext(ctx)\n\tif !ok {\n\t\treturn status.Errorf(codes.Internal, \"grpc: unable to get rpcInfo\")\n\t}\n\n\t// check if the context has the relevant information to prepareMsg\n\tif rpcInfo.preloaderInfo.codec == nil {\n\t\treturn status.Errorf(codes.Internal, \"grpc: rpcInfo.preloaderInfo.codec is nil\")\n\t}\n\n\t// prepare the msg\n\tdata, err := encode(rpcInfo.preloaderInfo.codec, msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmaterializedData := data.Materialize()\n\tdata.Free()\n\tp.encodedData = mem.BufferSlice{mem.SliceBuffer(materializedData)}\n\n\t// TODO: it should be possible to grab the bufferPool from the underlying\n\t//  stream implementation with a type cast to its actual type (such as\n\t//  addrConnStream) and accessing the buffer pool directly.\n\tvar compData mem.BufferSlice\n\tcompData, p.pf, err = compress(p.encodedData, rpcInfo.preloaderInfo.cp, rpcInfo.preloaderInfo.comp, mem.DefaultBufferPool())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif p.pf.isCompressed() {\n\t\tmaterializedCompData := compData.Materialize()\n\t\tcompData.Free()\n\t\tcompData = mem.BufferSlice{mem.SliceBuffer(materializedCompData)}\n\t}\n\n\tp.hdr, p.payload = msgHeader(p.encodedData, compData, p.pf)\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package dns implements a dns resolver to be installed as the default resolver\n// in grpc.\npackage dns\n\nimport (\n\t\"time\"\n\n\t\"google.golang.org/grpc/internal/resolver/dns\"\n\t\"google.golang.org/grpc/resolver\"\n)\n\n// SetResolvingTimeout sets the maximum duration for DNS resolution requests.\n//\n// This function affects the global timeout used by all channels using the DNS\n// name resolver scheme.\n//\n// It must be called only at application startup, before any gRPC calls are\n// made. Modifying this value after initialization is not thread-safe.\n//\n// The default value is 30 seconds. Setting the timeout too low may result in\n// premature timeouts during resolution, while setting it too high may lead to\n// unnecessary delays in service discovery. Choose a value appropriate for your\n// specific needs and network environment.\nfunc SetResolvingTimeout(timeout time.Duration) {\n\tdns.ResolvingTimeout = timeout\n}\n\n// NewBuilder creates a dnsBuilder which is used to factory DNS resolvers.\n//\n// Deprecated: import grpc and use resolver.Get(\"dns\") instead.\nfunc NewBuilder() resolver.Builder {\n\treturn dns.NewBuilder()\n}\n\n// SetMinResolutionInterval sets the default minimum interval at which DNS\n// re-resolutions are allowed. This helps to prevent excessive re-resolution.\n//\n// It must be called only at application startup, before any gRPC calls are\n// made. Modifying this value after initialization is not thread-safe.\nfunc SetMinResolutionInterval(d time.Duration) {\n\tdns.MinResolutionInterval = d\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/resolver/map.go",
    "content": "/*\n *\n * Copyright 2021 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage resolver\n\nimport (\n\t\"encoding/base64\"\n\t\"sort\"\n\t\"strings\"\n)\n\ntype addressMapEntry[T any] struct {\n\taddr  Address\n\tvalue T\n}\n\n// AddressMap is an AddressMapV2[any].  It will be deleted in an upcoming\n// release of grpc-go.\n//\n// Deprecated: use the generic AddressMapV2 type instead.\ntype AddressMap = AddressMapV2[any]\n\n// AddressMapV2 is a map of addresses to arbitrary values taking into account\n// Attributes.  BalancerAttributes are ignored, as are Metadata and Type.\n// Multiple accesses may not be performed concurrently.  Must be created via\n// NewAddressMap; do not construct directly.\ntype AddressMapV2[T any] struct {\n\t// The underlying map is keyed by an Address with fields that we don't care\n\t// about being set to their zero values. The only fields that we care about\n\t// are `Addr`, `ServerName` and `Attributes`. Since we need to be able to\n\t// distinguish between addresses with same `Addr` and `ServerName`, but\n\t// different `Attributes`, we cannot store the `Attributes` in the map key.\n\t//\n\t// The comparison operation for structs work as follows:\n\t//  Struct values are comparable if all their fields are comparable. Two\n\t//  struct values are equal if their corresponding non-blank fields are equal.\n\t//\n\t// The value type of the map contains a slice of addresses which match the key\n\t// in their `Addr` and `ServerName` fields and contain the corresponding value\n\t// associated with them.\n\tm map[Address]addressMapEntryList[T]\n}\n\nfunc toMapKey(addr *Address) Address {\n\treturn Address{Addr: addr.Addr, ServerName: addr.ServerName}\n}\n\ntype addressMapEntryList[T any] []*addressMapEntry[T]\n\n// NewAddressMap creates a new AddressMapV2[any].\n//\n// Deprecated: use the generic NewAddressMapV2 constructor instead.\nfunc NewAddressMap() *AddressMap {\n\treturn NewAddressMapV2[any]()\n}\n\n// NewAddressMapV2 creates a new AddressMapV2.\nfunc NewAddressMapV2[T any]() *AddressMapV2[T] {\n\treturn &AddressMapV2[T]{m: make(map[Address]addressMapEntryList[T])}\n}\n\n// find returns the index of addr in the addressMapEntry slice, or -1 if not\n// present.\nfunc (l addressMapEntryList[T]) find(addr Address) int {\n\tfor i, entry := range l {\n\t\t// Attributes are the only thing to match on here, since `Addr` and\n\t\t// `ServerName` are already equal.\n\t\tif entry.addr.Attributes.Equal(addr.Attributes) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// Get returns the value for the address in the map, if present.\nfunc (a *AddressMapV2[T]) Get(addr Address) (value T, ok bool) {\n\taddrKey := toMapKey(&addr)\n\tentryList := a.m[addrKey]\n\tif entry := entryList.find(addr); entry != -1 {\n\t\treturn entryList[entry].value, true\n\t}\n\treturn value, false\n}\n\n// Set updates or adds the value to the address in the map.\nfunc (a *AddressMapV2[T]) Set(addr Address, value T) {\n\taddrKey := toMapKey(&addr)\n\tentryList := a.m[addrKey]\n\tif entry := entryList.find(addr); entry != -1 {\n\t\tentryList[entry].value = value\n\t\treturn\n\t}\n\ta.m[addrKey] = append(entryList, &addressMapEntry[T]{addr: addr, value: value})\n}\n\n// Delete removes addr from the map.\nfunc (a *AddressMapV2[T]) Delete(addr Address) {\n\taddrKey := toMapKey(&addr)\n\tentryList := a.m[addrKey]\n\tentry := entryList.find(addr)\n\tif entry == -1 {\n\t\treturn\n\t}\n\tif len(entryList) == 1 {\n\t\tentryList = nil\n\t} else {\n\t\tcopy(entryList[entry:], entryList[entry+1:])\n\t\tentryList = entryList[:len(entryList)-1]\n\t}\n\ta.m[addrKey] = entryList\n}\n\n// Len returns the number of entries in the map.\nfunc (a *AddressMapV2[T]) Len() int {\n\tret := 0\n\tfor _, entryList := range a.m {\n\t\tret += len(entryList)\n\t}\n\treturn ret\n}\n\n// Keys returns a slice of all current map keys.\nfunc (a *AddressMapV2[T]) Keys() []Address {\n\tret := make([]Address, 0, a.Len())\n\tfor _, entryList := range a.m {\n\t\tfor _, entry := range entryList {\n\t\t\tret = append(ret, entry.addr)\n\t\t}\n\t}\n\treturn ret\n}\n\n// Values returns a slice of all current map values.\nfunc (a *AddressMapV2[T]) Values() []T {\n\tret := make([]T, 0, a.Len())\n\tfor _, entryList := range a.m {\n\t\tfor _, entry := range entryList {\n\t\t\tret = append(ret, entry.value)\n\t\t}\n\t}\n\treturn ret\n}\n\ntype endpointMapKey string\n\n// EndpointMap is a map of endpoints to arbitrary values keyed on only the\n// unordered set of address strings within an endpoint. This map is not thread\n// safe, thus it is unsafe to access concurrently. Must be created via\n// NewEndpointMap; do not construct directly.\ntype EndpointMap[T any] struct {\n\tendpoints map[endpointMapKey]endpointData[T]\n}\n\ntype endpointData[T any] struct {\n\t// decodedKey stores the original key to avoid decoding when iterating on\n\t// EndpointMap keys.\n\tdecodedKey Endpoint\n\tvalue      T\n}\n\n// NewEndpointMap creates a new EndpointMap.\nfunc NewEndpointMap[T any]() *EndpointMap[T] {\n\treturn &EndpointMap[T]{\n\t\tendpoints: make(map[endpointMapKey]endpointData[T]),\n\t}\n}\n\n// encodeEndpoint returns a string that uniquely identifies the unordered set of\n// addresses within an endpoint.\nfunc encodeEndpoint(e Endpoint) endpointMapKey {\n\taddrs := make([]string, 0, len(e.Addresses))\n\t// base64 encoding the address strings restricts the characters present\n\t// within the strings. This allows us to use a delimiter without the need of\n\t// escape characters.\n\tfor _, addr := range e.Addresses {\n\t\taddrs = append(addrs, base64.StdEncoding.EncodeToString([]byte(addr.Addr)))\n\t}\n\tsort.Strings(addrs)\n\t// \" \" should not appear in base64 encoded strings.\n\treturn endpointMapKey(strings.Join(addrs, \" \"))\n}\n\n// Get returns the value for the address in the map, if present.\nfunc (em *EndpointMap[T]) Get(e Endpoint) (value T, ok bool) {\n\tval, found := em.endpoints[encodeEndpoint(e)]\n\tif found {\n\t\treturn val.value, true\n\t}\n\treturn value, false\n}\n\n// Set updates or adds the value to the address in the map.\nfunc (em *EndpointMap[T]) Set(e Endpoint, value T) {\n\ten := encodeEndpoint(e)\n\tem.endpoints[en] = endpointData[T]{\n\t\tdecodedKey: Endpoint{Addresses: e.Addresses},\n\t\tvalue:      value,\n\t}\n}\n\n// Len returns the number of entries in the map.\nfunc (em *EndpointMap[T]) Len() int {\n\treturn len(em.endpoints)\n}\n\n// Keys returns a slice of all current map keys, as endpoints specifying the\n// addresses present in the endpoint keys, in which uniqueness is determined by\n// the unordered set of addresses. Thus, endpoint information returned is not\n// the full endpoint data (drops duplicated addresses and attributes) but can be\n// used for EndpointMap accesses.\nfunc (em *EndpointMap[T]) Keys() []Endpoint {\n\tret := make([]Endpoint, 0, len(em.endpoints))\n\tfor _, en := range em.endpoints {\n\t\tret = append(ret, en.decodedKey)\n\t}\n\treturn ret\n}\n\n// Values returns a slice of all current map values.\nfunc (em *EndpointMap[T]) Values() []T {\n\tret := make([]T, 0, len(em.endpoints))\n\tfor _, val := range em.endpoints {\n\t\tret = append(ret, val.value)\n\t}\n\treturn ret\n}\n\n// Delete removes the specified endpoint from the map.\nfunc (em *EndpointMap[T]) Delete(e Endpoint) {\n\ten := encodeEndpoint(e)\n\tdelete(em.endpoints, en)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/resolver/resolver.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package resolver defines APIs for name resolution in gRPC.\n// All APIs in this package are experimental.\npackage resolver\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"google.golang.org/grpc/attributes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nvar (\n\t// m is a map from scheme to resolver builder.\n\tm = make(map[string]Builder)\n\t// defaultScheme is the default scheme to use.\n\tdefaultScheme = \"passthrough\"\n)\n\n// TODO(bar) install dns resolver in init(){}.\n\n// Register registers the resolver builder to the resolver map. b.Scheme will\n// be used as the scheme registered with this builder. The registry is case\n// sensitive, and schemes should not contain any uppercase characters.\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. If multiple Resolvers are\n// registered with the same name, the one registered last will take effect.\nfunc Register(b Builder) {\n\tm[b.Scheme()] = b\n}\n\n// Get returns the resolver builder registered with the given scheme.\n//\n// If no builder is register with the scheme, nil will be returned.\nfunc Get(scheme string) Builder {\n\tif b, ok := m[scheme]; ok {\n\t\treturn b\n\t}\n\treturn nil\n}\n\n// SetDefaultScheme sets the default scheme that will be used. The default\n// scheme is initially set to \"passthrough\".\n//\n// NOTE: this function must only be called during initialization time (i.e. in\n// an init() function), and is not thread-safe. The scheme set last overrides\n// previously set values.\nfunc SetDefaultScheme(scheme string) {\n\tdefaultScheme = scheme\n\tinternal.UserSetDefaultScheme = true\n}\n\n// GetDefaultScheme gets the default scheme that will be used by grpc.Dial.  If\n// SetDefaultScheme is never called, the default scheme used by grpc.NewClient is \"dns\" instead.\nfunc GetDefaultScheme() string {\n\treturn defaultScheme\n}\n\n// Address represents a server the client connects to.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype Address struct {\n\t// Addr is the server address on which a connection will be established.\n\tAddr string\n\n\t// ServerName is the name of this address.\n\t// If non-empty, the ServerName is used as the transport certification authority for\n\t// the address, instead of the hostname from the Dial target string. In most cases,\n\t// this should not be set.\n\t//\n\t// WARNING: ServerName must only be populated with trusted values. It\n\t// is insecure to populate it with data from untrusted inputs since untrusted\n\t// values could be used to bypass the authority checks performed by TLS.\n\tServerName string\n\n\t// Attributes contains arbitrary data about this address intended for\n\t// consumption by the SubConn.\n\tAttributes *attributes.Attributes\n\n\t// BalancerAttributes contains arbitrary data about this address intended\n\t// for consumption by the LB policy.  These attributes do not affect SubConn\n\t// creation, connection establishment, handshaking, etc.\n\t//\n\t// Deprecated: when an Address is inside an Endpoint, this field should not\n\t// be used, and it will eventually be removed entirely.\n\tBalancerAttributes *attributes.Attributes\n\n\t// Metadata is the information associated with Addr, which may be used\n\t// to make load balancing decision.\n\t//\n\t// Deprecated: use Attributes instead.\n\tMetadata any\n}\n\n// Equal returns whether a and o are identical.  Metadata is compared directly,\n// not with any recursive introspection.\n//\n// This method compares all fields of the address. When used to tell apart\n// addresses during subchannel creation or connection establishment, it might be\n// more appropriate for the caller to implement custom equality logic.\nfunc (a Address) Equal(o Address) bool {\n\treturn a.Addr == o.Addr && a.ServerName == o.ServerName &&\n\t\ta.Attributes.Equal(o.Attributes) &&\n\t\ta.BalancerAttributes.Equal(o.BalancerAttributes) &&\n\t\ta.Metadata == o.Metadata\n}\n\n// String returns JSON formatted string representation of the address.\nfunc (a Address) String() string {\n\tvar sb strings.Builder\n\tsb.WriteString(fmt.Sprintf(\"{Addr: %q, \", a.Addr))\n\tsb.WriteString(fmt.Sprintf(\"ServerName: %q, \", a.ServerName))\n\tif a.Attributes != nil {\n\t\tsb.WriteString(fmt.Sprintf(\"Attributes: %v, \", a.Attributes.String()))\n\t}\n\tif a.BalancerAttributes != nil {\n\t\tsb.WriteString(fmt.Sprintf(\"BalancerAttributes: %v\", a.BalancerAttributes.String()))\n\t}\n\tsb.WriteString(\"}\")\n\treturn sb.String()\n}\n\n// BuildOptions includes additional information for the builder to create\n// the resolver.\ntype BuildOptions struct {\n\t// DisableServiceConfig indicates whether a resolver implementation should\n\t// fetch service config data.\n\tDisableServiceConfig bool\n\t// DialCreds is the transport credentials used by the ClientConn for\n\t// communicating with the target gRPC service (set via\n\t// WithTransportCredentials). In cases where a name resolution service\n\t// requires the same credentials, the resolver may use this field. In most\n\t// cases though, it is not appropriate, and this field may be ignored.\n\tDialCreds credentials.TransportCredentials\n\t// CredsBundle is the credentials bundle used by the ClientConn for\n\t// communicating with the target gRPC service (set via\n\t// WithCredentialsBundle). In cases where a name resolution service\n\t// requires the same credentials, the resolver may use this field. In most\n\t// cases though, it is not appropriate, and this field may be ignored.\n\tCredsBundle credentials.Bundle\n\t// Dialer is the custom dialer used by the ClientConn for dialling the\n\t// target gRPC service (set via WithDialer). In cases where a name\n\t// resolution service requires the same dialer, the resolver may use this\n\t// field. In most cases though, it is not appropriate, and this field may\n\t// be ignored.\n\tDialer func(context.Context, string) (net.Conn, error)\n\t// Authority is the effective authority of the clientconn for which the\n\t// resolver is built.\n\tAuthority string\n\t// MetricsRecorder is the metrics recorder to do recording.\n\tMetricsRecorder stats.MetricsRecorder\n}\n\n// An Endpoint is one network endpoint, or server, which may have multiple\n// addresses with which it can be accessed.\n// TODO(i/8773) : make resolver.Endpoint and resolver.Address immutable\ntype Endpoint struct {\n\t// Addresses contains a list of addresses used to access this endpoint.\n\tAddresses []Address\n\n\t// Attributes contains arbitrary data about this endpoint intended for\n\t// consumption by the LB policy.\n\tAttributes *attributes.Attributes\n}\n\n// State contains the current Resolver state relevant to the ClientConn.\ntype State struct {\n\t// Addresses is the latest set of resolved addresses for the target.\n\t//\n\t// If a resolver sets Addresses but does not set Endpoints, one Endpoint\n\t// will be created for each Address before the State is passed to the LB\n\t// policy.  The BalancerAttributes of each entry in Addresses will be set\n\t// in Endpoints.Attributes, and be cleared in the Endpoint's Address's\n\t// BalancerAttributes.\n\t//\n\t// Soon, Addresses will be deprecated and replaced fully by Endpoints.\n\tAddresses []Address\n\n\t// Endpoints is the latest set of resolved endpoints for the target.\n\t//\n\t// If a resolver produces a State containing Endpoints but not Addresses,\n\t// it must take care to ensure the LB policies it selects will support\n\t// Endpoints.\n\tEndpoints []Endpoint\n\n\t// ServiceConfig contains the result from parsing the latest service\n\t// config.  If it is nil, it indicates no service config is present or the\n\t// resolver does not provide service configs.\n\tServiceConfig *serviceconfig.ParseResult\n\n\t// Attributes contains arbitrary data about the resolver intended for\n\t// consumption by the load balancing policy.\n\tAttributes *attributes.Attributes\n}\n\n// ClientConn contains the callbacks for resolver to notify any updates\n// to the gRPC ClientConn.\n//\n// This interface is to be implemented by gRPC. Users should not need a\n// brand new implementation of this interface. For the situations like\n// testing, the new implementation should embed this interface. This allows\n// gRPC to add new methods to this interface.\ntype ClientConn interface {\n\t// UpdateState updates the state of the ClientConn appropriately.\n\t//\n\t// If an error is returned, the resolver should try to resolve the\n\t// target again. The resolver should use a backoff timer to prevent\n\t// overloading the server with requests. If a resolver is certain that\n\t// reresolving will not change the result, e.g. because it is\n\t// a watch-based resolver, returned errors can be ignored.\n\t//\n\t// If the resolved State is the same as the last reported one, calling\n\t// UpdateState can be omitted.\n\tUpdateState(State) error\n\t// ReportError notifies the ClientConn that the Resolver encountered an\n\t// error. The ClientConn then forwards this error to the load balancing\n\t// policy.\n\tReportError(error)\n\t// NewAddress is called by resolver to notify ClientConn a new list\n\t// of resolved addresses.\n\t// The address list should be the complete list of resolved addresses.\n\t//\n\t// Deprecated: Use UpdateState instead.\n\tNewAddress(addresses []Address)\n\t// ParseServiceConfig parses the provided service config and returns an\n\t// object that provides the parsed config.\n\tParseServiceConfig(serviceConfigJSON string) *serviceconfig.ParseResult\n}\n\n// Target represents a target for gRPC, as specified in:\n// https://github.com/grpc/grpc/blob/master/doc/naming.md.\n// It is parsed from the target string that gets passed into Dial or DialContext\n// by the user. And gRPC passes it to the resolver and the balancer.\n//\n// If the target follows the naming spec, and the parsed scheme is registered\n// with gRPC, we will parse the target string according to the spec. If the\n// target does not contain a scheme or if the parsed scheme is not registered\n// (i.e. no corresponding resolver available to resolve the endpoint), we will\n// apply the default scheme, and will attempt to reparse it.\ntype Target struct {\n\t// URL contains the parsed dial target with an optional default scheme added\n\t// to it if the original dial target contained no scheme or contained an\n\t// unregistered scheme. Any query params specified in the original dial\n\t// target can be accessed from here.\n\tURL url.URL\n}\n\n// Endpoint retrieves endpoint without leading \"/\" from either `URL.Path`\n// or `URL.Opaque`. The latter is used when the former is empty.\nfunc (t Target) Endpoint() string {\n\tendpoint := t.URL.Path\n\tif endpoint == \"\" {\n\t\tendpoint = t.URL.Opaque\n\t}\n\t// For targets of the form \"[scheme]://[authority]/endpoint, the endpoint\n\t// value returned from url.Parse() contains a leading \"/\". Although this is\n\t// in accordance with RFC 3986, we do not want to break existing resolver\n\t// implementations which expect the endpoint without the leading \"/\". So, we\n\t// end up stripping the leading \"/\" here. But this will result in an\n\t// incorrect parsing for something like \"unix:///path/to/socket\". Since we\n\t// own the \"unix\" resolver, we can workaround in the unix resolver by using\n\t// the `URL` field.\n\treturn strings.TrimPrefix(endpoint, \"/\")\n}\n\n// String returns the canonical string representation of Target.\nfunc (t Target) String() string {\n\treturn t.URL.Scheme + \"://\" + t.URL.Host + \"/\" + t.Endpoint()\n}\n\n// Builder creates a resolver that will be used to watch name resolution updates.\ntype Builder interface {\n\t// Build creates a new resolver for the given target.\n\t//\n\t// gRPC dial calls Build synchronously, and fails if the returned error is\n\t// not nil.\n\tBuild(target Target, cc ClientConn, opts BuildOptions) (Resolver, error)\n\t// Scheme returns the scheme supported by this resolver.  Scheme is defined\n\t// at https://github.com/grpc/grpc/blob/master/doc/naming.md.  The returned\n\t// string should not contain uppercase characters, as they will not match\n\t// the parsed target's scheme as defined in RFC 3986.\n\tScheme() string\n}\n\n// ResolveNowOptions includes additional information for ResolveNow.\ntype ResolveNowOptions struct{}\n\n// Resolver watches for the updates on the specified target.\n// Updates include address updates and service config updates.\ntype Resolver interface {\n\t// ResolveNow will be called by gRPC to try to resolve the target name\n\t// again. It's just a hint, resolver can ignore this if it's not necessary.\n\t//\n\t// It could be called multiple times concurrently.\n\tResolveNow(ResolveNowOptions)\n\t// Close closes the resolver.\n\tClose()\n}\n\n// AuthorityOverrider is implemented by Builders that wish to override the\n// default authority for the ClientConn.\n// By default, the authority used is target.Endpoint().\ntype AuthorityOverrider interface {\n\t// OverrideAuthority returns the authority to use for a ClientConn with the\n\t// given target. The implementation must generate it without blocking,\n\t// typically in line, and must keep it unchanged.\n\t//\n\t// The returned string must be a valid \":authority\" header value, i.e. be\n\t// encoded according to\n\t// [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#section-3.2) as\n\t// necessary.\n\tOverrideAuthority(Target) string\n}\n\n// ValidateEndpoints validates endpoints from a petiole policy's perspective.\n// Petiole policies should call this before calling into their children. See\n// [gRPC A61](https://github.com/grpc/proposal/blob/master/A61-IPv4-IPv6-dualstack-backends.md)\n// for details.\nfunc ValidateEndpoints(endpoints []Endpoint) error {\n\tif len(endpoints) == 0 {\n\t\treturn errors.New(\"endpoints list is empty\")\n\t}\n\n\tfor _, endpoint := range endpoints {\n\t\tfor range endpoint.Addresses {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn errors.New(\"endpoints list contains no addresses\")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/resolver_wrapper.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/internal/pretty\"\n\t\"google.golang.org/grpc/internal/resolver/delegatingresolver\"\n\t\"google.golang.org/grpc/resolver\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\n// ccResolverWrapper is a wrapper on top of cc for resolvers.\n// It implements resolver.ClientConn interface.\ntype ccResolverWrapper struct {\n\t// The following fields are initialized when the wrapper is created and are\n\t// read-only afterwards, and therefore can be accessed without a mutex.\n\tcc                  *ClientConn\n\tignoreServiceConfig bool\n\tserializer          *grpcsync.CallbackSerializer\n\tserializerCancel    context.CancelFunc\n\n\tresolver resolver.Resolver // only accessed within the serializer\n\n\t// The following fields are protected by mu.  Caller must take cc.mu before\n\t// taking mu.\n\tmu       sync.Mutex\n\tcurState resolver.State\n\tclosed   bool\n}\n\n// newCCResolverWrapper initializes the ccResolverWrapper.  It can only be used\n// after calling start, which builds the resolver.\nfunc newCCResolverWrapper(cc *ClientConn) *ccResolverWrapper {\n\tctx, cancel := context.WithCancel(cc.ctx)\n\treturn &ccResolverWrapper{\n\t\tcc:                  cc,\n\t\tignoreServiceConfig: cc.dopts.disableServiceConfig,\n\t\tserializer:          grpcsync.NewCallbackSerializer(ctx),\n\t\tserializerCancel:    cancel,\n\t}\n}\n\n// start builds the name resolver using the resolver.Builder in cc and returns\n// any error encountered.  It must always be the first operation performed on\n// any newly created ccResolverWrapper, except that close may be called instead.\nfunc (ccr *ccResolverWrapper) start() error {\n\terrCh := make(chan error)\n\tccr.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil {\n\t\t\terrCh <- ctx.Err()\n\t\t\treturn\n\t\t}\n\t\topts := resolver.BuildOptions{\n\t\t\tDisableServiceConfig: ccr.cc.dopts.disableServiceConfig,\n\t\t\tDialCreds:            ccr.cc.dopts.copts.TransportCredentials,\n\t\t\tCredsBundle:          ccr.cc.dopts.copts.CredsBundle,\n\t\t\tDialer:               ccr.cc.dopts.copts.Dialer,\n\t\t\tAuthority:            ccr.cc.authority,\n\t\t\tMetricsRecorder:      ccr.cc.metricsRecorderList,\n\t\t}\n\t\tvar err error\n\t\t// The delegating resolver is used unless:\n\t\t//   - A custom dialer is provided via WithContextDialer dialoption or\n\t\t//   - Proxy usage is disabled through WithNoProxy dialoption.\n\t\t// In these cases, the resolver is built based on the scheme of target,\n\t\t// using the appropriate resolver builder.\n\t\tif ccr.cc.dopts.copts.Dialer != nil || !ccr.cc.dopts.useProxy {\n\t\t\tccr.resolver, err = ccr.cc.resolverBuilder.Build(ccr.cc.parsedTarget, ccr, opts)\n\t\t} else {\n\t\t\tccr.resolver, err = delegatingresolver.New(ccr.cc.parsedTarget, ccr, opts, ccr.cc.resolverBuilder, ccr.cc.dopts.enableLocalDNSResolution)\n\t\t}\n\t\terrCh <- err\n\t})\n\treturn <-errCh\n}\n\nfunc (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) {\n\tccr.serializer.TrySchedule(func(ctx context.Context) {\n\t\tif ctx.Err() != nil || ccr.resolver == nil {\n\t\t\treturn\n\t\t}\n\t\tccr.resolver.ResolveNow(o)\n\t})\n}\n\n// close initiates async shutdown of the wrapper.  To determine the wrapper has\n// finished shutting down, the channel should block on ccr.serializer.Done()\n// without cc.mu held.\nfunc (ccr *ccResolverWrapper) close() {\n\tchannelz.Info(logger, ccr.cc.channelz, \"Closing the name resolver\")\n\tccr.mu.Lock()\n\tccr.closed = true\n\tccr.mu.Unlock()\n\n\tccr.serializer.TrySchedule(func(context.Context) {\n\t\tif ccr.resolver == nil {\n\t\t\treturn\n\t\t}\n\t\tccr.resolver.Close()\n\t\tccr.resolver = nil\n\t})\n\tccr.serializerCancel()\n}\n\n// UpdateState is called by resolver implementations to report new state to gRPC\n// which includes addresses and service config.\nfunc (ccr *ccResolverWrapper) UpdateState(s resolver.State) error {\n\tccr.cc.mu.Lock()\n\tccr.mu.Lock()\n\tif ccr.closed {\n\t\tccr.mu.Unlock()\n\t\tccr.cc.mu.Unlock()\n\t\treturn nil\n\t}\n\tif s.Endpoints == nil {\n\t\ts.Endpoints = addressesToEndpoints(s.Addresses)\n\t}\n\tccr.addChannelzTraceEvent(s)\n\tccr.curState = s\n\tccr.mu.Unlock()\n\treturn ccr.cc.updateResolverStateAndUnlock(s, nil)\n}\n\n// ReportError is called by resolver implementations to report errors\n// encountered during name resolution to gRPC.\nfunc (ccr *ccResolverWrapper) ReportError(err error) {\n\tccr.cc.mu.Lock()\n\tccr.mu.Lock()\n\tif ccr.closed {\n\t\tccr.mu.Unlock()\n\t\tccr.cc.mu.Unlock()\n\t\treturn\n\t}\n\tccr.mu.Unlock()\n\tchannelz.Warningf(logger, ccr.cc.channelz, \"ccResolverWrapper: reporting error to cc: %v\", err)\n\tccr.cc.updateResolverStateAndUnlock(resolver.State{}, err)\n}\n\n// NewAddress is called by the resolver implementation to send addresses to\n// gRPC.\nfunc (ccr *ccResolverWrapper) NewAddress(addrs []resolver.Address) {\n\tccr.cc.mu.Lock()\n\tccr.mu.Lock()\n\tif ccr.closed {\n\t\tccr.mu.Unlock()\n\t\tccr.cc.mu.Unlock()\n\t\treturn\n\t}\n\ts := resolver.State{\n\t\tAddresses:     addrs,\n\t\tServiceConfig: ccr.curState.ServiceConfig,\n\t\tEndpoints:     addressesToEndpoints(addrs),\n\t}\n\tccr.addChannelzTraceEvent(s)\n\tccr.curState = s\n\tccr.mu.Unlock()\n\tccr.cc.updateResolverStateAndUnlock(s, nil)\n}\n\n// ParseServiceConfig is called by resolver implementations to parse a JSON\n// representation of the service config.\nfunc (ccr *ccResolverWrapper) ParseServiceConfig(scJSON string) *serviceconfig.ParseResult {\n\treturn parseServiceConfig(scJSON, ccr.cc.dopts.maxCallAttempts)\n}\n\n// addChannelzTraceEvent adds a channelz trace event containing the new\n// state received from resolver implementations.\nfunc (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) {\n\tif !logger.V(0) && !channelz.IsOn() {\n\t\treturn\n\t}\n\tvar updates []string\n\tvar oldSC, newSC *ServiceConfig\n\tvar oldOK, newOK bool\n\tif ccr.curState.ServiceConfig != nil {\n\t\toldSC, oldOK = ccr.curState.ServiceConfig.Config.(*ServiceConfig)\n\t}\n\tif s.ServiceConfig != nil {\n\t\tnewSC, newOK = s.ServiceConfig.Config.(*ServiceConfig)\n\t}\n\tif oldOK != newOK || (oldOK && newOK && oldSC.rawJSONString != newSC.rawJSONString) {\n\t\tupdates = append(updates, \"service config updated\")\n\t}\n\tif len(ccr.curState.Addresses) > 0 && len(s.Addresses) == 0 {\n\t\tupdates = append(updates, \"resolver returned an empty address list\")\n\t} else if len(ccr.curState.Addresses) == 0 && len(s.Addresses) > 0 {\n\t\tupdates = append(updates, \"resolver returned new addresses\")\n\t}\n\tchannelz.Infof(logger, ccr.cc.channelz, \"Resolver state updated: %s (%v)\", pretty.ToJSON(s), strings.Join(updates, \"; \"))\n}\n\nfunc addressesToEndpoints(addrs []resolver.Address) []resolver.Endpoint {\n\tendpoints := make([]resolver.Endpoint, 0, len(addrs))\n\tfor _, a := range addrs {\n\t\tep := resolver.Endpoint{Addresses: []resolver.Address{a}, Attributes: a.BalancerAttributes}\n\t\tep.Addresses[0].BalancerAttributes = nil\n\t\tendpoints = append(endpoints, ep)\n\t}\n\treturn endpoints\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/rpc_util.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"compress/gzip\"\n\t\"context\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/encoding\"\n\t\"google.golang.org/grpc/encoding/proto\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n)\n\nfunc init() {\n\tinternal.AcceptCompressors = acceptCompressors\n}\n\n// Compressor defines the interface gRPC uses to compress a message.\n//\n// Deprecated: use package encoding.\ntype Compressor interface {\n\t// Do compresses p into w.\n\tDo(w io.Writer, p []byte) error\n\t// Type returns the compression algorithm the Compressor uses.\n\tType() string\n}\n\ntype gzipCompressor struct {\n\tpool sync.Pool\n}\n\n// NewGZIPCompressor creates a Compressor based on GZIP.\n//\n// Deprecated: use package encoding/gzip.\nfunc NewGZIPCompressor() Compressor {\n\tc, _ := NewGZIPCompressorWithLevel(gzip.DefaultCompression)\n\treturn c\n}\n\n// NewGZIPCompressorWithLevel is like NewGZIPCompressor but specifies the gzip compression level instead\n// of assuming DefaultCompression.\n//\n// The error returned will be nil if the level is valid.\n//\n// Deprecated: use package encoding/gzip.\nfunc NewGZIPCompressorWithLevel(level int) (Compressor, error) {\n\tif level < gzip.DefaultCompression || level > gzip.BestCompression {\n\t\treturn nil, fmt.Errorf(\"grpc: invalid compression level: %d\", level)\n\t}\n\treturn &gzipCompressor{\n\t\tpool: sync.Pool{\n\t\t\tNew: func() any {\n\t\t\t\tw, err := gzip.NewWriterLevel(io.Discard, level)\n\t\t\t\tif err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t\treturn w\n\t\t\t},\n\t\t},\n\t}, nil\n}\n\nfunc (c *gzipCompressor) Do(w io.Writer, p []byte) error {\n\tz := c.pool.Get().(*gzip.Writer)\n\tdefer c.pool.Put(z)\n\tz.Reset(w)\n\tif _, err := z.Write(p); err != nil {\n\t\treturn err\n\t}\n\treturn z.Close()\n}\n\nfunc (c *gzipCompressor) Type() string {\n\treturn \"gzip\"\n}\n\n// Decompressor defines the interface gRPC uses to decompress a message.\n//\n// Deprecated: use package encoding.\ntype Decompressor interface {\n\t// Do reads the data from r and uncompress them.\n\tDo(r io.Reader) ([]byte, error)\n\t// Type returns the compression algorithm the Decompressor uses.\n\tType() string\n}\n\ntype gzipDecompressor struct {\n\tpool sync.Pool\n}\n\n// NewGZIPDecompressor creates a Decompressor based on GZIP.\n//\n// Deprecated: use package encoding/gzip.\nfunc NewGZIPDecompressor() Decompressor {\n\treturn &gzipDecompressor{}\n}\n\nfunc (d *gzipDecompressor) Do(r io.Reader) ([]byte, error) {\n\tvar z *gzip.Reader\n\tswitch maybeZ := d.pool.Get().(type) {\n\tcase nil:\n\t\tnewZ, err := gzip.NewReader(r)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tz = newZ\n\tcase *gzip.Reader:\n\t\tz = maybeZ\n\t\tif err := z.Reset(r); err != nil {\n\t\t\td.pool.Put(z)\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tdefer func() {\n\t\tz.Close()\n\t\td.pool.Put(z)\n\t}()\n\treturn io.ReadAll(z)\n}\n\nfunc (d *gzipDecompressor) Type() string {\n\treturn \"gzip\"\n}\n\n// callInfo contains all related configuration and information about an RPC.\ntype callInfo struct {\n\tcompressorName              string\n\tfailFast                    bool\n\tmaxReceiveMessageSize       *int\n\tmaxSendMessageSize          *int\n\tcreds                       credentials.PerRPCCredentials\n\tcontentSubtype              string\n\tcodec                       baseCodec\n\tmaxRetryRPCBufferSize       int\n\tonFinish                    []func(err error)\n\tauthority                   string\n\tacceptedResponseCompressors []string\n}\n\nfunc acceptedCompressorAllows(allowed []string, name string) bool {\n\tif allowed == nil {\n\t\treturn true\n\t}\n\tif name == \"\" || name == encoding.Identity {\n\t\treturn true\n\t}\n\tfor _, a := range allowed {\n\t\tif a == name {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc defaultCallInfo() *callInfo {\n\treturn &callInfo{\n\t\tfailFast:              true,\n\t\tmaxRetryRPCBufferSize: 256 * 1024, // 256KB\n\t}\n}\n\nfunc newAcceptedCompressionConfig(names []string) ([]string, error) {\n\tif len(names) == 0 {\n\t\treturn nil, nil\n\t}\n\tvar allowed []string\n\tseen := make(map[string]struct{}, len(names))\n\tfor _, name := range names {\n\t\tname = strings.TrimSpace(name)\n\t\tif name == \"\" || name == encoding.Identity {\n\t\t\tcontinue\n\t\t}\n\t\tif !grpcutil.IsCompressorNameRegistered(name) {\n\t\t\treturn nil, status.Errorf(codes.InvalidArgument, \"grpc: compressor %q is not registered\", name)\n\t\t}\n\t\tif _, dup := seen[name]; dup {\n\t\t\tcontinue\n\t\t}\n\t\tseen[name] = struct{}{}\n\t\tallowed = append(allowed, name)\n\t}\n\treturn allowed, nil\n}\n\n// CallOption configures a Call before it starts or extracts information from\n// a Call after it completes.\ntype CallOption interface {\n\t// before is called before the call is sent to any server.  If before\n\t// returns a non-nil error, the RPC fails with that error.\n\tbefore(*callInfo) error\n\n\t// after is called after the call has completed.  after cannot return an\n\t// error, so any failures should be reported via output parameters.\n\tafter(*callInfo, *csAttempt)\n}\n\n// EmptyCallOption does not alter the Call configuration.\n// It can be embedded in another structure to carry satellite data for use\n// by interceptors.\ntype EmptyCallOption struct{}\n\nfunc (EmptyCallOption) before(*callInfo) error      { return nil }\nfunc (EmptyCallOption) after(*callInfo, *csAttempt) {}\n\n// StaticMethod returns a CallOption which specifies that a call is being made\n// to a method that is static, which means the method is known at compile time\n// and doesn't change at runtime. This can be used as a signal to stats plugins\n// that this method is safe to include as a key to a measurement.\nfunc StaticMethod() CallOption {\n\treturn StaticMethodCallOption{}\n}\n\n// StaticMethodCallOption is a CallOption that specifies that a call comes\n// from a static method.\ntype StaticMethodCallOption struct {\n\tEmptyCallOption\n}\n\n// Header returns a CallOptions that retrieves the header metadata\n// for a unary RPC.\nfunc Header(md *metadata.MD) CallOption {\n\treturn HeaderCallOption{HeaderAddr: md}\n}\n\n// HeaderCallOption is a CallOption for collecting response header metadata.\n// The metadata field will be populated *after* the RPC completes.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype HeaderCallOption struct {\n\tHeaderAddr *metadata.MD\n}\n\nfunc (o HeaderCallOption) before(*callInfo) error { return nil }\nfunc (o HeaderCallOption) after(_ *callInfo, attempt *csAttempt) {\n\t*o.HeaderAddr, _ = attempt.transportStream.Header()\n}\n\n// Trailer returns a CallOptions that retrieves the trailer metadata\n// for a unary RPC.\nfunc Trailer(md *metadata.MD) CallOption {\n\treturn TrailerCallOption{TrailerAddr: md}\n}\n\n// TrailerCallOption is a CallOption for collecting response trailer metadata.\n// The metadata field will be populated *after* the RPC completes.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype TrailerCallOption struct {\n\tTrailerAddr *metadata.MD\n}\n\nfunc (o TrailerCallOption) before(*callInfo) error { return nil }\nfunc (o TrailerCallOption) after(_ *callInfo, attempt *csAttempt) {\n\t*o.TrailerAddr = attempt.transportStream.Trailer()\n}\n\n// Peer returns a CallOption that retrieves peer information for a unary RPC.\n// The peer field will be populated *after* the RPC completes.\nfunc Peer(p *peer.Peer) CallOption {\n\treturn PeerCallOption{PeerAddr: p}\n}\n\n// PeerCallOption is a CallOption for collecting the identity of the remote\n// peer. The peer field will be populated *after* the RPC completes.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype PeerCallOption struct {\n\tPeerAddr *peer.Peer\n}\n\nfunc (o PeerCallOption) before(*callInfo) error { return nil }\nfunc (o PeerCallOption) after(_ *callInfo, attempt *csAttempt) {\n\tif x, ok := peer.FromContext(attempt.transportStream.Context()); ok {\n\t\t*o.PeerAddr = *x\n\t}\n}\n\n// WaitForReady configures the RPC's behavior when the client is in\n// TRANSIENT_FAILURE, which occurs when all addresses fail to connect.  If\n// waitForReady is false, the RPC will fail immediately.  Otherwise, the client\n// will wait until a connection becomes available or the RPC's deadline is\n// reached.\n//\n// By default, RPCs do not \"wait for ready\".\nfunc WaitForReady(waitForReady bool) CallOption {\n\treturn FailFastCallOption{FailFast: !waitForReady}\n}\n\n// FailFast is the opposite of WaitForReady.\n//\n// Deprecated: use WaitForReady.\nfunc FailFast(failFast bool) CallOption {\n\treturn FailFastCallOption{FailFast: failFast}\n}\n\n// FailFastCallOption is a CallOption for indicating whether an RPC should fail\n// fast or not.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype FailFastCallOption struct {\n\tFailFast bool\n}\n\nfunc (o FailFastCallOption) before(c *callInfo) error {\n\tc.failFast = o.FailFast\n\treturn nil\n}\nfunc (o FailFastCallOption) after(*callInfo, *csAttempt) {}\n\n// OnFinish returns a CallOption that configures a callback to be called when\n// the call completes. The error passed to the callback is the status of the\n// RPC, and may be nil. The onFinish callback provided will only be called once\n// by gRPC. This is mainly used to be used by streaming interceptors, to be\n// notified when the RPC completes along with information about the status of\n// the RPC.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc OnFinish(onFinish func(err error)) CallOption {\n\treturn OnFinishCallOption{\n\t\tOnFinish: onFinish,\n\t}\n}\n\n// OnFinishCallOption is CallOption that indicates a callback to be called when\n// the call completes.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype OnFinishCallOption struct {\n\tOnFinish func(error)\n}\n\nfunc (o OnFinishCallOption) before(c *callInfo) error {\n\tc.onFinish = append(c.onFinish, o.OnFinish)\n\treturn nil\n}\n\nfunc (o OnFinishCallOption) after(*callInfo, *csAttempt) {}\n\n// MaxCallRecvMsgSize returns a CallOption which sets the maximum message size\n// in bytes the client can receive. If this is not set, gRPC uses the default\n// 4MB.\nfunc MaxCallRecvMsgSize(bytes int) CallOption {\n\treturn MaxRecvMsgSizeCallOption{MaxRecvMsgSize: bytes}\n}\n\n// MaxRecvMsgSizeCallOption is a CallOption that indicates the maximum message\n// size in bytes the client can receive.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype MaxRecvMsgSizeCallOption struct {\n\tMaxRecvMsgSize int\n}\n\nfunc (o MaxRecvMsgSizeCallOption) before(c *callInfo) error {\n\tc.maxReceiveMessageSize = &o.MaxRecvMsgSize\n\treturn nil\n}\nfunc (o MaxRecvMsgSizeCallOption) after(*callInfo, *csAttempt) {}\n\n// CallAuthority returns a CallOption that sets the HTTP/2 :authority header of\n// an RPC to the specified value. When using CallAuthority, the credentials in\n// use must implement the AuthorityValidator interface.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a later\n// release.\nfunc CallAuthority(authority string) CallOption {\n\treturn AuthorityOverrideCallOption{Authority: authority}\n}\n\n// AuthorityOverrideCallOption is a CallOption that indicates the HTTP/2\n// :authority header value to use for the call.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a later\n// release.\ntype AuthorityOverrideCallOption struct {\n\tAuthority string\n}\n\nfunc (o AuthorityOverrideCallOption) before(c *callInfo) error {\n\tc.authority = o.Authority\n\treturn nil\n}\n\nfunc (o AuthorityOverrideCallOption) after(*callInfo, *csAttempt) {}\n\n// MaxCallSendMsgSize returns a CallOption which sets the maximum message size\n// in bytes the client can send. If this is not set, gRPC uses the default\n// `math.MaxInt32`.\nfunc MaxCallSendMsgSize(bytes int) CallOption {\n\treturn MaxSendMsgSizeCallOption{MaxSendMsgSize: bytes}\n}\n\n// MaxSendMsgSizeCallOption is a CallOption that indicates the maximum message\n// size in bytes the client can send.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype MaxSendMsgSizeCallOption struct {\n\tMaxSendMsgSize int\n}\n\nfunc (o MaxSendMsgSizeCallOption) before(c *callInfo) error {\n\tc.maxSendMessageSize = &o.MaxSendMsgSize\n\treturn nil\n}\nfunc (o MaxSendMsgSizeCallOption) after(*callInfo, *csAttempt) {}\n\n// PerRPCCredentials returns a CallOption that sets credentials.PerRPCCredentials\n// for a call.\nfunc PerRPCCredentials(creds credentials.PerRPCCredentials) CallOption {\n\treturn PerRPCCredsCallOption{Creds: creds}\n}\n\n// PerRPCCredsCallOption is a CallOption that indicates the per-RPC\n// credentials to use for the call.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype PerRPCCredsCallOption struct {\n\tCreds credentials.PerRPCCredentials\n}\n\nfunc (o PerRPCCredsCallOption) before(c *callInfo) error {\n\tc.creds = o.Creds\n\treturn nil\n}\nfunc (o PerRPCCredsCallOption) after(*callInfo, *csAttempt) {}\n\n// UseCompressor returns a CallOption which sets the compressor used when\n// sending the request.  If WithCompressor is also set, UseCompressor has\n// higher priority.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc UseCompressor(name string) CallOption {\n\treturn CompressorCallOption{CompressorType: name}\n}\n\n// CompressorCallOption is a CallOption that indicates the compressor to use.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype CompressorCallOption struct {\n\tCompressorType string\n}\n\nfunc (o CompressorCallOption) before(c *callInfo) error {\n\tc.compressorName = o.CompressorType\n\treturn nil\n}\nfunc (o CompressorCallOption) after(*callInfo, *csAttempt) {}\n\n// acceptCompressors returns a CallOption that limits the compression algorithms\n// advertised in the grpc-accept-encoding header for response messages.\n// Compression algorithms not in the provided list will not be advertised, and\n// responses compressed with non-listed algorithms will be rejected.\nfunc acceptCompressors(names ...string) CallOption {\n\tcp := append([]string(nil), names...)\n\treturn acceptCompressorsCallOption{names: cp}\n}\n\n// acceptCompressorsCallOption is a CallOption that limits response compression.\ntype acceptCompressorsCallOption struct {\n\tnames []string\n}\n\nfunc (o acceptCompressorsCallOption) before(c *callInfo) error {\n\tallowed, err := newAcceptedCompressionConfig(o.names)\n\tif err != nil {\n\t\treturn err\n\t}\n\tc.acceptedResponseCompressors = allowed\n\treturn nil\n}\n\nfunc (acceptCompressorsCallOption) after(*callInfo, *csAttempt) {}\n\n// CallContentSubtype returns a CallOption that will set the content-subtype\n// for a call. For example, if content-subtype is \"json\", the Content-Type over\n// the wire will be \"application/grpc+json\". The content-subtype is converted\n// to lowercase before being included in Content-Type. See Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details.\n//\n// If ForceCodec is not also used, the content-subtype will be used to look up\n// the Codec to use in the registry controlled by RegisterCodec. See the\n// documentation on RegisterCodec for details on registration. The lookup of\n// content-subtype is case-insensitive. If no such Codec is found, the call\n// will result in an error with code codes.Internal.\n//\n// If ForceCodec is also used, that Codec will be used for all request and\n// response messages, with the content-subtype set to the given contentSubtype\n// here for requests.\nfunc CallContentSubtype(contentSubtype string) CallOption {\n\treturn ContentSubtypeCallOption{ContentSubtype: strings.ToLower(contentSubtype)}\n}\n\n// ContentSubtypeCallOption is a CallOption that indicates the content-subtype\n// used for marshaling messages.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype ContentSubtypeCallOption struct {\n\tContentSubtype string\n}\n\nfunc (o ContentSubtypeCallOption) before(c *callInfo) error {\n\tc.contentSubtype = o.ContentSubtype\n\treturn nil\n}\nfunc (o ContentSubtypeCallOption) after(*callInfo, *csAttempt) {}\n\n// ForceCodec returns a CallOption that will set codec to be used for all\n// request and response messages for a call. The result of calling Name() will\n// be used as the content-subtype after converting to lowercase, unless\n// CallContentSubtype is also used.\n//\n// See Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details. Also see the documentation on RegisterCodec and\n// CallContentSubtype for more details on the interaction between Codec and\n// content-subtype.\n//\n// This function is provided for advanced users; prefer to use only\n// CallContentSubtype to select a registered codec instead.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ForceCodec(codec encoding.Codec) CallOption {\n\treturn ForceCodecCallOption{Codec: codec}\n}\n\n// ForceCodecCallOption is a CallOption that indicates the codec used for\n// marshaling messages.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype ForceCodecCallOption struct {\n\tCodec encoding.Codec\n}\n\nfunc (o ForceCodecCallOption) before(c *callInfo) error {\n\tc.codec = newCodecV1Bridge(o.Codec)\n\treturn nil\n}\nfunc (o ForceCodecCallOption) after(*callInfo, *csAttempt) {}\n\n// ForceCodecV2 returns a CallOption that will set codec to be used for all\n// request and response messages for a call. The result of calling Name() will\n// be used as the content-subtype after converting to lowercase, unless\n// CallContentSubtype is also used.\n//\n// See Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details. Also see the documentation on RegisterCodec and\n// CallContentSubtype for more details on the interaction between Codec and\n// content-subtype.\n//\n// This function is provided for advanced users; prefer to use only\n// CallContentSubtype to select a registered codec instead.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ForceCodecV2(codec encoding.CodecV2) CallOption {\n\treturn ForceCodecV2CallOption{CodecV2: codec}\n}\n\n// ForceCodecV2CallOption is a CallOption that indicates the codec used for\n// marshaling messages.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype ForceCodecV2CallOption struct {\n\tCodecV2 encoding.CodecV2\n}\n\nfunc (o ForceCodecV2CallOption) before(c *callInfo) error {\n\tc.codec = o.CodecV2\n\treturn nil\n}\n\nfunc (o ForceCodecV2CallOption) after(*callInfo, *csAttempt) {}\n\n// CallCustomCodec behaves like ForceCodec, but accepts a grpc.Codec instead of\n// an encoding.Codec.\n//\n// Deprecated: use ForceCodec instead.\nfunc CallCustomCodec(codec Codec) CallOption {\n\treturn CustomCodecCallOption{Codec: codec}\n}\n\n// CustomCodecCallOption is a CallOption that indicates the codec used for\n// marshaling messages.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype CustomCodecCallOption struct {\n\tCodec Codec\n}\n\nfunc (o CustomCodecCallOption) before(c *callInfo) error {\n\tc.codec = newCodecV0Bridge(o.Codec)\n\treturn nil\n}\nfunc (o CustomCodecCallOption) after(*callInfo, *csAttempt) {}\n\n// MaxRetryRPCBufferSize returns a CallOption that limits the amount of memory\n// used for buffering this RPC's requests for retry purposes.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc MaxRetryRPCBufferSize(bytes int) CallOption {\n\treturn MaxRetryRPCBufferSizeCallOption{bytes}\n}\n\n// MaxRetryRPCBufferSizeCallOption is a CallOption indicating the amount of\n// memory to be used for caching this RPC for retry purposes.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype MaxRetryRPCBufferSizeCallOption struct {\n\tMaxRetryRPCBufferSize int\n}\n\nfunc (o MaxRetryRPCBufferSizeCallOption) before(c *callInfo) error {\n\tc.maxRetryRPCBufferSize = o.MaxRetryRPCBufferSize\n\treturn nil\n}\nfunc (o MaxRetryRPCBufferSizeCallOption) after(*callInfo, *csAttempt) {}\n\n// The format of the payload: compressed or not?\ntype payloadFormat uint8\n\nconst (\n\tcompressionNone payloadFormat = 0 // no compression\n\tcompressionMade payloadFormat = 1 // compressed\n)\n\nfunc (pf payloadFormat) isCompressed() bool {\n\treturn pf == compressionMade\n}\n\ntype streamReader interface {\n\tReadMessageHeader(header []byte) error\n\tRead(n int) (mem.BufferSlice, error)\n}\n\n// noCopy may be embedded into structs which must not be copied\n// after the first use.\n//\n// See https://golang.org/issues/8005#issuecomment-190753527\n// for details.\ntype noCopy struct {\n}\n\nfunc (*noCopy) Lock()   {}\nfunc (*noCopy) Unlock() {}\n\n// parser reads complete gRPC messages from the underlying reader.\ntype parser struct {\n\t_ noCopy\n\t// r is the underlying reader.\n\t// See the comment on recvMsg for the permissible\n\t// error types.\n\tr streamReader\n\n\t// The header of a gRPC message. Find more detail at\n\t// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md\n\theader [5]byte\n\n\t// bufferPool is the pool of shared receive buffers.\n\tbufferPool mem.BufferPool\n}\n\n// recvMsg reads a complete gRPC message from the stream.\n//\n// It returns the message and its payload (compression/encoding)\n// format. The caller owns the returned msg memory.\n//\n// If there is an error, possible values are:\n//   - io.EOF, when no messages remain\n//   - io.ErrUnexpectedEOF\n//   - of type transport.ConnectionError\n//   - an error from the status package\n//\n// No other error values or types must be returned, which also means\n// that the underlying streamReader must not return an incompatible\n// error.\nfunc (p *parser) recvMsg(maxReceiveMessageSize int) (payloadFormat, mem.BufferSlice, error) {\n\terr := p.r.ReadMessageHeader(p.header[:])\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\n\tpf := payloadFormat(p.header[0])\n\tlength := binary.BigEndian.Uint32(p.header[1:])\n\n\tif int64(length) > int64(maxInt) {\n\t\treturn 0, nil, status.Errorf(codes.ResourceExhausted, \"grpc: received message larger than max length allowed on current machine (%d vs. %d)\", length, maxInt)\n\t}\n\tif int(length) > maxReceiveMessageSize {\n\t\treturn 0, nil, status.Errorf(codes.ResourceExhausted, \"grpc: received message larger than max (%d vs. %d)\", length, maxReceiveMessageSize)\n\t}\n\n\tdata, err := p.r.Read(int(length))\n\tif err != nil {\n\t\tif err == io.EOF {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t}\n\t\treturn 0, nil, err\n\t}\n\treturn pf, data, nil\n}\n\n// encode serializes msg and returns a buffer containing the message, or an\n// error if it is too large to be transmitted by grpc.  If msg is nil, it\n// generates an empty message.\nfunc encode(c baseCodec, msg any) (mem.BufferSlice, error) {\n\tif msg == nil { // NOTE: typed nils will not be caught by this check\n\t\treturn nil, nil\n\t}\n\tb, err := c.Marshal(msg)\n\tif err != nil {\n\t\treturn nil, status.Errorf(codes.Internal, \"grpc: error while marshaling: %v\", err.Error())\n\t}\n\tif bufSize := uint(b.Len()); bufSize > math.MaxUint32 {\n\t\tb.Free()\n\t\treturn nil, status.Errorf(codes.ResourceExhausted, \"grpc: message too large (%d bytes)\", bufSize)\n\t}\n\treturn b, nil\n}\n\n// compress returns the input bytes compressed by compressor or cp.\n// If both compressors are nil, or if the message has zero length, returns nil,\n// indicating no compression was done.\n//\n// TODO(dfawley): eliminate cp parameter by wrapping Compressor in an encoding.Compressor.\nfunc compress(in mem.BufferSlice, cp Compressor, compressor encoding.Compressor, pool mem.BufferPool) (mem.BufferSlice, payloadFormat, error) {\n\tif (compressor == nil && cp == nil) || in.Len() == 0 {\n\t\treturn nil, compressionNone, nil\n\t}\n\tvar out mem.BufferSlice\n\tw := mem.NewWriter(&out, pool)\n\twrapErr := func(err error) error {\n\t\tout.Free()\n\t\treturn status.Errorf(codes.Internal, \"grpc: error while compressing: %v\", err.Error())\n\t}\n\tif compressor != nil {\n\t\tz, err := compressor.Compress(w)\n\t\tif err != nil {\n\t\t\treturn nil, 0, wrapErr(err)\n\t\t}\n\t\tfor _, b := range in {\n\t\t\tif _, err := z.Write(b.ReadOnlyData()); err != nil {\n\t\t\t\treturn nil, 0, wrapErr(err)\n\t\t\t}\n\t\t}\n\t\tif err := z.Close(); err != nil {\n\t\t\treturn nil, 0, wrapErr(err)\n\t\t}\n\t} else {\n\t\t// This is obviously really inefficient since it fully materializes the data, but\n\t\t// there is no way around this with the old Compressor API. At least it attempts\n\t\t// to return the buffer to the provider, in the hopes it can be reused (maybe\n\t\t// even by a subsequent call to this very function).\n\t\tbuf := in.MaterializeToBuffer(pool)\n\t\tdefer buf.Free()\n\t\tif err := cp.Do(w, buf.ReadOnlyData()); err != nil {\n\t\t\treturn nil, 0, wrapErr(err)\n\t\t}\n\t}\n\treturn out, compressionMade, nil\n}\n\nconst (\n\tpayloadLen = 1\n\tsizeLen    = 4\n\theaderLen  = payloadLen + sizeLen\n)\n\n// msgHeader returns a 5-byte header for the message being transmitted and the\n// payload, which is compData if non-nil or data otherwise.\nfunc msgHeader(data, compData mem.BufferSlice, pf payloadFormat) (hdr []byte, payload mem.BufferSlice) {\n\thdr = make([]byte, headerLen)\n\thdr[0] = byte(pf)\n\n\tvar length uint32\n\tif pf.isCompressed() {\n\t\tlength = uint32(compData.Len())\n\t\tpayload = compData\n\t} else {\n\t\tlength = uint32(data.Len())\n\t\tpayload = data\n\t}\n\n\t// Write length of payload into buf\n\tbinary.BigEndian.PutUint32(hdr[payloadLen:], length)\n\treturn hdr, payload\n}\n\nfunc outPayload(client bool, msg any, dataLength, payloadLength int, t time.Time) *stats.OutPayload {\n\treturn &stats.OutPayload{\n\t\tClient:           client,\n\t\tPayload:          msg,\n\t\tLength:           dataLength,\n\t\tWireLength:       payloadLength + headerLen,\n\t\tCompressedLength: payloadLength,\n\t\tSentTime:         t,\n\t}\n}\n\nfunc checkRecvPayload(pf payloadFormat, recvCompress string, haveCompressor bool, isServer bool) *status.Status {\n\tswitch pf {\n\tcase compressionNone:\n\tcase compressionMade:\n\t\tif recvCompress == \"\" || recvCompress == encoding.Identity {\n\t\t\treturn status.New(codes.Internal, \"grpc: compressed flag set with identity or empty encoding\")\n\t\t}\n\t\tif !haveCompressor {\n\t\t\tif isServer {\n\t\t\t\treturn status.Newf(codes.Unimplemented, \"grpc: Decompressor is not installed for grpc-encoding %q\", recvCompress)\n\t\t\t}\n\t\t\treturn status.Newf(codes.Internal, \"grpc: Decompressor is not installed for grpc-encoding %q\", recvCompress)\n\t\t}\n\tdefault:\n\t\treturn status.Newf(codes.Internal, \"grpc: received unexpected payload format %d\", pf)\n\t}\n\treturn nil\n}\n\ntype payloadInfo struct {\n\tcompressedLength  int // The compressed length got from wire.\n\tuncompressedBytes mem.BufferSlice\n}\n\nfunc (p *payloadInfo) free() {\n\tif p != nil && p.uncompressedBytes != nil {\n\t\tp.uncompressedBytes.Free()\n\t}\n}\n\n// recvAndDecompress reads a message from the stream, decompressing it if necessary.\n//\n// Cancelling the returned cancel function releases the buffer back to the pool. So the caller should cancel as soon as\n// the buffer is no longer needed.\n// TODO: Refactor this function to reduce the number of arguments.\n// See: https://google.github.io/styleguide/go/best-practices.html#function-argument-lists\nfunc recvAndDecompress(p *parser, s recvCompressor, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor, isServer bool) (out mem.BufferSlice, err error) {\n\tpf, compressed, err := p.recvMsg(maxReceiveMessageSize)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcompressedLength := compressed.Len()\n\n\tif st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil, isServer); st != nil {\n\t\tcompressed.Free()\n\t\treturn nil, st.Err()\n\t}\n\n\tif pf.isCompressed() {\n\t\tdefer compressed.Free()\n\t\t// To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor,\n\t\t// use this decompressor as the default.\n\t\tout, err = decompress(compressor, compressed, dc, maxReceiveMessageSize, p.bufferPool)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tout = compressed\n\t}\n\n\tif payInfo != nil {\n\t\tpayInfo.compressedLength = compressedLength\n\t\tout.Ref()\n\t\tpayInfo.uncompressedBytes = out\n\t}\n\n\treturn out, nil\n}\n\n// decompress processes the given data by decompressing it using either a custom decompressor or a standard compressor.\n// If a custom decompressor is provided, it takes precedence. The function validates that the decompressed data\n// does not exceed the specified maximum size and returns an error if this limit is exceeded.\n// On success, it returns the decompressed data. Otherwise, it returns an error if decompression fails or the data exceeds the size limit.\nfunc decompress(compressor encoding.Compressor, d mem.BufferSlice, dc Decompressor, maxReceiveMessageSize int, pool mem.BufferPool) (mem.BufferSlice, error) {\n\tif dc != nil {\n\t\tuncompressed, err := dc.Do(d.Reader())\n\t\tif err != nil {\n\t\t\treturn nil, status.Errorf(codes.Internal, \"grpc: failed to decompress the received message: %v\", err)\n\t\t}\n\t\tif len(uncompressed) > maxReceiveMessageSize {\n\t\t\treturn nil, status.Errorf(codes.ResourceExhausted, \"grpc: message after decompression larger than max (%d vs. %d)\", len(uncompressed), maxReceiveMessageSize)\n\t\t}\n\t\treturn mem.BufferSlice{mem.SliceBuffer(uncompressed)}, nil\n\t}\n\tif compressor != nil {\n\t\tdcReader, err := compressor.Decompress(d.Reader())\n\t\tif err != nil {\n\t\t\treturn nil, status.Errorf(codes.Internal, \"grpc: failed to decompress the message: %v\", err)\n\t\t}\n\n\t\t// Read at most one byte more than the limit from the decompressor.\n\t\t// Unless the limit is MaxInt64, in which case, that's impossible, so\n\t\t// apply no limit.\n\t\tif limit := int64(maxReceiveMessageSize); limit < math.MaxInt64 {\n\t\t\tdcReader = io.LimitReader(dcReader, limit+1)\n\t\t}\n\t\tout, err := mem.ReadAll(dcReader, pool)\n\t\tif err != nil {\n\t\t\tout.Free()\n\t\t\treturn nil, status.Errorf(codes.Internal, \"grpc: failed to read decompressed data: %v\", err)\n\t\t}\n\n\t\tif out.Len() > maxReceiveMessageSize {\n\t\t\tout.Free()\n\t\t\treturn nil, status.Errorf(codes.ResourceExhausted, \"grpc: received message after decompression larger than max %d\", maxReceiveMessageSize)\n\t\t}\n\t\treturn out, nil\n\t}\n\treturn nil, status.Errorf(codes.Internal, \"grpc: no decompressor available for compressed payload\")\n}\n\ntype recvCompressor interface {\n\tRecvCompress() string\n}\n\n// For the two compressor parameters, both should not be set, but if they are,\n// dc takes precedence over compressor.\n// TODO(dfawley): wrap the old compressor/decompressor using the new API?\nfunc recv(p *parser, c baseCodec, s recvCompressor, dc Decompressor, m any, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor, isServer bool) error {\n\tdata, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor, isServer)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// If the codec wants its own reference to the data, it can get it. Otherwise, always\n\t// free the buffers.\n\tdefer data.Free()\n\n\tif err := c.Unmarshal(data, m); err != nil {\n\t\treturn status.Errorf(codes.Internal, \"grpc: failed to unmarshal the received message: %v\", err)\n\t}\n\n\treturn nil\n}\n\n// Information about RPC\ntype rpcInfo struct {\n\tfailfast      bool\n\tpreloaderInfo compressorInfo\n}\n\n// Information about Preloader\n// Responsible for storing codec, and compressors\n// If stream (s) has  context s.Context which stores rpcInfo that has non nil\n// pointers to codec, and compressors, then we can use preparedMsg for Async message prep\n// and reuse marshalled bytes\ntype compressorInfo struct {\n\tcodec baseCodec\n\tcp    Compressor\n\tcomp  encoding.Compressor\n}\n\ntype rpcInfoContextKey struct{}\n\nfunc newContextWithRPCInfo(ctx context.Context, failfast bool, codec baseCodec, cp Compressor, comp encoding.Compressor) context.Context {\n\treturn context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{\n\t\tfailfast: failfast,\n\t\tpreloaderInfo: compressorInfo{\n\t\t\tcodec: codec,\n\t\t\tcp:    cp,\n\t\t\tcomp:  comp,\n\t\t},\n\t})\n}\n\nfunc rpcInfoFromContext(ctx context.Context) (s *rpcInfo, ok bool) {\n\ts, ok = ctx.Value(rpcInfoContextKey{}).(*rpcInfo)\n\treturn\n}\n\n// Code returns the error code for err if it was produced by the rpc system.\n// Otherwise, it returns codes.Unknown.\n//\n// Deprecated: use status.Code instead.\nfunc Code(err error) codes.Code {\n\treturn status.Code(err)\n}\n\n// ErrorDesc returns the error description of err if it was produced by the rpc system.\n// Otherwise, it returns err.Error() or empty string when err is nil.\n//\n// Deprecated: use status.Convert and Message method instead.\nfunc ErrorDesc(err error) string {\n\treturn status.Convert(err).Message()\n}\n\n// Errorf returns an error containing an error code and a description;\n// Errorf returns nil if c is OK.\n//\n// Deprecated: use status.Errorf instead.\nfunc Errorf(c codes.Code, format string, a ...any) error {\n\treturn status.Errorf(c, format, a...)\n}\n\nvar errContextCanceled = status.Error(codes.Canceled, context.Canceled.Error())\nvar errContextDeadline = status.Error(codes.DeadlineExceeded, context.DeadlineExceeded.Error())\n\n// toRPCErr converts an error into an error from the status package.\nfunc toRPCErr(err error) error {\n\tswitch err {\n\tcase nil, io.EOF:\n\t\treturn err\n\tcase context.DeadlineExceeded:\n\t\treturn errContextDeadline\n\tcase context.Canceled:\n\t\treturn errContextCanceled\n\tcase io.ErrUnexpectedEOF:\n\t\treturn status.Error(codes.Internal, err.Error())\n\t}\n\n\tswitch e := err.(type) {\n\tcase transport.ConnectionError:\n\t\treturn status.Error(codes.Unavailable, e.Desc)\n\tcase *transport.NewStreamError:\n\t\treturn toRPCErr(e.Err)\n\t}\n\n\tif _, ok := status.FromError(err); ok {\n\t\treturn err\n\t}\n\n\treturn status.Error(codes.Unknown, err.Error())\n}\n\n// setCallInfoCodec should only be called after CallOptions have been applied.\nfunc setCallInfoCodec(c *callInfo) error {\n\tif c.codec != nil {\n\t\t// codec was already set by a CallOption; use it, but set the content\n\t\t// subtype if it is not set.\n\t\tif c.contentSubtype == \"\" {\n\t\t\t// c.codec is a baseCodec to hide the difference between grpc.Codec and\n\t\t\t// encoding.Codec (Name vs. String method name).  We only support\n\t\t\t// setting content subtype from encoding.Codec to avoid a behavior\n\t\t\t// change with the deprecated version.\n\t\t\tif ec, ok := c.codec.(encoding.CodecV2); ok {\n\t\t\t\tc.contentSubtype = strings.ToLower(ec.Name())\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tif c.contentSubtype == \"\" {\n\t\t// No codec specified in CallOptions; use proto by default.\n\t\tc.codec = getCodec(proto.Name)\n\t\treturn nil\n\t}\n\n\t// c.contentSubtype is already lowercased in CallContentSubtype\n\tc.codec = getCodec(c.contentSubtype)\n\tif c.codec == nil {\n\t\treturn status.Errorf(codes.Internal, \"no codec registered for content-subtype %s\", c.contentSubtype)\n\t}\n\treturn nil\n}\n\n// The SupportPackageIsVersion variables are referenced from generated protocol\n// buffer files to ensure compatibility with the gRPC version used.  The latest\n// support package version is 9.\n//\n// Older versions are kept for compatibility.\n//\n// These constants should not be referenced from any other code.\nconst (\n\tSupportPackageIsVersion3 = true\n\tSupportPackageIsVersion4 = true\n\tSupportPackageIsVersion5 = true\n\tSupportPackageIsVersion6 = true\n\tSupportPackageIsVersion7 = true\n\tSupportPackageIsVersion8 = true\n\tSupportPackageIsVersion9 = true\n)\n\nconst grpcUA = \"grpc-go/\" + Version\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/server.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/credentials\"\n\t\"google.golang.org/grpc/encoding\"\n\t\"google.golang.org/grpc/encoding/proto\"\n\testats \"google.golang.org/grpc/experimental/stats\"\n\t\"google.golang.org/grpc/grpclog\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/binarylog\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/envconfig\"\n\t\"google.golang.org/grpc/internal/grpcsync\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\tistats \"google.golang.org/grpc/internal/stats\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/keepalive\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n\t\"google.golang.org/grpc/tap\"\n)\n\nconst (\n\tdefaultServerMaxReceiveMessageSize = 1024 * 1024 * 4\n\tdefaultServerMaxSendMessageSize    = math.MaxInt32\n\n\t// Server transports are tracked in a map which is keyed on listener\n\t// address. For regular gRPC traffic, connections are accepted in Serve()\n\t// through a call to Accept(), and we use the actual listener address as key\n\t// when we add it to the map. But for connections received through\n\t// ServeHTTP(), we do not have a listener and hence use this dummy value.\n\tlistenerAddressForServeHTTP = \"listenerAddressForServeHTTP\"\n)\n\nfunc init() {\n\tinternal.GetServerCredentials = func(srv *Server) credentials.TransportCredentials {\n\t\treturn srv.opts.creds\n\t}\n\tinternal.IsRegisteredMethod = func(srv *Server, method string) bool {\n\t\treturn srv.isRegisteredMethod(method)\n\t}\n\tinternal.ServerFromContext = serverFromContext\n\tinternal.AddGlobalServerOptions = func(opt ...ServerOption) {\n\t\tglobalServerOptions = append(globalServerOptions, opt...)\n\t}\n\tinternal.ClearGlobalServerOptions = func() {\n\t\tglobalServerOptions = nil\n\t}\n\tinternal.BinaryLogger = binaryLogger\n\tinternal.JoinServerOptions = newJoinServerOption\n\tinternal.BufferPool = bufferPool\n\tinternal.MetricsRecorderForServer = func(srv *Server) estats.MetricsRecorder {\n\t\treturn istats.NewMetricsRecorderList(srv.opts.statsHandlers)\n\t}\n}\n\nvar statusOK = status.New(codes.OK, \"\")\nvar logger = grpclog.Component(\"core\")\n\n// MethodHandler is a function type that processes a unary RPC method call.\ntype MethodHandler func(srv any, ctx context.Context, dec func(any) error, interceptor UnaryServerInterceptor) (any, error)\n\n// MethodDesc represents an RPC service's method specification.\ntype MethodDesc struct {\n\tMethodName string\n\tHandler    MethodHandler\n}\n\n// ServiceDesc represents an RPC service's specification.\ntype ServiceDesc struct {\n\tServiceName string\n\t// The pointer to the service interface. Used to check whether the user\n\t// provided implementation satisfies the interface requirements.\n\tHandlerType any\n\tMethods     []MethodDesc\n\tStreams     []StreamDesc\n\tMetadata    any\n}\n\n// serviceInfo wraps information about a service. It is very similar to\n// ServiceDesc and is constructed from it for internal purposes.\ntype serviceInfo struct {\n\t// Contains the implementation for the methods in this service.\n\tserviceImpl any\n\tmethods     map[string]*MethodDesc\n\tstreams     map[string]*StreamDesc\n\tmdata       any\n}\n\n// Server is a gRPC server to serve RPC requests.\ntype Server struct {\n\topts         serverOptions\n\tstatsHandler stats.Handler\n\n\tmu  sync.Mutex // guards following\n\tlis map[net.Listener]bool\n\t// conns contains all active server transports. It is a map keyed on a\n\t// listener address with the value being the set of active transports\n\t// belonging to that listener.\n\tconns    map[string]map[transport.ServerTransport]bool\n\tserve    bool\n\tdrain    bool\n\tcv       *sync.Cond              // signaled when connections close for GracefulStop\n\tservices map[string]*serviceInfo // service name -> service info\n\tevents   traceEventLog\n\n\tquit               *grpcsync.Event\n\tdone               *grpcsync.Event\n\tchannelzRemoveOnce sync.Once\n\tserveWG            sync.WaitGroup // counts active Serve goroutines for Stop/GracefulStop\n\thandlersWG         sync.WaitGroup // counts active method handler goroutines\n\n\tchannelz *channelz.Server\n\n\tserverWorkerChannel      chan func()\n\tserverWorkerChannelClose func()\n\n\tstrictPathCheckingLogEmitted atomic.Bool\n}\n\ntype serverOptions struct {\n\tcreds                 credentials.TransportCredentials\n\tcodec                 baseCodec\n\tcp                    Compressor\n\tdc                    Decompressor\n\tunaryInt              UnaryServerInterceptor\n\tstreamInt             StreamServerInterceptor\n\tchainUnaryInts        []UnaryServerInterceptor\n\tchainStreamInts       []StreamServerInterceptor\n\tbinaryLogger          binarylog.Logger\n\tinTapHandle           tap.ServerInHandle\n\tstatsHandlers         []stats.Handler\n\tmaxConcurrentStreams  uint32\n\tmaxReceiveMessageSize int\n\tmaxSendMessageSize    int\n\tunknownStreamDesc     *StreamDesc\n\tkeepaliveParams       keepalive.ServerParameters\n\tkeepalivePolicy       keepalive.EnforcementPolicy\n\tinitialWindowSize     int32\n\tinitialConnWindowSize int32\n\twriteBufferSize       int\n\treadBufferSize        int\n\tsharedWriteBuffer     bool\n\tconnectionTimeout     time.Duration\n\tmaxHeaderListSize     *uint32\n\theaderTableSize       *uint32\n\tnumServerWorkers      uint32\n\tbufferPool            mem.BufferPool\n\twaitForHandlers       bool\n\tstaticWindowSize      bool\n}\n\nvar defaultServerOptions = serverOptions{\n\tmaxConcurrentStreams:  math.MaxUint32,\n\tmaxReceiveMessageSize: defaultServerMaxReceiveMessageSize,\n\tmaxSendMessageSize:    defaultServerMaxSendMessageSize,\n\tconnectionTimeout:     120 * time.Second,\n\twriteBufferSize:       defaultWriteBufSize,\n\treadBufferSize:        defaultReadBufSize,\n\tbufferPool:            mem.DefaultBufferPool(),\n}\nvar globalServerOptions []ServerOption\n\n// A ServerOption sets options such as credentials, codec and keepalive parameters, etc.\ntype ServerOption interface {\n\tapply(*serverOptions)\n}\n\n// EmptyServerOption does not alter the server configuration. It can be embedded\n// in another structure to build custom server options.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype EmptyServerOption struct{}\n\nfunc (EmptyServerOption) apply(*serverOptions) {}\n\n// funcServerOption wraps a function that modifies serverOptions into an\n// implementation of the ServerOption interface.\ntype funcServerOption struct {\n\tf func(*serverOptions)\n}\n\nfunc (fdo *funcServerOption) apply(do *serverOptions) {\n\tfdo.f(do)\n}\n\nfunc newFuncServerOption(f func(*serverOptions)) *funcServerOption {\n\treturn &funcServerOption{\n\t\tf: f,\n\t}\n}\n\n// joinServerOption provides a way to combine arbitrary number of server\n// options into one.\ntype joinServerOption struct {\n\topts []ServerOption\n}\n\nfunc (mdo *joinServerOption) apply(do *serverOptions) {\n\tfor _, opt := range mdo.opts {\n\t\topt.apply(do)\n\t}\n}\n\nfunc newJoinServerOption(opts ...ServerOption) ServerOption {\n\treturn &joinServerOption{opts: opts}\n}\n\n// SharedWriteBuffer allows reusing per-connection transport write buffer.\n// If this option is set to true every connection will release the buffer after\n// flushing the data on the wire.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc SharedWriteBuffer(val bool) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.sharedWriteBuffer = val\n\t})\n}\n\n// WriteBufferSize determines how much data can be batched before doing a write\n// on the wire. The default value for this buffer is 32KB. Zero or negative\n// values will disable the write buffer such that each write will be on underlying\n// connection. Note: A Send call may not directly translate to a write.\nfunc WriteBufferSize(s int) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.writeBufferSize = s\n\t})\n}\n\n// ReadBufferSize lets you set the size of read buffer, this determines how much\n// data can be read at most for one read syscall. The default value for this\n// buffer is 32KB. Zero or negative values will disable read buffer for a\n// connection so data framer can access the underlying conn directly.\nfunc ReadBufferSize(s int) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.readBufferSize = s\n\t})\n}\n\n// InitialWindowSize returns a ServerOption that sets window size for stream.\n// The lower bound for window size is 64K and any value smaller than that will be ignored.\nfunc InitialWindowSize(s int32) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.initialWindowSize = s\n\t\to.staticWindowSize = true\n\t})\n}\n\n// InitialConnWindowSize returns a ServerOption that sets window size for a connection.\n// The lower bound for window size is 64K and any value smaller than that will be ignored.\nfunc InitialConnWindowSize(s int32) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.initialConnWindowSize = s\n\t\to.staticWindowSize = true\n\t})\n}\n\n// StaticStreamWindowSize returns a ServerOption to set the initial stream\n// window size to the value provided and disables dynamic flow control.\n// The lower bound for window size is 64K and any value smaller than that\n// will be ignored.\nfunc StaticStreamWindowSize(s int32) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.initialWindowSize = s\n\t\to.staticWindowSize = true\n\t})\n}\n\n// StaticConnWindowSize returns a ServerOption to set the initial connection\n// window size to the value provided and disables dynamic flow control.\n// The lower bound for window size is 64K and any value smaller than that\n// will be ignored.\nfunc StaticConnWindowSize(s int32) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.initialConnWindowSize = s\n\t\to.staticWindowSize = true\n\t})\n}\n\n// KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server.\nfunc KeepaliveParams(kp keepalive.ServerParameters) ServerOption {\n\tif kp.Time > 0 && kp.Time < internal.KeepaliveMinServerPingTime {\n\t\tlogger.Warning(\"Adjusting keepalive ping interval to minimum period of 1s\")\n\t\tkp.Time = internal.KeepaliveMinServerPingTime\n\t}\n\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.keepaliveParams = kp\n\t})\n}\n\n// KeepaliveEnforcementPolicy returns a ServerOption that sets keepalive enforcement policy for the server.\nfunc KeepaliveEnforcementPolicy(kep keepalive.EnforcementPolicy) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.keepalivePolicy = kep\n\t})\n}\n\n// CustomCodec returns a ServerOption that sets a codec for message marshaling and unmarshaling.\n//\n// This will override any lookups by content-subtype for Codecs registered with RegisterCodec.\n//\n// Deprecated: register codecs using encoding.RegisterCodec. The server will\n// automatically use registered codecs based on the incoming requests' headers.\n// See also\n// https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec.\n// Will be supported throughout 1.x.\nfunc CustomCodec(codec Codec) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.codec = newCodecV0Bridge(codec)\n\t})\n}\n\n// ForceServerCodec returns a ServerOption that sets a codec for message\n// marshaling and unmarshaling.\n//\n// This will override any lookups by content-subtype for Codecs registered\n// with RegisterCodec.\n//\n// See Content-Type on\n// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for\n// more details. Also see the documentation on RegisterCodec and\n// CallContentSubtype for more details on the interaction between encoding.Codec\n// and content-subtype.\n//\n// This function is provided for advanced users; prefer to register codecs\n// using encoding.RegisterCodec.\n// The server will automatically use registered codecs based on the incoming\n// requests' headers. See also\n// https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec.\n// Will be supported throughout 1.x.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ForceServerCodec(codec encoding.Codec) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.codec = newCodecV1Bridge(codec)\n\t})\n}\n\n// ForceServerCodecV2 is the equivalent of ForceServerCodec, but for the new\n// CodecV2 interface.\n//\n// Will be supported throughout 1.x.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ForceServerCodecV2(codecV2 encoding.CodecV2) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.codec = codecV2\n\t})\n}\n\n// RPCCompressor returns a ServerOption that sets a compressor for outbound\n// messages.  For backward compatibility, all outbound messages will be sent\n// using this compressor, regardless of incoming message compression.  By\n// default, server messages will be sent using the same compressor with which\n// request messages were sent.\n//\n// Deprecated: use encoding.RegisterCompressor instead. Will be supported\n// throughout 1.x.\nfunc RPCCompressor(cp Compressor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.cp = cp\n\t})\n}\n\n// RPCDecompressor returns a ServerOption that sets a decompressor for inbound\n// messages.  It has higher priority than decompressors registered via\n// encoding.RegisterCompressor.\n//\n// Deprecated: use encoding.RegisterCompressor instead. Will be supported\n// throughout 1.x.\nfunc RPCDecompressor(dc Decompressor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.dc = dc\n\t})\n}\n\n// MaxMsgSize returns a ServerOption to set the max message size in bytes the server can receive.\n// If this is not set, gRPC uses the default limit.\n//\n// Deprecated: use MaxRecvMsgSize instead. Will be supported throughout 1.x.\nfunc MaxMsgSize(m int) ServerOption {\n\treturn MaxRecvMsgSize(m)\n}\n\n// MaxRecvMsgSize returns a ServerOption to set the max message size in bytes the server can receive.\n// If this is not set, gRPC uses the default 4MB.\nfunc MaxRecvMsgSize(m int) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.maxReceiveMessageSize = m\n\t})\n}\n\n// MaxSendMsgSize returns a ServerOption to set the max message size in bytes the server can send.\n// If this is not set, gRPC uses the default `math.MaxInt32`.\nfunc MaxSendMsgSize(m int) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.maxSendMessageSize = m\n\t})\n}\n\n// MaxConcurrentStreams returns a ServerOption that will apply a limit on the number\n// of concurrent streams to each ServerTransport.\nfunc MaxConcurrentStreams(n uint32) ServerOption {\n\tif n == 0 {\n\t\tn = math.MaxUint32\n\t}\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.maxConcurrentStreams = n\n\t})\n}\n\n// Creds returns a ServerOption that sets credentials for server connections.\nfunc Creds(c credentials.TransportCredentials) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.creds = c\n\t})\n}\n\n// UnaryInterceptor returns a ServerOption that sets the UnaryServerInterceptor for the\n// server. Only one unary interceptor can be installed. The construction of multiple\n// interceptors (e.g., chaining) can be implemented at the caller.\nfunc UnaryInterceptor(i UnaryServerInterceptor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\tif o.unaryInt != nil {\n\t\t\tpanic(\"The unary server interceptor was already set and may not be reset.\")\n\t\t}\n\t\to.unaryInt = i\n\t})\n}\n\n// ChainUnaryInterceptor returns a ServerOption that specifies the chained interceptor\n// for unary RPCs. The first interceptor will be the outer most,\n// while the last interceptor will be the inner most wrapper around the real call.\n// All unary interceptors added by this method will be chained.\nfunc ChainUnaryInterceptor(interceptors ...UnaryServerInterceptor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.chainUnaryInts = append(o.chainUnaryInts, interceptors...)\n\t})\n}\n\n// StreamInterceptor returns a ServerOption that sets the StreamServerInterceptor for the\n// server. Only one stream interceptor can be installed.\nfunc StreamInterceptor(i StreamServerInterceptor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\tif o.streamInt != nil {\n\t\t\tpanic(\"The stream server interceptor was already set and may not be reset.\")\n\t\t}\n\t\to.streamInt = i\n\t})\n}\n\n// ChainStreamInterceptor returns a ServerOption that specifies the chained interceptor\n// for streaming RPCs. The first interceptor will be the outer most,\n// while the last interceptor will be the inner most wrapper around the real call.\n// All stream interceptors added by this method will be chained.\nfunc ChainStreamInterceptor(interceptors ...StreamServerInterceptor) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.chainStreamInts = append(o.chainStreamInts, interceptors...)\n\t})\n}\n\n// InTapHandle returns a ServerOption that sets the tap handle for all the server\n// transport to be created. Only one can be installed.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc InTapHandle(h tap.ServerInHandle) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\tif o.inTapHandle != nil {\n\t\t\tpanic(\"The tap handle was already set and may not be reset.\")\n\t\t}\n\t\to.inTapHandle = h\n\t})\n}\n\n// StatsHandler returns a ServerOption that sets the stats handler for the server.\nfunc StatsHandler(h stats.Handler) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\tif h == nil {\n\t\t\tlogger.Error(\"ignoring nil parameter in grpc.StatsHandler ServerOption\")\n\t\t\t// Do not allow a nil stats handler, which would otherwise cause\n\t\t\t// panics.\n\t\t\treturn\n\t\t}\n\t\to.statsHandlers = append(o.statsHandlers, h)\n\t})\n}\n\n// binaryLogger returns a ServerOption that can set the binary logger for the\n// server.\nfunc binaryLogger(bl binarylog.Logger) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.binaryLogger = bl\n\t})\n}\n\n// UnknownServiceHandler returns a ServerOption that allows for adding a custom\n// unknown service handler. The provided method is a bidi-streaming RPC service\n// handler that will be invoked instead of returning the \"unimplemented\" gRPC\n// error whenever a request is received for an unregistered service or method.\n// The handling function and stream interceptor (if set) have full access to\n// the ServerStream, including its Context.\nfunc UnknownServiceHandler(streamHandler StreamHandler) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.unknownStreamDesc = &StreamDesc{\n\t\t\tStreamName: \"unknown_service_handler\",\n\t\t\tHandler:    streamHandler,\n\t\t\t// We need to assume that the users of the streamHandler will want to use both.\n\t\t\tClientStreams: true,\n\t\t\tServerStreams: true,\n\t\t}\n\t})\n}\n\n// ConnectionTimeout returns a ServerOption that sets the timeout for\n// connection establishment (up to and including HTTP/2 handshaking) for all\n// new connections.  If this is not set, the default is 120 seconds.  A zero or\n// negative value will result in an immediate timeout.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ConnectionTimeout(d time.Duration) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.connectionTimeout = d\n\t})\n}\n\n// MaxHeaderListSizeServerOption is a ServerOption that sets the max\n// (uncompressed) size of header list that the server is prepared to accept.\ntype MaxHeaderListSizeServerOption struct {\n\tMaxHeaderListSize uint32\n}\n\nfunc (o MaxHeaderListSizeServerOption) apply(so *serverOptions) {\n\tso.maxHeaderListSize = &o.MaxHeaderListSize\n}\n\n// MaxHeaderListSize returns a ServerOption that sets the max (uncompressed) size\n// of header list that the server is prepared to accept.\nfunc MaxHeaderListSize(s uint32) ServerOption {\n\treturn MaxHeaderListSizeServerOption{\n\t\tMaxHeaderListSize: s,\n\t}\n}\n\n// HeaderTableSize returns a ServerOption that sets the size of dynamic\n// header table for stream.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc HeaderTableSize(s uint32) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.headerTableSize = &s\n\t})\n}\n\n// NumStreamWorkers returns a ServerOption that sets the number of worker\n// goroutines that should be used to process incoming streams. Setting this to\n// zero (default) will disable workers and spawn a new goroutine for each\n// stream.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc NumStreamWorkers(numServerWorkers uint32) ServerOption {\n\t// TODO: If/when this API gets stabilized (i.e. stream workers become the\n\t// only way streams are processed), change the behavior of the zero value to\n\t// a sane default. Preliminary experiments suggest that a value equal to the\n\t// number of CPUs available is most performant; requires thorough testing.\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.numServerWorkers = numServerWorkers\n\t})\n}\n\n// WaitForHandlers cause Stop to wait until all outstanding method handlers have\n// exited before returning.  If false, Stop will return as soon as all\n// connections have closed, but method handlers may still be running. By\n// default, Stop does not wait for method handlers to return.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc WaitForHandlers(w bool) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.waitForHandlers = w\n\t})\n}\n\nfunc bufferPool(bufferPool mem.BufferPool) ServerOption {\n\treturn newFuncServerOption(func(o *serverOptions) {\n\t\to.bufferPool = bufferPool\n\t})\n}\n\n// serverWorkerResetThreshold defines how often the stack must be reset. Every\n// N requests, by spawning a new goroutine in its place, a worker can reset its\n// stack so that large stacks don't live in memory forever. 2^16 should allow\n// each goroutine stack to live for at least a few seconds in a typical\n// workload (assuming a QPS of a few thousand requests/sec).\nconst serverWorkerResetThreshold = 1 << 16\n\n// serverWorker blocks on a *transport.ServerStream channel forever and waits\n// for data to be fed by serveStreams. This allows multiple requests to be\n// processed by the same goroutine, removing the need for expensive stack\n// re-allocations (see the runtime.morestack problem [1]).\n//\n// [1] https://github.com/golang/go/issues/18138\nfunc (s *Server) serverWorker() {\n\tfor completed := 0; completed < serverWorkerResetThreshold; completed++ {\n\t\tf, ok := <-s.serverWorkerChannel\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tf()\n\t}\n\tgo s.serverWorker()\n}\n\n// initServerWorkers creates worker goroutines and a channel to process incoming\n// connections to reduce the time spent overall on runtime.morestack.\nfunc (s *Server) initServerWorkers() {\n\ts.serverWorkerChannel = make(chan func())\n\ts.serverWorkerChannelClose = sync.OnceFunc(func() {\n\t\tclose(s.serverWorkerChannel)\n\t})\n\tfor i := uint32(0); i < s.opts.numServerWorkers; i++ {\n\t\tgo s.serverWorker()\n\t}\n}\n\n// NewServer creates a gRPC server which has no service registered and has not\n// started to accept requests yet.\nfunc NewServer(opt ...ServerOption) *Server {\n\topts := defaultServerOptions\n\tfor _, o := range globalServerOptions {\n\t\to.apply(&opts)\n\t}\n\tfor _, o := range opt {\n\t\to.apply(&opts)\n\t}\n\ts := &Server{\n\t\tlis:          make(map[net.Listener]bool),\n\t\topts:         opts,\n\t\tstatsHandler: istats.NewCombinedHandler(opts.statsHandlers...),\n\t\tconns:        make(map[string]map[transport.ServerTransport]bool),\n\t\tservices:     make(map[string]*serviceInfo),\n\t\tquit:         grpcsync.NewEvent(),\n\t\tdone:         grpcsync.NewEvent(),\n\t\tchannelz:     channelz.RegisterServer(\"\"),\n\t}\n\tchainUnaryServerInterceptors(s)\n\tchainStreamServerInterceptors(s)\n\ts.cv = sync.NewCond(&s.mu)\n\tif EnableTracing {\n\t\t_, file, line, _ := runtime.Caller(1)\n\t\ts.events = newTraceEventLog(\"grpc.Server\", fmt.Sprintf(\"%s:%d\", file, line))\n\t}\n\n\tif s.opts.numServerWorkers > 0 {\n\t\ts.initServerWorkers()\n\t}\n\n\tchannelz.Info(logger, s.channelz, \"Server created\")\n\treturn s\n}\n\n// printf records an event in s's event log, unless s has been stopped.\n// REQUIRES s.mu is held.\nfunc (s *Server) printf(format string, a ...any) {\n\tif s.events != nil {\n\t\ts.events.Printf(format, a...)\n\t}\n}\n\n// errorf records an error in s's event log, unless s has been stopped.\n// REQUIRES s.mu is held.\nfunc (s *Server) errorf(format string, a ...any) {\n\tif s.events != nil {\n\t\ts.events.Errorf(format, a...)\n\t}\n}\n\n// ServiceRegistrar wraps a single method that supports service registration. It\n// enables users to pass concrete types other than grpc.Server to the service\n// registration methods exported by the IDL generated code.\ntype ServiceRegistrar interface {\n\t// RegisterService registers a service and its implementation to the\n\t// concrete type implementing this interface.  It may not be called\n\t// once the server has started serving.\n\t// desc describes the service and its methods and handlers. impl is the\n\t// service implementation which is passed to the method handlers.\n\tRegisterService(desc *ServiceDesc, impl any)\n}\n\n// RegisterService registers a service and its implementation to the gRPC\n// server. It is called from the IDL generated code. This must be called before\n// invoking Serve. If ss is non-nil (for legacy code), its type is checked to\n// ensure it implements sd.HandlerType.\nfunc (s *Server) RegisterService(sd *ServiceDesc, ss any) {\n\tif ss != nil {\n\t\tht := reflect.TypeOf(sd.HandlerType).Elem()\n\t\tst := reflect.TypeOf(ss)\n\t\tif !st.Implements(ht) {\n\t\t\tlogger.Fatalf(\"grpc: Server.RegisterService found the handler of type %v that does not satisfy %v\", st, ht)\n\t\t}\n\t}\n\ts.register(sd, ss)\n}\n\nfunc (s *Server) register(sd *ServiceDesc, ss any) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\ts.printf(\"RegisterService(%q)\", sd.ServiceName)\n\tif s.serve {\n\t\tlogger.Fatalf(\"grpc: Server.RegisterService after Server.Serve for %q\", sd.ServiceName)\n\t}\n\tif _, ok := s.services[sd.ServiceName]; ok {\n\t\tlogger.Fatalf(\"grpc: Server.RegisterService found duplicate service registration for %q\", sd.ServiceName)\n\t}\n\tinfo := &serviceInfo{\n\t\tserviceImpl: ss,\n\t\tmethods:     make(map[string]*MethodDesc),\n\t\tstreams:     make(map[string]*StreamDesc),\n\t\tmdata:       sd.Metadata,\n\t}\n\tfor i := range sd.Methods {\n\t\td := &sd.Methods[i]\n\t\tinfo.methods[d.MethodName] = d\n\t}\n\tfor i := range sd.Streams {\n\t\td := &sd.Streams[i]\n\t\tinfo.streams[d.StreamName] = d\n\t}\n\ts.services[sd.ServiceName] = info\n}\n\n// MethodInfo contains the information of an RPC including its method name and type.\ntype MethodInfo struct {\n\t// Name is the method name only, without the service name or package name.\n\tName string\n\t// IsClientStream indicates whether the RPC is a client streaming RPC.\n\tIsClientStream bool\n\t// IsServerStream indicates whether the RPC is a server streaming RPC.\n\tIsServerStream bool\n}\n\n// ServiceInfo contains unary RPC method info, streaming RPC method info and metadata for a service.\ntype ServiceInfo struct {\n\tMethods []MethodInfo\n\t// Metadata is the metadata specified in ServiceDesc when registering service.\n\tMetadata any\n}\n\n// GetServiceInfo returns a map from service names to ServiceInfo.\n// Service names include the package names, in the form of <package>.<service>.\nfunc (s *Server) GetServiceInfo() map[string]ServiceInfo {\n\tret := make(map[string]ServiceInfo)\n\tfor n, srv := range s.services {\n\t\tmethods := make([]MethodInfo, 0, len(srv.methods)+len(srv.streams))\n\t\tfor m := range srv.methods {\n\t\t\tmethods = append(methods, MethodInfo{\n\t\t\t\tName:           m,\n\t\t\t\tIsClientStream: false,\n\t\t\t\tIsServerStream: false,\n\t\t\t})\n\t\t}\n\t\tfor m, d := range srv.streams {\n\t\t\tmethods = append(methods, MethodInfo{\n\t\t\t\tName:           m,\n\t\t\t\tIsClientStream: d.ClientStreams,\n\t\t\t\tIsServerStream: d.ServerStreams,\n\t\t\t})\n\t\t}\n\n\t\tret[n] = ServiceInfo{\n\t\t\tMethods:  methods,\n\t\t\tMetadata: srv.mdata,\n\t\t}\n\t}\n\treturn ret\n}\n\n// ErrServerStopped indicates that the operation is now illegal because of\n// the server being stopped.\nvar ErrServerStopped = errors.New(\"grpc: the server has been stopped\")\n\ntype listenSocket struct {\n\tnet.Listener\n\tchannelz *channelz.Socket\n}\n\nfunc (l *listenSocket) Close() error {\n\terr := l.Listener.Close()\n\tchannelz.RemoveEntry(l.channelz.ID)\n\tchannelz.Info(logger, l.channelz, \"ListenSocket deleted\")\n\treturn err\n}\n\n// Serve accepts incoming connections on the listener lis, creating a new\n// ServerTransport and service goroutine for each. The service goroutines\n// read gRPC requests and then call the registered handlers to reply to them.\n// Serve returns when lis.Accept fails with fatal errors.  lis will be closed when\n// this method returns.\n// Serve will return a non-nil error unless Stop or GracefulStop is called.\n//\n// Note: All supported releases of Go (as of December 2023) override the OS\n// defaults for TCP keepalive time and interval to 15s. To enable TCP keepalive\n// with OS defaults for keepalive time and interval, callers need to do the\n// following two things:\n//   - pass a net.Listener created by calling the Listen method on a\n//     net.ListenConfig with the `KeepAlive` field set to a negative value. This\n//     will result in the Go standard library not overriding OS defaults for TCP\n//     keepalive interval and time. But this will also result in the Go standard\n//     library not enabling TCP keepalives by default.\n//   - override the Accept method on the passed in net.Listener and set the\n//     SO_KEEPALIVE socket option to enable TCP keepalives, with OS defaults.\nfunc (s *Server) Serve(lis net.Listener) error {\n\ts.mu.Lock()\n\ts.printf(\"serving\")\n\ts.serve = true\n\tif s.lis == nil {\n\t\t// Serve called after Stop or GracefulStop.\n\t\ts.mu.Unlock()\n\t\tlis.Close()\n\t\treturn ErrServerStopped\n\t}\n\n\ts.serveWG.Add(1)\n\tdefer func() {\n\t\ts.serveWG.Done()\n\t\tif s.quit.HasFired() {\n\t\t\t// Stop or GracefulStop called; block until done and return nil.\n\t\t\t<-s.done.Done()\n\t\t}\n\t}()\n\n\tls := &listenSocket{\n\t\tListener: lis,\n\t\tchannelz: channelz.RegisterSocket(&channelz.Socket{\n\t\t\tSocketType:    channelz.SocketTypeListen,\n\t\t\tParent:        s.channelz,\n\t\t\tRefName:       lis.Addr().String(),\n\t\t\tLocalAddr:     lis.Addr(),\n\t\t\tSocketOptions: channelz.GetSocketOption(lis)},\n\t\t),\n\t}\n\ts.lis[ls] = true\n\n\tdefer func() {\n\t\ts.mu.Lock()\n\t\tif s.lis != nil && s.lis[ls] {\n\t\t\tls.Close()\n\t\t\tdelete(s.lis, ls)\n\t\t}\n\t\ts.mu.Unlock()\n\t}()\n\n\ts.mu.Unlock()\n\tchannelz.Info(logger, ls.channelz, \"ListenSocket created\")\n\n\tvar tempDelay time.Duration // how long to sleep on accept failure\n\tfor {\n\t\trawConn, err := lis.Accept()\n\t\tif err != nil {\n\t\t\tif ne, ok := err.(interface {\n\t\t\t\tTemporary() bool\n\t\t\t}); ok && ne.Temporary() {\n\t\t\t\tif tempDelay == 0 {\n\t\t\t\t\ttempDelay = 5 * time.Millisecond\n\t\t\t\t} else {\n\t\t\t\t\ttempDelay *= 2\n\t\t\t\t\ttempDelay = min(tempDelay, 1*time.Second)\n\t\t\t\t}\n\t\t\t\ts.mu.Lock()\n\t\t\t\ts.printf(\"Accept error: %v; retrying in %v\", err, tempDelay)\n\t\t\t\ts.mu.Unlock()\n\t\t\t\ttimer := time.NewTimer(tempDelay)\n\t\t\t\tselect {\n\t\t\t\tcase <-timer.C:\n\t\t\t\tcase <-s.quit.Done():\n\t\t\t\t\ttimer.Stop()\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ts.mu.Lock()\n\t\t\ts.printf(\"done serving; Accept = %v\", err)\n\t\t\ts.mu.Unlock()\n\n\t\t\tif s.quit.HasFired() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t\ttempDelay = 0\n\t\t// Start a new goroutine to deal with rawConn so we don't stall this Accept\n\t\t// loop goroutine.\n\t\t//\n\t\t// Make sure we account for the goroutine so GracefulStop doesn't nil out\n\t\t// s.conns before this conn can be added.\n\t\ts.serveWG.Add(1)\n\t\tgo func() {\n\t\t\ts.handleRawConn(lis.Addr().String(), rawConn)\n\t\t\ts.serveWG.Done()\n\t\t}()\n\t}\n}\n\n// handleRawConn forks a goroutine to handle a just-accepted connection that\n// has not had any I/O performed on it yet.\nfunc (s *Server) handleRawConn(lisAddr string, rawConn net.Conn) {\n\tif s.quit.HasFired() {\n\t\trawConn.Close()\n\t\treturn\n\t}\n\trawConn.SetDeadline(time.Now().Add(s.opts.connectionTimeout))\n\n\t// Finish handshaking (HTTP2)\n\tst := s.newHTTP2Transport(rawConn)\n\trawConn.SetDeadline(time.Time{})\n\tif st == nil {\n\t\treturn\n\t}\n\n\tif cc, ok := rawConn.(interface {\n\t\tPassServerTransport(transport.ServerTransport)\n\t}); ok {\n\t\tcc.PassServerTransport(st)\n\t}\n\n\tif !s.addConn(lisAddr, st) {\n\t\treturn\n\t}\n\tgo func() {\n\t\ts.serveStreams(context.Background(), st, rawConn)\n\t\ts.removeConn(lisAddr, st)\n\t}()\n}\n\n// newHTTP2Transport sets up a http/2 transport (using the\n// gRPC http2 server transport in transport/http2_server.go).\nfunc (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport {\n\tconfig := &transport.ServerConfig{\n\t\tMaxStreams:            s.opts.maxConcurrentStreams,\n\t\tConnectionTimeout:     s.opts.connectionTimeout,\n\t\tCredentials:           s.opts.creds,\n\t\tInTapHandle:           s.opts.inTapHandle,\n\t\tStatsHandler:          s.statsHandler,\n\t\tKeepaliveParams:       s.opts.keepaliveParams,\n\t\tKeepalivePolicy:       s.opts.keepalivePolicy,\n\t\tInitialWindowSize:     s.opts.initialWindowSize,\n\t\tInitialConnWindowSize: s.opts.initialConnWindowSize,\n\t\tWriteBufferSize:       s.opts.writeBufferSize,\n\t\tReadBufferSize:        s.opts.readBufferSize,\n\t\tSharedWriteBuffer:     s.opts.sharedWriteBuffer,\n\t\tChannelzParent:        s.channelz,\n\t\tMaxHeaderListSize:     s.opts.maxHeaderListSize,\n\t\tHeaderTableSize:       s.opts.headerTableSize,\n\t\tBufferPool:            s.opts.bufferPool,\n\t\tStaticWindowSize:      s.opts.staticWindowSize,\n\t}\n\tst, err := transport.NewServerTransport(c, config)\n\tif err != nil {\n\t\ts.mu.Lock()\n\t\ts.errorf(\"NewServerTransport(%q) failed: %v\", c.RemoteAddr(), err)\n\t\ts.mu.Unlock()\n\t\t// ErrConnDispatched means that the connection was dispatched away from\n\t\t// gRPC; those connections should be left open.\n\t\tif err != credentials.ErrConnDispatched {\n\t\t\t// Don't log on ErrConnDispatched and io.EOF to prevent log spam.\n\t\t\tif err != io.EOF {\n\t\t\t\tchannelz.Info(logger, s.channelz, \"grpc: Server.Serve failed to create ServerTransport: \", err)\n\t\t\t}\n\t\t\tc.Close()\n\t\t}\n\t\treturn nil\n\t}\n\n\treturn st\n}\n\nfunc (s *Server) serveStreams(ctx context.Context, st transport.ServerTransport, rawConn net.Conn) {\n\tctx = transport.SetConnection(ctx, rawConn)\n\tctx = peer.NewContext(ctx, st.Peer())\n\tif s.statsHandler != nil {\n\t\tctx = s.statsHandler.TagConn(ctx, &stats.ConnTagInfo{\n\t\t\tRemoteAddr: st.Peer().Addr,\n\t\t\tLocalAddr:  st.Peer().LocalAddr,\n\t\t})\n\t\ts.statsHandler.HandleConn(ctx, &stats.ConnBegin{})\n\t}\n\n\tdefer func() {\n\t\tst.Close(errors.New(\"finished serving streams for the server transport\"))\n\t\tif s.statsHandler != nil {\n\t\t\ts.statsHandler.HandleConn(ctx, &stats.ConnEnd{})\n\t\t}\n\t}()\n\n\tstreamQuota := newHandlerQuota(s.opts.maxConcurrentStreams)\n\tst.HandleStreams(ctx, func(stream *transport.ServerStream) {\n\t\ts.handlersWG.Add(1)\n\t\tstreamQuota.acquire()\n\t\tf := func() {\n\t\t\tdefer streamQuota.release()\n\t\t\tdefer s.handlersWG.Done()\n\t\t\ts.handleStream(st, stream)\n\t\t}\n\n\t\tif s.opts.numServerWorkers > 0 {\n\t\t\tselect {\n\t\t\tcase s.serverWorkerChannel <- f:\n\t\t\t\treturn\n\t\t\tdefault:\n\t\t\t\t// If all stream workers are busy, fallback to the default code path.\n\t\t\t}\n\t\t}\n\t\tgo f()\n\t})\n}\n\nvar _ http.Handler = (*Server)(nil)\n\n// ServeHTTP implements the Go standard library's http.Handler\n// interface by responding to the gRPC request r, by looking up\n// the requested gRPC method in the gRPC server s.\n//\n// The provided HTTP request must have arrived on an HTTP/2\n// connection. When using the Go standard library's server,\n// practically this means that the Request must also have arrived\n// over TLS.\n//\n// To share one port (such as 443 for https) between gRPC and an\n// existing http.Handler, use a root http.Handler such as:\n//\n//\tif r.ProtoMajor == 2 && strings.HasPrefix(\n//\t\tr.Header.Get(\"Content-Type\"), \"application/grpc\") {\n//\t\tgrpcServer.ServeHTTP(w, r)\n//\t} else {\n//\t\tyourMux.ServeHTTP(w, r)\n//\t}\n//\n// Note that ServeHTTP uses Go's HTTP/2 server implementation which is totally\n// separate from grpc-go's HTTP/2 server. Performance and features may vary\n// between the two paths. ServeHTTP does not support some gRPC features\n// available through grpc-go's HTTP/2 server.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tst, err := transport.NewServerHandlerTransport(w, r, s.statsHandler, s.opts.bufferPool)\n\tif err != nil {\n\t\t// Errors returned from transport.NewServerHandlerTransport have\n\t\t// already been written to w.\n\t\treturn\n\t}\n\tif !s.addConn(listenerAddressForServeHTTP, st) {\n\t\treturn\n\t}\n\tdefer s.removeConn(listenerAddressForServeHTTP, st)\n\ts.serveStreams(r.Context(), st, nil)\n}\n\nfunc (s *Server) addConn(addr string, st transport.ServerTransport) bool {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tif s.conns == nil {\n\t\tst.Close(errors.New(\"Server.addConn called when server has already been stopped\"))\n\t\treturn false\n\t}\n\tif s.drain {\n\t\t// Transport added after we drained our existing conns: drain it\n\t\t// immediately.\n\t\tst.Drain(\"\")\n\t}\n\n\tif s.conns[addr] == nil {\n\t\t// Create a map entry if this is the first connection on this listener.\n\t\ts.conns[addr] = make(map[transport.ServerTransport]bool)\n\t}\n\ts.conns[addr][st] = true\n\treturn true\n}\n\nfunc (s *Server) removeConn(addr string, st transport.ServerTransport) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tconns := s.conns[addr]\n\tif conns != nil {\n\t\tdelete(conns, st)\n\t\tif len(conns) == 0 {\n\t\t\t// If the last connection for this address is being removed, also\n\t\t\t// remove the map entry corresponding to the address. This is used\n\t\t\t// in GracefulStop() when waiting for all connections to be closed.\n\t\t\tdelete(s.conns, addr)\n\t\t}\n\t\ts.cv.Broadcast()\n\t}\n}\n\nfunc (s *Server) incrCallsStarted() {\n\ts.channelz.ServerMetrics.CallsStarted.Add(1)\n\ts.channelz.ServerMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano())\n}\n\nfunc (s *Server) incrCallsSucceeded() {\n\ts.channelz.ServerMetrics.CallsSucceeded.Add(1)\n}\n\nfunc (s *Server) incrCallsFailed() {\n\ts.channelz.ServerMetrics.CallsFailed.Add(1)\n}\n\nfunc (s *Server) sendResponse(ctx context.Context, stream *transport.ServerStream, msg any, cp Compressor, opts *transport.WriteOptions, comp encoding.Compressor) error {\n\tdata, err := encode(s.getCodec(stream.ContentSubtype()), msg)\n\tif err != nil {\n\t\tchannelz.Error(logger, s.channelz, \"grpc: server failed to encode response: \", err)\n\t\treturn err\n\t}\n\n\tcompData, pf, err := compress(data, cp, comp, s.opts.bufferPool)\n\tif err != nil {\n\t\tdata.Free()\n\t\tchannelz.Error(logger, s.channelz, \"grpc: server failed to compress response: \", err)\n\t\treturn err\n\t}\n\n\thdr, payload := msgHeader(data, compData, pf)\n\n\tdefer func() {\n\t\tcompData.Free()\n\t\tdata.Free()\n\t\t// payload does not need to be freed here, it is either data or compData, both of\n\t\t// which are already freed.\n\t}()\n\n\tdataLen := data.Len()\n\tpayloadLen := payload.Len()\n\t// TODO(dfawley): should we be checking len(data) instead?\n\tif payloadLen > s.opts.maxSendMessageSize {\n\t\treturn status.Errorf(codes.ResourceExhausted, \"grpc: trying to send message larger than max (%d vs. %d)\", payloadLen, s.opts.maxSendMessageSize)\n\t}\n\terr = stream.Write(hdr, payload, opts)\n\tif err == nil && s.statsHandler != nil {\n\t\ts.statsHandler.HandleRPC(ctx, outPayload(false, msg, dataLen, payloadLen, time.Now()))\n\t}\n\treturn err\n}\n\n// chainUnaryServerInterceptors chains all unary server interceptors into one.\nfunc chainUnaryServerInterceptors(s *Server) {\n\t// Prepend opts.unaryInt to the chaining interceptors if it exists, since unaryInt will\n\t// be executed before any other chained interceptors.\n\tinterceptors := s.opts.chainUnaryInts\n\tif s.opts.unaryInt != nil {\n\t\tinterceptors = append([]UnaryServerInterceptor{s.opts.unaryInt}, s.opts.chainUnaryInts...)\n\t}\n\n\tvar chainedInt UnaryServerInterceptor\n\tif len(interceptors) == 0 {\n\t\tchainedInt = nil\n\t} else if len(interceptors) == 1 {\n\t\tchainedInt = interceptors[0]\n\t} else {\n\t\tchainedInt = chainUnaryInterceptors(interceptors)\n\t}\n\n\ts.opts.unaryInt = chainedInt\n}\n\nfunc chainUnaryInterceptors(interceptors []UnaryServerInterceptor) UnaryServerInterceptor {\n\treturn func(ctx context.Context, req any, info *UnaryServerInfo, handler UnaryHandler) (any, error) {\n\t\treturn interceptors[0](ctx, req, info, getChainUnaryHandler(interceptors, 0, info, handler))\n\t}\n}\n\nfunc getChainUnaryHandler(interceptors []UnaryServerInterceptor, curr int, info *UnaryServerInfo, finalHandler UnaryHandler) UnaryHandler {\n\tif curr == len(interceptors)-1 {\n\t\treturn finalHandler\n\t}\n\treturn func(ctx context.Context, req any) (any, error) {\n\t\treturn interceptors[curr+1](ctx, req, info, getChainUnaryHandler(interceptors, curr+1, info, finalHandler))\n\t}\n}\n\nfunc (s *Server) processUnaryRPC(ctx context.Context, stream *transport.ServerStream, info *serviceInfo, md *MethodDesc, trInfo *traceInfo) (err error) {\n\tsh := s.statsHandler\n\tif sh != nil || trInfo != nil || channelz.IsOn() {\n\t\tif channelz.IsOn() {\n\t\t\ts.incrCallsStarted()\n\t\t}\n\t\tvar statsBegin *stats.Begin\n\t\tif sh != nil {\n\t\t\tstatsBegin = &stats.Begin{\n\t\t\t\tBeginTime:      time.Now(),\n\t\t\t\tIsClientStream: false,\n\t\t\t\tIsServerStream: false,\n\t\t\t}\n\t\t\tsh.HandleRPC(ctx, statsBegin)\n\t\t}\n\t\tif trInfo != nil {\n\t\t\ttrInfo.tr.LazyLog(&trInfo.firstLine, false)\n\t\t}\n\t\t// The deferred error handling for tracing, stats handler and channelz are\n\t\t// combined into one function to reduce stack usage -- a defer takes ~56-64\n\t\t// bytes on the stack, so overflowing the stack will require a stack\n\t\t// re-allocation, which is expensive.\n\t\t//\n\t\t// To maintain behavior similar to separate deferred statements, statements\n\t\t// should be executed in the reverse order. That is, tracing first, stats\n\t\t// handler second, and channelz last. Note that panics *within* defers will\n\t\t// lead to different behavior, but that's an acceptable compromise; that\n\t\t// would be undefined behavior territory anyway.\n\t\tdefer func() {\n\t\t\tif trInfo != nil {\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\ttrInfo.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\t\t\ttrInfo.tr.SetError()\n\t\t\t\t}\n\t\t\t\ttrInfo.tr.Finish()\n\t\t\t}\n\n\t\t\tif sh != nil {\n\t\t\t\tend := &stats.End{\n\t\t\t\t\tBeginTime: statsBegin.BeginTime,\n\t\t\t\t\tEndTime:   time.Now(),\n\t\t\t\t}\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\tend.Error = toRPCErr(err)\n\t\t\t\t}\n\t\t\t\tsh.HandleRPC(ctx, end)\n\t\t\t}\n\n\t\t\tif channelz.IsOn() {\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\ts.incrCallsFailed()\n\t\t\t\t} else {\n\t\t\t\t\ts.incrCallsSucceeded()\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\tvar binlogs []binarylog.MethodLogger\n\tif ml := binarylog.GetMethodLogger(stream.Method()); ml != nil {\n\t\tbinlogs = append(binlogs, ml)\n\t}\n\tif s.opts.binaryLogger != nil {\n\t\tif ml := s.opts.binaryLogger.GetMethodLogger(stream.Method()); ml != nil {\n\t\t\tbinlogs = append(binlogs, ml)\n\t\t}\n\t}\n\tif len(binlogs) != 0 {\n\t\tmd, _ := metadata.FromIncomingContext(ctx)\n\t\tlogEntry := &binarylog.ClientHeader{\n\t\t\tHeader:     md,\n\t\t\tMethodName: stream.Method(),\n\t\t\tPeerAddr:   nil,\n\t\t}\n\t\tif deadline, ok := ctx.Deadline(); ok {\n\t\t\tlogEntry.Timeout = time.Until(deadline)\n\t\t\tif logEntry.Timeout < 0 {\n\t\t\t\tlogEntry.Timeout = 0\n\t\t\t}\n\t\t}\n\t\tif a := md[\":authority\"]; len(a) > 0 {\n\t\t\tlogEntry.Authority = a[0]\n\t\t}\n\t\tif peer, ok := peer.FromContext(ctx); ok {\n\t\t\tlogEntry.PeerAddr = peer.Addr\n\t\t}\n\t\tfor _, binlog := range binlogs {\n\t\t\tbinlog.Log(ctx, logEntry)\n\t\t}\n\t}\n\n\t// comp and cp are used for compression.  decomp and dc are used for\n\t// decompression.  If comp and decomp are both set, they are the same;\n\t// however they are kept separate to ensure that at most one of the\n\t// compressor/decompressor variable pairs are set for use later.\n\tvar comp, decomp encoding.Compressor\n\tvar cp Compressor\n\tvar dc Decompressor\n\tvar sendCompressorName string\n\n\t// If dc is set and matches the stream's compression, use it.  Otherwise, try\n\t// to find a matching registered compressor for decomp.\n\tif rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc {\n\t\tdc = s.opts.dc\n\t} else if rc != \"\" && rc != encoding.Identity {\n\t\tdecomp = encoding.GetCompressor(rc)\n\t\tif decomp == nil {\n\t\t\tst := status.Newf(codes.Unimplemented, \"grpc: Decompressor is not installed for grpc-encoding %q\", rc)\n\t\t\tstream.WriteStatus(st)\n\t\t\treturn st.Err()\n\t\t}\n\t}\n\n\t// If cp is set, use it.  Otherwise, attempt to compress the response using\n\t// the incoming message compression method.\n\t//\n\t// NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686.\n\tif s.opts.cp != nil {\n\t\tcp = s.opts.cp\n\t\tsendCompressorName = cp.Type()\n\t} else if rc := stream.RecvCompress(); rc != \"\" && rc != encoding.Identity {\n\t\t// Legacy compressor not specified; attempt to respond with same encoding.\n\t\tcomp = encoding.GetCompressor(rc)\n\t\tif comp != nil {\n\t\t\tsendCompressorName = comp.Name()\n\t\t}\n\t}\n\n\tif sendCompressorName != \"\" {\n\t\tif err := stream.SetSendCompress(sendCompressorName); err != nil {\n\t\t\treturn status.Errorf(codes.Internal, \"grpc: failed to set send compressor: %v\", err)\n\t\t}\n\t}\n\n\tvar payInfo *payloadInfo\n\tif sh != nil || len(binlogs) != 0 {\n\t\tpayInfo = &payloadInfo{}\n\t\tdefer payInfo.free()\n\t}\n\n\td, err := recvAndDecompress(&parser{r: stream, bufferPool: s.opts.bufferPool}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp, true)\n\tif err != nil {\n\t\tif e := stream.WriteStatus(status.Convert(err)); e != nil {\n\t\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.processUnaryRPC failed to write status: %v\", e)\n\t\t}\n\t\treturn err\n\t}\n\tfreed := false\n\tdataFree := func() {\n\t\tif !freed {\n\t\t\td.Free()\n\t\t\tfreed = true\n\t\t}\n\t}\n\tdefer dataFree()\n\tdf := func(v any) error {\n\t\tdefer dataFree()\n\t\tif err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil {\n\t\t\treturn status.Errorf(codes.Internal, \"grpc: error unmarshalling request: %v\", err)\n\t\t}\n\n\t\tif sh != nil {\n\t\t\tsh.HandleRPC(ctx, &stats.InPayload{\n\t\t\t\tRecvTime:         time.Now(),\n\t\t\t\tPayload:          v,\n\t\t\t\tLength:           d.Len(),\n\t\t\t\tWireLength:       payInfo.compressedLength + headerLen,\n\t\t\t\tCompressedLength: payInfo.compressedLength,\n\t\t\t})\n\t\t}\n\t\tif len(binlogs) != 0 {\n\t\t\tcm := &binarylog.ClientMessage{\n\t\t\t\tMessage: d.Materialize(),\n\t\t\t}\n\t\t\tfor _, binlog := range binlogs {\n\t\t\t\tbinlog.Log(ctx, cm)\n\t\t\t}\n\t\t}\n\t\tif trInfo != nil {\n\t\t\ttrInfo.tr.LazyLog(&payload{sent: false, msg: v}, true)\n\t\t}\n\t\treturn nil\n\t}\n\tctx = NewContextWithServerTransportStream(ctx, stream)\n\treply, appErr := md.Handler(info.serviceImpl, ctx, df, s.opts.unaryInt)\n\tif appErr != nil {\n\t\tappStatus, ok := status.FromError(appErr)\n\t\tif !ok {\n\t\t\t// Convert non-status application error to a status error with code\n\t\t\t// Unknown, but handle context errors specifically.\n\t\t\tappStatus = status.FromContextError(appErr)\n\t\t\tappErr = appStatus.Err()\n\t\t}\n\t\tif trInfo != nil {\n\t\t\ttrInfo.tr.LazyLog(stringer(appStatus.Message()), true)\n\t\t\ttrInfo.tr.SetError()\n\t\t}\n\t\tif e := stream.WriteStatus(appStatus); e != nil {\n\t\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.processUnaryRPC failed to write status: %v\", e)\n\t\t}\n\t\tif len(binlogs) != 0 {\n\t\t\tif h, _ := stream.Header(); h.Len() > 0 {\n\t\t\t\t// Only log serverHeader if there was header. Otherwise it can\n\t\t\t\t// be trailer only.\n\t\t\t\tsh := &binarylog.ServerHeader{\n\t\t\t\t\tHeader: h,\n\t\t\t\t}\n\t\t\t\tfor _, binlog := range binlogs {\n\t\t\t\t\tbinlog.Log(ctx, sh)\n\t\t\t\t}\n\t\t\t}\n\t\t\tst := &binarylog.ServerTrailer{\n\t\t\t\tTrailer: stream.Trailer(),\n\t\t\t\tErr:     appErr,\n\t\t\t}\n\t\t\tfor _, binlog := range binlogs {\n\t\t\t\tbinlog.Log(ctx, st)\n\t\t\t}\n\t\t}\n\t\treturn appErr\n\t}\n\tif trInfo != nil {\n\t\ttrInfo.tr.LazyLog(stringer(\"OK\"), false)\n\t}\n\topts := &transport.WriteOptions{Last: true}\n\n\t// Server handler could have set new compressor by calling SetSendCompressor.\n\t// In case it is set, we need to use it for compressing outbound message.\n\tif stream.SendCompress() != sendCompressorName {\n\t\tcomp = encoding.GetCompressor(stream.SendCompress())\n\t}\n\tif err := s.sendResponse(ctx, stream, reply, cp, opts, comp); err != nil {\n\t\tif err == io.EOF {\n\t\t\t// The entire stream is done (for unary RPC only).\n\t\t\treturn err\n\t\t}\n\t\tif sts, ok := status.FromError(err); ok {\n\t\t\tif e := stream.WriteStatus(sts); e != nil {\n\t\t\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.processUnaryRPC failed to write status: %v\", e)\n\t\t\t}\n\t\t} else {\n\t\t\tswitch st := err.(type) {\n\t\t\tcase transport.ConnectionError:\n\t\t\t\t// Nothing to do here.\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"grpc: Unexpected error (%T) from sendResponse: %v\", st, st))\n\t\t\t}\n\t\t}\n\t\tif len(binlogs) != 0 {\n\t\t\th, _ := stream.Header()\n\t\t\tsh := &binarylog.ServerHeader{\n\t\t\t\tHeader: h,\n\t\t\t}\n\t\t\tst := &binarylog.ServerTrailer{\n\t\t\t\tTrailer: stream.Trailer(),\n\t\t\t\tErr:     appErr,\n\t\t\t}\n\t\t\tfor _, binlog := range binlogs {\n\t\t\t\tbinlog.Log(ctx, sh)\n\t\t\t\tbinlog.Log(ctx, st)\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\tif len(binlogs) != 0 {\n\t\th, _ := stream.Header()\n\t\tsh := &binarylog.ServerHeader{\n\t\t\tHeader: h,\n\t\t}\n\t\tsm := &binarylog.ServerMessage{\n\t\t\tMessage: reply,\n\t\t}\n\t\tfor _, binlog := range binlogs {\n\t\t\tbinlog.Log(ctx, sh)\n\t\t\tbinlog.Log(ctx, sm)\n\t\t}\n\t}\n\tif trInfo != nil {\n\t\ttrInfo.tr.LazyLog(&payload{sent: true, msg: reply}, true)\n\t}\n\t// TODO: Should we be logging if writing status failed here, like above?\n\t// Should the logging be in WriteStatus?  Should we ignore the WriteStatus\n\t// error or allow the stats handler to see it?\n\tif len(binlogs) != 0 {\n\t\tst := &binarylog.ServerTrailer{\n\t\t\tTrailer: stream.Trailer(),\n\t\t\tErr:     appErr,\n\t\t}\n\t\tfor _, binlog := range binlogs {\n\t\t\tbinlog.Log(ctx, st)\n\t\t}\n\t}\n\treturn stream.WriteStatus(statusOK)\n}\n\n// chainStreamServerInterceptors chains all stream server interceptors into one.\nfunc chainStreamServerInterceptors(s *Server) {\n\t// Prepend opts.streamInt to the chaining interceptors if it exists, since streamInt will\n\t// be executed before any other chained interceptors.\n\tinterceptors := s.opts.chainStreamInts\n\tif s.opts.streamInt != nil {\n\t\tinterceptors = append([]StreamServerInterceptor{s.opts.streamInt}, s.opts.chainStreamInts...)\n\t}\n\n\tvar chainedInt StreamServerInterceptor\n\tif len(interceptors) == 0 {\n\t\tchainedInt = nil\n\t} else if len(interceptors) == 1 {\n\t\tchainedInt = interceptors[0]\n\t} else {\n\t\tchainedInt = chainStreamInterceptors(interceptors)\n\t}\n\n\ts.opts.streamInt = chainedInt\n}\n\nfunc chainStreamInterceptors(interceptors []StreamServerInterceptor) StreamServerInterceptor {\n\treturn func(srv any, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error {\n\t\treturn interceptors[0](srv, ss, info, getChainStreamHandler(interceptors, 0, info, handler))\n\t}\n}\n\nfunc getChainStreamHandler(interceptors []StreamServerInterceptor, curr int, info *StreamServerInfo, finalHandler StreamHandler) StreamHandler {\n\tif curr == len(interceptors)-1 {\n\t\treturn finalHandler\n\t}\n\treturn func(srv any, stream ServerStream) error {\n\t\treturn interceptors[curr+1](srv, stream, info, getChainStreamHandler(interceptors, curr+1, info, finalHandler))\n\t}\n}\n\nfunc (s *Server) processStreamingRPC(ctx context.Context, stream *transport.ServerStream, info *serviceInfo, sd *StreamDesc, trInfo *traceInfo) (err error) {\n\tif channelz.IsOn() {\n\t\ts.incrCallsStarted()\n\t}\n\tsh := s.statsHandler\n\tvar statsBegin *stats.Begin\n\tif sh != nil {\n\t\tstatsBegin = &stats.Begin{\n\t\t\tBeginTime:      time.Now(),\n\t\t\tIsClientStream: sd.ClientStreams,\n\t\t\tIsServerStream: sd.ServerStreams,\n\t\t}\n\t\tsh.HandleRPC(ctx, statsBegin)\n\t}\n\tctx = NewContextWithServerTransportStream(ctx, stream)\n\tss := &serverStream{\n\t\tctx:                   ctx,\n\t\ts:                     stream,\n\t\tp:                     parser{r: stream, bufferPool: s.opts.bufferPool},\n\t\tcodec:                 s.getCodec(stream.ContentSubtype()),\n\t\tdesc:                  sd,\n\t\tmaxReceiveMessageSize: s.opts.maxReceiveMessageSize,\n\t\tmaxSendMessageSize:    s.opts.maxSendMessageSize,\n\t\ttrInfo:                trInfo,\n\t\tstatsHandler:          sh,\n\t}\n\n\tif sh != nil || trInfo != nil || channelz.IsOn() {\n\t\t// See comment in processUnaryRPC on defers.\n\t\tdefer func() {\n\t\t\tif trInfo != nil {\n\t\t\t\tss.mu.Lock()\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\tss.trInfo.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\t\t\tss.trInfo.tr.SetError()\n\t\t\t\t}\n\t\t\t\tss.trInfo.tr.Finish()\n\t\t\t\tss.trInfo.tr = nil\n\t\t\t\tss.mu.Unlock()\n\t\t\t}\n\n\t\t\tif sh != nil {\n\t\t\t\tend := &stats.End{\n\t\t\t\t\tBeginTime: statsBegin.BeginTime,\n\t\t\t\t\tEndTime:   time.Now(),\n\t\t\t\t}\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\tend.Error = toRPCErr(err)\n\t\t\t\t}\n\t\t\t\tsh.HandleRPC(ctx, end)\n\t\t\t}\n\n\t\t\tif channelz.IsOn() {\n\t\t\t\tif err != nil && err != io.EOF {\n\t\t\t\t\ts.incrCallsFailed()\n\t\t\t\t} else {\n\t\t\t\t\ts.incrCallsSucceeded()\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\tif ml := binarylog.GetMethodLogger(stream.Method()); ml != nil {\n\t\tss.binlogs = append(ss.binlogs, ml)\n\t}\n\tif s.opts.binaryLogger != nil {\n\t\tif ml := s.opts.binaryLogger.GetMethodLogger(stream.Method()); ml != nil {\n\t\t\tss.binlogs = append(ss.binlogs, ml)\n\t\t}\n\t}\n\tif len(ss.binlogs) != 0 {\n\t\tmd, _ := metadata.FromIncomingContext(ctx)\n\t\tlogEntry := &binarylog.ClientHeader{\n\t\t\tHeader:     md,\n\t\t\tMethodName: stream.Method(),\n\t\t\tPeerAddr:   nil,\n\t\t}\n\t\tif deadline, ok := ctx.Deadline(); ok {\n\t\t\tlogEntry.Timeout = time.Until(deadline)\n\t\t\tif logEntry.Timeout < 0 {\n\t\t\t\tlogEntry.Timeout = 0\n\t\t\t}\n\t\t}\n\t\tif a := md[\":authority\"]; len(a) > 0 {\n\t\t\tlogEntry.Authority = a[0]\n\t\t}\n\t\tif peer, ok := peer.FromContext(ss.Context()); ok {\n\t\t\tlogEntry.PeerAddr = peer.Addr\n\t\t}\n\t\tfor _, binlog := range ss.binlogs {\n\t\t\tbinlog.Log(ctx, logEntry)\n\t\t}\n\t}\n\n\t// If dc is set and matches the stream's compression, use it.  Otherwise, try\n\t// to find a matching registered compressor for decomp.\n\tif rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc {\n\t\tss.decompressorV0 = s.opts.dc\n\t} else if rc != \"\" && rc != encoding.Identity {\n\t\tss.decompressorV1 = encoding.GetCompressor(rc)\n\t\tif ss.decompressorV1 == nil {\n\t\t\tst := status.Newf(codes.Unimplemented, \"grpc: Decompressor is not installed for grpc-encoding %q\", rc)\n\t\t\tss.s.WriteStatus(st)\n\t\t\treturn st.Err()\n\t\t}\n\t}\n\n\t// If cp is set, use it.  Otherwise, attempt to compress the response using\n\t// the incoming message compression method.\n\t//\n\t// NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686.\n\tif s.opts.cp != nil {\n\t\tss.compressorV0 = s.opts.cp\n\t\tss.sendCompressorName = s.opts.cp.Type()\n\t} else if rc := stream.RecvCompress(); rc != \"\" && rc != encoding.Identity {\n\t\t// Legacy compressor not specified; attempt to respond with same encoding.\n\t\tss.compressorV1 = encoding.GetCompressor(rc)\n\t\tif ss.compressorV1 != nil {\n\t\t\tss.sendCompressorName = rc\n\t\t}\n\t}\n\n\tif ss.sendCompressorName != \"\" {\n\t\tif err := stream.SetSendCompress(ss.sendCompressorName); err != nil {\n\t\t\treturn status.Errorf(codes.Internal, \"grpc: failed to set send compressor: %v\", err)\n\t\t}\n\t}\n\n\tss.ctx = newContextWithRPCInfo(ss.ctx, false, ss.codec, ss.compressorV0, ss.compressorV1)\n\n\tif trInfo != nil {\n\t\ttrInfo.tr.LazyLog(&trInfo.firstLine, false)\n\t}\n\tvar appErr error\n\tvar server any\n\tif info != nil {\n\t\tserver = info.serviceImpl\n\t}\n\tif s.opts.streamInt == nil {\n\t\tappErr = sd.Handler(server, ss)\n\t} else {\n\t\tinfo := &StreamServerInfo{\n\t\t\tFullMethod:     stream.Method(),\n\t\t\tIsClientStream: sd.ClientStreams,\n\t\t\tIsServerStream: sd.ServerStreams,\n\t\t}\n\t\tappErr = s.opts.streamInt(server, ss, info, sd.Handler)\n\t}\n\tif appErr != nil {\n\t\tappStatus, ok := status.FromError(appErr)\n\t\tif !ok {\n\t\t\t// Convert non-status application error to a status error with code\n\t\t\t// Unknown, but handle context errors specifically.\n\t\t\tappStatus = status.FromContextError(appErr)\n\t\t\tappErr = appStatus.Err()\n\t\t}\n\t\tif trInfo != nil {\n\t\t\tss.mu.Lock()\n\t\t\tss.trInfo.tr.LazyLog(stringer(appStatus.Message()), true)\n\t\t\tss.trInfo.tr.SetError()\n\t\t\tss.mu.Unlock()\n\t\t}\n\t\tif len(ss.binlogs) != 0 {\n\t\t\tst := &binarylog.ServerTrailer{\n\t\t\t\tTrailer: ss.s.Trailer(),\n\t\t\t\tErr:     appErr,\n\t\t\t}\n\t\t\tfor _, binlog := range ss.binlogs {\n\t\t\t\tbinlog.Log(ctx, st)\n\t\t\t}\n\t\t}\n\t\tss.s.WriteStatus(appStatus)\n\t\t// TODO: Should we log an error from WriteStatus here and below?\n\t\treturn appErr\n\t}\n\tif trInfo != nil {\n\t\tss.mu.Lock()\n\t\tss.trInfo.tr.LazyLog(stringer(\"OK\"), false)\n\t\tss.mu.Unlock()\n\t}\n\tif len(ss.binlogs) != 0 {\n\t\tst := &binarylog.ServerTrailer{\n\t\t\tTrailer: ss.s.Trailer(),\n\t\t\tErr:     appErr,\n\t\t}\n\t\tfor _, binlog := range ss.binlogs {\n\t\t\tbinlog.Log(ctx, st)\n\t\t}\n\t}\n\treturn ss.s.WriteStatus(statusOK)\n}\n\nfunc (s *Server) handleMalformedMethodName(stream *transport.ServerStream, ti *traceInfo) {\n\tif ti != nil {\n\t\tti.tr.LazyLog(&fmtStringer{\"Malformed method name %q\", []any{stream.Method()}}, true)\n\t\tti.tr.SetError()\n\t}\n\terrDesc := fmt.Sprintf(\"malformed method name: %q\", stream.Method())\n\tif err := stream.WriteStatus(status.New(codes.Unimplemented, errDesc)); err != nil {\n\t\tif ti != nil {\n\t\t\tti.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\tti.tr.SetError()\n\t\t}\n\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.handleStream failed to write status: %v\", err)\n\t}\n\tif ti != nil {\n\t\tti.tr.Finish()\n\t}\n}\n\nfunc (s *Server) handleStream(t transport.ServerTransport, stream *transport.ServerStream) {\n\tctx := stream.Context()\n\tctx = contextWithServer(ctx, s)\n\tvar ti *traceInfo\n\tif EnableTracing {\n\t\ttr := newTrace(\"grpc.Recv.\"+methodFamily(stream.Method()), stream.Method())\n\t\tctx = newTraceContext(ctx, tr)\n\t\tti = &traceInfo{\n\t\t\ttr: tr,\n\t\t\tfirstLine: firstLine{\n\t\t\t\tclient:     false,\n\t\t\t\tremoteAddr: t.Peer().Addr,\n\t\t\t},\n\t\t}\n\t\tif dl, ok := ctx.Deadline(); ok {\n\t\t\tti.firstLine.deadline = time.Until(dl)\n\t\t}\n\t}\n\n\tsm := stream.Method()\n\tif sm == \"\" {\n\t\ts.handleMalformedMethodName(stream, ti)\n\t\treturn\n\t}\n\tif sm[0] != '/' {\n\t\t// TODO(easwars): Add a link to the CVE in the below log messages once\n\t\t// published.\n\t\tif envconfig.DisableStrictPathChecking {\n\t\t\tif old := s.strictPathCheckingLogEmitted.Swap(true); !old {\n\t\t\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.handleStream received malformed method name %q. Allowing it because the environment variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING is set to true, but this option will be removed in a future release.\", sm)\n\t\t\t}\n\t\t} else {\n\t\t\tif old := s.strictPathCheckingLogEmitted.Swap(true); !old {\n\t\t\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.handleStream rejected malformed method name %q. To temporarily allow such requests, set the environment variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING to true. Note that this is not recommended as it may allow requests to bypass security policies.\", sm)\n\t\t\t}\n\t\t\ts.handleMalformedMethodName(stream, ti)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tsm = sm[1:]\n\t}\n\tpos := strings.LastIndex(sm, \"/\")\n\tif pos == -1 {\n\t\ts.handleMalformedMethodName(stream, ti)\n\t\treturn\n\t}\n\tservice := sm[:pos]\n\tmethod := sm[pos+1:]\n\n\t// FromIncomingContext is expensive: skip if there are no statsHandlers\n\tif s.statsHandler != nil {\n\t\tmd, _ := metadata.FromIncomingContext(ctx)\n\t\tctx = s.statsHandler.TagRPC(ctx, &stats.RPCTagInfo{FullMethodName: stream.Method()})\n\t\ts.statsHandler.HandleRPC(ctx, &stats.InHeader{\n\t\t\tFullMethod:  stream.Method(),\n\t\t\tRemoteAddr:  t.Peer().Addr,\n\t\t\tLocalAddr:   t.Peer().LocalAddr,\n\t\t\tCompression: stream.RecvCompress(),\n\t\t\tWireLength:  stream.HeaderWireLength(),\n\t\t\tHeader:      md,\n\t\t})\n\t}\n\t// To have calls in stream callouts work. Will delete once all stats handler\n\t// calls come from the gRPC layer.\n\tstream.SetContext(ctx)\n\n\tsrv, knownService := s.services[service]\n\tif knownService {\n\t\tif md, ok := srv.methods[method]; ok {\n\t\t\ts.processUnaryRPC(ctx, stream, srv, md, ti)\n\t\t\treturn\n\t\t}\n\t\tif sd, ok := srv.streams[method]; ok {\n\t\t\ts.processStreamingRPC(ctx, stream, srv, sd, ti)\n\t\t\treturn\n\t\t}\n\t}\n\t// Unknown service, or known server unknown method.\n\tif unknownDesc := s.opts.unknownStreamDesc; unknownDesc != nil {\n\t\ts.processStreamingRPC(ctx, stream, nil, unknownDesc, ti)\n\t\treturn\n\t}\n\tvar errDesc string\n\tif !knownService {\n\t\terrDesc = fmt.Sprintf(\"unknown service %v\", service)\n\t} else {\n\t\terrDesc = fmt.Sprintf(\"unknown method %v for service %v\", method, service)\n\t}\n\tif ti != nil {\n\t\tti.tr.LazyPrintf(\"%s\", errDesc)\n\t\tti.tr.SetError()\n\t}\n\tif err := stream.WriteStatus(status.New(codes.Unimplemented, errDesc)); err != nil {\n\t\tif ti != nil {\n\t\t\tti.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\tti.tr.SetError()\n\t\t}\n\t\tchannelz.Warningf(logger, s.channelz, \"grpc: Server.handleStream failed to write status: %v\", err)\n\t}\n\tif ti != nil {\n\t\tti.tr.Finish()\n\t}\n}\n\n// The key to save ServerTransportStream in the context.\ntype streamKey struct{}\n\n// NewContextWithServerTransportStream creates a new context from ctx and\n// attaches stream to it.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc NewContextWithServerTransportStream(ctx context.Context, stream ServerTransportStream) context.Context {\n\treturn context.WithValue(ctx, streamKey{}, stream)\n}\n\n// ServerTransportStream is a minimal interface that a transport stream must\n// implement. This can be used to mock an actual transport stream for tests of\n// handler code that use, for example, grpc.SetHeader (which requires some\n// stream to be in context).\n//\n// See also NewContextWithServerTransportStream.\n//\n// # Experimental\n//\n// Notice: This type is EXPERIMENTAL and may be changed or removed in a\n// later release.\ntype ServerTransportStream interface {\n\tMethod() string\n\tSetHeader(md metadata.MD) error\n\tSendHeader(md metadata.MD) error\n\tSetTrailer(md metadata.MD) error\n}\n\n// ServerTransportStreamFromContext returns the ServerTransportStream saved in\n// ctx. Returns nil if the given context has no stream associated with it\n// (which implies it is not an RPC invocation context).\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ServerTransportStreamFromContext(ctx context.Context) ServerTransportStream {\n\ts, _ := ctx.Value(streamKey{}).(ServerTransportStream)\n\treturn s\n}\n\n// Stop stops the gRPC server. It immediately closes all open\n// connections and listeners.\n// It cancels all active RPCs on the server side and the corresponding\n// pending RPCs on the client side will get notified by connection\n// errors.\nfunc (s *Server) Stop() {\n\ts.stop(false)\n}\n\n// GracefulStop stops the gRPC server gracefully. It stops the server from\n// accepting new connections and RPCs and blocks until all the pending RPCs are\n// finished.\nfunc (s *Server) GracefulStop() {\n\ts.stop(true)\n}\n\nfunc (s *Server) stop(graceful bool) {\n\ts.quit.Fire()\n\tdefer s.done.Fire()\n\n\ts.channelzRemoveOnce.Do(func() { channelz.RemoveEntry(s.channelz.ID) })\n\ts.mu.Lock()\n\ts.closeListenersLocked()\n\t// Wait for serving threads to be ready to exit.  Only then can we be sure no\n\t// new conns will be created.\n\ts.mu.Unlock()\n\ts.serveWG.Wait()\n\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif graceful {\n\t\ts.drainAllServerTransportsLocked()\n\t} else {\n\t\ts.closeServerTransportsLocked()\n\t}\n\n\tfor len(s.conns) != 0 {\n\t\ts.cv.Wait()\n\t}\n\ts.conns = nil\n\n\tif s.opts.numServerWorkers > 0 {\n\t\t// Closing the channel (only once, via sync.OnceFunc) after all the\n\t\t// connections have been closed above ensures that there are no\n\t\t// goroutines executing the callback passed to st.HandleStreams (where\n\t\t// the channel is written to).\n\t\ts.serverWorkerChannelClose()\n\t}\n\n\tif graceful || s.opts.waitForHandlers {\n\t\ts.handlersWG.Wait()\n\t}\n\n\tif s.events != nil {\n\t\ts.events.Finish()\n\t\ts.events = nil\n\t}\n}\n\n// s.mu must be held by the caller.\nfunc (s *Server) closeServerTransportsLocked() {\n\tfor _, conns := range s.conns {\n\t\tfor st := range conns {\n\t\t\tst.Close(errors.New(\"Server.Stop called\"))\n\t\t}\n\t}\n}\n\n// s.mu must be held by the caller.\nfunc (s *Server) drainAllServerTransportsLocked() {\n\tif !s.drain {\n\t\tfor _, conns := range s.conns {\n\t\t\tfor st := range conns {\n\t\t\t\tst.Drain(\"graceful_stop\")\n\t\t\t}\n\t\t}\n\t\ts.drain = true\n\t}\n}\n\n// s.mu must be held by the caller.\nfunc (s *Server) closeListenersLocked() {\n\tfor lis := range s.lis {\n\t\tlis.Close()\n\t}\n\ts.lis = nil\n}\n\n// contentSubtype must be lowercase\n// cannot return nil\nfunc (s *Server) getCodec(contentSubtype string) baseCodec {\n\tif s.opts.codec != nil {\n\t\treturn s.opts.codec\n\t}\n\tif contentSubtype == \"\" {\n\t\treturn getCodec(proto.Name)\n\t}\n\tcodec := getCodec(contentSubtype)\n\tif codec == nil {\n\t\tlogger.Warningf(\"Unsupported codec %q. Defaulting to %q for now. This will start to fail in future releases.\", contentSubtype, proto.Name)\n\t\treturn getCodec(proto.Name)\n\t}\n\treturn codec\n}\n\ntype serverKey struct{}\n\n// serverFromContext gets the Server from the context.\nfunc serverFromContext(ctx context.Context) *Server {\n\ts, _ := ctx.Value(serverKey{}).(*Server)\n\treturn s\n}\n\n// contextWithServer sets the Server in the context.\nfunc contextWithServer(ctx context.Context, server *Server) context.Context {\n\treturn context.WithValue(ctx, serverKey{}, server)\n}\n\n// isRegisteredMethod returns whether the passed in method is registered as a\n// method on the server. /service/method and service/method will match if the\n// service and method are registered on the server.\nfunc (s *Server) isRegisteredMethod(serviceMethod string) bool {\n\tif serviceMethod != \"\" && serviceMethod[0] == '/' {\n\t\tserviceMethod = serviceMethod[1:]\n\t}\n\tpos := strings.LastIndex(serviceMethod, \"/\")\n\tif pos == -1 { // Invalid method name syntax.\n\t\treturn false\n\t}\n\tservice := serviceMethod[:pos]\n\tmethod := serviceMethod[pos+1:]\n\tsrv, knownService := s.services[service]\n\tif knownService {\n\t\tif _, ok := srv.methods[method]; ok {\n\t\t\treturn true\n\t\t}\n\t\tif _, ok := srv.streams[method]; ok {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// SetHeader sets the header metadata to be sent from the server to the client.\n// The context provided must be the context passed to the server's handler.\n//\n// Streaming RPCs should prefer the SetHeader method of the ServerStream.\n//\n// When called multiple times, all the provided metadata will be merged.  All\n// the metadata will be sent out when one of the following happens:\n//\n//   - grpc.SendHeader is called, or for streaming handlers, stream.SendHeader.\n//   - The first response message is sent.  For unary handlers, this occurs when\n//     the handler returns; for streaming handlers, this can happen when stream's\n//     SendMsg method is called.\n//   - An RPC status is sent out (error or success).  This occurs when the handler\n//     returns.\n//\n// SetHeader will fail if called after any of the events above.\n//\n// The error returned is compatible with the status package.  However, the\n// status code will often not match the RPC status as seen by the client\n// application, and therefore, should not be relied upon for this purpose.\nfunc SetHeader(ctx context.Context, md metadata.MD) error {\n\tif md.Len() == 0 {\n\t\treturn nil\n\t}\n\tstream := ServerTransportStreamFromContext(ctx)\n\tif stream == nil {\n\t\treturn status.Errorf(codes.Internal, \"grpc: failed to fetch the stream from the context %v\", ctx)\n\t}\n\treturn stream.SetHeader(md)\n}\n\n// SendHeader sends header metadata. It may be called at most once, and may not\n// be called after any event that causes headers to be sent (see SetHeader for\n// a complete list).  The provided md and headers set by SetHeader() will be\n// sent.\n//\n// The error returned is compatible with the status package.  However, the\n// status code will often not match the RPC status as seen by the client\n// application, and therefore, should not be relied upon for this purpose.\nfunc SendHeader(ctx context.Context, md metadata.MD) error {\n\tstream := ServerTransportStreamFromContext(ctx)\n\tif stream == nil {\n\t\treturn status.Errorf(codes.Internal, \"grpc: failed to fetch the stream from the context %v\", ctx)\n\t}\n\tif err := stream.SendHeader(md); err != nil {\n\t\treturn toRPCErr(err)\n\t}\n\treturn nil\n}\n\n// SetSendCompressor sets a compressor for outbound messages from the server.\n// It must not be called after any event that causes headers to be sent\n// (see ServerStream.SetHeader for the complete list). Provided compressor is\n// used when below conditions are met:\n//\n//   - compressor is registered via encoding.RegisterCompressor\n//   - compressor name must exist in the client advertised compressor names\n//     sent in grpc-accept-encoding header. Use ClientSupportedCompressors to\n//     get client supported compressor names.\n//\n// The context provided must be the context passed to the server's handler.\n// It must be noted that compressor name encoding.Identity disables the\n// outbound compression.\n// By default, server messages will be sent using the same compressor with\n// which request messages were sent.\n//\n// It is not safe to call SetSendCompressor concurrently with SendHeader and\n// SendMsg.\n//\n// # Experimental\n//\n// Notice: This function is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc SetSendCompressor(ctx context.Context, name string) error {\n\tstream, ok := ServerTransportStreamFromContext(ctx).(*transport.ServerStream)\n\tif !ok || stream == nil {\n\t\treturn fmt.Errorf(\"failed to fetch the stream from the given context\")\n\t}\n\n\tif err := validateSendCompressor(name, stream.ClientAdvertisedCompressors()); err != nil {\n\t\treturn fmt.Errorf(\"unable to set send compressor: %w\", err)\n\t}\n\n\treturn stream.SetSendCompress(name)\n}\n\n// ClientSupportedCompressors returns compressor names advertised by the client\n// via grpc-accept-encoding header.\n//\n// The context provided must be the context passed to the server's handler.\n//\n// # Experimental\n//\n// Notice: This function is EXPERIMENTAL and may be changed or removed in a\n// later release.\nfunc ClientSupportedCompressors(ctx context.Context) ([]string, error) {\n\tstream, ok := ServerTransportStreamFromContext(ctx).(*transport.ServerStream)\n\tif !ok || stream == nil {\n\t\treturn nil, fmt.Errorf(\"failed to fetch the stream from the given context %v\", ctx)\n\t}\n\n\treturn stream.ClientAdvertisedCompressors(), nil\n}\n\n// SetTrailer sets the trailer metadata that will be sent when an RPC returns.\n// When called more than once, all the provided metadata will be merged.\n//\n// The error returned is compatible with the status package.  However, the\n// status code will often not match the RPC status as seen by the client\n// application, and therefore, should not be relied upon for this purpose.\nfunc SetTrailer(ctx context.Context, md metadata.MD) error {\n\tif md.Len() == 0 {\n\t\treturn nil\n\t}\n\tstream := ServerTransportStreamFromContext(ctx)\n\tif stream == nil {\n\t\treturn status.Errorf(codes.Internal, \"grpc: failed to fetch the stream from the context %v\", ctx)\n\t}\n\treturn stream.SetTrailer(md)\n}\n\n// Method returns the method string for the server context.  The returned\n// string is in the format of \"/service/method\".\nfunc Method(ctx context.Context) (string, bool) {\n\ts := ServerTransportStreamFromContext(ctx)\n\tif s == nil {\n\t\treturn \"\", false\n\t}\n\treturn s.Method(), true\n}\n\n// validateSendCompressor returns an error when given compressor name cannot be\n// handled by the server or the client based on the advertised compressors.\nfunc validateSendCompressor(name string, clientCompressors []string) error {\n\tif name == encoding.Identity {\n\t\treturn nil\n\t}\n\n\tif !grpcutil.IsCompressorNameRegistered(name) {\n\t\treturn fmt.Errorf(\"compressor not registered %q\", name)\n\t}\n\n\tfor _, c := range clientCompressors {\n\t\tif c == name {\n\t\t\treturn nil // found match\n\t\t}\n\t}\n\treturn fmt.Errorf(\"client does not support compressor %q\", name)\n}\n\n// atomicSemaphore implements a blocking, counting semaphore. acquire should be\n// called synchronously; release may be called asynchronously.\ntype atomicSemaphore struct {\n\tn    atomic.Int64\n\twait chan struct{}\n}\n\nfunc (q *atomicSemaphore) acquire() {\n\tif q.n.Add(-1) < 0 {\n\t\t// We ran out of quota.  Block until a release happens.\n\t\t<-q.wait\n\t}\n}\n\nfunc (q *atomicSemaphore) release() {\n\t// N.B. the \"<= 0\" check below should allow for this to work with multiple\n\t// concurrent calls to acquire, but also note that with synchronous calls to\n\t// acquire, as our system does, n will never be less than -1.  There are\n\t// fairness issues (queuing) to consider if this was to be generalized.\n\tif q.n.Add(1) <= 0 {\n\t\t// An acquire was waiting on us.  Unblock it.\n\t\tq.wait <- struct{}{}\n\t}\n}\n\nfunc newHandlerQuota(n uint32) *atomicSemaphore {\n\ta := &atomicSemaphore{wait: make(chan struct{}, 1)}\n\ta.n.Store(int64(n))\n\treturn a\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/service_config.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/balancer/pickfirst\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/balancer/gracefulswitch\"\n\tinternalserviceconfig \"google.golang.org/grpc/internal/serviceconfig\"\n\t\"google.golang.org/grpc/serviceconfig\"\n)\n\nconst maxInt = int(^uint(0) >> 1)\n\n// MethodConfig defines the configuration recommended by the service providers for a\n// particular method.\n//\n// Deprecated: Users should not use this struct. Service config should be received\n// through name resolver, as specified here\n// https://github.com/grpc/grpc/blob/master/doc/service_config.md\ntype MethodConfig = internalserviceconfig.MethodConfig\n\n// ServiceConfig is provided by the service provider and contains parameters for how\n// clients that connect to the service should behave.\n//\n// Deprecated: Users should not use this struct. Service config should be received\n// through name resolver, as specified here\n// https://github.com/grpc/grpc/blob/master/doc/service_config.md\ntype ServiceConfig struct {\n\tserviceconfig.Config\n\n\t// lbConfig is the service config's load balancing configuration.  If\n\t// lbConfig and LB are both present, lbConfig will be used.\n\tlbConfig serviceconfig.LoadBalancingConfig\n\n\t// Methods contains a map for the methods in this service.  If there is an\n\t// exact match for a method (i.e. /service/method) in the map, use the\n\t// corresponding MethodConfig.  If there's no exact match, look for the\n\t// default config for the service (/service/) and use the corresponding\n\t// MethodConfig if it exists.  Otherwise, the method has no MethodConfig to\n\t// use.\n\tMethods map[string]MethodConfig\n\n\t// If a retryThrottlingPolicy is provided, gRPC will automatically throttle\n\t// retry attempts and hedged RPCs when the client’s ratio of failures to\n\t// successes exceeds a threshold.\n\t//\n\t// For each server name, the gRPC client will maintain a token_count which is\n\t// initially set to maxTokens, and can take values between 0 and maxTokens.\n\t//\n\t// Every outgoing RPC (regardless of service or method invoked) will change\n\t// token_count as follows:\n\t//\n\t//   - Every failed RPC will decrement the token_count by 1.\n\t//   - Every successful RPC will increment the token_count by tokenRatio.\n\t//\n\t// If token_count is less than or equal to maxTokens / 2, then RPCs will not\n\t// be retried and hedged RPCs will not be sent.\n\tretryThrottling *retryThrottlingPolicy\n\t// healthCheckConfig must be set as one of the requirement to enable LB channel\n\t// health check.\n\thealthCheckConfig *healthCheckConfig\n\t// rawJSONString stores service config json string that get parsed into\n\t// this service config struct.\n\trawJSONString string\n}\n\n// healthCheckConfig defines the go-native version of the LB channel health check config.\ntype healthCheckConfig struct {\n\t// serviceName is the service name to use in the health-checking request.\n\tServiceName string\n}\n\ntype jsonRetryPolicy struct {\n\tMaxAttempts          int\n\tInitialBackoff       internalserviceconfig.Duration\n\tMaxBackoff           internalserviceconfig.Duration\n\tBackoffMultiplier    float64\n\tRetryableStatusCodes []codes.Code\n}\n\n// retryThrottlingPolicy defines the go-native version of the retry throttling\n// policy defined by the service config here:\n// https://github.com/grpc/proposal/blob/master/A6-client-retries.md#integration-with-service-config\ntype retryThrottlingPolicy struct {\n\t// The number of tokens starts at maxTokens. The token_count will always be\n\t// between 0 and maxTokens.\n\t//\n\t// This field is required and must be greater than zero.\n\tMaxTokens float64\n\t// The amount of tokens to add on each successful RPC. Typically this will\n\t// be some number between 0 and 1, e.g., 0.1.\n\t//\n\t// This field is required and must be greater than zero. Up to 3 decimal\n\t// places are supported.\n\tTokenRatio float64\n}\n\ntype jsonName struct {\n\tService string\n\tMethod  string\n}\n\nvar (\n\terrDuplicatedName             = errors.New(\"duplicated name\")\n\terrEmptyServiceNonEmptyMethod = errors.New(\"cannot combine empty 'service' and non-empty 'method'\")\n)\n\nfunc (j jsonName) generatePath() (string, error) {\n\tif j.Service == \"\" {\n\t\tif j.Method != \"\" {\n\t\t\treturn \"\", errEmptyServiceNonEmptyMethod\n\t\t}\n\t\treturn \"\", nil\n\t}\n\tres := \"/\" + j.Service + \"/\"\n\tif j.Method != \"\" {\n\t\tres += j.Method\n\t}\n\treturn res, nil\n}\n\n// TODO(lyuxuan): delete this struct after cleaning up old service config implementation.\ntype jsonMC struct {\n\tName                    *[]jsonName\n\tWaitForReady            *bool\n\tTimeout                 *internalserviceconfig.Duration\n\tMaxRequestMessageBytes  *int64\n\tMaxResponseMessageBytes *int64\n\tRetryPolicy             *jsonRetryPolicy\n}\n\n// TODO(lyuxuan): delete this struct after cleaning up old service config implementation.\ntype jsonSC struct {\n\tLoadBalancingPolicy *string\n\tLoadBalancingConfig *json.RawMessage\n\tMethodConfig        *[]jsonMC\n\tRetryThrottling     *retryThrottlingPolicy\n\tHealthCheckConfig   *healthCheckConfig\n}\n\nfunc init() {\n\tinternal.ParseServiceConfig = func(js string) *serviceconfig.ParseResult {\n\t\treturn parseServiceConfig(js, defaultMaxCallAttempts)\n\t}\n}\n\nfunc parseServiceConfig(js string, maxAttempts int) *serviceconfig.ParseResult {\n\tif len(js) == 0 {\n\t\treturn &serviceconfig.ParseResult{Err: fmt.Errorf(\"no JSON service config provided\")}\n\t}\n\tvar rsc jsonSC\n\terr := json.Unmarshal([]byte(js), &rsc)\n\tif err != nil {\n\t\tlogger.Warningf(\"grpc: unmarshalling service config %s: %v\", js, err)\n\t\treturn &serviceconfig.ParseResult{Err: err}\n\t}\n\tsc := ServiceConfig{\n\t\tMethods:           make(map[string]MethodConfig),\n\t\tretryThrottling:   rsc.RetryThrottling,\n\t\thealthCheckConfig: rsc.HealthCheckConfig,\n\t\trawJSONString:     js,\n\t}\n\tc := rsc.LoadBalancingConfig\n\tif c == nil {\n\t\tname := pickfirst.Name\n\t\tif rsc.LoadBalancingPolicy != nil {\n\t\t\tname = *rsc.LoadBalancingPolicy\n\t\t}\n\t\tif balancer.Get(name) == nil {\n\t\t\tname = pickfirst.Name\n\t\t}\n\t\tcfg := []map[string]any{{name: struct{}{}}}\n\t\tstrCfg, err := json.Marshal(cfg)\n\t\tif err != nil {\n\t\t\treturn &serviceconfig.ParseResult{Err: fmt.Errorf(\"unexpected error marshaling simple LB config: %w\", err)}\n\t\t}\n\t\tr := json.RawMessage(strCfg)\n\t\tc = &r\n\t}\n\tcfg, err := gracefulswitch.ParseConfig(*c)\n\tif err != nil {\n\t\treturn &serviceconfig.ParseResult{Err: err}\n\t}\n\tsc.lbConfig = cfg\n\n\tif rsc.MethodConfig == nil {\n\t\treturn &serviceconfig.ParseResult{Config: &sc}\n\t}\n\n\tpaths := map[string]struct{}{}\n\tfor _, m := range *rsc.MethodConfig {\n\t\tif m.Name == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tmc := MethodConfig{\n\t\t\tWaitForReady: m.WaitForReady,\n\t\t\tTimeout:      (*time.Duration)(m.Timeout),\n\t\t}\n\t\tif mc.RetryPolicy, err = convertRetryPolicy(m.RetryPolicy, maxAttempts); err != nil {\n\t\t\tlogger.Warningf(\"grpc: unmarshalling service config %s: %v\", js, err)\n\t\t\treturn &serviceconfig.ParseResult{Err: err}\n\t\t}\n\t\tif m.MaxRequestMessageBytes != nil {\n\t\t\tif *m.MaxRequestMessageBytes > int64(maxInt) {\n\t\t\t\tmc.MaxReqSize = newInt(maxInt)\n\t\t\t} else {\n\t\t\t\tmc.MaxReqSize = newInt(int(*m.MaxRequestMessageBytes))\n\t\t\t}\n\t\t}\n\t\tif m.MaxResponseMessageBytes != nil {\n\t\t\tif *m.MaxResponseMessageBytes > int64(maxInt) {\n\t\t\t\tmc.MaxRespSize = newInt(maxInt)\n\t\t\t} else {\n\t\t\t\tmc.MaxRespSize = newInt(int(*m.MaxResponseMessageBytes))\n\t\t\t}\n\t\t}\n\t\tfor i, n := range *m.Name {\n\t\t\tpath, err := n.generatePath()\n\t\t\tif err != nil {\n\t\t\t\tlogger.Warningf(\"grpc: error unmarshalling service config %s due to methodConfig[%d]: %v\", js, i, err)\n\t\t\t\treturn &serviceconfig.ParseResult{Err: err}\n\t\t\t}\n\n\t\t\tif _, ok := paths[path]; ok {\n\t\t\t\terr = errDuplicatedName\n\t\t\t\tlogger.Warningf(\"grpc: error unmarshalling service config %s due to methodConfig[%d]: %v\", js, i, err)\n\t\t\t\treturn &serviceconfig.ParseResult{Err: err}\n\t\t\t}\n\t\t\tpaths[path] = struct{}{}\n\t\t\tsc.Methods[path] = mc\n\t\t}\n\t}\n\n\tif sc.retryThrottling != nil {\n\t\tif mt := sc.retryThrottling.MaxTokens; mt <= 0 || mt > 1000 {\n\t\t\treturn &serviceconfig.ParseResult{Err: fmt.Errorf(\"invalid retry throttling config: maxTokens (%v) out of range (0, 1000]\", mt)}\n\t\t}\n\t\tif tr := sc.retryThrottling.TokenRatio; tr <= 0 {\n\t\t\treturn &serviceconfig.ParseResult{Err: fmt.Errorf(\"invalid retry throttling config: tokenRatio (%v) may not be negative\", tr)}\n\t\t}\n\t}\n\treturn &serviceconfig.ParseResult{Config: &sc}\n}\n\nfunc isValidRetryPolicy(jrp *jsonRetryPolicy) bool {\n\treturn jrp.MaxAttempts > 1 &&\n\t\tjrp.InitialBackoff > 0 &&\n\t\tjrp.MaxBackoff > 0 &&\n\t\tjrp.BackoffMultiplier > 0 &&\n\t\tlen(jrp.RetryableStatusCodes) > 0\n}\n\nfunc convertRetryPolicy(jrp *jsonRetryPolicy, maxAttempts int) (p *internalserviceconfig.RetryPolicy, err error) {\n\tif jrp == nil {\n\t\treturn nil, nil\n\t}\n\n\tif !isValidRetryPolicy(jrp) {\n\t\treturn nil, fmt.Errorf(\"invalid retry policy (%+v): \", jrp)\n\t}\n\n\tif jrp.MaxAttempts < maxAttempts {\n\t\tmaxAttempts = jrp.MaxAttempts\n\t}\n\trp := &internalserviceconfig.RetryPolicy{\n\t\tMaxAttempts:          maxAttempts,\n\t\tInitialBackoff:       time.Duration(jrp.InitialBackoff),\n\t\tMaxBackoff:           time.Duration(jrp.MaxBackoff),\n\t\tBackoffMultiplier:    jrp.BackoffMultiplier,\n\t\tRetryableStatusCodes: make(map[codes.Code]bool),\n\t}\n\tfor _, code := range jrp.RetryableStatusCodes {\n\t\trp.RetryableStatusCodes[code] = true\n\t}\n\treturn rp, nil\n}\n\nfunc minPointers(a, b *int) *int {\n\tif *a < *b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc getMaxSize(mcMax, doptMax *int, defaultVal int) *int {\n\tif mcMax == nil && doptMax == nil {\n\t\treturn &defaultVal\n\t}\n\tif mcMax != nil && doptMax != nil {\n\t\treturn minPointers(mcMax, doptMax)\n\t}\n\tif mcMax != nil {\n\t\treturn mcMax\n\t}\n\treturn doptMax\n}\n\nfunc newInt(b int) *int {\n\treturn &b\n}\n\nfunc init() {\n\tinternal.EqualServiceConfigForTesting = equalServiceConfig\n}\n\n// equalServiceConfig compares two configs. The rawJSONString field is ignored,\n// because they may diff in white spaces.\n//\n// If any of them is NOT *ServiceConfig, return false.\nfunc equalServiceConfig(a, b serviceconfig.Config) bool {\n\tif a == nil && b == nil {\n\t\treturn true\n\t}\n\taa, ok := a.(*ServiceConfig)\n\tif !ok {\n\t\treturn false\n\t}\n\tbb, ok := b.(*ServiceConfig)\n\tif !ok {\n\t\treturn false\n\t}\n\taaRaw := aa.rawJSONString\n\taa.rawJSONString = \"\"\n\tbbRaw := bb.rawJSONString\n\tbb.rawJSONString = \"\"\n\tdefer func() {\n\t\taa.rawJSONString = aaRaw\n\t\tbb.rawJSONString = bbRaw\n\t}()\n\t// Using reflect.DeepEqual instead of cmp.Equal because many balancer\n\t// configs are unexported, and cmp.Equal cannot compare unexported fields\n\t// from unexported structs.\n\treturn reflect.DeepEqual(aa, bb)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go",
    "content": "/*\n *\n * Copyright 2019 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package serviceconfig defines types and methods for operating on gRPC\n// service configs.\n//\n// # Experimental\n//\n// Notice: This package is EXPERIMENTAL and may be changed or removed in a\n// later release.\npackage serviceconfig\n\n// Config represents an opaque data structure holding a service config.\ntype Config interface {\n\tisServiceConfig()\n}\n\n// LoadBalancingConfig represents an opaque data structure holding a load\n// balancing config.\ntype LoadBalancingConfig interface {\n\tisLoadBalancingConfig()\n}\n\n// ParseResult contains a service config or an error.  Exactly one must be\n// non-nil.\ntype ParseResult struct {\n\tConfig Config\n\tErr    error\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/stats/handlers.go",
    "content": "/*\n *\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage stats\n\nimport (\n\t\"context\"\n\t\"net\"\n)\n\n// ConnTagInfo defines the relevant information needed by connection context tagger.\ntype ConnTagInfo struct {\n\t// RemoteAddr is the remote address of the corresponding connection.\n\tRemoteAddr net.Addr\n\t// LocalAddr is the local address of the corresponding connection.\n\tLocalAddr net.Addr\n}\n\n// RPCTagInfo defines the relevant information needed by RPC context tagger.\ntype RPCTagInfo struct {\n\t// FullMethodName is the RPC method in the format of /package.service/method.\n\tFullMethodName string\n\t// FailFast indicates if this RPC is failfast.\n\t// This field is only valid on client side, it's always false on server side.\n\tFailFast bool\n\t// NameResolutionDelay indicates if the RPC needed to wait for the\n\t// initial name resolver update before it could begin. This should only\n\t// happen if the channel is IDLE when the RPC is started.  Note that\n\t// all retry or hedging attempts for an RPC that experienced a delay\n\t// will have it set.\n\t//\n\t// This field is only valid on the client side; it is always false on\n\t// the server side.\n\tNameResolutionDelay bool\n}\n\n// Handler defines the interface for the related stats handling (e.g., RPCs, connections).\ntype Handler interface {\n\t// TagRPC can attach some information to the given context.\n\t// The context used for the rest lifetime of the RPC will be derived from\n\t// the returned context.\n\tTagRPC(context.Context, *RPCTagInfo) context.Context\n\t// HandleRPC processes the RPC stats.\n\tHandleRPC(context.Context, RPCStats)\n\n\t// TagConn can attach some information to the given context.\n\t// The returned context will be used for stats handling.\n\t// For conn stats handling, the context used in HandleConn for this\n\t// connection will be derived from the context returned.\n\t// For RPC stats handling,\n\t//  - On server side, the context used in HandleRPC for all RPCs on this\n\t// connection will be derived from the context returned.\n\t//  - On client side, the context is not derived from the context returned.\n\tTagConn(context.Context, *ConnTagInfo) context.Context\n\t// HandleConn processes the Conn stats.\n\tHandleConn(context.Context, ConnStats)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/stats/metrics.go",
    "content": "/*\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage stats\n\nimport \"maps\"\n\n// MetricSet is a set of metrics to record. Once created, MetricSet is immutable,\n// however Add and Remove can make copies with specific metrics added or\n// removed, respectively.\n//\n// Do not construct directly; use NewMetricSet instead.\ntype MetricSet struct {\n\t// metrics are the set of metrics to initialize.\n\tmetrics map[string]bool\n}\n\n// NewMetricSet returns a MetricSet containing metricNames.\nfunc NewMetricSet(metricNames ...string) *MetricSet {\n\tnewMetrics := make(map[string]bool)\n\tfor _, metric := range metricNames {\n\t\tnewMetrics[metric] = true\n\t}\n\treturn &MetricSet{metrics: newMetrics}\n}\n\n// Metrics returns the metrics set. The returned map is read-only and must not\n// be modified.\nfunc (m *MetricSet) Metrics() map[string]bool {\n\treturn m.metrics\n}\n\n// Add adds the metricNames to the metrics set and returns a new copy with the\n// additional metrics.\nfunc (m *MetricSet) Add(metricNames ...string) *MetricSet {\n\tnewMetrics := make(map[string]bool)\n\tfor metric := range m.metrics {\n\t\tnewMetrics[metric] = true\n\t}\n\n\tfor _, metric := range metricNames {\n\t\tnewMetrics[metric] = true\n\t}\n\treturn &MetricSet{metrics: newMetrics}\n}\n\n// Join joins the metrics passed in with the metrics set, and returns a new copy\n// with the merged metrics.\nfunc (m *MetricSet) Join(metrics *MetricSet) *MetricSet {\n\tnewMetrics := make(map[string]bool)\n\tmaps.Copy(newMetrics, m.metrics)\n\tmaps.Copy(newMetrics, metrics.metrics)\n\treturn &MetricSet{metrics: newMetrics}\n}\n\n// Remove removes the metricNames from the metrics set and returns a new copy\n// with the metrics removed.\nfunc (m *MetricSet) Remove(metricNames ...string) *MetricSet {\n\tnewMetrics := make(map[string]bool)\n\tfor metric := range m.metrics {\n\t\tnewMetrics[metric] = true\n\t}\n\n\tfor _, metric := range metricNames {\n\t\tdelete(newMetrics, metric)\n\t}\n\treturn &MetricSet{metrics: newMetrics}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/stats/stats.go",
    "content": "/*\n *\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package stats is for collecting and reporting various network and RPC stats.\n// This package is for monitoring purpose only. All fields are read-only.\n// All APIs are experimental.\npackage stats // import \"google.golang.org/grpc/stats\"\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/metadata\"\n)\n\n// RPCStats contains stats information about RPCs.\ntype RPCStats interface {\n\tisRPCStats()\n\t// IsClient returns true if this RPCStats is from client side.\n\tIsClient() bool\n}\n\n// Begin contains stats for the start of an RPC attempt.\n//\n//   - Server-side: Triggered after `InHeader`, as headers are processed\n//     before the RPC lifecycle begins.\n//   - Client-side: The first stats event recorded.\n//\n// FailFast is only valid if this Begin is from client side.\ntype Begin struct {\n\t// Client is true if this Begin is from client side.\n\tClient bool\n\t// BeginTime is the time when the RPC attempt begins.\n\tBeginTime time.Time\n\t// FailFast indicates if this RPC is failfast.\n\tFailFast bool\n\t// IsClientStream indicates whether the RPC is a client streaming RPC.\n\tIsClientStream bool\n\t// IsServerStream indicates whether the RPC is a server streaming RPC.\n\tIsServerStream bool\n\t// IsTransparentRetryAttempt indicates whether this attempt was initiated\n\t// due to transparently retrying a previous attempt.\n\tIsTransparentRetryAttempt bool\n}\n\n// IsClient indicates if the stats information is from client side.\nfunc (s *Begin) IsClient() bool { return s.Client }\n\nfunc (s *Begin) isRPCStats() {}\n\n// DelayedPickComplete indicates that the RPC is unblocked following a delay in\n// selecting a connection for the call.\ntype DelayedPickComplete struct{}\n\n// IsClient indicates DelayedPickComplete is available on the client.\nfunc (*DelayedPickComplete) IsClient() bool { return true }\n\nfunc (*DelayedPickComplete) isRPCStats() {}\n\n// PickerUpdated indicates that the RPC is unblocked following a delay in\n// selecting a connection for the call.\n//\n// Deprecated: will be removed in a future release; use DelayedPickComplete\n// instead.\ntype PickerUpdated = DelayedPickComplete\n\n// InPayload contains stats about an incoming payload.\ntype InPayload struct {\n\t// Client is true if this InPayload is from client side.\n\tClient bool\n\t// Payload is the payload with original type.  This may be modified after\n\t// the call to HandleRPC which provides the InPayload returns and must be\n\t// copied if needed later.\n\tPayload any\n\n\t// Length is the size of the uncompressed payload data. Does not include any\n\t// framing (gRPC or HTTP/2).\n\tLength int\n\t// CompressedLength is the size of the compressed payload data. Does not\n\t// include any framing (gRPC or HTTP/2). Same as Length if compression not\n\t// enabled.\n\tCompressedLength int\n\t// WireLength is the size of the compressed payload data plus gRPC framing.\n\t// Does not include HTTP/2 framing.\n\tWireLength int\n\n\t// RecvTime is the time when the payload is received.\n\tRecvTime time.Time\n}\n\n// IsClient indicates if the stats information is from client side.\nfunc (s *InPayload) IsClient() bool { return s.Client }\n\nfunc (s *InPayload) isRPCStats() {}\n\n// InHeader contains stats about header reception.\n//\n// - Server-side: The first stats event after the RPC request is received.\ntype InHeader struct {\n\t// Client is true if this InHeader is from client side.\n\tClient bool\n\t// WireLength is the wire length of header.\n\tWireLength int\n\t// Compression is the compression algorithm used for the RPC.\n\tCompression string\n\t// Header contains the header metadata received.\n\tHeader metadata.MD\n\n\t// The following fields are valid only if Client is false.\n\t// FullMethod is the full RPC method string, i.e., /package.service/method.\n\tFullMethod string\n\t// RemoteAddr is the remote address of the corresponding connection.\n\tRemoteAddr net.Addr\n\t// LocalAddr is the local address of the corresponding connection.\n\tLocalAddr net.Addr\n}\n\n// IsClient indicates if the stats information is from client side.\nfunc (s *InHeader) IsClient() bool { return s.Client }\n\nfunc (s *InHeader) isRPCStats() {}\n\n// InTrailer contains stats about trailer reception.\ntype InTrailer struct {\n\t// Client is true if this InTrailer is from client side.\n\tClient bool\n\t// WireLength is the wire length of trailer.\n\tWireLength int\n\t// Trailer contains the trailer metadata received from the server. This\n\t// field is only valid if this InTrailer is from the client side.\n\tTrailer metadata.MD\n}\n\n// IsClient indicates if the stats information is from client side.\nfunc (s *InTrailer) IsClient() bool { return s.Client }\n\nfunc (s *InTrailer) isRPCStats() {}\n\n// OutPayload contains stats about an outgoing payload.\ntype OutPayload struct {\n\t// Client is true if this OutPayload is from client side.\n\tClient bool\n\t// Payload is the payload with original type.  This may be modified after\n\t// the call to HandleRPC which provides the OutPayload returns and must be\n\t// copied if needed later.\n\tPayload any\n\t// Length is the size of the uncompressed payload data. Does not include any\n\t// framing (gRPC or HTTP/2).\n\tLength int\n\t// CompressedLength is the size of the compressed payload data. Does not\n\t// include any framing (gRPC or HTTP/2). Same as Length if compression not\n\t// enabled.\n\tCompressedLength int\n\t// WireLength is the size of the compressed payload data plus gRPC framing.\n\t// Does not include HTTP/2 framing.\n\tWireLength int\n\t// SentTime is the time when the payload is sent.\n\tSentTime time.Time\n}\n\n// IsClient indicates if this stats information is from client side.\nfunc (s *OutPayload) IsClient() bool { return s.Client }\n\nfunc (s *OutPayload) isRPCStats() {}\n\n// OutHeader contains stats about header transmission.\n//\n//   - Client-side: Only occurs after 'Begin', as headers are always the first\n//     thing sent on a stream.\ntype OutHeader struct {\n\t// Client is true if this OutHeader is from client side.\n\tClient bool\n\t// Compression is the compression algorithm used for the RPC.\n\tCompression string\n\t// Header contains the header metadata sent.\n\tHeader metadata.MD\n\n\t// The following fields are valid only if Client is true.\n\t// FullMethod is the full RPC method string, i.e., /package.service/method.\n\tFullMethod string\n\t// RemoteAddr is the remote address of the corresponding connection.\n\tRemoteAddr net.Addr\n\t// LocalAddr is the local address of the corresponding connection.\n\tLocalAddr net.Addr\n}\n\n// IsClient indicates if this stats information is from client side.\nfunc (s *OutHeader) IsClient() bool { return s.Client }\n\nfunc (s *OutHeader) isRPCStats() {}\n\n// OutTrailer contains stats about trailer transmission.\ntype OutTrailer struct {\n\t// Client is true if this OutTrailer is from client side.\n\tClient bool\n\t// WireLength is the wire length of trailer.\n\t//\n\t// Deprecated: This field is never set. The length is not known when this\n\t// message is emitted because the trailer fields are compressed with hpack\n\t// after that.\n\tWireLength int\n\t// Trailer contains the trailer metadata sent to the client. This\n\t// field is only valid if this OutTrailer is from the server side.\n\tTrailer metadata.MD\n}\n\n// IsClient indicates if this stats information is from client side.\nfunc (s *OutTrailer) IsClient() bool { return s.Client }\n\nfunc (s *OutTrailer) isRPCStats() {}\n\n// End contains stats about RPC completion.\ntype End struct {\n\t// Client is true if this End is from client side.\n\tClient bool\n\t// BeginTime is the time when the RPC began.\n\tBeginTime time.Time\n\t// EndTime is the time when the RPC ends.\n\tEndTime time.Time\n\t// Trailer contains the trailer metadata received from the server. This\n\t// field is only valid if this End is from the client side.\n\t// Deprecated: use Trailer in InTrailer instead.\n\tTrailer metadata.MD\n\t// Error is the error the RPC ended with. It is an error generated from\n\t// status.Status and can be converted back to status.Status using\n\t// status.FromError if non-nil.\n\tError error\n}\n\n// IsClient indicates if this is from client side.\nfunc (s *End) IsClient() bool { return s.Client }\n\nfunc (s *End) isRPCStats() {}\n\n// ConnStats contains stats information about connections.\ntype ConnStats interface {\n\tisConnStats()\n\t// IsClient returns true if this ConnStats is from client side.\n\tIsClient() bool\n}\n\n// ConnBegin contains stats about connection establishment.\ntype ConnBegin struct {\n\t// Client is true if this ConnBegin is from client side.\n\tClient bool\n}\n\n// IsClient indicates if this is from client side.\nfunc (s *ConnBegin) IsClient() bool { return s.Client }\n\nfunc (s *ConnBegin) isConnStats() {}\n\n// ConnEnd contains stats about connection termination.\ntype ConnEnd struct {\n\t// Client is true if this ConnEnd is from client side.\n\tClient bool\n}\n\n// IsClient indicates if this is from client side.\nfunc (s *ConnEnd) IsClient() bool { return s.Client }\n\nfunc (s *ConnEnd) isConnStats() {}\n\n// SetTags attaches stats tagging data to the context, which will be sent in\n// the outgoing RPC with the header grpc-tags-bin.  Subsequent calls to\n// SetTags will overwrite the values from earlier calls.\n//\n// Deprecated: set the `grpc-tags-bin` header in the metadata instead.\nfunc SetTags(ctx context.Context, b []byte) context.Context {\n\treturn metadata.AppendToOutgoingContext(ctx, \"grpc-tags-bin\", string(b))\n}\n\n// Tags returns the tags from the context for the inbound RPC.\n//\n// Deprecated: obtain the `grpc-tags-bin` header from metadata instead.\nfunc Tags(ctx context.Context) []byte {\n\ttraceValues := metadata.ValueFromIncomingContext(ctx, \"grpc-tags-bin\")\n\tif len(traceValues) == 0 {\n\t\treturn nil\n\t}\n\treturn []byte(traceValues[len(traceValues)-1])\n}\n\n// SetTrace attaches stats tagging data to the context, which will be sent in\n// the outgoing RPC with the header grpc-trace-bin.  Subsequent calls to\n// SetTrace will overwrite the values from earlier calls.\n//\n// Deprecated: set the `grpc-trace-bin` header in the metadata instead.\nfunc SetTrace(ctx context.Context, b []byte) context.Context {\n\treturn metadata.AppendToOutgoingContext(ctx, \"grpc-trace-bin\", string(b))\n}\n\n// Trace returns the trace from the context for the inbound RPC.\n//\n// Deprecated: obtain the `grpc-trace-bin` header from metadata instead.\nfunc Trace(ctx context.Context) []byte {\n\ttraceValues := metadata.ValueFromIncomingContext(ctx, \"grpc-trace-bin\")\n\tif len(traceValues) == 0 {\n\t\treturn nil\n\t}\n\treturn []byte(traceValues[len(traceValues)-1])\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/status/status.go",
    "content": "/*\n *\n * Copyright 2017 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package status implements errors returned by gRPC.  These errors are\n// serialized and transmitted on the wire between server and client, and allow\n// for additional data to be transmitted via the Details field in the status\n// proto.  gRPC service handlers should return an error created by this\n// package, and gRPC clients should expect a corresponding error to be\n// returned from the RPC call.\n//\n// This package upholds the invariants that a non-nil error may not\n// contain an OK code, and an OK code must result in a nil error.\npackage status\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\tspb \"google.golang.org/genproto/googleapis/rpc/status\"\n\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/internal/status\"\n)\n\n// Status references google.golang.org/grpc/internal/status. It represents an\n// RPC status code, message, and details.  It is immutable and should be\n// created with New, Newf, or FromProto.\n// https://godoc.org/google.golang.org/grpc/internal/status\ntype Status = status.Status\n\n// New returns a Status representing c and msg.\nfunc New(c codes.Code, msg string) *Status {\n\treturn status.New(c, msg)\n}\n\n// Newf returns New(c, fmt.Sprintf(format, a...)).\nfunc Newf(c codes.Code, format string, a ...any) *Status {\n\treturn New(c, fmt.Sprintf(format, a...))\n}\n\n// Error returns an error representing c and msg.  If c is OK, returns nil.\nfunc Error(c codes.Code, msg string) error {\n\treturn New(c, msg).Err()\n}\n\n// Errorf returns Error(c, fmt.Sprintf(format, a...)).\nfunc Errorf(c codes.Code, format string, a ...any) error {\n\treturn Error(c, fmt.Sprintf(format, a...))\n}\n\n// ErrorProto returns an error representing s.  If s.Code is OK, returns nil.\nfunc ErrorProto(s *spb.Status) error {\n\treturn FromProto(s).Err()\n}\n\n// FromProto returns a Status representing s.\nfunc FromProto(s *spb.Status) *Status {\n\treturn status.FromProto(s)\n}\n\n// FromError returns a Status representation of err.\n//\n//   - If err was produced by this package or implements the method `GRPCStatus()\n//     *Status` and `GRPCStatus()` does not return nil, or if err wraps a type\n//     satisfying this, the Status from `GRPCStatus()` is returned.  For wrapped\n//     errors, the message returned contains the entire err.Error() text and not\n//     just the wrapped status. In that case, ok is true.\n//\n//   - If err is nil, a Status is returned with codes.OK and no message, and ok\n//     is true.\n//\n//   - If err implements the method `GRPCStatus() *Status` and `GRPCStatus()`\n//     returns nil (which maps to Codes.OK), or if err wraps a type\n//     satisfying this, a Status is returned with codes.Unknown and err's\n//     Error() message, and ok is false.\n//\n//   - Otherwise, err is an error not compatible with this package.  In this\n//     case, a Status is returned with codes.Unknown and err's Error() message,\n//     and ok is false.\nfunc FromError(err error) (s *Status, ok bool) {\n\tif err == nil {\n\t\treturn nil, true\n\t}\n\ttype grpcstatus interface{ GRPCStatus() *Status }\n\tif gs, ok := err.(grpcstatus); ok {\n\t\tgrpcStatus := gs.GRPCStatus()\n\t\tif grpcStatus == nil {\n\t\t\t// Error has status nil, which maps to codes.OK. There\n\t\t\t// is no sensible behavior for this, so we turn it into\n\t\t\t// an error with codes.Unknown and discard the existing\n\t\t\t// status.\n\t\t\treturn New(codes.Unknown, err.Error()), false\n\t\t}\n\t\treturn grpcStatus, true\n\t}\n\tvar gs grpcstatus\n\tif errors.As(err, &gs) {\n\t\tgrpcStatus := gs.GRPCStatus()\n\t\tif grpcStatus == nil {\n\t\t\t// Error wraps an error that has status nil, which maps\n\t\t\t// to codes.OK.  There is no sensible behavior for this,\n\t\t\t// so we turn it into an error with codes.Unknown and\n\t\t\t// discard the existing status.\n\t\t\treturn New(codes.Unknown, err.Error()), false\n\t\t}\n\t\tp := grpcStatus.Proto()\n\t\tp.Message = err.Error()\n\t\treturn status.FromProto(p), true\n\t}\n\treturn New(codes.Unknown, err.Error()), false\n}\n\n// Convert is a convenience function which removes the need to handle the\n// boolean return value from FromError.\nfunc Convert(err error) *Status {\n\ts, _ := FromError(err)\n\treturn s\n}\n\n// Code returns the Code of the error if it is a Status error or if it wraps a\n// Status error. If that is not the case, it returns codes.OK if err is nil, or\n// codes.Unknown otherwise.\nfunc Code(err error) codes.Code {\n\t// Don't use FromError to avoid allocation of OK status.\n\tif err == nil {\n\t\treturn codes.OK\n\t}\n\n\treturn Convert(err).Code()\n}\n\n// FromContextError converts a context error or wrapped context error into a\n// Status.  It returns a Status with codes.OK if err is nil, or a Status with\n// codes.Unknown if err is non-nil and not a context error.\nfunc FromContextError(err error) *Status {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tif errors.Is(err, context.DeadlineExceeded) {\n\t\treturn New(codes.DeadlineExceeded, err.Error())\n\t}\n\tif errors.Is(err, context.Canceled) {\n\t\treturn New(codes.Canceled, err.Error())\n\t}\n\treturn New(codes.Unknown, err.Error())\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/stream.go",
    "content": "/*\n *\n * Copyright 2014 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\trand \"math/rand/v2\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"google.golang.org/grpc/balancer\"\n\t\"google.golang.org/grpc/codes\"\n\t\"google.golang.org/grpc/encoding\"\n\t\"google.golang.org/grpc/internal\"\n\t\"google.golang.org/grpc/internal/balancerload\"\n\t\"google.golang.org/grpc/internal/binarylog\"\n\t\"google.golang.org/grpc/internal/channelz\"\n\t\"google.golang.org/grpc/internal/grpcutil\"\n\timetadata \"google.golang.org/grpc/internal/metadata\"\n\tiresolver \"google.golang.org/grpc/internal/resolver\"\n\t\"google.golang.org/grpc/internal/serviceconfig\"\n\tistatus \"google.golang.org/grpc/internal/status\"\n\t\"google.golang.org/grpc/internal/transport\"\n\t\"google.golang.org/grpc/mem\"\n\t\"google.golang.org/grpc/metadata\"\n\t\"google.golang.org/grpc/peer\"\n\t\"google.golang.org/grpc/stats\"\n\t\"google.golang.org/grpc/status\"\n)\n\nvar metadataFromOutgoingContextRaw = internal.FromOutgoingContextRaw.(func(context.Context) (metadata.MD, [][]string, bool))\n\n// StreamHandler defines the handler called by gRPC server to complete the\n// execution of a streaming RPC. srv is the service implementation on which the\n// RPC was invoked.\n//\n// If a StreamHandler returns an error, it should either be produced by the\n// status package, or be one of the context errors. Otherwise, gRPC will use\n// codes.Unknown as the status code and err.Error() as the status message of the\n// RPC.\ntype StreamHandler func(srv any, stream ServerStream) error\n\n// StreamDesc represents a streaming RPC service's method specification.  Used\n// on the server when registering services and on the client when initiating\n// new streams.\ntype StreamDesc struct {\n\t// StreamName and Handler are only used when registering handlers on a\n\t// server.\n\tStreamName string        // the name of the method excluding the service\n\tHandler    StreamHandler // the handler called for the method\n\n\t// ServerStreams and ClientStreams are used for registering handlers on a\n\t// server as well as defining RPC behavior when passed to NewClientStream\n\t// and ClientConn.NewStream.  At least one must be true.\n\tServerStreams bool // indicates the server can perform streaming sends\n\tClientStreams bool // indicates the client can perform streaming sends\n}\n\n// Stream defines the common interface a client or server stream has to satisfy.\n//\n// Deprecated: See ClientStream and ServerStream documentation instead.\ntype Stream interface {\n\t// Deprecated: See ClientStream and ServerStream documentation instead.\n\tContext() context.Context\n\t// Deprecated: See ClientStream and ServerStream documentation instead.\n\tSendMsg(m any) error\n\t// Deprecated: See ClientStream and ServerStream documentation instead.\n\tRecvMsg(m any) error\n}\n\n// ClientStream defines the client-side behavior of a streaming RPC.\n//\n// All errors returned from ClientStream methods are compatible with the\n// status package.\ntype ClientStream interface {\n\t// Header returns the header metadata received from the server if there\n\t// is any. It blocks if the metadata is not ready to read.  If the metadata\n\t// is nil and the error is also nil, then the stream was terminated without\n\t// headers, and the status can be discovered by calling RecvMsg.\n\tHeader() (metadata.MD, error)\n\t// Trailer returns the trailer metadata from the server, if there is any.\n\t// It must only be called after stream.CloseAndRecv has returned, or\n\t// stream.Recv has returned a non-nil error (including io.EOF).\n\tTrailer() metadata.MD\n\t// CloseSend closes the send direction of the stream. This method always\n\t// returns a nil error. The status of the stream may be discovered using\n\t// RecvMsg. It is also not safe to call CloseSend concurrently with SendMsg.\n\tCloseSend() error\n\t// Context returns the context for this stream.\n\t//\n\t// It should not be called until after Header or RecvMsg has returned. Once\n\t// called, subsequent client-side retries are disabled.\n\tContext() context.Context\n\t// SendMsg is generally called by generated code. On error, SendMsg aborts\n\t// the stream. If the error was generated by the client, the status is\n\t// returned directly; otherwise, io.EOF is returned and the status of\n\t// the stream may be discovered using RecvMsg. For unary or server-streaming\n\t// RPCs (StreamDesc.ClientStreams is false), a nil error is returned\n\t// unconditionally.\n\t//\n\t// SendMsg blocks until:\n\t//   - There is sufficient flow control to schedule m with the transport, or\n\t//   - The stream is done, or\n\t//   - The stream breaks.\n\t//\n\t// SendMsg does not wait until the message is received by the server. An\n\t// untimely stream closure may result in lost messages. To ensure delivery,\n\t// users should ensure the RPC completed successfully using RecvMsg.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not safe\n\t// to call SendMsg on the same stream in different goroutines. It is also\n\t// not safe to call CloseSend concurrently with SendMsg.\n\t//\n\t// It is not safe to modify the message after calling SendMsg. Tracing\n\t// libraries and stats handlers may use the message lazily.\n\tSendMsg(m any) error\n\t// RecvMsg blocks until it receives a message into m or the stream is\n\t// done. It returns io.EOF when the stream completes successfully. On\n\t// any other error, the stream is aborted and the error contains the RPC\n\t// status.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not\n\t// safe to call RecvMsg on the same stream in different goroutines.\n\tRecvMsg(m any) error\n}\n\n// NewStream creates a new Stream for the client side. This is typically\n// called by generated code. ctx is used for the lifetime of the stream.\n//\n// To ensure resources are not leaked due to the stream returned, one of the following\n// actions must be performed:\n//\n//  1. Call Close on the ClientConn.\n//  2. Cancel the context provided.\n//  3. Call RecvMsg until a non-nil error is returned. A protobuf-generated\n//     client-streaming RPC, for instance, might use the helper function\n//     CloseAndRecv (note that CloseSend does not Recv, therefore is not\n//     guaranteed to release all resources).\n//  4. Receive a non-nil, non-io.EOF error from Header or SendMsg.\n//\n// If none of the above happen, a goroutine and a context will be leaked, and grpc\n// will not call the optionally-configured stats handler with a stats.End message.\nfunc (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) {\n\t// allow interceptor to see all applicable call options, which means those\n\t// configured as defaults from dial option as well as per-call options\n\topts = combine(cc.dopts.callOptions, opts)\n\n\tif cc.dopts.streamInt != nil {\n\t\treturn cc.dopts.streamInt(ctx, desc, cc, method, newClientStream, opts...)\n\t}\n\treturn newClientStream(ctx, desc, cc, method, opts...)\n}\n\n// NewClientStream is a wrapper for ClientConn.NewStream.\nfunc NewClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) {\n\treturn cc.NewStream(ctx, desc, method, opts...)\n}\n\nvar emptyMethodConfig = serviceconfig.MethodConfig{}\n\n// endOfClientStream performs cleanup actions required for both successful and\n// failed streams. This includes incrementing channelz stats and invoking all\n// registered OnFinish call options.\nfunc endOfClientStream(cc *ClientConn, err error, opts ...CallOption) {\n\tif channelz.IsOn() {\n\t\tif err != nil {\n\t\t\tcc.incrCallsFailed()\n\t\t} else {\n\t\t\tcc.incrCallsSucceeded()\n\t\t}\n\t}\n\n\tfor _, o := range opts {\n\t\tif o, ok := o.(OnFinishCallOption); ok {\n\t\t\to.OnFinish(err)\n\t\t}\n\t}\n}\n\nfunc newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (_ ClientStream, err error) {\n\tif channelz.IsOn() {\n\t\tcc.incrCallsStarted()\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\t// Ensure cleanup when stream creation fails.\n\t\t\tendOfClientStream(cc, err, opts...)\n\t\t}\n\t}()\n\n\t// Start tracking the RPC for idleness purposes. This is where a stream is\n\t// created for both streaming and unary RPCs, and hence is a good place to\n\t// track active RPC count.\n\tcc.idlenessMgr.OnCallBegin()\n\n\t// Add a calloption, to decrement the active call count, that gets executed\n\t// when the RPC completes.\n\topts = append([]CallOption{OnFinish(func(error) { cc.idlenessMgr.OnCallEnd() })}, opts...)\n\n\tif md, added, ok := metadataFromOutgoingContextRaw(ctx); ok {\n\t\t// validate md\n\t\tif err := imetadata.Validate(md); err != nil {\n\t\t\treturn nil, status.Error(codes.Internal, err.Error())\n\t\t}\n\t\t// validate added\n\t\tfor _, kvs := range added {\n\t\t\tfor i := 0; i < len(kvs); i += 2 {\n\t\t\t\tif err := imetadata.ValidatePair(kvs[i], kvs[i+1]); err != nil {\n\t\t\t\t\treturn nil, status.Error(codes.Internal, err.Error())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Provide an opportunity for the first RPC to see the first service config\n\t// provided by the resolver.\n\tnameResolutionDelayed, err := cc.waitForResolvedAddrs(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmc := &emptyMethodConfig\n\tvar onCommit func()\n\tnewStream := func(ctx context.Context, done func()) (iresolver.ClientStream, error) {\n\t\treturn newClientStreamWithParams(ctx, desc, cc, method, mc, onCommit, done, nameResolutionDelayed, opts...)\n\t}\n\n\trpcInfo := iresolver.RPCInfo{Context: ctx, Method: method}\n\trpcConfig, err := cc.safeConfigSelector.SelectConfig(rpcInfo)\n\tif err != nil {\n\t\tif st, ok := status.FromError(err); ok {\n\t\t\t// Restrict the code to the list allowed by gRFC A54.\n\t\t\tif istatus.IsRestrictedControlPlaneCode(st) {\n\t\t\t\terr = status.Errorf(codes.Internal, \"config selector returned illegal status: %v\", err)\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, toRPCErr(err)\n\t}\n\n\tif rpcConfig != nil {\n\t\tif rpcConfig.Context != nil {\n\t\t\tctx = rpcConfig.Context\n\t\t}\n\t\tmc = &rpcConfig.MethodConfig\n\t\tonCommit = rpcConfig.OnCommitted\n\t\tif rpcConfig.Interceptor != nil {\n\t\t\trpcInfo.Context = nil\n\t\t\tns := newStream\n\t\t\tnewStream = func(ctx context.Context, done func()) (iresolver.ClientStream, error) {\n\t\t\t\tcs, err := rpcConfig.Interceptor.NewStream(ctx, rpcInfo, done, ns)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, toRPCErr(err)\n\t\t\t\t}\n\t\t\t\treturn cs, nil\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newStream(ctx, func() {})\n}\n\nfunc newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, mc *serviceconfig.MethodConfig, onCommit, doneFunc func(), nameResolutionDelayed bool, opts ...CallOption) (_ iresolver.ClientStream, err error) {\n\tcallInfo := defaultCallInfo()\n\tif mc.WaitForReady != nil {\n\t\tcallInfo.failFast = !*mc.WaitForReady\n\t}\n\n\t// Possible context leak:\n\t// The cancel function for the child context we create will only be called\n\t// when RecvMsg returns a non-nil error, if the ClientConn is closed, or if\n\t// an error is generated by SendMsg.\n\t// https://github.com/grpc/grpc-go/issues/1818.\n\tvar cancel context.CancelFunc\n\tif mc.Timeout != nil && *mc.Timeout >= 0 {\n\t\tctx, cancel = context.WithTimeout(ctx, *mc.Timeout)\n\t} else {\n\t\tctx, cancel = context.WithCancel(ctx)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tcancel()\n\t\t}\n\t}()\n\n\tfor _, o := range opts {\n\t\tif err := o.before(callInfo); err != nil {\n\t\t\treturn nil, toRPCErr(err)\n\t\t}\n\t}\n\tcallInfo.maxSendMessageSize = getMaxSize(mc.MaxReqSize, callInfo.maxSendMessageSize, defaultClientMaxSendMessageSize)\n\tcallInfo.maxReceiveMessageSize = getMaxSize(mc.MaxRespSize, callInfo.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize)\n\tif err := setCallInfoCodec(callInfo); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcallHdr := &transport.CallHdr{\n\t\tHost:           cc.authority,\n\t\tMethod:         method,\n\t\tContentSubtype: callInfo.contentSubtype,\n\t\tDoneFunc:       doneFunc,\n\t\tAuthority:      callInfo.authority,\n\t}\n\tif allowed := callInfo.acceptedResponseCompressors; len(allowed) > 0 {\n\t\theaderValue := strings.Join(allowed, \",\")\n\t\tcallHdr.AcceptedCompressors = &headerValue\n\t}\n\n\t// Set our outgoing compression according to the UseCompressor CallOption, if\n\t// set.  In that case, also find the compressor from the encoding package.\n\t// Otherwise, use the compressor configured by the WithCompressor DialOption,\n\t// if set.\n\tvar compressorV0 Compressor\n\tvar compressorV1 encoding.Compressor\n\tif ct := callInfo.compressorName; ct != \"\" {\n\t\tcallHdr.SendCompress = ct\n\t\tif ct != encoding.Identity {\n\t\t\tcompressorV1 = encoding.GetCompressor(ct)\n\t\t\tif compressorV1 == nil {\n\t\t\t\treturn nil, status.Errorf(codes.Internal, \"grpc: Compressor is not installed for requested grpc-encoding %q\", ct)\n\t\t\t}\n\t\t}\n\t} else if cc.dopts.compressorV0 != nil {\n\t\tcallHdr.SendCompress = cc.dopts.compressorV0.Type()\n\t\tcompressorV0 = cc.dopts.compressorV0\n\t}\n\tif callInfo.creds != nil {\n\t\tcallHdr.Creds = callInfo.creds\n\t}\n\n\tcs := &clientStream{\n\t\tcallHdr:             callHdr,\n\t\tctx:                 ctx,\n\t\tmethodConfig:        mc,\n\t\topts:                opts,\n\t\tcallInfo:            callInfo,\n\t\tcc:                  cc,\n\t\tdesc:                desc,\n\t\tcodec:               callInfo.codec,\n\t\tcompressorV0:        compressorV0,\n\t\tcompressorV1:        compressorV1,\n\t\tcancel:              cancel,\n\t\tfirstAttempt:        true,\n\t\tonCommit:            onCommit,\n\t\tnameResolutionDelay: nameResolutionDelayed,\n\t}\n\tif !cc.dopts.disableRetry {\n\t\tcs.retryThrottler = cc.retryThrottler.Load().(*retryThrottler)\n\t}\n\tif ml := binarylog.GetMethodLogger(method); ml != nil {\n\t\tcs.binlogs = append(cs.binlogs, ml)\n\t}\n\tif cc.dopts.binaryLogger != nil {\n\t\tif ml := cc.dopts.binaryLogger.GetMethodLogger(method); ml != nil {\n\t\t\tcs.binlogs = append(cs.binlogs, ml)\n\t\t}\n\t}\n\n\t// Pick the transport to use and create a new stream on the transport.\n\t// Assign cs.attempt upon success.\n\top := func(a *csAttempt) error {\n\t\tif err := a.getTransport(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := a.newStream(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Because this operation is always called either here (while creating\n\t\t// the clientStream) or by the retry code while locked when replaying\n\t\t// the operation, it is safe to access cs.attempt directly.\n\t\tcs.attempt = a\n\t\treturn nil\n\t}\n\tif err := cs.withRetry(op, func() { cs.bufferForRetryLocked(0, op, nil) }); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(cs.binlogs) != 0 {\n\t\tmd, _ := metadata.FromOutgoingContext(ctx)\n\t\tlogEntry := &binarylog.ClientHeader{\n\t\t\tOnClientSide: true,\n\t\t\tHeader:       md,\n\t\t\tMethodName:   method,\n\t\t\tAuthority:    cs.cc.authority,\n\t\t}\n\t\tif deadline, ok := ctx.Deadline(); ok {\n\t\t\tlogEntry.Timeout = time.Until(deadline)\n\t\t\tif logEntry.Timeout < 0 {\n\t\t\t\tlogEntry.Timeout = 0\n\t\t\t}\n\t\t}\n\t\tfor _, binlog := range cs.binlogs {\n\t\t\tbinlog.Log(cs.ctx, logEntry)\n\t\t}\n\t}\n\n\tif desc != unaryStreamDesc {\n\t\t// Listen on cc and stream contexts to cleanup when the user closes the\n\t\t// ClientConn or cancels the stream context.  In all other cases, an error\n\t\t// should already be injected into the recv buffer by the transport, which\n\t\t// the client will eventually receive, and then we will cancel the stream's\n\t\t// context in clientStream.finish.\n\t\tgo func() {\n\t\t\tselect {\n\t\t\tcase <-cc.ctx.Done():\n\t\t\t\tcs.finish(ErrClientConnClosing)\n\t\t\tcase <-ctx.Done():\n\t\t\t\tcs.finish(toRPCErr(ctx.Err()))\n\t\t\t}\n\t\t}()\n\t}\n\treturn cs, nil\n}\n\n// newAttemptLocked creates a new csAttempt without a transport or stream.\nfunc (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) {\n\tif err := cs.ctx.Err(); err != nil {\n\t\treturn nil, toRPCErr(err)\n\t}\n\tif err := cs.cc.ctx.Err(); err != nil {\n\t\treturn nil, ErrClientConnClosing\n\t}\n\n\tctx := newContextWithRPCInfo(cs.ctx, cs.callInfo.failFast, cs.callInfo.codec, cs.compressorV0, cs.compressorV1)\n\tmethod := cs.callHdr.Method\n\tvar beginTime time.Time\n\tsh := cs.cc.statsHandler\n\tif sh != nil {\n\t\tbeginTime = time.Now()\n\t\tctx = sh.TagRPC(ctx, &stats.RPCTagInfo{\n\t\t\tFullMethodName: method, FailFast: cs.callInfo.failFast,\n\t\t\tNameResolutionDelay: cs.nameResolutionDelay,\n\t\t})\n\t\tsh.HandleRPC(ctx, &stats.Begin{\n\t\t\tClient:                    true,\n\t\t\tBeginTime:                 beginTime,\n\t\t\tFailFast:                  cs.callInfo.failFast,\n\t\t\tIsClientStream:            cs.desc.ClientStreams,\n\t\t\tIsServerStream:            cs.desc.ServerStreams,\n\t\t\tIsTransparentRetryAttempt: isTransparent,\n\t\t})\n\t}\n\n\tvar trInfo *traceInfo\n\tif EnableTracing {\n\t\ttrInfo = &traceInfo{\n\t\t\ttr: newTrace(\"grpc.Sent.\"+methodFamily(method), method),\n\t\t\tfirstLine: firstLine{\n\t\t\t\tclient: true,\n\t\t\t},\n\t\t}\n\t\tif deadline, ok := ctx.Deadline(); ok {\n\t\t\ttrInfo.firstLine.deadline = time.Until(deadline)\n\t\t}\n\t\ttrInfo.tr.LazyLog(&trInfo.firstLine, false)\n\t\tctx = newTraceContext(ctx, trInfo.tr)\n\t}\n\n\tif cs.cc.parsedTarget.URL.Scheme == internal.GRPCResolverSchemeExtraMetadata {\n\t\t// Add extra metadata (metadata that will be added by transport) to context\n\t\t// so the balancer can see them.\n\t\tctx = grpcutil.WithExtraMetadata(ctx, metadata.Pairs(\n\t\t\t\"content-type\", grpcutil.ContentType(cs.callHdr.ContentSubtype),\n\t\t))\n\t}\n\n\treturn &csAttempt{\n\t\tctx:            ctx,\n\t\tbeginTime:      beginTime,\n\t\tcs:             cs,\n\t\tdecompressorV0: cs.cc.dopts.dc,\n\t\tstatsHandler:   sh,\n\t\ttrInfo:         trInfo,\n\t}, nil\n}\n\nfunc (a *csAttempt) getTransport() error {\n\tcs := a.cs\n\n\tpickInfo := balancer.PickInfo{Ctx: a.ctx, FullMethodName: cs.callHdr.Method}\n\tpick, err := cs.cc.pickerWrapper.pick(a.ctx, cs.callInfo.failFast, pickInfo)\n\ta.transport, a.pickResult = pick.transport, pick.result\n\tif err != nil {\n\t\tif de, ok := err.(dropError); ok {\n\t\t\terr = de.error\n\t\t\ta.drop = true\n\t\t}\n\t\treturn err\n\t}\n\tif a.trInfo != nil {\n\t\ta.trInfo.firstLine.SetRemoteAddr(a.transport.Peer().Addr)\n\t}\n\tif pick.blocked && a.statsHandler != nil {\n\t\ta.statsHandler.HandleRPC(a.ctx, &stats.DelayedPickComplete{})\n\t}\n\treturn nil\n}\n\nfunc (a *csAttempt) newStream() error {\n\tcs := a.cs\n\tcs.callHdr.PreviousAttempts = cs.numRetries\n\n\t// Merge metadata stored in PickResult, if any, with existing call metadata.\n\t// It is safe to overwrite the csAttempt's context here, since all state\n\t// maintained in it are local to the attempt. When the attempt has to be\n\t// retried, a new instance of csAttempt will be created.\n\tif a.pickResult.Metadata != nil {\n\t\t// We currently do not have a function it the metadata package which\n\t\t// merges given metadata with existing metadata in a context. Existing\n\t\t// function `AppendToOutgoingContext()` takes a variadic argument of key\n\t\t// value pairs.\n\t\t//\n\t\t// TODO: Make it possible to retrieve key value pairs from metadata.MD\n\t\t// in a form passable to AppendToOutgoingContext(), or create a version\n\t\t// of AppendToOutgoingContext() that accepts a metadata.MD.\n\t\tmd, _ := metadata.FromOutgoingContext(a.ctx)\n\t\tmd = metadata.Join(md, a.pickResult.Metadata)\n\t\ta.ctx = metadata.NewOutgoingContext(a.ctx, md)\n\n\t\t// If the `CallAuthority` CallOption is not set, check if the LB picker\n\t\t// has provided an authority override in the PickResult metadata and\n\t\t// apply it, as specified in gRFC A81.\n\t\tif cs.callInfo.authority == \"\" {\n\t\t\tif authMD := a.pickResult.Metadata.Get(\":authority\"); len(authMD) > 0 {\n\t\t\t\tcs.callHdr.Authority = authMD[0]\n\t\t\t}\n\t\t}\n\t}\n\ts, err := a.transport.NewStream(a.ctx, cs.callHdr, a.statsHandler)\n\tif err != nil {\n\t\tnse, ok := err.(*transport.NewStreamError)\n\t\tif !ok {\n\t\t\t// Unexpected.\n\t\t\treturn err\n\t\t}\n\n\t\tif nse.AllowTransparentRetry {\n\t\t\ta.allowTransparentRetry = true\n\t\t}\n\n\t\t// Unwrap and convert error.\n\t\treturn toRPCErr(nse.Err)\n\t}\n\ta.transportStream = s\n\ta.ctx = s.Context()\n\ta.parser = parser{r: s, bufferPool: a.cs.cc.dopts.copts.BufferPool}\n\treturn nil\n}\n\n// clientStream implements a client side Stream.\ntype clientStream struct {\n\tcallHdr  *transport.CallHdr\n\topts     []CallOption\n\tcallInfo *callInfo\n\tcc       *ClientConn\n\tdesc     *StreamDesc\n\n\tcodec        baseCodec\n\tcompressorV0 Compressor\n\tcompressorV1 encoding.Compressor\n\n\tcancel context.CancelFunc // cancels all attempts\n\n\tsentLast bool // sent an end stream\n\n\treceivedFirstMsg bool // set after the first message is received\n\n\tmethodConfig *MethodConfig\n\n\tctx context.Context // the application's context, wrapped by stats/tracing\n\n\tretryThrottler *retryThrottler // The throttler active when the RPC began.\n\n\tbinlogs []binarylog.MethodLogger\n\t// serverHeaderBinlogged is a boolean for whether server header has been\n\t// logged. Server header will be logged when the first time one of those\n\t// happens: stream.Header(), stream.Recv().\n\t//\n\t// It's only read and used by Recv() and Header(), so it doesn't need to be\n\t// synchronized.\n\tserverHeaderBinlogged bool\n\n\tmu                      sync.Mutex\n\tfirstAttempt            bool // if true, transparent retry is valid\n\tnumRetries              int  // exclusive of transparent retry attempt(s)\n\tnumRetriesSincePushback int  // retries since pushback; to reset backoff\n\tfinished                bool // TODO: replace with atomic cmpxchg or sync.Once?\n\t// attempt is the active client stream attempt.\n\t// The only place where it is written is the newAttemptLocked method and this method never writes nil.\n\t// So, attempt can be nil only inside newClientStream function when clientStream is first created.\n\t// One of the first things done after clientStream's creation, is to call newAttemptLocked which either\n\t// assigns a non nil value to the attempt or returns an error. If an error is returned from newAttemptLocked,\n\t// then newClientStream calls finish on the clientStream and returns. So, finish method is the only\n\t// place where we need to check if the attempt is nil.\n\tattempt *csAttempt\n\t// TODO(hedging): hedging will have multiple attempts simultaneously.\n\tcommitted        bool // active attempt committed for retry?\n\tonCommit         func()\n\treplayBuffer     []replayOp // operations to replay on retry\n\treplayBufferSize int        // current size of replayBuffer\n\t// nameResolutionDelay indicates if there was a delay in the name resolution.\n\t// This field is only valid on client side, it's always false on server side.\n\tnameResolutionDelay bool\n}\n\ntype replayOp struct {\n\top      func(a *csAttempt) error\n\tcleanup func()\n}\n\n// csAttempt implements a single transport stream attempt within a\n// clientStream.\ntype csAttempt struct {\n\tctx             context.Context\n\tcs              *clientStream\n\ttransport       transport.ClientTransport\n\ttransportStream *transport.ClientStream\n\tparser          parser\n\tpickResult      balancer.PickResult\n\n\tfinished        bool\n\tdecompressorV0  Decompressor\n\tdecompressorV1  encoding.Compressor\n\tdecompressorSet bool\n\n\tmu sync.Mutex // guards trInfo.tr\n\t// trInfo may be nil (if EnableTracing is false).\n\t// trInfo.tr is set when created (if EnableTracing is true),\n\t// and cleared when the finish method is called.\n\ttrInfo *traceInfo\n\n\tstatsHandler stats.Handler\n\tbeginTime    time.Time\n\n\t// set for newStream errors that may be transparently retried\n\tallowTransparentRetry bool\n\t// set for pick errors that are returned as a status\n\tdrop bool\n}\n\nfunc (cs *clientStream) commitAttemptLocked() {\n\tif !cs.committed && cs.onCommit != nil {\n\t\tcs.onCommit()\n\t}\n\tcs.committed = true\n\tfor _, op := range cs.replayBuffer {\n\t\tif op.cleanup != nil {\n\t\t\top.cleanup()\n\t\t}\n\t}\n\tcs.replayBuffer = nil\n}\n\nfunc (cs *clientStream) commitAttempt() {\n\tcs.mu.Lock()\n\tcs.commitAttemptLocked()\n\tcs.mu.Unlock()\n}\n\n// shouldRetry returns nil if the RPC should be retried; otherwise it returns\n// the error that should be returned by the operation.  If the RPC should be\n// retried, the bool indicates whether it is being retried transparently.\nfunc (a *csAttempt) shouldRetry(err error) (bool, error) {\n\tcs := a.cs\n\n\tif cs.finished || cs.committed || a.drop {\n\t\t// RPC is finished or committed or was dropped by the picker; cannot retry.\n\t\treturn false, err\n\t}\n\tif a.transportStream == nil && a.allowTransparentRetry {\n\t\treturn true, nil\n\t}\n\t// Wait for the trailers.\n\tunprocessed := false\n\tif a.transportStream != nil {\n\t\t<-a.transportStream.Done()\n\t\tunprocessed = a.transportStream.Unprocessed()\n\t}\n\tif cs.firstAttempt && unprocessed {\n\t\t// First attempt, stream unprocessed: transparently retry.\n\t\treturn true, nil\n\t}\n\tif cs.cc.dopts.disableRetry {\n\t\treturn false, err\n\t}\n\n\tpushback := 0\n\thasPushback := false\n\tif a.transportStream != nil {\n\t\tif !a.transportStream.TrailersOnly() {\n\t\t\treturn false, err\n\t\t}\n\n\t\t// TODO(retry): Move down if the spec changes to not check server pushback\n\t\t// before considering this a failure for throttling.\n\t\tsps := a.transportStream.Trailer()[\"grpc-retry-pushback-ms\"]\n\t\tif len(sps) == 1 {\n\t\t\tvar e error\n\t\t\tif pushback, e = strconv.Atoi(sps[0]); e != nil || pushback < 0 {\n\t\t\t\tchannelz.Infof(logger, cs.cc.channelz, \"Server retry pushback specified to abort (%q).\", sps[0])\n\t\t\t\tcs.retryThrottler.throttle() // This counts as a failure for throttling.\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t\thasPushback = true\n\t\t} else if len(sps) > 1 {\n\t\t\tchannelz.Warningf(logger, cs.cc.channelz, \"Server retry pushback specified multiple values (%q); not retrying.\", sps)\n\t\t\tcs.retryThrottler.throttle() // This counts as a failure for throttling.\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\tvar code codes.Code\n\tif a.transportStream != nil {\n\t\tcode = a.transportStream.Status().Code()\n\t} else {\n\t\tcode = status.Code(err)\n\t}\n\n\trp := cs.methodConfig.RetryPolicy\n\tif rp == nil || !rp.RetryableStatusCodes[code] {\n\t\treturn false, err\n\t}\n\n\t// Note: the ordering here is important; we count this as a failure\n\t// only if the code matched a retryable code.\n\tif cs.retryThrottler.throttle() {\n\t\treturn false, err\n\t}\n\tif cs.numRetries+1 >= rp.MaxAttempts {\n\t\treturn false, err\n\t}\n\n\tvar dur time.Duration\n\tif hasPushback {\n\t\tdur = time.Millisecond * time.Duration(pushback)\n\t\tcs.numRetriesSincePushback = 0\n\t} else {\n\t\tfact := math.Pow(rp.BackoffMultiplier, float64(cs.numRetriesSincePushback))\n\t\tcur := min(float64(rp.InitialBackoff)*fact, float64(rp.MaxBackoff))\n\t\t// Apply jitter by multiplying with a random factor between 0.8 and 1.2\n\t\tcur *= 0.8 + 0.4*rand.Float64()\n\t\tdur = time.Duration(int64(cur))\n\t\tcs.numRetriesSincePushback++\n\t}\n\n\t// TODO(dfawley): we could eagerly fail here if dur puts us past the\n\t// deadline, but unsure if it is worth doing.\n\tt := time.NewTimer(dur)\n\tselect {\n\tcase <-t.C:\n\t\tcs.numRetries++\n\t\treturn false, nil\n\tcase <-cs.ctx.Done():\n\t\tt.Stop()\n\t\treturn false, status.FromContextError(cs.ctx.Err()).Err()\n\t}\n}\n\n// Returns nil if a retry was performed and succeeded; error otherwise.\nfunc (cs *clientStream) retryLocked(attempt *csAttempt, lastErr error) error {\n\tfor {\n\t\tattempt.finish(toRPCErr(lastErr))\n\t\tisTransparent, err := attempt.shouldRetry(lastErr)\n\t\tif err != nil {\n\t\t\tcs.commitAttemptLocked()\n\t\t\treturn err\n\t\t}\n\t\tcs.firstAttempt = false\n\t\tattempt, err = cs.newAttemptLocked(isTransparent)\n\t\tif err != nil {\n\t\t\t// Only returns error if the clientconn is closed or the context of\n\t\t\t// the stream is canceled.\n\t\t\treturn err\n\t\t}\n\t\t// Note that the first op in replayBuffer always sets cs.attempt\n\t\t// if it is able to pick a transport and create a stream.\n\t\tif lastErr = cs.replayBufferLocked(attempt); lastErr == nil {\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\nfunc (cs *clientStream) Context() context.Context {\n\tcs.commitAttempt()\n\t// No need to lock before using attempt, since we know it is committed and\n\t// cannot change.\n\tif cs.attempt.transportStream != nil {\n\t\treturn cs.attempt.transportStream.Context()\n\t}\n\treturn cs.ctx\n}\n\nfunc (cs *clientStream) withRetry(op func(a *csAttempt) error, onSuccess func()) error {\n\tcs.mu.Lock()\n\tfor {\n\t\tif cs.committed {\n\t\t\tcs.mu.Unlock()\n\t\t\t// toRPCErr is used in case the error from the attempt comes from\n\t\t\t// NewClientStream, which intentionally doesn't return a status\n\t\t\t// error to allow for further inspection; all other errors should\n\t\t\t// already be status errors.\n\t\t\treturn toRPCErr(op(cs.attempt))\n\t\t}\n\t\tif len(cs.replayBuffer) == 0 {\n\t\t\t// For the first op, which controls creation of the stream and\n\t\t\t// assigns cs.attempt, we need to create a new attempt inline\n\t\t\t// before executing the first op.  On subsequent ops, the attempt\n\t\t\t// is created immediately before replaying the ops.\n\t\t\tvar err error\n\t\t\tif cs.attempt, err = cs.newAttemptLocked(false /* isTransparent */); err != nil {\n\t\t\t\tcs.mu.Unlock()\n\t\t\t\tcs.finish(err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\ta := cs.attempt\n\t\tcs.mu.Unlock()\n\t\terr := op(a)\n\t\tcs.mu.Lock()\n\t\tif a != cs.attempt {\n\t\t\t// We started another attempt already.\n\t\t\tcontinue\n\t\t}\n\t\tif err == io.EOF {\n\t\t\t<-a.transportStream.Done()\n\t\t}\n\t\tif err == nil || (err == io.EOF && a.transportStream.Status().Code() == codes.OK) {\n\t\t\tonSuccess()\n\t\t\tcs.mu.Unlock()\n\t\t\treturn err\n\t\t}\n\t\tif err := cs.retryLocked(a, err); err != nil {\n\t\t\tcs.mu.Unlock()\n\t\t\treturn err\n\t\t}\n\t}\n}\n\nfunc (cs *clientStream) Header() (metadata.MD, error) {\n\tvar m metadata.MD\n\terr := cs.withRetry(func(a *csAttempt) error {\n\t\tvar err error\n\t\tm, err = a.transportStream.Header()\n\t\treturn toRPCErr(err)\n\t}, cs.commitAttemptLocked)\n\n\tif m == nil && err == nil {\n\t\t// The stream ended with success.  Finish the clientStream.\n\t\terr = io.EOF\n\t}\n\n\tif err != nil {\n\t\tcs.finish(err)\n\t\t// Do not return the error.  The user should get it by calling Recv().\n\t\treturn nil, nil\n\t}\n\n\tif len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged && m != nil {\n\t\t// Only log if binary log is on and header has not been logged, and\n\t\t// there is actually headers to log.\n\t\tlogEntry := &binarylog.ServerHeader{\n\t\t\tOnClientSide: true,\n\t\t\tHeader:       m,\n\t\t\tPeerAddr:     nil,\n\t\t}\n\t\tif peer, ok := peer.FromContext(cs.Context()); ok {\n\t\t\tlogEntry.PeerAddr = peer.Addr\n\t\t}\n\t\tcs.serverHeaderBinlogged = true\n\t\tfor _, binlog := range cs.binlogs {\n\t\t\tbinlog.Log(cs.ctx, logEntry)\n\t\t}\n\t}\n\n\treturn m, nil\n}\n\nfunc (cs *clientStream) Trailer() metadata.MD {\n\t// On RPC failure, we never need to retry, because usage requires that\n\t// RecvMsg() returned a non-nil error before calling this function is valid.\n\t// We would have retried earlier if necessary.\n\t//\n\t// Commit the attempt anyway, just in case users are not following those\n\t// directions -- it will prevent races and should not meaningfully impact\n\t// performance.\n\tcs.commitAttempt()\n\tif cs.attempt.transportStream == nil {\n\t\treturn nil\n\t}\n\treturn cs.attempt.transportStream.Trailer()\n}\n\nfunc (cs *clientStream) replayBufferLocked(attempt *csAttempt) error {\n\tfor _, f := range cs.replayBuffer {\n\t\tif err := f.op(attempt); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (cs *clientStream) bufferForRetryLocked(sz int, op func(a *csAttempt) error, cleanup func()) {\n\t// Note: we still will buffer if retry is disabled (for transparent retries).\n\tif cs.committed {\n\t\treturn\n\t}\n\tcs.replayBufferSize += sz\n\tif cs.replayBufferSize > cs.callInfo.maxRetryRPCBufferSize {\n\t\tcs.commitAttemptLocked()\n\t\tcleanup()\n\t\treturn\n\t}\n\tcs.replayBuffer = append(cs.replayBuffer, replayOp{op: op, cleanup: cleanup})\n}\n\nfunc (cs *clientStream) SendMsg(m any) (err error) {\n\tdefer func() {\n\t\tif err != nil && err != io.EOF {\n\t\t\t// Call finish on the client stream for errors generated by this SendMsg\n\t\t\t// call, as these indicate problems created by this client.  (Transport\n\t\t\t// errors are converted to an io.EOF error in csAttempt.sendMsg; the real\n\t\t\t// error will be returned from RecvMsg eventually in that case, or be\n\t\t\t// retried.)\n\t\t\tcs.finish(err)\n\t\t}\n\t}()\n\tif cs.sentLast {\n\t\treturn status.Errorf(codes.Internal, \"SendMsg called after CloseSend\")\n\t}\n\tif !cs.desc.ClientStreams {\n\t\tcs.sentLast = true\n\t}\n\n\t// load hdr, payload, data\n\thdr, data, payload, pf, err := prepareMsg(m, cs.codec, cs.compressorV0, cs.compressorV1, cs.cc.dopts.copts.BufferPool)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer func() {\n\t\tdata.Free()\n\t\t// only free payload if compression was made, and therefore it is a different set\n\t\t// of buffers from data.\n\t\tif pf.isCompressed() {\n\t\t\tpayload.Free()\n\t\t}\n\t}()\n\n\tdataLen := data.Len()\n\tpayloadLen := payload.Len()\n\t// TODO(dfawley): should we be checking len(data) instead?\n\tif payloadLen > *cs.callInfo.maxSendMessageSize {\n\t\treturn status.Errorf(codes.ResourceExhausted, \"trying to send message larger than max (%d vs. %d)\", payloadLen, *cs.callInfo.maxSendMessageSize)\n\t}\n\n\t// always take an extra ref in case data == payload (i.e. when the data isn't\n\t// compressed). The original ref will always be freed by the deferred free above.\n\tpayload.Ref()\n\top := func(a *csAttempt) error {\n\t\treturn a.sendMsg(m, hdr, payload, dataLen, payloadLen)\n\t}\n\n\t// onSuccess is invoked when the op is captured for a subsequent retry. If the\n\t// stream was established by a previous message and therefore retries are\n\t// disabled, onSuccess will not be invoked, and payloadRef can be freed\n\t// immediately.\n\tonSuccessCalled := false\n\terr = cs.withRetry(op, func() {\n\t\tcs.bufferForRetryLocked(len(hdr)+payloadLen, op, payload.Free)\n\t\tonSuccessCalled = true\n\t})\n\tif !onSuccessCalled {\n\t\tpayload.Free()\n\t}\n\tif len(cs.binlogs) != 0 && err == nil {\n\t\tcm := &binarylog.ClientMessage{\n\t\t\tOnClientSide: true,\n\t\t\tMessage:      data.Materialize(),\n\t\t}\n\t\tfor _, binlog := range cs.binlogs {\n\t\t\tbinlog.Log(cs.ctx, cm)\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (cs *clientStream) RecvMsg(m any) error {\n\tif len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged {\n\t\t// Call Header() to binary log header if it's not already logged.\n\t\tcs.Header()\n\t}\n\tvar recvInfo *payloadInfo\n\tif len(cs.binlogs) != 0 {\n\t\trecvInfo = &payloadInfo{}\n\t\tdefer recvInfo.free()\n\t}\n\terr := cs.withRetry(func(a *csAttempt) error {\n\t\treturn a.recvMsg(m, recvInfo)\n\t}, cs.commitAttemptLocked)\n\tif len(cs.binlogs) != 0 && err == nil {\n\t\tsm := &binarylog.ServerMessage{\n\t\t\tOnClientSide: true,\n\t\t\tMessage:      recvInfo.uncompressedBytes.Materialize(),\n\t\t}\n\t\tfor _, binlog := range cs.binlogs {\n\t\t\tbinlog.Log(cs.ctx, sm)\n\t\t}\n\t}\n\tif err != nil || !cs.desc.ServerStreams {\n\t\t// err != nil or non-server-streaming indicates end of stream.\n\t\tcs.finish(err)\n\t}\n\treturn err\n}\n\nfunc (cs *clientStream) CloseSend() error {\n\tif cs.sentLast {\n\t\t// Return a nil error on repeated calls to this method.\n\t\treturn nil\n\t}\n\tcs.sentLast = true\n\top := func(a *csAttempt) error {\n\t\ta.transportStream.Write(nil, nil, &transport.WriteOptions{Last: true})\n\t\t// Always return nil; io.EOF is the only error that might make sense\n\t\t// instead, but there is no need to signal the client to call RecvMsg\n\t\t// as the only use left for the stream after CloseSend is to call\n\t\t// RecvMsg.  This also matches historical behavior.\n\t\treturn nil\n\t}\n\tcs.withRetry(op, func() { cs.bufferForRetryLocked(0, op, nil) })\n\tif len(cs.binlogs) != 0 {\n\t\tchc := &binarylog.ClientHalfClose{\n\t\t\tOnClientSide: true,\n\t\t}\n\t\tfor _, binlog := range cs.binlogs {\n\t\t\tbinlog.Log(cs.ctx, chc)\n\t\t}\n\t}\n\t// We don't return an error here as we expect users to read all messages\n\t// from the stream and get the RPC status from RecvMsg().  Note that\n\t// SendMsg() must return an error when one occurs so the application\n\t// knows to stop sending messages, but that does not apply here.\n\treturn nil\n}\n\nfunc (cs *clientStream) finish(err error) {\n\tif err == io.EOF {\n\t\t// Ending a stream with EOF indicates a success.\n\t\terr = nil\n\t}\n\tcs.mu.Lock()\n\tif cs.finished {\n\t\tcs.mu.Unlock()\n\t\treturn\n\t}\n\tcs.finished = true\n\tcs.commitAttemptLocked()\n\tif cs.attempt != nil {\n\t\tcs.attempt.finish(err)\n\t\t// after functions all rely upon having a stream.\n\t\tif cs.attempt.transportStream != nil {\n\t\t\tfor _, o := range cs.opts {\n\t\t\t\to.after(cs.callInfo, cs.attempt)\n\t\t\t}\n\t\t}\n\t}\n\n\tcs.mu.Unlock()\n\t// Only one of cancel or trailer needs to be logged.\n\tif len(cs.binlogs) != 0 {\n\t\tswitch err {\n\t\tcase errContextCanceled, errContextDeadline, ErrClientConnClosing:\n\t\t\tc := &binarylog.Cancel{\n\t\t\t\tOnClientSide: true,\n\t\t\t}\n\t\t\tfor _, binlog := range cs.binlogs {\n\t\t\t\tbinlog.Log(cs.ctx, c)\n\t\t\t}\n\t\tdefault:\n\t\t\tlogEntry := &binarylog.ServerTrailer{\n\t\t\t\tOnClientSide: true,\n\t\t\t\tTrailer:      cs.Trailer(),\n\t\t\t\tErr:          err,\n\t\t\t}\n\t\t\tif peer, ok := peer.FromContext(cs.Context()); ok {\n\t\t\t\tlogEntry.PeerAddr = peer.Addr\n\t\t\t}\n\t\t\tfor _, binlog := range cs.binlogs {\n\t\t\t\tbinlog.Log(cs.ctx, logEntry)\n\t\t\t}\n\t\t}\n\t}\n\tif err == nil {\n\t\tcs.retryThrottler.successfulRPC()\n\t}\n\tendOfClientStream(cs.cc, err, cs.opts...)\n\tcs.cancel()\n}\n\nfunc (a *csAttempt) sendMsg(m any, hdr []byte, payld mem.BufferSlice, dataLength, payloadLength int) error {\n\tcs := a.cs\n\tif a.trInfo != nil {\n\t\ta.mu.Lock()\n\t\tif a.trInfo.tr != nil {\n\t\t\ta.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true)\n\t\t}\n\t\ta.mu.Unlock()\n\t}\n\tif err := a.transportStream.Write(hdr, payld, &transport.WriteOptions{Last: !cs.desc.ClientStreams}); err != nil {\n\t\tif !cs.desc.ClientStreams {\n\t\t\t// For non-client-streaming RPCs, we return nil instead of EOF on error\n\t\t\t// because the generated code requires it.  finish is not called; RecvMsg()\n\t\t\t// will call it with the stream's status independently.\n\t\t\treturn nil\n\t\t}\n\t\treturn io.EOF\n\t}\n\tif a.statsHandler != nil {\n\t\ta.statsHandler.HandleRPC(a.ctx, outPayload(true, m, dataLength, payloadLength, time.Now()))\n\t}\n\treturn nil\n}\n\nfunc (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) {\n\tcs := a.cs\n\tif a.statsHandler != nil && payInfo == nil {\n\t\tpayInfo = &payloadInfo{}\n\t\tdefer payInfo.free()\n\t}\n\n\tif !a.decompressorSet {\n\t\t// Block until we receive headers containing received message encoding.\n\t\tif ct := a.transportStream.RecvCompress(); ct != \"\" && ct != encoding.Identity {\n\t\t\tif a.decompressorV0 == nil || a.decompressorV0.Type() != ct {\n\t\t\t\t// No configured decompressor, or it does not match the incoming\n\t\t\t\t// message encoding; attempt to find a registered compressor that does.\n\t\t\t\ta.decompressorV0 = nil\n\t\t\t\ta.decompressorV1 = encoding.GetCompressor(ct)\n\t\t\t}\n\t\t\t// Validate that the compression method is acceptable for this call.\n\t\t\tif !acceptedCompressorAllows(cs.callInfo.acceptedResponseCompressors, ct) {\n\t\t\t\treturn status.Errorf(codes.Internal, \"grpc: peer compressed the response with %q which is not allowed by AcceptCompressors\", ct)\n\t\t\t}\n\t\t} else {\n\t\t\t// No compression is used; disable our decompressor.\n\t\t\ta.decompressorV0 = nil\n\t\t}\n\t\t// Only initialize this state once per stream.\n\t\ta.decompressorSet = true\n\t}\n\tif err := recv(&a.parser, cs.codec, a.transportStream, a.decompressorV0, m, *cs.callInfo.maxReceiveMessageSize, payInfo, a.decompressorV1, false); err != nil {\n\t\tif err == io.EOF {\n\t\t\tif statusErr := a.transportStream.Status().Err(); statusErr != nil {\n\t\t\t\treturn statusErr\n\t\t\t}\n\t\t\t// Received no msg and status OK for non-server streaming rpcs.\n\t\t\tif !cs.desc.ServerStreams && !cs.receivedFirstMsg {\n\t\t\t\treturn status.Error(codes.Internal, \"cardinality violation: received no response message from non-server-streaming RPC\")\n\t\t\t}\n\t\t\treturn io.EOF // indicates successful end of stream.\n\t\t}\n\n\t\treturn toRPCErr(err)\n\t}\n\tcs.receivedFirstMsg = true\n\tif a.trInfo != nil {\n\t\ta.mu.Lock()\n\t\tif a.trInfo.tr != nil {\n\t\t\ta.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true)\n\t\t}\n\t\ta.mu.Unlock()\n\t}\n\tif a.statsHandler != nil {\n\t\ta.statsHandler.HandleRPC(a.ctx, &stats.InPayload{\n\t\t\tClient:           true,\n\t\t\tRecvTime:         time.Now(),\n\t\t\tPayload:          m,\n\t\t\tWireLength:       payInfo.compressedLength + headerLen,\n\t\t\tCompressedLength: payInfo.compressedLength,\n\t\t\tLength:           payInfo.uncompressedBytes.Len(),\n\t\t})\n\t}\n\tif cs.desc.ServerStreams {\n\t\t// Subsequent messages should be received by subsequent RecvMsg calls.\n\t\treturn nil\n\t}\n\t// Special handling for non-server-stream rpcs.\n\t// This recv expects EOF or errors, so we don't collect inPayload.\n\tif err := recv(&a.parser, cs.codec, a.transportStream, a.decompressorV0, m, *cs.callInfo.maxReceiveMessageSize, nil, a.decompressorV1, false); err == io.EOF {\n\t\treturn a.transportStream.Status().Err() // non-server streaming Recv returns nil on success\n\t} else if err != nil {\n\t\treturn toRPCErr(err)\n\t}\n\treturn status.Error(codes.Internal, \"cardinality violation: expected <EOF> for non server-streaming RPCs, but received another message\")\n}\n\nfunc (a *csAttempt) finish(err error) {\n\ta.mu.Lock()\n\tif a.finished {\n\t\ta.mu.Unlock()\n\t\treturn\n\t}\n\ta.finished = true\n\tif err == io.EOF {\n\t\t// Ending a stream with EOF indicates a success.\n\t\terr = nil\n\t}\n\tvar tr metadata.MD\n\tif a.transportStream != nil {\n\t\ta.transportStream.Close(err)\n\t\ttr = a.transportStream.Trailer()\n\t}\n\n\tif a.pickResult.Done != nil {\n\t\tbr := false\n\t\tif a.transportStream != nil {\n\t\t\tbr = a.transportStream.BytesReceived()\n\t\t}\n\t\ta.pickResult.Done(balancer.DoneInfo{\n\t\t\tErr:           err,\n\t\t\tTrailer:       tr,\n\t\t\tBytesSent:     a.transportStream != nil,\n\t\t\tBytesReceived: br,\n\t\t\tServerLoad:    balancerload.Parse(tr),\n\t\t})\n\t}\n\tif a.statsHandler != nil {\n\t\ta.statsHandler.HandleRPC(a.ctx, &stats.End{\n\t\t\tClient:    true,\n\t\t\tBeginTime: a.beginTime,\n\t\t\tEndTime:   time.Now(),\n\t\t\tTrailer:   tr,\n\t\t\tError:     err,\n\t\t})\n\t}\n\tif a.trInfo != nil && a.trInfo.tr != nil {\n\t\tif err == nil {\n\t\t\ta.trInfo.tr.LazyPrintf(\"RPC: [OK]\")\n\t\t} else {\n\t\t\ta.trInfo.tr.LazyPrintf(\"RPC: [%v]\", err)\n\t\t\ta.trInfo.tr.SetError()\n\t\t}\n\t\ta.trInfo.tr.Finish()\n\t\ta.trInfo.tr = nil\n\t}\n\ta.mu.Unlock()\n}\n\n// newNonRetryClientStream creates a ClientStream with the specified transport, on the\n// given addrConn.\n//\n// It's expected that the given transport is either the same one in addrConn, or\n// is already closed. To avoid race, transport is specified separately, instead\n// of using ac.transport.\n//\n// Main difference between this and ClientConn.NewStream:\n// - no retry\n// - no service config (or wait for service config)\n// - no tracing or stats\nfunc newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method string, t transport.ClientTransport, ac *addrConn, opts ...CallOption) (_ ClientStream, err error) {\n\tif t == nil {\n\t\t// TODO: return RPC error here?\n\t\treturn nil, errors.New(\"transport provided is nil\")\n\t}\n\t// defaultCallInfo contains unnecessary info(i.e. failfast, maxRetryRPCBufferSize), so we just initialize an empty struct.\n\tc := &callInfo{}\n\n\t// Possible context leak:\n\t// The cancel function for the child context we create will only be called\n\t// when RecvMsg returns a non-nil error, if the ClientConn is closed, or if\n\t// an error is generated by SendMsg.\n\t// https://github.com/grpc/grpc-go/issues/1818.\n\tctx, cancel := context.WithCancel(ctx)\n\tdefer func() {\n\t\tif err != nil {\n\t\t\tcancel()\n\t\t}\n\t}()\n\n\tfor _, o := range opts {\n\t\tif err := o.before(c); err != nil {\n\t\t\treturn nil, toRPCErr(err)\n\t\t}\n\t}\n\tc.maxReceiveMessageSize = getMaxSize(nil, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize)\n\tc.maxSendMessageSize = getMaxSize(nil, c.maxSendMessageSize, defaultServerMaxSendMessageSize)\n\tif err := setCallInfoCodec(c); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcallHdr := &transport.CallHdr{\n\t\tHost:           ac.cc.authority,\n\t\tMethod:         method,\n\t\tContentSubtype: c.contentSubtype,\n\t}\n\n\t// Set our outgoing compression according to the UseCompressor CallOption, if\n\t// set.  In that case, also find the compressor from the encoding package.\n\t// Otherwise, use the compressor configured by the WithCompressor DialOption,\n\t// if set.\n\tvar cp Compressor\n\tvar comp encoding.Compressor\n\tif ct := c.compressorName; ct != \"\" {\n\t\tcallHdr.SendCompress = ct\n\t\tif ct != encoding.Identity {\n\t\t\tcomp = encoding.GetCompressor(ct)\n\t\t\tif comp == nil {\n\t\t\t\treturn nil, status.Errorf(codes.Internal, \"grpc: Compressor is not installed for requested grpc-encoding %q\", ct)\n\t\t\t}\n\t\t}\n\t} else if ac.cc.dopts.compressorV0 != nil {\n\t\tcallHdr.SendCompress = ac.cc.dopts.compressorV0.Type()\n\t\tcp = ac.cc.dopts.compressorV0\n\t}\n\tif c.creds != nil {\n\t\tcallHdr.Creds = c.creds\n\t}\n\n\t// Use a special addrConnStream to avoid retry.\n\tas := &addrConnStream{\n\t\tcallHdr:          callHdr,\n\t\tac:               ac,\n\t\tctx:              ctx,\n\t\tcancel:           cancel,\n\t\topts:             opts,\n\t\tcallInfo:         c,\n\t\tdesc:             desc,\n\t\tcodec:            c.codec,\n\t\tsendCompressorV0: cp,\n\t\tsendCompressorV1: comp,\n\t\tdecompressorV0:   ac.cc.dopts.dc,\n\t\ttransport:        t,\n\t}\n\n\t// nil stats handler: internal streams like health and ORCA do not support telemetry.\n\ts, err := as.transport.NewStream(as.ctx, as.callHdr, nil)\n\tif err != nil {\n\t\terr = toRPCErr(err)\n\t\treturn nil, err\n\t}\n\tas.transportStream = s\n\tas.parser = parser{r: s, bufferPool: ac.dopts.copts.BufferPool}\n\tac.incrCallsStarted()\n\tif desc != unaryStreamDesc {\n\t\t// Listen on stream context to cleanup when the stream context is\n\t\t// canceled.  Also listen for the addrConn's context in case the\n\t\t// addrConn is closed or reconnects to a different address.  In all\n\t\t// other cases, an error should already be injected into the recv\n\t\t// buffer by the transport, which the client will eventually receive,\n\t\t// and then we will cancel the stream's context in\n\t\t// addrConnStream.finish.\n\t\tgo func() {\n\t\t\tac.mu.Lock()\n\t\t\tacCtx := ac.ctx\n\t\t\tac.mu.Unlock()\n\t\t\tselect {\n\t\t\tcase <-acCtx.Done():\n\t\t\t\tas.finish(status.Error(codes.Canceled, \"grpc: the SubConn is closing\"))\n\t\t\tcase <-ctx.Done():\n\t\t\t\tas.finish(toRPCErr(ctx.Err()))\n\t\t\t}\n\t\t}()\n\t}\n\treturn as, nil\n}\n\ntype addrConnStream struct {\n\ttransportStream  *transport.ClientStream\n\tac               *addrConn\n\tcallHdr          *transport.CallHdr\n\tcancel           context.CancelFunc\n\topts             []CallOption\n\tcallInfo         *callInfo\n\ttransport        transport.ClientTransport\n\tctx              context.Context\n\tsentLast         bool\n\treceivedFirstMsg bool\n\tdesc             *StreamDesc\n\tcodec            baseCodec\n\tsendCompressorV0 Compressor\n\tsendCompressorV1 encoding.Compressor\n\tdecompressorSet  bool\n\tdecompressorV0   Decompressor\n\tdecompressorV1   encoding.Compressor\n\tparser           parser\n\n\t// mu guards finished and is held for the entire finish method.\n\tmu       sync.Mutex\n\tfinished bool\n}\n\nfunc (as *addrConnStream) Header() (metadata.MD, error) {\n\tm, err := as.transportStream.Header()\n\tif err != nil {\n\t\tas.finish(toRPCErr(err))\n\t}\n\treturn m, err\n}\n\nfunc (as *addrConnStream) Trailer() metadata.MD {\n\treturn as.transportStream.Trailer()\n}\n\nfunc (as *addrConnStream) CloseSend() error {\n\tif as.sentLast {\n\t\t// Return a nil error on repeated calls to this method.\n\t\treturn nil\n\t}\n\tas.sentLast = true\n\n\tas.transportStream.Write(nil, nil, &transport.WriteOptions{Last: true})\n\t// Always return nil; io.EOF is the only error that might make sense\n\t// instead, but there is no need to signal the client to call RecvMsg\n\t// as the only use left for the stream after CloseSend is to call\n\t// RecvMsg.  This also matches historical behavior.\n\treturn nil\n}\n\nfunc (as *addrConnStream) Context() context.Context {\n\treturn as.transportStream.Context()\n}\n\nfunc (as *addrConnStream) SendMsg(m any) (err error) {\n\tdefer func() {\n\t\tif err != nil && err != io.EOF {\n\t\t\t// Call finish on the client stream for errors generated by this SendMsg\n\t\t\t// call, as these indicate problems created by this client.  (Transport\n\t\t\t// errors are converted to an io.EOF error in csAttempt.sendMsg; the real\n\t\t\t// error will be returned from RecvMsg eventually in that case, or be\n\t\t\t// retried.)\n\t\t\tas.finish(err)\n\t\t}\n\t}()\n\tif as.sentLast {\n\t\treturn status.Errorf(codes.Internal, \"SendMsg called after CloseSend\")\n\t}\n\tif !as.desc.ClientStreams {\n\t\tas.sentLast = true\n\t}\n\n\t// load hdr, payload, data\n\thdr, data, payload, pf, err := prepareMsg(m, as.codec, as.sendCompressorV0, as.sendCompressorV1, as.ac.dopts.copts.BufferPool)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer func() {\n\t\tdata.Free()\n\t\t// only free payload if compression was made, and therefore it is a different set\n\t\t// of buffers from data.\n\t\tif pf.isCompressed() {\n\t\t\tpayload.Free()\n\t\t}\n\t}()\n\n\t// TODO(dfawley): should we be checking len(data) instead?\n\tif payload.Len() > *as.callInfo.maxSendMessageSize {\n\t\treturn status.Errorf(codes.ResourceExhausted, \"trying to send message larger than max (%d vs. %d)\", payload.Len(), *as.callInfo.maxSendMessageSize)\n\t}\n\n\tif err := as.transportStream.Write(hdr, payload, &transport.WriteOptions{Last: !as.desc.ClientStreams}); err != nil {\n\t\tif !as.desc.ClientStreams {\n\t\t\t// For non-client-streaming RPCs, we return nil instead of EOF on error\n\t\t\t// because the generated code requires it.  finish is not called; RecvMsg()\n\t\t\t// will call it with the stream's status independently.\n\t\t\treturn nil\n\t\t}\n\t\treturn io.EOF\n\t}\n\n\treturn nil\n}\n\nfunc (as *addrConnStream) RecvMsg(m any) (err error) {\n\tdefer func() {\n\t\tif err != nil || !as.desc.ServerStreams {\n\t\t\t// err != nil or non-server-streaming indicates end of stream.\n\t\t\tas.finish(err)\n\t\t}\n\t}()\n\n\tif !as.decompressorSet {\n\t\t// Block until we receive headers containing received message encoding.\n\t\tif ct := as.transportStream.RecvCompress(); ct != \"\" && ct != encoding.Identity {\n\t\t\tif as.decompressorV0 == nil || as.decompressorV0.Type() != ct {\n\t\t\t\t// No configured decompressor, or it does not match the incoming\n\t\t\t\t// message encoding; attempt to find a registered compressor that does.\n\t\t\t\tas.decompressorV0 = nil\n\t\t\t\tas.decompressorV1 = encoding.GetCompressor(ct)\n\t\t\t}\n\t\t\t// Validate that the compression method is acceptable for this call.\n\t\t\tif !acceptedCompressorAllows(as.callInfo.acceptedResponseCompressors, ct) {\n\t\t\t\treturn status.Errorf(codes.Internal, \"grpc: peer compressed the response with %q which is not allowed by AcceptCompressors\", ct)\n\t\t\t}\n\t\t} else {\n\t\t\t// No compression is used; disable our decompressor.\n\t\t\tas.decompressorV0 = nil\n\t\t}\n\t\t// Only initialize this state once per stream.\n\t\tas.decompressorSet = true\n\t}\n\tif err := recv(&as.parser, as.codec, as.transportStream, as.decompressorV0, m, *as.callInfo.maxReceiveMessageSize, nil, as.decompressorV1, false); err != nil {\n\t\tif err == io.EOF {\n\t\t\tif statusErr := as.transportStream.Status().Err(); statusErr != nil {\n\t\t\t\treturn statusErr\n\t\t\t}\n\t\t\t// Received no msg and status OK for non-server streaming rpcs.\n\t\t\tif !as.desc.ServerStreams && !as.receivedFirstMsg {\n\t\t\t\treturn status.Error(codes.Internal, \"cardinality violation: received no response message from non-server-streaming RPC\")\n\t\t\t}\n\t\t\treturn io.EOF // indicates successful end of stream.\n\t\t}\n\t\treturn toRPCErr(err)\n\t}\n\tas.receivedFirstMsg = true\n\n\tif as.desc.ServerStreams {\n\t\t// Subsequent messages should be received by subsequent RecvMsg calls.\n\t\treturn nil\n\t}\n\n\t// Special handling for non-server-stream rpcs.\n\t// This recv expects EOF or errors, so we don't collect inPayload.\n\tif err := recv(&as.parser, as.codec, as.transportStream, as.decompressorV0, m, *as.callInfo.maxReceiveMessageSize, nil, as.decompressorV1, false); err == io.EOF {\n\t\treturn as.transportStream.Status().Err() // non-server streaming Recv returns nil on success\n\t} else if err != nil {\n\t\treturn toRPCErr(err)\n\t}\n\treturn status.Error(codes.Internal, \"cardinality violation: expected <EOF> for non server-streaming RPCs, but received another message\")\n}\n\nfunc (as *addrConnStream) finish(err error) {\n\tas.mu.Lock()\n\tif as.finished {\n\t\tas.mu.Unlock()\n\t\treturn\n\t}\n\tas.finished = true\n\tif err == io.EOF {\n\t\t// Ending a stream with EOF indicates a success.\n\t\terr = nil\n\t}\n\tif as.transportStream != nil {\n\t\tas.transportStream.Close(err)\n\t}\n\n\tif err != nil {\n\t\tas.ac.incrCallsFailed()\n\t} else {\n\t\tas.ac.incrCallsSucceeded()\n\t}\n\tas.cancel()\n\tas.mu.Unlock()\n}\n\n// ServerStream defines the server-side behavior of a streaming RPC.\n//\n// Errors returned from ServerStream methods are compatible with the status\n// package.  However, the status code will often not match the RPC status as\n// seen by the client application, and therefore, should not be relied upon for\n// this purpose.\ntype ServerStream interface {\n\t// SetHeader sets the header metadata. It may be called multiple times.\n\t// When call multiple times, all the provided metadata will be merged.\n\t// All the metadata will be sent out when one of the following happens:\n\t//  - ServerStream.SendHeader() is called;\n\t//  - The first response is sent out;\n\t//  - An RPC status is sent out (error or success).\n\tSetHeader(metadata.MD) error\n\t// SendHeader sends the header metadata.\n\t// The provided md and headers set by SetHeader() will be sent.\n\t// It fails if called multiple times.\n\tSendHeader(metadata.MD) error\n\t// SetTrailer sets the trailer metadata which will be sent with the RPC status.\n\t// When called more than once, all the provided metadata will be merged.\n\tSetTrailer(metadata.MD)\n\t// Context returns the context for this stream.\n\tContext() context.Context\n\t// SendMsg sends a message. On error, SendMsg aborts the stream and the\n\t// error is returned directly.\n\t//\n\t// SendMsg blocks until:\n\t//   - There is sufficient flow control to schedule m with the transport, or\n\t//   - The stream is done, or\n\t//   - The stream breaks.\n\t//\n\t// SendMsg does not wait until the message is received by the client. An\n\t// untimely stream closure may result in lost messages.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not safe\n\t// to call SendMsg on the same stream in different goroutines.\n\t//\n\t// It is not safe to modify the message after calling SendMsg. Tracing\n\t// libraries and stats handlers may use the message lazily.\n\tSendMsg(m any) error\n\t// RecvMsg blocks until it receives a message into m or the stream is\n\t// done. It returns io.EOF when the client has performed a CloseSend. On\n\t// any non-EOF error, the stream is aborted and the error contains the\n\t// RPC status.\n\t//\n\t// It is safe to have a goroutine calling SendMsg and another goroutine\n\t// calling RecvMsg on the same stream at the same time, but it is not\n\t// safe to call RecvMsg on the same stream in different goroutines.\n\tRecvMsg(m any) error\n}\n\n// serverStream implements a server side Stream.\ntype serverStream struct {\n\tctx   context.Context\n\ts     *transport.ServerStream\n\tp     parser\n\tcodec baseCodec\n\tdesc  *StreamDesc\n\n\tcompressorV0   Compressor\n\tcompressorV1   encoding.Compressor\n\tdecompressorV0 Decompressor\n\tdecompressorV1 encoding.Compressor\n\n\tsendCompressorName string\n\n\trecvFirstMsg bool // set after the first message is received\n\n\tmaxReceiveMessageSize int\n\tmaxSendMessageSize    int\n\ttrInfo                *traceInfo\n\n\tstatsHandler stats.Handler\n\n\tbinlogs []binarylog.MethodLogger\n\t// serverHeaderBinlogged indicates whether server header has been logged. It\n\t// will happen when one of the following two happens: stream.SendHeader(),\n\t// stream.Send().\n\t//\n\t// It's only checked in send and sendHeader, doesn't need to be\n\t// synchronized.\n\tserverHeaderBinlogged bool\n\n\tmu sync.Mutex // protects trInfo.tr after the service handler runs.\n}\n\nfunc (ss *serverStream) Context() context.Context {\n\treturn ss.ctx\n}\n\nfunc (ss *serverStream) SetHeader(md metadata.MD) error {\n\tif md.Len() == 0 {\n\t\treturn nil\n\t}\n\terr := imetadata.Validate(md)\n\tif err != nil {\n\t\treturn status.Error(codes.Internal, err.Error())\n\t}\n\treturn ss.s.SetHeader(md)\n}\n\nfunc (ss *serverStream) SendHeader(md metadata.MD) error {\n\terr := imetadata.Validate(md)\n\tif err != nil {\n\t\treturn status.Error(codes.Internal, err.Error())\n\t}\n\n\terr = ss.s.SendHeader(md)\n\tif len(ss.binlogs) != 0 && !ss.serverHeaderBinlogged {\n\t\th, _ := ss.s.Header()\n\t\tsh := &binarylog.ServerHeader{\n\t\t\tHeader: h,\n\t\t}\n\t\tss.serverHeaderBinlogged = true\n\t\tfor _, binlog := range ss.binlogs {\n\t\t\tbinlog.Log(ss.ctx, sh)\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (ss *serverStream) SetTrailer(md metadata.MD) {\n\tif md.Len() == 0 {\n\t\treturn\n\t}\n\tif err := imetadata.Validate(md); err != nil {\n\t\tlogger.Errorf(\"stream: failed to validate md when setting trailer, err: %v\", err)\n\t}\n\tss.s.SetTrailer(md)\n}\n\nfunc (ss *serverStream) SendMsg(m any) (err error) {\n\tdefer func() {\n\t\tif ss.trInfo != nil {\n\t\t\tss.mu.Lock()\n\t\t\tif ss.trInfo.tr != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\tss.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true)\n\t\t\t\t} else {\n\t\t\t\t\tss.trInfo.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\t\t\tss.trInfo.tr.SetError()\n\t\t\t\t}\n\t\t\t}\n\t\t\tss.mu.Unlock()\n\t\t}\n\t\tif err != nil && err != io.EOF {\n\t\t\tst, _ := status.FromError(toRPCErr(err))\n\t\t\tss.s.WriteStatus(st)\n\t\t\t// Non-user specified status was sent out. This should be an error\n\t\t\t// case (as a server side Cancel maybe).\n\t\t\t//\n\t\t\t// This is not handled specifically now. User will return a final\n\t\t\t// status from the service handler, we will log that error instead.\n\t\t\t// This behavior is similar to an interceptor.\n\t\t}\n\t}()\n\n\t// Server handler could have set new compressor by calling SetSendCompressor.\n\t// In case it is set, we need to use it for compressing outbound message.\n\tif sendCompressorsName := ss.s.SendCompress(); sendCompressorsName != ss.sendCompressorName {\n\t\tss.compressorV1 = encoding.GetCompressor(sendCompressorsName)\n\t\tss.sendCompressorName = sendCompressorsName\n\t}\n\n\t// load hdr, payload, data\n\thdr, data, payload, pf, err := prepareMsg(m, ss.codec, ss.compressorV0, ss.compressorV1, ss.p.bufferPool)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer func() {\n\t\tdata.Free()\n\t\t// only free payload if compression was made, and therefore it is a different set\n\t\t// of buffers from data.\n\t\tif pf.isCompressed() {\n\t\t\tpayload.Free()\n\t\t}\n\t}()\n\n\tdataLen := data.Len()\n\tpayloadLen := payload.Len()\n\n\t// TODO(dfawley): should we be checking len(data) instead?\n\tif payloadLen > ss.maxSendMessageSize {\n\t\treturn status.Errorf(codes.ResourceExhausted, \"trying to send message larger than max (%d vs. %d)\", payloadLen, ss.maxSendMessageSize)\n\t}\n\tif err := ss.s.Write(hdr, payload, &transport.WriteOptions{Last: false}); err != nil {\n\t\treturn toRPCErr(err)\n\t}\n\n\tif len(ss.binlogs) != 0 {\n\t\tif !ss.serverHeaderBinlogged {\n\t\t\th, _ := ss.s.Header()\n\t\t\tsh := &binarylog.ServerHeader{\n\t\t\t\tHeader: h,\n\t\t\t}\n\t\t\tss.serverHeaderBinlogged = true\n\t\t\tfor _, binlog := range ss.binlogs {\n\t\t\t\tbinlog.Log(ss.ctx, sh)\n\t\t\t}\n\t\t}\n\t\tsm := &binarylog.ServerMessage{\n\t\t\tMessage: data.Materialize(),\n\t\t}\n\t\tfor _, binlog := range ss.binlogs {\n\t\t\tbinlog.Log(ss.ctx, sm)\n\t\t}\n\t}\n\tif ss.statsHandler != nil {\n\t\tss.statsHandler.HandleRPC(ss.s.Context(), outPayload(false, m, dataLen, payloadLen, time.Now()))\n\t}\n\treturn nil\n}\n\nfunc (ss *serverStream) RecvMsg(m any) (err error) {\n\tdefer func() {\n\t\tif ss.trInfo != nil {\n\t\t\tss.mu.Lock()\n\t\t\tif ss.trInfo.tr != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\tss.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true)\n\t\t\t\t} else if err != io.EOF {\n\t\t\t\t\tss.trInfo.tr.LazyLog(&fmtStringer{\"%v\", []any{err}}, true)\n\t\t\t\t\tss.trInfo.tr.SetError()\n\t\t\t\t}\n\t\t\t}\n\t\t\tss.mu.Unlock()\n\t\t}\n\t\tif err != nil && err != io.EOF {\n\t\t\tst, _ := status.FromError(toRPCErr(err))\n\t\t\tss.s.WriteStatus(st)\n\t\t\t// Non-user specified status was sent out. This should be an error\n\t\t\t// case (as a server side Cancel maybe).\n\t\t\t//\n\t\t\t// This is not handled specifically now. User will return a final\n\t\t\t// status from the service handler, we will log that error instead.\n\t\t\t// This behavior is similar to an interceptor.\n\t\t}\n\t}()\n\tvar payInfo *payloadInfo\n\tif ss.statsHandler != nil || len(ss.binlogs) != 0 {\n\t\tpayInfo = &payloadInfo{}\n\t\tdefer payInfo.free()\n\t}\n\tif err := recv(&ss.p, ss.codec, ss.s, ss.decompressorV0, m, ss.maxReceiveMessageSize, payInfo, ss.decompressorV1, true); err != nil {\n\t\tif err == io.EOF {\n\t\t\tif len(ss.binlogs) != 0 {\n\t\t\t\tchc := &binarylog.ClientHalfClose{}\n\t\t\t\tfor _, binlog := range ss.binlogs {\n\t\t\t\t\tbinlog.Log(ss.ctx, chc)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Received no request msg for non-client streaming rpcs.\n\t\t\tif !ss.desc.ClientStreams && !ss.recvFirstMsg {\n\t\t\t\treturn status.Error(codes.Internal, \"cardinality violation: received no request message from non-client-streaming RPC\")\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\terr = status.Error(codes.Internal, io.ErrUnexpectedEOF.Error())\n\t\t}\n\t\treturn toRPCErr(err)\n\t}\n\tss.recvFirstMsg = true\n\tif ss.statsHandler != nil {\n\t\tss.statsHandler.HandleRPC(ss.s.Context(), &stats.InPayload{\n\t\t\tRecvTime:         time.Now(),\n\t\t\tPayload:          m,\n\t\t\tLength:           payInfo.uncompressedBytes.Len(),\n\t\t\tWireLength:       payInfo.compressedLength + headerLen,\n\t\t\tCompressedLength: payInfo.compressedLength,\n\t\t})\n\t}\n\tif len(ss.binlogs) != 0 {\n\t\tcm := &binarylog.ClientMessage{\n\t\t\tMessage: payInfo.uncompressedBytes.Materialize(),\n\t\t}\n\t\tfor _, binlog := range ss.binlogs {\n\t\t\tbinlog.Log(ss.ctx, cm)\n\t\t}\n\t}\n\n\tif ss.desc.ClientStreams {\n\t\t// Subsequent messages should be received by subsequent RecvMsg calls.\n\t\treturn nil\n\t}\n\t// Special handling for non-client-stream rpcs.\n\t// This recv expects EOF or errors, so we don't collect inPayload.\n\tif err := recv(&ss.p, ss.codec, ss.s, ss.decompressorV0, m, ss.maxReceiveMessageSize, nil, ss.decompressorV1, true); err == io.EOF {\n\t\treturn nil\n\t} else if err != nil {\n\t\treturn err\n\t}\n\treturn status.Error(codes.Internal, \"cardinality violation: received multiple request messages for non-client-streaming RPC\")\n}\n\n// MethodFromServerStream returns the method string for the input stream.\n// The returned string is in the format of \"/service/method\".\nfunc MethodFromServerStream(stream ServerStream) (string, bool) {\n\treturn Method(stream.Context())\n}\n\n// prepareMsg returns the hdr, payload and data using the compressors passed or\n// using the passed preparedmsg. The returned boolean indicates whether\n// compression was made and therefore whether the payload needs to be freed in\n// addition to the returned data. Freeing the payload if the returned boolean is\n// false can lead to undefined behavior.\nfunc prepareMsg(m any, codec baseCodec, cp Compressor, comp encoding.Compressor, pool mem.BufferPool) (hdr []byte, data, payload mem.BufferSlice, pf payloadFormat, err error) {\n\tif preparedMsg, ok := m.(*PreparedMsg); ok {\n\t\treturn preparedMsg.hdr, preparedMsg.encodedData, preparedMsg.payload, preparedMsg.pf, nil\n\t}\n\t// The input interface is not a prepared msg.\n\t// Marshal and Compress the data at this point\n\tdata, err = encode(codec, m)\n\tif err != nil {\n\t\treturn nil, nil, nil, 0, err\n\t}\n\tcompData, pf, err := compress(data, cp, comp, pool)\n\tif err != nil {\n\t\tdata.Free()\n\t\treturn nil, nil, nil, 0, err\n\t}\n\thdr, payload = msgHeader(data, compData, pf)\n\treturn hdr, data, payload, pf, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/stream_interfaces.go",
    "content": "/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\n// ServerStreamingClient represents the client side of a server-streaming (one\n// request, many responses) RPC. It is generic over the type of the response\n// message. It is used in generated code.\ntype ServerStreamingClient[Res any] interface {\n\t// Recv receives the next response message from the server. The client may\n\t// repeatedly call Recv to read messages from the response stream.  If\n\t// io.EOF is returned, the stream has terminated with an OK status.  Any\n\t// other error is compatible with the status package and indicates the\n\t// RPC's status code and message.\n\tRecv() (*Res, error)\n\n\t// ClientStream is embedded to provide Context, Header, and Trailer\n\t// functionality.  No other methods in the ClientStream should be called\n\t// directly.\n\tClientStream\n}\n\n// ServerStreamingServer represents the server side of a server-streaming (one\n// request, many responses) RPC. It is generic over the type of the response\n// message. It is used in generated code.\n//\n// To terminate the response stream, return from the handler method and return\n// an error from the status package, or use nil to indicate an OK status code.\ntype ServerStreamingServer[Res any] interface {\n\t// Send sends a response message to the client.  The server handler may\n\t// call Send multiple times to send multiple messages to the client.  An\n\t// error is returned if the stream was terminated unexpectedly, and the\n\t// handler method should return, as the stream is no longer usable.\n\tSend(*Res) error\n\n\t// ServerStream is embedded to provide Context, SetHeader, SendHeader, and\n\t// SetTrailer functionality.  No other methods in the ServerStream should\n\t// be called directly.\n\tServerStream\n}\n\n// ClientStreamingClient represents the client side of a client-streaming (many\n// requests, one response) RPC. It is generic over both the type of the request\n// message stream and the type of the unary response message. It is used in\n// generated code.\ntype ClientStreamingClient[Req any, Res any] interface {\n\t// Send sends a request message to the server.  The client may call Send\n\t// multiple times to send multiple messages to the server.  On error, Send\n\t// aborts the stream.  If the error was generated by the client, the status\n\t// is returned directly.  Otherwise, io.EOF is returned, and the status of\n\t// the stream may be discovered using CloseAndRecv().\n\tSend(*Req) error\n\n\t// CloseAndRecv closes the request stream and waits for the server's\n\t// response.  This method must be called once and only once after sending\n\t// all request messages.  Any error returned is implemented by the status\n\t// package.\n\tCloseAndRecv() (*Res, error)\n\n\t// ClientStream is embedded to provide Context, Header, and Trailer\n\t// functionality.  No other methods in the ClientStream should be called\n\t// directly.\n\tClientStream\n}\n\n// ClientStreamingServer represents the server side of a client-streaming (many\n// requests, one response) RPC. It is generic over both the type of the request\n// message stream and the type of the unary response message. It is used in\n// generated code.\n//\n// To terminate the RPC, call SendAndClose and return nil from the method\n// handler or do not call SendAndClose and return an error from the status\n// package.\ntype ClientStreamingServer[Req any, Res any] interface {\n\t// Recv receives the next request message from the client.  The server may\n\t// repeatedly call Recv to read messages from the request stream.  If\n\t// io.EOF is returned, it indicates the client called CloseAndRecv on its\n\t// ClientStreamingClient.  Any other error indicates the stream was\n\t// terminated unexpectedly, and the handler method should return, as the\n\t// stream is no longer usable.\n\tRecv() (*Req, error)\n\n\t// SendAndClose sends a single response message to the client and closes\n\t// the stream.  This method must be called once and only once after all\n\t// request messages have been processed.  Recv should not be called after\n\t// calling SendAndClose.\n\tSendAndClose(*Res) error\n\n\t// ServerStream is embedded to provide Context, SetHeader, SendHeader, and\n\t// SetTrailer functionality.  No other methods in the ServerStream should\n\t// be called directly.\n\tServerStream\n}\n\n// BidiStreamingClient represents the client side of a bidirectional-streaming\n// (many requests, many responses) RPC. It is generic over both the type of the\n// request message stream and the type of the response message stream. It is\n// used in generated code.\ntype BidiStreamingClient[Req any, Res any] interface {\n\t// Send sends a request message to the server.  The client may call Send\n\t// multiple times to send multiple messages to the server.  On error, Send\n\t// aborts the stream.  If the error was generated by the client, the status\n\t// is returned directly.  Otherwise, io.EOF is returned, and the status of\n\t// the stream may be discovered using Recv().\n\tSend(*Req) error\n\n\t// Recv receives the next response message from the server. The client may\n\t// repeatedly call Recv to read messages from the response stream.  If\n\t// io.EOF is returned, the stream has terminated with an OK status.  Any\n\t// other error is compatible with the status package and indicates the\n\t// RPC's status code and message.\n\tRecv() (*Res, error)\n\n\t// ClientStream is embedded to provide Context, Header, Trailer, and\n\t// CloseSend functionality.  No other methods in the ClientStream should be\n\t// called directly.\n\tClientStream\n}\n\n// BidiStreamingServer represents the server side of a bidirectional-streaming\n// (many requests, many responses) RPC. It is generic over both the type of the\n// request message stream and the type of the response message stream. It is\n// used in generated code.\n//\n// To terminate the stream, return from the handler method and return\n// an error from the status package, or use nil to indicate an OK status code.\ntype BidiStreamingServer[Req any, Res any] interface {\n\t// Recv receives the next request message from the client.  The server may\n\t// repeatedly call Recv to read messages from the request stream.  If\n\t// io.EOF is returned, it indicates the client called CloseSend on its\n\t// BidiStreamingClient.  Any other error indicates the stream was\n\t// terminated unexpectedly, and the handler method should return, as the\n\t// stream is no longer usable.\n\tRecv() (*Req, error)\n\n\t// Send sends a response message to the client.  The server handler may\n\t// call Send multiple times to send multiple messages to the client.  An\n\t// error is returned if the stream was terminated unexpectedly, and the\n\t// handler method should return, as the stream is no longer usable.\n\tSend(*Res) error\n\n\t// ServerStream is embedded to provide Context, SetHeader, SendHeader, and\n\t// SetTrailer functionality.  No other methods in the ServerStream should\n\t// be called directly.\n\tServerStream\n}\n\n// GenericClientStream implements the ServerStreamingClient, ClientStreamingClient,\n// and BidiStreamingClient interfaces. It is used in generated code.\ntype GenericClientStream[Req any, Res any] struct {\n\tClientStream\n}\n\nvar _ ServerStreamingClient[string] = (*GenericClientStream[int, string])(nil)\nvar _ ClientStreamingClient[int, string] = (*GenericClientStream[int, string])(nil)\nvar _ BidiStreamingClient[int, string] = (*GenericClientStream[int, string])(nil)\n\n// Send pushes one message into the stream of requests to be consumed by the\n// server. The type of message which can be sent is determined by the Req type\n// parameter of the GenericClientStream receiver.\nfunc (x *GenericClientStream[Req, Res]) Send(m *Req) error {\n\treturn x.ClientStream.SendMsg(m)\n}\n\n// Recv reads one message from the stream of responses generated by the server.\n// The type of the message returned is determined by the Res type parameter\n// of the GenericClientStream receiver.\nfunc (x *GenericClientStream[Req, Res]) Recv() (*Res, error) {\n\tm := new(Res)\n\tif err := x.ClientStream.RecvMsg(m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn m, nil\n}\n\n// CloseAndRecv closes the sending side of the stream, then receives the unary\n// response from the server. The type of message which it returns is determined\n// by the Res type parameter of the GenericClientStream receiver.\nfunc (x *GenericClientStream[Req, Res]) CloseAndRecv() (*Res, error) {\n\tif err := x.ClientStream.CloseSend(); err != nil {\n\t\treturn nil, err\n\t}\n\tm := new(Res)\n\tif err := x.ClientStream.RecvMsg(m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn m, nil\n}\n\n// GenericServerStream implements the ServerStreamingServer, ClientStreamingServer,\n// and BidiStreamingServer interfaces. It is used in generated code.\ntype GenericServerStream[Req any, Res any] struct {\n\tServerStream\n}\n\nvar _ ServerStreamingServer[string] = (*GenericServerStream[int, string])(nil)\nvar _ ClientStreamingServer[int, string] = (*GenericServerStream[int, string])(nil)\nvar _ BidiStreamingServer[int, string] = (*GenericServerStream[int, string])(nil)\n\n// Send pushes one message into the stream of responses to be consumed by the\n// client. The type of message which can be sent is determined by the Res\n// type parameter of the serverStreamServer receiver.\nfunc (x *GenericServerStream[Req, Res]) Send(m *Res) error {\n\treturn x.ServerStream.SendMsg(m)\n}\n\n// SendAndClose pushes the unary response to the client. The type of message\n// which can be sent is determined by the Res type parameter of the\n// clientStreamServer receiver.\nfunc (x *GenericServerStream[Req, Res]) SendAndClose(m *Res) error {\n\treturn x.ServerStream.SendMsg(m)\n}\n\n// Recv reads one message from the stream of requests generated by the client.\n// The type of the message returned is determined by the Req type parameter\n// of the clientStreamServer receiver.\nfunc (x *GenericServerStream[Req, Res]) Recv() (*Req, error) {\n\tm := new(Req)\n\tif err := x.ServerStream.RecvMsg(m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn m, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/tap/tap.go",
    "content": "/*\n *\n * Copyright 2016 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// Package tap defines the function handles which are executed on the transport\n// layer of gRPC-Go and related information.\n//\n// # Experimental\n//\n// Notice: This API is EXPERIMENTAL and may be changed or removed in a\n// later release.\npackage tap\n\nimport (\n\t\"context\"\n\n\t\"google.golang.org/grpc/metadata\"\n)\n\n// Info defines the relevant information needed by the handles.\ntype Info struct {\n\t// FullMethodName is the string of grpc method (in the format of\n\t// /package.service/method).\n\tFullMethodName string\n\n\t// Header contains the header metadata received.\n\tHeader metadata.MD\n\n\t// TODO: More to be added.\n}\n\n// ServerInHandle defines the function which runs before a new stream is\n// created on the server side. If it returns a non-nil error, the stream will\n// not be created and an error will be returned to the client.  If the error\n// returned is a status error, that status code and message will be used,\n// otherwise PermissionDenied will be the code and err.Error() will be the\n// message.\n//\n// It's intended to be used in situations where you don't want to waste the\n// resources to accept the new stream (e.g. rate-limiting). For other general\n// usages, please use interceptors.\n//\n// Note that it is executed in the per-connection I/O goroutine(s) instead of\n// per-RPC goroutine. Therefore, users should NOT have any\n// blocking/time-consuming work in this handle. Otherwise all the RPCs would\n// slow down. Also, for the same reason, this handle won't be called\n// concurrently by gRPC.\ntype ServerInHandle func(ctx context.Context, info *Info) (context.Context, error)\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/trace.go",
    "content": "/*\n *\n * Copyright 2015 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// EnableTracing controls whether to trace RPCs using the golang.org/x/net/trace package.\n// This should only be set before any RPCs are sent or received by this program.\nvar EnableTracing bool\n\n// methodFamily returns the trace family for the given method.\n// It turns \"/pkg.Service/GetFoo\" into \"pkg.Service\".\nfunc methodFamily(m string) string {\n\tm = strings.TrimPrefix(m, \"/\") // remove leading slash\n\tif i := strings.Index(m, \"/\"); i >= 0 {\n\t\tm = m[:i] // remove everything from second slash\n\t}\n\treturn m\n}\n\n// traceEventLog mirrors golang.org/x/net/trace.EventLog.\n//\n// It exists in order to avoid importing x/net/trace on grpcnotrace builds.\ntype traceEventLog interface {\n\tPrintf(format string, a ...any)\n\tErrorf(format string, a ...any)\n\tFinish()\n}\n\n// traceLog mirrors golang.org/x/net/trace.Trace.\n//\n// It exists in order to avoid importing x/net/trace on grpcnotrace builds.\ntype traceLog interface {\n\tLazyLog(x fmt.Stringer, sensitive bool)\n\tLazyPrintf(format string, a ...any)\n\tSetError()\n\tSetRecycler(f func(any))\n\tSetTraceInfo(traceID, spanID uint64)\n\tSetMaxEvents(m int)\n\tFinish()\n}\n\n// traceInfo contains tracing information for an RPC.\ntype traceInfo struct {\n\ttr        traceLog\n\tfirstLine firstLine\n}\n\n// firstLine is the first line of an RPC trace.\n// It may be mutated after construction; remoteAddr specifically may change\n// during client-side use.\ntype firstLine struct {\n\tmu         sync.Mutex\n\tclient     bool // whether this is a client (outgoing) RPC\n\tremoteAddr net.Addr\n\tdeadline   time.Duration // may be zero\n}\n\nfunc (f *firstLine) SetRemoteAddr(addr net.Addr) {\n\tf.mu.Lock()\n\tf.remoteAddr = addr\n\tf.mu.Unlock()\n}\n\nfunc (f *firstLine) String() string {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tvar line bytes.Buffer\n\tio.WriteString(&line, \"RPC: \")\n\tif f.client {\n\t\tio.WriteString(&line, \"to\")\n\t} else {\n\t\tio.WriteString(&line, \"from\")\n\t}\n\tfmt.Fprintf(&line, \" %v deadline:\", f.remoteAddr)\n\tif f.deadline != 0 {\n\t\tfmt.Fprint(&line, f.deadline)\n\t} else {\n\t\tio.WriteString(&line, \"none\")\n\t}\n\treturn line.String()\n}\n\nconst truncateSize = 100\n\nfunc truncate(x string, l int) string {\n\tif l > len(x) {\n\t\treturn x\n\t}\n\treturn x[:l]\n}\n\n// payload represents an RPC request or response payload.\ntype payload struct {\n\tsent bool // whether this is an outgoing payload\n\tmsg  any  // e.g. a proto.Message\n\t// TODO(dsymonds): add stringifying info to codec, and limit how much we hold here?\n}\n\nfunc (p payload) String() string {\n\tif p.sent {\n\t\treturn truncate(fmt.Sprintf(\"sent: %v\", p.msg), truncateSize)\n\t}\n\treturn truncate(fmt.Sprintf(\"recv: %v\", p.msg), truncateSize)\n}\n\ntype fmtStringer struct {\n\tformat string\n\ta      []any\n}\n\nfunc (f *fmtStringer) String() string {\n\treturn fmt.Sprintf(f.format, f.a...)\n}\n\ntype stringer string\n\nfunc (s stringer) String() string { return string(s) }\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/trace_notrace.go",
    "content": "//go:build grpcnotrace\n\n/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\n// grpcnotrace can be used to avoid importing golang.org/x/net/trace, which in\n// turn enables binaries using gRPC-Go for dead code elimination, which can\n// yield 10-15% improvements in binary size when tracing is not needed.\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\ntype notrace struct{}\n\nfunc (notrace) LazyLog(x fmt.Stringer, sensitive bool) {}\nfunc (notrace) LazyPrintf(format string, a ...any)     {}\nfunc (notrace) SetError()                              {}\nfunc (notrace) SetRecycler(f func(any))                {}\nfunc (notrace) SetTraceInfo(traceID, spanID uint64)    {}\nfunc (notrace) SetMaxEvents(m int)                     {}\nfunc (notrace) Finish()                                {}\n\nfunc newTrace(family, title string) traceLog {\n\treturn notrace{}\n}\n\nfunc newTraceContext(ctx context.Context, tr traceLog) context.Context {\n\treturn ctx\n}\n\nfunc newTraceEventLog(family, title string) traceEventLog {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/trace_withtrace.go",
    "content": "//go:build !grpcnotrace\n\n/*\n *\n * Copyright 2024 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\nimport (\n\t\"context\"\n\n\tt \"golang.org/x/net/trace\"\n)\n\nfunc newTrace(family, title string) traceLog {\n\treturn t.New(family, title)\n}\n\nfunc newTraceContext(ctx context.Context, tr traceLog) context.Context {\n\treturn t.NewContext(ctx, tr)\n}\n\nfunc newTraceEventLog(family, title string) traceEventLog {\n\treturn t.NewEventLog(family, title)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/grpc/version.go",
    "content": "/*\n *\n * Copyright 2018 gRPC authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\npackage grpc\n\n// Version is the current grpc version.\nconst Version = \"1.79.3\"\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/LICENSE",
    "content": "Copyright (c) 2018 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protojson/decode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protojson\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/json\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/set\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Unmarshal reads the given []byte into the given [proto.Message].\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc Unmarshal(b []byte, m proto.Message) error {\n\treturn UnmarshalOptions{}.Unmarshal(b, m)\n}\n\n// UnmarshalOptions is a configurable JSON format parser.\ntype UnmarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// If AllowPartial is set, input for messages that will result in missing\n\t// required fields will not return an error.\n\tAllowPartial bool\n\n\t// If DiscardUnknown is set, unknown fields and enum name values are ignored.\n\tDiscardUnknown bool\n\n\t// Resolver is used for looking up types when unmarshaling\n\t// google.protobuf.Any messages or extension fields.\n\t// If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.MessageTypeResolver\n\t\tprotoregistry.ExtensionTypeResolver\n\t}\n\n\t// RecursionLimit limits how deeply messages may be nested.\n\t// If zero, a default limit is applied.\n\tRecursionLimit int\n}\n\n// Unmarshal reads the given []byte and populates the given [proto.Message]\n// using options in the UnmarshalOptions object.\n// It will clear the message first before setting the fields.\n// If it returns an error, the given message may be partially set.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {\n\treturn o.unmarshal(b, m)\n}\n\n// unmarshal is a centralized function that all unmarshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for unmarshal that do not go through this.\nfunc (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error {\n\tproto.Reset(m)\n\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\tif o.RecursionLimit == 0 {\n\t\to.RecursionLimit = protowire.DefaultRecursionLimit\n\t}\n\n\tdec := decoder{json.NewDecoder(b), o}\n\tif err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil {\n\t\treturn err\n\t}\n\n\t// Check for EOF.\n\ttok, err := dec.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.EOF {\n\t\treturn dec.unexpectedTokenError(tok)\n\t}\n\n\tif o.AllowPartial {\n\t\treturn nil\n\t}\n\treturn proto.CheckInitialized(m)\n}\n\ntype decoder struct {\n\t*json.Decoder\n\topts UnmarshalOptions\n}\n\n// newError returns an error object with position info.\nfunc (d decoder) newError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"(line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unexpectedTokenError returns a syntax error for the given unexpected token.\nfunc (d decoder) unexpectedTokenError(tok json.Token) error {\n\treturn d.syntaxError(tok.Pos(), \"unexpected token %s\", tok.RawString())\n}\n\n// syntaxError returns a syntax error for given position.\nfunc (d decoder) syntaxError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"syntax error (line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unmarshalMessage unmarshals a message into the given protoreflect.Message.\nfunc (d decoder) unmarshalMessage(m protoreflect.Message, skipTypeURL bool) error {\n\td.opts.RecursionLimit--\n\tif d.opts.RecursionLimit < 0 {\n\t\treturn errors.New(\"exceeded max recursion depth\")\n\t}\n\tif unmarshal := wellKnownTypeUnmarshaler(m.Descriptor().FullName()); unmarshal != nil {\n\t\treturn unmarshal(d, m)\n\t}\n\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.ObjectOpen {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\tmessageDesc := m.Descriptor()\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tvar seenNums set.Ints\n\tvar seenOneofs set.Ints\n\tfieldDescs := messageDesc.Fields()\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tdefault:\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\tcase json.ObjectClose:\n\t\t\treturn nil\n\t\tcase json.Name:\n\t\t\t// Continue below.\n\t\t}\n\n\t\tname := tok.Name()\n\t\t// Unmarshaling a non-custom embedded message in Any will contain the\n\t\t// JSON field \"@type\" which should be skipped because it is not a field\n\t\t// of the embedded message, but simply an artifact of the Any format.\n\t\tif skipTypeURL && name == \"@type\" {\n\t\t\td.Read()\n\t\t\tcontinue\n\t\t}\n\n\t\t// Get the FieldDescriptor.\n\t\tvar fd protoreflect.FieldDescriptor\n\t\tif strings.HasPrefix(name, \"[\") && strings.HasSuffix(name, \"]\") {\n\t\t\t// Only extension names are in [name] format.\n\t\t\textName := protoreflect.FullName(name[1 : len(name)-1])\n\t\t\textType, err := d.opts.Resolver.FindExtensionByName(extName)\n\t\t\tif err != nil && err != protoregistry.NotFound {\n\t\t\t\treturn d.newError(tok.Pos(), \"unable to resolve %s: %v\", tok.RawString(), err)\n\t\t\t}\n\t\t\tif extType != nil {\n\t\t\t\tfd = extType.TypeDescriptor()\n\t\t\t\tif !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"message %v cannot be extended by %v\", messageDesc.FullName(), fd.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// The name can either be the JSON name or the proto field name.\n\t\t\tfd = fieldDescs.ByJSONName(name)\n\t\t\tif fd == nil {\n\t\t\t\tfd = fieldDescs.ByTextName(name)\n\t\t\t}\n\t\t}\n\n\t\tif fd == nil {\n\t\t\t// Field is unknown.\n\t\t\tif d.opts.DiscardUnknown {\n\t\t\t\tif err := d.skipJSONValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn d.newError(tok.Pos(), \"unknown field %v\", tok.RawString())\n\t\t}\n\n\t\t// Do not allow duplicate fields.\n\t\tnum := uint64(fd.Number())\n\t\tif seenNums.Has(num) {\n\t\t\treturn d.newError(tok.Pos(), \"duplicate field %v\", tok.RawString())\n\t\t}\n\t\tseenNums.Set(num)\n\n\t\t// No need to set values for JSON null unless the field type is\n\t\t// google.protobuf.Value or google.protobuf.NullValue.\n\t\tif tok, _ := d.Peek(); tok.Kind() == json.Null && !isKnownValue(fd) && !isNullValue(fd) {\n\t\t\td.Read()\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tlist := m.Mutable(fd).List()\n\t\t\tif err := d.unmarshalList(list, fd); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tmmap := m.Mutable(fd).Map()\n\t\t\tif err := d.unmarshalMap(mmap, fd); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\t// If field is a oneof, check if it has already been set.\n\t\t\tif od := fd.ContainingOneof(); od != nil {\n\t\t\t\tidx := uint64(od.Index())\n\t\t\t\tif seenOneofs.Has(idx) {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"error parsing %s, oneof %v is already set\", tok.RawString(), od.FullName())\n\t\t\t\t}\n\t\t\t\tseenOneofs.Set(idx)\n\t\t\t}\n\n\t\t\t// Required or optional fields.\n\t\t\tif err := d.unmarshalSingular(m, fd); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc isKnownValue(fd protoreflect.FieldDescriptor) bool {\n\tmd := fd.Message()\n\treturn md != nil && md.FullName() == genid.Value_message_fullname\n}\n\nfunc isNullValue(fd protoreflect.FieldDescriptor) bool {\n\ted := fd.Enum()\n\treturn ed != nil && ed.FullName() == genid.NullValue_enum_fullname\n}\n\n// unmarshalSingular unmarshals to the non-repeated field specified\n// by the given FieldDescriptor.\nfunc (d decoder) unmarshalSingular(m protoreflect.Message, fd protoreflect.FieldDescriptor) error {\n\tvar val protoreflect.Value\n\tvar err error\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tval = m.NewField(fd)\n\t\terr = d.unmarshalMessage(val.Message(), false)\n\tdefault:\n\t\tval, err = d.unmarshalScalar(fd)\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\tif val.IsValid() {\n\t\tm.Set(fd, val)\n\t}\n\treturn nil\n}\n\n// unmarshalScalar unmarshals to a scalar/enum protoreflect.Value specified by\n// the given FieldDescriptor.\nfunc (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\tconst b32 int = 32\n\tconst b64 int = 64\n\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn protoreflect.Value{}, err\n\t}\n\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\tif tok.Kind() == json.Bool {\n\t\t\treturn protoreflect.ValueOfBool(tok.Bool()), nil\n\t\t}\n\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif v, ok := unmarshalInt(tok, b32); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif v, ok := unmarshalInt(tok, b64); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif v, ok := unmarshalUint(tok, b32); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif v, ok := unmarshalUint(tok, b64); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.FloatKind:\n\t\tif v, ok := unmarshalFloat(tok, b32); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.DoubleKind:\n\t\tif v, ok := unmarshalFloat(tok, b64); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.StringKind:\n\t\tif tok.Kind() == json.String {\n\t\t\treturn protoreflect.ValueOfString(tok.ParsedString()), nil\n\t\t}\n\n\tcase protoreflect.BytesKind:\n\t\tif v, ok := unmarshalBytes(tok); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tcase protoreflect.EnumKind:\n\t\tif v, ok := unmarshalEnum(tok, fd, d.opts.DiscardUnknown); ok {\n\t\t\treturn v, nil\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unmarshalScalar: invalid scalar kind %v\", kind))\n\t}\n\n\treturn protoreflect.Value{}, d.newError(tok.Pos(), \"invalid value for %v field %v: %v\", kind, fd.JSONName(), tok.RawString())\n}\n\nfunc unmarshalInt(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tswitch tok.Kind() {\n\tcase json.Number:\n\t\treturn getInt(tok, bitSize)\n\n\tcase json.String:\n\t\t// Decode number from string.\n\t\ts := strings.TrimSpace(tok.ParsedString())\n\t\tif len(s) != len(tok.ParsedString()) {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\tdec := json.NewDecoder([]byte(s))\n\t\ttok, err := dec.Read()\n\t\tif err != nil {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\treturn getInt(tok, bitSize)\n\t}\n\treturn protoreflect.Value{}, false\n}\n\nfunc getInt(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tn, ok := tok.Int(bitSize)\n\tif !ok {\n\t\treturn protoreflect.Value{}, false\n\t}\n\tif bitSize == 32 {\n\t\treturn protoreflect.ValueOfInt32(int32(n)), true\n\t}\n\treturn protoreflect.ValueOfInt64(n), true\n}\n\nfunc unmarshalUint(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tswitch tok.Kind() {\n\tcase json.Number:\n\t\treturn getUint(tok, bitSize)\n\n\tcase json.String:\n\t\t// Decode number from string.\n\t\ts := strings.TrimSpace(tok.ParsedString())\n\t\tif len(s) != len(tok.ParsedString()) {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\tdec := json.NewDecoder([]byte(s))\n\t\ttok, err := dec.Read()\n\t\tif err != nil {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\treturn getUint(tok, bitSize)\n\t}\n\treturn protoreflect.Value{}, false\n}\n\nfunc getUint(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tn, ok := tok.Uint(bitSize)\n\tif !ok {\n\t\treturn protoreflect.Value{}, false\n\t}\n\tif bitSize == 32 {\n\t\treturn protoreflect.ValueOfUint32(uint32(n)), true\n\t}\n\treturn protoreflect.ValueOfUint64(n), true\n}\n\nfunc unmarshalFloat(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tswitch tok.Kind() {\n\tcase json.Number:\n\t\treturn getFloat(tok, bitSize)\n\n\tcase json.String:\n\t\ts := tok.ParsedString()\n\t\tswitch s {\n\t\tcase \"NaN\":\n\t\t\tif bitSize == 32 {\n\t\t\t\treturn protoreflect.ValueOfFloat32(float32(math.NaN())), true\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfFloat64(math.NaN()), true\n\t\tcase \"Infinity\":\n\t\t\tif bitSize == 32 {\n\t\t\t\treturn protoreflect.ValueOfFloat32(float32(math.Inf(+1))), true\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfFloat64(math.Inf(+1)), true\n\t\tcase \"-Infinity\":\n\t\t\tif bitSize == 32 {\n\t\t\t\treturn protoreflect.ValueOfFloat32(float32(math.Inf(-1))), true\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfFloat64(math.Inf(-1)), true\n\t\t}\n\n\t\t// Decode number from string.\n\t\tif len(s) != len(strings.TrimSpace(s)) {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\tdec := json.NewDecoder([]byte(s))\n\t\ttok, err := dec.Read()\n\t\tif err != nil {\n\t\t\treturn protoreflect.Value{}, false\n\t\t}\n\t\treturn getFloat(tok, bitSize)\n\t}\n\treturn protoreflect.Value{}, false\n}\n\nfunc getFloat(tok json.Token, bitSize int) (protoreflect.Value, bool) {\n\tn, ok := tok.Float(bitSize)\n\tif !ok {\n\t\treturn protoreflect.Value{}, false\n\t}\n\tif bitSize == 32 {\n\t\treturn protoreflect.ValueOfFloat32(float32(n)), true\n\t}\n\treturn protoreflect.ValueOfFloat64(n), true\n}\n\nfunc unmarshalBytes(tok json.Token) (protoreflect.Value, bool) {\n\tif tok.Kind() != json.String {\n\t\treturn protoreflect.Value{}, false\n\t}\n\n\ts := tok.ParsedString()\n\tenc := base64.StdEncoding\n\tif strings.ContainsAny(s, \"-_\") {\n\t\tenc = base64.URLEncoding\n\t}\n\tif len(s)%4 != 0 {\n\t\tenc = enc.WithPadding(base64.NoPadding)\n\t}\n\tb, err := enc.DecodeString(s)\n\tif err != nil {\n\t\treturn protoreflect.Value{}, false\n\t}\n\treturn protoreflect.ValueOfBytes(b), true\n}\n\nfunc unmarshalEnum(tok json.Token, fd protoreflect.FieldDescriptor, discardUnknown bool) (protoreflect.Value, bool) {\n\tswitch tok.Kind() {\n\tcase json.String:\n\t\t// Lookup EnumNumber based on name.\n\t\ts := tok.ParsedString()\n\t\tif enumVal := fd.Enum().Values().ByName(protoreflect.Name(s)); enumVal != nil {\n\t\t\treturn protoreflect.ValueOfEnum(enumVal.Number()), true\n\t\t}\n\t\tif discardUnknown {\n\t\t\treturn protoreflect.Value{}, true\n\t\t}\n\n\tcase json.Number:\n\t\tif n, ok := tok.Int(32); ok {\n\t\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(n)), true\n\t\t}\n\n\tcase json.Null:\n\t\t// This is only valid for google.protobuf.NullValue.\n\t\tif isNullValue(fd) {\n\t\t\treturn protoreflect.ValueOfEnum(0), true\n\t\t}\n\t}\n\n\treturn protoreflect.Value{}, false\n}\n\nfunc (d decoder) unmarshalList(list protoreflect.List, fd protoreflect.FieldDescriptor) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.ArrayOpen {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tfor {\n\t\t\ttok, err := d.Peek()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == json.ArrayClose {\n\t\t\t\td.Read()\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tval := list.NewElement()\n\t\t\tif err := d.unmarshalMessage(val.Message(), false); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlist.Append(val)\n\t\t}\n\tdefault:\n\t\tfor {\n\t\t\ttok, err := d.Peek()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == json.ArrayClose {\n\t\t\t\td.Read()\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tval, err := d.unmarshalScalar(fd)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif val.IsValid() {\n\t\t\t\tlist.Append(val)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (d decoder) unmarshalMap(mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.ObjectOpen {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\t// Determine ahead whether map entry is a scalar type or a message type in\n\t// order to call the appropriate unmarshalMapValue func inside the for loop\n\t// below.\n\tvar unmarshalMapValue func() (protoreflect.Value, error)\n\tswitch fd.MapValue().Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\tval := mmap.NewValue()\n\t\t\tif err := d.unmarshalMessage(val.Message(), false); err != nil {\n\t\t\t\treturn protoreflect.Value{}, err\n\t\t\t}\n\t\t\treturn val, nil\n\t\t}\n\tdefault:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\treturn d.unmarshalScalar(fd.MapValue())\n\t\t}\n\t}\n\nLoop:\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tdefault:\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\tcase json.ObjectClose:\n\t\t\tbreak Loop\n\t\tcase json.Name:\n\t\t\t// Continue.\n\t\t}\n\n\t\t// Unmarshal field name.\n\t\tpkey, err := d.unmarshalMapKey(tok, fd.MapKey())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Check for duplicate field name.\n\t\tif mmap.Has(pkey) {\n\t\t\treturn d.newError(tok.Pos(), \"duplicate map key %v\", tok.RawString())\n\t\t}\n\n\t\t// Read and unmarshal field value.\n\t\tpval, err := unmarshalMapValue()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif pval.IsValid() {\n\t\t\tmmap.Set(pkey, pval)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// unmarshalMapKey converts given token of Name kind into a protoreflect.MapKey.\n// A map key type is any integral or string type.\nfunc (d decoder) unmarshalMapKey(tok json.Token, fd protoreflect.FieldDescriptor) (protoreflect.MapKey, error) {\n\tconst b32 = 32\n\tconst b64 = 64\n\tconst base10 = 10\n\n\tname := tok.Name()\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.StringKind:\n\t\treturn protoreflect.ValueOfString(name).MapKey(), nil\n\n\tcase protoreflect.BoolKind:\n\t\tswitch name {\n\t\tcase \"true\":\n\t\t\treturn protoreflect.ValueOfBool(true).MapKey(), nil\n\t\tcase \"false\":\n\t\t\treturn protoreflect.ValueOfBool(false).MapKey(), nil\n\t\t}\n\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif n, err := strconv.ParseInt(name, base10, b32); err == nil {\n\t\t\treturn protoreflect.ValueOfInt32(int32(n)).MapKey(), nil\n\t\t}\n\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif n, err := strconv.ParseInt(name, base10, b64); err == nil {\n\t\t\treturn protoreflect.ValueOfInt64(int64(n)).MapKey(), nil\n\t\t}\n\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif n, err := strconv.ParseUint(name, base10, b32); err == nil {\n\t\t\treturn protoreflect.ValueOfUint32(uint32(n)).MapKey(), nil\n\t\t}\n\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif n, err := strconv.ParseUint(name, base10, b64); err == nil {\n\t\t\treturn protoreflect.ValueOfUint64(uint64(n)).MapKey(), nil\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid kind for map key: %v\", kind))\n\t}\n\n\treturn protoreflect.MapKey{}, d.newError(tok.Pos(), \"invalid value for %v key: %s\", kind, tok.RawString())\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protojson/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protojson marshals and unmarshals protocol buffer messages as JSON\n// format. It follows the guide at\n// https://protobuf.dev/programming-guides/proto3#json.\n//\n// This package produces a different output than the standard [encoding/json]\n// package, which does not operate correctly on protocol buffer messages.\npackage protojson\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protojson/encode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protojson\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/internal/encoding/json\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst defaultIndent = \"  \"\n\n// Format formats the message as a multiline string.\n// This function is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc Format(m proto.Message) string {\n\treturn MarshalOptions{Multiline: true}.Format(m)\n}\n\n// Marshal writes the given [proto.Message] in JSON format using default options.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc Marshal(m proto.Message) ([]byte, error) {\n\treturn MarshalOptions{}.Marshal(m)\n}\n\n// MarshalOptions is a configurable JSON format marshaler.\ntype MarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Multiline specifies whether the marshaler should format the output in\n\t// indented-form with every textual element on a new line.\n\t// If Indent is an empty string, then an arbitrary indent is chosen.\n\tMultiline bool\n\n\t// Indent specifies the set of indentation characters to use in a multiline\n\t// formatted output such that every entry is preceded by Indent and\n\t// terminated by a newline. If non-empty, then Multiline is treated as true.\n\t// Indent can only be composed of space or tab characters.\n\tIndent string\n\n\t// AllowPartial allows messages that have missing required fields to marshal\n\t// without returning an error. If AllowPartial is false (the default),\n\t// Marshal will return error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// UseProtoNames uses proto field name instead of lowerCamelCase name in JSON\n\t// field names.\n\tUseProtoNames bool\n\n\t// UseEnumNumbers emits enum values as numbers.\n\tUseEnumNumbers bool\n\n\t// EmitUnpopulated specifies whether to emit unpopulated fields. It does not\n\t// emit unpopulated oneof fields or unpopulated extension fields.\n\t// The JSON value emitted for unpopulated fields are as follows:\n\t//  ╔═══════╤════════════════════════════╗\n\t//  ║ JSON  │ Protobuf field             ║\n\t//  ╠═══════╪════════════════════════════╣\n\t//  ║ false │ proto3 boolean fields      ║\n\t//  ║ 0     │ proto3 numeric fields      ║\n\t//  ║ \"\"    │ proto3 string/bytes fields ║\n\t//  ║ null  │ proto2 scalar fields       ║\n\t//  ║ null  │ message fields             ║\n\t//  ║ []    │ list fields                ║\n\t//  ║ {}    │ map fields                 ║\n\t//  ╚═══════╧════════════════════════════╝\n\tEmitUnpopulated bool\n\n\t// EmitDefaultValues specifies whether to emit default-valued primitive fields,\n\t// empty lists, and empty maps. The fields affected are as follows:\n\t//  ╔═══════╤════════════════════════════════════════╗\n\t//  ║ JSON  │ Protobuf field                         ║\n\t//  ╠═══════╪════════════════════════════════════════╣\n\t//  ║ false │ non-optional scalar boolean fields     ║\n\t//  ║ 0     │ non-optional scalar numeric fields     ║\n\t//  ║ \"\"    │ non-optional scalar string/byte fields ║\n\t//  ║ []    │ empty repeated fields                  ║\n\t//  ║ {}    │ empty map fields                       ║\n\t//  ╚═══════╧════════════════════════════════════════╝\n\t//\n\t// Behaves similarly to EmitUnpopulated, but does not emit \"null\"-value fields,\n\t// i.e. presence-sensing fields that are omitted will remain omitted to preserve\n\t// presence-sensing.\n\t// EmitUnpopulated takes precedence over EmitDefaultValues since the former generates\n\t// a strict superset of the latter.\n\tEmitDefaultValues bool\n\n\t// Resolver is used for looking up types when expanding google.protobuf.Any\n\t// messages. If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.ExtensionTypeResolver\n\t\tprotoregistry.MessageTypeResolver\n\t}\n}\n\n// Format formats the message as a string.\n// This method is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc (o MarshalOptions) Format(m proto.Message) string {\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\treturn \"<nil>\" // invalid syntax, but okay since this is for debugging\n\t}\n\to.AllowPartial = true\n\tb, _ := o.Marshal(m)\n\treturn string(b)\n}\n\n// Marshal marshals the given [proto.Message] in the JSON format using options in\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) {\n\treturn o.marshal(nil, m)\n}\n\n// MarshalAppend appends the JSON format encoding of m to b,\n// returning the result.\nfunc (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) {\n\treturn o.marshal(b, m)\n}\n\n// marshal is a centralized function that all marshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for marshal that do not go through this.\nfunc (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) {\n\tif o.Multiline && o.Indent == \"\" {\n\t\to.Indent = defaultIndent\n\t}\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\n\tinternalEnc, err := json.NewEncoder(b, o.Indent)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Treat nil message interface as an empty message,\n\t// in which case the output in an empty JSON object.\n\tif m == nil {\n\t\treturn append(b, '{', '}'), nil\n\t}\n\n\tenc := encoder{internalEnc, o}\n\tif err := enc.marshalMessage(m.ProtoReflect(), \"\"); err != nil {\n\t\treturn nil, err\n\t}\n\tif o.AllowPartial {\n\t\treturn enc.Bytes(), nil\n\t}\n\treturn enc.Bytes(), proto.CheckInitialized(m)\n}\n\ntype encoder struct {\n\t*json.Encoder\n\topts MarshalOptions\n}\n\n// typeFieldDesc is a synthetic field descriptor used for the \"@type\" field.\nvar typeFieldDesc = func() protoreflect.FieldDescriptor {\n\tvar fd filedesc.Field\n\tfd.L0.FullName = \"@type\"\n\tfd.L0.Index = -1\n\tfd.L1.Cardinality = protoreflect.Optional\n\tfd.L1.Kind = protoreflect.StringKind\n\treturn &fd\n}()\n\n// typeURLFieldRanger wraps a protoreflect.Message and modifies its Range method\n// to additionally iterate over a synthetic field for the type URL.\ntype typeURLFieldRanger struct {\n\torder.FieldRanger\n\ttypeURL string\n}\n\nfunc (m typeURLFieldRanger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tif !f(typeFieldDesc, protoreflect.ValueOfString(m.typeURL)) {\n\t\treturn\n\t}\n\tm.FieldRanger.Range(f)\n}\n\n// unpopulatedFieldRanger wraps a protoreflect.Message and modifies its Range\n// method to additionally iterate over unpopulated fields.\ntype unpopulatedFieldRanger struct {\n\tprotoreflect.Message\n\n\tskipNull bool\n}\n\nfunc (m unpopulatedFieldRanger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tfds := m.Descriptor().Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tif m.Has(fd) || fd.ContainingOneof() != nil {\n\t\t\tcontinue // ignore populated fields and fields within a oneofs\n\t\t}\n\n\t\tv := m.Get(fd)\n\t\tif fd.HasPresence() {\n\t\t\tif m.skipNull {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tv = protoreflect.Value{} // use invalid value to emit null\n\t\t}\n\t\tif !f(fd, v) {\n\t\t\treturn\n\t\t}\n\t}\n\tm.Message.Range(f)\n}\n\n// marshalMessage marshals the fields in the given protoreflect.Message.\n// If the typeURL is non-empty, then a synthetic \"@type\" field is injected\n// containing the URL as the value.\nfunc (e encoder) marshalMessage(m protoreflect.Message, typeURL string) error {\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(m.Descriptor()) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tif marshal := wellKnownTypeMarshaler(m.Descriptor().FullName()); marshal != nil {\n\t\treturn marshal(e, m)\n\t}\n\n\te.StartObject()\n\tdefer e.EndObject()\n\n\tvar fields order.FieldRanger = m\n\tswitch {\n\tcase e.opts.EmitUnpopulated:\n\t\tfields = unpopulatedFieldRanger{Message: m, skipNull: false}\n\tcase e.opts.EmitDefaultValues:\n\t\tfields = unpopulatedFieldRanger{Message: m, skipNull: true}\n\t}\n\tif typeURL != \"\" {\n\t\tfields = typeURLFieldRanger{fields, typeURL}\n\t}\n\n\tvar err error\n\torder.RangeFields(fields, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tname := fd.JSONName()\n\t\tif e.opts.UseProtoNames {\n\t\t\tname = fd.TextName()\n\t\t}\n\n\t\tif err = e.WriteName(name); err != nil {\n\t\t\treturn false\n\t\t}\n\t\tif err = e.marshalValue(v, fd); err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\treturn err\n}\n\n// marshalValue marshals the given protoreflect.Value.\nfunc (e encoder) marshalValue(val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn e.marshalList(val.List(), fd)\n\tcase fd.IsMap():\n\t\treturn e.marshalMap(val.Map(), fd)\n\tdefault:\n\t\treturn e.marshalSingular(val, fd)\n\t}\n}\n\n// marshalSingular marshals the given non-repeated field value. This includes\n// all scalar types, enums, messages, and groups.\nfunc (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tif !val.IsValid() {\n\t\te.WriteNull()\n\t\treturn nil\n\t}\n\n\tswitch kind := fd.Kind(); kind {\n\tcase protoreflect.BoolKind:\n\t\te.WriteBool(val.Bool())\n\n\tcase protoreflect.StringKind:\n\t\tif e.WriteString(val.String()) != nil {\n\t\t\treturn errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\te.WriteInt(val.Int())\n\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\te.WriteUint(val.Uint())\n\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Uint64Kind,\n\t\tprotoreflect.Sfixed64Kind, protoreflect.Fixed64Kind:\n\t\t// 64-bit integers are written out as JSON string.\n\t\te.WriteString(val.String())\n\n\tcase protoreflect.FloatKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 32)\n\n\tcase protoreflect.DoubleKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 64)\n\n\tcase protoreflect.BytesKind:\n\t\te.WriteString(base64.StdEncoding.EncodeToString(val.Bytes()))\n\n\tcase protoreflect.EnumKind:\n\t\tif fd.Enum().FullName() == genid.NullValue_enum_fullname {\n\t\t\te.WriteNull()\n\t\t} else {\n\t\t\tdesc := fd.Enum().Values().ByNumber(val.Enum())\n\t\t\tif e.opts.UseEnumNumbers || desc == nil {\n\t\t\t\te.WriteInt(int64(val.Enum()))\n\t\t\t} else {\n\t\t\t\te.WriteString(string(desc.Name()))\n\t\t\t}\n\t\t}\n\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tif err := e.marshalMessage(val.Message(), \"\"); err != nil {\n\t\t\treturn err\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v has unknown kind: %v\", fd.FullName(), kind))\n\t}\n\treturn nil\n}\n\n// marshalList marshals the given protoreflect.List.\nfunc (e encoder) marshalList(list protoreflect.List, fd protoreflect.FieldDescriptor) error {\n\te.StartArray()\n\tdefer e.EndArray()\n\n\tfor i := 0; i < list.Len(); i++ {\n\t\titem := list.Get(i)\n\t\tif err := e.marshalSingular(item, fd); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// marshalMap marshals given protoreflect.Map.\nfunc (e encoder) marshalMap(mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error {\n\te.StartObject()\n\tdefer e.EndObject()\n\n\tvar err error\n\torder.RangeEntries(mmap, order.GenericKeyOrder, func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\tif err = e.WriteName(k.String()); err != nil {\n\t\t\treturn false\n\t\t}\n\t\tif err = e.marshalSingular(v, fd.MapValue()); err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\treturn err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protojson\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"google.golang.org/protobuf/internal/encoding/json\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype marshalFunc func(encoder, protoreflect.Message) error\n\n// wellKnownTypeMarshaler returns a marshal function if the message type\n// has specialized serialization behavior. It returns nil otherwise.\nfunc wellKnownTypeMarshaler(name protoreflect.FullName) marshalFunc {\n\tif name.Parent() == genid.GoogleProtobuf_package {\n\t\tswitch name.Name() {\n\t\tcase genid.Any_message_name:\n\t\t\treturn encoder.marshalAny\n\t\tcase genid.Timestamp_message_name:\n\t\t\treturn encoder.marshalTimestamp\n\t\tcase genid.Duration_message_name:\n\t\t\treturn encoder.marshalDuration\n\t\tcase genid.BoolValue_message_name,\n\t\t\tgenid.Int32Value_message_name,\n\t\t\tgenid.Int64Value_message_name,\n\t\t\tgenid.UInt32Value_message_name,\n\t\t\tgenid.UInt64Value_message_name,\n\t\t\tgenid.FloatValue_message_name,\n\t\t\tgenid.DoubleValue_message_name,\n\t\t\tgenid.StringValue_message_name,\n\t\t\tgenid.BytesValue_message_name:\n\t\t\treturn encoder.marshalWrapperType\n\t\tcase genid.Struct_message_name:\n\t\t\treturn encoder.marshalStruct\n\t\tcase genid.ListValue_message_name:\n\t\t\treturn encoder.marshalListValue\n\t\tcase genid.Value_message_name:\n\t\t\treturn encoder.marshalKnownValue\n\t\tcase genid.FieldMask_message_name:\n\t\t\treturn encoder.marshalFieldMask\n\t\tcase genid.Empty_message_name:\n\t\t\treturn encoder.marshalEmpty\n\t\t}\n\t}\n\treturn nil\n}\n\ntype unmarshalFunc func(decoder, protoreflect.Message) error\n\n// wellKnownTypeUnmarshaler returns a unmarshal function if the message type\n// has specialized serialization behavior. It returns nil otherwise.\nfunc wellKnownTypeUnmarshaler(name protoreflect.FullName) unmarshalFunc {\n\tif name.Parent() == genid.GoogleProtobuf_package {\n\t\tswitch name.Name() {\n\t\tcase genid.Any_message_name:\n\t\t\treturn decoder.unmarshalAny\n\t\tcase genid.Timestamp_message_name:\n\t\t\treturn decoder.unmarshalTimestamp\n\t\tcase genid.Duration_message_name:\n\t\t\treturn decoder.unmarshalDuration\n\t\tcase genid.BoolValue_message_name,\n\t\t\tgenid.Int32Value_message_name,\n\t\t\tgenid.Int64Value_message_name,\n\t\t\tgenid.UInt32Value_message_name,\n\t\t\tgenid.UInt64Value_message_name,\n\t\t\tgenid.FloatValue_message_name,\n\t\t\tgenid.DoubleValue_message_name,\n\t\t\tgenid.StringValue_message_name,\n\t\t\tgenid.BytesValue_message_name:\n\t\t\treturn decoder.unmarshalWrapperType\n\t\tcase genid.Struct_message_name:\n\t\t\treturn decoder.unmarshalStruct\n\t\tcase genid.ListValue_message_name:\n\t\t\treturn decoder.unmarshalListValue\n\t\tcase genid.Value_message_name:\n\t\t\treturn decoder.unmarshalKnownValue\n\t\tcase genid.FieldMask_message_name:\n\t\t\treturn decoder.unmarshalFieldMask\n\t\tcase genid.Empty_message_name:\n\t\t\treturn decoder.unmarshalEmpty\n\t\t}\n\t}\n\treturn nil\n}\n\n// The JSON representation of an Any message uses the regular representation of\n// the deserialized, embedded message, with an additional field `@type` which\n// contains the type URL. If the embedded message type is well-known and has a\n// custom JSON representation, that representation will be embedded adding a\n// field `value` which holds the custom JSON in addition to the `@type` field.\n\nfunc (e encoder) marshalAny(m protoreflect.Message) error {\n\tfds := m.Descriptor().Fields()\n\tfdType := fds.ByNumber(genid.Any_TypeUrl_field_number)\n\tfdValue := fds.ByNumber(genid.Any_Value_field_number)\n\n\tif !m.Has(fdType) {\n\t\tif !m.Has(fdValue) {\n\t\t\t// If message is empty, marshal out empty JSON object.\n\t\t\te.StartObject()\n\t\t\te.EndObject()\n\t\t\treturn nil\n\t\t} else {\n\t\t\t// Return error if type_url field is not set, but value is set.\n\t\t\treturn errors.New(\"%s: %v is not set\", genid.Any_message_fullname, genid.Any_TypeUrl_field_name)\n\t\t}\n\t}\n\n\ttypeVal := m.Get(fdType)\n\tvalueVal := m.Get(fdValue)\n\n\t// Resolve the type in order to unmarshal value field.\n\ttypeURL := typeVal.String()\n\temt, err := e.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn errors.New(\"%s: unable to resolve %q: %v\", genid.Any_message_fullname, typeURL, err)\n\t}\n\n\tem := emt.New()\n\terr = proto.UnmarshalOptions{\n\t\tAllowPartial: true, // never check required fields inside an Any\n\t\tResolver:     e.opts.Resolver,\n\t}.Unmarshal(valueVal.Bytes(), em.Interface())\n\tif err != nil {\n\t\treturn errors.New(\"%s: unable to unmarshal %q: %v\", genid.Any_message_fullname, typeURL, err)\n\t}\n\n\t// If type of value has custom JSON encoding, marshal out a field \"value\"\n\t// with corresponding custom JSON encoding of the embedded message as a\n\t// field.\n\tif marshal := wellKnownTypeMarshaler(emt.Descriptor().FullName()); marshal != nil {\n\t\te.StartObject()\n\t\tdefer e.EndObject()\n\n\t\t// Marshal out @type field.\n\t\te.WriteName(\"@type\")\n\t\tif err := e.WriteString(typeURL); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\te.WriteName(\"value\")\n\t\treturn marshal(e, em)\n\t}\n\n\t// Else, marshal out the embedded message's fields in this Any object.\n\tif err := e.marshalMessage(em, typeURL); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (d decoder) unmarshalAny(m protoreflect.Message) error {\n\t// Peek to check for json.ObjectOpen to avoid advancing a read.\n\tstart, err := d.Peek()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif start.Kind() != json.ObjectOpen {\n\t\treturn d.unexpectedTokenError(start)\n\t}\n\n\t// Use another decoder to parse the unread bytes for @type field. This\n\t// avoids advancing a read from current decoder because the current JSON\n\t// object may contain the fields of the embedded type.\n\tdec := decoder{d.Clone(), UnmarshalOptions{RecursionLimit: d.opts.RecursionLimit}}\n\ttok, err := findTypeURL(dec)\n\tswitch err {\n\tcase errEmptyObject:\n\t\t// An empty JSON object translates to an empty Any message.\n\t\td.Read() // Read json.ObjectOpen.\n\t\td.Read() // Read json.ObjectClose.\n\t\treturn nil\n\n\tcase errMissingType:\n\t\tif d.opts.DiscardUnknown {\n\t\t\t// Treat all fields as unknowns, similar to an empty object.\n\t\t\treturn d.skipJSONValue()\n\t\t}\n\t\t// Use start.Pos() for line position.\n\t\treturn d.newError(start.Pos(), err.Error())\n\n\tdefault:\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ttypeURL := tok.ParsedString()\n\temt, err := d.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn d.newError(tok.Pos(), \"unable to resolve %v: %q\", tok.RawString(), err)\n\t}\n\n\t// Create new message for the embedded message type and unmarshal into it.\n\tem := emt.New()\n\tif unmarshal := wellKnownTypeUnmarshaler(emt.Descriptor().FullName()); unmarshal != nil {\n\t\t// If embedded message is a custom type,\n\t\t// unmarshal the JSON \"value\" field into it.\n\t\tif err := d.unmarshalAnyValue(unmarshal, em); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// Else unmarshal the current JSON object into it.\n\t\tif err := d.unmarshalMessage(em, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t// Serialize the embedded message and assign the resulting bytes to the\n\t// proto value field.\n\tb, err := proto.MarshalOptions{\n\t\tAllowPartial:  true, // No need to check required fields inside an Any.\n\t\tDeterministic: true,\n\t}.Marshal(em.Interface())\n\tif err != nil {\n\t\treturn d.newError(start.Pos(), \"error in marshaling Any.value field: %v\", err)\n\t}\n\n\tfds := m.Descriptor().Fields()\n\tfdType := fds.ByNumber(genid.Any_TypeUrl_field_number)\n\tfdValue := fds.ByNumber(genid.Any_Value_field_number)\n\n\tm.Set(fdType, protoreflect.ValueOfString(typeURL))\n\tm.Set(fdValue, protoreflect.ValueOfBytes(b))\n\treturn nil\n}\n\nvar errEmptyObject = fmt.Errorf(`empty object`)\nvar errMissingType = fmt.Errorf(`missing \"@type\" field`)\n\n// findTypeURL returns the token for the \"@type\" field value from the given\n// JSON bytes. It is expected that the given bytes start with json.ObjectOpen.\n// It returns errEmptyObject if the JSON object is empty or errMissingType if\n// @type field does not exist. It returns other error if the @type field is not\n// valid or other decoding issues.\nfunc findTypeURL(d decoder) (json.Token, error) {\n\tvar typeURL string\n\tvar typeTok json.Token\n\tnumFields := 0\n\t// Skip start object.\n\td.Read()\n\nLoop:\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn json.Token{}, err\n\t\t}\n\n\t\tswitch tok.Kind() {\n\t\tcase json.ObjectClose:\n\t\t\tif typeURL == \"\" {\n\t\t\t\t// Did not find @type field.\n\t\t\t\tif numFields > 0 {\n\t\t\t\t\treturn json.Token{}, errMissingType\n\t\t\t\t}\n\t\t\t\treturn json.Token{}, errEmptyObject\n\t\t\t}\n\t\t\tbreak Loop\n\n\t\tcase json.Name:\n\t\t\tnumFields++\n\t\t\tif tok.Name() != \"@type\" {\n\t\t\t\t// Skip value.\n\t\t\t\tif err := d.skipJSONValue(); err != nil {\n\t\t\t\t\treturn json.Token{}, err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Return error if this was previously set already.\n\t\t\tif typeURL != \"\" {\n\t\t\t\treturn json.Token{}, d.newError(tok.Pos(), `duplicate \"@type\" field`)\n\t\t\t}\n\t\t\t// Read field value.\n\t\t\ttok, err := d.Read()\n\t\t\tif err != nil {\n\t\t\t\treturn json.Token{}, err\n\t\t\t}\n\t\t\tif tok.Kind() != json.String {\n\t\t\t\treturn json.Token{}, d.newError(tok.Pos(), `@type field value is not a string: %v`, tok.RawString())\n\t\t\t}\n\t\t\ttypeURL = tok.ParsedString()\n\t\t\tif typeURL == \"\" {\n\t\t\t\treturn json.Token{}, d.newError(tok.Pos(), `@type field contains empty value`)\n\t\t\t}\n\t\t\ttypeTok = tok\n\t\t}\n\t}\n\n\treturn typeTok, nil\n}\n\n// skipJSONValue parses a JSON value (null, boolean, string, number, object and\n// array) in order to advance the read to the next JSON value. It relies on\n// the decoder returning an error if the types are not in valid sequence.\nfunc (d decoder) skipJSONValue() error {\n\tvar open int\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase json.ObjectClose, json.ArrayClose:\n\t\t\topen--\n\t\tcase json.ObjectOpen, json.ArrayOpen:\n\t\t\topen++\n\t\t\tif open > d.opts.RecursionLimit {\n\t\t\t\treturn errors.New(\"exceeded max recursion depth\")\n\t\t\t}\n\t\tcase json.EOF:\n\t\t\t// This can only happen if there's a bug in Decoder.Read.\n\t\t\t// Avoid an infinite loop if this does happen.\n\t\t\treturn errors.New(\"unexpected EOF\")\n\t\t}\n\t\tif open == 0 {\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\n// unmarshalAnyValue unmarshals the given custom-type message from the JSON\n// object's \"value\" field.\nfunc (d decoder) unmarshalAnyValue(unmarshal unmarshalFunc, m protoreflect.Message) error {\n\t// Skip ObjectOpen, and start reading the fields.\n\td.Read()\n\n\tvar found bool // Used for detecting duplicate \"value\".\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase json.ObjectClose:\n\t\t\tif !found {\n\t\t\t\t// We tolerate an omitted `value` field with the google.protobuf.Empty Well-Known-Type,\n\t\t\t\t// for compatibility with other proto runtimes that have interpreted the spec differently.\n\t\t\t\tif m.Descriptor().FullName() != genid.Empty_message_fullname {\n\t\t\t\t\treturn d.newError(tok.Pos(), `missing \"value\" field`)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\n\t\tcase json.Name:\n\t\t\tswitch tok.Name() {\n\t\t\tcase \"@type\":\n\t\t\t\t// Skip the value as this was previously parsed already.\n\t\t\t\td.Read()\n\n\t\t\tcase \"value\":\n\t\t\t\tif found {\n\t\t\t\t\treturn d.newError(tok.Pos(), `duplicate \"value\" field`)\n\t\t\t\t}\n\t\t\t\t// Unmarshal the field value into the given message.\n\t\t\t\tif err := unmarshal(d, m); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tfound = true\n\n\t\t\tdefault:\n\t\t\t\tif d.opts.DiscardUnknown {\n\t\t\t\t\tif err := d.skipJSONValue(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn d.newError(tok.Pos(), \"unknown field %v\", tok.RawString())\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Wrapper types are encoded as JSON primitives like string, number or boolean.\n\nfunc (e encoder) marshalWrapperType(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number)\n\tval := m.Get(fd)\n\treturn e.marshalSingular(val, fd)\n}\n\nfunc (d decoder) unmarshalWrapperType(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number)\n\tval, err := d.unmarshalScalar(fd)\n\tif err != nil {\n\t\treturn err\n\t}\n\tm.Set(fd, val)\n\treturn nil\n}\n\n// The JSON representation for Empty is an empty JSON object.\n\nfunc (e encoder) marshalEmpty(protoreflect.Message) error {\n\te.StartObject()\n\te.EndObject()\n\treturn nil\n}\n\nfunc (d decoder) unmarshalEmpty(protoreflect.Message) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.ObjectOpen {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase json.ObjectClose:\n\t\t\treturn nil\n\n\t\tcase json.Name:\n\t\t\tif d.opts.DiscardUnknown {\n\t\t\t\tif err := d.skipJSONValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn d.newError(tok.Pos(), \"unknown field %v\", tok.RawString())\n\n\t\tdefault:\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\t}\n}\n\n// The JSON representation for Struct is a JSON object that contains the encoded\n// Struct.fields map and follows the serialization rules for a map.\n\nfunc (e encoder) marshalStruct(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number)\n\treturn e.marshalMap(m.Get(fd).Map(), fd)\n}\n\nfunc (d decoder) unmarshalStruct(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number)\n\treturn d.unmarshalMap(m.Mutable(fd).Map(), fd)\n}\n\n// The JSON representation for ListValue is JSON array that contains the encoded\n// ListValue.values repeated field and follows the serialization rules for a\n// repeated field.\n\nfunc (e encoder) marshalListValue(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number)\n\treturn e.marshalList(m.Get(fd).List(), fd)\n}\n\nfunc (d decoder) unmarshalListValue(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number)\n\treturn d.unmarshalList(m.Mutable(fd).List(), fd)\n}\n\n// The JSON representation for a Value is dependent on the oneof field that is\n// set. Each of the field in the oneof has its own custom serialization rule. A\n// Value message needs to be a oneof field set, else it is an error.\n\nfunc (e encoder) marshalKnownValue(m protoreflect.Message) error {\n\tod := m.Descriptor().Oneofs().ByName(genid.Value_Kind_oneof_name)\n\tfd := m.WhichOneof(od)\n\tif fd == nil {\n\t\treturn errors.New(\"%s: none of the oneof fields is set\", genid.Value_message_fullname)\n\t}\n\tif fd.Number() == genid.Value_NumberValue_field_number {\n\t\tif v := m.Get(fd).Float(); math.IsNaN(v) || math.IsInf(v, 0) {\n\t\t\treturn errors.New(\"%s: invalid %v value\", genid.Value_NumberValue_field_fullname, v)\n\t\t}\n\t}\n\treturn e.marshalSingular(m.Get(fd), fd)\n}\n\nfunc (d decoder) unmarshalKnownValue(m protoreflect.Message) error {\n\ttok, err := d.Peek()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar fd protoreflect.FieldDescriptor\n\tvar val protoreflect.Value\n\tswitch tok.Kind() {\n\tcase json.Null:\n\t\td.Read()\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_NullValue_field_number)\n\t\tval = protoreflect.ValueOfEnum(0)\n\n\tcase json.Bool:\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_BoolValue_field_number)\n\t\tval = protoreflect.ValueOfBool(tok.Bool())\n\n\tcase json.Number:\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_NumberValue_field_number)\n\t\tvar ok bool\n\t\tval, ok = unmarshalFloat(tok, 64)\n\t\tif !ok {\n\t\t\treturn d.newError(tok.Pos(), \"invalid %v: %v\", genid.Value_message_fullname, tok.RawString())\n\t\t}\n\n\tcase json.String:\n\t\t// A JSON string may have been encoded from the number_value field,\n\t\t// e.g. \"NaN\", \"Infinity\", etc. Parsing a proto double type also allows\n\t\t// for it to be in JSON string form. Given this custom encoding spec,\n\t\t// however, there is no way to identify that and hence a JSON string is\n\t\t// always assigned to the string_value field, which means that certain\n\t\t// encoding cannot be parsed back to the same field.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_StringValue_field_number)\n\t\tval = protoreflect.ValueOfString(tok.ParsedString())\n\n\tcase json.ObjectOpen:\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_StructValue_field_number)\n\t\tval = m.NewField(fd)\n\t\tif err := d.unmarshalStruct(val.Message()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase json.ArrayOpen:\n\t\tfd = m.Descriptor().Fields().ByNumber(genid.Value_ListValue_field_number)\n\t\tval = m.NewField(fd)\n\t\tif err := d.unmarshalListValue(val.Message()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\tdefault:\n\t\treturn d.newError(tok.Pos(), \"invalid %v: %v\", genid.Value_message_fullname, tok.RawString())\n\t}\n\n\tm.Set(fd, val)\n\treturn nil\n}\n\n// The JSON representation for a Duration is a JSON string that ends in the\n// suffix \"s\" (indicating seconds) and is preceded by the number of seconds,\n// with nanoseconds expressed as fractional seconds.\n//\n// Durations less than one second are represented with a 0 seconds field and a\n// positive or negative nanos field. For durations of one second or more, a\n// non-zero value for the nanos field must be of the same sign as the seconds\n// field.\n//\n// Duration.seconds must be from -315,576,000,000 to +315,576,000,000 inclusive.\n// Duration.nanos must be from -999,999,999 to +999,999,999 inclusive.\n\nconst (\n\tsecondsInNanos       = 999999999\n\tmaxSecondsInDuration = 315576000000\n)\n\nfunc (e encoder) marshalDuration(m protoreflect.Message) error {\n\tfds := m.Descriptor().Fields()\n\tfdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number)\n\tfdNanos := fds.ByNumber(genid.Duration_Nanos_field_number)\n\n\tsecsVal := m.Get(fdSeconds)\n\tnanosVal := m.Get(fdNanos)\n\tsecs := secsVal.Int()\n\tnanos := nanosVal.Int()\n\tif secs < -maxSecondsInDuration || secs > maxSecondsInDuration {\n\t\treturn errors.New(\"%s: seconds out of range %v\", genid.Duration_message_fullname, secs)\n\t}\n\tif nanos < -secondsInNanos || nanos > secondsInNanos {\n\t\treturn errors.New(\"%s: nanos out of range %v\", genid.Duration_message_fullname, nanos)\n\t}\n\tif (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0) {\n\t\treturn errors.New(\"%s: signs of seconds and nanos do not match\", genid.Duration_message_fullname)\n\t}\n\t// Generated output always contains 0, 3, 6, or 9 fractional digits,\n\t// depending on required precision, followed by the suffix \"s\".\n\tvar sign string\n\tif secs < 0 || nanos < 0 {\n\t\tsign, secs, nanos = \"-\", -1*secs, -1*nanos\n\t}\n\tx := fmt.Sprintf(\"%s%d.%09d\", sign, secs, nanos)\n\tx = strings.TrimSuffix(x, \"000\")\n\tx = strings.TrimSuffix(x, \"000\")\n\tx = strings.TrimSuffix(x, \".000\")\n\te.WriteString(x + \"s\")\n\treturn nil\n}\n\nfunc (d decoder) unmarshalDuration(m protoreflect.Message) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.String {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\tsecs, nanos, ok := parseDuration(tok.ParsedString())\n\tif !ok {\n\t\treturn d.newError(tok.Pos(), \"invalid %v value %v\", genid.Duration_message_fullname, tok.RawString())\n\t}\n\t// Validate seconds. No need to validate nanos because parseDuration would\n\t// have covered that already.\n\tif secs < -maxSecondsInDuration || secs > maxSecondsInDuration {\n\t\treturn d.newError(tok.Pos(), \"%v value out of range: %v\", genid.Duration_message_fullname, tok.RawString())\n\t}\n\n\tfds := m.Descriptor().Fields()\n\tfdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number)\n\tfdNanos := fds.ByNumber(genid.Duration_Nanos_field_number)\n\n\tm.Set(fdSeconds, protoreflect.ValueOfInt64(secs))\n\tm.Set(fdNanos, protoreflect.ValueOfInt32(nanos))\n\treturn nil\n}\n\n// parseDuration parses the given input string for seconds and nanoseconds value\n// for the Duration JSON format. The format is a decimal number with a suffix\n// 's'. It can have optional plus/minus sign. There needs to be at least an\n// integer or fractional part. Fractional part is limited to 9 digits only for\n// nanoseconds precision, regardless of whether there are trailing zero digits.\n// Example values are 1s, 0.1s, 1.s, .1s, +1s, -1s, -.1s.\nfunc parseDuration(input string) (int64, int32, bool) {\n\tb := []byte(input)\n\tsize := len(b)\n\tif size < 2 {\n\t\treturn 0, 0, false\n\t}\n\tif b[size-1] != 's' {\n\t\treturn 0, 0, false\n\t}\n\tb = b[:size-1]\n\n\t// Read optional plus/minus symbol.\n\tvar neg bool\n\tswitch b[0] {\n\tcase '-':\n\t\tneg = true\n\t\tb = b[1:]\n\tcase '+':\n\t\tb = b[1:]\n\t}\n\tif len(b) == 0 {\n\t\treturn 0, 0, false\n\t}\n\n\t// Read the integer part.\n\tvar intp []byte\n\tswitch {\n\tcase b[0] == '0':\n\t\tb = b[1:]\n\n\tcase '1' <= b[0] && b[0] <= '9':\n\t\tintp = b[0:]\n\t\tb = b[1:]\n\t\tn := 1\n\t\tfor len(b) > 0 && '0' <= b[0] && b[0] <= '9' {\n\t\t\tn++\n\t\t\tb = b[1:]\n\t\t}\n\t\tintp = intp[:n]\n\n\tcase b[0] == '.':\n\t\t// Continue below.\n\n\tdefault:\n\t\treturn 0, 0, false\n\t}\n\n\thasFrac := false\n\tvar frac [9]byte\n\tif len(b) > 0 {\n\t\tif b[0] != '.' {\n\t\t\treturn 0, 0, false\n\t\t}\n\t\t// Read the fractional part.\n\t\tb = b[1:]\n\t\tn := 0\n\t\tfor len(b) > 0 && n < 9 && '0' <= b[0] && b[0] <= '9' {\n\t\t\tfrac[n] = b[0]\n\t\t\tn++\n\t\t\tb = b[1:]\n\t\t}\n\t\t// It is not valid if there are more bytes left.\n\t\tif len(b) > 0 {\n\t\t\treturn 0, 0, false\n\t\t}\n\t\t// Pad fractional part with 0s.\n\t\tfor i := n; i < 9; i++ {\n\t\t\tfrac[i] = '0'\n\t\t}\n\t\thasFrac = true\n\t}\n\n\tvar secs int64\n\tif len(intp) > 0 {\n\t\tvar err error\n\t\tsecs, err = strconv.ParseInt(string(intp), 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, 0, false\n\t\t}\n\t}\n\n\tvar nanos int64\n\tif hasFrac {\n\t\tnanob := bytes.TrimLeft(frac[:], \"0\")\n\t\tif len(nanob) > 0 {\n\t\t\tvar err error\n\t\t\tnanos, err = strconv.ParseInt(string(nanob), 10, 32)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, 0, false\n\t\t\t}\n\t\t}\n\t}\n\n\tif neg {\n\t\tif secs > 0 {\n\t\t\tsecs = -secs\n\t\t}\n\t\tif nanos > 0 {\n\t\t\tnanos = -nanos\n\t\t}\n\t}\n\treturn secs, int32(nanos), true\n}\n\n// The JSON representation for a Timestamp is a JSON string in the RFC 3339\n// format, i.e. \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\" where\n// {year} is always expressed using four digits while {month}, {day}, {hour},\n// {min}, and {sec} are zero-padded to two digits each. The fractional seconds,\n// which can go up to 9 digits, up to 1 nanosecond resolution, is optional. The\n// \"Z\" suffix indicates the timezone (\"UTC\"); the timezone is required. Encoding\n// should always use UTC (as indicated by \"Z\") and a decoder should be able to\n// accept both UTC and other timezones (as indicated by an offset).\n//\n// Timestamp.seconds must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z\n// inclusive.\n// Timestamp.nanos must be from 0 to 999,999,999 inclusive.\n\nconst (\n\tmaxTimestampSeconds = 253402300799\n\tminTimestampSeconds = -62135596800\n)\n\nfunc (e encoder) marshalTimestamp(m protoreflect.Message) error {\n\tfds := m.Descriptor().Fields()\n\tfdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number)\n\tfdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number)\n\n\tsecsVal := m.Get(fdSeconds)\n\tnanosVal := m.Get(fdNanos)\n\tsecs := secsVal.Int()\n\tnanos := nanosVal.Int()\n\tif secs < minTimestampSeconds || secs > maxTimestampSeconds {\n\t\treturn errors.New(\"%s: seconds out of range %v\", genid.Timestamp_message_fullname, secs)\n\t}\n\tif nanos < 0 || nanos > secondsInNanos {\n\t\treturn errors.New(\"%s: nanos out of range %v\", genid.Timestamp_message_fullname, nanos)\n\t}\n\t// Uses RFC 3339, where generated output will be Z-normalized and uses 0, 3,\n\t// 6 or 9 fractional digits.\n\tt := time.Unix(secs, nanos).UTC()\n\tx := t.Format(\"2006-01-02T15:04:05.000000000\")\n\tx = strings.TrimSuffix(x, \"000\")\n\tx = strings.TrimSuffix(x, \"000\")\n\tx = strings.TrimSuffix(x, \".000\")\n\te.WriteString(x + \"Z\")\n\treturn nil\n}\n\nfunc (d decoder) unmarshalTimestamp(m protoreflect.Message) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.String {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\n\ts := tok.ParsedString()\n\tt, err := time.Parse(time.RFC3339Nano, s)\n\tif err != nil {\n\t\treturn d.newError(tok.Pos(), \"invalid %v value %v\", genid.Timestamp_message_fullname, tok.RawString())\n\t}\n\t// Validate seconds.\n\tsecs := t.Unix()\n\tif secs < minTimestampSeconds || secs > maxTimestampSeconds {\n\t\treturn d.newError(tok.Pos(), \"%v value out of range: %v\", genid.Timestamp_message_fullname, tok.RawString())\n\t}\n\t// Validate subseconds.\n\ti := strings.LastIndexByte(s, '.')  // start of subsecond field\n\tj := strings.LastIndexAny(s, \"Z-+\") // start of timezone field\n\tif i >= 0 && j >= i && j-i > len(\".999999999\") {\n\t\treturn d.newError(tok.Pos(), \"invalid %v value %v\", genid.Timestamp_message_fullname, tok.RawString())\n\t}\n\n\tfds := m.Descriptor().Fields()\n\tfdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number)\n\tfdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number)\n\n\tm.Set(fdSeconds, protoreflect.ValueOfInt64(secs))\n\tm.Set(fdNanos, protoreflect.ValueOfInt32(int32(t.Nanosecond())))\n\treturn nil\n}\n\n// The JSON representation for a FieldMask is a JSON string where paths are\n// separated by a comma. Fields name in each path are converted to/from\n// lower-camel naming conventions. Encoding should fail if the path name would\n// end up differently after a round-trip.\n\nfunc (e encoder) marshalFieldMask(m protoreflect.Message) error {\n\tfd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number)\n\tlist := m.Get(fd).List()\n\tpaths := make([]string, 0, list.Len())\n\n\tfor i := 0; i < list.Len(); i++ {\n\t\ts := list.Get(i).String()\n\t\tif !protoreflect.FullName(s).IsValid() {\n\t\t\treturn errors.New(\"%s contains invalid path: %q\", genid.FieldMask_Paths_field_fullname, s)\n\t\t}\n\t\t// Return error if conversion to camelCase is not reversible.\n\t\tcc := strs.JSONCamelCase(s)\n\t\tif s != strs.JSONSnakeCase(cc) {\n\t\t\treturn errors.New(\"%s contains irreversible value %q\", genid.FieldMask_Paths_field_fullname, s)\n\t\t}\n\t\tpaths = append(paths, cc)\n\t}\n\n\te.WriteString(strings.Join(paths, \",\"))\n\treturn nil\n}\n\nfunc (d decoder) unmarshalFieldMask(m protoreflect.Message) error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tok.Kind() != json.String {\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n\tstr := strings.TrimSpace(tok.ParsedString())\n\tif str == \"\" {\n\t\treturn nil\n\t}\n\tpaths := strings.Split(str, \",\")\n\n\tfd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number)\n\tlist := m.Mutable(fd).List()\n\n\tfor _, s0 := range paths {\n\t\ts := strs.JSONSnakeCase(s0)\n\t\tif strings.Contains(s0, \"_\") || !protoreflect.FullName(s).IsValid() {\n\t\t\treturn d.newError(tok.Pos(), \"%v contains invalid path: %q\", genid.FieldMask_Paths_field_fullname, s0)\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfString(s))\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage prototext\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/set\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Unmarshal reads the given []byte into the given [proto.Message].\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc Unmarshal(b []byte, m proto.Message) error {\n\treturn UnmarshalOptions{}.Unmarshal(b, m)\n}\n\n// UnmarshalOptions is a configurable textproto format unmarshaler.\ntype UnmarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowPartial accepts input for messages that will result in missing\n\t// required fields. If AllowPartial is false (the default), Unmarshal will\n\t// return error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// DiscardUnknown specifies whether to ignore unknown fields when parsing.\n\t// An unknown field is any field whose field name or field number does not\n\t// resolve to any known or extension field in the message.\n\t// By default, unmarshal rejects unknown fields as an error.\n\tDiscardUnknown bool\n\n\t// Resolver is used for looking up types when unmarshaling\n\t// google.protobuf.Any messages or extension fields.\n\t// If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.MessageTypeResolver\n\t\tprotoregistry.ExtensionTypeResolver\n\t}\n}\n\n// Unmarshal reads the given []byte and populates the given [proto.Message]\n// using options in the UnmarshalOptions object.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {\n\treturn o.unmarshal(b, m)\n}\n\n// unmarshal is a centralized function that all unmarshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for unmarshal that do not go through this.\nfunc (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error {\n\tproto.Reset(m)\n\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\n\tdec := decoder{text.NewDecoder(b), o}\n\tif err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil {\n\t\treturn err\n\t}\n\tif o.AllowPartial {\n\t\treturn nil\n\t}\n\treturn proto.CheckInitialized(m)\n}\n\ntype decoder struct {\n\t*text.Decoder\n\topts UnmarshalOptions\n}\n\n// newError returns an error object with position info.\nfunc (d decoder) newError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"(line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unexpectedTokenError returns a syntax error for the given unexpected token.\nfunc (d decoder) unexpectedTokenError(tok text.Token) error {\n\treturn d.syntaxError(tok.Pos(), \"unexpected token: %s\", tok.RawString())\n}\n\n// syntaxError returns a syntax error for given position.\nfunc (d decoder) syntaxError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"syntax error (line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unmarshalMessage unmarshals into the given protoreflect.Message.\nfunc (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error {\n\tmessageDesc := m.Descriptor()\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tif messageDesc.FullName() == genid.Any_message_fullname {\n\t\treturn d.unmarshalAny(m, checkDelims)\n\t}\n\n\tif checkDelims {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif tok.Kind() != text.MessageOpen {\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\t}\n\n\tvar seenNums set.Ints\n\tvar seenOneofs set.Ints\n\tfieldDescs := messageDesc.Fields()\n\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch typ := tok.Kind(); typ {\n\t\tcase text.Name:\n\t\t\t// Continue below.\n\t\tcase text.EOF:\n\t\t\tif checkDelims {\n\t\t\t\treturn text.ErrUnexpectedEOF\n\t\t\t}\n\t\t\treturn nil\n\t\tdefault:\n\t\t\tif checkDelims && typ == text.MessageClose {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\t// Resolve the field descriptor.\n\t\tvar name protoreflect.Name\n\t\tvar fd protoreflect.FieldDescriptor\n\t\tvar xt protoreflect.ExtensionType\n\t\tvar xtErr error\n\t\tvar isFieldNumberName bool\n\n\t\tswitch tok.NameKind() {\n\t\tcase text.IdentName:\n\t\t\tname = protoreflect.Name(tok.IdentName())\n\t\t\tfd = fieldDescs.ByTextName(string(name))\n\n\t\tcase text.TypeName:\n\t\t\t// Handle extensions only. This code path is not for Any.\n\t\t\txt, xtErr = d.opts.Resolver.FindExtensionByName(protoreflect.FullName(tok.TypeName()))\n\n\t\tcase text.FieldNumber:\n\t\t\tisFieldNumberName = true\n\t\t\tnum := protoreflect.FieldNumber(tok.FieldNumber())\n\t\t\tif !num.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"invalid field number: %d\", num)\n\t\t\t}\n\t\t\tfd = fieldDescs.ByNumber(num)\n\t\t\tif fd == nil {\n\t\t\t\txt, xtErr = d.opts.Resolver.FindExtensionByNumber(messageDesc.FullName(), num)\n\t\t\t}\n\t\t}\n\n\t\tif xt != nil {\n\t\t\tfd = xt.TypeDescriptor()\n\t\t\tif !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() {\n\t\t\t\treturn d.newError(tok.Pos(), \"message %v cannot be extended by %v\", messageDesc.FullName(), fd.FullName())\n\t\t\t}\n\t\t} else if xtErr != nil && xtErr != protoregistry.NotFound {\n\t\t\treturn d.newError(tok.Pos(), \"unable to resolve [%s]: %v\", tok.RawString(), xtErr)\n\t\t}\n\n\t\t// Handle unknown fields.\n\t\tif fd == nil {\n\t\t\tif d.opts.DiscardUnknown || messageDesc.ReservedNames().Has(name) {\n\t\t\t\td.skipValue()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn d.newError(tok.Pos(), \"unknown field: %v\", tok.RawString())\n\t\t}\n\n\t\t// Handle fields identified by field number.\n\t\tif isFieldNumberName {\n\t\t\t// TODO: Add an option to permit parsing field numbers.\n\t\t\t//\n\t\t\t// This requires careful thought as the MarshalOptions.EmitUnknown\n\t\t\t// option allows formatting unknown fields as the field number and the\n\t\t\t// best-effort textual representation of the field value.  In that case,\n\t\t\t// it may not be possible to unmarshal the value from a parser that does\n\t\t\t// have information about the unknown field.\n\t\t\treturn d.newError(tok.Pos(), \"cannot specify field by number: %v\", tok.RawString())\n\t\t}\n\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tkind := fd.Kind()\n\t\t\tif kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\tlist := m.Mutable(fd).List()\n\t\t\tif err := d.unmarshalList(fd, list); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tcase fd.IsMap():\n\t\t\tmmap := m.Mutable(fd).Map()\n\t\t\tif err := d.unmarshalMap(fd, mmap); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tdefault:\n\t\t\tkind := fd.Kind()\n\t\t\tif kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\t// If field is a oneof, check if it has already been set.\n\t\t\tif od := fd.ContainingOneof(); od != nil {\n\t\t\t\tidx := uint64(od.Index())\n\t\t\t\tif seenOneofs.Has(idx) {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"error parsing %q, oneof %v is already set\", tok.RawString(), od.FullName())\n\t\t\t\t}\n\t\t\t\tseenOneofs.Set(idx)\n\t\t\t}\n\n\t\t\tnum := uint64(fd.Number())\n\t\t\tif seenNums.Has(num) {\n\t\t\t\treturn d.newError(tok.Pos(), \"non-repeated field %q is repeated\", tok.RawString())\n\t\t\t}\n\n\t\t\tif err := d.unmarshalSingular(fd, m); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tseenNums.Set(num)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// unmarshalSingular unmarshals a non-repeated field value specified by the\n// given FieldDescriptor.\nfunc (d decoder) unmarshalSingular(fd protoreflect.FieldDescriptor, m protoreflect.Message) error {\n\tvar val protoreflect.Value\n\tvar err error\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tval = m.NewField(fd)\n\t\terr = d.unmarshalMessage(val.Message(), true)\n\tdefault:\n\t\tval, err = d.unmarshalScalar(fd)\n\t}\n\tif err == nil {\n\t\tm.Set(fd, val)\n\t}\n\treturn err\n}\n\n// unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the\n// given FieldDescriptor.\nfunc (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn protoreflect.Value{}, err\n\t}\n\n\tif tok.Kind() != text.Scalar {\n\t\treturn protoreflect.Value{}, d.unexpectedTokenError(tok)\n\t}\n\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\tif b, ok := tok.Bool(); ok {\n\t\t\treturn protoreflect.ValueOfBool(b), nil\n\t\t}\n\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif n, ok := tok.Int32(); ok {\n\t\t\treturn protoreflect.ValueOfInt32(n), nil\n\t\t}\n\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif n, ok := tok.Int64(); ok {\n\t\t\treturn protoreflect.ValueOfInt64(n), nil\n\t\t}\n\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif n, ok := tok.Uint32(); ok {\n\t\t\treturn protoreflect.ValueOfUint32(n), nil\n\t\t}\n\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif n, ok := tok.Uint64(); ok {\n\t\t\treturn protoreflect.ValueOfUint64(n), nil\n\t\t}\n\n\tcase protoreflect.FloatKind:\n\t\tif n, ok := tok.Float32(); ok {\n\t\t\treturn protoreflect.ValueOfFloat32(n), nil\n\t\t}\n\n\tcase protoreflect.DoubleKind:\n\t\tif n, ok := tok.Float64(); ok {\n\t\t\treturn protoreflect.ValueOfFloat64(n), nil\n\t\t}\n\n\tcase protoreflect.StringKind:\n\t\tif s, ok := tok.String(); ok {\n\t\t\tif strs.EnforceUTF8(fd) && !utf8.ValidString(s) {\n\t\t\t\treturn protoreflect.Value{}, d.newError(tok.Pos(), \"contains invalid UTF-8\")\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfString(s), nil\n\t\t}\n\n\tcase protoreflect.BytesKind:\n\t\tif b, ok := tok.String(); ok {\n\t\t\treturn protoreflect.ValueOfBytes([]byte(b)), nil\n\t\t}\n\n\tcase protoreflect.EnumKind:\n\t\tif lit, ok := tok.Enum(); ok {\n\t\t\t// Lookup EnumNumber based on name.\n\t\t\tif enumVal := fd.Enum().Values().ByName(protoreflect.Name(lit)); enumVal != nil {\n\t\t\t\treturn protoreflect.ValueOfEnum(enumVal.Number()), nil\n\t\t\t}\n\t\t}\n\t\tif num, ok := tok.Int32(); ok {\n\t\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(num)), nil\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid scalar kind %v\", kind))\n\t}\n\n\treturn protoreflect.Value{}, d.newError(tok.Pos(), \"invalid value for %v type: %v\", kind, tok.RawString())\n}\n\n// unmarshalList unmarshals into given protoreflect.List. A list value can\n// either be in [] syntax or simply just a single scalar/message value.\nfunc (d decoder) unmarshalList(fd protoreflect.FieldDescriptor, list protoreflect.List) error {\n\ttok, err := d.Peek()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tswitch tok.Kind() {\n\t\tcase text.ListOpen:\n\t\t\td.Read()\n\t\t\tfor {\n\t\t\t\ttok, err := d.Peek()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tswitch tok.Kind() {\n\t\t\t\tcase text.ListClose:\n\t\t\t\t\td.Read()\n\t\t\t\t\treturn nil\n\t\t\t\tcase text.MessageOpen:\n\t\t\t\t\tpval := list.NewElement()\n\t\t\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tlist.Append(pval)\n\t\t\t\tdefault:\n\t\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.MessageOpen:\n\t\t\tpval := list.NewElement()\n\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlist.Append(pval)\n\t\t\treturn nil\n\t\t}\n\n\tdefault:\n\t\tswitch tok.Kind() {\n\t\tcase text.ListOpen:\n\t\t\td.Read()\n\t\t\tfor {\n\t\t\t\ttok, err := d.Peek()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tswitch tok.Kind() {\n\t\t\t\tcase text.ListClose:\n\t\t\t\t\td.Read()\n\t\t\t\t\treturn nil\n\t\t\t\tcase text.Scalar:\n\t\t\t\t\tpval, err := d.unmarshalScalar(fd)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tlist.Append(pval)\n\t\t\t\tdefault:\n\t\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.Scalar:\n\t\t\tpval, err := d.unmarshalScalar(fd)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlist.Append(pval)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn d.unexpectedTokenError(tok)\n}\n\n// unmarshalMap unmarshals into given protoreflect.Map. A map value is a\n// textproto message containing {key: <kvalue>, value: <mvalue>}.\nfunc (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error {\n\t// Determine ahead whether map entry is a scalar type or a message type in\n\t// order to call the appropriate unmarshalMapValue func inside\n\t// unmarshalMapEntry.\n\tvar unmarshalMapValue func() (protoreflect.Value, error)\n\tswitch fd.MapValue().Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\tpval := mmap.NewValue()\n\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\treturn protoreflect.Value{}, err\n\t\t\t}\n\t\t\treturn pval, nil\n\t\t}\n\tdefault:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\treturn d.unmarshalScalar(fd.MapValue())\n\t\t}\n\t}\n\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch tok.Kind() {\n\tcase text.MessageOpen:\n\t\treturn d.unmarshalMapEntry(fd, mmap, unmarshalMapValue)\n\n\tcase text.ListOpen:\n\t\tfor {\n\t\t\ttok, err := d.Read()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch tok.Kind() {\n\t\t\tcase text.ListClose:\n\t\t\t\treturn nil\n\t\t\tcase text.MessageOpen:\n\t\t\t\tif err := d.unmarshalMapEntry(fd, mmap, unmarshalMapValue); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n}\n\n// unmarshalMap unmarshals into given protoreflect.Map. A map value is a\n// textproto message containing {key: <kvalue>, value: <mvalue>}.\nfunc (d decoder) unmarshalMapEntry(fd protoreflect.FieldDescriptor, mmap protoreflect.Map, unmarshalMapValue func() (protoreflect.Value, error)) error {\n\tvar key protoreflect.MapKey\n\tvar pval protoreflect.Value\nLoop:\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase text.Name:\n\t\t\tif tok.NameKind() != text.IdentName {\n\t\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"unknown map entry field %q\", tok.RawString())\n\t\t\t\t}\n\t\t\t\td.skipValue()\n\t\t\t\tcontinue Loop\n\t\t\t}\n\t\t\t// Continue below.\n\t\tcase text.MessageClose:\n\t\t\tbreak Loop\n\t\tdefault:\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\tswitch name := protoreflect.Name(tok.IdentName()); name {\n\t\tcase genid.MapEntry_Key_field_name:\n\t\t\tif !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\t\t\tif key.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"map entry %q cannot be repeated\", name)\n\t\t\t}\n\t\t\tval, err := d.unmarshalScalar(fd.MapKey())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tkey = val.MapKey()\n\n\t\tcase genid.MapEntry_Value_field_name:\n\t\t\tif kind := fd.MapValue().Kind(); (kind != protoreflect.MessageKind) && (kind != protoreflect.GroupKind) {\n\t\t\t\tif !tok.HasSeparator() {\n\t\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t\t}\n\t\t\t}\n\t\t\tif pval.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"map entry %q cannot be repeated\", name)\n\t\t\t}\n\t\t\tpval, err = unmarshalMapValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\treturn d.newError(tok.Pos(), \"unknown map entry field %q\", name)\n\t\t\t}\n\t\t\td.skipValue()\n\t\t}\n\t}\n\n\tif !key.IsValid() {\n\t\tkey = fd.MapKey().Default().MapKey()\n\t}\n\tif !pval.IsValid() {\n\t\tswitch fd.MapValue().Kind() {\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t// If value field is not set for message/group types, construct an\n\t\t\t// empty one as default.\n\t\t\tpval = mmap.NewValue()\n\t\tdefault:\n\t\t\tpval = fd.MapValue().Default()\n\t\t}\n\t}\n\tmmap.Set(key, pval)\n\treturn nil\n}\n\n// unmarshalAny unmarshals an Any textproto. It can either be in expanded form\n// or non-expanded form.\nfunc (d decoder) unmarshalAny(m protoreflect.Message, checkDelims bool) error {\n\tvar typeURL string\n\tvar bValue []byte\n\tvar seenTypeUrl bool\n\tvar seenValue bool\n\tvar isExpanded bool\n\n\tif checkDelims {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif tok.Kind() != text.MessageOpen {\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\t}\n\nLoop:\n\tfor {\n\t\t// Read field name. Can only have 3 possible field names, i.e. type_url,\n\t\t// value and type URL name inside [].\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif typ := tok.Kind(); typ != text.Name {\n\t\t\tif checkDelims {\n\t\t\t\tif typ == text.MessageClose {\n\t\t\t\t\tbreak Loop\n\t\t\t\t}\n\t\t\t} else if typ == text.EOF {\n\t\t\t\tbreak Loop\n\t\t\t}\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\tswitch tok.NameKind() {\n\t\tcase text.IdentName:\n\t\t\t// Both type_url and value fields require field separator :.\n\t\t\tif !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\tswitch name := protoreflect.Name(tok.IdentName()); name {\n\t\t\tcase genid.Any_TypeUrl_field_name:\n\t\t\t\tif seenTypeUrl {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"duplicate %v field\", genid.Any_TypeUrl_field_fullname)\n\t\t\t\t}\n\t\t\t\tif isExpanded {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"conflict with [%s] field\", typeURL)\n\t\t\t\t}\n\t\t\t\ttok, err := d.Read()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tvar ok bool\n\t\t\t\ttypeURL, ok = tok.String()\n\t\t\t\tif !ok {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid %v field value: %v\", genid.Any_TypeUrl_field_fullname, tok.RawString())\n\t\t\t\t}\n\t\t\t\tseenTypeUrl = true\n\n\t\t\tcase genid.Any_Value_field_name:\n\t\t\t\tif seenValue {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"duplicate %v field\", genid.Any_Value_field_fullname)\n\t\t\t\t}\n\t\t\t\tif isExpanded {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"conflict with [%s] field\", typeURL)\n\t\t\t\t}\n\t\t\t\ttok, err := d.Read()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ts, ok := tok.String()\n\t\t\t\tif !ok {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid %v field value: %v\", genid.Any_Value_field_fullname, tok.RawString())\n\t\t\t\t}\n\t\t\t\tbValue = []byte(s)\n\t\t\t\tseenValue = true\n\n\t\t\tdefault:\n\t\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid field name %q in %v message\", tok.RawString(), genid.Any_message_fullname)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.TypeName:\n\t\t\tif isExpanded {\n\t\t\t\treturn d.newError(tok.Pos(), \"cannot have more than one type\")\n\t\t\t}\n\t\t\tif seenTypeUrl {\n\t\t\t\treturn d.newError(tok.Pos(), \"conflict with type_url field\")\n\t\t\t}\n\t\t\ttypeURL = tok.TypeName()\n\t\t\tvar err error\n\t\t\tbValue, err = d.unmarshalExpandedAny(typeURL, tok.Pos())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tisExpanded = true\n\n\t\tdefault:\n\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\treturn d.newError(tok.Pos(), \"invalid field name %q in %v message\", tok.RawString(), genid.Any_message_fullname)\n\t\t\t}\n\t\t}\n\t}\n\n\tfds := m.Descriptor().Fields()\n\tif len(typeURL) > 0 {\n\t\tm.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), protoreflect.ValueOfString(typeURL))\n\t}\n\tif len(bValue) > 0 {\n\t\tm.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(bValue))\n\t}\n\treturn nil\n}\n\nfunc (d decoder) unmarshalExpandedAny(typeURL string, pos int) ([]byte, error) {\n\tmt, err := d.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn nil, d.newError(pos, \"unable to resolve message [%v]: %v\", typeURL, err)\n\t}\n\t// Create new message for the embedded message type and unmarshal the value\n\t// field into it.\n\tm := mt.New()\n\tif err := d.unmarshalMessage(m, true); err != nil {\n\t\treturn nil, err\n\t}\n\t// Serialize the embedded message and return the resulting bytes.\n\tb, err := proto.MarshalOptions{\n\t\tAllowPartial:  true, // Never check required fields inside an Any.\n\t\tDeterministic: true,\n\t}.Marshal(m.Interface())\n\tif err != nil {\n\t\treturn nil, d.newError(pos, \"error in marshaling message into Any.value: %v\", err)\n\t}\n\treturn b, nil\n}\n\n// skipValue makes the decoder parse a field value in order to advance the read\n// to the next field. It relies on Read returning an error if the types are not\n// in valid sequence.\nfunc (d decoder) skipValue() error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Only need to continue reading for messages and lists.\n\tswitch tok.Kind() {\n\tcase text.MessageOpen:\n\t\treturn d.skipMessageValue()\n\n\tcase text.ListOpen:\n\t\tfor {\n\t\t\ttok, err := d.Read()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch tok.Kind() {\n\t\t\tcase text.ListClose:\n\t\t\t\treturn nil\n\t\t\tcase text.MessageOpen:\n\t\t\t\tif err := d.skipMessageValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t// Skip items. This will not validate whether skipped values are\n\t\t\t\t// of the same type or not, same behavior as C++\n\t\t\t\t// TextFormat::Parser::AllowUnknownField(true) version 3.8.0.\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// skipMessageValue makes the decoder parse and skip over all fields in a\n// message. It assumes that the previous read type is MessageOpen.\nfunc (d decoder) skipMessageValue() error {\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase text.MessageClose:\n\t\t\treturn nil\n\t\tcase text.Name:\n\t\t\tif err := d.skipValue(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package prototext marshals and unmarshals protocol buffer messages as the\n// textproto format.\npackage prototext\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/encode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage prototext\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst defaultIndent = \"  \"\n\n// Format formats the message as a multiline string.\n// This function is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc Format(m proto.Message) string {\n\treturn MarshalOptions{Multiline: true}.Format(m)\n}\n\n// Marshal writes the given [proto.Message] in textproto format using default\n// options. Do not depend on the output being stable. Its output will change\n// across different builds of your program, even when using the same version of\n// the protobuf module.\nfunc Marshal(m proto.Message) ([]byte, error) {\n\treturn MarshalOptions{}.Marshal(m)\n}\n\n// MarshalOptions is a configurable text format marshaler.\ntype MarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Multiline specifies whether the marshaler should format the output in\n\t// indented-form with every textual element on a new line.\n\t// If Indent is an empty string, then an arbitrary indent is chosen.\n\tMultiline bool\n\n\t// Indent specifies the set of indentation characters to use in a multiline\n\t// formatted output such that every entry is preceded by Indent and\n\t// terminated by a newline. If non-empty, then Multiline is treated as true.\n\t// Indent can only be composed of space or tab characters.\n\tIndent string\n\n\t// EmitASCII specifies whether to format strings and bytes as ASCII only\n\t// as opposed to using UTF-8 encoding when possible.\n\tEmitASCII bool\n\n\t// allowInvalidUTF8 specifies whether to permit the encoding of strings\n\t// with invalid UTF-8. This is unexported as it is intended to only\n\t// be specified by the Format method.\n\tallowInvalidUTF8 bool\n\n\t// AllowPartial allows messages that have missing required fields to marshal\n\t// without returning an error. If AllowPartial is false (the default),\n\t// Marshal will return error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// EmitUnknown specifies whether to emit unknown fields in the output.\n\t// If specified, the unmarshaler may be unable to parse the output.\n\t// The default is to exclude unknown fields.\n\tEmitUnknown bool\n\n\t// Resolver is used for looking up types when expanding google.protobuf.Any\n\t// messages. If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.ExtensionTypeResolver\n\t\tprotoregistry.MessageTypeResolver\n\t}\n}\n\n// Format formats the message as a string.\n// This method is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc (o MarshalOptions) Format(m proto.Message) string {\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\treturn \"<nil>\" // invalid syntax, but okay since this is for debugging\n\t}\n\to.allowInvalidUTF8 = true\n\to.AllowPartial = true\n\to.EmitUnknown = true\n\tb, _ := o.Marshal(m)\n\treturn string(b)\n}\n\n// Marshal writes the given [proto.Message] in textproto format using options in\n// MarshalOptions object. Do not depend on the output being stable. Its output\n// will change across different builds of your program, even when using the\n// same version of the protobuf module.\nfunc (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) {\n\treturn o.marshal(nil, m)\n}\n\n// MarshalAppend appends the textproto format encoding of m to b,\n// returning the result.\nfunc (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) {\n\treturn o.marshal(b, m)\n}\n\n// marshal is a centralized function that all marshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for marshal that do not go through this.\nfunc (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) {\n\tvar delims = [2]byte{'{', '}'}\n\n\tif o.Multiline && o.Indent == \"\" {\n\t\to.Indent = defaultIndent\n\t}\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\n\tinternalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Treat nil message interface as an empty message,\n\t// in which case there is nothing to output.\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\tenc := encoder{internalEnc, o}\n\terr = enc.marshalMessage(m.ProtoReflect(), false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tout := enc.Bytes()\n\tif len(o.Indent) > 0 && len(out) > 0 {\n\t\tout = append(out, '\\n')\n\t}\n\tif o.AllowPartial {\n\t\treturn out, nil\n\t}\n\treturn out, proto.CheckInitialized(m)\n}\n\ntype encoder struct {\n\t*text.Encoder\n\topts MarshalOptions\n}\n\n// marshalMessage marshals the given protoreflect.Message.\nfunc (e encoder) marshalMessage(m protoreflect.Message, inclDelims bool) error {\n\tmessageDesc := m.Descriptor()\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tif inclDelims {\n\t\te.StartMessage()\n\t\tdefer e.EndMessage()\n\t}\n\n\t// Handle Any expansion.\n\tif messageDesc.FullName() == genid.Any_message_fullname {\n\t\tif e.marshalAny(m) {\n\t\t\treturn nil\n\t\t}\n\t\t// If unable to expand, continue on to marshal Any as a regular message.\n\t}\n\n\t// Marshal fields.\n\tvar err error\n\torder.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif err = e.marshalField(fd.TextName(), v, fd); err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Marshal unknown fields.\n\tif e.opts.EmitUnknown {\n\t\te.marshalUnknown(m.GetUnknown())\n\t}\n\n\treturn nil\n}\n\n// marshalField marshals the given field with protoreflect.Value.\nfunc (e encoder) marshalField(name string, val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn e.marshalList(name, val.List(), fd)\n\tcase fd.IsMap():\n\t\treturn e.marshalMap(name, val.Map(), fd)\n\tdefault:\n\t\te.WriteName(name)\n\t\treturn e.marshalSingular(val, fd)\n\t}\n}\n\n// marshalSingular marshals the given non-repeated field value. This includes\n// all scalar types, enums, messages, and groups.\nfunc (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\te.WriteBool(val.Bool())\n\n\tcase protoreflect.StringKind:\n\t\ts := val.String()\n\t\tif !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) {\n\t\t\treturn errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\te.WriteString(s)\n\n\tcase protoreflect.Int32Kind, protoreflect.Int64Kind,\n\t\tprotoreflect.Sint32Kind, protoreflect.Sint64Kind,\n\t\tprotoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind:\n\t\te.WriteInt(val.Int())\n\n\tcase protoreflect.Uint32Kind, protoreflect.Uint64Kind,\n\t\tprotoreflect.Fixed32Kind, protoreflect.Fixed64Kind:\n\t\te.WriteUint(val.Uint())\n\n\tcase protoreflect.FloatKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 32)\n\n\tcase protoreflect.DoubleKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 64)\n\n\tcase protoreflect.BytesKind:\n\t\te.WriteString(string(val.Bytes()))\n\n\tcase protoreflect.EnumKind:\n\t\tnum := val.Enum()\n\t\tif desc := fd.Enum().Values().ByNumber(num); desc != nil {\n\t\t\te.WriteLiteral(string(desc.Name()))\n\t\t} else {\n\t\t\t// Use numeric value if there is no enum description.\n\t\t\te.WriteInt(int64(num))\n\t\t}\n\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn e.marshalMessage(val.Message(), true)\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v has unknown kind: %v\", fd.FullName(), kind))\n\t}\n\treturn nil\n}\n\n// marshalList marshals the given protoreflect.List as multiple name-value fields.\nfunc (e encoder) marshalList(name string, list protoreflect.List, fd protoreflect.FieldDescriptor) error {\n\tsize := list.Len()\n\tfor i := 0; i < size; i++ {\n\t\te.WriteName(name)\n\t\tif err := e.marshalSingular(list.Get(i), fd); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// marshalMap marshals the given protoreflect.Map as multiple name-value fields.\nfunc (e encoder) marshalMap(name string, mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error {\n\tvar err error\n\torder.RangeEntries(mmap, order.GenericKeyOrder, func(key protoreflect.MapKey, val protoreflect.Value) bool {\n\t\te.WriteName(name)\n\t\te.StartMessage()\n\t\tdefer e.EndMessage()\n\n\t\te.WriteName(string(genid.MapEntry_Key_field_name))\n\t\terr = e.marshalSingular(key.Value(), fd.MapKey())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\te.WriteName(string(genid.MapEntry_Value_field_name))\n\t\terr = e.marshalSingular(val, fd.MapValue())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\treturn err\n}\n\n// marshalUnknown parses the given []byte and marshals fields out.\n// This function assumes proper encoding in the given []byte.\nfunc (e encoder) marshalUnknown(b []byte) {\n\tconst dec = 10\n\tconst hex = 16\n\tfor len(b) > 0 {\n\t\tnum, wtype, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\te.WriteName(strconv.FormatInt(int64(num), dec))\n\n\t\tswitch wtype {\n\t\tcase protowire.VarintType:\n\t\t\tvar v uint64\n\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\te.WriteUint(v)\n\t\tcase protowire.Fixed32Type:\n\t\t\tvar v uint32\n\t\t\tv, n = protowire.ConsumeFixed32(b)\n\t\t\te.WriteLiteral(\"0x\" + strconv.FormatUint(uint64(v), hex))\n\t\tcase protowire.Fixed64Type:\n\t\t\tvar v uint64\n\t\t\tv, n = protowire.ConsumeFixed64(b)\n\t\t\te.WriteLiteral(\"0x\" + strconv.FormatUint(v, hex))\n\t\tcase protowire.BytesType:\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeBytes(b)\n\t\t\te.WriteString(string(v))\n\t\tcase protowire.StartGroupType:\n\t\t\te.StartMessage()\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeGroup(num, b)\n\t\t\te.marshalUnknown(v)\n\t\t\te.EndMessage()\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"prototext: error parsing unknown field wire type: %v\", wtype))\n\t\t}\n\n\t\tb = b[n:]\n\t}\n}\n\n// marshalAny marshals the given google.protobuf.Any message in expanded form.\n// It returns true if it was able to marshal, else false.\nfunc (e encoder) marshalAny(any protoreflect.Message) bool {\n\t// Construct the embedded message.\n\tfds := any.Descriptor().Fields()\n\tfdType := fds.ByNumber(genid.Any_TypeUrl_field_number)\n\ttypeURL := any.Get(fdType).String()\n\tmt, err := e.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn false\n\t}\n\tm := mt.New().Interface()\n\n\t// Unmarshal bytes into embedded message.\n\tfdValue := fds.ByNumber(genid.Any_Value_field_number)\n\tvalue := any.Get(fdValue)\n\terr = proto.UnmarshalOptions{\n\t\tAllowPartial: true,\n\t\tResolver:     e.opts.Resolver,\n\t}.Unmarshal(value.Bytes(), m)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\t// Get current encoder position. If marshaling fails, reset encoder output\n\t// back to this position.\n\tpos := e.Snapshot()\n\n\t// Field name is the proto field name enclosed in [].\n\te.WriteName(\"[\" + typeURL + \"]\")\n\terr = e.marshalMessage(m.ProtoReflect(), true)\n\tif err != nil {\n\t\te.Reset(pos)\n\t\treturn false\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protowire/wire.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protowire parses and formats the raw wire encoding.\n// See https://protobuf.dev/programming-guides/encoding.\n//\n// For marshaling and unmarshaling entire protobuf messages,\n// use the [google.golang.org/protobuf/proto] package instead.\npackage protowire\n\nimport (\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// Number represents the field number.\ntype Number int32\n\nconst (\n\tMinValidNumber        Number = 1\n\tFirstReservedNumber   Number = 19000\n\tLastReservedNumber    Number = 19999\n\tMaxValidNumber        Number = 1<<29 - 1\n\tDefaultRecursionLimit        = 10000\n)\n\n// IsValid reports whether the field number is semantically valid.\nfunc (n Number) IsValid() bool {\n\treturn MinValidNumber <= n && n <= MaxValidNumber\n}\n\n// Type represents the wire type.\ntype Type int8\n\nconst (\n\tVarintType     Type = 0\n\tFixed32Type    Type = 5\n\tFixed64Type    Type = 1\n\tBytesType      Type = 2\n\tStartGroupType Type = 3\n\tEndGroupType   Type = 4\n)\n\nconst (\n\t_ = -iota\n\terrCodeTruncated\n\terrCodeFieldNumber\n\terrCodeOverflow\n\terrCodeReserved\n\terrCodeEndGroup\n\terrCodeRecursionDepth\n)\n\nvar (\n\terrFieldNumber = errors.New(\"invalid field number\")\n\terrOverflow    = errors.New(\"variable length integer overflow\")\n\terrReserved    = errors.New(\"cannot parse reserved wire type\")\n\terrEndGroup    = errors.New(\"mismatching end group marker\")\n\terrParse       = errors.New(\"parse error\")\n)\n\n// ParseError converts an error code into an error value.\n// This returns nil if n is a non-negative number.\nfunc ParseError(n int) error {\n\tif n >= 0 {\n\t\treturn nil\n\t}\n\tswitch n {\n\tcase errCodeTruncated:\n\t\treturn io.ErrUnexpectedEOF\n\tcase errCodeFieldNumber:\n\t\treturn errFieldNumber\n\tcase errCodeOverflow:\n\t\treturn errOverflow\n\tcase errCodeReserved:\n\t\treturn errReserved\n\tcase errCodeEndGroup:\n\t\treturn errEndGroup\n\tdefault:\n\t\treturn errParse\n\t}\n}\n\n// ConsumeField parses an entire field record (both tag and value) and returns\n// the field number, the wire type, and the total length.\n// This returns a negative length upon an error (see [ParseError]).\n//\n// The total length includes the tag header and the end group marker (if the\n// field is a group).\nfunc ConsumeField(b []byte) (Number, Type, int) {\n\tnum, typ, n := ConsumeTag(b)\n\tif n < 0 {\n\t\treturn 0, 0, n // forward error code\n\t}\n\tm := ConsumeFieldValue(num, typ, b[n:])\n\tif m < 0 {\n\t\treturn 0, 0, m // forward error code\n\t}\n\treturn num, typ, n + m\n}\n\n// ConsumeFieldValue parses a field value and returns its length.\n// This assumes that the field [Number] and wire [Type] have already been parsed.\n// This returns a negative length upon an error (see [ParseError]).\n//\n// When parsing a group, the length includes the end group marker and\n// the end group is verified to match the starting field number.\nfunc ConsumeFieldValue(num Number, typ Type, b []byte) (n int) {\n\treturn consumeFieldValueD(num, typ, b, DefaultRecursionLimit)\n}\n\nfunc consumeFieldValueD(num Number, typ Type, b []byte, depth int) (n int) {\n\tswitch typ {\n\tcase VarintType:\n\t\t_, n = ConsumeVarint(b)\n\t\treturn n\n\tcase Fixed32Type:\n\t\t_, n = ConsumeFixed32(b)\n\t\treturn n\n\tcase Fixed64Type:\n\t\t_, n = ConsumeFixed64(b)\n\t\treturn n\n\tcase BytesType:\n\t\t_, n = ConsumeBytes(b)\n\t\treturn n\n\tcase StartGroupType:\n\t\tif depth < 0 {\n\t\t\treturn errCodeRecursionDepth\n\t\t}\n\t\tn0 := len(b)\n\t\tfor {\n\t\t\tnum2, typ2, n := ConsumeTag(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn n // forward error code\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tif typ2 == EndGroupType {\n\t\t\t\tif num != num2 {\n\t\t\t\t\treturn errCodeEndGroup\n\t\t\t\t}\n\t\t\t\treturn n0 - len(b)\n\t\t\t}\n\n\t\t\tn = consumeFieldValueD(num2, typ2, b, depth-1)\n\t\t\tif n < 0 {\n\t\t\t\treturn n // forward error code\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\tcase EndGroupType:\n\t\treturn errCodeEndGroup\n\tdefault:\n\t\treturn errCodeReserved\n\t}\n}\n\n// AppendTag encodes num and typ as a varint-encoded tag and appends it to b.\nfunc AppendTag(b []byte, num Number, typ Type) []byte {\n\treturn AppendVarint(b, EncodeTag(num, typ))\n}\n\n// ConsumeTag parses b as a varint-encoded tag, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeTag(b []byte) (Number, Type, int) {\n\tv, n := ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn 0, 0, n // forward error code\n\t}\n\tnum, typ := DecodeTag(v)\n\tif num < MinValidNumber {\n\t\treturn 0, 0, errCodeFieldNumber\n\t}\n\treturn num, typ, n\n}\n\nfunc SizeTag(num Number) int {\n\treturn SizeVarint(EncodeTag(num, 0)) // wire type has no effect on size\n}\n\n// AppendVarint appends v to b as a varint-encoded uint64.\nfunc AppendVarint(b []byte, v uint64) []byte {\n\tswitch {\n\tcase v < 1<<7:\n\t\tb = append(b, byte(v))\n\tcase v < 1<<14:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte(v>>7))\n\tcase v < 1<<21:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte(v>>14))\n\tcase v < 1<<28:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte(v>>21))\n\tcase v < 1<<35:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte(v>>28))\n\tcase v < 1<<42:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte(v>>35))\n\tcase v < 1<<49:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte(v>>42))\n\tcase v < 1<<56:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte(v>>49))\n\tcase v < 1<<63:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte(v>>56))\n\tdefault:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte((v>>56)&0x7f|0x80),\n\t\t\t1)\n\t}\n\treturn b\n}\n\n// ConsumeVarint parses b as a varint-encoded uint64, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeVarint(b []byte) (v uint64, n int) {\n\tvar y uint64\n\tif len(b) <= 0 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint64(b[0])\n\tif v < 0x80 {\n\t\treturn v, 1\n\t}\n\tv -= 0x80\n\n\tif len(b) <= 1 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[1])\n\tv += y << 7\n\tif y < 0x80 {\n\t\treturn v, 2\n\t}\n\tv -= 0x80 << 7\n\n\tif len(b) <= 2 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[2])\n\tv += y << 14\n\tif y < 0x80 {\n\t\treturn v, 3\n\t}\n\tv -= 0x80 << 14\n\n\tif len(b) <= 3 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[3])\n\tv += y << 21\n\tif y < 0x80 {\n\t\treturn v, 4\n\t}\n\tv -= 0x80 << 21\n\n\tif len(b) <= 4 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[4])\n\tv += y << 28\n\tif y < 0x80 {\n\t\treturn v, 5\n\t}\n\tv -= 0x80 << 28\n\n\tif len(b) <= 5 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[5])\n\tv += y << 35\n\tif y < 0x80 {\n\t\treturn v, 6\n\t}\n\tv -= 0x80 << 35\n\n\tif len(b) <= 6 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[6])\n\tv += y << 42\n\tif y < 0x80 {\n\t\treturn v, 7\n\t}\n\tv -= 0x80 << 42\n\n\tif len(b) <= 7 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[7])\n\tv += y << 49\n\tif y < 0x80 {\n\t\treturn v, 8\n\t}\n\tv -= 0x80 << 49\n\n\tif len(b) <= 8 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[8])\n\tv += y << 56\n\tif y < 0x80 {\n\t\treturn v, 9\n\t}\n\tv -= 0x80 << 56\n\n\tif len(b) <= 9 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[9])\n\tv += y << 63\n\tif y < 2 {\n\t\treturn v, 10\n\t}\n\treturn 0, errCodeOverflow\n}\n\n// SizeVarint returns the encoded size of a varint.\n// The size is guaranteed to be within 1 and 10, inclusive.\nfunc SizeVarint(v uint64) int {\n\t// This computes 1 + (bits.Len64(v)-1)/7.\n\t// 9/64 is a good enough approximation of 1/7\n\t//\n\t// The Go compiler can translate the bits.LeadingZeros64 call into the LZCNT\n\t// instruction, which is very fast on CPUs from the last few years. The\n\t// specific way of expressing the calculation matches C++ Protobuf, see\n\t// https://godbolt.org/z/4P3h53oM4 for the C++ code and how gcc/clang\n\t// optimize that function for GOAMD64=v1 and GOAMD64=v3 (-march=haswell).\n\n\t// By OR'ing v with 1, we guarantee that v is never 0, without changing the\n\t// result of SizeVarint. LZCNT is not defined for 0, meaning the compiler\n\t// needs to add extra instructions to handle that case.\n\t//\n\t// The Go compiler currently (go1.24.4) does not make use of this knowledge.\n\t// This opportunity (removing the XOR instruction, which handles the 0 case)\n\t// results in a small (1%) performance win across CPU architectures.\n\t//\n\t// Independently of avoiding the 0 case, we need the v |= 1 line because\n\t// it allows the Go compiler to eliminate an extra XCHGL barrier.\n\tv |= 1\n\n\t// It would be clearer to write log2value := 63 - uint32(...), but\n\t// writing uint32(...) ^ 63 is much more efficient (-14% ARM, -20% Intel).\n\t// Proof of identity for our value range [0..63]:\n\t// https://go.dev/play/p/Pdn9hEWYakX\n\tlog2value := uint32(bits.LeadingZeros64(v)) ^ 63\n\treturn int((log2value*9 + (64 + 9)) / 64)\n}\n\n// AppendFixed32 appends v to b as a little-endian uint32.\nfunc AppendFixed32(b []byte, v uint32) []byte {\n\treturn append(b,\n\t\tbyte(v>>0),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24))\n}\n\n// ConsumeFixed32 parses b as a little-endian uint32, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeFixed32(b []byte) (v uint32, n int) {\n\tif len(b) < 4 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint32(b[0])<<0 | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\treturn v, 4\n}\n\n// SizeFixed32 returns the encoded size of a fixed32; which is always 4.\nfunc SizeFixed32() int {\n\treturn 4\n}\n\n// AppendFixed64 appends v to b as a little-endian uint64.\nfunc AppendFixed64(b []byte, v uint64) []byte {\n\treturn append(b,\n\t\tbyte(v>>0),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24),\n\t\tbyte(v>>32),\n\t\tbyte(v>>40),\n\t\tbyte(v>>48),\n\t\tbyte(v>>56))\n}\n\n// ConsumeFixed64 parses b as a little-endian uint64, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeFixed64(b []byte) (v uint64, n int) {\n\tif len(b) < 8 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint64(b[0])<<0 | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\treturn v, 8\n}\n\n// SizeFixed64 returns the encoded size of a fixed64; which is always 8.\nfunc SizeFixed64() int {\n\treturn 8\n}\n\n// AppendBytes appends v to b as a length-prefixed bytes value.\nfunc AppendBytes(b []byte, v []byte) []byte {\n\treturn append(AppendVarint(b, uint64(len(v))), v...)\n}\n\n// ConsumeBytes parses b as a length-prefixed bytes value, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeBytes(b []byte) (v []byte, n int) {\n\tm, n := ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn nil, n // forward error code\n\t}\n\tif m > uint64(len(b[n:])) {\n\t\treturn nil, errCodeTruncated\n\t}\n\treturn b[n:][:m], n + int(m)\n}\n\n// SizeBytes returns the encoded size of a length-prefixed bytes value,\n// given only the length.\nfunc SizeBytes(n int) int {\n\treturn SizeVarint(uint64(n)) + n\n}\n\n// AppendString appends v to b as a length-prefixed bytes value.\nfunc AppendString(b []byte, v string) []byte {\n\treturn append(AppendVarint(b, uint64(len(v))), v...)\n}\n\n// ConsumeString parses b as a length-prefixed bytes value, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeString(b []byte) (v string, n int) {\n\tbb, n := ConsumeBytes(b)\n\treturn string(bb), n\n}\n\n// AppendGroup appends v to b as group value, with a trailing end group marker.\n// The value v must not contain the end marker.\nfunc AppendGroup(b []byte, num Number, v []byte) []byte {\n\treturn AppendVarint(append(b, v...), EncodeTag(num, EndGroupType))\n}\n\n// ConsumeGroup parses b as a group value until the trailing end group marker,\n// and verifies that the end marker matches the provided num. The value v\n// does not contain the end marker, while the length does contain the end marker.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeGroup(num Number, b []byte) (v []byte, n int) {\n\tn = ConsumeFieldValue(num, StartGroupType, b)\n\tif n < 0 {\n\t\treturn nil, n // forward error code\n\t}\n\tb = b[:n]\n\n\t// Truncate off end group marker, but need to handle denormalized varints.\n\t// Assuming end marker is never 0 (which is always the case since\n\t// EndGroupType is non-zero), we can truncate all trailing bytes where the\n\t// lower 7 bits are all zero (implying that the varint is denormalized).\n\tfor len(b) > 0 && b[len(b)-1]&0x7f == 0 {\n\t\tb = b[:len(b)-1]\n\t}\n\tb = b[:len(b)-SizeTag(num)]\n\treturn b, n\n}\n\n// SizeGroup returns the encoded size of a group, given only the length.\nfunc SizeGroup(num Number, n int) int {\n\treturn n + SizeTag(num)\n}\n\n// DecodeTag decodes the field [Number] and wire [Type] from its unified form.\n// The [Number] is -1 if the decoded field number overflows int32.\n// Other than overflow, this does not check for field number validity.\nfunc DecodeTag(x uint64) (Number, Type) {\n\t// NOTE: MessageSet allows for larger field numbers than normal.\n\tif x>>3 > uint64(math.MaxInt32) {\n\t\treturn -1, 0\n\t}\n\treturn Number(x >> 3), Type(x & 7)\n}\n\n// EncodeTag encodes the field [Number] and wire [Type] into its unified form.\nfunc EncodeTag(num Number, typ Type) uint64 {\n\treturn uint64(num)<<3 | uint64(typ&7)\n}\n\n// DecodeZigZag decodes a zig-zag-encoded uint64 as an int64.\n//\n//\tInput:  {…,  5,  3,  1,  0,  2,  4,  6, …}\n//\tOutput: {…, -3, -2, -1,  0, +1, +2, +3, …}\nfunc DecodeZigZag(x uint64) int64 {\n\treturn int64(x>>1) ^ int64(x)<<63>>63\n}\n\n// EncodeZigZag encodes an int64 as a zig-zag-encoded uint64.\n//\n//\tInput:  {…, -3, -2, -1,  0, +1, +2, +3, …}\n//\tOutput: {…,  5,  3,  1,  0,  2,  4,  6, …}\nfunc EncodeZigZag(x int64) uint64 {\n\treturn uint64(x<<1) ^ uint64(x>>63)\n}\n\n// DecodeBool decodes a uint64 as a bool.\n//\n//\tInput:  {    0,    1,    2, …}\n//\tOutput: {false, true, true, …}\nfunc DecodeBool(x uint64) bool {\n\treturn x != 0\n}\n\n// EncodeBool encodes a bool as a uint64.\n//\n//\tInput:  {false, true}\n//\tOutput: {    0,    1}\nfunc EncodeBool(x bool) uint64 {\n\tif x {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/descfmt/stringer.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package descfmt provides functionality to format descriptors.\npackage descfmt\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype list interface {\n\tLen() int\n\tpragma.DoNotImplement\n}\n\nfunc FormatList(s fmt.State, r rune, vs list) {\n\tio.WriteString(s, formatListOpt(vs, true, r == 'v' && (s.Flag('+') || s.Flag('#'))))\n}\nfunc formatListOpt(vs list, isRoot, allowMulti bool) string {\n\tstart, end := \"[\", \"]\"\n\tif isRoot {\n\t\tvar name string\n\t\tswitch vs.(type) {\n\t\tcase protoreflect.Names:\n\t\t\tname = \"Names\"\n\t\tcase protoreflect.FieldNumbers:\n\t\t\tname = \"FieldNumbers\"\n\t\tcase protoreflect.FieldRanges:\n\t\t\tname = \"FieldRanges\"\n\t\tcase protoreflect.EnumRanges:\n\t\t\tname = \"EnumRanges\"\n\t\tcase protoreflect.FileImports:\n\t\t\tname = \"FileImports\"\n\t\tcase protoreflect.Descriptor:\n\t\t\tname = reflect.ValueOf(vs).MethodByName(\"Get\").Type().Out(0).Name() + \"s\"\n\t\tdefault:\n\t\t\tname = reflect.ValueOf(vs).Elem().Type().Name()\n\t\t}\n\t\tstart, end = name+\"{\", \"}\"\n\t}\n\n\tvar ss []string\n\tswitch vs := vs.(type) {\n\tcase protoreflect.Names:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tss = append(ss, fmt.Sprint(vs.Get(i)))\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FieldNumbers:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tss = append(ss, fmt.Sprint(vs.Get(i)))\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FieldRanges:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tr := vs.Get(i)\n\t\t\tif r[0]+1 == r[1] {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d\", r[0]))\n\t\t\t} else {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d:%d\", r[0], r[1])) // enum ranges are end exclusive\n\t\t\t}\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.EnumRanges:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tr := vs.Get(i)\n\t\t\tif r[0] == r[1] {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d\", r[0]))\n\t\t\t} else {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d:%d\", r[0], int64(r[1])+1)) // enum ranges are end inclusive\n\t\t\t}\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FileImports:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tvar rs records\n\t\t\trv := reflect.ValueOf(vs.Get(i))\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"IsPublic\"), \"IsPublic\"},\n\t\t\t\t{rv.MethodByName(\"IsWeak\"), \"IsWeak\"},\n\t\t\t}...)\n\t\t\tss = append(ss, \"{\"+rs.Join()+\"}\")\n\t\t}\n\t\treturn start + joinStrings(ss, allowMulti) + end\n\tdefault:\n\t\t_, isEnumValue := vs.(protoreflect.EnumValueDescriptors)\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tm := reflect.ValueOf(vs).MethodByName(\"Get\")\n\t\t\tv := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface()\n\t\t\tss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil))\n\t\t}\n\t\treturn start + joinStrings(ss, allowMulti && isEnumValue) + end\n\t}\n}\n\ntype methodAndName struct {\n\tmethod reflect.Value\n\tname   string\n}\n\nfunc FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) {\n\tio.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil))\n}\n\nfunc InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string {\n\treturn formatDescOpt(t, isRoot, allowMulti, record)\n}\n\nfunc formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string {\n\trv := reflect.ValueOf(t)\n\trt := rv.MethodByName(\"ProtoType\").Type().In(0)\n\n\tstart, end := \"{\", \"}\"\n\tif isRoot {\n\t\tstart = rt.Name() + \"{\"\n\t}\n\n\t_, isFile := t.(protoreflect.FileDescriptor)\n\trs := records{\n\t\tallowMulti: allowMulti,\n\t\trecord:     record,\n\t}\n\tif t.IsPlaceholder() {\n\t\tif isFile {\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"IsPlaceholder\"), \"IsPlaceholder\"},\n\t\t\t}...)\n\t\t} else {\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"FullName\"), \"FullName\"},\n\t\t\t\t{rv.MethodByName(\"IsPlaceholder\"), \"IsPlaceholder\"},\n\t\t\t}...)\n\t\t}\n\t} else {\n\t\tswitch {\n\t\tcase isFile:\n\t\t\trs.Append(rv, methodAndName{rv.MethodByName(\"Syntax\"), \"Syntax\"})\n\t\tcase isRoot:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Syntax\"), \"Syntax\"},\n\t\t\t\t{rv.MethodByName(\"FullName\"), \"FullName\"},\n\t\t\t}...)\n\t\tdefault:\n\t\t\trs.Append(rv, methodAndName{rv.MethodByName(\"Name\"), \"Name\"})\n\t\t}\n\t\tswitch t := t.(type) {\n\t\tcase protoreflect.FieldDescriptor:\n\t\t\taccessors := []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Number\"), \"Number\"},\n\t\t\t\t{rv.MethodByName(\"Cardinality\"), \"Cardinality\"},\n\t\t\t\t{rv.MethodByName(\"Kind\"), \"Kind\"},\n\t\t\t\t{rv.MethodByName(\"HasJSONName\"), \"HasJSONName\"},\n\t\t\t\t{rv.MethodByName(\"JSONName\"), \"JSONName\"},\n\t\t\t\t{rv.MethodByName(\"HasPresence\"), \"HasPresence\"},\n\t\t\t\t{rv.MethodByName(\"IsExtension\"), \"IsExtension\"},\n\t\t\t\t{rv.MethodByName(\"IsPacked\"), \"IsPacked\"},\n\t\t\t\t{rv.MethodByName(\"IsWeak\"), \"IsWeak\"},\n\t\t\t\t{rv.MethodByName(\"IsList\"), \"IsList\"},\n\t\t\t\t{rv.MethodByName(\"IsMap\"), \"IsMap\"},\n\t\t\t\t{rv.MethodByName(\"MapKey\"), \"MapKey\"},\n\t\t\t\t{rv.MethodByName(\"MapValue\"), \"MapValue\"},\n\t\t\t\t{rv.MethodByName(\"HasDefault\"), \"HasDefault\"},\n\t\t\t\t{rv.MethodByName(\"Default\"), \"Default\"},\n\t\t\t\t{rv.MethodByName(\"ContainingOneof\"), \"ContainingOneof\"},\n\t\t\t\t{rv.MethodByName(\"ContainingMessage\"), \"ContainingMessage\"},\n\t\t\t\t{rv.MethodByName(\"Message\"), \"Message\"},\n\t\t\t\t{rv.MethodByName(\"Enum\"), \"Enum\"},\n\t\t\t}\n\t\t\tfor _, s := range accessors {\n\t\t\t\tswitch s.name {\n\t\t\t\tcase \"MapKey\":\n\t\t\t\t\tif k := t.MapKey(); k != nil {\n\t\t\t\t\t\trs.recs = append(rs.recs, [2]string{\"MapKey\", k.Kind().String()})\n\t\t\t\t\t}\n\t\t\t\tcase \"MapValue\":\n\t\t\t\t\tif v := t.MapValue(); v != nil {\n\t\t\t\t\t\tswitch v.Kind() {\n\t\t\t\t\t\tcase protoreflect.EnumKind:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", string(v.Enum().FullName())})\n\t\t\t\t\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", string(v.Message().FullName())})\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", v.Kind().String()})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tcase \"ContainingOneof\":\n\t\t\t\t\tif od := t.ContainingOneof(); od != nil {\n\t\t\t\t\t\trs.AppendRecs(\"ContainingOneof\", [2]string{\"Oneof\", string(od.Name())})\n\t\t\t\t\t}\n\t\t\t\tcase \"ContainingMessage\":\n\t\t\t\t\tif t.IsExtension() {\n\t\t\t\t\t\trs.AppendRecs(\"ContainingMessage\", [2]string{\"Extendee\", string(t.ContainingMessage().FullName())})\n\t\t\t\t\t}\n\t\t\t\tcase \"Message\":\n\t\t\t\t\tif !t.IsMap() {\n\t\t\t\t\t\trs.Append(rv, s)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\trs.Append(rv, s)\n\t\t\t\t}\n\t\t\t}\n\t\tcase protoreflect.OneofDescriptor:\n\t\t\tvar ss []string\n\t\t\tfs := t.Fields()\n\t\t\tfor i := 0; i < fs.Len(); i++ {\n\t\t\t\tss = append(ss, string(fs.Get(i).Name()))\n\t\t\t}\n\t\t\tif len(ss) > 0 {\n\t\t\t\trs.AppendRecs(\"Fields\", [2]string{\"Fields\", \"[\" + joinStrings(ss, false) + \"]\"})\n\t\t\t}\n\n\t\tcase protoreflect.FileDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"Imports\"), \"Imports\"},\n\t\t\t\t{rv.MethodByName(\"Messages\"), \"Messages\"},\n\t\t\t\t{rv.MethodByName(\"Enums\"), \"Enums\"},\n\t\t\t\t{rv.MethodByName(\"Extensions\"), \"Extensions\"},\n\t\t\t\t{rv.MethodByName(\"Services\"), \"Services\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"IsMapEntry\"), \"IsMapEntry\"},\n\t\t\t\t{rv.MethodByName(\"Fields\"), \"Fields\"},\n\t\t\t\t{rv.MethodByName(\"Oneofs\"), \"Oneofs\"},\n\t\t\t\t{rv.MethodByName(\"ReservedNames\"), \"ReservedNames\"},\n\t\t\t\t{rv.MethodByName(\"ReservedRanges\"), \"ReservedRanges\"},\n\t\t\t\t{rv.MethodByName(\"RequiredNumbers\"), \"RequiredNumbers\"},\n\t\t\t\t{rv.MethodByName(\"ExtensionRanges\"), \"ExtensionRanges\"},\n\t\t\t\t{rv.MethodByName(\"Messages\"), \"Messages\"},\n\t\t\t\t{rv.MethodByName(\"Enums\"), \"Enums\"},\n\t\t\t\t{rv.MethodByName(\"Extensions\"), \"Extensions\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Values\"), \"Values\"},\n\t\t\t\t{rv.MethodByName(\"ReservedNames\"), \"ReservedNames\"},\n\t\t\t\t{rv.MethodByName(\"ReservedRanges\"), \"ReservedRanges\"},\n\t\t\t\t{rv.MethodByName(\"IsClosed\"), \"IsClosed\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Number\"), \"Number\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.ServiceDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Methods\"), \"Methods\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.MethodDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Input\"), \"Input\"},\n\t\t\t\t{rv.MethodByName(\"Output\"), \"Output\"},\n\t\t\t\t{rv.MethodByName(\"IsStreamingClient\"), \"IsStreamingClient\"},\n\t\t\t\t{rv.MethodByName(\"IsStreamingServer\"), \"IsStreamingServer\"},\n\t\t\t}...)\n\t\t}\n\t\tif m := rv.MethodByName(\"GoType\"); m.IsValid() {\n\t\t\trs.Append(rv, methodAndName{m, \"GoType\"})\n\t\t}\n\t}\n\treturn start + rs.Join() + end\n}\n\ntype records struct {\n\trecs       [][2]string\n\tallowMulti bool\n\n\t// record is a function that will be called for every Append() or\n\t// AppendRecs() call, to be used for testing with the\n\t// InternalFormatDescOptForTesting function.\n\trecord func(string)\n}\n\nfunc (rs *records) AppendRecs(fieldName string, newRecs [2]string) {\n\tif rs.record != nil {\n\t\trs.record(fieldName)\n\t}\n\trs.recs = append(rs.recs, newRecs)\n}\n\nfunc (rs *records) Append(v reflect.Value, accessors ...methodAndName) {\n\tfor _, a := range accessors {\n\t\tif rs.record != nil {\n\t\t\trs.record(a.name)\n\t\t}\n\t\tvar rv reflect.Value\n\t\tif a.method.IsValid() {\n\t\t\trv = a.method.Call(nil)[0]\n\t\t}\n\t\tif v.Kind() == reflect.Struct && !rv.IsValid() {\n\t\t\trv = v.FieldByName(a.name)\n\t\t}\n\t\tif !rv.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"unknown accessor: %v.%s\", v.Type(), a.name))\n\t\t}\n\t\tif _, ok := rv.Interface().(protoreflect.Value); ok {\n\t\t\trv = rv.MethodByName(\"Interface\").Call(nil)[0]\n\t\t\tif !rv.IsNil() {\n\t\t\t\trv = rv.Elem()\n\t\t\t}\n\t\t}\n\n\t\t// Ignore zero values.\n\t\tvar isZero bool\n\t\tswitch rv.Kind() {\n\t\tcase reflect.Interface, reflect.Slice:\n\t\t\tisZero = rv.IsNil()\n\t\tcase reflect.Bool:\n\t\t\tisZero = rv.Bool() == false\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\tisZero = rv.Int() == 0\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\tisZero = rv.Uint() == 0\n\t\tcase reflect.String:\n\t\t\tisZero = rv.String() == \"\"\n\t\t}\n\t\tif n, ok := rv.Interface().(list); ok {\n\t\t\tisZero = n.Len() == 0\n\t\t}\n\t\tif isZero {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Format the value.\n\t\tvar s string\n\t\tv := rv.Interface()\n\t\tswitch v := v.(type) {\n\t\tcase list:\n\t\t\ts = formatListOpt(v, false, rs.allowMulti)\n\t\tcase protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor:\n\t\t\ts = string(v.(protoreflect.Descriptor).Name())\n\t\tcase protoreflect.Descriptor:\n\t\t\ts = string(v.FullName())\n\t\tcase string:\n\t\t\ts = strconv.Quote(v)\n\t\tcase []byte:\n\t\t\ts = fmt.Sprintf(\"%q\", v)\n\t\tdefault:\n\t\t\ts = fmt.Sprint(v)\n\t\t}\n\t\trs.recs = append(rs.recs, [2]string{a.name, s})\n\t}\n}\n\nfunc (rs *records) Join() string {\n\tvar ss []string\n\n\t// In single line mode, simply join all records with commas.\n\tif !rs.allowMulti {\n\t\tfor _, r := range rs.recs {\n\t\t\tss = append(ss, r[0]+formatColon(0)+r[1])\n\t\t}\n\t\treturn joinStrings(ss, false)\n\t}\n\n\t// In allowMulti line mode, align single line records for more readable output.\n\tvar maxLen int\n\tflush := func(i int) {\n\t\tfor _, r := range rs.recs[len(ss):i] {\n\t\t\tss = append(ss, r[0]+formatColon(maxLen-len(r[0]))+r[1])\n\t\t}\n\t\tmaxLen = 0\n\t}\n\tfor i, r := range rs.recs {\n\t\tif isMulti := strings.Contains(r[1], \"\\n\"); isMulti {\n\t\t\tflush(i)\n\t\t\tss = append(ss, r[0]+formatColon(0)+strings.Join(strings.Split(r[1], \"\\n\"), \"\\n\\t\"))\n\t\t} else if maxLen < len(r[0]) {\n\t\t\tmaxLen = len(r[0])\n\t\t}\n\t}\n\tflush(len(rs.recs))\n\treturn joinStrings(ss, true)\n}\n\nfunc formatColon(padding int) string {\n\t// Deliberately introduce instability into the debug output to\n\t// discourage users from performing string comparisons.\n\t// This provides us flexibility to change the output in the future.\n\tif detrand.Bool() {\n\t\treturn \":\" + strings.Repeat(\" \", 1+padding) // use non-breaking spaces (U+00a0)\n\t} else {\n\t\treturn \":\" + strings.Repeat(\" \", 1+padding) // use regular spaces (U+0020)\n\t}\n}\n\nfunc joinStrings(ss []string, isMulti bool) string {\n\tif len(ss) == 0 {\n\t\treturn \"\"\n\t}\n\tif isMulti {\n\t\treturn \"\\n\\t\" + strings.Join(ss, \"\\n\\t\") + \"\\n\"\n\t}\n\treturn strings.Join(ss, \", \")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/descopts/options.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package descopts contains the nil pointers to concrete descriptor options.\n//\n// This package exists as a form of reverse dependency injection so that certain\n// packages (e.g., internal/filedesc and internal/filetype can avoid a direct\n// dependency on the descriptor proto package).\npackage descopts\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// These variables are set by the init function in descriptor.pb.go via logic\n// in internal/filetype. In other words, so long as the descriptor proto package\n// is linked in, these variables will be populated.\n//\n// Each variable is populated with a nil pointer to the options struct.\nvar (\n\tFile           protoreflect.ProtoMessage\n\tEnum           protoreflect.ProtoMessage\n\tEnumValue      protoreflect.ProtoMessage\n\tMessage        protoreflect.ProtoMessage\n\tField          protoreflect.ProtoMessage\n\tOneof          protoreflect.ProtoMessage\n\tExtensionRange protoreflect.ProtoMessage\n\tService        protoreflect.ProtoMessage\n\tMethod         protoreflect.ProtoMessage\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/detrand/rand.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package detrand provides deterministically random functionality.\n//\n// The pseudo-randomness of these functions is seeded by the program binary\n// itself and guarantees that the output does not change within a program,\n// while ensuring that the output is unstable across different builds.\npackage detrand\n\nimport (\n\t\"encoding/binary\"\n\t\"hash/fnv\"\n\t\"os\"\n)\n\n// Disable disables detrand such that all functions returns the zero value.\n// This function is not concurrent-safe and must be called during program init.\nfunc Disable() {\n\trandSeed = 0\n}\n\n// Bool returns a deterministically random boolean.\nfunc Bool() bool {\n\treturn randSeed%2 == 1\n}\n\n// Intn returns a deterministically random integer between 0 and n-1, inclusive.\nfunc Intn(n int) int {\n\tif n <= 0 {\n\t\tpanic(\"must be positive\")\n\t}\n\treturn int(randSeed % uint64(n))\n}\n\n// randSeed is a best-effort at an approximate hash of the Go binary.\nvar randSeed = binaryHash()\n\nfunc binaryHash() uint64 {\n\t// Open the Go binary.\n\ts, err := os.Executable()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tf, err := os.Open(s)\n\tif err != nil {\n\t\treturn 0\n\t}\n\tdefer f.Close()\n\n\t// Hash the size and several samples of the Go binary.\n\tconst numSamples = 8\n\tvar buf [64]byte\n\th := fnv.New64()\n\tfi, err := f.Stat()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tbinary.LittleEndian.PutUint64(buf[:8], uint64(fi.Size()))\n\th.Write(buf[:8])\n\tfor i := int64(0); i < numSamples; i++ {\n\t\tif _, err := f.ReadAt(buf[:], i*fi.Size()/numSamples); err != nil {\n\t\t\treturn 0\n\t\t}\n\t\th.Write(buf[:])\n\t}\n\treturn h.Sum64()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package editiondefaults contains the binary representation of the editions\n// defaults.\npackage editiondefaults\n\nimport _ \"embed\"\n\n//go:embed editions_defaults.binpb\nvar Defaults []byte\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/editionssupport/editions.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package editionssupport defines constants for editions that are supported.\npackage editionssupport\n\nimport \"google.golang.org/protobuf/types/descriptorpb\"\n\nconst (\n\tMinimum = descriptorpb.Edition_EDITION_PROTO2\n\tMaximum = descriptorpb.Edition_EDITION_2024\n\n\t// MaximumKnown is the maximum edition that is known to Go Protobuf, but not\n\t// declared as supported. In other words: end users cannot use it, but\n\t// testprotos inside Go Protobuf can.\n\tMaximumKnown = descriptorpb.Edition_EDITION_2024\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/defval/default.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package defval marshals and unmarshals textual forms of default values.\n//\n// This package handles both the form historically used in Go struct field tags\n// and also the form used by google.protobuf.FieldDescriptorProto.default_value\n// since they differ in superficial ways.\npackage defval\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\n\tptext \"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Format is the serialization format used to represent the default value.\ntype Format int\n\nconst (\n\t_ Format = iota\n\n\t// Descriptor uses the serialization format that protoc uses with the\n\t// google.protobuf.FieldDescriptorProto.default_value field.\n\tDescriptor\n\n\t// GoTag uses the historical serialization format in Go struct field tags.\n\tGoTag\n)\n\n// Unmarshal deserializes the default string s according to the given kind k.\n// When k is an enum, a list of enum value descriptors must be provided.\nfunc Unmarshal(s string, k protoreflect.Kind, evs protoreflect.EnumValueDescriptors, f Format) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) {\n\tswitch k {\n\tcase protoreflect.BoolKind:\n\t\tif f == GoTag {\n\t\t\tswitch s {\n\t\t\tcase \"1\":\n\t\t\t\treturn protoreflect.ValueOfBool(true), nil, nil\n\t\t\tcase \"0\":\n\t\t\t\treturn protoreflect.ValueOfBool(false), nil, nil\n\t\t\t}\n\t\t} else {\n\t\t\tswitch s {\n\t\t\tcase \"true\":\n\t\t\t\treturn protoreflect.ValueOfBool(true), nil, nil\n\t\t\tcase \"false\":\n\t\t\t\treturn protoreflect.ValueOfBool(false), nil, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif f == GoTag {\n\t\t\t// Go tags use the numeric form of the enum value.\n\t\t\tif n, err := strconv.ParseInt(s, 10, 32); err == nil {\n\t\t\t\tif ev := evs.ByNumber(protoreflect.EnumNumber(n)); ev != nil {\n\t\t\t\t\treturn protoreflect.ValueOfEnum(ev.Number()), ev, nil\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Descriptor default_value use the enum identifier.\n\t\t\tev := evs.ByName(protoreflect.Name(s))\n\t\t\tif ev != nil {\n\t\t\t\treturn protoreflect.ValueOfEnum(ev.Number()), ev, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif v, err := strconv.ParseInt(s, 10, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfInt32(int32(v)), nil, nil\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif v, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfInt64(int64(v)), nil, nil\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif v, err := strconv.ParseUint(s, 10, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfUint32(uint32(v)), nil, nil\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif v, err := strconv.ParseUint(s, 10, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfUint64(uint64(v)), nil, nil\n\t\t}\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tvar v float64\n\t\tvar err error\n\t\tswitch s {\n\t\tcase \"-inf\":\n\t\t\tv = math.Inf(-1)\n\t\tcase \"inf\":\n\t\t\tv = math.Inf(+1)\n\t\tcase \"nan\":\n\t\t\tv = math.NaN()\n\t\tdefault:\n\t\t\tv, err = strconv.ParseFloat(s, 64)\n\t\t}\n\t\tif err == nil {\n\t\t\tif k == protoreflect.FloatKind {\n\t\t\t\treturn protoreflect.ValueOfFloat32(float32(v)), nil, nil\n\t\t\t} else {\n\t\t\t\treturn protoreflect.ValueOfFloat64(float64(v)), nil, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// String values are already unescaped and can be used as is.\n\t\treturn protoreflect.ValueOfString(s), nil, nil\n\tcase protoreflect.BytesKind:\n\t\tif b, ok := unmarshalBytes(s); ok {\n\t\t\treturn protoreflect.ValueOfBytes(b), nil, nil\n\t\t}\n\t}\n\treturn protoreflect.Value{}, nil, errors.New(\"could not parse value for %v: %q\", k, s)\n}\n\n// Marshal serializes v as the default string according to the given kind k.\n// When specifying the Descriptor format for an enum kind, the associated\n// enum value descriptor must be provided.\nfunc Marshal(v protoreflect.Value, ev protoreflect.EnumValueDescriptor, k protoreflect.Kind, f Format) (string, error) {\n\tswitch k {\n\tcase protoreflect.BoolKind:\n\t\tif f == GoTag {\n\t\t\tif v.Bool() {\n\t\t\t\treturn \"1\", nil\n\t\t\t} else {\n\t\t\t\treturn \"0\", nil\n\t\t\t}\n\t\t} else {\n\t\t\tif v.Bool() {\n\t\t\t\treturn \"true\", nil\n\t\t\t} else {\n\t\t\t\treturn \"false\", nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif f == GoTag {\n\t\t\treturn strconv.FormatInt(int64(v.Enum()), 10), nil\n\t\t} else {\n\t\t\treturn string(ev.Name()), nil\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\treturn strconv.FormatInt(v.Int(), 10), nil\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\treturn strconv.FormatUint(v.Uint(), 10), nil\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tf := v.Float()\n\t\tswitch {\n\t\tcase math.IsInf(f, -1):\n\t\t\treturn \"-inf\", nil\n\t\tcase math.IsInf(f, +1):\n\t\t\treturn \"inf\", nil\n\t\tcase math.IsNaN(f):\n\t\t\treturn \"nan\", nil\n\t\tdefault:\n\t\t\tif k == protoreflect.FloatKind {\n\t\t\t\treturn strconv.FormatFloat(f, 'g', -1, 32), nil\n\t\t\t} else {\n\t\t\t\treturn strconv.FormatFloat(f, 'g', -1, 64), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// String values are serialized as is without any escaping.\n\t\treturn v.String(), nil\n\tcase protoreflect.BytesKind:\n\t\tif s, ok := marshalBytes(v.Bytes()); ok {\n\t\t\treturn s, nil\n\t\t}\n\t}\n\treturn \"\", errors.New(\"could not format value for %v: %v\", k, v)\n}\n\n// unmarshalBytes deserializes bytes by applying C unescaping.\nfunc unmarshalBytes(s string) ([]byte, bool) {\n\t// Bytes values use the same escaping as the text format,\n\t// however they lack the surrounding double quotes.\n\tv, err := ptext.UnmarshalString(`\"` + s + `\"`)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\treturn []byte(v), true\n}\n\n// marshalBytes serializes bytes by using C escaping.\n// To match the exact output of protoc, this is identical to the\n// CEscape function in strutil.cc of the protoc source code.\nfunc marshalBytes(b []byte) (string, bool) {\n\tvar s []byte\n\tfor _, c := range b {\n\t\tswitch c {\n\t\tcase '\\n':\n\t\t\ts = append(s, `\\n`...)\n\t\tcase '\\r':\n\t\t\ts = append(s, `\\r`...)\n\t\tcase '\\t':\n\t\t\ts = append(s, `\\t`...)\n\t\tcase '\"':\n\t\t\ts = append(s, `\\\"`...)\n\t\tcase '\\'':\n\t\t\ts = append(s, `\\'`...)\n\t\tcase '\\\\':\n\t\t\ts = append(s, `\\\\`...)\n\t\tdefault:\n\t\t\tif printableASCII := c >= 0x20 && c <= 0x7e; printableASCII {\n\t\t\t\ts = append(s, c)\n\t\t\t} else {\n\t\t\t\ts = append(s, fmt.Sprintf(`\\%03o`, c)...)\n\t\t\t}\n\t\t}\n\t}\n\treturn string(s), true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/json/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"regexp\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// call specifies which Decoder method was invoked.\ntype call uint8\n\nconst (\n\treadCall call = iota\n\tpeekCall\n)\n\nconst unexpectedFmt = \"unexpected token %s\"\n\n// ErrUnexpectedEOF means that EOF was encountered in the middle of the input.\nvar ErrUnexpectedEOF = errors.New(\"%v\", io.ErrUnexpectedEOF)\n\n// Decoder is a token-based JSON decoder.\ntype Decoder struct {\n\t// lastCall is last method called, either readCall or peekCall.\n\t// Initial value is readCall.\n\tlastCall call\n\n\t// lastToken contains the last read token.\n\tlastToken Token\n\n\t// lastErr contains the last read error.\n\tlastErr error\n\n\t// openStack is a stack containing ObjectOpen and ArrayOpen values. The\n\t// top of stack represents the object or the array the current value is\n\t// directly located in.\n\topenStack []Kind\n\n\t// orig is used in reporting line and column.\n\torig []byte\n\t// in contains the unconsumed input.\n\tin []byte\n}\n\n// NewDecoder returns a Decoder to read the given []byte.\nfunc NewDecoder(b []byte) *Decoder {\n\treturn &Decoder{orig: b, in: b}\n}\n\n// Peek looks ahead and returns the next token kind without advancing a read.\nfunc (d *Decoder) Peek() (Token, error) {\n\tdefer func() { d.lastCall = peekCall }()\n\tif d.lastCall == readCall {\n\t\td.lastToken, d.lastErr = d.Read()\n\t}\n\treturn d.lastToken, d.lastErr\n}\n\n// Read returns the next JSON token.\n// It will return an error if there is no valid token.\nfunc (d *Decoder) Read() (Token, error) {\n\tconst scalar = Null | Bool | Number | String\n\n\tdefer func() { d.lastCall = readCall }()\n\tif d.lastCall == peekCall {\n\t\treturn d.lastToken, d.lastErr\n\t}\n\n\ttok, err := d.parseNext()\n\tif err != nil {\n\t\treturn Token{}, err\n\t}\n\n\tswitch tok.kind {\n\tcase EOF:\n\t\tif len(d.openStack) != 0 ||\n\t\t\td.lastToken.kind&scalar|ObjectClose|ArrayClose == 0 {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\n\tcase Null:\n\t\tif !d.isValueNext() {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\n\tcase Bool, Number:\n\t\tif !d.isValueNext() {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\n\tcase String:\n\t\tif d.isValueNext() {\n\t\t\tbreak\n\t\t}\n\t\t// This string token should only be for a field name.\n\t\tif d.lastToken.kind&(ObjectOpen|comma) == 0 {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\t\tif len(d.in) == 0 {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\tif c := d.in[0]; c != ':' {\n\t\t\treturn Token{}, d.newSyntaxError(d.currPos(), `unexpected character %s, missing \":\" after field name`, string(c))\n\t\t}\n\t\ttok.kind = Name\n\t\td.consume(1)\n\n\tcase ObjectOpen, ArrayOpen:\n\t\tif !d.isValueNext() {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\t\td.openStack = append(d.openStack, tok.kind)\n\n\tcase ObjectClose:\n\t\tif len(d.openStack) == 0 ||\n\t\t\td.lastToken.kind&(Name|comma) != 0 ||\n\t\t\td.openStack[len(d.openStack)-1] != ObjectOpen {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\t\td.openStack = d.openStack[:len(d.openStack)-1]\n\n\tcase ArrayClose:\n\t\tif len(d.openStack) == 0 ||\n\t\t\td.lastToken.kind == comma ||\n\t\t\td.openStack[len(d.openStack)-1] != ArrayOpen {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\t\td.openStack = d.openStack[:len(d.openStack)-1]\n\n\tcase comma:\n\t\tif len(d.openStack) == 0 ||\n\t\t\td.lastToken.kind&(scalar|ObjectClose|ArrayClose) == 0 {\n\t\t\treturn Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())\n\t\t}\n\t}\n\n\t// Update d.lastToken only after validating token to be in the right sequence.\n\td.lastToken = tok\n\n\tif d.lastToken.kind == comma {\n\t\treturn d.Read()\n\t}\n\treturn tok, nil\n}\n\n// Any sequence that looks like a non-delimiter (for error reporting).\nvar errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9]{1,32}|.)`)\n\n// parseNext parses for the next JSON token. It returns a Token object for\n// different types, except for Name. It does not handle whether the next token\n// is in a valid sequence or not.\nfunc (d *Decoder) parseNext() (Token, error) {\n\t// Trim leading spaces.\n\td.consume(0)\n\n\tin := d.in\n\tif len(in) == 0 {\n\t\treturn d.consumeToken(EOF, 0), nil\n\t}\n\n\tswitch in[0] {\n\tcase 'n':\n\t\tif n := matchWithDelim(\"null\", in); n != 0 {\n\t\t\treturn d.consumeToken(Null, n), nil\n\t\t}\n\n\tcase 't':\n\t\tif n := matchWithDelim(\"true\", in); n != 0 {\n\t\t\treturn d.consumeBoolToken(true, n), nil\n\t\t}\n\n\tcase 'f':\n\t\tif n := matchWithDelim(\"false\", in); n != 0 {\n\t\t\treturn d.consumeBoolToken(false, n), nil\n\t\t}\n\n\tcase '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tif n, ok := parseNumber(in); ok {\n\t\t\treturn d.consumeToken(Number, n), nil\n\t\t}\n\n\tcase '\"':\n\t\ts, n, err := d.parseString(in)\n\t\tif err != nil {\n\t\t\treturn Token{}, err\n\t\t}\n\t\treturn d.consumeStringToken(s, n), nil\n\n\tcase '{':\n\t\treturn d.consumeToken(ObjectOpen, 1), nil\n\n\tcase '}':\n\t\treturn d.consumeToken(ObjectClose, 1), nil\n\n\tcase '[':\n\t\treturn d.consumeToken(ArrayOpen, 1), nil\n\n\tcase ']':\n\t\treturn d.consumeToken(ArrayClose, 1), nil\n\n\tcase ',':\n\t\treturn d.consumeToken(comma, 1), nil\n\t}\n\treturn Token{}, d.newSyntaxError(d.currPos(), \"invalid value %s\", errRegexp.Find(in))\n}\n\n// newSyntaxError returns an error with line and column information useful for\n// syntax errors.\nfunc (d *Decoder) newSyntaxError(pos int, f string, x ...any) error {\n\te := errors.New(f, x...)\n\tline, column := d.Position(pos)\n\treturn errors.New(\"syntax error (line %d:%d): %v\", line, column, e)\n}\n\n// Position returns line and column number of given index of the original input.\n// It will panic if index is out of range.\nfunc (d *Decoder) Position(idx int) (line int, column int) {\n\tb := d.orig[:idx]\n\tline = bytes.Count(b, []byte(\"\\n\")) + 1\n\tif i := bytes.LastIndexByte(b, '\\n'); i >= 0 {\n\t\tb = b[i+1:]\n\t}\n\tcolumn = utf8.RuneCount(b) + 1 // ignore multi-rune characters\n\treturn line, column\n}\n\n// currPos returns the current index position of d.in from d.orig.\nfunc (d *Decoder) currPos() int {\n\treturn len(d.orig) - len(d.in)\n}\n\n// matchWithDelim matches s with the input b and verifies that the match\n// terminates with a delimiter of some form (e.g., r\"[^-+_.a-zA-Z0-9]\").\n// As a special case, EOF is considered a delimiter. It returns the length of s\n// if there is a match, else 0.\nfunc matchWithDelim(s string, b []byte) int {\n\tif !bytes.HasPrefix(b, []byte(s)) {\n\t\treturn 0\n\t}\n\n\tn := len(s)\n\tif n < len(b) && isNotDelim(b[n]) {\n\t\treturn 0\n\t}\n\treturn n\n}\n\n// isNotDelim returns true if given byte is a not delimiter character.\nfunc isNotDelim(c byte) bool {\n\treturn (c == '-' || c == '+' || c == '.' || c == '_' ||\n\t\t('a' <= c && c <= 'z') ||\n\t\t('A' <= c && c <= 'Z') ||\n\t\t('0' <= c && c <= '9'))\n}\n\n// consume consumes n bytes of input and any subsequent whitespace.\nfunc (d *Decoder) consume(n int) {\n\td.in = d.in[n:]\n\tfor len(d.in) > 0 {\n\t\tswitch d.in[0] {\n\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\td.in = d.in[1:]\n\t\tdefault:\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// isValueNext returns true if next type should be a JSON value: Null,\n// Number, String or Bool.\nfunc (d *Decoder) isValueNext() bool {\n\tif len(d.openStack) == 0 {\n\t\treturn d.lastToken.kind == 0\n\t}\n\n\tstart := d.openStack[len(d.openStack)-1]\n\tswitch start {\n\tcase ObjectOpen:\n\t\treturn d.lastToken.kind&Name != 0\n\tcase ArrayOpen:\n\t\treturn d.lastToken.kind&(ArrayOpen|comma) != 0\n\t}\n\tpanic(fmt.Sprintf(\n\t\t\"unreachable logic in Decoder.isValueNext, lastToken.kind: %v, openStack: %v\",\n\t\td.lastToken.kind, start))\n}\n\n// consumeToken constructs a Token for given Kind with raw value derived from\n// current d.in and given size, and consumes the given size-length of it.\nfunc (d *Decoder) consumeToken(kind Kind, size int) Token {\n\ttok := Token{\n\t\tkind: kind,\n\t\traw:  d.in[:size],\n\t\tpos:  len(d.orig) - len(d.in),\n\t}\n\td.consume(size)\n\treturn tok\n}\n\n// consumeBoolToken constructs a Token for a Bool kind with raw value derived from\n// current d.in and given size.\nfunc (d *Decoder) consumeBoolToken(b bool, size int) Token {\n\ttok := Token{\n\t\tkind: Bool,\n\t\traw:  d.in[:size],\n\t\tpos:  len(d.orig) - len(d.in),\n\t\tboo:  b,\n\t}\n\td.consume(size)\n\treturn tok\n}\n\n// consumeStringToken constructs a Token for a String kind with raw value derived\n// from current d.in and given size.\nfunc (d *Decoder) consumeStringToken(s string, size int) Token {\n\ttok := Token{\n\t\tkind: String,\n\t\traw:  d.in[:size],\n\t\tpos:  len(d.orig) - len(d.in),\n\t\tstr:  s,\n\t}\n\td.consume(size)\n\treturn tok\n}\n\n// Clone returns a copy of the Decoder for use in reading ahead the next JSON\n// object, array or other values without affecting current Decoder.\nfunc (d *Decoder) Clone() *Decoder {\n\tret := *d\n\tret.openStack = append([]Kind(nil), ret.openStack...)\n\treturn &ret\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n)\n\n// parseNumber reads the given []byte for a valid JSON number. If it is valid,\n// it returns the number of bytes.  Parsing logic follows the definition in\n// https://tools.ietf.org/html/rfc7159#section-6, and is based off\n// encoding/json.isValidNumber function.\nfunc parseNumber(input []byte) (int, bool) {\n\tvar n int\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn 0, false\n\t}\n\n\t// Optional -\n\tif s[0] == '-' {\n\t\ts = s[1:]\n\t\tn++\n\t\tif len(s) == 0 {\n\t\t\treturn 0, false\n\t\t}\n\t}\n\n\t// Digits\n\tswitch {\n\tcase s[0] == '0':\n\t\ts = s[1:]\n\t\tn++\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\ts = s[1:]\n\t\tn++\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\n\tdefault:\n\t\treturn 0, false\n\t}\n\n\t// . followed by 1 or more digits.\n\tif len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' {\n\t\ts = s[2:]\n\t\tn += 2\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t}\n\n\t// e or E followed by an optional - or + and\n\t// 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\ts = s[1:]\n\t\tn++\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn 0, false\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t}\n\n\t// Check that next byte is a delimiter or it is at the end.\n\tif n < len(input) && isNotDelim(input[n]) {\n\t\treturn 0, false\n\t}\n\n\treturn n, true\n}\n\n// numberParts is the result of parsing out a valid JSON number. It contains\n// the parts of a number. The parts are used for integer conversion.\ntype numberParts struct {\n\tneg  bool\n\tintp []byte\n\tfrac []byte\n\texp  []byte\n}\n\n// parseNumber constructs numberParts from given []byte. The logic here is\n// similar to consumeNumber above with the difference of having to construct\n// numberParts. The slice fields in numberParts are subslices of the input.\nfunc parseNumberParts(input []byte) (numberParts, bool) {\n\tvar neg bool\n\tvar intp []byte\n\tvar frac []byte\n\tvar exp []byte\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn numberParts{}, false\n\t}\n\n\t// Optional -\n\tif s[0] == '-' {\n\t\tneg = true\n\t\ts = s[1:]\n\t\tif len(s) == 0 {\n\t\t\treturn numberParts{}, false\n\t\t}\n\t}\n\n\t// Digits\n\tswitch {\n\tcase s[0] == '0':\n\t\t// Skip first 0 and no need to store.\n\t\ts = s[1:]\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\tintp = s\n\t\tn := 1\n\t\ts = s[1:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tintp = intp[:n]\n\n\tdefault:\n\t\treturn numberParts{}, false\n\t}\n\n\t// . followed by 1 or more digits.\n\tif len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' {\n\t\tfrac = s[1:]\n\t\tn := 1\n\t\ts = s[2:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tfrac = frac[:n]\n\t}\n\n\t// e or E followed by an optional - or + and\n\t// 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\ts = s[1:]\n\t\texp = s\n\t\tn := 0\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn numberParts{}, false\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\texp = exp[:n]\n\t}\n\n\treturn numberParts{\n\t\tneg:  neg,\n\t\tintp: intp,\n\t\tfrac: bytes.TrimRight(frac, \"0\"), // Remove unnecessary 0s to the right.\n\t\texp:  exp,\n\t}, true\n}\n\n// normalizeToIntString returns an integer string in normal form without the\n// E-notation for given numberParts. It will return false if it is not an\n// integer or if the exponent exceeds than max/min int value.\nfunc normalizeToIntString(n numberParts) (string, bool) {\n\tintpSize := len(n.intp)\n\tfracSize := len(n.frac)\n\n\tif intpSize == 0 && fracSize == 0 {\n\t\treturn \"0\", true\n\t}\n\n\tvar exp int\n\tif len(n.exp) > 0 {\n\t\ti, err := strconv.ParseInt(string(n.exp), 10, 32)\n\t\tif err != nil {\n\t\t\treturn \"\", false\n\t\t}\n\t\texp = int(i)\n\t}\n\n\tvar num []byte\n\tif exp >= 0 {\n\t\t// For positive E, shift fraction digits into integer part and also pad\n\t\t// with zeroes as needed.\n\n\t\t// If there are more digits in fraction than the E value, then the\n\t\t// number is not an integer.\n\t\tif fracSize > exp {\n\t\t\treturn \"\", false\n\t\t}\n\n\t\t// Make sure resulting digits are within max value limit to avoid\n\t\t// unnecessarily constructing a large byte slice that may simply fail\n\t\t// later on.\n\t\tconst maxDigits = 20 // Max uint64 value has 20 decimal digits.\n\t\tif intpSize+exp > maxDigits {\n\t\t\treturn \"\", false\n\t\t}\n\n\t\t// Set cap to make a copy of integer part when appended.\n\t\tnum = n.intp[:len(n.intp):len(n.intp)]\n\t\tnum = append(num, n.frac...)\n\t\tfor i := 0; i < exp-fracSize; i++ {\n\t\t\tnum = append(num, '0')\n\t\t}\n\t} else {\n\t\t// For negative E, shift digits in integer part out.\n\n\t\t// If there are fractions, then the number is not an integer.\n\t\tif fracSize > 0 {\n\t\t\treturn \"\", false\n\t\t}\n\n\t\t// index is where the decimal point will be after adjusting for negative\n\t\t// exponent.\n\t\tindex := intpSize + exp\n\t\tif index < 0 {\n\t\t\treturn \"\", false\n\t\t}\n\n\t\tnum = n.intp\n\t\t// If any of the digits being shifted to the right of the decimal point\n\t\t// is non-zero, then the number is not an integer.\n\t\tfor i := index; i < intpSize; i++ {\n\t\t\tif num[i] != '0' {\n\t\t\t\treturn \"\", false\n\t\t\t}\n\t\t}\n\t\tnum = num[:index]\n\t}\n\n\tif n.neg {\n\t\treturn \"-\" + string(num), true\n\t}\n\treturn string(num), true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"strconv\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/strs\"\n)\n\nfunc (d *Decoder) parseString(in []byte) (string, int, error) {\n\tin0 := in\n\tif len(in) == 0 {\n\t\treturn \"\", 0, ErrUnexpectedEOF\n\t}\n\tif in[0] != '\"' {\n\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid character %q at start of string\", in[0])\n\t}\n\tin = in[1:]\n\ti := indexNeedEscapeInBytes(in)\n\tin, out := in[i:], in[:i:i] // set cap to prevent mutations\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRune(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid UTF-8 in string\")\n\t\tcase r < ' ':\n\t\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid character %q in string\", r)\n\t\tcase r == '\"':\n\t\t\tin = in[1:]\n\t\t\tn := len(in0) - len(in)\n\t\t\treturn string(out), n, nil\n\t\tcase r == '\\\\':\n\t\t\tif len(in) < 2 {\n\t\t\t\treturn \"\", 0, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := in[1]; r {\n\t\t\tcase '\"', '\\\\', '/':\n\t\t\t\tin, out = in[2:], append(out, r)\n\t\t\tcase 'b':\n\t\t\t\tin, out = in[2:], append(out, '\\b')\n\t\t\tcase 'f':\n\t\t\t\tin, out = in[2:], append(out, '\\f')\n\t\t\tcase 'n':\n\t\t\t\tin, out = in[2:], append(out, '\\n')\n\t\t\tcase 'r':\n\t\t\t\tin, out = in[2:], append(out, '\\r')\n\t\t\tcase 't':\n\t\t\t\tin, out = in[2:], append(out, '\\t')\n\t\t\tcase 'u':\n\t\t\t\tif len(in) < 6 {\n\t\t\t\t\treturn \"\", 0, ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[2:6]), 16, 16)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid escape code %q in string\", in[:6])\n\t\t\t\t}\n\t\t\t\tin = in[6:]\n\n\t\t\t\tr := rune(v)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tif len(in) < 6 {\n\t\t\t\t\t\treturn \"\", 0, ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv, err := strconv.ParseUint(string(in[2:6]), 16, 16)\n\t\t\t\t\tr = utf16.DecodeRune(r, rune(v))\n\t\t\t\t\tif in[0] != '\\\\' || in[1] != 'u' ||\n\t\t\t\t\t\tr == unicode.ReplacementChar || err != nil {\n\t\t\t\t\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid escape code %q in string\", in[:6])\n\t\t\t\t\t}\n\t\t\t\t\tin = in[6:]\n\t\t\t\t}\n\t\t\t\tout = append(out, string(r)...)\n\t\t\tdefault:\n\t\t\t\treturn \"\", 0, d.newSyntaxError(d.currPos(), \"invalid escape code %q in string\", in[:2])\n\t\t\t}\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInBytes(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\treturn \"\", 0, ErrUnexpectedEOF\n}\n\n// indexNeedEscapeInBytes returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Kind represents a token kind expressible in the JSON format.\ntype Kind uint16\n\nconst (\n\tInvalid Kind = (1 << iota) / 2\n\tEOF\n\tNull\n\tBool\n\tNumber\n\tString\n\tName\n\tObjectOpen\n\tObjectClose\n\tArrayOpen\n\tArrayClose\n\n\t// comma is only for parsing in between tokens and\n\t// does not need to be exported.\n\tcomma\n)\n\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase EOF:\n\t\treturn \"eof\"\n\tcase Null:\n\t\treturn \"null\"\n\tcase Bool:\n\t\treturn \"bool\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase String:\n\t\treturn \"string\"\n\tcase ObjectOpen:\n\t\treturn \"{\"\n\tcase ObjectClose:\n\t\treturn \"}\"\n\tcase Name:\n\t\treturn \"name\"\n\tcase ArrayOpen:\n\t\treturn \"[\"\n\tcase ArrayClose:\n\t\treturn \"]\"\n\tcase comma:\n\t\treturn \",\"\n\t}\n\treturn \"<invalid>\"\n}\n\n// Token provides a parsed token kind and value.\n//\n// Values are provided by the difference accessor methods. The accessor methods\n// Name, Bool, and ParsedString will panic if called on the wrong kind. There\n// are different accessor methods for the Number kind for converting to the\n// appropriate Go numeric type and those methods have the ok return value.\ntype Token struct {\n\t// Token kind.\n\tkind Kind\n\t// pos provides the position of the token in the original input.\n\tpos int\n\t// raw bytes of the serialized token.\n\t// This is a subslice into the original input.\n\traw []byte\n\t// boo is parsed boolean value.\n\tboo bool\n\t// str is parsed string value.\n\tstr string\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\treturn t.kind\n}\n\n// RawString returns the read value in string.\nfunc (t Token) RawString() string {\n\treturn string(t.raw)\n}\n\n// Pos returns the token position from the input.\nfunc (t Token) Pos() int {\n\treturn t.pos\n}\n\n// Name returns the object name if token is Name, else it panics.\nfunc (t Token) Name() string {\n\tif t.kind == Name {\n\t\treturn t.str\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Name: %v\", t.RawString()))\n}\n\n// Bool returns the bool value if token kind is Bool, else it panics.\nfunc (t Token) Bool() bool {\n\tif t.kind == Bool {\n\t\treturn t.boo\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Bool: %v\", t.RawString()))\n}\n\n// ParsedString returns the string value for a JSON string token or the read\n// value in string if token is not a string.\nfunc (t Token) ParsedString() string {\n\tif t.kind == String {\n\t\treturn t.str\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a String: %v\", t.RawString()))\n}\n\n// Float returns the floating-point number if token kind is Number.\n//\n// The floating-point precision is specified by the bitSize parameter: 32 for\n// float32 or 64 for float64. If bitSize=32, the result still has type float64,\n// but it will be convertible to float32 without changing its value. It will\n// return false if the number exceeds the floating point limits for given\n// bitSize.\nfunc (t Token) Float(bitSize int) (float64, bool) {\n\tif t.kind != Number {\n\t\treturn 0, false\n\t}\n\tf, err := strconv.ParseFloat(t.RawString(), bitSize)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn f, true\n}\n\n// Int returns the signed integer number if token is Number.\n//\n// The given bitSize specifies the integer type that the result must fit into.\n// It returns false if the number is not an integer value or if the result\n// exceeds the limits for given bitSize.\nfunc (t Token) Int(bitSize int) (int64, bool) {\n\ts, ok := t.getIntStr()\n\tif !ok {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseInt(s, 10, bitSize)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn n, true\n}\n\n// Uint returns the signed integer number if token is Number.\n//\n// The given bitSize specifies the unsigned integer type that the result must\n// fit into. It returns false if the number is not an unsigned integer value\n// or if the result exceeds the limits for given bitSize.\nfunc (t Token) Uint(bitSize int) (uint64, bool) {\n\ts, ok := t.getIntStr()\n\tif !ok {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseUint(s, 10, bitSize)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn n, true\n}\n\nfunc (t Token) getIntStr() (string, bool) {\n\tif t.kind != Number {\n\t\treturn \"\", false\n\t}\n\tparts, ok := parseNumberParts(t.raw)\n\tif !ok {\n\t\treturn \"\", false\n\t}\n\treturn normalizeToIntString(parts)\n}\n\n// TokenEquals returns true if given Tokens are equal, else false.\nfunc TokenEquals(x, y Token) bool {\n\treturn x.kind == y.kind &&\n\t\tx.pos == y.pos &&\n\t\tbytes.Equal(x.raw, y.raw) &&\n\t\tx.boo == y.boo &&\n\t\tx.str == y.str\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/json/encode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// kind represents an encoding type.\ntype kind uint8\n\nconst (\n\t_ kind = (1 << iota) / 2\n\tname\n\tscalar\n\tobjectOpen\n\tobjectClose\n\tarrayOpen\n\tarrayClose\n)\n\n// Encoder provides methods to write out JSON constructs and values. The user is\n// responsible for producing valid sequences of JSON constructs and values.\ntype Encoder struct {\n\tindent   string\n\tlastKind kind\n\tindents  []byte\n\tout      []byte\n}\n\n// NewEncoder returns an Encoder.\n//\n// If indent is a non-empty string, it causes every entry for an Array or Object\n// to be preceded by the indent and trailed by a newline.\nfunc NewEncoder(buf []byte, indent string) (*Encoder, error) {\n\te := &Encoder{\n\t\tout: buf,\n\t}\n\tif len(indent) > 0 {\n\t\tif strings.Trim(indent, \" \\t\") != \"\" {\n\t\t\treturn nil, errors.New(\"indent may only be composed of space or tab characters\")\n\t\t}\n\t\te.indent = indent\n\t}\n\treturn e, nil\n}\n\n// Bytes returns the content of the written bytes.\nfunc (e *Encoder) Bytes() []byte {\n\treturn e.out\n}\n\n// WriteNull writes out the null value.\nfunc (e *Encoder) WriteNull() {\n\te.prepareNext(scalar)\n\te.out = append(e.out, \"null\"...)\n}\n\n// WriteBool writes out the given boolean value.\nfunc (e *Encoder) WriteBool(b bool) {\n\te.prepareNext(scalar)\n\tif b {\n\t\te.out = append(e.out, \"true\"...)\n\t} else {\n\t\te.out = append(e.out, \"false\"...)\n\t}\n}\n\n// WriteString writes out the given string in JSON string value. Returns error\n// if input string contains invalid UTF-8.\nfunc (e *Encoder) WriteString(s string) error {\n\te.prepareNext(scalar)\n\tvar err error\n\tif e.out, err = appendString(e.out, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Sentinel error used for indicating invalid UTF-8.\nvar errInvalidUTF8 = errors.New(\"invalid UTF-8\")\n\nfunc appendString(out []byte, in string) ([]byte, error) {\n\tout = append(out, '\"')\n\ti := indexNeedEscapeInString(in)\n\tin, out = in[i:], append(out, in[:i]...)\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRuneInString(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\treturn out, errInvalidUTF8\n\t\tcase r < ' ' || r == '\"' || r == '\\\\':\n\t\t\tout = append(out, '\\\\')\n\t\t\tswitch r {\n\t\t\tcase '\"', '\\\\':\n\t\t\t\tout = append(out, byte(r))\n\t\t\tcase '\\b':\n\t\t\t\tout = append(out, 'b')\n\t\t\tcase '\\f':\n\t\t\t\tout = append(out, 'f')\n\t\t\tcase '\\n':\n\t\t\t\tout = append(out, 'n')\n\t\t\tcase '\\r':\n\t\t\t\tout = append(out, 'r')\n\t\t\tcase '\\t':\n\t\t\t\tout = append(out, 't')\n\t\t\tdefault:\n\t\t\t\tout = append(out, 'u')\n\t\t\t\tout = append(out, \"0000\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t}\n\t\t\tin = in[n:]\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInString(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\tout = append(out, '\"')\n\treturn out, nil\n}\n\n// indexNeedEscapeInString returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInString(s string) int {\n\tfor i, r := range s {\n\t\tif r < ' ' || r == '\\\\' || r == '\"' || r == utf8.RuneError {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(s)\n}\n\n// WriteFloat writes out the given float and bitSize in JSON number value.\nfunc (e *Encoder) WriteFloat(n float64, bitSize int) {\n\te.prepareNext(scalar)\n\te.out = appendFloat(e.out, n, bitSize)\n}\n\n// appendFloat formats given float in bitSize, and appends to the given []byte.\nfunc appendFloat(out []byte, n float64, bitSize int) []byte {\n\tswitch {\n\tcase math.IsNaN(n):\n\t\treturn append(out, `\"NaN\"`...)\n\tcase math.IsInf(n, +1):\n\t\treturn append(out, `\"Infinity\"`...)\n\tcase math.IsInf(n, -1):\n\t\treturn append(out, `\"-Infinity\"`...)\n\t}\n\n\t// JSON number formatting logic based on encoding/json.\n\t// See floatEncoder.encode for reference.\n\tfmt := byte('f')\n\tif abs := math.Abs(n); abs != 0 {\n\t\tif bitSize == 64 && (abs < 1e-6 || abs >= 1e21) ||\n\t\t\tbitSize == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tout = strconv.AppendFloat(out, n, fmt, -1, bitSize)\n\tif fmt == 'e' {\n\t\tn := len(out)\n\t\tif n >= 4 && out[n-4] == 'e' && out[n-3] == '-' && out[n-2] == '0' {\n\t\t\tout[n-2] = out[n-1]\n\t\t\tout = out[:n-1]\n\t\t}\n\t}\n\treturn out\n}\n\n// WriteInt writes out the given signed integer in JSON number value.\nfunc (e *Encoder) WriteInt(n int64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendInt(e.out, n, 10)\n}\n\n// WriteUint writes out the given unsigned integer in JSON number value.\nfunc (e *Encoder) WriteUint(n uint64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendUint(e.out, n, 10)\n}\n\n// StartObject writes out the '{' symbol.\nfunc (e *Encoder) StartObject() {\n\te.prepareNext(objectOpen)\n\te.out = append(e.out, '{')\n}\n\n// EndObject writes out the '}' symbol.\nfunc (e *Encoder) EndObject() {\n\te.prepareNext(objectClose)\n\te.out = append(e.out, '}')\n}\n\n// WriteName writes out the given string in JSON string value and the name\n// separator ':'. Returns error if input string contains invalid UTF-8, which\n// should not be likely as protobuf field names should be valid.\nfunc (e *Encoder) WriteName(s string) error {\n\te.prepareNext(name)\n\tvar err error\n\t// Append to output regardless of error.\n\te.out, err = appendString(e.out, s)\n\te.out = append(e.out, ':')\n\treturn err\n}\n\n// StartArray writes out the '[' symbol.\nfunc (e *Encoder) StartArray() {\n\te.prepareNext(arrayOpen)\n\te.out = append(e.out, '[')\n}\n\n// EndArray writes out the ']' symbol.\nfunc (e *Encoder) EndArray() {\n\te.prepareNext(arrayClose)\n\te.out = append(e.out, ']')\n}\n\n// prepareNext adds possible comma and indentation for the next value based\n// on last type and indent option. It also updates lastKind to next.\nfunc (e *Encoder) prepareNext(next kind) {\n\tdefer func() {\n\t\t// Set lastKind to next.\n\t\te.lastKind = next\n\t}()\n\n\tif len(e.indent) == 0 {\n\t\t// Need to add comma on the following condition.\n\t\tif e.lastKind&(scalar|objectClose|arrayClose) != 0 &&\n\t\t\tnext&(name|scalar|objectOpen|arrayOpen) != 0 {\n\t\t\te.out = append(e.out, ',')\n\t\t\t// For single-line output, add a random extra space after each\n\t\t\t// comma to make output unstable.\n\t\t\tif detrand.Bool() {\n\t\t\t\te.out = append(e.out, ' ')\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tswitch {\n\tcase e.lastKind&(objectOpen|arrayOpen) != 0:\n\t\t// If next type is NOT closing, add indent and newline.\n\t\tif next&(objectClose|arrayClose) == 0 {\n\t\t\te.indents = append(e.indents, e.indent...)\n\t\t\te.out = append(e.out, '\\n')\n\t\t\te.out = append(e.out, e.indents...)\n\t\t}\n\n\tcase e.lastKind&(scalar|objectClose|arrayClose) != 0:\n\t\tswitch {\n\t\t// If next type is either a value or name, add comma and newline.\n\t\tcase next&(name|scalar|objectOpen|arrayOpen) != 0:\n\t\t\te.out = append(e.out, ',', '\\n')\n\n\t\t// If next type is a closing object or array, adjust indentation.\n\t\tcase next&(objectClose|arrayClose) != 0:\n\t\t\te.indents = e.indents[:len(e.indents)-len(e.indent)]\n\t\t\te.out = append(e.out, '\\n')\n\t\t}\n\t\te.out = append(e.out, e.indents...)\n\n\tcase e.lastKind&name != 0:\n\t\te.out = append(e.out, ' ')\n\t\t// For multi-line output, add a random extra space after key: to make\n\t\t// output unstable.\n\t\tif detrand.Bool() {\n\t\t\te.out = append(e.out, ' ')\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package messageset encodes and decodes the obsolete MessageSet wire format.\npackage messageset\n\nimport (\n\t\"math\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// The MessageSet wire format is equivalent to a message defined as follows,\n// where each Item defines an extension field with a field number of 'type_id'\n// and content of 'message'. MessageSet extensions must be non-repeated message\n// fields.\n//\n//\tmessage MessageSet {\n//\t\trepeated group Item = 1 {\n//\t\t\trequired int32 type_id = 2;\n//\t\t\trequired string message = 3;\n//\t\t}\n//\t}\nconst (\n\tFieldItem    = protowire.Number(1)\n\tFieldTypeID  = protowire.Number(2)\n\tFieldMessage = protowire.Number(3)\n)\n\n// ExtensionName is the field name for extensions of MessageSet.\n//\n// A valid MessageSet extension must be of the form:\n//\n//\tmessage MyMessage {\n//\t\textend proto2.bridge.MessageSet {\n//\t\t\toptional MyMessage message_set_extension = 1234;\n//\t\t}\n//\t\t...\n//\t}\nconst ExtensionName = \"message_set_extension\"\n\n// IsMessageSet returns whether the message uses the MessageSet wire format.\nfunc IsMessageSet(md protoreflect.MessageDescriptor) bool {\n\txmd, ok := md.(interface{ IsMessageSet() bool })\n\treturn ok && xmd.IsMessageSet()\n}\n\n// IsMessageSetExtension reports this field properly extends a MessageSet.\nfunc IsMessageSetExtension(fd protoreflect.FieldDescriptor) bool {\n\tswitch {\n\tcase fd.Name() != ExtensionName:\n\t\treturn false\n\tcase !IsMessageSet(fd.ContainingMessage()):\n\t\treturn false\n\tcase fd.FullName().Parent() != fd.Message().FullName():\n\t\treturn false\n\t}\n\treturn true\n}\n\n// SizeField returns the size of a MessageSet item field containing an extension\n// with the given field number, not counting the contents of the message subfield.\nfunc SizeField(num protowire.Number) int {\n\treturn 2*protowire.SizeTag(FieldItem) + protowire.SizeTag(FieldTypeID) + protowire.SizeVarint(uint64(num))\n}\n\n// Unmarshal parses a MessageSet.\n//\n// It calls fn with the type ID and value of each item in the MessageSet.\n// Unknown fields are discarded.\n//\n// If wantLen is true, the item values include the varint length prefix.\n// This is ugly, but simplifies the fast-path decoder in internal/impl.\nfunc Unmarshal(b []byte, wantLen bool, fn func(typeID protowire.Number, value []byte) error) error {\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn protowire.ParseError(n)\n\t\t}\n\t\tb = b[n:]\n\t\tif num != FieldItem || wtyp != protowire.StartGroupType {\n\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tcontinue\n\t\t}\n\t\ttypeID, value, n, err := ConsumeFieldValue(b, wantLen)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb = b[n:]\n\t\tif typeID == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif err := fn(typeID, value); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConsumeFieldValue parses b as a MessageSet item field value until and including\n// the trailing end group marker. It assumes the start group tag has already been parsed.\n// It returns the contents of the type_id and message subfields and the total\n// item length.\n//\n// If wantLen is true, the returned message value includes the length prefix.\nfunc ConsumeFieldValue(b []byte, wantLen bool) (typeid protowire.Number, message []byte, n int, err error) {\n\tilen := len(b)\n\tfor {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t}\n\t\tb = b[n:]\n\t\tswitch {\n\t\tcase num == FieldItem && wtyp == protowire.EndGroupType:\n\t\t\tif wantLen && len(message) == 0 {\n\t\t\t\t// The message field was missing, which should never happen.\n\t\t\t\t// Be prepared for this case anyway.\n\t\t\t\tmessage = protowire.AppendVarint(message, 0)\n\t\t\t}\n\t\t\treturn typeid, message, ilen - len(b), nil\n\t\tcase num == FieldTypeID && wtyp == protowire.VarintType:\n\t\t\tv, n := protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tif v < 1 || v > math.MaxInt32 {\n\t\t\t\treturn 0, nil, 0, errors.New(\"invalid type_id in message set\")\n\t\t\t}\n\t\t\ttypeid = protowire.Number(v)\n\t\tcase num == FieldMessage && wtyp == protowire.BytesType:\n\t\t\tm, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tif message == nil {\n\t\t\t\tif wantLen {\n\t\t\t\t\tmessage = b[:n:n]\n\t\t\t\t} else {\n\t\t\t\t\tmessage = m[:len(m):len(m)]\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// This case should never happen in practice, but handle it for\n\t\t\t\t// correctness: The MessageSet item contains multiple message\n\t\t\t\t// fields, which need to be merged.\n\t\t\t\t//\n\t\t\t\t// In the case where we're returning the length, this becomes\n\t\t\t\t// quite inefficient since we need to strip the length off\n\t\t\t\t// the existing data and reconstruct it with the combined length.\n\t\t\t\tif wantLen {\n\t\t\t\t\t_, nn := protowire.ConsumeVarint(message)\n\t\t\t\t\tm0 := message[nn:]\n\t\t\t\t\tmessage = nil\n\t\t\t\t\tmessage = protowire.AppendVarint(message, uint64(len(m0)+len(m)))\n\t\t\t\t\tmessage = append(message, m0...)\n\t\t\t\t\tmessage = append(message, m...)\n\t\t\t\t} else {\n\t\t\t\t\tmessage = append(message, m...)\n\t\t\t\t}\n\t\t\t}\n\t\t\tb = b[n:]\n\t\tdefault:\n\t\t\t// We have no place to put it, so we just ignore unknown fields.\n\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t}\n}\n\n// AppendFieldStart appends the start of a MessageSet item field containing\n// an extension with the given number. The caller must add the message\n// subfield (including the tag).\nfunc AppendFieldStart(b []byte, num protowire.Number) []byte {\n\tb = protowire.AppendTag(b, FieldItem, protowire.StartGroupType)\n\tb = protowire.AppendTag(b, FieldTypeID, protowire.VarintType)\n\tb = protowire.AppendVarint(b, uint64(num))\n\treturn b\n}\n\n// AppendFieldEnd appends the trailing end group marker for a MessageSet item field.\nfunc AppendFieldEnd(b []byte) []byte {\n\treturn protowire.AppendTag(b, FieldItem, protowire.EndGroupType)\n}\n\n// SizeUnknown returns the size of an unknown fields section in MessageSet format.\n//\n// See AppendUnknown.\nfunc SizeUnknown(unknown []byte) (size int) {\n\tfor len(unknown) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(unknown)\n\t\tif n < 0 || typ != protowire.BytesType {\n\t\t\treturn 0\n\t\t}\n\t\tunknown = unknown[n:]\n\t\t_, n = protowire.ConsumeBytes(unknown)\n\t\tif n < 0 {\n\t\t\treturn 0\n\t\t}\n\t\tunknown = unknown[n:]\n\t\tsize += SizeField(num) + protowire.SizeTag(FieldMessage) + n\n\t}\n\treturn size\n}\n\n// AppendUnknown appends unknown fields to b in MessageSet format.\n//\n// For historic reasons, unresolved items in a MessageSet are stored in a\n// message's unknown fields section in non-MessageSet format. That is, an\n// unknown item with typeID T and value V appears in the unknown fields as\n// a field with number T and value V.\n//\n// This function converts the unknown fields back into MessageSet form.\nfunc AppendUnknown(b, unknown []byte) ([]byte, error) {\n\tfor len(unknown) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(unknown)\n\t\tif n < 0 || typ != protowire.BytesType {\n\t\t\treturn nil, errors.New(\"invalid data in message set unknown fields\")\n\t\t}\n\t\tunknown = unknown[n:]\n\t\t_, n = protowire.ConsumeBytes(unknown)\n\t\tif n < 0 {\n\t\t\treturn nil, errors.New(\"invalid data in message set unknown fields\")\n\t\t}\n\t\tb = AppendFieldStart(b, num)\n\t\tb = protowire.AppendTag(b, FieldMessage, protowire.BytesType)\n\t\tb = append(b, unknown[:n]...)\n\t\tb = AppendFieldEnd(b)\n\t\tunknown = unknown[n:]\n\t}\n\treturn b, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package tag marshals and unmarshals the legacy struct tags as generated\n// by historical versions of protoc-gen-go.\npackage tag\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar byteType = reflect.TypeOf(byte(0))\n\n// Unmarshal decodes the tag into a prototype.Field.\n//\n// The goType is needed to determine the original protoreflect.Kind since the\n// tag does not record sufficient information to determine that.\n// The type is the underlying field type (e.g., a repeated field may be\n// represented by []T, but the Go type passed in is just T).\n// A list of enum value descriptors must be provided for enum fields.\n// This does not populate the Enum or Message.\n//\n// This function is a best effort attempt; parsing errors are ignored.\nfunc Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {\n\tf := new(filedesc.Field)\n\tf.L0.ParentFile = filedesc.SurrogateProto2\n\tf.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures\n\tfor len(tag) > 0 {\n\t\ti := strings.IndexByte(tag, ',')\n\t\tif i < 0 {\n\t\t\ti = len(tag)\n\t\t}\n\t\tswitch s := tag[:i]; {\n\t\tcase strings.HasPrefix(s, \"name=\"):\n\t\t\tf.L0.FullName = protoreflect.FullName(s[len(\"name=\"):])\n\t\tcase strings.Trim(s, \"0123456789\") == \"\":\n\t\t\tn, _ := strconv.ParseUint(s, 10, 32)\n\t\t\tf.L1.Number = protoreflect.FieldNumber(n)\n\t\tcase s == \"opt\":\n\t\t\tf.L1.Cardinality = protoreflect.Optional\n\t\tcase s == \"req\":\n\t\t\tf.L1.Cardinality = protoreflect.Required\n\t\tcase s == \"rep\":\n\t\t\tf.L1.Cardinality = protoreflect.Repeated\n\t\tcase s == \"varint\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Bool:\n\t\t\t\tf.L1.Kind = protoreflect.BoolKind\n\t\t\tcase reflect.Int32:\n\t\t\t\tf.L1.Kind = protoreflect.Int32Kind\n\t\t\tcase reflect.Int64:\n\t\t\t\tf.L1.Kind = protoreflect.Int64Kind\n\t\t\tcase reflect.Uint32:\n\t\t\t\tf.L1.Kind = protoreflect.Uint32Kind\n\t\t\tcase reflect.Uint64:\n\t\t\t\tf.L1.Kind = protoreflect.Uint64Kind\n\t\t\t}\n\t\tcase s == \"zigzag32\":\n\t\t\tif goType.Kind() == reflect.Int32 {\n\t\t\t\tf.L1.Kind = protoreflect.Sint32Kind\n\t\t\t}\n\t\tcase s == \"zigzag64\":\n\t\t\tif goType.Kind() == reflect.Int64 {\n\t\t\t\tf.L1.Kind = protoreflect.Sint64Kind\n\t\t\t}\n\t\tcase s == \"fixed32\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Int32:\n\t\t\t\tf.L1.Kind = protoreflect.Sfixed32Kind\n\t\t\tcase reflect.Uint32:\n\t\t\t\tf.L1.Kind = protoreflect.Fixed32Kind\n\t\t\tcase reflect.Float32:\n\t\t\t\tf.L1.Kind = protoreflect.FloatKind\n\t\t\t}\n\t\tcase s == \"fixed64\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Int64:\n\t\t\t\tf.L1.Kind = protoreflect.Sfixed64Kind\n\t\t\tcase reflect.Uint64:\n\t\t\t\tf.L1.Kind = protoreflect.Fixed64Kind\n\t\t\tcase reflect.Float64:\n\t\t\t\tf.L1.Kind = protoreflect.DoubleKind\n\t\t\t}\n\t\tcase s == \"bytes\":\n\t\t\tswitch {\n\t\t\tcase goType.Kind() == reflect.String:\n\t\t\t\tf.L1.Kind = protoreflect.StringKind\n\t\t\tcase goType.Kind() == reflect.Slice && goType.Elem() == byteType:\n\t\t\t\tf.L1.Kind = protoreflect.BytesKind\n\t\t\tdefault:\n\t\t\t\tf.L1.Kind = protoreflect.MessageKind\n\t\t\t}\n\t\tcase s == \"group\":\n\t\t\tf.L1.Kind = protoreflect.GroupKind\n\t\tcase strings.HasPrefix(s, \"enum=\"):\n\t\t\tf.L1.Kind = protoreflect.EnumKind\n\t\tcase strings.HasPrefix(s, \"json=\"):\n\t\t\tjsonName := s[len(\"json=\"):]\n\t\t\tif jsonName != strs.JSONCamelCase(string(f.L0.FullName.Name())) {\n\t\t\t\tf.L1.StringName.InitJSON(jsonName)\n\t\t\t}\n\t\tcase s == \"packed\":\n\t\t\tf.L1.EditionFeatures.IsPacked = true\n\t\tcase strings.HasPrefix(s, \"def=\"):\n\t\t\t// The default tag is special in that everything afterwards is the\n\t\t\t// default regardless of the presence of commas.\n\t\t\ts, i = tag[len(\"def=\"):], len(tag)\n\t\t\tv, ev, _ := defval.Unmarshal(s, f.L1.Kind, evs, defval.GoTag)\n\t\t\tf.L1.Default = filedesc.DefaultValue(v, ev)\n\t\tcase s == \"proto3\":\n\t\t\tf.L0.ParentFile = filedesc.SurrogateProto3\n\t\t}\n\t\ttag = strings.TrimPrefix(tag[i:], \",\")\n\t}\n\n\t// The generator uses the group message name instead of the field name.\n\t// We obtain the real field name by lowercasing the group name.\n\tif f.L1.Kind == protoreflect.GroupKind {\n\t\tf.L0.FullName = protoreflect.FullName(strings.ToLower(string(f.L0.FullName)))\n\t}\n\treturn f\n}\n\n// Marshal encodes the protoreflect.FieldDescriptor as a tag.\n//\n// The enumName must be provided if the kind is an enum.\n// Historically, the formulation of the enum \"name\" was the proto package\n// dot-concatenated with the generated Go identifier for the enum type.\n// Depending on the context on how Marshal is called, there are different ways\n// through which that information is determined. As such it is the caller's\n// responsibility to provide a function to obtain that information.\nfunc Marshal(fd protoreflect.FieldDescriptor, enumName string) string {\n\tvar tag []string\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Uint64Kind:\n\t\ttag = append(tag, \"varint\")\n\tcase protoreflect.Sint32Kind:\n\t\ttag = append(tag, \"zigzag32\")\n\tcase protoreflect.Sint64Kind:\n\t\ttag = append(tag, \"zigzag64\")\n\tcase protoreflect.Sfixed32Kind, protoreflect.Fixed32Kind, protoreflect.FloatKind:\n\t\ttag = append(tag, \"fixed32\")\n\tcase protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind, protoreflect.DoubleKind:\n\t\ttag = append(tag, \"fixed64\")\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind:\n\t\ttag = append(tag, \"bytes\")\n\tcase protoreflect.GroupKind:\n\t\ttag = append(tag, \"group\")\n\t}\n\ttag = append(tag, strconv.Itoa(int(fd.Number())))\n\tswitch fd.Cardinality() {\n\tcase protoreflect.Optional:\n\t\ttag = append(tag, \"opt\")\n\tcase protoreflect.Required:\n\t\ttag = append(tag, \"req\")\n\tcase protoreflect.Repeated:\n\t\ttag = append(tag, \"rep\")\n\t}\n\tif fd.IsPacked() {\n\t\ttag = append(tag, \"packed\")\n\t}\n\tname := string(fd.Name())\n\tif fd.Kind() == protoreflect.GroupKind {\n\t\t// The name of the FieldDescriptor for a group field is\n\t\t// lowercased. To find the original capitalization, we\n\t\t// look in the field's MessageType.\n\t\tname = string(fd.Message().Name())\n\t}\n\ttag = append(tag, \"name=\"+name)\n\tif jsonName := fd.JSONName(); jsonName != \"\" && jsonName != name && !fd.IsExtension() {\n\t\t// NOTE: The jsonName != name condition is suspect, but it preserve\n\t\t// the exact same semantics from the previous generator.\n\t\ttag = append(tag, \"json=\"+jsonName)\n\t}\n\t// The previous implementation does not tag extension fields as proto3,\n\t// even when the field is defined in a proto3 file. Match that behavior\n\t// for consistency.\n\tif fd.Syntax() == protoreflect.Proto3 && !fd.IsExtension() {\n\t\ttag = append(tag, \"proto3\")\n\t}\n\tif fd.Kind() == protoreflect.EnumKind && enumName != \"\" {\n\t\ttag = append(tag, \"enum=\"+enumName)\n\t}\n\tif fd.ContainingOneof() != nil {\n\t\ttag = append(tag, \"oneof\")\n\t}\n\t// This must appear last in the tag, since commas in strings aren't escaped.\n\tif fd.HasDefault() {\n\t\tdef, _ := defval.Marshal(fd.Default(), fd.DefaultEnumValue(), fd.Kind(), defval.GoTag)\n\t\ttag = append(tag, \"def=\"+def)\n\t}\n\treturn strings.Join(tag, \",\")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// Decoder is a token-based textproto decoder.\ntype Decoder struct {\n\t// lastCall is last method called, either readCall or peekCall.\n\t// Initial value is readCall.\n\tlastCall call\n\n\t// lastToken contains the last read token.\n\tlastToken Token\n\n\t// lastErr contains the last read error.\n\tlastErr error\n\n\t// openStack is a stack containing the byte characters for MessageOpen and\n\t// ListOpen kinds. The top of stack represents the message or the list that\n\t// the current token is nested in. An empty stack means the current token is\n\t// at the top level message. The characters '{' and '<' both represent the\n\t// MessageOpen kind.\n\topenStack []byte\n\n\t// orig is used in reporting line and column.\n\torig []byte\n\t// in contains the unconsumed input.\n\tin []byte\n}\n\n// NewDecoder returns a Decoder to read the given []byte.\nfunc NewDecoder(b []byte) *Decoder {\n\treturn &Decoder{orig: b, in: b}\n}\n\n// ErrUnexpectedEOF means that EOF was encountered in the middle of the input.\nvar ErrUnexpectedEOF = errors.New(\"%v\", io.ErrUnexpectedEOF)\n\n// call specifies which Decoder method was invoked.\ntype call uint8\n\nconst (\n\treadCall call = iota\n\tpeekCall\n)\n\n// Peek looks ahead and returns the next token and error without advancing a read.\nfunc (d *Decoder) Peek() (Token, error) {\n\tdefer func() { d.lastCall = peekCall }()\n\tif d.lastCall == readCall {\n\t\td.lastToken, d.lastErr = d.Read()\n\t}\n\treturn d.lastToken, d.lastErr\n}\n\n// Read returns the next token.\n// It will return an error if there is no valid token.\nfunc (d *Decoder) Read() (Token, error) {\n\tdefer func() { d.lastCall = readCall }()\n\tif d.lastCall == peekCall {\n\t\treturn d.lastToken, d.lastErr\n\t}\n\n\ttok, err := d.parseNext(d.lastToken.kind)\n\tif err != nil {\n\t\treturn Token{}, err\n\t}\n\n\tswitch tok.kind {\n\tcase comma, semicolon:\n\t\ttok, err = d.parseNext(tok.kind)\n\t\tif err != nil {\n\t\t\treturn Token{}, err\n\t\t}\n\t}\n\td.lastToken = tok\n\treturn tok, nil\n}\n\nconst (\n\tmismatchedFmt = \"mismatched close character %q\"\n\tunexpectedFmt = \"unexpected character %q\"\n)\n\n// parseNext parses the next Token based on given last kind.\nfunc (d *Decoder) parseNext(lastKind Kind) (Token, error) {\n\t// Trim leading spaces.\n\td.consume(0)\n\tisEOF := false\n\tif len(d.in) == 0 {\n\t\tisEOF = true\n\t}\n\n\tswitch lastKind {\n\tcase EOF:\n\t\treturn d.consumeToken(EOF, 0, 0), nil\n\n\tcase bof:\n\t\t// Start of top level message. Next token can be EOF or Name.\n\t\tif isEOF {\n\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t}\n\t\treturn d.parseFieldName()\n\n\tcase Name:\n\t\t// Next token can be MessageOpen, ListOpen or Scalar.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase '{', '<':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\tcase '[':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(ListOpen, 1, 0), nil\n\t\tdefault:\n\t\t\treturn d.parseScalar()\n\t\t}\n\n\tcase Scalar:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// \tNext token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch d.in[0] {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\t// Next token can be ListClose or comma.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ']':\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn Token{}, d.newSyntaxError(unexpectedFmt, ch)\n\t\t\t}\n\t\t}\n\n\tcase MessageOpen:\n\t\t// Next token can be MessageClose or Name.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\t_, closeCh := d.currentOpenKind()\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase closeCh:\n\t\t\td.popOpenStack()\n\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\tcase otherCloseChar[closeCh]:\n\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\tdefault:\n\t\t\treturn d.parseFieldName()\n\t\t}\n\n\tcase MessageClose:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// Next token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\t// Next token can be ListClose or comma\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn Token{}, d.newSyntaxError(unexpectedFmt, ch)\n\t\t\t}\n\t\t}\n\n\tcase ListOpen:\n\t\t// Next token can be ListClose, MessageStart or Scalar.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase ']':\n\t\t\td.popOpenStack()\n\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\tcase '{', '<':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\tdefault:\n\t\t\treturn d.parseScalar()\n\t\t}\n\n\tcase ListClose:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// Next token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tdefault:\n\t\t\t// It is not possible to have this case. Let it panic below.\n\t\t}\n\n\tcase comma, semicolon:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message. Next token can be EOF or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\treturn d.parseFieldName()\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\tif lastKind == semicolon {\n\t\t\t\t// It is not be possible to have this case as logic here\n\t\t\t\t// should not have produced a semicolon Token when inside a\n\t\t\t\t// list. Let it panic below.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Next token can be MessageOpen or Scalar.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase '{', '<':\n\t\t\t\td.pushOpenStack(ch)\n\t\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseScalar()\n\t\t\t}\n\t\t}\n\t}\n\n\tline, column := d.Position(len(d.orig) - len(d.in))\n\tpanic(fmt.Sprintf(\"Decoder.parseNext: bug at handling line %d:%d with lastKind=%v\", line, column, lastKind))\n}\n\nvar otherCloseChar = map[byte]byte{\n\t'}': '>',\n\t'>': '}',\n}\n\n// currentOpenKind indicates whether current position is inside a message, list\n// or top-level message by returning MessageOpen, ListOpen or bof respectively.\n// If the returned kind is either a MessageOpen or ListOpen, it also returns the\n// corresponding closing character.\nfunc (d *Decoder) currentOpenKind() (Kind, byte) {\n\tif len(d.openStack) == 0 {\n\t\treturn bof, 0\n\t}\n\topenCh := d.openStack[len(d.openStack)-1]\n\tswitch openCh {\n\tcase '{':\n\t\treturn MessageOpen, '}'\n\tcase '<':\n\t\treturn MessageOpen, '>'\n\tcase '[':\n\t\treturn ListOpen, ']'\n\t}\n\tpanic(fmt.Sprintf(\"Decoder: openStack contains invalid byte %c\", openCh))\n}\n\nfunc (d *Decoder) pushOpenStack(ch byte) {\n\td.openStack = append(d.openStack, ch)\n}\n\nfunc (d *Decoder) popOpenStack() {\n\td.openStack = d.openStack[:len(d.openStack)-1]\n}\n\n// parseFieldName parses field name and separator.\nfunc (d *Decoder) parseFieldName() (tok Token, err error) {\n\tdefer func() {\n\t\tif err == nil && d.tryConsumeChar(':') {\n\t\t\ttok.attrs |= hasSeparator\n\t\t}\n\t}()\n\n\t// Extension or Any type URL.\n\tif d.in[0] == '[' {\n\t\treturn d.parseTypeName()\n\t}\n\n\t// Identifier.\n\tif size := parseIdent(d.in, false); size > 0 {\n\t\treturn d.consumeToken(Name, size, uint8(IdentName)), nil\n\t}\n\n\t// Field number. Identify if input is a valid number that is not negative\n\t// and is decimal integer within 32-bit range.\n\tif num := parseNumber(d.in); num.size > 0 {\n\t\tstr := num.string(d.in)\n\t\tif !num.neg && num.kind == numDec {\n\t\t\tif _, err := strconv.ParseInt(str, 10, 32); err == nil {\n\t\t\t\treturn d.consumeToken(Name, num.size, uint8(FieldNumber)), nil\n\t\t\t}\n\t\t}\n\t\treturn Token{}, d.newSyntaxError(\"invalid field number: %s\", str)\n\t}\n\n\treturn Token{}, d.newSyntaxError(\"invalid field name: %s\", errId(d.in))\n}\n\n// parseTypeName parses Any type URL or extension field name. The name is\n// enclosed in [ and ] characters. The C++ parser does not handle many legal URL\n// strings. This implementation is more liberal and allows for the pattern\n// ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed\n// in between [ ], '.', '/' and the sub names.\nfunc (d *Decoder) parseTypeName() (Token, error) {\n\tstartPos := len(d.orig) - len(d.in)\n\t// Use alias s to advance first in order to use d.in for error handling.\n\t// Caller already checks for [ as first character.\n\ts := consume(d.in[1:], 0)\n\tif len(s) == 0 {\n\t\treturn Token{}, ErrUnexpectedEOF\n\t}\n\n\tvar name []byte\n\tfor len(s) > 0 && isTypeNameChar(s[0]) {\n\t\tname = append(name, s[0])\n\t\ts = s[1:]\n\t}\n\ts = consume(s, 0)\n\n\tvar closed bool\n\tfor len(s) > 0 && !closed {\n\t\tswitch {\n\t\tcase s[0] == ']':\n\t\t\ts = s[1:]\n\t\t\tclosed = true\n\n\t\tcase s[0] == '/', s[0] == '.':\n\t\t\tif len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') {\n\t\t\t\treturn Token{}, d.newSyntaxError(\"invalid type URL/extension field name: %s\",\n\t\t\t\t\td.orig[startPos:len(d.orig)-len(s)+1])\n\t\t\t}\n\t\t\tname = append(name, s[0])\n\t\t\ts = s[1:]\n\t\t\ts = consume(s, 0)\n\t\t\tfor len(s) > 0 && isTypeNameChar(s[0]) {\n\t\t\t\tname = append(name, s[0])\n\t\t\t\ts = s[1:]\n\t\t\t}\n\t\t\ts = consume(s, 0)\n\n\t\tdefault:\n\t\t\treturn Token{}, d.newSyntaxError(\n\t\t\t\t\"invalid type URL/extension field name: %s\", d.orig[startPos:len(d.orig)-len(s)+1])\n\t\t}\n\t}\n\n\tif !closed {\n\t\treturn Token{}, ErrUnexpectedEOF\n\t}\n\n\t// First character cannot be '.'. Last character cannot be '.' or '/'.\n\tsize := len(name)\n\tif size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' {\n\t\treturn Token{}, d.newSyntaxError(\"invalid type URL/extension field name: %s\",\n\t\t\td.orig[startPos:len(d.orig)-len(s)])\n\t}\n\n\td.in = s\n\tendPos := len(d.orig) - len(d.in)\n\td.consume(0)\n\n\treturn Token{\n\t\tkind:  Name,\n\t\tattrs: uint8(TypeName),\n\t\tpos:   startPos,\n\t\traw:   d.orig[startPos:endPos],\n\t\tstr:   string(name),\n\t}, nil\n}\n\nfunc isTypeNameChar(b byte) bool {\n\treturn (b == '-' || b == '_' ||\n\t\t('0' <= b && b <= '9') ||\n\t\t('a' <= b && b <= 'z') ||\n\t\t('A' <= b && b <= 'Z'))\n}\n\nfunc isWhiteSpace(b byte) bool {\n\tswitch b {\n\tcase ' ', '\\n', '\\r', '\\t':\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// parseIdent parses an unquoted proto identifier and returns size.\n// If allowNeg is true, it allows '-' to be the first character in the\n// identifier. This is used when parsing literal values like -infinity, etc.\n// Regular expression matches an identifier: `^[_a-zA-Z][_a-zA-Z0-9]*`\nfunc parseIdent(input []byte, allowNeg bool) int {\n\tvar size int\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\n\tif allowNeg && s[0] == '-' {\n\t\ts = s[1:]\n\t\tsize++\n\t\tif len(s) == 0 {\n\t\t\treturn 0\n\t\t}\n\t}\n\n\tswitch {\n\tcase s[0] == '_',\n\t\t'a' <= s[0] && s[0] <= 'z',\n\t\t'A' <= s[0] && s[0] <= 'Z':\n\t\ts = s[1:]\n\t\tsize++\n\tdefault:\n\t\treturn 0\n\t}\n\n\tfor len(s) > 0 && (s[0] == '_' ||\n\t\t'a' <= s[0] && s[0] <= 'z' ||\n\t\t'A' <= s[0] && s[0] <= 'Z' ||\n\t\t'0' <= s[0] && s[0] <= '9') {\n\t\ts = s[1:]\n\t\tsize++\n\t}\n\n\tif len(s) > 0 && !isDelim(s[0]) {\n\t\treturn 0\n\t}\n\n\treturn size\n}\n\n// parseScalar parses for a string, literal or number value.\nfunc (d *Decoder) parseScalar() (Token, error) {\n\tif d.in[0] == '\"' || d.in[0] == '\\'' {\n\t\treturn d.parseStringValue()\n\t}\n\n\tif tok, ok := d.parseLiteralValue(); ok {\n\t\treturn tok, nil\n\t}\n\n\tif tok, ok := d.parseNumberValue(); ok {\n\t\treturn tok, nil\n\t}\n\n\treturn Token{}, d.newSyntaxError(\"invalid scalar value: %s\", errId(d.in))\n}\n\n// parseLiteralValue parses a literal value. A literal value is used for\n// bools, special floats and enums. This function simply identifies that the\n// field value is a literal.\nfunc (d *Decoder) parseLiteralValue() (Token, bool) {\n\tsize := parseIdent(d.in, true)\n\tif size == 0 {\n\t\treturn Token{}, false\n\t}\n\treturn d.consumeToken(Scalar, size, literalValue), true\n}\n\n// consumeToken constructs a Token for given Kind from d.in and consumes given\n// size-length from it.\nfunc (d *Decoder) consumeToken(kind Kind, size int, attrs uint8) Token {\n\t// Important to compute raw and pos before consuming.\n\ttok := Token{\n\t\tkind:  kind,\n\t\tattrs: attrs,\n\t\tpos:   len(d.orig) - len(d.in),\n\t\traw:   d.in[:size],\n\t}\n\td.consume(size)\n\treturn tok\n}\n\n// newSyntaxError returns a syntax error with line and column information for\n// current position.\nfunc (d *Decoder) newSyntaxError(f string, x ...any) error {\n\te := errors.New(f, x...)\n\tline, column := d.Position(len(d.orig) - len(d.in))\n\treturn errors.New(\"syntax error (line %d:%d): %v\", line, column, e)\n}\n\n// Position returns line and column number of given index of the original input.\n// It will panic if index is out of range.\nfunc (d *Decoder) Position(idx int) (line int, column int) {\n\tb := d.orig[:idx]\n\tline = bytes.Count(b, []byte(\"\\n\")) + 1\n\tif i := bytes.LastIndexByte(b, '\\n'); i >= 0 {\n\t\tb = b[i+1:]\n\t}\n\tcolumn = utf8.RuneCount(b) + 1 // ignore multi-rune characters\n\treturn line, column\n}\n\nfunc (d *Decoder) tryConsumeChar(c byte) bool {\n\tif len(d.in) > 0 && d.in[0] == c {\n\t\td.consume(1)\n\t\treturn true\n\t}\n\treturn false\n}\n\n// consume consumes n bytes of input and any subsequent whitespace or comments.\nfunc (d *Decoder) consume(n int) {\n\td.in = consume(d.in, n)\n\treturn\n}\n\n// consume consumes n bytes of input and any subsequent whitespace or comments.\nfunc consume(b []byte, n int) []byte {\n\tb = b[n:]\n\tfor len(b) > 0 {\n\t\tswitch b[0] {\n\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\tb = b[1:]\n\t\tcase '#':\n\t\t\tif i := bytes.IndexByte(b, '\\n'); i >= 0 {\n\t\t\t\tb = b[i+len(\"\\n\"):]\n\t\t\t} else {\n\t\t\t\tb = nil\n\t\t\t}\n\t\tdefault:\n\t\t\treturn b\n\t\t}\n\t}\n\treturn b\n}\n\n// errId extracts a byte sequence that looks like an invalid ID\n// (for the purposes of error reporting).\nfunc errId(seq []byte) []byte {\n\tconst maxLen = 32\n\tfor i := 0; i < len(seq); {\n\t\tif i > maxLen {\n\t\t\treturn append(seq[:i:i], \"…\"...)\n\t\t}\n\t\tr, size := utf8.DecodeRune(seq[i:])\n\t\tif r > utf8.RuneSelf || (r != '/' && isDelim(byte(r))) {\n\t\t\tif i == 0 {\n\t\t\t\t// Either the first byte is invalid UTF-8 or a\n\t\t\t\t// delimiter, or the first rune is non-ASCII.\n\t\t\t\t// Return it as-is.\n\t\t\t\ti = size\n\t\t\t}\n\t\t\treturn seq[:i:i]\n\t\t}\n\t\ti += size\n\t}\n\t// No delimiter found.\n\treturn seq\n}\n\n// isDelim returns true if given byte is a delimiter character.\nfunc isDelim(c byte) bool {\n\treturn !(c == '-' || c == '+' || c == '.' || c == '_' ||\n\t\t('a' <= c && c <= 'z') ||\n\t\t('A' <= c && c <= 'Z') ||\n\t\t('0' <= c && c <= '9'))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\n// parseNumberValue parses a number from the input and returns a Token object.\nfunc (d *Decoder) parseNumberValue() (Token, bool) {\n\tin := d.in\n\tnum := parseNumber(in)\n\tif num.size == 0 {\n\t\treturn Token{}, false\n\t}\n\tnumAttrs := num.kind\n\tif num.neg {\n\t\tnumAttrs |= isNegative\n\t}\n\ttok := Token{\n\t\tkind:     Scalar,\n\t\tattrs:    numberValue,\n\t\tpos:      len(d.orig) - len(d.in),\n\t\traw:      d.in[:num.size],\n\t\tstr:      num.string(d.in),\n\t\tnumAttrs: numAttrs,\n\t}\n\td.consume(num.size)\n\treturn tok, true\n}\n\nconst (\n\tnumDec uint8 = (1 << iota) / 2\n\tnumHex\n\tnumOct\n\tnumFloat\n)\n\n// number is the result of parsing out a valid number from parseNumber. It\n// contains data for doing float or integer conversion via the strconv package\n// in conjunction with the input bytes.\ntype number struct {\n\tkind uint8\n\tneg  bool\n\tsize int\n\t// if neg, this is the length of whitespace and comments between\n\t// the minus sign and the rest fo the number literal\n\tsep int\n}\n\nfunc (num number) string(data []byte) string {\n\tstrSize := num.size\n\tlast := num.size - 1\n\tif num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') {\n\t\tstrSize = last\n\t}\n\tif num.neg && num.sep > 0 {\n\t\t// strip whitespace/comments between negative sign and the rest\n\t\tstrLen := strSize - num.sep\n\t\tstr := make([]byte, strLen)\n\t\tstr[0] = data[0]\n\t\tcopy(str[1:], data[num.sep+1:strSize])\n\t\treturn string(str)\n\t}\n\treturn string(data[:strSize])\n\n}\n\n// parseNumber constructs a number object from given input. It allows for the\n// following patterns:\n//\n//\tinteger: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*)\n//\tfloat: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?)\n//\n// It also returns the number of parsed bytes for the given number, 0 if it is\n// not a number.\nfunc parseNumber(input []byte) number {\n\tkind := numDec\n\tvar size int\n\tvar neg bool\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn number{}\n\t}\n\n\t// Optional -\n\tvar sep int\n\tif s[0] == '-' {\n\t\tneg = true\n\t\ts = s[1:]\n\t\tsize++\n\t\t// Consume any whitespace or comments between the\n\t\t// negative sign and the rest of the number\n\t\tlenBefore := len(s)\n\t\ts = consume(s, 0)\n\t\tsep = lenBefore - len(s)\n\t\tsize += sep\n\t\tif len(s) == 0 {\n\t\t\treturn number{}\n\t\t}\n\t}\n\n\tswitch {\n\tcase s[0] == '0':\n\t\tif len(s) > 1 {\n\t\t\tswitch {\n\t\t\tcase s[1] == 'x' || s[1] == 'X':\n\t\t\t\t// Parse as hex number.\n\t\t\t\tkind = numHex\n\t\t\t\tn := 2\n\t\t\t\ts = s[2:]\n\t\t\t\tfor len(s) > 0 && (('0' <= s[0] && s[0] <= '9') ||\n\t\t\t\t\t('a' <= s[0] && s[0] <= 'f') ||\n\t\t\t\t\t('A' <= s[0] && s[0] <= 'F')) {\n\t\t\t\t\ts = s[1:]\n\t\t\t\t\tn++\n\t\t\t\t}\n\t\t\t\tif n == 2 {\n\t\t\t\t\treturn number{}\n\t\t\t\t}\n\t\t\t\tsize += n\n\n\t\t\tcase '0' <= s[1] && s[1] <= '7':\n\t\t\t\t// Parse as octal number.\n\t\t\t\tkind = numOct\n\t\t\t\tn := 2\n\t\t\t\ts = s[2:]\n\t\t\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '7' {\n\t\t\t\t\ts = s[1:]\n\t\t\t\t\tn++\n\t\t\t\t}\n\t\t\t\tsize += n\n\t\t\t}\n\n\t\t\tif kind&(numHex|numOct) > 0 {\n\t\t\t\tif len(s) > 0 && !isDelim(s[0]) {\n\t\t\t\t\treturn number{}\n\t\t\t\t}\n\t\t\t\treturn number{kind: kind, neg: neg, size: size, sep: sep}\n\t\t\t}\n\t\t}\n\t\ts = s[1:]\n\t\tsize++\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\tn := 1\n\t\ts = s[1:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\n\tcase s[0] == '.':\n\t\t// Set kind to numFloat to signify the intent to parse as float. And\n\t\t// that it needs to have other digits after '.'.\n\t\tkind = numFloat\n\n\tdefault:\n\t\treturn number{}\n\t}\n\n\t// . followed by 0 or more digits.\n\tif len(s) > 0 && s[0] == '.' {\n\t\tn := 1\n\t\ts = s[1:]\n\t\t// If decimal point was before any digits, it should be followed by\n\t\t// other digits.\n\t\tif len(s) == 0 && kind == numFloat {\n\t\t\treturn number{}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\t\tkind = numFloat\n\t}\n\n\t// e or E followed by an optional - or + and 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\tkind = numFloat\n\t\ts = s[1:]\n\t\tn := 1\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn number{}\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\t}\n\n\t// Optional suffix f or F for floats.\n\tif len(s) > 0 && (s[0] == 'f' || s[0] == 'F') {\n\t\tkind = numFloat\n\t\ts = s[1:]\n\t\tsize++\n\t}\n\n\t// Check that next byte is a delimiter or it is at the end.\n\tif len(s) > 0 && !isDelim(s[0]) {\n\t\treturn number{}\n\t}\n\n\treturn number{kind: kind, neg: neg, size: size, sep: sep}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/strs\"\n)\n\n// parseStringValue parses string field token.\n// This differs from parseString since the text format allows\n// multiple back-to-back string literals where they are semantically treated\n// as a single large string with all values concatenated.\n//\n// E.g., `\"foo\" \"bar\" \"baz\"` => \"foobarbaz\"\nfunc (d *Decoder) parseStringValue() (Token, error) {\n\t// Note that the ending quote is sufficient to unambiguously mark the end\n\t// of a string. Thus, the text grammar does not require intervening\n\t// whitespace or control characters in-between strings.\n\t// Thus, the following is valid:\n\t//\t`\"foo\"'bar'\"baz\"` => \"foobarbaz\"\n\tin0 := d.in\n\tvar ss []string\n\tfor len(d.in) > 0 && (d.in[0] == '\"' || d.in[0] == '\\'') {\n\t\ts, err := d.parseString()\n\t\tif err != nil {\n\t\t\treturn Token{}, err\n\t\t}\n\t\tss = append(ss, s)\n\t}\n\t// d.in already points to the end of the value at this point.\n\treturn Token{\n\t\tkind:  Scalar,\n\t\tattrs: stringValue,\n\t\tpos:   len(d.orig) - len(in0),\n\t\traw:   in0[:len(in0)-len(d.in)],\n\t\tstr:   strings.Join(ss, \"\"),\n\t}, nil\n}\n\n// parseString parses a string value enclosed in \" or '.\nfunc (d *Decoder) parseString() (string, error) {\n\tin := d.in\n\tif len(in) == 0 {\n\t\treturn \"\", ErrUnexpectedEOF\n\t}\n\tquote := in[0]\n\tin = in[1:]\n\ti := indexNeedEscapeInBytes(in)\n\tin, out := in[i:], in[:i:i] // set cap to prevent mutations\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRune(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\treturn \"\", d.newSyntaxError(\"invalid UTF-8 detected\")\n\t\tcase r == 0 || r == '\\n':\n\t\t\treturn \"\", d.newSyntaxError(\"invalid character %q in string\", r)\n\t\tcase r == rune(quote):\n\t\t\tin = in[1:]\n\t\t\td.consume(len(d.in) - len(in))\n\t\t\treturn string(out), nil\n\t\tcase r == '\\\\':\n\t\t\tif len(in) < 2 {\n\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := in[1]; r {\n\t\t\tcase '\"', '\\'', '\\\\', '?':\n\t\t\t\tin, out = in[2:], append(out, r)\n\t\t\tcase 'a':\n\t\t\t\tin, out = in[2:], append(out, '\\a')\n\t\t\tcase 'b':\n\t\t\t\tin, out = in[2:], append(out, '\\b')\n\t\t\tcase 'n':\n\t\t\t\tin, out = in[2:], append(out, '\\n')\n\t\t\tcase 'r':\n\t\t\t\tin, out = in[2:], append(out, '\\r')\n\t\t\tcase 't':\n\t\t\t\tin, out = in[2:], append(out, '\\t')\n\t\t\tcase 'v':\n\t\t\t\tin, out = in[2:], append(out, '\\v')\n\t\t\tcase 'f':\n\t\t\t\tin, out = in[2:], append(out, '\\f')\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\t\t\t// One, two, or three octal characters.\n\t\t\t\tn := len(in[1:]) - len(bytes.TrimLeft(in[1:], \"01234567\"))\n\t\t\t\tif n > 3 {\n\t\t\t\t\tn = 3\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[1:1+n]), 8, 8)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid octal escape code %q in string\", in[:1+n])\n\t\t\t\t}\n\t\t\t\tin, out = in[1+n:], append(out, byte(v))\n\t\t\tcase 'x':\n\t\t\t\t// One or two hexadecimal characters.\n\t\t\t\tn := len(in[2:]) - len(bytes.TrimLeft(in[2:], \"0123456789abcdefABCDEF\"))\n\t\t\t\tif n > 2 {\n\t\t\t\t\tn = 2\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[2:2+n]), 16, 8)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid hex escape code %q in string\", in[:2+n])\n\t\t\t\t}\n\t\t\t\tin, out = in[2+n:], append(out, byte(v))\n\t\t\tcase 'u', 'U':\n\t\t\t\t// Four or eight hexadecimal characters\n\t\t\t\tn := 6\n\t\t\t\tif r == 'U' {\n\t\t\t\t\tn = 10\n\t\t\t\t}\n\t\t\t\tif len(in) < n {\n\t\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[2:n]), 16, 32)\n\t\t\t\tif utf8.MaxRune < v || err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid Unicode escape code %q in string\", in[:n])\n\t\t\t\t}\n\t\t\t\tin = in[n:]\n\n\t\t\t\tr := rune(v)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tif len(in) < 6 {\n\t\t\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv, err := strconv.ParseUint(string(in[2:6]), 16, 16)\n\t\t\t\t\tr = utf16.DecodeRune(r, rune(v))\n\t\t\t\t\tif in[0] != '\\\\' || in[1] != 'u' || r == unicode.ReplacementChar || err != nil {\n\t\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid Unicode escape code %q in string\", in[:6])\n\t\t\t\t\t}\n\t\t\t\t\tin = in[6:]\n\t\t\t\t}\n\t\t\t\tout = append(out, string(r)...)\n\t\t\tdefault:\n\t\t\t\treturn \"\", d.newSyntaxError(\"invalid escape code %q in string\", in[:2])\n\t\t\t}\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInBytes(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\treturn \"\", ErrUnexpectedEOF\n}\n\n// indexNeedEscapeInString returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) }\n\n// UnmarshalString returns an unescaped string given a textproto string value.\n// String value needs to contain single or double quotes. This is only used by\n// internal/encoding/defval package for unmarshaling bytes.\nfunc UnmarshalString(s string) (string, error) {\n\td := NewDecoder([]byte(s))\n\treturn d.parseString()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n)\n\n// Kind represents a token kind expressible in the textproto format.\ntype Kind uint8\n\n// Kind values.\nconst (\n\tInvalid Kind = iota\n\tEOF\n\tName   // Name indicates the field name.\n\tScalar // Scalar are scalar values, e.g. \"string\", 47, ENUM_LITERAL, true.\n\tMessageOpen\n\tMessageClose\n\tListOpen\n\tListClose\n\n\t// comma and semi-colon are only for parsing in between values and should not be exposed.\n\tcomma\n\tsemicolon\n\n\t// bof indicates beginning of file, which is the default token\n\t// kind at the beginning of parsing.\n\tbof = Invalid\n)\n\nfunc (t Kind) String() string {\n\tswitch t {\n\tcase Invalid:\n\t\treturn \"<invalid>\"\n\tcase EOF:\n\t\treturn \"eof\"\n\tcase Scalar:\n\t\treturn \"scalar\"\n\tcase Name:\n\t\treturn \"name\"\n\tcase MessageOpen:\n\t\treturn \"{\"\n\tcase MessageClose:\n\t\treturn \"}\"\n\tcase ListOpen:\n\t\treturn \"[\"\n\tcase ListClose:\n\t\treturn \"]\"\n\tcase comma:\n\t\treturn \",\"\n\tcase semicolon:\n\t\treturn \";\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<invalid:%v>\", uint8(t))\n\t}\n}\n\n// NameKind represents different types of field names.\ntype NameKind uint8\n\n// NameKind values.\nconst (\n\tIdentName NameKind = iota + 1\n\tTypeName\n\tFieldNumber\n)\n\nfunc (t NameKind) String() string {\n\tswitch t {\n\tcase IdentName:\n\t\treturn \"IdentName\"\n\tcase TypeName:\n\t\treturn \"TypeName\"\n\tcase FieldNumber:\n\t\treturn \"FieldNumber\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<invalid:%v>\", uint8(t))\n\t}\n}\n\n// Bit mask in Token.attrs to indicate if a Name token is followed by the\n// separator char ':'. The field name separator char is optional for message\n// field or repeated message field, but required for all other types. Decoder\n// simply indicates whether a Name token is followed by separator or not.  It is\n// up to the prototext package to validate.\nconst hasSeparator = 1 << 7\n\n// Scalar value types.\nconst (\n\tnumberValue = iota + 1\n\tstringValue\n\tliteralValue\n)\n\n// Bit mask in Token.numAttrs to indicate that the number is a negative.\nconst isNegative = 1 << 7\n\n// Token provides a parsed token kind and value. Values are provided by the\n// different accessor methods.\ntype Token struct {\n\t// Kind of the Token object.\n\tkind Kind\n\t// attrs contains metadata for the following Kinds:\n\t// Name: hasSeparator bit and one of NameKind.\n\t// Scalar: one of numberValue, stringValue, literalValue.\n\tattrs uint8\n\t// numAttrs contains metadata for numberValue:\n\t// - highest bit is whether negative or positive.\n\t// - lower bits indicate one of numDec, numHex, numOct, numFloat.\n\tnumAttrs uint8\n\t// pos provides the position of the token in the original input.\n\tpos int\n\t// raw bytes of the serialized token.\n\t// This is a subslice into the original input.\n\traw []byte\n\t// str contains parsed string for the following:\n\t// - stringValue of Scalar kind\n\t// - numberValue of Scalar kind\n\t// - TypeName of Name kind\n\tstr string\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\treturn t.kind\n}\n\n// RawString returns the read value in string.\nfunc (t Token) RawString() string {\n\treturn string(t.raw)\n}\n\n// Pos returns the token position from the input.\nfunc (t Token) Pos() int {\n\treturn t.pos\n}\n\n// NameKind returns IdentName, TypeName or FieldNumber.\n// It panics if type is not Name.\nfunc (t Token) NameKind() NameKind {\n\tif t.kind == Name {\n\t\treturn NameKind(t.attrs &^ hasSeparator)\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Name type: %s\", t.kind))\n}\n\n// HasSeparator returns true if the field name is followed by the separator char\n// ':', else false. It panics if type is not Name.\nfunc (t Token) HasSeparator() bool {\n\tif t.kind == Name {\n\t\treturn t.attrs&hasSeparator != 0\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Name type: %s\", t.kind))\n}\n\n// IdentName returns the value for IdentName type.\nfunc (t Token) IdentName() string {\n\tif t.kind == Name && t.attrs&uint8(IdentName) != 0 {\n\t\treturn string(t.raw)\n\t}\n\tpanic(fmt.Sprintf(\"Token is not an IdentName: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n}\n\n// TypeName returns the value for TypeName type.\nfunc (t Token) TypeName() string {\n\tif t.kind == Name && t.attrs&uint8(TypeName) != 0 {\n\t\treturn t.str\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a TypeName: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n}\n\n// FieldNumber returns the value for FieldNumber type. It returns a\n// non-negative int32 value. Caller will still need to validate for the correct\n// field number range.\nfunc (t Token) FieldNumber() int32 {\n\tif t.kind != Name || t.attrs&uint8(FieldNumber) == 0 {\n\t\tpanic(fmt.Sprintf(\"Token is not a FieldNumber: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n\t}\n\t// Following should not return an error as it had already been called right\n\t// before this Token was constructed.\n\tnum, _ := strconv.ParseInt(string(t.raw), 10, 32)\n\treturn int32(num)\n}\n\n// String returns the string value for a Scalar type.\nfunc (t Token) String() (string, bool) {\n\tif t.kind != Scalar || t.attrs != stringValue {\n\t\treturn \"\", false\n\t}\n\treturn t.str, true\n}\n\n// Enum returns the literal value for a Scalar type for use as enum literals.\nfunc (t Token) Enum() (string, bool) {\n\tif t.kind != Scalar || t.attrs != literalValue || (len(t.raw) > 0 && t.raw[0] == '-') {\n\t\treturn \"\", false\n\t}\n\treturn string(t.raw), true\n}\n\n// Bool returns the bool value for a Scalar type.\nfunc (t Token) Bool() (bool, bool) {\n\tif t.kind != Scalar {\n\t\treturn false, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif b, ok := boolLits[string(t.raw)]; ok {\n\t\t\treturn b, true\n\t\t}\n\tcase numberValue:\n\t\t// Unsigned integer representation of 0 or 1 is permitted: 00, 0x0, 01,\n\t\t// 0x1, etc.\n\t\tn, err := strconv.ParseUint(t.str, 0, 64)\n\t\tif err == nil {\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\treturn false, true\n\t\t\tcase 1:\n\t\t\t\treturn true, true\n\t\t\t}\n\t\t}\n\t}\n\treturn false, false\n}\n\n// These exact boolean literals are the ones supported in C++.\nvar boolLits = map[string]bool{\n\t\"t\":     true,\n\t\"true\":  true,\n\t\"True\":  true,\n\t\"f\":     false,\n\t\"false\": false,\n\t\"False\": false,\n}\n\n// Uint64 returns the uint64 value for a Scalar type.\nfunc (t Token) Uint64() (uint64, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue ||\n\t\tt.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseUint(t.str, 0, 64)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn n, true\n}\n\n// Uint32 returns the uint32 value for a Scalar type.\nfunc (t Token) Uint32() (uint32, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue ||\n\t\tt.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseUint(t.str, 0, 32)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn uint32(n), true\n}\n\n// Int64 returns the int64 value for a Scalar type.\nfunc (t Token) Int64() (int64, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tif n, err := strconv.ParseInt(t.str, 0, 64); err == nil {\n\t\treturn n, true\n\t}\n\t// C++ accepts large positive hex numbers as negative values.\n\t// This feature is here for proto1 backwards compatibility purposes.\n\tif flags.ProtoLegacy && (t.numAttrs == numHex) {\n\t\tif n, err := strconv.ParseUint(t.str, 0, 64); err == nil {\n\t\t\treturn int64(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Int32 returns the int32 value for a Scalar type.\nfunc (t Token) Int32() (int32, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tif n, err := strconv.ParseInt(t.str, 0, 32); err == nil {\n\t\treturn int32(n), true\n\t}\n\t// C++ accepts large positive hex numbers as negative values.\n\t// This feature is here for proto1 backwards compatibility purposes.\n\tif flags.ProtoLegacy && (t.numAttrs == numHex) {\n\t\tif n, err := strconv.ParseUint(t.str, 0, 32); err == nil {\n\t\t\treturn int32(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Float64 returns the float64 value for a Scalar type.\nfunc (t Token) Float64() (float64, bool) {\n\tif t.kind != Scalar {\n\t\treturn 0, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif f, ok := floatLits[strings.ToLower(string(t.raw))]; ok {\n\t\t\treturn f, true\n\t\t}\n\tcase numberValue:\n\t\tn, err := strconv.ParseFloat(t.str, 64)\n\t\tif err == nil {\n\t\t\treturn n, true\n\t\t}\n\t\tnerr := err.(*strconv.NumError)\n\t\tif nerr.Err == strconv.ErrRange {\n\t\t\treturn n, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Float32 returns the float32 value for a Scalar type.\nfunc (t Token) Float32() (float32, bool) {\n\tif t.kind != Scalar {\n\t\treturn 0, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif f, ok := floatLits[strings.ToLower(string(t.raw))]; ok {\n\t\t\treturn float32(f), true\n\t\t}\n\tcase numberValue:\n\t\tn, err := strconv.ParseFloat(t.str, 64)\n\t\tif err == nil {\n\t\t\t// Overflows are treated as (-)infinity.\n\t\t\treturn float32(n), true\n\t\t}\n\t\tnerr := err.(*strconv.NumError)\n\t\tif nerr.Err == strconv.ErrRange {\n\t\t\treturn float32(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// These are the supported float literals which C++ permits case-insensitive\n// variants of these.\nvar floatLits = map[string]float64{\n\t\"nan\":       math.NaN(),\n\t\"inf\":       math.Inf(1),\n\t\"infinity\":  math.Inf(1),\n\t\"-inf\":      math.Inf(-1),\n\t\"-infinity\": math.Inf(-1),\n}\n\n// TokenEquals returns true if given Tokens are equal, else false.\nfunc TokenEquals(x, y Token) bool {\n\treturn x.kind == y.kind &&\n\t\tx.attrs == y.attrs &&\n\t\tx.numAttrs == y.numAttrs &&\n\t\tx.pos == y.pos &&\n\t\tbytes.Equal(x.raw, y.raw) &&\n\t\tx.str == y.str\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/doc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package text implements the text format for protocol buffers.\n// This package has no semantic understanding for protocol buffers and is only\n// a parser and composer for the format.\n//\n// There is no formal specification for the protobuf text format, as such the\n// C++ implementation (see google::protobuf::TextFormat) is the reference\n// implementation of the text format.\n//\n// This package is neither a superset nor a subset of the C++ implementation.\n// This implementation permits a more liberal grammar in some cases to be\n// backwards compatible with the historical Go implementation.\n// Future parsings unique to Go should not be added.\n// Some grammars allowed by the C++ implementation are deliberately\n// not implemented here because they are considered a bug by the protobuf team\n// and should not be replicated.\n//\n// The Go implementation should implement a sufficient amount of the C++\n// grammar such that the default text serialization by C++ can be parsed by Go.\n// However, just because the C++ parser accepts some input does not mean that\n// the Go implementation should as well.\n//\n// The text format is almost a superset of JSON except:\n//   - message keys are not quoted strings, but identifiers\n//   - the top-level value must be a message without the delimiters\npackage text\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/encode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// encType represents an encoding type.\ntype encType uint8\n\nconst (\n\t_ encType = (1 << iota) / 2\n\tname\n\tscalar\n\tmessageOpen\n\tmessageClose\n)\n\n// Encoder provides methods to write out textproto constructs and values. The user is\n// responsible for producing valid sequences of constructs and values.\ntype Encoder struct {\n\tencoderState\n\n\tindent      string\n\tdelims      [2]byte\n\toutputASCII bool\n}\n\ntype encoderState struct {\n\tlastType encType\n\tindents  []byte\n\tout      []byte\n}\n\n// NewEncoder returns an Encoder.\n//\n// If indent is a non-empty string, it causes every entry in a List or Message\n// to be preceded by the indent and trailed by a newline.\n//\n// If delims is not the zero value, it controls the delimiter characters used\n// for messages (e.g., \"{}\" vs \"<>\").\n//\n// If outputASCII is true, strings will be serialized in such a way that\n// multi-byte UTF-8 sequences are escaped. This property ensures that the\n// overall output is ASCII (as opposed to UTF-8).\nfunc NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {\n\te := &Encoder{\n\t\tencoderState: encoderState{out: buf},\n\t}\n\tif len(indent) > 0 {\n\t\tif strings.Trim(indent, \" \\t\") != \"\" {\n\t\t\treturn nil, errors.New(\"indent may only be composed of space and tab characters\")\n\t\t}\n\t\te.indent = indent\n\t}\n\tswitch delims {\n\tcase [2]byte{0, 0}:\n\t\te.delims = [2]byte{'{', '}'}\n\tcase [2]byte{'{', '}'}, [2]byte{'<', '>'}:\n\t\te.delims = delims\n\tdefault:\n\t\treturn nil, errors.New(\"delimiters may only be \\\"{}\\\" or \\\"<>\\\"\")\n\t}\n\te.outputASCII = outputASCII\n\n\treturn e, nil\n}\n\n// Bytes returns the content of the written bytes.\nfunc (e *Encoder) Bytes() []byte {\n\treturn e.out\n}\n\n// StartMessage writes out the '{' or '<' symbol.\nfunc (e *Encoder) StartMessage() {\n\te.prepareNext(messageOpen)\n\te.out = append(e.out, e.delims[0])\n}\n\n// EndMessage writes out the '}' or '>' symbol.\nfunc (e *Encoder) EndMessage() {\n\te.prepareNext(messageClose)\n\te.out = append(e.out, e.delims[1])\n}\n\n// WriteName writes out the field name and the separator ':'.\nfunc (e *Encoder) WriteName(s string) {\n\te.prepareNext(name)\n\te.out = append(e.out, s...)\n\te.out = append(e.out, ':')\n}\n\n// WriteBool writes out the given boolean value.\nfunc (e *Encoder) WriteBool(b bool) {\n\tif b {\n\t\te.WriteLiteral(\"true\")\n\t} else {\n\t\te.WriteLiteral(\"false\")\n\t}\n}\n\n// WriteString writes out the given string value.\nfunc (e *Encoder) WriteString(s string) {\n\te.prepareNext(scalar)\n\te.out = appendString(e.out, s, e.outputASCII)\n}\n\nfunc appendString(out []byte, in string, outputASCII bool) []byte {\n\tout = append(out, '\"')\n\ti := indexNeedEscapeInString(in)\n\tin, out = in[i:], append(out, in[:i]...)\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRuneInString(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\t// We do not report invalid UTF-8 because strings in the text format\n\t\t\t// are used to represent both the proto string and bytes type.\n\t\t\tr = rune(in[0])\n\t\t\tfallthrough\n\t\tcase r < ' ' || r == '\"' || r == '\\\\' || r == 0x7f:\n\t\t\tout = append(out, '\\\\')\n\t\t\tswitch r {\n\t\t\tcase '\"', '\\\\':\n\t\t\t\tout = append(out, byte(r))\n\t\t\tcase '\\n':\n\t\t\t\tout = append(out, 'n')\n\t\t\tcase '\\r':\n\t\t\t\tout = append(out, 'r')\n\t\t\tcase '\\t':\n\t\t\t\tout = append(out, 't')\n\t\t\tdefault:\n\t\t\t\tout = append(out, 'x')\n\t\t\t\tout = append(out, \"00\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t}\n\t\t\tin = in[n:]\n\t\tcase r >= utf8.RuneSelf && (outputASCII || r <= 0x009f):\n\t\t\tout = append(out, '\\\\')\n\t\t\tif r <= math.MaxUint16 {\n\t\t\t\tout = append(out, 'u')\n\t\t\t\tout = append(out, \"0000\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t} else {\n\t\t\t\tout = append(out, 'U')\n\t\t\t\tout = append(out, \"00000000\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t}\n\t\t\tin = in[n:]\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInString(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\tout = append(out, '\"')\n\treturn out\n}\n\n// indexNeedEscapeInString returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInString(s string) int {\n\tfor i := 0; i < len(s); i++ {\n\t\tif c := s[i]; c < ' ' || c == '\"' || c == '\\'' || c == '\\\\' || c >= 0x7f {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(s)\n}\n\n// WriteFloat writes out the given float value for given bitSize.\nfunc (e *Encoder) WriteFloat(n float64, bitSize int) {\n\te.prepareNext(scalar)\n\te.out = appendFloat(e.out, n, bitSize)\n}\n\nfunc appendFloat(out []byte, n float64, bitSize int) []byte {\n\tswitch {\n\tcase math.IsNaN(n):\n\t\treturn append(out, \"nan\"...)\n\tcase math.IsInf(n, +1):\n\t\treturn append(out, \"inf\"...)\n\tcase math.IsInf(n, -1):\n\t\treturn append(out, \"-inf\"...)\n\tdefault:\n\t\treturn strconv.AppendFloat(out, n, 'g', -1, bitSize)\n\t}\n}\n\n// WriteInt writes out the given signed integer value.\nfunc (e *Encoder) WriteInt(n int64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendInt(e.out, n, 10)\n}\n\n// WriteUint writes out the given unsigned integer value.\nfunc (e *Encoder) WriteUint(n uint64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendUint(e.out, n, 10)\n}\n\n// WriteLiteral writes out the given string as a literal value without quotes.\n// This is used for writing enum literal strings.\nfunc (e *Encoder) WriteLiteral(s string) {\n\te.prepareNext(scalar)\n\te.out = append(e.out, s...)\n}\n\n// prepareNext adds possible space and indentation for the next value based\n// on last encType and indent option. It also updates e.lastType to next.\nfunc (e *Encoder) prepareNext(next encType) {\n\tdefer func() {\n\t\te.lastType = next\n\t}()\n\n\t// Single line.\n\tif len(e.indent) == 0 {\n\t\t// Add space after each field before the next one.\n\t\tif e.lastType&(scalar|messageClose) != 0 && next == name {\n\t\t\te.out = append(e.out, ' ')\n\t\t\t// Add a random extra space to make output unstable.\n\t\t\tif detrand.Bool() {\n\t\t\t\te.out = append(e.out, ' ')\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\t// Multi-line.\n\tswitch {\n\tcase e.lastType == name:\n\t\te.out = append(e.out, ' ')\n\t\t// Add a random extra space after name: to make output unstable.\n\t\tif detrand.Bool() {\n\t\t\te.out = append(e.out, ' ')\n\t\t}\n\n\tcase e.lastType == messageOpen && next != messageClose:\n\t\te.indents = append(e.indents, e.indent...)\n\t\te.out = append(e.out, '\\n')\n\t\te.out = append(e.out, e.indents...)\n\n\tcase e.lastType&(scalar|messageClose) != 0:\n\t\tif next == messageClose {\n\t\t\te.indents = e.indents[:len(e.indents)-len(e.indent)]\n\t\t}\n\t\te.out = append(e.out, '\\n')\n\t\te.out = append(e.out, e.indents...)\n\t}\n}\n\n// Snapshot returns the current snapshot for use in Reset.\nfunc (e *Encoder) Snapshot() encoderState {\n\treturn e.encoderState\n}\n\n// Reset resets the Encoder to the given encoderState from a Snapshot.\nfunc (e *Encoder) Reset(es encoderState) {\n\te.encoderState = es\n}\n\n// AppendString appends the escaped form of the input string to b.\nfunc AppendString(b []byte, s string) []byte {\n\treturn appendString(b, s, false)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/errors/errors.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package errors implements functions to manipulate errors.\npackage errors\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n)\n\n// Error is a sentinel matching all errors produced by this package.\nvar Error = errors.New(\"protobuf error\")\n\n// New formats a string according to the format specifier and arguments and\n// returns an error that has a \"proto\" prefix.\nfunc New(f string, x ...any) error {\n\treturn &prefixError{s: format(f, x...)}\n}\n\ntype prefixError struct{ s string }\n\nvar prefix = func() string {\n\t// Deliberately introduce instability into the error message string to\n\t// discourage users from performing error string comparisons.\n\tif detrand.Bool() {\n\t\treturn \"proto: \" // use non-breaking spaces (U+00a0)\n\t} else {\n\t\treturn \"proto: \" // use regular spaces (U+0020)\n\t}\n}()\n\nfunc (e *prefixError) Error() string {\n\treturn prefix + e.s\n}\n\nfunc (e *prefixError) Unwrap() error {\n\treturn Error\n}\n\n// Wrap returns an error that has a \"proto\" prefix, the formatted string described\n// by the format specifier and arguments, and a suffix of err. The error wraps err.\nfunc Wrap(err error, f string, x ...any) error {\n\treturn &wrapError{\n\t\ts:   format(f, x...),\n\t\terr: err,\n\t}\n}\n\ntype wrapError struct {\n\ts   string\n\terr error\n}\n\nfunc (e *wrapError) Error() string {\n\treturn format(\"%v%v: %v\", prefix, e.s, e.err)\n}\n\nfunc (e *wrapError) Unwrap() error {\n\treturn e.err\n}\n\nfunc (e *wrapError) Is(target error) bool {\n\treturn target == Error\n}\n\nfunc format(f string, x ...any) string {\n\t// avoid \"proto: \" prefix when chaining\n\tfor i := 0; i < len(x); i++ {\n\t\tswitch e := x[i].(type) {\n\t\tcase *prefixError:\n\t\t\tx[i] = e.s\n\t\tcase *wrapError:\n\t\t\tx[i] = format(\"%v: %v\", e.s, e.err)\n\t\t}\n\t}\n\treturn fmt.Sprintf(f, x...)\n}\n\nfunc InvalidUTF8(name string) error {\n\treturn New(\"field %v contains invalid UTF-8\", name)\n}\n\nfunc RequiredNotSet(name string) error {\n\treturn New(\"required field %v not set\", name)\n}\n\ntype SizeMismatchError struct {\n\tCalculated, Measured int\n}\n\nfunc (e *SizeMismatchError) Error() string {\n\treturn fmt.Sprintf(\"size mismatch (see https://github.com/golang/protobuf/issues/1609): calculated=%d, measured=%d\", e.Calculated, e.Measured)\n}\n\nfunc MismatchedSizeCalculation(calculated, measured int) error {\n\treturn &SizeMismatchError{\n\t\tCalculated: calculated,\n\t\tMeasured:   measured,\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/build.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package filedesc provides functionality for constructing descriptors.\n//\n// The types in this package implement interfaces in the protoreflect package\n// related to protobuf descripriptors.\npackage filedesc\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Builder construct a protoreflect.FileDescriptor from the raw descriptor.\ntype Builder struct {\n\t// GoPackagePath is the Go package path that is invoking this builder.\n\tGoPackagePath string\n\n\t// RawDescriptor is the wire-encoded bytes of FileDescriptorProto\n\t// and must be populated.\n\tRawDescriptor []byte\n\n\t// NumEnums is the total number of enums declared in the file.\n\tNumEnums int32\n\t// NumMessages is the total number of messages declared in the file.\n\t// It includes the implicit message declarations for map entries.\n\tNumMessages int32\n\t// NumExtensions is the total number of extensions declared in the file.\n\tNumExtensions int32\n\t// NumServices is the total number of services declared in the file.\n\tNumServices int32\n\n\t// TypeResolver resolves extension field types for descriptor options.\n\t// If nil, it uses protoregistry.GlobalTypes.\n\tTypeResolver interface {\n\t\tprotoregistry.ExtensionTypeResolver\n\t}\n\n\t// FileRegistry is use to lookup file, enum, and message dependencies.\n\t// Once constructed, the file descriptor is registered here.\n\t// If nil, it uses protoregistry.GlobalFiles.\n\tFileRegistry interface {\n\t\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\t\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n\t\tRegisterFile(protoreflect.FileDescriptor) error\n\t}\n}\n\n// resolverByIndex is an interface Builder.FileRegistry may implement.\n// If so, it permits looking up an enum or message dependency based on the\n// sub-list and element index into filetype.Builder.DependencyIndexes.\ntype resolverByIndex interface {\n\tFindEnumByIndex(int32, int32, []Enum, []Message) protoreflect.EnumDescriptor\n\tFindMessageByIndex(int32, int32, []Enum, []Message) protoreflect.MessageDescriptor\n}\n\n// Indexes of each sub-list in filetype.Builder.DependencyIndexes.\nconst (\n\tlistFieldDeps int32 = iota\n\tlistExtTargets\n\tlistExtDeps\n\tlistMethInDeps\n\tlistMethOutDeps\n)\n\n// Out is the output of the Builder.\ntype Out struct {\n\tFile protoreflect.FileDescriptor\n\n\t// Enums is all enum descriptors in \"flattened ordering\".\n\tEnums []Enum\n\t// Messages is all message descriptors in \"flattened ordering\".\n\t// It includes the implicit message declarations for map entries.\n\tMessages []Message\n\t// Extensions is all extension descriptors in \"flattened ordering\".\n\tExtensions []Extension\n\t// Service is all service descriptors in \"flattened ordering\".\n\tServices []Service\n}\n\n// Build constructs a FileDescriptor given the parameters set in Builder.\n// It assumes that the inputs are well-formed and panics if any inconsistencies\n// are encountered.\n//\n// If NumEnums+NumMessages+NumExtensions+NumServices is zero,\n// then Build automatically derives them from the raw descriptor.\nfunc (db Builder) Build() (out Out) {\n\t// Populate the counts if uninitialized.\n\tif db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 {\n\t\tdb.unmarshalCounts(db.RawDescriptor, true)\n\t}\n\n\t// Initialize resolvers and registries if unpopulated.\n\tif db.TypeResolver == nil {\n\t\tdb.TypeResolver = protoregistry.GlobalTypes\n\t}\n\tif db.FileRegistry == nil {\n\t\tdb.FileRegistry = protoregistry.GlobalFiles\n\t}\n\n\tfd := newRawFile(db)\n\tout.File = fd\n\tout.Enums = fd.allEnums\n\tout.Messages = fd.allMessages\n\tout.Extensions = fd.allExtensions\n\tout.Services = fd.allServices\n\n\tif err := db.FileRegistry.RegisterFile(fd); err != nil {\n\t\tpanic(err)\n\t}\n\treturn out\n}\n\n// unmarshalCounts counts the number of enum, message, extension, and service\n// declarations in the raw message, which is either a FileDescriptorProto\n// or a MessageDescriptorProto depending on whether isFile is set.\nfunc (db *Builder) unmarshalCounts(b []byte, isFile bool) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tif isFile {\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\t\tdb.NumEnums++\n\t\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\t\tdb.unmarshalCounts(v, false)\n\t\t\t\t\tdb.NumMessages++\n\t\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\t\tdb.NumExtensions++\n\t\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\t\tdb.NumServices++\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\t\tdb.NumEnums++\n\t\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\t\tdb.unmarshalCounts(v, false)\n\t\t\t\t\tdb.NumMessages++\n\t\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\t\tdb.NumExtensions++\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Edition is an Enum for proto2.Edition\ntype Edition int32\n\n// These values align with the value of Enum in descriptor.proto which allows\n// direct conversion between the proto enum and this enum.\nconst (\n\tEditionUnknown     Edition = 0\n\tEditionProto2      Edition = 998\n\tEditionProto3      Edition = 999\n\tEdition2023        Edition = 1000\n\tEdition2024        Edition = 1001\n\tEditionUnsupported Edition = 100000\n)\n\n// The types in this file may have a suffix:\n//\t• L0: Contains fields common to all descriptors (except File) and\n//\tmust be initialized up front.\n//\t• L1: Contains fields specific to a descriptor and\n//\tmust be initialized up front. If the associated proto uses Editions, the\n//  Editions features must always be resolved. If not explicitly set, the\n//  appropriate default must be resolved and set.\n//\t• L2: Contains fields that are lazily initialized when constructing\n//\tfrom the raw file descriptor. When constructing as a literal, the L2\n//\tfields must be initialized up front.\n//\n// The types are exported so that packages like reflect/protodesc can\n// directly construct descriptors.\n\ntype (\n\tFile struct {\n\t\tfileRaw\n\t\tL1 FileL1\n\n\t\tonce uint32     // atomically set if L2 is valid\n\t\tmu   sync.Mutex // protects L2\n\t\tL2   *FileL2\n\t}\n\tFileL1 struct {\n\t\tSyntax  protoreflect.Syntax\n\t\tEdition Edition // Only used if Syntax == Editions\n\t\tPath    string\n\t\tPackage protoreflect.FullName\n\n\t\tEnums      Enums\n\t\tMessages   Messages\n\t\tExtensions Extensions\n\t\tServices   Services\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\tFileL2 struct {\n\t\tOptions       func() protoreflect.ProtoMessage\n\t\tImports       FileImports\n\t\tOptionImports func() protoreflect.FileImports\n\t\tLocations     SourceLocations\n\t}\n\n\t// EditionFeatures is a frequently-instantiated struct, so please take care\n\t// to minimize padding when adding new fields to this struct (add them in\n\t// the right place/order).\n\tEditionFeatures struct {\n\t\t// StripEnumPrefix determines if the plugin generates enum value\n\t\t// constants as-is, with their prefix stripped, or both variants.\n\t\tStripEnumPrefix int\n\n\t\t// IsFieldPresence is true if field_presence is EXPLICIT\n\t\t// https://protobuf.dev/editions/features/#field_presence\n\t\tIsFieldPresence bool\n\n\t\t// IsFieldPresence is true if field_presence is LEGACY_REQUIRED\n\t\t// https://protobuf.dev/editions/features/#field_presence\n\t\tIsLegacyRequired bool\n\n\t\t// IsOpenEnum is true if enum_type is OPEN\n\t\t// https://protobuf.dev/editions/features/#enum_type\n\t\tIsOpenEnum bool\n\n\t\t// IsPacked is true if repeated_field_encoding is PACKED\n\t\t// https://protobuf.dev/editions/features/#repeated_field_encoding\n\t\tIsPacked bool\n\n\t\t// IsUTF8Validated is true if utf_validation is VERIFY\n\t\t// https://protobuf.dev/editions/features/#utf8_validation\n\t\tIsUTF8Validated bool\n\n\t\t// IsDelimitedEncoded is true if message_encoding is DELIMITED\n\t\t// https://protobuf.dev/editions/features/#message_encoding\n\t\tIsDelimitedEncoded bool\n\n\t\t// IsJSONCompliant is true if json_format is ALLOW\n\t\t// https://protobuf.dev/editions/features/#json_format\n\t\tIsJSONCompliant bool\n\n\t\t// GenerateLegacyUnmarshalJSON determines if the plugin generates the\n\t\t// UnmarshalJSON([]byte) error method for enums.\n\t\tGenerateLegacyUnmarshalJSON bool\n\t\t// APILevel controls which API (Open, Hybrid or Opaque) should be used\n\t\t// for generated code (.pb.go files).\n\t\tAPILevel int\n\t}\n)\n\nfunc (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }\nfunc (fd *File) Parent() protoreflect.Descriptor         { return nil }\nfunc (fd *File) Index() int                              { return 0 }\nfunc (fd *File) Syntax() protoreflect.Syntax             { return fd.L1.Syntax }\nfunc (fd *File) Name() protoreflect.Name                 { return fd.L1.Package.Name() }\nfunc (fd *File) FullName() protoreflect.FullName         { return fd.L1.Package }\nfunc (fd *File) IsPlaceholder() bool                     { return false }\nfunc (fd *File) Options() protoreflect.ProtoMessage {\n\tif f := fd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.File\n}\nfunc (fd *File) Path() string                                  { return fd.L1.Path }\nfunc (fd *File) Package() protoreflect.FullName                { return fd.L1.Package }\nfunc (fd *File) Imports() protoreflect.FileImports             { return &fd.lazyInit().Imports }\nfunc (fd *File) Enums() protoreflect.EnumDescriptors           { return &fd.L1.Enums }\nfunc (fd *File) Messages() protoreflect.MessageDescriptors     { return &fd.L1.Messages }\nfunc (fd *File) Extensions() protoreflect.ExtensionDescriptors { return &fd.L1.Extensions }\nfunc (fd *File) Services() protoreflect.ServiceDescriptors     { return &fd.L1.Services }\nfunc (fd *File) SourceLocations() protoreflect.SourceLocations { return &fd.lazyInit().Locations }\nfunc (fd *File) Format(s fmt.State, r rune)                    { descfmt.FormatDesc(s, r, fd) }\nfunc (fd *File) ProtoType(protoreflect.FileDescriptor)         {}\nfunc (fd *File) ProtoInternal(pragma.DoNotImplement)           {}\n\n// The next two are not part of the FileDescriptor interface. They are just used to reconstruct\n// the original FileDescriptor proto.\nfunc (fd *File) Edition() int32 { return int32(fd.L1.Edition) }\nfunc (fd *File) OptionImports() protoreflect.FileImports {\n\tif f := fd.lazyInit().OptionImports; f != nil {\n\t\treturn f()\n\t}\n\treturn emptyFiles\n}\n\nfunc (fd *File) lazyInit() *FileL2 {\n\tif atomic.LoadUint32(&fd.once) == 0 {\n\t\tfd.lazyInitOnce()\n\t}\n\treturn fd.L2\n}\n\nfunc (fd *File) lazyInitOnce() {\n\tfd.mu.Lock()\n\tif fd.L2 == nil {\n\t\tfd.lazyRawInit() // recursively initializes all L2 structures\n\t}\n\tatomic.StoreUint32(&fd.once, 1)\n\tfd.mu.Unlock()\n}\n\n// GoPackagePath is a pseudo-internal API for determining the Go package path\n// that this file descriptor is declared in.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (fd *File) GoPackagePath() string {\n\treturn fd.builder.GoPackagePath\n}\n\ntype (\n\tEnum struct {\n\t\tBase\n\t\tL1 EnumL1\n\t\tL2 *EnumL2 // protected by fileDesc.once\n\t}\n\tEnumL1 struct {\n\t\tEditionFeatures EditionFeatures\n\t\tVisibility      int32\n\t\teagerValues     bool // controls whether EnumL2.Values is already populated\n\t}\n\tEnumL2 struct {\n\t\tOptions        func() protoreflect.ProtoMessage\n\t\tValues         EnumValues\n\t\tReservedNames  Names\n\t\tReservedRanges EnumRanges\n\t}\n\n\tEnumValue struct {\n\t\tBase\n\t\tL1 EnumValueL1\n\t}\n\tEnumValueL1 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tNumber  protoreflect.EnumNumber\n\t}\n)\n\nfunc (ed *Enum) Options() protoreflect.ProtoMessage {\n\tif f := ed.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Enum\n}\nfunc (ed *Enum) Values() protoreflect.EnumValueDescriptors {\n\tif ed.L1.eagerValues {\n\t\treturn &ed.L2.Values\n\t}\n\treturn &ed.lazyInit().Values\n}\nfunc (ed *Enum) ReservedNames() protoreflect.Names       { return &ed.lazyInit().ReservedNames }\nfunc (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges }\nfunc (ed *Enum) Format(s fmt.State, r rune)              { descfmt.FormatDesc(s, r, ed) }\nfunc (ed *Enum) ProtoType(protoreflect.EnumDescriptor)   {}\n\n// This is not part of the EnumDescriptor interface. It is just used to reconstruct\n// the original FileDescriptor proto.\nfunc (ed *Enum) Visibility() int32 { return ed.L1.Visibility }\n\nfunc (ed *Enum) lazyInit() *EnumL2 {\n\ted.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn ed.L2\n}\nfunc (ed *Enum) IsClosed() bool {\n\treturn !ed.L1.EditionFeatures.IsOpenEnum\n}\n\nfunc (ed *EnumValue) Options() protoreflect.ProtoMessage {\n\tif f := ed.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.EnumValue\n}\nfunc (ed *EnumValue) Number() protoreflect.EnumNumber            { return ed.L1.Number }\nfunc (ed *EnumValue) Format(s fmt.State, r rune)                 { descfmt.FormatDesc(s, r, ed) }\nfunc (ed *EnumValue) ProtoType(protoreflect.EnumValueDescriptor) {}\n\ntype (\n\tMessage struct {\n\t\tBase\n\t\tL1 MessageL1\n\t\tL2 *MessageL2 // protected by fileDesc.once\n\t}\n\tMessageL1 struct {\n\t\tEnums           Enums\n\t\tMessages        Messages\n\t\tExtensions      Extensions\n\t\tEditionFeatures EditionFeatures\n\t\tVisibility      int32\n\t\tIsMapEntry      bool // promoted from google.protobuf.MessageOptions\n\t\tIsMessageSet    bool // promoted from google.protobuf.MessageOptions\n\t}\n\tMessageL2 struct {\n\t\tOptions               func() protoreflect.ProtoMessage\n\t\tFields                Fields\n\t\tOneofs                Oneofs\n\t\tReservedNames         Names\n\t\tReservedRanges        FieldRanges\n\t\tRequiredNumbers       FieldNumbers // must be consistent with Fields.Cardinality\n\t\tExtensionRanges       FieldRanges\n\t\tExtensionRangeOptions []func() protoreflect.ProtoMessage // must be same length as ExtensionRanges\n\t}\n\n\tField struct {\n\t\tBase\n\t\tL1 FieldL1\n\t}\n\tFieldL1 struct {\n\t\tOptions          func() protoreflect.ProtoMessage\n\t\tNumber           protoreflect.FieldNumber\n\t\tCardinality      protoreflect.Cardinality // must be consistent with Message.RequiredNumbers\n\t\tKind             protoreflect.Kind\n\t\tStringName       stringName\n\t\tIsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto\n\t\tIsLazy           bool // promoted from google.protobuf.FieldOptions\n\t\tDefault          defaultValue\n\t\tContainingOneof  protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields\n\t\tEnum             protoreflect.EnumDescriptor\n\t\tMessage          protoreflect.MessageDescriptor\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\n\tOneof struct {\n\t\tBase\n\t\tL1 OneofL1\n\t}\n\tOneofL1 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tFields  OneofFields // must be consistent with Message.Fields.ContainingOneof\n\n\t\tEditionFeatures EditionFeatures\n\t}\n)\n\nfunc (md *Message) Options() protoreflect.ProtoMessage {\n\tif f := md.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Message\n}\nfunc (md *Message) IsMapEntry() bool                           { return md.L1.IsMapEntry }\nfunc (md *Message) Fields() protoreflect.FieldDescriptors      { return &md.lazyInit().Fields }\nfunc (md *Message) Oneofs() protoreflect.OneofDescriptors      { return &md.lazyInit().Oneofs }\nfunc (md *Message) ReservedNames() protoreflect.Names          { return &md.lazyInit().ReservedNames }\nfunc (md *Message) ReservedRanges() protoreflect.FieldRanges   { return &md.lazyInit().ReservedRanges }\nfunc (md *Message) RequiredNumbers() protoreflect.FieldNumbers { return &md.lazyInit().RequiredNumbers }\nfunc (md *Message) ExtensionRanges() protoreflect.FieldRanges  { return &md.lazyInit().ExtensionRanges }\nfunc (md *Message) ExtensionRangeOptions(i int) protoreflect.ProtoMessage {\n\tif f := md.lazyInit().ExtensionRangeOptions[i]; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.ExtensionRange\n}\nfunc (md *Message) Enums() protoreflect.EnumDescriptors           { return &md.L1.Enums }\nfunc (md *Message) Messages() protoreflect.MessageDescriptors     { return &md.L1.Messages }\nfunc (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions }\nfunc (md *Message) ProtoType(protoreflect.MessageDescriptor)      {}\nfunc (md *Message) Format(s fmt.State, r rune)                    { descfmt.FormatDesc(s, r, md) }\n\n// This is not part of the MessageDescriptor interface. It is just used to reconstruct\n// the original FileDescriptor proto.\nfunc (md *Message) Visibility() int32 { return md.L1.Visibility }\n\nfunc (md *Message) lazyInit() *MessageL2 {\n\tmd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn md.L2\n}\n\n// IsMessageSet is a pseudo-internal API for checking whether a message\n// should serialize in the proto1 message format.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (md *Message) IsMessageSet() bool {\n\treturn md.L1.IsMessageSet\n}\n\nfunc (fd *Field) Options() protoreflect.ProtoMessage {\n\tif f := fd.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Field\n}\nfunc (fd *Field) Number() protoreflect.FieldNumber      { return fd.L1.Number }\nfunc (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality }\nfunc (fd *Field) Kind() protoreflect.Kind {\n\treturn fd.L1.Kind\n}\nfunc (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }\nfunc (fd *Field) JSONName() string  { return fd.L1.StringName.getJSON(fd) }\nfunc (fd *Field) TextName() string  { return fd.L1.StringName.getText(fd) }\nfunc (fd *Field) HasPresence() bool {\n\tif fd.L1.Cardinality == protoreflect.Repeated {\n\t\treturn false\n\t}\n\treturn fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil\n}\nfunc (fd *Field) HasOptionalKeyword() bool {\n\treturn (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional\n}\nfunc (fd *Field) IsPacked() bool {\n\tif fd.L1.Cardinality != protoreflect.Repeated {\n\t\treturn false\n\t}\n\tswitch fd.L1.Kind {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn fd.L1.EditionFeatures.IsPacked\n}\nfunc (fd *Field) IsExtension() bool { return false }\nfunc (fd *Field) IsWeak() bool      { return false }\nfunc (fd *Field) IsLazy() bool      { return fd.L1.IsLazy }\nfunc (fd *Field) IsList() bool      { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() }\nfunc (fd *Field) IsMap() bool       { return fd.Message() != nil && fd.Message().IsMapEntry() }\nfunc (fd *Field) MapKey() protoreflect.FieldDescriptor {\n\tif !fd.IsMap() {\n\t\treturn nil\n\t}\n\treturn fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number)\n}\nfunc (fd *Field) MapValue() protoreflect.FieldDescriptor {\n\tif !fd.IsMap() {\n\t\treturn nil\n\t}\n\treturn fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number)\n}\nfunc (fd *Field) HasDefault() bool                                   { return fd.L1.Default.has }\nfunc (fd *Field) Default() protoreflect.Value                        { return fd.L1.Default.get(fd) }\nfunc (fd *Field) DefaultEnumValue() protoreflect.EnumValueDescriptor { return fd.L1.Default.enum }\nfunc (fd *Field) ContainingOneof() protoreflect.OneofDescriptor      { return fd.L1.ContainingOneof }\nfunc (fd *Field) ContainingMessage() protoreflect.MessageDescriptor {\n\treturn fd.L0.Parent.(protoreflect.MessageDescriptor)\n}\nfunc (fd *Field) Enum() protoreflect.EnumDescriptor {\n\treturn fd.L1.Enum\n}\nfunc (fd *Field) Message() protoreflect.MessageDescriptor {\n\treturn fd.L1.Message\n}\nfunc (fd *Field) IsMapEntry() bool {\n\tparent, ok := fd.L0.Parent.(protoreflect.MessageDescriptor)\n\treturn ok && parent.IsMapEntry()\n}\nfunc (fd *Field) Format(s fmt.State, r rune)             { descfmt.FormatDesc(s, r, fd) }\nfunc (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}\n\n// EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8\n// validation for the string field. This exists for Google-internal use only\n// since proto3 did not enforce UTF-8 validity prior to the open-source release.\n// If this method does not exist, the default is to enforce valid UTF-8.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (fd *Field) EnforceUTF8() bool {\n\treturn fd.L1.EditionFeatures.IsUTF8Validated\n}\n\nfunc (od *Oneof) IsSynthetic() bool {\n\treturn od.L0.ParentFile.L1.Syntax == protoreflect.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword()\n}\nfunc (od *Oneof) Options() protoreflect.ProtoMessage {\n\tif f := od.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Oneof\n}\nfunc (od *Oneof) Fields() protoreflect.FieldDescriptors  { return &od.L1.Fields }\nfunc (od *Oneof) Format(s fmt.State, r rune)             { descfmt.FormatDesc(s, r, od) }\nfunc (od *Oneof) ProtoType(protoreflect.OneofDescriptor) {}\n\ntype (\n\tExtension struct {\n\t\tBase\n\t\tL1 ExtensionL1\n\t\tL2 *ExtensionL2 // protected by fileDesc.once\n\t}\n\tExtensionL1 struct {\n\t\tNumber          protoreflect.FieldNumber\n\t\tExtendee        protoreflect.MessageDescriptor\n\t\tCardinality     protoreflect.Cardinality\n\t\tKind            protoreflect.Kind\n\t\tIsLazy          bool\n\t\tEditionFeatures EditionFeatures\n\t}\n\tExtensionL2 struct {\n\t\tOptions          func() protoreflect.ProtoMessage\n\t\tStringName       stringName\n\t\tIsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto\n\t\tDefault          defaultValue\n\t\tEnum             protoreflect.EnumDescriptor\n\t\tMessage          protoreflect.MessageDescriptor\n\t}\n)\n\nfunc (xd *Extension) Options() protoreflect.ProtoMessage {\n\tif f := xd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Field\n}\nfunc (xd *Extension) Number() protoreflect.FieldNumber      { return xd.L1.Number }\nfunc (xd *Extension) Cardinality() protoreflect.Cardinality { return xd.L1.Cardinality }\nfunc (xd *Extension) Kind() protoreflect.Kind               { return xd.L1.Kind }\nfunc (xd *Extension) HasJSONName() bool                     { return xd.lazyInit().StringName.hasJSON }\nfunc (xd *Extension) JSONName() string                      { return xd.lazyInit().StringName.getJSON(xd) }\nfunc (xd *Extension) TextName() string                      { return xd.lazyInit().StringName.getText(xd) }\nfunc (xd *Extension) HasPresence() bool                     { return xd.L1.Cardinality != protoreflect.Repeated }\nfunc (xd *Extension) HasOptionalKeyword() bool {\n\treturn (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional\n}\nfunc (xd *Extension) IsPacked() bool {\n\tif xd.L1.Cardinality != protoreflect.Repeated {\n\t\treturn false\n\t}\n\tswitch xd.L1.Kind {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn xd.L1.EditionFeatures.IsPacked\n}\nfunc (xd *Extension) IsExtension() bool                      { return true }\nfunc (xd *Extension) IsWeak() bool                           { return false }\nfunc (xd *Extension) IsLazy() bool                           { return xd.L1.IsLazy }\nfunc (xd *Extension) IsList() bool                           { return xd.Cardinality() == protoreflect.Repeated }\nfunc (xd *Extension) IsMap() bool                            { return false }\nfunc (xd *Extension) MapKey() protoreflect.FieldDescriptor   { return nil }\nfunc (xd *Extension) MapValue() protoreflect.FieldDescriptor { return nil }\nfunc (xd *Extension) HasDefault() bool                       { return xd.lazyInit().Default.has }\nfunc (xd *Extension) Default() protoreflect.Value            { return xd.lazyInit().Default.get(xd) }\nfunc (xd *Extension) DefaultEnumValue() protoreflect.EnumValueDescriptor {\n\treturn xd.lazyInit().Default.enum\n}\nfunc (xd *Extension) ContainingOneof() protoreflect.OneofDescriptor     { return nil }\nfunc (xd *Extension) ContainingMessage() protoreflect.MessageDescriptor { return xd.L1.Extendee }\nfunc (xd *Extension) Enum() protoreflect.EnumDescriptor                 { return xd.lazyInit().Enum }\nfunc (xd *Extension) Message() protoreflect.MessageDescriptor           { return xd.lazyInit().Message }\nfunc (xd *Extension) Format(s fmt.State, r rune)                        { descfmt.FormatDesc(s, r, xd) }\nfunc (xd *Extension) ProtoType(protoreflect.FieldDescriptor)            {}\nfunc (xd *Extension) ProtoInternal(pragma.DoNotImplement)               {}\nfunc (xd *Extension) lazyInit() *ExtensionL2 {\n\txd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn xd.L2\n}\n\ntype (\n\tService struct {\n\t\tBase\n\t\tL1 ServiceL1\n\t\tL2 *ServiceL2 // protected by fileDesc.once\n\t}\n\tServiceL1 struct{}\n\tServiceL2 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tMethods Methods\n\t}\n\n\tMethod struct {\n\t\tBase\n\t\tL1 MethodL1\n\t}\n\tMethodL1 struct {\n\t\tOptions           func() protoreflect.ProtoMessage\n\t\tInput             protoreflect.MessageDescriptor\n\t\tOutput            protoreflect.MessageDescriptor\n\t\tIsStreamingClient bool\n\t\tIsStreamingServer bool\n\t}\n)\n\nfunc (sd *Service) Options() protoreflect.ProtoMessage {\n\tif f := sd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Service\n}\nfunc (sd *Service) Methods() protoreflect.MethodDescriptors  { return &sd.lazyInit().Methods }\nfunc (sd *Service) Format(s fmt.State, r rune)               { descfmt.FormatDesc(s, r, sd) }\nfunc (sd *Service) ProtoType(protoreflect.ServiceDescriptor) {}\nfunc (sd *Service) ProtoInternal(pragma.DoNotImplement)      {}\nfunc (sd *Service) lazyInit() *ServiceL2 {\n\tsd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn sd.L2\n}\n\nfunc (md *Method) Options() protoreflect.ProtoMessage {\n\tif f := md.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Method\n}\nfunc (md *Method) Input() protoreflect.MessageDescriptor   { return md.L1.Input }\nfunc (md *Method) Output() protoreflect.MessageDescriptor  { return md.L1.Output }\nfunc (md *Method) IsStreamingClient() bool                 { return md.L1.IsStreamingClient }\nfunc (md *Method) IsStreamingServer() bool                 { return md.L1.IsStreamingServer }\nfunc (md *Method) Format(s fmt.State, r rune)              { descfmt.FormatDesc(s, r, md) }\nfunc (md *Method) ProtoType(protoreflect.MethodDescriptor) {}\nfunc (md *Method) ProtoInternal(pragma.DoNotImplement)     {}\n\n// Surrogate files are can be used to create standalone descriptors\n// where the syntax is only information derived from the parent file.\nvar (\n\tSurrogateProto2      = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}}\n\tSurrogateProto3      = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}}\n\tSurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}}\n)\n\ntype (\n\tBase struct {\n\t\tL0 BaseL0\n\t}\n\tBaseL0 struct {\n\t\tFullName   protoreflect.FullName // must be populated\n\t\tParentFile *File                 // must be populated\n\t\tParent     protoreflect.Descriptor\n\t\tIndex      int\n\t}\n)\n\nfunc (d *Base) Name() protoreflect.Name         { return d.L0.FullName.Name() }\nfunc (d *Base) FullName() protoreflect.FullName { return d.L0.FullName }\nfunc (d *Base) ParentFile() protoreflect.FileDescriptor {\n\tif d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 {\n\t\treturn nil // surrogate files are not real parents\n\t}\n\treturn d.L0.ParentFile\n}\nfunc (d *Base) Parent() protoreflect.Descriptor     { return d.L0.Parent }\nfunc (d *Base) Index() int                          { return d.L0.Index }\nfunc (d *Base) Syntax() protoreflect.Syntax         { return d.L0.ParentFile.Syntax() }\nfunc (d *Base) IsPlaceholder() bool                 { return false }\nfunc (d *Base) ProtoInternal(pragma.DoNotImplement) {}\n\ntype stringName struct {\n\thasJSON  bool\n\tonce     sync.Once\n\tnameJSON string\n\tnameText string\n}\n\n// InitJSON initializes the name. It is exported for use by other internal packages.\nfunc (s *stringName) InitJSON(name string) {\n\ts.hasJSON = true\n\ts.nameJSON = name\n}\n\n// Returns true if this field is structured like the synthetic field of a proto2\n// group. This allows us to expand our treatment of delimited fields without\n// breaking proto2 files that have been upgraded to editions.\nfunc isGroupLike(fd protoreflect.FieldDescriptor) bool {\n\t// Groups are always group types.\n\tif fd.Kind() != protoreflect.GroupKind {\n\t\treturn false\n\t}\n\n\t// Group fields are always the lowercase type name.\n\tif strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) {\n\t\treturn false\n\t}\n\n\t// Groups could only be defined in the same file they're used.\n\tif fd.Message().ParentFile() != fd.ParentFile() {\n\t\treturn false\n\t}\n\n\t// Group messages are always defined in the same scope as the field.  File\n\t// level extensions will compare NULL == NULL here, which is why the file\n\t// comparison above is necessary to ensure both come from the same file.\n\tif fd.IsExtension() {\n\t\treturn fd.Parent() == fd.Message().Parent()\n\t}\n\treturn fd.ContainingMessage() == fd.Message().Parent()\n}\n\nfunc (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {\n\ts.once.Do(func() {\n\t\tif fd.IsExtension() {\n\t\t\t// For extensions, JSON and text are formatted the same way.\n\t\t\tvar name string\n\t\t\tif messageset.IsMessageSetExtension(fd) {\n\t\t\t\tname = string(\"[\" + fd.FullName().Parent() + \"]\")\n\t\t\t} else {\n\t\t\t\tname = string(\"[\" + fd.FullName() + \"]\")\n\t\t\t}\n\t\t\ts.nameJSON = name\n\t\t\ts.nameText = name\n\t\t} else {\n\t\t\t// Format the JSON name.\n\t\t\tif !s.hasJSON {\n\t\t\t\ts.nameJSON = strs.JSONCamelCase(string(fd.Name()))\n\t\t\t}\n\n\t\t\t// Format the text name.\n\t\t\ts.nameText = string(fd.Name())\n\t\t\tif isGroupLike(fd) {\n\t\t\t\ts.nameText = string(fd.Message().Name())\n\t\t\t}\n\t\t}\n\t})\n\treturn s\n}\n\nfunc (s *stringName) getJSON(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameJSON }\nfunc (s *stringName) getText(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameText }\n\nfunc DefaultValue(v protoreflect.Value, ev protoreflect.EnumValueDescriptor) defaultValue {\n\tdv := defaultValue{has: v.IsValid(), val: v, enum: ev}\n\tif b, ok := v.Interface().([]byte); ok {\n\t\t// Store a copy of the default bytes, so that we can detect\n\t\t// accidental mutations of the original value.\n\t\tdv.bytes = append([]byte(nil), b...)\n\t}\n\treturn dv\n}\n\nfunc unmarshalDefault(b []byte, k protoreflect.Kind, pf *File, ed protoreflect.EnumDescriptor) defaultValue {\n\tvar evs protoreflect.EnumValueDescriptors\n\tif k == protoreflect.EnumKind {\n\t\t// If the enum is declared within the same file, be careful not to\n\t\t// blindly call the Values method, lest we bind ourselves in a deadlock.\n\t\tif e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf {\n\t\t\tevs = &e.L2.Values\n\t\t} else {\n\t\t\tevs = ed.Values()\n\t\t}\n\n\t\t// If we are unable to resolve the enum dependency, use a placeholder\n\t\t// enum value since we will not be able to parse the default value.\n\t\tif ed.IsPlaceholder() && protoreflect.Name(b).IsValid() {\n\t\t\tv := protoreflect.ValueOfEnum(0)\n\t\t\tev := PlaceholderEnumValue(ed.FullName().Parent().Append(protoreflect.Name(b)))\n\t\t\treturn DefaultValue(v, ev)\n\t\t}\n\t}\n\n\tv, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn DefaultValue(v, ev)\n}\n\ntype defaultValue struct {\n\thas   bool\n\tval   protoreflect.Value\n\tenum  protoreflect.EnumValueDescriptor\n\tbytes []byte\n}\n\nfunc (dv *defaultValue) get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\t// Return the zero value as the default if unpopulated.\n\tif !dv.has {\n\t\tif fd.Cardinality() == protoreflect.Repeated {\n\t\t\treturn protoreflect.Value{}\n\t\t}\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn protoreflect.ValueOfBool(false)\n\t\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\t\treturn protoreflect.ValueOfInt32(0)\n\t\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\t\treturn protoreflect.ValueOfInt64(0)\n\t\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\t\treturn protoreflect.ValueOfUint32(0)\n\t\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\t\treturn protoreflect.ValueOfUint64(0)\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn protoreflect.ValueOfFloat32(0)\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn protoreflect.ValueOfFloat64(0)\n\t\tcase protoreflect.StringKind:\n\t\t\treturn protoreflect.ValueOfString(\"\")\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn protoreflect.ValueOfBytes(nil)\n\t\tcase protoreflect.EnumKind:\n\t\t\tif evs := fd.Enum().Values(); evs.Len() > 0 {\n\t\t\t\treturn protoreflect.ValueOfEnum(evs.Get(0).Number())\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfEnum(0)\n\t\t}\n\t}\n\n\tif len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) {\n\t\t// TODO: Avoid panic if we're running with the race detector\n\t\t// and instead spawn a goroutine that periodically resets\n\t\t// this value back to the original to induce a race.\n\t\tpanic(fmt.Sprintf(\"detected mutation on the default bytes for %v\", fd.FullName()))\n\t}\n\treturn dv.val\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// fileRaw is a data struct used when initializing a file descriptor from\n// a raw FileDescriptorProto.\ntype fileRaw struct {\n\tbuilder       Builder\n\tallEnums      []Enum\n\tallMessages   []Message\n\tallExtensions []Extension\n\tallServices   []Service\n}\n\nfunc newRawFile(db Builder) *File {\n\tfd := &File{fileRaw: fileRaw{builder: db}}\n\tfd.initDecls(db.NumEnums, db.NumMessages, db.NumExtensions, db.NumServices)\n\tfd.unmarshalSeed(db.RawDescriptor)\n\n\t// Extended message targets are eagerly resolved since registration\n\t// needs this information at program init time.\n\tfor i := range fd.allExtensions {\n\t\txd := &fd.allExtensions[i]\n\t\txd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i))\n\t}\n\n\tfd.checkDecls()\n\treturn fd\n}\n\n// initDecls pre-allocates slices for the exact number of enums, messages\n// (including map entries), extensions, and services declared in the proto file.\n// This is done to avoid regrowing the slice, which would change the address\n// for any previously seen declaration.\n//\n// The alloc methods \"allocates\" slices by pulling from the capacity.\nfunc (fd *File) initDecls(numEnums, numMessages, numExtensions, numServices int32) {\n\tfd.allEnums = make([]Enum, 0, numEnums)\n\tfd.allMessages = make([]Message, 0, numMessages)\n\tfd.allExtensions = make([]Extension, 0, numExtensions)\n\tfd.allServices = make([]Service, 0, numServices)\n}\n\nfunc (fd *File) allocEnums(n int) []Enum {\n\ttotal := len(fd.allEnums)\n\tes := fd.allEnums[total : total+n]\n\tfd.allEnums = fd.allEnums[:total+n]\n\treturn es\n}\nfunc (fd *File) allocMessages(n int) []Message {\n\ttotal := len(fd.allMessages)\n\tms := fd.allMessages[total : total+n]\n\tfd.allMessages = fd.allMessages[:total+n]\n\treturn ms\n}\nfunc (fd *File) allocExtensions(n int) []Extension {\n\ttotal := len(fd.allExtensions)\n\txs := fd.allExtensions[total : total+n]\n\tfd.allExtensions = fd.allExtensions[:total+n]\n\treturn xs\n}\nfunc (fd *File) allocServices(n int) []Service {\n\ttotal := len(fd.allServices)\n\txs := fd.allServices[total : total+n]\n\tfd.allServices = fd.allServices[:total+n]\n\treturn xs\n}\n\n// checkDecls performs a sanity check that the expected number of expected\n// declarations matches the number that were found in the descriptor proto.\nfunc (fd *File) checkDecls() {\n\tswitch {\n\tcase len(fd.allEnums) != cap(fd.allEnums):\n\tcase len(fd.allMessages) != cap(fd.allMessages):\n\tcase len(fd.allExtensions) != cap(fd.allExtensions):\n\tcase len(fd.allServices) != cap(fd.allServices):\n\tdefault:\n\t\treturn\n\t}\n\tpanic(\"mismatching cardinality\")\n}\n\nfunc (fd *File) unmarshalSeed(b []byte) {\n\tsb := getBuilder()\n\tdefer putBuilder(sb)\n\n\tvar prevField protoreflect.FieldNumber\n\tvar numEnums, numMessages, numExtensions, numServices int\n\tvar posEnums, posMessages, posExtensions, posServices int\n\tvar options []byte\n\tb0 := b\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Syntax_field_number:\n\t\t\t\tswitch string(v) {\n\t\t\t\tcase \"proto2\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Proto2\n\t\t\t\t\tfd.L1.Edition = EditionProto2\n\t\t\t\tcase \"proto3\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Proto3\n\t\t\t\t\tfd.L1.Edition = EditionProto3\n\t\t\t\tcase \"editions\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Editions\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"invalid syntax\")\n\t\t\t\t}\n\t\t\tcase genid.FileDescriptorProto_Name_field_number:\n\t\t\t\tfd.L1.Path = sb.MakeString(v)\n\t\t\tcase genid.FileDescriptorProto_Package_field_number:\n\t\t\t\tfd.L1.Package = protoreflect.FullName(sb.MakeString(v))\n\t\t\tcase genid.FileDescriptorProto_Options_field_number:\n\t\t\t\toptions = v\n\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_EnumType_field_number {\n\t\t\t\t\tif numEnums > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposEnums = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumEnums++\n\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_MessageType_field_number {\n\t\t\t\t\tif numMessages > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposMessages = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumMessages++\n\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_Extension_field_number {\n\t\t\t\t\tif numExtensions > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposExtensions = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumExtensions++\n\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_Service_field_number {\n\t\t\t\t\tif numServices > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposServices = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumServices++\n\t\t\t}\n\t\t\tprevField = num\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Edition_field_number:\n\t\t\t\tfd.L1.Edition = Edition(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t\tprevField = -1 // ignore known field numbers of unknown wire type\n\t\t}\n\t}\n\n\t// If syntax is missing, it is assumed to be proto2.\n\tif fd.L1.Syntax == 0 {\n\t\tfd.L1.Syntax = protoreflect.Proto2\n\t\tfd.L1.Edition = EditionProto2\n\t}\n\n\tfd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)\n\n\t// Parse editions features from options if any\n\tif options != nil {\n\t\tfd.unmarshalSeedOptions(options)\n\t}\n\n\t// Must allocate all declarations before parsing each descriptor type\n\t// to ensure we handled all descriptors in \"flattened ordering\".\n\tif numEnums > 0 {\n\t\tfd.L1.Enums.List = fd.allocEnums(numEnums)\n\t}\n\tif numMessages > 0 {\n\t\tfd.L1.Messages.List = fd.allocMessages(numMessages)\n\t}\n\tif numExtensions > 0 {\n\t\tfd.L1.Extensions.List = fd.allocExtensions(numExtensions)\n\t}\n\tif numServices > 0 {\n\t\tfd.L1.Services.List = fd.allocServices(numServices)\n\t}\n\n\tif numEnums > 0 {\n\t\tb := b0[posEnums:]\n\t\tfor i := range fd.L1.Enums.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Enums.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numMessages > 0 {\n\t\tb := b0[posMessages:]\n\t\tfor i := range fd.L1.Messages.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Messages.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numExtensions > 0 {\n\t\tb := b0[posExtensions:]\n\t\tfor i := range fd.L1.Extensions.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Extensions.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numServices > 0 {\n\t\tb := b0[posServices:]\n\t\tfor i := range fd.L1.Services.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Services.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n}\n\nfunc (fd *File) unmarshalSeedOptions(b []byte) {\n\tfor b := b; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileOptions_Features_field_number:\n\t\t\t\tif fd.Syntax() != protoreflect.Editions {\n\t\t\t\t\tpanic(fmt.Sprintf(\"invalid descriptor: using edition features in a proto with syntax %s\", fd.Syntax()))\n\t\t\t\t}\n\t\t\t\tfd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\ted.L0.ParentFile = pf\n\ted.L0.Parent = pd\n\ted.L0.Index = i\n\ted.L1.EditionFeatures = featuresFromParentDesc(ed.Parent())\n\n\tvar numValues int\n\tfor b := b; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Name_field_number:\n\t\t\t\ted.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\tnumValues++\n\t\t\t}\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Visibility_field_number:\n\t\t\t\ted.L1.Visibility = int32(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\n\t// Only construct enum value descriptors for top-level enums since\n\t// they are needed for registration.\n\tif pd != pf {\n\t\treturn\n\t}\n\ted.L1.eagerValues = true\n\ted.L2 = new(EnumL2)\n\ted.L2.Values.List = make([]EnumValue, numValues)\n\tfor i := 0; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\ted.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i)\n\t\t\t\ti++\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tmd.L0.ParentFile = pf\n\tmd.L0.Parent = pd\n\tmd.L0.Index = i\n\tmd.L1.EditionFeatures = featuresFromParentDesc(md.Parent())\n\n\tvar prevField protoreflect.FieldNumber\n\tvar numEnums, numMessages, numExtensions int\n\tvar posEnums, posMessages, posExtensions int\n\tb0 := b\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_Name_field_number:\n\t\t\t\tmd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_EnumType_field_number {\n\t\t\t\t\tif numEnums > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposEnums = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumEnums++\n\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_NestedType_field_number {\n\t\t\t\t\tif numMessages > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposMessages = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumMessages++\n\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_Extension_field_number {\n\t\t\t\t\tif numExtensions > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposExtensions = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumExtensions++\n\t\t\tcase genid.DescriptorProto_Options_field_number:\n\t\t\t\tmd.unmarshalSeedOptions(v)\n\t\t\t}\n\t\t\tprevField = num\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_Visibility_field_number:\n\t\t\t\tmd.L1.Visibility = int32(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t\tprevField = -1 // ignore known field numbers of unknown wire type\n\t\t}\n\t}\n\n\t// Must allocate all declarations before parsing each descriptor type\n\t// to ensure we handled all descriptors in \"flattened ordering\".\n\tif numEnums > 0 {\n\t\tmd.L1.Enums.List = pf.allocEnums(numEnums)\n\t}\n\tif numMessages > 0 {\n\t\tmd.L1.Messages.List = pf.allocMessages(numMessages)\n\t}\n\tif numExtensions > 0 {\n\t\tmd.L1.Extensions.List = pf.allocExtensions(numExtensions)\n\t}\n\n\tif numEnums > 0 {\n\t\tb := b0[posEnums:]\n\t\tfor i := range md.L1.Enums.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Enums.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numMessages > 0 {\n\t\tb := b0[posMessages:]\n\t\tfor i := range md.L1.Messages.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Messages.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numExtensions > 0 {\n\t\tb := b0[posExtensions:]\n\t\tfor i := range md.L1.Extensions.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Extensions.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n}\n\nfunc (md *Message) unmarshalSeedOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_MapEntry_field_number:\n\t\t\t\tmd.L1.IsMapEntry = protowire.DecodeBool(v)\n\t\t\tcase genid.MessageOptions_MessageSetWireFormat_field_number:\n\t\t\t\tmd.L1.IsMessageSet = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_Features_field_number:\n\t\t\t\tmd.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\txd.L0.ParentFile = pf\n\txd.L0.Parent = pd\n\txd.L0.Index = i\n\txd.L1.EditionFeatures = featuresFromParentDesc(pd)\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Number_field_number:\n\t\t\t\txd.L1.Number = protoreflect.FieldNumber(v)\n\t\t\tcase genid.FieldDescriptorProto_Label_field_number:\n\t\t\t\txd.L1.Cardinality = protoreflect.Cardinality(v)\n\t\t\tcase genid.FieldDescriptorProto_Type_field_number:\n\t\t\t\txd.L1.Kind = protoreflect.Kind(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Name_field_number:\n\t\t\t\txd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.FieldDescriptorProto_Extendee_field_number:\n\t\t\t\txd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\txd.unmarshalOptions(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\n\tif xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {\n\t\txd.L1.Kind = protoreflect.GroupKind\n\t}\n}\n\nfunc (xd *Extension) unmarshalOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Packed_field_number:\n\t\t\t\txd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)\n\t\t\tcase genid.FieldOptions_Lazy_field_number:\n\t\t\t\txd.L1.IsLazy = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Features_field_number:\n\t\t\t\txd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tsd.L0.ParentFile = pf\n\tsd.L0.Parent = pd\n\tsd.L0.Index = i\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.ServiceDescriptorProto_Name_field_number:\n\t\t\t\tsd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nvar nameBuilderPool = sync.Pool{\n\tNew: func() any { return new(strs.Builder) },\n}\n\nfunc getBuilder() *strs.Builder {\n\treturn nameBuilderPool.Get().(*strs.Builder)\n}\nfunc putBuilder(b *strs.Builder) {\n\tnameBuilderPool.Put(b)\n}\n\n// makeFullName converts b to a protoreflect.FullName,\n// where b must start with a leading dot.\nfunc makeFullName(sb *strs.Builder, b []byte) protoreflect.FullName {\n\tif len(b) == 0 || b[0] != '.' {\n\t\tpanic(\"name reference must be fully qualified\")\n\t}\n\treturn protoreflect.FullName(sb.MakeString(b[1:]))\n}\n\nfunc appendFullName(sb *strs.Builder, prefix protoreflect.FullName, suffix []byte) protoreflect.FullName {\n\treturn sb.AppendFullName(prefix, protoreflect.Name(strs.UnsafeString(suffix)))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc (fd *File) lazyRawInit() {\n\tfd.unmarshalFull(fd.builder.RawDescriptor)\n\tfd.resolveMessages()\n\tfd.resolveExtensions()\n\tfd.resolveServices()\n}\n\nfunc (file *File) resolveMessages() {\n\tvar depIdx int32\n\tfor i := range file.allMessages {\n\t\tmd := &file.allMessages[i]\n\n\t\t// Resolve message field dependencies.\n\t\tfor j := range md.L2.Fields.List {\n\t\t\tfd := &md.L2.Fields.List[j]\n\n\t\t\t// Resolve message field dependency.\n\t\t\tswitch fd.L1.Kind {\n\t\t\tcase protoreflect.EnumKind:\n\t\t\t\tfd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx)\n\t\t\t\tdepIdx++\n\t\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t\tfd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx)\n\t\t\t\tdepIdx++\n\t\t\t\tif fd.L1.Kind == protoreflect.GroupKind && (fd.IsMap() || fd.IsMapEntry()) {\n\t\t\t\t\t// A map field might inherit delimited encoding from a file-wide default feature.\n\t\t\t\t\t// But maps never actually use delimited encoding. (At least for now...)\n\t\t\t\t\tfd.L1.Kind = protoreflect.MessageKind\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Default is resolved here since it depends on Enum being resolved.\n\t\t\tif v := fd.L1.Default.val; v.IsValid() {\n\t\t\t\tfd.L1.Default = unmarshalDefault(v.Bytes(), fd.L1.Kind, file, fd.L1.Enum)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveExtensions() {\n\tvar depIdx int32\n\tfor i := range file.allExtensions {\n\t\txd := &file.allExtensions[i]\n\n\t\t// Resolve extension field dependency.\n\t\tswitch xd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\txd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx)\n\t\t\tdepIdx++\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\txd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx)\n\t\t\tdepIdx++\n\t\t}\n\n\t\t// Default is resolved here since it depends on Enum being resolved.\n\t\tif v := xd.L2.Default.val; v.IsValid() {\n\t\t\txd.L2.Default = unmarshalDefault(v.Bytes(), xd.L1.Kind, file, xd.L2.Enum)\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveServices() {\n\tvar depIdx int32\n\tfor i := range file.allServices {\n\t\tsd := &file.allServices[i]\n\n\t\t// Resolve method dependencies.\n\t\tfor j := range sd.L2.Methods.List {\n\t\t\tmd := &sd.L2.Methods.List[j]\n\t\t\tmd.L1.Input = file.resolveMessageDependency(md.L1.Input, listMethInDeps, depIdx)\n\t\t\tmd.L1.Output = file.resolveMessageDependency(md.L1.Output, listMethOutDeps, depIdx)\n\t\t\tdepIdx++\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveEnumDependency(ed protoreflect.EnumDescriptor, i, j int32) protoreflect.EnumDescriptor {\n\tr := file.builder.FileRegistry\n\tif r, ok := r.(resolverByIndex); ok {\n\t\tif ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil {\n\t\t\treturn ed2\n\t\t}\n\t}\n\tfor i := range file.allEnums {\n\t\tif ed2 := &file.allEnums[i]; ed2.L0.FullName == ed.FullName() {\n\t\t\treturn ed2\n\t\t}\n\t}\n\tif d, _ := r.FindDescriptorByName(ed.FullName()); d != nil {\n\t\treturn d.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\nfunc (file *File) resolveMessageDependency(md protoreflect.MessageDescriptor, i, j int32) protoreflect.MessageDescriptor {\n\tr := file.builder.FileRegistry\n\tif r, ok := r.(resolverByIndex); ok {\n\t\tif md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil {\n\t\t\treturn md2\n\t\t}\n\t}\n\tfor i := range file.allMessages {\n\t\tif md2 := &file.allMessages[i]; md2.L0.FullName == md.FullName() {\n\t\t\treturn md2\n\t\t}\n\t}\n\tif d, _ := r.FindDescriptorByName(md.FullName()); d != nil {\n\t\treturn d.(protoreflect.MessageDescriptor)\n\t}\n\treturn md\n}\n\nfunc (fd *File) unmarshalFull(b []byte) {\n\tsb := getBuilder()\n\tdefer putBuilder(sb)\n\n\tvar enumIdx, messageIdx, extensionIdx, serviceIdx int\n\tvar rawOptions []byte\n\tvar optionImports []string\n\tfd.L2 = new(FileL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_PublicDependency_field_number:\n\t\t\t\tfd.L2.Imports[v].IsPublic = true\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Dependency_field_number:\n\t\t\t\tpath := sb.MakeString(v)\n\t\t\t\timp, _ := fd.builder.FileRegistry.FindFileByPath(path)\n\t\t\t\tif imp == nil {\n\t\t\t\t\timp = PlaceholderFile(path)\n\t\t\t\t}\n\t\t\t\tfd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp})\n\t\t\tcase genid.FileDescriptorProto_OptionDependency_field_number:\n\t\t\t\toptionImports = append(optionImports, sb.MakeString(v))\n\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\tfd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)\n\t\t\t\tenumIdx++\n\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\tfd.L1.Messages.List[messageIdx].unmarshalFull(v, sb)\n\t\t\t\tmessageIdx++\n\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\tfd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)\n\t\t\t\textensionIdx++\n\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\tfd.L1.Services.List[serviceIdx].unmarshalFull(v, sb)\n\t\t\t\tserviceIdx++\n\t\t\tcase genid.FileDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tfd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions)\n\tif len(optionImports) > 0 {\n\t\tvar imps FileImports\n\t\tvar once sync.Once\n\t\tfd.L2.OptionImports = func() protoreflect.FileImports {\n\t\t\tonce.Do(func() {\n\t\t\t\timps = make(FileImports, len(optionImports))\n\t\t\t\tfor i, path := range optionImports {\n\t\t\t\t\timp, _ := fd.builder.FileRegistry.FindFileByPath(path)\n\t\t\t\t\tif imp == nil {\n\t\t\t\t\t\timp = PlaceholderFile(path)\n\t\t\t\t\t}\n\t\t\t\t\timps[i] = protoreflect.FileImport{FileDescriptor: imp}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn &imps\n\t\t}\n\t}\n}\n\nfunc (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawValues [][]byte\n\tvar rawOptions []byte\n\tif !ed.L1.eagerValues {\n\t\ted.L2 = new(EnumL2)\n\t}\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\trawValues = append(rawValues, v)\n\t\t\tcase genid.EnumDescriptorProto_ReservedName_field_number:\n\t\t\t\ted.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))\n\t\t\tcase genid.EnumDescriptorProto_ReservedRange_field_number:\n\t\t\t\ted.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v))\n\t\t\tcase genid.EnumDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif !ed.L1.eagerValues && len(rawValues) > 0 {\n\t\ted.L2.Values.List = make([]EnumValue, len(rawValues))\n\t\tfor i, b := range rawValues {\n\t\t\ted.L2.Values.List[i].unmarshalFull(b, sb, ed.L0.ParentFile, ed, i)\n\t\t}\n\t}\n\ted.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions)\n}\n\nfunc unmarshalEnumReservedRange(b []byte) (r [2]protoreflect.EnumNumber) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_EnumReservedRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.EnumNumber(v)\n\t\t\tcase genid.EnumDescriptorProto_EnumReservedRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.EnumNumber(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r\n}\n\nfunc (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tvd.L0.ParentFile = pf\n\tvd.L0.Parent = pd\n\tvd.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumValueDescriptorProto_Number_field_number:\n\t\t\t\tvd.L1.Number = protoreflect.EnumNumber(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumValueDescriptorProto_Name_field_number:\n\t\t\t\t// NOTE: Enum values are in the same scope as the enum parent.\n\t\t\t\tvd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v)\n\t\t\tcase genid.EnumValueDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tvd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.EnumValue, rawOptions)\n}\n\nfunc (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawFields, rawOneofs [][]byte\n\tvar enumIdx, messageIdx, extensionIdx int\n\tvar rawOptions []byte\n\tmd.L2 = new(MessageL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_Field_field_number:\n\t\t\t\trawFields = append(rawFields, v)\n\t\t\tcase genid.DescriptorProto_OneofDecl_field_number:\n\t\t\t\trawOneofs = append(rawOneofs, v)\n\t\t\tcase genid.DescriptorProto_ReservedName_field_number:\n\t\t\t\tmd.L2.ReservedNames.List = append(md.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))\n\t\t\tcase genid.DescriptorProto_ReservedRange_field_number:\n\t\t\t\tmd.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v))\n\t\t\tcase genid.DescriptorProto_ExtensionRange_field_number:\n\t\t\t\tr, rawOptions := unmarshalMessageExtensionRange(v)\n\t\t\t\topts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions)\n\t\t\t\tmd.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r)\n\t\t\t\tmd.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts)\n\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\tmd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)\n\t\t\t\tenumIdx++\n\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\tmd.L1.Messages.List[messageIdx].unmarshalFull(v, sb)\n\t\t\t\tmessageIdx++\n\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\tmd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)\n\t\t\t\textensionIdx++\n\t\t\tcase genid.DescriptorProto_Options_field_number:\n\t\t\t\tmd.unmarshalOptions(v)\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif len(rawFields) > 0 || len(rawOneofs) > 0 {\n\t\tmd.L2.Fields.List = make([]Field, len(rawFields))\n\t\tmd.L2.Oneofs.List = make([]Oneof, len(rawOneofs))\n\t\tfor i, b := range rawFields {\n\t\t\tfd := &md.L2.Fields.List[i]\n\t\t\tfd.unmarshalFull(b, sb, md.L0.ParentFile, md, i)\n\t\t\tif fd.L1.Cardinality == protoreflect.Required {\n\t\t\t\tmd.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number)\n\t\t\t}\n\t\t}\n\t\tfor i, b := range rawOneofs {\n\t\t\tod := &md.L2.Oneofs.List[i]\n\t\t\tod.unmarshalFull(b, sb, md.L0.ParentFile, md, i)\n\t\t}\n\t}\n\tmd.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)\n}\n\nfunc (md *Message) unmarshalOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_MapEntry_field_number:\n\t\t\t\tmd.L1.IsMapEntry = protowire.DecodeBool(v)\n\t\t\tcase genid.MessageOptions_MessageSetWireFormat_field_number:\n\t\t\t\tmd.L1.IsMessageSet = protowire.DecodeBool(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ReservedRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.FieldNumber(v)\n\t\t\tcase genid.DescriptorProto_ReservedRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.FieldNumber(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r\n}\n\nfunc unmarshalMessageExtensionRange(b []byte) (r [2]protoreflect.FieldNumber, rawOptions []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ExtensionRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.FieldNumber(v)\n\t\t\tcase genid.DescriptorProto_ExtensionRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.FieldNumber(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ExtensionRange_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r, rawOptions\n}\n\nfunc (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tfd.L0.ParentFile = pf\n\tfd.L0.Parent = pd\n\tfd.L0.Index = i\n\tfd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent())\n\n\tvar rawTypeName []byte\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Number_field_number:\n\t\t\t\tfd.L1.Number = protoreflect.FieldNumber(v)\n\t\t\tcase genid.FieldDescriptorProto_Label_field_number:\n\t\t\t\tfd.L1.Cardinality = protoreflect.Cardinality(v)\n\t\t\tcase genid.FieldDescriptorProto_Type_field_number:\n\t\t\t\tfd.L1.Kind = protoreflect.Kind(v)\n\t\t\tcase genid.FieldDescriptorProto_OneofIndex_field_number:\n\t\t\t\t// In Message.unmarshalFull, we allocate slices for both\n\t\t\t\t// the field and oneof descriptors before unmarshaling either\n\t\t\t\t// of them. This ensures pointers to slice elements are stable.\n\t\t\t\tod := &pd.(*Message).L2.Oneofs.List[v]\n\t\t\t\tod.L1.Fields.List = append(od.L1.Fields.List, fd)\n\t\t\t\tif fd.L1.ContainingOneof != nil {\n\t\t\t\t\tpanic(\"oneof type already set\")\n\t\t\t\t}\n\t\t\t\tfd.L1.ContainingOneof = od\n\t\t\tcase genid.FieldDescriptorProto_Proto3Optional_field_number:\n\t\t\t\tfd.L1.IsProto3Optional = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Name_field_number:\n\t\t\t\tfd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.FieldDescriptorProto_JsonName_field_number:\n\t\t\t\tfd.L1.StringName.InitJSON(sb.MakeString(v))\n\t\t\tcase genid.FieldDescriptorProto_DefaultValue_field_number:\n\t\t\t\tfd.L1.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages\n\t\t\tcase genid.FieldDescriptorProto_TypeName_field_number:\n\t\t\t\trawTypeName = v\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\tfd.unmarshalOptions(v)\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {\n\t\tfd.L1.Kind = protoreflect.GroupKind\n\t}\n\tif fd.L1.EditionFeatures.IsLegacyRequired {\n\t\tfd.L1.Cardinality = protoreflect.Required\n\t}\n\tif rawTypeName != nil {\n\t\tname := makeFullName(sb, rawTypeName)\n\t\tswitch fd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\tfd.L1.Enum = PlaceholderEnum(name)\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\tfd.L1.Message = PlaceholderMessage(name)\n\t\t}\n\t}\n\tfd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Field, rawOptions)\n}\n\nfunc (fd *Field) unmarshalOptions(b []byte) {\n\tconst FieldOptions_EnforceUTF8 = 13\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Packed_field_number:\n\t\t\t\tfd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)\n\t\t\tcase genid.FieldOptions_Lazy_field_number:\n\t\t\t\tfd.L1.IsLazy = protowire.DecodeBool(v)\n\t\t\tcase FieldOptions_EnforceUTF8:\n\t\t\t\tfd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Features_field_number:\n\t\t\t\tfd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tod.L0.ParentFile = pf\n\tod.L0.Parent = pd\n\tod.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.OneofDescriptorProto_Name_field_number:\n\t\t\t\tod.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.OneofDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tod.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Oneof, rawOptions)\n}\n\nfunc (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawTypeName []byte\n\tvar rawOptions []byte\n\txd.L2 = new(ExtensionL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Proto3Optional_field_number:\n\t\t\t\txd.L2.IsProto3Optional = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_JsonName_field_number:\n\t\t\t\txd.L2.StringName.InitJSON(sb.MakeString(v))\n\t\t\tcase genid.FieldDescriptorProto_DefaultValue_field_number:\n\t\t\t\txd.L2.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions\n\t\t\tcase genid.FieldDescriptorProto_TypeName_field_number:\n\t\t\t\trawTypeName = v\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif rawTypeName != nil {\n\t\tname := makeFullName(sb, rawTypeName)\n\t\tswitch xd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\txd.L2.Enum = PlaceholderEnum(name)\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\txd.L2.Message = PlaceholderMessage(name)\n\t\t}\n\t}\n\txd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions)\n}\n\nfunc (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawMethods [][]byte\n\tvar rawOptions []byte\n\tsd.L2 = new(ServiceL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.ServiceDescriptorProto_Method_field_number:\n\t\t\t\trawMethods = append(rawMethods, v)\n\t\t\tcase genid.ServiceDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif len(rawMethods) > 0 {\n\t\tsd.L2.Methods.List = make([]Method, len(rawMethods))\n\t\tfor i, b := range rawMethods {\n\t\t\tsd.L2.Methods.List[i].unmarshalFull(b, sb, sd.L0.ParentFile, sd, i)\n\t\t}\n\t}\n\tsd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions)\n}\n\nfunc (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tmd.L0.ParentFile = pf\n\tmd.L0.Parent = pd\n\tmd.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MethodDescriptorProto_ClientStreaming_field_number:\n\t\t\t\tmd.L1.IsStreamingClient = protowire.DecodeBool(v)\n\t\t\tcase genid.MethodDescriptorProto_ServerStreaming_field_number:\n\t\t\t\tmd.L1.IsStreamingServer = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MethodDescriptorProto_Name_field_number:\n\t\t\t\tmd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.MethodDescriptorProto_InputType_field_number:\n\t\t\t\tmd.L1.Input = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.MethodDescriptorProto_OutputType_field_number:\n\t\t\t\tmd.L1.Output = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.MethodDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tmd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Method, rawOptions)\n}\n\n// appendOptions appends src to dst, where the returned slice is never nil.\n// This is necessary to distinguish between empty and unpopulated options.\nfunc appendOptions(dst, src []byte) []byte {\n\tif dst == nil {\n\t\tdst = []byte{}\n\t}\n\treturn append(dst, src...)\n}\n\n// optionsUnmarshaler constructs a lazy unmarshal function for an options message.\n//\n// The type of message to unmarshal to is passed as a pointer since the\n// vars in descopts may not yet be populated at the time this function is called.\nfunc (db *Builder) optionsUnmarshaler(p *protoreflect.ProtoMessage, b []byte) func() protoreflect.ProtoMessage {\n\tif b == nil {\n\t\treturn nil\n\t}\n\tvar opts protoreflect.ProtoMessage\n\tvar once sync.Once\n\treturn func() protoreflect.ProtoMessage {\n\t\tonce.Do(func() {\n\t\t\tif *p == nil {\n\t\t\t\tpanic(\"Descriptor.Options called without importing the descriptor package\")\n\t\t\t}\n\t\t\topts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(protoreflect.ProtoMessage)\n\t\t\tif err := (proto.UnmarshalOptions{\n\t\t\t\tAllowPartial: true,\n\t\t\t\tResolver:     db.TypeResolver,\n\t\t\t}).Unmarshal(b, opts); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t})\n\t\treturn opts\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sort\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/genid\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype FileImports []protoreflect.FileImport\n\nfunc (p *FileImports) Len() int                            { return len(*p) }\nfunc (p *FileImports) Get(i int) protoreflect.FileImport   { return (*p)[i] }\nfunc (p *FileImports) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FileImports) ProtoInternal(pragma.DoNotImplement) {}\n\ntype Names struct {\n\tList []protoreflect.Name\n\tonce sync.Once\n\thas  map[protoreflect.Name]int // protected by once\n}\n\nfunc (p *Names) Len() int                            { return len(p.List) }\nfunc (p *Names) Get(i int) protoreflect.Name         { return p.List[i] }\nfunc (p *Names) Has(s protoreflect.Name) bool        { return p.lazyInit().has[s] > 0 }\nfunc (p *Names) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *Names) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Names) lazyInit() *Names {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.has = make(map[protoreflect.Name]int, len(p.List))\n\t\t\tfor _, s := range p.List {\n\t\t\t\tp.has[s] = p.has[s] + 1\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of names with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *Names) CheckValid() error {\n\tfor s, n := range p.lazyInit().has {\n\t\tswitch {\n\t\tcase n > 1:\n\t\t\treturn errors.New(\"duplicate name: %q\", s)\n\t\tcase false && !s.IsValid():\n\t\t\t// NOTE: The C++ implementation does not validate the identifier.\n\t\t\t// See https://github.com/protocolbuffers/protobuf/issues/6335.\n\t\t\treturn errors.New(\"invalid name: %q\", s)\n\t\t}\n\t}\n\treturn nil\n}\n\ntype EnumRanges struct {\n\tList   [][2]protoreflect.EnumNumber // start inclusive; end inclusive\n\tonce   sync.Once\n\tsorted [][2]protoreflect.EnumNumber // protected by once\n}\n\nfunc (p *EnumRanges) Len() int                             { return len(p.List) }\nfunc (p *EnumRanges) Get(i int) [2]protoreflect.EnumNumber { return p.List[i] }\nfunc (p *EnumRanges) Has(n protoreflect.EnumNumber) bool {\n\tfor ls := p.lazyInit().sorted; len(ls) > 0; {\n\t\ti := len(ls) / 2\n\t\tswitch r := enumRange(ls[i]); {\n\t\tcase n < r.Start():\n\t\t\tls = ls[:i] // search lower\n\t\tcase n > r.End():\n\t\t\tls = ls[i+1:] // search upper\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\nfunc (p *EnumRanges) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *EnumRanges) lazyInit() *EnumRanges {\n\tp.once.Do(func() {\n\t\tp.sorted = append(p.sorted, p.List...)\n\t\tsort.Slice(p.sorted, func(i, j int) bool {\n\t\t\treturn p.sorted[i][0] < p.sorted[j][0]\n\t\t})\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of names with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *EnumRanges) CheckValid() error {\n\tvar rp enumRange\n\tfor i, r := range p.lazyInit().sorted {\n\t\tr := enumRange(r)\n\t\tswitch {\n\t\tcase !(r.Start() <= r.End()):\n\t\t\treturn errors.New(\"invalid range: %v\", r)\n\t\tcase !(rp.End() < r.Start()) && i > 0:\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, r)\n\t\t}\n\t\trp = r\n\t}\n\treturn nil\n}\n\ntype enumRange [2]protoreflect.EnumNumber\n\nfunc (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive\nfunc (r enumRange) End() protoreflect.EnumNumber   { return r[1] } // inclusive\nfunc (r enumRange) String() string {\n\tif r.Start() == r.End() {\n\t\treturn fmt.Sprintf(\"%d\", r.Start())\n\t}\n\treturn fmt.Sprintf(\"%d to %d\", r.Start(), r.End())\n}\n\ntype FieldRanges struct {\n\tList   [][2]protoreflect.FieldNumber // start inclusive; end exclusive\n\tonce   sync.Once\n\tsorted [][2]protoreflect.FieldNumber // protected by once\n}\n\nfunc (p *FieldRanges) Len() int                              { return len(p.List) }\nfunc (p *FieldRanges) Get(i int) [2]protoreflect.FieldNumber { return p.List[i] }\nfunc (p *FieldRanges) Has(n protoreflect.FieldNumber) bool {\n\tfor ls := p.lazyInit().sorted; len(ls) > 0; {\n\t\ti := len(ls) / 2\n\t\tswitch r := fieldRange(ls[i]); {\n\t\tcase n < r.Start():\n\t\t\tls = ls[:i] // search lower\n\t\tcase n > r.End():\n\t\t\tls = ls[i+1:] // search upper\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\nfunc (p *FieldRanges) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *FieldRanges) lazyInit() *FieldRanges {\n\tp.once.Do(func() {\n\t\tp.sorted = append(p.sorted, p.List...)\n\t\tsort.Slice(p.sorted, func(i, j int) bool {\n\t\t\treturn p.sorted[i][0] < p.sorted[j][0]\n\t\t})\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of ranges with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *FieldRanges) CheckValid(isMessageSet bool) error {\n\tvar rp fieldRange\n\tfor i, r := range p.lazyInit().sorted {\n\t\tr := fieldRange(r)\n\t\tswitch {\n\t\tcase !isValidFieldNumber(r.Start(), isMessageSet):\n\t\t\treturn errors.New(\"invalid field number: %d\", r.Start())\n\t\tcase !isValidFieldNumber(r.End(), isMessageSet):\n\t\t\treturn errors.New(\"invalid field number: %d\", r.End())\n\t\tcase !(r.Start() <= r.End()):\n\t\t\treturn errors.New(\"invalid range: %v\", r)\n\t\tcase !(rp.End() < r.Start()) && i > 0:\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, r)\n\t\t}\n\t\trp = r\n\t}\n\treturn nil\n}\n\n// isValidFieldNumber reports whether the field number is valid.\n// Unlike the FieldNumber.IsValid method, it allows ranges that cover the\n// reserved number range.\nfunc isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool {\n\treturn protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet)\n}\n\n// CheckOverlap reports an error if p and q overlap.\nfunc (p *FieldRanges) CheckOverlap(q *FieldRanges) error {\n\trps := p.lazyInit().sorted\n\trqs := q.lazyInit().sorted\n\tfor pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); {\n\t\trp := fieldRange(rps[pi])\n\t\trq := fieldRange(rqs[qi])\n\t\tif !(rp.End() < rq.Start() || rq.End() < rp.Start()) {\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, rq)\n\t\t}\n\t\tif rp.Start() < rq.Start() {\n\t\t\tpi++\n\t\t} else {\n\t\t\tqi++\n\t\t}\n\t}\n\treturn nil\n}\n\ntype fieldRange [2]protoreflect.FieldNumber\n\nfunc (r fieldRange) Start() protoreflect.FieldNumber { return r[0] }     // inclusive\nfunc (r fieldRange) End() protoreflect.FieldNumber   { return r[1] - 1 } // inclusive\nfunc (r fieldRange) String() string {\n\tif r.Start() == r.End() {\n\t\treturn fmt.Sprintf(\"%d\", r.Start())\n\t}\n\treturn fmt.Sprintf(\"%d to %d\", r.Start(), r.End())\n}\n\ntype FieldNumbers struct {\n\tList []protoreflect.FieldNumber\n\tonce sync.Once\n\thas  map[protoreflect.FieldNumber]struct{} // protected by once\n}\n\nfunc (p *FieldNumbers) Len() int                           { return len(p.List) }\nfunc (p *FieldNumbers) Get(i int) protoreflect.FieldNumber { return p.List[i] }\nfunc (p *FieldNumbers) Has(n protoreflect.FieldNumber) bool {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.has = make(map[protoreflect.FieldNumber]struct{}, len(p.List))\n\t\t\tfor _, n := range p.List {\n\t\t\t\tp.has[n] = struct{}{}\n\t\t\t}\n\t\t}\n\t})\n\t_, ok := p.has[n]\n\treturn ok\n}\nfunc (p *FieldNumbers) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {}\n\ntype OneofFields struct {\n\tList   []protoreflect.FieldDescriptor\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]protoreflect.FieldDescriptor        // protected by once\n\tbyJSON map[string]protoreflect.FieldDescriptor                   // protected by once\n\tbyText map[string]protoreflect.FieldDescriptor                   // protected by once\n\tbyNum  map[protoreflect.FieldNumber]protoreflect.FieldDescriptor // protected by once\n}\n\nfunc (p *OneofFields) Len() int                               { return len(p.List) }\nfunc (p *OneofFields) Get(i int) protoreflect.FieldDescriptor { return p.List[i] }\nfunc (p *OneofFields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byName[s]\n}\nfunc (p *OneofFields) ByJSONName(s string) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byJSON[s]\n}\nfunc (p *OneofFields) ByTextName(s string) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byText[s]\n}\nfunc (p *OneofFields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byNum[n]\n}\nfunc (p *OneofFields) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {}\n\nfunc (p *OneofFields) lazyInit() *OneofFields {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byJSON = make(map[string]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byText = make(map[string]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tfor _, f := range p.List {\n\t\t\t\t// Field names and numbers are guaranteed to be unique.\n\t\t\t\tp.byName[f.Name()] = f\n\t\t\t\tp.byJSON[f.JSONName()] = f\n\t\t\t\tp.byText[f.TextName()] = f\n\t\t\t\tp.byNum[f.Number()] = f\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype SourceLocations struct {\n\t// List is a list of SourceLocations.\n\t// The SourceLocation.Next field does not need to be populated\n\t// as it will be lazily populated upon first need.\n\tList []protoreflect.SourceLocation\n\n\t// File is the parent file descriptor that these locations are relative to.\n\t// If non-nil, ByDescriptor verifies that the provided descriptor\n\t// is a child of this file descriptor.\n\tFile protoreflect.FileDescriptor\n\n\tonce   sync.Once\n\tbyPath map[pathKey]int\n}\n\nfunc (p *SourceLocations) Len() int                              { return len(p.List) }\nfunc (p *SourceLocations) Get(i int) protoreflect.SourceLocation { return p.lazyInit().List[i] }\nfunc (p *SourceLocations) byKey(k pathKey) protoreflect.SourceLocation {\n\tif i, ok := p.lazyInit().byPath[k]; ok {\n\t\treturn p.List[i]\n\t}\n\treturn protoreflect.SourceLocation{}\n}\nfunc (p *SourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation {\n\treturn p.byKey(newPathKey(path))\n}\nfunc (p *SourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation {\n\tif p.File != nil && desc != nil && p.File != desc.ParentFile() {\n\t\treturn protoreflect.SourceLocation{} // mismatching parent files\n\t}\n\tvar pathArr [16]int32\n\tpath := pathArr[:0]\n\tfor {\n\t\tswitch desc.(type) {\n\t\tcase protoreflect.FileDescriptor:\n\t\t\t// Reverse the path since it was constructed in reverse.\n\t\t\tfor i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 {\n\t\t\t\tpath[i], path[j] = path[j], path[i]\n\t\t\t}\n\t\t\treturn p.byKey(newPathKey(path))\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_MessageType_field_number))\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_NestedType_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.FieldDescriptor:\n\t\t\tisExtension := desc.(protoreflect.FieldDescriptor).IsExtension()\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tif isExtension {\n\t\t\t\tswitch desc.(type) {\n\t\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_Extension_field_number))\n\t\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.DescriptorProto_Extension_field_number))\n\t\t\t\tdefault:\n\t\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch desc.(type) {\n\t\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.DescriptorProto_Field_field_number))\n\t\t\t\tdefault:\n\t\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t\t}\n\t\t\t}\n\t\tcase protoreflect.OneofDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_OneofDecl_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_EnumType_field_number))\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_EnumType_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.EnumDescriptor:\n\t\t\t\tpath = append(path, int32(genid.EnumDescriptorProto_Value_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.ServiceDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_Service_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.MethodDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.ServiceDescriptor:\n\t\t\t\tpath = append(path, int32(genid.ServiceDescriptorProto_Method_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tdefault:\n\t\t\treturn protoreflect.SourceLocation{}\n\t\t}\n\t}\n}\nfunc (p *SourceLocations) lazyInit() *SourceLocations {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\t// Collect all the indexes for a given path.\n\t\t\tpathIdxs := make(map[pathKey][]int, len(p.List))\n\t\t\tfor i, l := range p.List {\n\t\t\t\tk := newPathKey(l.Path)\n\t\t\t\tpathIdxs[k] = append(pathIdxs[k], i)\n\t\t\t}\n\n\t\t\t// Update the next index for all locations.\n\t\t\tp.byPath = make(map[pathKey]int, len(p.List))\n\t\t\tfor k, idxs := range pathIdxs {\n\t\t\t\tfor i := 0; i < len(idxs)-1; i++ {\n\t\t\t\t\tp.List[idxs[i]].Next = idxs[i+1]\n\t\t\t\t}\n\t\t\t\tp.List[idxs[len(idxs)-1]].Next = 0\n\t\t\t\tp.byPath[k] = idxs[0] // record the first location for this path\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\nfunc (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {}\n\n// pathKey is a comparable representation of protoreflect.SourcePath.\ntype pathKey struct {\n\tarr [16]uint8 // first n-1 path segments; last element is the length\n\tstr string    // used if the path does not fit in arr\n}\n\nfunc newPathKey(p protoreflect.SourcePath) (k pathKey) {\n\tif len(p) < len(k.arr) {\n\t\tfor i, ps := range p {\n\t\t\tif ps < 0 || math.MaxUint8 <= ps {\n\t\t\t\treturn pathKey{str: p.String()}\n\t\t\t}\n\t\t\tk.arr[i] = uint8(ps)\n\t\t}\n\t\tk.arr[len(k.arr)-1] = uint8(len(p))\n\t\treturn k\n\t}\n\treturn pathKey{str: p.String()}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype Enums struct {\n\tList   []Enum\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Enum // protected by once\n}\n\nfunc (p *Enums) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Enums) Get(i int) protoreflect.EnumDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Enums) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Enums) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Enums) lazyInit() *Enums {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Enum, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype EnumValues struct {\n\tList   []EnumValue\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*EnumValue       // protected by once\n\tbyNum  map[protoreflect.EnumNumber]*EnumValue // protected by once\n}\n\nfunc (p *EnumValues) Len() int {\n\treturn len(p.List)\n}\nfunc (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {\n\tif d := p.lazyInit().byNum[n]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *EnumValues) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *EnumValues) lazyInit() *EnumValues {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*EnumValue, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byNum[d.Number()]; !ok {\n\t\t\t\t\tp.byNum[d.Number()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Messages struct {\n\tList   []Message\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Message // protected by once\n}\n\nfunc (p *Messages) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Messages) Get(i int) protoreflect.MessageDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Messages) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Messages) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Messages) lazyInit() *Messages {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Message, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Fields struct {\n\tList   []Field\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Field        // protected by once\n\tbyJSON map[string]*Field                   // protected by once\n\tbyText map[string]*Field                   // protected by once\n\tbyNum  map[protoreflect.FieldNumber]*Field // protected by once\n}\n\nfunc (p *Fields) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Fields) Get(i int) protoreflect.FieldDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byJSON[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byText[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byNum[n]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Fields) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Fields) lazyInit() *Fields {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Field, len(p.List))\n\t\t\tp.byJSON = make(map[string]*Field, len(p.List))\n\t\t\tp.byText = make(map[string]*Field, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byJSON[d.JSONName()]; !ok {\n\t\t\t\t\tp.byJSON[d.JSONName()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byText[d.TextName()]; !ok {\n\t\t\t\t\tp.byText[d.TextName()] = d\n\t\t\t\t}\n\t\t\t\tif isGroupLike(d) {\n\t\t\t\t\tlowerJSONName := strings.ToLower(d.JSONName())\n\t\t\t\t\tif _, ok := p.byJSON[lowerJSONName]; !ok {\n\t\t\t\t\t\tp.byJSON[lowerJSONName] = d\n\t\t\t\t\t}\n\t\t\t\t\tlowerTextName := strings.ToLower(d.TextName())\n\t\t\t\t\tif _, ok := p.byText[lowerTextName]; !ok {\n\t\t\t\t\t\tp.byText[lowerTextName] = d\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byNum[d.Number()]; !ok {\n\t\t\t\t\tp.byNum[d.Number()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Oneofs struct {\n\tList   []Oneof\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Oneof // protected by once\n}\n\nfunc (p *Oneofs) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Oneofs) Get(i int) protoreflect.OneofDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Oneofs) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Oneofs) lazyInit() *Oneofs {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Oneof, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Extensions struct {\n\tList   []Extension\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Extension // protected by once\n}\n\nfunc (p *Extensions) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Extensions) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Extensions) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Extensions) lazyInit() *Extensions {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Extension, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Services struct {\n\tList   []Service\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Service // protected by once\n}\n\nfunc (p *Services) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Services) Get(i int) protoreflect.ServiceDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Services) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Services) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Services) lazyInit() *Services {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Service, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Methods struct {\n\tList   []Method\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Method // protected by once\n}\n\nfunc (p *Methods) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Methods) Get(i int) protoreflect.MethodDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Methods) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Methods) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Methods) lazyInit() *Methods {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Method, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/editions.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/editiondefaults\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar (\n\tdefaultsCache = make(map[Edition]EditionFeatures)\n\tdefaultsKeys  = []Edition{}\n)\n\nfunc init() {\n\tunmarshalEditionDefaults(editiondefaults.Defaults)\n\tSurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2)\n\tSurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3)\n\tSurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023)\n}\n\nfunc unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {\n\tfor len(b) > 0 {\n\t\tnum, _, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch num {\n\t\tcase genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tparent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v)\n\t\tcase genid.GoFeatures_ApiLevel_field_number:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tparent.APILevel = int(v)\n\t\tcase genid.GoFeatures_StripEnumPrefix_field_number:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tparent.StripEnumPrefix = int(v)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown field number %d while unmarshalling GoFeatures\", num))\n\t\t}\n\t}\n\treturn parent\n}\n\nfunc unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSet_FieldPresence_field_number:\n\t\t\t\tparent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value\n\t\t\t\tparent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value\n\t\t\tcase genid.FeatureSet_EnumType_field_number:\n\t\t\t\tparent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value\n\t\t\tcase genid.FeatureSet_RepeatedFieldEncoding_field_number:\n\t\t\t\tparent.IsPacked = v == genid.FeatureSet_PACKED_enum_value\n\t\t\tcase genid.FeatureSet_Utf8Validation_field_number:\n\t\t\t\tparent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value\n\t\t\tcase genid.FeatureSet_MessageEncoding_field_number:\n\t\t\t\tparent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value\n\t\t\tcase genid.FeatureSet_JsonFormat_field_number:\n\t\t\t\tparent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value\n\t\t\tcase genid.FeatureSet_EnforceNamingStyle_field_number:\n\t\t\t\t// EnforceNamingStyle is enforced in protoc, languages other than C++\n\t\t\t\t// are not supposed to do anything with this feature.\n\t\t\tcase genid.FeatureSet_DefaultSymbolVisibility_field_number:\n\t\t\t\t// DefaultSymbolVisibility is enforced in protoc, runtimes should not\n\t\t\t\t// inspect this value.\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"unknown field number %d while unmarshalling FeatureSet\", num))\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSet_Go_ext_number:\n\t\t\t\tparent = unmarshalGoFeature(v, parent)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn parent\n}\n\nfunc featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures {\n\tvar parentFS EditionFeatures\n\tswitch p := parentDesc.(type) {\n\tcase *File:\n\t\tparentFS = p.L1.EditionFeatures\n\tcase *Message:\n\t\tparentFS = p.L1.EditionFeatures\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown parent type %T\", parentDesc))\n\t}\n\treturn parentFS\n}\n\nfunc unmarshalEditionDefault(b []byte) {\n\tvar ed Edition\n\tvar fs EditionFeatures\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number:\n\t\t\t\ted = Edition(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number:\n\t\t\t\tfs = unmarshalFeatureSet(v, fs)\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number:\n\t\t\t\tfs = unmarshalFeatureSet(v, fs)\n\t\t\t}\n\t\t}\n\t}\n\tdefaultsCache[ed] = fs\n\tdefaultsKeys = append(defaultsKeys, ed)\n}\n\nfunc unmarshalEditionDefaults(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, _, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch num {\n\t\tcase genid.FeatureSetDefaults_Defaults_field_number:\n\t\t\tdef, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tunmarshalEditionDefault(def)\n\t\tcase genid.FeatureSetDefaults_MinimumEdition_field_number,\n\t\t\tgenid.FeatureSetDefaults_MaximumEdition_field_number:\n\t\t\t// We don't care about the minimum and maximum editions. If the\n\t\t\t// edition we are looking for later on is not in the cache we know\n\t\t\t// it is outside of the range between minimum and maximum edition.\n\t\t\t_, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown field number %d while unmarshalling EditionDefault\", num))\n\t\t}\n\t}\n}\n\nfunc getFeaturesFor(ed Edition) EditionFeatures {\n\tmatch := EditionUnknown\n\tfor _, key := range defaultsKeys {\n\t\tif key > ed {\n\t\t\tbreak\n\t\t}\n\t\tmatch = key\n\t}\n\tif match == EditionUnknown {\n\t\tpanic(fmt.Sprintf(\"unsupported edition: %v\", ed))\n\t}\n\treturn defaultsCache[match]\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar (\n\temptyNames           = new(Names)\n\temptyEnumRanges      = new(EnumRanges)\n\temptyFieldRanges     = new(FieldRanges)\n\temptyFieldNumbers    = new(FieldNumbers)\n\temptySourceLocations = new(SourceLocations)\n\n\temptyFiles      = new(FileImports)\n\temptyMessages   = new(Messages)\n\temptyFields     = new(Fields)\n\temptyOneofs     = new(Oneofs)\n\temptyEnums      = new(Enums)\n\temptyEnumValues = new(EnumValues)\n\temptyExtensions = new(Extensions)\n\temptyServices   = new(Services)\n)\n\n// PlaceholderFile is a placeholder, representing only the file path.\ntype PlaceholderFile string\n\nfunc (f PlaceholderFile) ParentFile() protoreflect.FileDescriptor       { return f }\nfunc (f PlaceholderFile) Parent() protoreflect.Descriptor               { return nil }\nfunc (f PlaceholderFile) Index() int                                    { return 0 }\nfunc (f PlaceholderFile) Syntax() protoreflect.Syntax                   { return 0 }\nfunc (f PlaceholderFile) Name() protoreflect.Name                       { return \"\" }\nfunc (f PlaceholderFile) FullName() protoreflect.FullName               { return \"\" }\nfunc (f PlaceholderFile) IsPlaceholder() bool                           { return true }\nfunc (f PlaceholderFile) Options() protoreflect.ProtoMessage            { return descopts.File }\nfunc (f PlaceholderFile) Path() string                                  { return string(f) }\nfunc (f PlaceholderFile) Package() protoreflect.FullName                { return \"\" }\nfunc (f PlaceholderFile) Imports() protoreflect.FileImports             { return emptyFiles }\nfunc (f PlaceholderFile) Messages() protoreflect.MessageDescriptors     { return emptyMessages }\nfunc (f PlaceholderFile) Enums() protoreflect.EnumDescriptors           { return emptyEnums }\nfunc (f PlaceholderFile) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }\nfunc (f PlaceholderFile) Services() protoreflect.ServiceDescriptors     { return emptyServices }\nfunc (f PlaceholderFile) SourceLocations() protoreflect.SourceLocations { return emptySourceLocations }\nfunc (f PlaceholderFile) ProtoType(protoreflect.FileDescriptor)         { return }\nfunc (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement)           { return }\n\n// PlaceholderEnum is a placeholder, representing only the full name.\ntype PlaceholderEnum protoreflect.FullName\n\nfunc (e PlaceholderEnum) ParentFile() protoreflect.FileDescriptor   { return nil }\nfunc (e PlaceholderEnum) Parent() protoreflect.Descriptor           { return nil }\nfunc (e PlaceholderEnum) Index() int                                { return 0 }\nfunc (e PlaceholderEnum) Syntax() protoreflect.Syntax               { return 0 }\nfunc (e PlaceholderEnum) Name() protoreflect.Name                   { return protoreflect.FullName(e).Name() }\nfunc (e PlaceholderEnum) FullName() protoreflect.FullName           { return protoreflect.FullName(e) }\nfunc (e PlaceholderEnum) IsPlaceholder() bool                       { return true }\nfunc (e PlaceholderEnum) Options() protoreflect.ProtoMessage        { return descopts.Enum }\nfunc (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues }\nfunc (e PlaceholderEnum) ReservedNames() protoreflect.Names         { return emptyNames }\nfunc (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges   { return emptyEnumRanges }\nfunc (e PlaceholderEnum) IsClosed() bool                            { return false }\nfunc (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor)     { return }\nfunc (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement)       { return }\n\n// PlaceholderEnumValue is a placeholder, representing only the full name.\ntype PlaceholderEnumValue protoreflect.FullName\n\nfunc (e PlaceholderEnumValue) ParentFile() protoreflect.FileDescriptor    { return nil }\nfunc (e PlaceholderEnumValue) Parent() protoreflect.Descriptor            { return nil }\nfunc (e PlaceholderEnumValue) Index() int                                 { return 0 }\nfunc (e PlaceholderEnumValue) Syntax() protoreflect.Syntax                { return 0 }\nfunc (e PlaceholderEnumValue) Name() protoreflect.Name                    { return protoreflect.FullName(e).Name() }\nfunc (e PlaceholderEnumValue) FullName() protoreflect.FullName            { return protoreflect.FullName(e) }\nfunc (e PlaceholderEnumValue) IsPlaceholder() bool                        { return true }\nfunc (e PlaceholderEnumValue) Options() protoreflect.ProtoMessage         { return descopts.EnumValue }\nfunc (e PlaceholderEnumValue) Number() protoreflect.EnumNumber            { return 0 }\nfunc (e PlaceholderEnumValue) ProtoType(protoreflect.EnumValueDescriptor) { return }\nfunc (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement)        { return }\n\n// PlaceholderMessage is a placeholder, representing only the full name.\ntype PlaceholderMessage protoreflect.FullName\n\nfunc (m PlaceholderMessage) ParentFile() protoreflect.FileDescriptor    { return nil }\nfunc (m PlaceholderMessage) Parent() protoreflect.Descriptor            { return nil }\nfunc (m PlaceholderMessage) Index() int                                 { return 0 }\nfunc (m PlaceholderMessage) Syntax() protoreflect.Syntax                { return 0 }\nfunc (m PlaceholderMessage) Name() protoreflect.Name                    { return protoreflect.FullName(m).Name() }\nfunc (m PlaceholderMessage) FullName() protoreflect.FullName            { return protoreflect.FullName(m) }\nfunc (m PlaceholderMessage) IsPlaceholder() bool                        { return true }\nfunc (m PlaceholderMessage) Options() protoreflect.ProtoMessage         { return descopts.Message }\nfunc (m PlaceholderMessage) IsMapEntry() bool                           { return false }\nfunc (m PlaceholderMessage) Fields() protoreflect.FieldDescriptors      { return emptyFields }\nfunc (m PlaceholderMessage) Oneofs() protoreflect.OneofDescriptors      { return emptyOneofs }\nfunc (m PlaceholderMessage) ReservedNames() protoreflect.Names          { return emptyNames }\nfunc (m PlaceholderMessage) ReservedRanges() protoreflect.FieldRanges   { return emptyFieldRanges }\nfunc (m PlaceholderMessage) RequiredNumbers() protoreflect.FieldNumbers { return emptyFieldNumbers }\nfunc (m PlaceholderMessage) ExtensionRanges() protoreflect.FieldRanges  { return emptyFieldRanges }\nfunc (m PlaceholderMessage) ExtensionRangeOptions(int) protoreflect.ProtoMessage {\n\tpanic(\"index out of range\")\n}\nfunc (m PlaceholderMessage) Messages() protoreflect.MessageDescriptors     { return emptyMessages }\nfunc (m PlaceholderMessage) Enums() protoreflect.EnumDescriptors           { return emptyEnums }\nfunc (m PlaceholderMessage) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }\nfunc (m PlaceholderMessage) ProtoType(protoreflect.MessageDescriptor)      { return }\nfunc (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement)           { return }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/presence.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// UsePresenceForField reports whether the presence bitmap should be used for\n// the specified field.\nfunc UsePresenceForField(fd protoreflect.FieldDescriptor) (usePresence, canBeLazy bool) {\n\tswitch {\n\tcase fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():\n\t\t// Oneof fields never use the presence bitmap.\n\t\t//\n\t\t// Synthetic oneofs are an exception: Those are used to implement proto3\n\t\t// optional fields and hence should follow non-oneof field semantics.\n\t\treturn false, false\n\n\tcase fd.IsMap():\n\t\t// Map-typed fields never use the presence bitmap.\n\t\treturn false, false\n\n\tcase fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind:\n\t\t// Lazy fields always use the presence bitmap (only messages can be lazy).\n\t\tisLazy := fd.(interface{ IsLazy() bool }).IsLazy()\n\t\treturn isLazy, isLazy\n\n\tdefault:\n\t\t// If the field has presence, use the presence bitmap.\n\t\treturn fd.HasPresence(), false\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filetype/build.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package filetype provides functionality for wrapping descriptors\n// with Go type information.\npackage filetype\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\tpimpl \"google.golang.org/protobuf/internal/impl\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Builder constructs type descriptors from a raw file descriptor\n// and associated Go types for each enum and message declaration.\n//\n// # Flattened Ordering\n//\n// The protobuf type system represents declarations as a tree. Certain nodes in\n// the tree require us to either associate it with a concrete Go type or to\n// resolve a dependency, which is information that must be provided separately\n// since it cannot be derived from the file descriptor alone.\n//\n// However, representing a tree as Go literals is difficult to simply do in a\n// space and time efficient way. Thus, we store them as a flattened list of\n// objects where the serialization order from the tree-based form is important.\n//\n// The \"flattened ordering\" is defined as a tree traversal of all enum, message,\n// extension, and service declarations using the following algorithm:\n//\n//\tdef VisitFileDecls(fd):\n//\t\tfor e in fd.Enums:      yield e\n//\t\tfor m in fd.Messages:   yield m\n//\t\tfor x in fd.Extensions: yield x\n//\t\tfor s in fd.Services:   yield s\n//\t\tfor m in fd.Messages:   yield from VisitMessageDecls(m)\n//\n//\tdef VisitMessageDecls(md):\n//\t\tfor e in md.Enums:      yield e\n//\t\tfor m in md.Messages:   yield m\n//\t\tfor x in md.Extensions: yield x\n//\t\tfor m in md.Messages:   yield from VisitMessageDecls(m)\n//\n// The traversal starts at the root file descriptor and yields each direct\n// declaration within each node before traversing into sub-declarations\n// that children themselves may have.\ntype Builder struct {\n\t// File is the underlying file descriptor builder.\n\tFile filedesc.Builder\n\n\t// GoTypes is a unique set of the Go types for all declarations and\n\t// dependencies. Each type is represented as a zero value of the Go type.\n\t//\n\t// Declarations are Go types generated for enums and messages directly\n\t// declared (not publicly imported) in the proto source file.\n\t// Messages for map entries are accounted for, but represented by nil.\n\t// Enum declarations in \"flattened ordering\" come first, followed by\n\t// message declarations in \"flattened ordering\".\n\t//\n\t// Dependencies are Go types for enums or messages referenced by\n\t// message fields, for parent extended messages of\n\t// extension fields, for enums or messages referenced by extension fields,\n\t// and for input and output messages referenced by service methods.\n\t// Dependencies must come after declarations, but the ordering of\n\t// dependencies themselves is unspecified.\n\tGoTypes []any\n\n\t// DependencyIndexes is an ordered list of indexes into GoTypes for the\n\t// dependencies of messages, extensions, or services.\n\t//\n\t// There are 5 sub-lists in \"flattened ordering\" concatenated back-to-back:\n\t//\t0. Message field dependencies: list of the enum or message type\n\t//\treferred to by every message field.\n\t//\t1. Extension field targets: list of the extended parent message of\n\t//\tevery extension.\n\t//\t2. Extension field dependencies: list of the enum or message type\n\t//\treferred to by every extension field.\n\t//\t3. Service method inputs: list of the input message type\n\t//\treferred to by every service method.\n\t//\t4. Service method outputs: list of the output message type\n\t//\treferred to by every service method.\n\t//\n\t// The offset into DependencyIndexes for the start of each sub-list\n\t// is appended to the end in reverse order.\n\tDependencyIndexes []int32\n\n\t// EnumInfos is a list of enum infos in \"flattened ordering\".\n\tEnumInfos []pimpl.EnumInfo\n\n\t// MessageInfos is a list of message infos in \"flattened ordering\".\n\t// If provided, the GoType and PBType for each element is populated.\n\t//\n\t// Requirement: len(MessageInfos) == len(Build.Messages)\n\tMessageInfos []pimpl.MessageInfo\n\n\t// ExtensionInfos is a list of extension infos in \"flattened ordering\".\n\t// Each element is initialized and registered with the protoregistry package.\n\t//\n\t// Requirement: len(LegacyExtensions) == len(Build.Extensions)\n\tExtensionInfos []pimpl.ExtensionInfo\n\n\t// TypeRegistry is the registry to register each type descriptor.\n\t// If nil, it uses protoregistry.GlobalTypes.\n\tTypeRegistry interface {\n\t\tRegisterMessage(protoreflect.MessageType) error\n\t\tRegisterEnum(protoreflect.EnumType) error\n\t\tRegisterExtension(protoreflect.ExtensionType) error\n\t}\n}\n\n// Out is the output of the builder.\ntype Out struct {\n\tFile protoreflect.FileDescriptor\n}\n\nfunc (tb Builder) Build() (out Out) {\n\t// Replace the resolver with one that resolves dependencies by index,\n\t// which is faster and more reliable than relying on the global registry.\n\tif tb.File.FileRegistry == nil {\n\t\ttb.File.FileRegistry = protoregistry.GlobalFiles\n\t}\n\ttb.File.FileRegistry = &resolverByIndex{\n\t\tgoTypes:      tb.GoTypes,\n\t\tdepIdxs:      tb.DependencyIndexes,\n\t\tfileRegistry: tb.File.FileRegistry,\n\t}\n\n\t// Initialize registry if unpopulated.\n\tif tb.TypeRegistry == nil {\n\t\ttb.TypeRegistry = protoregistry.GlobalTypes\n\t}\n\n\tfbOut := tb.File.Build()\n\tout.File = fbOut.File\n\n\t// Process enums.\n\tenumGoTypes := tb.GoTypes[:len(fbOut.Enums)]\n\tif len(tb.EnumInfos) != len(fbOut.Enums) {\n\t\tpanic(\"mismatching enum lengths\")\n\t}\n\tif len(fbOut.Enums) > 0 {\n\t\tfor i := range fbOut.Enums {\n\t\t\ttb.EnumInfos[i] = pimpl.EnumInfo{\n\t\t\t\tGoReflectType: reflect.TypeOf(enumGoTypes[i]),\n\t\t\t\tDesc:          &fbOut.Enums[i],\n\t\t\t}\n\t\t\t// Register enum types.\n\t\t\tif err := tb.TypeRegistry.RegisterEnum(&tb.EnumInfos[i]); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Process messages.\n\tmessageGoTypes := tb.GoTypes[len(fbOut.Enums):][:len(fbOut.Messages)]\n\tif len(tb.MessageInfos) != len(fbOut.Messages) {\n\t\tpanic(\"mismatching message lengths\")\n\t}\n\tif len(fbOut.Messages) > 0 {\n\t\tfor i := range fbOut.Messages {\n\t\t\tif messageGoTypes[i] == nil {\n\t\t\t\tcontinue // skip map entry\n\t\t\t}\n\n\t\t\ttb.MessageInfos[i].GoReflectType = reflect.TypeOf(messageGoTypes[i])\n\t\t\ttb.MessageInfos[i].Desc = &fbOut.Messages[i]\n\n\t\t\t// Register message types.\n\t\t\tif err := tb.TypeRegistry.RegisterMessage(&tb.MessageInfos[i]); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\n\t\t// As a special-case for descriptor.proto,\n\t\t// locally register concrete message type for the options.\n\t\tif out.File.Path() == \"google/protobuf/descriptor.proto\" && out.File.Package() == \"google.protobuf\" {\n\t\t\tfor i := range fbOut.Messages {\n\t\t\t\tswitch fbOut.Messages[i].Name() {\n\t\t\t\tcase \"FileOptions\":\n\t\t\t\t\tdescopts.File = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"EnumOptions\":\n\t\t\t\t\tdescopts.Enum = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"EnumValueOptions\":\n\t\t\t\t\tdescopts.EnumValue = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"MessageOptions\":\n\t\t\t\t\tdescopts.Message = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"FieldOptions\":\n\t\t\t\t\tdescopts.Field = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"OneofOptions\":\n\t\t\t\t\tdescopts.Oneof = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"ExtensionRangeOptions\":\n\t\t\t\t\tdescopts.ExtensionRange = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"ServiceOptions\":\n\t\t\t\t\tdescopts.Service = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"MethodOptions\":\n\t\t\t\t\tdescopts.Method = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Process extensions.\n\tif len(tb.ExtensionInfos) != len(fbOut.Extensions) {\n\t\tpanic(\"mismatching extension lengths\")\n\t}\n\tvar depIdx int32\n\tfor i := range fbOut.Extensions {\n\t\t// For enum and message kinds, determine the referent Go type so\n\t\t// that we can construct their constructors.\n\t\tconst listExtDeps = 2\n\t\tvar goType reflect.Type\n\t\tswitch fbOut.Extensions[i].L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\tj := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)\n\t\t\tgoType = reflect.TypeOf(tb.GoTypes[j])\n\t\t\tdepIdx++\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\tj := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)\n\t\t\tgoType = reflect.TypeOf(tb.GoTypes[j])\n\t\t\tdepIdx++\n\t\tdefault:\n\t\t\tgoType = goTypeForPBKind[fbOut.Extensions[i].L1.Kind]\n\t\t}\n\t\tif fbOut.Extensions[i].IsList() {\n\t\t\tgoType = reflect.SliceOf(goType)\n\t\t}\n\n\t\tpimpl.InitExtensionInfo(&tb.ExtensionInfos[i], &fbOut.Extensions[i], goType)\n\n\t\t// Register extension types.\n\t\tif err := tb.TypeRegistry.RegisterExtension(&tb.ExtensionInfos[i]); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\treturn out\n}\n\nvar goTypeForPBKind = map[protoreflect.Kind]reflect.Type{\n\tprotoreflect.BoolKind:     reflect.TypeOf(bool(false)),\n\tprotoreflect.Int32Kind:    reflect.TypeOf(int32(0)),\n\tprotoreflect.Sint32Kind:   reflect.TypeOf(int32(0)),\n\tprotoreflect.Sfixed32Kind: reflect.TypeOf(int32(0)),\n\tprotoreflect.Int64Kind:    reflect.TypeOf(int64(0)),\n\tprotoreflect.Sint64Kind:   reflect.TypeOf(int64(0)),\n\tprotoreflect.Sfixed64Kind: reflect.TypeOf(int64(0)),\n\tprotoreflect.Uint32Kind:   reflect.TypeOf(uint32(0)),\n\tprotoreflect.Fixed32Kind:  reflect.TypeOf(uint32(0)),\n\tprotoreflect.Uint64Kind:   reflect.TypeOf(uint64(0)),\n\tprotoreflect.Fixed64Kind:  reflect.TypeOf(uint64(0)),\n\tprotoreflect.FloatKind:    reflect.TypeOf(float32(0)),\n\tprotoreflect.DoubleKind:   reflect.TypeOf(float64(0)),\n\tprotoreflect.StringKind:   reflect.TypeOf(string(\"\")),\n\tprotoreflect.BytesKind:    reflect.TypeOf([]byte(nil)),\n}\n\ntype depIdxs []int32\n\n// Get retrieves the jth element of the ith sub-list.\nfunc (x depIdxs) Get(i, j int32) int32 {\n\treturn x[x[int32(len(x))-i-1]+j]\n}\n\ntype (\n\tresolverByIndex struct {\n\t\tgoTypes []any\n\t\tdepIdxs depIdxs\n\t\tfileRegistry\n\t}\n\tfileRegistry interface {\n\t\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\t\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n\t\tRegisterFile(protoreflect.FileDescriptor) error\n\t}\n)\n\nfunc (r *resolverByIndex) FindEnumByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.EnumDescriptor {\n\tif depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) {\n\t\treturn &es[depIdx]\n\t} else {\n\t\treturn pimpl.Export{}.EnumDescriptorOf(r.goTypes[depIdx])\n\t}\n}\n\nfunc (r *resolverByIndex) FindMessageByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.MessageDescriptor {\n\tif depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) {\n\t\treturn &ms[depIdx-len(es)]\n\t} else {\n\t\treturn pimpl.Export{}.MessageDescriptorOf(r.goTypes[depIdx])\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/flags.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package flags provides a set of flags controlled by build tags.\npackage flags\n\n// ProtoLegacy specifies whether to enable support for legacy functionality\n// such as MessageSets, and various other obscure behavior\n// that is necessary to maintain backwards compatibility with proto1 or\n// the pre-release variants of proto2 and proto3.\n//\n// This is disabled by default unless built with the \"protolegacy\" tag.\n//\n// WARNING: The compatibility agreement covers nothing provided by this flag.\n// As such, functionality may suddenly be removed or changed at our discretion.\nconst ProtoLegacy = protoLegacy\n\n// LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions.\n//\n// Lazy extension unmarshaling validates the contents of message-valued\n// extension fields at unmarshal time, but defers creating the message\n// structure until the extension is first accessed.\nconst LazyUnmarshalExtensions = ProtoLegacy\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !protolegacy\n// +build !protolegacy\n\npackage flags\n\nconst protoLegacy = false\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build protolegacy\n// +build protolegacy\n\npackage flags\n\nconst protoLegacy = true\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/any_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_any_proto = \"google/protobuf/any.proto\"\n\n// Names for google.protobuf.Any.\nconst (\n\tAny_message_name     protoreflect.Name     = \"Any\"\n\tAny_message_fullname protoreflect.FullName = \"google.protobuf.Any\"\n)\n\n// Field names for google.protobuf.Any.\nconst (\n\tAny_TypeUrl_field_name protoreflect.Name = \"type_url\"\n\tAny_Value_field_name   protoreflect.Name = \"value\"\n\n\tAny_TypeUrl_field_fullname protoreflect.FullName = \"google.protobuf.Any.type_url\"\n\tAny_Value_field_fullname   protoreflect.FullName = \"google.protobuf.Any.value\"\n)\n\n// Field numbers for google.protobuf.Any.\nconst (\n\tAny_TypeUrl_field_number protoreflect.FieldNumber = 1\n\tAny_Value_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/api_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_api_proto = \"google/protobuf/api.proto\"\n\n// Names for google.protobuf.Api.\nconst (\n\tApi_message_name     protoreflect.Name     = \"Api\"\n\tApi_message_fullname protoreflect.FullName = \"google.protobuf.Api\"\n)\n\n// Field names for google.protobuf.Api.\nconst (\n\tApi_Name_field_name          protoreflect.Name = \"name\"\n\tApi_Methods_field_name       protoreflect.Name = \"methods\"\n\tApi_Options_field_name       protoreflect.Name = \"options\"\n\tApi_Version_field_name       protoreflect.Name = \"version\"\n\tApi_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tApi_Mixins_field_name        protoreflect.Name = \"mixins\"\n\tApi_Syntax_field_name        protoreflect.Name = \"syntax\"\n\tApi_Edition_field_name       protoreflect.Name = \"edition\"\n\n\tApi_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Api.name\"\n\tApi_Methods_field_fullname       protoreflect.FullName = \"google.protobuf.Api.methods\"\n\tApi_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Api.options\"\n\tApi_Version_field_fullname       protoreflect.FullName = \"google.protobuf.Api.version\"\n\tApi_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Api.source_context\"\n\tApi_Mixins_field_fullname        protoreflect.FullName = \"google.protobuf.Api.mixins\"\n\tApi_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Api.syntax\"\n\tApi_Edition_field_fullname       protoreflect.FullName = \"google.protobuf.Api.edition\"\n)\n\n// Field numbers for google.protobuf.Api.\nconst (\n\tApi_Name_field_number          protoreflect.FieldNumber = 1\n\tApi_Methods_field_number       protoreflect.FieldNumber = 2\n\tApi_Options_field_number       protoreflect.FieldNumber = 3\n\tApi_Version_field_number       protoreflect.FieldNumber = 4\n\tApi_SourceContext_field_number protoreflect.FieldNumber = 5\n\tApi_Mixins_field_number        protoreflect.FieldNumber = 6\n\tApi_Syntax_field_number        protoreflect.FieldNumber = 7\n\tApi_Edition_field_number       protoreflect.FieldNumber = 8\n)\n\n// Names for google.protobuf.Method.\nconst (\n\tMethod_message_name     protoreflect.Name     = \"Method\"\n\tMethod_message_fullname protoreflect.FullName = \"google.protobuf.Method\"\n)\n\n// Field names for google.protobuf.Method.\nconst (\n\tMethod_Name_field_name              protoreflect.Name = \"name\"\n\tMethod_RequestTypeUrl_field_name    protoreflect.Name = \"request_type_url\"\n\tMethod_RequestStreaming_field_name  protoreflect.Name = \"request_streaming\"\n\tMethod_ResponseTypeUrl_field_name   protoreflect.Name = \"response_type_url\"\n\tMethod_ResponseStreaming_field_name protoreflect.Name = \"response_streaming\"\n\tMethod_Options_field_name           protoreflect.Name = \"options\"\n\tMethod_Syntax_field_name            protoreflect.Name = \"syntax\"\n\tMethod_Edition_field_name           protoreflect.Name = \"edition\"\n\n\tMethod_Name_field_fullname              protoreflect.FullName = \"google.protobuf.Method.name\"\n\tMethod_RequestTypeUrl_field_fullname    protoreflect.FullName = \"google.protobuf.Method.request_type_url\"\n\tMethod_RequestStreaming_field_fullname  protoreflect.FullName = \"google.protobuf.Method.request_streaming\"\n\tMethod_ResponseTypeUrl_field_fullname   protoreflect.FullName = \"google.protobuf.Method.response_type_url\"\n\tMethod_ResponseStreaming_field_fullname protoreflect.FullName = \"google.protobuf.Method.response_streaming\"\n\tMethod_Options_field_fullname           protoreflect.FullName = \"google.protobuf.Method.options\"\n\tMethod_Syntax_field_fullname            protoreflect.FullName = \"google.protobuf.Method.syntax\"\n\tMethod_Edition_field_fullname           protoreflect.FullName = \"google.protobuf.Method.edition\"\n)\n\n// Field numbers for google.protobuf.Method.\nconst (\n\tMethod_Name_field_number              protoreflect.FieldNumber = 1\n\tMethod_RequestTypeUrl_field_number    protoreflect.FieldNumber = 2\n\tMethod_RequestStreaming_field_number  protoreflect.FieldNumber = 3\n\tMethod_ResponseTypeUrl_field_number   protoreflect.FieldNumber = 4\n\tMethod_ResponseStreaming_field_number protoreflect.FieldNumber = 5\n\tMethod_Options_field_number           protoreflect.FieldNumber = 6\n\tMethod_Syntax_field_number            protoreflect.FieldNumber = 7\n\tMethod_Edition_field_number           protoreflect.FieldNumber = 8\n)\n\n// Names for google.protobuf.Mixin.\nconst (\n\tMixin_message_name     protoreflect.Name     = \"Mixin\"\n\tMixin_message_fullname protoreflect.FullName = \"google.protobuf.Mixin\"\n)\n\n// Field names for google.protobuf.Mixin.\nconst (\n\tMixin_Name_field_name protoreflect.Name = \"name\"\n\tMixin_Root_field_name protoreflect.Name = \"root\"\n\n\tMixin_Name_field_fullname protoreflect.FullName = \"google.protobuf.Mixin.name\"\n\tMixin_Root_field_fullname protoreflect.FullName = \"google.protobuf.Mixin.root\"\n)\n\n// Field numbers for google.protobuf.Mixin.\nconst (\n\tMixin_Name_field_number protoreflect.FieldNumber = 1\n\tMixin_Root_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_descriptor_proto = \"google/protobuf/descriptor.proto\"\n\n// Full and short names for google.protobuf.Edition.\nconst (\n\tEdition_enum_fullname = \"google.protobuf.Edition\"\n\tEdition_enum_name     = \"Edition\"\n)\n\n// Enum values for google.protobuf.Edition.\nconst (\n\tEdition_EDITION_UNKNOWN_enum_value         = 0\n\tEdition_EDITION_LEGACY_enum_value          = 900\n\tEdition_EDITION_PROTO2_enum_value          = 998\n\tEdition_EDITION_PROTO3_enum_value          = 999\n\tEdition_EDITION_2023_enum_value            = 1000\n\tEdition_EDITION_2024_enum_value            = 1001\n\tEdition_EDITION_1_TEST_ONLY_enum_value     = 1\n\tEdition_EDITION_2_TEST_ONLY_enum_value     = 2\n\tEdition_EDITION_99997_TEST_ONLY_enum_value = 99997\n\tEdition_EDITION_99998_TEST_ONLY_enum_value = 99998\n\tEdition_EDITION_99999_TEST_ONLY_enum_value = 99999\n\tEdition_EDITION_MAX_enum_value             = 2147483647\n)\n\n// Full and short names for google.protobuf.SymbolVisibility.\nconst (\n\tSymbolVisibility_enum_fullname = \"google.protobuf.SymbolVisibility\"\n\tSymbolVisibility_enum_name     = \"SymbolVisibility\"\n)\n\n// Enum values for google.protobuf.SymbolVisibility.\nconst (\n\tSymbolVisibility_VISIBILITY_UNSET_enum_value  = 0\n\tSymbolVisibility_VISIBILITY_LOCAL_enum_value  = 1\n\tSymbolVisibility_VISIBILITY_EXPORT_enum_value = 2\n)\n\n// Names for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_message_name     protoreflect.Name     = \"FileDescriptorSet\"\n\tFileDescriptorSet_message_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorSet\"\n)\n\n// Field names for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_File_field_name protoreflect.Name = \"file\"\n\n\tFileDescriptorSet_File_field_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorSet.file\"\n)\n\n// Field numbers for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_File_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_message_name     protoreflect.Name     = \"FileDescriptorProto\"\n\tFileDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorProto\"\n)\n\n// Field names for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_Name_field_name             protoreflect.Name = \"name\"\n\tFileDescriptorProto_Package_field_name          protoreflect.Name = \"package\"\n\tFileDescriptorProto_Dependency_field_name       protoreflect.Name = \"dependency\"\n\tFileDescriptorProto_PublicDependency_field_name protoreflect.Name = \"public_dependency\"\n\tFileDescriptorProto_WeakDependency_field_name   protoreflect.Name = \"weak_dependency\"\n\tFileDescriptorProto_OptionDependency_field_name protoreflect.Name = \"option_dependency\"\n\tFileDescriptorProto_MessageType_field_name      protoreflect.Name = \"message_type\"\n\tFileDescriptorProto_EnumType_field_name         protoreflect.Name = \"enum_type\"\n\tFileDescriptorProto_Service_field_name          protoreflect.Name = \"service\"\n\tFileDescriptorProto_Extension_field_name        protoreflect.Name = \"extension\"\n\tFileDescriptorProto_Options_field_name          protoreflect.Name = \"options\"\n\tFileDescriptorProto_SourceCodeInfo_field_name   protoreflect.Name = \"source_code_info\"\n\tFileDescriptorProto_Syntax_field_name           protoreflect.Name = \"syntax\"\n\tFileDescriptorProto_Edition_field_name          protoreflect.Name = \"edition\"\n\n\tFileDescriptorProto_Name_field_fullname             protoreflect.FullName = \"google.protobuf.FileDescriptorProto.name\"\n\tFileDescriptorProto_Package_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.package\"\n\tFileDescriptorProto_Dependency_field_fullname       protoreflect.FullName = \"google.protobuf.FileDescriptorProto.dependency\"\n\tFileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorProto.public_dependency\"\n\tFileDescriptorProto_WeakDependency_field_fullname   protoreflect.FullName = \"google.protobuf.FileDescriptorProto.weak_dependency\"\n\tFileDescriptorProto_OptionDependency_field_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorProto.option_dependency\"\n\tFileDescriptorProto_MessageType_field_fullname      protoreflect.FullName = \"google.protobuf.FileDescriptorProto.message_type\"\n\tFileDescriptorProto_EnumType_field_fullname         protoreflect.FullName = \"google.protobuf.FileDescriptorProto.enum_type\"\n\tFileDescriptorProto_Service_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.service\"\n\tFileDescriptorProto_Extension_field_fullname        protoreflect.FullName = \"google.protobuf.FileDescriptorProto.extension\"\n\tFileDescriptorProto_Options_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.options\"\n\tFileDescriptorProto_SourceCodeInfo_field_fullname   protoreflect.FullName = \"google.protobuf.FileDescriptorProto.source_code_info\"\n\tFileDescriptorProto_Syntax_field_fullname           protoreflect.FullName = \"google.protobuf.FileDescriptorProto.syntax\"\n\tFileDescriptorProto_Edition_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.edition\"\n)\n\n// Field numbers for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_Name_field_number             protoreflect.FieldNumber = 1\n\tFileDescriptorProto_Package_field_number          protoreflect.FieldNumber = 2\n\tFileDescriptorProto_Dependency_field_number       protoreflect.FieldNumber = 3\n\tFileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10\n\tFileDescriptorProto_WeakDependency_field_number   protoreflect.FieldNumber = 11\n\tFileDescriptorProto_OptionDependency_field_number protoreflect.FieldNumber = 15\n\tFileDescriptorProto_MessageType_field_number      protoreflect.FieldNumber = 4\n\tFileDescriptorProto_EnumType_field_number         protoreflect.FieldNumber = 5\n\tFileDescriptorProto_Service_field_number          protoreflect.FieldNumber = 6\n\tFileDescriptorProto_Extension_field_number        protoreflect.FieldNumber = 7\n\tFileDescriptorProto_Options_field_number          protoreflect.FieldNumber = 8\n\tFileDescriptorProto_SourceCodeInfo_field_number   protoreflect.FieldNumber = 9\n\tFileDescriptorProto_Syntax_field_number           protoreflect.FieldNumber = 12\n\tFileDescriptorProto_Edition_field_number          protoreflect.FieldNumber = 14\n)\n\n// Names for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_message_name     protoreflect.Name     = \"DescriptorProto\"\n\tDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto\"\n)\n\n// Field names for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_Name_field_name           protoreflect.Name = \"name\"\n\tDescriptorProto_Field_field_name          protoreflect.Name = \"field\"\n\tDescriptorProto_Extension_field_name      protoreflect.Name = \"extension\"\n\tDescriptorProto_NestedType_field_name     protoreflect.Name = \"nested_type\"\n\tDescriptorProto_EnumType_field_name       protoreflect.Name = \"enum_type\"\n\tDescriptorProto_ExtensionRange_field_name protoreflect.Name = \"extension_range\"\n\tDescriptorProto_OneofDecl_field_name      protoreflect.Name = \"oneof_decl\"\n\tDescriptorProto_Options_field_name        protoreflect.Name = \"options\"\n\tDescriptorProto_ReservedRange_field_name  protoreflect.Name = \"reserved_range\"\n\tDescriptorProto_ReservedName_field_name   protoreflect.Name = \"reserved_name\"\n\tDescriptorProto_Visibility_field_name     protoreflect.Name = \"visibility\"\n\n\tDescriptorProto_Name_field_fullname           protoreflect.FullName = \"google.protobuf.DescriptorProto.name\"\n\tDescriptorProto_Field_field_fullname          protoreflect.FullName = \"google.protobuf.DescriptorProto.field\"\n\tDescriptorProto_Extension_field_fullname      protoreflect.FullName = \"google.protobuf.DescriptorProto.extension\"\n\tDescriptorProto_NestedType_field_fullname     protoreflect.FullName = \"google.protobuf.DescriptorProto.nested_type\"\n\tDescriptorProto_EnumType_field_fullname       protoreflect.FullName = \"google.protobuf.DescriptorProto.enum_type\"\n\tDescriptorProto_ExtensionRange_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.extension_range\"\n\tDescriptorProto_OneofDecl_field_fullname      protoreflect.FullName = \"google.protobuf.DescriptorProto.oneof_decl\"\n\tDescriptorProto_Options_field_fullname        protoreflect.FullName = \"google.protobuf.DescriptorProto.options\"\n\tDescriptorProto_ReservedRange_field_fullname  protoreflect.FullName = \"google.protobuf.DescriptorProto.reserved_range\"\n\tDescriptorProto_ReservedName_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.reserved_name\"\n\tDescriptorProto_Visibility_field_fullname     protoreflect.FullName = \"google.protobuf.DescriptorProto.visibility\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_Name_field_number           protoreflect.FieldNumber = 1\n\tDescriptorProto_Field_field_number          protoreflect.FieldNumber = 2\n\tDescriptorProto_Extension_field_number      protoreflect.FieldNumber = 6\n\tDescriptorProto_NestedType_field_number     protoreflect.FieldNumber = 3\n\tDescriptorProto_EnumType_field_number       protoreflect.FieldNumber = 4\n\tDescriptorProto_ExtensionRange_field_number protoreflect.FieldNumber = 5\n\tDescriptorProto_OneofDecl_field_number      protoreflect.FieldNumber = 8\n\tDescriptorProto_Options_field_number        protoreflect.FieldNumber = 7\n\tDescriptorProto_ReservedRange_field_number  protoreflect.FieldNumber = 9\n\tDescriptorProto_ReservedName_field_number   protoreflect.FieldNumber = 10\n\tDescriptorProto_Visibility_field_number     protoreflect.FieldNumber = 11\n)\n\n// Names for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_message_name     protoreflect.Name     = \"ExtensionRange\"\n\tDescriptorProto_ExtensionRange_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange\"\n)\n\n// Field names for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_Start_field_name   protoreflect.Name = \"start\"\n\tDescriptorProto_ExtensionRange_End_field_name     protoreflect.Name = \"end\"\n\tDescriptorProto_ExtensionRange_Options_field_name protoreflect.Name = \"options\"\n\n\tDescriptorProto_ExtensionRange_Start_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.start\"\n\tDescriptorProto_ExtensionRange_End_field_fullname     protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.end\"\n\tDescriptorProto_ExtensionRange_Options_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.options\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_Start_field_number   protoreflect.FieldNumber = 1\n\tDescriptorProto_ExtensionRange_End_field_number     protoreflect.FieldNumber = 2\n\tDescriptorProto_ExtensionRange_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_message_name     protoreflect.Name     = \"ReservedRange\"\n\tDescriptorProto_ReservedRange_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange\"\n)\n\n// Field names for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_Start_field_name protoreflect.Name = \"start\"\n\tDescriptorProto_ReservedRange_End_field_name   protoreflect.Name = \"end\"\n\n\tDescriptorProto_ReservedRange_Start_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange.start\"\n\tDescriptorProto_ReservedRange_End_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange.end\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_Start_field_number protoreflect.FieldNumber = 1\n\tDescriptorProto_ReservedRange_End_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_message_name     protoreflect.Name     = \"ExtensionRangeOptions\"\n\tExtensionRangeOptions_message_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions\"\n)\n\n// Field names for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\tExtensionRangeOptions_Declaration_field_name         protoreflect.Name = \"declaration\"\n\tExtensionRangeOptions_Features_field_name            protoreflect.Name = \"features\"\n\tExtensionRangeOptions_Verification_field_name        protoreflect.Name = \"verification\"\n\n\tExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.uninterpreted_option\"\n\tExtensionRangeOptions_Declaration_field_fullname         protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.declaration\"\n\tExtensionRangeOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.features\"\n\tExtensionRangeOptions_Verification_field_fullname        protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.verification\"\n)\n\n// Field numbers for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n\tExtensionRangeOptions_Declaration_field_number         protoreflect.FieldNumber = 2\n\tExtensionRangeOptions_Features_field_number            protoreflect.FieldNumber = 50\n\tExtensionRangeOptions_Verification_field_number        protoreflect.FieldNumber = 3\n)\n\n// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState.\nconst (\n\tExtensionRangeOptions_VerificationState_enum_fullname = \"google.protobuf.ExtensionRangeOptions.VerificationState\"\n\tExtensionRangeOptions_VerificationState_enum_name     = \"VerificationState\"\n)\n\n// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState.\nconst (\n\tExtensionRangeOptions_DECLARATION_enum_value = 0\n\tExtensionRangeOptions_UNVERIFIED_enum_value  = 1\n)\n\n// Names for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_message_name     protoreflect.Name     = \"Declaration\"\n\tExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration\"\n)\n\n// Field names for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_Number_field_name   protoreflect.Name = \"number\"\n\tExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = \"full_name\"\n\tExtensionRangeOptions_Declaration_Type_field_name     protoreflect.Name = \"type\"\n\tExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = \"reserved\"\n\tExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = \"repeated\"\n\n\tExtensionRangeOptions_Declaration_Number_field_fullname   protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.number\"\n\tExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.full_name\"\n\tExtensionRangeOptions_Declaration_Type_field_fullname     protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.type\"\n\tExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.reserved\"\n\tExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.repeated\"\n)\n\n// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_Number_field_number   protoreflect.FieldNumber = 1\n\tExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2\n\tExtensionRangeOptions_Declaration_Type_field_number     protoreflect.FieldNumber = 3\n\tExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5\n\tExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_message_name     protoreflect.Name     = \"FieldDescriptorProto\"\n\tFieldDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.FieldDescriptorProto\"\n)\n\n// Field names for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_Name_field_name           protoreflect.Name = \"name\"\n\tFieldDescriptorProto_Number_field_name         protoreflect.Name = \"number\"\n\tFieldDescriptorProto_Label_field_name          protoreflect.Name = \"label\"\n\tFieldDescriptorProto_Type_field_name           protoreflect.Name = \"type\"\n\tFieldDescriptorProto_TypeName_field_name       protoreflect.Name = \"type_name\"\n\tFieldDescriptorProto_Extendee_field_name       protoreflect.Name = \"extendee\"\n\tFieldDescriptorProto_DefaultValue_field_name   protoreflect.Name = \"default_value\"\n\tFieldDescriptorProto_OneofIndex_field_name     protoreflect.Name = \"oneof_index\"\n\tFieldDescriptorProto_JsonName_field_name       protoreflect.Name = \"json_name\"\n\tFieldDescriptorProto_Options_field_name        protoreflect.Name = \"options\"\n\tFieldDescriptorProto_Proto3Optional_field_name protoreflect.Name = \"proto3_optional\"\n\n\tFieldDescriptorProto_Name_field_fullname           protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.name\"\n\tFieldDescriptorProto_Number_field_fullname         protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.number\"\n\tFieldDescriptorProto_Label_field_fullname          protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.label\"\n\tFieldDescriptorProto_Type_field_fullname           protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.type\"\n\tFieldDescriptorProto_TypeName_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.type_name\"\n\tFieldDescriptorProto_Extendee_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.extendee\"\n\tFieldDescriptorProto_DefaultValue_field_fullname   protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.default_value\"\n\tFieldDescriptorProto_OneofIndex_field_fullname     protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.oneof_index\"\n\tFieldDescriptorProto_JsonName_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.json_name\"\n\tFieldDescriptorProto_Options_field_fullname        protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.options\"\n\tFieldDescriptorProto_Proto3Optional_field_fullname protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.proto3_optional\"\n)\n\n// Field numbers for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_Name_field_number           protoreflect.FieldNumber = 1\n\tFieldDescriptorProto_Number_field_number         protoreflect.FieldNumber = 3\n\tFieldDescriptorProto_Label_field_number          protoreflect.FieldNumber = 4\n\tFieldDescriptorProto_Type_field_number           protoreflect.FieldNumber = 5\n\tFieldDescriptorProto_TypeName_field_number       protoreflect.FieldNumber = 6\n\tFieldDescriptorProto_Extendee_field_number       protoreflect.FieldNumber = 2\n\tFieldDescriptorProto_DefaultValue_field_number   protoreflect.FieldNumber = 7\n\tFieldDescriptorProto_OneofIndex_field_number     protoreflect.FieldNumber = 9\n\tFieldDescriptorProto_JsonName_field_number       protoreflect.FieldNumber = 10\n\tFieldDescriptorProto_Options_field_number        protoreflect.FieldNumber = 8\n\tFieldDescriptorProto_Proto3Optional_field_number protoreflect.FieldNumber = 17\n)\n\n// Full and short names for google.protobuf.FieldDescriptorProto.Type.\nconst (\n\tFieldDescriptorProto_Type_enum_fullname = \"google.protobuf.FieldDescriptorProto.Type\"\n\tFieldDescriptorProto_Type_enum_name     = \"Type\"\n)\n\n// Enum values for google.protobuf.FieldDescriptorProto.Type.\nconst (\n\tFieldDescriptorProto_TYPE_DOUBLE_enum_value   = 1\n\tFieldDescriptorProto_TYPE_FLOAT_enum_value    = 2\n\tFieldDescriptorProto_TYPE_INT64_enum_value    = 3\n\tFieldDescriptorProto_TYPE_UINT64_enum_value   = 4\n\tFieldDescriptorProto_TYPE_INT32_enum_value    = 5\n\tFieldDescriptorProto_TYPE_FIXED64_enum_value  = 6\n\tFieldDescriptorProto_TYPE_FIXED32_enum_value  = 7\n\tFieldDescriptorProto_TYPE_BOOL_enum_value     = 8\n\tFieldDescriptorProto_TYPE_STRING_enum_value   = 9\n\tFieldDescriptorProto_TYPE_GROUP_enum_value    = 10\n\tFieldDescriptorProto_TYPE_MESSAGE_enum_value  = 11\n\tFieldDescriptorProto_TYPE_BYTES_enum_value    = 12\n\tFieldDescriptorProto_TYPE_UINT32_enum_value   = 13\n\tFieldDescriptorProto_TYPE_ENUM_enum_value     = 14\n\tFieldDescriptorProto_TYPE_SFIXED32_enum_value = 15\n\tFieldDescriptorProto_TYPE_SFIXED64_enum_value = 16\n\tFieldDescriptorProto_TYPE_SINT32_enum_value   = 17\n\tFieldDescriptorProto_TYPE_SINT64_enum_value   = 18\n)\n\n// Full and short names for google.protobuf.FieldDescriptorProto.Label.\nconst (\n\tFieldDescriptorProto_Label_enum_fullname = \"google.protobuf.FieldDescriptorProto.Label\"\n\tFieldDescriptorProto_Label_enum_name     = \"Label\"\n)\n\n// Enum values for google.protobuf.FieldDescriptorProto.Label.\nconst (\n\tFieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1\n\tFieldDescriptorProto_LABEL_REPEATED_enum_value = 3\n\tFieldDescriptorProto_LABEL_REQUIRED_enum_value = 2\n)\n\n// Names for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_message_name     protoreflect.Name     = \"OneofDescriptorProto\"\n\tOneofDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.OneofDescriptorProto\"\n)\n\n// Field names for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tOneofDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tOneofDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.OneofDescriptorProto.name\"\n\tOneofDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.OneofDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tOneofDescriptorProto_Options_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_message_name     protoreflect.Name     = \"EnumDescriptorProto\"\n\tEnumDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto\"\n)\n\n// Field names for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_Name_field_name          protoreflect.Name = \"name\"\n\tEnumDescriptorProto_Value_field_name         protoreflect.Name = \"value\"\n\tEnumDescriptorProto_Options_field_name       protoreflect.Name = \"options\"\n\tEnumDescriptorProto_ReservedRange_field_name protoreflect.Name = \"reserved_range\"\n\tEnumDescriptorProto_ReservedName_field_name  protoreflect.Name = \"reserved_name\"\n\tEnumDescriptorProto_Visibility_field_name    protoreflect.Name = \"visibility\"\n\n\tEnumDescriptorProto_Name_field_fullname          protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.name\"\n\tEnumDescriptorProto_Value_field_fullname         protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.value\"\n\tEnumDescriptorProto_Options_field_fullname       protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.options\"\n\tEnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.reserved_range\"\n\tEnumDescriptorProto_ReservedName_field_fullname  protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.reserved_name\"\n\tEnumDescriptorProto_Visibility_field_fullname    protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.visibility\"\n)\n\n// Field numbers for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_Name_field_number          protoreflect.FieldNumber = 1\n\tEnumDescriptorProto_Value_field_number         protoreflect.FieldNumber = 2\n\tEnumDescriptorProto_Options_field_number       protoreflect.FieldNumber = 3\n\tEnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4\n\tEnumDescriptorProto_ReservedName_field_number  protoreflect.FieldNumber = 5\n\tEnumDescriptorProto_Visibility_field_number    protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_message_name     protoreflect.Name     = \"EnumReservedRange\"\n\tEnumDescriptorProto_EnumReservedRange_message_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\"\n)\n\n// Field names for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_Start_field_name protoreflect.Name = \"start\"\n\tEnumDescriptorProto_EnumReservedRange_End_field_name   protoreflect.Name = \"end\"\n\n\tEnumDescriptorProto_EnumReservedRange_Start_field_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange.start\"\n\tEnumDescriptorProto_EnumReservedRange_End_field_fullname   protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange.end\"\n)\n\n// Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_Start_field_number protoreflect.FieldNumber = 1\n\tEnumDescriptorProto_EnumReservedRange_End_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_message_name     protoreflect.Name     = \"EnumValueDescriptorProto\"\n\tEnumValueDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto\"\n)\n\n// Field names for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tEnumValueDescriptorProto_Number_field_name  protoreflect.Name = \"number\"\n\tEnumValueDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tEnumValueDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.name\"\n\tEnumValueDescriptorProto_Number_field_fullname  protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.number\"\n\tEnumValueDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tEnumValueDescriptorProto_Number_field_number  protoreflect.FieldNumber = 2\n\tEnumValueDescriptorProto_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_message_name     protoreflect.Name     = \"ServiceDescriptorProto\"\n\tServiceDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto\"\n)\n\n// Field names for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tServiceDescriptorProto_Method_field_name  protoreflect.Name = \"method\"\n\tServiceDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tServiceDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.name\"\n\tServiceDescriptorProto_Method_field_fullname  protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.method\"\n\tServiceDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tServiceDescriptorProto_Method_field_number  protoreflect.FieldNumber = 2\n\tServiceDescriptorProto_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_message_name     protoreflect.Name     = \"MethodDescriptorProto\"\n\tMethodDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto\"\n)\n\n// Field names for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_Name_field_name            protoreflect.Name = \"name\"\n\tMethodDescriptorProto_InputType_field_name       protoreflect.Name = \"input_type\"\n\tMethodDescriptorProto_OutputType_field_name      protoreflect.Name = \"output_type\"\n\tMethodDescriptorProto_Options_field_name         protoreflect.Name = \"options\"\n\tMethodDescriptorProto_ClientStreaming_field_name protoreflect.Name = \"client_streaming\"\n\tMethodDescriptorProto_ServerStreaming_field_name protoreflect.Name = \"server_streaming\"\n\n\tMethodDescriptorProto_Name_field_fullname            protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.name\"\n\tMethodDescriptorProto_InputType_field_fullname       protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.input_type\"\n\tMethodDescriptorProto_OutputType_field_fullname      protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.output_type\"\n\tMethodDescriptorProto_Options_field_fullname         protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.options\"\n\tMethodDescriptorProto_ClientStreaming_field_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.client_streaming\"\n\tMethodDescriptorProto_ServerStreaming_field_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.server_streaming\"\n)\n\n// Field numbers for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_Name_field_number            protoreflect.FieldNumber = 1\n\tMethodDescriptorProto_InputType_field_number       protoreflect.FieldNumber = 2\n\tMethodDescriptorProto_OutputType_field_number      protoreflect.FieldNumber = 3\n\tMethodDescriptorProto_Options_field_number         protoreflect.FieldNumber = 4\n\tMethodDescriptorProto_ClientStreaming_field_number protoreflect.FieldNumber = 5\n\tMethodDescriptorProto_ServerStreaming_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.FileOptions.\nconst (\n\tFileOptions_message_name     protoreflect.Name     = \"FileOptions\"\n\tFileOptions_message_fullname protoreflect.FullName = \"google.protobuf.FileOptions\"\n)\n\n// Field names for google.protobuf.FileOptions.\nconst (\n\tFileOptions_JavaPackage_field_name               protoreflect.Name = \"java_package\"\n\tFileOptions_JavaOuterClassname_field_name        protoreflect.Name = \"java_outer_classname\"\n\tFileOptions_JavaMultipleFiles_field_name         protoreflect.Name = \"java_multiple_files\"\n\tFileOptions_JavaGenerateEqualsAndHash_field_name protoreflect.Name = \"java_generate_equals_and_hash\"\n\tFileOptions_JavaStringCheckUtf8_field_name       protoreflect.Name = \"java_string_check_utf8\"\n\tFileOptions_OptimizeFor_field_name               protoreflect.Name = \"optimize_for\"\n\tFileOptions_GoPackage_field_name                 protoreflect.Name = \"go_package\"\n\tFileOptions_CcGenericServices_field_name         protoreflect.Name = \"cc_generic_services\"\n\tFileOptions_JavaGenericServices_field_name       protoreflect.Name = \"java_generic_services\"\n\tFileOptions_PyGenericServices_field_name         protoreflect.Name = \"py_generic_services\"\n\tFileOptions_Deprecated_field_name                protoreflect.Name = \"deprecated\"\n\tFileOptions_CcEnableArenas_field_name            protoreflect.Name = \"cc_enable_arenas\"\n\tFileOptions_ObjcClassPrefix_field_name           protoreflect.Name = \"objc_class_prefix\"\n\tFileOptions_CsharpNamespace_field_name           protoreflect.Name = \"csharp_namespace\"\n\tFileOptions_SwiftPrefix_field_name               protoreflect.Name = \"swift_prefix\"\n\tFileOptions_PhpClassPrefix_field_name            protoreflect.Name = \"php_class_prefix\"\n\tFileOptions_PhpNamespace_field_name              protoreflect.Name = \"php_namespace\"\n\tFileOptions_PhpMetadataNamespace_field_name      protoreflect.Name = \"php_metadata_namespace\"\n\tFileOptions_RubyPackage_field_name               protoreflect.Name = \"ruby_package\"\n\tFileOptions_Features_field_name                  protoreflect.Name = \"features\"\n\tFileOptions_UninterpretedOption_field_name       protoreflect.Name = \"uninterpreted_option\"\n\n\tFileOptions_JavaPackage_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.java_package\"\n\tFileOptions_JavaOuterClassname_field_fullname        protoreflect.FullName = \"google.protobuf.FileOptions.java_outer_classname\"\n\tFileOptions_JavaMultipleFiles_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.java_multiple_files\"\n\tFileOptions_JavaGenerateEqualsAndHash_field_fullname protoreflect.FullName = \"google.protobuf.FileOptions.java_generate_equals_and_hash\"\n\tFileOptions_JavaStringCheckUtf8_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.java_string_check_utf8\"\n\tFileOptions_OptimizeFor_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.optimize_for\"\n\tFileOptions_GoPackage_field_fullname                 protoreflect.FullName = \"google.protobuf.FileOptions.go_package\"\n\tFileOptions_CcGenericServices_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.cc_generic_services\"\n\tFileOptions_JavaGenericServices_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.java_generic_services\"\n\tFileOptions_PyGenericServices_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.py_generic_services\"\n\tFileOptions_Deprecated_field_fullname                protoreflect.FullName = \"google.protobuf.FileOptions.deprecated\"\n\tFileOptions_CcEnableArenas_field_fullname            protoreflect.FullName = \"google.protobuf.FileOptions.cc_enable_arenas\"\n\tFileOptions_ObjcClassPrefix_field_fullname           protoreflect.FullName = \"google.protobuf.FileOptions.objc_class_prefix\"\n\tFileOptions_CsharpNamespace_field_fullname           protoreflect.FullName = \"google.protobuf.FileOptions.csharp_namespace\"\n\tFileOptions_SwiftPrefix_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.swift_prefix\"\n\tFileOptions_PhpClassPrefix_field_fullname            protoreflect.FullName = \"google.protobuf.FileOptions.php_class_prefix\"\n\tFileOptions_PhpNamespace_field_fullname              protoreflect.FullName = \"google.protobuf.FileOptions.php_namespace\"\n\tFileOptions_PhpMetadataNamespace_field_fullname      protoreflect.FullName = \"google.protobuf.FileOptions.php_metadata_namespace\"\n\tFileOptions_RubyPackage_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.ruby_package\"\n\tFileOptions_Features_field_fullname                  protoreflect.FullName = \"google.protobuf.FileOptions.features\"\n\tFileOptions_UninterpretedOption_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.FileOptions.\nconst (\n\tFileOptions_JavaPackage_field_number               protoreflect.FieldNumber = 1\n\tFileOptions_JavaOuterClassname_field_number        protoreflect.FieldNumber = 8\n\tFileOptions_JavaMultipleFiles_field_number         protoreflect.FieldNumber = 10\n\tFileOptions_JavaGenerateEqualsAndHash_field_number protoreflect.FieldNumber = 20\n\tFileOptions_JavaStringCheckUtf8_field_number       protoreflect.FieldNumber = 27\n\tFileOptions_OptimizeFor_field_number               protoreflect.FieldNumber = 9\n\tFileOptions_GoPackage_field_number                 protoreflect.FieldNumber = 11\n\tFileOptions_CcGenericServices_field_number         protoreflect.FieldNumber = 16\n\tFileOptions_JavaGenericServices_field_number       protoreflect.FieldNumber = 17\n\tFileOptions_PyGenericServices_field_number         protoreflect.FieldNumber = 18\n\tFileOptions_Deprecated_field_number                protoreflect.FieldNumber = 23\n\tFileOptions_CcEnableArenas_field_number            protoreflect.FieldNumber = 31\n\tFileOptions_ObjcClassPrefix_field_number           protoreflect.FieldNumber = 36\n\tFileOptions_CsharpNamespace_field_number           protoreflect.FieldNumber = 37\n\tFileOptions_SwiftPrefix_field_number               protoreflect.FieldNumber = 39\n\tFileOptions_PhpClassPrefix_field_number            protoreflect.FieldNumber = 40\n\tFileOptions_PhpNamespace_field_number              protoreflect.FieldNumber = 41\n\tFileOptions_PhpMetadataNamespace_field_number      protoreflect.FieldNumber = 44\n\tFileOptions_RubyPackage_field_number               protoreflect.FieldNumber = 45\n\tFileOptions_Features_field_number                  protoreflect.FieldNumber = 50\n\tFileOptions_UninterpretedOption_field_number       protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.FileOptions.OptimizeMode.\nconst (\n\tFileOptions_OptimizeMode_enum_fullname = \"google.protobuf.FileOptions.OptimizeMode\"\n\tFileOptions_OptimizeMode_enum_name     = \"OptimizeMode\"\n)\n\n// Enum values for google.protobuf.FileOptions.OptimizeMode.\nconst (\n\tFileOptions_SPEED_enum_value        = 1\n\tFileOptions_CODE_SIZE_enum_value    = 2\n\tFileOptions_LITE_RUNTIME_enum_value = 3\n)\n\n// Names for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_message_name     protoreflect.Name     = \"MessageOptions\"\n\tMessageOptions_message_fullname protoreflect.FullName = \"google.protobuf.MessageOptions\"\n)\n\n// Field names for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_MessageSetWireFormat_field_name               protoreflect.Name = \"message_set_wire_format\"\n\tMessageOptions_NoStandardDescriptorAccessor_field_name       protoreflect.Name = \"no_standard_descriptor_accessor\"\n\tMessageOptions_Deprecated_field_name                         protoreflect.Name = \"deprecated\"\n\tMessageOptions_MapEntry_field_name                           protoreflect.Name = \"map_entry\"\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = \"deprecated_legacy_json_field_conflicts\"\n\tMessageOptions_Features_field_name                           protoreflect.Name = \"features\"\n\tMessageOptions_UninterpretedOption_field_name                protoreflect.Name = \"uninterpreted_option\"\n\n\tMessageOptions_MessageSetWireFormat_field_fullname               protoreflect.FullName = \"google.protobuf.MessageOptions.message_set_wire_format\"\n\tMessageOptions_NoStandardDescriptorAccessor_field_fullname       protoreflect.FullName = \"google.protobuf.MessageOptions.no_standard_descriptor_accessor\"\n\tMessageOptions_Deprecated_field_fullname                         protoreflect.FullName = \"google.protobuf.MessageOptions.deprecated\"\n\tMessageOptions_MapEntry_field_fullname                           protoreflect.FullName = \"google.protobuf.MessageOptions.map_entry\"\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = \"google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts\"\n\tMessageOptions_Features_field_fullname                           protoreflect.FullName = \"google.protobuf.MessageOptions.features\"\n\tMessageOptions_UninterpretedOption_field_fullname                protoreflect.FullName = \"google.protobuf.MessageOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_MessageSetWireFormat_field_number               protoreflect.FieldNumber = 1\n\tMessageOptions_NoStandardDescriptorAccessor_field_number       protoreflect.FieldNumber = 2\n\tMessageOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3\n\tMessageOptions_MapEntry_field_number                           protoreflect.FieldNumber = 7\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11\n\tMessageOptions_Features_field_number                           protoreflect.FieldNumber = 12\n\tMessageOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_message_name     protoreflect.Name     = \"FieldOptions\"\n\tFieldOptions_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions\"\n)\n\n// Field names for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_Ctype_field_name               protoreflect.Name = \"ctype\"\n\tFieldOptions_Packed_field_name              protoreflect.Name = \"packed\"\n\tFieldOptions_Jstype_field_name              protoreflect.Name = \"jstype\"\n\tFieldOptions_Lazy_field_name                protoreflect.Name = \"lazy\"\n\tFieldOptions_UnverifiedLazy_field_name      protoreflect.Name = \"unverified_lazy\"\n\tFieldOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tFieldOptions_Weak_field_name                protoreflect.Name = \"weak\"\n\tFieldOptions_DebugRedact_field_name         protoreflect.Name = \"debug_redact\"\n\tFieldOptions_Retention_field_name           protoreflect.Name = \"retention\"\n\tFieldOptions_Targets_field_name             protoreflect.Name = \"targets\"\n\tFieldOptions_EditionDefaults_field_name     protoreflect.Name = \"edition_defaults\"\n\tFieldOptions_Features_field_name            protoreflect.Name = \"features\"\n\tFieldOptions_FeatureSupport_field_name      protoreflect.Name = \"feature_support\"\n\tFieldOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tFieldOptions_Ctype_field_fullname               protoreflect.FullName = \"google.protobuf.FieldOptions.ctype\"\n\tFieldOptions_Packed_field_fullname              protoreflect.FullName = \"google.protobuf.FieldOptions.packed\"\n\tFieldOptions_Jstype_field_fullname              protoreflect.FullName = \"google.protobuf.FieldOptions.jstype\"\n\tFieldOptions_Lazy_field_fullname                protoreflect.FullName = \"google.protobuf.FieldOptions.lazy\"\n\tFieldOptions_UnverifiedLazy_field_fullname      protoreflect.FullName = \"google.protobuf.FieldOptions.unverified_lazy\"\n\tFieldOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.FieldOptions.deprecated\"\n\tFieldOptions_Weak_field_fullname                protoreflect.FullName = \"google.protobuf.FieldOptions.weak\"\n\tFieldOptions_DebugRedact_field_fullname         protoreflect.FullName = \"google.protobuf.FieldOptions.debug_redact\"\n\tFieldOptions_Retention_field_fullname           protoreflect.FullName = \"google.protobuf.FieldOptions.retention\"\n\tFieldOptions_Targets_field_fullname             protoreflect.FullName = \"google.protobuf.FieldOptions.targets\"\n\tFieldOptions_EditionDefaults_field_fullname     protoreflect.FullName = \"google.protobuf.FieldOptions.edition_defaults\"\n\tFieldOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.FieldOptions.features\"\n\tFieldOptions_FeatureSupport_field_fullname      protoreflect.FullName = \"google.protobuf.FieldOptions.feature_support\"\n\tFieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_Ctype_field_number               protoreflect.FieldNumber = 1\n\tFieldOptions_Packed_field_number              protoreflect.FieldNumber = 2\n\tFieldOptions_Jstype_field_number              protoreflect.FieldNumber = 6\n\tFieldOptions_Lazy_field_number                protoreflect.FieldNumber = 5\n\tFieldOptions_UnverifiedLazy_field_number      protoreflect.FieldNumber = 15\n\tFieldOptions_Deprecated_field_number          protoreflect.FieldNumber = 3\n\tFieldOptions_Weak_field_number                protoreflect.FieldNumber = 10\n\tFieldOptions_DebugRedact_field_number         protoreflect.FieldNumber = 16\n\tFieldOptions_Retention_field_number           protoreflect.FieldNumber = 17\n\tFieldOptions_Targets_field_number             protoreflect.FieldNumber = 19\n\tFieldOptions_EditionDefaults_field_number     protoreflect.FieldNumber = 20\n\tFieldOptions_Features_field_number            protoreflect.FieldNumber = 21\n\tFieldOptions_FeatureSupport_field_number      protoreflect.FieldNumber = 22\n\tFieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.FieldOptions.CType.\nconst (\n\tFieldOptions_CType_enum_fullname = \"google.protobuf.FieldOptions.CType\"\n\tFieldOptions_CType_enum_name     = \"CType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.CType.\nconst (\n\tFieldOptions_STRING_enum_value       = 0\n\tFieldOptions_CORD_enum_value         = 1\n\tFieldOptions_STRING_PIECE_enum_value = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.JSType.\nconst (\n\tFieldOptions_JSType_enum_fullname = \"google.protobuf.FieldOptions.JSType\"\n\tFieldOptions_JSType_enum_name     = \"JSType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.JSType.\nconst (\n\tFieldOptions_JS_NORMAL_enum_value = 0\n\tFieldOptions_JS_STRING_enum_value = 1\n\tFieldOptions_JS_NUMBER_enum_value = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.OptionRetention.\nconst (\n\tFieldOptions_OptionRetention_enum_fullname = \"google.protobuf.FieldOptions.OptionRetention\"\n\tFieldOptions_OptionRetention_enum_name     = \"OptionRetention\"\n)\n\n// Enum values for google.protobuf.FieldOptions.OptionRetention.\nconst (\n\tFieldOptions_RETENTION_UNKNOWN_enum_value = 0\n\tFieldOptions_RETENTION_RUNTIME_enum_value = 1\n\tFieldOptions_RETENTION_SOURCE_enum_value  = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.OptionTargetType.\nconst (\n\tFieldOptions_OptionTargetType_enum_fullname = \"google.protobuf.FieldOptions.OptionTargetType\"\n\tFieldOptions_OptionTargetType_enum_name     = \"OptionTargetType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.OptionTargetType.\nconst (\n\tFieldOptions_TARGET_TYPE_UNKNOWN_enum_value         = 0\n\tFieldOptions_TARGET_TYPE_FILE_enum_value            = 1\n\tFieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2\n\tFieldOptions_TARGET_TYPE_MESSAGE_enum_value         = 3\n\tFieldOptions_TARGET_TYPE_FIELD_enum_value           = 4\n\tFieldOptions_TARGET_TYPE_ONEOF_enum_value           = 5\n\tFieldOptions_TARGET_TYPE_ENUM_enum_value            = 6\n\tFieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value      = 7\n\tFieldOptions_TARGET_TYPE_SERVICE_enum_value         = 8\n\tFieldOptions_TARGET_TYPE_METHOD_enum_value          = 9\n)\n\n// Names for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_message_name     protoreflect.Name     = \"EditionDefault\"\n\tFieldOptions_EditionDefault_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault\"\n)\n\n// Field names for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_Edition_field_name protoreflect.Name = \"edition\"\n\tFieldOptions_EditionDefault_Value_field_name   protoreflect.Name = \"value\"\n\n\tFieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault.edition\"\n\tFieldOptions_EditionDefault_Value_field_fullname   protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault.value\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3\n\tFieldOptions_EditionDefault_Value_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_message_name     protoreflect.Name     = \"FeatureSupport\"\n\tFieldOptions_FeatureSupport_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport\"\n)\n\n// Field names for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_name  protoreflect.Name = \"edition_introduced\"\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_name  protoreflect.Name = \"edition_deprecated\"\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_name protoreflect.Name = \"deprecation_warning\"\n\tFieldOptions_FeatureSupport_EditionRemoved_field_name     protoreflect.Name = \"edition_removed\"\n\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_fullname  protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_introduced\"\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_fullname  protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_deprecated\"\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.deprecation_warning\"\n\tFieldOptions_FeatureSupport_EditionRemoved_field_fullname     protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_removed\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_number  protoreflect.FieldNumber = 1\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_number  protoreflect.FieldNumber = 2\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_number protoreflect.FieldNumber = 3\n\tFieldOptions_FeatureSupport_EditionRemoved_field_number     protoreflect.FieldNumber = 4\n)\n\n// Names for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_message_name     protoreflect.Name     = \"OneofOptions\"\n\tOneofOptions_message_fullname protoreflect.FullName = \"google.protobuf.OneofOptions\"\n)\n\n// Field names for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_Features_field_name            protoreflect.Name = \"features\"\n\tOneofOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tOneofOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.OneofOptions.features\"\n\tOneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.OneofOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_Features_field_number            protoreflect.FieldNumber = 1\n\tOneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_message_name     protoreflect.Name     = \"EnumOptions\"\n\tEnumOptions_message_fullname protoreflect.FullName = \"google.protobuf.EnumOptions\"\n)\n\n// Field names for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_AllowAlias_field_name                         protoreflect.Name = \"allow_alias\"\n\tEnumOptions_Deprecated_field_name                         protoreflect.Name = \"deprecated\"\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = \"deprecated_legacy_json_field_conflicts\"\n\tEnumOptions_Features_field_name                           protoreflect.Name = \"features\"\n\tEnumOptions_UninterpretedOption_field_name                protoreflect.Name = \"uninterpreted_option\"\n\n\tEnumOptions_AllowAlias_field_fullname                         protoreflect.FullName = \"google.protobuf.EnumOptions.allow_alias\"\n\tEnumOptions_Deprecated_field_fullname                         protoreflect.FullName = \"google.protobuf.EnumOptions.deprecated\"\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = \"google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts\"\n\tEnumOptions_Features_field_fullname                           protoreflect.FullName = \"google.protobuf.EnumOptions.features\"\n\tEnumOptions_UninterpretedOption_field_fullname                protoreflect.FullName = \"google.protobuf.EnumOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_AllowAlias_field_number                         protoreflect.FieldNumber = 2\n\tEnumOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6\n\tEnumOptions_Features_field_number                           protoreflect.FieldNumber = 7\n\tEnumOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_message_name     protoreflect.Name     = \"EnumValueOptions\"\n\tEnumValueOptions_message_fullname protoreflect.FullName = \"google.protobuf.EnumValueOptions\"\n)\n\n// Field names for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tEnumValueOptions_Features_field_name            protoreflect.Name = \"features\"\n\tEnumValueOptions_DebugRedact_field_name         protoreflect.Name = \"debug_redact\"\n\tEnumValueOptions_FeatureSupport_field_name      protoreflect.Name = \"feature_support\"\n\tEnumValueOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tEnumValueOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.EnumValueOptions.deprecated\"\n\tEnumValueOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.EnumValueOptions.features\"\n\tEnumValueOptions_DebugRedact_field_fullname         protoreflect.FullName = \"google.protobuf.EnumValueOptions.debug_redact\"\n\tEnumValueOptions_FeatureSupport_field_fullname      protoreflect.FullName = \"google.protobuf.EnumValueOptions.feature_support\"\n\tEnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.EnumValueOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_Deprecated_field_number          protoreflect.FieldNumber = 1\n\tEnumValueOptions_Features_field_number            protoreflect.FieldNumber = 2\n\tEnumValueOptions_DebugRedact_field_number         protoreflect.FieldNumber = 3\n\tEnumValueOptions_FeatureSupport_field_number      protoreflect.FieldNumber = 4\n\tEnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_message_name     protoreflect.Name     = \"ServiceOptions\"\n\tServiceOptions_message_fullname protoreflect.FullName = \"google.protobuf.ServiceOptions\"\n)\n\n// Field names for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_Features_field_name            protoreflect.Name = \"features\"\n\tServiceOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tServiceOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tServiceOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.ServiceOptions.features\"\n\tServiceOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.ServiceOptions.deprecated\"\n\tServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.ServiceOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_Features_field_number            protoreflect.FieldNumber = 34\n\tServiceOptions_Deprecated_field_number          protoreflect.FieldNumber = 33\n\tServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_message_name     protoreflect.Name     = \"MethodOptions\"\n\tMethodOptions_message_fullname protoreflect.FullName = \"google.protobuf.MethodOptions\"\n)\n\n// Field names for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tMethodOptions_IdempotencyLevel_field_name    protoreflect.Name = \"idempotency_level\"\n\tMethodOptions_Features_field_name            protoreflect.Name = \"features\"\n\tMethodOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tMethodOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.MethodOptions.deprecated\"\n\tMethodOptions_IdempotencyLevel_field_fullname    protoreflect.FullName = \"google.protobuf.MethodOptions.idempotency_level\"\n\tMethodOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.MethodOptions.features\"\n\tMethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.MethodOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_Deprecated_field_number          protoreflect.FieldNumber = 33\n\tMethodOptions_IdempotencyLevel_field_number    protoreflect.FieldNumber = 34\n\tMethodOptions_Features_field_number            protoreflect.FieldNumber = 35\n\tMethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.MethodOptions.IdempotencyLevel.\nconst (\n\tMethodOptions_IdempotencyLevel_enum_fullname = \"google.protobuf.MethodOptions.IdempotencyLevel\"\n\tMethodOptions_IdempotencyLevel_enum_name     = \"IdempotencyLevel\"\n)\n\n// Enum values for google.protobuf.MethodOptions.IdempotencyLevel.\nconst (\n\tMethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0\n\tMethodOptions_NO_SIDE_EFFECTS_enum_value     = 1\n\tMethodOptions_IDEMPOTENT_enum_value          = 2\n)\n\n// Names for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_message_name     protoreflect.Name     = \"UninterpretedOption\"\n\tUninterpretedOption_message_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption\"\n)\n\n// Field names for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_Name_field_name             protoreflect.Name = \"name\"\n\tUninterpretedOption_IdentifierValue_field_name  protoreflect.Name = \"identifier_value\"\n\tUninterpretedOption_PositiveIntValue_field_name protoreflect.Name = \"positive_int_value\"\n\tUninterpretedOption_NegativeIntValue_field_name protoreflect.Name = \"negative_int_value\"\n\tUninterpretedOption_DoubleValue_field_name      protoreflect.Name = \"double_value\"\n\tUninterpretedOption_StringValue_field_name      protoreflect.Name = \"string_value\"\n\tUninterpretedOption_AggregateValue_field_name   protoreflect.Name = \"aggregate_value\"\n\n\tUninterpretedOption_Name_field_fullname             protoreflect.FullName = \"google.protobuf.UninterpretedOption.name\"\n\tUninterpretedOption_IdentifierValue_field_fullname  protoreflect.FullName = \"google.protobuf.UninterpretedOption.identifier_value\"\n\tUninterpretedOption_PositiveIntValue_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.positive_int_value\"\n\tUninterpretedOption_NegativeIntValue_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.negative_int_value\"\n\tUninterpretedOption_DoubleValue_field_fullname      protoreflect.FullName = \"google.protobuf.UninterpretedOption.double_value\"\n\tUninterpretedOption_StringValue_field_fullname      protoreflect.FullName = \"google.protobuf.UninterpretedOption.string_value\"\n\tUninterpretedOption_AggregateValue_field_fullname   protoreflect.FullName = \"google.protobuf.UninterpretedOption.aggregate_value\"\n)\n\n// Field numbers for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_Name_field_number             protoreflect.FieldNumber = 2\n\tUninterpretedOption_IdentifierValue_field_number  protoreflect.FieldNumber = 3\n\tUninterpretedOption_PositiveIntValue_field_number protoreflect.FieldNumber = 4\n\tUninterpretedOption_NegativeIntValue_field_number protoreflect.FieldNumber = 5\n\tUninterpretedOption_DoubleValue_field_number      protoreflect.FieldNumber = 6\n\tUninterpretedOption_StringValue_field_number      protoreflect.FieldNumber = 7\n\tUninterpretedOption_AggregateValue_field_number   protoreflect.FieldNumber = 8\n)\n\n// Names for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_message_name     protoreflect.Name     = \"NamePart\"\n\tUninterpretedOption_NamePart_message_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart\"\n)\n\n// Field names for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_NamePart_field_name    protoreflect.Name = \"name_part\"\n\tUninterpretedOption_NamePart_IsExtension_field_name protoreflect.Name = \"is_extension\"\n\n\tUninterpretedOption_NamePart_NamePart_field_fullname    protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart.name_part\"\n\tUninterpretedOption_NamePart_IsExtension_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart.is_extension\"\n)\n\n// Field numbers for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_NamePart_field_number    protoreflect.FieldNumber = 1\n\tUninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_message_name     protoreflect.Name     = \"FeatureSet\"\n\tFeatureSet_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSet\"\n)\n\n// Field names for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_FieldPresence_field_name           protoreflect.Name = \"field_presence\"\n\tFeatureSet_EnumType_field_name                protoreflect.Name = \"enum_type\"\n\tFeatureSet_RepeatedFieldEncoding_field_name   protoreflect.Name = \"repeated_field_encoding\"\n\tFeatureSet_Utf8Validation_field_name          protoreflect.Name = \"utf8_validation\"\n\tFeatureSet_MessageEncoding_field_name         protoreflect.Name = \"message_encoding\"\n\tFeatureSet_JsonFormat_field_name              protoreflect.Name = \"json_format\"\n\tFeatureSet_EnforceNamingStyle_field_name      protoreflect.Name = \"enforce_naming_style\"\n\tFeatureSet_DefaultSymbolVisibility_field_name protoreflect.Name = \"default_symbol_visibility\"\n\n\tFeatureSet_FieldPresence_field_fullname           protoreflect.FullName = \"google.protobuf.FeatureSet.field_presence\"\n\tFeatureSet_EnumType_field_fullname                protoreflect.FullName = \"google.protobuf.FeatureSet.enum_type\"\n\tFeatureSet_RepeatedFieldEncoding_field_fullname   protoreflect.FullName = \"google.protobuf.FeatureSet.repeated_field_encoding\"\n\tFeatureSet_Utf8Validation_field_fullname          protoreflect.FullName = \"google.protobuf.FeatureSet.utf8_validation\"\n\tFeatureSet_MessageEncoding_field_fullname         protoreflect.FullName = \"google.protobuf.FeatureSet.message_encoding\"\n\tFeatureSet_JsonFormat_field_fullname              protoreflect.FullName = \"google.protobuf.FeatureSet.json_format\"\n\tFeatureSet_EnforceNamingStyle_field_fullname      protoreflect.FullName = \"google.protobuf.FeatureSet.enforce_naming_style\"\n\tFeatureSet_DefaultSymbolVisibility_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSet.default_symbol_visibility\"\n)\n\n// Field numbers for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_FieldPresence_field_number           protoreflect.FieldNumber = 1\n\tFeatureSet_EnumType_field_number                protoreflect.FieldNumber = 2\n\tFeatureSet_RepeatedFieldEncoding_field_number   protoreflect.FieldNumber = 3\n\tFeatureSet_Utf8Validation_field_number          protoreflect.FieldNumber = 4\n\tFeatureSet_MessageEncoding_field_number         protoreflect.FieldNumber = 5\n\tFeatureSet_JsonFormat_field_number              protoreflect.FieldNumber = 6\n\tFeatureSet_EnforceNamingStyle_field_number      protoreflect.FieldNumber = 7\n\tFeatureSet_DefaultSymbolVisibility_field_number protoreflect.FieldNumber = 8\n)\n\n// Full and short names for google.protobuf.FeatureSet.FieldPresence.\nconst (\n\tFeatureSet_FieldPresence_enum_fullname = \"google.protobuf.FeatureSet.FieldPresence\"\n\tFeatureSet_FieldPresence_enum_name     = \"FieldPresence\"\n)\n\n// Enum values for google.protobuf.FeatureSet.FieldPresence.\nconst (\n\tFeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0\n\tFeatureSet_EXPLICIT_enum_value               = 1\n\tFeatureSet_IMPLICIT_enum_value               = 2\n\tFeatureSet_LEGACY_REQUIRED_enum_value        = 3\n)\n\n// Full and short names for google.protobuf.FeatureSet.EnumType.\nconst (\n\tFeatureSet_EnumType_enum_fullname = \"google.protobuf.FeatureSet.EnumType\"\n\tFeatureSet_EnumType_enum_name     = \"EnumType\"\n)\n\n// Enum values for google.protobuf.FeatureSet.EnumType.\nconst (\n\tFeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0\n\tFeatureSet_OPEN_enum_value              = 1\n\tFeatureSet_CLOSED_enum_value            = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding.\nconst (\n\tFeatureSet_RepeatedFieldEncoding_enum_fullname = \"google.protobuf.FeatureSet.RepeatedFieldEncoding\"\n\tFeatureSet_RepeatedFieldEncoding_enum_name     = \"RepeatedFieldEncoding\"\n)\n\n// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding.\nconst (\n\tFeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0\n\tFeatureSet_PACKED_enum_value                          = 1\n\tFeatureSet_EXPANDED_enum_value                        = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.Utf8Validation.\nconst (\n\tFeatureSet_Utf8Validation_enum_fullname = \"google.protobuf.FeatureSet.Utf8Validation\"\n\tFeatureSet_Utf8Validation_enum_name     = \"Utf8Validation\"\n)\n\n// Enum values for google.protobuf.FeatureSet.Utf8Validation.\nconst (\n\tFeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0\n\tFeatureSet_VERIFY_enum_value                  = 2\n\tFeatureSet_NONE_enum_value                    = 3\n)\n\n// Full and short names for google.protobuf.FeatureSet.MessageEncoding.\nconst (\n\tFeatureSet_MessageEncoding_enum_fullname = \"google.protobuf.FeatureSet.MessageEncoding\"\n\tFeatureSet_MessageEncoding_enum_name     = \"MessageEncoding\"\n)\n\n// Enum values for google.protobuf.FeatureSet.MessageEncoding.\nconst (\n\tFeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0\n\tFeatureSet_LENGTH_PREFIXED_enum_value          = 1\n\tFeatureSet_DELIMITED_enum_value                = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.JsonFormat.\nconst (\n\tFeatureSet_JsonFormat_enum_fullname = \"google.protobuf.FeatureSet.JsonFormat\"\n\tFeatureSet_JsonFormat_enum_name     = \"JsonFormat\"\n)\n\n// Enum values for google.protobuf.FeatureSet.JsonFormat.\nconst (\n\tFeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0\n\tFeatureSet_ALLOW_enum_value               = 1\n\tFeatureSet_LEGACY_BEST_EFFORT_enum_value  = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.EnforceNamingStyle.\nconst (\n\tFeatureSet_EnforceNamingStyle_enum_fullname = \"google.protobuf.FeatureSet.EnforceNamingStyle\"\n\tFeatureSet_EnforceNamingStyle_enum_name     = \"EnforceNamingStyle\"\n)\n\n// Enum values for google.protobuf.FeatureSet.EnforceNamingStyle.\nconst (\n\tFeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN_enum_value = 0\n\tFeatureSet_STYLE2024_enum_value                    = 1\n\tFeatureSet_STYLE_LEGACY_enum_value                 = 2\n)\n\n// Names for google.protobuf.FeatureSet.VisibilityFeature.\nconst (\n\tFeatureSet_VisibilityFeature_message_name     protoreflect.Name     = \"VisibilityFeature\"\n\tFeatureSet_VisibilityFeature_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSet.VisibilityFeature\"\n)\n\n// Full and short names for google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility.\nconst (\n\tFeatureSet_VisibilityFeature_DefaultSymbolVisibility_enum_fullname = \"google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility\"\n\tFeatureSet_VisibilityFeature_DefaultSymbolVisibility_enum_name     = \"DefaultSymbolVisibility\"\n)\n\n// Enum values for google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility.\nconst (\n\tFeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN_enum_value = 0\n\tFeatureSet_VisibilityFeature_EXPORT_ALL_enum_value                        = 1\n\tFeatureSet_VisibilityFeature_EXPORT_TOP_LEVEL_enum_value                  = 2\n\tFeatureSet_VisibilityFeature_LOCAL_ALL_enum_value                         = 3\n\tFeatureSet_VisibilityFeature_STRICT_enum_value                            = 4\n)\n\n// Names for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_message_name     protoreflect.Name     = \"FeatureSetDefaults\"\n\tFeatureSetDefaults_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults\"\n)\n\n// Field names for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_Defaults_field_name       protoreflect.Name = \"defaults\"\n\tFeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = \"minimum_edition\"\n\tFeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = \"maximum_edition\"\n\n\tFeatureSetDefaults_Defaults_field_fullname       protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.defaults\"\n\tFeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.minimum_edition\"\n\tFeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.maximum_edition\"\n)\n\n// Field numbers for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_Defaults_field_number       protoreflect.FieldNumber = 1\n\tFeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4\n\tFeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5\n)\n\n// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_message_name     protoreflect.Name     = \"FeatureSetEditionDefault\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\"\n)\n\n// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name             protoreflect.Name = \"edition\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_name protoreflect.Name = \"overridable_features\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_name       protoreflect.Name = \"fixed_features\"\n\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname             protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_fullname       protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features\"\n)\n\n// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number             protoreflect.FieldNumber = 3\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number protoreflect.FieldNumber = 4\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number       protoreflect.FieldNumber = 5\n)\n\n// Names for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_message_name     protoreflect.Name     = \"SourceCodeInfo\"\n\tSourceCodeInfo_message_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo\"\n)\n\n// Field names for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_Location_field_name protoreflect.Name = \"location\"\n\n\tSourceCodeInfo_Location_field_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.location\"\n)\n\n// Field numbers for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_Location_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_message_name     protoreflect.Name     = \"Location\"\n\tSourceCodeInfo_Location_message_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location\"\n)\n\n// Field names for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_Path_field_name                    protoreflect.Name = \"path\"\n\tSourceCodeInfo_Location_Span_field_name                    protoreflect.Name = \"span\"\n\tSourceCodeInfo_Location_LeadingComments_field_name         protoreflect.Name = \"leading_comments\"\n\tSourceCodeInfo_Location_TrailingComments_field_name        protoreflect.Name = \"trailing_comments\"\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_name protoreflect.Name = \"leading_detached_comments\"\n\n\tSourceCodeInfo_Location_Path_field_fullname                    protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.path\"\n\tSourceCodeInfo_Location_Span_field_fullname                    protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.span\"\n\tSourceCodeInfo_Location_LeadingComments_field_fullname         protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.leading_comments\"\n\tSourceCodeInfo_Location_TrailingComments_field_fullname        protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.trailing_comments\"\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.leading_detached_comments\"\n)\n\n// Field numbers for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_Path_field_number                    protoreflect.FieldNumber = 1\n\tSourceCodeInfo_Location_Span_field_number                    protoreflect.FieldNumber = 2\n\tSourceCodeInfo_Location_LeadingComments_field_number         protoreflect.FieldNumber = 3\n\tSourceCodeInfo_Location_TrailingComments_field_number        protoreflect.FieldNumber = 4\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_message_name     protoreflect.Name     = \"GeneratedCodeInfo\"\n\tGeneratedCodeInfo_message_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo\"\n)\n\n// Field names for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_Annotation_field_name protoreflect.Name = \"annotation\"\n\n\tGeneratedCodeInfo_Annotation_field_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.annotation\"\n)\n\n// Field numbers for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_Annotation_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_message_name     protoreflect.Name     = \"Annotation\"\n\tGeneratedCodeInfo_Annotation_message_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation\"\n)\n\n// Field names for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_Path_field_name       protoreflect.Name = \"path\"\n\tGeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = \"source_file\"\n\tGeneratedCodeInfo_Annotation_Begin_field_name      protoreflect.Name = \"begin\"\n\tGeneratedCodeInfo_Annotation_End_field_name        protoreflect.Name = \"end\"\n\tGeneratedCodeInfo_Annotation_Semantic_field_name   protoreflect.Name = \"semantic\"\n\n\tGeneratedCodeInfo_Annotation_Path_field_fullname       protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.path\"\n\tGeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.source_file\"\n\tGeneratedCodeInfo_Annotation_Begin_field_fullname      protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.begin\"\n\tGeneratedCodeInfo_Annotation_End_field_fullname        protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.end\"\n\tGeneratedCodeInfo_Annotation_Semantic_field_fullname   protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.semantic\"\n)\n\n// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_Path_field_number       protoreflect.FieldNumber = 1\n\tGeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2\n\tGeneratedCodeInfo_Annotation_Begin_field_number      protoreflect.FieldNumber = 3\n\tGeneratedCodeInfo_Annotation_End_field_number        protoreflect.FieldNumber = 4\n\tGeneratedCodeInfo_Annotation_Semantic_field_number   protoreflect.FieldNumber = 5\n)\n\n// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.\nconst (\n\tGeneratedCodeInfo_Annotation_Semantic_enum_fullname = \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\"\n\tGeneratedCodeInfo_Annotation_Semantic_enum_name     = \"Semantic\"\n)\n\n// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.\nconst (\n\tGeneratedCodeInfo_Annotation_NONE_enum_value  = 0\n\tGeneratedCodeInfo_Annotation_SET_enum_value   = 1\n\tGeneratedCodeInfo_Annotation_ALIAS_enum_value = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package genid contains constants for declarations in descriptor.proto\n// and the well-known types.\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\nconst GoogleProtobuf_package protoreflect.FullName = \"google.protobuf\"\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/duration_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_duration_proto = \"google/protobuf/duration.proto\"\n\n// Names for google.protobuf.Duration.\nconst (\n\tDuration_message_name     protoreflect.Name     = \"Duration\"\n\tDuration_message_fullname protoreflect.FullName = \"google.protobuf.Duration\"\n)\n\n// Field names for google.protobuf.Duration.\nconst (\n\tDuration_Seconds_field_name protoreflect.Name = \"seconds\"\n\tDuration_Nanos_field_name   protoreflect.Name = \"nanos\"\n\n\tDuration_Seconds_field_fullname protoreflect.FullName = \"google.protobuf.Duration.seconds\"\n\tDuration_Nanos_field_fullname   protoreflect.FullName = \"google.protobuf.Duration.nanos\"\n)\n\n// Field numbers for google.protobuf.Duration.\nconst (\n\tDuration_Seconds_field_number protoreflect.FieldNumber = 1\n\tDuration_Nanos_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/empty_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_empty_proto = \"google/protobuf/empty.proto\"\n\n// Names for google.protobuf.Empty.\nconst (\n\tEmpty_message_name     protoreflect.Name     = \"Empty\"\n\tEmpty_message_fullname protoreflect.FullName = \"google.protobuf.Empty\"\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_field_mask_proto = \"google/protobuf/field_mask.proto\"\n\n// Names for google.protobuf.FieldMask.\nconst (\n\tFieldMask_message_name     protoreflect.Name     = \"FieldMask\"\n\tFieldMask_message_fullname protoreflect.FullName = \"google.protobuf.FieldMask\"\n)\n\n// Field names for google.protobuf.FieldMask.\nconst (\n\tFieldMask_Paths_field_name protoreflect.Name = \"paths\"\n\n\tFieldMask_Paths_field_fullname protoreflect.FullName = \"google.protobuf.FieldMask.paths\"\n)\n\n// Field numbers for google.protobuf.FieldMask.\nconst (\n\tFieldMask_Paths_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_go_features_proto = \"google/protobuf/go_features.proto\"\n\n// Names for pb.GoFeatures.\nconst (\n\tGoFeatures_message_name     protoreflect.Name     = \"GoFeatures\"\n\tGoFeatures_message_fullname protoreflect.FullName = \"pb.GoFeatures\"\n)\n\n// Field names for pb.GoFeatures.\nconst (\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = \"legacy_unmarshal_json_enum\"\n\tGoFeatures_ApiLevel_field_name                protoreflect.Name = \"api_level\"\n\tGoFeatures_StripEnumPrefix_field_name         protoreflect.Name = \"strip_enum_prefix\"\n\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = \"pb.GoFeatures.legacy_unmarshal_json_enum\"\n\tGoFeatures_ApiLevel_field_fullname                protoreflect.FullName = \"pb.GoFeatures.api_level\"\n\tGoFeatures_StripEnumPrefix_field_fullname         protoreflect.FullName = \"pb.GoFeatures.strip_enum_prefix\"\n)\n\n// Field numbers for pb.GoFeatures.\nconst (\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1\n\tGoFeatures_ApiLevel_field_number                protoreflect.FieldNumber = 2\n\tGoFeatures_StripEnumPrefix_field_number         protoreflect.FieldNumber = 3\n)\n\n// Full and short names for pb.GoFeatures.APILevel.\nconst (\n\tGoFeatures_APILevel_enum_fullname = \"pb.GoFeatures.APILevel\"\n\tGoFeatures_APILevel_enum_name     = \"APILevel\"\n)\n\n// Enum values for pb.GoFeatures.APILevel.\nconst (\n\tGoFeatures_API_LEVEL_UNSPECIFIED_enum_value = 0\n\tGoFeatures_API_OPEN_enum_value              = 1\n\tGoFeatures_API_HYBRID_enum_value            = 2\n\tGoFeatures_API_OPAQUE_enum_value            = 3\n)\n\n// Full and short names for pb.GoFeatures.StripEnumPrefix.\nconst (\n\tGoFeatures_StripEnumPrefix_enum_fullname = \"pb.GoFeatures.StripEnumPrefix\"\n\tGoFeatures_StripEnumPrefix_enum_name     = \"StripEnumPrefix\"\n)\n\n// Enum values for pb.GoFeatures.StripEnumPrefix.\nconst (\n\tGoFeatures_STRIP_ENUM_PREFIX_UNSPECIFIED_enum_value   = 0\n\tGoFeatures_STRIP_ENUM_PREFIX_KEEP_enum_value          = 1\n\tGoFeatures_STRIP_ENUM_PREFIX_GENERATE_BOTH_enum_value = 2\n\tGoFeatures_STRIP_ENUM_PREFIX_STRIP_enum_value         = 3\n)\n\n// Extension numbers\nconst (\n\tFeatureSet_Go_ext_number protoreflect.FieldNumber = 1002\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/goname.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\n// Go names of implementation-specific struct fields in generated messages.\nconst (\n\tState_goname = \"state\"\n\n\tSizeCache_goname  = \"sizeCache\"\n\tSizeCacheA_goname = \"XXX_sizecache\"\n\n\tUnknownFields_goname  = \"unknownFields\"\n\tUnknownFieldsA_goname = \"XXX_unrecognized\"\n\n\tExtensionFields_goname  = \"extensionFields\"\n\tExtensionFieldsA_goname = \"XXX_InternalExtensions\"\n\tExtensionFieldsB_goname = \"XXX_extensions\"\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/map_entry.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// Generic field names and numbers for synthetic map entry messages.\nconst (\n\tMapEntry_Key_field_name   protoreflect.Name = \"key\"\n\tMapEntry_Value_field_name protoreflect.Name = \"value\"\n\n\tMapEntry_Key_field_number   protoreflect.FieldNumber = 1\n\tMapEntry_Value_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/name.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\nconst (\n\tNoUnkeyedLiteral_goname  = \"noUnkeyedLiteral\"\n\tNoUnkeyedLiteralA_goname = \"XXX_NoUnkeyedLiteral\"\n\n\tBuilderSuffix_goname = \"_builder\"\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_source_context_proto = \"google/protobuf/source_context.proto\"\n\n// Names for google.protobuf.SourceContext.\nconst (\n\tSourceContext_message_name     protoreflect.Name     = \"SourceContext\"\n\tSourceContext_message_fullname protoreflect.FullName = \"google.protobuf.SourceContext\"\n)\n\n// Field names for google.protobuf.SourceContext.\nconst (\n\tSourceContext_FileName_field_name protoreflect.Name = \"file_name\"\n\n\tSourceContext_FileName_field_fullname protoreflect.FullName = \"google.protobuf.SourceContext.file_name\"\n)\n\n// Field numbers for google.protobuf.SourceContext.\nconst (\n\tSourceContext_FileName_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/struct_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_struct_proto = \"google/protobuf/struct.proto\"\n\n// Full and short names for google.protobuf.NullValue.\nconst (\n\tNullValue_enum_fullname = \"google.protobuf.NullValue\"\n\tNullValue_enum_name     = \"NullValue\"\n)\n\n// Enum values for google.protobuf.NullValue.\nconst (\n\tNullValue_NULL_VALUE_enum_value = 0\n)\n\n// Names for google.protobuf.Struct.\nconst (\n\tStruct_message_name     protoreflect.Name     = \"Struct\"\n\tStruct_message_fullname protoreflect.FullName = \"google.protobuf.Struct\"\n)\n\n// Field names for google.protobuf.Struct.\nconst (\n\tStruct_Fields_field_name protoreflect.Name = \"fields\"\n\n\tStruct_Fields_field_fullname protoreflect.FullName = \"google.protobuf.Struct.fields\"\n)\n\n// Field numbers for google.protobuf.Struct.\nconst (\n\tStruct_Fields_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_message_name     protoreflect.Name     = \"FieldsEntry\"\n\tStruct_FieldsEntry_message_fullname protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry\"\n)\n\n// Field names for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_Key_field_name   protoreflect.Name = \"key\"\n\tStruct_FieldsEntry_Value_field_name protoreflect.Name = \"value\"\n\n\tStruct_FieldsEntry_Key_field_fullname   protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry.key\"\n\tStruct_FieldsEntry_Value_field_fullname protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry.value\"\n)\n\n// Field numbers for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_Key_field_number   protoreflect.FieldNumber = 1\n\tStruct_FieldsEntry_Value_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.Value.\nconst (\n\tValue_message_name     protoreflect.Name     = \"Value\"\n\tValue_message_fullname protoreflect.FullName = \"google.protobuf.Value\"\n)\n\n// Field names for google.protobuf.Value.\nconst (\n\tValue_NullValue_field_name   protoreflect.Name = \"null_value\"\n\tValue_NumberValue_field_name protoreflect.Name = \"number_value\"\n\tValue_StringValue_field_name protoreflect.Name = \"string_value\"\n\tValue_BoolValue_field_name   protoreflect.Name = \"bool_value\"\n\tValue_StructValue_field_name protoreflect.Name = \"struct_value\"\n\tValue_ListValue_field_name   protoreflect.Name = \"list_value\"\n\n\tValue_NullValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.null_value\"\n\tValue_NumberValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.number_value\"\n\tValue_StringValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.string_value\"\n\tValue_BoolValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.bool_value\"\n\tValue_StructValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.struct_value\"\n\tValue_ListValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.list_value\"\n)\n\n// Field numbers for google.protobuf.Value.\nconst (\n\tValue_NullValue_field_number   protoreflect.FieldNumber = 1\n\tValue_NumberValue_field_number protoreflect.FieldNumber = 2\n\tValue_StringValue_field_number protoreflect.FieldNumber = 3\n\tValue_BoolValue_field_number   protoreflect.FieldNumber = 4\n\tValue_StructValue_field_number protoreflect.FieldNumber = 5\n\tValue_ListValue_field_number   protoreflect.FieldNumber = 6\n)\n\n// Oneof names for google.protobuf.Value.\nconst (\n\tValue_Kind_oneof_name protoreflect.Name = \"kind\"\n\n\tValue_Kind_oneof_fullname protoreflect.FullName = \"google.protobuf.Value.kind\"\n)\n\n// Names for google.protobuf.ListValue.\nconst (\n\tListValue_message_name     protoreflect.Name     = \"ListValue\"\n\tListValue_message_fullname protoreflect.FullName = \"google.protobuf.ListValue\"\n)\n\n// Field names for google.protobuf.ListValue.\nconst (\n\tListValue_Values_field_name protoreflect.Name = \"values\"\n\n\tListValue_Values_field_fullname protoreflect.FullName = \"google.protobuf.ListValue.values\"\n)\n\n// Field numbers for google.protobuf.ListValue.\nconst (\n\tListValue_Values_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_timestamp_proto = \"google/protobuf/timestamp.proto\"\n\n// Names for google.protobuf.Timestamp.\nconst (\n\tTimestamp_message_name     protoreflect.Name     = \"Timestamp\"\n\tTimestamp_message_fullname protoreflect.FullName = \"google.protobuf.Timestamp\"\n)\n\n// Field names for google.protobuf.Timestamp.\nconst (\n\tTimestamp_Seconds_field_name protoreflect.Name = \"seconds\"\n\tTimestamp_Nanos_field_name   protoreflect.Name = \"nanos\"\n\n\tTimestamp_Seconds_field_fullname protoreflect.FullName = \"google.protobuf.Timestamp.seconds\"\n\tTimestamp_Nanos_field_fullname   protoreflect.FullName = \"google.protobuf.Timestamp.nanos\"\n)\n\n// Field numbers for google.protobuf.Timestamp.\nconst (\n\tTimestamp_Seconds_field_number protoreflect.FieldNumber = 1\n\tTimestamp_Nanos_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/type_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_type_proto = \"google/protobuf/type.proto\"\n\n// Full and short names for google.protobuf.Syntax.\nconst (\n\tSyntax_enum_fullname = \"google.protobuf.Syntax\"\n\tSyntax_enum_name     = \"Syntax\"\n)\n\n// Enum values for google.protobuf.Syntax.\nconst (\n\tSyntax_SYNTAX_PROTO2_enum_value   = 0\n\tSyntax_SYNTAX_PROTO3_enum_value   = 1\n\tSyntax_SYNTAX_EDITIONS_enum_value = 2\n)\n\n// Names for google.protobuf.Type.\nconst (\n\tType_message_name     protoreflect.Name     = \"Type\"\n\tType_message_fullname protoreflect.FullName = \"google.protobuf.Type\"\n)\n\n// Field names for google.protobuf.Type.\nconst (\n\tType_Name_field_name          protoreflect.Name = \"name\"\n\tType_Fields_field_name        protoreflect.Name = \"fields\"\n\tType_Oneofs_field_name        protoreflect.Name = \"oneofs\"\n\tType_Options_field_name       protoreflect.Name = \"options\"\n\tType_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tType_Syntax_field_name        protoreflect.Name = \"syntax\"\n\tType_Edition_field_name       protoreflect.Name = \"edition\"\n\n\tType_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Type.name\"\n\tType_Fields_field_fullname        protoreflect.FullName = \"google.protobuf.Type.fields\"\n\tType_Oneofs_field_fullname        protoreflect.FullName = \"google.protobuf.Type.oneofs\"\n\tType_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Type.options\"\n\tType_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Type.source_context\"\n\tType_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Type.syntax\"\n\tType_Edition_field_fullname       protoreflect.FullName = \"google.protobuf.Type.edition\"\n)\n\n// Field numbers for google.protobuf.Type.\nconst (\n\tType_Name_field_number          protoreflect.FieldNumber = 1\n\tType_Fields_field_number        protoreflect.FieldNumber = 2\n\tType_Oneofs_field_number        protoreflect.FieldNumber = 3\n\tType_Options_field_number       protoreflect.FieldNumber = 4\n\tType_SourceContext_field_number protoreflect.FieldNumber = 5\n\tType_Syntax_field_number        protoreflect.FieldNumber = 6\n\tType_Edition_field_number       protoreflect.FieldNumber = 7\n)\n\n// Names for google.protobuf.Field.\nconst (\n\tField_message_name     protoreflect.Name     = \"Field\"\n\tField_message_fullname protoreflect.FullName = \"google.protobuf.Field\"\n)\n\n// Field names for google.protobuf.Field.\nconst (\n\tField_Kind_field_name         protoreflect.Name = \"kind\"\n\tField_Cardinality_field_name  protoreflect.Name = \"cardinality\"\n\tField_Number_field_name       protoreflect.Name = \"number\"\n\tField_Name_field_name         protoreflect.Name = \"name\"\n\tField_TypeUrl_field_name      protoreflect.Name = \"type_url\"\n\tField_OneofIndex_field_name   protoreflect.Name = \"oneof_index\"\n\tField_Packed_field_name       protoreflect.Name = \"packed\"\n\tField_Options_field_name      protoreflect.Name = \"options\"\n\tField_JsonName_field_name     protoreflect.Name = \"json_name\"\n\tField_DefaultValue_field_name protoreflect.Name = \"default_value\"\n\n\tField_Kind_field_fullname         protoreflect.FullName = \"google.protobuf.Field.kind\"\n\tField_Cardinality_field_fullname  protoreflect.FullName = \"google.protobuf.Field.cardinality\"\n\tField_Number_field_fullname       protoreflect.FullName = \"google.protobuf.Field.number\"\n\tField_Name_field_fullname         protoreflect.FullName = \"google.protobuf.Field.name\"\n\tField_TypeUrl_field_fullname      protoreflect.FullName = \"google.protobuf.Field.type_url\"\n\tField_OneofIndex_field_fullname   protoreflect.FullName = \"google.protobuf.Field.oneof_index\"\n\tField_Packed_field_fullname       protoreflect.FullName = \"google.protobuf.Field.packed\"\n\tField_Options_field_fullname      protoreflect.FullName = \"google.protobuf.Field.options\"\n\tField_JsonName_field_fullname     protoreflect.FullName = \"google.protobuf.Field.json_name\"\n\tField_DefaultValue_field_fullname protoreflect.FullName = \"google.protobuf.Field.default_value\"\n)\n\n// Field numbers for google.protobuf.Field.\nconst (\n\tField_Kind_field_number         protoreflect.FieldNumber = 1\n\tField_Cardinality_field_number  protoreflect.FieldNumber = 2\n\tField_Number_field_number       protoreflect.FieldNumber = 3\n\tField_Name_field_number         protoreflect.FieldNumber = 4\n\tField_TypeUrl_field_number      protoreflect.FieldNumber = 6\n\tField_OneofIndex_field_number   protoreflect.FieldNumber = 7\n\tField_Packed_field_number       protoreflect.FieldNumber = 8\n\tField_Options_field_number      protoreflect.FieldNumber = 9\n\tField_JsonName_field_number     protoreflect.FieldNumber = 10\n\tField_DefaultValue_field_number protoreflect.FieldNumber = 11\n)\n\n// Full and short names for google.protobuf.Field.Kind.\nconst (\n\tField_Kind_enum_fullname = \"google.protobuf.Field.Kind\"\n\tField_Kind_enum_name     = \"Kind\"\n)\n\n// Enum values for google.protobuf.Field.Kind.\nconst (\n\tField_TYPE_UNKNOWN_enum_value  = 0\n\tField_TYPE_DOUBLE_enum_value   = 1\n\tField_TYPE_FLOAT_enum_value    = 2\n\tField_TYPE_INT64_enum_value    = 3\n\tField_TYPE_UINT64_enum_value   = 4\n\tField_TYPE_INT32_enum_value    = 5\n\tField_TYPE_FIXED64_enum_value  = 6\n\tField_TYPE_FIXED32_enum_value  = 7\n\tField_TYPE_BOOL_enum_value     = 8\n\tField_TYPE_STRING_enum_value   = 9\n\tField_TYPE_GROUP_enum_value    = 10\n\tField_TYPE_MESSAGE_enum_value  = 11\n\tField_TYPE_BYTES_enum_value    = 12\n\tField_TYPE_UINT32_enum_value   = 13\n\tField_TYPE_ENUM_enum_value     = 14\n\tField_TYPE_SFIXED32_enum_value = 15\n\tField_TYPE_SFIXED64_enum_value = 16\n\tField_TYPE_SINT32_enum_value   = 17\n\tField_TYPE_SINT64_enum_value   = 18\n)\n\n// Full and short names for google.protobuf.Field.Cardinality.\nconst (\n\tField_Cardinality_enum_fullname = \"google.protobuf.Field.Cardinality\"\n\tField_Cardinality_enum_name     = \"Cardinality\"\n)\n\n// Enum values for google.protobuf.Field.Cardinality.\nconst (\n\tField_CARDINALITY_UNKNOWN_enum_value  = 0\n\tField_CARDINALITY_OPTIONAL_enum_value = 1\n\tField_CARDINALITY_REQUIRED_enum_value = 2\n\tField_CARDINALITY_REPEATED_enum_value = 3\n)\n\n// Names for google.protobuf.Enum.\nconst (\n\tEnum_message_name     protoreflect.Name     = \"Enum\"\n\tEnum_message_fullname protoreflect.FullName = \"google.protobuf.Enum\"\n)\n\n// Field names for google.protobuf.Enum.\nconst (\n\tEnum_Name_field_name          protoreflect.Name = \"name\"\n\tEnum_Enumvalue_field_name     protoreflect.Name = \"enumvalue\"\n\tEnum_Options_field_name       protoreflect.Name = \"options\"\n\tEnum_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tEnum_Syntax_field_name        protoreflect.Name = \"syntax\"\n\tEnum_Edition_field_name       protoreflect.Name = \"edition\"\n\n\tEnum_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Enum.name\"\n\tEnum_Enumvalue_field_fullname     protoreflect.FullName = \"google.protobuf.Enum.enumvalue\"\n\tEnum_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Enum.options\"\n\tEnum_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Enum.source_context\"\n\tEnum_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Enum.syntax\"\n\tEnum_Edition_field_fullname       protoreflect.FullName = \"google.protobuf.Enum.edition\"\n)\n\n// Field numbers for google.protobuf.Enum.\nconst (\n\tEnum_Name_field_number          protoreflect.FieldNumber = 1\n\tEnum_Enumvalue_field_number     protoreflect.FieldNumber = 2\n\tEnum_Options_field_number       protoreflect.FieldNumber = 3\n\tEnum_SourceContext_field_number protoreflect.FieldNumber = 4\n\tEnum_Syntax_field_number        protoreflect.FieldNumber = 5\n\tEnum_Edition_field_number       protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.EnumValue.\nconst (\n\tEnumValue_message_name     protoreflect.Name     = \"EnumValue\"\n\tEnumValue_message_fullname protoreflect.FullName = \"google.protobuf.EnumValue\"\n)\n\n// Field names for google.protobuf.EnumValue.\nconst (\n\tEnumValue_Name_field_name    protoreflect.Name = \"name\"\n\tEnumValue_Number_field_name  protoreflect.Name = \"number\"\n\tEnumValue_Options_field_name protoreflect.Name = \"options\"\n\n\tEnumValue_Name_field_fullname    protoreflect.FullName = \"google.protobuf.EnumValue.name\"\n\tEnumValue_Number_field_fullname  protoreflect.FullName = \"google.protobuf.EnumValue.number\"\n\tEnumValue_Options_field_fullname protoreflect.FullName = \"google.protobuf.EnumValue.options\"\n)\n\n// Field numbers for google.protobuf.EnumValue.\nconst (\n\tEnumValue_Name_field_number    protoreflect.FieldNumber = 1\n\tEnumValue_Number_field_number  protoreflect.FieldNumber = 2\n\tEnumValue_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.Option.\nconst (\n\tOption_message_name     protoreflect.Name     = \"Option\"\n\tOption_message_fullname protoreflect.FullName = \"google.protobuf.Option\"\n)\n\n// Field names for google.protobuf.Option.\nconst (\n\tOption_Name_field_name  protoreflect.Name = \"name\"\n\tOption_Value_field_name protoreflect.Name = \"value\"\n\n\tOption_Name_field_fullname  protoreflect.FullName = \"google.protobuf.Option.name\"\n\tOption_Value_field_fullname protoreflect.FullName = \"google.protobuf.Option.value\"\n)\n\n// Field numbers for google.protobuf.Option.\nconst (\n\tOption_Name_field_number  protoreflect.FieldNumber = 1\n\tOption_Value_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// Generic field name and number for messages in wrappers.proto.\nconst (\n\tWrapperValue_Value_field_name   protoreflect.Name        = \"value\"\n\tWrapperValue_Value_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_wrappers_proto = \"google/protobuf/wrappers.proto\"\n\n// Names for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_message_name     protoreflect.Name     = \"DoubleValue\"\n\tDoubleValue_message_fullname protoreflect.FullName = \"google.protobuf.DoubleValue\"\n)\n\n// Field names for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_Value_field_name protoreflect.Name = \"value\"\n\n\tDoubleValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.DoubleValue.value\"\n)\n\n// Field numbers for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.FloatValue.\nconst (\n\tFloatValue_message_name     protoreflect.Name     = \"FloatValue\"\n\tFloatValue_message_fullname protoreflect.FullName = \"google.protobuf.FloatValue\"\n)\n\n// Field names for google.protobuf.FloatValue.\nconst (\n\tFloatValue_Value_field_name protoreflect.Name = \"value\"\n\n\tFloatValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.FloatValue.value\"\n)\n\n// Field numbers for google.protobuf.FloatValue.\nconst (\n\tFloatValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Int64Value.\nconst (\n\tInt64Value_message_name     protoreflect.Name     = \"Int64Value\"\n\tInt64Value_message_fullname protoreflect.FullName = \"google.protobuf.Int64Value\"\n)\n\n// Field names for google.protobuf.Int64Value.\nconst (\n\tInt64Value_Value_field_name protoreflect.Name = \"value\"\n\n\tInt64Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.Int64Value.value\"\n)\n\n// Field numbers for google.protobuf.Int64Value.\nconst (\n\tInt64Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_message_name     protoreflect.Name     = \"UInt64Value\"\n\tUInt64Value_message_fullname protoreflect.FullName = \"google.protobuf.UInt64Value\"\n)\n\n// Field names for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_Value_field_name protoreflect.Name = \"value\"\n\n\tUInt64Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.UInt64Value.value\"\n)\n\n// Field numbers for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Int32Value.\nconst (\n\tInt32Value_message_name     protoreflect.Name     = \"Int32Value\"\n\tInt32Value_message_fullname protoreflect.FullName = \"google.protobuf.Int32Value\"\n)\n\n// Field names for google.protobuf.Int32Value.\nconst (\n\tInt32Value_Value_field_name protoreflect.Name = \"value\"\n\n\tInt32Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.Int32Value.value\"\n)\n\n// Field numbers for google.protobuf.Int32Value.\nconst (\n\tInt32Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_message_name     protoreflect.Name     = \"UInt32Value\"\n\tUInt32Value_message_fullname protoreflect.FullName = \"google.protobuf.UInt32Value\"\n)\n\n// Field names for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_Value_field_name protoreflect.Name = \"value\"\n\n\tUInt32Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.UInt32Value.value\"\n)\n\n// Field numbers for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.BoolValue.\nconst (\n\tBoolValue_message_name     protoreflect.Name     = \"BoolValue\"\n\tBoolValue_message_fullname protoreflect.FullName = \"google.protobuf.BoolValue\"\n)\n\n// Field names for google.protobuf.BoolValue.\nconst (\n\tBoolValue_Value_field_name protoreflect.Name = \"value\"\n\n\tBoolValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.BoolValue.value\"\n)\n\n// Field numbers for google.protobuf.BoolValue.\nconst (\n\tBoolValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.StringValue.\nconst (\n\tStringValue_message_name     protoreflect.Name     = \"StringValue\"\n\tStringValue_message_fullname protoreflect.FullName = \"google.protobuf.StringValue\"\n)\n\n// Field names for google.protobuf.StringValue.\nconst (\n\tStringValue_Value_field_name protoreflect.Name = \"value\"\n\n\tStringValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.StringValue.value\"\n)\n\n// Field numbers for google.protobuf.StringValue.\nconst (\n\tStringValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.BytesValue.\nconst (\n\tBytesValue_message_name     protoreflect.Name     = \"BytesValue\"\n\tBytesValue_message_fullname protoreflect.FullName = \"google.protobuf.BytesValue\"\n)\n\n// Field names for google.protobuf.BytesValue.\nconst (\n\tBytesValue_Value_field_name protoreflect.Name = \"value\"\n\n\tBytesValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.BytesValue.value\"\n)\n\n// Field numbers for google.protobuf.BytesValue.\nconst (\n\tBytesValue_Value_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/api_export.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Export is a zero-length named type that exists only to export a set of\n// functions that we do not want to appear in godoc.\ntype Export struct{}\n\n// NewError formats a string according to the format specifier and arguments and\n// returns an error that has a \"proto\" prefix.\nfunc (Export) NewError(f string, x ...any) error {\n\treturn errors.New(f, x...)\n}\n\n// enum is any enum type generated by protoc-gen-go\n// and must be a named int32 type.\ntype enum = any\n\n// EnumOf returns the protoreflect.Enum interface over e.\n// It returns nil if e is nil.\nfunc (Export) EnumOf(e enum) protoreflect.Enum {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e\n\tdefault:\n\t\treturn legacyWrapEnum(reflect.ValueOf(e))\n\t}\n}\n\n// EnumDescriptorOf returns the protoreflect.EnumDescriptor for e.\n// It returns nil if e is nil.\nfunc (Export) EnumDescriptorOf(e enum) protoreflect.EnumDescriptor {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e.Descriptor()\n\tdefault:\n\t\treturn LegacyLoadEnumDesc(reflect.TypeOf(e))\n\t}\n}\n\n// EnumTypeOf returns the protoreflect.EnumType for e.\n// It returns nil if e is nil.\nfunc (Export) EnumTypeOf(e enum) protoreflect.EnumType {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e.Type()\n\tdefault:\n\t\treturn legacyLoadEnumType(reflect.TypeOf(e))\n\t}\n}\n\n// EnumStringOf returns the enum value as a string, either as the name if\n// the number is resolvable, or the number formatted as a string.\nfunc (Export) EnumStringOf(ed protoreflect.EnumDescriptor, n protoreflect.EnumNumber) string {\n\tev := ed.Values().ByNumber(n)\n\tif ev != nil {\n\t\treturn string(ev.Name())\n\t}\n\treturn strconv.Itoa(int(n))\n}\n\n// message is any message type generated by protoc-gen-go\n// and must be a pointer to a named struct type.\ntype message = any\n\n// legacyMessageWrapper wraps a v2 message as a v1 message.\ntype legacyMessageWrapper struct{ m protoreflect.ProtoMessage }\n\nfunc (m legacyMessageWrapper) Reset()         { proto.Reset(m.m) }\nfunc (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) }\nfunc (m legacyMessageWrapper) ProtoMessage()  {}\n\n// ProtoMessageV1Of converts either a v1 or v2 message to a v1 message.\n// It returns nil if m is nil.\nfunc (Export) ProtoMessageV1Of(m message) protoiface.MessageV1 {\n\tswitch mv := m.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoiface.MessageV1:\n\t\treturn mv\n\tcase unwrapper:\n\t\treturn Export{}.ProtoMessageV1Of(mv.protoUnwrap())\n\tcase protoreflect.ProtoMessage:\n\t\treturn legacyMessageWrapper{mv}\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"message %T is neither a v1 or v2 Message\", m))\n\t}\n}\n\nfunc (Export) protoMessageV2Of(m message) protoreflect.ProtoMessage {\n\tswitch mv := m.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.ProtoMessage:\n\t\treturn mv\n\tcase legacyMessageWrapper:\n\t\treturn mv.m\n\tcase protoiface.MessageV1:\n\t\treturn nil\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"message %T is neither a v1 or v2 Message\", m))\n\t}\n}\n\n// ProtoMessageV2Of converts either a v1 or v2 message to a v2 message.\n// It returns nil if m is nil.\nfunc (Export) ProtoMessageV2Of(m message) protoreflect.ProtoMessage {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv\n\t}\n\treturn legacyWrapMessage(reflect.ValueOf(m)).Interface()\n}\n\n// MessageOf returns the protoreflect.Message interface over m.\n// It returns nil if m is nil.\nfunc (Export) MessageOf(m message) protoreflect.Message {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect()\n\t}\n\treturn legacyWrapMessage(reflect.ValueOf(m))\n}\n\n// MessageDescriptorOf returns the protoreflect.MessageDescriptor for m.\n// It returns nil if m is nil.\nfunc (Export) MessageDescriptorOf(m message) protoreflect.MessageDescriptor {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Descriptor()\n\t}\n\treturn LegacyLoadMessageDesc(reflect.TypeOf(m))\n}\n\n// MessageTypeOf returns the protoreflect.MessageType for m.\n// It returns nil if m is nil.\nfunc (Export) MessageTypeOf(m message) protoreflect.MessageType {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Type()\n\t}\n\treturn legacyLoadMessageType(reflect.TypeOf(m), \"\")\n}\n\n// MessageStringOf returns the message value as a string,\n// which is the message serialized in the protobuf text format.\nfunc (Export) MessageStringOf(m protoreflect.ProtoMessage) string {\n\treturn prototext.MarshalOptions{Multiline: false}.Format(m)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/api_export_opaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc (Export) UnmarshalField(msg any, fieldNum int32) {\n\tUnmarshalField(msg.(protoreflect.ProtoMessage).ProtoReflect(), protoreflect.FieldNumber(fieldNum))\n}\n\n// Present checks the presence set for a certain field number (zero\n// based, ordered by appearance in original proto file). part is\n// a pointer to the correct element in the bitmask array, num is the\n// field number unaltered.  Example (field number 70 -> part =\n// &m.XXX_presence[1], num = 70)\nfunc (Export) Present(part *uint32, num uint32) bool {\n\t// This hook will read an unprotected shadow presence set if\n\t// we're unning under the race detector\n\traceDetectHookPresent(part, num)\n\treturn atomic.LoadUint32(part)&(1<<(num%32)) > 0\n}\n\n// SetPresent adds a field to the presence set. part is a pointer to\n// the relevant element in the array and num is the field number\n// unaltered.  size is the number of fields in the protocol\n// buffer.\nfunc (Export) SetPresent(part *uint32, num uint32, size uint32) {\n\t// This hook will mutate an unprotected shadow presence set if\n\t// we're running under the race detector\n\traceDetectHookSetPresent(part, num, presenceSize(size))\n\tfor {\n\t\told := atomic.LoadUint32(part)\n\t\tif atomic.CompareAndSwapUint32(part, old, old|(1<<(num%32))) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// SetPresentNonAtomic is like SetPresent, but operates non-atomically.\n// It is meant for use by builder methods, where the message is known not\n// to be accessible yet by other goroutines.\nfunc (Export) SetPresentNonAtomic(part *uint32, num uint32, size uint32) {\n\t// This hook will mutate an unprotected shadow presence set if\n\t// we're running under the race detector\n\traceDetectHookSetPresent(part, num, presenceSize(size))\n\t*part |= 1 << (num % 32)\n}\n\n// ClearPresence removes a field from the presence set. part is a\n// pointer to the relevant element in the presence array and num is\n// the field number unaltered.\nfunc (Export) ClearPresent(part *uint32, num uint32) {\n\t// This hook will mutate an unprotected shadow presence set if\n\t// we're running under the race detector\n\traceDetectHookClearPresent(part, num)\n\tfor {\n\t\told := atomic.LoadUint32(part)\n\t\tif atomic.CompareAndSwapUint32(part, old, old&^(1<<(num%32))) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// interfaceToPointer takes a pointer to an empty interface whose value is a\n// pointer type, and converts it into a \"pointer\" that points to the same\n// target\nfunc interfaceToPointer(i *any) pointer {\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\nfunc (p pointer) atomicGetPointer() pointer {\n\treturn pointer{p: atomic.LoadPointer((*unsafe.Pointer)(p.p))}\n}\n\nfunc (p pointer) atomicSetPointer(q pointer) {\n\tatomic.StorePointer((*unsafe.Pointer)(p.p), q.p)\n}\n\n// AtomicCheckPointerIsNil takes an interface (which is a pointer to a\n// pointer) and returns true if the pointed-to pointer is nil (using an\n// atomic load).  This function is inlineable and, on x86, just becomes a\n// simple load and compare.\nfunc (Export) AtomicCheckPointerIsNil(ptr any) bool {\n\treturn interfaceToPointer(&ptr).atomicGetPointer().IsNil()\n}\n\n// AtomicSetPointer takes two interfaces (first is a pointer to a pointer,\n// second is a pointer) and atomically sets the second pointer into location\n// referenced by first pointer.  Unfortunately, atomicSetPointer() does not inline\n// (even on x86), so this does not become a simple store on x86.\nfunc (Export) AtomicSetPointer(dstPtr, valPtr any) {\n\tinterfaceToPointer(&dstPtr).atomicSetPointer(interfaceToPointer(&valPtr))\n}\n\n// AtomicLoadPointer loads the pointer at the location pointed at by src,\n// and stores that pointer value into the location pointed at by dst.\nfunc (Export) AtomicLoadPointer(ptr Pointer, dst Pointer) {\n\t*(*unsafe.Pointer)(unsafe.Pointer(dst)) = atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(ptr)))\n}\n\n// AtomicInitializePointer makes ptr and dst point to the same value.\n//\n// If *ptr is a nil pointer, it sets *ptr = *dst.\n//\n// If *ptr is a non-nil pointer, it sets *dst = *ptr.\nfunc (Export) AtomicInitializePointer(ptr Pointer, dst Pointer) {\n\tif !atomic.CompareAndSwapPointer((*unsafe.Pointer)(ptr), unsafe.Pointer(nil), *(*unsafe.Pointer)(dst)) {\n\t\t*(*unsafe.Pointer)(unsafe.Pointer(dst)) = atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(ptr)))\n\t}\n}\n\n// MessageFieldStringOf returns the field formatted as a string,\n// either as the field name if resolvable otherwise as a decimal string.\nfunc (Export) MessageFieldStringOf(md protoreflect.MessageDescriptor, n protoreflect.FieldNumber) string {\n\tfd := md.Fields().ByNumber(n)\n\tif fd != nil {\n\t\treturn string(fd.Name())\n\t}\n\treturn strconv.Itoa(int(n))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/bitmap.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !race\n\npackage impl\n\n// There is no additional data as we're not running under race detector.\ntype RaceDetectHookData struct{}\n\n// Empty stubs for when not using the race detector. Calls to these from index.go should be optimized away.\nfunc (presence) raceDetectHookPresent(num uint32)                       {}\nfunc (presence) raceDetectHookSetPresent(num uint32, size presenceSize) {}\nfunc (presence) raceDetectHookClearPresent(num uint32)                  {}\nfunc (presence) raceDetectHookAllocAndCopy(src presence)                {}\n\n// raceDetectHookPresent is called by the generated file interface\n// (*proto.internalFuncs) Present to optionally read an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookPresent(field *uint32, num uint32) {}\n\n// raceDetectHookSetPresent is called by the generated file interface\n// (*proto.internalFuncs) SetPresent to optionally write an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookSetPresent(field *uint32, num uint32, size presenceSize) {}\n\n// raceDetectHookClearPresent is called by the generated file interface\n// (*proto.internalFuncs) ClearPresent to optionally write an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookClearPresent(field *uint32, num uint32) {}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/bitmap_race.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build race\n\npackage impl\n\n// When running under race detector, we add a presence map of bytes, that we can access\n// in the hook functions so that we trigger the race detection whenever we have concurrent\n// Read-Writes or Write-Writes. The race detector does not otherwise detect invalid concurrent\n// access to lazy fields as all updates of bitmaps and pointers are done using atomic operations.\ntype RaceDetectHookData struct {\n\tshadowPresence *[]byte\n}\n\n// Hooks for presence bitmap operations that allocate, read and write the shadowPresence\n// using non-atomic operations.\nfunc (data *RaceDetectHookData) raceDetectHookAlloc(size presenceSize) {\n\tsp := make([]byte, size)\n\tatomicStoreShadowPresence(&data.shadowPresence, &sp)\n}\n\nfunc (p presence) raceDetectHookPresent(num uint32) {\n\tdata := p.toRaceDetectData()\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp != nil {\n\t\t_ = (*sp)[num]\n\t}\n}\n\nfunc (p presence) raceDetectHookSetPresent(num uint32, size presenceSize) {\n\tdata := p.toRaceDetectData()\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp == nil {\n\t\tdata.raceDetectHookAlloc(size)\n\t\tsp = atomicLoadShadowPresence(&data.shadowPresence)\n\t}\n\t(*sp)[num] = 1\n}\n\nfunc (p presence) raceDetectHookClearPresent(num uint32) {\n\tdata := p.toRaceDetectData()\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp != nil {\n\t\t(*sp)[num] = 0\n\n\t}\n}\n\n// raceDetectHookAllocAndCopy allocates a new shadowPresence slice at lazy and copies\n// shadowPresence bytes from src to lazy.\nfunc (p presence) raceDetectHookAllocAndCopy(q presence) {\n\tsData := q.toRaceDetectData()\n\tdData := p.toRaceDetectData()\n\tif sData == nil {\n\t\treturn\n\t}\n\tsrcSp := atomicLoadShadowPresence(&sData.shadowPresence)\n\tif srcSp == nil {\n\t\tatomicStoreShadowPresence(&dData.shadowPresence, nil)\n\t\treturn\n\t}\n\tn := len(*srcSp)\n\tdSlice := make([]byte, n)\n\tatomicStoreShadowPresence(&dData.shadowPresence, &dSlice)\n\tfor i := 0; i < n; i++ {\n\t\tdSlice[i] = (*srcSp)[i]\n\t}\n}\n\n// raceDetectHookPresent is called by the generated file interface\n// (*proto.internalFuncs) Present to optionally read an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookPresent(field *uint32, num uint32) {\n\tdata := findPointerToRaceDetectData(field, num)\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp != nil {\n\t\t_ = (*sp)[num]\n\t}\n}\n\n// raceDetectHookSetPresent is called by the generated file interface\n// (*proto.internalFuncs) SetPresent to optionally write an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookSetPresent(field *uint32, num uint32, size presenceSize) {\n\tdata := findPointerToRaceDetectData(field, num)\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp == nil {\n\t\tdata.raceDetectHookAlloc(size)\n\t\tsp = atomicLoadShadowPresence(&data.shadowPresence)\n\t}\n\t(*sp)[num] = 1\n}\n\n// raceDetectHookClearPresent is called by the generated file interface\n// (*proto.internalFuncs) ClearPresent to optionally write an unprotected\n// shadow bitmap when race detection is enabled. In regular code it is\n// a noop.\nfunc raceDetectHookClearPresent(field *uint32, num uint32) {\n\tdata := findPointerToRaceDetectData(field, num)\n\tif data == nil {\n\t\treturn\n\t}\n\tsp := atomicLoadShadowPresence(&data.shadowPresence)\n\tif sp != nil {\n\t\t(*sp)[num] = 0\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/checkinit.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (mi *MessageInfo) checkInitialized(in protoiface.CheckInitializedInput) (protoiface.CheckInitializedOutput, error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\treturn protoiface.CheckInitializedOutput{}, mi.checkInitializedPointer(p)\n}\n\nfunc (mi *MessageInfo) checkInitializedPointer(p pointer) error {\n\tmi.init()\n\tif !mi.needsInitCheck {\n\t\treturn nil\n\t}\n\tif p.IsNil() {\n\t\tfor _, f := range mi.orderedCoderFields {\n\t\t\tif f.isRequired {\n\t\t\t\treturn errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tvar presence presence\n\tif mi.presenceOffset.IsValid() {\n\t\tpresence = p.Apply(mi.presenceOffset).PresenceInfo()\n\t}\n\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\tif err := mi.isInitExtensions(e); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif !f.isRequired && f.funcs.isInit == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif f.presenceIndex != noPresence {\n\t\t\tif !presence.Present(f.presenceIndex) {\n\t\t\t\tif f.isRequired {\n\t\t\t\t\treturn errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif f.funcs.isInit != nil {\n\t\t\t\tf.mi.init()\n\t\t\t\tif f.mi.needsInitCheck {\n\t\t\t\t\tif f.isLazy && p.Apply(f.offset).AtomicGetPointer().IsNil() {\n\t\t\t\t\t\tlazy := *p.Apply(mi.lazyOffset).LazyInfoPtr()\n\t\t\t\t\t\tif !lazy.AllowedPartial() {\n\t\t\t\t\t\t\t// Nothing to see here, it was checked on unmarshal\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmi.lazyUnmarshal(p, f.num)\n\t\t\t\t\t}\n\t\t\t\t\tif err := f.funcs.isInit(p.Apply(f.offset), f); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tfptr := p.Apply(f.offset)\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tif f.isRequired {\n\t\t\t\treturn errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif f.funcs.isInit == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif err := f.funcs.isInit(fptr, f); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (mi *MessageInfo) isInitExtensions(ext *map[int32]ExtensionField) error {\n\tif ext == nil {\n\t\treturn nil\n\t}\n\tfor _, x := range *ext {\n\t\tei := getExtensionFieldInfo(x.Type())\n\t\tif ei.funcs.isInit == nil || x.isUnexpandedLazy() {\n\t\t\tcontinue\n\t\t}\n\t\tv := x.Value()\n\t\tif !v.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif err := ei.funcs.isInit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nvar (\n\tneedsInitCheckMu  sync.Mutex\n\tneedsInitCheckMap sync.Map\n)\n\n// needsInitCheck reports whether a message needs to be checked for partial initialization.\n//\n// It returns true if the message transitively includes any required or extension fields.\nfunc needsInitCheck(md protoreflect.MessageDescriptor) bool {\n\tif v, ok := needsInitCheckMap.Load(md); ok {\n\t\tif has, ok := v.(bool); ok {\n\t\t\treturn has\n\t\t}\n\t}\n\tneedsInitCheckMu.Lock()\n\tdefer needsInitCheckMu.Unlock()\n\treturn needsInitCheckLocked(md)\n}\n\nfunc needsInitCheckLocked(md protoreflect.MessageDescriptor) (has bool) {\n\tif v, ok := needsInitCheckMap.Load(md); ok {\n\t\t// If has is true, we've previously determined that this message\n\t\t// needs init checks.\n\t\t//\n\t\t// If has is false, we've previously determined that it can never\n\t\t// be uninitialized.\n\t\t//\n\t\t// If has is not a bool, we've just encountered a cycle in the\n\t\t// message graph. In this case, it is safe to return false: If\n\t\t// the message does have required fields, we'll detect them later\n\t\t// in the graph traversal.\n\t\thas, ok := v.(bool)\n\t\treturn ok && has\n\t}\n\tneedsInitCheckMap.Store(md, struct{}{}) // avoid cycles while descending into this message\n\tdefer func() {\n\t\tneedsInitCheckMap.Store(md, has)\n\t}()\n\tif md.RequiredNumbers().Len() > 0 {\n\t\treturn true\n\t}\n\tif md.ExtensionRanges().Len() > 0 {\n\t\treturn true\n\t}\n\tfor i := 0; i < md.Fields().Len(); i++ {\n\t\tfd := md.Fields().Get(i)\n\t\t// Map keys are never messages, so just consider the map value.\n\t\tif fd.IsMap() {\n\t\t\tfd = fd.MapValue()\n\t\t}\n\t\tfmd := fd.Message()\n\t\tif fmd != nil && needsInitCheckLocked(fmd) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype extensionFieldInfo struct {\n\twiretag             uint64\n\ttagsize             int\n\tunmarshalNeedsValue bool\n\tfuncs               valueCoderFuncs\n\tvalidation          validationInfo\n}\n\nfunc getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {\n\tif xi, ok := xt.(*ExtensionInfo); ok {\n\t\txi.lazyInit()\n\t\treturn xi.info\n\t}\n\t// Ideally we'd cache the resulting *extensionFieldInfo so we don't have to\n\t// recompute this metadata repeatedly. But without support for something like\n\t// weak references, such a cache would pin temporary values (like dynamic\n\t// extension types, constructed for the duration of a user request) to the\n\t// heap forever, causing memory usage of the cache to grow unbounded.\n\t// See discussion in https://github.com/golang/protobuf/issues/1521.\n\treturn makeExtensionFieldInfo(xt.TypeDescriptor())\n}\n\nfunc makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo {\n\tvar wiretag uint64\n\tif !xd.IsPacked() {\n\t\twiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()])\n\t} else {\n\t\twiretag = protowire.EncodeTag(xd.Number(), protowire.BytesType)\n\t}\n\te := &extensionFieldInfo{\n\t\twiretag: wiretag,\n\t\ttagsize: protowire.SizeVarint(wiretag),\n\t\tfuncs:   encoderFuncsForValue(xd),\n\t}\n\t// Does the unmarshal function need a value passed to it?\n\t// This is true for composite types, where we pass in a message, list, or map to fill in,\n\t// and for enums, where we pass in a prototype value to specify the concrete enum type.\n\tswitch xd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind, protoreflect.EnumKind:\n\t\te.unmarshalNeedsValue = true\n\tdefault:\n\t\tif xd.Cardinality() == protoreflect.Repeated {\n\t\t\te.unmarshalNeedsValue = true\n\t\t}\n\t}\n\treturn e\n}\n\ntype lazyExtensionValue struct {\n\tatomicOnce uint32 // atomically set if value is valid\n\tmu         sync.Mutex\n\txi         *extensionFieldInfo\n\tvalue      protoreflect.Value\n\tb          []byte\n}\n\ntype ExtensionField struct {\n\ttyp protoreflect.ExtensionType\n\n\t// value is either the value of GetValue,\n\t// or a *lazyExtensionValue that then returns the value of GetValue.\n\tvalue protoreflect.Value\n\tlazy  *lazyExtensionValue\n}\n\nfunc (f *ExtensionField) appendLazyBytes(xt protoreflect.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) {\n\tif f.lazy == nil {\n\t\tf.lazy = &lazyExtensionValue{xi: xi}\n\t}\n\tf.typ = xt\n\tf.lazy.xi = xi\n\tf.lazy.b = protowire.AppendTag(f.lazy.b, num, wtyp)\n\tf.lazy.b = append(f.lazy.b, b...)\n}\n\nfunc (f *ExtensionField) canLazy(xt protoreflect.ExtensionType) bool {\n\tif f.typ == nil {\n\t\treturn true\n\t}\n\tif f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// isUnexpandedLazy returns true if the ExensionField is lazy and not\n// yet expanded, which means it's present and already checked for\n// initialized required fields.\nfunc (f *ExtensionField) isUnexpandedLazy() bool {\n\treturn f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0\n}\n\n// lazyBuffer retrieves the buffer for a lazy extension if it's not yet expanded.\n//\n// The returned buffer has to be kept over whatever operation we're planning,\n// as re-retrieving it will fail after the message is lazily decoded.\nfunc (f *ExtensionField) lazyBuffer() []byte {\n\t// This function might be in the critical path, so check the atomic without\n\t// taking a look first, then only take the lock if needed.\n\tif !f.isUnexpandedLazy() {\n\t\treturn nil\n\t}\n\tf.lazy.mu.Lock()\n\tdefer f.lazy.mu.Unlock()\n\treturn f.lazy.b\n}\n\nfunc (f *ExtensionField) lazyInit() {\n\tf.lazy.mu.Lock()\n\tdefer f.lazy.mu.Unlock()\n\tif atomic.LoadUint32(&f.lazy.atomicOnce) == 1 {\n\t\treturn\n\t}\n\tif f.lazy.xi != nil {\n\t\tb := f.lazy.b\n\t\tval := f.typ.New()\n\t\tfor len(b) > 0 {\n\t\t\tvar tag uint64\n\t\t\tif b[0] < 0x80 {\n\t\t\t\ttag = uint64(b[0])\n\t\t\t\tb = b[1:]\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tb = b[2:]\n\t\t\t} else {\n\t\t\t\tvar n int\n\t\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\t\tif n < 0 {\n\t\t\t\t\tpanic(errors.New(\"bad tag in lazy extension decoding\"))\n\t\t\t\t}\n\t\t\t\tb = b[n:]\n\t\t\t}\n\t\t\tnum := protowire.Number(tag >> 3)\n\t\t\twtyp := protowire.Type(tag & 7)\n\t\t\tvar out unmarshalOutput\n\t\t\tvar err error\n\t\t\tval, out, err = f.lazy.xi.funcs.unmarshal(b, val, num, wtyp, lazyUnmarshalOptions)\n\t\t\tif err != nil {\n\t\t\t\tpanic(errors.New(\"decode failure in lazy extension decoding: %v\", err))\n\t\t\t}\n\t\t\tb = b[out.n:]\n\t\t}\n\t\tf.lazy.value = val\n\t} else {\n\t\tpanic(\"No support for lazy fns for ExtensionField\")\n\t}\n\tf.lazy.xi = nil\n\tf.lazy.b = nil\n\tatomic.StoreUint32(&f.lazy.atomicOnce, 1)\n}\n\n// Set sets the type and value of the extension field.\n// This must not be called concurrently.\nfunc (f *ExtensionField) Set(t protoreflect.ExtensionType, v protoreflect.Value) {\n\tf.typ = t\n\tf.value = v\n\tf.lazy = nil\n}\n\n// Value returns the value of the extension field.\n// This may be called concurrently.\nfunc (f *ExtensionField) Value() protoreflect.Value {\n\tif f.lazy != nil {\n\t\tif atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {\n\t\t\tf.lazyInit()\n\t\t}\n\t\treturn f.lazy.value\n\t}\n\treturn f.value\n}\n\n// Type returns the type of the extension field.\n// This may be called concurrently.\nfunc (f ExtensionField) Type() protoreflect.ExtensionType {\n\treturn f.typ\n}\n\n// IsSet returns whether the extension field is set.\n// This may be called concurrently.\nfunc (f ExtensionField) IsSet() bool {\n\treturn f.typ != nil\n}\n\n// IsLazy reports whether a field is lazily encoded.\n// It is exported for testing.\nfunc IsLazy(m protoreflect.Message, fd protoreflect.FieldDescriptor) bool {\n\tvar mi *MessageInfo\n\tvar p pointer\n\tswitch m := m.(type) {\n\tcase *messageState:\n\t\tmi = m.messageInfo()\n\t\tp = m.pointer()\n\tcase *messageReflectWrapper:\n\t\tmi = m.messageInfo()\n\t\tp = m.pointer()\n\tdefault:\n\t\treturn false\n\t}\n\txd, ok := fd.(protoreflect.ExtensionTypeDescriptor)\n\tif !ok {\n\t\treturn false\n\t}\n\txt := xd.Type()\n\text := mi.extensionMap(p)\n\tif ext == nil {\n\t\treturn false\n\t}\n\tf, ok := (*ext)[int32(fd.Number())]\n\tif !ok {\n\t\treturn false\n\t}\n\treturn f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_field.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype errInvalidUTF8 struct{}\n\nfunc (errInvalidUTF8) Error() string     { return \"string field contains invalid UTF-8\" }\nfunc (errInvalidUTF8) InvalidUTF8() bool { return true }\nfunc (errInvalidUTF8) Unwrap() error     { return errors.Error }\n\n// initOneofFieldCoders initializes the fast-path functions for the fields in a oneof.\n//\n// For size, marshal, and isInit operations, functions are set only on the first field\n// in the oneof. The functions are called when the oneof is non-nil, and will dispatch\n// to the appropriate field-specific function as necessary.\n//\n// The unmarshal function is set on each field individually as usual.\nfunc (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si structInfo) {\n\tfs := si.oneofsByName[od.Name()]\n\tft := fs.Type\n\toneofFields := make(map[reflect.Type]*coderFieldInfo)\n\tneedIsInit := false\n\tfields := od.Fields()\n\tfor i, lim := 0, fields.Len(); i < lim; i++ {\n\t\tfd := od.Fields().Get(i)\n\t\tnum := fd.Number()\n\t\t// Make a copy of the original coderFieldInfo for use in unmarshaling.\n\t\t//\n\t\t// oneofFields[oneofType].funcs.marshal is the field-specific marshal function.\n\t\t//\n\t\t// mi.coderFields[num].marshal is set on only the first field in the oneof,\n\t\t// and dispatches to the field-specific marshaler in oneofFields.\n\t\tcf := *mi.coderFields[num]\n\t\tot := si.oneofWrappersByNumber[num]\n\t\tcf.ft = ot.Field(0).Type\n\t\tcf.mi, cf.funcs = fieldCoder(fd, cf.ft)\n\t\toneofFields[ot] = &cf\n\t\tif cf.funcs.isInit != nil {\n\t\t\tneedIsInit = true\n\t\t}\n\t\tmi.coderFields[num].funcs.unmarshal = func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\tvar vw reflect.Value         // pointer to wrapper type\n\t\t\tvi := p.AsValueOf(ft).Elem() // oneof field value of interface kind\n\t\t\tif !vi.IsNil() && !vi.Elem().IsNil() && vi.Elem().Elem().Type() == ot {\n\t\t\t\tvw = vi.Elem()\n\t\t\t} else {\n\t\t\t\tvw = reflect.New(ot)\n\t\t\t}\n\t\t\tout, err := cf.funcs.unmarshal(b, pointerOfValue(vw).Apply(zeroOffset), wtyp, &cf, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tif cf.funcs.isInit == nil {\n\t\t\t\tout.initialized = true\n\t\t\t}\n\t\t\tvi.Set(vw)\n\t\t\treturn out, nil\n\t\t}\n\t}\n\tgetInfo := func(p pointer) (pointer, *coderFieldInfo) {\n\t\tv := p.AsValueOf(ft).Elem()\n\t\tif v.IsNil() {\n\t\t\treturn pointer{}, nil\n\t\t}\n\t\tv = v.Elem() // interface -> *struct\n\t\tif v.IsNil() {\n\t\t\treturn pointer{}, nil\n\t\t}\n\t\treturn pointerOfValue(v).Apply(zeroOffset), oneofFields[v.Elem().Type()]\n\t}\n\tfirst := mi.coderFields[od.Fields().Get(0).Number()]\n\tfirst.funcs.size = func(p pointer, _ *coderFieldInfo, opts marshalOptions) int {\n\t\tp, info := getInfo(p)\n\t\tif info == nil || info.funcs.size == nil {\n\t\t\treturn 0\n\t\t}\n\t\treturn info.funcs.size(p, info, opts)\n\t}\n\tfirst.funcs.marshal = func(b []byte, p pointer, _ *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\tp, info := getInfo(p)\n\t\tif info == nil || info.funcs.marshal == nil {\n\t\t\treturn b, nil\n\t\t}\n\t\treturn info.funcs.marshal(b, p, info, opts)\n\t}\n\tfirst.funcs.merge = func(dst, src pointer, _ *coderFieldInfo, opts mergeOptions) {\n\t\tsrcp, srcinfo := getInfo(src)\n\t\tif srcinfo == nil || srcinfo.funcs.merge == nil {\n\t\t\treturn\n\t\t}\n\t\tdstp, dstinfo := getInfo(dst)\n\t\tif dstinfo != srcinfo {\n\t\t\tdst.AsValueOf(ft).Elem().Set(reflect.New(src.AsValueOf(ft).Elem().Elem().Elem().Type()))\n\t\t\tdstp = pointerOfValue(dst.AsValueOf(ft).Elem().Elem()).Apply(zeroOffset)\n\t\t}\n\t\tsrcinfo.funcs.merge(dstp, srcp, srcinfo, opts)\n\t}\n\tif needIsInit {\n\t\tfirst.funcs.isInit = func(p pointer, _ *coderFieldInfo) error {\n\t\t\tp, info := getInfo(p)\n\t\t\tif info == nil || info.funcs.isInit == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn info.funcs.isInit(p, info)\n\t\t}\n\t}\n}\n\nfunc makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeMessageInfo,\n\t\t\tmarshal:   appendMessageInfo,\n\t\t\tunmarshal: consumeMessageInfo,\n\t\t\tmerge:     mergeMessage,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageInfo\n\t\t}\n\t\treturn funcs\n\t} else {\n\t\treturn pointerCoderFuncs{\n\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn sizeMessage(m, f.tagsize, opts)\n\t\t\t},\n\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn appendMessage(b, m, f.wiretag, opts)\n\t\t\t},\n\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\tmp := p.AsValueOf(ft).Elem()\n\t\t\t\tif mp.IsNil() {\n\t\t\t\t\tmp.Set(reflect.New(ft.Elem()))\n\t\t\t\t}\n\t\t\t\treturn consumeMessage(b, asMessage(mp), wtyp, opts)\n\t\t\t},\n\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn proto.CheckInitialized(m)\n\t\t\t},\n\t\t\tmerge: mergeMessage,\n\t\t}\n\t}\n}\n\nfunc sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\treturn protowire.SizeBytes(f.mi.sizePointer(p.Elem(), opts)) + f.tagsize\n}\n\nfunc appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tcalculatedSize := f.mi.sizePointer(p.Elem(), opts)\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := f.mi.marshalAppendPointer(b, p.Elem(), opts)\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\treturn b, err\n}\n\nfunc consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif p.Elem().IsNil() {\n\t\tp.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\to, err := f.mi.unmarshalPointer(v, p.Elem(), 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitMessageInfo(p pointer, f *coderFieldInfo) error {\n\treturn f.mi.checkInitializedPointer(p.Elem())\n}\n\nfunc sizeMessage(m proto.Message, tagsize int, opts marshalOptions) int {\n\treturn protowire.SizeBytes(opts.Options().Size(m)) + tagsize\n}\n\nfunc appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tmopts := opts.Options()\n\tcalculatedSize := mopts.Size(m)\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := mopts.MarshalAppend(b, m)\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\treturn b, err\n}\n\nfunc consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: m.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc sizeMessageValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tm := v.Message().Interface()\n\treturn sizeMessage(m, tagsize, opts)\n}\n\nfunc appendMessageValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tm := v.Message().Interface()\n\treturn appendMessage(b, m, wiretag, opts)\n}\n\nfunc consumeMessageValue(b []byte, v protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) {\n\tm := v.Message().Interface()\n\tout, err := consumeMessage(b, m, wtyp, opts)\n\treturn v, out, err\n}\n\nfunc isInitMessageValue(v protoreflect.Value) error {\n\tm := v.Message().Interface()\n\treturn proto.CheckInitialized(m)\n}\n\nvar coderMessageValue = valueCoderFuncs{\n\tsize:      sizeMessageValue,\n\tmarshal:   appendMessageValue,\n\tunmarshal: consumeMessageValue,\n\tisInit:    isInitMessageValue,\n\tmerge:     mergeMessageValue,\n}\n\nfunc sizeGroupValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tm := v.Message().Interface()\n\treturn sizeGroup(m, tagsize, opts)\n}\n\nfunc appendGroupValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tm := v.Message().Interface()\n\treturn appendGroup(b, m, wiretag, opts)\n}\n\nfunc consumeGroupValue(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) {\n\tm := v.Message().Interface()\n\tout, err := consumeGroup(b, m, num, wtyp, opts)\n\treturn v, out, err\n}\n\nvar coderGroupValue = valueCoderFuncs{\n\tsize:      sizeGroupValue,\n\tmarshal:   appendGroupValue,\n\tunmarshal: consumeGroupValue,\n\tisInit:    isInitMessageValue,\n\tmerge:     mergeMessageValue,\n}\n\nfunc makeGroupFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tnum := fd.Number()\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeGroupType,\n\t\t\tmarshal:   appendGroupType,\n\t\t\tunmarshal: consumeGroupType,\n\t\t\tmerge:     mergeMessage,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageInfo\n\t\t}\n\t\treturn funcs\n\t} else {\n\t\treturn pointerCoderFuncs{\n\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn sizeGroup(m, f.tagsize, opts)\n\t\t\t},\n\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn appendGroup(b, m, f.wiretag, opts)\n\t\t\t},\n\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\tmp := p.AsValueOf(ft).Elem()\n\t\t\t\tif mp.IsNil() {\n\t\t\t\t\tmp.Set(reflect.New(ft.Elem()))\n\t\t\t\t}\n\t\t\t\treturn consumeGroup(b, asMessage(mp), num, wtyp, opts)\n\t\t\t},\n\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn proto.CheckInitialized(m)\n\t\t\t},\n\t\t\tmerge: mergeMessage,\n\t\t}\n\t}\n}\n\nfunc sizeGroupType(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\treturn 2*f.tagsize + f.mi.sizePointer(p.Elem(), opts)\n}\n\nfunc appendGroupType(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\tb, err := f.mi.marshalAppendPointer(b, p.Elem(), opts)\n\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\treturn b, err\n}\n\nfunc consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tif p.Elem().IsNil() {\n\t\tp.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\treturn f.mi.unmarshalPointer(b, p.Elem(), f.num, opts)\n}\n\nfunc sizeGroup(m proto.Message, tagsize int, opts marshalOptions) int {\n\treturn 2*tagsize + opts.Options().Size(m)\n}\n\nfunc appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag) // start group\n\tb, err := opts.Options().MarshalAppend(b, m)\n\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\treturn b, err\n}\n\nfunc consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: m.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc makeMessageSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeMessageSliceInfo,\n\t\t\tmarshal:   appendMessageSliceInfo,\n\t\t\tunmarshal: consumeMessageSliceInfo,\n\t\t\tmerge:     mergeMessageSlice,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageSliceInfo\n\t\t}\n\t\treturn funcs\n\t}\n\treturn pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeMessageSlice(p, ft, f.tagsize, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendMessageSlice(b, p, f.wiretag, ft, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\treturn consumeMessageSlice(b, p, ft, wtyp, opts)\n\t\t},\n\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMessageSlice(p, ft)\n\t\t},\n\t\tmerge: mergeMessageSlice,\n\t}\n}\n\nfunc sizeMessageSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeBytes(f.mi.sizePointer(v, opts)) + f.tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tsiz := f.mi.sizePointer(v, opts)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tm := reflect.New(f.mi.GoReflectType.Elem()).Interface()\n\tmp := pointerOfIface(m)\n\to, err := f.mi.unmarshalPointer(v, mp, 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(mp)\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error {\n\ts := p.PointerSlice()\n\tfor _, v := range s {\n\t\tif err := f.mi.checkInitializedPointer(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tn += protowire.SizeBytes(mopts.Size(m)) + tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tsiz := mopts.Size(m)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := reflect.New(goType.Elem())\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: asMessage(mp).ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(pointerOfValue(mp))\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc isInitMessageSlice(p pointer, goType reflect.Type) error {\n\ts := p.PointerSlice()\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tif err := proto.CheckInitialized(m); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Slices of messages\n\nfunc sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\tlist := listv.List()\n\tn := 0\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tn += protowire.SizeBytes(mopts.Size(m)) + tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tmopts := opts.Options()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tsiz := mopts.Size(m)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tvar err error\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tm := list.NewElement()\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: m.Message(),\n\t})\n\tif err != nil {\n\t\treturn protoreflect.Value{}, out, err\n\t}\n\tlist.Append(m)\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn listv, out, nil\n}\n\nfunc isInitMessageSliceValue(listv protoreflect.Value) error {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tif err := proto.CheckInitialized(m); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nvar coderMessageSliceValue = valueCoderFuncs{\n\tsize:      sizeMessageSliceValue,\n\tmarshal:   appendMessageSliceValue,\n\tunmarshal: consumeMessageSliceValue,\n\tisInit:    isInitMessageSliceValue,\n\tmerge:     mergeMessageListValue,\n}\n\nfunc sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\tlist := listv.List()\n\tn := 0\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tn += 2*tagsize + mopts.Size(m)\n\t}\n\treturn n\n}\n\nfunc appendGroupSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tmopts := opts.Options()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tb = protowire.AppendVarint(b, wiretag) // start group\n\t\tvar err error\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSliceValue(b []byte, listv protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.StartGroupType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tm := list.NewElement()\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: m.Message(),\n\t})\n\tif err != nil {\n\t\treturn protoreflect.Value{}, out, err\n\t}\n\tlist.Append(m)\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn listv, out, nil\n}\n\nvar coderGroupSliceValue = valueCoderFuncs{\n\tsize:      sizeGroupSliceValue,\n\tmarshal:   appendGroupSliceValue,\n\tunmarshal: consumeGroupSliceValue,\n\tisInit:    isInitMessageSliceValue,\n\tmerge:     mergeMessageListValue,\n}\n\nfunc makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tnum := fd.Number()\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeGroupSliceInfo,\n\t\t\tmarshal:   appendGroupSliceInfo,\n\t\t\tunmarshal: consumeGroupSliceInfo,\n\t\t\tmerge:     mergeMessageSlice,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageSliceInfo\n\t\t}\n\t\treturn funcs\n\t}\n\treturn pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeGroupSlice(p, ft, f.tagsize, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendGroupSlice(b, p, f.wiretag, ft, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\treturn consumeGroupSlice(b, p, num, wtyp, ft, opts)\n\t\t},\n\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMessageSlice(p, ft)\n\t\t},\n\t\tmerge: mergeMessageSlice,\n\t}\n}\n\nfunc sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(messageType.Elem()))\n\t\tn += 2*tagsize + mopts.Size(m)\n\t}\n\treturn n\n}\n\nfunc appendGroupSlice(b []byte, p pointer, wiretag uint64, messageType reflect.Type, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(messageType.Elem()))\n\t\tb = protowire.AppendVarint(b, wiretag) // start group\n\t\tb, err = opts.Options().MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire.Type, goType reflect.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := reflect.New(goType.Elem())\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: asMessage(mp).ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(pointerOfValue(mp))\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc sizeGroupSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += 2*f.tagsize + f.mi.sizePointer(v, opts)\n\t}\n\treturn n\n}\n\nfunc appendGroupSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn unmarshalOutput{}, errUnknown\n\t}\n\tm := reflect.New(f.mi.GoReflectType.Elem()).Interface()\n\tmp := pointerOfIface(m)\n\tout, err := f.mi.unmarshalPointer(b, mp, f.num, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(mp)\n\treturn out, nil\n}\n\nfunc asMessage(v reflect.Value) protoreflect.ProtoMessage {\n\tif m, ok := v.Interface().(protoreflect.ProtoMessage); ok {\n\t\treturn m\n\t}\n\treturn legacyWrapMessage(v).Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_field_opaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc makeOpaqueMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) {\n\tmi := getMessageInfo(ft)\n\tif mi == nil {\n\t\tpanic(fmt.Sprintf(\"invalid field: %v: unsupported message type %v\", fd.FullName(), ft))\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind:\n\t\treturn mi, pointerCoderFuncs{\n\t\t\tsize:      sizeOpaqueMessage,\n\t\t\tmarshal:   appendOpaqueMessage,\n\t\t\tunmarshal: consumeOpaqueMessage,\n\t\t\tisInit:    isInitOpaqueMessage,\n\t\t\tmerge:     mergeOpaqueMessage,\n\t\t}\n\tcase protoreflect.GroupKind:\n\t\treturn mi, pointerCoderFuncs{\n\t\t\tsize:      sizeOpaqueGroup,\n\t\t\tmarshal:   appendOpaqueGroup,\n\t\t\tunmarshal: consumeOpaqueGroup,\n\t\t\tisInit:    isInitOpaqueMessage,\n\t\t\tmerge:     mergeOpaqueMessage,\n\t\t}\n\t}\n\tpanic(\"unexpected field kind\")\n}\n\nfunc sizeOpaqueMessage(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn protowire.SizeBytes(f.mi.sizePointer(p.AtomicGetPointer(), opts)) + f.tagsize\n}\n\nfunc appendOpaqueMessage(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tmp := p.AtomicGetPointer()\n\tcalculatedSize := f.mi.sizePointer(mp, opts)\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := f.mi.marshalAppendPointer(b, mp, opts)\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\treturn b, err\n}\n\nfunc consumeOpaqueMessage(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := p.AtomicGetPointer()\n\tif mp.IsNil() {\n\t\tmp = p.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\to, err := f.mi.unmarshalPointer(v, mp, 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitOpaqueMessage(p pointer, f *coderFieldInfo) error {\n\tmp := p.AtomicGetPointer()\n\tif mp.IsNil() {\n\t\treturn nil\n\t}\n\treturn f.mi.checkInitializedPointer(mp)\n}\n\nfunc mergeOpaqueMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstmp := dst.AtomicGetPointer()\n\tif dstmp.IsNil() {\n\t\tdstmp = dst.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\tf.mi.mergePointer(dstmp, src.AtomicGetPointer(), opts)\n}\n\nfunc sizeOpaqueGroup(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn 2*f.tagsize + f.mi.sizePointer(p.AtomicGetPointer(), opts)\n}\n\nfunc appendOpaqueGroup(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\tb, err := f.mi.marshalAppendPointer(b, p.AtomicGetPointer(), opts)\n\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\treturn b, err\n}\n\nfunc consumeOpaqueGroup(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tmp := p.AtomicGetPointer()\n\tif mp.IsNil() {\n\t\tmp = p.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\to, e := f.mi.unmarshalPointer(b, mp, f.num, opts)\n\treturn o, e\n}\n\nfunc makeOpaqueRepeatedMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) {\n\tif ft.Kind() != reflect.Ptr || ft.Elem().Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"invalid field: %v: unsupported type for opaque repeated message: %v\", fd.FullName(), ft))\n\t}\n\tmt := ft.Elem().Elem() // *[]*T -> *T\n\tmi := getMessageInfo(mt)\n\tif mi == nil {\n\t\tpanic(fmt.Sprintf(\"invalid field: %v: unsupported message type %v\", fd.FullName(), mt))\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind:\n\t\treturn mi, pointerCoderFuncs{\n\t\t\tsize:      sizeOpaqueMessageSlice,\n\t\t\tmarshal:   appendOpaqueMessageSlice,\n\t\t\tunmarshal: consumeOpaqueMessageSlice,\n\t\t\tisInit:    isInitOpaqueMessageSlice,\n\t\t\tmerge:     mergeOpaqueMessageSlice,\n\t\t}\n\tcase protoreflect.GroupKind:\n\t\treturn mi, pointerCoderFuncs{\n\t\t\tsize:      sizeOpaqueGroupSlice,\n\t\t\tmarshal:   appendOpaqueGroupSlice,\n\t\t\tunmarshal: consumeOpaqueGroupSlice,\n\t\t\tisInit:    isInitOpaqueMessageSlice,\n\t\t\tmerge:     mergeOpaqueMessageSlice,\n\t\t}\n\t}\n\tpanic(\"unexpected field kind\")\n}\n\nfunc sizeOpaqueMessageSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := p.AtomicGetPointer().PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeBytes(f.mi.sizePointer(v, opts)) + f.tagsize\n\t}\n\treturn n\n}\n\nfunc appendOpaqueMessageSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.AtomicGetPointer().PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tsiz := f.mi.sizePointer(v, opts)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeOpaqueMessageSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))\n\to, err := f.mi.unmarshalPointer(v, mp, 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tsp := p.AtomicGetPointer()\n\tif sp.IsNil() {\n\t\tsp = p.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.ft.Elem())))\n\t}\n\tsp.AppendPointerSlice(mp)\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitOpaqueMessageSlice(p pointer, f *coderFieldInfo) error {\n\tsp := p.AtomicGetPointer()\n\tif sp.IsNil() {\n\t\treturn nil\n\t}\n\ts := sp.PointerSlice()\n\tfor _, v := range s {\n\t\tif err := f.mi.checkInitializedPointer(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc mergeOpaqueMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tds := dst.AtomicGetPointer()\n\tif ds.IsNil() {\n\t\tds = dst.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.ft.Elem())))\n\t}\n\tfor _, sp := range src.AtomicGetPointer().PointerSlice() {\n\t\tdm := pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))\n\t\tf.mi.mergePointer(dm, sp, opts)\n\t\tds.AppendPointerSlice(dm)\n\t}\n}\n\nfunc sizeOpaqueGroupSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := p.AtomicGetPointer().PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += 2*f.tagsize + f.mi.sizePointer(v, opts)\n\t}\n\treturn n\n}\n\nfunc appendOpaqueGroupSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.AtomicGetPointer().PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeOpaqueGroupSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tmp := pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))\n\tout, err = f.mi.unmarshalPointer(b, mp, f.num, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tsp := p.AtomicGetPointer()\n\tif sp.IsNil() {\n\t\tsp = p.AtomicSetPointerIfNil(pointerOfValue(reflect.New(f.ft.Elem())))\n\t}\n\tsp.AppendPointerSlice(mp)\n\treturn out, err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// sizeBool returns the size of wire encoding a bool pointer as a Bool.\nfunc sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bool()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBool wire encodes a bool pointer as a Bool.\nfunc appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bool()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\n// consumeBool wire decodes a bool pointer as a Bool.\nfunc consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bool() = protowire.DecodeBool(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBool = pointerCoderFuncs{\n\tsize:      sizeBool,\n\tmarshal:   appendBool,\n\tunmarshal: consumeBool,\n\tmerge:     mergeBool,\n}\n\n// sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool.\n// The zero value is not encoded.\nfunc sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bool()\n\tif v == false {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBoolNoZero wire encodes a bool pointer as a Bool.\n// The zero value is not encoded.\nfunc appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bool()\n\tif v == false {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\nvar coderBoolNoZero = pointerCoderFuncs{\n\tsize:      sizeBoolNoZero,\n\tmarshal:   appendBoolNoZero,\n\tunmarshal: consumeBool,\n\tmerge:     mergeBoolNoZero,\n}\n\n// sizeBoolPtr returns the size of wire encoding a *bool pointer as a Bool.\n// It panics if the pointer is nil.\nfunc sizeBoolPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.BoolPtr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBoolPtr wire encodes a *bool pointer as a Bool.\n// It panics if the pointer is nil.\nfunc appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.BoolPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\n// consumeBoolPtr wire decodes a *bool pointer as a Bool.\nfunc consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.BoolPtr()\n\tif *vp == nil {\n\t\t*vp = new(bool)\n\t}\n\t**vp = protowire.DecodeBool(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBoolPtr = pointerCoderFuncs{\n\tsize:      sizeBoolPtr,\n\tmarshal:   appendBoolPtr,\n\tunmarshal: consumeBoolPtr,\n\tmerge:     mergeBoolPtr,\n}\n\n// sizeBoolSlice returns the size of wire encoding a []bool pointer as a repeated Bool.\nfunc sizeBoolSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BoolSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\treturn size\n}\n\n// appendBoolSlice encodes a []bool pointer as a repeated Bool.\nfunc appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BoolSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\t}\n\treturn b, nil\n}\n\n// consumeBoolSlice wire decodes a []bool pointer as a repeated Bool.\nfunc consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.BoolSlice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growBoolSlice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, protowire.DecodeBool(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, protowire.DecodeBool(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBoolSlice = pointerCoderFuncs{\n\tsize:      sizeBoolSlice,\n\tmarshal:   appendBoolSlice,\n\tunmarshal: consumeBoolSlice,\n\tmerge:     mergeBoolSlice,\n}\n\n// sizeBoolPackedSlice returns the size of wire encoding a []bool pointer as a packed repeated Bool.\nfunc sizeBoolPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BoolSlice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendBoolPackedSlice encodes a []bool pointer as a packed repeated Bool.\nfunc appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BoolSlice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\t}\n\treturn b, nil\n}\n\nvar coderBoolPackedSlice = pointerCoderFuncs{\n\tsize:      sizeBoolPackedSlice,\n\tmarshal:   appendBoolPackedSlice,\n\tunmarshal: consumeBoolSlice,\n\tmerge:     mergeBoolSlice,\n}\n\n// sizeBoolValue returns the size of wire encoding a bool value as a Bool.\nfunc sizeBoolValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n}\n\n// appendBoolValue encodes a bool value as a Bool.\nfunc appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\treturn b, nil\n}\n\n// consumeBoolValue decodes a bool value as a Bool.\nfunc consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfBool(protowire.DecodeBool(v)), out, nil\n}\n\nvar coderBoolValue = valueCoderFuncs{\n\tsize:      sizeBoolValue,\n\tmarshal:   appendBoolValue,\n\tunmarshal: consumeBoolValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeBoolSliceValue returns the size of wire encoding a []bool value as a repeated Bool.\nfunc sizeBoolSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\treturn size\n}\n\n// appendBoolSliceValue encodes a []bool value as a repeated Bool.\nfunc appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\t}\n\treturn b, nil\n}\n\n// consumeBoolSliceValue wire decodes a []bool value as a repeated Bool.\nfunc consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderBoolSliceValue = valueCoderFuncs{\n\tsize:      sizeBoolSliceValue,\n\tmarshal:   appendBoolSliceValue,\n\tunmarshal: consumeBoolSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeBoolPackedSliceValue returns the size of wire encoding a []bool value as a packed repeated Bool.\nfunc sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendBoolPackedSliceValue encodes a []bool value as a packed repeated Bool.\nfunc appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\t}\n\treturn b, nil\n}\n\nvar coderBoolPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeBoolPackedSliceValue,\n\tmarshal:   appendBoolPackedSliceValue,\n\tunmarshal: consumeBoolSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeEnumValue returns the size of wire encoding a  value as a Enum.\nfunc sizeEnumValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(v.Enum()))\n}\n\n// appendEnumValue encodes a  value as a Enum.\nfunc appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\treturn b, nil\n}\n\n// consumeEnumValue decodes a  value as a Enum.\nfunc consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), out, nil\n}\n\nvar coderEnumValue = valueCoderFuncs{\n\tsize:      sizeEnumValue,\n\tmarshal:   appendEnumValue,\n\tunmarshal: consumeEnumValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeEnumSliceValue returns the size of wire encoding a [] value as a repeated Enum.\nfunc sizeEnumSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\treturn size\n}\n\n// appendEnumSliceValue encodes a [] value as a repeated Enum.\nfunc appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\t}\n\treturn b, nil\n}\n\n// consumeEnumSliceValue wire decodes a [] value as a repeated Enum.\nfunc consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderEnumSliceValue = valueCoderFuncs{\n\tsize:      sizeEnumSliceValue,\n\tmarshal:   appendEnumSliceValue,\n\tunmarshal: consumeEnumSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeEnumPackedSliceValue returns the size of wire encoding a [] value as a packed repeated Enum.\nfunc sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendEnumPackedSliceValue encodes a [] value as a packed repeated Enum.\nfunc appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\t}\n\treturn b, nil\n}\n\nvar coderEnumPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeEnumPackedSliceValue,\n\tmarshal:   appendEnumPackedSliceValue,\n\tunmarshal: consumeEnumSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt32 returns the size of wire encoding a int32 pointer as a Int32.\nfunc sizeInt32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32 wire encodes a int32 pointer as a Int32.\nfunc appendInt32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt32 wire decodes a int32 pointer as a Int32.\nfunc consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32 = pointerCoderFuncs{\n\tsize:      sizeInt32,\n\tmarshal:   appendInt32,\n\tunmarshal: consumeInt32,\n\tmerge:     mergeInt32,\n}\n\n// sizeInt32NoZero returns the size of wire encoding a int32 pointer as a Int32.\n// The zero value is not encoded.\nfunc sizeInt32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32NoZero wire encodes a int32 pointer as a Int32.\n// The zero value is not encoded.\nfunc appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderInt32NoZero = pointerCoderFuncs{\n\tsize:      sizeInt32NoZero,\n\tmarshal:   appendInt32NoZero,\n\tunmarshal: consumeInt32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeInt32Ptr returns the size of wire encoding a *int32 pointer as a Int32.\n// It panics if the pointer is nil.\nfunc sizeInt32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32Ptr wire encodes a *int32 pointer as a Int32.\n// It panics if the pointer is nil.\nfunc appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt32Ptr wire decodes a *int32 pointer as a Int32.\nfunc consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32Ptr = pointerCoderFuncs{\n\tsize:      sizeInt32Ptr,\n\tmarshal:   appendInt32Ptr,\n\tunmarshal: consumeInt32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeInt32Slice returns the size of wire encoding a []int32 pointer as a repeated Int32.\nfunc sizeInt32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendInt32Slice encodes a []int32 pointer as a repeated Int32.\nfunc appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeInt32Slice wire decodes a []int32 pointer as a repeated Int32.\nfunc consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32Slice = pointerCoderFuncs{\n\tsize:      sizeInt32Slice,\n\tmarshal:   appendInt32Slice,\n\tunmarshal: consumeInt32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeInt32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Int32.\nfunc sizeInt32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt32PackedSlice encodes a []int32 pointer as a packed repeated Int32.\nfunc appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderInt32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeInt32PackedSlice,\n\tmarshal:   appendInt32PackedSlice,\n\tunmarshal: consumeInt32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeInt32Value returns the size of wire encoding a int32 value as a Int32.\nfunc sizeInt32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(int32(v.Int())))\n}\n\n// appendInt32Value encodes a int32 value as a Int32.\nfunc appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\treturn b, nil\n}\n\n// consumeInt32Value decodes a int32 value as a Int32.\nfunc consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(v)), out, nil\n}\n\nvar coderInt32Value = valueCoderFuncs{\n\tsize:      sizeInt32Value,\n\tmarshal:   appendInt32Value,\n\tunmarshal: consumeInt32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeInt32SliceValue returns the size of wire encoding a []int32 value as a repeated Int32.\nfunc sizeInt32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\treturn size\n}\n\n// appendInt32SliceValue encodes a []int32 value as a repeated Int32.\nfunc appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\t}\n\treturn b, nil\n}\n\n// consumeInt32SliceValue wire decodes a []int32 value as a repeated Int32.\nfunc consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderInt32SliceValue = valueCoderFuncs{\n\tsize:      sizeInt32SliceValue,\n\tmarshal:   appendInt32SliceValue,\n\tunmarshal: consumeInt32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Int32.\nfunc sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt32PackedSliceValue encodes a []int32 value as a packed repeated Int32.\nfunc appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\t}\n\treturn b, nil\n}\n\nvar coderInt32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeInt32PackedSliceValue,\n\tmarshal:   appendInt32PackedSliceValue,\n\tunmarshal: consumeInt32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint32 returns the size of wire encoding a int32 pointer as a Sint32.\nfunc sizeSint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32 wire encodes a int32 pointer as a Sint32.\nfunc appendSint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\n// consumeSint32 wire decodes a int32 pointer as a Sint32.\nfunc consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(protowire.DecodeZigZag(v & math.MaxUint32))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32 = pointerCoderFuncs{\n\tsize:      sizeSint32,\n\tmarshal:   appendSint32,\n\tunmarshal: consumeSint32,\n\tmerge:     mergeInt32,\n}\n\n// sizeSint32NoZero returns the size of wire encoding a int32 pointer as a Sint32.\n// The zero value is not encoded.\nfunc sizeSint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32NoZero wire encodes a int32 pointer as a Sint32.\n// The zero value is not encoded.\nfunc appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\nvar coderSint32NoZero = pointerCoderFuncs{\n\tsize:      sizeSint32NoZero,\n\tmarshal:   appendSint32NoZero,\n\tunmarshal: consumeSint32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeSint32Ptr returns the size of wire encoding a *int32 pointer as a Sint32.\n// It panics if the pointer is nil.\nfunc sizeSint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32Ptr wire encodes a *int32 pointer as a Sint32.\n// It panics if the pointer is nil.\nfunc appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\n// consumeSint32Ptr wire decodes a *int32 pointer as a Sint32.\nfunc consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(protowire.DecodeZigZag(v & math.MaxUint32))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32Ptr = pointerCoderFuncs{\n\tsize:      sizeSint32Ptr,\n\tmarshal:   appendSint32Ptr,\n\tunmarshal: consumeSint32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeSint32Slice returns the size of wire encoding a []int32 pointer as a repeated Sint32.\nfunc sizeSint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn size\n}\n\n// appendSint32Slice encodes a []int32 pointer as a repeated Sint32.\nfunc appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn b, nil\n}\n\n// consumeSint32Slice wire decodes a []int32 pointer as a repeated Sint32.\nfunc consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(protowire.DecodeZigZag(v&math.MaxUint32)))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(protowire.DecodeZigZag(v&math.MaxUint32)))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32Slice = pointerCoderFuncs{\n\tsize:      sizeSint32Slice,\n\tmarshal:   appendSint32Slice,\n\tunmarshal: consumeSint32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSint32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sint32.\nfunc sizeSint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint32PackedSlice encodes a []int32 pointer as a packed repeated Sint32.\nfunc appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn b, nil\n}\n\nvar coderSint32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSint32PackedSlice,\n\tmarshal:   appendSint32PackedSlice,\n\tunmarshal: consumeSint32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSint32Value returns the size of wire encoding a int32 value as a Sint32.\nfunc sizeSint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n}\n\n// appendSint32Value encodes a int32 value as a Sint32.\nfunc appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\treturn b, nil\n}\n\n// consumeSint32Value decodes a int32 value as a Sint32.\nfunc consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), out, nil\n}\n\nvar coderSint32Value = valueCoderFuncs{\n\tsize:      sizeSint32Value,\n\tmarshal:   appendSint32Value,\n\tunmarshal: consumeSint32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSint32SliceValue returns the size of wire encoding a []int32 value as a repeated Sint32.\nfunc sizeSint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn size\n}\n\n// appendSint32SliceValue encodes a []int32 value as a repeated Sint32.\nfunc appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn b, nil\n}\n\n// consumeSint32SliceValue wire decodes a []int32 value as a repeated Sint32.\nfunc consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSint32SliceValue = valueCoderFuncs{\n\tsize:      sizeSint32SliceValue,\n\tmarshal:   appendSint32SliceValue,\n\tunmarshal: consumeSint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sint32.\nfunc sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint32PackedSliceValue encodes a []int32 value as a packed repeated Sint32.\nfunc appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn b, nil\n}\n\nvar coderSint32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSint32PackedSliceValue,\n\tmarshal:   appendSint32PackedSliceValue,\n\tunmarshal: consumeSint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint32 returns the size of wire encoding a uint32 pointer as a Uint32.\nfunc sizeUint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32 wire encodes a uint32 pointer as a Uint32.\nfunc appendUint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeUint32 wire decodes a uint32 pointer as a Uint32.\nfunc consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint32() = uint32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32 = pointerCoderFuncs{\n\tsize:      sizeUint32,\n\tmarshal:   appendUint32,\n\tunmarshal: consumeUint32,\n\tmerge:     mergeUint32,\n}\n\n// sizeUint32NoZero returns the size of wire encoding a uint32 pointer as a Uint32.\n// The zero value is not encoded.\nfunc sizeUint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32NoZero wire encodes a uint32 pointer as a Uint32.\n// The zero value is not encoded.\nfunc appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderUint32NoZero = pointerCoderFuncs{\n\tsize:      sizeUint32NoZero,\n\tmarshal:   appendUint32NoZero,\n\tunmarshal: consumeUint32,\n\tmerge:     mergeUint32NoZero,\n}\n\n// sizeUint32Ptr returns the size of wire encoding a *uint32 pointer as a Uint32.\n// It panics if the pointer is nil.\nfunc sizeUint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Uint32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32Ptr wire encodes a *uint32 pointer as a Uint32.\n// It panics if the pointer is nil.\nfunc appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeUint32Ptr wire decodes a *uint32 pointer as a Uint32.\nfunc consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint32)\n\t}\n\t**vp = uint32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32Ptr = pointerCoderFuncs{\n\tsize:      sizeUint32Ptr,\n\tmarshal:   appendUint32Ptr,\n\tunmarshal: consumeUint32Ptr,\n\tmerge:     mergeUint32Ptr,\n}\n\n// sizeUint32Slice returns the size of wire encoding a []uint32 pointer as a repeated Uint32.\nfunc sizeUint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendUint32Slice encodes a []uint32 pointer as a repeated Uint32.\nfunc appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeUint32Slice wire decodes a []uint32 pointer as a repeated Uint32.\nfunc consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growUint32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, uint32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, uint32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32Slice = pointerCoderFuncs{\n\tsize:      sizeUint32Slice,\n\tmarshal:   appendUint32Slice,\n\tunmarshal: consumeUint32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeUint32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Uint32.\nfunc sizeUint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint32PackedSlice encodes a []uint32 pointer as a packed repeated Uint32.\nfunc appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderUint32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeUint32PackedSlice,\n\tmarshal:   appendUint32PackedSlice,\n\tunmarshal: consumeUint32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeUint32Value returns the size of wire encoding a uint32 value as a Uint32.\nfunc sizeUint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(uint32(v.Uint())))\n}\n\n// appendUint32Value encodes a uint32 value as a Uint32.\nfunc appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\treturn b, nil\n}\n\n// consumeUint32Value decodes a uint32 value as a Uint32.\nfunc consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint32(uint32(v)), out, nil\n}\n\nvar coderUint32Value = valueCoderFuncs{\n\tsize:      sizeUint32Value,\n\tmarshal:   appendUint32Value,\n\tunmarshal: consumeUint32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeUint32SliceValue returns the size of wire encoding a []uint32 value as a repeated Uint32.\nfunc sizeUint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\treturn size\n}\n\n// appendUint32SliceValue encodes a []uint32 value as a repeated Uint32.\nfunc appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\t}\n\treturn b, nil\n}\n\n// consumeUint32SliceValue wire decodes a []uint32 value as a repeated Uint32.\nfunc consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderUint32SliceValue = valueCoderFuncs{\n\tsize:      sizeUint32SliceValue,\n\tmarshal:   appendUint32SliceValue,\n\tunmarshal: consumeUint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Uint32.\nfunc sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint32PackedSliceValue encodes a []uint32 value as a packed repeated Uint32.\nfunc appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\t}\n\treturn b, nil\n}\n\nvar coderUint32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeUint32PackedSliceValue,\n\tmarshal:   appendUint32PackedSliceValue,\n\tunmarshal: consumeUint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt64 returns the size of wire encoding a int64 pointer as a Int64.\nfunc sizeInt64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64 wire encodes a int64 pointer as a Int64.\nfunc appendInt64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt64 wire decodes a int64 pointer as a Int64.\nfunc consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64 = pointerCoderFuncs{\n\tsize:      sizeInt64,\n\tmarshal:   appendInt64,\n\tunmarshal: consumeInt64,\n\tmerge:     mergeInt64,\n}\n\n// sizeInt64NoZero returns the size of wire encoding a int64 pointer as a Int64.\n// The zero value is not encoded.\nfunc sizeInt64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64NoZero wire encodes a int64 pointer as a Int64.\n// The zero value is not encoded.\nfunc appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderInt64NoZero = pointerCoderFuncs{\n\tsize:      sizeInt64NoZero,\n\tmarshal:   appendInt64NoZero,\n\tunmarshal: consumeInt64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeInt64Ptr returns the size of wire encoding a *int64 pointer as a Int64.\n// It panics if the pointer is nil.\nfunc sizeInt64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64Ptr wire encodes a *int64 pointer as a Int64.\n// It panics if the pointer is nil.\nfunc appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt64Ptr wire decodes a *int64 pointer as a Int64.\nfunc consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64Ptr = pointerCoderFuncs{\n\tsize:      sizeInt64Ptr,\n\tmarshal:   appendInt64Ptr,\n\tunmarshal: consumeInt64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeInt64Slice returns the size of wire encoding a []int64 pointer as a repeated Int64.\nfunc sizeInt64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendInt64Slice encodes a []int64 pointer as a repeated Int64.\nfunc appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeInt64Slice wire decodes a []int64 pointer as a repeated Int64.\nfunc consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int64(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64Slice = pointerCoderFuncs{\n\tsize:      sizeInt64Slice,\n\tmarshal:   appendInt64Slice,\n\tunmarshal: consumeInt64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeInt64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Int64.\nfunc sizeInt64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt64PackedSlice encodes a []int64 pointer as a packed repeated Int64.\nfunc appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderInt64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeInt64PackedSlice,\n\tmarshal:   appendInt64PackedSlice,\n\tunmarshal: consumeInt64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeInt64Value returns the size of wire encoding a int64 value as a Int64.\nfunc sizeInt64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(v.Int()))\n}\n\n// appendInt64Value encodes a int64 value as a Int64.\nfunc appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\treturn b, nil\n}\n\n// consumeInt64Value decodes a int64 value as a Int64.\nfunc consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(int64(v)), out, nil\n}\n\nvar coderInt64Value = valueCoderFuncs{\n\tsize:      sizeInt64Value,\n\tmarshal:   appendInt64Value,\n\tunmarshal: consumeInt64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeInt64SliceValue returns the size of wire encoding a []int64 value as a repeated Int64.\nfunc sizeInt64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(v.Int()))\n\t}\n\treturn size\n}\n\n// appendInt64SliceValue encodes a []int64 value as a repeated Int64.\nfunc appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeInt64SliceValue wire decodes a []int64 value as a repeated Int64.\nfunc consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderInt64SliceValue = valueCoderFuncs{\n\tsize:      sizeInt64SliceValue,\n\tmarshal:   appendInt64SliceValue,\n\tunmarshal: consumeInt64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Int64.\nfunc sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Int()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt64PackedSliceValue encodes a []int64 value as a packed repeated Int64.\nfunc appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Int()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderInt64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeInt64PackedSliceValue,\n\tmarshal:   appendInt64PackedSliceValue,\n\tunmarshal: consumeInt64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint64 returns the size of wire encoding a int64 pointer as a Sint64.\nfunc sizeSint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64 wire encodes a int64 pointer as a Sint64.\nfunc appendSint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\n// consumeSint64 wire decodes a int64 pointer as a Sint64.\nfunc consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = protowire.DecodeZigZag(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64 = pointerCoderFuncs{\n\tsize:      sizeSint64,\n\tmarshal:   appendSint64,\n\tunmarshal: consumeSint64,\n\tmerge:     mergeInt64,\n}\n\n// sizeSint64NoZero returns the size of wire encoding a int64 pointer as a Sint64.\n// The zero value is not encoded.\nfunc sizeSint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64NoZero wire encodes a int64 pointer as a Sint64.\n// The zero value is not encoded.\nfunc appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\nvar coderSint64NoZero = pointerCoderFuncs{\n\tsize:      sizeSint64NoZero,\n\tmarshal:   appendSint64NoZero,\n\tunmarshal: consumeSint64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeSint64Ptr returns the size of wire encoding a *int64 pointer as a Sint64.\n// It panics if the pointer is nil.\nfunc sizeSint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64Ptr wire encodes a *int64 pointer as a Sint64.\n// It panics if the pointer is nil.\nfunc appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\n// consumeSint64Ptr wire decodes a *int64 pointer as a Sint64.\nfunc consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = protowire.DecodeZigZag(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64Ptr = pointerCoderFuncs{\n\tsize:      sizeSint64Ptr,\n\tmarshal:   appendSint64Ptr,\n\tunmarshal: consumeSint64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeSint64Slice returns the size of wire encoding a []int64 pointer as a repeated Sint64.\nfunc sizeSint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\treturn size\n}\n\n// appendSint64Slice encodes a []int64 pointer as a repeated Sint64.\nfunc appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSint64Slice wire decodes a []int64 pointer as a repeated Sint64.\nfunc consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, protowire.DecodeZigZag(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, protowire.DecodeZigZag(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64Slice = pointerCoderFuncs{\n\tsize:      sizeSint64Slice,\n\tmarshal:   appendSint64Slice,\n\tunmarshal: consumeSint64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSint64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sint64.\nfunc sizeSint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint64PackedSlice encodes a []int64 pointer as a packed repeated Sint64.\nfunc appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSint64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSint64PackedSlice,\n\tmarshal:   appendSint64PackedSlice,\n\tunmarshal: consumeSint64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSint64Value returns the size of wire encoding a int64 value as a Sint64.\nfunc sizeSint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n}\n\n// appendSint64Value encodes a int64 value as a Sint64.\nfunc appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\treturn b, nil\n}\n\n// consumeSint64Value decodes a int64 value as a Sint64.\nfunc consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), out, nil\n}\n\nvar coderSint64Value = valueCoderFuncs{\n\tsize:      sizeSint64Value,\n\tmarshal:   appendSint64Value,\n\tunmarshal: consumeSint64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSint64SliceValue returns the size of wire encoding a []int64 value as a repeated Sint64.\nfunc sizeSint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn size\n}\n\n// appendSint64SliceValue encodes a []int64 value as a repeated Sint64.\nfunc appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSint64SliceValue wire decodes a []int64 value as a repeated Sint64.\nfunc consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSint64SliceValue = valueCoderFuncs{\n\tsize:      sizeSint64SliceValue,\n\tmarshal:   appendSint64SliceValue,\n\tunmarshal: consumeSint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sint64.\nfunc sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint64PackedSliceValue encodes a []int64 value as a packed repeated Sint64.\nfunc appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSint64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSint64PackedSliceValue,\n\tmarshal:   appendSint64PackedSliceValue,\n\tunmarshal: consumeSint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint64 returns the size of wire encoding a uint64 pointer as a Uint64.\nfunc sizeUint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64 wire encodes a uint64 pointer as a Uint64.\nfunc appendUint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\n// consumeUint64 wire decodes a uint64 pointer as a Uint64.\nfunc consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint64() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64 = pointerCoderFuncs{\n\tsize:      sizeUint64,\n\tmarshal:   appendUint64,\n\tunmarshal: consumeUint64,\n\tmerge:     mergeUint64,\n}\n\n// sizeUint64NoZero returns the size of wire encoding a uint64 pointer as a Uint64.\n// The zero value is not encoded.\nfunc sizeUint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64NoZero wire encodes a uint64 pointer as a Uint64.\n// The zero value is not encoded.\nfunc appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\nvar coderUint64NoZero = pointerCoderFuncs{\n\tsize:      sizeUint64NoZero,\n\tmarshal:   appendUint64NoZero,\n\tunmarshal: consumeUint64,\n\tmerge:     mergeUint64NoZero,\n}\n\n// sizeUint64Ptr returns the size of wire encoding a *uint64 pointer as a Uint64.\n// It panics if the pointer is nil.\nfunc sizeUint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Uint64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64Ptr wire encodes a *uint64 pointer as a Uint64.\n// It panics if the pointer is nil.\nfunc appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\n// consumeUint64Ptr wire decodes a *uint64 pointer as a Uint64.\nfunc consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint64)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64Ptr = pointerCoderFuncs{\n\tsize:      sizeUint64Ptr,\n\tmarshal:   appendUint64Ptr,\n\tunmarshal: consumeUint64Ptr,\n\tmerge:     mergeUint64Ptr,\n}\n\n// sizeUint64Slice returns the size of wire encoding a []uint64 pointer as a repeated Uint64.\nfunc sizeUint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(v)\n\t}\n\treturn size\n}\n\n// appendUint64Slice encodes a []uint64 pointer as a repeated Uint64.\nfunc appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeUint64Slice wire decodes a []uint64 pointer as a repeated Uint64.\nfunc consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growUint64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64Slice = pointerCoderFuncs{\n\tsize:      sizeUint64Slice,\n\tmarshal:   appendUint64Slice,\n\tunmarshal: consumeUint64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeUint64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Uint64.\nfunc sizeUint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(v)\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint64PackedSlice encodes a []uint64 pointer as a packed repeated Uint64.\nfunc appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(v)\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderUint64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeUint64PackedSlice,\n\tmarshal:   appendUint64PackedSlice,\n\tunmarshal: consumeUint64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeUint64Value returns the size of wire encoding a uint64 value as a Uint64.\nfunc sizeUint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(v.Uint())\n}\n\n// appendUint64Value encodes a uint64 value as a Uint64.\nfunc appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, v.Uint())\n\treturn b, nil\n}\n\n// consumeUint64Value decodes a uint64 value as a Uint64.\nfunc consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint64(v), out, nil\n}\n\nvar coderUint64Value = valueCoderFuncs{\n\tsize:      sizeUint64Value,\n\tmarshal:   appendUint64Value,\n\tunmarshal: consumeUint64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeUint64SliceValue returns the size of wire encoding a []uint64 value as a repeated Uint64.\nfunc sizeUint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(v.Uint())\n\t}\n\treturn size\n}\n\n// appendUint64SliceValue encodes a []uint64 value as a repeated Uint64.\nfunc appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\n// consumeUint64SliceValue wire decodes a []uint64 value as a repeated Uint64.\nfunc consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint64(v))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderUint64SliceValue = valueCoderFuncs{\n\tsize:      sizeUint64SliceValue,\n\tmarshal:   appendUint64SliceValue,\n\tunmarshal: consumeUint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Uint64.\nfunc sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(v.Uint())\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint64PackedSliceValue encodes a []uint64 value as a packed repeated Uint64.\nfunc appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(v.Uint())\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\nvar coderUint64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeUint64PackedSliceValue,\n\tmarshal:   appendUint64PackedSliceValue,\n\tunmarshal: consumeUint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed32 returns the size of wire encoding a int32 pointer as a Sfixed32.\nfunc sizeSfixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32 wire encodes a int32 pointer as a Sfixed32.\nfunc appendSfixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\n// consumeSfixed32 wire decodes a int32 pointer as a Sfixed32.\nfunc consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32 = pointerCoderFuncs{\n\tsize:      sizeSfixed32,\n\tmarshal:   appendSfixed32,\n\tunmarshal: consumeSfixed32,\n\tmerge:     mergeInt32,\n}\n\n// sizeSfixed32NoZero returns the size of wire encoding a int32 pointer as a Sfixed32.\n// The zero value is not encoded.\nfunc sizeSfixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32NoZero wire encodes a int32 pointer as a Sfixed32.\n// The zero value is not encoded.\nfunc appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\nvar coderSfixed32NoZero = pointerCoderFuncs{\n\tsize:      sizeSfixed32NoZero,\n\tmarshal:   appendSfixed32NoZero,\n\tunmarshal: consumeSfixed32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeSfixed32Ptr returns the size of wire encoding a *int32 pointer as a Sfixed32.\n// It panics if the pointer is nil.\nfunc sizeSfixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32Ptr wire encodes a *int32 pointer as a Sfixed32.\n// It panics if the pointer is nil.\nfunc appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\n// consumeSfixed32Ptr wire decodes a *int32 pointer as a Sfixed32.\nfunc consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32Ptr = pointerCoderFuncs{\n\tsize:      sizeSfixed32Ptr,\n\tmarshal:   appendSfixed32Ptr,\n\tunmarshal: consumeSfixed32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeSfixed32Slice returns the size of wire encoding a []int32 pointer as a repeated Sfixed32.\nfunc sizeSfixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendSfixed32Slice encodes a []int32 pointer as a repeated Sfixed32.\nfunc appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed32Slice wire decodes a []int32 pointer as a repeated Sfixed32.\nfunc consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32Slice = pointerCoderFuncs{\n\tsize:      sizeSfixed32Slice,\n\tmarshal:   appendSfixed32Slice,\n\tunmarshal: consumeSfixed32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSfixed32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sfixed32.\nfunc sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed32PackedSlice encodes a []int32 pointer as a packed repeated Sfixed32.\nfunc appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSfixed32PackedSlice,\n\tmarshal:   appendSfixed32PackedSlice,\n\tunmarshal: consumeSfixed32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSfixed32Value returns the size of wire encoding a int32 value as a Sfixed32.\nfunc sizeSfixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32Value encodes a int32 value as a Sfixed32.\nfunc appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\treturn b, nil\n}\n\n// consumeSfixed32Value decodes a int32 value as a Sfixed32.\nfunc consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(v)), out, nil\n}\n\nvar coderSfixed32Value = valueCoderFuncs{\n\tsize:      sizeSfixed32Value,\n\tmarshal:   appendSfixed32Value,\n\tunmarshal: consumeSfixed32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSfixed32SliceValue returns the size of wire encoding a []int32 value as a repeated Sfixed32.\nfunc sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendSfixed32SliceValue encodes a []int32 value as a repeated Sfixed32.\nfunc appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed32SliceValue wire decodes a []int32 value as a repeated Sfixed32.\nfunc consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSfixed32SliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed32SliceValue,\n\tmarshal:   appendSfixed32SliceValue,\n\tunmarshal: consumeSfixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sfixed32.\nfunc sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed32PackedSliceValue encodes a []int32 value as a packed repeated Sfixed32.\nfunc appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed32PackedSliceValue,\n\tmarshal:   appendSfixed32PackedSliceValue,\n\tunmarshal: consumeSfixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed32 returns the size of wire encoding a uint32 pointer as a Fixed32.\nfunc sizeFixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32 wire encodes a uint32 pointer as a Fixed32.\nfunc appendFixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\n// consumeFixed32 wire decodes a uint32 pointer as a Fixed32.\nfunc consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint32() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32 = pointerCoderFuncs{\n\tsize:      sizeFixed32,\n\tmarshal:   appendFixed32,\n\tunmarshal: consumeFixed32,\n\tmerge:     mergeUint32,\n}\n\n// sizeFixed32NoZero returns the size of wire encoding a uint32 pointer as a Fixed32.\n// The zero value is not encoded.\nfunc sizeFixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32NoZero wire encodes a uint32 pointer as a Fixed32.\n// The zero value is not encoded.\nfunc appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\nvar coderFixed32NoZero = pointerCoderFuncs{\n\tsize:      sizeFixed32NoZero,\n\tmarshal:   appendFixed32NoZero,\n\tunmarshal: consumeFixed32,\n\tmerge:     mergeUint32NoZero,\n}\n\n// sizeFixed32Ptr returns the size of wire encoding a *uint32 pointer as a Fixed32.\n// It panics if the pointer is nil.\nfunc sizeFixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32Ptr wire encodes a *uint32 pointer as a Fixed32.\n// It panics if the pointer is nil.\nfunc appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\n// consumeFixed32Ptr wire decodes a *uint32 pointer as a Fixed32.\nfunc consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint32)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32Ptr = pointerCoderFuncs{\n\tsize:      sizeFixed32Ptr,\n\tmarshal:   appendFixed32Ptr,\n\tunmarshal: consumeFixed32Ptr,\n\tmerge:     mergeUint32Ptr,\n}\n\n// sizeFixed32Slice returns the size of wire encoding a []uint32 pointer as a repeated Fixed32.\nfunc sizeFixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFixed32Slice encodes a []uint32 pointer as a repeated Fixed32.\nfunc appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeFixed32Slice wire decodes a []uint32 pointer as a repeated Fixed32.\nfunc consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growUint32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32Slice = pointerCoderFuncs{\n\tsize:      sizeFixed32Slice,\n\tmarshal:   appendFixed32Slice,\n\tunmarshal: consumeFixed32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeFixed32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Fixed32.\nfunc sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed32PackedSlice encodes a []uint32 pointer as a packed repeated Fixed32.\nfunc appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderFixed32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeFixed32PackedSlice,\n\tmarshal:   appendFixed32PackedSlice,\n\tunmarshal: consumeFixed32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeFixed32Value returns the size of wire encoding a uint32 value as a Fixed32.\nfunc sizeFixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32Value encodes a uint32 value as a Fixed32.\nfunc appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\treturn b, nil\n}\n\n// consumeFixed32Value decodes a uint32 value as a Fixed32.\nfunc consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint32(uint32(v)), out, nil\n}\n\nvar coderFixed32Value = valueCoderFuncs{\n\tsize:      sizeFixed32Value,\n\tmarshal:   appendFixed32Value,\n\tunmarshal: consumeFixed32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFixed32SliceValue returns the size of wire encoding a []uint32 value as a repeated Fixed32.\nfunc sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFixed32SliceValue encodes a []uint32 value as a repeated Fixed32.\nfunc appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\t}\n\treturn b, nil\n}\n\n// consumeFixed32SliceValue wire decodes a []uint32 value as a repeated Fixed32.\nfunc consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFixed32SliceValue = valueCoderFuncs{\n\tsize:      sizeFixed32SliceValue,\n\tmarshal:   appendFixed32SliceValue,\n\tunmarshal: consumeFixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Fixed32.\nfunc sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed32PackedSliceValue encodes a []uint32 value as a packed repeated Fixed32.\nfunc appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\t}\n\treturn b, nil\n}\n\nvar coderFixed32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFixed32PackedSliceValue,\n\tmarshal:   appendFixed32PackedSliceValue,\n\tunmarshal: consumeFixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFloat returns the size of wire encoding a float32 pointer as a Float.\nfunc sizeFloat(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloat wire encodes a float32 pointer as a Float.\nfunc appendFloat(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\n// consumeFloat wire decodes a float32 pointer as a Float.\nfunc consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Float32() = math.Float32frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloat = pointerCoderFuncs{\n\tsize:      sizeFloat,\n\tmarshal:   appendFloat,\n\tunmarshal: consumeFloat,\n\tmerge:     mergeFloat32,\n}\n\n// sizeFloatNoZero returns the size of wire encoding a float32 pointer as a Float.\n// The zero value is not encoded.\nfunc sizeFloatNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Float32()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatNoZero wire encodes a float32 pointer as a Float.\n// The zero value is not encoded.\nfunc appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float32()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\nvar coderFloatNoZero = pointerCoderFuncs{\n\tsize:      sizeFloatNoZero,\n\tmarshal:   appendFloatNoZero,\n\tunmarshal: consumeFloat,\n\tmerge:     mergeFloat32NoZero,\n}\n\n// sizeFloatPtr returns the size of wire encoding a *float32 pointer as a Float.\n// It panics if the pointer is nil.\nfunc sizeFloatPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatPtr wire encodes a *float32 pointer as a Float.\n// It panics if the pointer is nil.\nfunc appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Float32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\n// consumeFloatPtr wire decodes a *float32 pointer as a Float.\nfunc consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Float32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(float32)\n\t}\n\t**vp = math.Float32frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloatPtr = pointerCoderFuncs{\n\tsize:      sizeFloatPtr,\n\tmarshal:   appendFloatPtr,\n\tunmarshal: consumeFloatPtr,\n\tmerge:     mergeFloat32Ptr,\n}\n\n// sizeFloatSlice returns the size of wire encoding a []float32 pointer as a repeated Float.\nfunc sizeFloatSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFloatSlice encodes a []float32 pointer as a repeated Float.\nfunc appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\n\n// consumeFloatSlice wire decodes a []float32 pointer as a repeated Float.\nfunc consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Float32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growFloat32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, math.Float32frombits(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, math.Float32frombits(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloatSlice = pointerCoderFuncs{\n\tsize:      sizeFloatSlice,\n\tmarshal:   appendFloatSlice,\n\tunmarshal: consumeFloatSlice,\n\tmerge:     mergeFloat32Slice,\n}\n\n// sizeFloatPackedSlice returns the size of wire encoding a []float32 pointer as a packed repeated Float.\nfunc sizeFloatPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFloatPackedSlice encodes a []float32 pointer as a packed repeated Float.\nfunc appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\n\nvar coderFloatPackedSlice = pointerCoderFuncs{\n\tsize:      sizeFloatPackedSlice,\n\tmarshal:   appendFloatPackedSlice,\n\tunmarshal: consumeFloatSlice,\n\tmerge:     mergeFloat32Slice,\n}\n\n// sizeFloatValue returns the size of wire encoding a float32 value as a Float.\nfunc sizeFloatValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatValue encodes a float32 value as a Float.\nfunc appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\treturn b, nil\n}\n\n// consumeFloatValue decodes a float32 value as a Float.\nfunc consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), out, nil\n}\n\nvar coderFloatValue = valueCoderFuncs{\n\tsize:      sizeFloatValue,\n\tmarshal:   appendFloatValue,\n\tunmarshal: consumeFloatValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFloatSliceValue returns the size of wire encoding a []float32 value as a repeated Float.\nfunc sizeFloatSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFloatSliceValue encodes a []float32 value as a repeated Float.\nfunc appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\t}\n\treturn b, nil\n}\n\n// consumeFloatSliceValue wire decodes a []float32 value as a repeated Float.\nfunc consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFloatSliceValue = valueCoderFuncs{\n\tsize:      sizeFloatSliceValue,\n\tmarshal:   appendFloatSliceValue,\n\tunmarshal: consumeFloatSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFloatPackedSliceValue returns the size of wire encoding a []float32 value as a packed repeated Float.\nfunc sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFloatPackedSliceValue encodes a []float32 value as a packed repeated Float.\nfunc appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\t}\n\treturn b, nil\n}\n\nvar coderFloatPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFloatPackedSliceValue,\n\tmarshal:   appendFloatPackedSliceValue,\n\tunmarshal: consumeFloatSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed64 returns the size of wire encoding a int64 pointer as a Sfixed64.\nfunc sizeSfixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64 wire encodes a int64 pointer as a Sfixed64.\nfunc appendSfixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeSfixed64 wire decodes a int64 pointer as a Sfixed64.\nfunc consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64 = pointerCoderFuncs{\n\tsize:      sizeSfixed64,\n\tmarshal:   appendSfixed64,\n\tunmarshal: consumeSfixed64,\n\tmerge:     mergeInt64,\n}\n\n// sizeSfixed64NoZero returns the size of wire encoding a int64 pointer as a Sfixed64.\n// The zero value is not encoded.\nfunc sizeSfixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64NoZero wire encodes a int64 pointer as a Sfixed64.\n// The zero value is not encoded.\nfunc appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderSfixed64NoZero = pointerCoderFuncs{\n\tsize:      sizeSfixed64NoZero,\n\tmarshal:   appendSfixed64NoZero,\n\tunmarshal: consumeSfixed64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeSfixed64Ptr returns the size of wire encoding a *int64 pointer as a Sfixed64.\n// It panics if the pointer is nil.\nfunc sizeSfixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64Ptr wire encodes a *int64 pointer as a Sfixed64.\n// It panics if the pointer is nil.\nfunc appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeSfixed64Ptr wire decodes a *int64 pointer as a Sfixed64.\nfunc consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64Ptr = pointerCoderFuncs{\n\tsize:      sizeSfixed64Ptr,\n\tmarshal:   appendSfixed64Ptr,\n\tunmarshal: consumeSfixed64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeSfixed64Slice returns the size of wire encoding a []int64 pointer as a repeated Sfixed64.\nfunc sizeSfixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendSfixed64Slice encodes a []int64 pointer as a repeated Sfixed64.\nfunc appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed64Slice wire decodes a []int64 pointer as a repeated Sfixed64.\nfunc consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int64(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64Slice = pointerCoderFuncs{\n\tsize:      sizeSfixed64Slice,\n\tmarshal:   appendSfixed64Slice,\n\tunmarshal: consumeSfixed64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSfixed64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sfixed64.\nfunc sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed64PackedSlice encodes a []int64 pointer as a packed repeated Sfixed64.\nfunc appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSfixed64PackedSlice,\n\tmarshal:   appendSfixed64PackedSlice,\n\tunmarshal: consumeSfixed64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSfixed64Value returns the size of wire encoding a int64 value as a Sfixed64.\nfunc sizeSfixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64Value encodes a int64 value as a Sfixed64.\nfunc appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\treturn b, nil\n}\n\n// consumeSfixed64Value decodes a int64 value as a Sfixed64.\nfunc consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(int64(v)), out, nil\n}\n\nvar coderSfixed64Value = valueCoderFuncs{\n\tsize:      sizeSfixed64Value,\n\tmarshal:   appendSfixed64Value,\n\tunmarshal: consumeSfixed64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSfixed64SliceValue returns the size of wire encoding a []int64 value as a repeated Sfixed64.\nfunc sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendSfixed64SliceValue encodes a []int64 value as a repeated Sfixed64.\nfunc appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed64SliceValue wire decodes a []int64 value as a repeated Sfixed64.\nfunc consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSfixed64SliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed64SliceValue,\n\tmarshal:   appendSfixed64SliceValue,\n\tunmarshal: consumeSfixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sfixed64.\nfunc sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed64PackedSliceValue encodes a []int64 value as a packed repeated Sfixed64.\nfunc appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed64PackedSliceValue,\n\tmarshal:   appendSfixed64PackedSliceValue,\n\tunmarshal: consumeSfixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed64 returns the size of wire encoding a uint64 pointer as a Fixed64.\nfunc sizeFixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64 wire encodes a uint64 pointer as a Fixed64.\nfunc appendFixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\n// consumeFixed64 wire decodes a uint64 pointer as a Fixed64.\nfunc consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint64() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64 = pointerCoderFuncs{\n\tsize:      sizeFixed64,\n\tmarshal:   appendFixed64,\n\tunmarshal: consumeFixed64,\n\tmerge:     mergeUint64,\n}\n\n// sizeFixed64NoZero returns the size of wire encoding a uint64 pointer as a Fixed64.\n// The zero value is not encoded.\nfunc sizeFixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64NoZero wire encodes a uint64 pointer as a Fixed64.\n// The zero value is not encoded.\nfunc appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\nvar coderFixed64NoZero = pointerCoderFuncs{\n\tsize:      sizeFixed64NoZero,\n\tmarshal:   appendFixed64NoZero,\n\tunmarshal: consumeFixed64,\n\tmerge:     mergeUint64NoZero,\n}\n\n// sizeFixed64Ptr returns the size of wire encoding a *uint64 pointer as a Fixed64.\n// It panics if the pointer is nil.\nfunc sizeFixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64Ptr wire encodes a *uint64 pointer as a Fixed64.\n// It panics if the pointer is nil.\nfunc appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\n// consumeFixed64Ptr wire decodes a *uint64 pointer as a Fixed64.\nfunc consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint64)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64Ptr = pointerCoderFuncs{\n\tsize:      sizeFixed64Ptr,\n\tmarshal:   appendFixed64Ptr,\n\tunmarshal: consumeFixed64Ptr,\n\tmerge:     mergeUint64Ptr,\n}\n\n// sizeFixed64Slice returns the size of wire encoding a []uint64 pointer as a repeated Fixed64.\nfunc sizeFixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendFixed64Slice encodes a []uint64 pointer as a repeated Fixed64.\nfunc appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeFixed64Slice wire decodes a []uint64 pointer as a repeated Fixed64.\nfunc consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growUint64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64Slice = pointerCoderFuncs{\n\tsize:      sizeFixed64Slice,\n\tmarshal:   appendFixed64Slice,\n\tunmarshal: consumeFixed64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeFixed64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Fixed64.\nfunc sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed64PackedSlice encodes a []uint64 pointer as a packed repeated Fixed64.\nfunc appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderFixed64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeFixed64PackedSlice,\n\tmarshal:   appendFixed64PackedSlice,\n\tunmarshal: consumeFixed64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeFixed64Value returns the size of wire encoding a uint64 value as a Fixed64.\nfunc sizeFixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64Value encodes a uint64 value as a Fixed64.\nfunc appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, v.Uint())\n\treturn b, nil\n}\n\n// consumeFixed64Value decodes a uint64 value as a Fixed64.\nfunc consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint64(v), out, nil\n}\n\nvar coderFixed64Value = valueCoderFuncs{\n\tsize:      sizeFixed64Value,\n\tmarshal:   appendFixed64Value,\n\tunmarshal: consumeFixed64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFixed64SliceValue returns the size of wire encoding a []uint64 value as a repeated Fixed64.\nfunc sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendFixed64SliceValue encodes a []uint64 value as a repeated Fixed64.\nfunc appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\n// consumeFixed64SliceValue wire decodes a []uint64 value as a repeated Fixed64.\nfunc consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint64(v))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFixed64SliceValue = valueCoderFuncs{\n\tsize:      sizeFixed64SliceValue,\n\tmarshal:   appendFixed64SliceValue,\n\tunmarshal: consumeFixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Fixed64.\nfunc sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed64PackedSliceValue encodes a []uint64 value as a packed repeated Fixed64.\nfunc appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\nvar coderFixed64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFixed64PackedSliceValue,\n\tmarshal:   appendFixed64PackedSliceValue,\n\tunmarshal: consumeFixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeDouble returns the size of wire encoding a float64 pointer as a Double.\nfunc sizeDouble(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDouble wire encodes a float64 pointer as a Double.\nfunc appendDouble(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\n// consumeDouble wire decodes a float64 pointer as a Double.\nfunc consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Float64() = math.Float64frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDouble = pointerCoderFuncs{\n\tsize:      sizeDouble,\n\tmarshal:   appendDouble,\n\tunmarshal: consumeDouble,\n\tmerge:     mergeFloat64,\n}\n\n// sizeDoubleNoZero returns the size of wire encoding a float64 pointer as a Double.\n// The zero value is not encoded.\nfunc sizeDoubleNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Float64()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDoubleNoZero wire encodes a float64 pointer as a Double.\n// The zero value is not encoded.\nfunc appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float64()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\nvar coderDoubleNoZero = pointerCoderFuncs{\n\tsize:      sizeDoubleNoZero,\n\tmarshal:   appendDoubleNoZero,\n\tunmarshal: consumeDouble,\n\tmerge:     mergeFloat64NoZero,\n}\n\n// sizeDoublePtr returns the size of wire encoding a *float64 pointer as a Double.\n// It panics if the pointer is nil.\nfunc sizeDoublePtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDoublePtr wire encodes a *float64 pointer as a Double.\n// It panics if the pointer is nil.\nfunc appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Float64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\n// consumeDoublePtr wire decodes a *float64 pointer as a Double.\nfunc consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Float64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(float64)\n\t}\n\t**vp = math.Float64frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDoublePtr = pointerCoderFuncs{\n\tsize:      sizeDoublePtr,\n\tmarshal:   appendDoublePtr,\n\tunmarshal: consumeDoublePtr,\n\tmerge:     mergeFloat64Ptr,\n}\n\n// sizeDoubleSlice returns the size of wire encoding a []float64 pointer as a repeated Double.\nfunc sizeDoubleSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendDoubleSlice encodes a []float64 pointer as a repeated Double.\nfunc appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\n\n// consumeDoubleSlice wire decodes a []float64 pointer as a repeated Double.\nfunc consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Float64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growFloat64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, math.Float64frombits(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, math.Float64frombits(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDoubleSlice = pointerCoderFuncs{\n\tsize:      sizeDoubleSlice,\n\tmarshal:   appendDoubleSlice,\n\tunmarshal: consumeDoubleSlice,\n\tmerge:     mergeFloat64Slice,\n}\n\n// sizeDoublePackedSlice returns the size of wire encoding a []float64 pointer as a packed repeated Double.\nfunc sizeDoublePackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendDoublePackedSlice encodes a []float64 pointer as a packed repeated Double.\nfunc appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\n\nvar coderDoublePackedSlice = pointerCoderFuncs{\n\tsize:      sizeDoublePackedSlice,\n\tmarshal:   appendDoublePackedSlice,\n\tunmarshal: consumeDoubleSlice,\n\tmerge:     mergeFloat64Slice,\n}\n\n// sizeDoubleValue returns the size of wire encoding a float64 value as a Double.\nfunc sizeDoubleValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendDoubleValue encodes a float64 value as a Double.\nfunc appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\treturn b, nil\n}\n\n// consumeDoubleValue decodes a float64 value as a Double.\nfunc consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfFloat64(math.Float64frombits(v)), out, nil\n}\n\nvar coderDoubleValue = valueCoderFuncs{\n\tsize:      sizeDoubleValue,\n\tmarshal:   appendDoubleValue,\n\tunmarshal: consumeDoubleValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeDoubleSliceValue returns the size of wire encoding a []float64 value as a repeated Double.\nfunc sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendDoubleSliceValue encodes a []float64 value as a repeated Double.\nfunc appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\t}\n\treturn b, nil\n}\n\n// consumeDoubleSliceValue wire decodes a []float64 value as a repeated Double.\nfunc consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderDoubleSliceValue = valueCoderFuncs{\n\tsize:      sizeDoubleSliceValue,\n\tmarshal:   appendDoubleSliceValue,\n\tunmarshal: consumeDoubleSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeDoublePackedSliceValue returns the size of wire encoding a []float64 value as a packed repeated Double.\nfunc sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendDoublePackedSliceValue encodes a []float64 value as a packed repeated Double.\nfunc appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\t}\n\treturn b, nil\n}\n\nvar coderDoublePackedSliceValue = valueCoderFuncs{\n\tsize:      sizeDoublePackedSliceValue,\n\tmarshal:   appendDoublePackedSliceValue,\n\tunmarshal: consumeDoubleSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeString returns the size of wire encoding a string pointer as a String.\nfunc sizeString(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.String()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendString wire encodes a string pointer as a String.\nfunc appendString(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\n// consumeString wire decodes a string pointer as a String.\nfunc consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.String() = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderString = pointerCoderFuncs{\n\tsize:      sizeString,\n\tmarshal:   appendString,\n\tunmarshal: consumeString,\n\tmerge:     mergeString,\n}\n\n// appendStringValidateUTF8 wire encodes a string pointer as a String.\nfunc appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringValidateUTF8 wire decodes a string pointer as a String.\nfunc consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.String() = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeString,\n\tmarshal:   appendStringValidateUTF8,\n\tunmarshal: consumeStringValidateUTF8,\n\tmerge:     mergeString,\n}\n\n// sizeStringNoZero returns the size of wire encoding a string pointer as a String.\n// The zero value is not encoded.\nfunc sizeStringNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendStringNoZero wire encodes a string pointer as a String.\n// The zero value is not encoded.\nfunc appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\nvar coderStringNoZero = pointerCoderFuncs{\n\tsize:      sizeStringNoZero,\n\tmarshal:   appendStringNoZero,\n\tunmarshal: consumeString,\n\tmerge:     mergeStringNoZero,\n}\n\n// appendStringNoZeroValidateUTF8 wire encodes a string pointer as a String.\n// The zero value is not encoded.\nfunc appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\nvar coderStringNoZeroValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringNoZero,\n\tmarshal:   appendStringNoZeroValidateUTF8,\n\tunmarshal: consumeStringValidateUTF8,\n\tmerge:     mergeStringNoZero,\n}\n\n// sizeStringPtr returns the size of wire encoding a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc sizeStringPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.StringPtr()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendStringPtr wire encodes a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc appendStringPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.StringPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\n// consumeStringPtr wire decodes a *string pointer as a String.\nfunc consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.StringPtr()\n\tif *vp == nil {\n\t\t*vp = new(string)\n\t}\n\t**vp = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringPtr = pointerCoderFuncs{\n\tsize:      sizeStringPtr,\n\tmarshal:   appendStringPtr,\n\tunmarshal: consumeStringPtr,\n\tmerge:     mergeStringPtr,\n}\n\n// appendStringPtrValidateUTF8 wire encodes a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.StringPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringPtrValidateUTF8 wire decodes a *string pointer as a String.\nfunc consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tvp := p.StringPtr()\n\tif *vp == nil {\n\t\t*vp = new(string)\n\t}\n\t**vp = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringPtrValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringPtr,\n\tmarshal:   appendStringPtrValidateUTF8,\n\tunmarshal: consumeStringPtrValidateUTF8,\n\tmerge:     mergeStringPtr,\n}\n\n// sizeStringSlice returns the size of wire encoding a []string pointer as a repeated String.\nfunc sizeStringSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeBytes(len(v))\n\t}\n\treturn size\n}\n\n// appendStringSlice encodes a []string pointer as a repeated String.\nfunc appendStringSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendString(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeStringSlice wire decodes a []string pointer as a repeated String.\nfunc consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.StringSlice()\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, string(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringSlice = pointerCoderFuncs{\n\tsize:      sizeStringSlice,\n\tmarshal:   appendStringSlice,\n\tunmarshal: consumeStringSlice,\n\tmerge:     mergeStringSlice,\n}\n\n// appendStringSliceValidateUTF8 encodes a []string pointer as a repeated String.\nfunc appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendString(b, v)\n\t\tif !utf8.ValidString(v) {\n\t\t\treturn b, errInvalidUTF8{}\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// consumeStringSliceValidateUTF8 wire decodes a []string pointer as a repeated String.\nfunc consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tsp := p.StringSlice()\n\t*sp = append(*sp, string(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringSliceValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringSlice,\n\tmarshal:   appendStringSliceValidateUTF8,\n\tunmarshal: consumeStringSliceValidateUTF8,\n\tmerge:     mergeStringSlice,\n}\n\n// sizeStringValue returns the size of wire encoding a string value as a String.\nfunc sizeStringValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeBytes(len(v.String()))\n}\n\n// appendStringValue encodes a string value as a String.\nfunc appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendString(b, v.String())\n\treturn b, nil\n}\n\n// consumeStringValue decodes a string value as a String.\nfunc consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfString(string(v)), out, nil\n}\n\nvar coderStringValue = valueCoderFuncs{\n\tsize:      sizeStringValue,\n\tmarshal:   appendStringValue,\n\tunmarshal: consumeStringValue,\n\tmerge:     mergeScalarValue,\n}\n\n// appendStringValueValidateUTF8 encodes a string value as a String.\nfunc appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendString(b, v.String())\n\tif !utf8.ValidString(v.String()) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringValueValidateUTF8 decodes a string value as a String.\nfunc consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn protoreflect.Value{}, out, errInvalidUTF8{}\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfString(string(v)), out, nil\n}\n\nvar coderStringValueValidateUTF8 = valueCoderFuncs{\n\tsize:      sizeStringValue,\n\tmarshal:   appendStringValueValidateUTF8,\n\tunmarshal: consumeStringValueValidateUTF8,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeStringSliceValue returns the size of wire encoding a []string value as a repeated String.\nfunc sizeStringSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeBytes(len(v.String()))\n\t}\n\treturn size\n}\n\n// appendStringSliceValue encodes a []string value as a repeated String.\nfunc appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendString(b, v.String())\n\t}\n\treturn b, nil\n}\n\n// consumeStringSliceValue wire decodes a []string value as a repeated String.\nfunc consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfString(string(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderStringSliceValue = valueCoderFuncs{\n\tsize:      sizeStringSliceValue,\n\tmarshal:   appendStringSliceValue,\n\tunmarshal: consumeStringSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeBytes returns the size of wire encoding a []byte pointer as a Bytes.\nfunc sizeBytes(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bytes()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendBytes wire encodes a []byte pointer as a Bytes.\nfunc appendBytes(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\treturn b, nil\n}\n\n// consumeBytes wire decodes a []byte pointer as a Bytes.\nfunc consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bytes() = append(emptyBuf[:], v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytes = pointerCoderFuncs{\n\tsize:      sizeBytes,\n\tmarshal:   appendBytes,\n\tunmarshal: consumeBytes,\n\tmerge:     mergeBytes,\n}\n\n// appendBytesValidateUTF8 wire encodes a []byte pointer as a Bytes.\nfunc appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\tif !utf8.Valid(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesValidateUTF8 wire decodes a []byte pointer as a Bytes.\nfunc consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.Bytes() = append(emptyBuf[:], v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytes,\n\tmarshal:   appendBytesValidateUTF8,\n\tunmarshal: consumeBytesValidateUTF8,\n\tmerge:     mergeBytes,\n}\n\n// sizeBytesNoZero returns the size of wire encoding a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc sizeBytesNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendBytesNoZero wire encodes a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\treturn b, nil\n}\n\n// consumeBytesNoZero wire decodes a []byte pointer as a Bytes.\n// The zero value is not decoded.\nfunc consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bytes() = append(([]byte)(nil), v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesNoZero = pointerCoderFuncs{\n\tsize:      sizeBytesNoZero,\n\tmarshal:   appendBytesNoZero,\n\tunmarshal: consumeBytesNoZero,\n\tmerge:     mergeBytesNoZero,\n}\n\n// appendBytesNoZeroValidateUTF8 wire encodes a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\tif !utf8.Valid(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesNoZeroValidateUTF8 wire decodes a []byte pointer as a Bytes.\nfunc consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.Bytes() = append(([]byte)(nil), v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesNoZeroValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytesNoZero,\n\tmarshal:   appendBytesNoZeroValidateUTF8,\n\tunmarshal: consumeBytesNoZeroValidateUTF8,\n\tmerge:     mergeBytesNoZero,\n}\n\n// sizeBytesSlice returns the size of wire encoding a [][]byte pointer as a repeated Bytes.\nfunc sizeBytesSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeBytes(len(v))\n\t}\n\treturn size\n}\n\n// appendBytesSlice encodes a [][]byte pointer as a repeated Bytes.\nfunc appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendBytes(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSlice wire decodes a [][]byte pointer as a repeated Bytes.\nfunc consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.BytesSlice()\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, append(emptyBuf[:], v...))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesSlice = pointerCoderFuncs{\n\tsize:      sizeBytesSlice,\n\tmarshal:   appendBytesSlice,\n\tunmarshal: consumeBytesSlice,\n\tmerge:     mergeBytesSlice,\n}\n\n// appendBytesSliceValidateUTF8 encodes a [][]byte pointer as a repeated Bytes.\nfunc appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendBytes(b, v)\n\t\tif !utf8.Valid(v) {\n\t\t\treturn b, errInvalidUTF8{}\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSliceValidateUTF8 wire decodes a [][]byte pointer as a repeated Bytes.\nfunc consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tsp := p.BytesSlice()\n\t*sp = append(*sp, append(emptyBuf[:], v...))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesSliceValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytesSlice,\n\tmarshal:   appendBytesSliceValidateUTF8,\n\tunmarshal: consumeBytesSliceValidateUTF8,\n\tmerge:     mergeBytesSlice,\n}\n\n// sizeBytesValue returns the size of wire encoding a []byte value as a Bytes.\nfunc sizeBytesValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeBytes(len(v.Bytes()))\n}\n\n// appendBytesValue encodes a []byte value as a Bytes.\nfunc appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendBytes(b, v.Bytes())\n\treturn b, nil\n}\n\n// consumeBytesValue decodes a []byte value as a Bytes.\nfunc consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), out, nil\n}\n\nvar coderBytesValue = valueCoderFuncs{\n\tsize:      sizeBytesValue,\n\tmarshal:   appendBytesValue,\n\tunmarshal: consumeBytesValue,\n\tmerge:     mergeBytesValue,\n}\n\n// sizeBytesSliceValue returns the size of wire encoding a [][]byte value as a repeated Bytes.\nfunc sizeBytesSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeBytes(len(v.Bytes()))\n\t}\n\treturn size\n}\n\n// appendBytesSliceValue encodes a [][]byte value as a repeated Bytes.\nfunc appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendBytes(b, v.Bytes())\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSliceValue wire decodes a [][]byte value as a repeated Bytes.\nfunc consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderBytesSliceValue = valueCoderFuncs{\n\tsize:      sizeBytesSliceValue,\n\tmarshal:   appendBytesSliceValue,\n\tunmarshal: consumeBytesSliceValue,\n\tmerge:     mergeBytesListValue,\n}\n\n// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices.\nvar emptyBuf [0]byte\n\nvar wireTypes = map[protoreflect.Kind]protowire.Type{\n\tprotoreflect.BoolKind:     protowire.VarintType,\n\tprotoreflect.EnumKind:     protowire.VarintType,\n\tprotoreflect.Int32Kind:    protowire.VarintType,\n\tprotoreflect.Sint32Kind:   protowire.VarintType,\n\tprotoreflect.Uint32Kind:   protowire.VarintType,\n\tprotoreflect.Int64Kind:    protowire.VarintType,\n\tprotoreflect.Sint64Kind:   protowire.VarintType,\n\tprotoreflect.Uint64Kind:   protowire.VarintType,\n\tprotoreflect.Sfixed32Kind: protowire.Fixed32Type,\n\tprotoreflect.Fixed32Kind:  protowire.Fixed32Type,\n\tprotoreflect.FloatKind:    protowire.Fixed32Type,\n\tprotoreflect.Sfixed64Kind: protowire.Fixed64Type,\n\tprotoreflect.Fixed64Kind:  protowire.Fixed64Type,\n\tprotoreflect.DoubleKind:   protowire.Fixed64Type,\n\tprotoreflect.StringKind:   protowire.BytesType,\n\tprotoreflect.BytesKind:    protowire.BytesType,\n\tprotoreflect.MessageKind:  protowire.BytesType,\n\tprotoreflect.GroupKind:    protowire.StartGroupType,\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_map.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype mapInfo struct {\n\tgoType     reflect.Type\n\tkeyWiretag uint64\n\tvalWiretag uint64\n\tkeyFuncs   valueCoderFuncs\n\tvalFuncs   valueCoderFuncs\n\tkeyZero    protoreflect.Value\n\tkeyKind    protoreflect.Kind\n\tconv       *mapConverter\n}\n\nfunc encoderFuncsForMap(fd protoreflect.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) {\n\t// TODO: Consider generating specialized map coders.\n\tkeyField := fd.MapKey()\n\tvalField := fd.MapValue()\n\tkeyWiretag := protowire.EncodeTag(1, wireTypes[keyField.Kind()])\n\tvalWiretag := protowire.EncodeTag(2, wireTypes[valField.Kind()])\n\tkeyFuncs := encoderFuncsForValue(keyField)\n\tvalFuncs := encoderFuncsForValue(valField)\n\tconv := newMapConverter(ft, fd)\n\n\tmapi := &mapInfo{\n\t\tgoType:     ft,\n\t\tkeyWiretag: keyWiretag,\n\t\tvalWiretag: valWiretag,\n\t\tkeyFuncs:   keyFuncs,\n\t\tvalFuncs:   valFuncs,\n\t\tkeyZero:    keyField.Default(),\n\t\tkeyKind:    keyField.Kind(),\n\t\tconv:       conv,\n\t}\n\tif valField.Kind() == protoreflect.MessageKind {\n\t\tvalueMessage = getMessageInfo(ft.Elem())\n\t}\n\n\tfuncs = pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeMap(p.AsValueOf(ft).Elem(), mapi, f, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendMap(b, p.AsValueOf(ft).Elem(), mapi, f, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\tmp := p.AsValueOf(ft)\n\t\t\tif mp.Elem().IsNil() {\n\t\t\t\tmp.Elem().Set(reflect.MakeMap(mapi.goType))\n\t\t\t}\n\t\t\tif f.mi == nil {\n\t\t\t\treturn consumeMap(b, mp.Elem(), wtyp, mapi, f, opts)\n\t\t\t} else {\n\t\t\t\treturn consumeMapOfMessage(b, mp.Elem(), wtyp, mapi, f, opts)\n\t\t\t}\n\t\t},\n\t}\n\tswitch valField.Kind() {\n\tcase protoreflect.MessageKind:\n\t\tfuncs.merge = mergeMapOfMessage\n\tcase protoreflect.BytesKind:\n\t\tfuncs.merge = mergeMapOfBytes\n\tdefault:\n\t\tfuncs.merge = mergeMap\n\t}\n\tif valFuncs.isInit != nil {\n\t\tfuncs.isInit = func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMap(p.AsValueOf(ft).Elem(), mapi, f)\n\t\t}\n\t}\n\treturn valueMessage, funcs\n}\n\nconst (\n\tmapKeyTagSize = 1 // field 1, tag size 1.\n\tmapValTagSize = 1 // field 2, tag size 2.\n)\n\nfunc sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) int {\n\tif mapv.Len() == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\titer := mapv.MapRange()\n\tfor iter.Next() {\n\t\tkey := mapi.conv.keyConv.PBValueOf(iter.Key()).MapKey()\n\t\tkeySize := mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tvar valSize int\n\t\tvalue := mapi.conv.valConv.PBValueOf(iter.Value())\n\t\tif f.mi == nil {\n\t\t\tvalSize = mapi.valFuncs.size(value, mapValTagSize, opts)\n\t\t} else {\n\t\t\tp := pointerOfValue(iter.Value())\n\t\t\tvalSize += mapValTagSize\n\t\t\tvalSize += protowire.SizeBytes(f.mi.sizePointer(p, opts))\n\t\t}\n\t\tn += f.tagsize + protowire.SizeBytes(keySize+valSize)\n\t}\n\treturn n\n}\n\nfunc consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvar (\n\t\tkey = mapi.keyZero\n\t\tval = mapi.conv.valConv.New()\n\t)\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr := errUnknown\n\t\tswitch num {\n\t\tcase genid.MapEntry_Key_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tkey = v\n\t\t\tn = o.n\n\t\tcase genid.MapEntry_Value_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = v\n\t\t\tn = o.n\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn out, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\tmapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), mapi.conv.valConv.GoValueOf(val))\n\tout.n = n\n\treturn out, nil\n}\n\nfunc consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvar (\n\t\tkey = mapi.keyZero\n\t\tval = reflect.New(f.mi.GoReflectType.Elem())\n\t)\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr := errUnknown\n\t\tswitch num {\n\t\tcase 1:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tkey = v\n\t\t\tn = o.n\n\t\tcase 2:\n\t\t\tif wtyp != protowire.BytesType {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = f.mi.unmarshalPointer(v, pointerOfValue(val), 0, opts)\n\t\t\tif o.initialized {\n\t\t\t\t// Consider this map item initialized so long as we see\n\t\t\t\t// an initialized value.\n\t\t\t\tout.initialized = true\n\t\t\t}\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn out, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\tmapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), val)\n\tout.n = n\n\treturn out, nil\n}\n\nfunc appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tif f.mi == nil {\n\t\tkey := mapi.conv.keyConv.PBValueOf(keyrv).MapKey()\n\t\tval := mapi.conv.valConv.PBValueOf(valrv)\n\t\tsize := 0\n\t\tsize += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tsize += mapi.valFuncs.size(val, mapValTagSize, opts)\n\t\tb = protowire.AppendVarint(b, uint64(size))\n\t\tbefore := len(b)\n\t\tb, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tb, err = mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts)\n\t\tif measuredSize := len(b) - before; size != measuredSize && err == nil {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(size, measuredSize)\n\t\t}\n\t\treturn b, err\n\t} else {\n\t\tkey := mapi.conv.keyConv.PBValueOf(keyrv).MapKey()\n\t\tval := pointerOfValue(valrv)\n\t\tvalSize := f.mi.sizePointer(val, opts)\n\t\tsize := 0\n\t\tsize += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tsize += mapValTagSize + protowire.SizeBytes(valSize)\n\t\tb = protowire.AppendVarint(b, uint64(size))\n\t\tb, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, mapi.valWiretag)\n\t\tb = protowire.AppendVarint(b, uint64(valSize))\n\t\tbefore := len(b)\n\t\tb, err = f.mi.marshalAppendPointer(b, val, opts)\n\t\tif measuredSize := len(b) - before; valSize != measuredSize && err == nil {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(valSize, measuredSize)\n\t\t}\n\t\treturn b, err\n\t}\n}\n\nfunc appendMap(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tif mapv.Len() == 0 {\n\t\treturn b, nil\n\t}\n\tif opts.Deterministic() {\n\t\treturn appendMapDeterministic(b, mapv, mapi, f, opts)\n\t}\n\titer := mapv.MapRange()\n\tfor iter.Next() {\n\t\tvar err error\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb, err = appendMapItem(b, iter.Key(), iter.Value(), mapi, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc appendMapDeterministic(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tkeys := mapv.MapKeys()\n\tsort.Slice(keys, func(i, j int) bool {\n\t\tswitch keys[i].Kind() {\n\t\tcase reflect.Bool:\n\t\t\treturn !keys[i].Bool() && keys[j].Bool()\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\treturn keys[i].Int() < keys[j].Int()\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\treturn keys[i].Uint() < keys[j].Uint()\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\treturn keys[i].Float() < keys[j].Float()\n\t\tcase reflect.String:\n\t\t\treturn keys[i].String() < keys[j].String()\n\t\tdefault:\n\t\t\tpanic(\"invalid kind: \" + keys[i].Kind().String())\n\t\t}\n\t})\n\tfor _, key := range keys {\n\t\tvar err error\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb, err = appendMapItem(b, key, mapv.MapIndex(key), mapi, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error {\n\tif mi := f.mi; mi != nil {\n\t\tmi.init()\n\t\tif !mi.needsInitCheck {\n\t\t\treturn nil\n\t\t}\n\t\titer := mapv.MapRange()\n\t\tfor iter.Next() {\n\t\t\tval := pointerOfValue(iter.Value())\n\t\t\tif err := mi.checkInitializedPointer(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\titer := mapv.MapRange()\n\t\tfor iter.Next() {\n\t\t\tval := mapi.conv.valConv.PBValueOf(iter.Value())\n\t\t\tif err := mapi.valFuncs.isInit(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc mergeMap(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := srcm.MapRange()\n\tfor iter.Next() {\n\t\tdstm.SetMapIndex(iter.Key(), iter.Value())\n\t}\n}\n\nfunc mergeMapOfBytes(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := srcm.MapRange()\n\tfor iter.Next() {\n\t\tdstm.SetMapIndex(iter.Key(), reflect.ValueOf(append(emptyBuf[:], iter.Value().Bytes()...)))\n\t}\n}\n\nfunc mergeMapOfMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := srcm.MapRange()\n\tfor iter.Next() {\n\t\tval := reflect.New(f.ft.Elem().Elem())\n\t\tif f.mi != nil {\n\t\t\tf.mi.mergePointer(pointerOfValue(val), pointerOfValue(iter.Value()), opts)\n\t\t} else {\n\t\t\topts.Merge(asMessage(val), asMessage(iter.Value()))\n\t\t}\n\t\tdstm.SetMapIndex(iter.Key(), val)\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_message.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// coderMessageInfo contains per-message information used by the fast-path functions.\n// This is a different type from MessageInfo to keep MessageInfo as general-purpose as\n// possible.\ntype coderMessageInfo struct {\n\tmethods protoiface.Methods\n\n\torderedCoderFields []*coderFieldInfo\n\tdenseCoderFields   []*coderFieldInfo\n\tcoderFields        map[protowire.Number]*coderFieldInfo\n\tsizecacheOffset    offset\n\tunknownOffset      offset\n\tunknownPtrKind     bool\n\textensionOffset    offset\n\tneedsInitCheck     bool\n\tisMessageSet       bool\n\tnumRequiredFields  uint8\n\n\tlazyOffset     offset\n\tpresenceOffset offset\n\tpresenceSize   presenceSize\n}\n\ntype coderFieldInfo struct {\n\tfuncs      pointerCoderFuncs // fast-path per-field functions\n\tmi         *MessageInfo      // field's message\n\tft         reflect.Type\n\tvalidation validationInfo           // information used by message validation\n\tnum        protoreflect.FieldNumber // field number\n\toffset     offset                   // struct field offset\n\twiretag    uint64                   // field tag (number + wire type)\n\ttagsize    int                      // size of the varint-encoded tag\n\tisPointer  bool                     // true if IsNil may be called on the struct field\n\tisRequired bool                     // true if field is required\n\n\tisLazy        bool\n\tpresenceIndex uint32\n}\n\nconst noPresence = 0xffffffff\n\nfunc (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) {\n\tmi.sizecacheOffset = invalidOffset\n\tmi.unknownOffset = invalidOffset\n\tmi.extensionOffset = invalidOffset\n\tmi.lazyOffset = invalidOffset\n\tmi.presenceOffset = si.presenceOffset\n\n\tif si.sizecacheOffset.IsValid() && si.sizecacheType == sizecacheType {\n\t\tmi.sizecacheOffset = si.sizecacheOffset\n\t}\n\tif si.unknownOffset.IsValid() && (si.unknownType == unknownFieldsAType || si.unknownType == unknownFieldsBType) {\n\t\tmi.unknownOffset = si.unknownOffset\n\t\tmi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr\n\t}\n\tif si.extensionOffset.IsValid() && si.extensionType == extensionFieldsType {\n\t\tmi.extensionOffset = si.extensionOffset\n\t}\n\n\tmi.coderFields = make(map[protowire.Number]*coderFieldInfo)\n\tfields := mi.Desc.Fields()\n\tpreallocFields := make([]coderFieldInfo, fields.Len())\n\tfor i := 0; i < fields.Len(); i++ {\n\t\tfd := fields.Get(i)\n\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tft := fs.Type\n\t\tvar wiretag uint64\n\t\tif !fd.IsPacked() {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), wireTypes[fd.Kind()])\n\t\t} else {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), protowire.BytesType)\n\t\t}\n\t\tvar fieldOffset offset\n\t\tvar funcs pointerCoderFuncs\n\t\tvar childMessage *MessageInfo\n\t\tswitch {\n\t\tcase ft == nil:\n\t\t\t// This never occurs for generated message types.\n\t\t\t// It implies that a hand-crafted type has missing Go fields\n\t\t\t// for specific protobuf message fields.\n\t\t\tfuncs = pointerCoderFuncs{\n\t\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\t\treturn 0\n\t\t\t\t},\n\t\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\t\treturn nil, nil\n\t\t\t\t},\n\t\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t\tmerge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t}\n\t\tcase isOneof:\n\t\t\tfieldOffset = offsetOf(fs)\n\t\tdefault:\n\t\t\tfieldOffset = offsetOf(fs)\n\t\t\tchildMessage, funcs = fieldCoder(fd, ft)\n\t\t}\n\t\tcf := &preallocFields[i]\n\t\t*cf = coderFieldInfo{\n\t\t\tnum:        fd.Number(),\n\t\t\toffset:     fieldOffset,\n\t\t\twiretag:    wiretag,\n\t\t\tft:         ft,\n\t\t\ttagsize:    protowire.SizeVarint(wiretag),\n\t\t\tfuncs:      funcs,\n\t\t\tmi:         childMessage,\n\t\t\tvalidation: newFieldValidationInfo(mi, si, fd, ft),\n\t\t\tisPointer:  fd.Cardinality() == protoreflect.Repeated || fd.HasPresence(),\n\t\t\tisRequired: fd.Cardinality() == protoreflect.Required,\n\n\t\t\tpresenceIndex: noPresence,\n\t\t}\n\t\tmi.orderedCoderFields = append(mi.orderedCoderFields, cf)\n\t\tmi.coderFields[cf.num] = cf\n\t}\n\tfor i, oneofs := 0, mi.Desc.Oneofs(); i < oneofs.Len(); i++ {\n\t\tif od := oneofs.Get(i); !od.IsSynthetic() {\n\t\t\tmi.initOneofFieldCoders(od, si)\n\t\t}\n\t}\n\tif messageset.IsMessageSet(mi.Desc) {\n\t\tif !mi.extensionOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no extensions field\", mi.Desc.FullName()))\n\t\t}\n\t\tif !mi.unknownOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no unknown field\", mi.Desc.FullName()))\n\t\t}\n\t\tmi.isMessageSet = true\n\t}\n\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\treturn mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num\n\t})\n\n\tvar maxDense protoreflect.FieldNumber\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif cf.num >= 16 && cf.num >= 2*maxDense {\n\t\t\tbreak\n\t\t}\n\t\tmaxDense = cf.num\n\t}\n\tmi.denseCoderFields = make([]*coderFieldInfo, maxDense+1)\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif int(cf.num) >= len(mi.denseCoderFields) {\n\t\t\tbreak\n\t\t}\n\t\tmi.denseCoderFields[cf.num] = cf\n\t}\n\n\t// To preserve compatibility with historic wire output, marshal oneofs last.\n\tif mi.Desc.Oneofs().Len() > 0 {\n\t\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\t\tfi := fields.ByNumber(mi.orderedCoderFields[i].num)\n\t\t\tfj := fields.ByNumber(mi.orderedCoderFields[j].num)\n\t\t\treturn order.LegacyFieldOrder(fi, fj)\n\t\t})\n\t}\n\n\tmi.needsInitCheck = needsInitCheck(mi.Desc)\n\tif mi.methods.Marshal == nil && mi.methods.Size == nil {\n\t\tmi.methods.Flags |= protoiface.SupportMarshalDeterministic\n\t\tmi.methods.Marshal = mi.marshal\n\t\tmi.methods.Size = mi.size\n\t}\n\tif mi.methods.Unmarshal == nil {\n\t\tmi.methods.Flags |= protoiface.SupportUnmarshalDiscardUnknown\n\t\tmi.methods.Unmarshal = mi.unmarshal\n\t}\n\tif mi.methods.CheckInitialized == nil {\n\t\tmi.methods.CheckInitialized = mi.checkInitialized\n\t}\n\tif mi.methods.Merge == nil {\n\t\tmi.methods.Merge = mi.merge\n\t}\n\tif mi.methods.Equal == nil {\n\t\tmi.methods.Equal = equal\n\t}\n}\n\n// getUnknownBytes returns a *[]byte for the unknown fields.\n// It is the caller's responsibility to check whether the pointer is nil.\n// This function is specially designed to be inlineable.\nfunc (mi *MessageInfo) getUnknownBytes(p pointer) *[]byte {\n\tif mi.unknownPtrKind {\n\t\treturn *p.Apply(mi.unknownOffset).BytesPtr()\n\t} else {\n\t\treturn p.Apply(mi.unknownOffset).Bytes()\n\t}\n}\n\n// mutableUnknownBytes returns a *[]byte for the unknown fields.\n// The returned pointer is guaranteed to not be nil.\nfunc (mi *MessageInfo) mutableUnknownBytes(p pointer) *[]byte {\n\tif mi.unknownPtrKind {\n\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\tif *bp == nil {\n\t\t\t*bp = new([]byte)\n\t\t}\n\t\treturn *bp\n\t} else {\n\t\treturn p.Apply(mi.unknownOffset).Bytes()\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\tpiface \"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (mi *MessageInfo) makeOpaqueCoderMethods(t reflect.Type, si opaqueStructInfo) {\n\tmi.sizecacheOffset = si.sizecacheOffset\n\tmi.unknownOffset = si.unknownOffset\n\tmi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr\n\tmi.extensionOffset = si.extensionOffset\n\tmi.lazyOffset = si.lazyOffset\n\tmi.presenceOffset = si.presenceOffset\n\n\tmi.coderFields = make(map[protowire.Number]*coderFieldInfo)\n\tfields := mi.Desc.Fields()\n\tfor i := 0; i < fields.Len(); i++ {\n\t\tfd := fields.Get(i)\n\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tif fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tft := fs.Type\n\t\tvar wiretag uint64\n\t\tif !fd.IsPacked() {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), wireTypes[fd.Kind()])\n\t\t} else {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), protowire.BytesType)\n\t\t}\n\t\tvar fieldOffset offset\n\t\tvar funcs pointerCoderFuncs\n\t\tvar childMessage *MessageInfo\n\t\tswitch {\n\t\tcase fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():\n\t\t\tfieldOffset = offsetOf(fs)\n\t\tcase fd.Message() != nil && !fd.IsMap():\n\t\t\tfieldOffset = offsetOf(fs)\n\t\t\tif fd.IsList() {\n\t\t\t\tchildMessage, funcs = makeOpaqueRepeatedMessageFieldCoder(fd, ft)\n\t\t\t} else {\n\t\t\t\tchildMessage, funcs = makeOpaqueMessageFieldCoder(fd, ft)\n\t\t\t}\n\t\tdefault:\n\t\t\tfieldOffset = offsetOf(fs)\n\t\t\tchildMessage, funcs = fieldCoder(fd, ft)\n\t\t}\n\t\tcf := &coderFieldInfo{\n\t\t\tnum:        fd.Number(),\n\t\t\toffset:     fieldOffset,\n\t\t\twiretag:    wiretag,\n\t\t\tft:         ft,\n\t\t\ttagsize:    protowire.SizeVarint(wiretag),\n\t\t\tfuncs:      funcs,\n\t\t\tmi:         childMessage,\n\t\t\tvalidation: newFieldValidationInfo(mi, si.structInfo, fd, ft),\n\t\t\tisPointer: (fd.Cardinality() == protoreflect.Repeated ||\n\t\t\t\tfd.Kind() == protoreflect.MessageKind ||\n\t\t\t\tfd.Kind() == protoreflect.GroupKind),\n\t\t\tisRequired:    fd.Cardinality() == protoreflect.Required,\n\t\t\tpresenceIndex: noPresence,\n\t\t}\n\n\t\t// TODO: Use presence for all fields.\n\t\t//\n\t\t// In some cases, such as maps, presence means only \"might be set\" rather\n\t\t// than \"is definitely set\", but every field should have a presence bit to\n\t\t// permit us to skip over definitely-unset fields at marshal time.\n\n\t\tvar hasPresence bool\n\t\thasPresence, cf.isLazy = filedesc.UsePresenceForField(fd)\n\n\t\tif hasPresence {\n\t\t\tcf.presenceIndex, mi.presenceSize = presenceIndex(mi.Desc, fd)\n\t\t}\n\n\t\tmi.orderedCoderFields = append(mi.orderedCoderFields, cf)\n\t\tmi.coderFields[cf.num] = cf\n\t}\n\tfor i, oneofs := 0, mi.Desc.Oneofs(); i < oneofs.Len(); i++ {\n\t\tif od := oneofs.Get(i); !od.IsSynthetic() {\n\t\t\tmi.initOneofFieldCoders(od, si.structInfo)\n\t\t}\n\t}\n\tif messageset.IsMessageSet(mi.Desc) {\n\t\tif !mi.extensionOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no extensions field\", mi.Desc.FullName()))\n\t\t}\n\t\tif !mi.unknownOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no unknown field\", mi.Desc.FullName()))\n\t\t}\n\t\tmi.isMessageSet = true\n\t}\n\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\treturn mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num\n\t})\n\n\tvar maxDense protoreflect.FieldNumber\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif cf.num >= 16 && cf.num >= 2*maxDense {\n\t\t\tbreak\n\t\t}\n\t\tmaxDense = cf.num\n\t}\n\tmi.denseCoderFields = make([]*coderFieldInfo, maxDense+1)\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif int(cf.num) > len(mi.denseCoderFields) {\n\t\t\tbreak\n\t\t}\n\t\tmi.denseCoderFields[cf.num] = cf\n\t}\n\n\t// To preserve compatibility with historic wire output, marshal oneofs last.\n\tif mi.Desc.Oneofs().Len() > 0 {\n\t\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\t\tfi := fields.ByNumber(mi.orderedCoderFields[i].num)\n\t\t\tfj := fields.ByNumber(mi.orderedCoderFields[j].num)\n\t\t\treturn order.LegacyFieldOrder(fi, fj)\n\t\t})\n\t}\n\n\tmi.needsInitCheck = needsInitCheck(mi.Desc)\n\tif mi.methods.Marshal == nil && mi.methods.Size == nil {\n\t\tmi.methods.Flags |= piface.SupportMarshalDeterministic\n\t\tmi.methods.Marshal = mi.marshal\n\t\tmi.methods.Size = mi.size\n\t}\n\tif mi.methods.Unmarshal == nil {\n\t\tmi.methods.Flags |= piface.SupportUnmarshalDiscardUnknown\n\t\tmi.methods.Unmarshal = mi.unmarshal\n\t}\n\tif mi.methods.CheckInitialized == nil {\n\t\tmi.methods.CheckInitialized = mi.checkInitialized\n\t}\n\tif mi.methods.Merge == nil {\n\t\tmi.methods.Merge = mi.merge\n\t}\n\tif mi.methods.Equal == nil {\n\t\tmi.methods.Equal = equal\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n)\n\nfunc sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) {\n\tif !flags.ProtoLegacy {\n\t\treturn 0\n\t}\n\n\text := *p.Apply(mi.extensionOffset).Extensions()\n\tfor _, x := range ext {\n\t\txi := getExtensionFieldInfo(x.Type())\n\t\tif xi.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tnum, _ := protowire.DecodeTag(xi.wiretag)\n\t\tsize += messageset.SizeField(num)\n\t\tif fullyLazyExtensions(opts) {\n\t\t\t// Don't expand the extension, instead use the buffer to calculate size\n\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t// We got hold of the buffer, so it's still lazy.\n\t\t\t\t// Don't count the tag size in the extension buffer, it's already added.\n\t\t\t\tsize += protowire.SizeTag(messageset.FieldMessage) + len(lb) - xi.tagsize\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tsize += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts)\n\t}\n\n\tif u := mi.getUnknownBytes(p); u != nil {\n\t\tsize += messageset.SizeUnknown(*u)\n\t}\n\n\treturn size\n}\n\nfunc marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions) ([]byte, error) {\n\tif !flags.ProtoLegacy {\n\t\treturn b, errors.New(\"no support for message_set_wire_format\")\n\t}\n\n\text := *p.Apply(mi.extensionOffset).Extensions()\n\tswitch len(ext) {\n\tcase 0:\n\tcase 1:\n\t\t// Fast-path for one extension: Don't bother sorting the keys.\n\t\tfor _, x := range ext {\n\t\t\tvar err error\n\t\t\tb, err = marshalMessageSetField(mi, b, x, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// Sort the keys to provide a deterministic encoding.\n\t\t// Not sure this is required, but the old code does it.\n\t\tkeys := make([]int, 0, len(ext))\n\t\tfor k := range ext {\n\t\t\tkeys = append(keys, int(k))\n\t\t}\n\t\tsort.Ints(keys)\n\t\tfor _, k := range keys {\n\t\t\tvar err error\n\t\t\tb, err = marshalMessageSetField(mi, b, ext[int32(k)], opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t}\n\n\tif u := mi.getUnknownBytes(p); u != nil {\n\t\tvar err error\n\t\tb, err = messageset.AppendUnknown(b, *u)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\n\treturn b, nil\n}\n\nfunc marshalMessageSetField(mi *MessageInfo, b []byte, x ExtensionField, opts marshalOptions) ([]byte, error) {\n\txi := getExtensionFieldInfo(x.Type())\n\tnum, _ := protowire.DecodeTag(xi.wiretag)\n\tb = messageset.AppendFieldStart(b, num)\n\n\tif fullyLazyExtensions(opts) {\n\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t// The tag inside the lazy buffer is a different tag (the extension\n\t\t\t// number), but what we need here is the tag for FieldMessage:\n\t\t\tb = protowire.AppendVarint(b, protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType))\n\t\t\tb = append(b, lb[xi.tagsize:]...)\n\t\t\tb = messageset.AppendFieldEnd(b)\n\t\t\treturn b, nil\n\t\t}\n\t}\n\n\tb, err := xi.funcs.marshal(b, x.Value(), protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType), opts)\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tb = messageset.AppendFieldEnd(b)\n\treturn b, nil\n}\n\nfunc unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif !flags.ProtoLegacy {\n\t\treturn out, errors.New(\"no support for message_set_wire_format\")\n\t}\n\n\tep := p.Apply(mi.extensionOffset).Extensions()\n\tif *ep == nil {\n\t\t*ep = make(map[int32]ExtensionField)\n\t}\n\text := *ep\n\tinitialized := true\n\terr = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error {\n\t\to, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts)\n\t\tif err == errUnknown {\n\t\t\tu := mi.mutableUnknownBytes(p)\n\t\t\t*u = protowire.AppendTag(*u, num, protowire.BytesType)\n\t\t\t*u = append(*u, v...)\n\t\t\treturn nil\n\t\t}\n\t\tif !o.initialized {\n\t\t\tinitialized = false\n\t\t}\n\t\treturn err\n\t})\n\tout.n = len(b)\n\tout.initialized = initialized\n\treturn out, err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_tables.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// pointerCoderFuncs is a set of pointer encoding functions.\ntype pointerCoderFuncs struct {\n\tmi        *MessageInfo\n\tsize      func(p pointer, f *coderFieldInfo, opts marshalOptions) int\n\tmarshal   func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error)\n\tunmarshal func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error)\n\tisInit    func(p pointer, f *coderFieldInfo) error\n\tmerge     func(dst, src pointer, f *coderFieldInfo, opts mergeOptions)\n}\n\n// valueCoderFuncs is a set of protoreflect.Value encoding functions.\ntype valueCoderFuncs struct {\n\tsize      func(v protoreflect.Value, tagsize int, opts marshalOptions) int\n\tmarshal   func(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error)\n\tunmarshal func(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error)\n\tisInit    func(v protoreflect.Value) error\n\tmerge     func(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value\n}\n\n// fieldCoder returns pointer functions for a field, used for operating on\n// struct fields.\nfunc fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) {\n\tswitch {\n\tcase fd.IsMap():\n\t\treturn encoderFuncsForMap(fd, ft)\n\tcase fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked():\n\t\t// Repeated fields (not packed).\n\t\tif ft.Kind() != reflect.Slice {\n\t\t\tbreak\n\t\t}\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolSlice\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumSlice\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32Slice\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32Slice\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32Slice\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64Slice\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64Slice\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64Slice\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32Slice\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32Slice\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64Slice\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64Slice\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoubleSlice\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringSliceValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringSlice\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesSliceValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesSlice\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringSlice\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesSlice\n\t\t\t}\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft)\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft)\n\t\t}\n\tcase fd.Cardinality() == protoreflect.Repeated && fd.IsPacked():\n\t\t// Packed repeated fields.\n\t\t//\n\t\t// Only repeated fields of primitive numeric types\n\t\t// (Varint, Fixed32, or Fixed64 wire type) can be packed.\n\t\tif ft.Kind() != reflect.Slice {\n\t\t\tbreak\n\t\t}\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolPackedSlice\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumPackedSlice\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatPackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoublePackedSlice\n\t\t\t}\n\t\t}\n\tcase fd.Kind() == protoreflect.MessageKind:\n\t\treturn getMessageInfo(ft), makeMessageFieldCoder(fd, ft)\n\tcase fd.Kind() == protoreflect.GroupKind:\n\t\treturn getMessageInfo(ft), makeGroupFieldCoder(fd, ft)\n\tcase !fd.HasPresence() && fd.ContainingOneof() == nil:\n\t\t// Populated oneof fields always encode even if set to the zero value,\n\t\t// which normally are not encoded in proto3.\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolNoZero\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumNoZero\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32NoZero\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32NoZero\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32NoZero\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64NoZero\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64NoZero\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64NoZero\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32NoZero\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32NoZero\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatNoZero\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64NoZero\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64NoZero\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoubleNoZero\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringNoZeroValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringNoZero\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesNoZeroValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesNoZero\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringNoZero\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesNoZero\n\t\t\t}\n\t\t}\n\tcase ft.Kind() == reflect.Ptr:\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolPtr\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumPtr\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32Ptr\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32Ptr\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32Ptr\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64Ptr\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64Ptr\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64Ptr\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32Ptr\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32Ptr\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatPtr\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64Ptr\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64Ptr\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoublePtr\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringPtrValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringPtr\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringPtr\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBool\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnum\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloat\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDouble\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderString\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytes\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderString\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytes\n\t\t\t}\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"invalid type: no encoder for %v %v %v/%v\", fd.FullName(), fd.Cardinality(), fd.Kind(), ft))\n}\n\n// encoderFuncsForValue returns value functions for a field, used for\n// extension values and map encoding.\nfunc encoderFuncsForValue(fd protoreflect.FieldDescriptor) valueCoderFuncs {\n\tswitch {\n\tcase fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolSliceValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumSliceValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32SliceValue\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32SliceValue\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32SliceValue\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64SliceValue\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64SliceValue\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64SliceValue\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32SliceValue\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32SliceValue\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatSliceValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64SliceValue\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64SliceValue\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoubleSliceValue\n\t\tcase protoreflect.StringKind:\n\t\t\t// We don't have a UTF-8 validating coder for repeated string fields.\n\t\t\t// Value coders are used for extensions and maps.\n\t\t\t// Extensions are never proto3, and maps never contain lists.\n\t\t\treturn coderStringSliceValue\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn coderBytesSliceValue\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn coderMessageSliceValue\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn coderGroupSliceValue\n\t\t}\n\tcase fd.Cardinality() == protoreflect.Repeated && fd.IsPacked():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolPackedSliceValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumPackedSliceValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32PackedSliceValue\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32PackedSliceValue\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32PackedSliceValue\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64PackedSliceValue\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64PackedSliceValue\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64PackedSliceValue\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32PackedSliceValue\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32PackedSliceValue\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatPackedSliceValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64PackedSliceValue\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64PackedSliceValue\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoublePackedSliceValue\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tdefault:\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32Value\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32Value\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32Value\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64Value\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64Value\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64Value\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32Value\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32Value\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64Value\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64Value\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoubleValue\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\treturn coderStringValueValidateUTF8\n\t\t\t}\n\t\t\treturn coderStringValue\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn coderBytesValue\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn coderMessageValue\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn coderGroupValue\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"invalid field: no encoder for %v %v %v\", fd.FullName(), fd.Cardinality(), fd.Kind()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\n// When using unsafe pointers, we can just treat enum values as int32s.\n\nvar (\n\tcoderEnumNoZero      = coderInt32NoZero\n\tcoderEnum            = coderInt32\n\tcoderEnumPtr         = coderInt32Ptr\n\tcoderEnumSlice       = coderInt32Slice\n\tcoderEnumPackedSlice = coderInt32PackedSlice\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// unwrapper unwraps the value to the underlying value.\n// This is implemented by List and Map.\ntype unwrapper interface {\n\tprotoUnwrap() any\n}\n\n// A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types.\ntype Converter interface {\n\t// PBValueOf converts a reflect.Value to a protoreflect.Value.\n\tPBValueOf(reflect.Value) protoreflect.Value\n\n\t// GoValueOf converts a protoreflect.Value to a reflect.Value.\n\tGoValueOf(protoreflect.Value) reflect.Value\n\n\t// IsValidPB returns whether a protoreflect.Value is compatible with this type.\n\tIsValidPB(protoreflect.Value) bool\n\n\t// IsValidGo returns whether a reflect.Value is compatible with this type.\n\tIsValidGo(reflect.Value) bool\n\n\t// New returns a new field value.\n\t// For scalars, it returns the default value of the field.\n\t// For composite types, it returns a new mutable value.\n\tNew() protoreflect.Value\n\n\t// Zero returns a new field value.\n\t// For scalars, it returns the default value of the field.\n\t// For composite types, it returns an immutable, empty value.\n\tZero() protoreflect.Value\n}\n\n// NewConverter matches a Go type with a protobuf field and returns a Converter\n// that converts between the two. Enums must be a named int32 kind that\n// implements protoreflect.Enum, and messages must be pointer to a named\n// struct type that implements protoreflect.ProtoMessage.\n//\n// This matcher deliberately supports a wider range of Go types than what\n// protoc-gen-go historically generated to be able to automatically wrap some\n// v1 messages generated by other forks of protoc-gen-go.\nfunc NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn newListConverter(t, fd)\n\tcase fd.IsMap():\n\t\treturn newMapConverter(t, fd)\n\tdefault:\n\t\treturn newSingularConverter(t, fd)\n\t}\n}\n\nvar (\n\tboolType    = reflect.TypeOf(bool(false))\n\tint32Type   = reflect.TypeOf(int32(0))\n\tint64Type   = reflect.TypeOf(int64(0))\n\tuint32Type  = reflect.TypeOf(uint32(0))\n\tuint64Type  = reflect.TypeOf(uint64(0))\n\tfloat32Type = reflect.TypeOf(float32(0))\n\tfloat64Type = reflect.TypeOf(float64(0))\n\tstringType  = reflect.TypeOf(string(\"\"))\n\tbytesType   = reflect.TypeOf([]byte(nil))\n\tbyteType    = reflect.TypeOf(byte(0))\n)\n\nvar (\n\tboolZero    = protoreflect.ValueOfBool(false)\n\tint32Zero   = protoreflect.ValueOfInt32(0)\n\tint64Zero   = protoreflect.ValueOfInt64(0)\n\tuint32Zero  = protoreflect.ValueOfUint32(0)\n\tuint64Zero  = protoreflect.ValueOfUint64(0)\n\tfloat32Zero = protoreflect.ValueOfFloat32(0)\n\tfloat64Zero = protoreflect.ValueOfFloat64(0)\n\tstringZero  = protoreflect.ValueOfString(\"\")\n\tbytesZero   = protoreflect.ValueOfBytes(nil)\n)\n\nfunc newSingularConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tdefVal := func(fd protoreflect.FieldDescriptor, zero protoreflect.Value) protoreflect.Value {\n\t\tif fd.Cardinality() == protoreflect.Repeated {\n\t\t\t// Default isn't defined for repeated fields.\n\t\t\treturn zero\n\t\t}\n\t\treturn fd.Default()\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif t.Kind() == reflect.Bool {\n\t\t\treturn &boolConverter{t, defVal(fd, boolZero)}\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif t.Kind() == reflect.Int32 {\n\t\t\treturn &int32Converter{t, defVal(fd, int32Zero)}\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif t.Kind() == reflect.Int64 {\n\t\t\treturn &int64Converter{t, defVal(fd, int64Zero)}\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif t.Kind() == reflect.Uint32 {\n\t\t\treturn &uint32Converter{t, defVal(fd, uint32Zero)}\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif t.Kind() == reflect.Uint64 {\n\t\t\treturn &uint64Converter{t, defVal(fd, uint64Zero)}\n\t\t}\n\tcase protoreflect.FloatKind:\n\t\tif t.Kind() == reflect.Float32 {\n\t\t\treturn &float32Converter{t, defVal(fd, float32Zero)}\n\t\t}\n\tcase protoreflect.DoubleKind:\n\t\tif t.Kind() == reflect.Float64 {\n\t\t\treturn &float64Converter{t, defVal(fd, float64Zero)}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\tif t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {\n\t\t\treturn &stringConverter{t, defVal(fd, stringZero)}\n\t\t}\n\tcase protoreflect.BytesKind:\n\t\tif t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {\n\t\t\treturn &bytesConverter{t, defVal(fd, bytesZero)}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\t// Handle enums, which must be a named int32 type.\n\t\tif t.Kind() == reflect.Int32 {\n\t\t\treturn newEnumConverter(t, fd)\n\t\t}\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn newMessageConverter(t)\n\t}\n\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n}\n\ntype boolConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *boolConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfBool(v.Bool())\n}\nfunc (c *boolConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Bool()).Convert(c.goType)\n}\nfunc (c *boolConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(bool)\n\treturn ok\n}\nfunc (c *boolConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *boolConverter) New() protoreflect.Value  { return c.def }\nfunc (c *boolConverter) Zero() protoreflect.Value { return c.def }\n\ntype int32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *int32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfInt32(int32(v.Int()))\n}\nfunc (c *int32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(int32(v.Int())).Convert(c.goType)\n}\nfunc (c *int32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(int32)\n\treturn ok\n}\nfunc (c *int32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *int32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *int32Converter) Zero() protoreflect.Value { return c.def }\n\ntype int64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *int64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfInt64(int64(v.Int()))\n}\nfunc (c *int64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(int64(v.Int())).Convert(c.goType)\n}\nfunc (c *int64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(int64)\n\treturn ok\n}\nfunc (c *int64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *int64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *int64Converter) Zero() protoreflect.Value { return c.def }\n\ntype uint32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *uint32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfUint32(uint32(v.Uint()))\n}\nfunc (c *uint32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(uint32(v.Uint())).Convert(c.goType)\n}\nfunc (c *uint32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(uint32)\n\treturn ok\n}\nfunc (c *uint32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *uint32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *uint32Converter) Zero() protoreflect.Value { return c.def }\n\ntype uint64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *uint64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfUint64(uint64(v.Uint()))\n}\nfunc (c *uint64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(uint64(v.Uint())).Convert(c.goType)\n}\nfunc (c *uint64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(uint64)\n\treturn ok\n}\nfunc (c *uint64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *uint64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *uint64Converter) Zero() protoreflect.Value { return c.def }\n\ntype float32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *float32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfFloat32(float32(v.Float()))\n}\nfunc (c *float32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(float32(v.Float())).Convert(c.goType)\n}\nfunc (c *float32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(float32)\n\treturn ok\n}\nfunc (c *float32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *float32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *float32Converter) Zero() protoreflect.Value { return c.def }\n\ntype float64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *float64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfFloat64(float64(v.Float()))\n}\nfunc (c *float64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(float64(v.Float())).Convert(c.goType)\n}\nfunc (c *float64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(float64)\n\treturn ok\n}\nfunc (c *float64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *float64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *float64Converter) Zero() protoreflect.Value { return c.def }\n\ntype stringConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *stringConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfString(v.Convert(stringType).String())\n}\nfunc (c *stringConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\t// protoreflect.Value.String never panics, so we go through an interface\n\t// conversion here to check the type.\n\ts := v.Interface().(string)\n\tif c.goType.Kind() == reflect.Slice && s == \"\" {\n\t\treturn reflect.Zero(c.goType) // ensure empty string is []byte(nil)\n\t}\n\treturn reflect.ValueOf(s).Convert(c.goType)\n}\nfunc (c *stringConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(string)\n\treturn ok\n}\nfunc (c *stringConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *stringConverter) New() protoreflect.Value  { return c.def }\nfunc (c *stringConverter) Zero() protoreflect.Value { return c.def }\n\ntype bytesConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *bytesConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tif c.goType.Kind() == reflect.String && v.Len() == 0 {\n\t\treturn protoreflect.ValueOfBytes(nil) // ensure empty string is []byte(nil)\n\t}\n\treturn protoreflect.ValueOfBytes(v.Convert(bytesType).Bytes())\n}\nfunc (c *bytesConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Bytes()).Convert(c.goType)\n}\nfunc (c *bytesConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().([]byte)\n\treturn ok\n}\nfunc (c *bytesConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *bytesConverter) New() protoreflect.Value  { return c.def }\nfunc (c *bytesConverter) Zero() protoreflect.Value { return c.def }\n\ntype enumConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc newEnumConverter(goType reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tvar def protoreflect.Value\n\tif fd.Cardinality() == protoreflect.Repeated {\n\t\tdef = protoreflect.ValueOfEnum(fd.Enum().Values().Get(0).Number())\n\t} else {\n\t\tdef = fd.Default()\n\t}\n\treturn &enumConverter{goType, def}\n}\n\nfunc (c *enumConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v.Int()))\n}\n\nfunc (c *enumConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Enum()).Convert(c.goType)\n}\n\nfunc (c *enumConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(protoreflect.EnumNumber)\n\treturn ok\n}\n\nfunc (c *enumConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *enumConverter) New() protoreflect.Value {\n\treturn c.def\n}\n\nfunc (c *enumConverter) Zero() protoreflect.Value {\n\treturn c.def\n}\n\ntype messageConverter struct {\n\tgoType reflect.Type\n}\n\nfunc newMessageConverter(goType reflect.Type) Converter {\n\treturn &messageConverter{goType}\n}\n\nfunc (c *messageConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tif c.isNonPointer() {\n\t\tif v.CanAddr() {\n\t\t\tv = v.Addr() // T => *T\n\t\t} else {\n\t\t\tv = reflect.Zero(reflect.PtrTo(v.Type()))\n\t\t}\n\t}\n\tif m, ok := v.Interface().(protoreflect.ProtoMessage); ok {\n\t\treturn protoreflect.ValueOfMessage(m.ProtoReflect())\n\t}\n\treturn protoreflect.ValueOfMessage(legacyWrapMessage(v))\n}\n\nfunc (c *messageConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\tm := v.Message()\n\tvar rv reflect.Value\n\tif u, ok := m.(unwrapper); ok {\n\t\trv = reflect.ValueOf(u.protoUnwrap())\n\t} else {\n\t\trv = reflect.ValueOf(m.Interface())\n\t}\n\tif c.isNonPointer() {\n\t\tif rv.Type() != reflect.PtrTo(c.goType) {\n\t\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", rv.Type(), reflect.PtrTo(c.goType)))\n\t\t}\n\t\tif !rv.IsNil() {\n\t\t\trv = rv.Elem() // *T => T\n\t\t} else {\n\t\t\trv = reflect.Zero(rv.Type().Elem())\n\t\t}\n\t}\n\tif rv.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", rv.Type(), c.goType))\n\t}\n\treturn rv\n}\n\nfunc (c *messageConverter) IsValidPB(v protoreflect.Value) bool {\n\tm := v.Message()\n\tvar rv reflect.Value\n\tif u, ok := m.(unwrapper); ok {\n\t\trv = reflect.ValueOf(u.protoUnwrap())\n\t} else {\n\t\trv = reflect.ValueOf(m.Interface())\n\t}\n\tif c.isNonPointer() {\n\t\treturn rv.Type() == reflect.PtrTo(c.goType)\n\t}\n\treturn rv.Type() == c.goType\n}\n\nfunc (c *messageConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *messageConverter) New() protoreflect.Value {\n\tif c.isNonPointer() {\n\t\treturn c.PBValueOf(reflect.New(c.goType).Elem())\n\t}\n\treturn c.PBValueOf(reflect.New(c.goType.Elem()))\n}\n\nfunc (c *messageConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\n// isNonPointer reports whether the type is a non-pointer type.\n// This never occurs for generated message types.\nfunc (c *messageConverter) isNonPointer() bool {\n\treturn c.goType.Kind() != reflect.Ptr\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert_list.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc newListConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tswitch {\n\tcase t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice:\n\t\treturn &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)}\n\tcase t.Kind() == reflect.Slice:\n\t\treturn &listConverter{t, newSingularConverter(t.Elem(), fd)}\n\t}\n\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n}\n\ntype listConverter struct {\n\tgoType reflect.Type // []T\n\tc      Converter\n}\n\nfunc (c *listConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tpv := reflect.New(c.goType)\n\tpv.Elem().Set(v)\n\treturn protoreflect.ValueOfList(&listReflect{pv, c.c})\n}\n\nfunc (c *listConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\trv := v.List().(*listReflect).v\n\tif rv.IsNil() {\n\t\treturn reflect.Zero(c.goType)\n\t}\n\treturn rv.Elem()\n}\n\nfunc (c *listConverter) IsValidPB(v protoreflect.Value) bool {\n\tlist, ok := v.Interface().(*listReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn list.v.Type().Elem() == c.goType\n}\n\nfunc (c *listConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *listConverter) New() protoreflect.Value {\n\treturn protoreflect.ValueOfList(&listReflect{reflect.New(c.goType), c.c})\n}\n\nfunc (c *listConverter) Zero() protoreflect.Value {\n\treturn protoreflect.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c})\n}\n\ntype listPtrConverter struct {\n\tgoType reflect.Type // *[]T\n\tc      Converter\n}\n\nfunc (c *listPtrConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfList(&listReflect{v, c.c})\n}\n\nfunc (c *listPtrConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn v.List().(*listReflect).v\n}\n\nfunc (c *listPtrConverter) IsValidPB(v protoreflect.Value) bool {\n\tlist, ok := v.Interface().(*listReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn list.v.Type() == c.goType\n}\n\nfunc (c *listPtrConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *listPtrConverter) New() protoreflect.Value {\n\treturn c.PBValueOf(reflect.New(c.goType.Elem()))\n}\n\nfunc (c *listPtrConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\ntype listReflect struct {\n\tv    reflect.Value // *[]T\n\tconv Converter\n}\n\nfunc (ls *listReflect) Len() int {\n\tif ls.v.IsNil() {\n\t\treturn 0\n\t}\n\treturn ls.v.Elem().Len()\n}\nfunc (ls *listReflect) Get(i int) protoreflect.Value {\n\treturn ls.conv.PBValueOf(ls.v.Elem().Index(i))\n}\nfunc (ls *listReflect) Set(i int, v protoreflect.Value) {\n\tls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v))\n}\nfunc (ls *listReflect) Append(v protoreflect.Value) {\n\tls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v)))\n}\nfunc (ls *listReflect) AppendMutable() protoreflect.Value {\n\tif _, ok := ls.conv.(*messageConverter); !ok {\n\t\tpanic(\"invalid AppendMutable on list with non-message type\")\n\t}\n\tv := ls.NewElement()\n\tls.Append(v)\n\treturn v\n}\nfunc (ls *listReflect) Truncate(i int) {\n\tls.v.Elem().Set(ls.v.Elem().Slice(0, i))\n}\nfunc (ls *listReflect) NewElement() protoreflect.Value {\n\treturn ls.conv.New()\n}\nfunc (ls *listReflect) IsValid() bool {\n\treturn !ls.v.IsNil()\n}\nfunc (ls *listReflect) protoUnwrap() any {\n\treturn ls.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert_map.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype mapConverter struct {\n\tgoType           reflect.Type // map[K]V\n\tkeyConv, valConv Converter\n}\n\nfunc newMapConverter(t reflect.Type, fd protoreflect.FieldDescriptor) *mapConverter {\n\tif t.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n\t}\n\treturn &mapConverter{\n\t\tgoType:  t,\n\t\tkeyConv: newSingularConverter(t.Key(), fd.MapKey()),\n\t\tvalConv: newSingularConverter(t.Elem(), fd.MapValue()),\n\t}\n}\n\nfunc (c *mapConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv})\n}\n\nfunc (c *mapConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn v.Map().(*mapReflect).v\n}\n\nfunc (c *mapConverter) IsValidPB(v protoreflect.Value) bool {\n\tmapv, ok := v.Interface().(*mapReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn mapv.v.Type() == c.goType\n}\n\nfunc (c *mapConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *mapConverter) New() protoreflect.Value {\n\treturn c.PBValueOf(reflect.MakeMap(c.goType))\n}\n\nfunc (c *mapConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\ntype mapReflect struct {\n\tv       reflect.Value // map[K]V\n\tkeyConv Converter\n\tvalConv Converter\n}\n\nfunc (ms *mapReflect) Len() int {\n\treturn ms.v.Len()\n}\nfunc (ms *mapReflect) Has(k protoreflect.MapKey) bool {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.v.MapIndex(rk)\n\treturn rv.IsValid()\n}\nfunc (ms *mapReflect) Get(k protoreflect.MapKey) protoreflect.Value {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.v.MapIndex(rk)\n\tif !rv.IsValid() {\n\t\treturn protoreflect.Value{}\n\t}\n\treturn ms.valConv.PBValueOf(rv)\n}\nfunc (ms *mapReflect) Set(k protoreflect.MapKey, v protoreflect.Value) {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.valConv.GoValueOf(v)\n\tms.v.SetMapIndex(rk, rv)\n}\nfunc (ms *mapReflect) Clear(k protoreflect.MapKey) {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\tms.v.SetMapIndex(rk, reflect.Value{})\n}\nfunc (ms *mapReflect) Mutable(k protoreflect.MapKey) protoreflect.Value {\n\tif _, ok := ms.valConv.(*messageConverter); !ok {\n\t\tpanic(\"invalid Mutable on map with non-message value type\")\n\t}\n\tv := ms.Get(k)\n\tif !v.IsValid() {\n\t\tv = ms.NewValue()\n\t\tms.Set(k, v)\n\t}\n\treturn v\n}\nfunc (ms *mapReflect) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) {\n\titer := ms.v.MapRange()\n\tfor iter.Next() {\n\t\tk := ms.keyConv.PBValueOf(iter.Key()).MapKey()\n\t\tv := ms.valConv.PBValueOf(iter.Value())\n\t\tif !f(k, v) {\n\t\t\treturn\n\t\t}\n\t}\n}\nfunc (ms *mapReflect) NewValue() protoreflect.Value {\n\treturn ms.valConv.New()\n}\nfunc (ms *mapReflect) IsValid() bool {\n\treturn !ms.v.IsNil()\n}\nfunc (ms *mapReflect) protoUnwrap() any {\n\treturn ms.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/decode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"math/bits\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nvar errDecode = errors.New(\"cannot parse invalid wire-format data\")\nvar errRecursionDepth = errors.New(\"exceeded maximum recursion depth\")\n\ntype unmarshalOptions struct {\n\tflags    protoiface.UnmarshalInputFlags\n\tresolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\tdepth int\n}\n\nfunc (o unmarshalOptions) Options() proto.UnmarshalOptions {\n\treturn proto.UnmarshalOptions{\n\t\tMerge:          true,\n\t\tAllowPartial:   true,\n\t\tDiscardUnknown: o.DiscardUnknown(),\n\t\tResolver:       o.resolver,\n\n\t\tNoLazyDecoding: o.NoLazyDecoding(),\n\t}\n}\n\nfunc (o unmarshalOptions) DiscardUnknown() bool {\n\treturn o.flags&protoiface.UnmarshalDiscardUnknown != 0\n}\n\nfunc (o unmarshalOptions) AliasBuffer() bool { return o.flags&protoiface.UnmarshalAliasBuffer != 0 }\nfunc (o unmarshalOptions) Validated() bool   { return o.flags&protoiface.UnmarshalValidated != 0 }\nfunc (o unmarshalOptions) NoLazyDecoding() bool {\n\treturn o.flags&protoiface.UnmarshalNoLazyDecoding != 0\n}\n\nfunc (o unmarshalOptions) CanBeLazy() bool {\n\tif o.resolver != protoregistry.GlobalTypes {\n\t\treturn false\n\t}\n\t// We ignore the UnmarshalInvalidateSizeCache even though it's not in the default set\n\treturn (o.flags & ^(protoiface.UnmarshalAliasBuffer | protoiface.UnmarshalValidated | protoiface.UnmarshalCheckRequired)) == 0\n}\n\nvar lazyUnmarshalOptions = unmarshalOptions{\n\tresolver: protoregistry.GlobalTypes,\n\n\tflags: protoiface.UnmarshalAliasBuffer | protoiface.UnmarshalValidated,\n\n\tdepth: protowire.DefaultRecursionLimit,\n}\n\ntype unmarshalOutput struct {\n\tn           int // number of bytes consumed\n\tinitialized bool\n}\n\n// unmarshal is protoreflect.Methods.Unmarshal.\nfunc (mi *MessageInfo) unmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tout, err := mi.unmarshalPointer(in.Buf, p, 0, unmarshalOptions{\n\t\tflags:    in.Flags,\n\t\tresolver: in.Resolver,\n\t\tdepth:    in.Depth,\n\t})\n\tvar flags protoiface.UnmarshalOutputFlags\n\tif out.initialized {\n\t\tflags |= protoiface.UnmarshalInitialized\n\t}\n\treturn protoiface.UnmarshalOutput{\n\t\tFlags: flags,\n\t}, err\n}\n\n// errUnknown is returned during unmarshaling to indicate a parse error that\n// should result in a field being placed in the unknown fields section (for example,\n// when the wire type doesn't match) as opposed to the entire unmarshal operation\n// failing (for example, when a field extends past the available input).\n//\n// This is a sentinel error which should never be visible to the user.\nvar errUnknown = errors.New(\"unknown\")\n\nfunc (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tmi.init()\n\topts.depth--\n\tif opts.depth < 0 {\n\t\treturn out, errRecursionDepth\n\t}\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\treturn unmarshalMessageSet(mi, b, p, opts)\n\t}\n\n\tlazyDecoding := LazyEnabled() // default\n\tif opts.NoLazyDecoding() {\n\t\tlazyDecoding = false // explicitly disabled\n\t}\n\tif mi.lazyOffset.IsValid() && lazyDecoding {\n\t\treturn mi.unmarshalPointerLazy(b, p, groupTag, opts)\n\t}\n\treturn mi.unmarshalPointerEager(b, p, groupTag, opts)\n}\n\n// unmarshalPointerEager is the message unmarshalling function for all messages that are not lazy.\n// The corresponding function for Lazy is in google_lazy.go.\nfunc (mi *MessageInfo) unmarshalPointerEager(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\n\tinitialized := true\n\tvar requiredMask uint64\n\tvar exts *map[int32]ExtensionField\n\n\tvar presence presence\n\tif mi.presenceOffset.IsValid() {\n\t\tpresence = p.Apply(mi.presenceOffset).PresenceInfo()\n\t}\n\n\tstart := len(b)\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tvar tag uint64\n\t\tif b[0] < 0x80 {\n\t\t\ttag = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\tvar num protowire.Number\n\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\treturn out, errDecode\n\t\t} else {\n\t\t\tnum = protowire.Number(n)\n\t\t}\n\t\twtyp := protowire.Type(tag & 7)\n\n\t\tif wtyp == protowire.EndGroupType {\n\t\t\tif num != groupTag {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tgroupTag = 0\n\t\t\tbreak\n\t\t}\n\n\t\tvar f *coderFieldInfo\n\t\tif int(num) < len(mi.denseCoderFields) {\n\t\t\tf = mi.denseCoderFields[num]\n\t\t} else {\n\t\t\tf = mi.coderFields[num]\n\t\t}\n\t\tvar n int\n\t\terr := errUnknown\n\t\tswitch {\n\t\tcase f != nil:\n\t\t\tif f.funcs.unmarshal == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = f.funcs.unmarshal(b, p.Apply(f.offset), wtyp, f, opts)\n\t\t\tn = o.n\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\trequiredMask |= f.validation.requiredBit\n\t\t\tif f.funcs.isInit != nil && !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\n\t\t\tif f.presenceIndex != noPresence {\n\t\t\t\tpresence.SetPresentUnatomic(f.presenceIndex, mi.presenceSize)\n\t\t\t}\n\n\t\tdefault:\n\t\t\t// Possible extension.\n\t\t\tif exts == nil && mi.extensionOffset.IsValid() {\n\t\t\t\texts = p.Apply(mi.extensionOffset).Extensions()\n\t\t\t\tif *exts == nil {\n\t\t\t\t\t*exts = make(map[int32]ExtensionField)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif exts == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = mi.unmarshalExtension(b, num, wtyp, *exts, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tn = o.n\n\t\t\tif !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tif err != errUnknown {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tif !opts.DiscardUnknown() && mi.unknownOffset.IsValid() {\n\t\t\t\tu := mi.mutableUnknownBytes(p)\n\t\t\t\t*u = protowire.AppendTag(*u, num, wtyp)\n\t\t\t\t*u = append(*u, b[:n]...)\n\t\t\t}\n\t\t}\n\t\tb = b[n:]\n\t}\n\tif groupTag != 0 {\n\t\treturn out, errDecode\n\t}\n\tif mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) {\n\t\tinitialized = false\n\t}\n\tif initialized {\n\t\tout.initialized = true\n\t}\n\tout.n = start - len(b)\n\treturn out, nil\n}\n\nfunc (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp protowire.Type, exts map[int32]ExtensionField, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tx := exts[int32(num)]\n\txt := x.Type()\n\tif xt == nil {\n\t\tvar err error\n\t\txt, err = opts.resolver.FindExtensionByNumber(mi.Desc.FullName(), num)\n\t\tif err != nil {\n\t\t\tif err == protoregistry.NotFound {\n\t\t\t\treturn out, errUnknown\n\t\t\t}\n\t\t\treturn out, errors.New(\"%v: unable to resolve extension %v: %v\", mi.Desc.FullName(), num, err)\n\t\t}\n\t}\n\txi := getExtensionFieldInfo(xt)\n\tif xi.funcs.unmarshal == nil {\n\t\treturn out, errUnknown\n\t}\n\tif flags.LazyUnmarshalExtensions {\n\t\tif opts.CanBeLazy() && x.canLazy(xt) {\n\t\t\tout, valid := skipExtension(b, xi, num, wtyp, opts)\n\t\t\tswitch valid {\n\t\t\tcase ValidationValid:\n\t\t\t\tif out.initialized {\n\t\t\t\t\tx.appendLazyBytes(xt, xi, num, wtyp, b[:out.n])\n\t\t\t\t\texts[int32(num)] = x\n\t\t\t\t\treturn out, nil\n\t\t\t\t}\n\t\t\tcase ValidationInvalid:\n\t\t\t\treturn out, errDecode\n\t\t\tcase ValidationUnknown:\n\t\t\t}\n\t\t}\n\t}\n\tival := x.Value()\n\tif !ival.IsValid() && xi.unmarshalNeedsValue {\n\t\t// Create a new message, list, or map value to fill in.\n\t\t// For enums, create a prototype value to let the unmarshal func know the\n\t\t// concrete type.\n\t\tival = xt.New()\n\t}\n\tv, out, err := xi.funcs.unmarshal(b, ival, num, wtyp, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tif xi.funcs.isInit == nil {\n\t\tout.initialized = true\n\t}\n\tx.Set(xt, v)\n\texts[int32(num)] = x\n\treturn out, nil\n}\n\nfunc skipExtension(b []byte, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, _ ValidationStatus) {\n\tif xi.validation.mi == nil {\n\t\treturn out, ValidationUnknown\n\t}\n\txi.validation.mi.init()\n\tswitch xi.validation.typ {\n\tcase validationTypeMessage:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\n\t\tif opts.Validated() {\n\t\t\tout.initialized = true\n\t\t\tout.n = n\n\t\t\treturn out, ValidationValid\n\t\t}\n\n\t\tout, st := xi.validation.mi.validate(v, 0, opts)\n\t\tout.n = n\n\t\treturn out, st\n\tcase validationTypeGroup:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tout, st := xi.validation.mi.validate(b, num, opts)\n\t\treturn out, st\n\tdefault:\n\t\treturn out, ValidationUnknown\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/encode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"math\"\n\t\"sort\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/protolazy\"\n\t\"google.golang.org/protobuf/proto\"\n\tpiface \"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype marshalOptions struct {\n\tflags piface.MarshalInputFlags\n}\n\nfunc (o marshalOptions) Options() proto.MarshalOptions {\n\treturn proto.MarshalOptions{\n\t\tAllowPartial:  true,\n\t\tDeterministic: o.Deterministic(),\n\t\tUseCachedSize: o.UseCachedSize(),\n\t}\n}\n\nfunc (o marshalOptions) Deterministic() bool { return o.flags&piface.MarshalDeterministic != 0 }\nfunc (o marshalOptions) UseCachedSize() bool { return o.flags&piface.MarshalUseCachedSize != 0 }\n\n// size is protoreflect.Methods.Size.\nfunc (mi *MessageInfo) size(in piface.SizeInput) piface.SizeOutput {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tsize := mi.sizePointer(p, marshalOptions{\n\t\tflags: in.Flags,\n\t})\n\treturn piface.SizeOutput{Size: size}\n}\n\nfunc (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) {\n\tmi.init()\n\tif p.IsNil() {\n\t\treturn 0\n\t}\n\tif opts.UseCachedSize() && mi.sizecacheOffset.IsValid() {\n\t\t// The size cache contains the size + 1, to allow the\n\t\t// zero value to be invalid, while also allowing for a\n\t\t// 0 size to be cached.\n\t\tif size := atomic.LoadInt32(p.Apply(mi.sizecacheOffset).Int32()); size > 0 {\n\t\t\treturn int(size - 1)\n\t\t}\n\t}\n\treturn mi.sizePointerSlow(p, opts)\n}\n\nfunc (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) {\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\tsize = sizeMessageSet(mi, p, opts)\n\t\tif mi.sizecacheOffset.IsValid() {\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size+1))\n\t\t}\n\t\treturn size\n\t}\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\tsize += mi.sizeExtensions(e, opts)\n\t}\n\n\tvar lazy **protolazy.XXX_lazyUnmarshalInfo\n\tvar presence presence\n\tif mi.presenceOffset.IsValid() {\n\t\tpresence = p.Apply(mi.presenceOffset).PresenceInfo()\n\t\tif mi.lazyOffset.IsValid() {\n\t\t\tlazy = p.Apply(mi.lazyOffset).LazyInfoPtr()\n\t\t}\n\t}\n\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfptr := p.Apply(f.offset)\n\n\t\tif f.presenceIndex != noPresence {\n\t\t\tif !presence.Present(f.presenceIndex) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif f.isLazy && fptr.AtomicGetPointer().IsNil() {\n\t\t\t\tif lazyFields(opts) {\n\t\t\t\t\tsize += (*lazy).SizeField(uint32(f.num))\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tmi.lazyUnmarshal(p, f.num)\n\t\t\t\t}\n\t\t\t}\n\t\t\tsize += f.funcs.size(fptr, f, opts)\n\t\t\tcontinue\n\t\t}\n\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tsize += f.funcs.size(fptr, f, opts)\n\t}\n\tif mi.unknownOffset.IsValid() {\n\t\tif u := mi.getUnknownBytes(p); u != nil {\n\t\t\tsize += len(*u)\n\t\t}\n\t}\n\tif mi.sizecacheOffset.IsValid() {\n\t\tif size > (math.MaxInt32 - 1) {\n\t\t\t// The size is too large for the int32 sizecache field.\n\t\t\t// We will need to recompute the size when encoding;\n\t\t\t// unfortunately expensive, but better than invalid output.\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), 0)\n\t\t} else {\n\t\t\t// The size cache contains the size + 1, to allow the\n\t\t\t// zero value to be invalid, while also allowing for a\n\t\t\t// 0 size to be cached.\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size+1))\n\t\t}\n\t}\n\treturn size\n}\n\n// marshal is protoreflect.Methods.Marshal.\nfunc (mi *MessageInfo) marshal(in piface.MarshalInput) (out piface.MarshalOutput, err error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tb, err := mi.marshalAppendPointer(in.Buf, p, marshalOptions{\n\t\tflags: in.Flags,\n\t})\n\treturn piface.MarshalOutput{Buf: b}, err\n}\n\nfunc (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {\n\tmi.init()\n\tif p.IsNil() {\n\t\treturn b, nil\n\t}\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\treturn marshalMessageSet(mi, b, p, opts)\n\t}\n\tvar err error\n\t// The old marshaler encodes extensions at beginning.\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\t// TODO: Special handling for MessageSet?\n\t\tb, err = mi.appendExtensions(b, e, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\n\tvar lazy **protolazy.XXX_lazyUnmarshalInfo\n\tvar presence presence\n\tif mi.presenceOffset.IsValid() {\n\t\tpresence = p.Apply(mi.presenceOffset).PresenceInfo()\n\t\tif mi.lazyOffset.IsValid() {\n\t\t\tlazy = p.Apply(mi.lazyOffset).LazyInfoPtr()\n\t\t}\n\t}\n\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.marshal == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfptr := p.Apply(f.offset)\n\n\t\tif f.presenceIndex != noPresence {\n\t\t\tif !presence.Present(f.presenceIndex) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif f.isLazy {\n\t\t\t\t// Be careful, this field needs to be read atomically, like for a get\n\t\t\t\tif f.isPointer && fptr.AtomicGetPointer().IsNil() {\n\t\t\t\t\tif lazyFields(opts) {\n\t\t\t\t\t\tb, _ = (*lazy).AppendField(b, uint32(f.num))\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmi.lazyUnmarshal(p, f.num)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tb, err = f.funcs.marshal(b, fptr, f, opts)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t} else if f.isPointer && fptr.Elem().IsNil() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tb, err = f.funcs.marshal(b, fptr, f, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tb, err = f.funcs.marshal(b, fptr, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif mi.unknownOffset.IsValid() && !mi.isMessageSet {\n\t\tif u := mi.getUnknownBytes(p); u != nil {\n\t\t\tb = append(b, (*u)...)\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// fullyLazyExtensions returns true if we should attempt to keep extensions lazy over size and marshal.\nfunc fullyLazyExtensions(opts marshalOptions) bool {\n\t// When deterministic marshaling is requested, force an unmarshal for lazy\n\t// extensions to produce a deterministic result, instead of passing through\n\t// bytes lazily that may or may not match what Go Protobuf would produce.\n\treturn opts.flags&piface.MarshalDeterministic == 0\n}\n\n// lazyFields returns true if we should attempt to keep fields lazy over size and marshal.\nfunc lazyFields(opts marshalOptions) bool {\n\t// When deterministic marshaling is requested, force an unmarshal for lazy\n\t// fields to produce a deterministic result, instead of passing through\n\t// bytes lazily that may or may not match what Go Protobuf would produce.\n\treturn opts.flags&piface.MarshalDeterministic == 0\n}\n\nfunc (mi *MessageInfo) sizeExtensions(ext *map[int32]ExtensionField, opts marshalOptions) (n int) {\n\tif ext == nil {\n\t\treturn 0\n\t}\n\tfor _, x := range *ext {\n\t\txi := getExtensionFieldInfo(x.Type())\n\t\tif xi.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif fullyLazyExtensions(opts) {\n\t\t\t// Don't expand the extension, instead use the buffer to calculate size\n\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t// We got hold of the buffer, so it's still lazy.\n\t\t\t\tn += len(lb)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tn += xi.funcs.size(x.Value(), xi.tagsize, opts)\n\t}\n\treturn n\n}\n\nfunc (mi *MessageInfo) appendExtensions(b []byte, ext *map[int32]ExtensionField, opts marshalOptions) ([]byte, error) {\n\tif ext == nil {\n\t\treturn b, nil\n\t}\n\n\tswitch len(*ext) {\n\tcase 0:\n\t\treturn b, nil\n\tcase 1:\n\t\t// Fast-path for one extension: Don't bother sorting the keys.\n\t\tvar err error\n\t\tfor _, x := range *ext {\n\t\t\txi := getExtensionFieldInfo(x.Type())\n\t\t\tif fullyLazyExtensions(opts) {\n\t\t\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t\tb = append(b, lb...)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tb, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts)\n\t\t}\n\t\treturn b, err\n\tdefault:\n\t\t// Sort the keys to provide a deterministic encoding.\n\t\t// Not sure this is required, but the old code does it.\n\t\tkeys := make([]int, 0, len(*ext))\n\t\tfor k := range *ext {\n\t\t\tkeys = append(keys, int(k))\n\t\t}\n\t\tsort.Ints(keys)\n\t\tvar err error\n\t\tfor _, k := range keys {\n\t\t\tx := (*ext)[int32(k)]\n\t\t\txi := getExtensionFieldInfo(x.Type())\n\t\t\tif fullyLazyExtensions(opts) {\n\t\t\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t\tb = append(b, lb...)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tb, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\treturn b, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/enum.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype EnumInfo struct {\n\tGoReflectType reflect.Type // int32 kind\n\tDesc          protoreflect.EnumDescriptor\n}\n\nfunc (t *EnumInfo) New(n protoreflect.EnumNumber) protoreflect.Enum {\n\treturn reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(protoreflect.Enum)\n}\nfunc (t *EnumInfo) Descriptor() protoreflect.EnumDescriptor { return t.Desc }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/equal.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"bytes\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc equal(in protoiface.EqualInput) protoiface.EqualOutput {\n\treturn protoiface.EqualOutput{Equal: equalMessage(in.MessageA, in.MessageB)}\n}\n\n// equalMessage is a fast-path variant of protoreflect.equalMessage.\n// It takes advantage of the internal messageState type to avoid\n// unnecessary allocations, type assertions.\nfunc equalMessage(mx, my protoreflect.Message) bool {\n\tif mx == nil || my == nil {\n\t\treturn mx == my\n\t}\n\tif mx.Descriptor() != my.Descriptor() {\n\t\treturn false\n\t}\n\n\tmsx, ok := mx.(*messageState)\n\tif !ok {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\tmsy, ok := my.(*messageState)\n\tif !ok {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\n\tmi := msx.messageInfo()\n\tmiy := msy.messageInfo()\n\tif mi != miy {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\tmi.init()\n\t// Compares regular fields\n\t// Modified Message.Range code that compares two messages of the same type\n\t// while going over the fields.\n\tfor _, ri := range mi.rangeInfos {\n\t\tvar fd protoreflect.FieldDescriptor\n\t\tvar vx, vy protoreflect.Value\n\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\thx := ri.has(msx.pointer())\n\t\t\thy := ri.has(msy.pointer())\n\t\t\tif hx != hy {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !hx {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfd = ri.fieldDesc\n\t\t\tvx = ri.get(msx.pointer())\n\t\t\tvy = ri.get(msy.pointer())\n\t\tcase *oneofInfo:\n\t\t\tfnx := ri.which(msx.pointer())\n\t\t\tfny := ri.which(msy.pointer())\n\t\t\tif fnx != fny {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif fnx <= 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfi := mi.fields[fnx]\n\t\t\tfd = fi.fieldDesc\n\t\t\tvx = fi.get(msx.pointer())\n\t\t\tvy = fi.get(msy.pointer())\n\t\t}\n\n\t\tif !equalValue(fd, vx, vy) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Compare extensions.\n\t// This is more complicated because mx or my could have empty/nil extension maps,\n\t// however some populated extension map values are equal to nil extension maps.\n\temx := mi.extensionMap(msx.pointer())\n\temy := mi.extensionMap(msy.pointer())\n\tif emx != nil {\n\t\tfor k, x := range *emx {\n\t\t\txd := x.Type().TypeDescriptor()\n\t\t\txv := x.Value()\n\t\t\tvar y ExtensionField\n\t\t\tok := false\n\t\t\tif emy != nil {\n\t\t\t\ty, ok = (*emy)[k]\n\t\t\t}\n\t\t\t// We need to treat empty lists as equal to nil values\n\t\t\tif emy == nil || !ok {\n\t\t\t\tif xd.IsList() && xv.List().Len() == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif !equalValue(xd, xv, y.Value()) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\tif emy != nil {\n\t\t// emy may have extensions emx does not have, need to check them as well\n\t\tfor k, y := range *emy {\n\t\t\tif emx != nil {\n\t\t\t\t// emx has the field, so we already checked it\n\t\t\t\tif _, ok := (*emx)[k]; ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Empty lists are equal to nil\n\t\t\tif y.Type().TypeDescriptor().IsList() && y.Value().List().Len() == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Cant be equal if the extension is populated\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn equalUnknown(mx.GetUnknown(), my.GetUnknown())\n}\n\nfunc equalValue(fd protoreflect.FieldDescriptor, vx, vy protoreflect.Value) bool {\n\t// slow path\n\tif fd.Kind() != protoreflect.MessageKind {\n\t\treturn vx.Equal(vy)\n\t}\n\n\t// fast path special cases\n\tif fd.IsMap() {\n\t\tif fd.MapValue().Kind() == protoreflect.MessageKind {\n\t\t\treturn equalMessageMap(vx.Map(), vy.Map())\n\t\t}\n\t\treturn vx.Equal(vy)\n\t}\n\n\tif fd.IsList() {\n\t\treturn equalMessageList(vx.List(), vy.List())\n\t}\n\n\treturn equalMessage(vx.Message(), vy.Message())\n}\n\n// Mostly copied from protoreflect.equalMap.\n// This variant only works for messages as map types.\n// All other map types should be handled via Value.Equal.\nfunc equalMessageMap(mx, my protoreflect.Map) bool {\n\tif mx.Len() != my.Len() {\n\t\treturn false\n\t}\n\tequal := true\n\tmx.Range(func(k protoreflect.MapKey, vx protoreflect.Value) bool {\n\t\tif !my.Has(k) {\n\t\t\tequal = false\n\t\t\treturn false\n\t\t}\n\t\tvy := my.Get(k)\n\t\tequal = equalMessage(vx.Message(), vy.Message())\n\t\treturn equal\n\t})\n\treturn equal\n}\n\n// Mostly copied from protoreflect.equalList.\n// The only change is the usage of equalImpl instead of protoreflect.equalValue.\nfunc equalMessageList(lx, ly protoreflect.List) bool {\n\tif lx.Len() != ly.Len() {\n\t\treturn false\n\t}\n\tfor i := 0; i < lx.Len(); i++ {\n\t\t// We only operate on messages here since equalImpl will not call us in any other case.\n\t\tif !equalMessage(lx.Get(i).Message(), ly.Get(i).Message()) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// equalUnknown compares unknown fields by direct comparison on the raw bytes\n// of each individual field number.\n// Copied from protoreflect.equalUnknown.\nfunc equalUnknown(x, y protoreflect.RawFields) bool {\n\tif len(x) != len(y) {\n\t\treturn false\n\t}\n\tif bytes.Equal([]byte(x), []byte(y)) {\n\t\treturn true\n\t}\n\n\tmx := make(map[protoreflect.FieldNumber]protoreflect.RawFields)\n\tmy := make(map[protoreflect.FieldNumber]protoreflect.RawFields)\n\tfor len(x) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(x)\n\t\tmx[fnum] = append(mx[fnum], x[:n]...)\n\t\tx = x[n:]\n\t}\n\tfor len(y) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(y)\n\t\tmy[fnum] = append(my[fnum], y[:n]...)\n\t\ty = y[n:]\n\t}\n\tif len(mx) != len(my) {\n\t\treturn false\n\t}\n\n\tfor k, v1 := range mx {\n\t\tif v2, ok := my[k]; !ok || !bytes.Equal([]byte(v1), []byte(v2)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// ExtensionInfo implements ExtensionType.\n//\n// This type contains a number of exported fields for legacy compatibility.\n// The only non-deprecated use of this type is through the methods of the\n// ExtensionType interface.\ntype ExtensionInfo struct {\n\t// An ExtensionInfo may exist in several stages of initialization.\n\t//\n\t// extensionInfoUninitialized: Some or all of the legacy exported\n\t// fields may be set, but none of the unexported fields have been\n\t// initialized. This is the starting state for an ExtensionInfo\n\t// in legacy generated code.\n\t//\n\t// extensionInfoDescInit: The desc field is set, but other unexported fields\n\t// may not be initialized. Legacy exported fields may or may not be set.\n\t// This is the starting state for an ExtensionInfo in newly generated code.\n\t//\n\t// extensionInfoFullInit: The ExtensionInfo is fully initialized.\n\t// This state is only entered after lazy initialization is complete.\n\tinit uint32\n\tmu   sync.Mutex\n\n\tgoType reflect.Type\n\tdesc   extensionTypeDescriptor\n\tconv   Converter\n\tinfo   *extensionFieldInfo // for fast-path method implementations\n\n\t// ExtendedType is a typed nil-pointer to the parent message type that\n\t// is being extended. It is possible for this to be unpopulated in v2\n\t// since the message may no longer implement the MessageV1 interface.\n\t//\n\t// Deprecated: Use the ExtendedType method instead.\n\tExtendedType protoiface.MessageV1\n\n\t// ExtensionType is the zero value of the extension type.\n\t//\n\t// For historical reasons, reflect.TypeOf(ExtensionType) and the\n\t// type returned by InterfaceOf may not be identical.\n\t//\n\t// Deprecated: Use InterfaceOf(xt.Zero()) instead.\n\tExtensionType any\n\n\t// Field is the field number of the extension.\n\t//\n\t// Deprecated: Use the Descriptor().Number method instead.\n\tField int32\n\n\t// Name is the fully qualified name of extension.\n\t//\n\t// Deprecated: Use the Descriptor().FullName method instead.\n\tName string\n\n\t// Tag is the protobuf struct tag used in the v1 API.\n\t//\n\t// Deprecated: Do not use.\n\tTag string\n\n\t// Filename is the proto filename in which the extension is defined.\n\t//\n\t// Deprecated: Use Descriptor().ParentFile().Path() instead.\n\tFilename string\n}\n\n// Stages of initialization: See the ExtensionInfo.init field.\nconst (\n\textensionInfoUninitialized = 0\n\textensionInfoDescInit      = 1\n\textensionInfoFullInit      = 2\n)\n\nfunc InitExtensionInfo(xi *ExtensionInfo, xd protoreflect.ExtensionDescriptor, goType reflect.Type) {\n\txi.goType = goType\n\txi.desc = extensionTypeDescriptor{xd, xi}\n\txi.init = extensionInfoDescInit\n}\n\nfunc (xi *ExtensionInfo) New() protoreflect.Value {\n\treturn xi.lazyInit().New()\n}\nfunc (xi *ExtensionInfo) Zero() protoreflect.Value {\n\treturn xi.lazyInit().Zero()\n}\nfunc (xi *ExtensionInfo) ValueOf(v any) protoreflect.Value {\n\treturn xi.lazyInit().PBValueOf(reflect.ValueOf(v))\n}\nfunc (xi *ExtensionInfo) InterfaceOf(v protoreflect.Value) any {\n\treturn xi.lazyInit().GoValueOf(v).Interface()\n}\nfunc (xi *ExtensionInfo) IsValidValue(v protoreflect.Value) bool {\n\treturn xi.lazyInit().IsValidPB(v)\n}\nfunc (xi *ExtensionInfo) IsValidInterface(v any) bool {\n\treturn xi.lazyInit().IsValidGo(reflect.ValueOf(v))\n}\nfunc (xi *ExtensionInfo) TypeDescriptor() protoreflect.ExtensionTypeDescriptor {\n\tif atomic.LoadUint32(&xi.init) < extensionInfoDescInit {\n\t\txi.lazyInitSlow()\n\t}\n\treturn &xi.desc\n}\n\nfunc (xi *ExtensionInfo) lazyInit() Converter {\n\tif atomic.LoadUint32(&xi.init) < extensionInfoFullInit {\n\t\txi.lazyInitSlow()\n\t}\n\treturn xi.conv\n}\n\nfunc (xi *ExtensionInfo) lazyInitSlow() {\n\txi.mu.Lock()\n\tdefer xi.mu.Unlock()\n\n\tif xi.init == extensionInfoFullInit {\n\t\treturn\n\t}\n\tdefer atomic.StoreUint32(&xi.init, extensionInfoFullInit)\n\n\tif xi.desc.ExtensionDescriptor == nil {\n\t\txi.initFromLegacy()\n\t}\n\tif !xi.desc.ExtensionDescriptor.IsPlaceholder() {\n\t\tif xi.ExtensionType == nil {\n\t\t\txi.initToLegacy()\n\t\t}\n\t\txi.conv = NewConverter(xi.goType, xi.desc.ExtensionDescriptor)\n\t\txi.info = makeExtensionFieldInfo(xi.desc.ExtensionDescriptor)\n\t\txi.info.validation = newValidationInfo(xi.desc.ExtensionDescriptor, xi.goType)\n\t}\n}\n\ntype extensionTypeDescriptor struct {\n\tprotoreflect.ExtensionDescriptor\n\txi *ExtensionInfo\n}\n\nfunc (xtd *extensionTypeDescriptor) Type() protoreflect.ExtensionType {\n\treturn xtd.xi\n}\nfunc (xtd *extensionTypeDescriptor) Descriptor() protoreflect.ExtensionDescriptor {\n\treturn xtd.ExtensionDescriptor\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/lazy.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math/bits\"\n\t\"os\"\n\t\"reflect\"\n\t\"sort\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/protolazy\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\tpreg \"google.golang.org/protobuf/reflect/protoregistry\"\n\tpiface \"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nvar enableLazy int32 = func() int32 {\n\tif os.Getenv(\"GOPROTODEBUG\") == \"nolazy\" {\n\t\treturn 0\n\t}\n\treturn 1\n}()\n\n// EnableLazyUnmarshal enables lazy unmarshaling.\nfunc EnableLazyUnmarshal(enable bool) {\n\tif enable {\n\t\tatomic.StoreInt32(&enableLazy, 1)\n\t\treturn\n\t}\n\tatomic.StoreInt32(&enableLazy, 0)\n}\n\n// LazyEnabled reports whether lazy unmarshalling is currently enabled.\nfunc LazyEnabled() bool {\n\treturn atomic.LoadInt32(&enableLazy) != 0\n}\n\n// UnmarshalField unmarshals a field in a message.\nfunc UnmarshalField(m interface{}, num protowire.Number) {\n\tswitch m := m.(type) {\n\tcase *messageState:\n\t\tm.messageInfo().lazyUnmarshal(m.pointer(), num)\n\tcase *messageReflectWrapper:\n\t\tm.messageInfo().lazyUnmarshal(m.pointer(), num)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported wrapper type %T\", m))\n\t}\n}\n\nfunc (mi *MessageInfo) lazyUnmarshal(p pointer, num protoreflect.FieldNumber) {\n\tvar f *coderFieldInfo\n\tif int(num) < len(mi.denseCoderFields) {\n\t\tf = mi.denseCoderFields[num]\n\t} else {\n\t\tf = mi.coderFields[num]\n\t}\n\tif f == nil {\n\t\tpanic(fmt.Sprintf(\"lazyUnmarshal: field info for %v.%v\", mi.Desc.FullName(), num))\n\t}\n\tlazy := *p.Apply(mi.lazyOffset).LazyInfoPtr()\n\tstart, end, found, _, multipleEntries := lazy.FindFieldInProto(uint32(num))\n\tif !found && multipleEntries == nil {\n\t\tpanic(fmt.Sprintf(\"lazyUnmarshal: can't find field data for %v.%v\", mi.Desc.FullName(), num))\n\t}\n\t// The actual pointer in the message can not be set until the whole struct is filled in, otherwise we will have races.\n\t// Create another pointer and set it atomically, if we won the race and the pointer in the original message is still nil.\n\tfp := pointerOfValue(reflect.New(f.ft))\n\tif multipleEntries != nil {\n\t\tfor _, entry := range multipleEntries {\n\t\t\tmi.unmarshalField(lazy.Buffer()[entry.Start:entry.End], fp, f, lazy, lazy.UnmarshalFlags())\n\t\t}\n\t} else {\n\t\tmi.unmarshalField(lazy.Buffer()[start:end], fp, f, lazy, lazy.UnmarshalFlags())\n\t}\n\tp.Apply(f.offset).AtomicSetPointerIfNil(fp.Elem())\n}\n\nfunc (mi *MessageInfo) unmarshalField(b []byte, p pointer, f *coderFieldInfo, lazyInfo *protolazy.XXX_lazyUnmarshalInfo, flags piface.UnmarshalInputFlags) error {\n\topts := lazyUnmarshalOptions\n\topts.flags |= flags\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tvar tag uint64\n\t\tif b[0] < 0x80 {\n\t\t\ttag = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn errors.New(\"invalid wire data\")\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\tvar num protowire.Number\n\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\treturn errors.New(\"invalid wire data\")\n\t\t} else {\n\t\t\tnum = protowire.Number(n)\n\t\t}\n\t\twtyp := protowire.Type(tag & 7)\n\t\tif num == f.num {\n\t\t\to, err := f.funcs.unmarshal(b, p, wtyp, f, opts)\n\t\t\tif err == nil {\n\t\t\t\tb = b[o.n:]\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errUnknown {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\tif n < 0 {\n\t\t\treturn errors.New(\"invalid wire data\")\n\t\t}\n\t\tb = b[n:]\n\t}\n\treturn nil\n}\n\nfunc (mi *MessageInfo) skipField(b []byte, f *coderFieldInfo, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, _ ValidationStatus) {\n\tfmi := f.validation.mi\n\tif fmi == nil {\n\t\tfd := mi.Desc.Fields().ByNumber(f.num)\n\t\tif fd == nil {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tmessageName := fd.Message().FullName()\n\t\tmessageType, err := preg.GlobalTypes.FindMessageByName(messageName)\n\t\tif err != nil {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tvar ok bool\n\t\tfmi, ok = messageType.(*MessageInfo)\n\t\tif !ok {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t}\n\tfmi.init()\n\tswitch f.validation.typ {\n\tcase validationTypeMessage:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn out, ValidationWrongWireType\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, ValidationInvalid\n\t\t}\n\t\tout, st := fmi.validate(v, 0, opts)\n\t\tout.n = n\n\t\treturn out, st\n\tcase validationTypeGroup:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn out, ValidationWrongWireType\n\t\t}\n\t\tout, st := fmi.validate(b, f.num, opts)\n\t\treturn out, st\n\tdefault:\n\t\treturn out, ValidationUnknown\n\t}\n}\n\n// unmarshalPointerLazy is similar to unmarshalPointerEager, but it\n// specifically handles lazy unmarshalling.  it expects lazyOffset and\n// presenceOffset to both be valid.\nfunc (mi *MessageInfo) unmarshalPointerLazy(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tinitialized := true\n\tvar requiredMask uint64\n\tvar lazy **protolazy.XXX_lazyUnmarshalInfo\n\tvar presence presence\n\tvar lazyIndex []protolazy.IndexEntry\n\tvar lastNum protowire.Number\n\toutOfOrder := false\n\tlazyDecode := false\n\tpresence = p.Apply(mi.presenceOffset).PresenceInfo()\n\tlazy = p.Apply(mi.lazyOffset).LazyInfoPtr()\n\tif !presence.AnyPresent(mi.presenceSize) {\n\t\tif opts.CanBeLazy() {\n\t\t\t// If the message contains existing data, we need to merge into it.\n\t\t\t// Lazy unmarshaling doesn't merge, so only enable it when the\n\t\t\t// message is empty (has no presence bitmap).\n\t\t\tlazyDecode = true\n\t\t\tif *lazy == nil {\n\t\t\t\t*lazy = &protolazy.XXX_lazyUnmarshalInfo{}\n\t\t\t}\n\t\t\t(*lazy).SetUnmarshalFlags(opts.flags)\n\t\t\tif !opts.AliasBuffer() {\n\t\t\t\t// Make a copy of the buffer for lazy unmarshaling.\n\t\t\t\t// Set the AliasBuffer flag so recursive unmarshal\n\t\t\t\t// operations reuse the copy.\n\t\t\t\tb = append([]byte{}, b...)\n\t\t\t\topts.flags |= piface.UnmarshalAliasBuffer\n\t\t\t}\n\t\t\t(*lazy).SetBuffer(b)\n\t\t}\n\t}\n\t// Track special handling of lazy fields.\n\t//\n\t// In the common case, all fields are lazyValidateOnly (and lazyFields remains nil).\n\t// In the event that validation for a field fails, this map tracks handling of the field.\n\ttype lazyAction uint8\n\tconst (\n\t\tlazyValidateOnly   lazyAction = iota // validate the field only\n\t\tlazyUnmarshalNow                     // eagerly unmarshal the field\n\t\tlazyUnmarshalLater                   // unmarshal the field after the message is fully processed\n\t)\n\tvar lazyFields map[*coderFieldInfo]lazyAction\n\tvar exts *map[int32]ExtensionField\n\tstart := len(b)\n\tpos := 0\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tvar tag uint64\n\t\tif b[0] < 0x80 {\n\t\t\ttag = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\tvar num protowire.Number\n\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\treturn out, errors.New(\"invalid field number\")\n\t\t} else {\n\t\t\tnum = protowire.Number(n)\n\t\t}\n\t\twtyp := protowire.Type(tag & 7)\n\n\t\tif wtyp == protowire.EndGroupType {\n\t\t\tif num != groupTag {\n\t\t\t\treturn out, errors.New(\"mismatching end group marker\")\n\t\t\t}\n\t\t\tgroupTag = 0\n\t\t\tbreak\n\t\t}\n\n\t\tvar f *coderFieldInfo\n\t\tif int(num) < len(mi.denseCoderFields) {\n\t\t\tf = mi.denseCoderFields[num]\n\t\t} else {\n\t\t\tf = mi.coderFields[num]\n\t\t}\n\t\tvar n int\n\t\terr := errUnknown\n\t\tdiscardUnknown := false\n\tField:\n\t\tswitch {\n\t\tcase f != nil:\n\t\t\tif f.funcs.unmarshal == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif f.isLazy && lazyDecode {\n\t\t\t\tswitch {\n\t\t\t\tcase lazyFields == nil || lazyFields[f] == lazyValidateOnly:\n\t\t\t\t\t// Attempt to validate this field and leave it for later lazy unmarshaling.\n\t\t\t\t\to, valid := mi.skipField(b, f, wtyp, opts)\n\t\t\t\t\tswitch valid {\n\t\t\t\t\tcase ValidationValid:\n\t\t\t\t\t\t// Skip over the valid field and continue.\n\t\t\t\t\t\terr = nil\n\t\t\t\t\t\tpresence.SetPresentUnatomic(f.presenceIndex, mi.presenceSize)\n\t\t\t\t\t\trequiredMask |= f.validation.requiredBit\n\t\t\t\t\t\tif !o.initialized {\n\t\t\t\t\t\t\tinitialized = false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn = o.n\n\t\t\t\t\t\tbreak Field\n\t\t\t\t\tcase ValidationInvalid:\n\t\t\t\t\t\treturn out, errors.New(\"invalid proto wire format\")\n\t\t\t\t\tcase ValidationWrongWireType:\n\t\t\t\t\t\tbreak Field\n\t\t\t\t\tcase ValidationUnknown:\n\t\t\t\t\t\tif lazyFields == nil {\n\t\t\t\t\t\t\tlazyFields = make(map[*coderFieldInfo]lazyAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif presence.Present(f.presenceIndex) {\n\t\t\t\t\t\t\t// We were unable to determine if the field is valid or not,\n\t\t\t\t\t\t\t// and we've already skipped over at least one instance of this\n\t\t\t\t\t\t\t// field. Clear the presence bit (so if we stop decoding early,\n\t\t\t\t\t\t\t// we don't leave a partially-initialized field around) and flag\n\t\t\t\t\t\t\t// the field for unmarshaling before we return.\n\t\t\t\t\t\t\tpresence.ClearPresent(f.presenceIndex)\n\t\t\t\t\t\t\tlazyFields[f] = lazyUnmarshalLater\n\t\t\t\t\t\t\tdiscardUnknown = true\n\t\t\t\t\t\t\tbreak Field\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We were unable to determine if the field is valid or not,\n\t\t\t\t\t\t\t// but this is the first time we've seen it. Flag it as needing\n\t\t\t\t\t\t\t// eager unmarshaling and fall through to the eager unmarshal case below.\n\t\t\t\t\t\t\tlazyFields[f] = lazyUnmarshalNow\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tcase lazyFields[f] == lazyUnmarshalLater:\n\t\t\t\t\t// This field will be unmarshaled in a separate pass below.\n\t\t\t\t\t// Skip over it here.\n\t\t\t\t\tdiscardUnknown = true\n\t\t\t\t\tbreak Field\n\t\t\t\tdefault:\n\t\t\t\t\t// Eagerly unmarshal the field.\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f.isLazy && !lazyDecode && presence.Present(f.presenceIndex) {\n\t\t\t\tif p.Apply(f.offset).AtomicGetPointer().IsNil() {\n\t\t\t\t\tmi.lazyUnmarshal(p, f.num)\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = f.funcs.unmarshal(b, p.Apply(f.offset), wtyp, f, opts)\n\t\t\tn = o.n\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\trequiredMask |= f.validation.requiredBit\n\t\t\tif f.funcs.isInit != nil && !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\t\t\tif f.presenceIndex != noPresence {\n\t\t\t\tpresence.SetPresentUnatomic(f.presenceIndex, mi.presenceSize)\n\t\t\t}\n\t\tdefault:\n\t\t\t// Possible extension.\n\t\t\tif exts == nil && mi.extensionOffset.IsValid() {\n\t\t\t\texts = p.Apply(mi.extensionOffset).Extensions()\n\t\t\t\tif *exts == nil {\n\t\t\t\t\t*exts = make(map[int32]ExtensionField)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif exts == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = mi.unmarshalExtension(b, num, wtyp, *exts, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tn = o.n\n\t\t\tif !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tif err != errUnknown {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tif !discardUnknown && !opts.DiscardUnknown() && mi.unknownOffset.IsValid() {\n\t\t\t\tu := mi.mutableUnknownBytes(p)\n\t\t\t\t*u = protowire.AppendTag(*u, num, wtyp)\n\t\t\t\t*u = append(*u, b[:n]...)\n\t\t\t}\n\t\t}\n\t\tb = b[n:]\n\t\tend := start - len(b)\n\t\tif lazyDecode && f != nil && f.isLazy {\n\t\t\tif num != lastNum {\n\t\t\t\tlazyIndex = append(lazyIndex, protolazy.IndexEntry{\n\t\t\t\t\tFieldNum: uint32(num),\n\t\t\t\t\tStart:    uint32(pos),\n\t\t\t\t\tEnd:      uint32(end),\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\ti := len(lazyIndex) - 1\n\t\t\t\tlazyIndex[i].End = uint32(end)\n\t\t\t\tlazyIndex[i].MultipleContiguous = true\n\t\t\t}\n\t\t}\n\t\tif num < lastNum {\n\t\t\toutOfOrder = true\n\t\t}\n\t\tpos = end\n\t\tlastNum = num\n\t}\n\tif groupTag != 0 {\n\t\treturn out, errors.New(\"missing end group marker\")\n\t}\n\tif lazyFields != nil {\n\t\t// Some fields failed validation, and now need to be unmarshaled.\n\t\tfor f, action := range lazyFields {\n\t\t\tif action != lazyUnmarshalLater {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tinitialized = false\n\t\t\tif *lazy == nil {\n\t\t\t\t*lazy = &protolazy.XXX_lazyUnmarshalInfo{}\n\t\t\t}\n\t\t\tif err := mi.unmarshalField((*lazy).Buffer(), p.Apply(f.offset), f, *lazy, opts.flags); err != nil {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tpresence.SetPresentUnatomic(f.presenceIndex, mi.presenceSize)\n\t\t}\n\t}\n\tif lazyDecode {\n\t\tif outOfOrder {\n\t\t\tsort.Slice(lazyIndex, func(i, j int) bool {\n\t\t\t\treturn lazyIndex[i].FieldNum < lazyIndex[j].FieldNum ||\n\t\t\t\t\t(lazyIndex[i].FieldNum == lazyIndex[j].FieldNum &&\n\t\t\t\t\t\tlazyIndex[i].Start < lazyIndex[j].Start)\n\t\t\t})\n\t\t}\n\t\tif *lazy == nil {\n\t\t\t*lazy = &protolazy.XXX_lazyUnmarshalInfo{}\n\t\t}\n\n\t\t(*lazy).SetIndex(lazyIndex)\n\t}\n\tif mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) {\n\t\tinitialized = false\n\t}\n\tif initialized {\n\t\tout.initialized = true\n\t}\n\tout.n = start - len(b)\n\treturn out, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// legacyEnumName returns the name of enums used in legacy code.\n// It is neither the protobuf full name nor the qualified Go name,\n// but rather an odd hybrid of both.\nfunc legacyEnumName(ed protoreflect.EnumDescriptor) string {\n\tvar protoPkg string\n\tenumName := string(ed.FullName())\n\tif fd := ed.ParentFile(); fd != nil {\n\t\tprotoPkg = string(fd.Package())\n\t\tenumName = strings.TrimPrefix(enumName, protoPkg+\".\")\n\t}\n\tif protoPkg == \"\" {\n\t\treturn strs.GoCamelCase(enumName)\n\t}\n\treturn protoPkg + \".\" + strs.GoCamelCase(enumName)\n}\n\n// legacyWrapEnum wraps v as a protoreflect.Enum,\n// where v must be a int32 kind and not implement the v2 API already.\nfunc legacyWrapEnum(v reflect.Value) protoreflect.Enum {\n\tet := legacyLoadEnumType(v.Type())\n\treturn et.New(protoreflect.EnumNumber(v.Int()))\n}\n\nvar legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType\n\n// legacyLoadEnumType dynamically loads a protoreflect.EnumType for t,\n// where t must be an int32 kind and not implement the v2 API already.\nfunc legacyLoadEnumType(t reflect.Type) protoreflect.EnumType {\n\t// Fast-path: check if a EnumType is cached for this concrete type.\n\tif et, ok := legacyEnumTypeCache.Load(t); ok {\n\t\treturn et.(protoreflect.EnumType)\n\t}\n\n\t// Slow-path: derive enum descriptor and initialize EnumType.\n\tvar et protoreflect.EnumType\n\ted := LegacyLoadEnumDesc(t)\n\tet = &legacyEnumType{\n\t\tdesc:   ed,\n\t\tgoType: t,\n\t}\n\tif et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok {\n\t\treturn et.(protoreflect.EnumType)\n\t}\n\treturn et\n}\n\ntype legacyEnumType struct {\n\tdesc   protoreflect.EnumDescriptor\n\tgoType reflect.Type\n\tm      sync.Map // map[protoreflect.EnumNumber]proto.Enum\n}\n\nfunc (t *legacyEnumType) New(n protoreflect.EnumNumber) protoreflect.Enum {\n\tif e, ok := t.m.Load(n); ok {\n\t\treturn e.(protoreflect.Enum)\n\t}\n\te := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType}\n\tt.m.Store(n, e)\n\treturn e\n}\nfunc (t *legacyEnumType) Descriptor() protoreflect.EnumDescriptor {\n\treturn t.desc\n}\n\ntype legacyEnumWrapper struct {\n\tnum   protoreflect.EnumNumber\n\tpbTyp protoreflect.EnumType\n\tgoTyp reflect.Type\n}\n\nfunc (e *legacyEnumWrapper) Descriptor() protoreflect.EnumDescriptor {\n\treturn e.pbTyp.Descriptor()\n}\nfunc (e *legacyEnumWrapper) Type() protoreflect.EnumType {\n\treturn e.pbTyp\n}\nfunc (e *legacyEnumWrapper) Number() protoreflect.EnumNumber {\n\treturn e.num\n}\nfunc (e *legacyEnumWrapper) ProtoReflect() protoreflect.Enum {\n\treturn e\n}\nfunc (e *legacyEnumWrapper) protoUnwrap() any {\n\tv := reflect.New(e.goTyp).Elem()\n\tv.SetInt(int64(e.num))\n\treturn v.Interface()\n}\n\nvar (\n\t_ protoreflect.Enum = (*legacyEnumWrapper)(nil)\n\t_ unwrapper         = (*legacyEnumWrapper)(nil)\n)\n\nvar legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor\n\n// LegacyLoadEnumDesc returns an EnumDescriptor derived from the Go type,\n// which must be an int32 kind and not implement the v2 API already.\n//\n// This is exported for testing purposes.\nfunc LegacyLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor {\n\t// Fast-path: check if an EnumDescriptor is cached for this concrete type.\n\tif ed, ok := legacyEnumDescCache.Load(t); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\n\t// Slow-path: initialize EnumDescriptor from the raw descriptor.\n\tev := reflect.Zero(t).Interface()\n\tif _, ok := ev.(protoreflect.Enum); ok {\n\t\tpanic(fmt.Sprintf(\"%v already implements proto.Enum\", t))\n\t}\n\tedV1, ok := ev.(enumV1)\n\tif !ok {\n\t\treturn aberrantLoadEnumDesc(t)\n\t}\n\tb, idxs := edV1.EnumDescriptor()\n\n\tvar ed protoreflect.EnumDescriptor\n\tif len(idxs) == 1 {\n\t\ted = legacyLoadFileDesc(b).Enums().Get(idxs[0])\n\t} else {\n\t\tmd := legacyLoadFileDesc(b).Messages().Get(idxs[0])\n\t\tfor _, i := range idxs[1 : len(idxs)-1] {\n\t\t\tmd = md.Messages().Get(i)\n\t\t}\n\t\ted = md.Enums().Get(idxs[len(idxs)-1])\n\t}\n\tif ed, ok := legacyEnumDescCache.LoadOrStore(t, ed); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\nvar aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor\n\n// aberrantLoadEnumDesc returns an EnumDescriptor derived from the Go type,\n// which must not implement protoreflect.Enum or enumV1.\n//\n// If the type does not implement enumV1, then there is no reliable\n// way to derive the original protobuf type information.\n// We are unable to use the global enum registry since it is\n// unfortunately keyed by the protobuf full name, which we also do not know.\n// Thus, this produces some bogus enum descriptor based on the Go type name.\nfunc aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor {\n\t// Fast-path: check if an EnumDescriptor is cached for this concrete type.\n\tif ed, ok := aberrantEnumDescCache.Load(t); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\n\t// Slow-path: construct a bogus, but unique EnumDescriptor.\n\ted := &filedesc.Enum{L2: new(filedesc.EnumL2)}\n\ted.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum\n\ted.L0.ParentFile = filedesc.SurrogateProto3\n\ted.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures\n\ted.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{})\n\n\t// TODO: Use the presence of a UnmarshalJSON method to determine proto2?\n\n\tvd := &ed.L2.Values.List[0]\n\tvd.L0.FullName = ed.L0.FullName + \"_UNKNOWN\" // e.g., github_com.user.repo.MyEnum_UNKNOWN\n\tvd.L0.ParentFile = ed.L0.ParentFile\n\tvd.L0.Parent = ed\n\n\t// TODO: We could use the String method to obtain some enum value names by\n\t// starting at 0 and print the enum until it produces invalid identifiers.\n\t// An exhaustive query is clearly impractical, but can be best-effort.\n\n\tif ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\n// AberrantDeriveFullName derives a fully qualified protobuf name for the given Go type\n// The provided name is not guaranteed to be stable nor universally unique.\n// It should be sufficiently unique within a program.\n//\n// This is exported for testing purposes.\nfunc AberrantDeriveFullName(t reflect.Type) protoreflect.FullName {\n\tsanitize := func(r rune) rune {\n\t\tswitch {\n\t\tcase r == '/':\n\t\t\treturn '.'\n\t\tcase 'a' <= r && r <= 'z', 'A' <= r && r <= 'Z', '0' <= r && r <= '9':\n\t\t\treturn r\n\t\tdefault:\n\t\t\treturn '_'\n\t\t}\n\t}\n\tprefix := strings.Map(sanitize, t.PkgPath())\n\tsuffix := strings.Map(sanitize, t.Name())\n\tif suffix == \"\" {\n\t\tsuffix = fmt.Sprintf(\"UnknownX%X\", reflect.ValueOf(t).Pointer())\n\t}\n\n\tss := append(strings.Split(prefix, \".\"), suffix)\n\tfor i, s := range ss {\n\t\tif s == \"\" || ('0' <= s[0] && s[0] <= '9') {\n\t\t\tss[i] = \"x\" + s\n\t\t}\n\t}\n\treturn protoreflect.FullName(strings.Join(ss, \".\"))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_export.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"hash/crc32\"\n\t\"math\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// These functions exist to support exported APIs in generated protobufs.\n// While these are deprecated, they cannot be removed for compatibility reasons.\n\n// LegacyEnumName returns the name of enums used in legacy code.\nfunc (Export) LegacyEnumName(ed protoreflect.EnumDescriptor) string {\n\treturn legacyEnumName(ed)\n}\n\n// LegacyMessageTypeOf returns the protoreflect.MessageType for m,\n// with name used as the message name if necessary.\nfunc (Export) LegacyMessageTypeOf(m protoiface.MessageV1, name protoreflect.FullName) protoreflect.MessageType {\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Type()\n\t}\n\treturn legacyLoadMessageType(reflect.TypeOf(m), name)\n}\n\n// UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input.\n// The input can either be a string representing the enum value by name,\n// or a number representing the enum number itself.\nfunc (Export) UnmarshalJSONEnum(ed protoreflect.EnumDescriptor, b []byte) (protoreflect.EnumNumber, error) {\n\tif b[0] == '\"' {\n\t\tvar name protoreflect.Name\n\t\tif err := json.Unmarshal(b, &name); err != nil {\n\t\t\treturn 0, errors.New(\"invalid input for enum %v: %s\", ed.FullName(), b)\n\t\t}\n\t\tev := ed.Values().ByName(name)\n\t\tif ev == nil {\n\t\t\treturn 0, errors.New(\"invalid value for enum %v: %s\", ed.FullName(), name)\n\t\t}\n\t\treturn ev.Number(), nil\n\t} else {\n\t\tvar num protoreflect.EnumNumber\n\t\tif err := json.Unmarshal(b, &num); err != nil {\n\t\t\treturn 0, errors.New(\"invalid input for enum %v: %s\", ed.FullName(), b)\n\t\t}\n\t\treturn num, nil\n\t}\n}\n\n// CompressGZIP compresses the input as a GZIP-encoded file.\n// The current implementation does no compression.\nfunc (Export) CompressGZIP(in []byte) (out []byte) {\n\t// RFC 1952, section 2.3.1.\n\tvar gzipHeader = [10]byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}\n\n\t// RFC 1951, section 3.2.4.\n\tvar blockHeader [5]byte\n\tconst maxBlockSize = math.MaxUint16\n\tnumBlocks := 1 + len(in)/maxBlockSize\n\n\t// RFC 1952, section 2.3.1.\n\tvar gzipFooter [8]byte\n\tbinary.LittleEndian.PutUint32(gzipFooter[0:4], crc32.ChecksumIEEE(in))\n\tbinary.LittleEndian.PutUint32(gzipFooter[4:8], uint32(len(in)))\n\n\t// Encode the input without compression using raw DEFLATE blocks.\n\tout = make([]byte, 0, len(gzipHeader)+len(blockHeader)*numBlocks+len(in)+len(gzipFooter))\n\tout = append(out, gzipHeader[:]...)\n\tfor blockHeader[0] == 0 {\n\t\tblockSize := maxBlockSize\n\t\tif blockSize > len(in) {\n\t\t\tblockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3.\n\t\t\tblockSize = len(in)\n\t\t}\n\t\tbinary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize))\n\t\tbinary.LittleEndian.PutUint16(blockHeader[3:5], ^uint16(blockSize))\n\t\tout = append(out, blockHeader[:]...)\n\t\tout = append(out, in[:blockSize]...)\n\t\tin = in[blockSize:]\n\t}\n\tout = append(out, gzipFooter[:]...)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\tptag \"google.golang.org/protobuf/internal/encoding/tag\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (xi *ExtensionInfo) initToLegacy() {\n\txd := xi.desc\n\tvar parent protoiface.MessageV1\n\tmessageName := xd.ContainingMessage().FullName()\n\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(messageName); mt != nil {\n\t\t// Create a new parent message and unwrap it if possible.\n\t\tmv := mt.New().Interface()\n\t\tt := reflect.TypeOf(mv)\n\t\tif mv, ok := mv.(unwrapper); ok {\n\t\t\tt = reflect.TypeOf(mv.protoUnwrap())\n\t\t}\n\n\t\t// Check whether the message implements the legacy v1 Message interface.\n\t\tmz := reflect.Zero(t).Interface()\n\t\tif mz, ok := mz.(protoiface.MessageV1); ok {\n\t\t\tparent = mz\n\t\t}\n\t}\n\n\t// Determine the v1 extension type, which is unfortunately not the same as\n\t// the v2 ExtensionType.GoType.\n\textType := xi.goType\n\tswitch extType.Kind() {\n\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\textType = reflect.PtrTo(extType) // T -> *T for singular scalar fields\n\t}\n\n\t// Reconstruct the legacy enum full name.\n\tvar enumName string\n\tif xd.Kind() == protoreflect.EnumKind {\n\t\tenumName = legacyEnumName(xd.Enum())\n\t}\n\n\t// Derive the proto file that the extension was declared within.\n\tvar filename string\n\tif fd := xd.ParentFile(); fd != nil {\n\t\tfilename = fd.Path()\n\t}\n\n\t// For MessageSet extensions, the name used is the parent message.\n\tname := xd.FullName()\n\tif messageset.IsMessageSetExtension(xd) {\n\t\tname = name.Parent()\n\t}\n\n\txi.ExtendedType = parent\n\txi.ExtensionType = reflect.Zero(extType).Interface()\n\txi.Field = int32(xd.Number())\n\txi.Name = string(name)\n\txi.Tag = ptag.Marshal(xd, enumName)\n\txi.Filename = filename\n}\n\n// initFromLegacy initializes an ExtensionInfo from\n// the contents of the deprecated exported fields of the type.\nfunc (xi *ExtensionInfo) initFromLegacy() {\n\t// The v1 API returns \"type incomplete\" descriptors where only the\n\t// field number is specified. In such a case, use a placeholder.\n\tif xi.ExtendedType == nil || xi.ExtensionType == nil {\n\t\txd := placeholderExtension{\n\t\t\tname:   protoreflect.FullName(xi.Name),\n\t\t\tnumber: protoreflect.FieldNumber(xi.Field),\n\t\t}\n\t\txi.desc = extensionTypeDescriptor{xd, xi}\n\t\treturn\n\t}\n\n\t// Resolve enum or message dependencies.\n\tvar ed protoreflect.EnumDescriptor\n\tvar md protoreflect.MessageDescriptor\n\tt := reflect.TypeOf(xi.ExtensionType)\n\tisOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct\n\tisRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n\tif isOptional || isRepeated {\n\t\tt = t.Elem()\n\t}\n\tswitch v := reflect.Zero(t).Interface().(type) {\n\tcase protoreflect.Enum:\n\t\ted = v.Descriptor()\n\tcase enumV1:\n\t\ted = LegacyLoadEnumDesc(t)\n\tcase protoreflect.ProtoMessage:\n\t\tmd = v.ProtoReflect().Descriptor()\n\tcase messageV1:\n\t\tmd = LegacyLoadMessageDesc(t)\n\t}\n\n\t// Derive basic field information from the struct tag.\n\tvar evs protoreflect.EnumValueDescriptors\n\tif ed != nil {\n\t\tevs = ed.Values()\n\t}\n\tfd := ptag.Unmarshal(xi.Tag, t, evs).(*filedesc.Field)\n\n\t// Construct a v2 ExtensionType.\n\txd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)}\n\txd.L0.ParentFile = filedesc.SurrogateProto2\n\txd.L0.FullName = protoreflect.FullName(xi.Name)\n\txd.L1.Number = protoreflect.FieldNumber(xi.Field)\n\txd.L1.Cardinality = fd.L1.Cardinality\n\txd.L1.Kind = fd.L1.Kind\n\txd.L1.EditionFeatures = fd.L1.EditionFeatures\n\txd.L2.Default = fd.L1.Default\n\txd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType)\n\txd.L2.Enum = ed\n\txd.L2.Message = md\n\n\t// Derive real extension field name for MessageSets.\n\tif messageset.IsMessageSet(xd.L1.Extendee) && md.FullName() == xd.L0.FullName {\n\t\txd.L0.FullName = xd.L0.FullName.Append(messageset.ExtensionName)\n\t}\n\n\ttt := reflect.TypeOf(xi.ExtensionType)\n\tif isOptional {\n\t\ttt = tt.Elem()\n\t}\n\txi.goType = tt\n\txi.desc = extensionTypeDescriptor{xd, xi}\n}\n\ntype placeholderExtension struct {\n\tname   protoreflect.FullName\n\tnumber protoreflect.FieldNumber\n}\n\nfunc (x placeholderExtension) ParentFile() protoreflect.FileDescriptor            { return nil }\nfunc (x placeholderExtension) Parent() protoreflect.Descriptor                    { return nil }\nfunc (x placeholderExtension) Index() int                                         { return 0 }\nfunc (x placeholderExtension) Syntax() protoreflect.Syntax                        { return 0 }\nfunc (x placeholderExtension) Name() protoreflect.Name                            { return x.name.Name() }\nfunc (x placeholderExtension) FullName() protoreflect.FullName                    { return x.name }\nfunc (x placeholderExtension) IsPlaceholder() bool                                { return true }\nfunc (x placeholderExtension) Options() protoreflect.ProtoMessage                 { return descopts.Field }\nfunc (x placeholderExtension) Number() protoreflect.FieldNumber                   { return x.number }\nfunc (x placeholderExtension) Cardinality() protoreflect.Cardinality              { return 0 }\nfunc (x placeholderExtension) Kind() protoreflect.Kind                            { return 0 }\nfunc (x placeholderExtension) HasJSONName() bool                                  { return false }\nfunc (x placeholderExtension) JSONName() string                                   { return \"[\" + string(x.name) + \"]\" }\nfunc (x placeholderExtension) TextName() string                                   { return \"[\" + string(x.name) + \"]\" }\nfunc (x placeholderExtension) HasPresence() bool                                  { return false }\nfunc (x placeholderExtension) HasOptionalKeyword() bool                           { return false }\nfunc (x placeholderExtension) IsExtension() bool                                  { return true }\nfunc (x placeholderExtension) IsWeak() bool                                       { return false }\nfunc (x placeholderExtension) IsLazy() bool                                       { return false }\nfunc (x placeholderExtension) IsPacked() bool                                     { return false }\nfunc (x placeholderExtension) IsList() bool                                       { return false }\nfunc (x placeholderExtension) IsMap() bool                                        { return false }\nfunc (x placeholderExtension) MapKey() protoreflect.FieldDescriptor               { return nil }\nfunc (x placeholderExtension) MapValue() protoreflect.FieldDescriptor             { return nil }\nfunc (x placeholderExtension) HasDefault() bool                                   { return false }\nfunc (x placeholderExtension) Default() protoreflect.Value                        { return protoreflect.Value{} }\nfunc (x placeholderExtension) DefaultEnumValue() protoreflect.EnumValueDescriptor { return nil }\nfunc (x placeholderExtension) ContainingOneof() protoreflect.OneofDescriptor      { return nil }\nfunc (x placeholderExtension) ContainingMessage() protoreflect.MessageDescriptor  { return nil }\nfunc (x placeholderExtension) Enum() protoreflect.EnumDescriptor                  { return nil }\nfunc (x placeholderExtension) Message() protoreflect.MessageDescriptor            { return nil }\nfunc (x placeholderExtension) ProtoType(protoreflect.FieldDescriptor)             { return }\nfunc (x placeholderExtension) ProtoInternal(pragma.DoNotImplement)                { return }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_file.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"io\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Every enum and message type generated by protoc-gen-go since commit 2fc053c5\n// on February 25th, 2016 has had a method to get the raw descriptor.\n// Types that were not generated by protoc-gen-go or were generated prior\n// to that version are not supported.\n//\n// The []byte returned is the encoded form of a FileDescriptorProto message\n// compressed using GZIP. The []int is the path from the top-level file\n// to the specific message or enum declaration.\ntype (\n\tenumV1 interface {\n\t\tEnumDescriptor() ([]byte, []int)\n\t}\n\tmessageV1 interface {\n\t\tDescriptor() ([]byte, []int)\n\t}\n)\n\nvar legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor\n\n// legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message.\n//\n// This assumes that b is immutable and that b does not refer to part of a\n// concatenated series of GZIP files (which would require shenanigans that\n// rely on the concatenation properties of both protobufs and GZIP).\n// File descriptors generated by protoc-gen-go do not rely on that property.\nfunc legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor {\n\t// Fast-path: check whether we already have a cached file descriptor.\n\tif fd, ok := legacyFileDescCache.Load(&b[0]); ok {\n\t\treturn fd.(protoreflect.FileDescriptor)\n\t}\n\n\t// Slow-path: decompress and unmarshal the file descriptor proto.\n\tzr, err := gzip.NewReader(bytes.NewReader(b))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tb2, err := io.ReadAll(zr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfd := filedesc.Builder{\n\t\tRawDescriptor: b2,\n\t\tFileRegistry:  resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry\n\t}.Build().File\n\tif fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok {\n\t\treturn fd.(protoreflect.FileDescriptor)\n\t}\n\treturn fd\n}\n\ntype resolverOnly struct {\n\treg *protoregistry.Files\n}\n\nfunc (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {\n\treturn r.reg.FindFileByPath(path)\n}\nfunc (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {\n\treturn r.reg.FindDescriptorByName(name)\n}\nfunc (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_message.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\tptag \"google.golang.org/protobuf/internal/encoding/tag\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// legacyWrapMessage wraps v as a protoreflect.Message,\n// where v must be a *struct kind and not implement the v2 API already.\nfunc legacyWrapMessage(v reflect.Value) protoreflect.Message {\n\tt := v.Type()\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn aberrantMessage{v: v}\n\t}\n\tmt := legacyLoadMessageInfo(t, \"\")\n\treturn mt.MessageOf(v.Interface())\n}\n\n// legacyLoadMessageType dynamically loads a protoreflect.Type for t,\n// where t must be not implement the v2 API already.\n// The provided name is used if it cannot be determined from the message.\nfunc legacyLoadMessageType(t reflect.Type, name protoreflect.FullName) protoreflect.MessageType {\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn aberrantMessageType{t}\n\t}\n\treturn legacyLoadMessageInfo(t, name)\n}\n\nvar legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo\n\n// legacyLoadMessageInfo dynamically loads a *MessageInfo for t,\n// where t must be a *struct kind and not implement the v2 API already.\n// The provided name is used if it cannot be determined from the message.\nfunc legacyLoadMessageInfo(t reflect.Type, name protoreflect.FullName) *MessageInfo {\n\t// Fast-path: check if a MessageInfo is cached for this concrete type.\n\tif mt, ok := legacyMessageTypeCache.Load(t); ok {\n\t\treturn mt.(*MessageInfo)\n\t}\n\n\t// Slow-path: derive message descriptor and initialize MessageInfo.\n\tmi := &MessageInfo{\n\t\tDesc:          legacyLoadMessageDesc(t, name),\n\t\tGoReflectType: t,\n\t}\n\n\tvar hasMarshal, hasUnmarshal bool\n\tv := reflect.Zero(t).Interface()\n\tif _, hasMarshal = v.(legacyMarshaler); hasMarshal {\n\t\tmi.methods.Marshal = legacyMarshal\n\n\t\t// We have no way to tell whether the type's Marshal method\n\t\t// supports deterministic serialization or not, but this\n\t\t// preserves the v1 implementation's behavior of always\n\t\t// calling Marshal methods when present.\n\t\tmi.methods.Flags |= protoiface.SupportMarshalDeterministic\n\t}\n\tif _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal {\n\t\tmi.methods.Unmarshal = legacyUnmarshal\n\t}\n\tif _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) {\n\t\tmi.methods.Merge = legacyMerge\n\t}\n\n\tif mi, ok := legacyMessageTypeCache.LoadOrStore(t, mi); ok {\n\t\treturn mi.(*MessageInfo)\n\t}\n\treturn mi\n}\n\nvar legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor\n\n// LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type,\n// which should be a *struct kind and must not implement the v2 API already.\n//\n// This is exported for testing purposes.\nfunc LegacyLoadMessageDesc(t reflect.Type) protoreflect.MessageDescriptor {\n\treturn legacyLoadMessageDesc(t, \"\")\n}\nfunc legacyLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\t// Fast-path: check if a MessageDescriptor is cached for this concrete type.\n\tif mi, ok := legacyMessageDescCache.Load(t); ok {\n\t\treturn mi.(protoreflect.MessageDescriptor)\n\t}\n\n\t// Slow-path: initialize MessageDescriptor from the raw descriptor.\n\tmv := reflect.Zero(t).Interface()\n\tif _, ok := mv.(protoreflect.ProtoMessage); ok {\n\t\tpanic(fmt.Sprintf(\"%v already implements proto.Message\", t))\n\t}\n\tmdV1, ok := mv.(messageV1)\n\tif !ok {\n\t\treturn aberrantLoadMessageDesc(t, name)\n\t}\n\n\t// If this is a dynamic message type where there isn't a 1-1 mapping between\n\t// Go and protobuf types, calling the Descriptor method on the zero value of\n\t// the message type isn't likely to work. If it panics, swallow the panic and\n\t// continue as if the Descriptor method wasn't present.\n\tb, idxs := func() ([]byte, []int) {\n\t\tdefer func() {\n\t\t\trecover()\n\t\t}()\n\t\treturn mdV1.Descriptor()\n\t}()\n\tif b == nil {\n\t\treturn aberrantLoadMessageDesc(t, name)\n\t}\n\n\t// If the Go type has no fields, then this might be a proto3 empty message\n\t// from before the size cache was added. If there are any fields, check to\n\t// see that at least one of them looks like something we generated.\n\tif t.Elem().Kind() == reflect.Struct {\n\t\tif nfield := t.Elem().NumField(); nfield > 0 {\n\t\t\thasProtoField := false\n\t\t\tfor i := 0; i < nfield; i++ {\n\t\t\t\tf := t.Elem().Field(i)\n\t\t\t\tif f.Tag.Get(\"protobuf\") != \"\" || f.Tag.Get(\"protobuf_oneof\") != \"\" || strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\t\t\thasProtoField = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !hasProtoField {\n\t\t\t\treturn aberrantLoadMessageDesc(t, name)\n\t\t\t}\n\t\t}\n\t}\n\n\tmd := legacyLoadFileDesc(b).Messages().Get(idxs[0])\n\tfor _, i := range idxs[1:] {\n\t\tmd = md.Messages().Get(i)\n\t}\n\tif name != \"\" && md.FullName() != name {\n\t\tpanic(fmt.Sprintf(\"mismatching message name: got %v, want %v\", md.FullName(), name))\n\t}\n\tif md, ok := legacyMessageDescCache.LoadOrStore(t, md); ok {\n\t\treturn md.(protoreflect.MessageDescriptor)\n\t}\n\treturn md\n}\n\nvar (\n\taberrantMessageDescLock  sync.Mutex\n\taberrantMessageDescCache map[reflect.Type]protoreflect.MessageDescriptor\n)\n\n// aberrantLoadMessageDesc returns an MessageDescriptor derived from the Go type,\n// which must not implement protoreflect.ProtoMessage or messageV1.\n//\n// This is a best-effort derivation of the message descriptor using the protobuf\n// tags on the struct fields.\nfunc aberrantLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\taberrantMessageDescLock.Lock()\n\tdefer aberrantMessageDescLock.Unlock()\n\tif aberrantMessageDescCache == nil {\n\t\taberrantMessageDescCache = make(map[reflect.Type]protoreflect.MessageDescriptor)\n\t}\n\treturn aberrantLoadMessageDescReentrant(t, name)\n}\nfunc aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\t// Fast-path: check if an MessageDescriptor is cached for this concrete type.\n\tif md, ok := aberrantMessageDescCache[t]; ok {\n\t\treturn md\n\t}\n\n\t// Slow-path: construct a descriptor from the Go struct type (best-effort).\n\t// Cache the MessageDescriptor early on so that we can resolve internal\n\t// cyclic references.\n\tmd := &filedesc.Message{L2: new(filedesc.MessageL2)}\n\tmd.L0.FullName = aberrantDeriveMessageName(t, name)\n\tmd.L0.ParentFile = filedesc.SurrogateProto2\n\taberrantMessageDescCache[t] = md\n\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn md\n\t}\n\n\t// Try to determine if the message is using proto3 by checking scalars.\n\tfor i := 0; i < t.Elem().NumField(); i++ {\n\t\tf := t.Elem().Field(i)\n\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\tswitch f.Type.Kind() {\n\t\t\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\t\t\tmd.L0.ParentFile = filedesc.SurrogateProto3\n\t\t\t}\n\t\t\tfor _, s := range strings.Split(tag, \",\") {\n\t\t\t\tif s == \"proto3\" {\n\t\t\t\t\tmd.L0.ParentFile = filedesc.SurrogateProto3\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tmd.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures\n\t// Obtain a list of oneof wrapper types.\n\tvar oneofWrappers []reflect.Type\n\tmethods := make([]reflect.Method, 0, 2)\n\tif m, ok := t.MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tif m, ok := t.MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tfor _, fn := range methods {\n\t\tfor _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {\n\t\t\tif vs, ok := v.Interface().([]any); ok {\n\t\t\t\tfor _, v := range vs {\n\t\t\t\t\toneofWrappers = append(oneofWrappers, reflect.TypeOf(v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Obtain a list of the extension ranges.\n\tif fn, ok := t.MethodByName(\"ExtensionRangeArray\"); ok {\n\t\tvs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0]\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tv := vs.Index(i)\n\t\t\tmd.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(v.FieldByName(\"Start\").Int()),\n\t\t\t\tprotoreflect.FieldNumber(v.FieldByName(\"End\").Int() + 1),\n\t\t\t})\n\t\t\tmd.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil)\n\t\t}\n\t}\n\n\t// Derive the message fields by inspecting the struct fields.\n\tfor i := 0; i < t.Elem().NumField(); i++ {\n\t\tf := t.Elem().Field(i)\n\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\ttagKey := f.Tag.Get(\"protobuf_key\")\n\t\t\ttagVal := f.Tag.Get(\"protobuf_val\")\n\t\t\taberrantAppendField(md, f.Type, tag, tagKey, tagVal)\n\t\t}\n\t\tif tag := f.Tag.Get(\"protobuf_oneof\"); tag != \"\" {\n\t\t\tn := len(md.L2.Oneofs.List)\n\t\t\tmd.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{})\n\t\t\tod := &md.L2.Oneofs.List[n]\n\t\t\tod.L0.FullName = md.FullName().Append(protoreflect.Name(tag))\n\t\t\tod.L0.ParentFile = md.L0.ParentFile\n\t\t\tod.L1.EditionFeatures = md.L1.EditionFeatures\n\t\t\tod.L0.Parent = md\n\t\t\tod.L0.Index = n\n\n\t\t\tfor _, t := range oneofWrappers {\n\t\t\t\tif t.Implements(f.Type) {\n\t\t\t\t\tf := t.Elem().Field(0)\n\t\t\t\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\t\t\t\taberrantAppendField(md, f.Type, tag, \"\", \"\")\n\t\t\t\t\t\tfd := &md.L2.Fields.List[len(md.L2.Fields.List)-1]\n\t\t\t\t\t\tfd.L1.ContainingOneof = od\n\t\t\t\t\t\tfd.L1.EditionFeatures = od.L1.EditionFeatures\n\t\t\t\t\t\tod.L1.Fields.List = append(od.L1.Fields.List, fd)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn md\n}\n\nfunc aberrantDeriveMessageName(t reflect.Type, name protoreflect.FullName) protoreflect.FullName {\n\tif name.IsValid() {\n\t\treturn name\n\t}\n\tfunc() {\n\t\tdefer func() { recover() }() // swallow possible nil panics\n\t\tif m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok {\n\t\t\tname = protoreflect.FullName(m.XXX_MessageName())\n\t\t}\n\t}()\n\tif name.IsValid() {\n\t\treturn name\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\treturn AberrantDeriveFullName(t)\n}\n\nfunc aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, tagVal string) {\n\tt := goType\n\tisOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct\n\tisRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n\tif isOptional || isRepeated {\n\t\tt = t.Elem()\n\t}\n\tfd := ptag.Unmarshal(tag, t, placeholderEnumValues{}).(*filedesc.Field)\n\n\t// Append field descriptor to the message.\n\tn := len(md.L2.Fields.List)\n\tmd.L2.Fields.List = append(md.L2.Fields.List, *fd)\n\tfd = &md.L2.Fields.List[n]\n\tfd.L0.FullName = md.FullName().Append(fd.Name())\n\tfd.L0.ParentFile = md.L0.ParentFile\n\tfd.L0.Parent = md\n\tfd.L0.Index = n\n\n\tif fd.L1.EditionFeatures.IsPacked {\n\t\tfd.L1.Options = func() protoreflect.ProtoMessage {\n\t\t\topts := descopts.Field.ProtoReflect().New()\n\t\t\tif fd.L1.EditionFeatures.IsPacked {\n\t\t\t\topts.Set(opts.Descriptor().Fields().ByName(\"packed\"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked))\n\t\t\t}\n\t\t\treturn opts.Interface()\n\t\t}\n\t}\n\n\t// Populate Enum and Message.\n\tif fd.Enum() == nil && fd.Kind() == protoreflect.EnumKind {\n\t\tswitch v := reflect.Zero(t).Interface().(type) {\n\t\tcase protoreflect.Enum:\n\t\t\tfd.L1.Enum = v.Descriptor()\n\t\tdefault:\n\t\t\tfd.L1.Enum = LegacyLoadEnumDesc(t)\n\t\t}\n\t}\n\tif fd.Message() == nil && (fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind) {\n\t\tswitch v := reflect.Zero(t).Interface().(type) {\n\t\tcase protoreflect.ProtoMessage:\n\t\t\tfd.L1.Message = v.ProtoReflect().Descriptor()\n\t\tcase messageV1:\n\t\t\tfd.L1.Message = LegacyLoadMessageDesc(t)\n\t\tdefault:\n\t\t\tif t.Kind() == reflect.Map {\n\t\t\t\tn := len(md.L1.Messages.List)\n\t\t\t\tmd.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)})\n\t\t\t\tmd2 := &md.L1.Messages.List[n]\n\t\t\t\tmd2.L0.FullName = md.FullName().Append(protoreflect.Name(strs.MapEntryName(string(fd.Name()))))\n\t\t\t\tmd2.L0.ParentFile = md.L0.ParentFile\n\t\t\t\tmd2.L0.Parent = md\n\t\t\t\tmd2.L0.Index = n\n\t\t\t\tmd2.L1.EditionFeatures = md.L1.EditionFeatures\n\n\t\t\t\tmd2.L1.IsMapEntry = true\n\t\t\t\tmd2.L2.Options = func() protoreflect.ProtoMessage {\n\t\t\t\t\topts := descopts.Message.ProtoReflect().New()\n\t\t\t\t\topts.Set(opts.Descriptor().Fields().ByName(\"map_entry\"), protoreflect.ValueOfBool(true))\n\t\t\t\t\treturn opts.Interface()\n\t\t\t\t}\n\n\t\t\t\taberrantAppendField(md2, t.Key(), tagKey, \"\", \"\")\n\t\t\t\taberrantAppendField(md2, t.Elem(), tagVal, \"\", \"\")\n\n\t\t\t\tfd.L1.Message = md2\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfd.L1.Message = aberrantLoadMessageDescReentrant(t, \"\")\n\t\t}\n\t}\n}\n\ntype placeholderEnumValues struct {\n\tprotoreflect.EnumValueDescriptors\n}\n\nfunc (placeholderEnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {\n\treturn filedesc.PlaceholderEnumValue(protoreflect.FullName(fmt.Sprintf(\"UNKNOWN_%d\", n)))\n}\n\n// legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder.\ntype legacyMarshaler interface {\n\tMarshal() ([]byte, error)\n}\n\n// legacyUnmarshaler is the proto.Unmarshaler interface superseded by protoiface.Methoder.\ntype legacyUnmarshaler interface {\n\tUnmarshal([]byte) error\n}\n\n// legacyMerger is the proto.Merger interface superseded by protoiface.Methoder.\ntype legacyMerger interface {\n\tMerge(protoiface.MessageV1)\n}\n\nvar aberrantProtoMethods = &protoiface.Methods{\n\tMarshal:   legacyMarshal,\n\tUnmarshal: legacyUnmarshal,\n\tMerge:     legacyMerge,\n\n\t// We have no way to tell whether the type's Marshal method\n\t// supports deterministic serialization or not, but this\n\t// preserves the v1 implementation's behavior of always\n\t// calling Marshal methods when present.\n\tFlags: protoiface.SupportMarshalDeterministic,\n}\n\nfunc legacyMarshal(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) {\n\tv := in.Message.(unwrapper).protoUnwrap()\n\tmarshaler, ok := v.(legacyMarshaler)\n\tif !ok {\n\t\treturn protoiface.MarshalOutput{}, errors.New(\"%T does not implement Marshal\", v)\n\t}\n\tout, err := marshaler.Marshal()\n\tif in.Buf != nil {\n\t\tout = append(in.Buf, out...)\n\t}\n\treturn protoiface.MarshalOutput{\n\t\tBuf: out,\n\t}, err\n}\n\nfunc legacyUnmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tv := in.Message.(unwrapper).protoUnwrap()\n\tunmarshaler, ok := v.(legacyUnmarshaler)\n\tif !ok {\n\t\treturn protoiface.UnmarshalOutput{}, errors.New(\"%T does not implement Unmarshal\", v)\n\t}\n\treturn protoiface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf)\n}\n\nfunc legacyMerge(in protoiface.MergeInput) protoiface.MergeOutput {\n\t// Check whether this supports the legacy merger.\n\tdstv := in.Destination.(unwrapper).protoUnwrap()\n\tmerger, ok := dstv.(legacyMerger)\n\tif ok {\n\t\tmerger.Merge(Export{}.ProtoMessageV1Of(in.Source))\n\t\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n\t}\n\n\t// If legacy merger is unavailable, implement merge in terms of\n\t// a marshal and unmarshal operation.\n\tsrcv := in.Source.(unwrapper).protoUnwrap()\n\tmarshaler, ok := srcv.(legacyMarshaler)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tdstv = in.Destination.(unwrapper).protoUnwrap()\n\tunmarshaler, ok := dstv.(legacyUnmarshaler)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tif !in.Source.IsValid() {\n\t\t// Legacy Marshal methods may not function on nil messages.\n\t\t// Check for a typed nil source only after we confirm that\n\t\t// legacy Marshal/Unmarshal methods are present, for\n\t\t// consistency.\n\t\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n\t}\n\tb, err := marshaler.Marshal()\n\tif err != nil {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\terr = unmarshaler.Unmarshal(b)\n\tif err != nil {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n}\n\n// aberrantMessageType implements MessageType for all types other than pointer-to-struct.\ntype aberrantMessageType struct {\n\tt reflect.Type\n}\n\nfunc (mt aberrantMessageType) New() protoreflect.Message {\n\tif mt.t.Kind() == reflect.Ptr {\n\t\treturn aberrantMessage{reflect.New(mt.t.Elem())}\n\t}\n\treturn aberrantMessage{reflect.Zero(mt.t)}\n}\nfunc (mt aberrantMessageType) Zero() protoreflect.Message {\n\treturn aberrantMessage{reflect.Zero(mt.t)}\n}\nfunc (mt aberrantMessageType) GoType() reflect.Type {\n\treturn mt.t\n}\nfunc (mt aberrantMessageType) Descriptor() protoreflect.MessageDescriptor {\n\treturn LegacyLoadMessageDesc(mt.t)\n}\n\n// aberrantMessage implements Message for all types other than pointer-to-struct.\n//\n// When the underlying type implements legacyMarshaler or legacyUnmarshaler,\n// the aberrant Message can be marshaled or unmarshaled. Otherwise, there is\n// not much that can be done with values of this type.\ntype aberrantMessage struct {\n\tv reflect.Value\n}\n\n// Reset implements the v1 proto.Message.Reset method.\nfunc (m aberrantMessage) Reset() {\n\tif mr, ok := m.v.Interface().(interface{ Reset() }); ok {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\tif m.v.Kind() == reflect.Ptr && !m.v.IsNil() {\n\t\tm.v.Elem().Set(reflect.Zero(m.v.Type().Elem()))\n\t}\n}\n\nfunc (m aberrantMessage) ProtoReflect() protoreflect.Message {\n\treturn m\n}\n\nfunc (m aberrantMessage) Descriptor() protoreflect.MessageDescriptor {\n\treturn LegacyLoadMessageDesc(m.v.Type())\n}\nfunc (m aberrantMessage) Type() protoreflect.MessageType {\n\treturn aberrantMessageType{m.v.Type()}\n}\nfunc (m aberrantMessage) New() protoreflect.Message {\n\tif m.v.Type().Kind() == reflect.Ptr {\n\t\treturn aberrantMessage{reflect.New(m.v.Type().Elem())}\n\t}\n\treturn aberrantMessage{reflect.Zero(m.v.Type())}\n}\nfunc (m aberrantMessage) Interface() protoreflect.ProtoMessage {\n\treturn m\n}\nfunc (m aberrantMessage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\treturn\n}\nfunc (m aberrantMessage) Has(protoreflect.FieldDescriptor) bool {\n\treturn false\n}\nfunc (m aberrantMessage) Clear(protoreflect.FieldDescriptor) {\n\tpanic(\"invalid Message.Clear on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tif fd.Default().IsValid() {\n\t\treturn fd.Default()\n\t}\n\tpanic(\"invalid Message.Get on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Set(protoreflect.FieldDescriptor, protoreflect.Value) {\n\tpanic(\"invalid Message.Set on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Mutable(protoreflect.FieldDescriptor) protoreflect.Value {\n\tpanic(\"invalid Message.Mutable on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) NewField(protoreflect.FieldDescriptor) protoreflect.Value {\n\tpanic(\"invalid Message.NewField on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) WhichOneof(protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tpanic(\"invalid Message.WhichOneof descriptor on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) GetUnknown() protoreflect.RawFields {\n\treturn nil\n}\nfunc (m aberrantMessage) SetUnknown(protoreflect.RawFields) {\n\t// SetUnknown discards its input on messages which don't support unknown field storage.\n}\nfunc (m aberrantMessage) IsValid() bool {\n\tif m.v.Kind() == reflect.Ptr {\n\t\treturn !m.v.IsNil()\n\t}\n\treturn false\n}\nfunc (m aberrantMessage) ProtoMethods() *protoiface.Methods {\n\treturn aberrantProtoMethods\n}\nfunc (m aberrantMessage) protoUnwrap() any {\n\treturn m.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/merge.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype mergeOptions struct{}\n\nfunc (o mergeOptions) Merge(dst, src proto.Message) {\n\tproto.Merge(dst, src)\n}\n\n// merge is protoreflect.Methods.Merge.\nfunc (mi *MessageInfo) merge(in protoiface.MergeInput) protoiface.MergeOutput {\n\tdp, ok := mi.getPointer(in.Destination)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tsp, ok := mi.getPointer(in.Source)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tmi.mergePointer(dp, sp, mergeOptions{})\n\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n}\n\nfunc (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) {\n\tmi.init()\n\tif dst.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid value: merging into nil message\"))\n\t}\n\tif src.IsNil() {\n\t\treturn\n\t}\n\n\tvar presenceSrc presence\n\tvar presenceDst presence\n\tif mi.presenceOffset.IsValid() {\n\t\tpresenceSrc = src.Apply(mi.presenceOffset).PresenceInfo()\n\t\tpresenceDst = dst.Apply(mi.presenceOffset).PresenceInfo()\n\t}\n\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.merge == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsfptr := src.Apply(f.offset)\n\n\t\tif f.presenceIndex != noPresence {\n\t\t\tif !presenceSrc.Present(f.presenceIndex) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdfptr := dst.Apply(f.offset)\n\t\t\tif f.isLazy {\n\t\t\t\tif sfptr.AtomicGetPointer().IsNil() {\n\t\t\t\t\tmi.lazyUnmarshal(src, f.num)\n\t\t\t\t}\n\t\t\t\tif presenceDst.Present(f.presenceIndex) && dfptr.AtomicGetPointer().IsNil() {\n\t\t\t\t\tmi.lazyUnmarshal(dst, f.num)\n\t\t\t\t}\n\t\t\t}\n\t\t\tf.funcs.merge(dst.Apply(f.offset), sfptr, f, opts)\n\t\t\tpresenceDst.SetPresentUnatomic(f.presenceIndex, mi.presenceSize)\n\t\t\tcontinue\n\t\t}\n\n\t\tif f.isPointer && sfptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tf.funcs.merge(dst.Apply(f.offset), sfptr, f, opts)\n\t}\n\tif mi.extensionOffset.IsValid() {\n\t\tsext := src.Apply(mi.extensionOffset).Extensions()\n\t\tdext := dst.Apply(mi.extensionOffset).Extensions()\n\t\tif *dext == nil {\n\t\t\t*dext = make(map[int32]ExtensionField)\n\t\t}\n\t\tfor num, sx := range *sext {\n\t\t\txt := sx.Type()\n\t\t\txi := getExtensionFieldInfo(xt)\n\t\t\tif xi.funcs.merge == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdx := (*dext)[num]\n\t\t\tvar dv protoreflect.Value\n\t\t\tif dx.Type() == sx.Type() {\n\t\t\t\tdv = dx.Value()\n\t\t\t}\n\t\t\tif !dv.IsValid() && xi.unmarshalNeedsValue {\n\t\t\t\tdv = xt.New()\n\t\t\t}\n\t\t\tdv = xi.funcs.merge(dv, sx.Value(), opts)\n\t\t\tdx.Set(sx.Type(), dv)\n\t\t\t(*dext)[num] = dx\n\t\t}\n\t}\n\tif mi.unknownOffset.IsValid() {\n\t\tsu := mi.getUnknownBytes(src)\n\t\tif su != nil && len(*su) > 0 {\n\t\t\tdu := mi.mutableUnknownBytes(dst)\n\t\t\t*du = append(*du, *su...)\n\t\t}\n\t}\n}\n\nfunc mergeScalarValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\treturn src\n}\n\nfunc mergeBytesValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], src.Bytes()...))\n}\n\nfunc mergeListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tdstl.Append(srcl.Get(i))\n\t}\n\treturn dst\n}\n\nfunc mergeBytesListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tsb := srcl.Get(i).Bytes()\n\t\tdb := append(emptyBuf[:], sb...)\n\t\tdstl.Append(protoreflect.ValueOfBytes(db))\n\t}\n\treturn dst\n}\n\nfunc mergeMessageListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tsm := srcl.Get(i).Message()\n\t\tdm := proto.Clone(sm.Interface()).ProtoReflect()\n\t\tdstl.Append(protoreflect.ValueOfMessage(dm))\n\t}\n\treturn dst\n}\n\nfunc mergeMessageValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\topts.Merge(dst.Message().Interface(), src.Message().Interface())\n\treturn dst\n}\n\nfunc mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tif f.mi != nil {\n\t\tif dst.Elem().IsNil() {\n\t\t\tdst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t\t}\n\t\tf.mi.mergePointer(dst.Elem(), src.Elem(), opts)\n\t} else {\n\t\tdm := dst.AsValueOf(f.ft).Elem()\n\t\tsm := src.AsValueOf(f.ft).Elem()\n\t\tif dm.IsNil() {\n\t\t\tdm.Set(reflect.New(f.ft.Elem()))\n\t\t}\n\t\topts.Merge(asMessage(dm), asMessage(sm))\n\t}\n}\n\nfunc mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tfor _, sp := range src.PointerSlice() {\n\t\tdm := reflect.New(f.ft.Elem().Elem())\n\t\tif f.mi != nil {\n\t\t\tf.mi.mergePointer(pointerOfValue(dm), sp, opts)\n\t\t} else {\n\t\t\topts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem())))\n\t\t}\n\t\tdst.AppendPointerSlice(pointerOfValue(dm))\n\t}\n}\n\nfunc mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Bytes() = append(emptyBuf[:], *src.Bytes()...)\n}\n\nfunc mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Bytes()\n\tif len(v) > 0 {\n\t\t*dst.Bytes() = append(emptyBuf[:], v...)\n\t}\n}\n\nfunc mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.BytesSlice()\n\tfor _, v := range *src.BytesSlice() {\n\t\t*ds = append(*ds, append(emptyBuf[:], v...))\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/merge_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport ()\n\nfunc mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Bool() = *src.Bool()\n}\n\nfunc mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Bool()\n\tif v != false {\n\t\t*dst.Bool() = v\n\t}\n}\n\nfunc mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.BoolPtr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.BoolPtr() = &v\n\t}\n}\n\nfunc mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.BoolSlice()\n\tss := src.BoolSlice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Int32() = *src.Int32()\n}\n\nfunc mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Int32()\n\tif v != 0 {\n\t\t*dst.Int32() = v\n\t}\n}\n\nfunc mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Int32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Int32Ptr() = &v\n\t}\n}\n\nfunc mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Int32Slice()\n\tss := src.Int32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Uint32() = *src.Uint32()\n}\n\nfunc mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Uint32()\n\tif v != 0 {\n\t\t*dst.Uint32() = v\n\t}\n}\n\nfunc mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Uint32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Uint32Ptr() = &v\n\t}\n}\n\nfunc mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Uint32Slice()\n\tss := src.Uint32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Int64() = *src.Int64()\n}\n\nfunc mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Int64()\n\tif v != 0 {\n\t\t*dst.Int64() = v\n\t}\n}\n\nfunc mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Int64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Int64Ptr() = &v\n\t}\n}\n\nfunc mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Int64Slice()\n\tss := src.Int64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Uint64() = *src.Uint64()\n}\n\nfunc mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Uint64()\n\tif v != 0 {\n\t\t*dst.Uint64() = v\n\t}\n}\n\nfunc mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Uint64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Uint64Ptr() = &v\n\t}\n}\n\nfunc mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Uint64Slice()\n\tss := src.Uint64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Float32() = *src.Float32()\n}\n\nfunc mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Float32()\n\tif v != 0 {\n\t\t*dst.Float32() = v\n\t}\n}\n\nfunc mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Float32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Float32Ptr() = &v\n\t}\n}\n\nfunc mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Float32Slice()\n\tss := src.Float32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Float64() = *src.Float64()\n}\n\nfunc mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Float64()\n\tif v != 0 {\n\t\t*dst.Float64() = v\n\t}\n}\n\nfunc mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Float64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Float64Ptr() = &v\n\t}\n}\n\nfunc mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Float64Slice()\n\tss := src.Float64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.String() = *src.String()\n}\n\nfunc mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.String()\n\tif v != \"\" {\n\t\t*dst.String() = v\n\t}\n}\n\nfunc mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.StringPtr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.StringPtr() = &v\n\t}\n}\n\nfunc mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.StringSlice()\n\tss := src.StringSlice()\n\t*ds = append(*ds, *ss...)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// MessageInfo provides protobuf related functionality for a given Go type\n// that represents a message. A given instance of MessageInfo is tied to\n// exactly one Go type, which must be a pointer to a struct type.\n//\n// The exported fields must be populated before any methods are called\n// and cannot be mutated after set.\ntype MessageInfo struct {\n\t// GoReflectType is the underlying message Go type and must be populated.\n\tGoReflectType reflect.Type // pointer to struct\n\n\t// Desc is the underlying message descriptor type and must be populated.\n\tDesc protoreflect.MessageDescriptor\n\n\t// Deprecated: Exporter will be removed the next time we bump\n\t// protoimpl.GenVersion. See https://github.com/golang/protobuf/issues/1640\n\tExporter exporter\n\n\t// OneofWrappers is list of pointers to oneof wrapper struct types.\n\tOneofWrappers []any\n\n\tinitMu   sync.Mutex // protects all unexported fields\n\tinitDone uint32\n\n\treflectMessageInfo // for reflection implementation\n\tcoderMessageInfo   // for fast-path method implementations\n}\n\n// exporter is a function that returns a reference to the ith field of v,\n// where v is a pointer to a struct. It returns nil if it does not support\n// exporting the requested field (e.g., already exported).\ntype exporter func(v any, i int) any\n\n// getMessageInfo returns the MessageInfo for any message type that\n// is generated by our implementation of protoc-gen-go (for v2 and on).\n// If it is unable to obtain a MessageInfo, it returns nil.\nfunc getMessageInfo(mt reflect.Type) *MessageInfo {\n\tm, ok := reflect.Zero(mt).Interface().(protoreflect.ProtoMessage)\n\tif !ok {\n\t\treturn nil\n\t}\n\tmr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo })\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn mr.ProtoMessageInfo()\n}\n\nfunc (mi *MessageInfo) init() {\n\t// This function is called in the hot path. Inline the sync.Once logic,\n\t// since allocating a closure for Once.Do is expensive.\n\t// Keep init small to ensure that it can be inlined.\n\tif atomic.LoadUint32(&mi.initDone) == 0 {\n\t\tmi.initOnce()\n\t}\n}\n\nfunc (mi *MessageInfo) initOnce() {\n\tmi.initMu.Lock()\n\tdefer mi.initMu.Unlock()\n\tif mi.initDone == 1 {\n\t\treturn\n\t}\n\tif opaqueInitHook(mi) {\n\t\treturn\n\t}\n\n\tt := mi.GoReflectType\n\tif t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"got %v, want *struct kind\", t))\n\t}\n\tt = t.Elem()\n\n\tsi := mi.makeStructInfo(t)\n\tmi.makeReflectFuncs(t, si)\n\tmi.makeCoderMethods(t, si)\n\n\tatomic.StoreUint32(&mi.initDone, 1)\n}\n\n// getPointer returns the pointer for a message, which should be of\n// the type of the MessageInfo. If the message is of a different type,\n// it returns ok==false.\nfunc (mi *MessageInfo) getPointer(m protoreflect.Message) (p pointer, ok bool) {\n\tswitch m := m.(type) {\n\tcase *messageState:\n\t\treturn m.pointer(), m.messageInfo() == mi\n\tcase *messageReflectWrapper:\n\t\treturn m.pointer(), m.messageInfo() == mi\n\t}\n\treturn pointer{}, false\n}\n\ntype (\n\tSizeCache       = int32\n\tWeakFields      = map[int32]protoreflect.ProtoMessage\n\tUnknownFields   = unknownFieldsA // TODO: switch to unknownFieldsB\n\tunknownFieldsA  = []byte\n\tunknownFieldsB  = *[]byte\n\tExtensionFields = map[int32]ExtensionField\n)\n\nvar (\n\tsizecacheType       = reflect.TypeOf(SizeCache(0))\n\tunknownFieldsAType  = reflect.TypeOf(unknownFieldsA(nil))\n\tunknownFieldsBType  = reflect.TypeOf(unknownFieldsB(nil))\n\textensionFieldsType = reflect.TypeOf(ExtensionFields(nil))\n)\n\ntype structInfo struct {\n\tsizecacheOffset offset\n\tsizecacheType   reflect.Type\n\tunknownOffset   offset\n\tunknownType     reflect.Type\n\textensionOffset offset\n\textensionType   reflect.Type\n\n\tlazyOffset     offset\n\tpresenceOffset offset\n\n\tfieldsByNumber        map[protoreflect.FieldNumber]reflect.StructField\n\toneofsByName          map[protoreflect.Name]reflect.StructField\n\toneofWrappersByType   map[reflect.Type]protoreflect.FieldNumber\n\toneofWrappersByNumber map[protoreflect.FieldNumber]reflect.Type\n}\n\nfunc (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {\n\tsi := structInfo{\n\t\tsizecacheOffset: invalidOffset,\n\t\tunknownOffset:   invalidOffset,\n\t\textensionOffset: invalidOffset,\n\t\tlazyOffset:      invalidOffset,\n\t\tpresenceOffset:  invalidOffset,\n\n\t\tfieldsByNumber:        map[protoreflect.FieldNumber]reflect.StructField{},\n\t\toneofsByName:          map[protoreflect.Name]reflect.StructField{},\n\t\toneofWrappersByType:   map[reflect.Type]protoreflect.FieldNumber{},\n\t\toneofWrappersByNumber: map[protoreflect.FieldNumber]reflect.Type{},\n\t}\n\nfieldLoop:\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tswitch f := t.Field(i); f.Name {\n\t\tcase genid.SizeCache_goname, genid.SizeCacheA_goname:\n\t\t\tif f.Type == sizecacheType {\n\t\t\t\tsi.sizecacheOffset = offsetOf(f)\n\t\t\t\tsi.sizecacheType = f.Type\n\t\t\t}\n\t\tcase genid.UnknownFields_goname, genid.UnknownFieldsA_goname:\n\t\t\tif f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {\n\t\t\t\tsi.unknownOffset = offsetOf(f)\n\t\t\t\tsi.unknownType = f.Type\n\t\t\t}\n\t\tcase genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname:\n\t\t\tif f.Type == extensionFieldsType {\n\t\t\t\tsi.extensionOffset = offsetOf(f)\n\t\t\t\tsi.extensionType = f.Type\n\t\t\t}\n\t\tcase \"lazyFields\", \"XXX_lazyUnmarshalInfo\":\n\t\t\tsi.lazyOffset = offsetOf(f)\n\t\tcase \"XXX_presence\":\n\t\t\tsi.presenceOffset = offsetOf(f)\n\t\tdefault:\n\t\t\tfor _, s := range strings.Split(f.Tag.Get(\"protobuf\"), \",\") {\n\t\t\t\tif len(s) > 0 && strings.Trim(s, \"0123456789\") == \"\" {\n\t\t\t\t\tn, _ := strconv.ParseUint(s, 10, 64)\n\t\t\t\t\tsi.fieldsByNumber[protoreflect.FieldNumber(n)] = f\n\t\t\t\t\tcontinue fieldLoop\n\t\t\t\t}\n\t\t\t}\n\t\t\tif s := f.Tag.Get(\"protobuf_oneof\"); len(s) > 0 {\n\t\t\t\tsi.oneofsByName[protoreflect.Name(s)] = f\n\t\t\t\tcontinue fieldLoop\n\t\t\t}\n\t\t}\n\t}\n\n\t// Derive a mapping of oneof wrappers to fields.\n\toneofWrappers := mi.OneofWrappers\n\tmethods := make([]reflect.Method, 0, 2)\n\tif m, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tif m, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tfor _, fn := range methods {\n\t\tfor _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {\n\t\t\tif vs, ok := v.Interface().([]any); ok {\n\t\t\t\toneofWrappers = vs\n\t\t\t}\n\t\t}\n\t}\n\tfor _, v := range oneofWrappers {\n\t\ttf := reflect.TypeOf(v).Elem()\n\t\tf := tf.Field(0)\n\t\tfor _, s := range strings.Split(f.Tag.Get(\"protobuf\"), \",\") {\n\t\t\tif len(s) > 0 && strings.Trim(s, \"0123456789\") == \"\" {\n\t\t\t\tn, _ := strconv.ParseUint(s, 10, 64)\n\t\t\t\tsi.oneofWrappersByType[tf] = protoreflect.FieldNumber(n)\n\t\t\t\tsi.oneofWrappersByNumber[protoreflect.FieldNumber(n)] = tf\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn si\n}\n\nfunc (mi *MessageInfo) New() protoreflect.Message {\n\tm := reflect.New(mi.GoReflectType.Elem()).Interface()\n\tif r, ok := m.(protoreflect.ProtoMessage); ok {\n\t\treturn r.ProtoReflect()\n\t}\n\treturn mi.MessageOf(m)\n}\nfunc (mi *MessageInfo) Zero() protoreflect.Message {\n\treturn mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface())\n}\nfunc (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor {\n\treturn mi.Desc\n}\nfunc (mi *MessageInfo) Enum(i int) protoreflect.EnumType {\n\tmi.init()\n\tfd := mi.Desc.Fields().Get(i)\n\treturn Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()])\n}\nfunc (mi *MessageInfo) Message(i int) protoreflect.MessageType {\n\tmi.init()\n\tfd := mi.Desc.Fields().Get(i)\n\tswitch {\n\tcase fd.IsMap():\n\t\treturn mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}\n\tdefault:\n\t\treturn Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()])\n\t}\n}\n\ntype mapEntryType struct {\n\tdesc    protoreflect.MessageDescriptor\n\tvalType any // zero value of enum or message type\n}\n\nfunc (mt mapEntryType) New() protoreflect.Message {\n\treturn nil\n}\nfunc (mt mapEntryType) Zero() protoreflect.Message {\n\treturn nil\n}\nfunc (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor {\n\treturn mt.desc\n}\nfunc (mt mapEntryType) Enum(i int) protoreflect.EnumType {\n\tfd := mt.desc.Fields().Get(i)\n\tif fd.Enum() == nil {\n\t\treturn nil\n\t}\n\treturn Export{}.EnumTypeOf(mt.valType)\n}\nfunc (mt mapEntryType) Message(i int) protoreflect.MessageType {\n\tfd := mt.desc.Fields().Get(i)\n\tif fd.Message() == nil {\n\t\treturn nil\n\t}\n\treturn Export{}.MessageTypeOf(mt.valType)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_opaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype opaqueStructInfo struct {\n\tstructInfo\n}\n\n// isOpaque determines whether a protobuf message type is on the Opaque API.  It\n// checks whether the type is a Go struct that protoc-gen-go would generate.\n//\n// This function only detects newly generated messages from the v2\n// implementation of protoc-gen-go. It is unable to classify generated messages\n// that are too old or those that are generated by a different generator\n// such as protoc-gen-gogo.\nfunc isOpaque(t reflect.Type) bool {\n\t// The current detection mechanism is to simply check the first field\n\t// for a struct tag with the \"protogen\" key.\n\tif t.Kind() == reflect.Struct && t.NumField() > 0 {\n\t\tpgt := t.Field(0).Tag.Get(\"protogen\")\n\t\treturn strings.HasPrefix(pgt, \"opaque.\")\n\t}\n\treturn false\n}\n\nfunc opaqueInitHook(mi *MessageInfo) bool {\n\tmt := mi.GoReflectType.Elem()\n\tsi := opaqueStructInfo{\n\t\tstructInfo: mi.makeStructInfo(mt),\n\t}\n\n\tif !isOpaque(mt) {\n\t\treturn false\n\t}\n\n\tdefer atomic.StoreUint32(&mi.initDone, 1)\n\n\tmi.fields = map[protoreflect.FieldNumber]*fieldInfo{}\n\tfds := mi.Desc.Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tvar fi fieldInfo\n\t\tusePresence, _ := filedesc.UsePresenceForField(fd)\n\n\t\tswitch {\n\t\tcase fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():\n\t\t\t// Oneofs are no different for opaque.\n\t\t\tfi = fieldInfoForOneof(fd, si.oneofsByName[fd.ContainingOneof().Name()], mi.Exporter, si.oneofWrappersByNumber[fd.Number()])\n\t\tcase fd.IsMap():\n\t\t\tfi = mi.fieldInfoForMapOpaque(si, fd, fs)\n\t\tcase fd.IsList() && fd.Message() == nil && usePresence:\n\t\t\tfi = mi.fieldInfoForScalarListOpaque(si, fd, fs)\n\t\tcase fd.IsList() && fd.Message() == nil:\n\t\t\t// Proto3 lists without presence can use same access methods as open\n\t\t\tfi = fieldInfoForList(fd, fs, mi.Exporter)\n\t\tcase fd.IsList() && usePresence:\n\t\t\tfi = mi.fieldInfoForMessageListOpaque(si, fd, fs)\n\t\tcase fd.IsList():\n\t\t\t// Proto3 opaque messages that does not need presence bitmap.\n\t\t\t// Different representation than open struct, but same logic\n\t\t\tfi = mi.fieldInfoForMessageListOpaqueNoPresence(si, fd, fs)\n\t\tcase fd.Message() != nil && usePresence:\n\t\t\tfi = mi.fieldInfoForMessageOpaque(si, fd, fs)\n\t\tcase fd.Message() != nil:\n\t\t\t// Proto3 messages without presence can use same access methods as open\n\t\t\tfi = fieldInfoForMessage(fd, fs, mi.Exporter)\n\t\tdefault:\n\t\t\tfi = mi.fieldInfoForScalarOpaque(si, fd, fs)\n\t\t}\n\t\tmi.fields[fd.Number()] = &fi\n\t}\n\tmi.oneofs = map[protoreflect.Name]*oneofInfo{}\n\tfor i := 0; i < mi.Desc.Oneofs().Len(); i++ {\n\t\tod := mi.Desc.Oneofs().Get(i)\n\t\tmi.oneofs[od.Name()] = makeOneofInfoOpaque(mi, od, si.structInfo, mi.Exporter)\n\t}\n\n\tmi.denseFields = make([]*fieldInfo, fds.Len()*2)\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tif fd := fds.Get(i); int(fd.Number()) < len(mi.denseFields) {\n\t\t\tmi.denseFields[fd.Number()] = mi.fields[fd.Number()]\n\t\t}\n\t}\n\n\tfor i := 0; i < fds.Len(); {\n\t\tfd := fds.Get(i)\n\t\tif od := fd.ContainingOneof(); od != nil && !fd.ContainingOneof().IsSynthetic() {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.oneofs[od.Name()])\n\t\t\ti += od.Fields().Len()\n\t\t} else {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.fields[fd.Number()])\n\t\t\ti++\n\t\t}\n\t}\n\n\tmi.makeExtensionFieldsFunc(mt, si.structInfo)\n\tmi.makeUnknownFieldsFunc(mt, si.structInfo)\n\tmi.makeOpaqueCoderMethods(mt, si)\n\tmi.makeFieldTypes(si.structInfo)\n\n\treturn true\n}\n\nfunc makeOneofInfoOpaque(mi *MessageInfo, od protoreflect.OneofDescriptor, si structInfo, x exporter) *oneofInfo {\n\toi := &oneofInfo{oneofDesc: od}\n\tif od.IsSynthetic() {\n\t\tfd := od.Fields().Get(0)\n\t\tindex, _ := presenceIndex(mi.Desc, fd)\n\t\toi.which = func(p pointer) protoreflect.FieldNumber {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif !mi.present(p, index) {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn od.Fields().Get(0).Number()\n\t\t}\n\t\treturn oi\n\t}\n\t// Dispatch to non-opaque oneof implementation for non-synthetic oneofs.\n\treturn makeOneofInfo(od, si, x)\n}\n\nfunc (mi *MessageInfo) fieldInfoForMapOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want map kind\", ft))\n\t}\n\tfieldOffset := offsetOf(fs)\n\tconv := NewConverter(ft, fd)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t// Don't bother checking presence bits, since we need to\n\t\t\t// look at the map length even if the presence bit is set.\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"invalid value: setting map field to read-only value\"))\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(pv)\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif v.IsNil() {\n\t\t\t\tv.Set(reflect.MakeMap(fs.Type))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(v)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc (mi *MessageInfo) fieldInfoForScalarListOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want slice kind\", ft))\n\t}\n\tconv := NewConverter(reflect.PtrTo(ft), fd)\n\tfieldOffset := offsetOf(fs)\n\tindex, _ := presenceIndex(mi.Desc, fd)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type)\n\t\t\tif rv.Elem().Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"invalid value: setting repeated field to read-only value\"))\n\t\t\t}\n\t\t\tmi.setPresent(p, index)\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(pv.Elem())\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tmi.setPresent(p, index)\n\t\t\treturn conv.PBValueOf(p.Apply(fieldOffset).AsValueOf(fs.Type))\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc (mi *MessageInfo) fieldInfoForMessageListOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Ptr || ft.Elem().Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want slice kind\", ft))\n\t}\n\tconv := NewConverter(ft, fd)\n\tfieldOffset := offsetOf(fs)\n\tindex, _ := presenceIndex(mi.Desc, fd)\n\tfieldNumber := fd.Number()\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !mi.present(p, index) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsp := p.Apply(fieldOffset).AtomicGetPointer()\n\t\t\tif sp.IsNil() {\n\t\t\t\t// Lazily unmarshal this field.\n\t\t\t\tmi.lazyUnmarshal(p, fieldNumber)\n\t\t\t\tsp = p.Apply(fieldOffset).AtomicGetPointer()\n\t\t\t}\n\t\t\trv := sp.AsValueOf(fs.Type.Elem())\n\t\t\treturn rv.Elem().Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tfp := p.Apply(fieldOffset)\n\t\t\tsp := fp.AtomicGetPointer()\n\t\t\tif sp.IsNil() {\n\t\t\t\tsp = fp.AtomicSetPointerIfNil(pointerOfValue(reflect.New(fs.Type.Elem())))\n\t\t\t\tmi.setPresent(p, index)\n\t\t\t}\n\t\t\trv := sp.AsValueOf(fs.Type.Elem())\n\t\t\trv.Elem().Set(reflect.Zero(rv.Type().Elem()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tif !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tsp := p.Apply(fieldOffset).AtomicGetPointer()\n\t\t\tif sp.IsNil() {\n\t\t\t\t// Lazily unmarshal this field.\n\t\t\t\tmi.lazyUnmarshal(p, fieldNumber)\n\t\t\t\tsp = p.Apply(fieldOffset).AtomicGetPointer()\n\t\t\t}\n\t\t\trv := sp.AsValueOf(fs.Type.Elem())\n\t\t\tif rv.Elem().Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tfp := p.Apply(fieldOffset)\n\t\t\tsp := fp.AtomicGetPointer()\n\t\t\tif sp.IsNil() {\n\t\t\t\tsp = fp.AtomicSetPointerIfNil(pointerOfValue(reflect.New(fs.Type.Elem())))\n\t\t\t\tmi.setPresent(p, index)\n\t\t\t}\n\t\t\trv := sp.AsValueOf(fs.Type.Elem())\n\t\t\tval := conv.GoValueOf(v)\n\t\t\tif val.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"invalid value: setting repeated field to read-only value\"))\n\t\t\t} else {\n\t\t\t\trv.Elem().Set(val.Elem())\n\t\t\t}\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tfp := p.Apply(fieldOffset)\n\t\t\tsp := fp.AtomicGetPointer()\n\t\t\tif sp.IsNil() {\n\t\t\t\tif mi.present(p, index) {\n\t\t\t\t\t// Lazily unmarshal this field.\n\t\t\t\t\tmi.lazyUnmarshal(p, fieldNumber)\n\t\t\t\t\tsp = p.Apply(fieldOffset).AtomicGetPointer()\n\t\t\t\t} else {\n\t\t\t\t\tsp = fp.AtomicSetPointerIfNil(pointerOfValue(reflect.New(fs.Type.Elem())))\n\t\t\t\t\tmi.setPresent(p, index)\n\t\t\t\t}\n\t\t\t}\n\t\t\trv := sp.AsValueOf(fs.Type.Elem())\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc (mi *MessageInfo) fieldInfoForMessageListOpaqueNoPresence(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Ptr || ft.Elem().Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want slice kind\", ft))\n\t}\n\tconv := NewConverter(ft, fd)\n\tfieldOffset := offsetOf(fs)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn rv.Elem().Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif !rv.IsNil() {\n\t\t\t\trv.Elem().Set(reflect.Zero(rv.Type().Elem()))\n\t\t\t}\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tif rv.Elem().Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\trv.Set(reflect.New(fs.Type.Elem()))\n\t\t\t}\n\t\t\tval := conv.GoValueOf(v)\n\t\t\tif val.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"invalid value: setting repeated field to read-only value\"))\n\t\t\t} else {\n\t\t\t\trv.Elem().Set(val.Elem())\n\t\t\t}\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\trv.Set(reflect.New(fs.Type.Elem()))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc (mi *MessageInfo) fieldInfoForScalarOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tnullable := fd.HasPresence()\n\tif oneof := fd.ContainingOneof(); oneof != nil && oneof.IsSynthetic() {\n\t\tnullable = true\n\t}\n\tderef := false\n\tif nullable && ft.Kind() == reflect.Ptr {\n\t\tft = ft.Elem()\n\t\tderef = true\n\t}\n\tconv := NewConverter(ft, fd)\n\tfieldOffset := offsetOf(fs)\n\tindex, _ := presenceIndex(mi.Desc, fd)\n\tvar getter func(p pointer) protoreflect.Value\n\tif !nullable {\n\t\tgetter = getterForDirectScalar(fd, fs, conv, fieldOffset)\n\t} else {\n\t\tgetter = getterForOpaqueNullableScalar(mi, index, fd, fs, conv, fieldOffset)\n\t}\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif nullable {\n\t\t\t\treturn mi.present(p, index)\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tswitch rv.Kind() {\n\t\t\tcase reflect.Bool:\n\t\t\t\treturn rv.Bool()\n\t\t\tcase reflect.Int32, reflect.Int64:\n\t\t\t\treturn rv.Int() != 0\n\t\t\tcase reflect.Uint32, reflect.Uint64:\n\t\t\t\treturn rv.Uint() != 0\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\treturn rv.Float() != 0 || math.Signbit(rv.Float())\n\t\t\tcase reflect.String, reflect.Slice:\n\t\t\t\treturn rv.Len() > 0\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"invalid type: %v\", rv.Type())) // should never happen\n\t\t\t}\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tif nullable {\n\t\t\t\tmi.clearPresent(p, index)\n\t\t\t}\n\t\t\t// This is only valuable for bytes and strings, but we do it unconditionally.\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: getter,\n\t\t// TODO: Implement unsafe fast path for set?\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif deref {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\trv.Set(reflect.New(ft))\n\t\t\t\t}\n\t\t\t\trv = rv.Elem()\n\t\t\t}\n\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t\tif nullable && rv.Kind() == reflect.Slice && rv.IsNil() {\n\t\t\t\trv.Set(emptyBytes)\n\t\t\t}\n\t\t\tif nullable {\n\t\t\t\tmi.setPresent(p, index)\n\t\t\t}\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc (mi *MessageInfo) fieldInfoForMessageOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo {\n\tft := fs.Type\n\tconv := NewConverter(ft, fd)\n\tfieldOffset := offsetOf(fs)\n\tindex, _ := presenceIndex(mi.Desc, fd)\n\tfieldNumber := fd.Number()\n\telemType := fs.Type.Elem()\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn mi.present(p, index)\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tmi.clearPresent(p, index)\n\t\t\tp.Apply(fieldOffset).AtomicSetNilPointer()\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tfp := p.Apply(fieldOffset)\n\t\t\tmp := fp.AtomicGetPointer()\n\t\t\tif mp.IsNil() {\n\t\t\t\t// Lazily unmarshal this field.\n\t\t\t\tmi.lazyUnmarshal(p, fieldNumber)\n\t\t\t\tmp = fp.AtomicGetPointer()\n\t\t\t}\n\t\t\trv := mp.AsValueOf(elemType)\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tval := pointerOfValue(conv.GoValueOf(v))\n\t\t\tif val.IsNil() {\n\t\t\t\tpanic(\"invalid nil pointer\")\n\t\t\t}\n\t\t\tp.Apply(fieldOffset).AtomicSetPointer(val)\n\t\t\tmi.setPresent(p, index)\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tfp := p.Apply(fieldOffset)\n\t\t\tmp := fp.AtomicGetPointer()\n\t\t\tif mp.IsNil() {\n\t\t\t\tif mi.present(p, index) {\n\t\t\t\t\t// Lazily unmarshal this field.\n\t\t\t\t\tmi.lazyUnmarshal(p, fieldNumber)\n\t\t\t\t\tmp = fp.AtomicGetPointer()\n\t\t\t\t} else {\n\t\t\t\t\tmp = pointerOfValue(conv.GoValueOf(conv.New()))\n\t\t\t\t\tfp.AtomicSetPointer(mp)\n\t\t\t\t\tmi.setPresent(p, index)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn conv.PBValueOf(mp.AsValueOf(fs.Type.Elem()))\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\treturn conv.New().Message()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\n// A presenceList wraps a List, updating presence bits as necessary when the\n// list contents change.\ntype presenceList struct {\n\tpvalueList\n\tsetPresence func(bool)\n}\ntype pvalueList interface {\n\tprotoreflect.List\n\t//Unwrapper\n}\n\nfunc (list presenceList) Append(v protoreflect.Value) {\n\tlist.pvalueList.Append(v)\n\tlist.setPresence(true)\n}\nfunc (list presenceList) Truncate(i int) {\n\tlist.pvalueList.Truncate(i)\n\tlist.setPresence(i > 0)\n}\n\n// presenceIndex returns the index to pass to presence functions.\n//\n// TODO: field.Desc.Index() would be simpler, and would give space to record the presence of oneof fields.\nfunc presenceIndex(md protoreflect.MessageDescriptor, fd protoreflect.FieldDescriptor) (uint32, presenceSize) {\n\tfound := false\n\tvar index, numIndices uint32\n\tfor i := 0; i < md.Fields().Len(); i++ {\n\t\tf := md.Fields().Get(i)\n\t\tif f == fd {\n\t\t\tfound = true\n\t\t\tindex = numIndices\n\t\t}\n\t\tif f.ContainingOneof() == nil || isLastOneofField(f) {\n\t\t\tnumIndices++\n\t\t}\n\t}\n\tif !found {\n\t\tpanic(fmt.Sprintf(\"BUG: %v not in %v\", fd.Name(), md.FullName()))\n\t}\n\treturn index, presenceSize(numIndices)\n}\n\nfunc isLastOneofField(fd protoreflect.FieldDescriptor) bool {\n\tfields := fd.ContainingOneof().Fields()\n\treturn fields.Get(fields.Len()-1) == fd\n}\n\nfunc (mi *MessageInfo) setPresent(p pointer, index uint32) {\n\tp.Apply(mi.presenceOffset).PresenceInfo().SetPresent(index, mi.presenceSize)\n}\n\nfunc (mi *MessageInfo) clearPresent(p pointer, index uint32) {\n\tp.Apply(mi.presenceOffset).PresenceInfo().ClearPresent(index)\n}\n\nfunc (mi *MessageInfo) present(p pointer, index uint32) bool {\n\treturn p.Apply(mi.presenceOffset).PresenceInfo().Present(index)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_opaque_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc getterForOpaqueNullableScalar(mi *MessageInfo, index uint32, fd protoreflect.FieldDescriptor, fs reflect.StructField, conv Converter, fieldOffset offset) func(p pointer) protoreflect.Value {\n\tft := fs.Type\n\tif ft.Kind() == reflect.Ptr {\n\t\tft = ft.Elem()\n\t}\n\tif fd.Kind() == protoreflect.EnumKind {\n\t\t// Enums for nullable opaque types.\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn conv.PBValueOf(rv)\n\t\t}\n\t}\n\tswitch ft.Kind() {\n\tcase reflect.Bool:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Bool()\n\t\t\treturn protoreflect.ValueOfBool(*x)\n\t\t}\n\tcase reflect.Int32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int32()\n\t\t\treturn protoreflect.ValueOfInt32(*x)\n\t\t}\n\tcase reflect.Uint32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint32()\n\t\t\treturn protoreflect.ValueOfUint32(*x)\n\t\t}\n\tcase reflect.Int64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int64()\n\t\t\treturn protoreflect.ValueOfInt64(*x)\n\t\t}\n\tcase reflect.Uint64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint64()\n\t\t\treturn protoreflect.ValueOfUint64(*x)\n\t\t}\n\tcase reflect.Float32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float32()\n\t\t\treturn protoreflect.ValueOfFloat32(*x)\n\t\t}\n\tcase reflect.Float64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float64()\n\t\t\treturn protoreflect.ValueOfFloat64(*x)\n\t\t}\n\tcase reflect.String:\n\t\tif fd.Kind() == protoreflect.BytesKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).StringPtr()\n\t\t\t\tif *x == nil {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tif len(**x) == 0 {\n\t\t\t\t\treturn protoreflect.ValueOfBytes(nil)\n\t\t\t\t}\n\t\t\t\treturn protoreflect.ValueOfBytes([]byte(**x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).StringPtr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfString(**x)\n\t\t}\n\tcase reflect.Slice:\n\t\tif fd.Kind() == protoreflect.StringKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\t\treturn protoreflect.ValueOfString(string(*x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() || !mi.present(p, index) {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\treturn protoreflect.ValueOfBytes(*x)\n\t\t}\n\t}\n\tpanic(\"unexpected protobuf kind: \" + ft.Kind().String())\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype reflectMessageInfo struct {\n\tfields map[protoreflect.FieldNumber]*fieldInfo\n\toneofs map[protoreflect.Name]*oneofInfo\n\n\t// fieldTypes contains the zero value of an enum or message field.\n\t// For lists, it contains the element type.\n\t// For maps, it contains the entry value type.\n\tfieldTypes map[protoreflect.FieldNumber]any\n\n\t// denseFields is a subset of fields where:\n\t//\t0 < fieldDesc.Number() < len(denseFields)\n\t// It provides faster access to the fieldInfo, but may be incomplete.\n\tdenseFields []*fieldInfo\n\n\t// rangeInfos is a list of all fields (not belonging to a oneof) and oneofs.\n\trangeInfos []any // either *fieldInfo or *oneofInfo\n\n\tgetUnknown   func(pointer) protoreflect.RawFields\n\tsetUnknown   func(pointer, protoreflect.RawFields)\n\textensionMap func(pointer) *extensionMap\n\n\tnilMessage atomicNilMessage\n}\n\n// makeReflectFuncs generates the set of functions to support reflection.\nfunc (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) {\n\tmi.makeKnownFieldsFunc(si)\n\tmi.makeUnknownFieldsFunc(t, si)\n\tmi.makeExtensionFieldsFunc(t, si)\n\tmi.makeFieldTypes(si)\n}\n\n// makeKnownFieldsFunc generates functions for operations that can be performed\n// on each protobuf message field. It takes in a reflect.Type representing the\n// Go struct and matches message fields with struct fields.\n//\n// This code assumes that the struct is well-formed and panics if there are\n// any discrepancies.\nfunc (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) {\n\tmi.fields = map[protoreflect.FieldNumber]*fieldInfo{}\n\tmd := mi.Desc\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tvar fi fieldInfo\n\t\tswitch {\n\t\tcase fs.Type == nil:\n\t\t\tfi = fieldInfoForMissing(fd) // never occurs for officially generated message types\n\t\tcase isOneof:\n\t\t\tfi = fieldInfoForOneof(fd, fs, mi.Exporter, si.oneofWrappersByNumber[fd.Number()])\n\t\tcase fd.IsMap():\n\t\t\tfi = fieldInfoForMap(fd, fs, mi.Exporter)\n\t\tcase fd.IsList():\n\t\t\tfi = fieldInfoForList(fd, fs, mi.Exporter)\n\t\tcase fd.Message() != nil:\n\t\t\tfi = fieldInfoForMessage(fd, fs, mi.Exporter)\n\t\tdefault:\n\t\t\tfi = fieldInfoForScalar(fd, fs, mi.Exporter)\n\t\t}\n\t\tmi.fields[fd.Number()] = &fi\n\t}\n\n\tmi.oneofs = map[protoreflect.Name]*oneofInfo{}\n\tfor i := 0; i < md.Oneofs().Len(); i++ {\n\t\tod := md.Oneofs().Get(i)\n\t\tmi.oneofs[od.Name()] = makeOneofInfo(od, si, mi.Exporter)\n\t}\n\n\tmi.denseFields = make([]*fieldInfo, fds.Len()*2)\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tif fd := fds.Get(i); int(fd.Number()) < len(mi.denseFields) {\n\t\t\tmi.denseFields[fd.Number()] = mi.fields[fd.Number()]\n\t\t}\n\t}\n\n\tfor i := 0; i < fds.Len(); {\n\t\tfd := fds.Get(i)\n\t\tif od := fd.ContainingOneof(); od != nil && !od.IsSynthetic() {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.oneofs[od.Name()])\n\t\t\ti += od.Fields().Len()\n\t\t} else {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.fields[fd.Number()])\n\t\t\ti++\n\t\t}\n\t}\n\n\t// Introduce instability to iteration order, but keep it deterministic.\n\tif len(mi.rangeInfos) > 1 && detrand.Bool() {\n\t\ti := detrand.Intn(len(mi.rangeInfos) - 1)\n\t\tmi.rangeInfos[i], mi.rangeInfos[i+1] = mi.rangeInfos[i+1], mi.rangeInfos[i]\n\t}\n}\n\nfunc (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type, si structInfo) {\n\tswitch {\n\tcase si.unknownOffset.IsValid() && si.unknownType == unknownFieldsAType:\n\t\t// Handle as []byte.\n\t\tmi.getUnknown = func(p pointer) protoreflect.RawFields {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn *p.Apply(mi.unknownOffset).Bytes()\n\t\t}\n\t\tmi.setUnknown = func(p pointer, b protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t\t*p.Apply(mi.unknownOffset).Bytes() = b\n\t\t}\n\tcase si.unknownOffset.IsValid() && si.unknownType == unknownFieldsBType:\n\t\t// Handle as *[]byte.\n\t\tmi.getUnknown = func(p pointer) protoreflect.RawFields {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\t\tif *bp == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn **bp\n\t\t}\n\t\tmi.setUnknown = func(p pointer, b protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\t\tif *bp == nil {\n\t\t\t\t*bp = new([]byte)\n\t\t\t}\n\t\t\t**bp = b\n\t\t}\n\tdefault:\n\t\tmi.getUnknown = func(pointer) protoreflect.RawFields {\n\t\t\treturn nil\n\t\t}\n\t\tmi.setUnknown = func(p pointer, _ protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type, si structInfo) {\n\tif si.extensionOffset.IsValid() {\n\t\tmi.extensionMap = func(p pointer) *extensionMap {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn (*extensionMap)(nil)\n\t\t\t}\n\t\t\tv := p.Apply(si.extensionOffset).AsValueOf(extensionFieldsType)\n\t\t\treturn (*extensionMap)(v.Interface().(*map[int32]ExtensionField))\n\t\t}\n\t} else {\n\t\tmi.extensionMap = func(pointer) *extensionMap {\n\t\t\treturn (*extensionMap)(nil)\n\t\t}\n\t}\n}\nfunc (mi *MessageInfo) makeFieldTypes(si structInfo) {\n\tmd := mi.Desc\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tvar ft reflect.Type\n\t\tfd := fds.Get(i)\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tvar isMessage bool\n\t\tswitch {\n\t\tcase fs.Type == nil:\n\t\t\tcontinue // never occurs for officially generated message types\n\t\tcase isOneof:\n\t\t\tif fd.Enum() != nil || fd.Message() != nil {\n\t\t\t\tft = si.oneofWrappersByNumber[fd.Number()].Field(0).Type\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Enum() != nil || fd.MapValue().Message() != nil {\n\t\t\t\tft = fs.Type.Elem()\n\t\t\t}\n\t\t\tisMessage = fd.MapValue().Message() != nil\n\t\tcase fd.IsList():\n\t\t\tif fd.Enum() != nil || fd.Message() != nil {\n\t\t\t\tft = fs.Type.Elem()\n\n\t\t\t\tif ft.Kind() == reflect.Slice {\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tisMessage = fd.Message() != nil\n\t\tcase fd.Enum() != nil:\n\t\t\tft = fs.Type\n\t\t\tif fd.HasPresence() && ft.Kind() == reflect.Ptr {\n\t\t\t\tft = ft.Elem()\n\t\t\t}\n\t\tcase fd.Message() != nil:\n\t\t\tft = fs.Type\n\t\t\tisMessage = true\n\t\t}\n\t\tif isMessage && ft != nil && ft.Kind() != reflect.Ptr {\n\t\t\tft = reflect.PtrTo(ft) // never occurs for officially generated message types\n\t\t}\n\t\tif ft != nil {\n\t\t\tif mi.fieldTypes == nil {\n\t\t\t\tmi.fieldTypes = make(map[protoreflect.FieldNumber]any)\n\t\t\t}\n\t\t\tmi.fieldTypes[fd.Number()] = reflect.Zero(ft).Interface()\n\t\t}\n\t}\n}\n\ntype extensionMap map[int32]ExtensionField\n\nfunc (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tif m != nil {\n\t\tfor _, x := range *m {\n\t\t\txd := x.Type().TypeDescriptor()\n\t\t\tv := x.Value()\n\t\t\tif xd.IsList() && v.List().Len() == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !f(xd, v) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\nfunc (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) {\n\tif m == nil {\n\t\treturn false\n\t}\n\tx, ok := (*m)[int32(xd.Number())]\n\tif !ok {\n\t\treturn false\n\t}\n\tif x.isUnexpandedLazy() {\n\t\t// Avoid calling x.Value(), which triggers a lazy unmarshal.\n\t\treturn true\n\t}\n\tswitch {\n\tcase xd.IsList():\n\t\treturn x.Value().List().Len() > 0\n\tcase xd.IsMap():\n\t\treturn x.Value().Map().Len() > 0\n\t}\n\treturn true\n}\nfunc (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) {\n\tdelete(*m, int32(xd.Number()))\n}\nfunc (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {\n\tif m != nil {\n\t\tif x, ok := (*m)[int32(xd.Number())]; ok {\n\t\t\treturn x.Value()\n\t\t}\n\t}\n\treturn xd.Type().Zero()\n}\nfunc (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) {\n\txt := xd.Type()\n\tisValid := true\n\tswitch {\n\tcase !xt.IsValidValue(v):\n\t\tisValid = false\n\tcase xd.IsList():\n\t\tisValid = v.List().IsValid()\n\tcase xd.IsMap():\n\t\tisValid = v.Map().IsValid()\n\tcase xd.Message() != nil:\n\t\tisValid = v.Message().IsValid()\n\t}\n\tif !isValid {\n\t\tpanic(fmt.Sprintf(\"%v: assigning invalid value\", xd.FullName()))\n\t}\n\n\tif *m == nil {\n\t\t*m = make(map[int32]ExtensionField)\n\t}\n\tvar x ExtensionField\n\tx.Set(xt, v)\n\t(*m)[int32(xd.Number())] = x\n}\nfunc (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {\n\tif xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() {\n\t\tpanic(\"invalid Mutable on field with non-composite type\")\n\t}\n\tif x, ok := (*m)[int32(xd.Number())]; ok {\n\t\treturn x.Value()\n\t}\n\tv := xd.Type().New()\n\tm.Set(xd, v)\n\treturn v\n}\n\n// MessageState is a data structure that is nested as the first field in a\n// concrete message. It provides a way to implement the ProtoReflect method\n// in an allocation-free way without needing to have a shadow Go type generated\n// for every message type. This technique only works using unsafe.\n//\n// Example generated code:\n//\n//\ttype M struct {\n//\t\tstate protoimpl.MessageState\n//\n//\t\tField1 int32\n//\t\tField2 string\n//\t\tField3 *BarMessage\n//\t\t...\n//\t}\n//\n//\tfunc (m *M) ProtoReflect() protoreflect.Message {\n//\t\tmi := &file_fizz_buzz_proto_msgInfos[5]\n//\t\tif protoimpl.UnsafeEnabled && m != nil {\n//\t\t\tms := protoimpl.X.MessageStateOf(Pointer(m))\n//\t\t\tif ms.LoadMessageInfo() == nil {\n//\t\t\t\tms.StoreMessageInfo(mi)\n//\t\t\t}\n//\t\t\treturn ms\n//\t\t}\n//\t\treturn mi.MessageOf(m)\n//\t}\n//\n// The MessageState type holds a *MessageInfo, which must be atomically set to\n// the message info associated with a given message instance.\n// By unsafely converting a *M into a *MessageState, the MessageState object\n// has access to all the information needed to implement protobuf reflection.\n// It has access to the message info as its first field, and a pointer to the\n// MessageState is identical to a pointer to the concrete message value.\n//\n// Requirements:\n//   - The type M must implement protoreflect.ProtoMessage.\n//   - The address of m must not be nil.\n//   - The address of m and the address of m.state must be equal,\n//     even though they are different Go types.\ntype MessageState struct {\n\tpragma.NoUnkeyedLiterals\n\tpragma.DoNotCompare\n\tpragma.DoNotCopy\n\n\tatomicMessageInfo *MessageInfo\n}\n\ntype messageState MessageState\n\nvar (\n\t_ protoreflect.Message = (*messageState)(nil)\n\t_ unwrapper            = (*messageState)(nil)\n)\n\n// messageDataType is a tuple of a pointer to the message data and\n// a pointer to the message type. It is a generalized way of providing a\n// reflective view over a message instance. The disadvantage of this approach\n// is the need to allocate this tuple of 16B.\ntype messageDataType struct {\n\tp  pointer\n\tmi *MessageInfo\n}\n\ntype (\n\tmessageReflectWrapper messageDataType\n\tmessageIfaceWrapper   messageDataType\n)\n\nvar (\n\t_ protoreflect.Message      = (*messageReflectWrapper)(nil)\n\t_ unwrapper                 = (*messageReflectWrapper)(nil)\n\t_ protoreflect.ProtoMessage = (*messageIfaceWrapper)(nil)\n\t_ unwrapper                 = (*messageIfaceWrapper)(nil)\n)\n\n// MessageOf returns a reflective view over a message. The input must be a\n// pointer to a named Go struct. If the provided type has a ProtoReflect method,\n// it must be implemented by calling this method.\nfunc (mi *MessageInfo) MessageOf(m any) protoreflect.Message {\n\tif reflect.TypeOf(m) != mi.GoReflectType {\n\t\tpanic(fmt.Sprintf(\"type mismatch: got %T, want %v\", m, mi.GoReflectType))\n\t}\n\tp := pointerOfIface(m)\n\tif p.IsNil() {\n\t\treturn mi.nilMessage.Init(mi)\n\t}\n\treturn &messageReflectWrapper{p, mi}\n}\n\nfunc (m *messageReflectWrapper) pointer() pointer          { return m.p }\nfunc (m *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi }\n\n// Reset implements the v1 proto.Message.Reset method.\nfunc (m *messageIfaceWrapper) Reset() {\n\tif mr, ok := m.protoUnwrap().(interface{ Reset() }); ok {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\trv := reflect.ValueOf(m.protoUnwrap())\n\tif rv.Kind() == reflect.Ptr && !rv.IsNil() {\n\t\trv.Elem().Set(reflect.Zero(rv.Type().Elem()))\n\t}\n}\nfunc (m *messageIfaceWrapper) ProtoReflect() protoreflect.Message {\n\treturn (*messageReflectWrapper)(m)\n}\nfunc (m *messageIfaceWrapper) protoUnwrap() any {\n\treturn m.p.AsIfaceOf(m.mi.GoReflectType.Elem())\n}\n\n// checkField verifies that the provided field descriptor is valid.\n// Exactly one of the returned values is populated.\nfunc (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) {\n\tvar fi *fieldInfo\n\tif n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) {\n\t\tfi = mi.denseFields[n]\n\t} else {\n\t\tfi = mi.fields[n]\n\t}\n\tif fi != nil {\n\t\tif fi.fieldDesc != fd {\n\t\t\tif got, want := fd.FullName(), fi.fieldDesc.FullName(); got != want {\n\t\t\t\tpanic(fmt.Sprintf(\"mismatching field: got %v, want %v\", got, want))\n\t\t\t}\n\t\t\tpanic(fmt.Sprintf(\"mismatching field: %v\", fd.FullName()))\n\t\t}\n\t\treturn fi, nil\n\t}\n\n\tif fd.IsExtension() {\n\t\tif got, want := fd.ContainingMessage().FullName(), mi.Desc.FullName(); got != want {\n\t\t\t// TODO: Should this be exact containing message descriptor match?\n\t\t\tpanic(fmt.Sprintf(\"extension %v has mismatching containing message: got %v, want %v\", fd.FullName(), got, want))\n\t\t}\n\t\tif !mi.Desc.ExtensionRanges().Has(fd.Number()) {\n\t\t\tpanic(fmt.Sprintf(\"extension %v extends %v outside the extension range\", fd.FullName(), mi.Desc.FullName()))\n\t\t}\n\t\txtd, ok := fd.(protoreflect.ExtensionTypeDescriptor)\n\t\tif !ok {\n\t\t\tpanic(fmt.Sprintf(\"extension %v does not implement protoreflect.ExtensionTypeDescriptor\", fd.FullName()))\n\t\t}\n\t\treturn nil, xtd\n\t}\n\tpanic(fmt.Sprintf(\"field %v is invalid\", fd.FullName()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype fieldInfo struct {\n\tfieldDesc protoreflect.FieldDescriptor\n\n\t// These fields are used for protobuf reflection support.\n\thas        func(pointer) bool\n\tclear      func(pointer)\n\tget        func(pointer) protoreflect.Value\n\tset        func(pointer, protoreflect.Value)\n\tmutable    func(pointer) protoreflect.Value\n\tnewMessage func() protoreflect.Message\n\tnewField   func() protoreflect.Value\n}\n\nfunc fieldInfoForMissing(fd protoreflect.FieldDescriptor) fieldInfo {\n\t// This never occurs for generated message types.\n\t// It implies that a hand-crafted type has missing Go fields\n\t// for specific protobuf message fields.\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\treturn false\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\treturn fd.Default()\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\tif v := fd.Default(); v.IsValid() {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t}\n}\n\nfunc fieldInfoForOneof(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Interface {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want interface kind\", fd.FullName(), ft))\n\t}\n\tif ot.Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want struct kind\", fd.FullName(), ot))\n\t}\n\tif !reflect.PtrTo(ot).Implements(ft) {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: %v does not implement %v\", fd.FullName(), ot, ft))\n\t}\n\tconv := NewConverter(ot.Field(0).Type, fd)\n\tisMessage := fd.Message() != nil\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs)\n\treturn fieldInfo{\n\t\t// NOTE: The logic below intentionally assumes that oneof fields are\n\t\t// well-formatted. That is, the oneof interface never contains a\n\t\t// typed nil pointer to one of the wrapper structs.\n\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot {\n\t\t\t\t// NOTE: We intentionally don't check for rv.Elem().IsNil()\n\t\t\t\t// so that (*OneofWrapperType)(nil) gets cleared to nil.\n\t\t\t\treturn\n\t\t\t}\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\trv.Set(reflect.New(ot))\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tif !isMessage {\n\t\t\t\tpanic(fmt.Sprintf(\"field %v with invalid Mutable call on field with non-composite type\", fd.FullName()))\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\trv.Set(reflect.New(ot))\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\tif rv.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\trv.Set(conv.GoValueOf(protoreflect.ValueOfMessage(conv.New().Message())))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\treturn conv.New().Message()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForMap(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want map kind\", fd.FullName(), ft))\n\t}\n\tconv := NewConverter(ft, fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"map field %v cannot be set with read-only value\", fd.FullName()))\n\t\t\t}\n\t\t\trv.Set(pv)\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif v.IsNil() {\n\t\t\t\tv.Set(reflect.MakeMap(fs.Type))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(v)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForList(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want slice kind\", fd.FullName(), ft))\n\t}\n\tconv := NewConverter(reflect.PtrTo(ft), fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type)\n\t\t\tif rv.Elem().Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"list field %v cannot be set with read-only value\", fd.FullName()))\n\t\t\t}\n\t\t\trv.Set(pv.Elem())\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tv := p.Apply(fieldOffset).AsValueOf(fs.Type)\n\t\t\treturn conv.PBValueOf(v)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nvar (\n\tnilBytes   = reflect.ValueOf([]byte(nil))\n\temptyBytes = reflect.ValueOf([]byte{})\n)\n\nfunc fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tnullable := fd.HasPresence()\n\tisBytes := ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8\n\tvar getter func(p pointer) protoreflect.Value\n\tif nullable {\n\t\tif ft.Kind() != reflect.Ptr && ft.Kind() != reflect.Slice {\n\t\t\t// This never occurs for generated message types.\n\t\t\t// Despite the protobuf type system specifying presence,\n\t\t\t// the Go field type cannot represent it.\n\t\t\tnullable = false\n\t\t}\n\t\tif ft.Kind() == reflect.Ptr {\n\t\t\tft = ft.Elem()\n\t\t}\n\t}\n\tconv := NewConverter(ft, fd)\n\tfieldOffset := offsetOf(fs)\n\n\t// Generate specialized getter functions to avoid going through reflect.Value\n\tif nullable {\n\t\tgetter = getterForNullableScalar(fd, fs, conv, fieldOffset)\n\t} else {\n\t\tgetter = getterForDirectScalar(fd, fs, conv, fieldOffset)\n\t}\n\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif nullable {\n\t\t\t\treturn !p.Apply(fieldOffset).Elem().IsNil()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tswitch rv.Kind() {\n\t\t\tcase reflect.Bool:\n\t\t\t\treturn rv.Bool()\n\t\t\tcase reflect.Int32, reflect.Int64:\n\t\t\t\treturn rv.Int() != 0\n\t\t\tcase reflect.Uint32, reflect.Uint64:\n\t\t\t\treturn rv.Uint() != 0\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\treturn rv.Float() != 0 || math.Signbit(rv.Float())\n\t\t\tcase reflect.String, reflect.Slice:\n\t\t\t\treturn rv.Len() > 0\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"field %v has invalid type: %v\", fd.FullName(), rv.Type())) // should never happen\n\t\t\t}\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: getter,\n\t\t// TODO: Implement unsafe fast path for set?\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif nullable && rv.Kind() == reflect.Ptr {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\trv.Set(reflect.New(ft))\n\t\t\t\t}\n\t\t\t\trv = rv.Elem()\n\t\t\t}\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t\tif isBytes && rv.Len() == 0 {\n\t\t\t\tif nullable {\n\t\t\t\t\trv.Set(emptyBytes) // preserve presence\n\t\t\t\t} else {\n\t\t\t\t\trv.Set(nilBytes) // do not preserve presence\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tconv := NewConverter(ft, fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif fs.Type.Kind() != reflect.Ptr {\n\t\t\t\treturn !rv.IsZero()\n\t\t\t}\n\t\t\treturn !rv.IsNil()\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t\tif fs.Type.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"field %v has invalid nil pointer\", fd.FullName()))\n\t\t\t}\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif fs.Type.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\trv.Set(conv.GoValueOf(conv.New()))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\treturn conv.New().Message()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\ntype oneofInfo struct {\n\toneofDesc protoreflect.OneofDescriptor\n\twhich     func(pointer) protoreflect.FieldNumber\n}\n\nfunc makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) *oneofInfo {\n\toi := &oneofInfo{oneofDesc: od}\n\tif od.IsSynthetic() {\n\t\tfs := si.fieldsByNumber[od.Fields().Get(0).Number()]\n\t\tfieldOffset := offsetOf(fs)\n\t\toi.which = func(p pointer) protoreflect.FieldNumber {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() { // valid on either *T or []byte\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn od.Fields().Get(0).Number()\n\t\t}\n\t} else {\n\t\tfs := si.oneofsByName[od.Name()]\n\t\tfieldOffset := offsetOf(fs)\n\t\toi.which = func(p pointer) protoreflect.FieldNumber {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv = rv.Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn si.oneofWrappersByType[rv.Type().Elem()]\n\t\t}\n\t}\n\treturn oi\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect_field_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc getterForNullableScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, conv Converter, fieldOffset offset) func(p pointer) protoreflect.Value {\n\tft := fs.Type\n\tif ft.Kind() == reflect.Ptr {\n\t\tft = ft.Elem()\n\t}\n\tif fd.Kind() == protoreflect.EnumKind {\n\t\telemType := fs.Type.Elem()\n\t\t// Enums for nullable types.\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).Elem().AsValueOf(elemType)\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv.Elem())\n\t\t}\n\t}\n\tswitch ft.Kind() {\n\tcase reflect.Bool:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).BoolPtr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfBool(**x)\n\t\t}\n\tcase reflect.Int32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int32Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfInt32(**x)\n\t\t}\n\tcase reflect.Uint32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint32Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfUint32(**x)\n\t\t}\n\tcase reflect.Int64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int64Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfInt64(**x)\n\t\t}\n\tcase reflect.Uint64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint64Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfUint64(**x)\n\t\t}\n\tcase reflect.Float32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float32Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfFloat32(**x)\n\t\t}\n\tcase reflect.Float64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float64Ptr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfFloat64(**x)\n\t\t}\n\tcase reflect.String:\n\t\tif fd.Kind() == protoreflect.BytesKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).StringPtr()\n\t\t\t\tif *x == nil {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tif len(**x) == 0 {\n\t\t\t\t\treturn protoreflect.ValueOfBytes(nil)\n\t\t\t\t}\n\t\t\t\treturn protoreflect.ValueOfBytes([]byte(**x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).StringPtr()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfString(**x)\n\t\t}\n\tcase reflect.Slice:\n\t\tif fd.Kind() == protoreflect.StringKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\t\tif len(*x) == 0 {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\treturn protoreflect.ValueOfString(string(*x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\tif *x == nil {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfBytes(*x)\n\t\t}\n\t}\n\tpanic(\"unexpected protobuf kind: \" + ft.Kind().String())\n}\n\nfunc getterForDirectScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, conv Converter, fieldOffset offset) func(p pointer) protoreflect.Value {\n\tft := fs.Type\n\tif fd.Kind() == protoreflect.EnumKind {\n\t\t// Enums for non nullable types.\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn conv.PBValueOf(rv)\n\t\t}\n\t}\n\tswitch ft.Kind() {\n\tcase reflect.Bool:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Bool()\n\t\t\treturn protoreflect.ValueOfBool(*x)\n\t\t}\n\tcase reflect.Int32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int32()\n\t\t\treturn protoreflect.ValueOfInt32(*x)\n\t\t}\n\tcase reflect.Uint32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint32()\n\t\t\treturn protoreflect.ValueOfUint32(*x)\n\t\t}\n\tcase reflect.Int64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Int64()\n\t\t\treturn protoreflect.ValueOfInt64(*x)\n\t\t}\n\tcase reflect.Uint64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Uint64()\n\t\t\treturn protoreflect.ValueOfUint64(*x)\n\t\t}\n\tcase reflect.Float32:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float32()\n\t\t\treturn protoreflect.ValueOfFloat32(*x)\n\t\t}\n\tcase reflect.Float64:\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Float64()\n\t\t\treturn protoreflect.ValueOfFloat64(*x)\n\t\t}\n\tcase reflect.String:\n\t\tif fd.Kind() == protoreflect.BytesKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).String()\n\t\t\t\tif len(*x) == 0 {\n\t\t\t\t\treturn protoreflect.ValueOfBytes(nil)\n\t\t\t\t}\n\t\t\t\treturn protoreflect.ValueOfBytes([]byte(*x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).String()\n\t\t\treturn protoreflect.ValueOfString(*x)\n\t\t}\n\tcase reflect.Slice:\n\t\tif fd.Kind() == protoreflect.StringKind {\n\t\t\treturn func(p pointer) protoreflect.Value {\n\t\t\t\tif p.IsNil() {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\t\treturn protoreflect.ValueOfString(string(*x))\n\t\t\t}\n\t\t}\n\t\treturn func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\tx := p.Apply(fieldOffset).Bytes()\n\t\t\treturn protoreflect.ValueOfBytes(*x)\n\t\t}\n\t}\n\tpanic(\"unexpected protobuf kind: \" + ft.Kind().String())\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (m *messageState) Descriptor() protoreflect.MessageDescriptor {\n\treturn m.messageInfo().Desc\n}\nfunc (m *messageState) Type() protoreflect.MessageType {\n\treturn m.messageInfo()\n}\nfunc (m *messageState) New() protoreflect.Message {\n\treturn m.messageInfo().New()\n}\nfunc (m *messageState) Interface() protoreflect.ProtoMessage {\n\treturn m.protoUnwrap().(protoreflect.ProtoMessage)\n}\nfunc (m *messageState) protoUnwrap() any {\n\treturn m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())\n}\nfunc (m *messageState) ProtoMethods() *protoiface.Methods {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn &mi.methods\n}\n\n// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code\n// to be able to retrieve a v2 MessageInfo struct.\n//\n// WARNING: This method is exempt from the compatibility promise and\n// may be removed in the future without warning.\nfunc (m *messageState) ProtoMessageInfo() *MessageInfo {\n\treturn m.messageInfo()\n}\n\nfunc (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tfor _, ri := range mi.rangeInfos {\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\tif ri.has(m.pointer()) {\n\t\t\t\tif !f(ri.fieldDesc, ri.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\tcase *oneofInfo:\n\t\t\tif n := ri.which(m.pointer()); n > 0 {\n\t\t\t\tfi := mi.fields[n]\n\t\t\t\tif !f(fi.fieldDesc, fi.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmi.extensionMap(m.pointer()).Range(f)\n}\nfunc (m *messageState) Has(fd protoreflect.FieldDescriptor) bool {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.has(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Has(xd)\n\t}\n}\nfunc (m *messageState) Clear(fd protoreflect.FieldDescriptor) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.clear(m.pointer())\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Clear(xd)\n\t}\n}\nfunc (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.get(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Get(xd)\n\t}\n}\nfunc (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.set(m.pointer(), v)\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Set(xd, v)\n\t}\n}\nfunc (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.mutable(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Mutable(xd)\n\t}\n}\nfunc (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.newField()\n\t} else {\n\t\treturn xd.Type().New()\n\t}\n}\nfunc (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {\n\t\treturn od.Fields().ByNumber(oi.which(m.pointer()))\n\t}\n\tpanic(\"invalid oneof descriptor \" + string(od.FullName()) + \" for message \" + string(m.Descriptor().FullName()))\n}\nfunc (m *messageState) GetUnknown() protoreflect.RawFields {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn mi.getUnknown(m.pointer())\n}\nfunc (m *messageState) SetUnknown(b protoreflect.RawFields) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tmi.setUnknown(m.pointer(), b)\n}\nfunc (m *messageState) IsValid() bool {\n\treturn !m.pointer().IsNil()\n}\n\nfunc (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor {\n\treturn m.messageInfo().Desc\n}\nfunc (m *messageReflectWrapper) Type() protoreflect.MessageType {\n\treturn m.messageInfo()\n}\nfunc (m *messageReflectWrapper) New() protoreflect.Message {\n\treturn m.messageInfo().New()\n}\nfunc (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {\n\tif m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {\n\t\treturn m\n\t}\n\treturn (*messageIfaceWrapper)(m)\n}\nfunc (m *messageReflectWrapper) protoUnwrap() any {\n\treturn m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())\n}\nfunc (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn &mi.methods\n}\n\n// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code\n// to be able to retrieve a v2 MessageInfo struct.\n//\n// WARNING: This method is exempt from the compatibility promise and\n// may be removed in the future without warning.\nfunc (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo {\n\treturn m.messageInfo()\n}\n\nfunc (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tfor _, ri := range mi.rangeInfos {\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\tif ri.has(m.pointer()) {\n\t\t\t\tif !f(ri.fieldDesc, ri.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\tcase *oneofInfo:\n\t\t\tif n := ri.which(m.pointer()); n > 0 {\n\t\t\t\tfi := mi.fields[n]\n\t\t\t\tif !f(fi.fieldDesc, fi.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmi.extensionMap(m.pointer()).Range(f)\n}\nfunc (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.has(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Has(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.clear(m.pointer())\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Clear(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.get(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Get(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.set(m.pointer(), v)\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Set(xd, v)\n\t}\n}\nfunc (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.mutable(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Mutable(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.newField()\n\t} else {\n\t\treturn xd.Type().New()\n\t}\n}\nfunc (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {\n\t\treturn od.Fields().ByNumber(oi.which(m.pointer()))\n\t}\n\tpanic(\"invalid oneof descriptor \" + string(od.FullName()) + \" for message \" + string(m.Descriptor().FullName()))\n}\nfunc (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn mi.getUnknown(m.pointer())\n}\nfunc (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tmi.setUnknown(m.pointer(), b)\n}\nfunc (m *messageReflectWrapper) IsValid() bool {\n\treturn !m.pointer().IsNil()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/internal/protolazy\"\n)\n\nconst UnsafeEnabled = true\n\n// Pointer is an opaque pointer type.\ntype Pointer unsafe.Pointer\n\n// offset represents the offset to a struct field, accessible from a pointer.\n// The offset is the byte offset to the field from the start of the struct.\ntype offset uintptr\n\n// offsetOf returns a field offset for the struct field.\nfunc offsetOf(f reflect.StructField) offset {\n\treturn offset(f.Offset)\n}\n\n// IsValid reports whether the offset is valid.\nfunc (f offset) IsValid() bool { return f != invalidOffset }\n\n// invalidOffset is an invalid field offset.\nvar invalidOffset = ^offset(0)\n\n// zeroOffset is a noop when calling pointer.Apply.\nvar zeroOffset = offset(0)\n\n// pointer is a pointer to a message struct or field.\ntype pointer struct{ p unsafe.Pointer }\n\n// pointerOf returns p as a pointer.\nfunc pointerOf(p Pointer) pointer {\n\treturn pointer{p: unsafe.Pointer(p)}\n}\n\n// pointerOfValue returns v as a pointer.\nfunc pointerOfValue(v reflect.Value) pointer {\n\treturn pointer{p: unsafe.Pointer(v.Pointer())}\n}\n\n// pointerOfIface returns the pointer portion of an interface.\nfunc pointerOfIface(v any) pointer {\n\ttype ifaceHeader struct {\n\t\tType unsafe.Pointer\n\t\tData unsafe.Pointer\n\t}\n\treturn pointer{p: (*ifaceHeader)(unsafe.Pointer(&v)).Data}\n}\n\n// IsNil reports whether the pointer is nil.\nfunc (p pointer) IsNil() bool {\n\treturn p.p == nil\n}\n\n// Apply adds an offset to the pointer to derive a new pointer\n// to a specified field. The pointer must be valid and pointing at a struct.\nfunc (p pointer) Apply(f offset) pointer {\n\tif p.IsNil() {\n\t\tpanic(\"invalid nil pointer\")\n\t}\n\treturn pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))}\n}\n\n// AsValueOf treats p as a pointer to an object of type t and returns the value.\n// It is equivalent to reflect.ValueOf(p.AsIfaceOf(t))\nfunc (p pointer) AsValueOf(t reflect.Type) reflect.Value {\n\treturn reflect.NewAt(t, p.p)\n}\n\n// AsIfaceOf treats p as a pointer to an object of type t and returns the value.\n// It is equivalent to p.AsValueOf(t).Interface()\nfunc (p pointer) AsIfaceOf(t reflect.Type) any {\n\t// TODO: Use tricky unsafe magic to directly create ifaceHeader.\n\treturn p.AsValueOf(t).Interface()\n}\n\nfunc (p pointer) Bool() *bool                           { return (*bool)(p.p) }\nfunc (p pointer) BoolPtr() **bool                       { return (**bool)(p.p) }\nfunc (p pointer) BoolSlice() *[]bool                    { return (*[]bool)(p.p) }\nfunc (p pointer) Int32() *int32                         { return (*int32)(p.p) }\nfunc (p pointer) Int32Ptr() **int32                     { return (**int32)(p.p) }\nfunc (p pointer) Int32Slice() *[]int32                  { return (*[]int32)(p.p) }\nfunc (p pointer) Int64() *int64                         { return (*int64)(p.p) }\nfunc (p pointer) Int64Ptr() **int64                     { return (**int64)(p.p) }\nfunc (p pointer) Int64Slice() *[]int64                  { return (*[]int64)(p.p) }\nfunc (p pointer) Uint32() *uint32                       { return (*uint32)(p.p) }\nfunc (p pointer) Uint32Ptr() **uint32                   { return (**uint32)(p.p) }\nfunc (p pointer) Uint32Slice() *[]uint32                { return (*[]uint32)(p.p) }\nfunc (p pointer) Uint64() *uint64                       { return (*uint64)(p.p) }\nfunc (p pointer) Uint64Ptr() **uint64                   { return (**uint64)(p.p) }\nfunc (p pointer) Uint64Slice() *[]uint64                { return (*[]uint64)(p.p) }\nfunc (p pointer) Float32() *float32                     { return (*float32)(p.p) }\nfunc (p pointer) Float32Ptr() **float32                 { return (**float32)(p.p) }\nfunc (p pointer) Float32Slice() *[]float32              { return (*[]float32)(p.p) }\nfunc (p pointer) Float64() *float64                     { return (*float64)(p.p) }\nfunc (p pointer) Float64Ptr() **float64                 { return (**float64)(p.p) }\nfunc (p pointer) Float64Slice() *[]float64              { return (*[]float64)(p.p) }\nfunc (p pointer) String() *string                       { return (*string)(p.p) }\nfunc (p pointer) StringPtr() **string                   { return (**string)(p.p) }\nfunc (p pointer) StringSlice() *[]string                { return (*[]string)(p.p) }\nfunc (p pointer) Bytes() *[]byte                        { return (*[]byte)(p.p) }\nfunc (p pointer) BytesPtr() **[]byte                    { return (**[]byte)(p.p) }\nfunc (p pointer) BytesSlice() *[][]byte                 { return (*[][]byte)(p.p) }\nfunc (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) }\nfunc (p pointer) LazyInfoPtr() **protolazy.XXX_lazyUnmarshalInfo {\n\treturn (**protolazy.XXX_lazyUnmarshalInfo)(p.p)\n}\n\nfunc (p pointer) PresenceInfo() presence {\n\treturn presence{P: p.p}\n}\n\nfunc (p pointer) Elem() pointer {\n\treturn pointer{p: *(*unsafe.Pointer)(p.p)}\n}\n\n// PointerSlice loads []*T from p as a []pointer.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) PointerSlice() []pointer {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We load it as []pointer.\n\treturn *(*[]pointer)(p.p)\n}\n\n// AppendPointerSlice appends v to p, which must be a []*T.\nfunc (p pointer) AppendPointerSlice(v pointer) {\n\t*(*[]pointer)(p.p) = append(*(*[]pointer)(p.p), v)\n}\n\n// SetPointer sets *p to v.\nfunc (p pointer) SetPointer(v pointer) {\n\t*(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p)\n}\n\nfunc (p pointer) growBoolSlice(addCap int) {\n\tsp := p.BoolSlice()\n\ts := make([]bool, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growInt32Slice(addCap int) {\n\tsp := p.Int32Slice()\n\ts := make([]int32, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growUint32Slice(addCap int) {\n\tp.growInt32Slice(addCap)\n}\n\nfunc (p pointer) growFloat32Slice(addCap int) {\n\tp.growInt32Slice(addCap)\n}\n\nfunc (p pointer) growInt64Slice(addCap int) {\n\tsp := p.Int64Slice()\n\ts := make([]int64, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growUint64Slice(addCap int) {\n\tp.growInt64Slice(addCap)\n}\n\nfunc (p pointer) growFloat64Slice(addCap int) {\n\tp.growInt64Slice(addCap)\n}\n\n// Static check that MessageState does not exceed the size of a pointer.\nconst _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{}))\n\nfunc (Export) MessageStateOf(p Pointer) *messageState {\n\t// Super-tricky - see documentation on MessageState.\n\treturn (*messageState)(unsafe.Pointer(p))\n}\nfunc (ms *messageState) pointer() pointer {\n\t// Super-tricky - see documentation on MessageState.\n\treturn pointer{p: unsafe.Pointer(ms)}\n}\nfunc (ms *messageState) messageInfo() *MessageInfo {\n\tmi := ms.LoadMessageInfo()\n\tif mi == nil {\n\t\tpanic(\"invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct\")\n\t}\n\treturn mi\n}\nfunc (ms *messageState) LoadMessageInfo() *MessageInfo {\n\treturn (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo))))\n}\nfunc (ms *messageState) StoreMessageInfo(mi *MessageInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)), unsafe.Pointer(mi))\n}\n\ntype atomicNilMessage struct{ p unsafe.Pointer } // p is a *messageReflectWrapper\n\nfunc (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper {\n\tif p := atomic.LoadPointer(&m.p); p != nil {\n\t\treturn (*messageReflectWrapper)(p)\n\t}\n\tw := &messageReflectWrapper{mi: mi}\n\tatomic.CompareAndSwapPointer(&m.p, nil, (unsafe.Pointer)(w))\n\treturn (*messageReflectWrapper)(atomic.LoadPointer(&m.p))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe_opaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nfunc (p pointer) AtomicGetPointer() pointer {\n\treturn pointer{p: atomic.LoadPointer((*unsafe.Pointer)(p.p))}\n}\n\nfunc (p pointer) AtomicSetPointer(v pointer) {\n\tatomic.StorePointer((*unsafe.Pointer)(p.p), v.p)\n}\n\nfunc (p pointer) AtomicSetNilPointer() {\n\tatomic.StorePointer((*unsafe.Pointer)(p.p), unsafe.Pointer(nil))\n}\n\nfunc (p pointer) AtomicSetPointerIfNil(v pointer) pointer {\n\tif atomic.CompareAndSwapPointer((*unsafe.Pointer)(p.p), unsafe.Pointer(nil), v.p) {\n\t\treturn v\n\t}\n\treturn pointer{p: atomic.LoadPointer((*unsafe.Pointer)(p.p))}\n}\n\ntype atomicV1MessageInfo struct{ p Pointer }\n\nfunc (mi *atomicV1MessageInfo) Get() Pointer {\n\treturn Pointer(atomic.LoadPointer((*unsafe.Pointer)(&mi.p)))\n}\n\nfunc (mi *atomicV1MessageInfo) SetIfNil(p Pointer) Pointer {\n\tif atomic.CompareAndSwapPointer((*unsafe.Pointer)(&mi.p), nil, unsafe.Pointer(p)) {\n\t\treturn p\n\t}\n\treturn mi.Get()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/presence.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\n// presenceSize represents the size of a presence set, which should be the largest index of the set+1\ntype presenceSize uint32\n\n// presence is the internal representation of the bitmap array in a generated protobuf\ntype presence struct {\n\t// This is a pointer to the beginning of an array of uint32\n\tP unsafe.Pointer\n}\n\nfunc (p presence) toElem(num uint32) (ret *uint32) {\n\tconst (\n\t\tbitsPerByte = 8\n\t\tsiz         = unsafe.Sizeof(*ret)\n\t)\n\t// p.P points to an array of uint32, num is the bit in this array that the\n\t// caller wants to check/manipulate. Calculate the index in the array that\n\t// contains this specific bit. E.g.: 76 / 32 = 2 (integer division).\n\toffset := uintptr(num) / (siz * bitsPerByte) * siz\n\treturn (*uint32)(unsafe.Pointer(uintptr(p.P) + offset))\n}\n\n// Present checks for the presence of a specific field number in a presence set.\nfunc (p presence) Present(num uint32) bool {\n\treturn Export{}.Present(p.toElem(num), num)\n}\n\n// SetPresent adds presence for a specific field number in a presence set.\nfunc (p presence) SetPresent(num uint32, size presenceSize) {\n\tExport{}.SetPresent(p.toElem(num), num, uint32(size))\n}\n\n// SetPresentUnatomic adds presence for a specific field number in a presence set without using\n// atomic operations. Only to be called during unmarshaling.\nfunc (p presence) SetPresentUnatomic(num uint32, size presenceSize) {\n\tExport{}.SetPresentNonAtomic(p.toElem(num), num, uint32(size))\n}\n\n// ClearPresent removes presence for a specific field number in a presence set.\nfunc (p presence) ClearPresent(num uint32) {\n\tExport{}.ClearPresent(p.toElem(num), num)\n}\n\n// LoadPresenceCache (together with PresentInCache) allows for a\n// cached version of checking for presence without re-reading the word\n// for every field. It is optimized for efficiency and assumes no\n// simltaneous mutation of the presence set (or at least does not have\n// a problem with simultaneous mutation giving inconsistent results).\nfunc (p presence) LoadPresenceCache() (current uint32) {\n\tif p.P == nil {\n\t\treturn 0\n\t}\n\treturn atomic.LoadUint32((*uint32)(p.P))\n}\n\n// PresentInCache reads presence from a cached word in the presence\n// bitmap. It caches up a new word if the bit is outside the\n// word. This is for really fast iteration through bitmaps in cases\n// where we either know that the bitmap will not be altered, or we\n// don't care about inconsistencies caused by simultaneous writes.\nfunc (p presence) PresentInCache(num uint32, cachedElement *uint32, current *uint32) bool {\n\tif num/32 != *cachedElement {\n\t\to := uintptr(num/32) * unsafe.Sizeof(uint32(0))\n\t\tq := (*uint32)(unsafe.Pointer(uintptr(p.P) + o))\n\t\t*current = atomic.LoadUint32(q)\n\t\t*cachedElement = num / 32\n\t}\n\treturn (*current & (1 << (num % 32))) > 0\n}\n\n// AnyPresent checks if any field is marked as present in the bitmap.\nfunc (p presence) AnyPresent(size presenceSize) bool {\n\tn := uintptr((size + 31) / 32)\n\tfor j := uintptr(0); j < n; j++ {\n\t\to := j * unsafe.Sizeof(uint32(0))\n\t\tq := (*uint32)(unsafe.Pointer(uintptr(p.P) + o))\n\t\tb := atomic.LoadUint32(q)\n\t\tif b > 0 {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// toRaceDetectData finds the preceding RaceDetectHookData in a\n// message by using pointer arithmetic. As the type of the presence\n// set (bitmap) varies with the number of fields in the protobuf, we\n// can not have a struct type containing the array and the\n// RaceDetectHookData.  instead the RaceDetectHookData is placed\n// immediately before the bitmap array, and we find it by walking\n// backwards in the struct.\n//\n// This method is only called from the race-detect version of the code,\n// so RaceDetectHookData is never an empty struct.\nfunc (p presence) toRaceDetectData() *RaceDetectHookData {\n\tvar template struct {\n\t\td RaceDetectHookData\n\t\ta [1]uint32\n\t}\n\to := (uintptr(unsafe.Pointer(&template.a)) - uintptr(unsafe.Pointer(&template.d)))\n\treturn (*RaceDetectHookData)(unsafe.Pointer(uintptr(p.P) - o))\n}\n\nfunc atomicLoadShadowPresence(p **[]byte) *[]byte {\n\treturn (*[]byte)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreShadowPresence(p **[]byte, v *[]byte) {\n\tatomic.CompareAndSwapPointer((*unsafe.Pointer)(unsafe.Pointer(p)), nil, unsafe.Pointer(v))\n}\n\n// findPointerToRaceDetectData finds the preceding RaceDetectHookData\n// in a message by using pointer arithmetic. For the methods called\n// directy from generated code, we don't have a pointer to the\n// beginning of the presence set, but a pointer inside the array. As\n// we know the index of the bit we're manipulating (num), we can\n// calculate which element of the array ptr is pointing to. With that\n// information we find the preceding RaceDetectHookData and can\n// manipulate the shadow bitmap.\n//\n// This method is only called from the race-detect version of the\n// code, so RaceDetectHookData is never an empty struct.\nfunc findPointerToRaceDetectData(ptr *uint32, num uint32) *RaceDetectHookData {\n\tvar template struct {\n\t\td RaceDetectHookData\n\t\ta [1]uint32\n\t}\n\to := (uintptr(unsafe.Pointer(&template.a)) - uintptr(unsafe.Pointer(&template.d))) + uintptr(num/32)*unsafe.Sizeof(uint32(0))\n\treturn (*RaceDetectHookData)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) - o))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/validate.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"math/bits\"\n\t\"reflect\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// ValidationStatus is the result of validating the wire-format encoding of a message.\ntype ValidationStatus int\n\nconst (\n\t// ValidationUnknown indicates that unmarshaling the message might succeed or fail.\n\t// The validator was unable to render a judgement.\n\t//\n\t// The only causes of this status are an aberrant message type appearing somewhere\n\t// in the message or a failure in the extension resolver.\n\tValidationUnknown ValidationStatus = iota + 1\n\n\t// ValidationInvalid indicates that unmarshaling the message will fail.\n\tValidationInvalid\n\n\t// ValidationValid indicates that unmarshaling the message will succeed.\n\tValidationValid\n\n\t// ValidationWrongWireType indicates that a validated field does not have\n\t// the expected wire type.\n\tValidationWrongWireType\n)\n\nfunc (v ValidationStatus) String() string {\n\tswitch v {\n\tcase ValidationUnknown:\n\t\treturn \"ValidationUnknown\"\n\tcase ValidationInvalid:\n\t\treturn \"ValidationInvalid\"\n\tcase ValidationValid:\n\t\treturn \"ValidationValid\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"ValidationStatus(%d)\", int(v))\n\t}\n}\n\n// Validate determines whether the contents of the buffer are a valid wire encoding\n// of the message type.\n//\n// This function is exposed for testing.\nfunc Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out protoiface.UnmarshalOutput, _ ValidationStatus) {\n\tmi, ok := mt.(*MessageInfo)\n\tif !ok {\n\t\treturn out, ValidationUnknown\n\t}\n\tif in.Resolver == nil {\n\t\tin.Resolver = protoregistry.GlobalTypes\n\t}\n\to, st := mi.validate(in.Buf, 0, unmarshalOptions{\n\t\tflags:    in.Flags,\n\t\tresolver: in.Resolver,\n\t})\n\tif o.initialized {\n\t\tout.Flags |= protoiface.UnmarshalInitialized\n\t}\n\treturn out, st\n}\n\ntype validationInfo struct {\n\tmi               *MessageInfo\n\ttyp              validationType\n\tkeyType, valType validationType\n\n\t// For non-required fields, requiredBit is 0.\n\t//\n\t// For required fields, requiredBit's nth bit is set, where n is a\n\t// unique index in the range [0, MessageInfo.numRequiredFields).\n\t//\n\t// If there are more than 64 required fields, requiredBit is 0.\n\trequiredBit uint64\n}\n\ntype validationType uint8\n\nconst (\n\tvalidationTypeOther validationType = iota\n\tvalidationTypeMessage\n\tvalidationTypeGroup\n\tvalidationTypeMap\n\tvalidationTypeRepeatedVarint\n\tvalidationTypeRepeatedFixed32\n\tvalidationTypeRepeatedFixed64\n\tvalidationTypeVarint\n\tvalidationTypeFixed32\n\tvalidationTypeFixed64\n\tvalidationTypeBytes\n\tvalidationTypeUTF8String\n\tvalidationTypeMessageSetItem\n)\n\nfunc newFieldValidationInfo(mi *MessageInfo, si structInfo, fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo {\n\tvar vi validationInfo\n\tswitch {\n\tcase fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\t\t\tif ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {\n\t\t\t\tvi.mi = getMessageInfo(ot.Field(0).Type)\n\t\t\t}\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\t\t\tif ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {\n\t\t\t\tvi.mi = getMessageInfo(ot.Field(0).Type)\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tvi = newValidationInfo(fd, ft)\n\t}\n\tif fd.Cardinality() == protoreflect.Required {\n\t\t// Avoid overflow. The required field check is done with a 64-bit mask, with\n\t\t// any message containing more than 64 required fields always reported as\n\t\t// potentially uninitialized, so it is not important to get a precise count\n\t\t// of the required fields past 64.\n\t\tif mi.numRequiredFields < math.MaxUint8 {\n\t\t\tmi.numRequiredFields++\n\t\t\tvi.requiredBit = 1 << (mi.numRequiredFields - 1)\n\t\t}\n\t}\n\treturn vi\n}\n\nfunc newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo {\n\tvar vi validationInfo\n\tswitch {\n\tcase fd.IsList():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\n\t\t\tif ft.Kind() == reflect.Ptr {\n\t\t\t\t// Repeated opaque message fields are *[]*T.\n\t\t\t\tft = ft.Elem()\n\t\t\t}\n\n\t\t\tif ft.Kind() == reflect.Slice {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\n\t\t\tif ft.Kind() == reflect.Ptr {\n\t\t\t\t// Repeated opaque message fields are *[]*T.\n\t\t\t\tft = ft.Elem()\n\t\t\t}\n\n\t\t\tif ft.Kind() == reflect.Slice {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tvi.typ = validationTypeBytes\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\tdefault:\n\t\t\tswitch wireTypes[fd.Kind()] {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tvi.typ = validationTypeRepeatedVarint\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tvi.typ = validationTypeRepeatedFixed32\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tvi.typ = validationTypeRepeatedFixed64\n\t\t\t}\n\t\t}\n\tcase fd.IsMap():\n\t\tvi.typ = validationTypeMap\n\t\tswitch fd.MapKey().Kind() {\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.keyType = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\t\tswitch fd.MapValue().Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.valType = validationTypeMessage\n\t\t\tif ft.Kind() == reflect.Map {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.valType = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\t\t\tvi.mi = getMessageInfo(ft)\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\t\t\tvi.mi = getMessageInfo(ft)\n\t\tcase protoreflect.StringKind:\n\t\t\tvi.typ = validationTypeBytes\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\tdefault:\n\t\t\tswitch wireTypes[fd.Kind()] {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tvi.typ = validationTypeVarint\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tvi.typ = validationTypeFixed32\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tvi.typ = validationTypeFixed64\n\t\t\tcase protowire.BytesType:\n\t\t\t\tvi.typ = validationTypeBytes\n\t\t\t}\n\t\t}\n\t}\n\treturn vi\n}\n\nfunc (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, result ValidationStatus) {\n\tmi.init()\n\ttype validationState struct {\n\t\ttyp              validationType\n\t\tkeyType, valType validationType\n\t\tendGroup         protowire.Number\n\t\tmi               *MessageInfo\n\t\ttail             []byte\n\t\trequiredMask     uint64\n\t}\n\n\t// Pre-allocate some slots to avoid repeated slice reallocation.\n\tstates := make([]validationState, 0, 16)\n\tstates = append(states, validationState{\n\t\ttyp: validationTypeMessage,\n\t\tmi:  mi,\n\t})\n\tif groupTag > 0 {\n\t\tstates[0].typ = validationTypeGroup\n\t\tstates[0].endGroup = groupTag\n\t}\n\tinitialized := true\n\tstart := len(b)\nState:\n\tfor len(states) > 0 {\n\t\tst := &states[len(states)-1]\n\t\tfor len(b) > 0 {\n\t\t\t// Parse the tag (field number and wire type).\n\t\t\tvar tag uint64\n\t\t\tif b[0] < 0x80 {\n\t\t\t\ttag = uint64(b[0])\n\t\t\t\tb = b[1:]\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tb = b[2:]\n\t\t\t} else {\n\t\t\t\tvar n int\n\t\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[n:]\n\t\t\t}\n\t\t\tvar num protowire.Number\n\t\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t} else {\n\t\t\t\tnum = protowire.Number(n)\n\t\t\t}\n\t\t\twtyp := protowire.Type(tag & 7)\n\n\t\t\tif wtyp == protowire.EndGroupType {\n\t\t\t\tif st.endGroup == num {\n\t\t\t\t\tgoto PopState\n\t\t\t\t}\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t}\n\t\t\tvar vi validationInfo\n\t\t\tswitch {\n\t\t\tcase st.typ == validationTypeMap:\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.MapEntry_Key_field_number:\n\t\t\t\t\tvi.typ = st.keyType\n\t\t\t\tcase genid.MapEntry_Value_field_number:\n\t\t\t\t\tvi.typ = st.valType\n\t\t\t\t\tvi.mi = st.mi\n\t\t\t\t\tvi.requiredBit = 1\n\t\t\t\t}\n\t\t\tcase flags.ProtoLegacy && st.mi.isMessageSet:\n\t\t\t\tswitch num {\n\t\t\t\tcase messageset.FieldItem:\n\t\t\t\t\tvi.typ = validationTypeMessageSetItem\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tvar f *coderFieldInfo\n\t\t\t\tif int(num) < len(st.mi.denseCoderFields) {\n\t\t\t\t\tf = st.mi.denseCoderFields[num]\n\t\t\t\t} else {\n\t\t\t\t\tf = st.mi.coderFields[num]\n\t\t\t\t}\n\t\t\t\tif f != nil {\n\t\t\t\t\tvi = f.validation\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// Possible extension field.\n\t\t\t\t//\n\t\t\t\t// TODO: We should return ValidationUnknown when:\n\t\t\t\t//   1. The resolver is not frozen. (More extensions may be added to it.)\n\t\t\t\t//   2. The resolver returns preg.NotFound.\n\t\t\t\t// In this case, a type added to the resolver in the future could cause\n\t\t\t\t// unmarshaling to begin failing. Supporting this requires some way to\n\t\t\t\t// determine if the resolver is frozen.\n\t\t\t\txt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num)\n\t\t\t\tif err != nil && err != protoregistry.NotFound {\n\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t}\n\t\t\t\tif err == nil {\n\t\t\t\t\tvi = getExtensionFieldInfo(xt).validation\n\t\t\t\t}\n\t\t\t}\n\t\t\tif vi.requiredBit != 0 {\n\t\t\t\t// Check that the field has a compatible wire type.\n\t\t\t\t// We only need to consider non-repeated field types,\n\t\t\t\t// since repeated fields (and maps) can never be required.\n\t\t\t\tok := false\n\t\t\t\tswitch vi.typ {\n\t\t\t\tcase validationTypeVarint:\n\t\t\t\t\tok = wtyp == protowire.VarintType\n\t\t\t\tcase validationTypeFixed32:\n\t\t\t\t\tok = wtyp == protowire.Fixed32Type\n\t\t\t\tcase validationTypeFixed64:\n\t\t\t\t\tok = wtyp == protowire.Fixed64Type\n\t\t\t\tcase validationTypeBytes, validationTypeUTF8String, validationTypeMessage:\n\t\t\t\t\tok = wtyp == protowire.BytesType\n\t\t\t\tcase validationTypeGroup:\n\t\t\t\t\tok = wtyp == protowire.StartGroupType\n\t\t\t\t}\n\t\t\t\tif ok {\n\t\t\t\t\tst.requiredMask |= vi.requiredBit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch wtyp {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tif len(b) >= 10 {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase b[0] < 0x80:\n\t\t\t\t\t\tb = b[1:]\n\t\t\t\t\tcase b[1] < 0x80:\n\t\t\t\t\t\tb = b[2:]\n\t\t\t\t\tcase b[2] < 0x80:\n\t\t\t\t\t\tb = b[3:]\n\t\t\t\t\tcase b[3] < 0x80:\n\t\t\t\t\t\tb = b[4:]\n\t\t\t\t\tcase b[4] < 0x80:\n\t\t\t\t\t\tb = b[5:]\n\t\t\t\t\tcase b[5] < 0x80:\n\t\t\t\t\t\tb = b[6:]\n\t\t\t\t\tcase b[6] < 0x80:\n\t\t\t\t\t\tb = b[7:]\n\t\t\t\t\tcase b[7] < 0x80:\n\t\t\t\t\t\tb = b[8:]\n\t\t\t\t\tcase b[8] < 0x80:\n\t\t\t\t\t\tb = b[9:]\n\t\t\t\t\tcase b[9] < 0x80 && b[9] < 2:\n\t\t\t\t\t\tb = b[10:]\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase len(b) > 0 && b[0] < 0x80:\n\t\t\t\t\t\tb = b[1:]\n\t\t\t\t\tcase len(b) > 1 && b[1] < 0x80:\n\t\t\t\t\t\tb = b[2:]\n\t\t\t\t\tcase len(b) > 2 && b[2] < 0x80:\n\t\t\t\t\t\tb = b[3:]\n\t\t\t\t\tcase len(b) > 3 && b[3] < 0x80:\n\t\t\t\t\t\tb = b[4:]\n\t\t\t\t\tcase len(b) > 4 && b[4] < 0x80:\n\t\t\t\t\t\tb = b[5:]\n\t\t\t\t\tcase len(b) > 5 && b[5] < 0x80:\n\t\t\t\t\t\tb = b[6:]\n\t\t\t\t\tcase len(b) > 6 && b[6] < 0x80:\n\t\t\t\t\t\tb = b[7:]\n\t\t\t\t\tcase len(b) > 7 && b[7] < 0x80:\n\t\t\t\t\t\tb = b[8:]\n\t\t\t\t\tcase len(b) > 8 && b[8] < 0x80:\n\t\t\t\t\t\tb = b[9:]\n\t\t\t\t\tcase len(b) > 9 && b[9] < 2:\n\t\t\t\t\t\tb = b[10:]\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue State\n\t\t\tcase protowire.BytesType:\n\t\t\t\tvar size uint64\n\t\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\t\tsize = uint64(b[0])\n\t\t\t\t\tb = b[1:]\n\t\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\t\tsize = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\t\tb = b[2:]\n\t\t\t\t} else {\n\t\t\t\t\tvar n int\n\t\t\t\t\tsize, n = protowire.ConsumeVarint(b)\n\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\tb = b[n:]\n\t\t\t\t}\n\t\t\t\tif size > uint64(len(b)) {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tv := b[:size]\n\t\t\t\tb = b[size:]\n\t\t\t\tswitch vi.typ {\n\t\t\t\tcase validationTypeMessage:\n\t\t\t\t\tif vi.mi == nil {\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\t}\n\t\t\t\t\tvi.mi.init()\n\t\t\t\t\tfallthrough\n\t\t\t\tcase validationTypeMap:\n\t\t\t\t\tif vi.mi != nil {\n\t\t\t\t\t\tvi.mi.init()\n\t\t\t\t\t}\n\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\ttyp:     vi.typ,\n\t\t\t\t\t\tkeyType: vi.keyType,\n\t\t\t\t\t\tvalType: vi.valType,\n\t\t\t\t\t\tmi:      vi.mi,\n\t\t\t\t\t\ttail:    b,\n\t\t\t\t\t})\n\t\t\t\t\tb = v\n\t\t\t\t\tcontinue State\n\t\t\t\tcase validationTypeRepeatedVarint:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tfor len(v) > 0 {\n\t\t\t\t\t\t_, n := protowire.ConsumeVarint(v)\n\t\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = v[n:]\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeRepeatedFixed32:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tif len(v)%4 != 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeRepeatedFixed64:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tif len(v)%8 != 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeUTF8String:\n\t\t\t\t\tif !utf8.Valid(v) {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tif len(b) < 4 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[4:]\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tif len(b) < 8 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[8:]\n\t\t\tcase protowire.StartGroupType:\n\t\t\t\tswitch {\n\t\t\t\tcase vi.typ == validationTypeGroup:\n\t\t\t\t\tif vi.mi == nil {\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\t}\n\t\t\t\t\tvi.mi.init()\n\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\ttyp:      validationTypeGroup,\n\t\t\t\t\t\tmi:       vi.mi,\n\t\t\t\t\t\tendGroup: num,\n\t\t\t\t\t})\n\t\t\t\t\tcontinue State\n\t\t\t\tcase flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:\n\t\t\t\t\ttypeid, v, n, err := messageset.ConsumeFieldValue(b, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\txt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid)\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase err == protoregistry.NotFound:\n\t\t\t\t\t\tb = b[n:]\n\t\t\t\t\tcase err != nil:\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\tdefault:\n\t\t\t\t\t\txvi := getExtensionFieldInfo(xt).validation\n\t\t\t\t\t\tif xvi.mi != nil {\n\t\t\t\t\t\t\txvi.mi.init()\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\t\ttyp:  xvi.typ,\n\t\t\t\t\t\t\tmi:   xvi.mi,\n\t\t\t\t\t\t\ttail: b[n:],\n\t\t\t\t\t\t})\n\t\t\t\t\t\tb = v\n\t\t\t\t\t\tcontinue State\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\tb = b[n:]\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t}\n\t\t}\n\t\tif st.endGroup != 0 {\n\t\t\treturn out, ValidationInvalid\n\t\t}\n\t\tif len(b) != 0 {\n\t\t\treturn out, ValidationInvalid\n\t\t}\n\t\tb = st.tail\n\tPopState:\n\t\tnumRequiredFields := 0\n\t\tswitch st.typ {\n\t\tcase validationTypeMessage, validationTypeGroup:\n\t\t\tnumRequiredFields = int(st.mi.numRequiredFields)\n\t\tcase validationTypeMap:\n\t\t\t// If this is a map field with a message value that contains\n\t\t\t// required fields, require that the value be present.\n\t\t\tif st.mi != nil && st.mi.numRequiredFields > 0 {\n\t\t\t\tnumRequiredFields = 1\n\t\t\t}\n\t\t}\n\t\t// If there are more than 64 required fields, this check will\n\t\t// always fail and we will report that the message is potentially\n\t\t// uninitialized.\n\t\tif numRequiredFields > 0 && bits.OnesCount64(st.requiredMask) != numRequiredFields {\n\t\t\tinitialized = false\n\t\t}\n\t\tstates = states[:len(states)-1]\n\t}\n\tout.n = start - len(b)\n\tif initialized {\n\t\tout.initialized = true\n\t}\n\treturn out, ValidationValid\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/order/order.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage order\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// FieldOrder specifies the ordering to visit message fields.\n// It is a function that reports whether x is ordered before y.\ntype FieldOrder func(x, y protoreflect.FieldDescriptor) bool\n\nvar (\n\t// AnyFieldOrder specifies no specific field ordering.\n\tAnyFieldOrder FieldOrder = nil\n\n\t// LegacyFieldOrder sorts fields in the same ordering as emitted by\n\t// wire serialization in the github.com/golang/protobuf implementation.\n\tLegacyFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\tox, oy := x.ContainingOneof(), y.ContainingOneof()\n\t\tinOneof := func(od protoreflect.OneofDescriptor) bool {\n\t\t\treturn od != nil && !od.IsSynthetic()\n\t\t}\n\n\t\t// Extension fields sort before non-extension fields.\n\t\tif x.IsExtension() != y.IsExtension() {\n\t\t\treturn x.IsExtension() && !y.IsExtension()\n\t\t}\n\t\t// Fields not within a oneof sort before those within a oneof.\n\t\tif inOneof(ox) != inOneof(oy) {\n\t\t\treturn !inOneof(ox) && inOneof(oy)\n\t\t}\n\t\t// Fields in disjoint oneof sets are sorted by declaration index.\n\t\tif inOneof(ox) && inOneof(oy) && ox != oy {\n\t\t\treturn ox.Index() < oy.Index()\n\t\t}\n\t\t// Fields sorted by field number.\n\t\treturn x.Number() < y.Number()\n\t}\n\n\t// NumberFieldOrder sorts fields by their field number.\n\tNumberFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\treturn x.Number() < y.Number()\n\t}\n\n\t// IndexNameFieldOrder sorts non-extension fields before extension fields.\n\t// Non-extensions are sorted according to their declaration index.\n\t// Extensions are sorted according to their full name.\n\tIndexNameFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\t// Non-extension fields sort before extension fields.\n\t\tif x.IsExtension() != y.IsExtension() {\n\t\t\treturn !x.IsExtension() && y.IsExtension()\n\t\t}\n\t\t// Extensions sorted by fullname.\n\t\tif x.IsExtension() && y.IsExtension() {\n\t\t\treturn x.FullName() < y.FullName()\n\t\t}\n\t\t// Non-extensions sorted by declaration index.\n\t\treturn x.Index() < y.Index()\n\t}\n)\n\n// KeyOrder specifies the ordering to visit map entries.\n// It is a function that reports whether x is ordered before y.\ntype KeyOrder func(x, y protoreflect.MapKey) bool\n\nvar (\n\t// AnyKeyOrder specifies no specific key ordering.\n\tAnyKeyOrder KeyOrder = nil\n\n\t// GenericKeyOrder sorts false before true, numeric keys in ascending order,\n\t// and strings in lexicographical ordering according to UTF-8 codepoints.\n\tGenericKeyOrder KeyOrder = func(x, y protoreflect.MapKey) bool {\n\t\tswitch x.Interface().(type) {\n\t\tcase bool:\n\t\t\treturn !x.Bool() && y.Bool()\n\t\tcase int32, int64:\n\t\t\treturn x.Int() < y.Int()\n\t\tcase uint32, uint64:\n\t\t\treturn x.Uint() < y.Uint()\n\t\tcase string:\n\t\t\treturn x.String() < y.String()\n\t\tdefault:\n\t\t\tpanic(\"invalid map key type\")\n\t\t}\n\t}\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/order/range.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package order provides ordered access to messages and maps.\npackage order\n\nimport (\n\t\"sort\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype messageField struct {\n\tfd protoreflect.FieldDescriptor\n\tv  protoreflect.Value\n}\n\nvar messageFieldPool = sync.Pool{\n\tNew: func() any { return new([]messageField) },\n}\n\ntype (\n\t// FieldRnger is an interface for visiting all fields in a message.\n\t// The protoreflect.Message type implements this interface.\n\tFieldRanger interface{ Range(VisitField) }\n\t// VisitField is called every time a message field is visited.\n\tVisitField = func(protoreflect.FieldDescriptor, protoreflect.Value) bool\n)\n\n// RangeFields iterates over the fields of fs according to the specified order.\nfunc RangeFields(fs FieldRanger, less FieldOrder, fn VisitField) {\n\tif less == nil {\n\t\tfs.Range(fn)\n\t\treturn\n\t}\n\n\t// Obtain a pre-allocated scratch buffer.\n\tp := messageFieldPool.Get().(*[]messageField)\n\tfields := (*p)[:0]\n\tdefer func() {\n\t\tif cap(fields) < 1024 {\n\t\t\t*p = fields\n\t\t\tmessageFieldPool.Put(p)\n\t\t}\n\t}()\n\n\t// Collect all fields in the message and sort them.\n\tfs.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tfields = append(fields, messageField{fd, v})\n\t\treturn true\n\t})\n\tsort.Slice(fields, func(i, j int) bool {\n\t\treturn less(fields[i].fd, fields[j].fd)\n\t})\n\n\t// Visit the fields in the specified ordering.\n\tfor _, f := range fields {\n\t\tif !fn(f.fd, f.v) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\ntype mapEntry struct {\n\tk protoreflect.MapKey\n\tv protoreflect.Value\n}\n\nvar mapEntryPool = sync.Pool{\n\tNew: func() any { return new([]mapEntry) },\n}\n\ntype (\n\t// EntryRanger is an interface for visiting all fields in a message.\n\t// The protoreflect.Map type implements this interface.\n\tEntryRanger interface{ Range(VisitEntry) }\n\t// VisitEntry is called every time a map entry is visited.\n\tVisitEntry = func(protoreflect.MapKey, protoreflect.Value) bool\n)\n\n// RangeEntries iterates over the entries of es according to the specified order.\nfunc RangeEntries(es EntryRanger, less KeyOrder, fn VisitEntry) {\n\tif less == nil {\n\t\tes.Range(fn)\n\t\treturn\n\t}\n\n\t// Obtain a pre-allocated scratch buffer.\n\tp := mapEntryPool.Get().(*[]mapEntry)\n\tentries := (*p)[:0]\n\tdefer func() {\n\t\tif cap(entries) < 1024 {\n\t\t\t*p = entries\n\t\t\tmapEntryPool.Put(p)\n\t\t}\n\t}()\n\n\t// Collect all entries in the map and sort them.\n\tes.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\tentries = append(entries, mapEntry{k, v})\n\t\treturn true\n\t})\n\tsort.Slice(entries, func(i, j int) bool {\n\t\treturn less(entries[i].k, entries[j].k)\n\t})\n\n\t// Visit the entries in the specified ordering.\n\tfor _, e := range entries {\n\t\tif !fn(e.k, e.v) {\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/pragma/pragma.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package pragma provides types that can be embedded into a struct to\n// statically enforce or prevent certain language properties.\npackage pragma\n\nimport \"sync\"\n\n// NoUnkeyedLiterals can be embedded in a struct to prevent unkeyed literals.\ntype NoUnkeyedLiterals struct{}\n\n// DoNotImplement can be embedded in an interface to prevent trivial\n// implementations of the interface.\n//\n// This is useful to prevent unauthorized implementations of an interface\n// so that it can be extended in the future for any protobuf language changes.\ntype DoNotImplement interface{ ProtoInternal(DoNotImplement) }\n\n// DoNotCompare can be embedded in a struct to prevent comparability.\ntype DoNotCompare [0]func()\n\n// DoNotCopy can be embedded in a struct to help prevent shallow copies.\n// This does not rely on a Go language feature, but rather a special case\n// within the vet checker.\n//\n// See https://golang.org/issues/8005.\ntype DoNotCopy [0]sync.Mutex\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/protolazy/bufferreader.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Helper code for parsing a protocol buffer\n\npackage protolazy\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n)\n\n// BufferReader is a structure encapsulating a protobuf and a current position\ntype BufferReader struct {\n\tBuf []byte\n\tPos int\n}\n\n// NewBufferReader creates a new BufferRead from a protobuf\nfunc NewBufferReader(buf []byte) BufferReader {\n\treturn BufferReader{Buf: buf, Pos: 0}\n}\n\nvar errOutOfBounds = errors.New(\"protobuf decoding: out of bounds\")\nvar errOverflow = errors.New(\"proto: integer overflow\")\n\nfunc (b *BufferReader) DecodeVarintSlow() (x uint64, err error) {\n\ti := b.Pos\n\tl := len(b.Buf)\n\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= l {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\treturn\n\t\t}\n\t\tv := b.Buf[i]\n\t\ti++\n\t\tx |= (uint64(v) & 0x7F) << shift\n\t\tif v < 0x80 {\n\t\t\tb.Pos = i\n\t\t\treturn\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\terr = errOverflow\n\treturn\n}\n\n// decodeVarint decodes a varint at the current position\nfunc (b *BufferReader) DecodeVarint() (x uint64, err error) {\n\ti := b.Pos\n\tbuf := b.Buf\n\n\tif i >= len(buf) {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t} else if buf[i] < 0x80 {\n\t\tb.Pos++\n\t\treturn uint64(buf[i]), nil\n\t} else if len(buf)-i < 10 {\n\t\treturn b.DecodeVarintSlow()\n\t}\n\n\tvar v uint64\n\t// we already checked the first byte\n\tx = uint64(buf[i]) & 127\n\ti++\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 7\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 14\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 21\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 28\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 35\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 42\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 49\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 56\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint64(buf[i])\n\ti++\n\tx |= (v & 127) << 63\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\treturn 0, errOverflow\n\ndone:\n\tb.Pos = i\n\treturn\n}\n\n// decodeVarint32 decodes a varint32 at the current position\nfunc (b *BufferReader) DecodeVarint32() (x uint32, err error) {\n\ti := b.Pos\n\tbuf := b.Buf\n\n\tif i >= len(buf) {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t} else if buf[i] < 0x80 {\n\t\tb.Pos++\n\t\treturn uint32(buf[i]), nil\n\t} else if len(buf)-i < 5 {\n\t\tv, err := b.DecodeVarintSlow()\n\t\treturn uint32(v), err\n\t}\n\n\tvar v uint32\n\t// we already checked the first byte\n\tx = uint32(buf[i]) & 127\n\ti++\n\n\tv = uint32(buf[i])\n\ti++\n\tx |= (v & 127) << 7\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint32(buf[i])\n\ti++\n\tx |= (v & 127) << 14\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint32(buf[i])\n\ti++\n\tx |= (v & 127) << 21\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\tv = uint32(buf[i])\n\ti++\n\tx |= (v & 127) << 28\n\tif v < 128 {\n\t\tgoto done\n\t}\n\n\treturn 0, errOverflow\n\ndone:\n\tb.Pos = i\n\treturn\n}\n\n// skipValue skips a value in the protobuf, based on the specified tag\nfunc (b *BufferReader) SkipValue(tag uint32) (err error) {\n\twireType := tag & 0x7\n\tswitch protowire.Type(wireType) {\n\tcase protowire.VarintType:\n\t\terr = b.SkipVarint()\n\tcase protowire.Fixed64Type:\n\t\terr = b.SkipFixed64()\n\tcase protowire.BytesType:\n\t\tvar n uint32\n\t\tn, err = b.DecodeVarint32()\n\t\tif err == nil {\n\t\t\terr = b.Skip(int(n))\n\t\t}\n\tcase protowire.StartGroupType:\n\t\terr = b.SkipGroup(tag)\n\tcase protowire.Fixed32Type:\n\t\terr = b.SkipFixed32()\n\tdefault:\n\t\terr = fmt.Errorf(\"Unexpected wire type (%d)\", wireType)\n\t}\n\treturn\n}\n\n// skipGroup skips a group with the specified tag.  It executes efficiently using a tag stack\nfunc (b *BufferReader) SkipGroup(tag uint32) (err error) {\n\ttagStack := make([]uint32, 0, 16)\n\ttagStack = append(tagStack, tag)\n\tvar n uint32\n\tfor len(tagStack) > 0 {\n\t\ttag, err = b.DecodeVarint32()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch protowire.Type(tag & 0x7) {\n\t\tcase protowire.VarintType:\n\t\t\terr = b.SkipVarint()\n\t\tcase protowire.Fixed64Type:\n\t\t\terr = b.Skip(8)\n\t\tcase protowire.BytesType:\n\t\t\tn, err = b.DecodeVarint32()\n\t\t\tif err == nil {\n\t\t\t\terr = b.Skip(int(n))\n\t\t\t}\n\t\tcase protowire.StartGroupType:\n\t\t\ttagStack = append(tagStack, tag)\n\t\tcase protowire.Fixed32Type:\n\t\t\terr = b.SkipFixed32()\n\t\tcase protowire.EndGroupType:\n\t\t\tif protoFieldNumber(tagStack[len(tagStack)-1]) == protoFieldNumber(tag) {\n\t\t\t\ttagStack = tagStack[:len(tagStack)-1]\n\t\t\t} else {\n\t\t\t\terr = fmt.Errorf(\"end group tag %d does not match begin group tag %d at pos %d\",\n\t\t\t\t\tprotoFieldNumber(tag), protoFieldNumber(tagStack[len(tagStack)-1]), b.Pos)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// skipVarint effiently skips a varint\nfunc (b *BufferReader) SkipVarint() (err error) {\n\ti := b.Pos\n\n\tif len(b.Buf)-i < 10 {\n\t\t// Use DecodeVarintSlow() to check for buffer overflow, but ignore result\n\t\tif _, err := b.DecodeVarintSlow(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\ti++\n\n\tif b.Buf[i] < 0x80 {\n\t\tgoto out\n\t}\n\treturn errOverflow\n\nout:\n\tb.Pos = i + 1\n\treturn nil\n}\n\n// skip skips the specified number of bytes\nfunc (b *BufferReader) Skip(n int) (err error) {\n\tif len(b.Buf) < b.Pos+n {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\tb.Pos += n\n\treturn\n}\n\n// skipFixed64 skips a fixed64\nfunc (b *BufferReader) SkipFixed64() (err error) {\n\treturn b.Skip(8)\n}\n\n// skipFixed32 skips a fixed32\nfunc (b *BufferReader) SkipFixed32() (err error) {\n\treturn b.Skip(4)\n}\n\n// skipBytes skips a set of bytes\nfunc (b *BufferReader) SkipBytes() (err error) {\n\tn, err := b.DecodeVarint32()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn b.Skip(int(n))\n}\n\n// Done returns whether we are at the end of the protobuf\nfunc (b *BufferReader) Done() bool {\n\treturn b.Pos == len(b.Buf)\n}\n\n// Remaining returns how many bytes remain\nfunc (b *BufferReader) Remaining() int {\n\treturn len(b.Buf) - b.Pos\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/protolazy/lazy.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protolazy contains internal data structures for lazy message decoding.\npackage protolazy\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\tpiface \"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// IndexEntry is the structure for an index of the fields in a message of a\n// proto (not descending to sub-messages)\ntype IndexEntry struct {\n\tFieldNum uint32\n\t// first byte of this tag/field\n\tStart uint32\n\t// first byte after a contiguous sequence of bytes for this tag/field, which could\n\t// include a single encoding of the field, or multiple encodings for the field\n\tEnd uint32\n\t// True if this protobuf segment includes multiple encodings of the field\n\tMultipleContiguous bool\n}\n\n// XXX_lazyUnmarshalInfo has information about a particular lazily decoded message\n//\n// Deprecated: Do not use. This will be deleted in the near future.\ntype XXX_lazyUnmarshalInfo struct {\n\t// Index of fields and their positions in the protobuf for this\n\t// message.  Make index be a pointer to a slice so it can be updated\n\t// atomically.  The index pointer is only set once (lazily when/if\n\t// the index is first needed), and must always be SET and LOADED\n\t// ATOMICALLY.\n\tindex *[]IndexEntry\n\t// The protobuf associated with this lazily decoded message.  It is\n\t// only set during proto.Unmarshal().  It doesn't need to be set and\n\t// loaded atomically, since any simultaneous set (Unmarshal) and read\n\t// (during a get) would already be a race in the app code.\n\tProtobuf []byte\n\t// The flags present when Unmarshal was originally called for this particular message\n\tunmarshalFlags piface.UnmarshalInputFlags\n}\n\n// The Buffer and SetBuffer methods let v2/internal/impl interact with\n// XXX_lazyUnmarshalInfo via an interface, to avoid an import cycle.\n\n// Buffer returns the lazy unmarshal buffer.\n//\n// Deprecated: Do not use. This will be deleted in the near future.\nfunc (lazy *XXX_lazyUnmarshalInfo) Buffer() []byte {\n\treturn lazy.Protobuf\n}\n\n// SetBuffer sets the lazy unmarshal buffer.\n//\n// Deprecated: Do not use. This will be deleted in the near future.\nfunc (lazy *XXX_lazyUnmarshalInfo) SetBuffer(b []byte) {\n\tlazy.Protobuf = b\n}\n\n// SetUnmarshalFlags is called to set a copy of the original unmarshalInputFlags.\n// The flags should reflect how Unmarshal was called.\nfunc (lazy *XXX_lazyUnmarshalInfo) SetUnmarshalFlags(f piface.UnmarshalInputFlags) {\n\tlazy.unmarshalFlags = f\n}\n\n// UnmarshalFlags returns the original unmarshalInputFlags.\nfunc (lazy *XXX_lazyUnmarshalInfo) UnmarshalFlags() piface.UnmarshalInputFlags {\n\treturn lazy.unmarshalFlags\n}\n\n// AllowedPartial returns true if the user originally unmarshalled this message with\n// AllowPartial set to true\nfunc (lazy *XXX_lazyUnmarshalInfo) AllowedPartial() bool {\n\treturn (lazy.unmarshalFlags & piface.UnmarshalCheckRequired) == 0\n}\n\nfunc protoFieldNumber(tag uint32) uint32 {\n\treturn tag >> 3\n}\n\n// buildIndex builds an index of the specified protobuf, return the index\n// array and an error.\nfunc buildIndex(buf []byte) ([]IndexEntry, error) {\n\tindex := make([]IndexEntry, 0, 16)\n\tvar lastProtoFieldNum uint32\n\tvar outOfOrder bool\n\n\tvar r BufferReader = NewBufferReader(buf)\n\n\tfor !r.Done() {\n\t\tvar tag uint32\n\t\tvar err error\n\t\tvar curPos = r.Pos\n\t\t// INLINED: tag, err = r.DecodeVarint32()\n\t\t{\n\t\t\ti := r.Pos\n\t\t\tbuf := r.Buf\n\n\t\t\tif i >= len(buf) {\n\t\t\t\treturn nil, errOutOfBounds\n\t\t\t} else if buf[i] < 0x80 {\n\t\t\t\tr.Pos++\n\t\t\t\ttag = uint32(buf[i])\n\t\t\t} else if r.Remaining() < 5 {\n\t\t\t\tvar v uint64\n\t\t\t\tv, err = r.DecodeVarintSlow()\n\t\t\t\ttag = uint32(v)\n\t\t\t} else {\n\t\t\t\tvar v uint32\n\t\t\t\t// we already checked the first byte\n\t\t\t\ttag = uint32(buf[i]) & 127\n\t\t\t\ti++\n\n\t\t\t\tv = uint32(buf[i])\n\t\t\t\ti++\n\t\t\t\ttag |= (v & 127) << 7\n\t\t\t\tif v < 128 {\n\t\t\t\t\tgoto done\n\t\t\t\t}\n\n\t\t\t\tv = uint32(buf[i])\n\t\t\t\ti++\n\t\t\t\ttag |= (v & 127) << 14\n\t\t\t\tif v < 128 {\n\t\t\t\t\tgoto done\n\t\t\t\t}\n\n\t\t\t\tv = uint32(buf[i])\n\t\t\t\ti++\n\t\t\t\ttag |= (v & 127) << 21\n\t\t\t\tif v < 128 {\n\t\t\t\t\tgoto done\n\t\t\t\t}\n\n\t\t\t\tv = uint32(buf[i])\n\t\t\t\ti++\n\t\t\t\ttag |= (v & 127) << 28\n\t\t\t\tif v < 128 {\n\t\t\t\t\tgoto done\n\t\t\t\t}\n\n\t\t\t\treturn nil, errOutOfBounds\n\n\t\t\tdone:\n\t\t\t\tr.Pos = i\n\t\t\t}\n\t\t}\n\t\t// DONE: tag, err = r.DecodeVarint32()\n\n\t\tfieldNum := protoFieldNumber(tag)\n\t\tif fieldNum < lastProtoFieldNum {\n\t\t\toutOfOrder = true\n\t\t}\n\n\t\t// Skip the current value -- will skip over an entire group as well.\n\t\t// INLINED: err = r.SkipValue(tag)\n\t\twireType := tag & 0x7\n\t\tswitch protowire.Type(wireType) {\n\t\tcase protowire.VarintType:\n\t\t\t// INLINED: err = r.SkipVarint()\n\t\t\ti := r.Pos\n\n\t\t\tif len(r.Buf)-i < 10 {\n\t\t\t\t// Use DecodeVarintSlow() to skip while\n\t\t\t\t// checking for buffer overflow, but ignore result\n\t\t\t\t_, err = r.DecodeVarintSlow()\n\t\t\t\tgoto out2\n\t\t\t}\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\ti++\n\n\t\t\tif r.Buf[i] < 0x80 {\n\t\t\t\tgoto out\n\t\t\t}\n\t\t\treturn nil, errOverflow\n\t\tout:\n\t\t\tr.Pos = i + 1\n\t\t\t// DONE: err = r.SkipVarint()\n\t\tcase protowire.Fixed64Type:\n\t\t\terr = r.SkipFixed64()\n\t\tcase protowire.BytesType:\n\t\t\tvar n uint32\n\t\t\tn, err = r.DecodeVarint32()\n\t\t\tif err == nil {\n\t\t\t\terr = r.Skip(int(n))\n\t\t\t}\n\t\tcase protowire.StartGroupType:\n\t\t\terr = r.SkipGroup(tag)\n\t\tcase protowire.Fixed32Type:\n\t\t\terr = r.SkipFixed32()\n\t\tdefault:\n\t\t\terr = fmt.Errorf(\"Unexpected wire type (%d)\", wireType)\n\t\t}\n\t\t// DONE: err = r.SkipValue(tag)\n\n\tout2:\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif fieldNum != lastProtoFieldNum {\n\t\t\tindex = append(index, IndexEntry{FieldNum: fieldNum,\n\t\t\t\tStart: uint32(curPos),\n\t\t\t\tEnd:   uint32(r.Pos)},\n\t\t\t)\n\t\t} else {\n\t\t\tindex[len(index)-1].End = uint32(r.Pos)\n\t\t\tindex[len(index)-1].MultipleContiguous = true\n\t\t}\n\t\tlastProtoFieldNum = fieldNum\n\t}\n\tif outOfOrder {\n\t\tsort.Slice(index, func(i, j int) bool {\n\t\t\treturn index[i].FieldNum < index[j].FieldNum ||\n\t\t\t\t(index[i].FieldNum == index[j].FieldNum &&\n\t\t\t\t\tindex[i].Start < index[j].Start)\n\t\t})\n\t}\n\treturn index, nil\n}\n\nfunc (lazy *XXX_lazyUnmarshalInfo) SizeField(num uint32) (size int) {\n\tstart, end, found, _, multipleEntries := lazy.FindFieldInProto(num)\n\tif multipleEntries != nil {\n\t\tfor _, entry := range multipleEntries {\n\t\t\tsize += int(entry.End - entry.Start)\n\t\t}\n\t\treturn size\n\t}\n\tif !found {\n\t\treturn 0\n\t}\n\treturn int(end - start)\n}\n\nfunc (lazy *XXX_lazyUnmarshalInfo) AppendField(b []byte, num uint32) ([]byte, bool) {\n\tstart, end, found, _, multipleEntries := lazy.FindFieldInProto(num)\n\tif multipleEntries != nil {\n\t\tfor _, entry := range multipleEntries {\n\t\t\tb = append(b, lazy.Protobuf[entry.Start:entry.End]...)\n\t\t}\n\t\treturn b, true\n\t}\n\tif !found {\n\t\treturn nil, false\n\t}\n\tb = append(b, lazy.Protobuf[start:end]...)\n\treturn b, true\n}\n\nfunc (lazy *XXX_lazyUnmarshalInfo) SetIndex(index []IndexEntry) {\n\tatomicStoreIndex(&lazy.index, &index)\n}\n\n// FindFieldInProto looks for field fieldNum in lazyUnmarshalInfo information\n// (including protobuf), returns startOffset/endOffset/found.\nfunc (lazy *XXX_lazyUnmarshalInfo) FindFieldInProto(fieldNum uint32) (start, end uint32, found, multipleContiguous bool, multipleEntries []IndexEntry) {\n\tif lazy.Protobuf == nil {\n\t\t// There is no backing protobuf for this message -- it was made from a builder\n\t\treturn 0, 0, false, false, nil\n\t}\n\tindex := atomicLoadIndex(&lazy.index)\n\tif index == nil {\n\t\tr, err := buildIndex(lazy.Protobuf)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Sprintf(\"findFieldInfo: error building index when looking for field %d: %v\", fieldNum, err))\n\t\t}\n\t\t// lazy.index is a pointer to the slice returned by BuildIndex\n\t\tindex = &r\n\t\tatomicStoreIndex(&lazy.index, index)\n\t}\n\treturn lookupField(index, fieldNum)\n}\n\n// lookupField returns the offset at which the indicated field starts using\n// the index, offset immediately after field ends (including all instances of\n// a repeated field), and bools indicating if field was found and if there\n// are multiple encodings of the field in the byte range.\n//\n// To hande the uncommon case where there are repeated encodings for the same\n// field which are not consecutive in the protobuf (so we need to returns\n// multiple start/end offsets), we also return a slice multipleEntries.  If\n// multipleEntries is non-nil, then multiple entries were found, and the\n// values in the slice should be used, rather than start/end/found.\nfunc lookupField(indexp *[]IndexEntry, fieldNum uint32) (start, end uint32, found bool, multipleContiguous bool, multipleEntries []IndexEntry) {\n\t// The pointer indexp to the index was already loaded atomically.\n\t// The slice is uniquely associated with the pointer, so it doesn't\n\t// need to be loaded atomically.\n\tindex := *indexp\n\tfor i, entry := range index {\n\t\tif fieldNum == entry.FieldNum {\n\t\t\tif i < len(index)-1 && entry.FieldNum == index[i+1].FieldNum {\n\t\t\t\t// Handle the uncommon case where there are\n\t\t\t\t// repeated entries for the same field which\n\t\t\t\t// are not contiguous in the protobuf.\n\t\t\t\tmultiple := make([]IndexEntry, 1, 2)\n\t\t\t\tmultiple[0] = IndexEntry{fieldNum, entry.Start, entry.End, entry.MultipleContiguous}\n\t\t\t\ti++\n\t\t\t\tfor i < len(index) && index[i].FieldNum == fieldNum {\n\t\t\t\t\tmultiple = append(multiple, IndexEntry{fieldNum, index[i].Start, index[i].End, index[i].MultipleContiguous})\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\treturn 0, 0, false, false, multiple\n\n\t\t\t}\n\t\t\treturn entry.Start, entry.End, true, entry.MultipleContiguous, nil\n\t\t}\n\t\tif fieldNum < entry.FieldNum {\n\t\t\treturn 0, 0, false, false, nil\n\t\t}\n\t}\n\treturn 0, 0, false, false, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/protolazy/pointer_unsafe.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protolazy\n\nimport (\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nfunc atomicLoadIndex(p **[]IndexEntry) *[]IndexEntry {\n\treturn (*[]IndexEntry)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreIndex(p **[]IndexEntry, v *[]IndexEntry) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/set/ints.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package set provides simple set data structures for uint64s.\npackage set\n\nimport \"math/bits\"\n\n// int64s represents a set of integers within the range of 0..63.\ntype int64s uint64\n\nfunc (bs *int64s) Len() int {\n\treturn bits.OnesCount64(uint64(*bs))\n}\nfunc (bs *int64s) Has(n uint64) bool {\n\treturn uint64(*bs)&(uint64(1)<<n) > 0\n}\nfunc (bs *int64s) Set(n uint64) {\n\t*(*uint64)(bs) |= uint64(1) << n\n}\nfunc (bs *int64s) Clear(n uint64) {\n\t*(*uint64)(bs) &^= uint64(1) << n\n}\n\n// Ints represents a set of integers within the range of 0..math.MaxUint64.\ntype Ints struct {\n\tlo int64s\n\thi map[uint64]struct{}\n}\n\nfunc (bs *Ints) Len() int {\n\treturn bs.lo.Len() + len(bs.hi)\n}\nfunc (bs *Ints) Has(n uint64) bool {\n\tif n < 64 {\n\t\treturn bs.lo.Has(n)\n\t}\n\t_, ok := bs.hi[n]\n\treturn ok\n}\nfunc (bs *Ints) Set(n uint64) {\n\tif n < 64 {\n\t\tbs.lo.Set(n)\n\t\treturn\n\t}\n\tif bs.hi == nil {\n\t\tbs.hi = make(map[uint64]struct{})\n\t}\n\tbs.hi[n] = struct{}{}\n}\nfunc (bs *Ints) Clear(n uint64) {\n\tif n < 64 {\n\t\tbs.lo.Clear(n)\n\t\treturn\n\t}\n\tdelete(bs.hi, n)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/strs/strings.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package strs provides string manipulation functionality specific to protobuf.\npackage strs\n\nimport (\n\t\"go/token\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// EnforceUTF8 reports whether to enforce strict UTF-8 validation.\nfunc EnforceUTF8(fd protoreflect.FieldDescriptor) bool {\n\tif flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions {\n\t\tif fd, ok := fd.(interface{ EnforceUTF8() bool }); ok {\n\t\t\treturn fd.EnforceUTF8()\n\t\t}\n\t}\n\treturn fd.Syntax() == protoreflect.Proto3\n}\n\n// GoCamelCase camel-cases a protobuf name for use as a Go identifier.\n//\n// If there is an interior underscore followed by a lower case letter,\n// drop the underscore and convert the letter to upper case.\nfunc GoCamelCase(s string) string {\n\t// Invariant: if the next letter is lower case, it must be converted\n\t// to upper case.\n\t// That is, we process a word at a time, where words are marked by _ or\n\t// upper case letter. Digits are treated as words.\n\tvar b []byte\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tswitch {\n\t\tcase c == '.' && i+1 < len(s) && isASCIILower(s[i+1]):\n\t\t\t// Skip over '.' in \".{{lowercase}}\".\n\t\tcase c == '.':\n\t\t\tb = append(b, '_') // convert '.' to '_'\n\t\tcase c == '_' && (i == 0 || s[i-1] == '.'):\n\t\t\t// Convert initial '_' to ensure we start with a capital letter.\n\t\t\t// Do the same for '_' after '.' to match historic behavior.\n\t\t\tb = append(b, 'X') // convert '_' to 'X'\n\t\tcase c == '_' && i+1 < len(s) && isASCIILower(s[i+1]):\n\t\t\t// Skip over '_' in \"_{{lowercase}}\".\n\t\tcase isASCIIDigit(c):\n\t\t\tb = append(b, c)\n\t\tdefault:\n\t\t\t// Assume we have a letter now - if not, it's a bogus identifier.\n\t\t\t// The next word is a sequence of characters that must start upper case.\n\t\t\tif isASCIILower(c) {\n\t\t\t\tc -= 'a' - 'A' // convert lowercase to uppercase\n\t\t\t}\n\t\t\tb = append(b, c)\n\n\t\t\t// Accept lower case sequence that follows.\n\t\t\tfor ; i+1 < len(s) && isASCIILower(s[i+1]); i++ {\n\t\t\t\tb = append(b, s[i+1])\n\t\t\t}\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// GoSanitized converts a string to a valid Go identifier.\nfunc GoSanitized(s string) string {\n\t// Sanitize the input to the set of valid characters,\n\t// which must be '_' or be in the Unicode L or N categories.\n\ts = strings.Map(func(r rune) rune {\n\t\tif unicode.IsLetter(r) || unicode.IsDigit(r) {\n\t\t\treturn r\n\t\t}\n\t\treturn '_'\n\t}, s)\n\n\t// Prepend '_' in the event of a Go keyword conflict or if\n\t// the identifier is invalid (does not start in the Unicode L category).\n\tr, _ := utf8.DecodeRuneInString(s)\n\tif token.Lookup(s).IsKeyword() || !unicode.IsLetter(r) {\n\t\treturn \"_\" + s\n\t}\n\treturn s\n}\n\n// JSONCamelCase converts a snake_case identifier to a camelCase identifier,\n// according to the protobuf JSON specification.\nfunc JSONCamelCase(s string) string {\n\tvar b []byte\n\tvar wasUnderscore bool\n\tfor i := 0; i < len(s); i++ { // proto identifiers are always ASCII\n\t\tc := s[i]\n\t\tif c != '_' {\n\t\t\tif wasUnderscore && isASCIILower(c) {\n\t\t\t\tc -= 'a' - 'A' // convert to uppercase\n\t\t\t}\n\t\t\tb = append(b, c)\n\t\t}\n\t\twasUnderscore = c == '_'\n\t}\n\treturn string(b)\n}\n\n// JSONSnakeCase converts a camelCase identifier to a snake_case identifier,\n// according to the protobuf JSON specification.\nfunc JSONSnakeCase(s string) string {\n\tvar b []byte\n\tfor i := 0; i < len(s); i++ { // proto identifiers are always ASCII\n\t\tc := s[i]\n\t\tif isASCIIUpper(c) {\n\t\t\tb = append(b, '_')\n\t\t\tc += 'a' - 'A' // convert to lowercase\n\t\t}\n\t\tb = append(b, c)\n\t}\n\treturn string(b)\n}\n\n// MapEntryName derives the name of the map entry message given the field name.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:254-276,6057\nfunc MapEntryName(s string) string {\n\tvar b []byte\n\tupperNext := true\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase c == '_':\n\t\t\tupperNext = true\n\t\tcase upperNext:\n\t\t\tb = append(b, byte(unicode.ToUpper(c)))\n\t\t\tupperNext = false\n\t\tdefault:\n\t\t\tb = append(b, byte(c))\n\t\t}\n\t}\n\tb = append(b, \"Entry\"...)\n\treturn string(b)\n}\n\n// EnumValueName derives the camel-cased enum value name.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:297-313\nfunc EnumValueName(s string) string {\n\tvar b []byte\n\tupperNext := true\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase c == '_':\n\t\t\tupperNext = true\n\t\tcase upperNext:\n\t\t\tb = append(b, byte(unicode.ToUpper(c)))\n\t\t\tupperNext = false\n\t\tdefault:\n\t\t\tb = append(b, byte(unicode.ToLower(c)))\n\t\t\tupperNext = false\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// TrimEnumPrefix trims the enum name prefix from an enum value name,\n// where the prefix is all lowercase without underscores.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:330-375\nfunc TrimEnumPrefix(s, prefix string) string {\n\ts0 := s // original input\n\tfor len(s) > 0 && len(prefix) > 0 {\n\t\tif s[0] == '_' {\n\t\t\ts = s[1:]\n\t\t\tcontinue\n\t\t}\n\t\tif unicode.ToLower(rune(s[0])) != rune(prefix[0]) {\n\t\t\treturn s0 // no prefix match\n\t\t}\n\t\ts, prefix = s[1:], prefix[1:]\n\t}\n\tif len(prefix) > 0 {\n\t\treturn s0 // no prefix match\n\t}\n\ts = strings.TrimLeft(s, \"_\")\n\tif len(s) == 0 {\n\t\treturn s0 // avoid returning empty string\n\t}\n\treturn s\n}\n\nfunc isASCIILower(c byte) bool {\n\treturn 'a' <= c && c <= 'z'\n}\nfunc isASCIIUpper(c byte) bool {\n\treturn 'A' <= c && c <= 'Z'\n}\nfunc isASCIIDigit(c byte) bool {\n\treturn '0' <= c && c <= '9'\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage strs\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// UnsafeString returns an unsafe string reference of b.\n// The caller must treat the input slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user\n// unless the input slice is provably immutable.\nfunc UnsafeString(b []byte) string {\n\treturn unsafe.String(unsafe.SliceData(b), len(b))\n}\n\n// UnsafeBytes returns an unsafe bytes slice reference of s.\n// The caller must treat returned slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user.\nfunc UnsafeBytes(s string) []byte {\n\treturn unsafe.Slice(unsafe.StringData(s), len(s))\n}\n\n// Builder builds a set of strings with shared lifetime.\n// This differs from strings.Builder, which is for building a single string.\ntype Builder struct {\n\tbuf []byte\n}\n\n// AppendFullName is equivalent to protoreflect.FullName.Append,\n// but optimized for large batches where each name has a shared lifetime.\nfunc (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName {\n\tn := len(prefix) + len(\".\") + len(name)\n\tif len(prefix) == 0 {\n\t\tn -= len(\".\")\n\t}\n\tsb.grow(n)\n\tsb.buf = append(sb.buf, prefix...)\n\tsb.buf = append(sb.buf, '.')\n\tsb.buf = append(sb.buf, name...)\n\treturn protoreflect.FullName(sb.last(n))\n}\n\n// MakeString is equivalent to string(b), but optimized for large batches\n// with a shared lifetime.\nfunc (sb *Builder) MakeString(b []byte) string {\n\tsb.grow(len(b))\n\tsb.buf = append(sb.buf, b...)\n\treturn sb.last(len(b))\n}\n\nfunc (sb *Builder) grow(n int) {\n\tif cap(sb.buf)-len(sb.buf) >= n {\n\t\treturn\n\t}\n\n\t// Unlike strings.Builder, we do not need to copy over the contents\n\t// of the old buffer since our builder provides no API for\n\t// retrieving previously created strings.\n\tsb.buf = make([]byte, 0, 2*(cap(sb.buf)+n))\n}\n\nfunc (sb *Builder) last(n int) string {\n\treturn UnsafeString(sb.buf[len(sb.buf)-n:])\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/version/version.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package version records versioning information about this module.\npackage version\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// These constants determine the current version of this module.\n//\n// For our release process, we enforce the following rules:\n//   - Tagged releases use a tag that is identical to String.\n//   - Tagged releases never reference a commit where the String\n//     contains \"devel\".\n//   - The set of all commits in this repository where String\n//     does not contain \"devel\" must have a unique String.\n//\n// Steps for tagging a new release:\n//\n//  1. Create a new CL.\n//\n//  2. Update Minor, Patch, and/or PreRelease as necessary.\n//     PreRelease must not contain the string \"devel\".\n//\n//  3. Since the last released minor version, have there been any changes to\n//     generator that relies on new functionality in the runtime?\n//     If yes, then increment RequiredGenerated.\n//\n//  4. Since the last released minor version, have there been any changes to\n//     the runtime that removes support for old .pb.go source code?\n//     If yes, then increment SupportMinimum.\n//\n//  5. Send out the CL for review and submit it.\n//     Note that the next CL in step 8 must be submitted after this CL\n//     without any other CLs in-between.\n//\n//  6. Tag a new version, where the tag is is the current String.\n//\n//  7. Write release notes for all notable changes\n//     between this release and the last release.\n//\n//  8. Create a new CL.\n//\n//  9. Update PreRelease to include the string \"devel\".\n//     For example: \"\" -> \"devel\" or \"rc.1\" -> \"rc.1.devel\"\n//\n//  10. Send out the CL for review and submit it.\nconst (\n\tMajor      = 1\n\tMinor      = 36\n\tPatch      = 10\n\tPreRelease = \"\"\n)\n\n// String formats the version string for this module in semver format.\n//\n// Examples:\n//\n//\tv1.20.1\n//\tv1.21.0-rc.1\nfunc String() string {\n\tv := fmt.Sprintf(\"v%d.%d.%d\", Major, Minor, Patch)\n\tif PreRelease != \"\" {\n\t\tv += \"-\" + PreRelease\n\n\t\t// TODO: Add metadata about the commit or build hash.\n\t\t// See https://golang.org/issue/29814\n\t\t// See https://golang.org/issue/33533\n\t\tvar metadata string\n\t\tif strings.Contains(PreRelease, \"devel\") && metadata != \"\" {\n\t\t\tv += \"+\" + metadata\n\t\t}\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/checkinit.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// CheckInitialized returns an error if any required fields in m are not set.\nfunc CheckInitialized(m Message) error {\n\t// Treat a nil message interface as an \"untyped\" empty message,\n\t// which we assume to have no required fields.\n\tif m == nil {\n\t\treturn nil\n\t}\n\n\treturn checkInitialized(m.ProtoReflect())\n}\n\n// CheckInitialized returns an error if any required fields in m are not set.\nfunc checkInitialized(m protoreflect.Message) error {\n\tif methods := protoMethods(m); methods != nil && methods.CheckInitialized != nil {\n\t\t_, err := methods.CheckInitialized(protoiface.CheckInitializedInput{\n\t\t\tMessage: m,\n\t\t})\n\t\treturn err\n\t}\n\treturn checkInitializedSlow(m)\n}\n\nfunc checkInitializedSlow(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tfds := md.Fields()\n\tfor i, nums := 0, md.RequiredNumbers(); i < nums.Len(); i++ {\n\t\tfd := fds.ByNumber(nums.Get(i))\n\t\tif !m.Has(fd) {\n\t\t\treturn errors.RequiredNotSet(string(fd.FullName()))\n\t\t}\n\t}\n\tvar err error\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tfor i, list := 0, v.List(); i < list.Len() && err == nil; i++ {\n\t\t\t\terr = checkInitialized(list.Get(i).Message())\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tv.Map().Range(func(key protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\terr = checkInitialized(v.Message())\n\t\t\t\treturn err == nil\n\t\t\t})\n\t\tdefault:\n\t\t\tif fd.Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\terr = checkInitialized(v.Message())\n\t\t}\n\t\treturn err == nil\n\t})\n\treturn err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// UnmarshalOptions configures the unmarshaler.\n//\n// Example usage:\n//\n//\terr := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m)\ntype UnmarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Merge merges the input into the destination message.\n\t// The default behavior is to always reset the message before unmarshaling,\n\t// unless Merge is specified.\n\tMerge bool\n\n\t// AllowPartial accepts input for messages that will result in missing\n\t// required fields. If AllowPartial is false (the default), Unmarshal will\n\t// return an error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// If DiscardUnknown is set, unknown fields are ignored.\n\tDiscardUnknown bool\n\n\t// Resolver is used for looking up types when unmarshaling extension fields.\n\t// If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\n\t// RecursionLimit limits how deeply messages may be nested.\n\t// If zero, a default limit is applied.\n\tRecursionLimit int\n\n\t//\n\t// NoLazyDecoding turns off lazy decoding, which otherwise is enabled by\n\t// default. Lazy decoding only affects submessages (annotated with [lazy =\n\t// true] in the .proto file) within messages that use the Opaque API.\n\tNoLazyDecoding bool\n}\n\n// Unmarshal parses the wire-format message in b and places the result in m.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\n//\n// See the [UnmarshalOptions] type if you need more control.\nfunc Unmarshal(b []byte, m Message) error {\n\t_, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect())\n\treturn err\n}\n\n// Unmarshal parses the wire-format message in b and places the result in m.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc (o UnmarshalOptions) Unmarshal(b []byte, m Message) error {\n\tif o.RecursionLimit == 0 {\n\t\to.RecursionLimit = protowire.DefaultRecursionLimit\n\t}\n\t_, err := o.unmarshal(b, m.ProtoReflect())\n\treturn err\n}\n\n// UnmarshalState parses a wire-format message and places the result in m.\n//\n// This method permits fine-grained control over the unmarshaler.\n// Most users should use [Unmarshal] instead.\nfunc (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tif o.RecursionLimit == 0 {\n\t\to.RecursionLimit = protowire.DefaultRecursionLimit\n\t}\n\treturn o.unmarshal(in.Buf, in.Message)\n}\n\n// unmarshal is a centralized function that all unmarshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for unmarshal that do not go through this.\nfunc (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) {\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\tif !o.Merge {\n\t\tReset(m.Interface())\n\t}\n\tallowPartial := o.AllowPartial\n\to.Merge = true\n\to.AllowPartial = true\n\tmethods := protoMethods(m)\n\tif methods != nil && methods.Unmarshal != nil &&\n\t\t!(o.DiscardUnknown && methods.Flags&protoiface.SupportUnmarshalDiscardUnknown == 0) {\n\t\tin := protoiface.UnmarshalInput{\n\t\t\tMessage:  m,\n\t\t\tBuf:      b,\n\t\t\tResolver: o.Resolver,\n\t\t\tDepth:    o.RecursionLimit,\n\t\t}\n\t\tif o.DiscardUnknown {\n\t\t\tin.Flags |= protoiface.UnmarshalDiscardUnknown\n\t\t}\n\n\t\tif !allowPartial {\n\t\t\t// This does not affect how current unmarshal functions work, it just allows them\n\t\t\t// to record this for lazy the decoding case.\n\t\t\tin.Flags |= protoiface.UnmarshalCheckRequired\n\t\t}\n\t\tif o.NoLazyDecoding {\n\t\t\tin.Flags |= protoiface.UnmarshalNoLazyDecoding\n\t\t}\n\n\t\tout, err = methods.Unmarshal(in)\n\t} else {\n\t\to.RecursionLimit--\n\t\tif o.RecursionLimit < 0 {\n\t\t\treturn out, errors.New(\"exceeded max recursion depth\")\n\t\t}\n\t\terr = o.unmarshalMessageSlow(b, m)\n\t}\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tif allowPartial || (out.Flags&protoiface.UnmarshalInitialized != 0) {\n\t\treturn out, nil\n\t}\n\treturn out, checkInitialized(m)\n}\n\nfunc (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) error {\n\t_, err := o.unmarshal(b, m)\n\treturn err\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif messageset.IsMessageSet(md) {\n\t\treturn o.unmarshalMessageSet(b, m)\n\t}\n\tfields := md.Fields()\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tnum, wtyp, tagLen := protowire.ConsumeTag(b)\n\t\tif tagLen < 0 {\n\t\t\treturn errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn errDecode\n\t\t}\n\n\t\t// Find the field descriptor for this field number.\n\t\tfd := fields.ByNumber(num)\n\t\tif fd == nil && md.ExtensionRanges().Has(num) {\n\t\t\textType, err := o.Resolver.FindExtensionByNumber(md.FullName(), num)\n\t\t\tif err != nil && err != protoregistry.NotFound {\n\t\t\t\treturn errors.New(\"%v: unable to resolve extension %v: %v\", md.FullName(), num, err)\n\t\t\t}\n\t\t\tif extType != nil {\n\t\t\t\tfd = extType.TypeDescriptor()\n\t\t\t}\n\t\t}\n\t\tvar err error\n\t\tif fd == nil {\n\t\t\terr = errUnknown\n\t\t}\n\n\t\t// Parse the field value.\n\t\tvar valLen int\n\t\tswitch {\n\t\tcase err != nil:\n\t\tcase fd.IsList():\n\t\t\tvalLen, err = o.unmarshalList(b[tagLen:], wtyp, m.Mutable(fd).List(), fd)\n\t\tcase fd.IsMap():\n\t\t\tvalLen, err = o.unmarshalMap(b[tagLen:], wtyp, m.Mutable(fd).Map(), fd)\n\t\tdefault:\n\t\t\tvalLen, err = o.unmarshalSingular(b[tagLen:], wtyp, m, fd)\n\t\t}\n\t\tif err != nil {\n\t\t\tif err != errUnknown {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvalLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:])\n\t\t\tif valLen < 0 {\n\t\t\t\treturn errDecode\n\t\t\t}\n\t\t\tif !o.DiscardUnknown {\n\t\t\t\tm.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...))\n\t\t\t}\n\t\t}\n\t\tb = b[tagLen+valLen:]\n\t}\n\treturn nil\n}\n\nfunc (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m protoreflect.Message, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tv, n, err := o.unmarshalScalar(b, wtyp, fd)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tm2 := m.Mutable(fd).Message()\n\t\tif err := o.unmarshalMessage(v.Bytes(), m2); err != nil {\n\t\t\treturn n, err\n\t\t}\n\tdefault:\n\t\t// Non-message scalars replace the previous value.\n\t\tm.Set(fd, v)\n\t}\n\treturn n, nil\n}\n\nfunc (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn 0, errUnknown\n\t}\n\tb, n = protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn 0, errDecode\n\t}\n\tvar (\n\t\tkeyField = fd.MapKey()\n\t\tvalField = fd.MapValue()\n\t\tkey      protoreflect.Value\n\t\tval      protoreflect.Value\n\t\thaveKey  bool\n\t\thaveVal  bool\n\t)\n\tswitch valField.Kind() {\n\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tval = mapv.NewValue()\n\t}\n\t// Map entries are represented as a two-element message with fields\n\t// containing the key and value.\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr = errUnknown\n\t\tswitch num {\n\t\tcase genid.MapEntry_Key_field_number:\n\t\t\tkey, n, err = o.unmarshalScalar(b, wtyp, keyField)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\thaveKey = true\n\t\tcase genid.MapEntry_Value_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tv, n, err = o.unmarshalScalar(b, wtyp, valField)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tswitch valField.Kind() {\n\t\t\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\t\t\tif err := o.unmarshalMessage(v.Bytes(), val.Message()); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tval = v\n\t\t\t}\n\t\t\thaveVal = true\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\t// Every map entry should have entries for key and value, but this is not strictly required.\n\tif !haveKey {\n\t\tkey = keyField.Default()\n\t}\n\tif !haveVal {\n\t\tswitch valField.Kind() {\n\t\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tdefault:\n\t\t\tval = valField.Default()\n\t\t}\n\t}\n\tmapv.Set(key.MapKey(), val)\n\treturn n, nil\n}\n\n// errUnknown is used internally to indicate fields which should be added\n// to the unknown field set of a message. It is never returned from an exported\n// function.\nvar errUnknown = errors.New(\"BUG: internal error (unknown)\")\n\nvar errDecode = errors.New(\"cannot parse invalid wire-format data\")\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/decode_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// unmarshalScalar decodes a value of the given kind.\n//\n// Message values are decoded into a []byte which aliases the input data.\nfunc (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd protoreflect.FieldDescriptor) (val protoreflect.Value, n int, err error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBool(protowire.DecodeBool(v)), n, nil\n\tcase protoreflect.EnumKind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), n, nil\n\tcase protoreflect.Int32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(v)), n, nil\n\tcase protoreflect.Sint32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), n, nil\n\tcase protoreflect.Uint32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint32(uint32(v)), n, nil\n\tcase protoreflect.Int64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(int64(v)), n, nil\n\tcase protoreflect.Sint64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), n, nil\n\tcase protoreflect.Uint64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint64(v), n, nil\n\tcase protoreflect.Sfixed32Kind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(v)), n, nil\n\tcase protoreflect.Fixed32Kind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint32(uint32(v)), n, nil\n\tcase protoreflect.FloatKind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), n, nil\n\tcase protoreflect.Sfixed64Kind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(int64(v)), n, nil\n\tcase protoreflect.Fixed64Kind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint64(v), n, nil\n\tcase protoreflect.DoubleKind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfFloat64(math.Float64frombits(v)), n, nil\n\tcase protoreflect.StringKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\tif strs.EnforceUTF8(fd) && !utf8.Valid(v) {\n\t\t\treturn protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\treturn protoreflect.ValueOfString(string(v)), n, nil\n\tcase protoreflect.BytesKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), n, nil\n\tcase protoreflect.MessageKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(v), n, nil\n\tcase protoreflect.GroupKind:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeGroup(fd.Number(), b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(v), n, nil\n\tdefault:\n\t\treturn val, 0, errUnknown\n\t}\n}\n\nfunc (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list protoreflect.List, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\treturn n, nil\n\tcase protoreflect.EnumKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\treturn n, nil\n\tcase protoreflect.Int32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Sint32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\treturn n, nil\n\tcase protoreflect.Uint32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Int64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\treturn n, nil\n\tcase protoreflect.Sint64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\treturn n, nil\n\tcase protoreflect.Uint64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\treturn n, nil\n\tcase protoreflect.Sfixed32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Fixed32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\treturn n, nil\n\tcase protoreflect.FloatKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\treturn n, nil\n\tcase protoreflect.Sfixed64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\treturn n, nil\n\tcase protoreflect.Fixed64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\treturn n, nil\n\tcase protoreflect.DoubleKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\treturn n, nil\n\tcase protoreflect.StringKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tif strs.EnforceUTF8(fd) && !utf8.Valid(v) {\n\t\t\treturn 0, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfString(string(v)))\n\t\treturn n, nil\n\tcase protoreflect.BytesKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...)))\n\t\treturn n, nil\n\tcase protoreflect.MessageKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tm := list.NewElement()\n\t\tif err := o.unmarshalMessage(v, m.Message()); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tlist.Append(m)\n\t\treturn n, nil\n\tcase protoreflect.GroupKind:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeGroup(fd.Number(), b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tm := list.NewElement()\n\t\tif err := o.unmarshalMessage(v, m.Message()); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tlist.Append(m)\n\t\treturn n, nil\n\tdefault:\n\t\treturn 0, errUnknown\n\t}\n}\n\n// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices.\nvar emptyBuf [0]byte\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package proto provides functions operating on protocol buffer messages.\n//\n// For documentation on protocol buffers in general, see:\n// https://protobuf.dev.\n//\n// For a tutorial on using protocol buffers with Go, see:\n// https://protobuf.dev/getting-started/gotutorial.\n//\n// For a guide to generated Go protocol buffer code, see:\n// https://protobuf.dev/reference/go/go-generated.\n//\n// # Binary serialization\n//\n// This package contains functions to convert to and from the wire format,\n// an efficient binary serialization of protocol buffers.\n//\n//   - [Size] reports the size of a message in the wire format.\n//\n//   - [Marshal] converts a message to the wire format.\n//     The [MarshalOptions] type provides more control over wire marshaling.\n//\n//   - [Unmarshal] converts a message from the wire format.\n//     The [UnmarshalOptions] type provides more control over wire unmarshaling.\n//\n// # Basic message operations\n//\n//   - [Clone] makes a deep copy of a message.\n//\n//   - [Merge] merges the content of a message into another.\n//\n//   - [Equal] compares two messages. For more control over comparisons\n//     and detailed reporting of differences, see package\n//     [google.golang.org/protobuf/testing/protocmp].\n//\n//   - [Reset] clears the content of a message.\n//\n//   - [CheckInitialized] reports whether all required fields in a message are set.\n//\n// # Optional scalar constructors\n//\n// The API for some generated messages represents optional scalar fields\n// as pointers to a value. For example, an optional string field has the\n// Go type *string.\n//\n//   - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String]\n//     take a value and return a pointer to a new instance of it,\n//     to simplify construction of optional field values.\n//\n// Generated enum types usually have an Enum method which performs the\n// same operation.\n//\n// Optional scalar fields are only supported in proto2.\n//\n// # Extension accessors\n//\n//   - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension]\n//     access extension field values in a protocol buffer message.\n//\n// Extension fields are only supported in proto2.\n//\n// # Related packages\n//\n//   - Package [google.golang.org/protobuf/encoding/protojson] converts messages to\n//     and from JSON.\n//\n//   - Package [google.golang.org/protobuf/encoding/prototext] converts messages to\n//     and from the text format.\n//\n//   - Package [google.golang.org/protobuf/reflect/protoreflect] provides a\n//     reflection interface for protocol buffer data types.\n//\n//   - Package [google.golang.org/protobuf/testing/protocmp] provides features\n//     to compare protocol buffer messages with the [github.com/google/go-cmp/cmp]\n//     package.\n//\n//   - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic\n//     message type, suitable for working with messages where the protocol buffer\n//     type is only known at runtime.\n//\n// This module contains additional packages for more specialized use cases.\n// Consult the individual package documentation for details.\npackage proto\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/encode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\n\tprotoerrors \"google.golang.org/protobuf/internal/errors\"\n)\n\n// MarshalOptions configures the marshaler.\n//\n// Example usage:\n//\n//\tb, err := MarshalOptions{Deterministic: true}.Marshal(m)\ntype MarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowPartial allows messages that have missing required fields to marshal\n\t// without returning an error. If AllowPartial is false (the default),\n\t// Marshal will return an error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// Deterministic controls whether the same message will always be\n\t// serialized to the same bytes within the same binary.\n\t//\n\t// Setting this option guarantees that repeated serialization of\n\t// the same message will return the same bytes, and that different\n\t// processes of the same binary (which may be executing on different\n\t// machines) will serialize equal messages to the same bytes.\n\t// It has no effect on the resulting size of the encoded message compared\n\t// to a non-deterministic marshal.\n\t//\n\t// Note that the deterministic serialization is NOT canonical across\n\t// languages. It is not guaranteed to remain stable over time. It is\n\t// unstable across different builds with schema changes due to unknown\n\t// fields. Users who need canonical serialization (e.g., persistent\n\t// storage in a canonical form, fingerprinting, etc.) must define\n\t// their own canonicalization specification and implement their own\n\t// serializer rather than relying on this API.\n\t//\n\t// If deterministic serialization is requested, map entries will be\n\t// sorted by keys in lexographical order. This is an implementation\n\t// detail and subject to change.\n\tDeterministic bool\n\n\t// UseCachedSize indicates that the result of a previous Size call\n\t// may be reused.\n\t//\n\t// Setting this option asserts that:\n\t//\n\t// 1. Size has previously been called on this message with identical\n\t// options (except for UseCachedSize itself).\n\t//\n\t// 2. The message and all its submessages have not changed in any\n\t// way since the Size call. For lazily decoded messages, accessing\n\t// a message results in decoding the message, which is a change.\n\t//\n\t// If either of these invariants is violated,\n\t// the results are undefined and may include panics or corrupted output.\n\t//\n\t// Implementations MAY take this option into account to provide\n\t// better performance, but there is no guarantee that they will do so.\n\t// There is absolutely no guarantee that Size followed by Marshal with\n\t// UseCachedSize set will perform equivalently to Marshal alone.\n\tUseCachedSize bool\n}\n\n// flags turns the specified MarshalOptions (user-facing) into\n// protoiface.MarshalInputFlags (used internally by the marshaler).\n//\n// See impl.marshalOptions.Options for the inverse operation.\nfunc (o MarshalOptions) flags() protoiface.MarshalInputFlags {\n\tvar flags protoiface.MarshalInputFlags\n\n\t// Note: o.AllowPartial is always forced to true by MarshalOptions.marshal,\n\t// which is why it is not a part of MarshalInputFlags.\n\n\tif o.Deterministic {\n\t\tflags |= protoiface.MarshalDeterministic\n\t}\n\n\tif o.UseCachedSize {\n\t\tflags |= protoiface.MarshalUseCachedSize\n\t}\n\n\treturn flags\n}\n\n// Marshal returns the wire-format encoding of m.\n//\n// This is the most common entry point for encoding a Protobuf message.\n//\n// See the [MarshalOptions] type if you need more control.\nfunc Marshal(m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn nil, nil\n\t}\n\n\tout, err := MarshalOptions{}.marshal(nil, m.ProtoReflect())\n\tif len(out.Buf) == 0 && err == nil {\n\t\tout.Buf = emptyBytesForMessage(m)\n\t}\n\treturn out.Buf, err\n}\n\n// Marshal returns the wire-format encoding of m.\nfunc (o MarshalOptions) Marshal(m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn nil, nil\n\t}\n\n\tout, err := o.marshal(nil, m.ProtoReflect())\n\tif len(out.Buf) == 0 && err == nil {\n\t\tout.Buf = emptyBytesForMessage(m)\n\t}\n\treturn out.Buf, err\n}\n\n// emptyBytesForMessage returns a nil buffer if and only if m is invalid,\n// otherwise it returns a non-nil empty buffer.\n//\n// This is to assist the edge-case where user-code does the following:\n//\n//\tm1.OptionalBytes, _ = proto.Marshal(m2)\n//\n// where they expect the proto2 \"optional_bytes\" field to be populated\n// if any only if m2 is a valid message.\nfunc emptyBytesForMessage(m Message) []byte {\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\treturn nil\n\t}\n\treturn emptyBuf[:]\n}\n\n// MarshalAppend appends the wire-format encoding of m to b,\n// returning the result.\n//\n// This is a less common entry point than [Marshal], which is only needed if you\n// need to supply your own buffers for performance reasons.\nfunc (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to append.\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\tout, err := o.marshal(b, m.ProtoReflect())\n\treturn out.Buf, err\n}\n\n// MarshalState returns the wire-format encoding of a message.\n//\n// This method permits fine-grained control over the marshaler.\n// Most users should use [Marshal] instead.\nfunc (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) {\n\treturn o.marshal(in.Buf, in.Message)\n}\n\n// marshal is a centralized function that all marshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for marshal that do not go through this.\nfunc (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoiface.MarshalOutput, err error) {\n\tallowPartial := o.AllowPartial\n\to.AllowPartial = true\n\tif methods := protoMethods(m); methods != nil && methods.Marshal != nil &&\n\t\t!(o.Deterministic && methods.Flags&protoiface.SupportMarshalDeterministic == 0) {\n\t\tin := protoiface.MarshalInput{\n\t\t\tMessage: m,\n\t\t\tBuf:     b,\n\t\t\tFlags:   o.flags(),\n\t\t}\n\t\tif methods.Size != nil {\n\t\t\tsout := methods.Size(protoiface.SizeInput{\n\t\t\t\tMessage: m,\n\t\t\t\tFlags:   in.Flags,\n\t\t\t})\n\t\t\tif cap(b) < len(b)+sout.Size {\n\t\t\t\tin.Buf = make([]byte, len(b), growcap(cap(b), len(b)+sout.Size))\n\t\t\t\tcopy(in.Buf, b)\n\t\t\t}\n\t\t\tin.Flags |= protoiface.MarshalUseCachedSize\n\t\t}\n\t\tout, err = methods.Marshal(in)\n\t} else {\n\t\tout.Buf, err = o.marshalMessageSlow(b, m)\n\t}\n\tif err != nil {\n\t\tvar mismatch *protoerrors.SizeMismatchError\n\t\tif errors.As(err, &mismatch) {\n\t\t\treturn out, fmt.Errorf(\"marshaling %s: %v\", string(m.Descriptor().FullName()), err)\n\t\t}\n\t\treturn out, err\n\t}\n\tif allowPartial {\n\t\treturn out, nil\n\t}\n\treturn out, checkInitialized(m)\n}\n\nfunc (o MarshalOptions) marshalMessage(b []byte, m protoreflect.Message) ([]byte, error) {\n\tout, err := o.marshal(b, m)\n\treturn out.Buf, err\n}\n\n// growcap scales up the capacity of a slice.\n//\n// Given a slice with a current capacity of oldcap and a desired\n// capacity of wantcap, growcap returns a new capacity >= wantcap.\n//\n// The algorithm is mostly identical to the one used by append as of Go 1.14.\nfunc growcap(oldcap, wantcap int) (newcap int) {\n\tif wantcap > oldcap*2 {\n\t\tnewcap = wantcap\n\t} else if oldcap < 1024 {\n\t\t// The Go 1.14 runtime takes this case when len(s) < 1024,\n\t\t// not when cap(s) < 1024. The difference doesn't seem\n\t\t// significant here.\n\t\tnewcap = oldcap * 2\n\t} else {\n\t\tnewcap = oldcap\n\t\tfor 0 < newcap && newcap < wantcap {\n\t\t\tnewcap += newcap / 4\n\t\t}\n\t\tif newcap <= 0 {\n\t\t\tnewcap = wantcap\n\t\t}\n\t}\n\treturn newcap\n}\n\nfunc (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([]byte, error) {\n\tif messageset.IsMessageSet(m.Descriptor()) {\n\t\treturn o.marshalMessageSet(b, m)\n\t}\n\tfieldOrder := order.AnyFieldOrder\n\tif o.Deterministic {\n\t\t// TODO: This should use a more natural ordering like NumberFieldOrder,\n\t\t// but doing so breaks golden tests that make invalid assumption about\n\t\t// output stability of this implementation.\n\t\tfieldOrder = order.LegacyFieldOrder\n\t}\n\tvar err error\n\torder.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tb, err = o.marshalField(b, fd, v)\n\t\treturn err == nil\n\t})\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tb = append(b, m.GetUnknown()...)\n\treturn b, nil\n}\n\nfunc (o MarshalOptions) marshalField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn o.marshalList(b, fd, value.List())\n\tcase fd.IsMap():\n\t\treturn o.marshalMap(b, fd, value.Map())\n\tdefault:\n\t\tb = protowire.AppendTag(b, fd.Number(), wireTypes[fd.Kind()])\n\t\treturn o.marshalSingular(b, fd, value)\n\t}\n}\n\nfunc (o MarshalOptions) marshalList(b []byte, fd protoreflect.FieldDescriptor, list protoreflect.List) ([]byte, error) {\n\tif fd.IsPacked() && list.Len() > 0 {\n\t\tb = protowire.AppendTag(b, fd.Number(), protowire.BytesType)\n\t\tb, pos := appendSpeculativeLength(b)\n\t\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\t\tvar err error\n\t\t\tb, err = o.marshalSingular(b, fd, list.Get(i))\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\t\treturn b, nil\n\t}\n\n\tkind := fd.Kind()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tvar err error\n\t\tb = protowire.AppendTag(b, fd.Number(), wireTypes[kind])\n\t\tb, err = o.marshalSingular(b, fd, list.Get(i))\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) ([]byte, error) {\n\tkeyf := fd.MapKey()\n\tvalf := fd.MapValue()\n\tkeyOrder := order.AnyKeyOrder\n\tif o.Deterministic {\n\t\tkeyOrder = order.GenericKeyOrder\n\t}\n\tvar err error\n\torder.RangeEntries(mapv, keyOrder, func(key protoreflect.MapKey, value protoreflect.Value) bool {\n\t\tb = protowire.AppendTag(b, fd.Number(), protowire.BytesType)\n\t\tvar pos int\n\t\tb, pos = appendSpeculativeLength(b)\n\n\t\tb, err = o.marshalField(b, keyf, key.Value())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tb, err = o.marshalField(b, valf, value)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\t\treturn true\n\t})\n\treturn b, err\n}\n\n// When encoding length-prefixed fields, we speculatively set aside some number of bytes\n// for the length, encode the data, and then encode the length (shifting the data if necessary\n// to make room).\nconst speculativeLength = 1\n\nfunc appendSpeculativeLength(b []byte) ([]byte, int) {\n\tpos := len(b)\n\tb = append(b, \"\\x00\\x00\\x00\\x00\"[:speculativeLength]...)\n\treturn b, pos\n}\n\nfunc finishSpeculativeLength(b []byte, pos int) []byte {\n\tmlen := len(b) - pos - speculativeLength\n\tmsiz := protowire.SizeVarint(uint64(mlen))\n\tif msiz != speculativeLength {\n\t\tfor i := 0; i < msiz-speculativeLength; i++ {\n\t\t\tb = append(b, 0)\n\t\t}\n\t\tcopy(b[pos+msiz:], b[pos+speculativeLength:])\n\t\tb = b[:pos+msiz+mlen]\n\t}\n\tprotowire.AppendVarint(b[:pos], uint64(mlen))\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/encode_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar wireTypes = map[protoreflect.Kind]protowire.Type{\n\tprotoreflect.BoolKind:     protowire.VarintType,\n\tprotoreflect.EnumKind:     protowire.VarintType,\n\tprotoreflect.Int32Kind:    protowire.VarintType,\n\tprotoreflect.Sint32Kind:   protowire.VarintType,\n\tprotoreflect.Uint32Kind:   protowire.VarintType,\n\tprotoreflect.Int64Kind:    protowire.VarintType,\n\tprotoreflect.Sint64Kind:   protowire.VarintType,\n\tprotoreflect.Uint64Kind:   protowire.VarintType,\n\tprotoreflect.Sfixed32Kind: protowire.Fixed32Type,\n\tprotoreflect.Fixed32Kind:  protowire.Fixed32Type,\n\tprotoreflect.FloatKind:    protowire.Fixed32Type,\n\tprotoreflect.Sfixed64Kind: protowire.Fixed64Type,\n\tprotoreflect.Fixed64Kind:  protowire.Fixed64Type,\n\tprotoreflect.DoubleKind:   protowire.Fixed64Type,\n\tprotoreflect.StringKind:   protowire.BytesType,\n\tprotoreflect.BytesKind:    protowire.BytesType,\n\tprotoreflect.MessageKind:  protowire.BytesType,\n\tprotoreflect.GroupKind:    protowire.StartGroupType,\n}\n\nfunc (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\tcase protoreflect.EnumKind:\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\tcase protoreflect.Int32Kind:\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\tcase protoreflect.Sint32Kind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\tcase protoreflect.Uint32Kind:\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\tcase protoreflect.Int64Kind:\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\tcase protoreflect.Sint64Kind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\tcase protoreflect.Uint64Kind:\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\tcase protoreflect.Sfixed32Kind:\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\tcase protoreflect.Fixed32Kind:\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\tcase protoreflect.FloatKind:\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\tcase protoreflect.Sfixed64Kind:\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\tcase protoreflect.Fixed64Kind:\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\tcase protoreflect.DoubleKind:\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\tcase protoreflect.StringKind:\n\t\tif strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) {\n\t\t\treturn b, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\tb = protowire.AppendString(b, v.String())\n\tcase protoreflect.BytesKind:\n\t\tb = protowire.AppendBytes(b, v.Bytes())\n\tcase protoreflect.MessageKind:\n\t\tvar pos int\n\t\tvar err error\n\t\tb, pos = appendSpeculativeLength(b)\n\t\tb, err = o.marshalMessage(b, v.Message())\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\tcase protoreflect.GroupKind:\n\t\tvar err error\n\t\tb, err = o.marshalMessage(b, v.Message())\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType))\n\tdefault:\n\t\treturn b, errors.New(\"invalid kind %v\", fd.Kind())\n\t}\n\treturn b, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/equal.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Equal reports whether two messages are equal,\n// by recursively comparing the fields of the message.\n//\n//   - Bytes fields are equal if they contain identical bytes.\n//     Empty bytes (regardless of nil-ness) are considered equal.\n//\n//   - Floating-point fields are equal if they contain the same value.\n//     Unlike the == operator, a NaN is equal to another NaN.\n//\n//   - Other scalar fields are equal if they contain the same value.\n//\n//   - Message fields are equal if they have\n//     the same set of populated known and extension field values, and\n//     the same set of unknown fields values.\n//\n//   - Lists are equal if they are the same length and\n//     each corresponding element is equal.\n//\n//   - Maps are equal if they have the same set of keys and\n//     the corresponding value for each key is equal.\n//\n// An invalid message is not equal to a valid message.\n// An invalid message is only equal to another invalid message of the\n// same type. An invalid message often corresponds to a nil pointer\n// of the concrete message type. For example, (*pb.M)(nil) is not equal\n// to &pb.M{}.\n// If two valid messages marshal to the same bytes under deterministic\n// serialization, then Equal is guaranteed to report true.\nfunc Equal(x, y Message) bool {\n\tif x == nil || y == nil {\n\t\treturn x == nil && y == nil\n\t}\n\tif reflect.TypeOf(x).Kind() == reflect.Ptr && x == y {\n\t\t// Avoid an expensive comparison if both inputs are identical pointers.\n\t\treturn true\n\t}\n\tmx := x.ProtoReflect()\n\tmy := y.ProtoReflect()\n\tif mx.IsValid() != my.IsValid() {\n\t\treturn false\n\t}\n\n\t// Only one of the messages needs to implement the fast-path for it to work.\n\tpmx := protoMethods(mx)\n\tpmy := protoMethods(my)\n\tif pmx != nil && pmy != nil && pmx.Equal != nil && pmy.Equal != nil {\n\t\treturn pmx.Equal(protoiface.EqualInput{MessageA: mx, MessageB: my}).Equal\n\t}\n\n\tvx := protoreflect.ValueOfMessage(mx)\n\tvy := protoreflect.ValueOfMessage(my)\n\treturn vx.Equal(vy)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// HasExtension reports whether an extension field is populated.\n// It returns false if m is invalid or if xt does not extend m.\nfunc HasExtension(m Message, xt protoreflect.ExtensionType) bool {\n\t// Treat nil message interface or descriptor as an empty message; no populated\n\t// fields.\n\tif m == nil || xt == nil {\n\t\treturn false\n\t}\n\n\t// As a special-case, we reports invalid or mismatching descriptors\n\t// as always not being populated (since they aren't).\n\tmr := m.ProtoReflect()\n\txd := xt.TypeDescriptor()\n\tif mr.Descriptor() != xd.ContainingMessage() {\n\t\treturn false\n\t}\n\n\treturn mr.Has(xd)\n}\n\n// ClearExtension clears an extension field such that subsequent\n// [HasExtension] calls return false.\n// It panics if m is invalid or if xt does not extend m.\nfunc ClearExtension(m Message, xt protoreflect.ExtensionType) {\n\tm.ProtoReflect().Clear(xt.TypeDescriptor())\n}\n\n// GetExtension retrieves the value for an extension field.\n// If the field is unpopulated, it returns the default value for\n// scalars and an immutable, empty value for lists or messages.\n// It panics if xt does not extend m.\n//\n// The type of the value is dependent on the field type of the extension.\n// For extensions generated by protoc-gen-go, the Go type is as follows:\n//\n//\t╔═══════════════════╤═════════════════════════╗\n//\t║ Go type           │ Protobuf kind           ║\n//\t╠═══════════════════╪═════════════════════════╣\n//\t║ bool              │ bool                    ║\n//\t║ int32             │ int32, sint32, sfixed32 ║\n//\t║ int64             │ int64, sint64, sfixed64 ║\n//\t║ uint32            │ uint32, fixed32         ║\n//\t║ uint64            │ uint64, fixed64         ║\n//\t║ float32           │ float                   ║\n//\t║ float64           │ double                  ║\n//\t║ string            │ string                  ║\n//\t║ []byte            │ bytes                   ║\n//\t║ protoreflect.Enum │ enum                    ║\n//\t║ proto.Message     │ message, group          ║\n//\t╚═══════════════════╧═════════════════════════╝\n//\n// The protoreflect.Enum and proto.Message types are the concrete Go type\n// associated with the named enum or message. Repeated fields are represented\n// using a Go slice of the base element type.\n//\n// If a generated extension descriptor variable is directly passed to\n// GetExtension, then the call should be followed immediately by a\n// type assertion to the expected output value. For example:\n//\n//\tmm := proto.GetExtension(m, foopb.E_MyExtension).(*foopb.MyMessage)\n//\n// This pattern enables static analysis tools to verify that the asserted type\n// matches the Go type associated with the extension field and\n// also enables a possible future migration to a type-safe extension API.\n//\n// Since singular messages are the most common extension type, the pattern of\n// calling HasExtension followed by GetExtension may be simplified to:\n//\n//\tif mm := proto.GetExtension(m, foopb.E_MyExtension).(*foopb.MyMessage); mm != nil {\n//\t    ... // make use of mm\n//\t}\n//\n// The mm variable is non-nil if and only if HasExtension reports true.\nfunc GetExtension(m Message, xt protoreflect.ExtensionType) any {\n\t// Treat nil message interface as an empty message; return the default.\n\tif m == nil {\n\t\treturn xt.InterfaceOf(xt.Zero())\n\t}\n\n\treturn xt.InterfaceOf(m.ProtoReflect().Get(xt.TypeDescriptor()))\n}\n\n// SetExtension stores the value of an extension field.\n// It panics if m is invalid, xt does not extend m, or if type of v\n// is invalid for the specified extension field.\n//\n// The type of the value is dependent on the field type of the extension.\n// For extensions generated by protoc-gen-go, the Go type is as follows:\n//\n//\t╔═══════════════════╤═════════════════════════╗\n//\t║ Go type           │ Protobuf kind           ║\n//\t╠═══════════════════╪═════════════════════════╣\n//\t║ bool              │ bool                    ║\n//\t║ int32             │ int32, sint32, sfixed32 ║\n//\t║ int64             │ int64, sint64, sfixed64 ║\n//\t║ uint32            │ uint32, fixed32         ║\n//\t║ uint64            │ uint64, fixed64         ║\n//\t║ float32           │ float                   ║\n//\t║ float64           │ double                  ║\n//\t║ string            │ string                  ║\n//\t║ []byte            │ bytes                   ║\n//\t║ protoreflect.Enum │ enum                    ║\n//\t║ proto.Message     │ message, group          ║\n//\t╚═══════════════════╧═════════════════════════╝\n//\n// The protoreflect.Enum and proto.Message types are the concrete Go type\n// associated with the named enum or message. Repeated fields are represented\n// using a Go slice of the base element type.\n//\n// If a generated extension descriptor variable is directly passed to\n// SetExtension (e.g., foopb.E_MyExtension), then the value should be a\n// concrete type that matches the expected Go type for the extension descriptor\n// so that static analysis tools can verify type correctness.\n// This also enables a possible future migration to a type-safe extension API.\nfunc SetExtension(m Message, xt protoreflect.ExtensionType, v any) {\n\txd := xt.TypeDescriptor()\n\tpv := xt.ValueOf(v)\n\n\t// Specially treat an invalid list, map, or message as clear.\n\tisValid := true\n\tswitch {\n\tcase xd.IsList():\n\t\tisValid = pv.List().IsValid()\n\tcase xd.IsMap():\n\t\tisValid = pv.Map().IsValid()\n\tcase xd.Message() != nil:\n\t\tisValid = pv.Message().IsValid()\n\t}\n\tif !isValid {\n\t\tm.ProtoReflect().Clear(xd)\n\t\treturn\n\t}\n\n\tm.ProtoReflect().Set(xd, pv)\n}\n\n// RangeExtensions iterates over every populated extension field in m in an\n// undefined order, calling f for each extension type and value encountered.\n// It returns immediately if f returns false.\n// While iterating, mutating operations may only be performed\n// on the current extension field.\nfunc RangeExtensions(m Message, f func(protoreflect.ExtensionType, any) bool) {\n\t// Treat nil message interface as an empty message; nothing to range over.\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.ProtoReflect().Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\txt := fd.(protoreflect.ExtensionTypeDescriptor).Type()\n\t\t\tvi := xt.InterfaceOf(v)\n\t\t\treturn f(xt, vi)\n\t\t}\n\t\treturn true\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/merge.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Merge merges src into dst, which must be a message with the same descriptor.\n//\n// Populated scalar fields in src are copied to dst, while populated\n// singular messages in src are merged into dst by recursively calling Merge.\n// The elements of every list field in src is appended to the corresponded\n// list fields in dst. The entries of every map field in src is copied into\n// the corresponding map field in dst, possibly replacing existing entries.\n// The unknown fields of src are appended to the unknown fields of dst.\n//\n// It is semantically equivalent to unmarshaling the encoded form of src\n// into dst with the [UnmarshalOptions.Merge] option specified.\nfunc Merge(dst, src Message) {\n\t// TODO: Should nil src be treated as semantically equivalent to a\n\t// untyped, read-only, empty message? What about a nil dst?\n\n\tdstMsg, srcMsg := dst.ProtoReflect(), src.ProtoReflect()\n\tif dstMsg.Descriptor() != srcMsg.Descriptor() {\n\t\tif got, want := dstMsg.Descriptor().FullName(), srcMsg.Descriptor().FullName(); got != want {\n\t\t\tpanic(fmt.Sprintf(\"descriptor mismatch: %v != %v\", got, want))\n\t\t}\n\t\tpanic(\"descriptor mismatch\")\n\t}\n\tmergeOptions{}.mergeMessage(dstMsg, srcMsg)\n}\n\n// Clone returns a deep copy of m.\n// If the top-level message is invalid, it returns an invalid message as well.\nfunc Clone(m Message) Message {\n\t// NOTE: Most usages of Clone assume the following properties:\n\t//\tt := reflect.TypeOf(m)\n\t//\tt == reflect.TypeOf(m.ProtoReflect().New().Interface())\n\t//\tt == reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface())\n\t//\n\t// Embedding protobuf messages breaks this since the parent type will have\n\t// a forwarded ProtoReflect method, but the Interface method will return\n\t// the underlying embedded message type.\n\tif m == nil {\n\t\treturn nil\n\t}\n\tsrc := m.ProtoReflect()\n\tif !src.IsValid() {\n\t\treturn src.Type().Zero().Interface()\n\t}\n\tdst := src.New()\n\tmergeOptions{}.mergeMessage(dst, src)\n\treturn dst.Interface()\n}\n\n// CloneOf returns a deep copy of m. If the top-level message is invalid,\n// it returns an invalid message as well.\nfunc CloneOf[M Message](m M) M {\n\treturn Clone(m).(M)\n}\n\n// mergeOptions provides a namespace for merge functions, and can be\n// exported in the future if we add user-visible merge options.\ntype mergeOptions struct{}\n\nfunc (o mergeOptions) mergeMessage(dst, src protoreflect.Message) {\n\tmethods := protoMethods(dst)\n\tif methods != nil && methods.Merge != nil {\n\t\tin := protoiface.MergeInput{\n\t\t\tDestination: dst,\n\t\t\tSource:      src,\n\t\t}\n\t\tout := methods.Merge(in)\n\t\tif out.Flags&protoiface.MergeComplete != 0 {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif !dst.IsValid() {\n\t\tpanic(fmt.Sprintf(\"cannot merge into invalid %v message\", dst.Descriptor().FullName()))\n\t}\n\n\tsrc.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\to.mergeList(dst.Mutable(fd).List(), v.List(), fd)\n\t\tcase fd.IsMap():\n\t\t\to.mergeMap(dst.Mutable(fd).Map(), v.Map(), fd.MapValue())\n\t\tcase fd.Message() != nil:\n\t\t\to.mergeMessage(dst.Mutable(fd).Message(), v.Message())\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Set(fd, o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Set(fd, v)\n\t\t}\n\t\treturn true\n\t})\n\n\tif len(src.GetUnknown()) > 0 {\n\t\tdst.SetUnknown(append(dst.GetUnknown(), src.GetUnknown()...))\n\t}\n}\n\nfunc (o mergeOptions) mergeList(dst, src protoreflect.List, fd protoreflect.FieldDescriptor) {\n\t// Merge semantics appends to the end of the existing list.\n\tfor i, n := 0, src.Len(); i < n; i++ {\n\t\tswitch v := src.Get(i); {\n\t\tcase fd.Message() != nil:\n\t\t\tdstv := dst.NewElement()\n\t\t\to.mergeMessage(dstv.Message(), v.Message())\n\t\t\tdst.Append(dstv)\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Append(o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Append(v)\n\t\t}\n\t}\n}\n\nfunc (o mergeOptions) mergeMap(dst, src protoreflect.Map, fd protoreflect.FieldDescriptor) {\n\t// Merge semantics replaces, rather than merges into existing entries.\n\tsrc.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.Message() != nil:\n\t\t\tdstv := dst.NewValue()\n\t\t\to.mergeMessage(dstv.Message(), v.Message())\n\t\t\tdst.Set(k, dstv)\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Set(k, o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Set(k, v)\n\t\t}\n\t\treturn true\n\t})\n}\n\nfunc (o mergeOptions) cloneBytes(v protoreflect.Value) protoreflect.Value {\n\treturn protoreflect.ValueOfBytes(append([]byte{}, v.Bytes()...))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nfunc (o MarshalOptions) sizeMessageSet(m protoreflect.Message) (size int) {\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tsize += messageset.SizeField(fd.Number())\n\t\tsize += protowire.SizeTag(messageset.FieldMessage)\n\t\tsize += protowire.SizeBytes(o.size(v.Message()))\n\t\treturn true\n\t})\n\tsize += messageset.SizeUnknown(m.GetUnknown())\n\treturn size\n}\n\nfunc (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]byte, error) {\n\tif !flags.ProtoLegacy {\n\t\treturn b, errors.New(\"no support for message_set_wire_format\")\n\t}\n\tfieldOrder := order.AnyFieldOrder\n\tif o.Deterministic {\n\t\tfieldOrder = order.NumberFieldOrder\n\t}\n\tvar err error\n\torder.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tb, err = o.marshalMessageSetField(b, fd, v)\n\t\treturn err == nil\n\t})\n\tif err != nil {\n\t\treturn b, err\n\t}\n\treturn messageset.AppendUnknown(b, m.GetUnknown())\n}\n\nfunc (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) {\n\tb = messageset.AppendFieldStart(b, fd.Number())\n\tb = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType)\n\tcalculatedSize := o.Size(value.Message().Interface())\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := o.marshalMessage(b, value.Message())\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\tb = messageset.AppendFieldEnd(b)\n\treturn b, nil\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSet(b []byte, m protoreflect.Message) error {\n\tif !flags.ProtoLegacy {\n\t\treturn errors.New(\"no support for message_set_wire_format\")\n\t}\n\treturn messageset.Unmarshal(b, false, func(num protowire.Number, v []byte) error {\n\t\terr := o.unmarshalMessageSetField(m, num, v)\n\t\tif err == errUnknown {\n\t\t\tunknown := m.GetUnknown()\n\t\t\tunknown = protowire.AppendTag(unknown, num, protowire.BytesType)\n\t\t\tunknown = protowire.AppendBytes(unknown, v)\n\t\t\tm.SetUnknown(unknown)\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t})\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte) error {\n\tmd := m.Descriptor()\n\tif !md.ExtensionRanges().Has(num) {\n\t\treturn errUnknown\n\t}\n\txt, err := o.Resolver.FindExtensionByNumber(md.FullName(), num)\n\tif err == protoregistry.NotFound {\n\t\treturn errUnknown\n\t}\n\tif err != nil {\n\t\treturn errors.New(\"%v: unable to resolve extension %v: %v\", md.FullName(), num, err)\n\t}\n\txd := xt.TypeDescriptor()\n\tif err := o.unmarshalMessage(v, m.Mutable(xd).Message()); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Message is the top-level interface that all messages must implement.\n// It provides access to a reflective view of a message.\n// Any implementation of this interface may be used with all functions in the\n// protobuf module that accept a Message, except where otherwise specified.\n//\n// This is the v2 interface definition for protobuf messages.\n// The v1 interface definition is [github.com/golang/protobuf/proto.Message].\n//\n//   - To convert a v1 message to a v2 message,\n//     use [google.golang.org/protobuf/protoadapt.MessageV2Of].\n//   - To convert a v2 message to a v1 message,\n//     use [google.golang.org/protobuf/protoadapt.MessageV1Of].\ntype Message = protoreflect.ProtoMessage\n\n// Error matches all errors produced by packages in the protobuf module\n// according to [errors.Is].\n//\n// Example usage:\n//\n//\tif errors.Is(err, proto.Error) { ... }\nvar Error error\n\nfunc init() {\n\tError = errors.Error\n}\n\n// MessageName returns the full name of m.\n// If m is nil, it returns an empty string.\nfunc MessageName(m Message) protoreflect.FullName {\n\tif m == nil {\n\t\treturn \"\"\n\t}\n\treturn m.ProtoReflect().Descriptor().FullName()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto_methods.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// The protoreflect build tag disables use of fast-path methods.\n//go:build !protoreflect\n// +build !protoreflect\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nconst hasProtoMethods = true\n\nfunc protoMethods(m protoreflect.Message) *protoiface.Methods {\n\treturn m.ProtoMethods()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto_reflect.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// The protoreflect build tag disables use of fast-path methods.\n//go:build protoreflect\n// +build protoreflect\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nconst hasProtoMethods = false\n\nfunc protoMethods(m protoreflect.Message) *protoiface.Methods {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/reset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Reset clears every field in the message.\n// The resulting message shares no observable memory with its previous state\n// other than the memory for the message itself.\nfunc Reset(m Message) {\n\tif mr, ok := m.(interface{ Reset() }); ok && hasProtoMethods {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\tresetMessage(m.ProtoReflect())\n}\n\nfunc resetMessage(m protoreflect.Message) {\n\tif !m.IsValid() {\n\t\tpanic(fmt.Sprintf(\"cannot reset invalid %v message\", m.Descriptor().FullName()))\n\t}\n\n\t// Clear all known fields.\n\tfds := m.Descriptor().Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tm.Clear(fds.Get(i))\n\t}\n\n\t// Clear extension fields.\n\tm.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\tm.Clear(fd)\n\t\treturn true\n\t})\n\n\t// Clear unknown fields.\n\tm.SetUnknown(nil)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/size.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Size returns the size in bytes of the wire-format encoding of m.\n//\n// Note that Size might return more bytes than Marshal will write in the case of\n// lazily decoded messages that arrive in non-minimal wire format: see\n// https://protobuf.dev/reference/go/size/ for more details.\nfunc Size(m Message) int {\n\treturn MarshalOptions{}.Size(m)\n}\n\n// Size returns the size in bytes of the wire-format encoding of m.\n//\n// Note that Size might return more bytes than Marshal will write in the case of\n// lazily decoded messages that arrive in non-minimal wire format: see\n// https://protobuf.dev/reference/go/size/ for more details.\nfunc (o MarshalOptions) Size(m Message) int {\n\t// Treat a nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn 0\n\t}\n\n\treturn o.size(m.ProtoReflect())\n}\n\n// size is a centralized function that all size operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for size that do not go through this.\nfunc (o MarshalOptions) size(m protoreflect.Message) (size int) {\n\tmethods := protoMethods(m)\n\tif methods != nil && methods.Size != nil {\n\t\tout := methods.Size(protoiface.SizeInput{\n\t\t\tMessage: m,\n\t\t\tFlags:   o.flags(),\n\t\t})\n\t\treturn out.Size\n\t}\n\tif methods != nil && methods.Marshal != nil {\n\t\t// This is not efficient, but we don't have any choice.\n\t\t// This case is mainly used for legacy types with a Marshal method.\n\t\tout, _ := methods.Marshal(protoiface.MarshalInput{\n\t\t\tMessage: m,\n\t\t\tFlags:   o.flags(),\n\t\t})\n\t\treturn len(out.Buf)\n\t}\n\treturn o.sizeMessageSlow(m)\n}\n\nfunc (o MarshalOptions) sizeMessageSlow(m protoreflect.Message) (size int) {\n\tif messageset.IsMessageSet(m.Descriptor()) {\n\t\treturn o.sizeMessageSet(m)\n\t}\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tsize += o.sizeField(fd, v)\n\t\treturn true\n\t})\n\tsize += len(m.GetUnknown())\n\treturn size\n}\n\nfunc (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) {\n\tnum := fd.Number()\n\tswitch {\n\tcase fd.IsList():\n\t\treturn o.sizeList(num, fd, value.List())\n\tcase fd.IsMap():\n\t\treturn o.sizeMap(num, fd, value.Map())\n\tdefault:\n\t\treturn protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), value)\n\t}\n}\n\nfunc (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) {\n\tsizeTag := protowire.SizeTag(num)\n\n\tif fd.IsPacked() && list.Len() > 0 {\n\t\tcontent := 0\n\t\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\t\tcontent += o.sizeSingular(num, fd.Kind(), list.Get(i))\n\t\t}\n\t\treturn sizeTag + protowire.SizeBytes(content)\n\t}\n\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tsize += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i))\n\t}\n\treturn size\n}\n\nfunc (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) {\n\tsizeTag := protowire.SizeTag(num)\n\n\tmapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool {\n\t\tsize += sizeTag\n\t\tsize += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value))\n\t\treturn true\n\t})\n\treturn size\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/size_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int {\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\treturn protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\tcase protoreflect.EnumKind:\n\t\treturn protowire.SizeVarint(uint64(v.Enum()))\n\tcase protoreflect.Int32Kind:\n\t\treturn protowire.SizeVarint(uint64(int32(v.Int())))\n\tcase protoreflect.Sint32Kind:\n\t\treturn protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\tcase protoreflect.Uint32Kind:\n\t\treturn protowire.SizeVarint(uint64(uint32(v.Uint())))\n\tcase protoreflect.Int64Kind:\n\t\treturn protowire.SizeVarint(uint64(v.Int()))\n\tcase protoreflect.Sint64Kind:\n\t\treturn protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\tcase protoreflect.Uint64Kind:\n\t\treturn protowire.SizeVarint(v.Uint())\n\tcase protoreflect.Sfixed32Kind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.Fixed32Kind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.FloatKind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.Sfixed64Kind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.Fixed64Kind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.DoubleKind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.StringKind:\n\t\treturn protowire.SizeBytes(len(v.String()))\n\tcase protoreflect.BytesKind:\n\t\treturn protowire.SizeBytes(len(v.Bytes()))\n\tcase protoreflect.MessageKind:\n\t\treturn protowire.SizeBytes(o.size(v.Message()))\n\tcase protoreflect.GroupKind:\n\t\treturn protowire.SizeGroup(num, o.size(v.Message()))\n\tdefault:\n\t\treturn 0\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/wrapperopaque.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\n// ValueOrNil returns nil if has is false, or a pointer to a new variable\n// containing the value returned by the specified getter.\n//\n// This function is similar to the wrappers (proto.Int32(), proto.String(),\n// etc.), but is generic (works for any field type) and works with the hasser\n// and getter of a field, as opposed to a value.\n//\n// This is convenient when populating builder fields.\n//\n// Example:\n//\n//\thop := attr.GetDirectHop()\n//\tinjectedRoute := ripb.InjectedRoute_builder{\n//\t  Prefixes: route.GetPrefixes(),\n//\t  NextHop:  proto.ValueOrNil(hop.HasAddress(), hop.GetAddress),\n//\t}\nfunc ValueOrNil[T any](has bool, getter func() T) *T {\n\tif !has {\n\t\treturn nil\n\t}\n\tv := getter()\n\treturn &v\n}\n\n// ValueOrDefault returns the protobuf message val if val is not nil, otherwise\n// it returns a pointer to an empty val message.\n//\n// This function allows for translating code from the old Open Struct API to the\n// new Opaque API.\n//\n// The old Open Struct API represented oneof fields with a wrapper struct:\n//\n//\tvar signedImg *accountpb.SignedImage\n//\tprofile := &accountpb.Profile{\n//\t\t// The Avatar oneof will be set, with an empty SignedImage.\n//\t\tAvatar: &accountpb.Profile_SignedImage{signedImg},\n//\t}\n//\n// The new Opaque API treats oneof fields like regular fields, there are no more\n// wrapper structs:\n//\n//\tvar signedImg *accountpb.SignedImage\n//\tprofile := &accountpb.Profile{}\n//\tprofile.SetSignedImage(signedImg)\n//\n// For convenience, the Opaque API also offers Builders, which allow for a\n// direct translation of struct initialization. However, because Builders use\n// nilness to represent field presence (but there is no non-nil wrapper struct\n// anymore), Builders cannot distinguish between an unset oneof and a set oneof\n// with nil message. The above code would need to be translated with help of the\n// ValueOrDefault function to retain the same behavior:\n//\n//\tvar signedImg *accountpb.SignedImage\n//\treturn &accountpb.Profile_builder{\n//\t\tSignedImage: proto.ValueOrDefault(signedImg),\n//\t}.Build()\nfunc ValueOrDefault[T interface {\n\t*P\n\tMessage\n}, P any](val T) T {\n\tif val == nil {\n\t\treturn T(new(P))\n\t}\n\treturn val\n}\n\n// ValueOrDefaultBytes is like ValueOrDefault but for working with fields of\n// type []byte.\nfunc ValueOrDefaultBytes(val []byte) []byte {\n\tif val == nil {\n\t\treturn []byte{}\n\t}\n\treturn val\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\n// Bool stores v in a new bool value and returns a pointer to it.\nfunc Bool(v bool) *bool { return &v }\n\n// Int32 stores v in a new int32 value and returns a pointer to it.\nfunc Int32(v int32) *int32 { return &v }\n\n// Int64 stores v in a new int64 value and returns a pointer to it.\nfunc Int64(v int64) *int64 { return &v }\n\n// Float32 stores v in a new float32 value and returns a pointer to it.\nfunc Float32(v float32) *float32 { return &v }\n\n// Float64 stores v in a new float64 value and returns a pointer to it.\nfunc Float64(v float64) *float64 { return &v }\n\n// Uint32 stores v in a new uint32 value and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 { return &v }\n\n// Uint64 stores v in a new uint64 value and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 { return &v }\n\n// String stores v in a new string value and returns a pointer to it.\nfunc String(v string) *string { return &v }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/protoadapt/convert.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoadapt bridges the original and new proto APIs.\npackage protoadapt\n\nimport (\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\n// MessageV1 is the original [github.com/golang/protobuf/proto.Message] type.\ntype MessageV1 = protoiface.MessageV1\n\n// MessageV2 is the [google.golang.org/protobuf/proto.Message] type used by the\n// current [google.golang.org/protobuf] module, adding support for reflection.\ntype MessageV2 = proto.Message\n\n// MessageV1Of converts a v2 message to a v1 message.\n// It returns nil if m is nil.\nfunc MessageV1Of(m MessageV2) MessageV1 {\n\treturn protoimpl.X.ProtoMessageV1Of(m)\n}\n\n// MessageV2Of converts a v1 message to a v2 message.\n// It returns nil if m is nil.\nfunc MessageV2Of(m MessageV1) MessageV2 {\n\treturn protoimpl.X.ProtoMessageV2Of(m)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protodesc provides functionality for converting\n// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values.\n//\n// The google.protobuf.FileDescriptorProto is a protobuf message that describes\n// the type information for a .proto file in a form that is easily serializable.\n// The [protoreflect.FileDescriptor] is a more structured representation of\n// the FileDescriptorProto message where references and remote dependencies\n// can be directly followed.\npackage protodesc\n\nimport (\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/editionssupport\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// Resolver is the resolver used by [NewFile] to resolve dependencies.\n// The enums and messages provided must belong to some parent file,\n// which is also registered.\n//\n// It is implemented by [protoregistry.Files].\ntype Resolver interface {\n\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n}\n\n// FileOptions configures the construction of file descriptors.\ntype FileOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowUnresolvable configures New to permissively allow unresolvable\n\t// file, enum, or message dependencies. Unresolved dependencies are replaced\n\t// by placeholder equivalents.\n\t//\n\t// The following dependencies may be left unresolved:\n\t//\t• Resolving an imported file.\n\t//\t• Resolving the type for a message field or extension field.\n\t//\tIf the kind of the field is unknown, then a placeholder is used for both\n\t//\tthe Enum and Message accessors on the protoreflect.FieldDescriptor.\n\t//\t• Resolving an enum value set as the default for an optional enum field.\n\t//\tIf unresolvable, the protoreflect.FieldDescriptor.Default is set to the\n\t//\tfirst value in the associated enum (or zero if the also enum dependency\n\t//\tis also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue\n\t//\tis populated with a placeholder.\n\t//\t• Resolving the extended message type for an extension field.\n\t//\t• Resolving the input or output message type for a service method.\n\t//\n\t// If the unresolved dependency uses a relative name,\n\t// then the placeholder will contain an invalid FullName with a \"*.\" prefix,\n\t// indicating that the starting prefix of the full name is unknown.\n\tAllowUnresolvable bool\n}\n\n// NewFile creates a new [protoreflect.FileDescriptor] from the provided\n// file descriptor message. See [FileOptions.New] for more information.\nfunc NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {\n\treturn FileOptions{}.New(fd, r)\n}\n\n// NewFiles creates a new [protoregistry.Files] from the provided\n// FileDescriptorSet message. See [FileOptions.NewFiles] for more information.\nfunc NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {\n\treturn FileOptions{}.NewFiles(fd)\n}\n\n// New creates a new [protoreflect.FileDescriptor] from the provided\n// file descriptor message. The file must represent a valid proto file according\n// to protobuf semantics. The returned descriptor is a deep copy of the input.\n//\n// Any imported files, enum types, or message types referenced in the file are\n// resolved using the provided registry. When looking up an import file path,\n// the path must be unique. The newly created file descriptor is not registered\n// back into the provided file registry.\nfunc (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {\n\tif r == nil {\n\t\tr = (*protoregistry.Files)(nil) // empty resolver\n\t}\n\n\t// Handle the file descriptor content.\n\tf := &filedesc.File{L2: &filedesc.FileL2{}}\n\tswitch fd.GetSyntax() {\n\tcase \"proto2\", \"\":\n\t\tf.L1.Syntax = protoreflect.Proto2\n\t\tf.L1.Edition = filedesc.EditionProto2\n\tcase \"proto3\":\n\t\tf.L1.Syntax = protoreflect.Proto3\n\t\tf.L1.Edition = filedesc.EditionProto3\n\tcase \"editions\":\n\t\tf.L1.Syntax = protoreflect.Editions\n\t\tf.L1.Edition = fromEditionProto(fd.GetEdition())\n\tdefault:\n\t\treturn nil, errors.New(\"invalid syntax: %q\", fd.GetSyntax())\n\t}\n\tf.L1.Path = fd.GetName()\n\tif f.L1.Path == \"\" {\n\t\treturn nil, errors.New(\"file path must be populated\")\n\t}\n\tif f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) {\n\t\t// Allow cmd/protoc-gen-go/testdata to use any edition for easier\n\t\t// testing of upcoming edition features.\n\t\tif !strings.HasPrefix(fd.GetName(), \"cmd/protoc-gen-go/testdata/\") {\n\t\t\treturn nil, errors.New(\"use of edition %v not yet supported by the Go Protobuf runtime\", fd.GetEdition())\n\t\t}\n\t}\n\tf.L1.Package = protoreflect.FullName(fd.GetPackage())\n\tif !f.L1.Package.IsValid() && f.L1.Package != \"\" {\n\t\treturn nil, errors.New(\"invalid package: %q\", f.L1.Package)\n\t}\n\tif opts := fd.GetOptions(); opts != nil {\n\t\topts = proto.Clone(opts).(*descriptorpb.FileOptions)\n\t\tf.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t}\n\tinitFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures())\n\n\tf.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))\n\tfor _, i := range fd.GetPublicDependency() {\n\t\tif !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic {\n\t\t\treturn nil, errors.New(\"invalid or duplicate public import index: %d\", i)\n\t\t}\n\t\tf.L2.Imports[i].IsPublic = true\n\t}\n\timps := importSet{f.Path(): true}\n\tfor i, path := range fd.GetDependency() {\n\t\timp := &f.L2.Imports[i]\n\t\tf, err := r.FindFileByPath(path)\n\t\tif err == protoregistry.NotFound && o.AllowUnresolvable {\n\t\t\tf = filedesc.PlaceholderFile(path)\n\t\t} else if err != nil {\n\t\t\treturn nil, errors.New(\"could not resolve import %q: %v\", path, err)\n\t\t}\n\t\timp.FileDescriptor = f\n\n\t\tif imps[imp.Path()] {\n\t\t\treturn nil, errors.New(\"already imported %q\", path)\n\t\t}\n\t\timps[imp.Path()] = true\n\t}\n\tfor i := range fd.GetDependency() {\n\t\timp := &f.L2.Imports[i]\n\t\timps.importPublic(imp.Imports())\n\t}\n\tif len(fd.GetOptionDependency()) > 0 {\n\t\toptionImports := make(filedesc.FileImports, len(fd.GetOptionDependency()))\n\t\tfor i, path := range fd.GetOptionDependency() {\n\t\t\timp := &optionImports[i]\n\t\t\tf, err := r.FindFileByPath(path)\n\t\t\tif err == protoregistry.NotFound {\n\t\t\t\t// We always allow option imports to be unresolvable.\n\t\t\t\tf = filedesc.PlaceholderFile(path)\n\t\t\t} else if err != nil {\n\t\t\t\treturn nil, errors.New(\"could not resolve import %q: %v\", path, err)\n\t\t\t}\n\t\t\timp.FileDescriptor = f\n\n\t\t\tif imps[imp.Path()] {\n\t\t\t\treturn nil, errors.New(\"already imported %q\", path)\n\t\t\t}\n\t\t\timps[imp.Path()] = true\n\t\t}\n\t\tf.L2.OptionImports = func() protoreflect.FileImports {\n\t\t\treturn &optionImports\n\t\t}\n\t}\n\n\t// Handle source locations.\n\tf.L2.Locations.File = f\n\tfor _, loc := range fd.GetSourceCodeInfo().GetLocation() {\n\t\tvar l protoreflect.SourceLocation\n\t\t// TODO: Validate that the path points to an actual declaration?\n\t\tl.Path = protoreflect.SourcePath(loc.GetPath())\n\t\ts := loc.GetSpan()\n\t\tswitch len(s) {\n\t\tcase 3:\n\t\t\tl.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2])\n\t\tcase 4:\n\t\t\tl.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3])\n\t\tdefault:\n\t\t\treturn nil, errors.New(\"invalid span: %v\", s)\n\t\t}\n\t\t// TODO: Validate that the span information is sensible?\n\t\t// See https://github.com/protocolbuffers/protobuf/issues/6378.\n\t\tif false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 ||\n\t\t\t(l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) {\n\t\t\treturn nil, errors.New(\"invalid span: %v\", s)\n\t\t}\n\t\tl.LeadingDetachedComments = loc.GetLeadingDetachedComments()\n\t\tl.LeadingComments = loc.GetLeadingComments()\n\t\tl.TrailingComments = loc.GetTrailingComments()\n\t\tf.L2.Locations.List = append(f.L2.Locations.List, l)\n\t}\n\n\t// Step 1: Allocate and derive the names for all declarations.\n\t// This copies all fields from the descriptor proto except:\n\t//\tgoogle.protobuf.FieldDescriptorProto.type_name\n\t//\tgoogle.protobuf.FieldDescriptorProto.default_value\n\t//\tgoogle.protobuf.FieldDescriptorProto.oneof_index\n\t//\tgoogle.protobuf.FieldDescriptorProto.extendee\n\t//\tgoogle.protobuf.MethodDescriptorProto.input\n\t//\tgoogle.protobuf.MethodDescriptorProto.output\n\tvar err error\n\tsb := new(strs.Builder)\n\tr1 := make(descsByName)\n\tif f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Step 2: Resolve every dependency reference not handled by step 1.\n\tr2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable}\n\tif err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Step 3: Validate every enum, message, and extension declaration.\n\tif err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn f, nil\n}\n\ntype importSet map[string]bool\n\nfunc (is importSet) importPublic(imps protoreflect.FileImports) {\n\tfor i := 0; i < imps.Len(); i++ {\n\t\tif imp := imps.Get(i); imp.IsPublic {\n\t\t\tis[imp.Path()] = true\n\t\t\tis.importPublic(imp.Imports())\n\t\t}\n\t}\n}\n\n// NewFiles creates a new [protoregistry.Files] from the provided\n// FileDescriptorSet message. The descriptor set must include only\n// valid files according to protobuf semantics. The returned descriptors\n// are a deep copy of the input.\nfunc (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {\n\tfiles := make(map[string]*descriptorpb.FileDescriptorProto)\n\tfor _, fd := range fds.File {\n\t\tif _, ok := files[fd.GetName()]; ok {\n\t\t\treturn nil, errors.New(\"file appears multiple times: %q\", fd.GetName())\n\t\t}\n\t\tfiles[fd.GetName()] = fd\n\t}\n\tr := &protoregistry.Files{}\n\tfor _, fd := range files {\n\t\tif err := o.addFileDeps(r, fd, files); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn r, nil\n}\nfunc (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error {\n\t// Set the entry to nil while descending into a file's dependencies to detect cycles.\n\tfiles[fd.GetName()] = nil\n\tfor _, dep := range fd.Dependency {\n\t\tdepfd, ok := files[dep]\n\t\tif depfd == nil {\n\t\t\tif ok {\n\t\t\t\treturn errors.New(\"import cycle in file: %q\", dep)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err := o.addFileDeps(r, depfd, files); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t// Delete the entry once dependencies are processed.\n\tdelete(files, fd.GetName())\n\tf, err := o.New(fd, r)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn r.RegisterFile(f)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\ntype descsByName map[protoreflect.FullName]protoreflect.Descriptor\n\nfunc (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) {\n\tes = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers\n\tfor i, ed := range eds {\n\t\te := &es[i]\n\t\te.L2 = new(filedesc.EnumL2)\n\t\tif e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := ed.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.EnumOptions)\n\t\t\te.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\te.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures())\n\t\te.L1.Visibility = int32(ed.GetVisibility())\n\t\tfor _, s := range ed.GetReservedName() {\n\t\t\te.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s))\n\t\t}\n\t\tfor _, rr := range ed.GetReservedRange() {\n\t\t\te.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{\n\t\t\t\tprotoreflect.EnumNumber(rr.GetStart()),\n\t\t\t\tprotoreflect.EnumNumber(rr.GetEnd()),\n\t\t\t})\n\t\t}\n\t\tif e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn es, nil\n}\n\nfunc (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) {\n\tvs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers\n\tfor i, vd := range vds {\n\t\tv := &vs[i]\n\t\tif v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := vd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.EnumValueOptions)\n\t\t\tv.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tv.L1.Number = protoreflect.EnumNumber(vd.GetNumber())\n\t}\n\treturn vs, nil\n}\n\nfunc (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) {\n\tms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tm.L2 = new(filedesc.MessageL2)\n\t\tif m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures())\n\t\tm.L1.Visibility = int32(md.GetVisibility())\n\t\tif opts := md.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.MessageOptions)\n\t\t\tm.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tm.L1.IsMapEntry = opts.GetMapEntry()\n\t\t\tm.L1.IsMessageSet = opts.GetMessageSetWireFormat()\n\t\t}\n\t\tfor _, s := range md.GetReservedName() {\n\t\t\tm.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s))\n\t\t}\n\t\tfor _, rr := range md.GetReservedRange() {\n\t\t\tm.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(rr.GetStart()),\n\t\t\t\tprotoreflect.FieldNumber(rr.GetEnd()),\n\t\t\t})\n\t\t}\n\t\tfor _, xr := range md.GetExtensionRange() {\n\t\t\tm.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(xr.GetStart()),\n\t\t\t\tprotoreflect.FieldNumber(xr.GetEnd()),\n\t\t\t})\n\t\t\tvar optsFunc func() protoreflect.ProtoMessage\n\t\t\tif opts := xr.GetOptions(); opts != nil {\n\t\t\t\topts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions)\n\t\t\t\toptsFunc = func() protoreflect.ProtoMessage { return opts }\n\t\t\t}\n\t\t\tm.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc)\n\t\t}\n\t\tif m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn ms, nil\n}\n\n// canBePacked returns whether the field can use packed encoding:\n// https://protobuf.dev/programming-guides/encoding/#packed\nfunc canBePacked(fd *descriptorpb.FieldDescriptorProto) bool {\n\tif fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED {\n\t\treturn false // not a repeated field\n\t}\n\n\tswitch protoreflect.Kind(fd.GetType()) {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false // not a scalar type field\n\n\tcase protoreflect.StringKind, protoreflect.BytesKind:\n\t\t// string and bytes can explicitly not be declared as packed,\n\t\t// see https://protobuf.dev/programming-guides/encoding/#packed\n\t\treturn false\n\n\tdefault:\n\t\treturn true\n\t}\n}\n\nfunc (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) {\n\tfs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers\n\tfor i, fd := range fds {\n\t\tf := &fs[i]\n\t\tif f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tf.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures())\n\t\tf.L1.IsProto3Optional = fd.GetProto3Optional()\n\t\tif opts := fd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.FieldOptions)\n\t\t\tf.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tf.L1.IsLazy = opts.GetLazy()\n\t\t\tif opts.Packed != nil {\n\t\t\t\tf.L1.EditionFeatures.IsPacked = opts.GetPacked()\n\t\t\t}\n\t\t}\n\t\tf.L1.Number = protoreflect.FieldNumber(fd.GetNumber())\n\t\tf.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel())\n\t\tif fd.Type != nil {\n\t\t\tf.L1.Kind = protoreflect.Kind(fd.GetType())\n\t\t}\n\t\tif fd.JsonName != nil {\n\t\t\tf.L1.StringName.InitJSON(fd.GetJsonName())\n\t\t}\n\n\t\tif f.L1.EditionFeatures.IsLegacyRequired {\n\t\t\tf.L1.Cardinality = protoreflect.Required\n\t\t}\n\n\t\tif f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded {\n\t\t\tf.L1.Kind = protoreflect.GroupKind\n\t\t}\n\t}\n\treturn fs, nil\n}\n\nfunc (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) {\n\tos = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers\n\tfor i, od := range ods {\n\t\to := &os[i]\n\t\tif o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\to.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures())\n\t\tif opts := od.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.OneofOptions)\n\t\t\to.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t}\n\treturn os, nil\n}\n\nfunc (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) {\n\txs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\tx.L2 = new(filedesc.ExtensionL2)\n\t\tif x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.L1.EditionFeatures = mergeEditionFeatures(parent, xd.GetOptions().GetFeatures())\n\t\tif opts := xd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.FieldOptions)\n\t\t\tx.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tif opts.Packed != nil {\n\t\t\t\tx.L1.EditionFeatures.IsPacked = opts.GetPacked()\n\t\t\t}\n\t\t}\n\t\tx.L1.Number = protoreflect.FieldNumber(xd.GetNumber())\n\t\tx.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel())\n\t\tif xd.Type != nil {\n\t\t\tx.L1.Kind = protoreflect.Kind(xd.GetType())\n\t\t}\n\t\tif xd.JsonName != nil {\n\t\t\tx.L2.StringName.InitJSON(xd.GetJsonName())\n\t\t}\n\t\tif x.L1.Kind == protoreflect.MessageKind && x.L1.EditionFeatures.IsDelimitedEncoded {\n\t\t\tx.L1.Kind = protoreflect.GroupKind\n\t\t}\n\t}\n\treturn xs, nil\n}\n\nfunc (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) {\n\tss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers\n\tfor i, sd := range sds {\n\t\ts := &ss[i]\n\t\ts.L2 = new(filedesc.ServiceL2)\n\t\tif s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := sd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.ServiceOptions)\n\t\t\ts.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tif s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn ss, nil\n}\n\nfunc (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) {\n\tms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tif m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := md.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.MethodOptions)\n\t\t\tm.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tm.L1.IsStreamingClient = md.GetClientStreaming()\n\t\tm.L1.IsStreamingServer = md.GetServerStreaming()\n\t}\n\treturn ms, nil\n}\n\nfunc (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) {\n\tif !protoreflect.Name(name).IsValid() {\n\t\treturn filedesc.BaseL0{}, errors.New(\"descriptor %q has an invalid nested name: %q\", parent.FullName(), name)\n\t}\n\n\t// Derive the full name of the child.\n\t// Note that enum values are a sibling to the enum parent in the namespace.\n\tvar fullName protoreflect.FullName\n\tif _, ok := parent.(protoreflect.EnumDescriptor); ok {\n\t\tfullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name))\n\t} else {\n\t\tfullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name))\n\t}\n\tif _, ok := r[fullName]; ok {\n\t\treturn filedesc.BaseL0{}, errors.New(\"descriptor %q already declared\", fullName)\n\t}\n\tr[fullName] = child\n\n\t// TODO: Verify that the full name does not already exist in the resolver?\n\t// This is not as critical since most usages of NewFile will register\n\t// the created file back into the registry, which will perform this check.\n\n\treturn filedesc.BaseL0{\n\t\tFullName:   fullName,\n\t\tParentFile: parent.ParentFile().(*filedesc.File),\n\t\tParent:     parent,\n\t\tIndex:      idx,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// resolver is a wrapper around a local registry of declarations within the file\n// and the remote resolver. The remote resolver is restricted to only return\n// descriptors that have been imported.\ntype resolver struct {\n\tlocal   descsByName\n\tremote  Resolver\n\timports importSet\n\n\tallowUnresolvable bool\n}\n\nfunc (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) {\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tfor j, fd := range md.GetField() {\n\t\t\tf := &m.L2.Fields.List[j]\n\t\t\tif f.L1.Cardinality == protoreflect.Required {\n\t\t\t\tm.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number)\n\t\t\t}\n\t\t\tif fd.OneofIndex != nil {\n\t\t\t\tk := int(fd.GetOneofIndex())\n\t\t\t\tif !(0 <= k && k < len(md.GetOneofDecl())) {\n\t\t\t\t\treturn errors.New(\"message field %q has an invalid oneof index: %d\", f.FullName(), k)\n\t\t\t\t}\n\t\t\t\to := &m.L2.Oneofs.List[k]\n\t\t\t\tf.L1.ContainingOneof = o\n\t\t\t\to.L1.Fields.List = append(o.L1.Fields.List, f)\n\t\t\t}\n\n\t\t\tif f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName())); err != nil {\n\t\t\t\treturn errors.New(\"message field %q cannot resolve type: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif f.L1.Kind == protoreflect.GroupKind && (f.IsMap() || f.IsMapEntry()) {\n\t\t\t\t// A map field might inherit delimited encoding from a file-wide default feature.\n\t\t\t\t// But maps never actually use delimited encoding. (At least for now...)\n\t\t\t\tf.L1.Kind = protoreflect.MessageKind\n\t\t\t}\n\t\t\tif fd.DefaultValue != nil {\n\t\t\t\tv, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(\"message field %q has invalid default: %v\", f.FullName(), err)\n\t\t\t\t}\n\t\t\t\tf.L1.Default = filedesc.DefaultValue(v, ev)\n\t\t\t}\n\t\t}\n\n\t\tif err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) {\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\tif x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee())); err != nil {\n\t\t\treturn errors.New(\"extension field %q cannot resolve extendee: %v\", x.FullName(), err)\n\t\t}\n\t\tif x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName())); err != nil {\n\t\t\treturn errors.New(\"extension field %q cannot resolve type: %v\", x.FullName(), err)\n\t\t}\n\t\tif xd.DefaultValue != nil {\n\t\t\tv, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"extension field %q has invalid default: %v\", x.FullName(), err)\n\t\t\t}\n\t\t\tx.L2.Default = filedesc.DefaultValue(v, ev)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) {\n\tfor i, sd := range sds {\n\t\ts := &ss[i]\n\t\tfor j, md := range sd.GetMethod() {\n\t\t\tm := &s.L2.Methods.List[j]\n\t\t\tm.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()))\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"service method %q cannot resolve input: %v\", m.FullName(), err)\n\t\t\t}\n\t\t\tm.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()))\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"service method %q cannot resolve output: %v\", m.FullName(), err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// findTarget finds an enum or message descriptor if k is an enum, message,\n// group, or unknown. If unknown, and the name could be resolved, the kind\n// returned kind is set based on the type of the resolved descriptor.\nfunc (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) {\n\tswitch k {\n\tcase protoreflect.EnumKind:\n\t\ted, err := r.findEnumDescriptor(scope, ref)\n\t\tif err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\treturn k, ed, nil, nil\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tmd, err := r.findMessageDescriptor(scope, ref)\n\t\tif err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\treturn k, nil, md, nil\n\tcase 0:\n\t\t// Handle unspecified kinds (possible with parsers that operate\n\t\t// on a per-file basis without knowledge of dependencies).\n\t\td, err := r.findDescriptor(scope, ref)\n\t\tif err == protoregistry.NotFound && r.allowUnresolvable {\n\t\t\treturn k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil\n\t\t} else if err == protoregistry.NotFound {\n\t\t\treturn 0, nil, nil, errors.New(\"%q not found\", ref.FullName())\n\t\t} else if err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\tswitch d := d.(type) {\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\treturn protoreflect.EnumKind, d, nil, nil\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\treturn protoreflect.MessageKind, nil, d, nil\n\t\tdefault:\n\t\t\treturn 0, nil, nil, errors.New(\"unknown kind\")\n\t\t}\n\tdefault:\n\t\tif ref != \"\" {\n\t\t\treturn 0, nil, nil, errors.New(\"target name cannot be specified for %v\", k)\n\t\t}\n\t\tif !k.IsValid() {\n\t\t\treturn 0, nil, nil, errors.New(\"invalid kind: %d\", k)\n\t\t}\n\t\treturn k, nil, nil, nil\n\t}\n}\n\n// findDescriptor finds the descriptor by name,\n// which may be a relative name within some scope.\n//\n// Suppose the scope was \"fizz.buzz\" and the reference was \"Foo.Bar\",\n// then the following full names are searched:\n//   - fizz.buzz.Foo.Bar\n//   - fizz.Foo.Bar\n//   - Foo.Bar\nfunc (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) {\n\tif !ref.IsValid() {\n\t\treturn nil, errors.New(\"invalid name reference: %q\", ref)\n\t}\n\tif ref.IsFull() {\n\t\tscope, ref = \"\", ref[1:]\n\t}\n\tvar foundButNotImported protoreflect.Descriptor\n\tfor {\n\t\t// Derive the full name to search.\n\t\ts := protoreflect.FullName(ref)\n\t\tif scope != \"\" {\n\t\t\ts = scope + \".\" + s\n\t\t}\n\n\t\t// Check the current file for the descriptor.\n\t\tif d, ok := r.local[s]; ok {\n\t\t\treturn d, nil\n\t\t}\n\n\t\t// Check the remote registry for the descriptor.\n\t\td, err := r.remote.FindDescriptorByName(s)\n\t\tif err == nil {\n\t\t\t// Only allow descriptors covered by one of the imports.\n\t\t\tif r.imports[d.ParentFile().Path()] {\n\t\t\t\treturn d, nil\n\t\t\t}\n\t\t\tfoundButNotImported = d\n\t\t} else if err != protoregistry.NotFound {\n\t\t\treturn nil, errors.Wrap(err, \"%q\", s)\n\t\t}\n\n\t\t// Continue on at a higher level of scoping.\n\t\tif scope == \"\" {\n\t\t\tif d := foundButNotImported; d != nil {\n\t\t\t\treturn nil, errors.New(\"resolved %q, but %q is not imported\", d.FullName(), d.ParentFile().Path())\n\t\t\t}\n\t\t\treturn nil, protoregistry.NotFound\n\t\t}\n\t\tscope = scope.Parent()\n\t}\n}\n\nfunc (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.EnumDescriptor, error) {\n\td, err := r.findDescriptor(scope, ref)\n\tif err == protoregistry.NotFound && r.allowUnresolvable {\n\t\treturn filedesc.PlaceholderEnum(ref.FullName()), nil\n\t} else if err == protoregistry.NotFound {\n\t\treturn nil, errors.New(\"%q not found\", ref.FullName())\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\ted, ok := d.(protoreflect.EnumDescriptor)\n\tif !ok {\n\t\treturn nil, errors.New(\"resolved %q, but it is not an enum\", d.FullName())\n\t}\n\treturn ed, nil\n}\n\nfunc (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.MessageDescriptor, error) {\n\td, err := r.findDescriptor(scope, ref)\n\tif err == protoregistry.NotFound && r.allowUnresolvable {\n\t\treturn filedesc.PlaceholderMessage(ref.FullName()), nil\n\t} else if err == protoregistry.NotFound {\n\t\treturn nil, errors.New(\"%q not found\", ref.FullName())\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\tmd, ok := d.(protoreflect.MessageDescriptor)\n\tif !ok {\n\t\treturn nil, errors.New(\"resolved %q, but it is not an message\", d.FullName())\n\t}\n\treturn md, nil\n}\n\n// partialName is the partial name. A leading dot means that the name is full,\n// otherwise the name is relative to some current scope.\n// See google.protobuf.FieldDescriptorProto.type_name.\ntype partialName string\n\nfunc (s partialName) IsFull() bool {\n\treturn len(s) > 0 && s[0] == '.'\n}\n\nfunc (s partialName) IsValid() bool {\n\tif s.IsFull() {\n\t\treturn protoreflect.FullName(s[1:]).IsValid()\n\t}\n\treturn protoreflect.FullName(s).IsValid()\n}\n\nconst unknownPrefix = \"*.\"\n\n// FullName converts the partial name to a full name on a best-effort basis.\n// If relative, it creates an invalid full name, using a \"*.\" prefix\n// to indicate that the start of the full name is unknown.\nfunc (s partialName) FullName() protoreflect.FullName {\n\tif s.IsFull() {\n\t\treturn protoreflect.FullName(s[1:])\n\t}\n\treturn protoreflect.FullName(unknownPrefix + s)\n}\n\nfunc unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) {\n\tvar evs protoreflect.EnumValueDescriptors\n\tif fd.Enum() != nil {\n\t\tevs = fd.Enum().Values()\n\t}\n\tv, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor)\n\tif err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() {\n\t\tv = protoreflect.ValueOfEnum(0)\n\t\tif evs.Len() > 0 {\n\t\t\tv = protoreflect.ValueOfEnum(evs.Get(0).Number())\n\t\t}\n\t\tev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s)))\n\t} else if err != nil {\n\t\treturn v, ev, err\n\t}\n\tif !fd.HasPresence() {\n\t\treturn v, ev, errors.New(\"cannot be specified with implicit field presence\")\n\t}\n\tif fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated {\n\t\treturn v, ev, errors.New(\"cannot be specified on composite types\")\n\t}\n\treturn v, ev, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"strings\"\n\t\"unicode\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\nfunc validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error {\n\tfor i, ed := range eds {\n\t\te := &es[i]\n\t\tif err := e.L2.ReservedNames.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"enum %q reserved names has %v\", e.FullName(), err)\n\t\t}\n\t\tif err := e.L2.ReservedRanges.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"enum %q reserved ranges has %v\", e.FullName(), err)\n\t\t}\n\t\tif len(ed.GetValue()) == 0 {\n\t\t\treturn errors.New(\"enum %q must contain at least one value declaration\", e.FullName())\n\t\t}\n\t\tallowAlias := ed.GetOptions().GetAllowAlias()\n\t\tfoundAlias := false\n\t\tfor i := 0; i < e.Values().Len(); i++ {\n\t\t\tv1 := e.Values().Get(i)\n\t\t\tif v2 := e.Values().ByNumber(v1.Number()); v1 != v2 {\n\t\t\t\tfoundAlias = true\n\t\t\t\tif !allowAlias {\n\t\t\t\t\treturn errors.New(\"enum %q has conflicting non-aliased values on number %d: %q with %q\", e.FullName(), v1.Number(), v1.Name(), v2.Name())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif allowAlias && !foundAlias {\n\t\t\treturn errors.New(\"enum %q allows aliases, but none were found\", e.FullName())\n\t\t}\n\t\tif !e.IsClosed() {\n\t\t\tif v := e.Values().Get(0); v.Number() != 0 {\n\t\t\t\treturn errors.New(\"enum %q using open semantics must have zero number for the first value\", v.FullName())\n\t\t\t}\n\t\t\t// Verify that value names in open enums do not conflict if the\n\t\t\t// case-insensitive prefix is removed.\n\t\t\t// See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055\n\t\t\tnames := map[string]protoreflect.EnumValueDescriptor{}\n\t\t\tprefix := strings.Replace(strings.ToLower(string(e.Name())), \"_\", \"\", -1)\n\t\t\tfor i := 0; i < e.Values().Len(); i++ {\n\t\t\t\tv1 := e.Values().Get(i)\n\t\t\t\ts := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix))\n\t\t\t\tif v2, ok := names[s]; ok && v1.Number() != v2.Number() {\n\t\t\t\t\treturn errors.New(\"enum %q using open semantics has conflict: %q with %q\", e.FullName(), v1.Name(), v2.Name())\n\t\t\t\t}\n\t\t\t\tnames[s] = v1\n\t\t\t}\n\t\t}\n\n\t\tfor j, vd := range ed.GetValue() {\n\t\t\tv := &e.L2.Values.List[j]\n\t\t\tif vd.Number == nil {\n\t\t\t\treturn errors.New(\"enum value %q must have a specified number\", v.FullName())\n\t\t\t}\n\t\t\tif e.L2.ReservedNames.Has(v.Name()) {\n\t\t\t\treturn errors.New(\"enum value %q must not use reserved name\", v.FullName())\n\t\t\t}\n\t\t\tif e.L2.ReservedRanges.Has(v.Number()) {\n\t\t\t\treturn errors.New(\"enum value %q must not use reserved number %d\", v.FullName(), v.Number())\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error {\n\t// There are a few limited exceptions only for proto3\n\tisProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3)\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\n\t\t// Handle the message descriptor itself.\n\t\tisMessageSet := md.GetOptions().GetMessageSetWireFormat()\n\t\tif err := m.L2.ReservedNames.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"message %q reserved names has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil {\n\t\t\treturn errors.New(\"message %q reserved ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil {\n\t\t\treturn errors.New(\"message %q extension ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil {\n\t\t\treturn errors.New(\"message %q reserved and extension ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tfor i := 0; i < m.Fields().Len(); i++ {\n\t\t\tf1 := m.Fields().Get(i)\n\t\t\tif f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 {\n\t\t\t\treturn errors.New(\"message %q has conflicting fields: %q with %q\", m.FullName(), f1.Name(), f2.Name())\n\t\t\t}\n\t\t}\n\t\tif isMessageSet && !flags.ProtoLegacy {\n\t\t\treturn errors.New(\"message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported\", m.FullName())\n\t\t}\n\t\tif isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {\n\t\t\treturn errors.New(\"message %q is an invalid proto1 MessageSet\", m.FullName())\n\t\t}\n\t\tif isProto3 {\n\t\t\tif m.ExtensionRanges().Len() > 0 {\n\t\t\t\treturn errors.New(\"message %q using proto3 semantics cannot have extension ranges\", m.FullName())\n\t\t\t}\n\t\t}\n\n\t\tfor j, fd := range md.GetField() {\n\t\t\tf := &m.L2.Fields.List[j]\n\t\t\tif m.L2.ReservedNames.Has(f.Name()) {\n\t\t\t\treturn errors.New(\"message field %q must not use reserved name\", f.FullName())\n\t\t\t}\n\t\t\tif !f.Number().IsValid() {\n\t\t\t\treturn errors.New(\"message field %q has an invalid number: %d\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif !f.Cardinality().IsValid() {\n\t\t\t\treturn errors.New(\"message field %q has an invalid cardinality: %d\", f.FullName(), f.Cardinality())\n\t\t\t}\n\t\t\tif m.L2.ReservedRanges.Has(f.Number()) {\n\t\t\t\treturn errors.New(\"message field %q must not use reserved number %d\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif m.L2.ExtensionRanges.Has(f.Number()) {\n\t\t\t\treturn errors.New(\"message field %q with number %d in extension range\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif fd.Extendee != nil {\n\t\t\t\treturn errors.New(\"message field %q may not have extendee: %q\", f.FullName(), fd.GetExtendee())\n\t\t\t}\n\t\t\tif f.L1.IsProto3Optional {\n\t\t\t\tif !isProto3 {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must be specified in the proto3 syntax\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.Cardinality() != protoreflect.Optional {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must have optional cardinality\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must be within a single element oneof\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f.IsPacked() && !isPackable(f) {\n\t\t\t\treturn errors.New(\"message field %q is not packable\", f.FullName())\n\t\t\t}\n\t\t\tif err := checkValidGroup(file, f); err != nil {\n\t\t\t\treturn errors.New(\"message field %q is an invalid group: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif err := checkValidMap(f); err != nil {\n\t\t\t\treturn errors.New(\"message field %q is an invalid map: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif isProto3 {\n\t\t\t\tif f.Cardinality() == protoreflect.Required {\n\t\t\t\t\treturn errors.New(\"message field %q using proto3 semantics cannot be required\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {\n\t\t\t\t\treturn errors.New(\"message field %q using proto3 semantics may only depend on open enums\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {\n\t\t\t\treturn errors.New(\"message field %q with implicit presence may only use open enums\", f.FullName())\n\t\t\t}\n\t\t}\n\t\tseenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs\n\t\tfor j := range md.GetOneofDecl() {\n\t\t\to := &m.L2.Oneofs.List[j]\n\t\t\tif o.Fields().Len() == 0 {\n\t\t\t\treturn errors.New(\"message oneof %q must contain at least one field declaration\", o.FullName())\n\t\t\t}\n\t\t\tif n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) {\n\t\t\t\treturn errors.New(\"message oneof %q must have consecutively declared fields\", o.FullName())\n\t\t\t}\n\n\t\t\tif o.IsSynthetic() {\n\t\t\t\tseenSynthetic = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !o.IsSynthetic() && seenSynthetic {\n\t\t\t\treturn errors.New(\"message oneof %q must be declared before synthetic oneofs\", o.FullName())\n\t\t\t}\n\n\t\t\tfor i := 0; i < o.Fields().Len(); i++ {\n\t\t\t\tf := o.Fields().Get(i)\n\t\t\t\tif f.Cardinality() != protoreflect.Optional {\n\t\t\t\t\treturn errors.New(\"message field %q belongs in a oneof and must be optional\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error {\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\t// NOTE: Avoid using the IsValid method since extensions to MessageSet\n\t\t// may have a field number higher than normal. This check only verifies\n\t\t// that the number is not negative or reserved. We check again later\n\t\t// if we know that the extendee is definitely not a MessageSet.\n\t\tif n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) {\n\t\t\treturn errors.New(\"extension field %q has an invalid number: %d\", x.FullName(), x.Number())\n\t\t}\n\t\tif !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required {\n\t\t\treturn errors.New(\"extension field %q has an invalid cardinality: %d\", x.FullName(), x.Cardinality())\n\t\t}\n\t\tif xd.JsonName != nil {\n\t\t\t// A bug in older versions of protoc would always populate the\n\t\t\t// \"json_name\" option for extensions when it is meaningless.\n\t\t\t// When it did so, it would always use the camel-cased field name.\n\t\t\tif xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) {\n\t\t\t\treturn errors.New(\"extension field %q may not have an explicitly set JSON name: %q\", x.FullName(), xd.GetJsonName())\n\t\t\t}\n\t\t}\n\t\tif xd.OneofIndex != nil {\n\t\t\treturn errors.New(\"extension field %q may not be part of a oneof\", x.FullName())\n\t\t}\n\t\tif md := x.ContainingMessage(); !md.IsPlaceholder() {\n\t\t\tif !md.ExtensionRanges().Has(x.Number()) {\n\t\t\t\treturn errors.New(\"extension field %q extends %q with non-extension field number: %d\", x.FullName(), md.FullName(), x.Number())\n\t\t\t}\n\t\t\tisMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat()\n\t\t\tif isMessageSet && !isOptionalMessage(x) {\n\t\t\t\treturn errors.New(\"extension field %q extends MessageSet and must be an optional message\", x.FullName())\n\t\t\t}\n\t\t\tif !isMessageSet && !x.Number().IsValid() {\n\t\t\t\treturn errors.New(\"extension field %q has an invalid number: %d\", x.FullName(), x.Number())\n\t\t\t}\n\t\t}\n\t\tif x.IsPacked() && !isPackable(x) {\n\t\t\treturn errors.New(\"extension field %q is not packable\", x.FullName())\n\t\t}\n\t\tif err := checkValidGroup(f, x); err != nil {\n\t\t\treturn errors.New(\"extension field %q is an invalid group: %v\", x.FullName(), err)\n\t\t}\n\t\tif md := x.Message(); md != nil && md.IsMapEntry() {\n\t\t\treturn errors.New(\"extension field %q cannot be a map entry\", x.FullName())\n\t\t}\n\t\tif f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) {\n\t\t\tswitch x.ContainingMessage().FullName() {\n\t\t\tcase (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tdefault:\n\t\t\t\treturn errors.New(\"extension field %q cannot be declared in proto3 unless extended descriptor options\", x.FullName())\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// isOptionalMessage reports whether this is an optional message.\n// If the kind is unknown, it is assumed to be a message.\nfunc isOptionalMessage(fd protoreflect.FieldDescriptor) bool {\n\treturn (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional\n}\n\n// isPackable checks whether the pack option can be specified.\nfunc isPackable(fd protoreflect.FieldDescriptor) bool {\n\tswitch fd.Kind() {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn fd.IsList()\n}\n\n// checkValidGroup reports whether fd is a valid group according to the same\n// rules that protoc imposes.\nfunc checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error {\n\tmd := fd.Message()\n\tswitch {\n\tcase fd.Kind() != protoreflect.GroupKind:\n\t\treturn nil\n\tcase f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3):\n\t\treturn errors.New(\"invalid under proto3 semantics\")\n\tcase md == nil || md.IsPlaceholder():\n\t\treturn errors.New(\"message must be resolvable\")\n\t}\n\tif f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) {\n\t\tswitch {\n\t\tcase fd.FullName().Parent() != md.FullName().Parent():\n\t\t\treturn errors.New(\"message and field must be declared in the same scope\")\n\t\tcase !unicode.IsUpper(rune(md.Name()[0])):\n\t\t\treturn errors.New(\"message name must start with an uppercase\")\n\t\tcase fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))):\n\t\t\treturn errors.New(\"field name must be lowercased form of the message name\")\n\t\t}\n\t}\n\treturn nil\n}\n\n// checkValidMap checks whether the field is a valid map according to the same\n// rules that protoc imposes.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115\nfunc checkValidMap(fd protoreflect.FieldDescriptor) error {\n\tmd := fd.Message()\n\tswitch {\n\tcase md == nil || !md.IsMapEntry():\n\t\treturn nil\n\tcase fd.FullName().Parent() != md.FullName().Parent():\n\t\treturn errors.New(\"message and field must be declared in the same scope\")\n\tcase md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))):\n\t\treturn errors.New(\"incorrect implicit map entry name\")\n\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\treturn errors.New(\"field must be repeated\")\n\tcase md.Fields().Len() != 2:\n\t\treturn errors.New(\"message must have exactly two fields\")\n\tcase md.ExtensionRanges().Len() > 0:\n\t\treturn errors.New(\"message must not have any extension ranges\")\n\tcase md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0:\n\t\treturn errors.New(\"message must not have any nested declarations\")\n\t}\n\tkf := md.Fields().Get(0)\n\tvf := md.Fields().Get(1)\n\tswitch {\n\tcase kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault():\n\t\treturn errors.New(\"invalid key field\")\n\tcase vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault():\n\t\treturn errors.New(\"invalid value field\")\n\t}\n\tswitch kf.Kind() {\n\tcase protoreflect.BoolKind: // bool\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64\n\tcase protoreflect.StringKind: // string\n\tdefault:\n\t\treturn errors.New(\"invalid key kind: %v\", kf.Kind())\n\t}\n\tif e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 {\n\t\treturn errors.New(\"map enum value must have zero number for the first value\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/editions.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/editiondefaults\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n\t\"google.golang.org/protobuf/types/gofeaturespb\"\n)\n\nvar defaults = &descriptorpb.FeatureSetDefaults{}\nvar defaultsCacheMu sync.Mutex\nvar defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet)\n\nfunc init() {\n\terr := proto.Unmarshal(editiondefaults.Defaults, defaults)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"unmarshal editions defaults: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n}\n\nfunc fromEditionProto(epb descriptorpb.Edition) filedesc.Edition {\n\treturn filedesc.Edition(epb)\n}\n\nfunc toEditionProto(ed filedesc.Edition) descriptorpb.Edition {\n\tswitch ed {\n\tcase filedesc.EditionUnknown:\n\t\treturn descriptorpb.Edition_EDITION_UNKNOWN\n\tcase filedesc.EditionProto2:\n\t\treturn descriptorpb.Edition_EDITION_PROTO2\n\tcase filedesc.EditionProto3:\n\t\treturn descriptorpb.Edition_EDITION_PROTO3\n\tcase filedesc.Edition2023:\n\t\treturn descriptorpb.Edition_EDITION_2023\n\tcase filedesc.Edition2024:\n\t\treturn descriptorpb.Edition_EDITION_2024\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown value for edition: %v\", ed))\n\t}\n}\n\nfunc getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet {\n\tdefaultsCacheMu.Lock()\n\tdefer defaultsCacheMu.Unlock()\n\tif def, ok := defaultsCache[ed]; ok {\n\t\treturn def\n\t}\n\tedpb := toEditionProto(ed)\n\tif defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb {\n\t\t// This should never happen protodesc.(FileOptions).New would fail when\n\t\t// initializing the file descriptor.\n\t\t// This most likely means the embedded defaults were not updated.\n\t\tfmt.Fprintf(os.Stderr, \"internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\\n\", edpb)\n\t\tos.Exit(1)\n\t}\n\tfsed := defaults.GetDefaults()[0]\n\t// Using a linear search for now.\n\t// Editions are guaranteed to be sorted and thus we could use a binary search.\n\t// Given that there are only a handful of editions (with one more per year)\n\t// there is not much reason to use a binary search.\n\tfor _, def := range defaults.GetDefaults() {\n\t\tif def.GetEdition() <= edpb {\n\t\t\tfsed = def\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\tfs := proto.Clone(fsed.GetFixedFeatures()).(*descriptorpb.FeatureSet)\n\tproto.Merge(fs, fsed.GetOverridableFeatures())\n\tdefaultsCache[ed] = fs\n\treturn fs\n}\n\n// mergeEditionFeatures merges the parent and child feature sets. This function\n// should be used when initializing Go descriptors from descriptor protos which\n// is why the parent is a filedesc.EditionsFeatures (Go representation) while\n// the child is a descriptorproto.FeatureSet (protoc representation).\n// Any feature set by the child overwrites what is set by the parent.\nfunc mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures {\n\tvar parentFS filedesc.EditionFeatures\n\tswitch p := parentDesc.(type) {\n\tcase *filedesc.File:\n\t\tparentFS = p.L1.EditionFeatures\n\tcase *filedesc.Message:\n\t\tparentFS = p.L1.EditionFeatures\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown parent type %T\", parentDesc))\n\t}\n\tif child == nil {\n\t\treturn parentFS\n\t}\n\tif fp := child.FieldPresence; fp != nil {\n\t\tparentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED ||\n\t\t\t*fp == descriptorpb.FeatureSet_EXPLICIT\n\t\tparentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED\n\t}\n\tif et := child.EnumType; et != nil {\n\t\tparentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN\n\t}\n\n\tif rfe := child.RepeatedFieldEncoding; rfe != nil {\n\t\tparentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED\n\t}\n\n\tif utf8val := child.Utf8Validation; utf8val != nil {\n\t\tparentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY\n\t}\n\n\tif me := child.MessageEncoding; me != nil {\n\t\tparentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED\n\t}\n\n\tif jf := child.JsonFormat; jf != nil {\n\t\tparentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW\n\t}\n\n\t// We must not use proto.GetExtension(child, gofeaturespb.E_Go)\n\t// because that only works for messages we generated, but not for\n\t// dynamicpb messages. See golang/protobuf#1669.\n\t//\n\t// Further, we harden this code against adversarial inputs: a\n\t// service which accepts descriptors from a possibly malicious\n\t// source shouldn't crash.\n\tgoFeatures := child.ProtoReflect().Get(gofeaturespb.E_Go.TypeDescriptor())\n\tif !goFeatures.IsValid() {\n\t\treturn parentFS\n\t}\n\tgf, ok := goFeatures.Interface().(protoreflect.Message)\n\tif !ok {\n\t\treturn parentFS\n\t}\n\t// gf.Interface() could be *dynamicpb.Message or *gofeaturespb.GoFeatures.\n\tfields := gf.Descriptor().Fields()\n\n\tif fd := fields.ByNumber(genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number); fd != nil &&\n\t\t!fd.IsList() &&\n\t\tfd.Kind() == protoreflect.BoolKind &&\n\t\tgf.Has(fd) {\n\t\tparentFS.GenerateLegacyUnmarshalJSON = gf.Get(fd).Bool()\n\t}\n\n\tif fd := fields.ByNumber(genid.GoFeatures_StripEnumPrefix_field_number); fd != nil &&\n\t\t!fd.IsList() &&\n\t\tfd.Kind() == protoreflect.EnumKind &&\n\t\tgf.Has(fd) {\n\t\tparentFS.StripEnumPrefix = int(gf.Get(fd).Enum())\n\t}\n\n\tif fd := fields.ByNumber(genid.GoFeatures_ApiLevel_field_number); fd != nil &&\n\t\t!fd.IsList() &&\n\t\tfd.Kind() == protoreflect.EnumKind &&\n\t\tgf.Has(fd) {\n\t\tparentFS.APILevel = int(gf.Get(fd).Enum())\n\t}\n\n\treturn parentFS\n}\n\n// initFileDescFromFeatureSet initializes editions related fields in fd based\n// on fs. If fs is nil it is assumed to be an empty featureset and all fields\n// will be initialized with the appropriate default. fd.L1.Edition must be set\n// before calling this function.\nfunc initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) {\n\tdfs := getFeatureSetFor(fd.L1.Edition)\n\t// initialize the featureset with the defaults\n\tfd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs)\n\t// overwrite any options explicitly specified\n\tfd.L1.EditionFeatures = mergeEditionFeatures(fd, fs)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/proto.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a\n// google.protobuf.FileDescriptorProto message.\nfunc ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto {\n\tp := &descriptorpb.FileDescriptorProto{\n\t\tName:    proto.String(file.Path()),\n\t\tOptions: proto.Clone(file.Options()).(*descriptorpb.FileOptions),\n\t}\n\tif file.Package() != \"\" {\n\t\tp.Package = proto.String(string(file.Package()))\n\t}\n\tfor i, imports := 0, file.Imports(); i < imports.Len(); i++ {\n\t\timp := imports.Get(i)\n\t\tp.Dependency = append(p.Dependency, imp.Path())\n\t\tif imp.IsPublic {\n\t\t\tp.PublicDependency = append(p.PublicDependency, int32(i))\n\t\t}\n\t}\n\tfor i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ {\n\t\tloc := locs.Get(i)\n\t\tl := &descriptorpb.SourceCodeInfo_Location{}\n\t\tl.Path = append(l.Path, loc.Path...)\n\t\tif loc.StartLine == loc.EndLine {\n\t\t\tl.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)}\n\t\t} else {\n\t\t\tl.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)}\n\t\t}\n\t\tl.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...)\n\t\tif loc.LeadingComments != \"\" {\n\t\t\tl.LeadingComments = proto.String(loc.LeadingComments)\n\t\t}\n\t\tif loc.TrailingComments != \"\" {\n\t\t\tl.TrailingComments = proto.String(loc.TrailingComments)\n\t\t}\n\t\tif p.SourceCodeInfo == nil {\n\t\t\tp.SourceCodeInfo = &descriptorpb.SourceCodeInfo{}\n\t\t}\n\t\tp.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l)\n\n\t}\n\tfor i, messages := 0, file.Messages(); i < messages.Len(); i++ {\n\t\tp.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i)))\n\t}\n\tfor i, enums := 0, file.Enums(); i < enums.Len(); i++ {\n\t\tp.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i)))\n\t}\n\tfor i, services := 0, file.Services(); i < services.Len(); i++ {\n\t\tp.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i)))\n\t}\n\tfor i, exts := 0, file.Extensions(); i < exts.Len(); i++ {\n\t\tp.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i)))\n\t}\n\tif syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() {\n\t\tp.Syntax = proto.String(file.Syntax().String())\n\t}\n\tdesc := file\n\tif fileImportDesc, ok := file.(protoreflect.FileImport); ok {\n\t\tdesc = fileImportDesc.FileDescriptor\n\t}\n\tif file.Syntax() == protoreflect.Editions {\n\t\tif editionsInterface, ok := desc.(interface{ Edition() int32 }); ok {\n\t\t\tp.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum()\n\t\t}\n\t}\n\ttype hasOptionImports interface {\n\t\tOptionImports() protoreflect.FileImports\n\t}\n\tif opts, ok := desc.(hasOptionImports); ok {\n\t\tif optionImports := opts.OptionImports(); optionImports.Len() > 0 {\n\t\t\toptionDeps := make([]string, optionImports.Len())\n\t\t\tfor i := range optionImports.Len() {\n\t\t\t\toptionDeps[i] = optionImports.Get(i).Path()\n\t\t\t}\n\t\t\tp.OptionDependency = optionDeps\n\t\t}\n\t}\n\treturn p\n}\n\n// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a\n// google.protobuf.DescriptorProto message.\nfunc ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto {\n\tp := &descriptorpb.DescriptorProto{\n\t\tName:    proto.String(string(message.Name())),\n\t\tOptions: proto.Clone(message.Options()).(*descriptorpb.MessageOptions),\n\t}\n\tfor i, fields := 0, message.Fields(); i < fields.Len(); i++ {\n\t\tp.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i)))\n\t}\n\tfor i, exts := 0, message.Extensions(); i < exts.Len(); i++ {\n\t\tp.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i)))\n\t}\n\tfor i, messages := 0, message.Messages(); i < messages.Len(); i++ {\n\t\tp.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i)))\n\t}\n\tfor i, enums := 0, message.Enums(); i < enums.Len(); i++ {\n\t\tp.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i)))\n\t}\n\tfor i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ {\n\t\txrange := xranges.Get(i)\n\t\tp.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{\n\t\t\tStart:   proto.Int32(int32(xrange[0])),\n\t\t\tEnd:     proto.Int32(int32(xrange[1])),\n\t\t\tOptions: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions),\n\t\t})\n\t}\n\tfor i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ {\n\t\tp.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i)))\n\t}\n\tfor i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ {\n\t\trrange := ranges.Get(i)\n\t\tp.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{\n\t\t\tStart: proto.Int32(int32(rrange[0])),\n\t\t\tEnd:   proto.Int32(int32(rrange[1])),\n\t\t})\n\t}\n\tfor i, names := 0, message.ReservedNames(); i < names.Len(); i++ {\n\t\tp.ReservedName = append(p.ReservedName, string(names.Get(i)))\n\t}\n\ttype hasVisibility interface {\n\t\tVisibility() int32\n\t}\n\tif vis, ok := message.(hasVisibility); ok {\n\t\tif visibility := vis.Visibility(); visibility > 0 {\n\t\t\tp.Visibility = descriptorpb.SymbolVisibility(visibility).Enum()\n\t\t}\n\t}\n\treturn p\n}\n\n// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a\n// google.protobuf.FieldDescriptorProto message.\nfunc ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto {\n\tp := &descriptorpb.FieldDescriptorProto{\n\t\tName:    proto.String(string(field.Name())),\n\t\tNumber:  proto.Int32(int32(field.Number())),\n\t\tLabel:   descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(),\n\t\tOptions: proto.Clone(field.Options()).(*descriptorpb.FieldOptions),\n\t}\n\tif field.IsExtension() {\n\t\tp.Extendee = fullNameOf(field.ContainingMessage())\n\t}\n\tif field.Kind().IsValid() {\n\t\tp.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum()\n\t}\n\tif field.Enum() != nil {\n\t\tp.TypeName = fullNameOf(field.Enum())\n\t}\n\tif field.Message() != nil {\n\t\tp.TypeName = fullNameOf(field.Message())\n\t}\n\tif field.HasJSONName() {\n\t\t// A bug in older versions of protoc would always populate the\n\t\t// \"json_name\" option for extensions when it is meaningless.\n\t\t// When it did so, it would always use the camel-cased field name.\n\t\tif field.IsExtension() {\n\t\t\tp.JsonName = proto.String(strs.JSONCamelCase(string(field.Name())))\n\t\t} else {\n\t\t\tp.JsonName = proto.String(field.JSONName())\n\t\t}\n\t}\n\tif field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() {\n\t\tp.Proto3Optional = proto.Bool(true)\n\t}\n\tif field.Syntax() == protoreflect.Editions {\n\t\t// Editions have no group keyword, this type is only set so that downstream users continue\n\t\t// treating this as delimited encoding.\n\t\tif p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP {\n\t\t\tp.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum()\n\t\t}\n\t\t// Editions have no required keyword, this label is only set so that downstream users continue\n\t\t// treating it as required.\n\t\tif p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED {\n\t\t\tp.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum()\n\t\t}\n\t}\n\tif field.HasDefault() {\n\t\tdef, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor)\n\t\tif err != nil && field.DefaultEnumValue() != nil {\n\t\t\tdef = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values\n\t\t} else if err != nil {\n\t\t\tpanic(fmt.Sprintf(\"%v: %v\", field.FullName(), err))\n\t\t}\n\t\tp.DefaultValue = proto.String(def)\n\t}\n\tif oneof := field.ContainingOneof(); oneof != nil {\n\t\tp.OneofIndex = proto.Int32(int32(oneof.Index()))\n\t}\n\treturn p\n}\n\n// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a\n// google.protobuf.OneofDescriptorProto message.\nfunc ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto {\n\treturn &descriptorpb.OneofDescriptorProto{\n\t\tName:    proto.String(string(oneof.Name())),\n\t\tOptions: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions),\n\t}\n}\n\n// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a\n// google.protobuf.EnumDescriptorProto message.\nfunc ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto {\n\tp := &descriptorpb.EnumDescriptorProto{\n\t\tName:    proto.String(string(enum.Name())),\n\t\tOptions: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions),\n\t}\n\tfor i, values := 0, enum.Values(); i < values.Len(); i++ {\n\t\tp.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i)))\n\t}\n\tfor i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ {\n\t\trrange := ranges.Get(i)\n\t\tp.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{\n\t\t\tStart: proto.Int32(int32(rrange[0])),\n\t\t\tEnd:   proto.Int32(int32(rrange[1])),\n\t\t})\n\t}\n\tfor i, names := 0, enum.ReservedNames(); i < names.Len(); i++ {\n\t\tp.ReservedName = append(p.ReservedName, string(names.Get(i)))\n\t}\n\ttype hasVisibility interface {\n\t\tVisibility() int32\n\t}\n\tif vis, ok := enum.(hasVisibility); ok {\n\t\tif visibility := vis.Visibility(); visibility > 0 {\n\t\t\tp.Visibility = descriptorpb.SymbolVisibility(visibility).Enum()\n\t\t}\n\t}\n\treturn p\n}\n\n// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a\n// google.protobuf.EnumValueDescriptorProto message.\nfunc ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto {\n\treturn &descriptorpb.EnumValueDescriptorProto{\n\t\tName:    proto.String(string(value.Name())),\n\t\tNumber:  proto.Int32(int32(value.Number())),\n\t\tOptions: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions),\n\t}\n}\n\n// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a\n// google.protobuf.ServiceDescriptorProto message.\nfunc ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto {\n\tp := &descriptorpb.ServiceDescriptorProto{\n\t\tName:    proto.String(string(service.Name())),\n\t\tOptions: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions),\n\t}\n\tfor i, methods := 0, service.Methods(); i < methods.Len(); i++ {\n\t\tp.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i)))\n\t}\n\treturn p\n}\n\n// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a\n// google.protobuf.MethodDescriptorProto message.\nfunc ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto {\n\tp := &descriptorpb.MethodDescriptorProto{\n\t\tName:       proto.String(string(method.Name())),\n\t\tInputType:  fullNameOf(method.Input()),\n\t\tOutputType: fullNameOf(method.Output()),\n\t\tOptions:    proto.Clone(method.Options()).(*descriptorpb.MethodOptions),\n\t}\n\tif method.IsStreamingClient() {\n\t\tp.ClientStreaming = proto.Bool(true)\n\t}\n\tif method.IsStreamingServer() {\n\t\tp.ServerStreaming = proto.Bool(true)\n\t}\n\treturn p\n}\n\nfunc fullNameOf(d protoreflect.Descriptor) *string {\n\tif d == nil {\n\t\treturn nil\n\t}\n\tif strings.HasPrefix(string(d.FullName()), unknownPrefix) {\n\t\treturn proto.String(string(d.FullName()[len(unknownPrefix):]))\n\t}\n\treturn proto.String(\".\" + string(d.FullName()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\n// The following types are used by the fast-path Message.ProtoMethods method.\n//\n// To avoid polluting the public protoreflect API with types used only by\n// low-level implementations, the canonical definitions of these types are\n// in the runtime/protoiface package. The definitions here and in protoiface\n// must be kept in sync.\ntype (\n\tmethods = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags            supportFlags\n\t\tSize             func(sizeInput) sizeOutput\n\t\tMarshal          func(marshalInput) (marshalOutput, error)\n\t\tUnmarshal        func(unmarshalInput) (unmarshalOutput, error)\n\t\tMerge            func(mergeInput) mergeOutput\n\t\tCheckInitialized func(checkInitializedInput) (checkInitializedOutput, error)\n\t\tEqual            func(equalInput) equalOutput\n\t}\n\tsupportFlags = uint64\n\tsizeInput    = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t\tFlags   uint8\n\t}\n\tsizeOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tSize int\n\t}\n\tmarshalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t\tBuf     []byte\n\t\tFlags   uint8\n\t}\n\tmarshalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tBuf []byte\n\t}\n\tunmarshalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage  Message\n\t\tBuf      []byte\n\t\tFlags    uint8\n\t\tResolver interface {\n\t\t\tFindExtensionByName(field FullName) (ExtensionType, error)\n\t\t\tFindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error)\n\t\t}\n\t\tDepth int\n\t}\n\tunmarshalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags uint8\n\t}\n\tmergeInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tSource      Message\n\t\tDestination Message\n\t}\n\tmergeOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags uint8\n\t}\n\tcheckInitializedInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t}\n\tcheckInitializedOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t}\n\tequalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessageA Message\n\t\tMessageB Message\n\t}\n\tequalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tEqual bool\n\t}\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoreflect provides interfaces to dynamically manipulate messages.\n//\n// This package includes type descriptors which describe the structure of types\n// defined in proto source files and value interfaces which provide the\n// ability to examine and manipulate the contents of messages.\n//\n// # Protocol Buffer Descriptors\n//\n// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor])\n// are immutable objects that represent protobuf type information.\n// They are wrappers around the messages declared in descriptor.proto.\n// Protobuf descriptors alone lack any information regarding Go types.\n//\n// Enums and messages generated by this module implement [Enum] and [ProtoMessage],\n// where the Descriptor and ProtoReflect.Descriptor accessors respectively\n// return the protobuf descriptor for the values.\n//\n// The protobuf descriptor interfaces are not meant to be implemented by\n// user code since they might need to be extended in the future to support\n// additions to the protobuf language.\n// The [google.golang.org/protobuf/reflect/protodesc] package converts between\n// google.protobuf.DescriptorProto messages and protobuf descriptors.\n//\n// # Go Type Descriptors\n//\n// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for\n// a concrete Go type that represents the associated protobuf descriptor.\n// There is commonly a one-to-one relationship between protobuf descriptors and\n// Go type descriptors, but it can potentially be a one-to-many relationship.\n//\n// Enums and messages generated by this module implement [Enum] and [ProtoMessage],\n// where the Type and ProtoReflect.Type accessors respectively\n// return the protobuf descriptor for the values.\n//\n// The [google.golang.org/protobuf/types/dynamicpb] package can be used to\n// create Go type descriptors from protobuf descriptors.\n//\n// # Value Interfaces\n//\n// The [Enum] and [Message] interfaces provide a reflective view over an\n// enum or message instance. For enums, it provides the ability to retrieve\n// the enum value number for any concrete enum type. For messages, it provides\n// the ability to access or manipulate fields of the message.\n//\n// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the\n// former's ProtoReflect method. Since the ProtoReflect method is new to the\n// v2 message interface, it may not be present on older message implementations.\n// The [github.com/golang/protobuf/proto.MessageReflect] function can be used\n// to obtain a reflective view on older messages.\n//\n// # Relationships\n//\n// The following diagrams demonstrate the relationships between\n// various types declared in this package.\n//\n//\t                       ┌───────────────────────────────────┐\n//\t                       V                                   │\n//\t   ┌────────────── New(n) ─────────────┐                   │\n//\t   │                                   │                   │\n//\t   │      ┌──── Descriptor() ──┐       │  ┌── Number() ──┐ │\n//\t   │      │                    V       V  │              V │\n//\t╔════════════╗  ╔════════════════╗  ╔════════╗  ╔════════════╗\n//\t║  EnumType  ║  ║ EnumDescriptor ║  ║  Enum  ║  ║ EnumNumber ║\n//\t╚════════════╝  ╚════════════════╝  ╚════════╝  ╚════════════╝\n//\t      Λ           Λ                   │ │\n//\t      │           └─── Descriptor() ──┘ │\n//\t      │                                 │\n//\t      └────────────────── Type() ───────┘\n//\n// • An [EnumType] describes a concrete Go enum type.\n// It has an EnumDescriptor and can construct an Enum instance.\n//\n// • An [EnumDescriptor] describes an abstract protobuf enum type.\n//\n// • An [Enum] is a concrete enum instance. Generated enums implement Enum.\n//\n//\t  ┌──────────────── New() ─────────────────┐\n//\t  │                                        │\n//\t  │         ┌─── Descriptor() ─────┐       │   ┌── Interface() ───┐\n//\t  │         │                      V       V   │                  V\n//\t╔═════════════╗  ╔═══════════════════╗  ╔═════════╗  ╔══════════════╗\n//\t║ MessageType ║  ║ MessageDescriptor ║  ║ Message ║  ║ ProtoMessage ║\n//\t╚═════════════╝  ╚═══════════════════╝  ╚═════════╝  ╚══════════════╝\n//\t       Λ           Λ                      │ │  Λ                  │\n//\t       │           └──── Descriptor() ────┘ │  └─ ProtoReflect() ─┘\n//\t       │                                    │\n//\t       └─────────────────── Type() ─────────┘\n//\n// • A [MessageType] describes a concrete Go message type.\n// It has a [MessageDescriptor] and can construct a [Message] instance.\n// Just as how Go's [reflect.Type] is a reflective description of a Go type,\n// a [MessageType] is a reflective description of a Go type for a protobuf message.\n//\n// • A [MessageDescriptor] describes an abstract protobuf message type.\n// It has no understanding of Go types. In order to construct a [MessageType]\n// from just a [MessageDescriptor], you can consider looking up the message type\n// in the global registry using the FindMessageByName method on\n// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes]\n// or constructing a dynamic [MessageType] using\n// [google.golang.org/protobuf/types/dynamicpb.NewMessageType].\n//\n// • A [Message] is a reflective view over a concrete message instance.\n// Generated messages implement [ProtoMessage], which can convert to a [Message].\n// Just as how Go's [reflect.Value] is a reflective view over a Go value,\n// a [Message] is a reflective view over a concrete protobuf message instance.\n// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to\n// calling [reflect.ValueOf], and the [Message.Interface] method is similar to\n// calling [reflect.Value.Interface].\n//\n//\t      ┌── TypeDescriptor() ──┐    ┌───── Descriptor() ─────┐\n//\t      │                      V    │                        V\n//\t╔═══════════════╗  ╔═════════════════════════╗  ╔═════════════════════╗\n//\t║ ExtensionType ║  ║ ExtensionTypeDescriptor ║  ║ ExtensionDescriptor ║\n//\t╚═══════════════╝  ╚═════════════════════════╝  ╚═════════════════════╝\n//\t      Λ                      │   │ Λ                      │ Λ\n//\t      └─────── Type() ───────┘   │ └─── may implement ────┘ │\n//\t                                 │                          │\n//\t                                 └────── implements ────────┘\n//\n// • An [ExtensionType] describes a concrete Go implementation of an extension.\n// It has an [ExtensionTypeDescriptor] and can convert to/from\n// an abstract [Value] and a Go value.\n//\n// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor]\n// which also has an [ExtensionType].\n//\n// • An [ExtensionDescriptor] describes an abstract protobuf extension field and\n// may not always be an [ExtensionTypeDescriptor].\npackage protoreflect\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\ntype doNotImplement pragma.DoNotImplement\n\n// ProtoMessage is the top-level interface that all proto messages implement.\n// This is declared in the protoreflect package to avoid a cyclic dependency;\n// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type.\ntype ProtoMessage interface{ ProtoReflect() Message }\n\n// Syntax is the language version of the proto file.\ntype Syntax syntax\n\ntype syntax int8 // keep exact type opaque as the int type may change\n\nconst (\n\tProto2   Syntax = 2\n\tProto3   Syntax = 3\n\tEditions Syntax = 4\n)\n\n// IsValid reports whether the syntax is valid.\nfunc (s Syntax) IsValid() bool {\n\tswitch s {\n\tcase Proto2, Proto3, Editions:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns s as a proto source identifier (e.g., \"proto2\").\nfunc (s Syntax) String() string {\n\tswitch s {\n\tcase Proto2:\n\t\treturn \"proto2\"\n\tcase Proto3:\n\t\treturn \"proto3\"\n\tcase Editions:\n\t\treturn \"editions\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", s)\n\t}\n}\n\n// GoString returns s as a Go source identifier (e.g., \"Proto2\").\nfunc (s Syntax) GoString() string {\n\tswitch s {\n\tcase Proto2:\n\t\treturn \"Proto2\"\n\tcase Proto3:\n\t\treturn \"Proto3\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Syntax(%d)\", s)\n\t}\n}\n\n// Cardinality determines whether a field is optional, required, or repeated.\ntype Cardinality cardinality\n\ntype cardinality int8 // keep exact type opaque as the int type may change\n\n// Constants as defined by the google.protobuf.Cardinality enumeration.\nconst (\n\tOptional Cardinality = 1 // appears zero or one times\n\tRequired Cardinality = 2 // appears exactly one time; invalid with Proto3\n\tRepeated Cardinality = 3 // appears zero or more times\n)\n\n// IsValid reports whether the cardinality is valid.\nfunc (c Cardinality) IsValid() bool {\n\tswitch c {\n\tcase Optional, Required, Repeated:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns c as a proto source identifier (e.g., \"optional\").\nfunc (c Cardinality) String() string {\n\tswitch c {\n\tcase Optional:\n\t\treturn \"optional\"\n\tcase Required:\n\t\treturn \"required\"\n\tcase Repeated:\n\t\treturn \"repeated\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", c)\n\t}\n}\n\n// GoString returns c as a Go source identifier (e.g., \"Optional\").\nfunc (c Cardinality) GoString() string {\n\tswitch c {\n\tcase Optional:\n\t\treturn \"Optional\"\n\tcase Required:\n\t\treturn \"Required\"\n\tcase Repeated:\n\t\treturn \"Repeated\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Cardinality(%d)\", c)\n\t}\n}\n\n// Kind indicates the basic proto kind of a field.\ntype Kind kind\n\ntype kind int8 // keep exact type opaque as the int type may change\n\n// Constants as defined by the google.protobuf.Field.Kind enumeration.\nconst (\n\tBoolKind     Kind = 8\n\tEnumKind     Kind = 14\n\tInt32Kind    Kind = 5\n\tSint32Kind   Kind = 17\n\tUint32Kind   Kind = 13\n\tInt64Kind    Kind = 3\n\tSint64Kind   Kind = 18\n\tUint64Kind   Kind = 4\n\tSfixed32Kind Kind = 15\n\tFixed32Kind  Kind = 7\n\tFloatKind    Kind = 2\n\tSfixed64Kind Kind = 16\n\tFixed64Kind  Kind = 6\n\tDoubleKind   Kind = 1\n\tStringKind   Kind = 9\n\tBytesKind    Kind = 12\n\tMessageKind  Kind = 11\n\tGroupKind    Kind = 10\n)\n\n// IsValid reports whether the kind is valid.\nfunc (k Kind) IsValid() bool {\n\tswitch k {\n\tcase BoolKind, EnumKind,\n\t\tInt32Kind, Sint32Kind, Uint32Kind,\n\t\tInt64Kind, Sint64Kind, Uint64Kind,\n\t\tSfixed32Kind, Fixed32Kind, FloatKind,\n\t\tSfixed64Kind, Fixed64Kind, DoubleKind,\n\t\tStringKind, BytesKind, MessageKind, GroupKind:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns k as a proto source identifier (e.g., \"bool\").\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase BoolKind:\n\t\treturn \"bool\"\n\tcase EnumKind:\n\t\treturn \"enum\"\n\tcase Int32Kind:\n\t\treturn \"int32\"\n\tcase Sint32Kind:\n\t\treturn \"sint32\"\n\tcase Uint32Kind:\n\t\treturn \"uint32\"\n\tcase Int64Kind:\n\t\treturn \"int64\"\n\tcase Sint64Kind:\n\t\treturn \"sint64\"\n\tcase Uint64Kind:\n\t\treturn \"uint64\"\n\tcase Sfixed32Kind:\n\t\treturn \"sfixed32\"\n\tcase Fixed32Kind:\n\t\treturn \"fixed32\"\n\tcase FloatKind:\n\t\treturn \"float\"\n\tcase Sfixed64Kind:\n\t\treturn \"sfixed64\"\n\tcase Fixed64Kind:\n\t\treturn \"fixed64\"\n\tcase DoubleKind:\n\t\treturn \"double\"\n\tcase StringKind:\n\t\treturn \"string\"\n\tcase BytesKind:\n\t\treturn \"bytes\"\n\tcase MessageKind:\n\t\treturn \"message\"\n\tcase GroupKind:\n\t\treturn \"group\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", k)\n\t}\n}\n\n// GoString returns k as a Go source identifier (e.g., \"BoolKind\").\nfunc (k Kind) GoString() string {\n\tswitch k {\n\tcase BoolKind:\n\t\treturn \"BoolKind\"\n\tcase EnumKind:\n\t\treturn \"EnumKind\"\n\tcase Int32Kind:\n\t\treturn \"Int32Kind\"\n\tcase Sint32Kind:\n\t\treturn \"Sint32Kind\"\n\tcase Uint32Kind:\n\t\treturn \"Uint32Kind\"\n\tcase Int64Kind:\n\t\treturn \"Int64Kind\"\n\tcase Sint64Kind:\n\t\treturn \"Sint64Kind\"\n\tcase Uint64Kind:\n\t\treturn \"Uint64Kind\"\n\tcase Sfixed32Kind:\n\t\treturn \"Sfixed32Kind\"\n\tcase Fixed32Kind:\n\t\treturn \"Fixed32Kind\"\n\tcase FloatKind:\n\t\treturn \"FloatKind\"\n\tcase Sfixed64Kind:\n\t\treturn \"Sfixed64Kind\"\n\tcase Fixed64Kind:\n\t\treturn \"Fixed64Kind\"\n\tcase DoubleKind:\n\t\treturn \"DoubleKind\"\n\tcase StringKind:\n\t\treturn \"StringKind\"\n\tcase BytesKind:\n\t\treturn \"BytesKind\"\n\tcase MessageKind:\n\t\treturn \"MessageKind\"\n\tcase GroupKind:\n\t\treturn \"GroupKind\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Kind(%d)\", k)\n\t}\n}\n\n// FieldNumber is the field number in a message.\ntype FieldNumber = protowire.Number\n\n// FieldNumbers represent a list of field numbers.\ntype FieldNumbers interface {\n\t// Len reports the number of fields in the list.\n\tLen() int\n\t// Get returns the ith field number. It panics if out of bounds.\n\tGet(i int) FieldNumber\n\t// Has reports whether n is within the list of fields.\n\tHas(n FieldNumber) bool\n\n\tdoNotImplement\n}\n\n// FieldRanges represent a list of field number ranges.\ntype FieldRanges interface {\n\t// Len reports the number of ranges in the list.\n\tLen() int\n\t// Get returns the ith range. It panics if out of bounds.\n\tGet(i int) [2]FieldNumber // start inclusive; end exclusive\n\t// Has reports whether n is within any of the ranges.\n\tHas(n FieldNumber) bool\n\n\tdoNotImplement\n}\n\n// EnumNumber is the numeric value for an enum.\ntype EnumNumber int32\n\n// EnumRanges represent a list of enum number ranges.\ntype EnumRanges interface {\n\t// Len reports the number of ranges in the list.\n\tLen() int\n\t// Get returns the ith range. It panics if out of bounds.\n\tGet(i int) [2]EnumNumber // start inclusive; end inclusive\n\t// Has reports whether n is within any of the ranges.\n\tHas(n EnumNumber) bool\n\n\tdoNotImplement\n}\n\n// Name is the short name for a proto declaration. This is not the name\n// as used in Go source code, which might not be identical to the proto name.\ntype Name string // e.g., \"Kind\"\n\n// IsValid reports whether s is a syntactically valid name.\n// An empty name is invalid.\nfunc (s Name) IsValid() bool {\n\treturn consumeIdent(string(s)) == len(s)\n}\n\n// Names represent a list of names.\ntype Names interface {\n\t// Len reports the number of names in the list.\n\tLen() int\n\t// Get returns the ith name. It panics if out of bounds.\n\tGet(i int) Name\n\t// Has reports whether s matches any names in the list.\n\tHas(s Name) bool\n\n\tdoNotImplement\n}\n\n// FullName is a qualified name that uniquely identifies a proto declaration.\n// A qualified name is the concatenation of the proto package along with the\n// fully-declared name (i.e., name of parent preceding the name of the child),\n// with a '.' delimiter placed between each [Name].\n//\n// This should not have any leading or trailing dots.\ntype FullName string // e.g., \"google.protobuf.Field.Kind\"\n\n// IsValid reports whether s is a syntactically valid full name.\n// An empty full name is invalid.\nfunc (s FullName) IsValid() bool {\n\ti := consumeIdent(string(s))\n\tif i < 0 {\n\t\treturn false\n\t}\n\tfor len(s) > i {\n\t\tif s[i] != '.' {\n\t\t\treturn false\n\t\t}\n\t\ti++\n\t\tn := consumeIdent(string(s[i:]))\n\t\tif n < 0 {\n\t\t\treturn false\n\t\t}\n\t\ti += n\n\t}\n\treturn true\n}\n\nfunc consumeIdent(s string) (i int) {\n\tif len(s) == 0 || !isLetter(s[i]) {\n\t\treturn -1\n\t}\n\ti++\n\tfor len(s) > i && isLetterDigit(s[i]) {\n\t\ti++\n\t}\n\treturn i\n}\nfunc isLetter(c byte) bool {\n\treturn c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')\n}\nfunc isLetterDigit(c byte) bool {\n\treturn isLetter(c) || ('0' <= c && c <= '9')\n}\n\n// Name returns the short name, which is the last identifier segment.\n// A single segment FullName is the [Name] itself.\nfunc (n FullName) Name() Name {\n\tif i := strings.LastIndexByte(string(n), '.'); i >= 0 {\n\t\treturn Name(n[i+1:])\n\t}\n\treturn Name(n)\n}\n\n// Parent returns the full name with the trailing identifier removed.\n// A single segment FullName has no parent.\nfunc (n FullName) Parent() FullName {\n\tif i := strings.LastIndexByte(string(n), '.'); i >= 0 {\n\t\treturn n[:i]\n\t}\n\treturn \"\"\n}\n\n// Append returns the qualified name appended with the provided short name.\n//\n// Invariant: n == n.Parent().Append(n.Name()) // assuming n is valid\nfunc (n FullName) Append(s Name) FullName {\n\tif n == \"\" {\n\t\treturn FullName(s)\n\t}\n\treturn n + \".\" + FullName(s)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/source.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"strconv\"\n)\n\n// SourceLocations is a list of source locations.\ntype SourceLocations interface {\n\t// Len reports the number of source locations in the proto file.\n\tLen() int\n\t// Get returns the ith SourceLocation. It panics if out of bounds.\n\tGet(int) SourceLocation\n\n\t// ByPath returns the SourceLocation for the given path,\n\t// returning the first location if multiple exist for the same path.\n\t// If multiple locations exist for the same path,\n\t// then SourceLocation.Next index can be used to identify the\n\t// index of the next SourceLocation.\n\t// If no location exists for this path, it returns the zero value.\n\tByPath(path SourcePath) SourceLocation\n\n\t// ByDescriptor returns the SourceLocation for the given descriptor,\n\t// returning the first location if multiple exist for the same path.\n\t// If no location exists for this descriptor, it returns the zero value.\n\tByDescriptor(desc Descriptor) SourceLocation\n\n\tdoNotImplement\n}\n\n// SourceLocation describes a source location and\n// corresponds with the google.protobuf.SourceCodeInfo.Location message.\ntype SourceLocation struct {\n\t// Path is the path to the declaration from the root file descriptor.\n\t// The contents of this slice must not be mutated.\n\tPath SourcePath\n\n\t// StartLine and StartColumn are the zero-indexed starting location\n\t// in the source file for the declaration.\n\tStartLine, StartColumn int\n\t// EndLine and EndColumn are the zero-indexed ending location\n\t// in the source file for the declaration.\n\t// In the descriptor.proto, the end line may be omitted if it is identical\n\t// to the start line. Here, it is always populated.\n\tEndLine, EndColumn int\n\n\t// LeadingDetachedComments are the leading detached comments\n\t// for the declaration. The contents of this slice must not be mutated.\n\tLeadingDetachedComments []string\n\t// LeadingComments is the leading attached comment for the declaration.\n\tLeadingComments string\n\t// TrailingComments is the trailing attached comment for the declaration.\n\tTrailingComments string\n\n\t// Next is an index into SourceLocations for the next source location that\n\t// has the same Path. It is zero if there is no next location.\n\tNext int\n}\n\n// SourcePath identifies part of a file descriptor for a source location.\n// The SourcePath is a sequence of either field numbers or indexes into\n// a repeated field that form a path starting from the root file descriptor.\n//\n// See google.protobuf.SourceCodeInfo.Location.path.\ntype SourcePath []int32\n\n// Equal reports whether p1 equals p2.\nfunc (p1 SourcePath) Equal(p2 SourcePath) bool {\n\tif len(p1) != len(p2) {\n\t\treturn false\n\t}\n\tfor i := range p1 {\n\t\tif p1[i] != p2[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// String formats the path in a humanly readable manner.\n// The output is guaranteed to be deterministic,\n// making it suitable for use as a key into a Go map.\n// It is not guaranteed to be stable as the exact output could change\n// in a future version of this module.\n//\n// Example output:\n//\n//\t.message_type[6].nested_type[15].field[3]\nfunc (p SourcePath) String() string {\n\tb := p.appendFileDescriptorProto(nil)\n\tfor _, i := range p {\n\t\tb = append(b, '.')\n\t\tb = strconv.AppendInt(b, int64(i), 10)\n\t}\n\treturn string(b)\n}\n\ntype appendFunc func(*SourcePath, []byte) []byte\n\nfunc (p *SourcePath) appendSingularField(b []byte, name string, f appendFunc) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tb = append(b, '.')\n\tb = append(b, name...)\n\t*p = (*p)[1:]\n\tif f != nil {\n\t\tb = f(p, b)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendRepeatedField(b []byte, name string, f appendFunc) []byte {\n\tb = p.appendSingularField(b, name, nil)\n\tif len(*p) == 0 || (*p)[0] < 0 {\n\t\treturn b\n\t}\n\tb = append(b, '[')\n\tb = strconv.AppendUint(b, uint64((*p)[0]), 10)\n\tb = append(b, ']')\n\t*p = (*p)[1:]\n\tif f != nil {\n\t\tb = f(p, b)\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage protoreflect\n\nfunc (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"package\", nil)\n\tcase 3:\n\t\tb = p.appendRepeatedField(b, \"dependency\", nil)\n\tcase 10:\n\t\tb = p.appendRepeatedField(b, \"public_dependency\", nil)\n\tcase 11:\n\t\tb = p.appendRepeatedField(b, \"weak_dependency\", nil)\n\tcase 15:\n\t\tb = p.appendRepeatedField(b, \"option_dependency\", nil)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"message_type\", (*SourcePath).appendDescriptorProto)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"enum_type\", (*SourcePath).appendEnumDescriptorProto)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"service\", (*SourcePath).appendServiceDescriptorProto)\n\tcase 7:\n\t\tb = p.appendRepeatedField(b, \"extension\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendFileOptions)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"source_code_info\", (*SourcePath).appendSourceCodeInfo)\n\tcase 12:\n\t\tb = p.appendSingularField(b, \"syntax\", nil)\n\tcase 14:\n\t\tb = p.appendSingularField(b, \"edition\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"field\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"extension\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 3:\n\t\tb = p.appendRepeatedField(b, \"nested_type\", (*SourcePath).appendDescriptorProto)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"enum_type\", (*SourcePath).appendEnumDescriptorProto)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"extension_range\", (*SourcePath).appendDescriptorProto_ExtensionRange)\n\tcase 8:\n\t\tb = p.appendRepeatedField(b, \"oneof_decl\", (*SourcePath).appendOneofDescriptorProto)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendMessageOptions)\n\tcase 9:\n\t\tb = p.appendRepeatedField(b, \"reserved_range\", (*SourcePath).appendDescriptorProto_ReservedRange)\n\tcase 10:\n\t\tb = p.appendRepeatedField(b, \"reserved_name\", nil)\n\tcase 11:\n\t\tb = p.appendSingularField(b, \"visibility\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"value\", (*SourcePath).appendEnumValueDescriptorProto)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendEnumOptions)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"reserved_range\", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"reserved_name\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"visibility\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"method\", (*SourcePath).appendMethodDescriptorProto)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendServiceOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"label\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"type\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"type_name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"extendee\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"default_value\", nil)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"oneof_index\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"json_name\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendFieldOptions)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"proto3_optional\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFileOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"java_package\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"java_outer_classname\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"java_multiple_files\", nil)\n\tcase 20:\n\t\tb = p.appendSingularField(b, \"java_generate_equals_and_hash\", nil)\n\tcase 27:\n\t\tb = p.appendSingularField(b, \"java_string_check_utf8\", nil)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"optimize_for\", nil)\n\tcase 11:\n\t\tb = p.appendSingularField(b, \"go_package\", nil)\n\tcase 16:\n\t\tb = p.appendSingularField(b, \"cc_generic_services\", nil)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"java_generic_services\", nil)\n\tcase 18:\n\t\tb = p.appendSingularField(b, \"py_generic_services\", nil)\n\tcase 23:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 31:\n\t\tb = p.appendSingularField(b, \"cc_enable_arenas\", nil)\n\tcase 36:\n\t\tb = p.appendSingularField(b, \"objc_class_prefix\", nil)\n\tcase 37:\n\t\tb = p.appendSingularField(b, \"csharp_namespace\", nil)\n\tcase 39:\n\t\tb = p.appendSingularField(b, \"swift_prefix\", nil)\n\tcase 40:\n\t\tb = p.appendSingularField(b, \"php_class_prefix\", nil)\n\tcase 41:\n\t\tb = p.appendSingularField(b, \"php_namespace\", nil)\n\tcase 44:\n\t\tb = p.appendSingularField(b, \"php_metadata_namespace\", nil)\n\tcase 45:\n\t\tb = p.appendSingularField(b, \"ruby_package\", nil)\n\tcase 50:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendSourceCodeInfo(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendRepeatedField(b, \"location\", (*SourcePath).appendSourceCodeInfo_Location)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendExtensionRangeOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendOneofOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMessageOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"message_set_wire_format\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"no_standard_descriptor_accessor\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"map_entry\", nil)\n\tcase 11:\n\t\tb = p.appendSingularField(b, \"deprecated_legacy_json_field_conflicts\", nil)\n\tcase 12:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendEnumValueOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"allow_alias\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"deprecated_legacy_json_field_conflicts\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"input_type\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"output_type\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendMethodOptions)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"client_streaming\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"server_streaming\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendServiceOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 34:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 33:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"ctype\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"packed\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"jstype\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"lazy\", nil)\n\tcase 15:\n\t\tb = p.appendSingularField(b, \"unverified_lazy\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"weak\", nil)\n\tcase 16:\n\t\tb = p.appendSingularField(b, \"debug_redact\", nil)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"retention\", nil)\n\tcase 19:\n\t\tb = p.appendRepeatedField(b, \"targets\", nil)\n\tcase 20:\n\t\tb = p.appendRepeatedField(b, \"edition_defaults\", (*SourcePath).appendFieldOptions_EditionDefault)\n\tcase 21:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 22:\n\t\tb = p.appendSingularField(b, \"feature_support\", (*SourcePath).appendFieldOptions_FeatureSupport)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFeatureSet(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"field_presence\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"enum_type\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"repeated_field_encoding\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"utf8_validation\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"message_encoding\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"json_format\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"enforce_naming_style\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"default_symbol_visibility\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendUninterpretedOption(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"name\", (*SourcePath).appendUninterpretedOption_NamePart)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"identifier_value\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"positive_int_value\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"negative_int_value\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"double_value\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"string_value\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"aggregate_value\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendRepeatedField(b, \"path\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"span\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"leading_comments\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"trailing_comments\", nil)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"leading_detached_comments\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"declaration\", (*SourcePath).appendExtensionRangeOptions_Declaration)\n\tcase 50:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"verification\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendOneofOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumValueOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"debug_redact\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"feature_support\", (*SourcePath).appendFieldOptions_FeatureSupport)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMethodOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 33:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 34:\n\t\tb = p.appendSingularField(b, \"idempotency_level\", nil)\n\tcase 35:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"edition\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"value\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions_FeatureSupport(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"edition_introduced\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"edition_deprecated\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecation_warning\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"edition_removed\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name_part\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"is_extension\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"full_name\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"type\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"reserved\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"repeated\", nil)\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/type.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\n// Descriptor provides a set of accessors that are common to every descriptor.\n// Each descriptor type wraps the equivalent google.protobuf.XXXDescriptorProto,\n// but provides efficient lookup and immutability.\n//\n// Each descriptor is comparable. Equality implies that the two types are\n// exactly identical. However, it is possible for the same semantically\n// identical proto type to be represented by multiple type descriptors.\n//\n// For example, suppose we have t1 and t2 which are both an [MessageDescriptor].\n// If t1 == t2, then the types are definitely equal and all accessors return\n// the same information. However, if t1 != t2, then it is still possible that\n// they still represent the same proto type (e.g., t1.FullName == t2.FullName).\n// This can occur if a descriptor type is created dynamically, or multiple\n// versions of the same proto type are accidentally linked into the Go binary.\ntype Descriptor interface {\n\t// ParentFile returns the parent file descriptor that this descriptor\n\t// is declared within. The parent file for the file descriptor is itself.\n\t//\n\t// Support for this functionality is optional and may return nil.\n\tParentFile() FileDescriptor\n\n\t// Parent returns the parent containing this descriptor declaration.\n\t// The following shows the mapping from child type to possible parent types:\n\t//\n\t//\t╔═════════════════════╤═══════════════════════════════════╗\n\t//\t║ Child type          │ Possible parent types             ║\n\t//\t╠═════════════════════╪═══════════════════════════════════╣\n\t//\t║ FileDescriptor      │ nil                               ║\n\t//\t║ MessageDescriptor   │ FileDescriptor, MessageDescriptor ║\n\t//\t║ FieldDescriptor     │ FileDescriptor, MessageDescriptor ║\n\t//\t║ OneofDescriptor     │ MessageDescriptor                 ║\n\t//\t║ EnumDescriptor      │ FileDescriptor, MessageDescriptor ║\n\t//\t║ EnumValueDescriptor │ EnumDescriptor                    ║\n\t//\t║ ServiceDescriptor   │ FileDescriptor                    ║\n\t//\t║ MethodDescriptor    │ ServiceDescriptor                 ║\n\t//\t╚═════════════════════╧═══════════════════════════════════╝\n\t//\n\t// Support for this functionality is optional and may return nil.\n\tParent() Descriptor\n\n\t// Index returns the index of this descriptor within its parent.\n\t// It returns 0 if the descriptor does not have a parent or if the parent\n\t// is unknown.\n\tIndex() int\n\n\t// Syntax is the protobuf syntax.\n\tSyntax() Syntax // e.g., Proto2 or Proto3\n\n\t// Name is the short name of the declaration (i.e., FullName.Name).\n\tName() Name // e.g., \"Any\"\n\n\t// FullName is the fully-qualified name of the declaration.\n\t//\n\t// The FullName is a concatenation of the full name of the type that this\n\t// type is declared within and the declaration name. For example,\n\t// field \"foo_field\" in message \"proto.package.MyMessage\" is\n\t// uniquely identified as \"proto.package.MyMessage.foo_field\".\n\t// Enum values are an exception to the rule (see EnumValueDescriptor).\n\tFullName() FullName // e.g., \"google.protobuf.Any\"\n\n\t// IsPlaceholder reports whether type information is missing since a\n\t// dependency is not resolved, in which case only name information is known.\n\t//\n\t// Placeholder types may only be returned by the following accessors\n\t// as a result of unresolved dependencies:\n\t//\n\t//\t╔═══════════════════════════════════╤═════════════════════╗\n\t//\t║ Accessor                          │ Descriptor          ║\n\t//\t╠═══════════════════════════════════╪═════════════════════╣\n\t//\t║ FileImports.FileDescriptor        │ FileDescriptor      ║\n\t//\t║ FieldDescriptor.Enum              │ EnumDescriptor      ║\n\t//\t║ FieldDescriptor.Message           │ MessageDescriptor   ║\n\t//\t║ FieldDescriptor.DefaultEnumValue  │ EnumValueDescriptor ║\n\t//\t║ FieldDescriptor.ContainingMessage │ MessageDescriptor   ║\n\t//\t║ MethodDescriptor.Input            │ MessageDescriptor   ║\n\t//\t║ MethodDescriptor.Output           │ MessageDescriptor   ║\n\t//\t╚═══════════════════════════════════╧═════════════════════╝\n\t//\n\t// If true, only Name and FullName are valid.\n\t// For FileDescriptor, the Path is also valid.\n\tIsPlaceholder() bool\n\n\t// Options returns the descriptor options. The caller must not modify\n\t// the returned value.\n\t//\n\t// To avoid a dependency cycle, this function returns a proto.Message value.\n\t// The proto message type returned for each descriptor type is as follows:\n\t//\t╔═════════════════════╤══════════════════════════════════════════╗\n\t//\t║ Go type             │ Protobuf message type                    ║\n\t//\t╠═════════════════════╪══════════════════════════════════════════╣\n\t//\t║ FileDescriptor      │ google.protobuf.FileOptions              ║\n\t//\t║ EnumDescriptor      │ google.protobuf.EnumOptions              ║\n\t//\t║ EnumValueDescriptor │ google.protobuf.EnumValueOptions         ║\n\t//\t║ MessageDescriptor   │ google.protobuf.MessageOptions           ║\n\t//\t║ FieldDescriptor     │ google.protobuf.FieldOptions             ║\n\t//\t║ OneofDescriptor     │ google.protobuf.OneofOptions             ║\n\t//\t║ ServiceDescriptor   │ google.protobuf.ServiceOptions           ║\n\t//\t║ MethodDescriptor    │ google.protobuf.MethodOptions            ║\n\t//\t╚═════════════════════╧══════════════════════════════════════════╝\n\t//\n\t// This method returns a typed nil-pointer if no options are present.\n\t// The caller must import the descriptorpb package to use this.\n\tOptions() ProtoMessage\n\n\tdoNotImplement\n}\n\n// FileDescriptor describes the types in a complete proto file and\n// corresponds with the google.protobuf.FileDescriptorProto message.\n//\n// Top-level declarations:\n// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor].\ntype FileDescriptor interface {\n\tDescriptor // Descriptor.FullName is identical to Package\n\n\t// Path returns the file name, relative to the source tree root.\n\tPath() string // e.g., \"path/to/file.proto\"\n\t// Package returns the protobuf package namespace.\n\tPackage() FullName // e.g., \"google.protobuf\"\n\n\t// Imports is a list of imported proto files.\n\tImports() FileImports\n\n\t// Enums is a list of the top-level enum declarations.\n\tEnums() EnumDescriptors\n\t// Messages is a list of the top-level message declarations.\n\tMessages() MessageDescriptors\n\t// Extensions is a list of the top-level extension declarations.\n\tExtensions() ExtensionDescriptors\n\t// Services is a list of the top-level service declarations.\n\tServices() ServiceDescriptors\n\n\t// SourceLocations is a list of source locations.\n\tSourceLocations() SourceLocations\n\n\tisFileDescriptor\n}\ntype isFileDescriptor interface{ ProtoType(FileDescriptor) }\n\n// FileImports is a list of file imports.\ntype FileImports interface {\n\t// Len reports the number of files imported by this proto file.\n\tLen() int\n\t// Get returns the ith FileImport. It panics if out of bounds.\n\tGet(i int) FileImport\n\n\tdoNotImplement\n}\n\n// FileImport is the declaration for a proto file import.\ntype FileImport struct {\n\t// FileDescriptor is the file type for the given import.\n\t// It is a placeholder descriptor if IsWeak is set or if a dependency has\n\t// not been regenerated to implement the new reflection APIs.\n\tFileDescriptor\n\n\t// IsPublic reports whether this is a public import, which causes this file\n\t// to alias declarations within the imported file. The intended use cases\n\t// for this feature is the ability to move proto files without breaking\n\t// existing dependencies.\n\t//\n\t// The current file and the imported file must be within proto package.\n\tIsPublic bool\n\n\t// Deprecated: support for weak fields has been removed.\n\tIsWeak bool\n}\n\n// MessageDescriptor describes a message and\n// corresponds with the google.protobuf.DescriptorProto message.\n//\n// Nested declarations:\n// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor],\n// and/or [MessageDescriptor].\ntype MessageDescriptor interface {\n\tDescriptor\n\n\t// IsMapEntry indicates that this is an auto-generated message type to\n\t// represent the entry type for a map field.\n\t//\n\t// Map entry messages have only two fields:\n\t//\t• a \"key\" field with a field number of 1\n\t//\t• a \"value\" field with a field number of 2\n\t// The key and value types are determined by these two fields.\n\t//\n\t// If IsMapEntry is true, it implies that FieldDescriptor.IsMap is true\n\t// for some field with this message type.\n\tIsMapEntry() bool\n\n\t// Fields is a list of nested field declarations.\n\tFields() FieldDescriptors\n\t// Oneofs is a list of nested oneof declarations.\n\tOneofs() OneofDescriptors\n\n\t// ReservedNames is a list of reserved field names.\n\tReservedNames() Names\n\t// ReservedRanges is a list of reserved ranges of field numbers.\n\tReservedRanges() FieldRanges\n\t// RequiredNumbers is a list of required field numbers.\n\t// In Proto3, it is always an empty list.\n\tRequiredNumbers() FieldNumbers\n\t// ExtensionRanges is the field ranges used for extension fields.\n\t// In Proto3, it is always an empty ranges.\n\tExtensionRanges() FieldRanges\n\t// ExtensionRangeOptions returns the ith extension range options.\n\t//\n\t// To avoid a dependency cycle, this method returns a proto.Message] value,\n\t// which always contains a google.protobuf.ExtensionRangeOptions message.\n\t// This method returns a typed nil-pointer if no options are present.\n\t// The caller must import the descriptorpb package to use this.\n\tExtensionRangeOptions(i int) ProtoMessage\n\n\t// Enums is a list of nested enum declarations.\n\tEnums() EnumDescriptors\n\t// Messages is a list of nested message declarations.\n\tMessages() MessageDescriptors\n\t// Extensions is a list of nested extension declarations.\n\tExtensions() ExtensionDescriptors\n\n\tisMessageDescriptor\n}\ntype isMessageDescriptor interface{ ProtoType(MessageDescriptor) }\n\n// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation.\n// It is recommended that implementations of this interface also implement the\n// [MessageFieldTypes] interface.\ntype MessageType interface {\n\t// New returns a newly allocated empty message.\n\t// It may return nil for synthetic messages representing a map entry.\n\tNew() Message\n\n\t// Zero returns an empty, read-only message.\n\t// It may return nil for synthetic messages representing a map entry.\n\tZero() Message\n\n\t// Descriptor returns the message descriptor.\n\t//\n\t// Invariant: t.Descriptor() == t.New().Descriptor()\n\tDescriptor() MessageDescriptor\n}\n\n// MessageFieldTypes extends a [MessageType] by providing type information\n// regarding enums and messages referenced by the message fields.\ntype MessageFieldTypes interface {\n\tMessageType\n\n\t// Enum returns the EnumType for the ith field in MessageDescriptor.Fields.\n\t// It returns nil if the ith field is not an enum kind.\n\t// It panics if out of bounds.\n\t//\n\t// Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum()\n\tEnum(i int) EnumType\n\n\t// Message returns the MessageType for the ith field in MessageDescriptor.Fields.\n\t// It returns nil if the ith field is not a message or group kind.\n\t// It panics if out of bounds.\n\t//\n\t// Invariant: mt.Message(i).Descriptor() == mt.Descriptor().Fields(i).Message()\n\tMessage(i int) MessageType\n}\n\n// MessageDescriptors is a list of message declarations.\ntype MessageDescriptors interface {\n\t// Len reports the number of messages.\n\tLen() int\n\t// Get returns the ith MessageDescriptor. It panics if out of bounds.\n\tGet(i int) MessageDescriptor\n\t// ByName returns the MessageDescriptor for a message named s.\n\t// It returns nil if not found.\n\tByName(s Name) MessageDescriptor\n\n\tdoNotImplement\n}\n\n// FieldDescriptor describes a field within a message and\n// corresponds with the google.protobuf.FieldDescriptorProto message.\n//\n// It is used for both normal fields defined within the parent message\n// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message\n// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]).\ntype FieldDescriptor interface {\n\tDescriptor\n\n\t// Number reports the unique number for this field.\n\tNumber() FieldNumber\n\t// Cardinality reports the cardinality for this field.\n\tCardinality() Cardinality\n\t// Kind reports the basic kind for this field.\n\tKind() Kind\n\n\t// HasJSONName reports whether this field has an explicitly set JSON name.\n\tHasJSONName() bool\n\n\t// JSONName reports the name used for JSON serialization.\n\t// It is usually the camel-cased form of the field name.\n\t// Extension fields are represented by the full name surrounded by brackets.\n\tJSONName() string\n\n\t// TextName reports the name used for text serialization.\n\t// It is usually the name of the field, except that groups use the name\n\t// of the inlined message, and extension fields are represented by the\n\t// full name surrounded by brackets.\n\tTextName() string\n\n\t// HasPresence reports whether the field distinguishes between unpopulated\n\t// and default values.\n\tHasPresence() bool\n\n\t// IsExtension reports whether this is an extension field. If false,\n\t// then Parent and ContainingMessage refer to the same message.\n\t// Otherwise, ContainingMessage and Parent likely differ.\n\tIsExtension() bool\n\n\t// HasOptionalKeyword reports whether the \"optional\" keyword was explicitly\n\t// specified in the source .proto file.\n\tHasOptionalKeyword() bool\n\n\t// Deprecated: support for weak fields has been removed.\n\tIsWeak() bool\n\n\t// IsPacked reports whether repeated primitive numeric kinds should be\n\t// serialized using a packed encoding.\n\t// If true, then it implies Cardinality is Repeated.\n\tIsPacked() bool\n\n\t// IsList reports whether this field represents a list,\n\t// where the value type for the associated field is a List.\n\t// It is equivalent to checking whether Cardinality is Repeated and\n\t// that IsMap reports false.\n\tIsList() bool\n\n\t// IsMap reports whether this field represents a map,\n\t// where the value type for the associated field is a Map.\n\t// It is equivalent to checking whether Cardinality is Repeated,\n\t// that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true.\n\tIsMap() bool\n\n\t// MapKey returns the field descriptor for the key in the map entry.\n\t// It returns nil if IsMap reports false.\n\tMapKey() FieldDescriptor\n\n\t// MapValue returns the field descriptor for the value in the map entry.\n\t// It returns nil if IsMap reports false.\n\tMapValue() FieldDescriptor\n\n\t// HasDefault reports whether this field has a default value.\n\tHasDefault() bool\n\n\t// Default returns the default value for scalar fields.\n\t// For proto2, it is the default value as specified in the proto file,\n\t// or the zero value if unspecified.\n\t// For proto3, it is always the zero value of the scalar.\n\t// The Value type is determined by the Kind.\n\tDefault() Value\n\n\t// DefaultEnumValue returns the enum value descriptor for the default value\n\t// of an enum field, and is nil for any other kind of field.\n\tDefaultEnumValue() EnumValueDescriptor\n\n\t// ContainingOneof is the containing oneof that this field belongs to,\n\t// and is nil if this field is not part of a oneof.\n\tContainingOneof() OneofDescriptor\n\n\t// ContainingMessage is the containing message that this field belongs to.\n\t// For extension fields, this may not necessarily be the parent message\n\t// that the field is declared within.\n\tContainingMessage() MessageDescriptor\n\n\t// Enum is the enum descriptor if Kind is EnumKind.\n\t// It returns nil for any other Kind.\n\tEnum() EnumDescriptor\n\n\t// Message is the message descriptor if Kind is\n\t// MessageKind or GroupKind. It returns nil for any other Kind.\n\tMessage() MessageDescriptor\n\n\tisFieldDescriptor\n}\ntype isFieldDescriptor interface{ ProtoType(FieldDescriptor) }\n\n// FieldDescriptors is a list of field declarations.\ntype FieldDescriptors interface {\n\t// Len reports the number of fields.\n\tLen() int\n\t// Get returns the ith FieldDescriptor. It panics if out of bounds.\n\tGet(i int) FieldDescriptor\n\t// ByName returns the FieldDescriptor for a field named s.\n\t// It returns nil if not found.\n\tByName(s Name) FieldDescriptor\n\t// ByJSONName returns the FieldDescriptor for a field with s as the JSON name.\n\t// It returns nil if not found.\n\tByJSONName(s string) FieldDescriptor\n\t// ByTextName returns the FieldDescriptor for a field with s as the text name.\n\t// It returns nil if not found.\n\tByTextName(s string) FieldDescriptor\n\t// ByNumber returns the FieldDescriptor for a field numbered n.\n\t// It returns nil if not found.\n\tByNumber(n FieldNumber) FieldDescriptor\n\n\tdoNotImplement\n}\n\n// OneofDescriptor describes a oneof field set within a given message and\n// corresponds with the google.protobuf.OneofDescriptorProto message.\ntype OneofDescriptor interface {\n\tDescriptor\n\n\t// IsSynthetic reports whether this is a synthetic oneof created to support\n\t// proto3 optional semantics. If true, Fields contains exactly one field\n\t// with FieldDescriptor.HasOptionalKeyword specified.\n\tIsSynthetic() bool\n\n\t// Fields is a list of fields belonging to this oneof.\n\tFields() FieldDescriptors\n\n\tisOneofDescriptor\n}\ntype isOneofDescriptor interface{ ProtoType(OneofDescriptor) }\n\n// OneofDescriptors is a list of oneof declarations.\ntype OneofDescriptors interface {\n\t// Len reports the number of oneof fields.\n\tLen() int\n\t// Get returns the ith OneofDescriptor. It panics if out of bounds.\n\tGet(i int) OneofDescriptor\n\t// ByName returns the OneofDescriptor for a oneof named s.\n\t// It returns nil if not found.\n\tByName(s Name) OneofDescriptor\n\n\tdoNotImplement\n}\n\n// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation.\ntype ExtensionDescriptor = FieldDescriptor\n\n// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType].\ntype ExtensionTypeDescriptor interface {\n\tExtensionDescriptor\n\n\t// Type returns the associated ExtensionType.\n\tType() ExtensionType\n\n\t// Descriptor returns the plain ExtensionDescriptor without the\n\t// associated ExtensionType.\n\tDescriptor() ExtensionDescriptor\n}\n\n// ExtensionDescriptors is a list of field declarations.\ntype ExtensionDescriptors interface {\n\t// Len reports the number of fields.\n\tLen() int\n\t// Get returns the ith ExtensionDescriptor. It panics if out of bounds.\n\tGet(i int) ExtensionDescriptor\n\t// ByName returns the ExtensionDescriptor for a field named s.\n\t// It returns nil if not found.\n\tByName(s Name) ExtensionDescriptor\n\n\tdoNotImplement\n}\n\n// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete\n// Go implementation. The nested field descriptor must be for a extension field.\n//\n// While a normal field is a member of the parent message that it is declared\n// within (see [Descriptor.Parent]), an extension field is a member of some other\n// target message (see [FieldDescriptor.ContainingMessage]) and may have no\n// relationship with the parent. However, the full name of an extension field is\n// relative to the parent that it is declared within.\n//\n// For example:\n//\n//\tsyntax = \"proto2\";\n//\tpackage example;\n//\tmessage FooMessage {\n//\t\textensions 100 to max;\n//\t}\n//\tmessage BarMessage {\n//\t\textends FooMessage { optional BarMessage bar_field = 100; }\n//\t}\n//\n// Field \"bar_field\" is an extension of FooMessage, but its full name is\n// \"example.BarMessage.bar_field\" instead of \"example.FooMessage.bar_field\".\ntype ExtensionType interface {\n\t// New returns a new value for the field.\n\t// For scalars, this returns the default value in native Go form.\n\tNew() Value\n\n\t// Zero returns a new value for the field.\n\t// For scalars, this returns the default value in native Go form.\n\t// For composite types, this returns an empty, read-only message, list, or map.\n\tZero() Value\n\n\t// TypeDescriptor returns the extension type descriptor.\n\tTypeDescriptor() ExtensionTypeDescriptor\n\n\t// ValueOf wraps the input and returns it as a Value.\n\t// ValueOf panics if the input value is invalid or not the appropriate type.\n\t//\n\t// ValueOf is more extensive than protoreflect.ValueOf for a given field's\n\t// value as it has more type information available.\n\tValueOf(any) Value\n\n\t// InterfaceOf completely unwraps the Value to the underlying Go type.\n\t// InterfaceOf panics if the input is nil or does not represent the\n\t// appropriate underlying Go type. For composite types, it panics if the\n\t// value is not mutable.\n\t//\n\t// InterfaceOf is able to unwrap the Value further than Value.Interface\n\t// as it has more type information available.\n\tInterfaceOf(Value) any\n\n\t// IsValidValue reports whether the Value is valid to assign to the field.\n\tIsValidValue(Value) bool\n\n\t// IsValidInterface reports whether the input is valid to assign to the field.\n\tIsValidInterface(any) bool\n}\n\n// EnumDescriptor describes an enum and\n// corresponds with the google.protobuf.EnumDescriptorProto message.\n//\n// Nested declarations:\n// [EnumValueDescriptor].\ntype EnumDescriptor interface {\n\tDescriptor\n\n\t// Values is a list of nested enum value declarations.\n\tValues() EnumValueDescriptors\n\n\t// ReservedNames is a list of reserved enum names.\n\tReservedNames() Names\n\t// ReservedRanges is a list of reserved ranges of enum numbers.\n\tReservedRanges() EnumRanges\n\n\t// IsClosed reports whether this enum uses closed semantics.\n\t// See https://protobuf.dev/programming-guides/enum/#definitions.\n\t// Note: the Go protobuf implementation is not spec compliant and treats\n\t// all enums as open enums.\n\tIsClosed() bool\n\n\tisEnumDescriptor\n}\ntype isEnumDescriptor interface{ ProtoType(EnumDescriptor) }\n\n// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation.\ntype EnumType interface {\n\t// New returns an instance of this enum type with its value set to n.\n\tNew(n EnumNumber) Enum\n\n\t// Descriptor returns the enum descriptor.\n\t//\n\t// Invariant: t.Descriptor() == t.New(0).Descriptor()\n\tDescriptor() EnumDescriptor\n}\n\n// EnumDescriptors is a list of enum declarations.\ntype EnumDescriptors interface {\n\t// Len reports the number of enum types.\n\tLen() int\n\t// Get returns the ith EnumDescriptor. It panics if out of bounds.\n\tGet(i int) EnumDescriptor\n\t// ByName returns the EnumDescriptor for an enum named s.\n\t// It returns nil if not found.\n\tByName(s Name) EnumDescriptor\n\n\tdoNotImplement\n}\n\n// EnumValueDescriptor describes an enum value and\n// corresponds with the google.protobuf.EnumValueDescriptorProto message.\n//\n// All other proto declarations are in the namespace of the parent.\n// However, enum values do not follow this rule and are within the namespace\n// of the parent's parent (i.e., they are a sibling of the containing enum).\n// Thus, a value named \"FOO_VALUE\" declared within an enum uniquely identified\n// as \"proto.package.MyEnum\" has a full name of \"proto.package.FOO_VALUE\".\ntype EnumValueDescriptor interface {\n\tDescriptor\n\n\t// Number returns the enum value as an integer.\n\tNumber() EnumNumber\n\n\tisEnumValueDescriptor\n}\ntype isEnumValueDescriptor interface{ ProtoType(EnumValueDescriptor) }\n\n// EnumValueDescriptors is a list of enum value declarations.\ntype EnumValueDescriptors interface {\n\t// Len reports the number of enum values.\n\tLen() int\n\t// Get returns the ith EnumValueDescriptor. It panics if out of bounds.\n\tGet(i int) EnumValueDescriptor\n\t// ByName returns the EnumValueDescriptor for the enum value named s.\n\t// It returns nil if not found.\n\tByName(s Name) EnumValueDescriptor\n\t// ByNumber returns the EnumValueDescriptor for the enum value numbered n.\n\t// If multiple have the same number, the first one defined is returned\n\t// It returns nil if not found.\n\tByNumber(n EnumNumber) EnumValueDescriptor\n\n\tdoNotImplement\n}\n\n// ServiceDescriptor describes a service and\n// corresponds with the google.protobuf.ServiceDescriptorProto message.\n//\n// Nested declarations: [MethodDescriptor].\ntype ServiceDescriptor interface {\n\tDescriptor\n\n\t// Methods is a list of nested message declarations.\n\tMethods() MethodDescriptors\n\n\tisServiceDescriptor\n}\ntype isServiceDescriptor interface{ ProtoType(ServiceDescriptor) }\n\n// ServiceDescriptors is a list of service declarations.\ntype ServiceDescriptors interface {\n\t// Len reports the number of services.\n\tLen() int\n\t// Get returns the ith ServiceDescriptor. It panics if out of bounds.\n\tGet(i int) ServiceDescriptor\n\t// ByName returns the ServiceDescriptor for a service named s.\n\t// It returns nil if not found.\n\tByName(s Name) ServiceDescriptor\n\n\tdoNotImplement\n}\n\n// MethodDescriptor describes a method and\n// corresponds with the google.protobuf.MethodDescriptorProto message.\ntype MethodDescriptor interface {\n\tDescriptor\n\n\t// Input is the input message descriptor.\n\tInput() MessageDescriptor\n\t// Output is the output message descriptor.\n\tOutput() MessageDescriptor\n\t// IsStreamingClient reports whether the client streams multiple messages.\n\tIsStreamingClient() bool\n\t// IsStreamingServer reports whether the server streams multiple messages.\n\tIsStreamingServer() bool\n\n\tisMethodDescriptor\n}\ntype isMethodDescriptor interface{ ProtoType(MethodDescriptor) }\n\n// MethodDescriptors is a list of method declarations.\ntype MethodDescriptors interface {\n\t// Len reports the number of methods.\n\tLen() int\n\t// Get returns the ith MethodDescriptor. It panics if out of bounds.\n\tGet(i int) MethodDescriptor\n\t// ByName returns the MethodDescriptor for a service method named s.\n\t// It returns nil if not found.\n\tByName(s Name) MethodDescriptor\n\n\tdoNotImplement\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport \"google.golang.org/protobuf/encoding/protowire\"\n\n// Enum is a reflection interface for a concrete enum value,\n// which provides type information and a getter for the enum number.\n// Enum does not provide a mutable API since enums are commonly backed by\n// Go constants, which are not addressable.\ntype Enum interface {\n\t// Descriptor returns enum descriptor, which contains only the protobuf\n\t// type information for the enum.\n\tDescriptor() EnumDescriptor\n\n\t// Type returns the enum type, which encapsulates both Go and protobuf\n\t// type information. If the Go type information is not needed,\n\t// it is recommended that the enum descriptor be used instead.\n\tType() EnumType\n\n\t// Number returns the enum value as an integer.\n\tNumber() EnumNumber\n}\n\n// Message is a reflective interface for a concrete message value,\n// encapsulating both type and value information for the message.\n//\n// Accessor/mutators for individual fields are keyed by [FieldDescriptor].\n// For non-extension fields, the descriptor must exactly match the\n// field known by the parent message.\n// For extension fields, the descriptor must implement [ExtensionTypeDescriptor],\n// extend the parent message (i.e., have the same message [FullName]), and\n// be within the parent's extension range.\n//\n// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]).\n// See [Value] for the Go types associated with a [FieldDescriptor].\n// Providing a [Value] that is invalid or of an incorrect type panics.\ntype Message interface {\n\t// Descriptor returns message descriptor, which contains only the protobuf\n\t// type information for the message.\n\tDescriptor() MessageDescriptor\n\n\t// Type returns the message type, which encapsulates both Go and protobuf\n\t// type information. If the Go type information is not needed,\n\t// it is recommended that the message descriptor be used instead.\n\tType() MessageType\n\n\t// New returns a newly allocated and mutable empty message.\n\tNew() Message\n\n\t// Interface unwraps the message reflection interface and\n\t// returns the underlying ProtoMessage interface.\n\tInterface() ProtoMessage\n\n\t// Range iterates over every populated field in an undefined order,\n\t// calling f for each field descriptor and value encountered.\n\t// Range returns immediately if f returns false.\n\t// While iterating, mutating operations may only be performed\n\t// on the current field descriptor.\n\tRange(f func(FieldDescriptor, Value) bool)\n\n\t// Has reports whether a field is populated.\n\t//\n\t// Some fields have the property of nullability where it is possible to\n\t// distinguish between the default value of a field and whether the field\n\t// was explicitly populated with the default value. Singular message fields,\n\t// member fields of a oneof, and proto2 scalar fields are nullable. Such\n\t// fields are populated only if explicitly set.\n\t//\n\t// In other cases (aside from the nullable cases above),\n\t// a proto3 scalar field is populated if it contains a non-zero value, and\n\t// a repeated field is populated if it is non-empty.\n\tHas(FieldDescriptor) bool\n\n\t// Clear clears the field such that a subsequent Has call reports false.\n\t//\n\t// Clearing an extension field clears both the extension type and value\n\t// associated with the given field number.\n\t//\n\t// Clear is a mutating operation and unsafe for concurrent use.\n\tClear(FieldDescriptor)\n\n\t// Get retrieves the value for a field.\n\t//\n\t// For unpopulated scalars, it returns the default value, where\n\t// the default value of a bytes scalar is guaranteed to be a copy.\n\t// For unpopulated composite types, it returns an empty, read-only view\n\t// of the value; to obtain a mutable reference, use Mutable.\n\tGet(FieldDescriptor) Value\n\n\t// Set stores the value for a field.\n\t//\n\t// For a field belonging to a oneof, it implicitly clears any other field\n\t// that may be currently set within the same oneof.\n\t// For extension fields, it implicitly stores the provided ExtensionType.\n\t// When setting a composite type, it is unspecified whether the stored value\n\t// aliases the source's memory in any way. If the composite value is an\n\t// empty, read-only value, then it panics.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(FieldDescriptor, Value)\n\n\t// Mutable returns a mutable reference to a composite type.\n\t//\n\t// If the field is unpopulated, it may allocate a composite value.\n\t// For a field belonging to a oneof, it implicitly clears any other field\n\t// that may be currently set within the same oneof.\n\t// For extension fields, it implicitly stores the provided ExtensionType\n\t// if not already stored.\n\t// It panics if the field does not contain a composite type.\n\t//\n\t// Mutable is a mutating operation and unsafe for concurrent use.\n\tMutable(FieldDescriptor) Value\n\n\t// NewField returns a new value that is assignable to the field\n\t// for the given descriptor. For scalars, this returns the default value.\n\t// For lists, maps, and messages, this returns a new, empty, mutable value.\n\tNewField(FieldDescriptor) Value\n\n\t// WhichOneof reports which field within the oneof is populated,\n\t// returning nil if none are populated.\n\t// It panics if the oneof descriptor does not belong to this message.\n\tWhichOneof(OneofDescriptor) FieldDescriptor\n\n\t// GetUnknown retrieves the entire list of unknown fields.\n\t// The caller may only mutate the contents of the RawFields\n\t// if the mutated bytes are stored back into the message with SetUnknown.\n\tGetUnknown() RawFields\n\n\t// SetUnknown stores an entire list of unknown fields.\n\t// The raw fields must be syntactically valid according to the wire format.\n\t// An implementation may panic if this is not the case.\n\t// Once stored, the caller must not mutate the content of the RawFields.\n\t// An empty RawFields may be passed to clear the fields.\n\t//\n\t// SetUnknown is a mutating operation and unsafe for concurrent use.\n\tSetUnknown(RawFields)\n\n\t// IsValid reports whether the message is valid.\n\t//\n\t// An invalid message is an empty, read-only value.\n\t//\n\t// An invalid message often corresponds to a nil pointer of the concrete\n\t// message type, but the details are implementation dependent.\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n\n\t// ProtoMethods returns optional fast-path implementations of various operations.\n\t// This method may return nil.\n\t//\n\t// The returned methods type is identical to\n\t// [google.golang.org/protobuf/runtime/protoiface.Methods].\n\t// Consult the protoiface package documentation for details.\n\tProtoMethods() *methods\n}\n\n// RawFields is the raw bytes for an ordered sequence of fields.\n// Each field contains both the tag (representing field number and wire type),\n// and also the wire data itself.\ntype RawFields []byte\n\n// IsValid reports whether b is syntactically correct wire format.\nfunc (b RawFields) IsValid() bool {\n\tfor len(b) > 0 {\n\t\t_, _, n := protowire.ConsumeField(b)\n\t\tif n < 0 {\n\t\t\treturn false\n\t\t}\n\t\tb = b[n:]\n\t}\n\treturn true\n}\n\n// List is a zero-indexed, ordered list.\n// The element [Value] type is determined by [FieldDescriptor.Kind].\n// Providing a [Value] that is invalid or of an incorrect type panics.\ntype List interface {\n\t// Len reports the number of entries in the List.\n\t// Get, Set, and Truncate panic with out of bound indexes.\n\tLen() int\n\n\t// Get retrieves the value at the given index.\n\t// It never returns an invalid value.\n\tGet(int) Value\n\n\t// Set stores a value for the given index.\n\t// When setting a composite type, it is unspecified whether the set\n\t// value aliases the source's memory in any way.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(int, Value)\n\n\t// Append appends the provided value to the end of the list.\n\t// When appending a composite type, it is unspecified whether the appended\n\t// value aliases the source's memory in any way.\n\t//\n\t// Append is a mutating operation and unsafe for concurrent use.\n\tAppend(Value)\n\n\t// AppendMutable appends a new, empty, mutable message value to the end\n\t// of the list and returns it.\n\t// It panics if the list does not contain a message type.\n\tAppendMutable() Value\n\n\t// Truncate truncates the list to a smaller length.\n\t//\n\t// Truncate is a mutating operation and unsafe for concurrent use.\n\tTruncate(int)\n\n\t// NewElement returns a new value for a list element.\n\t// For enums, this returns the first enum value.\n\t// For other scalars, this returns the zero value.\n\t// For messages, this returns a new, empty, mutable value.\n\tNewElement() Value\n\n\t// IsValid reports whether the list is valid.\n\t//\n\t// An invalid list is an empty, read-only value.\n\t//\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n}\n\n// Map is an unordered, associative map.\n// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind.\n// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind.\n// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics.\ntype Map interface {\n\t// Len reports the number of elements in the map.\n\tLen() int\n\n\t// Range iterates over every map entry in an undefined order,\n\t// calling f for each key and value encountered.\n\t// Range calls f Len times unless f returns false, which stops iteration.\n\t// While iterating, mutating operations may only be performed\n\t// on the current map key.\n\tRange(f func(MapKey, Value) bool)\n\n\t// Has reports whether an entry with the given key is in the map.\n\tHas(MapKey) bool\n\n\t// Clear clears the entry associated with they given key.\n\t// The operation does nothing if there is no entry associated with the key.\n\t//\n\t// Clear is a mutating operation and unsafe for concurrent use.\n\tClear(MapKey)\n\n\t// Get retrieves the value for an entry with the given key.\n\t// It returns an invalid value for non-existent entries.\n\tGet(MapKey) Value\n\n\t// Set stores the value for an entry with the given key.\n\t// It panics when given a key or value that is invalid or the wrong type.\n\t// When setting a composite type, it is unspecified whether the set\n\t// value aliases the source's memory in any way.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(MapKey, Value)\n\n\t// Mutable retrieves a mutable reference to the entry for the given key.\n\t// If no entry exists for the key, it creates a new, empty, mutable value\n\t// and stores it as the entry for the key.\n\t// It panics if the map value is not a message.\n\tMutable(MapKey) Value\n\n\t// NewValue returns a new value assignable as a map value.\n\t// For enums, this returns the first enum value.\n\t// For other scalars, this returns the zero value.\n\t// For messages, this returns a new, empty, mutable value.\n\tNewValue() Value\n\n\t// IsValid reports whether the map is valid.\n\t//\n\t// An invalid map is an empty, read-only value.\n\t//\n\t// An invalid message often corresponds to a nil Go map value,\n\t// but the details are implementation dependent.\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n)\n\n// Equal reports whether v1 and v2 are recursively equal.\n//\n//   - Values of different types are always unequal.\n//\n//   - Bytes values are equal if they contain identical bytes.\n//     Empty bytes (regardless of nil-ness) are considered equal.\n//\n//   - Floating point values are equal if they contain the same value.\n//     Unlike the == operator, a NaN is equal to another NaN.\n//\n//   - Enums are equal if they contain the same number.\n//     Since [Value] does not contain an enum descriptor,\n//     enum values do not consider the type of the enum.\n//\n//   - Other scalar values are equal if they contain the same value.\n//\n//   - [Message] values are equal if they belong to the same message descriptor,\n//     have the same set of populated known and extension field values,\n//     and the same set of unknown fields values.\n//\n//   - [List] values are equal if they are the same length and\n//     each corresponding element is equal.\n//\n//   - [Map] values are equal if they have the same set of keys and\n//     the corresponding value for each key is equal.\nfunc (v1 Value) Equal(v2 Value) bool {\n\treturn equalValue(v1, v2)\n}\n\nfunc equalValue(x, y Value) bool {\n\teqType := x.typ == y.typ\n\tswitch x.typ {\n\tcase nilType:\n\t\treturn eqType\n\tcase boolType:\n\t\treturn eqType && x.Bool() == y.Bool()\n\tcase int32Type, int64Type:\n\t\treturn eqType && x.Int() == y.Int()\n\tcase uint32Type, uint64Type:\n\t\treturn eqType && x.Uint() == y.Uint()\n\tcase float32Type, float64Type:\n\t\treturn eqType && equalFloat(x.Float(), y.Float())\n\tcase stringType:\n\t\treturn eqType && x.String() == y.String()\n\tcase bytesType:\n\t\treturn eqType && bytes.Equal(x.Bytes(), y.Bytes())\n\tcase enumType:\n\t\treturn eqType && x.Enum() == y.Enum()\n\tdefault:\n\t\tswitch x := x.Interface().(type) {\n\t\tcase Message:\n\t\t\ty, ok := y.Interface().(Message)\n\t\t\treturn ok && equalMessage(x, y)\n\t\tcase List:\n\t\t\ty, ok := y.Interface().(List)\n\t\t\treturn ok && equalList(x, y)\n\t\tcase Map:\n\t\t\ty, ok := y.Interface().(Map)\n\t\t\treturn ok && equalMap(x, y)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown type: %T\", x))\n\t\t}\n\t}\n}\n\n// equalFloat compares two floats, where NaNs are treated as equal.\nfunc equalFloat(x, y float64) bool {\n\tif math.IsNaN(x) || math.IsNaN(y) {\n\t\treturn math.IsNaN(x) && math.IsNaN(y)\n\t}\n\treturn x == y\n}\n\n// equalMessage compares two messages.\nfunc equalMessage(mx, my Message) bool {\n\tif mx.Descriptor() != my.Descriptor() {\n\t\treturn false\n\t}\n\n\tnx := 0\n\tequal := true\n\tmx.Range(func(fd FieldDescriptor, vx Value) bool {\n\t\tnx++\n\t\tvy := my.Get(fd)\n\t\tequal = my.Has(fd) && equalValue(vx, vy)\n\t\treturn equal\n\t})\n\tif !equal {\n\t\treturn false\n\t}\n\tny := 0\n\tmy.Range(func(fd FieldDescriptor, vx Value) bool {\n\t\tny++\n\t\treturn true\n\t})\n\tif nx != ny {\n\t\treturn false\n\t}\n\n\treturn equalUnknown(mx.GetUnknown(), my.GetUnknown())\n}\n\n// equalList compares two lists.\nfunc equalList(x, y List) bool {\n\tif x.Len() != y.Len() {\n\t\treturn false\n\t}\n\tfor i := x.Len() - 1; i >= 0; i-- {\n\t\tif !equalValue(x.Get(i), y.Get(i)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// equalMap compares two maps.\nfunc equalMap(x, y Map) bool {\n\tif x.Len() != y.Len() {\n\t\treturn false\n\t}\n\tequal := true\n\tx.Range(func(k MapKey, vx Value) bool {\n\t\tvy := y.Get(k)\n\t\tequal = y.Has(k) && equalValue(vx, vy)\n\t\treturn equal\n\t})\n\treturn equal\n}\n\n// equalUnknown compares unknown fields by direct comparison on the raw bytes\n// of each individual field number.\nfunc equalUnknown(x, y RawFields) bool {\n\tif len(x) != len(y) {\n\t\treturn false\n\t}\n\tif bytes.Equal([]byte(x), []byte(y)) {\n\t\treturn true\n\t}\n\n\tmx := make(map[FieldNumber]RawFields)\n\tmy := make(map[FieldNumber]RawFields)\n\tfor len(x) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(x)\n\t\tmx[fnum] = append(mx[fnum], x[:n]...)\n\t\tx = x[n:]\n\t}\n\tfor len(y) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(y)\n\t\tmy[fnum] = append(my[fnum], y[:n]...)\n\t\ty = y[n:]\n\t}\n\treturn reflect.DeepEqual(mx, my)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"fmt\"\n\t\"math\"\n)\n\n// Value is a union where only one Go type may be set at a time.\n// The Value is used to represent all possible values a field may take.\n// The following shows which Go type is used to represent each proto [Kind]:\n//\n//\t╔════════════╤═════════════════════════════════════╗\n//\t║ Go type    │ Protobuf kind                       ║\n//\t╠════════════╪═════════════════════════════════════╣\n//\t║ bool       │ BoolKind                            ║\n//\t║ int32      │ Int32Kind, Sint32Kind, Sfixed32Kind ║\n//\t║ int64      │ Int64Kind, Sint64Kind, Sfixed64Kind ║\n//\t║ uint32     │ Uint32Kind, Fixed32Kind             ║\n//\t║ uint64     │ Uint64Kind, Fixed64Kind             ║\n//\t║ float32    │ FloatKind                           ║\n//\t║ float64    │ DoubleKind                          ║\n//\t║ string     │ StringKind                          ║\n//\t║ []byte     │ BytesKind                           ║\n//\t║ EnumNumber │ EnumKind                            ║\n//\t║ Message    │ MessageKind, GroupKind              ║\n//\t╚════════════╧═════════════════════════════════════╝\n//\n// Multiple protobuf Kinds may be represented by a single Go type if the type\n// can losslessly represent the information for the proto kind. For example,\n// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64,\n// but use different integer encoding methods.\n//\n// The [List] or [Map] types are used if the field cardinality is repeated.\n// A field is a [List] if [FieldDescriptor.IsList] reports true.\n// A field is a [Map] if [FieldDescriptor.IsMap] reports true.\n//\n// Converting to/from a Value and a concrete Go value panics on type mismatch.\n// For example, [ValueOf](\"hello\").Int() panics because this attempts to\n// retrieve an int64 from a string.\n//\n// [List], [Map], and [Message] Values are called \"composite\" values.\n//\n// A composite Value may alias (reference) memory at some location,\n// such that changes to the Value updates the that location.\n// A composite value acquired with a Mutable method, such as [Message.Mutable],\n// always references the source object.\n//\n// For example:\n//\n//\t// Append a 0 to a \"repeated int32\" field.\n//\t// Since the Value returned by Mutable is guaranteed to alias\n//\t// the source message, modifying the Value modifies the message.\n//\tmessage.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0))\n//\n//\t// Assign [0] to a \"repeated int32\" field by creating a new Value,\n//\t// modifying it, and assigning it.\n//\tlist := message.NewField(fieldDesc).List()\n//\tlist.Append(protoreflect.ValueOfInt32(0))\n//\tmessage.Set(fieldDesc, list)\n//\t// ERROR: Since it is not defined whether Set aliases the source,\n//\t// appending to the List here may or may not modify the message.\n//\tlist.Append(protoreflect.ValueOfInt32(0))\n//\n// Some operations, such as [Message.Get], may return an \"empty, read-only\"\n// composite Value. Modifying an empty, read-only value panics.\ntype Value value\n\n// The protoreflect API uses a custom Value union type instead of any\n// to keep the future open for performance optimizations. Using an any\n// always incurs an allocation for primitives (e.g., int64) since it needs to\n// be boxed on the heap (as interfaces can only contain pointers natively).\n// Instead, we represent the Value union as a flat struct that internally keeps\n// track of which type is set. Using unsafe, the Value union can be reduced\n// down to 24B, which is identical in size to a slice.\n//\n// The latest compiler (Go1.11) currently suffers from some limitations:\n//\t• With inlining, the compiler should be able to statically prove that\n//\tonly one of these switch cases are taken and inline one specific case.\n//\tSee https://golang.org/issue/22310.\n\n// ValueOf returns a Value initialized with the concrete value stored in v.\n// This panics if the type does not match one of the allowed types in the\n// Value union.\nfunc ValueOf(v any) Value {\n\tswitch v := v.(type) {\n\tcase nil:\n\t\treturn Value{}\n\tcase bool:\n\t\treturn ValueOfBool(v)\n\tcase int32:\n\t\treturn ValueOfInt32(v)\n\tcase int64:\n\t\treturn ValueOfInt64(v)\n\tcase uint32:\n\t\treturn ValueOfUint32(v)\n\tcase uint64:\n\t\treturn ValueOfUint64(v)\n\tcase float32:\n\t\treturn ValueOfFloat32(v)\n\tcase float64:\n\t\treturn ValueOfFloat64(v)\n\tcase string:\n\t\treturn ValueOfString(v)\n\tcase []byte:\n\t\treturn ValueOfBytes(v)\n\tcase EnumNumber:\n\t\treturn ValueOfEnum(v)\n\tcase Message, List, Map:\n\t\treturn valueOfIface(v)\n\tcase ProtoMessage:\n\t\tpanic(fmt.Sprintf(\"invalid proto.Message(%T) type, expected a protoreflect.Message type\", v))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid type: %T\", v))\n\t}\n}\n\n// ValueOfBool returns a new boolean value.\nfunc ValueOfBool(v bool) Value {\n\tif v {\n\t\treturn Value{typ: boolType, num: 1}\n\t} else {\n\t\treturn Value{typ: boolType, num: 0}\n\t}\n}\n\n// ValueOfInt32 returns a new int32 value.\nfunc ValueOfInt32(v int32) Value {\n\treturn Value{typ: int32Type, num: uint64(v)}\n}\n\n// ValueOfInt64 returns a new int64 value.\nfunc ValueOfInt64(v int64) Value {\n\treturn Value{typ: int64Type, num: uint64(v)}\n}\n\n// ValueOfUint32 returns a new uint32 value.\nfunc ValueOfUint32(v uint32) Value {\n\treturn Value{typ: uint32Type, num: uint64(v)}\n}\n\n// ValueOfUint64 returns a new uint64 value.\nfunc ValueOfUint64(v uint64) Value {\n\treturn Value{typ: uint64Type, num: v}\n}\n\n// ValueOfFloat32 returns a new float32 value.\nfunc ValueOfFloat32(v float32) Value {\n\treturn Value{typ: float32Type, num: uint64(math.Float64bits(float64(v)))}\n}\n\n// ValueOfFloat64 returns a new float64 value.\nfunc ValueOfFloat64(v float64) Value {\n\treturn Value{typ: float64Type, num: uint64(math.Float64bits(float64(v)))}\n}\n\n// ValueOfString returns a new string value.\nfunc ValueOfString(v string) Value {\n\treturn valueOfString(v)\n}\n\n// ValueOfBytes returns a new bytes value.\nfunc ValueOfBytes(v []byte) Value {\n\treturn valueOfBytes(v[:len(v):len(v)])\n}\n\n// ValueOfEnum returns a new enum value.\nfunc ValueOfEnum(v EnumNumber) Value {\n\treturn Value{typ: enumType, num: uint64(v)}\n}\n\n// ValueOfMessage returns a new Message value.\nfunc ValueOfMessage(v Message) Value {\n\treturn valueOfIface(v)\n}\n\n// ValueOfList returns a new List value.\nfunc ValueOfList(v List) Value {\n\treturn valueOfIface(v)\n}\n\n// ValueOfMap returns a new Map value.\nfunc ValueOfMap(v Map) Value {\n\treturn valueOfIface(v)\n}\n\n// IsValid reports whether v is populated with a value.\nfunc (v Value) IsValid() bool {\n\treturn v.typ != nilType\n}\n\n// Interface returns v as an any.\n//\n// Invariant: v == ValueOf(v).Interface()\nfunc (v Value) Interface() any {\n\tswitch v.typ {\n\tcase nilType:\n\t\treturn nil\n\tcase boolType:\n\t\treturn v.Bool()\n\tcase int32Type:\n\t\treturn int32(v.Int())\n\tcase int64Type:\n\t\treturn int64(v.Int())\n\tcase uint32Type:\n\t\treturn uint32(v.Uint())\n\tcase uint64Type:\n\t\treturn uint64(v.Uint())\n\tcase float32Type:\n\t\treturn float32(v.Float())\n\tcase float64Type:\n\t\treturn float64(v.Float())\n\tcase stringType:\n\t\treturn v.String()\n\tcase bytesType:\n\t\treturn v.Bytes()\n\tcase enumType:\n\t\treturn v.Enum()\n\tdefault:\n\t\treturn v.getIface()\n\t}\n}\n\nfunc (v Value) typeName() string {\n\tswitch v.typ {\n\tcase nilType:\n\t\treturn \"nil\"\n\tcase boolType:\n\t\treturn \"bool\"\n\tcase int32Type:\n\t\treturn \"int32\"\n\tcase int64Type:\n\t\treturn \"int64\"\n\tcase uint32Type:\n\t\treturn \"uint32\"\n\tcase uint64Type:\n\t\treturn \"uint64\"\n\tcase float32Type:\n\t\treturn \"float32\"\n\tcase float64Type:\n\t\treturn \"float64\"\n\tcase stringType:\n\t\treturn \"string\"\n\tcase bytesType:\n\t\treturn \"bytes\"\n\tcase enumType:\n\t\treturn \"enum\"\n\tdefault:\n\t\tswitch v := v.getIface().(type) {\n\t\tcase Message:\n\t\t\treturn \"message\"\n\t\tcase List:\n\t\t\treturn \"list\"\n\t\tcase Map:\n\t\t\treturn \"map\"\n\t\tdefault:\n\t\t\treturn fmt.Sprintf(\"<unknown: %T>\", v)\n\t\t}\n\t}\n}\n\nfunc (v Value) panicMessage(what string) string {\n\treturn fmt.Sprintf(\"type mismatch: cannot convert %v to %s\", v.typeName(), what)\n}\n\n// Bool returns v as a bool and panics if the type is not a bool.\nfunc (v Value) Bool() bool {\n\tswitch v.typ {\n\tcase boolType:\n\t\treturn v.num > 0\n\tdefault:\n\t\tpanic(v.panicMessage(\"bool\"))\n\t}\n}\n\n// Int returns v as a int64 and panics if the type is not a int32 or int64.\nfunc (v Value) Int() int64 {\n\tswitch v.typ {\n\tcase int32Type, int64Type:\n\t\treturn int64(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"int\"))\n\t}\n}\n\n// Uint returns v as a uint64 and panics if the type is not a uint32 or uint64.\nfunc (v Value) Uint() uint64 {\n\tswitch v.typ {\n\tcase uint32Type, uint64Type:\n\t\treturn uint64(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"uint\"))\n\t}\n}\n\n// Float returns v as a float64 and panics if the type is not a float32 or float64.\nfunc (v Value) Float() float64 {\n\tswitch v.typ {\n\tcase float32Type, float64Type:\n\t\treturn math.Float64frombits(uint64(v.num))\n\tdefault:\n\t\tpanic(v.panicMessage(\"float\"))\n\t}\n}\n\n// String returns v as a string. Since this method implements [fmt.Stringer],\n// this returns the formatted string value for any non-string type.\nfunc (v Value) String() string {\n\tswitch v.typ {\n\tcase stringType:\n\t\treturn v.getString()\n\tdefault:\n\t\treturn fmt.Sprint(v.Interface())\n\t}\n}\n\n// Bytes returns v as a []byte and panics if the type is not a []byte.\nfunc (v Value) Bytes() []byte {\n\tswitch v.typ {\n\tcase bytesType:\n\t\treturn v.getBytes()\n\tdefault:\n\t\tpanic(v.panicMessage(\"bytes\"))\n\t}\n}\n\n// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber].\nfunc (v Value) Enum() EnumNumber {\n\tswitch v.typ {\n\tcase enumType:\n\t\treturn EnumNumber(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"enum\"))\n\t}\n}\n\n// Message returns v as a [Message] and panics if the type is not a [Message].\nfunc (v Value) Message() Message {\n\tswitch vi := v.getIface().(type) {\n\tcase Message:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"message\"))\n\t}\n}\n\n// List returns v as a [List] and panics if the type is not a [List].\nfunc (v Value) List() List {\n\tswitch vi := v.getIface().(type) {\n\tcase List:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"list\"))\n\t}\n}\n\n// Map returns v as a [Map] and panics if the type is not a [Map].\nfunc (v Value) Map() Map {\n\tswitch vi := v.getIface().(type) {\n\tcase Map:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"map\"))\n\t}\n}\n\n// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types.\nfunc (v Value) MapKey() MapKey {\n\tswitch v.typ {\n\tcase boolType, int32Type, int64Type, uint32Type, uint64Type, stringType:\n\t\treturn MapKey(v)\n\tdefault:\n\t\tpanic(v.panicMessage(\"map key\"))\n\t}\n}\n\n// MapKey is used to index maps, where the Go type of the MapKey must match\n// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]).\n// The following shows what Go type is used to represent each proto [Kind]:\n//\n//\t╔═════════╤═════════════════════════════════════╗\n//\t║ Go type │ Protobuf kind                       ║\n//\t╠═════════╪═════════════════════════════════════╣\n//\t║ bool    │ BoolKind                            ║\n//\t║ int32   │ Int32Kind, Sint32Kind, Sfixed32Kind ║\n//\t║ int64   │ Int64Kind, Sint64Kind, Sfixed64Kind ║\n//\t║ uint32  │ Uint32Kind, Fixed32Kind             ║\n//\t║ uint64  │ Uint64Kind, Fixed64Kind             ║\n//\t║ string  │ StringKind                          ║\n//\t╚═════════╧═════════════════════════════════════╝\n//\n// A MapKey is constructed and accessed through a [Value]:\n//\n//\tk := ValueOf(\"hash\").MapKey() // convert string to MapKey\n//\ts := k.String()               // convert MapKey to string\n//\n// The MapKey is a strict subset of valid types used in [Value];\n// converting a [Value] to a MapKey with an invalid type panics.\ntype MapKey value\n\n// IsValid reports whether k is populated with a value.\nfunc (k MapKey) IsValid() bool {\n\treturn Value(k).IsValid()\n}\n\n// Interface returns k as an any.\nfunc (k MapKey) Interface() any {\n\treturn Value(k).Interface()\n}\n\n// Bool returns k as a bool and panics if the type is not a bool.\nfunc (k MapKey) Bool() bool {\n\treturn Value(k).Bool()\n}\n\n// Int returns k as a int64 and panics if the type is not a int32 or int64.\nfunc (k MapKey) Int() int64 {\n\treturn Value(k).Int()\n}\n\n// Uint returns k as a uint64 and panics if the type is not a uint32 or uint64.\nfunc (k MapKey) Uint() uint64 {\n\treturn Value(k).Uint()\n}\n\n// String returns k as a string. Since this method implements [fmt.Stringer],\n// this returns the formatted string value for any non-string type.\nfunc (k MapKey) String() string {\n\treturn Value(k).String()\n}\n\n// Value returns k as a [Value].\nfunc (k MapKey) Value() Value {\n\treturn Value(k)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\ntype (\n\tifaceHeader struct {\n\t\t_    [0]any // if interfaces have greater alignment than unsafe.Pointer, this will enforce it.\n\t\tType unsafe.Pointer\n\t\tData unsafe.Pointer\n\t}\n)\n\nvar (\n\tnilType     = typeOf(nil)\n\tboolType    = typeOf(*new(bool))\n\tint32Type   = typeOf(*new(int32))\n\tint64Type   = typeOf(*new(int64))\n\tuint32Type  = typeOf(*new(uint32))\n\tuint64Type  = typeOf(*new(uint64))\n\tfloat32Type = typeOf(*new(float32))\n\tfloat64Type = typeOf(*new(float64))\n\tstringType  = typeOf(*new(string))\n\tbytesType   = typeOf(*new([]byte))\n\tenumType    = typeOf(*new(EnumNumber))\n)\n\n// typeOf returns a pointer to the Go type information.\n// The pointer is comparable and equal if and only if the types are identical.\nfunc typeOf(t any) unsafe.Pointer {\n\treturn (*ifaceHeader)(unsafe.Pointer(&t)).Type\n}\n\n// value is a union where only one type can be represented at a time.\n// The struct is 24B large on 64-bit systems and requires the minimum storage\n// necessary to represent each possible type.\n//\n// The Go GC needs to be able to scan variables containing pointers.\n// As such, pointers and non-pointers cannot be intermixed.\ntype value struct {\n\tpragma.DoNotCompare // 0B\n\n\t// typ stores the type of the value as a pointer to the Go type.\n\ttyp unsafe.Pointer // 8B\n\n\t// ptr stores the data pointer for a String, Bytes, or interface value.\n\tptr unsafe.Pointer // 8B\n\n\t// num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or\n\t// Enum value as a raw uint64.\n\t//\n\t// It is also used to store the length of a String or Bytes value;\n\t// the capacity is ignored.\n\tnum uint64 // 8B\n}\n\nfunc valueOfString(v string) Value {\n\treturn Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))}\n}\nfunc valueOfBytes(v []byte) Value {\n\treturn Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))}\n}\nfunc valueOfIface(v any) Value {\n\tp := (*ifaceHeader)(unsafe.Pointer(&v))\n\treturn Value{typ: p.Type, ptr: p.Data}\n}\n\nfunc (v Value) getString() string {\n\treturn unsafe.String((*byte)(v.ptr), v.num)\n}\nfunc (v Value) getBytes() []byte {\n\treturn unsafe.Slice((*byte)(v.ptr), v.num)\n}\nfunc (v Value) getIface() (x any) {\n\t*(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr}\n\treturn x\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoregistry provides data structures to register and lookup\n// protobuf descriptor types.\n//\n// The [Files] registry contains file descriptors and provides the ability\n// to iterate over the files or lookup a specific descriptor within the files.\n// [Files] only contains protobuf descriptors and has no understanding of Go\n// type information that may be associated with each descriptor.\n//\n// The [Types] registry contains descriptor types for which there is a known\n// Go type associated with that descriptor. It provides the ability to iterate\n// over the registered types or lookup a type by name.\npackage protoregistry\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// conflictPolicy configures the policy for handling registration conflicts.\n//\n// It can be over-written at compile time with a linker-initialized variable:\n//\n//\tgo build -ldflags \"-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn\"\n//\n// It can be over-written at program execution with an environment variable:\n//\n//\tGOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn ./main\n//\n// Neither of the above are covered by the compatibility promise and\n// may be removed in a future release of this module.\nvar conflictPolicy = \"panic\" // \"panic\" | \"warn\" | \"ignore\"\n\n// ignoreConflict reports whether to ignore a registration conflict\n// given the descriptor being registered and the error.\n// It is a variable so that the behavior is easily overridden in another file.\nvar ignoreConflict = func(d protoreflect.Descriptor, err error) bool {\n\tconst env = \"GOLANG_PROTOBUF_REGISTRATION_CONFLICT\"\n\tconst faq = \"https://protobuf.dev/reference/go/faq#namespace-conflict\"\n\tpolicy := conflictPolicy\n\tif v := os.Getenv(env); v != \"\" {\n\t\tpolicy = v\n\t}\n\tswitch policy {\n\tcase \"panic\":\n\t\tpanic(fmt.Sprintf(\"%v\\nSee %v\\n\", err, faq))\n\tcase \"warn\":\n\t\tfmt.Fprintf(os.Stderr, \"WARNING: %v\\nSee %v\\n\\n\", err, faq)\n\t\treturn true\n\tcase \"ignore\":\n\t\treturn true\n\tdefault:\n\t\tpanic(\"invalid \" + env + \" value: \" + os.Getenv(env))\n\t}\n}\n\nvar globalMutex sync.RWMutex\n\n// GlobalFiles is a global registry of file descriptors.\nvar GlobalFiles *Files = new(Files)\n\n// GlobalTypes is the registry used by default for type lookups\n// unless a local registry is provided by the user.\nvar GlobalTypes *Types = new(Types)\n\n// NotFound is a sentinel error value to indicate that the type was not found.\n//\n// Since registry lookup can happen in the critical performance path, resolvers\n// must return this exact error value, not an error wrapping it.\nvar NotFound = errors.New(\"not found\")\n\n// Files is a registry for looking up or iterating over files and the\n// descriptors contained within them.\n// The Find and Range methods are safe for concurrent use.\ntype Files struct {\n\t// The map of descsByName contains:\n\t//\tEnumDescriptor\n\t//\tEnumValueDescriptor\n\t//\tMessageDescriptor\n\t//\tExtensionDescriptor\n\t//\tServiceDescriptor\n\t//\t*packageDescriptor\n\t//\n\t// Note that files are stored as a slice, since a package may contain\n\t// multiple files. Only top-level declarations are registered.\n\t// Note that enum values are in the top-level since that are in the same\n\t// scope as the parent enum.\n\tdescsByName map[protoreflect.FullName]any\n\tfilesByPath map[string][]protoreflect.FileDescriptor\n\tnumFiles    int\n}\n\ntype packageDescriptor struct {\n\tfiles []protoreflect.FileDescriptor\n}\n\n// RegisterFile registers the provided file descriptor.\n//\n// If any descriptor within the file conflicts with the descriptor of any\n// previously registered file (e.g., two enums with the same full name),\n// then the file is not registered and an error is returned.\n//\n// It is permitted for multiple files to have the same file path.\nfunc (r *Files) RegisterFile(file protoreflect.FileDescriptor) error {\n\tif r == GlobalFiles {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\tif r.descsByName == nil {\n\t\tr.descsByName = map[protoreflect.FullName]any{\n\t\t\t\"\": &packageDescriptor{},\n\t\t}\n\t\tr.filesByPath = make(map[string][]protoreflect.FileDescriptor)\n\t}\n\tpath := file.Path()\n\tif prev := r.filesByPath[path]; len(prev) > 0 {\n\t\tr.checkGenProtoConflict(path)\n\t\terr := errors.New(\"file %q is already registered\", file.Path())\n\t\terr = amendErrorWithCaller(err, prev[0], file)\n\t\tif !(r == GlobalFiles && ignoreConflict(file, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor name := file.Package(); name != \"\"; name = name.Parent() {\n\t\tswitch prev := r.descsByName[name]; prev.(type) {\n\t\tcase nil, *packageDescriptor:\n\t\tdefault:\n\t\t\terr := errors.New(\"file %q has a package name conflict over %v\", file.Path(), name)\n\t\t\terr = amendErrorWithCaller(err, prev, file)\n\t\t\tif r == GlobalFiles && ignoreConflict(file, err) {\n\t\t\t\terr = nil\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\tvar err error\n\tvar hasConflict bool\n\trangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {\n\t\tif prev := r.descsByName[d.FullName()]; prev != nil {\n\t\t\thasConflict = true\n\t\t\terr = errors.New(\"file %q has a name conflict over %v\", file.Path(), d.FullName())\n\t\t\terr = amendErrorWithCaller(err, prev, file)\n\t\t\tif r == GlobalFiles && ignoreConflict(d, err) {\n\t\t\t\terr = nil\n\t\t\t}\n\t\t}\n\t})\n\tif hasConflict {\n\t\treturn err\n\t}\n\n\tfor name := file.Package(); name != \"\"; name = name.Parent() {\n\t\tif r.descsByName[name] == nil {\n\t\t\tr.descsByName[name] = &packageDescriptor{}\n\t\t}\n\t}\n\tp := r.descsByName[file.Package()].(*packageDescriptor)\n\tp.files = append(p.files, file)\n\trangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {\n\t\tr.descsByName[d.FullName()] = d\n\t})\n\tr.filesByPath[path] = append(r.filesByPath[path], file)\n\tr.numFiles++\n\treturn nil\n}\n\n// Several well-known types were hosted in the google.golang.org/genproto module\n// but were later moved to this module. To avoid a weak dependency on the\n// genproto module (and its relatively large set of transitive dependencies),\n// we rely on a registration conflict to determine whether the genproto version\n// is too old (i.e., does not contain aliases to the new type declarations).\nfunc (r *Files) checkGenProtoConflict(path string) {\n\tif r != GlobalFiles {\n\t\treturn\n\t}\n\tvar prevPath string\n\tconst prevModule = \"google.golang.org/genproto\"\n\tconst prevVersion = \"cb27e3aa (May 26th, 2020)\"\n\tswitch path {\n\tcase \"google/protobuf/field_mask.proto\":\n\t\tprevPath = prevModule + \"/protobuf/field_mask\"\n\tcase \"google/protobuf/api.proto\":\n\t\tprevPath = prevModule + \"/protobuf/api\"\n\tcase \"google/protobuf/type.proto\":\n\t\tprevPath = prevModule + \"/protobuf/ptype\"\n\tcase \"google/protobuf/source_context.proto\":\n\t\tprevPath = prevModule + \"/protobuf/source_context\"\n\tdefault:\n\t\treturn\n\t}\n\tpkgName := strings.TrimSuffix(strings.TrimPrefix(path, \"google/protobuf/\"), \".proto\")\n\tpkgName = strings.Replace(pkgName, \"_\", \"\", -1) + \"pb\" // e.g., \"field_mask\" => \"fieldmaskpb\"\n\tcurrPath := \"google.golang.org/protobuf/types/known/\" + pkgName\n\tpanic(fmt.Sprintf(\"\"+\n\t\t\"duplicate registration of %q\\n\"+\n\t\t\"\\n\"+\n\t\t\"The generated definition for this file has moved:\\n\"+\n\t\t\"\\tfrom: %q\\n\"+\n\t\t\"\\tto:   %q\\n\"+\n\t\t\"A dependency on the %q module must\\n\"+\n\t\t\"be at version %v or higher.\\n\"+\n\t\t\"\\n\"+\n\t\t\"Upgrade the dependency by running:\\n\"+\n\t\t\"\\tgo get -u %v\\n\",\n\t\tpath, prevPath, currPath, prevModule, prevVersion, prevPath))\n}\n\n// FindDescriptorByName looks up a descriptor by the full name.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tprefix := name\n\tsuffix := nameSuffix(\"\")\n\tfor prefix != \"\" {\n\t\tif d, ok := r.descsByName[prefix]; ok {\n\t\t\tswitch d := d.(type) {\n\t\t\tcase protoreflect.EnumDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t\tif d := findDescriptorInMessage(d, suffix); d != nil && d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.ExtensionDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.ServiceDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t\tif d := d.Methods().ByName(suffix.Pop()); d != nil && d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil, NotFound\n\t\t}\n\t\tprefix = prefix.Parent()\n\t\tsuffix = nameSuffix(name[len(prefix)+len(\".\"):])\n\t}\n\treturn nil, NotFound\n}\n\nfunc findDescriptorInMessage(md protoreflect.MessageDescriptor, suffix nameSuffix) protoreflect.Descriptor {\n\tname := suffix.Pop()\n\tif suffix == \"\" {\n\t\tif ed := md.Enums().ByName(name); ed != nil {\n\t\t\treturn ed\n\t\t}\n\t\tfor i := md.Enums().Len() - 1; i >= 0; i-- {\n\t\t\tif vd := md.Enums().Get(i).Values().ByName(name); vd != nil {\n\t\t\t\treturn vd\n\t\t\t}\n\t\t}\n\t\tif xd := md.Extensions().ByName(name); xd != nil {\n\t\t\treturn xd\n\t\t}\n\t\tif fd := md.Fields().ByName(name); fd != nil {\n\t\t\treturn fd\n\t\t}\n\t\tif od := md.Oneofs().ByName(name); od != nil {\n\t\t\treturn od\n\t\t}\n\t}\n\tif md := md.Messages().ByName(name); md != nil {\n\t\tif suffix == \"\" {\n\t\t\treturn md\n\t\t}\n\t\treturn findDescriptorInMessage(md, suffix)\n\t}\n\treturn nil\n}\n\ntype nameSuffix string\n\nfunc (s *nameSuffix) Pop() (name protoreflect.Name) {\n\tif i := strings.IndexByte(string(*s), '.'); i >= 0 {\n\t\tname, *s = protoreflect.Name((*s)[:i]), (*s)[i+1:]\n\t} else {\n\t\tname, *s = protoreflect.Name((*s)), \"\"\n\t}\n\treturn name\n}\n\n// FindFileByPath looks up a file by the path.\n//\n// This returns (nil, [NotFound]) if not found.\n// This returns an error if multiple files have the same path.\nfunc (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfds := r.filesByPath[path]\n\tswitch len(fds) {\n\tcase 0:\n\t\treturn nil, NotFound\n\tcase 1:\n\t\treturn fds[0], nil\n\tdefault:\n\t\treturn nil, errors.New(\"multiple files named %q\", path)\n\t}\n}\n\n// NumFiles reports the number of registered files,\n// including duplicate files with the same name.\nfunc (r *Files) NumFiles() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numFiles\n}\n\n// RangeFiles iterates over all registered files while f returns true.\n// If multiple files have the same name, RangeFiles iterates over all of them.\n// The iteration order is undefined.\nfunc (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, files := range r.filesByPath {\n\t\tfor _, file := range files {\n\t\t\tif !f(file) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumFilesByPackage reports the number of registered files in a proto package.\nfunc (r *Files) NumFilesByPackage(name protoreflect.FullName) int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tp, ok := r.descsByName[name].(*packageDescriptor)\n\tif !ok {\n\t\treturn 0\n\t}\n\treturn len(p.files)\n}\n\n// RangeFilesByPackage iterates over all registered files in a given proto package\n// while f returns true. The iteration order is undefined.\nfunc (r *Files) RangeFilesByPackage(name protoreflect.FullName, f func(protoreflect.FileDescriptor) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tp, ok := r.descsByName[name].(*packageDescriptor)\n\tif !ok {\n\t\treturn\n\t}\n\tfor _, file := range p.files {\n\t\tif !f(file) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// rangeTopLevelDescriptors iterates over all top-level descriptors in a file\n// which will be directly entered into the registry.\nfunc rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflect.Descriptor)) {\n\teds := fd.Enums()\n\tfor i := eds.Len() - 1; i >= 0; i-- {\n\t\tf(eds.Get(i))\n\t\tvds := eds.Get(i).Values()\n\t\tfor i := vds.Len() - 1; i >= 0; i-- {\n\t\t\tf(vds.Get(i))\n\t\t}\n\t}\n\tmds := fd.Messages()\n\tfor i := mds.Len() - 1; i >= 0; i-- {\n\t\tf(mds.Get(i))\n\t}\n\txds := fd.Extensions()\n\tfor i := xds.Len() - 1; i >= 0; i-- {\n\t\tf(xds.Get(i))\n\t}\n\tsds := fd.Services()\n\tfor i := sds.Len() - 1; i >= 0; i-- {\n\t\tf(sds.Get(i))\n\t}\n}\n\n// MessageTypeResolver is an interface for looking up messages.\n//\n// A compliant implementation must deterministically return the same type\n// if no error is encountered.\n//\n// The [Types] type implements this interface.\ntype MessageTypeResolver interface {\n\t// FindMessageByName looks up a message by its full name.\n\t// E.g., \"google.protobuf.Any\"\n\t//\n\t// This return (nil, NotFound) if not found.\n\tFindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error)\n\n\t// FindMessageByURL looks up a message by a URL identifier.\n\t// See documentation on google.protobuf.Any.type_url for the URL format.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindMessageByURL(url string) (protoreflect.MessageType, error)\n}\n\n// ExtensionTypeResolver is an interface for looking up extensions.\n//\n// A compliant implementation must deterministically return the same type\n// if no error is encountered.\n//\n// The [Types] type implements this interface.\ntype ExtensionTypeResolver interface {\n\t// FindExtensionByName looks up a extension field by the field's full name.\n\t// Note that this is the full name of the field as determined by\n\t// where the extension is declared and is unrelated to the full name of the\n\t// message being extended.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\n\t// FindExtensionByNumber looks up a extension field by the field number\n\t// within some parent message, identified by full name.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n}\n\nvar (\n\t_ MessageTypeResolver   = (*Types)(nil)\n\t_ ExtensionTypeResolver = (*Types)(nil)\n)\n\n// Types is a registry for looking up or iterating over descriptor types.\n// The Find and Range methods are safe for concurrent use.\ntype Types struct {\n\ttypesByName         typesByName\n\textensionsByMessage extensionsByMessage\n\n\tnumEnums      int\n\tnumMessages   int\n\tnumExtensions int\n}\n\ntype (\n\ttypesByName         map[protoreflect.FullName]any\n\textensionsByMessage map[protoreflect.FullName]extensionsByNumber\n\textensionsByNumber  map[protoreflect.FieldNumber]protoreflect.ExtensionType\n)\n\n// RegisterMessage registers the provided message type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterMessage(mt protoreflect.MessageType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\tmd := mt.Descriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tif err := r.register(\"message\", md, mt); err != nil {\n\t\treturn err\n\t}\n\tr.numMessages++\n\treturn nil\n}\n\n// RegisterEnum registers the provided enum type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterEnum(et protoreflect.EnumType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\ted := et.Descriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tif err := r.register(\"enum\", ed, et); err != nil {\n\t\treturn err\n\t}\n\tr.numEnums++\n\treturn nil\n}\n\n// RegisterExtension registers the provided extension type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterExtension(xt protoreflect.ExtensionType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\t//\n\t// A known case where this can happen: Fetching the TypeDescriptor for a\n\t// legacy ExtensionDesc can consult the global registry.\n\txd := xt.TypeDescriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tfield := xd.Number()\n\tmessage := xd.ContainingMessage().FullName()\n\tif prev := r.extensionsByMessage[message][field]; prev != nil {\n\t\terr := errors.New(\"extension number %d is already registered on message %v\", field, message)\n\t\terr = amendErrorWithCaller(err, prev, xt)\n\t\tif !(r == GlobalTypes && ignoreConflict(xd, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := r.register(\"extension\", xd, xt); err != nil {\n\t\treturn err\n\t}\n\tif r.extensionsByMessage == nil {\n\t\tr.extensionsByMessage = make(extensionsByMessage)\n\t}\n\tif r.extensionsByMessage[message] == nil {\n\t\tr.extensionsByMessage[message] = make(extensionsByNumber)\n\t}\n\tr.extensionsByMessage[message][field] = xt\n\tr.numExtensions++\n\treturn nil\n}\n\nfunc (r *Types) register(kind string, desc protoreflect.Descriptor, typ any) error {\n\tname := desc.FullName()\n\tprev := r.typesByName[name]\n\tif prev != nil {\n\t\terr := errors.New(\"%v %v is already registered\", kind, name)\n\t\terr = amendErrorWithCaller(err, prev, typ)\n\t\tif !(r == GlobalTypes && ignoreConflict(desc, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\tif r.typesByName == nil {\n\t\tr.typesByName = make(typesByName)\n\t}\n\tr.typesByName[name] = typ\n\treturn nil\n}\n\n// FindEnumByName looks up an enum by its full name.\n// E.g., \"google.protobuf.Field.Kind\".\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[enum]; v != nil {\n\t\tif et, _ := v.(protoreflect.EnumType); et != nil {\n\t\t\treturn et, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want enum\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindMessageByName looks up a message by its full name,\n// e.g. \"google.protobuf.Any\".\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[message]; v != nil {\n\t\tif mt, _ := v.(protoreflect.MessageType); mt != nil {\n\t\t\treturn mt, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want message\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindMessageByURL looks up a message by a URL identifier.\n// See documentation on google.protobuf.Any.type_url for the URL format.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) {\n\t// This function is similar to FindMessageByName but\n\t// truncates anything before and including '/' in the URL.\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tmessage := protoreflect.FullName(url)\n\tif i := strings.LastIndexByte(url, '/'); i >= 0 {\n\t\tmessage = message[i+len(\"/\"):]\n\t}\n\n\tif v := r.typesByName[message]; v != nil {\n\t\tif mt, _ := v.(protoreflect.MessageType); mt != nil {\n\t\t\treturn mt, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want message\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindExtensionByName looks up a extension field by the field's full name.\n// Note that this is the full name of the field as determined by\n// where the extension is declared and is unrelated to the full name of the\n// message being extended.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[field]; v != nil {\n\t\tif xt, _ := v.(protoreflect.ExtensionType); xt != nil {\n\t\t\treturn xt, nil\n\t\t}\n\n\t\t// MessageSet extensions are special in that the name of the extension\n\t\t// is the name of the message type used to extend the MessageSet.\n\t\t// This naming scheme is used by text and JSON serialization.\n\t\t//\n\t\t// This feature is protected by the ProtoLegacy flag since MessageSets\n\t\t// are a proto1 feature that is long deprecated.\n\t\tif flags.ProtoLegacy {\n\t\t\tif _, ok := v.(protoreflect.MessageType); ok {\n\t\t\t\tfield := field.Append(messageset.ExtensionName)\n\t\t\t\tif v := r.typesByName[field]; v != nil {\n\t\t\t\t\tif xt, _ := v.(protoreflect.ExtensionType); xt != nil {\n\t\t\t\t\t\tif messageset.IsMessageSetExtension(xt.TypeDescriptor()) {\n\t\t\t\t\t\t\treturn xt, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn nil, errors.New(\"found wrong type: got %v, want extension\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindExtensionByNumber looks up a extension field by the field number\n// within some parent message, identified by full name.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif xt, ok := r.extensionsByMessage[message][field]; ok {\n\t\treturn xt, nil\n\t}\n\treturn nil, NotFound\n}\n\n// NumEnums reports the number of registered enums.\nfunc (r *Types) NumEnums() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numEnums\n}\n\n// RangeEnums iterates over all registered enums while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeEnums(f func(protoreflect.EnumType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif et, ok := typ.(protoreflect.EnumType); ok {\n\t\t\tif !f(et) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumMessages reports the number of registered messages.\nfunc (r *Types) NumMessages() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numMessages\n}\n\n// RangeMessages iterates over all registered messages while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeMessages(f func(protoreflect.MessageType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif mt, ok := typ.(protoreflect.MessageType); ok {\n\t\t\tif !f(mt) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumExtensions reports the number of registered extensions.\nfunc (r *Types) NumExtensions() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numExtensions\n}\n\n// RangeExtensions iterates over all registered extensions while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeExtensions(f func(protoreflect.ExtensionType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif xt, ok := typ.(protoreflect.ExtensionType); ok {\n\t\t\tif !f(xt) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumExtensionsByMessage reports the number of registered extensions for\n// a given message type.\nfunc (r *Types) NumExtensionsByMessage(message protoreflect.FullName) int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn len(r.extensionsByMessage[message])\n}\n\n// RangeExtensionsByMessage iterates over all registered extensions filtered\n// by a given message type while f returns true. Iteration order is undefined.\nfunc (r *Types) RangeExtensionsByMessage(message protoreflect.FullName, f func(protoreflect.ExtensionType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, xt := range r.extensionsByMessage[message] {\n\t\tif !f(xt) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc typeName(t any) string {\n\tswitch t.(type) {\n\tcase protoreflect.EnumType:\n\t\treturn \"enum\"\n\tcase protoreflect.MessageType:\n\t\treturn \"message\"\n\tcase protoreflect.ExtensionType:\n\t\treturn \"extension\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"%T\", t)\n\t}\n}\n\nfunc amendErrorWithCaller(err error, prev, curr any) error {\n\tprevPkg := goPackage(prev)\n\tcurrPkg := goPackage(curr)\n\tif prevPkg == \"\" || currPkg == \"\" || prevPkg == currPkg {\n\t\treturn err\n\t}\n\treturn errors.New(\"%s\\n\\tpreviously from: %q\\n\\tcurrently from:  %q\", err, prevPkg, currPkg)\n}\n\nfunc goPackage(v any) string {\n\tswitch d := v.(type) {\n\tcase protoreflect.EnumType:\n\t\tv = d.Descriptor()\n\tcase protoreflect.MessageType:\n\t\tv = d.Descriptor()\n\tcase protoreflect.ExtensionType:\n\t\tv = d.TypeDescriptor()\n\t}\n\tif d, ok := v.(protoreflect.Descriptor); ok {\n\t\tv = d.ParentFile()\n\t}\n\tif d, ok := v.(interface{ GoPackagePath() string }); ok {\n\t\treturn d.GoPackagePath()\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoiface\n\ntype MessageV1 interface {\n\tReset()\n\tString() string\n\tProtoMessage()\n}\n\ntype ExtensionRangeV1 struct {\n\tStart, End int32 // both inclusive\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoiface/methods.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoiface contains types referenced or implemented by messages.\n//\n// WARNING: This package should only be imported by message implementations.\n// The functionality found in this package should be accessed through\n// higher-level abstractions provided by the proto package.\npackage protoiface\n\nimport (\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Methods is a set of optional fast-path implementations of various operations.\ntype Methods = struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Flags indicate support for optional features.\n\tFlags SupportFlags\n\n\t// Size returns the size in bytes of the wire-format encoding of a message.\n\t// Marshal must be provided if a custom Size is provided.\n\tSize func(SizeInput) SizeOutput\n\n\t// Marshal formats a message in the wire-format encoding to the provided buffer.\n\t// Size should be provided if a custom Marshal is provided.\n\t// It must not return an error for a partial message.\n\tMarshal func(MarshalInput) (MarshalOutput, error)\n\n\t// Unmarshal parses the wire-format encoding and merges the result into a message.\n\t// It must not reset the target message or return an error for a partial message.\n\tUnmarshal func(UnmarshalInput) (UnmarshalOutput, error)\n\n\t// Merge merges the contents of a source message into a destination message.\n\tMerge func(MergeInput) MergeOutput\n\n\t// CheckInitialized returns an error if any required fields in the message are not set.\n\tCheckInitialized func(CheckInitializedInput) (CheckInitializedOutput, error)\n\n\t// Equal compares two messages and returns EqualOutput.Equal == true if they are equal.\n\tEqual func(EqualInput) EqualOutput\n}\n\n// SupportFlags indicate support for optional features.\ntype SupportFlags = uint64\n\nconst (\n\t// SupportMarshalDeterministic reports whether MarshalOptions.Deterministic is supported.\n\tSupportMarshalDeterministic SupportFlags = 1 << iota\n\n\t// SupportUnmarshalDiscardUnknown reports whether UnmarshalOptions.DiscardUnknown is supported.\n\tSupportUnmarshalDiscardUnknown\n)\n\n// SizeInput is input to the Size method.\ntype SizeInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n\tFlags   MarshalInputFlags\n}\n\n// SizeOutput is output from the Size method.\ntype SizeOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tSize int\n}\n\n// MarshalInput is input to the Marshal method.\ntype MarshalInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n\tBuf     []byte // output is appended to this buffer\n\tFlags   MarshalInputFlags\n}\n\n// MarshalOutput is output from the Marshal method.\ntype MarshalOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tBuf []byte // contains marshaled message\n}\n\n// MarshalInputFlags configure the marshaler.\n// Most flags correspond to fields in proto.MarshalOptions.\ntype MarshalInputFlags = uint8\n\nconst (\n\tMarshalDeterministic MarshalInputFlags = 1 << iota\n\tMarshalUseCachedSize\n)\n\n// UnmarshalInput is input to the Unmarshal method.\ntype UnmarshalInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage  protoreflect.Message\n\tBuf      []byte // input buffer\n\tFlags    UnmarshalInputFlags\n\tResolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\tDepth int\n}\n\n// UnmarshalOutput is output from the Unmarshal method.\ntype UnmarshalOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tFlags UnmarshalOutputFlags\n}\n\n// UnmarshalInputFlags configure the unmarshaler.\n// Most flags correspond to fields in proto.UnmarshalOptions.\ntype UnmarshalInputFlags = uint8\n\nconst (\n\tUnmarshalDiscardUnknown UnmarshalInputFlags = 1 << iota\n\n\t// UnmarshalAliasBuffer permits unmarshal operations to alias the input buffer.\n\t// The unmarshaller must not modify the contents of the buffer.\n\tUnmarshalAliasBuffer\n\n\t// UnmarshalValidated indicates that validation has already been\n\t// performed on the input buffer.\n\tUnmarshalValidated\n\n\t// UnmarshalCheckRequired is set if this unmarshal operation ultimately will care if required fields are\n\t// initialized.\n\tUnmarshalCheckRequired\n\n\t// UnmarshalNoLazyDecoding is set if this unmarshal operation should not use\n\t// lazy decoding, even when otherwise available.\n\tUnmarshalNoLazyDecoding\n)\n\n// UnmarshalOutputFlags are output from the Unmarshal method.\ntype UnmarshalOutputFlags = uint8\n\nconst (\n\t// UnmarshalInitialized may be set on return if all required fields are known to be set.\n\t// If unset, then it does not necessarily indicate that the message is uninitialized,\n\t// only that its status could not be confirmed.\n\tUnmarshalInitialized UnmarshalOutputFlags = 1 << iota\n)\n\n// MergeInput is input to the Merge method.\ntype MergeInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tSource      protoreflect.Message\n\tDestination protoreflect.Message\n}\n\n// MergeOutput is output from the Merge method.\ntype MergeOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tFlags MergeOutputFlags\n}\n\n// MergeOutputFlags are output from the Merge method.\ntype MergeOutputFlags = uint8\n\nconst (\n\t// MergeComplete reports whether the merge was performed.\n\t// If unset, the merger must have made no changes to the destination.\n\tMergeComplete MergeOutputFlags = 1 << iota\n)\n\n// CheckInitializedInput is input to the CheckInitialized method.\ntype CheckInitializedInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n}\n\n// CheckInitializedOutput is output from the CheckInitialized method.\ntype CheckInitializedOutput = struct {\n\tpragma.NoUnkeyedLiterals\n}\n\n// EqualInput is input to the Equal method.\ntype EqualInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessageA protoreflect.Message\n\tMessageB protoreflect.Message\n}\n\n// EqualOutput is output from the Equal method.\ntype EqualOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tEqual bool\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoimpl contains the default implementation for messages\n// generated by protoc-gen-go.\n//\n// WARNING: This package should only ever be imported by generated messages.\n// The compatibility agreement covers nothing except for functionality needed\n// to keep existing generated messages operational. Breakages that occur due\n// to unauthorized usages of this package are not the author's responsibility.\npackage protoimpl\n\nimport (\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/filetype\"\n\t\"google.golang.org/protobuf/internal/impl\"\n\t\"google.golang.org/protobuf/internal/protolazy\"\n)\n\n// UnsafeEnabled specifies whether package unsafe can be used.\nconst UnsafeEnabled = impl.UnsafeEnabled\n\ntype (\n\t// Types used by generated code in init functions.\n\tDescBuilder = filedesc.Builder\n\tTypeBuilder = filetype.Builder\n\n\t// Types used by generated code to implement EnumType, MessageType, and ExtensionType.\n\tEnumInfo      = impl.EnumInfo\n\tMessageInfo   = impl.MessageInfo\n\tExtensionInfo = impl.ExtensionInfo\n\n\t// Types embedded in generated messages.\n\tMessageState     = impl.MessageState\n\tSizeCache        = impl.SizeCache\n\tWeakFields       = impl.WeakFields\n\tUnknownFields    = impl.UnknownFields\n\tExtensionFields  = impl.ExtensionFields\n\tExtensionFieldV1 = impl.ExtensionField\n\n\tPointer = impl.Pointer\n\n\tLazyUnmarshalInfo  = *protolazy.XXX_lazyUnmarshalInfo\n\tRaceDetectHookData = impl.RaceDetectHookData\n)\n\nvar X impl.Export\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoimpl/version.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoimpl\n\nimport (\n\t\"google.golang.org/protobuf/internal/version\"\n)\n\nconst (\n\t// MaxVersion is the maximum supported version for generated .pb.go files.\n\t// It is always the current version of the module.\n\tMaxVersion = version.Minor\n\n\t// GenVersion is the runtime version required by generated .pb.go files.\n\t// This is incremented when generated code relies on new functionality\n\t// in the runtime.\n\tGenVersion = 20\n\n\t// MinVersion is the minimum supported version for generated .pb.go files.\n\t// This is incremented when the runtime drops support for old code.\n\tMinVersion = 0\n)\n\n// EnforceVersion is used by code generated by protoc-gen-go\n// to statically enforce minimum and maximum versions of this package.\n// A compilation failure implies either that:\n//   - the runtime package is too old and needs to be updated OR\n//   - the generated code is too old and needs to be regenerated.\n//\n// The runtime package can be upgraded by running:\n//\n//\tgo get google.golang.org/protobuf\n//\n// The generated code can be regenerated by running:\n//\n//\tprotoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES}\n//\n// Example usage by generated code:\n//\n//\tconst (\n//\t\t// Verify that this generated code is sufficiently up-to-date.\n//\t\t_ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion)\n//\t\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n//\t\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - genVersion)\n//\t)\n//\n// The genVersion is the current minor version used to generated the code.\n// This compile-time check relies on negative integer overflow of a uint\n// being a compilation failure (guaranteed by the Go specification).\ntype EnforceVersion uint\n\n// This enforces the following invariant:\n//\n//\tMinVersion ≤ GenVersion ≤ MaxVersion\nconst (\n\t_ = EnforceVersion(GenVersion - MinVersion)\n\t_ = EnforceVersion(MaxVersion - GenVersion)\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Author: kenton@google.com (Kenton Varda)\n//  Based on original Protocol Buffers design by\n//  Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/descriptor.proto\n\npackage descriptorpb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\tunsafe \"unsafe\"\n)\n\n// The full set of known editions.\ntype Edition int32\n\nconst (\n\t// A placeholder for an unknown edition value.\n\tEdition_EDITION_UNKNOWN Edition = 0\n\t// A placeholder edition for specifying default behaviors *before* a feature\n\t// was first introduced.  This is effectively an \"infinite past\".\n\tEdition_EDITION_LEGACY Edition = 900\n\t// Legacy syntax \"editions\".  These pre-date editions, but behave much like\n\t// distinct editions.  These can't be used to specify the edition of proto\n\t// files, but feature definitions must supply proto2/proto3 defaults for\n\t// backwards compatibility.\n\tEdition_EDITION_PROTO2 Edition = 998\n\tEdition_EDITION_PROTO3 Edition = 999\n\t// Editions that have been released.  The specific values are arbitrary and\n\t// should not be depended on, but they will always be time-ordered for easy\n\t// comparison.\n\tEdition_EDITION_2023 Edition = 1000\n\tEdition_EDITION_2024 Edition = 1001\n\t// Placeholder editions for testing feature resolution.  These should not be\n\t// used or relied on outside of tests.\n\tEdition_EDITION_1_TEST_ONLY     Edition = 1\n\tEdition_EDITION_2_TEST_ONLY     Edition = 2\n\tEdition_EDITION_99997_TEST_ONLY Edition = 99997\n\tEdition_EDITION_99998_TEST_ONLY Edition = 99998\n\tEdition_EDITION_99999_TEST_ONLY Edition = 99999\n\t// Placeholder for specifying unbounded edition support.  This should only\n\t// ever be used by plugins that can expect to never require any changes to\n\t// support a new edition.\n\tEdition_EDITION_MAX Edition = 2147483647\n)\n\n// Enum value maps for Edition.\nvar (\n\tEdition_name = map[int32]string{\n\t\t0:          \"EDITION_UNKNOWN\",\n\t\t900:        \"EDITION_LEGACY\",\n\t\t998:        \"EDITION_PROTO2\",\n\t\t999:        \"EDITION_PROTO3\",\n\t\t1000:       \"EDITION_2023\",\n\t\t1001:       \"EDITION_2024\",\n\t\t1:          \"EDITION_1_TEST_ONLY\",\n\t\t2:          \"EDITION_2_TEST_ONLY\",\n\t\t99997:      \"EDITION_99997_TEST_ONLY\",\n\t\t99998:      \"EDITION_99998_TEST_ONLY\",\n\t\t99999:      \"EDITION_99999_TEST_ONLY\",\n\t\t2147483647: \"EDITION_MAX\",\n\t}\n\tEdition_value = map[string]int32{\n\t\t\"EDITION_UNKNOWN\":         0,\n\t\t\"EDITION_LEGACY\":          900,\n\t\t\"EDITION_PROTO2\":          998,\n\t\t\"EDITION_PROTO3\":          999,\n\t\t\"EDITION_2023\":            1000,\n\t\t\"EDITION_2024\":            1001,\n\t\t\"EDITION_1_TEST_ONLY\":     1,\n\t\t\"EDITION_2_TEST_ONLY\":     2,\n\t\t\"EDITION_99997_TEST_ONLY\": 99997,\n\t\t\"EDITION_99998_TEST_ONLY\": 99998,\n\t\t\"EDITION_99999_TEST_ONLY\": 99999,\n\t\t\"EDITION_MAX\":             2147483647,\n\t}\n)\n\nfunc (x Edition) Enum() *Edition {\n\tp := new(Edition)\n\t*p = x\n\treturn p\n}\n\nfunc (x Edition) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Edition) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor()\n}\n\nfunc (Edition) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[0]\n}\n\nfunc (x Edition) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *Edition) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = Edition(num)\n\treturn nil\n}\n\n// Deprecated: Use Edition.Descriptor instead.\nfunc (Edition) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0}\n}\n\n// Describes the 'visibility' of a symbol with respect to the proto import\n// system. Symbols can only be imported when the visibility rules do not prevent\n// it (ex: local symbols cannot be imported).  Visibility modifiers can only set\n// on `message` and `enum` as they are the only types available to be referenced\n// from other files.\ntype SymbolVisibility int32\n\nconst (\n\tSymbolVisibility_VISIBILITY_UNSET  SymbolVisibility = 0\n\tSymbolVisibility_VISIBILITY_LOCAL  SymbolVisibility = 1\n\tSymbolVisibility_VISIBILITY_EXPORT SymbolVisibility = 2\n)\n\n// Enum value maps for SymbolVisibility.\nvar (\n\tSymbolVisibility_name = map[int32]string{\n\t\t0: \"VISIBILITY_UNSET\",\n\t\t1: \"VISIBILITY_LOCAL\",\n\t\t2: \"VISIBILITY_EXPORT\",\n\t}\n\tSymbolVisibility_value = map[string]int32{\n\t\t\"VISIBILITY_UNSET\":  0,\n\t\t\"VISIBILITY_LOCAL\":  1,\n\t\t\"VISIBILITY_EXPORT\": 2,\n\t}\n)\n\nfunc (x SymbolVisibility) Enum() *SymbolVisibility {\n\tp := new(SymbolVisibility)\n\t*p = x\n\treturn p\n}\n\nfunc (x SymbolVisibility) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (SymbolVisibility) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor()\n}\n\nfunc (SymbolVisibility) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[1]\n}\n\nfunc (x SymbolVisibility) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *SymbolVisibility) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = SymbolVisibility(num)\n\treturn nil\n}\n\n// Deprecated: Use SymbolVisibility.Descriptor instead.\nfunc (SymbolVisibility) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1}\n}\n\n// The verification state of the extension range.\ntype ExtensionRangeOptions_VerificationState int32\n\nconst (\n\t// All the extensions of the range must be declared.\n\tExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0\n\tExtensionRangeOptions_UNVERIFIED  ExtensionRangeOptions_VerificationState = 1\n)\n\n// Enum value maps for ExtensionRangeOptions_VerificationState.\nvar (\n\tExtensionRangeOptions_VerificationState_name = map[int32]string{\n\t\t0: \"DECLARATION\",\n\t\t1: \"UNVERIFIED\",\n\t}\n\tExtensionRangeOptions_VerificationState_value = map[string]int32{\n\t\t\"DECLARATION\": 0,\n\t\t\"UNVERIFIED\":  1,\n\t}\n)\n\nfunc (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState {\n\tp := new(ExtensionRangeOptions_VerificationState)\n\t*p = x\n\treturn p\n}\n\nfunc (x ExtensionRangeOptions_VerificationState) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor()\n}\n\nfunc (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[2]\n}\n\nfunc (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = ExtensionRangeOptions_VerificationState(num)\n\treturn nil\n}\n\n// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead.\nfunc (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0}\n}\n\ntype FieldDescriptorProto_Type int32\n\nconst (\n\t// 0 is reserved for errors.\n\t// Order is weird for historical reasons.\n\tFieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1\n\tFieldDescriptorProto_TYPE_FLOAT  FieldDescriptorProto_Type = 2\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT64  FieldDescriptorProto_Type = 3\n\tFieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT32   FieldDescriptorProto_Type = 5\n\tFieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6\n\tFieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7\n\tFieldDescriptorProto_TYPE_BOOL    FieldDescriptorProto_Type = 8\n\tFieldDescriptorProto_TYPE_STRING  FieldDescriptorProto_Type = 9\n\t// Tag-delimited aggregate.\n\t// Group type is deprecated and not supported after google.protobuf. However, Proto3\n\t// implementations should still be able to parse the group wire format and\n\t// treat group fields as unknown fields.  In Editions, the group wire format\n\t// can be enabled via the `message_encoding` feature.\n\tFieldDescriptorProto_TYPE_GROUP   FieldDescriptorProto_Type = 10\n\tFieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate.\n\t// New in version 2.\n\tFieldDescriptorProto_TYPE_BYTES    FieldDescriptorProto_Type = 12\n\tFieldDescriptorProto_TYPE_UINT32   FieldDescriptorProto_Type = 13\n\tFieldDescriptorProto_TYPE_ENUM     FieldDescriptorProto_Type = 14\n\tFieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15\n\tFieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16\n\tFieldDescriptorProto_TYPE_SINT32   FieldDescriptorProto_Type = 17 // Uses ZigZag encoding.\n\tFieldDescriptorProto_TYPE_SINT64   FieldDescriptorProto_Type = 18 // Uses ZigZag encoding.\n)\n\n// Enum value maps for FieldDescriptorProto_Type.\nvar (\n\tFieldDescriptorProto_Type_name = map[int32]string{\n\t\t1:  \"TYPE_DOUBLE\",\n\t\t2:  \"TYPE_FLOAT\",\n\t\t3:  \"TYPE_INT64\",\n\t\t4:  \"TYPE_UINT64\",\n\t\t5:  \"TYPE_INT32\",\n\t\t6:  \"TYPE_FIXED64\",\n\t\t7:  \"TYPE_FIXED32\",\n\t\t8:  \"TYPE_BOOL\",\n\t\t9:  \"TYPE_STRING\",\n\t\t10: \"TYPE_GROUP\",\n\t\t11: \"TYPE_MESSAGE\",\n\t\t12: \"TYPE_BYTES\",\n\t\t13: \"TYPE_UINT32\",\n\t\t14: \"TYPE_ENUM\",\n\t\t15: \"TYPE_SFIXED32\",\n\t\t16: \"TYPE_SFIXED64\",\n\t\t17: \"TYPE_SINT32\",\n\t\t18: \"TYPE_SINT64\",\n\t}\n\tFieldDescriptorProto_Type_value = map[string]int32{\n\t\t\"TYPE_DOUBLE\":   1,\n\t\t\"TYPE_FLOAT\":    2,\n\t\t\"TYPE_INT64\":    3,\n\t\t\"TYPE_UINT64\":   4,\n\t\t\"TYPE_INT32\":    5,\n\t\t\"TYPE_FIXED64\":  6,\n\t\t\"TYPE_FIXED32\":  7,\n\t\t\"TYPE_BOOL\":     8,\n\t\t\"TYPE_STRING\":   9,\n\t\t\"TYPE_GROUP\":    10,\n\t\t\"TYPE_MESSAGE\":  11,\n\t\t\"TYPE_BYTES\":    12,\n\t\t\"TYPE_UINT32\":   13,\n\t\t\"TYPE_ENUM\":     14,\n\t\t\"TYPE_SFIXED32\": 15,\n\t\t\"TYPE_SFIXED64\": 16,\n\t\t\"TYPE_SINT32\":   17,\n\t\t\"TYPE_SINT64\":   18,\n\t}\n)\n\nfunc (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type {\n\tp := new(FieldDescriptorProto_Type)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Type) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor()\n}\n\nfunc (FieldDescriptorProto_Type) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[3]\n}\n\nfunc (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldDescriptorProto_Type) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Type(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldDescriptorProto_Type.Descriptor instead.\nfunc (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 0}\n}\n\ntype FieldDescriptorProto_Label int32\n\nconst (\n\t// 0 is reserved for errors\n\tFieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1\n\tFieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3\n\t// The required label is only allowed in google.protobuf.  In proto3 and Editions\n\t// it's explicitly prohibited.  In Editions, the `field_presence` feature\n\t// can be used to get this behavior.\n\tFieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2\n)\n\n// Enum value maps for FieldDescriptorProto_Label.\nvar (\n\tFieldDescriptorProto_Label_name = map[int32]string{\n\t\t1: \"LABEL_OPTIONAL\",\n\t\t3: \"LABEL_REPEATED\",\n\t\t2: \"LABEL_REQUIRED\",\n\t}\n\tFieldDescriptorProto_Label_value = map[string]int32{\n\t\t\"LABEL_OPTIONAL\": 1,\n\t\t\"LABEL_REPEATED\": 3,\n\t\t\"LABEL_REQUIRED\": 2,\n\t}\n)\n\nfunc (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label {\n\tp := new(FieldDescriptorProto_Label)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Label) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor()\n}\n\nfunc (FieldDescriptorProto_Label) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[4]\n}\n\nfunc (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldDescriptorProto_Label) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Label(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldDescriptorProto_Label.Descriptor instead.\nfunc (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 1}\n}\n\n// Generated classes can be optimized for speed or code size.\ntype FileOptions_OptimizeMode int32\n\nconst (\n\tFileOptions_SPEED FileOptions_OptimizeMode = 1 // Generate complete code for parsing, serialization,\n\t// etc.\n\tFileOptions_CODE_SIZE    FileOptions_OptimizeMode = 2 // Use ReflectionOps to implement these methods.\n\tFileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 // Generate code using MessageLite and the lite runtime.\n)\n\n// Enum value maps for FileOptions_OptimizeMode.\nvar (\n\tFileOptions_OptimizeMode_name = map[int32]string{\n\t\t1: \"SPEED\",\n\t\t2: \"CODE_SIZE\",\n\t\t3: \"LITE_RUNTIME\",\n\t}\n\tFileOptions_OptimizeMode_value = map[string]int32{\n\t\t\"SPEED\":        1,\n\t\t\"CODE_SIZE\":    2,\n\t\t\"LITE_RUNTIME\": 3,\n\t}\n)\n\nfunc (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode {\n\tp := new(FileOptions_OptimizeMode)\n\t*p = x\n\treturn p\n}\n\nfunc (x FileOptions_OptimizeMode) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor()\n}\n\nfunc (FileOptions_OptimizeMode) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[5]\n}\n\nfunc (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FileOptions_OptimizeMode) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FileOptions_OptimizeMode(num)\n\treturn nil\n}\n\n// Deprecated: Use FileOptions_OptimizeMode.Descriptor instead.\nfunc (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10, 0}\n}\n\ntype FieldOptions_CType int32\n\nconst (\n\t// Default mode.\n\tFieldOptions_STRING FieldOptions_CType = 0\n\t// The option [ctype=CORD] may be applied to a non-repeated field of type\n\t// \"bytes\". It indicates that in C++, the data should be stored in a Cord\n\t// instead of a string.  For very large strings, this may reduce memory\n\t// fragmentation. It may also allow better performance when parsing from a\n\t// Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n\t// alias the original buffer.\n\tFieldOptions_CORD         FieldOptions_CType = 1\n\tFieldOptions_STRING_PIECE FieldOptions_CType = 2\n)\n\n// Enum value maps for FieldOptions_CType.\nvar (\n\tFieldOptions_CType_name = map[int32]string{\n\t\t0: \"STRING\",\n\t\t1: \"CORD\",\n\t\t2: \"STRING_PIECE\",\n\t}\n\tFieldOptions_CType_value = map[string]int32{\n\t\t\"STRING\":       0,\n\t\t\"CORD\":         1,\n\t\t\"STRING_PIECE\": 2,\n\t}\n)\n\nfunc (x FieldOptions_CType) Enum() *FieldOptions_CType {\n\tp := new(FieldOptions_CType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_CType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor()\n}\n\nfunc (FieldOptions_CType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[6]\n}\n\nfunc (x FieldOptions_CType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_CType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_CType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_CType.Descriptor instead.\nfunc (FieldOptions_CType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0}\n}\n\ntype FieldOptions_JSType int32\n\nconst (\n\t// Use the default type.\n\tFieldOptions_JS_NORMAL FieldOptions_JSType = 0\n\t// Use JavaScript strings.\n\tFieldOptions_JS_STRING FieldOptions_JSType = 1\n\t// Use JavaScript numbers.\n\tFieldOptions_JS_NUMBER FieldOptions_JSType = 2\n)\n\n// Enum value maps for FieldOptions_JSType.\nvar (\n\tFieldOptions_JSType_name = map[int32]string{\n\t\t0: \"JS_NORMAL\",\n\t\t1: \"JS_STRING\",\n\t\t2: \"JS_NUMBER\",\n\t}\n\tFieldOptions_JSType_value = map[string]int32{\n\t\t\"JS_NORMAL\": 0,\n\t\t\"JS_STRING\": 1,\n\t\t\"JS_NUMBER\": 2,\n\t}\n)\n\nfunc (x FieldOptions_JSType) Enum() *FieldOptions_JSType {\n\tp := new(FieldOptions_JSType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_JSType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor()\n}\n\nfunc (FieldOptions_JSType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[7]\n}\n\nfunc (x FieldOptions_JSType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_JSType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_JSType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_JSType.Descriptor instead.\nfunc (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1}\n}\n\n// If set to RETENTION_SOURCE, the option will be omitted from the binary.\ntype FieldOptions_OptionRetention int32\n\nconst (\n\tFieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0\n\tFieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1\n\tFieldOptions_RETENTION_SOURCE  FieldOptions_OptionRetention = 2\n)\n\n// Enum value maps for FieldOptions_OptionRetention.\nvar (\n\tFieldOptions_OptionRetention_name = map[int32]string{\n\t\t0: \"RETENTION_UNKNOWN\",\n\t\t1: \"RETENTION_RUNTIME\",\n\t\t2: \"RETENTION_SOURCE\",\n\t}\n\tFieldOptions_OptionRetention_value = map[string]int32{\n\t\t\"RETENTION_UNKNOWN\": 0,\n\t\t\"RETENTION_RUNTIME\": 1,\n\t\t\"RETENTION_SOURCE\":  2,\n\t}\n)\n\nfunc (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention {\n\tp := new(FieldOptions_OptionRetention)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_OptionRetention) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor()\n}\n\nfunc (FieldOptions_OptionRetention) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[8]\n}\n\nfunc (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_OptionRetention(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead.\nfunc (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2}\n}\n\n// This indicates the types of entities that the field may apply to when used\n// as an option. If it is unset, then the field may be freely used as an\n// option on any kind of entity.\ntype FieldOptions_OptionTargetType int32\n\nconst (\n\tFieldOptions_TARGET_TYPE_UNKNOWN         FieldOptions_OptionTargetType = 0\n\tFieldOptions_TARGET_TYPE_FILE            FieldOptions_OptionTargetType = 1\n\tFieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2\n\tFieldOptions_TARGET_TYPE_MESSAGE         FieldOptions_OptionTargetType = 3\n\tFieldOptions_TARGET_TYPE_FIELD           FieldOptions_OptionTargetType = 4\n\tFieldOptions_TARGET_TYPE_ONEOF           FieldOptions_OptionTargetType = 5\n\tFieldOptions_TARGET_TYPE_ENUM            FieldOptions_OptionTargetType = 6\n\tFieldOptions_TARGET_TYPE_ENUM_ENTRY      FieldOptions_OptionTargetType = 7\n\tFieldOptions_TARGET_TYPE_SERVICE         FieldOptions_OptionTargetType = 8\n\tFieldOptions_TARGET_TYPE_METHOD          FieldOptions_OptionTargetType = 9\n)\n\n// Enum value maps for FieldOptions_OptionTargetType.\nvar (\n\tFieldOptions_OptionTargetType_name = map[int32]string{\n\t\t0: \"TARGET_TYPE_UNKNOWN\",\n\t\t1: \"TARGET_TYPE_FILE\",\n\t\t2: \"TARGET_TYPE_EXTENSION_RANGE\",\n\t\t3: \"TARGET_TYPE_MESSAGE\",\n\t\t4: \"TARGET_TYPE_FIELD\",\n\t\t5: \"TARGET_TYPE_ONEOF\",\n\t\t6: \"TARGET_TYPE_ENUM\",\n\t\t7: \"TARGET_TYPE_ENUM_ENTRY\",\n\t\t8: \"TARGET_TYPE_SERVICE\",\n\t\t9: \"TARGET_TYPE_METHOD\",\n\t}\n\tFieldOptions_OptionTargetType_value = map[string]int32{\n\t\t\"TARGET_TYPE_UNKNOWN\":         0,\n\t\t\"TARGET_TYPE_FILE\":            1,\n\t\t\"TARGET_TYPE_EXTENSION_RANGE\": 2,\n\t\t\"TARGET_TYPE_MESSAGE\":         3,\n\t\t\"TARGET_TYPE_FIELD\":           4,\n\t\t\"TARGET_TYPE_ONEOF\":           5,\n\t\t\"TARGET_TYPE_ENUM\":            6,\n\t\t\"TARGET_TYPE_ENUM_ENTRY\":      7,\n\t\t\"TARGET_TYPE_SERVICE\":         8,\n\t\t\"TARGET_TYPE_METHOD\":          9,\n\t}\n)\n\nfunc (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType {\n\tp := new(FieldOptions_OptionTargetType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_OptionTargetType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor()\n}\n\nfunc (FieldOptions_OptionTargetType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[9]\n}\n\nfunc (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_OptionTargetType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead.\nfunc (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3}\n}\n\n// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n// or neither? HTTP based RPC implementation may choose GET verb for safe\n// methods, and PUT verb for idempotent methods instead of the default POST.\ntype MethodOptions_IdempotencyLevel int32\n\nconst (\n\tMethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0\n\tMethodOptions_NO_SIDE_EFFECTS     MethodOptions_IdempotencyLevel = 1 // implies idempotent\n\tMethodOptions_IDEMPOTENT          MethodOptions_IdempotencyLevel = 2 // idempotent, but may have side effects\n)\n\n// Enum value maps for MethodOptions_IdempotencyLevel.\nvar (\n\tMethodOptions_IdempotencyLevel_name = map[int32]string{\n\t\t0: \"IDEMPOTENCY_UNKNOWN\",\n\t\t1: \"NO_SIDE_EFFECTS\",\n\t\t2: \"IDEMPOTENT\",\n\t}\n\tMethodOptions_IdempotencyLevel_value = map[string]int32{\n\t\t\"IDEMPOTENCY_UNKNOWN\": 0,\n\t\t\"NO_SIDE_EFFECTS\":     1,\n\t\t\"IDEMPOTENT\":          2,\n\t}\n)\n\nfunc (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel {\n\tp := new(MethodOptions_IdempotencyLevel)\n\t*p = x\n\treturn p\n}\n\nfunc (x MethodOptions_IdempotencyLevel) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor()\n}\n\nfunc (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[10]\n}\n\nfunc (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = MethodOptions_IdempotencyLevel(num)\n\treturn nil\n}\n\n// Deprecated: Use MethodOptions_IdempotencyLevel.Descriptor instead.\nfunc (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0}\n}\n\ntype FeatureSet_FieldPresence int32\n\nconst (\n\tFeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0\n\tFeatureSet_EXPLICIT               FeatureSet_FieldPresence = 1\n\tFeatureSet_IMPLICIT               FeatureSet_FieldPresence = 2\n\tFeatureSet_LEGACY_REQUIRED        FeatureSet_FieldPresence = 3\n)\n\n// Enum value maps for FeatureSet_FieldPresence.\nvar (\n\tFeatureSet_FieldPresence_name = map[int32]string{\n\t\t0: \"FIELD_PRESENCE_UNKNOWN\",\n\t\t1: \"EXPLICIT\",\n\t\t2: \"IMPLICIT\",\n\t\t3: \"LEGACY_REQUIRED\",\n\t}\n\tFeatureSet_FieldPresence_value = map[string]int32{\n\t\t\"FIELD_PRESENCE_UNKNOWN\": 0,\n\t\t\"EXPLICIT\":               1,\n\t\t\"IMPLICIT\":               2,\n\t\t\"LEGACY_REQUIRED\":        3,\n\t}\n)\n\nfunc (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence {\n\tp := new(FeatureSet_FieldPresence)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_FieldPresence) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor()\n}\n\nfunc (FeatureSet_FieldPresence) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[11]\n}\n\nfunc (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_FieldPresence(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead.\nfunc (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0}\n}\n\ntype FeatureSet_EnumType int32\n\nconst (\n\tFeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0\n\tFeatureSet_OPEN              FeatureSet_EnumType = 1\n\tFeatureSet_CLOSED            FeatureSet_EnumType = 2\n)\n\n// Enum value maps for FeatureSet_EnumType.\nvar (\n\tFeatureSet_EnumType_name = map[int32]string{\n\t\t0: \"ENUM_TYPE_UNKNOWN\",\n\t\t1: \"OPEN\",\n\t\t2: \"CLOSED\",\n\t}\n\tFeatureSet_EnumType_value = map[string]int32{\n\t\t\"ENUM_TYPE_UNKNOWN\": 0,\n\t\t\"OPEN\":              1,\n\t\t\"CLOSED\":            2,\n\t}\n)\n\nfunc (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType {\n\tp := new(FeatureSet_EnumType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_EnumType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor()\n}\n\nfunc (FeatureSet_EnumType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[12]\n}\n\nfunc (x FeatureSet_EnumType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_EnumType(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_EnumType.Descriptor instead.\nfunc (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1}\n}\n\ntype FeatureSet_RepeatedFieldEncoding int32\n\nconst (\n\tFeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0\n\tFeatureSet_PACKED                          FeatureSet_RepeatedFieldEncoding = 1\n\tFeatureSet_EXPANDED                        FeatureSet_RepeatedFieldEncoding = 2\n)\n\n// Enum value maps for FeatureSet_RepeatedFieldEncoding.\nvar (\n\tFeatureSet_RepeatedFieldEncoding_name = map[int32]string{\n\t\t0: \"REPEATED_FIELD_ENCODING_UNKNOWN\",\n\t\t1: \"PACKED\",\n\t\t2: \"EXPANDED\",\n\t}\n\tFeatureSet_RepeatedFieldEncoding_value = map[string]int32{\n\t\t\"REPEATED_FIELD_ENCODING_UNKNOWN\": 0,\n\t\t\"PACKED\":                          1,\n\t\t\"EXPANDED\":                        2,\n\t}\n)\n\nfunc (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding {\n\tp := new(FeatureSet_RepeatedFieldEncoding)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_RepeatedFieldEncoding) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor()\n}\n\nfunc (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[13]\n}\n\nfunc (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_RepeatedFieldEncoding(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead.\nfunc (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2}\n}\n\ntype FeatureSet_Utf8Validation int32\n\nconst (\n\tFeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0\n\tFeatureSet_VERIFY                  FeatureSet_Utf8Validation = 2\n\tFeatureSet_NONE                    FeatureSet_Utf8Validation = 3\n)\n\n// Enum value maps for FeatureSet_Utf8Validation.\nvar (\n\tFeatureSet_Utf8Validation_name = map[int32]string{\n\t\t0: \"UTF8_VALIDATION_UNKNOWN\",\n\t\t2: \"VERIFY\",\n\t\t3: \"NONE\",\n\t}\n\tFeatureSet_Utf8Validation_value = map[string]int32{\n\t\t\"UTF8_VALIDATION_UNKNOWN\": 0,\n\t\t\"VERIFY\":                  2,\n\t\t\"NONE\":                    3,\n\t}\n)\n\nfunc (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation {\n\tp := new(FeatureSet_Utf8Validation)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_Utf8Validation) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor()\n}\n\nfunc (FeatureSet_Utf8Validation) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[14]\n}\n\nfunc (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_Utf8Validation(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead.\nfunc (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3}\n}\n\ntype FeatureSet_MessageEncoding int32\n\nconst (\n\tFeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0\n\tFeatureSet_LENGTH_PREFIXED          FeatureSet_MessageEncoding = 1\n\tFeatureSet_DELIMITED                FeatureSet_MessageEncoding = 2\n)\n\n// Enum value maps for FeatureSet_MessageEncoding.\nvar (\n\tFeatureSet_MessageEncoding_name = map[int32]string{\n\t\t0: \"MESSAGE_ENCODING_UNKNOWN\",\n\t\t1: \"LENGTH_PREFIXED\",\n\t\t2: \"DELIMITED\",\n\t}\n\tFeatureSet_MessageEncoding_value = map[string]int32{\n\t\t\"MESSAGE_ENCODING_UNKNOWN\": 0,\n\t\t\"LENGTH_PREFIXED\":          1,\n\t\t\"DELIMITED\":                2,\n\t}\n)\n\nfunc (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding {\n\tp := new(FeatureSet_MessageEncoding)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_MessageEncoding) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor()\n}\n\nfunc (FeatureSet_MessageEncoding) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[15]\n}\n\nfunc (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_MessageEncoding(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead.\nfunc (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4}\n}\n\ntype FeatureSet_JsonFormat int32\n\nconst (\n\tFeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0\n\tFeatureSet_ALLOW               FeatureSet_JsonFormat = 1\n\tFeatureSet_LEGACY_BEST_EFFORT  FeatureSet_JsonFormat = 2\n)\n\n// Enum value maps for FeatureSet_JsonFormat.\nvar (\n\tFeatureSet_JsonFormat_name = map[int32]string{\n\t\t0: \"JSON_FORMAT_UNKNOWN\",\n\t\t1: \"ALLOW\",\n\t\t2: \"LEGACY_BEST_EFFORT\",\n\t}\n\tFeatureSet_JsonFormat_value = map[string]int32{\n\t\t\"JSON_FORMAT_UNKNOWN\": 0,\n\t\t\"ALLOW\":               1,\n\t\t\"LEGACY_BEST_EFFORT\":  2,\n\t}\n)\n\nfunc (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat {\n\tp := new(FeatureSet_JsonFormat)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_JsonFormat) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor()\n}\n\nfunc (FeatureSet_JsonFormat) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[16]\n}\n\nfunc (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_JsonFormat(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead.\nfunc (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5}\n}\n\ntype FeatureSet_EnforceNamingStyle int32\n\nconst (\n\tFeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN FeatureSet_EnforceNamingStyle = 0\n\tFeatureSet_STYLE2024                    FeatureSet_EnforceNamingStyle = 1\n\tFeatureSet_STYLE_LEGACY                 FeatureSet_EnforceNamingStyle = 2\n)\n\n// Enum value maps for FeatureSet_EnforceNamingStyle.\nvar (\n\tFeatureSet_EnforceNamingStyle_name = map[int32]string{\n\t\t0: \"ENFORCE_NAMING_STYLE_UNKNOWN\",\n\t\t1: \"STYLE2024\",\n\t\t2: \"STYLE_LEGACY\",\n\t}\n\tFeatureSet_EnforceNamingStyle_value = map[string]int32{\n\t\t\"ENFORCE_NAMING_STYLE_UNKNOWN\": 0,\n\t\t\"STYLE2024\":                    1,\n\t\t\"STYLE_LEGACY\":                 2,\n\t}\n)\n\nfunc (x FeatureSet_EnforceNamingStyle) Enum() *FeatureSet_EnforceNamingStyle {\n\tp := new(FeatureSet_EnforceNamingStyle)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_EnforceNamingStyle) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_EnforceNamingStyle) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[17].Descriptor()\n}\n\nfunc (FeatureSet_EnforceNamingStyle) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[17]\n}\n\nfunc (x FeatureSet_EnforceNamingStyle) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_EnforceNamingStyle) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_EnforceNamingStyle(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_EnforceNamingStyle.Descriptor instead.\nfunc (FeatureSet_EnforceNamingStyle) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 6}\n}\n\ntype FeatureSet_VisibilityFeature_DefaultSymbolVisibility int32\n\nconst (\n\tFeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 0\n\t// Default pre-EDITION_2024, all UNSET visibility are export.\n\tFeatureSet_VisibilityFeature_EXPORT_ALL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 1\n\t// All top-level symbols default to export, nested default to local.\n\tFeatureSet_VisibilityFeature_EXPORT_TOP_LEVEL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 2\n\t// All symbols default to local.\n\tFeatureSet_VisibilityFeature_LOCAL_ALL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 3\n\t// All symbols local by default. Nested types cannot be exported.\n\t// With special case caveat for message { enum {} reserved 1 to max; }\n\t// This is the recommended setting for new protos.\n\tFeatureSet_VisibilityFeature_STRICT FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 4\n)\n\n// Enum value maps for FeatureSet_VisibilityFeature_DefaultSymbolVisibility.\nvar (\n\tFeatureSet_VisibilityFeature_DefaultSymbolVisibility_name = map[int32]string{\n\t\t0: \"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\",\n\t\t1: \"EXPORT_ALL\",\n\t\t2: \"EXPORT_TOP_LEVEL\",\n\t\t3: \"LOCAL_ALL\",\n\t\t4: \"STRICT\",\n\t}\n\tFeatureSet_VisibilityFeature_DefaultSymbolVisibility_value = map[string]int32{\n\t\t\"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\": 0,\n\t\t\"EXPORT_ALL\":                        1,\n\t\t\"EXPORT_TOP_LEVEL\":                  2,\n\t\t\"LOCAL_ALL\":                         3,\n\t\t\"STRICT\":                            4,\n\t}\n)\n\nfunc (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Enum() *FeatureSet_VisibilityFeature_DefaultSymbolVisibility {\n\tp := new(FeatureSet_VisibilityFeature_DefaultSymbolVisibility)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[18].Descriptor()\n}\n\nfunc (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[18]\n}\n\nfunc (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_VisibilityFeature_DefaultSymbolVisibility) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_VisibilityFeature_DefaultSymbolVisibility(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_VisibilityFeature_DefaultSymbolVisibility.Descriptor instead.\nfunc (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0, 0}\n}\n\n// Represents the identified object's effect on the element in the original\n// .proto file.\ntype GeneratedCodeInfo_Annotation_Semantic int32\n\nconst (\n\t// There is no effect or the effect is indescribable.\n\tGeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0\n\t// The element is set or otherwise mutated.\n\tGeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1\n\t// An alias to the element is returned.\n\tGeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2\n)\n\n// Enum value maps for GeneratedCodeInfo_Annotation_Semantic.\nvar (\n\tGeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{\n\t\t0: \"NONE\",\n\t\t1: \"SET\",\n\t\t2: \"ALIAS\",\n\t}\n\tGeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{\n\t\t\"NONE\":  0,\n\t\t\"SET\":   1,\n\t\t\"ALIAS\": 2,\n\t}\n)\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic {\n\tp := new(GeneratedCodeInfo_Annotation_Semantic)\n\t*p = x\n\treturn p\n}\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[19].Descriptor()\n}\n\nfunc (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[19]\n}\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = GeneratedCodeInfo_Annotation_Semantic(num)\n\treturn nil\n}\n\n// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead.\nfunc (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0}\n}\n\n// The protocol compiler can output a FileDescriptorSet containing the .proto\n// files it parses.\ntype FileDescriptorSet struct {\n\tstate           protoimpl.MessageState `protogen:\"open.v1\"`\n\tFile            []*FileDescriptorProto `protobuf:\"bytes,1,rep,name=file\" json:\"file,omitempty\"`\n\textensionFields protoimpl.ExtensionFields\n\tunknownFields   protoimpl.UnknownFields\n\tsizeCache       protoimpl.SizeCache\n}\n\nfunc (x *FileDescriptorSet) Reset() {\n\t*x = FileDescriptorSet{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileDescriptorSet) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileDescriptorSet) ProtoMessage() {}\n\nfunc (x *FileDescriptorSet) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileDescriptorSet.ProtoReflect.Descriptor instead.\nfunc (*FileDescriptorSet) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *FileDescriptorSet) GetFile() []*FileDescriptorProto {\n\tif x != nil {\n\t\treturn x.File\n\t}\n\treturn nil\n}\n\n// Describes a complete .proto file.\ntype FileDescriptorProto struct {\n\tstate   protoimpl.MessageState `protogen:\"open.v1\"`\n\tName    *string                `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`       // file name, relative to root of source tree\n\tPackage *string                `protobuf:\"bytes,2,opt,name=package\" json:\"package,omitempty\"` // e.g. \"foo\", \"foo.bar\", etc.\n\t// Names of files imported by this file.\n\tDependency []string `protobuf:\"bytes,3,rep,name=dependency\" json:\"dependency,omitempty\"`\n\t// Indexes of the public imported files in the dependency list above.\n\tPublicDependency []int32 `protobuf:\"varint,10,rep,name=public_dependency,json=publicDependency\" json:\"public_dependency,omitempty\"`\n\t// Indexes of the weak imported files in the dependency list.\n\t// For Google-internal migration only. Do not use.\n\tWeakDependency []int32 `protobuf:\"varint,11,rep,name=weak_dependency,json=weakDependency\" json:\"weak_dependency,omitempty\"`\n\t// Names of files imported by this file purely for the purpose of providing\n\t// option extensions. These are excluded from the dependency list above.\n\tOptionDependency []string `protobuf:\"bytes,15,rep,name=option_dependency,json=optionDependency\" json:\"option_dependency,omitempty\"`\n\t// All top-level definitions in this file.\n\tMessageType []*DescriptorProto        `protobuf:\"bytes,4,rep,name=message_type,json=messageType\" json:\"message_type,omitempty\"`\n\tEnumType    []*EnumDescriptorProto    `protobuf:\"bytes,5,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tService     []*ServiceDescriptorProto `protobuf:\"bytes,6,rep,name=service\" json:\"service,omitempty\"`\n\tExtension   []*FieldDescriptorProto   `protobuf:\"bytes,7,rep,name=extension\" json:\"extension,omitempty\"`\n\tOptions     *FileOptions              `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\t// This field contains optional information about the original source code.\n\t// You may safely remove this entire field without harming runtime\n\t// functionality of the descriptors -- the information is needed only by\n\t// development tools.\n\tSourceCodeInfo *SourceCodeInfo `protobuf:\"bytes,9,opt,name=source_code_info,json=sourceCodeInfo\" json:\"source_code_info,omitempty\"`\n\t// The syntax of the proto file.\n\t// The supported values are \"proto2\", \"proto3\", and \"editions\".\n\t//\n\t// If `edition` is present, this value must be \"editions\".\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tSyntax *string `protobuf:\"bytes,12,opt,name=syntax\" json:\"syntax,omitempty\"`\n\t// The edition of the proto file.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tEdition       *Edition `protobuf:\"varint,14,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *FileDescriptorProto) Reset() {\n\t*x = FileDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[1]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileDescriptorProto) ProtoMessage() {}\n\nfunc (x *FileDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[1]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*FileDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *FileDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetPackage() string {\n\tif x != nil && x.Package != nil {\n\t\treturn *x.Package\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetDependency() []string {\n\tif x != nil {\n\t\treturn x.Dependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetPublicDependency() []int32 {\n\tif x != nil {\n\t\treturn x.PublicDependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetWeakDependency() []int32 {\n\tif x != nil {\n\t\treturn x.WeakDependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetOptionDependency() []string {\n\tif x != nil {\n\t\treturn x.OptionDependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetMessageType() []*DescriptorProto {\n\tif x != nil {\n\t\treturn x.MessageType\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif x != nil {\n\t\treturn x.EnumType\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetService() []*ServiceDescriptorProto {\n\tif x != nil {\n\t\treturn x.Service\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Extension\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetOptions() *FileOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo {\n\tif x != nil {\n\t\treturn x.SourceCodeInfo\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetSyntax() string {\n\tif x != nil && x.Syntax != nil {\n\t\treturn *x.Syntax\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// Describes a message type.\ntype DescriptorProto struct {\n\tstate          protoimpl.MessageState            `protogen:\"open.v1\"`\n\tName           *string                           `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tField          []*FieldDescriptorProto           `protobuf:\"bytes,2,rep,name=field\" json:\"field,omitempty\"`\n\tExtension      []*FieldDescriptorProto           `protobuf:\"bytes,6,rep,name=extension\" json:\"extension,omitempty\"`\n\tNestedType     []*DescriptorProto                `protobuf:\"bytes,3,rep,name=nested_type,json=nestedType\" json:\"nested_type,omitempty\"`\n\tEnumType       []*EnumDescriptorProto            `protobuf:\"bytes,4,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tExtensionRange []*DescriptorProto_ExtensionRange `protobuf:\"bytes,5,rep,name=extension_range,json=extensionRange\" json:\"extension_range,omitempty\"`\n\tOneofDecl      []*OneofDescriptorProto           `protobuf:\"bytes,8,rep,name=oneof_decl,json=oneofDecl\" json:\"oneof_decl,omitempty\"`\n\tOptions        *MessageOptions                   `protobuf:\"bytes,7,opt,name=options\" json:\"options,omitempty\"`\n\tReservedRange  []*DescriptorProto_ReservedRange  `protobuf:\"bytes,9,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved field names, which may not be used by fields in the same message.\n\t// A given name may only be reserved once.\n\tReservedName []string `protobuf:\"bytes,10,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n\t// Support for `export` and `local` keywords on enums.\n\tVisibility    *SymbolVisibility `protobuf:\"varint,11,opt,name=visibility,enum=google.protobuf.SymbolVisibility\" json:\"visibility,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *DescriptorProto) Reset() {\n\t*x = DescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[2]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto) ProtoMessage() {}\n\nfunc (x *DescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[2]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *DescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *DescriptorProto) GetField() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Field\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Extension\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetNestedType() []*DescriptorProto {\n\tif x != nil {\n\t\treturn x.NestedType\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif x != nil {\n\t\treturn x.EnumType\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange {\n\tif x != nil {\n\t\treturn x.ExtensionRange\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto {\n\tif x != nil {\n\t\treturn x.OneofDecl\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetOptions() *MessageOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange {\n\tif x != nil {\n\t\treturn x.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetReservedName() []string {\n\tif x != nil {\n\t\treturn x.ReservedName\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetVisibility() SymbolVisibility {\n\tif x != nil && x.Visibility != nil {\n\t\treturn *x.Visibility\n\t}\n\treturn SymbolVisibility_VISIBILITY_UNSET\n}\n\ntype ExtensionRangeOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\t// For external users: DO NOT USE. We are in the process of open sourcing\n\t// extension declaration and executing internal cleanups before it can be\n\t// used externally.\n\tDeclaration []*ExtensionRangeOptions_Declaration `protobuf:\"bytes,2,rep,name=declaration\" json:\"declaration,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,50,opt,name=features\" json:\"features,omitempty\"`\n\t// The verification state of the range.\n\t// TODO: flip the default to DECLARATION once all empty ranges\n\t// are marked as UNVERIFIED.\n\tVerification    *ExtensionRangeOptions_VerificationState `protobuf:\"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1\" json:\"verification,omitempty\"`\n\textensionFields protoimpl.ExtensionFields\n\tunknownFields   protoimpl.UnknownFields\n\tsizeCache       protoimpl.SizeCache\n}\n\n// Default values for ExtensionRangeOptions fields.\nconst (\n\tDefault_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED\n)\n\nfunc (x *ExtensionRangeOptions) Reset() {\n\t*x = ExtensionRangeOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[3]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ExtensionRangeOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionRangeOptions) ProtoMessage() {}\n\nfunc (x *ExtensionRangeOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[3]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionRangeOptions.ProtoReflect.Descriptor instead.\nfunc (*ExtensionRangeOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration {\n\tif x != nil {\n\t\treturn x.Declaration\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState {\n\tif x != nil && x.Verification != nil {\n\t\treturn *x.Verification\n\t}\n\treturn Default_ExtensionRangeOptions_Verification\n}\n\n// Describes a field within a message.\ntype FieldDescriptorProto struct {\n\tstate  protoimpl.MessageState      `protogen:\"open.v1\"`\n\tName   *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber *int32                      `protobuf:\"varint,3,opt,name=number\" json:\"number,omitempty\"`\n\tLabel  *FieldDescriptorProto_Label `protobuf:\"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label\" json:\"label,omitempty\"`\n\t// If type_name is set, this need not be set.  If both this and type_name\n\t// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n\tType *FieldDescriptorProto_Type `protobuf:\"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type\" json:\"type,omitempty\"`\n\t// For message and enum types, this is the name of the type.  If the name\n\t// starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping\n\t// rules are used to find the type (i.e. first the nested types within this\n\t// message are searched, then within the parent, on up to the root\n\t// namespace).\n\tTypeName *string `protobuf:\"bytes,6,opt,name=type_name,json=typeName\" json:\"type_name,omitempty\"`\n\t// For extensions, this is the name of the type being extended.  It is\n\t// resolved in the same manner as type_name.\n\tExtendee *string `protobuf:\"bytes,2,opt,name=extendee\" json:\"extendee,omitempty\"`\n\t// For numeric types, contains the original text representation of the value.\n\t// For booleans, \"true\" or \"false\".\n\t// For strings, contains the default text contents (not escaped in any way).\n\t// For bytes, contains the C escaped value.  All bytes >= 128 are escaped.\n\tDefaultValue *string `protobuf:\"bytes,7,opt,name=default_value,json=defaultValue\" json:\"default_value,omitempty\"`\n\t// If set, gives the index of a oneof in the containing type's oneof_decl\n\t// list.  This field is a member of that oneof.\n\tOneofIndex *int32 `protobuf:\"varint,9,opt,name=oneof_index,json=oneofIndex\" json:\"oneof_index,omitempty\"`\n\t// JSON name of this field. The value is set by protocol compiler. If the\n\t// user has set a \"json_name\" option on this field, that option's value\n\t// will be used. Otherwise, it's deduced from the field's name by converting\n\t// it to camelCase.\n\tJsonName *string       `protobuf:\"bytes,10,opt,name=json_name,json=jsonName\" json:\"json_name,omitempty\"`\n\tOptions  *FieldOptions `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\t// If true, this is a proto3 \"optional\". When a proto3 field is optional, it\n\t// tracks presence regardless of field type.\n\t//\n\t// When proto3_optional is true, this field must belong to a oneof to signal\n\t// to old proto3 clients that presence is tracked for this field. This oneof\n\t// is known as a \"synthetic\" oneof, and this field must be its sole member\n\t// (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs\n\t// exist in the descriptor only, and do not generate any API. Synthetic oneofs\n\t// must be ordered after all \"real\" oneofs.\n\t//\n\t// For message fields, proto3_optional doesn't create any semantic change,\n\t// since non-repeated message fields always track presence. However it still\n\t// indicates the semantic detail of whether the user wrote \"optional\" or not.\n\t// This can be useful for round-tripping the .proto file. For consistency we\n\t// give message fields a synthetic oneof also, even though it is not required\n\t// to track presence. This is especially important because the parser can't\n\t// tell if a field is a message or an enum, so it must always create a\n\t// synthetic oneof.\n\t//\n\t// Proto2 optional fields do not set this flag, because they already indicate\n\t// optional with `LABEL_OPTIONAL`.\n\tProto3Optional *bool `protobuf:\"varint,17,opt,name=proto3_optional,json=proto3Optional\" json:\"proto3_optional,omitempty\"`\n\tunknownFields  protoimpl.UnknownFields\n\tsizeCache      protoimpl.SizeCache\n}\n\nfunc (x *FieldDescriptorProto) Reset() {\n\t*x = FieldDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[4]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldDescriptorProto) ProtoMessage() {}\n\nfunc (x *FieldDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[4]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*FieldDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *FieldDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label {\n\tif x != nil && x.Label != nil {\n\t\treturn *x.Label\n\t}\n\treturn FieldDescriptorProto_LABEL_OPTIONAL\n}\n\nfunc (x *FieldDescriptorProto) GetType() FieldDescriptorProto_Type {\n\tif x != nil && x.Type != nil {\n\t\treturn *x.Type\n\t}\n\treturn FieldDescriptorProto_TYPE_DOUBLE\n}\n\nfunc (x *FieldDescriptorProto) GetTypeName() string {\n\tif x != nil && x.TypeName != nil {\n\t\treturn *x.TypeName\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetExtendee() string {\n\tif x != nil && x.Extendee != nil {\n\t\treturn *x.Extendee\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetDefaultValue() string {\n\tif x != nil && x.DefaultValue != nil {\n\t\treturn *x.DefaultValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetOneofIndex() int32 {\n\tif x != nil && x.OneofIndex != nil {\n\t\treturn *x.OneofIndex\n\t}\n\treturn 0\n}\n\nfunc (x *FieldDescriptorProto) GetJsonName() string {\n\tif x != nil && x.JsonName != nil {\n\t\treturn *x.JsonName\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetOptions() *FieldOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *FieldDescriptorProto) GetProto3Optional() bool {\n\tif x != nil && x.Proto3Optional != nil {\n\t\treturn *x.Proto3Optional\n\t}\n\treturn false\n}\n\n// Describes a oneof.\ntype OneofDescriptorProto struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tName          *string                `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tOptions       *OneofOptions          `protobuf:\"bytes,2,opt,name=options\" json:\"options,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *OneofDescriptorProto) Reset() {\n\t*x = OneofDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[5]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *OneofDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OneofDescriptorProto) ProtoMessage() {}\n\nfunc (x *OneofDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[5]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OneofDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*OneofDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *OneofDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *OneofDescriptorProto) GetOptions() *OneofOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes an enum type.\ntype EnumDescriptorProto struct {\n\tstate   protoimpl.MessageState      `protogen:\"open.v1\"`\n\tName    *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tValue   []*EnumValueDescriptorProto `protobuf:\"bytes,2,rep,name=value\" json:\"value,omitempty\"`\n\tOptions *EnumOptions                `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\t// Range of reserved numeric values. Reserved numeric values may not be used\n\t// by enum values in the same enum declaration. Reserved ranges may not\n\t// overlap.\n\tReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:\"bytes,4,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved enum value names, which may not be reused. A given name may only\n\t// be reserved once.\n\tReservedName []string `protobuf:\"bytes,5,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n\t// Support for `export` and `local` keywords on enums.\n\tVisibility    *SymbolVisibility `protobuf:\"varint,6,opt,name=visibility,enum=google.protobuf.SymbolVisibility\" json:\"visibility,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *EnumDescriptorProto) Reset() {\n\t*x = EnumDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[6]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumDescriptorProto) ProtoMessage() {}\n\nfunc (x *EnumDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[6]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*EnumDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *EnumDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetOptions() *EnumOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange {\n\tif x != nil {\n\t\treturn x.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetReservedName() []string {\n\tif x != nil {\n\t\treturn x.ReservedName\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetVisibility() SymbolVisibility {\n\tif x != nil && x.Visibility != nil {\n\t\treturn *x.Visibility\n\t}\n\treturn SymbolVisibility_VISIBILITY_UNSET\n}\n\n// Describes a value within an enum.\ntype EnumValueDescriptorProto struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tName          *string                `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber        *int32                 `protobuf:\"varint,2,opt,name=number\" json:\"number,omitempty\"`\n\tOptions       *EnumValueOptions      `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *EnumValueDescriptorProto) Reset() {\n\t*x = EnumValueDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[7]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumValueDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumValueDescriptorProto) ProtoMessage() {}\n\nfunc (x *EnumValueDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[7]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumValueDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *EnumValueDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *EnumValueDescriptorProto) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *EnumValueDescriptorProto) GetOptions() *EnumValueOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes a service.\ntype ServiceDescriptorProto struct {\n\tstate         protoimpl.MessageState   `protogen:\"open.v1\"`\n\tName          *string                  `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tMethod        []*MethodDescriptorProto `protobuf:\"bytes,2,rep,name=method\" json:\"method,omitempty\"`\n\tOptions       *ServiceOptions          `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *ServiceDescriptorProto) Reset() {\n\t*x = ServiceDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[8]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ServiceDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServiceDescriptorProto) ProtoMessage() {}\n\nfunc (x *ServiceDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[8]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServiceDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*ServiceDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *ServiceDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto {\n\tif x != nil {\n\t\treturn x.Method\n\t}\n\treturn nil\n}\n\nfunc (x *ServiceDescriptorProto) GetOptions() *ServiceOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes a method of a service.\ntype MethodDescriptorProto struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\tName  *string                `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\t// Input and output type names.  These are resolved in the same way as\n\t// FieldDescriptorProto.type_name, but must refer to a message type.\n\tInputType  *string        `protobuf:\"bytes,2,opt,name=input_type,json=inputType\" json:\"input_type,omitempty\"`\n\tOutputType *string        `protobuf:\"bytes,3,opt,name=output_type,json=outputType\" json:\"output_type,omitempty\"`\n\tOptions    *MethodOptions `protobuf:\"bytes,4,opt,name=options\" json:\"options,omitempty\"`\n\t// Identifies if client streams multiple client messages\n\tClientStreaming *bool `protobuf:\"varint,5,opt,name=client_streaming,json=clientStreaming,def=0\" json:\"client_streaming,omitempty\"`\n\t// Identifies if server streams multiple server messages\n\tServerStreaming *bool `protobuf:\"varint,6,opt,name=server_streaming,json=serverStreaming,def=0\" json:\"server_streaming,omitempty\"`\n\tunknownFields   protoimpl.UnknownFields\n\tsizeCache       protoimpl.SizeCache\n}\n\n// Default values for MethodDescriptorProto fields.\nconst (\n\tDefault_MethodDescriptorProto_ClientStreaming = bool(false)\n\tDefault_MethodDescriptorProto_ServerStreaming = bool(false)\n)\n\nfunc (x *MethodDescriptorProto) Reset() {\n\t*x = MethodDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[9]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MethodDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MethodDescriptorProto) ProtoMessage() {}\n\nfunc (x *MethodDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[9]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MethodDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*MethodDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *MethodDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetInputType() string {\n\tif x != nil && x.InputType != nil {\n\t\treturn *x.InputType\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetOutputType() string {\n\tif x != nil && x.OutputType != nil {\n\t\treturn *x.OutputType\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetOptions() *MethodOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *MethodDescriptorProto) GetClientStreaming() bool {\n\tif x != nil && x.ClientStreaming != nil {\n\t\treturn *x.ClientStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ClientStreaming\n}\n\nfunc (x *MethodDescriptorProto) GetServerStreaming() bool {\n\tif x != nil && x.ServerStreaming != nil {\n\t\treturn *x.ServerStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ServerStreaming\n}\n\ntype FileOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Sets the Java package where classes generated from this .proto will be\n\t// placed.  By default, the proto package is used, but this is often\n\t// inappropriate because proto packages do not normally start with backwards\n\t// domain names.\n\tJavaPackage *string `protobuf:\"bytes,1,opt,name=java_package,json=javaPackage\" json:\"java_package,omitempty\"`\n\t// Controls the name of the wrapper Java class generated for the .proto file.\n\t// That class will always contain the .proto file's getDescriptor() method as\n\t// well as any top-level extensions defined in the .proto file.\n\t// If java_multiple_files is disabled, then all the other classes from the\n\t// .proto file will be nested inside the single wrapper outer class.\n\tJavaOuterClassname *string `protobuf:\"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname\" json:\"java_outer_classname,omitempty\"`\n\t// If enabled, then the Java code generator will generate a separate .java\n\t// file for each top-level message, enum, and service defined in the .proto\n\t// file.  Thus, these types will *not* be nested inside the wrapper class\n\t// named by java_outer_classname.  However, the wrapper class will still be\n\t// generated to contain the file's getDescriptor() method as well as any\n\t// top-level extensions defined in the file.\n\tJavaMultipleFiles *bool `protobuf:\"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0\" json:\"java_multiple_files,omitempty\"`\n\t// This option does nothing.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tJavaGenerateEqualsAndHash *bool `protobuf:\"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash\" json:\"java_generate_equals_and_hash,omitempty\"`\n\t// A proto2 file can set this to true to opt in to UTF-8 checking for Java,\n\t// which will throw an exception if invalid UTF-8 is parsed from the wire or\n\t// assigned to a string field.\n\t//\n\t// TODO: clarify exactly what kinds of field types this option\n\t// applies to, and update these docs accordingly.\n\t//\n\t// Proto3 files already perform these checks. Setting the option explicitly to\n\t// false has no effect: it cannot be used to opt proto3 files out of UTF-8\n\t// checks.\n\tJavaStringCheckUtf8 *bool                     `protobuf:\"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0\" json:\"java_string_check_utf8,omitempty\"`\n\tOptimizeFor         *FileOptions_OptimizeMode `protobuf:\"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1\" json:\"optimize_for,omitempty\"`\n\t// Sets the Go package where structs generated from this .proto will be\n\t// placed. If omitted, the Go package will be derived from the following:\n\t//   - The basename of the package import path, if provided.\n\t//   - Otherwise, the package statement in the .proto file, if present.\n\t//   - Otherwise, the basename of the .proto file, without extension.\n\tGoPackage *string `protobuf:\"bytes,11,opt,name=go_package,json=goPackage\" json:\"go_package,omitempty\"`\n\t// Should generic services be generated in each language?  \"Generic\" services\n\t// are not specific to any particular RPC system.  They are generated by the\n\t// main code generators in each language (without additional plugins).\n\t// Generic services were the only kind of service generation supported by\n\t// early versions of google.protobuf.\n\t//\n\t// Generic services are now considered deprecated in favor of using plugins\n\t// that generate code specific to your particular RPC system.  Therefore,\n\t// these default to false.  Old code which depends on generic services should\n\t// explicitly set them to true.\n\tCcGenericServices   *bool `protobuf:\"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0\" json:\"cc_generic_services,omitempty\"`\n\tJavaGenericServices *bool `protobuf:\"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0\" json:\"java_generic_services,omitempty\"`\n\tPyGenericServices   *bool `protobuf:\"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0\" json:\"py_generic_services,omitempty\"`\n\t// Is this file deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for everything in the file, or it will be completely ignored; in the very\n\t// least, this is a formalization for deprecating files.\n\tDeprecated *bool `protobuf:\"varint,23,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Enables the use of arenas for the proto messages in this file. This applies\n\t// only to generated classes for C++.\n\tCcEnableArenas *bool `protobuf:\"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=1\" json:\"cc_enable_arenas,omitempty\"`\n\t// Sets the objective c class prefix which is prepended to all objective c\n\t// generated classes from this .proto. There is no default.\n\tObjcClassPrefix *string `protobuf:\"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix\" json:\"objc_class_prefix,omitempty\"`\n\t// Namespace for generated classes; defaults to the package.\n\tCsharpNamespace *string `protobuf:\"bytes,37,opt,name=csharp_namespace,json=csharpNamespace\" json:\"csharp_namespace,omitempty\"`\n\t// By default Swift generators will take the proto package and CamelCase it\n\t// replacing '.' with underscore and use that to prefix the types/symbols\n\t// defined. When this options is provided, they will use this value instead\n\t// to prefix the types/symbols defined.\n\tSwiftPrefix *string `protobuf:\"bytes,39,opt,name=swift_prefix,json=swiftPrefix\" json:\"swift_prefix,omitempty\"`\n\t// Sets the php class prefix which is prepended to all php generated classes\n\t// from this .proto. Default is empty.\n\tPhpClassPrefix *string `protobuf:\"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix\" json:\"php_class_prefix,omitempty\"`\n\t// Use this option to change the namespace of php generated classes. Default\n\t// is empty. When this option is empty, the package name will be used for\n\t// determining the namespace.\n\tPhpNamespace *string `protobuf:\"bytes,41,opt,name=php_namespace,json=phpNamespace\" json:\"php_namespace,omitempty\"`\n\t// Use this option to change the namespace of php generated metadata classes.\n\t// Default is empty. When this option is empty, the proto file name will be\n\t// used for determining the namespace.\n\tPhpMetadataNamespace *string `protobuf:\"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace\" json:\"php_metadata_namespace,omitempty\"`\n\t// Use this option to change the package of ruby generated classes. Default\n\t// is empty. When this option is not set, the package name will be used for\n\t// determining the ruby package.\n\tRubyPackage *string `protobuf:\"bytes,45,opt,name=ruby_package,json=rubyPackage\" json:\"ruby_package,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,50,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here.\n\t// See the documentation for the \"Options\" section above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for FileOptions fields.\nconst (\n\tDefault_FileOptions_JavaMultipleFiles   = bool(false)\n\tDefault_FileOptions_JavaStringCheckUtf8 = bool(false)\n\tDefault_FileOptions_OptimizeFor         = FileOptions_SPEED\n\tDefault_FileOptions_CcGenericServices   = bool(false)\n\tDefault_FileOptions_JavaGenericServices = bool(false)\n\tDefault_FileOptions_PyGenericServices   = bool(false)\n\tDefault_FileOptions_Deprecated          = bool(false)\n\tDefault_FileOptions_CcEnableArenas      = bool(true)\n)\n\nfunc (x *FileOptions) Reset() {\n\t*x = FileOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[10]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileOptions) ProtoMessage() {}\n\nfunc (x *FileOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[10]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileOptions.ProtoReflect.Descriptor instead.\nfunc (*FileOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *FileOptions) GetJavaPackage() string {\n\tif x != nil && x.JavaPackage != nil {\n\t\treturn *x.JavaPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetJavaOuterClassname() string {\n\tif x != nil && x.JavaOuterClassname != nil {\n\t\treturn *x.JavaOuterClassname\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetJavaMultipleFiles() bool {\n\tif x != nil && x.JavaMultipleFiles != nil {\n\t\treturn *x.JavaMultipleFiles\n\t}\n\treturn Default_FileOptions_JavaMultipleFiles\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *FileOptions) GetJavaGenerateEqualsAndHash() bool {\n\tif x != nil && x.JavaGenerateEqualsAndHash != nil {\n\t\treturn *x.JavaGenerateEqualsAndHash\n\t}\n\treturn false\n}\n\nfunc (x *FileOptions) GetJavaStringCheckUtf8() bool {\n\tif x != nil && x.JavaStringCheckUtf8 != nil {\n\t\treturn *x.JavaStringCheckUtf8\n\t}\n\treturn Default_FileOptions_JavaStringCheckUtf8\n}\n\nfunc (x *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode {\n\tif x != nil && x.OptimizeFor != nil {\n\t\treturn *x.OptimizeFor\n\t}\n\treturn Default_FileOptions_OptimizeFor\n}\n\nfunc (x *FileOptions) GetGoPackage() string {\n\tif x != nil && x.GoPackage != nil {\n\t\treturn *x.GoPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetCcGenericServices() bool {\n\tif x != nil && x.CcGenericServices != nil {\n\t\treturn *x.CcGenericServices\n\t}\n\treturn Default_FileOptions_CcGenericServices\n}\n\nfunc (x *FileOptions) GetJavaGenericServices() bool {\n\tif x != nil && x.JavaGenericServices != nil {\n\t\treturn *x.JavaGenericServices\n\t}\n\treturn Default_FileOptions_JavaGenericServices\n}\n\nfunc (x *FileOptions) GetPyGenericServices() bool {\n\tif x != nil && x.PyGenericServices != nil {\n\t\treturn *x.PyGenericServices\n\t}\n\treturn Default_FileOptions_PyGenericServices\n}\n\nfunc (x *FileOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_FileOptions_Deprecated\n}\n\nfunc (x *FileOptions) GetCcEnableArenas() bool {\n\tif x != nil && x.CcEnableArenas != nil {\n\t\treturn *x.CcEnableArenas\n\t}\n\treturn Default_FileOptions_CcEnableArenas\n}\n\nfunc (x *FileOptions) GetObjcClassPrefix() string {\n\tif x != nil && x.ObjcClassPrefix != nil {\n\t\treturn *x.ObjcClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetCsharpNamespace() string {\n\tif x != nil && x.CsharpNamespace != nil {\n\t\treturn *x.CsharpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetSwiftPrefix() string {\n\tif x != nil && x.SwiftPrefix != nil {\n\t\treturn *x.SwiftPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpClassPrefix() string {\n\tif x != nil && x.PhpClassPrefix != nil {\n\t\treturn *x.PhpClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpNamespace() string {\n\tif x != nil && x.PhpNamespace != nil {\n\t\treturn *x.PhpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpMetadataNamespace() string {\n\tif x != nil && x.PhpMetadataNamespace != nil {\n\t\treturn *x.PhpMetadataNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetRubyPackage() string {\n\tif x != nil && x.RubyPackage != nil {\n\t\treturn *x.RubyPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MessageOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Set true to use the old proto1 MessageSet wire format for extensions.\n\t// This is provided for backwards-compatibility with the MessageSet wire\n\t// format.  You should not use this for any other reason:  It's less\n\t// efficient, has fewer features, and is more complicated.\n\t//\n\t// The message must be defined exactly as follows:\n\t//\n\t//\tmessage Foo {\n\t//\t  option message_set_wire_format = true;\n\t//\t  extensions 4 to max;\n\t//\t}\n\t//\n\t// Note that the message cannot have any defined fields; MessageSets only\n\t// have extensions.\n\t//\n\t// All extensions of your type must be singular messages; e.g. they cannot\n\t// be int32s, enums, or repeated messages.\n\t//\n\t// Because this is an option, the above two restrictions are not enforced by\n\t// the protocol compiler.\n\tMessageSetWireFormat *bool `protobuf:\"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0\" json:\"message_set_wire_format,omitempty\"`\n\t// Disables the generation of the standard \"descriptor()\" accessor, which can\n\t// conflict with a field of the same name.  This is meant to make migration\n\t// from proto1 easier; new code should avoid fields named \"descriptor\".\n\tNoStandardDescriptorAccessor *bool `protobuf:\"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0\" json:\"no_standard_descriptor_accessor,omitempty\"`\n\t// Is this message deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the message, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating messages.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Whether the message is an automatically generated map entry type for the\n\t// maps field.\n\t//\n\t// For maps fields:\n\t//\n\t//\tmap<KeyType, ValueType> map_field = 1;\n\t//\n\t// The parsed descriptor looks like:\n\t//\n\t//\tmessage MapFieldEntry {\n\t//\t    option map_entry = true;\n\t//\t    optional KeyType key = 1;\n\t//\t    optional ValueType value = 2;\n\t//\t}\n\t//\trepeated MapFieldEntry map_field = 1;\n\t//\n\t// Implementations may choose not to generate the map_entry=true message, but\n\t// use a native map in the target language to hold the keys and values.\n\t// The reflection APIs in such implementations still need to work as\n\t// if the field is a repeated message field.\n\t//\n\t// NOTE: Do not set the option in .proto files. Always use the maps syntax\n\t// instead. The option should only be implicitly set by the proto compiler\n\t// parser.\n\tMapEntry *bool `protobuf:\"varint,7,opt,name=map_entry,json=mapEntry\" json:\"map_entry,omitempty\"`\n\t// Enable the legacy handling of JSON field name conflicts.  This lowercases\n\t// and strips underscored from the fields before comparison in proto3 only.\n\t// The new behavior takes `json_name` into account and applies to proto2 as\n\t// well.\n\t//\n\t// This should only be used as a temporary measure against broken builds due\n\t// to the change in behavior for JSON field name conflicts.\n\t//\n\t// TODO This is legacy behavior we plan to remove once downstream\n\t// teams have had time to migrate.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tDeprecatedLegacyJsonFieldConflicts *bool `protobuf:\"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts\" json:\"deprecated_legacy_json_field_conflicts,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,12,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for MessageOptions fields.\nconst (\n\tDefault_MessageOptions_MessageSetWireFormat         = bool(false)\n\tDefault_MessageOptions_NoStandardDescriptorAccessor = bool(false)\n\tDefault_MessageOptions_Deprecated                   = bool(false)\n)\n\nfunc (x *MessageOptions) Reset() {\n\t*x = MessageOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[11]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MessageOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MessageOptions) ProtoMessage() {}\n\nfunc (x *MessageOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[11]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MessageOptions.ProtoReflect.Descriptor instead.\nfunc (*MessageOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *MessageOptions) GetMessageSetWireFormat() bool {\n\tif x != nil && x.MessageSetWireFormat != nil {\n\t\treturn *x.MessageSetWireFormat\n\t}\n\treturn Default_MessageOptions_MessageSetWireFormat\n}\n\nfunc (x *MessageOptions) GetNoStandardDescriptorAccessor() bool {\n\tif x != nil && x.NoStandardDescriptorAccessor != nil {\n\t\treturn *x.NoStandardDescriptorAccessor\n\t}\n\treturn Default_MessageOptions_NoStandardDescriptorAccessor\n}\n\nfunc (x *MessageOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_MessageOptions_Deprecated\n}\n\nfunc (x *MessageOptions) GetMapEntry() bool {\n\tif x != nil && x.MapEntry != nil {\n\t\treturn *x.MapEntry\n\t}\n\treturn false\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool {\n\tif x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil {\n\t\treturn *x.DeprecatedLegacyJsonFieldConflicts\n\t}\n\treturn false\n}\n\nfunc (x *MessageOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype FieldOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.\n\t// The ctype option instructs the C++ code generator to use a different\n\t// representation of the field than it normally would.  See the specific\n\t// options below.  This option is only implemented to support use of\n\t// [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of\n\t// type \"bytes\" in the open source release.\n\t// TODO: make ctype actually deprecated.\n\tCtype *FieldOptions_CType `protobuf:\"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0\" json:\"ctype,omitempty\"`\n\t// The packed option can be enabled for repeated primitive fields to enable\n\t// a more efficient representation on the wire. Rather than repeatedly\n\t// writing the tag and type for each element, the entire array is encoded as\n\t// a single length-delimited blob. In proto3, only explicit setting it to\n\t// false will avoid using packed encoding.  This option is prohibited in\n\t// Editions, but the `repeated_field_encoding` feature can be used to control\n\t// the behavior.\n\tPacked *bool `protobuf:\"varint,2,opt,name=packed\" json:\"packed,omitempty\"`\n\t// The jstype option determines the JavaScript type used for values of the\n\t// field.  The option is permitted only for 64 bit integral and fixed types\n\t// (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING\n\t// is represented as JavaScript string, which avoids loss of precision that\n\t// can happen when a large value is converted to a floating point JavaScript.\n\t// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n\t// use the JavaScript \"number\" type.  The behavior of the default option\n\t// JS_NORMAL is implementation dependent.\n\t//\n\t// This option is an enum to permit additional types to be added, e.g.\n\t// goog.math.Integer.\n\tJstype *FieldOptions_JSType `protobuf:\"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0\" json:\"jstype,omitempty\"`\n\t// Should this field be parsed lazily?  Lazy applies only to message-type\n\t// fields.  It means that when the outer message is initially parsed, the\n\t// inner message's contents will not be parsed but instead stored in encoded\n\t// form.  The inner message will actually be parsed when it is first accessed.\n\t//\n\t// This is only a hint.  Implementations are free to choose whether to use\n\t// eager or lazy parsing regardless of the value of this option.  However,\n\t// setting this option true suggests that the protocol author believes that\n\t// using lazy parsing on this field is worth the additional bookkeeping\n\t// overhead typically needed to implement it.\n\t//\n\t// This option does not affect the public interface of any generated code;\n\t// all method signatures remain the same.  Furthermore, thread-safety of the\n\t// interface is not affected by this option; const methods remain safe to\n\t// call from multiple threads concurrently, while non-const methods continue\n\t// to require exclusive access.\n\t//\n\t// Note that lazy message fields are still eagerly verified to check\n\t// ill-formed wireformat or missing required fields. Calling IsInitialized()\n\t// on the outer message would fail if the inner message has missing required\n\t// fields. Failed verification would result in parsing failure (except when\n\t// uninitialized messages are acceptable).\n\tLazy *bool `protobuf:\"varint,5,opt,name=lazy,def=0\" json:\"lazy,omitempty\"`\n\t// unverified_lazy does no correctness checks on the byte stream. This should\n\t// only be used where lazy with verification is prohibitive for performance\n\t// reasons.\n\tUnverifiedLazy *bool `protobuf:\"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0\" json:\"unverified_lazy,omitempty\"`\n\t// Is this field deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for accessors, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating fields.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// DEPRECATED. DO NOT USE!\n\t// For Google-internal migration only. Do not use.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tWeak *bool `protobuf:\"varint,10,opt,name=weak,def=0\" json:\"weak,omitempty\"`\n\t// Indicate that the field value should not be printed out when using debug\n\t// formats, e.g. when the field contains sensitive credentials.\n\tDebugRedact     *bool                           `protobuf:\"varint,16,opt,name=debug_redact,json=debugRedact,def=0\" json:\"debug_redact,omitempty\"`\n\tRetention       *FieldOptions_OptionRetention   `protobuf:\"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention\" json:\"retention,omitempty\"`\n\tTargets         []FieldOptions_OptionTargetType `protobuf:\"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType\" json:\"targets,omitempty\"`\n\tEditionDefaults []*FieldOptions_EditionDefault  `protobuf:\"bytes,20,rep,name=edition_defaults,json=editionDefaults\" json:\"edition_defaults,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures       *FeatureSet                  `protobuf:\"bytes,21,opt,name=features\" json:\"features,omitempty\"`\n\tFeatureSupport *FieldOptions_FeatureSupport `protobuf:\"bytes,22,opt,name=feature_support,json=featureSupport\" json:\"feature_support,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for FieldOptions fields.\nconst (\n\tDefault_FieldOptions_Ctype          = FieldOptions_STRING\n\tDefault_FieldOptions_Jstype         = FieldOptions_JS_NORMAL\n\tDefault_FieldOptions_Lazy           = bool(false)\n\tDefault_FieldOptions_UnverifiedLazy = bool(false)\n\tDefault_FieldOptions_Deprecated     = bool(false)\n\tDefault_FieldOptions_Weak           = bool(false)\n\tDefault_FieldOptions_DebugRedact    = bool(false)\n)\n\nfunc (x *FieldOptions) Reset() {\n\t*x = FieldOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[12]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions) ProtoMessage() {}\n\nfunc (x *FieldOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[12]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *FieldOptions) GetCtype() FieldOptions_CType {\n\tif x != nil && x.Ctype != nil {\n\t\treturn *x.Ctype\n\t}\n\treturn Default_FieldOptions_Ctype\n}\n\nfunc (x *FieldOptions) GetPacked() bool {\n\tif x != nil && x.Packed != nil {\n\t\treturn *x.Packed\n\t}\n\treturn false\n}\n\nfunc (x *FieldOptions) GetJstype() FieldOptions_JSType {\n\tif x != nil && x.Jstype != nil {\n\t\treturn *x.Jstype\n\t}\n\treturn Default_FieldOptions_Jstype\n}\n\nfunc (x *FieldOptions) GetLazy() bool {\n\tif x != nil && x.Lazy != nil {\n\t\treturn *x.Lazy\n\t}\n\treturn Default_FieldOptions_Lazy\n}\n\nfunc (x *FieldOptions) GetUnverifiedLazy() bool {\n\tif x != nil && x.UnverifiedLazy != nil {\n\t\treturn *x.UnverifiedLazy\n\t}\n\treturn Default_FieldOptions_UnverifiedLazy\n}\n\nfunc (x *FieldOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_FieldOptions_Deprecated\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *FieldOptions) GetWeak() bool {\n\tif x != nil && x.Weak != nil {\n\t\treturn *x.Weak\n\t}\n\treturn Default_FieldOptions_Weak\n}\n\nfunc (x *FieldOptions) GetDebugRedact() bool {\n\tif x != nil && x.DebugRedact != nil {\n\t\treturn *x.DebugRedact\n\t}\n\treturn Default_FieldOptions_DebugRedact\n}\n\nfunc (x *FieldOptions) GetRetention() FieldOptions_OptionRetention {\n\tif x != nil && x.Retention != nil {\n\t\treturn *x.Retention\n\t}\n\treturn FieldOptions_RETENTION_UNKNOWN\n}\n\nfunc (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType {\n\tif x != nil {\n\t\treturn x.Targets\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault {\n\tif x != nil {\n\t\treturn x.EditionDefaults\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetFeatureSupport() *FieldOptions_FeatureSupport {\n\tif x != nil {\n\t\treturn x.FeatureSupport\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype OneofOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,1,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\nfunc (x *OneofOptions) Reset() {\n\t*x = OneofOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[13]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *OneofOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OneofOptions) ProtoMessage() {}\n\nfunc (x *OneofOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[13]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OneofOptions.ProtoReflect.Descriptor instead.\nfunc (*OneofOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *OneofOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Set this option to true to allow mapping different tag names to the same\n\t// value.\n\tAllowAlias *bool `protobuf:\"varint,2,opt,name=allow_alias,json=allowAlias\" json:\"allow_alias,omitempty\"`\n\t// Is this enum deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating enums.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Enable the legacy handling of JSON field name conflicts.  This lowercases\n\t// and strips underscored from the fields before comparison in proto3 only.\n\t// The new behavior takes `json_name` into account and applies to proto2 as\n\t// well.\n\t// TODO Remove this legacy behavior once downstream teams have\n\t// had time to migrate.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tDeprecatedLegacyJsonFieldConflicts *bool `protobuf:\"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts\" json:\"deprecated_legacy_json_field_conflicts,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,7,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for EnumOptions fields.\nconst (\n\tDefault_EnumOptions_Deprecated = bool(false)\n)\n\nfunc (x *EnumOptions) Reset() {\n\t*x = EnumOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[14]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumOptions) ProtoMessage() {}\n\nfunc (x *EnumOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[14]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumOptions.ProtoReflect.Descriptor instead.\nfunc (*EnumOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (x *EnumOptions) GetAllowAlias() bool {\n\tif x != nil && x.AllowAlias != nil {\n\t\treturn *x.AllowAlias\n\t}\n\treturn false\n}\n\nfunc (x *EnumOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_EnumOptions_Deprecated\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool {\n\tif x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil {\n\t\treturn *x.DeprecatedLegacyJsonFieldConflicts\n\t}\n\treturn false\n}\n\nfunc (x *EnumOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumValueOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Is this enum value deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum value, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating enum values.\n\tDeprecated *bool `protobuf:\"varint,1,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,2,opt,name=features\" json:\"features,omitempty\"`\n\t// Indicate that fields annotated with this enum value should not be printed\n\t// out when using debug formats, e.g. when the field contains sensitive\n\t// credentials.\n\tDebugRedact *bool `protobuf:\"varint,3,opt,name=debug_redact,json=debugRedact,def=0\" json:\"debug_redact,omitempty\"`\n\t// Information about the support window of a feature value.\n\tFeatureSupport *FieldOptions_FeatureSupport `protobuf:\"bytes,4,opt,name=feature_support,json=featureSupport\" json:\"feature_support,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for EnumValueOptions fields.\nconst (\n\tDefault_EnumValueOptions_Deprecated  = bool(false)\n\tDefault_EnumValueOptions_DebugRedact = bool(false)\n)\n\nfunc (x *EnumValueOptions) Reset() {\n\t*x = EnumValueOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[15]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumValueOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumValueOptions) ProtoMessage() {}\n\nfunc (x *EnumValueOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[15]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumValueOptions.ProtoReflect.Descriptor instead.\nfunc (*EnumValueOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *EnumValueOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_EnumValueOptions_Deprecated\n}\n\nfunc (x *EnumValueOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *EnumValueOptions) GetDebugRedact() bool {\n\tif x != nil && x.DebugRedact != nil {\n\t\treturn *x.DebugRedact\n\t}\n\treturn Default_EnumValueOptions_DebugRedact\n}\n\nfunc (x *EnumValueOptions) GetFeatureSupport() *FieldOptions_FeatureSupport {\n\tif x != nil {\n\t\treturn x.FeatureSupport\n\t}\n\treturn nil\n}\n\nfunc (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype ServiceOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,34,opt,name=features\" json:\"features,omitempty\"`\n\t// Is this service deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the service, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating services.\n\tDeprecated *bool `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for ServiceOptions fields.\nconst (\n\tDefault_ServiceOptions_Deprecated = bool(false)\n)\n\nfunc (x *ServiceOptions) Reset() {\n\t*x = ServiceOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[16]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ServiceOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServiceOptions) ProtoMessage() {}\n\nfunc (x *ServiceOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[16]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServiceOptions.ProtoReflect.Descriptor instead.\nfunc (*ServiceOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *ServiceOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *ServiceOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_ServiceOptions_Deprecated\n}\n\nfunc (x *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MethodOptions struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Is this method deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the method, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating methods.\n\tDeprecated       *bool                           `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\tIdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:\"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0\" json:\"idempotency_level,omitempty\"`\n\t// Any features defined in the specific edition.\n\t// WARNING: This field should only be used by protobuf plugins or special\n\t// cases like the proto compiler. Other uses are discouraged and\n\t// developers should rely on the protoreflect APIs for their client language.\n\tFeatures *FeatureSet `protobuf:\"bytes,35,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\textensionFields     protoimpl.ExtensionFields\n\tunknownFields       protoimpl.UnknownFields\n\tsizeCache           protoimpl.SizeCache\n}\n\n// Default values for MethodOptions fields.\nconst (\n\tDefault_MethodOptions_Deprecated       = bool(false)\n\tDefault_MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN\n)\n\nfunc (x *MethodOptions) Reset() {\n\t*x = MethodOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[17]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MethodOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MethodOptions) ProtoMessage() {}\n\nfunc (x *MethodOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[17]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MethodOptions.ProtoReflect.Descriptor instead.\nfunc (*MethodOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *MethodOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_MethodOptions_Deprecated\n}\n\nfunc (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel {\n\tif x != nil && x.IdempotencyLevel != nil {\n\t\treturn *x.IdempotencyLevel\n\t}\n\treturn Default_MethodOptions_IdempotencyLevel\n}\n\nfunc (x *MethodOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\n// A message representing a option the parser does not recognize. This only\n// appears in options protos created by the compiler::Parser class.\n// DescriptorPool resolves these when building Descriptor objects. Therefore,\n// options protos in descriptor objects (e.g. returned by Descriptor::options(),\n// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n// in them.\ntype UninterpretedOption struct {\n\tstate protoimpl.MessageState          `protogen:\"open.v1\"`\n\tName  []*UninterpretedOption_NamePart `protobuf:\"bytes,2,rep,name=name\" json:\"name,omitempty\"`\n\t// The value of the uninterpreted option, in whatever type the tokenizer\n\t// identified it as during parsing. Exactly one of these should be set.\n\tIdentifierValue  *string  `protobuf:\"bytes,3,opt,name=identifier_value,json=identifierValue\" json:\"identifier_value,omitempty\"`\n\tPositiveIntValue *uint64  `protobuf:\"varint,4,opt,name=positive_int_value,json=positiveIntValue\" json:\"positive_int_value,omitempty\"`\n\tNegativeIntValue *int64   `protobuf:\"varint,5,opt,name=negative_int_value,json=negativeIntValue\" json:\"negative_int_value,omitempty\"`\n\tDoubleValue      *float64 `protobuf:\"fixed64,6,opt,name=double_value,json=doubleValue\" json:\"double_value,omitempty\"`\n\tStringValue      []byte   `protobuf:\"bytes,7,opt,name=string_value,json=stringValue\" json:\"string_value,omitempty\"`\n\tAggregateValue   *string  `protobuf:\"bytes,8,opt,name=aggregate_value,json=aggregateValue\" json:\"aggregate_value,omitempty\"`\n\tunknownFields    protoimpl.UnknownFields\n\tsizeCache        protoimpl.SizeCache\n}\n\nfunc (x *UninterpretedOption) Reset() {\n\t*x = UninterpretedOption{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[18]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *UninterpretedOption) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UninterpretedOption) ProtoMessage() {}\n\nfunc (x *UninterpretedOption) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[18]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UninterpretedOption.ProtoReflect.Descriptor instead.\nfunc (*UninterpretedOption) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn nil\n}\n\nfunc (x *UninterpretedOption) GetIdentifierValue() string {\n\tif x != nil && x.IdentifierValue != nil {\n\t\treturn *x.IdentifierValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *UninterpretedOption) GetPositiveIntValue() uint64 {\n\tif x != nil && x.PositiveIntValue != nil {\n\t\treturn *x.PositiveIntValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetNegativeIntValue() int64 {\n\tif x != nil && x.NegativeIntValue != nil {\n\t\treturn *x.NegativeIntValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetDoubleValue() float64 {\n\tif x != nil && x.DoubleValue != nil {\n\t\treturn *x.DoubleValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetStringValue() []byte {\n\tif x != nil {\n\t\treturn x.StringValue\n\t}\n\treturn nil\n}\n\nfunc (x *UninterpretedOption) GetAggregateValue() string {\n\tif x != nil && x.AggregateValue != nil {\n\t\treturn *x.AggregateValue\n\t}\n\treturn \"\"\n}\n\n// TODO Enums in C++ gencode (and potentially other languages) are\n// not well scoped.  This means that each of the feature enums below can clash\n// with each other.  The short names we've chosen maximize call-site\n// readability, but leave us very open to this scenario.  A future feature will\n// be designed and implemented to handle this, hopefully before we ever hit a\n// conflict here.\ntype FeatureSet struct {\n\tstate                   protoimpl.MessageState                                `protogen:\"open.v1\"`\n\tFieldPresence           *FeatureSet_FieldPresence                             `protobuf:\"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence\" json:\"field_presence,omitempty\"`\n\tEnumType                *FeatureSet_EnumType                                  `protobuf:\"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType\" json:\"enum_type,omitempty\"`\n\tRepeatedFieldEncoding   *FeatureSet_RepeatedFieldEncoding                     `protobuf:\"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding\" json:\"repeated_field_encoding,omitempty\"`\n\tUtf8Validation          *FeatureSet_Utf8Validation                            `protobuf:\"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation\" json:\"utf8_validation,omitempty\"`\n\tMessageEncoding         *FeatureSet_MessageEncoding                           `protobuf:\"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding\" json:\"message_encoding,omitempty\"`\n\tJsonFormat              *FeatureSet_JsonFormat                                `protobuf:\"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat\" json:\"json_format,omitempty\"`\n\tEnforceNamingStyle      *FeatureSet_EnforceNamingStyle                        `protobuf:\"varint,7,opt,name=enforce_naming_style,json=enforceNamingStyle,enum=google.protobuf.FeatureSet_EnforceNamingStyle\" json:\"enforce_naming_style,omitempty\"`\n\tDefaultSymbolVisibility *FeatureSet_VisibilityFeature_DefaultSymbolVisibility `protobuf:\"varint,8,opt,name=default_symbol_visibility,json=defaultSymbolVisibility,enum=google.protobuf.FeatureSet_VisibilityFeature_DefaultSymbolVisibility\" json:\"default_symbol_visibility,omitempty\"`\n\textensionFields         protoimpl.ExtensionFields\n\tunknownFields           protoimpl.UnknownFields\n\tsizeCache               protoimpl.SizeCache\n}\n\nfunc (x *FeatureSet) Reset() {\n\t*x = FeatureSet{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[19]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSet) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSet) ProtoMessage() {}\n\nfunc (x *FeatureSet) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[19]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSet.ProtoReflect.Descriptor instead.\nfunc (*FeatureSet) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence {\n\tif x != nil && x.FieldPresence != nil {\n\t\treturn *x.FieldPresence\n\t}\n\treturn FeatureSet_FIELD_PRESENCE_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetEnumType() FeatureSet_EnumType {\n\tif x != nil && x.EnumType != nil {\n\t\treturn *x.EnumType\n\t}\n\treturn FeatureSet_ENUM_TYPE_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding {\n\tif x != nil && x.RepeatedFieldEncoding != nil {\n\t\treturn *x.RepeatedFieldEncoding\n\t}\n\treturn FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation {\n\tif x != nil && x.Utf8Validation != nil {\n\t\treturn *x.Utf8Validation\n\t}\n\treturn FeatureSet_UTF8_VALIDATION_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding {\n\tif x != nil && x.MessageEncoding != nil {\n\t\treturn *x.MessageEncoding\n\t}\n\treturn FeatureSet_MESSAGE_ENCODING_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat {\n\tif x != nil && x.JsonFormat != nil {\n\t\treturn *x.JsonFormat\n\t}\n\treturn FeatureSet_JSON_FORMAT_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetEnforceNamingStyle() FeatureSet_EnforceNamingStyle {\n\tif x != nil && x.EnforceNamingStyle != nil {\n\t\treturn *x.EnforceNamingStyle\n\t}\n\treturn FeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetDefaultSymbolVisibility() FeatureSet_VisibilityFeature_DefaultSymbolVisibility {\n\tif x != nil && x.DefaultSymbolVisibility != nil {\n\t\treturn *x.DefaultSymbolVisibility\n\t}\n\treturn FeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\n}\n\n// A compiled specification for the defaults of a set of features.  These\n// messages are generated from FeatureSet extensions and can be used to seed\n// feature resolution. The resolution with this object becomes a simple search\n// for the closest matching edition, followed by proto merges.\ntype FeatureSetDefaults struct {\n\tstate    protoimpl.MessageState                         `protogen:\"open.v1\"`\n\tDefaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:\"bytes,1,rep,name=defaults\" json:\"defaults,omitempty\"`\n\t// The minimum supported edition (inclusive) when this was constructed.\n\t// Editions before this will not have defaults.\n\tMinimumEdition *Edition `protobuf:\"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition\" json:\"minimum_edition,omitempty\"`\n\t// The maximum known edition (inclusive) when this was constructed. Editions\n\t// after this will not have reliable defaults.\n\tMaximumEdition *Edition `protobuf:\"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition\" json:\"maximum_edition,omitempty\"`\n\tunknownFields  protoimpl.UnknownFields\n\tsizeCache      protoimpl.SizeCache\n}\n\nfunc (x *FeatureSetDefaults) Reset() {\n\t*x = FeatureSetDefaults{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[20]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSetDefaults) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSetDefaults) ProtoMessage() {}\n\nfunc (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[20]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead.\nfunc (*FeatureSetDefaults) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault {\n\tif x != nil {\n\t\treturn x.Defaults\n\t}\n\treturn nil\n}\n\nfunc (x *FeatureSetDefaults) GetMinimumEdition() Edition {\n\tif x != nil && x.MinimumEdition != nil {\n\t\treturn *x.MinimumEdition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FeatureSetDefaults) GetMaximumEdition() Edition {\n\tif x != nil && x.MaximumEdition != nil {\n\t\treturn *x.MaximumEdition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// Encapsulates information about the original source file from which a\n// FileDescriptorProto was generated.\ntype SourceCodeInfo struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// A Location identifies a piece of source code in a .proto file which\n\t// corresponds to a particular definition.  This information is intended\n\t// to be useful to IDEs, code indexers, documentation generators, and similar\n\t// tools.\n\t//\n\t// For example, say we have a file like:\n\t//\n\t//\tmessage Foo {\n\t//\t  optional string foo = 1;\n\t//\t}\n\t//\n\t// Let's look at just the field definition:\n\t//\n\t//\toptional string foo = 1;\n\t//\t^       ^^     ^^  ^  ^^^\n\t//\ta       bc     de  f  ghi\n\t//\n\t// We have the following locations:\n\t//\n\t//\tspan   path               represents\n\t//\t[a,i)  [ 4, 0, 2, 0 ]     The whole field definition.\n\t//\t[a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).\n\t//\t[c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).\n\t//\t[e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).\n\t//\t[g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).\n\t//\n\t// Notes:\n\t//   - A location may refer to a repeated field itself (i.e. not to any\n\t//     particular index within it).  This is used whenever a set of elements are\n\t//     logically enclosed in a single code segment.  For example, an entire\n\t//     extend block (possibly containing multiple extension definitions) will\n\t//     have an outer location whose path refers to the \"extensions\" repeated\n\t//     field without an index.\n\t//   - Multiple locations may have the same path.  This happens when a single\n\t//     logical declaration is spread out across multiple places.  The most\n\t//     obvious example is the \"extend\" block again -- there may be multiple\n\t//     extend blocks in the same scope, each of which will have the same path.\n\t//   - A location's span is not always a subset of its parent's span.  For\n\t//     example, the \"extendee\" of an extension declaration appears at the\n\t//     beginning of the \"extend\" block and is shared by all extensions within\n\t//     the block.\n\t//   - Just because a location's span is a subset of some other location's span\n\t//     does not mean that it is a descendant.  For example, a \"group\" defines\n\t//     both a type and a field in a single declaration.  Thus, the locations\n\t//     corresponding to the type and field and their components will overlap.\n\t//   - Code which tries to interpret locations should probably be designed to\n\t//     ignore those that it doesn't understand, as more types of locations could\n\t//     be recorded in the future.\n\tLocation        []*SourceCodeInfo_Location `protobuf:\"bytes,1,rep,name=location\" json:\"location,omitempty\"`\n\textensionFields protoimpl.ExtensionFields\n\tunknownFields   protoimpl.UnknownFields\n\tsizeCache       protoimpl.SizeCache\n}\n\nfunc (x *SourceCodeInfo) Reset() {\n\t*x = SourceCodeInfo{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[21]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *SourceCodeInfo) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SourceCodeInfo) ProtoMessage() {}\n\nfunc (x *SourceCodeInfo) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[21]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead.\nfunc (*SourceCodeInfo) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {\n\tif x != nil {\n\t\treturn x.Location\n\t}\n\treturn nil\n}\n\n// Describes the relationship between generated code and its original source\n// file. A GeneratedCodeInfo message is associated with only one generated\n// source file, but may contain references to different source .proto files.\ntype GeneratedCodeInfo struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// An Annotation connects some span of text in generated code to an element\n\t// of its generating .proto file.\n\tAnnotation    []*GeneratedCodeInfo_Annotation `protobuf:\"bytes,1,rep,name=annotation\" json:\"annotation,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *GeneratedCodeInfo) Reset() {\n\t*x = GeneratedCodeInfo{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[22]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GeneratedCodeInfo) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GeneratedCodeInfo) ProtoMessage() {}\n\nfunc (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[22]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead.\nfunc (*GeneratedCodeInfo) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation {\n\tif x != nil {\n\t\treturn x.Annotation\n\t}\n\treturn nil\n}\n\ntype DescriptorProto_ExtensionRange struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tStart         *int32                 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd           *int32                 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Exclusive.\n\tOptions       *ExtensionRangeOptions `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *DescriptorProto_ExtensionRange) Reset() {\n\t*x = DescriptorProto_ExtensionRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[23]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto_ExtensionRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto_ExtensionRange) ProtoMessage() {}\n\nfunc (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[23]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto_ExtensionRange.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 0}\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Range of reserved tag numbers. Reserved tag numbers may not be used by\n// fields or extension ranges in the same message. Reserved ranges may\n// not overlap.\ntype DescriptorProto_ReservedRange struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tStart         *int32                 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd           *int32                 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Exclusive.\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *DescriptorProto_ReservedRange) Reset() {\n\t*x = DescriptorProto_ReservedRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[24]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto_ReservedRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto_ReservedRange) ProtoMessage() {}\n\nfunc (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[24]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto_ReservedRange.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 1}\n}\n\nfunc (x *DescriptorProto_ReservedRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ReservedRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\ntype ExtensionRangeOptions_Declaration struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// The extension number declared within the extension range.\n\tNumber *int32 `protobuf:\"varint,1,opt,name=number\" json:\"number,omitempty\"`\n\t// The fully-qualified name of the extension field. There must be a leading\n\t// dot in front of the full name.\n\tFullName *string `protobuf:\"bytes,2,opt,name=full_name,json=fullName\" json:\"full_name,omitempty\"`\n\t// The fully-qualified type name of the extension field. Unlike\n\t// Metadata.type, Declaration.type must have a leading dot for messages\n\t// and enums.\n\tType *string `protobuf:\"bytes,3,opt,name=type\" json:\"type,omitempty\"`\n\t// If true, indicates that the number is reserved in the extension range,\n\t// and any extension field with the number will fail to compile. Set this\n\t// when a declared extension field is deleted.\n\tReserved *bool `protobuf:\"varint,5,opt,name=reserved\" json:\"reserved,omitempty\"`\n\t// If true, indicates that the extension must be defined as repeated.\n\t// Otherwise the extension must be defined as optional.\n\tRepeated      *bool `protobuf:\"varint,6,opt,name=repeated\" json:\"repeated,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) Reset() {\n\t*x = ExtensionRangeOptions_Declaration{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[25]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionRangeOptions_Declaration) ProtoMessage() {}\n\nfunc (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[25]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead.\nfunc (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0}\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetFullName() string {\n\tif x != nil && x.FullName != nil {\n\t\treturn *x.FullName\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetType() string {\n\tif x != nil && x.Type != nil {\n\t\treturn *x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetReserved() bool {\n\tif x != nil && x.Reserved != nil {\n\t\treturn *x.Reserved\n\t}\n\treturn false\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetRepeated() bool {\n\tif x != nil && x.Repeated != nil {\n\t\treturn *x.Repeated\n\t}\n\treturn false\n}\n\n// Range of reserved numeric values. Reserved values may not be used by\n// entries in the same enum. Reserved ranges may not overlap.\n//\n// Note that this is distinct from DescriptorProto.ReservedRange in that it\n// is inclusive such that it can appropriately represent the entire int32\n// domain.\ntype EnumDescriptorProto_EnumReservedRange struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tStart         *int32                 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd           *int32                 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Inclusive.\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) Reset() {\n\t*x = EnumDescriptorProto_EnumReservedRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[26]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[26]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumDescriptorProto_EnumReservedRange.ProtoReflect.Descriptor instead.\nfunc (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6, 0}\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\ntype FieldOptions_EditionDefault struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tEdition       *Edition               `protobuf:\"varint,3,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n\tValue         *string                `protobuf:\"bytes,2,opt,name=value\" json:\"value,omitempty\"` // Textproto value.\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *FieldOptions_EditionDefault) Reset() {\n\t*x = FieldOptions_EditionDefault{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[27]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions_EditionDefault) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions_EditionDefault) ProtoMessage() {}\n\nfunc (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[27]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions_EditionDefault.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0}\n}\n\nfunc (x *FieldOptions_EditionDefault) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_EditionDefault) GetValue() string {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn \"\"\n}\n\n// Information about the support window of a feature.\ntype FieldOptions_FeatureSupport struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// The edition that this feature was first available in.  In editions\n\t// earlier than this one, the default assigned to EDITION_LEGACY will be\n\t// used, and proto files will not be able to override it.\n\tEditionIntroduced *Edition `protobuf:\"varint,1,opt,name=edition_introduced,json=editionIntroduced,enum=google.protobuf.Edition\" json:\"edition_introduced,omitempty\"`\n\t// The edition this feature becomes deprecated in.  Using this after this\n\t// edition may trigger warnings.\n\tEditionDeprecated *Edition `protobuf:\"varint,2,opt,name=edition_deprecated,json=editionDeprecated,enum=google.protobuf.Edition\" json:\"edition_deprecated,omitempty\"`\n\t// The deprecation warning text if this feature is used after the edition it\n\t// was marked deprecated in.\n\tDeprecationWarning *string `protobuf:\"bytes,3,opt,name=deprecation_warning,json=deprecationWarning\" json:\"deprecation_warning,omitempty\"`\n\t// The edition this feature is no longer available in.  In editions after\n\t// this one, the last default assigned will be used, and proto files will\n\t// not be able to override it.\n\tEditionRemoved *Edition `protobuf:\"varint,4,opt,name=edition_removed,json=editionRemoved,enum=google.protobuf.Edition\" json:\"edition_removed,omitempty\"`\n\tunknownFields  protoimpl.UnknownFields\n\tsizeCache      protoimpl.SizeCache\n}\n\nfunc (x *FieldOptions_FeatureSupport) Reset() {\n\t*x = FieldOptions_FeatureSupport{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[28]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions_FeatureSupport) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions_FeatureSupport) ProtoMessage() {}\n\nfunc (x *FieldOptions_FeatureSupport) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[28]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions_FeatureSupport.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions_FeatureSupport) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1}\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionIntroduced() Edition {\n\tif x != nil && x.EditionIntroduced != nil {\n\t\treturn *x.EditionIntroduced\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionDeprecated() Edition {\n\tif x != nil && x.EditionDeprecated != nil {\n\t\treturn *x.EditionDeprecated\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetDeprecationWarning() string {\n\tif x != nil && x.DeprecationWarning != nil {\n\t\treturn *x.DeprecationWarning\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionRemoved() Edition {\n\tif x != nil && x.EditionRemoved != nil {\n\t\treturn *x.EditionRemoved\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// The name of the uninterpreted option.  Each string represents a segment in\n// a dot-separated name.  is_extension is true iff a segment represents an\n// extension (denoted with parentheses in options specs in .proto files).\n// E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n// \"foo.(bar.baz).moo\".\ntype UninterpretedOption_NamePart struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tNamePart      *string                `protobuf:\"bytes,1,req,name=name_part,json=namePart\" json:\"name_part,omitempty\"`\n\tIsExtension   *bool                  `protobuf:\"varint,2,req,name=is_extension,json=isExtension\" json:\"is_extension,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *UninterpretedOption_NamePart) Reset() {\n\t*x = UninterpretedOption_NamePart{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[29]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *UninterpretedOption_NamePart) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UninterpretedOption_NamePart) ProtoMessage() {}\n\nfunc (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[29]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UninterpretedOption_NamePart.ProtoReflect.Descriptor instead.\nfunc (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18, 0}\n}\n\nfunc (x *UninterpretedOption_NamePart) GetNamePart() string {\n\tif x != nil && x.NamePart != nil {\n\t\treturn *x.NamePart\n\t}\n\treturn \"\"\n}\n\nfunc (x *UninterpretedOption_NamePart) GetIsExtension() bool {\n\tif x != nil && x.IsExtension != nil {\n\t\treturn *x.IsExtension\n\t}\n\treturn false\n}\n\ntype FeatureSet_VisibilityFeature struct {\n\tstate         protoimpl.MessageState `protogen:\"open.v1\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *FeatureSet_VisibilityFeature) Reset() {\n\t*x = FeatureSet_VisibilityFeature{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[30]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSet_VisibilityFeature) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSet_VisibilityFeature) ProtoMessage() {}\n\nfunc (x *FeatureSet_VisibilityFeature) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[30]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSet_VisibilityFeature.ProtoReflect.Descriptor instead.\nfunc (*FeatureSet_VisibilityFeature) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0}\n}\n\n// A map from every known edition with a unique set of defaults to its\n// defaults. Not all editions may be contained here.  For a given edition,\n// the defaults at the closest matching edition ordered at or before it should\n// be used.  This field must be in strict ascending order by edition.\ntype FeatureSetDefaults_FeatureSetEditionDefault struct {\n\tstate   protoimpl.MessageState `protogen:\"open.v1\"`\n\tEdition *Edition               `protobuf:\"varint,3,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n\t// Defaults of features that can be overridden in this edition.\n\tOverridableFeatures *FeatureSet `protobuf:\"bytes,4,opt,name=overridable_features,json=overridableFeatures\" json:\"overridable_features,omitempty\"`\n\t// Defaults of features that can't be overridden in this edition.\n\tFixedFeatures *FeatureSet `protobuf:\"bytes,5,opt,name=fixed_features,json=fixedFeatures\" json:\"fixed_features,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() {\n\t*x = FeatureSetDefaults_FeatureSetEditionDefault{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[31]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[31]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead.\nfunc (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0}\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetOverridableFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.OverridableFeatures\n\t}\n\treturn nil\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFixedFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.FixedFeatures\n\t}\n\treturn nil\n}\n\ntype SourceCodeInfo_Location struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Identifies which part of the FileDescriptorProto was defined at this\n\t// location.\n\t//\n\t// Each element is a field number or an index.  They form a path from\n\t// the root FileDescriptorProto to the place where the definition appears.\n\t// For example, this path:\n\t//\n\t//\t[ 4, 3, 2, 7, 1 ]\n\t//\n\t// refers to:\n\t//\n\t//\tfile.message_type(3)  // 4, 3\n\t//\t    .field(7)         // 2, 7\n\t//\t    .name()           // 1\n\t//\n\t// This is because FileDescriptorProto.message_type has field number 4:\n\t//\n\t//\trepeated DescriptorProto message_type = 4;\n\t//\n\t// and DescriptorProto.field has field number 2:\n\t//\n\t//\trepeated FieldDescriptorProto field = 2;\n\t//\n\t// and FieldDescriptorProto.name has field number 1:\n\t//\n\t//\toptional string name = 1;\n\t//\n\t// Thus, the above path gives the location of a field name.  If we removed\n\t// the last element:\n\t//\n\t//\t[ 4, 3, 2, 7 ]\n\t//\n\t// this path refers to the whole field declaration (from the beginning\n\t// of the label to the terminating semicolon).\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Always has exactly three or four elements: start line, start column,\n\t// end line (optional, otherwise assumed same as start line), end column.\n\t// These are packed into a single field for efficiency.  Note that line\n\t// and column numbers are zero-based -- typically you will want to add\n\t// 1 to each before displaying to a user.\n\tSpan []int32 `protobuf:\"varint,2,rep,packed,name=span\" json:\"span,omitempty\"`\n\t// If this SourceCodeInfo represents a complete declaration, these are any\n\t// comments appearing before and after the declaration which appear to be\n\t// attached to the declaration.\n\t//\n\t// A series of line comments appearing on consecutive lines, with no other\n\t// tokens appearing on those lines, will be treated as a single comment.\n\t//\n\t// leading_detached_comments will keep paragraphs of comments that appear\n\t// before (but not connected to) the current element. Each paragraph,\n\t// separated by empty lines, will be one comment element in the repeated\n\t// field.\n\t//\n\t// Only the comment content is provided; comment markers (e.g. //) are\n\t// stripped out.  For block comments, leading whitespace and an asterisk\n\t// will be stripped from the beginning of each line other than the first.\n\t// Newlines are included in the output.\n\t//\n\t// Examples:\n\t//\n\t//\toptional int32 foo = 1;  // Comment attached to foo.\n\t//\t// Comment attached to bar.\n\t//\toptional int32 bar = 2;\n\t//\n\t//\toptional string baz = 3;\n\t//\t// Comment attached to baz.\n\t//\t// Another line attached to baz.\n\t//\n\t//\t// Comment attached to moo.\n\t//\t//\n\t//\t// Another line attached to moo.\n\t//\toptional double moo = 4;\n\t//\n\t//\t// Detached comment for corge. This is not leading or trailing comments\n\t//\t// to moo or corge because there are blank lines separating it from\n\t//\t// both.\n\t//\n\t//\t// Detached comment for corge paragraph 2.\n\t//\n\t//\toptional string corge = 5;\n\t//\t/* Block comment attached\n\t//\t * to corge.  Leading asterisks\n\t//\t * will be removed. */\n\t//\t/* Block comment attached to\n\t//\t * grault. */\n\t//\toptional int32 grault = 6;\n\t//\n\t//\t// ignored detached comments.\n\tLeadingComments         *string  `protobuf:\"bytes,3,opt,name=leading_comments,json=leadingComments\" json:\"leading_comments,omitempty\"`\n\tTrailingComments        *string  `protobuf:\"bytes,4,opt,name=trailing_comments,json=trailingComments\" json:\"trailing_comments,omitempty\"`\n\tLeadingDetachedComments []string `protobuf:\"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments\" json:\"leading_detached_comments,omitempty\"`\n\tunknownFields           protoimpl.UnknownFields\n\tsizeCache               protoimpl.SizeCache\n}\n\nfunc (x *SourceCodeInfo_Location) Reset() {\n\t*x = SourceCodeInfo_Location{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[32]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *SourceCodeInfo_Location) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SourceCodeInfo_Location) ProtoMessage() {}\n\nfunc (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[32]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead.\nfunc (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0}\n}\n\nfunc (x *SourceCodeInfo_Location) GetPath() []int32 {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *SourceCodeInfo_Location) GetSpan() []int32 {\n\tif x != nil {\n\t\treturn x.Span\n\t}\n\treturn nil\n}\n\nfunc (x *SourceCodeInfo_Location) GetLeadingComments() string {\n\tif x != nil && x.LeadingComments != nil {\n\t\treturn *x.LeadingComments\n\t}\n\treturn \"\"\n}\n\nfunc (x *SourceCodeInfo_Location) GetTrailingComments() string {\n\tif x != nil && x.TrailingComments != nil {\n\t\treturn *x.TrailingComments\n\t}\n\treturn \"\"\n}\n\nfunc (x *SourceCodeInfo_Location) GetLeadingDetachedComments() []string {\n\tif x != nil {\n\t\treturn x.LeadingDetachedComments\n\t}\n\treturn nil\n}\n\ntype GeneratedCodeInfo_Annotation struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Identifies the element in the original source .proto file. This field\n\t// is formatted the same as SourceCodeInfo.Location.path.\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Identifies the filesystem path to the original source .proto.\n\tSourceFile *string `protobuf:\"bytes,2,opt,name=source_file,json=sourceFile\" json:\"source_file,omitempty\"`\n\t// Identifies the starting offset in bytes in the generated code\n\t// that relates to the identified object.\n\tBegin *int32 `protobuf:\"varint,3,opt,name=begin\" json:\"begin,omitempty\"`\n\t// Identifies the ending offset in bytes in the generated code that\n\t// relates to the identified object. The end offset should be one past\n\t// the last relevant byte (so the length of the text = end - begin).\n\tEnd           *int32                                 `protobuf:\"varint,4,opt,name=end\" json:\"end,omitempty\"`\n\tSemantic      *GeneratedCodeInfo_Annotation_Semantic `protobuf:\"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic\" json:\"semantic,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) Reset() {\n\t*x = GeneratedCodeInfo_Annotation{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[33]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GeneratedCodeInfo_Annotation) ProtoMessage() {}\n\nfunc (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[33]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead.\nfunc (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0}\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetPath() []int32 {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetSourceFile() string {\n\tif x != nil && x.SourceFile != nil {\n\t\treturn *x.SourceFile\n\t}\n\treturn \"\"\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetBegin() int32 {\n\tif x != nil && x.Begin != nil {\n\t\treturn *x.Begin\n\t}\n\treturn 0\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic {\n\tif x != nil && x.Semantic != nil {\n\t\treturn *x.Semantic\n\t}\n\treturn GeneratedCodeInfo_Annotation_NONE\n}\n\nvar File_google_protobuf_descriptor_proto protoreflect.FileDescriptor\n\nconst file_google_protobuf_descriptor_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\" google/protobuf/descriptor.proto\\x12\\x0fgoogle.protobuf\\\"[\\n\" +\n\t\"\\x11FileDescriptorSet\\x128\\n\" +\n\t\"\\x04file\\x18\\x01 \\x03(\\v2$.google.protobuf.FileDescriptorProtoR\\x04file*\\f\\b\\x80\\xec\\xca\\xff\\x01\\x10\\x81\\xec\\xca\\xff\\x01\\\"\\xc5\\x05\\n\" +\n\t\"\\x13FileDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12\\x18\\n\" +\n\t\"\\apackage\\x18\\x02 \\x01(\\tR\\apackage\\x12\\x1e\\n\" +\n\t\"\\n\" +\n\t\"dependency\\x18\\x03 \\x03(\\tR\\n\" +\n\t\"dependency\\x12+\\n\" +\n\t\"\\x11public_dependency\\x18\\n\" +\n\t\" \\x03(\\x05R\\x10publicDependency\\x12'\\n\" +\n\t\"\\x0fweak_dependency\\x18\\v \\x03(\\x05R\\x0eweakDependency\\x12+\\n\" +\n\t\"\\x11option_dependency\\x18\\x0f \\x03(\\tR\\x10optionDependency\\x12C\\n\" +\n\t\"\\fmessage_type\\x18\\x04 \\x03(\\v2 .google.protobuf.DescriptorProtoR\\vmessageType\\x12A\\n\" +\n\t\"\\tenum_type\\x18\\x05 \\x03(\\v2$.google.protobuf.EnumDescriptorProtoR\\benumType\\x12A\\n\" +\n\t\"\\aservice\\x18\\x06 \\x03(\\v2'.google.protobuf.ServiceDescriptorProtoR\\aservice\\x12C\\n\" +\n\t\"\\textension\\x18\\a \\x03(\\v2%.google.protobuf.FieldDescriptorProtoR\\textension\\x126\\n\" +\n\t\"\\aoptions\\x18\\b \\x01(\\v2\\x1c.google.protobuf.FileOptionsR\\aoptions\\x12I\\n\" +\n\t\"\\x10source_code_info\\x18\\t \\x01(\\v2\\x1f.google.protobuf.SourceCodeInfoR\\x0esourceCodeInfo\\x12\\x16\\n\" +\n\t\"\\x06syntax\\x18\\f \\x01(\\tR\\x06syntax\\x122\\n\" +\n\t\"\\aedition\\x18\\x0e \\x01(\\x0e2\\x18.google.protobuf.EditionR\\aedition\\\"\\xfc\\x06\\n\" +\n\t\"\\x0fDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12;\\n\" +\n\t\"\\x05field\\x18\\x02 \\x03(\\v2%.google.protobuf.FieldDescriptorProtoR\\x05field\\x12C\\n\" +\n\t\"\\textension\\x18\\x06 \\x03(\\v2%.google.protobuf.FieldDescriptorProtoR\\textension\\x12A\\n\" +\n\t\"\\vnested_type\\x18\\x03 \\x03(\\v2 .google.protobuf.DescriptorProtoR\\n\" +\n\t\"nestedType\\x12A\\n\" +\n\t\"\\tenum_type\\x18\\x04 \\x03(\\v2$.google.protobuf.EnumDescriptorProtoR\\benumType\\x12X\\n\" +\n\t\"\\x0fextension_range\\x18\\x05 \\x03(\\v2/.google.protobuf.DescriptorProto.ExtensionRangeR\\x0eextensionRange\\x12D\\n\" +\n\t\"\\n\" +\n\t\"oneof_decl\\x18\\b \\x03(\\v2%.google.protobuf.OneofDescriptorProtoR\\toneofDecl\\x129\\n\" +\n\t\"\\aoptions\\x18\\a \\x01(\\v2\\x1f.google.protobuf.MessageOptionsR\\aoptions\\x12U\\n\" +\n\t\"\\x0ereserved_range\\x18\\t \\x03(\\v2..google.protobuf.DescriptorProto.ReservedRangeR\\rreservedRange\\x12#\\n\" +\n\t\"\\rreserved_name\\x18\\n\" +\n\t\" \\x03(\\tR\\freservedName\\x12A\\n\" +\n\t\"\\n\" +\n\t\"visibility\\x18\\v \\x01(\\x0e2!.google.protobuf.SymbolVisibilityR\\n\" +\n\t\"visibility\\x1az\\n\" +\n\t\"\\x0eExtensionRange\\x12\\x14\\n\" +\n\t\"\\x05start\\x18\\x01 \\x01(\\x05R\\x05start\\x12\\x10\\n\" +\n\t\"\\x03end\\x18\\x02 \\x01(\\x05R\\x03end\\x12@\\n\" +\n\t\"\\aoptions\\x18\\x03 \\x01(\\v2&.google.protobuf.ExtensionRangeOptionsR\\aoptions\\x1a7\\n\" +\n\t\"\\rReservedRange\\x12\\x14\\n\" +\n\t\"\\x05start\\x18\\x01 \\x01(\\x05R\\x05start\\x12\\x10\\n\" +\n\t\"\\x03end\\x18\\x02 \\x01(\\x05R\\x03end\\\"\\xcc\\x04\\n\" +\n\t\"\\x15ExtensionRangeOptions\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption\\x12Y\\n\" +\n\t\"\\vdeclaration\\x18\\x02 \\x03(\\v22.google.protobuf.ExtensionRangeOptions.DeclarationB\\x03\\x88\\x01\\x02R\\vdeclaration\\x127\\n\" +\n\t\"\\bfeatures\\x182 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12m\\n\" +\n\t\"\\fverification\\x18\\x03 \\x01(\\x0e28.google.protobuf.ExtensionRangeOptions.VerificationState:\\n\" +\n\t\"UNVERIFIEDB\\x03\\x88\\x01\\x02R\\fverification\\x1a\\x94\\x01\\n\" +\n\t\"\\vDeclaration\\x12\\x16\\n\" +\n\t\"\\x06number\\x18\\x01 \\x01(\\x05R\\x06number\\x12\\x1b\\n\" +\n\t\"\\tfull_name\\x18\\x02 \\x01(\\tR\\bfullName\\x12\\x12\\n\" +\n\t\"\\x04type\\x18\\x03 \\x01(\\tR\\x04type\\x12\\x1a\\n\" +\n\t\"\\breserved\\x18\\x05 \\x01(\\bR\\breserved\\x12\\x1a\\n\" +\n\t\"\\brepeated\\x18\\x06 \\x01(\\bR\\brepeatedJ\\x04\\b\\x04\\x10\\x05\\\"4\\n\" +\n\t\"\\x11VerificationState\\x12\\x0f\\n\" +\n\t\"\\vDECLARATION\\x10\\x00\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"UNVERIFIED\\x10\\x01*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\xc1\\x06\\n\" +\n\t\"\\x14FieldDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12\\x16\\n\" +\n\t\"\\x06number\\x18\\x03 \\x01(\\x05R\\x06number\\x12A\\n\" +\n\t\"\\x05label\\x18\\x04 \\x01(\\x0e2+.google.protobuf.FieldDescriptorProto.LabelR\\x05label\\x12>\\n\" +\n\t\"\\x04type\\x18\\x05 \\x01(\\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\\x04type\\x12\\x1b\\n\" +\n\t\"\\ttype_name\\x18\\x06 \\x01(\\tR\\btypeName\\x12\\x1a\\n\" +\n\t\"\\bextendee\\x18\\x02 \\x01(\\tR\\bextendee\\x12#\\n\" +\n\t\"\\rdefault_value\\x18\\a \\x01(\\tR\\fdefaultValue\\x12\\x1f\\n\" +\n\t\"\\voneof_index\\x18\\t \\x01(\\x05R\\n\" +\n\t\"oneofIndex\\x12\\x1b\\n\" +\n\t\"\\tjson_name\\x18\\n\" +\n\t\" \\x01(\\tR\\bjsonName\\x127\\n\" +\n\t\"\\aoptions\\x18\\b \\x01(\\v2\\x1d.google.protobuf.FieldOptionsR\\aoptions\\x12'\\n\" +\n\t\"\\x0fproto3_optional\\x18\\x11 \\x01(\\bR\\x0eproto3Optional\\\"\\xb6\\x02\\n\" +\n\t\"\\x04Type\\x12\\x0f\\n\" +\n\t\"\\vTYPE_DOUBLE\\x10\\x01\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"TYPE_FLOAT\\x10\\x02\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"TYPE_INT64\\x10\\x03\\x12\\x0f\\n\" +\n\t\"\\vTYPE_UINT64\\x10\\x04\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"TYPE_INT32\\x10\\x05\\x12\\x10\\n\" +\n\t\"\\fTYPE_FIXED64\\x10\\x06\\x12\\x10\\n\" +\n\t\"\\fTYPE_FIXED32\\x10\\a\\x12\\r\\n\" +\n\t\"\\tTYPE_BOOL\\x10\\b\\x12\\x0f\\n\" +\n\t\"\\vTYPE_STRING\\x10\\t\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"TYPE_GROUP\\x10\\n\" +\n\t\"\\x12\\x10\\n\" +\n\t\"\\fTYPE_MESSAGE\\x10\\v\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"TYPE_BYTES\\x10\\f\\x12\\x0f\\n\" +\n\t\"\\vTYPE_UINT32\\x10\\r\\x12\\r\\n\" +\n\t\"\\tTYPE_ENUM\\x10\\x0e\\x12\\x11\\n\" +\n\t\"\\rTYPE_SFIXED32\\x10\\x0f\\x12\\x11\\n\" +\n\t\"\\rTYPE_SFIXED64\\x10\\x10\\x12\\x0f\\n\" +\n\t\"\\vTYPE_SINT32\\x10\\x11\\x12\\x0f\\n\" +\n\t\"\\vTYPE_SINT64\\x10\\x12\\\"C\\n\" +\n\t\"\\x05Label\\x12\\x12\\n\" +\n\t\"\\x0eLABEL_OPTIONAL\\x10\\x01\\x12\\x12\\n\" +\n\t\"\\x0eLABEL_REPEATED\\x10\\x03\\x12\\x12\\n\" +\n\t\"\\x0eLABEL_REQUIRED\\x10\\x02\\\"c\\n\" +\n\t\"\\x14OneofDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x127\\n\" +\n\t\"\\aoptions\\x18\\x02 \\x01(\\v2\\x1d.google.protobuf.OneofOptionsR\\aoptions\\\"\\xa6\\x03\\n\" +\n\t\"\\x13EnumDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12?\\n\" +\n\t\"\\x05value\\x18\\x02 \\x03(\\v2).google.protobuf.EnumValueDescriptorProtoR\\x05value\\x126\\n\" +\n\t\"\\aoptions\\x18\\x03 \\x01(\\v2\\x1c.google.protobuf.EnumOptionsR\\aoptions\\x12]\\n\" +\n\t\"\\x0ereserved_range\\x18\\x04 \\x03(\\v26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\\rreservedRange\\x12#\\n\" +\n\t\"\\rreserved_name\\x18\\x05 \\x03(\\tR\\freservedName\\x12A\\n\" +\n\t\"\\n\" +\n\t\"visibility\\x18\\x06 \\x01(\\x0e2!.google.protobuf.SymbolVisibilityR\\n\" +\n\t\"visibility\\x1a;\\n\" +\n\t\"\\x11EnumReservedRange\\x12\\x14\\n\" +\n\t\"\\x05start\\x18\\x01 \\x01(\\x05R\\x05start\\x12\\x10\\n\" +\n\t\"\\x03end\\x18\\x02 \\x01(\\x05R\\x03end\\\"\\x83\\x01\\n\" +\n\t\"\\x18EnumValueDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12\\x16\\n\" +\n\t\"\\x06number\\x18\\x02 \\x01(\\x05R\\x06number\\x12;\\n\" +\n\t\"\\aoptions\\x18\\x03 \\x01(\\v2!.google.protobuf.EnumValueOptionsR\\aoptions\\\"\\xa7\\x01\\n\" +\n\t\"\\x16ServiceDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12>\\n\" +\n\t\"\\x06method\\x18\\x02 \\x03(\\v2&.google.protobuf.MethodDescriptorProtoR\\x06method\\x129\\n\" +\n\t\"\\aoptions\\x18\\x03 \\x01(\\v2\\x1f.google.protobuf.ServiceOptionsR\\aoptions\\\"\\x89\\x02\\n\" +\n\t\"\\x15MethodDescriptorProto\\x12\\x12\\n\" +\n\t\"\\x04name\\x18\\x01 \\x01(\\tR\\x04name\\x12\\x1d\\n\" +\n\t\"\\n\" +\n\t\"input_type\\x18\\x02 \\x01(\\tR\\tinputType\\x12\\x1f\\n\" +\n\t\"\\voutput_type\\x18\\x03 \\x01(\\tR\\n\" +\n\t\"outputType\\x128\\n\" +\n\t\"\\aoptions\\x18\\x04 \\x01(\\v2\\x1e.google.protobuf.MethodOptionsR\\aoptions\\x120\\n\" +\n\t\"\\x10client_streaming\\x18\\x05 \\x01(\\b:\\x05falseR\\x0fclientStreaming\\x120\\n\" +\n\t\"\\x10server_streaming\\x18\\x06 \\x01(\\b:\\x05falseR\\x0fserverStreaming\\\"\\xad\\t\\n\" +\n\t\"\\vFileOptions\\x12!\\n\" +\n\t\"\\fjava_package\\x18\\x01 \\x01(\\tR\\vjavaPackage\\x120\\n\" +\n\t\"\\x14java_outer_classname\\x18\\b \\x01(\\tR\\x12javaOuterClassname\\x125\\n\" +\n\t\"\\x13java_multiple_files\\x18\\n\" +\n\t\" \\x01(\\b:\\x05falseR\\x11javaMultipleFiles\\x12D\\n\" +\n\t\"\\x1djava_generate_equals_and_hash\\x18\\x14 \\x01(\\bB\\x02\\x18\\x01R\\x19javaGenerateEqualsAndHash\\x12:\\n\" +\n\t\"\\x16java_string_check_utf8\\x18\\x1b \\x01(\\b:\\x05falseR\\x13javaStringCheckUtf8\\x12S\\n\" +\n\t\"\\foptimize_for\\x18\\t \\x01(\\x0e2).google.protobuf.FileOptions.OptimizeMode:\\x05SPEEDR\\voptimizeFor\\x12\\x1d\\n\" +\n\t\"\\n\" +\n\t\"go_package\\x18\\v \\x01(\\tR\\tgoPackage\\x125\\n\" +\n\t\"\\x13cc_generic_services\\x18\\x10 \\x01(\\b:\\x05falseR\\x11ccGenericServices\\x129\\n\" +\n\t\"\\x15java_generic_services\\x18\\x11 \\x01(\\b:\\x05falseR\\x13javaGenericServices\\x125\\n\" +\n\t\"\\x13py_generic_services\\x18\\x12 \\x01(\\b:\\x05falseR\\x11pyGenericServices\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18\\x17 \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12.\\n\" +\n\t\"\\x10cc_enable_arenas\\x18\\x1f \\x01(\\b:\\x04trueR\\x0eccEnableArenas\\x12*\\n\" +\n\t\"\\x11objc_class_prefix\\x18$ \\x01(\\tR\\x0fobjcClassPrefix\\x12)\\n\" +\n\t\"\\x10csharp_namespace\\x18% \\x01(\\tR\\x0fcsharpNamespace\\x12!\\n\" +\n\t\"\\fswift_prefix\\x18' \\x01(\\tR\\vswiftPrefix\\x12(\\n\" +\n\t\"\\x10php_class_prefix\\x18( \\x01(\\tR\\x0ephpClassPrefix\\x12#\\n\" +\n\t\"\\rphp_namespace\\x18) \\x01(\\tR\\fphpNamespace\\x124\\n\" +\n\t\"\\x16php_metadata_namespace\\x18, \\x01(\\tR\\x14phpMetadataNamespace\\x12!\\n\" +\n\t\"\\fruby_package\\x18- \\x01(\\tR\\vrubyPackage\\x127\\n\" +\n\t\"\\bfeatures\\x182 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption\\\":\\n\" +\n\t\"\\fOptimizeMode\\x12\\t\\n\" +\n\t\"\\x05SPEED\\x10\\x01\\x12\\r\\n\" +\n\t\"\\tCODE_SIZE\\x10\\x02\\x12\\x10\\n\" +\n\t\"\\fLITE_RUNTIME\\x10\\x03*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02J\\x04\\b*\\x10+J\\x04\\b&\\x10'R\\x14php_generic_services\\\"\\xf4\\x03\\n\" +\n\t\"\\x0eMessageOptions\\x12<\\n\" +\n\t\"\\x17message_set_wire_format\\x18\\x01 \\x01(\\b:\\x05falseR\\x14messageSetWireFormat\\x12L\\n\" +\n\t\"\\x1fno_standard_descriptor_accessor\\x18\\x02 \\x01(\\b:\\x05falseR\\x1cnoStandardDescriptorAccessor\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18\\x03 \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12\\x1b\\n\" +\n\t\"\\tmap_entry\\x18\\a \\x01(\\bR\\bmapEntry\\x12V\\n\" +\n\t\"&deprecated_legacy_json_field_conflicts\\x18\\v \\x01(\\bB\\x02\\x18\\x01R\\\"deprecatedLegacyJsonFieldConflicts\\x127\\n\" +\n\t\"\\bfeatures\\x18\\f \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02J\\x04\\b\\x04\\x10\\x05J\\x04\\b\\x05\\x10\\x06J\\x04\\b\\x06\\x10\\aJ\\x04\\b\\b\\x10\\tJ\\x04\\b\\t\\x10\\n\" +\n\t\"\\\"\\xa1\\r\\n\" +\n\t\"\\fFieldOptions\\x12A\\n\" +\n\t\"\\x05ctype\\x18\\x01 \\x01(\\x0e2#.google.protobuf.FieldOptions.CType:\\x06STRINGR\\x05ctype\\x12\\x16\\n\" +\n\t\"\\x06packed\\x18\\x02 \\x01(\\bR\\x06packed\\x12G\\n\" +\n\t\"\\x06jstype\\x18\\x06 \\x01(\\x0e2$.google.protobuf.FieldOptions.JSType:\\tJS_NORMALR\\x06jstype\\x12\\x19\\n\" +\n\t\"\\x04lazy\\x18\\x05 \\x01(\\b:\\x05falseR\\x04lazy\\x12.\\n\" +\n\t\"\\x0funverified_lazy\\x18\\x0f \\x01(\\b:\\x05falseR\\x0eunverifiedLazy\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18\\x03 \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12\\x1d\\n\" +\n\t\"\\x04weak\\x18\\n\" +\n\t\" \\x01(\\b:\\x05falseB\\x02\\x18\\x01R\\x04weak\\x12(\\n\" +\n\t\"\\fdebug_redact\\x18\\x10 \\x01(\\b:\\x05falseR\\vdebugRedact\\x12K\\n\" +\n\t\"\\tretention\\x18\\x11 \\x01(\\x0e2-.google.protobuf.FieldOptions.OptionRetentionR\\tretention\\x12H\\n\" +\n\t\"\\atargets\\x18\\x13 \\x03(\\x0e2..google.protobuf.FieldOptions.OptionTargetTypeR\\atargets\\x12W\\n\" +\n\t\"\\x10edition_defaults\\x18\\x14 \\x03(\\v2,.google.protobuf.FieldOptions.EditionDefaultR\\x0feditionDefaults\\x127\\n\" +\n\t\"\\bfeatures\\x18\\x15 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12U\\n\" +\n\t\"\\x0ffeature_support\\x18\\x16 \\x01(\\v2,.google.protobuf.FieldOptions.FeatureSupportR\\x0efeatureSupport\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption\\x1aZ\\n\" +\n\t\"\\x0eEditionDefault\\x122\\n\" +\n\t\"\\aedition\\x18\\x03 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\aedition\\x12\\x14\\n\" +\n\t\"\\x05value\\x18\\x02 \\x01(\\tR\\x05value\\x1a\\x96\\x02\\n\" +\n\t\"\\x0eFeatureSupport\\x12G\\n\" +\n\t\"\\x12edition_introduced\\x18\\x01 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\x11editionIntroduced\\x12G\\n\" +\n\t\"\\x12edition_deprecated\\x18\\x02 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\x11editionDeprecated\\x12/\\n\" +\n\t\"\\x13deprecation_warning\\x18\\x03 \\x01(\\tR\\x12deprecationWarning\\x12A\\n\" +\n\t\"\\x0fedition_removed\\x18\\x04 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\x0eeditionRemoved\\\"/\\n\" +\n\t\"\\x05CType\\x12\\n\" +\n\t\"\\n\" +\n\t\"\\x06STRING\\x10\\x00\\x12\\b\\n\" +\n\t\"\\x04CORD\\x10\\x01\\x12\\x10\\n\" +\n\t\"\\fSTRING_PIECE\\x10\\x02\\\"5\\n\" +\n\t\"\\x06JSType\\x12\\r\\n\" +\n\t\"\\tJS_NORMAL\\x10\\x00\\x12\\r\\n\" +\n\t\"\\tJS_STRING\\x10\\x01\\x12\\r\\n\" +\n\t\"\\tJS_NUMBER\\x10\\x02\\\"U\\n\" +\n\t\"\\x0fOptionRetention\\x12\\x15\\n\" +\n\t\"\\x11RETENTION_UNKNOWN\\x10\\x00\\x12\\x15\\n\" +\n\t\"\\x11RETENTION_RUNTIME\\x10\\x01\\x12\\x14\\n\" +\n\t\"\\x10RETENTION_SOURCE\\x10\\x02\\\"\\x8c\\x02\\n\" +\n\t\"\\x10OptionTargetType\\x12\\x17\\n\" +\n\t\"\\x13TARGET_TYPE_UNKNOWN\\x10\\x00\\x12\\x14\\n\" +\n\t\"\\x10TARGET_TYPE_FILE\\x10\\x01\\x12\\x1f\\n\" +\n\t\"\\x1bTARGET_TYPE_EXTENSION_RANGE\\x10\\x02\\x12\\x17\\n\" +\n\t\"\\x13TARGET_TYPE_MESSAGE\\x10\\x03\\x12\\x15\\n\" +\n\t\"\\x11TARGET_TYPE_FIELD\\x10\\x04\\x12\\x15\\n\" +\n\t\"\\x11TARGET_TYPE_ONEOF\\x10\\x05\\x12\\x14\\n\" +\n\t\"\\x10TARGET_TYPE_ENUM\\x10\\x06\\x12\\x1a\\n\" +\n\t\"\\x16TARGET_TYPE_ENUM_ENTRY\\x10\\a\\x12\\x17\\n\" +\n\t\"\\x13TARGET_TYPE_SERVICE\\x10\\b\\x12\\x16\\n\" +\n\t\"\\x12TARGET_TYPE_METHOD\\x10\\t*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02J\\x04\\b\\x04\\x10\\x05J\\x04\\b\\x12\\x10\\x13\\\"\\xac\\x01\\n\" +\n\t\"\\fOneofOptions\\x127\\n\" +\n\t\"\\bfeatures\\x18\\x01 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\xd1\\x02\\n\" +\n\t\"\\vEnumOptions\\x12\\x1f\\n\" +\n\t\"\\vallow_alias\\x18\\x02 \\x01(\\bR\\n\" +\n\t\"allowAlias\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18\\x03 \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12V\\n\" +\n\t\"&deprecated_legacy_json_field_conflicts\\x18\\x06 \\x01(\\bB\\x02\\x18\\x01R\\\"deprecatedLegacyJsonFieldConflicts\\x127\\n\" +\n\t\"\\bfeatures\\x18\\a \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02J\\x04\\b\\x05\\x10\\x06\\\"\\xd8\\x02\\n\" +\n\t\"\\x10EnumValueOptions\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18\\x01 \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x127\\n\" +\n\t\"\\bfeatures\\x18\\x02 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12(\\n\" +\n\t\"\\fdebug_redact\\x18\\x03 \\x01(\\b:\\x05falseR\\vdebugRedact\\x12U\\n\" +\n\t\"\\x0ffeature_support\\x18\\x04 \\x01(\\v2,.google.protobuf.FieldOptions.FeatureSupportR\\x0efeatureSupport\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\xd5\\x01\\n\" +\n\t\"\\x0eServiceOptions\\x127\\n\" +\n\t\"\\bfeatures\\x18\\\" \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18! \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\x99\\x03\\n\" +\n\t\"\\rMethodOptions\\x12%\\n\" +\n\t\"\\n\" +\n\t\"deprecated\\x18! \\x01(\\b:\\x05falseR\\n\" +\n\t\"deprecated\\x12q\\n\" +\n\t\"\\x11idempotency_level\\x18\\\" \\x01(\\x0e2/.google.protobuf.MethodOptions.IdempotencyLevel:\\x13IDEMPOTENCY_UNKNOWNR\\x10idempotencyLevel\\x127\\n\" +\n\t\"\\bfeatures\\x18# \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\bfeatures\\x12X\\n\" +\n\t\"\\x14uninterpreted_option\\x18\\xe7\\a \\x03(\\v2$.google.protobuf.UninterpretedOptionR\\x13uninterpretedOption\\\"P\\n\" +\n\t\"\\x10IdempotencyLevel\\x12\\x17\\n\" +\n\t\"\\x13IDEMPOTENCY_UNKNOWN\\x10\\x00\\x12\\x13\\n\" +\n\t\"\\x0fNO_SIDE_EFFECTS\\x10\\x01\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"IDEMPOTENT\\x10\\x02*\\t\\b\\xe8\\a\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\x9a\\x03\\n\" +\n\t\"\\x13UninterpretedOption\\x12A\\n\" +\n\t\"\\x04name\\x18\\x02 \\x03(\\v2-.google.protobuf.UninterpretedOption.NamePartR\\x04name\\x12)\\n\" +\n\t\"\\x10identifier_value\\x18\\x03 \\x01(\\tR\\x0fidentifierValue\\x12,\\n\" +\n\t\"\\x12positive_int_value\\x18\\x04 \\x01(\\x04R\\x10positiveIntValue\\x12,\\n\" +\n\t\"\\x12negative_int_value\\x18\\x05 \\x01(\\x03R\\x10negativeIntValue\\x12!\\n\" +\n\t\"\\fdouble_value\\x18\\x06 \\x01(\\x01R\\vdoubleValue\\x12!\\n\" +\n\t\"\\fstring_value\\x18\\a \\x01(\\fR\\vstringValue\\x12'\\n\" +\n\t\"\\x0faggregate_value\\x18\\b \\x01(\\tR\\x0eaggregateValue\\x1aJ\\n\" +\n\t\"\\bNamePart\\x12\\x1b\\n\" +\n\t\"\\tname_part\\x18\\x01 \\x02(\\tR\\bnamePart\\x12!\\n\" +\n\t\"\\fis_extension\\x18\\x02 \\x02(\\bR\\visExtension\\\"\\x8e\\x0f\\n\" +\n\t\"\\n\" +\n\t\"FeatureSet\\x12\\x91\\x01\\n\" +\n\t\"\\x0efield_presence\\x18\\x01 \\x01(\\x0e2).google.protobuf.FeatureSet.FieldPresenceB?\\x88\\x01\\x01\\x98\\x01\\x04\\x98\\x01\\x01\\xa2\\x01\\r\\x12\\bEXPLICIT\\x18\\x84\\a\\xa2\\x01\\r\\x12\\bIMPLICIT\\x18\\xe7\\a\\xa2\\x01\\r\\x12\\bEXPLICIT\\x18\\xe8\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\rfieldPresence\\x12l\\n\" +\n\t\"\\tenum_type\\x18\\x02 \\x01(\\x0e2$.google.protobuf.FeatureSet.EnumTypeB)\\x88\\x01\\x01\\x98\\x01\\x06\\x98\\x01\\x01\\xa2\\x01\\v\\x12\\x06CLOSED\\x18\\x84\\a\\xa2\\x01\\t\\x12\\x04OPEN\\x18\\xe7\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\benumType\\x12\\x98\\x01\\n\" +\n\t\"\\x17repeated_field_encoding\\x18\\x03 \\x01(\\x0e21.google.protobuf.FeatureSet.RepeatedFieldEncodingB-\\x88\\x01\\x01\\x98\\x01\\x04\\x98\\x01\\x01\\xa2\\x01\\r\\x12\\bEXPANDED\\x18\\x84\\a\\xa2\\x01\\v\\x12\\x06PACKED\\x18\\xe7\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\x15repeatedFieldEncoding\\x12~\\n\" +\n\t\"\\x0futf8_validation\\x18\\x04 \\x01(\\x0e2*.google.protobuf.FeatureSet.Utf8ValidationB)\\x88\\x01\\x01\\x98\\x01\\x04\\x98\\x01\\x01\\xa2\\x01\\t\\x12\\x04NONE\\x18\\x84\\a\\xa2\\x01\\v\\x12\\x06VERIFY\\x18\\xe7\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\x0eutf8Validation\\x12~\\n\" +\n\t\"\\x10message_encoding\\x18\\x05 \\x01(\\x0e2+.google.protobuf.FeatureSet.MessageEncodingB&\\x88\\x01\\x01\\x98\\x01\\x04\\x98\\x01\\x01\\xa2\\x01\\x14\\x12\\x0fLENGTH_PREFIXED\\x18\\x84\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\x0fmessageEncoding\\x12\\x82\\x01\\n\" +\n\t\"\\vjson_format\\x18\\x06 \\x01(\\x0e2&.google.protobuf.FeatureSet.JsonFormatB9\\x88\\x01\\x01\\x98\\x01\\x03\\x98\\x01\\x06\\x98\\x01\\x01\\xa2\\x01\\x17\\x12\\x12LEGACY_BEST_EFFORT\\x18\\x84\\a\\xa2\\x01\\n\" +\n\t\"\\x12\\x05ALLOW\\x18\\xe7\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\n\" +\n\t\"jsonFormat\\x12\\xab\\x01\\n\" +\n\t\"\\x14enforce_naming_style\\x18\\a \\x01(\\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBI\\x88\\x01\\x02\\x98\\x01\\x01\\x98\\x01\\x02\\x98\\x01\\x03\\x98\\x01\\x04\\x98\\x01\\x05\\x98\\x01\\x06\\x98\\x01\\a\\x98\\x01\\b\\x98\\x01\\t\\xa2\\x01\\x11\\x12\\fSTYLE_LEGACY\\x18\\x84\\a\\xa2\\x01\\x0e\\x12\\tSTYLE2024\\x18\\xe9\\a\\xb2\\x01\\x03\\b\\xe9\\aR\\x12enforceNamingStyle\\x12\\xb9\\x01\\n\" +\n\t\"\\x19default_symbol_visibility\\x18\\b \\x01(\\x0e2E.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibilityB6\\x88\\x01\\x02\\x98\\x01\\x01\\xa2\\x01\\x0f\\x12\\n\" +\n\t\"EXPORT_ALL\\x18\\x84\\a\\xa2\\x01\\x15\\x12\\x10EXPORT_TOP_LEVEL\\x18\\xe9\\a\\xb2\\x01\\x03\\b\\xe9\\aR\\x17defaultSymbolVisibility\\x1a\\xa1\\x01\\n\" +\n\t\"\\x11VisibilityFeature\\\"\\x81\\x01\\n\" +\n\t\"\\x17DefaultSymbolVisibility\\x12%\\n\" +\n\t\"!DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\\x10\\x00\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"EXPORT_ALL\\x10\\x01\\x12\\x14\\n\" +\n\t\"\\x10EXPORT_TOP_LEVEL\\x10\\x02\\x12\\r\\n\" +\n\t\"\\tLOCAL_ALL\\x10\\x03\\x12\\n\" +\n\t\"\\n\" +\n\t\"\\x06STRICT\\x10\\x04J\\b\\b\\x01\\x10\\x80\\x80\\x80\\x80\\x02\\\"\\\\\\n\" +\n\t\"\\rFieldPresence\\x12\\x1a\\n\" +\n\t\"\\x16FIELD_PRESENCE_UNKNOWN\\x10\\x00\\x12\\f\\n\" +\n\t\"\\bEXPLICIT\\x10\\x01\\x12\\f\\n\" +\n\t\"\\bIMPLICIT\\x10\\x02\\x12\\x13\\n\" +\n\t\"\\x0fLEGACY_REQUIRED\\x10\\x03\\\"7\\n\" +\n\t\"\\bEnumType\\x12\\x15\\n\" +\n\t\"\\x11ENUM_TYPE_UNKNOWN\\x10\\x00\\x12\\b\\n\" +\n\t\"\\x04OPEN\\x10\\x01\\x12\\n\" +\n\t\"\\n\" +\n\t\"\\x06CLOSED\\x10\\x02\\\"V\\n\" +\n\t\"\\x15RepeatedFieldEncoding\\x12#\\n\" +\n\t\"\\x1fREPEATED_FIELD_ENCODING_UNKNOWN\\x10\\x00\\x12\\n\" +\n\t\"\\n\" +\n\t\"\\x06PACKED\\x10\\x01\\x12\\f\\n\" +\n\t\"\\bEXPANDED\\x10\\x02\\\"I\\n\" +\n\t\"\\x0eUtf8Validation\\x12\\x1b\\n\" +\n\t\"\\x17UTF8_VALIDATION_UNKNOWN\\x10\\x00\\x12\\n\" +\n\t\"\\n\" +\n\t\"\\x06VERIFY\\x10\\x02\\x12\\b\\n\" +\n\t\"\\x04NONE\\x10\\x03\\\"\\x04\\b\\x01\\x10\\x01\\\"S\\n\" +\n\t\"\\x0fMessageEncoding\\x12\\x1c\\n\" +\n\t\"\\x18MESSAGE_ENCODING_UNKNOWN\\x10\\x00\\x12\\x13\\n\" +\n\t\"\\x0fLENGTH_PREFIXED\\x10\\x01\\x12\\r\\n\" +\n\t\"\\tDELIMITED\\x10\\x02\\\"H\\n\" +\n\t\"\\n\" +\n\t\"JsonFormat\\x12\\x17\\n\" +\n\t\"\\x13JSON_FORMAT_UNKNOWN\\x10\\x00\\x12\\t\\n\" +\n\t\"\\x05ALLOW\\x10\\x01\\x12\\x16\\n\" +\n\t\"\\x12LEGACY_BEST_EFFORT\\x10\\x02\\\"W\\n\" +\n\t\"\\x12EnforceNamingStyle\\x12 \\n\" +\n\t\"\\x1cENFORCE_NAMING_STYLE_UNKNOWN\\x10\\x00\\x12\\r\\n\" +\n\t\"\\tSTYLE2024\\x10\\x01\\x12\\x10\\n\" +\n\t\"\\fSTYLE_LEGACY\\x10\\x02*\\x06\\b\\xe8\\a\\x10\\x8bN*\\x06\\b\\x8bN\\x10\\x90N*\\x06\\b\\x90N\\x10\\x91NJ\\x06\\b\\xe7\\a\\x10\\xe8\\a\\\"\\xef\\x03\\n\" +\n\t\"\\x12FeatureSetDefaults\\x12X\\n\" +\n\t\"\\bdefaults\\x18\\x01 \\x03(\\v2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\\bdefaults\\x12A\\n\" +\n\t\"\\x0fminimum_edition\\x18\\x04 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\x0eminimumEdition\\x12A\\n\" +\n\t\"\\x0fmaximum_edition\\x18\\x05 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\x0emaximumEdition\\x1a\\xf8\\x01\\n\" +\n\t\"\\x18FeatureSetEditionDefault\\x122\\n\" +\n\t\"\\aedition\\x18\\x03 \\x01(\\x0e2\\x18.google.protobuf.EditionR\\aedition\\x12N\\n\" +\n\t\"\\x14overridable_features\\x18\\x04 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\x13overridableFeatures\\x12B\\n\" +\n\t\"\\x0efixed_features\\x18\\x05 \\x01(\\v2\\x1b.google.protobuf.FeatureSetR\\rfixedFeaturesJ\\x04\\b\\x01\\x10\\x02J\\x04\\b\\x02\\x10\\x03R\\bfeatures\\\"\\xb5\\x02\\n\" +\n\t\"\\x0eSourceCodeInfo\\x12D\\n\" +\n\t\"\\blocation\\x18\\x01 \\x03(\\v2(.google.protobuf.SourceCodeInfo.LocationR\\blocation\\x1a\\xce\\x01\\n\" +\n\t\"\\bLocation\\x12\\x16\\n\" +\n\t\"\\x04path\\x18\\x01 \\x03(\\x05B\\x02\\x10\\x01R\\x04path\\x12\\x16\\n\" +\n\t\"\\x04span\\x18\\x02 \\x03(\\x05B\\x02\\x10\\x01R\\x04span\\x12)\\n\" +\n\t\"\\x10leading_comments\\x18\\x03 \\x01(\\tR\\x0fleadingComments\\x12+\\n\" +\n\t\"\\x11trailing_comments\\x18\\x04 \\x01(\\tR\\x10trailingComments\\x12:\\n\" +\n\t\"\\x19leading_detached_comments\\x18\\x06 \\x03(\\tR\\x17leadingDetachedComments*\\f\\b\\x80\\xec\\xca\\xff\\x01\\x10\\x81\\xec\\xca\\xff\\x01\\\"\\xd0\\x02\\n\" +\n\t\"\\x11GeneratedCodeInfo\\x12M\\n\" +\n\t\"\\n\" +\n\t\"annotation\\x18\\x01 \\x03(\\v2-.google.protobuf.GeneratedCodeInfo.AnnotationR\\n\" +\n\t\"annotation\\x1a\\xeb\\x01\\n\" +\n\t\"\\n\" +\n\t\"Annotation\\x12\\x16\\n\" +\n\t\"\\x04path\\x18\\x01 \\x03(\\x05B\\x02\\x10\\x01R\\x04path\\x12\\x1f\\n\" +\n\t\"\\vsource_file\\x18\\x02 \\x01(\\tR\\n\" +\n\t\"sourceFile\\x12\\x14\\n\" +\n\t\"\\x05begin\\x18\\x03 \\x01(\\x05R\\x05begin\\x12\\x10\\n\" +\n\t\"\\x03end\\x18\\x04 \\x01(\\x05R\\x03end\\x12R\\n\" +\n\t\"\\bsemantic\\x18\\x05 \\x01(\\x0e26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\\bsemantic\\\"(\\n\" +\n\t\"\\bSemantic\\x12\\b\\n\" +\n\t\"\\x04NONE\\x10\\x00\\x12\\a\\n\" +\n\t\"\\x03SET\\x10\\x01\\x12\\t\\n\" +\n\t\"\\x05ALIAS\\x10\\x02*\\xa7\\x02\\n\" +\n\t\"\\aEdition\\x12\\x13\\n\" +\n\t\"\\x0fEDITION_UNKNOWN\\x10\\x00\\x12\\x13\\n\" +\n\t\"\\x0eEDITION_LEGACY\\x10\\x84\\a\\x12\\x13\\n\" +\n\t\"\\x0eEDITION_PROTO2\\x10\\xe6\\a\\x12\\x13\\n\" +\n\t\"\\x0eEDITION_PROTO3\\x10\\xe7\\a\\x12\\x11\\n\" +\n\t\"\\fEDITION_2023\\x10\\xe8\\a\\x12\\x11\\n\" +\n\t\"\\fEDITION_2024\\x10\\xe9\\a\\x12\\x17\\n\" +\n\t\"\\x13EDITION_1_TEST_ONLY\\x10\\x01\\x12\\x17\\n\" +\n\t\"\\x13EDITION_2_TEST_ONLY\\x10\\x02\\x12\\x1d\\n\" +\n\t\"\\x17EDITION_99997_TEST_ONLY\\x10\\x9d\\x8d\\x06\\x12\\x1d\\n\" +\n\t\"\\x17EDITION_99998_TEST_ONLY\\x10\\x9e\\x8d\\x06\\x12\\x1d\\n\" +\n\t\"\\x17EDITION_99999_TEST_ONLY\\x10\\x9f\\x8d\\x06\\x12\\x13\\n\" +\n\t\"\\vEDITION_MAX\\x10\\xff\\xff\\xff\\xff\\a*U\\n\" +\n\t\"\\x10SymbolVisibility\\x12\\x14\\n\" +\n\t\"\\x10VISIBILITY_UNSET\\x10\\x00\\x12\\x14\\n\" +\n\t\"\\x10VISIBILITY_LOCAL\\x10\\x01\\x12\\x15\\n\" +\n\t\"\\x11VISIBILITY_EXPORT\\x10\\x02B~\\n\" +\n\t\"\\x13com.google.protobufB\\x10DescriptorProtosH\\x01Z-google.golang.org/protobuf/types/descriptorpb\\xf8\\x01\\x01\\xa2\\x02\\x03GPB\\xaa\\x02\\x1aGoogle.Protobuf.Reflection\"\n\nvar (\n\tfile_google_protobuf_descriptor_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_descriptor_proto_rawDescData []byte\n)\n\nfunc file_google_protobuf_descriptor_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_descriptor_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_descriptor_proto_rawDesc), len(file_google_protobuf_descriptor_proto_rawDesc)))\n\t})\n\treturn file_google_protobuf_descriptor_proto_rawDescData\n}\n\nvar file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 20)\nvar file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 34)\nvar file_google_protobuf_descriptor_proto_goTypes = []any{\n\t(Edition)(0),          // 0: google.protobuf.Edition\n\t(SymbolVisibility)(0), // 1: google.protobuf.SymbolVisibility\n\t(ExtensionRangeOptions_VerificationState)(0),              // 2: google.protobuf.ExtensionRangeOptions.VerificationState\n\t(FieldDescriptorProto_Type)(0),                            // 3: google.protobuf.FieldDescriptorProto.Type\n\t(FieldDescriptorProto_Label)(0),                           // 4: google.protobuf.FieldDescriptorProto.Label\n\t(FileOptions_OptimizeMode)(0),                             // 5: google.protobuf.FileOptions.OptimizeMode\n\t(FieldOptions_CType)(0),                                   // 6: google.protobuf.FieldOptions.CType\n\t(FieldOptions_JSType)(0),                                  // 7: google.protobuf.FieldOptions.JSType\n\t(FieldOptions_OptionRetention)(0),                         // 8: google.protobuf.FieldOptions.OptionRetention\n\t(FieldOptions_OptionTargetType)(0),                        // 9: google.protobuf.FieldOptions.OptionTargetType\n\t(MethodOptions_IdempotencyLevel)(0),                       // 10: google.protobuf.MethodOptions.IdempotencyLevel\n\t(FeatureSet_FieldPresence)(0),                             // 11: google.protobuf.FeatureSet.FieldPresence\n\t(FeatureSet_EnumType)(0),                                  // 12: google.protobuf.FeatureSet.EnumType\n\t(FeatureSet_RepeatedFieldEncoding)(0),                     // 13: google.protobuf.FeatureSet.RepeatedFieldEncoding\n\t(FeatureSet_Utf8Validation)(0),                            // 14: google.protobuf.FeatureSet.Utf8Validation\n\t(FeatureSet_MessageEncoding)(0),                           // 15: google.protobuf.FeatureSet.MessageEncoding\n\t(FeatureSet_JsonFormat)(0),                                // 16: google.protobuf.FeatureSet.JsonFormat\n\t(FeatureSet_EnforceNamingStyle)(0),                        // 17: google.protobuf.FeatureSet.EnforceNamingStyle\n\t(FeatureSet_VisibilityFeature_DefaultSymbolVisibility)(0), // 18: google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility\n\t(GeneratedCodeInfo_Annotation_Semantic)(0),                // 19: google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n\t(*FileDescriptorSet)(nil),                                 // 20: google.protobuf.FileDescriptorSet\n\t(*FileDescriptorProto)(nil),                               // 21: google.protobuf.FileDescriptorProto\n\t(*DescriptorProto)(nil),                                   // 22: google.protobuf.DescriptorProto\n\t(*ExtensionRangeOptions)(nil),                             // 23: google.protobuf.ExtensionRangeOptions\n\t(*FieldDescriptorProto)(nil),                              // 24: google.protobuf.FieldDescriptorProto\n\t(*OneofDescriptorProto)(nil),                              // 25: google.protobuf.OneofDescriptorProto\n\t(*EnumDescriptorProto)(nil),                               // 26: google.protobuf.EnumDescriptorProto\n\t(*EnumValueDescriptorProto)(nil),                          // 27: google.protobuf.EnumValueDescriptorProto\n\t(*ServiceDescriptorProto)(nil),                            // 28: google.protobuf.ServiceDescriptorProto\n\t(*MethodDescriptorProto)(nil),                             // 29: google.protobuf.MethodDescriptorProto\n\t(*FileOptions)(nil),                                       // 30: google.protobuf.FileOptions\n\t(*MessageOptions)(nil),                                    // 31: google.protobuf.MessageOptions\n\t(*FieldOptions)(nil),                                      // 32: google.protobuf.FieldOptions\n\t(*OneofOptions)(nil),                                      // 33: google.protobuf.OneofOptions\n\t(*EnumOptions)(nil),                                       // 34: google.protobuf.EnumOptions\n\t(*EnumValueOptions)(nil),                                  // 35: google.protobuf.EnumValueOptions\n\t(*ServiceOptions)(nil),                                    // 36: google.protobuf.ServiceOptions\n\t(*MethodOptions)(nil),                                     // 37: google.protobuf.MethodOptions\n\t(*UninterpretedOption)(nil),                               // 38: google.protobuf.UninterpretedOption\n\t(*FeatureSet)(nil),                                        // 39: google.protobuf.FeatureSet\n\t(*FeatureSetDefaults)(nil),                                // 40: google.protobuf.FeatureSetDefaults\n\t(*SourceCodeInfo)(nil),                                    // 41: google.protobuf.SourceCodeInfo\n\t(*GeneratedCodeInfo)(nil),                                 // 42: google.protobuf.GeneratedCodeInfo\n\t(*DescriptorProto_ExtensionRange)(nil),                    // 43: google.protobuf.DescriptorProto.ExtensionRange\n\t(*DescriptorProto_ReservedRange)(nil),                     // 44: google.protobuf.DescriptorProto.ReservedRange\n\t(*ExtensionRangeOptions_Declaration)(nil),                 // 45: google.protobuf.ExtensionRangeOptions.Declaration\n\t(*EnumDescriptorProto_EnumReservedRange)(nil),             // 46: google.protobuf.EnumDescriptorProto.EnumReservedRange\n\t(*FieldOptions_EditionDefault)(nil),                       // 47: google.protobuf.FieldOptions.EditionDefault\n\t(*FieldOptions_FeatureSupport)(nil),                       // 48: google.protobuf.FieldOptions.FeatureSupport\n\t(*UninterpretedOption_NamePart)(nil),                      // 49: google.protobuf.UninterpretedOption.NamePart\n\t(*FeatureSet_VisibilityFeature)(nil),                      // 50: google.protobuf.FeatureSet.VisibilityFeature\n\t(*FeatureSetDefaults_FeatureSetEditionDefault)(nil),       // 51: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n\t(*SourceCodeInfo_Location)(nil),                           // 52: google.protobuf.SourceCodeInfo.Location\n\t(*GeneratedCodeInfo_Annotation)(nil),                      // 53: google.protobuf.GeneratedCodeInfo.Annotation\n}\nvar file_google_protobuf_descriptor_proto_depIdxs = []int32{\n\t21, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto\n\t22, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto\n\t26, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto\n\t28, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto\n\t24, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto\n\t30, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions\n\t41, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo\n\t0,  // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition\n\t24, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto\n\t24, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto\n\t22, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto\n\t26, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto\n\t43, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange\n\t25, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto\n\t31, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions\n\t44, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange\n\t1,  // 16: google.protobuf.DescriptorProto.visibility:type_name -> google.protobuf.SymbolVisibility\n\t38, // 17: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t45, // 18: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration\n\t39, // 19: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet\n\t2,  // 20: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState\n\t4,  // 21: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label\n\t3,  // 22: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type\n\t32, // 23: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions\n\t33, // 24: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions\n\t27, // 25: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto\n\t34, // 26: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions\n\t46, // 27: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange\n\t1,  // 28: google.protobuf.EnumDescriptorProto.visibility:type_name -> google.protobuf.SymbolVisibility\n\t35, // 29: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions\n\t29, // 30: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto\n\t36, // 31: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions\n\t37, // 32: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions\n\t5,  // 33: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode\n\t39, // 34: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 35: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t39, // 36: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 37: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t6,  // 38: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType\n\t7,  // 39: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType\n\t8,  // 40: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention\n\t9,  // 41: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType\n\t47, // 42: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault\n\t39, // 43: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet\n\t48, // 44: google.protobuf.FieldOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport\n\t38, // 45: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t39, // 46: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 47: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t39, // 48: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 49: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t39, // 50: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet\n\t48, // 51: google.protobuf.EnumValueOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport\n\t38, // 52: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t39, // 53: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 54: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t10, // 55: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel\n\t39, // 56: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet\n\t38, // 57: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t49, // 58: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart\n\t11, // 59: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence\n\t12, // 60: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType\n\t13, // 61: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding\n\t14, // 62: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation\n\t15, // 63: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding\n\t16, // 64: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat\n\t17, // 65: google.protobuf.FeatureSet.enforce_naming_style:type_name -> google.protobuf.FeatureSet.EnforceNamingStyle\n\t18, // 66: google.protobuf.FeatureSet.default_symbol_visibility:type_name -> google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility\n\t51, // 67: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n\t0,  // 68: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition\n\t0,  // 69: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition\n\t52, // 70: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location\n\t53, // 71: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation\n\t23, // 72: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions\n\t0,  // 73: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition\n\t0,  // 74: google.protobuf.FieldOptions.FeatureSupport.edition_introduced:type_name -> google.protobuf.Edition\n\t0,  // 75: google.protobuf.FieldOptions.FeatureSupport.edition_deprecated:type_name -> google.protobuf.Edition\n\t0,  // 76: google.protobuf.FieldOptions.FeatureSupport.edition_removed:type_name -> google.protobuf.Edition\n\t0,  // 77: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition\n\t39, // 78: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features:type_name -> google.protobuf.FeatureSet\n\t39, // 79: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features:type_name -> google.protobuf.FeatureSet\n\t19, // 80: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n\t81, // [81:81] is the sub-list for method output_type\n\t81, // [81:81] is the sub-list for method input_type\n\t81, // [81:81] is the sub-list for extension type_name\n\t81, // [81:81] is the sub-list for extension extendee\n\t0,  // [0:81] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_descriptor_proto_init() }\nfunc file_google_protobuf_descriptor_proto_init() {\n\tif File_google_protobuf_descriptor_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_descriptor_proto_rawDesc), len(file_google_protobuf_descriptor_proto_rawDesc)),\n\t\t\tNumEnums:      20,\n\t\t\tNumMessages:   34,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_descriptor_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_descriptor_proto_depIdxs,\n\t\tEnumInfos:         file_google_protobuf_descriptor_proto_enumTypes,\n\t\tMessageInfos:      file_google_protobuf_descriptor_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_descriptor_proto = out.File\n\tfile_google_protobuf_descriptor_proto_goTypes = nil\n\tfile_google_protobuf_descriptor_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2023 Google Inc.  All rights reserved.\n//\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file or at\n// https://developers.google.com/open-source/licenses/bsd\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/go_features.proto\n\npackage gofeaturespb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tdescriptorpb \"google.golang.org/protobuf/types/descriptorpb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\tunsafe \"unsafe\"\n)\n\ntype GoFeatures_APILevel int32\n\nconst (\n\t// API_LEVEL_UNSPECIFIED results in selecting the OPEN API,\n\t// but needs to be a separate value to distinguish between\n\t// an explicitly set api level or a missing api level.\n\tGoFeatures_API_LEVEL_UNSPECIFIED GoFeatures_APILevel = 0\n\tGoFeatures_API_OPEN              GoFeatures_APILevel = 1\n\tGoFeatures_API_HYBRID            GoFeatures_APILevel = 2\n\tGoFeatures_API_OPAQUE            GoFeatures_APILevel = 3\n)\n\n// Enum value maps for GoFeatures_APILevel.\nvar (\n\tGoFeatures_APILevel_name = map[int32]string{\n\t\t0: \"API_LEVEL_UNSPECIFIED\",\n\t\t1: \"API_OPEN\",\n\t\t2: \"API_HYBRID\",\n\t\t3: \"API_OPAQUE\",\n\t}\n\tGoFeatures_APILevel_value = map[string]int32{\n\t\t\"API_LEVEL_UNSPECIFIED\": 0,\n\t\t\"API_OPEN\":              1,\n\t\t\"API_HYBRID\":            2,\n\t\t\"API_OPAQUE\":            3,\n\t}\n)\n\nfunc (x GoFeatures_APILevel) Enum() *GoFeatures_APILevel {\n\tp := new(GoFeatures_APILevel)\n\t*p = x\n\treturn p\n}\n\nfunc (x GoFeatures_APILevel) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GoFeatures_APILevel) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_go_features_proto_enumTypes[0].Descriptor()\n}\n\nfunc (GoFeatures_APILevel) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_go_features_proto_enumTypes[0]\n}\n\nfunc (x GoFeatures_APILevel) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *GoFeatures_APILevel) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = GoFeatures_APILevel(num)\n\treturn nil\n}\n\n// Deprecated: Use GoFeatures_APILevel.Descriptor instead.\nfunc (GoFeatures_APILevel) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0, 0}\n}\n\ntype GoFeatures_StripEnumPrefix int32\n\nconst (\n\tGoFeatures_STRIP_ENUM_PREFIX_UNSPECIFIED   GoFeatures_StripEnumPrefix = 0\n\tGoFeatures_STRIP_ENUM_PREFIX_KEEP          GoFeatures_StripEnumPrefix = 1\n\tGoFeatures_STRIP_ENUM_PREFIX_GENERATE_BOTH GoFeatures_StripEnumPrefix = 2\n\tGoFeatures_STRIP_ENUM_PREFIX_STRIP         GoFeatures_StripEnumPrefix = 3\n)\n\n// Enum value maps for GoFeatures_StripEnumPrefix.\nvar (\n\tGoFeatures_StripEnumPrefix_name = map[int32]string{\n\t\t0: \"STRIP_ENUM_PREFIX_UNSPECIFIED\",\n\t\t1: \"STRIP_ENUM_PREFIX_KEEP\",\n\t\t2: \"STRIP_ENUM_PREFIX_GENERATE_BOTH\",\n\t\t3: \"STRIP_ENUM_PREFIX_STRIP\",\n\t}\n\tGoFeatures_StripEnumPrefix_value = map[string]int32{\n\t\t\"STRIP_ENUM_PREFIX_UNSPECIFIED\":   0,\n\t\t\"STRIP_ENUM_PREFIX_KEEP\":          1,\n\t\t\"STRIP_ENUM_PREFIX_GENERATE_BOTH\": 2,\n\t\t\"STRIP_ENUM_PREFIX_STRIP\":         3,\n\t}\n)\n\nfunc (x GoFeatures_StripEnumPrefix) Enum() *GoFeatures_StripEnumPrefix {\n\tp := new(GoFeatures_StripEnumPrefix)\n\t*p = x\n\treturn p\n}\n\nfunc (x GoFeatures_StripEnumPrefix) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GoFeatures_StripEnumPrefix) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_go_features_proto_enumTypes[1].Descriptor()\n}\n\nfunc (GoFeatures_StripEnumPrefix) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_go_features_proto_enumTypes[1]\n}\n\nfunc (x GoFeatures_StripEnumPrefix) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *GoFeatures_StripEnumPrefix) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = GoFeatures_StripEnumPrefix(num)\n\treturn nil\n}\n\n// Deprecated: Use GoFeatures_StripEnumPrefix.Descriptor instead.\nfunc (GoFeatures_StripEnumPrefix) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0, 1}\n}\n\ntype GoFeatures struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Whether or not to generate the deprecated UnmarshalJSON method for enums.\n\t// Can only be true for proto using the Open Struct api.\n\tLegacyUnmarshalJsonEnum *bool `protobuf:\"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum\" json:\"legacy_unmarshal_json_enum,omitempty\"`\n\t// One of OPEN, HYBRID or OPAQUE.\n\tApiLevel        *GoFeatures_APILevel        `protobuf:\"varint,2,opt,name=api_level,json=apiLevel,enum=pb.GoFeatures_APILevel\" json:\"api_level,omitempty\"`\n\tStripEnumPrefix *GoFeatures_StripEnumPrefix `protobuf:\"varint,3,opt,name=strip_enum_prefix,json=stripEnumPrefix,enum=pb.GoFeatures_StripEnumPrefix\" json:\"strip_enum_prefix,omitempty\"`\n\tunknownFields   protoimpl.UnknownFields\n\tsizeCache       protoimpl.SizeCache\n}\n\nfunc (x *GoFeatures) Reset() {\n\t*x = GoFeatures{}\n\tmi := &file_google_protobuf_go_features_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GoFeatures) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GoFeatures) ProtoMessage() {}\n\nfunc (x *GoFeatures) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_go_features_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead.\nfunc (*GoFeatures) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool {\n\tif x != nil && x.LegacyUnmarshalJsonEnum != nil {\n\t\treturn *x.LegacyUnmarshalJsonEnum\n\t}\n\treturn false\n}\n\nfunc (x *GoFeatures) GetApiLevel() GoFeatures_APILevel {\n\tif x != nil && x.ApiLevel != nil {\n\t\treturn *x.ApiLevel\n\t}\n\treturn GoFeatures_API_LEVEL_UNSPECIFIED\n}\n\nfunc (x *GoFeatures) GetStripEnumPrefix() GoFeatures_StripEnumPrefix {\n\tif x != nil && x.StripEnumPrefix != nil {\n\t\treturn *x.StripEnumPrefix\n\t}\n\treturn GoFeatures_STRIP_ENUM_PREFIX_UNSPECIFIED\n}\n\nvar file_google_protobuf_go_features_proto_extTypes = []protoimpl.ExtensionInfo{\n\t{\n\t\tExtendedType:  (*descriptorpb.FeatureSet)(nil),\n\t\tExtensionType: (*GoFeatures)(nil),\n\t\tField:         1002,\n\t\tName:          \"pb.go\",\n\t\tTag:           \"bytes,1002,opt,name=go\",\n\t\tFilename:      \"google/protobuf/go_features.proto\",\n\t},\n}\n\n// Extension fields to descriptorpb.FeatureSet.\nvar (\n\t// optional pb.GoFeatures go = 1002;\n\tE_Go = &file_google_protobuf_go_features_proto_extTypes[0]\n)\n\nvar File_google_protobuf_go_features_proto protoreflect.FileDescriptor\n\nconst file_google_protobuf_go_features_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\"!google/protobuf/go_features.proto\\x12\\x02pb\\x1a google/protobuf/descriptor.proto\\\"\\xab\\x05\\n\" +\n\t\"\\n\" +\n\t\"GoFeatures\\x12\\xbe\\x01\\n\" +\n\t\"\\x1alegacy_unmarshal_json_enum\\x18\\x01 \\x01(\\bB\\x80\\x01\\x88\\x01\\x01\\x98\\x01\\x06\\x98\\x01\\x01\\xa2\\x01\\t\\x12\\x04true\\x18\\x84\\a\\xa2\\x01\\n\" +\n\t\"\\x12\\x05false\\x18\\xe7\\a\\xb2\\x01[\\b\\xe8\\a\\x10\\xe8\\a\\x1aSThe legacy UnmarshalJSON API is deprecated and will be removed in a future edition.R\\x17legacyUnmarshalJsonEnum\\x12t\\n\" +\n\t\"\\tapi_level\\x18\\x02 \\x01(\\x0e2\\x17.pb.GoFeatures.APILevelB>\\x88\\x01\\x01\\x98\\x01\\x03\\x98\\x01\\x01\\xa2\\x01\\x1a\\x12\\x15API_LEVEL_UNSPECIFIED\\x18\\x84\\a\\xa2\\x01\\x0f\\x12\\n\" +\n\t\"API_OPAQUE\\x18\\xe9\\a\\xb2\\x01\\x03\\b\\xe8\\aR\\bapiLevel\\x12|\\n\" +\n\t\"\\x11strip_enum_prefix\\x18\\x03 \\x01(\\x0e2\\x1e.pb.GoFeatures.StripEnumPrefixB0\\x88\\x01\\x01\\x98\\x01\\x06\\x98\\x01\\a\\x98\\x01\\x01\\xa2\\x01\\x1b\\x12\\x16STRIP_ENUM_PREFIX_KEEP\\x18\\x84\\a\\xb2\\x01\\x03\\b\\xe9\\aR\\x0fstripEnumPrefix\\\"S\\n\" +\n\t\"\\bAPILevel\\x12\\x19\\n\" +\n\t\"\\x15API_LEVEL_UNSPECIFIED\\x10\\x00\\x12\\f\\n\" +\n\t\"\\bAPI_OPEN\\x10\\x01\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"API_HYBRID\\x10\\x02\\x12\\x0e\\n\" +\n\t\"\\n\" +\n\t\"API_OPAQUE\\x10\\x03\\\"\\x92\\x01\\n\" +\n\t\"\\x0fStripEnumPrefix\\x12!\\n\" +\n\t\"\\x1dSTRIP_ENUM_PREFIX_UNSPECIFIED\\x10\\x00\\x12\\x1a\\n\" +\n\t\"\\x16STRIP_ENUM_PREFIX_KEEP\\x10\\x01\\x12#\\n\" +\n\t\"\\x1fSTRIP_ENUM_PREFIX_GENERATE_BOTH\\x10\\x02\\x12\\x1b\\n\" +\n\t\"\\x17STRIP_ENUM_PREFIX_STRIP\\x10\\x03:<\\n\" +\n\t\"\\x02go\\x12\\x1b.google.protobuf.FeatureSet\\x18\\xea\\a \\x01(\\v2\\x0e.pb.GoFeaturesR\\x02goB/Z-google.golang.org/protobuf/types/gofeaturespb\"\n\nvar (\n\tfile_google_protobuf_go_features_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_go_features_proto_rawDescData []byte\n)\n\nfunc file_google_protobuf_go_features_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_go_features_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_go_features_proto_rawDesc), len(file_google_protobuf_go_features_proto_rawDesc)))\n\t})\n\treturn file_google_protobuf_go_features_proto_rawDescData\n}\n\nvar file_google_protobuf_go_features_proto_enumTypes = make([]protoimpl.EnumInfo, 2)\nvar file_google_protobuf_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_go_features_proto_goTypes = []any{\n\t(GoFeatures_APILevel)(0),        // 0: pb.GoFeatures.APILevel\n\t(GoFeatures_StripEnumPrefix)(0), // 1: pb.GoFeatures.StripEnumPrefix\n\t(*GoFeatures)(nil),              // 2: pb.GoFeatures\n\t(*descriptorpb.FeatureSet)(nil), // 3: google.protobuf.FeatureSet\n}\nvar file_google_protobuf_go_features_proto_depIdxs = []int32{\n\t0, // 0: pb.GoFeatures.api_level:type_name -> pb.GoFeatures.APILevel\n\t1, // 1: pb.GoFeatures.strip_enum_prefix:type_name -> pb.GoFeatures.StripEnumPrefix\n\t3, // 2: pb.go:extendee -> google.protobuf.FeatureSet\n\t2, // 3: pb.go:type_name -> pb.GoFeatures\n\t4, // [4:4] is the sub-list for method output_type\n\t4, // [4:4] is the sub-list for method input_type\n\t3, // [3:4] is the sub-list for extension type_name\n\t2, // [2:3] is the sub-list for extension extendee\n\t0, // [0:2] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_go_features_proto_init() }\nfunc file_google_protobuf_go_features_proto_init() {\n\tif File_google_protobuf_go_features_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_go_features_proto_rawDesc), len(file_google_protobuf_go_features_proto_rawDesc)),\n\t\t\tNumEnums:      2,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 1,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_go_features_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_go_features_proto_depIdxs,\n\t\tEnumInfos:         file_google_protobuf_go_features_proto_enumTypes,\n\t\tMessageInfos:      file_google_protobuf_go_features_proto_msgTypes,\n\t\tExtensionInfos:    file_google_protobuf_go_features_proto_extTypes,\n\t}.Build()\n\tFile_google_protobuf_go_features_proto = out.File\n\tfile_google_protobuf_go_features_proto_goTypes = nil\n\tfile_google_protobuf_go_features_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/any.proto\n\n// Package anypb contains generated types for google/protobuf/any.proto.\n//\n// The Any message is a dynamic representation of any other message value.\n// It is functionally a tuple of the full name of the remote message type and\n// the serialized bytes of the remote message value.\n//\n// # Constructing an Any\n//\n// An Any message containing another message value is constructed using New:\n//\n//\tany, err := anypb.New(m)\n//\tif err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of any\n//\n// # Unmarshaling an Any\n//\n// With a populated Any message, the underlying message can be serialized into\n// a remote concrete message value in a few ways.\n//\n// If the exact concrete type is known, then a new (or pre-existing) instance\n// of that message can be passed to the UnmarshalTo method:\n//\n//\tm := new(foopb.MyMessage)\n//\tif err := any.UnmarshalTo(m); err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of m\n//\n// If the exact concrete type is not known, then the UnmarshalNew method can be\n// used to unmarshal the contents into a new instance of the remote message type:\n//\n//\tm, err := any.UnmarshalNew()\n//\tif err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of m\n//\n// UnmarshalNew uses the global type registry to resolve the message type and\n// construct a new instance of that message to unmarshal into. In order for a\n// message type to appear in the global registry, the Go type representing that\n// protobuf message type must be linked into the Go binary. For messages\n// generated by protoc-gen-go, this is achieved through an import of the\n// generated Go package representing a .proto file.\n//\n// A common pattern with UnmarshalNew is to use a type switch with the resulting\n// proto.Message value:\n//\n//\tswitch m := m.(type) {\n//\tcase *foopb.MyMessage:\n//\t\t... // make use of m as a *foopb.MyMessage\n//\tcase *barpb.OtherMessage:\n//\t\t... // make use of m as a *barpb.OtherMessage\n//\tcase *bazpb.SomeMessage:\n//\t\t... // make use of m as a *bazpb.SomeMessage\n//\t}\n//\n// This pattern ensures that the generated packages containing the message types\n// listed in the case clauses are linked into the Go binary and therefore also\n// registered in the global registry.\n//\n// # Type checking an Any\n//\n// In order to type check whether an Any message represents some other message,\n// then use the MessageIs method:\n//\n//\tif any.MessageIs((*foopb.MyMessage)(nil)) {\n//\t\t... // make use of any, knowing that it contains a foopb.MyMessage\n//\t}\n//\n// The MessageIs method can also be used with an allocated instance of the target\n// message type if the intention is to unmarshal into it if the type matches:\n//\n//\tm := new(foopb.MyMessage)\n//\tif any.MessageIs(m) {\n//\t\tif err := any.UnmarshalTo(m); err != nil {\n//\t\t\t... // handle error\n//\t\t}\n//\t\t... // make use of m\n//\t}\npackage anypb\n\nimport (\n\tproto \"google.golang.org/protobuf/proto\"\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoregistry \"google.golang.org/protobuf/reflect/protoregistry\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\tsync \"sync\"\n\tunsafe \"unsafe\"\n)\n\n// `Any` contains an arbitrary serialized protocol buffer message along with a\n// URL that describes the type of the serialized message.\n//\n// Protobuf library provides support to pack/unpack Any values in the form\n// of utility functions or additional generated methods of the Any type.\n//\n// Example 1: Pack and unpack a message in C++.\n//\n//\tFoo foo = ...;\n//\tAny any;\n//\tany.PackFrom(foo);\n//\t...\n//\tif (any.UnpackTo(&foo)) {\n//\t  ...\n//\t}\n//\n// Example 2: Pack and unpack a message in Java.\n//\n//\t   Foo foo = ...;\n//\t   Any any = Any.pack(foo);\n//\t   ...\n//\t   if (any.is(Foo.class)) {\n//\t     foo = any.unpack(Foo.class);\n//\t   }\n//\t   // or ...\n//\t   if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n//\t     foo = any.unpack(Foo.getDefaultInstance());\n//\t   }\n//\n//\tExample 3: Pack and unpack a message in Python.\n//\n//\t   foo = Foo(...)\n//\t   any = Any()\n//\t   any.Pack(foo)\n//\t   ...\n//\t   if any.Is(Foo.DESCRIPTOR):\n//\t     any.Unpack(foo)\n//\t     ...\n//\n//\tExample 4: Pack and unpack a message in Go\n//\n//\t    foo := &pb.Foo{...}\n//\t    any, err := anypb.New(foo)\n//\t    if err != nil {\n//\t      ...\n//\t    }\n//\t    ...\n//\t    foo := &pb.Foo{}\n//\t    if err := any.UnmarshalTo(foo); err != nil {\n//\t      ...\n//\t    }\n//\n// The pack methods provided by protobuf library will by default use\n// 'type.googleapis.com/full.type.name' as the type URL and the unpack\n// methods only use the fully qualified type name after the last '/'\n// in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n// name \"y.z\".\n//\n// JSON\n// ====\n// The JSON representation of an `Any` value uses the regular\n// representation of the deserialized, embedded message, with an\n// additional field `@type` which contains the type URL. Example:\n//\n//\tpackage google.profile;\n//\tmessage Person {\n//\t  string first_name = 1;\n//\t  string last_name = 2;\n//\t}\n//\n//\t{\n//\t  \"@type\": \"type.googleapis.com/google.profile.Person\",\n//\t  \"firstName\": <string>,\n//\t  \"lastName\": <string>\n//\t}\n//\n// If the embedded message type is well-known and has a custom JSON\n// representation, that representation will be embedded adding a field\n// `value` which holds the custom JSON in addition to the `@type`\n// field. Example (for message [google.protobuf.Duration][]):\n//\n//\t{\n//\t  \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n//\t  \"value\": \"1.212s\"\n//\t}\ntype Any struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// A URL/resource name that uniquely identifies the type of the serialized\n\t// protocol buffer message. This string must contain at least\n\t// one \"/\" character. The last segment of the URL's path must represent\n\t// the fully qualified name of the type (as in\n\t// `path/google.protobuf.Duration`). The name should be in a canonical form\n\t// (e.g., leading \".\" is not accepted).\n\t//\n\t// In practice, teams usually precompile into the binary all types that they\n\t// expect it to use in the context of Any. However, for URLs which use the\n\t// scheme `http`, `https`, or no scheme, one can optionally set up a type\n\t// server that maps type URLs to message definitions as follows:\n\t//\n\t//   - If no scheme is provided, `https` is assumed.\n\t//   - An HTTP GET on the URL must yield a [google.protobuf.Type][]\n\t//     value in binary format, or produce an error.\n\t//   - Applications are allowed to cache lookup results based on the\n\t//     URL, or have them precompiled into a binary to avoid any\n\t//     lookup. Therefore, binary compatibility needs to be preserved\n\t//     on changes to types. (Use versioned type names to manage\n\t//     breaking changes.)\n\t//\n\t// Note: this functionality is not currently available in the official\n\t// protobuf release, and it is not used for type URLs beginning with\n\t// type.googleapis.com. As of May 2023, there are no widely used type server\n\t// implementations and no plans to implement one.\n\t//\n\t// Schemes other than `http`, `https` (or the empty scheme) might be\n\t// used with implementation specific semantics.\n\tTypeUrl string `protobuf:\"bytes,1,opt,name=type_url,json=typeUrl,proto3\" json:\"type_url,omitempty\"`\n\t// Must be a valid serialized protocol buffer of the above specified type.\n\tValue         []byte `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\n// New marshals src into a new Any instance.\nfunc New(src proto.Message) (*Any, error) {\n\tdst := new(Any)\n\tif err := dst.MarshalFrom(src); err != nil {\n\t\treturn nil, err\n\t}\n\treturn dst, nil\n}\n\n// MarshalFrom marshals src into dst as the underlying message\n// using the provided marshal options.\n//\n// If no options are specified, call dst.MarshalFrom instead.\nfunc MarshalFrom(dst *Any, src proto.Message, opts proto.MarshalOptions) error {\n\tconst urlPrefix = \"type.googleapis.com/\"\n\tif src == nil {\n\t\treturn protoimpl.X.NewError(\"invalid nil source message\")\n\t}\n\tb, err := opts.Marshal(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName())\n\tdst.Value = b\n\treturn nil\n}\n\n// UnmarshalTo unmarshals the underlying message from src into dst\n// using the provided unmarshal options.\n// It reports an error if dst is not of the right message type.\n//\n// If no options are specified, call src.UnmarshalTo instead.\nfunc UnmarshalTo(src *Any, dst proto.Message, opts proto.UnmarshalOptions) error {\n\tif src == nil {\n\t\treturn protoimpl.X.NewError(\"invalid nil source message\")\n\t}\n\tif !src.MessageIs(dst) {\n\t\tgot := dst.ProtoReflect().Descriptor().FullName()\n\t\twant := src.MessageName()\n\t\treturn protoimpl.X.NewError(\"mismatched message type: got %q, want %q\", got, want)\n\t}\n\treturn opts.Unmarshal(src.GetValue(), dst)\n}\n\n// UnmarshalNew unmarshals the underlying message from src into dst,\n// which is newly created message using a type resolved from the type URL.\n// The message type is resolved according to opt.Resolver,\n// which should implement protoregistry.MessageTypeResolver.\n// It reports an error if the underlying message type could not be resolved.\n//\n// If no options are specified, call src.UnmarshalNew instead.\nfunc UnmarshalNew(src *Any, opts proto.UnmarshalOptions) (dst proto.Message, err error) {\n\tif src.GetTypeUrl() == \"\" {\n\t\treturn nil, protoimpl.X.NewError(\"invalid empty type URL\")\n\t}\n\tif opts.Resolver == nil {\n\t\topts.Resolver = protoregistry.GlobalTypes\n\t}\n\tr, ok := opts.Resolver.(protoregistry.MessageTypeResolver)\n\tif !ok {\n\t\treturn nil, protoregistry.NotFound\n\t}\n\tmt, err := r.FindMessageByURL(src.GetTypeUrl())\n\tif err != nil {\n\t\tif err == protoregistry.NotFound {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, protoimpl.X.NewError(\"could not resolve %q: %v\", src.GetTypeUrl(), err)\n\t}\n\tdst = mt.New().Interface()\n\treturn dst, opts.Unmarshal(src.GetValue(), dst)\n}\n\n// MessageIs reports whether the underlying message is of the same type as m.\nfunc (x *Any) MessageIs(m proto.Message) bool {\n\tif m == nil {\n\t\treturn false\n\t}\n\turl := x.GetTypeUrl()\n\tname := string(m.ProtoReflect().Descriptor().FullName())\n\tif !strings.HasSuffix(url, name) {\n\t\treturn false\n\t}\n\treturn len(url) == len(name) || url[len(url)-len(name)-1] == '/'\n}\n\n// MessageName reports the full name of the underlying message,\n// returning an empty string if invalid.\nfunc (x *Any) MessageName() protoreflect.FullName {\n\turl := x.GetTypeUrl()\n\tname := protoreflect.FullName(url)\n\tif i := strings.LastIndexByte(url, '/'); i >= 0 {\n\t\tname = name[i+len(\"/\"):]\n\t}\n\tif !name.IsValid() {\n\t\treturn \"\"\n\t}\n\treturn name\n}\n\n// MarshalFrom marshals m into x as the underlying message.\nfunc (x *Any) MarshalFrom(m proto.Message) error {\n\treturn MarshalFrom(x, m, proto.MarshalOptions{})\n}\n\n// UnmarshalTo unmarshals the contents of the underlying message of x into m.\n// It resets m before performing the unmarshal operation.\n// It reports an error if m is not of the right message type.\nfunc (x *Any) UnmarshalTo(m proto.Message) error {\n\treturn UnmarshalTo(x, m, proto.UnmarshalOptions{})\n}\n\n// UnmarshalNew unmarshals the contents of the underlying message of x into\n// a newly allocated message of the specified type.\n// It reports an error if the underlying message type could not be resolved.\nfunc (x *Any) UnmarshalNew() (proto.Message, error) {\n\treturn UnmarshalNew(x, proto.UnmarshalOptions{})\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tmi := &file_google_protobuf_any_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_any_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_any_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Any) GetTypeUrl() string {\n\tif x != nil {\n\t\treturn x.TypeUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Any) GetValue() []byte {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nvar File_google_protobuf_any_proto protoreflect.FileDescriptor\n\nconst file_google_protobuf_any_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\"\\x19google/protobuf/any.proto\\x12\\x0fgoogle.protobuf\\\"6\\n\" +\n\t\"\\x03Any\\x12\\x19\\n\" +\n\t\"\\btype_url\\x18\\x01 \\x01(\\tR\\atypeUrl\\x12\\x14\\n\" +\n\t\"\\x05value\\x18\\x02 \\x01(\\fR\\x05valueBv\\n\" +\n\t\"\\x13com.google.protobufB\\bAnyProtoP\\x01Z,google.golang.org/protobuf/types/known/anypb\\xa2\\x02\\x03GPB\\xaa\\x02\\x1eGoogle.Protobuf.WellKnownTypesb\\x06proto3\"\n\nvar (\n\tfile_google_protobuf_any_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_any_proto_rawDescData []byte\n)\n\nfunc file_google_protobuf_any_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_any_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc)))\n\t})\n\treturn file_google_protobuf_any_proto_rawDescData\n}\n\nvar file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_any_proto_goTypes = []any{\n\t(*Any)(nil), // 0: google.protobuf.Any\n}\nvar file_google_protobuf_any_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_any_proto_init() }\nfunc file_google_protobuf_any_proto_init() {\n\tif File_google_protobuf_any_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc)),\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_any_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_any_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_any_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_any_proto = out.File\n\tfile_google_protobuf_any_proto_goTypes = nil\n\tfile_google_protobuf_any_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/duration.proto\n\n// Package durationpb contains generated types for google/protobuf/duration.proto.\n//\n// The Duration message represents a signed span of time.\n//\n// # Conversion to a Go Duration\n//\n// The AsDuration method can be used to convert a Duration message to a\n// standard Go time.Duration value:\n//\n//\td := dur.AsDuration()\n//\t... // make use of d as a time.Duration\n//\n// Converting to a time.Duration is a common operation so that the extensive\n// set of time-based operations provided by the time package can be leveraged.\n// See https://golang.org/pkg/time for more information.\n//\n// The AsDuration method performs the conversion on a best-effort basis.\n// Durations with denormal values (e.g., nanoseconds beyond -99999999 and\n// +99999999, inclusive; or seconds and nanoseconds with opposite signs)\n// are normalized during the conversion to a time.Duration. To manually check for\n// invalid Duration per the documented limitations in duration.proto,\n// additionally call the CheckValid method:\n//\n//\tif err := dur.CheckValid(); err != nil {\n//\t\t... // handle error\n//\t}\n//\n// Note that the documented limitations in duration.proto does not protect a\n// Duration from overflowing the representable range of a time.Duration in Go.\n// The AsDuration method uses saturation arithmetic such that an overflow clamps\n// the resulting value to the closest representable value (e.g., math.MaxInt64\n// for positive overflow and math.MinInt64 for negative overflow).\n//\n// # Conversion from a Go Duration\n//\n// The durationpb.New function can be used to construct a Duration message\n// from a standard Go time.Duration value:\n//\n//\tdur := durationpb.New(d)\n//\t... // make use of d as a *durationpb.Duration\npackage durationpb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\ttime \"time\"\n\tunsafe \"unsafe\"\n)\n\n// A Duration represents a signed, fixed-length span of time represented\n// as a count of seconds and fractions of seconds at nanosecond\n// resolution. It is independent of any calendar and concepts like \"day\"\n// or \"month\". It is related to Timestamp in that the difference between\n// two Timestamp values is a Duration and it can be added or subtracted\n// from a Timestamp. Range is approximately +-10,000 years.\n//\n// # Examples\n//\n// Example 1: Compute Duration from two Timestamps in pseudo code.\n//\n//\tTimestamp start = ...;\n//\tTimestamp end = ...;\n//\tDuration duration = ...;\n//\n//\tduration.seconds = end.seconds - start.seconds;\n//\tduration.nanos = end.nanos - start.nanos;\n//\n//\tif (duration.seconds < 0 && duration.nanos > 0) {\n//\t  duration.seconds += 1;\n//\t  duration.nanos -= 1000000000;\n//\t} else if (duration.seconds > 0 && duration.nanos < 0) {\n//\t  duration.seconds -= 1;\n//\t  duration.nanos += 1000000000;\n//\t}\n//\n// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n//\n//\tTimestamp start = ...;\n//\tDuration duration = ...;\n//\tTimestamp end = ...;\n//\n//\tend.seconds = start.seconds + duration.seconds;\n//\tend.nanos = start.nanos + duration.nanos;\n//\n//\tif (end.nanos < 0) {\n//\t  end.seconds -= 1;\n//\t  end.nanos += 1000000000;\n//\t} else if (end.nanos >= 1000000000) {\n//\t  end.seconds += 1;\n//\t  end.nanos -= 1000000000;\n//\t}\n//\n// Example 3: Compute Duration from datetime.timedelta in Python.\n//\n//\ttd = datetime.timedelta(days=3, minutes=10)\n//\tduration = Duration()\n//\tduration.FromTimedelta(td)\n//\n// # JSON Mapping\n//\n// In JSON format, the Duration type is encoded as a string rather than an\n// object, where the string ends in the suffix \"s\" (indicating seconds) and\n// is preceded by the number of seconds, with nanoseconds expressed as\n// fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n// encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n// be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n// microsecond should be expressed in JSON format as \"3.000001s\".\ntype Duration struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Signed seconds of the span of time. Must be from -315,576,000,000\n\t// to +315,576,000,000 inclusive. Note: these bounds are computed from:\n\t// 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\t// Signed fractions of a second at nanosecond resolution of the span\n\t// of time. Durations less than one second are represented with a 0\n\t// `seconds` field and a positive or negative `nanos` field. For durations\n\t// of one second or more, a non-zero value for the `nanos` field must be\n\t// of the same sign as the `seconds` field. Must be from -999,999,999\n\t// to +999,999,999 inclusive.\n\tNanos         int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\n// New constructs a new Duration from the provided time.Duration.\nfunc New(d time.Duration) *Duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &Duration{Seconds: int64(secs), Nanos: int32(nanos)}\n}\n\n// AsDuration converts x to a time.Duration,\n// returning the closest duration value in the event of overflow.\nfunc (x *Duration) AsDuration() time.Duration {\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\td := time.Duration(secs) * time.Second\n\toverflow := d/time.Second != time.Duration(secs)\n\td += time.Duration(nanos) * time.Nanosecond\n\toverflow = overflow || (secs < 0 && nanos < 0 && d > 0)\n\toverflow = overflow || (secs > 0 && nanos > 0 && d < 0)\n\tif overflow {\n\t\tswitch {\n\t\tcase secs < 0:\n\t\t\treturn time.Duration(math.MinInt64)\n\t\tcase secs > 0:\n\t\t\treturn time.Duration(math.MaxInt64)\n\t\t}\n\t}\n\treturn d\n}\n\n// IsValid reports whether the duration is valid.\n// It is equivalent to CheckValid == nil.\nfunc (x *Duration) IsValid() bool {\n\treturn x.check() == 0\n}\n\n// CheckValid returns an error if the duration is invalid.\n// In particular, it checks whether the value is within the range of\n// -10000 years to +10000 years inclusive.\n// An error is reported for a nil Duration.\nfunc (x *Duration) CheckValid() error {\n\tswitch x.check() {\n\tcase invalidNil:\n\t\treturn protoimpl.X.NewError(\"invalid nil Duration\")\n\tcase invalidUnderflow:\n\t\treturn protoimpl.X.NewError(\"duration (%v) exceeds -10000 years\", x)\n\tcase invalidOverflow:\n\t\treturn protoimpl.X.NewError(\"duration (%v) exceeds +10000 years\", x)\n\tcase invalidNanosRange:\n\t\treturn protoimpl.X.NewError(\"duration (%v) has out-of-range nanos\", x)\n\tcase invalidNanosSign:\n\t\treturn protoimpl.X.NewError(\"duration (%v) has seconds and nanos with different signs\", x)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nconst (\n\t_ = iota\n\tinvalidNil\n\tinvalidUnderflow\n\tinvalidOverflow\n\tinvalidNanosRange\n\tinvalidNanosSign\n)\n\nfunc (x *Duration) check() uint {\n\tconst absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\tswitch {\n\tcase x == nil:\n\t\treturn invalidNil\n\tcase secs < -absDuration:\n\t\treturn invalidUnderflow\n\tcase secs > +absDuration:\n\t\treturn invalidOverflow\n\tcase nanos <= -1e9 || nanos >= +1e9:\n\t\treturn invalidNanosRange\n\tcase (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0):\n\t\treturn invalidNanosSign\n\tdefault:\n\t\treturn 0\n\t}\n}\n\nfunc (x *Duration) Reset() {\n\t*x = Duration{}\n\tmi := &file_google_protobuf_duration_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Duration) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Duration) ProtoMessage() {}\n\nfunc (x *Duration) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_duration_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Duration.ProtoReflect.Descriptor instead.\nfunc (*Duration) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_duration_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Duration) GetSeconds() int64 {\n\tif x != nil {\n\t\treturn x.Seconds\n\t}\n\treturn 0\n}\n\nfunc (x *Duration) GetNanos() int32 {\n\tif x != nil {\n\t\treturn x.Nanos\n\t}\n\treturn 0\n}\n\nvar File_google_protobuf_duration_proto protoreflect.FileDescriptor\n\nconst file_google_protobuf_duration_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\"\\x1egoogle/protobuf/duration.proto\\x12\\x0fgoogle.protobuf\\\":\\n\" +\n\t\"\\bDuration\\x12\\x18\\n\" +\n\t\"\\aseconds\\x18\\x01 \\x01(\\x03R\\aseconds\\x12\\x14\\n\" +\n\t\"\\x05nanos\\x18\\x02 \\x01(\\x05R\\x05nanosB\\x83\\x01\\n\" +\n\t\"\\x13com.google.protobufB\\rDurationProtoP\\x01Z1google.golang.org/protobuf/types/known/durationpb\\xf8\\x01\\x01\\xa2\\x02\\x03GPB\\xaa\\x02\\x1eGoogle.Protobuf.WellKnownTypesb\\x06proto3\"\n\nvar (\n\tfile_google_protobuf_duration_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_duration_proto_rawDescData []byte\n)\n\nfunc file_google_protobuf_duration_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_duration_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_duration_proto_rawDesc), len(file_google_protobuf_duration_proto_rawDesc)))\n\t})\n\treturn file_google_protobuf_duration_proto_rawDescData\n}\n\nvar file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_duration_proto_goTypes = []any{\n\t(*Duration)(nil), // 0: google.protobuf.Duration\n}\nvar file_google_protobuf_duration_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_duration_proto_init() }\nfunc file_google_protobuf_duration_proto_init() {\n\tif File_google_protobuf_duration_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_duration_proto_rawDesc), len(file_google_protobuf_duration_proto_rawDesc)),\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_duration_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_duration_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_duration_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_duration_proto = out.File\n\tfile_google_protobuf_duration_proto_goTypes = nil\n\tfile_google_protobuf_duration_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/timestamp.proto\n\n// Package timestamppb contains generated types for google/protobuf/timestamp.proto.\n//\n// The Timestamp message represents a timestamp,\n// an instant in time since the Unix epoch (January 1st, 1970).\n//\n// # Conversion to a Go Time\n//\n// The AsTime method can be used to convert a Timestamp message to a\n// standard Go time.Time value in UTC:\n//\n//\tt := ts.AsTime()\n//\t... // make use of t as a time.Time\n//\n// Converting to a time.Time is a common operation so that the extensive\n// set of time-based operations provided by the time package can be leveraged.\n// See https://golang.org/pkg/time for more information.\n//\n// The AsTime method performs the conversion on a best-effort basis. Timestamps\n// with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive)\n// are normalized during the conversion to a time.Time. To manually check for\n// invalid Timestamps per the documented limitations in timestamp.proto,\n// additionally call the CheckValid method:\n//\n//\tif err := ts.CheckValid(); err != nil {\n//\t\t... // handle error\n//\t}\n//\n// # Conversion from a Go Time\n//\n// The timestamppb.New function can be used to construct a Timestamp message\n// from a standard Go time.Time value:\n//\n//\tts := timestamppb.New(t)\n//\t... // make use of ts as a *timestamppb.Timestamp\n//\n// In order to construct a Timestamp representing the current time, use Now:\n//\n//\tts := timestamppb.Now()\n//\t... // make use of ts as a *timestamppb.Timestamp\npackage timestamppb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\ttime \"time\"\n\tunsafe \"unsafe\"\n)\n\n// A Timestamp represents a point in time independent of any time zone or local\n// calendar, encoded as a count of seconds and fractions of seconds at\n// nanosecond resolution. The count is relative to an epoch at UTC midnight on\n// January 1, 1970, in the proleptic Gregorian calendar which extends the\n// Gregorian calendar backwards to year one.\n//\n// All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n// second table is needed for interpretation, using a [24-hour linear\n// smear](https://developers.google.com/time/smear).\n//\n// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n// restricting to that range, we ensure that we can convert to and from [RFC\n// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n//\n// # Examples\n//\n// Example 1: Compute Timestamp from POSIX `time()`.\n//\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds(time(NULL));\n//\ttimestamp.set_nanos(0);\n//\n// Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n//\n//\tstruct timeval tv;\n//\tgettimeofday(&tv, NULL);\n//\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds(tv.tv_sec);\n//\ttimestamp.set_nanos(tv.tv_usec * 1000);\n//\n// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n//\n//\tFILETIME ft;\n//\tGetSystemTimeAsFileTime(&ft);\n//\tUINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n//\n//\t// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n//\t// is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n//\ttimestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n//\n// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n//\n//\tlong millis = System.currentTimeMillis();\n//\n//\tTimestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n//\t    .setNanos((int) ((millis % 1000) * 1000000)).build();\n//\n// Example 5: Compute Timestamp from Java `Instant.now()`.\n//\n//\tInstant now = Instant.now();\n//\n//\tTimestamp timestamp =\n//\t    Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n//\t        .setNanos(now.getNano()).build();\n//\n// Example 6: Compute Timestamp from current time in Python.\n//\n//\ttimestamp = Timestamp()\n//\ttimestamp.GetCurrentTime()\n//\n// # JSON Mapping\n//\n// In JSON format, the Timestamp type is encoded as a string in the\n// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n// format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n// where {year} is always expressed using four digits while {month}, {day},\n// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n// are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n// is required. A proto3 JSON serializer should always use UTC (as indicated by\n// \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n// able to accept both UTC and other timezones (as indicated by an offset).\n//\n// For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n// 01:30 UTC on January 15, 2017.\n//\n// In JavaScript, one can convert a Date object to this format using the\n// standard\n// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n// method. In Python, a standard `datetime.datetime` object can be converted\n// to this format using\n// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n// the Joda Time's [`ISODateTimeFormat.dateTime()`](\n// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n// ) to obtain a formatter capable of generating timestamps in this format.\ntype Timestamp struct {\n\tstate protoimpl.MessageState `protogen:\"open.v1\"`\n\t// Represents seconds of UTC time since Unix epoch\n\t// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n\t// 9999-12-31T23:59:59Z inclusive.\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\t// Non-negative fractions of a second at nanosecond resolution. Negative\n\t// second values with fractions must still have non-negative nanos values\n\t// that count forward in time. Must be from 0 to 999,999,999\n\t// inclusive.\n\tNanos         int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n\tunknownFields protoimpl.UnknownFields\n\tsizeCache     protoimpl.SizeCache\n}\n\n// Now constructs a new Timestamp from the current time.\nfunc Now() *Timestamp {\n\treturn New(time.Now())\n}\n\n// New constructs a new Timestamp from the provided time.Time.\nfunc New(t time.Time) *Timestamp {\n\treturn &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())}\n}\n\n// AsTime converts x to a time.Time.\nfunc (x *Timestamp) AsTime() time.Time {\n\treturn time.Unix(int64(x.GetSeconds()), int64(x.GetNanos())).UTC()\n}\n\n// IsValid reports whether the timestamp is valid.\n// It is equivalent to CheckValid == nil.\nfunc (x *Timestamp) IsValid() bool {\n\treturn x.check() == 0\n}\n\n// CheckValid returns an error if the timestamp is invalid.\n// In particular, it checks whether the value represents a date that is\n// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\n// An error is reported for a nil Timestamp.\nfunc (x *Timestamp) CheckValid() error {\n\tswitch x.check() {\n\tcase invalidNil:\n\t\treturn protoimpl.X.NewError(\"invalid nil Timestamp\")\n\tcase invalidUnderflow:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) before 0001-01-01\", x)\n\tcase invalidOverflow:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) after 9999-12-31\", x)\n\tcase invalidNanos:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) has out-of-range nanos\", x)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nconst (\n\t_ = iota\n\tinvalidNil\n\tinvalidUnderflow\n\tinvalidOverflow\n\tinvalidNanos\n)\n\nfunc (x *Timestamp) check() uint {\n\tconst minTimestamp = -62135596800  // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive\n\tconst maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\tswitch {\n\tcase x == nil:\n\t\treturn invalidNil\n\tcase secs < minTimestamp:\n\t\treturn invalidUnderflow\n\tcase secs > maxTimestamp:\n\t\treturn invalidOverflow\n\tcase nanos < 0 || nanos >= 1e9:\n\t\treturn invalidNanos\n\tdefault:\n\t\treturn 0\n\t}\n}\n\nfunc (x *Timestamp) Reset() {\n\t*x = Timestamp{}\n\tmi := &file_google_protobuf_timestamp_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Timestamp) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Timestamp) ProtoMessage() {}\n\nfunc (x *Timestamp) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_timestamp_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.\nfunc (*Timestamp) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_timestamp_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Timestamp) GetSeconds() int64 {\n\tif x != nil {\n\t\treturn x.Seconds\n\t}\n\treturn 0\n}\n\nfunc (x *Timestamp) GetNanos() int32 {\n\tif x != nil {\n\t\treturn x.Nanos\n\t}\n\treturn 0\n}\n\nvar File_google_protobuf_timestamp_proto protoreflect.FileDescriptor\n\nconst file_google_protobuf_timestamp_proto_rawDesc = \"\" +\n\t\"\\n\" +\n\t\"\\x1fgoogle/protobuf/timestamp.proto\\x12\\x0fgoogle.protobuf\\\";\\n\" +\n\t\"\\tTimestamp\\x12\\x18\\n\" +\n\t\"\\aseconds\\x18\\x01 \\x01(\\x03R\\aseconds\\x12\\x14\\n\" +\n\t\"\\x05nanos\\x18\\x02 \\x01(\\x05R\\x05nanosB\\x85\\x01\\n\" +\n\t\"\\x13com.google.protobufB\\x0eTimestampProtoP\\x01Z2google.golang.org/protobuf/types/known/timestamppb\\xf8\\x01\\x01\\xa2\\x02\\x03GPB\\xaa\\x02\\x1eGoogle.Protobuf.WellKnownTypesb\\x06proto3\"\n\nvar (\n\tfile_google_protobuf_timestamp_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_timestamp_proto_rawDescData []byte\n)\n\nfunc file_google_protobuf_timestamp_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_timestamp_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc)))\n\t})\n\treturn file_google_protobuf_timestamp_proto_rawDescData\n}\n\nvar file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_timestamp_proto_goTypes = []any{\n\t(*Timestamp)(nil), // 0: google.protobuf.Timestamp\n}\nvar file_google_protobuf_timestamp_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_timestamp_proto_init() }\nfunc file_google_protobuf_timestamp_proto_init() {\n\tif File_google_protobuf_timestamp_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc)),\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_timestamp_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_timestamp_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_timestamp_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_timestamp_proto = out.File\n\tfile_google_protobuf_timestamp_proto_goTypes = nil\n\tfile_google_protobuf_timestamp_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/LICENSE",
    "content": "Copyright (c) 2012 Péter Surányi. Portions Copyright (c) 2009 The Go\nAuthors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/dec.go",
    "content": "// Package inf (type inf.Dec) implements \"infinite-precision\" decimal\n// arithmetic.\n// \"Infinite precision\" describes two characteristics: practically unlimited\n// precision for decimal number representation and no support for calculating\n// with any specific fixed precision.\n// (Although there is no practical limit on precision, inf.Dec can only\n// represent finite decimals.)\n//\n// This package is currently in experimental stage and the API may change.\n//\n// This package does NOT support:\n//  - rounding to specific precisions (as opposed to specific decimal positions)\n//  - the notion of context (each rounding must be explicit)\n//  - NaN and Inf values, and distinguishing between positive and negative zero\n//  - conversions to and from float32/64 types\n//\n// Features considered for possible addition:\n//  + formatting options\n//  + Exp method\n//  + combined operations such as AddRound/MulAdd etc\n//  + exchanging data in decimal32/64/128 formats\n//\npackage inf // import \"gopkg.in/inf.v0\"\n\n// TODO:\n//  - avoid excessive deep copying (quo and rounders)\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"strings\"\n)\n\n// A Dec represents a signed arbitrary-precision decimal.\n// It is a combination of a sign, an arbitrary-precision integer coefficient\n// value, and a signed fixed-precision exponent value.\n// The sign and the coefficient value are handled together as a signed value\n// and referred to as the unscaled value.\n// (Positive and negative zero values are not distinguished.)\n// Since the exponent is most commonly non-positive, it is handled in negated\n// form and referred to as scale.\n//\n// The mathematical value of a Dec equals:\n//\n//  unscaled * 10**(-scale)\n//\n// Note that different Dec representations may have equal mathematical values.\n//\n//  unscaled  scale  String()\n//  -------------------------\n//         0      0    \"0\"\n//         0      2    \"0.00\"\n//         0     -2    \"0\"\n//         1      0    \"1\"\n//       100      2    \"1.00\"\n//        10      0   \"10\"\n//         1     -1   \"10\"\n//\n// The zero value for a Dec represents the value 0 with scale 0.\n//\n// Operations are typically performed through the *Dec type.\n// The semantics of the assignment operation \"=\" for \"bare\" Dec values is\n// undefined and should not be relied on.\n//\n// Methods are typically of the form:\n//\n//\tfunc (z *Dec) Op(x, y *Dec) *Dec\n//\n// and implement operations z = x Op y with the result as receiver; if it\n// is one of the operands it may be overwritten (and its memory reused).\n// To enable chaining of operations, the result is also returned. Methods\n// returning a result other than *Dec take one of the operands as the receiver.\n//\n// A \"bare\" Quo method (quotient / division operation) is not provided, as the\n// result is not always a finite decimal and thus in general cannot be\n// represented as a Dec.\n// Instead, in the common case when rounding is (potentially) necessary,\n// QuoRound should be used with a Scale and a Rounder.\n// QuoExact or QuoRound with RoundExact can be used in the special cases when it\n// is known that the result is always a finite decimal.\n//\ntype Dec struct {\n\tunscaled big.Int\n\tscale    Scale\n}\n\n// Scale represents the type used for the scale of a Dec.\ntype Scale int32\n\nconst scaleSize = 4 // bytes in a Scale value\n\n// Scaler represents a method for obtaining the scale to use for the result of\n// an operation on x and y.\ntype scaler interface {\n\tScale(x *Dec, y *Dec) Scale\n}\n\nvar bigInt = [...]*big.Int{\n\tbig.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4),\n\tbig.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8), big.NewInt(9),\n\tbig.NewInt(10),\n}\n\nvar exp10cache [64]big.Int = func() [64]big.Int {\n\te10, e10i := [64]big.Int{}, bigInt[1]\n\tfor i := range e10 {\n\t\te10[i].Set(e10i)\n\t\te10i = new(big.Int).Mul(e10i, bigInt[10])\n\t}\n\treturn e10\n}()\n\n// NewDec allocates and returns a new Dec set to the given int64 unscaled value\n// and scale.\nfunc NewDec(unscaled int64, scale Scale) *Dec {\n\treturn new(Dec).SetUnscaled(unscaled).SetScale(scale)\n}\n\n// NewDecBig allocates and returns a new Dec set to the given *big.Int unscaled\n// value and scale.\nfunc NewDecBig(unscaled *big.Int, scale Scale) *Dec {\n\treturn new(Dec).SetUnscaledBig(unscaled).SetScale(scale)\n}\n\n// Scale returns the scale of x.\nfunc (x *Dec) Scale() Scale {\n\treturn x.scale\n}\n\n// Unscaled returns the unscaled value of x for u and true for ok when the\n// unscaled value can be represented as int64; otherwise it returns an undefined\n// int64 value for u and false for ok. Use x.UnscaledBig().Int64() to avoid\n// checking the validity of the value when the check is known to be redundant.\nfunc (x *Dec) Unscaled() (u int64, ok bool) {\n\tu = x.unscaled.Int64()\n\tvar i big.Int\n\tok = i.SetInt64(u).Cmp(&x.unscaled) == 0\n\treturn\n}\n\n// UnscaledBig returns the unscaled value of x as *big.Int.\nfunc (x *Dec) UnscaledBig() *big.Int {\n\treturn &x.unscaled\n}\n\n// SetScale sets the scale of z, with the unscaled value unchanged, and returns\n// z.\n// The mathematical value of the Dec changes as if it was multiplied by\n// 10**(oldscale-scale).\nfunc (z *Dec) SetScale(scale Scale) *Dec {\n\tz.scale = scale\n\treturn z\n}\n\n// SetUnscaled sets the unscaled value of z, with the scale unchanged, and\n// returns z.\nfunc (z *Dec) SetUnscaled(unscaled int64) *Dec {\n\tz.unscaled.SetInt64(unscaled)\n\treturn z\n}\n\n// SetUnscaledBig sets the unscaled value of z, with the scale unchanged, and\n// returns z.\nfunc (z *Dec) SetUnscaledBig(unscaled *big.Int) *Dec {\n\tz.unscaled.Set(unscaled)\n\treturn z\n}\n\n// Set sets z to the value of x and returns z.\n// It does nothing if z == x.\nfunc (z *Dec) Set(x *Dec) *Dec {\n\tif z != x {\n\t\tz.SetUnscaledBig(x.UnscaledBig())\n\t\tz.SetScale(x.Scale())\n\t}\n\treturn z\n}\n\n// Sign returns:\n//\n//\t-1 if x <  0\n//\t 0 if x == 0\n//\t+1 if x >  0\n//\nfunc (x *Dec) Sign() int {\n\treturn x.UnscaledBig().Sign()\n}\n\n// Neg sets z to -x and returns z.\nfunc (z *Dec) Neg(x *Dec) *Dec {\n\tz.SetScale(x.Scale())\n\tz.UnscaledBig().Neg(x.UnscaledBig())\n\treturn z\n}\n\n// Cmp compares x and y and returns:\n//\n//   -1 if x <  y\n//    0 if x == y\n//   +1 if x >  y\n//\nfunc (x *Dec) Cmp(y *Dec) int {\n\txx, yy := upscale(x, y)\n\treturn xx.UnscaledBig().Cmp(yy.UnscaledBig())\n}\n\n// Abs sets z to |x| (the absolute value of x) and returns z.\nfunc (z *Dec) Abs(x *Dec) *Dec {\n\tz.SetScale(x.Scale())\n\tz.UnscaledBig().Abs(x.UnscaledBig())\n\treturn z\n}\n\n// Add sets z to the sum x+y and returns z.\n// The scale of z is the greater of the scales of x and y.\nfunc (z *Dec) Add(x, y *Dec) *Dec {\n\txx, yy := upscale(x, y)\n\tz.SetScale(xx.Scale())\n\tz.UnscaledBig().Add(xx.UnscaledBig(), yy.UnscaledBig())\n\treturn z\n}\n\n// Sub sets z to the difference x-y and returns z.\n// The scale of z is the greater of the scales of x and y.\nfunc (z *Dec) Sub(x, y *Dec) *Dec {\n\txx, yy := upscale(x, y)\n\tz.SetScale(xx.Scale())\n\tz.UnscaledBig().Sub(xx.UnscaledBig(), yy.UnscaledBig())\n\treturn z\n}\n\n// Mul sets z to the product x*y and returns z.\n// The scale of z is the sum of the scales of x and y.\nfunc (z *Dec) Mul(x, y *Dec) *Dec {\n\tz.SetScale(x.Scale() + y.Scale())\n\tz.UnscaledBig().Mul(x.UnscaledBig(), y.UnscaledBig())\n\treturn z\n}\n\n// Round sets z to the value of x rounded to Scale s using Rounder r, and\n// returns z.\nfunc (z *Dec) Round(x *Dec, s Scale, r Rounder) *Dec {\n\treturn z.QuoRound(x, NewDec(1, 0), s, r)\n}\n\n// QuoRound sets z to the quotient x/y, rounded using the given Rounder to the\n// specified scale.\n//\n// If the rounder is RoundExact but the result can not be expressed exactly at\n// the specified scale, QuoRound returns nil, and the value of z is undefined.\n//\n// There is no corresponding Div method; the equivalent can be achieved through\n// the choice of Rounder used.\n//\nfunc (z *Dec) QuoRound(x, y *Dec, s Scale, r Rounder) *Dec {\n\treturn z.quo(x, y, sclr{s}, r)\n}\n\nfunc (z *Dec) quo(x, y *Dec, s scaler, r Rounder) *Dec {\n\tscl := s.Scale(x, y)\n\tvar zzz *Dec\n\tif r.UseRemainder() {\n\t\tzz, rA, rB := new(Dec).quoRem(x, y, scl, true, new(big.Int), new(big.Int))\n\t\tzzz = r.Round(new(Dec), zz, rA, rB)\n\t} else {\n\t\tzz, _, _ := new(Dec).quoRem(x, y, scl, false, nil, nil)\n\t\tzzz = r.Round(new(Dec), zz, nil, nil)\n\t}\n\tif zzz == nil {\n\t\treturn nil\n\t}\n\treturn z.Set(zzz)\n}\n\n// QuoExact sets z to the quotient x/y and returns z when x/y is a finite\n// decimal. Otherwise it returns nil and the value of z is undefined.\n//\n// The scale of a non-nil result is \"x.Scale() - y.Scale()\" or greater; it is\n// calculated so that the remainder will be zero whenever x/y is a finite\n// decimal.\nfunc (z *Dec) QuoExact(x, y *Dec) *Dec {\n\treturn z.quo(x, y, scaleQuoExact{}, RoundExact)\n}\n\n// quoRem sets z to the quotient x/y with the scale s, and if useRem is true,\n// it sets remNum and remDen to the numerator and denominator of the remainder.\n// It returns z, remNum and remDen.\n//\n// The remainder is normalized to the range -1 < r < 1 to simplify rounding;\n// that is, the results satisfy the following equation:\n//\n//  x / y = z + (remNum/remDen) * 10**(-z.Scale())\n//\n// See Rounder for more details about rounding.\n//\nfunc (z *Dec) quoRem(x, y *Dec, s Scale, useRem bool,\n\tremNum, remDen *big.Int) (*Dec, *big.Int, *big.Int) {\n\t// difference (required adjustment) compared to \"canonical\" result scale\n\tshift := s - (x.Scale() - y.Scale())\n\t// pointers to adjusted unscaled dividend and divisor\n\tvar ix, iy *big.Int\n\tswitch {\n\tcase shift > 0:\n\t\t// increased scale: decimal-shift dividend left\n\t\tix = new(big.Int).Mul(x.UnscaledBig(), exp10(shift))\n\t\tiy = y.UnscaledBig()\n\tcase shift < 0:\n\t\t// decreased scale: decimal-shift divisor left\n\t\tix = x.UnscaledBig()\n\t\tiy = new(big.Int).Mul(y.UnscaledBig(), exp10(-shift))\n\tdefault:\n\t\tix = x.UnscaledBig()\n\t\tiy = y.UnscaledBig()\n\t}\n\t// save a copy of iy in case it to be overwritten with the result\n\tiy2 := iy\n\tif iy == z.UnscaledBig() {\n\t\tiy2 = new(big.Int).Set(iy)\n\t}\n\t// set scale\n\tz.SetScale(s)\n\t// set unscaled\n\tif useRem {\n\t\t// Int division\n\t\t_, intr := z.UnscaledBig().QuoRem(ix, iy, new(big.Int))\n\t\t// set remainder\n\t\tremNum.Set(intr)\n\t\tremDen.Set(iy2)\n\t} else {\n\t\tz.UnscaledBig().Quo(ix, iy)\n\t}\n\treturn z, remNum, remDen\n}\n\ntype sclr struct{ s Scale }\n\nfunc (s sclr) Scale(x, y *Dec) Scale {\n\treturn s.s\n}\n\ntype scaleQuoExact struct{}\n\nfunc (sqe scaleQuoExact) Scale(x, y *Dec) Scale {\n\trem := new(big.Rat).SetFrac(x.UnscaledBig(), y.UnscaledBig())\n\tf2, f5 := factor2(rem.Denom()), factor(rem.Denom(), bigInt[5])\n\tvar f10 Scale\n\tif f2 > f5 {\n\t\tf10 = Scale(f2)\n\t} else {\n\t\tf10 = Scale(f5)\n\t}\n\treturn x.Scale() - y.Scale() + f10\n}\n\nfunc factor(n *big.Int, p *big.Int) int {\n\t// could be improved for large factors\n\td, f := n, 0\n\tfor {\n\t\tdd, dm := new(big.Int).DivMod(d, p, new(big.Int))\n\t\tif dm.Sign() == 0 {\n\t\t\tf++\n\t\t\td = dd\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn f\n}\n\nfunc factor2(n *big.Int) int {\n\t// could be improved for large factors\n\tf := 0\n\tfor ; n.Bit(f) == 0; f++ {\n\t}\n\treturn f\n}\n\nfunc upscale(a, b *Dec) (*Dec, *Dec) {\n\tif a.Scale() == b.Scale() {\n\t\treturn a, b\n\t}\n\tif a.Scale() > b.Scale() {\n\t\tbb := b.rescale(a.Scale())\n\t\treturn a, bb\n\t}\n\taa := a.rescale(b.Scale())\n\treturn aa, b\n}\n\nfunc exp10(x Scale) *big.Int {\n\tif int(x) < len(exp10cache) {\n\t\treturn &exp10cache[int(x)]\n\t}\n\treturn new(big.Int).Exp(bigInt[10], big.NewInt(int64(x)), nil)\n}\n\nfunc (x *Dec) rescale(newScale Scale) *Dec {\n\tshift := newScale - x.Scale()\n\tswitch {\n\tcase shift < 0:\n\t\te := exp10(-shift)\n\t\treturn NewDecBig(new(big.Int).Quo(x.UnscaledBig(), e), newScale)\n\tcase shift > 0:\n\t\te := exp10(shift)\n\t\treturn NewDecBig(new(big.Int).Mul(x.UnscaledBig(), e), newScale)\n\t}\n\treturn x\n}\n\nvar zeros = []byte(\"00000000000000000000000000000000\" +\n\t\"00000000000000000000000000000000\")\nvar lzeros = Scale(len(zeros))\n\nfunc appendZeros(s []byte, n Scale) []byte {\n\tfor i := Scale(0); i < n; i += lzeros {\n\t\tif n > i+lzeros {\n\t\t\ts = append(s, zeros...)\n\t\t} else {\n\t\t\ts = append(s, zeros[0:n-i]...)\n\t\t}\n\t}\n\treturn s\n}\n\nfunc (x *Dec) String() string {\n\tif x == nil {\n\t\treturn \"<nil>\"\n\t}\n\tscale := x.Scale()\n\ts := []byte(x.UnscaledBig().String())\n\tif scale <= 0 {\n\t\tif scale != 0 && x.unscaled.Sign() != 0 {\n\t\t\ts = appendZeros(s, -scale)\n\t\t}\n\t\treturn string(s)\n\t}\n\tnegbit := Scale(-((x.Sign() - 1) / 2))\n\t// scale > 0\n\tlens := Scale(len(s))\n\tif lens-negbit <= scale {\n\t\tss := make([]byte, 0, scale+2)\n\t\tif negbit == 1 {\n\t\t\tss = append(ss, '-')\n\t\t}\n\t\tss = append(ss, '0', '.')\n\t\tss = appendZeros(ss, scale-lens+negbit)\n\t\tss = append(ss, s[negbit:]...)\n\t\treturn string(ss)\n\t}\n\t// lens > scale\n\tss := make([]byte, 0, lens+1)\n\tss = append(ss, s[:lens-scale]...)\n\tss = append(ss, '.')\n\tss = append(ss, s[lens-scale:]...)\n\treturn string(ss)\n}\n\n// Format is a support routine for fmt.Formatter. It accepts the decimal\n// formats 'd' and 'f', and handles both equivalently.\n// Width, precision, flags and bases 2, 8, 16 are not supported.\nfunc (x *Dec) Format(s fmt.State, ch rune) {\n\tif ch != 'd' && ch != 'f' && ch != 'v' && ch != 's' {\n\t\tfmt.Fprintf(s, \"%%!%c(dec.Dec=%s)\", ch, x.String())\n\t\treturn\n\t}\n\tfmt.Fprintf(s, x.String())\n}\n\nfunc (z *Dec) scan(r io.RuneScanner) (*Dec, error) {\n\tunscaled := make([]byte, 0, 256) // collects chars of unscaled as bytes\n\tdp, dg := -1, -1                 // indexes of decimal point, first digit\nloop:\n\tfor {\n\t\tch, _, err := r.ReadRune()\n\t\tif err == io.EOF {\n\t\t\tbreak loop\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch {\n\t\tcase ch == '+' || ch == '-':\n\t\t\tif len(unscaled) > 0 || dp >= 0 { // must be first character\n\t\t\t\tr.UnreadRune()\n\t\t\t\tbreak loop\n\t\t\t}\n\t\tcase ch == '.':\n\t\t\tif dp >= 0 {\n\t\t\t\tr.UnreadRune()\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tdp = len(unscaled)\n\t\t\tcontinue // don't add to unscaled\n\t\tcase ch >= '0' && ch <= '9':\n\t\t\tif dg == -1 {\n\t\t\t\tdg = len(unscaled)\n\t\t\t}\n\t\tdefault:\n\t\t\tr.UnreadRune()\n\t\t\tbreak loop\n\t\t}\n\t\tunscaled = append(unscaled, byte(ch))\n\t}\n\tif dg == -1 {\n\t\treturn nil, fmt.Errorf(\"no digits read\")\n\t}\n\tif dp >= 0 {\n\t\tz.SetScale(Scale(len(unscaled) - dp))\n\t} else {\n\t\tz.SetScale(0)\n\t}\n\t_, ok := z.UnscaledBig().SetString(string(unscaled), 10)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid decimal: %s\", string(unscaled))\n\t}\n\treturn z, nil\n}\n\n// SetString sets z to the value of s, interpreted as a decimal (base 10),\n// and returns z and a boolean indicating success. The scale of z is the\n// number of digits after the decimal point (including any trailing 0s),\n// or 0 if there is no decimal point. If SetString fails, the value of z\n// is undefined but the returned value is nil.\nfunc (z *Dec) SetString(s string) (*Dec, bool) {\n\tr := strings.NewReader(s)\n\t_, err := z.scan(r)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\t_, _, err = r.ReadRune()\n\tif err != io.EOF {\n\t\treturn nil, false\n\t}\n\t// err == io.EOF => scan consumed all of s\n\treturn z, true\n}\n\n// Scan is a support routine for fmt.Scanner; it sets z to the value of\n// the scanned number. It accepts the decimal formats 'd' and 'f', and\n// handles both equivalently. Bases 2, 8, 16 are not supported.\n// The scale of z is the number of digits after the decimal point\n// (including any trailing 0s), or 0 if there is no decimal point.\nfunc (z *Dec) Scan(s fmt.ScanState, ch rune) error {\n\tif ch != 'd' && ch != 'f' && ch != 's' && ch != 'v' {\n\t\treturn fmt.Errorf(\"Dec.Scan: invalid verb '%c'\", ch)\n\t}\n\ts.SkipSpace()\n\t_, err := z.scan(s)\n\treturn err\n}\n\n// Gob encoding version\nconst decGobVersion byte = 1\n\nfunc scaleBytes(s Scale) []byte {\n\tbuf := make([]byte, scaleSize)\n\ti := scaleSize\n\tfor j := 0; j < scaleSize; j++ {\n\t\ti--\n\t\tbuf[i] = byte(s)\n\t\ts >>= 8\n\t}\n\treturn buf\n}\n\nfunc scale(b []byte) (s Scale) {\n\tfor j := 0; j < scaleSize; j++ {\n\t\ts <<= 8\n\t\ts |= Scale(b[j])\n\t}\n\treturn\n}\n\n// GobEncode implements the gob.GobEncoder interface.\nfunc (x *Dec) GobEncode() ([]byte, error) {\n\tbuf, err := x.UnscaledBig().GobEncode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbuf = append(append(buf, scaleBytes(x.Scale())...), decGobVersion)\n\treturn buf, nil\n}\n\n// GobDecode implements the gob.GobDecoder interface.\nfunc (z *Dec) GobDecode(buf []byte) error {\n\tif len(buf) == 0 {\n\t\treturn fmt.Errorf(\"Dec.GobDecode: no data\")\n\t}\n\tb := buf[len(buf)-1]\n\tif b != decGobVersion {\n\t\treturn fmt.Errorf(\"Dec.GobDecode: encoding version %d not supported\", b)\n\t}\n\tl := len(buf) - scaleSize - 1\n\terr := z.UnscaledBig().GobDecode(buf[:l])\n\tif err != nil {\n\t\treturn err\n\t}\n\tz.SetScale(scale(buf[l : l+scaleSize]))\n\treturn nil\n}\n\n// MarshalText implements the encoding.TextMarshaler interface.\nfunc (x *Dec) MarshalText() ([]byte, error) {\n\treturn []byte(x.String()), nil\n}\n\n// UnmarshalText implements the encoding.TextUnmarshaler interface.\nfunc (z *Dec) UnmarshalText(data []byte) error {\n\t_, ok := z.SetString(string(data))\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid inf.Dec\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/rounder.go",
    "content": "package inf\n\nimport (\n\t\"math/big\"\n)\n\n// Rounder represents a method for rounding the (possibly infinite decimal)\n// result of a division to a finite Dec. It is used by Dec.Round() and\n// Dec.Quo().\n//\n// See the Example for results of using each Rounder with some sample values.\n//\ntype Rounder rounder\n\n// See http://speleotrove.com/decimal/damodel.html#refround for more detailed\n// definitions of these rounding modes.\nvar (\n\tRoundDown     Rounder // towards 0\n\tRoundUp       Rounder // away from 0\n\tRoundFloor    Rounder // towards -infinity\n\tRoundCeil     Rounder // towards +infinity\n\tRoundHalfDown Rounder // to nearest; towards 0 if same distance\n\tRoundHalfUp   Rounder // to nearest; away from 0 if same distance\n\tRoundHalfEven Rounder // to nearest; even last digit if same distance\n)\n\n// RoundExact is to be used in the case when rounding is not necessary.\n// When used with Quo or Round, it returns the result verbatim when it can be\n// expressed exactly with the given precision, and it returns nil otherwise.\n// QuoExact is a shorthand for using Quo with RoundExact.\nvar RoundExact Rounder\n\ntype rounder interface {\n\n\t// When UseRemainder() returns true, the Round() method is passed the\n\t// remainder of the division, expressed as the numerator and denominator of\n\t// a rational.\n\tUseRemainder() bool\n\n\t// Round sets the rounded value of a quotient to z, and returns z.\n\t// quo is rounded down (truncated towards zero) to the scale obtained from\n\t// the Scaler in Quo().\n\t//\n\t// When the remainder is not used, remNum and remDen are nil.\n\t// When used, the remainder is normalized between -1 and 1; that is:\n\t//\n\t//  -|remDen| < remNum < |remDen|\n\t//\n\t// remDen has the same sign as y, and remNum is zero or has the same sign\n\t// as x.\n\tRound(z, quo *Dec, remNum, remDen *big.Int) *Dec\n}\n\ntype rndr struct {\n\tuseRem bool\n\tround  func(z, quo *Dec, remNum, remDen *big.Int) *Dec\n}\n\nfunc (r rndr) UseRemainder() bool {\n\treturn r.useRem\n}\n\nfunc (r rndr) Round(z, quo *Dec, remNum, remDen *big.Int) *Dec {\n\treturn r.round(z, quo, remNum, remDen)\n}\n\nvar intSign = []*big.Int{big.NewInt(-1), big.NewInt(0), big.NewInt(1)}\n\nfunc roundHalf(f func(c int, odd uint) (roundUp bool)) func(z, q *Dec, rA, rB *big.Int) *Dec {\n\treturn func(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\tz.Set(q)\n\t\tbrA, brB := rA.BitLen(), rB.BitLen()\n\t\tif brA < brB-1 {\n\t\t\t// brA < brB-1 => |rA| < |rB/2|\n\t\t\treturn z\n\t\t}\n\t\troundUp := false\n\t\tsrA, srB := rA.Sign(), rB.Sign()\n\t\ts := srA * srB\n\t\tif brA == brB-1 {\n\t\t\trA2 := new(big.Int).Lsh(rA, 1)\n\t\t\tif s < 0 {\n\t\t\t\trA2.Neg(rA2)\n\t\t\t}\n\t\t\troundUp = f(rA2.Cmp(rB)*srB, z.UnscaledBig().Bit(0))\n\t\t} else {\n\t\t\t// brA > brB-1 => |rA| > |rB/2|\n\t\t\troundUp = true\n\t\t}\n\t\tif roundUp {\n\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[s+1])\n\t\t}\n\t\treturn z\n\t}\n}\n\nfunc init() {\n\tRoundExact = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tif rA.Sign() != 0 {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn z.Set(q)\n\t\t}}\n\tRoundDown = rndr{false,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\treturn z.Set(q)\n\t\t}}\n\tRoundUp = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign() != 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[rA.Sign()*rB.Sign()+1])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundFloor = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign()*rB.Sign() < 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[0])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundCeil = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign()*rB.Sign() > 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[2])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundHalfDown = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c > 0\n\t\t})}\n\tRoundHalfUp = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c >= 0\n\t\t})}\n\tRoundHalfEven = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c > 0 || c == 0 && odd == 1\n\t\t})}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/.travis.yml",
    "content": "language: go\n\ngo:\n    - \"1.4.x\"\n    - \"1.5.x\"\n    - \"1.6.x\"\n    - \"1.7.x\"\n    - \"1.8.x\"\n    - \"1.9.x\"\n    - \"1.10.x\"\n    - \"1.11.x\"\n    - \"1.12.x\"\n    - \"1.13.x\"\n    - \"1.14.x\"\n    - \"tip\"\n\ngo_import_path: gopkg.in/yaml.v2\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/LICENSE.libyaml",
    "content": "The following files were ported to Go from C files of libyaml, and thus\nare still covered by their original copyright and license:\n\n    apic.go\n    emitterc.go\n    parserc.go\n    readerc.go\n    scannerc.go\n    writerc.go\n    yamlh.go\n    yamlprivateh.go\n\nCopyright (c) 2006 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.1 and 1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v2*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v2\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2)\n\nAPI stability\n-------------\n\nThe package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v2\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/apic.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\nvar disableLineWrapping = false\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t}\n\tif disableLineWrapping {\n\t\temitter.best_width = -1\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n//// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n///*\n// * Create ALIAS.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)\n//{\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    anchor_copy *yaml_char_t = NULL\n//\n//    assert(event) // Non-NULL event object is expected.\n//    assert(anchor) // Non-NULL anchor is expected.\n//\n//    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0\n//\n//    anchor_copy = yaml_strdup(anchor)\n//    if (!anchor_copy)\n//        return 0\n//\n//    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)\n//\n//    return 1\n//}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/decode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tdocumentNode = 1 << iota\n\tmappingNode\n\tsequenceNode\n\tscalarNode\n\taliasNode\n)\n\ntype node struct {\n\tkind         int\n\tline, column int\n\ttag          string\n\t// For an alias node, alias holds the resolved alias.\n\talias    *node\n\tvalue    string\n\timplicit bool\n\tchildren []*node\n\tanchors  map[string]*node\n}\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *node\n\tdoneInit bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *node, anchor []byte) {\n\tif anchor != nil {\n\t\tp.doc.anchors[string(anchor)] = n\n\t}\n}\n\nfunc (p *parser) parse() *node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tdefault:\n\t\tpanic(\"attempted to parse unknown event: \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind int) *node {\n\treturn &node{\n\t\tkind:   kind,\n\t\tline:   p.event.start_mark.line,\n\t\tcolumn: p.event.start_mark.column,\n\t}\n}\n\nfunc (p *parser) document() *node {\n\tn := p.node(documentNode)\n\tn.anchors = make(map[string]*node)\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tn.children = append(n.children, p.parse())\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *node {\n\tn := p.node(aliasNode)\n\tn.value = string(p.event.anchor)\n\tn.alias = p.doc.anchors[n.value]\n\tif n.alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *node {\n\tn := p.node(scalarNode)\n\tn.value = string(p.event.value)\n\tn.tag = string(p.event.tag)\n\tn.implicit = p.event.implicit\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *node {\n\tn := p.node(sequenceNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tn.children = append(n.children, p.parse())\n\t}\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *node {\n\tn := p.node(mappingNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tn.children = append(n.children, p.parse(), p.parse())\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *node\n\taliases map[*node]bool\n\tmapType reflect.Type\n\tterrors []string\n\tstrict  bool\n\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n}\n\nvar (\n\tmapItemType    = reflect.TypeOf(MapItem{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tdefaultMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = defaultMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder(strict bool) *decoder {\n\td := &decoder{mapType: defaultMapType, strict: strict}\n\td.aliases = make(map[*node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *node, tag string, out reflect.Value) {\n\tif n.tag != \"\" {\n\t\ttag = n.tag\n\t}\n\tvalue := n.value\n\tif tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.line+1, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == \"\" && (n.value == \"null\" || n.value == \"~\" || n.value == \"\" && n.implicit) {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\tif u, ok := out.Addr().Interface().(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tswitch n.kind {\n\tcase documentNode:\n\t\treturn d.document(n, out)\n\tcase aliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.kind {\n\tcase scalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase mappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase sequenceNode:\n\t\tgood = d.sequence(n, out)\n\tdefault:\n\t\tpanic(\"internal error: unknown node kind: \" + strconv.Itoa(n.kind))\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *node, out reflect.Value) (good bool) {\n\tif len(n.children) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.children[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) scalar(n *node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.tag == \"\" && !n.implicit {\n\t\ttag = yaml_STR_TAG\n\t\tresolved = n.value\n\t} else {\n\t\ttag, resolved = resolve(n.tag, n.value)\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\tif out.Kind() == reflect.Map && !out.CanAddr() {\n\t\t\tresetMap(out)\n\t\t} else {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t}\n\t\treturn true\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == yaml_BINARY_TAG {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tif resolved != nil {\n\t\t\tout.SetString(n.value)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Interface:\n\t\tif resolved == nil {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t} else if tag == yaml_TIMESTAMP_TAG {\n\t\t\t// It looks like a timestamp but for backward compatibility\n\t\t\t// reasons we set it as a string, so that code that unmarshals\n\t\t\t// timestamp-like values into interface{} will continue to\n\t\t\t// see a string and not a time.Time.\n\t\t\t// TODO(v3) Drop this.\n\t\t\tout.Set(reflect.ValueOf(n.value))\n\t\t} else {\n\t\t\tout.Set(reflect.ValueOf(resolved))\n\t\t}\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tif out.Type().Elem() == reflect.TypeOf(resolved) {\n\t\t\t// TODO DOes this make sense? When is out a Ptr except when decoding a nil value?\n\t\t\telem := reflect.New(out.Type().Elem())\n\t\t\telem.Elem().Set(reflect.ValueOf(resolved))\n\t\t\tout.Set(elem)\n\t\t\treturn true\n\t\t}\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *node, out reflect.Value) (good bool) {\n\tl := len(n.children)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, yaml_SEQ_TAG, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.children[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *node, out reflect.Value) (good bool) {\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Slice:\n\t\treturn d.mappingSlice(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tif d.mapType.Kind() == reflect.Map {\n\t\t\tiface := out\n\t\t\tout = reflect.MakeMap(d.mapType)\n\t\t\tiface.Set(out)\n\t\t} else {\n\t\t\tslicev := reflect.New(d.mapType).Elem()\n\t\t\tif !d.mappingSlice(n, slicev) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tout.Set(slicev)\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tmapType := d.mapType\n\tif outt.Key() == ifaceType && outt.Elem() == ifaceType {\n\t\td.mapType = outt\n\t}\n\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t}\n\tl := len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], e) {\n\t\t\t\td.setMapIndex(n.children[i+1], out, k, e)\n\t\t\t}\n\t\t}\n\t}\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {\n\tif d.strict && out.MapIndex(k) != zeroValue {\n\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: key %#v already set in map\", n.line+1, k.Interface()))\n\t\treturn\n\t}\n\tout.SetMapIndex(k, v)\n}\n\nfunc (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {\n\toutt := out.Type()\n\tif outt.Elem() != mapItemType {\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\n\tmapType := d.mapType\n\td.mapType = outt\n\n\tvar slice []MapItem\n\tvar l = len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\titem := MapItem{}\n\t\tk := reflect.ValueOf(&item.Key).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tv := reflect.ValueOf(&item.Value).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], v) {\n\t\t\t\tslice = append(slice, item)\n\t\t\t}\n\t\t}\n\t}\n\tout.Set(reflect.ValueOf(slice))\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.children)\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\tinlineMap.Set(reflect.New(inlineMap.Type()).Elem())\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tvar doneFields []bool\n\tif d.strict {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.children[i]\n\t\tif isMerge(ni) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[name.String()]; ok {\n\t\t\tif d.strict {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = out.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.children[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.children[i+1], value)\n\t\t\td.setMapIndex(n.children[i+1], inlineMap, name, value)\n\t\t} else if d.strict {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t}\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(n *node, out reflect.Value) {\n\tswitch n.kind {\n\tcase mappingNode:\n\t\td.unmarshal(n, out)\n\tcase aliasNode:\n\t\tif n.alias != nil && n.alias.kind != mappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(n, out)\n\tcase sequenceNode:\n\t\t// Step backwards as earlier nodes take precedence.\n\t\tfor i := len(n.children) - 1; i >= 0; i-- {\n\t\t\tni := n.children[i]\n\t\t\tif ni.kind == aliasNode {\n\t\t\t\tif ni.alias != nil && ni.alias.kind != mappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.kind != mappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n}\n\nfunc isMerge(n *node) bool {\n\treturn n.kind == scalarNode && n.value == \"<<\" && (n.implicit == true || n.tag == yaml_MERGE_TAG)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/emitterc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\temitter.column = 0\n\temitter.line++\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\temitter.indent += emitter.best_indent\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, true, false, false, false)\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\temitter.indention = true\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\temitter.whitespace = false\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/encode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// jsonNumber is the interface of the encoding/json.Number datatype.\n// Repeating the interface here avoids a dependency on encoding/json, and also\n// supports other libraries like jsoniter, which use a similar datatype with\n// the same interface. Detecting this interface is useful when dealing with\n// structures containing json.Number, which is a string under the hood. The\n// encoder should prefer the use of Int64(), Float64() and string(), in that\n// order, when encoding this type.\ntype jsonNumber interface {\n\tFloat64() (float64, error)\n\tInt64() (int64, error)\n\tString() string\n}\n\ntype encoder struct {\n\temitter yaml_emitter_t\n\tevent   yaml_event_t\n\tout     []byte\n\tflow    bool\n\t// doneInit holds whether the initial stream_start_event has been\n\t// emitted.\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\te.emit()\n\te.marshal(tag, in)\n\tyaml_document_end_event_initialize(&e.event, true)\n\te.emit()\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch m := iface.(type) {\n\tcase jsonNumber:\n\t\tinteger, err := m.Int64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid int64\n\t\t\tin = reflect.ValueOf(integer)\n\t\t\tbreak\n\t\t}\n\t\tfloat, err := m.Float64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid float64\n\t\t\tin = reflect.ValueOf(float)\n\t\t\tbreak\n\t\t}\n\t\t// fallback case - no number could be obtained\n\t\tin = reflect.ValueOf(m.String())\n\tcase time.Time, *time.Time:\n\t\t// Although time.Time implements TextMarshaler,\n\t\t// we don't want to treat it as a string for YAML\n\t\t// purposes because YAML has special support for\n\t\t// timestamps.\n\tcase Marshaler:\n\t\tv, err := m.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\tin = reflect.ValueOf(v)\n\tcase encoding.TextMarshaler:\n\t\ttext, err := m.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\tif in.Type() == ptrTimeType {\n\t\t\te.timev(tag, in.Elem())\n\t\t} else {\n\t\t\te.marshal(tag, in.Elem())\n\t\t}\n\tcase reflect.Struct:\n\t\tif in.Type() == timeType {\n\t\t\te.timev(tag, in)\n\t\t} else {\n\t\t\te.structv(tag, in)\n\t\t}\n\tcase reflect.Slice, reflect.Array:\n\t\tif in.Type().Elem() == mapItemType {\n\t\t\te.itemsv(tag, in)\n\t\t} else {\n\t\t\te.slicev(tag, in)\n\t\t}\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif in.Type() == durationType {\n\t\t\te.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))\n\t\t} else {\n\t\t\te.intv(tag, in)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) itemsv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tslice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)\n\t\tfor _, item := range slice {\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Key))\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Value))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = in.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"Can't have key %q in inlined map; conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = yaml_BINARY_TAG\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {\n\timplicit := tag == \"\"\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.emit()\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/parserc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\treturn &parser.tokens[parser.tokens_head]\n\t}\n\treturn nil\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/readerc.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests \n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/resolve.go",
    "content": "package yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, yaml_BOOL_TAG, []string{\"y\", \"Y\", \"yes\", \"Yes\", \"YES\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"on\", \"On\", \"ON\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"n\", \"N\", \"no\", \"No\", \"NO\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"off\", \"Off\", \"OFF\"}},\n\t\t{nil, yaml_NULL_TAG, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), yaml_FLOAT_TAG, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), yaml_FLOAT_TAG, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", yaml_MERGE_TAG, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\t// TODO This can easily be made faster and produce less garbage.\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, yaml_STR_TAG, yaml_BINARY_TAG:\n\t\t\treturn\n\t\tcase yaml_FLOAT_TAG:\n\t\t\tif rtag == yaml_INT_TAG {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == yaml_TIMESTAMP_TAG {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn yaml_TIMESTAMP_TAG, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\" + plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"resolveTable item not yet handled: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn yaml_STR_TAG, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/scannerc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\t// If queue is non-empty, check if any potential simple key may\n\t\t\t// occupy the head position.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: parser.mark,\n\t\t\tend_mark:   parser.mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tskip(parser)\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/sorter.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\treturn bl\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/writerc.go",
    "content": "package yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yaml.go",
    "content": "// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document. The UnmarshalYAML\n// method receives a function that may be called to unmarshal the original\n// YAML value into a field or variable. It is safe to call the unmarshal\n// function parameter more than once if necessary.\ntype Unmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// UnmarshalStrict is like Unmarshal except that any fields that are found\n// in the data that do not have corresponding struct members, or mapping\n// keys that are duplicates, will result in\n// an error.\nfunc UnmarshalStrict(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, true)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tstrict bool\n\tparser *parser\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// SetStrict sets whether strict decoding behaviour is enabled when\n// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.\nfunc (dec *Decoder) SetStrict(strict bool) {\n\tdec.strict = strict\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder(dec.strict)\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder(strict)\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"Multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"Option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct:\n\t\t\t\tsinfo, err := getStructInfo(field.Type)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\tmsg := \"Duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t}\n\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t//return nil, errors.New(\"Option ,inline needs a struct value or map field\")\n\t\t\t\treturn nil, errors.New(\"Option ,inline needs a struct value field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"Duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:  fieldsMap,\n\t\tFieldsList: fieldsList,\n\t\tInlineMap:  inlineMap,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// FutureLineWrap globally disables line wrapping when encoding long strings.\n// This is a temporary and thus deprecated method introduced to faciliate\n// migration towards v3, which offers more control of line lengths on\n// individual encodings, and has a default matching the behavior introduced\n// by this function.\n//\n// The default formatting of v2 was erroneously changed in v2.3.0 and reverted\n// in v2.4.0, at which point this function was introduced to help migration.\nfunc FutureLineWrap() {\n\tdisableLineWrapping = true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yamlh.go",
    "content": "package yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota\n\n\tyaml_PLAIN_SCALAR_STYLE         // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yamlprivateh.go",
    "content": "package yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (        // is_break:\n\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn ( // is_space:\n\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn ( // is_blank:\n\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/LICENSE",
    "content": "\nThis project is covered by two different licenses: MIT and Apache.\n\n#### MIT License ####\n\nThe following files were ported to Go from C files of libyaml, and thus\nare still covered by their original MIT license, with the additional\ncopyright staring in 2011 when the project was ported over:\n\n    apic.go emitterc.go parserc.go readerc.go scannerc.go\n    writerc.go yamlh.go yamlprivateh.go\n\nCopyright (c) 2006-2010 Kirill Simonov\nCopyright (c) 2006-2011 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Apache License ###\n\nAll the remaining project files are covered by the Apache license:\n\nCopyright (c) 2011-2019 Canonical Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.2, but preserves some behavior\nfrom 1.1 for backwards compatibility.\n\nSpecifically, as of v3 of the yaml package:\n\n - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being\n   decoded into a typed bool value. Otherwise they behave as a string. Booleans\n   in YAML 1.2 are _true/false_ only.\n - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_\n   as specified in YAML 1.2, because most parsers still use the old format.\n   Octals in the  _0o777_ format are supported though, so new files work.\n - Does not support base-60 floats. These are gone from YAML 1.2, and were\n   actually never supported by this package as it's clearly a poor choice.\n\nand offers backwards\ncompatibility with YAML 1.1 in some cases.\n1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v3*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v3\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3)\n\nAPI stability\n-------------\n\nThe package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the MIT and Apache License 2.0 licenses.\nPlease see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v3\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/apic.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t\tbest_width: -1,\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n// Create ALIAS.\nfunc yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool {\n\t*event = yaml_event_t{\n\t\ttyp:    yaml_ALIAS_EVENT,\n\t\tanchor: anchor,\n\t}\n\treturn true\n}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/decode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *Node\n\tanchors  map[string]*Node\n\tdoneInit bool\n\ttextless bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.anchors = make(map[string]*Node)\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\t// It's curious choice from the underlying API to generally return a\n\t// positive result on success, but on this case return true in an error\n\t// scenario. This was the source of bugs in the past (issue #666).\n\tif !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *Node, anchor []byte) {\n\tif anchor != nil {\n\t\tn.Anchor = string(anchor)\n\t\tp.anchors[n.Anchor] = n\n\t}\n}\n\nfunc (p *parser) parse() *Node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tcase yaml_TAIL_COMMENT_EVENT:\n\t\tpanic(\"internal error: unexpected tail comment event (please report)\")\n\tdefault:\n\t\tpanic(\"internal error: attempted to parse unknown event (please report): \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind Kind, defaultTag, tag, value string) *Node {\n\tvar style Style\n\tif tag != \"\" && tag != \"!\" {\n\t\ttag = shortTag(tag)\n\t\tstyle = TaggedStyle\n\t} else if defaultTag != \"\" {\n\t\ttag = defaultTag\n\t} else if kind == ScalarNode {\n\t\ttag, _ = resolve(\"\", value)\n\t}\n\tn := &Node{\n\t\tKind:  kind,\n\t\tTag:   tag,\n\t\tValue: value,\n\t\tStyle: style,\n\t}\n\tif !p.textless {\n\t\tn.Line = p.event.start_mark.line + 1\n\t\tn.Column = p.event.start_mark.column + 1\n\t\tn.HeadComment = string(p.event.head_comment)\n\t\tn.LineComment = string(p.event.line_comment)\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\treturn n\n}\n\nfunc (p *parser) parseChild(parent *Node) *Node {\n\tchild := p.parse()\n\tparent.Content = append(parent.Content, child)\n\treturn child\n}\n\nfunc (p *parser) document() *Node {\n\tn := p.node(DocumentNode, \"\", \"\", \"\")\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tp.parseChild(n)\n\tif p.peek() == yaml_DOCUMENT_END_EVENT {\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *Node {\n\tn := p.node(AliasNode, \"\", \"\", string(p.event.anchor))\n\tn.Alias = p.anchors[n.Value]\n\tif n.Alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.Value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *Node {\n\tvar parsedStyle = p.event.scalar_style()\n\tvar nodeStyle Style\n\tswitch {\n\tcase parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = DoubleQuotedStyle\n\tcase parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = SingleQuotedStyle\n\tcase parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0:\n\t\tnodeStyle = LiteralStyle\n\tcase parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0:\n\t\tnodeStyle = FoldedStyle\n\t}\n\tvar nodeValue = string(p.event.value)\n\tvar nodeTag = string(p.event.tag)\n\tvar defaultTag string\n\tif nodeStyle == 0 {\n\t\tif nodeValue == \"<<\" {\n\t\t\tdefaultTag = mergeTag\n\t\t}\n\t} else {\n\t\tdefaultTag = strTag\n\t}\n\tn := p.node(ScalarNode, defaultTag, nodeTag, nodeValue)\n\tn.Style |= nodeStyle\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *Node {\n\tn := p.node(SequenceNode, seqTag, string(p.event.tag), \"\")\n\tif p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 {\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tp.parseChild(n)\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *Node {\n\tn := p.node(MappingNode, mapTag, string(p.event.tag), \"\")\n\tblock := true\n\tif p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 {\n\t\tblock = false\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tk := p.parseChild(n)\n\t\tif block && k.FootComment != \"\" {\n\t\t\t// Must be a foot comment for the prior value when being dedented.\n\t\t\tif len(n.Content) > 2 {\n\t\t\t\tn.Content[len(n.Content)-3].FootComment = k.FootComment\n\t\t\t\tk.FootComment = \"\"\n\t\t\t}\n\t\t}\n\t\tv := p.parseChild(n)\n\t\tif k.FootComment == \"\" && v.FootComment != \"\" {\n\t\t\tk.FootComment = v.FootComment\n\t\t\tv.FootComment = \"\"\n\t\t}\n\t\tif p.peek() == yaml_TAIL_COMMENT_EVENT {\n\t\t\tif k.FootComment == \"\" {\n\t\t\t\tk.FootComment = string(p.event.foot_comment)\n\t\t\t}\n\t\t\tp.expect(yaml_TAIL_COMMENT_EVENT)\n\t\t}\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tif n.Style&FlowStyle == 0 && n.FootComment != \"\" && len(n.Content) > 1 {\n\t\tn.Content[len(n.Content)-2].FootComment = n.FootComment\n\t\tn.FootComment = \"\"\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *Node\n\taliases map[*Node]bool\n\tterrors []string\n\n\tstringMapType  reflect.Type\n\tgeneralMapType reflect.Type\n\n\tknownFields bool\n\tuniqueKeys  bool\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n\n\tmergedFields map[interface{}]bool\n}\n\nvar (\n\tnodeType       = reflect.TypeOf(Node{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tstringMapType  = reflect.TypeOf(map[string]interface{}{})\n\tgeneralMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = generalMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder() *decoder {\n\td := &decoder{\n\t\tstringMapType:  stringMapType,\n\t\tgeneralMapType: generalMapType,\n\t\tuniqueKeys:     true,\n\t}\n\td.aliases = make(map[*Node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *Node, tag string, out reflect.Value) {\n\tif n.Tag != \"\" {\n\t\ttag = n.Tag\n\t}\n\tvalue := n.Value\n\tif tag != seqTag && tag != mapTag {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.Line, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) {\n\terr := u.UnmarshalYAML(n)\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.ShortTag() == nullTag {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\touti := out.Addr().Interface()\n\t\t\tif u, ok := outi.(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t\tif u, ok := outi.(obsoleteUnmarshaler); ok {\n\t\t\t\tgood = d.callObsoleteUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) {\n\tif n.ShortTag() == nullTag {\n\t\treturn reflect.Value{}\n\t}\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tif out.Type() == nodeType {\n\t\tout.Set(reflect.ValueOf(n).Elem())\n\t\treturn true\n\t}\n\tswitch n.Kind {\n\tcase DocumentNode:\n\t\treturn d.document(n, out)\n\tcase AliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.Kind {\n\tcase ScalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase MappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase SequenceNode:\n\t\tgood = d.sequence(n, out)\n\tcase 0:\n\t\tif n.IsZero() {\n\t\t\treturn d.null(out)\n\t\t}\n\t\tfallthrough\n\tdefault:\n\t\tfailf(\"cannot decode node with unknown kind %d\", n.Kind)\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *Node, out reflect.Value) (good bool) {\n\tif len(n.Content) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.Content[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *Node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.Value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.Alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) null(out reflect.Value) bool {\n\tif out.CanAddr() {\n\t\tswitch out.Kind() {\n\t\tcase reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (d *decoder) scalar(n *Node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.indicatedString() {\n\t\ttag = strTag\n\t\tresolved = n.Value\n\t} else {\n\t\ttag, resolved = resolve(n.Tag, n.Value)\n\t\tif tag == binaryTag {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\treturn d.null(out)\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == binaryTag {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.Value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == binaryTag {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tout.SetString(n.Value)\n\t\treturn true\n\tcase reflect.Interface:\n\t\tout.Set(reflect.ValueOf(resolved))\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t// This used to work in v2, but it's very unfriendly.\n\t\tisDuration := out.Type() == durationType\n\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !isDuration && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !isDuration && !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\tcase string:\n\t\t\t// This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html).\n\t\t\t// It only works if explicitly attempting to unmarshal into a typed bool value.\n\t\t\tswitch resolved {\n\t\t\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\":\n\t\t\t\tout.SetBool(true)\n\t\t\t\treturn true\n\t\t\tcase \"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\t\t\tout.SetBool(false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tpanic(\"yaml internal error: please report the issue\")\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, seqTag, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.Content[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\tif d.uniqueKeys {\n\t\tnerrs := len(d.terrors)\n\t\tfor i := 0; i < l; i += 2 {\n\t\t\tni := n.Content[i]\n\t\t\tfor j := i + 2; j < l; j += 2 {\n\t\t\t\tnj := n.Content[j]\n\t\t\t\tif ni.Kind == nj.Kind && ni.Value == nj.Value {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: mapping key %#v already defined at line %d\", nj.Line, nj.Value, ni.Line))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(d.terrors) > nerrs {\n\t\t\treturn false\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tiface := out\n\t\tif isStringMap(n) {\n\t\t\tout = reflect.MakeMap(d.stringMapType)\n\t\t} else {\n\t\t\tout = reflect.MakeMap(d.generalMapType)\n\t\t}\n\t\tiface.Set(out)\n\tdefault:\n\t\td.terror(n, mapTag, out)\n\t\treturn false\n\t}\n\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tstringMapType := d.stringMapType\n\tgeneralMapType := d.generalMapType\n\tif outt.Elem() == ifaceType {\n\t\tif outt.Key().Kind() == reflect.String {\n\t\t\td.stringMapType = outt\n\t\t} else if outt.Key() == ifaceType {\n\t\t\td.generalMapType = outt\n\t\t}\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\n\tvar mergeNode *Node\n\n\tmapIsNew := false\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t\tmapIsNew = true\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.Content[i]) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.Content[i], k) {\n\t\t\tif mergedFields != nil {\n\t\t\t\tki := k.Interface()\n\t\t\t\tif mergedFields[ki] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tmergedFields[ki] = true\n\t\t\t}\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) {\n\t\t\t\tout.SetMapIndex(k, e)\n\t\t\t}\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\n\td.stringMapType = stringMapType\n\td.generalMapType = generalMapType\n\treturn true\n}\n\nfunc isStringMap(n *Node) bool {\n\tif n.Kind != MappingNode {\n\t\treturn false\n\t}\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tshortTag := n.Content[i].ShortTag()\n\t\tif shortTag != strTag && shortTag != mergeTag {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\tfield := d.fieldByIndex(n, out, index)\n\t\td.prepare(n, field)\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\tvar mergeNode *Node\n\tvar doneFields []bool\n\tif d.uniqueKeys {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.Content[i]\n\t\tif isMerge(ni) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tsname := name.String()\n\t\tif mergedFields != nil {\n\t\t\tif mergedFields[sname] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmergedFields[sname] = true\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[sname]; ok {\n\t\t\tif d.uniqueKeys {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.Line, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = d.fieldByIndex(n, out, info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.Content[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.Content[i+1], value)\n\t\t\tinlineMap.SetMapIndex(name, value)\n\t\t} else if d.knownFields {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.Line, name.String(), out.Type()))\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {\n\tmergedFields := d.mergedFields\n\tif mergedFields == nil {\n\t\td.mergedFields = make(map[interface{}]bool)\n\t\tfor i := 0; i < len(parent.Content); i += 2 {\n\t\t\tk := reflect.New(ifaceType).Elem()\n\t\t\tif d.unmarshal(parent.Content[i], k) {\n\t\t\t\td.mergedFields[k.Interface()] = true\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch merge.Kind {\n\tcase MappingNode:\n\t\td.unmarshal(merge, out)\n\tcase AliasNode:\n\t\tif merge.Alias != nil && merge.Alias.Kind != MappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(merge, out)\n\tcase SequenceNode:\n\t\tfor i := 0; i < len(merge.Content); i++ {\n\t\t\tni := merge.Content[i]\n\t\t\tif ni.Kind == AliasNode {\n\t\t\t\tif ni.Alias != nil && ni.Alias.Kind != MappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.Kind != MappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n\n\td.mergedFields = mergedFields\n}\n\nfunc isMerge(n *Node) bool {\n\treturn n.Kind == ScalarNode && n.Value == \"<<\" && (n.Tag == \"\" || n.Tag == \"!\" || shortTag(n.Tag) == mergeTag)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/emitterc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\tif emitter.column == 0 {\n\t\temitter.space_above = true\n\t}\n\temitter.column = 0\n\temitter.line++\n\t// [Go] Do this here and below and drop from everywhere else (see commented lines).\n\temitter.indention = true\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\tif emitter.column == 0 {\n\t\t\temitter.space_above = true\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t\t// [Go] Do this here and above and drop from everywhere else (see commented lines).\n\t\temitter.indention = true\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\t// [Go] This was changed so that indentations are more regular.\n\t\tif emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE {\n\t\t\t// The first indent inside a sequence will just skip the \"- \" indicator.\n\t\t\temitter.indent += 2\n\t\t} else {\n\t\t\t// Everything else aligns to the chosen indentation.\n\t\t\temitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent)\n\t\t}\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\temitter.space_above = true\n\temitter.foot_indent = -1\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical || true {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(emitter.head_comment) > 0 {\n\t\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !put_break(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, true, false, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\t// [Go] Force document foot separation.\n\temitter.foot_indent = 0\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\temitter.foot_indent = -1\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\tif emitter.canonical && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.column == 0 || emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\tif (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment) > 0 {\n\t\t// [Go] A line comment was provided for the key. That's unusual as the\n\t\t//      scanner associates line comments with the value. Either way,\n\t\t//      save the line comment and render it appropriately later.\n\t\temitter.key_line_comment = emitter.line_comment\n\t\temitter.line_comment = nil\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.key_line_comment) > 0 {\n\t\t// [Go] Line comments are generally associated with the value, but when there's\n\t\t//      no value on the same line as a mapping key they end up attached to the\n\t\t//      key itself.\n\t\tif event.typ == yaml_SCALAR_EVENT {\n\t\t\tif len(emitter.line_comment) == 0 {\n\t\t\t\t// A scalar is coming and it has no line comments by itself yet,\n\t\t\t\t// so just let it handle the line comment as usual. If it has a\n\t\t\t\t// line comment, we can't have both so the one from the key is lost.\n\t\t\t\temitter.line_comment = emitter.key_line_comment\n\t\t\t\temitter.key_line_comment = nil\n\t\t\t}\n\t\t} else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) {\n\t\t\t// An indented block follows, so write the comment right now.\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\treturn event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Write a head comment.\nfunc yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_comment(emitter, emitter.tail_comment) {\n\t\t\treturn false\n\t\t}\n\t\temitter.tail_comment = emitter.tail_comment[:0]\n\t\temitter.foot_indent = emitter.indent\n\t\tif emitter.foot_indent < 0 {\n\t\t\temitter.foot_indent = 0\n\t\t}\n\t}\n\n\tif len(emitter.head_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.head_comment) {\n\t\treturn false\n\t}\n\temitter.head_comment = emitter.head_comment[:0]\n\treturn true\n}\n\n// Write an line comment.\nfunc yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.line_comment) == 0 {\n\t\treturn true\n\t}\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.line_comment) {\n\t\treturn false\n\t}\n\temitter.line_comment = emitter.line_comment[:0]\n\treturn true\n}\n\n// Write a foot comment.\nfunc yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.foot_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.foot_comment) {\n\t\treturn false\n\t}\n\temitter.foot_comment = emitter.foot_comment[:0]\n\temitter.foot_indent = emitter.indent\n\tif emitter.foot_indent < 0 {\n\t\temitter.foot_indent = 0\n\t}\n\treturn true\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\t\ttab_characters     = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif value[i] == '\\t' {\n\t\t\ttab_characters = true\n\t\t} else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || tab_characters || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tif len(event.head_comment) > 0 {\n\t\temitter.head_comment = event.head_comment\n\t}\n\tif len(event.line_comment) > 0 {\n\t\temitter.line_comment = event.line_comment\n\t}\n\tif len(event.foot_comment) > 0 {\n\t\temitter.foot_comment = event.foot_comment\n\t}\n\tif len(event.tail_comment) > 0 {\n\t\temitter.tail_comment = event.tail_comment\n\t}\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.foot_indent == indent {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\t//emitter.indention = true\n\temitter.space_above = false\n\temitter.foot_indent = -1\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif len(value) > 0 && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\tif len(value) > 0 {\n\t\temitter.whitespace = false\n\t}\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\t//emitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\n\t//emitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool {\n\tbreaks := false\n\tpound := false\n\tfor i := 0; i < len(comment); {\n\t\tif is_break(comment, i) {\n\t\t\tif !write_break(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t\tpound = false\n\t\t} else {\n\t\t\tif breaks && !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !pound {\n\t\t\t\tif comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tpound = true\n\t\t\t}\n\t\t\tif !write(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !breaks && !put_break(emitter) {\n\t\treturn false\n\t}\n\n\temitter.whitespace = true\n\t//emitter.indention = true\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/encode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\ntype encoder struct {\n\temitter  yaml_emitter_t\n\tevent    yaml_event_t\n\tout      []byte\n\tflow     bool\n\tindent   int\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tif e.indent == 0 {\n\t\te.indent = 4\n\t}\n\te.emitter.best_indent = e.indent\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tvar node *Node\n\tif in.IsValid() {\n\t\tnode, _ = in.Interface().(*Node)\n\t}\n\tif node != nil && node.Kind == DocumentNode {\n\t\te.nodev(in)\n\t} else {\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.emit()\n\t\te.marshal(tag, in)\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.emit()\n\t}\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\ttag = shortTag(tag)\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch value := iface.(type) {\n\tcase *Node:\n\t\te.nodev(in)\n\t\treturn\n\tcase Node:\n\t\tif !in.CanAddr() {\n\t\t\tvar n = reflect.New(in.Type()).Elem()\n\t\t\tn.Set(in)\n\t\t\tin = n\n\t\t}\n\t\te.nodev(in.Addr())\n\t\treturn\n\tcase time.Time:\n\t\te.timev(tag, in)\n\t\treturn\n\tcase *time.Time:\n\t\te.timev(tag, in.Elem())\n\t\treturn\n\tcase time.Duration:\n\t\te.stringv(tag, reflect.ValueOf(value.String()))\n\t\treturn\n\tcase Marshaler:\n\t\tv, err := value.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\te.marshal(tag, reflect.ValueOf(v))\n\t\treturn\n\tcase encoding.TextMarshaler:\n\t\ttext, err := value.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Struct:\n\t\te.structv(tag, in)\n\tcase reflect.Slice, reflect.Array:\n\t\te.slicev(tag, in)\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\te.intv(tag, in)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) {\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\treturn reflect.Value{}\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = e.fieldByIndex(in, info.Inline)\n\t\t\t\tif !value.IsValid() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"cannot have key %q in inlined map: conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\n// isOldBool returns whether s is bool notation as defined in YAML 1.1.\n//\n// We continue to force strings that YAML 1.1 would interpret as booleans to be\n// rendered as quotes strings so that the marshalled output valid for YAML 1.1\n// parsing.\nfunc isOldBool(s string) (result bool) {\n\tswitch s {\n\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\",\n\t\t\"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == binaryTag {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = binaryTag\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s))\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tif e.flow {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t} else {\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\t}\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) {\n\t// TODO Kill this function. Replace all initialize calls by their underlining Go literals.\n\timplicit := tag == \"\"\n\tif !implicit {\n\t\ttag = longTag(tag)\n\t}\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.event.head_comment = head\n\te.event.line_comment = line\n\te.event.foot_comment = foot\n\te.event.tail_comment = tail\n\te.emit()\n}\n\nfunc (e *encoder) nodev(in reflect.Value) {\n\te.node(in.Interface().(*Node), \"\")\n}\n\nfunc (e *encoder) node(node *Node, tail string) {\n\t// Zero nodes behave as nil.\n\tif node.Kind == 0 && node.IsZero() {\n\t\te.nilv()\n\t\treturn\n\t}\n\n\t// If the tag was not explicitly requested, and dropping it won't change the\n\t// implicit tag of the value, don't include it in the presentation.\n\tvar tag = node.Tag\n\tvar stag = shortTag(tag)\n\tvar forceQuoting bool\n\tif tag != \"\" && node.Style&TaggedStyle == 0 {\n\t\tif node.Kind == ScalarNode {\n\t\t\tif stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 {\n\t\t\t\ttag = \"\"\n\t\t\t} else {\n\t\t\t\trtag, _ := resolve(\"\", node.Value)\n\t\t\t\tif rtag == stag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t} else if stag == strTag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t\tforceQuoting = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rtag string\n\t\t\tswitch node.Kind {\n\t\t\tcase MappingNode:\n\t\t\t\trtag = mapTag\n\t\t\tcase SequenceNode:\n\t\t\t\trtag = seqTag\n\t\t\t}\n\t\t\tif rtag == stag {\n\t\t\t\ttag = \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch node.Kind {\n\tcase DocumentNode:\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase SequenceNode:\n\t\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t\t}\n\t\te.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\te.must(yaml_sequence_end_event_initialize(&e.event))\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase MappingNode:\n\t\tstyle := yaml_BLOCK_MAPPING_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t\t}\n\t\tyaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\n\t\t// The tail logic below moves the foot comment of prior keys to the following key,\n\t\t// since the value for each key may be a nested structure and the foot needs to be\n\t\t// processed only the entirety of the value is streamed. The last tail is processed\n\t\t// with the mapping end event.\n\t\tvar tail string\n\t\tfor i := 0; i+1 < len(node.Content); i += 2 {\n\t\t\tk := node.Content[i]\n\t\t\tfoot := k.FootComment\n\t\t\tif foot != \"\" {\n\t\t\t\tkopy := *k\n\t\t\t\tkopy.FootComment = \"\"\n\t\t\t\tk = &kopy\n\t\t\t}\n\t\t\te.node(k, tail)\n\t\t\ttail = foot\n\n\t\t\tv := node.Content[i+1]\n\t\t\te.node(v, \"\")\n\t\t}\n\n\t\tyaml_mapping_end_event_initialize(&e.event)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase AliasNode:\n\t\tyaml_alias_event_initialize(&e.event, []byte(node.Value))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase ScalarNode:\n\t\tvalue := node.Value\n\t\tif !utf8.ValidString(value) {\n\t\t\tif stag == binaryTag {\n\t\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t\t}\n\t\t\tif stag != \"\" {\n\t\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", stag)\n\t\t\t}\n\t\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t\t// and encode it as base64.\n\t\t\ttag = binaryTag\n\t\t\tvalue = encodeBase64(value)\n\t\t}\n\n\t\tstyle := yaml_PLAIN_SCALAR_STYLE\n\t\tswitch {\n\t\tcase node.Style&DoubleQuotedStyle != 0:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&SingleQuotedStyle != 0:\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&LiteralStyle != 0:\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase node.Style&FoldedStyle != 0:\n\t\t\tstyle = yaml_FOLDED_SCALAR_STYLE\n\t\tcase strings.Contains(value, \"\\n\"):\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase forceQuoting:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\n\t\te.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail))\n\tdefault:\n\t\tfailf(\"cannot encode node with unknown kind %d\", node.Kind)\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/parserc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\ttoken := &parser.tokens[parser.tokens_head]\n\t\tyaml_parser_unfold_comments(parser, token)\n\t\treturn token\n\t}\n\treturn nil\n}\n\n// yaml_parser_unfold_comments walks through the comments queue and joins all\n// comments behind the position of the provided token into the respective\n// top-level comment slices in the parser.\nfunc yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) {\n\tfor parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index {\n\t\tcomment := &parser.comments[parser.comments_head]\n\t\tif len(comment.head) > 0 {\n\t\t\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\t\t\t// No heads on ends, so keep comment.head for a follow up token.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif len(parser.head_comment) > 0 {\n\t\t\t\tparser.head_comment = append(parser.head_comment, '\\n')\n\t\t\t}\n\t\t\tparser.head_comment = append(parser.head_comment, comment.head...)\n\t\t}\n\t\tif len(comment.foot) > 0 {\n\t\t\tif len(parser.foot_comment) > 0 {\n\t\t\t\tparser.foot_comment = append(parser.foot_comment, '\\n')\n\t\t\t}\n\t\t\tparser.foot_comment = append(parser.foot_comment, comment.foot...)\n\t\t}\n\t\tif len(comment.line) > 0 {\n\t\t\tif len(parser.line_comment) > 0 {\n\t\t\t\tparser.line_comment = append(parser.line_comment, '\\n')\n\t\t\t}\n\t\t\tparser.line_comment = append(parser.line_comment, comment.line...)\n\t\t}\n\t\t*comment = yaml_comment_t{}\n\t\tparser.comments_head++\n\t}\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\tvar head_comment []byte\n\t\tif len(parser.head_comment) > 0 {\n\t\t\t// [Go] Scan the header comment backwards, and if an empty line is found, break\n\t\t\t//      the header so the part before the last empty line goes into the\n\t\t\t//      document header, while the bottom of it goes into a follow up event.\n\t\t\tfor i := len(parser.head_comment) - 1; i > 0; i-- {\n\t\t\t\tif parser.head_comment[i] == '\\n' {\n\t\t\t\t\tif i == len(parser.head_comment)-1 {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else if parser.head_comment[i-1] == '\\n' {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i-1]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\n\t\t\thead_comment: head_comment,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tif len(event.head_comment) > 0 && len(event.foot_comment) == 0 {\n\t\tevent.foot_comment = event.head_comment\n\t\tevent.head_comment = nil\n\t}\n\treturn true\n}\n\nfunc yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {\n\tevent.head_comment = parser.head_comment\n\tevent.line_comment = parser.line_comment\n\tevent.foot_comment = parser.foot_comment\n\tparser.head_comment = nil\n\tparser.line_comment = nil\n\tparser.foot_comment = nil\n\tparser.tail_comment = nil\n\tparser.stem_comment = nil\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Split stem comment from head comment.\n//\n// When a sequence or map is found under a sequence entry, the former head comment\n// is assigned to the underlying sequence or map as a whole, not the individual\n// sequence or map entry as would be expected otherwise. To handle this case the\n// previous head comment is moved aside as the stem comment.\nfunc yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {\n\tif stem_len == 0 {\n\t\treturn\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN {\n\t\treturn\n\t}\n\n\tparser.stem_comment = parser.head_comment[:stem_len]\n\tif len(parser.head_comment) == stem_len {\n\t\tparser.head_comment = nil\n\t} else {\n\t\t// Copy suffix to prevent very strange bugs if someone ever appends\n\t\t// further bytes to the prefix in the stem_comment slice above.\n\t\tparser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...)\n\t}\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// [Go] A tail comment was left from the prior mapping value processed. Emit an event\n\t//      as it needs to be processed with that value and not the following key.\n\tif len(parser.tail_comment) > 0 {\n\t\t*event = yaml_event_t{\n\t\t\ttyp:          yaml_TAIL_COMMENT_EVENT,\n\t\t\tstart_mark:   token.start_mark,\n\t\t\tend_mark:     token.end_mark,\n\t\t\tfoot_comment: parser.tail_comment,\n\t\t}\n\t\tparser.tail_comment = nil\n\t\treturn true\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/readerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests\n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/resolve.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, boolTag, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{false, boolTag, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{nil, nullTag, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), floatTag, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), floatTag, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), floatTag, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), floatTag, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", mergeTag, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst (\n\tnullTag      = \"!!null\"\n\tboolTag      = \"!!bool\"\n\tstrTag       = \"!!str\"\n\tintTag       = \"!!int\"\n\tfloatTag     = \"!!float\"\n\ttimestampTag = \"!!timestamp\"\n\tseqTag       = \"!!seq\"\n\tmapTag       = \"!!map\"\n\tbinaryTag    = \"!!binary\"\n\tmergeTag     = \"!!merge\"\n)\n\nvar longTags = make(map[string]string)\nvar shortTags = make(map[string]string)\n\nfunc init() {\n\tfor _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} {\n\t\tltag := longTag(stag)\n\t\tlongTags[stag] = ltag\n\t\tshortTags[ltag] = stag\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\tif stag, ok := shortTags[tag]; ok {\n\t\t\treturn stag\n\t\t}\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\tif ltag, ok := longTags[tag]; ok {\n\t\t\treturn ltag\n\t\t}\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", strTag, boolTag, intTag, floatTag, nullTag, timestampTag:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\ttag = shortTag(tag)\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, strTag, binaryTag:\n\t\t\treturn\n\t\tcase floatTag:\n\t\t\tif rtag == intTag {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != strTag && tag != binaryTag {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn floatTag, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == timestampTag {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn timestampTag, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn intTag, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn intTag, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn floatTag, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Octals as introduced in version 1.2 of the spec.\n\t\t\t// Octals from the 1.1 spec, spelled as 0777, are still\n\t\t\t// decoded by default in v3 as well for compatibility.\n\t\t\t// May be dropped in v4 depending on how usage evolves.\n\t\t\tif strings.HasPrefix(plain, \"0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"internal error: missing handler for resolver table: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn strTag, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/scannerc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t\tparser.newlines++\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t\tparser.newlines++\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\tparser.newlines++\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// [Go] The comment parsing logic requires a lookahead of two tokens\n\t\t// so that foot comments may be parsed in time of associating them\n\t\t// with the tokens that are parsed before them, and also for line\n\t\t// comments to be transformed into head comments in some edge cases.\n\t\tif parser.tokens_head < len(parser.tokens)-2 {\n\t\t\t// If a potential simple key is at the head position, we need to fetch\n\t\t\t// the next token to disambiguate it.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\tscan_mark := parser.mark\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// [Go] While unrolling indents, transform the head comments of prior\n\t// indentation levels observed after scan_start into foot comments at\n\t// the respective indexes.\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\tcomment_mark := parser.mark\n\tif len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') {\n\t\t// Associate any following comments with the prior token.\n\t\tcomment_mark = parser.tokens[len(parser.tokens)-1].start_mark\n\t}\n\tdefer func() {\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tif len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\t\t// Sequence indicators alone have no line comments. It becomes\n\t\t\t// a head comment for whatever follows.\n\t\t\treturn\n\t\t}\n\t\tif !yaml_parser_scan_line_comment(parser, comment_mark) {\n\t\t\tok = false\n\t\t\treturn\n\t\t}\n\t}()\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] TODO Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tblock_mark := scan_mark\n\tblock_mark.index--\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\n\t\t// [Go] Reposition the end token before potential following\n\t\t//      foot comments of parent blocks. For that, search\n\t\t//      backwards for recent comments that were at the same\n\t\t//      indent as the block that is ending now.\n\t\tstop_index := block_mark.index\n\t\tfor i := len(parser.comments) - 1; i >= 0; i-- {\n\t\t\tcomment := &parser.comments[i]\n\n\t\t\tif comment.end_mark.index < stop_index {\n\t\t\t\t// Don't go back beyond the start of the comment/whitespace scan, unless column < 0.\n\t\t\t\t// If requested indent column is < 0, then the document is over and everything else\n\t\t\t\t// is a foot anyway.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif comment.start_mark.column == parser.indent+1 {\n\t\t\t\t// This is a good match. But maybe there's a former comment\n\t\t\t\t// at that same indent level, so keep searching.\n\t\t\t\tblock_mark = comment.start_mark\n\t\t\t}\n\n\t\t\t// While the end of the former comment matches with\n\t\t\t// the start of the following one, we know there's\n\t\t\t// nothing in between and scanning is still safe.\n\t\t\tstop_index = comment.scan_mark.index\n\t\t}\n\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: block_mark,\n\t\t\tend_mark:   block_mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\tscan_mark := parser.mark\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check if we just had a line comment under a sequence entry that\n\t\t// looks more like a header to the following content. Similar to this:\n\t\t//\n\t\t// - # The comment\n\t\t//   - Some data\n\t\t//\n\t\t// If so, transform the line comment to a head comment and reposition.\n\t\tif len(parser.comments) > 0 && len(parser.tokens) > 1 {\n\t\t\ttokenA := parser.tokens[len(parser.tokens)-2]\n\t\t\ttokenB := parser.tokens[len(parser.tokens)-1]\n\t\t\tcomment := &parser.comments[len(parser.comments)-1]\n\t\t\tif tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// If it was in the prior line, reposition so it becomes a\n\t\t\t\t// header of the follow up token. Otherwise, keep it in place\n\t\t\t\t// so it becomes a header of the former.\n\t\t\t\tcomment.head = comment.line\n\t\t\t\tcomment.line = nil\n\t\t\t\tif comment.start_mark.line == parser.mark.line-1 {\n\t\t\t\t\tcomment.token_mark = parser.mark\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tif !yaml_parser_scan_comments(parser, scan_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t// [Go] Discard this inline comment for the time being.\n\t\t//if !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t//\treturn false\n\t\t//}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] TODO Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tif !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t\treturn false\n\t\t}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool {\n\tif parser.newlines > 0 {\n\t\treturn true\n\t}\n\n\tvar start_mark yaml_mark_t\n\tvar text []byte\n\n\tfor peek := 0; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos+peek] == '#' {\n\t\t\tseen := parser.mark.index+peek\n\t\t\tfor {\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tskip_line(parser)\n\t\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\t\tif len(text) == 0 {\n\t\t\t\t\t\tstart_mark = parser.mark\n\t\t\t\t\t}\n\t\t\t\t\ttext = read(parser, text)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\ttoken_mark: token_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tline: text,\n\t\t})\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool {\n\ttoken := parser.tokens[len(parser.tokens)-1]\n\n\tif token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 {\n\t\ttoken = parser.tokens[len(parser.tokens)-2]\n\t}\n\n\tvar token_mark = token.start_mark\n\tvar start_mark yaml_mark_t\n\tvar next_indent = parser.indent\n\tif next_indent < 0 {\n\t\tnext_indent = 0\n\t}\n\n\tvar recent_empty = false\n\tvar first_empty = parser.newlines <= 1\n\n\tvar line = parser.mark.line\n\tvar column = parser.mark.column\n\n\tvar text []byte\n\n\t// The foot line is the place where a comment must start to\n\t// still be considered as a foot of the prior content.\n\t// If there's some content in the currently parsed line, then\n\t// the foot is the line below it.\n\tvar foot_line = -1\n\tif scan_mark.line > 0 {\n\t\tfoot_line = parser.mark.line-parser.newlines+1\n\t\tif parser.newlines == 0 && parser.mark.column > 1 {\n\t\t\tfoot_line++\n\t\t}\n\t}\n\n\tvar peek = 0\n\tfor ; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tcolumn++\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tc := parser.buffer[parser.buffer_pos+peek]\n\t\tvar close_flow = parser.flow_level > 0 && (c == ']' || c == '}')\n\t\tif close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t// Got line break or terminator.\n\t\t\tif close_flow || !recent_empty {\n\t\t\t\tif close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) {\n\t\t\t\t\t// This is the first empty line and there were no empty lines before,\n\t\t\t\t\t// so this initial part of the comment is a foot of the prior token\n\t\t\t\t\t// instead of being a head for the following one. Split it up.\n\t\t\t\t\t// Alternatively, this might also be the last comment inside a flow\n\t\t\t\t\t// scope, so it must be a footer.\n\t\t\t\t\tif len(text) > 0 {\n\t\t\t\t\t\tif start_mark.column-1 < next_indent {\n\t\t\t\t\t\t\t// If dedented it's unrelated to the prior token.\n\t\t\t\t\t\t\ttoken_mark = start_mark\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\t\t\t\ttoken_mark: token_mark,\n\t\t\t\t\t\t\tstart_mark: start_mark,\n\t\t\t\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\t\t\t\tfoot:       text,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\t\t\t\ttoken_mark = scan_mark\n\t\t\t\t\t\ttext = nil\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 {\n\t\t\t\t\t\ttext = append(text, '\\n')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !is_break(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfirst_empty = false\n\t\t\trecent_empty = true\n\t\t\tcolumn = 0\n\t\t\tline++\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) {\n\t\t\t// The comment at the different indentation is a foot of the\n\t\t\t// preceding data rather than a head of the upcoming one.\n\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\ttoken_mark: token_mark,\n\t\t\t\tstart_mark: start_mark,\n\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\tfoot:       text,\n\t\t\t})\n\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\ttoken_mark = scan_mark\n\t\t\ttext = nil\n\t\t}\n\n\t\tif parser.buffer[parser.buffer_pos+peek] != '#' {\n\t\t\tbreak\n\t\t}\n\n\t\tif len(text) == 0 {\n\t\t\tstart_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t} else {\n\t\t\ttext = append(text, '\\n')\n\t\t}\n\n\t\trecent_empty = false\n\n\t\t// Consume until after the consumed comment line.\n\t\tseen := parser.mark.index+peek\n\t\tfor {\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip_line(parser)\n\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\ttext = read(parser, text)\n\t\t\t} else {\n\t\t\t\tskip(parser)\n\t\t\t}\n\t\t}\n\n\t\tpeek = 0\n\t\tcolumn = 0\n\t\tline = parser.mark.line\n\t\tnext_indent = parser.indent\n\t\tif next_indent < 0 {\n\t\t\tnext_indent = 0\n\t\t}\n\t}\n\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\tscan_mark:  scan_mark,\n\t\t\ttoken_mark: start_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek - 1, line, column},\n\t\t\thead:       text,\n\t\t})\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/sorter.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tdigits := false\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tdigits = unicode.IsDigit(ar[i])\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\tif digits {\n\t\t\t\treturn al\n\t\t\t} else {\n\t\t\t\treturn bl\n\t\t\t}\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/writerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yaml.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document.\ntype Unmarshaler interface {\n\tUnmarshalYAML(value *Node) error\n}\n\ntype obsoleteUnmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tparser      *parser\n\tknownFields bool\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// KnownFields ensures that the keys in decoded mappings to\n// exist as fields in the struct being decoded into.\nfunc (dec *Decoder) KnownFields(enable bool) {\n\tdec.knownFields = enable\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\td.knownFields = dec.knownFields\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Decode decodes the node and stores its data into the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (n *Node) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\tdefer handleErr(&err)\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(n, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder()\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Encode encodes value v and stores its representation in n.\n//\n// See the documentation for Marshal for details about the\n// conversion of Go values into YAML.\nfunc (n *Node) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(v))\n\te.finish()\n\tp := newParser(e.out)\n\tp.textless = true\n\tdefer p.destroy()\n\tdoc := p.parse()\n\t*n = *doc.Content[0]\n\treturn nil\n}\n\n// SetIndent changes the used indentation used when encoding.\nfunc (e *Encoder) SetIndent(spaces int) {\n\tif spaces < 0 {\n\t\tpanic(\"yaml: cannot indent to a negative number of spaces\")\n\t}\n\te.encoder.indent = spaces\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\ntype Kind uint32\n\nconst (\n\tDocumentNode Kind = 1 << iota\n\tSequenceNode\n\tMappingNode\n\tScalarNode\n\tAliasNode\n)\n\ntype Style uint32\n\nconst (\n\tTaggedStyle Style = 1 << iota\n\tDoubleQuotedStyle\n\tSingleQuotedStyle\n\tLiteralStyle\n\tFoldedStyle\n\tFlowStyle\n)\n\n// Node represents an element in the YAML document hierarchy. While documents\n// are typically encoded and decoded into higher level types, such as structs\n// and maps, Node is an intermediate representation that allows detailed\n// control over the content being decoded or encoded.\n//\n// It's worth noting that although Node offers access into details such as\n// line numbers, colums, and comments, the content when re-encoded will not\n// have its original textual representation preserved. An effort is made to\n// render the data plesantly, and to preserve comments near the data they\n// describe, though.\n//\n// Values that make use of the Node type interact with the yaml package in the\n// same way any other type would do, by encoding and decoding yaml data\n// directly or indirectly into them.\n//\n// For example:\n//\n//     var person struct {\n//             Name    string\n//             Address yaml.Node\n//     }\n//     err := yaml.Unmarshal(data, &person)\n// \n// Or by itself:\n//\n//     var person Node\n//     err := yaml.Unmarshal(data, &person)\n//\ntype Node struct {\n\t// Kind defines whether the node is a document, a mapping, a sequence,\n\t// a scalar value, or an alias to another node. The specific data type of\n\t// scalar nodes may be obtained via the ShortTag and LongTag methods.\n\tKind  Kind\n\n\t// Style allows customizing the apperance of the node in the tree.\n\tStyle Style\n\n\t// Tag holds the YAML tag defining the data type for the value.\n\t// When decoding, this field will always be set to the resolved tag,\n\t// even when it wasn't explicitly provided in the YAML content.\n\t// When encoding, if this field is unset the value type will be\n\t// implied from the node properties, and if it is set, it will only\n\t// be serialized into the representation if TaggedStyle is used or\n\t// the implicit tag diverges from the provided one.\n\tTag string\n\n\t// Value holds the unescaped and unquoted represenation of the value.\n\tValue string\n\n\t// Anchor holds the anchor name for this node, which allows aliases to point to it.\n\tAnchor string\n\n\t// Alias holds the node that this alias points to. Only valid when Kind is AliasNode.\n\tAlias *Node\n\n\t// Content holds contained nodes for documents, mappings, and sequences.\n\tContent []*Node\n\n\t// HeadComment holds any comments in the lines preceding the node and\n\t// not separated by an empty line.\n\tHeadComment string\n\n\t// LineComment holds any comments at the end of the line where the node is in.\n\tLineComment string\n\n\t// FootComment holds any comments following the node and before empty lines.\n\tFootComment string\n\n\t// Line and Column hold the node position in the decoded YAML text.\n\t// These fields are not respected when encoding the node.\n\tLine   int\n\tColumn int\n}\n\n// IsZero returns whether the node has all of its fields unset.\nfunc (n *Node) IsZero() bool {\n\treturn n.Kind == 0 && n.Style == 0 && n.Tag == \"\" && n.Value == \"\" && n.Anchor == \"\" && n.Alias == nil && n.Content == nil &&\n\t\tn.HeadComment == \"\" && n.LineComment == \"\" && n.FootComment == \"\" && n.Line == 0 && n.Column == 0\n}\n\n\n// LongTag returns the long form of the tag that indicates the data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) LongTag() string {\n\treturn longTag(n.ShortTag())\n}\n\n// ShortTag returns the short form of the YAML tag that indicates data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) ShortTag() string {\n\tif n.indicatedString() {\n\t\treturn strTag\n\t}\n\tif n.Tag == \"\" || n.Tag == \"!\" {\n\t\tswitch n.Kind {\n\t\tcase MappingNode:\n\t\t\treturn mapTag\n\t\tcase SequenceNode:\n\t\t\treturn seqTag\n\t\tcase AliasNode:\n\t\t\tif n.Alias != nil {\n\t\t\t\treturn n.Alias.ShortTag()\n\t\t\t}\n\t\tcase ScalarNode:\n\t\t\ttag, _ := resolve(\"\", n.Value)\n\t\t\treturn tag\n\t\tcase 0:\n\t\t\t// Special case to make the zero value convenient.\n\t\t\tif n.IsZero() {\n\t\t\t\treturn nullTag\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\treturn shortTag(n.Tag)\n}\n\nfunc (n *Node) indicatedString() bool {\n\treturn n.Kind == ScalarNode &&\n\t\t(shortTag(n.Tag) == strTag ||\n\t\t\t(n.Tag == \"\" || n.Tag == \"!\") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0)\n}\n\n// SetString is a convenience function that sets the node to a string value\n// and defines its style in a pleasant way depending on its content.\nfunc (n *Node) SetString(s string) {\n\tn.Kind = ScalarNode\n\tif utf8.ValidString(s) {\n\t\tn.Value = s\n\t\tn.Tag = strTag\n\t} else {\n\t\tn.Value = encodeBase64(s)\n\t\tn.Tag = binaryTag\n\t}\n\tif strings.Contains(n.Value, \"\\n\") {\n\t\tn.Style = LiteralStyle\n\t}\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n\n\t// InlineUnmarshalers holds indexes to inlined fields that\n\t// contain unmarshaler values.\n\tInlineUnmarshalers [][]int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\nvar unmarshalerType reflect.Type\n\nfunc init() {\n\tvar v Unmarshaler\n\tunmarshalerType = reflect.ValueOf(&v).Elem().Type()\n}\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tinlineUnmarshalers := [][]int(nil)\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct, reflect.Ptr:\n\t\t\t\tftype := field.Type\n\t\t\t\tfor ftype.Kind() == reflect.Ptr {\n\t\t\t\t\tftype = ftype.Elem()\n\t\t\t\t}\n\t\t\t\tif ftype.Kind() != reflect.Struct {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t\t}\n\t\t\t\tif reflect.PtrTo(ftype).Implements(unmarshalerType) {\n\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, []int{i})\n\t\t\t\t} else {\n\t\t\t\t\tsinfo, err := getStructInfo(ftype)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...))\n\t\t\t\t\t}\n\t\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\t\tmsg := \"duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:          fieldsMap,\n\t\tFieldsList:         fieldsList,\n\t\tInlineMap:          inlineMap,\n\t\tInlineUnmarshalers: inlineUnmarshalers,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlh.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0\n\n\tyaml_PLAIN_SCALAR_STYLE         yaml_scalar_style_t = 1 << iota // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE                                 // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE                                 // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE                                       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE                                        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n\tyaml_TAIL_COMMENT_EVENT\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n\tyaml_TAIL_COMMENT_EVENT:   \"tail comment\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\tnewlines int // The number of line breaks since last non-break/non-blank character\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Comments\n\n\thead_comment []byte // The current head comments\n\tline_comment []byte // The current line comments\n\tfoot_comment []byte // The current foot comments\n\ttail_comment []byte // Foot comment that happens at the end of a block.\n\tstem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc)\n\n\tcomments      []yaml_comment_t // The folded comments for all parsed tokens\n\tcomments_head int\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\ntype yaml_comment_t struct {\n\n\tscan_mark  yaml_mark_t // Position where scanning for comments started\n\ttoken_mark yaml_mark_t // Position after which tokens will be associated with this comment\n\tstart_mark yaml_mark_t // Position of '#' comment mark\n\tend_mark   yaml_mark_t // Position where comment terminated\n\n\thead []byte\n\tline []byte\n\tfoot []byte\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE   // Expect the next item of a flow sequence, with the comma already written out\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE     // Expect the next key of a flow mapping, with the comma already written out\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\tspace_above bool // Is there's an empty line above?\n\tfoot_indent int  // The indent used to write the foot comment above, or -1 if none.\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\tkey_line_comment []byte\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlprivateh.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (\n\t\t// is_break:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_space:\n\t\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_blank:\n\t\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1 is the v1 version of the API.\n// AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration\n// MutatingWebhookConfiguration and ValidatingWebhookConfiguration are for the\n// new dynamic admission controller configuration.\npackage v1 // import \"k8s.io/api/admissionregistration/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{0}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MutatingWebhook) Reset()      { *m = MutatingWebhook{} }\nfunc (*MutatingWebhook) ProtoMessage() {}\nfunc (*MutatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{1}\n}\nfunc (m *MutatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhook.Merge(m, src)\n}\nfunc (m *MutatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhook proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfiguration) Reset()      { *m = MutatingWebhookConfiguration{} }\nfunc (*MutatingWebhookConfiguration) ProtoMessage() {}\nfunc (*MutatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{2}\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfigurationList) Reset()      { *m = MutatingWebhookConfigurationList{} }\nfunc (*MutatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*MutatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{3}\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *Rule) Reset()      { *m = Rule{} }\nfunc (*Rule) ProtoMessage() {}\nfunc (*Rule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{4}\n}\nfunc (m *Rule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Rule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Rule.Merge(m, src)\n}\nfunc (m *Rule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Rule) XXX_DiscardUnknown() {\n\txxx_messageInfo_Rule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Rule proto.InternalMessageInfo\n\nfunc (m *RuleWithOperations) Reset()      { *m = RuleWithOperations{} }\nfunc (*RuleWithOperations) ProtoMessage() {}\nfunc (*RuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{5}\n}\nfunc (m *RuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuleWithOperations.Merge(m, src)\n}\nfunc (m *RuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ServiceReference) Reset()      { *m = ServiceReference{} }\nfunc (*ServiceReference) ProtoMessage() {}\nfunc (*ServiceReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{6}\n}\nfunc (m *ServiceReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceReference.Merge(m, src)\n}\nfunc (m *ServiceReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceReference proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhook) Reset()      { *m = ValidatingWebhook{} }\nfunc (*ValidatingWebhook) ProtoMessage() {}\nfunc (*ValidatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{7}\n}\nfunc (m *ValidatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhook.Merge(m, src)\n}\nfunc (m *ValidatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhook proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfiguration) Reset()      { *m = ValidatingWebhookConfiguration{} }\nfunc (*ValidatingWebhookConfiguration) ProtoMessage() {}\nfunc (*ValidatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{8}\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfigurationList) Reset()      { *m = ValidatingWebhookConfigurationList{} }\nfunc (*ValidatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*ValidatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{9}\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *WebhookClientConfig) Reset()      { *m = WebhookClientConfig{} }\nfunc (*WebhookClientConfig) ProtoMessage() {}\nfunc (*WebhookClientConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aaac5994f79683e8, []int{10}\n}\nfunc (m *WebhookClientConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WebhookClientConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WebhookClientConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WebhookClientConfig.Merge(m, src)\n}\nfunc (m *WebhookClientConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WebhookClientConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WebhookClientConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WebhookClientConfig proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1.MatchCondition\")\n\tproto.RegisterType((*MutatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhook\")\n\tproto.RegisterType((*MutatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhookConfiguration\")\n\tproto.RegisterType((*MutatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhookConfigurationList\")\n\tproto.RegisterType((*Rule)(nil), \"k8s.io.api.admissionregistration.v1.Rule\")\n\tproto.RegisterType((*RuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1.RuleWithOperations\")\n\tproto.RegisterType((*ServiceReference)(nil), \"k8s.io.api.admissionregistration.v1.ServiceReference\")\n\tproto.RegisterType((*ValidatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhook\")\n\tproto.RegisterType((*ValidatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhookConfiguration\")\n\tproto.RegisterType((*ValidatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhookConfigurationList\")\n\tproto.RegisterType((*WebhookClientConfig)(nil), \"k8s.io.api.admissionregistration.v1.WebhookClientConfig\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1/generated.proto\", fileDescriptor_aaac5994f79683e8)\n}\n\nvar fileDescriptor_aaac5994f79683e8 = []byte{\n\t// 1169 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6f, 0x1b, 0x45,\n\t0x18, 0xce, 0xc6, 0x36, 0xb1, 0xc7, 0x4e, 0xd2, 0x0c, 0xd0, 0x2e, 0xa5, 0xf2, 0x5a, 0xae, 0x84,\n\t0x82, 0x00, 0x6f, 0x9b, 0x96, 0x52, 0x71, 0x41, 0xb1, 0x29, 0x28, 0x22, 0x69, 0xa3, 0x49, 0x3f,\n\t0x10, 0xea, 0xa1, 0xe3, 0xf5, 0xd8, 0x1e, 0x62, 0xef, 0xac, 0x66, 0x66, 0x4d, 0x7b, 0xe3, 0x27,\n\t0xf0, 0x17, 0xe0, 0x4f, 0xc0, 0x95, 0x5b, 0x8f, 0xbd, 0x91, 0x03, 0x5a, 0x91, 0xe5, 0xc2, 0x81,\n\t0x5f, 0x90, 0x13, 0x9a, 0xd9, 0xf5, 0xae, 0xbf, 0x12, 0x56, 0x39, 0xe4, 0x94, 0x5b, 0xe6, 0x79,\n\t0xdf, 0xf7, 0x79, 0xe7, 0x19, 0xbf, 0x1f, 0xab, 0x80, 0xdd, 0xc3, 0xfb, 0xa2, 0x41, 0x99, 0x7d,\n\t0xe8, 0xb7, 0x09, 0x77, 0x89, 0x24, 0xc2, 0x1e, 0x11, 0xb7, 0xc3, 0xb8, 0x1d, 0x1b, 0xb0, 0x47,\n\t0x6d, 0xdc, 0x19, 0x52, 0x21, 0x28, 0x73, 0x39, 0xe9, 0x51, 0x21, 0x39, 0x96, 0x94, 0xb9, 0xf6,\n\t0xe8, 0xb6, 0xdd, 0x23, 0x2e, 0xe1, 0x58, 0x92, 0x4e, 0xc3, 0xe3, 0x4c, 0x32, 0x78, 0x33, 0x0a,\n\t0x6a, 0x60, 0x8f, 0x36, 0x16, 0x06, 0x35, 0x46, 0xb7, 0xaf, 0x7f, 0xd2, 0xa3, 0xb2, 0xef, 0xb7,\n\t0x1b, 0x0e, 0x1b, 0xda, 0x3d, 0xd6, 0x63, 0xb6, 0x8e, 0x6d, 0xfb, 0x5d, 0x7d, 0xd2, 0x07, 0xfd,\n\t0x57, 0xc4, 0x79, 0xfd, 0x6e, 0x7a, 0x91, 0x21, 0x76, 0xfa, 0xd4, 0x25, 0xfc, 0x95, 0xed, 0x1d,\n\t0xf6, 0x14, 0x20, 0xec, 0x21, 0x91, 0x78, 0xc1, 0x4d, 0xae, 0xdb, 0xa7, 0x45, 0x71, 0xdf, 0x95,\n\t0x74, 0x48, 0xe6, 0x02, 0xee, 0xfd, 0x5f, 0x80, 0x70, 0xfa, 0x64, 0x88, 0x67, 0xe3, 0xea, 0x5d,\n\t0xb0, 0xb6, 0x87, 0xa5, 0xd3, 0x6f, 0x31, 0xb7, 0x43, 0x95, 0x44, 0x58, 0x03, 0x79, 0x17, 0x0f,\n\t0x89, 0x69, 0xd4, 0x8c, 0xcd, 0x52, 0xb3, 0xf2, 0x3a, 0xb0, 0x96, 0xc2, 0xc0, 0xca, 0x3f, 0xc4,\n\t0x43, 0x82, 0xb4, 0x05, 0x6e, 0x01, 0x40, 0x5e, 0x7a, 0x9c, 0xe8, 0xe7, 0x31, 0x97, 0xb5, 0x1f,\n\t0x8c, 0xfd, 0xc0, 0x83, 0xc4, 0x82, 0x26, 0xbc, 0xea, 0xbf, 0x16, 0xc1, 0xfa, 0x9e, 0x2f, 0xb1,\n\t0xa4, 0x6e, 0xef, 0x19, 0x69, 0xf7, 0x19, 0x3b, 0xcc, 0x90, 0x89, 0x83, 0x8a, 0x33, 0xa0, 0xc4,\n\t0x95, 0x2d, 0xe6, 0x76, 0x69, 0x4f, 0xe7, 0x2a, 0x6f, 0xdd, 0x6f, 0x64, 0xf8, 0x9d, 0x1a, 0x71,\n\t0x96, 0xd6, 0x44, 0x7c, 0xf3, 0x9d, 0x38, 0x47, 0x65, 0x12, 0x45, 0x53, 0x39, 0xe0, 0x73, 0x50,\n\t0xe0, 0xfe, 0x80, 0x08, 0x33, 0x57, 0xcb, 0x6d, 0x96, 0xb7, 0x3e, 0xcb, 0x94, 0x0c, 0xf9, 0x03,\n\t0xf2, 0x8c, 0xca, 0xfe, 0x23, 0x8f, 0x44, 0xa0, 0x68, 0xae, 0xc6, 0xb9, 0x0a, 0xca, 0x26, 0x50,\n\t0x44, 0x0a, 0x77, 0xc1, 0x6a, 0x17, 0xd3, 0x81, 0xcf, 0xc9, 0x3e, 0x1b, 0x50, 0xe7, 0x95, 0x99,\n\t0xd7, 0xe2, 0x3f, 0x08, 0x03, 0x6b, 0xf5, 0xab, 0x49, 0xc3, 0x49, 0x60, 0x6d, 0x4c, 0x01, 0x8f,\n\t0x5f, 0x79, 0x04, 0x4d, 0x07, 0xc3, 0x2f, 0x41, 0x79, 0xa8, 0x7e, 0xbd, 0x98, 0xab, 0xa4, 0xb9,\n\t0xea, 0x61, 0x60, 0x95, 0xf7, 0x52, 0xf8, 0x24, 0xb0, 0xd6, 0x27, 0x8e, 0x9a, 0x67, 0x32, 0x0c,\n\t0xbe, 0x04, 0x1b, 0xea, 0xb5, 0x85, 0x87, 0x1d, 0x72, 0x40, 0x06, 0xc4, 0x91, 0x8c, 0x9b, 0x05,\n\t0xfd, 0xd4, 0x77, 0x26, 0xd4, 0x27, 0x75, 0xd5, 0xf0, 0x0e, 0x7b, 0x0a, 0x10, 0x0d, 0x55, 0xbe,\n\t0x4a, 0xfe, 0x2e, 0x6e, 0x93, 0xc1, 0x38, 0xb4, 0xf9, 0x6e, 0x18, 0x58, 0x1b, 0x0f, 0x67, 0x19,\n\t0xd1, 0x7c, 0x12, 0xc8, 0xc0, 0x1a, 0x6b, 0x7f, 0x4f, 0x1c, 0x99, 0xa4, 0x2d, 0x9f, 0x3f, 0x2d,\n\t0x0c, 0x03, 0x6b, 0xed, 0xd1, 0x14, 0x1d, 0x9a, 0xa1, 0x57, 0x0f, 0x26, 0x68, 0x87, 0x3c, 0xe8,\n\t0x76, 0x89, 0x23, 0x85, 0xf9, 0x56, 0xfa, 0x60, 0x07, 0x29, 0xac, 0x1e, 0x2c, 0x3d, 0xb6, 0x06,\n\t0x58, 0x08, 0x34, 0x19, 0x06, 0x3f, 0x07, 0x6b, 0xaa, 0xa7, 0x98, 0x2f, 0x0f, 0x88, 0xc3, 0xdc,\n\t0x8e, 0x30, 0x57, 0x6a, 0xc6, 0x66, 0x21, 0xba, 0xc1, 0xe3, 0x29, 0x0b, 0x9a, 0xf1, 0x84, 0x4f,\n\t0xc0, 0xb5, 0xa4, 0x8a, 0x10, 0x19, 0x51, 0xf2, 0xc3, 0x53, 0xc2, 0xd5, 0x41, 0x98, 0xc5, 0x5a,\n\t0x6e, 0xb3, 0xd4, 0x7c, 0x3f, 0x0c, 0xac, 0x6b, 0xdb, 0x8b, 0x5d, 0xd0, 0x69, 0xb1, 0xf0, 0x05,\n\t0x80, 0x9c, 0x50, 0x77, 0xc4, 0x1c, 0x5d, 0x7e, 0x71, 0x41, 0x00, 0xad, 0xef, 0x56, 0x18, 0x58,\n\t0x10, 0xcd, 0x59, 0x4f, 0x02, 0xeb, 0xea, 0x3c, 0xaa, 0xcb, 0x63, 0x01, 0x17, 0x1c, 0x81, 0xf5,\n\t0xe1, 0xd4, 0xa4, 0x10, 0x66, 0x45, 0x77, 0xc8, 0x9d, 0x4c, 0x1d, 0x32, 0x3d, 0x65, 0x9a, 0xd7,\n\t0xe2, 0xee, 0x58, 0x9f, 0xc6, 0x05, 0x9a, 0x4d, 0x52, 0x3f, 0x32, 0xc0, 0x8d, 0x99, 0xc9, 0x11,\n\t0x75, 0xaa, 0x1f, 0x91, 0xc3, 0x17, 0xa0, 0xa8, 0x0a, 0xa2, 0x83, 0x25, 0xd6, 0xa3, 0xa4, 0xbc,\n\t0x75, 0x2b, 0x5b, 0xf9, 0x44, 0xb5, 0xb2, 0x47, 0x24, 0x4e, 0xc7, 0x57, 0x8a, 0xa1, 0x84, 0x15,\n\t0x3e, 0x05, 0xc5, 0x38, 0xb3, 0x30, 0x97, 0xb5, 0xe6, 0xbb, 0xd9, 0x34, 0x4f, 0x5f, 0xbb, 0x99,\n\t0x57, 0x59, 0x50, 0xc2, 0x55, 0xff, 0xc7, 0x00, 0xb5, 0xb3, 0xa4, 0xed, 0x52, 0x21, 0xe1, 0xf3,\n\t0x39, 0x79, 0x8d, 0x8c, 0xdd, 0x41, 0x45, 0x24, 0xee, 0x4a, 0x2c, 0xae, 0x38, 0x46, 0x26, 0xa4,\n\t0x75, 0x41, 0x81, 0x4a, 0x32, 0x1c, 0xeb, 0xda, 0x3e, 0x8f, 0xae, 0xa9, 0x3b, 0xa7, 0x73, 0x6f,\n\t0x47, 0xf1, 0xa2, 0x88, 0xbe, 0xfe, 0xbb, 0x01, 0xf2, 0x6a, 0x10, 0xc2, 0x8f, 0x40, 0x09, 0x7b,\n\t0xf4, 0x6b, 0xce, 0x7c, 0x4f, 0x98, 0x86, 0xae, 0xf8, 0xd5, 0x30, 0xb0, 0x4a, 0xdb, 0xfb, 0x3b,\n\t0x11, 0x88, 0x52, 0x3b, 0xbc, 0x0d, 0xca, 0xd8, 0xa3, 0x49, 0x83, 0x2c, 0x6b, 0xf7, 0x75, 0xd5,\n\t0xae, 0xdb, 0xfb, 0x3b, 0x49, 0x53, 0x4c, 0xfa, 0x28, 0x7e, 0x4e, 0x04, 0xf3, 0xb9, 0x13, 0x8f,\n\t0xf0, 0x98, 0x1f, 0x8d, 0x41, 0x94, 0xda, 0xe1, 0xc7, 0xa0, 0x20, 0x1c, 0xe6, 0x91, 0x78, 0x0a,\n\t0x5f, 0x55, 0xd7, 0x3e, 0x50, 0xc0, 0x49, 0x60, 0x95, 0xf4, 0x1f, 0xba, 0x1d, 0x22, 0xa7, 0xfa,\n\t0x2f, 0x06, 0x80, 0xf3, 0x83, 0x1e, 0x7e, 0x01, 0x00, 0x4b, 0x4e, 0xb1, 0x24, 0x4b, 0xd7, 0x52,\n\t0x82, 0x9e, 0x04, 0xd6, 0x6a, 0x72, 0xd2, 0x94, 0x13, 0x21, 0xf0, 0x1b, 0x90, 0x57, 0xcb, 0x21,\n\t0xde, 0x6e, 0x1f, 0x66, 0x5e, 0x38, 0xe9, 0xca, 0x54, 0x27, 0xa4, 0x49, 0xea, 0x3f, 0x1b, 0xe0,\n\t0xca, 0x01, 0xe1, 0x23, 0xea, 0x10, 0x44, 0xba, 0x84, 0x13, 0xd7, 0x21, 0xd0, 0x06, 0xa5, 0x64,\n\t0xf8, 0xc6, 0xeb, 0x76, 0x23, 0x8e, 0x2d, 0x25, 0x83, 0x1a, 0xa5, 0x3e, 0xc9, 0x6a, 0x5e, 0x3e,\n\t0x75, 0x35, 0xdf, 0x00, 0x79, 0x0f, 0xcb, 0xbe, 0x99, 0xd3, 0x1e, 0x45, 0x65, 0xdd, 0xc7, 0xb2,\n\t0x8f, 0x34, 0xaa, 0xad, 0x8c, 0x4b, 0xfd, 0xae, 0x85, 0xd8, 0xca, 0xb8, 0x44, 0x1a, 0xad, 0xff,\n\t0xb1, 0x02, 0x36, 0x9e, 0xe2, 0x01, 0xed, 0x5c, 0x7e, 0x0e, 0x5c, 0x7e, 0x0e, 0x9c, 0xf9, 0x39,\n\t0x00, 0x2e, 0x3f, 0x07, 0xce, 0xf5, 0x39, 0xb0, 0x60, 0x59, 0x97, 0x2f, 0x62, 0x59, 0xff, 0x69,\n\t0x80, 0xea, 0x5c, 0x67, 0x5f, 0xf4, 0xba, 0xfe, 0x76, 0x6e, 0x5d, 0xdf, 0xcb, 0xa4, 0x7a, 0xee,\n\t0xe2, 0x73, 0x0b, 0xfb, 0x5f, 0x03, 0xd4, 0xcf, 0x96, 0x77, 0x01, 0x2b, 0xbb, 0x3f, 0xbd, 0xb2,\n\t0x5b, 0xe7, 0xd3, 0x96, 0x65, 0x69, 0xff, 0x66, 0x80, 0xb7, 0x17, 0xcc, 0x4d, 0xf8, 0x1e, 0xc8,\n\t0xf9, 0x7c, 0x10, 0x8f, 0xfe, 0x95, 0x30, 0xb0, 0x72, 0x4f, 0xd0, 0x2e, 0x52, 0x18, 0x7c, 0x0e,\n\t0x56, 0x44, 0xb4, 0x7d, 0x62, 0xe5, 0x9f, 0x66, 0xba, 0xde, 0xec, 0xc6, 0x6a, 0x96, 0xc3, 0xc0,\n\t0x5a, 0x19, 0xa3, 0x63, 0x4a, 0xb8, 0x09, 0x8a, 0x0e, 0x6e, 0xfa, 0x6e, 0x27, 0xde, 0x96, 0x95,\n\t0x66, 0x45, 0x3d, 0x52, 0x6b, 0x3b, 0xc2, 0x50, 0x62, 0x6d, 0xee, 0xbc, 0x3e, 0xae, 0x2e, 0xbd,\n\t0x39, 0xae, 0x2e, 0x1d, 0x1d, 0x57, 0x97, 0x7e, 0x0c, 0xab, 0xc6, 0xeb, 0xb0, 0x6a, 0xbc, 0x09,\n\t0xab, 0xc6, 0x51, 0x58, 0x35, 0xfe, 0x0a, 0xab, 0xc6, 0x4f, 0x7f, 0x57, 0x97, 0xbe, 0xbb, 0x99,\n\t0xe1, 0xbf, 0x04, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xe1, 0x3a, 0x73, 0x64, 0x10, 0x00,\n\t0x00,\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\ti -= len(*m.ReinvocationPolicy)\n\t\tcopy(dAtA[i:], *m.ReinvocationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReinvocationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Rule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Rule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Rule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIVersions) > 0 {\n\t\tfor iNdEx := len(m.APIVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Rule.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Operations) > 0 {\n\t\tfor iNdEx := len(m.Operations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Operations[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Operations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Path != nil {\n\t\ti -= len(*m.Path)\n\t\tcopy(dAtA[i:], *m.Path)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WebhookClientConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WebhookClientConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.URL != nil {\n\t\ti -= len(*m.URL)\n\t\tcopy(dAtA[i:], *m.URL)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.CABundle != nil {\n\t\ti -= len(m.CABundle)\n\t\tcopy(dAtA[i:], m.CABundle)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MutatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\tl = len(*m.ReinvocationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Rule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIVersions) > 0 {\n\t\tfor _, s := range m.APIVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Operations) > 0 {\n\t\tfor _, s := range m.Operations {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Rule.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Path != nil {\n\t\tl = len(*m.Path)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *WebhookClientConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CABundle != nil {\n\t\tl = len(m.CABundle)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.URL != nil {\n\t\tl = len(*m.URL)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"RuleWithOperations\", \"RuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ReinvocationPolicy:` + valueToStringGenerated(this.ReinvocationPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]MutatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"MutatingWebhook\", \"MutatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingWebhookConfiguration\", \"MutatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Rule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Rule{`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`APIVersions:` + fmt.Sprintf(\"%v\", this.APIVersions) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuleWithOperations{`,\n\t\t`Operations:` + fmt.Sprintf(\"%v\", this.Operations) + `,`,\n\t\t`Rule:` + strings.Replace(strings.Replace(this.Rule.String(), \"Rule\", \"Rule\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceReference{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Path:` + valueToStringGenerated(this.Path) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"RuleWithOperations\", \"RuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]ValidatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhook\", \"ValidatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhookConfiguration\", \"ValidatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WebhookClientConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WebhookClientConfig{`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"ServiceReference\", \"ServiceReference\", 1) + `,`,\n\t\t`CABundle:` + valueToStringGenerated(this.CABundle) + `,`,\n\t\t`URL:` + valueToStringGenerated(this.URL) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReinvocationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ReinvocationPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.ReinvocationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, MutatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Rule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Rule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Rule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersions = append(m.APIVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScopeType(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operations\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operations = append(m.Operations, OperationType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Rule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Path = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, ValidatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WebhookClientConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &ServiceReference{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CABundle\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.CABundle == nil {\n\t\t\t\tm.CABundle = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field URL\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.URL = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1\";\n\n// MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage MutatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  repeated RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 11;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some.\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 10 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  repeated string admissionReviewVersions = 8;\n\n  // reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n  // Allowed values are \"Never\" and \"IfNeeded\".\n  //\n  // Never: the webhook will not be called more than once in a single admission evaluation.\n  //\n  // IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n  // if the object being admitted is modified by other admission plugins after the initial webhook call.\n  // Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n  // Note:\n  // * the number of additional invocations is not guaranteed to be exactly one.\n  // * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n  // * webhooks that use this option may be reordered to minimize the number of additional invocations.\n  // * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n  //\n  // Defaults to \"Never\".\n  // +optional\n  optional string reinvocationPolicy = 10;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=AdmissionWebhookMatchConditions\n  // +optional\n  repeated MatchCondition matchConditions = 12;\n}\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\nmessage MutatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated MutatingWebhook Webhooks = 2;\n}\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\nmessage MutatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of MutatingWebhookConfiguration.\n  repeated MutatingWebhookConfiguration items = 2;\n}\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\nmessage Rule {\n  // APIGroups is the API groups the resources belong to. '*' is all groups.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string apiGroups = 1;\n\n  // APIVersions is the API versions the resources belong to. '*' is all versions.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string apiVersions = 2;\n\n  // Resources is a list of resources this rule applies to.\n  //\n  // For example:\n  // 'pods' means pods.\n  // 'pods/log' means the log subresource of pods.\n  // '*' means all resources, but not subresources.\n  // 'pods/*' means all subresources of pods.\n  // '*/scale' means all scale subresources.\n  // '*/*' means all resources and their subresources.\n  //\n  // If wildcard is present, the validation rule will ensure resources do not\n  // overlap with each other.\n  //\n  // Depending on the enclosing object, subresources might not be allowed.\n  // Required.\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // scope specifies the scope of this rule.\n  // Valid values are \"Cluster\", \"Namespaced\", and \"*\"\n  // \"Cluster\" means that only cluster-scoped resources will match this rule.\n  // Namespace API objects are cluster-scoped.\n  // \"Namespaced\" means that only namespaced resources will match this rule.\n  // \"*\" means that there are no scope restrictions.\n  // Subresources match the scope of their parent resource.\n  // Default is \"*\".\n  //\n  // +optional\n  optional string scope = 4;\n}\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\nmessage RuleWithOperations {\n  // Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *\n  // for all of those operations and any future admission operations that are added.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string operations = 1;\n\n  // Rule is embedded, it describes other criteria of the rule, like\n  // APIGroups, APIVersions, Resources, etc.\n  optional Rule rule = 2;\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\nmessage ServiceReference {\n  // `namespace` is the namespace of the service.\n  // Required\n  optional string namespace = 1;\n\n  // `name` is the name of the service.\n  // Required\n  optional string name = 2;\n\n  // `path` is an optional URL path which will be sent in any request to\n  // this service.\n  // +optional\n  optional string path = 3;\n\n  // If specified, the port on the service that hosting webhook.\n  // Default to 443 for backward compatibility.\n  // `port` should be a valid port number (1-65535, inclusive).\n  // +optional\n  optional int32 port = 4;\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage ValidatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  repeated RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 10;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some.\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 10 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  repeated string admissionReviewVersions = 8;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=AdmissionWebhookMatchConditions\n  // +optional\n  repeated MatchCondition matchConditions = 11;\n}\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\nmessage ValidatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated ValidatingWebhook Webhooks = 2;\n}\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\nmessage ValidatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingWebhookConfiguration.\n  repeated ValidatingWebhookConfiguration items = 2;\n}\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\nmessage WebhookClientConfig {\n  // `url` gives the location of the webhook, in standard URL form\n  // (`scheme://host:port/path`). Exactly one of `url` or `service`\n  // must be specified.\n  //\n  // The `host` should not refer to a service running in the cluster; use\n  // the `service` field instead. The host might be resolved via external\n  // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n  // in-cluster DNS as that would be a layering violation). `host` may\n  // also be an IP address.\n  //\n  // Please note that using `localhost` or `127.0.0.1` as a `host` is\n  // risky unless you take great care to run this webhook on all hosts\n  // which run an apiserver which might need to make calls to this\n  // webhook. Such installs are likely to be non-portable, i.e., not easy\n  // to turn up in a new cluster.\n  //\n  // The scheme must be \"https\"; the URL must begin with \"https://\".\n  //\n  // A path is optional, and if present may be any string permissible in\n  // a URL. You may use the path to pass an arbitrary string to the\n  // webhook, for example, a cluster identifier.\n  //\n  // Attempting to use a user or basic auth e.g. \"user:password@\" is not\n  // allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n  // allowed, either.\n  //\n  // +optional\n  optional string url = 3;\n\n  // `service` is a reference to the service for this webhook. Either\n  // `service` or `url` must be specified.\n  //\n  // If the webhook is running within the cluster, then you should use `service`.\n  //\n  // +optional\n  optional ServiceReference service = 1;\n\n  // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n  // If unspecified, system trust roots on the apiserver are used.\n  // +optional\n  optional bytes caBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingWebhookConfiguration{},\n\t\t&ValidatingWebhookConfigurationList{},\n\t\t&MutatingWebhookConfiguration{},\n\t\t&MutatingWebhookConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule struct {\n\t// APIGroups is the API groups the resources belong to. '*' is all groups.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,1,rep,name=apiGroups\"`\n\n\t// APIVersions is the API versions the resources belong to. '*' is all versions.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tAPIVersions []string `json:\"apiVersions,omitempty\" protobuf:\"bytes,2,rep,name=apiVersions\"`\n\n\t// Resources is a list of resources this rule applies to.\n\t//\n\t// For example:\n\t// 'pods' means pods.\n\t// 'pods/log' means the log subresource of pods.\n\t// '*' means all resources, but not subresources.\n\t// 'pods/*' means all subresources of pods.\n\t// '*/scale' means all scale subresources.\n\t// '*/*' means all resources and their subresources.\n\t//\n\t// If wildcard is present, the validation rule will ensure resources do not\n\t// overlap with each other.\n\t//\n\t// Depending on the enclosing object, subresources might not be allowed.\n\t// Required.\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// scope specifies the scope of this rule.\n\t// Valid values are \"Cluster\", \"Namespaced\", and \"*\"\n\t// \"Cluster\" means that only cluster-scoped resources will match this rule.\n\t// Namespace API objects are cluster-scoped.\n\t// \"Namespaced\" means that only namespaced resources will match this rule.\n\t// \"*\" means that there are no scope restrictions.\n\t// Subresources match the scope of their parent resource.\n\t// Default is \"*\".\n\t//\n\t// +optional\n\tScope *ScopeType `json:\"scope,omitempty\" protobuf:\"bytes,4,rep,name=scope\"`\n}\n\n// ScopeType specifies a scope for a Rule.\n// +enum\ntype ScopeType string\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = \"Cluster\"\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = \"Namespaced\"\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = \"*\"\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\n// +enum\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// MatchPolicyType specifies the type of match policy.\n// +enum\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule.\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// SideEffectClass specifies the types of side effects a webhook may have.\n// +enum\ntype SideEffectClass string\n\nconst (\n\t// SideEffectClassUnknown means that no information is known about the side effects of calling the webhook.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassUnknown SideEffectClass = \"Unknown\"\n\t// SideEffectClassNone means that calling the webhook will have no side effects.\n\tSideEffectClassNone SideEffectClass = \"None\"\n\t// SideEffectClassSome means that calling the webhook will possibly have side effects.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassSome SideEffectClass = \"Some\"\n\t// SideEffectClassNoneOnDryRun means that calling the webhook will possibly have side effects, but if the\n\t// request being reviewed has the dry-run attribute, the side effects will be suppressed.\n\tSideEffectClassNoneOnDryRun SideEffectClass = \"NoneOnDryRun\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\ntype ValidatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tWebhooks []ValidatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\ntype ValidatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingWebhookConfiguration.\n\tItems []ValidatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\ntype MutatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tWebhooks []MutatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\ntype MutatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of MutatingWebhookConfiguration.\n\tItems []MutatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype ValidatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,10,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some.\n\tSideEffects *SideEffectClass `json:\"sideEffects\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 10 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=AdmissionWebhookMatchConditions\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,11,opt,name=matchConditions\"`\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype MutatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,11,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some.\n\tSideEffects *SideEffectClass `json:\"sideEffects\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 10 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n\t// Allowed values are \"Never\" and \"IfNeeded\".\n\t//\n\t// Never: the webhook will not be called more than once in a single admission evaluation.\n\t//\n\t// IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n\t// if the object being admitted is modified by other admission plugins after the initial webhook call.\n\t// Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n\t// Note:\n\t// * the number of additional invocations is not guaranteed to be exactly one.\n\t// * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n\t// * webhooks that use this option may be reordered to minimize the number of additional invocations.\n\t// * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\t//\n\t// Defaults to \"Never\".\n\t// +optional\n\tReinvocationPolicy *ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\" protobuf:\"bytes,10,opt,name=reinvocationPolicy,casttype=ReinvocationPolicyType\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=AdmissionWebhookMatchConditions\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,12,opt,name=matchConditions\"`\n}\n\n// ReinvocationPolicyType specifies what type of policy the admission hook uses.\n// +enum\ntype ReinvocationPolicyType string\n\nconst (\n\t// NeverReinvocationPolicy indicates that the webhook must not be called more than once in a\n\t// single admission evaluation.\n\tNeverReinvocationPolicy ReinvocationPolicyType = \"Never\"\n\t// IfNeededReinvocationPolicy indicates that the webhook may be called at least one\n\t// additional time as part of the admission evaluation if the object being admitted is\n\t// modified by other admission plugins after the initial webhook call.\n\tIfNeededReinvocationPolicy ReinvocationPolicyType = \"IfNeeded\"\n)\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations struct {\n\t// Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *\n\t// for all of those operations and any future admission operations that are added.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tOperations []OperationType `json:\"operations,omitempty\" protobuf:\"bytes,1,rep,name=operations,casttype=OperationType\"`\n\t// Rule is embedded, it describes other criteria of the rule, like\n\t// APIGroups, APIVersions, Resources, etc.\n\tRule `json:\",inline\" protobuf:\"bytes,2,opt,name=rule\"`\n}\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType string\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = \"*\"\n\tCreate       OperationType = \"CREATE\"\n\tUpdate       OperationType = \"UPDATE\"\n\tDelete       OperationType = \"DELETE\"\n\tConnect      OperationType = \"CONNECT\"\n)\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\ntype WebhookClientConfig struct {\n\t// `url` gives the location of the webhook, in standard URL form\n\t// (`scheme://host:port/path`). Exactly one of `url` or `service`\n\t// must be specified.\n\t//\n\t// The `host` should not refer to a service running in the cluster; use\n\t// the `service` field instead. The host might be resolved via external\n\t// DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n\t// in-cluster DNS as that would be a layering violation). `host` may\n\t// also be an IP address.\n\t//\n\t// Please note that using `localhost` or `127.0.0.1` as a `host` is\n\t// risky unless you take great care to run this webhook on all hosts\n\t// which run an apiserver which might need to make calls to this\n\t// webhook. Such installs are likely to be non-portable, i.e., not easy\n\t// to turn up in a new cluster.\n\t//\n\t// The scheme must be \"https\"; the URL must begin with \"https://\".\n\t//\n\t// A path is optional, and if present may be any string permissible in\n\t// a URL. You may use the path to pass an arbitrary string to the\n\t// webhook, for example, a cluster identifier.\n\t//\n\t// Attempting to use a user or basic auth e.g. \"user:password@\" is not\n\t// allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n\t// allowed, either.\n\t//\n\t// +optional\n\tURL *string `json:\"url,omitempty\" protobuf:\"bytes,3,opt,name=url\"`\n\n\t// `service` is a reference to the service for this webhook. Either\n\t// `service` or `url` must be specified.\n\t//\n\t// If the webhook is running within the cluster, then you should use `service`.\n\t//\n\t// +optional\n\tService *ServiceReference `json:\"service,omitempty\" protobuf:\"bytes,1,opt,name=service\"`\n\n\t// `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n\t// If unspecified, system trust roots on the apiserver are used.\n\t// +optional\n\tCABundle []byte `json:\"caBundle,omitempty\" protobuf:\"bytes,2,opt,name=caBundle\"`\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\ntype ServiceReference struct {\n\t// `namespace` is the namespace of the service.\n\t// Required\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of the service.\n\t// Required\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// `path` is an optional URL path which will be sent in any request to\n\t// this service.\n\t// +optional\n\tPath *string `json:\"path,omitempty\" protobuf:\"bytes,3,opt,name=path\"`\n\n\t// If specified, the port on the service that hosting webhook.\n\t// Default to 443 for backward compatibility.\n\t// `port` should be a valid port number (1-65535, inclusive).\n\t// +optional\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"varint,4,opt,name=port\"`\n}\n\n// MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\ntype MatchCondition struct {\n\t// Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n\t// as well as providing an identifier for logging purposes. A good name should be descriptive of\n\t// the associated expression.\n\t// Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n\t// must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n\t// '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n\t// optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\t//\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n\t// CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\t//\n\t// 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n\t// 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\t//\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=expression\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_MatchCondition = map[string]string{\n\t\"\":           \"MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\",\n\t\"name\":       \"Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\\n\\nRequired.\",\n\t\"expression\": \"Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\\n\\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\\n\\nRequired.\",\n}\n\nfunc (MatchCondition) SwaggerDoc() map[string]string {\n\treturn map_MatchCondition\n}\n\nvar map_MutatingWebhook = map[string]string{\n\t\"\":                        \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Equivalent\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.\",\n\t\"reinvocationPolicy\":      \"reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \\\"Never\\\" and \\\"IfNeeded\\\".\\n\\nNever: the webhook will not be called more than once in a single admission evaluation.\\n\\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\\n\\nDefaults to \\\"Never\\\".\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\\n\\nThis is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\",\n}\n\nfunc (MutatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhook\n}\n\nvar map_MutatingWebhookConfiguration = map[string]string{\n\t\"\":         \"MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (MutatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfiguration\n}\n\nvar map_MutatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of MutatingWebhookConfiguration.\",\n}\n\nfunc (MutatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfigurationList\n}\n\nvar map_Rule = map[string]string{\n\t\"\":            \"Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.\",\n\t\"apiGroups\":   \"APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.\",\n\t\"apiVersions\": \"APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.\",\n\t\"resources\":   \"Resources is a list of resources this rule applies to.\\n\\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\\n\\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\\n\\nDepending on the enclosing object, subresources might not be allowed. Required.\",\n\t\"scope\":       \"scope specifies the scope of this rule. Valid values are \\\"Cluster\\\", \\\"Namespaced\\\", and \\\"*\\\" \\\"Cluster\\\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \\\"Namespaced\\\" means that only namespaced resources will match this rule. \\\"*\\\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \\\"*\\\".\",\n}\n\nfunc (Rule) SwaggerDoc() map[string]string {\n\treturn map_Rule\n}\n\nvar map_RuleWithOperations = map[string]string{\n\t\"\":           \"RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.\",\n\t\"operations\": \"Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.\",\n}\n\nfunc (RuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_RuleWithOperations\n}\n\nvar map_ServiceReference = map[string]string{\n\t\"\":          \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n\t\"namespace\": \"`namespace` is the namespace of the service. Required\",\n\t\"name\":      \"`name` is the name of the service. Required\",\n\t\"path\":      \"`path` is an optional URL path which will be sent in any request to this service.\",\n\t\"port\":      \"If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).\",\n}\n\nfunc (ServiceReference) SwaggerDoc() map[string]string {\n\treturn map_ServiceReference\n}\n\nvar map_ValidatingWebhook = map[string]string{\n\t\"\":                        \"ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Equivalent\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\\n\\nThis is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\",\n}\n\nfunc (ValidatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhook\n}\n\nvar map_ValidatingWebhookConfiguration = map[string]string{\n\t\"\":         \"ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (ValidatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfiguration\n}\n\nvar map_ValidatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingWebhookConfiguration.\",\n}\n\nfunc (ValidatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfigurationList\n}\n\nvar map_WebhookClientConfig = map[string]string{\n\t\"\":         \"WebhookClientConfig contains the information to make a TLS connection with the webhook\",\n\t\"url\":      \"`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\\n\\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\\n\\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\\n\\nThe scheme must be \\\"https\\\"; the URL must begin with \\\"https://\\\".\\n\\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\\n\\nAttempting to use a user or basic auth e.g. \\\"user:password@\\\" is not allowed. Fragments (\\\"#...\\\") and query parameters (\\\"?...\\\") are not allowed, either.\",\n\t\"service\":  \"`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\\n\\nIf the webhook is running within the cluster, then you should use `service`.\",\n\t\"caBundle\": \"`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.\",\n}\n\nfunc (WebhookClientConfig) SwaggerDoc() map[string]string {\n\treturn map_WebhookClientConfig\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhook) DeepCopyInto(out *MutatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ReinvocationPolicy != nil {\n\t\tin, out := &in.ReinvocationPolicy, &out.ReinvocationPolicy\n\t\t*out = new(ReinvocationPolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhook.\nfunc (in *MutatingWebhook) DeepCopy() *MutatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]MutatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration.\nfunc (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList.\nfunc (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Rule) DeepCopyInto(out *Rule) {\n\t*out = *in\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIVersions != nil {\n\t\tin, out := &in.APIVersions, &out.APIVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(ScopeType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.\nfunc (in *Rule) DeepCopy() *Rule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Rule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuleWithOperations) DeepCopyInto(out *RuleWithOperations) {\n\t*out = *in\n\tif in.Operations != nil {\n\t\tin, out := &in.Operations, &out.Operations\n\t\t*out = make([]OperationType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Rule.DeepCopyInto(&out.Rule)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleWithOperations.\nfunc (in *RuleWithOperations) DeepCopy() *RuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceReference) DeepCopyInto(out *ServiceReference) {\n\t*out = *in\n\tif in.Path != nil {\n\t\tin, out := &in.Path, &out.Path\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.\nfunc (in *ServiceReference) DeepCopy() *ServiceReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhook) DeepCopyInto(out *ValidatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhook.\nfunc (in *ValidatingWebhook) DeepCopy() *ValidatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]ValidatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration.\nfunc (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) {\n\t*out = *in\n\tif in.URL != nil {\n\t\tin, out := &in.URL, &out.URL\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(ServiceReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CABundle != nil {\n\t\tin, out := &in.CABundle, &out.CABundle\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig.\nfunc (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WebhookClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1alpha1 is the v1alpha1 version of the API.\npackage v1alpha1 // import \"k8s.io/api/admissionregistration/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_apimachinery_pkg_apis_meta_v1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AuditAnnotation) Reset()      { *m = AuditAnnotation{} }\nfunc (*AuditAnnotation) ProtoMessage() {}\nfunc (*AuditAnnotation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{0}\n}\nfunc (m *AuditAnnotation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AuditAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AuditAnnotation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AuditAnnotation.Merge(m, src)\n}\nfunc (m *AuditAnnotation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AuditAnnotation) XXX_DiscardUnknown() {\n\txxx_messageInfo_AuditAnnotation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AuditAnnotation proto.InternalMessageInfo\n\nfunc (m *ExpressionWarning) Reset()      { *m = ExpressionWarning{} }\nfunc (*ExpressionWarning) ProtoMessage() {}\nfunc (*ExpressionWarning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{1}\n}\nfunc (m *ExpressionWarning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExpressionWarning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExpressionWarning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExpressionWarning.Merge(m, src)\n}\nfunc (m *ExpressionWarning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExpressionWarning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExpressionWarning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExpressionWarning proto.InternalMessageInfo\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{2}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MatchResources) Reset()      { *m = MatchResources{} }\nfunc (*MatchResources) ProtoMessage() {}\nfunc (*MatchResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{3}\n}\nfunc (m *MatchResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchResources.Merge(m, src)\n}\nfunc (m *MatchResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchResources proto.InternalMessageInfo\n\nfunc (m *NamedRuleWithOperations) Reset()      { *m = NamedRuleWithOperations{} }\nfunc (*NamedRuleWithOperations) ProtoMessage() {}\nfunc (*NamedRuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{4}\n}\nfunc (m *NamedRuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamedRuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamedRuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamedRuleWithOperations.Merge(m, src)\n}\nfunc (m *NamedRuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamedRuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamedRuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamedRuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ParamKind) Reset()      { *m = ParamKind{} }\nfunc (*ParamKind) ProtoMessage() {}\nfunc (*ParamKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{5}\n}\nfunc (m *ParamKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamKind.Merge(m, src)\n}\nfunc (m *ParamKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamKind proto.InternalMessageInfo\n\nfunc (m *ParamRef) Reset()      { *m = ParamRef{} }\nfunc (*ParamRef) ProtoMessage() {}\nfunc (*ParamRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{6}\n}\nfunc (m *ParamRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamRef.Merge(m, src)\n}\nfunc (m *ParamRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamRef proto.InternalMessageInfo\n\nfunc (m *TypeChecking) Reset()      { *m = TypeChecking{} }\nfunc (*TypeChecking) ProtoMessage() {}\nfunc (*TypeChecking) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{7}\n}\nfunc (m *TypeChecking) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeChecking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeChecking) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeChecking.Merge(m, src)\n}\nfunc (m *TypeChecking) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeChecking) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeChecking.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeChecking proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicy) Reset()      { *m = ValidatingAdmissionPolicy{} }\nfunc (*ValidatingAdmissionPolicy) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{8}\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicy.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicy proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBinding) Reset()      { *m = ValidatingAdmissionPolicyBinding{} }\nfunc (*ValidatingAdmissionPolicyBinding) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{9}\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBinding proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Reset()      { *m = ValidatingAdmissionPolicyBindingList{} }\nfunc (*ValidatingAdmissionPolicyBindingList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{10}\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Reset()      { *m = ValidatingAdmissionPolicyBindingSpec{} }\nfunc (*ValidatingAdmissionPolicyBindingSpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{11}\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingSpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyList) Reset()      { *m = ValidatingAdmissionPolicyList{} }\nfunc (*ValidatingAdmissionPolicyList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{12}\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicySpec) Reset()      { *m = ValidatingAdmissionPolicySpec{} }\nfunc (*ValidatingAdmissionPolicySpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{13}\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicySpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyStatus) Reset()      { *m = ValidatingAdmissionPolicyStatus{} }\nfunc (*ValidatingAdmissionPolicyStatus) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{14}\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyStatus proto.InternalMessageInfo\n\nfunc (m *Validation) Reset()      { *m = Validation{} }\nfunc (*Validation) ProtoMessage() {}\nfunc (*Validation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c3be8d256e3ae3cf, []int{15}\n}\nfunc (m *Validation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Validation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Validation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Validation.Merge(m, src)\n}\nfunc (m *Validation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Validation) XXX_DiscardUnknown() {\n\txxx_messageInfo_Validation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Validation proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AuditAnnotation)(nil), \"k8s.io.api.admissionregistration.v1alpha1.AuditAnnotation\")\n\tproto.RegisterType((*ExpressionWarning)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ExpressionWarning\")\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MatchCondition\")\n\tproto.RegisterType((*MatchResources)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MatchResources\")\n\tproto.RegisterType((*NamedRuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1alpha1.NamedRuleWithOperations\")\n\tproto.RegisterType((*ParamKind)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ParamKind\")\n\tproto.RegisterType((*ParamRef)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ParamRef\")\n\tproto.RegisterType((*TypeChecking)(nil), \"k8s.io.api.admissionregistration.v1alpha1.TypeChecking\")\n\tproto.RegisterType((*ValidatingAdmissionPolicy)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBinding)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingSpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicySpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyStatus)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\")\n\tproto.RegisterType((*Validation)(nil), \"k8s.io.api.admissionregistration.v1alpha1.Validation\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto\", fileDescriptor_c3be8d256e3ae3cf)\n}\n\nvar fileDescriptor_c3be8d256e3ae3cf = []byte{\n\t// 1407 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcb, 0x6f, 0x1b, 0x45,\n\t0x18, 0xcf, 0xc6, 0x4e, 0x9a, 0x8c, 0xf3, 0xb0, 0x87, 0x56, 0x75, 0x23, 0x6a, 0x47, 0xab, 0x0a,\n\t0x35, 0x12, 0xec, 0x92, 0xb4, 0x50, 0x40, 0x48, 0x28, 0xdb, 0x17, 0x7d, 0xa4, 0x89, 0xa6, 0x28,\n\t0x91, 0x10, 0x95, 0x98, 0xec, 0x4e, 0xec, 0xa9, 0xbd, 0x0f, 0x76, 0xd6, 0xa1, 0x11, 0x48, 0x54,\n\t0xe2, 0x02, 0x37, 0x0e, 0x5c, 0xf8, 0x5f, 0xb8, 0x70, 0xeb, 0xb1, 0xc7, 0x72, 0xc0, 0x22, 0xe6,\n\t0xc2, 0x5f, 0x00, 0x52, 0x2e, 0xa0, 0x99, 0x9d, 0x7d, 0x3b, 0xc4, 0x2e, 0x81, 0x9b, 0xf7, 0x7b,\n\t0xfc, 0x7e, 0xf3, 0x7d, 0xf3, 0x7d, 0x33, 0xdf, 0x18, 0xa0, 0xce, 0x3b, 0x4c, 0xa3, 0xae, 0xde,\n\t0xe9, 0xed, 0x12, 0xdf, 0x21, 0x01, 0x61, 0xfa, 0x3e, 0x71, 0x2c, 0xd7, 0xd7, 0xa5, 0x02, 0x7b,\n\t0x54, 0xc7, 0x96, 0x4d, 0x19, 0xa3, 0xae, 0xe3, 0x93, 0x16, 0x65, 0x81, 0x8f, 0x03, 0xea, 0x3a,\n\t0xfa, 0xfe, 0x2a, 0xee, 0x7a, 0x6d, 0xbc, 0xaa, 0xb7, 0x88, 0x43, 0x7c, 0x1c, 0x10, 0x4b, 0xf3,\n\t0x7c, 0x37, 0x70, 0xe1, 0x4a, 0xe8, 0xaa, 0x61, 0x8f, 0x6a, 0x43, 0x5d, 0xb5, 0xc8, 0x75, 0xe9,\n\t0x8d, 0x16, 0x0d, 0xda, 0xbd, 0x5d, 0xcd, 0x74, 0x6d, 0xbd, 0xe5, 0xb6, 0x5c, 0x5d, 0x20, 0xec,\n\t0xf6, 0xf6, 0xc4, 0x97, 0xf8, 0x10, 0xbf, 0x42, 0xe4, 0xa5, 0x2b, 0x23, 0x2c, 0x2a, 0xbf, 0x9c,\n\t0xa5, 0xab, 0x89, 0x93, 0x8d, 0xcd, 0x36, 0x75, 0x88, 0x7f, 0xa0, 0x7b, 0x9d, 0x16, 0x17, 0x30,\n\t0xdd, 0x26, 0x01, 0x1e, 0xe6, 0xa5, 0x1f, 0xe7, 0xe5, 0xf7, 0x9c, 0x80, 0xda, 0xa4, 0xe0, 0xf0,\n\t0xf6, 0x49, 0x0e, 0xcc, 0x6c, 0x13, 0x1b, 0xe7, 0xfd, 0x54, 0x06, 0x16, 0xd7, 0x7b, 0x16, 0x0d,\n\t0xd6, 0x1d, 0xc7, 0x0d, 0x44, 0x10, 0xf0, 0x22, 0x28, 0x75, 0xc8, 0x41, 0x5d, 0x59, 0x56, 0x2e,\n\t0xcf, 0x1a, 0x95, 0x67, 0xfd, 0xe6, 0xc4, 0xa0, 0xdf, 0x2c, 0xdd, 0x23, 0x07, 0x88, 0xcb, 0xe1,\n\t0x3a, 0x58, 0xdc, 0xc7, 0xdd, 0x1e, 0xb9, 0xf9, 0xc4, 0xf3, 0x89, 0x48, 0x41, 0x7d, 0x52, 0x98,\n\t0x9e, 0x97, 0xa6, 0x8b, 0xdb, 0x59, 0x35, 0xca, 0xdb, 0xab, 0x5d, 0x50, 0x4b, 0xbe, 0x76, 0xb0,\n\t0xef, 0x50, 0xa7, 0x05, 0x5f, 0x07, 0x33, 0x7b, 0x94, 0x74, 0x2d, 0x44, 0xf6, 0x24, 0x60, 0x55,\n\t0x02, 0xce, 0xdc, 0x92, 0x72, 0x14, 0x5b, 0xc0, 0x15, 0x70, 0xe6, 0xf3, 0xd0, 0xb1, 0x5e, 0x12,\n\t0xc6, 0x8b, 0xd2, 0xf8, 0x8c, 0xc4, 0x43, 0x91, 0x5e, 0xdd, 0x03, 0x0b, 0x1b, 0x38, 0x30, 0xdb,\n\t0xd7, 0x5d, 0xc7, 0xa2, 0x22, 0xc2, 0x65, 0x50, 0x76, 0xb0, 0x4d, 0x64, 0x88, 0x73, 0xd2, 0xb3,\n\t0xfc, 0x00, 0xdb, 0x04, 0x09, 0x0d, 0x5c, 0x03, 0x80, 0xe4, 0xe3, 0x83, 0xd2, 0x0e, 0xa4, 0x42,\n\t0x4b, 0x59, 0xa9, 0x3f, 0x97, 0x25, 0x11, 0x22, 0xcc, 0xed, 0xf9, 0x26, 0x61, 0xf0, 0x09, 0xa8,\n\t0x71, 0x38, 0xe6, 0x61, 0x93, 0x3c, 0x24, 0x5d, 0x62, 0x06, 0xae, 0x2f, 0x58, 0x2b, 0x6b, 0x57,\n\t0xb4, 0xa4, 0x4e, 0xe3, 0x1d, 0xd3, 0xbc, 0x4e, 0x8b, 0x0b, 0x98, 0xc6, 0x0b, 0x43, 0xdb, 0x5f,\n\t0xd5, 0xee, 0xe3, 0x5d, 0xd2, 0x8d, 0x5c, 0x8d, 0x73, 0x83, 0x7e, 0xb3, 0xf6, 0x20, 0x8f, 0x88,\n\t0x8a, 0x24, 0xd0, 0x05, 0x0b, 0xee, 0xee, 0x63, 0x62, 0x06, 0x31, 0xed, 0xe4, 0xcb, 0xd3, 0xc2,\n\t0x41, 0xbf, 0xb9, 0xb0, 0x99, 0x81, 0x43, 0x39, 0x78, 0xf8, 0x15, 0x98, 0xf7, 0x65, 0xdc, 0xa8,\n\t0xd7, 0x25, 0xac, 0x5e, 0x5a, 0x2e, 0x5d, 0xae, 0xac, 0x19, 0xda, 0xc8, 0xed, 0xa8, 0xf1, 0xc0,\n\t0x2c, 0xee, 0xbc, 0x43, 0x83, 0xf6, 0xa6, 0x47, 0x42, 0x3d, 0x33, 0xce, 0xc9, 0xc4, 0xcf, 0xa3,\n\t0x34, 0x01, 0xca, 0xf2, 0xc1, 0xef, 0x15, 0x70, 0x96, 0x3c, 0x31, 0xbb, 0x3d, 0x8b, 0x64, 0xec,\n\t0xea, 0xe5, 0x53, 0x5b, 0xc8, 0xab, 0x72, 0x21, 0x67, 0x6f, 0x0e, 0xe1, 0x41, 0x43, 0xd9, 0xe1,\n\t0x0d, 0x50, 0xb1, 0x79, 0x51, 0x6c, 0xb9, 0x5d, 0x6a, 0x1e, 0xd4, 0xcf, 0x88, 0x52, 0x52, 0x07,\n\t0xfd, 0x66, 0x65, 0x23, 0x11, 0x1f, 0xf5, 0x9b, 0x8b, 0xa9, 0xcf, 0x8f, 0x0e, 0x3c, 0x82, 0xd2,\n\t0x6e, 0xea, 0x0b, 0x05, 0x9c, 0x3f, 0x66, 0x55, 0xf0, 0x5a, 0x92, 0x79, 0x51, 0x1a, 0x75, 0x65,\n\t0xb9, 0x74, 0x79, 0xd6, 0xa8, 0xa5, 0x33, 0x26, 0x14, 0x28, 0x6b, 0x07, 0xbf, 0x56, 0x00, 0xf4,\n\t0x0b, 0x78, 0xb2, 0x50, 0xae, 0x8d, 0x92, 0x2f, 0x6d, 0x48, 0x92, 0x96, 0x64, 0x92, 0x60, 0x51,\n\t0x87, 0x86, 0xd0, 0xa9, 0x18, 0xcc, 0x6e, 0x61, 0x1f, 0xdb, 0xf7, 0xa8, 0x63, 0xf1, 0xbe, 0xc3,\n\t0x1e, 0xdd, 0x26, 0xbe, 0xe8, 0x3b, 0x25, 0xdb, 0x77, 0xeb, 0x5b, 0x77, 0xa4, 0x06, 0xa5, 0xac,\n\t0x78, 0x37, 0x77, 0xa8, 0x63, 0xc9, 0x2e, 0x8d, 0xbb, 0x99, 0xe3, 0x21, 0xa1, 0x51, 0x1f, 0x81,\n\t0x19, 0x41, 0xc1, 0x0f, 0x8e, 0x93, 0x7b, 0x5f, 0x07, 0xb3, 0x71, 0x3f, 0x49, 0xd0, 0x9a, 0x34,\n\t0x9b, 0x8d, 0x7b, 0x0f, 0x25, 0x36, 0xea, 0x0f, 0x0a, 0x98, 0xe3, 0x5b, 0x76, 0xbd, 0x4d, 0xcc,\n\t0x0e, 0x3f, 0xca, 0xbe, 0x51, 0x00, 0x24, 0xf9, 0x03, 0x2e, 0xdc, 0x97, 0xca, 0xda, 0xfb, 0x63,\n\t0x14, 0x62, 0xe1, 0x94, 0x4c, 0xb2, 0x5b, 0x50, 0x31, 0x34, 0x84, 0x53, 0xfd, 0x65, 0x12, 0x5c,\n\t0xd8, 0xc6, 0x5d, 0x6a, 0xe1, 0x80, 0x3a, 0xad, 0xf5, 0x88, 0x2e, 0x2c, 0x2b, 0xf8, 0x29, 0x98,\n\t0xe1, 0x1d, 0x6f, 0xe1, 0x00, 0xcb, 0x63, 0xe9, 0xcd, 0xd1, 0xce, 0x87, 0xf0, 0x30, 0xd8, 0x20,\n\t0x01, 0x4e, 0xb6, 0x27, 0x91, 0xa1, 0x18, 0x15, 0x3e, 0x06, 0x65, 0xe6, 0x11, 0x53, 0x16, 0xd5,\n\t0x87, 0x63, 0xc4, 0x7e, 0xec, 0xaa, 0x1f, 0x7a, 0xc4, 0x4c, 0x36, 0x8e, 0x7f, 0x21, 0xc1, 0x01,\n\t0x7d, 0x30, 0xcd, 0x02, 0x1c, 0xf4, 0x98, 0xb8, 0x12, 0x2a, 0x6b, 0x77, 0x4f, 0x85, 0x4d, 0x20,\n\t0x1a, 0x0b, 0x92, 0x6f, 0x3a, 0xfc, 0x46, 0x92, 0x49, 0xfd, 0x53, 0x01, 0xcb, 0xc7, 0xfa, 0x1a,\n\t0xd4, 0xb1, 0x78, 0x3d, 0xfc, 0xf7, 0x69, 0xfe, 0x2c, 0x93, 0xe6, 0xcd, 0xd3, 0x08, 0x5c, 0x2e,\n\t0xfe, 0xb8, 0x6c, 0xab, 0x7f, 0x28, 0xe0, 0xd2, 0x49, 0xce, 0xf7, 0x29, 0x0b, 0xe0, 0x27, 0x85,\n\t0xe8, 0xb5, 0x11, 0x2f, 0x21, 0xca, 0xc2, 0xd8, 0xe3, 0x41, 0x20, 0x92, 0xa4, 0x22, 0xf7, 0xc0,\n\t0x14, 0x0d, 0x88, 0xcd, 0x8f, 0x2d, 0xde, 0x5d, 0xf7, 0x4e, 0x31, 0x74, 0x63, 0x5e, 0xf2, 0x4e,\n\t0xdd, 0xe1, 0x0c, 0x28, 0x24, 0x52, 0xbf, 0x2d, 0x9d, 0x1c, 0x38, 0xcf, 0x13, 0x3f, 0xcc, 0x3c,\n\t0x21, 0x7c, 0x90, 0x1c, 0x38, 0xf1, 0x36, 0x6e, 0xc5, 0x1a, 0x94, 0xb2, 0x82, 0x8f, 0xc0, 0x8c,\n\t0x27, 0x8f, 0xaa, 0x21, 0x37, 0xf6, 0x49, 0x11, 0x45, 0xa7, 0x9c, 0x31, 0xc7, 0xb3, 0x15, 0x7d,\n\t0xa1, 0x18, 0x12, 0xf6, 0xc0, 0x82, 0x9d, 0x19, 0x51, 0x64, 0xab, 0xbc, 0x3b, 0x06, 0x49, 0x76,\n\t0xc6, 0x09, 0x87, 0x83, 0xac, 0x0c, 0xe5, 0x48, 0xe0, 0x0e, 0xa8, 0xed, 0xcb, 0x8c, 0xb9, 0xce,\n\t0xba, 0x19, 0xde, 0x33, 0x65, 0x71, 0x4d, 0xad, 0xf0, 0x91, 0x66, 0x3b, 0xaf, 0x3c, 0xea, 0x37,\n\t0xab, 0x79, 0x21, 0x2a, 0x62, 0xa8, 0xbf, 0x2b, 0xe0, 0xe2, 0xb1, 0x7b, 0xf1, 0x3f, 0x54, 0x1f,\n\t0xcd, 0x56, 0xdf, 0x8d, 0x53, 0xa9, 0xbe, 0xe1, 0x65, 0xf7, 0xe3, 0xd4, 0x3f, 0x84, 0x2a, 0xea,\n\t0x0d, 0x83, 0x59, 0x2f, 0xba, 0x49, 0x65, 0xac, 0x57, 0xc7, 0x2d, 0x1e, 0xee, 0x6b, 0xcc, 0xf3,\n\t0xab, 0x2e, 0xfe, 0x44, 0x09, 0x2a, 0xfc, 0x02, 0x54, 0x6d, 0x39, 0x4b, 0x73, 0x00, 0xea, 0x04,\n\t0xd1, 0xbc, 0xf0, 0x2f, 0x2a, 0xe8, 0xec, 0xa0, 0xdf, 0xac, 0x6e, 0xe4, 0x60, 0x51, 0x81, 0x08,\n\t0x76, 0x41, 0x25, 0xa9, 0x80, 0x68, 0xc0, 0x7c, 0xeb, 0x25, 0x52, 0xee, 0x3a, 0xc6, 0x2b, 0x32,\n\t0xc7, 0x95, 0x44, 0xc6, 0x50, 0x1a, 0x1e, 0xde, 0x07, 0xf3, 0x7b, 0x98, 0x76, 0x7b, 0x3e, 0x91,\n\t0xa3, 0x5b, 0x59, 0x34, 0xf0, 0x6b, 0x7c, 0xac, 0xba, 0x95, 0x56, 0x1c, 0xf5, 0x9b, 0xb5, 0x8c,\n\t0x40, 0x8c, 0x6f, 0x59, 0x67, 0xf8, 0x54, 0x01, 0x55, 0x9c, 0x7d, 0x68, 0xb1, 0xfa, 0x94, 0x88,\n\t0xe0, 0xbd, 0x31, 0x22, 0xc8, 0xbd, 0xd5, 0x8c, 0xba, 0x0c, 0xa3, 0x9a, 0x53, 0x30, 0x54, 0x60,\n\t0x83, 0x5f, 0x82, 0x45, 0x3b, 0xf3, 0x0e, 0x62, 0xf5, 0x69, 0xb1, 0x80, 0xb1, 0xb7, 0x2e, 0x46,\n\t0x48, 0xde, 0x7c, 0x59, 0x39, 0x43, 0x79, 0x2a, 0xf5, 0xa7, 0x49, 0xd0, 0x3c, 0xe1, 0x92, 0x85,\n\t0x77, 0x01, 0x74, 0x77, 0x19, 0xf1, 0xf7, 0x89, 0x75, 0x3b, 0x7c, 0xa7, 0x46, 0x53, 0x60, 0x29,\n\t0x19, 0x7c, 0x36, 0x0b, 0x16, 0x68, 0x88, 0x17, 0xb4, 0xc1, 0x5c, 0x90, 0x9a, 0xc9, 0xc6, 0x99,\n\t0x6a, 0x65, 0xa8, 0xe9, 0x91, 0xce, 0xa8, 0x0e, 0xfa, 0xcd, 0xcc, 0x90, 0x87, 0x32, 0xf0, 0xd0,\n\t0x04, 0xc0, 0x4c, 0xf2, 0x1a, 0x96, 0xa6, 0x3e, 0xda, 0x41, 0x93, 0x64, 0x33, 0xbe, 0x1c, 0x52,\n\t0x89, 0x4c, 0xc1, 0xaa, 0x7f, 0x29, 0x00, 0x24, 0xf5, 0x0a, 0x2f, 0x81, 0xd4, 0x53, 0x54, 0xde,\n\t0x2f, 0x65, 0x0e, 0x81, 0x52, 0x72, 0xfe, 0x52, 0xb6, 0x09, 0x63, 0xb8, 0x15, 0x0d, 0xb3, 0xf1,\n\t0x4b, 0x79, 0x23, 0x14, 0xa3, 0x48, 0x0f, 0x77, 0xc0, 0xb4, 0x4f, 0x30, 0x73, 0x1d, 0xf9, 0xa6,\n\t0xfe, 0x80, 0x0f, 0x3c, 0x48, 0x48, 0x8e, 0xfa, 0xcd, 0xd5, 0x51, 0xfe, 0xc9, 0xd0, 0xe4, 0x7c,\n\t0x24, 0x9c, 0x90, 0x84, 0x83, 0xb7, 0x41, 0x4d, 0x72, 0xa4, 0x16, 0x1c, 0xf6, 0xd3, 0x05, 0xb9,\n\t0x9a, 0xda, 0x46, 0xde, 0x00, 0x15, 0x7d, 0x8c, 0xcd, 0x67, 0x87, 0x8d, 0x89, 0xe7, 0x87, 0x8d,\n\t0x89, 0x17, 0x87, 0x8d, 0x89, 0xa7, 0x83, 0x86, 0xf2, 0x6c, 0xd0, 0x50, 0x9e, 0x0f, 0x1a, 0xca,\n\t0x8b, 0x41, 0x43, 0xf9, 0x75, 0xd0, 0x50, 0xbe, 0xfb, 0xad, 0x31, 0xf1, 0xf1, 0xca, 0xc8, 0xff,\n\t0x1e, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x08, 0xaf, 0xaa, 0x52, 0x82, 0x12, 0x00, 0x00,\n}\n\nfunc (m *AuditAnnotation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AuditAnnotation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AuditAnnotation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ValueExpression)\n\tcopy(dAtA[i:], m.ValueExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValueExpression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExpressionWarning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExpressionWarning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExpressionWarning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Warning)\n\tcopy(dAtA[i:], m.Warning)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Warning)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldRef)\n\tcopy(dAtA[i:], m.FieldRef)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldRef)))\n\ti--\n\tdAtA[i] = 0x12\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ExcludeResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExcludeResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamedRuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamedRuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamedRuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RuleWithOperations.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeChecking) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeChecking) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeChecking) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor iNdEx := len(m.ExpressionWarnings) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExpressionWarnings[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ValidationActions) > 0 {\n\t\tfor iNdEx := len(m.ValidationActions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ValidationActions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ValidationActions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValidationActions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.MatchResources != nil {\n\t\t{\n\t\t\tsize, err := m.MatchResources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ParamRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParamRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.PolicyName)\n\tcopy(dAtA[i:], m.PolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor iNdEx := len(m.AuditAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AuditAnnotations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor iNdEx := len(m.Validations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Validations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.MatchConstraints != nil {\n\t\t{\n\t\t\tsize, err := m.MatchConstraints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ParamKind != nil {\n\t\t{\n\t\t\tsize, err := m.ParamKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.TypeChecking != nil {\n\t\t{\n\t\t\tsize, err := m.TypeChecking.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Validation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Validation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Validation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.MessageExpression)\n\tcopy(dAtA[i:], m.MessageExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MessageExpression)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Reason != nil {\n\t\ti -= len(*m.Reason)\n\t\tcopy(dAtA[i:], *m.Reason)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AuditAnnotation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ValueExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExpressionWarning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.FieldRef)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Warning)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor _, e := range m.ExcludeResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NamedRuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RuleWithOperations.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TypeChecking) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor _, e := range m.ExpressionWarnings {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParamRef != nil {\n\t\tl = m.ParamRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchResources != nil {\n\t\tl = m.MatchResources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ValidationActions) > 0 {\n\t\tfor _, s := range m.ValidationActions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParamKind != nil {\n\t\tl = m.ParamKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchConstraints != nil {\n\t\tl = m.MatchConstraints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor _, e := range m.Validations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor _, e := range m.AuditAnnotations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif m.TypeChecking != nil {\n\t\tl = m.TypeChecking.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Validation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Reason != nil {\n\t\tl = len(*m.Reason)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.MessageExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AuditAnnotation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AuditAnnotation{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`ValueExpression:` + fmt.Sprintf(\"%v\", this.ValueExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExpressionWarning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExpressionWarning{`,\n\t\t`FieldRef:` + fmt.Sprintf(\"%v\", this.FieldRef) + `,`,\n\t\t`Warning:` + fmt.Sprintf(\"%v\", this.Warning) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForExcludeResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ExcludeResourceRules {\n\t\trepeatedStringForExcludeResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExcludeResourceRules += \"}\"\n\ts := strings.Join([]string{`&MatchResources{`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`ExcludeResourceRules:` + repeatedStringForExcludeResourceRules + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamedRuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamedRuleWithOperations{`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`RuleWithOperations:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.RuleWithOperations), \"RuleWithOperations\", \"v11.RuleWithOperations\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamKind) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamKind{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamRef{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeChecking) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForExpressionWarnings := \"[]ExpressionWarning{\"\n\tfor _, f := range this.ExpressionWarnings {\n\t\trepeatedStringForExpressionWarnings += strings.Replace(strings.Replace(f.String(), \"ExpressionWarning\", \"ExpressionWarning\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExpressionWarnings += \"}\"\n\ts := strings.Join([]string{`&TypeChecking{`,\n\t\t`ExpressionWarnings:` + repeatedStringForExpressionWarnings + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicySpec\", \"ValidatingAdmissionPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ValidatingAdmissionPolicyStatus\", \"ValidatingAdmissionPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicyBindingSpec\", \"ValidatingAdmissionPolicyBindingSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicyBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicyBinding\", \"ValidatingAdmissionPolicyBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingSpec{`,\n\t\t`PolicyName:` + fmt.Sprintf(\"%v\", this.PolicyName) + `,`,\n\t\t`ParamRef:` + strings.Replace(this.ParamRef.String(), \"ParamRef\", \"ParamRef\", 1) + `,`,\n\t\t`MatchResources:` + strings.Replace(this.MatchResources.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`ValidationActions:` + fmt.Sprintf(\"%v\", this.ValidationActions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicy\", \"ValidatingAdmissionPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForValidations := \"[]Validation{\"\n\tfor _, f := range this.Validations {\n\t\trepeatedStringForValidations += strings.Replace(strings.Replace(f.String(), \"Validation\", \"Validation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForValidations += \"}\"\n\trepeatedStringForAuditAnnotations := \"[]AuditAnnotation{\"\n\tfor _, f := range this.AuditAnnotations {\n\t\trepeatedStringForAuditAnnotations += strings.Replace(strings.Replace(f.String(), \"AuditAnnotation\", \"AuditAnnotation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAuditAnnotations += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicySpec{`,\n\t\t`ParamKind:` + strings.Replace(this.ParamKind.String(), \"ParamKind\", \"ParamKind\", 1) + `,`,\n\t\t`MatchConstraints:` + strings.Replace(this.MatchConstraints.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`Validations:` + repeatedStringForValidations + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`AuditAnnotations:` + repeatedStringForAuditAnnotations + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`TypeChecking:` + strings.Replace(this.TypeChecking.String(), \"TypeChecking\", \"TypeChecking\", 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Validation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Validation{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + valueToStringGenerated(this.Reason) + `,`,\n\t\t`MessageExpression:` + fmt.Sprintf(\"%v\", this.MessageExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AuditAnnotation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValueExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExpressionWarning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Warning\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Warning = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExcludeResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExcludeResourceRules = append(m.ExcludeResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ExcludeResourceRules[len(m.ExcludeResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamedRuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuleWithOperations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RuleWithOperations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeChecking) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpressionWarnings\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExpressionWarnings = append(m.ExpressionWarnings, ExpressionWarning{})\n\t\t\tif err := m.ExpressionWarnings[len(m.ExpressionWarnings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicyBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamRef == nil {\n\t\t\t\tm.ParamRef = &ParamRef{}\n\t\t\t}\n\t\t\tif err := m.ParamRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchResources == nil {\n\t\t\t\tm.MatchResources = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchResources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValidationActions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValidationActions = append(m.ValidationActions, ValidationAction(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamKind == nil {\n\t\t\t\tm.ParamKind = &ParamKind{}\n\t\t\t}\n\t\t\tif err := m.ParamKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchConstraints == nil {\n\t\t\t\tm.MatchConstraints = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchConstraints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Validations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Validations = append(m.Validations, Validation{})\n\t\t\tif err := m.Validations[len(m.Validations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AuditAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AuditAnnotations = append(m.AuditAnnotations, AuditAnnotation{})\n\t\t\tif err := m.AuditAnnotations[len(m.AuditAnnotations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeChecking\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TypeChecking == nil {\n\t\t\t\tm.TypeChecking = &TypeChecking{}\n\t\t\t}\n\t\t\tif err := m.TypeChecking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Validation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_apis_meta_v1.StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tm.Reason = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MessageExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MessageExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1alpha1;\n\nimport \"k8s.io/api/admissionregistration/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1alpha1\";\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\nmessage AuditAnnotation {\n  // key specifies the audit annotation key. The audit annotation keys of\n  // a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n  // name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n  //\n  // The key is combined with the resource name of the\n  // ValidatingAdmissionPolicy to construct an audit annotation key:\n  // \"{ValidatingAdmissionPolicy name}/{key}\".\n  //\n  // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n  // and the same audit annotation key, the annotation key will be identical.\n  // In this case, the first annotation written with the key will be included\n  // in the audit event and all subsequent annotations with the same key\n  // will be discarded.\n  //\n  // Required.\n  optional string key = 1;\n\n  // valueExpression represents the expression which is evaluated by CEL to\n  // produce an audit annotation value. The expression must evaluate to either\n  // a string or null value. If the expression evaluates to a string, the\n  // audit annotation is included with the string value. If the expression\n  // evaluates to null or empty string the audit annotation will be omitted.\n  // The valueExpression may be no longer than 5kb in length.\n  // If the result of the valueExpression is more than 10kb in length, it\n  // will be truncated to 10kb.\n  //\n  // If multiple ValidatingAdmissionPolicyBinding resources match an\n  // API request, then the valueExpression will be evaluated for\n  // each binding. All unique values produced by the valueExpressions\n  // will be joined together in a comma-separated list.\n  //\n  // Required.\n  optional string valueExpression = 2;\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\nmessage ExpressionWarning {\n  // The path to the field that refers the expression.\n  // For example, the reference to the expression of the first item of\n  // validations is \"spec.validations[0].expression\"\n  optional string fieldRef = 2;\n\n  // The content of type checking information in a human-readable form.\n  // Each line of the warning contains the type that the expression is checked\n  // against, followed by the type check error from the compiler.\n  optional string warning = 3;\n}\n\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\nmessage MatchResources {\n  // NamespaceSelector decides whether to run the admission control policy on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the policy.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the policy on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 1;\n\n  // ObjectSelector decides whether to run the validation based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the cel validation, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 2;\n\n  // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n  // The policy cares about an operation if it matches _any_ Rule.\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations resourceRules = 3;\n\n  // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n  // The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations excludeResourceRules = 4;\n\n  // matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 7;\n}\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\nmessage NamedRuleWithOperations {\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +listType=atomic\n  // +optional\n  repeated string resourceNames = 1;\n\n  // RuleWithOperations is a tuple of Operations and Resources.\n  optional k8s.io.api.admissionregistration.v1.RuleWithOperations ruleWithOperations = 2;\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\nmessage ParamKind {\n  // APIVersion is the API group version the resources belong to.\n  // In format of \"group/version\".\n  // Required.\n  optional string apiVersion = 1;\n\n  // Kind is the API kind the resources belong to.\n  // Required.\n  optional string kind = 2;\n}\n\n// ParamRef references a parameter resource\n// +structType=atomic\nmessage ParamRef {\n  // Name of the resource being referenced.\n  optional string name = 1;\n\n  // Namespace of the referenced resource.\n  // Should be empty for the cluster-scoped resources\n  // +optional\n  optional string namespace = 2;\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\nmessage TypeChecking {\n  // The type checking warnings for each expression.\n  // +optional\n  // +listType=atomic\n  repeated ExpressionWarning expressionWarnings = 1;\n}\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\nmessage ValidatingAdmissionPolicy {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicy.\n  optional ValidatingAdmissionPolicySpec spec = 2;\n\n  // The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n  // behaves in the expected way.\n  // Populated by the system.\n  // Read-only.\n  // +optional\n  optional ValidatingAdmissionPolicyStatus status = 3;\n}\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\nmessage ValidatingAdmissionPolicyBinding {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n  optional ValidatingAdmissionPolicyBindingSpec spec = 2;\n}\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of PolicyBinding.\n  repeated ValidatingAdmissionPolicyBinding items = 2;\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingSpec {\n  // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n  // If the referenced resource does not exist, this binding is considered invalid and will be ignored\n  // Required.\n  optional string policyName = 1;\n\n  // ParamRef specifies the parameter resource used to configure the admission control policy.\n  // It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n  // If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n  // +optional\n  optional ParamRef paramRef = 2;\n\n  // MatchResources declares what resources match this binding and will be validated by it.\n  // Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n  // If this is unset, all resources matched by the policy are validated by this binding\n  // When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n  // Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n  // +optional\n  optional MatchResources matchResources = 3;\n\n  // validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n  // If a validation evaluates to false it is always enforced according to these actions.\n  //\n  // Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n  // to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n  // ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n  //\n  // validationActions is declared as a set of action values. Order does\n  // not matter. validationActions may not contain duplicates of the same action.\n  //\n  // The supported actions values are:\n  //\n  // \"Deny\" specifies that a validation failure results in a denied request.\n  //\n  // \"Warn\" specifies that a validation failure is reported to the request client\n  // in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n  // both for allowed or denied admission responses.\n  //\n  // \"Audit\" specifies that a validation failure is included in the published\n  // audit event for the request. The audit event will contain a\n  // `validation.policy.admission.k8s.io/validation_failure` audit annotation\n  // with a value containing the details of the validation failures, formatted as\n  // a JSON list of objects, each with the following fields:\n  // - message: The validation failure message string\n  // - policy: The resource name of the ValidatingAdmissionPolicy\n  // - binding: The resource name of the ValidatingAdmissionPolicyBinding\n  // - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n  // - validationActions: The enforcement actions enacted for the validation failure\n  // Example audit annotation:\n  // `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n  //\n  // Clients should expect to handle additional values by ignoring\n  // any values not recognized.\n  //\n  // \"Deny\" and \"Warn\" may not be used together since this combination\n  // needlessly duplicates the validation failure both in the\n  // API response body and the HTTP warning headers.\n  //\n  // Required.\n  // +listType=set\n  repeated string validationActions = 4;\n}\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingAdmissionPolicy.\n  repeated ValidatingAdmissionPolicy items = 2;\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\nmessage ValidatingAdmissionPolicySpec {\n  // ParamKind specifies the kind of resources used to parameterize this policy.\n  // If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n  // If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n  // If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n  // +optional\n  optional ParamKind paramKind = 1;\n\n  // MatchConstraints specifies what resources this policy is designed to validate.\n  // The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n  // However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n  // ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n  // Required.\n  optional MatchResources matchConstraints = 2;\n\n  // Validations contain CEL expressions which is used to apply the validation.\n  // Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated Validation validations = 3;\n\n  // failurePolicy defines how to handle failures for the admission policy. Failures can\n  // occur from CEL expression parse errors, type check errors, runtime errors and invalid\n  // or mis-configured policy definitions or bindings.\n  //\n  // A policy is invalid if spec.paramKind refers to a non-existent Kind.\n  // A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n  //\n  // failurePolicy does not define how validations that evaluate to false are handled.\n  //\n  // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n  // define how failures are enforced.\n  //\n  // Allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // auditAnnotations contains CEL expressions which are used to produce audit\n  // annotations for the audit event of the API request.\n  // validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated AuditAnnotation auditAnnotations = 5;\n\n  // MatchConditions is a list of conditions that must be met for a request to be validated.\n  // Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // If a parameter object is provided, it can be accessed via the `params` handle in the same\n  // manner as validation expressions.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the policy is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 6;\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyStatus {\n  // The generation observed by the controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // The results of type checking for each expression.\n  // Presence of this field indicates the completion of the type checking.\n  // +optional\n  optional TypeChecking typeChecking = 2;\n\n  // The conditions represent the latest available observations of a policy's current state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 3;\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\nmessage Validation {\n  // Expression represents the expression which will be evaluated by CEL.\n  // ref: https://github.com/google/cel-spec\n  // CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n  // object. No other metadata properties are accessible.\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Accessible property names are escaped according to the following rules when accessed in the expression:\n  // - '__' escapes to '__underscores__'\n  // - '.' escapes to '__dot__'\n  // - '-' escapes to '__dash__'\n  // - '/' escapes to '__slash__'\n  // - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n  // \t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n  // \t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n  // Examples:\n  //   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n  //   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n  //   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n  //\n  // Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n  // Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n  //   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n  //     non-intersecting elements in `Y` are appended, retaining their partial order.\n  //   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n  //     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n  //     non-intersecting keys are appended, retaining their partial order.\n  // Required.\n  optional string Expression = 1;\n\n  // Message represents the message displayed when validation fails. The message is required if the Expression contains\n  // line breaks. The message must not contain line breaks.\n  // If unset, the message is \"failed rule: {Rule}\".\n  // e.g. \"must be a URL with the host matching spec.host\"\n  // If the Expression contains line breaks. Message is required.\n  // The message must not contain line breaks.\n  // If unset, the message is \"failed Expression: {Expression}\".\n  // +optional\n  optional string message = 2;\n\n  // Reason represents a machine-readable description of why this validation failed.\n  // If this is the first validation in the list to fail, this reason, as well as the\n  // corresponding HTTP response code, are used in the\n  // HTTP response to the client.\n  // The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n  // If not set, StatusReasonInvalid is used in the response to the client.\n  // +optional\n  optional string reason = 3;\n\n  // messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n  // Since messageExpression is used as a failure message, it must evaluate to a string.\n  // If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n  // If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n  // as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n  // that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n  // the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n  // messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n  // Example:\n  // \"object.x must be less than max (\"+string(params.max)+\")\"\n  // +optional\n  optional string messageExpression = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingAdmissionPolicy{},\n\t\t&ValidatingAdmissionPolicyList{},\n\t\t&ValidatingAdmissionPolicyBinding{},\n\t\t&ValidatingAdmissionPolicyBindingList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule = v1.Rule\n\n// ScopeType specifies a scope for a Rule.\n// +enum\ntype ScopeType = v1.ScopeType\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = v1.ClusterScope\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = v1.NamespacedScope\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = v1.AllScopes\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\n// +enum\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// MatchPolicyType specifies the type of match policy.\n// +enum\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule.\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\ntype ValidatingAdmissionPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicy.\n\tSpec ValidatingAdmissionPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n\t// behaves in the expected way.\n\t// Populated by the system.\n\t// Read-only.\n\t// +optional\n\tStatus ValidatingAdmissionPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyStatus struct {\n\t// The generation observed by the controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\t// The results of type checking for each expression.\n\t// Presence of this field indicates the completion of the type checking.\n\t// +optional\n\tTypeChecking *TypeChecking `json:\"typeChecking,omitempty\" protobuf:\"bytes,2,opt,name=typeChecking\"`\n\t// The conditions represent the latest available observations of a policy's current state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" protobuf:\"bytes,3,rep,name=conditions\"`\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\ntype TypeChecking struct {\n\t// The type checking warnings for each expression.\n\t// +optional\n\t// +listType=atomic\n\tExpressionWarnings []ExpressionWarning `json:\"expressionWarnings,omitempty\" protobuf:\"bytes,1,rep,name=expressionWarnings\"`\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\ntype ExpressionWarning struct {\n\t// The path to the field that refers the expression.\n\t// For example, the reference to the expression of the first item of\n\t// validations is \"spec.validations[0].expression\"\n\tFieldRef string `json:\"fieldRef\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// The content of type checking information in a human-readable form.\n\t// Each line of the warning contains the type that the expression is checked\n\t// against, followed by the type check error from the compiler.\n\tWarning string `json:\"warning\" protobuf:\"bytes,3,opt,name=warning\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingAdmissionPolicy.\n\tItems []ValidatingAdmissionPolicy `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\ntype ValidatingAdmissionPolicySpec struct {\n\t// ParamKind specifies the kind of resources used to parameterize this policy.\n\t// If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n\t// If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n\t// If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n\t// +optional\n\tParamKind *ParamKind `json:\"paramKind,omitempty\" protobuf:\"bytes,1,rep,name=paramKind\"`\n\n\t// MatchConstraints specifies what resources this policy is designed to validate.\n\t// The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n\t// However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n\t// ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n\t// Required.\n\tMatchConstraints *MatchResources `json:\"matchConstraints,omitempty\" protobuf:\"bytes,2,rep,name=matchConstraints\"`\n\n\t// Validations contain CEL expressions which is used to apply the validation.\n\t// Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tValidations []Validation `json:\"validations,omitempty\" protobuf:\"bytes,3,rep,name=validations\"`\n\n\t// failurePolicy defines how to handle failures for the admission policy. Failures can\n\t// occur from CEL expression parse errors, type check errors, runtime errors and invalid\n\t// or mis-configured policy definitions or bindings.\n\t//\n\t// A policy is invalid if spec.paramKind refers to a non-existent Kind.\n\t// A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\t//\n\t// failurePolicy does not define how validations that evaluate to false are handled.\n\t//\n\t// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n\t// define how failures are enforced.\n\t//\n\t// Allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// auditAnnotations contains CEL expressions which are used to produce audit\n\t// annotations for the audit event of the API request.\n\t// validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tAuditAnnotations []AuditAnnotation `json:\"auditAnnotations,omitempty\" protobuf:\"bytes,5,rep,name=auditAnnotations\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be validated.\n\t// Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// If a parameter object is provided, it can be accessed via the `params` handle in the same\n\t// manner as validation expressions.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the policy is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,6,rep,name=matchConditions\"`\n}\n\ntype MatchCondition v1.MatchCondition\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\ntype ParamKind struct {\n\t// APIVersion is the API group version the resources belong to.\n\t// In format of \"group/version\".\n\t// Required.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,rep,name=apiVersion\"`\n\n\t// Kind is the API kind the resources belong to.\n\t// Required.\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,2,rep,name=kind\"`\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\ntype Validation struct {\n\t// Expression represents the expression which will be evaluated by CEL.\n\t// ref: https://github.com/google/cel-spec\n\t// CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n\t// object. No other metadata properties are accessible.\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Accessible property names are escaped according to the following rules when accessed in the expression:\n\t// - '__' escapes to '__underscores__'\n\t// - '.' escapes to '__dot__'\n\t// - '-' escapes to '__dash__'\n\t// - '/' escapes to '__slash__'\n\t// - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t//\t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t//\t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n\t// Examples:\n\t//   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n\t//   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n\t//   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\t//\n\t// Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n\t// Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n\t//   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n\t//     non-intersecting elements in `Y` are appended, retaining their partial order.\n\t//   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n\t//     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n\t//     non-intersecting keys are appended, retaining their partial order.\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,opt,name=Expression\"`\n\t// Message represents the message displayed when validation fails. The message is required if the Expression contains\n\t// line breaks. The message must not contain line breaks.\n\t// If unset, the message is \"failed rule: {Rule}\".\n\t// e.g. \"must be a URL with the host matching spec.host\"\n\t// If the Expression contains line breaks. Message is required.\n\t// The message must not contain line breaks.\n\t// If unset, the message is \"failed Expression: {Expression}\".\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// Reason represents a machine-readable description of why this validation failed.\n\t// If this is the first validation in the list to fail, this reason, as well as the\n\t// corresponding HTTP response code, are used in the\n\t// HTTP response to the client.\n\t// The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n\t// If not set, StatusReasonInvalid is used in the response to the client.\n\t// +optional\n\tReason *metav1.StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n\t// Since messageExpression is used as a failure message, it must evaluate to a string.\n\t// If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n\t// If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n\t// as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n\t// that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n\t// the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n\t// messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n\t// Example:\n\t// \"object.x must be less than max (\"+string(params.max)+\")\"\n\t// +optional\n\tMessageExpression string `json:\"messageExpression,omitempty\" protobuf:\"bytes,4,opt,name=messageExpression\"`\n}\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\ntype AuditAnnotation struct {\n\t// key specifies the audit annotation key. The audit annotation keys of\n\t// a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n\t// name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\t//\n\t// The key is combined with the resource name of the\n\t// ValidatingAdmissionPolicy to construct an audit annotation key:\n\t// \"{ValidatingAdmissionPolicy name}/{key}\".\n\t//\n\t// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n\t// and the same audit annotation key, the annotation key will be identical.\n\t// In this case, the first annotation written with the key will be included\n\t// in the audit event and all subsequent annotations with the same key\n\t// will be discarded.\n\t//\n\t// Required.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// valueExpression represents the expression which is evaluated by CEL to\n\t// produce an audit annotation value. The expression must evaluate to either\n\t// a string or null value. If the expression evaluates to a string, the\n\t// audit annotation is included with the string value. If the expression\n\t// evaluates to null or empty string the audit annotation will be omitted.\n\t// The valueExpression may be no longer than 5kb in length.\n\t// If the result of the valueExpression is more than 10kb in length, it\n\t// will be truncated to 10kb.\n\t//\n\t// If multiple ValidatingAdmissionPolicyBinding resources match an\n\t// API request, then the valueExpression will be evaluated for\n\t// each binding. All unique values produced by the valueExpressions\n\t// will be joined together in a comma-separated list.\n\t//\n\t// Required.\n\tValueExpression string `json:\"valueExpression\" protobuf:\"bytes,2,opt,name=valueExpression\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\ntype ValidatingAdmissionPolicyBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n\tSpec ValidatingAdmissionPolicyBindingSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of PolicyBinding.\n\tItems []ValidatingAdmissionPolicyBinding `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingSpec struct {\n\t// PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n\t// If the referenced resource does not exist, this binding is considered invalid and will be ignored\n\t// Required.\n\tPolicyName string `json:\"policyName,omitempty\" protobuf:\"bytes,1,rep,name=policyName\"`\n\n\t// ParamRef specifies the parameter resource used to configure the admission control policy.\n\t// It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n\t// If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n\t// +optional\n\tParamRef *ParamRef `json:\"paramRef,omitempty\" protobuf:\"bytes,2,rep,name=paramRef\"`\n\n\t// MatchResources declares what resources match this binding and will be validated by it.\n\t// Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n\t// If this is unset, all resources matched by the policy are validated by this binding\n\t// When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n\t// Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n\t// +optional\n\tMatchResources *MatchResources `json:\"matchResources,omitempty\" protobuf:\"bytes,3,rep,name=matchResources\"`\n\n\t// validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n\t// If a validation evaluates to false it is always enforced according to these actions.\n\t//\n\t// Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n\t// to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n\t// ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\t//\n\t// validationActions is declared as a set of action values. Order does\n\t// not matter. validationActions may not contain duplicates of the same action.\n\t//\n\t// The supported actions values are:\n\t//\n\t// \"Deny\" specifies that a validation failure results in a denied request.\n\t//\n\t// \"Warn\" specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\t//\n\t// \"Audit\" specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failures, formatted as\n\t// a JSON list of objects, each with the following fields:\n\t// - message: The validation failure message string\n\t// - policy: The resource name of the ValidatingAdmissionPolicy\n\t// - binding: The resource name of the ValidatingAdmissionPolicyBinding\n\t// - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n\t// - validationActions: The enforcement actions enacted for the validation failure\n\t// Example audit annotation:\n\t// `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n\t//\n\t// Clients should expect to handle additional values by ignoring\n\t// any values not recognized.\n\t//\n\t// \"Deny\" and \"Warn\" may not be used together since this combination\n\t// needlessly duplicates the validation failure both in the\n\t// API response body and the HTTP warning headers.\n\t//\n\t// Required.\n\t// +listType=set\n\tValidationActions []ValidationAction `json:\"validationActions,omitempty\" protobuf:\"bytes,4,rep,name=validationActions\"`\n}\n\n// ParamRef references a parameter resource\n// +structType=atomic\ntype ParamRef struct {\n\t// Name of the resource being referenced.\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,rep,name=name\"`\n\t// Namespace of the referenced resource.\n\t// Should be empty for the cluster-scoped resources\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,rep,name=namespace\"`\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\ntype MatchResources struct {\n\t// NamespaceSelector decides whether to run the admission control policy on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the policy.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the policy on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,1,opt,name=namespaceSelector\"`\n\t// ObjectSelector decides whether to run the validation based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the cel validation, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,2,opt,name=objectSelector\"`\n\t// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n\t// The policy cares about an operation if it matches _any_ Rule.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []NamedRuleWithOperations `json:\"resourceRules,omitempty\" protobuf:\"bytes,3,rep,name=resourceRules\"`\n\t// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n\t// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n\t// +listType=atomic\n\t// +optional\n\tExcludeResourceRules []NamedRuleWithOperations `json:\"excludeResourceRules,omitempty\" protobuf:\"bytes,4,rep,name=excludeResourceRules\"`\n\t// matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,7,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n}\n\n// ValidationAction specifies a policy enforcement action.\n// +enum\ntype ValidationAction string\n\nconst (\n\t// Deny specifies that a validation failure results in a denied request.\n\tDeny ValidationAction = \"Deny\"\n\t// Warn specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\tWarn ValidationAction = \"Warn\"\n\t// Audit specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failure.\n\tAudit ValidationAction = \"Audit\"\n)\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\ntype NamedRuleWithOperations struct {\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +listType=atomic\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,1,rep,name=resourceNames\"`\n\t// RuleWithOperations is a tuple of Operations and Resources.\n\tRuleWithOperations `json:\",inline\" protobuf:\"bytes,2,opt,name=ruleWithOperations\"`\n}\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations = v1.RuleWithOperations\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType = v1.OperationType\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = v1.OperationAll\n\tCreate       OperationType = v1.Create\n\tUpdate       OperationType = v1.Update\n\tDelete       OperationType = v1.Delete\n\tConnect      OperationType = v1.Connect\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AuditAnnotation = map[string]string{\n\t\"\":                \"AuditAnnotation describes how to produce an audit annotation for an API request.\",\n\t\"key\":             \"key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\\n\\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \\\"{ValidatingAdmissionPolicy name}/{key}\\\".\\n\\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\\n\\nRequired.\",\n\t\"valueExpression\": \"valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\\n\\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\\n\\nRequired.\",\n}\n\nfunc (AuditAnnotation) SwaggerDoc() map[string]string {\n\treturn map_AuditAnnotation\n}\n\nvar map_ExpressionWarning = map[string]string{\n\t\"\":         \"ExpressionWarning is a warning information that targets a specific expression.\",\n\t\"fieldRef\": \"The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \\\"spec.validations[0].expression\\\"\",\n\t\"warning\":  \"The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.\",\n}\n\nfunc (ExpressionWarning) SwaggerDoc() map[string]string {\n\treturn map_ExpressionWarning\n}\n\nvar map_MatchResources = map[string]string{\n\t\"\":                     \"MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"namespaceSelector\":    \"NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the policy on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":       \"ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"resourceRules\":        \"ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.\",\n\t\"excludeResourceRules\": \"ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"matchPolicy\":          \"matchPolicy defines how the \\\"MatchResources\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\\n\\nDefaults to \\\"Equivalent\\\"\",\n}\n\nfunc (MatchResources) SwaggerDoc() map[string]string {\n\treturn map_MatchResources\n}\n\nvar map_NamedRuleWithOperations = map[string]string{\n\t\"\":              \"NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n}\n\nfunc (NamedRuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_NamedRuleWithOperations\n}\n\nvar map_ParamKind = map[string]string{\n\t\"\":           \"ParamKind is a tuple of Group Kind and Version.\",\n\t\"apiVersion\": \"APIVersion is the API group version the resources belong to. In format of \\\"group/version\\\". Required.\",\n\t\"kind\":       \"Kind is the API kind the resources belong to. Required.\",\n}\n\nfunc (ParamKind) SwaggerDoc() map[string]string {\n\treturn map_ParamKind\n}\n\nvar map_ParamRef = map[string]string{\n\t\"\":          \"ParamRef references a parameter resource\",\n\t\"name\":      \"Name of the resource being referenced.\",\n\t\"namespace\": \"Namespace of the referenced resource. Should be empty for the cluster-scoped resources\",\n}\n\nfunc (ParamRef) SwaggerDoc() map[string]string {\n\treturn map_ParamRef\n}\n\nvar map_TypeChecking = map[string]string{\n\t\"\":                   \"TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\",\n\t\"expressionWarnings\": \"The type checking warnings for each expression.\",\n}\n\nfunc (TypeChecking) SwaggerDoc() map[string]string {\n\treturn map_TypeChecking\n}\n\nvar map_ValidatingAdmissionPolicy = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicy.\",\n\t\"status\":   \"The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only.\",\n}\n\nfunc (ValidatingAdmissionPolicy) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicy\n}\n\nvar map_ValidatingAdmissionPolicyBinding = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBinding) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBinding\n}\n\nvar map_ValidatingAdmissionPolicyBindingList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of PolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingList\n}\n\nvar map_ValidatingAdmissionPolicyBindingSpec = map[string]string{\n\t\"\":                  \"ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\",\n\t\"policyName\":        \"PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.\",\n\t\"paramRef\":          \"ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\",\n\t\"matchResources\":    \"MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\",\n\t\"validationActions\": \"validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\\n\\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\\n\\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\\n\\nThe supported actions values are:\\n\\n\\\"Deny\\\" specifies that a validation failure results in a denied request.\\n\\n\\\"Warn\\\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\\n\\n\\\"Audit\\\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\\\"validation.policy.admission.k8s.io/validation_failure\\\": \\\"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\\\"`\\n\\nClients should expect to handle additional values by ignoring any values not recognized.\\n\\n\\\"Deny\\\" and \\\"Warn\\\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\\n\\nRequired.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingSpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingSpec\n}\n\nvar map_ValidatingAdmissionPolicyList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingAdmissionPolicy.\",\n}\n\nfunc (ValidatingAdmissionPolicyList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyList\n}\n\nvar map_ValidatingAdmissionPolicySpec = map[string]string{\n\t\"\":                 \"ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\",\n\t\"paramKind\":        \"ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\",\n\t\"matchConstraints\": \"MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required.\",\n\t\"validations\":      \"Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.\",\n\t\"failurePolicy\":    \"failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\\n\\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\\n\\nfailurePolicy does not define how validations that evaluate to false are handled.\\n\\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\\n\\nAllowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"auditAnnotations\": \"auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.\",\n\t\"matchConditions\":  \"MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the policy is skipped\",\n}\n\nfunc (ValidatingAdmissionPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicySpec\n}\n\nvar map_ValidatingAdmissionPolicyStatus = map[string]string{\n\t\"\":                   \"ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\",\n\t\"observedGeneration\": \"The generation observed by the controller.\",\n\t\"typeChecking\":       \"The results of type checking for each expression. Presence of this field indicates the completion of the type checking.\",\n\t\"conditions\":         \"The conditions represent the latest available observations of a policy's current state.\",\n}\n\nfunc (ValidatingAdmissionPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyStatus\n}\n\nvar map_Validation = map[string]string{\n\t\"\":                  \"Validation specifies the CEL expression which is used to apply the validation.\",\n\t\"expression\":        \"Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Expression accessing a property named \\\"namespace\\\": {\\\"Expression\\\": \\\"object.__namespace__ > 0\\\"}\\n  - Expression accessing a property named \\\"x-prop\\\": {\\\"Expression\\\": \\\"object.x__dash__prop > 0\\\"}\\n  - Expression accessing a property named \\\"redact__d\\\": {\\\"Expression\\\": \\\"object.redact__underscores__d > 0\\\"}\\n\\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\\nRequired.\",\n\t\"message\":           \"Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \\\"failed Expression: {Expression}\\\".\",\n\t\"reason\":            \"Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \\\"Unauthorized\\\", \\\"Forbidden\\\", \\\"Invalid\\\", \\\"RequestEntityTooLarge\\\". If not set, StatusReasonInvalid is used in the response to the client.\",\n\t\"messageExpression\": \"messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \\\"object.x must be less than max (\\\"+string(params.max)+\\\")\\\"\",\n}\n\nfunc (Validation) SwaggerDoc() map[string]string {\n\treturn map_Validation\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuditAnnotation) DeepCopyInto(out *AuditAnnotation) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditAnnotation.\nfunc (in *AuditAnnotation) DeepCopy() *AuditAnnotation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuditAnnotation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExpressionWarning) DeepCopyInto(out *ExpressionWarning) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpressionWarning.\nfunc (in *ExpressionWarning) DeepCopy() *ExpressionWarning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExpressionWarning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchResources) DeepCopyInto(out *MatchResources) {\n\t*out = *in\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ExcludeResourceRules != nil {\n\t\tin, out := &in.ExcludeResourceRules, &out.ExcludeResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchResources.\nfunc (in *MatchResources) DeepCopy() *MatchResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamedRuleWithOperations) DeepCopyInto(out *NamedRuleWithOperations) {\n\t*out = *in\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.RuleWithOperations.DeepCopyInto(&out.RuleWithOperations)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRuleWithOperations.\nfunc (in *NamedRuleWithOperations) DeepCopy() *NamedRuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamedRuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamKind) DeepCopyInto(out *ParamKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamKind.\nfunc (in *ParamKind) DeepCopy() *ParamKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamRef) DeepCopyInto(out *ParamRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamRef.\nfunc (in *ParamRef) DeepCopy() *ParamRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypeChecking) DeepCopyInto(out *TypeChecking) {\n\t*out = *in\n\tif in.ExpressionWarnings != nil {\n\t\tin, out := &in.ExpressionWarnings, &out.ExpressionWarnings\n\t\t*out = make([]ExpressionWarning, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeChecking.\nfunc (in *TypeChecking) DeepCopy() *TypeChecking {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypeChecking)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyInto(out *ValidatingAdmissionPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicy.\nfunc (in *ValidatingAdmissionPolicy) DeepCopy() *ValidatingAdmissionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyInto(out *ValidatingAdmissionPolicyBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBinding.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopy() *ValidatingAdmissionPolicyBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyInto(out *ValidatingAdmissionPolicyBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicyBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingList.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopy() *ValidatingAdmissionPolicyBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopyInto(out *ValidatingAdmissionPolicyBindingSpec) {\n\t*out = *in\n\tif in.ParamRef != nil {\n\t\tin, out := &in.ParamRef, &out.ParamRef\n\t\t*out = new(ParamRef)\n\t\t**out = **in\n\t}\n\tif in.MatchResources != nil {\n\t\tin, out := &in.MatchResources, &out.MatchResources\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ValidationActions != nil {\n\t\tin, out := &in.ValidationActions, &out.ValidationActions\n\t\t*out = make([]ValidationAction, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingSpec.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopy() *ValidatingAdmissionPolicyBindingSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyInto(out *ValidatingAdmissionPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyList.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopy() *ValidatingAdmissionPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopyInto(out *ValidatingAdmissionPolicySpec) {\n\t*out = *in\n\tif in.ParamKind != nil {\n\t\tin, out := &in.ParamKind, &out.ParamKind\n\t\t*out = new(ParamKind)\n\t\t**out = **in\n\t}\n\tif in.MatchConstraints != nil {\n\t\tin, out := &in.MatchConstraints, &out.MatchConstraints\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Validations != nil {\n\t\tin, out := &in.Validations, &out.Validations\n\t\t*out = make([]Validation, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.AuditAnnotations != nil {\n\t\tin, out := &in.AuditAnnotations, &out.AuditAnnotations\n\t\t*out = make([]AuditAnnotation, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicySpec.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopy() *ValidatingAdmissionPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopyInto(out *ValidatingAdmissionPolicyStatus) {\n\t*out = *in\n\tif in.TypeChecking != nil {\n\t\tin, out := &in.TypeChecking, &out.TypeChecking\n\t\t*out = new(TypeChecking)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyStatus.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopy() *ValidatingAdmissionPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Validation) DeepCopyInto(out *Validation) {\n\t*out = *in\n\tif in.Reason != nil {\n\t\tin, out := &in.Reason, &out.Reason\n\t\t*out = new(v1.StatusReason)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Validation.\nfunc (in *Validation) DeepCopy() *Validation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Validation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1beta1 is the v1beta1 version of the API.\n// AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration\n// MutatingWebhookConfiguration and ValidatingWebhookConfiguration are for the\n// new dynamic admission controller configuration.\npackage v1beta1 // import \"k8s.io/api/admissionregistration/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tv11 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{0}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MutatingWebhook) Reset()      { *m = MutatingWebhook{} }\nfunc (*MutatingWebhook) ProtoMessage() {}\nfunc (*MutatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{1}\n}\nfunc (m *MutatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhook.Merge(m, src)\n}\nfunc (m *MutatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhook proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfiguration) Reset()      { *m = MutatingWebhookConfiguration{} }\nfunc (*MutatingWebhookConfiguration) ProtoMessage() {}\nfunc (*MutatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{2}\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfigurationList) Reset()      { *m = MutatingWebhookConfigurationList{} }\nfunc (*MutatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*MutatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{3}\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *ServiceReference) Reset()      { *m = ServiceReference{} }\nfunc (*ServiceReference) ProtoMessage() {}\nfunc (*ServiceReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{4}\n}\nfunc (m *ServiceReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceReference.Merge(m, src)\n}\nfunc (m *ServiceReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceReference proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhook) Reset()      { *m = ValidatingWebhook{} }\nfunc (*ValidatingWebhook) ProtoMessage() {}\nfunc (*ValidatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{5}\n}\nfunc (m *ValidatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhook.Merge(m, src)\n}\nfunc (m *ValidatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhook proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfiguration) Reset()      { *m = ValidatingWebhookConfiguration{} }\nfunc (*ValidatingWebhookConfiguration) ProtoMessage() {}\nfunc (*ValidatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{6}\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfigurationList) Reset()      { *m = ValidatingWebhookConfigurationList{} }\nfunc (*ValidatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*ValidatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{7}\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *WebhookClientConfig) Reset()      { *m = WebhookClientConfig{} }\nfunc (*WebhookClientConfig) ProtoMessage() {}\nfunc (*WebhookClientConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_abeea74cbc46f55a, []int{8}\n}\nfunc (m *WebhookClientConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WebhookClientConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WebhookClientConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WebhookClientConfig.Merge(m, src)\n}\nfunc (m *WebhookClientConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WebhookClientConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WebhookClientConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WebhookClientConfig proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1beta1.MatchCondition\")\n\tproto.RegisterType((*MutatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhook\")\n\tproto.RegisterType((*MutatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\")\n\tproto.RegisterType((*MutatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList\")\n\tproto.RegisterType((*ServiceReference)(nil), \"k8s.io.api.admissionregistration.v1beta1.ServiceReference\")\n\tproto.RegisterType((*ValidatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhook\")\n\tproto.RegisterType((*ValidatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\")\n\tproto.RegisterType((*ValidatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList\")\n\tproto.RegisterType((*WebhookClientConfig)(nil), \"k8s.io.api.admissionregistration.v1beta1.WebhookClientConfig\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto\", fileDescriptor_abeea74cbc46f55a)\n}\n\nvar fileDescriptor_abeea74cbc46f55a = []byte{\n\t// 1041 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4f, 0x73, 0xdb, 0xc4,\n\t0x1b, 0x8e, 0xe2, 0xf8, 0x17, 0x67, 0xed, 0x24, 0xcd, 0xfe, 0x80, 0x88, 0xd0, 0xb1, 0x3c, 0x3e,\n\t0x30, 0xbe, 0x20, 0xb5, 0x29, 0x03, 0xa5, 0x0c, 0x87, 0x2a, 0xb4, 0x03, 0x33, 0x49, 0x5a, 0x36,\n\t0xfd, 0x33, 0x03, 0x65, 0xa6, 0x6b, 0xf9, 0xb5, 0xbd, 0x58, 0xd2, 0x7a, 0xb4, 0xab, 0xb4, 0x19,\n\t0x2e, 0x7c, 0x04, 0xbe, 0x02, 0x1f, 0x84, 0x03, 0xb7, 0x1c, 0x7b, 0xec, 0x05, 0x0d, 0x11, 0x67,\n\t0x0e, 0x5c, 0x73, 0x62, 0xb4, 0x52, 0x6c, 0xcb, 0x76, 0x5a, 0x11, 0x66, 0x72, 0xca, 0xcd, 0xfb,\n\t0xbc, 0xfb, 0xbe, 0xcf, 0x3e, 0xab, 0x77, 0xdf, 0x67, 0x8c, 0xbe, 0x19, 0xdc, 0x16, 0x26, 0xe3,\n\t0xd6, 0x20, 0x6c, 0x43, 0xe0, 0x83, 0x04, 0x61, 0x1d, 0x82, 0xdf, 0xe1, 0x81, 0x95, 0x05, 0xe8,\n\t0x90, 0x59, 0xb4, 0xe3, 0x31, 0x21, 0x18, 0xf7, 0x03, 0xe8, 0x31, 0x21, 0x03, 0x2a, 0x19, 0xf7,\n\t0xad, 0xc3, 0x9b, 0x6d, 0x90, 0xf4, 0xa6, 0xd5, 0x03, 0x1f, 0x02, 0x2a, 0xa1, 0x63, 0x0e, 0x03,\n\t0x2e, 0x39, 0x6e, 0xa5, 0x99, 0x26, 0x1d, 0x32, 0x73, 0x6e, 0xa6, 0x99, 0x65, 0x6e, 0x7d, 0xd4,\n\t0x63, 0xb2, 0x1f, 0xb6, 0x4d, 0x87, 0x7b, 0x56, 0x8f, 0xf7, 0xb8, 0xa5, 0x0a, 0xb4, 0xc3, 0xae,\n\t0x5a, 0xa9, 0x85, 0xfa, 0x95, 0x16, 0xde, 0xba, 0x55, 0xe0, 0x48, 0xd3, 0xa7, 0xd9, 0xfa, 0x78,\n\t0x9c, 0xe4, 0x51, 0xa7, 0xcf, 0x7c, 0x08, 0x8e, 0xac, 0xe1, 0xa0, 0x97, 0x00, 0xc2, 0xf2, 0x40,\n\t0xd2, 0x79, 0x59, 0xd6, 0x79, 0x59, 0x41, 0xe8, 0x4b, 0xe6, 0xc1, 0x4c, 0xc2, 0x27, 0x6f, 0x4b,\n\t0x10, 0x4e, 0x1f, 0x3c, 0x3a, 0x9d, 0xd7, 0xec, 0xa2, 0xb5, 0x3d, 0x2a, 0x9d, 0xfe, 0x0e, 0xf7,\n\t0x3b, 0x2c, 0xd1, 0x80, 0x1b, 0x68, 0xc9, 0xa7, 0x1e, 0xe8, 0x5a, 0x43, 0x6b, 0xad, 0xd8, 0xb5,\n\t0xe3, 0xc8, 0x58, 0x88, 0x23, 0x63, 0x69, 0x9f, 0x7a, 0x40, 0x54, 0x04, 0x6f, 0x23, 0x04, 0x2f,\n\t0x87, 0x01, 0x28, 0xfd, 0xfa, 0xa2, 0xda, 0x87, 0xb3, 0x7d, 0xe8, 0xde, 0x28, 0x42, 0x26, 0x76,\n\t0x35, 0x7f, 0xab, 0xa0, 0xf5, 0xbd, 0x50, 0x52, 0xc9, 0xfc, 0xde, 0x53, 0x68, 0xf7, 0x39, 0x1f,\n\t0x14, 0x60, 0x7a, 0x81, 0x6a, 0x8e, 0xcb, 0xc0, 0x97, 0x3b, 0xdc, 0xef, 0xb2, 0x9e, 0xe2, 0xaa,\n\t0x6e, 0x7f, 0x61, 0x16, 0xfd, 0xc2, 0x66, 0x46, 0xb5, 0x33, 0x51, 0xc4, 0x7e, 0x27, 0x23, 0xaa,\n\t0x4d, 0xa2, 0x24, 0x47, 0x84, 0x9f, 0xa1, 0x72, 0x10, 0xba, 0x20, 0xf4, 0x52, 0xa3, 0xd4, 0xaa,\n\t0x6e, 0x7f, 0x5a, 0x84, 0xd1, 0x24, 0xa1, 0x0b, 0x4f, 0x99, 0xec, 0x3f, 0x18, 0x42, 0x0a, 0x0a,\n\t0x7b, 0x35, 0xe3, 0x2a, 0x27, 0x31, 0x41, 0xd2, 0xa2, 0x78, 0x17, 0xad, 0x76, 0x29, 0x73, 0xc3,\n\t0x00, 0x1e, 0x72, 0x97, 0x39, 0x47, 0xfa, 0x92, 0xba, 0x81, 0x0f, 0xe3, 0xc8, 0x58, 0xbd, 0x3f,\n\t0x19, 0x38, 0x8d, 0x8c, 0x8d, 0x1c, 0xf0, 0xe8, 0x68, 0x08, 0x24, 0x9f, 0x8c, 0xbf, 0x44, 0x55,\n\t0x2f, 0xf9, 0x84, 0x59, 0xad, 0x15, 0x55, 0xab, 0x19, 0x47, 0x46, 0x75, 0x6f, 0x0c, 0x9f, 0x46,\n\t0xc6, 0xfa, 0xc4, 0x52, 0xd5, 0x99, 0x4c, 0xc3, 0x2f, 0xd1, 0x46, 0x72, 0xe5, 0x62, 0x48, 0x1d,\n\t0x38, 0x00, 0x17, 0x1c, 0xc9, 0x03, 0xbd, 0xac, 0xee, 0xfb, 0xd6, 0x84, 0xfa, 0x51, 0x73, 0x99,\n\t0xc3, 0x41, 0x2f, 0x01, 0x84, 0x99, 0xf4, 0x70, 0x22, 0x7f, 0x97, 0xb6, 0xc1, 0x3d, 0x4b, 0xb5,\n\t0xdf, 0x8d, 0x23, 0x63, 0x63, 0x7f, 0xba, 0x22, 0x99, 0x25, 0xc1, 0x1c, 0xad, 0xf1, 0xf6, 0x0f,\n\t0xe0, 0xc8, 0x11, 0x6d, 0xf5, 0xe2, 0xb4, 0x38, 0x8e, 0x8c, 0xb5, 0x07, 0xb9, 0x72, 0x64, 0xaa,\n\t0x7c, 0x72, 0x61, 0x82, 0x75, 0xe0, 0x5e, 0xb7, 0x0b, 0x8e, 0x14, 0xfa, 0xff, 0xc6, 0x17, 0x76,\n\t0x30, 0x86, 0x93, 0x0b, 0x1b, 0x2f, 0x77, 0x5c, 0x2a, 0x04, 0x99, 0x4c, 0xc3, 0x77, 0xd0, 0x5a,\n\t0xf2, 0xb0, 0x78, 0x28, 0x0f, 0xc0, 0xe1, 0x7e, 0x47, 0xe8, 0xcb, 0x0d, 0xad, 0x55, 0x4e, 0x4f,\n\t0xf0, 0x28, 0x17, 0x21, 0x53, 0x3b, 0xf1, 0x63, 0xb4, 0x39, 0xea, 0x22, 0x02, 0x87, 0x0c, 0x5e,\n\t0x3c, 0x81, 0x20, 0x59, 0x08, 0xbd, 0xd2, 0x28, 0xb5, 0x56, 0xec, 0x0f, 0xe2, 0xc8, 0xd8, 0xbc,\n\t0x3b, 0x7f, 0x0b, 0x39, 0x2f, 0x17, 0x3f, 0x47, 0x38, 0x00, 0xe6, 0x1f, 0x72, 0x47, 0xb5, 0x5f,\n\t0xd6, 0x10, 0x48, 0xe9, 0xbb, 0x11, 0x47, 0x06, 0x26, 0x33, 0xd1, 0xd3, 0xc8, 0x78, 0x6f, 0x16,\n\t0x55, 0xed, 0x31, 0xa7, 0x16, 0xfe, 0x11, 0xad, 0x7b, 0xb9, 0x71, 0x21, 0xf4, 0x9a, 0x7a, 0x21,\n\t0xb7, 0x8b, 0xbf, 0xc9, 0xfc, 0xbc, 0xb1, 0x37, 0xb3, 0x27, 0xb2, 0x9e, 0xc7, 0x05, 0x99, 0x66,\n\t0x6a, 0xfe, 0xae, 0xa1, 0xeb, 0x53, 0x33, 0x24, 0x7d, 0xae, 0x61, 0xca, 0x80, 0x9f, 0xa3, 0x4a,\n\t0xd2, 0x15, 0x1d, 0x2a, 0xa9, 0x1a, 0x2a, 0xd5, 0xed, 0x1b, 0xc5, 0x7a, 0x28, 0x6d, 0x98, 0x3d,\n\t0x90, 0x74, 0x3c, 0xc8, 0xc6, 0x18, 0x19, 0x55, 0xc5, 0xdf, 0xa1, 0x4a, 0xc6, 0x2c, 0xf4, 0x45,\n\t0x25, 0xfc, 0xb3, 0x7f, 0x21, 0x3c, 0x7f, 0x76, 0x7b, 0x29, 0xa1, 0x22, 0xa3, 0x82, 0xcd, 0xbf,\n\t0x34, 0xd4, 0x78, 0x93, 0xbe, 0x5d, 0x26, 0x24, 0x7e, 0x36, 0xa3, 0xd1, 0x2c, 0xf8, 0x4e, 0x98,\n\t0x48, 0x15, 0x5e, 0xcb, 0x14, 0x56, 0xce, 0x90, 0x09, 0x7d, 0x03, 0x54, 0x66, 0x12, 0xbc, 0x33,\n\t0x71, 0xf7, 0x2f, 0x2c, 0x2e, 0x77, 0xf0, 0xf1, 0x18, 0xfc, 0x3a, 0x29, 0x4e, 0x52, 0x8e, 0xe6,\n\t0x2f, 0x1a, 0xba, 0x76, 0x00, 0xc1, 0x21, 0x73, 0x80, 0x40, 0x17, 0x02, 0xf0, 0x1d, 0xc0, 0x16,\n\t0x5a, 0x19, 0x8d, 0x88, 0xcc, 0x19, 0x36, 0xb2, 0xec, 0x95, 0xd1, 0x38, 0x21, 0xe3, 0x3d, 0x23,\n\t0x17, 0x59, 0x3c, 0xd7, 0x45, 0xae, 0xa3, 0xa5, 0x21, 0x95, 0x7d, 0xbd, 0xa4, 0x76, 0x54, 0x92,\n\t0xe8, 0x43, 0x2a, 0xfb, 0x44, 0xa1, 0x2a, 0xca, 0x03, 0xa9, 0x66, 0x70, 0x39, 0x8b, 0xf2, 0x40,\n\t0x12, 0x85, 0x36, 0x4f, 0x96, 0xd1, 0xc6, 0x13, 0xea, 0xb2, 0xce, 0x95, 0x73, 0x5d, 0x39, 0xd7,\n\t0xdb, 0x9d, 0x0b, 0x5d, 0x39, 0xd7, 0x85, 0x9c, 0x6b, 0x8e, 0xaf, 0x54, 0x2f, 0xcd, 0x57, 0x4e,\n\t0x34, 0x54, 0x9f, 0x79, 0xe3, 0x97, 0xed, 0x2c, 0xdf, 0xcf, 0x38, 0xcb, 0xe7, 0xc5, 0xa5, 0xcf,\n\t0x9c, 0x7e, 0xc6, 0x5b, 0xfe, 0xd6, 0x50, 0xf3, 0xcd, 0x1a, 0x2f, 0xc1, 0x5d, 0xbc, 0xbc, 0xbb,\n\t0x7c, 0xf5, 0x1f, 0x04, 0x16, 0xf1, 0x97, 0x5f, 0x35, 0xf4, 0xff, 0x39, 0x63, 0x14, 0xbf, 0x8f,\n\t0x4a, 0x61, 0xe0, 0x66, 0x76, 0xb0, 0x1c, 0x47, 0x46, 0xe9, 0x31, 0xd9, 0x25, 0x09, 0x86, 0x29,\n\t0x5a, 0x16, 0xa9, 0x23, 0x65, 0xf2, 0xef, 0x14, 0x3f, 0xe3, 0xb4, 0x95, 0xd9, 0xd5, 0x38, 0x32,\n\t0x96, 0xcf, 0xd0, 0xb3, 0xba, 0xb8, 0x85, 0x2a, 0x0e, 0xb5, 0x43, 0xbf, 0xe3, 0xa6, 0x9e, 0x55,\n\t0xb3, 0x6b, 0xc9, 0x75, 0xed, 0xdc, 0x4d, 0x31, 0x32, 0x8a, 0xda, 0xfb, 0xc7, 0x27, 0xf5, 0x85,\n\t0x57, 0x27, 0xf5, 0x85, 0xd7, 0x27, 0xf5, 0x85, 0x9f, 0xe2, 0xba, 0x76, 0x1c, 0xd7, 0xb5, 0x57,\n\t0x71, 0x5d, 0x7b, 0x1d, 0xd7, 0xb5, 0x3f, 0xe2, 0xba, 0xf6, 0xf3, 0x9f, 0xf5, 0x85, 0x6f, 0x5b,\n\t0x45, 0xff, 0x28, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xf5, 0x97, 0x1c, 0x6c, 0x0f, 0x00,\n\t0x00,\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\ti -= len(*m.ReinvocationPolicy)\n\t\tcopy(dAtA[i:], *m.ReinvocationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReinvocationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Path != nil {\n\t\ti -= len(*m.Path)\n\t\tcopy(dAtA[i:], *m.Path)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WebhookClientConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WebhookClientConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.URL != nil {\n\t\ti -= len(*m.URL)\n\t\tcopy(dAtA[i:], *m.URL)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.CABundle != nil {\n\t\ti -= len(m.CABundle)\n\t\tcopy(dAtA[i:], m.CABundle)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MutatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\tl = len(*m.ReinvocationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Path != nil {\n\t\tl = len(*m.Path)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *WebhookClientConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CABundle != nil {\n\t\tl = len(m.CABundle)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.URL != nil {\n\t\tl = len(*m.URL)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v11.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ReinvocationPolicy:` + valueToStringGenerated(this.ReinvocationPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v11.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]MutatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"MutatingWebhook\", \"MutatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingWebhookConfiguration\", \"MutatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceReference{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Path:` + valueToStringGenerated(this.Path) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v11.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v11.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]ValidatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhook\", \"ValidatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhookConfiguration\", \"ValidatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WebhookClientConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WebhookClientConfig{`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"ServiceReference\", \"ServiceReference\", 1) + `,`,\n\t\t`CABundle:` + valueToStringGenerated(this.CABundle) + `,`,\n\t\t`URL:` + valueToStringGenerated(this.URL) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, v1.RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v11.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReinvocationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ReinvocationPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.ReinvocationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v11.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, MutatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Path = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, v1.RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v11.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v11.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, ValidatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WebhookClientConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &ServiceReference{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CABundle\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.CABundle == nil {\n\t\t\t\tm.CABundle = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field URL\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.URL = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1beta1;\n\nimport \"k8s.io/api/admissionregistration/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1beta1\";\n\n// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage MutatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  repeated k8s.io.api.admissionregistration.v1.RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Ignore.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Exact\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 11;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: Unknown, None, Some, NoneOnDryRun\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some. Defaults to Unknown.\n  // +optional\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 30 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // Default to `['v1beta1']`.\n  // +optional\n  repeated string admissionReviewVersions = 8;\n\n  // reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n  // Allowed values are \"Never\" and \"IfNeeded\".\n  //\n  // Never: the webhook will not be called more than once in a single admission evaluation.\n  //\n  // IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n  // if the object being admitted is modified by other admission plugins after the initial webhook call.\n  // Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n  // Note:\n  // * the number of additional invocations is not guaranteed to be exactly one.\n  // * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n  // * webhooks that use this option may be reordered to minimize the number of additional invocations.\n  // * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n  //\n  // Defaults to \"Never\".\n  // +optional\n  optional string reinvocationPolicy = 10;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=AdmissionWebhookMatchConditions\n  // +optional\n  repeated MatchCondition matchConditions = 12;\n}\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\nmessage MutatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated MutatingWebhook Webhooks = 2;\n}\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\nmessage MutatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of MutatingWebhookConfiguration.\n  repeated MutatingWebhookConfiguration items = 2;\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\nmessage ServiceReference {\n  // `namespace` is the namespace of the service.\n  // Required\n  optional string namespace = 1;\n\n  // `name` is the name of the service.\n  // Required\n  optional string name = 2;\n\n  // `path` is an optional URL path which will be sent in any request to\n  // this service.\n  // +optional\n  optional string path = 3;\n\n  // If specified, the port on the service that hosting webhook.\n  // Default to 443 for backward compatibility.\n  // `port` should be a valid port number (1-65535, inclusive).\n  // +optional\n  optional int32 port = 4;\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage ValidatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  repeated k8s.io.api.admissionregistration.v1.RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Ignore.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Exact\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 10;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: Unknown, None, Some, NoneOnDryRun\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some. Defaults to Unknown.\n  // +optional\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 30 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // Default to `['v1beta1']`.\n  // +optional\n  repeated string admissionReviewVersions = 8;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=AdmissionWebhookMatchConditions\n  // +optional\n  repeated MatchCondition matchConditions = 11;\n}\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\nmessage ValidatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated ValidatingWebhook Webhooks = 2;\n}\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\nmessage ValidatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingWebhookConfiguration.\n  repeated ValidatingWebhookConfiguration items = 2;\n}\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\nmessage WebhookClientConfig {\n  // `url` gives the location of the webhook, in standard URL form\n  // (`scheme://host:port/path`). Exactly one of `url` or `service`\n  // must be specified.\n  //\n  // The `host` should not refer to a service running in the cluster; use\n  // the `service` field instead. The host might be resolved via external\n  // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n  // in-cluster DNS as that would be a layering violation). `host` may\n  // also be an IP address.\n  //\n  // Please note that using `localhost` or `127.0.0.1` as a `host` is\n  // risky unless you take great care to run this webhook on all hosts\n  // which run an apiserver which might need to make calls to this\n  // webhook. Such installs are likely to be non-portable, i.e., not easy\n  // to turn up in a new cluster.\n  //\n  // The scheme must be \"https\"; the URL must begin with \"https://\".\n  //\n  // A path is optional, and if present may be any string permissible in\n  // a URL. You may use the path to pass an arbitrary string to the\n  // webhook, for example, a cluster identifier.\n  //\n  // Attempting to use a user or basic auth e.g. \"user:password@\" is not\n  // allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n  // allowed, either.\n  //\n  // +optional\n  optional string url = 3;\n\n  // `service` is a reference to the service for this webhook. Either\n  // `service` or `url` must be specified.\n  //\n  // If the webhook is running within the cluster, then you should use `service`.\n  //\n  // +optional\n  optional ServiceReference service = 1;\n\n  // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n  // If unspecified, system trust roots on the apiserver are used.\n  // +optional\n  optional bytes caBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingWebhookConfiguration{},\n\t\t&ValidatingWebhookConfigurationList{},\n\t\t&MutatingWebhookConfiguration{},\n\t\t&MutatingWebhookConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule = v1.Rule\n\n// ScopeType specifies a scope for a Rule.\ntype ScopeType = v1.ScopeType\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = v1.ClusterScope\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = v1.NamespacedScope\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = v1.AllScopes\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// MatchPolicyType specifies the type of match policy\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// SideEffectClass specifies the types of side effects a webhook may have.\ntype SideEffectClass string\n\nconst (\n\t// SideEffectClassUnknown means that no information is known about the side effects of calling the webhook.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassUnknown SideEffectClass = \"Unknown\"\n\t// SideEffectClassNone means that calling the webhook will have no side effects.\n\tSideEffectClassNone SideEffectClass = \"None\"\n\t// SideEffectClassSome means that calling the webhook will possibly have side effects.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassSome SideEffectClass = \"Some\"\n\t// SideEffectClassNoneOnDryRun means that calling the webhook will possibly have side effects, but if the\n\t// request being reviewed has the dry-run attribute, the side effects will be suppressed.\n\tSideEffectClassNoneOnDryRun SideEffectClass = \"NoneOnDryRun\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,ValidatingWebhookConfiguration\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\ntype ValidatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tWebhooks []ValidatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,ValidatingWebhookConfigurationList\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\ntype ValidatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingWebhookConfiguration.\n\tItems []ValidatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,MutatingWebhookConfiguration\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\ntype MutatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tWebhooks []MutatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,MutatingWebhookConfigurationList\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\ntype MutatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of MutatingWebhookConfiguration.\n\tItems []MutatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype ValidatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Ignore.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Exact\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,10,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: Unknown, None, Some, NoneOnDryRun\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some. Defaults to Unknown.\n\t// +optional\n\tSideEffects *SideEffectClass `json:\"sideEffects,omitempty\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 30 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// Default to `['v1beta1']`.\n\t// +optional\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions,omitempty\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=AdmissionWebhookMatchConditions\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,11,rep,name=matchConditions\"`\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype MutatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Ignore.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Exact\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,11,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: Unknown, None, Some, NoneOnDryRun\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some. Defaults to Unknown.\n\t// +optional\n\tSideEffects *SideEffectClass `json:\"sideEffects,omitempty\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 30 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// Default to `['v1beta1']`.\n\t// +optional\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions,omitempty\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n\t// Allowed values are \"Never\" and \"IfNeeded\".\n\t//\n\t// Never: the webhook will not be called more than once in a single admission evaluation.\n\t//\n\t// IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n\t// if the object being admitted is modified by other admission plugins after the initial webhook call.\n\t// Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n\t// Note:\n\t// * the number of additional invocations is not guaranteed to be exactly one.\n\t// * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n\t// * webhooks that use this option may be reordered to minimize the number of additional invocations.\n\t// * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\t//\n\t// Defaults to \"Never\".\n\t// +optional\n\tReinvocationPolicy *ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\" protobuf:\"bytes,10,opt,name=reinvocationPolicy,casttype=ReinvocationPolicyType\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// This is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=AdmissionWebhookMatchConditions\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,12,rep,name=matchConditions\"`\n}\n\n// ReinvocationPolicyType specifies what type of policy the admission hook uses.\ntype ReinvocationPolicyType string\n\nconst (\n\t// NeverReinvocationPolicy indicates that the webhook must not be called more than once in a\n\t// single admission evaluation.\n\tNeverReinvocationPolicy ReinvocationPolicyType = \"Never\"\n\t// IfNeededReinvocationPolicy indicates that the webhook may be called at least one\n\t// additional time as part of the admission evaluation if the object being admitted is\n\t// modified by other admission plugins after the initial webhook call.\n\tIfNeededReinvocationPolicy ReinvocationPolicyType = \"IfNeeded\"\n)\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations = v1.RuleWithOperations\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType = v1.OperationType\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = v1.OperationAll\n\tCreate       OperationType = v1.Create\n\tUpdate       OperationType = v1.Update\n\tDelete       OperationType = v1.Delete\n\tConnect      OperationType = v1.Connect\n)\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\ntype WebhookClientConfig struct {\n\t// `url` gives the location of the webhook, in standard URL form\n\t// (`scheme://host:port/path`). Exactly one of `url` or `service`\n\t// must be specified.\n\t//\n\t// The `host` should not refer to a service running in the cluster; use\n\t// the `service` field instead. The host might be resolved via external\n\t// DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n\t// in-cluster DNS as that would be a layering violation). `host` may\n\t// also be an IP address.\n\t//\n\t// Please note that using `localhost` or `127.0.0.1` as a `host` is\n\t// risky unless you take great care to run this webhook on all hosts\n\t// which run an apiserver which might need to make calls to this\n\t// webhook. Such installs are likely to be non-portable, i.e., not easy\n\t// to turn up in a new cluster.\n\t//\n\t// The scheme must be \"https\"; the URL must begin with \"https://\".\n\t//\n\t// A path is optional, and if present may be any string permissible in\n\t// a URL. You may use the path to pass an arbitrary string to the\n\t// webhook, for example, a cluster identifier.\n\t//\n\t// Attempting to use a user or basic auth e.g. \"user:password@\" is not\n\t// allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n\t// allowed, either.\n\t//\n\t// +optional\n\tURL *string `json:\"url,omitempty\" protobuf:\"bytes,3,opt,name=url\"`\n\n\t// `service` is a reference to the service for this webhook. Either\n\t// `service` or `url` must be specified.\n\t//\n\t// If the webhook is running within the cluster, then you should use `service`.\n\t//\n\t// +optional\n\tService *ServiceReference `json:\"service,omitempty\" protobuf:\"bytes,1,opt,name=service\"`\n\n\t// `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n\t// If unspecified, system trust roots on the apiserver are used.\n\t// +optional\n\tCABundle []byte `json:\"caBundle,omitempty\" protobuf:\"bytes,2,opt,name=caBundle\"`\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\ntype ServiceReference struct {\n\t// `namespace` is the namespace of the service.\n\t// Required\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of the service.\n\t// Required\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// `path` is an optional URL path which will be sent in any request to\n\t// this service.\n\t// +optional\n\tPath *string `json:\"path,omitempty\" protobuf:\"bytes,3,opt,name=path\"`\n\n\t// If specified, the port on the service that hosting webhook.\n\t// Default to 443 for backward compatibility.\n\t// `port` should be a valid port number (1-65535, inclusive).\n\t// +optional\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"varint,4,opt,name=port\"`\n}\n\n// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\ntype MatchCondition struct {\n\t// Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n\t// as well as providing an identifier for logging purposes. A good name should be descriptive of\n\t// the associated expression.\n\t// Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n\t// must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n\t// '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n\t// optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\t//\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n\t// CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\t//\n\t// 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n\t// 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\t//\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=expression\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_MatchCondition = map[string]string{\n\t\"\":           \"MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\",\n\t\"name\":       \"Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\\n\\nRequired.\",\n\t\"expression\": \"Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\\n\\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\\n\\nRequired.\",\n}\n\nfunc (MatchCondition) SwaggerDoc() map[string]string {\n\treturn map_MatchCondition\n}\n\nvar map_MutatingWebhook = map[string]string{\n\t\"\":                        \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Exact\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.\",\n\t\"reinvocationPolicy\":      \"reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \\\"Never\\\" and \\\"IfNeeded\\\".\\n\\nNever: the webhook will not be called more than once in a single admission evaluation.\\n\\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\\n\\nDefaults to \\\"Never\\\".\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\\n\\nThis is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\",\n}\n\nfunc (MutatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhook\n}\n\nvar map_MutatingWebhookConfiguration = map[string]string{\n\t\"\":         \"MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (MutatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfiguration\n}\n\nvar map_MutatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of MutatingWebhookConfiguration.\",\n}\n\nfunc (MutatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfigurationList\n}\n\nvar map_ServiceReference = map[string]string{\n\t\"\":          \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n\t\"namespace\": \"`namespace` is the namespace of the service. Required\",\n\t\"name\":      \"`name` is the name of the service. Required\",\n\t\"path\":      \"`path` is an optional URL path which will be sent in any request to this service.\",\n\t\"port\":      \"If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).\",\n}\n\nfunc (ServiceReference) SwaggerDoc() map[string]string {\n\treturn map_ServiceReference\n}\n\nvar map_ValidatingWebhook = map[string]string{\n\t\"\":                        \"ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Exact\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\\n\\nThis is an alpha feature and managed by the AdmissionWebhookMatchConditions feature gate.\",\n}\n\nfunc (ValidatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhook\n}\n\nvar map_ValidatingWebhookConfiguration = map[string]string{\n\t\"\":         \"ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (ValidatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfiguration\n}\n\nvar map_ValidatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingWebhookConfiguration.\",\n}\n\nfunc (ValidatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfigurationList\n}\n\nvar map_WebhookClientConfig = map[string]string{\n\t\"\":         \"WebhookClientConfig contains the information to make a TLS connection with the webhook\",\n\t\"url\":      \"`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\\n\\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\\n\\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\\n\\nThe scheme must be \\\"https\\\"; the URL must begin with \\\"https://\\\".\\n\\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\\n\\nAttempting to use a user or basic auth e.g. \\\"user:password@\\\" is not allowed. Fragments (\\\"#...\\\") and query parameters (\\\"?...\\\") are not allowed, either.\",\n\t\"service\":  \"`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\\n\\nIf the webhook is running within the cluster, then you should use `service`.\",\n\t\"caBundle\": \"`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.\",\n}\n\nfunc (WebhookClientConfig) SwaggerDoc() map[string]string {\n\treturn map_WebhookClientConfig\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhook) DeepCopyInto(out *MutatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]v1.RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ReinvocationPolicy != nil {\n\t\tin, out := &in.ReinvocationPolicy, &out.ReinvocationPolicy\n\t\t*out = new(ReinvocationPolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhook.\nfunc (in *MutatingWebhook) DeepCopy() *MutatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]MutatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration.\nfunc (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList.\nfunc (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceReference) DeepCopyInto(out *ServiceReference) {\n\t*out = *in\n\tif in.Path != nil {\n\t\tin, out := &in.Path, &out.Path\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.\nfunc (in *ServiceReference) DeepCopy() *ServiceReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhook) DeepCopyInto(out *ValidatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]v1.RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhook.\nfunc (in *ValidatingWebhook) DeepCopy() *ValidatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]ValidatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration.\nfunc (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) {\n\t*out = *in\n\tif in.URL != nil {\n\t\tin, out := &in.URL, &out.URL\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(ServiceReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CABundle != nil {\n\t\tin, out := &in.CABundle, &out.CABundle\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig.\nfunc (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WebhookClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingWebhookConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *MutatingWebhookConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"MutatingWebhookConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingWebhookConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"MutatingWebhookConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"ValidatingWebhookConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"ValidatingWebhookConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=apidiscovery.k8s.io\n\npackage v2beta1 // import \"k8s.io/api/apidiscovery/v2beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto\n\npackage v2beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *APIGroupDiscovery) Reset()      { *m = APIGroupDiscovery{} }\nfunc (*APIGroupDiscovery) ProtoMessage() {}\nfunc (*APIGroupDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0442b7af4d680cb7, []int{0}\n}\nfunc (m *APIGroupDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscovery.Merge(m, src)\n}\nfunc (m *APIGroupDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscovery proto.InternalMessageInfo\n\nfunc (m *APIGroupDiscoveryList) Reset()      { *m = APIGroupDiscoveryList{} }\nfunc (*APIGroupDiscoveryList) ProtoMessage() {}\nfunc (*APIGroupDiscoveryList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0442b7af4d680cb7, []int{1}\n}\nfunc (m *APIGroupDiscoveryList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscoveryList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscoveryList.Merge(m, src)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscoveryList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscoveryList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscoveryList proto.InternalMessageInfo\n\nfunc (m *APIResourceDiscovery) Reset()      { *m = APIResourceDiscovery{} }\nfunc (*APIResourceDiscovery) ProtoMessage() {}\nfunc (*APIResourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0442b7af4d680cb7, []int{2}\n}\nfunc (m *APIResourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResourceDiscovery.Merge(m, src)\n}\nfunc (m *APIResourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APISubresourceDiscovery) Reset()      { *m = APISubresourceDiscovery{} }\nfunc (*APISubresourceDiscovery) ProtoMessage() {}\nfunc (*APISubresourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0442b7af4d680cb7, []int{3}\n}\nfunc (m *APISubresourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APISubresourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APISubresourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APISubresourceDiscovery.Merge(m, src)\n}\nfunc (m *APISubresourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APISubresourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APISubresourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APISubresourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APIVersionDiscovery) Reset()      { *m = APIVersionDiscovery{} }\nfunc (*APIVersionDiscovery) ProtoMessage() {}\nfunc (*APIVersionDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0442b7af4d680cb7, []int{4}\n}\nfunc (m *APIVersionDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIVersionDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIVersionDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIVersionDiscovery.Merge(m, src)\n}\nfunc (m *APIVersionDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIVersionDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIVersionDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIVersionDiscovery proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*APIGroupDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIGroupDiscovery\")\n\tproto.RegisterType((*APIGroupDiscoveryList)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIGroupDiscoveryList\")\n\tproto.RegisterType((*APIResourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIResourceDiscovery\")\n\tproto.RegisterType((*APISubresourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APISubresourceDiscovery\")\n\tproto.RegisterType((*APIVersionDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIVersionDiscovery\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto\", fileDescriptor_0442b7af4d680cb7)\n}\n\nvar fileDescriptor_0442b7af4d680cb7 = []byte{\n\t// 754 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x4e, 0xdb, 0x4c,\n\t0x14, 0x8d, 0x09, 0xf9, 0x48, 0x26, 0xc9, 0xf7, 0x85, 0x01, 0xf4, 0x59, 0x2c, 0x6c, 0x94, 0x4d,\n\t0xa9, 0xd4, 0xda, 0x25, 0x02, 0xc4, 0x36, 0x29, 0xb4, 0x8d, 0xfa, 0x87, 0x26, 0x15, 0x95, 0xaa,\n\t0x2e, 0x6a, 0x3b, 0x17, 0xc7, 0x0d, 0xb1, 0xad, 0x99, 0x71, 0x24, 0x76, 0x7d, 0x84, 0xbe, 0x43,\n\t0x5f, 0x86, 0x55, 0xc5, 0xa2, 0x0b, 0xba, 0x89, 0x4a, 0xfa, 0x00, 0xdd, 0xb3, 0xaa, 0xec, 0x8c,\n\t0x7f, 0x42, 0x40, 0x44, 0x5d, 0x74, 0x81, 0x84, 0xcf, 0x3d, 0xe7, 0xdc, 0x7b, 0x2e, 0xd7, 0x06,\n\t0x3d, 0xeb, 0xef, 0x31, 0xcd, 0xf1, 0xf4, 0x7e, 0x60, 0x02, 0x75, 0x81, 0x03, 0xd3, 0x87, 0xe0,\n\t0x76, 0x3d, 0xaa, 0x8b, 0x82, 0xe1, 0x3b, 0xe1, 0x4f, 0xd7, 0x61, 0x96, 0x37, 0x04, 0x7a, 0xaa,\n\t0x0f, 0x1b, 0x26, 0x70, 0x63, 0x4b, 0xb7, 0xc1, 0x05, 0x6a, 0x70, 0xe8, 0x6a, 0x3e, 0xf5, 0xb8,\n\t0x87, 0xd5, 0x89, 0x40, 0x33, 0x7c, 0x47, 0xcb, 0x0a, 0x34, 0x21, 0x58, 0x7f, 0x68, 0x3b, 0xbc,\n\t0x17, 0x98, 0x9a, 0xe5, 0x0d, 0x74, 0xdb, 0xb3, 0x3d, 0x3d, 0xd2, 0x99, 0xc1, 0x71, 0xf4, 0x14,\n\t0x3d, 0x44, 0xbf, 0x4d, 0xfc, 0xd6, 0xb7, 0xd3, 0x01, 0x06, 0x86, 0xd5, 0x73, 0xdc, 0xb0, 0xb9,\n\t0xdf, 0xb7, 0x43, 0x80, 0xe9, 0x03, 0xe0, 0x86, 0x3e, 0x9c, 0x99, 0x62, 0x5d, 0xbf, 0x4d, 0x45,\n\t0x03, 0x97, 0x3b, 0x03, 0x98, 0x11, 0xec, 0xde, 0x25, 0x60, 0x56, 0x0f, 0x06, 0xc6, 0x75, 0x5d,\n\t0xfd, 0xbb, 0x84, 0x96, 0x9b, 0x87, 0xed, 0xa7, 0xd4, 0x0b, 0xfc, 0xfd, 0x38, 0x2b, 0xfe, 0x80,\n\t0x8a, 0xe1, 0x64, 0x5d, 0x83, 0x1b, 0xb2, 0xb4, 0x21, 0x6d, 0x96, 0x1b, 0x8f, 0xb4, 0x74, 0x2f,\n\t0x49, 0x03, 0xcd, 0xef, 0xdb, 0x21, 0xc0, 0xb4, 0x90, 0xad, 0x0d, 0xb7, 0xb4, 0xd7, 0xe6, 0x47,\n\t0xb0, 0xf8, 0x4b, 0xe0, 0x46, 0x0b, 0x9f, 0x8d, 0xd4, 0xdc, 0x78, 0xa4, 0xa2, 0x14, 0x23, 0x89,\n\t0x2b, 0x36, 0x51, 0x71, 0x08, 0x94, 0x39, 0x9e, 0xcb, 0xe4, 0x85, 0x8d, 0xfc, 0x66, 0xb9, 0xb1,\n\t0xad, 0xdd, 0xb1, 0x79, 0xad, 0x79, 0xd8, 0x3e, 0x9a, 0x68, 0x92, 0x49, 0x5b, 0x35, 0xd1, 0xa5,\n\t0x28, 0x2a, 0x8c, 0x24, 0xbe, 0xf5, 0xaf, 0x12, 0x5a, 0x9b, 0xc9, 0xf6, 0xc2, 0x61, 0x1c, 0xbf,\n\t0x9f, 0xc9, 0xa7, 0xcd, 0x97, 0x2f, 0x54, 0x47, 0xe9, 0x92, 0xbe, 0x31, 0x92, 0xc9, 0xf6, 0x16,\n\t0x15, 0x1c, 0x0e, 0x83, 0x38, 0x58, 0x63, 0x9e, 0x60, 0xd3, 0x43, 0xb6, 0xaa, 0xc2, 0xbe, 0xd0,\n\t0x0e, 0x8d, 0xc8, 0xc4, 0xaf, 0xfe, 0x65, 0x11, 0xad, 0x36, 0x0f, 0xdb, 0x04, 0x98, 0x17, 0x50,\n\t0x0b, 0xd2, 0xbf, 0xd7, 0x03, 0x54, 0xa4, 0x02, 0x8c, 0xf2, 0x94, 0xd2, 0xf9, 0x62, 0x32, 0x49,\n\t0x18, 0xf8, 0x04, 0x55, 0x28, 0x30, 0xdf, 0x73, 0x19, 0x3c, 0x77, 0xdc, 0xae, 0xbc, 0x10, 0x6d,\n\t0x60, 0x77, 0xbe, 0x0d, 0x44, 0x83, 0x8a, 0x65, 0x87, 0xea, 0x56, 0x6d, 0x3c, 0x52, 0x2b, 0x24,\n\t0xe3, 0x47, 0xa6, 0xdc, 0xf1, 0x36, 0x2a, 0x30, 0xcb, 0xf3, 0x41, 0xce, 0x47, 0x83, 0x29, 0x71,\n\t0xb2, 0x4e, 0x08, 0x5e, 0x8d, 0xd4, 0x6a, 0x3c, 0x61, 0x04, 0x90, 0x09, 0x19, 0xef, 0xa3, 0x1a,\n\t0x73, 0x5c, 0x3b, 0x38, 0x31, 0x68, 0x5c, 0x97, 0x17, 0x23, 0x03, 0x59, 0x18, 0xd4, 0x3a, 0xd7,\n\t0xea, 0x64, 0x46, 0x81, 0x55, 0x54, 0x18, 0x02, 0x35, 0x99, 0x5c, 0xd8, 0xc8, 0x6f, 0x96, 0x5a,\n\t0xa5, 0xb0, 0xef, 0x51, 0x08, 0x90, 0x09, 0x8e, 0x35, 0x84, 0x58, 0xcf, 0xa3, 0xfc, 0x95, 0x31,\n\t0x00, 0x26, 0xff, 0x13, 0xb1, 0xfe, 0x0d, 0x8f, 0xb6, 0x93, 0xa0, 0x24, 0xc3, 0x08, 0xf9, 0x96,\n\t0xc1, 0xc1, 0xf6, 0xa8, 0x03, 0x4c, 0x5e, 0x4a, 0xf9, 0x8f, 0x13, 0x94, 0x64, 0x18, 0x98, 0xa2,\n\t0x0a, 0x0b, 0xcc, 0x78, 0xf3, 0x4c, 0x2e, 0x46, 0x17, 0xb1, 0x37, 0xcf, 0x45, 0x74, 0x52, 0x5d,\n\t0x7a, 0x17, 0xab, 0x22, 0x7c, 0x25, 0x53, 0x65, 0x64, 0xaa, 0x47, 0xfd, 0xdb, 0x02, 0xfa, 0xff,\n\t0x16, 0x3d, 0xde, 0x41, 0xe5, 0x0c, 0x57, 0xdc, 0xca, 0x8a, 0x30, 0x2d, 0x67, 0x24, 0x24, 0xcb,\n\t0xfb, 0xcb, 0x17, 0xc3, 0x50, 0xd5, 0xb0, 0x2c, 0xf0, 0x39, 0x74, 0xdf, 0x9c, 0xfa, 0xc0, 0xe4,\n\t0x7c, 0xb4, 0xb5, 0x3f, 0x6d, 0xb7, 0x26, 0xe2, 0x55, 0x9b, 0x59, 0x53, 0x32, 0xdd, 0x23, 0x3d,\n\t0x95, 0xc5, 0x9b, 0x4f, 0xa5, 0xfe, 0x4b, 0x42, 0x2b, 0x37, 0x7c, 0x81, 0xf0, 0x7d, 0xb4, 0x24,\n\t0xbe, 0x38, 0x62, 0x9d, 0xff, 0x89, 0x7e, 0x4b, 0x82, 0x4a, 0xe2, 0x3a, 0x3e, 0x46, 0xa5, 0xf4,\n\t0x14, 0x26, 0x1f, 0x87, 0x9d, 0x79, 0x4e, 0x61, 0xe6, 0x85, 0x6f, 0x2d, 0x8b, 0x1e, 0x25, 0x92,\n\t0x1c, 0x41, 0x6a, 0x8d, 0x0f, 0x50, 0xe9, 0x98, 0x02, 0xeb, 0xb9, 0xc0, 0x98, 0x78, 0xed, 0xee,\n\t0xc5, 0x82, 0x27, 0x71, 0xe1, 0x6a, 0xa4, 0xe2, 0xc4, 0x30, 0x41, 0x49, 0xaa, 0x6c, 0x1d, 0x9c,\n\t0x5d, 0x2a, 0xb9, 0xf3, 0x4b, 0x25, 0x77, 0x71, 0xa9, 0xe4, 0x3e, 0x8d, 0x15, 0xe9, 0x6c, 0xac,\n\t0x48, 0xe7, 0x63, 0x45, 0xba, 0x18, 0x2b, 0xd2, 0x8f, 0xb1, 0x22, 0x7d, 0xfe, 0xa9, 0xe4, 0xde,\n\t0xa9, 0x77, 0xfc, 0x87, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x66, 0x3b, 0x84, 0x9c, 0x07,\n\t0x00, 0x00,\n}\n\nfunc (m *APIGroupDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIGroupDiscoveryList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Subresources) > 0 {\n\t\tfor iNdEx := len(m.Subresources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subresources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor iNdEx := len(m.Categories) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Categories[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Categories[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Categories[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor iNdEx := len(m.ShortNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ShortNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ShortNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShortNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.SingularResource)\n\tcopy(dAtA[i:], m.SingularResource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SingularResource)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Scope)\n\tcopy(dAtA[i:], m.Scope)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scope)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APISubresourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APISubresourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APISubresourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor iNdEx := len(m.AcceptedTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AcceptedTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIVersionDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIVersionDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIVersionDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Freshness)\n\tcopy(dAtA[i:], m.Freshness)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Freshness)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *APIGroupDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Versions) > 0 {\n\t\tfor _, e := range m.Versions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIGroupDiscoveryList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIResourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Scope)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SingularResource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor _, s := range m.ShortNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor _, s := range m.Categories {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Subresources) > 0 {\n\t\tfor _, e := range m.Subresources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APISubresourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor _, e := range m.AcceptedTypes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIVersionDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Resources) > 0 {\n\t\tfor _, e := range m.Resources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Freshness)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *APIGroupDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVersions := \"[]APIVersionDiscovery{\"\n\tfor _, f := range this.Versions {\n\t\trepeatedStringForVersions += strings.Replace(strings.Replace(f.String(), \"APIVersionDiscovery\", \"APIVersionDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVersions += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscovery{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Versions:` + repeatedStringForVersions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIGroupDiscoveryList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]APIGroupDiscovery{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"APIGroupDiscovery\", \"APIGroupDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscoveryList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubresources := \"[]APISubresourceDiscovery{\"\n\tfor _, f := range this.Subresources {\n\t\trepeatedStringForSubresources += strings.Replace(strings.Replace(f.String(), \"APISubresourceDiscovery\", \"APISubresourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubresources += \"}\"\n\ts := strings.Join([]string{`&APIResourceDiscovery{`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`Scope:` + fmt.Sprintf(\"%v\", this.Scope) + `,`,\n\t\t`SingularResource:` + fmt.Sprintf(\"%v\", this.SingularResource) + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`ShortNames:` + fmt.Sprintf(\"%v\", this.ShortNames) + `,`,\n\t\t`Categories:` + fmt.Sprintf(\"%v\", this.Categories) + `,`,\n\t\t`Subresources:` + repeatedStringForSubresources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APISubresourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAcceptedTypes := \"[]GroupVersionKind{\"\n\tfor _, f := range this.AcceptedTypes {\n\t\trepeatedStringForAcceptedTypes += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAcceptedTypes += \"}\"\n\ts := strings.Join([]string{`&APISubresourceDiscovery{`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`AcceptedTypes:` + repeatedStringForAcceptedTypes + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIVersionDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResources := \"[]APIResourceDiscovery{\"\n\tfor _, f := range this.Resources {\n\t\trepeatedStringForResources += strings.Replace(strings.Replace(f.String(), \"APIResourceDiscovery\", \"APIResourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResources += \"}\"\n\ts := strings.Join([]string{`&APIVersionDiscovery{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resources:` + repeatedStringForResources + `,`,\n\t\t`Freshness:` + fmt.Sprintf(\"%v\", this.Freshness) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *APIGroupDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, APIVersionDiscovery{})\n\t\t\tif err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIGroupDiscoveryList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, APIGroupDiscovery{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scope = ResourceScope(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SingularResource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SingularResource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShortNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShortNames = append(m.ShortNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Categories\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Categories = append(m.Categories, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresources = append(m.Subresources, APISubresourceDiscovery{})\n\t\t\tif err := m.Subresources[len(m.Subresources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APISubresourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcceptedTypes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AcceptedTypes = append(m.AcceptedTypes, v1.GroupVersionKind{})\n\t\t\tif err := m.AcceptedTypes[len(m.AcceptedTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIVersionDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, APIResourceDiscovery{})\n\t\t\tif err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Freshness\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Freshness = DiscoveryFreshness(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apidiscovery.v2beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apidiscovery/v2beta1\";\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\nmessage APIGroupDiscovery {\n  // Standard object's metadata.\n  // The only field completed will be name. For instance, resourceVersion will be empty.\n  // name is the name of the API group whose discovery information is presented here.\n  // name is allowed to be \"\" to represent the legacy, ungroupified resources.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // versions are the versions supported in this group. They are sorted in descending order of preference,\n  // with the preferred version being the first entry.\n  // +listType=map\n  // +listMapKey=version\n  repeated APIVersionDiscovery versions = 2;\n}\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\nmessage APIGroupDiscoveryList {\n  // ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of groups for discovery. The groups are listed in priority order.\n  repeated APIGroupDiscovery items = 2;\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\nmessage APIResourceDiscovery {\n  // resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions in the API group.\n  // Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n  // Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n  optional string resource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n  // This value will be null if an APIService reports subresources but supports no operations on the parent resource\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // scope indicates the scope of a resource, either Cluster or Namespaced\n  optional string scope = 3;\n\n  // singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n  // For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n  // The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n  // The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n  optional string singularResource = 4;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy).\n  // +listType=set\n  repeated string verbs = 5;\n\n  // shortNames is a list of suggested short names of the resource.\n  // +listType=set\n  repeated string shortNames = 6;\n\n  // categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n  // Clients may use this to simplify acting on multiple resource types at once.\n  // +listType=set\n  repeated string categories = 7;\n\n  // subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n  // +listType=map\n  // +listMapKey=subresource\n  repeated APISubresourceDiscovery subresources = 8;\n}\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\nmessage APISubresourceDiscovery {\n  // subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions.\n  optional string subresource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // Some subresources do not return normal resources, these will have null return types.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // acceptedTypes describes the kinds that this endpoint accepts.\n  // Subresources may accept the standard content types or define\n  // custom negotiation schemes. The list may not be exhaustive for\n  // all operations.\n  // +listType=map\n  // +listMapKey=group\n  // +listMapKey=version\n  // +listMapKey=kind\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind acceptedTypes = 3;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy). Subresources may define\n  // custom verbs outside the standard Kubernetes verb set. Clients\n  // should expect the behavior of standard verbs to align with\n  // Kubernetes interaction conventions.\n  // +listType=set\n  repeated string verbs = 4;\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\nmessage APIVersionDiscovery {\n  // version is the name of the version within a group version.\n  optional string version = 1;\n\n  // resources is a list of APIResourceDiscovery objects for the corresponding group version.\n  // +listType=map\n  // +listMapKey=resource\n  repeated APIResourceDiscovery resources = 2;\n\n  // freshness marks whether a group version's discovery document is up to date.\n  // \"Current\" indicates the discovery document was recently\n  // refreshed. \"Stale\" indicates the discovery document could not\n  // be retrieved and the returned discovery document may be\n  // significantly out of date. Clients that require the latest\n  // version of the discovery information be retrieved before\n  // performing an operation should not use the aggregated document\n  optional string freshness = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"apidiscovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&APIGroupDiscoveryList{},\n\t\t&APIGroupDiscovery{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.32\n// +k8s:prerelease-lifecycle-gen:removed=1.35\n// The deprecate and remove versions stated above are rough estimates and may be subject to change. We are estimating v2 types will be available in 1.28 and will support 4 versions where both v2beta1 and v2 are supported before deprecation.\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\ntype APIGroupDiscoveryList struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of groups for discovery. The groups are listed in priority order.\n\tItems []APIGroupDiscovery `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.32\n// +k8s:prerelease-lifecycle-gen:removed=1.35\n// The deprecate and remove versions stated above are rough estimates and may be subject to change. We are estimating v2 types will be available in 1.28 and will support 4 versions where both v2beta1 and v2 are supported before deprecation.\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\ntype APIGroupDiscovery struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// The only field completed will be name. For instance, resourceVersion will be empty.\n\t// name is the name of the API group whose discovery information is presented here.\n\t// name is allowed to be \"\" to represent the legacy, ungroupified resources.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// versions are the versions supported in this group. They are sorted in descending order of preference,\n\t// with the preferred version being the first entry.\n\t// +listType=map\n\t// +listMapKey=version\n\tVersions []APIVersionDiscovery `json:\"versions,omitempty\" protobuf:\"bytes,2,rep,name=versions\"`\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\ntype APIVersionDiscovery struct {\n\t// version is the name of the version within a group version.\n\tVersion string `json:\"version\" protobuf:\"bytes,1,opt,name=version\"`\n\t// resources is a list of APIResourceDiscovery objects for the corresponding group version.\n\t// +listType=map\n\t// +listMapKey=resource\n\tResources []APIResourceDiscovery `json:\"resources,omitempty\" protobuf:\"bytes,2,rep,name=resources\"`\n\t// freshness marks whether a group version's discovery document is up to date.\n\t// \"Current\" indicates the discovery document was recently\n\t// refreshed. \"Stale\" indicates the discovery document could not\n\t// be retrieved and the returned discovery document may be\n\t// significantly out of date. Clients that require the latest\n\t// version of the discovery information be retrieved before\n\t// performing an operation should not use the aggregated document\n\tFreshness DiscoveryFreshness `json:\"freshness,omitempty\" protobuf:\"bytes,3,opt,name=freshness\"`\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\ntype APIResourceDiscovery struct {\n\t// resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions in the API group.\n\t// Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n\t// Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n\tResource string `json:\"resource\" protobuf:\"bytes,1,opt,name=resource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n\t// This value will be null if an APIService reports subresources but supports no operations on the parent resource\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// scope indicates the scope of a resource, either Cluster or Namespaced\n\tScope ResourceScope `json:\"scope\" protobuf:\"bytes,3,opt,name=scope\"`\n\t// singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n\t// For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n\t// The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n\t// The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n\tSingularResource string `json:\"singularResource\" protobuf:\"bytes,4,opt,name=singularResource\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy).\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,5,opt,name=verbs\"`\n\t// shortNames is a list of suggested short names of the resource.\n\t// +listType=set\n\tShortNames []string `json:\"shortNames,omitempty\" protobuf:\"bytes,6,rep,name=shortNames\"`\n\t// categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n\t// Clients may use this to simplify acting on multiple resource types at once.\n\t// +listType=set\n\tCategories []string `json:\"categories,omitempty\" protobuf:\"bytes,7,rep,name=categories\"`\n\t// subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n\t// +listType=map\n\t// +listMapKey=subresource\n\tSubresources []APISubresourceDiscovery `json:\"subresources,omitempty\" protobuf:\"bytes,8,rep,name=subresources\"`\n}\n\n// ResourceScope is an enum defining the different scopes available to a resource.\ntype ResourceScope string\n\nconst (\n\tScopeCluster   ResourceScope = \"Cluster\"\n\tScopeNamespace ResourceScope = \"Namespaced\"\n)\n\n// DiscoveryFreshness is an enum defining whether the Discovery document published by an apiservice is up to date (fresh).\ntype DiscoveryFreshness string\n\nconst (\n\tDiscoveryFreshnessCurrent DiscoveryFreshness = \"Current\"\n\tDiscoveryFreshnessStale   DiscoveryFreshness = \"Stale\"\n)\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\ntype APISubresourceDiscovery struct {\n\t// subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions.\n\tSubresource string `json:\"subresource\" protobuf:\"bytes,1,opt,name=subresource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// Some subresources do not return normal resources, these will have null return types.\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// acceptedTypes describes the kinds that this endpoint accepts.\n\t// Subresources may accept the standard content types or define\n\t// custom negotiation schemes. The list may not be exhaustive for\n\t// all operations.\n\t// +listType=map\n\t// +listMapKey=group\n\t// +listMapKey=version\n\t// +listMapKey=kind\n\tAcceptedTypes []v1.GroupVersionKind `json:\"acceptedTypes,omitempty\" protobuf:\"bytes,3,rep,name=acceptedTypes\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy). Subresources may define\n\t// custom verbs outside the standard Kubernetes verb set. Clients\n\t// should expect the behavior of standard verbs to align with\n\t// Kubernetes interaction conventions.\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,4,opt,name=verbs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscovery) DeepCopyInto(out *APIGroupDiscovery) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]APIVersionDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscovery.\nfunc (in *APIGroupDiscovery) DeepCopy() *APIGroupDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscovery) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscoveryList) DeepCopyInto(out *APIGroupDiscoveryList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]APIGroupDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscoveryList.\nfunc (in *APIGroupDiscoveryList) DeepCopy() *APIGroupDiscoveryList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscoveryList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscoveryList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResourceDiscovery) DeepCopyInto(out *APIResourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ShortNames != nil {\n\t\tin, out := &in.ShortNames, &out.ShortNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Categories != nil {\n\t\tin, out := &in.Categories, &out.Categories\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Subresources != nil {\n\t\tin, out := &in.Subresources, &out.Subresources\n\t\t*out = make([]APISubresourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResourceDiscovery.\nfunc (in *APIResourceDiscovery) DeepCopy() *APIResourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APISubresourceDiscovery) DeepCopyInto(out *APISubresourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.AcceptedTypes != nil {\n\t\tin, out := &in.AcceptedTypes, &out.AcceptedTypes\n\t\t*out = make([]v1.GroupVersionKind, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISubresourceDiscovery.\nfunc (in *APISubresourceDiscovery) DeepCopy() *APISubresourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APISubresourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIVersionDiscovery) DeepCopyInto(out *APIVersionDiscovery) {\n\t*out = *in\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]APIResourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionDiscovery.\nfunc (in *APIVersionDiscovery) DeepCopy() *APIVersionDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIVersionDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscovery) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *APIGroupDiscovery) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *APIGroupDiscovery) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscoveryList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *APIGroupDiscoveryList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *APIGroupDiscoveryList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=internal.apiserver.k8s.io\n\n// Package v1alpha1 contains the v1alpha1 version of the API used by the\n// apiservers themselves.\npackage v1alpha1 // import \"k8s.io/api/apiserverinternal/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ServerStorageVersion) Reset()      { *m = ServerStorageVersion{} }\nfunc (*ServerStorageVersion) ProtoMessage() {}\nfunc (*ServerStorageVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{0}\n}\nfunc (m *ServerStorageVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServerStorageVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServerStorageVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServerStorageVersion.Merge(m, src)\n}\nfunc (m *ServerStorageVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServerStorageVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServerStorageVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServerStorageVersion proto.InternalMessageInfo\n\nfunc (m *StorageVersion) Reset()      { *m = StorageVersion{} }\nfunc (*StorageVersion) ProtoMessage() {}\nfunc (*StorageVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{1}\n}\nfunc (m *StorageVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersion.Merge(m, src)\n}\nfunc (m *StorageVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersion proto.InternalMessageInfo\n\nfunc (m *StorageVersionCondition) Reset()      { *m = StorageVersionCondition{} }\nfunc (*StorageVersionCondition) ProtoMessage() {}\nfunc (*StorageVersionCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{2}\n}\nfunc (m *StorageVersionCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionCondition.Merge(m, src)\n}\nfunc (m *StorageVersionCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionCondition proto.InternalMessageInfo\n\nfunc (m *StorageVersionList) Reset()      { *m = StorageVersionList{} }\nfunc (*StorageVersionList) ProtoMessage() {}\nfunc (*StorageVersionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{3}\n}\nfunc (m *StorageVersionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionList.Merge(m, src)\n}\nfunc (m *StorageVersionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionList proto.InternalMessageInfo\n\nfunc (m *StorageVersionSpec) Reset()      { *m = StorageVersionSpec{} }\nfunc (*StorageVersionSpec) ProtoMessage() {}\nfunc (*StorageVersionSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{4}\n}\nfunc (m *StorageVersionSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionSpec.Merge(m, src)\n}\nfunc (m *StorageVersionSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionSpec proto.InternalMessageInfo\n\nfunc (m *StorageVersionStatus) Reset()      { *m = StorageVersionStatus{} }\nfunc (*StorageVersionStatus) ProtoMessage() {}\nfunc (*StorageVersionStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a3903ff5e3cc7a03, []int{5}\n}\nfunc (m *StorageVersionStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionStatus.Merge(m, src)\n}\nfunc (m *StorageVersionStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ServerStorageVersion)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.ServerStorageVersion\")\n\tproto.RegisterType((*StorageVersion)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersion\")\n\tproto.RegisterType((*StorageVersionCondition)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionCondition\")\n\tproto.RegisterType((*StorageVersionList)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionList\")\n\tproto.RegisterType((*StorageVersionSpec)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionSpec\")\n\tproto.RegisterType((*StorageVersionStatus)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto\", fileDescriptor_a3903ff5e3cc7a03)\n}\n\nvar fileDescriptor_a3903ff5e3cc7a03 = []byte{\n\t// 768 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdf, 0x4e, 0x13, 0x4d,\n\t0x14, 0xef, 0xd2, 0x52, 0x60, 0xfa, 0x7d, 0xf4, 0x63, 0x3e, 0x08, 0xb5, 0x26, 0x5b, 0x6c, 0x82,\n\t0x41, 0x8d, 0xbb, 0xd2, 0x88, 0x91, 0x98, 0x68, 0x58, 0x20, 0x06, 0x05, 0x31, 0x03, 0xf1, 0x02,\n\t0xbd, 0x70, 0xba, 0x3b, 0x6e, 0xd7, 0x76, 0x77, 0x36, 0x3b, 0xd3, 0x26, 0xdc, 0x18, 0x1f, 0xc1,\n\t0x07, 0xf1, 0xd2, 0x87, 0xe0, 0xca, 0x70, 0x63, 0x42, 0x62, 0xd2, 0xc8, 0xfa, 0x16, 0x5c, 0x99,\n\t0x99, 0xdd, 0xb6, 0x6c, 0xbb, 0xc4, 0x86, 0x8b, 0x26, 0x9d, 0x73, 0xce, 0xef, 0x77, 0xfe, 0xcc,\n\t0x6f, 0xce, 0x82, 0x57, 0xcd, 0xc7, 0x4c, 0x73, 0xa8, 0xde, 0x6c, 0xd7, 0x49, 0xe0, 0x11, 0x4e,\n\t0x98, 0xde, 0x21, 0x9e, 0x45, 0x03, 0x3d, 0x76, 0x60, 0xdf, 0x11, 0x3f, 0x46, 0x82, 0x0e, 0x09,\n\t0x1c, 0x8f, 0x93, 0xc0, 0xc3, 0x2d, 0xbd, 0xb3, 0x8a, 0x5b, 0x7e, 0x03, 0xaf, 0xea, 0x36, 0xf1,\n\t0x48, 0x80, 0x39, 0xb1, 0x34, 0x3f, 0xa0, 0x9c, 0xc2, 0xe5, 0x08, 0xa6, 0x61, 0xdf, 0xd1, 0x46,\n\t0x60, 0x5a, 0x0f, 0x56, 0xbe, 0x6f, 0x3b, 0xbc, 0xd1, 0xae, 0x6b, 0x26, 0x75, 0x75, 0x9b, 0xda,\n\t0x54, 0x97, 0xe8, 0x7a, 0xfb, 0x83, 0x3c, 0xc9, 0x83, 0xfc, 0x17, 0xb1, 0x96, 0x1f, 0x0e, 0x8a,\n\t0x71, 0xb1, 0xd9, 0x70, 0x3c, 0x12, 0x1c, 0xeb, 0x7e, 0xd3, 0x96, 0x95, 0xe9, 0x2e, 0xe1, 0x58,\n\t0xef, 0x8c, 0xd4, 0x52, 0xd6, 0xaf, 0x42, 0x05, 0x6d, 0x8f, 0x3b, 0x2e, 0x19, 0x01, 0x3c, 0xfa,\n\t0x1b, 0x80, 0x99, 0x0d, 0xe2, 0xe2, 0x61, 0x5c, 0xf5, 0x87, 0x02, 0xe6, 0x0f, 0x64, 0xa7, 0x07,\n\t0x9c, 0x06, 0xd8, 0x26, 0x6f, 0x48, 0xc0, 0x1c, 0xea, 0xc1, 0x35, 0x50, 0xc0, 0xbe, 0x13, 0xb9,\n\t0x76, 0xb6, 0x4a, 0xca, 0x92, 0xb2, 0x32, 0x63, 0xfc, 0x7f, 0xd2, 0xad, 0x64, 0xc2, 0x6e, 0xa5,\n\t0xb0, 0xf1, 0x7a, 0xa7, 0xe7, 0x42, 0x97, 0xe3, 0xe0, 0x06, 0x28, 0x12, 0xcf, 0xa4, 0x96, 0xe3,\n\t0xd9, 0x31, 0x53, 0x69, 0x42, 0x42, 0x17, 0x63, 0x68, 0x71, 0x3b, 0xe9, 0x46, 0xc3, 0xf1, 0x70,\n\t0x13, 0xcc, 0x59, 0xc4, 0xa4, 0x16, 0xae, 0xb7, 0x7a, 0xd5, 0xb0, 0x52, 0x76, 0x29, 0xbb, 0x32,\n\t0x63, 0x2c, 0x84, 0xdd, 0xca, 0xdc, 0xd6, 0xb0, 0x13, 0x8d, 0xc6, 0x57, 0xbf, 0x4d, 0x80, 0xd9,\n\t0xa1, 0x8e, 0xde, 0x83, 0x69, 0x31, 0x6e, 0x0b, 0x73, 0x2c, 0xdb, 0x29, 0xd4, 0x1e, 0x68, 0x83,\n\t0x2b, 0xef, 0x4f, 0x4d, 0xf3, 0x9b, 0xb6, 0xbc, 0x7f, 0x4d, 0x44, 0x6b, 0x9d, 0x55, 0x6d, 0xbf,\n\t0xfe, 0x91, 0x98, 0x7c, 0x8f, 0x70, 0x6c, 0xc0, 0xb8, 0x0b, 0x30, 0xb0, 0xa1, 0x3e, 0x2b, 0x7c,\n\t0x0b, 0x72, 0xcc, 0x27, 0xa6, 0xec, 0xb8, 0x50, 0x5b, 0xd7, 0xc6, 0x12, 0x94, 0x96, 0x2c, 0xf3,\n\t0xc0, 0x27, 0xa6, 0xf1, 0x4f, 0x9c, 0x26, 0x27, 0x4e, 0x48, 0x92, 0x42, 0x13, 0xe4, 0x19, 0xc7,\n\t0xbc, 0x2d, 0x66, 0x21, 0xe8, 0x9f, 0x5c, 0x8f, 0x5e, 0x52, 0x18, 0xb3, 0x71, 0x82, 0x7c, 0x74,\n\t0x46, 0x31, 0x75, 0xf5, 0x6b, 0x16, 0x2c, 0x26, 0x01, 0x9b, 0xd4, 0xb3, 0x1c, 0x2e, 0xe6, 0xf7,\n\t0x0c, 0xe4, 0xf8, 0xb1, 0x4f, 0x62, 0x29, 0xdc, 0xeb, 0x95, 0x78, 0x78, 0xec, 0x93, 0x8b, 0x6e,\n\t0xe5, 0xe6, 0x15, 0x30, 0xe1, 0x46, 0x12, 0x08, 0xd7, 0xfb, 0x1d, 0x44, 0x92, 0xb8, 0x95, 0x2c,\n\t0xe2, 0xa2, 0x5b, 0x29, 0xf6, 0x61, 0xc9, 0xba, 0xe0, 0x0b, 0x00, 0x69, 0x5d, 0x76, 0x68, 0x3d,\n\t0x8f, 0x14, 0x2c, 0x94, 0x25, 0x06, 0x91, 0x35, 0xca, 0x31, 0x0d, 0xdc, 0x1f, 0x89, 0x40, 0x29,\n\t0x28, 0xd8, 0x01, 0xb0, 0x85, 0x19, 0x3f, 0x0c, 0xb0, 0xc7, 0xa2, 0x12, 0x1d, 0x97, 0x94, 0x72,\n\t0x72, 0xa8, 0x77, 0xc7, 0x53, 0x84, 0x40, 0x0c, 0xf2, 0xee, 0x8e, 0xb0, 0xa1, 0x94, 0x0c, 0xf0,\n\t0x36, 0xc8, 0x07, 0x04, 0x33, 0xea, 0x95, 0x26, 0x65, 0xfb, 0xfd, 0x3b, 0x40, 0xd2, 0x8a, 0x62,\n\t0x2f, 0xbc, 0x03, 0xa6, 0x5c, 0xc2, 0x18, 0xb6, 0x49, 0x29, 0x2f, 0x03, 0x8b, 0x71, 0xe0, 0xd4,\n\t0x5e, 0x64, 0x46, 0x3d, 0x7f, 0xf5, 0xbb, 0x02, 0x60, 0x72, 0xee, 0xbb, 0x0e, 0xe3, 0xf0, 0xdd,\n\t0x88, 0xd2, 0xb5, 0xf1, 0xfa, 0x12, 0x68, 0xa9, 0xf3, 0xff, 0xe2, 0x94, 0xd3, 0x3d, 0xcb, 0x25,\n\t0x95, 0x1f, 0x81, 0x49, 0x87, 0x13, 0x57, 0xdc, 0x62, 0x76, 0xa5, 0x50, 0x5b, 0xbb, 0x96, 0x0e,\n\t0x8d, 0x7f, 0xe3, 0x0c, 0x93, 0x3b, 0x82, 0x0b, 0x45, 0x94, 0xd5, 0xf9, 0xe1, 0x7e, 0xc4, 0x03,\n\t0xa8, 0xfe, 0x9c, 0x00, 0xf3, 0x69, 0x32, 0x86, 0x9f, 0x40, 0x91, 0x25, 0xec, 0xac, 0xa4, 0xc8,\n\t0xa2, 0xc6, 0x7e, 0x1c, 0x29, 0xab, 0x6f, 0xb0, 0xaa, 0x92, 0x76, 0x86, 0x86, 0x93, 0xc1, 0x7d,\n\t0xb0, 0x60, 0x52, 0xd7, 0xa5, 0xde, 0x76, 0xea, 0xce, 0xbb, 0x11, 0x76, 0x2b, 0x0b, 0x9b, 0x69,\n\t0x01, 0x28, 0x1d, 0x07, 0x03, 0x00, 0xcc, 0xde, 0x13, 0x88, 0x96, 0x5e, 0xa1, 0xf6, 0xf4, 0x5a,\n\t0x03, 0xee, 0xbf, 0xa4, 0xc1, 0xce, 0xea, 0x9b, 0x18, 0xba, 0x94, 0xc5, 0x78, 0x79, 0x72, 0xae,\n\t0x66, 0x4e, 0xcf, 0xd5, 0xcc, 0xd9, 0xb9, 0x9a, 0xf9, 0x1c, 0xaa, 0xca, 0x49, 0xa8, 0x2a, 0xa7,\n\t0xa1, 0xaa, 0x9c, 0x85, 0xaa, 0xf2, 0x2b, 0x54, 0x95, 0x2f, 0xbf, 0xd5, 0xcc, 0xd1, 0xf2, 0x58,\n\t0x1f, 0xd5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xd0, 0x65, 0xbc, 0x95, 0x07, 0x00, 0x00,\n}\n\nfunc (m *ServerStorageVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServerStorageVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServerStorageVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DecodableVersions) > 0 {\n\t\tfor iNdEx := len(m.DecodableVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DecodableVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DecodableVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DecodableVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.EncodingVersion)\n\tcopy(dAtA[i:], m.EncodingVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EncodingVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIServerID)\n\tcopy(dAtA[i:], m.APIServerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIServerID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.CommonEncodingVersion != nil {\n\t\ti -= len(*m.CommonEncodingVersion)\n\t\tcopy(dAtA[i:], *m.CommonEncodingVersion)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CommonEncodingVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.StorageVersions) > 0 {\n\t\tfor iNdEx := len(m.StorageVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.StorageVersions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ServerStorageVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIServerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EncodingVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.DecodableVersions) > 0 {\n\t\tfor _, s := range m.DecodableVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageVersionSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *StorageVersionStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.StorageVersions) > 0 {\n\t\tfor _, e := range m.StorageVersions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.CommonEncodingVersion != nil {\n\t\tl = len(*m.CommonEncodingVersion)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ServerStorageVersion) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServerStorageVersion{`,\n\t\t`APIServerID:` + fmt.Sprintf(\"%v\", this.APIServerID) + `,`,\n\t\t`EncodingVersion:` + fmt.Sprintf(\"%v\", this.EncodingVersion) + `,`,\n\t\t`DecodableVersions:` + fmt.Sprintf(\"%v\", this.DecodableVersions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersion) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersion{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StorageVersionSpec\", \"StorageVersionSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StorageVersionStatus\", \"StorageVersionStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageVersion{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageVersion\", \"StorageVersion\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageVersionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionSpec{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForStorageVersions := \"[]ServerStorageVersion{\"\n\tfor _, f := range this.StorageVersions {\n\t\trepeatedStringForStorageVersions += strings.Replace(strings.Replace(f.String(), \"ServerStorageVersion\", \"ServerStorageVersion\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForStorageVersions += \"}\"\n\trepeatedStringForConditions := \"[]StorageVersionCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StorageVersionCondition\", \"StorageVersionCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StorageVersionStatus{`,\n\t\t`StorageVersions:` + repeatedStringForStorageVersions + `,`,\n\t\t`CommonEncodingVersion:` + valueToStringGenerated(this.CommonEncodingVersion) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ServerStorageVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServerStorageVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServerStorageVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIServerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIServerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EncodingVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EncodingVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DecodableVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DecodableVersions = append(m.DecodableVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StorageVersionConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageVersion{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageVersions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageVersions = append(m.StorageVersions, ServerStorageVersion{})\n\t\t\tif err := m.StorageVersions[len(m.StorageVersions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CommonEncodingVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.CommonEncodingVersion = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StorageVersionCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apiserverinternal.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apiserverinternal/v1alpha1\";\n\n// An API server instance reports the version it can decode and the version it\n// encodes objects to when persisting objects in the backend.\nmessage ServerStorageVersion {\n  // The ID of the reporting API server.\n  optional string apiServerID = 1;\n\n  // The API server encodes the object to this version when persisting it in\n  // the backend (e.g., etcd).\n  optional string encodingVersion = 2;\n\n  // The API server can decode objects encoded in these versions.\n  // The encodingVersion must be included in the decodableVersions.\n  // +listType=set\n  repeated string decodableVersions = 3;\n}\n\n// Storage version of a specific resource.\nmessage StorageVersion {\n  // The name is <group>.<resource>.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec is an empty spec. It is here to comply with Kubernetes API style.\n  optional StorageVersionSpec spec = 2;\n\n  // API server instances report the version they can decode and the version they\n  // encode objects to when persisting objects in the backend.\n  optional StorageVersionStatus status = 3;\n}\n\n// Describes the state of the storageVersion at a certain point.\nmessage StorageVersionCondition {\n  // Type of the condition.\n  // +required\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  // +required\n  optional string status = 2;\n\n  // If set, this represents the .metadata.generation that the condition was set based upon.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Last time the condition transitioned from one status to another.\n  // +required\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // The reason for the condition's last transition.\n  // +required\n  optional string reason = 5;\n\n  // A human readable message indicating details about the transition.\n  // +required\n  optional string message = 6;\n}\n\n// A list of StorageVersions.\nmessage StorageVersionList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items holds a list of StorageVersion\n  repeated StorageVersion items = 2;\n}\n\n// StorageVersionSpec is an empty spec.\nmessage StorageVersionSpec {\n}\n\n// API server instances report the versions they can decode and the version they\n// encode objects to when persisting objects in the backend.\nmessage StorageVersionStatus {\n  // The reported versions per API server instance.\n  // +optional\n  // +listType=map\n  // +listMapKey=apiServerID\n  repeated ServerStorageVersion storageVersions = 1;\n\n  // If all API server instances agree on the same encoding storage version,\n  // then this field is set to that version. Otherwise this field is left empty.\n  // API servers should finish updating its storageVersionStatus entry before\n  // serving write operations, so that this field will be in sync with the reality.\n  // +optional\n  optional string commonEncodingVersion = 2;\n\n  // The latest available observations of the storageVersion's state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated StorageVersionCondition conditions = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"internal.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageVersion{},\n\t\t&StorageVersionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Storage version of a specific resource.\ntype StorageVersion struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// The name is <group>.<resource>.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec is an empty spec. It is here to comply with Kubernetes API style.\n\tSpec StorageVersionSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// API server instances report the version they can decode and the version they\n\t// encode objects to when persisting objects in the backend.\n\tStatus StorageVersionStatus `json:\"status\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// StorageVersionSpec is an empty spec.\ntype StorageVersionSpec struct{}\n\n// API server instances report the versions they can decode and the version they\n// encode objects to when persisting objects in the backend.\ntype StorageVersionStatus struct {\n\t// The reported versions per API server instance.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=apiServerID\n\tStorageVersions []ServerStorageVersion `json:\"storageVersions,omitempty\" protobuf:\"bytes,1,opt,name=storageVersions\"`\n\t// If all API server instances agree on the same encoding storage version,\n\t// then this field is set to that version. Otherwise this field is left empty.\n\t// API servers should finish updating its storageVersionStatus entry before\n\t// serving write operations, so that this field will be in sync with the reality.\n\t// +optional\n\tCommonEncodingVersion *string `json:\"commonEncodingVersion,omitempty\" protobuf:\"bytes,2,opt,name=commonEncodingVersion\"`\n\n\t// The latest available observations of the storageVersion's state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []StorageVersionCondition `json:\"conditions,omitempty\" protobuf:\"bytes,3,opt,name=conditions\"`\n}\n\n// An API server instance reports the version it can decode and the version it\n// encodes objects to when persisting objects in the backend.\ntype ServerStorageVersion struct {\n\t// The ID of the reporting API server.\n\tAPIServerID string `json:\"apiServerID,omitempty\" protobuf:\"bytes,1,opt,name=apiServerID\"`\n\n\t// The API server encodes the object to this version when persisting it in\n\t// the backend (e.g., etcd).\n\tEncodingVersion string `json:\"encodingVersion,omitempty\" protobuf:\"bytes,2,opt,name=encodingVersion\"`\n\n\t// The API server can decode objects encoded in these versions.\n\t// The encodingVersion must be included in the decodableVersions.\n\t// +listType=set\n\tDecodableVersions []string `json:\"decodableVersions,omitempty\" protobuf:\"bytes,3,opt,name=decodableVersions\"`\n}\n\ntype StorageVersionConditionType string\n\nconst (\n\t// Indicates that encoding storage versions reported by all servers are equal.\n\tAllEncodingVersionsEqual StorageVersionConditionType = \"AllEncodingVersionsEqual\"\n)\n\ntype ConditionStatus string\n\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// Describes the state of the storageVersion at a certain point.\ntype StorageVersionCondition struct {\n\t// Type of the condition.\n\t// +required\n\tType StorageVersionConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\t// Status of the condition, one of True, False, Unknown.\n\t// +required\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status\"`\n\t// If set, this represents the .metadata.generation that the condition was set based upon.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +required\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +required\n\tReason string `json:\"reason\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +required\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// A list of StorageVersions.\ntype StorageVersionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Items holds a list of StorageVersion\n\tItems []StorageVersion `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ServerStorageVersion = map[string]string{\n\t\"\":                  \"An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.\",\n\t\"apiServerID\":       \"The ID of the reporting API server.\",\n\t\"encodingVersion\":   \"The API server encodes the object to this version when persisting it in the backend (e.g., etcd).\",\n\t\"decodableVersions\": \"The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.\",\n}\n\nfunc (ServerStorageVersion) SwaggerDoc() map[string]string {\n\treturn map_ServerStorageVersion\n}\n\nvar map_StorageVersion = map[string]string{\n\t\"\":         \"Storage version of a specific resource.\",\n\t\"metadata\": \"The name is <group>.<resource>.\",\n\t\"spec\":     \"Spec is an empty spec. It is here to comply with Kubernetes API style.\",\n\t\"status\":   \"API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend.\",\n}\n\nfunc (StorageVersion) SwaggerDoc() map[string]string {\n\treturn map_StorageVersion\n}\n\nvar map_StorageVersionCondition = map[string]string{\n\t\"\":                   \"Describes the state of the storageVersion at a certain point.\",\n\t\"type\":               \"Type of the condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"observedGeneration\": \"If set, this represents the .metadata.generation that the condition was set based upon.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StorageVersionCondition) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionCondition\n}\n\nvar map_StorageVersionList = map[string]string{\n\t\"\":         \"A list of StorageVersions.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items holds a list of StorageVersion\",\n}\n\nfunc (StorageVersionList) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionList\n}\n\nvar map_StorageVersionSpec = map[string]string{\n\t\"\": \"StorageVersionSpec is an empty spec.\",\n}\n\nfunc (StorageVersionSpec) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionSpec\n}\n\nvar map_StorageVersionStatus = map[string]string{\n\t\"\":                      \"API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.\",\n\t\"storageVersions\":       \"The reported versions per API server instance.\",\n\t\"commonEncodingVersion\": \"If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.\",\n\t\"conditions\":            \"The latest available observations of the storageVersion's state.\",\n}\n\nfunc (StorageVersionStatus) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServerStorageVersion) DeepCopyInto(out *ServerStorageVersion) {\n\t*out = *in\n\tif in.DecodableVersions != nil {\n\t\tin, out := &in.DecodableVersions, &out.DecodableVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStorageVersion.\nfunc (in *ServerStorageVersion) DeepCopy() *ServerStorageVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServerStorageVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersion) DeepCopyInto(out *StorageVersion) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersion.\nfunc (in *StorageVersion) DeepCopy() *StorageVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersion) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionCondition) DeepCopyInto(out *StorageVersionCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionCondition.\nfunc (in *StorageVersionCondition) DeepCopy() *StorageVersionCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionList) DeepCopyInto(out *StorageVersionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageVersion, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionList.\nfunc (in *StorageVersionList) DeepCopy() *StorageVersionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionSpec) DeepCopyInto(out *StorageVersionSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionSpec.\nfunc (in *StorageVersionSpec) DeepCopy() *StorageVersionSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionStatus) DeepCopyInto(out *StorageVersionStatus) {\n\t*out = *in\n\tif in.StorageVersions != nil {\n\t\tin, out := &in.StorageVersions, &out.StorageVersions\n\t\t*out = make([]ServerStorageVersion, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CommonEncodingVersion != nil {\n\t\tin, out := &in.CommonEncodingVersion, &out.CommonEncodingVersion\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StorageVersionCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionStatus.\nfunc (in *StorageVersionStatus) DeepCopy() *StorageVersionStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\npackage v1 // import \"k8s.io/api/apps/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{2}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{3}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{4}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{5}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{6}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{7}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{8}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{9}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{10}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{11}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{12}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{13}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{14}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{15}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{16}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{17}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{18}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{19}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{20}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{21}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{22}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{23}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{24}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{25}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{26}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{27}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{28}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e1014cab6f31e43b, []int{29}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1.ControllerRevisionList\")\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.apps.v1.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.apps.v1.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.apps.v1.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.apps.v1.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.apps.v1.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1.DeploymentList\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1.DeploymentStrategy\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.apps.v1.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.apps.v1.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.apps.v1.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.apps.v1.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.apps.v1.ReplicaSetStatus\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.apps.v1.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/apps/v1/generated.proto\", fileDescriptor_e1014cab6f31e43b)\n}\n\nvar fileDescriptor_e1014cab6f31e43b = []byte{\n\t// 2211 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xd7, 0xf2, 0x43, 0xa2, 0x86, 0x96, 0x64, 0x8f, 0x54, 0x89, 0xb1, 0x1b, 0xd2, 0xdd, 0xb8,\n\t0xb6, 0x12, 0xc7, 0x64, 0xed, 0x38, 0x41, 0x60, 0x17, 0x09, 0x44, 0x2a, 0x4d, 0xd3, 0xe8, 0xab,\n\t0x43, 0xcb, 0x01, 0xdc, 0xb4, 0xe8, 0x88, 0x1c, 0x53, 0x1b, 0xed, 0x17, 0x76, 0x87, 0x8a, 0x89,\n\t0x5e, 0x8a, 0x02, 0xbd, 0xf5, 0xd0, 0xbf, 0xa1, 0xff, 0x40, 0x51, 0x14, 0xcd, 0x2d, 0x08, 0x82,\n\t0x5e, 0x7c, 0x29, 0x10, 0xf4, 0xd2, 0x9c, 0x88, 0x9a, 0x39, 0x15, 0x45, 0x6f, 0xed, 0xc5, 0x97,\n\t0x16, 0x33, 0x3b, 0xfb, 0x3d, 0x2b, 0x52, 0x72, 0xac, 0x34, 0x81, 0x6f, 0xdc, 0x99, 0xdf, 0xfb,\n\t0xed, 0x9b, 0x99, 0xf7, 0xe6, 0xfd, 0x66, 0x96, 0xe0, 0xf6, 0xc1, 0xeb, 0x6e, 0x5d, 0xb3, 0x1a,\n\t0x07, 0xfd, 0x3d, 0xe2, 0x98, 0x84, 0x12, 0xb7, 0x71, 0x48, 0xcc, 0xae, 0xe5, 0x34, 0x44, 0x07,\n\t0xb6, 0xb5, 0x06, 0xb6, 0x6d, 0xb7, 0x71, 0x78, 0xbd, 0xd1, 0x23, 0x26, 0x71, 0x30, 0x25, 0xdd,\n\t0xba, 0xed, 0x58, 0xd4, 0x82, 0xd0, 0xc3, 0xd4, 0xb1, 0xad, 0xd5, 0x19, 0xa6, 0x7e, 0x78, 0xfd,\n\t0xfc, 0xb5, 0x9e, 0x46, 0xf7, 0xfb, 0x7b, 0xf5, 0x8e, 0x65, 0x34, 0x7a, 0x56, 0xcf, 0x6a, 0x70,\n\t0xe8, 0x5e, 0xff, 0x3e, 0x7f, 0xe2, 0x0f, 0xfc, 0x97, 0x47, 0x71, 0x5e, 0x8d, 0xbc, 0xa6, 0x63,\n\t0x39, 0x44, 0xf2, 0x9a, 0xf3, 0x37, 0x43, 0x8c, 0x81, 0x3b, 0xfb, 0x9a, 0x49, 0x9c, 0x41, 0xc3,\n\t0x3e, 0xe8, 0xb1, 0x06, 0xb7, 0x61, 0x10, 0x8a, 0x65, 0x56, 0x8d, 0x2c, 0x2b, 0xa7, 0x6f, 0x52,\n\t0xcd, 0x20, 0x29, 0x83, 0xd7, 0xc6, 0x19, 0xb8, 0x9d, 0x7d, 0x62, 0xe0, 0x94, 0xdd, 0x2b, 0x59,\n\t0x76, 0x7d, 0xaa, 0xe9, 0x0d, 0xcd, 0xa4, 0x2e, 0x75, 0x92, 0x46, 0xea, 0x7f, 0x14, 0x00, 0x5b,\n\t0x96, 0x49, 0x1d, 0x4b, 0xd7, 0x89, 0x83, 0xc8, 0xa1, 0xe6, 0x6a, 0x96, 0x09, 0x7f, 0x0e, 0x4a,\n\t0x6c, 0x3c, 0x5d, 0x4c, 0x71, 0x45, 0xb9, 0xa8, 0xac, 0x96, 0x6f, 0x7c, 0xaf, 0x1e, 0x4e, 0x72,\n\t0x40, 0x5f, 0xb7, 0x0f, 0x7a, 0xac, 0xc1, 0xad, 0x33, 0x74, 0xfd, 0xf0, 0x7a, 0x7d, 0x7b, 0xef,\n\t0x03, 0xd2, 0xa1, 0x9b, 0x84, 0xe2, 0x26, 0x7c, 0x38, 0xac, 0x4d, 0x8d, 0x86, 0x35, 0x10, 0xb6,\n\t0xa1, 0x80, 0x15, 0x6e, 0x83, 0x02, 0x67, 0xcf, 0x71, 0xf6, 0x6b, 0x99, 0xec, 0x62, 0xd0, 0x75,\n\t0x84, 0x3f, 0x7c, 0xeb, 0x01, 0x25, 0x26, 0x73, 0xaf, 0x79, 0x46, 0x50, 0x17, 0xd6, 0x31, 0xc5,\n\t0x88, 0x13, 0xc1, 0x97, 0x41, 0xc9, 0x11, 0xee, 0x57, 0xf2, 0x17, 0x95, 0xd5, 0x7c, 0xf3, 0xac,\n\t0x40, 0x95, 0xfc, 0x61, 0xa1, 0x00, 0xa1, 0xfe, 0x59, 0x01, 0xcb, 0xe9, 0x71, 0x6f, 0x68, 0x2e,\n\t0x85, 0xef, 0xa7, 0xc6, 0x5e, 0x9f, 0x6c, 0xec, 0xcc, 0x9a, 0x8f, 0x3c, 0x78, 0xb1, 0xdf, 0x12,\n\t0x19, 0xf7, 0xbb, 0xa0, 0xa8, 0x51, 0x62, 0xb8, 0x95, 0xdc, 0xc5, 0xfc, 0x6a, 0xf9, 0xc6, 0xe5,\n\t0x7a, 0x3a, 0x76, 0xeb, 0x69, 0xc7, 0x9a, 0x73, 0x82, 0xb2, 0xf8, 0x0e, 0x33, 0x46, 0x1e, 0x87,\n\t0xfa, 0x5f, 0x05, 0xcc, 0xae, 0x63, 0x62, 0x58, 0x66, 0x9b, 0xd0, 0x53, 0x58, 0xb4, 0x16, 0x28,\n\t0xb8, 0x36, 0xe9, 0x88, 0x45, 0xfb, 0x8e, 0xcc, 0xf7, 0xc0, 0x9d, 0xb6, 0x4d, 0x3a, 0xe1, 0x42,\n\t0xb1, 0x27, 0xc4, 0x8d, 0xe1, 0xbb, 0x60, 0xda, 0xa5, 0x98, 0xf6, 0x5d, 0xbe, 0x4c, 0xe5, 0x1b,\n\t0x2f, 0x1c, 0x4d, 0xc3, 0xa1, 0xcd, 0x79, 0x41, 0x34, 0xed, 0x3d, 0x23, 0x41, 0xa1, 0xfe, 0x23,\n\t0x07, 0x60, 0x80, 0x6d, 0x59, 0x66, 0x57, 0xa3, 0x2c, 0x7e, 0x6f, 0x81, 0x02, 0x1d, 0xd8, 0x84,\n\t0x4f, 0xc3, 0x6c, 0xf3, 0xb2, 0xef, 0xc5, 0x9d, 0x81, 0x4d, 0x1e, 0x0f, 0x6b, 0xcb, 0x69, 0x0b,\n\t0xd6, 0x83, 0xb8, 0x0d, 0xdc, 0x08, 0xfc, 0xcb, 0x71, 0xeb, 0x9b, 0xf1, 0x57, 0x3f, 0x1e, 0xd6,\n\t0x24, 0x9b, 0x45, 0x3d, 0x60, 0x8a, 0x3b, 0x08, 0x0f, 0x01, 0xd4, 0xb1, 0x4b, 0xef, 0x38, 0xd8,\n\t0x74, 0xbd, 0x37, 0x69, 0x06, 0x11, 0x23, 0x7f, 0x69, 0xb2, 0xe5, 0x61, 0x16, 0xcd, 0xf3, 0xc2,\n\t0x0b, 0xb8, 0x91, 0x62, 0x43, 0x92, 0x37, 0xc0, 0xcb, 0x60, 0xda, 0x21, 0xd8, 0xb5, 0xcc, 0x4a,\n\t0x81, 0x8f, 0x22, 0x98, 0x40, 0xc4, 0x5b, 0x91, 0xe8, 0x85, 0x2f, 0x82, 0x19, 0x83, 0xb8, 0x2e,\n\t0xee, 0x91, 0x4a, 0x91, 0x03, 0x17, 0x04, 0x70, 0x66, 0xd3, 0x6b, 0x46, 0x7e, 0xbf, 0xfa, 0x07,\n\t0x05, 0xcc, 0x05, 0x33, 0x77, 0x0a, 0xa9, 0xd2, 0x8c, 0xa7, 0xca, 0xf3, 0x47, 0xc6, 0x49, 0x46,\n\t0x86, 0x7c, 0x92, 0x8f, 0xf8, 0xcc, 0x82, 0x10, 0xfe, 0x14, 0x94, 0x5c, 0xa2, 0x93, 0x0e, 0xb5,\n\t0x1c, 0xe1, 0xf3, 0x2b, 0x13, 0xfa, 0x8c, 0xf7, 0x88, 0xde, 0x16, 0xa6, 0xcd, 0x33, 0xcc, 0x69,\n\t0xff, 0x09, 0x05, 0x94, 0xf0, 0xc7, 0xa0, 0x44, 0x89, 0x61, 0xeb, 0x98, 0x12, 0x91, 0x26, 0xb1,\n\t0xf8, 0x66, 0xe1, 0xc2, 0xc8, 0x76, 0xac, 0xee, 0x1d, 0x01, 0xe3, 0x89, 0x12, 0xcc, 0x83, 0xdf,\n\t0x8a, 0x02, 0x1a, 0x78, 0x00, 0xe6, 0xfb, 0x76, 0x97, 0x21, 0x29, 0xdb, 0xba, 0x7b, 0x03, 0x11,\n\t0x3e, 0x57, 0x8f, 0x9c, 0x90, 0xdd, 0x98, 0x49, 0x73, 0x59, 0xbc, 0x60, 0x3e, 0xde, 0x8e, 0x12,\n\t0xd4, 0x70, 0x0d, 0x2c, 0x18, 0x9a, 0x89, 0x08, 0xee, 0x0e, 0xda, 0xa4, 0x63, 0x99, 0x5d, 0x97,\n\t0x07, 0x50, 0xb1, 0xb9, 0x22, 0x08, 0x16, 0x36, 0xe3, 0xdd, 0x28, 0x89, 0x87, 0x1b, 0x60, 0xc9,\n\t0xdf, 0x67, 0x7f, 0xa8, 0xb9, 0xd4, 0x72, 0x06, 0x1b, 0x9a, 0xa1, 0xd1, 0xca, 0x34, 0xe7, 0xa9,\n\t0x8c, 0x86, 0xb5, 0x25, 0x24, 0xe9, 0x47, 0x52, 0x2b, 0xf5, 0x37, 0xd3, 0x60, 0x21, 0xb1, 0x1b,\n\t0xc0, 0xbb, 0x60, 0xb9, 0xd3, 0x77, 0x1c, 0x62, 0xd2, 0xad, 0xbe, 0xb1, 0x47, 0x9c, 0x76, 0x67,\n\t0x9f, 0x74, 0xfb, 0x3a, 0xe9, 0xf2, 0x15, 0x2d, 0x36, 0xab, 0xc2, 0xd7, 0xe5, 0x96, 0x14, 0x85,\n\t0x32, 0xac, 0xe1, 0x8f, 0x00, 0x34, 0x79, 0xd3, 0xa6, 0xe6, 0xba, 0x01, 0x67, 0x8e, 0x73, 0x06,\n\t0x09, 0xb8, 0x95, 0x42, 0x20, 0x89, 0x15, 0xf3, 0xb1, 0x4b, 0x5c, 0xcd, 0x21, 0xdd, 0xa4, 0x8f,\n\t0xf9, 0xb8, 0x8f, 0xeb, 0x52, 0x14, 0xca, 0xb0, 0x86, 0xaf, 0x82, 0xb2, 0xf7, 0x36, 0x3e, 0xe7,\n\t0x62, 0x71, 0x16, 0x05, 0x59, 0x79, 0x2b, 0xec, 0x42, 0x51, 0x1c, 0x1b, 0x9a, 0xb5, 0xe7, 0x12,\n\t0xe7, 0x90, 0x74, 0xdf, 0xf6, 0x34, 0x00, 0x2b, 0x94, 0x45, 0x5e, 0x28, 0x83, 0xa1, 0x6d, 0xa7,\n\t0x10, 0x48, 0x62, 0xc5, 0x86, 0xe6, 0x45, 0x4d, 0x6a, 0x68, 0xd3, 0xf1, 0xa1, 0xed, 0x4a, 0x51,\n\t0x28, 0xc3, 0x9a, 0xc5, 0x9e, 0xe7, 0xf2, 0xda, 0x21, 0xd6, 0x74, 0xbc, 0xa7, 0x93, 0xca, 0x4c,\n\t0x3c, 0xf6, 0xb6, 0xe2, 0xdd, 0x28, 0x89, 0x87, 0x6f, 0x83, 0x73, 0x5e, 0xd3, 0xae, 0x89, 0x03,\n\t0x92, 0x12, 0x27, 0x79, 0x4e, 0x90, 0x9c, 0xdb, 0x4a, 0x02, 0x50, 0xda, 0x06, 0xde, 0x02, 0xf3,\n\t0x1d, 0x4b, 0xd7, 0x79, 0x3c, 0xb6, 0xac, 0xbe, 0x49, 0x2b, 0xb3, 0x9c, 0x05, 0xb2, 0x1c, 0x6a,\n\t0xc5, 0x7a, 0x50, 0x02, 0x09, 0xef, 0x01, 0xd0, 0xf1, 0xcb, 0x81, 0x5b, 0x01, 0xd9, 0x85, 0x3e,\n\t0x5d, 0x87, 0xc2, 0x02, 0x1c, 0x34, 0xb9, 0x28, 0xc2, 0xa6, 0x7e, 0xa2, 0x80, 0x95, 0x8c, 0x1c,\n\t0x87, 0x6f, 0xc6, 0xaa, 0xde, 0xd5, 0x44, 0xd5, 0xbb, 0x90, 0x61, 0x16, 0x29, 0x7d, 0x1d, 0x30,\n\t0xc7, 0x74, 0x87, 0x66, 0xf6, 0x3c, 0x88, 0xd8, 0xc1, 0x5e, 0x92, 0xf9, 0x8e, 0xa2, 0xc0, 0x70,\n\t0x1b, 0x3e, 0x37, 0x1a, 0xd6, 0xe6, 0x62, 0x7d, 0x28, 0xce, 0xa9, 0xfe, 0x2a, 0x07, 0xc0, 0x3a,\n\t0xb1, 0x75, 0x6b, 0x60, 0x10, 0xf3, 0x34, 0x54, 0xcb, 0x7a, 0x4c, 0xb5, 0xa8, 0xd2, 0x85, 0x08,\n\t0xfc, 0xc9, 0x94, 0x2d, 0x1b, 0x09, 0xd9, 0x72, 0x69, 0x0c, 0xcf, 0xd1, 0xba, 0xe5, 0x6f, 0x79,\n\t0xb0, 0x18, 0x82, 0x43, 0xe1, 0x72, 0x3b, 0xb6, 0x84, 0x57, 0x12, 0x4b, 0xb8, 0x22, 0x31, 0x79,\n\t0x6a, 0xca, 0xe5, 0x03, 0x30, 0xcf, 0x74, 0x85, 0xb7, 0x6a, 0x5c, 0xb5, 0x4c, 0x1f, 0x5b, 0xb5,\n\t0x04, 0x55, 0x67, 0x23, 0xc6, 0x84, 0x12, 0xcc, 0x19, 0x2a, 0x69, 0xe6, 0xeb, 0xa8, 0x92, 0xfe,\n\t0xa8, 0x80, 0xf9, 0x70, 0x99, 0x4e, 0x41, 0x26, 0xb5, 0xe2, 0x32, 0xa9, 0x7a, 0x74, 0x5c, 0x66,\n\t0xe8, 0xa4, 0xbf, 0x16, 0xa2, 0x5e, 0x73, 0xa1, 0xb4, 0xca, 0x0e, 0x54, 0xb6, 0xae, 0x75, 0xb0,\n\t0x2b, 0xca, 0xea, 0x19, 0xef, 0x30, 0xe5, 0xb5, 0xa1, 0xa0, 0x37, 0x26, 0xa9, 0x72, 0x4f, 0x57,\n\t0x52, 0xe5, 0xbf, 0x1c, 0x49, 0x75, 0x07, 0x94, 0x5c, 0x5f, 0x4c, 0x15, 0x38, 0xe5, 0xe5, 0x71,\n\t0xe9, 0x2c, 0x74, 0x54, 0xc0, 0x1a, 0x28, 0xa8, 0x80, 0x49, 0xa6, 0x9d, 0x8a, 0x5f, 0xa5, 0x76,\n\t0x62, 0xe1, 0x6d, 0xe3, 0xbe, 0x4b, 0xba, 0x3c, 0x95, 0x4a, 0x61, 0x78, 0xef, 0xf0, 0x56, 0x24,\n\t0x7a, 0xe1, 0x2e, 0x58, 0xb1, 0x1d, 0xab, 0xe7, 0x10, 0xd7, 0x5d, 0x27, 0xb8, 0xab, 0x6b, 0x26,\n\t0xf1, 0x07, 0xe0, 0x55, 0xbd, 0x0b, 0xa3, 0x61, 0x6d, 0x65, 0x47, 0x0e, 0x41, 0x59, 0xb6, 0xea,\n\t0xc7, 0x05, 0x70, 0x36, 0xb9, 0x23, 0x66, 0x08, 0x11, 0xe5, 0x44, 0x42, 0xe4, 0xe5, 0x48, 0x88,\n\t0x7a, 0x2a, 0x2d, 0x72, 0xe6, 0x4f, 0x85, 0xe9, 0x1a, 0x58, 0x10, 0xc2, 0xc3, 0xef, 0x14, 0x52,\n\t0x2c, 0x58, 0x9e, 0xdd, 0x78, 0x37, 0x4a, 0xe2, 0xe1, 0x6d, 0x30, 0xe7, 0x70, 0x6d, 0xe5, 0x13,\n\t0x78, 0xfa, 0xe4, 0x5b, 0x82, 0x60, 0x0e, 0x45, 0x3b, 0x51, 0x1c, 0xcb, 0xb4, 0x49, 0x28, 0x39,\n\t0x7c, 0x82, 0x42, 0x5c, 0x9b, 0xac, 0x25, 0x01, 0x28, 0x6d, 0x03, 0x37, 0xc1, 0x62, 0xdf, 0x4c,\n\t0x53, 0x79, 0xb1, 0x76, 0x41, 0x50, 0x2d, 0xee, 0xa6, 0x21, 0x48, 0x66, 0x07, 0x7f, 0x12, 0x93,\n\t0x2b, 0xd3, 0x7c, 0x17, 0xb9, 0x72, 0x74, 0x3a, 0x4c, 0xac, 0x57, 0x24, 0x3a, 0xaa, 0x34, 0xa9,\n\t0x8e, 0x52, 0x3f, 0x52, 0x00, 0x4c, 0xa7, 0xe0, 0xd8, 0xc3, 0x7d, 0xca, 0x22, 0x52, 0x22, 0xbb,\n\t0x72, 0x85, 0x73, 0x75, 0xbc, 0xc2, 0x09, 0x77, 0xd0, 0xc9, 0x24, 0x8e, 0x98, 0xde, 0xd3, 0xb9,\n\t0x98, 0x99, 0x40, 0xe2, 0x84, 0xfe, 0x3c, 0x99, 0xc4, 0x89, 0xf0, 0x1c, 0x2d, 0x71, 0xfe, 0x99,\n\t0x03, 0x8b, 0x21, 0x78, 0x62, 0x89, 0x23, 0x31, 0x79, 0x76, 0x39, 0x33, 0x99, 0xec, 0x08, 0xa7,\n\t0xee, 0xff, 0x44, 0x76, 0x84, 0x0e, 0x65, 0xc8, 0x8e, 0xdf, 0xe7, 0xa2, 0x5e, 0x1f, 0x53, 0x76,\n\t0x7c, 0x09, 0x57, 0x15, 0x5f, 0x3b, 0xe5, 0xa2, 0x7e, 0x9a, 0x07, 0x67, 0x93, 0x29, 0x18, 0xab,\n\t0x83, 0xca, 0xd8, 0x3a, 0xb8, 0x03, 0x96, 0xee, 0xf7, 0x75, 0x7d, 0xc0, 0xc7, 0x10, 0x29, 0x86,\n\t0x5e, 0x05, 0xfd, 0xb6, 0xb0, 0x5c, 0xfa, 0x81, 0x04, 0x83, 0xa4, 0x96, 0xe9, 0xb2, 0x58, 0x78,\n\t0xd2, 0xb2, 0x58, 0x3c, 0x41, 0x59, 0x94, 0x2b, 0x8b, 0xfc, 0x89, 0x94, 0xc5, 0xc4, 0x35, 0x51,\n\t0xb2, 0x5d, 0x8d, 0x3d, 0xc3, 0x8f, 0x14, 0xb0, 0x2c, 0x3f, 0x3e, 0x43, 0x1d, 0xcc, 0x1b, 0xf8,\n\t0x41, 0xf4, 0xf2, 0x62, 0x5c, 0xc1, 0xe8, 0x53, 0x4d, 0xaf, 0x7b, 0x5f, 0x77, 0xea, 0xef, 0x98,\n\t0x74, 0xdb, 0x69, 0x53, 0x47, 0x33, 0x7b, 0x5e, 0x81, 0xdd, 0x8c, 0x71, 0xa1, 0x04, 0x37, 0xbc,\n\t0x07, 0x4a, 0x06, 0x7e, 0xd0, 0xee, 0x3b, 0x3d, 0xbf, 0x10, 0x1e, 0xff, 0x3d, 0x3c, 0xf6, 0x37,\n\t0x05, 0x0b, 0x0a, 0xf8, 0xd4, 0x2f, 0x14, 0xb0, 0x92, 0x51, 0x41, 0xbf, 0x41, 0xa3, 0xfc, 0x58,\n\t0x01, 0x17, 0x63, 0xa3, 0x64, 0x19, 0x49, 0xee, 0xf7, 0x75, 0x9e, 0x9c, 0x42, 0xb0, 0x5c, 0x05,\n\t0xb3, 0x36, 0x76, 0xa8, 0x16, 0x28, 0xdd, 0x62, 0x73, 0x6e, 0x34, 0xac, 0xcd, 0xee, 0xf8, 0x8d,\n\t0x28, 0xec, 0x97, 0xcc, 0x4d, 0xee, 0xe9, 0xcd, 0x8d, 0xfa, 0xeb, 0x1c, 0x28, 0x47, 0x5c, 0x3e,\n\t0x05, 0xa9, 0xf2, 0x56, 0x4c, 0xaa, 0x48, 0x3f, 0xfe, 0x44, 0xe7, 0x30, 0x4b, 0xab, 0x6c, 0x26,\n\t0xb4, 0xca, 0x77, 0xc7, 0x11, 0x1d, 0x2d, 0x56, 0xfe, 0x95, 0x03, 0x4b, 0x11, 0x74, 0xa8, 0x56,\n\t0xbe, 0x1f, 0x53, 0x2b, 0xab, 0x09, 0xb5, 0x52, 0x91, 0xd9, 0x3c, 0x93, 0x2b, 0xe3, 0xe5, 0xca,\n\t0x9f, 0x14, 0xb0, 0x10, 0x99, 0xbb, 0x53, 0xd0, 0x2b, 0xeb, 0x71, 0xbd, 0x52, 0x1b, 0x13, 0x2f,\n\t0x19, 0x82, 0xe5, 0x16, 0x58, 0x8c, 0x80, 0xb6, 0x9d, 0xae, 0x66, 0x62, 0xdd, 0x85, 0x2f, 0x80,\n\t0xa2, 0x4b, 0xb1, 0x43, 0xfd, 0xec, 0xf6, 0x6d, 0xdb, 0xac, 0x11, 0x79, 0x7d, 0xea, 0xbf, 0x15,\n\t0xd0, 0x88, 0x18, 0xef, 0x10, 0xc7, 0xd5, 0x5c, 0x4a, 0x4c, 0x7a, 0xd7, 0xd2, 0xfb, 0x06, 0x69,\n\t0xe9, 0x58, 0x33, 0x10, 0x61, 0x0d, 0x9a, 0x65, 0xee, 0x58, 0xba, 0xd6, 0x19, 0x40, 0x0c, 0xca,\n\t0x1f, 0xee, 0x13, 0x73, 0x9d, 0xe8, 0x84, 0x8a, 0xcf, 0x1b, 0xb3, 0xcd, 0x37, 0xfd, 0xdb, 0xfe,\n\t0xf7, 0xc2, 0xae, 0xc7, 0xc3, 0xda, 0xea, 0x24, 0x8c, 0x3c, 0x38, 0xa3, 0x9c, 0xf0, 0x67, 0x00,\n\t0xb0, 0xc7, 0x76, 0x07, 0xfb, 0x1f, 0x3b, 0x66, 0x9b, 0x6f, 0xf8, 0x29, 0xfc, 0x5e, 0xd0, 0x73,\n\t0xac, 0x17, 0x44, 0x18, 0xd5, 0xdf, 0x95, 0x62, 0x4b, 0xfd, 0x8d, 0xbf, 0x5b, 0xfa, 0x05, 0x58,\n\t0x3a, 0x0c, 0x67, 0xc7, 0x07, 0x30, 0x4d, 0xc4, 0xe2, 0xee, 0x45, 0x29, 0xbd, 0x6c, 0x5e, 0x43,\n\t0x25, 0x76, 0x57, 0x42, 0x87, 0xa4, 0x2f, 0x81, 0xaf, 0x82, 0x32, 0xd3, 0x32, 0x5a, 0x87, 0x6c,\n\t0x61, 0xc3, 0x4f, 0xc3, 0xe0, 0xeb, 0x50, 0x3b, 0xec, 0x42, 0x51, 0x1c, 0xdc, 0x07, 0x8b, 0xb6,\n\t0xd5, 0xdd, 0xc4, 0x26, 0xee, 0x11, 0x56, 0xa1, 0xbd, 0xa5, 0xe4, 0xb7, 0x4e, 0xb3, 0xcd, 0xd7,\n\t0xfc, 0x1b, 0x85, 0x9d, 0x34, 0x84, 0x9d, 0xd8, 0x24, 0xcd, 0x3c, 0x08, 0x64, 0x94, 0xd0, 0x48,\n\t0x7d, 0xcc, 0x9c, 0x49, 0xfd, 0x03, 0x44, 0x96, 0x8f, 0x27, 0xfc, 0x9c, 0x99, 0x75, 0x9f, 0x56,\n\t0x3a, 0xd1, 0x7d, 0x9a, 0xe4, 0xc4, 0x31, 0x7b, 0xcc, 0x13, 0xc7, 0xa7, 0x0a, 0xb8, 0x64, 0x4f,\n\t0x90, 0x46, 0x15, 0xc0, 0xa7, 0xa5, 0x35, 0x66, 0x5a, 0x26, 0xc9, 0xc8, 0xe6, 0xea, 0x68, 0x58,\n\t0xbb, 0x34, 0x09, 0x12, 0x4d, 0xe4, 0x1a, 0x4b, 0x1a, 0x4b, 0xec, 0x7c, 0x95, 0x32, 0x77, 0xf3,\n\t0xca, 0x18, 0x37, 0xfd, 0x8d, 0xd2, 0xcb, 0x43, 0xff, 0x09, 0x05, 0x34, 0xea, 0x47, 0x45, 0x70,\n\t0x2e, 0x55, 0xad, 0xbf, 0xc2, 0xbb, 0xc2, 0xd4, 0x89, 0x26, 0x7f, 0x8c, 0x13, 0xcd, 0x1a, 0x58,\n\t0x10, 0x1f, 0x98, 0x13, 0x07, 0xa2, 0x20, 0x4c, 0x5a, 0xf1, 0x6e, 0x94, 0xc4, 0xcb, 0xee, 0x2a,\n\t0x8b, 0xc7, 0xbc, 0xab, 0x8c, 0x7a, 0x21, 0xfe, 0x17, 0xe5, 0xe5, 0x73, 0xda, 0x0b, 0xf1, 0xf7,\n\t0xa8, 0x24, 0x1e, 0xbe, 0xe1, 0x27, 0x6b, 0xc0, 0x30, 0xc3, 0x19, 0x12, 0xd9, 0x17, 0x10, 0x24,\n\t0xd0, 0x4f, 0xf4, 0x11, 0xf5, 0x7d, 0xc9, 0x47, 0xd4, 0xd5, 0x31, 0x61, 0x36, 0xf9, 0xb5, 0xa4,\n\t0xf4, 0xd0, 0x59, 0x3e, 0xfe, 0xa1, 0x53, 0xfd, 0x8b, 0x02, 0x9e, 0xcb, 0xdc, 0xa6, 0xe0, 0x5a,\n\t0x4c, 0x3d, 0x5e, 0x4b, 0xa8, 0xc7, 0xe7, 0x33, 0x0d, 0x23, 0x12, 0xd2, 0x90, 0xdf, 0x58, 0xde,\n\t0x1c, 0x7b, 0x63, 0x29, 0x39, 0x89, 0x8c, 0xbf, 0xba, 0x6c, 0xbe, 0xfe, 0xf0, 0x51, 0x75, 0xea,\n\t0xb3, 0x47, 0xd5, 0xa9, 0xcf, 0x1f, 0x55, 0xa7, 0x7e, 0x39, 0xaa, 0x2a, 0x0f, 0x47, 0x55, 0xe5,\n\t0xb3, 0x51, 0x55, 0xf9, 0x7c, 0x54, 0x55, 0xfe, 0x3e, 0xaa, 0x2a, 0xbf, 0xfd, 0xa2, 0x3a, 0x75,\n\t0x0f, 0xa6, 0xff, 0x95, 0xf9, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xae, 0x39, 0x4c, 0x13, 0xc3,\n\t0x29, 0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1\";\n\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Data is the serialized representation of the state.\n  optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // Revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // numberReady is the number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running with a Ready Condition.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // It must match the pod template's labels.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  // +optional\n  optional int32 partition = 1;\n\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // Standard list's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of stateful sets.\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // WhenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // WhenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent\n  // volume claims created from volumeClaimTemplates. By default, all persistent\n  // volume claims are created as needed and retained until manually deleted. This\n  // policy allows the lifecycle to be altered, for example by deleting persistent\n  // volume claims when their stateful set is deleted, or when their pod is scaled\n  // down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,\n  // which is alpha.  +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested. Using\n  // the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n  // enabled, which is beta.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated StatefulSetCondition conditions = 10;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  // Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  // +optional\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&DaemonSet{},\n\t\t&DaemonSetList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tDeprecatedRollbackTo           = \"deprecated.deployment.rollback.to\"\n\tDeprecatedTemplateGeneration   = \"deprecated.daemonset.template.generation\"\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n)\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\n// +enum\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\t// Default is RollingUpdate.\n\t// +optional\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\t// +optional\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\n// +enum\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\t// +optional\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// RetentionPersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tDeletePersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// WhenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// WhenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent\n\t// volume claims created from volumeClaimTemplates. By default, all persistent\n\t// volume claims are created as needed and retained until manually deleted. This\n\t// policy allows the lifecycle to be altered, for example by deleting persistent\n\t// volume claims when their stateful set is deleted, or when their pod is scaled\n\t// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,\n\t// which is alpha.  +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested. Using\n\t// the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n\t// enabled, which is beta.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of stateful sets.\n\tItems []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// It must match the pod template's labels.\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// +enum\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// +enum\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// numberReady is the number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running with a Ready Condition.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// Revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"Data is the serialized representation of the state.\",\n\t\"revision\": \"Revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n\t\"paused\":                  \"Indicates that the deployment is paused.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":         \"StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the desired identities of pods in this set.\",\n\t\"status\":   \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\":         \"StatefulSetList is a collection of StatefulSets.\",\n\t\"metadata\": \"Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of stateful sets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\". The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.  +optional\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested. Using the ordinals field requires the StatefulSetStartOrdinal feature gate to be enabled, which is beta.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"Represents the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/apps/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{2}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{3}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{4}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentRollback) Reset()      { *m = DeploymentRollback{} }\nfunc (*DeploymentRollback) ProtoMessage() {}\nfunc (*DeploymentRollback) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{5}\n}\nfunc (m *DeploymentRollback) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentRollback) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentRollback) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentRollback.Merge(m, src)\n}\nfunc (m *DeploymentRollback) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentRollback) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentRollback.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentRollback proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{6}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{7}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{8}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *RollbackConfig) Reset()      { *m = RollbackConfig{} }\nfunc (*RollbackConfig) ProtoMessage() {}\nfunc (*RollbackConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{9}\n}\nfunc (m *RollbackConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollbackConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollbackConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollbackConfig.Merge(m, src)\n}\nfunc (m *RollbackConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollbackConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollbackConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollbackConfig proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{10}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{11}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{12}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{13}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{14}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{15}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{16}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{17}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{18}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{19}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{20}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{21}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2a07313e8f66e805, []int{22}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1beta1.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1beta1.ControllerRevisionList\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1beta1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1beta1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1beta1.DeploymentList\")\n\tproto.RegisterType((*DeploymentRollback)(nil), \"k8s.io.api.apps.v1beta1.DeploymentRollback\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta1.DeploymentRollback.UpdatedAnnotationsEntry\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1beta1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1beta1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1beta1.DeploymentStrategy\")\n\tproto.RegisterType((*RollbackConfig)(nil), \"k8s.io.api.apps.v1beta1.RollbackConfig\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1beta1.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.apps.v1beta1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.apps.v1beta1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.apps.v1beta1.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta1.ScaleStatus.SelectorEntry\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1beta1.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta1/generated.proto\", fileDescriptor_2a07313e8f66e805)\n}\n\nvar fileDescriptor_2a07313e8f66e805 = []byte{\n\t// 2034 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xd7, 0x52, 0xa2, 0x44, 0x3d, 0x45, 0x54, 0x3c, 0x52, 0x2d, 0x46, 0x69, 0x25, 0x61, 0x63,\n\t0x24, 0x4a, 0x62, 0x2f, 0x63, 0x25, 0x0d, 0x12, 0xbb, 0x75, 0x2b, 0x4a, 0x6e, 0xec, 0x40, 0x8a,\n\t0x94, 0x91, 0x64, 0xa3, 0xe9, 0x07, 0x32, 0x22, 0xc7, 0xd4, 0x46, 0xfb, 0x85, 0xdd, 0x21, 0x63,\n\t0xa2, 0x97, 0xfe, 0x01, 0x05, 0xd2, 0x73, 0xff, 0x8a, 0xf6, 0xd4, 0xa2, 0x45, 0x2f, 0x3d, 0x14,\n\t0x3e, 0x06, 0xbd, 0x34, 0x27, 0xa2, 0x66, 0xae, 0xed, 0xad, 0xbd, 0x18, 0x28, 0x50, 0xcc, 0xec,\n\t0xec, 0xf7, 0xae, 0xb4, 0x2c, 0x60, 0x01, 0xed, 0x8d, 0x3b, 0xef, 0xbd, 0xdf, 0x7b, 0xf3, 0xe6,\n\t0xbd, 0x37, 0xef, 0x0d, 0xe1, 0xfb, 0x67, 0xef, 0x79, 0x9a, 0x6e, 0x37, 0xcf, 0x7a, 0x27, 0xd4,\n\t0xb5, 0x28, 0xa3, 0x5e, 0xb3, 0x4f, 0xad, 0x8e, 0xed, 0x36, 0x25, 0x81, 0x38, 0x7a, 0x93, 0x38,\n\t0x8e, 0xd7, 0xec, 0xdf, 0x3c, 0xa1, 0x8c, 0xdc, 0x6c, 0x76, 0xa9, 0x45, 0x5d, 0xc2, 0x68, 0x47,\n\t0x73, 0x5c, 0x9b, 0xd9, 0x68, 0xd9, 0x67, 0xd4, 0x88, 0xa3, 0x6b, 0x9c, 0x51, 0x93, 0x8c, 0x2b,\n\t0x37, 0xba, 0x3a, 0x3b, 0xed, 0x9d, 0x68, 0x6d, 0xdb, 0x6c, 0x76, 0xed, 0xae, 0xdd, 0x14, 0xfc,\n\t0x27, 0xbd, 0x47, 0xe2, 0x4b, 0x7c, 0x88, 0x5f, 0x3e, 0xce, 0x8a, 0x1a, 0x53, 0xd8, 0xb6, 0x5d,\n\t0xda, 0xec, 0x67, 0x74, 0xad, 0xbc, 0x13, 0xf1, 0x98, 0xa4, 0x7d, 0xaa, 0x5b, 0xd4, 0x1d, 0x34,\n\t0x9d, 0xb3, 0x2e, 0x5f, 0xf0, 0x9a, 0x26, 0x65, 0x24, 0x4f, 0xaa, 0x59, 0x24, 0xe5, 0xf6, 0x2c,\n\t0xa6, 0x9b, 0x34, 0x23, 0xf0, 0xee, 0x45, 0x02, 0x5e, 0xfb, 0x94, 0x9a, 0x24, 0x23, 0xf7, 0x76,\n\t0x91, 0x5c, 0x8f, 0xe9, 0x46, 0x53, 0xb7, 0x98, 0xc7, 0xdc, 0xb4, 0x90, 0xfa, 0x2f, 0x05, 0xd0,\n\t0xb6, 0x6d, 0x31, 0xd7, 0x36, 0x0c, 0xea, 0x62, 0xda, 0xd7, 0x3d, 0xdd, 0xb6, 0xd0, 0xa7, 0x50,\n\t0xe3, 0xfb, 0xe9, 0x10, 0x46, 0x1a, 0xca, 0xba, 0xb2, 0x31, 0xb7, 0xf9, 0x96, 0x16, 0x79, 0x3a,\n\t0x84, 0xd7, 0x9c, 0xb3, 0x2e, 0x5f, 0xf0, 0x34, 0xce, 0xad, 0xf5, 0x6f, 0x6a, 0xfb, 0x27, 0x9f,\n\t0xd1, 0x36, 0xdb, 0xa3, 0x8c, 0xb4, 0xd0, 0x93, 0xe1, 0xda, 0xc4, 0x68, 0xb8, 0x06, 0xd1, 0x1a,\n\t0x0e, 0x51, 0xd1, 0x3e, 0x4c, 0x09, 0xf4, 0x8a, 0x40, 0xbf, 0x51, 0x88, 0x2e, 0x37, 0xad, 0x61,\n\t0xf2, 0xf9, 0xdd, 0xc7, 0x8c, 0x5a, 0xdc, 0xbc, 0xd6, 0x0b, 0x12, 0x7a, 0x6a, 0x87, 0x30, 0x82,\n\t0x05, 0x10, 0xba, 0x0e, 0x35, 0x57, 0x9a, 0xdf, 0x98, 0x5c, 0x57, 0x36, 0x26, 0x5b, 0x2f, 0x4a,\n\t0xae, 0x5a, 0xb0, 0x2d, 0x1c, 0x72, 0xa8, 0x4f, 0x14, 0xb8, 0x9a, 0xdd, 0xf7, 0xae, 0xee, 0x31,\n\t0xf4, 0xe3, 0xcc, 0xde, 0xb5, 0x72, 0x7b, 0xe7, 0xd2, 0x62, 0xe7, 0xa1, 0xe2, 0x60, 0x25, 0xb6,\n\t0xef, 0x03, 0xa8, 0xea, 0x8c, 0x9a, 0x5e, 0xa3, 0xb2, 0x3e, 0xb9, 0x31, 0xb7, 0xf9, 0xa6, 0x56,\n\t0x10, 0xc0, 0x5a, 0xd6, 0xba, 0xd6, 0xbc, 0xc4, 0xad, 0xde, 0xe7, 0x08, 0xd8, 0x07, 0x52, 0x7f,\n\t0x51, 0x01, 0xd8, 0xa1, 0x8e, 0x61, 0x0f, 0x4c, 0x6a, 0xb1, 0x4b, 0x38, 0xba, 0xfb, 0x30, 0xe5,\n\t0x39, 0xb4, 0x2d, 0x8f, 0xee, 0xb5, 0xc2, 0x1d, 0x44, 0x46, 0x1d, 0x3a, 0xb4, 0x1d, 0x1d, 0x1a,\n\t0xff, 0xc2, 0x02, 0x02, 0x7d, 0x0c, 0xd3, 0x1e, 0x23, 0xac, 0xe7, 0x89, 0x23, 0x9b, 0xdb, 0x7c,\n\t0xbd, 0x0c, 0x98, 0x10, 0x68, 0xd5, 0x25, 0xdc, 0xb4, 0xff, 0x8d, 0x25, 0x90, 0xfa, 0xd7, 0x49,\n\t0x58, 0x8c, 0x98, 0xb7, 0x6d, 0xab, 0xa3, 0x33, 0x1e, 0xd2, 0xb7, 0x61, 0x8a, 0x0d, 0x1c, 0x2a,\n\t0x7c, 0x32, 0xdb, 0x7a, 0x2d, 0x30, 0xe6, 0x68, 0xe0, 0xd0, 0x67, 0xc3, 0xb5, 0xe5, 0x1c, 0x11,\n\t0x4e, 0xc2, 0x42, 0x08, 0xed, 0x86, 0x76, 0x56, 0x84, 0xf8, 0x3b, 0x49, 0xe5, 0xcf, 0x86, 0x6b,\n\t0x39, 0x05, 0x44, 0x0b, 0x91, 0x92, 0x26, 0xa2, 0xcf, 0xa0, 0x6e, 0x10, 0x8f, 0x1d, 0x3b, 0x1d,\n\t0xc2, 0xe8, 0x91, 0x6e, 0xd2, 0xc6, 0xb4, 0xd8, 0xfd, 0x1b, 0xe5, 0x0e, 0x8a, 0x4b, 0xb4, 0xae,\n\t0x4a, 0x0b, 0xea, 0xbb, 0x09, 0x24, 0x9c, 0x42, 0x46, 0x7d, 0x40, 0x7c, 0xe5, 0xc8, 0x25, 0x96,\n\t0xe7, 0xef, 0x8a, 0xeb, 0x9b, 0x19, 0x5b, 0xdf, 0x8a, 0xd4, 0x87, 0x76, 0x33, 0x68, 0x38, 0x47,\n\t0x03, 0x7a, 0x15, 0xa6, 0x5d, 0x4a, 0x3c, 0xdb, 0x6a, 0x4c, 0x09, 0x8f, 0x85, 0xc7, 0x85, 0xc5,\n\t0x2a, 0x96, 0x54, 0xf4, 0x3a, 0xcc, 0x98, 0xd4, 0xf3, 0x48, 0x97, 0x36, 0xaa, 0x82, 0x71, 0x41,\n\t0x32, 0xce, 0xec, 0xf9, 0xcb, 0x38, 0xa0, 0xab, 0xbf, 0x53, 0xa0, 0x1e, 0x1d, 0xd3, 0x25, 0xe4,\n\t0xea, 0xbd, 0x64, 0xae, 0xbe, 0x52, 0x22, 0x38, 0x0b, 0x72, 0xf4, 0xef, 0x15, 0x40, 0x11, 0x13,\n\t0xb6, 0x0d, 0xe3, 0x84, 0xb4, 0xcf, 0xd0, 0x3a, 0x4c, 0x59, 0xc4, 0x0c, 0x62, 0x32, 0x4c, 0x90,\n\t0x8f, 0x88, 0x49, 0xb1, 0xa0, 0xa0, 0x2f, 0x14, 0x40, 0x3d, 0x71, 0x9a, 0x9d, 0x2d, 0xcb, 0xb2,\n\t0x19, 0xe1, 0x0e, 0x0e, 0x0c, 0xda, 0x2e, 0x61, 0x50, 0xa0, 0x4b, 0x3b, 0xce, 0xa0, 0xdc, 0xb5,\n\t0x98, 0x3b, 0x88, 0x0e, 0x36, 0xcb, 0x80, 0x73, 0x54, 0xa3, 0x1f, 0x01, 0xb8, 0x12, 0xf3, 0xc8,\n\t0x96, 0x69, 0x5b, 0x5c, 0x03, 0x02, 0xf5, 0xdb, 0xb6, 0xf5, 0x48, 0xef, 0x46, 0x85, 0x05, 0x87,\n\t0x10, 0x38, 0x06, 0xb7, 0x72, 0x17, 0x96, 0x0b, 0xec, 0x44, 0x2f, 0xc2, 0xe4, 0x19, 0x1d, 0xf8,\n\t0xae, 0xc2, 0xfc, 0x27, 0x5a, 0x82, 0x6a, 0x9f, 0x18, 0x3d, 0xea, 0xe7, 0x24, 0xf6, 0x3f, 0x6e,\n\t0x55, 0xde, 0x53, 0xd4, 0x5f, 0x57, 0xe3, 0x91, 0xc2, 0xeb, 0x0d, 0xda, 0xe0, 0xd7, 0x83, 0x63,\n\t0xe8, 0x6d, 0xe2, 0x09, 0x8c, 0x6a, 0xeb, 0x05, 0xff, 0x6a, 0xf0, 0xd7, 0x70, 0x48, 0x45, 0x3f,\n\t0x81, 0x9a, 0x47, 0x0d, 0xda, 0x66, 0xb6, 0x2b, 0x4b, 0xdc, 0xdb, 0x25, 0x63, 0x8a, 0x9c, 0x50,\n\t0xe3, 0x50, 0x8a, 0xfa, 0xf0, 0xc1, 0x17, 0x0e, 0x21, 0xd1, 0xc7, 0x50, 0x63, 0xd4, 0x74, 0x0c,\n\t0xc2, 0xa8, 0xf4, 0x5e, 0x22, 0xae, 0x78, 0xed, 0xe0, 0x60, 0x07, 0x76, 0xe7, 0x48, 0xb2, 0x89,\n\t0xea, 0x19, 0xc6, 0x69, 0xb0, 0x8a, 0x43, 0x18, 0xf4, 0x43, 0xa8, 0x79, 0x8c, 0xdf, 0xea, 0xdd,\n\t0x81, 0xc8, 0xb6, 0xf3, 0xae, 0x95, 0x78, 0x1d, 0xf5, 0x45, 0x22, 0xe8, 0x60, 0x05, 0x87, 0x70,\n\t0x68, 0x0b, 0x16, 0x4c, 0xdd, 0xc2, 0x94, 0x74, 0x06, 0x87, 0xb4, 0x6d, 0x5b, 0x1d, 0x4f, 0xa4,\n\t0x69, 0xb5, 0xb5, 0x2c, 0x85, 0x16, 0xf6, 0x92, 0x64, 0x9c, 0xe6, 0x47, 0xbb, 0xb0, 0x14, 0x5c,\n\t0xbb, 0xf7, 0x74, 0x8f, 0xd9, 0xee, 0x60, 0x57, 0x37, 0x75, 0x26, 0x6a, 0x5e, 0xb5, 0xd5, 0x18,\n\t0x0d, 0xd7, 0x96, 0x70, 0x0e, 0x1d, 0xe7, 0x4a, 0xf1, 0xba, 0xe2, 0x90, 0x9e, 0x47, 0x3b, 0xa2,\n\t0x86, 0xd5, 0xa2, 0xba, 0x72, 0x20, 0x56, 0xb1, 0xa4, 0xa2, 0x87, 0x89, 0x30, 0xad, 0x8d, 0x17,\n\t0xa6, 0xf5, 0xe2, 0x10, 0x45, 0xc7, 0xb0, 0xec, 0xb8, 0x76, 0xd7, 0xa5, 0x9e, 0xb7, 0x43, 0x49,\n\t0xc7, 0xd0, 0x2d, 0x1a, 0x78, 0x66, 0x56, 0xec, 0xe8, 0xe5, 0xd1, 0x70, 0x6d, 0xf9, 0x20, 0x9f,\n\t0x05, 0x17, 0xc9, 0xaa, 0x7f, 0x9a, 0x82, 0x17, 0xd3, 0x77, 0x1c, 0xfa, 0x10, 0x90, 0x7d, 0xe2,\n\t0x51, 0xb7, 0x4f, 0x3b, 0x1f, 0xf8, 0x8d, 0x1b, 0xef, 0x6e, 0x14, 0xd1, 0xdd, 0x84, 0x79, 0xbb,\n\t0x9f, 0xe1, 0xc0, 0x39, 0x52, 0x7e, 0x7f, 0x24, 0x13, 0xa0, 0x22, 0x0c, 0x8d, 0xf5, 0x47, 0x99,\n\t0x24, 0xd8, 0x82, 0x05, 0x99, 0xfb, 0x01, 0x51, 0x04, 0x6b, 0xec, 0xdc, 0x8f, 0x93, 0x64, 0x9c,\n\t0xe6, 0x47, 0xb7, 0x61, 0xde, 0xe5, 0x71, 0x10, 0x02, 0xcc, 0x08, 0x80, 0x6f, 0x48, 0x80, 0x79,\n\t0x1c, 0x27, 0xe2, 0x24, 0x2f, 0xfa, 0x00, 0xae, 0x90, 0x3e, 0xd1, 0x0d, 0x72, 0x62, 0xd0, 0x10,\n\t0x60, 0x4a, 0x00, 0xbc, 0x24, 0x01, 0xae, 0x6c, 0xa5, 0x19, 0x70, 0x56, 0x06, 0xed, 0xc1, 0x62,\n\t0xcf, 0xca, 0x42, 0xf9, 0x41, 0xfc, 0xb2, 0x84, 0x5a, 0x3c, 0xce, 0xb2, 0xe0, 0x3c, 0x39, 0xf4,\n\t0x29, 0x40, 0x3b, 0xb8, 0xd5, 0xbd, 0xc6, 0xb4, 0x28, 0xc3, 0xd7, 0x4b, 0x24, 0x5b, 0xd8, 0x0a,\n\t0x44, 0x25, 0x30, 0x5c, 0xf2, 0x70, 0x0c, 0x13, 0xdd, 0x82, 0x7a, 0xdb, 0x36, 0x0c, 0x11, 0xf9,\n\t0xdb, 0x76, 0xcf, 0x62, 0x22, 0x78, 0xab, 0x2d, 0xc4, 0x2f, 0xfb, 0xed, 0x04, 0x05, 0xa7, 0x38,\n\t0xd5, 0x3f, 0x28, 0xf1, 0x6b, 0x26, 0x48, 0x67, 0x74, 0x2b, 0xd1, 0xfa, 0xbc, 0x9a, 0x6a, 0x7d,\n\t0xae, 0x66, 0x25, 0x62, 0x9d, 0x8f, 0x0e, 0xf3, 0x3c, 0xf8, 0x75, 0xab, 0xeb, 0x1f, 0xb8, 0x2c,\n\t0x89, 0x6f, 0x9d, 0x9b, 0x4a, 0x21, 0x77, 0xec, 0x62, 0xbc, 0x22, 0xce, 0x3c, 0x4e, 0xc4, 0x49,\n\t0x64, 0xf5, 0x0e, 0xd4, 0x93, 0x79, 0x98, 0xe8, 0xe9, 0x95, 0x0b, 0x7b, 0xfa, 0xaf, 0x15, 0x58,\n\t0x2e, 0xd0, 0x8e, 0x0c, 0xa8, 0x9b, 0xe4, 0x71, 0xec, 0x98, 0x2f, 0xec, 0x8d, 0xf9, 0xd4, 0xa4,\n\t0xf9, 0x53, 0x93, 0x76, 0xdf, 0x62, 0xfb, 0xee, 0x21, 0x73, 0x75, 0xab, 0xeb, 0x9f, 0xc3, 0x5e,\n\t0x02, 0x0b, 0xa7, 0xb0, 0xd1, 0x27, 0x50, 0x33, 0xc9, 0xe3, 0xc3, 0x9e, 0xdb, 0xcd, 0xf3, 0x57,\n\t0x39, 0x3d, 0xe2, 0xfe, 0xd8, 0x93, 0x28, 0x38, 0xc4, 0x53, 0xff, 0xa8, 0xc0, 0x7a, 0x62, 0x97,\n\t0xbc, 0x56, 0xd0, 0x47, 0x3d, 0xe3, 0x90, 0x46, 0x27, 0xfe, 0x26, 0xcc, 0x3a, 0xc4, 0x65, 0x7a,\n\t0x58, 0x2f, 0xaa, 0xad, 0xf9, 0xd1, 0x70, 0x6d, 0xf6, 0x20, 0x58, 0xc4, 0x11, 0x3d, 0xc7, 0x37,\n\t0x95, 0xe7, 0xe7, 0x1b, 0xf5, 0xdf, 0x0a, 0x54, 0x0f, 0xdb, 0xc4, 0xa0, 0x97, 0x30, 0xa9, 0xec,\n\t0x24, 0x26, 0x15, 0xb5, 0x30, 0x66, 0x85, 0x3d, 0x85, 0x43, 0xca, 0x6e, 0x6a, 0x48, 0xb9, 0x76,\n\t0x01, 0xce, 0xf9, 0xf3, 0xc9, 0xfb, 0x30, 0x1b, 0xaa, 0x4b, 0x14, 0x65, 0xe5, 0xa2, 0xa2, 0xac,\n\t0xfe, 0xaa, 0x02, 0x73, 0x31, 0x15, 0xe3, 0x49, 0x73, 0x77, 0xc7, 0xfa, 0x1a, 0x5e, 0xb8, 0x36,\n\t0xcb, 0x6c, 0x44, 0x0b, 0x7a, 0x18, 0xbf, 0x5d, 0x8c, 0x9a, 0x85, 0x6c, 0x6b, 0x73, 0x07, 0xea,\n\t0x8c, 0xb8, 0x5d, 0xca, 0x02, 0x9a, 0x70, 0xd8, 0x6c, 0x34, 0xab, 0x1c, 0x25, 0xa8, 0x38, 0xc5,\n\t0xbd, 0x72, 0x1b, 0xe6, 0x13, 0xca, 0xc6, 0xea, 0xf9, 0xbe, 0xe0, 0xce, 0x89, 0x52, 0xe1, 0x12,\n\t0xa2, 0xeb, 0xc3, 0x44, 0x74, 0x6d, 0x14, 0x3b, 0x33, 0x96, 0xa0, 0x45, 0x31, 0x86, 0x53, 0x31,\n\t0xf6, 0x46, 0x29, 0xb4, 0xf3, 0x23, 0xed, 0x1f, 0x15, 0x58, 0x8a, 0x71, 0x47, 0xa3, 0xf0, 0x77,\n\t0x12, 0xf7, 0xc1, 0x46, 0xea, 0x3e, 0x68, 0xe4, 0xc9, 0x3c, 0xb7, 0x59, 0x38, 0x7f, 0x3e, 0x9d,\n\t0xfc, 0x5f, 0x9c, 0x4f, 0x7f, 0xaf, 0xc0, 0x42, 0xcc, 0x77, 0x97, 0x30, 0xa0, 0xde, 0x4f, 0x0e,\n\t0xa8, 0xd7, 0xca, 0x04, 0x4d, 0xc1, 0x84, 0x7a, 0x0b, 0x16, 0x63, 0x4c, 0xfb, 0x6e, 0x47, 0xb7,\n\t0x88, 0xe1, 0xa1, 0x57, 0xa0, 0xea, 0x31, 0xe2, 0xb2, 0xe0, 0x12, 0x09, 0x64, 0x0f, 0xf9, 0x22,\n\t0xf6, 0x69, 0xea, 0x3f, 0x15, 0x68, 0xc6, 0x84, 0x0f, 0xa8, 0xeb, 0xe9, 0x1e, 0xa3, 0x16, 0x7b,\n\t0x60, 0x1b, 0x3d, 0x93, 0x6e, 0x1b, 0x44, 0x37, 0x31, 0xe5, 0x0b, 0xba, 0x6d, 0x1d, 0xd8, 0x86,\n\t0xde, 0x1e, 0x20, 0x02, 0x73, 0x9f, 0x9f, 0x52, 0x6b, 0x87, 0x1a, 0x94, 0xd1, 0x8e, 0x0c, 0xc5,\n\t0xef, 0x49, 0xf8, 0xb9, 0x87, 0x11, 0xe9, 0xd9, 0x70, 0x6d, 0xa3, 0x0c, 0xa2, 0x88, 0xd0, 0x38,\n\t0x26, 0xfa, 0x29, 0x00, 0xff, 0x14, 0xb5, 0xac, 0x23, 0x83, 0xf5, 0x4e, 0x90, 0xd1, 0x0f, 0x43,\n\t0xca, 0x58, 0x0a, 0x62, 0x88, 0xea, 0x6f, 0x6a, 0x89, 0xf3, 0xfe, 0xbf, 0x1f, 0x33, 0x7f, 0x06,\n\t0x4b, 0xfd, 0xc8, 0x3b, 0x01, 0x03, 0x6f, 0xcb, 0x27, 0xd3, 0x4f, 0x77, 0x21, 0x7c, 0x9e, 0x5f,\n\t0x5b, 0xdf, 0x94, 0x4a, 0x96, 0x1e, 0xe4, 0xc0, 0xe1, 0x5c, 0x25, 0xe8, 0xdb, 0x30, 0xc7, 0x47,\n\t0x1a, 0xbd, 0x4d, 0x3f, 0x22, 0x66, 0x90, 0x8b, 0x8b, 0x41, 0xbc, 0x1c, 0x46, 0x24, 0x1c, 0xe7,\n\t0x43, 0xa7, 0xb0, 0xe8, 0xd8, 0x9d, 0x3d, 0x62, 0x91, 0x2e, 0xe5, 0x8d, 0xa0, 0x7f, 0x94, 0x62,\n\t0xf6, 0x9c, 0x6d, 0xbd, 0x1b, 0xb4, 0xff, 0x07, 0x59, 0x96, 0x67, 0x7c, 0x88, 0xcb, 0x2e, 0x8b,\n\t0x20, 0xc8, 0x83, 0x44, 0x2e, 0xd4, 0x7b, 0xb2, 0x1f, 0x93, 0xa3, 0xb8, 0xff, 0xc8, 0xb6, 0x59,\n\t0x26, 0x29, 0x8f, 0x13, 0x92, 0xd1, 0x85, 0x99, 0x5c, 0xc7, 0x29, 0x0d, 0x85, 0xa3, 0x75, 0xed,\n\t0xbf, 0x1a, 0xad, 0x73, 0x66, 0xfd, 0xd9, 0x31, 0x67, 0xfd, 0x3f, 0x2b, 0x70, 0xcd, 0x29, 0x91,\n\t0x4b, 0x0d, 0x10, 0xbe, 0xb9, 0x57, 0xc6, 0x37, 0x65, 0x72, 0xb3, 0xb5, 0x31, 0x1a, 0xae, 0x5d,\n\t0x2b, 0xc3, 0x89, 0x4b, 0xd9, 0x87, 0x1e, 0x40, 0xcd, 0x96, 0x35, 0xb0, 0x31, 0x27, 0x6c, 0xbd,\n\t0x5e, 0xc6, 0xd6, 0xa0, 0x6e, 0xfa, 0x69, 0x19, 0x7c, 0xe1, 0x10, 0x4b, 0xfd, 0x6d, 0x15, 0xae,\n\t0x64, 0x6e, 0x70, 0xf4, 0x83, 0x73, 0xe6, 0xfc, 0xab, 0xcf, 0x6d, 0xc6, 0xcf, 0x0c, 0xe8, 0x93,\n\t0x63, 0x0c, 0xe8, 0x5b, 0xb0, 0xd0, 0xee, 0xb9, 0x2e, 0xb5, 0x58, 0x6a, 0x3c, 0x0f, 0x83, 0x65,\n\t0x3b, 0x49, 0xc6, 0x69, 0xfe, 0xbc, 0x37, 0x86, 0xea, 0x98, 0x6f, 0x0c, 0x71, 0x2b, 0xe4, 0x9c,\n\t0xe8, 0xa7, 0x76, 0xd6, 0x0a, 0x39, 0x2e, 0xa6, 0xf9, 0x79, 0xd3, 0xea, 0xa3, 0x86, 0x08, 0x33,\n\t0xc9, 0xa6, 0xf5, 0x38, 0x41, 0xc5, 0x29, 0xee, 0x9c, 0x79, 0x7d, 0xb6, 0xec, 0xbc, 0x8e, 0x48,\n\t0xe2, 0x35, 0x01, 0x44, 0x1d, 0xbd, 0x51, 0x26, 0xce, 0xca, 0x3f, 0x27, 0xe4, 0x3e, 0xa4, 0xcc,\n\t0x8d, 0xff, 0x90, 0xa2, 0xfe, 0x45, 0x81, 0x97, 0x0a, 0x2b, 0x16, 0xda, 0x4a, 0xb4, 0x94, 0x37,\n\t0x52, 0x2d, 0xe5, 0xb7, 0x0a, 0x05, 0x63, 0x7d, 0xa5, 0x9b, 0xff, 0xd2, 0xf0, 0x7e, 0xb9, 0x97,\n\t0x86, 0x9c, 0x29, 0xf8, 0xe2, 0x27, 0x87, 0xd6, 0x77, 0x9f, 0x3c, 0x5d, 0x9d, 0xf8, 0xf2, 0xe9,\n\t0xea, 0xc4, 0x57, 0x4f, 0x57, 0x27, 0x7e, 0x3e, 0x5a, 0x55, 0x9e, 0x8c, 0x56, 0x95, 0x2f, 0x47,\n\t0xab, 0xca, 0x57, 0xa3, 0x55, 0xe5, 0x6f, 0xa3, 0x55, 0xe5, 0x97, 0x5f, 0xaf, 0x4e, 0x7c, 0xb2,\n\t0x5c, 0xf0, 0x6f, 0xf4, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x0a, 0xd6, 0x32, 0xc0, 0x1e,\n\t0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentRollback) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentRollback) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tkeysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations))\n\t\tfor k := range m.UpdatedAnnotations {\n\t\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\t\tfor iNdEx := len(keysForUpdatedAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.UpdatedAnnotations[string(keysForUpdatedAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUpdatedAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUpdatedAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUpdatedAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.RollbackTo != nil {\n\t\t{\n\t\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollbackConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollbackConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollbackConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentRollback) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tfor k, v := range m.UpdatedAnnotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.RollbackTo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.RollbackTo != nil {\n\t\tl = m.RollbackTo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollbackConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentRollback) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations))\n\tfor k := range this.UpdatedAnnotations {\n\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\tmapStringForUpdatedAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForUpdatedAnnotations {\n\t\tmapStringForUpdatedAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.UpdatedAnnotations[k])\n\t}\n\tmapStringForUpdatedAnnotations += \"}\"\n\ts := strings.Join([]string{`&DeploymentRollback{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`,\n\t\t`RollbackTo:` + strings.Replace(strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`RollbackTo:` + strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollbackConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollbackConfig{`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentRollback) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UpdatedAnnotations == nil {\n\t\t\t\tm.UpdatedAnnotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.UpdatedAnnotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollbackTo == nil {\n\t\t\t\tm.RollbackTo = &RollbackConfig{}\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollbackConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1beta1\";\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // data is the serialized representation of the state.\n  optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\nmessage DeploymentRollback {\n  // Required: This must match the Name of a deployment.\n  optional string name = 1;\n\n  // The annotations to be updated to a deployment\n  // +optional\n  map<string, string> updatedAnnotations = 2;\n\n  // The config of this deployment rollback.\n  optional RollbackConfig rollbackTo = 3;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // replicas is the number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is the label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 2.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // paused indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // DEPRECATED.\n  // rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\n  // +optional\n  optional RollbackConfig rollbackTo = 8;\n\n  // progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  // +optional\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // observedGeneration is the generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Conditions represent the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DeploymentCondition conditions = 6;\n\n  // collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// DEPRECATED.\nmessage RollbackConfig {\n  // The revision to rollback to. If set to 0, rollback to the last revision.\n  // +optional\n  optional int64 revision = 1;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  optional int32 partition = 1;\n\n  // maxUnavailable is the maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // replicas is the number of observed instances of the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // replias is the actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  map<string, string> selector = 2;\n\n  // targetSelector is the label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // whenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // whenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // If empty, defaulted to labels on the pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n  // the StatefulSet VolumeClaimTemplates. This requires the\n  // StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\n  // +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested. Using\n  // the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n  // enabled, which is beta.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // conditions represent the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated StatefulSetCondition conditions = 10;\n\n  // availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&DeploymentRollback{},\n\t\t&Scale{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n)\n\n// ScaleSpec describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// replicas is the number of observed instances of the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// replias is the actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// targetSelector is the label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v1,Scale\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSet\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// maxUnavailable is the maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// RetentionPersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tRetentionPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// whenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// whenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// If empty, defaulted to labels on the pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n\t// the StatefulSet VolumeClaimTemplates. This requires the\n\t// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\n\t// +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested. Using\n\t// the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n\t// enabled, which is beta.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// conditions represent the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSetList\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\tItems           []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// replicas is the number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is the label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 2.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// paused indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// DEPRECATED.\n\t// rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\n\t// +optional\n\tRollbackTo *RollbackConfig `json:\"rollbackTo,omitempty\" protobuf:\"bytes,8,opt,name=rollbackTo\"`\n\n\t// progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\t// +optional\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentRollback\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\ntype DeploymentRollback struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Required: This must match the Name of a deployment.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The annotations to be updated to a deployment\n\t// +optional\n\tUpdatedAnnotations map[string]string `json:\"updatedAnnotations,omitempty\" protobuf:\"bytes,2,rep,name=updatedAnnotations\"`\n\t// The config of this deployment rollback.\n\tRollbackTo RollbackConfig `json:\"rollbackTo\" protobuf:\"bytes,3,opt,name=rollbackTo\"`\n}\n\n// DEPRECATED.\ntype RollbackConfig struct {\n\t// The revision to rollback to. If set to 0, rollback to the last revision.\n\t// +optional\n\tRevision int64 `json:\"revision,omitempty\" protobuf:\"varint,1,opt,name=revision\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// observedGeneration is the generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Conditions represent the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.7\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevision\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.7\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevisionList\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"data is the serialized representation of the state.\",\n\t\"revision\": \"revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentRollback = map[string]string{\n\t\"\":                   \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n\t\"name\":               \"Required: This must match the Name of a deployment.\",\n\t\"updatedAnnotations\": \"The annotations to be updated to a deployment\",\n\t\"rollbackTo\":         \"The config of this deployment rollback.\",\n}\n\nfunc (DeploymentRollback) SwaggerDoc() map[string]string {\n\treturn map_DeploymentRollback\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"selector is the label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"minReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.\",\n\t\"paused\":                  \"paused indicates that the deployment is paused.\",\n\t\"rollbackTo\":              \"DEPRECATED. rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\",\n\t\"progressDeadlineSeconds\": \"progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"observedGeneration is the generation observed by the deployment controller.\",\n\t\"replicas\":            \"replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Conditions represent the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_RollbackConfig = map[string]string{\n\t\"\":         \"DEPRECATED.\",\n\t\"revision\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n}\n\nfunc (RollbackConfig) SwaggerDoc() map[string]string {\n\treturn map_RollbackConfig\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"maxUnavailable is the maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource\",\n\t\"replicas\": \"replicas is the number of observed instances of the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\":       \"replias is the actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"targetSelector is the label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":       \"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"spec\":   \"Spec defines the desired identities of pods in this set.\",\n\t\"status\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\": \"StatefulSetList is a collection of StatefulSets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"whenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"whenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"minReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested. Using the ordinals field requires the StatefulSetStartOrdinal feature gate to be enabled, which is beta.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"conditions represent the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.UpdatedAnnotations != nil {\n\t\tin, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tout.RollbackTo = in.RollbackTo\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback.\nfunc (in *DeploymentRollback) DeepCopy() *DeploymentRollback {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentRollback)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentRollback) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.RollbackTo != nil {\n\t\tin, out := &in.RollbackTo, &out.RollbackTo\n\t\t*out = new(RollbackConfig)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig.\nfunc (in *RollbackConfig) DeepCopy() *RollbackConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollbackConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 7\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevision\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 7\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevisionList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentRollback\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Scale) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v1\", Kind: \"Scale\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta2 // import \"k8s.io/api/apps/v1beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto\n\npackage v1beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{2}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{3}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{4}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{5}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{6}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{7}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{8}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{9}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{10}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{11}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{12}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{13}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{14}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{15}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{16}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{17}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{18}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{19}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{20}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{21}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{22}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{23}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{24}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{25}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{26}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{27}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{28}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{29}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{30}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{31}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_42fe616264472f7e, []int{32}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1beta2.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1beta2.ControllerRevisionList\")\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.apps.v1beta2.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1beta2.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1beta2.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1beta2.DeploymentList\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1beta2.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1beta2.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1beta2.DeploymentStrategy\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetStatus\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.apps.v1beta2.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.apps.v1beta2.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.apps.v1beta2.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta2.ScaleStatus.SelectorEntry\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1beta2.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto\", fileDescriptor_42fe616264472f7e)\n}\n\nvar fileDescriptor_42fe616264472f7e = []byte{\n\t// 2345 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xf7, 0xf2, 0x43, 0x26, 0x87, 0x96, 0x64, 0x8f, 0x54, 0x89, 0x91, 0x5b, 0xd2, 0x58, 0x1b,\n\t0x8e, 0x12, 0xdb, 0xa4, 0xad, 0x7c, 0x20, 0xb1, 0xdb, 0xa4, 0xa2, 0x94, 0xda, 0x0e, 0xf4, 0xc1,\n\t0x0c, 0x2d, 0x07, 0x0d, 0xfa, 0xe1, 0x11, 0x39, 0xa6, 0x36, 0x5a, 0xee, 0x2e, 0x76, 0x87, 0x8c,\n\t0x89, 0x5e, 0x7a, 0x2d, 0x50, 0xa0, 0xed, 0xb5, 0xff, 0x44, 0xd1, 0x4b, 0x51, 0x34, 0xe8, 0xa5,\n\t0x08, 0x02, 0x1f, 0x83, 0x5e, 0x92, 0x13, 0x51, 0x33, 0xa7, 0xa2, 0xe8, 0xad, 0xbd, 0x18, 0x28,\n\t0x50, 0xcc, 0xec, 0xec, 0xf7, 0xae, 0xb9, 0x54, 0x6c, 0xe5, 0x03, 0xb9, 0x71, 0xe7, 0xbd, 0xf7,\n\t0x9b, 0x37, 0x33, 0xef, 0xcd, 0xfb, 0xcd, 0x0c, 0xc1, 0x0f, 0x0f, 0x5f, 0xb3, 0x6a, 0x8a, 0x5e,\n\t0x3f, 0xec, 0xef, 0x13, 0x53, 0x23, 0x94, 0x58, 0xf5, 0x01, 0xd1, 0x3a, 0xba, 0x59, 0x17, 0x02,\n\t0x6c, 0x28, 0x75, 0x6c, 0x18, 0x56, 0x7d, 0x70, 0x6d, 0x9f, 0x50, 0xbc, 0x56, 0xef, 0x12, 0x8d,\n\t0x98, 0x98, 0x92, 0x4e, 0xcd, 0x30, 0x75, 0xaa, 0xc3, 0x65, 0x5b, 0xb1, 0x86, 0x0d, 0xa5, 0xc6,\n\t0x14, 0x6b, 0x42, 0x71, 0xe5, 0x4a, 0x57, 0xa1, 0x07, 0xfd, 0xfd, 0x5a, 0x5b, 0xef, 0xd5, 0xbb,\n\t0x7a, 0x57, 0xaf, 0x73, 0xfd, 0xfd, 0xfe, 0x7d, 0xfe, 0xc5, 0x3f, 0xf8, 0x2f, 0x1b, 0x67, 0x45,\n\t0xf6, 0x75, 0xd8, 0xd6, 0x4d, 0x52, 0x1f, 0x5c, 0x0b, 0xf7, 0xb5, 0xf2, 0xb2, 0xa7, 0xd3, 0xc3,\n\t0xed, 0x03, 0x45, 0x23, 0xe6, 0xb0, 0x6e, 0x1c, 0x76, 0x59, 0x83, 0x55, 0xef, 0x11, 0x8a, 0xe3,\n\t0xac, 0xea, 0x49, 0x56, 0x66, 0x5f, 0xa3, 0x4a, 0x8f, 0x44, 0x0c, 0x5e, 0x9d, 0x64, 0x60, 0xb5,\n\t0x0f, 0x48, 0x0f, 0x47, 0xec, 0x5e, 0x4a, 0xb2, 0xeb, 0x53, 0x45, 0xad, 0x2b, 0x1a, 0xb5, 0xa8,\n\t0x19, 0x36, 0x92, 0xff, 0x2b, 0x01, 0xb8, 0xa1, 0x6b, 0xd4, 0xd4, 0x55, 0x95, 0x98, 0x88, 0x0c,\n\t0x14, 0x4b, 0xd1, 0x35, 0x78, 0x0f, 0x14, 0xd8, 0x78, 0x3a, 0x98, 0xe2, 0xb2, 0x74, 0x4e, 0x5a,\n\t0x2d, 0xad, 0x5d, 0xad, 0x79, 0x33, 0xed, 0xc2, 0xd7, 0x8c, 0xc3, 0x2e, 0x6b, 0xb0, 0x6a, 0x4c,\n\t0xbb, 0x36, 0xb8, 0x56, 0xdb, 0xdd, 0x7f, 0x9f, 0xb4, 0xe9, 0x36, 0xa1, 0xb8, 0x01, 0x1f, 0x8e,\n\t0xaa, 0x27, 0xc6, 0xa3, 0x2a, 0xf0, 0xda, 0x90, 0x8b, 0x0a, 0x77, 0x41, 0x8e, 0xa3, 0x67, 0x38,\n\t0xfa, 0x95, 0x44, 0x74, 0x31, 0xe8, 0x1a, 0xc2, 0x1f, 0xbc, 0xf5, 0x80, 0x12, 0x8d, 0xb9, 0xd7,\n\t0x38, 0x25, 0xa0, 0x73, 0x9b, 0x98, 0x62, 0xc4, 0x81, 0xe0, 0x65, 0x50, 0x30, 0x85, 0xfb, 0xe5,\n\t0xec, 0x39, 0x69, 0x35, 0xdb, 0x38, 0x2d, 0xb4, 0x0a, 0xce, 0xb0, 0x90, 0xab, 0x21, 0x3f, 0x94,\n\t0xc0, 0x52, 0x74, 0xdc, 0x5b, 0x8a, 0x45, 0xe1, 0x4f, 0x22, 0x63, 0xaf, 0xa5, 0x1b, 0x3b, 0xb3,\n\t0xe6, 0x23, 0x77, 0x3b, 0x76, 0x5a, 0x7c, 0xe3, 0x6e, 0x82, 0xbc, 0x42, 0x49, 0xcf, 0x2a, 0x67,\n\t0xce, 0x65, 0x57, 0x4b, 0x6b, 0x97, 0x6a, 0x09, 0x01, 0x5c, 0x8b, 0x7a, 0xd7, 0x98, 0x15, 0xb8,\n\t0xf9, 0xdb, 0x0c, 0x01, 0xd9, 0x40, 0xf2, 0xaf, 0x32, 0xa0, 0xb8, 0x89, 0x49, 0x4f, 0xd7, 0x5a,\n\t0x84, 0x1e, 0xc3, 0xca, 0xdd, 0x02, 0x39, 0xcb, 0x20, 0x6d, 0xb1, 0x72, 0x17, 0x13, 0x07, 0xe0,\n\t0xfa, 0xd4, 0x32, 0x48, 0xdb, 0x5b, 0x32, 0xf6, 0x85, 0x38, 0x02, 0x6c, 0x82, 0x19, 0x8b, 0x62,\n\t0xda, 0xb7, 0xf8, 0x82, 0x95, 0xd6, 0x56, 0x53, 0x60, 0x71, 0xfd, 0xc6, 0x9c, 0x40, 0x9b, 0xb1,\n\t0xbf, 0x91, 0xc0, 0x91, 0xff, 0x99, 0x01, 0xd0, 0xd5, 0xdd, 0xd0, 0xb5, 0x8e, 0x42, 0x59, 0x38,\n\t0x5f, 0x07, 0x39, 0x3a, 0x34, 0x08, 0x9f, 0x90, 0x62, 0xe3, 0xa2, 0xe3, 0xca, 0x9d, 0xa1, 0x41,\n\t0x1e, 0x8f, 0xaa, 0x4b, 0x51, 0x0b, 0x26, 0x41, 0xdc, 0x06, 0x6e, 0xb9, 0x4e, 0x66, 0xb8, 0xf5,\n\t0xcb, 0xc1, 0xae, 0x1f, 0x8f, 0xaa, 0x31, 0x7b, 0x47, 0xcd, 0x45, 0x0a, 0x3a, 0x08, 0x07, 0x00,\n\t0xaa, 0xd8, 0xa2, 0x77, 0x4c, 0xac, 0x59, 0x76, 0x4f, 0x4a, 0x8f, 0x88, 0xe1, 0xbf, 0x98, 0x6e,\n\t0xa1, 0x98, 0x45, 0x63, 0x45, 0x78, 0x01, 0xb7, 0x22, 0x68, 0x28, 0xa6, 0x07, 0x78, 0x11, 0xcc,\n\t0x98, 0x04, 0x5b, 0xba, 0x56, 0xce, 0xf1, 0x51, 0xb8, 0x13, 0x88, 0x78, 0x2b, 0x12, 0x52, 0xf8,\n\t0x02, 0x38, 0xd9, 0x23, 0x96, 0x85, 0xbb, 0xa4, 0x9c, 0xe7, 0x8a, 0xf3, 0x42, 0xf1, 0xe4, 0xb6,\n\t0xdd, 0x8c, 0x1c, 0xb9, 0xfc, 0x27, 0x09, 0xcc, 0xba, 0x33, 0x77, 0x0c, 0x99, 0x73, 0x33, 0x98,\n\t0x39, 0xf2, 0xe4, 0x60, 0x49, 0x48, 0x98, 0x8f, 0xb2, 0x3e, 0xc7, 0x59, 0x38, 0xc2, 0x9f, 0x82,\n\t0x82, 0x45, 0x54, 0xd2, 0xa6, 0xba, 0x29, 0x1c, 0x7f, 0x29, 0xa5, 0xe3, 0x78, 0x9f, 0xa8, 0x2d,\n\t0x61, 0xda, 0x38, 0xc5, 0x3c, 0x77, 0xbe, 0x90, 0x0b, 0x09, 0xdf, 0x01, 0x05, 0x4a, 0x7a, 0x86,\n\t0x8a, 0x29, 0x11, 0x59, 0x73, 0xde, 0xef, 0x3c, 0x8b, 0x19, 0x06, 0xd6, 0xd4, 0x3b, 0x77, 0x84,\n\t0x1a, 0x4f, 0x19, 0x77, 0x32, 0x9c, 0x56, 0xe4, 0xc2, 0x40, 0x03, 0xcc, 0xf5, 0x8d, 0x0e, 0xd3,\n\t0xa4, 0x6c, 0x3b, 0xef, 0x0e, 0x45, 0x0c, 0x5d, 0x9d, 0x3c, 0x2b, 0x7b, 0x01, 0xbb, 0xc6, 0x92,\n\t0xe8, 0x65, 0x2e, 0xd8, 0x8e, 0x42, 0xf8, 0x70, 0x1d, 0xcc, 0xf7, 0x14, 0x0d, 0x11, 0xdc, 0x19,\n\t0xb6, 0x48, 0x5b, 0xd7, 0x3a, 0x16, 0x0f, 0xa5, 0x7c, 0x63, 0x59, 0x00, 0xcc, 0x6f, 0x07, 0xc5,\n\t0x28, 0xac, 0x0f, 0xb7, 0xc0, 0xa2, 0xb3, 0x01, 0xdf, 0x52, 0x2c, 0xaa, 0x9b, 0xc3, 0x2d, 0xa5,\n\t0xa7, 0xd0, 0xf2, 0x0c, 0xc7, 0x29, 0x8f, 0x47, 0xd5, 0x45, 0x14, 0x23, 0x47, 0xb1, 0x56, 0xf2,\n\t0xef, 0x66, 0xc0, 0x7c, 0x68, 0x5f, 0x80, 0x77, 0xc1, 0x52, 0xbb, 0x6f, 0x9a, 0x44, 0xa3, 0x3b,\n\t0xfd, 0xde, 0x3e, 0x31, 0x5b, 0xed, 0x03, 0xd2, 0xe9, 0xab, 0xa4, 0xc3, 0x97, 0x35, 0xdf, 0xa8,\n\t0x08, 0x5f, 0x97, 0x36, 0x62, 0xb5, 0x50, 0x82, 0x35, 0x7c, 0x1b, 0x40, 0x8d, 0x37, 0x6d, 0x2b,\n\t0x96, 0xe5, 0x62, 0x66, 0x38, 0xa6, 0x9b, 0x8a, 0x3b, 0x11, 0x0d, 0x14, 0x63, 0xc5, 0x7c, 0xec,\n\t0x10, 0x4b, 0x31, 0x49, 0x27, 0xec, 0x63, 0x36, 0xe8, 0xe3, 0x66, 0xac, 0x16, 0x4a, 0xb0, 0x86,\n\t0xaf, 0x80, 0x92, 0xdd, 0x1b, 0x9f, 0x73, 0xb1, 0x38, 0x0b, 0x02, 0xac, 0xb4, 0xe3, 0x89, 0x90,\n\t0x5f, 0x8f, 0x0d, 0x4d, 0xdf, 0xb7, 0x88, 0x39, 0x20, 0x9d, 0x9b, 0x36, 0x39, 0x60, 0x15, 0x34,\n\t0xcf, 0x2b, 0xa8, 0x3b, 0xb4, 0xdd, 0x88, 0x06, 0x8a, 0xb1, 0x62, 0x43, 0xb3, 0xa3, 0x26, 0x32,\n\t0xb4, 0x99, 0xe0, 0xd0, 0xf6, 0x62, 0xb5, 0x50, 0x82, 0x35, 0x8b, 0x3d, 0xdb, 0xe5, 0xf5, 0x01,\n\t0x56, 0x54, 0xbc, 0xaf, 0x92, 0xf2, 0xc9, 0x60, 0xec, 0xed, 0x04, 0xc5, 0x28, 0xac, 0x0f, 0x6f,\n\t0x82, 0x33, 0x76, 0xd3, 0x9e, 0x86, 0x5d, 0x90, 0x02, 0x07, 0x79, 0x4e, 0x80, 0x9c, 0xd9, 0x09,\n\t0x2b, 0xa0, 0xa8, 0x0d, 0xbc, 0x0e, 0xe6, 0xda, 0xba, 0xaa, 0xf2, 0x78, 0xdc, 0xd0, 0xfb, 0x1a,\n\t0x2d, 0x17, 0x39, 0x0a, 0x64, 0x39, 0xb4, 0x11, 0x90, 0xa0, 0x90, 0x26, 0xfc, 0x39, 0x00, 0x6d,\n\t0xa7, 0x30, 0x58, 0x65, 0x30, 0x81, 0x01, 0x44, 0xcb, 0x92, 0x57, 0x99, 0xdd, 0x26, 0x0b, 0xf9,\n\t0x20, 0xe5, 0x8f, 0x24, 0xb0, 0x9c, 0x90, 0xe8, 0xf0, 0xcd, 0x40, 0x11, 0xbc, 0x14, 0x2a, 0x82,\n\t0x67, 0x13, 0xcc, 0x7c, 0x95, 0xf0, 0x00, 0xcc, 0x32, 0x42, 0xa2, 0x68, 0x5d, 0x5b, 0x45, 0xec,\n\t0x65, 0xf5, 0xc4, 0x01, 0x20, 0xbf, 0xb6, 0xb7, 0x2b, 0x9f, 0x19, 0x8f, 0xaa, 0xb3, 0x01, 0x19,\n\t0x0a, 0x02, 0xcb, 0xbf, 0xce, 0x00, 0xb0, 0x49, 0x0c, 0x55, 0x1f, 0xf6, 0x88, 0x76, 0x1c, 0x9c,\n\t0xe6, 0x76, 0x80, 0xd3, 0x3c, 0x9f, 0xbc, 0x24, 0xae, 0x53, 0x89, 0xa4, 0xe6, 0x9d, 0x10, 0xa9,\n\t0x79, 0x21, 0x0d, 0xd8, 0x93, 0x59, 0xcd, 0xa7, 0x59, 0xb0, 0xe0, 0x29, 0x7b, 0xb4, 0xe6, 0x46,\n\t0x60, 0x45, 0x9f, 0x0f, 0xad, 0xe8, 0x72, 0x8c, 0xc9, 0x33, 0xe3, 0x35, 0xef, 0x83, 0x39, 0xc6,\n\t0x3a, 0xec, 0xf5, 0xe3, 0x9c, 0x66, 0x66, 0x6a, 0x4e, 0xe3, 0x56, 0xa2, 0xad, 0x00, 0x12, 0x0a,\n\t0x21, 0x27, 0x70, 0xa8, 0x93, 0x5f, 0x47, 0x0e, 0xf5, 0x67, 0x09, 0xcc, 0x79, 0xcb, 0x74, 0x0c,\n\t0x24, 0xea, 0x56, 0x90, 0x44, 0x9d, 0x4f, 0x11, 0x9c, 0x09, 0x2c, 0xea, 0xd3, 0x9c, 0xdf, 0x75,\n\t0x4e, 0xa3, 0x56, 0xd9, 0x11, 0xcc, 0x50, 0x95, 0x36, 0xb6, 0x44, 0xbd, 0x3d, 0x65, 0x1f, 0xbf,\n\t0xec, 0x36, 0xe4, 0x4a, 0x03, 0x84, 0x2b, 0xf3, 0x6c, 0x09, 0x57, 0xf6, 0xe9, 0x10, 0xae, 0x1f,\n\t0x83, 0x82, 0xe5, 0x50, 0xad, 0x1c, 0x87, 0xbc, 0x94, 0x2a, 0xb1, 0x05, 0xcb, 0x72, 0xa1, 0x5d,\n\t0x7e, 0xe5, 0xc2, 0xc5, 0x31, 0xab, 0xfc, 0x97, 0xc9, 0xac, 0x58, 0xa0, 0x1b, 0xb8, 0x6f, 0x91,\n\t0x0e, 0x4f, 0xaa, 0x82, 0x17, 0xe8, 0x4d, 0xde, 0x8a, 0x84, 0x14, 0xee, 0x81, 0x65, 0xc3, 0xd4,\n\t0xbb, 0x26, 0xb1, 0xac, 0x4d, 0x82, 0x3b, 0xaa, 0xa2, 0x11, 0x67, 0x00, 0x76, 0x4d, 0x3c, 0x3b,\n\t0x1e, 0x55, 0x97, 0x9b, 0xf1, 0x2a, 0x28, 0xc9, 0x56, 0xfe, 0x5b, 0x0e, 0x9c, 0x0e, 0xef, 0x8d,\n\t0x09, 0x34, 0x45, 0x3a, 0x12, 0x4d, 0xb9, 0xec, 0x8b, 0x53, 0x9b, 0xc3, 0xf9, 0xae, 0x0a, 0x22,\n\t0xb1, 0xba, 0x0e, 0xe6, 0x05, 0x2d, 0x71, 0x84, 0x82, 0xa8, 0xb9, 0xcb, 0xb3, 0x17, 0x14, 0xa3,\n\t0xb0, 0x3e, 0xbc, 0x01, 0x66, 0x4d, 0xce, 0xbc, 0x1c, 0x00, 0x9b, 0xbd, 0x7c, 0x47, 0x00, 0xcc,\n\t0x22, 0xbf, 0x10, 0x05, 0x75, 0x19, 0x73, 0xf1, 0x08, 0x89, 0x03, 0x90, 0x0b, 0x32, 0x97, 0xf5,\n\t0xb0, 0x02, 0x8a, 0xda, 0xc0, 0x6d, 0xb0, 0xd0, 0xd7, 0xa2, 0x50, 0x76, 0xac, 0x9d, 0x15, 0x50,\n\t0x0b, 0x7b, 0x51, 0x15, 0x14, 0x67, 0x07, 0xef, 0x05, 0xc8, 0xcc, 0x0c, 0xdf, 0x4f, 0x2e, 0xa7,\n\t0xc8, 0x89, 0xd4, 0x6c, 0x26, 0x86, 0x6a, 0x15, 0xd2, 0x52, 0x2d, 0xf9, 0x43, 0x09, 0xc0, 0x68,\n\t0x1e, 0x4e, 0xbc, 0x09, 0x88, 0x58, 0xf8, 0x2a, 0xa6, 0x12, 0xcf, 0x7f, 0xae, 0xa6, 0xe4, 0x3f,\n\t0xde, 0x86, 0x9a, 0x8e, 0x00, 0x89, 0x89, 0x3e, 0x9e, 0x4b, 0x9d, 0xb4, 0x04, 0xc8, 0x73, 0xea,\n\t0x29, 0x10, 0x20, 0x1f, 0xd8, 0x93, 0x09, 0xd0, 0xbf, 0x32, 0x60, 0xc1, 0x53, 0x4e, 0x4d, 0x80,\n\t0x62, 0x4c, 0xbe, 0xbd, 0xd8, 0x49, 0x47, 0x4a, 0xbc, 0xa9, 0xfb, 0x2a, 0x91, 0x12, 0xcf, 0xab,\n\t0x04, 0x52, 0xf2, 0x87, 0x8c, 0xdf, 0xf5, 0x29, 0x49, 0xc9, 0x53, 0xb8, 0xe1, 0xf8, 0xda, 0xf1,\n\t0x1a, 0xf9, 0xe3, 0x2c, 0x38, 0x1d, 0xce, 0xc3, 0x40, 0x81, 0x94, 0x26, 0x16, 0xc8, 0x26, 0x58,\n\t0xbc, 0xdf, 0x57, 0xd5, 0x21, 0x1f, 0x83, 0xaf, 0x4a, 0xda, 0xa5, 0xf5, 0xbb, 0xc2, 0x72, 0xf1,\n\t0x47, 0x31, 0x3a, 0x28, 0xd6, 0x32, 0x5a, 0x2f, 0x73, 0x5f, 0xb4, 0x5e, 0xe6, 0x8f, 0x50, 0x2f,\n\t0xe3, 0x29, 0x47, 0xf6, 0x48, 0x94, 0x63, 0xba, 0x62, 0x19, 0xb3, 0x71, 0x4d, 0x3c, 0xfa, 0x8f,\n\t0x25, 0xb0, 0x14, 0x7f, 0xe0, 0x86, 0x2a, 0x98, 0xeb, 0xe1, 0x07, 0xfe, 0x8b, 0x8f, 0x49, 0x45,\n\t0xa4, 0x4f, 0x15, 0xb5, 0x66, 0x3f, 0x19, 0xd5, 0x6e, 0x6b, 0x74, 0xd7, 0x6c, 0x51, 0x53, 0xd1,\n\t0xba, 0x76, 0xe5, 0xdd, 0x0e, 0x60, 0xa1, 0x10, 0x36, 0x7c, 0x0f, 0x14, 0x7a, 0xf8, 0x41, 0xab,\n\t0x6f, 0x76, 0xe3, 0x2a, 0x64, 0xba, 0x7e, 0x78, 0x02, 0x6c, 0x0b, 0x14, 0xe4, 0xe2, 0xc9, 0x9f,\n\t0x4b, 0x60, 0x39, 0xa1, 0xaa, 0x7e, 0x83, 0x46, 0xf9, 0x57, 0x09, 0x9c, 0x0b, 0x8c, 0x92, 0xa5,\n\t0x25, 0xb9, 0xdf, 0x57, 0x79, 0x86, 0x0a, 0x26, 0x73, 0x09, 0x14, 0x0d, 0x6c, 0x52, 0xc5, 0xe5,\n\t0xc1, 0xf9, 0xc6, 0xec, 0x78, 0x54, 0x2d, 0x36, 0x9d, 0x46, 0xe4, 0xc9, 0x63, 0xe6, 0x26, 0xf3,\n\t0xec, 0xe6, 0x46, 0xfe, 0x9f, 0x04, 0xf2, 0xad, 0x36, 0x56, 0xc9, 0x31, 0x10, 0x97, 0xcd, 0x00,\n\t0x71, 0x49, 0x7e, 0x14, 0xe0, 0xfe, 0x24, 0x72, 0x96, 0xad, 0x10, 0x67, 0xb9, 0x30, 0x01, 0xe7,\n\t0xc9, 0x74, 0xe5, 0x75, 0x50, 0x74, 0xbb, 0x9b, 0x6e, 0x2f, 0x95, 0x7f, 0x9f, 0x01, 0x25, 0x5f,\n\t0x17, 0x53, 0xee, 0xc4, 0xf7, 0x02, 0xe5, 0x87, 0xed, 0x31, 0x6b, 0x69, 0x06, 0x52, 0x73, 0x4a,\n\t0xcd, 0x5b, 0x1a, 0x35, 0xfd, 0x67, 0xd5, 0x68, 0x05, 0x7a, 0x03, 0xcc, 0x51, 0x6c, 0x76, 0x09,\n\t0x75, 0x64, 0x7c, 0xc2, 0x8a, 0xde, 0xdd, 0xcd, 0x9d, 0x80, 0x14, 0x85, 0xb4, 0x57, 0x6e, 0x80,\n\t0xd9, 0x40, 0x67, 0xf0, 0x34, 0xc8, 0x1e, 0x92, 0xa1, 0xcd, 0xe0, 0x10, 0xfb, 0x09, 0x17, 0x41,\n\t0x7e, 0x80, 0xd5, 0xbe, 0x1d, 0xa2, 0x45, 0x64, 0x7f, 0x5c, 0xcf, 0xbc, 0x26, 0xc9, 0xbf, 0x61,\n\t0x93, 0xe3, 0xa5, 0xc2, 0x31, 0x44, 0xd7, 0xdb, 0x81, 0xe8, 0x4a, 0x7e, 0x9f, 0xf4, 0x27, 0x68,\n\t0x52, 0x8c, 0xa1, 0x50, 0x8c, 0xbd, 0x98, 0x0a, 0xed, 0xc9, 0x91, 0xf6, 0xef, 0x0c, 0x58, 0xf4,\n\t0x69, 0x7b, 0xcc, 0xf8, 0xfb, 0x01, 0x66, 0xbc, 0x1a, 0x62, 0xc6, 0xe5, 0x38, 0x9b, 0x6f, 0xa9,\n\t0xf1, 0x64, 0x6a, 0xfc, 0x17, 0x09, 0xcc, 0xfb, 0xe6, 0xee, 0x18, 0xb8, 0xf1, 0xed, 0x20, 0x37,\n\t0xbe, 0x90, 0x26, 0x68, 0x12, 0xc8, 0xf1, 0x75, 0xb0, 0xe0, 0x53, 0xda, 0x35, 0x3b, 0x8a, 0x86,\n\t0x55, 0x0b, 0x9e, 0x07, 0x79, 0x8b, 0x62, 0x93, 0x3a, 0x45, 0xc4, 0xb1, 0x6d, 0xb1, 0x46, 0x64,\n\t0xcb, 0xe4, 0xff, 0x48, 0xa0, 0xee, 0x33, 0x6e, 0x12, 0xd3, 0x52, 0x2c, 0x4a, 0x34, 0x7a, 0x57,\n\t0x57, 0xfb, 0x3d, 0xb2, 0xa1, 0x62, 0xa5, 0x87, 0x08, 0x6b, 0x50, 0x74, 0xad, 0xa9, 0xab, 0x4a,\n\t0x7b, 0x08, 0x31, 0x28, 0x7d, 0x70, 0x40, 0xb4, 0x4d, 0xa2, 0x12, 0x2a, 0x5e, 0xe0, 0x8a, 0x8d,\n\t0x37, 0x9d, 0x07, 0xa9, 0x77, 0x3d, 0xd1, 0xe3, 0x51, 0x75, 0x35, 0x0d, 0x22, 0x8f, 0x50, 0x3f,\n\t0x26, 0xfc, 0x19, 0x00, 0xec, 0x93, 0xef, 0x65, 0x1d, 0x11, 0xac, 0x6f, 0x38, 0x19, 0xfd, 0xae,\n\t0x2b, 0x99, 0xaa, 0x03, 0x1f, 0xa2, 0xfc, 0xc7, 0x42, 0x60, 0xbd, 0xbf, 0xf1, 0xb7, 0x9c, 0xbf,\n\t0x00, 0x8b, 0x03, 0x6f, 0x76, 0x1c, 0x05, 0xc6, 0xbf, 0xb3, 0xe1, 0x93, 0xbc, 0x0b, 0x1f, 0x37,\n\t0xaf, 0x1e, 0xeb, 0xbf, 0x1b, 0x03, 0x87, 0x62, 0x3b, 0x81, 0xaf, 0x80, 0x12, 0xe3, 0xcd, 0x4a,\n\t0x9b, 0xec, 0xe0, 0x9e, 0x93, 0x8b, 0xee, 0x03, 0x66, 0xcb, 0x13, 0x21, 0xbf, 0x1e, 0x3c, 0x00,\n\t0x0b, 0x86, 0xde, 0xd9, 0xc6, 0x1a, 0xee, 0x12, 0x46, 0x04, 0xed, 0xa5, 0xe4, 0x57, 0x9f, 0xc5,\n\t0xc6, 0xab, 0xce, 0xb5, 0x56, 0x33, 0xaa, 0xf2, 0x78, 0x54, 0x5d, 0x8e, 0x69, 0xe6, 0x41, 0x10,\n\t0x07, 0x09, 0xcd, 0xc8, 0xa3, 0xbb, 0xfd, 0xe8, 0xb0, 0x96, 0x26, 0x29, 0x8f, 0xf8, 0xec, 0x9e,\n\t0x74, 0xb3, 0x5b, 0x38, 0xd2, 0xcd, 0x6e, 0xcc, 0x11, 0xb7, 0x38, 0xe5, 0x11, 0xf7, 0x63, 0x09,\n\t0x5c, 0x30, 0x52, 0xe4, 0x52, 0x19, 0xf0, 0xb9, 0xb9, 0x95, 0x66, 0x6e, 0xd2, 0xe4, 0x66, 0x63,\n\t0x75, 0x3c, 0xaa, 0x5e, 0x48, 0xa3, 0x89, 0x52, 0xf9, 0x07, 0xef, 0x82, 0x82, 0x2e, 0xf6, 0xc0,\n\t0x72, 0x89, 0xfb, 0x7a, 0x39, 0x8d, 0xaf, 0xce, 0xbe, 0x69, 0xa7, 0xa5, 0xf3, 0x85, 0x5c, 0x2c,\n\t0xf9, 0xc3, 0x3c, 0x38, 0x13, 0xa9, 0xe0, 0x5f, 0xe2, 0xfd, 0x75, 0xe4, 0x30, 0x9d, 0x9d, 0xe2,\n\t0x30, 0xbd, 0x0e, 0xe6, 0xc5, 0x5f, 0x22, 0x42, 0x67, 0x71, 0x37, 0x60, 0x36, 0x82, 0x62, 0x14,\n\t0xd6, 0x8f, 0xbb, 0x3f, 0xcf, 0x4f, 0x79, 0x7f, 0xee, 0xf7, 0x42, 0xfc, 0xc5, 0xcf, 0x4e, 0xef,\n\t0xa8, 0x17, 0xe2, 0x9f, 0x7e, 0x61, 0x7d, 0x46, 0x5c, 0x6d, 0x54, 0x17, 0xe1, 0x64, 0x90, 0xb8,\n\t0xee, 0x05, 0xa4, 0x28, 0xa4, 0xfd, 0x85, 0x9e, 0xfd, 0x71, 0xcc, 0xb3, 0xff, 0x95, 0x34, 0xb1,\n\t0x96, 0xfe, 0xaa, 0x3c, 0xf6, 0xd2, 0xa3, 0x34, 0xfd, 0xa5, 0x87, 0xfc, 0x77, 0x09, 0x3c, 0x97,\n\t0xb8, 0x6b, 0xc1, 0xf5, 0x00, 0xad, 0xbc, 0x12, 0xa2, 0x95, 0xdf, 0x4b, 0x34, 0xf4, 0x71, 0x4b,\n\t0x33, 0xfe, 0x16, 0xfd, 0xf5, 0x74, 0xb7, 0xe8, 0x31, 0x27, 0xe1, 0xc9, 0xd7, 0xe9, 0x8d, 0x1f,\n\t0x3c, 0x7c, 0x54, 0x39, 0xf1, 0xc9, 0xa3, 0xca, 0x89, 0xcf, 0x1e, 0x55, 0x4e, 0xfc, 0x72, 0x5c,\n\t0x91, 0x1e, 0x8e, 0x2b, 0xd2, 0x27, 0xe3, 0x8a, 0xf4, 0xd9, 0xb8, 0x22, 0xfd, 0x63, 0x5c, 0x91,\n\t0x7e, 0xfb, 0x79, 0xe5, 0xc4, 0x7b, 0xcb, 0x09, 0x7f, 0x3a, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff,\n\t0xff, 0xd1, 0xcb, 0x7d, 0xc7, 0xa7, 0x2c, 0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1beta2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1beta2\";\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Data is the serialized representation of the state.\n  optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // Revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // Total number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // It must match the pod template's labels.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  // +optional\n  optional int32 partition = 1;\n\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // WhenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // WhenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n  // the StatefulSet VolumeClaimTemplates. This requires the\n  // StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\n  // +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested. Using\n  // the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n  // enabled, which is beta.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated StatefulSetCondition conditions = 10;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  // Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  // +optional\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&Scale{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&DaemonSet{},\n\t\t&DaemonSetList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tDeprecatedRollbackTo           = \"deprecated.deployment.rollback.to\"\n\tDeprecatedTemplateGeneration   = \"deprecated.daemonset.template.generation\"\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n)\n\n// ScaleSpec describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v1,Scale\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSet\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\t// Default is RollingUpdate.\n\t// +optional\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\t// +optional\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\t// +optional\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// RetentionPersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tRetentionPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// WhenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// WhenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n\t// the StatefulSet VolumeClaimTemplates. This requires the\n\t// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\n\t// +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested. Using\n\t// the ordinals field requires the StatefulSetStartOrdinal feature gate to be\n\t// enabled, which is beta.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSetList\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\tItems           []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// It must match the pod template's labels.\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// Total number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSet\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSetList\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSet\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSetList\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevision\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// Revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevisionList\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"Data is the serialized representation of the state.\",\n\t\"revision\": \"Revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"Total number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n\t\"paused\":                  \"Indicates that the deployment is paused.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource\",\n\t\"replicas\": \"desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\":       \"actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":       \"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"spec\":   \"Spec defines the desired identities of pods in this set.\",\n\t\"status\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\": \"StatefulSetList is a collection of StatefulSets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\". The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested. Using the ordinals field requires the StatefulSetStartOrdinal feature gate to be enabled, which is beta.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"Represents the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevision\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevisionList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Scale) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v1\", Kind: \"Scale\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n\npackage v1 // import \"k8s.io/api/authentication/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *BoundObjectReference) Reset()      { *m = BoundObjectReference{} }\nfunc (*BoundObjectReference) ProtoMessage() {}\nfunc (*BoundObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{0}\n}\nfunc (m *BoundObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *BoundObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *BoundObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_BoundObjectReference.Merge(m, src)\n}\nfunc (m *BoundObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *BoundObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_BoundObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_BoundObjectReference proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{1}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{2}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *TokenRequestSpec) Reset()      { *m = TokenRequestSpec{} }\nfunc (*TokenRequestSpec) ProtoMessage() {}\nfunc (*TokenRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{3}\n}\nfunc (m *TokenRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequestSpec.Merge(m, src)\n}\nfunc (m *TokenRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequestSpec proto.InternalMessageInfo\n\nfunc (m *TokenRequestStatus) Reset()      { *m = TokenRequestStatus{} }\nfunc (*TokenRequestStatus) ProtoMessage() {}\nfunc (*TokenRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{4}\n}\nfunc (m *TokenRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequestStatus.Merge(m, src)\n}\nfunc (m *TokenRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequestStatus proto.InternalMessageInfo\n\nfunc (m *TokenReview) Reset()      { *m = TokenReview{} }\nfunc (*TokenReview) ProtoMessage() {}\nfunc (*TokenReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{5}\n}\nfunc (m *TokenReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReview.Merge(m, src)\n}\nfunc (m *TokenReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReview proto.InternalMessageInfo\n\nfunc (m *TokenReviewSpec) Reset()      { *m = TokenReviewSpec{} }\nfunc (*TokenReviewSpec) ProtoMessage() {}\nfunc (*TokenReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{6}\n}\nfunc (m *TokenReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewSpec.Merge(m, src)\n}\nfunc (m *TokenReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewSpec proto.InternalMessageInfo\n\nfunc (m *TokenReviewStatus) Reset()      { *m = TokenReviewStatus{} }\nfunc (*TokenReviewStatus) ProtoMessage() {}\nfunc (*TokenReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{7}\n}\nfunc (m *TokenReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewStatus.Merge(m, src)\n}\nfunc (m *TokenReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewStatus proto.InternalMessageInfo\n\nfunc (m *UserInfo) Reset()      { *m = UserInfo{} }\nfunc (*UserInfo) ProtoMessage() {}\nfunc (*UserInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2953ea822e7ffe1e, []int{8}\n}\nfunc (m *UserInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserInfo.Merge(m, src)\n}\nfunc (m *UserInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserInfo proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*BoundObjectReference)(nil), \"k8s.io.api.authentication.v1.BoundObjectReference\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authentication.v1.ExtraValue\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.authentication.v1.TokenRequest\")\n\tproto.RegisterType((*TokenRequestSpec)(nil), \"k8s.io.api.authentication.v1.TokenRequestSpec\")\n\tproto.RegisterType((*TokenRequestStatus)(nil), \"k8s.io.api.authentication.v1.TokenRequestStatus\")\n\tproto.RegisterType((*TokenReview)(nil), \"k8s.io.api.authentication.v1.TokenReview\")\n\tproto.RegisterType((*TokenReviewSpec)(nil), \"k8s.io.api.authentication.v1.TokenReviewSpec\")\n\tproto.RegisterType((*TokenReviewStatus)(nil), \"k8s.io.api.authentication.v1.TokenReviewStatus\")\n\tproto.RegisterType((*UserInfo)(nil), \"k8s.io.api.authentication.v1.UserInfo\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authentication.v1.UserInfo.ExtraEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1/generated.proto\", fileDescriptor_2953ea822e7ffe1e)\n}\n\nvar fileDescriptor_2953ea822e7ffe1e = []byte{\n\t// 907 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0xe3, 0x44,\n\t0x14, 0x8e, 0xf3, 0xa3, 0x4a, 0x26, 0xdb, 0xd2, 0xce, 0xb2, 0x52, 0x54, 0x96, 0xa4, 0x78, 0x25,\n\t0x54, 0x01, 0x6b, 0x6f, 0x23, 0x04, 0xab, 0x45, 0x42, 0xaa, 0x69, 0x04, 0x11, 0x82, 0x5d, 0xcd,\n\t0x6e, 0x0b, 0xe2, 0xc4, 0xc4, 0x7e, 0x4d, 0x87, 0xe0, 0xb1, 0xb1, 0xc7, 0x61, 0x73, 0xdb, 0x3f,\n\t0x81, 0x23, 0x48, 0x1c, 0xf8, 0x23, 0x90, 0xf8, 0x17, 0x7a, 0x5c, 0x71, 0xea, 0x01, 0x45, 0xd4,\n\t0x5c, 0x39, 0x72, 0xe2, 0x84, 0x66, 0x3c, 0xad, 0xe3, 0xa4, 0x4d, 0x73, 0xe2, 0x96, 0x79, 0xef,\n\t0x7b, 0xdf, 0xbc, 0xf7, 0xcd, 0xe7, 0x99, 0xa0, 0xde, 0xe8, 0x61, 0x6c, 0xb1, 0xc0, 0x1e, 0x25,\n\t0x03, 0x88, 0x38, 0x08, 0x88, 0xed, 0x31, 0x70, 0x2f, 0x88, 0x6c, 0x9d, 0xa0, 0x21, 0xb3, 0x69,\n\t0x22, 0x4e, 0x80, 0x0b, 0xe6, 0x52, 0xc1, 0x02, 0x6e, 0x8f, 0xf7, 0xec, 0x21, 0x70, 0x88, 0xa8,\n\t0x00, 0xcf, 0x0a, 0xa3, 0x40, 0x04, 0xf8, 0x6e, 0x86, 0xb6, 0x68, 0xc8, 0xac, 0x22, 0xda, 0x1a,\n\t0xef, 0x6d, 0xdf, 0x1f, 0x32, 0x71, 0x92, 0x0c, 0x2c, 0x37, 0xf0, 0xed, 0x61, 0x30, 0x0c, 0x6c,\n\t0x55, 0x34, 0x48, 0x8e, 0xd5, 0x4a, 0x2d, 0xd4, 0xaf, 0x8c, 0x6c, 0xfb, 0xdd, 0x7c, 0x6b, 0x9f,\n\t0xba, 0x27, 0x8c, 0x43, 0x34, 0xb1, 0xc3, 0xd1, 0x50, 0x06, 0x62, 0xdb, 0x07, 0x41, 0xaf, 0x68,\n\t0x61, 0xdb, 0xbe, 0xae, 0x2a, 0x4a, 0xb8, 0x60, 0x3e, 0x2c, 0x14, 0xbc, 0x77, 0x53, 0x41, 0xec,\n\t0x9e, 0x80, 0x4f, 0xe7, 0xeb, 0xcc, 0xdf, 0x0d, 0xf4, 0xaa, 0x13, 0x24, 0xdc, 0x7b, 0x3c, 0xf8,\n\t0x06, 0x5c, 0x41, 0xe0, 0x18, 0x22, 0xe0, 0x2e, 0xe0, 0x1d, 0x54, 0x1d, 0x31, 0xee, 0xb5, 0x8c,\n\t0x1d, 0x63, 0xb7, 0xe1, 0xdc, 0x3a, 0x9d, 0x76, 0x4a, 0xe9, 0xb4, 0x53, 0xfd, 0x94, 0x71, 0x8f,\n\t0xa8, 0x0c, 0xee, 0x22, 0x44, 0x43, 0x76, 0x04, 0x51, 0xcc, 0x02, 0xde, 0x2a, 0x2b, 0x1c, 0xd6,\n\t0x38, 0xb4, 0xff, 0xa4, 0xaf, 0x33, 0x64, 0x06, 0x25, 0x59, 0x39, 0xf5, 0xa1, 0x55, 0x29, 0xb2,\n\t0x7e, 0x4e, 0x7d, 0x20, 0x2a, 0x83, 0x1d, 0x54, 0x49, 0xfa, 0x07, 0xad, 0xaa, 0x02, 0x3c, 0xd0,\n\t0x80, 0xca, 0x61, 0xff, 0xe0, 0xdf, 0x69, 0xe7, 0x8d, 0xeb, 0x86, 0x14, 0x93, 0x10, 0x62, 0xeb,\n\t0xb0, 0x7f, 0x40, 0x64, 0xb1, 0xf9, 0x3e, 0x42, 0xbd, 0xe7, 0x22, 0xa2, 0x47, 0xf4, 0xdb, 0x04,\n\t0x70, 0x07, 0xd5, 0x98, 0x00, 0x3f, 0x6e, 0x19, 0x3b, 0x95, 0xdd, 0x86, 0xd3, 0x48, 0xa7, 0x9d,\n\t0x5a, 0x5f, 0x06, 0x48, 0x16, 0x7f, 0x54, 0xff, 0xf1, 0x97, 0x4e, 0xe9, 0xc5, 0x1f, 0x3b, 0x25,\n\t0xf3, 0xe7, 0x32, 0xba, 0xf5, 0x2c, 0x18, 0x01, 0x27, 0xf0, 0x5d, 0x02, 0xb1, 0xc0, 0x5f, 0xa3,\n\t0xba, 0x3c, 0x22, 0x8f, 0x0a, 0xaa, 0x94, 0x68, 0x76, 0x1f, 0x58, 0xb9, 0x3b, 0x2e, 0x9b, 0xb0,\n\t0xc2, 0xd1, 0x50, 0x06, 0x62, 0x4b, 0xa2, 0xad, 0xf1, 0x9e, 0x95, 0xc9, 0xf9, 0x19, 0x08, 0x9a,\n\t0x6b, 0x92, 0xc7, 0xc8, 0x25, 0x2b, 0x7e, 0x82, 0xaa, 0x71, 0x08, 0xae, 0xd2, 0xaf, 0xd9, 0xb5,\n\t0xac, 0x65, 0xde, 0xb3, 0x66, 0x7b, 0x7b, 0x1a, 0x82, 0x9b, 0x2b, 0x28, 0x57, 0x44, 0x31, 0xe1,\n\t0x2f, 0xd1, 0x5a, 0x2c, 0xa8, 0x48, 0x62, 0xa5, 0x72, 0xb1, 0xe3, 0x9b, 0x38, 0x55, 0x9d, 0xb3,\n\t0xa1, 0x59, 0xd7, 0xb2, 0x35, 0xd1, 0x7c, 0xe6, 0x3f, 0x06, 0xda, 0x9c, 0x6f, 0x01, 0xbf, 0x8d,\n\t0x1a, 0x34, 0xf1, 0x98, 0x34, 0xcd, 0x85, 0xc4, 0xeb, 0xe9, 0xb4, 0xd3, 0xd8, 0xbf, 0x08, 0x92,\n\t0x3c, 0x8f, 0x3f, 0x42, 0x5b, 0xf0, 0x3c, 0x64, 0x91, 0xda, 0xfd, 0x29, 0xb8, 0x01, 0xf7, 0x62,\n\t0x75, 0xd6, 0x15, 0xe7, 0x4e, 0x3a, 0xed, 0x6c, 0xf5, 0xe6, 0x93, 0x64, 0x11, 0x8f, 0x39, 0xda,\n\t0x18, 0x14, 0x2c, 0xab, 0x07, 0xed, 0x2e, 0x1f, 0xf4, 0x2a, 0x9b, 0x3b, 0x38, 0x9d, 0x76, 0x36,\n\t0x8a, 0x19, 0x32, 0xc7, 0x6e, 0xfe, 0x6a, 0x20, 0xbc, 0xa8, 0x12, 0xbe, 0x87, 0x6a, 0x42, 0x46,\n\t0xf5, 0x27, 0xb2, 0xae, 0x45, 0xab, 0x65, 0xd0, 0x2c, 0x87, 0x27, 0xe8, 0x76, 0x3e, 0xc0, 0x33,\n\t0xe6, 0x43, 0x2c, 0xa8, 0x1f, 0xea, 0xd3, 0x7e, 0x6b, 0x35, 0x2f, 0xc9, 0x32, 0xe7, 0x35, 0x4d,\n\t0x7f, 0xbb, 0xb7, 0x48, 0x47, 0xae, 0xda, 0xc3, 0xfc, 0xa9, 0x8c, 0x9a, 0xba, 0xed, 0x31, 0x83,\n\t0xef, 0xff, 0x07, 0x2f, 0x3f, 0x2e, 0x78, 0xf9, 0xfe, 0x4a, 0xbe, 0x93, 0xad, 0x5d, 0x6b, 0xe5,\n\t0x2f, 0xe6, 0xac, 0x6c, 0xaf, 0x4e, 0xb9, 0xdc, 0xc9, 0x2e, 0x7a, 0x65, 0x6e, 0xff, 0xd5, 0x8e,\n\t0xb3, 0x60, 0xf6, 0xf2, 0x72, 0xb3, 0x9b, 0x7f, 0x1b, 0x68, 0x6b, 0xa1, 0x25, 0xfc, 0x01, 0x5a,\n\t0x9f, 0xe9, 0x1c, 0xb2, 0x1b, 0xb6, 0xee, 0xdc, 0xd1, 0xfb, 0xad, 0xef, 0xcf, 0x26, 0x49, 0x11,\n\t0x8b, 0x3f, 0x41, 0xd5, 0x24, 0x86, 0x48, 0x2b, 0xfc, 0xe6, 0x72, 0x39, 0x0e, 0x63, 0x88, 0xfa,\n\t0xfc, 0x38, 0xc8, 0xa5, 0x95, 0x11, 0xa2, 0x18, 0x8a, 0x93, 0x54, 0x6f, 0xf8, 0x6c, 0xef, 0xa1,\n\t0x1a, 0x44, 0x51, 0x10, 0xe9, 0x7b, 0xfb, 0x52, 0x9b, 0x9e, 0x0c, 0x92, 0x2c, 0x67, 0xfe, 0x56,\n\t0x46, 0xf5, 0x8b, 0x2d, 0xf1, 0x3b, 0xa8, 0x2e, 0xb7, 0x51, 0x97, 0x7d, 0x26, 0xe8, 0xa6, 0x2e,\n\t0x52, 0x18, 0x19, 0x27, 0x97, 0x08, 0xfc, 0x3a, 0xaa, 0x24, 0xcc, 0xd3, 0x6f, 0x48, 0x73, 0xe6,\n\t0xd2, 0x27, 0x32, 0x8e, 0x4d, 0xb4, 0x36, 0x8c, 0x82, 0x24, 0x94, 0x36, 0x90, 0x8d, 0x22, 0x79,\n\t0xa2, 0x1f, 0xab, 0x08, 0xd1, 0x19, 0x7c, 0x84, 0x6a, 0x20, 0xef, 0x7c, 0x35, 0x4b, 0xb3, 0xbb,\n\t0xb7, 0x9a, 0x34, 0x96, 0x7a, 0x27, 0x7a, 0x5c, 0x44, 0x93, 0x99, 0xa9, 0x64, 0x8c, 0x64, 0x74,\n\t0xdb, 0x03, 0xfd, 0x96, 0x28, 0x0c, 0xde, 0x44, 0x95, 0x11, 0x4c, 0xb2, 0x89, 0x88, 0xfc, 0x89,\n\t0x3f, 0x44, 0xb5, 0xb1, 0x7c, 0x66, 0xf4, 0x91, 0xec, 0x2e, 0xdf, 0x37, 0x7f, 0x96, 0x48, 0x56,\n\t0xf6, 0xa8, 0xfc, 0xd0, 0x70, 0x9c, 0xd3, 0xf3, 0x76, 0xe9, 0xe5, 0x79, 0xbb, 0x74, 0x76, 0xde,\n\t0x2e, 0xbd, 0x48, 0xdb, 0xc6, 0x69, 0xda, 0x36, 0x5e, 0xa6, 0x6d, 0xe3, 0x2c, 0x6d, 0x1b, 0x7f,\n\t0xa6, 0x6d, 0xe3, 0x87, 0xbf, 0xda, 0xa5, 0xaf, 0xee, 0x2e, 0xfb, 0x13, 0xf3, 0x5f, 0x00, 0x00,\n\t0x00, 0xff, 0xff, 0x12, 0xb8, 0x31, 0x91, 0xfc, 0x08, 0x00, 0x00,\n}\n\nfunc (m *BoundObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BoundObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *BoundObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.BoundObjectRef != nil {\n\t\t{\n\t\t\tsize, err := m.BoundObjectRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.ExpirationTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Authenticated {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *BoundObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.BoundObjectRef != nil {\n\t\tl = m.BoundObjectRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ExpirationTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = m.User.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UserInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *BoundObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BoundObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenRequestSpec\", \"TokenRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenRequestStatus\", \"TokenRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequestSpec{`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`BoundObjectRef:` + strings.Replace(this.BoundObjectRef.String(), \"BoundObjectReference\", \"BoundObjectReference\", 1) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequestStatus{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`ExpirationTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ExpirationTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenReviewSpec\", \"TokenReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenReviewStatus\", \"TokenReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewSpec{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewStatus{`,\n\t\t`Authenticated:` + fmt.Sprintf(\"%v\", this.Authenticated) + `,`,\n\t\t`User:` + strings.Replace(strings.Replace(this.User.String(), \"UserInfo\", \"UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&UserInfo{`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *BoundObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BoundObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BoundObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BoundObjectRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BoundObjectRef == nil {\n\t\t\t\tm.BoundObjectRef = &BoundObjectReference{}\n\t\t\t}\n\t\t\tif err := m.BoundObjectRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ExpirationTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Authenticated\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Authenticated = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1\";\n\n// BoundObjectReference is a reference to an object that a token is bound to.\nmessage BoundObjectReference {\n  // Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\n  // +optional\n  optional string kind = 1;\n\n  // API version of the referent.\n  // +optional\n  optional string apiVersion = 2;\n\n  // Name of the referent.\n  // +optional\n  optional string name = 3;\n\n  // UID of the referent.\n  // +optional\n  optional string uID = 4;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// TokenRequest requests a token for a given service account.\nmessage TokenRequest {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenRequestSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the token can be authenticated.\n  // +optional\n  optional TokenRequestStatus status = 3;\n}\n\n// TokenRequestSpec contains client provided parameters of a token request.\nmessage TokenRequestSpec {\n  // Audiences are the intendend audiences of the token. A recipient of a\n  // token must identify themself with an identifier in the list of\n  // audiences of the token, and otherwise should reject the token. A\n  // token issued for multiple audiences may be used to authenticate\n  // against any of the audiences listed but implies a high degree of\n  // trust between the target audiences.\n  repeated string audiences = 1;\n\n  // ExpirationSeconds is the requested duration of validity of the request. The\n  // token issuer may return a token with a different validity duration so a\n  // client needs to check the 'expiration' field in a response.\n  // +optional\n  optional int64 expirationSeconds = 4;\n\n  // BoundObjectRef is a reference to an object that the token will be bound to.\n  // The token will only be valid for as long as the bound object exists.\n  // NOTE: The API server's TokenReview endpoint will validate the\n  // BoundObjectRef, but other audiences may not. Keep ExpirationSeconds\n  // small if you want prompt revocation.\n  // +optional\n  optional BoundObjectReference boundObjectRef = 3;\n}\n\n// TokenRequestStatus is the result of a token request.\nmessage TokenRequestStatus {\n  // Token is the opaque bearer token.\n  optional string token = 1;\n\n  // ExpirationTimestamp is the time of expiration of the returned token.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time expirationTimestamp = 2;\n}\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\nmessage TokenReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request can be authenticated.\n  // +optional\n  optional TokenReviewStatus status = 3;\n}\n\n// TokenReviewSpec is a description of the token authentication request.\nmessage TokenReviewSpec {\n  // Token is the opaque bearer token.\n  // +optional\n  optional string token = 1;\n\n  // Audiences is a list of the identifiers that the resource server presented\n  // with the token identifies as. Audience-aware token authenticators will\n  // verify that the token was intended for at least one of the audiences in\n  // this list. If no audiences are provided, the audience will default to the\n  // audience of the Kubernetes apiserver.\n  // +optional\n  repeated string audiences = 2;\n}\n\n// TokenReviewStatus is the result of the token authentication request.\nmessage TokenReviewStatus {\n  // Authenticated indicates that the token was associated with a known user.\n  // +optional\n  optional bool authenticated = 1;\n\n  // User is the UserInfo associated with the provided token.\n  // +optional\n  optional UserInfo user = 2;\n\n  // Audiences are audience identifiers chosen by the authenticator that are\n  // compatible with both the TokenReview and token. An identifier is any\n  // identifier in the intersection of the TokenReviewSpec audiences and the\n  // token's audiences. A client of the TokenReview API that sets the\n  // spec.audiences field should validate that a compatible audience identifier\n  // is returned in the status.audiences field to ensure that the TokenReview\n  // server is audience aware. If a TokenReview returns an empty\n  // status.audience field where status.authenticated is \"true\", the token is\n  // valid against the audience of the Kubernetes API server.\n  // +optional\n  repeated string audiences = 4;\n\n  // Error indicates that the token couldn't be checked\n  // +optional\n  optional string error = 3;\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\nmessage UserInfo {\n  // The name that uniquely identifies this user among all active users.\n  // +optional\n  optional string username = 1;\n\n  // A unique value that identifies this user across time. If this user is\n  // deleted and another user by the same name is added, they will have\n  // different UIDs.\n  // +optional\n  optional string uid = 2;\n\n  // The names of groups this user is a part of.\n  // +optional\n  repeated string groups = 3;\n\n  // Any additional information provided by the authenticator.\n  // +optional\n  map<string, ExtraValue> extra = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&TokenReview{},\n\t\t&TokenRequest{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\nconst (\n\t// ImpersonateUserHeader is used to impersonate a particular user during an API server request\n\tImpersonateUserHeader = \"Impersonate-User\"\n\n\t// ImpersonateGroupHeader is used to impersonate a particular group during an API server request.\n\t// It can be repeated multiplied times for multiple groups.\n\tImpersonateGroupHeader = \"Impersonate-Group\"\n\n\t// ImpersonateUIDHeader is used to impersonate a particular UID during an API server request\n\tImpersonateUIDHeader = \"Impersonate-Uid\"\n\n\t// ImpersonateUserExtraHeaderPrefix is a prefix for any header used to impersonate an entry in the\n\t// extra map[string][]string for user.Info.  The key will be every after the prefix.\n\t// It can be repeated multiplied times for multiple map keys and the same key can be repeated multiple\n\t// times to have multiple elements in the slice under a single key\n\tImpersonateUserExtraHeaderPrefix = \"Impersonate-Extra-\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\ntype TokenReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request can be authenticated.\n\t// +optional\n\tStatus TokenReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenReviewSpec is a description of the token authentication request.\ntype TokenReviewSpec struct {\n\t// Token is the opaque bearer token.\n\t// +optional\n\tToken string `json:\"token,omitempty\" protobuf:\"bytes,1,opt,name=token\"`\n\t// Audiences is a list of the identifiers that the resource server presented\n\t// with the token identifies as. Audience-aware token authenticators will\n\t// verify that the token was intended for at least one of the audiences in\n\t// this list. If no audiences are provided, the audience will default to the\n\t// audience of the Kubernetes apiserver.\n\t// +optional\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,2,rep,name=audiences\"`\n}\n\n// TokenReviewStatus is the result of the token authentication request.\ntype TokenReviewStatus struct {\n\t// Authenticated indicates that the token was associated with a known user.\n\t// +optional\n\tAuthenticated bool `json:\"authenticated,omitempty\" protobuf:\"varint,1,opt,name=authenticated\"`\n\t// User is the UserInfo associated with the provided token.\n\t// +optional\n\tUser UserInfo `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// Audiences are audience identifiers chosen by the authenticator that are\n\t// compatible with both the TokenReview and token. An identifier is any\n\t// identifier in the intersection of the TokenReviewSpec audiences and the\n\t// token's audiences. A client of the TokenReview API that sets the\n\t// spec.audiences field should validate that a compatible audience identifier\n\t// is returned in the status.audiences field to ensure that the TokenReview\n\t// server is audience aware. If a TokenReview returns an empty\n\t// status.audience field where status.authenticated is \"true\", the token is\n\t// valid against the audience of the Kubernetes API server.\n\t// +optional\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,4,rep,name=audiences\"`\n\t// Error indicates that the token couldn't be checked\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\ntype UserInfo struct {\n\t// The name that uniquely identifies this user among all active users.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,1,opt,name=username\"`\n\t// A unique value that identifies this user across time. If this user is\n\t// deleted and another user by the same name is added, they will have\n\t// different UIDs.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,2,opt,name=uid\"`\n\t// The names of groups this user is a part of.\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,3,rep,name=groups\"`\n\t// Any additional information provided by the authenticator.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,4,rep,name=extra\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// TokenRequest requests a token for a given service account.\ntype TokenRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the token can be authenticated.\n\t// +optional\n\tStatus TokenRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenRequestSpec contains client provided parameters of a token request.\ntype TokenRequestSpec struct {\n\t// Audiences are the intendend audiences of the token. A recipient of a\n\t// token must identify themself with an identifier in the list of\n\t// audiences of the token, and otherwise should reject the token. A\n\t// token issued for multiple audiences may be used to authenticate\n\t// against any of the audiences listed but implies a high degree of\n\t// trust between the target audiences.\n\tAudiences []string `json:\"audiences\" protobuf:\"bytes,1,rep,name=audiences\"`\n\n\t// ExpirationSeconds is the requested duration of validity of the request. The\n\t// token issuer may return a token with a different validity duration so a\n\t// client needs to check the 'expiration' field in a response.\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds\" protobuf:\"varint,4,opt,name=expirationSeconds\"`\n\n\t// BoundObjectRef is a reference to an object that the token will be bound to.\n\t// The token will only be valid for as long as the bound object exists.\n\t// NOTE: The API server's TokenReview endpoint will validate the\n\t// BoundObjectRef, but other audiences may not. Keep ExpirationSeconds\n\t// small if you want prompt revocation.\n\t// +optional\n\tBoundObjectRef *BoundObjectReference `json:\"boundObjectRef\" protobuf:\"bytes,3,opt,name=boundObjectRef\"`\n}\n\n// TokenRequestStatus is the result of a token request.\ntype TokenRequestStatus struct {\n\t// Token is the opaque bearer token.\n\tToken string `json:\"token\" protobuf:\"bytes,1,opt,name=token\"`\n\t// ExpirationTimestamp is the time of expiration of the returned token.\n\tExpirationTimestamp metav1.Time `json:\"expirationTimestamp\" protobuf:\"bytes,2,opt,name=expirationTimestamp\"`\n}\n\n// BoundObjectReference is a reference to an object that a token is bound to.\ntype BoundObjectReference struct {\n\t// Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// API version of the referent.\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt,name=apiVersion\"`\n\n\t// Name of the referent.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,4,opt,name=uID,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_BoundObjectReference = map[string]string{\n\t\"\":           \"BoundObjectReference is a reference to an object that a token is bound to.\",\n\t\"kind\":       \"Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\",\n\t\"apiVersion\": \"API version of the referent.\",\n\t\"name\":       \"Name of the referent.\",\n\t\"uid\":        \"UID of the referent.\",\n}\n\nfunc (BoundObjectReference) SwaggerDoc() map[string]string {\n\treturn map_BoundObjectReference\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":         \"TokenRequest requests a token for a given service account.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the token can be authenticated.\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_TokenRequestSpec = map[string]string{\n\t\"\":                  \"TokenRequestSpec contains client provided parameters of a token request.\",\n\t\"audiences\":         \"Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.\",\n\t\"expirationSeconds\": \"ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.\",\n\t\"boundObjectRef\":    \"BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation.\",\n}\n\nfunc (TokenRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenRequestSpec\n}\n\nvar map_TokenRequestStatus = map[string]string{\n\t\"\":                    \"TokenRequestStatus is the result of a token request.\",\n\t\"token\":               \"Token is the opaque bearer token.\",\n\t\"expirationTimestamp\": \"ExpirationTimestamp is the time of expiration of the returned token.\",\n}\n\nfunc (TokenRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenRequestStatus\n}\n\nvar map_TokenReview = map[string]string{\n\t\"\":         \"TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request can be authenticated.\",\n}\n\nfunc (TokenReview) SwaggerDoc() map[string]string {\n\treturn map_TokenReview\n}\n\nvar map_TokenReviewSpec = map[string]string{\n\t\"\":          \"TokenReviewSpec is a description of the token authentication request.\",\n\t\"token\":     \"Token is the opaque bearer token.\",\n\t\"audiences\": \"Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.\",\n}\n\nfunc (TokenReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewSpec\n}\n\nvar map_TokenReviewStatus = map[string]string{\n\t\"\":              \"TokenReviewStatus is the result of the token authentication request.\",\n\t\"authenticated\": \"Authenticated indicates that the token was associated with a known user.\",\n\t\"user\":          \"User is the UserInfo associated with the provided token.\",\n\t\"audiences\":     \"Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \\\"true\\\", the token is valid against the audience of the Kubernetes API server.\",\n\t\"error\":         \"Error indicates that the token couldn't be checked\",\n}\n\nfunc (TokenReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewStatus\n}\n\nvar map_UserInfo = map[string]string{\n\t\"\":         \"UserInfo holds the information about the user needed to implement the user.Info interface.\",\n\t\"username\": \"The name that uniquely identifies this user among all active users.\",\n\t\"uid\":      \"A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.\",\n\t\"groups\":   \"The names of groups this user is a part of.\",\n\t\"extra\":    \"Any additional information provided by the authenticator.\",\n}\n\nfunc (UserInfo) SwaggerDoc() map[string]string {\n\treturn map_UserInfo\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *BoundObjectReference) DeepCopyInto(out *BoundObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BoundObjectReference.\nfunc (in *BoundObjectReference) DeepCopy() *BoundObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(BoundObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequestSpec) DeepCopyInto(out *TokenRequestSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.BoundObjectRef != nil {\n\t\tin, out := &in.BoundObjectRef, &out.BoundObjectRef\n\t\t*out = new(BoundObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequestSpec.\nfunc (in *TokenRequestSpec) DeepCopy() *TokenRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequestStatus) DeepCopyInto(out *TokenRequestStatus) {\n\t*out = *in\n\tin.ExpirationTimestamp.DeepCopyInto(&out.ExpirationTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequestStatus.\nfunc (in *TokenRequestStatus) DeepCopy() *TokenRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReview) DeepCopyInto(out *TokenReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReview.\nfunc (in *TokenReview) DeepCopy() *TokenReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewSpec.\nfunc (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) {\n\t*out = *in\n\tin.User.DeepCopyInto(&out.User)\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewStatus.\nfunc (in *TokenReviewStatus) DeepCopy() *TokenReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserInfo) DeepCopyInto(out *UserInfo) {\n\t*out = *in\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserInfo.\nfunc (in *UserInfo) DeepCopy() *UserInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1alpha1 // import \"k8s.io/api/authentication/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *SelfSubjectReview) Reset()      { *m = SelfSubjectReview{} }\nfunc (*SelfSubjectReview) ProtoMessage() {}\nfunc (*SelfSubjectReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_05a77aeb710b43c2, []int{0}\n}\nfunc (m *SelfSubjectReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReview.Merge(m, src)\n}\nfunc (m *SelfSubjectReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReviewStatus) Reset()      { *m = SelfSubjectReviewStatus{} }\nfunc (*SelfSubjectReviewStatus) ProtoMessage() {}\nfunc (*SelfSubjectReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_05a77aeb710b43c2, []int{1}\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReviewStatus.Merge(m, src)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*SelfSubjectReview)(nil), \"k8s.io.api.authentication.v1alpha1.SelfSubjectReview\")\n\tproto.RegisterType((*SelfSubjectReviewStatus)(nil), \"k8s.io.api.authentication.v1alpha1.SelfSubjectReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1alpha1/generated.proto\", fileDescriptor_05a77aeb710b43c2)\n}\n\nvar fileDescriptor_05a77aeb710b43c2 = []byte{\n\t// 384 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xbd, 0x6e, 0xdb, 0x30,\n\t0x14, 0x85, 0xc5, 0x0e, 0x86, 0xa1, 0x02, 0x45, 0xab, 0xa5, 0x86, 0x07, 0xba, 0xd0, 0x50, 0x74,\n\t0x68, 0xc9, 0xba, 0x28, 0x8a, 0x02, 0xdd, 0x34, 0x35, 0x08, 0x82, 0x00, 0x72, 0xb2, 0x64, 0x0a,\n\t0x25, 0x5f, 0x4b, 0x8c, 0x2c, 0x52, 0x10, 0x49, 0x05, 0xd9, 0xf2, 0x08, 0x79, 0x2c, 0x8f, 0x1e,\n\t0x8d, 0x0c, 0x46, 0xac, 0xbc, 0x48, 0x20, 0x59, 0xb6, 0x11, 0x3b, 0xb6, 0x37, 0xde, 0xc3, 0xfb,\n\t0x9d, 0x7b, 0xf8, 0x63, 0x9f, 0x26, 0x7f, 0x15, 0xe1, 0x92, 0x26, 0x26, 0x80, 0x5c, 0x80, 0x06,\n\t0x45, 0x0b, 0x10, 0x43, 0x99, 0xd3, 0x66, 0x83, 0x65, 0x9c, 0x32, 0xa3, 0x63, 0x10, 0x9a, 0x87,\n\t0x4c, 0x73, 0x29, 0x68, 0xd1, 0x67, 0xe3, 0x2c, 0x66, 0x7d, 0x1a, 0x81, 0x80, 0x9c, 0x69, 0x18,\n\t0x92, 0x2c, 0x97, 0x5a, 0x3a, 0xee, 0x92, 0x21, 0x2c, 0xe3, 0xe4, 0x35, 0x43, 0x56, 0x4c, 0xf7,\n\t0x47, 0xc4, 0x75, 0x6c, 0x02, 0x12, 0xca, 0x94, 0x46, 0x32, 0x92, 0xb4, 0x46, 0x03, 0x33, 0xaa,\n\t0xab, 0xba, 0xa8, 0x57, 0x4b, 0xcb, 0xee, 0xf7, 0x43, 0x31, 0xb6, 0x03, 0x74, 0x7f, 0x6f, 0xba,\n\t0x53, 0x16, 0xc6, 0x5c, 0x40, 0x7e, 0x47, 0xb3, 0x24, 0xaa, 0x04, 0x45, 0x53, 0xd0, 0xec, 0x2d,\n\t0x8a, 0xee, 0xa3, 0x72, 0x23, 0x34, 0x4f, 0x61, 0x07, 0xf8, 0x73, 0x0c, 0x50, 0x61, 0x0c, 0x29,\n\t0xdb, 0xe6, 0xdc, 0x47, 0x64, 0x7f, 0x1a, 0xc0, 0x78, 0x34, 0x30, 0xc1, 0x0d, 0x84, 0xda, 0x87,\n\t0x82, 0xc3, 0xad, 0x73, 0x6d, 0xb7, 0xab, 0x64, 0x43, 0xa6, 0x59, 0x07, 0x7d, 0x41, 0xdf, 0xde,\n\t0xff, 0xfa, 0x49, 0x36, 0x17, 0xb9, 0x1e, 0x40, 0xb2, 0x24, 0xaa, 0x04, 0x45, 0xaa, 0x6e, 0x52,\n\t0xf4, 0xc9, 0x79, 0xed, 0x72, 0x06, 0x9a, 0x79, 0xce, 0x64, 0xde, 0xb3, 0xca, 0x79, 0xcf, 0xde,\n\t0x68, 0xfe, 0xda, 0xd5, 0x09, 0xed, 0x96, 0xd2, 0x4c, 0x1b, 0xd5, 0x79, 0x57, 0xfb, 0xff, 0x23,\n\t0xc7, 0x1f, 0x8a, 0xec, 0x04, 0x1d, 0xd4, 0x16, 0xde, 0x87, 0x66, 0x54, 0x6b, 0x59, 0xfb, 0x8d,\n\t0xb5, 0x2b, 0xed, 0xcf, 0x7b, 0x10, 0xe7, 0xc2, 0x6e, 0x1b, 0x05, 0xf9, 0x89, 0x18, 0xc9, 0xe6,\n\t0x84, 0x5f, 0x0f, 0x26, 0x20, 0x97, 0x4d, 0xb7, 0xf7, 0xb1, 0x19, 0xd6, 0x5e, 0x29, 0xfe, 0xda,\n\t0xc9, 0xfb, 0x3f, 0x59, 0x60, 0x6b, 0xba, 0xc0, 0xd6, 0x6c, 0x81, 0xad, 0xfb, 0x12, 0xa3, 0x49,\n\t0x89, 0xd1, 0xb4, 0xc4, 0x68, 0x56, 0x62, 0xf4, 0x54, 0x62, 0xf4, 0xf0, 0x8c, 0xad, 0x2b, 0xf7,\n\t0xf8, 0x3f, 0x7e, 0x09, 0x00, 0x00, 0xff, 0xff, 0xec, 0xf9, 0xa3, 0xcd, 0x05, 0x03, 0x00, 0x00,\n}\n\nfunc (m *SelfSubjectReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.UserInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *SelfSubjectReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.UserInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *SelfSubjectReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SelfSubjectReviewStatus\", \"SelfSubjectReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReviewStatus{`,\n\t\t`UserInfo:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.UserInfo), \"UserInfo\", \"v11.UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *SelfSubjectReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1alpha1;\n\nimport \"k8s.io/api/authentication/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1alpha1\";\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\nmessage SelfSubjectReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Status is filled in by the server with the user attributes.\n  optional SelfSubjectReviewStatus status = 2;\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\nmessage SelfSubjectReviewStatus {\n  // User attributes of the user making this request.\n  // +optional\n  optional k8s.io.api.authentication.v1.UserInfo userInfo = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\ntype SelfSubjectReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Status is filled in by the server with the user attributes.\n\tStatus SelfSubjectReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\ntype SelfSubjectReviewStatus struct {\n\t// User attributes of the user making this request.\n\t// +optional\n\tUserInfo v1.UserInfo `json:\"userInfo,omitempty\" protobuf:\"bytes,1,opt,name=userInfo\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_SelfSubjectReview = map[string]string{\n\t\"\":         \"SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Status is filled in by the server with the user attributes.\",\n}\n\nfunc (SelfSubjectReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReview\n}\n\nvar map_SelfSubjectReviewStatus = map[string]string{\n\t\"\":         \"SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\",\n\t\"userInfo\": \"User attributes of the user making this request.\",\n}\n\nfunc (SelfSubjectReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReview) DeepCopyInto(out *SelfSubjectReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReview.\nfunc (in *SelfSubjectReview) DeepCopy() *SelfSubjectReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReviewStatus) DeepCopyInto(out *SelfSubjectReviewStatus) {\n\t*out = *in\n\tin.UserInfo.DeepCopyInto(&out.UserInfo)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReviewStatus.\nfunc (in *SelfSubjectReviewStatus) DeepCopy() *SelfSubjectReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/authentication/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReview) Reset()      { *m = SelfSubjectReview{} }\nfunc (*SelfSubjectReview) ProtoMessage() {}\nfunc (*SelfSubjectReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{1}\n}\nfunc (m *SelfSubjectReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReview.Merge(m, src)\n}\nfunc (m *SelfSubjectReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReviewStatus) Reset()      { *m = SelfSubjectReviewStatus{} }\nfunc (*SelfSubjectReviewStatus) ProtoMessage() {}\nfunc (*SelfSubjectReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{2}\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReviewStatus.Merge(m, src)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReviewStatus proto.InternalMessageInfo\n\nfunc (m *TokenReview) Reset()      { *m = TokenReview{} }\nfunc (*TokenReview) ProtoMessage() {}\nfunc (*TokenReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{3}\n}\nfunc (m *TokenReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReview.Merge(m, src)\n}\nfunc (m *TokenReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReview proto.InternalMessageInfo\n\nfunc (m *TokenReviewSpec) Reset()      { *m = TokenReviewSpec{} }\nfunc (*TokenReviewSpec) ProtoMessage() {}\nfunc (*TokenReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{4}\n}\nfunc (m *TokenReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewSpec.Merge(m, src)\n}\nfunc (m *TokenReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewSpec proto.InternalMessageInfo\n\nfunc (m *TokenReviewStatus) Reset()      { *m = TokenReviewStatus{} }\nfunc (*TokenReviewStatus) ProtoMessage() {}\nfunc (*TokenReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{5}\n}\nfunc (m *TokenReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewStatus.Merge(m, src)\n}\nfunc (m *TokenReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewStatus proto.InternalMessageInfo\n\nfunc (m *UserInfo) Reset()      { *m = UserInfo{} }\nfunc (*UserInfo) ProtoMessage() {}\nfunc (*UserInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_77c9b20d3ad27844, []int{6}\n}\nfunc (m *UserInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserInfo.Merge(m, src)\n}\nfunc (m *UserInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserInfo proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authentication.v1beta1.ExtraValue\")\n\tproto.RegisterType((*SelfSubjectReview)(nil), \"k8s.io.api.authentication.v1beta1.SelfSubjectReview\")\n\tproto.RegisterType((*SelfSubjectReviewStatus)(nil), \"k8s.io.api.authentication.v1beta1.SelfSubjectReviewStatus\")\n\tproto.RegisterType((*TokenReview)(nil), \"k8s.io.api.authentication.v1beta1.TokenReview\")\n\tproto.RegisterType((*TokenReviewSpec)(nil), \"k8s.io.api.authentication.v1beta1.TokenReviewSpec\")\n\tproto.RegisterType((*TokenReviewStatus)(nil), \"k8s.io.api.authentication.v1beta1.TokenReviewStatus\")\n\tproto.RegisterType((*UserInfo)(nil), \"k8s.io.api.authentication.v1beta1.UserInfo\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authentication.v1beta1.UserInfo.ExtraEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1beta1/generated.proto\", fileDescriptor_77c9b20d3ad27844)\n}\n\nvar fileDescriptor_77c9b20d3ad27844 = []byte{\n\t// 725 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4f, 0x4f, 0x13, 0x41,\n\t0x14, 0xef, 0xf6, 0x0f, 0x69, 0xa7, 0x56, 0x61, 0x12, 0x23, 0x69, 0xe2, 0x16, 0x6a, 0x62, 0x48,\n\t0x80, 0x59, 0x21, 0x04, 0x09, 0x9e, 0x58, 0x25, 0x04, 0x13, 0x62, 0x32, 0x05, 0x0f, 0xea, 0xc1,\n\t0xe9, 0xf6, 0xb1, 0x5d, 0x4b, 0x77, 0x37, 0xbb, 0xb3, 0x55, 0x6e, 0x7c, 0x04, 0x8f, 0x1e, 0x4d,\n\t0xfc, 0x24, 0xde, 0x38, 0x72, 0xc4, 0xc4, 0x34, 0xb2, 0x7e, 0x02, 0xbf, 0x81, 0x99, 0xd9, 0x61,\n\t0xdb, 0x82, 0x14, 0xb8, 0x78, 0xdb, 0xf9, 0xcd, 0xfb, 0xfd, 0xde, 0x7b, 0xbf, 0xf7, 0x32, 0x8b,\n\t0x5e, 0x76, 0xd6, 0x42, 0xe2, 0x78, 0x46, 0x27, 0x6a, 0x42, 0xe0, 0x02, 0x87, 0xd0, 0xe8, 0x81,\n\t0xdb, 0xf2, 0x02, 0x43, 0x5d, 0x30, 0xdf, 0x31, 0x58, 0xc4, 0xdb, 0xe0, 0x72, 0xc7, 0x62, 0xdc,\n\t0xf1, 0x5c, 0xa3, 0xb7, 0xd4, 0x04, 0xce, 0x96, 0x0c, 0x1b, 0x5c, 0x08, 0x18, 0x87, 0x16, 0xf1,\n\t0x03, 0x8f, 0x7b, 0x78, 0x36, 0xa1, 0x10, 0xe6, 0x3b, 0x64, 0x94, 0x42, 0x14, 0xa5, 0xba, 0x68,\n\t0x3b, 0xbc, 0x1d, 0x35, 0x89, 0xe5, 0x75, 0x0d, 0xdb, 0xb3, 0x3d, 0x43, 0x32, 0x9b, 0xd1, 0xbe,\n\t0x3c, 0xc9, 0x83, 0xfc, 0x4a, 0x14, 0xab, 0x0b, 0xe3, 0x8a, 0xb8, 0x98, 0xbf, 0xba, 0x32, 0x88,\n\t0xee, 0x32, 0xab, 0xed, 0xb8, 0x10, 0x1c, 0x1a, 0x7e, 0xc7, 0x16, 0x40, 0x68, 0x74, 0x81, 0xb3,\n\t0x7f, 0xb1, 0x8c, 0xab, 0x58, 0x41, 0xe4, 0x72, 0xa7, 0x0b, 0x97, 0x08, 0xab, 0xd7, 0x11, 0x42,\n\t0xab, 0x0d, 0x5d, 0x76, 0x91, 0x57, 0x7f, 0x8a, 0xd0, 0xe6, 0x27, 0x1e, 0xb0, 0xd7, 0xec, 0x20,\n\t0x02, 0x5c, 0x43, 0x05, 0x87, 0x43, 0x37, 0x9c, 0xd6, 0x66, 0x72, 0x73, 0x25, 0xb3, 0x14, 0xf7,\n\t0x6b, 0x85, 0x6d, 0x01, 0xd0, 0x04, 0x5f, 0x2f, 0x7e, 0xf9, 0x5a, 0xcb, 0x1c, 0xfd, 0x9c, 0xc9,\n\t0xd4, 0x7f, 0x68, 0x68, 0xaa, 0x01, 0x07, 0xfb, 0x8d, 0xa8, 0xf9, 0x01, 0x2c, 0x4e, 0xa1, 0xe7,\n\t0xc0, 0x47, 0xfc, 0x1e, 0x15, 0x45, 0x4b, 0x2d, 0xc6, 0xd9, 0xb4, 0x36, 0xa3, 0xcd, 0x95, 0x97,\n\t0x9f, 0x90, 0xc1, 0x00, 0xd2, 0xca, 0x88, 0xdf, 0xb1, 0x05, 0x10, 0x12, 0x11, 0x4d, 0x7a, 0x4b,\n\t0xe4, 0x95, 0x54, 0xd9, 0x01, 0xce, 0x4c, 0x7c, 0xdc, 0xaf, 0x65, 0xe2, 0x7e, 0x0d, 0x0d, 0x30,\n\t0x9a, 0xaa, 0xe2, 0x26, 0x9a, 0x08, 0x39, 0xe3, 0x51, 0x38, 0x9d, 0x95, 0xfa, 0xeb, 0xe4, 0xda,\n\t0x01, 0x93, 0x4b, 0x75, 0x36, 0xa4, 0x82, 0x79, 0x57, 0x65, 0x9a, 0x48, 0xce, 0x54, 0x29, 0xd7,\n\t0x3d, 0xf4, 0xe0, 0x0a, 0x0a, 0xde, 0x45, 0xc5, 0x28, 0x84, 0x60, 0xdb, 0xdd, 0xf7, 0x54, 0x83,\n\t0x8f, 0xc7, 0x16, 0x40, 0xf6, 0x54, 0xb4, 0x39, 0xa9, 0x92, 0x15, 0xcf, 0x11, 0x9a, 0x2a, 0xd5,\n\t0xbf, 0x65, 0x51, 0x79, 0xd7, 0xeb, 0x80, 0xfb, 0xdf, 0x6c, 0xdc, 0x45, 0xf9, 0xd0, 0x07, 0x4b,\n\t0x99, 0xb8, 0x7c, 0x03, 0x13, 0x87, 0xea, 0x6b, 0xf8, 0x60, 0x99, 0x77, 0x94, 0x7e, 0x5e, 0x9c,\n\t0xa8, 0x54, 0xc3, 0xef, 0xd2, 0xe1, 0xe4, 0xa4, 0xee, 0xca, 0x2d, 0x75, 0xc7, 0x8f, 0xc5, 0x42,\n\t0xf7, 0x2e, 0x14, 0x81, 0x1f, 0xa1, 0x02, 0x17, 0x90, 0x74, 0xa9, 0x64, 0x56, 0x14, 0xb3, 0x90,\n\t0xc4, 0x25, 0x77, 0x78, 0x1e, 0x95, 0x58, 0xd4, 0x72, 0xc0, 0xb5, 0x40, 0x6c, 0x8d, 0xd8, 0xec,\n\t0x4a, 0xdc, 0xaf, 0x95, 0x36, 0xce, 0x41, 0x3a, 0xb8, 0xaf, 0xff, 0xd1, 0xd0, 0xd4, 0xa5, 0x92,\n\t0xf0, 0x33, 0x54, 0x19, 0x2a, 0x1f, 0x5a, 0x32, 0x5f, 0xd1, 0xbc, 0xaf, 0xf2, 0x55, 0x36, 0x86,\n\t0x2f, 0xe9, 0x68, 0x2c, 0xde, 0x41, 0x79, 0x31, 0x69, 0xe5, 0xf5, 0xfc, 0x0d, 0x3c, 0x49, 0x97,\n\t0x26, 0x35, 0x59, 0x20, 0x54, 0xca, 0x8c, 0xb6, 0x93, 0x1f, 0xdf, 0x8e, 0x30, 0x08, 0x82, 0xc0,\n\t0x0b, 0xe4, 0x40, 0x86, 0x0c, 0xda, 0x14, 0x20, 0x4d, 0xee, 0xea, 0xdf, 0xb3, 0x28, 0xdd, 0x4a,\n\t0xbc, 0x90, 0x6c, 0xb8, 0xcb, 0xba, 0xa0, 0x5c, 0x1d, 0xd9, 0x5c, 0x81, 0xd3, 0x34, 0x02, 0x3f,\n\t0x44, 0xb9, 0xc8, 0x69, 0xc9, 0xd6, 0x4a, 0x66, 0x59, 0x05, 0xe6, 0xf6, 0xb6, 0x5f, 0x50, 0x81,\n\t0xe3, 0x3a, 0x9a, 0xb0, 0x03, 0x2f, 0xf2, 0xc5, 0x42, 0x88, 0x42, 0x91, 0x18, 0xeb, 0x96, 0x44,\n\t0xa8, 0xba, 0xc1, 0x6f, 0x51, 0x01, 0xc4, 0x13, 0x24, 0x7b, 0x29, 0x2f, 0xaf, 0xde, 0xc2, 0x1f,\n\t0x22, 0xdf, 0xae, 0x4d, 0x97, 0x07, 0x87, 0x43, 0xad, 0x09, 0x8c, 0x26, 0x9a, 0x55, 0x5b, 0xbd,\n\t0x6f, 0x32, 0x06, 0x4f, 0xa2, 0x5c, 0x07, 0x0e, 0x93, 0xb6, 0xa8, 0xf8, 0xc4, 0xcf, 0x51, 0xa1,\n\t0x27, 0x9e, 0x3e, 0x35, 0x9c, 0xc5, 0x1b, 0x24, 0x1f, 0xbc, 0x97, 0x34, 0xe1, 0xae, 0x67, 0xd7,\n\t0x34, 0x73, 0xeb, 0xf8, 0x4c, 0xcf, 0x9c, 0x9c, 0xe9, 0x99, 0xd3, 0x33, 0x3d, 0x73, 0x14, 0xeb,\n\t0xda, 0x71, 0xac, 0x6b, 0x27, 0xb1, 0xae, 0x9d, 0xc6, 0xba, 0xf6, 0x2b, 0xd6, 0xb5, 0xcf, 0xbf,\n\t0xf5, 0xcc, 0x9b, 0xd9, 0x6b, 0x7f, 0x60, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x19, 0x49,\n\t0x3f, 0xfd, 0x06, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.UserInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Authenticated {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.UserInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = m.User.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UserInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *SelfSubjectReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SelfSubjectReviewStatus\", \"SelfSubjectReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReviewStatus{`,\n\t\t`UserInfo:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.UserInfo), \"UserInfo\", \"v11.UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenReviewSpec\", \"TokenReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenReviewStatus\", \"TokenReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewSpec{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewStatus{`,\n\t\t`Authenticated:` + fmt.Sprintf(\"%v\", this.Authenticated) + `,`,\n\t\t`User:` + strings.Replace(strings.Replace(this.User.String(), \"UserInfo\", \"UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&UserInfo{`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Authenticated\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Authenticated = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1beta1;\n\nimport \"k8s.io/api/authentication/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1beta1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\nmessage SelfSubjectReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Status is filled in by the server with the user attributes.\n  optional SelfSubjectReviewStatus status = 2;\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\nmessage SelfSubjectReviewStatus {\n  // User attributes of the user making this request.\n  // +optional\n  optional k8s.io.api.authentication.v1.UserInfo userInfo = 1;\n}\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\nmessage TokenReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the token can be authenticated.\n  // +optional\n  optional TokenReviewStatus status = 3;\n}\n\n// TokenReviewSpec is a description of the token authentication request.\nmessage TokenReviewSpec {\n  // Token is the opaque bearer token.\n  // +optional\n  optional string token = 1;\n\n  // Audiences is a list of the identifiers that the resource server presented\n  // with the token identifies as. Audience-aware token authenticators will\n  // verify that the token was intended for at least one of the audiences in\n  // this list. If no audiences are provided, the audience will default to the\n  // audience of the Kubernetes apiserver.\n  // +optional\n  repeated string audiences = 2;\n}\n\n// TokenReviewStatus is the result of the token authentication request.\nmessage TokenReviewStatus {\n  // Authenticated indicates that the token was associated with a known user.\n  // +optional\n  optional bool authenticated = 1;\n\n  // User is the UserInfo associated with the provided token.\n  // +optional\n  optional UserInfo user = 2;\n\n  // Audiences are audience identifiers chosen by the authenticator that are\n  // compatible with both the TokenReview and token. An identifier is any\n  // identifier in the intersection of the TokenReviewSpec audiences and the\n  // token's audiences. A client of the TokenReview API that sets the\n  // spec.audiences field should validate that a compatible audience identifier\n  // is returned in the status.audiences field to ensure that the TokenReview\n  // server is audience aware. If a TokenReview returns an empty\n  // status.audience field where status.authenticated is \"true\", the token is\n  // valid against the audience of the Kubernetes API server.\n  // +optional\n  repeated string audiences = 4;\n\n  // Error indicates that the token couldn't be checked\n  // +optional\n  optional string error = 3;\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\nmessage UserInfo {\n  // The name that uniquely identifies this user among all active users.\n  // +optional\n  optional string username = 1;\n\n  // A unique value that identifies this user across time. If this user is\n  // deleted and another user by the same name is added, they will have\n  // different UIDs.\n  // +optional\n  optional string uid = 2;\n\n  // The names of groups this user is a part of.\n  // +optional\n  repeated string groups = 3;\n\n  // Any additional information provided by the authenticator.\n  // +optional\n  map<string, ExtraValue> extra = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectReview{},\n\t\t&TokenReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authentication.k8s.io,v1,TokenReview\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\ntype TokenReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the token can be authenticated.\n\t// +optional\n\tStatus TokenReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenReviewSpec is a description of the token authentication request.\ntype TokenReviewSpec struct {\n\t// Token is the opaque bearer token.\n\t// +optional\n\tToken string `json:\"token,omitempty\" protobuf:\"bytes,1,opt,name=token\"`\n\t// Audiences is a list of the identifiers that the resource server presented\n\t// with the token identifies as. Audience-aware token authenticators will\n\t// verify that the token was intended for at least one of the audiences in\n\t// this list. If no audiences are provided, the audience will default to the\n\t// audience of the Kubernetes apiserver.\n\t// +optional\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,2,rep,name=audiences\"`\n}\n\n// TokenReviewStatus is the result of the token authentication request.\ntype TokenReviewStatus struct {\n\t// Authenticated indicates that the token was associated with a known user.\n\t// +optional\n\tAuthenticated bool `json:\"authenticated,omitempty\" protobuf:\"varint,1,opt,name=authenticated\"`\n\t// User is the UserInfo associated with the provided token.\n\t// +optional\n\tUser UserInfo `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// Audiences are audience identifiers chosen by the authenticator that are\n\t// compatible with both the TokenReview and token. An identifier is any\n\t// identifier in the intersection of the TokenReviewSpec audiences and the\n\t// token's audiences. A client of the TokenReview API that sets the\n\t// spec.audiences field should validate that a compatible audience identifier\n\t// is returned in the status.audiences field to ensure that the TokenReview\n\t// server is audience aware. If a TokenReview returns an empty\n\t// status.audience field where status.authenticated is \"true\", the token is\n\t// valid against the audience of the Kubernetes API server.\n\t// +optional\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,4,rep,name=audiences\"`\n\t// Error indicates that the token couldn't be checked\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\ntype UserInfo struct {\n\t// The name that uniquely identifies this user among all active users.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,1,opt,name=username\"`\n\t// A unique value that identifies this user across time. If this user is\n\t// deleted and another user by the same name is added, they will have\n\t// different UIDs.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,2,opt,name=uid\"`\n\t// The names of groups this user is a part of.\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,3,rep,name=groups\"`\n\t// Any additional information provided by the authenticator.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,4,rep,name=extra\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\ntype SelfSubjectReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Status is filled in by the server with the user attributes.\n\tStatus SelfSubjectReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\ntype SelfSubjectReviewStatus struct {\n\t// User attributes of the user making this request.\n\t// +optional\n\tUserInfo v1.UserInfo `json:\"userInfo,omitempty\" protobuf:\"bytes,1,opt,name=userInfo\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_SelfSubjectReview = map[string]string{\n\t\"\":         \"SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Status is filled in by the server with the user attributes.\",\n}\n\nfunc (SelfSubjectReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReview\n}\n\nvar map_SelfSubjectReviewStatus = map[string]string{\n\t\"\":         \"SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\",\n\t\"userInfo\": \"User attributes of the user making this request.\",\n}\n\nfunc (SelfSubjectReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReviewStatus\n}\n\nvar map_TokenReview = map[string]string{\n\t\"\":         \"TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the token can be authenticated.\",\n}\n\nfunc (TokenReview) SwaggerDoc() map[string]string {\n\treturn map_TokenReview\n}\n\nvar map_TokenReviewSpec = map[string]string{\n\t\"\":          \"TokenReviewSpec is a description of the token authentication request.\",\n\t\"token\":     \"Token is the opaque bearer token.\",\n\t\"audiences\": \"Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.\",\n}\n\nfunc (TokenReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewSpec\n}\n\nvar map_TokenReviewStatus = map[string]string{\n\t\"\":              \"TokenReviewStatus is the result of the token authentication request.\",\n\t\"authenticated\": \"Authenticated indicates that the token was associated with a known user.\",\n\t\"user\":          \"User is the UserInfo associated with the provided token.\",\n\t\"audiences\":     \"Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \\\"true\\\", the token is valid against the audience of the Kubernetes API server.\",\n\t\"error\":         \"Error indicates that the token couldn't be checked\",\n}\n\nfunc (TokenReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewStatus\n}\n\nvar map_UserInfo = map[string]string{\n\t\"\":         \"UserInfo holds the information about the user needed to implement the user.Info interface.\",\n\t\"username\": \"The name that uniquely identifies this user among all active users.\",\n\t\"uid\":      \"A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.\",\n\t\"groups\":   \"The names of groups this user is a part of.\",\n\t\"extra\":    \"Any additional information provided by the authenticator.\",\n}\n\nfunc (UserInfo) SwaggerDoc() map[string]string {\n\treturn map_UserInfo\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReview) DeepCopyInto(out *SelfSubjectReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReview.\nfunc (in *SelfSubjectReview) DeepCopy() *SelfSubjectReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReviewStatus) DeepCopyInto(out *SelfSubjectReviewStatus) {\n\t*out = *in\n\tin.UserInfo.DeepCopyInto(&out.UserInfo)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReviewStatus.\nfunc (in *SelfSubjectReviewStatus) DeepCopy() *SelfSubjectReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReview) DeepCopyInto(out *TokenReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReview.\nfunc (in *TokenReview) DeepCopy() *TokenReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewSpec.\nfunc (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) {\n\t*out = *in\n\tin.User.DeepCopyInto(&out.User)\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewStatus.\nfunc (in *TokenReviewStatus) DeepCopy() *TokenReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserInfo) DeepCopyInto(out *UserInfo) {\n\t*out = *in\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserInfo.\nfunc (in *UserInfo) DeepCopy() *UserInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *TokenReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *TokenReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *TokenReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authentication.k8s.io\", Version: \"v1\", Kind: \"TokenReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *TokenReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=authorization.k8s.io\n\npackage v1 // import \"k8s.io/api/authorization/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *LocalSubjectAccessReview) Reset()      { *m = LocalSubjectAccessReview{} }\nfunc (*LocalSubjectAccessReview) ProtoMessage() {}\nfunc (*LocalSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{1}\n}\nfunc (m *LocalSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalSubjectAccessReview.Merge(m, src)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *NonResourceAttributes) Reset()      { *m = NonResourceAttributes{} }\nfunc (*NonResourceAttributes) ProtoMessage() {}\nfunc (*NonResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{2}\n}\nfunc (m *NonResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceAttributes.Merge(m, src)\n}\nfunc (m *NonResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceAttributes proto.InternalMessageInfo\n\nfunc (m *NonResourceRule) Reset()      { *m = NonResourceRule{} }\nfunc (*NonResourceRule) ProtoMessage() {}\nfunc (*NonResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{3}\n}\nfunc (m *NonResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceRule.Merge(m, src)\n}\nfunc (m *NonResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceRule proto.InternalMessageInfo\n\nfunc (m *ResourceAttributes) Reset()      { *m = ResourceAttributes{} }\nfunc (*ResourceAttributes) ProtoMessage() {}\nfunc (*ResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{4}\n}\nfunc (m *ResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceAttributes.Merge(m, src)\n}\nfunc (m *ResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceAttributes proto.InternalMessageInfo\n\nfunc (m *ResourceRule) Reset()      { *m = ResourceRule{} }\nfunc (*ResourceRule) ProtoMessage() {}\nfunc (*ResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{5}\n}\nfunc (m *ResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRule.Merge(m, src)\n}\nfunc (m *ResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRule proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReview) Reset()      { *m = SelfSubjectAccessReview{} }\nfunc (*SelfSubjectAccessReview) ProtoMessage() {}\nfunc (*SelfSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{6}\n}\nfunc (m *SelfSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReview.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReviewSpec) Reset()      { *m = SelfSubjectAccessReviewSpec{} }\nfunc (*SelfSubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{7}\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReview) Reset()      { *m = SelfSubjectRulesReview{} }\nfunc (*SelfSubjectRulesReview) ProtoMessage() {}\nfunc (*SelfSubjectRulesReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{8}\n}\nfunc (m *SelfSubjectRulesReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReview.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReviewSpec) Reset()      { *m = SelfSubjectRulesReviewSpec{} }\nfunc (*SelfSubjectRulesReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectRulesReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{9}\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReview) Reset()      { *m = SubjectAccessReview{} }\nfunc (*SubjectAccessReview) ProtoMessage() {}\nfunc (*SubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{10}\n}\nfunc (m *SubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReview.Merge(m, src)\n}\nfunc (m *SubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewSpec) Reset()      { *m = SubjectAccessReviewSpec{} }\nfunc (*SubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{11}\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewStatus) Reset()      { *m = SubjectAccessReviewStatus{} }\nfunc (*SubjectAccessReviewStatus) ProtoMessage() {}\nfunc (*SubjectAccessReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{12}\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewStatus proto.InternalMessageInfo\n\nfunc (m *SubjectRulesReviewStatus) Reset()      { *m = SubjectRulesReviewStatus{} }\nfunc (*SubjectRulesReviewStatus) ProtoMessage() {}\nfunc (*SubjectRulesReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e50da13573e369bd, []int{13}\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectRulesReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectRulesReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectRulesReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectRulesReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authorization.v1.ExtraValue\")\n\tproto.RegisterType((*LocalSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.LocalSubjectAccessReview\")\n\tproto.RegisterType((*NonResourceAttributes)(nil), \"k8s.io.api.authorization.v1.NonResourceAttributes\")\n\tproto.RegisterType((*NonResourceRule)(nil), \"k8s.io.api.authorization.v1.NonResourceRule\")\n\tproto.RegisterType((*ResourceAttributes)(nil), \"k8s.io.api.authorization.v1.ResourceAttributes\")\n\tproto.RegisterType((*ResourceRule)(nil), \"k8s.io.api.authorization.v1.ResourceRule\")\n\tproto.RegisterType((*SelfSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.SelfSubjectAccessReview\")\n\tproto.RegisterType((*SelfSubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1.SelfSubjectAccessReviewSpec\")\n\tproto.RegisterType((*SelfSubjectRulesReview)(nil), \"k8s.io.api.authorization.v1.SelfSubjectRulesReview\")\n\tproto.RegisterType((*SelfSubjectRulesReviewSpec)(nil), \"k8s.io.api.authorization.v1.SelfSubjectRulesReviewSpec\")\n\tproto.RegisterType((*SubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReview\")\n\tproto.RegisterType((*SubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewSpec.ExtraEntry\")\n\tproto.RegisterType((*SubjectAccessReviewStatus)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewStatus\")\n\tproto.RegisterType((*SubjectRulesReviewStatus)(nil), \"k8s.io.api.authorization.v1.SubjectRulesReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1/generated.proto\", fileDescriptor_e50da13573e369bd)\n}\n\nvar fileDescriptor_e50da13573e369bd = []byte{\n\t// 1140 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4f, 0x6f, 0x1b, 0x45,\n\t0x14, 0xf7, 0xfa, 0x4f, 0x62, 0x8f, 0x1b, 0x92, 0x4e, 0x94, 0x66, 0x9b, 0x08, 0x3b, 0x5a, 0x24,\n\t0x48, 0x45, 0xd9, 0x25, 0x56, 0xdb, 0x44, 0x95, 0x2a, 0x64, 0x2b, 0x11, 0x8a, 0xd4, 0x96, 0x6a,\n\t0xa2, 0x44, 0xa2, 0x08, 0xc4, 0x78, 0x3d, 0xb1, 0x97, 0xd8, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x38,\n\t0x55, 0xe2, 0x0b, 0x70, 0xe4, 0xc0, 0x81, 0x6f, 0xc0, 0x05, 0x89, 0x1b, 0x07, 0x0e, 0x28, 0xc7,\n\t0x1e, 0x8b, 0x84, 0x2c, 0xb2, 0x9c, 0xf9, 0x0e, 0x68, 0x66, 0xc7, 0xde, 0x75, 0xb2, 0x76, 0x13,\n\t0x0e, 0xed, 0xa5, 0x37, 0xef, 0xfb, 0xfd, 0xde, 0x9b, 0x37, 0xef, 0xdf, 0x3c, 0x83, 0xed, 0xa3,\n\t0x2d, 0x66, 0x3a, 0x9e, 0x75, 0x14, 0x34, 0x09, 0x75, 0x09, 0x27, 0xcc, 0xea, 0x13, 0xb7, 0xe5,\n\t0x51, 0x4b, 0x01, 0xd8, 0x77, 0x2c, 0x1c, 0xf0, 0x8e, 0x47, 0x9d, 0x6f, 0x31, 0x77, 0x3c, 0xd7,\n\t0xea, 0x6f, 0x58, 0x6d, 0xe2, 0x12, 0x8a, 0x39, 0x69, 0x99, 0x3e, 0xf5, 0xb8, 0x07, 0x57, 0x23,\n\t0xb2, 0x89, 0x7d, 0xc7, 0x1c, 0x23, 0x9b, 0xfd, 0x8d, 0x95, 0x0f, 0xda, 0x0e, 0xef, 0x04, 0x4d,\n\t0xd3, 0xf6, 0x7a, 0x56, 0xdb, 0x6b, 0x7b, 0x96, 0xd4, 0x69, 0x06, 0x87, 0xf2, 0x4b, 0x7e, 0xc8,\n\t0x5f, 0x91, 0xad, 0x95, 0x3b, 0xf1, 0xc1, 0x3d, 0x6c, 0x77, 0x1c, 0x97, 0xd0, 0x13, 0xcb, 0x3f,\n\t0x6a, 0x0b, 0x01, 0xb3, 0x7a, 0x84, 0xe3, 0x14, 0x0f, 0x56, 0xac, 0x49, 0x5a, 0x34, 0x70, 0xb9,\n\t0xd3, 0x23, 0x17, 0x14, 0xee, 0xbd, 0x4c, 0x81, 0xd9, 0x1d, 0xd2, 0xc3, 0xe7, 0xf5, 0x8c, 0x4d,\n\t0x00, 0x76, 0xbe, 0xe1, 0x14, 0x1f, 0xe0, 0x6e, 0x40, 0x60, 0x15, 0x14, 0x1c, 0x4e, 0x7a, 0x4c,\n\t0xd7, 0xd6, 0x72, 0xeb, 0xa5, 0x46, 0x29, 0x1c, 0x54, 0x0b, 0xbb, 0x42, 0x80, 0x22, 0xf9, 0xfd,\n\t0xe2, 0x0f, 0x3f, 0x55, 0x33, 0xcf, 0xfe, 0x5a, 0xcb, 0x18, 0xbf, 0x64, 0x81, 0xfe, 0xd0, 0xb3,\n\t0x71, 0x77, 0x2f, 0x68, 0x7e, 0x45, 0x6c, 0x5e, 0xb7, 0x6d, 0xc2, 0x18, 0x22, 0x7d, 0x87, 0x1c,\n\t0xc3, 0x2f, 0x41, 0x51, 0xdc, 0xac, 0x85, 0x39, 0xd6, 0xb5, 0x35, 0x6d, 0xbd, 0x5c, 0xfb, 0xd0,\n\t0x8c, 0x63, 0x3a, 0x72, 0xd0, 0xf4, 0x8f, 0xda, 0x42, 0xc0, 0x4c, 0xc1, 0x36, 0xfb, 0x1b, 0xe6,\n\t0x27, 0xd2, 0xd6, 0x23, 0xc2, 0x71, 0x03, 0x9e, 0x0e, 0xaa, 0x99, 0x70, 0x50, 0x05, 0xb1, 0x0c,\n\t0x8d, 0xac, 0xc2, 0x03, 0x90, 0x67, 0x3e, 0xb1, 0xf5, 0xac, 0xb4, 0x7e, 0xc7, 0x9c, 0x92, 0x31,\n\t0x33, 0xc5, 0xc3, 0x3d, 0x9f, 0xd8, 0x8d, 0x6b, 0xea, 0x84, 0xbc, 0xf8, 0x42, 0xd2, 0x1e, 0xfc,\n\t0x02, 0xcc, 0x30, 0x8e, 0x79, 0xc0, 0xf4, 0x9c, 0xb4, 0x7c, 0xef, 0xca, 0x96, 0xa5, 0x76, 0xe3,\n\t0x2d, 0x65, 0x7b, 0x26, 0xfa, 0x46, 0xca, 0xaa, 0xf1, 0x19, 0x58, 0x7a, 0xec, 0xb9, 0x88, 0x30,\n\t0x2f, 0xa0, 0x36, 0xa9, 0x73, 0x4e, 0x9d, 0x66, 0xc0, 0x09, 0x83, 0x6b, 0x20, 0xef, 0x63, 0xde,\n\t0x91, 0xe1, 0x2a, 0xc5, 0xae, 0x3d, 0xc1, 0xbc, 0x83, 0x24, 0x22, 0x18, 0x7d, 0x42, 0x9b, 0xf2,\n\t0xca, 0x09, 0xc6, 0x01, 0xa1, 0x4d, 0x24, 0x11, 0xe3, 0x6b, 0x30, 0x9f, 0x30, 0x8e, 0x82, 0xae,\n\t0xcc, 0xa8, 0x80, 0xc6, 0x32, 0x2a, 0x34, 0x18, 0x8a, 0xe4, 0xf0, 0x01, 0x98, 0x77, 0x63, 0x9d,\n\t0x7d, 0xf4, 0x90, 0xe9, 0x59, 0x49, 0x5d, 0x0c, 0x07, 0xd5, 0xa4, 0x39, 0x01, 0xa1, 0xf3, 0x5c,\n\t0xe3, 0xb7, 0x2c, 0x80, 0x29, 0xb7, 0xb1, 0x40, 0xc9, 0xc5, 0x3d, 0xc2, 0x7c, 0x6c, 0x13, 0x75,\n\t0xa5, 0xeb, 0xca, 0xe1, 0xd2, 0xe3, 0x21, 0x80, 0x62, 0xce, 0xcb, 0x2f, 0x07, 0xdf, 0x01, 0x85,\n\t0x36, 0xf5, 0x02, 0x5f, 0x26, 0xa6, 0xd4, 0x98, 0x53, 0x94, 0xc2, 0xc7, 0x42, 0x88, 0x22, 0x0c,\n\t0xde, 0x02, 0xb3, 0x7d, 0x42, 0x99, 0xe3, 0xb9, 0x7a, 0x5e, 0xd2, 0xe6, 0x15, 0x6d, 0xf6, 0x20,\n\t0x12, 0xa3, 0x21, 0x0e, 0x6f, 0x83, 0x22, 0x55, 0x8e, 0xeb, 0x05, 0xc9, 0x5d, 0x50, 0xdc, 0xe2,\n\t0x28, 0x82, 0x23, 0x06, 0xbc, 0x0b, 0xca, 0x2c, 0x68, 0x8e, 0x14, 0x66, 0xa4, 0xc2, 0xa2, 0x52,\n\t0x28, 0xef, 0xc5, 0x10, 0x4a, 0xf2, 0xc4, 0xb5, 0xc4, 0x1d, 0xf5, 0xd9, 0xf1, 0x6b, 0x89, 0x10,\n\t0x20, 0x89, 0x18, 0xbf, 0x6b, 0xe0, 0xda, 0xd5, 0x32, 0xf6, 0x3e, 0x28, 0x61, 0xdf, 0x91, 0xd7,\n\t0x1e, 0xe6, 0x6a, 0x4e, 0xc4, 0xb5, 0xfe, 0x64, 0x37, 0x12, 0xa2, 0x18, 0x17, 0xe4, 0xa1, 0x33,\n\t0xa2, 0xa4, 0x47, 0xe4, 0xe1, 0x91, 0x0c, 0xc5, 0x38, 0xdc, 0x04, 0x73, 0xc3, 0x0f, 0x99, 0x24,\n\t0x3d, 0x2f, 0x15, 0xae, 0x87, 0x83, 0xea, 0x1c, 0x4a, 0x02, 0x68, 0x9c, 0x67, 0xfc, 0x9a, 0x05,\n\t0xcb, 0x7b, 0xa4, 0x7b, 0xf8, 0x7a, 0x66, 0xc1, 0xd3, 0xb1, 0x59, 0xb0, 0x35, 0xbd, 0x63, 0xd3,\n\t0xbd, 0x7c, 0x6d, 0xf3, 0xe0, 0xc7, 0x2c, 0x58, 0x9d, 0xe2, 0x13, 0x3c, 0x06, 0x90, 0x5e, 0x68,\n\t0x2f, 0x15, 0x47, 0x6b, 0xaa, 0x2f, 0x17, 0xbb, 0xb2, 0x71, 0x23, 0x1c, 0x54, 0x53, 0xba, 0x15,\n\t0xa5, 0x1c, 0x01, 0xbf, 0xd3, 0xc0, 0x92, 0x9b, 0x36, 0xa9, 0x54, 0x98, 0x6b, 0x53, 0x0f, 0x4f,\n\t0x9d, 0x71, 0x8d, 0x9b, 0xe1, 0xa0, 0x9a, 0x3e, 0xfe, 0x50, 0xfa, 0x59, 0xe2, 0x95, 0xb9, 0x91,\n\t0x08, 0x8f, 0x68, 0x90, 0x57, 0x57, 0x57, 0x9f, 0x8e, 0xd5, 0xd5, 0xe6, 0x65, 0xeb, 0x2a, 0xe1,\n\t0xe4, 0xc4, 0xb2, 0xfa, 0xfc, 0x5c, 0x59, 0xdd, 0xbd, 0x4c, 0x59, 0x25, 0x0d, 0x4f, 0xaf, 0xaa,\n\t0x47, 0x60, 0x65, 0xb2, 0x43, 0x57, 0x1e, 0xce, 0xc6, 0xcf, 0x59, 0xb0, 0xf8, 0xe6, 0x99, 0xbf,\n\t0x4a, 0x5b, 0xff, 0x91, 0x07, 0xcb, 0x6f, 0x5a, 0x7a, 0xd2, 0xa2, 0x13, 0x30, 0x42, 0xd5, 0x33,\n\t0x3e, 0x4a, 0xce, 0x3e, 0x23, 0x14, 0x49, 0x04, 0x1a, 0x60, 0xa6, 0x1d, 0xbd, 0x6e, 0xd1, 0xfb,\n\t0x03, 0x44, 0x80, 0xd5, 0xd3, 0xa6, 0x10, 0xd8, 0x02, 0x05, 0x22, 0xf6, 0x56, 0xbd, 0xb0, 0x96,\n\t0x5b, 0x2f, 0xd7, 0x3e, 0xfa, 0x3f, 0x95, 0x61, 0xca, 0xcd, 0x77, 0xc7, 0xe5, 0xf4, 0x24, 0x5e,\n\t0x27, 0xa4, 0x0c, 0x45, 0xc6, 0xe1, 0xdb, 0x20, 0x17, 0x38, 0x2d, 0xf5, 0xda, 0x97, 0x15, 0x25,\n\t0xb7, 0xbf, 0xbb, 0x8d, 0x84, 0x7c, 0x05, 0xab, 0xe5, 0x59, 0x9a, 0x80, 0x0b, 0x20, 0x77, 0x44,\n\t0x4e, 0xa2, 0x86, 0x42, 0xe2, 0x27, 0x7c, 0x00, 0x0a, 0x7d, 0xb1, 0x57, 0xab, 0xf8, 0xbe, 0x37,\n\t0xd5, 0xc9, 0x78, 0x0d, 0x47, 0x91, 0xd6, 0xfd, 0xec, 0x96, 0x66, 0xfc, 0xa9, 0x81, 0x9b, 0x13,\n\t0xcb, 0x4f, 0xac, 0x3b, 0xb8, 0xdb, 0xf5, 0x8e, 0x49, 0x4b, 0x1e, 0x5b, 0x8c, 0xd7, 0x9d, 0x7a,\n\t0x24, 0x46, 0x43, 0x1c, 0xbe, 0x0b, 0x66, 0x5a, 0xc4, 0x75, 0x48, 0x4b, 0x2e, 0x46, 0xc5, 0xb8,\n\t0x72, 0xb7, 0xa5, 0x14, 0x29, 0x54, 0xf0, 0x28, 0xc1, 0xcc, 0x73, 0xd5, 0x2a, 0x36, 0xe2, 0x21,\n\t0x29, 0x45, 0x0a, 0x85, 0x75, 0x30, 0x4f, 0x84, 0x9b, 0xd2, 0xff, 0x1d, 0x4a, 0xbd, 0x61, 0x46,\n\t0x97, 0x95, 0xc2, 0xfc, 0xce, 0x38, 0x8c, 0xce, 0xf3, 0x8d, 0x7f, 0xb3, 0x40, 0x9f, 0x34, 0xda,\n\t0xe0, 0x61, 0xbc, 0x8b, 0x48, 0x50, 0xae, 0x43, 0xe5, 0xda, 0xad, 0x4b, 0x35, 0x88, 0xd0, 0x68,\n\t0x2c, 0x29, 0x47, 0xe6, 0x92, 0xd2, 0xc4, 0xea, 0x22, 0x3f, 0x21, 0x05, 0x0b, 0xee, 0xf8, 0xce,\n\t0x1c, 0x2d, 0x55, 0xe5, 0xda, 0xed, 0xcb, 0xb6, 0x83, 0x3c, 0x4d, 0x57, 0xa7, 0x2d, 0x9c, 0x03,\n\t0x18, 0xba, 0x60, 0x1f, 0xd6, 0x00, 0x70, 0x5c, 0xdb, 0xeb, 0xf9, 0x5d, 0xc2, 0x89, 0x0c, 0x5b,\n\t0x31, 0x9e, 0x83, 0xbb, 0x23, 0x04, 0x25, 0x58, 0x69, 0xf1, 0xce, 0x5f, 0x2d, 0xde, 0x8d, 0xfa,\n\t0xe9, 0x59, 0x25, 0xf3, 0xfc, 0xac, 0x92, 0x79, 0x71, 0x56, 0xc9, 0x3c, 0x0b, 0x2b, 0xda, 0x69,\n\t0x58, 0xd1, 0x9e, 0x87, 0x15, 0xed, 0x45, 0x58, 0xd1, 0xfe, 0x0e, 0x2b, 0xda, 0xf7, 0xff, 0x54,\n\t0x32, 0x4f, 0x57, 0xa7, 0xfc, 0x53, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xea, 0x67, 0x63, 0x89,\n\t0x60, 0x0f, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.Denied {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Allowed {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectRulesReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Incomplete {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *SubjectRulesReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *LocalSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceAttributes{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceAttributes{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectAccessReviewSpec\", \"SelfSubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectRulesReviewSpec\", \"SelfSubjectRulesReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectRulesReviewStatus\", \"SubjectRulesReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReviewSpec{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&SubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReviewStatus{`,\n\t\t`Allowed:` + fmt.Sprintf(\"%v\", this.Allowed) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`Denied:` + fmt.Sprintf(\"%v\", this.Denied) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectRulesReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]ResourceRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourceRule\", \"ResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourceRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourceRule\", \"NonResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&SubjectRulesReviewStatus{`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`Incomplete:` + fmt.Sprintf(\"%v\", this.Incomplete) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allowed\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allowed = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Denied\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Denied = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourceRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourceRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Incomplete\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Incomplete = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authorization.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authorization/v1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\nmessage LocalSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n  // you made the request against.  If empty, it is defaulted.\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\nmessage NonResourceAttributes {\n  // Path is the URL path of the request\n  // +optional\n  optional string path = 1;\n\n  // Verb is the standard HTTP verb\n  // +optional\n  optional string verb = 2;\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\nmessage NonResourceRule {\n  // Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n  repeated string verbs = 1;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n  // final step in the path.  \"*\" means all.\n  // +optional\n  repeated string nonResourceURLs = 2;\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\nmessage ResourceAttributes {\n  // Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n  // \"\" (empty) is defaulted for LocalSubjectAccessReviews\n  // \"\" (empty) is empty for cluster-scoped resources\n  // \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n  // +optional\n  optional string namespace = 1;\n\n  // Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +optional\n  optional string verb = 2;\n\n  // Group is the API Group of the Resource.  \"*\" means all.\n  // +optional\n  optional string group = 3;\n\n  // Version is the API Version of the Resource.  \"*\" means all.\n  // +optional\n  optional string version = 4;\n\n  // Resource is one of the existing resource types.  \"*\" means all.\n  // +optional\n  optional string resource = 5;\n\n  // Subresource is one of the existing resource types.  \"\" means none.\n  // +optional\n  optional string subresource = 6;\n\n  // Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n  // +optional\n  optional string name = 7;\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\nmessage ResourceRule {\n  // Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed.  \"*\" means all.\n  // +optional\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n  //  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n  // +optional\n  repeated string resourceNames = 4;\n}\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\nmessage SelfSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  user and groups must be empty\n  optional SelfSubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SelfSubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n}\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\nmessage SelfSubjectRulesReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.\n  optional SelfSubjectRulesReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates the set of actions a user can perform.\n  // +optional\n  optional SubjectRulesReviewStatus status = 3;\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\nmessage SelfSubjectRulesReviewSpec {\n  // Namespace to evaluate rules for. Required.\n  optional string namespace = 1;\n}\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\nmessage SubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n\n  // User is the user you're testing for.\n  // If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups\n  // +optional\n  optional string user = 3;\n\n  // Groups is the groups you're testing for.\n  // +optional\n  repeated string groups = 4;\n\n  // Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n  // it needs a reflection here.\n  // +optional\n  map<string, ExtraValue> extra = 5;\n\n  // UID information about the requesting user.\n  // +optional\n  optional string uid = 6;\n}\n\n// SubjectAccessReviewStatus\nmessage SubjectAccessReviewStatus {\n  // Allowed is required. True if the action would be allowed, false otherwise.\n  optional bool allowed = 1;\n\n  // Denied is optional. True if the action would be denied, otherwise\n  // false. If both allowed is false and denied is false, then the\n  // authorizer has no opinion on whether to authorize the action. Denied\n  // may not be true if Allowed is true.\n  // +optional\n  optional bool denied = 4;\n\n  // Reason is optional.  It indicates why a request was allowed or denied.\n  // +optional\n  optional string reason = 2;\n\n  // EvaluationError is an indication that some error occurred during the authorization check.\n  // It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n  // For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n  // +optional\n  optional string evaluationError = 3;\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\nmessage SubjectRulesReviewStatus {\n  // ResourceRules is the list of actions the subject is allowed to perform on resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  repeated ResourceRule resourceRules = 1;\n\n  // NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  repeated NonResourceRule nonResourceRules = 2;\n\n  // Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n  // encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n  optional bool incomplete = 3;\n\n  // EvaluationError can appear in combination with Rules. It indicates an error occurred during\n  // rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n  // ResourceRules and/or NonResourceRules may be incomplete.\n  // +optional\n  optional string evaluationError = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectRulesReview{},\n\t\t&SelfSubjectAccessReview{},\n\t\t&SubjectAccessReview{},\n\t\t&LocalSubjectAccessReview{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\ntype SubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\ntype SelfSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  user and groups must be empty\n\tSpec SelfSubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\ntype LocalSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n\t// you made the request against.  If empty, it is defaulted.\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\ntype ResourceAttributes struct {\n\t// Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n\t// \"\" (empty) is defaulted for LocalSubjectAccessReviews\n\t// \"\" (empty) is empty for cluster-scoped resources\n\t// \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n\t// Group is the API Group of the Resource.  \"*\" means all.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// Version is the API Version of the Resource.  \"*\" means all.\n\t// +optional\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,4,opt,name=version\"`\n\t// Resource is one of the existing resource types.  \"*\" means all.\n\t// +optional\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,5,opt,name=resource\"`\n\t// Subresource is one of the existing resource types.  \"\" means none.\n\t// +optional\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,6,opt,name=subresource\"`\n\t// Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,7,opt,name=name\"`\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\ntype NonResourceAttributes struct {\n\t// Path is the URL path of the request\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Verb is the standard HTTP verb\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n\n\t// User is the user you're testing for.\n\t// If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// Groups is the groups you're testing for.\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n\t// it needs a reflection here.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,5,rep,name=extra\"`\n\t// UID information about the requesting user.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SelfSubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n}\n\n// SubjectAccessReviewStatus\ntype SubjectAccessReviewStatus struct {\n\t// Allowed is required. True if the action would be allowed, false otherwise.\n\tAllowed bool `json:\"allowed\" protobuf:\"varint,1,opt,name=allowed\"`\n\t// Denied is optional. True if the action would be denied, otherwise\n\t// false. If both allowed is false and denied is false, then the\n\t// authorizer has no opinion on whether to authorize the action. Denied\n\t// may not be true if Allowed is true.\n\t// +optional\n\tDenied bool `json:\"denied,omitempty\" protobuf:\"varint,4,opt,name=denied\"`\n\t// Reason is optional.  It indicates why a request was allowed or denied.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// EvaluationError is an indication that some error occurred during the authorization check.\n\t// It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n\t// For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,3,opt,name=evaluationError\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\ntype SelfSubjectRulesReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.\n\tSpec SelfSubjectRulesReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates the set of actions a user can perform.\n\t// +optional\n\tStatus SubjectRulesReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\ntype SelfSubjectRulesReviewSpec struct {\n\t// Namespace to evaluate rules for. Required.\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\ntype SubjectRulesReviewStatus struct {\n\t// ResourceRules is the list of actions the subject is allowed to perform on resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\tResourceRules []ResourceRule `json:\"resourceRules\" protobuf:\"bytes,1,rep,name=resourceRules\"`\n\t// NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\tNonResourceRules []NonResourceRule `json:\"nonResourceRules\" protobuf:\"bytes,2,rep,name=nonResourceRules\"`\n\t// Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n\t// encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n\tIncomplete bool `json:\"incomplete\" protobuf:\"bytes,3,rep,name=incomplete\"`\n\t// EvaluationError can appear in combination with Rules. It indicates an error occurred during\n\t// rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n\t// ResourceRules and/or NonResourceRules may be incomplete.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,4,opt,name=evaluationError\"`\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\ntype ResourceRule struct {\n\t// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed.  \"*\" means all.\n\t// +optional\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n\t//  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\ntype NonResourceRule struct {\n\t// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n\t// final step in the path.  \"*\" means all.\n\t// +optional\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,2,rep,name=nonResourceURLs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_LocalSubjectAccessReview = map[string]string{\n\t\"\":         \"LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace you made the request against.  If empty, it is defaulted.\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (LocalSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_LocalSubjectAccessReview\n}\n\nvar map_NonResourceAttributes = map[string]string{\n\t\"\":     \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n\t\"path\": \"Path is the URL path of the request\",\n\t\"verb\": \"Verb is the standard HTTP verb\",\n}\n\nfunc (NonResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_NonResourceAttributes\n}\n\nvar map_NonResourceRule = map[string]string{\n\t\"\":                \"NonResourceRule holds information that describes a rule for the non-resource\",\n\t\"verbs\":           \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \\\"*\\\" means all.\",\n}\n\nfunc (NonResourceRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourceRule\n}\n\nvar map_ResourceAttributes = map[string]string{\n\t\"\":            \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n\t\"namespace\":   \"Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \\\"\\\" (empty) is defaulted for LocalSubjectAccessReviews \\\"\\\" (empty) is empty for cluster-scoped resources \\\"\\\" (empty) means \\\"all\\\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\",\n\t\"verb\":        \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"group\":       \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n\t\"version\":     \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n\t\"resource\":    \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n\t\"subresource\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n\t\"name\":        \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n}\n\nfunc (ResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_ResourceAttributes\n}\n\nvar map_ResourceRule = map[string]string{\n\t\"\":              \"ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"verbs\":         \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"apiGroups\":     \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\n\t\"resources\":     \"Resources is a list of resources this rule applies to.  \\\"*\\\" means all in the specified apiGroups.\\n \\\"*/foo\\\" represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n}\n\nfunc (ResourceRule) SwaggerDoc() map[string]string {\n\treturn map_ResourceRule\n}\n\nvar map_SelfSubjectAccessReview = map[string]string{\n\t\"\":         \"SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \\\"in all namespaces\\\".  Self is a special case, because users should always be able to check whether they can perform an action\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SelfSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReview\n}\n\nvar map_SelfSubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n}\n\nfunc (SelfSubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReviewSpec\n}\n\nvar map_SelfSubjectRulesReview = map[string]string{\n\t\"\":         \"SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.\",\n\t\"status\":   \"Status is filled in by the server and indicates the set of actions a user can perform.\",\n}\n\nfunc (SelfSubjectRulesReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReview\n}\n\nvar map_SelfSubjectRulesReviewSpec = map[string]string{\n\t\"\":          \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n\t\"namespace\": \"Namespace to evaluate rules for. Required.\",\n}\n\nfunc (SelfSubjectRulesReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReviewSpec\n}\n\nvar map_SubjectAccessReview = map[string]string{\n\t\"\":         \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReview\n}\n\nvar map_SubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n\t\"user\":                  \"User is the user you're testing for. If you specify \\\"User\\\" but not \\\"Groups\\\", then is it interpreted as \\\"What if User were not a member of any groups\",\n\t\"groups\":                \"Groups is the groups you're testing for.\",\n\t\"extra\":                 \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n\t\"uid\":                   \"UID information about the requesting user.\",\n}\n\nfunc (SubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewSpec\n}\n\nvar map_SubjectAccessReviewStatus = map[string]string{\n\t\"\":                \"SubjectAccessReviewStatus\",\n\t\"allowed\":         \"Allowed is required. True if the action would be allowed, false otherwise.\",\n\t\"denied\":          \"Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.\",\n\t\"reason\":          \"Reason is optional.  It indicates why a request was allowed or denied.\",\n\t\"evaluationError\": \"EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\",\n}\n\nfunc (SubjectAccessReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewStatus\n}\n\nvar map_SubjectRulesReviewStatus = map[string]string{\n\t\"\":                 \"SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.\",\n\t\"resourceRules\":    \"ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"nonResourceRules\": \"NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"incomplete\":       \"Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\",\n\t\"evaluationError\":  \"EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.\",\n}\n\nfunc (SubjectRulesReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectRulesReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSubjectAccessReview.\nfunc (in *LocalSubjectAccessReview) DeepCopy() *LocalSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LocalSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceAttributes) DeepCopyInto(out *NonResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceAttributes.\nfunc (in *NonResourceAttributes) DeepCopy() *NonResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceRule) DeepCopyInto(out *NonResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceRule.\nfunc (in *NonResourceRule) DeepCopy() *NonResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceAttributes) DeepCopyInto(out *ResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAttributes.\nfunc (in *ResourceAttributes) DeepCopy() *ResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRule) DeepCopyInto(out *ResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRule.\nfunc (in *ResourceRule) DeepCopy() *ResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReview) DeepCopyInto(out *SelfSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReview.\nfunc (in *SelfSubjectAccessReview) DeepCopy() *SelfSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReviewSpec.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopy() *SelfSubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReview) DeepCopyInto(out *SelfSubjectRulesReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReview.\nfunc (in *SelfSubjectRulesReview) DeepCopy() *SelfSubjectRulesReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectRulesReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopyInto(out *SelfSubjectRulesReviewSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReviewSpec.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopy() *SelfSubjectRulesReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReview) DeepCopyInto(out *SubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReview.\nfunc (in *SubjectAccessReview) DeepCopy() *SubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewSpec.\nfunc (in *SubjectAccessReviewSpec) DeepCopy() *SubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewStatus) DeepCopyInto(out *SubjectAccessReviewStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewStatus.\nfunc (in *SubjectAccessReviewStatus) DeepCopy() *SubjectAccessReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectRulesReviewStatus) DeepCopyInto(out *SubjectRulesReviewStatus) {\n\t*out = *in\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewStatus.\nfunc (in *SubjectRulesReviewStatus) DeepCopy() *SubjectRulesReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectRulesReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=authorization.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/authorization/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *LocalSubjectAccessReview) Reset()      { *m = LocalSubjectAccessReview{} }\nfunc (*LocalSubjectAccessReview) ProtoMessage() {}\nfunc (*LocalSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{1}\n}\nfunc (m *LocalSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalSubjectAccessReview.Merge(m, src)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *NonResourceAttributes) Reset()      { *m = NonResourceAttributes{} }\nfunc (*NonResourceAttributes) ProtoMessage() {}\nfunc (*NonResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{2}\n}\nfunc (m *NonResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceAttributes.Merge(m, src)\n}\nfunc (m *NonResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceAttributes proto.InternalMessageInfo\n\nfunc (m *NonResourceRule) Reset()      { *m = NonResourceRule{} }\nfunc (*NonResourceRule) ProtoMessage() {}\nfunc (*NonResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{3}\n}\nfunc (m *NonResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceRule.Merge(m, src)\n}\nfunc (m *NonResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceRule proto.InternalMessageInfo\n\nfunc (m *ResourceAttributes) Reset()      { *m = ResourceAttributes{} }\nfunc (*ResourceAttributes) ProtoMessage() {}\nfunc (*ResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{4}\n}\nfunc (m *ResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceAttributes.Merge(m, src)\n}\nfunc (m *ResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceAttributes proto.InternalMessageInfo\n\nfunc (m *ResourceRule) Reset()      { *m = ResourceRule{} }\nfunc (*ResourceRule) ProtoMessage() {}\nfunc (*ResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{5}\n}\nfunc (m *ResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRule.Merge(m, src)\n}\nfunc (m *ResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRule proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReview) Reset()      { *m = SelfSubjectAccessReview{} }\nfunc (*SelfSubjectAccessReview) ProtoMessage() {}\nfunc (*SelfSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{6}\n}\nfunc (m *SelfSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReview.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReviewSpec) Reset()      { *m = SelfSubjectAccessReviewSpec{} }\nfunc (*SelfSubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{7}\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReview) Reset()      { *m = SelfSubjectRulesReview{} }\nfunc (*SelfSubjectRulesReview) ProtoMessage() {}\nfunc (*SelfSubjectRulesReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{8}\n}\nfunc (m *SelfSubjectRulesReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReview.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReviewSpec) Reset()      { *m = SelfSubjectRulesReviewSpec{} }\nfunc (*SelfSubjectRulesReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectRulesReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{9}\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReview) Reset()      { *m = SubjectAccessReview{} }\nfunc (*SubjectAccessReview) ProtoMessage() {}\nfunc (*SubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{10}\n}\nfunc (m *SubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReview.Merge(m, src)\n}\nfunc (m *SubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewSpec) Reset()      { *m = SubjectAccessReviewSpec{} }\nfunc (*SubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{11}\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewStatus) Reset()      { *m = SubjectAccessReviewStatus{} }\nfunc (*SubjectAccessReviewStatus) ProtoMessage() {}\nfunc (*SubjectAccessReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{12}\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewStatus proto.InternalMessageInfo\n\nfunc (m *SubjectRulesReviewStatus) Reset()      { *m = SubjectRulesReviewStatus{} }\nfunc (*SubjectRulesReviewStatus) ProtoMessage() {}\nfunc (*SubjectRulesReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_43130d8376f09103, []int{13}\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectRulesReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectRulesReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectRulesReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectRulesReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authorization.v1beta1.ExtraValue\")\n\tproto.RegisterType((*LocalSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.LocalSubjectAccessReview\")\n\tproto.RegisterType((*NonResourceAttributes)(nil), \"k8s.io.api.authorization.v1beta1.NonResourceAttributes\")\n\tproto.RegisterType((*NonResourceRule)(nil), \"k8s.io.api.authorization.v1beta1.NonResourceRule\")\n\tproto.RegisterType((*ResourceAttributes)(nil), \"k8s.io.api.authorization.v1beta1.ResourceAttributes\")\n\tproto.RegisterType((*ResourceRule)(nil), \"k8s.io.api.authorization.v1beta1.ResourceRule\")\n\tproto.RegisterType((*SelfSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectAccessReview\")\n\tproto.RegisterType((*SelfSubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\")\n\tproto.RegisterType((*SelfSubjectRulesReview)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectRulesReview\")\n\tproto.RegisterType((*SelfSubjectRulesReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectRulesReviewSpec\")\n\tproto.RegisterType((*SubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReview\")\n\tproto.RegisterType((*SubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewSpec.ExtraEntry\")\n\tproto.RegisterType((*SubjectAccessReviewStatus)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewStatus\")\n\tproto.RegisterType((*SubjectRulesReviewStatus)(nil), \"k8s.io.api.authorization.v1beta1.SubjectRulesReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1beta1/generated.proto\", fileDescriptor_43130d8376f09103)\n}\n\nvar fileDescriptor_43130d8376f09103 = []byte{\n\t// 1143 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4f, 0x6f, 0x1b, 0x45,\n\t0x14, 0xf7, 0xfa, 0x4f, 0x62, 0x8f, 0x1b, 0x92, 0x4e, 0x94, 0x66, 0x1b, 0x84, 0x6d, 0x19, 0x09,\n\t0x05, 0x51, 0x76, 0x49, 0x54, 0x48, 0x09, 0xf4, 0x10, 0x2b, 0x01, 0x45, 0x6a, 0x4b, 0x35, 0x51,\n\t0x72, 0xa0, 0x12, 0x30, 0xbb, 0x9e, 0xd8, 0x8b, 0xed, 0xdd, 0x65, 0x66, 0xd6, 0x21, 0x88, 0x43,\n\t0x8f, 0x1c, 0x39, 0x72, 0xe4, 0xc4, 0x77, 0xe0, 0x82, 0x04, 0xa7, 0x1c, 0x7b, 0x0c, 0x12, 0xb2,\n\t0xc8, 0xf2, 0x21, 0xb8, 0xa2, 0x99, 0x1d, 0x7b, 0xd7, 0xc9, 0x26, 0x8e, 0x73, 0xa0, 0x97, 0xde,\n\t0x3c, 0xef, 0xf7, 0x7b, 0x6f, 0xde, 0x7b, 0xf3, 0xde, 0xdb, 0x67, 0xb0, 0xdb, 0x79, 0xc0, 0x0c,\n\t0xc7, 0x33, 0x3b, 0x81, 0x45, 0xa8, 0x4b, 0x38, 0x61, 0x66, 0x9f, 0xb8, 0x4d, 0x8f, 0x9a, 0x0a,\n\t0xc0, 0xbe, 0x63, 0xe2, 0x80, 0xb7, 0x3d, 0xea, 0x7c, 0x87, 0xb9, 0xe3, 0xb9, 0x66, 0x7f, 0xcd,\n\t0x22, 0x1c, 0xaf, 0x99, 0x2d, 0xe2, 0x12, 0x8a, 0x39, 0x69, 0x1a, 0x3e, 0xf5, 0xb8, 0x07, 0x6b,\n\t0x91, 0x86, 0x81, 0x7d, 0xc7, 0x18, 0xd3, 0x30, 0x94, 0xc6, 0xca, 0xbb, 0x2d, 0x87, 0xb7, 0x03,\n\t0xcb, 0xb0, 0xbd, 0x9e, 0xd9, 0xf2, 0x5a, 0x9e, 0x29, 0x15, 0xad, 0xe0, 0x50, 0x9e, 0xe4, 0x41,\n\t0xfe, 0x8a, 0x0c, 0xae, 0xdc, 0x8f, 0x5d, 0xe8, 0x61, 0xbb, 0xed, 0xb8, 0x84, 0x1e, 0x9b, 0x7e,\n\t0xa7, 0x25, 0x04, 0xcc, 0xec, 0x11, 0x8e, 0xcd, 0xfe, 0x05, 0x37, 0x56, 0xcc, 0xcb, 0xb4, 0x68,\n\t0xe0, 0x72, 0xa7, 0x47, 0x2e, 0x28, 0x7c, 0x30, 0x49, 0x81, 0xd9, 0x6d, 0xd2, 0xc3, 0xe7, 0xf5,\n\t0xea, 0x1b, 0x00, 0xec, 0x7c, 0xcb, 0x29, 0x3e, 0xc0, 0xdd, 0x80, 0xc0, 0x2a, 0x28, 0x38, 0x9c,\n\t0xf4, 0x98, 0xae, 0xd5, 0x72, 0xab, 0xa5, 0x46, 0x29, 0x1c, 0x54, 0x0b, 0xbb, 0x42, 0x80, 0x22,\n\t0xf9, 0x66, 0xf1, 0xa7, 0x9f, 0xab, 0x99, 0xe7, 0x7f, 0xd5, 0x32, 0xf5, 0xdf, 0xb2, 0x40, 0x7f,\n\t0xe4, 0xd9, 0xb8, 0xbb, 0x17, 0x58, 0x5f, 0x13, 0x9b, 0x6f, 0xd9, 0x36, 0x61, 0x0c, 0x91, 0xbe,\n\t0x43, 0x8e, 0xe0, 0x57, 0xa0, 0x28, 0x22, 0x6b, 0x62, 0x8e, 0x75, 0xad, 0xa6, 0xad, 0x96, 0xd7,\n\t0xdf, 0x33, 0xe2, 0xc4, 0x8e, 0x1c, 0x34, 0xfc, 0x4e, 0x4b, 0x08, 0x98, 0x21, 0xd8, 0x46, 0x7f,\n\t0xcd, 0xf8, 0x4c, 0xda, 0x7a, 0x4c, 0x38, 0x6e, 0xc0, 0x93, 0x41, 0x35, 0x13, 0x0e, 0xaa, 0x20,\n\t0x96, 0xa1, 0x91, 0x55, 0xf8, 0x0c, 0xe4, 0x99, 0x4f, 0x6c, 0x3d, 0x2b, 0xad, 0x7f, 0x68, 0x4c,\n\t0x7a, 0x36, 0x23, 0xc5, 0xcd, 0x3d, 0x9f, 0xd8, 0x8d, 0x5b, 0xea, 0x9a, 0xbc, 0x38, 0x21, 0x69,\n\t0x14, 0xda, 0x60, 0x86, 0x71, 0xcc, 0x03, 0xa6, 0xe7, 0xa4, 0xf9, 0x8f, 0x6e, 0x66, 0x5e, 0x9a,\n\t0x68, 0xbc, 0xa6, 0x2e, 0x98, 0x89, 0xce, 0x48, 0x99, 0xae, 0x3f, 0x03, 0x4b, 0x4f, 0x3c, 0x17,\n\t0x11, 0xe6, 0x05, 0xd4, 0x26, 0x5b, 0x9c, 0x53, 0xc7, 0x0a, 0x38, 0x61, 0xb0, 0x06, 0xf2, 0x3e,\n\t0xe6, 0x6d, 0x99, 0xb8, 0x52, 0xec, 0xdf, 0x53, 0xcc, 0xdb, 0x48, 0x22, 0x82, 0xd1, 0x27, 0xd4,\n\t0x92, 0xc1, 0x27, 0x18, 0x07, 0x84, 0x5a, 0x48, 0x22, 0xf5, 0x6f, 0xc0, 0x7c, 0xc2, 0x38, 0x0a,\n\t0xba, 0xf2, 0x6d, 0x05, 0x34, 0xf6, 0xb6, 0x42, 0x83, 0xa1, 0x48, 0x0e, 0x1f, 0x82, 0x79, 0x37,\n\t0xd6, 0xd9, 0x47, 0x8f, 0x98, 0x9e, 0x95, 0xd4, 0xc5, 0x70, 0x50, 0x4d, 0x9a, 0x13, 0x10, 0x3a,\n\t0xcf, 0x15, 0x05, 0x01, 0x53, 0xa2, 0x31, 0x41, 0xc9, 0xc5, 0x3d, 0xc2, 0x7c, 0x6c, 0x13, 0x15,\n\t0xd2, 0x6d, 0xe5, 0x70, 0xe9, 0xc9, 0x10, 0x40, 0x31, 0x67, 0x72, 0x70, 0xf0, 0x4d, 0x50, 0x68,\n\t0x51, 0x2f, 0xf0, 0xe5, 0xeb, 0x94, 0x1a, 0x73, 0x8a, 0x52, 0xf8, 0x54, 0x08, 0x51, 0x84, 0xc1,\n\t0xb7, 0xc1, 0x6c, 0x9f, 0x50, 0xe6, 0x78, 0xae, 0x9e, 0x97, 0xb4, 0x79, 0x45, 0x9b, 0x3d, 0x88,\n\t0xc4, 0x68, 0x88, 0xc3, 0x7b, 0xa0, 0x48, 0x95, 0xe3, 0x7a, 0x41, 0x72, 0x17, 0x14, 0xb7, 0x38,\n\t0xca, 0xe0, 0x88, 0x01, 0xdf, 0x07, 0x65, 0x16, 0x58, 0x23, 0x85, 0x19, 0xa9, 0xb0, 0xa8, 0x14,\n\t0xca, 0x7b, 0x31, 0x84, 0x92, 0x3c, 0x11, 0x96, 0x88, 0x51, 0x9f, 0x1d, 0x0f, 0x4b, 0xa4, 0x00,\n\t0x49, 0xa4, 0xfe, 0x87, 0x06, 0x6e, 0x4d, 0xf7, 0x62, 0xef, 0x80, 0x12, 0xf6, 0x1d, 0x19, 0xf6,\n\t0xf0, 0xad, 0xe6, 0x44, 0x5e, 0xb7, 0x9e, 0xee, 0x46, 0x42, 0x14, 0xe3, 0x82, 0x3c, 0x74, 0x46,\n\t0xd4, 0xf5, 0x88, 0x3c, 0xbc, 0x92, 0xa1, 0x18, 0x87, 0x1b, 0x60, 0x6e, 0x78, 0x90, 0x8f, 0xa4,\n\t0xe7, 0xa5, 0xc2, 0xed, 0x70, 0x50, 0x9d, 0x43, 0x49, 0x00, 0x8d, 0xf3, 0xea, 0xbf, 0x67, 0xc1,\n\t0xf2, 0x1e, 0xe9, 0x1e, 0xbe, 0x9c, 0xa9, 0xf0, 0xe5, 0xd8, 0x54, 0x78, 0x78, 0x8d, 0xb6, 0x4d,\n\t0x77, 0xf5, 0xe5, 0x4e, 0x86, 0x5f, 0xb2, 0xe0, 0xf5, 0x2b, 0x1c, 0x83, 0xdf, 0x03, 0x48, 0x2f,\n\t0x34, 0x9a, 0xca, 0xe8, 0xfd, 0xc9, 0x0e, 0x5d, 0x6c, 0xd2, 0xc6, 0x9d, 0x70, 0x50, 0x4d, 0x69,\n\t0x5e, 0x94, 0x72, 0x0f, 0xfc, 0x41, 0x03, 0x4b, 0x6e, 0xda, 0xe0, 0x52, 0x59, 0xdf, 0x98, 0xec,\n\t0x41, 0xea, 0xdc, 0x6b, 0xdc, 0x0d, 0x07, 0xd5, 0xf4, 0x91, 0x88, 0xd2, 0x2f, 0x14, 0x23, 0xe7,\n\t0x4e, 0x22, 0x51, 0xa2, 0x69, 0xfe, 0xbf, 0x5a, 0xfb, 0x62, 0xac, 0xd6, 0x3e, 0x9e, 0xaa, 0xd6,\n\t0x12, 0x9e, 0x5e, 0x5a, 0x6a, 0xd6, 0xb9, 0x52, 0xdb, 0xbc, 0x76, 0xa9, 0x25, 0xad, 0x5f, 0x5d,\n\t0x69, 0x8f, 0xc1, 0xca, 0xe5, 0x5e, 0x4d, 0x3d, 0xba, 0xeb, 0xbf, 0x66, 0xc1, 0xe2, 0xab, 0x75,\n\t0xe0, 0x66, 0x4d, 0x7f, 0x9a, 0x07, 0xcb, 0xaf, 0x1a, 0xfe, 0xea, 0x86, 0x17, 0x1f, 0xd1, 0x80,\n\t0x11, 0xaa, 0x3e, 0xfc, 0xa3, 0xb7, 0xda, 0x67, 0x84, 0x22, 0x89, 0xc0, 0xda, 0x70, 0x37, 0x88,\n\t0x3e, 0x58, 0x40, 0x64, 0x5a, 0x7d, 0x0b, 0xd5, 0x62, 0xe0, 0x80, 0x02, 0x11, 0x1b, 0xaf, 0x5e,\n\t0xa8, 0xe5, 0x56, 0xcb, 0xeb, 0xdb, 0x37, 0xae, 0x15, 0x43, 0x2e, 0xce, 0x3b, 0x2e, 0xa7, 0xc7,\n\t0xf1, 0x0e, 0x22, 0x65, 0x28, 0xba, 0x01, 0xbe, 0x01, 0x72, 0x81, 0xd3, 0x54, 0x2b, 0x42, 0x59,\n\t0x51, 0x72, 0xfb, 0xbb, 0xdb, 0x48, 0xc8, 0x57, 0x0e, 0xd5, 0xee, 0x2d, 0x4d, 0xc0, 0x05, 0x90,\n\t0xeb, 0x90, 0xe3, 0xa8, 0xcf, 0x90, 0xf8, 0x09, 0x1b, 0xa0, 0xd0, 0x17, 0x6b, 0xb9, 0xca, 0xf3,\n\t0xbd, 0xc9, 0x9e, 0xc6, 0xab, 0x3c, 0x8a, 0x54, 0x37, 0xb3, 0x0f, 0xb4, 0xfa, 0x9f, 0x1a, 0xb8,\n\t0x7b, 0x69, 0x41, 0x8a, 0x45, 0x09, 0x77, 0xbb, 0xde, 0x11, 0x69, 0xca, 0xbb, 0x8b, 0xf1, 0xa2,\n\t0xb4, 0x15, 0x89, 0xd1, 0x10, 0x87, 0x6f, 0x81, 0x99, 0x26, 0x71, 0x1d, 0xd2, 0x94, 0x2b, 0x55,\n\t0x31, 0xae, 0xe5, 0x6d, 0x29, 0x45, 0x0a, 0x15, 0x3c, 0x4a, 0x30, 0xf3, 0x5c, 0xb5, 0xc4, 0x8d,\n\t0x78, 0x48, 0x4a, 0x91, 0x42, 0xe1, 0x16, 0x98, 0x27, 0xc2, 0x4d, 0x19, 0xc4, 0x0e, 0xa5, 0xde,\n\t0xf0, 0x65, 0x97, 0x95, 0xc2, 0xfc, 0xce, 0x38, 0x8c, 0xce, 0xf3, 0xeb, 0xff, 0x66, 0x81, 0x7e,\n\t0xd9, 0xd8, 0x83, 0x9d, 0x78, 0x8b, 0x91, 0xa0, 0x5c, 0xa4, 0xca, 0xeb, 0xc6, 0xf5, 0x5b, 0x46,\n\t0xa8, 0x35, 0x96, 0x94, 0x37, 0x73, 0x49, 0x69, 0x62, 0xf3, 0x91, 0x47, 0x78, 0x04, 0x16, 0xdc,\n\t0xf1, 0x95, 0x3b, 0xda, 0xc9, 0xca, 0xeb, 0x6b, 0x53, 0x35, 0x88, 0xbc, 0x52, 0x57, 0x57, 0x2e,\n\t0x9c, 0x03, 0x18, 0xba, 0x70, 0x09, 0x5c, 0x07, 0xc0, 0x71, 0x6d, 0xaf, 0xe7, 0x77, 0x09, 0x27,\n\t0x32, 0x81, 0xc5, 0x78, 0x5a, 0xee, 0x8e, 0x10, 0x94, 0x60, 0xa5, 0x65, 0x3e, 0x3f, 0x5d, 0xe6,\n\t0x1b, 0x9f, 0x9c, 0x9c, 0x55, 0x32, 0x2f, 0xce, 0x2a, 0x99, 0xd3, 0xb3, 0x4a, 0xe6, 0x79, 0x58,\n\t0xd1, 0x4e, 0xc2, 0x8a, 0xf6, 0x22, 0xac, 0x68, 0xa7, 0x61, 0x45, 0xfb, 0x3b, 0xac, 0x68, 0x3f,\n\t0xfe, 0x53, 0xc9, 0x7c, 0x5e, 0x9b, 0xf4, 0x0f, 0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x58,\n\t0x16, 0x3a, 0xdf, 0xbd, 0x0f, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.Denied {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Allowed {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectRulesReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Incomplete {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *SubjectRulesReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *LocalSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceAttributes{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceAttributes{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectAccessReviewSpec\", \"SelfSubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectRulesReviewSpec\", \"SelfSubjectRulesReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectRulesReviewStatus\", \"SubjectRulesReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReviewSpec{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&SubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReviewStatus{`,\n\t\t`Allowed:` + fmt.Sprintf(\"%v\", this.Allowed) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`Denied:` + fmt.Sprintf(\"%v\", this.Denied) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectRulesReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]ResourceRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourceRule\", \"ResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourceRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourceRule\", \"NonResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&SubjectRulesReviewStatus{`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`Incomplete:` + fmt.Sprintf(\"%v\", this.Incomplete) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allowed\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allowed = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Denied\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Denied = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourceRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourceRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Incomplete\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Incomplete = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authorization.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authorization/v1beta1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\nmessage LocalSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n  // you made the request against.  If empty, it is defaulted.\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\nmessage NonResourceAttributes {\n  // Path is the URL path of the request\n  // +optional\n  optional string path = 1;\n\n  // Verb is the standard HTTP verb\n  // +optional\n  optional string verb = 2;\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\nmessage NonResourceRule {\n  // Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n  repeated string verbs = 1;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n  // final step in the path.  \"*\" means all.\n  // +optional\n  repeated string nonResourceURLs = 2;\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\nmessage ResourceAttributes {\n  // Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n  // \"\" (empty) is defaulted for LocalSubjectAccessReviews\n  // \"\" (empty) is empty for cluster-scoped resources\n  // \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n  // +optional\n  optional string namespace = 1;\n\n  // Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +optional\n  optional string verb = 2;\n\n  // Group is the API Group of the Resource.  \"*\" means all.\n  // +optional\n  optional string group = 3;\n\n  // Version is the API Version of the Resource.  \"*\" means all.\n  // +optional\n  optional string version = 4;\n\n  // Resource is one of the existing resource types.  \"*\" means all.\n  // +optional\n  optional string resource = 5;\n\n  // Subresource is one of the existing resource types.  \"\" means none.\n  // +optional\n  optional string subresource = 6;\n\n  // Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n  // +optional\n  optional string name = 7;\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\nmessage ResourceRule {\n  // Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed.  \"*\" means all.\n  // +optional\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n  //  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n  // +optional\n  repeated string resourceNames = 4;\n}\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\nmessage SelfSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  user and groups must be empty\n  optional SelfSubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SelfSubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n}\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\nmessage SelfSubjectRulesReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.\n  optional SelfSubjectRulesReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates the set of actions a user can perform.\n  // +optional\n  optional SubjectRulesReviewStatus status = 3;\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\nmessage SelfSubjectRulesReviewSpec {\n  // Namespace to evaluate rules for. Required.\n  optional string namespace = 1;\n}\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\nmessage SubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n\n  // User is the user you're testing for.\n  // If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups\n  // +optional\n  optional string user = 3;\n\n  // Groups is the groups you're testing for.\n  // +optional\n  repeated string group = 4;\n\n  // Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n  // it needs a reflection here.\n  // +optional\n  map<string, ExtraValue> extra = 5;\n\n  // UID information about the requesting user.\n  // +optional\n  optional string uid = 6;\n}\n\n// SubjectAccessReviewStatus\nmessage SubjectAccessReviewStatus {\n  // Allowed is required. True if the action would be allowed, false otherwise.\n  optional bool allowed = 1;\n\n  // Denied is optional. True if the action would be denied, otherwise\n  // false. If both allowed is false and denied is false, then the\n  // authorizer has no opinion on whether to authorize the action. Denied\n  // may not be true if Allowed is true.\n  // +optional\n  optional bool denied = 4;\n\n  // Reason is optional.  It indicates why a request was allowed or denied.\n  // +optional\n  optional string reason = 2;\n\n  // EvaluationError is an indication that some error occurred during the authorization check.\n  // It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n  // For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n  // +optional\n  optional string evaluationError = 3;\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\nmessage SubjectRulesReviewStatus {\n  // ResourceRules is the list of actions the subject is allowed to perform on resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  repeated ResourceRule resourceRules = 1;\n\n  // NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  repeated NonResourceRule nonResourceRules = 2;\n\n  // Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n  // encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n  optional bool incomplete = 3;\n\n  // EvaluationError can appear in combination with Rules. It indicates an error occurred during\n  // rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n  // ResourceRules and/or NonResourceRules may be incomplete.\n  // +optional\n  optional string evaluationError = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectRulesReview{},\n\t\t&SelfSubjectAccessReview{},\n\t\t&SubjectAccessReview{},\n\t\t&LocalSubjectAccessReview{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SubjectAccessReview\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\ntype SubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectAccessReview\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\ntype SelfSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  user and groups must be empty\n\tSpec SelfSubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,LocalSubjectAccessReview\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\ntype LocalSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n\t// you made the request against.  If empty, it is defaulted.\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\ntype ResourceAttributes struct {\n\t// Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n\t// \"\" (empty) is defaulted for LocalSubjectAccessReviews\n\t// \"\" (empty) is empty for cluster-scoped resources\n\t// \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n\t// Group is the API Group of the Resource.  \"*\" means all.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// Version is the API Version of the Resource.  \"*\" means all.\n\t// +optional\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,4,opt,name=version\"`\n\t// Resource is one of the existing resource types.  \"*\" means all.\n\t// +optional\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,5,opt,name=resource\"`\n\t// Subresource is one of the existing resource types.  \"\" means none.\n\t// +optional\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,6,opt,name=subresource\"`\n\t// Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,7,opt,name=name\"`\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\ntype NonResourceAttributes struct {\n\t// Path is the URL path of the request\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Verb is the standard HTTP verb\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n\n\t// User is the user you're testing for.\n\t// If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// Groups is the groups you're testing for.\n\t// +optional\n\tGroups []string `json:\"group,omitempty\" protobuf:\"bytes,4,rep,name=group\"`\n\t// Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n\t// it needs a reflection here.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,5,rep,name=extra\"`\n\t// UID information about the requesting user.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SelfSubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n}\n\n// SubjectAccessReviewStatus\ntype SubjectAccessReviewStatus struct {\n\t// Allowed is required. True if the action would be allowed, false otherwise.\n\tAllowed bool `json:\"allowed\" protobuf:\"varint,1,opt,name=allowed\"`\n\t// Denied is optional. True if the action would be denied, otherwise\n\t// false. If both allowed is false and denied is false, then the\n\t// authorizer has no opinion on whether to authorize the action. Denied\n\t// may not be true if Allowed is true.\n\t// +optional\n\tDenied bool `json:\"denied,omitempty\" protobuf:\"varint,4,opt,name=denied\"`\n\t// Reason is optional.  It indicates why a request was allowed or denied.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// EvaluationError is an indication that some error occurred during the authorization check.\n\t// It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n\t// For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,3,opt,name=evaluationError\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectRulesReview\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\ntype SelfSubjectRulesReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.\n\tSpec SelfSubjectRulesReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates the set of actions a user can perform.\n\t// +optional\n\tStatus SubjectRulesReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\ntype SelfSubjectRulesReviewSpec struct {\n\t// Namespace to evaluate rules for. Required.\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\ntype SubjectRulesReviewStatus struct {\n\t// ResourceRules is the list of actions the subject is allowed to perform on resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\tResourceRules []ResourceRule `json:\"resourceRules\" protobuf:\"bytes,1,rep,name=resourceRules\"`\n\t// NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\tNonResourceRules []NonResourceRule `json:\"nonResourceRules\" protobuf:\"bytes,2,rep,name=nonResourceRules\"`\n\t// Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n\t// encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n\tIncomplete bool `json:\"incomplete\" protobuf:\"bytes,3,rep,name=incomplete\"`\n\t// EvaluationError can appear in combination with Rules. It indicates an error occurred during\n\t// rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n\t// ResourceRules and/or NonResourceRules may be incomplete.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,4,opt,name=evaluationError\"`\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\ntype ResourceRule struct {\n\t// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed.  \"*\" means all.\n\t// +optional\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n\t//  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\ntype NonResourceRule struct {\n\t// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n\t// final step in the path.  \"*\" means all.\n\t// +optional\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,2,rep,name=nonResourceURLs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_LocalSubjectAccessReview = map[string]string{\n\t\"\":         \"LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace you made the request against.  If empty, it is defaulted.\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (LocalSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_LocalSubjectAccessReview\n}\n\nvar map_NonResourceAttributes = map[string]string{\n\t\"\":     \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n\t\"path\": \"Path is the URL path of the request\",\n\t\"verb\": \"Verb is the standard HTTP verb\",\n}\n\nfunc (NonResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_NonResourceAttributes\n}\n\nvar map_NonResourceRule = map[string]string{\n\t\"\":                \"NonResourceRule holds information that describes a rule for the non-resource\",\n\t\"verbs\":           \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \\\"*\\\" means all.\",\n}\n\nfunc (NonResourceRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourceRule\n}\n\nvar map_ResourceAttributes = map[string]string{\n\t\"\":            \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n\t\"namespace\":   \"Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \\\"\\\" (empty) is defaulted for LocalSubjectAccessReviews \\\"\\\" (empty) is empty for cluster-scoped resources \\\"\\\" (empty) means \\\"all\\\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\",\n\t\"verb\":        \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"group\":       \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n\t\"version\":     \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n\t\"resource\":    \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n\t\"subresource\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n\t\"name\":        \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n}\n\nfunc (ResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_ResourceAttributes\n}\n\nvar map_ResourceRule = map[string]string{\n\t\"\":              \"ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"verbs\":         \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"apiGroups\":     \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\n\t\"resources\":     \"Resources is a list of resources this rule applies to.  \\\"*\\\" means all in the specified apiGroups.\\n \\\"*/foo\\\" represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n}\n\nfunc (ResourceRule) SwaggerDoc() map[string]string {\n\treturn map_ResourceRule\n}\n\nvar map_SelfSubjectAccessReview = map[string]string{\n\t\"\":         \"SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \\\"in all namespaces\\\".  Self is a special case, because users should always be able to check whether they can perform an action\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SelfSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReview\n}\n\nvar map_SelfSubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n}\n\nfunc (SelfSubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReviewSpec\n}\n\nvar map_SelfSubjectRulesReview = map[string]string{\n\t\"\":         \"SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.\",\n\t\"status\":   \"Status is filled in by the server and indicates the set of actions a user can perform.\",\n}\n\nfunc (SelfSubjectRulesReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReview\n}\n\nvar map_SelfSubjectRulesReviewSpec = map[string]string{\n\t\"\":          \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n\t\"namespace\": \"Namespace to evaluate rules for. Required.\",\n}\n\nfunc (SelfSubjectRulesReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReviewSpec\n}\n\nvar map_SubjectAccessReview = map[string]string{\n\t\"\":         \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReview\n}\n\nvar map_SubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n\t\"user\":                  \"User is the user you're testing for. If you specify \\\"User\\\" but not \\\"Group\\\", then is it interpreted as \\\"What if User were not a member of any groups\",\n\t\"group\":                 \"Groups is the groups you're testing for.\",\n\t\"extra\":                 \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n\t\"uid\":                   \"UID information about the requesting user.\",\n}\n\nfunc (SubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewSpec\n}\n\nvar map_SubjectAccessReviewStatus = map[string]string{\n\t\"\":                \"SubjectAccessReviewStatus\",\n\t\"allowed\":         \"Allowed is required. True if the action would be allowed, false otherwise.\",\n\t\"denied\":          \"Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.\",\n\t\"reason\":          \"Reason is optional.  It indicates why a request was allowed or denied.\",\n\t\"evaluationError\": \"EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\",\n}\n\nfunc (SubjectAccessReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewStatus\n}\n\nvar map_SubjectRulesReviewStatus = map[string]string{\n\t\"\":                 \"SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.\",\n\t\"resourceRules\":    \"ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"nonResourceRules\": \"NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"incomplete\":       \"Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\",\n\t\"evaluationError\":  \"EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.\",\n}\n\nfunc (SubjectRulesReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectRulesReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSubjectAccessReview.\nfunc (in *LocalSubjectAccessReview) DeepCopy() *LocalSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LocalSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceAttributes) DeepCopyInto(out *NonResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceAttributes.\nfunc (in *NonResourceAttributes) DeepCopy() *NonResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceRule) DeepCopyInto(out *NonResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceRule.\nfunc (in *NonResourceRule) DeepCopy() *NonResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceAttributes) DeepCopyInto(out *ResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAttributes.\nfunc (in *ResourceAttributes) DeepCopy() *ResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRule) DeepCopyInto(out *ResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRule.\nfunc (in *ResourceRule) DeepCopy() *ResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReview) DeepCopyInto(out *SelfSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReview.\nfunc (in *SelfSubjectAccessReview) DeepCopy() *SelfSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReviewSpec.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopy() *SelfSubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReview) DeepCopyInto(out *SelfSubjectRulesReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReview.\nfunc (in *SelfSubjectRulesReview) DeepCopy() *SelfSubjectRulesReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectRulesReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopyInto(out *SelfSubjectRulesReviewSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReviewSpec.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopy() *SelfSubjectRulesReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReview) DeepCopyInto(out *SubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReview.\nfunc (in *SubjectAccessReview) DeepCopy() *SubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewSpec.\nfunc (in *SubjectAccessReviewSpec) DeepCopy() *SubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewStatus) DeepCopyInto(out *SubjectAccessReviewStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewStatus.\nfunc (in *SubjectAccessReviewStatus) DeepCopy() *SubjectAccessReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectRulesReviewStatus) DeepCopyInto(out *SubjectRulesReviewStatus) {\n\t*out = *in\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewStatus.\nfunc (in *SubjectRulesReviewStatus) DeepCopy() *SubjectRulesReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectRulesReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LocalSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LocalSubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *LocalSubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"LocalSubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LocalSubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SelfSubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SelfSubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectRulesReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectRulesReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SelfSubjectRulesReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SelfSubjectRulesReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectRulesReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\npackage v1 // import \"k8s.io/api/autoscaling/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{5}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{6}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{7}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{10}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{11}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{12}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{13}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{14}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{15}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{16}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{17}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{18}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{19}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2bb1f2101a7f10e2, []int{20}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v1.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ExternalMetricStatus\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v1.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v1.MetricStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v1.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ResourceMetricStatus\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.autoscaling.v1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.autoscaling.v1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.autoscaling.v1.ScaleStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v1/generated.proto\", fileDescriptor_2bb1f2101a7f10e2)\n}\n\nvar fileDescriptor_2bb1f2101a7f10e2 = []byte{\n\t// 1608 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6c, 0xd4, 0xc6,\n\t0x17, 0xcf, 0x7e, 0x24, 0x24, 0x6f, 0x43, 0x3e, 0x06, 0xfe, 0x90, 0x84, 0x3f, 0xeb, 0xc8, 0x7f,\n\t0x84, 0xf2, 0x6f, 0x8b, 0xdd, 0x6c, 0x29, 0xa2, 0xa7, 0x2a, 0xde, 0x96, 0x82, 0x9a, 0x85, 0x30,\n\t0x09, 0x94, 0x7e, 0x8a, 0x89, 0x77, 0xd8, 0x98, 0xac, 0xed, 0x95, 0xed, 0x5d, 0x11, 0x24, 0xa4,\n\t0xf6, 0xd0, 0x7b, 0x2f, 0xb4, 0xd7, 0x56, 0xea, 0xb5, 0x67, 0xce, 0xbd, 0x71, 0xe4, 0x80, 0x54,\n\t0x4e, 0xab, 0xe2, 0x1e, 0x7a, 0xe8, 0xa9, 0x57, 0x4e, 0x95, 0xc7, 0x63, 0xaf, 0xbd, 0xbb, 0x76,\n\t0x36, 0x9b, 0x10, 0xb5, 0x15, 0xb7, 0x78, 0xe7, 0xbd, 0xdf, 0x9b, 0x79, 0xdf, 0xef, 0x05, 0x94,\n\t0xed, 0x8b, 0xb6, 0xa4, 0x99, 0xf2, 0x76, 0x73, 0x93, 0x5a, 0x06, 0x75, 0xa8, 0x2d, 0xb7, 0xa8,\n\t0x51, 0x35, 0x2d, 0x99, 0x1f, 0x90, 0x86, 0x26, 0x93, 0xa6, 0x63, 0xda, 0x2a, 0xa9, 0x6b, 0x46,\n\t0x4d, 0x6e, 0x2d, 0xcb, 0x35, 0x6a, 0x50, 0x8b, 0x38, 0xb4, 0x2a, 0x35, 0x2c, 0xd3, 0x31, 0xd1,\n\t0xbc, 0x4f, 0x2a, 0x91, 0x86, 0x26, 0x45, 0x48, 0xa5, 0xd6, 0xf2, 0xc2, 0xb9, 0x9a, 0xe6, 0x6c,\n\t0x35, 0x37, 0x25, 0xd5, 0xd4, 0xe5, 0x9a, 0x59, 0x33, 0x65, 0xc6, 0xb1, 0xd9, 0xbc, 0xc3, 0xbe,\n\t0xd8, 0x07, 0xfb, 0xcb, 0x47, 0x5a, 0x10, 0x23, 0x42, 0x55, 0xd3, 0xa2, 0x7d, 0xa4, 0x2d, 0x9c,\n\t0xef, 0xd0, 0xe8, 0x44, 0xdd, 0xd2, 0x0c, 0x6a, 0xed, 0xc8, 0x8d, 0xed, 0x1a, 0x63, 0xb2, 0xa8,\n\t0x6d, 0x36, 0x2d, 0x95, 0xee, 0x89, 0xcb, 0x96, 0x75, 0xea, 0x90, 0x7e, 0xb2, 0xe4, 0x24, 0x2e,\n\t0xab, 0x69, 0x38, 0x9a, 0xde, 0x2b, 0xe6, 0xc2, 0x6e, 0x0c, 0xb6, 0xba, 0x45, 0x75, 0xd2, 0xcd,\n\t0x27, 0xfe, 0x9e, 0x85, 0xd3, 0x65, 0xd3, 0x70, 0x88, 0xc7, 0x81, 0xf9, 0x23, 0x2a, 0xd4, 0xb1,\n\t0x34, 0x75, 0x9d, 0xfd, 0x8d, 0xca, 0x90, 0x37, 0x88, 0x4e, 0xe7, 0x32, 0x8b, 0x99, 0xa5, 0x09,\n\t0x45, 0x7e, 0xdc, 0x16, 0x46, 0xdc, 0xb6, 0x90, 0xbf, 0x4a, 0x74, 0xfa, 0xa2, 0x2d, 0x08, 0xbd,\n\t0x8a, 0x93, 0x02, 0x18, 0x8f, 0x04, 0x33, 0x66, 0x74, 0x0b, 0xe6, 0x1c, 0x62, 0xd5, 0xa8, 0xb3,\n\t0xd2, 0xa2, 0x16, 0xa9, 0xd1, 0x1b, 0x8e, 0x56, 0xd7, 0xee, 0x13, 0x47, 0x33, 0x8d, 0xb9, 0xec,\n\t0x62, 0x66, 0x69, 0x54, 0xf9, 0xaf, 0xdb, 0x16, 0xe6, 0x36, 0x12, 0x68, 0x70, 0x22, 0x37, 0x6a,\n\t0x01, 0x8a, 0x9d, 0xdd, 0x24, 0xf5, 0x26, 0x9d, 0xcb, 0x2d, 0x66, 0x96, 0x0a, 0x25, 0x49, 0xea,\n\t0x38, 0x48, 0xa8, 0x15, 0xa9, 0xb1, 0x5d, 0x63, 0x1e, 0x13, 0x98, 0x4c, 0xba, 0xde, 0x24, 0x86,\n\t0xa3, 0x39, 0x3b, 0xca, 0x09, 0xb7, 0x2d, 0xa0, 0x8d, 0x1e, 0x34, 0xdc, 0x47, 0x02, 0x92, 0x61,\n\t0x42, 0x0d, 0xf4, 0x36, 0x37, 0xca, 0x74, 0x33, 0xcb, 0x75, 0x33, 0xd1, 0x51, 0x68, 0x87, 0x46,\n\t0xfc, 0x33, 0x45, 0xd3, 0x0e, 0x71, 0x9a, 0xf6, 0xc1, 0x68, 0xfa, 0x53, 0x98, 0x57, 0x9b, 0x96,\n\t0x45, 0x8d, 0x64, 0x55, 0x9f, 0x76, 0xdb, 0xc2, 0x7c, 0x39, 0x89, 0x08, 0x27, 0xf3, 0xa3, 0x07,\n\t0x70, 0x2c, 0x7e, 0xb8, 0x1f, 0x6d, 0x9f, 0xe2, 0x0f, 0x3c, 0x56, 0xee, 0x85, 0xc4, 0xfd, 0xe4,\n\t0xc4, 0x75, 0x9e, 0x1f, 0x40, 0xe7, 0x0f, 0x33, 0x70, 0xaa, 0x6c, 0x99, 0xb6, 0x7d, 0x93, 0x5a,\n\t0xb6, 0x66, 0x1a, 0xd7, 0x36, 0xef, 0x52, 0xd5, 0xc1, 0xf4, 0x0e, 0xb5, 0xa8, 0xa1, 0x52, 0xb4,\n\t0x08, 0xf9, 0x6d, 0xcd, 0xa8, 0x72, 0x8d, 0x4f, 0x06, 0x1a, 0xff, 0x50, 0x33, 0xaa, 0x98, 0x9d,\n\t0x78, 0x14, 0xcc, 0x26, 0xd9, 0x38, 0x45, 0x44, 0xe1, 0x25, 0x00, 0xd2, 0xd0, 0xb8, 0x00, 0xa6,\n\t0x8a, 0x09, 0x05, 0x71, 0x3a, 0x58, 0x59, 0xbb, 0xc2, 0x4f, 0x70, 0x84, 0x4a, 0xfc, 0x36, 0x07,\n\t0xc7, 0xdf, 0xbf, 0xe7, 0x50, 0xcb, 0x20, 0xf5, 0x58, 0xb0, 0x95, 0x00, 0x74, 0xf6, 0x7d, 0xb5,\n\t0xe3, 0x08, 0x21, 0x58, 0x25, 0x3c, 0xc1, 0x11, 0x2a, 0x64, 0xc2, 0x94, 0xff, 0xb5, 0x4e, 0xeb,\n\t0x54, 0x75, 0x4c, 0x8b, 0x5d, 0xb6, 0x50, 0x7a, 0x2b, 0xcd, 0x1e, 0xb6, 0xe4, 0xa5, 0x1e, 0xa9,\n\t0xb5, 0x2c, 0xad, 0x92, 0x4d, 0x5a, 0x0f, 0x58, 0x15, 0xe4, 0xb6, 0x85, 0xa9, 0x4a, 0x0c, 0x0e,\n\t0x77, 0xc1, 0x23, 0x02, 0x05, 0x3f, 0x20, 0xf6, 0x63, 0xfd, 0x69, 0xb7, 0x2d, 0x14, 0x36, 0x3a,\n\t0x30, 0x38, 0x8a, 0x99, 0x10, 0xd5, 0xf9, 0x97, 0x1d, 0xd5, 0xe2, 0xf7, 0xbd, 0x86, 0xf1, 0x63,\n\t0xf3, 0x1f, 0x61, 0x98, 0x2d, 0x98, 0xe4, 0x61, 0xb3, 0x1f, 0xcb, 0x1c, 0xe7, 0xcf, 0x9a, 0x2c,\n\t0x47, 0xb0, 0x70, 0x0c, 0x19, 0xed, 0xf4, 0x4f, 0x04, 0xc3, 0x19, 0xe8, 0xe4, 0x5e, 0x92, 0x80,\n\t0xf8, 0x28, 0x0b, 0x27, 0x2f, 0x9b, 0x96, 0x76, 0xdf, 0x8b, 0xf2, 0xfa, 0x9a, 0x59, 0x5d, 0xe1,\n\t0x95, 0x9f, 0x5a, 0xe8, 0x36, 0x8c, 0x7b, 0xda, 0xab, 0x12, 0x87, 0x30, 0x1b, 0x15, 0x4a, 0x6f,\n\t0x0e, 0xa6, 0x6b, 0x3f, 0x31, 0x54, 0xa8, 0x43, 0x3a, 0x56, 0xed, 0xfc, 0x86, 0x43, 0x54, 0x74,\n\t0x0b, 0xf2, 0x76, 0x83, 0xaa, 0xdc, 0x92, 0x17, 0xa4, 0xc4, 0x0e, 0x44, 0x4a, 0xb8, 0xe3, 0x7a,\n\t0x83, 0xaa, 0x9d, 0x3c, 0xe2, 0x7d, 0x61, 0x86, 0x88, 0x6e, 0xc3, 0x98, 0xcd, 0x7c, 0x8d, 0x9b,\n\t0xed, 0xe2, 0x10, 0xd8, 0x8c, 0x5f, 0x99, 0xe2, 0xe8, 0x63, 0xfe, 0x37, 0xe6, 0xb8, 0xe2, 0xd7,\n\t0x39, 0x58, 0x4c, 0xe0, 0x2c, 0x9b, 0x46, 0x55, 0x63, 0x29, 0xfe, 0x32, 0xe4, 0x9d, 0x9d, 0x46,\n\t0xe0, 0xe2, 0xe7, 0x83, 0x8b, 0x6e, 0xec, 0x34, 0xbc, 0x22, 0x74, 0x66, 0x37, 0x7e, 0x8f, 0x0e,\n\t0x33, 0x04, 0xb4, 0x1a, 0x3e, 0x28, 0x1b, 0xc3, 0xe2, 0xd7, 0x7a, 0xd1, 0x16, 0xfa, 0x74, 0x5d,\n\t0x52, 0x88, 0x14, 0xbf, 0xbc, 0x97, 0x11, 0xea, 0xc4, 0x76, 0x36, 0x2c, 0x62, 0xd8, 0xbe, 0x24,\n\t0x4d, 0x0f, 0x3c, 0xfc, 0xb5, 0xc1, 0x8c, 0xec, 0x71, 0x28, 0x0b, 0xfc, 0x16, 0x68, 0xb5, 0x07,\n\t0x0d, 0xf7, 0x91, 0x80, 0xce, 0xc2, 0x98, 0x45, 0x89, 0x6d, 0x1a, 0xbc, 0xe0, 0x84, 0xca, 0xc5,\n\t0xec, 0x57, 0xcc, 0x4f, 0xd1, 0xff, 0xe1, 0x88, 0x4e, 0x6d, 0x9b, 0xd4, 0x28, 0xef, 0x06, 0xa6,\n\t0x39, 0xe1, 0x91, 0x8a, 0xff, 0x33, 0x0e, 0xce, 0xc5, 0xa7, 0x19, 0x38, 0x95, 0xa0, 0xc7, 0x55,\n\t0xcd, 0x76, 0xd0, 0x67, 0x3d, 0x5e, 0x2c, 0x0d, 0x98, 0x31, 0x34, 0xdb, 0xf7, 0xe1, 0x19, 0x2e,\n\t0x7b, 0x3c, 0xf8, 0x25, 0xe2, 0xc1, 0x1f, 0xc1, 0xa8, 0xe6, 0x50, 0xdd, 0xb3, 0x4a, 0x6e, 0xa9,\n\t0x50, 0x2a, 0xed, 0xdd, 0xcd, 0x94, 0xa3, 0x1c, 0x7e, 0xf4, 0x8a, 0x07, 0x84, 0x7d, 0x3c, 0xf1,\n\t0x8f, 0x6c, 0xe2, 0xb3, 0x3c, 0x37, 0x47, 0x2d, 0x98, 0x62, 0x5f, 0x7e, 0x2a, 0xc6, 0xf4, 0x0e,\n\t0x7f, 0x5c, 0x5a, 0x10, 0xa5, 0x14, 0x6f, 0xe5, 0x04, 0xbf, 0xc5, 0xd4, 0x7a, 0x0c, 0x15, 0x77,\n\t0x49, 0x41, 0xcb, 0x50, 0xd0, 0x35, 0x03, 0xd3, 0x46, 0x5d, 0x53, 0x89, 0xcd, 0x7b, 0x20, 0x56,\n\t0x7e, 0x2a, 0x9d, 0x9f, 0x71, 0x94, 0x06, 0xbd, 0x0d, 0x05, 0x9d, 0xdc, 0x0b, 0x59, 0x72, 0x8c,\n\t0xe5, 0x18, 0x97, 0x57, 0xa8, 0x74, 0x8e, 0x70, 0x94, 0x0e, 0xdd, 0x85, 0xa2, 0x5f, 0x53, 0xca,\n\t0x6b, 0x37, 0x22, 0x6d, 0xd3, 0x1a, 0xb5, 0x54, 0x6a, 0x38, 0x9e, 0x6b, 0xe4, 0x19, 0x92, 0xe8,\n\t0xb6, 0x85, 0xe2, 0x46, 0x2a, 0x25, 0xde, 0x05, 0x49, 0xfc, 0x39, 0x07, 0xa7, 0x53, 0xd3, 0x00,\n\t0xba, 0x04, 0xc8, 0xdc, 0xb4, 0xa9, 0xd5, 0xa2, 0xd5, 0x0f, 0xfc, 0xae, 0xdf, 0x6b, 0x50, 0x3c,\n\t0x9d, 0xe7, 0xfc, 0x9a, 0x78, 0xad, 0xe7, 0x14, 0xf7, 0xe1, 0x40, 0x2a, 0x1c, 0xf5, 0xe2, 0xc2,\n\t0xd7, 0xb2, 0xc6, 0x7b, 0xa1, 0xbd, 0x05, 0xdd, 0xac, 0xdb, 0x16, 0x8e, 0xae, 0x46, 0x41, 0x70,\n\t0x1c, 0x13, 0xad, 0xc0, 0x34, 0x4f, 0xf6, 0x5d, 0x5a, 0x3f, 0xc9, 0xb5, 0x3e, 0x5d, 0x8e, 0x1f,\n\t0xe3, 0x6e, 0x7a, 0x0f, 0xa2, 0x4a, 0x6d, 0xcd, 0xa2, 0xd5, 0x10, 0x22, 0x1f, 0x87, 0x78, 0x2f,\n\t0x7e, 0x8c, 0xbb, 0xe9, 0x91, 0x0e, 0x02, 0x47, 0x4d, 0xb4, 0xe0, 0x28, 0x83, 0xfc, 0x9f, 0xdb,\n\t0x16, 0x84, 0x72, 0x3a, 0x29, 0xde, 0x0d, 0x4b, 0x7c, 0x98, 0x07, 0xde, 0x3b, 0xb0, 0x00, 0x39,\n\t0x1f, 0x4b, 0xbd, 0x8b, 0x5d, 0xa9, 0x77, 0x26, 0xda, 0x28, 0x46, 0xd2, 0xec, 0x75, 0x18, 0x33,\n\t0x59, 0x64, 0x70, 0xbb, 0x9c, 0x4b, 0x09, 0xa7, 0xb0, 0xa4, 0x85, 0x40, 0x0a, 0x78, 0xb9, 0x8c,\n\t0x87, 0x16, 0x07, 0x42, 0x57, 0x20, 0xdf, 0x30, 0xab, 0x41, 0x21, 0x7a, 0x3d, 0x05, 0x70, 0xcd,\n\t0xac, 0xda, 0x31, 0xb8, 0x71, 0xef, 0xc6, 0xde, 0xaf, 0x98, 0x41, 0xa0, 0x8f, 0x61, 0x3c, 0x28,\n\t0xf8, 0xbc, 0x3b, 0x90, 0x53, 0xe0, 0xfa, 0x0d, 0xa0, 0xca, 0xa4, 0x97, 0xc8, 0x82, 0x13, 0x1c,\n\t0xc2, 0xa1, 0x07, 0x30, 0xab, 0x76, 0xcf, 0x53, 0x73, 0x47, 0x76, 0xad, 0x9d, 0xa9, 0xd3, 0xae,\n\t0xf2, 0x1f, 0xb7, 0x2d, 0xcc, 0xf6, 0x90, 0xe0, 0x5e, 0x49, 0xde, 0xcb, 0x28, 0xef, 0x14, 0x99,\n\t0x53, 0xa4, 0xbf, 0xac, 0x5f, 0xb7, 0xef, 0xbf, 0x2c, 0x38, 0xc1, 0x21, 0x9c, 0xf8, 0x5d, 0x1e,\n\t0x26, 0x63, 0xdd, 0xe7, 0x21, 0x7b, 0x86, 0xdf, 0x46, 0x1c, 0x98, 0x67, 0xf8, 0x70, 0x07, 0xea,\n\t0x19, 0x3e, 0xe4, 0x21, 0x79, 0x86, 0x2f, 0xec, 0x90, 0x3c, 0x23, 0xf2, 0xb2, 0x3e, 0x9e, 0xf1,\n\t0x34, 0x07, 0xa8, 0x37, 0x88, 0xd1, 0x17, 0x30, 0xe6, 0x97, 0x8b, 0x7d, 0x96, 0xd4, 0xb0, 0xb9,\n\t0xe1, 0xd5, 0x93, 0xa3, 0x76, 0x4d, 0x3f, 0xd9, 0x81, 0xa6, 0x1f, 0x7a, 0x10, 0x53, 0x62, 0x58,\n\t0x73, 0x13, 0x27, 0xc5, 0xcf, 0x61, 0xdc, 0x0e, 0xc6, 0xab, 0xfc, 0xf0, 0xe3, 0x15, 0x53, 0x78,\n\t0x38, 0x58, 0x85, 0x90, 0xa8, 0x0a, 0x93, 0x24, 0x3a, 0xe1, 0x8c, 0x0e, 0xf5, 0x8c, 0x19, 0x6f,\n\t0x9c, 0x8a, 0x8d, 0x36, 0x31, 0x54, 0xf1, 0x97, 0x6e, 0xb3, 0xfa, 0x61, 0xff, 0x77, 0x34, 0xeb,\n\t0xe1, 0xcd, 0x98, 0xff, 0x0a, 0xcb, 0xfe, 0x90, 0x85, 0x99, 0xee, 0x22, 0x39, 0xd4, 0x32, 0xe1,\n\t0x7e, 0xdf, 0x8d, 0x48, 0x76, 0xa8, 0x4b, 0x87, 0x33, 0xd0, 0x80, 0xbb, 0xce, 0xa8, 0x25, 0x72,\n\t0x07, 0x6e, 0x09, 0xf1, 0xc7, 0xb8, 0x8e, 0x86, 0x5f, 0xb8, 0x24, 0xac, 0x27, 0xb3, 0x87, 0xb4,\n\t0x9e, 0x7c, 0xc9, 0x6a, 0xfa, 0x29, 0x0b, 0xc7, 0x5f, 0x6d, 0xe8, 0x07, 0xdf, 0xe5, 0x3d, 0xea,\n\t0xd5, 0xd7, 0xab, 0x3d, 0xfb, 0x40, 0x2b, 0xb6, 0xaf, 0xb2, 0x30, 0xca, 0x46, 0xb3, 0x43, 0x58,\n\t0xa8, 0x5d, 0x8a, 0x2d, 0xd4, 0xce, 0xa4, 0x54, 0x38, 0x76, 0xa3, 0xc4, 0xf5, 0xd9, 0xd5, 0xae,\n\t0xf5, 0xd9, 0xd9, 0x5d, 0x91, 0xd2, 0x97, 0x65, 0xef, 0xc0, 0x44, 0x28, 0x10, 0xbd, 0xe1, 0xf5,\n\t0xaa, 0x7c, 0xa6, 0xcc, 0x30, 0xdb, 0x86, 0x1b, 0x96, 0x70, 0x98, 0x0c, 0x29, 0x44, 0x0d, 0x0a,\n\t0x11, 0x09, 0x7b, 0x63, 0xf6, 0xa8, 0xed, 0xe8, 0xba, 0x78, 0xa2, 0x43, 0xdd, 0x9b, 0x13, 0x94,\n\t0x77, 0x1f, 0x3f, 0x2f, 0x8e, 0x3c, 0x79, 0x5e, 0x1c, 0x79, 0xf6, 0xbc, 0x38, 0xf2, 0xa5, 0x5b,\n\t0xcc, 0x3c, 0x76, 0x8b, 0x99, 0x27, 0x6e, 0x31, 0xf3, 0xcc, 0x2d, 0x66, 0x7e, 0x75, 0x8b, 0x99,\n\t0x6f, 0x7e, 0x2b, 0x8e, 0x7c, 0x32, 0x9f, 0xf8, 0x2f, 0xd5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff,\n\t0x5d, 0x92, 0x55, 0x29, 0x87, 0x1d, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TargetValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetCPUUtilizationPercentage != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetCPUUtilizationPercentage))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentCPUUtilizationPercentage != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentCPUUtilizationPercentage))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Selector)\n\tcopy(dAtA[i:], m.Selector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Selector)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetValue != nil {\n\t\tl = m.TargetValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageValue != nil {\n\t\tl = m.CurrentAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif m.TargetCPUUtilizationPercentage != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetCPUUtilizationPercentage))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif m.CurrentCPUUtilizationPercentage != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentCPUUtilizationPercentage))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tl = len(m.Selector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`TargetValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`TargetCPUUtilizationPercentage:` + valueToStringGenerated(this.TargetCPUUtilizationPercentage) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentCPUUtilizationPercentage:` + valueToStringGenerated(this.CurrentCPUUtilizationPercentage) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + fmt.Sprintf(\"%v\", this.Selector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetValue == nil {\n\t\t\t\tm.TargetValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CurrentAverageValue == nil {\n\t\t\t\tm.CurrentAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetCPUUtilizationPercentage\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetCPUUtilizationPercentage = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentCPUUtilizationPercentage\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentCPUUtilizationPercentage = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v1\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in the requests and limits, describing a single container in\n// each of the pods of the current scale target(e.g. CPU or memory). The values will be\n// averaged together before being compared to the target. Such metrics are built into\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source. Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target.\n  optional string container = 5;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling taget\n  optional string container = 4;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\n// +structType=atomic\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metricName is the name of the metric in question.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  // Mutually exclusive with TargetAverageValue.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // targetAverageValue is the target per-pod value of global metric (as a quantity).\n  // Mutually exclusive with TargetValue.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metricName is the name of a metric used for autoscaling in\n  // metric system.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // currentValue is the current value of the metric (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // currentAverageValue is the current value of metric averaged over autoscaled pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4;\n}\n\n// configuration of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscaler {\n  // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// specification of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption\n  // and will set the desired number of pods by using its Scale subresource.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\n  optional int32 maxReplicas = 3;\n\n  // targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods;\n  // if not specified the default autoscaling policy will be used.\n  // +optional\n  optional int32 targetCPUUtilizationPercentage = 4;\n}\n\n// current status of a horizontal pod autoscaler\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods;\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is the current number of replicas of pods managed by this autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU,\n  // e.g. 70 means that an average pod is using now 70% of its requested CPU.\n  // +optional\n  optional int32 currentCPUUtilizationPercentage = 5;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod of the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric.\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // currentValue is the current value of the metric (as a quantity).\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // targetAverageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // currentAverageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource.\nmessage ScaleSpec {\n  // replicas is the desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // replicas is the actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is the label query over pods that should match the replicas count. This is same\n  // as the label selector but in the string format to avoid introspection\n  // by clients. The string will be in the same format as the query-param syntax.\n  // More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  optional string selector = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t\t&Scale{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\n// +structType=atomic\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// specification of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption\n\t// and will set the desired number of pods by using its Scale subresource.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods;\n\t// if not specified the default autoscaling policy will be used.\n\t// +optional\n\tTargetCPUUtilizationPercentage *int32 `json:\"targetCPUUtilizationPercentage,omitempty\" protobuf:\"varint,4,opt,name=targetCPUUtilizationPercentage\"`\n}\n\n// current status of a horizontal pod autoscaler\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods;\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is the current number of replicas of pods managed by this autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU,\n\t// e.g. 70 means that an average pod is using now 70% of its requested CPU.\n\t// +optional\n\tCurrentCPUUtilizationPercentage *int32 `json:\"currentCPUUtilizationPercentage,omitempty\" protobuf:\"varint,5,opt,name=currentCPUUtilizationPercentage\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// configuration of a horizontal pod autoscaler.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ScaleSpec describes the attributes of a scale subresource.\ntype ScaleSpec struct {\n\t// replicas is the desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// replicas is the actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is the label query over pods that should match the replicas count. This is same\n\t// as the label selector but in the string format to avoid introspection\n\t// by clients. The string will be in the same format as the query-param syntax.\n\t// More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\tSelector string `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n}\n\n// the types below are used in the alpha metrics annotation\n\n// MetricSourceType indicates the type of metric.\n// +enum\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod of the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\n\t// targetValue is the target value of the metric (as a quantity).\n\tTargetValue resource.Quantity `json:\"targetValue\" protobuf:\"bytes,3,name=targetValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric.\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tTargetAverageValue resource.Quantity `json:\"targetAverageValue\" protobuf:\"bytes,2,name=targetAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in the requests and limits, describing a single container in\n// each of the pods of the current scale target(e.g. CPU or memory). The values will be\n// averaged together before being compared to the target. Such metrics are built into\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source. Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n\n\t// container is the name of the container in the pods of the scaling target.\n\tContainer string `json:\"container\" protobuf:\"bytes,5,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\n\t// targetValue is the target value of the metric (as a quantity).\n\t// Mutually exclusive with TargetAverageValue.\n\t// +optional\n\tTargetValue *resource.Quantity `json:\"targetValue,omitempty\" protobuf:\"bytes,3,opt,name=targetValue\"`\n\n\t// targetAverageValue is the target per-pod value of global metric (as a quantity).\n\t// Mutually exclusive with TargetValue.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=targetAverageValue\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\n\t// currentValue is the current value of the metric (as a quantity).\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,2,name=currentAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n\n\t// container is the name of the container in the pods of the scaling taget\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metricName is the name of a metric used for autoscaling in\n\t// metric system.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// currentValue is the current value of the metric (as a quantity)\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// currentAverageValue is the current value of metric averaged over autoscaled pods.\n\t// +optional\n\tCurrentAverageValue *resource.Quantity `json:\"currentAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=currentAverageValue\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":                         \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in the requests and limits, describing a single container in each of the pods of the current scale target(e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built into Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n\t\"container\":                \"container is the name of the container in the pods of the scaling target.\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":                          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n\t\"container\":                 \"container is the name of the container in the pods of the scaling taget\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":                   \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metricName\":         \"metricName is the name of the metric in question.\",\n\t\"metricSelector\":     \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"targetValue\":        \"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\n\t\"targetAverageValue\": \"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":                    \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metricName\":          \"metricName is the name of a metric used for autoscaling in metric system.\",\n\t\"metricSelector\":      \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"currentValue\":        \"currentValue is the current value of the metric (as a quantity)\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"configuration of a horizontal pod autoscaler.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":                               \"specification of a horizontal pod autoscaler.\",\n\t\"scaleTargetRef\":                 \"reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource.\",\n\t\"minReplicas\":                    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":                    \"maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\",\n\t\"targetCPUUtilizationPercentage\": \"targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                                \"current status of a horizontal pod autoscaler\",\n\t\"observedGeneration\":              \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":                   \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":                 \"currentReplicas is the current number of replicas of pods managed by this autoscaler.\",\n\t\"desiredReplicas\":                 \"desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\",\n\t\"currentCPUUtilizationPercentage\": \"currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":             \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"targetValue\":  \"targetValue is the target value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric. When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":             \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"currentValue\": \"currentValue is the current value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":                   \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metricName\":         \"metricName is the name of the metric in question\",\n\t\"targetAverageValue\": \"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":           \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":                    \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metricName\":          \"metricName is the name of the metric in question\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":            \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":                         \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":                          \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource.\",\n\t\"replicas\": \"replicas is the desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":         \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\": \"replicas is the actual number of observed instances of the scaled object.\",\n\t\"selector\": \"selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TargetValue != nil {\n\t\tin, out := &in.TargetValue, &out.TargetValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.CurrentAverageValue != nil {\n\t\tin, out := &in.CurrentAverageValue, &out.CurrentAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetCPUUtilizationPercentage != nil {\n\t\tin, out := &in.TargetCPUUtilizationPercentage, &out.TargetCPUUtilizationPercentage\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentCPUUtilizationPercentage != nil {\n\t\tin, out := &in.CurrentCPUUtilizationPercentage, &out.CurrentCPUUtilizationPercentage\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.TargetValue = in.TargetValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tout.TargetAverageValue = in.TargetAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\npackage v2 // import \"k8s.io/api/autoscaling/v2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2/generated.proto\n\npackage v2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HPAScalingPolicy) Reset()      { *m = HPAScalingPolicy{} }\nfunc (*HPAScalingPolicy) ProtoMessage() {}\nfunc (*HPAScalingPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{5}\n}\nfunc (m *HPAScalingPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingPolicy.Merge(m, src)\n}\nfunc (m *HPAScalingPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingPolicy proto.InternalMessageInfo\n\nfunc (m *HPAScalingRules) Reset()      { *m = HPAScalingRules{} }\nfunc (*HPAScalingRules) ProtoMessage() {}\nfunc (*HPAScalingRules) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{6}\n}\nfunc (m *HPAScalingRules) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingRules) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingRules.Merge(m, src)\n}\nfunc (m *HPAScalingRules) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingRules) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingRules.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingRules proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{7}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerBehavior) Reset()      { *m = HorizontalPodAutoscalerBehavior{} }\nfunc (*HorizontalPodAutoscalerBehavior) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerBehavior) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerBehavior proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{10}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{11}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{12}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricIdentifier) Reset()      { *m = MetricIdentifier{} }\nfunc (*MetricIdentifier) ProtoMessage() {}\nfunc (*MetricIdentifier) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{13}\n}\nfunc (m *MetricIdentifier) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricIdentifier) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricIdentifier.Merge(m, src)\n}\nfunc (m *MetricIdentifier) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricIdentifier) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricIdentifier.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricIdentifier proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{14}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{15}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *MetricTarget) Reset()      { *m = MetricTarget{} }\nfunc (*MetricTarget) ProtoMessage() {}\nfunc (*MetricTarget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{16}\n}\nfunc (m *MetricTarget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricTarget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricTarget.Merge(m, src)\n}\nfunc (m *MetricTarget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricTarget) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricTarget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricTarget proto.InternalMessageInfo\n\nfunc (m *MetricValueStatus) Reset()      { *m = MetricValueStatus{} }\nfunc (*MetricValueStatus) ProtoMessage() {}\nfunc (*MetricValueStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{17}\n}\nfunc (m *MetricValueStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricValueStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricValueStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricValueStatus.Merge(m, src)\n}\nfunc (m *MetricValueStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricValueStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricValueStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricValueStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{18}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{19}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{20}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{21}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{22}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b14d4df4b5f3935e, []int{23}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ExternalMetricStatus\")\n\tproto.RegisterType((*HPAScalingPolicy)(nil), \"k8s.io.api.autoscaling.v2.HPAScalingPolicy\")\n\tproto.RegisterType((*HPAScalingRules)(nil), \"k8s.io.api.autoscaling.v2.HPAScalingRules\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerBehavior)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricIdentifier)(nil), \"k8s.io.api.autoscaling.v2.MetricIdentifier\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2.MetricStatus\")\n\tproto.RegisterType((*MetricTarget)(nil), \"k8s.io.api.autoscaling.v2.MetricTarget\")\n\tproto.RegisterType((*MetricValueStatus)(nil), \"k8s.io.api.autoscaling.v2.MetricValueStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2/generated.proto\", fileDescriptor_b14d4df4b5f3935e)\n}\n\nvar fileDescriptor_b14d4df4b5f3935e = []byte{\n\t// 1738 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcb, 0x8f, 0x13, 0xc9,\n\t0x19, 0x9f, 0xb6, 0x3d, 0xaf, 0xf2, 0x3c, 0x8b, 0x97, 0x19, 0x84, 0x3d, 0xea, 0x90, 0x40, 0x48,\n\t0x68, 0x07, 0x87, 0x20, 0x14, 0x0e, 0xd1, 0xf4, 0x90, 0x84, 0x11, 0x33, 0x19, 0x53, 0x06, 0x26,\n\t0x89, 0x92, 0x88, 0x72, 0x77, 0x8d, 0xa7, 0x32, 0x76, 0xb7, 0xd5, 0xdd, 0x36, 0x0c, 0x52, 0xa4,\n\t0x5c, 0x72, 0x8f, 0x12, 0xa1, 0x28, 0xff, 0x03, 0xca, 0x29, 0x11, 0x39, 0xec, 0x4a, 0x2b, 0xed,\n\t0x1e, 0xb8, 0xac, 0xc4, 0x61, 0x0f, 0x9c, 0xac, 0xc5, 0x2b, 0xed, 0x71, 0xff, 0x00, 0x4e, 0xab,\n\t0x7a, 0xf4, 0xd3, 0xaf, 0x31, 0x3b, 0x8c, 0x34, 0x37, 0x57, 0xd5, 0xf7, 0xfd, 0xbe, 0x47, 0x7d,\n\t0xaf, 0x6a, 0x03, 0x7d, 0xff, 0x96, 0xab, 0x51, 0xbb, 0xb8, 0xdf, 0xaa, 0x12, 0xc7, 0x22, 0x1e,\n\t0x71, 0x8b, 0x6d, 0x62, 0x99, 0xb6, 0x53, 0x94, 0x07, 0xb8, 0x49, 0x8b, 0xb8, 0xe5, 0xd9, 0xae,\n\t0x81, 0xeb, 0xd4, 0xaa, 0x15, 0xdb, 0xa5, 0x62, 0x8d, 0x58, 0xc4, 0xc1, 0x1e, 0x31, 0xb5, 0xa6,\n\t0x63, 0x7b, 0x36, 0x3c, 0x2f, 0x48, 0x35, 0xdc, 0xa4, 0x5a, 0x84, 0x54, 0x6b, 0x97, 0x56, 0xae,\n\t0xd5, 0xa8, 0xb7, 0xd7, 0xaa, 0x6a, 0x86, 0xdd, 0x28, 0xd6, 0xec, 0x9a, 0x5d, 0xe4, 0x1c, 0xd5,\n\t0xd6, 0x2e, 0x5f, 0xf1, 0x05, 0xff, 0x25, 0x90, 0x56, 0xd4, 0x88, 0x50, 0xc3, 0x76, 0x48, 0xb1,\n\t0x7d, 0x3d, 0x29, 0x6d, 0xe5, 0x46, 0x48, 0xd3, 0xc0, 0xc6, 0x1e, 0xb5, 0x88, 0x73, 0x50, 0x6c,\n\t0xee, 0xd7, 0x38, 0x93, 0x43, 0x5c, 0xbb, 0xe5, 0x18, 0x64, 0x2c, 0x2e, 0xb7, 0xd8, 0x20, 0x1e,\n\t0xee, 0x27, 0xab, 0x38, 0x88, 0xcb, 0x69, 0x59, 0x1e, 0x6d, 0xf4, 0x8a, 0xb9, 0x39, 0x8a, 0xc1,\n\t0x35, 0xf6, 0x48, 0x03, 0x27, 0xf9, 0xd4, 0xaf, 0x15, 0x70, 0x71, 0xdd, 0xb6, 0x3c, 0xcc, 0x38,\n\t0x90, 0x34, 0x62, 0x8b, 0x78, 0x0e, 0x35, 0x2a, 0xfc, 0x37, 0x5c, 0x07, 0x19, 0x0b, 0x37, 0x48,\n\t0x4e, 0x59, 0x55, 0xae, 0xcc, 0xea, 0xc5, 0x57, 0x9d, 0xc2, 0x44, 0xb7, 0x53, 0xc8, 0xfc, 0x06,\n\t0x37, 0xc8, 0xbb, 0x4e, 0xa1, 0xd0, 0xeb, 0x38, 0xcd, 0x87, 0x61, 0x24, 0x88, 0x33, 0xc3, 0x6d,\n\t0x30, 0xe5, 0x61, 0xa7, 0x46, 0xbc, 0x5c, 0x6a, 0x55, 0xb9, 0x92, 0x2d, 0x5d, 0xd6, 0x06, 0x5e,\n\t0x9d, 0x26, 0xa4, 0x3f, 0xe0, 0xe4, 0xfa, 0x82, 0x94, 0x37, 0x25, 0xd6, 0x48, 0xc2, 0xc0, 0x22,\n\t0x98, 0x35, 0x7c, 0xb5, 0x73, 0x69, 0xae, 0xda, 0xb2, 0x24, 0x9d, 0x0d, 0xed, 0x09, 0x69, 0xd4,\n\t0x6f, 0x86, 0x18, 0xea, 0x61, 0xaf, 0xe5, 0x1e, 0x8d, 0xa1, 0x3b, 0x60, 0xda, 0x68, 0x39, 0x0e,\n\t0xb1, 0x7c, 0x4b, 0x7f, 0x3c, 0xd2, 0xd2, 0x47, 0xb8, 0xde, 0x22, 0x42, 0x07, 0x7d, 0x51, 0x4a,\n\t0x9d, 0x5e, 0x17, 0x20, 0xc8, 0x47, 0x1b, 0xdf, 0xe0, 0xe7, 0x0a, 0xb8, 0xb0, 0xee, 0xd8, 0xae,\n\t0xfb, 0x88, 0x38, 0x2e, 0xb5, 0xad, 0xed, 0xea, 0x9f, 0x89, 0xe1, 0x21, 0xb2, 0x4b, 0x1c, 0x62,\n\t0x19, 0x04, 0xae, 0x82, 0xcc, 0x3e, 0xb5, 0x4c, 0x69, 0xee, 0x9c, 0x6f, 0xee, 0x3d, 0x6a, 0x99,\n\t0x88, 0x9f, 0x30, 0x0a, 0xee, 0x90, 0x54, 0x9c, 0x22, 0x62, 0x6d, 0x09, 0x00, 0xdc, 0xa4, 0x52,\n\t0x80, 0xd4, 0x0a, 0x4a, 0x3a, 0xb0, 0x56, 0xde, 0x90, 0x27, 0x28, 0x42, 0xa5, 0x7e, 0xa4, 0x80,\n\t0xd3, 0xbf, 0x7c, 0xea, 0x11, 0xc7, 0xc2, 0xf5, 0x58, 0xa0, 0x55, 0xc0, 0x54, 0x83, 0xaf, 0xb9,\n\t0x4a, 0xd9, 0xd2, 0x8f, 0x46, 0x7a, 0x6e, 0xc3, 0x24, 0x96, 0x47, 0x77, 0x29, 0x71, 0xc2, 0x38,\n\t0x11, 0x27, 0x48, 0x42, 0x1d, 0x79, 0xe0, 0xa9, 0x9f, 0xf5, 0xaa, 0x2f, 0xc2, 0xe7, 0x83, 0xa8,\n\t0xff, 0xa1, 0xc2, 0x49, 0xfd, 0x8f, 0x02, 0x96, 0xee, 0x96, 0xd7, 0x2a, 0x82, 0xbb, 0x6c, 0xd7,\n\t0xa9, 0x71, 0x00, 0x6f, 0x81, 0x8c, 0x77, 0xd0, 0xf4, 0x33, 0xe0, 0x92, 0x7f, 0xe1, 0x0f, 0x0e,\n\t0x9a, 0x2c, 0x03, 0x4e, 0x27, 0xe9, 0xd9, 0x3e, 0xe2, 0x1c, 0xf0, 0x7b, 0x60, 0xb2, 0xcd, 0xe4,\n\t0x72, 0x2d, 0x27, 0xf5, 0x79, 0xc9, 0x3a, 0xc9, 0x95, 0x41, 0xe2, 0x0c, 0xde, 0x06, 0xf3, 0x4d,\n\t0xe2, 0x50, 0xdb, 0xac, 0x10, 0xc3, 0xb6, 0x4c, 0x97, 0x07, 0xcc, 0xa4, 0x7e, 0x46, 0x12, 0xcf,\n\t0x97, 0xa3, 0x87, 0x28, 0x4e, 0xab, 0xfe, 0x3b, 0x05, 0x16, 0x43, 0x05, 0x50, 0xab, 0x4e, 0x5c,\n\t0xf8, 0x27, 0xb0, 0xe2, 0x7a, 0xb8, 0x4a, 0xeb, 0xf4, 0x19, 0xf6, 0xa8, 0x6d, 0xed, 0x50, 0xcb,\n\t0xb4, 0x9f, 0xc4, 0xd1, 0xf3, 0xdd, 0x4e, 0x61, 0xa5, 0x32, 0x90, 0x0a, 0x0d, 0x41, 0x80, 0xf7,\n\t0xc0, 0x9c, 0x4b, 0xea, 0xc4, 0xf0, 0x84, 0xbd, 0xd2, 0x2f, 0x97, 0xbb, 0x9d, 0xc2, 0x5c, 0x25,\n\t0xb2, 0xff, 0xae, 0x53, 0x38, 0x15, 0x73, 0x8c, 0x38, 0x44, 0x31, 0x66, 0xf8, 0x3b, 0x30, 0xd3,\n\t0x64, 0xbf, 0x28, 0x71, 0x73, 0xa9, 0xd5, 0xf4, 0x88, 0x08, 0x49, 0xfa, 0x5a, 0x5f, 0x92, 0x5e,\n\t0x9a, 0x29, 0x4b, 0x10, 0x14, 0xc0, 0xa9, 0x2f, 0x53, 0xe0, 0xdc, 0x5d, 0xdb, 0xa1, 0xcf, 0x58,\n\t0xf2, 0xd7, 0xcb, 0xb6, 0xb9, 0x26, 0xc1, 0x88, 0x03, 0x1f, 0x83, 0x19, 0xd6, 0x64, 0x4c, 0xec,\n\t0x61, 0x19, 0x98, 0x3f, 0x89, 0x88, 0x0d, 0x7a, 0x85, 0xd6, 0xdc, 0xaf, 0xb1, 0x0d, 0x57, 0x63,\n\t0xd4, 0x5a, 0xfb, 0xba, 0x26, 0xea, 0xc5, 0x16, 0xf1, 0x70, 0x98, 0xd2, 0xe1, 0x1e, 0x0a, 0x50,\n\t0xe1, 0x6f, 0x41, 0xc6, 0x6d, 0x12, 0x43, 0x06, 0xe8, 0xcd, 0x61, 0x46, 0xf5, 0xd7, 0xb1, 0xd2,\n\t0x24, 0x46, 0x58, 0x5e, 0xd8, 0x0a, 0x71, 0x44, 0xf8, 0x18, 0x4c, 0xb9, 0x3c, 0x90, 0xf9, 0x5d,\n\t0x66, 0x4b, 0xb7, 0xde, 0x03, 0x5b, 0x24, 0x42, 0x90, 0x5f, 0x62, 0x8d, 0x24, 0xae, 0xfa, 0xb9,\n\t0x02, 0x0a, 0x03, 0x38, 0x75, 0xb2, 0x87, 0xdb, 0xd4, 0x76, 0xe0, 0x7d, 0x30, 0xcd, 0x77, 0x1e,\n\t0x36, 0xa5, 0x03, 0xaf, 0x1e, 0xea, 0xde, 0x78, 0x88, 0xea, 0x59, 0x96, 0x7d, 0x15, 0xc1, 0x8e,\n\t0x7c, 0x1c, 0xb8, 0x03, 0x66, 0xf9, 0xcf, 0x3b, 0xf6, 0x13, 0x4b, 0xfa, 0x6d, 0x1c, 0xd0, 0x79,\n\t0x56, 0xf4, 0x2b, 0x3e, 0x00, 0x0a, 0xb1, 0xd4, 0xbf, 0xa5, 0xc1, 0xea, 0x00, 0x7b, 0xd6, 0x6d,\n\t0xcb, 0xa4, 0x2c, 0xc6, 0xe1, 0xdd, 0x58, 0x9a, 0xdf, 0x48, 0xa4, 0xf9, 0xa5, 0x51, 0xfc, 0x91,\n\t0xb4, 0xdf, 0x0c, 0x2e, 0x28, 0x15, 0xc3, 0x92, 0x6e, 0x7e, 0xd7, 0x29, 0xf4, 0x19, 0xac, 0xb4,\n\t0x00, 0x29, 0x7e, 0x19, 0xb0, 0x0d, 0x60, 0x1d, 0xbb, 0xde, 0x03, 0x07, 0x5b, 0xae, 0x90, 0x44,\n\t0x1b, 0x44, 0x5e, 0xfd, 0xd5, 0xc3, 0x05, 0x2d, 0xe3, 0xd0, 0x57, 0xa4, 0x16, 0x70, 0xb3, 0x07,\n\t0x0d, 0xf5, 0x91, 0x00, 0x7f, 0x00, 0xa6, 0x1c, 0x82, 0x5d, 0xdb, 0xca, 0x65, 0xb8, 0x15, 0x41,\n\t0xb0, 0x20, 0xbe, 0x8b, 0xe4, 0x29, 0xfc, 0x21, 0x98, 0x6e, 0x10, 0xd7, 0xc5, 0x35, 0x92, 0x9b,\n\t0xe4, 0x84, 0x41, 0x79, 0xdd, 0x12, 0xdb, 0xc8, 0x3f, 0x57, 0xbf, 0x50, 0xc0, 0x85, 0x01, 0x7e,\n\t0xdc, 0xa4, 0xae, 0x07, 0xff, 0xd0, 0x93, 0x95, 0xda, 0xe1, 0x0c, 0x64, 0xdc, 0x3c, 0x27, 0x83,\n\t0x7a, 0xe0, 0xef, 0x44, 0x32, 0x72, 0x07, 0x4c, 0x52, 0x8f, 0x34, 0xfc, 0x3a, 0x53, 0x1a, 0x3f,\n\t0x6d, 0xc2, 0x0a, 0xbe, 0xc1, 0x80, 0x90, 0xc0, 0x53, 0x5f, 0xa6, 0x07, 0x9a, 0xc5, 0xd2, 0x16,\n\t0xb6, 0xc1, 0x02, 0x5f, 0xc9, 0x9e, 0x49, 0x76, 0xa5, 0x71, 0xc3, 0x8a, 0xc2, 0x90, 0x19, 0x45,\n\t0x3f, 0x2b, 0xb5, 0x58, 0xa8, 0xc4, 0x50, 0x51, 0x42, 0x0a, 0xbc, 0x0e, 0xb2, 0x0d, 0x6a, 0x21,\n\t0xd2, 0xac, 0x53, 0x03, 0xbb, 0xb2, 0x09, 0x2d, 0x76, 0x3b, 0x85, 0xec, 0x56, 0xb8, 0x8d, 0xa2,\n\t0x34, 0xf0, 0x67, 0x20, 0xdb, 0xc0, 0x4f, 0x03, 0x16, 0xd1, 0x2c, 0x4e, 0x49, 0x79, 0xd9, 0xad,\n\t0xf0, 0x08, 0x45, 0xe9, 0x60, 0x99, 0xc5, 0x00, 0x6b, 0xb3, 0x6e, 0x2e, 0xc3, 0x9d, 0xfb, 0xfd,\n\t0x91, 0x0d, 0x99, 0x97, 0xb7, 0x48, 0xa8, 0x70, 0x6e, 0xe4, 0xc3, 0x40, 0x13, 0xcc, 0x54, 0x65,\n\t0xa9, 0xe1, 0x61, 0x95, 0x2d, 0xfd, 0xfc, 0x3d, 0xee, 0x4b, 0x22, 0xe8, 0x73, 0x2c, 0x24, 0xfc,\n\t0x15, 0x0a, 0x90, 0xd5, 0x17, 0x19, 0x70, 0x71, 0x68, 0x89, 0x84, 0xbf, 0x02, 0xd0, 0xae, 0xba,\n\t0xc4, 0x69, 0x13, 0xf3, 0xd7, 0xe2, 0x91, 0xc0, 0x66, 0x3a, 0x76, 0x7f, 0x69, 0xfd, 0x2c, 0xcb,\n\t0xa6, 0xed, 0x9e, 0x53, 0xd4, 0x87, 0x03, 0x1a, 0x60, 0x9e, 0xe5, 0x98, 0xb8, 0x31, 0x2a, 0xc7,\n\t0xc7, 0xf1, 0x12, 0x78, 0x99, 0x4d, 0x03, 0x9b, 0x51, 0x10, 0x14, 0xc7, 0x84, 0x6b, 0x60, 0x51,\n\t0x4e, 0x32, 0x89, 0x1b, 0x3c, 0x27, 0xfd, 0xbc, 0xb8, 0x1e, 0x3f, 0x46, 0x49, 0x7a, 0x06, 0x61,\n\t0x12, 0x97, 0x3a, 0xc4, 0x0c, 0x20, 0x32, 0x71, 0x88, 0x3b, 0xf1, 0x63, 0x94, 0xa4, 0x87, 0x35,\n\t0xb0, 0x20, 0x51, 0xe5, 0xad, 0xe6, 0x26, 0x79, 0x4c, 0x8c, 0x1e, 0x32, 0x65, 0x5b, 0x0a, 0xe2,\n\t0x7b, 0x3d, 0x06, 0x83, 0x12, 0xb0, 0xd0, 0x06, 0xc0, 0xf0, 0x8b, 0xa6, 0x9b, 0x9b, 0xe2, 0x42,\n\t0x6e, 0x8f, 0x1f, 0x25, 0x41, 0xe1, 0x0d, 0x3b, 0x7a, 0xb0, 0xe5, 0xa2, 0x88, 0x08, 0xf5, 0x9f,\n\t0x0a, 0x58, 0x4a, 0x0e, 0xa9, 0xc1, 0x7b, 0x40, 0x19, 0xf8, 0x1e, 0xf8, 0x23, 0x98, 0x11, 0x33,\n\t0x8f, 0xed, 0xc8, 0x6b, 0xff, 0xe9, 0x21, 0xcb, 0x1a, 0xae, 0x92, 0x7a, 0x45, 0xb2, 0x8a, 0x20,\n\t0xf6, 0x57, 0x28, 0x80, 0x54, 0x9f, 0x67, 0x00, 0x08, 0x73, 0x0a, 0xde, 0x88, 0xf5, 0xb1, 0xd5,\n\t0x44, 0x1f, 0x5b, 0x8a, 0x3e, 0x2e, 0x22, 0x3d, 0xeb, 0x3e, 0x98, 0xb2, 0x79, 0x99, 0x91, 0x1a,\n\t0x5e, 0x1b, 0xe2, 0xc7, 0x60, 0xde, 0x09, 0x80, 0x74, 0xc0, 0x1a, 0x83, 0xac, 0x53, 0x12, 0x08,\n\t0x6e, 0x80, 0x4c, 0xd3, 0x36, 0xfd, 0x29, 0x65, 0xd8, 0x58, 0x57, 0xb6, 0x4d, 0x37, 0x06, 0x37,\n\t0xc3, 0x34, 0x66, 0xbb, 0x88, 0x43, 0xb0, 0x29, 0xd1, 0xff, 0x94, 0xc0, 0xc3, 0x31, 0x5b, 0x2a,\n\t0x0e, 0x81, 0xeb, 0xf7, 0x60, 0x17, 0xde, 0xf3, 0x4f, 0x50, 0x00, 0x07, 0xff, 0x02, 0x96, 0x8d,\n\t0xe4, 0x03, 0x38, 0x37, 0x3d, 0x72, 0xb0, 0x1a, 0xfa, 0x75, 0x40, 0x3f, 0xd3, 0xed, 0x14, 0x96,\n\t0x7b, 0x48, 0x50, 0xaf, 0x24, 0x66, 0x19, 0x91, 0xef, 0x26, 0x59, 0xe7, 0x86, 0x59, 0xd6, 0xef,\n\t0x85, 0x28, 0x2c, 0xf3, 0x4f, 0x50, 0x00, 0xa7, 0xfe, 0x2b, 0x03, 0xe6, 0x62, 0x6f, 0xb1, 0x63,\n\t0x8e, 0x0c, 0x91, 0xcc, 0x47, 0x16, 0x19, 0x02, 0xee, 0x48, 0x23, 0x43, 0x40, 0x1e, 0x53, 0x64,\n\t0x08, 0x61, 0xc7, 0x14, 0x19, 0x11, 0xcb, 0xfa, 0x44, 0xc6, 0xa7, 0x29, 0x3f, 0x32, 0xc4, 0xb0,\n\t0x70, 0xb8, 0xc8, 0x10, 0xb4, 0x91, 0xc8, 0xd8, 0x8e, 0x3e, 0x6f, 0x47, 0xcc, 0x6a, 0x9a, 0xef,\n\t0x56, 0xed, 0x7e, 0x0b, 0x5b, 0x1e, 0xf5, 0x0e, 0xf4, 0xd9, 0x9e, 0xa7, 0xb0, 0x09, 0xe6, 0x70,\n\t0x9b, 0x38, 0xb8, 0x46, 0xf8, 0xb6, 0x8c, 0x8f, 0x71, 0x71, 0x97, 0xd8, 0x4b, 0x74, 0x2d, 0x82,\n\t0x83, 0x62, 0xa8, 0xac, 0xa5, 0xcb, 0xf5, 0x43, 0x2f, 0x78, 0xe2, 0xca, 0x2e, 0xc7, 0x5b, 0xfa,\n\t0x5a, 0xcf, 0x29, 0xea, 0xc3, 0xa1, 0xfe, 0x23, 0x05, 0x96, 0x7b, 0x3e, 0x2e, 0x84, 0x4e, 0x51,\n\t0x3e, 0x90, 0x53, 0x52, 0xc7, 0xe8, 0x94, 0xf4, 0xd8, 0x4e, 0xf9, 0x5f, 0x0a, 0xc0, 0xde, 0xfe,\n\t0x00, 0x0f, 0xf8, 0x58, 0x61, 0x38, 0xb4, 0x4a, 0x4c, 0x71, 0xfc, 0x1d, 0x67, 0xe0, 0xe8, 0x38,\n\t0x12, 0x85, 0x45, 0x49, 0x39, 0x47, 0xff, 0x91, 0x35, 0xfc, 0xa4, 0x95, 0x3e, 0xb2, 0x4f, 0x5a,\n\t0xea, 0xc7, 0x49, 0xbf, 0x9d, 0xc0, 0xcf, 0x67, 0xfd, 0x6e, 0x39, 0x7d, 0x3c, 0xb7, 0xac, 0xfe,\n\t0x5f, 0x01, 0x4b, 0xc9, 0x31, 0xe2, 0x84, 0x7c, 0x3b, 0xfd, 0x24, 0xae, 0xfa, 0x49, 0xfc, 0x6e,\n\t0xfa, 0x42, 0x01, 0xa7, 0x4f, 0xce, 0xdf, 0x24, 0xea, 0x7f, 0x7b, 0xd5, 0x3d, 0x01, 0x7f, 0x76,\n\t0xe8, 0xbf, 0x78, 0xf5, 0x36, 0x3f, 0xf1, 0xfa, 0x6d, 0x7e, 0xe2, 0xcd, 0xdb, 0xfc, 0xc4, 0x5f,\n\t0xbb, 0x79, 0xe5, 0x55, 0x37, 0xaf, 0xbc, 0xee, 0xe6, 0x95, 0x37, 0xdd, 0xbc, 0xf2, 0x65, 0x37,\n\t0xaf, 0xfc, 0xfd, 0xab, 0xfc, 0xc4, 0xef, 0xcf, 0x0f, 0xfc, 0xa7, 0xf0, 0xdb, 0x00, 0x00, 0x00,\n\t0xff, 0xff, 0xc5, 0xb7, 0xf9, 0x52, 0x5e, 0x1c, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingRules) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingRules) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingRules) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StabilizationWindowSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StabilizationWindowSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor iNdEx := len(m.Policies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Policies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.SelectPolicy != nil {\n\t\ti -= len(*m.SelectPolicy)\n\t\tcopy(dAtA[i:], *m.SelectPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SelectPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScaleDown != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleDown.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ScaleUp != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleUp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Behavior != nil {\n\t\t{\n\t\t\tsize, err := m.Behavior.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricIdentifier) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricIdentifier) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricIdentifier) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricTarget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricTarget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricValueStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricValueStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricValueStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HPAScalingPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\treturn n\n}\n\nfunc (m *HPAScalingRules) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SelectPolicy != nil {\n\t\tl = len(*m.SelectPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor _, e := range m.Policies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StabilizationWindowSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StabilizationWindowSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ScaleUp != nil {\n\t\tl = m.ScaleUp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleDown != nil {\n\t\tl = m.ScaleDown.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Behavior != nil {\n\t\tl = m.Behavior.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricIdentifier) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricTarget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *MetricValueStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HPAScalingPolicy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingRules) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPolicies := \"[]HPAScalingPolicy{\"\n\tfor _, f := range this.Policies {\n\t\trepeatedStringForPolicies += strings.Replace(strings.Replace(f.String(), \"HPAScalingPolicy\", \"HPAScalingPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPolicies += \"}\"\n\ts := strings.Join([]string{`&HPAScalingRules{`,\n\t\t`SelectPolicy:` + valueToStringGenerated(this.SelectPolicy) + `,`,\n\t\t`Policies:` + repeatedStringForPolicies + `,`,\n\t\t`StabilizationWindowSeconds:` + valueToStringGenerated(this.StabilizationWindowSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerBehavior) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerBehavior{`,\n\t\t`ScaleUp:` + strings.Replace(this.ScaleUp.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`ScaleDown:` + strings.Replace(this.ScaleDown.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`Behavior:` + strings.Replace(this.Behavior.String(), \"HorizontalPodAutoscalerBehavior\", \"HorizontalPodAutoscalerBehavior\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricIdentifier) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricIdentifier{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricTarget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricTarget{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricValueStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricValueStatus{`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HPAScalingPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingRules) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelectPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScalingPolicySelect(dAtA[iNdEx:postIndex])\n\t\t\tm.SelectPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Policies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Policies = append(m.Policies, HPAScalingPolicy{})\n\t\t\tif err := m.Policies[len(m.Policies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StabilizationWindowSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StabilizationWindowSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleUp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleUp == nil {\n\t\t\t\tm.ScaleUp = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleUp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleDown\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleDown == nil {\n\t\t\t\tm.ScaleDown = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleDown.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Behavior\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Behavior == nil {\n\t\t\t\tm.Behavior = &HorizontalPodAutoscalerBehavior{}\n\t\t\t}\n\t\t\tif err := m.Behavior.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricIdentifier) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricTarget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricTargetType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricValueStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\nmessage HPAScalingPolicy {\n  // type is used to specify the scaling policy.\n  optional string type = 1;\n\n  // value contains the amount of change which is permitted by the policy.\n  // It must be greater than zero\n  optional int32 value = 2;\n\n  // periodSeconds specifies the window of time for which the policy should hold true.\n  // PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n  optional int32 periodSeconds = 3;\n}\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\nmessage HPAScalingRules {\n  // stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n  // considered while scaling up or scaling down.\n  // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n  // If not set, use the default values:\n  // - For scale up: 0 (i.e. no stabilization is done).\n  // - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n  // +optional\n  optional int32 stabilizationWindowSeconds = 3;\n\n  // selectPolicy is used to specify which policy should be used.\n  // If not set, the default value Max is used.\n  // +optional\n  optional string selectPolicy = 1;\n\n  // policies is a list of potential scaling polices which can be used during scaling.\n  // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n  // +listType=atomic\n  // +optional\n  repeated HPAScalingPolicy policies = 2;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\nmessage HorizontalPodAutoscalerBehavior {\n  // scaleUp is scaling policy for scaling Up.\n  // If not set, the default value is the higher of:\n  //   * increase no more than 4 pods per 60 seconds\n  //   * double the number of pods per 60 seconds\n  // No stabilization is used.\n  // +optional\n  optional HPAScalingRules scaleUp = 1;\n\n  // scaleDown is scaling policy for scaling Down.\n  // If not set, the default value is to allow to scale down to minReplicas pods, with a\n  // 300 second stabilization window (i.e., the highest recommendation for\n  // the last 300sec is used).\n  // +optional\n  optional HPAScalingRules scaleDown = 2;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // If not set, the default metric will be set to 80% average CPU utilization.\n  // +listType=atomic\n  // +optional\n  repeated MetricSpec metrics = 4;\n\n  // behavior configures the scaling behavior of the target\n  // in both Up and Down directions (scaleUp and scaleDown fields respectively).\n  // If not set, the default HPAScalingRules for scale up and scale down are used.\n  // +optional\n  optional HorizontalPodAutoscalerBehavior behavior = 5;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  // +optional\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +listType=atomic\n  // +optional\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\nmessage MetricIdentifier {\n  // name is the name of the given metric\n  optional string name = 1;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\nmessage MetricTarget {\n  // type represents whether the metric type is Utilization, Value, or AverageValue\n  optional string type = 1;\n\n  // value is the target value of the metric (as a quantity).\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 2;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 3;\n\n  // averageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // Currently only valid for Resource metric source type\n  // +optional\n  optional int32 averageUtilization = 4;\n}\n\n// MetricValueStatus holds the current value for a metric\nmessage MetricValueStatus {\n  // value is the current value of the metric (as a quantity).\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 1;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 2;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 averageUtilization = 3;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // describedObject specifies the descriptions of a object,such as kind,name apiVersion\n  optional CrossVersionObjectReference describedObject = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 3;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\n  optional CrossVersionObjectReference describedObject = 3;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// If not set, the default metric will be set to 80% average CPU utilization.\n\t// +listType=atomic\n\t// +optional\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n\n\t// behavior configures the scaling behavior of the target\n\t// in both Up and Down directions (scaleUp and scaleDown fields respectively).\n\t// If not set, the default HPAScalingRules for scale up and scale down are used.\n\t// +optional\n\tBehavior *HorizontalPodAutoscalerBehavior `json:\"behavior,omitempty\" protobuf:\"bytes,5,opt,name=behavior\"`\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\ntype HorizontalPodAutoscalerBehavior struct {\n\t// scaleUp is scaling policy for scaling Up.\n\t// If not set, the default value is the higher of:\n\t//   * increase no more than 4 pods per 60 seconds\n\t//   * double the number of pods per 60 seconds\n\t// No stabilization is used.\n\t// +optional\n\tScaleUp *HPAScalingRules `json:\"scaleUp,omitempty\" protobuf:\"bytes,1,opt,name=scaleUp\"`\n\n\t// scaleDown is scaling policy for scaling Down.\n\t// If not set, the default value is to allow to scale down to minReplicas pods, with a\n\t// 300 second stabilization window (i.e., the highest recommendation for\n\t// the last 300sec is used).\n\t// +optional\n\tScaleDown *HPAScalingRules `json:\"scaleDown,omitempty\" protobuf:\"bytes,2,opt,name=scaleDown\"`\n}\n\n// ScalingPolicySelect is used to specify which policy should be used while scaling in a certain direction\ntype ScalingPolicySelect string\n\nconst (\n\t// MaxChangePolicySelect  selects the policy with the highest possible change.\n\tMaxChangePolicySelect ScalingPolicySelect = \"Max\"\n\t// MinChangePolicySelect selects the policy with the lowest possible change.\n\tMinChangePolicySelect ScalingPolicySelect = \"Min\"\n\t// DisabledPolicySelect disables the scaling in this direction.\n\tDisabledPolicySelect ScalingPolicySelect = \"Disabled\"\n)\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\ntype HPAScalingRules struct {\n\t// stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n\t// considered while scaling up or scaling down.\n\t// StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n\t// If not set, use the default values:\n\t// - For scale up: 0 (i.e. no stabilization is done).\n\t// - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n\t// +optional\n\tStabilizationWindowSeconds *int32 `json:\"stabilizationWindowSeconds,omitempty\" protobuf:\"varint,3,opt,name=stabilizationWindowSeconds\"`\n\n\t// selectPolicy is used to specify which policy should be used.\n\t// If not set, the default value Max is used.\n\t// +optional\n\tSelectPolicy *ScalingPolicySelect `json:\"selectPolicy,omitempty\" protobuf:\"bytes,1,opt,name=selectPolicy\"`\n\n\t// policies is a list of potential scaling polices which can be used during scaling.\n\t// At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n\t// +listType=atomic\n\t// +optional\n\tPolicies []HPAScalingPolicy `json:\"policies,omitempty\" listType:\"atomic\" protobuf:\"bytes,2,rep,name=policies\"`\n}\n\n// HPAScalingPolicyType is the type of the policy which could be used while making scaling decisions.\ntype HPAScalingPolicyType string\n\nconst (\n\t// PodsScalingPolicy is a policy used to specify a change in absolute number of pods.\n\tPodsScalingPolicy HPAScalingPolicyType = \"Pods\"\n\t// PercentScalingPolicy is a policy used to specify a relative amount of change with respect to\n\t// the current number of pods.\n\tPercentScalingPolicy HPAScalingPolicyType = \"Percent\"\n)\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\ntype HPAScalingPolicy struct {\n\t// type is used to specify the scaling policy.\n\tType HPAScalingPolicyType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=HPAScalingPolicyType\"`\n\n\t// value contains the amount of change which is permitted by the policy.\n\t// It must be greater than zero\n\tValue int32 `json:\"value\" protobuf:\"varint,2,opt,name=value\"`\n\n\t// periodSeconds specifies the window of time for which the policy should hold true.\n\t// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n\tPeriodSeconds int32 `json:\"periodSeconds\" protobuf:\"varint,3,opt,name=periodSeconds\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// describedObject specifies the descriptions of a object,such as kind,name apiVersion\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,1,name=describedObject\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,3,name=metric\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\ntype MetricIdentifier struct {\n\t// name is the name of the given metric\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,name=selector\"`\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\ntype MetricTarget struct {\n\t// type represents whether the metric type is Utilization, Value, or AverageValue\n\tType MetricTargetType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// value is the target value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,3,opt,name=averageValue\"`\n\n\t// averageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// Currently only valid for Resource metric source type\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,4,opt,name=averageUtilization\"`\n}\n\n// MetricTargetType specifies the type of metric being targeted, and should be either\n// \"Value\", \"AverageValue\", or \"Utilization\"\ntype MetricTargetType string\n\nconst (\n\t// UtilizationMetricType declares a MetricTarget is an AverageUtilization value\n\tUtilizationMetricType MetricTargetType = \"Utilization\"\n\t// ValueMetricType declares a MetricTarget is a raw value\n\tValueMetricType MetricTargetType = \"Value\"\n\t// AverageValueMetricType declares a MetricTarget is an\n\tAverageValueMetricType MetricTargetType = \"AverageValue\"\n)\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\t// +optional\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +listType=atomic\n\t// +optional\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" listType:\"map\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,3,name=describedObject\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// MetricValueStatus holds the current value for a metric\ntype MetricValueStatus struct {\n\t// value is the current value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,1,opt,name=value\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,2,opt,name=averageValue\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,3,opt,name=averageUtilization\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":          \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"target\":    \"target specifies the target value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"current\":   \"current contains the current value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":       \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":        \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HPAScalingPolicy = map[string]string{\n\t\"\":              \"HPAScalingPolicy is a single policy which must hold true for a specified past interval.\",\n\t\"type\":          \"type is used to specify the scaling policy.\",\n\t\"value\":         \"value contains the amount of change which is permitted by the policy. It must be greater than zero\",\n\t\"periodSeconds\": \"periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n}\n\nfunc (HPAScalingPolicy) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingPolicy\n}\n\nvar map_HPAScalingRules = map[string]string{\n\t\"\":                           \"HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.\",\n\t\"stabilizationWindowSeconds\": \"stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\",\n\t\"selectPolicy\":               \"selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.\",\n\t\"policies\":                   \"policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\",\n}\n\nfunc (HPAScalingRules) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingRules\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerBehavior = map[string]string{\n\t\"\":          \"HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\",\n\t\"scaleUp\":   \"scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\\n  * increase no more than 4 pods per 60 seconds\\n  * double the number of pods per 60 seconds\\nNo stabilization is used.\",\n\t\"scaleDown\": \"scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).\",\n}\n\nfunc (HorizontalPodAutoscalerBehavior) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerBehavior\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.\",\n\t\"behavior\":       \"behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricIdentifier = map[string]string{\n\t\"\":         \"MetricIdentifier defines the name and optionally selector for a metric\",\n\t\"name\":     \"name is the name of the given metric\",\n\t\"selector\": \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (MetricIdentifier) SwaggerDoc() map[string]string {\n\treturn map_MetricIdentifier\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_MetricTarget = map[string]string{\n\t\"\":                   \"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\n\t\"type\":               \"type represents whether the metric type is Utilization, Value, or AverageValue\",\n\t\"value\":              \"value is the target value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type\",\n}\n\nfunc (MetricTarget) SwaggerDoc() map[string]string {\n\treturn map_MetricTarget\n}\n\nvar map_MetricValueStatus = map[string]string{\n\t\"\":                   \"MetricValueStatus holds the current value for a metric\",\n\t\"value\":              \"value is the current value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n}\n\nfunc (MetricValueStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricValueStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":                \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"describedObject\": \"describedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n\t\"target\":          \"target specifies the target value for the given metric\",\n\t\"metric\":          \"metric identifies the target metric by name and selector\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":                \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"metric\":          \"metric identifies the target metric by name and selector\",\n\t\"current\":         \"current contains the current value for the given metric\",\n\t\"describedObject\": \"DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":       \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":        \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":       \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":   \"name is the name of the resource in question.\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":        \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":    \"name is the name of the resource in question.\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingPolicy.\nfunc (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules) {\n\t*out = *in\n\tif in.StabilizationWindowSeconds != nil {\n\t\tin, out := &in.StabilizationWindowSeconds, &out.StabilizationWindowSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.SelectPolicy != nil {\n\t\tin, out := &in.SelectPolicy, &out.SelectPolicy\n\t\t*out = new(ScalingPolicySelect)\n\t\t**out = **in\n\t}\n\tif in.Policies != nil {\n\t\tin, out := &in.Policies, &out.Policies\n\t\t*out = make([]HPAScalingPolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingRules.\nfunc (in *HPAScalingRules) DeepCopy() *HPAScalingRules {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingRules)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior) {\n\t*out = *in\n\tif in.ScaleUp != nil {\n\t\tin, out := &in.ScaleUp, &out.ScaleUp\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ScaleDown != nil {\n\t\tin, out := &in.ScaleDown, &out.ScaleDown\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerBehavior.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerBehavior)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Behavior != nil {\n\t\tin, out := &in.Behavior, &out.Behavior\n\t\t*out = new(HorizontalPodAutoscalerBehavior)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdentifier.\nfunc (in *MetricIdentifier) DeepCopy() *MetricIdentifier {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricIdentifier)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricTarget) DeepCopyInto(out *MetricTarget) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricTarget.\nfunc (in *MetricTarget) DeepCopy() *MetricTarget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricTarget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricValueStatus.\nfunc (in *MetricValueStatus) DeepCopy() *MetricValueStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricValueStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.DescribedObject = in.DescribedObject\n\tin.Target.DeepCopyInto(&out.Target)\n\tin.Metric.DeepCopyInto(&out.Metric)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\tout.DescribedObject = in.DescribedObject\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v2beta1 // import \"k8s.io/api/autoscaling/v2beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto\n\npackage v2beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{5}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{6}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{7}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{10}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{11}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{12}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{13}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{14}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{15}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{16}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_26c1bfc7a52d0478, []int{17}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2beta1.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ExternalMetricStatus\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2beta1.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.MetricStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto\", fileDescriptor_26c1bfc7a52d0478)\n}\n\nvar fileDescriptor_26c1bfc7a52d0478 = []byte{\n\t// 1565 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6c, 0x1b, 0x45,\n\t0x1b, 0x8e, 0xed, 0x4d, 0x9a, 0xbc, 0x4e, 0xf3, 0x33, 0xed, 0xd7, 0xba, 0xe9, 0x57, 0x3b, 0x5a,\n\t0x7d, 0xfa, 0x94, 0xaf, 0xfa, 0xd8, 0x6d, 0x4d, 0xf8, 0x91, 0x10, 0x12, 0xb1, 0x0b, 0x6d, 0x45,\n\t0xd2, 0x96, 0x49, 0x5a, 0x21, 0x68, 0x11, 0x93, 0xf5, 0xd4, 0x59, 0x62, 0xef, 0x5a, 0x3b, 0x63,\n\t0xab, 0x29, 0x42, 0x42, 0x48, 0xdc, 0xb9, 0xc0, 0x19, 0x24, 0xae, 0x08, 0x71, 0x81, 0x33, 0xb7,\n\t0x1e, 0x7b, 0x6c, 0x05, 0xb2, 0xa8, 0x39, 0x70, 0xe6, 0xda, 0x13, 0x9a, 0xd9, 0xd9, 0xf5, 0xae,\n\t0xff, 0xe3, 0xa6, 0xe1, 0x47, 0xbd, 0x79, 0x77, 0xde, 0xf7, 0x79, 0x67, 0x9e, 0xf7, 0x6f, 0xde,\n\t0x35, 0x5c, 0xdc, 0x7d, 0x99, 0x19, 0xb6, 0x6b, 0xee, 0xd6, 0xb7, 0xa9, 0xe7, 0x50, 0x4e, 0x99,\n\t0xd9, 0xa0, 0x4e, 0xc9, 0xf5, 0x4c, 0xb5, 0x40, 0x6a, 0xb6, 0x49, 0xea, 0xdc, 0x65, 0x16, 0xa9,\n\t0xd8, 0x4e, 0xd9, 0x6c, 0xe4, 0xb7, 0x29, 0x27, 0xe7, 0xcd, 0x32, 0x75, 0xa8, 0x47, 0x38, 0x2d,\n\t0x19, 0x35, 0xcf, 0xe5, 0x2e, 0xca, 0xfa, 0xf2, 0x06, 0xa9, 0xd9, 0x46, 0x44, 0xde, 0x50, 0xf2,\n\t0x4b, 0xcf, 0x95, 0x6d, 0xbe, 0x53, 0xdf, 0x36, 0x2c, 0xb7, 0x6a, 0x96, 0xdd, 0xb2, 0x6b, 0x4a,\n\t0xb5, 0xed, 0xfa, 0x6d, 0xf9, 0x24, 0x1f, 0xe4, 0x2f, 0x1f, 0x6e, 0x49, 0x8f, 0x98, 0xb7, 0x5c,\n\t0x8f, 0x9a, 0x8d, 0x2e, 0x93, 0x4b, 0xab, 0x6d, 0x99, 0x2a, 0xb1, 0x76, 0x6c, 0x87, 0x7a, 0x7b,\n\t0x66, 0x6d, 0xb7, 0x2c, 0x95, 0x3c, 0xca, 0xdc, 0xba, 0x67, 0xd1, 0x7d, 0x69, 0x31, 0xb3, 0x4a,\n\t0x39, 0xe9, 0x65, 0xcb, 0xec, 0xa7, 0xe5, 0xd5, 0x1d, 0x6e, 0x57, 0xbb, 0xcd, 0xbc, 0x38, 0x4c,\n\t0x81, 0x59, 0x3b, 0xb4, 0x4a, 0x3a, 0xf5, 0xf4, 0xdf, 0x92, 0x70, 0xa6, 0xe8, 0x3a, 0x9c, 0x08,\n\t0x0d, 0xac, 0x0e, 0xb1, 0x41, 0xb9, 0x67, 0x5b, 0x9b, 0xf2, 0x37, 0x2a, 0x82, 0xe6, 0x90, 0x2a,\n\t0xcd, 0x24, 0x96, 0x13, 0x2b, 0x33, 0x05, 0xf3, 0x5e, 0x33, 0x37, 0xd1, 0x6a, 0xe6, 0xb4, 0x2b,\n\t0xa4, 0x4a, 0x1f, 0x37, 0x73, 0xb9, 0x6e, 0xe2, 0x8c, 0x00, 0x46, 0x88, 0x60, 0xa9, 0x8c, 0xde,\n\t0x86, 0x0c, 0x27, 0x5e, 0x99, 0xf2, 0xb5, 0x06, 0xf5, 0x48, 0x99, 0x5e, 0xe7, 0x76, 0xc5, 0xbe,\n\t0x4b, 0xb8, 0xed, 0x3a, 0x99, 0xe4, 0x72, 0x62, 0x65, 0xb2, 0xf0, 0xef, 0x56, 0x33, 0x97, 0xd9,\n\t0xea, 0x23, 0x83, 0xfb, 0x6a, 0xa3, 0x06, 0xa0, 0xd8, 0xda, 0x0d, 0x52, 0xa9, 0xd3, 0x4c, 0x6a,\n\t0x39, 0xb1, 0x92, 0xce, 0x1b, 0x46, 0x3b, 0x4a, 0x42, 0x56, 0x8c, 0xda, 0x6e, 0x59, 0x86, 0x4d,\n\t0xe0, 0x32, 0xe3, 0xad, 0x3a, 0x71, 0xb8, 0xcd, 0xf7, 0x0a, 0x27, 0x5a, 0xcd, 0x1c, 0xda, 0xea,\n\t0x42, 0xc3, 0x3d, 0x2c, 0x20, 0x13, 0x66, 0xac, 0x80, 0xb7, 0x8c, 0x26, 0xb9, 0x59, 0x54, 0xdc,\n\t0xcc, 0xb4, 0x09, 0x6d, 0xcb, 0xe8, 0xbf, 0x0f, 0x60, 0x9a, 0x13, 0x5e, 0x67, 0x07, 0xc3, 0xf4,\n\t0xbb, 0x70, 0xca, 0xaa, 0x7b, 0x1e, 0x75, 0xfa, 0x53, 0x7d, 0xa6, 0xd5, 0xcc, 0x9d, 0x2a, 0xf6,\n\t0x13, 0xc2, 0xfd, 0xf5, 0xd1, 0x47, 0x70, 0x2c, 0xbe, 0xf8, 0x24, 0x6c, 0x9f, 0x56, 0x07, 0x3c,\n\t0x56, 0xec, 0x86, 0xc4, 0xbd, 0xec, 0xec, 0x9f, 0xf3, 0xcf, 0x13, 0x70, 0xba, 0xe8, 0xb9, 0x8c,\n\t0xdd, 0xa0, 0x1e, 0xb3, 0x5d, 0xe7, 0xea, 0xf6, 0x07, 0xd4, 0xe2, 0x98, 0xde, 0xa6, 0x1e, 0x75,\n\t0x2c, 0x8a, 0x96, 0x41, 0xdb, 0xb5, 0x9d, 0x92, 0x62, 0x7c, 0x36, 0x60, 0xfc, 0x4d, 0xdb, 0x29,\n\t0x61, 0xb9, 0x22, 0x24, 0xa4, 0x4f, 0x92, 0x71, 0x89, 0x08, 0xe1, 0x79, 0x00, 0x52, 0xb3, 0x95,\n\t0x01, 0x49, 0xc5, 0x4c, 0x01, 0x29, 0x39, 0x58, 0xbb, 0x76, 0x59, 0xad, 0xe0, 0x88, 0x94, 0xfe,\n\t0x45, 0x0a, 0x8e, 0xbf, 0x7e, 0x87, 0x53, 0xcf, 0x21, 0x95, 0x58, 0xb2, 0xe5, 0x01, 0xaa, 0xf2,\n\t0xf9, 0x4a, 0x3b, 0x10, 0x42, 0xb0, 0x8d, 0x70, 0x05, 0x47, 0xa4, 0x90, 0x0b, 0x73, 0xfe, 0xd3,\n\t0x26, 0xad, 0x50, 0x8b, 0xbb, 0x9e, 0xdc, 0x6c, 0x3a, 0xff, 0xfc, 0x20, 0x7f, 0x30, 0x43, 0x94,\n\t0x1e, 0xa3, 0x71, 0xde, 0x58, 0x27, 0xdb, 0xb4, 0x12, 0xa8, 0x16, 0x50, 0xab, 0x99, 0x9b, 0xdb,\n\t0x88, 0xc1, 0xe1, 0x0e, 0x78, 0x44, 0x20, 0xed, 0x27, 0xc4, 0x93, 0x78, 0x7f, 0xbe, 0xd5, 0xcc,\n\t0xa5, 0xb7, 0xda, 0x30, 0x38, 0x8a, 0xd9, 0x27, 0xab, 0xb5, 0xa7, 0x9d, 0xd5, 0xfa, 0x97, 0xdd,\n\t0x8e, 0xf1, 0x73, 0xf3, 0x6f, 0xe1, 0x98, 0x1d, 0x98, 0x55, 0x69, 0xf3, 0x24, 0x9e, 0x39, 0xae,\n\t0x8e, 0x35, 0x5b, 0x8c, 0x60, 0xe1, 0x18, 0x32, 0xda, 0xeb, 0x5d, 0x08, 0xc6, 0x73, 0xd0, 0xc9,\n\t0xfd, 0x14, 0x01, 0xfd, 0xc7, 0x24, 0x9c, 0xbc, 0xe4, 0x7a, 0xf6, 0x5d, 0x91, 0xe5, 0x95, 0x6b,\n\t0x6e, 0x69, 0x4d, 0xb5, 0x7f, 0xea, 0xa1, 0xf7, 0x61, 0x5a, 0xb0, 0x57, 0x22, 0x9c, 0x48, 0x1f,\n\t0xa5, 0xf3, 0xe7, 0x46, 0xe3, 0xda, 0x2f, 0x0c, 0x1b, 0x94, 0x93, 0xb6, 0x57, 0xdb, 0xef, 0x70,\n\t0x88, 0x8a, 0x6e, 0x81, 0xc6, 0x6a, 0xd4, 0x52, 0x9e, 0x7c, 0xc5, 0x18, 0x7c, 0x0d, 0x31, 0xfa,\n\t0x6c, 0x74, 0xb3, 0x46, 0xad, 0x76, 0x31, 0x11, 0x4f, 0x58, 0xc2, 0x22, 0x0a, 0x53, 0x4c, 0x06,\n\t0x9c, 0xf2, 0xdd, 0xab, 0xe3, 0x1a, 0x90, 0x20, 0x85, 0x39, 0x65, 0x62, 0xca, 0x7f, 0xc6, 0x0a,\n\t0x5c, 0xff, 0x34, 0x05, 0xcb, 0x7d, 0x34, 0x8b, 0xae, 0x53, 0xb2, 0x65, 0xb1, 0xbf, 0x04, 0x1a,\n\t0xdf, 0xab, 0x05, 0xc1, 0xbe, 0x1a, 0xec, 0x76, 0x6b, 0xaf, 0x26, 0xda, 0xd1, 0x7f, 0x86, 0xe9,\n\t0x0b, 0x39, 0x2c, 0x11, 0xd0, 0x7a, 0x78, 0xaa, 0x64, 0x0c, 0x4b, 0x6d, 0xeb, 0x71, 0x33, 0xd7,\n\t0xe3, 0xfe, 0x65, 0x84, 0x48, 0xf1, 0xcd, 0x8b, 0xda, 0x50, 0x21, 0x8c, 0x6f, 0x79, 0xc4, 0x61,\n\t0xbe, 0x25, 0xbb, 0x1a, 0xc4, 0xfa, 0xd9, 0xd1, 0xdc, 0x2d, 0x34, 0x0a, 0x4b, 0x6a, 0x17, 0x68,\n\t0xbd, 0x0b, 0x0d, 0xf7, 0xb0, 0x80, 0xfe, 0x0b, 0x53, 0x1e, 0x25, 0xcc, 0x75, 0x54, 0xeb, 0x09,\n\t0xc9, 0xc5, 0xf2, 0x2d, 0x56, 0xab, 0xe8, 0x7f, 0x70, 0xa4, 0x4a, 0x19, 0x23, 0x65, 0x9a, 0x99,\n\t0x94, 0x82, 0xf3, 0x4a, 0xf0, 0xc8, 0x86, 0xff, 0x1a, 0x07, 0xeb, 0xfa, 0xc3, 0x04, 0x9c, 0xee,\n\t0xc3, 0xe3, 0xba, 0xcd, 0x38, 0xba, 0xd9, 0x15, 0xcf, 0xc6, 0x88, 0xb5, 0xc3, 0x66, 0x7e, 0x34,\n\t0x2f, 0x28, 0xdb, 0xd3, 0xc1, 0x9b, 0x48, 0x2c, 0xdf, 0x84, 0x49, 0x9b, 0xd3, 0xaa, 0xf0, 0x4a,\n\t0x6a, 0x25, 0x9d, 0x7f, 0x69, 0xcc, 0x58, 0x2b, 0x1c, 0x55, 0x36, 0x26, 0x2f, 0x0b, 0x34, 0xec,\n\t0x83, 0xea, 0x3f, 0x25, 0xfb, 0x9e, 0x4d, 0x04, 0x3c, 0xfa, 0x10, 0xe6, 0xe4, 0x93, 0x5f, 0x99,\n\t0x31, 0xbd, 0xad, 0x4e, 0x38, 0x34, 0xa7, 0x06, 0x34, 0xf4, 0xc2, 0x09, 0xb5, 0x95, 0xb9, 0xcd,\n\t0x18, 0x34, 0xee, 0x30, 0x85, 0xce, 0x43, 0xba, 0x6a, 0x3b, 0x98, 0xd6, 0x2a, 0xb6, 0x45, 0x98,\n\t0xba, 0x17, 0xc9, 0x96, 0xb4, 0xd1, 0x7e, 0x8d, 0xa3, 0x32, 0xe8, 0x05, 0x48, 0x57, 0xc9, 0x9d,\n\t0x50, 0x25, 0x25, 0x55, 0x8e, 0x29, 0x7b, 0xe9, 0x8d, 0xf6, 0x12, 0x8e, 0xca, 0xa1, 0xeb, 0x22,\n\t0x1a, 0x44, 0x95, 0x66, 0x19, 0x4d, 0xd2, 0x7c, 0x76, 0xd8, 0xf9, 0x54, 0x91, 0x17, 0x25, 0x22,\n\t0x12, 0x39, 0x12, 0x02, 0x07, 0x58, 0xfa, 0xf7, 0x1a, 0x9c, 0x19, 0x98, 0xfb, 0xe8, 0x0d, 0x40,\n\t0xee, 0x36, 0xa3, 0x5e, 0x83, 0x96, 0x2e, 0xfa, 0x97, 0x7e, 0x71, 0x3f, 0x11, 0x1c, 0xa7, 0xfc,\n\t0x96, 0x78, 0xb5, 0x6b, 0x15, 0xf7, 0xd0, 0x40, 0x16, 0x1c, 0x15, 0xc9, 0xe0, 0x13, 0x6a, 0xab,\n\t0xab, 0xd0, 0xfe, 0x32, 0x6d, 0xb1, 0xd5, 0xcc, 0x1d, 0x5d, 0x8f, 0x82, 0xe0, 0x38, 0x26, 0x5a,\n\t0x83, 0x79, 0x55, 0xeb, 0x3b, 0x08, 0x3e, 0xa9, 0x18, 0x98, 0x2f, 0xc6, 0x97, 0x71, 0xa7, 0xbc,\n\t0x80, 0x28, 0x51, 0x66, 0x7b, 0xb4, 0x14, 0x42, 0x68, 0x71, 0x88, 0x0b, 0xf1, 0x65, 0xdc, 0x29,\n\t0x8f, 0x2a, 0x30, 0xa7, 0x50, 0x15, 0xdf, 0x99, 0x49, 0xe9, 0xb2, 0xff, 0x8f, 0xe8, 0x32, 0xbf,\n\t0xe8, 0x86, 0x31, 0x58, 0x8c, 0x61, 0xe1, 0x0e, 0x6c, 0xc4, 0x01, 0xac, 0xa0, 0xc4, 0xb1, 0xcc,\n\t0x94, 0xb4, 0xf4, 0xda, 0x98, 0x39, 0x18, 0xd6, 0xca, 0x76, 0xfb, 0x0a, 0x5f, 0x31, 0x1c, 0xb1,\n\t0xa3, 0x7f, 0xab, 0x01, 0xb4, 0x23, 0x0c, 0xad, 0xc6, 0x8a, 0xfc, 0x72, 0x47, 0x91, 0x5f, 0x88,\n\t0x5e, 0x4e, 0x23, 0x05, 0xfd, 0x06, 0x4c, 0xb9, 0x32, 0xf3, 0x54, 0x30, 0xe4, 0x87, 0x6d, 0x3b,\n\t0xec, 0xa5, 0x21, 0x5a, 0x01, 0x44, 0xe9, 0x54, 0xf9, 0xab, 0xd0, 0xd0, 0x15, 0xd0, 0x6a, 0x6e,\n\t0x29, 0x68, 0x7e, 0xe7, 0x86, 0xa1, 0x5e, 0x73, 0x4b, 0x2c, 0x86, 0x39, 0x2d, 0xf6, 0x2e, 0xde,\n\t0x62, 0x89, 0x83, 0xde, 0x83, 0xe9, 0xe0, 0xba, 0xa1, 0xee, 0x26, 0xab, 0xc3, 0x30, 0x7b, 0xcd,\n\t0xc0, 0x85, 0x59, 0x51, 0x41, 0x83, 0x15, 0x1c, 0x62, 0xa2, 0x4f, 0x12, 0xb0, 0x68, 0x75, 0xce,\n\t0x74, 0x99, 0x23, 0xa3, 0xb5, 0xee, 0x81, 0x63, 0x77, 0xe1, 0x5f, 0xad, 0x66, 0x6e, 0xb1, 0x4b,\n\t0x04, 0x77, 0x9b, 0x13, 0x87, 0xa4, 0xea, 0xca, 0x2a, 0x1b, 0xce, 0x08, 0x87, 0xec, 0x35, 0x7b,\n\t0xf8, 0x87, 0x0c, 0x56, 0x70, 0x88, 0xa9, 0x7f, 0xa7, 0xc1, 0x6c, 0xec, 0x2e, 0xfc, 0x67, 0xc4,\n\t0x8c, 0x9f, 0x5a, 0x07, 0x1b, 0x33, 0x3e, 0xe6, 0xc1, 0xc7, 0x8c, 0x8f, 0x7b, 0xa8, 0x31, 0xe3,\n\t0x9b, 0x3c, 0xcc, 0x98, 0x89, 0x1c, 0xb2, 0x47, 0xcc, 0x3c, 0x4c, 0x01, 0xea, 0xce, 0x79, 0x64,\n\t0xc1, 0x94, 0x3f, 0x74, 0x1d, 0x44, 0xaf, 0x0f, 0xef, 0x5f, 0xaa, 0xad, 0x2b, 0xe8, 0x8e, 0x51,\n\t0x2d, 0x39, 0xd2, 0xa8, 0x46, 0x0f, 0x62, 0xa4, 0x0d, 0x2f, 0x03, 0x7d, 0xc7, 0xda, 0x5b, 0x30,\n\t0xcd, 0x82, 0x59, 0x50, 0x1b, 0x7f, 0x16, 0x94, 0xac, 0x87, 0x53, 0x60, 0x08, 0x89, 0x4a, 0x30,\n\t0x4b, 0xa2, 0xe3, 0xd8, 0xe4, 0x58, 0xc7, 0x58, 0x10, 0xb3, 0x5f, 0x6c, 0x0e, 0x8b, 0xa1, 0xea,\n\t0x3f, 0x77, 0xfa, 0xd6, 0xaf, 0x0a, 0x7f, 0x59, 0xdf, 0x1e, 0xde, 0x54, 0xfc, 0x8f, 0x70, 0xef,\n\t0x57, 0x49, 0x58, 0xe8, 0x6c, 0xac, 0x63, 0x7d, 0xfe, 0xb8, 0xdb, 0xf3, 0x1b, 0x4e, 0x72, 0xac,\n\t0x4d, 0x87, 0xb3, 0xda, 0x88, 0x5f, 0x67, 0xa3, 0x9e, 0x48, 0x1d, 0xb8, 0x27, 0xf4, 0xaf, 0xe3,\n\t0x1c, 0x8d, 0xff, 0x89, 0xa8, 0xcf, 0x07, 0xd5, 0xe4, 0x21, 0x7d, 0x50, 0x7d, 0xca, 0x34, 0x7d,\n\t0x93, 0x84, 0xe3, 0xcf, 0xfe, 0x53, 0x18, 0xfd, 0xeb, 0xe3, 0x0f, 0xdd, 0x7c, 0x3d, 0xfb, 0x67,\n\t0x60, 0x94, 0x40, 0x2e, 0x5c, 0xb8, 0xf7, 0x28, 0x3b, 0x71, 0xff, 0x51, 0x76, 0xe2, 0xc1, 0xa3,\n\t0xec, 0xc4, 0xc7, 0xad, 0x6c, 0xe2, 0x5e, 0x2b, 0x9b, 0xb8, 0xdf, 0xca, 0x26, 0x1e, 0xb4, 0xb2,\n\t0x89, 0x5f, 0x5a, 0xd9, 0xc4, 0x67, 0xbf, 0x66, 0x27, 0xde, 0xc9, 0x0e, 0xfe, 0x93, 0xf1, 0x8f,\n\t0x00, 0x00, 0x00, 0xff, 0xff, 0x09, 0x76, 0xa2, 0x69, 0x9e, 0x1c, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TargetValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetValue != nil {\n\t\tl = m.TargetValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageValue != nil {\n\t\tl = m.CurrentAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`TargetValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetValue == nil {\n\t\t\t\tm.TargetValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CurrentAverageValue == nil {\n\t\t\t\tm.CurrentAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2beta1\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 4;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 4;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\n// Exactly one \"target\" type should be set.\nmessage ExternalMetricSource {\n  // metricName is the name of the metric in question.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  // Mutually exclusive with TargetAverageValue.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // targetAverageValue is the target per-pod value of global metric (as a quantity).\n  // Mutually exclusive with TargetValue.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metricName is the name of a metric used for autoscaling in\n  // metric system.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // currentValue is the current value of the metric (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // currentAverageValue is the current value of metric averaged over autoscaled pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // +optional\n  repeated MetricSpec metrics = 4;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +optional\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +optional\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // currentValue is the current value of the metric (as a quantity).\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // targetAverageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // currentAverageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\t// API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// +optional\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\t// targetValue is the target value of the metric (as a quantity).\n\tTargetValue resource.Quantity `json:\"targetValue\" protobuf:\"bytes,3,name=targetValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// targetAverageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tTargetAverageValue resource.Quantity `json:\"targetAverageValue\" protobuf:\"bytes,2,name=targetAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\n// Exactly one \"target\" type should be set.\ntype ExternalMetricSource struct {\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// targetValue is the target value of the metric (as a quantity).\n\t// Mutually exclusive with TargetAverageValue.\n\t// +optional\n\tTargetValue *resource.Quantity `json:\"targetValue,omitempty\" protobuf:\"bytes,3,opt,name=targetValue\"`\n\t// targetAverageValue is the target per-pod value of global metric (as a quantity).\n\t// Mutually exclusive with TargetValue.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=targetAverageValue\"`\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +optional\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +optional\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\t// currentValue is the current value of the metric (as a quantity).\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// currentAverageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,2,name=currentAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metricName is the name of a metric used for autoscaling in\n\t// metric system.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// currentValue is the current value of the metric (as a quantity)\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\t// currentAverageValue is the current value of metric averaged over autoscaled pods.\n\t// +optional\n\tCurrentAverageValue *resource.Quantity `json:\"currentAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=currentAverageValue\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2,HorizontalPodAutoscaler\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2beta2,HorizontalPodAutoscalerList\n\n// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":                         \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n\t\"container\":                \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":                          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n\t\"container\":                 \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":                   \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \\\"target\\\" type should be set.\",\n\t\"metricName\":         \"metricName is the name of the metric in question.\",\n\t\"metricSelector\":     \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"targetValue\":        \"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\n\t\"targetAverageValue\": \"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":                    \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metricName\":          \"metricName is the name of a metric used for autoscaling in metric system.\",\n\t\"metricSelector\":      \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"currentValue\":        \"currentValue is the current value of the metric (as a quantity)\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":             \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"targetValue\":  \"targetValue is the target value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":             \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"currentValue\": \"currentValue is the current value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":                   \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metricName\":         \"metricName is the name of the metric in question\",\n\t\"targetAverageValue\": \"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":           \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":                    \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metricName\":          \"metricName is the name of the metric in question\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":            \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":                         \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":                          \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TargetValue != nil {\n\t\tin, out := &in.TargetValue, &out.TargetValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.CurrentAverageValue != nil {\n\t\tin, out := &in.CurrentAverageValue, &out.CurrentAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.TargetValue = in.TargetValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tout.TargetAverageValue = in.TargetAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2\", Kind: \"HorizontalPodAutoscaler\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2beta2\", Kind: \"HorizontalPodAutoscalerList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v2beta2 // import \"k8s.io/api/autoscaling/v2beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto\n\npackage v2beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HPAScalingPolicy) Reset()      { *m = HPAScalingPolicy{} }\nfunc (*HPAScalingPolicy) ProtoMessage() {}\nfunc (*HPAScalingPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{5}\n}\nfunc (m *HPAScalingPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingPolicy.Merge(m, src)\n}\nfunc (m *HPAScalingPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingPolicy proto.InternalMessageInfo\n\nfunc (m *HPAScalingRules) Reset()      { *m = HPAScalingRules{} }\nfunc (*HPAScalingRules) ProtoMessage() {}\nfunc (*HPAScalingRules) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{6}\n}\nfunc (m *HPAScalingRules) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingRules) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingRules.Merge(m, src)\n}\nfunc (m *HPAScalingRules) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingRules) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingRules.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingRules proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{7}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerBehavior) Reset()      { *m = HorizontalPodAutoscalerBehavior{} }\nfunc (*HorizontalPodAutoscalerBehavior) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerBehavior) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerBehavior proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{10}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{11}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{12}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricIdentifier) Reset()      { *m = MetricIdentifier{} }\nfunc (*MetricIdentifier) ProtoMessage() {}\nfunc (*MetricIdentifier) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{13}\n}\nfunc (m *MetricIdentifier) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricIdentifier) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricIdentifier.Merge(m, src)\n}\nfunc (m *MetricIdentifier) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricIdentifier) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricIdentifier.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricIdentifier proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{14}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{15}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *MetricTarget) Reset()      { *m = MetricTarget{} }\nfunc (*MetricTarget) ProtoMessage() {}\nfunc (*MetricTarget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{16}\n}\nfunc (m *MetricTarget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricTarget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricTarget.Merge(m, src)\n}\nfunc (m *MetricTarget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricTarget) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricTarget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricTarget proto.InternalMessageInfo\n\nfunc (m *MetricValueStatus) Reset()      { *m = MetricValueStatus{} }\nfunc (*MetricValueStatus) ProtoMessage() {}\nfunc (*MetricValueStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{17}\n}\nfunc (m *MetricValueStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricValueStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricValueStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricValueStatus.Merge(m, src)\n}\nfunc (m *MetricValueStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricValueStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricValueStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricValueStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{18}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{19}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{20}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{21}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{22}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_592ad94d7d6be24f, []int{23}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2beta2.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ExternalMetricStatus\")\n\tproto.RegisterType((*HPAScalingPolicy)(nil), \"k8s.io.api.autoscaling.v2beta2.HPAScalingPolicy\")\n\tproto.RegisterType((*HPAScalingRules)(nil), \"k8s.io.api.autoscaling.v2beta2.HPAScalingRules\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerBehavior)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricIdentifier)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricIdentifier\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricStatus\")\n\tproto.RegisterType((*MetricTarget)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricTarget\")\n\tproto.RegisterType((*MetricValueStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricValueStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto\", fileDescriptor_592ad94d7d6be24f)\n}\n\nvar fileDescriptor_592ad94d7d6be24f = []byte{\n\t// 1743 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xd7, 0x92, 0xd4, 0xd7, 0x50, 0x9f, 0xe3, 0x2f, 0x42, 0x86, 0x49, 0x61, 0x6b, 0xb4, 0xae,\n\t0xd1, 0x2e, 0x2b, 0x56, 0x6d, 0x0d, 0x18, 0x45, 0xab, 0x95, 0x5b, 0xdb, 0xb0, 0x64, 0xab, 0x43,\n\t0x59, 0x2d, 0x0a, 0xd9, 0xe8, 0x70, 0x77, 0x44, 0x4d, 0x45, 0xee, 0x12, 0xbb, 0x4b, 0xda, 0x72,\n\t0x80, 0x20, 0x08, 0x90, 0x7b, 0x90, 0x20, 0xd7, 0xfc, 0x09, 0x09, 0x7c, 0x09, 0x90, 0x63, 0x3e,\n\t0x60, 0x18, 0x41, 0x10, 0xf8, 0x16, 0xe7, 0x42, 0xc4, 0xcc, 0x31, 0xc7, 0xdc, 0x7c, 0x0a, 0xe6,\n\t0x63, 0x3f, 0x49, 0x89, 0x94, 0x20, 0x29, 0xd0, 0x8d, 0x3b, 0xf3, 0xde, 0xef, 0xcd, 0x7b, 0xf3,\n\t0x7b, 0x6f, 0xde, 0x0c, 0xc1, 0xcd, 0x9d, 0x6b, 0xae, 0x46, 0xed, 0xe2, 0x4e, 0xb3, 0x42, 0x1c,\n\t0x8b, 0x78, 0xc4, 0x2d, 0xb6, 0x88, 0x65, 0xda, 0x4e, 0x51, 0x4e, 0xe0, 0x06, 0x2d, 0xe2, 0xa6,\n\t0x67, 0xbb, 0x06, 0xae, 0x51, 0xab, 0x5a, 0x6c, 0x95, 0x2a, 0xc4, 0xc3, 0xa5, 0x62, 0x95, 0x58,\n\t0xc4, 0xc1, 0x1e, 0x31, 0xb5, 0x86, 0x63, 0x7b, 0x36, 0xcc, 0x0b, 0x79, 0x0d, 0x37, 0xa8, 0x16,\n\t0x91, 0xd7, 0xa4, 0xfc, 0xdc, 0xef, 0xab, 0xd4, 0xdb, 0x6e, 0x56, 0x34, 0xc3, 0xae, 0x17, 0xab,\n\t0x76, 0xd5, 0x2e, 0x72, 0xb5, 0x4a, 0x73, 0x8b, 0x7f, 0xf1, 0x0f, 0xfe, 0x4b, 0xc0, 0xcd, 0xa9,\n\t0x11, 0xf3, 0x86, 0xed, 0x90, 0x62, 0x6b, 0x21, 0x69, 0x72, 0x6e, 0x31, 0x94, 0xa9, 0x63, 0x63,\n\t0x9b, 0x5a, 0xc4, 0xd9, 0x2d, 0x36, 0x76, 0xaa, 0x5c, 0xc9, 0x21, 0xae, 0xdd, 0x74, 0x0c, 0x72,\n\t0x20, 0x2d, 0xb7, 0x58, 0x27, 0x1e, 0xee, 0x65, 0xab, 0xb8, 0x97, 0x96, 0xd3, 0xb4, 0x3c, 0x5a,\n\t0xef, 0x36, 0xf3, 0xe7, 0x7e, 0x0a, 0xae, 0xb1, 0x4d, 0xea, 0x38, 0xa9, 0xa7, 0xfe, 0xa8, 0x80,\n\t0x4b, 0xcb, 0xb6, 0xe5, 0x61, 0xa6, 0x81, 0xa4, 0x13, 0xab, 0xc4, 0x73, 0xa8, 0x51, 0xe6, 0xbf,\n\t0xe1, 0x32, 0xc8, 0x58, 0xb8, 0x4e, 0x72, 0xca, 0xbc, 0x72, 0x65, 0x5c, 0x2f, 0x3e, 0x6f, 0x17,\n\t0x86, 0x3a, 0xed, 0x42, 0xe6, 0x2e, 0xae, 0x93, 0xd7, 0xed, 0x42, 0xa1, 0x3b, 0x70, 0x9a, 0x0f,\n\t0xc3, 0x44, 0x10, 0x57, 0x86, 0xeb, 0x60, 0xc4, 0xc3, 0x4e, 0x95, 0x78, 0xb9, 0xd4, 0xbc, 0x72,\n\t0x25, 0x5b, 0xfa, 0x9d, 0xb6, 0xff, 0xfe, 0x69, 0x62, 0x09, 0xeb, 0x5c, 0x47, 0x9f, 0x92, 0x46,\n\t0x47, 0xc4, 0x37, 0x92, 0x58, 0xb0, 0x08, 0xc6, 0x0d, 0x7f, 0xed, 0xb9, 0x34, 0x5f, 0xdf, 0xac,\n\t0x14, 0x1d, 0x0f, 0x9d, 0x0a, 0x65, 0xd4, 0x9f, 0xf6, 0xf1, 0xd6, 0xc3, 0x5e, 0xd3, 0x3d, 0x1a,\n\t0x6f, 0x37, 0xc1, 0xa8, 0xd1, 0x74, 0x1c, 0x62, 0xf9, 0xee, 0x2e, 0x0c, 0xe6, 0xee, 0x06, 0xae,\n\t0x35, 0x89, 0x58, 0x88, 0x3e, 0x2d, 0x4d, 0x8f, 0x2e, 0x0b, 0x24, 0xe4, 0x43, 0x1e, 0xdc, 0xeb,\n\t0x0f, 0x14, 0x70, 0x71, 0xd9, 0xb1, 0x5d, 0x77, 0x83, 0x38, 0x2e, 0xb5, 0xad, 0x7b, 0x95, 0xff,\n\t0x13, 0xc3, 0x43, 0x64, 0x8b, 0x38, 0xc4, 0x32, 0x08, 0x9c, 0x07, 0x99, 0x1d, 0x6a, 0x99, 0xd2,\n\t0xe7, 0x09, 0xdf, 0xe7, 0x3b, 0xd4, 0x32, 0x11, 0x9f, 0x61, 0x12, 0x3c, 0x2a, 0xa9, 0xb8, 0x44,\n\t0xc4, 0xe5, 0x12, 0x00, 0xb8, 0x41, 0xa5, 0x01, 0xb9, 0x2a, 0x28, 0xe5, 0xc0, 0xd2, 0xda, 0x6d,\n\t0x39, 0x83, 0x22, 0x52, 0xea, 0x33, 0x05, 0x9c, 0xfd, 0xc7, 0x63, 0x8f, 0x38, 0x16, 0xae, 0xc5,\n\t0x28, 0xf7, 0x1f, 0x30, 0x52, 0xe7, 0xdf, 0x7c, 0x49, 0xd9, 0xd2, 0x1f, 0x06, 0x0b, 0xdf, 0x6d,\n\t0x93, 0x58, 0x1e, 0xdd, 0xa2, 0xc4, 0x09, 0x19, 0x23, 0x66, 0x90, 0xc4, 0x3b, 0x1e, 0x1e, 0xaa,\n\t0xdf, 0x74, 0x3b, 0x22, 0xd8, 0x74, 0x7c, 0x8e, 0x1c, 0x2b, 0xc5, 0xd4, 0x8f, 0x14, 0x30, 0x73,\n\t0x6b, 0x6d, 0xa9, 0x2c, 0x20, 0xd6, 0xec, 0x1a, 0x35, 0x76, 0xe1, 0x35, 0x90, 0xf1, 0x76, 0x1b,\n\t0x7e, 0x6a, 0x5c, 0xf6, 0x49, 0xb0, 0xbe, 0xdb, 0x60, 0xa9, 0x71, 0x36, 0x29, 0xcf, 0xc6, 0x11,\n\t0xd7, 0x80, 0xbf, 0x02, 0xc3, 0x2d, 0x66, 0x97, 0x2f, 0x75, 0x58, 0x9f, 0x94, 0xaa, 0xc3, 0x7c,\n\t0x31, 0x48, 0xcc, 0xc1, 0xeb, 0x60, 0xb2, 0x41, 0x1c, 0x6a, 0x9b, 0x65, 0x62, 0xd8, 0x96, 0xe9,\n\t0x72, 0x12, 0x0d, 0xeb, 0xe7, 0xa4, 0xf0, 0xe4, 0x5a, 0x74, 0x12, 0xc5, 0x65, 0xd5, 0x0f, 0x53,\n\t0x60, 0x3a, 0x5c, 0x00, 0x6a, 0xd6, 0x88, 0x0b, 0x1f, 0x82, 0x39, 0xd7, 0xc3, 0x15, 0x5a, 0xa3,\n\t0x4f, 0xb0, 0x47, 0x6d, 0xeb, 0xdf, 0xd4, 0x32, 0xed, 0x47, 0x71, 0xf4, 0x7c, 0xa7, 0x5d, 0x98,\n\t0x2b, 0xef, 0x29, 0x85, 0xf6, 0x41, 0x80, 0x77, 0xc0, 0x84, 0x4b, 0x6a, 0xc4, 0xf0, 0x84, 0xbf,\n\t0x32, 0x2e, 0xbf, 0xe9, 0xb4, 0x0b, 0x13, 0xe5, 0xc8, 0xf8, 0xeb, 0x76, 0xe1, 0x4c, 0x2c, 0x30,\n\t0x62, 0x12, 0xc5, 0x94, 0xe1, 0x43, 0x30, 0xd6, 0x60, 0xbf, 0x28, 0x71, 0x73, 0xa9, 0xf9, 0xf4,\n\t0x20, 0x5c, 0x49, 0x06, 0x5c, 0x9f, 0x91, 0xa1, 0x1a, 0x5b, 0x93, 0x48, 0x28, 0xc0, 0x54, 0x3f,\n\t0x4b, 0x81, 0x0b, 0xb7, 0x6c, 0x87, 0x3e, 0x61, 0x55, 0xa1, 0xb6, 0x66, 0x9b, 0x4b, 0x12, 0x91,\n\t0x38, 0xf0, 0x7f, 0x60, 0x8c, 0x9d, 0x43, 0x26, 0xf6, 0x70, 0x0f, 0x9e, 0x06, 0xc7, 0x89, 0xd6,\n\t0xd8, 0xa9, 0xb2, 0x01, 0x57, 0x63, 0xd2, 0x5a, 0x6b, 0x41, 0x13, 0x85, 0x64, 0x95, 0x78, 0x38,\n\t0xcc, 0xf5, 0x70, 0x0c, 0x05, 0xa8, 0xf0, 0x01, 0xc8, 0xb8, 0x0d, 0x62, 0x48, 0xaa, 0x5e, 0xef,\n\t0xeb, 0x59, 0xef, 0x85, 0x96, 0x1b, 0xc4, 0x08, 0x8b, 0x0f, 0xfb, 0x42, 0x1c, 0x16, 0x12, 0x30,\n\t0xe2, 0x72, 0x4a, 0xf3, 0x5d, 0xcd, 0x96, 0xfe, 0x7a, 0x58, 0x03, 0x22, 0x2f, 0x82, 0x9c, 0x13,\n\t0xdf, 0x48, 0x82, 0xab, 0xdf, 0x2a, 0xa0, 0xb0, 0x87, 0xa6, 0x4e, 0xb6, 0x71, 0x8b, 0xda, 0x0e,\n\t0xdc, 0x00, 0xa3, 0x7c, 0xe4, 0x7e, 0x43, 0x86, 0xb2, 0x38, 0xf8, 0x36, 0x72, 0xda, 0xea, 0x59,\n\t0x96, 0x91, 0x65, 0x81, 0x81, 0x7c, 0x30, 0xb8, 0x09, 0xc6, 0xf9, 0xcf, 0x1b, 0xf6, 0x23, 0x4b,\n\t0x86, 0xf1, 0xc0, 0xc8, 0x93, 0xec, 0x84, 0x28, 0xfb, 0x28, 0x28, 0x04, 0x54, 0xdf, 0x49, 0x83,\n\t0xf9, 0x3d, 0x3c, 0x5b, 0xb6, 0x2d, 0x93, 0x32, 0xf2, 0xc3, 0x5b, 0xb1, 0xfc, 0x5f, 0x4c, 0xe4,\n\t0xff, 0xe5, 0x7e, 0xfa, 0x91, 0x7a, 0xb0, 0x12, 0xec, 0x57, 0x2a, 0x86, 0x25, 0x03, 0xfe, 0xba,\n\t0x5d, 0xe8, 0xd1, 0x8f, 0x69, 0x01, 0x52, 0x7c, 0x5b, 0x60, 0x0b, 0xc0, 0x1a, 0x76, 0xbd, 0x75,\n\t0x07, 0x5b, 0xae, 0xb0, 0x44, 0xeb, 0x44, 0x32, 0xe1, 0xea, 0x60, 0x44, 0x66, 0x1a, 0xfa, 0x9c,\n\t0x5c, 0x05, 0x5c, 0xe9, 0x42, 0x43, 0x3d, 0x2c, 0xc0, 0x5f, 0x83, 0x11, 0x87, 0x60, 0xd7, 0xb6,\n\t0x72, 0x19, 0xee, 0x45, 0x40, 0x1b, 0xc4, 0x47, 0x91, 0x9c, 0x85, 0xbf, 0x05, 0xa3, 0x75, 0xe2,\n\t0xba, 0xb8, 0x4a, 0x72, 0xc3, 0x5c, 0x30, 0xa8, 0xbb, 0xab, 0x62, 0x18, 0xf9, 0xf3, 0xea, 0x77,\n\t0x0a, 0xb8, 0xb8, 0x47, 0x1c, 0x57, 0xa8, 0xeb, 0xc1, 0xcd, 0xae, 0x4c, 0xd5, 0x06, 0x73, 0x90,\n\t0x69, 0xf3, 0x3c, 0x0d, 0x6a, 0x84, 0x3f, 0x12, 0xc9, 0xd2, 0x4d, 0x30, 0x4c, 0x3d, 0x52, 0xf7,\n\t0x0b, 0xd0, 0x5f, 0x0e, 0x99, 0x45, 0x61, 0x7d, 0xbf, 0xcd, 0xd0, 0x90, 0x00, 0x55, 0x9f, 0xa5,\n\t0xf7, 0xf4, 0x8d, 0xa5, 0x32, 0x7c, 0x03, 0x4c, 0xf1, 0x2f, 0x79, 0xb6, 0x92, 0x2d, 0xe9, 0x61,\n\t0xdf, 0x6a, 0xb1, 0x4f, 0x6b, 0xa3, 0x9f, 0x97, 0x4b, 0x99, 0x2a, 0xc7, 0xa0, 0x51, 0xc2, 0x14,\n\t0x5c, 0x00, 0xd9, 0x3a, 0xb5, 0x10, 0x69, 0xd4, 0xa8, 0x81, 0x5d, 0x79, 0x4e, 0x4d, 0x77, 0xda,\n\t0x85, 0xec, 0x6a, 0x38, 0x8c, 0xa2, 0x32, 0xf0, 0x4f, 0x20, 0x5b, 0xc7, 0x8f, 0x03, 0x15, 0x71,\n\t0x9e, 0x9c, 0x91, 0xf6, 0xb2, 0xab, 0xe1, 0x14, 0x8a, 0xca, 0xc1, 0xfb, 0x8c, 0x0d, 0xec, 0x24,\n\t0x76, 0x73, 0x19, 0x1e, 0xe6, 0xab, 0x83, 0x1d, 0xdc, 0xbc, 0xf8, 0x45, 0x98, 0xc3, 0x21, 0x90,\n\t0x8f, 0x05, 0x29, 0x18, 0xab, 0xc8, 0x1a, 0xc4, 0x59, 0x96, 0x2d, 0xfd, 0xed, 0xb0, 0xdb, 0x27,\n\t0x61, 0xf4, 0x09, 0x46, 0x13, 0xff, 0x0b, 0x05, 0xf0, 0xea, 0x27, 0x19, 0x70, 0x69, 0xdf, 0x02,\n\t0x0a, 0xff, 0x09, 0xa0, 0x5d, 0x71, 0x89, 0xd3, 0x22, 0xe6, 0x4d, 0x71, 0xdf, 0x60, 0x4d, 0x21,\n\t0xdb, 0xce, 0xb4, 0x7e, 0x9e, 0x65, 0xd8, 0xbd, 0xae, 0x59, 0xd4, 0x43, 0x03, 0x1a, 0x60, 0x92,\n\t0xe5, 0x9d, 0xd8, 0x3b, 0x2a, 0xfb, 0xcf, 0x83, 0x25, 0xf5, 0x2c, 0x6b, 0x1d, 0x56, 0xa2, 0x20,\n\t0x28, 0x8e, 0x09, 0x97, 0xc0, 0xb4, 0x6c, 0x7b, 0x12, 0x7b, 0x79, 0x41, 0x06, 0x7b, 0x7a, 0x39,\n\t0x3e, 0x8d, 0x92, 0xf2, 0x0c, 0xc2, 0x24, 0x2e, 0x75, 0x88, 0x19, 0x40, 0x64, 0xe2, 0x10, 0x37,\n\t0xe2, 0xd3, 0x28, 0x29, 0x0f, 0x6b, 0x60, 0x4a, 0xa2, 0xca, 0xad, 0xcd, 0x0d, 0x73, 0x76, 0x0c,\n\t0xd8, 0xa0, 0xca, 0x93, 0x2b, 0xa0, 0xfb, 0x72, 0x0c, 0x0b, 0x25, 0xb0, 0xa1, 0x07, 0x80, 0xe1,\n\t0x57, 0x53, 0x37, 0x37, 0xc2, 0x2d, 0xfd, 0xfd, 0x90, 0x7c, 0x09, 0xca, 0x72, 0xd8, 0x03, 0x04,\n\t0x43, 0x2e, 0x8a, 0xd8, 0x51, 0xdf, 0x57, 0xc0, 0x4c, 0xb2, 0xc1, 0x0d, 0xae, 0x16, 0xca, 0x9e,\n\t0x57, 0x8b, 0x07, 0x60, 0x4c, 0xb4, 0x4a, 0xb6, 0x23, 0x09, 0xf0, 0xc7, 0x01, 0x8b, 0x1e, 0xae,\n\t0x90, 0x5a, 0x59, 0xaa, 0x0a, 0x3a, 0xfb, 0x5f, 0x28, 0x80, 0x54, 0x3f, 0xce, 0x00, 0x10, 0xa6,\n\t0x18, 0x5c, 0x8c, 0x9d, 0x72, 0xf3, 0x89, 0x53, 0x6e, 0x26, 0x7a, 0x4f, 0x89, 0x9c, 0x68, 0x1b,\n\t0x60, 0xc4, 0xe6, 0xa5, 0x47, 0xae, 0xb0, 0xd4, 0x2f, 0x98, 0x41, 0x9b, 0x14, 0xa0, 0xe9, 0x80,\n\t0x9d, 0x1d, 0xb2, 0x80, 0x49, 0x34, 0x78, 0x17, 0x64, 0x1a, 0xb6, 0xe9, 0xf7, 0x35, 0x7d, 0x5b,\n\t0xc2, 0x35, 0xdb, 0x74, 0x63, 0x98, 0x63, 0x6c, 0xed, 0x6c, 0x14, 0x71, 0x1c, 0xd6, 0x66, 0xfa,\n\t0x2f, 0x15, 0x9c, 0xa2, 0xd9, 0xd2, 0x62, 0x3f, 0xcc, 0x5e, 0x8f, 0x02, 0x22, 0x98, 0xfe, 0x0c,\n\t0x0a, 0x30, 0xe1, 0xdb, 0x0a, 0x98, 0x35, 0x92, 0x17, 0xec, 0xdc, 0xe8, 0x60, 0x5d, 0xd9, 0xbe,\n\t0xef, 0x10, 0xfa, 0xb9, 0x4e, 0xbb, 0x30, 0xdb, 0x25, 0x82, 0xba, 0xcd, 0x31, 0x27, 0x89, 0xbc,\n\t0x8d, 0xc9, 0x5a, 0xd8, 0xd7, 0xc9, 0x5e, 0xd7, 0x50, 0xe1, 0xa4, 0x3f, 0x83, 0x02, 0x4c, 0xf5,\n\t0x69, 0x06, 0x4c, 0xc4, 0xae, 0x79, 0xbf, 0x04, 0x67, 0x44, 0xc2, 0x1f, 0x2d, 0x67, 0x04, 0xe6,\n\t0xd1, 0x73, 0x46, 0xe0, 0x9e, 0x28, 0x67, 0x84, 0xc9, 0x93, 0xe4, 0x4c, 0xc4, 0xc9, 0x1e, 0x9c,\n\t0xf9, 0x22, 0xe5, 0x73, 0x46, 0x34, 0x1d, 0x83, 0x71, 0x46, 0xc8, 0x46, 0x38, 0x73, 0x2f, 0x7a,\n\t0x93, 0xee, 0xd3, 0xfd, 0x69, 0x7e, 0x84, 0xb5, 0x7f, 0x35, 0xb1, 0xe5, 0x51, 0x6f, 0x57, 0x1f,\n\t0xef, 0xba, 0x75, 0x9b, 0x60, 0x02, 0xb7, 0x88, 0x83, 0xab, 0x84, 0x0f, 0x4b, 0xd2, 0x1c, 0x14,\n\t0x77, 0x86, 0x5d, 0x7a, 0x97, 0x22, 0x38, 0x28, 0x86, 0xca, 0x1a, 0x02, 0xf9, 0x7d, 0xdf, 0x0b,\n\t0x6e, 0xd3, 0xf2, 0x8c, 0xe4, 0x0d, 0xc1, 0x52, 0xd7, 0x2c, 0xea, 0xa1, 0xa1, 0xbe, 0x97, 0x02,\n\t0xb3, 0x5d, 0xef, 0x18, 0x61, 0x50, 0x94, 0x63, 0x0a, 0x4a, 0xea, 0x04, 0x83, 0x92, 0x3e, 0x70,\n\t0x50, 0xbe, 0x4c, 0x01, 0xd8, 0x7d, 0x9c, 0xc0, 0x37, 0x79, 0x53, 0x62, 0x38, 0xb4, 0x42, 0x4c,\n\t0x31, 0x7d, 0x14, 0x0d, 0x75, 0xb4, 0xa3, 0x89, 0x62, 0xa3, 0xa4, 0xb1, 0x63, 0x7a, 0xf2, 0x0d,\n\t0x5f, 0xd4, 0xd2, 0x47, 0xfb, 0xa2, 0xa6, 0x7e, 0x9d, 0x0c, 0xe3, 0xa9, 0x7e, 0xc2, 0xeb, 0xb5,\n\t0xfd, 0xe9, 0x13, 0xdc, 0x7e, 0xf5, 0x73, 0x05, 0xcc, 0x24, 0xdb, 0x91, 0x53, 0xf7, 0xb0, 0xfb,\n\t0x55, 0xdc, 0x89, 0xd3, 0xfd, 0xa8, 0xfb, 0x54, 0x01, 0x67, 0x4f, 0xd9, 0x3f, 0x3c, 0xea, 0xa7,\n\t0xdd, 0x6b, 0x3e, 0x2d, 0xff, 0xd3, 0xe8, 0x37, 0x9e, 0xbf, 0xca, 0x0f, 0xbd, 0x78, 0x95, 0x1f,\n\t0x7a, 0xf9, 0x2a, 0x3f, 0xf4, 0x56, 0x27, 0xaf, 0x3c, 0xef, 0xe4, 0x95, 0x17, 0x9d, 0xbc, 0xf2,\n\t0xb2, 0x93, 0x57, 0xbe, 0xef, 0xe4, 0x95, 0x77, 0x7f, 0xc8, 0x0f, 0xfd, 0x37, 0xbf, 0xff, 0x1f,\n\t0x9f, 0x3f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x10, 0x14, 0x03, 0x76, 0x32, 0x1d, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingRules) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingRules) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingRules) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StabilizationWindowSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StabilizationWindowSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor iNdEx := len(m.Policies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Policies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.SelectPolicy != nil {\n\t\ti -= len(*m.SelectPolicy)\n\t\tcopy(dAtA[i:], *m.SelectPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SelectPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScaleDown != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleDown.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ScaleUp != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleUp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Behavior != nil {\n\t\t{\n\t\t\tsize, err := m.Behavior.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricIdentifier) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricIdentifier) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricIdentifier) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricTarget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricTarget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricValueStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricValueStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricValueStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HPAScalingPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\treturn n\n}\n\nfunc (m *HPAScalingRules) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SelectPolicy != nil {\n\t\tl = len(*m.SelectPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor _, e := range m.Policies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StabilizationWindowSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StabilizationWindowSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ScaleUp != nil {\n\t\tl = m.ScaleUp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleDown != nil {\n\t\tl = m.ScaleDown.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Behavior != nil {\n\t\tl = m.Behavior.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricIdentifier) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricTarget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *MetricValueStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HPAScalingPolicy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingRules) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPolicies := \"[]HPAScalingPolicy{\"\n\tfor _, f := range this.Policies {\n\t\trepeatedStringForPolicies += strings.Replace(strings.Replace(f.String(), \"HPAScalingPolicy\", \"HPAScalingPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPolicies += \"}\"\n\ts := strings.Join([]string{`&HPAScalingRules{`,\n\t\t`SelectPolicy:` + valueToStringGenerated(this.SelectPolicy) + `,`,\n\t\t`Policies:` + repeatedStringForPolicies + `,`,\n\t\t`StabilizationWindowSeconds:` + valueToStringGenerated(this.StabilizationWindowSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerBehavior) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerBehavior{`,\n\t\t`ScaleUp:` + strings.Replace(this.ScaleUp.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`ScaleDown:` + strings.Replace(this.ScaleDown.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`Behavior:` + strings.Replace(this.Behavior.String(), \"HorizontalPodAutoscalerBehavior\", \"HorizontalPodAutoscalerBehavior\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricIdentifier) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricIdentifier{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricTarget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricTarget{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricValueStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricValueStatus{`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HPAScalingPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingRules) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelectPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScalingPolicySelect(dAtA[iNdEx:postIndex])\n\t\t\tm.SelectPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Policies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Policies = append(m.Policies, HPAScalingPolicy{})\n\t\t\tif err := m.Policies[len(m.Policies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StabilizationWindowSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StabilizationWindowSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleUp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleUp == nil {\n\t\t\t\tm.ScaleUp = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleUp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleDown\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleDown == nil {\n\t\t\t\tm.ScaleDown = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleDown.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Behavior\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Behavior == nil {\n\t\t\t\tm.Behavior = &HorizontalPodAutoscalerBehavior{}\n\t\t\t}\n\t\t\tif err := m.Behavior.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricIdentifier) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricTarget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricTargetType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricValueStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2beta2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2beta2\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\nmessage HPAScalingPolicy {\n  // type is used to specify the scaling policy.\n  optional string type = 1;\n\n  // value contains the amount of change which is permitted by the policy.\n  // It must be greater than zero\n  optional int32 value = 2;\n\n  // periodSeconds specifies the window of time for which the policy should hold true.\n  // PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n  optional int32 periodSeconds = 3;\n}\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\nmessage HPAScalingRules {\n  // stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n  // considered while scaling up or scaling down.\n  // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n  // If not set, use the default values:\n  // - For scale up: 0 (i.e. no stabilization is done).\n  // - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n  // +optional\n  optional int32 stabilizationWindowSeconds = 3;\n\n  // selectPolicy is used to specify which policy should be used.\n  // If not set, the default value MaxPolicySelect is used.\n  // +optional\n  optional string selectPolicy = 1;\n\n  // policies is a list of potential scaling polices which can be used during scaling.\n  // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n  // +optional\n  repeated HPAScalingPolicy policies = 2;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\nmessage HorizontalPodAutoscalerBehavior {\n  // scaleUp is scaling policy for scaling Up.\n  // If not set, the default value is the higher of:\n  //   * increase no more than 4 pods per 60 seconds\n  //   * double the number of pods per 60 seconds\n  // No stabilization is used.\n  // +optional\n  optional HPAScalingRules scaleUp = 1;\n\n  // scaleDown is scaling policy for scaling Down.\n  // If not set, the default value is to allow to scale down to minReplicas pods, with a\n  // 300 second stabilization window (i.e., the highest recommendation for\n  // the last 300sec is used).\n  // +optional\n  optional HPAScalingRules scaleDown = 2;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // If not set, the default metric will be set to 80% average CPU utilization.\n  // +optional\n  repeated MetricSpec metrics = 4;\n\n  // behavior configures the scaling behavior of the target\n  // in both Up and Down directions (scaleUp and scaleDown fields respectively).\n  // If not set, the default HPAScalingRules for scale up and scale down are used.\n  // +optional\n  optional HorizontalPodAutoscalerBehavior behavior = 5;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +optional\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +optional\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\nmessage MetricIdentifier {\n  // name is the name of the given metric\n  optional string name = 1;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  // Note: \"ContainerResource\" type is available on when the feature-gate\n  // HPAContainerMetrics is enabled\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\nmessage MetricTarget {\n  // type represents whether the metric type is Utilization, Value, or AverageValue\n  optional string type = 1;\n\n  // value is the target value of the metric (as a quantity).\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 2;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 3;\n\n  // averageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // Currently only valid for Resource metric source type\n  // +optional\n  optional int32 averageUtilization = 4;\n}\n\n// MetricValueStatus holds the current value for a metric\nmessage MetricValueStatus {\n  // value is the current value of the metric (as a quantity).\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 1;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 2;\n\n  // averageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 averageUtilization = 3;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  optional CrossVersionObjectReference describedObject = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 3;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  optional CrossVersionObjectReference describedObject = 3;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2,HorizontalPodAutoscaler\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// If not set, the default metric will be set to 80% average CPU utilization.\n\t// +optional\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n\n\t// behavior configures the scaling behavior of the target\n\t// in both Up and Down directions (scaleUp and scaleDown fields respectively).\n\t// If not set, the default HPAScalingRules for scale up and scale down are used.\n\t// +optional\n\tBehavior *HorizontalPodAutoscalerBehavior `json:\"behavior,omitempty\" protobuf:\"bytes,5,opt,name=behavior\"`\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\ntype HorizontalPodAutoscalerBehavior struct {\n\t// scaleUp is scaling policy for scaling Up.\n\t// If not set, the default value is the higher of:\n\t//   * increase no more than 4 pods per 60 seconds\n\t//   * double the number of pods per 60 seconds\n\t// No stabilization is used.\n\t// +optional\n\tScaleUp *HPAScalingRules `json:\"scaleUp,omitempty\" protobuf:\"bytes,1,opt,name=scaleUp\"`\n\n\t// scaleDown is scaling policy for scaling Down.\n\t// If not set, the default value is to allow to scale down to minReplicas pods, with a\n\t// 300 second stabilization window (i.e., the highest recommendation for\n\t// the last 300sec is used).\n\t// +optional\n\tScaleDown *HPAScalingRules `json:\"scaleDown,omitempty\" protobuf:\"bytes,2,opt,name=scaleDown\"`\n}\n\n// ScalingPolicySelect is used to specify which policy should be used while scaling in a certain direction\ntype ScalingPolicySelect string\n\nconst (\n\t// MaxPolicySelect selects the policy with the highest possible change.\n\tMaxPolicySelect ScalingPolicySelect = \"Max\"\n\t// MinPolicySelect selects the policy with the lowest possible change.\n\tMinPolicySelect ScalingPolicySelect = \"Min\"\n\t// DisabledPolicySelect disables the scaling in this direction.\n\tDisabledPolicySelect ScalingPolicySelect = \"Disabled\"\n)\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\ntype HPAScalingRules struct {\n\t// stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n\t// considered while scaling up or scaling down.\n\t// StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n\t// If not set, use the default values:\n\t// - For scale up: 0 (i.e. no stabilization is done).\n\t// - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n\t// +optional\n\tStabilizationWindowSeconds *int32 `json:\"stabilizationWindowSeconds,omitempty\" protobuf:\"varint,3,opt,name=stabilizationWindowSeconds\"`\n\n\t// selectPolicy is used to specify which policy should be used.\n\t// If not set, the default value MaxPolicySelect is used.\n\t// +optional\n\tSelectPolicy *ScalingPolicySelect `json:\"selectPolicy,omitempty\" protobuf:\"bytes,1,opt,name=selectPolicy\"`\n\n\t// policies is a list of potential scaling polices which can be used during scaling.\n\t// At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n\t// +optional\n\tPolicies []HPAScalingPolicy `json:\"policies,omitempty\" protobuf:\"bytes,2,rep,name=policies\"`\n}\n\n// HPAScalingPolicyType is the type of the policy which could be used while making scaling decisions.\ntype HPAScalingPolicyType string\n\nconst (\n\t// PodsScalingPolicy is a policy used to specify a change in absolute number of pods.\n\tPodsScalingPolicy HPAScalingPolicyType = \"Pods\"\n\t// PercentScalingPolicy is a policy used to specify a relative amount of change with respect to\n\t// the current number of pods.\n\tPercentScalingPolicy HPAScalingPolicyType = \"Percent\"\n)\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\ntype HPAScalingPolicy struct {\n\t// type is used to specify the scaling policy.\n\tType HPAScalingPolicyType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=HPAScalingPolicyType\"`\n\n\t// value contains the amount of change which is permitted by the policy.\n\t// It must be greater than zero\n\tValue int32 `json:\"value\" protobuf:\"varint,2,opt,name=value\"`\n\n\t// periodSeconds specifies the window of time for which the policy should hold true.\n\t// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n\tPeriodSeconds int32 `json:\"periodSeconds\" protobuf:\"varint,3,opt,name=periodSeconds\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,1,name=describedObject\"`\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,3,name=metric\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\ntype MetricIdentifier struct {\n\t// name is the name of the given metric\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,name=selector\"`\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\ntype MetricTarget struct {\n\t// type represents whether the metric type is Utilization, Value, or AverageValue\n\tType MetricTargetType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// value is the target value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,3,opt,name=averageValue\"`\n\n\t// averageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// Currently only valid for Resource metric source type\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,4,opt,name=averageUtilization\"`\n}\n\n// MetricTargetType specifies the type of metric being targeted, and should be either\n// \"Value\", \"AverageValue\", or \"Utilization\"\ntype MetricTargetType string\n\nconst (\n\t// UtilizationMetricType declares a MetricTarget is an AverageUtilization value\n\tUtilizationMetricType MetricTargetType = \"Utilization\"\n\t// ValueMetricType declares a MetricTarget is a raw value\n\tValueMetricType MetricTargetType = \"Value\"\n\t// AverageValueMetricType declares a MetricTarget is an\n\tAverageValueMetricType MetricTargetType = \"AverageValue\"\n)\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +optional\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +optional\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\t// Note: \"ContainerResource\" type is available on when the feature-gate\n\t// HPAContainerMetrics is enabled\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,3,name=describedObject\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// MetricValueStatus holds the current value for a metric\ntype MetricValueStatus struct {\n\t// value is the current value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,1,opt,name=value\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,2,opt,name=averageValue\"`\n\n\t// averageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,3,opt,name=averageUtilization\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":          \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"target\":    \"target specifies the target value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"current\":   \"current contains the current value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":       \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":        \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HPAScalingPolicy = map[string]string{\n\t\"\":              \"HPAScalingPolicy is a single policy which must hold true for a specified past interval.\",\n\t\"type\":          \"type is used to specify the scaling policy.\",\n\t\"value\":         \"value contains the amount of change which is permitted by the policy. It must be greater than zero\",\n\t\"periodSeconds\": \"periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n}\n\nfunc (HPAScalingPolicy) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingPolicy\n}\n\nvar map_HPAScalingRules = map[string]string{\n\t\"\":                           \"HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.\",\n\t\"stabilizationWindowSeconds\": \"stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\",\n\t\"selectPolicy\":               \"selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.\",\n\t\"policies\":                   \"policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\",\n}\n\nfunc (HPAScalingRules) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingRules\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerBehavior = map[string]string{\n\t\"\":          \"HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\",\n\t\"scaleUp\":   \"scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\\n  * increase no more than 4 pods per 60 seconds\\n  * double the number of pods per 60 seconds\\nNo stabilization is used.\",\n\t\"scaleDown\": \"scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).\",\n}\n\nfunc (HorizontalPodAutoscalerBehavior) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerBehavior\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.\",\n\t\"behavior\":       \"behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricIdentifier = map[string]string{\n\t\"\":         \"MetricIdentifier defines the name and optionally selector for a metric\",\n\t\"name\":     \"name is the name of the given metric\",\n\t\"selector\": \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (MetricIdentifier) SwaggerDoc() map[string]string {\n\treturn map_MetricIdentifier\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object. Note: \\\"ContainerResource\\\" type is available on when the feature-gate HPAContainerMetrics is enabled\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_MetricTarget = map[string]string{\n\t\"\":                   \"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\n\t\"type\":               \"type represents whether the metric type is Utilization, Value, or AverageValue\",\n\t\"value\":              \"value is the target value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type\",\n}\n\nfunc (MetricTarget) SwaggerDoc() map[string]string {\n\treturn map_MetricTarget\n}\n\nvar map_MetricValueStatus = map[string]string{\n\t\"\":                   \"MetricValueStatus holds the current value for a metric\",\n\t\"value\":              \"value is the current value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n}\n\nfunc (MetricValueStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricValueStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":       \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\": \"target specifies the target value for the given metric\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":        \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":       \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":        \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":       \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":   \"name is the name of the resource in question.\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":        \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":    \"name is the name of the resource in question.\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingPolicy.\nfunc (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules) {\n\t*out = *in\n\tif in.StabilizationWindowSeconds != nil {\n\t\tin, out := &in.StabilizationWindowSeconds, &out.StabilizationWindowSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.SelectPolicy != nil {\n\t\tin, out := &in.SelectPolicy, &out.SelectPolicy\n\t\t*out = new(ScalingPolicySelect)\n\t\t**out = **in\n\t}\n\tif in.Policies != nil {\n\t\tin, out := &in.Policies, &out.Policies\n\t\t*out = make([]HPAScalingPolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingRules.\nfunc (in *HPAScalingRules) DeepCopy() *HPAScalingRules {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingRules)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior) {\n\t*out = *in\n\tif in.ScaleUp != nil {\n\t\tin, out := &in.ScaleUp, &out.ScaleUp\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ScaleDown != nil {\n\t\tin, out := &in.ScaleDown, &out.ScaleDown\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerBehavior.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerBehavior)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Behavior != nil {\n\t\tin, out := &in.Behavior, &out.Behavior\n\t\t*out = new(HorizontalPodAutoscalerBehavior)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdentifier.\nfunc (in *MetricIdentifier) DeepCopy() *MetricIdentifier {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricIdentifier)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricTarget) DeepCopyInto(out *MetricTarget) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricTarget.\nfunc (in *MetricTarget) DeepCopy() *MetricTarget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricTarget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricValueStatus.\nfunc (in *MetricValueStatus) DeepCopy() *MetricValueStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricValueStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.DescribedObject = in.DescribedObject\n\tin.Target.DeepCopyInto(&out.Target)\n\tin.Metric.DeepCopyInto(&out.Metric)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\tout.DescribedObject = in.DescribedObject\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2\", Kind: \"HorizontalPodAutoscaler\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\npackage v1 // import \"k8s.io/api/batch/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CronJob) Reset()      { *m = CronJob{} }\nfunc (*CronJob) ProtoMessage() {}\nfunc (*CronJob) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{0}\n}\nfunc (m *CronJob) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJob) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJob.Merge(m, src)\n}\nfunc (m *CronJob) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJob) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJob.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJob proto.InternalMessageInfo\n\nfunc (m *CronJobList) Reset()      { *m = CronJobList{} }\nfunc (*CronJobList) ProtoMessage() {}\nfunc (*CronJobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{1}\n}\nfunc (m *CronJobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobList.Merge(m, src)\n}\nfunc (m *CronJobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobList proto.InternalMessageInfo\n\nfunc (m *CronJobSpec) Reset()      { *m = CronJobSpec{} }\nfunc (*CronJobSpec) ProtoMessage() {}\nfunc (*CronJobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{2}\n}\nfunc (m *CronJobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobSpec.Merge(m, src)\n}\nfunc (m *CronJobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobSpec proto.InternalMessageInfo\n\nfunc (m *CronJobStatus) Reset()      { *m = CronJobStatus{} }\nfunc (*CronJobStatus) ProtoMessage() {}\nfunc (*CronJobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{3}\n}\nfunc (m *CronJobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobStatus.Merge(m, src)\n}\nfunc (m *CronJobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobStatus proto.InternalMessageInfo\n\nfunc (m *Job) Reset()      { *m = Job{} }\nfunc (*Job) ProtoMessage() {}\nfunc (*Job) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{4}\n}\nfunc (m *Job) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Job) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Job) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Job.Merge(m, src)\n}\nfunc (m *Job) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Job) XXX_DiscardUnknown() {\n\txxx_messageInfo_Job.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Job proto.InternalMessageInfo\n\nfunc (m *JobCondition) Reset()      { *m = JobCondition{} }\nfunc (*JobCondition) ProtoMessage() {}\nfunc (*JobCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{5}\n}\nfunc (m *JobCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobCondition.Merge(m, src)\n}\nfunc (m *JobCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobCondition proto.InternalMessageInfo\n\nfunc (m *JobList) Reset()      { *m = JobList{} }\nfunc (*JobList) ProtoMessage() {}\nfunc (*JobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{6}\n}\nfunc (m *JobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobList.Merge(m, src)\n}\nfunc (m *JobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobList proto.InternalMessageInfo\n\nfunc (m *JobSpec) Reset()      { *m = JobSpec{} }\nfunc (*JobSpec) ProtoMessage() {}\nfunc (*JobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{7}\n}\nfunc (m *JobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobSpec.Merge(m, src)\n}\nfunc (m *JobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobSpec proto.InternalMessageInfo\n\nfunc (m *JobStatus) Reset()      { *m = JobStatus{} }\nfunc (*JobStatus) ProtoMessage() {}\nfunc (*JobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{8}\n}\nfunc (m *JobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobStatus.Merge(m, src)\n}\nfunc (m *JobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobStatus proto.InternalMessageInfo\n\nfunc (m *JobTemplateSpec) Reset()      { *m = JobTemplateSpec{} }\nfunc (*JobTemplateSpec) ProtoMessage() {}\nfunc (*JobTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{9}\n}\nfunc (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobTemplateSpec.Merge(m, src)\n}\nfunc (m *JobTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicy) Reset()      { *m = PodFailurePolicy{} }\nfunc (*PodFailurePolicy) ProtoMessage() {}\nfunc (*PodFailurePolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{10}\n}\nfunc (m *PodFailurePolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicy.Merge(m, src)\n}\nfunc (m *PodFailurePolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicy proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Reset() {\n\t*m = PodFailurePolicyOnExitCodesRequirement{}\n}\nfunc (*PodFailurePolicyOnExitCodesRequirement) ProtoMessage() {}\nfunc (*PodFailurePolicyOnExitCodesRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{11}\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyOnExitCodesRequirement.Merge(m, src)\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyOnExitCodesRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyOnExitCodesRequirement proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Reset() {\n\t*m = PodFailurePolicyOnPodConditionsPattern{}\n}\nfunc (*PodFailurePolicyOnPodConditionsPattern) ProtoMessage() {}\nfunc (*PodFailurePolicyOnPodConditionsPattern) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{12}\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyOnPodConditionsPattern.Merge(m, src)\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyOnPodConditionsPattern.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyOnPodConditionsPattern proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyRule) Reset()      { *m = PodFailurePolicyRule{} }\nfunc (*PodFailurePolicyRule) ProtoMessage() {}\nfunc (*PodFailurePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{13}\n}\nfunc (m *PodFailurePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyRule.Merge(m, src)\n}\nfunc (m *PodFailurePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyRule proto.InternalMessageInfo\n\nfunc (m *UncountedTerminatedPods) Reset()      { *m = UncountedTerminatedPods{} }\nfunc (*UncountedTerminatedPods) ProtoMessage() {}\nfunc (*UncountedTerminatedPods) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b52da57c93de713, []int{14}\n}\nfunc (m *UncountedTerminatedPods) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UncountedTerminatedPods) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UncountedTerminatedPods) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UncountedTerminatedPods.Merge(m, src)\n}\nfunc (m *UncountedTerminatedPods) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UncountedTerminatedPods) XXX_DiscardUnknown() {\n\txxx_messageInfo_UncountedTerminatedPods.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UncountedTerminatedPods proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CronJob)(nil), \"k8s.io.api.batch.v1.CronJob\")\n\tproto.RegisterType((*CronJobList)(nil), \"k8s.io.api.batch.v1.CronJobList\")\n\tproto.RegisterType((*CronJobSpec)(nil), \"k8s.io.api.batch.v1.CronJobSpec\")\n\tproto.RegisterType((*CronJobStatus)(nil), \"k8s.io.api.batch.v1.CronJobStatus\")\n\tproto.RegisterType((*Job)(nil), \"k8s.io.api.batch.v1.Job\")\n\tproto.RegisterType((*JobCondition)(nil), \"k8s.io.api.batch.v1.JobCondition\")\n\tproto.RegisterType((*JobList)(nil), \"k8s.io.api.batch.v1.JobList\")\n\tproto.RegisterType((*JobSpec)(nil), \"k8s.io.api.batch.v1.JobSpec\")\n\tproto.RegisterType((*JobStatus)(nil), \"k8s.io.api.batch.v1.JobStatus\")\n\tproto.RegisterType((*JobTemplateSpec)(nil), \"k8s.io.api.batch.v1.JobTemplateSpec\")\n\tproto.RegisterType((*PodFailurePolicy)(nil), \"k8s.io.api.batch.v1.PodFailurePolicy\")\n\tproto.RegisterType((*PodFailurePolicyOnExitCodesRequirement)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\")\n\tproto.RegisterType((*PodFailurePolicyOnPodConditionsPattern)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\")\n\tproto.RegisterType((*PodFailurePolicyRule)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyRule\")\n\tproto.RegisterType((*UncountedTerminatedPods)(nil), \"k8s.io.api.batch.v1.UncountedTerminatedPods\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/batch/v1/generated.proto\", fileDescriptor_3b52da57c93de713)\n}\n\nvar fileDescriptor_3b52da57c93de713 = []byte{\n\t// 1696 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x73, 0xe3, 0x48,\n\t0x15, 0x8f, 0xe2, 0xd8, 0xb1, 0xdb, 0xc9, 0xc4, 0xd3, 0xb3, 0x33, 0x63, 0xc2, 0x96, 0x95, 0xd5,\n\t0xec, 0x6e, 0x65, 0xa9, 0x45, 0x66, 0xb2, 0x53, 0x2c, 0xff, 0x8b, 0x91, 0x87, 0x59, 0x26, 0x78,\n\t0x36, 0xa6, 0x9d, 0x40, 0xd5, 0xb2, 0x50, 0xc8, 0x52, 0xdb, 0xd1, 0x46, 0x56, 0x1b, 0x75, 0x2b,\n\t0xb5, 0xb9, 0x50, 0x54, 0xf1, 0x05, 0xe0, 0xc8, 0x17, 0xe0, 0xc8, 0x05, 0xce, 0x70, 0xa3, 0x72,\n\t0xdc, 0xe2, 0xb4, 0xc5, 0x41, 0xc5, 0x88, 0x0f, 0xc0, 0x3d, 0x5c, 0xa8, 0x6e, 0xb5, 0xf5, 0xcf,\n\t0x52, 0xc8, 0x6c, 0x15, 0x5b, 0xdc, 0xa2, 0xf7, 0x7e, 0xef, 0xd7, 0x4f, 0xfd, 0x9e, 0x7e, 0xef,\n\t0xc5, 0xe0, 0x5b, 0x67, 0x5f, 0xa3, 0xba, 0x43, 0xfa, 0x67, 0xc1, 0x04, 0xfb, 0x1e, 0x66, 0x98,\n\t0xf6, 0xcf, 0xb1, 0x67, 0x13, 0xbf, 0x2f, 0x1d, 0xe6, 0xc2, 0xe9, 0x4f, 0x4c, 0x66, 0x9d, 0xf6,\n\t0xcf, 0x1f, 0xf6, 0x67, 0xd8, 0xc3, 0xbe, 0xc9, 0xb0, 0xad, 0x2f, 0x7c, 0xc2, 0x08, 0xbc, 0x13,\n\t0x83, 0x74, 0x73, 0xe1, 0xe8, 0x02, 0xa4, 0x9f, 0x3f, 0xdc, 0xfd, 0xf2, 0xcc, 0x61, 0xa7, 0xc1,\n\t0x44, 0xb7, 0xc8, 0xbc, 0x3f, 0x23, 0x33, 0xd2, 0x17, 0xd8, 0x49, 0x30, 0x15, 0x4f, 0xe2, 0x41,\n\t0xfc, 0x15, 0x73, 0xec, 0x6a, 0x99, 0x83, 0x2c, 0xe2, 0xe3, 0x92, 0x73, 0x76, 0x1f, 0xa5, 0x98,\n\t0xb9, 0x69, 0x9d, 0x3a, 0x1e, 0xf6, 0x2f, 0xfa, 0x8b, 0xb3, 0x19, 0x37, 0xd0, 0xfe, 0x1c, 0x33,\n\t0xb3, 0x2c, 0xaa, 0x5f, 0x15, 0xe5, 0x07, 0x1e, 0x73, 0xe6, 0x78, 0x25, 0xe0, 0xab, 0xff, 0x2d,\n\t0x80, 0x5a, 0xa7, 0x78, 0x6e, 0x16, 0xe3, 0xb4, 0x7f, 0x2b, 0x60, 0x73, 0xe0, 0x13, 0xef, 0x90,\n\t0x4c, 0xe0, 0xcf, 0x41, 0x93, 0xe7, 0x63, 0x9b, 0xcc, 0xec, 0x2a, 0x7b, 0xca, 0x7e, 0xfb, 0xe0,\n\t0x2b, 0x7a, 0x7a, 0x4b, 0x09, 0xad, 0xbe, 0x38, 0x9b, 0x71, 0x03, 0xd5, 0x39, 0x5a, 0x3f, 0x7f,\n\t0xa8, 0x1f, 0x4d, 0x3e, 0xc2, 0x16, 0x7b, 0x8e, 0x99, 0x69, 0xc0, 0xcb, 0x50, 0x5d, 0x8b, 0x42,\n\t0x15, 0xa4, 0x36, 0x94, 0xb0, 0x42, 0x03, 0x6c, 0xd0, 0x05, 0xb6, 0xba, 0xeb, 0x82, 0x7d, 0x4f,\n\t0x2f, 0xa9, 0x81, 0x2e, 0xb3, 0x19, 0x2f, 0xb0, 0x65, 0x6c, 0x49, 0xb6, 0x0d, 0xfe, 0x84, 0x44,\n\t0x2c, 0x3c, 0x04, 0x0d, 0xca, 0x4c, 0x16, 0xd0, 0x6e, 0x4d, 0xb0, 0x68, 0xd7, 0xb2, 0x08, 0xa4,\n\t0x71, 0x4b, 0xf2, 0x34, 0xe2, 0x67, 0x24, 0x19, 0xb4, 0x3f, 0x28, 0xa0, 0x2d, 0x91, 0x43, 0x87,\n\t0x32, 0xf8, 0xe1, 0xca, 0x0d, 0xe8, 0x37, 0xbb, 0x01, 0x1e, 0x2d, 0xde, 0xbf, 0x23, 0x4f, 0x6a,\n\t0x2e, 0x2d, 0x99, 0xb7, 0x7f, 0x0c, 0xea, 0x0e, 0xc3, 0x73, 0xda, 0x5d, 0xdf, 0xab, 0xed, 0xb7,\n\t0x0f, 0x5e, 0xbd, 0x2e, 0x71, 0x63, 0x5b, 0x12, 0xd5, 0x9f, 0xf1, 0x10, 0x14, 0x47, 0x6a, 0x7f,\n\t0xdb, 0x48, 0x12, 0xe6, 0x57, 0x02, 0xdf, 0x06, 0x4d, 0x5e, 0x58, 0x3b, 0x70, 0xb1, 0x48, 0xb8,\n\t0x95, 0x26, 0x30, 0x96, 0x76, 0x94, 0x20, 0xe0, 0x3e, 0x68, 0xf2, 0x5e, 0xf8, 0x80, 0x78, 0xb8,\n\t0xdb, 0x14, 0xe8, 0x2d, 0x8e, 0x3c, 0x96, 0x36, 0x94, 0x78, 0xe1, 0x09, 0xb8, 0x4f, 0x99, 0xe9,\n\t0x33, 0xc7, 0x9b, 0x3d, 0xc1, 0xa6, 0xed, 0x3a, 0x1e, 0x1e, 0x63, 0x8b, 0x78, 0x36, 0x15, 0xb5,\n\t0xab, 0x19, 0x5f, 0x8c, 0x42, 0xf5, 0xfe, 0xb8, 0x1c, 0x82, 0xaa, 0x62, 0xe1, 0x87, 0xe0, 0xb6,\n\t0x45, 0x3c, 0x2b, 0xf0, 0x7d, 0xec, 0x59, 0x17, 0x23, 0xe2, 0x3a, 0xd6, 0x85, 0x28, 0x63, 0xcb,\n\t0xd0, 0x65, 0xde, 0xb7, 0x07, 0x45, 0xc0, 0x55, 0x99, 0x11, 0xad, 0x12, 0xc1, 0x37, 0xc0, 0x26,\n\t0x0d, 0xe8, 0x02, 0x7b, 0x76, 0x77, 0x63, 0x4f, 0xd9, 0x6f, 0x1a, 0xed, 0x28, 0x54, 0x37, 0xc7,\n\t0xb1, 0x09, 0x2d, 0x7d, 0xf0, 0x27, 0xa0, 0xfd, 0x11, 0x99, 0x1c, 0xe3, 0xf9, 0xc2, 0x35, 0x19,\n\t0xee, 0xd6, 0x45, 0x9d, 0x5f, 0x2f, 0x2d, 0xc6, 0x61, 0x8a, 0x13, 0xfd, 0x78, 0x47, 0x26, 0xd9,\n\t0xce, 0x38, 0x50, 0x96, 0x0d, 0xfe, 0x0c, 0xec, 0xd2, 0xc0, 0xb2, 0x30, 0xa5, 0xd3, 0xc0, 0x3d,\n\t0x24, 0x13, 0xfa, 0x7d, 0x87, 0x32, 0xe2, 0x5f, 0x0c, 0x9d, 0xb9, 0xc3, 0xba, 0x8d, 0x3d, 0x65,\n\t0xbf, 0x6e, 0xf4, 0xa2, 0x50, 0xdd, 0x1d, 0x57, 0xa2, 0xd0, 0x35, 0x0c, 0x10, 0x81, 0x7b, 0x53,\n\t0xd3, 0x71, 0xb1, 0xbd, 0xc2, 0xbd, 0x29, 0xb8, 0x77, 0xa3, 0x50, 0xbd, 0xf7, 0xb4, 0x14, 0x81,\n\t0x2a, 0x22, 0xb5, 0x3f, 0xaf, 0x83, 0xed, 0xdc, 0xf7, 0x02, 0x7f, 0x00, 0x1a, 0xa6, 0xc5, 0x9c,\n\t0x73, 0xde, 0x54, 0xbc, 0x55, 0x1f, 0x64, 0x6f, 0x87, 0x2b, 0x5d, 0xfa, 0xd5, 0x23, 0x3c, 0xc5,\n\t0xbc, 0x08, 0x38, 0xfd, 0xc8, 0x1e, 0x8b, 0x50, 0x24, 0x29, 0xa0, 0x0b, 0x3a, 0xae, 0x49, 0xd9,\n\t0xb2, 0x1f, 0x79, 0xb7, 0x89, 0xfa, 0xb4, 0x0f, 0xbe, 0x74, 0xb3, 0x8f, 0x8b, 0x47, 0x18, 0xaf,\n\t0x44, 0xa1, 0xda, 0x19, 0x16, 0x78, 0xd0, 0x0a, 0x33, 0xf4, 0x01, 0x14, 0xb6, 0xe4, 0x0a, 0xc5,\n\t0x79, 0xf5, 0x97, 0x3e, 0xef, 0x5e, 0x14, 0xaa, 0x70, 0xb8, 0xc2, 0x84, 0x4a, 0xd8, 0xb5, 0x7f,\n\t0x29, 0xa0, 0xf6, 0xf9, 0x08, 0xe8, 0x77, 0x72, 0x02, 0xfa, 0x6a, 0x55, 0xd3, 0x56, 0x8a, 0xe7,\n\t0xd3, 0x82, 0x78, 0xf6, 0x2a, 0x19, 0xae, 0x17, 0xce, 0xbf, 0xd6, 0xc0, 0xd6, 0x21, 0x99, 0x0c,\n\t0x88, 0x67, 0x3b, 0xcc, 0x21, 0x1e, 0x7c, 0x04, 0x36, 0xd8, 0xc5, 0x62, 0x29, 0x42, 0x7b, 0xcb,\n\t0xa3, 0x8f, 0x2f, 0x16, 0xf8, 0x2a, 0x54, 0x3b, 0x59, 0x2c, 0xb7, 0x21, 0x81, 0x86, 0xc3, 0x24,\n\t0x9d, 0x75, 0x11, 0xf7, 0x28, 0x7f, 0xdc, 0x55, 0xa8, 0x96, 0x8c, 0x58, 0x3d, 0x61, 0xca, 0x27,\n\t0x05, 0x67, 0x60, 0x9b, 0x17, 0x67, 0xe4, 0x93, 0x49, 0xdc, 0x65, 0xb5, 0x97, 0xae, 0xfa, 0x5d,\n\t0x99, 0xc0, 0xf6, 0x30, 0x4b, 0x84, 0xf2, 0xbc, 0xf0, 0x3c, 0xee, 0xb1, 0x63, 0xdf, 0xf4, 0x68,\n\t0xfc, 0x4a, 0x9f, 0xad, 0xa7, 0x77, 0xe5, 0x69, 0xa2, 0xcf, 0xf2, 0x6c, 0xa8, 0xe4, 0x04, 0xf8,\n\t0x26, 0x68, 0xf8, 0xd8, 0xa4, 0xc4, 0x13, 0xfd, 0xdc, 0x4a, 0xab, 0x83, 0x84, 0x15, 0x49, 0x2f,\n\t0x7c, 0x0b, 0x6c, 0xce, 0x31, 0xa5, 0xe6, 0x0c, 0x0b, 0xc5, 0x69, 0x19, 0x3b, 0x12, 0xb8, 0xf9,\n\t0x3c, 0x36, 0xa3, 0xa5, 0x5f, 0xfb, 0xbd, 0x02, 0x36, 0x3f, 0x9f, 0xe9, 0xf7, 0xed, 0xfc, 0xf4,\n\t0xeb, 0x56, 0x75, 0x5e, 0xc5, 0xe4, 0xfb, 0x5d, 0x43, 0x24, 0x2a, 0xa6, 0xde, 0x43, 0xd0, 0x5e,\n\t0x98, 0xbe, 0xe9, 0xba, 0xd8, 0x75, 0xe8, 0x5c, 0xe4, 0x5a, 0x37, 0x76, 0xb8, 0x2e, 0x8f, 0x52,\n\t0x33, 0xca, 0x62, 0x78, 0x88, 0x45, 0xe6, 0x0b, 0x17, 0xf3, 0xcb, 0x8c, 0xdb, 0x4d, 0x86, 0x0c,\n\t0x52, 0x33, 0xca, 0x62, 0xe0, 0x11, 0xb8, 0x1b, 0x2b, 0x58, 0x71, 0x02, 0xd6, 0xc4, 0x04, 0xfc,\n\t0x42, 0x14, 0xaa, 0x77, 0x1f, 0x97, 0x01, 0x50, 0x79, 0x1c, 0x9c, 0x81, 0xce, 0x82, 0xd8, 0x5c,\n\t0x9c, 0x03, 0x1f, 0xcb, 0xe1, 0xd7, 0x16, 0xf7, 0xfc, 0x46, 0xe9, 0x65, 0x8c, 0x0a, 0xe0, 0x58,\n\t0x03, 0x8b, 0x56, 0xb4, 0x42, 0x0a, 0x1f, 0x81, 0xad, 0x89, 0x69, 0x9d, 0x91, 0xe9, 0x34, 0x3b,\n\t0x1a, 0x3a, 0x51, 0xa8, 0x6e, 0x19, 0x19, 0x3b, 0xca, 0xa1, 0xe0, 0x4f, 0x41, 0x93, 0x62, 0x17,\n\t0x5b, 0x8c, 0xf8, 0xb2, 0x97, 0xdf, 0xb9, 0x61, 0xf9, 0xcd, 0x09, 0x76, 0xc7, 0x32, 0x34, 0x5e,\n\t0x29, 0x96, 0x4f, 0x28, 0xa1, 0x84, 0xdf, 0x00, 0xb7, 0xe6, 0xa6, 0x17, 0x98, 0x09, 0x52, 0x34,\n\t0x71, 0xd3, 0x80, 0x51, 0xa8, 0xde, 0x7a, 0x9e, 0xf3, 0xa0, 0x02, 0x12, 0xfe, 0x10, 0x34, 0xd9,\n\t0x72, 0x5e, 0x37, 0x44, 0x6a, 0xa5, 0x13, 0x69, 0x44, 0xec, 0xdc, 0xb8, 0x4e, 0xda, 0x31, 0x99,\n\t0xd5, 0x09, 0x0d, 0xdf, 0x70, 0x18, 0x73, 0x65, 0x69, 0x1e, 0x4f, 0x19, 0xf6, 0x9f, 0x3a, 0x9e,\n\t0x43, 0x4f, 0xb1, 0x2d, 0x56, 0xa3, 0x7a, 0xbc, 0xe1, 0x1c, 0x1f, 0x0f, 0xcb, 0x20, 0xa8, 0x2a,\n\t0x16, 0x0e, 0xc1, 0xad, 0xb4, 0x87, 0x9e, 0x13, 0x1b, 0x77, 0x5b, 0xe2, 0x0b, 0x7c, 0x9d, 0xbf,\n\t0xe5, 0x20, 0xe7, 0xb9, 0x5a, 0xb1, 0xa0, 0x42, 0x6c, 0x76, 0xa3, 0x01, 0xd5, 0x1b, 0x8d, 0xf6,\n\t0xdb, 0x3a, 0x68, 0xa5, 0xc3, 0xfb, 0x04, 0x00, 0x6b, 0xa9, 0x90, 0x54, 0x0e, 0xf0, 0xd7, 0xaa,\n\t0xbe, 0xb6, 0x44, 0x4b, 0xd3, 0xc1, 0x93, 0x98, 0x28, 0xca, 0x10, 0xc1, 0x1f, 0x83, 0x96, 0x58,\n\t0xeb, 0x84, 0xd6, 0xad, 0xbf, 0xb4, 0xd6, 0x6d, 0x47, 0xa1, 0xda, 0x1a, 0x2f, 0x09, 0x50, 0xca,\n\t0x05, 0xa7, 0xd9, 0x2b, 0xfb, 0x8c, 0xba, 0x0d, 0xf3, 0xd7, 0x2b, 0x8e, 0x28, 0xb0, 0x72, 0xf5,\n\t0x94, 0x4b, 0xcd, 0x86, 0x28, 0x70, 0xd5, 0xbe, 0xd2, 0x07, 0x2d, 0xb1, 0x80, 0x61, 0x1b, 0xdb,\n\t0xa2, 0x47, 0xeb, 0xc6, 0x6d, 0x09, 0x6d, 0x8d, 0x97, 0x0e, 0x94, 0x62, 0x38, 0x71, 0xbc, 0x59,\n\t0xc9, 0xfd, 0x2e, 0x21, 0x8e, 0xf7, 0x30, 0x24, 0xbd, 0xf0, 0x09, 0xe8, 0xc8, 0x94, 0xb0, 0xfd,\n\t0xcc, 0xb3, 0xf1, 0xc7, 0x98, 0x8a, 0x4f, 0xb3, 0x65, 0x74, 0x65, 0x44, 0x67, 0x50, 0xf0, 0xa3,\n\t0x95, 0x08, 0xf8, 0x6b, 0x05, 0xdc, 0x0f, 0x3c, 0x8b, 0x04, 0x1e, 0xc3, 0xf6, 0x31, 0xf6, 0xe7,\n\t0x8e, 0xc7, 0xff, 0x9f, 0x1b, 0x11, 0x9b, 0x8a, 0xce, 0x6d, 0x1f, 0xbc, 0x5d, 0x5a, 0xec, 0x93,\n\t0xf2, 0x98, 0xb8, 0xcf, 0x2b, 0x9c, 0xa8, 0xea, 0x24, 0xa8, 0x82, 0xba, 0x8f, 0x4d, 0xfb, 0x42,\n\t0xb4, 0x77, 0xdd, 0x68, 0x71, 0xbd, 0x46, 0xdc, 0x80, 0x62, 0xbb, 0xf6, 0x47, 0x05, 0xec, 0x14,\n\t0xd6, 0xe7, 0xff, 0xff, 0xfd, 0x48, 0x9b, 0x80, 0x15, 0x7d, 0x85, 0xef, 0x83, 0xba, 0x1f, 0xb8,\n\t0x78, 0xf9, 0x29, 0xbd, 0x75, 0x23, 0xad, 0x46, 0x81, 0x8b, 0xd3, 0x49, 0xc6, 0x9f, 0x28, 0x8a,\n\t0x69, 0xb4, 0xbf, 0x2b, 0xe0, 0xcd, 0x22, 0xfc, 0xc8, 0xfb, 0xde, 0xc7, 0x0e, 0x1b, 0x10, 0x1b,\n\t0x53, 0x84, 0x7f, 0x11, 0x38, 0x3e, 0x9e, 0x63, 0x8f, 0xc1, 0x77, 0xc1, 0xb6, 0x45, 0x3c, 0x66,\n\t0xf2, 0x6b, 0x79, 0xdf, 0x9c, 0x2f, 0xd7, 0xab, 0xdb, 0x7c, 0x43, 0x19, 0x64, 0x1d, 0x28, 0x8f,\n\t0x83, 0x63, 0xd0, 0x24, 0x0b, 0xfe, 0x8f, 0x3e, 0xf1, 0xe5, 0x6a, 0xf5, 0xee, 0x52, 0x0b, 0x8f,\n\t0xa4, 0xfd, 0x2a, 0x54, 0x1f, 0x5c, 0x93, 0xc6, 0x12, 0x86, 0x12, 0x22, 0xa8, 0x81, 0xc6, 0xb9,\n\t0xe9, 0x06, 0x98, 0x4f, 0xc0, 0xda, 0x7e, 0xdd, 0x00, 0xbc, 0xc7, 0x7f, 0x24, 0x2c, 0x48, 0x7a,\n\t0xb4, 0xbf, 0x94, 0xbe, 0xdc, 0x88, 0xd8, 0xa9, 0xaa, 0x8c, 0x4c, 0xc6, 0xb0, 0xef, 0xc1, 0xf7,\n\t0x72, 0x2b, 0xe3, 0x3b, 0x85, 0x95, 0xf1, 0x41, 0xc9, 0xe2, 0x97, 0xa5, 0xf9, 0x5f, 0x6d, 0x91,\n\t0xda, 0xe5, 0x3a, 0x78, 0xa5, 0xac, 0x9a, 0xf0, 0xbb, 0xb1, 0x7e, 0x10, 0x4f, 0x66, 0xbc, 0x9f,\n\t0xd5, 0x0f, 0xe2, 0x5d, 0x85, 0xea, 0xbd, 0x62, 0x5c, 0xec, 0x41, 0x32, 0x0e, 0x7a, 0xa0, 0x4d,\n\t0xd2, 0x1b, 0x96, 0x4d, 0xfa, 0xcd, 0x1b, 0xf5, 0x53, 0x79, 0x83, 0xc4, 0x1b, 0x4c, 0xd6, 0x97,\n\t0x3d, 0x00, 0xfe, 0x12, 0xec, 0x90, 0xfc, 0xdd, 0x8b, 0xca, 0xdd, 0xfc, 0xcc, 0xb2, 0xba, 0x19,\n\t0xf7, 0xe5, 0x7b, 0xef, 0x14, 0xfc, 0xa8, 0x78, 0x98, 0xf6, 0x27, 0x05, 0x54, 0x29, 0x0b, 0x1c,\n\t0x65, 0x55, 0x96, 0x7f, 0x59, 0x2d, 0xe3, 0x20, 0xa7, 0xb0, 0x57, 0xa1, 0xfa, 0x5a, 0xd5, 0x8f,\n\t0x5a, 0xbc, 0xec, 0x54, 0x3f, 0x79, 0xf6, 0x24, 0x2b, 0xc3, 0xef, 0x25, 0x32, 0xbc, 0x2e, 0xe8,\n\t0xfa, 0xa9, 0x04, 0xdf, 0x8c, 0x4b, 0x86, 0x1b, 0x5f, 0xbf, 0x7c, 0xd1, 0x5b, 0xfb, 0xe4, 0x45,\n\t0x6f, 0xed, 0xd3, 0x17, 0xbd, 0xb5, 0x5f, 0x45, 0x3d, 0xe5, 0x32, 0xea, 0x29, 0x9f, 0x44, 0x3d,\n\t0xe5, 0xd3, 0xa8, 0xa7, 0xfc, 0x23, 0xea, 0x29, 0xbf, 0xf9, 0x67, 0x6f, 0xed, 0x83, 0x3b, 0x25,\n\t0xbf, 0x32, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x8e, 0x19, 0x59, 0x94, 0x14, 0x00, 0x00,\n}\n\nfunc (m *CronJob) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJob) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeZone != nil {\n\t\ti -= len(*m.TimeZone)\n\t\tcopy(dAtA[i:], *m.TimeZone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.TimeZone)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\t{\n\t\tsize, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.ConcurrencyPolicy)\n\tcopy(dAtA[i:], m.ConcurrencyPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.StartingDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Schedule)\n\tcopy(dAtA[i:], m.Schedule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LastSuccessfulTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.LastScheduleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Active) > 0 {\n\t\tfor iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Job) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Job) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodFailurePolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PodFailurePolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x50\n\t}\n\tif m.CompletionMode != nil {\n\t\ti -= len(*m.CompletionMode)\n\t\tcopy(dAtA[i:], *m.CompletionMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CompletionMode)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.TTLSecondsAfterFinished != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.BackoffLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\tif m.ManualSelector != nil {\n\t\ti--\n\t\tif *m.ManualSelector {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Completions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Completions))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Parallelism != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ready != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Ready))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.UncountedTerminatedPods != nil {\n\t\t{\n\t\t\tsize, err := m.UncountedTerminatedPods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti -= len(m.CompletedIndexes)\n\tcopy(dAtA[i:], m.CompletedIndexes)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CompletedIndexes)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Failed))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Succeeded))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Active))\n\ti--\n\tdAtA[i] = 0x20\n\tif m.CompletionTime != nil {\n\t\t{\n\t\t\tsize, err := m.CompletionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.StartTime != nil {\n\t\t{\n\t\t\tsize, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.Values[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x18\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.ContainerName != nil {\n\t\ti -= len(*m.ContainerName)\n\t\tcopy(dAtA[i:], *m.ContainerName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ContainerName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.OnPodConditions) > 0 {\n\t\tfor iNdEx := len(m.OnPodConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.OnPodConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.OnExitCodes != nil {\n\t\t{\n\t\t\tsize, err := m.OnExitCodes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UncountedTerminatedPods) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UncountedTerminatedPods) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UncountedTerminatedPods) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Failed) > 0 {\n\t\tfor iNdEx := len(m.Failed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Failed[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Failed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Failed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Succeeded) > 0 {\n\t\tfor iNdEx := len(m.Succeeded) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Succeeded[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Succeeded[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Succeeded[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CronJob) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CronJobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CronJobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Schedule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartingDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds))\n\t}\n\tl = len(m.ConcurrencyPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tl = m.JobTemplate.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit))\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit))\n\t}\n\tif m.TimeZone != nil {\n\t\tl = len(*m.TimeZone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CronJobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Active) > 0 {\n\t\tfor _, e := range m.Active {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LastScheduleTime != nil {\n\t\tl = m.LastScheduleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastSuccessfulTime != nil {\n\t\tl = m.LastSuccessfulTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Job) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *JobCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *JobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *JobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Parallelism != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Parallelism))\n\t}\n\tif m.Completions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Completions))\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ManualSelector != nil {\n\t\tn += 2\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.BackoffLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BackoffLimit))\n\t}\n\tif m.TTLSecondsAfterFinished != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished))\n\t}\n\tif m.CompletionMode != nil {\n\t\tl = len(*m.CompletionMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tif m.PodFailurePolicy != nil {\n\t\tl = m.PodFailurePolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *JobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartTime != nil {\n\t\tl = m.StartTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CompletionTime != nil {\n\t\tl = m.CompletionTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Active))\n\tn += 1 + sovGenerated(uint64(m.Succeeded))\n\tn += 1 + sovGenerated(uint64(m.Failed))\n\tl = len(m.CompletedIndexes)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.UncountedTerminatedPods != nil {\n\t\tl = m.UncountedTerminatedPods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ready != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Ready))\n\t}\n\treturn n\n}\n\nfunc (m *JobTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodFailurePolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ContainerName != nil {\n\t\tl = len(*m.ContainerName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, e := range m.Values {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodFailurePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.OnExitCodes != nil {\n\t\tl = m.OnExitCodes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.OnPodConditions) > 0 {\n\t\tfor _, e := range m.OnPodConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UncountedTerminatedPods) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Succeeded) > 0 {\n\t\tfor _, s := range m.Succeeded {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Failed) > 0 {\n\t\tfor _, s := range m.Failed {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CronJob) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJob{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CronJobSpec\", \"CronJobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CronJobStatus\", \"CronJobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CronJob{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CronJob\", \"CronJob\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CronJobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJobSpec{`,\n\t\t`Schedule:` + fmt.Sprintf(\"%v\", this.Schedule) + `,`,\n\t\t`StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`,\n\t\t`ConcurrencyPolicy:` + fmt.Sprintf(\"%v\", this.ConcurrencyPolicy) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), \"JobTemplateSpec\", \"JobTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`,\n\t\t`FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`,\n\t\t`TimeZone:` + valueToStringGenerated(this.TimeZone) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForActive := \"[]ObjectReference{\"\n\tfor _, f := range this.Active {\n\t\trepeatedStringForActive += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForActive += \"}\"\n\ts := strings.Join([]string{`&CronJobStatus{`,\n\t\t`Active:` + repeatedStringForActive + `,`,\n\t\t`LastScheduleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScheduleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`LastSuccessfulTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastSuccessfulTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Job) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Job{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"JobSpec\", \"JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"JobStatus\", \"JobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Job{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Job\", \"Job\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&JobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobSpec{`,\n\t\t`Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`,\n\t\t`Completions:` + valueToStringGenerated(this.Completions) + `,`,\n\t\t`ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`,\n\t\t`TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`,\n\t\t`CompletionMode:` + valueToStringGenerated(this.CompletionMode) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`PodFailurePolicy:` + strings.Replace(this.PodFailurePolicy.String(), \"PodFailurePolicy\", \"PodFailurePolicy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]JobCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"JobCondition\", \"JobCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&JobStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`StartTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.StartTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CompletionTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.CompletionTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`Active:` + fmt.Sprintf(\"%v\", this.Active) + `,`,\n\t\t`Succeeded:` + fmt.Sprintf(\"%v\", this.Succeeded) + `,`,\n\t\t`Failed:` + fmt.Sprintf(\"%v\", this.Failed) + `,`,\n\t\t`CompletedIndexes:` + fmt.Sprintf(\"%v\", this.CompletedIndexes) + `,`,\n\t\t`UncountedTerminatedPods:` + strings.Replace(this.UncountedTerminatedPods.String(), \"UncountedTerminatedPods\", \"UncountedTerminatedPods\", 1) + `,`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"JobSpec\", \"JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PodFailurePolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PodFailurePolicyRule\", \"PodFailurePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&PodFailurePolicy{`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyOnExitCodesRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodFailurePolicyOnExitCodesRequirement{`,\n\t\t`ContainerName:` + valueToStringGenerated(this.ContainerName) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyOnPodConditionsPattern) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodFailurePolicyOnPodConditionsPattern{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOnPodConditions := \"[]PodFailurePolicyOnPodConditionsPattern{\"\n\tfor _, f := range this.OnPodConditions {\n\t\trepeatedStringForOnPodConditions += strings.Replace(strings.Replace(f.String(), \"PodFailurePolicyOnPodConditionsPattern\", \"PodFailurePolicyOnPodConditionsPattern\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOnPodConditions += \"}\"\n\ts := strings.Join([]string{`&PodFailurePolicyRule{`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`OnExitCodes:` + strings.Replace(this.OnExitCodes.String(), \"PodFailurePolicyOnExitCodesRequirement\", \"PodFailurePolicyOnExitCodesRequirement\", 1) + `,`,\n\t\t`OnPodConditions:` + repeatedStringForOnPodConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UncountedTerminatedPods) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UncountedTerminatedPods{`,\n\t\t`Succeeded:` + fmt.Sprintf(\"%v\", this.Succeeded) + `,`,\n\t\t`Failed:` + fmt.Sprintf(\"%v\", this.Failed) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CronJob) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CronJob{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Schedule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Schedule = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartingDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StartingDeadlineSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConcurrencyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field JobTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SuccessfulJobsHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailedJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FailedJobsHistoryLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeZone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.TimeZone = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Active = append(m.Active, v11.ObjectReference{})\n\t\t\tif err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScheduleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScheduleTime == nil {\n\t\t\t\tm.LastScheduleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastSuccessfulTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastSuccessfulTime == nil {\n\t\t\t\tm.LastSuccessfulTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Job) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Job: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Job: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = JobConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Job{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parallelism\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parallelism = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Completions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Completions = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ActiveDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ActiveDeadlineSeconds = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ManualSelector\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ManualSelector = &b\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BackoffLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BackoffLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTLSecondsAfterFinished\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTLSecondsAfterFinished = &v\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletionMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := CompletionMode(dAtA[iNdEx:postIndex])\n\t\t\tm.CompletionMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFailurePolicy == nil {\n\t\t\t\tm.PodFailurePolicy = &PodFailurePolicy{}\n\t\t\t}\n\t\t\tif err := m.PodFailurePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, JobCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartTime == nil {\n\t\t\t\tm.StartTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CompletionTime == nil {\n\t\t\t\tm.CompletionTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.CompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tm.Active = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Active |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Succeeded\", wireType)\n\t\t\t}\n\t\t\tm.Succeeded = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Succeeded |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Failed\", wireType)\n\t\t\t}\n\t\t\tm.Failed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Failed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletedIndexes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CompletedIndexes = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UncountedTerminatedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UncountedTerminatedPods == nil {\n\t\t\t\tm.UncountedTerminatedPods = &UncountedTerminatedPods{}\n\t\t\t}\n\t\t\tif err := m.UncountedTerminatedPods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Ready = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PodFailurePolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnExitCodesRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnExitCodesRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ContainerName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = PodFailurePolicyOnExitCodesOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Values = append(m.Values, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.Values) == 0 {\n\t\t\t\t\tm.Values = make([]int32, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Values = append(m.Values, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnPodConditionsPattern: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnPodConditionsPattern: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = k8s_io_api_core_v1.PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = PodFailurePolicyAction(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OnExitCodes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.OnExitCodes == nil {\n\t\t\t\tm.OnExitCodes = &PodFailurePolicyOnExitCodesRequirement{}\n\t\t\t}\n\t\t\tif err := m.OnExitCodes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OnPodConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OnPodConditions = append(m.OnPodConditions, PodFailurePolicyOnPodConditionsPattern{})\n\t\t\tif err := m.OnPodConditions[len(m.OnPodConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UncountedTerminatedPods) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UncountedTerminatedPods: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UncountedTerminatedPods: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Succeeded\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Succeeded = append(m.Succeeded, k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Failed\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Failed = append(m.Failed, k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.batch.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/batch/v1\";\n\n// CronJob represents the configuration of a single cron job.\nmessage CronJob {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a cron job, including the schedule.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobSpec spec = 2;\n\n  // Current status of a cron job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobStatus status = 3;\n}\n\n// CronJobList is a collection of cron jobs.\nmessage CronJobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CronJobs.\n  repeated CronJob items = 2;\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\nmessage CronJobSpec {\n  // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n  optional string schedule = 1;\n\n  // The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n  // If not specified, this will default to the time zone of the kube-controller-manager process.\n  // The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n  // database by the API server during CronJob validation and the controller manager during execution.\n  // If no system-wide time zone database can be found a bundled version of the database is used instead.\n  // If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n  // configuration, the controller will stop creating new new Jobs and will create a system event with the\n  // reason UnknownTimeZone.\n  // More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n  // +optional\n  optional string timeZone = 8;\n\n  // Optional deadline in seconds for starting the job if it misses scheduled\n  // time for any reason.  Missed jobs executions will be counted as failed ones.\n  // +optional\n  optional int64 startingDeadlineSeconds = 2;\n\n  // Specifies how to treat concurrent executions of a Job.\n  // Valid values are:\n  //\n  // - \"Allow\" (default): allows CronJobs to run concurrently;\n  // - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n  // - \"Replace\": cancels currently running job and replaces it with a new one\n  // +optional\n  optional string concurrencyPolicy = 3;\n\n  // This flag tells the controller to suspend subsequent executions, it does\n  // not apply to already started executions.  Defaults to false.\n  // +optional\n  optional bool suspend = 4;\n\n  // Specifies the job that will be created when executing a CronJob.\n  optional JobTemplateSpec jobTemplate = 5;\n\n  // The number of successful finished jobs to retain. Value must be non-negative integer.\n  // Defaults to 3.\n  // +optional\n  optional int32 successfulJobsHistoryLimit = 6;\n\n  // The number of failed finished jobs to retain. Value must be non-negative integer.\n  // Defaults to 1.\n  // +optional\n  optional int32 failedJobsHistoryLimit = 7;\n}\n\n// CronJobStatus represents the current state of a cron job.\nmessage CronJobStatus {\n  // A list of pointers to currently running jobs.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.ObjectReference active = 1;\n\n  // Information when was the last time the job was successfully scheduled.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4;\n\n  // Information when was the last time the job successfully completed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5;\n}\n\n// Job represents the configuration of a single job.\nmessage Job {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobSpec spec = 2;\n\n  // Current status of a job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobStatus status = 3;\n}\n\n// JobCondition describes current state of a job.\nmessage JobCondition {\n  // Type of job condition, Complete or Failed.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition was checked.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // Last time the condition transit from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // (brief) reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// JobList is a collection of jobs.\nmessage JobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Jobs.\n  repeated Job items = 2;\n}\n\n// JobSpec describes how the job execution will look like.\nmessage JobSpec {\n  // Specifies the maximum desired number of pods the job should\n  // run at any given time. The actual number of pods running in steady state will\n  // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),\n  // i.e. when the work left to do is less than max parallelism.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  optional int32 parallelism = 1;\n\n  // Specifies the desired number of successfully finished pods the\n  // job should be run with.  Setting to null means that the success of any\n  // pod signals the success of all pods, and allows parallelism to have any positive\n  // value.  Setting to 1 means that parallelism is limited to 1 and the success of that\n  // pod signals the success of the job.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  optional int32 completions = 2;\n\n  // Specifies the duration in seconds relative to the startTime that the job\n  // may be continuously active before the system tries to terminate it; value\n  // must be positive integer. If a Job is suspended (at creation or through an\n  // update), this timer will effectively be stopped and reset when the Job is\n  // resumed again.\n  // +optional\n  optional int64 activeDeadlineSeconds = 3;\n\n  // Specifies the policy of handling failed pods. In particular, it allows to\n  // specify the set of actions and conditions which need to be\n  // satisfied to take the associated action.\n  // If empty, the default behaviour applies - the counter of failed pods,\n  // represented by the jobs's .status.failed field, is incremented and it is\n  // checked against the backoffLimit. This field cannot be used in combination\n  // with restartPolicy=OnFailure.\n  //\n  // This field is beta-level. It can be used when the `JobPodFailurePolicy`\n  // feature gate is enabled (enabled by default).\n  // +optional\n  optional PodFailurePolicy podFailurePolicy = 11;\n\n  // Specifies the number of retries before marking this job failed.\n  // Defaults to 6\n  // +optional\n  optional int32 backoffLimit = 7;\n\n  // A label query over pods that should match the pod count.\n  // Normally, the system sets this field for you.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // manualSelector controls generation of pod labels and pod selectors.\n  // Leave `manualSelector` unset unless you are certain what you are doing.\n  // When false or unset, the system pick labels unique to this job\n  // and appends those labels to the pod template.  When true,\n  // the user is responsible for picking unique labels and specifying\n  // the selector.  Failure to pick a unique label may cause this\n  // and other jobs to not function correctly.  However, You may see\n  // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`\n  // API.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\n  // +optional\n  optional bool manualSelector = 5;\n\n  // Describes the pod that will be created when executing a job.\n  // The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 6;\n\n  // ttlSecondsAfterFinished limits the lifetime of a Job that has finished\n  // execution (either Complete or Failed). If this field is set,\n  // ttlSecondsAfterFinished after the Job finishes, it is eligible to be\n  // automatically deleted. When the Job is being deleted, its lifecycle\n  // guarantees (e.g. finalizers) will be honored. If this field is unset,\n  // the Job won't be automatically deleted. If this field is set to zero,\n  // the Job becomes eligible to be deleted immediately after it finishes.\n  // +optional\n  optional int32 ttlSecondsAfterFinished = 8;\n\n  // completionMode specifies how Pod completions are tracked. It can be\n  // `NonIndexed` (default) or `Indexed`.\n  //\n  // `NonIndexed` means that the Job is considered complete when there have\n  // been .spec.completions successfully completed Pods. Each Pod completion is\n  // homologous to each other.\n  //\n  // `Indexed` means that the Pods of a\n  // Job get an associated completion index from 0 to (.spec.completions - 1),\n  // available in the annotation batch.kubernetes.io/job-completion-index.\n  // The Job is considered complete when there is one successfully completed Pod\n  // for each index.\n  // When value is `Indexed`, .spec.completions must be specified and\n  // `.spec.parallelism` must be less than or equal to 10^5.\n  // In addition, The Pod name takes the form\n  // `$(job-name)-$(index)-$(random-string)`,\n  // the Pod hostname takes the form `$(job-name)-$(index)`.\n  //\n  // More completion modes can be added in the future.\n  // If the Job controller observes a mode that it doesn't recognize, which\n  // is possible during upgrades due to version skew, the controller\n  // skips updates for the Job.\n  // +optional\n  optional string completionMode = 9;\n\n  // suspend specifies whether the Job controller should create Pods or not. If\n  // a Job is created with suspend set to true, no Pods are created by the Job\n  // controller. If a Job is suspended after creation (i.e. the flag goes from\n  // false to true), the Job controller will delete all active Pods associated\n  // with this Job. Users must design their workload to gracefully handle this.\n  // Suspending a Job will reset the StartTime field of the Job, effectively\n  // resetting the ActiveDeadlineSeconds timer too. Defaults to false.\n  //\n  // +optional\n  optional bool suspend = 10;\n}\n\n// JobStatus represents the current state of a Job.\nmessage JobStatus {\n  // The latest available observations of an object's current state. When a Job\n  // fails, one of the conditions will have type \"Failed\" and status true. When\n  // a Job is suspended, one of the conditions will have type \"Suspended\" and\n  // status true; when the Job is resumed, the status of this condition will\n  // become false. When a Job is completed, one of the conditions will have\n  // type \"Complete\" and status true.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=atomic\n  repeated JobCondition conditions = 1;\n\n  // Represents time when the job controller started processing a job. When a\n  // Job is created in the suspended state, this field is not set until the\n  // first time it is resumed. This field is reset every time a Job is resumed\n  // from suspension. It is represented in RFC3339 form and is in UTC.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2;\n\n  // Represents time when the job was completed. It is not guaranteed to\n  // be set in happens-before order across separate operations.\n  // It is represented in RFC3339 form and is in UTC.\n  // The completion time is only set when the job finishes successfully.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time completionTime = 3;\n\n  // The number of pending and running pods.\n  // +optional\n  optional int32 active = 4;\n\n  // The number of pods which reached phase Succeeded.\n  // +optional\n  optional int32 succeeded = 5;\n\n  // The number of pods which reached phase Failed.\n  // +optional\n  optional int32 failed = 6;\n\n  // completedIndexes holds the completed indexes when .spec.completionMode =\n  // \"Indexed\" in a text format. The indexes are represented as decimal integers\n  // separated by commas. The numbers are listed in increasing order. Three or\n  // more consecutive numbers are compressed and represented by the first and\n  // last element of the series, separated by a hyphen.\n  // For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n  // represented as \"1,3-5,7\".\n  // +optional\n  optional string completedIndexes = 7;\n\n  // uncountedTerminatedPods holds the UIDs of Pods that have terminated but\n  // the job controller hasn't yet accounted for in the status counters.\n  //\n  // The job controller creates pods with a finalizer. When a pod terminates\n  // (succeeded or failed), the controller does three steps to account for it\n  // in the job status:\n  //\n  // 1. Add the pod UID to the arrays in this field.\n  // 2. Remove the pod finalizer.\n  // 3. Remove the pod UID from the arrays while increasing the corresponding\n  //     counter.\n  //\n  // Old jobs might not be tracked using this field, in which case the field\n  // remains null.\n  // +optional\n  optional UncountedTerminatedPods uncountedTerminatedPods = 8;\n\n  // The number of pods which have a Ready condition.\n  //\n  // This field is beta-level. The job controller populates the field when\n  // the feature gate JobReadyPods is enabled (enabled by default).\n  // +optional\n  optional int32 ready = 9;\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\nmessage JobTemplateSpec {\n  // Standard object's metadata of the jobs created from this template.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobSpec spec = 2;\n}\n\n// PodFailurePolicy describes how failed pods influence the backoffLimit.\nmessage PodFailurePolicy {\n  // A list of pod failure policy rules. The rules are evaluated in order.\n  // Once a rule matches a Pod failure, the remaining of the rules are ignored.\n  // When no rule matches the Pod failure, the default handling applies - the\n  // counter of pod failures is incremented and it is checked against\n  // the backoffLimit. At most 20 elements are allowed.\n  // +listType=atomic\n  repeated PodFailurePolicyRule rules = 1;\n}\n\n// PodFailurePolicyOnExitCodesRequirement describes the requirement for handling\n// a failed pod based on its container exit codes. In particular, it lookups the\n// .state.terminated.exitCode for each app container and init container status,\n// represented by the .status.containerStatuses and .status.initContainerStatuses\n// fields in the Pod status, respectively. Containers completed with success\n// (exit code 0) are excluded from the requirement check.\nmessage PodFailurePolicyOnExitCodesRequirement {\n  // Restricts the check for exit codes to the container with the\n  // specified name. When null, the rule applies to all containers.\n  // When specified, it should match one the container or initContainer\n  // names in the pod template.\n  // +optional\n  optional string containerName = 1;\n\n  // Represents the relationship between the container exit code(s) and the\n  // specified values. Containers completed with success (exit code 0) are\n  // excluded from the requirement check. Possible values are:\n  //\n  // - In: the requirement is satisfied if at least one container exit code\n  //   (might be multiple if there are multiple containers not restricted\n  //   by the 'containerName' field) is in the set of specified values.\n  // - NotIn: the requirement is satisfied if at least one container exit code\n  //   (might be multiple if there are multiple containers not restricted\n  //   by the 'containerName' field) is not in the set of specified values.\n  // Additional values are considered to be added in the future. Clients should\n  // react to an unknown operator by assuming the requirement is not satisfied.\n  optional string operator = 2;\n\n  // Specifies the set of values. Each returned container exit code (might be\n  // multiple in case of multiple containers) is checked against this set of\n  // values with respect to the operator. The list of values must be ordered\n  // and must not contain duplicates. Value '0' cannot be used for the In operator.\n  // At least one element is required. At most 255 elements are allowed.\n  // +listType=set\n  repeated int32 values = 3;\n}\n\n// PodFailurePolicyOnPodConditionsPattern describes a pattern for matching\n// an actual pod condition type.\nmessage PodFailurePolicyOnPodConditionsPattern {\n  // Specifies the required Pod condition type. To match a pod condition\n  // it is required that specified type equals the pod condition type.\n  optional string type = 1;\n\n  // Specifies the required Pod condition status. To match a pod condition\n  // it is required that the specified status equals the pod condition status.\n  // Defaults to True.\n  optional string status = 2;\n}\n\n// PodFailurePolicyRule describes how a pod failure is handled when the requirements are met.\n// One of onExitCodes and onPodConditions, but not both, can be used in each rule.\nmessage PodFailurePolicyRule {\n  // Specifies the action taken on a pod failure when the requirements are satisfied.\n  // Possible values are:\n  //\n  // - FailJob: indicates that the pod's job is marked as Failed and all\n  //   running pods are terminated.\n  // - Ignore: indicates that the counter towards the .backoffLimit is not\n  //   incremented and a replacement pod is created.\n  // - Count: indicates that the pod is handled in the default way - the\n  //   counter towards the .backoffLimit is incremented.\n  // Additional values are considered to be added in the future. Clients should\n  // react to an unknown action by skipping the rule.\n  optional string action = 1;\n\n  // Represents the requirement on the container exit codes.\n  // +optional\n  optional PodFailurePolicyOnExitCodesRequirement onExitCodes = 2;\n\n  // Represents the requirement on the pod conditions. The requirement is represented\n  // as a list of pod condition patterns. The requirement is satisfied if at\n  // least one pattern matches an actual pod condition. At most 20 elements are allowed.\n  // +listType=atomic\n  repeated PodFailurePolicyOnPodConditionsPattern onPodConditions = 3;\n}\n\n// UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't\n// been accounted in Job status counters.\nmessage UncountedTerminatedPods {\n  // succeeded holds UIDs of succeeded Pods.\n  // +listType=set\n  // +optional\n  repeated string succeeded = 1;\n\n  // failed holds UIDs of failed Pods.\n  // +listType=set\n  // +optional\n  repeated string failed = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"batch\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Job{},\n\t\t&JobList{},\n\t\t&CronJob{},\n\t\t&CronJobList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\nconst (\n\t// All Kubernetes labels need to be prefixed with Kubernetes to distinguish them from end-user labels\n\t// More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#label-selector-and-annotation-conventions\n\tlabelPrefix = \"batch.kubernetes.io/\"\n\n\tJobCompletionIndexAnnotation = labelPrefix + \"job-completion-index\"\n\t// JobTrackingFinalizer is a finalizer for Job's pods. It prevents them from\n\t// being deleted before being accounted in the Job status.\n\t//\n\t// Additionally, the apiserver and job controller use this string as a Job\n\t// annotation, to mark Jobs that are being tracked using pod finalizers.\n\t// However, this behavior is deprecated in kubernetes 1.26. This means that, in\n\t// 1.27+, one release after JobTrackingWithFinalizers graduates to GA, the\n\t// apiserver and job controller will ignore this annotation and they will\n\t// always track jobs using finalizers.\n\tJobTrackingFinalizer = labelPrefix + \"job-tracking\"\n\t// The Job labels will use batch.kubernetes.io as a prefix for all labels\n\t// Historically the job controller uses unprefixed labels for job-name and controller-uid and\n\t// Kubernetes continutes to recognize those unprefixed labels for consistency.\n\tJobNameLabel = labelPrefix + \"job-name\"\n\t// ControllerUid is used to programatically get pods corresponding to a Job.\n\t// There is a corresponding label without the batch.kubernetes.io that we support for legacy reasons.\n\tControllerUidLabel = labelPrefix + \"controller-uid\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Job represents the configuration of a single job.\ntype Job struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus JobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// JobList is a collection of jobs.\ntype JobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Jobs.\n\tItems []Job `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CompletionMode specifies how Pod completions of a Job are tracked.\n// +enum\ntype CompletionMode string\n\nconst (\n\t// NonIndexedCompletion is a Job completion mode. In this mode, the Job is\n\t// considered complete when there have been .spec.completions\n\t// successfully completed Pods. Pod completions are homologous to each other.\n\tNonIndexedCompletion CompletionMode = \"NonIndexed\"\n\n\t// IndexedCompletion is a Job completion mode. In this mode, the Pods of a\n\t// Job get an associated completion index from 0 to (.spec.completions - 1).\n\t// The Job is  considered complete when a Pod completes for each completion\n\t// index.\n\tIndexedCompletion CompletionMode = \"Indexed\"\n)\n\n// PodFailurePolicyAction specifies how a Pod failure is handled.\n// +enum\ntype PodFailurePolicyAction string\n\nconst (\n\t// This is an action which might be taken on a pod failure - mark the\n\t// pod's job as Failed and terminate all running pods.\n\tPodFailurePolicyActionFailJob PodFailurePolicyAction = \"FailJob\"\n\n\t// This is an action which might be taken on a pod failure - the counter towards\n\t// .backoffLimit, represented by the job's .status.failed field, is not\n\t// incremented and a replacement pod is created.\n\tPodFailurePolicyActionIgnore PodFailurePolicyAction = \"Ignore\"\n\n\t// This is an action which might be taken on a pod failure - the pod failure\n\t// is handled in the default way - the counter towards .backoffLimit,\n\t// represented by the job's .status.failed field, is incremented.\n\tPodFailurePolicyActionCount PodFailurePolicyAction = \"Count\"\n)\n\n// +enum\ntype PodFailurePolicyOnExitCodesOperator string\n\nconst (\n\tPodFailurePolicyOnExitCodesOpIn    PodFailurePolicyOnExitCodesOperator = \"In\"\n\tPodFailurePolicyOnExitCodesOpNotIn PodFailurePolicyOnExitCodesOperator = \"NotIn\"\n)\n\n// PodFailurePolicyOnExitCodesRequirement describes the requirement for handling\n// a failed pod based on its container exit codes. In particular, it lookups the\n// .state.terminated.exitCode for each app container and init container status,\n// represented by the .status.containerStatuses and .status.initContainerStatuses\n// fields in the Pod status, respectively. Containers completed with success\n// (exit code 0) are excluded from the requirement check.\ntype PodFailurePolicyOnExitCodesRequirement struct {\n\t// Restricts the check for exit codes to the container with the\n\t// specified name. When null, the rule applies to all containers.\n\t// When specified, it should match one the container or initContainer\n\t// names in the pod template.\n\t// +optional\n\tContainerName *string `json:\"containerName\" protobuf:\"bytes,1,opt,name=containerName\"`\n\n\t// Represents the relationship between the container exit code(s) and the\n\t// specified values. Containers completed with success (exit code 0) are\n\t// excluded from the requirement check. Possible values are:\n\t//\n\t// - In: the requirement is satisfied if at least one container exit code\n\t//   (might be multiple if there are multiple containers not restricted\n\t//   by the 'containerName' field) is in the set of specified values.\n\t// - NotIn: the requirement is satisfied if at least one container exit code\n\t//   (might be multiple if there are multiple containers not restricted\n\t//   by the 'containerName' field) is not in the set of specified values.\n\t// Additional values are considered to be added in the future. Clients should\n\t// react to an unknown operator by assuming the requirement is not satisfied.\n\tOperator PodFailurePolicyOnExitCodesOperator `json:\"operator\" protobuf:\"bytes,2,req,name=operator\"`\n\n\t// Specifies the set of values. Each returned container exit code (might be\n\t// multiple in case of multiple containers) is checked against this set of\n\t// values with respect to the operator. The list of values must be ordered\n\t// and must not contain duplicates. Value '0' cannot be used for the In operator.\n\t// At least one element is required. At most 255 elements are allowed.\n\t// +listType=set\n\tValues []int32 `json:\"values\" protobuf:\"varint,3,rep,name=values\"`\n}\n\n// PodFailurePolicyOnPodConditionsPattern describes a pattern for matching\n// an actual pod condition type.\ntype PodFailurePolicyOnPodConditionsPattern struct {\n\t// Specifies the required Pod condition type. To match a pod condition\n\t// it is required that specified type equals the pod condition type.\n\tType corev1.PodConditionType `json:\"type\" protobuf:\"bytes,1,req,name=type\"`\n\n\t// Specifies the required Pod condition status. To match a pod condition\n\t// it is required that the specified status equals the pod condition status.\n\t// Defaults to True.\n\tStatus corev1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,req,name=status\"`\n}\n\n// PodFailurePolicyRule describes how a pod failure is handled when the requirements are met.\n// One of onExitCodes and onPodConditions, but not both, can be used in each rule.\ntype PodFailurePolicyRule struct {\n\t// Specifies the action taken on a pod failure when the requirements are satisfied.\n\t// Possible values are:\n\t//\n\t// - FailJob: indicates that the pod's job is marked as Failed and all\n\t//   running pods are terminated.\n\t// - Ignore: indicates that the counter towards the .backoffLimit is not\n\t//   incremented and a replacement pod is created.\n\t// - Count: indicates that the pod is handled in the default way - the\n\t//   counter towards the .backoffLimit is incremented.\n\t// Additional values are considered to be added in the future. Clients should\n\t// react to an unknown action by skipping the rule.\n\tAction PodFailurePolicyAction `json:\"action\" protobuf:\"bytes,1,req,name=action\"`\n\n\t// Represents the requirement on the container exit codes.\n\t// +optional\n\tOnExitCodes *PodFailurePolicyOnExitCodesRequirement `json:\"onExitCodes\" protobuf:\"bytes,2,opt,name=onExitCodes\"`\n\n\t// Represents the requirement on the pod conditions. The requirement is represented\n\t// as a list of pod condition patterns. The requirement is satisfied if at\n\t// least one pattern matches an actual pod condition. At most 20 elements are allowed.\n\t// +listType=atomic\n\tOnPodConditions []PodFailurePolicyOnPodConditionsPattern `json:\"onPodConditions\" protobuf:\"bytes,3,opt,name=onPodConditions\"`\n}\n\n// PodFailurePolicy describes how failed pods influence the backoffLimit.\ntype PodFailurePolicy struct {\n\t// A list of pod failure policy rules. The rules are evaluated in order.\n\t// Once a rule matches a Pod failure, the remaining of the rules are ignored.\n\t// When no rule matches the Pod failure, the default handling applies - the\n\t// counter of pod failures is incremented and it is checked against\n\t// the backoffLimit. At most 20 elements are allowed.\n\t// +listType=atomic\n\tRules []PodFailurePolicyRule `json:\"rules\" protobuf:\"bytes,1,opt,name=rules\"`\n}\n\n// JobSpec describes how the job execution will look like.\ntype JobSpec struct {\n\n\t// Specifies the maximum desired number of pods the job should\n\t// run at any given time. The actual number of pods running in steady state will\n\t// be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),\n\t// i.e. when the work left to do is less than max parallelism.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\tParallelism *int32 `json:\"parallelism,omitempty\" protobuf:\"varint,1,opt,name=parallelism\"`\n\n\t// Specifies the desired number of successfully finished pods the\n\t// job should be run with.  Setting to null means that the success of any\n\t// pod signals the success of all pods, and allows parallelism to have any positive\n\t// value.  Setting to 1 means that parallelism is limited to 1 and the success of that\n\t// pod signals the success of the job.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\tCompletions *int32 `json:\"completions,omitempty\" protobuf:\"varint,2,opt,name=completions\"`\n\n\t// Specifies the duration in seconds relative to the startTime that the job\n\t// may be continuously active before the system tries to terminate it; value\n\t// must be positive integer. If a Job is suspended (at creation or through an\n\t// update), this timer will effectively be stopped and reset when the Job is\n\t// resumed again.\n\t// +optional\n\tActiveDeadlineSeconds *int64 `json:\"activeDeadlineSeconds,omitempty\" protobuf:\"varint,3,opt,name=activeDeadlineSeconds\"`\n\n\t// Specifies the policy of handling failed pods. In particular, it allows to\n\t// specify the set of actions and conditions which need to be\n\t// satisfied to take the associated action.\n\t// If empty, the default behaviour applies - the counter of failed pods,\n\t// represented by the jobs's .status.failed field, is incremented and it is\n\t// checked against the backoffLimit. This field cannot be used in combination\n\t// with restartPolicy=OnFailure.\n\t//\n\t// This field is beta-level. It can be used when the `JobPodFailurePolicy`\n\t// feature gate is enabled (enabled by default).\n\t// +optional\n\tPodFailurePolicy *PodFailurePolicy `json:\"podFailurePolicy,omitempty\" protobuf:\"bytes,11,opt,name=podFailurePolicy\"`\n\n\t// Specifies the number of retries before marking this job failed.\n\t// Defaults to 6\n\t// +optional\n\tBackoffLimit *int32 `json:\"backoffLimit,omitempty\" protobuf:\"varint,7,opt,name=backoffLimit\"`\n\n\t// TODO enabled it when https://github.com/kubernetes/kubernetes/issues/28486 has been fixed\n\t// Optional number of failed pods to retain.\n\t// +optional\n\t// FailedPodsLimit *int32 `json:\"failedPodsLimit,omitempty\" protobuf:\"varint,9,opt,name=failedPodsLimit\"`\n\n\t// A label query over pods that should match the pod count.\n\t// Normally, the system sets this field for you.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,opt,name=selector\"`\n\n\t// manualSelector controls generation of pod labels and pod selectors.\n\t// Leave `manualSelector` unset unless you are certain what you are doing.\n\t// When false or unset, the system pick labels unique to this job\n\t// and appends those labels to the pod template.  When true,\n\t// the user is responsible for picking unique labels and specifying\n\t// the selector.  Failure to pick a unique label may cause this\n\t// and other jobs to not function correctly.  However, You may see\n\t// `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`\n\t// API.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\n\t// +optional\n\tManualSelector *bool `json:\"manualSelector,omitempty\" protobuf:\"varint,5,opt,name=manualSelector\"`\n\n\t// Describes the pod that will be created when executing a job.\n\t// The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\tTemplate corev1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,6,opt,name=template\"`\n\n\t// ttlSecondsAfterFinished limits the lifetime of a Job that has finished\n\t// execution (either Complete or Failed). If this field is set,\n\t// ttlSecondsAfterFinished after the Job finishes, it is eligible to be\n\t// automatically deleted. When the Job is being deleted, its lifecycle\n\t// guarantees (e.g. finalizers) will be honored. If this field is unset,\n\t// the Job won't be automatically deleted. If this field is set to zero,\n\t// the Job becomes eligible to be deleted immediately after it finishes.\n\t// +optional\n\tTTLSecondsAfterFinished *int32 `json:\"ttlSecondsAfterFinished,omitempty\" protobuf:\"varint,8,opt,name=ttlSecondsAfterFinished\"`\n\n\t// completionMode specifies how Pod completions are tracked. It can be\n\t// `NonIndexed` (default) or `Indexed`.\n\t//\n\t// `NonIndexed` means that the Job is considered complete when there have\n\t// been .spec.completions successfully completed Pods. Each Pod completion is\n\t// homologous to each other.\n\t//\n\t// `Indexed` means that the Pods of a\n\t// Job get an associated completion index from 0 to (.spec.completions - 1),\n\t// available in the annotation batch.kubernetes.io/job-completion-index.\n\t// The Job is considered complete when there is one successfully completed Pod\n\t// for each index.\n\t// When value is `Indexed`, .spec.completions must be specified and\n\t// `.spec.parallelism` must be less than or equal to 10^5.\n\t// In addition, The Pod name takes the form\n\t// `$(job-name)-$(index)-$(random-string)`,\n\t// the Pod hostname takes the form `$(job-name)-$(index)`.\n\t//\n\t// More completion modes can be added in the future.\n\t// If the Job controller observes a mode that it doesn't recognize, which\n\t// is possible during upgrades due to version skew, the controller\n\t// skips updates for the Job.\n\t// +optional\n\tCompletionMode *CompletionMode `json:\"completionMode,omitempty\" protobuf:\"bytes,9,opt,name=completionMode,casttype=CompletionMode\"`\n\n\t// suspend specifies whether the Job controller should create Pods or not. If\n\t// a Job is created with suspend set to true, no Pods are created by the Job\n\t// controller. If a Job is suspended after creation (i.e. the flag goes from\n\t// false to true), the Job controller will delete all active Pods associated\n\t// with this Job. Users must design their workload to gracefully handle this.\n\t// Suspending a Job will reset the StartTime field of the Job, effectively\n\t// resetting the ActiveDeadlineSeconds timer too. Defaults to false.\n\t//\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,10,opt,name=suspend\"`\n}\n\n// JobStatus represents the current state of a Job.\ntype JobStatus struct {\n\t// The latest available observations of an object's current state. When a Job\n\t// fails, one of the conditions will have type \"Failed\" and status true. When\n\t// a Job is suspended, one of the conditions will have type \"Suspended\" and\n\t// status true; when the Job is resumed, the status of this condition will\n\t// become false. When a Job is completed, one of the conditions will have\n\t// type \"Complete\" and status true.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=atomic\n\tConditions []JobCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// Represents time when the job controller started processing a job. When a\n\t// Job is created in the suspended state, this field is not set until the\n\t// first time it is resumed. This field is reset every time a Job is resumed\n\t// from suspension. It is represented in RFC3339 form and is in UTC.\n\t// +optional\n\tStartTime *metav1.Time `json:\"startTime,omitempty\" protobuf:\"bytes,2,opt,name=startTime\"`\n\n\t// Represents time when the job was completed. It is not guaranteed to\n\t// be set in happens-before order across separate operations.\n\t// It is represented in RFC3339 form and is in UTC.\n\t// The completion time is only set when the job finishes successfully.\n\t// +optional\n\tCompletionTime *metav1.Time `json:\"completionTime,omitempty\" protobuf:\"bytes,3,opt,name=completionTime\"`\n\n\t// The number of pending and running pods.\n\t// +optional\n\tActive int32 `json:\"active,omitempty\" protobuf:\"varint,4,opt,name=active\"`\n\n\t// The number of pods which reached phase Succeeded.\n\t// +optional\n\tSucceeded int32 `json:\"succeeded,omitempty\" protobuf:\"varint,5,opt,name=succeeded\"`\n\n\t// The number of pods which reached phase Failed.\n\t// +optional\n\tFailed int32 `json:\"failed,omitempty\" protobuf:\"varint,6,opt,name=failed\"`\n\n\t// completedIndexes holds the completed indexes when .spec.completionMode =\n\t// \"Indexed\" in a text format. The indexes are represented as decimal integers\n\t// separated by commas. The numbers are listed in increasing order. Three or\n\t// more consecutive numbers are compressed and represented by the first and\n\t// last element of the series, separated by a hyphen.\n\t// For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n\t// represented as \"1,3-5,7\".\n\t// +optional\n\tCompletedIndexes string `json:\"completedIndexes,omitempty\" protobuf:\"bytes,7,opt,name=completedIndexes\"`\n\n\t// uncountedTerminatedPods holds the UIDs of Pods that have terminated but\n\t// the job controller hasn't yet accounted for in the status counters.\n\t//\n\t// The job controller creates pods with a finalizer. When a pod terminates\n\t// (succeeded or failed), the controller does three steps to account for it\n\t// in the job status:\n\t//\n\t// 1. Add the pod UID to the arrays in this field.\n\t// 2. Remove the pod finalizer.\n\t// 3. Remove the pod UID from the arrays while increasing the corresponding\n\t//     counter.\n\t//\n\t// Old jobs might not be tracked using this field, in which case the field\n\t// remains null.\n\t// +optional\n\tUncountedTerminatedPods *UncountedTerminatedPods `json:\"uncountedTerminatedPods,omitempty\" protobuf:\"bytes,8,opt,name=uncountedTerminatedPods\"`\n\n\t// The number of pods which have a Ready condition.\n\t//\n\t// This field is beta-level. The job controller populates the field when\n\t// the feature gate JobReadyPods is enabled (enabled by default).\n\t// +optional\n\tReady *int32 `json:\"ready,omitempty\" protobuf:\"varint,9,opt,name=ready\"`\n}\n\n// UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't\n// been accounted in Job status counters.\ntype UncountedTerminatedPods struct {\n\t// succeeded holds UIDs of succeeded Pods.\n\t// +listType=set\n\t// +optional\n\tSucceeded []types.UID `json:\"succeeded,omitempty\" protobuf:\"bytes,1,rep,name=succeeded,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\n\t// failed holds UIDs of failed Pods.\n\t// +listType=set\n\t// +optional\n\tFailed []types.UID `json:\"failed,omitempty\" protobuf:\"bytes,2,rep,name=failed,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\ntype JobConditionType string\n\n// These are built-in conditions of a job.\nconst (\n\t// JobSuspended means the job has been suspended.\n\tJobSuspended JobConditionType = \"Suspended\"\n\t// JobComplete means the job has completed its execution.\n\tJobComplete JobConditionType = \"Complete\"\n\t// JobFailed means the job has failed its execution.\n\tJobFailed JobConditionType = \"Failed\"\n\t// FailureTarget means the job is about to fail its execution.\n\tJobFailureTarget JobConditionType = \"FailureTarget\"\n)\n\n// JobCondition describes current state of a job.\ntype JobCondition struct {\n\t// Type of job condition, Complete or Failed.\n\tType JobConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=JobConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus corev1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition was checked.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// Last time the condition transit from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// (brief) reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\ntype JobTemplateSpec struct {\n\t// Standard object's metadata of the jobs created from this template.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CronJob represents the configuration of a single cron job.\ntype CronJob struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a cron job, including the schedule.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec CronJobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a cron job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus CronJobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CronJobList is a collection of cron jobs.\ntype CronJobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CronJobs.\n\tItems []CronJob `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\ntype CronJobSpec struct {\n\n\t// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n\tSchedule string `json:\"schedule\" protobuf:\"bytes,1,opt,name=schedule\"`\n\n\t// The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n\t// If not specified, this will default to the time zone of the kube-controller-manager process.\n\t// The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n\t// database by the API server during CronJob validation and the controller manager during execution.\n\t// If no system-wide time zone database can be found a bundled version of the database is used instead.\n\t// If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n\t// configuration, the controller will stop creating new new Jobs and will create a system event with the\n\t// reason UnknownTimeZone.\n\t// More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n\t// +optional\n\tTimeZone *string `json:\"timeZone,omitempty\" protobuf:\"bytes,8,opt,name=timeZone\"`\n\n\t// Optional deadline in seconds for starting the job if it misses scheduled\n\t// time for any reason.  Missed jobs executions will be counted as failed ones.\n\t// +optional\n\tStartingDeadlineSeconds *int64 `json:\"startingDeadlineSeconds,omitempty\" protobuf:\"varint,2,opt,name=startingDeadlineSeconds\"`\n\n\t// Specifies how to treat concurrent executions of a Job.\n\t// Valid values are:\n\t//\n\t// - \"Allow\" (default): allows CronJobs to run concurrently;\n\t// - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n\t// - \"Replace\": cancels currently running job and replaces it with a new one\n\t// +optional\n\tConcurrencyPolicy ConcurrencyPolicy `json:\"concurrencyPolicy,omitempty\" protobuf:\"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy\"`\n\n\t// This flag tells the controller to suspend subsequent executions, it does\n\t// not apply to already started executions.  Defaults to false.\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,4,opt,name=suspend\"`\n\n\t// Specifies the job that will be created when executing a CronJob.\n\tJobTemplate JobTemplateSpec `json:\"jobTemplate\" protobuf:\"bytes,5,opt,name=jobTemplate\"`\n\n\t// The number of successful finished jobs to retain. Value must be non-negative integer.\n\t// Defaults to 3.\n\t// +optional\n\tSuccessfulJobsHistoryLimit *int32 `json:\"successfulJobsHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=successfulJobsHistoryLimit\"`\n\n\t// The number of failed finished jobs to retain. Value must be non-negative integer.\n\t// Defaults to 1.\n\t// +optional\n\tFailedJobsHistoryLimit *int32 `json:\"failedJobsHistoryLimit,omitempty\" protobuf:\"varint,7,opt,name=failedJobsHistoryLimit\"`\n}\n\n// ConcurrencyPolicy describes how the job will be handled.\n// Only one of the following concurrent policies may be specified.\n// If none of the following policies is specified, the default one\n// is AllowConcurrent.\n// +enum\ntype ConcurrencyPolicy string\n\nconst (\n\t// AllowConcurrent allows CronJobs to run concurrently.\n\tAllowConcurrent ConcurrencyPolicy = \"Allow\"\n\n\t// ForbidConcurrent forbids concurrent runs, skipping next run if previous\n\t// hasn't finished yet.\n\tForbidConcurrent ConcurrencyPolicy = \"Forbid\"\n\n\t// ReplaceConcurrent cancels currently running job and replaces it with a new one.\n\tReplaceConcurrent ConcurrencyPolicy = \"Replace\"\n)\n\n// CronJobStatus represents the current state of a cron job.\ntype CronJobStatus struct {\n\t// A list of pointers to currently running jobs.\n\t// +optional\n\t// +listType=atomic\n\tActive []corev1.ObjectReference `json:\"active,omitempty\" protobuf:\"bytes,1,rep,name=active\"`\n\n\t// Information when was the last time the job was successfully scheduled.\n\t// +optional\n\tLastScheduleTime *metav1.Time `json:\"lastScheduleTime,omitempty\" protobuf:\"bytes,4,opt,name=lastScheduleTime\"`\n\n\t// Information when was the last time the job successfully completed.\n\t// +optional\n\tLastSuccessfulTime *metav1.Time `json:\"lastSuccessfulTime,omitempty\" protobuf:\"bytes,5,opt,name=lastSuccessfulTime\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CronJob = map[string]string{\n\t\"\":         \"CronJob represents the configuration of a single cron job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (CronJob) SwaggerDoc() map[string]string {\n\treturn map_CronJob\n}\n\nvar map_CronJobList = map[string]string{\n\t\"\":         \"CronJobList is a collection of cron jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CronJobs.\",\n}\n\nfunc (CronJobList) SwaggerDoc() map[string]string {\n\treturn map_CronJobList\n}\n\nvar map_CronJobSpec = map[string]string{\n\t\"\":                           \"CronJobSpec describes how the job execution will look like and when it will actually run.\",\n\t\"schedule\":                   \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n\t\"timeZone\":                   \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\",\n\t\"startingDeadlineSeconds\":    \"Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.\",\n\t\"concurrencyPolicy\":          \"Specifies how to treat concurrent executions of a Job. Valid values are:\\n\\n- \\\"Allow\\\" (default): allows CronJobs to run concurrently; - \\\"Forbid\\\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \\\"Replace\\\": cancels currently running job and replaces it with a new one\",\n\t\"suspend\":                    \"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\n\t\"jobTemplate\":                \"Specifies the job that will be created when executing a CronJob.\",\n\t\"successfulJobsHistoryLimit\": \"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\n\t\"failedJobsHistoryLimit\":     \"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\n}\n\nfunc (CronJobSpec) SwaggerDoc() map[string]string {\n\treturn map_CronJobSpec\n}\n\nvar map_CronJobStatus = map[string]string{\n\t\"\":                   \"CronJobStatus represents the current state of a cron job.\",\n\t\"active\":             \"A list of pointers to currently running jobs.\",\n\t\"lastScheduleTime\":   \"Information when was the last time the job was successfully scheduled.\",\n\t\"lastSuccessfulTime\": \"Information when was the last time the job successfully completed.\",\n}\n\nfunc (CronJobStatus) SwaggerDoc() map[string]string {\n\treturn map_CronJobStatus\n}\n\nvar map_Job = map[string]string{\n\t\"\":         \"Job represents the configuration of a single job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Job) SwaggerDoc() map[string]string {\n\treturn map_Job\n}\n\nvar map_JobCondition = map[string]string{\n\t\"\":                   \"JobCondition describes current state of a job.\",\n\t\"type\":               \"Type of job condition, Complete or Failed.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastProbeTime\":      \"Last time the condition was checked.\",\n\t\"lastTransitionTime\": \"Last time the condition transit from one status to another.\",\n\t\"reason\":             \"(brief) reason for the condition's last transition.\",\n\t\"message\":            \"Human readable message indicating details about last transition.\",\n}\n\nfunc (JobCondition) SwaggerDoc() map[string]string {\n\treturn map_JobCondition\n}\n\nvar map_JobList = map[string]string{\n\t\"\":         \"JobList is a collection of jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Jobs.\",\n}\n\nfunc (JobList) SwaggerDoc() map[string]string {\n\treturn map_JobList\n}\n\nvar map_JobSpec = map[string]string{\n\t\"\":                        \"JobSpec describes how the job execution will look like.\",\n\t\"parallelism\":             \"Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"completions\":             \"Specifies the desired number of successfully finished pods the job should be run with.  Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value.  Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"activeDeadlineSeconds\":   \"Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.\",\n\t\"podFailurePolicy\":        \"Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure.\\n\\nThis field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default).\",\n\t\"backoffLimit\":            \"Specifies the number of retries before marking this job failed. Defaults to 6\",\n\t\"selector\":                \"A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"manualSelector\":          \"manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template.  When true, the user is responsible for picking unique labels and specifying the selector.  Failure to pick a unique label may cause this and other jobs to not function correctly.  However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\",\n\t\"template\":                \"Describes the pod that will be created when executing a job. The only allowed template.spec.restartPolicy values are \\\"Never\\\" or \\\"OnFailure\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"ttlSecondsAfterFinished\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.\",\n\t\"completionMode\":          \"completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.\\n\\n`NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.\\n\\n`Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.\",\n\t\"suspend\":                 \"suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.\",\n}\n\nfunc (JobSpec) SwaggerDoc() map[string]string {\n\treturn map_JobSpec\n}\n\nvar map_JobStatus = map[string]string{\n\t\"\":                        \"JobStatus represents the current state of a Job.\",\n\t\"conditions\":              \"The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \\\"Failed\\\" and status true. When a Job is suspended, one of the conditions will have type \\\"Suspended\\\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \\\"Complete\\\" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"startTime\":               \"Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.\",\n\t\"completionTime\":          \"Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.\",\n\t\"active\":                  \"The number of pending and running pods.\",\n\t\"succeeded\":               \"The number of pods which reached phase Succeeded.\",\n\t\"failed\":                  \"The number of pods which reached phase Failed.\",\n\t\"completedIndexes\":        \"completedIndexes holds the completed indexes when .spec.completionMode = \\\"Indexed\\\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \\\"1,3-5,7\\\".\",\n\t\"uncountedTerminatedPods\": \"uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\\n\\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nOld jobs might not be tracked using this field, in which case the field remains null.\",\n\t\"ready\":                   \"The number of pods which have a Ready condition.\\n\\nThis field is beta-level. The job controller populates the field when the feature gate JobReadyPods is enabled (enabled by default).\",\n}\n\nfunc (JobStatus) SwaggerDoc() map[string]string {\n\treturn map_JobStatus\n}\n\nvar map_JobTemplateSpec = map[string]string{\n\t\"\":         \"JobTemplateSpec describes the data a Job should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (JobTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_JobTemplateSpec\n}\n\nvar map_PodFailurePolicy = map[string]string{\n\t\"\":      \"PodFailurePolicy describes how failed pods influence the backoffLimit.\",\n\t\"rules\": \"A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.\",\n}\n\nfunc (PodFailurePolicy) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicy\n}\n\nvar map_PodFailurePolicyOnExitCodesRequirement = map[string]string{\n\t\"\":              \"PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.\",\n\t\"containerName\": \"Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.\",\n\t\"operator\":      \"Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are:\\n\\n- In: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is in the set of specified values.\\n- NotIn: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is not in the set of specified values.\\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.\",\n\t\"values\":        \"Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.\",\n}\n\nfunc (PodFailurePolicyOnExitCodesRequirement) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyOnExitCodesRequirement\n}\n\nvar map_PodFailurePolicyOnPodConditionsPattern = map[string]string{\n\t\"\":       \"PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.\",\n\t\"type\":   \"Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.\",\n\t\"status\": \"Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.\",\n}\n\nfunc (PodFailurePolicyOnPodConditionsPattern) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyOnPodConditionsPattern\n}\n\nvar map_PodFailurePolicyRule = map[string]string{\n\t\"\":                \"PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.\",\n\t\"action\":          \"Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are:\\n\\n- FailJob: indicates that the pod's job is marked as Failed and all\\n  running pods are terminated.\\n- Ignore: indicates that the counter towards the .backoffLimit is not\\n  incremented and a replacement pod is created.\\n- Count: indicates that the pod is handled in the default way - the\\n  counter towards the .backoffLimit is incremented.\\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.\",\n\t\"onExitCodes\":     \"Represents the requirement on the container exit codes.\",\n\t\"onPodConditions\": \"Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.\",\n}\n\nfunc (PodFailurePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyRule\n}\n\nvar map_UncountedTerminatedPods = map[string]string{\n\t\"\":          \"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\n\t\"succeeded\": \"succeeded holds UIDs of succeeded Pods.\",\n\t\"failed\":    \"failed holds UIDs of failed Pods.\",\n}\n\nfunc (UncountedTerminatedPods) SwaggerDoc() map[string]string {\n\treturn map_UncountedTerminatedPods\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJob) DeepCopyInto(out *CronJob) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob.\nfunc (in *CronJob) DeepCopy() *CronJob {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJob)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJob) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobList) DeepCopyInto(out *CronJobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CronJob, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList.\nfunc (in *CronJobList) DeepCopy() *CronJobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) {\n\t*out = *in\n\tif in.TimeZone != nil {\n\t\tin, out := &in.TimeZone, &out.TimeZone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.StartingDeadlineSeconds != nil {\n\t\tin, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.JobTemplate.DeepCopyInto(&out.JobTemplate)\n\tif in.SuccessfulJobsHistoryLimit != nil {\n\t\tin, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.FailedJobsHistoryLimit != nil {\n\t\tin, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec.\nfunc (in *CronJobSpec) DeepCopy() *CronJobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) {\n\t*out = *in\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = make([]corev1.ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LastScheduleTime != nil {\n\t\tin, out := &in.LastScheduleTime, &out.LastScheduleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LastSuccessfulTime != nil {\n\t\tin, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus.\nfunc (in *CronJobStatus) DeepCopy() *CronJobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Job) DeepCopyInto(out *Job) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.\nfunc (in *Job) DeepCopy() *Job {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Job)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Job) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobCondition) DeepCopyInto(out *JobCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobCondition.\nfunc (in *JobCondition) DeepCopy() *JobCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobList) DeepCopyInto(out *JobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Job, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobList.\nfunc (in *JobList) DeepCopy() *JobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *JobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobSpec) DeepCopyInto(out *JobSpec) {\n\t*out = *in\n\tif in.Parallelism != nil {\n\t\tin, out := &in.Parallelism, &out.Parallelism\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Completions != nil {\n\t\tin, out := &in.Completions, &out.Completions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ActiveDeadlineSeconds != nil {\n\t\tin, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.PodFailurePolicy != nil {\n\t\tin, out := &in.PodFailurePolicy, &out.PodFailurePolicy\n\t\t*out = new(PodFailurePolicy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.BackoffLimit != nil {\n\t\tin, out := &in.BackoffLimit, &out.BackoffLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ManualSelector != nil {\n\t\tin, out := &in.ManualSelector, &out.ManualSelector\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.TTLSecondsAfterFinished != nil {\n\t\tin, out := &in.TTLSecondsAfterFinished, &out.TTLSecondsAfterFinished\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.CompletionMode != nil {\n\t\tin, out := &in.CompletionMode, &out.CompletionMode\n\t\t*out = new(CompletionMode)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.\nfunc (in *JobSpec) DeepCopy() *JobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobStatus) DeepCopyInto(out *JobStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]JobCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.StartTime != nil {\n\t\tin, out := &in.StartTime, &out.StartTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CompletionTime != nil {\n\t\tin, out := &in.CompletionTime, &out.CompletionTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.UncountedTerminatedPods != nil {\n\t\tin, out := &in.UncountedTerminatedPods, &out.UncountedTerminatedPods\n\t\t*out = new(UncountedTerminatedPods)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobStatus.\nfunc (in *JobStatus) DeepCopy() *JobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec.\nfunc (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicy) DeepCopyInto(out *PodFailurePolicy) {\n\t*out = *in\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PodFailurePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicy.\nfunc (in *PodFailurePolicy) DeepCopy() *PodFailurePolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyOnExitCodesRequirement) DeepCopyInto(out *PodFailurePolicyOnExitCodesRequirement) {\n\t*out = *in\n\tif in.ContainerName != nil {\n\t\tin, out := &in.ContainerName, &out.ContainerName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]int32, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyOnExitCodesRequirement.\nfunc (in *PodFailurePolicyOnExitCodesRequirement) DeepCopy() *PodFailurePolicyOnExitCodesRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyOnExitCodesRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyOnPodConditionsPattern) DeepCopyInto(out *PodFailurePolicyOnPodConditionsPattern) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyOnPodConditionsPattern.\nfunc (in *PodFailurePolicyOnPodConditionsPattern) DeepCopy() *PodFailurePolicyOnPodConditionsPattern {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyOnPodConditionsPattern)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyRule) DeepCopyInto(out *PodFailurePolicyRule) {\n\t*out = *in\n\tif in.OnExitCodes != nil {\n\t\tin, out := &in.OnExitCodes, &out.OnExitCodes\n\t\t*out = new(PodFailurePolicyOnExitCodesRequirement)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.OnPodConditions != nil {\n\t\tin, out := &in.OnPodConditions, &out.OnPodConditions\n\t\t*out = make([]PodFailurePolicyOnPodConditionsPattern, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyRule.\nfunc (in *PodFailurePolicyRule) DeepCopy() *PodFailurePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UncountedTerminatedPods) DeepCopyInto(out *UncountedTerminatedPods) {\n\t*out = *in\n\tif in.Succeeded != nil {\n\t\tin, out := &in.Succeeded, &out.Succeeded\n\t\t*out = make([]types.UID, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Failed != nil {\n\t\tin, out := &in.Failed, &out.Failed\n\t\t*out = make([]types.UID, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UncountedTerminatedPods.\nfunc (in *UncountedTerminatedPods) DeepCopy() *UncountedTerminatedPods {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UncountedTerminatedPods)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/batch/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CronJob) Reset()      { *m = CronJob{} }\nfunc (*CronJob) ProtoMessage() {}\nfunc (*CronJob) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e57b277b05179ae7, []int{0}\n}\nfunc (m *CronJob) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJob) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJob.Merge(m, src)\n}\nfunc (m *CronJob) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJob) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJob.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJob proto.InternalMessageInfo\n\nfunc (m *CronJobList) Reset()      { *m = CronJobList{} }\nfunc (*CronJobList) ProtoMessage() {}\nfunc (*CronJobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e57b277b05179ae7, []int{1}\n}\nfunc (m *CronJobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobList.Merge(m, src)\n}\nfunc (m *CronJobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobList proto.InternalMessageInfo\n\nfunc (m *CronJobSpec) Reset()      { *m = CronJobSpec{} }\nfunc (*CronJobSpec) ProtoMessage() {}\nfunc (*CronJobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e57b277b05179ae7, []int{2}\n}\nfunc (m *CronJobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobSpec.Merge(m, src)\n}\nfunc (m *CronJobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobSpec proto.InternalMessageInfo\n\nfunc (m *CronJobStatus) Reset()      { *m = CronJobStatus{} }\nfunc (*CronJobStatus) ProtoMessage() {}\nfunc (*CronJobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e57b277b05179ae7, []int{3}\n}\nfunc (m *CronJobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobStatus.Merge(m, src)\n}\nfunc (m *CronJobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobStatus proto.InternalMessageInfo\n\nfunc (m *JobTemplateSpec) Reset()      { *m = JobTemplateSpec{} }\nfunc (*JobTemplateSpec) ProtoMessage() {}\nfunc (*JobTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e57b277b05179ae7, []int{4}\n}\nfunc (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobTemplateSpec.Merge(m, src)\n}\nfunc (m *JobTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CronJob)(nil), \"k8s.io.api.batch.v1beta1.CronJob\")\n\tproto.RegisterType((*CronJobList)(nil), \"k8s.io.api.batch.v1beta1.CronJobList\")\n\tproto.RegisterType((*CronJobSpec)(nil), \"k8s.io.api.batch.v1beta1.CronJobSpec\")\n\tproto.RegisterType((*CronJobStatus)(nil), \"k8s.io.api.batch.v1beta1.CronJobStatus\")\n\tproto.RegisterType((*JobTemplateSpec)(nil), \"k8s.io.api.batch.v1beta1.JobTemplateSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/batch/v1beta1/generated.proto\", fileDescriptor_e57b277b05179ae7)\n}\n\nvar fileDescriptor_e57b277b05179ae7 = []byte{\n\t// 787 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x41, 0x6f, 0x1b, 0x45,\n\t0x14, 0xc7, 0xbd, 0x49, 0x9c, 0xb8, 0xe3, 0x16, 0xd2, 0x01, 0xa5, 0x2b, 0x83, 0xd6, 0xc1, 0x55,\n\t0x85, 0x41, 0x30, 0x4b, 0x22, 0x84, 0x38, 0x55, 0xea, 0x16, 0x15, 0x08, 0x41, 0x45, 0xe3, 0x72,\n\t0xa9, 0x2a, 0xd4, 0xd9, 0xd9, 0x17, 0x67, 0x9a, 0xdd, 0x9d, 0xd5, 0xce, 0x6c, 0xa4, 0xdc, 0xb8,\n\t0x70, 0xe7, 0xbb, 0x70, 0xe7, 0x9c, 0x63, 0x6f, 0xf4, 0xb4, 0x22, 0xcb, 0xb7, 0xe0, 0x84, 0x66,\n\t0xbc, 0xb1, 0x5d, 0x7b, 0xdd, 0x84, 0x4b, 0x6f, 0x9e, 0x37, 0xff, 0xff, 0x6f, 0x9e, 0xde, 0x7b,\n\t0xfb, 0x8c, 0x1e, 0x9c, 0x7c, 0xad, 0x88, 0x90, 0xfe, 0x49, 0x11, 0x42, 0x9e, 0x82, 0x06, 0xe5,\n\t0x9f, 0x42, 0x1a, 0xc9, 0xdc, 0xaf, 0x2f, 0x58, 0x26, 0xfc, 0x90, 0x69, 0x7e, 0xec, 0x9f, 0xee,\n\t0x85, 0xa0, 0xd9, 0x9e, 0x3f, 0x86, 0x14, 0x72, 0xa6, 0x21, 0x22, 0x59, 0x2e, 0xb5, 0xc4, 0xee,\n\t0x44, 0x49, 0x58, 0x26, 0x88, 0x55, 0x92, 0x5a, 0xd9, 0xfb, 0x7c, 0x2c, 0xf4, 0x71, 0x11, 0x12,\n\t0x2e, 0x13, 0x7f, 0x2c, 0xc7, 0xd2, 0xb7, 0x86, 0xb0, 0x38, 0xb2, 0x27, 0x7b, 0xb0, 0xbf, 0x26,\n\t0xa0, 0xde, 0xdd, 0x86, 0x27, 0x17, 0x5f, 0xeb, 0x0d, 0xe6, 0x44, 0x5c, 0xe6, 0xd0, 0xa4, 0xf9,\n\t0x72, 0xa6, 0x49, 0x18, 0x3f, 0x16, 0x29, 0xe4, 0x67, 0x7e, 0x76, 0x32, 0x36, 0x01, 0xe5, 0x27,\n\t0xa0, 0x59, 0x93, 0xcb, 0x5f, 0xe5, 0xca, 0x8b, 0x54, 0x8b, 0x04, 0x96, 0x0c, 0x5f, 0x5d, 0x65,\n\t0x50, 0xfc, 0x18, 0x12, 0xb6, 0xe8, 0x1b, 0xfc, 0xb6, 0x86, 0xb6, 0x1e, 0xe6, 0x32, 0x3d, 0x90,\n\t0x21, 0x7e, 0x8e, 0x3a, 0x26, 0x9f, 0x88, 0x69, 0xe6, 0x3a, 0xbb, 0xce, 0xb0, 0xbb, 0xff, 0x05,\n\t0x99, 0xd5, 0x73, 0x8a, 0x25, 0xd9, 0xc9, 0xd8, 0x04, 0x14, 0x31, 0x6a, 0x72, 0xba, 0x47, 0x1e,\n\t0x87, 0x2f, 0x80, 0xeb, 0x1f, 0x41, 0xb3, 0x00, 0x9f, 0x97, 0xfd, 0x56, 0x55, 0xf6, 0xd1, 0x2c,\n\t0x46, 0xa7, 0x54, 0xfc, 0x2d, 0xda, 0x50, 0x19, 0x70, 0x77, 0xcd, 0xd2, 0xef, 0x91, 0x55, 0xdd,\n\t0x22, 0x75, 0x4a, 0xa3, 0x0c, 0x78, 0x70, 0xb3, 0x46, 0x6e, 0x98, 0x13, 0xb5, 0x00, 0xfc, 0x18,\n\t0x6d, 0x2a, 0xcd, 0x74, 0xa1, 0xdc, 0x75, 0x8b, 0xfa, 0xf8, 0x6a, 0x94, 0x95, 0x07, 0xef, 0xd4,\n\t0xb0, 0xcd, 0xc9, 0x99, 0xd6, 0x98, 0xc1, 0x1f, 0x0e, 0xea, 0xd6, 0xca, 0x43, 0xa1, 0x34, 0x7e,\n\t0xb6, 0x54, 0x0b, 0x72, 0xbd, 0x5a, 0x18, 0xb7, 0xad, 0xc4, 0x76, 0xfd, 0x52, 0xe7, 0x32, 0x32,\n\t0x57, 0x87, 0x47, 0xa8, 0x2d, 0x34, 0x24, 0xca, 0x5d, 0xdb, 0x5d, 0x1f, 0x76, 0xf7, 0x3f, 0xba,\n\t0x32, 0xfb, 0xe0, 0x56, 0x4d, 0x6b, 0x7f, 0x6f, 0x7c, 0x74, 0x62, 0x1f, 0xfc, 0xb5, 0x31, 0xcd,\n\t0xda, 0x14, 0x07, 0x7f, 0x86, 0x3a, 0xa6, 0xcf, 0x51, 0x11, 0x83, 0xcd, 0xfa, 0xc6, 0x2c, 0x8b,\n\t0x51, 0x1d, 0xa7, 0x53, 0x05, 0x1e, 0xa2, 0x8e, 0x19, 0x8d, 0xa7, 0x32, 0x05, 0xb7, 0x63, 0xd5,\n\t0x37, 0x8d, 0xf2, 0x49, 0x1d, 0xa3, 0xd3, 0x5b, 0xfc, 0x33, 0xba, 0xa3, 0x34, 0xcb, 0xb5, 0x48,\n\t0xc7, 0xdf, 0x00, 0x8b, 0x62, 0x91, 0xc2, 0x08, 0xb8, 0x4c, 0x23, 0x65, 0x5b, 0xb9, 0x1e, 0x7c,\n\t0x50, 0x95, 0xfd, 0x3b, 0xa3, 0x66, 0x09, 0x5d, 0xe5, 0xc5, 0xcf, 0xd0, 0x6d, 0x2e, 0x53, 0x5e,\n\t0xe4, 0x39, 0xa4, 0xfc, 0xec, 0x27, 0x19, 0x0b, 0x7e, 0x66, 0x1b, 0x7a, 0x23, 0x20, 0x75, 0xde,\n\t0xb7, 0x1f, 0x2e, 0x0a, 0xfe, 0x6d, 0x0a, 0xd2, 0x65, 0x10, 0xbe, 0x87, 0xb6, 0x54, 0xa1, 0x32,\n\t0x48, 0x23, 0x77, 0x63, 0xd7, 0x19, 0x76, 0x82, 0x6e, 0x55, 0xf6, 0xb7, 0x46, 0x93, 0x10, 0xbd,\n\t0xbc, 0xc3, 0xcf, 0x51, 0xf7, 0x85, 0x0c, 0x9f, 0x40, 0x92, 0xc5, 0x4c, 0x83, 0xdb, 0xb6, 0xcd,\n\t0xfe, 0x64, 0x75, 0x47, 0x0e, 0x66, 0x62, 0x3b, 0x9e, 0xef, 0xd5, 0x99, 0x76, 0xe7, 0x2e, 0xe8,\n\t0x3c, 0x12, 0xff, 0x82, 0x7a, 0xaa, 0xe0, 0x1c, 0x94, 0x3a, 0x2a, 0xe2, 0x03, 0x19, 0xaa, 0xef,\n\t0x84, 0xd2, 0x32, 0x3f, 0x3b, 0x14, 0x89, 0xd0, 0xee, 0xe6, 0xae, 0x33, 0x6c, 0x07, 0x5e, 0x55,\n\t0xf6, 0x7b, 0xa3, 0x95, 0x2a, 0xfa, 0x06, 0x02, 0xa6, 0x68, 0xe7, 0x88, 0x89, 0x18, 0xa2, 0x25,\n\t0xf6, 0x96, 0x65, 0xf7, 0xaa, 0xb2, 0xbf, 0xf3, 0xa8, 0x51, 0x41, 0x57, 0x38, 0x07, 0x7f, 0xae,\n\t0xa1, 0x5b, 0xaf, 0x7d, 0x39, 0xf8, 0x07, 0xb4, 0xc9, 0xb8, 0x16, 0xa7, 0x66, 0xb2, 0xcc, 0xd0,\n\t0xde, 0x9d, 0x2f, 0x91, 0xd9, 0x7e, 0xb3, 0x4d, 0x40, 0xe1, 0x08, 0x4c, 0x27, 0x60, 0xf6, 0xb9,\n\t0x3d, 0xb0, 0x56, 0x5a, 0x23, 0x70, 0x8c, 0xb6, 0x63, 0xa6, 0xf4, 0xe5, 0x50, 0x9a, 0x91, 0xb3,\n\t0x4d, 0xea, 0xee, 0x7f, 0x7a, 0xbd, 0xcf, 0xcc, 0x38, 0x82, 0xf7, 0xab, 0xb2, 0xbf, 0x7d, 0xb8,\n\t0xc0, 0xa1, 0x4b, 0x64, 0x9c, 0x23, 0x6c, 0x63, 0xd3, 0x12, 0xda, 0xf7, 0xda, 0xff, 0xfb, 0xbd,\n\t0x9d, 0xaa, 0xec, 0xe3, 0xc3, 0x25, 0x12, 0x6d, 0xa0, 0x9b, 0x85, 0xf2, 0xee, 0xc2, 0xa8, 0xbc,\n\t0x85, 0x05, 0x7b, 0xff, 0xb5, 0x05, 0xfb, 0x61, 0xd3, 0x14, 0x93, 0x37, 0xec, 0xd5, 0xe0, 0xfe,\n\t0xf9, 0x85, 0xd7, 0x7a, 0x79, 0xe1, 0xb5, 0x5e, 0x5d, 0x78, 0xad, 0x5f, 0x2b, 0xcf, 0x39, 0xaf,\n\t0x3c, 0xe7, 0x65, 0xe5, 0x39, 0xaf, 0x2a, 0xcf, 0xf9, 0xbb, 0xf2, 0x9c, 0xdf, 0xff, 0xf1, 0x5a,\n\t0x4f, 0xdd, 0x55, 0xff, 0xc7, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x61, 0x72, 0xc3, 0xe0, 0xc3,\n\t0x07, 0x00, 0x00,\n}\n\nfunc (m *CronJob) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJob) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeZone != nil {\n\t\ti -= len(*m.TimeZone)\n\t\tcopy(dAtA[i:], *m.TimeZone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.TimeZone)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\t{\n\t\tsize, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.ConcurrencyPolicy)\n\tcopy(dAtA[i:], m.ConcurrencyPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.StartingDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Schedule)\n\tcopy(dAtA[i:], m.Schedule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LastSuccessfulTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.LastScheduleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Active) > 0 {\n\t\tfor iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CronJob) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CronJobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CronJobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Schedule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartingDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds))\n\t}\n\tl = len(m.ConcurrencyPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tl = m.JobTemplate.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit))\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit))\n\t}\n\tif m.TimeZone != nil {\n\t\tl = len(*m.TimeZone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CronJobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Active) > 0 {\n\t\tfor _, e := range m.Active {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LastScheduleTime != nil {\n\t\tl = m.LastScheduleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastSuccessfulTime != nil {\n\t\tl = m.LastSuccessfulTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *JobTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CronJob) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJob{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CronJobSpec\", \"CronJobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CronJobStatus\", \"CronJobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CronJob{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CronJob\", \"CronJob\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CronJobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJobSpec{`,\n\t\t`Schedule:` + fmt.Sprintf(\"%v\", this.Schedule) + `,`,\n\t\t`StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`,\n\t\t`ConcurrencyPolicy:` + fmt.Sprintf(\"%v\", this.ConcurrencyPolicy) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), \"JobTemplateSpec\", \"JobTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`,\n\t\t`FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`,\n\t\t`TimeZone:` + valueToStringGenerated(this.TimeZone) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForActive := \"[]ObjectReference{\"\n\tfor _, f := range this.Active {\n\t\trepeatedStringForActive += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForActive += \"}\"\n\ts := strings.Join([]string{`&CronJobStatus{`,\n\t\t`Active:` + repeatedStringForActive + `,`,\n\t\t`LastScheduleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScheduleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`LastSuccessfulTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastSuccessfulTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Spec), \"JobSpec\", \"v12.JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CronJob) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CronJob{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Schedule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Schedule = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartingDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StartingDeadlineSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConcurrencyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field JobTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SuccessfulJobsHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailedJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FailedJobsHistoryLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeZone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.TimeZone = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Active = append(m.Active, v11.ObjectReference{})\n\t\t\tif err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScheduleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScheduleTime == nil {\n\t\t\t\tm.LastScheduleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastSuccessfulTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastSuccessfulTime == nil {\n\t\t\t\tm.LastSuccessfulTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.batch.v1beta1;\n\nimport \"k8s.io/api/batch/v1/generated.proto\";\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/batch/v1beta1\";\n\n// CronJob represents the configuration of a single cron job.\nmessage CronJob {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a cron job, including the schedule.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobSpec spec = 2;\n\n  // Current status of a cron job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobStatus status = 3;\n}\n\n// CronJobList is a collection of cron jobs.\nmessage CronJobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CronJobs.\n  repeated CronJob items = 2;\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\nmessage CronJobSpec {\n  // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n  optional string schedule = 1;\n\n  // The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n  // If not specified, this will default to the time zone of the kube-controller-manager process.\n  // The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n  // database by the API server during CronJob validation and the controller manager during execution.\n  // If no system-wide time zone database can be found a bundled version of the database is used instead.\n  // If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n  // configuration, the controller will stop creating new new Jobs and will create a system event with the\n  // reason UnknownTimeZone.\n  // More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n  // +optional\n  optional string timeZone = 8;\n\n  // Optional deadline in seconds for starting the job if it misses scheduled\n  // time for any reason.  Missed jobs executions will be counted as failed ones.\n  // +optional\n  optional int64 startingDeadlineSeconds = 2;\n\n  // Specifies how to treat concurrent executions of a Job.\n  // Valid values are:\n  //\n  // - \"Allow\" (default): allows CronJobs to run concurrently;\n  // - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n  // - \"Replace\": cancels currently running job and replaces it with a new one\n  // +optional\n  optional string concurrencyPolicy = 3;\n\n  // This flag tells the controller to suspend subsequent executions, it does\n  // not apply to already started executions.  Defaults to false.\n  // +optional\n  optional bool suspend = 4;\n\n  // Specifies the job that will be created when executing a CronJob.\n  optional JobTemplateSpec jobTemplate = 5;\n\n  // The number of successful finished jobs to retain.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 3.\n  // +optional\n  optional int32 successfulJobsHistoryLimit = 6;\n\n  // The number of failed finished jobs to retain.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 1.\n  // +optional\n  optional int32 failedJobsHistoryLimit = 7;\n}\n\n// CronJobStatus represents the current state of a cron job.\nmessage CronJobStatus {\n  // A list of pointers to currently running jobs.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.ObjectReference active = 1;\n\n  // Information when was the last time the job was successfully scheduled.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4;\n\n  // Information when was the last time the job successfully completed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5;\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\nmessage JobTemplateSpec {\n  // Standard object's metadata of the jobs created from this template.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional k8s.io.api.batch.v1.JobSpec spec = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"batch\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CronJob{},\n\t\t&CronJobList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobTemplateSpec describes the data a Job should have when created from a template\ntype JobTemplateSpec struct {\n\t// Standard object's metadata of the jobs created from this template.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec batchv1.JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJob\n\n// CronJob represents the configuration of a single cron job.\ntype CronJob struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a cron job, including the schedule.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec CronJobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a cron job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus CronJobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJobList\n\n// CronJobList is a collection of cron jobs.\ntype CronJobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CronJobs.\n\tItems []CronJob `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\ntype CronJobSpec struct {\n\n\t// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n\tSchedule string `json:\"schedule\" protobuf:\"bytes,1,opt,name=schedule\"`\n\n\t// The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n\t// If not specified, this will default to the time zone of the kube-controller-manager process.\n\t// The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n\t// database by the API server during CronJob validation and the controller manager during execution.\n\t// If no system-wide time zone database can be found a bundled version of the database is used instead.\n\t// If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n\t// configuration, the controller will stop creating new new Jobs and will create a system event with the\n\t// reason UnknownTimeZone.\n\t// More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n\t// +optional\n\tTimeZone *string `json:\"timeZone,omitempty\" protobuf:\"bytes,8,opt,name=timeZone\"`\n\n\t// Optional deadline in seconds for starting the job if it misses scheduled\n\t// time for any reason.  Missed jobs executions will be counted as failed ones.\n\t// +optional\n\tStartingDeadlineSeconds *int64 `json:\"startingDeadlineSeconds,omitempty\" protobuf:\"varint,2,opt,name=startingDeadlineSeconds\"`\n\n\t// Specifies how to treat concurrent executions of a Job.\n\t// Valid values are:\n\t//\n\t// - \"Allow\" (default): allows CronJobs to run concurrently;\n\t// - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n\t// - \"Replace\": cancels currently running job and replaces it with a new one\n\t// +optional\n\tConcurrencyPolicy ConcurrencyPolicy `json:\"concurrencyPolicy,omitempty\" protobuf:\"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy\"`\n\n\t// This flag tells the controller to suspend subsequent executions, it does\n\t// not apply to already started executions.  Defaults to false.\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,4,opt,name=suspend\"`\n\n\t// Specifies the job that will be created when executing a CronJob.\n\tJobTemplate JobTemplateSpec `json:\"jobTemplate\" protobuf:\"bytes,5,opt,name=jobTemplate\"`\n\n\t// The number of successful finished jobs to retain.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 3.\n\t// +optional\n\tSuccessfulJobsHistoryLimit *int32 `json:\"successfulJobsHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=successfulJobsHistoryLimit\"`\n\n\t// The number of failed finished jobs to retain.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 1.\n\t// +optional\n\tFailedJobsHistoryLimit *int32 `json:\"failedJobsHistoryLimit,omitempty\" protobuf:\"varint,7,opt,name=failedJobsHistoryLimit\"`\n}\n\n// ConcurrencyPolicy describes how the job will be handled.\n// Only one of the following concurrent policies may be specified.\n// If none of the following policies is specified, the default one\n// is AllowConcurrent.\ntype ConcurrencyPolicy string\n\nconst (\n\t// AllowConcurrent allows CronJobs to run concurrently.\n\tAllowConcurrent ConcurrencyPolicy = \"Allow\"\n\n\t// ForbidConcurrent forbids concurrent runs, skipping next run if previous\n\t// hasn't finished yet.\n\tForbidConcurrent ConcurrencyPolicy = \"Forbid\"\n\n\t// ReplaceConcurrent cancels currently running job and replaces it with a new one.\n\tReplaceConcurrent ConcurrencyPolicy = \"Replace\"\n)\n\n// CronJobStatus represents the current state of a cron job.\ntype CronJobStatus struct {\n\t// A list of pointers to currently running jobs.\n\t// +optional\n\t// +listType=atomic\n\tActive []v1.ObjectReference `json:\"active,omitempty\" protobuf:\"bytes,1,rep,name=active\"`\n\n\t// Information when was the last time the job was successfully scheduled.\n\t// +optional\n\tLastScheduleTime *metav1.Time `json:\"lastScheduleTime,omitempty\" protobuf:\"bytes,4,opt,name=lastScheduleTime\"`\n\n\t// Information when was the last time the job successfully completed.\n\t// +optional\n\tLastSuccessfulTime *metav1.Time `json:\"lastSuccessfulTime,omitempty\" protobuf:\"bytes,5,opt,name=lastSuccessfulTime\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CronJob = map[string]string{\n\t\"\":         \"CronJob represents the configuration of a single cron job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (CronJob) SwaggerDoc() map[string]string {\n\treturn map_CronJob\n}\n\nvar map_CronJobList = map[string]string{\n\t\"\":         \"CronJobList is a collection of cron jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CronJobs.\",\n}\n\nfunc (CronJobList) SwaggerDoc() map[string]string {\n\treturn map_CronJobList\n}\n\nvar map_CronJobSpec = map[string]string{\n\t\"\":                           \"CronJobSpec describes how the job execution will look like and when it will actually run.\",\n\t\"schedule\":                   \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n\t\"timeZone\":                   \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\",\n\t\"startingDeadlineSeconds\":    \"Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.\",\n\t\"concurrencyPolicy\":          \"Specifies how to treat concurrent executions of a Job. Valid values are:\\n\\n- \\\"Allow\\\" (default): allows CronJobs to run concurrently; - \\\"Forbid\\\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \\\"Replace\\\": cancels currently running job and replaces it with a new one\",\n\t\"suspend\":                    \"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\n\t\"jobTemplate\":                \"Specifies the job that will be created when executing a CronJob.\",\n\t\"successfulJobsHistoryLimit\": \"The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.\",\n\t\"failedJobsHistoryLimit\":     \"The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n}\n\nfunc (CronJobSpec) SwaggerDoc() map[string]string {\n\treturn map_CronJobSpec\n}\n\nvar map_CronJobStatus = map[string]string{\n\t\"\":                   \"CronJobStatus represents the current state of a cron job.\",\n\t\"active\":             \"A list of pointers to currently running jobs.\",\n\t\"lastScheduleTime\":   \"Information when was the last time the job was successfully scheduled.\",\n\t\"lastSuccessfulTime\": \"Information when was the last time the job successfully completed.\",\n}\n\nfunc (CronJobStatus) SwaggerDoc() map[string]string {\n\treturn map_CronJobStatus\n}\n\nvar map_JobTemplateSpec = map[string]string{\n\t\"\":         \"JobTemplateSpec describes the data a Job should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (JobTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_JobTemplateSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJob) DeepCopyInto(out *CronJob) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob.\nfunc (in *CronJob) DeepCopy() *CronJob {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJob)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJob) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobList) DeepCopyInto(out *CronJobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CronJob, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList.\nfunc (in *CronJobList) DeepCopy() *CronJobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) {\n\t*out = *in\n\tif in.TimeZone != nil {\n\t\tin, out := &in.TimeZone, &out.TimeZone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.StartingDeadlineSeconds != nil {\n\t\tin, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.JobTemplate.DeepCopyInto(&out.JobTemplate)\n\tif in.SuccessfulJobsHistoryLimit != nil {\n\t\tin, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.FailedJobsHistoryLimit != nil {\n\t\tin, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec.\nfunc (in *CronJobSpec) DeepCopy() *CronJobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) {\n\t*out = *in\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = make([]v1.ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LastScheduleTime != nil {\n\t\tin, out := &in.LastScheduleTime, &out.LastScheduleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LastSuccessfulTime != nil {\n\t\tin, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus.\nfunc (in *CronJobStatus) DeepCopy() *CronJobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec.\nfunc (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJob) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CronJob) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CronJob) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"batch\", Version: \"v1\", Kind: \"CronJob\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CronJob) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJobList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CronJobList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CronJobList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"batch\", Version: \"v1\", Kind: \"CronJobList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CronJobList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=certificates.k8s.io\n\npackage v1 // import \"k8s.io/api/certificates/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CertificateSigningRequest) Reset()      { *m = CertificateSigningRequest{} }\nfunc (*CertificateSigningRequest) ProtoMessage() {}\nfunc (*CertificateSigningRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{0}\n}\nfunc (m *CertificateSigningRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequest.Merge(m, src)\n}\nfunc (m *CertificateSigningRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequest proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestCondition) Reset()      { *m = CertificateSigningRequestCondition{} }\nfunc (*CertificateSigningRequestCondition) ProtoMessage() {}\nfunc (*CertificateSigningRequestCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{1}\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestCondition.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestCondition proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestList) Reset()      { *m = CertificateSigningRequestList{} }\nfunc (*CertificateSigningRequestList) ProtoMessage() {}\nfunc (*CertificateSigningRequestList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{2}\n}\nfunc (m *CertificateSigningRequestList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestList.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestList proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestSpec) Reset()      { *m = CertificateSigningRequestSpec{} }\nfunc (*CertificateSigningRequestSpec) ProtoMessage() {}\nfunc (*CertificateSigningRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{3}\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestSpec.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestSpec proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestStatus) Reset()      { *m = CertificateSigningRequestStatus{} }\nfunc (*CertificateSigningRequestStatus) ProtoMessage() {}\nfunc (*CertificateSigningRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{4}\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestStatus.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestStatus proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_17e045d0de66f3c7, []int{5}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CertificateSigningRequest)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequest\")\n\tproto.RegisterType((*CertificateSigningRequestCondition)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestCondition\")\n\tproto.RegisterType((*CertificateSigningRequestList)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestList\")\n\tproto.RegisterType((*CertificateSigningRequestSpec)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestSpec.ExtraEntry\")\n\tproto.RegisterType((*CertificateSigningRequestStatus)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestStatus\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.certificates.v1.ExtraValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1/generated.proto\", fileDescriptor_17e045d0de66f3c7)\n}\n\nvar fileDescriptor_17e045d0de66f3c7 = []byte{\n\t// 910 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdf, 0x6e, 0x1b, 0xc5,\n\t0x17, 0xf6, 0xc6, 0x7f, 0x62, 0x8f, 0xf3, 0x4b, 0xdb, 0xd1, 0x8f, 0x6a, 0xb1, 0x54, 0xaf, 0xb5,\n\t0x82, 0x2a, 0x20, 0xd8, 0x25, 0x51, 0x81, 0x50, 0x10, 0x42, 0x9b, 0x46, 0xa8, 0x22, 0x05, 0x69,\n\t0x92, 0x70, 0x51, 0xb8, 0xe8, 0x64, 0x7d, 0xba, 0x99, 0xba, 0xfb, 0x87, 0x99, 0x59, 0xab, 0xbe,\n\t0xeb, 0x23, 0x70, 0xc9, 0x25, 0x2f, 0xc0, 0x33, 0x70, 0x9b, 0xcb, 0x5e, 0x16, 0x09, 0x59, 0xc4,\n\t0x7d, 0x8b, 0x5c, 0xa1, 0x99, 0x1d, 0xaf, 0x1d, 0x27, 0x6e, 0x4b, 0xee, 0x76, 0xce, 0xf9, 0xce,\n\t0xf7, 0x9d, 0x73, 0xe6, 0x9c, 0xd1, 0xa2, 0x9d, 0xc1, 0xb6, 0xf0, 0x58, 0xea, 0x0f, 0xf2, 0x23,\n\t0xe0, 0x09, 0x48, 0x10, 0xfe, 0x10, 0x92, 0x7e, 0xca, 0x7d, 0xe3, 0xa0, 0x19, 0xf3, 0x43, 0xe0,\n\t0x92, 0x3d, 0x66, 0x21, 0xd5, 0xee, 0x4d, 0x3f, 0x82, 0x04, 0x38, 0x95, 0xd0, 0xf7, 0x32, 0x9e,\n\t0xca, 0x14, 0x77, 0x0a, 0xac, 0x47, 0x33, 0xe6, 0xcd, 0x63, 0xbd, 0xe1, 0x66, 0xe7, 0xe3, 0x88,\n\t0xc9, 0xe3, 0xfc, 0xc8, 0x0b, 0xd3, 0xd8, 0x8f, 0xd2, 0x28, 0xf5, 0x75, 0xc8, 0x51, 0xfe, 0x58,\n\t0x9f, 0xf4, 0x41, 0x7f, 0x15, 0x54, 0x1d, 0x77, 0x5e, 0x36, 0xe5, 0x70, 0x89, 0x5c, 0xe7, 0xce,\n\t0x0c, 0x13, 0xd3, 0xf0, 0x98, 0x25, 0xc0, 0x47, 0x7e, 0x36, 0x88, 0x94, 0x41, 0xf8, 0x31, 0x48,\n\t0x7a, 0x59, 0x94, 0xbf, 0x2c, 0x8a, 0xe7, 0x89, 0x64, 0x31, 0x5c, 0x08, 0xf8, 0xec, 0x4d, 0x01,\n\t0x22, 0x3c, 0x86, 0x98, 0x2e, 0xc6, 0xb9, 0x7f, 0xae, 0xa0, 0x77, 0x77, 0x66, 0x5d, 0xd8, 0x67,\n\t0x51, 0xc2, 0x92, 0x88, 0xc0, 0x2f, 0x39, 0x08, 0x89, 0x1f, 0xa1, 0xa6, 0xca, 0xb0, 0x4f, 0x25,\n\t0xb5, 0xad, 0x9e, 0xb5, 0xd1, 0xde, 0xfa, 0xc4, 0x9b, 0xb5, 0xaf, 0x14, 0xf2, 0xb2, 0x41, 0xa4,\n\t0x0c, 0xc2, 0x53, 0x68, 0x6f, 0xb8, 0xe9, 0xfd, 0x70, 0xf4, 0x04, 0x42, 0xf9, 0x00, 0x24, 0x0d,\n\t0xf0, 0xc9, 0xd8, 0xa9, 0x4c, 0xc6, 0x0e, 0x9a, 0xd9, 0x48, 0xc9, 0x8a, 0x7f, 0x42, 0x35, 0x91,\n\t0x41, 0x68, 0xaf, 0x68, 0xf6, 0x2f, 0xbc, 0xe5, 0x97, 0xe3, 0x2d, 0x4d, 0x73, 0x3f, 0x83, 0x30,\n\t0x58, 0x33, 0x32, 0x35, 0x75, 0x22, 0x9a, 0x14, 0x87, 0xa8, 0x21, 0x24, 0x95, 0xb9, 0xb0, 0xab,\n\t0x9a, 0xfe, 0xcb, 0xab, 0xd1, 0x6b, 0x8a, 0x60, 0xdd, 0x08, 0x34, 0x8a, 0x33, 0x31, 0xd4, 0xee,\n\t0xab, 0x2a, 0x72, 0x97, 0xc6, 0xee, 0xa4, 0x49, 0x9f, 0x49, 0x96, 0x26, 0x78, 0x1b, 0xd5, 0xe4,\n\t0x28, 0x03, 0xdd, 0xc6, 0x56, 0xf0, 0xde, 0x34, 0xdb, 0x83, 0x51, 0x06, 0x67, 0x63, 0xe7, 0xff,\n\t0x8b, 0x78, 0x65, 0x27, 0x3a, 0x02, 0xef, 0x95, 0x55, 0x34, 0x74, 0xec, 0x9d, 0xf3, 0x89, 0x9c,\n\t0x8d, 0x9d, 0x4b, 0xe6, 0xd0, 0x2b, 0x99, 0xce, 0xa7, 0x8b, 0x6f, 0xa3, 0x06, 0x07, 0x2a, 0xd2,\n\t0x44, 0xb7, 0xbc, 0x35, 0x2b, 0x8b, 0x68, 0x2b, 0x31, 0x5e, 0xfc, 0x01, 0x5a, 0x8d, 0x41, 0x08,\n\t0x1a, 0x81, 0x6e, 0x5e, 0x2b, 0xb8, 0x66, 0x80, 0xab, 0x0f, 0x0a, 0x33, 0x99, 0xfa, 0xf1, 0x13,\n\t0xb4, 0xfe, 0x94, 0x0a, 0x79, 0x98, 0xf5, 0xa9, 0x84, 0x03, 0x16, 0x83, 0x5d, 0xd3, 0xed, 0xfe,\n\t0xf0, 0xed, 0x66, 0x45, 0x45, 0x04, 0x37, 0x0d, 0xfb, 0xfa, 0xde, 0x39, 0x26, 0xb2, 0xc0, 0x8c,\n\t0x87, 0x08, 0x2b, 0xcb, 0x01, 0xa7, 0x89, 0x28, 0x1a, 0xa5, 0xf4, 0xea, 0xff, 0x59, 0xaf, 0x63,\n\t0xf4, 0xf0, 0xde, 0x05, 0x36, 0x72, 0x89, 0x82, 0xfb, 0x97, 0x85, 0x6e, 0x2d, 0xbd, 0xe5, 0x3d,\n\t0x26, 0x24, 0xfe, 0xf9, 0xc2, 0xae, 0x78, 0x6f, 0x97, 0x8f, 0x8a, 0xd6, 0x9b, 0x72, 0xdd, 0xe4,\n\t0xd4, 0x9c, 0x5a, 0xe6, 0xf6, 0xe4, 0x21, 0xaa, 0x33, 0x09, 0xb1, 0xb0, 0x57, 0x7a, 0xd5, 0x8d,\n\t0xf6, 0xd6, 0xa7, 0x57, 0x9a, 0xe4, 0xe0, 0x7f, 0x46, 0xa1, 0x7e, 0x5f, 0x71, 0x91, 0x82, 0xd2,\n\t0xfd, 0xa3, 0xf6, 0x9a, 0xda, 0xd4, 0x3a, 0xe1, 0xf7, 0xd1, 0x2a, 0x2f, 0x8e, 0xba, 0xb4, 0xb5,\n\t0xa0, 0xad, 0x06, 0xc1, 0x20, 0xc8, 0xd4, 0x87, 0xb7, 0x10, 0x12, 0x2c, 0x4a, 0x80, 0x7f, 0x4f,\n\t0x63, 0xb0, 0x57, 0xf5, 0xd8, 0x94, 0xeb, 0xbf, 0x5f, 0x7a, 0xc8, 0x1c, 0x0a, 0xef, 0xa0, 0x1b,\n\t0xf0, 0x2c, 0x63, 0x9c, 0xea, 0x59, 0x85, 0x30, 0x4d, 0xfa, 0xc2, 0x6e, 0xf6, 0xac, 0x8d, 0x7a,\n\t0xf0, 0xce, 0x64, 0xec, 0xdc, 0xd8, 0x5d, 0x74, 0x92, 0x8b, 0x78, 0xec, 0xa1, 0x46, 0xae, 0x46,\n\t0x51, 0xd8, 0xf5, 0x5e, 0x75, 0xa3, 0x15, 0xdc, 0x54, 0x03, 0x7d, 0xa8, 0x2d, 0x67, 0x63, 0xa7,\n\t0xf9, 0x1d, 0x8c, 0xf4, 0x81, 0x18, 0x14, 0xfe, 0x08, 0x35, 0x73, 0x01, 0x3c, 0x51, 0x69, 0x16,\n\t0x6b, 0x50, 0xf6, 0xfe, 0xd0, 0xd8, 0x49, 0x89, 0xc0, 0xb7, 0x50, 0x35, 0x67, 0x7d, 0xb3, 0x06,\n\t0x6d, 0x03, 0xac, 0x1e, 0xde, 0xbf, 0x47, 0x94, 0x1d, 0xbb, 0xa8, 0x11, 0xf1, 0x34, 0xcf, 0x84,\n\t0x5d, 0xd3, 0xe2, 0x48, 0x89, 0x7f, 0xab, 0x2d, 0xc4, 0x78, 0x30, 0x43, 0x75, 0x78, 0x26, 0x39,\n\t0xb5, 0x1b, 0xfa, 0xfa, 0xee, 0x5d, 0xf9, 0x9d, 0xf3, 0x76, 0x15, 0xcd, 0x6e, 0x22, 0xf9, 0x68,\n\t0x76, 0x9b, 0xda, 0x46, 0x0a, 0x85, 0xce, 0x23, 0x84, 0x66, 0x18, 0x7c, 0x1d, 0x55, 0x07, 0x30,\n\t0x2a, 0x5e, 0x1d, 0xa2, 0x3e, 0xf1, 0x57, 0xa8, 0x3e, 0xa4, 0x4f, 0x73, 0x30, 0x4f, 0xee, 0xed,\n\t0xd7, 0xa5, 0xa2, 0x89, 0x7e, 0x54, 0x68, 0x52, 0x04, 0xdd, 0x5d, 0xd9, 0xb6, 0xdc, 0x13, 0x0b,\n\t0x39, 0x6f, 0x78, 0x2d, 0x31, 0x47, 0x28, 0x9c, 0xbe, 0x40, 0xc2, 0xb6, 0x74, 0xd5, 0x5f, 0x5f,\n\t0xa9, 0xea, 0xf2, 0x21, 0x9b, 0x8d, 0x52, 0x69, 0x12, 0x64, 0x4e, 0x05, 0x6f, 0xa2, 0xf6, 0x1c,\n\t0xab, 0xae, 0x6f, 0x2d, 0xb8, 0x36, 0x19, 0x3b, 0xed, 0x39, 0x72, 0x32, 0x8f, 0x71, 0x3f, 0x37,\n\t0xcd, 0xd2, 0x35, 0x62, 0x67, 0xba, 0x64, 0x96, 0xbe, 0xc8, 0xd6, 0xe2, 0xa6, 0xdc, 0x6d, 0xfe,\n\t0xf6, 0xbb, 0x53, 0x79, 0xfe, 0x77, 0xaf, 0x12, 0x7c, 0x73, 0x72, 0xda, 0xad, 0xbc, 0x38, 0xed,\n\t0x56, 0x5e, 0x9e, 0x76, 0x2b, 0xcf, 0x27, 0x5d, 0xeb, 0x64, 0xd2, 0xb5, 0x5e, 0x4c, 0xba, 0xd6,\n\t0xcb, 0x49, 0xd7, 0xfa, 0x67, 0xd2, 0xb5, 0x7e, 0x7d, 0xd5, 0xad, 0x3c, 0xec, 0x2c, 0xff, 0x2f,\n\t0xf9, 0x37, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x00, 0x0c, 0x1b, 0xcd, 0x08, 0x00, 0x00,\n}\n\nfunc (m *CertificateSigningRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti -= len(m.SignerName)\n\tcopy(dAtA[i:], m.SignerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SignerName)))\n\ti--\n\tdAtA[i] = 0x3a\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor iNdEx := len(m.Usages) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Usages[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Usages[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Usages[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Request != nil {\n\t\ti -= len(m.Request)\n\t\tcopy(dAtA[i:], m.Request)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Certificate != nil {\n\t\ti -= len(m.Certificate)\n\t\tcopy(dAtA[i:], m.Certificate)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Certificate)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CertificateSigningRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Request != nil {\n\t\tl = len(m.Request)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor _, s := range m.Usages {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.SignerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Certificate != nil {\n\t\tl = len(m.Certificate)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CertificateSigningRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CertificateSigningRequestSpec\", \"CertificateSigningRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CertificateSigningRequestStatus\", \"CertificateSigningRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequestCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CertificateSigningRequest{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequest\", \"CertificateSigningRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestSpec{`,\n\t\t`Request:` + valueToStringGenerated(this.Request) + `,`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Usages:` + fmt.Sprintf(\"%v\", this.Usages) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`SignerName:` + fmt.Sprintf(\"%v\", this.SignerName) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]CertificateSigningRequestCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequestCondition\", \"CertificateSigningRequestCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Certificate:` + valueToStringGenerated(this.Certificate) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = RequestConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CertificateSigningRequest{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = append(m.Request[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Request == nil {\n\t\t\t\tm.Request = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Usages\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Usages = append(m.Usages, KeyUsage(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SignerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, CertificateSigningRequestCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Certificate\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Certificate = append(m.Certificate[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Certificate == nil {\n\t\t\t\tm.Certificate = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1\";\n\n// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates\n// by submitting a certificate signing request, and having it asynchronously approved and issued.\n//\n// Kubelets use this API to obtain:\n//  1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n//  2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n//\n// This API can be used to request client certificates to authenticate to kube-apiserver\n// (with the \"kubernetes.io/kube-apiserver-client\" signerName),\n// or to obtain certificates from custom non-Kubernetes signers.\nmessage CertificateSigningRequest {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the certificate request, and is immutable after creation.\n  // Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n  // Other fields are derived by Kubernetes and cannot be modified by users.\n  optional CertificateSigningRequestSpec spec = 2;\n\n  // status contains information about whether the request is approved or denied,\n  // and the certificate issued by the signer, or the failure condition indicating signer failure.\n  // +optional\n  optional CertificateSigningRequestStatus status = 3;\n}\n\n// CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\nmessage CertificateSigningRequestCondition {\n  // type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n  //\n  // An \"Approved\" condition is added via the /approval subresource,\n  // indicating the request was approved and should be issued by the signer.\n  //\n  // A \"Denied\" condition is added via the /approval subresource,\n  // indicating the request was denied and should not be issued by the signer.\n  //\n  // A \"Failed\" condition is added via the /status subresource,\n  // indicating the signer failed to issue the certificate.\n  //\n  // Approved and Denied conditions are mutually exclusive.\n  // Approved, Denied, and Failed conditions cannot be removed once added.\n  //\n  // Only one condition of a given type is allowed.\n  optional string type = 1;\n\n  // status of the condition, one of True, False, Unknown.\n  // Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n  optional string status = 6;\n\n  // reason indicates a brief reason for the request state\n  // +optional\n  optional string reason = 2;\n\n  // message contains a human readable message with details about the request state\n  // +optional\n  optional string message = 3;\n\n  // lastUpdateTime is the time of the last update to this condition\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4;\n\n  // lastTransitionTime is the time the condition last transitioned from one status to another.\n  // If unset, when a new condition type is added or an existing condition's status is changed,\n  // the server defaults this to the current time.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 5;\n}\n\n// CertificateSigningRequestList is a collection of CertificateSigningRequest objects\nmessage CertificateSigningRequestList {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a collection of CertificateSigningRequest objects\n  repeated CertificateSigningRequest items = 2;\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\nmessage CertificateSigningRequestSpec {\n  // request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block.\n  // When serialized as JSON or YAML, the data is additionally base64-encoded.\n  // +listType=atomic\n  optional bytes request = 1;\n\n  // signerName indicates the requested signer, and is a qualified name.\n  //\n  // List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n  //\n  // Well-known Kubernetes signers are:\n  //  1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n  //   Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //  2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n  //   Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //  3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n  //   Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //\n  // More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n  //\n  // Custom signerNames can also be specified. The signer defines:\n  //  1. Trust distribution: how trust (CA bundles) are distributed.\n  //  2. Permitted subjects: and behavior when a disallowed subject is requested.\n  //  3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n  //  4. Required, permitted, or forbidden key usages / extended key usages.\n  //  5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n  //  6. Whether or not requests for CA certificates are allowed.\n  optional string signerName = 7;\n\n  // expirationSeconds is the requested duration of validity of the issued\n  // certificate. The certificate signer may issue a certificate with a different\n  // validity duration so a client must check the delta between the notBefore and\n  // and notAfter fields in the issued certificate to determine the actual duration.\n  //\n  // The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n  // honor this field as long as the requested duration is not greater than the\n  // maximum duration they will honor per the --cluster-signing-duration CLI\n  // flag to the Kubernetes controller manager.\n  //\n  // Certificate signers may not honor this field for various reasons:\n  //\n  //   1. Old signer that is unaware of the field (such as the in-tree\n  //      implementations prior to v1.22)\n  //   2. Signer whose configured maximum is shorter than the requested duration\n  //   3. Signer whose configured minimum is longer than the requested duration\n  //\n  // The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n  //\n  // +optional\n  optional int32 expirationSeconds = 8;\n\n  // usages specifies a set of key usages requested in the issued certificate.\n  //\n  // Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n  //\n  // Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n  //\n  // Valid values are:\n  //  \"signing\", \"digital signature\", \"content commitment\",\n  //  \"key encipherment\", \"key agreement\", \"data encipherment\",\n  //  \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n  //  \"server auth\", \"client auth\",\n  //  \"code signing\", \"email protection\", \"s/mime\",\n  //  \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n  //  \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"\n  // +listType=atomic\n  repeated string usages = 5;\n\n  // username contains the name of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  optional string username = 2;\n\n  // uid contains the uid of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  optional string uid = 3;\n\n  // groups contains group membership of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +listType=atomic\n  // +optional\n  repeated string groups = 4;\n\n  // extra contains extra attributes of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  map<string, ExtraValue> extra = 6;\n}\n\n// CertificateSigningRequestStatus contains conditions used to indicate\n// approved/denied/failed status of the request, and the issued certificate.\nmessage CertificateSigningRequestStatus {\n  // conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated CertificateSigningRequestCondition conditions = 1;\n\n  // certificate is populated with an issued certificate by the signer after an Approved condition is present.\n  // This field is set via the /status subresource. Once populated, this field is immutable.\n  //\n  // If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty.\n  // If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n  //\n  // Validation requirements:\n  //  1. certificate must contain one or more PEM blocks.\n  //  2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n  //   must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n  //  3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n  //   to allow for explanatory text as described in section 5.2 of RFC7468.\n  //\n  // If more than one PEM block is present, and the definition of the requested spec.signerName\n  // does not indicate otherwise, the first block is the issued certificate,\n  // and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n  //\n  // The certificate is encoded in PEM format.\n  //\n  // When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n  //\n  //     base64(\n  //     -----BEGIN CERTIFICATE-----\n  //     ...\n  //     -----END CERTIFICATE-----\n  //     )\n  //\n  // +listType=atomic\n  // +optional\n  optional bytes certificate = 2;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme is a global function that registers this API group & version to a scheme\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CertificateSigningRequest{},\n\t\t&CertificateSigningRequestList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:method=UpdateApproval,verb=update,subresource=approval,input=k8s.io/api/certificates/v1.CertificateSigningRequest,result=k8s.io/api/certificates/v1.CertificateSigningRequest\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates\n// by submitting a certificate signing request, and having it asynchronously approved and issued.\n//\n// Kubelets use this API to obtain:\n//  1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n//  2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n//\n// This API can be used to request client certificates to authenticate to kube-apiserver\n// (with the \"kubernetes.io/kube-apiserver-client\" signerName),\n// or to obtain certificates from custom non-Kubernetes signers.\ntype CertificateSigningRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the certificate request, and is immutable after creation.\n\t// Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n\t// Other fields are derived by Kubernetes and cannot be modified by users.\n\tSpec CertificateSigningRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status contains information about whether the request is approved or denied,\n\t// and the certificate issued by the signer, or the failure condition indicating signer failure.\n\t// +optional\n\tStatus CertificateSigningRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\ntype CertificateSigningRequestSpec struct {\n\t// request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block.\n\t// When serialized as JSON or YAML, the data is additionally base64-encoded.\n\t// +listType=atomic\n\tRequest []byte `json:\"request\" protobuf:\"bytes,1,opt,name=request\"`\n\n\t// signerName indicates the requested signer, and is a qualified name.\n\t//\n\t// List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\t//\n\t// Well-known Kubernetes signers are:\n\t//  1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n\t//   Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//  2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n\t//   Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//  3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n\t//   Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//\n\t// More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\t//\n\t// Custom signerNames can also be specified. The signer defines:\n\t//  1. Trust distribution: how trust (CA bundles) are distributed.\n\t//  2. Permitted subjects: and behavior when a disallowed subject is requested.\n\t//  3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n\t//  4. Required, permitted, or forbidden key usages / extended key usages.\n\t//  5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n\t//  6. Whether or not requests for CA certificates are allowed.\n\tSignerName string `json:\"signerName\" protobuf:\"bytes,7,opt,name=signerName\"`\n\n\t// expirationSeconds is the requested duration of validity of the issued\n\t// certificate. The certificate signer may issue a certificate with a different\n\t// validity duration so a client must check the delta between the notBefore and\n\t// and notAfter fields in the issued certificate to determine the actual duration.\n\t//\n\t// The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n\t// honor this field as long as the requested duration is not greater than the\n\t// maximum duration they will honor per the --cluster-signing-duration CLI\n\t// flag to the Kubernetes controller manager.\n\t//\n\t// Certificate signers may not honor this field for various reasons:\n\t//\n\t//   1. Old signer that is unaware of the field (such as the in-tree\n\t//      implementations prior to v1.22)\n\t//   2. Signer whose configured maximum is shorter than the requested duration\n\t//   3. Signer whose configured minimum is longer than the requested duration\n\t//\n\t// The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n\t//\n\t// +optional\n\tExpirationSeconds *int32 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,8,opt,name=expirationSeconds\"`\n\n\t// usages specifies a set of key usages requested in the issued certificate.\n\t//\n\t// Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\t//\n\t// Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\t//\n\t// Valid values are:\n\t//  \"signing\", \"digital signature\", \"content commitment\",\n\t//  \"key encipherment\", \"key agreement\", \"data encipherment\",\n\t//  \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n\t//  \"server auth\", \"client auth\",\n\t//  \"code signing\", \"email protection\", \"s/mime\",\n\t//  \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n\t//  \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"\n\t// +listType=atomic\n\tUsages []KeyUsage `json:\"usages,omitempty\" protobuf:\"bytes,5,opt,name=usages\"`\n\n\t// username contains the name of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,2,opt,name=username\"`\n\t// uid contains the uid of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\t// groups contains group membership of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +listType=atomic\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// extra contains extra attributes of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,6,rep,name=extra\"`\n}\n\n// Built in signerName values that are honored by kube-controller-manager.\nconst (\n\t// \"kubernetes.io/kube-apiserver-client\" signer issues client certificates that can be used to authenticate to kube-apiserver.\n\t// Never auto-approved by kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeAPIServerClientSignerName = \"kubernetes.io/kube-apiserver-client\"\n\n\t// \"kubernetes.io/kube-apiserver-client-kubelet\" issues client certificates that kubelets use to authenticate to kube-apiserver.\n\t// Can be auto-approved by the \"csrapproving\" controller in kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeAPIServerClientKubeletSignerName = \"kubernetes.io/kube-apiserver-client-kubelet\"\n\n\t// \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints,\n\t// which kube-apiserver can connect to securely.\n\t// Never auto-approved by kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeletServingSignerName = \"kubernetes.io/kubelet-serving\"\n)\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// CertificateSigningRequestStatus contains conditions used to indicate\n// approved/denied/failed status of the request, and the issued certificate.\ntype CertificateSigningRequestStatus struct {\n\t// conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []CertificateSigningRequestCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// certificate is populated with an issued certificate by the signer after an Approved condition is present.\n\t// This field is set via the /status subresource. Once populated, this field is immutable.\n\t//\n\t// If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty.\n\t// If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\t//\n\t// Validation requirements:\n\t//  1. certificate must contain one or more PEM blocks.\n\t//  2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n\t//   must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n\t//  3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n\t//   to allow for explanatory text as described in section 5.2 of RFC7468.\n\t//\n\t// If more than one PEM block is present, and the definition of the requested spec.signerName\n\t// does not indicate otherwise, the first block is the issued certificate,\n\t// and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\t//\n\t// The certificate is encoded in PEM format.\n\t//\n\t// When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\t//\n\t//     base64(\n\t//     -----BEGIN CERTIFICATE-----\n\t//     ...\n\t//     -----END CERTIFICATE-----\n\t//     )\n\t//\n\t// +listType=atomic\n\t// +optional\n\tCertificate []byte `json:\"certificate,omitempty\" protobuf:\"bytes,2,opt,name=certificate\"`\n}\n\n// RequestConditionType is the type of a CertificateSigningRequestCondition\ntype RequestConditionType string\n\n// Well-known condition types for certificate requests.\nconst (\n\t// Approved indicates the request was approved and should be issued by the signer.\n\tCertificateApproved RequestConditionType = \"Approved\"\n\t// Denied indicates the request was denied and should not be issued by the signer.\n\tCertificateDenied RequestConditionType = \"Denied\"\n\t// Failed indicates the signer failed to issue the certificate.\n\tCertificateFailed RequestConditionType = \"Failed\"\n)\n\n// CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\ntype CertificateSigningRequestCondition struct {\n\t// type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\t//\n\t// An \"Approved\" condition is added via the /approval subresource,\n\t// indicating the request was approved and should be issued by the signer.\n\t//\n\t// A \"Denied\" condition is added via the /approval subresource,\n\t// indicating the request was denied and should not be issued by the signer.\n\t//\n\t// A \"Failed\" condition is added via the /status subresource,\n\t// indicating the signer failed to issue the certificate.\n\t//\n\t// Approved and Denied conditions are mutually exclusive.\n\t// Approved, Denied, and Failed conditions cannot be removed once added.\n\t//\n\t// Only one condition of a given type is allowed.\n\tType RequestConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=RequestConditionType\"`\n\t// status of the condition, one of True, False, Unknown.\n\t// Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,6,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// reason indicates a brief reason for the request state\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// message contains a human readable message with details about the request state\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// lastUpdateTime is the time of the last update to this condition\n\t// +optional\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,4,opt,name=lastUpdateTime\"`\n\t// lastTransitionTime is the time the condition last transitioned from one status to another.\n\t// If unset, when a new condition type is added or an existing condition's status is changed,\n\t// the server defaults this to the current time.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,5,opt,name=lastTransitionTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CertificateSigningRequestList is a collection of CertificateSigningRequest objects\ntype CertificateSigningRequestList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a collection of CertificateSigningRequest objects\n\tItems []CertificateSigningRequest `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// KeyUsage specifies valid usage contexts for keys.\n// See:\n//\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n//\n// +enum\ntype KeyUsage string\n\n// Valid key usages\nconst (\n\tUsageSigning           KeyUsage = \"signing\"\n\tUsageDigitalSignature  KeyUsage = \"digital signature\"\n\tUsageContentCommitment KeyUsage = \"content commitment\"\n\tUsageKeyEncipherment   KeyUsage = \"key encipherment\"\n\tUsageKeyAgreement      KeyUsage = \"key agreement\"\n\tUsageDataEncipherment  KeyUsage = \"data encipherment\"\n\tUsageCertSign          KeyUsage = \"cert sign\"\n\tUsageCRLSign           KeyUsage = \"crl sign\"\n\tUsageEncipherOnly      KeyUsage = \"encipher only\"\n\tUsageDecipherOnly      KeyUsage = \"decipher only\"\n\tUsageAny               KeyUsage = \"any\"\n\tUsageServerAuth        KeyUsage = \"server auth\"\n\tUsageClientAuth        KeyUsage = \"client auth\"\n\tUsageCodeSigning       KeyUsage = \"code signing\"\n\tUsageEmailProtection   KeyUsage = \"email protection\"\n\tUsageSMIME             KeyUsage = \"s/mime\"\n\tUsageIPsecEndSystem    KeyUsage = \"ipsec end system\"\n\tUsageIPsecTunnel       KeyUsage = \"ipsec tunnel\"\n\tUsageIPsecUser         KeyUsage = \"ipsec user\"\n\tUsageTimestamping      KeyUsage = \"timestamping\"\n\tUsageOCSPSigning       KeyUsage = \"ocsp signing\"\n\tUsageMicrosoftSGC      KeyUsage = \"microsoft sgc\"\n\tUsageNetscapeSGC       KeyUsage = \"netscape sgc\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CertificateSigningRequest = map[string]string{\n\t\"\":       \"CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\\n\\nKubelets use this API to obtain:\\n 1. client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client-kubelet\\\" signerName).\\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \\\"kubernetes.io/kubelet-serving\\\" signerName).\\n\\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client\\\" signerName), or to obtain certificates from custom non-Kubernetes signers.\",\n\t\"spec\":   \"spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.\",\n\t\"status\": \"status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.\",\n}\n\nfunc (CertificateSigningRequest) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequest\n}\n\nvar map_CertificateSigningRequestCondition = map[string]string{\n\t\"\":                   \"CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\",\n\t\"type\":               \"type of the condition. Known conditions are \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\\n\\nAn \\\"Approved\\\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\\n\\nA \\\"Denied\\\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\\n\\nA \\\"Failed\\\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\\n\\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\\n\\nOnly one condition of a given type is allowed.\",\n\t\"status\":             \"status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \\\"False\\\" or \\\"Unknown\\\".\",\n\t\"reason\":             \"reason indicates a brief reason for the request state\",\n\t\"message\":            \"message contains a human readable message with details about the request state\",\n\t\"lastUpdateTime\":     \"lastUpdateTime is the time of the last update to this condition\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.\",\n}\n\nfunc (CertificateSigningRequestCondition) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestCondition\n}\n\nvar map_CertificateSigningRequestList = map[string]string{\n\t\"\":      \"CertificateSigningRequestList is a collection of CertificateSigningRequest objects\",\n\t\"items\": \"items is a collection of CertificateSigningRequest objects\",\n}\n\nfunc (CertificateSigningRequestList) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestList\n}\n\nvar map_CertificateSigningRequestSpec = map[string]string{\n\t\"\":                  \"CertificateSigningRequestSpec contains the certificate request.\",\n\t\"request\":           \"request contains an x509 certificate signing request encoded in a \\\"CERTIFICATE REQUEST\\\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.\",\n\t\"signerName\":        \"signerName indicates the requested signer, and is a qualified name.\\n\\nList/watch requests for CertificateSigningRequests can filter on this field using a \\\"spec.signerName=NAME\\\" fieldSelector.\\n\\nWell-known Kubernetes signers are:\\n 1. \\\"kubernetes.io/kube-apiserver-client\\\": issues client certificates that can be used to authenticate to kube-apiserver.\\n  Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n 2. \\\"kubernetes.io/kube-apiserver-client-kubelet\\\": issues client certificates that kubelets use to authenticate to kube-apiserver.\\n  Requests for this signer can be auto-approved by the \\\"csrapproving\\\" controller in kube-controller-manager, and can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n 3. \\\"kubernetes.io/kubelet-serving\\\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\\n  Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n\\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\\n\\nCustom signerNames can also be specified. The signer defines:\\n 1. Trust distribution: how trust (CA bundles) are distributed.\\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\\n 4. Required, permitted, or forbidden key usages / extended key usages.\\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\\n 6. Whether or not requests for CA certificates are allowed.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\\n\\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\\n\\nCertificate signers may not honor this field for various reasons:\\n\\n  1. Old signer that is unaware of the field (such as the in-tree\\n     implementations prior to v1.22)\\n  2. Signer whose configured maximum is shorter than the requested duration\\n  3. Signer whose configured minimum is longer than the requested duration\\n\\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\",\n\t\"usages\":            \"usages specifies a set of key usages requested in the issued certificate.\\n\\nRequests for TLS client certificates typically request: \\\"digital signature\\\", \\\"key encipherment\\\", \\\"client auth\\\".\\n\\nRequests for TLS serving certificates typically request: \\\"key encipherment\\\", \\\"digital signature\\\", \\\"server auth\\\".\\n\\nValid values are:\\n \\\"signing\\\", \\\"digital signature\\\", \\\"content commitment\\\",\\n \\\"key encipherment\\\", \\\"key agreement\\\", \\\"data encipherment\\\",\\n \\\"cert sign\\\", \\\"crl sign\\\", \\\"encipher only\\\", \\\"decipher only\\\", \\\"any\\\",\\n \\\"server auth\\\", \\\"client auth\\\",\\n \\\"code signing\\\", \\\"email protection\\\", \\\"s/mime\\\",\\n \\\"ipsec end system\\\", \\\"ipsec tunnel\\\", \\\"ipsec user\\\",\\n \\\"timestamping\\\", \\\"ocsp signing\\\", \\\"microsoft sgc\\\", \\\"netscape sgc\\\"\",\n\t\"username\":          \"username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"uid\":               \"uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"groups\":            \"groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"extra\":             \"extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n}\n\nfunc (CertificateSigningRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestSpec\n}\n\nvar map_CertificateSigningRequestStatus = map[string]string{\n\t\"\":            \"CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.\",\n\t\"conditions\":  \"conditions applied to the request. Known conditions are \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\",\n\t\"certificate\": \"certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\\n\\nIf the certificate signing request is denied, a condition of type \\\"Denied\\\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \\\"Failed\\\" is added and this field remains empty.\\n\\nValidation requirements:\\n 1. certificate must contain one or more PEM blocks.\\n 2. All PEM blocks must have the \\\"CERTIFICATE\\\" label, contain no headers, and the encoded data\\n  must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\\n 3. Non-PEM content may appear before or after the \\\"CERTIFICATE\\\" PEM blocks and is unvalidated,\\n  to allow for explanatory text as described in section 5.2 of RFC7468.\\n\\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\\n\\nThe certificate is encoded in PEM format.\\n\\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\\n\\n    base64(\",\n}\n\nfunc (CertificateSigningRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequest.\nfunc (in *CertificateSigningRequest) DeepCopy() *CertificateSigningRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestCondition) DeepCopyInto(out *CertificateSigningRequestCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestCondition.\nfunc (in *CertificateSigningRequestCondition) DeepCopy() *CertificateSigningRequestCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestList) DeepCopyInto(out *CertificateSigningRequestList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CertificateSigningRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestList.\nfunc (in *CertificateSigningRequestList) DeepCopy() *CertificateSigningRequestList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequestList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestSpec) DeepCopyInto(out *CertificateSigningRequestSpec) {\n\t*out = *in\n\tif in.Request != nil {\n\t\tin, out := &in.Request, &out.Request\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Usages != nil {\n\t\tin, out := &in.Usages, &out.Usages\n\t\t*out = make([]KeyUsage, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestSpec.\nfunc (in *CertificateSigningRequestSpec) DeepCopy() *CertificateSigningRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestStatus) DeepCopyInto(out *CertificateSigningRequestStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]CertificateSigningRequestCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Certificate != nil {\n\t\tin, out := &in.Certificate, &out.Certificate\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestStatus.\nfunc (in *CertificateSigningRequestStatus) DeepCopy() *CertificateSigningRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=certificates.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/certificates/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ClusterTrustBundle) Reset()      { *m = ClusterTrustBundle{} }\nfunc (*ClusterTrustBundle) ProtoMessage() {}\nfunc (*ClusterTrustBundle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8915b0d419f9eda6, []int{0}\n}\nfunc (m *ClusterTrustBundle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundle.Merge(m, src)\n}\nfunc (m *ClusterTrustBundle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundle) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundle proto.InternalMessageInfo\n\nfunc (m *ClusterTrustBundleList) Reset()      { *m = ClusterTrustBundleList{} }\nfunc (*ClusterTrustBundleList) ProtoMessage() {}\nfunc (*ClusterTrustBundleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8915b0d419f9eda6, []int{1}\n}\nfunc (m *ClusterTrustBundleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundleList.Merge(m, src)\n}\nfunc (m *ClusterTrustBundleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundleList proto.InternalMessageInfo\n\nfunc (m *ClusterTrustBundleSpec) Reset()      { *m = ClusterTrustBundleSpec{} }\nfunc (*ClusterTrustBundleSpec) ProtoMessage() {}\nfunc (*ClusterTrustBundleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8915b0d419f9eda6, []int{2}\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundleSpec.Merge(m, src)\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundleSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ClusterTrustBundle)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundle\")\n\tproto.RegisterType((*ClusterTrustBundleList)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundleList\")\n\tproto.RegisterType((*ClusterTrustBundleSpec)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundleSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1alpha1/generated.proto\", fileDescriptor_8915b0d419f9eda6)\n}\n\nvar fileDescriptor_8915b0d419f9eda6 = []byte{\n\t// 448 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0xcf, 0x6b, 0x13, 0x41,\n\t0x14, 0xc7, 0x77, 0x6a, 0x0b, 0xed, 0x44, 0x41, 0x56, 0x90, 0x90, 0xc3, 0x34, 0xe4, 0xd4, 0x8b,\n\t0x33, 0x26, 0x54, 0xe9, 0x79, 0x05, 0xa1, 0xe0, 0x0f, 0xd8, 0x7a, 0xb1, 0x78, 0x70, 0x32, 0x79,\n\t0xdd, 0x8c, 0xc9, 0xee, 0x0e, 0x33, 0xb3, 0x01, 0x6f, 0x82, 0xff, 0x80, 0x7f, 0x56, 0x8e, 0xd5,\n\t0x53, 0x4f, 0xc5, 0xac, 0xff, 0x88, 0xcc, 0x64, 0x93, 0x5d, 0x5c, 0x25, 0xd2, 0xdb, 0xbe, 0x1f,\n\t0x9f, 0xef, 0x7b, 0xdf, 0xb7, 0x0c, 0x3e, 0x9f, 0x9d, 0x19, 0x2a, 0x73, 0x36, 0x2b, 0xc6, 0xa0,\n\t0x33, 0xb0, 0x60, 0xd8, 0x02, 0xb2, 0x49, 0xae, 0x59, 0x55, 0xe0, 0x4a, 0x32, 0x01, 0xda, 0xca,\n\t0x2b, 0x29, 0xb8, 0x2f, 0x0f, 0xf9, 0x5c, 0x4d, 0xf9, 0x90, 0x25, 0x90, 0x81, 0xe6, 0x16, 0x26,\n\t0x54, 0xe9, 0xdc, 0xe6, 0x61, 0x7f, 0x4d, 0x50, 0xae, 0x24, 0x6d, 0x12, 0x74, 0x43, 0xf4, 0x9e,\n\t0x24, 0xd2, 0x4e, 0x8b, 0x31, 0x15, 0x79, 0xca, 0x92, 0x3c, 0xc9, 0x99, 0x07, 0xc7, 0xc5, 0x95,\n\t0x8f, 0x7c, 0xe0, 0xbf, 0xd6, 0x82, 0xbd, 0xd3, 0x7a, 0x85, 0x94, 0x8b, 0xa9, 0xcc, 0x40, 0x7f,\n\t0x66, 0x6a, 0x96, 0xb8, 0x84, 0x61, 0x29, 0x58, 0xce, 0x16, 0xad, 0x35, 0x7a, 0xec, 0x5f, 0x94,\n\t0x2e, 0x32, 0x2b, 0x53, 0x68, 0x01, 0xcf, 0x77, 0x01, 0x46, 0x4c, 0x21, 0xe5, 0x7f, 0x72, 0x83,\n\t0x1f, 0x08, 0x87, 0x2f, 0xe6, 0x85, 0xb1, 0xa0, 0xdf, 0xe9, 0xc2, 0xd8, 0xa8, 0xc8, 0x26, 0x73,\n\t0x08, 0x3f, 0xe2, 0x43, 0xb7, 0xda, 0x84, 0x5b, 0xde, 0x45, 0x7d, 0x74, 0xd2, 0x19, 0x3d, 0xa5,\n\t0xf5, 0x65, 0xb6, 0x13, 0xa8, 0x9a, 0x25, 0x2e, 0x61, 0xa8, 0xeb, 0xa6, 0x8b, 0x21, 0x7d, 0x3b,\n\t0xfe, 0x04, 0xc2, 0xbe, 0x06, 0xcb, 0xa3, 0x70, 0x79, 0x7b, 0x1c, 0x94, 0xb7, 0xc7, 0xb8, 0xce,\n\t0xc5, 0x5b, 0xd5, 0xf0, 0x12, 0xef, 0x1b, 0x05, 0xa2, 0xbb, 0xe7, 0xd5, 0xcf, 0xe8, 0xae, 0xbb,\n\t0xd3, 0xf6, 0x96, 0x17, 0x0a, 0x44, 0x74, 0xbf, 0x9a, 0xb2, 0xef, 0xa2, 0xd8, 0x6b, 0x0e, 0xbe,\n\t0x23, 0xfc, 0xb8, 0xdd, 0xfe, 0x4a, 0x1a, 0x1b, 0x7e, 0x68, 0x19, 0xa3, 0xff, 0x67, 0xcc, 0xd1,\n\t0xde, 0xd6, 0xc3, 0x6a, 0xe0, 0xe1, 0x26, 0xd3, 0x30, 0xf5, 0x1e, 0x1f, 0x48, 0x0b, 0xa9, 0xe9,\n\t0xee, 0xf5, 0xef, 0x9d, 0x74, 0x46, 0xa7, 0x77, 0x71, 0x15, 0x3d, 0xa8, 0x06, 0x1c, 0x9c, 0x3b,\n\t0xa9, 0x78, 0xad, 0x38, 0xf8, 0xfa, 0x57, 0x4f, 0xce, 0x74, 0x38, 0xc2, 0xd8, 0xc8, 0x24, 0x03,\n\t0xfd, 0x86, 0xa7, 0xe0, 0x5d, 0x1d, 0xd5, 0xc7, 0xbf, 0xd8, 0x56, 0xe2, 0x46, 0x57, 0xf8, 0x0c,\n\t0x77, 0x6c, 0x2d, 0xe3, 0xff, 0xc2, 0x51, 0xf4, 0xa8, 0x82, 0x3a, 0x8d, 0x09, 0x71, 0xb3, 0x2f,\n\t0x7a, 0xb9, 0x5c, 0x91, 0xe0, 0x7a, 0x45, 0x82, 0x9b, 0x15, 0x09, 0xbe, 0x94, 0x04, 0x2d, 0x4b,\n\t0x82, 0xae, 0x4b, 0x82, 0x6e, 0x4a, 0x82, 0x7e, 0x96, 0x04, 0x7d, 0xfb, 0x45, 0x82, 0xcb, 0xfe,\n\t0xae, 0x67, 0xf7, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x05, 0xe9, 0xaa, 0x07, 0xb2, 0x03, 0x00, 0x00,\n}\n\nfunc (m *ClusterTrustBundle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundle) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundle) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterTrustBundleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterTrustBundleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TrustBundle)\n\tcopy(dAtA[i:], m.TrustBundle)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TrustBundle)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SignerName)\n\tcopy(dAtA[i:], m.SignerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SignerName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ClusterTrustBundle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterTrustBundleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterTrustBundleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SignerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.TrustBundle)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ClusterTrustBundle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterTrustBundle{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ClusterTrustBundleSpec\", \"ClusterTrustBundleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterTrustBundleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterTrustBundle{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterTrustBundle\", \"ClusterTrustBundle\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterTrustBundleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterTrustBundleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterTrustBundleSpec{`,\n\t\t`SignerName:` + fmt.Sprintf(\"%v\", this.SignerName) + `,`,\n\t\t`TrustBundle:` + fmt.Sprintf(\"%v\", this.TrustBundle) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ClusterTrustBundle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterTrustBundleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterTrustBundle{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterTrustBundleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SignerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TrustBundle\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TrustBundle = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1alpha1\";\n\n// ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors\n// (root certificates).\n//\n// ClusterTrustBundle objects are considered to be readable by any authenticated\n// user in the cluster, because they can be mounted by pods using the\n// `clusterTrustBundle` projection.  All service accounts have read access to\n// ClusterTrustBundles by default.  Users who only have namespace-level access\n// to a cluster can read ClusterTrustBundles by impersonating a serviceaccount\n// that they have access to.\n//\n// It can be optionally associated with a particular assigner, in which case it\n// contains one valid set of trust anchors for that signer. Signers may have\n// multiple associated ClusterTrustBundles; each is an independent set of trust\n// anchors for that signer. Admission control is used to enforce that only users\n// with permissions on the signer can create or modify the corresponding bundle.\nmessage ClusterTrustBundle {\n  // metadata contains the object metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the signer (if any) and trust anchors.\n  optional ClusterTrustBundleSpec spec = 2;\n}\n\n// ClusterTrustBundleList is a collection of ClusterTrustBundle objects\nmessage ClusterTrustBundleList {\n  // metadata contains the list metadata.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a collection of ClusterTrustBundle objects\n  repeated ClusterTrustBundle items = 2;\n}\n\n// ClusterTrustBundleSpec contains the signer and trust anchors.\nmessage ClusterTrustBundleSpec {\n  // signerName indicates the associated signer, if any.\n  //\n  // In order to create or update a ClusterTrustBundle that sets signerName,\n  // you must have the following cluster-scoped permission:\n  // group=certificates.k8s.io resource=signers resourceName=<the signer name>\n  // verb=attest.\n  //\n  // If signerName is not empty, then the ClusterTrustBundle object must be\n  // named with the signer name as a prefix (translating slashes to colons).\n  // For example, for the signer name `example.com/foo`, valid\n  // ClusterTrustBundle object names include `example.com:foo:abc` and\n  // `example.com:foo:v1`.\n  //\n  // If signerName is empty, then the ClusterTrustBundle object's name must\n  // not have such a prefix.\n  //\n  // List/watch requests for ClusterTrustBundles can filter on this field\n  // using a `spec.signerName=NAME` field selector.\n  //\n  // +optional\n  optional string signerName = 1;\n\n  // trustBundle contains the individual X.509 trust anchors for this\n  // bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n  //\n  // The data must consist only of PEM certificate blocks that parse as valid\n  // X.509 certificates.  Each certificate must include a basic constraints\n  // extension with the CA bit set.  The API server will reject objects that\n  // contain duplicate certificates, or that use PEM block headers.\n  //\n  // Users of ClusterTrustBundles, including Kubelet, are free to reorder and\n  // deduplicate certificate blocks in this file according to their own logic,\n  // as well as to drop PEM block headers and inter-block data.\n  optional string trustBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme is a global function that registers this API group & version to a scheme\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ClusterTrustBundle{},\n\t\t&ClusterTrustBundleList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/types.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors\n// (root certificates).\n//\n// ClusterTrustBundle objects are considered to be readable by any authenticated\n// user in the cluster, because they can be mounted by pods using the\n// `clusterTrustBundle` projection.  All service accounts have read access to\n// ClusterTrustBundles by default.  Users who only have namespace-level access\n// to a cluster can read ClusterTrustBundles by impersonating a serviceaccount\n// that they have access to.\n//\n// It can be optionally associated with a particular assigner, in which case it\n// contains one valid set of trust anchors for that signer. Signers may have\n// multiple associated ClusterTrustBundles; each is an independent set of trust\n// anchors for that signer. Admission control is used to enforce that only users\n// with permissions on the signer can create or modify the corresponding bundle.\ntype ClusterTrustBundle struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata contains the object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the signer (if any) and trust anchors.\n\tSpec ClusterTrustBundleSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// ClusterTrustBundleSpec contains the signer and trust anchors.\ntype ClusterTrustBundleSpec struct {\n\t// signerName indicates the associated signer, if any.\n\t//\n\t// In order to create or update a ClusterTrustBundle that sets signerName,\n\t// you must have the following cluster-scoped permission:\n\t// group=certificates.k8s.io resource=signers resourceName=<the signer name>\n\t// verb=attest.\n\t//\n\t// If signerName is not empty, then the ClusterTrustBundle object must be\n\t// named with the signer name as a prefix (translating slashes to colons).\n\t// For example, for the signer name `example.com/foo`, valid\n\t// ClusterTrustBundle object names include `example.com:foo:abc` and\n\t// `example.com:foo:v1`.\n\t//\n\t// If signerName is empty, then the ClusterTrustBundle object's name must\n\t// not have such a prefix.\n\t//\n\t// List/watch requests for ClusterTrustBundles can filter on this field\n\t// using a `spec.signerName=NAME` field selector.\n\t//\n\t// +optional\n\tSignerName string `json:\"signerName,omitempty\" protobuf:\"bytes,1,opt,name=signerName\"`\n\n\t// trustBundle contains the individual X.509 trust anchors for this\n\t// bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n\t//\n\t// The data must consist only of PEM certificate blocks that parse as valid\n\t// X.509 certificates.  Each certificate must include a basic constraints\n\t// extension with the CA bit set.  The API server will reject objects that\n\t// contain duplicate certificates, or that use PEM block headers.\n\t//\n\t// Users of ClusterTrustBundles, including Kubelet, are free to reorder and\n\t// deduplicate certificate blocks in this file according to their own logic,\n\t// as well as to drop PEM block headers and inter-block data.\n\tTrustBundle string `json:\"trustBundle\" protobuf:\"bytes,2,opt,name=trustBundle\"`\n}\n\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterTrustBundleList is a collection of ClusterTrustBundle objects\ntype ClusterTrustBundleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata contains the list metadata.\n\t//\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a collection of ClusterTrustBundle objects\n\tItems []ClusterTrustBundle `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ClusterTrustBundle = map[string]string{\n\t\"\":         \"ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates).\\n\\nClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection.  All service accounts have read access to ClusterTrustBundles by default.  Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to.\\n\\nIt can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.\",\n\t\"metadata\": \"metadata contains the object metadata.\",\n\t\"spec\":     \"spec contains the signer (if any) and trust anchors.\",\n}\n\nfunc (ClusterTrustBundle) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundle\n}\n\nvar map_ClusterTrustBundleList = map[string]string{\n\t\"\":         \"ClusterTrustBundleList is a collection of ClusterTrustBundle objects\",\n\t\"metadata\": \"metadata contains the list metadata.\",\n\t\"items\":    \"items is a collection of ClusterTrustBundle objects\",\n}\n\nfunc (ClusterTrustBundleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundleList\n}\n\nvar map_ClusterTrustBundleSpec = map[string]string{\n\t\"\":            \"ClusterTrustBundleSpec contains the signer and trust anchors.\",\n\t\"signerName\":  \"signerName indicates the associated signer, if any.\\n\\nIn order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest.\\n\\nIf signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`.\\n\\nIf signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix.\\n\\nList/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.\",\n\t\"trustBundle\": \"trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\\n\\nThe data must consist only of PEM certificate blocks that parse as valid X.509 certificates.  Each certificate must include a basic constraints extension with the CA bit set.  The API server will reject objects that contain duplicate certificates, or that use PEM block headers.\\n\\nUsers of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.\",\n}\n\nfunc (ClusterTrustBundleSpec) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundleSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundle) DeepCopyInto(out *ClusterTrustBundle) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundle.\nfunc (in *ClusterTrustBundle) DeepCopy() *ClusterTrustBundle {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundle)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterTrustBundle) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundleList) DeepCopyInto(out *ClusterTrustBundleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterTrustBundle, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundleList.\nfunc (in *ClusterTrustBundleList) DeepCopy() *ClusterTrustBundleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterTrustBundleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundleSpec) DeepCopyInto(out *ClusterTrustBundleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundleSpec.\nfunc (in *ClusterTrustBundleSpec) DeepCopy() *ClusterTrustBundleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterTrustBundle) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterTrustBundle) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterTrustBundle) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterTrustBundleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterTrustBundleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterTrustBundleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=certificates.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/certificates/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CertificateSigningRequest) Reset()      { *m = CertificateSigningRequest{} }\nfunc (*CertificateSigningRequest) ProtoMessage() {}\nfunc (*CertificateSigningRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{0}\n}\nfunc (m *CertificateSigningRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequest.Merge(m, src)\n}\nfunc (m *CertificateSigningRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequest proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestCondition) Reset()      { *m = CertificateSigningRequestCondition{} }\nfunc (*CertificateSigningRequestCondition) ProtoMessage() {}\nfunc (*CertificateSigningRequestCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{1}\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestCondition.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestCondition proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestList) Reset()      { *m = CertificateSigningRequestList{} }\nfunc (*CertificateSigningRequestList) ProtoMessage() {}\nfunc (*CertificateSigningRequestList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{2}\n}\nfunc (m *CertificateSigningRequestList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestList.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestList proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestSpec) Reset()      { *m = CertificateSigningRequestSpec{} }\nfunc (*CertificateSigningRequestSpec) ProtoMessage() {}\nfunc (*CertificateSigningRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{3}\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestSpec.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestSpec proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestStatus) Reset()      { *m = CertificateSigningRequestStatus{} }\nfunc (*CertificateSigningRequestStatus) ProtoMessage() {}\nfunc (*CertificateSigningRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{4}\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestStatus.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestStatus proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_09d156762b8218ef, []int{5}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CertificateSigningRequest)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequest\")\n\tproto.RegisterType((*CertificateSigningRequestCondition)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestCondition\")\n\tproto.RegisterType((*CertificateSigningRequestList)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestList\")\n\tproto.RegisterType((*CertificateSigningRequestSpec)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestSpec.ExtraEntry\")\n\tproto.RegisterType((*CertificateSigningRequestStatus)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestStatus\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.certificates.v1beta1.ExtraValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1beta1/generated.proto\", fileDescriptor_09d156762b8218ef)\n}\n\nvar fileDescriptor_09d156762b8218ef = []byte{\n\t// 915 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x5d, 0x6f, 0x1b, 0x45,\n\t0x17, 0xf6, 0xc6, 0x1f, 0xb1, 0xc7, 0x79, 0xd3, 0x76, 0xf4, 0x52, 0x2d, 0x96, 0xea, 0xb5, 0x2c,\n\t0x40, 0xe1, 0x6b, 0x96, 0x54, 0x15, 0x44, 0xb9, 0x40, 0xb0, 0x21, 0x82, 0x88, 0x14, 0xa4, 0x49,\n\t0xc2, 0x05, 0x42, 0xa2, 0xe3, 0xf5, 0xe9, 0x66, 0xea, 0xee, 0x07, 0x3b, 0xb3, 0xa6, 0xbe, 0xeb,\n\t0x4f, 0xe0, 0x92, 0x4b, 0xfe, 0x03, 0x7f, 0x22, 0x5c, 0x20, 0xf5, 0xb2, 0x17, 0xc8, 0x22, 0xee,\n\t0xbf, 0xc8, 0x15, 0x9a, 0xd9, 0xf1, 0xda, 0xb1, 0x13, 0x5c, 0xda, 0xbb, 0x9d, 0x67, 0xce, 0xf3,\n\t0x3c, 0x67, 0xce, 0x9c, 0x33, 0x36, 0xfa, 0x6a, 0xb0, 0x23, 0x08, 0x8f, 0xdd, 0x41, 0xd6, 0x83,\n\t0x34, 0x02, 0x09, 0xc2, 0x1d, 0x42, 0xd4, 0x8f, 0x53, 0xd7, 0x6c, 0xb0, 0x84, 0xbb, 0x3e, 0xa4,\n\t0x92, 0x3f, 0xe4, 0x3e, 0xd3, 0xdb, 0xdb, 0x3d, 0x90, 0x6c, 0xdb, 0x0d, 0x20, 0x82, 0x94, 0x49,\n\t0xe8, 0x93, 0x24, 0x8d, 0x65, 0x8c, 0x9d, 0x9c, 0x40, 0x58, 0xc2, 0xc9, 0x3c, 0x81, 0x18, 0x42,\n\t0xeb, 0xc3, 0x80, 0xcb, 0xd3, 0xac, 0x47, 0xfc, 0x38, 0x74, 0x83, 0x38, 0x88, 0x5d, 0xcd, 0xeb,\n\t0x65, 0x0f, 0xf5, 0x4a, 0x2f, 0xf4, 0x57, 0xae, 0xd7, 0xea, 0xce, 0x27, 0x10, 0xa7, 0xe0, 0x0e,\n\t0x97, 0x3c, 0x5b, 0xf7, 0x66, 0x31, 0x21, 0xf3, 0x4f, 0x79, 0x04, 0xe9, 0xc8, 0x4d, 0x06, 0x81,\n\t0x02, 0x84, 0x1b, 0x82, 0x64, 0x57, 0xb1, 0xdc, 0xeb, 0x58, 0x69, 0x16, 0x49, 0x1e, 0xc2, 0x12,\n\t0xe1, 0xe3, 0x55, 0x04, 0xe1, 0x9f, 0x42, 0xc8, 0x16, 0x79, 0xdd, 0x3f, 0xd6, 0xd0, 0x9b, 0x7b,\n\t0xb3, 0x52, 0x1c, 0xf1, 0x20, 0xe2, 0x51, 0x40, 0xe1, 0xa7, 0x0c, 0x84, 0xc4, 0x0f, 0x50, 0x5d,\n\t0x65, 0xd8, 0x67, 0x92, 0xd9, 0x56, 0xc7, 0xda, 0x6a, 0xde, 0xfd, 0x88, 0xcc, 0x6a, 0x58, 0x18,\n\t0x91, 0x64, 0x10, 0x28, 0x40, 0x10, 0x15, 0x4d, 0x86, 0xdb, 0xe4, 0xdb, 0xde, 0x23, 0xf0, 0xe5,\n\t0x7d, 0x90, 0xcc, 0xc3, 0x67, 0x63, 0xa7, 0x34, 0x19, 0x3b, 0x68, 0x86, 0xd1, 0x42, 0x15, 0x3f,\n\t0x40, 0x15, 0x91, 0x80, 0x6f, 0xaf, 0x69, 0xf5, 0x4f, 0xc9, 0x8a, 0x1b, 0x22, 0xd7, 0xe6, 0x7a,\n\t0x94, 0x80, 0xef, 0x6d, 0x18, 0xaf, 0x8a, 0x5a, 0x51, 0xad, 0x8c, 0x4f, 0x51, 0x4d, 0x48, 0x26,\n\t0x33, 0x61, 0x97, 0xb5, 0xc7, 0x67, 0xaf, 0xe1, 0xa1, 0x75, 0xbc, 0x4d, 0xe3, 0x52, 0xcb, 0xd7,\n\t0xd4, 0xe8, 0x77, 0x5f, 0x94, 0x51, 0xf7, 0x5a, 0xee, 0x5e, 0x1c, 0xf5, 0xb9, 0xe4, 0x71, 0x84,\n\t0x77, 0x50, 0x45, 0x8e, 0x12, 0xd0, 0x05, 0x6d, 0x78, 0x6f, 0x4d, 0x53, 0x3e, 0x1e, 0x25, 0x70,\n\t0x31, 0x76, 0xfe, 0xbf, 0x18, 0xaf, 0x70, 0xaa, 0x19, 0xf8, 0xb0, 0x38, 0x4a, 0x4d, 0x73, 0xef,\n\t0x5d, 0x4e, 0xe4, 0x62, 0xec, 0x5c, 0xd1, 0x91, 0xa4, 0x50, 0xba, 0x9c, 0x2e, 0x7e, 0x07, 0xd5,\n\t0x52, 0x60, 0x22, 0x8e, 0x74, 0xf1, 0x1b, 0xb3, 0x63, 0x51, 0x8d, 0x52, 0xb3, 0x8b, 0xdf, 0x45,\n\t0xeb, 0x21, 0x08, 0xc1, 0x02, 0xd0, 0x15, 0x6c, 0x78, 0x37, 0x4c, 0xe0, 0xfa, 0xfd, 0x1c, 0xa6,\n\t0xd3, 0x7d, 0xfc, 0x08, 0x6d, 0x3e, 0x66, 0x42, 0x9e, 0x24, 0x7d, 0x26, 0xe1, 0x98, 0x87, 0x60,\n\t0x57, 0x74, 0xcd, 0xdf, 0x7b, 0xb9, 0xae, 0x51, 0x0c, 0xef, 0xb6, 0x51, 0xdf, 0x3c, 0xbc, 0xa4,\n\t0x44, 0x17, 0x94, 0xf1, 0x10, 0x61, 0x85, 0x1c, 0xa7, 0x2c, 0x12, 0x79, 0xa1, 0x94, 0x5f, 0xf5,\n\t0x3f, 0xfb, 0xb5, 0x8c, 0x1f, 0x3e, 0x5c, 0x52, 0xa3, 0x57, 0x38, 0x74, 0xc7, 0x16, 0xba, 0x73,\n\t0xed, 0x2d, 0x1f, 0x72, 0x21, 0xf1, 0x0f, 0x4b, 0x53, 0x43, 0x5e, 0x2e, 0x1f, 0xc5, 0xd6, 0x33,\n\t0x73, 0xd3, 0xe4, 0x54, 0x9f, 0x22, 0x73, 0x13, 0xf3, 0x23, 0xaa, 0x72, 0x09, 0xa1, 0xb0, 0xd7,\n\t0x3a, 0xe5, 0xad, 0xe6, 0xdd, 0xdd, 0x57, 0x6f, 0x67, 0xef, 0x7f, 0xc6, 0xa6, 0x7a, 0xa0, 0x04,\n\t0x69, 0xae, 0xdb, 0xfd, 0xbd, 0xf2, 0x2f, 0x07, 0x54, 0x83, 0x85, 0xdf, 0x46, 0xeb, 0x69, 0xbe,\n\t0xd4, 0xe7, 0xdb, 0xf0, 0x9a, 0xaa, 0x1b, 0x4c, 0x04, 0x9d, 0xee, 0x61, 0x82, 0x90, 0xe0, 0x41,\n\t0x04, 0xe9, 0x37, 0x2c, 0x04, 0x7b, 0x3d, 0x6f, 0x32, 0xf5, 0x12, 0x1c, 0x15, 0x28, 0x9d, 0x8b,\n\t0xc0, 0x7b, 0xe8, 0x16, 0x3c, 0x49, 0x78, 0xca, 0x74, 0xb3, 0x82, 0x1f, 0x47, 0x7d, 0x61, 0xd7,\n\t0x3b, 0xd6, 0x56, 0xd5, 0x7b, 0x63, 0x32, 0x76, 0x6e, 0xed, 0x2f, 0x6e, 0xd2, 0xe5, 0x78, 0x4c,\n\t0x50, 0x2d, 0x53, 0xbd, 0x28, 0xec, 0x6a, 0xa7, 0xbc, 0xd5, 0xf0, 0x6e, 0xab, 0x8e, 0x3e, 0xd1,\n\t0xc8, 0xc5, 0xd8, 0xa9, 0x7f, 0x0d, 0x23, 0xbd, 0xa0, 0x26, 0x0a, 0x7f, 0x80, 0xea, 0x99, 0x80,\n\t0x34, 0x52, 0x29, 0xe6, 0x73, 0x50, 0x14, 0xff, 0xc4, 0xe0, 0xb4, 0x88, 0xc0, 0x77, 0x50, 0x39,\n\t0xe3, 0x7d, 0x33, 0x07, 0x4d, 0x13, 0x58, 0x3e, 0x39, 0xf8, 0x82, 0x2a, 0x1c, 0x77, 0x51, 0x2d,\n\t0x48, 0xe3, 0x2c, 0x11, 0x76, 0x45, 0x9b, 0x23, 0x65, 0xfe, 0xa5, 0x46, 0xa8, 0xd9, 0xc1, 0x11,\n\t0xaa, 0xc2, 0x13, 0x99, 0x32, 0xbb, 0xa6, 0xef, 0xef, 0xe0, 0xf5, 0x9e, 0x3c, 0xb2, 0xaf, 0xb4,\n\t0xf6, 0x23, 0x99, 0x8e, 0x66, 0xd7, 0xa9, 0x31, 0x9a, 0xdb, 0xb4, 0x00, 0xa1, 0x59, 0x0c, 0xbe,\n\t0x89, 0xca, 0x03, 0x18, 0xe5, 0x6f, 0x0f, 0x55, 0x9f, 0xf8, 0x73, 0x54, 0x1d, 0xb2, 0xc7, 0x19,\n\t0x98, 0x27, 0xf8, 0xfd, 0x95, 0xf9, 0x68, 0xb5, 0xef, 0x14, 0x85, 0xe6, 0xcc, 0xdd, 0xb5, 0x1d,\n\t0xab, 0xfb, 0xa7, 0x85, 0x9c, 0x15, 0x0f, 0x27, 0xfe, 0x19, 0x21, 0x7f, 0xfa, 0x18, 0x09, 0xdb,\n\t0xd2, 0xe7, 0xdf, 0x7b, 0xf5, 0xf3, 0x17, 0x0f, 0xdb, 0xec, 0x37, 0xa6, 0x80, 0x04, 0x9d, 0xb3,\n\t0xc2, 0xdb, 0xa8, 0x39, 0x27, 0xad, 0x4f, 0xba, 0xe1, 0xdd, 0x98, 0x8c, 0x9d, 0xe6, 0x9c, 0x38,\n\t0x9d, 0x8f, 0xe9, 0x7e, 0x62, 0xca, 0xa6, 0x0f, 0x8a, 0x9d, 0xe9, 0xd0, 0x59, 0xfa, 0x5e, 0x1b,\n\t0x8b, 0x43, 0xb3, 0x5b, 0xff, 0xf5, 0x37, 0xa7, 0xf4, 0xf4, 0xaf, 0x4e, 0xc9, 0xdb, 0x3f, 0x3b,\n\t0x6f, 0x97, 0x9e, 0x9d, 0xb7, 0x4b, 0xcf, 0xcf, 0xdb, 0xa5, 0xa7, 0x93, 0xb6, 0x75, 0x36, 0x69,\n\t0x5b, 0xcf, 0x26, 0x6d, 0xeb, 0xf9, 0xa4, 0x6d, 0xfd, 0x3d, 0x69, 0x5b, 0xbf, 0xbc, 0x68, 0x97,\n\t0xbe, 0x77, 0x56, 0xfc, 0x77, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7b, 0xe7, 0x9b, 0x78, 0xf6,\n\t0x08, 0x00, 0x00,\n}\n\nfunc (m *CertificateSigningRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.SignerName != nil {\n\t\ti -= len(*m.SignerName)\n\t\tcopy(dAtA[i:], *m.SignerName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SignerName)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor iNdEx := len(m.Usages) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Usages[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Usages[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Usages[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Request != nil {\n\t\ti -= len(m.Request)\n\t\tcopy(dAtA[i:], m.Request)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Certificate != nil {\n\t\ti -= len(m.Certificate)\n\t\tcopy(dAtA[i:], m.Certificate)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Certificate)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CertificateSigningRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Request != nil {\n\t\tl = len(m.Request)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor _, s := range m.Usages {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.SignerName != nil {\n\t\tl = len(*m.SignerName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Certificate != nil {\n\t\tl = len(m.Certificate)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CertificateSigningRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CertificateSigningRequestSpec\", \"CertificateSigningRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CertificateSigningRequestStatus\", \"CertificateSigningRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequestCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CertificateSigningRequest{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequest\", \"CertificateSigningRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestSpec{`,\n\t\t`Request:` + valueToStringGenerated(this.Request) + `,`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Usages:` + fmt.Sprintf(\"%v\", this.Usages) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`SignerName:` + valueToStringGenerated(this.SignerName) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]CertificateSigningRequestCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequestCondition\", \"CertificateSigningRequestCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Certificate:` + valueToStringGenerated(this.Certificate) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = RequestConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CertificateSigningRequest{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = append(m.Request[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Request == nil {\n\t\t\t\tm.Request = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Usages\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Usages = append(m.Usages, KeyUsage(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SignerName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, CertificateSigningRequestCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Certificate\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Certificate = append(m.Certificate[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Certificate == nil {\n\t\t\t\tm.Certificate = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1beta1\";\n\n// Describes a certificate signing request\nmessage CertificateSigningRequest {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the certificate request, and is immutable after creation.\n  // Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n  // Other fields are derived by Kubernetes and cannot be modified by users.\n  optional CertificateSigningRequestSpec spec = 2;\n\n  // Derived information about the request.\n  // +optional\n  optional CertificateSigningRequestStatus status = 3;\n}\n\nmessage CertificateSigningRequestCondition {\n  // type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  // Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n  // Defaults to \"True\".\n  // If unset, should be treated as \"True\".\n  // +optional\n  optional string status = 6;\n\n  // brief reason for the request state\n  // +optional\n  optional string reason = 2;\n\n  // human readable message with details about the request state\n  // +optional\n  optional string message = 3;\n\n  // timestamp for the last update to this condition\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4;\n\n  // lastTransitionTime is the time the condition last transitioned from one status to another.\n  // If unset, when a new condition type is added or an existing condition's status is changed,\n  // the server defaults this to the current time.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 5;\n}\n\nmessage CertificateSigningRequestList {\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated CertificateSigningRequest items = 2;\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\nmessage CertificateSigningRequestSpec {\n  // Base64-encoded PKCS#10 CSR data\n  // +listType=atomic\n  optional bytes request = 1;\n\n  // Requested signer for the request. It is a qualified name in the form:\n  // `scope-hostname.io/name`.\n  // If empty, it will be defaulted:\n  //  1. If it's a kubelet client certificate, it is assigned\n  //     \"kubernetes.io/kube-apiserver-client-kubelet\".\n  //  2. If it's a kubelet serving certificate, it is assigned\n  //     \"kubernetes.io/kubelet-serving\".\n  //  3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\n  // Distribution of trust for signers happens out of band.\n  // You can select on this field using `spec.signerName`.\n  // +optional\n  optional string signerName = 7;\n\n  // expirationSeconds is the requested duration of validity of the issued\n  // certificate. The certificate signer may issue a certificate with a different\n  // validity duration so a client must check the delta between the notBefore and\n  // and notAfter fields in the issued certificate to determine the actual duration.\n  //\n  // The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n  // honor this field as long as the requested duration is not greater than the\n  // maximum duration they will honor per the --cluster-signing-duration CLI\n  // flag to the Kubernetes controller manager.\n  //\n  // Certificate signers may not honor this field for various reasons:\n  //\n  //   1. Old signer that is unaware of the field (such as the in-tree\n  //      implementations prior to v1.22)\n  //   2. Signer whose configured maximum is shorter than the requested duration\n  //   3. Signer whose configured minimum is longer than the requested duration\n  //\n  // The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n  //\n  // +optional\n  optional int32 expirationSeconds = 8;\n\n  // allowedUsages specifies a set of usage contexts the key will be\n  // valid for.\n  // See:\n  // \thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n  // \thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n  //\n  // Valid values are:\n  //  \"signing\",\n  //  \"digital signature\",\n  //  \"content commitment\",\n  //  \"key encipherment\",\n  //  \"key agreement\",\n  //  \"data encipherment\",\n  //  \"cert sign\",\n  //  \"crl sign\",\n  //  \"encipher only\",\n  //  \"decipher only\",\n  //  \"any\",\n  //  \"server auth\",\n  //  \"client auth\",\n  //  \"code signing\",\n  //  \"email protection\",\n  //  \"s/mime\",\n  //  \"ipsec end system\",\n  //  \"ipsec tunnel\",\n  //  \"ipsec user\",\n  //  \"timestamping\",\n  //  \"ocsp signing\",\n  //  \"microsoft sgc\",\n  //  \"netscape sgc\"\n  // +listType=atomic\n  repeated string usages = 5;\n\n  // Information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  optional string username = 2;\n\n  // UID information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  optional string uid = 3;\n\n  // Group information about the requesting user.\n  // See user.Info interface for details.\n  // +listType=atomic\n  // +optional\n  repeated string groups = 4;\n\n  // Extra information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  map<string, ExtraValue> extra = 6;\n}\n\nmessage CertificateSigningRequestStatus {\n  // Conditions applied to the request, such as approval or denial.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated CertificateSigningRequestCondition conditions = 1;\n\n  // If request was approved, the controller will place the issued certificate here.\n  // +listType=atomic\n  // +optional\n  optional bytes certificate = 2;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CertificateSigningRequest{},\n\t\t&CertificateSigningRequestList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=certificates.k8s.io,v1,CertificateSigningRequest\n\n// Describes a certificate signing request\ntype CertificateSigningRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the certificate request, and is immutable after creation.\n\t// Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n\t// Other fields are derived by Kubernetes and cannot be modified by users.\n\tSpec CertificateSigningRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Derived information about the request.\n\t// +optional\n\tStatus CertificateSigningRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\ntype CertificateSigningRequestSpec struct {\n\t// Base64-encoded PKCS#10 CSR data\n\t// +listType=atomic\n\tRequest []byte `json:\"request\" protobuf:\"bytes,1,opt,name=request\"`\n\n\t// Requested signer for the request. It is a qualified name in the form:\n\t// `scope-hostname.io/name`.\n\t// If empty, it will be defaulted:\n\t//  1. If it's a kubelet client certificate, it is assigned\n\t//     \"kubernetes.io/kube-apiserver-client-kubelet\".\n\t//  2. If it's a kubelet serving certificate, it is assigned\n\t//     \"kubernetes.io/kubelet-serving\".\n\t//  3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\n\t// Distribution of trust for signers happens out of band.\n\t// You can select on this field using `spec.signerName`.\n\t// +optional\n\tSignerName *string `json:\"signerName,omitempty\" protobuf:\"bytes,7,opt,name=signerName\"`\n\n\t// expirationSeconds is the requested duration of validity of the issued\n\t// certificate. The certificate signer may issue a certificate with a different\n\t// validity duration so a client must check the delta between the notBefore and\n\t// and notAfter fields in the issued certificate to determine the actual duration.\n\t//\n\t// The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n\t// honor this field as long as the requested duration is not greater than the\n\t// maximum duration they will honor per the --cluster-signing-duration CLI\n\t// flag to the Kubernetes controller manager.\n\t//\n\t// Certificate signers may not honor this field for various reasons:\n\t//\n\t//   1. Old signer that is unaware of the field (such as the in-tree\n\t//      implementations prior to v1.22)\n\t//   2. Signer whose configured maximum is shorter than the requested duration\n\t//   3. Signer whose configured minimum is longer than the requested duration\n\t//\n\t// The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n\t//\n\t// +optional\n\tExpirationSeconds *int32 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,8,opt,name=expirationSeconds\"`\n\n\t// allowedUsages specifies a set of usage contexts the key will be\n\t// valid for.\n\t// See:\n\t//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n\t//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n\t//\n\t// Valid values are:\n\t//  \"signing\",\n\t//  \"digital signature\",\n\t//  \"content commitment\",\n\t//  \"key encipherment\",\n\t//  \"key agreement\",\n\t//  \"data encipherment\",\n\t//  \"cert sign\",\n\t//  \"crl sign\",\n\t//  \"encipher only\",\n\t//  \"decipher only\",\n\t//  \"any\",\n\t//  \"server auth\",\n\t//  \"client auth\",\n\t//  \"code signing\",\n\t//  \"email protection\",\n\t//  \"s/mime\",\n\t//  \"ipsec end system\",\n\t//  \"ipsec tunnel\",\n\t//  \"ipsec user\",\n\t//  \"timestamping\",\n\t//  \"ocsp signing\",\n\t//  \"microsoft sgc\",\n\t//  \"netscape sgc\"\n\t// +listType=atomic\n\tUsages []KeyUsage `json:\"usages,omitempty\" protobuf:\"bytes,5,opt,name=usages\"`\n\n\t// Information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,2,opt,name=username\"`\n\t// UID information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\t// Group information about the requesting user.\n\t// See user.Info interface for details.\n\t// +listType=atomic\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// Extra information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,6,rep,name=extra\"`\n}\n\n// Built in signerName values that are honoured by kube-controller-manager.\n// None of these usages are related to ServiceAccount token secrets\n// `.data[ca.crt]` in any way.\nconst (\n\t// Signs certificates that will be honored as client-certs by the\n\t// kube-apiserver. Never auto-approved by kube-controller-manager.\n\tKubeAPIServerClientSignerName = \"kubernetes.io/kube-apiserver-client\"\n\n\t// Signs client certificates that will be honored as client-certs by the\n\t// kube-apiserver for a kubelet.\n\t// May be auto-approved by kube-controller-manager.\n\tKubeAPIServerClientKubeletSignerName = \"kubernetes.io/kube-apiserver-client-kubelet\"\n\n\t// Signs serving certificates that are honored as a valid kubelet serving\n\t// certificate by the kube-apiserver, but has no other guarantees.\n\tKubeletServingSignerName = \"kubernetes.io/kubelet-serving\"\n\n\t// Has no guarantees for trust at all. Some distributions may honor these\n\t// as client certs, but that behavior is not standard kubernetes behavior.\n\tLegacyUnknownSignerName = \"kubernetes.io/legacy-unknown\"\n)\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\ntype CertificateSigningRequestStatus struct {\n\t// Conditions applied to the request, such as approval or denial.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []CertificateSigningRequestCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// If request was approved, the controller will place the issued certificate here.\n\t// +listType=atomic\n\t// +optional\n\tCertificate []byte `json:\"certificate,omitempty\" protobuf:\"bytes,2,opt,name=certificate\"`\n}\n\ntype RequestConditionType string\n\n// These are the possible conditions for a certificate request.\nconst (\n\tCertificateApproved RequestConditionType = \"Approved\"\n\tCertificateDenied   RequestConditionType = \"Denied\"\n\tCertificateFailed   RequestConditionType = \"Failed\"\n)\n\ntype CertificateSigningRequestCondition struct {\n\t// type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".\n\tType RequestConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=RequestConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\t// Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n\t// Defaults to \"True\".\n\t// If unset, should be treated as \"True\".\n\t// +optional\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,6,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// brief reason for the request state\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// human readable message with details about the request state\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// timestamp for the last update to this condition\n\t// +optional\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,4,opt,name=lastUpdateTime\"`\n\t// lastTransitionTime is the time the condition last transitioned from one status to another.\n\t// If unset, when a new condition type is added or an existing condition's status is changed,\n\t// the server defaults this to the current time.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,5,opt,name=lastTransitionTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=certificates.k8s.io,v1,CertificateSigningRequestList\n\ntype CertificateSigningRequestList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\tItems []CertificateSigningRequest `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// KeyUsages specifies valid usage contexts for keys.\n// See:\n//\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\ntype KeyUsage string\n\nconst (\n\tUsageSigning           KeyUsage = \"signing\"\n\tUsageDigitalSignature  KeyUsage = \"digital signature\"\n\tUsageContentCommitment KeyUsage = \"content commitment\"\n\tUsageKeyEncipherment   KeyUsage = \"key encipherment\"\n\tUsageKeyAgreement      KeyUsage = \"key agreement\"\n\tUsageDataEncipherment  KeyUsage = \"data encipherment\"\n\tUsageCertSign          KeyUsage = \"cert sign\"\n\tUsageCRLSign           KeyUsage = \"crl sign\"\n\tUsageEncipherOnly      KeyUsage = \"encipher only\"\n\tUsageDecipherOnly      KeyUsage = \"decipher only\"\n\tUsageAny               KeyUsage = \"any\"\n\tUsageServerAuth        KeyUsage = \"server auth\"\n\tUsageClientAuth        KeyUsage = \"client auth\"\n\tUsageCodeSigning       KeyUsage = \"code signing\"\n\tUsageEmailProtection   KeyUsage = \"email protection\"\n\tUsageSMIME             KeyUsage = \"s/mime\"\n\tUsageIPsecEndSystem    KeyUsage = \"ipsec end system\"\n\tUsageIPsecTunnel       KeyUsage = \"ipsec tunnel\"\n\tUsageIPsecUser         KeyUsage = \"ipsec user\"\n\tUsageTimestamping      KeyUsage = \"timestamping\"\n\tUsageOCSPSigning       KeyUsage = \"ocsp signing\"\n\tUsageMicrosoftSGC      KeyUsage = \"microsoft sgc\"\n\tUsageNetscapeSGC       KeyUsage = \"netscape sgc\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CertificateSigningRequest = map[string]string{\n\t\"\":       \"Describes a certificate signing request\",\n\t\"spec\":   \"spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.\",\n\t\"status\": \"Derived information about the request.\",\n}\n\nfunc (CertificateSigningRequest) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequest\n}\n\nvar map_CertificateSigningRequestCondition = map[string]string{\n\t\"type\":               \"type of the condition. Known conditions include \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \\\"False\\\" or \\\"Unknown\\\". Defaults to \\\"True\\\". If unset, should be treated as \\\"True\\\".\",\n\t\"reason\":             \"brief reason for the request state\",\n\t\"message\":            \"human readable message with details about the request state\",\n\t\"lastUpdateTime\":     \"timestamp for the last update to this condition\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.\",\n}\n\nfunc (CertificateSigningRequestCondition) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestCondition\n}\n\nvar map_CertificateSigningRequestSpec = map[string]string{\n\t\"\":                  \"CertificateSigningRequestSpec contains the certificate request.\",\n\t\"request\":           \"Base64-encoded PKCS#10 CSR data\",\n\t\"signerName\":        \"Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\\n 1. If it's a kubelet client certificate, it is assigned\\n    \\\"kubernetes.io/kube-apiserver-client-kubelet\\\".\\n 2. If it's a kubelet serving certificate, it is assigned\\n    \\\"kubernetes.io/kubelet-serving\\\".\\n 3. Otherwise, it is assigned \\\"kubernetes.io/legacy-unknown\\\".\\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\\n\\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\\n\\nCertificate signers may not honor this field for various reasons:\\n\\n  1. Old signer that is unaware of the field (such as the in-tree\\n     implementations prior to v1.22)\\n  2. Signer whose configured maximum is shorter than the requested duration\\n  3. Signer whose configured minimum is longer than the requested duration\\n\\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\",\n\t\"usages\":            \"allowedUsages specifies a set of usage contexts the key will be valid for. See:\\n\\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\\n\\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\\n\\nValid values are:\\n \\\"signing\\\",\\n \\\"digital signature\\\",\\n \\\"content commitment\\\",\\n \\\"key encipherment\\\",\\n \\\"key agreement\\\",\\n \\\"data encipherment\\\",\\n \\\"cert sign\\\",\\n \\\"crl sign\\\",\\n \\\"encipher only\\\",\\n \\\"decipher only\\\",\\n \\\"any\\\",\\n \\\"server auth\\\",\\n \\\"client auth\\\",\\n \\\"code signing\\\",\\n \\\"email protection\\\",\\n \\\"s/mime\\\",\\n \\\"ipsec end system\\\",\\n \\\"ipsec tunnel\\\",\\n \\\"ipsec user\\\",\\n \\\"timestamping\\\",\\n \\\"ocsp signing\\\",\\n \\\"microsoft sgc\\\",\\n \\\"netscape sgc\\\"\",\n\t\"username\":          \"Information about the requesting user. See user.Info interface for details.\",\n\t\"uid\":               \"UID information about the requesting user. See user.Info interface for details.\",\n\t\"groups\":            \"Group information about the requesting user. See user.Info interface for details.\",\n\t\"extra\":             \"Extra information about the requesting user. See user.Info interface for details.\",\n}\n\nfunc (CertificateSigningRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestSpec\n}\n\nvar map_CertificateSigningRequestStatus = map[string]string{\n\t\"conditions\":  \"Conditions applied to the request, such as approval or denial.\",\n\t\"certificate\": \"If request was approved, the controller will place the issued certificate here.\",\n}\n\nfunc (CertificateSigningRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequest.\nfunc (in *CertificateSigningRequest) DeepCopy() *CertificateSigningRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestCondition) DeepCopyInto(out *CertificateSigningRequestCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestCondition.\nfunc (in *CertificateSigningRequestCondition) DeepCopy() *CertificateSigningRequestCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestList) DeepCopyInto(out *CertificateSigningRequestList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CertificateSigningRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestList.\nfunc (in *CertificateSigningRequestList) DeepCopy() *CertificateSigningRequestList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequestList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestSpec) DeepCopyInto(out *CertificateSigningRequestSpec) {\n\t*out = *in\n\tif in.Request != nil {\n\t\tin, out := &in.Request, &out.Request\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SignerName != nil {\n\t\tin, out := &in.SignerName, &out.SignerName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Usages != nil {\n\t\tin, out := &in.Usages, &out.Usages\n\t\t*out = make([]KeyUsage, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestSpec.\nfunc (in *CertificateSigningRequestSpec) DeepCopy() *CertificateSigningRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestStatus) DeepCopyInto(out *CertificateSigningRequestStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]CertificateSigningRequestCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Certificate != nil {\n\t\tin, out := &in.Certificate, &out.Certificate\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestStatus.\nfunc (in *CertificateSigningRequestStatus) DeepCopy() *CertificateSigningRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequest) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CertificateSigningRequest) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CertificateSigningRequest) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"certificates.k8s.io\", Version: \"v1\", Kind: \"CertificateSigningRequest\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CertificateSigningRequest) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequestList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CertificateSigningRequestList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CertificateSigningRequestList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"certificates.k8s.io\", Version: \"v1\", Kind: \"CertificateSigningRequestList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CertificateSigningRequestList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=coordination.k8s.io\n\npackage v1 // import \"k8s.io/api/coordination/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Lease) Reset()      { *m = Lease{} }\nfunc (*Lease) ProtoMessage() {}\nfunc (*Lease) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_929e1148ad9baca3, []int{0}\n}\nfunc (m *Lease) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lease) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lease.Merge(m, src)\n}\nfunc (m *Lease) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lease) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lease.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lease proto.InternalMessageInfo\n\nfunc (m *LeaseList) Reset()      { *m = LeaseList{} }\nfunc (*LeaseList) ProtoMessage() {}\nfunc (*LeaseList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_929e1148ad9baca3, []int{1}\n}\nfunc (m *LeaseList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseList.Merge(m, src)\n}\nfunc (m *LeaseList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseList proto.InternalMessageInfo\n\nfunc (m *LeaseSpec) Reset()      { *m = LeaseSpec{} }\nfunc (*LeaseSpec) ProtoMessage() {}\nfunc (*LeaseSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_929e1148ad9baca3, []int{2}\n}\nfunc (m *LeaseSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseSpec.Merge(m, src)\n}\nfunc (m *LeaseSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Lease)(nil), \"k8s.io.api.coordination.v1.Lease\")\n\tproto.RegisterType((*LeaseList)(nil), \"k8s.io.api.coordination.v1.LeaseList\")\n\tproto.RegisterType((*LeaseSpec)(nil), \"k8s.io.api.coordination.v1.LeaseSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1/generated.proto\", fileDescriptor_929e1148ad9baca3)\n}\n\nvar fileDescriptor_929e1148ad9baca3 = []byte{\n\t// 539 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xcf, 0x6e, 0xd3, 0x4c,\n\t0x14, 0xc5, 0xe3, 0x36, 0x91, 0x9a, 0xc9, 0xd7, 0x7e, 0x91, 0x95, 0x85, 0x95, 0x85, 0x5d, 0x22,\n\t0x21, 0x75, 0xc3, 0x0c, 0xa9, 0x10, 0x42, 0xac, 0x8a, 0x41, 0x40, 0xa5, 0x54, 0x48, 0x6e, 0x57,\n\t0xa8, 0x0b, 0x26, 0xf6, 0xc5, 0x19, 0x52, 0x7b, 0xcc, 0xcc, 0x38, 0xa8, 0x3b, 0x1e, 0x81, 0x2d,\n\t0x8f, 0x01, 0x4f, 0x91, 0x65, 0x97, 0x5d, 0x59, 0xc4, 0xbc, 0x08, 0x9a, 0x49, 0xda, 0x84, 0xfc,\n\t0x51, 0x2b, 0x76, 0x9e, 0x7b, 0xef, 0xf9, 0xdd, 0x73, 0xcf, 0xc2, 0xe8, 0xe5, 0xf0, 0x99, 0xc4,\n\t0x8c, 0x93, 0x61, 0xde, 0x07, 0x91, 0x82, 0x02, 0x49, 0x46, 0x90, 0x46, 0x5c, 0x90, 0x59, 0x83,\n\t0x66, 0x8c, 0x84, 0x9c, 0x8b, 0x88, 0xa5, 0x54, 0x31, 0x9e, 0x92, 0x51, 0x97, 0xc4, 0x90, 0x82,\n\t0xa0, 0x0a, 0x22, 0x9c, 0x09, 0xae, 0xb8, 0xdd, 0x9e, 0xce, 0x62, 0x9a, 0x31, 0xbc, 0x38, 0x8b,\n\t0x47, 0xdd, 0xf6, 0xa3, 0x98, 0xa9, 0x41, 0xde, 0xc7, 0x21, 0x4f, 0x48, 0xcc, 0x63, 0x4e, 0x8c,\n\t0xa4, 0x9f, 0x7f, 0x34, 0x2f, 0xf3, 0x30, 0x5f, 0x53, 0x54, 0xfb, 0xc9, 0x7c, 0x6d, 0x42, 0xc3,\n\t0x01, 0x4b, 0x41, 0x5c, 0x92, 0x6c, 0x18, 0xeb, 0x82, 0x24, 0x09, 0x28, 0xba, 0xc6, 0x40, 0x9b,\n\t0x6c, 0x52, 0x89, 0x3c, 0x55, 0x2c, 0x81, 0x15, 0xc1, 0xd3, 0xbb, 0x04, 0x32, 0x1c, 0x40, 0x42,\n\t0x97, 0x75, 0x9d, 0x9f, 0x16, 0xaa, 0xf5, 0x80, 0x4a, 0xb0, 0x3f, 0xa0, 0x1d, 0xed, 0x26, 0xa2,\n\t0x8a, 0x3a, 0xd6, 0xbe, 0x75, 0xd0, 0x38, 0x7c, 0x8c, 0xe7, 0x31, 0xdc, 0x42, 0x71, 0x36, 0x8c,\n\t0x75, 0x41, 0x62, 0x3d, 0x8d, 0x47, 0x5d, 0xfc, 0xae, 0xff, 0x09, 0x42, 0x75, 0x02, 0x8a, 0xfa,\n\t0xf6, 0xb8, 0xf0, 0x2a, 0x65, 0xe1, 0xa1, 0x79, 0x2d, 0xb8, 0xa5, 0xda, 0x6f, 0x50, 0x55, 0x66,\n\t0x10, 0x3a, 0x5b, 0x86, 0xfe, 0x10, 0x6f, 0x0e, 0x19, 0x1b, 0x4b, 0xa7, 0x19, 0x84, 0xfe, 0x7f,\n\t0x33, 0x64, 0x55, 0xbf, 0x02, 0x03, 0xe8, 0xfc, 0xb0, 0x50, 0xdd, 0x4c, 0xf4, 0x98, 0x54, 0xf6,\n\t0xf9, 0x8a, 0x71, 0x7c, 0x3f, 0xe3, 0x5a, 0x6d, 0x6c, 0x37, 0x67, 0x3b, 0x76, 0x6e, 0x2a, 0x0b,\n\t0xa6, 0x5f, 0xa3, 0x1a, 0x53, 0x90, 0x48, 0x67, 0x6b, 0x7f, 0xfb, 0xa0, 0x71, 0xf8, 0xe0, 0x4e,\n\t0xd7, 0xfe, 0xee, 0x8c, 0x56, 0x3b, 0xd6, 0xba, 0x60, 0x2a, 0xef, 0x7c, 0xdf, 0x9e, 0x79, 0xd6,\n\t0x77, 0xd8, 0xcf, 0xd1, 0xde, 0x80, 0x5f, 0x44, 0x20, 0x8e, 0x23, 0x48, 0x15, 0x53, 0x97, 0xc6,\n\t0x79, 0xdd, 0xb7, 0xcb, 0xc2, 0xdb, 0x7b, 0xfb, 0x57, 0x27, 0x58, 0x9a, 0xb4, 0x7b, 0xa8, 0x75,\n\t0xa1, 0x41, 0xaf, 0x72, 0x61, 0x36, 0x9f, 0x42, 0xc8, 0xd3, 0x48, 0x9a, 0x58, 0x6b, 0xbe, 0x53,\n\t0x16, 0x5e, 0xab, 0xb7, 0xa6, 0x1f, 0xac, 0x55, 0xd9, 0x7d, 0xd4, 0xa0, 0xe1, 0xe7, 0x9c, 0x09,\n\t0x38, 0x63, 0x09, 0x38, 0xdb, 0x26, 0x40, 0x72, 0xbf, 0x00, 0x4f, 0x58, 0x28, 0xb8, 0x96, 0xf9,\n\t0xff, 0x97, 0x85, 0xd7, 0x78, 0x31, 0xe7, 0x04, 0x8b, 0x50, 0xfb, 0x1c, 0xd5, 0x05, 0xa4, 0xf0,\n\t0xc5, 0x6c, 0xa8, 0xfe, 0xdb, 0x86, 0xdd, 0xb2, 0xf0, 0xea, 0xc1, 0x0d, 0x25, 0x98, 0x03, 0xed,\n\t0x23, 0xd4, 0x34, 0x97, 0x9d, 0x09, 0x9a, 0x4a, 0xa6, 0x6f, 0x93, 0x4e, 0xcd, 0x64, 0xd1, 0x2a,\n\t0x0b, 0xaf, 0xd9, 0x5b, 0xea, 0x05, 0x2b, 0xd3, 0xfe, 0xd1, 0x78, 0xe2, 0x56, 0xae, 0x26, 0x6e,\n\t0xe5, 0x7a, 0xe2, 0x56, 0xbe, 0x96, 0xae, 0x35, 0x2e, 0x5d, 0xeb, 0xaa, 0x74, 0xad, 0xeb, 0xd2,\n\t0xb5, 0x7e, 0x95, 0xae, 0xf5, 0xed, 0xb7, 0x5b, 0x79, 0xdf, 0xde, 0xfc, 0x03, 0xf9, 0x13, 0x00,\n\t0x00, 0xff, 0xff, 0xef, 0xe4, 0x75, 0x3b, 0x76, 0x04, 0x00, 0x00,\n}\n\nfunc (m *Lease) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lease) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lease) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LeaseTransitions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseTransitions))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RenewTime != nil {\n\t\t{\n\t\t\tsize, err := m.RenewTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AcquireTime != nil {\n\t\t{\n\t\t\tsize, err := m.AcquireTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseDurationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.HolderIdentity != nil {\n\t\ti -= len(*m.HolderIdentity)\n\t\tcopy(dAtA[i:], *m.HolderIdentity)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.HolderIdentity)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Lease) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LeaseList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LeaseSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HolderIdentity != nil {\n\t\tl = len(*m.HolderIdentity)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseDurationSeconds))\n\t}\n\tif m.AcquireTime != nil {\n\t\tl = m.AcquireTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RenewTime != nil {\n\t\tl = m.RenewTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseTransitions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseTransitions))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Lease) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lease{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LeaseSpec\", \"LeaseSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Lease{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Lease\", \"Lease\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LeaseList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseSpec{`,\n\t\t`HolderIdentity:` + valueToStringGenerated(this.HolderIdentity) + `,`,\n\t\t`LeaseDurationSeconds:` + valueToStringGenerated(this.LeaseDurationSeconds) + `,`,\n\t\t`AcquireTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.AcquireTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`RenewTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.RenewTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`LeaseTransitions:` + valueToStringGenerated(this.LeaseTransitions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Lease) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Lease{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HolderIdentity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.HolderIdentity = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseDurationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseDurationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcquireTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AcquireTime == nil {\n\t\t\t\tm.AcquireTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.AcquireTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RenewTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RenewTime == nil {\n\t\t\t\tm.RenewTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseTransitions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseTransitions = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.coordination.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/coordination/v1\";\n\n// Lease defines a lease concept.\nmessage Lease {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the specification of the Lease.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LeaseSpec spec = 2;\n}\n\n// LeaseList is a list of Lease objects.\nmessage LeaseList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Lease items = 2;\n}\n\n// LeaseSpec is a specification of a Lease.\nmessage LeaseSpec {\n  // holderIdentity contains the identity of the holder of a current lease.\n  // +optional\n  optional string holderIdentity = 1;\n\n  // leaseDurationSeconds is a duration that candidates for a lease need\n  // to wait to force acquire it. This is measure against time of last\n  // observed renewTime.\n  // +optional\n  optional int32 leaseDurationSeconds = 2;\n\n  // acquireTime is a time when the current lease was acquired.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3;\n\n  // renewTime is a time when the current holder of a lease has last\n  // updated the lease.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4;\n\n  // leaseTransitions is the number of transitions of a lease between\n  // holders.\n  // +optional\n  optional int32 leaseTransitions = 5;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"coordination.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Lease{},\n\t\t&LeaseList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Lease defines a lease concept.\ntype Lease struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the specification of the Lease.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LeaseSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// LeaseSpec is a specification of a Lease.\ntype LeaseSpec struct {\n\t// holderIdentity contains the identity of the holder of a current lease.\n\t// +optional\n\tHolderIdentity *string `json:\"holderIdentity,omitempty\" protobuf:\"bytes,1,opt,name=holderIdentity\"`\n\t// leaseDurationSeconds is a duration that candidates for a lease need\n\t// to wait to force acquire it. This is measure against time of last\n\t// observed renewTime.\n\t// +optional\n\tLeaseDurationSeconds *int32 `json:\"leaseDurationSeconds,omitempty\" protobuf:\"varint,2,opt,name=leaseDurationSeconds\"`\n\t// acquireTime is a time when the current lease was acquired.\n\t// +optional\n\tAcquireTime *metav1.MicroTime `json:\"acquireTime,omitempty\" protobuf:\"bytes,3,opt,name=acquireTime\"`\n\t// renewTime is a time when the current holder of a lease has last\n\t// updated the lease.\n\t// +optional\n\tRenewTime *metav1.MicroTime `json:\"renewTime,omitempty\" protobuf:\"bytes,4,opt,name=renewTime\"`\n\t// leaseTransitions is the number of transitions of a lease between\n\t// holders.\n\t// +optional\n\tLeaseTransitions *int32 `json:\"leaseTransitions,omitempty\" protobuf:\"varint,5,opt,name=leaseTransitions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// LeaseList is a list of Lease objects.\ntype LeaseList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Lease `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Lease = map[string]string{\n\t\"\":         \"Lease defines a lease concept.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Lease) SwaggerDoc() map[string]string {\n\treturn map_Lease\n}\n\nvar map_LeaseList = map[string]string{\n\t\"\":         \"LeaseList is a list of Lease objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (LeaseList) SwaggerDoc() map[string]string {\n\treturn map_LeaseList\n}\n\nvar map_LeaseSpec = map[string]string{\n\t\"\":                     \"LeaseSpec is a specification of a Lease.\",\n\t\"holderIdentity\":       \"holderIdentity contains the identity of the holder of a current lease.\",\n\t\"leaseDurationSeconds\": \"leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.\",\n\t\"acquireTime\":          \"acquireTime is a time when the current lease was acquired.\",\n\t\"renewTime\":            \"renewTime is a time when the current holder of a lease has last updated the lease.\",\n\t\"leaseTransitions\":     \"leaseTransitions is the number of transitions of a lease between holders.\",\n}\n\nfunc (LeaseSpec) SwaggerDoc() map[string]string {\n\treturn map_LeaseSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lease) DeepCopyInto(out *Lease) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lease.\nfunc (in *Lease) DeepCopy() *Lease {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lease)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Lease) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseList) DeepCopyInto(out *LeaseList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Lease, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseList.\nfunc (in *LeaseList) DeepCopy() *LeaseList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseSpec) DeepCopyInto(out *LeaseSpec) {\n\t*out = *in\n\tif in.HolderIdentity != nil {\n\t\tin, out := &in.HolderIdentity, &out.HolderIdentity\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.LeaseDurationSeconds != nil {\n\t\tin, out := &in.LeaseDurationSeconds, &out.LeaseDurationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AcquireTime != nil {\n\t\tin, out := &in.AcquireTime, &out.AcquireTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.RenewTime != nil {\n\t\tin, out := &in.RenewTime, &out.RenewTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LeaseTransitions != nil {\n\t\tin, out := &in.LeaseTransitions, &out.LeaseTransitions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseSpec.\nfunc (in *LeaseSpec) DeepCopy() *LeaseSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=coordination.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/coordination/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Lease) Reset()      { *m = Lease{} }\nfunc (*Lease) ProtoMessage() {}\nfunc (*Lease) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_daca6bcd2ff63a80, []int{0}\n}\nfunc (m *Lease) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lease) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lease.Merge(m, src)\n}\nfunc (m *Lease) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lease) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lease.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lease proto.InternalMessageInfo\n\nfunc (m *LeaseList) Reset()      { *m = LeaseList{} }\nfunc (*LeaseList) ProtoMessage() {}\nfunc (*LeaseList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_daca6bcd2ff63a80, []int{1}\n}\nfunc (m *LeaseList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseList.Merge(m, src)\n}\nfunc (m *LeaseList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseList proto.InternalMessageInfo\n\nfunc (m *LeaseSpec) Reset()      { *m = LeaseSpec{} }\nfunc (*LeaseSpec) ProtoMessage() {}\nfunc (*LeaseSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_daca6bcd2ff63a80, []int{2}\n}\nfunc (m *LeaseSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseSpec.Merge(m, src)\n}\nfunc (m *LeaseSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Lease)(nil), \"k8s.io.api.coordination.v1beta1.Lease\")\n\tproto.RegisterType((*LeaseList)(nil), \"k8s.io.api.coordination.v1beta1.LeaseList\")\n\tproto.RegisterType((*LeaseSpec)(nil), \"k8s.io.api.coordination.v1beta1.LeaseSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1beta1/generated.proto\", fileDescriptor_daca6bcd2ff63a80)\n}\n\nvar fileDescriptor_daca6bcd2ff63a80 = []byte{\n\t// 543 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xc1, 0x6e, 0xd3, 0x4e,\n\t0x10, 0xc6, 0xe3, 0xb6, 0x91, 0x9a, 0xcd, 0xbf, 0xfd, 0x47, 0x56, 0x0e, 0x56, 0x0e, 0x76, 0x95,\n\t0x03, 0xaa, 0x90, 0xd8, 0x25, 0x15, 0x42, 0x88, 0x13, 0x58, 0x20, 0xb5, 0xc2, 0x15, 0x92, 0xdb,\n\t0x13, 0xea, 0x81, 0xb5, 0x3d, 0x38, 0x4b, 0x6a, 0xaf, 0xd9, 0x5d, 0x07, 0xf5, 0xc6, 0x23, 0x70,\n\t0xe5, 0x45, 0xe0, 0x15, 0x72, 0xec, 0xb1, 0x27, 0x8b, 0x98, 0x17, 0x41, 0xde, 0xb8, 0x4d, 0x48,\n\t0x8a, 0x12, 0x71, 0xf3, 0xce, 0xcc, 0xf7, 0x9b, 0x6f, 0xbe, 0x83, 0xd1, 0xf1, 0xe8, 0x99, 0xc4,\n\t0x8c, 0x93, 0x51, 0x1e, 0x80, 0x48, 0x41, 0x81, 0x24, 0x63, 0x48, 0x23, 0x2e, 0x48, 0xdd, 0xa0,\n\t0x19, 0x23, 0x21, 0xe7, 0x22, 0x62, 0x29, 0x55, 0x8c, 0xa7, 0x64, 0x3c, 0x08, 0x40, 0xd1, 0x01,\n\t0x89, 0x21, 0x05, 0x41, 0x15, 0x44, 0x38, 0x13, 0x5c, 0x71, 0xd3, 0x99, 0x09, 0x30, 0xcd, 0x18,\n\t0x5e, 0x14, 0xe0, 0x5a, 0xd0, 0x7b, 0x14, 0x33, 0x35, 0xcc, 0x03, 0x1c, 0xf2, 0x84, 0xc4, 0x3c,\n\t0xe6, 0x44, 0xeb, 0x82, 0xfc, 0x83, 0x7e, 0xe9, 0x87, 0xfe, 0x9a, 0xf1, 0x7a, 0x4f, 0xe6, 0x06,\n\t0x12, 0x1a, 0x0e, 0x59, 0x0a, 0xe2, 0x8a, 0x64, 0xa3, 0xb8, 0x2a, 0x48, 0x92, 0x80, 0xa2, 0x64,\n\t0xbc, 0xe2, 0xa2, 0x47, 0xfe, 0xa6, 0x12, 0x79, 0xaa, 0x58, 0x02, 0x2b, 0x82, 0xa7, 0xeb, 0x04,\n\t0x32, 0x1c, 0x42, 0x42, 0x97, 0x75, 0xfd, 0x1f, 0x06, 0x6a, 0x7a, 0x40, 0x25, 0x98, 0xef, 0xd1,\n\t0x6e, 0xe5, 0x26, 0xa2, 0x8a, 0x5a, 0xc6, 0x81, 0x71, 0xd8, 0x3e, 0x7a, 0x8c, 0xe7, 0x59, 0xdc,\n\t0x41, 0x71, 0x36, 0x8a, 0xab, 0x82, 0xc4, 0xd5, 0x34, 0x1e, 0x0f, 0xf0, 0xdb, 0xe0, 0x23, 0x84,\n\t0xea, 0x14, 0x14, 0x75, 0xcd, 0x49, 0xe1, 0x34, 0xca, 0xc2, 0x41, 0xf3, 0x9a, 0x7f, 0x47, 0x35,\n\t0x3d, 0xb4, 0x23, 0x33, 0x08, 0xad, 0x2d, 0x4d, 0x7f, 0x88, 0xd7, 0x24, 0x8d, 0xb5, 0xaf, 0xb3,\n\t0x0c, 0x42, 0xf7, 0xbf, 0x9a, 0xbb, 0x53, 0xbd, 0x7c, 0x4d, 0xe9, 0x7f, 0x37, 0x50, 0x4b, 0x4f,\n\t0x78, 0x4c, 0x2a, 0xf3, 0x62, 0xc5, 0x3d, 0xde, 0xcc, 0x7d, 0xa5, 0xd6, 0xde, 0x3b, 0xf5, 0x8e,\n\t0xdd, 0xdb, 0xca, 0x82, 0xf3, 0x37, 0xa8, 0xc9, 0x14, 0x24, 0xd2, 0xda, 0x3a, 0xd8, 0x3e, 0x6c,\n\t0x1f, 0x3d, 0xd8, 0xcc, 0xba, 0xbb, 0x57, 0x23, 0x9b, 0x27, 0x95, 0xd8, 0x9f, 0x31, 0xfa, 0xdf,\n\t0xb6, 0x6b, 0xe3, 0xd5, 0x31, 0xe6, 0x73, 0xb4, 0x3f, 0xe4, 0x97, 0x11, 0x88, 0x93, 0x08, 0x52,\n\t0xc5, 0xd4, 0x95, 0xb6, 0xdf, 0x72, 0xcd, 0xb2, 0x70, 0xf6, 0x8f, 0xff, 0xe8, 0xf8, 0x4b, 0x93,\n\t0xa6, 0x87, 0xba, 0x97, 0x15, 0xe8, 0x55, 0x2e, 0xf4, 0xfa, 0x33, 0x08, 0x79, 0x1a, 0x49, 0x1d,\n\t0x70, 0xd3, 0xb5, 0xca, 0xc2, 0xe9, 0x7a, 0xf7, 0xf4, 0xfd, 0x7b, 0x55, 0x66, 0x80, 0xda, 0x34,\n\t0xfc, 0x94, 0x33, 0x01, 0xe7, 0x2c, 0x01, 0x6b, 0x5b, 0xa7, 0x48, 0x36, 0x4b, 0xf1, 0x94, 0x85,\n\t0x82, 0x57, 0x32, 0xf7, 0xff, 0xb2, 0x70, 0xda, 0x2f, 0xe7, 0x1c, 0x7f, 0x11, 0x6a, 0x5e, 0xa0,\n\t0x96, 0x80, 0x14, 0x3e, 0xeb, 0x0d, 0x3b, 0xff, 0xb6, 0x61, 0xaf, 0x2c, 0x9c, 0x96, 0x7f, 0x4b,\n\t0xf1, 0xe7, 0x40, 0xf3, 0x05, 0xea, 0xe8, 0xcb, 0xce, 0x05, 0x4d, 0x25, 0xab, 0x6e, 0x93, 0x56,\n\t0x53, 0x67, 0xd1, 0x2d, 0x0b, 0xa7, 0xe3, 0x2d, 0xf5, 0xfc, 0x95, 0x69, 0xf7, 0xf5, 0x64, 0x6a,\n\t0x37, 0xae, 0xa7, 0x76, 0xe3, 0x66, 0x6a, 0x37, 0xbe, 0x94, 0xb6, 0x31, 0x29, 0x6d, 0xe3, 0xba,\n\t0xb4, 0x8d, 0x9b, 0xd2, 0x36, 0x7e, 0x96, 0xb6, 0xf1, 0xf5, 0x97, 0xdd, 0x78, 0xe7, 0xac, 0xf9,\n\t0xa9, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x19, 0x0e, 0xd7, 0x8f, 0x04, 0x00, 0x00,\n}\n\nfunc (m *Lease) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lease) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lease) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LeaseTransitions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseTransitions))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RenewTime != nil {\n\t\t{\n\t\t\tsize, err := m.RenewTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AcquireTime != nil {\n\t\t{\n\t\t\tsize, err := m.AcquireTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseDurationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.HolderIdentity != nil {\n\t\ti -= len(*m.HolderIdentity)\n\t\tcopy(dAtA[i:], *m.HolderIdentity)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.HolderIdentity)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Lease) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LeaseList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LeaseSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HolderIdentity != nil {\n\t\tl = len(*m.HolderIdentity)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseDurationSeconds))\n\t}\n\tif m.AcquireTime != nil {\n\t\tl = m.AcquireTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RenewTime != nil {\n\t\tl = m.RenewTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseTransitions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseTransitions))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Lease) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lease{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LeaseSpec\", \"LeaseSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Lease{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Lease\", \"Lease\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LeaseList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseSpec{`,\n\t\t`HolderIdentity:` + valueToStringGenerated(this.HolderIdentity) + `,`,\n\t\t`LeaseDurationSeconds:` + valueToStringGenerated(this.LeaseDurationSeconds) + `,`,\n\t\t`AcquireTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.AcquireTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`RenewTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.RenewTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`LeaseTransitions:` + valueToStringGenerated(this.LeaseTransitions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Lease) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Lease{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HolderIdentity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.HolderIdentity = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseDurationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseDurationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcquireTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AcquireTime == nil {\n\t\t\t\tm.AcquireTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.AcquireTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RenewTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RenewTime == nil {\n\t\t\t\tm.RenewTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseTransitions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseTransitions = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.coordination.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/coordination/v1beta1\";\n\n// Lease defines a lease concept.\nmessage Lease {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the specification of the Lease.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LeaseSpec spec = 2;\n}\n\n// LeaseList is a list of Lease objects.\nmessage LeaseList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Lease items = 2;\n}\n\n// LeaseSpec is a specification of a Lease.\nmessage LeaseSpec {\n  // holderIdentity contains the identity of the holder of a current lease.\n  // +optional\n  optional string holderIdentity = 1;\n\n  // leaseDurationSeconds is a duration that candidates for a lease need\n  // to wait to force acquire it. This is measure against time of last\n  // observed renewTime.\n  // +optional\n  optional int32 leaseDurationSeconds = 2;\n\n  // acquireTime is a time when the current lease was acquired.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3;\n\n  // renewTime is a time when the current holder of a lease has last\n  // updated the lease.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4;\n\n  // leaseTransitions is the number of transitions of a lease between\n  // holders.\n  // +optional\n  optional int32 leaseTransitions = 5;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"coordination.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Lease{},\n\t\t&LeaseList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=coordination.k8s.io,v1,Lease\n\n// Lease defines a lease concept.\ntype Lease struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the specification of the Lease.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LeaseSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// LeaseSpec is a specification of a Lease.\ntype LeaseSpec struct {\n\t// holderIdentity contains the identity of the holder of a current lease.\n\t// +optional\n\tHolderIdentity *string `json:\"holderIdentity,omitempty\" protobuf:\"bytes,1,opt,name=holderIdentity\"`\n\t// leaseDurationSeconds is a duration that candidates for a lease need\n\t// to wait to force acquire it. This is measure against time of last\n\t// observed renewTime.\n\t// +optional\n\tLeaseDurationSeconds *int32 `json:\"leaseDurationSeconds,omitempty\" protobuf:\"varint,2,opt,name=leaseDurationSeconds\"`\n\t// acquireTime is a time when the current lease was acquired.\n\t// +optional\n\tAcquireTime *metav1.MicroTime `json:\"acquireTime,omitempty\" protobuf:\"bytes,3,opt,name=acquireTime\"`\n\t// renewTime is a time when the current holder of a lease has last\n\t// updated the lease.\n\t// +optional\n\tRenewTime *metav1.MicroTime `json:\"renewTime,omitempty\" protobuf:\"bytes,4,opt,name=renewTime\"`\n\t// leaseTransitions is the number of transitions of a lease between\n\t// holders.\n\t// +optional\n\tLeaseTransitions *int32 `json:\"leaseTransitions,omitempty\" protobuf:\"varint,5,opt,name=leaseTransitions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=coordination.k8s.io,v1,LeaseList\n\n// LeaseList is a list of Lease objects.\ntype LeaseList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Lease `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Lease = map[string]string{\n\t\"\":         \"Lease defines a lease concept.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Lease) SwaggerDoc() map[string]string {\n\treturn map_Lease\n}\n\nvar map_LeaseList = map[string]string{\n\t\"\":         \"LeaseList is a list of Lease objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (LeaseList) SwaggerDoc() map[string]string {\n\treturn map_LeaseList\n}\n\nvar map_LeaseSpec = map[string]string{\n\t\"\":                     \"LeaseSpec is a specification of a Lease.\",\n\t\"holderIdentity\":       \"holderIdentity contains the identity of the holder of a current lease.\",\n\t\"leaseDurationSeconds\": \"leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.\",\n\t\"acquireTime\":          \"acquireTime is a time when the current lease was acquired.\",\n\t\"renewTime\":            \"renewTime is a time when the current holder of a lease has last updated the lease.\",\n\t\"leaseTransitions\":     \"leaseTransitions is the number of transitions of a lease between holders.\",\n}\n\nfunc (LeaseSpec) SwaggerDoc() map[string]string {\n\treturn map_LeaseSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lease) DeepCopyInto(out *Lease) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lease.\nfunc (in *Lease) DeepCopy() *Lease {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lease)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Lease) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseList) DeepCopyInto(out *LeaseList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Lease, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseList.\nfunc (in *LeaseList) DeepCopy() *LeaseList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseSpec) DeepCopyInto(out *LeaseSpec) {\n\t*out = *in\n\tif in.HolderIdentity != nil {\n\t\tin, out := &in.HolderIdentity, &out.HolderIdentity\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.LeaseDurationSeconds != nil {\n\t\tin, out := &in.LeaseDurationSeconds, &out.LeaseDurationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AcquireTime != nil {\n\t\tin, out := &in.AcquireTime, &out.AcquireTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.RenewTime != nil {\n\t\tin, out := &in.RenewTime, &out.RenewTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LeaseTransitions != nil {\n\t\tin, out := &in.LeaseTransitions, &out.LeaseTransitions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseSpec.\nfunc (in *LeaseSpec) DeepCopy() *LeaseSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Lease) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Lease) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Lease) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"coordination.k8s.io\", Version: \"v1\", Kind: \"Lease\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Lease) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LeaseList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LeaseList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *LeaseList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"coordination.k8s.io\", Version: \"v1\", Kind: \"LeaseList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LeaseList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/annotation_key_constants.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file should be consistent with pkg/apis/core/annotation_key_constants.go.\n\npackage v1\n\nconst (\n\t// ImagePolicyFailedOpenKey is added to pods created by failing open when the image policy\n\t// webhook backend fails.\n\tImagePolicyFailedOpenKey string = \"alpha.image-policy.k8s.io/failed-open\"\n\n\t// MirrorAnnotationKey represents the annotation key set by kubelets when creating mirror pods\n\tMirrorPodAnnotationKey string = \"kubernetes.io/config.mirror\"\n\n\t// TolerationsAnnotationKey represents the key of tolerations data (json serialized)\n\t// in the Annotations of a Pod.\n\tTolerationsAnnotationKey string = \"scheduler.alpha.kubernetes.io/tolerations\"\n\n\t// TaintsAnnotationKey represents the key of taints data (json serialized)\n\t// in the Annotations of a Node.\n\tTaintsAnnotationKey string = \"scheduler.alpha.kubernetes.io/taints\"\n\n\t// SeccompPodAnnotationKey represents the key of a seccomp profile applied\n\t// to all containers of a pod.\n\t// Deprecated: set a pod security context `seccompProfile` field.\n\tSeccompPodAnnotationKey string = \"seccomp.security.alpha.kubernetes.io/pod\"\n\n\t// SeccompContainerAnnotationKeyPrefix represents the key of a seccomp profile applied\n\t// to one container of a pod.\n\t// Deprecated: set a container security context `seccompProfile` field.\n\tSeccompContainerAnnotationKeyPrefix string = \"container.seccomp.security.alpha.kubernetes.io/\"\n\n\t// SeccompProfileRuntimeDefault represents the default seccomp profile used by container runtime.\n\t// Deprecated: set a pod or container security context `seccompProfile` of type \"RuntimeDefault\" instead.\n\tSeccompProfileRuntimeDefault string = \"runtime/default\"\n\n\t// SeccompProfileNameUnconfined is the unconfined seccomp profile.\n\tSeccompProfileNameUnconfined string = \"unconfined\"\n\n\t// SeccompLocalhostProfileNamePrefix is the prefix for specifying profiles loaded from the node's disk.\n\tSeccompLocalhostProfileNamePrefix = \"localhost/\"\n\n\t// AppArmorBetaContainerAnnotationKeyPrefix is the prefix to an annotation key specifying a container's apparmor profile.\n\tAppArmorBetaContainerAnnotationKeyPrefix = \"container.apparmor.security.beta.kubernetes.io/\"\n\t// AppArmorBetaDefaultProfileAnnotatoinKey is the annotation key specifying the default AppArmor profile.\n\tAppArmorBetaDefaultProfileAnnotationKey = \"apparmor.security.beta.kubernetes.io/defaultProfileName\"\n\t// AppArmorBetaAllowedProfileAnnotationKey is the annotation key specifying the allowed AppArmor profiles.\n\tAppArmorBetaAllowedProfilesAnnotationKey = \"apparmor.security.beta.kubernetes.io/allowedProfileNames\"\n\n\t// AppArmorBetaProfileRuntimeDefault is the profile specifying the runtime default.\n\tAppArmorBetaProfileRuntimeDefault = \"runtime/default\"\n\n\t// AppArmorBetaProfileNamePrefix is the prefix for specifying profiles loaded on the node.\n\tAppArmorBetaProfileNamePrefix = \"localhost/\"\n\n\t// AppArmorBetaProfileNameUnconfined is the Unconfined AppArmor profile\n\tAppArmorBetaProfileNameUnconfined = \"unconfined\"\n\n\t// DeprecatedSeccompProfileDockerDefault represents the default seccomp profile used by docker.\n\t// Deprecated: set a pod or container security context `seccompProfile` of type \"RuntimeDefault\" instead.\n\tDeprecatedSeccompProfileDockerDefault string = \"docker/default\"\n\n\t// PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized)\n\t// in the Annotations of a Node.\n\tPreferAvoidPodsAnnotationKey string = \"scheduler.alpha.kubernetes.io/preferAvoidPods\"\n\n\t// ObjectTTLAnnotations represents a suggestion for kubelet for how long it can cache\n\t// an object (e.g. secret, config map) before fetching it again from apiserver.\n\t// This annotation can be attached to node.\n\tObjectTTLAnnotationKey string = \"node.alpha.kubernetes.io/ttl\"\n\n\t// annotation key prefix used to identify non-convertible json paths.\n\tNonConvertibleAnnotationPrefix = \"non-convertible.kubernetes.io\"\n\n\tkubectlPrefix = \"kubectl.kubernetes.io/\"\n\n\t// LastAppliedConfigAnnotation is the annotation used to store the previous\n\t// configuration of a resource for use in a three way diff by UpdateApplyAnnotation.\n\tLastAppliedConfigAnnotation = kubectlPrefix + \"last-applied-configuration\"\n\n\t// AnnotationLoadBalancerSourceRangesKey is the key of the annotation on a service to set allowed ingress ranges on their LoadBalancers\n\t//\n\t// It should be a comma-separated list of CIDRs, e.g. `0.0.0.0/0` to\n\t// allow full access (the default) or `18.0.0.0/8,56.0.0.0/8` to allow\n\t// access only from the CIDRs currently allocated to MIT & the USPS.\n\t//\n\t// Not all cloud providers support this annotation, though AWS & GCE do.\n\tAnnotationLoadBalancerSourceRangesKey = \"service.beta.kubernetes.io/load-balancer-source-ranges\"\n\n\t// EndpointsLastChangeTriggerTime is the annotation key, set for endpoints objects, that\n\t// represents the timestamp (stored as RFC 3339 date-time string, e.g. '2018-10-22T19:32:52.1Z')\n\t// of the last change, of some Pod or Service object, that triggered the endpoints object change.\n\t// In other words, if a Pod / Service changed at time T0, that change was observed by endpoints\n\t// controller at T1, and the Endpoints object was changed at T2, the\n\t// EndpointsLastChangeTriggerTime would be set to T0.\n\t//\n\t// The \"endpoints change trigger\" here means any Pod or Service change that resulted in the\n\t// Endpoints object change.\n\t//\n\t// Given the definition of the \"endpoints change trigger\", please note that this annotation will\n\t// be set ONLY for endpoints object changes triggered by either Pod or Service change. If the\n\t// Endpoints object changes due to other reasons, this annotation won't be set (or updated if it's\n\t// already set).\n\t//\n\t// This annotation will be used to compute the in-cluster network programming latency SLI, see\n\t// https://github.com/kubernetes/community/blob/master/sig-scalability/slos/network_programming_latency.md\n\tEndpointsLastChangeTriggerTime = \"endpoints.kubernetes.io/last-change-trigger-time\"\n\n\t// EndpointsOverCapacity will be set on an Endpoints resource when it\n\t// exceeds the maximum capacity of 1000 addresses. Initially the Endpoints\n\t// controller will set this annotation with a value of \"warning\". In a\n\t// future release, the controller may set this annotation with a value of\n\t// \"truncated\" to indicate that any addresses exceeding the limit of 1000\n\t// have been truncated from the Endpoints resource.\n\tEndpointsOverCapacity = \"endpoints.kubernetes.io/over-capacity\"\n\n\t// MigratedPluginsAnnotationKey is the annotation key, set for CSINode objects, that is a comma-separated\n\t// list of in-tree plugins that will be serviced by the CSI backend on the Node represented by CSINode.\n\t// This annotation is used by the Attach Detach Controller to determine whether to use the in-tree or\n\t// CSI Backend for a volume plugin on a specific node.\n\tMigratedPluginsAnnotationKey = \"storage.alpha.kubernetes.io/migrated-plugins\"\n\n\t// PodDeletionCost can be used to set to an int32 that represent the cost of deleting\n\t// a pod compared to other pods belonging to the same ReplicaSet. Pods with lower\n\t// deletion cost are preferred to be deleted before pods with higher deletion cost.\n\t// Note that this is honored on a best-effort basis, and so it does not offer guarantees on\n\t// pod deletion order.\n\t// The implicit deletion cost for pods that don't set the annotation is 0, negative values are permitted.\n\t//\n\t// This annotation is beta-level and is only honored when PodDeletionCost feature is enabled.\n\tPodDeletionCost = \"controller.kubernetes.io/pod-deletion-cost\"\n\n\t// DeprecatedAnnotationTopologyAwareHints can be used to enable or disable\n\t// Topology Aware Hints for a Service. This may be set to \"Auto\" or\n\t// \"Disabled\". Any other value is treated as \"Disabled\". This annotation has\n\t// been deprecated in favor of the \"service.kubernetes.io/topology-mode\"\n\t// annotation.\n\tDeprecatedAnnotationTopologyAwareHints = \"service.kubernetes.io/topology-aware-hints\"\n\n\t// AnnotationTopologyMode can be used to enable or disable Topology Aware\n\t// Routing for a Service. Well known values are \"Auto\" and \"Disabled\".\n\t// Implementations may choose to develop new topology approaches, exposing\n\t// them with domain-prefixed values. For example, \"example.com/lowest-rtt\"\n\t// could be a valid implementation-specific value for this annotation. These\n\t// heuristics will often populate topology hints on EndpointSlices, but that\n\t// is not a requirement.\n\tAnnotationTopologyMode = \"service.kubernetes.io/topology-mode\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n\n// Package v1 is the v1 version of the core API.\npackage v1 // import \"k8s.io/api/core/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/core/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AWSElasticBlockStoreVolumeSource) Reset()      { *m = AWSElasticBlockStoreVolumeSource{} }\nfunc (*AWSElasticBlockStoreVolumeSource) ProtoMessage() {}\nfunc (*AWSElasticBlockStoreVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{0}\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AWSElasticBlockStoreVolumeSource.Merge(m, src)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AWSElasticBlockStoreVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AWSElasticBlockStoreVolumeSource proto.InternalMessageInfo\n\nfunc (m *Affinity) Reset()      { *m = Affinity{} }\nfunc (*Affinity) ProtoMessage() {}\nfunc (*Affinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{1}\n}\nfunc (m *Affinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Affinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Affinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Affinity.Merge(m, src)\n}\nfunc (m *Affinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Affinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_Affinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Affinity proto.InternalMessageInfo\n\nfunc (m *AttachedVolume) Reset()      { *m = AttachedVolume{} }\nfunc (*AttachedVolume) ProtoMessage() {}\nfunc (*AttachedVolume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{2}\n}\nfunc (m *AttachedVolume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AttachedVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AttachedVolume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AttachedVolume.Merge(m, src)\n}\nfunc (m *AttachedVolume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AttachedVolume) XXX_DiscardUnknown() {\n\txxx_messageInfo_AttachedVolume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AttachedVolume proto.InternalMessageInfo\n\nfunc (m *AvoidPods) Reset()      { *m = AvoidPods{} }\nfunc (*AvoidPods) ProtoMessage() {}\nfunc (*AvoidPods) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{3}\n}\nfunc (m *AvoidPods) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AvoidPods) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AvoidPods) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AvoidPods.Merge(m, src)\n}\nfunc (m *AvoidPods) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AvoidPods) XXX_DiscardUnknown() {\n\txxx_messageInfo_AvoidPods.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AvoidPods proto.InternalMessageInfo\n\nfunc (m *AzureDiskVolumeSource) Reset()      { *m = AzureDiskVolumeSource{} }\nfunc (*AzureDiskVolumeSource) ProtoMessage() {}\nfunc (*AzureDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{4}\n}\nfunc (m *AzureDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureDiskVolumeSource.Merge(m, src)\n}\nfunc (m *AzureDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *AzureFilePersistentVolumeSource) Reset()      { *m = AzureFilePersistentVolumeSource{} }\nfunc (*AzureFilePersistentVolumeSource) ProtoMessage() {}\nfunc (*AzureFilePersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{5}\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureFilePersistentVolumeSource.Merge(m, src)\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureFilePersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureFilePersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *AzureFileVolumeSource) Reset()      { *m = AzureFileVolumeSource{} }\nfunc (*AzureFileVolumeSource) ProtoMessage() {}\nfunc (*AzureFileVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{6}\n}\nfunc (m *AzureFileVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureFileVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureFileVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureFileVolumeSource.Merge(m, src)\n}\nfunc (m *AzureFileVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureFileVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureFileVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureFileVolumeSource proto.InternalMessageInfo\n\nfunc (m *Binding) Reset()      { *m = Binding{} }\nfunc (*Binding) ProtoMessage() {}\nfunc (*Binding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{7}\n}\nfunc (m *Binding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Binding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Binding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Binding.Merge(m, src)\n}\nfunc (m *Binding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Binding) XXX_DiscardUnknown() {\n\txxx_messageInfo_Binding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Binding proto.InternalMessageInfo\n\nfunc (m *CSIPersistentVolumeSource) Reset()      { *m = CSIPersistentVolumeSource{} }\nfunc (*CSIPersistentVolumeSource) ProtoMessage() {}\nfunc (*CSIPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{8}\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CSIVolumeSource) Reset()      { *m = CSIVolumeSource{} }\nfunc (*CSIVolumeSource) ProtoMessage() {}\nfunc (*CSIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{9}\n}\nfunc (m *CSIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIVolumeSource.Merge(m, src)\n}\nfunc (m *CSIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIVolumeSource proto.InternalMessageInfo\n\nfunc (m *Capabilities) Reset()      { *m = Capabilities{} }\nfunc (*Capabilities) ProtoMessage() {}\nfunc (*Capabilities) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{10}\n}\nfunc (m *Capabilities) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Capabilities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Capabilities) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Capabilities.Merge(m, src)\n}\nfunc (m *Capabilities) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Capabilities) XXX_DiscardUnknown() {\n\txxx_messageInfo_Capabilities.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Capabilities proto.InternalMessageInfo\n\nfunc (m *CephFSPersistentVolumeSource) Reset()      { *m = CephFSPersistentVolumeSource{} }\nfunc (*CephFSPersistentVolumeSource) ProtoMessage() {}\nfunc (*CephFSPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{11}\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CephFSPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CephFSPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CephFSPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CephFSVolumeSource) Reset()      { *m = CephFSVolumeSource{} }\nfunc (*CephFSVolumeSource) ProtoMessage() {}\nfunc (*CephFSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{12}\n}\nfunc (m *CephFSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CephFSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CephFSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CephFSVolumeSource.Merge(m, src)\n}\nfunc (m *CephFSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CephFSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CephFSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CephFSVolumeSource proto.InternalMessageInfo\n\nfunc (m *CinderPersistentVolumeSource) Reset()      { *m = CinderPersistentVolumeSource{} }\nfunc (*CinderPersistentVolumeSource) ProtoMessage() {}\nfunc (*CinderPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{13}\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CinderPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CinderPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CinderPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CinderPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CinderVolumeSource) Reset()      { *m = CinderVolumeSource{} }\nfunc (*CinderVolumeSource) ProtoMessage() {}\nfunc (*CinderVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{14}\n}\nfunc (m *CinderVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CinderVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CinderVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CinderVolumeSource.Merge(m, src)\n}\nfunc (m *CinderVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CinderVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CinderVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CinderVolumeSource proto.InternalMessageInfo\n\nfunc (m *ClaimSource) Reset()      { *m = ClaimSource{} }\nfunc (*ClaimSource) ProtoMessage() {}\nfunc (*ClaimSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{15}\n}\nfunc (m *ClaimSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClaimSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClaimSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClaimSource.Merge(m, src)\n}\nfunc (m *ClaimSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClaimSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClaimSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClaimSource proto.InternalMessageInfo\n\nfunc (m *ClientIPConfig) Reset()      { *m = ClientIPConfig{} }\nfunc (*ClientIPConfig) ProtoMessage() {}\nfunc (*ClientIPConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{16}\n}\nfunc (m *ClientIPConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClientIPConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClientIPConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClientIPConfig.Merge(m, src)\n}\nfunc (m *ClientIPConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClientIPConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClientIPConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClientIPConfig proto.InternalMessageInfo\n\nfunc (m *ComponentCondition) Reset()      { *m = ComponentCondition{} }\nfunc (*ComponentCondition) ProtoMessage() {}\nfunc (*ComponentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{17}\n}\nfunc (m *ComponentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentCondition.Merge(m, src)\n}\nfunc (m *ComponentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentCondition proto.InternalMessageInfo\n\nfunc (m *ComponentStatus) Reset()      { *m = ComponentStatus{} }\nfunc (*ComponentStatus) ProtoMessage() {}\nfunc (*ComponentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{18}\n}\nfunc (m *ComponentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentStatus.Merge(m, src)\n}\nfunc (m *ComponentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentStatus proto.InternalMessageInfo\n\nfunc (m *ComponentStatusList) Reset()      { *m = ComponentStatusList{} }\nfunc (*ComponentStatusList) ProtoMessage() {}\nfunc (*ComponentStatusList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{19}\n}\nfunc (m *ComponentStatusList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentStatusList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentStatusList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentStatusList.Merge(m, src)\n}\nfunc (m *ComponentStatusList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentStatusList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentStatusList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentStatusList proto.InternalMessageInfo\n\nfunc (m *ConfigMap) Reset()      { *m = ConfigMap{} }\nfunc (*ConfigMap) ProtoMessage() {}\nfunc (*ConfigMap) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{20}\n}\nfunc (m *ConfigMap) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMap) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMap.Merge(m, src)\n}\nfunc (m *ConfigMap) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMap) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMap.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMap proto.InternalMessageInfo\n\nfunc (m *ConfigMapEnvSource) Reset()      { *m = ConfigMapEnvSource{} }\nfunc (*ConfigMapEnvSource) ProtoMessage() {}\nfunc (*ConfigMapEnvSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{21}\n}\nfunc (m *ConfigMapEnvSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapEnvSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapEnvSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapEnvSource.Merge(m, src)\n}\nfunc (m *ConfigMapEnvSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapEnvSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapEnvSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapEnvSource proto.InternalMessageInfo\n\nfunc (m *ConfigMapKeySelector) Reset()      { *m = ConfigMapKeySelector{} }\nfunc (*ConfigMapKeySelector) ProtoMessage() {}\nfunc (*ConfigMapKeySelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{22}\n}\nfunc (m *ConfigMapKeySelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapKeySelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapKeySelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapKeySelector.Merge(m, src)\n}\nfunc (m *ConfigMapKeySelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapKeySelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapKeySelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapKeySelector proto.InternalMessageInfo\n\nfunc (m *ConfigMapList) Reset()      { *m = ConfigMapList{} }\nfunc (*ConfigMapList) ProtoMessage() {}\nfunc (*ConfigMapList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{23}\n}\nfunc (m *ConfigMapList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapList.Merge(m, src)\n}\nfunc (m *ConfigMapList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapList proto.InternalMessageInfo\n\nfunc (m *ConfigMapNodeConfigSource) Reset()      { *m = ConfigMapNodeConfigSource{} }\nfunc (*ConfigMapNodeConfigSource) ProtoMessage() {}\nfunc (*ConfigMapNodeConfigSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{24}\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapNodeConfigSource.Merge(m, src)\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapNodeConfigSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapNodeConfigSource proto.InternalMessageInfo\n\nfunc (m *ConfigMapProjection) Reset()      { *m = ConfigMapProjection{} }\nfunc (*ConfigMapProjection) ProtoMessage() {}\nfunc (*ConfigMapProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{25}\n}\nfunc (m *ConfigMapProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapProjection.Merge(m, src)\n}\nfunc (m *ConfigMapProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapProjection proto.InternalMessageInfo\n\nfunc (m *ConfigMapVolumeSource) Reset()      { *m = ConfigMapVolumeSource{} }\nfunc (*ConfigMapVolumeSource) ProtoMessage() {}\nfunc (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{26}\n}\nfunc (m *ConfigMapVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapVolumeSource.Merge(m, src)\n}\nfunc (m *ConfigMapVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapVolumeSource proto.InternalMessageInfo\n\nfunc (m *Container) Reset()      { *m = Container{} }\nfunc (*Container) ProtoMessage() {}\nfunc (*Container) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{27}\n}\nfunc (m *Container) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Container) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Container) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Container.Merge(m, src)\n}\nfunc (m *Container) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Container) XXX_DiscardUnknown() {\n\txxx_messageInfo_Container.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Container proto.InternalMessageInfo\n\nfunc (m *ContainerImage) Reset()      { *m = ContainerImage{} }\nfunc (*ContainerImage) ProtoMessage() {}\nfunc (*ContainerImage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{28}\n}\nfunc (m *ContainerImage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerImage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerImage.Merge(m, src)\n}\nfunc (m *ContainerImage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerImage) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerImage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerImage proto.InternalMessageInfo\n\nfunc (m *ContainerPort) Reset()      { *m = ContainerPort{} }\nfunc (*ContainerPort) ProtoMessage() {}\nfunc (*ContainerPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{29}\n}\nfunc (m *ContainerPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerPort.Merge(m, src)\n}\nfunc (m *ContainerPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerPort proto.InternalMessageInfo\n\nfunc (m *ContainerResizePolicy) Reset()      { *m = ContainerResizePolicy{} }\nfunc (*ContainerResizePolicy) ProtoMessage() {}\nfunc (*ContainerResizePolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{30}\n}\nfunc (m *ContainerResizePolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResizePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResizePolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResizePolicy.Merge(m, src)\n}\nfunc (m *ContainerResizePolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResizePolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResizePolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResizePolicy proto.InternalMessageInfo\n\nfunc (m *ContainerState) Reset()      { *m = ContainerState{} }\nfunc (*ContainerState) ProtoMessage() {}\nfunc (*ContainerState) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{31}\n}\nfunc (m *ContainerState) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerState) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerState.Merge(m, src)\n}\nfunc (m *ContainerState) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerState) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerState.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerState proto.InternalMessageInfo\n\nfunc (m *ContainerStateRunning) Reset()      { *m = ContainerStateRunning{} }\nfunc (*ContainerStateRunning) ProtoMessage() {}\nfunc (*ContainerStateRunning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{32}\n}\nfunc (m *ContainerStateRunning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateRunning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateRunning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateRunning.Merge(m, src)\n}\nfunc (m *ContainerStateRunning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateRunning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateRunning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateRunning proto.InternalMessageInfo\n\nfunc (m *ContainerStateTerminated) Reset()      { *m = ContainerStateTerminated{} }\nfunc (*ContainerStateTerminated) ProtoMessage() {}\nfunc (*ContainerStateTerminated) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{33}\n}\nfunc (m *ContainerStateTerminated) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateTerminated) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateTerminated) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateTerminated.Merge(m, src)\n}\nfunc (m *ContainerStateTerminated) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateTerminated) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateTerminated.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateTerminated proto.InternalMessageInfo\n\nfunc (m *ContainerStateWaiting) Reset()      { *m = ContainerStateWaiting{} }\nfunc (*ContainerStateWaiting) ProtoMessage() {}\nfunc (*ContainerStateWaiting) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{34}\n}\nfunc (m *ContainerStateWaiting) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateWaiting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateWaiting) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateWaiting.Merge(m, src)\n}\nfunc (m *ContainerStateWaiting) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateWaiting) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateWaiting.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateWaiting proto.InternalMessageInfo\n\nfunc (m *ContainerStatus) Reset()      { *m = ContainerStatus{} }\nfunc (*ContainerStatus) ProtoMessage() {}\nfunc (*ContainerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{35}\n}\nfunc (m *ContainerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatus.Merge(m, src)\n}\nfunc (m *ContainerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatus proto.InternalMessageInfo\n\nfunc (m *DaemonEndpoint) Reset()      { *m = DaemonEndpoint{} }\nfunc (*DaemonEndpoint) ProtoMessage() {}\nfunc (*DaemonEndpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{36}\n}\nfunc (m *DaemonEndpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonEndpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonEndpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonEndpoint.Merge(m, src)\n}\nfunc (m *DaemonEndpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonEndpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonEndpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonEndpoint proto.InternalMessageInfo\n\nfunc (m *DownwardAPIProjection) Reset()      { *m = DownwardAPIProjection{} }\nfunc (*DownwardAPIProjection) ProtoMessage() {}\nfunc (*DownwardAPIProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{37}\n}\nfunc (m *DownwardAPIProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIProjection.Merge(m, src)\n}\nfunc (m *DownwardAPIProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIProjection proto.InternalMessageInfo\n\nfunc (m *DownwardAPIVolumeFile) Reset()      { *m = DownwardAPIVolumeFile{} }\nfunc (*DownwardAPIVolumeFile) ProtoMessage() {}\nfunc (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{38}\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIVolumeFile.Merge(m, src)\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIVolumeFile) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIVolumeFile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIVolumeFile proto.InternalMessageInfo\n\nfunc (m *DownwardAPIVolumeSource) Reset()      { *m = DownwardAPIVolumeSource{} }\nfunc (*DownwardAPIVolumeSource) ProtoMessage() {}\nfunc (*DownwardAPIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{39}\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIVolumeSource.Merge(m, src)\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIVolumeSource proto.InternalMessageInfo\n\nfunc (m *EmptyDirVolumeSource) Reset()      { *m = EmptyDirVolumeSource{} }\nfunc (*EmptyDirVolumeSource) ProtoMessage() {}\nfunc (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{40}\n}\nfunc (m *EmptyDirVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EmptyDirVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EmptyDirVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EmptyDirVolumeSource.Merge(m, src)\n}\nfunc (m *EmptyDirVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EmptyDirVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EmptyDirVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EmptyDirVolumeSource proto.InternalMessageInfo\n\nfunc (m *EndpointAddress) Reset()      { *m = EndpointAddress{} }\nfunc (*EndpointAddress) ProtoMessage() {}\nfunc (*EndpointAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{41}\n}\nfunc (m *EndpointAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointAddress.Merge(m, src)\n}\nfunc (m *EndpointAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointAddress proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{42}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSubset) Reset()      { *m = EndpointSubset{} }\nfunc (*EndpointSubset) ProtoMessage() {}\nfunc (*EndpointSubset) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{43}\n}\nfunc (m *EndpointSubset) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSubset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSubset) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSubset.Merge(m, src)\n}\nfunc (m *EndpointSubset) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSubset) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSubset.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSubset proto.InternalMessageInfo\n\nfunc (m *Endpoints) Reset()      { *m = Endpoints{} }\nfunc (*Endpoints) ProtoMessage() {}\nfunc (*Endpoints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{44}\n}\nfunc (m *Endpoints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoints.Merge(m, src)\n}\nfunc (m *Endpoints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoints) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoints proto.InternalMessageInfo\n\nfunc (m *EndpointsList) Reset()      { *m = EndpointsList{} }\nfunc (*EndpointsList) ProtoMessage() {}\nfunc (*EndpointsList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{45}\n}\nfunc (m *EndpointsList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointsList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointsList.Merge(m, src)\n}\nfunc (m *EndpointsList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointsList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointsList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointsList proto.InternalMessageInfo\n\nfunc (m *EnvFromSource) Reset()      { *m = EnvFromSource{} }\nfunc (*EnvFromSource) ProtoMessage() {}\nfunc (*EnvFromSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{46}\n}\nfunc (m *EnvFromSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvFromSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvFromSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvFromSource.Merge(m, src)\n}\nfunc (m *EnvFromSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvFromSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvFromSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvFromSource proto.InternalMessageInfo\n\nfunc (m *EnvVar) Reset()      { *m = EnvVar{} }\nfunc (*EnvVar) ProtoMessage() {}\nfunc (*EnvVar) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{47}\n}\nfunc (m *EnvVar) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvVar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvVar) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvVar.Merge(m, src)\n}\nfunc (m *EnvVar) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvVar) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvVar.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvVar proto.InternalMessageInfo\n\nfunc (m *EnvVarSource) Reset()      { *m = EnvVarSource{} }\nfunc (*EnvVarSource) ProtoMessage() {}\nfunc (*EnvVarSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{48}\n}\nfunc (m *EnvVarSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvVarSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvVarSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvVarSource.Merge(m, src)\n}\nfunc (m *EnvVarSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvVarSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvVarSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvVarSource proto.InternalMessageInfo\n\nfunc (m *EphemeralContainer) Reset()      { *m = EphemeralContainer{} }\nfunc (*EphemeralContainer) ProtoMessage() {}\nfunc (*EphemeralContainer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{49}\n}\nfunc (m *EphemeralContainer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralContainer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralContainer.Merge(m, src)\n}\nfunc (m *EphemeralContainer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralContainer) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralContainer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralContainer proto.InternalMessageInfo\n\nfunc (m *EphemeralContainerCommon) Reset()      { *m = EphemeralContainerCommon{} }\nfunc (*EphemeralContainerCommon) ProtoMessage() {}\nfunc (*EphemeralContainerCommon) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{50}\n}\nfunc (m *EphemeralContainerCommon) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralContainerCommon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralContainerCommon) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralContainerCommon.Merge(m, src)\n}\nfunc (m *EphemeralContainerCommon) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralContainerCommon) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralContainerCommon.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralContainerCommon proto.InternalMessageInfo\n\nfunc (m *EphemeralVolumeSource) Reset()      { *m = EphemeralVolumeSource{} }\nfunc (*EphemeralVolumeSource) ProtoMessage() {}\nfunc (*EphemeralVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{51}\n}\nfunc (m *EphemeralVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralVolumeSource.Merge(m, src)\n}\nfunc (m *EphemeralVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralVolumeSource proto.InternalMessageInfo\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{52}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{53}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{54}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc (m *EventSource) Reset()      { *m = EventSource{} }\nfunc (*EventSource) ProtoMessage() {}\nfunc (*EventSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{55}\n}\nfunc (m *EventSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSource.Merge(m, src)\n}\nfunc (m *EventSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSource proto.InternalMessageInfo\n\nfunc (m *ExecAction) Reset()      { *m = ExecAction{} }\nfunc (*ExecAction) ProtoMessage() {}\nfunc (*ExecAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{56}\n}\nfunc (m *ExecAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExecAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecAction.Merge(m, src)\n}\nfunc (m *ExecAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecAction proto.InternalMessageInfo\n\nfunc (m *FCVolumeSource) Reset()      { *m = FCVolumeSource{} }\nfunc (*FCVolumeSource) ProtoMessage() {}\nfunc (*FCVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{57}\n}\nfunc (m *FCVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FCVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FCVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FCVolumeSource.Merge(m, src)\n}\nfunc (m *FCVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FCVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FCVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FCVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlexPersistentVolumeSource) Reset()      { *m = FlexPersistentVolumeSource{} }\nfunc (*FlexPersistentVolumeSource) ProtoMessage() {}\nfunc (*FlexPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{58}\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlexPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlexPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlexPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlexPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlexVolumeSource) Reset()      { *m = FlexVolumeSource{} }\nfunc (*FlexVolumeSource) ProtoMessage() {}\nfunc (*FlexVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{59}\n}\nfunc (m *FlexVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlexVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlexVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlexVolumeSource.Merge(m, src)\n}\nfunc (m *FlexVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlexVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlexVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlexVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlockerVolumeSource) Reset()      { *m = FlockerVolumeSource{} }\nfunc (*FlockerVolumeSource) ProtoMessage() {}\nfunc (*FlockerVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{60}\n}\nfunc (m *FlockerVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlockerVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlockerVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlockerVolumeSource.Merge(m, src)\n}\nfunc (m *FlockerVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlockerVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlockerVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlockerVolumeSource proto.InternalMessageInfo\n\nfunc (m *GCEPersistentDiskVolumeSource) Reset()      { *m = GCEPersistentDiskVolumeSource{} }\nfunc (*GCEPersistentDiskVolumeSource) ProtoMessage() {}\nfunc (*GCEPersistentDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{61}\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GCEPersistentDiskVolumeSource.Merge(m, src)\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GCEPersistentDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GCEPersistentDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *GRPCAction) Reset()      { *m = GRPCAction{} }\nfunc (*GRPCAction) ProtoMessage() {}\nfunc (*GRPCAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{62}\n}\nfunc (m *GRPCAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GRPCAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GRPCAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GRPCAction.Merge(m, src)\n}\nfunc (m *GRPCAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GRPCAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_GRPCAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GRPCAction proto.InternalMessageInfo\n\nfunc (m *GitRepoVolumeSource) Reset()      { *m = GitRepoVolumeSource{} }\nfunc (*GitRepoVolumeSource) ProtoMessage() {}\nfunc (*GitRepoVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{63}\n}\nfunc (m *GitRepoVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GitRepoVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GitRepoVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GitRepoVolumeSource.Merge(m, src)\n}\nfunc (m *GitRepoVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GitRepoVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GitRepoVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GitRepoVolumeSource proto.InternalMessageInfo\n\nfunc (m *GlusterfsPersistentVolumeSource) Reset()      { *m = GlusterfsPersistentVolumeSource{} }\nfunc (*GlusterfsPersistentVolumeSource) ProtoMessage() {}\nfunc (*GlusterfsPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{64}\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GlusterfsPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GlusterfsPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GlusterfsPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *GlusterfsVolumeSource) Reset()      { *m = GlusterfsVolumeSource{} }\nfunc (*GlusterfsVolumeSource) ProtoMessage() {}\nfunc (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{65}\n}\nfunc (m *GlusterfsVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GlusterfsVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GlusterfsVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GlusterfsVolumeSource.Merge(m, src)\n}\nfunc (m *GlusterfsVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GlusterfsVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GlusterfsVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GlusterfsVolumeSource proto.InternalMessageInfo\n\nfunc (m *HTTPGetAction) Reset()      { *m = HTTPGetAction{} }\nfunc (*HTTPGetAction) ProtoMessage() {}\nfunc (*HTTPGetAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{66}\n}\nfunc (m *HTTPGetAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPGetAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPGetAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPGetAction.Merge(m, src)\n}\nfunc (m *HTTPGetAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPGetAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPGetAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPGetAction proto.InternalMessageInfo\n\nfunc (m *HTTPHeader) Reset()      { *m = HTTPHeader{} }\nfunc (*HTTPHeader) ProtoMessage() {}\nfunc (*HTTPHeader) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{67}\n}\nfunc (m *HTTPHeader) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPHeader) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPHeader.Merge(m, src)\n}\nfunc (m *HTTPHeader) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPHeader) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPHeader.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPHeader proto.InternalMessageInfo\n\nfunc (m *HostAlias) Reset()      { *m = HostAlias{} }\nfunc (*HostAlias) ProtoMessage() {}\nfunc (*HostAlias) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{68}\n}\nfunc (m *HostAlias) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostAlias) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostAlias) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostAlias.Merge(m, src)\n}\nfunc (m *HostAlias) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostAlias) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostAlias.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostAlias proto.InternalMessageInfo\n\nfunc (m *HostPathVolumeSource) Reset()      { *m = HostPathVolumeSource{} }\nfunc (*HostPathVolumeSource) ProtoMessage() {}\nfunc (*HostPathVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{69}\n}\nfunc (m *HostPathVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostPathVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostPathVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostPathVolumeSource.Merge(m, src)\n}\nfunc (m *HostPathVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostPathVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostPathVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostPathVolumeSource proto.InternalMessageInfo\n\nfunc (m *ISCSIPersistentVolumeSource) Reset()      { *m = ISCSIPersistentVolumeSource{} }\nfunc (*ISCSIPersistentVolumeSource) ProtoMessage() {}\nfunc (*ISCSIPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{70}\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ISCSIPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ISCSIPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ISCSIPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *ISCSIVolumeSource) Reset()      { *m = ISCSIVolumeSource{} }\nfunc (*ISCSIVolumeSource) ProtoMessage() {}\nfunc (*ISCSIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{71}\n}\nfunc (m *ISCSIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ISCSIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ISCSIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ISCSIVolumeSource.Merge(m, src)\n}\nfunc (m *ISCSIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ISCSIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ISCSIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ISCSIVolumeSource proto.InternalMessageInfo\n\nfunc (m *KeyToPath) Reset()      { *m = KeyToPath{} }\nfunc (*KeyToPath) ProtoMessage() {}\nfunc (*KeyToPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{72}\n}\nfunc (m *KeyToPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *KeyToPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *KeyToPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_KeyToPath.Merge(m, src)\n}\nfunc (m *KeyToPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *KeyToPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_KeyToPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_KeyToPath proto.InternalMessageInfo\n\nfunc (m *Lifecycle) Reset()      { *m = Lifecycle{} }\nfunc (*Lifecycle) ProtoMessage() {}\nfunc (*Lifecycle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{73}\n}\nfunc (m *Lifecycle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lifecycle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lifecycle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lifecycle.Merge(m, src)\n}\nfunc (m *Lifecycle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lifecycle) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lifecycle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lifecycle proto.InternalMessageInfo\n\nfunc (m *LifecycleHandler) Reset()      { *m = LifecycleHandler{} }\nfunc (*LifecycleHandler) ProtoMessage() {}\nfunc (*LifecycleHandler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{74}\n}\nfunc (m *LifecycleHandler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LifecycleHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LifecycleHandler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LifecycleHandler.Merge(m, src)\n}\nfunc (m *LifecycleHandler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LifecycleHandler) XXX_DiscardUnknown() {\n\txxx_messageInfo_LifecycleHandler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LifecycleHandler proto.InternalMessageInfo\n\nfunc (m *LimitRange) Reset()      { *m = LimitRange{} }\nfunc (*LimitRange) ProtoMessage() {}\nfunc (*LimitRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{75}\n}\nfunc (m *LimitRange) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRange.Merge(m, src)\n}\nfunc (m *LimitRange) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRange proto.InternalMessageInfo\n\nfunc (m *LimitRangeItem) Reset()      { *m = LimitRangeItem{} }\nfunc (*LimitRangeItem) ProtoMessage() {}\nfunc (*LimitRangeItem) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{76}\n}\nfunc (m *LimitRangeItem) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeItem) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeItem.Merge(m, src)\n}\nfunc (m *LimitRangeItem) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeItem) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeItem.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeItem proto.InternalMessageInfo\n\nfunc (m *LimitRangeList) Reset()      { *m = LimitRangeList{} }\nfunc (*LimitRangeList) ProtoMessage() {}\nfunc (*LimitRangeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{77}\n}\nfunc (m *LimitRangeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeList.Merge(m, src)\n}\nfunc (m *LimitRangeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeList proto.InternalMessageInfo\n\nfunc (m *LimitRangeSpec) Reset()      { *m = LimitRangeSpec{} }\nfunc (*LimitRangeSpec) ProtoMessage() {}\nfunc (*LimitRangeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{78}\n}\nfunc (m *LimitRangeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeSpec.Merge(m, src)\n}\nfunc (m *LimitRangeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeSpec proto.InternalMessageInfo\n\nfunc (m *List) Reset()      { *m = List{} }\nfunc (*List) ProtoMessage() {}\nfunc (*List) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{79}\n}\nfunc (m *List) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *List) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *List) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_List.Merge(m, src)\n}\nfunc (m *List) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *List) XXX_DiscardUnknown() {\n\txxx_messageInfo_List.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_List proto.InternalMessageInfo\n\nfunc (m *LoadBalancerIngress) Reset()      { *m = LoadBalancerIngress{} }\nfunc (*LoadBalancerIngress) ProtoMessage() {}\nfunc (*LoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{80}\n}\nfunc (m *LoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoadBalancerIngress.Merge(m, src)\n}\nfunc (m *LoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *LoadBalancerStatus) Reset()      { *m = LoadBalancerStatus{} }\nfunc (*LoadBalancerStatus) ProtoMessage() {}\nfunc (*LoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{81}\n}\nfunc (m *LoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoadBalancerStatus.Merge(m, src)\n}\nfunc (m *LoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *LocalObjectReference) Reset()      { *m = LocalObjectReference{} }\nfunc (*LocalObjectReference) ProtoMessage() {}\nfunc (*LocalObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{82}\n}\nfunc (m *LocalObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalObjectReference.Merge(m, src)\n}\nfunc (m *LocalObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalObjectReference proto.InternalMessageInfo\n\nfunc (m *LocalVolumeSource) Reset()      { *m = LocalVolumeSource{} }\nfunc (*LocalVolumeSource) ProtoMessage() {}\nfunc (*LocalVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{83}\n}\nfunc (m *LocalVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalVolumeSource.Merge(m, src)\n}\nfunc (m *LocalVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalVolumeSource proto.InternalMessageInfo\n\nfunc (m *NFSVolumeSource) Reset()      { *m = NFSVolumeSource{} }\nfunc (*NFSVolumeSource) ProtoMessage() {}\nfunc (*NFSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{84}\n}\nfunc (m *NFSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NFSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NFSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NFSVolumeSource.Merge(m, src)\n}\nfunc (m *NFSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NFSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_NFSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NFSVolumeSource proto.InternalMessageInfo\n\nfunc (m *Namespace) Reset()      { *m = Namespace{} }\nfunc (*Namespace) ProtoMessage() {}\nfunc (*Namespace) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{85}\n}\nfunc (m *Namespace) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Namespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Namespace) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Namespace.Merge(m, src)\n}\nfunc (m *Namespace) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Namespace) XXX_DiscardUnknown() {\n\txxx_messageInfo_Namespace.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Namespace proto.InternalMessageInfo\n\nfunc (m *NamespaceCondition) Reset()      { *m = NamespaceCondition{} }\nfunc (*NamespaceCondition) ProtoMessage() {}\nfunc (*NamespaceCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{86}\n}\nfunc (m *NamespaceCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceCondition.Merge(m, src)\n}\nfunc (m *NamespaceCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceCondition proto.InternalMessageInfo\n\nfunc (m *NamespaceList) Reset()      { *m = NamespaceList{} }\nfunc (*NamespaceList) ProtoMessage() {}\nfunc (*NamespaceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{87}\n}\nfunc (m *NamespaceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceList.Merge(m, src)\n}\nfunc (m *NamespaceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceList proto.InternalMessageInfo\n\nfunc (m *NamespaceSpec) Reset()      { *m = NamespaceSpec{} }\nfunc (*NamespaceSpec) ProtoMessage() {}\nfunc (*NamespaceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{88}\n}\nfunc (m *NamespaceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceSpec.Merge(m, src)\n}\nfunc (m *NamespaceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceSpec proto.InternalMessageInfo\n\nfunc (m *NamespaceStatus) Reset()      { *m = NamespaceStatus{} }\nfunc (*NamespaceStatus) ProtoMessage() {}\nfunc (*NamespaceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{89}\n}\nfunc (m *NamespaceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceStatus.Merge(m, src)\n}\nfunc (m *NamespaceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceStatus proto.InternalMessageInfo\n\nfunc (m *Node) Reset()      { *m = Node{} }\nfunc (*Node) ProtoMessage() {}\nfunc (*Node) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{90}\n}\nfunc (m *Node) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Node) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Node.Merge(m, src)\n}\nfunc (m *Node) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Node) XXX_DiscardUnknown() {\n\txxx_messageInfo_Node.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Node proto.InternalMessageInfo\n\nfunc (m *NodeAddress) Reset()      { *m = NodeAddress{} }\nfunc (*NodeAddress) ProtoMessage() {}\nfunc (*NodeAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{91}\n}\nfunc (m *NodeAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeAddress.Merge(m, src)\n}\nfunc (m *NodeAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeAddress proto.InternalMessageInfo\n\nfunc (m *NodeAffinity) Reset()      { *m = NodeAffinity{} }\nfunc (*NodeAffinity) ProtoMessage() {}\nfunc (*NodeAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{92}\n}\nfunc (m *NodeAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeAffinity.Merge(m, src)\n}\nfunc (m *NodeAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeAffinity proto.InternalMessageInfo\n\nfunc (m *NodeCondition) Reset()      { *m = NodeCondition{} }\nfunc (*NodeCondition) ProtoMessage() {}\nfunc (*NodeCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{93}\n}\nfunc (m *NodeCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeCondition.Merge(m, src)\n}\nfunc (m *NodeCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeCondition proto.InternalMessageInfo\n\nfunc (m *NodeConfigSource) Reset()      { *m = NodeConfigSource{} }\nfunc (*NodeConfigSource) ProtoMessage() {}\nfunc (*NodeConfigSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{94}\n}\nfunc (m *NodeConfigSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeConfigSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeConfigSource.Merge(m, src)\n}\nfunc (m *NodeConfigSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeConfigSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeConfigSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeConfigSource proto.InternalMessageInfo\n\nfunc (m *NodeConfigStatus) Reset()      { *m = NodeConfigStatus{} }\nfunc (*NodeConfigStatus) ProtoMessage() {}\nfunc (*NodeConfigStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{95}\n}\nfunc (m *NodeConfigStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeConfigStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeConfigStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeConfigStatus.Merge(m, src)\n}\nfunc (m *NodeConfigStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeConfigStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeConfigStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeConfigStatus proto.InternalMessageInfo\n\nfunc (m *NodeDaemonEndpoints) Reset()      { *m = NodeDaemonEndpoints{} }\nfunc (*NodeDaemonEndpoints) ProtoMessage() {}\nfunc (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{96}\n}\nfunc (m *NodeDaemonEndpoints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeDaemonEndpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeDaemonEndpoints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeDaemonEndpoints.Merge(m, src)\n}\nfunc (m *NodeDaemonEndpoints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeDaemonEndpoints) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeDaemonEndpoints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeDaemonEndpoints proto.InternalMessageInfo\n\nfunc (m *NodeList) Reset()      { *m = NodeList{} }\nfunc (*NodeList) ProtoMessage() {}\nfunc (*NodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{97}\n}\nfunc (m *NodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeList.Merge(m, src)\n}\nfunc (m *NodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeList proto.InternalMessageInfo\n\nfunc (m *NodeProxyOptions) Reset()      { *m = NodeProxyOptions{} }\nfunc (*NodeProxyOptions) ProtoMessage() {}\nfunc (*NodeProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{98}\n}\nfunc (m *NodeProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeProxyOptions.Merge(m, src)\n}\nfunc (m *NodeProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeProxyOptions proto.InternalMessageInfo\n\nfunc (m *NodeResources) Reset()      { *m = NodeResources{} }\nfunc (*NodeResources) ProtoMessage() {}\nfunc (*NodeResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{99}\n}\nfunc (m *NodeResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeResources.Merge(m, src)\n}\nfunc (m *NodeResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeResources proto.InternalMessageInfo\n\nfunc (m *NodeSelector) Reset()      { *m = NodeSelector{} }\nfunc (*NodeSelector) ProtoMessage() {}\nfunc (*NodeSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{100}\n}\nfunc (m *NodeSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelector.Merge(m, src)\n}\nfunc (m *NodeSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelector proto.InternalMessageInfo\n\nfunc (m *NodeSelectorRequirement) Reset()      { *m = NodeSelectorRequirement{} }\nfunc (*NodeSelectorRequirement) ProtoMessage() {}\nfunc (*NodeSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{101}\n}\nfunc (m *NodeSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelectorRequirement.Merge(m, src)\n}\nfunc (m *NodeSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *NodeSelectorTerm) Reset()      { *m = NodeSelectorTerm{} }\nfunc (*NodeSelectorTerm) ProtoMessage() {}\nfunc (*NodeSelectorTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{102}\n}\nfunc (m *NodeSelectorTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelectorTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelectorTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelectorTerm.Merge(m, src)\n}\nfunc (m *NodeSelectorTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelectorTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelectorTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelectorTerm proto.InternalMessageInfo\n\nfunc (m *NodeSpec) Reset()      { *m = NodeSpec{} }\nfunc (*NodeSpec) ProtoMessage() {}\nfunc (*NodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{103}\n}\nfunc (m *NodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSpec.Merge(m, src)\n}\nfunc (m *NodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSpec proto.InternalMessageInfo\n\nfunc (m *NodeStatus) Reset()      { *m = NodeStatus{} }\nfunc (*NodeStatus) ProtoMessage() {}\nfunc (*NodeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{104}\n}\nfunc (m *NodeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeStatus.Merge(m, src)\n}\nfunc (m *NodeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeStatus proto.InternalMessageInfo\n\nfunc (m *NodeSystemInfo) Reset()      { *m = NodeSystemInfo{} }\nfunc (*NodeSystemInfo) ProtoMessage() {}\nfunc (*NodeSystemInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{105}\n}\nfunc (m *NodeSystemInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSystemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSystemInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSystemInfo.Merge(m, src)\n}\nfunc (m *NodeSystemInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSystemInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSystemInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSystemInfo proto.InternalMessageInfo\n\nfunc (m *ObjectFieldSelector) Reset()      { *m = ObjectFieldSelector{} }\nfunc (*ObjectFieldSelector) ProtoMessage() {}\nfunc (*ObjectFieldSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{106}\n}\nfunc (m *ObjectFieldSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectFieldSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectFieldSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectFieldSelector.Merge(m, src)\n}\nfunc (m *ObjectFieldSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectFieldSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectFieldSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectFieldSelector proto.InternalMessageInfo\n\nfunc (m *ObjectReference) Reset()      { *m = ObjectReference{} }\nfunc (*ObjectReference) ProtoMessage() {}\nfunc (*ObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{107}\n}\nfunc (m *ObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectReference.Merge(m, src)\n}\nfunc (m *ObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectReference proto.InternalMessageInfo\n\nfunc (m *PersistentVolume) Reset()      { *m = PersistentVolume{} }\nfunc (*PersistentVolume) ProtoMessage() {}\nfunc (*PersistentVolume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{108}\n}\nfunc (m *PersistentVolume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolume.Merge(m, src)\n}\nfunc (m *PersistentVolume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolume) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolume proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaim) Reset()      { *m = PersistentVolumeClaim{} }\nfunc (*PersistentVolumeClaim) ProtoMessage() {}\nfunc (*PersistentVolumeClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{109}\n}\nfunc (m *PersistentVolumeClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaim.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaim proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimCondition) Reset()      { *m = PersistentVolumeClaimCondition{} }\nfunc (*PersistentVolumeClaimCondition) ProtoMessage() {}\nfunc (*PersistentVolumeClaimCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{110}\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimCondition.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimCondition proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimList) Reset()      { *m = PersistentVolumeClaimList{} }\nfunc (*PersistentVolumeClaimList) ProtoMessage() {}\nfunc (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{111}\n}\nfunc (m *PersistentVolumeClaimList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimList.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimList proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimSpec) Reset()      { *m = PersistentVolumeClaimSpec{} }\nfunc (*PersistentVolumeClaimSpec) ProtoMessage() {}\nfunc (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{112}\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimSpec.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimSpec proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimStatus) Reset()      { *m = PersistentVolumeClaimStatus{} }\nfunc (*PersistentVolumeClaimStatus) ProtoMessage() {}\nfunc (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{113}\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimStatus.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimStatus proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimTemplate) Reset()      { *m = PersistentVolumeClaimTemplate{} }\nfunc (*PersistentVolumeClaimTemplate) ProtoMessage() {}\nfunc (*PersistentVolumeClaimTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{114}\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimTemplate.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimTemplate proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimVolumeSource) Reset()      { *m = PersistentVolumeClaimVolumeSource{} }\nfunc (*PersistentVolumeClaimVolumeSource) ProtoMessage() {}\nfunc (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{115}\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimVolumeSource.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimVolumeSource proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeList) Reset()      { *m = PersistentVolumeList{} }\nfunc (*PersistentVolumeList) ProtoMessage() {}\nfunc (*PersistentVolumeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{116}\n}\nfunc (m *PersistentVolumeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeList.Merge(m, src)\n}\nfunc (m *PersistentVolumeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeList proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeSource) Reset()      { *m = PersistentVolumeSource{} }\nfunc (*PersistentVolumeSource) ProtoMessage() {}\nfunc (*PersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{117}\n}\nfunc (m *PersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeSource.Merge(m, src)\n}\nfunc (m *PersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeSpec) Reset()      { *m = PersistentVolumeSpec{} }\nfunc (*PersistentVolumeSpec) ProtoMessage() {}\nfunc (*PersistentVolumeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{118}\n}\nfunc (m *PersistentVolumeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeSpec.Merge(m, src)\n}\nfunc (m *PersistentVolumeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeSpec proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeStatus) Reset()      { *m = PersistentVolumeStatus{} }\nfunc (*PersistentVolumeStatus) ProtoMessage() {}\nfunc (*PersistentVolumeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{119}\n}\nfunc (m *PersistentVolumeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeStatus.Merge(m, src)\n}\nfunc (m *PersistentVolumeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeStatus proto.InternalMessageInfo\n\nfunc (m *PhotonPersistentDiskVolumeSource) Reset()      { *m = PhotonPersistentDiskVolumeSource{} }\nfunc (*PhotonPersistentDiskVolumeSource) ProtoMessage() {}\nfunc (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{120}\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PhotonPersistentDiskVolumeSource.Merge(m, src)\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PhotonPersistentDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PhotonPersistentDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *Pod) Reset()      { *m = Pod{} }\nfunc (*Pod) ProtoMessage() {}\nfunc (*Pod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{121}\n}\nfunc (m *Pod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Pod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Pod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Pod.Merge(m, src)\n}\nfunc (m *Pod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Pod) XXX_DiscardUnknown() {\n\txxx_messageInfo_Pod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Pod proto.InternalMessageInfo\n\nfunc (m *PodAffinity) Reset()      { *m = PodAffinity{} }\nfunc (*PodAffinity) ProtoMessage() {}\nfunc (*PodAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{122}\n}\nfunc (m *PodAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAffinity.Merge(m, src)\n}\nfunc (m *PodAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAffinity proto.InternalMessageInfo\n\nfunc (m *PodAffinityTerm) Reset()      { *m = PodAffinityTerm{} }\nfunc (*PodAffinityTerm) ProtoMessage() {}\nfunc (*PodAffinityTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{123}\n}\nfunc (m *PodAffinityTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAffinityTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAffinityTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAffinityTerm.Merge(m, src)\n}\nfunc (m *PodAffinityTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAffinityTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAffinityTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAffinityTerm proto.InternalMessageInfo\n\nfunc (m *PodAntiAffinity) Reset()      { *m = PodAntiAffinity{} }\nfunc (*PodAntiAffinity) ProtoMessage() {}\nfunc (*PodAntiAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{124}\n}\nfunc (m *PodAntiAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAntiAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAntiAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAntiAffinity.Merge(m, src)\n}\nfunc (m *PodAntiAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAntiAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAntiAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAntiAffinity proto.InternalMessageInfo\n\nfunc (m *PodAttachOptions) Reset()      { *m = PodAttachOptions{} }\nfunc (*PodAttachOptions) ProtoMessage() {}\nfunc (*PodAttachOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{125}\n}\nfunc (m *PodAttachOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAttachOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAttachOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAttachOptions.Merge(m, src)\n}\nfunc (m *PodAttachOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAttachOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAttachOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAttachOptions proto.InternalMessageInfo\n\nfunc (m *PodCondition) Reset()      { *m = PodCondition{} }\nfunc (*PodCondition) ProtoMessage() {}\nfunc (*PodCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{126}\n}\nfunc (m *PodCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodCondition.Merge(m, src)\n}\nfunc (m *PodCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodCondition proto.InternalMessageInfo\n\nfunc (m *PodDNSConfig) Reset()      { *m = PodDNSConfig{} }\nfunc (*PodDNSConfig) ProtoMessage() {}\nfunc (*PodDNSConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{127}\n}\nfunc (m *PodDNSConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDNSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDNSConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDNSConfig.Merge(m, src)\n}\nfunc (m *PodDNSConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDNSConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDNSConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDNSConfig proto.InternalMessageInfo\n\nfunc (m *PodDNSConfigOption) Reset()      { *m = PodDNSConfigOption{} }\nfunc (*PodDNSConfigOption) ProtoMessage() {}\nfunc (*PodDNSConfigOption) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{128}\n}\nfunc (m *PodDNSConfigOption) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDNSConfigOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDNSConfigOption) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDNSConfigOption.Merge(m, src)\n}\nfunc (m *PodDNSConfigOption) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDNSConfigOption) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDNSConfigOption.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDNSConfigOption proto.InternalMessageInfo\n\nfunc (m *PodExecOptions) Reset()      { *m = PodExecOptions{} }\nfunc (*PodExecOptions) ProtoMessage() {}\nfunc (*PodExecOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{129}\n}\nfunc (m *PodExecOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodExecOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodExecOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodExecOptions.Merge(m, src)\n}\nfunc (m *PodExecOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodExecOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodExecOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodExecOptions proto.InternalMessageInfo\n\nfunc (m *PodIP) Reset()      { *m = PodIP{} }\nfunc (*PodIP) ProtoMessage() {}\nfunc (*PodIP) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{130}\n}\nfunc (m *PodIP) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodIP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodIP) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodIP.Merge(m, src)\n}\nfunc (m *PodIP) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodIP) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodIP.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodIP proto.InternalMessageInfo\n\nfunc (m *PodList) Reset()      { *m = PodList{} }\nfunc (*PodList) ProtoMessage() {}\nfunc (*PodList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{131}\n}\nfunc (m *PodList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodList.Merge(m, src)\n}\nfunc (m *PodList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodList proto.InternalMessageInfo\n\nfunc (m *PodLogOptions) Reset()      { *m = PodLogOptions{} }\nfunc (*PodLogOptions) ProtoMessage() {}\nfunc (*PodLogOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{132}\n}\nfunc (m *PodLogOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodLogOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodLogOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodLogOptions.Merge(m, src)\n}\nfunc (m *PodLogOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodLogOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodLogOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodLogOptions proto.InternalMessageInfo\n\nfunc (m *PodOS) Reset()      { *m = PodOS{} }\nfunc (*PodOS) ProtoMessage() {}\nfunc (*PodOS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{133}\n}\nfunc (m *PodOS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodOS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodOS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodOS.Merge(m, src)\n}\nfunc (m *PodOS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodOS) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodOS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodOS proto.InternalMessageInfo\n\nfunc (m *PodPortForwardOptions) Reset()      { *m = PodPortForwardOptions{} }\nfunc (*PodPortForwardOptions) ProtoMessage() {}\nfunc (*PodPortForwardOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{134}\n}\nfunc (m *PodPortForwardOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodPortForwardOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodPortForwardOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodPortForwardOptions.Merge(m, src)\n}\nfunc (m *PodPortForwardOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodPortForwardOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodPortForwardOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodPortForwardOptions proto.InternalMessageInfo\n\nfunc (m *PodProxyOptions) Reset()      { *m = PodProxyOptions{} }\nfunc (*PodProxyOptions) ProtoMessage() {}\nfunc (*PodProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{135}\n}\nfunc (m *PodProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodProxyOptions.Merge(m, src)\n}\nfunc (m *PodProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodProxyOptions proto.InternalMessageInfo\n\nfunc (m *PodReadinessGate) Reset()      { *m = PodReadinessGate{} }\nfunc (*PodReadinessGate) ProtoMessage() {}\nfunc (*PodReadinessGate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{136}\n}\nfunc (m *PodReadinessGate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodReadinessGate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodReadinessGate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodReadinessGate.Merge(m, src)\n}\nfunc (m *PodReadinessGate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodReadinessGate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodReadinessGate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodReadinessGate proto.InternalMessageInfo\n\nfunc (m *PodResourceClaim) Reset()      { *m = PodResourceClaim{} }\nfunc (*PodResourceClaim) ProtoMessage() {}\nfunc (*PodResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{137}\n}\nfunc (m *PodResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodResourceClaim.Merge(m, src)\n}\nfunc (m *PodResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodResourceClaim proto.InternalMessageInfo\n\nfunc (m *PodSchedulingGate) Reset()      { *m = PodSchedulingGate{} }\nfunc (*PodSchedulingGate) ProtoMessage() {}\nfunc (*PodSchedulingGate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{138}\n}\nfunc (m *PodSchedulingGate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingGate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingGate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingGate.Merge(m, src)\n}\nfunc (m *PodSchedulingGate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingGate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingGate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingGate proto.InternalMessageInfo\n\nfunc (m *PodSecurityContext) Reset()      { *m = PodSecurityContext{} }\nfunc (*PodSecurityContext) ProtoMessage() {}\nfunc (*PodSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{139}\n}\nfunc (m *PodSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSecurityContext.Merge(m, src)\n}\nfunc (m *PodSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSecurityContext proto.InternalMessageInfo\n\nfunc (m *PodSignature) Reset()      { *m = PodSignature{} }\nfunc (*PodSignature) ProtoMessage() {}\nfunc (*PodSignature) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{140}\n}\nfunc (m *PodSignature) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSignature) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSignature.Merge(m, src)\n}\nfunc (m *PodSignature) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSignature) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSignature.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSignature proto.InternalMessageInfo\n\nfunc (m *PodSpec) Reset()      { *m = PodSpec{} }\nfunc (*PodSpec) ProtoMessage() {}\nfunc (*PodSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{141}\n}\nfunc (m *PodSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSpec.Merge(m, src)\n}\nfunc (m *PodSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSpec proto.InternalMessageInfo\n\nfunc (m *PodStatus) Reset()      { *m = PodStatus{} }\nfunc (*PodStatus) ProtoMessage() {}\nfunc (*PodStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{142}\n}\nfunc (m *PodStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodStatus.Merge(m, src)\n}\nfunc (m *PodStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodStatus proto.InternalMessageInfo\n\nfunc (m *PodStatusResult) Reset()      { *m = PodStatusResult{} }\nfunc (*PodStatusResult) ProtoMessage() {}\nfunc (*PodStatusResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{143}\n}\nfunc (m *PodStatusResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodStatusResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodStatusResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodStatusResult.Merge(m, src)\n}\nfunc (m *PodStatusResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodStatusResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodStatusResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodStatusResult proto.InternalMessageInfo\n\nfunc (m *PodTemplate) Reset()      { *m = PodTemplate{} }\nfunc (*PodTemplate) ProtoMessage() {}\nfunc (*PodTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{144}\n}\nfunc (m *PodTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplate.Merge(m, src)\n}\nfunc (m *PodTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplate proto.InternalMessageInfo\n\nfunc (m *PodTemplateList) Reset()      { *m = PodTemplateList{} }\nfunc (*PodTemplateList) ProtoMessage() {}\nfunc (*PodTemplateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{145}\n}\nfunc (m *PodTemplateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplateList.Merge(m, src)\n}\nfunc (m *PodTemplateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplateList proto.InternalMessageInfo\n\nfunc (m *PodTemplateSpec) Reset()      { *m = PodTemplateSpec{} }\nfunc (*PodTemplateSpec) ProtoMessage() {}\nfunc (*PodTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{146}\n}\nfunc (m *PodTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplateSpec.Merge(m, src)\n}\nfunc (m *PodTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplateSpec proto.InternalMessageInfo\n\nfunc (m *PortStatus) Reset()      { *m = PortStatus{} }\nfunc (*PortStatus) ProtoMessage() {}\nfunc (*PortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{147}\n}\nfunc (m *PortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortStatus.Merge(m, src)\n}\nfunc (m *PortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortStatus proto.InternalMessageInfo\n\nfunc (m *PortworxVolumeSource) Reset()      { *m = PortworxVolumeSource{} }\nfunc (*PortworxVolumeSource) ProtoMessage() {}\nfunc (*PortworxVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{148}\n}\nfunc (m *PortworxVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortworxVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PortworxVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortworxVolumeSource.Merge(m, src)\n}\nfunc (m *PortworxVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortworxVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortworxVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortworxVolumeSource proto.InternalMessageInfo\n\nfunc (m *Preconditions) Reset()      { *m = Preconditions{} }\nfunc (*Preconditions) ProtoMessage() {}\nfunc (*Preconditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{149}\n}\nfunc (m *Preconditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Preconditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Preconditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Preconditions.Merge(m, src)\n}\nfunc (m *Preconditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Preconditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_Preconditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Preconditions proto.InternalMessageInfo\n\nfunc (m *PreferAvoidPodsEntry) Reset()      { *m = PreferAvoidPodsEntry{} }\nfunc (*PreferAvoidPodsEntry) ProtoMessage() {}\nfunc (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{150}\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferAvoidPodsEntry.Merge(m, src)\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferAvoidPodsEntry) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferAvoidPodsEntry.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferAvoidPodsEntry proto.InternalMessageInfo\n\nfunc (m *PreferredSchedulingTerm) Reset()      { *m = PreferredSchedulingTerm{} }\nfunc (*PreferredSchedulingTerm) ProtoMessage() {}\nfunc (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{151}\n}\nfunc (m *PreferredSchedulingTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferredSchedulingTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PreferredSchedulingTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferredSchedulingTerm.Merge(m, src)\n}\nfunc (m *PreferredSchedulingTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferredSchedulingTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferredSchedulingTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferredSchedulingTerm proto.InternalMessageInfo\n\nfunc (m *Probe) Reset()      { *m = Probe{} }\nfunc (*Probe) ProtoMessage() {}\nfunc (*Probe) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{152}\n}\nfunc (m *Probe) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Probe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Probe) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Probe.Merge(m, src)\n}\nfunc (m *Probe) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Probe) XXX_DiscardUnknown() {\n\txxx_messageInfo_Probe.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Probe proto.InternalMessageInfo\n\nfunc (m *ProbeHandler) Reset()      { *m = ProbeHandler{} }\nfunc (*ProbeHandler) ProtoMessage() {}\nfunc (*ProbeHandler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{153}\n}\nfunc (m *ProbeHandler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ProbeHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ProbeHandler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ProbeHandler.Merge(m, src)\n}\nfunc (m *ProbeHandler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ProbeHandler) XXX_DiscardUnknown() {\n\txxx_messageInfo_ProbeHandler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ProbeHandler proto.InternalMessageInfo\n\nfunc (m *ProjectedVolumeSource) Reset()      { *m = ProjectedVolumeSource{} }\nfunc (*ProjectedVolumeSource) ProtoMessage() {}\nfunc (*ProjectedVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{154}\n}\nfunc (m *ProjectedVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ProjectedVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ProjectedVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ProjectedVolumeSource.Merge(m, src)\n}\nfunc (m *ProjectedVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ProjectedVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ProjectedVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ProjectedVolumeSource proto.InternalMessageInfo\n\nfunc (m *QuobyteVolumeSource) Reset()      { *m = QuobyteVolumeSource{} }\nfunc (*QuobyteVolumeSource) ProtoMessage() {}\nfunc (*QuobyteVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{155}\n}\nfunc (m *QuobyteVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QuobyteVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QuobyteVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QuobyteVolumeSource.Merge(m, src)\n}\nfunc (m *QuobyteVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QuobyteVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_QuobyteVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QuobyteVolumeSource proto.InternalMessageInfo\n\nfunc (m *RBDPersistentVolumeSource) Reset()      { *m = RBDPersistentVolumeSource{} }\nfunc (*RBDPersistentVolumeSource) ProtoMessage() {}\nfunc (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{156}\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RBDPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RBDPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_RBDPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RBDPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *RBDVolumeSource) Reset()      { *m = RBDVolumeSource{} }\nfunc (*RBDVolumeSource) ProtoMessage() {}\nfunc (*RBDVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{157}\n}\nfunc (m *RBDVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RBDVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RBDVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RBDVolumeSource.Merge(m, src)\n}\nfunc (m *RBDVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RBDVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_RBDVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RBDVolumeSource proto.InternalMessageInfo\n\nfunc (m *RangeAllocation) Reset()      { *m = RangeAllocation{} }\nfunc (*RangeAllocation) ProtoMessage() {}\nfunc (*RangeAllocation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{158}\n}\nfunc (m *RangeAllocation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RangeAllocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RangeAllocation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RangeAllocation.Merge(m, src)\n}\nfunc (m *RangeAllocation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RangeAllocation) XXX_DiscardUnknown() {\n\txxx_messageInfo_RangeAllocation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RangeAllocation proto.InternalMessageInfo\n\nfunc (m *ReplicationController) Reset()      { *m = ReplicationController{} }\nfunc (*ReplicationController) ProtoMessage() {}\nfunc (*ReplicationController) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{159}\n}\nfunc (m *ReplicationController) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationController) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationController) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationController.Merge(m, src)\n}\nfunc (m *ReplicationController) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationController) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationController.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationController proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerCondition) Reset()      { *m = ReplicationControllerCondition{} }\nfunc (*ReplicationControllerCondition) ProtoMessage() {}\nfunc (*ReplicationControllerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{160}\n}\nfunc (m *ReplicationControllerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerCondition.Merge(m, src)\n}\nfunc (m *ReplicationControllerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerCondition proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerList) Reset()      { *m = ReplicationControllerList{} }\nfunc (*ReplicationControllerList) ProtoMessage() {}\nfunc (*ReplicationControllerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{161}\n}\nfunc (m *ReplicationControllerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerList.Merge(m, src)\n}\nfunc (m *ReplicationControllerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerList proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerSpec) Reset()      { *m = ReplicationControllerSpec{} }\nfunc (*ReplicationControllerSpec) ProtoMessage() {}\nfunc (*ReplicationControllerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{162}\n}\nfunc (m *ReplicationControllerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerSpec.Merge(m, src)\n}\nfunc (m *ReplicationControllerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerSpec proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerStatus) Reset()      { *m = ReplicationControllerStatus{} }\nfunc (*ReplicationControllerStatus) ProtoMessage() {}\nfunc (*ReplicationControllerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{163}\n}\nfunc (m *ReplicationControllerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerStatus.Merge(m, src)\n}\nfunc (m *ReplicationControllerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaim) Reset()      { *m = ResourceClaim{} }\nfunc (*ResourceClaim) ProtoMessage() {}\nfunc (*ResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{164}\n}\nfunc (m *ResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaim.Merge(m, src)\n}\nfunc (m *ResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaim proto.InternalMessageInfo\n\nfunc (m *ResourceFieldSelector) Reset()      { *m = ResourceFieldSelector{} }\nfunc (*ResourceFieldSelector) ProtoMessage() {}\nfunc (*ResourceFieldSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{165}\n}\nfunc (m *ResourceFieldSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceFieldSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceFieldSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceFieldSelector.Merge(m, src)\n}\nfunc (m *ResourceFieldSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceFieldSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceFieldSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceFieldSelector proto.InternalMessageInfo\n\nfunc (m *ResourceQuota) Reset()      { *m = ResourceQuota{} }\nfunc (*ResourceQuota) ProtoMessage() {}\nfunc (*ResourceQuota) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{166}\n}\nfunc (m *ResourceQuota) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuota) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuota.Merge(m, src)\n}\nfunc (m *ResourceQuota) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuota) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuota.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuota proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaList) Reset()      { *m = ResourceQuotaList{} }\nfunc (*ResourceQuotaList) ProtoMessage() {}\nfunc (*ResourceQuotaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{167}\n}\nfunc (m *ResourceQuotaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaList.Merge(m, src)\n}\nfunc (m *ResourceQuotaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaList proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaSpec) Reset()      { *m = ResourceQuotaSpec{} }\nfunc (*ResourceQuotaSpec) ProtoMessage() {}\nfunc (*ResourceQuotaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{168}\n}\nfunc (m *ResourceQuotaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaSpec.Merge(m, src)\n}\nfunc (m *ResourceQuotaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaSpec proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaStatus) Reset()      { *m = ResourceQuotaStatus{} }\nfunc (*ResourceQuotaStatus) ProtoMessage() {}\nfunc (*ResourceQuotaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{169}\n}\nfunc (m *ResourceQuotaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaStatus.Merge(m, src)\n}\nfunc (m *ResourceQuotaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaStatus proto.InternalMessageInfo\n\nfunc (m *ResourceRequirements) Reset()      { *m = ResourceRequirements{} }\nfunc (*ResourceRequirements) ProtoMessage() {}\nfunc (*ResourceRequirements) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{170}\n}\nfunc (m *ResourceRequirements) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRequirements) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRequirements.Merge(m, src)\n}\nfunc (m *ResourceRequirements) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRequirements) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRequirements.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRequirements proto.InternalMessageInfo\n\nfunc (m *SELinuxOptions) Reset()      { *m = SELinuxOptions{} }\nfunc (*SELinuxOptions) ProtoMessage() {}\nfunc (*SELinuxOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{171}\n}\nfunc (m *SELinuxOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SELinuxOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SELinuxOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SELinuxOptions.Merge(m, src)\n}\nfunc (m *SELinuxOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SELinuxOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_SELinuxOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SELinuxOptions proto.InternalMessageInfo\n\nfunc (m *ScaleIOPersistentVolumeSource) Reset()      { *m = ScaleIOPersistentVolumeSource{} }\nfunc (*ScaleIOPersistentVolumeSource) ProtoMessage() {}\nfunc (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{172}\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleIOPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleIOPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleIOPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *ScaleIOVolumeSource) Reset()      { *m = ScaleIOVolumeSource{} }\nfunc (*ScaleIOVolumeSource) ProtoMessage() {}\nfunc (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{173}\n}\nfunc (m *ScaleIOVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleIOVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleIOVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleIOVolumeSource.Merge(m, src)\n}\nfunc (m *ScaleIOVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleIOVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleIOVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleIOVolumeSource proto.InternalMessageInfo\n\nfunc (m *ScopeSelector) Reset()      { *m = ScopeSelector{} }\nfunc (*ScopeSelector) ProtoMessage() {}\nfunc (*ScopeSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{174}\n}\nfunc (m *ScopeSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScopeSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScopeSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScopeSelector.Merge(m, src)\n}\nfunc (m *ScopeSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScopeSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScopeSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScopeSelector proto.InternalMessageInfo\n\nfunc (m *ScopedResourceSelectorRequirement) Reset()      { *m = ScopedResourceSelectorRequirement{} }\nfunc (*ScopedResourceSelectorRequirement) ProtoMessage() {}\nfunc (*ScopedResourceSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{175}\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScopedResourceSelectorRequirement.Merge(m, src)\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScopedResourceSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScopedResourceSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *SeccompProfile) Reset()      { *m = SeccompProfile{} }\nfunc (*SeccompProfile) ProtoMessage() {}\nfunc (*SeccompProfile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{176}\n}\nfunc (m *SeccompProfile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SeccompProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SeccompProfile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SeccompProfile.Merge(m, src)\n}\nfunc (m *SeccompProfile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SeccompProfile) XXX_DiscardUnknown() {\n\txxx_messageInfo_SeccompProfile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SeccompProfile proto.InternalMessageInfo\n\nfunc (m *Secret) Reset()      { *m = Secret{} }\nfunc (*Secret) ProtoMessage() {}\nfunc (*Secret) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{177}\n}\nfunc (m *Secret) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Secret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Secret) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Secret.Merge(m, src)\n}\nfunc (m *Secret) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Secret) XXX_DiscardUnknown() {\n\txxx_messageInfo_Secret.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Secret proto.InternalMessageInfo\n\nfunc (m *SecretEnvSource) Reset()      { *m = SecretEnvSource{} }\nfunc (*SecretEnvSource) ProtoMessage() {}\nfunc (*SecretEnvSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{178}\n}\nfunc (m *SecretEnvSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretEnvSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretEnvSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretEnvSource.Merge(m, src)\n}\nfunc (m *SecretEnvSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretEnvSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretEnvSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretEnvSource proto.InternalMessageInfo\n\nfunc (m *SecretKeySelector) Reset()      { *m = SecretKeySelector{} }\nfunc (*SecretKeySelector) ProtoMessage() {}\nfunc (*SecretKeySelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{179}\n}\nfunc (m *SecretKeySelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretKeySelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretKeySelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretKeySelector.Merge(m, src)\n}\nfunc (m *SecretKeySelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretKeySelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretKeySelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretKeySelector proto.InternalMessageInfo\n\nfunc (m *SecretList) Reset()      { *m = SecretList{} }\nfunc (*SecretList) ProtoMessage() {}\nfunc (*SecretList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{180}\n}\nfunc (m *SecretList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretList.Merge(m, src)\n}\nfunc (m *SecretList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretList) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretList proto.InternalMessageInfo\n\nfunc (m *SecretProjection) Reset()      { *m = SecretProjection{} }\nfunc (*SecretProjection) ProtoMessage() {}\nfunc (*SecretProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{181}\n}\nfunc (m *SecretProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretProjection.Merge(m, src)\n}\nfunc (m *SecretProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretProjection proto.InternalMessageInfo\n\nfunc (m *SecretReference) Reset()      { *m = SecretReference{} }\nfunc (*SecretReference) ProtoMessage() {}\nfunc (*SecretReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{182}\n}\nfunc (m *SecretReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretReference.Merge(m, src)\n}\nfunc (m *SecretReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretReference proto.InternalMessageInfo\n\nfunc (m *SecretVolumeSource) Reset()      { *m = SecretVolumeSource{} }\nfunc (*SecretVolumeSource) ProtoMessage() {}\nfunc (*SecretVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{183}\n}\nfunc (m *SecretVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretVolumeSource.Merge(m, src)\n}\nfunc (m *SecretVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretVolumeSource proto.InternalMessageInfo\n\nfunc (m *SecurityContext) Reset()      { *m = SecurityContext{} }\nfunc (*SecurityContext) ProtoMessage() {}\nfunc (*SecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{184}\n}\nfunc (m *SecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecurityContext.Merge(m, src)\n}\nfunc (m *SecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecurityContext proto.InternalMessageInfo\n\nfunc (m *SerializedReference) Reset()      { *m = SerializedReference{} }\nfunc (*SerializedReference) ProtoMessage() {}\nfunc (*SerializedReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{185}\n}\nfunc (m *SerializedReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SerializedReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SerializedReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SerializedReference.Merge(m, src)\n}\nfunc (m *SerializedReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SerializedReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_SerializedReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SerializedReference proto.InternalMessageInfo\n\nfunc (m *Service) Reset()      { *m = Service{} }\nfunc (*Service) ProtoMessage() {}\nfunc (*Service) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{186}\n}\nfunc (m *Service) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Service) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Service.Merge(m, src)\n}\nfunc (m *Service) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Service) XXX_DiscardUnknown() {\n\txxx_messageInfo_Service.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Service proto.InternalMessageInfo\n\nfunc (m *ServiceAccount) Reset()      { *m = ServiceAccount{} }\nfunc (*ServiceAccount) ProtoMessage() {}\nfunc (*ServiceAccount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{187}\n}\nfunc (m *ServiceAccount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccount.Merge(m, src)\n}\nfunc (m *ServiceAccount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccount) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccount proto.InternalMessageInfo\n\nfunc (m *ServiceAccountList) Reset()      { *m = ServiceAccountList{} }\nfunc (*ServiceAccountList) ProtoMessage() {}\nfunc (*ServiceAccountList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{188}\n}\nfunc (m *ServiceAccountList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountList.Merge(m, src)\n}\nfunc (m *ServiceAccountList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountList proto.InternalMessageInfo\n\nfunc (m *ServiceAccountTokenProjection) Reset()      { *m = ServiceAccountTokenProjection{} }\nfunc (*ServiceAccountTokenProjection) ProtoMessage() {}\nfunc (*ServiceAccountTokenProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{189}\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountTokenProjection.Merge(m, src)\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountTokenProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountTokenProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountTokenProjection proto.InternalMessageInfo\n\nfunc (m *ServiceList) Reset()      { *m = ServiceList{} }\nfunc (*ServiceList) ProtoMessage() {}\nfunc (*ServiceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{190}\n}\nfunc (m *ServiceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceList.Merge(m, src)\n}\nfunc (m *ServiceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceList proto.InternalMessageInfo\n\nfunc (m *ServicePort) Reset()      { *m = ServicePort{} }\nfunc (*ServicePort) ProtoMessage() {}\nfunc (*ServicePort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{191}\n}\nfunc (m *ServicePort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServicePort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServicePort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServicePort.Merge(m, src)\n}\nfunc (m *ServicePort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServicePort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServicePort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServicePort proto.InternalMessageInfo\n\nfunc (m *ServiceProxyOptions) Reset()      { *m = ServiceProxyOptions{} }\nfunc (*ServiceProxyOptions) ProtoMessage() {}\nfunc (*ServiceProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{192}\n}\nfunc (m *ServiceProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceProxyOptions.Merge(m, src)\n}\nfunc (m *ServiceProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceProxyOptions proto.InternalMessageInfo\n\nfunc (m *ServiceSpec) Reset()      { *m = ServiceSpec{} }\nfunc (*ServiceSpec) ProtoMessage() {}\nfunc (*ServiceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{193}\n}\nfunc (m *ServiceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceSpec.Merge(m, src)\n}\nfunc (m *ServiceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceSpec proto.InternalMessageInfo\n\nfunc (m *ServiceStatus) Reset()      { *m = ServiceStatus{} }\nfunc (*ServiceStatus) ProtoMessage() {}\nfunc (*ServiceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{194}\n}\nfunc (m *ServiceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceStatus.Merge(m, src)\n}\nfunc (m *ServiceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceStatus proto.InternalMessageInfo\n\nfunc (m *SessionAffinityConfig) Reset()      { *m = SessionAffinityConfig{} }\nfunc (*SessionAffinityConfig) ProtoMessage() {}\nfunc (*SessionAffinityConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{195}\n}\nfunc (m *SessionAffinityConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SessionAffinityConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SessionAffinityConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SessionAffinityConfig.Merge(m, src)\n}\nfunc (m *SessionAffinityConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SessionAffinityConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_SessionAffinityConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SessionAffinityConfig proto.InternalMessageInfo\n\nfunc (m *StorageOSPersistentVolumeSource) Reset()      { *m = StorageOSPersistentVolumeSource{} }\nfunc (*StorageOSPersistentVolumeSource) ProtoMessage() {}\nfunc (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{196}\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageOSPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageOSPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageOSPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *StorageOSVolumeSource) Reset()      { *m = StorageOSVolumeSource{} }\nfunc (*StorageOSVolumeSource) ProtoMessage() {}\nfunc (*StorageOSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{197}\n}\nfunc (m *StorageOSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageOSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageOSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageOSVolumeSource.Merge(m, src)\n}\nfunc (m *StorageOSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageOSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageOSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageOSVolumeSource proto.InternalMessageInfo\n\nfunc (m *Sysctl) Reset()      { *m = Sysctl{} }\nfunc (*Sysctl) ProtoMessage() {}\nfunc (*Sysctl) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{198}\n}\nfunc (m *Sysctl) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Sysctl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Sysctl) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Sysctl.Merge(m, src)\n}\nfunc (m *Sysctl) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Sysctl) XXX_DiscardUnknown() {\n\txxx_messageInfo_Sysctl.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Sysctl proto.InternalMessageInfo\n\nfunc (m *TCPSocketAction) Reset()      { *m = TCPSocketAction{} }\nfunc (*TCPSocketAction) ProtoMessage() {}\nfunc (*TCPSocketAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{199}\n}\nfunc (m *TCPSocketAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TCPSocketAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TCPSocketAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TCPSocketAction.Merge(m, src)\n}\nfunc (m *TCPSocketAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TCPSocketAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_TCPSocketAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TCPSocketAction proto.InternalMessageInfo\n\nfunc (m *Taint) Reset()      { *m = Taint{} }\nfunc (*Taint) ProtoMessage() {}\nfunc (*Taint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{200}\n}\nfunc (m *Taint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Taint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Taint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Taint.Merge(m, src)\n}\nfunc (m *Taint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Taint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Taint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Taint proto.InternalMessageInfo\n\nfunc (m *Toleration) Reset()      { *m = Toleration{} }\nfunc (*Toleration) ProtoMessage() {}\nfunc (*Toleration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{201}\n}\nfunc (m *Toleration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Toleration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Toleration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Toleration.Merge(m, src)\n}\nfunc (m *Toleration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Toleration) XXX_DiscardUnknown() {\n\txxx_messageInfo_Toleration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Toleration proto.InternalMessageInfo\n\nfunc (m *TopologySelectorLabelRequirement) Reset()      { *m = TopologySelectorLabelRequirement{} }\nfunc (*TopologySelectorLabelRequirement) ProtoMessage() {}\nfunc (*TopologySelectorLabelRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{202}\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySelectorLabelRequirement.Merge(m, src)\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySelectorLabelRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySelectorLabelRequirement proto.InternalMessageInfo\n\nfunc (m *TopologySelectorTerm) Reset()      { *m = TopologySelectorTerm{} }\nfunc (*TopologySelectorTerm) ProtoMessage() {}\nfunc (*TopologySelectorTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{203}\n}\nfunc (m *TopologySelectorTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySelectorTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySelectorTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySelectorTerm.Merge(m, src)\n}\nfunc (m *TopologySelectorTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySelectorTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySelectorTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySelectorTerm proto.InternalMessageInfo\n\nfunc (m *TopologySpreadConstraint) Reset()      { *m = TopologySpreadConstraint{} }\nfunc (*TopologySpreadConstraint) ProtoMessage() {}\nfunc (*TopologySpreadConstraint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{204}\n}\nfunc (m *TopologySpreadConstraint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySpreadConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySpreadConstraint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySpreadConstraint.Merge(m, src)\n}\nfunc (m *TopologySpreadConstraint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySpreadConstraint) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySpreadConstraint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySpreadConstraint proto.InternalMessageInfo\n\nfunc (m *TypedLocalObjectReference) Reset()      { *m = TypedLocalObjectReference{} }\nfunc (*TypedLocalObjectReference) ProtoMessage() {}\nfunc (*TypedLocalObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{205}\n}\nfunc (m *TypedLocalObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypedLocalObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypedLocalObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypedLocalObjectReference.Merge(m, src)\n}\nfunc (m *TypedLocalObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypedLocalObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypedLocalObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypedLocalObjectReference proto.InternalMessageInfo\n\nfunc (m *TypedObjectReference) Reset()      { *m = TypedObjectReference{} }\nfunc (*TypedObjectReference) ProtoMessage() {}\nfunc (*TypedObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{206}\n}\nfunc (m *TypedObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypedObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypedObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypedObjectReference.Merge(m, src)\n}\nfunc (m *TypedObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypedObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypedObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypedObjectReference proto.InternalMessageInfo\n\nfunc (m *Volume) Reset()      { *m = Volume{} }\nfunc (*Volume) ProtoMessage() {}\nfunc (*Volume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{207}\n}\nfunc (m *Volume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Volume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Volume.Merge(m, src)\n}\nfunc (m *Volume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Volume) XXX_DiscardUnknown() {\n\txxx_messageInfo_Volume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Volume proto.InternalMessageInfo\n\nfunc (m *VolumeDevice) Reset()      { *m = VolumeDevice{} }\nfunc (*VolumeDevice) ProtoMessage() {}\nfunc (*VolumeDevice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{208}\n}\nfunc (m *VolumeDevice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeDevice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeDevice.Merge(m, src)\n}\nfunc (m *VolumeDevice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeDevice) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeDevice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeDevice proto.InternalMessageInfo\n\nfunc (m *VolumeMount) Reset()      { *m = VolumeMount{} }\nfunc (*VolumeMount) ProtoMessage() {}\nfunc (*VolumeMount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{209}\n}\nfunc (m *VolumeMount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeMount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeMount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeMount.Merge(m, src)\n}\nfunc (m *VolumeMount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeMount) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeMount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeMount proto.InternalMessageInfo\n\nfunc (m *VolumeNodeAffinity) Reset()      { *m = VolumeNodeAffinity{} }\nfunc (*VolumeNodeAffinity) ProtoMessage() {}\nfunc (*VolumeNodeAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{210}\n}\nfunc (m *VolumeNodeAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeAffinity.Merge(m, src)\n}\nfunc (m *VolumeNodeAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeAffinity proto.InternalMessageInfo\n\nfunc (m *VolumeProjection) Reset()      { *m = VolumeProjection{} }\nfunc (*VolumeProjection) ProtoMessage() {}\nfunc (*VolumeProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{211}\n}\nfunc (m *VolumeProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeProjection.Merge(m, src)\n}\nfunc (m *VolumeProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeProjection proto.InternalMessageInfo\n\nfunc (m *VolumeSource) Reset()      { *m = VolumeSource{} }\nfunc (*VolumeSource) ProtoMessage() {}\nfunc (*VolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{212}\n}\nfunc (m *VolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeSource.Merge(m, src)\n}\nfunc (m *VolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeSource proto.InternalMessageInfo\n\nfunc (m *VsphereVirtualDiskVolumeSource) Reset()      { *m = VsphereVirtualDiskVolumeSource{} }\nfunc (*VsphereVirtualDiskVolumeSource) ProtoMessage() {}\nfunc (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{213}\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VsphereVirtualDiskVolumeSource.Merge(m, src)\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VsphereVirtualDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VsphereVirtualDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *WeightedPodAffinityTerm) Reset()      { *m = WeightedPodAffinityTerm{} }\nfunc (*WeightedPodAffinityTerm) ProtoMessage() {}\nfunc (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{214}\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WeightedPodAffinityTerm.Merge(m, src)\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WeightedPodAffinityTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_WeightedPodAffinityTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WeightedPodAffinityTerm proto.InternalMessageInfo\n\nfunc (m *WindowsSecurityContextOptions) Reset()      { *m = WindowsSecurityContextOptions{} }\nfunc (*WindowsSecurityContextOptions) ProtoMessage() {}\nfunc (*WindowsSecurityContextOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_83c10c24ec417dc9, []int{215}\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsSecurityContextOptions.Merge(m, src)\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsSecurityContextOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsSecurityContextOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsSecurityContextOptions proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AWSElasticBlockStoreVolumeSource)(nil), \"k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource\")\n\tproto.RegisterType((*Affinity)(nil), \"k8s.io.api.core.v1.Affinity\")\n\tproto.RegisterType((*AttachedVolume)(nil), \"k8s.io.api.core.v1.AttachedVolume\")\n\tproto.RegisterType((*AvoidPods)(nil), \"k8s.io.api.core.v1.AvoidPods\")\n\tproto.RegisterType((*AzureDiskVolumeSource)(nil), \"k8s.io.api.core.v1.AzureDiskVolumeSource\")\n\tproto.RegisterType((*AzureFilePersistentVolumeSource)(nil), \"k8s.io.api.core.v1.AzureFilePersistentVolumeSource\")\n\tproto.RegisterType((*AzureFileVolumeSource)(nil), \"k8s.io.api.core.v1.AzureFileVolumeSource\")\n\tproto.RegisterType((*Binding)(nil), \"k8s.io.api.core.v1.Binding\")\n\tproto.RegisterType((*CSIPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CSIPersistentVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.CSIPersistentVolumeSource.VolumeAttributesEntry\")\n\tproto.RegisterType((*CSIVolumeSource)(nil), \"k8s.io.api.core.v1.CSIVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.CSIVolumeSource.VolumeAttributesEntry\")\n\tproto.RegisterType((*Capabilities)(nil), \"k8s.io.api.core.v1.Capabilities\")\n\tproto.RegisterType((*CephFSPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CephFSPersistentVolumeSource\")\n\tproto.RegisterType((*CephFSVolumeSource)(nil), \"k8s.io.api.core.v1.CephFSVolumeSource\")\n\tproto.RegisterType((*CinderPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CinderPersistentVolumeSource\")\n\tproto.RegisterType((*CinderVolumeSource)(nil), \"k8s.io.api.core.v1.CinderVolumeSource\")\n\tproto.RegisterType((*ClaimSource)(nil), \"k8s.io.api.core.v1.ClaimSource\")\n\tproto.RegisterType((*ClientIPConfig)(nil), \"k8s.io.api.core.v1.ClientIPConfig\")\n\tproto.RegisterType((*ComponentCondition)(nil), \"k8s.io.api.core.v1.ComponentCondition\")\n\tproto.RegisterType((*ComponentStatus)(nil), \"k8s.io.api.core.v1.ComponentStatus\")\n\tproto.RegisterType((*ComponentStatusList)(nil), \"k8s.io.api.core.v1.ComponentStatusList\")\n\tproto.RegisterType((*ConfigMap)(nil), \"k8s.io.api.core.v1.ConfigMap\")\n\tproto.RegisterMapType((map[string][]byte)(nil), \"k8s.io.api.core.v1.ConfigMap.BinaryDataEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ConfigMap.DataEntry\")\n\tproto.RegisterType((*ConfigMapEnvSource)(nil), \"k8s.io.api.core.v1.ConfigMapEnvSource\")\n\tproto.RegisterType((*ConfigMapKeySelector)(nil), \"k8s.io.api.core.v1.ConfigMapKeySelector\")\n\tproto.RegisterType((*ConfigMapList)(nil), \"k8s.io.api.core.v1.ConfigMapList\")\n\tproto.RegisterType((*ConfigMapNodeConfigSource)(nil), \"k8s.io.api.core.v1.ConfigMapNodeConfigSource\")\n\tproto.RegisterType((*ConfigMapProjection)(nil), \"k8s.io.api.core.v1.ConfigMapProjection\")\n\tproto.RegisterType((*ConfigMapVolumeSource)(nil), \"k8s.io.api.core.v1.ConfigMapVolumeSource\")\n\tproto.RegisterType((*Container)(nil), \"k8s.io.api.core.v1.Container\")\n\tproto.RegisterType((*ContainerImage)(nil), \"k8s.io.api.core.v1.ContainerImage\")\n\tproto.RegisterType((*ContainerPort)(nil), \"k8s.io.api.core.v1.ContainerPort\")\n\tproto.RegisterType((*ContainerResizePolicy)(nil), \"k8s.io.api.core.v1.ContainerResizePolicy\")\n\tproto.RegisterType((*ContainerState)(nil), \"k8s.io.api.core.v1.ContainerState\")\n\tproto.RegisterType((*ContainerStateRunning)(nil), \"k8s.io.api.core.v1.ContainerStateRunning\")\n\tproto.RegisterType((*ContainerStateTerminated)(nil), \"k8s.io.api.core.v1.ContainerStateTerminated\")\n\tproto.RegisterType((*ContainerStateWaiting)(nil), \"k8s.io.api.core.v1.ContainerStateWaiting\")\n\tproto.RegisterType((*ContainerStatus)(nil), \"k8s.io.api.core.v1.ContainerStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ContainerStatus.AllocatedResourcesEntry\")\n\tproto.RegisterType((*DaemonEndpoint)(nil), \"k8s.io.api.core.v1.DaemonEndpoint\")\n\tproto.RegisterType((*DownwardAPIProjection)(nil), \"k8s.io.api.core.v1.DownwardAPIProjection\")\n\tproto.RegisterType((*DownwardAPIVolumeFile)(nil), \"k8s.io.api.core.v1.DownwardAPIVolumeFile\")\n\tproto.RegisterType((*DownwardAPIVolumeSource)(nil), \"k8s.io.api.core.v1.DownwardAPIVolumeSource\")\n\tproto.RegisterType((*EmptyDirVolumeSource)(nil), \"k8s.io.api.core.v1.EmptyDirVolumeSource\")\n\tproto.RegisterType((*EndpointAddress)(nil), \"k8s.io.api.core.v1.EndpointAddress\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.core.v1.EndpointPort\")\n\tproto.RegisterType((*EndpointSubset)(nil), \"k8s.io.api.core.v1.EndpointSubset\")\n\tproto.RegisterType((*Endpoints)(nil), \"k8s.io.api.core.v1.Endpoints\")\n\tproto.RegisterType((*EndpointsList)(nil), \"k8s.io.api.core.v1.EndpointsList\")\n\tproto.RegisterType((*EnvFromSource)(nil), \"k8s.io.api.core.v1.EnvFromSource\")\n\tproto.RegisterType((*EnvVar)(nil), \"k8s.io.api.core.v1.EnvVar\")\n\tproto.RegisterType((*EnvVarSource)(nil), \"k8s.io.api.core.v1.EnvVarSource\")\n\tproto.RegisterType((*EphemeralContainer)(nil), \"k8s.io.api.core.v1.EphemeralContainer\")\n\tproto.RegisterType((*EphemeralContainerCommon)(nil), \"k8s.io.api.core.v1.EphemeralContainerCommon\")\n\tproto.RegisterType((*EphemeralVolumeSource)(nil), \"k8s.io.api.core.v1.EphemeralVolumeSource\")\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.core.v1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.core.v1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.core.v1.EventSeries\")\n\tproto.RegisterType((*EventSource)(nil), \"k8s.io.api.core.v1.EventSource\")\n\tproto.RegisterType((*ExecAction)(nil), \"k8s.io.api.core.v1.ExecAction\")\n\tproto.RegisterType((*FCVolumeSource)(nil), \"k8s.io.api.core.v1.FCVolumeSource\")\n\tproto.RegisterType((*FlexPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.FlexPersistentVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.FlexPersistentVolumeSource.OptionsEntry\")\n\tproto.RegisterType((*FlexVolumeSource)(nil), \"k8s.io.api.core.v1.FlexVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.FlexVolumeSource.OptionsEntry\")\n\tproto.RegisterType((*FlockerVolumeSource)(nil), \"k8s.io.api.core.v1.FlockerVolumeSource\")\n\tproto.RegisterType((*GCEPersistentDiskVolumeSource)(nil), \"k8s.io.api.core.v1.GCEPersistentDiskVolumeSource\")\n\tproto.RegisterType((*GRPCAction)(nil), \"k8s.io.api.core.v1.GRPCAction\")\n\tproto.RegisterType((*GitRepoVolumeSource)(nil), \"k8s.io.api.core.v1.GitRepoVolumeSource\")\n\tproto.RegisterType((*GlusterfsPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.GlusterfsPersistentVolumeSource\")\n\tproto.RegisterType((*GlusterfsVolumeSource)(nil), \"k8s.io.api.core.v1.GlusterfsVolumeSource\")\n\tproto.RegisterType((*HTTPGetAction)(nil), \"k8s.io.api.core.v1.HTTPGetAction\")\n\tproto.RegisterType((*HTTPHeader)(nil), \"k8s.io.api.core.v1.HTTPHeader\")\n\tproto.RegisterType((*HostAlias)(nil), \"k8s.io.api.core.v1.HostAlias\")\n\tproto.RegisterType((*HostPathVolumeSource)(nil), \"k8s.io.api.core.v1.HostPathVolumeSource\")\n\tproto.RegisterType((*ISCSIPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.ISCSIPersistentVolumeSource\")\n\tproto.RegisterType((*ISCSIVolumeSource)(nil), \"k8s.io.api.core.v1.ISCSIVolumeSource\")\n\tproto.RegisterType((*KeyToPath)(nil), \"k8s.io.api.core.v1.KeyToPath\")\n\tproto.RegisterType((*Lifecycle)(nil), \"k8s.io.api.core.v1.Lifecycle\")\n\tproto.RegisterType((*LifecycleHandler)(nil), \"k8s.io.api.core.v1.LifecycleHandler\")\n\tproto.RegisterType((*LimitRange)(nil), \"k8s.io.api.core.v1.LimitRange\")\n\tproto.RegisterType((*LimitRangeItem)(nil), \"k8s.io.api.core.v1.LimitRangeItem\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.DefaultEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.DefaultRequestEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MaxEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MaxLimitRequestRatioEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MinEntry\")\n\tproto.RegisterType((*LimitRangeList)(nil), \"k8s.io.api.core.v1.LimitRangeList\")\n\tproto.RegisterType((*LimitRangeSpec)(nil), \"k8s.io.api.core.v1.LimitRangeSpec\")\n\tproto.RegisterType((*List)(nil), \"k8s.io.api.core.v1.List\")\n\tproto.RegisterType((*LoadBalancerIngress)(nil), \"k8s.io.api.core.v1.LoadBalancerIngress\")\n\tproto.RegisterType((*LoadBalancerStatus)(nil), \"k8s.io.api.core.v1.LoadBalancerStatus\")\n\tproto.RegisterType((*LocalObjectReference)(nil), \"k8s.io.api.core.v1.LocalObjectReference\")\n\tproto.RegisterType((*LocalVolumeSource)(nil), \"k8s.io.api.core.v1.LocalVolumeSource\")\n\tproto.RegisterType((*NFSVolumeSource)(nil), \"k8s.io.api.core.v1.NFSVolumeSource\")\n\tproto.RegisterType((*Namespace)(nil), \"k8s.io.api.core.v1.Namespace\")\n\tproto.RegisterType((*NamespaceCondition)(nil), \"k8s.io.api.core.v1.NamespaceCondition\")\n\tproto.RegisterType((*NamespaceList)(nil), \"k8s.io.api.core.v1.NamespaceList\")\n\tproto.RegisterType((*NamespaceSpec)(nil), \"k8s.io.api.core.v1.NamespaceSpec\")\n\tproto.RegisterType((*NamespaceStatus)(nil), \"k8s.io.api.core.v1.NamespaceStatus\")\n\tproto.RegisterType((*Node)(nil), \"k8s.io.api.core.v1.Node\")\n\tproto.RegisterType((*NodeAddress)(nil), \"k8s.io.api.core.v1.NodeAddress\")\n\tproto.RegisterType((*NodeAffinity)(nil), \"k8s.io.api.core.v1.NodeAffinity\")\n\tproto.RegisterType((*NodeCondition)(nil), \"k8s.io.api.core.v1.NodeCondition\")\n\tproto.RegisterType((*NodeConfigSource)(nil), \"k8s.io.api.core.v1.NodeConfigSource\")\n\tproto.RegisterType((*NodeConfigStatus)(nil), \"k8s.io.api.core.v1.NodeConfigStatus\")\n\tproto.RegisterType((*NodeDaemonEndpoints)(nil), \"k8s.io.api.core.v1.NodeDaemonEndpoints\")\n\tproto.RegisterType((*NodeList)(nil), \"k8s.io.api.core.v1.NodeList\")\n\tproto.RegisterType((*NodeProxyOptions)(nil), \"k8s.io.api.core.v1.NodeProxyOptions\")\n\tproto.RegisterType((*NodeResources)(nil), \"k8s.io.api.core.v1.NodeResources\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.NodeResources.CapacityEntry\")\n\tproto.RegisterType((*NodeSelector)(nil), \"k8s.io.api.core.v1.NodeSelector\")\n\tproto.RegisterType((*NodeSelectorRequirement)(nil), \"k8s.io.api.core.v1.NodeSelectorRequirement\")\n\tproto.RegisterType((*NodeSelectorTerm)(nil), \"k8s.io.api.core.v1.NodeSelectorTerm\")\n\tproto.RegisterType((*NodeSpec)(nil), \"k8s.io.api.core.v1.NodeSpec\")\n\tproto.RegisterType((*NodeStatus)(nil), \"k8s.io.api.core.v1.NodeStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.NodeStatus.AllocatableEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.NodeStatus.CapacityEntry\")\n\tproto.RegisterType((*NodeSystemInfo)(nil), \"k8s.io.api.core.v1.NodeSystemInfo\")\n\tproto.RegisterType((*ObjectFieldSelector)(nil), \"k8s.io.api.core.v1.ObjectFieldSelector\")\n\tproto.RegisterType((*ObjectReference)(nil), \"k8s.io.api.core.v1.ObjectReference\")\n\tproto.RegisterType((*PersistentVolume)(nil), \"k8s.io.api.core.v1.PersistentVolume\")\n\tproto.RegisterType((*PersistentVolumeClaim)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaim\")\n\tproto.RegisterType((*PersistentVolumeClaimCondition)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimCondition\")\n\tproto.RegisterType((*PersistentVolumeClaimList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimList\")\n\tproto.RegisterType((*PersistentVolumeClaimSpec)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimSpec\")\n\tproto.RegisterType((*PersistentVolumeClaimStatus)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus.AllocatedResourcesEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus.CapacityEntry\")\n\tproto.RegisterType((*PersistentVolumeClaimTemplate)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimTemplate\")\n\tproto.RegisterType((*PersistentVolumeClaimVolumeSource)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource\")\n\tproto.RegisterType((*PersistentVolumeList)(nil), \"k8s.io.api.core.v1.PersistentVolumeList\")\n\tproto.RegisterType((*PersistentVolumeSource)(nil), \"k8s.io.api.core.v1.PersistentVolumeSource\")\n\tproto.RegisterType((*PersistentVolumeSpec)(nil), \"k8s.io.api.core.v1.PersistentVolumeSpec\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeSpec.CapacityEntry\")\n\tproto.RegisterType((*PersistentVolumeStatus)(nil), \"k8s.io.api.core.v1.PersistentVolumeStatus\")\n\tproto.RegisterType((*PhotonPersistentDiskVolumeSource)(nil), \"k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource\")\n\tproto.RegisterType((*Pod)(nil), \"k8s.io.api.core.v1.Pod\")\n\tproto.RegisterType((*PodAffinity)(nil), \"k8s.io.api.core.v1.PodAffinity\")\n\tproto.RegisterType((*PodAffinityTerm)(nil), \"k8s.io.api.core.v1.PodAffinityTerm\")\n\tproto.RegisterType((*PodAntiAffinity)(nil), \"k8s.io.api.core.v1.PodAntiAffinity\")\n\tproto.RegisterType((*PodAttachOptions)(nil), \"k8s.io.api.core.v1.PodAttachOptions\")\n\tproto.RegisterType((*PodCondition)(nil), \"k8s.io.api.core.v1.PodCondition\")\n\tproto.RegisterType((*PodDNSConfig)(nil), \"k8s.io.api.core.v1.PodDNSConfig\")\n\tproto.RegisterType((*PodDNSConfigOption)(nil), \"k8s.io.api.core.v1.PodDNSConfigOption\")\n\tproto.RegisterType((*PodExecOptions)(nil), \"k8s.io.api.core.v1.PodExecOptions\")\n\tproto.RegisterType((*PodIP)(nil), \"k8s.io.api.core.v1.PodIP\")\n\tproto.RegisterType((*PodList)(nil), \"k8s.io.api.core.v1.PodList\")\n\tproto.RegisterType((*PodLogOptions)(nil), \"k8s.io.api.core.v1.PodLogOptions\")\n\tproto.RegisterType((*PodOS)(nil), \"k8s.io.api.core.v1.PodOS\")\n\tproto.RegisterType((*PodPortForwardOptions)(nil), \"k8s.io.api.core.v1.PodPortForwardOptions\")\n\tproto.RegisterType((*PodProxyOptions)(nil), \"k8s.io.api.core.v1.PodProxyOptions\")\n\tproto.RegisterType((*PodReadinessGate)(nil), \"k8s.io.api.core.v1.PodReadinessGate\")\n\tproto.RegisterType((*PodResourceClaim)(nil), \"k8s.io.api.core.v1.PodResourceClaim\")\n\tproto.RegisterType((*PodSchedulingGate)(nil), \"k8s.io.api.core.v1.PodSchedulingGate\")\n\tproto.RegisterType((*PodSecurityContext)(nil), \"k8s.io.api.core.v1.PodSecurityContext\")\n\tproto.RegisterType((*PodSignature)(nil), \"k8s.io.api.core.v1.PodSignature\")\n\tproto.RegisterType((*PodSpec)(nil), \"k8s.io.api.core.v1.PodSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.PodSpec.NodeSelectorEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PodSpec.OverheadEntry\")\n\tproto.RegisterType((*PodStatus)(nil), \"k8s.io.api.core.v1.PodStatus\")\n\tproto.RegisterType((*PodStatusResult)(nil), \"k8s.io.api.core.v1.PodStatusResult\")\n\tproto.RegisterType((*PodTemplate)(nil), \"k8s.io.api.core.v1.PodTemplate\")\n\tproto.RegisterType((*PodTemplateList)(nil), \"k8s.io.api.core.v1.PodTemplateList\")\n\tproto.RegisterType((*PodTemplateSpec)(nil), \"k8s.io.api.core.v1.PodTemplateSpec\")\n\tproto.RegisterType((*PortStatus)(nil), \"k8s.io.api.core.v1.PortStatus\")\n\tproto.RegisterType((*PortworxVolumeSource)(nil), \"k8s.io.api.core.v1.PortworxVolumeSource\")\n\tproto.RegisterType((*Preconditions)(nil), \"k8s.io.api.core.v1.Preconditions\")\n\tproto.RegisterType((*PreferAvoidPodsEntry)(nil), \"k8s.io.api.core.v1.PreferAvoidPodsEntry\")\n\tproto.RegisterType((*PreferredSchedulingTerm)(nil), \"k8s.io.api.core.v1.PreferredSchedulingTerm\")\n\tproto.RegisterType((*Probe)(nil), \"k8s.io.api.core.v1.Probe\")\n\tproto.RegisterType((*ProbeHandler)(nil), \"k8s.io.api.core.v1.ProbeHandler\")\n\tproto.RegisterType((*ProjectedVolumeSource)(nil), \"k8s.io.api.core.v1.ProjectedVolumeSource\")\n\tproto.RegisterType((*QuobyteVolumeSource)(nil), \"k8s.io.api.core.v1.QuobyteVolumeSource\")\n\tproto.RegisterType((*RBDPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.RBDPersistentVolumeSource\")\n\tproto.RegisterType((*RBDVolumeSource)(nil), \"k8s.io.api.core.v1.RBDVolumeSource\")\n\tproto.RegisterType((*RangeAllocation)(nil), \"k8s.io.api.core.v1.RangeAllocation\")\n\tproto.RegisterType((*ReplicationController)(nil), \"k8s.io.api.core.v1.ReplicationController\")\n\tproto.RegisterType((*ReplicationControllerCondition)(nil), \"k8s.io.api.core.v1.ReplicationControllerCondition\")\n\tproto.RegisterType((*ReplicationControllerList)(nil), \"k8s.io.api.core.v1.ReplicationControllerList\")\n\tproto.RegisterType((*ReplicationControllerSpec)(nil), \"k8s.io.api.core.v1.ReplicationControllerSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ReplicationControllerSpec.SelectorEntry\")\n\tproto.RegisterType((*ReplicationControllerStatus)(nil), \"k8s.io.api.core.v1.ReplicationControllerStatus\")\n\tproto.RegisterType((*ResourceClaim)(nil), \"k8s.io.api.core.v1.ResourceClaim\")\n\tproto.RegisterType((*ResourceFieldSelector)(nil), \"k8s.io.api.core.v1.ResourceFieldSelector\")\n\tproto.RegisterType((*ResourceQuota)(nil), \"k8s.io.api.core.v1.ResourceQuota\")\n\tproto.RegisterType((*ResourceQuotaList)(nil), \"k8s.io.api.core.v1.ResourceQuotaList\")\n\tproto.RegisterType((*ResourceQuotaSpec)(nil), \"k8s.io.api.core.v1.ResourceQuotaSpec\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaSpec.HardEntry\")\n\tproto.RegisterType((*ResourceQuotaStatus)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus.HardEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus.UsedEntry\")\n\tproto.RegisterType((*ResourceRequirements)(nil), \"k8s.io.api.core.v1.ResourceRequirements\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceRequirements.LimitsEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceRequirements.RequestsEntry\")\n\tproto.RegisterType((*SELinuxOptions)(nil), \"k8s.io.api.core.v1.SELinuxOptions\")\n\tproto.RegisterType((*ScaleIOPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.ScaleIOPersistentVolumeSource\")\n\tproto.RegisterType((*ScaleIOVolumeSource)(nil), \"k8s.io.api.core.v1.ScaleIOVolumeSource\")\n\tproto.RegisterType((*ScopeSelector)(nil), \"k8s.io.api.core.v1.ScopeSelector\")\n\tproto.RegisterType((*ScopedResourceSelectorRequirement)(nil), \"k8s.io.api.core.v1.ScopedResourceSelectorRequirement\")\n\tproto.RegisterType((*SeccompProfile)(nil), \"k8s.io.api.core.v1.SeccompProfile\")\n\tproto.RegisterType((*Secret)(nil), \"k8s.io.api.core.v1.Secret\")\n\tproto.RegisterMapType((map[string][]byte)(nil), \"k8s.io.api.core.v1.Secret.DataEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.Secret.StringDataEntry\")\n\tproto.RegisterType((*SecretEnvSource)(nil), \"k8s.io.api.core.v1.SecretEnvSource\")\n\tproto.RegisterType((*SecretKeySelector)(nil), \"k8s.io.api.core.v1.SecretKeySelector\")\n\tproto.RegisterType((*SecretList)(nil), \"k8s.io.api.core.v1.SecretList\")\n\tproto.RegisterType((*SecretProjection)(nil), \"k8s.io.api.core.v1.SecretProjection\")\n\tproto.RegisterType((*SecretReference)(nil), \"k8s.io.api.core.v1.SecretReference\")\n\tproto.RegisterType((*SecretVolumeSource)(nil), \"k8s.io.api.core.v1.SecretVolumeSource\")\n\tproto.RegisterType((*SecurityContext)(nil), \"k8s.io.api.core.v1.SecurityContext\")\n\tproto.RegisterType((*SerializedReference)(nil), \"k8s.io.api.core.v1.SerializedReference\")\n\tproto.RegisterType((*Service)(nil), \"k8s.io.api.core.v1.Service\")\n\tproto.RegisterType((*ServiceAccount)(nil), \"k8s.io.api.core.v1.ServiceAccount\")\n\tproto.RegisterType((*ServiceAccountList)(nil), \"k8s.io.api.core.v1.ServiceAccountList\")\n\tproto.RegisterType((*ServiceAccountTokenProjection)(nil), \"k8s.io.api.core.v1.ServiceAccountTokenProjection\")\n\tproto.RegisterType((*ServiceList)(nil), \"k8s.io.api.core.v1.ServiceList\")\n\tproto.RegisterType((*ServicePort)(nil), \"k8s.io.api.core.v1.ServicePort\")\n\tproto.RegisterType((*ServiceProxyOptions)(nil), \"k8s.io.api.core.v1.ServiceProxyOptions\")\n\tproto.RegisterType((*ServiceSpec)(nil), \"k8s.io.api.core.v1.ServiceSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ServiceSpec.SelectorEntry\")\n\tproto.RegisterType((*ServiceStatus)(nil), \"k8s.io.api.core.v1.ServiceStatus\")\n\tproto.RegisterType((*SessionAffinityConfig)(nil), \"k8s.io.api.core.v1.SessionAffinityConfig\")\n\tproto.RegisterType((*StorageOSPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.StorageOSPersistentVolumeSource\")\n\tproto.RegisterType((*StorageOSVolumeSource)(nil), \"k8s.io.api.core.v1.StorageOSVolumeSource\")\n\tproto.RegisterType((*Sysctl)(nil), \"k8s.io.api.core.v1.Sysctl\")\n\tproto.RegisterType((*TCPSocketAction)(nil), \"k8s.io.api.core.v1.TCPSocketAction\")\n\tproto.RegisterType((*Taint)(nil), \"k8s.io.api.core.v1.Taint\")\n\tproto.RegisterType((*Toleration)(nil), \"k8s.io.api.core.v1.Toleration\")\n\tproto.RegisterType((*TopologySelectorLabelRequirement)(nil), \"k8s.io.api.core.v1.TopologySelectorLabelRequirement\")\n\tproto.RegisterType((*TopologySelectorTerm)(nil), \"k8s.io.api.core.v1.TopologySelectorTerm\")\n\tproto.RegisterType((*TopologySpreadConstraint)(nil), \"k8s.io.api.core.v1.TopologySpreadConstraint\")\n\tproto.RegisterType((*TypedLocalObjectReference)(nil), \"k8s.io.api.core.v1.TypedLocalObjectReference\")\n\tproto.RegisterType((*TypedObjectReference)(nil), \"k8s.io.api.core.v1.TypedObjectReference\")\n\tproto.RegisterType((*Volume)(nil), \"k8s.io.api.core.v1.Volume\")\n\tproto.RegisterType((*VolumeDevice)(nil), \"k8s.io.api.core.v1.VolumeDevice\")\n\tproto.RegisterType((*VolumeMount)(nil), \"k8s.io.api.core.v1.VolumeMount\")\n\tproto.RegisterType((*VolumeNodeAffinity)(nil), \"k8s.io.api.core.v1.VolumeNodeAffinity\")\n\tproto.RegisterType((*VolumeProjection)(nil), \"k8s.io.api.core.v1.VolumeProjection\")\n\tproto.RegisterType((*VolumeSource)(nil), \"k8s.io.api.core.v1.VolumeSource\")\n\tproto.RegisterType((*VsphereVirtualDiskVolumeSource)(nil), \"k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource\")\n\tproto.RegisterType((*WeightedPodAffinityTerm)(nil), \"k8s.io.api.core.v1.WeightedPodAffinityTerm\")\n\tproto.RegisterType((*WindowsSecurityContextOptions)(nil), \"k8s.io.api.core.v1.WindowsSecurityContextOptions\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/core/v1/generated.proto\", fileDescriptor_83c10c24ec417dc9)\n}\n\nvar fileDescriptor_83c10c24ec417dc9 = []byte{\n\t// 14685 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x90, 0x5c, 0xd7,\n\t0x75, 0x18, 0xac, 0xd7, 0x3d, 0x5b, 0x9f, 0xd9, 0xef, 0x00, 0xe0, 0x60, 0x48, 0xa0, 0xc1, 0x47,\n\t0x12, 0x04, 0x45, 0x72, 0x20, 0x70, 0x91, 0x28, 0x52, 0xa2, 0x35, 0x2b, 0x30, 0x04, 0x66, 0xd0,\n\t0xbc, 0x3d, 0x00, 0x24, 0x8a, 0x52, 0xe9, 0x4d, 0xf7, 0x9d, 0x99, 0xa7, 0xe9, 0x7e, 0xaf, 0xf9,\n\t0xde, 0xeb, 0x01, 0x06, 0x9f, 0x54, 0x9f, 0x2d, 0xc7, 0x8b, 0x6c, 0x27, 0xa5, 0x4a, 0x39, 0x4b,\n\t0xc9, 0x2e, 0x57, 0xca, 0x76, 0x6c, 0x2b, 0xca, 0xa6, 0xc8, 0xb1, 0x1d, 0xcb, 0x5b, 0xb6, 0x8a,\n\t0x93, 0x4a, 0x39, 0x8e, 0xab, 0x62, 0xb9, 0xe2, 0xca, 0xc4, 0x82, 0x53, 0xe5, 0x52, 0x55, 0x62,\n\t0x3b, 0xcb, 0x8f, 0x64, 0xe2, 0xc4, 0xa9, 0xbb, 0xbe, 0x7b, 0xdf, 0xd2, 0xdd, 0x03, 0x0e, 0x46,\n\t0x94, 0x8a, 0xff, 0xba, 0xcf, 0x39, 0xf7, 0xdc, 0xfb, 0xee, 0x7a, 0xee, 0x39, 0xe7, 0x9e, 0x03,\n\t0xaf, 0xec, 0xbc, 0x14, 0xce, 0xba, 0xfe, 0xc5, 0x9d, 0xf6, 0x06, 0x09, 0x3c, 0x12, 0x91, 0xf0,\n\t0xe2, 0x2e, 0xf1, 0xea, 0x7e, 0x70, 0x51, 0x20, 0x9c, 0x96, 0x7b, 0xb1, 0xe6, 0x07, 0xe4, 0xe2,\n\t0xee, 0xa5, 0x8b, 0x5b, 0xc4, 0x23, 0x81, 0x13, 0x91, 0xfa, 0x6c, 0x2b, 0xf0, 0x23, 0x1f, 0x21,\n\t0x4e, 0x33, 0xeb, 0xb4, 0xdc, 0x59, 0x4a, 0x33, 0xbb, 0x7b, 0x69, 0xe6, 0xd9, 0x2d, 0x37, 0xda,\n\t0x6e, 0x6f, 0xcc, 0xd6, 0xfc, 0xe6, 0xc5, 0x2d, 0x7f, 0xcb, 0xbf, 0xc8, 0x48, 0x37, 0xda, 0x9b,\n\t0xec, 0x1f, 0xfb, 0xc3, 0x7e, 0x71, 0x16, 0x33, 0x2f, 0xc4, 0xd5, 0x34, 0x9d, 0xda, 0xb6, 0xeb,\n\t0x91, 0x60, 0xef, 0x62, 0x6b, 0x67, 0x8b, 0xd5, 0x1b, 0x90, 0xd0, 0x6f, 0x07, 0x35, 0x92, 0xac,\n\t0xb8, 0x63, 0xa9, 0xf0, 0x62, 0x93, 0x44, 0x4e, 0x46, 0x73, 0x67, 0x2e, 0xe6, 0x95, 0x0a, 0xda,\n\t0x5e, 0xe4, 0x36, 0xd3, 0xd5, 0xbc, 0xbf, 0x5b, 0x81, 0xb0, 0xb6, 0x4d, 0x9a, 0x4e, 0xaa, 0xdc,\n\t0xf3, 0x79, 0xe5, 0xda, 0x91, 0xdb, 0xb8, 0xe8, 0x7a, 0x51, 0x18, 0x05, 0xc9, 0x42, 0xf6, 0xd7,\n\t0x2d, 0x38, 0x37, 0x77, 0xab, 0xba, 0xd4, 0x70, 0xc2, 0xc8, 0xad, 0xcd, 0x37, 0xfc, 0xda, 0x4e,\n\t0x35, 0xf2, 0x03, 0x72, 0xd3, 0x6f, 0xb4, 0x9b, 0xa4, 0xca, 0x3a, 0x02, 0x3d, 0x03, 0x43, 0xbb,\n\t0xec, 0xff, 0xca, 0xe2, 0xb4, 0x75, 0xce, 0xba, 0x50, 0x9a, 0x9f, 0xf8, 0xcd, 0xfd, 0xf2, 0x7b,\n\t0xee, 0xed, 0x97, 0x87, 0x6e, 0x0a, 0x38, 0x56, 0x14, 0xe8, 0x3c, 0x0c, 0x6c, 0x86, 0xeb, 0x7b,\n\t0x2d, 0x32, 0x5d, 0x60, 0xb4, 0x63, 0x82, 0x76, 0x60, 0xb9, 0x4a, 0xa1, 0x58, 0x60, 0xd1, 0x45,\n\t0x28, 0xb5, 0x9c, 0x20, 0x72, 0x23, 0xd7, 0xf7, 0xa6, 0x8b, 0xe7, 0xac, 0x0b, 0xfd, 0xf3, 0x93,\n\t0x82, 0xb4, 0x54, 0x91, 0x08, 0x1c, 0xd3, 0xd0, 0x66, 0x04, 0xc4, 0xa9, 0x5f, 0xf7, 0x1a, 0x7b,\n\t0xd3, 0x7d, 0xe7, 0xac, 0x0b, 0x43, 0x71, 0x33, 0xb0, 0x80, 0x63, 0x45, 0x61, 0x7f, 0xb1, 0x00,\n\t0x43, 0x73, 0x9b, 0x9b, 0xae, 0xe7, 0x46, 0x7b, 0xe8, 0x26, 0x8c, 0x78, 0x7e, 0x9d, 0xc8, 0xff,\n\t0xec, 0x2b, 0x86, 0x9f, 0x3b, 0x37, 0x9b, 0x9e, 0x4a, 0xb3, 0x6b, 0x1a, 0xdd, 0xfc, 0xc4, 0xbd,\n\t0xfd, 0xf2, 0x88, 0x0e, 0xc1, 0x06, 0x1f, 0x84, 0x61, 0xb8, 0xe5, 0xd7, 0x15, 0xdb, 0x02, 0x63,\n\t0x5b, 0xce, 0x62, 0x5b, 0x89, 0xc9, 0xe6, 0xc7, 0xef, 0xed, 0x97, 0x87, 0x35, 0x00, 0xd6, 0x99,\n\t0xa0, 0x0d, 0x18, 0xa7, 0x7f, 0xbd, 0xc8, 0x55, 0x7c, 0x8b, 0x8c, 0xef, 0x63, 0x79, 0x7c, 0x35,\n\t0xd2, 0xf9, 0xa9, 0x7b, 0xfb, 0xe5, 0xf1, 0x04, 0x10, 0x27, 0x19, 0xda, 0x77, 0x61, 0x6c, 0x2e,\n\t0x8a, 0x9c, 0xda, 0x36, 0xa9, 0xf3, 0x11, 0x44, 0x2f, 0x40, 0x9f, 0xe7, 0x34, 0x89, 0x18, 0xdf,\n\t0x73, 0xa2, 0x63, 0xfb, 0xd6, 0x9c, 0x26, 0x39, 0xd8, 0x2f, 0x4f, 0xdc, 0xf0, 0xdc, 0xb7, 0xda,\n\t0x62, 0x56, 0x50, 0x18, 0x66, 0xd4, 0xe8, 0x39, 0x80, 0x3a, 0xd9, 0x75, 0x6b, 0xa4, 0xe2, 0x44,\n\t0xdb, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x8b, 0x0a, 0x83, 0x35, 0x2a, 0xfb, 0x0e, 0x94, 0xe6, 0x76,\n\t0x7d, 0xb7, 0x5e, 0xf1, 0xeb, 0x21, 0xda, 0x81, 0xf1, 0x56, 0x40, 0x36, 0x49, 0xa0, 0x40, 0xd3,\n\t0xd6, 0xb9, 0xe2, 0x85, 0xe1, 0xe7, 0x2e, 0x64, 0x7e, 0xac, 0x49, 0xba, 0xe4, 0x45, 0xc1, 0xde,\n\t0xfc, 0x43, 0xa2, 0xbe, 0xf1, 0x04, 0x16, 0x27, 0x39, 0xdb, 0xff, 0xac, 0x00, 0x27, 0xe7, 0xee,\n\t0xb6, 0x03, 0xb2, 0xe8, 0x86, 0x3b, 0xc9, 0x19, 0x5e, 0x77, 0xc3, 0x9d, 0xb5, 0xb8, 0x07, 0xd4,\n\t0xd4, 0x5a, 0x14, 0x70, 0xac, 0x28, 0xd0, 0xb3, 0x30, 0x48, 0x7f, 0xdf, 0xc0, 0x2b, 0xe2, 0x93,\n\t0xa7, 0x04, 0xf1, 0xf0, 0xa2, 0x13, 0x39, 0x8b, 0x1c, 0x85, 0x25, 0x0d, 0x5a, 0x85, 0xe1, 0x1a,\n\t0x5b, 0x90, 0x5b, 0xab, 0x7e, 0x9d, 0xb0, 0xc1, 0x2c, 0xcd, 0x3f, 0x4d, 0xc9, 0x17, 0x62, 0xf0,\n\t0xc1, 0x7e, 0x79, 0x9a, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0xfa,\n\t0x18, 0x27, 0xc8, 0x58, 0x5b, 0x17, 0xb4, 0xa5, 0xd2, 0xcf, 0x96, 0xca, 0x48, 0xf6, 0x32, 0x41,\n\t0x97, 0xa0, 0x6f, 0xc7, 0xf5, 0xea, 0xd3, 0x03, 0x8c, 0xd7, 0x19, 0x3a, 0xe6, 0x57, 0x5d, 0xaf,\n\t0x7e, 0xb0, 0x5f, 0x9e, 0x34, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0xff, 0xdd, 0x82, 0x32, 0xc3,\n\t0x2d, 0xbb, 0x0d, 0x52, 0x21, 0x41, 0xe8, 0x86, 0x11, 0xf1, 0x22, 0xa3, 0x43, 0x9f, 0x03, 0x08,\n\t0x49, 0x2d, 0x20, 0x91, 0xd6, 0xa5, 0x6a, 0x62, 0x54, 0x15, 0x06, 0x6b, 0x54, 0x74, 0x43, 0x08,\n\t0xb7, 0x9d, 0x80, 0xcd, 0x2f, 0xd1, 0xb1, 0x6a, 0x43, 0xa8, 0x4a, 0x04, 0x8e, 0x69, 0x8c, 0x0d,\n\t0xa1, 0xd8, 0x6d, 0x43, 0x40, 0x1f, 0x86, 0xf1, 0xb8, 0xb2, 0xb0, 0xe5, 0xd4, 0x64, 0x07, 0xb2,\n\t0x25, 0x53, 0x35, 0x51, 0x38, 0x49, 0x6b, 0xff, 0x2d, 0x4b, 0x4c, 0x1e, 0xfa, 0xd5, 0xef, 0xf0,\n\t0x6f, 0xb5, 0x7f, 0xc9, 0x82, 0xc1, 0x79, 0xd7, 0xab, 0xbb, 0xde, 0x16, 0xfa, 0x14, 0x0c, 0xd1,\n\t0xb3, 0xa9, 0xee, 0x44, 0x8e, 0xd8, 0xf7, 0xde, 0xa7, 0xad, 0x2d, 0x75, 0x54, 0xcc, 0xb6, 0x76,\n\t0xb6, 0x28, 0x20, 0x9c, 0xa5, 0xd4, 0x74, 0xb5, 0x5d, 0xdf, 0xf8, 0x34, 0xa9, 0x45, 0xab, 0x24,\n\t0x72, 0xe2, 0xcf, 0x89, 0x61, 0x58, 0x71, 0x45, 0x57, 0x61, 0x20, 0x72, 0x82, 0x2d, 0x12, 0x89,\n\t0x0d, 0x30, 0x73, 0xa3, 0xe2, 0x25, 0x31, 0x5d, 0x91, 0xc4, 0xab, 0x91, 0xf8, 0x58, 0x58, 0x67,\n\t0x45, 0xb1, 0x60, 0x61, 0xff, 0x9f, 0x41, 0x38, 0xbd, 0x50, 0x5d, 0xc9, 0x99, 0x57, 0xe7, 0x61,\n\t0xa0, 0x1e, 0xb8, 0xbb, 0x24, 0x10, 0xfd, 0xac, 0xb8, 0x2c, 0x32, 0x28, 0x16, 0x58, 0xf4, 0x12,\n\t0x8c, 0xf0, 0x03, 0xe9, 0x8a, 0xe3, 0xd5, 0x1b, 0xb2, 0x8b, 0x4f, 0x08, 0xea, 0x91, 0x9b, 0x1a,\n\t0x0e, 0x1b, 0x94, 0x87, 0x9c, 0x54, 0xe7, 0x13, 0x8b, 0x31, 0xef, 0xb0, 0xfb, 0xbc, 0x05, 0x13,\n\t0xbc, 0x9a, 0xb9, 0x28, 0x0a, 0xdc, 0x8d, 0x76, 0x44, 0xc2, 0xe9, 0x7e, 0xb6, 0xd3, 0x2d, 0x64,\n\t0xf5, 0x56, 0x6e, 0x0f, 0xcc, 0xde, 0x4c, 0x70, 0xe1, 0x9b, 0xe0, 0xb4, 0xa8, 0x77, 0x22, 0x89,\n\t0xc6, 0xa9, 0x6a, 0xd1, 0xf7, 0x5a, 0x30, 0x53, 0xf3, 0xbd, 0x28, 0xf0, 0x1b, 0x0d, 0x12, 0x54,\n\t0xda, 0x1b, 0x0d, 0x37, 0xdc, 0xe6, 0xf3, 0x14, 0x93, 0x4d, 0xb6, 0x13, 0xe4, 0x8c, 0xa1, 0x22,\n\t0x12, 0x63, 0x78, 0xf6, 0xde, 0x7e, 0x79, 0x66, 0x21, 0x97, 0x15, 0xee, 0x50, 0x0d, 0xda, 0x01,\n\t0x44, 0x8f, 0xd2, 0x6a, 0xe4, 0x6c, 0x91, 0xb8, 0xf2, 0xc1, 0xde, 0x2b, 0x3f, 0x75, 0x6f, 0xbf,\n\t0x8c, 0xd6, 0x52, 0x2c, 0x70, 0x06, 0x5b, 0xf4, 0x16, 0x9c, 0xa0, 0xd0, 0xd4, 0xb7, 0x0e, 0xf5,\n\t0x5e, 0xdd, 0xf4, 0xbd, 0xfd, 0xf2, 0x89, 0xb5, 0x0c, 0x26, 0x38, 0x93, 0x35, 0xfa, 0x6e, 0x0b,\n\t0x4e, 0xc7, 0x9f, 0xbf, 0x74, 0xa7, 0xe5, 0x78, 0xf5, 0xb8, 0xe2, 0x52, 0xef, 0x15, 0xd3, 0x3d,\n\t0xf9, 0xf4, 0x42, 0x1e, 0x27, 0x9c, 0x5f, 0x09, 0xf2, 0x60, 0x8a, 0x36, 0x2d, 0x59, 0x37, 0xf4,\n\t0x5e, 0xf7, 0x43, 0xf7, 0xf6, 0xcb, 0x53, 0x6b, 0x69, 0x1e, 0x38, 0x8b, 0xf1, 0xcc, 0x02, 0x9c,\n\t0xcc, 0x9c, 0x9d, 0x68, 0x02, 0x8a, 0x3b, 0x84, 0x4b, 0x5d, 0x25, 0x4c, 0x7f, 0xa2, 0x13, 0xd0,\n\t0xbf, 0xeb, 0x34, 0xda, 0x62, 0x61, 0x62, 0xfe, 0xe7, 0xe5, 0xc2, 0x4b, 0x96, 0xfd, 0xcf, 0x8b,\n\t0x30, 0xbe, 0x50, 0x5d, 0xb9, 0xaf, 0x55, 0xaf, 0x1f, 0x7b, 0x85, 0x8e, 0xc7, 0x5e, 0x7c, 0x88,\n\t0x16, 0x73, 0x0f, 0xd1, 0xff, 0x3f, 0x63, 0xc9, 0xf6, 0xb1, 0x25, 0xfb, 0xc1, 0x9c, 0x25, 0x7b,\n\t0xc4, 0x0b, 0x75, 0x37, 0x67, 0xd6, 0xf6, 0xb3, 0x01, 0xcc, 0x94, 0x90, 0xae, 0xf9, 0x35, 0xa7,\n\t0x91, 0xdc, 0x6a, 0x0f, 0x39, 0x75, 0x8f, 0x66, 0x1c, 0x6b, 0x30, 0xb2, 0xe0, 0xb4, 0x9c, 0x0d,\n\t0xb7, 0xe1, 0x46, 0x2e, 0x09, 0xd1, 0x93, 0x50, 0x74, 0xea, 0x75, 0x26, 0xdd, 0x95, 0xe6, 0x4f,\n\t0xde, 0xdb, 0x2f, 0x17, 0xe7, 0xea, 0x54, 0xcc, 0x00, 0x45, 0xb5, 0x87, 0x29, 0x05, 0x7a, 0x2f,\n\t0xf4, 0xd5, 0x03, 0xbf, 0x35, 0x5d, 0x60, 0x94, 0x74, 0x95, 0xf7, 0x2d, 0x06, 0x7e, 0x2b, 0x41,\n\t0xca, 0x68, 0xec, 0xdf, 0x28, 0xc0, 0x23, 0x0b, 0xa4, 0xb5, 0xbd, 0x5c, 0xcd, 0x39, 0x2f, 0x2e,\n\t0xc0, 0x50, 0xd3, 0xf7, 0xdc, 0xc8, 0x0f, 0x42, 0x51, 0x35, 0x9b, 0x11, 0xab, 0x02, 0x86, 0x15,\n\t0x16, 0x9d, 0x83, 0xbe, 0x56, 0x2c, 0xc4, 0x8e, 0x48, 0x01, 0x98, 0x89, 0xaf, 0x0c, 0x43, 0x29,\n\t0xda, 0x21, 0x09, 0xc4, 0x8c, 0x51, 0x14, 0x37, 0x42, 0x12, 0x60, 0x86, 0x89, 0x25, 0x01, 0x2a,\n\t0x23, 0x88, 0x13, 0x21, 0x21, 0x09, 0x50, 0x0c, 0xd6, 0xa8, 0x50, 0x05, 0x4a, 0x61, 0x62, 0x64,\n\t0x7b, 0x5a, 0x9a, 0xa3, 0x4c, 0x54, 0x50, 0x23, 0x19, 0x33, 0x31, 0x4e, 0xb0, 0x81, 0xae, 0xa2,\n\t0xc2, 0xd7, 0x0a, 0x80, 0x78, 0x17, 0x7e, 0x9b, 0x75, 0xdc, 0x8d, 0x74, 0xc7, 0xf5, 0xbe, 0x24,\n\t0x8e, 0xaa, 0xf7, 0xfe, 0x87, 0x05, 0x8f, 0x2c, 0xb8, 0x5e, 0x9d, 0x04, 0x39, 0x13, 0xf0, 0xc1,\n\t0xdc, 0x9d, 0x0f, 0x27, 0xa4, 0x18, 0x53, 0xac, 0xef, 0x08, 0xa6, 0x98, 0xfd, 0x27, 0x16, 0x20,\n\t0xfe, 0xd9, 0xef, 0xb8, 0x8f, 0xbd, 0x91, 0xfe, 0xd8, 0x23, 0x98, 0x16, 0xf6, 0xdf, 0xb3, 0x60,\n\t0x78, 0xa1, 0xe1, 0xb8, 0x4d, 0xf1, 0xa9, 0x0b, 0x30, 0x29, 0x15, 0x45, 0x0c, 0xac, 0xc9, 0xfe,\n\t0x74, 0x73, 0x9b, 0xc4, 0x49, 0x24, 0x4e, 0xd3, 0xa3, 0x8f, 0xc3, 0x69, 0x03, 0xb8, 0x4e, 0x9a,\n\t0xad, 0x86, 0x13, 0xe9, 0xb7, 0x02, 0x76, 0xfa, 0xe3, 0x3c, 0x22, 0x9c, 0x5f, 0xde, 0xbe, 0x06,\n\t0x63, 0x0b, 0x0d, 0x97, 0x78, 0xd1, 0x4a, 0x65, 0xc1, 0xf7, 0x36, 0xdd, 0x2d, 0xf4, 0x32, 0x8c,\n\t0x45, 0x6e, 0x93, 0xf8, 0xed, 0xa8, 0x4a, 0x6a, 0xbe, 0xc7, 0xee, 0xda, 0xd6, 0x85, 0xfe, 0x79,\n\t0x74, 0x6f, 0xbf, 0x3c, 0xb6, 0x6e, 0x60, 0x70, 0x82, 0xd2, 0xfe, 0x7d, 0x3a, 0xe2, 0x7e, 0xb3,\n\t0xe5, 0x7b, 0xc4, 0x8b, 0x16, 0x7c, 0xaf, 0xce, 0x75, 0x32, 0x2f, 0x43, 0x5f, 0x44, 0x47, 0x90,\n\t0x7f, 0xf9, 0x79, 0xb9, 0xb4, 0xe9, 0xb8, 0x1d, 0xec, 0x97, 0x4f, 0xa5, 0x4b, 0xb0, 0x91, 0x65,\n\t0x65, 0xd0, 0x07, 0x61, 0x20, 0x8c, 0x9c, 0xa8, 0x1d, 0x8a, 0x4f, 0x7d, 0x54, 0x8e, 0x7f, 0x95,\n\t0x41, 0x0f, 0xf6, 0xcb, 0xe3, 0xaa, 0x18, 0x07, 0x61, 0x51, 0x00, 0x3d, 0x05, 0x83, 0x4d, 0x12,\n\t0x86, 0xce, 0x96, 0x3c, 0xbf, 0xc7, 0x45, 0xd9, 0xc1, 0x55, 0x0e, 0xc6, 0x12, 0x8f, 0x1e, 0x83,\n\t0x7e, 0x12, 0x04, 0x7e, 0x20, 0x76, 0x95, 0x51, 0x41, 0xd8, 0xbf, 0x44, 0x81, 0x98, 0xe3, 0xec,\n\t0x7f, 0x63, 0xc1, 0xb8, 0x6a, 0x2b, 0xaf, 0xeb, 0x18, 0xee, 0x4d, 0x6f, 0x00, 0xd4, 0xe4, 0x07,\n\t0x86, 0xec, 0xbc, 0x1b, 0x7e, 0xee, 0x7c, 0xa6, 0x68, 0x91, 0xea, 0xc6, 0x98, 0xb3, 0x02, 0x85,\n\t0x58, 0xe3, 0x66, 0xff, 0xaa, 0x05, 0x53, 0x89, 0x2f, 0xba, 0xe6, 0x86, 0x11, 0x7a, 0x33, 0xf5,\n\t0x55, 0xb3, 0xbd, 0x7d, 0x15, 0x2d, 0xcd, 0xbe, 0x49, 0x2d, 0x3e, 0x09, 0xd1, 0xbe, 0xe8, 0x0a,\n\t0xf4, 0xbb, 0x11, 0x69, 0xca, 0x8f, 0x79, 0xac, 0xe3, 0xc7, 0xf0, 0x56, 0xc5, 0x23, 0xb2, 0x42,\n\t0x4b, 0x62, 0xce, 0xc0, 0xfe, 0x8d, 0x22, 0x94, 0xf8, 0xb4, 0x5d, 0x75, 0x5a, 0xc7, 0x30, 0x16,\n\t0x4f, 0x43, 0xc9, 0x6d, 0x36, 0xdb, 0x91, 0xb3, 0x21, 0x0e, 0xa0, 0x21, 0xbe, 0x19, 0xac, 0x48,\n\t0x20, 0x8e, 0xf1, 0x68, 0x05, 0xfa, 0x58, 0x53, 0xf8, 0x57, 0x3e, 0x99, 0xfd, 0x95, 0xa2, 0xed,\n\t0xb3, 0x8b, 0x4e, 0xe4, 0x70, 0xd9, 0x4f, 0x9d, 0x7c, 0x14, 0x84, 0x19, 0x0b, 0xe4, 0x00, 0x6c,\n\t0xb8, 0x9e, 0x13, 0xec, 0x51, 0xd8, 0x74, 0x91, 0x31, 0x7c, 0xb6, 0x33, 0xc3, 0x79, 0x45, 0xcf,\n\t0xd9, 0xaa, 0x0f, 0x8b, 0x11, 0x58, 0x63, 0x3a, 0xf3, 0x01, 0x28, 0x29, 0xe2, 0xc3, 0x88, 0x70,\n\t0x33, 0x1f, 0x86, 0xf1, 0x44, 0x5d, 0xdd, 0x8a, 0x8f, 0xe8, 0x12, 0xe0, 0x2f, 0xb3, 0x2d, 0x43,\n\t0xb4, 0x7a, 0xc9, 0xdb, 0x15, 0x3b, 0xe7, 0x5d, 0x38, 0xd1, 0xc8, 0xd8, 0x7b, 0xc5, 0xb8, 0xf6,\n\t0xbe, 0x57, 0x3f, 0x22, 0x3e, 0xfb, 0x44, 0x16, 0x16, 0x67, 0xd6, 0x41, 0xa5, 0x1a, 0xbf, 0x45,\n\t0x17, 0x88, 0xd3, 0xd0, 0x2f, 0x08, 0xd7, 0x05, 0x0c, 0x2b, 0x2c, 0xdd, 0xef, 0x4e, 0xa8, 0xc6,\n\t0x5f, 0x25, 0x7b, 0x55, 0xd2, 0x20, 0xb5, 0xc8, 0x0f, 0xbe, 0xa5, 0xcd, 0x3f, 0xc3, 0x7b, 0x9f,\n\t0x6f, 0x97, 0xc3, 0x82, 0x41, 0xf1, 0x2a, 0xd9, 0xe3, 0x43, 0xa1, 0x7f, 0x5d, 0xb1, 0xe3, 0xd7,\n\t0x7d, 0xc5, 0x82, 0x51, 0xf5, 0x75, 0xc7, 0xb0, 0x2f, 0xcc, 0x9b, 0xfb, 0xc2, 0x99, 0x8e, 0x13,\n\t0x3c, 0x67, 0x47, 0xf8, 0x5a, 0x01, 0x4e, 0x2b, 0x1a, 0x7a, 0x9b, 0xe1, 0x7f, 0xc4, 0xac, 0xba,\n\t0x08, 0x25, 0x4f, 0xe9, 0xf5, 0x2c, 0x53, 0xa1, 0x16, 0x6b, 0xf5, 0x62, 0x1a, 0x2a, 0x94, 0x7a,\n\t0xf1, 0x31, 0x3b, 0xa2, 0x2b, 0xbc, 0x85, 0x72, 0x7b, 0x1e, 0x8a, 0x6d, 0xb7, 0x2e, 0x0e, 0x98,\n\t0xf7, 0xc9, 0xde, 0xbe, 0xb1, 0xb2, 0x78, 0xb0, 0x5f, 0x7e, 0x34, 0xcf, 0xd8, 0x42, 0x4f, 0xb6,\n\t0x70, 0xf6, 0xc6, 0xca, 0x22, 0xa6, 0x85, 0xd1, 0x1c, 0x8c, 0xcb, 0x13, 0xfa, 0x26, 0x15, 0x10,\n\t0x7d, 0x4f, 0x9c, 0x43, 0x4a, 0x6b, 0x8d, 0x4d, 0x34, 0x4e, 0xd2, 0xa3, 0x45, 0x98, 0xd8, 0x69,\n\t0x6f, 0x90, 0x06, 0x89, 0xf8, 0x07, 0x5f, 0x25, 0x5c, 0xa7, 0x5b, 0x8a, 0xef, 0x92, 0x57, 0x13,\n\t0x78, 0x9c, 0x2a, 0x61, 0xff, 0x39, 0x3b, 0x0f, 0x44, 0xef, 0x55, 0x02, 0x9f, 0x4e, 0x2c, 0xca,\n\t0xfd, 0x5b, 0x39, 0x9d, 0x7b, 0x99, 0x15, 0x57, 0xc9, 0xde, 0xba, 0x4f, 0xef, 0x12, 0xd9, 0xb3,\n\t0xc2, 0x98, 0xf3, 0x7d, 0x1d, 0xe7, 0xfc, 0xcf, 0x17, 0xe0, 0xa4, 0xea, 0x01, 0x43, 0x6c, 0xfd,\n\t0x76, 0xef, 0x83, 0x4b, 0x30, 0x5c, 0x27, 0x9b, 0x4e, 0xbb, 0x11, 0x29, 0x03, 0x43, 0x3f, 0x37,\n\t0x32, 0x2d, 0xc6, 0x60, 0xac, 0xd3, 0x1c, 0xa2, 0xdb, 0xfe, 0xfd, 0x08, 0x3b, 0x88, 0x23, 0x87,\n\t0xce, 0x71, 0xb5, 0x6a, 0xac, 0xdc, 0x55, 0xf3, 0x18, 0xf4, 0xbb, 0x4d, 0x2a, 0x98, 0x15, 0x4c,\n\t0x79, 0x6b, 0x85, 0x02, 0x31, 0xc7, 0xa1, 0x27, 0x60, 0xb0, 0xe6, 0x37, 0x9b, 0x8e, 0x57, 0x67,\n\t0x47, 0x5e, 0x69, 0x7e, 0x98, 0xca, 0x6e, 0x0b, 0x1c, 0x84, 0x25, 0x0e, 0x3d, 0x02, 0x7d, 0x4e,\n\t0xb0, 0xc5, 0xb5, 0x2e, 0xa5, 0xf9, 0x21, 0x5a, 0xd3, 0x5c, 0xb0, 0x15, 0x62, 0x06, 0xa5, 0x97,\n\t0xc6, 0xdb, 0x7e, 0xb0, 0xe3, 0x7a, 0x5b, 0x8b, 0x6e, 0x20, 0x96, 0x84, 0x3a, 0x0b, 0x6f, 0x29,\n\t0x0c, 0xd6, 0xa8, 0xd0, 0x32, 0xf4, 0xb7, 0xfc, 0x20, 0x0a, 0xa7, 0x07, 0x58, 0x77, 0x3f, 0x9a,\n\t0xb3, 0x11, 0xf1, 0xaf, 0xad, 0xf8, 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1c, 0x5d,\n\t0x83, 0x41, 0xe2, 0xed, 0x2e, 0x07, 0x7e, 0x73, 0x7a, 0x2a, 0x9f, 0xd3, 0x12, 0x27, 0xe1, 0xd3,\n\t0x2c, 0x96, 0x51, 0x05, 0x18, 0x4b, 0x16, 0xe8, 0x83, 0x50, 0x24, 0xde, 0xee, 0xf4, 0x20, 0xe3,\n\t0x34, 0x93, 0xc3, 0xe9, 0xa6, 0x13, 0xc4, 0x7b, 0xfe, 0x92, 0xb7, 0x8b, 0x69, 0x19, 0xf4, 0x31,\n\t0x28, 0xc9, 0x0d, 0x23, 0x14, 0xea, 0xcc, 0xcc, 0x09, 0x2b, 0xb7, 0x19, 0x4c, 0xde, 0x6a, 0xbb,\n\t0x01, 0x69, 0x12, 0x2f, 0x0a, 0xe3, 0x1d, 0x52, 0x62, 0x43, 0x1c, 0x73, 0x43, 0x35, 0x18, 0x09,\n\t0x48, 0xe8, 0xde, 0x25, 0x15, 0xbf, 0xe1, 0xd6, 0xf6, 0xa6, 0x1f, 0x62, 0xcd, 0x7b, 0xaa, 0x63,\n\t0x97, 0x61, 0xad, 0x40, 0xac, 0x6e, 0xd7, 0xa1, 0xd8, 0x60, 0x8a, 0x3e, 0x26, 0x15, 0xf5, 0xab,\n\t0x7e, 0xdb, 0x8b, 0xc2, 0xe9, 0x12, 0xab, 0x24, 0xd3, 0x84, 0x7a, 0x33, 0xa6, 0x4b, 0x6a, 0xf2,\n\t0x79, 0x61, 0x6c, 0xb0, 0x42, 0x9f, 0x80, 0x51, 0xfe, 0x9f, 0x1b, 0x22, 0xc3, 0xe9, 0x93, 0x8c,\n\t0xf7, 0xb9, 0x7c, 0xde, 0x9c, 0x70, 0xfe, 0xa4, 0x60, 0x3e, 0xaa, 0x43, 0x43, 0x6c, 0x72, 0x43,\n\t0x18, 0x46, 0x1b, 0xee, 0x2e, 0xf1, 0x48, 0x18, 0x56, 0x02, 0x7f, 0x83, 0x08, 0xbd, 0xea, 0xe9,\n\t0x6c, 0xc3, 0xa5, 0xbf, 0x41, 0xe6, 0x27, 0x29, 0xcf, 0x6b, 0x7a, 0x19, 0x6c, 0xb2, 0x40, 0x37,\n\t0x60, 0x8c, 0x5e, 0x64, 0xdd, 0x98, 0xe9, 0x70, 0x37, 0xa6, 0xec, 0xf2, 0x86, 0x8d, 0x42, 0x38,\n\t0xc1, 0x04, 0x5d, 0x87, 0x91, 0x30, 0x72, 0x82, 0xa8, 0xdd, 0xe2, 0x4c, 0x4f, 0x75, 0x63, 0xca,\n\t0xec, 0xde, 0x55, 0xad, 0x08, 0x36, 0x18, 0xa0, 0xd7, 0xa0, 0xd4, 0x70, 0x37, 0x49, 0x6d, 0xaf,\n\t0xd6, 0x20, 0xd3, 0x23, 0x8c, 0x5b, 0xe6, 0xce, 0x75, 0x4d, 0x12, 0x71, 0x61, 0x5a, 0xfd, 0xc5,\n\t0x71, 0x71, 0x74, 0x13, 0x4e, 0x45, 0x24, 0x68, 0xba, 0x9e, 0x43, 0x77, 0x1c, 0x71, 0x7f, 0x63,\n\t0xf6, 0xe4, 0x51, 0xb6, 0xa4, 0xcf, 0x8a, 0xd1, 0x38, 0xb5, 0x9e, 0x49, 0x85, 0x73, 0x4a, 0xa3,\n\t0x3b, 0x30, 0x9d, 0x81, 0xe1, 0x53, 0xf9, 0x04, 0xe3, 0xfc, 0x21, 0xc1, 0x79, 0x7a, 0x3d, 0x87,\n\t0xee, 0xa0, 0x03, 0x0e, 0xe7, 0x72, 0x47, 0xd7, 0x61, 0x9c, 0x6d, 0x73, 0x95, 0x76, 0xa3, 0x21,\n\t0x2a, 0x1c, 0x63, 0x15, 0x3e, 0x21, 0x0f, 0xfd, 0x15, 0x13, 0x7d, 0xb0, 0x5f, 0x86, 0xf8, 0x1f,\n\t0x4e, 0x96, 0x46, 0x1b, 0xcc, 0x74, 0xd9, 0x0e, 0xdc, 0x68, 0x8f, 0xae, 0x34, 0x72, 0x27, 0x9a,\n\t0x1e, 0xef, 0xa8, 0xc6, 0xd1, 0x49, 0x95, 0x7d, 0x53, 0x07, 0xe2, 0x24, 0x43, 0xba, 0x6f, 0x87,\n\t0x51, 0xdd, 0xf5, 0xa6, 0x27, 0xf8, 0xe5, 0x47, 0x6e, 0x7b, 0x55, 0x0a, 0xc4, 0x1c, 0xc7, 0xcc,\n\t0x96, 0xf4, 0xc7, 0x75, 0x7a, 0x3c, 0x4e, 0x32, 0xc2, 0xd8, 0x6c, 0x29, 0x11, 0x38, 0xa6, 0xa1,\n\t0x12, 0x6b, 0x14, 0xed, 0x4d, 0x23, 0x46, 0xaa, 0x76, 0xaf, 0xf5, 0xf5, 0x8f, 0x61, 0x0a, 0xb7,\n\t0x37, 0x60, 0x4c, 0x6d, 0x1d, 0xac, 0x4f, 0x50, 0x19, 0xfa, 0x99, 0x8c, 0x26, 0x94, 0x8e, 0x25,\n\t0xda, 0x04, 0x26, 0xbf, 0x61, 0x0e, 0x67, 0x4d, 0x70, 0xef, 0x92, 0xf9, 0xbd, 0x88, 0x70, 0xc5,\n\t0x41, 0x51, 0x6b, 0x82, 0x44, 0xe0, 0x98, 0xc6, 0xfe, 0xbf, 0x5c, 0xd6, 0x8d, 0xb7, 0xf4, 0x1e,\n\t0x0e, 0xb1, 0x67, 0x60, 0x68, 0xdb, 0x0f, 0x23, 0x4a, 0xcd, 0xea, 0xe8, 0x8f, 0xa5, 0xdb, 0x2b,\n\t0x02, 0x8e, 0x15, 0x05, 0x7a, 0x05, 0x46, 0x6b, 0x7a, 0x05, 0xe2, 0x04, 0x56, 0xdb, 0x88, 0x51,\n\t0x3b, 0x36, 0x69, 0xd1, 0x4b, 0x30, 0xc4, 0x5c, 0x71, 0x6a, 0x7e, 0x43, 0x88, 0x86, 0x52, 0x8c,\n\t0x18, 0xaa, 0x08, 0xf8, 0x81, 0xf6, 0x1b, 0x2b, 0x6a, 0x74, 0x1e, 0x06, 0x68, 0x13, 0x56, 0x2a,\n\t0xe2, 0xec, 0x53, 0xfa, 0xb3, 0x2b, 0x0c, 0x8a, 0x05, 0xd6, 0xfe, 0x55, 0x8b, 0x09, 0x3e, 0xe9,\n\t0x0d, 0x1a, 0x5d, 0x61, 0x3b, 0x3c, 0xdb, 0xee, 0x35, 0xfd, 0xd5, 0xe3, 0xda, 0xb6, 0xad, 0x70,\n\t0x07, 0x89, 0xff, 0xd8, 0x28, 0x89, 0xde, 0x80, 0xd1, 0x80, 0xb0, 0x2d, 0x42, 0x4c, 0x78, 0x7e,\n\t0xfa, 0xbf, 0x20, 0xbb, 0x00, 0xeb, 0xc8, 0x83, 0xfd, 0xf2, 0xc3, 0xf1, 0x79, 0x44, 0xdb, 0x63,\n\t0xa0, 0xb1, 0xc9, 0xca, 0xfe, 0xcb, 0x05, 0x6d, 0x96, 0x54, 0x23, 0x27, 0x22, 0xa8, 0x02, 0x83,\n\t0xb7, 0x1d, 0x37, 0x72, 0xbd, 0x2d, 0x21, 0xa4, 0x75, 0x3e, 0x95, 0x58, 0xa1, 0x5b, 0xbc, 0x00,\n\t0x17, 0x35, 0xc4, 0x1f, 0x2c, 0xd9, 0x50, 0x8e, 0x41, 0xdb, 0xf3, 0x28, 0xc7, 0x42, 0xaf, 0x1c,\n\t0x31, 0x2f, 0xc0, 0x39, 0x8a, 0x3f, 0x58, 0xb2, 0x41, 0x6f, 0x02, 0xc8, 0x1d, 0x82, 0xd4, 0x85,\n\t0x0b, 0xcf, 0x33, 0xdd, 0x99, 0xae, 0xab, 0x32, 0xf3, 0x63, 0x54, 0x90, 0x89, 0xff, 0x63, 0x8d,\n\t0x9f, 0x1d, 0x69, 0x63, 0xaa, 0x37, 0x06, 0x7d, 0x9c, 0x2e, 0x51, 0x27, 0x88, 0x48, 0x7d, 0x2e,\n\t0x12, 0x9d, 0xf3, 0xde, 0xde, 0x6e, 0x72, 0xeb, 0x6e, 0x93, 0xe8, 0xcb, 0x59, 0x30, 0xc1, 0x31,\n\t0x3f, 0xfb, 0x17, 0x8b, 0x30, 0x9d, 0xd7, 0x5c, 0xba, 0x68, 0xc8, 0x1d, 0x37, 0x5a, 0xa0, 0x32,\n\t0xa8, 0x65, 0x2e, 0x9a, 0x25, 0x01, 0xc7, 0x8a, 0x82, 0xce, 0xde, 0xd0, 0xdd, 0x92, 0x17, 0xf1,\n\t0xfe, 0x78, 0xf6, 0x56, 0x19, 0x14, 0x0b, 0x2c, 0xa5, 0x0b, 0x88, 0x13, 0x0a, 0x1f, 0x31, 0x6d,\n\t0x96, 0x63, 0x06, 0xc5, 0x02, 0xab, 0xab, 0x04, 0xfb, 0xba, 0xa8, 0x04, 0x8d, 0x2e, 0xea, 0x3f,\n\t0xda, 0x2e, 0x42, 0x9f, 0x04, 0xd8, 0x74, 0x3d, 0x37, 0xdc, 0x66, 0xdc, 0x07, 0x0e, 0xcd, 0x5d,\n\t0x49, 0xb0, 0xcb, 0x8a, 0x0b, 0xd6, 0x38, 0xa2, 0x17, 0x61, 0x58, 0x6d, 0x20, 0x2b, 0x8b, 0xcc,\n\t0x60, 0xae, 0x39, 0x20, 0xc5, 0xbb, 0xe9, 0x22, 0xd6, 0xe9, 0xec, 0x4f, 0x27, 0xe7, 0x8b, 0x58,\n\t0x01, 0x5a, 0xff, 0x5a, 0xbd, 0xf6, 0x6f, 0xa1, 0x73, 0xff, 0xda, 0xdf, 0x18, 0x80, 0x71, 0xa3,\n\t0xb2, 0x76, 0xd8, 0xc3, 0x9e, 0x7b, 0x99, 0x1e, 0x40, 0x4e, 0x44, 0xc4, 0xfa, 0xb3, 0xbb, 0x2f,\n\t0x15, 0xfd, 0x90, 0xa2, 0x2b, 0x80, 0x97, 0x47, 0x9f, 0x84, 0x52, 0xc3, 0x09, 0x99, 0x7a, 0x91,\n\t0x88, 0x75, 0xd7, 0x0b, 0xb3, 0xf8, 0xf6, 0xe6, 0x84, 0x91, 0x76, 0xea, 0x73, 0xde, 0x31, 0x4b,\n\t0x7a, 0x52, 0x52, 0xf9, 0x4a, 0x3a, 0x21, 0xaa, 0x46, 0x50, 0x21, 0x6c, 0x0f, 0x73, 0x1c, 0x7a,\n\t0x89, 0x6d, 0xad, 0x74, 0x56, 0x2c, 0x50, 0x69, 0x94, 0x4d, 0xb3, 0x7e, 0x43, 0x22, 0x56, 0x38,\n\t0x6c, 0x50, 0xc6, 0x17, 0xa8, 0x81, 0x0e, 0x17, 0xa8, 0xa7, 0x60, 0x90, 0xfd, 0x50, 0x33, 0x40,\n\t0x8d, 0xc6, 0x0a, 0x07, 0x63, 0x89, 0x4f, 0x4e, 0x98, 0xa1, 0xde, 0x26, 0x0c, 0xbd, 0xa2, 0x89,\n\t0x49, 0xcd, 0x9c, 0x15, 0x86, 0xf8, 0x2e, 0x27, 0xa6, 0x3c, 0x96, 0x38, 0xf4, 0xb3, 0x16, 0x20,\n\t0xa7, 0x41, 0xaf, 0xb6, 0x14, 0xac, 0x6e, 0x22, 0xc0, 0x44, 0xed, 0x57, 0xba, 0x76, 0x7b, 0x3b,\n\t0x9c, 0x9d, 0x4b, 0x95, 0xe6, 0x6a, 0xcd, 0x97, 0x45, 0x13, 0x51, 0x9a, 0x40, 0x3f, 0x8c, 0xae,\n\t0xb9, 0x61, 0xf4, 0xb9, 0xff, 0x98, 0x38, 0x9c, 0x32, 0x9a, 0x84, 0x6e, 0xe8, 0x37, 0xa5, 0xe1,\n\t0x43, 0xde, 0x94, 0x46, 0xf3, 0x6e, 0x49, 0x33, 0x6d, 0x78, 0x28, 0xe7, 0x0b, 0x32, 0x94, 0xa5,\n\t0x8b, 0xba, 0xb2, 0xb4, 0x8b, 0x8a, 0x6d, 0x56, 0xd6, 0x31, 0xfb, 0x7a, 0xdb, 0xf1, 0x22, 0x37,\n\t0xda, 0xd3, 0x95, 0xab, 0xef, 0x85, 0xb1, 0x45, 0x87, 0x34, 0x7d, 0x6f, 0xc9, 0xab, 0xb7, 0x7c,\n\t0xd7, 0x8b, 0xd0, 0x34, 0xf4, 0x31, 0xe1, 0x83, 0x6f, 0xbd, 0x7d, 0xb4, 0xf7, 0x30, 0x83, 0xd8,\n\t0x5b, 0x70, 0x72, 0xd1, 0xbf, 0xed, 0xdd, 0x76, 0x82, 0xfa, 0x5c, 0x65, 0x45, 0x53, 0xfe, 0xac,\n\t0x49, 0xe5, 0x83, 0x95, 0x7f, 0xb5, 0xd3, 0x4a, 0xf2, 0xeb, 0xd0, 0xb2, 0xdb, 0x20, 0x39, 0x2a,\n\t0xba, 0xbf, 0x56, 0x30, 0x6a, 0x8a, 0xe9, 0x95, 0x91, 0xd8, 0xca, 0x35, 0x12, 0xbf, 0x0e, 0x43,\n\t0x9b, 0x2e, 0x69, 0xd4, 0x31, 0xd9, 0x14, 0xbd, 0xf3, 0x64, 0xbe, 0x1b, 0xd9, 0x32, 0xa5, 0x94,\n\t0x2a, 0x59, 0xae, 0xba, 0x58, 0x16, 0x85, 0xb1, 0x62, 0x83, 0x76, 0x60, 0x42, 0xf6, 0xa1, 0xc4,\n\t0x8a, 0xfd, 0xe0, 0xa9, 0x4e, 0x03, 0x6f, 0x32, 0x3f, 0x71, 0x6f, 0xbf, 0x3c, 0x81, 0x13, 0x6c,\n\t0x70, 0x8a, 0x31, 0x7a, 0x04, 0xfa, 0x9a, 0xf4, 0xe4, 0xeb, 0x63, 0xdd, 0xcf, 0x74, 0x15, 0x4c,\n\t0xed, 0xc2, 0xa0, 0xf6, 0x8f, 0x5b, 0xf0, 0x50, 0xaa, 0x67, 0x84, 0xfa, 0xe9, 0x88, 0x47, 0x21,\n\t0xa9, 0x0e, 0x2a, 0x74, 0x57, 0x07, 0xd9, 0x7f, 0xdb, 0x82, 0x13, 0x4b, 0xcd, 0x56, 0xb4, 0xb7,\n\t0xe8, 0x9a, 0x16, 0xdd, 0x0f, 0xc0, 0x40, 0x93, 0xd4, 0xdd, 0x76, 0x53, 0x8c, 0x5c, 0x59, 0x9e,\n\t0x0e, 0xab, 0x0c, 0x7a, 0xb0, 0x5f, 0x1e, 0xad, 0x46, 0x7e, 0xe0, 0x6c, 0x11, 0x0e, 0xc0, 0x82,\n\t0x9c, 0x9d, 0xb1, 0xee, 0x5d, 0x72, 0xcd, 0x6d, 0xba, 0xd1, 0xfd, 0xcd, 0x76, 0x61, 0x8c, 0x95,\n\t0x4c, 0x70, 0xcc, 0xcf, 0xfe, 0xba, 0x05, 0xe3, 0x72, 0xde, 0xcf, 0xd5, 0xeb, 0x01, 0x09, 0x43,\n\t0x34, 0x03, 0x05, 0xb7, 0x25, 0x5a, 0x09, 0xa2, 0x95, 0x85, 0x95, 0x0a, 0x2e, 0xb8, 0x2d, 0x29,\n\t0xce, 0xb3, 0x03, 0xa8, 0x68, 0xda, 0xa5, 0xaf, 0x08, 0x38, 0x56, 0x14, 0xe8, 0x02, 0x0c, 0x79,\n\t0x7e, 0x9d, 0x4b, 0xc4, 0x5c, 0x94, 0x60, 0x13, 0x6c, 0x4d, 0xc0, 0xb0, 0xc2, 0xa2, 0x0a, 0x94,\n\t0xb8, 0xd7, 0x62, 0x3c, 0x69, 0x7b, 0xf2, 0x7d, 0x64, 0x5f, 0xb6, 0x2e, 0x4b, 0xe2, 0x98, 0x89,\n\t0xfd, 0xeb, 0x16, 0x8c, 0xc8, 0x2f, 0xeb, 0xf1, 0xae, 0x42, 0x97, 0x56, 0x7c, 0x4f, 0x89, 0x97,\n\t0x16, 0xbd, 0x6b, 0x30, 0x8c, 0x71, 0xc5, 0x28, 0x1e, 0xea, 0x8a, 0x71, 0x09, 0x86, 0x9d, 0x56,\n\t0xab, 0x62, 0xde, 0x4f, 0xd8, 0x54, 0x9a, 0x8b, 0xc1, 0x58, 0xa7, 0xb1, 0x7f, 0xac, 0x00, 0x63,\n\t0xf2, 0x0b, 0xaa, 0xed, 0x8d, 0x90, 0x44, 0x68, 0x1d, 0x4a, 0x0e, 0x1f, 0x25, 0x22, 0x27, 0xf9,\n\t0x63, 0xd9, 0x4a, 0x2e, 0x63, 0x48, 0x63, 0x41, 0x6b, 0x4e, 0x96, 0xc6, 0x31, 0x23, 0xd4, 0x80,\n\t0x49, 0xcf, 0x8f, 0xd8, 0xa1, 0xab, 0xf0, 0x9d, 0xec, 0x8e, 0x49, 0xee, 0xa7, 0x05, 0xf7, 0xc9,\n\t0xb5, 0x24, 0x17, 0x9c, 0x66, 0x8c, 0x96, 0xa4, 0xe2, 0xb0, 0x98, 0xaf, 0x44, 0xd2, 0x07, 0x2e,\n\t0x5b, 0x6f, 0x68, 0xff, 0x8a, 0x05, 0x25, 0x49, 0x76, 0x1c, 0x26, 0xe6, 0x55, 0x18, 0x0c, 0xd9,\n\t0x20, 0xc8, 0xae, 0xb1, 0x3b, 0x35, 0x9c, 0x8f, 0x57, 0x2c, 0x4b, 0xf0, 0xff, 0x21, 0x96, 0x3c,\n\t0x98, 0xdd, 0x48, 0x35, 0xff, 0x1d, 0x62, 0x37, 0x52, 0xed, 0xc9, 0x39, 0x94, 0xfe, 0x88, 0xb5,\n\t0x59, 0x53, 0xc4, 0x52, 0x91, 0xb7, 0x15, 0x90, 0x4d, 0xf7, 0x4e, 0x52, 0xe4, 0xad, 0x30, 0x28,\n\t0x16, 0x58, 0xf4, 0x26, 0x8c, 0xd4, 0xa4, 0xc1, 0x20, 0x5e, 0xe1, 0xe7, 0x3b, 0x1a, 0xaf, 0x94,\n\t0x9d, 0x93, 0xeb, 0xd0, 0x16, 0xb4, 0xf2, 0xd8, 0xe0, 0x66, 0x7a, 0xe5, 0x14, 0xbb, 0x79, 0xe5,\n\t0xc4, 0x7c, 0xf3, 0x7d, 0x54, 0x7e, 0xc2, 0x82, 0x01, 0xae, 0x28, 0xee, 0x4d, 0x4f, 0xaf, 0x99,\n\t0x7d, 0xe3, 0xbe, 0xbb, 0x49, 0x81, 0x42, 0xd2, 0x40, 0xab, 0x50, 0x62, 0x3f, 0x98, 0xa2, 0xbb,\n\t0x98, 0xff, 0x68, 0x86, 0xd7, 0xaa, 0x37, 0xf0, 0xa6, 0x2c, 0x86, 0x63, 0x0e, 0xf6, 0x8f, 0x16,\n\t0xe9, 0xee, 0x16, 0x93, 0x1a, 0x87, 0xbe, 0xf5, 0xe0, 0x0e, 0xfd, 0xc2, 0x83, 0x3a, 0xf4, 0xb7,\n\t0x60, 0xbc, 0xa6, 0x19, 0x89, 0xe3, 0x91, 0xbc, 0xd0, 0x71, 0x92, 0x68, 0xf6, 0x64, 0xae, 0x9d,\n\t0x5b, 0x30, 0x99, 0xe0, 0x24, 0x57, 0xf4, 0x71, 0x18, 0xe1, 0xe3, 0x2c, 0x6a, 0xe1, 0x8e, 0x4d,\n\t0x4f, 0xe4, 0xcf, 0x17, 0xbd, 0x0a, 0xae, 0xcd, 0xd5, 0x8a, 0x63, 0x83, 0x99, 0xfd, 0xa7, 0x16,\n\t0xa0, 0xa5, 0xd6, 0x36, 0x69, 0x92, 0xc0, 0x69, 0xc4, 0xb6, 0x9e, 0x1f, 0xb2, 0x60, 0x9a, 0xa4,\n\t0xc0, 0x0b, 0x7e, 0xb3, 0x29, 0x2e, 0x8b, 0x39, 0xfa, 0x8c, 0xa5, 0x9c, 0x32, 0xea, 0x55, 0xd1,\n\t0x74, 0x1e, 0x05, 0xce, 0xad, 0x0f, 0xad, 0xc2, 0x14, 0x3f, 0x25, 0x15, 0x42, 0x73, 0x92, 0x7a,\n\t0x58, 0x30, 0x9e, 0x5a, 0x4f, 0x93, 0xe0, 0xac, 0x72, 0xf6, 0x37, 0x47, 0x20, 0xb7, 0x15, 0xef,\n\t0x1a, 0xb9, 0xde, 0x35, 0x72, 0xbd, 0x6b, 0xe4, 0x7a, 0xd7, 0xc8, 0xf5, 0xae, 0x91, 0xeb, 0x5d,\n\t0x23, 0xd7, 0x51, 0x18, 0xb9, 0xfe, 0x8a, 0x05, 0x27, 0xd5, 0x59, 0x63, 0xdc, 0xae, 0x3f, 0x03,\n\t0x53, 0x7c, 0xb9, 0x19, 0xde, 0xbb, 0xe2, 0x6c, 0xbd, 0x94, 0x39, 0x73, 0x13, 0x5e, 0xe6, 0x46,\n\t0x41, 0xfe, 0x5c, 0x27, 0x03, 0x81, 0xb3, 0xaa, 0xb1, 0x7f, 0x71, 0x08, 0xfa, 0x97, 0x76, 0x89,\n\t0x17, 0x1d, 0xc3, 0x3d, 0xa4, 0x06, 0x63, 0xae, 0xb7, 0xeb, 0x37, 0x76, 0x49, 0x9d, 0xe3, 0x0f,\n\t0x73, 0x5d, 0x3e, 0x25, 0x58, 0x8f, 0xad, 0x18, 0x2c, 0x70, 0x82, 0xe5, 0x83, 0x30, 0x15, 0x5c,\n\t0x86, 0x01, 0x7e, 0x52, 0x08, 0x3b, 0x41, 0xe6, 0x9e, 0xcd, 0x3a, 0x51, 0x9c, 0x7f, 0xb1, 0x19,\n\t0x83, 0x9f, 0x44, 0xa2, 0x38, 0xfa, 0x34, 0x8c, 0x6d, 0xba, 0x41, 0x18, 0xad, 0xbb, 0x4d, 0x12,\n\t0x46, 0x4e, 0xb3, 0x75, 0x1f, 0xa6, 0x01, 0xd5, 0x0f, 0xcb, 0x06, 0x27, 0x9c, 0xe0, 0x8c, 0xb6,\n\t0x60, 0xb4, 0xe1, 0xe8, 0x55, 0x0d, 0x1e, 0xba, 0x2a, 0x75, 0x3a, 0x5c, 0xd3, 0x19, 0x61, 0x93,\n\t0x2f, 0x5d, 0x4e, 0x35, 0xa6, 0xdd, 0x1e, 0x62, 0xba, 0x07, 0xb5, 0x9c, 0xb8, 0x5a, 0x9b, 0xe3,\n\t0xa8, 0x34, 0xc5, 0x5c, 0xc4, 0x4b, 0xa6, 0x34, 0xa5, 0x39, 0x82, 0x7f, 0x0a, 0x4a, 0x84, 0x76,\n\t0x21, 0x65, 0x2c, 0x0e, 0x98, 0x8b, 0xbd, 0xb5, 0x75, 0xd5, 0xad, 0x05, 0xbe, 0x69, 0x94, 0x59,\n\t0x92, 0x9c, 0x70, 0xcc, 0x14, 0x2d, 0xc0, 0x40, 0x48, 0x02, 0x57, 0x29, 0x7e, 0x3b, 0x0c, 0x23,\n\t0x23, 0xe3, 0xef, 0xc1, 0xf8, 0x6f, 0x2c, 0x8a, 0xd2, 0xe9, 0xe5, 0x30, 0xbd, 0x29, 0x3b, 0x0c,\n\t0xb4, 0xe9, 0x35, 0xc7, 0xa0, 0x58, 0x60, 0xd1, 0x6b, 0x30, 0x18, 0x90, 0x06, 0xb3, 0xfa, 0x8d,\n\t0xf6, 0x3e, 0xc9, 0xb9, 0x11, 0x91, 0x97, 0xc3, 0x92, 0x01, 0xba, 0x0a, 0x28, 0x20, 0x54, 0x1a,\n\t0x73, 0xbd, 0x2d, 0xe5, 0x38, 0x2d, 0x36, 0x5a, 0x25, 0xf5, 0xe2, 0x98, 0x42, 0x3e, 0x05, 0xc4,\n\t0x19, 0xc5, 0xd0, 0x65, 0x98, 0x54, 0xd0, 0x15, 0x2f, 0x8c, 0x1c, 0xba, 0xc1, 0x8d, 0x33, 0x5e,\n\t0x4a, 0x19, 0x82, 0x93, 0x04, 0x38, 0x5d, 0xc6, 0xfe, 0x92, 0x05, 0xbc, 0x9f, 0x8f, 0x41, 0x05,\n\t0xf0, 0xaa, 0xa9, 0x02, 0x38, 0x9d, 0x3b, 0x72, 0x39, 0xd7, 0xff, 0x2f, 0x59, 0x30, 0xac, 0x8d,\n\t0x6c, 0x3c, 0x67, 0xad, 0x0e, 0x73, 0xb6, 0x0d, 0x13, 0x74, 0xa6, 0x5f, 0xdf, 0x08, 0x49, 0xb0,\n\t0x4b, 0xea, 0x6c, 0x62, 0x16, 0xee, 0x6f, 0x62, 0x2a, 0x27, 0xcd, 0x6b, 0x09, 0x86, 0x38, 0x55,\n\t0x85, 0xfd, 0x29, 0xd9, 0x54, 0xe5, 0xd3, 0x5a, 0x53, 0x63, 0x9e, 0xf0, 0x69, 0x55, 0xa3, 0x8a,\n\t0x63, 0x1a, 0xba, 0xd4, 0xb6, 0xfd, 0x30, 0x4a, 0xfa, 0xb4, 0x5e, 0xf1, 0xc3, 0x08, 0x33, 0x8c,\n\t0xfd, 0x3c, 0xc0, 0xd2, 0x1d, 0x52, 0xe3, 0x33, 0x56, 0xbf, 0xa1, 0x58, 0xf9, 0x37, 0x14, 0xfb,\n\t0x77, 0x2c, 0x18, 0x5b, 0x5e, 0x30, 0x4e, 0xae, 0x59, 0x00, 0x7e, 0xad, 0xba, 0x75, 0x6b, 0x4d,\n\t0xfa, 0x6a, 0x70, 0x73, 0xb5, 0x82, 0x62, 0x8d, 0x02, 0x9d, 0x86, 0x62, 0xa3, 0xed, 0x09, 0x1d,\n\t0xe5, 0x20, 0x3d, 0x1e, 0xaf, 0xb5, 0x3d, 0x4c, 0x61, 0xda, 0x33, 0xa0, 0x62, 0xcf, 0xcf, 0x80,\n\t0xba, 0x86, 0xff, 0x40, 0x65, 0xe8, 0xbf, 0x7d, 0xdb, 0xad, 0xf3, 0x47, 0xd6, 0xc2, 0x8f, 0xe4,\n\t0xd6, 0xad, 0x95, 0xc5, 0x10, 0x73, 0xb8, 0xfd, 0x85, 0x22, 0xcc, 0x2c, 0x37, 0xc8, 0x9d, 0xb7,\n\t0xf9, 0xd0, 0xbc, 0xd7, 0x47, 0x4c, 0x87, 0xd3, 0xf6, 0x1c, 0xf6, 0xa1, 0x5a, 0xf7, 0xfe, 0xd8,\n\t0x84, 0x41, 0xee, 0xd2, 0x29, 0x9f, 0x9d, 0x67, 0xda, 0xe6, 0xf2, 0x3b, 0x64, 0x96, 0xbb, 0x86,\n\t0x0a, 0xdb, 0x9c, 0x3a, 0x30, 0x05, 0x14, 0x4b, 0xe6, 0x33, 0x2f, 0xc3, 0x88, 0x4e, 0x79, 0xa8,\n\t0x27, 0xa3, 0xdf, 0x53, 0x84, 0x09, 0xda, 0x82, 0x07, 0x3a, 0x10, 0x37, 0xd2, 0x03, 0x71, 0xd4,\n\t0xcf, 0x06, 0xbb, 0x8f, 0xc6, 0x9b, 0xc9, 0xd1, 0xb8, 0x94, 0x37, 0x1a, 0xc7, 0x3d, 0x06, 0xdf,\n\t0x6b, 0xc1, 0xd4, 0x72, 0xc3, 0xaf, 0xed, 0x24, 0x9e, 0xf6, 0xbd, 0x08, 0xc3, 0x74, 0x3b, 0x0e,\n\t0x8d, 0x28, 0x17, 0x46, 0xdc, 0x13, 0x81, 0xc2, 0x3a, 0x9d, 0x56, 0xec, 0xc6, 0x8d, 0x95, 0xc5,\n\t0xac, 0x70, 0x29, 0x02, 0x85, 0x75, 0x3a, 0xfb, 0xb7, 0x2c, 0x38, 0x73, 0x79, 0x61, 0x29, 0x9e,\n\t0x8a, 0xa9, 0x88, 0x2d, 0xe7, 0x61, 0xa0, 0x55, 0xd7, 0x9a, 0x12, 0xeb, 0x70, 0x17, 0x59, 0x2b,\n\t0x04, 0xf6, 0x9d, 0x12, 0x8d, 0xe8, 0x06, 0xc0, 0x65, 0x5c, 0x59, 0x10, 0xfb, 0xae, 0x34, 0xd9,\n\t0x58, 0xb9, 0x26, 0x9b, 0x27, 0x60, 0x90, 0x9e, 0x0b, 0x6e, 0x4d, 0xb6, 0x9b, 0x5b, 0xdf, 0x39,\n\t0x08, 0x4b, 0x9c, 0xfd, 0x73, 0x16, 0x4c, 0x5d, 0x76, 0x23, 0x7a, 0x68, 0x27, 0x43, 0x92, 0xd0,\n\t0x53, 0x3b, 0x74, 0x23, 0x3f, 0xd8, 0x4b, 0x86, 0x24, 0xc1, 0x0a, 0x83, 0x35, 0x2a, 0xfe, 0x41,\n\t0xbb, 0x2e, 0x7b, 0xa3, 0x50, 0x30, 0x8d, 0x64, 0x58, 0xc0, 0xb1, 0xa2, 0xa0, 0xfd, 0x55, 0x77,\n\t0x03, 0xa6, 0x5f, 0xdc, 0x13, 0x1b, 0xb7, 0xea, 0xaf, 0x45, 0x89, 0xc0, 0x31, 0x8d, 0xfd, 0xc7,\n\t0x16, 0x94, 0x2f, 0x37, 0xda, 0x61, 0x44, 0x82, 0xcd, 0x30, 0x67, 0xd3, 0x7d, 0x1e, 0x4a, 0x44,\n\t0x6a, 0xf3, 0xe5, 0x63, 0x4a, 0x29, 0x88, 0x2a, 0x35, 0x3f, 0x8f, 0x8c, 0xa2, 0xe8, 0x7a, 0x78,\n\t0x7f, 0x7c, 0xb8, 0x07, 0xa4, 0xcb, 0x80, 0x88, 0x5e, 0x97, 0x1e, 0x2a, 0x86, 0xc5, 0x9c, 0x58,\n\t0x4a, 0x61, 0x71, 0x46, 0x09, 0xfb, 0xc7, 0x2d, 0x38, 0xa9, 0x3e, 0xf8, 0x1d, 0xf7, 0x99, 0xf6,\n\t0x57, 0x0b, 0x30, 0x7a, 0x65, 0x7d, 0xbd, 0x72, 0x99, 0x44, 0xda, 0xac, 0xec, 0x6c, 0xa3, 0xc7,\n\t0x9a, 0xa9, 0xb1, 0xd3, 0x1d, 0xb1, 0x1d, 0xb9, 0x8d, 0x59, 0x1e, 0x71, 0x6c, 0x76, 0xc5, 0x8b,\n\t0xae, 0x07, 0xd5, 0x28, 0x70, 0xbd, 0xad, 0xcc, 0x99, 0x2e, 0x65, 0x96, 0x62, 0x9e, 0xcc, 0x82,\n\t0x9e, 0x87, 0x01, 0x16, 0xf2, 0x4c, 0x0e, 0xc2, 0xc3, 0xea, 0x8a, 0xc5, 0xa0, 0x07, 0xfb, 0xe5,\n\t0xd2, 0x0d, 0xbc, 0xc2, 0xff, 0x60, 0x41, 0x8a, 0x6e, 0xc0, 0xf0, 0x76, 0x14, 0xb5, 0xae, 0x10,\n\t0xa7, 0x4e, 0x02, 0xb9, 0xcb, 0x9e, 0xcd, 0xda, 0x65, 0x69, 0x27, 0x70, 0xb2, 0x78, 0x63, 0x8a,\n\t0x61, 0x21, 0xd6, 0xf9, 0xd8, 0x55, 0x80, 0x18, 0x77, 0x44, 0x56, 0x16, 0x7b, 0x1d, 0x4a, 0xf4,\n\t0x73, 0xe7, 0x1a, 0xae, 0xd3, 0xd9, 0x8e, 0xfd, 0x34, 0x94, 0xa4, 0x95, 0x3a, 0x14, 0xf1, 0x11,\n\t0xd8, 0x89, 0x24, 0x8d, 0xd8, 0x21, 0x8e, 0xf1, 0xf6, 0x26, 0x9c, 0x60, 0xbe, 0xaa, 0x4e, 0xb4,\n\t0x6d, 0xcc, 0xbe, 0xee, 0xc3, 0xfc, 0x8c, 0xb8, 0xb1, 0xf1, 0x36, 0x4f, 0x6b, 0x0f, 0x7a, 0x47,\n\t0x24, 0xc7, 0xf8, 0xf6, 0x66, 0x7f, 0xb3, 0x0f, 0x1e, 0x5e, 0xa9, 0xe6, 0x87, 0xec, 0x79, 0x09,\n\t0x46, 0xb8, 0x20, 0x48, 0x07, 0xdd, 0x69, 0x88, 0x7a, 0x95, 0x6e, 0x73, 0x5d, 0xc3, 0x61, 0x83,\n\t0x12, 0x9d, 0x81, 0xa2, 0xfb, 0x96, 0x97, 0x7c, 0xee, 0xb6, 0xf2, 0xfa, 0x1a, 0xa6, 0x70, 0x8a,\n\t0xa6, 0x32, 0x25, 0xdf, 0xac, 0x15, 0x5a, 0xc9, 0x95, 0xaf, 0xc2, 0x98, 0x1b, 0xd6, 0x42, 0x77,\n\t0xc5, 0xa3, 0x2b, 0x50, 0x5b, 0xc3, 0x4a, 0x9b, 0x40, 0x1b, 0xad, 0xb0, 0x38, 0x41, 0xad, 0x9d,\n\t0x1c, 0xfd, 0x3d, 0xcb, 0xa5, 0x5d, 0x03, 0x06, 0xd0, 0x8d, 0xbd, 0xc5, 0xbe, 0x2e, 0x64, 0x9a,\n\t0x70, 0xb1, 0xb1, 0xf3, 0x0f, 0x0e, 0xb1, 0xc4, 0xd1, 0xab, 0x5a, 0x6d, 0xdb, 0x69, 0xcd, 0xb5,\n\t0xa3, 0xed, 0x45, 0x37, 0xac, 0xf9, 0xbb, 0x24, 0xd8, 0x63, 0xb7, 0xec, 0xa1, 0xf8, 0xaa, 0xa6,\n\t0x10, 0x0b, 0x57, 0xe6, 0x2a, 0x94, 0x12, 0xa7, 0xcb, 0xa0, 0x39, 0x18, 0x97, 0xc0, 0x2a, 0x09,\n\t0xd9, 0xe6, 0x3e, 0xcc, 0xd8, 0xa8, 0x07, 0x68, 0x02, 0xac, 0x98, 0x24, 0xe9, 0x4d, 0xd1, 0x15,\n\t0x8e, 0x42, 0x74, 0xfd, 0x00, 0x8c, 0xba, 0x9e, 0x1b, 0xb9, 0x4e, 0xe4, 0x73, 0x33, 0x0e, 0xbf,\n\t0x50, 0x33, 0xd5, 0xf1, 0x8a, 0x8e, 0xc0, 0x26, 0x9d, 0xfd, 0x9f, 0xfa, 0x60, 0x92, 0x0d, 0xdb,\n\t0xbb, 0x33, 0xec, 0x3b, 0x69, 0x86, 0xdd, 0x48, 0xcf, 0xb0, 0xa3, 0x90, 0xc9, 0xef, 0x7b, 0x9a,\n\t0x7d, 0x1a, 0x4a, 0xea, 0xcd, 0x9d, 0x7c, 0x74, 0x6b, 0xe5, 0x3c, 0xba, 0xed, 0x7e, 0x2e, 0x4b,\n\t0xcf, 0xb0, 0x62, 0xa6, 0x67, 0xd8, 0x97, 0x2d, 0x88, 0x4d, 0x06, 0xe8, 0x75, 0x28, 0xb5, 0x7c,\n\t0xe6, 0x68, 0x1a, 0x48, 0xef, 0xed, 0xc7, 0x3b, 0xda, 0x1c, 0x78, 0xd4, 0xb2, 0x80, 0xf7, 0x42,\n\t0x45, 0x16, 0xc5, 0x31, 0x17, 0x74, 0x15, 0x06, 0x5b, 0x01, 0xa9, 0x46, 0x2c, 0xa4, 0x4e, 0xef,\n\t0x0c, 0xf9, 0xac, 0xe1, 0x05, 0xb1, 0xe4, 0x60, 0xff, 0x67, 0x0b, 0x26, 0x92, 0xa4, 0xe8, 0x43,\n\t0xd0, 0x47, 0xee, 0x90, 0x9a, 0x68, 0x6f, 0xe6, 0x21, 0x1b, 0x2b, 0x1d, 0x78, 0x07, 0xd0, 0xff,\n\t0x98, 0x95, 0x42, 0x57, 0x60, 0x90, 0x9e, 0xb0, 0x97, 0x55, 0xf8, 0xb8, 0x47, 0xf3, 0x4e, 0x69,\n\t0x25, 0xaa, 0xf0, 0xc6, 0x09, 0x10, 0x96, 0xc5, 0x99, 0x3b, 0x56, 0xad, 0x55, 0xa5, 0x97, 0x97,\n\t0xa8, 0xd3, 0x1d, 0x7b, 0x7d, 0xa1, 0xc2, 0x89, 0x04, 0x37, 0xee, 0x8e, 0x25, 0x81, 0x38, 0x66,\n\t0x62, 0xff, 0xbc, 0x05, 0xc0, 0xbd, 0xcf, 0x1c, 0x6f, 0x8b, 0x1c, 0x83, 0x9e, 0x7c, 0x11, 0xfa,\n\t0xc2, 0x16, 0xa9, 0x75, 0xf2, 0x81, 0x8e, 0xdb, 0x53, 0x6d, 0x91, 0x5a, 0x3c, 0xe3, 0xe8, 0x3f,\n\t0xcc, 0x4a, 0xdb, 0xdf, 0x07, 0x30, 0x16, 0x93, 0xad, 0x44, 0xa4, 0x89, 0x9e, 0x35, 0x02, 0x75,\n\t0x9c, 0x4e, 0x04, 0xea, 0x28, 0x31, 0x6a, 0x4d, 0x25, 0xfb, 0x69, 0x28, 0x36, 0x9d, 0x3b, 0x42,\n\t0xe7, 0xf6, 0x74, 0xe7, 0x66, 0x50, 0xfe, 0xb3, 0xab, 0xce, 0x1d, 0x7e, 0x2d, 0x7d, 0x5a, 0xae,\n\t0x90, 0x55, 0xe7, 0x4e, 0x57, 0x3f, 0x5d, 0x5a, 0x09, 0xab, 0xcb, 0xf5, 0x84, 0x63, 0x55, 0x4f,\n\t0x75, 0xb9, 0x5e, 0xb2, 0x2e, 0xd7, 0xeb, 0xa1, 0x2e, 0xd7, 0x43, 0x77, 0x61, 0x50, 0xf8, 0x3d,\n\t0x8a, 0x50, 0x5e, 0x17, 0x7b, 0xa8, 0x4f, 0xb8, 0x4d, 0xf2, 0x3a, 0x2f, 0xca, 0x6b, 0xb7, 0x80,\n\t0x76, 0xad, 0x57, 0x56, 0x88, 0xfe, 0xaa, 0x05, 0x63, 0xe2, 0x37, 0x26, 0x6f, 0xb5, 0x49, 0x18,\n\t0x09, 0xb1, 0xf4, 0xfd, 0xbd, 0xb7, 0x41, 0x14, 0xe4, 0x4d, 0x79, 0xbf, 0x3c, 0x67, 0x4c, 0x64,\n\t0xd7, 0x16, 0x25, 0x5a, 0x81, 0xfe, 0xae, 0x05, 0x27, 0x9a, 0xce, 0x1d, 0x5e, 0x23, 0x87, 0x61,\n\t0x27, 0x72, 0x7d, 0xe1, 0x3f, 0xf0, 0xa1, 0xde, 0x86, 0x3f, 0x55, 0x9c, 0x37, 0x52, 0xda, 0x1f,\n\t0x4f, 0x64, 0x91, 0x74, 0x6d, 0x6a, 0x66, 0xbb, 0x66, 0x36, 0x61, 0x48, 0xce, 0xb7, 0x07, 0xe9,\n\t0x64, 0xcd, 0xea, 0x11, 0x73, 0xed, 0x81, 0xd6, 0xf3, 0x69, 0x18, 0xd1, 0xe7, 0xd8, 0x03, 0xad,\n\t0xeb, 0x2d, 0x98, 0xca, 0x98, 0x4b, 0x0f, 0xb4, 0xca, 0xdb, 0x70, 0x3a, 0x77, 0x7e, 0x3c, 0x50,\n\t0x27, 0xf9, 0xaf, 0x5a, 0xfa, 0x3e, 0x78, 0x0c, 0xc6, 0x8a, 0x05, 0xd3, 0x58, 0x71, 0xb6, 0xf3,\n\t0xca, 0xc9, 0xb1, 0x58, 0xbc, 0xa9, 0x37, 0x9a, 0xee, 0xea, 0xe8, 0x35, 0x18, 0x68, 0x50, 0x88,\n\t0xf4, 0x9e, 0xb5, 0xbb, 0xaf, 0xc8, 0x58, 0x98, 0x64, 0xf0, 0x10, 0x0b, 0x0e, 0xf6, 0x2f, 0x59,\n\t0xd0, 0x77, 0x0c, 0x3d, 0x81, 0xcd, 0x9e, 0x78, 0x36, 0x97, 0xb5, 0x88, 0x6a, 0x3e, 0x8b, 0x9d,\n\t0xdb, 0x4b, 0x77, 0x22, 0xe2, 0x85, 0xec, 0x44, 0xce, 0xec, 0x98, 0x9f, 0xb6, 0x60, 0xea, 0x9a,\n\t0xef, 0xd4, 0xe7, 0x9d, 0x86, 0xe3, 0xd5, 0x48, 0xb0, 0xe2, 0x6d, 0x1d, 0xca, 0xf5, 0xbb, 0xd0,\n\t0xd5, 0xf5, 0x7b, 0x41, 0x7a, 0x4e, 0xf5, 0xe5, 0x8f, 0x1f, 0x95, 0xa4, 0x93, 0xa1, 0x8b, 0x0c,\n\t0x1f, 0xdf, 0x6d, 0x40, 0x7a, 0x2b, 0xc5, 0x03, 0x28, 0x0c, 0x83, 0x2e, 0x6f, 0xaf, 0x18, 0xc4,\n\t0x27, 0xb3, 0x25, 0xdc, 0xd4, 0xe7, 0x69, 0x4f, 0x7b, 0x38, 0x00, 0x4b, 0x46, 0xf6, 0x4b, 0x90,\n\t0x19, 0x6a, 0xa2, 0xbb, 0x5e, 0xc2, 0xfe, 0x18, 0x4c, 0xb2, 0x92, 0x87, 0xd4, 0x0c, 0xd8, 0x09,\n\t0x6d, 0x6a, 0x46, 0xd8, 0x4c, 0xfb, 0xf3, 0x16, 0x8c, 0xaf, 0x25, 0xa2, 0x09, 0x9e, 0x67, 0xf6,\n\t0xd7, 0x0c, 0x25, 0x7e, 0x95, 0x41, 0xb1, 0xc0, 0x1e, 0xb9, 0x92, 0xeb, 0xcf, 0x2d, 0x88, 0xa3,\n\t0xbf, 0x1c, 0x83, 0xf8, 0xb6, 0x60, 0x88, 0x6f, 0x99, 0x82, 0xac, 0x6a, 0x4e, 0x9e, 0xf4, 0x86,\n\t0xae, 0xaa, 0xb8, 0x68, 0x1d, 0x64, 0xd8, 0x98, 0x0d, 0x9f, 0x8a, 0x63, 0x66, 0xf0, 0x34, 0x19,\n\t0x29, 0xcd, 0xfe, 0xdd, 0x02, 0x20, 0x45, 0xdb, 0x73, 0xdc, 0xb6, 0x74, 0x89, 0xa3, 0x89, 0xdb,\n\t0xb6, 0x0b, 0x88, 0x79, 0x10, 0x04, 0x8e, 0x17, 0x72, 0xb6, 0xae, 0x50, 0xeb, 0x1d, 0xce, 0x3d,\n\t0x61, 0x46, 0xbe, 0x0d, 0xbb, 0x96, 0xe2, 0x86, 0x33, 0x6a, 0xd0, 0x3c, 0x43, 0xfa, 0x7b, 0xf5,\n\t0x0c, 0x19, 0xe8, 0xf2, 0xc8, 0xf1, 0x2b, 0x16, 0x8c, 0xaa, 0x6e, 0x7a, 0x87, 0xb8, 0xc2, 0xab,\n\t0xf6, 0xe4, 0x6c, 0xa0, 0x15, 0xad, 0xc9, 0xec, 0x60, 0xf9, 0x2e, 0xf6, 0x58, 0xd5, 0x69, 0xb8,\n\t0x77, 0x89, 0x8a, 0xf3, 0x59, 0x16, 0x8f, 0x4f, 0x05, 0xf4, 0x60, 0xbf, 0x3c, 0xaa, 0xfe, 0xf1,\n\t0x38, 0xe6, 0x71, 0x11, 0xba, 0x25, 0x8f, 0x27, 0xa6, 0x22, 0x7a, 0x11, 0xfa, 0x5b, 0xdb, 0x4e,\n\t0x48, 0x12, 0x4f, 0x86, 0xfa, 0x2b, 0x14, 0x78, 0xb0, 0x5f, 0x1e, 0x53, 0x05, 0x18, 0x04, 0x73,\n\t0xea, 0xde, 0xa3, 0xe1, 0xa5, 0x27, 0x67, 0xd7, 0x68, 0x78, 0x7f, 0x6a, 0x41, 0xdf, 0x9a, 0x5f,\n\t0x3f, 0x8e, 0x2d, 0xe0, 0x55, 0x63, 0x0b, 0x78, 0x24, 0x2f, 0xc5, 0x44, 0xee, 0xea, 0x5f, 0x4e,\n\t0xac, 0xfe, 0xb3, 0xb9, 0x1c, 0x3a, 0x2f, 0xfc, 0x26, 0x0c, 0xb3, 0xc4, 0x15, 0xe2, 0x79, 0xd4,\n\t0xf3, 0xc6, 0x82, 0x2f, 0x27, 0x16, 0xfc, 0xb8, 0x46, 0xaa, 0xad, 0xf4, 0xa7, 0x60, 0x50, 0xbc,\n\t0xb7, 0x49, 0xbe, 0xf9, 0x15, 0xb4, 0x58, 0xe2, 0xed, 0x9f, 0x28, 0x82, 0x91, 0x28, 0x03, 0xfd,\n\t0x8a, 0x05, 0xb3, 0x01, 0xf7, 0xc3, 0xad, 0x2f, 0xb6, 0x03, 0xd7, 0xdb, 0xaa, 0xd6, 0xb6, 0x49,\n\t0xbd, 0xdd, 0x70, 0xbd, 0xad, 0x95, 0x2d, 0xcf, 0x57, 0xe0, 0xa5, 0x3b, 0xa4, 0xd6, 0x66, 0x66,\n\t0xb7, 0x2e, 0x59, 0x39, 0x94, 0x3f, 0xfb, 0x73, 0xf7, 0xf6, 0xcb, 0xb3, 0xf8, 0x50, 0xbc, 0xf1,\n\t0x21, 0xdb, 0x82, 0x7e, 0xcb, 0x82, 0x8b, 0x3c, 0x7f, 0x44, 0xef, 0xed, 0xef, 0x70, 0x5b, 0xae,\n\t0x48, 0x56, 0x31, 0x93, 0x75, 0x12, 0x34, 0xe7, 0x3f, 0x20, 0x3a, 0xf4, 0x62, 0xe5, 0x70, 0x75,\n\t0xe1, 0xc3, 0x36, 0xce, 0xfe, 0xc7, 0x45, 0x18, 0x15, 0x51, 0xd3, 0xc4, 0x19, 0xf0, 0xa2, 0x31,\n\t0x25, 0x1e, 0x4d, 0x4c, 0x89, 0x49, 0x83, 0xf8, 0x68, 0xb6, 0xff, 0x10, 0x26, 0xe9, 0xe6, 0x7c,\n\t0x85, 0x38, 0x41, 0xb4, 0x41, 0x1c, 0xee, 0xf0, 0x55, 0x3c, 0xf4, 0xee, 0xaf, 0xf4, 0x93, 0xd7,\n\t0x92, 0xcc, 0x70, 0x9a, 0xff, 0x77, 0xd2, 0x99, 0xe3, 0xc1, 0x44, 0x2a, 0xf0, 0xdd, 0x1b, 0x50,\n\t0x52, 0x8f, 0x45, 0xc4, 0xa6, 0xd3, 0x39, 0x7e, 0x64, 0x92, 0x03, 0x57, 0x7f, 0xc5, 0x0f, 0x95,\n\t0x62, 0x76, 0xf6, 0xdf, 0x2f, 0x18, 0x15, 0xf2, 0x41, 0x5c, 0x83, 0x21, 0x27, 0x0c, 0xdd, 0x2d,\n\t0x8f, 0xd4, 0x3b, 0x69, 0x28, 0x53, 0xd5, 0xb0, 0x07, 0x3b, 0x73, 0xa2, 0x24, 0x56, 0x3c, 0xd0,\n\t0x15, 0xee, 0x56, 0xb7, 0x4b, 0x3a, 0xa9, 0x27, 0x53, 0xdc, 0x40, 0x3a, 0xde, 0xed, 0x12, 0x2c,\n\t0xca, 0xa3, 0x4f, 0x70, 0xbf, 0xc7, 0xab, 0x9e, 0x7f, 0xdb, 0xbb, 0xec, 0xfb, 0x32, 0xe8, 0x46,\n\t0x6f, 0x0c, 0x27, 0xa5, 0xb7, 0xa3, 0x2a, 0x8e, 0x4d, 0x6e, 0xbd, 0x45, 0x92, 0xfd, 0x0c, 0xb0,\n\t0x78, 0xf9, 0xe6, 0xdb, 0xec, 0x10, 0x11, 0x18, 0x17, 0x21, 0xf9, 0x24, 0x4c, 0xf4, 0x5d, 0xe6,\n\t0x55, 0xce, 0x2c, 0x1d, 0x2b, 0xd2, 0xaf, 0x9a, 0x2c, 0x70, 0x92, 0xa7, 0xfd, 0xb3, 0x16, 0xb0,\n\t0x77, 0xaa, 0xc7, 0x20, 0x8f, 0x7c, 0xd8, 0x94, 0x47, 0xa6, 0xf3, 0x3a, 0x39, 0x47, 0x14, 0x79,\n\t0x81, 0xcf, 0xac, 0x4a, 0xe0, 0xdf, 0xd9, 0x13, 0xce, 0x2a, 0xdd, 0xef, 0x1f, 0xf6, 0xff, 0xb6,\n\t0xf8, 0x26, 0x16, 0xbf, 0xea, 0xff, 0x2c, 0x0c, 0xd5, 0x9c, 0x96, 0x53, 0xe3, 0x59, 0x9d, 0x72,\n\t0x35, 0x7a, 0x46, 0xa1, 0xd9, 0x05, 0x51, 0x82, 0x6b, 0xa8, 0x64, 0x68, 0xc7, 0x21, 0x09, 0xee,\n\t0xaa, 0x95, 0x52, 0x55, 0xce, 0xec, 0xc0, 0xa8, 0xc1, 0xec, 0x81, 0xaa, 0x33, 0x3e, 0xcb, 0x8f,\n\t0x58, 0x15, 0x8a, 0xb4, 0x09, 0x93, 0x9e, 0xf6, 0x9f, 0x1e, 0x28, 0xf2, 0x72, 0xf9, 0x78, 0xb7,\n\t0x43, 0x94, 0x9d, 0x3e, 0xda, 0x13, 0xd8, 0x04, 0x1b, 0x9c, 0xe6, 0x6c, 0xff, 0xa4, 0x05, 0x0f,\n\t0xe9, 0x84, 0xda, 0x2b, 0x9b, 0x6e, 0x46, 0x92, 0x45, 0x18, 0xf2, 0x5b, 0x24, 0x70, 0x22, 0x3f,\n\t0x10, 0xa7, 0xc6, 0x05, 0xd9, 0xe9, 0xd7, 0x05, 0xfc, 0x40, 0xe4, 0x28, 0x90, 0xdc, 0x25, 0x1c,\n\t0xab, 0x92, 0xf4, 0xf6, 0xc9, 0x3a, 0x23, 0x14, 0xef, 0xa9, 0xd8, 0x1e, 0xc0, 0x2c, 0xe9, 0x21,\n\t0x16, 0x18, 0xfb, 0x9b, 0x16, 0x9f, 0x58, 0x7a, 0xd3, 0xd1, 0x5b, 0x30, 0xd1, 0x74, 0xa2, 0xda,\n\t0xf6, 0xd2, 0x9d, 0x56, 0xc0, 0x4d, 0x4e, 0xb2, 0x9f, 0x9e, 0xee, 0xd6, 0x4f, 0xda, 0x47, 0xc6,\n\t0xae, 0x9c, 0xab, 0x09, 0x66, 0x38, 0xc5, 0x1e, 0x6d, 0xc0, 0x30, 0x83, 0xb1, 0xa7, 0x82, 0x61,\n\t0x27, 0xd1, 0x20, 0xaf, 0x36, 0xe5, 0x8c, 0xb0, 0x1a, 0xf3, 0xc1, 0x3a, 0x53, 0xfb, 0xcb, 0x45,\n\t0xbe, 0xda, 0x99, 0x28, 0xff, 0x14, 0x0c, 0xb6, 0xfc, 0xfa, 0xc2, 0xca, 0x22, 0x16, 0xa3, 0xa0,\n\t0x8e, 0x91, 0x0a, 0x07, 0x63, 0x89, 0x47, 0x17, 0x60, 0x48, 0xfc, 0x94, 0x26, 0x42, 0xb6, 0x37,\n\t0x0b, 0xba, 0x10, 0x2b, 0x2c, 0x7a, 0x0e, 0xa0, 0x15, 0xf8, 0xbb, 0x6e, 0x9d, 0x85, 0x0e, 0x29,\n\t0x9a, 0x7e, 0x44, 0x15, 0x85, 0xc1, 0x1a, 0x15, 0x7a, 0x05, 0x46, 0xdb, 0x5e, 0xc8, 0xc5, 0x11,\n\t0x2d, 0x9a, 0xb2, 0xf2, 0x70, 0xb9, 0xa1, 0x23, 0xb1, 0x49, 0x8b, 0xe6, 0x60, 0x20, 0x72, 0x98,\n\t0x5f, 0x4c, 0x7f, 0xbe, 0xbb, 0xef, 0x3a, 0xa5, 0xd0, 0x13, 0x08, 0xd1, 0x02, 0x58, 0x14, 0x44,\n\t0x6f, 0xc8, 0x57, 0xbb, 0x7c, 0x63, 0x17, 0x7e, 0xf6, 0xbd, 0x1d, 0x02, 0xda, 0x9b, 0x5d, 0xe1,\n\t0xbf, 0x6f, 0xf0, 0x42, 0x2f, 0x03, 0x90, 0x3b, 0x11, 0x09, 0x3c, 0xa7, 0xa1, 0xbc, 0xd9, 0x94,\n\t0x5c, 0xb0, 0xe8, 0xaf, 0xf9, 0xd1, 0x8d, 0x90, 0x2c, 0x29, 0x0a, 0xac, 0x51, 0xdb, 0xbf, 0x55,\n\t0x02, 0x88, 0xe5, 0x76, 0x74, 0x37, 0xb5, 0x71, 0x3d, 0xd3, 0x59, 0xd2, 0x3f, 0xba, 0x5d, 0x0b,\n\t0x7d, 0xbf, 0x05, 0xc3, 0x22, 0x42, 0x0a, 0x1b, 0xa1, 0x42, 0xe7, 0x8d, 0xd3, 0x0c, 0xd4, 0x42,\n\t0x4b, 0xf0, 0x26, 0x3c, 0x2f, 0x67, 0xa8, 0x86, 0xe9, 0xda, 0x0a, 0xbd, 0x62, 0xf4, 0x3e, 0x79,\n\t0x55, 0x2c, 0x1a, 0x5d, 0xa9, 0xae, 0x8a, 0x25, 0x76, 0x46, 0xe8, 0xb7, 0xc4, 0x1b, 0xc6, 0x2d,\n\t0xb1, 0x2f, 0xff, 0x59, 0xa2, 0x21, 0xbe, 0x76, 0xbb, 0x20, 0xa2, 0x8a, 0x1e, 0xa2, 0xa0, 0x3f,\n\t0xff, 0x79, 0x9e, 0x76, 0x4f, 0xea, 0x12, 0x9e, 0xe0, 0xd3, 0x30, 0x5e, 0x37, 0x85, 0x00, 0x31,\n\t0x13, 0x9f, 0xcc, 0xe3, 0x9b, 0x90, 0x19, 0xe2, 0x63, 0x3f, 0x81, 0xc0, 0x49, 0xc6, 0xa8, 0xc2,\n\t0x23, 0x56, 0xac, 0x78, 0x9b, 0xbe, 0x78, 0xeb, 0x61, 0xe7, 0x8e, 0xe5, 0x5e, 0x18, 0x91, 0x26,\n\t0xa5, 0x8c, 0x4f, 0xf7, 0x35, 0x51, 0x16, 0x2b, 0x2e, 0xe8, 0x35, 0x18, 0x60, 0xef, 0xb3, 0xc2,\n\t0xe9, 0xa1, 0x7c, 0x8d, 0xb3, 0x19, 0xba, 0x2f, 0x5e, 0x90, 0xec, 0x6f, 0x88, 0x05, 0x07, 0x74,\n\t0x45, 0xbe, 0x7e, 0x0c, 0x57, 0xbc, 0x1b, 0x21, 0x61, 0xaf, 0x1f, 0x4b, 0xf3, 0x8f, 0xc7, 0x0f,\n\t0x1b, 0x39, 0x3c, 0x33, 0xcd, 0xa0, 0x51, 0x92, 0x4a, 0x51, 0xe2, 0xbf, 0xcc, 0x5e, 0x28, 0x02,\n\t0x0d, 0x65, 0x36, 0xcf, 0xcc, 0x70, 0x18, 0x77, 0xe7, 0x4d, 0x93, 0x05, 0x4e, 0xf2, 0xa4, 0x12,\n\t0x29, 0x5f, 0xf5, 0xe2, 0xb5, 0x48, 0xb7, 0xbd, 0x83, 0x5f, 0xc4, 0xd9, 0x69, 0xc4, 0x21, 0x58,\n\t0x94, 0x3f, 0x56, 0xf1, 0x60, 0xc6, 0x83, 0x89, 0xe4, 0x12, 0x7d, 0xa0, 0xe2, 0xc8, 0x1f, 0xf6,\n\t0xc1, 0x98, 0x39, 0xa5, 0xd0, 0x45, 0x28, 0x09, 0x26, 0x2a, 0x03, 0x88, 0x5a, 0x25, 0xab, 0x12,\n\t0x81, 0x63, 0x1a, 0x96, 0xf8, 0x85, 0x15, 0xd7, 0xdc, 0x83, 0xe3, 0xc4, 0x2f, 0x0a, 0x83, 0x35,\n\t0x2a, 0x7a, 0xb1, 0xda, 0xf0, 0xfd, 0x48, 0x1d, 0x48, 0x6a, 0xde, 0xcd, 0x33, 0x28, 0x16, 0x58,\n\t0x7a, 0x10, 0xed, 0x90, 0xc0, 0x23, 0x0d, 0x33, 0xf2, 0xb6, 0x3a, 0x88, 0xae, 0xea, 0x48, 0x6c,\n\t0xd2, 0xd2, 0xe3, 0xd4, 0x0f, 0xd9, 0x44, 0x16, 0xd7, 0xb7, 0xd8, 0xdd, 0xba, 0xca, 0x5f, 0x79,\n\t0x4b, 0x3c, 0xfa, 0x18, 0x3c, 0xa4, 0x02, 0x67, 0x61, 0x6e, 0xcd, 0x90, 0x35, 0x0e, 0x18, 0xda,\n\t0x96, 0x87, 0x16, 0xb2, 0xc9, 0x70, 0x5e, 0x79, 0xf4, 0x2a, 0x8c, 0x09, 0x11, 0x5f, 0x72, 0x1c,\n\t0x34, 0x3d, 0x8c, 0xae, 0x1a, 0x58, 0x9c, 0xa0, 0x96, 0xb1, 0xc3, 0x99, 0x94, 0x2d, 0x39, 0x0c,\n\t0xa5, 0x63, 0x87, 0xeb, 0x78, 0x9c, 0x2a, 0x81, 0xe6, 0x60, 0x9c, 0xcb, 0x60, 0xae, 0xb7, 0xc5,\n\t0xc7, 0x44, 0x3c, 0xe6, 0x52, 0x4b, 0xea, 0xba, 0x89, 0xc6, 0x49, 0x7a, 0xf4, 0x12, 0x8c, 0x38,\n\t0x41, 0x6d, 0xdb, 0x8d, 0x48, 0x2d, 0x6a, 0x07, 0xfc, 0x95, 0x97, 0xe6, 0xa2, 0x35, 0xa7, 0xe1,\n\t0xb0, 0x41, 0x69, 0xdf, 0x85, 0xa9, 0x8c, 0xf0, 0x0f, 0x74, 0xe2, 0x38, 0x2d, 0x57, 0x7e, 0x53,\n\t0xc2, 0xc3, 0x79, 0xae, 0xb2, 0x22, 0xbf, 0x46, 0xa3, 0xa2, 0xb3, 0x93, 0x85, 0x89, 0xd0, 0x92,\n\t0x95, 0xaa, 0xd9, 0xb9, 0x2c, 0x11, 0x38, 0xa6, 0xb1, 0xff, 0x5b, 0x01, 0xc6, 0x33, 0x6c, 0x2b,\n\t0x2c, 0x61, 0x66, 0xe2, 0x92, 0x12, 0xe7, 0xc7, 0x34, 0x43, 0xd1, 0x17, 0x0e, 0x11, 0x8a, 0xbe,\n\t0xd8, 0x2d, 0x14, 0x7d, 0xdf, 0xdb, 0x09, 0x45, 0x6f, 0xf6, 0x58, 0x7f, 0x4f, 0x3d, 0x96, 0x11,\n\t0xbe, 0x7e, 0xe0, 0x90, 0xe1, 0xeb, 0x8d, 0x4e, 0x1f, 0xec, 0xa1, 0xd3, 0x7f, 0xb4, 0x00, 0x13,\n\t0x49, 0x57, 0xd2, 0x63, 0xd0, 0xdb, 0xbe, 0x66, 0xe8, 0x6d, 0x2f, 0xf4, 0xf2, 0xf8, 0x36, 0x57,\n\t0x87, 0x8b, 0x13, 0x3a, 0xdc, 0xf7, 0xf6, 0xc4, 0xad, 0xb3, 0x3e, 0xf7, 0xa7, 0x0a, 0x70, 0x32,\n\t0xf3, 0xf5, 0xef, 0x31, 0xf4, 0xcd, 0x75, 0xa3, 0x6f, 0x9e, 0xed, 0xf9, 0x61, 0x72, 0x6e, 0x07,\n\t0xdd, 0x4a, 0x74, 0xd0, 0xc5, 0xde, 0x59, 0x76, 0xee, 0xa5, 0xaf, 0x17, 0xe1, 0x6c, 0x66, 0xb9,\n\t0x58, 0xed, 0xb9, 0x6c, 0xa8, 0x3d, 0x9f, 0x4b, 0xa8, 0x3d, 0xed, 0xce, 0xa5, 0x8f, 0x46, 0x0f,\n\t0x2a, 0x1e, 0xe8, 0xb2, 0x30, 0x03, 0xf7, 0xa9, 0x03, 0x35, 0x1e, 0xe8, 0x2a, 0x46, 0xd8, 0xe4,\n\t0xfb, 0x9d, 0xa4, 0xfb, 0xfc, 0x97, 0x16, 0x9c, 0xce, 0x1c, 0x9b, 0x63, 0xd0, 0x75, 0xad, 0x99,\n\t0xba, 0xae, 0xa7, 0x7a, 0x9e, 0xad, 0x39, 0xca, 0xaf, 0x9f, 0xe9, 0xcf, 0xf9, 0x16, 0x76, 0x93,\n\t0xbf, 0x0e, 0xc3, 0x4e, 0xad, 0x46, 0xc2, 0x70, 0xd5, 0xaf, 0xab, 0x40, 0xd8, 0xcf, 0xb2, 0x7b,\n\t0x56, 0x0c, 0x3e, 0xd8, 0x2f, 0xcf, 0x24, 0x59, 0xc4, 0x68, 0xac, 0x73, 0x40, 0x9f, 0x80, 0xa1,\n\t0x50, 0x9c, 0x9b, 0x62, 0xec, 0x9f, 0xef, 0xb1, 0x73, 0x9c, 0x0d, 0xd2, 0x30, 0x23, 0x2e, 0x29,\n\t0x4d, 0x85, 0x62, 0x69, 0x46, 0x67, 0x29, 0x1c, 0x69, 0x74, 0x96, 0xe7, 0x00, 0x76, 0xd5, 0x65,\n\t0x20, 0xa9, 0x7f, 0xd0, 0xae, 0x09, 0x1a, 0x15, 0xfa, 0x08, 0x4c, 0x84, 0x3c, 0x24, 0xe1, 0x42,\n\t0xc3, 0x09, 0xd9, 0x3b, 0x1a, 0x31, 0x0b, 0x59, 0x54, 0xa7, 0x6a, 0x02, 0x87, 0x53, 0xd4, 0x68,\n\t0x59, 0xd6, 0xca, 0xe2, 0x27, 0xf2, 0x89, 0x79, 0x3e, 0xae, 0x51, 0xa4, 0xeb, 0x3e, 0x91, 0xec,\n\t0x7e, 0xd6, 0xf1, 0x5a, 0x49, 0xf4, 0x09, 0x00, 0x3a, 0x7d, 0x84, 0x1e, 0x62, 0x30, 0x7f, 0xf3,\n\t0xa4, 0xbb, 0x4a, 0x3d, 0xd3, 0xb9, 0x99, 0xbd, 0xa9, 0x5d, 0x54, 0x4c, 0xb0, 0xc6, 0x10, 0x39,\n\t0x30, 0x1a, 0xff, 0x8b, 0xb3, 0xd9, 0x5e, 0xc8, 0xad, 0x21, 0xc9, 0x9c, 0xa9, 0xbc, 0x17, 0x75,\n\t0x16, 0xd8, 0xe4, 0x68, 0xff, 0xf8, 0x20, 0x3c, 0xdc, 0x61, 0x1b, 0x46, 0x73, 0xa6, 0xa9, 0xf7,\n\t0xe9, 0xe4, 0xfd, 0x7d, 0x26, 0xb3, 0xb0, 0x71, 0xa1, 0x4f, 0xcc, 0xf6, 0xc2, 0xdb, 0x9e, 0xed,\n\t0x3f, 0x6c, 0x69, 0x9a, 0x15, 0xee, 0x54, 0xfa, 0xe1, 0x43, 0x1e, 0x2f, 0x47, 0xa8, 0x6a, 0xd9,\n\t0xcc, 0xd0, 0x57, 0x3c, 0xd7, 0x73, 0x73, 0x7a, 0x57, 0x60, 0x7c, 0x35, 0x3b, 0x0e, 0x2f, 0x57,\n\t0x65, 0x5c, 0x3e, 0xec, 0xf7, 0x1f, 0x57, 0x4c, 0xde, 0x8f, 0xc9, 0xe8, 0x4b, 0xbc, 0x5e, 0xb1,\n\t0xd6, 0x5e, 0x8c, 0xc3, 0x29, 0xa9, 0xb3, 0xf4, 0xd1, 0xcc, 0xe6, 0xea, 0x44, 0xd8, 0x60, 0x75,\n\t0xbc, 0x57, 0xef, 0x6f, 0x51, 0x10, 0xe0, 0xdf, 0xb1, 0xe0, 0x4c, 0xc7, 0x88, 0x30, 0xdf, 0x86,\n\t0xb2, 0xa1, 0xfd, 0x39, 0x0b, 0xb2, 0x07, 0xdb, 0xf0, 0x28, 0xbb, 0x08, 0xa5, 0x5a, 0x22, 0xef,\n\t0x66, 0x1c, 0x1b, 0x41, 0xe5, 0xdc, 0x8c, 0x69, 0x0c, 0xc7, 0xb1, 0x42, 0x57, 0xc7, 0xb1, 0x5f,\n\t0xb7, 0x20, 0xb5, 0xbf, 0x1f, 0x83, 0xa0, 0xb1, 0x62, 0x0a, 0x1a, 0x8f, 0xf7, 0xd2, 0x9b, 0x39,\n\t0x32, 0xc6, 0x9f, 0x8c, 0xc3, 0xa9, 0x9c, 0x17, 0x79, 0xbb, 0x30, 0xb9, 0x55, 0x23, 0xe6, 0xe3,\n\t0xea, 0x4e, 0x41, 0x87, 0x3a, 0xbe, 0xc4, 0xe6, 0xe9, 0x4e, 0x53, 0x24, 0x38, 0x5d, 0x05, 0xfa,\n\t0x9c, 0x05, 0x27, 0x9c, 0xdb, 0xe1, 0x12, 0x15, 0x18, 0xdd, 0xda, 0x7c, 0xc3, 0xaf, 0xed, 0xd0,\n\t0xd3, 0x58, 0x2e, 0x84, 0x17, 0x32, 0x95, 0x78, 0xb7, 0xaa, 0x29, 0x7a, 0xa3, 0x7a, 0x96, 0xdc,\n\t0x3a, 0x8b, 0x0a, 0x67, 0xd6, 0x85, 0xb0, 0x48, 0xed, 0x41, 0xaf, 0xa3, 0x1d, 0x9e, 0xff, 0x67,\n\t0x3d, 0x9d, 0xe4, 0x12, 0x90, 0xc4, 0x60, 0xc5, 0x07, 0x7d, 0x0a, 0x4a, 0x5b, 0xf2, 0xa5, 0x6f,\n\t0x86, 0x84, 0x15, 0x77, 0x64, 0xe7, 0xf7, 0xcf, 0xdc, 0x12, 0xaf, 0x88, 0x70, 0xcc, 0x14, 0xbd,\n\t0x0a, 0x45, 0x6f, 0x33, 0xec, 0x94, 0x1f, 0x3a, 0xe1, 0x72, 0xc9, 0x83, 0x6c, 0xac, 0x2d, 0x57,\n\t0x31, 0x2d, 0x88, 0xae, 0x40, 0x31, 0xd8, 0xa8, 0x0b, 0x0d, 0x74, 0xe6, 0x22, 0xc5, 0xf3, 0x8b,\n\t0x39, 0xad, 0x62, 0x9c, 0xf0, 0xfc, 0x22, 0xa6, 0x2c, 0x50, 0x05, 0xfa, 0xd9, 0x33, 0x36, 0x21,\n\t0xcf, 0x64, 0xde, 0xdc, 0x3a, 0x3c, 0x07, 0xe5, 0x91, 0x38, 0x18, 0x01, 0xe6, 0x8c, 0xd0, 0x3a,\n\t0x0c, 0xd4, 0x58, 0x2e, 0x61, 0x21, 0xc0, 0xbc, 0x2f, 0x53, 0xd7, 0xdc, 0x21, 0xc9, 0xb2, 0x50,\n\t0xbd, 0x32, 0x0a, 0x2c, 0x78, 0x31, 0xae, 0xa4, 0xb5, 0xbd, 0x19, 0x8a, 0x5c, 0xfb, 0xd9, 0x5c,\n\t0x3b, 0xe4, 0x0e, 0x17, 0x5c, 0x19, 0x05, 0x16, 0xbc, 0xd0, 0xcb, 0x50, 0xd8, 0xac, 0x89, 0x27,\n\t0x6a, 0x99, 0x4a, 0x67, 0x33, 0x4e, 0xca, 0xfc, 0xc0, 0xbd, 0xfd, 0x72, 0x61, 0x79, 0x01, 0x17,\n\t0x36, 0x6b, 0x68, 0x0d, 0x06, 0x37, 0x79, 0x64, 0x05, 0xa1, 0x57, 0x7e, 0x32, 0x3b, 0xe8, 0x43,\n\t0x2a, 0xf8, 0x02, 0x7f, 0xee, 0x24, 0x10, 0x58, 0x32, 0x61, 0x99, 0x26, 0x54, 0x84, 0x08, 0x11,\n\t0xa0, 0x6e, 0xf6, 0x70, 0x51, 0x3d, 0xb8, 0x7c, 0x19, 0xc7, 0x99, 0xc0, 0x1a, 0x47, 0x3a, 0xab,\n\t0x9d, 0xbb, 0xed, 0x80, 0x85, 0x1a, 0x17, 0x91, 0x8c, 0x32, 0x67, 0xf5, 0x9c, 0x24, 0xea, 0x34,\n\t0xab, 0x15, 0x11, 0x8e, 0x99, 0xa2, 0x1d, 0x18, 0xdd, 0x0d, 0x5b, 0xdb, 0x44, 0x2e, 0x69, 0x16,\n\t0xd8, 0x28, 0x47, 0x3e, 0xba, 0x29, 0x08, 0xdd, 0x20, 0x6a, 0x3b, 0x8d, 0xd4, 0x2e, 0xc4, 0x64,\n\t0xd9, 0x9b, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, 0xdd, 0xff, 0x56, 0xdb, 0xdf, 0xd8, 0x8b, 0x88, 0x88,\n\t0x2b, 0x97, 0xd9, 0xfd, 0xaf, 0x73, 0x92, 0x74, 0xf7, 0x0b, 0x04, 0x96, 0x4c, 0xd0, 0x4d, 0xd1,\n\t0x3d, 0x6c, 0xf7, 0x9c, 0xc8, 0x8f, 0x30, 0x3b, 0x27, 0x89, 0x72, 0x3a, 0x85, 0xed, 0x96, 0x31,\n\t0x2b, 0xb6, 0x4b, 0xb6, 0xb6, 0xfd, 0xc8, 0xf7, 0x12, 0x3b, 0xf4, 0x64, 0xfe, 0x2e, 0x59, 0xc9,\n\t0xa0, 0x4f, 0xef, 0x92, 0x59, 0x54, 0x38, 0xb3, 0x2e, 0x54, 0x87, 0xb1, 0x96, 0x1f, 0x44, 0xb7,\n\t0xfd, 0x40, 0xce, 0x2f, 0xd4, 0x41, 0x2f, 0x66, 0x50, 0x8a, 0x1a, 0x59, 0xc8, 0x46, 0x13, 0x83,\n\t0x13, 0x3c, 0xd1, 0x47, 0x61, 0x30, 0xac, 0x39, 0x0d, 0xb2, 0x72, 0x7d, 0x7a, 0x2a, 0xff, 0xf8,\n\t0xa9, 0x72, 0x92, 0x9c, 0xd9, 0xc5, 0x03, 0x63, 0x70, 0x12, 0x2c, 0xd9, 0xa1, 0x65, 0xe8, 0x67,\n\t0xe9, 0x16, 0x59, 0x10, 0xc4, 0x9c, 0x40, 0xb9, 0x29, 0x07, 0x78, 0xbe, 0x37, 0x31, 0x30, 0xe6,\n\t0xc5, 0xe9, 0x1a, 0x10, 0xd7, 0x43, 0x3f, 0x9c, 0x3e, 0x99, 0xbf, 0x06, 0xc4, 0xad, 0xf2, 0x7a,\n\t0xb5, 0xd3, 0x1a, 0x50, 0x44, 0x38, 0x66, 0x4a, 0x77, 0x66, 0xba, 0x9b, 0x9e, 0xea, 0xe0, 0xb9,\n\t0x95, 0xbb, 0x97, 0xb2, 0x9d, 0x99, 0xee, 0xa4, 0x94, 0x85, 0xfd, 0x07, 0x83, 0x69, 0x99, 0x85,\n\t0x29, 0x14, 0xfe, 0x82, 0x95, 0xb2, 0x35, 0xbf, 0xbf, 0x57, 0xfd, 0xe6, 0x11, 0x5e, 0x85, 0x3e,\n\t0x67, 0xc1, 0xa9, 0x56, 0xe6, 0x87, 0x08, 0x01, 0xa0, 0x37, 0x35, 0x29, 0xff, 0x74, 0x15, 0x30,\n\t0x33, 0x1b, 0x8f, 0x73, 0x6a, 0x4a, 0x5e, 0x37, 0x8b, 0x6f, 0xfb, 0xba, 0xb9, 0x0a, 0x43, 0x35,\n\t0x7e, 0x15, 0xe9, 0x98, 0x5b, 0x3f, 0x79, 0xf7, 0x66, 0xa2, 0x84, 0xb8, 0xc3, 0x6c, 0x62, 0xc5,\n\t0x02, 0xfd, 0x88, 0x05, 0x67, 0x92, 0x4d, 0xc7, 0x84, 0xa1, 0x45, 0x94, 0x4d, 0xae, 0xcb, 0x58,\n\t0x16, 0xdf, 0x9f, 0x92, 0xff, 0x0d, 0xe2, 0x83, 0x6e, 0x04, 0xb8, 0x73, 0x65, 0x68, 0x31, 0x43,\n\t0x99, 0x32, 0x60, 0x1a, 0x90, 0x7a, 0x50, 0xa8, 0xbc, 0x00, 0x23, 0x4d, 0xbf, 0xed, 0x45, 0xc2,\n\t0xd1, 0x4b, 0x38, 0x9d, 0x30, 0x67, 0x8b, 0x55, 0x0d, 0x8e, 0x0d, 0xaa, 0x84, 0x1a, 0x66, 0xe8,\n\t0xbe, 0xd5, 0x30, 0x6f, 0xc2, 0x88, 0xa7, 0x79, 0x26, 0x0b, 0x79, 0xe0, 0x7c, 0x7e, 0x84, 0x5c,\n\t0xdd, 0x8f, 0x99, 0xb7, 0x52, 0x87, 0x60, 0x83, 0xdb, 0xf1, 0x7a, 0x80, 0x7d, 0xc9, 0xca, 0x10,\n\t0xea, 0xb9, 0x2a, 0xe6, 0x43, 0xa6, 0x2a, 0xe6, 0x7c, 0x52, 0x15, 0x93, 0x32, 0x1e, 0x18, 0x5a,\n\t0x98, 0xde, 0xb3, 0x3b, 0xf5, 0x1a, 0x65, 0xd3, 0x6e, 0xc0, 0xb9, 0x6e, 0xc7, 0x12, 0xf3, 0xf8,\n\t0xab, 0x2b, 0x53, 0x71, 0xec, 0xf1, 0x57, 0x5f, 0x59, 0xc4, 0x0c, 0xd3, 0x6b, 0xfc, 0x26, 0xfb,\n\t0xbf, 0x58, 0x50, 0xac, 0xf8, 0xf5, 0x63, 0xb8, 0xf0, 0x7e, 0xd8, 0xb8, 0xf0, 0x3e, 0x9c, 0x7d,\n\t0x20, 0xd6, 0x73, 0x4d, 0x1f, 0x4b, 0x09, 0xd3, 0xc7, 0x99, 0x3c, 0x06, 0x9d, 0x0d, 0x1d, 0x3f,\n\t0x5d, 0x84, 0xe1, 0x8a, 0x5f, 0x57, 0xee, 0xf6, 0xff, 0xf4, 0x7e, 0xdc, 0xed, 0x73, 0x73, 0x65,\n\t0x68, 0x9c, 0x99, 0xa3, 0xa0, 0x7c, 0x69, 0xfc, 0x6d, 0xe6, 0x75, 0x7f, 0x8b, 0xb8, 0x5b, 0xdb,\n\t0x11, 0xa9, 0x27, 0x3f, 0xe7, 0xf8, 0xbc, 0xee, 0xff, 0xa0, 0x00, 0xe3, 0x89, 0xda, 0x51, 0x03,\n\t0x46, 0x1b, 0xba, 0x62, 0x5d, 0xcc, 0xd3, 0xfb, 0xd2, 0xc9, 0x0b, 0xaf, 0x65, 0x0d, 0x84, 0x4d,\n\t0xe6, 0x68, 0x16, 0x40, 0x59, 0x9a, 0xa5, 0x7a, 0x95, 0x49, 0xfd, 0xca, 0x14, 0x1d, 0x62, 0x8d,\n\t0x02, 0xbd, 0x08, 0xc3, 0x91, 0xdf, 0xf2, 0x1b, 0xfe, 0xd6, 0xde, 0x55, 0x22, 0x43, 0x7b, 0x29,\n\t0x5f, 0xc4, 0xf5, 0x18, 0x85, 0x75, 0x3a, 0x74, 0x07, 0x26, 0x15, 0x93, 0xea, 0x11, 0x18, 0x1b,\n\t0x98, 0x56, 0x61, 0x2d, 0xc9, 0x11, 0xa7, 0x2b, 0xb1, 0x7f, 0xae, 0xc8, 0xbb, 0xd8, 0x8b, 0xdc,\n\t0x77, 0x57, 0xc3, 0x3b, 0x7b, 0x35, 0x7c, 0xdd, 0x82, 0x09, 0x5a, 0x3b, 0x73, 0xb4, 0x92, 0xc7,\n\t0xbc, 0x8a, 0xc9, 0x6d, 0x75, 0x88, 0xc9, 0x7d, 0x9e, 0xee, 0x9a, 0x75, 0xbf, 0x1d, 0x09, 0xdd,\n\t0x9d, 0xb6, 0x2d, 0x52, 0x28, 0x16, 0x58, 0x41, 0x47, 0x82, 0x40, 0x3c, 0x0e, 0xd5, 0xe9, 0x48,\n\t0x10, 0x60, 0x81, 0x95, 0x21, 0xbb, 0xfb, 0xb2, 0x43, 0x76, 0xf3, 0xc8, 0xab, 0xc2, 0x25, 0x47,\n\t0x08, 0x5c, 0x5a, 0xe4, 0x55, 0xe9, 0xab, 0x13, 0xd3, 0xd8, 0x5f, 0x2d, 0xc2, 0x48, 0xc5, 0xaf,\n\t0xc7, 0x56, 0xe6, 0x17, 0x0c, 0x2b, 0xf3, 0xb9, 0x84, 0x95, 0x79, 0x42, 0xa7, 0x7d, 0xd7, 0xa6,\n\t0xfc, 0xad, 0xb2, 0x29, 0xff, 0x9a, 0xc5, 0x46, 0x6d, 0x71, 0xad, 0xca, 0xfd, 0xf6, 0xd0, 0x25,\n\t0x18, 0x66, 0x1b, 0x0c, 0x7b, 0x8d, 0x2c, 0x4d, 0xaf, 0x2c, 0xdf, 0xd5, 0x5a, 0x0c, 0xc6, 0x3a,\n\t0x0d, 0xba, 0x00, 0x43, 0x21, 0x71, 0x82, 0xda, 0xb6, 0xda, 0x5d, 0x85, 0x9d, 0x94, 0xc3, 0xb0,\n\t0xc2, 0xa2, 0xd7, 0xe3, 0xa0, 0x9f, 0xc5, 0xfc, 0xd7, 0x8d, 0x7a, 0x7b, 0xf8, 0x12, 0xc9, 0x8f,\n\t0xf4, 0x69, 0xdf, 0x02, 0x94, 0xa6, 0xef, 0x21, 0x2c, 0x5d, 0xd9, 0x0c, 0x4b, 0x57, 0x4a, 0x85,\n\t0xa4, 0xfb, 0x33, 0x0b, 0xc6, 0x2a, 0x7e, 0x9d, 0x2e, 0xdd, 0xef, 0xa4, 0x75, 0xaa, 0x47, 0x3c,\n\t0x1e, 0xe8, 0x10, 0xf1, 0xf8, 0x31, 0xe8, 0xaf, 0xf8, 0xf5, 0x95, 0x4a, 0xa7, 0xd0, 0x02, 0xf6,\n\t0xdf, 0xb4, 0x60, 0xb0, 0xe2, 0xd7, 0x8f, 0xc1, 0x2c, 0xf0, 0x21, 0xd3, 0x2c, 0xf0, 0x50, 0xce,\n\t0xbc, 0xc9, 0xb1, 0x04, 0xfc, 0x8d, 0x3e, 0x18, 0xa5, 0xed, 0xf4, 0xb7, 0xe4, 0x50, 0x1a, 0xdd,\n\t0x66, 0xf5, 0xd0, 0x6d, 0x54, 0x0a, 0xf7, 0x1b, 0x0d, 0xff, 0x76, 0x72, 0x58, 0x97, 0x19, 0x14,\n\t0x0b, 0x2c, 0x7a, 0x06, 0x86, 0x5a, 0x01, 0xd9, 0x75, 0x7d, 0x21, 0xde, 0x6a, 0x46, 0x96, 0x8a,\n\t0x80, 0x63, 0x45, 0x41, 0xaf, 0x85, 0xa1, 0xeb, 0xd1, 0xa3, 0xbc, 0xe6, 0x7b, 0x75, 0xae, 0x39,\n\t0x2f, 0x8a, 0xb4, 0x1c, 0x1a, 0x1c, 0x1b, 0x54, 0xe8, 0x16, 0x94, 0xd8, 0x7f, 0xb6, 0xed, 0x1c,\n\t0x3e, 0x7b, 0xaf, 0xc8, 0x2a, 0x28, 0x18, 0xe0, 0x98, 0x17, 0x7a, 0x0e, 0x20, 0x92, 0xa1, 0xed,\n\t0x43, 0x11, 0x68, 0x4d, 0x5d, 0x05, 0x54, 0xd0, 0xfb, 0x10, 0x6b, 0x54, 0xe8, 0x69, 0x28, 0x45,\n\t0x8e, 0xdb, 0xb8, 0xe6, 0x7a, 0x24, 0x64, 0x1a, 0xf1, 0xa2, 0x4c, 0xee, 0x27, 0x80, 0x38, 0xc6,\n\t0x53, 0x51, 0x8c, 0x05, 0xe1, 0xe0, 0xb9, 0xcb, 0x87, 0x18, 0x35, 0x13, 0xc5, 0xae, 0x29, 0x28,\n\t0xd6, 0x28, 0xd0, 0x36, 0x3c, 0xe2, 0x7a, 0x2c, 0x85, 0x05, 0xa9, 0xee, 0xb8, 0xad, 0xf5, 0x6b,\n\t0xd5, 0x9b, 0x24, 0x70, 0x37, 0xf7, 0xe6, 0x9d, 0xda, 0x0e, 0xf1, 0x64, 0x5e, 0x56, 0x99, 0xae,\n\t0xfb, 0x91, 0x95, 0x0e, 0xb4, 0xb8, 0x23, 0x27, 0xfb, 0x79, 0x36, 0xdf, 0xaf, 0x57, 0xd1, 0x7b,\n\t0x8d, 0xad, 0xe3, 0x94, 0xbe, 0x75, 0x1c, 0xec, 0x97, 0x07, 0xae, 0x57, 0xb5, 0x18, 0x12, 0x2f,\n\t0xc1, 0xc9, 0x8a, 0x5f, 0xaf, 0xf8, 0x41, 0xb4, 0xec, 0x07, 0xb7, 0x9d, 0xa0, 0x2e, 0xa7, 0x57,\n\t0x59, 0x46, 0xd1, 0xa0, 0xfb, 0x67, 0x3f, 0xdf, 0x5d, 0x8c, 0x08, 0x19, 0xcf, 0x33, 0x89, 0xed,\n\t0x90, 0x6f, 0xbf, 0x6a, 0x4c, 0x76, 0x50, 0x49, 0x60, 0x2e, 0x3b, 0x11, 0x41, 0xd7, 0x59, 0xe6,\n\t0xf5, 0xf8, 0x18, 0x15, 0xc5, 0x9f, 0xd2, 0x32, 0xaf, 0xc7, 0xc8, 0xcc, 0x73, 0xd7, 0x2c, 0x6f,\n\t0x7f, 0x56, 0x54, 0xc2, 0xef, 0xe0, 0xdc, 0xbf, 0xae, 0x97, 0xd4, 0xc5, 0x32, 0x4b, 0x44, 0x21,\n\t0x3f, 0xbd, 0x00, 0xb7, 0x7a, 0x76, 0xcc, 0x12, 0x61, 0xbf, 0x08, 0x93, 0xf4, 0xea, 0xa7, 0xe4,\n\t0x28, 0xf6, 0x91, 0xdd, 0xa3, 0x79, 0xfc, 0xd7, 0x7e, 0x76, 0x0e, 0x24, 0xd2, 0x9f, 0xa0, 0x4f,\n\t0xc2, 0x58, 0x48, 0xae, 0xb9, 0x5e, 0xfb, 0x8e, 0x54, 0xbc, 0x74, 0x78, 0x73, 0x58, 0x5d, 0xd2,\n\t0x29, 0xb9, 0xfa, 0xd6, 0x84, 0xe1, 0x04, 0x37, 0xd4, 0x84, 0xb1, 0xdb, 0xae, 0x57, 0xf7, 0x6f,\n\t0x87, 0x92, 0xff, 0x50, 0xbe, 0x16, 0xf7, 0x16, 0xa7, 0x4c, 0xb4, 0xd1, 0xa8, 0xee, 0x96, 0xc1,\n\t0x0c, 0x27, 0x98, 0xd3, 0xb5, 0x16, 0xb4, 0xbd, 0xb9, 0xf0, 0x46, 0x48, 0x02, 0x91, 0xf9, 0x9f,\n\t0xa7, 0xe5, 0x95, 0x40, 0x1c, 0xe3, 0xe9, 0x5a, 0x63, 0x7f, 0x2e, 0x07, 0x7e, 0x9b, 0xe7, 0xda,\n\t0x10, 0x6b, 0x0d, 0x2b, 0x28, 0xd6, 0x28, 0xe8, 0x5e, 0xc4, 0xfe, 0xad, 0xf9, 0x1e, 0xf6, 0xfd,\n\t0x48, 0xee, 0x5e, 0xcc, 0x13, 0x41, 0x83, 0x63, 0x83, 0x0a, 0x2d, 0x03, 0x0a, 0xdb, 0xad, 0x56,\n\t0x83, 0x39, 0x33, 0x39, 0x0d, 0xc6, 0x8a, 0x7b, 0x79, 0x14, 0x79, 0xac, 0xe0, 0x6a, 0x0a, 0x8b,\n\t0x33, 0x4a, 0xd0, 0x63, 0x69, 0x53, 0x34, 0xb5, 0x9f, 0x35, 0x95, 0x5b, 0x7c, 0xaa, 0xbc, 0x9d,\n\t0x12, 0x87, 0x96, 0x60, 0x30, 0xdc, 0x0b, 0x6b, 0x91, 0x08, 0xed, 0x98, 0x93, 0x46, 0xab, 0xca,\n\t0x48, 0xb4, 0x2c, 0x8e, 0xbc, 0x08, 0x96, 0x65, 0x51, 0x0d, 0xa6, 0x04, 0xc7, 0x85, 0x6d, 0xc7,\n\t0x53, 0xf9, 0x82, 0xb8, 0x4f, 0xf7, 0xa5, 0x7b, 0xfb, 0xe5, 0x29, 0x51, 0xb3, 0x8e, 0x3e, 0xd8,\n\t0x2f, 0x9f, 0xaa, 0xf8, 0xf5, 0x0c, 0x0c, 0xce, 0xe2, 0xc6, 0x27, 0x5f, 0xad, 0xe6, 0x37, 0x5b,\n\t0x95, 0xc0, 0xdf, 0x74, 0x1b, 0xa4, 0x93, 0xd5, 0xac, 0x6a, 0x50, 0x8a, 0xc9, 0x67, 0xc0, 0x70,\n\t0x82, 0x9b, 0xfd, 0x59, 0x26, 0xba, 0xb1, 0x64, 0xf1, 0x51, 0x3b, 0x20, 0xa8, 0x09, 0xa3, 0x2d,\n\t0xb6, 0xb8, 0x45, 0x06, 0x0c, 0x31, 0xd7, 0x5f, 0xe8, 0x51, 0xfb, 0x73, 0x9b, 0xe5, 0xf5, 0x32,\n\t0x3c, 0xa3, 0x2a, 0x3a, 0x3b, 0x6c, 0x72, 0xb7, 0xff, 0xf5, 0x69, 0x76, 0xf8, 0x57, 0xb9, 0x4a,\n\t0x67, 0x50, 0x3c, 0x21, 0x11, 0xb7, 0xc8, 0x99, 0x7c, 0xdd, 0x62, 0x3c, 0x2c, 0xe2, 0x19, 0x0a,\n\t0x96, 0x65, 0xd1, 0x27, 0x60, 0x8c, 0x5e, 0xca, 0xd4, 0x01, 0x1c, 0x4e, 0x9f, 0xc8, 0x0f, 0xf5,\n\t0xa1, 0xa8, 0xf4, 0xec, 0x38, 0x7a, 0x61, 0x9c, 0x60, 0x86, 0x5e, 0x67, 0x9e, 0x48, 0x92, 0x75,\n\t0xa1, 0x17, 0xd6, 0xba, 0xd3, 0x91, 0x64, 0xab, 0x31, 0x41, 0x6d, 0x98, 0x4a, 0x27, 0xec, 0x0b,\n\t0xa7, 0xed, 0x7c, 0xe9, 0x36, 0x9d, 0x73, 0x2f, 0x4e, 0x63, 0x92, 0xc6, 0x85, 0x38, 0x8b, 0x3f,\n\t0xba, 0x06, 0xa3, 0x22, 0x63, 0xba, 0x98, 0xb9, 0x45, 0x43, 0xe5, 0x39, 0x8a, 0x75, 0xe4, 0x41,\n\t0x12, 0x80, 0xcd, 0xc2, 0x68, 0x0b, 0xce, 0x68, 0x49, 0xae, 0x2e, 0x07, 0x0e, 0xf3, 0x5b, 0x70,\n\t0xd9, 0x76, 0xaa, 0x89, 0x25, 0x8f, 0xde, 0xdb, 0x2f, 0x9f, 0x59, 0xef, 0x44, 0x88, 0x3b, 0xf3,\n\t0x41, 0xd7, 0xe1, 0x24, 0x7f, 0xa8, 0xbe, 0x48, 0x9c, 0x7a, 0xc3, 0xf5, 0x94, 0xdc, 0xc3, 0x97,\n\t0xfc, 0xe9, 0x7b, 0xfb, 0xe5, 0x93, 0x73, 0x59, 0x04, 0x38, 0xbb, 0x1c, 0xfa, 0x10, 0x94, 0xea,\n\t0x5e, 0x28, 0xfa, 0x60, 0xc0, 0xc8, 0x23, 0x56, 0x5a, 0x5c, 0xab, 0xaa, 0xef, 0x8f, 0xff, 0xe0,\n\t0xb8, 0x00, 0xda, 0xe2, 0x6a, 0x71, 0xa5, 0xac, 0x19, 0x4c, 0x05, 0xea, 0x4a, 0xea, 0x33, 0x8d,\n\t0xa7, 0xaa, 0xdc, 0x1e, 0xa4, 0x5e, 0x70, 0x18, 0xaf, 0x58, 0x0d, 0xc6, 0xe8, 0x35, 0x40, 0x22,\n\t0x5e, 0xfd, 0x5c, 0x8d, 0xa5, 0x57, 0x61, 0x56, 0x84, 0x21, 0xf3, 0xf1, 0x64, 0x35, 0x45, 0x81,\n\t0x33, 0x4a, 0xa1, 0x2b, 0x74, 0x57, 0xd1, 0xa1, 0x62, 0xd7, 0x52, 0xa9, 0x25, 0x17, 0x49, 0x2b,\n\t0x20, 0xcc, 0x0f, 0xcb, 0xe4, 0x88, 0x13, 0xe5, 0x50, 0x1d, 0x1e, 0x71, 0xda, 0x91, 0xcf, 0x2c,\n\t0x0e, 0x26, 0xe9, 0xba, 0xbf, 0x43, 0x3c, 0x66, 0xec, 0x1b, 0x9a, 0x3f, 0x47, 0x05, 0xab, 0xb9,\n\t0x0e, 0x74, 0xb8, 0x23, 0x17, 0x2a, 0x10, 0xab, 0x5c, 0xd2, 0x60, 0x86, 0x1f, 0xcb, 0xc8, 0x27,\n\t0xfd, 0x22, 0x0c, 0x6f, 0xfb, 0x61, 0xb4, 0x46, 0xa2, 0xdb, 0x7e, 0xb0, 0x23, 0xc2, 0xe8, 0xc6,\n\t0x41, 0xc9, 0x63, 0x14, 0xd6, 0xe9, 0xe8, 0x8d, 0x97, 0xb9, 0xa2, 0xac, 0x2c, 0x32, 0x2f, 0x80,\n\t0xa1, 0x78, 0x8f, 0xb9, 0xc2, 0xc1, 0x58, 0xe2, 0x25, 0xe9, 0x4a, 0x65, 0x81, 0x59, 0xf4, 0x13,\n\t0xa4, 0x2b, 0x95, 0x05, 0x2c, 0xf1, 0x74, 0xba, 0x86, 0xdb, 0x4e, 0x40, 0x2a, 0x81, 0x5f, 0x23,\n\t0xa1, 0x16, 0x0a, 0xff, 0x61, 0x1e, 0x24, 0x98, 0x4e, 0xd7, 0x6a, 0x16, 0x01, 0xce, 0x2e, 0x87,\n\t0x48, 0x3a, 0xc1, 0xdb, 0x58, 0xbe, 0x29, 0x26, 0x2d, 0xcf, 0xf4, 0x98, 0xe3, 0xcd, 0x83, 0x09,\n\t0x95, 0x5a, 0x8e, 0x87, 0x05, 0x0e, 0xa7, 0xc7, 0xd9, 0xdc, 0xee, 0x3d, 0xa6, 0xb0, 0x32, 0x6e,\n\t0xad, 0x24, 0x38, 0xe1, 0x14, 0x6f, 0x23, 0xc2, 0xdc, 0x44, 0xd7, 0x08, 0x73, 0x17, 0xa1, 0x14,\n\t0xb6, 0x37, 0xea, 0x7e, 0xd3, 0x71, 0x3d, 0x66, 0xd1, 0xd7, 0xae, 0x5e, 0x55, 0x89, 0xc0, 0x31,\n\t0x0d, 0x5a, 0x86, 0x21, 0x47, 0x5a, 0xae, 0x50, 0x7e, 0x4c, 0x21, 0x65, 0xaf, 0xe2, 0x61, 0x36,\n\t0xa4, 0xad, 0x4a, 0x95, 0x45, 0xaf, 0xc0, 0xa8, 0x78, 0x68, 0x2d, 0x52, 0xa7, 0x4e, 0x99, 0xaf,\n\t0xe1, 0xaa, 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x06, 0x0c, 0x47, 0x7e, 0x83, 0x3d, 0xe9, 0xa2, 0x62,\n\t0xde, 0xa9, 0xfc, 0xe8, 0x78, 0xeb, 0x8a, 0x4c, 0x57, 0x1a, 0xab, 0xa2, 0x58, 0xe7, 0x83, 0xd6,\n\t0xf9, 0x7c, 0x67, 0x81, 0xef, 0x49, 0x28, 0x72, 0x6f, 0x9e, 0xc9, 0x73, 0xc7, 0x62, 0x64, 0xe6,\n\t0x72, 0x10, 0x25, 0xb1, 0xce, 0x06, 0x5d, 0x86, 0xc9, 0x56, 0xe0, 0xfa, 0x6c, 0x4e, 0x28, 0xa3,\n\t0xe5, 0xb4, 0x99, 0xe6, 0xaa, 0x92, 0x24, 0xc0, 0xe9, 0x32, 0xec, 0x9d, 0xbc, 0x00, 0x4e, 0x9f,\n\t0xe6, 0xa9, 0x3a, 0xf8, 0x4d, 0x96, 0xc3, 0xb0, 0xc2, 0xa2, 0x55, 0xb6, 0x13, 0x73, 0x25, 0xcc,\n\t0xf4, 0x4c, 0x7e, 0x18, 0x23, 0x5d, 0x59, 0xc3, 0x85, 0x57, 0xf5, 0x17, 0xc7, 0x1c, 0x50, 0x5d,\n\t0xcb, 0x90, 0x49, 0xaf, 0x00, 0xe1, 0xf4, 0x23, 0x1d, 0xfc, 0x01, 0x13, 0x97, 0xa2, 0x58, 0x20,\n\t0x30, 0xc0, 0x21, 0x4e, 0xf0, 0x44, 0x1f, 0x81, 0x09, 0x11, 0x7c, 0x31, 0xee, 0xa6, 0x33, 0xb1,\n\t0xa3, 0x3c, 0x4e, 0xe0, 0x70, 0x8a, 0x9a, 0xa7, 0xca, 0x70, 0x36, 0x1a, 0x44, 0x6c, 0x7d, 0xd7,\n\t0x5c, 0x6f, 0x27, 0x9c, 0x3e, 0xcb, 0xf6, 0x07, 0x91, 0x2a, 0x23, 0x89, 0xc5, 0x19, 0x25, 0xd0,\n\t0x3a, 0x4c, 0xb4, 0x02, 0x42, 0x9a, 0x4c, 0xd0, 0x17, 0xe7, 0x59, 0x99, 0x87, 0x89, 0xa0, 0x2d,\n\t0xa9, 0x24, 0x70, 0x07, 0x19, 0x30, 0x9c, 0xe2, 0x80, 0x6e, 0xc3, 0x90, 0xbf, 0x4b, 0x82, 0x6d,\n\t0xe2, 0xd4, 0xa7, 0xcf, 0x75, 0x78, 0xb8, 0x21, 0x0e, 0xb7, 0xeb, 0x82, 0x36, 0xe1, 0xe8, 0x20,\n\t0xc1, 0xdd, 0x1d, 0x1d, 0x64, 0x65, 0xe8, 0x2f, 0x5a, 0x70, 0x5a, 0xda, 0x46, 0xaa, 0x2d, 0xda,\n\t0xeb, 0x0b, 0xbe, 0x17, 0x46, 0x01, 0x0f, 0x6c, 0xf0, 0x68, 0xfe, 0x63, 0xff, 0xf5, 0x9c, 0x42,\n\t0x4a, 0x0f, 0x7c, 0x3a, 0x8f, 0x22, 0xc4, 0xf9, 0x35, 0xa2, 0x05, 0x98, 0x0c, 0x49, 0x24, 0x37,\n\t0xa3, 0xb9, 0x70, 0xf9, 0xf5, 0xc5, 0xb5, 0xe9, 0xc7, 0x78, 0x54, 0x06, 0xba, 0x18, 0xaa, 0x49,\n\t0x24, 0x4e, 0xd3, 0xa3, 0x4b, 0x50, 0xf0, 0xc3, 0xe9, 0xc7, 0x3b, 0x24, 0x55, 0xf5, 0xeb, 0xd7,\n\t0xab, 0xdc, 0xe1, 0xed, 0x7a, 0x15, 0x17, 0xfc, 0x50, 0xa6, 0xab, 0xa0, 0xf7, 0xb1, 0x70, 0xfa,\n\t0x09, 0xae, 0x35, 0x94, 0xe9, 0x2a, 0x18, 0x10, 0xc7, 0x78, 0xb4, 0x0d, 0xe3, 0xa1, 0x71, 0xef,\n\t0x0d, 0xa7, 0xcf, 0xb3, 0x9e, 0x7a, 0x22, 0x6f, 0xd0, 0x0c, 0x6a, 0x2d, 0xda, 0xbc, 0xc9, 0x05,\n\t0x27, 0xd9, 0xf2, 0xd5, 0xa5, 0x5d, 0xf0, 0xc3, 0xe9, 0x27, 0xbb, 0xac, 0x2e, 0x8d, 0x58, 0x5f,\n\t0x5d, 0x3a, 0x0f, 0x9c, 0xe0, 0x39, 0xf3, 0x5d, 0x30, 0x99, 0x12, 0x97, 0x0e, 0x93, 0x89, 0x69,\n\t0x66, 0x07, 0x46, 0x8d, 0x29, 0xf9, 0x40, 0x1d, 0x0b, 0xbe, 0x67, 0x08, 0x4a, 0xca, 0xe8, 0x8c,\n\t0x2e, 0x9a, 0xbe, 0x04, 0xa7, 0x93, 0xbe, 0x04, 0x43, 0x15, 0xbf, 0x6e, 0xb8, 0x0f, 0xac, 0x67,\n\t0xc4, 0xee, 0xcb, 0xdb, 0x00, 0x7b, 0x7f, 0xd3, 0xa0, 0x69, 0xf2, 0x8b, 0x3d, 0x3b, 0x25, 0xf4,\n\t0x75, 0x34, 0x0e, 0x5c, 0x86, 0x49, 0xcf, 0x67, 0x32, 0x3a, 0xa9, 0x4b, 0x01, 0x8c, 0xc9, 0x59,\n\t0x25, 0x3d, 0x18, 0x4e, 0x82, 0x00, 0xa7, 0xcb, 0xd0, 0x0a, 0xb9, 0xa0, 0x94, 0xb4, 0x46, 0x70,\n\t0x39, 0x0a, 0x0b, 0x2c, 0x7a, 0x0c, 0xfa, 0x5b, 0x7e, 0x7d, 0xa5, 0x22, 0xe4, 0x73, 0x2d, 0x62,\n\t0x6c, 0x7d, 0xa5, 0x82, 0x39, 0x0e, 0xcd, 0xc1, 0x00, 0xfb, 0x11, 0x4e, 0x8f, 0xe4, 0x47, 0x3d,\n\t0x61, 0x25, 0xb4, 0x3c, 0x57, 0xac, 0x00, 0x16, 0x05, 0x99, 0x56, 0x94, 0x5e, 0x6a, 0x98, 0x56,\n\t0x74, 0xf0, 0x3e, 0xb5, 0xa2, 0x92, 0x01, 0x8e, 0x79, 0xa1, 0x3b, 0x70, 0xd2, 0xb8, 0x48, 0xf2,\n\t0x29, 0x42, 0x42, 0x11, 0x79, 0xe1, 0xb1, 0x8e, 0x37, 0x48, 0xe1, 0xc4, 0x70, 0x46, 0x34, 0xfa,\n\t0xe4, 0x4a, 0x16, 0x27, 0x9c, 0x5d, 0x01, 0x6a, 0xc0, 0x64, 0x2d, 0x55, 0xeb, 0x50, 0xef, 0xb5,\n\t0xaa, 0x01, 0x4d, 0xd7, 0x98, 0x66, 0x8c, 0x5e, 0x81, 0xa1, 0xb7, 0xfc, 0x90, 0x9d, 0x6d, 0xe2,\n\t0x4e, 0x21, 0x9f, 0xed, 0x0f, 0xbd, 0x7e, 0xbd, 0xca, 0xe0, 0x07, 0xfb, 0xe5, 0xe1, 0x8a, 0x5f,\n\t0x97, 0x7f, 0xb1, 0x2a, 0x80, 0x7e, 0xc0, 0x82, 0x99, 0xf4, 0x4d, 0x55, 0x35, 0x7a, 0xb4, 0xf7,\n\t0x46, 0xdb, 0xa2, 0xd2, 0x99, 0xa5, 0x5c, 0x76, 0xb8, 0x43, 0x55, 0xe8, 0x83, 0x74, 0x21, 0x84,\n\t0xee, 0x5d, 0x22, 0x92, 0x84, 0x3e, 0x1a, 0x2f, 0x04, 0x0a, 0x3d, 0xd8, 0x2f, 0x8f, 0xf3, 0x2d,\n\t0x2d, 0x7e, 0x37, 0x23, 0x0a, 0xd8, 0xbf, 0x6c, 0x31, 0xb5, 0xac, 0x80, 0x92, 0xb0, 0xdd, 0x38,\n\t0x8e, 0xcc, 0xc0, 0x4b, 0x86, 0xc9, 0xf3, 0xbe, 0xfd, 0x61, 0xfe, 0x89, 0xc5, 0xfc, 0x61, 0x8e,\n\t0xf1, 0xe1, 0xcb, 0xeb, 0x30, 0x14, 0xc9, 0x8c, 0xcd, 0x1d, 0x92, 0x19, 0x6b, 0x8d, 0x62, 0x3e,\n\t0x41, 0xea, 0x72, 0xa0, 0x92, 0x33, 0x2b, 0x36, 0xf6, 0x3f, 0xe4, 0x23, 0x20, 0x31, 0xc7, 0x60,\n\t0x59, 0x5a, 0x34, 0x2d, 0x4b, 0xe5, 0x2e, 0x5f, 0x90, 0x63, 0x61, 0xfa, 0x07, 0x66, 0xbb, 0x99,\n\t0x52, 0xec, 0x9d, 0xee, 0x88, 0x65, 0x7f, 0xde, 0x02, 0x88, 0x63, 0x79, 0xf7, 0x90, 0x93, 0xef,\n\t0x25, 0x7a, 0x1d, 0xf0, 0x23, 0xbf, 0xe6, 0x37, 0x84, 0xdd, 0xf4, 0x91, 0xd8, 0xb8, 0xc5, 0xe1,\n\t0x07, 0xda, 0x6f, 0xac, 0xa8, 0x51, 0x59, 0x46, 0x0e, 0x2c, 0xc6, 0xe6, 0x56, 0x23, 0x6a, 0xe0,\n\t0x17, 0x2d, 0x38, 0x91, 0xe5, 0x45, 0x4d, 0x2f, 0x97, 0x5c, 0x3d, 0xa8, 0x9c, 0xe4, 0xd4, 0x68,\n\t0xde, 0x14, 0x70, 0xac, 0x28, 0x7a, 0x4e, 0x76, 0x78, 0xb8, 0x20, 0xda, 0xd7, 0x61, 0xb4, 0x12,\n\t0x10, 0xed, 0x5c, 0x7e, 0x95, 0x47, 0xa3, 0xe0, 0xed, 0x79, 0xe6, 0xd0, 0x91, 0x28, 0xec, 0x2f,\n\t0x17, 0xe0, 0x04, 0xf7, 0x35, 0x99, 0xdb, 0xf5, 0xdd, 0x7a, 0xc5, 0xaf, 0x8b, 0xb7, 0x72, 0x6f,\n\t0xc0, 0x48, 0x4b, 0xd3, 0xe9, 0x76, 0x0a, 0x08, 0xab, 0xeb, 0x7e, 0x63, 0x2d, 0x94, 0x0e, 0xc5,\n\t0x06, 0x2f, 0x54, 0x87, 0x11, 0xb2, 0xeb, 0xd6, 0x94, 0xc3, 0x42, 0xe1, 0xd0, 0x67, 0xa4, 0xaa,\n\t0x65, 0x49, 0xe3, 0x83, 0x0d, 0xae, 0x0f, 0x20, 0x05, 0xb9, 0xfd, 0x63, 0x16, 0x3c, 0x94, 0x13,\n\t0x3e, 0x96, 0x56, 0x77, 0x9b, 0x79, 0xf5, 0x88, 0x69, 0xab, 0xaa, 0xe3, 0xbe, 0x3e, 0x58, 0x60,\n\t0xd1, 0x47, 0x01, 0xb8, 0xaf, 0x0e, 0xf1, 0x6a, 0x5d, 0xe3, 0x6c, 0x1a, 0x21, 0x02, 0xb5, 0x68,\n\t0x6f, 0xb2, 0x3c, 0xd6, 0x78, 0xd9, 0x5f, 0xec, 0x83, 0x7e, 0xe6, 0x1b, 0x82, 0x2a, 0x30, 0xb8,\n\t0xcd, 0x13, 0x02, 0x75, 0x1c, 0x37, 0x4a, 0x2b, 0x73, 0x0c, 0xc5, 0xe3, 0xa6, 0x41, 0xb1, 0x64,\n\t0x83, 0x56, 0x61, 0x8a, 0xe7, 0x65, 0x6a, 0x2c, 0x92, 0x86, 0xb3, 0x27, 0xd5, 0xa5, 0x3c, 0x89,\n\t0xb0, 0x52, 0x1b, 0xaf, 0xa4, 0x49, 0x70, 0x56, 0x39, 0xf4, 0x2a, 0x8c, 0xd1, 0xeb, 0xab, 0xdf,\n\t0x8e, 0x24, 0x27, 0x9e, 0x91, 0x49, 0x49, 0xf4, 0xeb, 0x06, 0x16, 0x27, 0xa8, 0xd1, 0x2b, 0x30,\n\t0xda, 0x4a, 0x29, 0x86, 0xfb, 0x63, 0x0d, 0x8a, 0xa9, 0x0c, 0x36, 0x69, 0x99, 0x23, 0x75, 0x9b,\n\t0xb9, 0x8d, 0xaf, 0x6f, 0x07, 0x24, 0xdc, 0xf6, 0x1b, 0x75, 0x26, 0x39, 0xf6, 0x6b, 0x8e, 0xd4,\n\t0x09, 0x3c, 0x4e, 0x95, 0xa0, 0x5c, 0x36, 0x1d, 0xb7, 0xd1, 0x0e, 0x48, 0xcc, 0x65, 0xc0, 0xe4,\n\t0xb2, 0x9c, 0xc0, 0xe3, 0x54, 0x89, 0xee, 0x1a, 0xef, 0xc1, 0xa3, 0xd1, 0x78, 0xdb, 0x3f, 0x53,\n\t0x00, 0x63, 0x68, 0xbf, 0x73, 0x33, 0x45, 0xd1, 0x2f, 0xdb, 0x0a, 0x5a, 0x35, 0xe1, 0x07, 0x95,\n\t0xf9, 0x65, 0x71, 0x02, 0x58, 0xfe, 0x65, 0xf4, 0x3f, 0x66, 0xa5, 0xe8, 0x1a, 0x3f, 0x59, 0x09,\n\t0x7c, 0x7a, 0xc8, 0xc9, 0x78, 0x65, 0xea, 0xbd, 0xc2, 0xa0, 0x7c, 0xcb, 0xdd, 0x21, 0xb2, 0xa7,\n\t0xf0, 0xe8, 0xe6, 0x1c, 0x0c, 0x97, 0xa1, 0xaa, 0x08, 0xaa, 0x20, 0xb9, 0xa0, 0x4b, 0x30, 0x2c,\n\t0xd2, 0xff, 0x30, 0xb7, 0x7a, 0xbe, 0x98, 0x98, 0x8b, 0xd3, 0x62, 0x0c, 0xc6, 0x3a, 0x8d, 0xfd,\n\t0x83, 0x05, 0x98, 0xca, 0x78, 0x17, 0xc5, 0x8f, 0x91, 0x2d, 0x37, 0x8c, 0x54, 0x8e, 0x59, 0xed,\n\t0x18, 0xe1, 0x70, 0xac, 0x28, 0xe8, 0x5e, 0xc5, 0x0f, 0xaa, 0xe4, 0xe1, 0x24, 0xde, 0x1d, 0x08,\n\t0xec, 0x21, 0xb3, 0xb5, 0x9e, 0x83, 0xbe, 0x76, 0x48, 0x64, 0x4c, 0x5e, 0x75, 0x6c, 0x33, 0x73,\n\t0x30, 0xc3, 0xd0, 0x1b, 0xd8, 0x96, 0xb2, 0xac, 0x6a, 0x37, 0x30, 0x6e, 0x5b, 0xe5, 0x38, 0xda,\n\t0xb8, 0x88, 0x78, 0x8e, 0x17, 0x89, 0x7b, 0x5a, 0x1c, 0x5c, 0x92, 0x41, 0xb1, 0xc0, 0xda, 0x5f,\n\t0x28, 0xc2, 0xe9, 0xdc, 0x97, 0x92, 0xb4, 0xe9, 0x4d, 0xdf, 0x73, 0x23, 0x5f, 0xf9, 0x8e, 0xf1,\n\t0x80, 0x92, 0xa4, 0xb5, 0xbd, 0x2a, 0xe0, 0x58, 0x51, 0xa0, 0xf3, 0xd0, 0xcf, 0x94, 0xc9, 0xa9,\n\t0x6c, 0xbb, 0xf3, 0x8b, 0x3c, 0xc2, 0x18, 0x47, 0xf7, 0x9c, 0x20, 0xfd, 0x31, 0x2a, 0xc1, 0xf8,\n\t0x8d, 0xe4, 0x81, 0x42, 0x9b, 0xeb, 0xfb, 0x0d, 0xcc, 0x90, 0xe8, 0x09, 0xd1, 0x5f, 0x09, 0x67,\n\t0x29, 0xec, 0xd4, 0xfd, 0x50, 0xeb, 0xb4, 0xa7, 0x60, 0x70, 0x87, 0xec, 0x05, 0xae, 0xb7, 0x95,\n\t0x74, 0xa2, 0xbb, 0xca, 0xc1, 0x58, 0xe2, 0xcd, 0xf4, 0x90, 0x83, 0x47, 0x9d, 0xd9, 0x7c, 0xa8,\n\t0xab, 0x78, 0xf2, 0xc3, 0x45, 0x18, 0xc7, 0xf3, 0x8b, 0xef, 0x0e, 0xc4, 0x8d, 0xf4, 0x40, 0x1c,\n\t0x75, 0x66, 0xf3, 0xee, 0xa3, 0xf1, 0x0b, 0x16, 0x8c, 0xb3, 0x24, 0x44, 0x22, 0x1e, 0x82, 0xeb,\n\t0x7b, 0xc7, 0x70, 0x15, 0x78, 0x0c, 0xfa, 0x03, 0x5a, 0x69, 0x32, 0xcd, 0x2e, 0x6b, 0x09, 0xe6,\n\t0x38, 0xf4, 0x08, 0xf4, 0xb1, 0x26, 0xd0, 0xc1, 0x1b, 0xe1, 0x5b, 0xf0, 0xa2, 0x13, 0x39, 0x98,\n\t0x41, 0x59, 0x7c, 0x2d, 0x4c, 0x5a, 0x0d, 0x97, 0x37, 0x3a, 0x36, 0xf5, 0xbf, 0x33, 0x62, 0x28,\n\t0x64, 0x36, 0xed, 0xed, 0xc5, 0xd7, 0xca, 0x66, 0xd9, 0xf9, 0x9a, 0xfd, 0xc7, 0x05, 0x38, 0x9b,\n\t0x59, 0xae, 0xe7, 0xf8, 0x5a, 0x9d, 0x4b, 0x3f, 0xc8, 0x34, 0x33, 0xc5, 0x63, 0x74, 0x51, 0xee,\n\t0xeb, 0x55, 0xfa, 0xef, 0xef, 0x21, 0xec, 0x55, 0x66, 0x97, 0xbd, 0x43, 0xc2, 0x5e, 0x65, 0xb6,\n\t0x2d, 0x47, 0x4d, 0xf0, 0xe7, 0x85, 0x9c, 0x6f, 0x61, 0x0a, 0x83, 0x0b, 0x74, 0x9f, 0x61, 0xc8,\n\t0x50, 0x5e, 0xc2, 0xf9, 0x1e, 0xc3, 0x61, 0x58, 0x61, 0xd1, 0x1c, 0x8c, 0x37, 0x5d, 0x8f, 0x6e,\n\t0x3e, 0x7b, 0xa6, 0x28, 0xae, 0x6c, 0x00, 0xab, 0x26, 0x1a, 0x27, 0xe9, 0x91, 0xab, 0x85, 0xc4,\n\t0xe2, 0x5f, 0xf7, 0xca, 0xa1, 0x56, 0xdd, 0xac, 0xe9, 0x06, 0xa1, 0x7a, 0x31, 0x23, 0x3c, 0xd6,\n\t0xaa, 0xa6, 0x27, 0x2a, 0xf6, 0xae, 0x27, 0x1a, 0xc9, 0xd6, 0x11, 0xcd, 0xbc, 0x02, 0xa3, 0xf7,\n\t0x6d, 0x53, 0xb0, 0xbf, 0x5e, 0x84, 0x87, 0x3b, 0x2c, 0x7b, 0xbe, 0xd7, 0x1b, 0x63, 0xa0, 0xed,\n\t0xf5, 0xa9, 0x71, 0xa8, 0xc0, 0x89, 0xcd, 0x76, 0xa3, 0xb1, 0xc7, 0x5e, 0xee, 0x90, 0xba, 0xa4,\n\t0x10, 0x32, 0xa5, 0x54, 0x8e, 0x9c, 0x58, 0xce, 0xa0, 0xc1, 0x99, 0x25, 0xe9, 0x15, 0x8b, 0x9e,\n\t0x24, 0x7b, 0x8a, 0x55, 0xe2, 0x8a, 0x85, 0x75, 0x24, 0x36, 0x69, 0xd1, 0x65, 0x98, 0x74, 0x76,\n\t0x1d, 0x97, 0xc7, 0x15, 0x97, 0x0c, 0xf8, 0x1d, 0x4b, 0xa9, 0x82, 0xe7, 0x92, 0x04, 0x38, 0x5d,\n\t0x06, 0xbd, 0x06, 0xc8, 0xdf, 0x60, 0xfe, 0xfd, 0xf5, 0xcb, 0xc4, 0x13, 0xd6, 0x6a, 0x36, 0x76,\n\t0xc5, 0x78, 0x4b, 0xb8, 0x9e, 0xa2, 0xc0, 0x19, 0xa5, 0x12, 0xf1, 0x9f, 0x06, 0xf2, 0xe3, 0x3f,\n\t0x75, 0xde, 0x17, 0xbb, 0x66, 0x38, 0xba, 0x04, 0xa3, 0x87, 0xf4, 0x5a, 0xb5, 0xff, 0x83, 0x45,\n\t0x4f, 0x3c, 0x5e, 0xc6, 0x0c, 0xae, 0xfa, 0x0a, 0x73, 0xab, 0xe5, 0x9a, 0x65, 0x2d, 0xc0, 0xce,\n\t0x49, 0xcd, 0xad, 0x36, 0x46, 0x62, 0x93, 0x96, 0xcf, 0x21, 0xcd, 0x1d, 0xd6, 0xb8, 0x15, 0x88,\n\t0x08, 0x70, 0x8a, 0x02, 0x7d, 0x0c, 0x06, 0xeb, 0xee, 0xae, 0x1b, 0x0a, 0xe5, 0xd8, 0xa1, 0x8d,\n\t0x58, 0xf1, 0xd6, 0xb9, 0xc8, 0xd9, 0x60, 0xc9, 0xcf, 0xfe, 0xe1, 0x42, 0xdc, 0x27, 0xaf, 0xb7,\n\t0xfd, 0xc8, 0x39, 0x86, 0x93, 0xfc, 0xb2, 0x71, 0x92, 0x3f, 0xd1, 0x29, 0x0c, 0x1e, 0x6b, 0x52,\n\t0xee, 0x09, 0x7e, 0x3d, 0x71, 0x82, 0x3f, 0xd9, 0x9d, 0x55, 0xe7, 0x93, 0xfb, 0x1f, 0x59, 0x30,\n\t0x69, 0xd0, 0x1f, 0xc3, 0x01, 0xb2, 0x6c, 0x1e, 0x20, 0x8f, 0x76, 0xfd, 0x86, 0x9c, 0x83, 0xe3,\n\t0xfb, 0x8a, 0x89, 0xb6, 0xb3, 0x03, 0xe3, 0x2d, 0xe8, 0xdb, 0x76, 0x82, 0x7a, 0xa7, 0xb4, 0x1f,\n\t0xa9, 0x42, 0xb3, 0x57, 0x9c, 0x40, 0x58, 0xf8, 0x9f, 0x91, 0xbd, 0x4e, 0x41, 0x5d, 0xad, 0xfb,\n\t0xac, 0x2a, 0xf4, 0x12, 0x0c, 0x84, 0x35, 0xbf, 0xa5, 0x9e, 0xfa, 0x9c, 0x63, 0x1d, 0xcd, 0x20,\n\t0x07, 0xfb, 0x65, 0x64, 0x56, 0x47, 0xc1, 0x58, 0xd0, 0xa3, 0x37, 0x60, 0x94, 0xfd, 0x52, 0xee,\n\t0x76, 0xc5, 0x7c, 0x0d, 0x46, 0x55, 0x27, 0xe4, 0xbe, 0xa8, 0x06, 0x08, 0x9b, 0xac, 0x66, 0xb6,\n\t0xa0, 0xa4, 0x3e, 0xeb, 0x81, 0x5a, 0x89, 0xff, 0x6d, 0x11, 0xa6, 0x32, 0xe6, 0x1c, 0x0a, 0x8d,\n\t0x91, 0xb8, 0xd4, 0xe3, 0x54, 0x7d, 0x9b, 0x63, 0x11, 0xb2, 0x0b, 0x54, 0x5d, 0xcc, 0xad, 0x9e,\n\t0x2b, 0xbd, 0x11, 0x92, 0x64, 0xa5, 0x14, 0xd4, 0xbd, 0x52, 0x5a, 0xd9, 0xb1, 0x75, 0x35, 0xad,\n\t0x48, 0xb5, 0xf4, 0x81, 0x8e, 0xe9, 0xaf, 0xf5, 0xc1, 0x89, 0xac, 0xc8, 0x9c, 0xe8, 0x33, 0x89,\n\t0xa4, 0xb3, 0x2f, 0xf4, 0x1a, 0xd3, 0x93, 0x67, 0xa2, 0x15, 0x11, 0x03, 0x67, 0xcd, 0x34, 0xb4,\n\t0x5d, 0xbb, 0x59, 0xd4, 0xc9, 0x62, 0x96, 0x04, 0x3c, 0x59, 0xb0, 0xdc, 0x3e, 0xde, 0xdf, 0x73,\n\t0x03, 0x44, 0x96, 0xe1, 0x30, 0xe1, 0xca, 0x23, 0xc1, 0xdd, 0x5d, 0x79, 0x64, 0xcd, 0x68, 0x05,\n\t0x06, 0x6a, 0xdc, 0x47, 0xa4, 0xd8, 0x7d, 0x0b, 0xe3, 0x0e, 0x22, 0x6a, 0x03, 0x16, 0x8e, 0x21,\n\t0x82, 0xc1, 0x8c, 0x0b, 0xc3, 0x5a, 0xc7, 0x3c, 0xd0, 0xc9, 0xb3, 0x43, 0x0f, 0x3e, 0xad, 0x0b,\n\t0x1e, 0xe8, 0x04, 0xfa, 0x31, 0x0b, 0x12, 0x0f, 0x45, 0x94, 0x52, 0xce, 0xca, 0x55, 0xca, 0x9d,\n\t0x83, 0xbe, 0xc0, 0x6f, 0x90, 0x64, 0xa2, 0x57, 0xec, 0x37, 0x08, 0x66, 0x18, 0x4a, 0x11, 0xc5,\n\t0xaa, 0x96, 0x11, 0xfd, 0x1a, 0x29, 0x2e, 0x88, 0x8f, 0x41, 0x7f, 0x83, 0xec, 0x92, 0x46, 0x32,\n\t0x1f, 0xd7, 0x35, 0x0a, 0xc4, 0x1c, 0x67, 0xff, 0x42, 0x1f, 0x9c, 0xe9, 0x18, 0x40, 0x88, 0x5e,\n\t0xc6, 0xb6, 0x9c, 0x88, 0xdc, 0x76, 0xf6, 0x92, 0x89, 0x73, 0x2e, 0x73, 0x30, 0x96, 0x78, 0xf6,\n\t0x6a, 0x91, 0xc7, 0xbf, 0x4f, 0xa8, 0x30, 0x45, 0xd8, 0x7b, 0x81, 0x35, 0x55, 0x62, 0xc5, 0xa3,\n\t0x50, 0x89, 0x3d, 0x07, 0x10, 0x86, 0x0d, 0xee, 0x4e, 0x57, 0x17, 0xcf, 0x21, 0xe3, 0x3c, 0x09,\n\t0xd5, 0x6b, 0x02, 0x83, 0x35, 0x2a, 0xb4, 0x08, 0x13, 0xad, 0xc0, 0x8f, 0xb8, 0x46, 0x78, 0x91,\n\t0x7b, 0x9c, 0xf6, 0x9b, 0xb1, 0x5b, 0x2a, 0x09, 0x3c, 0x4e, 0x95, 0x40, 0x2f, 0xc2, 0xb0, 0x88,\n\t0xe7, 0x52, 0xf1, 0xfd, 0x86, 0x50, 0x42, 0x29, 0x27, 0xcc, 0x6a, 0x8c, 0xc2, 0x3a, 0x9d, 0x56,\n\t0x8c, 0xa9, 0x99, 0x07, 0x33, 0x8b, 0x71, 0x55, 0xb3, 0x46, 0x97, 0x08, 0xf8, 0x3b, 0xd4, 0x53,\n\t0xc0, 0xdf, 0x58, 0x2d, 0x57, 0xea, 0xd9, 0xea, 0x09, 0x5d, 0x15, 0x59, 0x5f, 0xe9, 0x83, 0x29,\n\t0x31, 0x71, 0x1e, 0xf4, 0x74, 0xb9, 0x91, 0x9e, 0x2e, 0x47, 0xa1, 0xb8, 0x7b, 0x77, 0xce, 0x1c,\n\t0xf7, 0x9c, 0xf9, 0x11, 0x0b, 0x4c, 0x49, 0x0d, 0xfd, 0x7f, 0xb9, 0x99, 0xc7, 0x5e, 0xcc, 0x95,\n\t0xfc, 0x94, 0xc3, 0xe1, 0xdb, 0xcc, 0x41, 0x66, 0xff, 0x3b, 0x0b, 0x1e, 0xed, 0xca, 0x11, 0x2d,\n\t0x41, 0x89, 0x89, 0x93, 0xda, 0x45, 0xef, 0x49, 0xe5, 0x91, 0x2e, 0x11, 0x39, 0xd2, 0x6d, 0x5c,\n\t0x12, 0x2d, 0xa5, 0x52, 0xbc, 0x3d, 0x95, 0x91, 0xe2, 0xed, 0xa4, 0xd1, 0x3d, 0xf7, 0x99, 0xe3,\n\t0xed, 0x87, 0xe8, 0x89, 0x63, 0xbc, 0x06, 0x43, 0xef, 0x37, 0x94, 0x8e, 0x76, 0x42, 0xe9, 0x88,\n\t0x4c, 0x6a, 0xed, 0x0c, 0xf9, 0x08, 0x4c, 0xb0, 0x40, 0x6f, 0xec, 0x7d, 0x84, 0x78, 0xa7, 0x56,\n\t0x88, 0x7d, 0xa0, 0xaf, 0x25, 0x70, 0x38, 0x45, 0x6d, 0xff, 0x51, 0x11, 0x06, 0xf8, 0xf2, 0x3b,\n\t0x86, 0xeb, 0xe5, 0xd3, 0x50, 0x72, 0x9b, 0xcd, 0x36, 0xcf, 0xda, 0xd5, 0x1f, 0x7b, 0xd4, 0xae,\n\t0x48, 0x20, 0x8e, 0xf1, 0x68, 0x59, 0xe8, 0xbb, 0x3b, 0xc4, 0x92, 0xe5, 0x0d, 0x9f, 0x5d, 0x74,\n\t0x22, 0x87, 0xcb, 0x4a, 0xea, 0x9c, 0x8d, 0x35, 0xe3, 0xe8, 0x93, 0x00, 0x61, 0x14, 0xb8, 0xde,\n\t0x16, 0x85, 0x89, 0x10, 0xd6, 0xef, 0xed, 0xc0, 0xad, 0xaa, 0x88, 0x39, 0xcf, 0x78, 0xcf, 0x51,\n\t0x08, 0xac, 0x71, 0x44, 0xb3, 0xc6, 0x49, 0x3f, 0x93, 0x18, 0x3b, 0xe0, 0x5c, 0xe3, 0x31, 0x9b,\n\t0xf9, 0x00, 0x94, 0x14, 0xf3, 0x6e, 0xda, 0xaf, 0x11, 0x5d, 0x2c, 0xfa, 0x30, 0x8c, 0x27, 0xda,\n\t0x76, 0x28, 0xe5, 0xd9, 0x2f, 0x5a, 0x30, 0xce, 0x1b, 0xb3, 0xe4, 0xed, 0x8a, 0xd3, 0xe0, 0x2e,\n\t0x9c, 0x68, 0x64, 0xec, 0xca, 0x62, 0xf8, 0x7b, 0xdf, 0xc5, 0x95, 0xb2, 0x2c, 0x0b, 0x8b, 0x33,\n\t0xeb, 0x40, 0x17, 0xe8, 0x8a, 0xa3, 0xbb, 0xae, 0xd3, 0x10, 0xcf, 0xf2, 0x47, 0xf8, 0x6a, 0xe3,\n\t0x30, 0xac, 0xb0, 0xf6, 0xef, 0x59, 0x30, 0xc9, 0x5b, 0x7e, 0x95, 0xec, 0xa9, 0xbd, 0xe9, 0x5b,\n\t0xd9, 0x76, 0x91, 0x2f, 0xb2, 0x90, 0x93, 0x2f, 0x52, 0xff, 0xb4, 0x62, 0xc7, 0x4f, 0xfb, 0xb2,\n\t0x05, 0x62, 0x86, 0x1c, 0x83, 0x3e, 0xe3, 0xbb, 0x4c, 0x7d, 0xc6, 0x4c, 0xfe, 0x22, 0xc8, 0x51,\n\t0x64, 0xfc, 0x99, 0x05, 0x13, 0x9c, 0x20, 0xb6, 0xd5, 0x7f, 0x4b, 0xc7, 0xa1, 0x97, 0xac, 0xf2,\n\t0x57, 0xc9, 0xde, 0xba, 0x5f, 0x71, 0xa2, 0xed, 0xec, 0x8f, 0x32, 0x06, 0xab, 0xaf, 0xe3, 0x60,\n\t0xd5, 0xe5, 0x02, 0x32, 0xd2, 0x29, 0x75, 0x79, 0x5c, 0x7f, 0xd8, 0x74, 0x4a, 0xf6, 0x37, 0x2d,\n\t0x40, 0xbc, 0x1a, 0x43, 0x70, 0xa3, 0xe2, 0x10, 0x83, 0x6a, 0x07, 0x5d, 0xbc, 0x35, 0x29, 0x0c,\n\t0xd6, 0xa8, 0x8e, 0xa4, 0x7b, 0x12, 0x0e, 0x17, 0xc5, 0xee, 0x0e, 0x17, 0x87, 0xe8, 0xd1, 0x7f,\n\t0x31, 0x00, 0xc9, 0x17, 0x71, 0xe8, 0x26, 0x8c, 0xd4, 0x9c, 0x96, 0xb3, 0xe1, 0x36, 0xdc, 0xc8,\n\t0x25, 0x61, 0x27, 0x6f, 0xac, 0x05, 0x8d, 0x4e, 0x98, 0xc8, 0x35, 0x08, 0x36, 0xf8, 0xa0, 0x59,\n\t0x80, 0x56, 0xe0, 0xee, 0xba, 0x0d, 0xb2, 0xc5, 0xd4, 0x2e, 0x2c, 0x10, 0x08, 0x77, 0x0d, 0x93,\n\t0x50, 0xac, 0x51, 0x64, 0x84, 0x1f, 0x28, 0x3e, 0xe0, 0xf0, 0x03, 0x70, 0x6c, 0xe1, 0x07, 0xfa,\n\t0x0e, 0x15, 0x7e, 0x60, 0xe8, 0xd0, 0xe1, 0x07, 0xfa, 0x7b, 0x0a, 0x3f, 0x80, 0xe1, 0x94, 0x94,\n\t0x3d, 0xe9, 0xff, 0x65, 0xb7, 0x41, 0xc4, 0x85, 0x83, 0x47, 0x2f, 0x99, 0xb9, 0xb7, 0x5f, 0x3e,\n\t0x85, 0x33, 0x29, 0x70, 0x4e, 0x49, 0xf4, 0x51, 0x98, 0x76, 0x1a, 0x0d, 0xff, 0xb6, 0x1a, 0xd4,\n\t0xa5, 0xb0, 0xe6, 0x34, 0xb8, 0x09, 0x64, 0x90, 0x71, 0x7d, 0xe4, 0xde, 0x7e, 0x79, 0x7a, 0x2e,\n\t0x87, 0x06, 0xe7, 0x96, 0x46, 0x1f, 0x82, 0x52, 0x2b, 0xf0, 0x6b, 0xab, 0xda, 0xb3, 0xdd, 0xb3,\n\t0xb4, 0x03, 0x2b, 0x12, 0x78, 0xb0, 0x5f, 0x1e, 0x55, 0x7f, 0xd8, 0x81, 0x1f, 0x17, 0xc8, 0x88,\n\t0x27, 0x30, 0x7c, 0xa4, 0xf1, 0x04, 0x76, 0x60, 0xaa, 0x4a, 0x02, 0xd7, 0x69, 0xb8, 0x77, 0xa9,\n\t0xbc, 0x2c, 0xf7, 0xa7, 0x75, 0x28, 0x05, 0x89, 0x1d, 0xb9, 0xa7, 0xf8, 0xae, 0x5a, 0x5e, 0x1b,\n\t0xb9, 0x03, 0xc7, 0x8c, 0xec, 0xff, 0x65, 0xc1, 0xa0, 0x78, 0x01, 0x77, 0x0c, 0x52, 0xe3, 0x9c,\n\t0x61, 0x94, 0x28, 0x67, 0x77, 0x18, 0x6b, 0x4c, 0xae, 0x39, 0x62, 0x25, 0x61, 0x8e, 0x78, 0xb4,\n\t0x13, 0x93, 0xce, 0x86, 0x88, 0xbf, 0x5e, 0xa4, 0xd2, 0xbb, 0xf1, 0x16, 0xfb, 0xc1, 0x77, 0xc1,\n\t0x1a, 0x0c, 0x86, 0xe2, 0x2d, 0x70, 0x21, 0xff, 0x31, 0x46, 0x72, 0x10, 0x63, 0x2f, 0x3a, 0xf1,\n\t0xfa, 0x57, 0x32, 0xc9, 0x7c, 0x64, 0x5c, 0x7c, 0x80, 0x8f, 0x8c, 0xbb, 0xbd, 0x56, 0xef, 0x3b,\n\t0x8a, 0xd7, 0xea, 0xf6, 0xd7, 0xd8, 0xc9, 0xa9, 0xc3, 0x8f, 0x41, 0xa8, 0xba, 0x6c, 0x9e, 0xb1,\n\t0x76, 0x87, 0x99, 0x25, 0x1a, 0x95, 0x23, 0x5c, 0xfd, 0xbc, 0x05, 0x67, 0x32, 0xbe, 0x4a, 0x93,\n\t0xb4, 0x9e, 0x81, 0x21, 0xa7, 0x5d, 0x77, 0xd5, 0x5a, 0xd6, 0x4c, 0x93, 0x73, 0x02, 0x8e, 0x15,\n\t0x05, 0x5a, 0x80, 0x49, 0x72, 0xa7, 0xe5, 0x72, 0x43, 0xae, 0xee, 0x7c, 0x5c, 0xe4, 0xcf, 0x26,\n\t0x97, 0x92, 0x48, 0x9c, 0xa6, 0x57, 0x71, 0x8d, 0x8a, 0xb9, 0x71, 0x8d, 0xfe, 0x8e, 0x05, 0xc3,\n\t0xea, 0x35, 0xec, 0x03, 0xef, 0xed, 0x8f, 0x98, 0xbd, 0xfd, 0x70, 0x87, 0xde, 0xce, 0xe9, 0xe6,\n\t0xdf, 0x29, 0xa8, 0xf6, 0x56, 0xfc, 0x20, 0xea, 0x41, 0x82, 0xbb, 0xff, 0x87, 0x13, 0x97, 0x60,\n\t0xd8, 0x69, 0xb5, 0x24, 0x42, 0x7a, 0xc0, 0xb1, 0x68, 0xdd, 0x31, 0x18, 0xeb, 0x34, 0xea, 0x1d,\n\t0x47, 0x31, 0xf7, 0x1d, 0x47, 0x1d, 0x20, 0x72, 0x82, 0x2d, 0x12, 0x51, 0x98, 0x70, 0xd8, 0xcd,\n\t0xdf, 0x6f, 0xda, 0x91, 0xdb, 0x98, 0x75, 0xbd, 0x28, 0x8c, 0x82, 0xd9, 0x15, 0x2f, 0xba, 0x1e,\n\t0xf0, 0x2b, 0xa4, 0x16, 0x19, 0x4c, 0xf1, 0xc2, 0x1a, 0x5f, 0x19, 0xf9, 0x81, 0xd5, 0xd1, 0x6f,\n\t0xba, 0x52, 0xac, 0x09, 0x38, 0x56, 0x14, 0xf6, 0x07, 0xd8, 0xe9, 0xc3, 0xfa, 0xf4, 0x70, 0x51,\n\t0xb1, 0x7e, 0x6a, 0x44, 0x8d, 0x06, 0x33, 0x8a, 0x2e, 0xea, 0xb1, 0xb7, 0x3a, 0x6f, 0xf6, 0xb4,\n\t0x62, 0xfd, 0x41, 0x62, 0x1c, 0xa0, 0x0b, 0x7d, 0x3c, 0xe5, 0x1e, 0xf3, 0x6c, 0x97, 0x53, 0xe3,\n\t0x10, 0x0e, 0x31, 0x2c, 0x75, 0x0f, 0x4b, 0x6c, 0xb2, 0x52, 0x11, 0xeb, 0x42, 0x4b, 0xdd, 0x23,\n\t0x10, 0x38, 0xa6, 0xa1, 0xc2, 0x94, 0xfa, 0x13, 0x4e, 0xa3, 0x38, 0x84, 0xad, 0xa2, 0x0e, 0xb1,\n\t0x46, 0x81, 0x2e, 0x0a, 0x85, 0x02, 0xb7, 0x0b, 0x3c, 0x9c, 0x50, 0x28, 0xc8, 0xee, 0xd2, 0xb4,\n\t0x40, 0x97, 0x60, 0x58, 0x25, 0x6a, 0xaf, 0xf0, 0xa4, 0x59, 0x62, 0x9a, 0x2d, 0xc5, 0x60, 0xac,\n\t0xd3, 0xa0, 0x75, 0x18, 0x0f, 0xb9, 0x9e, 0x4d, 0xc5, 0x15, 0xe7, 0xfa, 0xca, 0xf7, 0xaa, 0x77,\n\t0xc8, 0x26, 0xfa, 0x80, 0x81, 0xf8, 0xee, 0x24, 0xa3, 0x33, 0x24, 0x59, 0xa0, 0x57, 0x61, 0xac,\n\t0xe1, 0x3b, 0xf5, 0x79, 0xa7, 0xe1, 0x78, 0x35, 0xd6, 0x3f, 0x43, 0x66, 0xbe, 0xdf, 0x6b, 0x06,\n\t0x16, 0x27, 0xa8, 0xa9, 0xf0, 0xa6, 0x43, 0x44, 0x74, 0x31, 0xc7, 0xdb, 0x22, 0xa1, 0x48, 0xbb,\n\t0xcd, 0x84, 0xb7, 0x6b, 0x39, 0x34, 0x38, 0xb7, 0x34, 0x7a, 0x09, 0x46, 0xe4, 0xe7, 0x6b, 0xc1,\n\t0x4c, 0xe2, 0x27, 0x31, 0x1a, 0x0e, 0x1b, 0x94, 0x28, 0x84, 0x93, 0xf2, 0xff, 0x7a, 0xe0, 0x6c,\n\t0x6e, 0xba, 0x35, 0xf1, 0xc2, 0x9f, 0x3f, 0xbb, 0xfd, 0xb0, 0x7c, 0x1b, 0xba, 0x94, 0x45, 0x74,\n\t0xb0, 0x5f, 0x7e, 0x44, 0xf4, 0x5a, 0x26, 0x1e, 0x67, 0xf3, 0x46, 0xab, 0x30, 0xb5, 0x4d, 0x9c,\n\t0x46, 0xb4, 0xbd, 0xb0, 0x4d, 0x6a, 0x3b, 0x72, 0xc1, 0xb1, 0xf0, 0x28, 0xda, 0xd3, 0x91, 0x2b,\n\t0x69, 0x12, 0x9c, 0x55, 0x0e, 0xbd, 0x09, 0xd3, 0xad, 0xf6, 0x46, 0xc3, 0x0d, 0xb7, 0xd7, 0xfc,\n\t0x88, 0x39, 0x21, 0xa9, 0x9c, 0xef, 0x22, 0x8e, 0x8a, 0x0a, 0x40, 0x53, 0xc9, 0xa1, 0xc3, 0xb9,\n\t0x1c, 0xd0, 0x5d, 0x38, 0x99, 0x98, 0x08, 0x22, 0x92, 0xc4, 0x58, 0x7e, 0x56, 0x91, 0x6a, 0x56,\n\t0x01, 0x11, 0x94, 0x25, 0x0b, 0x85, 0xb3, 0xab, 0x40, 0x2f, 0x03, 0xb8, 0xad, 0x65, 0xa7, 0xe9,\n\t0x36, 0xe8, 0x55, 0x71, 0x8a, 0xcd, 0x11, 0x7a, 0x6d, 0x80, 0x95, 0x8a, 0x84, 0xd2, 0xbd, 0x59,\n\t0xfc, 0xdb, 0xc3, 0x1a, 0x35, 0xba, 0x06, 0x63, 0xe2, 0xdf, 0x9e, 0x18, 0x52, 0x1e, 0xd0, 0xe4,\n\t0x71, 0x16, 0x8d, 0xaa, 0xa2, 0x63, 0x0e, 0x52, 0x10, 0x9c, 0x28, 0x8b, 0xb6, 0xe0, 0x8c, 0xcc,\n\t0x10, 0xa7, 0xcf, 0x4f, 0x39, 0x06, 0x21, 0x4b, 0xe5, 0x31, 0xc4, 0x5f, 0xa5, 0xcc, 0x75, 0x22,\n\t0xc4, 0x9d, 0xf9, 0xd0, 0x73, 0x5d, 0x9f, 0xe6, 0xfc, 0xc9, 0xef, 0x49, 0xee, 0xe1, 0x44, 0xcf,\n\t0xf5, 0x6b, 0x49, 0x24, 0x4e, 0xd3, 0x23, 0x1f, 0x4e, 0xba, 0x5e, 0xd6, 0xac, 0x3e, 0xc5, 0x18,\n\t0x7d, 0x90, 0xbf, 0x76, 0xee, 0x3c, 0xa3, 0x33, 0xf1, 0x38, 0x9b, 0xef, 0xdb, 0xf3, 0xfb, 0xfb,\n\t0x5d, 0x8b, 0x96, 0xd6, 0xa4, 0x73, 0xf4, 0x29, 0x18, 0xd1, 0x3f, 0x4a, 0x48, 0x1a, 0xe7, 0xb3,\n\t0x85, 0x57, 0x6d, 0x4f, 0xe0, 0xb2, 0xbd, 0x5a, 0xf7, 0x3a, 0x0e, 0x1b, 0x1c, 0x51, 0x2d, 0x23,\n\t0x26, 0xc0, 0xc5, 0xde, 0x24, 0x99, 0xde, 0xdd, 0xde, 0x08, 0x64, 0x4f, 0x77, 0x74, 0x0d, 0x86,\n\t0x6a, 0x0d, 0x97, 0x78, 0xd1, 0x4a, 0xa5, 0x53, 0xd4, 0xc3, 0x05, 0x41, 0x23, 0xd6, 0x8f, 0xc8,\n\t0xca, 0xc1, 0x61, 0x58, 0x71, 0xb0, 0x7f, 0xa3, 0x00, 0xe5, 0x2e, 0x29, 0x5e, 0x12, 0x66, 0x28,\n\t0xab, 0x27, 0x33, 0xd4, 0x1c, 0x8c, 0xc7, 0xff, 0x74, 0x0d, 0x97, 0xf2, 0x64, 0xbd, 0x69, 0xa2,\n\t0x71, 0x92, 0xbe, 0xe7, 0x47, 0x09, 0xba, 0x25, 0xab, 0xaf, 0xeb, 0xb3, 0x1a, 0xc3, 0x82, 0xdd,\n\t0xdf, 0xfb, 0xb5, 0x37, 0xd7, 0x1a, 0x69, 0x7f, 0xad, 0x00, 0x27, 0x55, 0x17, 0x7e, 0xe7, 0x76,\n\t0xdc, 0x8d, 0x74, 0xc7, 0x1d, 0x81, 0x2d, 0xd7, 0xbe, 0x0e, 0x03, 0x3c, 0x8c, 0x63, 0x0f, 0xe2,\n\t0xf6, 0x63, 0x66, 0x70, 0x67, 0x25, 0xe1, 0x19, 0x01, 0x9e, 0x7f, 0xc0, 0x82, 0xf1, 0xc4, 0xeb,\n\t0x36, 0x84, 0xb5, 0x27, 0xd0, 0xf7, 0x23, 0x12, 0x67, 0x09, 0xdb, 0xe7, 0xa0, 0x6f, 0xdb, 0x0f,\n\t0xa3, 0xa4, 0xa3, 0xc7, 0x15, 0x3f, 0x8c, 0x30, 0xc3, 0xd8, 0xbf, 0x6f, 0x41, 0xff, 0xba, 0xe3,\n\t0x7a, 0x91, 0x34, 0x0a, 0x58, 0x39, 0x46, 0x81, 0x5e, 0xbe, 0x0b, 0xbd, 0x08, 0x03, 0x64, 0x73,\n\t0x93, 0xd4, 0x22, 0x31, 0xaa, 0x32, 0xf4, 0xc4, 0xc0, 0x12, 0x83, 0x52, 0xf9, 0x8f, 0x55, 0xc6,\n\t0xff, 0x62, 0x41, 0x8c, 0x6e, 0x41, 0x29, 0x72, 0x9b, 0x64, 0xae, 0x5e, 0x17, 0xa6, 0xf2, 0xfb,\n\t0x08, 0x9f, 0xb1, 0x2e, 0x19, 0xe0, 0x98, 0x97, 0xfd, 0x85, 0x02, 0x40, 0x1c, 0xff, 0xaa, 0xdb,\n\t0x27, 0xce, 0xa7, 0x8c, 0xa8, 0xe7, 0x33, 0x8c, 0xa8, 0x28, 0x66, 0x98, 0x61, 0x41, 0x55, 0xdd,\n\t0x54, 0xec, 0xa9, 0x9b, 0xfa, 0x0e, 0xd3, 0x4d, 0x0b, 0x30, 0x19, 0xc7, 0xef, 0x32, 0xc3, 0x17,\n\t0xb2, 0xa3, 0x73, 0x3d, 0x89, 0xc4, 0x69, 0x7a, 0x9b, 0xc0, 0x39, 0x15, 0xc6, 0x48, 0x9c, 0x68,\n\t0xcc, 0x0f, 0x5c, 0x37, 0x4a, 0x77, 0xe9, 0xa7, 0xd8, 0x4a, 0x5c, 0xc8, 0xb5, 0x12, 0xff, 0xa4,\n\t0x05, 0x27, 0x92, 0xf5, 0xb0, 0x47, 0xd3, 0x9f, 0xb7, 0xe0, 0x24, 0xb3, 0x95, 0xb3, 0x5a, 0xd3,\n\t0x96, 0xf9, 0x17, 0x3a, 0x86, 0x66, 0xca, 0x69, 0x71, 0x1c, 0xe3, 0x64, 0x35, 0x8b, 0x35, 0xce,\n\t0xae, 0xd1, 0xfe, 0x9f, 0x7d, 0x30, 0x9d, 0x17, 0xd3, 0x89, 0x3d, 0x13, 0x71, 0xee, 0x54, 0x77,\n\t0xc8, 0x6d, 0xe1, 0x8c, 0x1f, 0x3f, 0x13, 0xe1, 0x60, 0x2c, 0xf1, 0xc9, 0xac, 0x1d, 0x85, 0x1e,\n\t0xb3, 0x76, 0x6c, 0xc3, 0xe4, 0xed, 0x6d, 0xe2, 0xdd, 0xf0, 0x42, 0x27, 0x72, 0xc3, 0x4d, 0x97,\n\t0xd9, 0x95, 0xf9, 0xbc, 0x91, 0xa9, 0x7e, 0x27, 0x6f, 0x25, 0x09, 0x0e, 0xf6, 0xcb, 0x67, 0x0c,\n\t0x40, 0xdc, 0x64, 0xbe, 0x91, 0xe0, 0x34, 0xd3, 0x74, 0xd2, 0x93, 0xbe, 0x07, 0x9c, 0xf4, 0xa4,\n\t0xe9, 0x0a, 0x6f, 0x14, 0xf9, 0x06, 0x80, 0xdd, 0x18, 0x57, 0x15, 0x14, 0x6b, 0x14, 0xe8, 0x13,\n\t0x80, 0xf4, 0xa4, 0x4e, 0x46, 0x48, 0xcd, 0x67, 0xef, 0xed, 0x97, 0xd1, 0x5a, 0x0a, 0x7b, 0xb0,\n\t0x5f, 0x9e, 0xa2, 0xd0, 0x15, 0x8f, 0xde, 0x3c, 0xe3, 0x38, 0x64, 0x19, 0x8c, 0xd0, 0x2d, 0x98,\n\t0xa0, 0x50, 0xb6, 0xa2, 0x64, 0xbc, 0x4e, 0x7e, 0x5b, 0x7c, 0xfa, 0xde, 0x7e, 0x79, 0x62, 0x2d,\n\t0x81, 0xcb, 0x63, 0x9d, 0x62, 0x82, 0x5e, 0x86, 0xb1, 0x78, 0x5e, 0x5d, 0x25, 0x7b, 0x3c, 0x3e,\n\t0x4e, 0x89, 0x2b, 0xbc, 0x57, 0x0d, 0x0c, 0x4e, 0x50, 0xda, 0x9f, 0xb7, 0xe0, 0x74, 0x6e, 0xe2,\n\t0x71, 0x74, 0x01, 0x86, 0x9c, 0x96, 0xcb, 0xcd, 0x17, 0xe2, 0xa8, 0x61, 0x6a, 0xb2, 0xca, 0x0a,\n\t0x37, 0x5e, 0x28, 0x2c, 0xdd, 0xe1, 0x77, 0x5c, 0xaf, 0x9e, 0xdc, 0xe1, 0xaf, 0xba, 0x5e, 0x1d,\n\t0x33, 0x8c, 0x3a, 0xb2, 0x8a, 0xb9, 0x4f, 0x11, 0xbe, 0x42, 0xd7, 0x6a, 0x46, 0x8a, 0xf2, 0xe3,\n\t0x6d, 0x06, 0x7a, 0x5a, 0x37, 0x35, 0x0a, 0xaf, 0xc2, 0x5c, 0x33, 0xe3, 0xf7, 0x5b, 0x20, 0x9e,\n\t0x2e, 0xf7, 0x70, 0x26, 0xbf, 0x01, 0x23, 0xbb, 0xe9, 0x84, 0x77, 0xe7, 0xf2, 0xdf, 0x72, 0x8b,\n\t0x40, 0xe1, 0x4a, 0xd0, 0x36, 0x92, 0xdb, 0x19, 0xbc, 0xec, 0x3a, 0x08, 0xec, 0x22, 0x61, 0x06,\n\t0x85, 0xee, 0xad, 0x79, 0x0e, 0xa0, 0xce, 0x68, 0x59, 0x16, 0xdc, 0x82, 0x29, 0x71, 0x2d, 0x2a,\n\t0x0c, 0xd6, 0xa8, 0xec, 0x7f, 0x55, 0x80, 0x61, 0x99, 0x60, 0xad, 0xed, 0xf5, 0xa2, 0xf6, 0x3b,\n\t0x54, 0xc6, 0x65, 0x74, 0x11, 0x4a, 0x4c, 0x2f, 0x5d, 0x89, 0xb5, 0xa5, 0x4a, 0x2b, 0xb4, 0x2a,\n\t0x11, 0x38, 0xa6, 0xa1, 0xbb, 0x63, 0xd8, 0xde, 0x60, 0xe4, 0x89, 0x87, 0xb6, 0x55, 0x0e, 0xc6,\n\t0x12, 0x8f, 0x3e, 0x0a, 0x13, 0xbc, 0x5c, 0xe0, 0xb7, 0x9c, 0x2d, 0x6e, 0xcb, 0xea, 0x57, 0xd1,\n\t0x4b, 0x26, 0x56, 0x13, 0xb8, 0x83, 0xfd, 0xf2, 0x89, 0x24, 0x8c, 0x19, 0x69, 0x53, 0x5c, 0x98,\n\t0xcb, 0x1a, 0xaf, 0x84, 0xee, 0xea, 0x29, 0x4f, 0xb7, 0x18, 0x85, 0x75, 0x3a, 0xfb, 0x53, 0x80,\n\t0xd2, 0xa9, 0xe6, 0xd0, 0x6b, 0xdc, 0xe5, 0xd9, 0x0d, 0x48, 0xbd, 0x93, 0xd1, 0x56, 0x8f, 0xd1,\n\t0x21, 0xdf, 0xc8, 0xf1, 0x52, 0x58, 0x95, 0xb7, 0xff, 0x52, 0x11, 0x26, 0x92, 0x51, 0x01, 0xd0,\n\t0x15, 0x18, 0xe0, 0x22, 0xa5, 0x60, 0xdf, 0xc1, 0x27, 0x48, 0x8b, 0x25, 0xc0, 0x0e, 0x57, 0x21,\n\t0x95, 0x8a, 0xf2, 0xe8, 0x4d, 0x18, 0xae, 0xfb, 0xb7, 0xbd, 0xdb, 0x4e, 0x50, 0x9f, 0xab, 0xac,\n\t0x88, 0xe9, 0x9c, 0xa9, 0xa8, 0x58, 0x8c, 0xc9, 0xf4, 0xf8, 0x04, 0xcc, 0xfe, 0x1d, 0xa3, 0xb0,\n\t0xce, 0x0e, 0xad, 0xb3, 0xfc, 0x14, 0x9b, 0xee, 0xd6, 0xaa, 0xd3, 0xea, 0xf4, 0xfe, 0x65, 0x41,\n\t0x12, 0x69, 0x9c, 0x47, 0x45, 0x12, 0x0b, 0x8e, 0xc0, 0x31, 0x23, 0xf4, 0x19, 0x98, 0x0a, 0x73,\n\t0x4c, 0x27, 0x79, 0x99, 0x47, 0x3b, 0x59, 0x13, 0xe6, 0x1f, 0xba, 0xb7, 0x5f, 0x9e, 0xca, 0x32,\n\t0xb2, 0x64, 0x55, 0x63, 0x7f, 0xf1, 0x04, 0x18, 0x8b, 0xd8, 0x48, 0x44, 0x6d, 0x1d, 0x51, 0x22,\n\t0x6a, 0x0c, 0x43, 0xa4, 0xd9, 0x8a, 0xf6, 0x16, 0xdd, 0x40, 0x8c, 0x49, 0x26, 0xcf, 0x25, 0x41,\n\t0x93, 0xe6, 0x29, 0x31, 0x58, 0xf1, 0xc9, 0xce, 0x16, 0x5e, 0xfc, 0x16, 0x66, 0x0b, 0xef, 0x3b,\n\t0xc6, 0x6c, 0xe1, 0x6b, 0x30, 0xb8, 0xe5, 0x46, 0x98, 0xb4, 0x7c, 0x71, 0x99, 0xcb, 0x9c, 0x87,\n\t0x97, 0x39, 0x49, 0x3a, 0x2f, 0xad, 0x40, 0x60, 0xc9, 0x04, 0xbd, 0xa6, 0x56, 0xe0, 0x40, 0xbe,\n\t0xc2, 0x25, 0xed, 0xbc, 0x92, 0xb9, 0x06, 0x45, 0x4e, 0xf0, 0xc1, 0xfb, 0xcd, 0x09, 0xbe, 0x2c,\n\t0x33, 0x79, 0x0f, 0xe5, 0x3f, 0x56, 0x63, 0x89, 0xba, 0xbb, 0xe4, 0xef, 0xbe, 0xa9, 0x67, 0x3f,\n\t0x2f, 0xe5, 0xef, 0x04, 0x2a, 0xb1, 0x79, 0x8f, 0x39, 0xcf, 0xbf, 0xdf, 0x82, 0x93, 0xc9, 0xec,\n\t0xa4, 0xec, 0x4d, 0x85, 0xf0, 0xf3, 0x78, 0xb1, 0x97, 0x74, 0xb1, 0xac, 0x80, 0x51, 0x21, 0xd3,\n\t0x91, 0x66, 0x92, 0xe1, 0xec, 0xea, 0x68, 0x47, 0x07, 0x1b, 0x75, 0xe1, 0x6f, 0xf0, 0x58, 0x4e,\n\t0xf2, 0xf4, 0x0e, 0x29, 0xd3, 0xd7, 0x33, 0x12, 0x75, 0x3f, 0x9e, 0x97, 0xa8, 0xbb, 0xe7, 0xf4,\n\t0xdc, 0xaf, 0xa9, 0xb4, 0xe9, 0xa3, 0xf9, 0x53, 0x89, 0x27, 0x45, 0xef, 0x9a, 0x2c, 0xfd, 0x35,\n\t0x95, 0x2c, 0xbd, 0x43, 0x44, 0x6e, 0x9e, 0x0a, 0xbd, 0x6b, 0x8a, 0x74, 0x2d, 0xcd, 0xf9, 0xf8,\n\t0xd1, 0xa4, 0x39, 0x37, 0x8e, 0x1a, 0x9e, 0x69, 0xfb, 0xe9, 0x2e, 0x47, 0x8d, 0xc1, 0xb7, 0xf3,\n\t0x61, 0xc3, 0x53, 0xba, 0x4f, 0xde, 0x57, 0x4a, 0xf7, 0x9b, 0x7a, 0x8a, 0x74, 0xd4, 0x25, 0x07,\n\t0x38, 0x25, 0xea, 0x31, 0x31, 0xfa, 0x4d, 0xfd, 0x00, 0x9c, 0xca, 0xe7, 0xab, 0xce, 0xb9, 0x34,\n\t0xdf, 0xcc, 0x23, 0x30, 0x95, 0x70, 0xfd, 0xc4, 0xf1, 0x24, 0x5c, 0x3f, 0x79, 0xe4, 0x09, 0xd7,\n\t0x4f, 0x1d, 0x43, 0xc2, 0xf5, 0x87, 0x8e, 0x31, 0xe1, 0xfa, 0x4d, 0xe6, 0x1c, 0xc5, 0x03, 0x40,\n\t0x89, 0x08, 0xe2, 0x4f, 0xe5, 0xc4, 0x4f, 0x4b, 0x47, 0x89, 0xe2, 0x1f, 0xa7, 0x50, 0x38, 0x66,\n\t0x95, 0x91, 0xc8, 0x7d, 0xfa, 0x01, 0x24, 0x72, 0x5f, 0x8b, 0x13, 0xb9, 0x9f, 0xce, 0x1f, 0xea,\n\t0x8c, 0xe7, 0x34, 0x39, 0xe9, 0xdb, 0x6f, 0xea, 0x69, 0xd7, 0x1f, 0xee, 0x60, 0x05, 0xcb, 0x52,\n\t0x28, 0x77, 0x48, 0xb6, 0xfe, 0x2a, 0x4f, 0xb6, 0xfe, 0x48, 0xfe, 0x4e, 0x9e, 0x3c, 0xee, 0x8c,\n\t0x14, 0xeb, 0xb4, 0x5d, 0x2a, 0xf6, 0x2a, 0x8b, 0x95, 0x9e, 0xd3, 0x2e, 0x15, 0xbc, 0x35, 0xdd,\n\t0x2e, 0x85, 0xc2, 0x31, 0x2b, 0xfb, 0x07, 0x0b, 0x70, 0xb6, 0xf3, 0x7a, 0x8b, 0xb5, 0xe4, 0x95,\n\t0xd8, 0x21, 0x20, 0xa1, 0x25, 0xe7, 0x77, 0xb6, 0x98, 0xaa, 0xe7, 0x78, 0x90, 0x97, 0x61, 0x52,\n\t0xbd, 0xc3, 0x69, 0xb8, 0xb5, 0xbd, 0xb5, 0xf8, 0x9a, 0xac, 0x22, 0x27, 0x54, 0x93, 0x04, 0x38,\n\t0x5d, 0x06, 0xcd, 0xc1, 0xb8, 0x01, 0x5c, 0x59, 0x14, 0x77, 0xb3, 0x38, 0x3a, 0xb7, 0x89, 0xc6,\n\t0x49, 0x7a, 0xfb, 0x4b, 0x16, 0x3c, 0x94, 0x93, 0xa9, 0xb4, 0xe7, 0x70, 0x87, 0x9b, 0x30, 0xde,\n\t0x32, 0x8b, 0x76, 0x89, 0xd0, 0x6a, 0xe4, 0x43, 0x55, 0x6d, 0x4d, 0x20, 0x70, 0x92, 0xa9, 0xfd,\n\t0xb3, 0x05, 0x38, 0xd3, 0xd1, 0xb1, 0x14, 0x61, 0x38, 0xb5, 0xd5, 0x0c, 0x9d, 0x85, 0x80, 0xd4,\n\t0x89, 0x17, 0xb9, 0x4e, 0xa3, 0xda, 0x22, 0x35, 0xcd, 0xce, 0xc1, 0x3c, 0x34, 0x2f, 0xaf, 0x56,\n\t0xe7, 0xd2, 0x14, 0x38, 0xa7, 0x24, 0x5a, 0x06, 0x94, 0xc6, 0x88, 0x11, 0x66, 0x51, 0xf7, 0xd3,\n\t0xfc, 0x70, 0x46, 0x09, 0xf4, 0x01, 0x18, 0x55, 0x0e, 0xab, 0xda, 0x88, 0xb3, 0x8d, 0x1d, 0xeb,\n\t0x08, 0x6c, 0xd2, 0xa1, 0x4b, 0x3c, 0x6d, 0x83, 0x48, 0xf0, 0x21, 0x8c, 0x22, 0xe3, 0x32, 0x27,\n\t0x83, 0x00, 0x63, 0x9d, 0x66, 0xfe, 0xa5, 0xdf, 0xfc, 0xc6, 0xd9, 0xf7, 0xfc, 0xf6, 0x37, 0xce,\n\t0xbe, 0xe7, 0xf7, 0xbe, 0x71, 0xf6, 0x3d, 0xdf, 0x7d, 0xef, 0xac, 0xf5, 0x9b, 0xf7, 0xce, 0x5a,\n\t0xbf, 0x7d, 0xef, 0xac, 0xf5, 0x7b, 0xf7, 0xce, 0x5a, 0x7f, 0x70, 0xef, 0xac, 0xf5, 0x85, 0x3f,\n\t0x3c, 0xfb, 0x9e, 0x37, 0x50, 0x1c, 0x40, 0xf4, 0x22, 0x1d, 0x9d, 0x8b, 0xbb, 0x97, 0xfe, 0x5f,\n\t0x00, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x6c, 0x51, 0x7f, 0x2c, 0x10, 0x01, 0x00,\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Partition))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Affinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Affinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Affinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodAntiAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.PodAntiAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.PodAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.PodAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NodeAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.NodeAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AttachedVolume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AttachedVolume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AttachedVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DevicePath)\n\tcopy(dAtA[i:], m.DevicePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DevicePath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AvoidPods) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AvoidPods) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AvoidPods) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferAvoidPods) > 0 {\n\t\tfor iNdEx := len(m.PreferAvoidPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferAvoidPods[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Kind != nil {\n\t\ti -= len(*m.Kind)\n\t\tcopy(dAtA[i:], *m.Kind)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Kind)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.ReadOnly != nil {\n\t\ti--\n\t\tif *m.ReadOnly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.CachingMode != nil {\n\t\ti -= len(*m.CachingMode)\n\t\tcopy(dAtA[i:], *m.CachingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CachingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.DataDiskURI)\n\tcopy(dAtA[i:], m.DataDiskURI)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DataDiskURI)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.DiskName)\n\tcopy(dAtA[i:], m.DiskName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DiskName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureFilePersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureFilePersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureFilePersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretNamespace != nil {\n\t\ti -= len(*m.SecretNamespace)\n\t\tcopy(dAtA[i:], *m.SecretNamespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SecretNamespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.ShareName)\n\tcopy(dAtA[i:], m.ShareName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShareName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureFileVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureFileVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureFileVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.ShareName)\n\tcopy(dAtA[i:], m.ShareName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShareName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Binding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Binding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Binding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeExpandSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodeExpandSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.ControllerExpandSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.ControllerExpandSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodePublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.NodeStageSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodeStageSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.ControllerPublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.ControllerPublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tkeysForVolumeAttributes := make([]string, 0, len(m.VolumeAttributes))\n\t\tfor k := range m.VolumeAttributes {\n\t\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\t\tfor iNdEx := len(keysForVolumeAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.VolumeAttributes[string(keysForVolumeAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForVolumeAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForVolumeAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForVolumeAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.VolumeHandle)\n\tcopy(dAtA[i:], m.VolumeHandle)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeHandle)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodePublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodePublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tkeysForVolumeAttributes := make([]string, 0, len(m.VolumeAttributes))\n\t\tfor k := range m.VolumeAttributes {\n\t\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\t\tfor iNdEx := len(keysForVolumeAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.VolumeAttributes[string(keysForVolumeAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForVolumeAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForVolumeAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForVolumeAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ReadOnly != nil {\n\t\ti--\n\t\tif *m.ReadOnly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Capabilities) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Capabilities) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Capabilities) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drop) > 0 {\n\t\tfor iNdEx := len(m.Drop) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Drop[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Drop[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Drop[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Add) > 0 {\n\t\tfor iNdEx := len(m.Add) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Add[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Add[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Add[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CephFSPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CephFSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CephFSPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SecretFile)\n\tcopy(dAtA[i:], m.SecretFile)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretFile)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Monitors) > 0 {\n\t\tfor iNdEx := len(m.Monitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Monitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Monitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Monitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CephFSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CephFSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CephFSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SecretFile)\n\tcopy(dAtA[i:], m.SecretFile)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretFile)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Monitors) > 0 {\n\t\tfor iNdEx := len(m.Monitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Monitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Monitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Monitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CinderPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CinderPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CinderPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CinderVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CinderVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CinderVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClaimSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClaimSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClaimSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResourceClaimTemplateName != nil {\n\t\ti -= len(*m.ResourceClaimTemplateName)\n\t\tcopy(dAtA[i:], *m.ResourceClaimTemplateName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceClaimTemplateName)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceClaimName != nil {\n\t\ti -= len(*m.ResourceClaimName)\n\t\tcopy(dAtA[i:], *m.ResourceClaimName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceClaimName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClientIPConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClientIPConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClientIPConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentStatusList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentStatusList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentStatusList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMap) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMap) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMap) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Immutable != nil {\n\t\ti--\n\t\tif *m.Immutable {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.BinaryData) > 0 {\n\t\tkeysForBinaryData := make([]string, 0, len(m.BinaryData))\n\t\tfor k := range m.BinaryData {\n\t\t\tkeysForBinaryData = append(keysForBinaryData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForBinaryData)\n\t\tfor iNdEx := len(keysForBinaryData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.BinaryData[string(keysForBinaryData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\tif v != nil {\n\t\t\t\ti -= len(v)\n\t\t\t\tcopy(dAtA[i:], v)\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\t\ti--\n\t\t\t\tdAtA[i] = 0x12\n\t\t\t}\n\t\t\ti -= len(keysForBinaryData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForBinaryData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForBinaryData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Data) > 0 {\n\t\tkeysForData := make([]string, 0, len(m.Data))\n\t\tfor k := range m.Data {\n\t\t\tkeysForData = append(keysForData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\t\tfor iNdEx := len(keysForData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Data[string(keysForData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapEnvSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapEnvSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapEnvSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapKeySelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapKeySelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapKeySelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapNodeConfigSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapNodeConfigSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapNodeConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.KubeletConfigKey)\n\tcopy(dAtA[i:], m.KubeletConfigKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeletConfigKey)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Container) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Container) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Container) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor iNdEx := len(m.ResizePolicy) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResizePolicy[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\t{\n\t\t\tsize, err := m.StartupProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor iNdEx := len(m.VolumeDevices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeDevices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xaa\n\t\t}\n\t}\n\ti -= len(m.TerminationMessagePolicy)\n\tcopy(dAtA[i:], m.TerminationMessagePolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePolicy)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xa2\n\tif len(m.EnvFrom) > 0 {\n\t\tfor iNdEx := len(m.EnvFrom) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EnvFrom[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x90\n\ti--\n\tif m.StdinOnce {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x88\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x80\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\ti -= len(m.ImagePullPolicy)\n\tcopy(dAtA[i:], m.ImagePullPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImagePullPolicy)))\n\ti--\n\tdAtA[i] = 0x72\n\ti -= len(m.TerminationMessagePath)\n\tcopy(dAtA[i:], m.TerminationMessagePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePath)))\n\ti--\n\tdAtA[i] = 0x6a\n\tif m.Lifecycle != nil {\n\t\t{\n\t\t\tsize, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.ReadinessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.ReadinessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.LivenessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.LivenessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor iNdEx := len(m.VolumeMounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeMounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Env) > 0 {\n\t\tfor iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.WorkingDir)\n\tcopy(dAtA[i:], m.WorkingDir)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WorkingDir)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Args) > 0 {\n\t\tfor iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Args[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Args[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerImage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerImage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerImage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.SizeBytes))\n\ti--\n\tdAtA[i] = 0x10\n\tif len(m.Names) > 0 {\n\t\tfor iNdEx := len(m.Names) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Names[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Names[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Names[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.HostIP)\n\tcopy(dAtA[i:], m.HostIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HostIP)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ContainerPort))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HostPort))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResizePolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResizePolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResizePolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.RestartPolicy)\n\tcopy(dAtA[i:], m.RestartPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RestartPolicy)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ResourceName)\n\tcopy(dAtA[i:], m.ResourceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerState) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerState) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerState) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminated != nil {\n\t\t{\n\t\t\tsize, err := m.Terminated.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Running != nil {\n\t\t{\n\t\t\tsize, err := m.Running.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Waiting != nil {\n\t\t{\n\t\t\tsize, err := m.Waiting.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateRunning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateRunning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateRunning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateTerminated) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateTerminated) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateTerminated) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ContainerID)\n\tcopy(dAtA[i:], m.ContainerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerID)))\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.FinishedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Signal))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExitCode))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateWaiting) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateWaiting) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateWaiting) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tkeysForAllocatedResources := make([]string, 0, len(m.AllocatedResources))\n\t\tfor k := range m.AllocatedResources {\n\t\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\t\tfor iNdEx := len(keysForAllocatedResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AllocatedResources[ResourceName(keysForAllocatedResources[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatedResources[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatedResources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatedResources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.Started != nil {\n\t\ti--\n\t\tif *m.Started {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.ContainerID)\n\tcopy(dAtA[i:], m.ContainerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerID)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.ImageID)\n\tcopy(dAtA[i:], m.ImageID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImageID)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.RestartCount))\n\ti--\n\tdAtA[i] = 0x28\n\ti--\n\tif m.Ready {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.LastTerminationState.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.State.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonEndpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonEndpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonEndpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIVolumeFile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIVolumeFile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIVolumeFile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Mode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Mode))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceFieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.FieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EmptyDirVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EmptyDirVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EmptyDirVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SizeLimit != nil {\n\t\t{\n\t\t\tsize, err := m.SizeLimit.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Medium)\n\tcopy(dAtA[i:], m.Medium)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Medium)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSubset) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSubset) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSubset) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.NotReadyAddresses) > 0 {\n\t\tfor iNdEx := len(m.NotReadyAddresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NotReadyAddresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Addresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Endpoints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Subsets) > 0 {\n\t\tfor iNdEx := len(m.Subsets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subsets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointsList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointsList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointsList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvFromSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvFromSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvFromSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ConfigMapRef != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMapRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Prefix)\n\tcopy(dAtA[i:], m.Prefix)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Prefix)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvVar) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvVar) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvVar) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ValueFrom != nil {\n\t\t{\n\t\t\tsize, err := m.ValueFrom.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvVarSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvVarSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvVarSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretKeyRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretKeyRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ConfigMapKeyRef != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMapKeyRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceFieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.FieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralContainer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralContainer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralContainer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetContainerName)\n\tcopy(dAtA[i:], m.TargetContainerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetContainerName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.EphemeralContainerCommon.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralContainerCommon) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralContainerCommon) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralContainerCommon) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor iNdEx := len(m.ResizePolicy) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResizePolicy[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\t{\n\t\t\tsize, err := m.StartupProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor iNdEx := len(m.VolumeDevices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeDevices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xaa\n\t\t}\n\t}\n\ti -= len(m.TerminationMessagePolicy)\n\tcopy(dAtA[i:], m.TerminationMessagePolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePolicy)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xa2\n\tif len(m.EnvFrom) > 0 {\n\t\tfor iNdEx := len(m.EnvFrom) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EnvFrom[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x90\n\ti--\n\tif m.StdinOnce {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x88\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x80\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\ti -= len(m.ImagePullPolicy)\n\tcopy(dAtA[i:], m.ImagePullPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImagePullPolicy)))\n\ti--\n\tdAtA[i] = 0x72\n\ti -= len(m.TerminationMessagePath)\n\tcopy(dAtA[i:], m.TerminationMessagePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePath)))\n\ti--\n\tdAtA[i] = 0x6a\n\tif m.Lifecycle != nil {\n\t\t{\n\t\t\tsize, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.ReadinessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.ReadinessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.LivenessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.LivenessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor iNdEx := len(m.VolumeMounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeMounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Env) > 0 {\n\t\tfor iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.WorkingDir)\n\tcopy(dAtA[i:], m.WorkingDir)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WorkingDir)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Args) > 0 {\n\t\tfor iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Args[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Args[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VolumeClaimTemplate != nil {\n\t\t{\n\t\t\tsize, err := m.VolumeClaimTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x7a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x72\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x62\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x40\n\t{\n\t\tsize, err := m.LastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.FirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.InvolvedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Component)\n\tcopy(dAtA[i:], m.Component)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Component)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FCVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FCVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FCVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.WWIDs) > 0 {\n\t\tfor iNdEx := len(m.WWIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.WWIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.WWIDs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WWIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Lun != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Lun))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.TargetWWNs) > 0 {\n\t\tfor iNdEx := len(m.TargetWWNs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TargetWWNs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TargetWWNs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetWWNs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlexPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlexPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlexPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tkeysForOptions := make([]string, 0, len(m.Options))\n\t\tfor k := range m.Options {\n\t\t\tkeysForOptions = append(keysForOptions, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\t\tfor iNdEx := len(keysForOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Options[string(keysForOptions[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlexVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlexVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlexVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tkeysForOptions := make([]string, 0, len(m.Options))\n\t\tfor k := range m.Options {\n\t\t\tkeysForOptions = append(keysForOptions, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\t\tfor iNdEx := len(keysForOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Options[string(keysForOptions[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlockerVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlockerVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlockerVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DatasetUUID)\n\tcopy(dAtA[i:], m.DatasetUUID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DatasetUUID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.DatasetName)\n\tcopy(dAtA[i:], m.DatasetName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DatasetName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Partition))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PDName)\n\tcopy(dAtA[i:], m.PDName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PDName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GRPCAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GRPCAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GRPCAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\ti -= len(*m.Service)\n\t\tcopy(dAtA[i:], *m.Service)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Service)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GitRepoVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GitRepoVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GitRepoVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Directory)\n\tcopy(dAtA[i:], m.Directory)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Directory)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Revision)\n\tcopy(dAtA[i:], m.Revision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Revision)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Repository)\n\tcopy(dAtA[i:], m.Repository)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Repository)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndpointsNamespace != nil {\n\t\ti -= len(*m.EndpointsNamespace)\n\t\tcopy(dAtA[i:], *m.EndpointsNamespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.EndpointsNamespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.EndpointsName)\n\tcopy(dAtA[i:], m.EndpointsName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EndpointsName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GlusterfsVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GlusterfsVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GlusterfsVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.EndpointsName)\n\tcopy(dAtA[i:], m.EndpointsName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EndpointsName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPGetAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPGetAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPGetAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.HTTPHeaders) > 0 {\n\t\tfor iNdEx := len(m.HTTPHeaders) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HTTPHeaders[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.Scheme)\n\tcopy(dAtA[i:], m.Scheme)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scheme)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPHeader) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPHeader) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostAlias) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostAlias) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostAlias) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Hostnames) > 0 {\n\t\tfor iNdEx := len(m.Hostnames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hostnames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hostnames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostnames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostPathVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostPathVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostPathVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Type != nil {\n\t\ti -= len(*m.Type)\n\t\tcopy(dAtA[i:], *m.Type)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ISCSIPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ISCSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ISCSIPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InitiatorName != nil {\n\t\ti -= len(*m.InitiatorName)\n\t\tcopy(dAtA[i:], *m.InitiatorName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InitiatorName)))\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\ti--\n\tif m.SessionCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti--\n\tif m.DiscoveryCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif len(m.Portals) > 0 {\n\t\tfor iNdEx := len(m.Portals) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Portals[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Portals[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Portals[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ISCSIInterface)\n\tcopy(dAtA[i:], m.ISCSIInterface)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ISCSIInterface)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Lun))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.IQN)\n\tcopy(dAtA[i:], m.IQN)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IQN)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.TargetPortal)\n\tcopy(dAtA[i:], m.TargetPortal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetPortal)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ISCSIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ISCSIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ISCSIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InitiatorName != nil {\n\t\ti -= len(*m.InitiatorName)\n\t\tcopy(dAtA[i:], *m.InitiatorName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InitiatorName)))\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\ti--\n\tif m.SessionCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti--\n\tif m.DiscoveryCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif len(m.Portals) > 0 {\n\t\tfor iNdEx := len(m.Portals) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Portals[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Portals[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Portals[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ISCSIInterface)\n\tcopy(dAtA[i:], m.ISCSIInterface)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ISCSIInterface)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Lun))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.IQN)\n\tcopy(dAtA[i:], m.IQN)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IQN)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.TargetPortal)\n\tcopy(dAtA[i:], m.TargetPortal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetPortal)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *KeyToPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *KeyToPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *KeyToPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Mode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Mode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Lifecycle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lifecycle) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lifecycle) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreStop != nil {\n\t\t{\n\t\t\tsize, err := m.PreStop.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PostStart != nil {\n\t\t{\n\t\t\tsize, err := m.PostStart.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LifecycleHandler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LifecycleHandler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LifecycleHandler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TCPSocket != nil {\n\t\t{\n\t\t\tsize, err := m.TCPSocket.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.HTTPGet != nil {\n\t\t{\n\t\t\tsize, err := m.HTTPGet.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Exec != nil {\n\t\t{\n\t\t\tsize, err := m.Exec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRange) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRange) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRange) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeItem) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeItem) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MaxLimitRequestRatio) > 0 {\n\t\tkeysForMaxLimitRequestRatio := make([]string, 0, len(m.MaxLimitRequestRatio))\n\t\tfor k := range m.MaxLimitRequestRatio {\n\t\t\tkeysForMaxLimitRequestRatio = append(keysForMaxLimitRequestRatio, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMaxLimitRequestRatio)\n\t\tfor iNdEx := len(keysForMaxLimitRequestRatio) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.MaxLimitRequestRatio[ResourceName(keysForMaxLimitRequestRatio[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMaxLimitRequestRatio[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMaxLimitRequestRatio[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMaxLimitRequestRatio[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.DefaultRequest) > 0 {\n\t\tkeysForDefaultRequest := make([]string, 0, len(m.DefaultRequest))\n\t\tfor k := range m.DefaultRequest {\n\t\t\tkeysForDefaultRequest = append(keysForDefaultRequest, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefaultRequest)\n\t\tfor iNdEx := len(keysForDefaultRequest) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DefaultRequest[ResourceName(keysForDefaultRequest[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDefaultRequest[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDefaultRequest[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDefaultRequest[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Default) > 0 {\n\t\tkeysForDefault := make([]string, 0, len(m.Default))\n\t\tfor k := range m.Default {\n\t\t\tkeysForDefault = append(keysForDefault, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefault)\n\t\tfor iNdEx := len(keysForDefault) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Default[ResourceName(keysForDefault[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDefault[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDefault[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDefault[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Min) > 0 {\n\t\tkeysForMin := make([]string, 0, len(m.Min))\n\t\tfor k := range m.Min {\n\t\t\tkeysForMin = append(keysForMin, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMin)\n\t\tfor iNdEx := len(keysForMin) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Min[ResourceName(keysForMin[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMin[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMin[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMin[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Max) > 0 {\n\t\tkeysForMax := make([]string, 0, len(m.Max))\n\t\tfor k := range m.Max {\n\t\t\tkeysForMax = append(keysForMax, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMax)\n\t\tfor iNdEx := len(keysForMax) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Max[ResourceName(keysForMax[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMax[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMax[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMax[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor iNdEx := len(m.Limits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Limits[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *List) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *List) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *List) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NFSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NFSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NFSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Server)\n\tcopy(dAtA[i:], m.Server)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Server)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Namespace) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Namespace) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Finalizers) > 0 {\n\t\tfor iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Finalizers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Finalizers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Node) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Node) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Address)\n\tcopy(dAtA[i:], m.Address)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Address)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\t{\n\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastHeartbeatTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeConfigSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeConfigSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeConfigStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeConfigStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.LastKnownGood != nil {\n\t\t{\n\t\t\tsize, err := m.LastKnownGood.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Active != nil {\n\t\t{\n\t\t\tsize, err := m.Active.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Assigned != nil {\n\t\t{\n\t\t\tsize, err := m.Assigned.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeDaemonEndpoints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeDaemonEndpoints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeDaemonEndpoints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.KubeletEndpoint.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelectorTerms) > 0 {\n\t\tfor iNdEx := len(m.NodeSelectorTerms) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NodeSelectorTerms[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelectorTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelectorTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelectorTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchFields) > 0 {\n\t\tfor iNdEx := len(m.MatchFields) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchFields[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodCIDRs) > 0 {\n\t\tfor iNdEx := len(m.PodCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PodCIDRs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PodCIDRs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodCIDRs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif m.ConfigSource != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigSource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.Taints) > 0 {\n\t\tfor iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.Unschedulable {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.ProviderID)\n\tcopy(dAtA[i:], m.ProviderID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.DoNotUseExternalID)\n\tcopy(dAtA[i:], m.DoNotUseExternalID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DoNotUseExternalID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PodCIDR)\n\tcopy(dAtA[i:], m.PodCIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodCIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Config != nil {\n\t\t{\n\t\t\tsize, err := m.Config.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.VolumesAttached) > 0 {\n\t\tfor iNdEx := len(m.VolumesAttached) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumesAttached[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif len(m.VolumesInUse) > 0 {\n\t\tfor iNdEx := len(m.VolumesInUse) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumesInUse[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumesInUse[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumesInUse[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\tif len(m.Images) > 0 {\n\t\tfor iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.NodeInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.DaemonEndpoints.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Addresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Allocatable) > 0 {\n\t\tkeysForAllocatable := make([]string, 0, len(m.Allocatable))\n\t\tfor k := range m.Allocatable {\n\t\t\tkeysForAllocatable = append(keysForAllocatable, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatable)\n\t\tfor iNdEx := len(keysForAllocatable) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Allocatable[ResourceName(keysForAllocatable[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatable[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatable[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatable[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSystemInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSystemInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSystemInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Architecture)\n\tcopy(dAtA[i:], m.Architecture)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Architecture)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.OperatingSystem)\n\tcopy(dAtA[i:], m.OperatingSystem)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.OperatingSystem)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.KubeProxyVersion)\n\tcopy(dAtA[i:], m.KubeProxyVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeProxyVersion)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.KubeletVersion)\n\tcopy(dAtA[i:], m.KubeletVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeletVersion)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.ContainerRuntimeVersion)\n\tcopy(dAtA[i:], m.ContainerRuntimeVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerRuntimeVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.OSImage)\n\tcopy(dAtA[i:], m.OSImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.OSImage)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.KernelVersion)\n\tcopy(dAtA[i:], m.KernelVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KernelVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.BootID)\n\tcopy(dAtA[i:], m.BootID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.BootID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.SystemUUID)\n\tcopy(dAtA[i:], m.SystemUUID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SystemUUID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MachineID)\n\tcopy(dAtA[i:], m.MachineID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MachineID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectFieldSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectFieldSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectFieldSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldPath)\n\tcopy(dAtA[i:], m.FieldPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldPath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldPath)\n\tcopy(dAtA[i:], m.FieldPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldPath)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DataSourceRef != nil {\n\t\t{\n\t\t\tsize, err := m.DataSourceRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.DataSource != nil {\n\t\t{\n\t\t\tsize, err := m.DataSource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.VolumeMode != nil {\n\t\ti -= len(*m.VolumeMode)\n\t\tcopy(dAtA[i:], *m.VolumeMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.StorageClassName != nil {\n\t\ti -= len(*m.StorageClassName)\n\t\tcopy(dAtA[i:], *m.StorageClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.StorageClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResizeStatus != nil {\n\t\ti -= len(*m.ResizeStatus)\n\t\tcopy(dAtA[i:], *m.ResizeStatus)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResizeStatus)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tkeysForAllocatedResources := make([]string, 0, len(m.AllocatedResources))\n\t\tfor k := range m.AllocatedResources {\n\t\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\t\tfor iNdEx := len(keysForAllocatedResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AllocatedResources[ResourceName(keysForAllocatedResources[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatedResources[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatedResources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatedResources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.ClaimName)\n\tcopy(dAtA[i:], m.ClaimName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClaimName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CSI != nil {\n\t\t{\n\t\t\tsize, err := m.CSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.StorageOS != nil {\n\t\t{\n\t\t\tsize, err := m.StorageOS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.Local != nil {\n\t\t{\n\t\t\tsize, err := m.Local.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.ScaleIO != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleIO.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x9a\n\t}\n\tif m.PortworxVolume != nil {\n\t\t{\n\t\t\tsize, err := m.PortworxVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.PhotonPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.AzureDisk != nil {\n\t\t{\n\t\t\tsize, err := m.AzureDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Quobyte != nil {\n\t\t{\n\t\t\tsize, err := m.Quobyte.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.VsphereVolume != nil {\n\t\t{\n\t\t\tsize, err := m.VsphereVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\tif m.AzureFile != nil {\n\t\t{\n\t\t\tsize, err := m.AzureFile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif m.FlexVolume != nil {\n\t\t{\n\t\t\tsize, err := m.FlexVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.Flocker != nil {\n\t\t{\n\t\t\tsize, err := m.Flocker.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.FC != nil {\n\t\t{\n\t\t\tsize, err := m.FC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.CephFS != nil {\n\t\t{\n\t\t\tsize, err := m.CephFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.Cinder != nil {\n\t\t{\n\t\t\tsize, err := m.Cinder.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.ISCSI != nil {\n\t\t{\n\t\t\tsize, err := m.ISCSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.RBD != nil {\n\t\t{\n\t\t\tsize, err := m.RBD.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NFS != nil {\n\t\t{\n\t\t\tsize, err := m.NFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Glusterfs != nil {\n\t\t{\n\t\t\tsize, err := m.Glusterfs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.HostPath != nil {\n\t\t{\n\t\t\tsize, err := m.HostPath.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\t{\n\t\t\tsize, err := m.AWSElasticBlockStore.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.GCEPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.NodeAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.VolumeMode != nil {\n\t\ti -= len(*m.VolumeMode)\n\t\tcopy(dAtA[i:], *m.VolumeMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.PersistentVolumeReclaimPolicy)\n\tcopy(dAtA[i:], m.PersistentVolumeReclaimPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PersistentVolumeReclaimPolicy)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.ClaimRef != nil {\n\t\t{\n\t\t\tsize, err := m.ClaimRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PersistentVolumeSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PdID)\n\tcopy(dAtA[i:], m.PdID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PdID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Pod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Pod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Pod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.RequiredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAffinityTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAffinityTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.TopologyKey)\n\tcopy(dAtA[i:], m.TopologyKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKey)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAntiAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAntiAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAntiAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.RequiredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAttachOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAttachOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAttachOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti--\n\tif m.Stderr {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Stdout {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDNSConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDNSConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDNSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tfor iNdEx := len(m.Options) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Options[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor iNdEx := len(m.Searches) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Searches[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Searches[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Searches[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Nameservers) > 0 {\n\t\tfor iNdEx := len(m.Nameservers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Nameservers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Nameservers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Nameservers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDNSConfigOption) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDNSConfigOption) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDNSConfigOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\ti -= len(*m.Value)\n\t\tcopy(dAtA[i:], *m.Value)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodExecOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodExecOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodExecOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti--\n\tif m.Stderr {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Stdout {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodIP) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodIP) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodIP) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodLogOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodLogOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.InsecureSkipTLSVerifyBackend {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x48\n\tif m.LimitBytes != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LimitBytes))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.TailLines != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TailLines))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\ti--\n\tif m.Timestamps {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SinceTime != nil {\n\t\t{\n\t\t\tsize, err := m.SinceTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.SinceSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SinceSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti--\n\tif m.Previous {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Follow {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodOS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodOS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodOS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodPortForwardOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodPortForwardOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodPortForwardOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.Ports[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodReadinessGate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodReadinessGate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodReadinessGate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ConditionType)\n\tcopy(dAtA[i:], m.ConditionType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConditionType)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingGate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingGate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingGate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SeccompProfile != nil {\n\t\t{\n\t\t\tsize, err := m.SeccompProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.FSGroupChangePolicy != nil {\n\t\ti -= len(*m.FSGroupChangePolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupChangePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupChangePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.WindowsOptions != nil {\n\t\t{\n\t\t\tsize, err := m.WindowsOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor iNdEx := len(m.Sysctls) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Sysctls[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif m.RunAsGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.FSGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FSGroup))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor iNdEx := len(m.SupplementalGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x20\n\t\t}\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\ti--\n\t\tif *m.RunAsNonRoot {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.RunAsUser != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsUser))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.SELinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSignature) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSignature) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSignature) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodController != nil {\n\t\t{\n\t\t\tsize, err := m.PodController.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor iNdEx := len(m.ResourceClaims) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif len(m.SchedulingGates) > 0 {\n\t\tfor iNdEx := len(m.SchedulingGates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.SchedulingGates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0xb2\n\t\t}\n\t}\n\tif m.HostUsers != nil {\n\t\ti--\n\t\tif *m.HostUsers {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0xa8\n\t}\n\tif m.OS != nil {\n\t\t{\n\t\t\tsize, err := m.OS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.SetHostnameAsFQDN != nil {\n\t\ti--\n\t\tif *m.SetHostnameAsFQDN {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0x98\n\t}\n\tif len(m.EphemeralContainers) > 0 {\n\t\tfor iNdEx := len(m.EphemeralContainers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EphemeralContainers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x92\n\t\t}\n\t}\n\tif len(m.TopologySpreadConstraints) > 0 {\n\t\tfor iNdEx := len(m.TopologySpreadConstraints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TopologySpreadConstraints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8a\n\t\t}\n\t}\n\tif len(m.Overhead) > 0 {\n\t\tkeysForOverhead := make([]string, 0, len(m.Overhead))\n\t\tfor k := range m.Overhead {\n\t\t\tkeysForOverhead = append(keysForOverhead, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOverhead)\n\t\tfor iNdEx := len(keysForOverhead) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Overhead[ResourceName(keysForOverhead[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOverhead[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOverhead[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOverhead[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x82\n\t\t}\n\t}\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xfa\n\t}\n\tif m.EnableServiceLinks != nil {\n\t\ti--\n\t\tif *m.EnableServiceLinks {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xf0\n\t}\n\tif m.RuntimeClassName != nil {\n\t\ti -= len(*m.RuntimeClassName)\n\t\tcopy(dAtA[i:], *m.RuntimeClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RuntimeClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xea\n\t}\n\tif len(m.ReadinessGates) > 0 {\n\t\tfor iNdEx := len(m.ReadinessGates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ReadinessGates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xe2\n\t\t}\n\t}\n\tif m.ShareProcessNamespace != nil {\n\t\ti--\n\t\tif *m.ShareProcessNamespace {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd8\n\t}\n\tif m.DNSConfig != nil {\n\t\t{\n\t\t\tsize, err := m.DNSConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd2\n\t}\n\tif m.Priority != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Priority))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc8\n\t}\n\ti -= len(m.PriorityClassName)\n\tcopy(dAtA[i:], m.PriorityClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PriorityClassName)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xc2\n\tif len(m.HostAliases) > 0 {\n\t\tfor iNdEx := len(m.HostAliases) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HostAliases[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xb2\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\ti--\n\t\tif *m.AutomountServiceAccountToken {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa8\n\t}\n\tif len(m.InitContainers) > 0 {\n\t\tfor iNdEx := len(m.InitContainers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.InitContainers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa2\n\t\t}\n\t}\n\ti -= len(m.SchedulerName)\n\tcopy(dAtA[i:], m.SchedulerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SchedulerName)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x9a\n\tif m.Affinity != nil {\n\t\t{\n\t\t\tsize, err := m.Affinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\ti -= len(m.Subdomain)\n\tcopy(dAtA[i:], m.Subdomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subdomain)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x8a\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x82\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor iNdEx := len(m.ImagePullSecrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ImagePullSecrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x7a\n\t\t}\n\t}\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\ti--\n\tif m.HostIPC {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x68\n\ti--\n\tif m.HostPID {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x60\n\ti--\n\tif m.HostNetwork {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.DeprecatedServiceAccount)\n\tcopy(dAtA[i:], m.DeprecatedServiceAccount)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DeprecatedServiceAccount)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.ServiceAccountName)\n\tcopy(dAtA[i:], m.ServiceAccountName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceAccountName)))\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.DNSPolicy)\n\tcopy(dAtA[i:], m.DNSPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DNSPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.ActiveDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TerminationGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.RestartPolicy)\n\tcopy(dAtA[i:], m.RestartPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RestartPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Volumes) > 0 {\n\t\tfor iNdEx := len(m.Volumes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Volumes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resize)\n\tcopy(dAtA[i:], m.Resize)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resize)))\n\ti--\n\tdAtA[i] = 0x72\n\tif len(m.EphemeralContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.EphemeralContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EphemeralContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif len(m.PodIPs) > 0 {\n\t\tfor iNdEx := len(m.PodIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PodIPs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\ti -= len(m.NominatedNodeName)\n\tcopy(dAtA[i:], m.NominatedNodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NominatedNodeName)))\n\ti--\n\tdAtA[i] = 0x5a\n\tif len(m.InitContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.InitContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.InitContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\ti -= len(m.QOSClass)\n\tcopy(dAtA[i:], m.QOSClass)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.QOSClass)))\n\ti--\n\tdAtA[i] = 0x4a\n\tif len(m.ContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.ContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.StartTime != nil {\n\t\t{\n\t\t\tsize, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.PodIP)\n\tcopy(dAtA[i:], m.PodIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodIP)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.HostIP)\n\tcopy(dAtA[i:], m.HostIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HostIP)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodStatusResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodStatusResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortworxVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortworxVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortworxVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Preconditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Preconditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Preconditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\ti -= len(*m.UID)\n\t\tcopy(dAtA[i:], *m.UID)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UID)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferAvoidPodsEntry) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferAvoidPodsEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.EvictionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.PodSignature.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferredSchedulingTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferredSchedulingTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Preference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Weight))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Probe) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Probe) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Probe) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TerminationGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FailureThreshold))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.SuccessThreshold))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.TimeoutSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ProbeHandler.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ProbeHandler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ProbeHandler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ProbeHandler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.GRPC != nil {\n\t\t{\n\t\t\tsize, err := m.GRPC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TCPSocket != nil {\n\t\t{\n\t\t\tsize, err := m.TCPSocket.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.HTTPGet != nil {\n\t\t{\n\t\t\tsize, err := m.HTTPGet.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Exec != nil {\n\t\t{\n\t\t\tsize, err := m.Exec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ProjectedVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ProjectedVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ProjectedVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Sources) > 0 {\n\t\tfor iNdEx := len(m.Sources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Sources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QuobyteVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QuobyteVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QuobyteVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Tenant)\n\tcopy(dAtA[i:], m.Tenant)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Tenant)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Volume)\n\tcopy(dAtA[i:], m.Volume)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Volume)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Registry)\n\tcopy(dAtA[i:], m.Registry)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Registry)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RBDPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RBDPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.Keyring)\n\tcopy(dAtA[i:], m.Keyring)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.RadosUser)\n\tcopy(dAtA[i:], m.RadosUser)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.RBDPool)\n\tcopy(dAtA[i:], m.RBDPool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.RBDImage)\n\tcopy(dAtA[i:], m.RBDImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.CephMonitors) > 0 {\n\t\tfor iNdEx := len(m.CephMonitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CephMonitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CephMonitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CephMonitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RBDVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.Keyring)\n\tcopy(dAtA[i:], m.Keyring)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.RadosUser)\n\tcopy(dAtA[i:], m.RadosUser)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.RBDPool)\n\tcopy(dAtA[i:], m.RBDPool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.RBDImage)\n\tcopy(dAtA[i:], m.RBDImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.CephMonitors) > 0 {\n\t\tfor iNdEx := len(m.CephMonitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CephMonitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CephMonitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CephMonitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RangeAllocation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RangeAllocation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Data != nil {\n\t\ti -= len(m.Data)\n\t\tcopy(dAtA[i:], m.Data)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Data)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Range)\n\tcopy(dAtA[i:], m.Range)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Range)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationController) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationController) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\tif m.Template != nil {\n\t\t{\n\t\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceFieldSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceFieldSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Divisor.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ContainerName)\n\tcopy(dAtA[i:], m.ContainerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuota) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuota) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScopeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ScopeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Scopes) > 0 {\n\t\tfor iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Scopes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Scopes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scopes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Hard) > 0 {\n\t\tkeysForHard := make([]string, 0, len(m.Hard))\n\t\tfor k := range m.Hard {\n\t\t\tkeysForHard = append(keysForHard, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\t\tfor iNdEx := len(keysForHard) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Hard[ResourceName(keysForHard[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForHard[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForHard[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForHard[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Used) > 0 {\n\t\tkeysForUsed := make([]string, 0, len(m.Used))\n\t\tfor k := range m.Used {\n\t\t\tkeysForUsed = append(keysForUsed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUsed)\n\t\tfor iNdEx := len(keysForUsed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Used[ResourceName(keysForUsed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUsed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUsed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUsed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Hard) > 0 {\n\t\tkeysForHard := make([]string, 0, len(m.Hard))\n\t\tfor k := range m.Hard {\n\t\t\tkeysForHard = append(keysForHard, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\t\tfor iNdEx := len(keysForHard) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Hard[ResourceName(keysForHard[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForHard[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForHard[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForHard[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRequirements) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Claims) > 0 {\n\t\tfor iNdEx := len(m.Claims) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Claims[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tkeysForRequests := make([]string, 0, len(m.Requests))\n\t\tfor k := range m.Requests {\n\t\t\tkeysForRequests = append(keysForRequests, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\t\tfor iNdEx := len(keysForRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Requests[ResourceName(keysForRequests[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForRequests[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForRequests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForRequests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Limits) > 0 {\n\t\tkeysForLimits := make([]string, 0, len(m.Limits))\n\t\tfor k := range m.Limits {\n\t\t\tkeysForLimits = append(keysForLimits, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\t\tfor iNdEx := len(keysForLimits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Limits[ResourceName(keysForLimits[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForLimits[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForLimits[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForLimits[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SELinuxOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SELinuxOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SELinuxOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Level)\n\tcopy(dAtA[i:], m.Level)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Level)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Role)\n\tcopy(dAtA[i:], m.Role)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Role)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x50\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.StorageMode)\n\tcopy(dAtA[i:], m.StorageMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.StoragePool)\n\tcopy(dAtA[i:], m.StoragePool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ProtectionDomain)\n\tcopy(dAtA[i:], m.ProtectionDomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.SSLEnabled {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.System)\n\tcopy(dAtA[i:], m.System)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.System)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Gateway)\n\tcopy(dAtA[i:], m.Gateway)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleIOVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleIOVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x50\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.StorageMode)\n\tcopy(dAtA[i:], m.StorageMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.StoragePool)\n\tcopy(dAtA[i:], m.StoragePool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ProtectionDomain)\n\tcopy(dAtA[i:], m.ProtectionDomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.SSLEnabled {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.System)\n\tcopy(dAtA[i:], m.System)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.System)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Gateway)\n\tcopy(dAtA[i:], m.Gateway)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScopeSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScopeSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScopeSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScopedResourceSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScopedResourceSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScopedResourceSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ScopeName)\n\tcopy(dAtA[i:], m.ScopeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ScopeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SeccompProfile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SeccompProfile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SeccompProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LocalhostProfile != nil {\n\t\ti -= len(*m.LocalhostProfile)\n\t\tcopy(dAtA[i:], *m.LocalhostProfile)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.LocalhostProfile)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Secret) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Secret) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Secret) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Immutable != nil {\n\t\ti--\n\t\tif *m.Immutable {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif len(m.StringData) > 0 {\n\t\tkeysForStringData := make([]string, 0, len(m.StringData))\n\t\tfor k := range m.StringData {\n\t\t\tkeysForStringData = append(keysForStringData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForStringData)\n\t\tfor iNdEx := len(keysForStringData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.StringData[string(keysForStringData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForStringData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForStringData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForStringData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Data) > 0 {\n\t\tkeysForData := make([]string, 0, len(m.Data))\n\t\tfor k := range m.Data {\n\t\t\tkeysForData = append(keysForData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\t\tfor iNdEx := len(keysForData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Data[string(keysForData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\tif v != nil {\n\t\t\t\ti -= len(v)\n\t\t\t\tcopy(dAtA[i:], v)\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\t\ti--\n\t\t\t\tdAtA[i] = 0x12\n\t\t\t}\n\t\t\ti -= len(keysForData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretEnvSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretEnvSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretKeySelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretKeySelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SeccompProfile != nil {\n\t\t{\n\t\t\tsize, err := m.SeccompProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.WindowsOptions != nil {\n\t\t{\n\t\t\tsize, err := m.WindowsOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.ProcMount != nil {\n\t\ti -= len(*m.ProcMount)\n\t\tcopy(dAtA[i:], *m.ProcMount)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ProcMount)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.RunAsGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\ti--\n\t\tif *m.AllowPrivilegeEscalation {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.ReadOnlyRootFilesystem != nil {\n\t\ti--\n\t\tif *m.ReadOnlyRootFilesystem {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\ti--\n\t\tif *m.RunAsNonRoot {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RunAsUser != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsUser))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.SELinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Privileged != nil {\n\t\ti--\n\t\tif *m.Privileged {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Capabilities != nil {\n\t\t{\n\t\t\tsize, err := m.Capabilities.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SerializedReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SerializedReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Reference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Service) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Service) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Service) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AutomountServiceAccountToken != nil {\n\t\ti--\n\t\tif *m.AutomountServiceAccountToken {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor iNdEx := len(m.ImagePullSecrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ImagePullSecrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Secrets) > 0 {\n\t\tfor iNdEx := len(m.Secrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Secrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountTokenProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountTokenProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountTokenProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServicePort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServicePort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServicePort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NodePort))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.TargetPort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InternalTrafficPolicy != nil {\n\t\ti -= len(*m.InternalTrafficPolicy)\n\t\tcopy(dAtA[i:], *m.InternalTrafficPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InternalTrafficPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.LoadBalancerClass != nil {\n\t\ti -= len(*m.LoadBalancerClass)\n\t\tcopy(dAtA[i:], *m.LoadBalancerClass)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.LoadBalancerClass)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.AllocateLoadBalancerNodePorts != nil {\n\t\ti--\n\t\tif *m.AllocateLoadBalancerNodePorts {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa0\n\t}\n\tif len(m.IPFamilies) > 0 {\n\t\tfor iNdEx := len(m.IPFamilies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.IPFamilies[iNdEx])\n\t\t\tcopy(dAtA[i:], m.IPFamilies[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPFamilies[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\tif len(m.ClusterIPs) > 0 {\n\t\tfor iNdEx := len(m.ClusterIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ClusterIPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ClusterIPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClusterIPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x92\n\t\t}\n\t}\n\tif m.IPFamilyPolicy != nil {\n\t\ti -= len(*m.IPFamilyPolicy)\n\t\tcopy(dAtA[i:], *m.IPFamilyPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IPFamilyPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.SessionAffinityConfig != nil {\n\t\t{\n\t\t\tsize, err := m.SessionAffinityConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\ti--\n\tif m.PublishNotReadyAddresses {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x68\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HealthCheckNodePort))\n\ti--\n\tdAtA[i] = 0x60\n\ti -= len(m.ExternalTrafficPolicy)\n\tcopy(dAtA[i:], m.ExternalTrafficPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalTrafficPolicy)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.ExternalName)\n\tcopy(dAtA[i:], m.ExternalName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalName)))\n\ti--\n\tdAtA[i] = 0x52\n\tif len(m.LoadBalancerSourceRanges) > 0 {\n\t\tfor iNdEx := len(m.LoadBalancerSourceRanges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.LoadBalancerSourceRanges[iNdEx])\n\t\t\tcopy(dAtA[i:], m.LoadBalancerSourceRanges[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerSourceRanges[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\ti -= len(m.LoadBalancerIP)\n\tcopy(dAtA[i:], m.LoadBalancerIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerIP)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.SessionAffinity)\n\tcopy(dAtA[i:], m.SessionAffinity)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SessionAffinity)))\n\ti--\n\tdAtA[i] = 0x3a\n\tif len(m.ExternalIPs) > 0 {\n\t\tfor iNdEx := len(m.ExternalIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ExternalIPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ExternalIPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalIPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.ClusterIP)\n\tcopy(dAtA[i:], m.ClusterIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClusterIP)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SessionAffinityConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SessionAffinityConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ClientIP != nil {\n\t\t{\n\t\t\tsize, err := m.ClientIP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageOSPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageOSPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.VolumeNamespace)\n\tcopy(dAtA[i:], m.VolumeNamespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeNamespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageOSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageOSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.VolumeNamespace)\n\tcopy(dAtA[i:], m.VolumeNamespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeNamespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Sysctl) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Sysctl) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Sysctl) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TCPSocketAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TCPSocketAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Taint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Taint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Taint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeAdded != nil {\n\t\t{\n\t\t\tsize, err := m.TimeAdded.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Effect)\n\tcopy(dAtA[i:], m.Effect)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Effect)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Toleration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Toleration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Toleration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TolerationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TolerationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.Effect)\n\tcopy(dAtA[i:], m.Effect)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Effect)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySelectorLabelRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySelectorLabelRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySelectorLabelRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySelectorTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySelectorTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySelectorTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchLabelExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchLabelExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySpreadConstraint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySpreadConstraint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySpreadConstraint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor iNdEx := len(m.MatchLabelKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MatchLabelKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MatchLabelKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MatchLabelKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.NodeTaintsPolicy != nil {\n\t\ti -= len(*m.NodeTaintsPolicy)\n\t\tcopy(dAtA[i:], *m.NodeTaintsPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeTaintsPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeAffinityPolicy != nil {\n\t\ti -= len(*m.NodeAffinityPolicy)\n\t\tcopy(dAtA[i:], *m.NodeAffinityPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeAffinityPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.MinDomains != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinDomains))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.WhenUnsatisfiable)\n\tcopy(dAtA[i:], m.WhenUnsatisfiable)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenUnsatisfiable)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.TopologyKey)\n\tcopy(dAtA[i:], m.TopologyKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKey)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxSkew))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypedLocalObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypedLocalObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypedLocalObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypedObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypedObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypedObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Volume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Volume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Volume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.VolumeSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeDevice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeDevice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeDevice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DevicePath)\n\tcopy(dAtA[i:], m.DevicePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DevicePath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeMount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeMount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeMount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SubPathExpr)\n\tcopy(dAtA[i:], m.SubPathExpr)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SubPathExpr)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.MountPropagation != nil {\n\t\ti -= len(*m.MountPropagation)\n\t\tcopy(dAtA[i:], *m.MountPropagation)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MountPropagation)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SubPath)\n\tcopy(dAtA[i:], m.SubPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SubPath)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.MountPath)\n\tcopy(dAtA[i:], m.MountPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountPath)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Required != nil {\n\t\t{\n\t\t\tsize, err := m.Required.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccountToken != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccountToken.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.DownwardAPI != nil {\n\t\t{\n\t\t\tsize, err := m.DownwardAPI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Secret != nil {\n\t\t{\n\t\t\tsize, err := m.Secret.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ephemeral != nil {\n\t\t{\n\t\t\tsize, err := m.Ephemeral.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xea\n\t}\n\tif m.CSI != nil {\n\t\t{\n\t\t\tsize, err := m.CSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xe2\n\t}\n\tif m.StorageOS != nil {\n\t\t{\n\t\t\tsize, err := m.StorageOS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xda\n\t}\n\tif m.Projected != nil {\n\t\t{\n\t\t\tsize, err := m.Projected.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd2\n\t}\n\tif m.ScaleIO != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleIO.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xca\n\t}\n\tif m.PortworxVolume != nil {\n\t\t{\n\t\t\tsize, err := m.PortworxVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.PhotonPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xba\n\t}\n\tif m.AzureDisk != nil {\n\t\t{\n\t\t\tsize, err := m.AzureDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.Quobyte != nil {\n\t\t{\n\t\t\tsize, err := m.Quobyte.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.VsphereVolume != nil {\n\t\t{\n\t\t\tsize, err := m.VsphereVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x9a\n\t}\n\tif m.AzureFile != nil {\n\t\t{\n\t\t\tsize, err := m.AzureFile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\tif m.FC != nil {\n\t\t{\n\t\t\tsize, err := m.FC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.DownwardAPI != nil {\n\t\t{\n\t\t\tsize, err := m.DownwardAPI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Flocker != nil {\n\t\t{\n\t\t\tsize, err := m.Flocker.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.CephFS != nil {\n\t\t{\n\t\t\tsize, err := m.CephFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\tif m.Cinder != nil {\n\t\t{\n\t\t\tsize, err := m.Cinder.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif m.FlexVolume != nil {\n\t\t{\n\t\t\tsize, err := m.FlexVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.RBD != nil {\n\t\t{\n\t\t\tsize, err := m.RBD.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaim != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaim.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.Glusterfs != nil {\n\t\t{\n\t\t\tsize, err := m.Glusterfs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.ISCSI != nil {\n\t\t{\n\t\t\tsize, err := m.ISCSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.NFS != nil {\n\t\t{\n\t\t\tsize, err := m.NFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.Secret != nil {\n\t\t{\n\t\t\tsize, err := m.Secret.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.GitRepo != nil {\n\t\t{\n\t\t\tsize, err := m.GitRepo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\t{\n\t\t\tsize, err := m.AWSElasticBlockStore.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.GCEPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.EmptyDir != nil {\n\t\t{\n\t\t\tsize, err := m.EmptyDir.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.HostPath != nil {\n\t\t{\n\t\t\tsize, err := m.HostPath.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StoragePolicyID)\n\tcopy(dAtA[i:], m.StoragePolicyID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePolicyID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.StoragePolicyName)\n\tcopy(dAtA[i:], m.StoragePolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePolicyName)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumePath)\n\tcopy(dAtA[i:], m.VolumePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumePath)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WeightedPodAffinityTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WeightedPodAffinityTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.PodAffinityTerm.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Weight))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsSecurityContextOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsSecurityContextOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsSecurityContextOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HostProcess != nil {\n\t\ti--\n\t\tif *m.HostProcess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.RunAsUserName != nil {\n\t\ti -= len(*m.RunAsUserName)\n\t\tcopy(dAtA[i:], *m.RunAsUserName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RunAsUserName)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.GMSACredentialSpec != nil {\n\t\ti -= len(*m.GMSACredentialSpec)\n\t\tcopy(dAtA[i:], *m.GMSACredentialSpec)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.GMSACredentialSpec)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GMSACredentialSpecName != nil {\n\t\ti -= len(*m.GMSACredentialSpecName)\n\t\tcopy(dAtA[i:], *m.GMSACredentialSpecName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.GMSACredentialSpecName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Partition))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Affinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NodeAffinity != nil {\n\t\tl = m.NodeAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PodAffinity != nil {\n\t\tl = m.PodAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PodAntiAffinity != nil {\n\t\tl = m.PodAntiAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AttachedVolume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DevicePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *AvoidPods) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PreferAvoidPods) > 0 {\n\t\tfor _, e := range m.PreferAvoidPods {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AzureDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DiskName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DataDiskURI)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CachingMode != nil {\n\t\tl = len(*m.CachingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadOnly != nil {\n\t\tn += 2\n\t}\n\tif m.Kind != nil {\n\t\tl = len(*m.Kind)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AzureFilePersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ShareName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretNamespace != nil {\n\t\tl = len(*m.SecretNamespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AzureFileVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ShareName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Binding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeHandle)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeAttributes) > 0 {\n\t\tfor k, v := range m.VolumeAttributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ControllerPublishSecretRef != nil {\n\t\tl = m.ControllerPublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeStageSecretRef != nil {\n\t\tl = m.NodeStageSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\tl = m.NodePublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ControllerExpandSecretRef != nil {\n\t\tl = m.ControllerExpandSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeExpandSecretRef != nil {\n\t\tl = m.NodeExpandSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ReadOnly != nil {\n\t\tn += 2\n\t}\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tfor k, v := range m.VolumeAttributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\tl = m.NodePublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Capabilities) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Add) > 0 {\n\t\tfor _, s := range m.Add {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Drop) > 0 {\n\t\tfor _, s := range m.Drop {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CephFSPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Monitors) > 0 {\n\t\tfor _, s := range m.Monitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SecretFile)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *CephFSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Monitors) > 0 {\n\t\tfor _, s := range m.Monitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SecretFile)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *CinderPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CinderVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClaimSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceClaimName != nil {\n\t\tl = len(*m.ResourceClaimName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceClaimTemplateName != nil {\n\t\tl = len(*m.ResourceClaimTemplateName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClientIPConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *ComponentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ComponentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ComponentStatusList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMap) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Data) > 0 {\n\t\tfor k, v := range m.Data {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.BinaryData) > 0 {\n\t\tfor k, v := range m.BinaryData {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = 0\n\t\t\tif v != nil {\n\t\t\t\tl = 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\t}\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + l\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Immutable != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapEnvSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapKeySelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapNodeConfigSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeletConfigKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ConfigMapProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *Container) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor _, s := range m.Args {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.WorkingDir)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Env) > 0 {\n\t\tfor _, e := range m.Env {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor _, e := range m.VolumeMounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LivenessProbe != nil {\n\t\tl = m.LivenessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadinessProbe != nil {\n\t\tl = m.ReadinessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Lifecycle != nil {\n\t\tl = m.Lifecycle.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.TerminationMessagePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImagePullPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 3\n\tn += 3\n\tn += 3\n\tif len(m.EnvFrom) > 0 {\n\t\tfor _, e := range m.EnvFrom {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TerminationMessagePolicy)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor _, e := range m.VolumeDevices {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\tl = m.StartupProbe.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor _, e := range m.ResizePolicy {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerImage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Names) > 0 {\n\t\tfor _, s := range m.Names {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.SizeBytes))\n\treturn n\n}\n\nfunc (m *ContainerPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.HostPort))\n\tn += 1 + sovGenerated(uint64(m.ContainerPort))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.HostIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResizePolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RestartPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerState) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Waiting != nil {\n\t\tl = m.Waiting.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Running != nil {\n\t\tl = m.Running.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Terminated != nil {\n\t\tl = m.Terminated.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStateRunning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.StartedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStateTerminated) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ExitCode))\n\tn += 1 + sovGenerated(uint64(m.Signal))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.StartedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.FinishedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStateWaiting) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.State.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTerminationState.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 1 + sovGenerated(uint64(m.RestartCount))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImageID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Started != nil {\n\t\tn += 2\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tfor k, v := range m.AllocatedResources {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonEndpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\treturn n\n}\n\nfunc (m *DownwardAPIProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DownwardAPIVolumeFile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldRef != nil {\n\t\tl = m.FieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\tl = m.ResourceFieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Mode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Mode))\n\t}\n\treturn n\n}\n\nfunc (m *DownwardAPIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\treturn n\n}\n\nfunc (m *EmptyDirVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Medium)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SizeLimit != nil {\n\t\tl = m.SizeLimit.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSubset) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, e := range m.Addresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NotReadyAddresses) > 0 {\n\t\tfor _, e := range m.NotReadyAddresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Endpoints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subsets) > 0 {\n\t\tfor _, e := range m.Subsets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointsList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EnvFromSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Prefix)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ConfigMapRef != nil {\n\t\tl = m.ConfigMapRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EnvVar) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ValueFrom != nil {\n\t\tl = m.ValueFrom.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EnvVarSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.FieldRef != nil {\n\t\tl = m.FieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\tl = m.ResourceFieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMapKeyRef != nil {\n\t\tl = m.ConfigMapKeyRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SecretKeyRef != nil {\n\t\tl = m.SecretKeyRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EphemeralContainer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.EphemeralContainerCommon.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.TargetContainerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EphemeralContainerCommon) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor _, s := range m.Args {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.WorkingDir)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Env) > 0 {\n\t\tfor _, e := range m.Env {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor _, e := range m.VolumeMounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LivenessProbe != nil {\n\t\tl = m.LivenessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadinessProbe != nil {\n\t\tl = m.ReadinessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Lifecycle != nil {\n\t\tl = m.Lifecycle.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.TerminationMessagePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImagePullPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 3\n\tn += 3\n\tn += 3\n\tif len(m.EnvFrom) > 0 {\n\t\tfor _, e := range m.EnvFrom {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TerminationMessagePolicy)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor _, e := range m.VolumeDevices {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\tl = m.StartupProbe.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor _, e := range m.ResizePolicy {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EphemeralVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.VolumeClaimTemplate != nil {\n\t\tl = m.VolumeClaimTemplate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.InvolvedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.FirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EventSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Component)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExecAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FCVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.TargetWWNs) > 0 {\n\t\tfor _, s := range m.TargetWWNs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Lun != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Lun))\n\t}\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.WWIDs) > 0 {\n\t\tfor _, s := range m.WWIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlexPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Options) > 0 {\n\t\tfor k, v := range m.Options {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlexVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Options) > 0 {\n\t\tfor k, v := range m.Options {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlockerVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DatasetName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DatasetUUID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PDName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Partition))\n\tn += 2\n\treturn n\n}\n\nfunc (m *GRPCAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tif m.Service != nil {\n\t\tl = len(*m.Service)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GitRepoVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Repository)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Revision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Directory)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.EndpointsName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.EndpointsNamespace != nil {\n\t\tl = len(*m.EndpointsNamespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GlusterfsVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.EndpointsName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *HTTPGetAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Scheme)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.HTTPHeaders) > 0 {\n\t\tfor _, e := range m.HTTPHeaders {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HTTPHeader) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HostAlias) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Hostnames) > 0 {\n\t\tfor _, s := range m.Hostnames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HostPathVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Type != nil {\n\t\tl = len(*m.Type)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ISCSIPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetPortal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.IQN)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Lun))\n\tl = len(m.ISCSIInterface)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Portals) > 0 {\n\t\tfor _, s := range m.Portals {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.InitiatorName != nil {\n\t\tl = len(*m.InitiatorName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ISCSIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetPortal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.IQN)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Lun))\n\tl = len(m.ISCSIInterface)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Portals) > 0 {\n\t\tfor _, s := range m.Portals {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.InitiatorName != nil {\n\t\tl = len(*m.InitiatorName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *KeyToPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Mode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Mode))\n\t}\n\treturn n\n}\n\nfunc (m *Lifecycle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PostStart != nil {\n\t\tl = m.PostStart.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PreStop != nil {\n\t\tl = m.PreStop.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LifecycleHandler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Exec != nil {\n\t\tl = m.Exec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HTTPGet != nil {\n\t\tl = m.HTTPGet.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TCPSocket != nil {\n\t\tl = m.TCPSocket.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitRange) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitRangeItem) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Max) > 0 {\n\t\tfor k, v := range m.Max {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Min) > 0 {\n\t\tfor k, v := range m.Min {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Default) > 0 {\n\t\tfor k, v := range m.Default {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.DefaultRequest) > 0 {\n\t\tfor k, v := range m.DefaultRequest {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.MaxLimitRequestRatio) > 0 {\n\t\tfor k, v := range m.MaxLimitRequestRatio {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LimitRangeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LimitRangeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor _, e := range m.Limits {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *List) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LocalVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NFSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Server)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Namespace) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NamespaceCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NamespaceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamespaceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Finalizers) > 0 {\n\t\tfor _, s := range m.Finalizers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamespaceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Node) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Address)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tl = m.RequiredDuringSchedulingIgnoredDuringExecution.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastHeartbeatTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeConfigSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NodeConfigStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Assigned != nil {\n\t\tl = m.Assigned.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Active != nil {\n\t\tl = m.Active.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastKnownGood != nil {\n\t\tl = m.LastKnownGood.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeDaemonEndpoints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.KubeletEndpoint.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelectorTerms) > 0 {\n\t\tfor _, e := range m.NodeSelectorTerms {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelectorTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchFields) > 0 {\n\t\tfor _, e := range m.MatchFields {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodCIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DoNotUseExternalID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ProviderID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Taints) > 0 {\n\t\tfor _, e := range m.Taints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ConfigSource != nil {\n\t\tl = m.ConfigSource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.PodCIDRs) > 0 {\n\t\tfor _, s := range m.PodCIDRs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Allocatable) > 0 {\n\t\tfor k, v := range m.Allocatable {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Addresses) > 0 {\n\t\tfor _, e := range m.Addresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DaemonEndpoints.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.NodeInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Images) > 0 {\n\t\tfor _, e := range m.Images {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.VolumesInUse) > 0 {\n\t\tfor _, s := range m.VolumesInUse {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.VolumesAttached) > 0 {\n\t\tfor _, e := range m.VolumesAttached {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Config != nil {\n\t\tl = m.Config.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NodeSystemInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MachineID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SystemUUID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.BootID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KernelVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.OSImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerRuntimeVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeletVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeProxyVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.OperatingSystem)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Architecture)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectFieldSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageClassName != nil {\n\t\tl = len(*m.StorageClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VolumeMode != nil {\n\t\tl = len(*m.VolumeMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DataSource != nil {\n\t\tl = m.DataSource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DataSourceRef != nil {\n\t\tl = m.DataSourceRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tfor k, v := range m.AllocatedResources {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ResizeStatus != nil {\n\t\tl = len(*m.ResizeStatus)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ClaimName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *PersistentVolumeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GCEPersistentDisk != nil {\n\t\tl = m.GCEPersistentDisk.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\tl = m.AWSElasticBlockStore.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostPath != nil {\n\t\tl = m.HostPath.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Glusterfs != nil {\n\t\tl = m.Glusterfs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NFS != nil {\n\t\tl = m.NFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RBD != nil {\n\t\tl = m.RBD.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ISCSI != nil {\n\t\tl = m.ISCSI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Cinder != nil {\n\t\tl = m.Cinder.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CephFS != nil {\n\t\tl = m.CephFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FC != nil {\n\t\tl = m.FC.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Flocker != nil {\n\t\tl = m.Flocker.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FlexVolume != nil {\n\t\tl = m.FlexVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureFile != nil {\n\t\tl = m.AzureFile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VsphereVolume != nil {\n\t\tl = m.VsphereVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Quobyte != nil {\n\t\tl = m.Quobyte.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureDisk != nil {\n\t\tl = m.AzureDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\tl = m.PhotonPersistentDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PortworxVolume != nil {\n\t\tl = m.PortworxVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleIO != nil {\n\t\tl = m.ScaleIO.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Local != nil {\n\t\tl = m.Local.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageOS != nil {\n\t\tl = m.StorageOS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CSI != nil {\n\t\tl = m.CSI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.PersistentVolumeSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ClaimRef != nil {\n\t\tl = m.ClaimRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.PersistentVolumeReclaimPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.VolumeMode != nil {\n\t\tl = len(*m.VolumeMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeAffinity != nil {\n\t\tl = m.NodeAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PdID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Pod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodAffinityTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TopologyKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodAntiAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodAttachOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tn += 2\n\tn += 2\n\tn += 2\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDNSConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Nameservers) > 0 {\n\t\tfor _, s := range m.Nameservers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor _, s := range m.Searches {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Options) > 0 {\n\t\tfor _, e := range m.Options {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDNSConfigOption) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = len(*m.Value)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodExecOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tn += 2\n\tn += 2\n\tn += 2\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodIP) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodLogOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 2\n\tif m.SinceSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SinceSeconds))\n\t}\n\tif m.SinceTime != nil {\n\t\tl = m.SinceTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.TailLines != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TailLines))\n\t}\n\tif m.LimitBytes != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LimitBytes))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *PodOS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodPortForwardOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodReadinessGate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ConditionType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodSchedulingGate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SELinuxOptions != nil {\n\t\tl = m.SELinuxOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsUser))\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\tn += 2\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor _, e := range m.SupplementalGroups {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\tif m.FSGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FSGroup))\n\t}\n\tif m.RunAsGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsGroup))\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor _, e := range m.Sysctls {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.WindowsOptions != nil {\n\t\tl = m.WindowsOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FSGroupChangePolicy != nil {\n\t\tl = len(*m.FSGroupChangePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SeccompProfile != nil {\n\t\tl = m.SeccompProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSignature) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodController != nil {\n\t\tl = m.PodController.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Volumes) > 0 {\n\t\tfor _, e := range m.Volumes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RestartPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TerminationGracePeriodSeconds))\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds))\n\t}\n\tl = len(m.DNSPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.ServiceAccountName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DeprecatedServiceAccount)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 2\n\tn += 2\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor _, e := range m.ImagePullSecrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Hostname)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tl = len(m.Subdomain)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif m.Affinity != nil {\n\t\tl = m.Affinity.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.SchedulerName)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.InitContainers) > 0 {\n\t\tfor _, e := range m.InitContainers {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\tn += 3\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.HostAliases) > 0 {\n\t\tfor _, e := range m.HostAliases {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.PriorityClassName)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif m.Priority != nil {\n\t\tn += 2 + sovGenerated(uint64(*m.Priority))\n\t}\n\tif m.DNSConfig != nil {\n\t\tl = m.DNSConfig.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ShareProcessNamespace != nil {\n\t\tn += 3\n\t}\n\tif len(m.ReadinessGates) > 0 {\n\t\tfor _, e := range m.ReadinessGates {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RuntimeClassName != nil {\n\t\tl = len(*m.RuntimeClassName)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EnableServiceLinks != nil {\n\t\tn += 3\n\t}\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Overhead) > 0 {\n\t\tfor k, v := range m.Overhead {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 2 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.TopologySpreadConstraints) > 0 {\n\t\tfor _, e := range m.TopologySpreadConstraints {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.EphemeralContainers) > 0 {\n\t\tfor _, e := range m.EphemeralContainers {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.SetHostnameAsFQDN != nil {\n\t\tn += 3\n\t}\n\tif m.OS != nil {\n\t\tl = m.OS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostUsers != nil {\n\t\tn += 3\n\t}\n\tif len(m.SchedulingGates) > 0 {\n\t\tfor _, e := range m.SchedulingGates {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor _, e := range m.ResourceClaims {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.HostIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartTime != nil {\n\t\tl = m.StartTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ContainerStatuses) > 0 {\n\t\tfor _, e := range m.ContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.QOSClass)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.InitContainerStatuses) > 0 {\n\t\tfor _, e := range m.InitContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.NominatedNodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.PodIPs) > 0 {\n\t\tfor _, e := range m.PodIPs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.EphemeralContainerStatuses) > 0 {\n\t\tfor _, e := range m.EphemeralContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Resize)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodStatusResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodTemplateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PortworxVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Preconditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\tl = len(*m.UID)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PreferAvoidPodsEntry) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSignature.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EvictionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PreferredSchedulingTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Weight))\n\tl = m.Preference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Probe) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ProbeHandler.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.InitialDelaySeconds))\n\tn += 1 + sovGenerated(uint64(m.TimeoutSeconds))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\tn += 1 + sovGenerated(uint64(m.SuccessThreshold))\n\tn += 1 + sovGenerated(uint64(m.FailureThreshold))\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TerminationGracePeriodSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *ProbeHandler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Exec != nil {\n\t\tl = m.Exec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HTTPGet != nil {\n\t\tl = m.HTTPGet.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TCPSocket != nil {\n\t\tl = m.TCPSocket.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GRPC != nil {\n\t\tl = m.GRPC.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ProjectedVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Sources) > 0 {\n\t\tfor _, e := range m.Sources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\treturn n\n}\n\nfunc (m *QuobyteVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Registry)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Volume)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Tenant)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RBDPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CephMonitors) > 0 {\n\t\tfor _, s := range m.CephMonitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RBDImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RBDPool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RadosUser)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Keyring)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *RBDVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CephMonitors) > 0 {\n\t\tfor _, s := range m.CephMonitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RBDImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RBDPool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RadosUser)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Keyring)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *RangeAllocation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Range)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Data != nil {\n\t\tl = len(m.Data)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicationController) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicationControllerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicationControllerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicationControllerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Template != nil {\n\t\tl = m.Template.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicationControllerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceFieldSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Divisor.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceQuota) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceQuotaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceQuotaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hard) > 0 {\n\t\tfor k, v := range m.Hard {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Scopes) > 0 {\n\t\tfor _, s := range m.Scopes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ScopeSelector != nil {\n\t\tl = m.ScopeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceQuotaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hard) > 0 {\n\t\tfor k, v := range m.Hard {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Used) > 0 {\n\t\tfor k, v := range m.Used {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceRequirements) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor k, v := range m.Limits {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor k, v := range m.Requests {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Claims) > 0 {\n\t\tfor _, e := range m.Claims {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SELinuxOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Role)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Level)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Gateway)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.System)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tl = len(m.ProtectionDomain)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *ScaleIOVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Gateway)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.System)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tl = len(m.ProtectionDomain)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *ScopeSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ScopedResourceSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ScopeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SeccompProfile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LocalhostProfile != nil {\n\t\tl = len(*m.LocalhostProfile)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Secret) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Data) > 0 {\n\t\tfor k, v := range m.Data {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = 0\n\t\t\tif v != nil {\n\t\t\t\tl = 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\t}\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + l\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.StringData) > 0 {\n\t\tfor k, v := range m.StringData {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Immutable != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretEnvSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretKeySelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SecretProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SecretVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Capabilities != nil {\n\t\tl = m.Capabilities.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Privileged != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxOptions != nil {\n\t\tl = m.SELinuxOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsUser))\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\tn += 2\n\t}\n\tif m.ReadOnlyRootFilesystem != nil {\n\t\tn += 2\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\tn += 2\n\t}\n\tif m.RunAsGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsGroup))\n\t}\n\tif m.ProcMount != nil {\n\t\tl = len(*m.ProcMount)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.WindowsOptions != nil {\n\t\tl = m.WindowsOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SeccompProfile != nil {\n\t\tl = m.SeccompProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SerializedReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Reference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Service) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceAccount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Secrets) > 0 {\n\t\tfor _, e := range m.Secrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor _, e := range m.ImagePullSecrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountTokenProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServicePort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = m.TargetPort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.NodePort))\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServiceProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.ClusterIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.ExternalIPs) > 0 {\n\t\tfor _, s := range m.ExternalIPs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SessionAffinity)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.LoadBalancerIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.LoadBalancerSourceRanges) > 0 {\n\t\tfor _, s := range m.LoadBalancerSourceRanges {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ExternalName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ExternalTrafficPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.HealthCheckNodePort))\n\tn += 2\n\tif m.SessionAffinityConfig != nil {\n\t\tl = m.SessionAffinityConfig.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPFamilyPolicy != nil {\n\t\tl = len(*m.IPFamilyPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ClusterIPs) > 0 {\n\t\tfor _, s := range m.ClusterIPs {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.IPFamilies) > 0 {\n\t\tfor _, s := range m.IPFamilies {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllocateLoadBalancerNodePorts != nil {\n\t\tn += 3\n\t}\n\tif m.LoadBalancerClass != nil {\n\t\tl = len(*m.LoadBalancerClass)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InternalTrafficPolicy != nil {\n\t\tl = len(*m.InternalTrafficPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServiceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SessionAffinityConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ClientIP != nil {\n\t\tl = m.ClientIP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StorageOSPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeNamespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StorageOSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeNamespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Sysctl) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TCPSocketAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Taint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Effect)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TimeAdded != nil {\n\t\tl = m.TimeAdded.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Toleration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Effect)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TolerationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TolerationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *TopologySelectorLabelRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TopologySelectorTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelExpressions) > 0 {\n\t\tfor _, e := range m.MatchLabelExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TopologySpreadConstraint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.MaxSkew))\n\tl = len(m.TopologyKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenUnsatisfiable)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MinDomains != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinDomains))\n\t}\n\tif m.NodeAffinityPolicy != nil {\n\t\tl = len(*m.NodeAffinityPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeTaintsPolicy != nil {\n\t\tl = len(*m.NodeTaintsPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor _, s := range m.MatchLabelKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TypedLocalObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TypedObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Volume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.VolumeSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeDevice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DevicePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeMount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.MountPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SubPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MountPropagation != nil {\n\t\tl = len(*m.MountPropagation)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.SubPathExpr)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeNodeAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Required != nil {\n\t\tl = m.Required.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Secret != nil {\n\t\tl = m.Secret.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DownwardAPI != nil {\n\t\tl = m.DownwardAPI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccountToken != nil {\n\t\tl = m.ServiceAccountToken.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HostPath != nil {\n\t\tl = m.HostPath.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EmptyDir != nil {\n\t\tl = m.EmptyDir.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\tl = m.GCEPersistentDisk.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\tl = m.AWSElasticBlockStore.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GitRepo != nil {\n\t\tl = m.GitRepo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Secret != nil {\n\t\tl = m.Secret.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NFS != nil {\n\t\tl = m.NFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ISCSI != nil {\n\t\tl = m.ISCSI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Glusterfs != nil {\n\t\tl = m.Glusterfs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PersistentVolumeClaim != nil {\n\t\tl = m.PersistentVolumeClaim.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RBD != nil {\n\t\tl = m.RBD.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FlexVolume != nil {\n\t\tl = m.FlexVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Cinder != nil {\n\t\tl = m.Cinder.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CephFS != nil {\n\t\tl = m.CephFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Flocker != nil {\n\t\tl = m.Flocker.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DownwardAPI != nil {\n\t\tl = m.DownwardAPI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FC != nil {\n\t\tl = m.FC.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureFile != nil {\n\t\tl = m.AzureFile.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VsphereVolume != nil {\n\t\tl = m.VsphereVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Quobyte != nil {\n\t\tl = m.Quobyte.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureDisk != nil {\n\t\tl = m.AzureDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\tl = m.PhotonPersistentDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PortworxVolume != nil {\n\t\tl = m.PortworxVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleIO != nil {\n\t\tl = m.ScaleIO.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Projected != nil {\n\t\tl = m.Projected.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageOS != nil {\n\t\tl = m.StorageOS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CSI != nil {\n\t\tl = m.CSI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ephemeral != nil {\n\t\tl = m.Ephemeral.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePolicyID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WeightedPodAffinityTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Weight))\n\tl = m.PodAffinityTerm.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WindowsSecurityContextOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GMSACredentialSpecName != nil {\n\t\tl = len(*m.GMSACredentialSpecName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GMSACredentialSpec != nil {\n\t\tl = len(*m.GMSACredentialSpec)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUserName != nil {\n\t\tl = len(*m.RunAsUserName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostProcess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AWSElasticBlockStoreVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AWSElasticBlockStoreVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`Partition:` + fmt.Sprintf(\"%v\", this.Partition) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Affinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Affinity{`,\n\t\t`NodeAffinity:` + strings.Replace(this.NodeAffinity.String(), \"NodeAffinity\", \"NodeAffinity\", 1) + `,`,\n\t\t`PodAffinity:` + strings.Replace(this.PodAffinity.String(), \"PodAffinity\", \"PodAffinity\", 1) + `,`,\n\t\t`PodAntiAffinity:` + strings.Replace(this.PodAntiAffinity.String(), \"PodAntiAffinity\", \"PodAntiAffinity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AttachedVolume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AttachedVolume{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DevicePath:` + fmt.Sprintf(\"%v\", this.DevicePath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AvoidPods) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPreferAvoidPods := \"[]PreferAvoidPodsEntry{\"\n\tfor _, f := range this.PreferAvoidPods {\n\t\trepeatedStringForPreferAvoidPods += strings.Replace(strings.Replace(f.String(), \"PreferAvoidPodsEntry\", \"PreferAvoidPodsEntry\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferAvoidPods += \"}\"\n\ts := strings.Join([]string{`&AvoidPods{`,\n\t\t`PreferAvoidPods:` + repeatedStringForPreferAvoidPods + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureDiskVolumeSource{`,\n\t\t`DiskName:` + fmt.Sprintf(\"%v\", this.DiskName) + `,`,\n\t\t`DataDiskURI:` + fmt.Sprintf(\"%v\", this.DataDiskURI) + `,`,\n\t\t`CachingMode:` + valueToStringGenerated(this.CachingMode) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`ReadOnly:` + valueToStringGenerated(this.ReadOnly) + `,`,\n\t\t`Kind:` + valueToStringGenerated(this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureFilePersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureFilePersistentVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`ShareName:` + fmt.Sprintf(\"%v\", this.ShareName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretNamespace:` + valueToStringGenerated(this.SecretNamespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureFileVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureFileVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`ShareName:` + fmt.Sprintf(\"%v\", this.ShareName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Binding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Binding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForVolumeAttributes := make([]string, 0, len(this.VolumeAttributes))\n\tfor k := range this.VolumeAttributes {\n\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\tmapStringForVolumeAttributes := \"map[string]string{\"\n\tfor _, k := range keysForVolumeAttributes {\n\t\tmapStringForVolumeAttributes += fmt.Sprintf(\"%v: %v,\", k, this.VolumeAttributes[k])\n\t}\n\tmapStringForVolumeAttributes += \"}\"\n\ts := strings.Join([]string{`&CSIPersistentVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`VolumeHandle:` + fmt.Sprintf(\"%v\", this.VolumeHandle) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`VolumeAttributes:` + mapStringForVolumeAttributes + `,`,\n\t\t`ControllerPublishSecretRef:` + strings.Replace(this.ControllerPublishSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodeStageSecretRef:` + strings.Replace(this.NodeStageSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodePublishSecretRef:` + strings.Replace(this.NodePublishSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ControllerExpandSecretRef:` + strings.Replace(this.ControllerExpandSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodeExpandSecretRef:` + strings.Replace(this.NodeExpandSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForVolumeAttributes := make([]string, 0, len(this.VolumeAttributes))\n\tfor k := range this.VolumeAttributes {\n\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\tmapStringForVolumeAttributes := \"map[string]string{\"\n\tfor _, k := range keysForVolumeAttributes {\n\t\tmapStringForVolumeAttributes += fmt.Sprintf(\"%v: %v,\", k, this.VolumeAttributes[k])\n\t}\n\tmapStringForVolumeAttributes += \"}\"\n\ts := strings.Join([]string{`&CSIVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`ReadOnly:` + valueToStringGenerated(this.ReadOnly) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`VolumeAttributes:` + mapStringForVolumeAttributes + `,`,\n\t\t`NodePublishSecretRef:` + strings.Replace(this.NodePublishSecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Capabilities) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Capabilities{`,\n\t\t`Add:` + fmt.Sprintf(\"%v\", this.Add) + `,`,\n\t\t`Drop:` + fmt.Sprintf(\"%v\", this.Drop) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CephFSPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CephFSPersistentVolumeSource{`,\n\t\t`Monitors:` + fmt.Sprintf(\"%v\", this.Monitors) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`SecretFile:` + fmt.Sprintf(\"%v\", this.SecretFile) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CephFSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CephFSVolumeSource{`,\n\t\t`Monitors:` + fmt.Sprintf(\"%v\", this.Monitors) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`SecretFile:` + fmt.Sprintf(\"%v\", this.SecretFile) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CinderPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CinderPersistentVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CinderVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CinderVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClaimSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClaimSource{`,\n\t\t`ResourceClaimName:` + valueToStringGenerated(this.ResourceClaimName) + `,`,\n\t\t`ResourceClaimTemplateName:` + valueToStringGenerated(this.ResourceClaimTemplateName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClientIPConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClientIPConfig{`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ComponentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ComponentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ComponentCondition\", \"ComponentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ComponentStatus{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentStatusList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ComponentStatus{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ComponentStatus\", \"ComponentStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ComponentStatusList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMap) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForData := make([]string, 0, len(this.Data))\n\tfor k := range this.Data {\n\t\tkeysForData = append(keysForData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\tmapStringForData := \"map[string]string{\"\n\tfor _, k := range keysForData {\n\t\tmapStringForData += fmt.Sprintf(\"%v: %v,\", k, this.Data[k])\n\t}\n\tmapStringForData += \"}\"\n\tkeysForBinaryData := make([]string, 0, len(this.BinaryData))\n\tfor k := range this.BinaryData {\n\t\tkeysForBinaryData = append(keysForBinaryData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForBinaryData)\n\tmapStringForBinaryData := \"map[string][]byte{\"\n\tfor _, k := range keysForBinaryData {\n\t\tmapStringForBinaryData += fmt.Sprintf(\"%v: %v,\", k, this.BinaryData[k])\n\t}\n\tmapStringForBinaryData += \"}\"\n\ts := strings.Join([]string{`&ConfigMap{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + mapStringForData + `,`,\n\t\t`BinaryData:` + mapStringForBinaryData + `,`,\n\t\t`Immutable:` + valueToStringGenerated(this.Immutable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapEnvSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapEnvSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapKeySelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapKeySelector{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ConfigMap{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ConfigMap\", \"ConfigMap\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapNodeConfigSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapNodeConfigSource{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`KubeletConfigKey:` + fmt.Sprintf(\"%v\", this.KubeletConfigKey) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapProjection{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapVolumeSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Container) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ContainerPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ContainerPort\", \"ContainerPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForEnv := \"[]EnvVar{\"\n\tfor _, f := range this.Env {\n\t\trepeatedStringForEnv += strings.Replace(strings.Replace(f.String(), \"EnvVar\", \"EnvVar\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnv += \"}\"\n\trepeatedStringForVolumeMounts := \"[]VolumeMount{\"\n\tfor _, f := range this.VolumeMounts {\n\t\trepeatedStringForVolumeMounts += strings.Replace(strings.Replace(f.String(), \"VolumeMount\", \"VolumeMount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeMounts += \"}\"\n\trepeatedStringForEnvFrom := \"[]EnvFromSource{\"\n\tfor _, f := range this.EnvFrom {\n\t\trepeatedStringForEnvFrom += strings.Replace(strings.Replace(f.String(), \"EnvFromSource\", \"EnvFromSource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnvFrom += \"}\"\n\trepeatedStringForVolumeDevices := \"[]VolumeDevice{\"\n\tfor _, f := range this.VolumeDevices {\n\t\trepeatedStringForVolumeDevices += strings.Replace(strings.Replace(f.String(), \"VolumeDevice\", \"VolumeDevice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeDevices += \"}\"\n\trepeatedStringForResizePolicy := \"[]ContainerResizePolicy{\"\n\tfor _, f := range this.ResizePolicy {\n\t\trepeatedStringForResizePolicy += strings.Replace(strings.Replace(f.String(), \"ContainerResizePolicy\", \"ContainerResizePolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResizePolicy += \"}\"\n\ts := strings.Join([]string{`&Container{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`WorkingDir:` + fmt.Sprintf(\"%v\", this.WorkingDir) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Env:` + repeatedStringForEnv + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeMounts:` + repeatedStringForVolumeMounts + `,`,\n\t\t`LivenessProbe:` + strings.Replace(this.LivenessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ReadinessProbe:` + strings.Replace(this.ReadinessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`Lifecycle:` + strings.Replace(this.Lifecycle.String(), \"Lifecycle\", \"Lifecycle\", 1) + `,`,\n\t\t`TerminationMessagePath:` + fmt.Sprintf(\"%v\", this.TerminationMessagePath) + `,`,\n\t\t`ImagePullPolicy:` + fmt.Sprintf(\"%v\", this.ImagePullPolicy) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"SecurityContext\", \"SecurityContext\", 1) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`StdinOnce:` + fmt.Sprintf(\"%v\", this.StdinOnce) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`EnvFrom:` + repeatedStringForEnvFrom + `,`,\n\t\t`TerminationMessagePolicy:` + fmt.Sprintf(\"%v\", this.TerminationMessagePolicy) + `,`,\n\t\t`VolumeDevices:` + repeatedStringForVolumeDevices + `,`,\n\t\t`StartupProbe:` + strings.Replace(this.StartupProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ResizePolicy:` + repeatedStringForResizePolicy + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerImage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerImage{`,\n\t\t`Names:` + fmt.Sprintf(\"%v\", this.Names) + `,`,\n\t\t`SizeBytes:` + fmt.Sprintf(\"%v\", this.SizeBytes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`HostPort:` + fmt.Sprintf(\"%v\", this.HostPort) + `,`,\n\t\t`ContainerPort:` + fmt.Sprintf(\"%v\", this.ContainerPort) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`HostIP:` + fmt.Sprintf(\"%v\", this.HostIP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResizePolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResizePolicy{`,\n\t\t`ResourceName:` + fmt.Sprintf(\"%v\", this.ResourceName) + `,`,\n\t\t`RestartPolicy:` + fmt.Sprintf(\"%v\", this.RestartPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerState) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerState{`,\n\t\t`Waiting:` + strings.Replace(this.Waiting.String(), \"ContainerStateWaiting\", \"ContainerStateWaiting\", 1) + `,`,\n\t\t`Running:` + strings.Replace(this.Running.String(), \"ContainerStateRunning\", \"ContainerStateRunning\", 1) + `,`,\n\t\t`Terminated:` + strings.Replace(this.Terminated.String(), \"ContainerStateTerminated\", \"ContainerStateTerminated\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateRunning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateRunning{`,\n\t\t`StartedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.StartedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateTerminated) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateTerminated{`,\n\t\t`ExitCode:` + fmt.Sprintf(\"%v\", this.ExitCode) + `,`,\n\t\t`Signal:` + fmt.Sprintf(\"%v\", this.Signal) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`StartedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.StartedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`FinishedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.FinishedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`ContainerID:` + fmt.Sprintf(\"%v\", this.ContainerID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateWaiting) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateWaiting{`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAllocatedResources := make([]string, 0, len(this.AllocatedResources))\n\tfor k := range this.AllocatedResources {\n\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\tmapStringForAllocatedResources := \"ResourceList{\"\n\tfor _, k := range keysForAllocatedResources {\n\t\tmapStringForAllocatedResources += fmt.Sprintf(\"%v: %v,\", k, this.AllocatedResources[ResourceName(k)])\n\t}\n\tmapStringForAllocatedResources += \"}\"\n\ts := strings.Join([]string{`&ContainerStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`State:` + strings.Replace(strings.Replace(this.State.String(), \"ContainerState\", \"ContainerState\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTerminationState:` + strings.Replace(strings.Replace(this.LastTerminationState.String(), \"ContainerState\", \"ContainerState\", 1), `&`, ``, 1) + `,`,\n\t\t`Ready:` + fmt.Sprintf(\"%v\", this.Ready) + `,`,\n\t\t`RestartCount:` + fmt.Sprintf(\"%v\", this.RestartCount) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`ImageID:` + fmt.Sprintf(\"%v\", this.ImageID) + `,`,\n\t\t`ContainerID:` + fmt.Sprintf(\"%v\", this.ContainerID) + `,`,\n\t\t`Started:` + valueToStringGenerated(this.Started) + `,`,\n\t\t`AllocatedResources:` + mapStringForAllocatedResources + `,`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonEndpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonEndpoint{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DownwardAPIVolumeFile{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DownwardAPIVolumeFile\", \"DownwardAPIVolumeFile\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DownwardAPIProjection{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIVolumeFile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DownwardAPIVolumeFile{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`FieldRef:` + strings.Replace(this.FieldRef.String(), \"ObjectFieldSelector\", \"ObjectFieldSelector\", 1) + `,`,\n\t\t`ResourceFieldRef:` + strings.Replace(this.ResourceFieldRef.String(), \"ResourceFieldSelector\", \"ResourceFieldSelector\", 1) + `,`,\n\t\t`Mode:` + valueToStringGenerated(this.Mode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DownwardAPIVolumeFile{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DownwardAPIVolumeFile\", \"DownwardAPIVolumeFile\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DownwardAPIVolumeSource{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EmptyDirVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EmptyDirVolumeSource{`,\n\t\t`Medium:` + fmt.Sprintf(\"%v\", this.Medium) + `,`,\n\t\t`SizeLimit:` + strings.Replace(fmt.Sprintf(\"%v\", this.SizeLimit), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointAddress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`TargetRef:` + strings.Replace(this.TargetRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSubset) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAddresses := \"[]EndpointAddress{\"\n\tfor _, f := range this.Addresses {\n\t\trepeatedStringForAddresses += strings.Replace(strings.Replace(f.String(), \"EndpointAddress\", \"EndpointAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAddresses += \"}\"\n\trepeatedStringForNotReadyAddresses := \"[]EndpointAddress{\"\n\tfor _, f := range this.NotReadyAddresses {\n\t\trepeatedStringForNotReadyAddresses += strings.Replace(strings.Replace(f.String(), \"EndpointAddress\", \"EndpointAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNotReadyAddresses += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSubset{`,\n\t\t`Addresses:` + repeatedStringForAddresses + `,`,\n\t\t`NotReadyAddresses:` + repeatedStringForNotReadyAddresses + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Endpoints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubsets := \"[]EndpointSubset{\"\n\tfor _, f := range this.Subsets {\n\t\trepeatedStringForSubsets += strings.Replace(strings.Replace(f.String(), \"EndpointSubset\", \"EndpointSubset\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubsets += \"}\"\n\ts := strings.Join([]string{`&Endpoints{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subsets:` + repeatedStringForSubsets + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointsList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Endpoints{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Endpoints\", \"Endpoints\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointsList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvFromSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvFromSource{`,\n\t\t`Prefix:` + fmt.Sprintf(\"%v\", this.Prefix) + `,`,\n\t\t`ConfigMapRef:` + strings.Replace(this.ConfigMapRef.String(), \"ConfigMapEnvSource\", \"ConfigMapEnvSource\", 1) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretEnvSource\", \"SecretEnvSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvVar) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvVar{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`ValueFrom:` + strings.Replace(this.ValueFrom.String(), \"EnvVarSource\", \"EnvVarSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvVarSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvVarSource{`,\n\t\t`FieldRef:` + strings.Replace(this.FieldRef.String(), \"ObjectFieldSelector\", \"ObjectFieldSelector\", 1) + `,`,\n\t\t`ResourceFieldRef:` + strings.Replace(this.ResourceFieldRef.String(), \"ResourceFieldSelector\", \"ResourceFieldSelector\", 1) + `,`,\n\t\t`ConfigMapKeyRef:` + strings.Replace(this.ConfigMapKeyRef.String(), \"ConfigMapKeySelector\", \"ConfigMapKeySelector\", 1) + `,`,\n\t\t`SecretKeyRef:` + strings.Replace(this.SecretKeyRef.String(), \"SecretKeySelector\", \"SecretKeySelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralContainer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EphemeralContainer{`,\n\t\t`EphemeralContainerCommon:` + strings.Replace(strings.Replace(this.EphemeralContainerCommon.String(), \"EphemeralContainerCommon\", \"EphemeralContainerCommon\", 1), `&`, ``, 1) + `,`,\n\t\t`TargetContainerName:` + fmt.Sprintf(\"%v\", this.TargetContainerName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralContainerCommon) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ContainerPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ContainerPort\", \"ContainerPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForEnv := \"[]EnvVar{\"\n\tfor _, f := range this.Env {\n\t\trepeatedStringForEnv += strings.Replace(strings.Replace(f.String(), \"EnvVar\", \"EnvVar\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnv += \"}\"\n\trepeatedStringForVolumeMounts := \"[]VolumeMount{\"\n\tfor _, f := range this.VolumeMounts {\n\t\trepeatedStringForVolumeMounts += strings.Replace(strings.Replace(f.String(), \"VolumeMount\", \"VolumeMount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeMounts += \"}\"\n\trepeatedStringForEnvFrom := \"[]EnvFromSource{\"\n\tfor _, f := range this.EnvFrom {\n\t\trepeatedStringForEnvFrom += strings.Replace(strings.Replace(f.String(), \"EnvFromSource\", \"EnvFromSource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnvFrom += \"}\"\n\trepeatedStringForVolumeDevices := \"[]VolumeDevice{\"\n\tfor _, f := range this.VolumeDevices {\n\t\trepeatedStringForVolumeDevices += strings.Replace(strings.Replace(f.String(), \"VolumeDevice\", \"VolumeDevice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeDevices += \"}\"\n\trepeatedStringForResizePolicy := \"[]ContainerResizePolicy{\"\n\tfor _, f := range this.ResizePolicy {\n\t\trepeatedStringForResizePolicy += strings.Replace(strings.Replace(f.String(), \"ContainerResizePolicy\", \"ContainerResizePolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResizePolicy += \"}\"\n\ts := strings.Join([]string{`&EphemeralContainerCommon{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`WorkingDir:` + fmt.Sprintf(\"%v\", this.WorkingDir) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Env:` + repeatedStringForEnv + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeMounts:` + repeatedStringForVolumeMounts + `,`,\n\t\t`LivenessProbe:` + strings.Replace(this.LivenessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ReadinessProbe:` + strings.Replace(this.ReadinessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`Lifecycle:` + strings.Replace(this.Lifecycle.String(), \"Lifecycle\", \"Lifecycle\", 1) + `,`,\n\t\t`TerminationMessagePath:` + fmt.Sprintf(\"%v\", this.TerminationMessagePath) + `,`,\n\t\t`ImagePullPolicy:` + fmt.Sprintf(\"%v\", this.ImagePullPolicy) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"SecurityContext\", \"SecurityContext\", 1) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`StdinOnce:` + fmt.Sprintf(\"%v\", this.StdinOnce) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`EnvFrom:` + repeatedStringForEnvFrom + `,`,\n\t\t`TerminationMessagePolicy:` + fmt.Sprintf(\"%v\", this.TerminationMessagePolicy) + `,`,\n\t\t`VolumeDevices:` + repeatedStringForVolumeDevices + `,`,\n\t\t`StartupProbe:` + strings.Replace(this.StartupProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ResizePolicy:` + repeatedStringForResizePolicy + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EphemeralVolumeSource{`,\n\t\t`VolumeClaimTemplate:` + strings.Replace(this.VolumeClaimTemplate.String(), \"PersistentVolumeClaimTemplate\", \"PersistentVolumeClaimTemplate\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`InvolvedObject:` + strings.Replace(strings.Replace(this.InvolvedObject.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"EventSource\", \"EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`FirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.FirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Related:` + strings.Replace(this.Related.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSource{`,\n\t\t`Component:` + fmt.Sprintf(\"%v\", this.Component) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecAction{`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FCVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FCVolumeSource{`,\n\t\t`TargetWWNs:` + fmt.Sprintf(\"%v\", this.TargetWWNs) + `,`,\n\t\t`Lun:` + valueToStringGenerated(this.Lun) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`WWIDs:` + fmt.Sprintf(\"%v\", this.WWIDs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlexPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForOptions := make([]string, 0, len(this.Options))\n\tfor k := range this.Options {\n\t\tkeysForOptions = append(keysForOptions, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\tmapStringForOptions := \"map[string]string{\"\n\tfor _, k := range keysForOptions {\n\t\tmapStringForOptions += fmt.Sprintf(\"%v: %v,\", k, this.Options[k])\n\t}\n\tmapStringForOptions += \"}\"\n\ts := strings.Join([]string{`&FlexPersistentVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Options:` + mapStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlexVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForOptions := make([]string, 0, len(this.Options))\n\tfor k := range this.Options {\n\t\tkeysForOptions = append(keysForOptions, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\tmapStringForOptions := \"map[string]string{\"\n\tfor _, k := range keysForOptions {\n\t\tmapStringForOptions += fmt.Sprintf(\"%v: %v,\", k, this.Options[k])\n\t}\n\tmapStringForOptions += \"}\"\n\ts := strings.Join([]string{`&FlexVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Options:` + mapStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlockerVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlockerVolumeSource{`,\n\t\t`DatasetName:` + fmt.Sprintf(\"%v\", this.DatasetName) + `,`,\n\t\t`DatasetUUID:` + fmt.Sprintf(\"%v\", this.DatasetUUID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GCEPersistentDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GCEPersistentDiskVolumeSource{`,\n\t\t`PDName:` + fmt.Sprintf(\"%v\", this.PDName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`Partition:` + fmt.Sprintf(\"%v\", this.Partition) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GRPCAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GRPCAction{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Service:` + valueToStringGenerated(this.Service) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GitRepoVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GitRepoVolumeSource{`,\n\t\t`Repository:` + fmt.Sprintf(\"%v\", this.Repository) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`Directory:` + fmt.Sprintf(\"%v\", this.Directory) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GlusterfsPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GlusterfsPersistentVolumeSource{`,\n\t\t`EndpointsName:` + fmt.Sprintf(\"%v\", this.EndpointsName) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`EndpointsNamespace:` + valueToStringGenerated(this.EndpointsNamespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GlusterfsVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GlusterfsVolumeSource{`,\n\t\t`EndpointsName:` + fmt.Sprintf(\"%v\", this.EndpointsName) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPGetAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForHTTPHeaders := \"[]HTTPHeader{\"\n\tfor _, f := range this.HTTPHeaders {\n\t\trepeatedStringForHTTPHeaders += strings.Replace(strings.Replace(f.String(), \"HTTPHeader\", \"HTTPHeader\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHTTPHeaders += \"}\"\n\ts := strings.Join([]string{`&HTTPGetAction{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Port:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`Scheme:` + fmt.Sprintf(\"%v\", this.Scheme) + `,`,\n\t\t`HTTPHeaders:` + repeatedStringForHTTPHeaders + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPHeader) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPHeader{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostAlias) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostAlias{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostnames:` + fmt.Sprintf(\"%v\", this.Hostnames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostPathVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostPathVolumeSource{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Type:` + valueToStringGenerated(this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ISCSIPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ISCSIPersistentVolumeSource{`,\n\t\t`TargetPortal:` + fmt.Sprintf(\"%v\", this.TargetPortal) + `,`,\n\t\t`IQN:` + fmt.Sprintf(\"%v\", this.IQN) + `,`,\n\t\t`Lun:` + fmt.Sprintf(\"%v\", this.Lun) + `,`,\n\t\t`ISCSIInterface:` + fmt.Sprintf(\"%v\", this.ISCSIInterface) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Portals:` + fmt.Sprintf(\"%v\", this.Portals) + `,`,\n\t\t`DiscoveryCHAPAuth:` + fmt.Sprintf(\"%v\", this.DiscoveryCHAPAuth) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`SessionCHAPAuth:` + fmt.Sprintf(\"%v\", this.SessionCHAPAuth) + `,`,\n\t\t`InitiatorName:` + valueToStringGenerated(this.InitiatorName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ISCSIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ISCSIVolumeSource{`,\n\t\t`TargetPortal:` + fmt.Sprintf(\"%v\", this.TargetPortal) + `,`,\n\t\t`IQN:` + fmt.Sprintf(\"%v\", this.IQN) + `,`,\n\t\t`Lun:` + fmt.Sprintf(\"%v\", this.Lun) + `,`,\n\t\t`ISCSIInterface:` + fmt.Sprintf(\"%v\", this.ISCSIInterface) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Portals:` + fmt.Sprintf(\"%v\", this.Portals) + `,`,\n\t\t`DiscoveryCHAPAuth:` + fmt.Sprintf(\"%v\", this.DiscoveryCHAPAuth) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`SessionCHAPAuth:` + fmt.Sprintf(\"%v\", this.SessionCHAPAuth) + `,`,\n\t\t`InitiatorName:` + valueToStringGenerated(this.InitiatorName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *KeyToPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&KeyToPath{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Mode:` + valueToStringGenerated(this.Mode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Lifecycle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lifecycle{`,\n\t\t`PostStart:` + strings.Replace(this.PostStart.String(), \"LifecycleHandler\", \"LifecycleHandler\", 1) + `,`,\n\t\t`PreStop:` + strings.Replace(this.PreStop.String(), \"LifecycleHandler\", \"LifecycleHandler\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LifecycleHandler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LifecycleHandler{`,\n\t\t`Exec:` + strings.Replace(this.Exec.String(), \"ExecAction\", \"ExecAction\", 1) + `,`,\n\t\t`HTTPGet:` + strings.Replace(this.HTTPGet.String(), \"HTTPGetAction\", \"HTTPGetAction\", 1) + `,`,\n\t\t`TCPSocket:` + strings.Replace(this.TCPSocket.String(), \"TCPSocketAction\", \"TCPSocketAction\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRange) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitRange{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LimitRangeSpec\", \"LimitRangeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeItem) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForMax := make([]string, 0, len(this.Max))\n\tfor k := range this.Max {\n\t\tkeysForMax = append(keysForMax, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMax)\n\tmapStringForMax := \"ResourceList{\"\n\tfor _, k := range keysForMax {\n\t\tmapStringForMax += fmt.Sprintf(\"%v: %v,\", k, this.Max[ResourceName(k)])\n\t}\n\tmapStringForMax += \"}\"\n\tkeysForMin := make([]string, 0, len(this.Min))\n\tfor k := range this.Min {\n\t\tkeysForMin = append(keysForMin, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMin)\n\tmapStringForMin := \"ResourceList{\"\n\tfor _, k := range keysForMin {\n\t\tmapStringForMin += fmt.Sprintf(\"%v: %v,\", k, this.Min[ResourceName(k)])\n\t}\n\tmapStringForMin += \"}\"\n\tkeysForDefault := make([]string, 0, len(this.Default))\n\tfor k := range this.Default {\n\t\tkeysForDefault = append(keysForDefault, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefault)\n\tmapStringForDefault := \"ResourceList{\"\n\tfor _, k := range keysForDefault {\n\t\tmapStringForDefault += fmt.Sprintf(\"%v: %v,\", k, this.Default[ResourceName(k)])\n\t}\n\tmapStringForDefault += \"}\"\n\tkeysForDefaultRequest := make([]string, 0, len(this.DefaultRequest))\n\tfor k := range this.DefaultRequest {\n\t\tkeysForDefaultRequest = append(keysForDefaultRequest, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefaultRequest)\n\tmapStringForDefaultRequest := \"ResourceList{\"\n\tfor _, k := range keysForDefaultRequest {\n\t\tmapStringForDefaultRequest += fmt.Sprintf(\"%v: %v,\", k, this.DefaultRequest[ResourceName(k)])\n\t}\n\tmapStringForDefaultRequest += \"}\"\n\tkeysForMaxLimitRequestRatio := make([]string, 0, len(this.MaxLimitRequestRatio))\n\tfor k := range this.MaxLimitRequestRatio {\n\t\tkeysForMaxLimitRequestRatio = append(keysForMaxLimitRequestRatio, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMaxLimitRequestRatio)\n\tmapStringForMaxLimitRequestRatio := \"ResourceList{\"\n\tfor _, k := range keysForMaxLimitRequestRatio {\n\t\tmapStringForMaxLimitRequestRatio += fmt.Sprintf(\"%v: %v,\", k, this.MaxLimitRequestRatio[ResourceName(k)])\n\t}\n\tmapStringForMaxLimitRequestRatio += \"}\"\n\ts := strings.Join([]string{`&LimitRangeItem{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Max:` + mapStringForMax + `,`,\n\t\t`Min:` + mapStringForMin + `,`,\n\t\t`Default:` + mapStringForDefault + `,`,\n\t\t`DefaultRequest:` + mapStringForDefaultRequest + `,`,\n\t\t`MaxLimitRequestRatio:` + mapStringForMaxLimitRequestRatio + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]LimitRange{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"LimitRange\", \"LimitRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LimitRangeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForLimits := \"[]LimitRangeItem{\"\n\tfor _, f := range this.Limits {\n\t\trepeatedStringForLimits += strings.Replace(strings.Replace(f.String(), \"LimitRangeItem\", \"LimitRangeItem\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForLimits += \"}\"\n\ts := strings.Join([]string{`&LimitRangeSpec{`,\n\t\t`Limits:` + repeatedStringForLimits + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *List) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RawExtension{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&List{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]PortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"PortStatus\", \"PortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&LoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]LoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"LoadBalancerIngress\", \"LoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&LoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LocalObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalObjectReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LocalVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalVolumeSource{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NFSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NFSVolumeSource{`,\n\t\t`Server:` + fmt.Sprintf(\"%v\", this.Server) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Namespace) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Namespace{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NamespaceSpec\", \"NamespaceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NamespaceStatus\", \"NamespaceStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamespaceCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Namespace{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Namespace\", \"Namespace\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NamespaceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamespaceSpec{`,\n\t\t`Finalizers:` + fmt.Sprintf(\"%v\", this.Finalizers) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]NamespaceCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"NamespaceCondition\", \"NamespaceCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&NamespaceStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Node) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Node{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NodeSpec\", \"NodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NodeStatus\", \"NodeStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeAddress{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Address:` + fmt.Sprintf(\"%v\", this.Address) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]PreferredSchedulingTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PreferredSchedulingTerm\", \"PreferredSchedulingTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&NodeAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + strings.Replace(this.RequiredDuringSchedulingIgnoredDuringExecution.String(), \"NodeSelector\", \"NodeSelector\", 1) + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastHeartbeatTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastHeartbeatTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeConfigSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeConfigSource{`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapNodeConfigSource\", \"ConfigMapNodeConfigSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeConfigStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeConfigStatus{`,\n\t\t`Assigned:` + strings.Replace(this.Assigned.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`Active:` + strings.Replace(this.Active.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`LastKnownGood:` + strings.Replace(this.LastKnownGood.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeDaemonEndpoints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeDaemonEndpoints{`,\n\t\t`KubeletEndpoint:` + strings.Replace(strings.Replace(this.KubeletEndpoint.String(), \"DaemonEndpoint\", \"DaemonEndpoint\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Node{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Node\", \"Node\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\ts := strings.Join([]string{`&NodeResources{`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForNodeSelectorTerms := \"[]NodeSelectorTerm{\"\n\tfor _, f := range this.NodeSelectorTerms {\n\t\trepeatedStringForNodeSelectorTerms += strings.Replace(strings.Replace(f.String(), \"NodeSelectorTerm\", \"NodeSelectorTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNodeSelectorTerms += \"}\"\n\ts := strings.Join([]string{`&NodeSelector{`,\n\t\t`NodeSelectorTerms:` + repeatedStringForNodeSelectorTerms + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeSelectorRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelectorTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]NodeSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"NodeSelectorRequirement\", \"NodeSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\trepeatedStringForMatchFields := \"[]NodeSelectorRequirement{\"\n\tfor _, f := range this.MatchFields {\n\t\trepeatedStringForMatchFields += strings.Replace(strings.Replace(f.String(), \"NodeSelectorRequirement\", \"NodeSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchFields += \"}\"\n\ts := strings.Join([]string{`&NodeSelectorTerm{`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`MatchFields:` + repeatedStringForMatchFields + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTaints := \"[]Taint{\"\n\tfor _, f := range this.Taints {\n\t\trepeatedStringForTaints += strings.Replace(strings.Replace(f.String(), \"Taint\", \"Taint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTaints += \"}\"\n\ts := strings.Join([]string{`&NodeSpec{`,\n\t\t`PodCIDR:` + fmt.Sprintf(\"%v\", this.PodCIDR) + `,`,\n\t\t`DoNotUseExternalID:` + fmt.Sprintf(\"%v\", this.DoNotUseExternalID) + `,`,\n\t\t`ProviderID:` + fmt.Sprintf(\"%v\", this.ProviderID) + `,`,\n\t\t`Unschedulable:` + fmt.Sprintf(\"%v\", this.Unschedulable) + `,`,\n\t\t`Taints:` + repeatedStringForTaints + `,`,\n\t\t`ConfigSource:` + strings.Replace(this.ConfigSource.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`PodCIDRs:` + fmt.Sprintf(\"%v\", this.PodCIDRs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]NodeCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"NodeCondition\", \"NodeCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\trepeatedStringForAddresses := \"[]NodeAddress{\"\n\tfor _, f := range this.Addresses {\n\t\trepeatedStringForAddresses += strings.Replace(strings.Replace(f.String(), \"NodeAddress\", \"NodeAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAddresses += \"}\"\n\trepeatedStringForImages := \"[]ContainerImage{\"\n\tfor _, f := range this.Images {\n\t\trepeatedStringForImages += strings.Replace(strings.Replace(f.String(), \"ContainerImage\", \"ContainerImage\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImages += \"}\"\n\trepeatedStringForVolumesAttached := \"[]AttachedVolume{\"\n\tfor _, f := range this.VolumesAttached {\n\t\trepeatedStringForVolumesAttached += strings.Replace(strings.Replace(f.String(), \"AttachedVolume\", \"AttachedVolume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumesAttached += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\tkeysForAllocatable := make([]string, 0, len(this.Allocatable))\n\tfor k := range this.Allocatable {\n\t\tkeysForAllocatable = append(keysForAllocatable, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatable)\n\tmapStringForAllocatable := \"ResourceList{\"\n\tfor _, k := range keysForAllocatable {\n\t\tmapStringForAllocatable += fmt.Sprintf(\"%v: %v,\", k, this.Allocatable[ResourceName(k)])\n\t}\n\tmapStringForAllocatable += \"}\"\n\ts := strings.Join([]string{`&NodeStatus{`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`Allocatable:` + mapStringForAllocatable + `,`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Addresses:` + repeatedStringForAddresses + `,`,\n\t\t`DaemonEndpoints:` + strings.Replace(strings.Replace(this.DaemonEndpoints.String(), \"NodeDaemonEndpoints\", \"NodeDaemonEndpoints\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeInfo:` + strings.Replace(strings.Replace(this.NodeInfo.String(), \"NodeSystemInfo\", \"NodeSystemInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Images:` + repeatedStringForImages + `,`,\n\t\t`VolumesInUse:` + fmt.Sprintf(\"%v\", this.VolumesInUse) + `,`,\n\t\t`VolumesAttached:` + repeatedStringForVolumesAttached + `,`,\n\t\t`Config:` + strings.Replace(this.Config.String(), \"NodeConfigStatus\", \"NodeConfigStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSystemInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeSystemInfo{`,\n\t\t`MachineID:` + fmt.Sprintf(\"%v\", this.MachineID) + `,`,\n\t\t`SystemUUID:` + fmt.Sprintf(\"%v\", this.SystemUUID) + `,`,\n\t\t`BootID:` + fmt.Sprintf(\"%v\", this.BootID) + `,`,\n\t\t`KernelVersion:` + fmt.Sprintf(\"%v\", this.KernelVersion) + `,`,\n\t\t`OSImage:` + fmt.Sprintf(\"%v\", this.OSImage) + `,`,\n\t\t`ContainerRuntimeVersion:` + fmt.Sprintf(\"%v\", this.ContainerRuntimeVersion) + `,`,\n\t\t`KubeletVersion:` + fmt.Sprintf(\"%v\", this.KubeletVersion) + `,`,\n\t\t`KubeProxyVersion:` + fmt.Sprintf(\"%v\", this.KubeProxyVersion) + `,`,\n\t\t`OperatingSystem:` + fmt.Sprintf(\"%v\", this.OperatingSystem) + `,`,\n\t\t`Architecture:` + fmt.Sprintf(\"%v\", this.Architecture) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectFieldSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectFieldSelector{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`FieldPath:` + fmt.Sprintf(\"%v\", this.FieldPath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`FieldPath:` + fmt.Sprintf(\"%v\", this.FieldPath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolume{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeSpec\", \"PersistentVolumeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PersistentVolumeStatus\", \"PersistentVolumeStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaim{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeClaimSpec\", \"PersistentVolumeClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PersistentVolumeClaimStatus\", \"PersistentVolumeClaimStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PersistentVolumeClaim\", \"PersistentVolumeClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeClaimList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimSpec{`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + valueToStringGenerated(this.StorageClassName) + `,`,\n\t\t`VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`,\n\t\t`DataSource:` + strings.Replace(this.DataSource.String(), \"TypedLocalObjectReference\", \"TypedLocalObjectReference\", 1) + `,`,\n\t\t`DataSourceRef:` + strings.Replace(this.DataSourceRef.String(), \"TypedObjectReference\", \"TypedObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PersistentVolumeClaimCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PersistentVolumeClaimCondition\", \"PersistentVolumeClaimCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\tkeysForAllocatedResources := make([]string, 0, len(this.AllocatedResources))\n\tfor k := range this.AllocatedResources {\n\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\tmapStringForAllocatedResources := \"ResourceList{\"\n\tfor _, k := range keysForAllocatedResources {\n\t\tmapStringForAllocatedResources += fmt.Sprintf(\"%v: %v,\", k, this.AllocatedResources[ResourceName(k)])\n\t}\n\tmapStringForAllocatedResources += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeClaimStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AllocatedResources:` + mapStringForAllocatedResources + `,`,\n\t\t`ResizeStatus:` + valueToStringGenerated(this.ResizeStatus) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeClaimSpec\", \"PersistentVolumeClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimVolumeSource{`,\n\t\t`ClaimName:` + fmt.Sprintf(\"%v\", this.ClaimName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PersistentVolume{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PersistentVolume\", \"PersistentVolume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeSource{`,\n\t\t`GCEPersistentDisk:` + strings.Replace(this.GCEPersistentDisk.String(), \"GCEPersistentDiskVolumeSource\", \"GCEPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`AWSElasticBlockStore:` + strings.Replace(this.AWSElasticBlockStore.String(), \"AWSElasticBlockStoreVolumeSource\", \"AWSElasticBlockStoreVolumeSource\", 1) + `,`,\n\t\t`HostPath:` + strings.Replace(this.HostPath.String(), \"HostPathVolumeSource\", \"HostPathVolumeSource\", 1) + `,`,\n\t\t`Glusterfs:` + strings.Replace(this.Glusterfs.String(), \"GlusterfsPersistentVolumeSource\", \"GlusterfsPersistentVolumeSource\", 1) + `,`,\n\t\t`NFS:` + strings.Replace(this.NFS.String(), \"NFSVolumeSource\", \"NFSVolumeSource\", 1) + `,`,\n\t\t`RBD:` + strings.Replace(this.RBD.String(), \"RBDPersistentVolumeSource\", \"RBDPersistentVolumeSource\", 1) + `,`,\n\t\t`ISCSI:` + strings.Replace(this.ISCSI.String(), \"ISCSIPersistentVolumeSource\", \"ISCSIPersistentVolumeSource\", 1) + `,`,\n\t\t`Cinder:` + strings.Replace(this.Cinder.String(), \"CinderPersistentVolumeSource\", \"CinderPersistentVolumeSource\", 1) + `,`,\n\t\t`CephFS:` + strings.Replace(this.CephFS.String(), \"CephFSPersistentVolumeSource\", \"CephFSPersistentVolumeSource\", 1) + `,`,\n\t\t`FC:` + strings.Replace(this.FC.String(), \"FCVolumeSource\", \"FCVolumeSource\", 1) + `,`,\n\t\t`Flocker:` + strings.Replace(this.Flocker.String(), \"FlockerVolumeSource\", \"FlockerVolumeSource\", 1) + `,`,\n\t\t`FlexVolume:` + strings.Replace(this.FlexVolume.String(), \"FlexPersistentVolumeSource\", \"FlexPersistentVolumeSource\", 1) + `,`,\n\t\t`AzureFile:` + strings.Replace(this.AzureFile.String(), \"AzureFilePersistentVolumeSource\", \"AzureFilePersistentVolumeSource\", 1) + `,`,\n\t\t`VsphereVolume:` + strings.Replace(this.VsphereVolume.String(), \"VsphereVirtualDiskVolumeSource\", \"VsphereVirtualDiskVolumeSource\", 1) + `,`,\n\t\t`Quobyte:` + strings.Replace(this.Quobyte.String(), \"QuobyteVolumeSource\", \"QuobyteVolumeSource\", 1) + `,`,\n\t\t`AzureDisk:` + strings.Replace(this.AzureDisk.String(), \"AzureDiskVolumeSource\", \"AzureDiskVolumeSource\", 1) + `,`,\n\t\t`PhotonPersistentDisk:` + strings.Replace(this.PhotonPersistentDisk.String(), \"PhotonPersistentDiskVolumeSource\", \"PhotonPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`PortworxVolume:` + strings.Replace(this.PortworxVolume.String(), \"PortworxVolumeSource\", \"PortworxVolumeSource\", 1) + `,`,\n\t\t`ScaleIO:` + strings.Replace(this.ScaleIO.String(), \"ScaleIOPersistentVolumeSource\", \"ScaleIOPersistentVolumeSource\", 1) + `,`,\n\t\t`Local:` + strings.Replace(this.Local.String(), \"LocalVolumeSource\", \"LocalVolumeSource\", 1) + `,`,\n\t\t`StorageOS:` + strings.Replace(this.StorageOS.String(), \"StorageOSPersistentVolumeSource\", \"StorageOSPersistentVolumeSource\", 1) + `,`,\n\t\t`CSI:` + strings.Replace(this.CSI.String(), \"CSIPersistentVolumeSource\", \"CSIPersistentVolumeSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeSpec{`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`PersistentVolumeSource:` + strings.Replace(strings.Replace(this.PersistentVolumeSource.String(), \"PersistentVolumeSource\", \"PersistentVolumeSource\", 1), `&`, ``, 1) + `,`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`ClaimRef:` + strings.Replace(this.ClaimRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`PersistentVolumeReclaimPolicy:` + fmt.Sprintf(\"%v\", this.PersistentVolumeReclaimPolicy) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`,\n\t\t`NodeAffinity:` + strings.Replace(this.NodeAffinity.String(), \"VolumeNodeAffinity\", \"VolumeNodeAffinity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PhotonPersistentDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PhotonPersistentDiskVolumeSource{`,\n\t\t`PdID:` + fmt.Sprintf(\"%v\", this.PdID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Pod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Pod{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSpec\", \"PodSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodStatus\", \"PodStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution := \"[]PodAffinityTerm{\"\n\tfor _, f := range this.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += \"}\"\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]WeightedPodAffinityTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"WeightedPodAffinityTerm\", \"WeightedPodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&PodAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForRequiredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAffinityTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodAffinityTerm{`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`TopologyKey:` + fmt.Sprintf(\"%v\", this.TopologyKey) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAntiAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution := \"[]PodAffinityTerm{\"\n\tfor _, f := range this.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += \"}\"\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]WeightedPodAffinityTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"WeightedPodAffinityTerm\", \"WeightedPodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&PodAntiAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForRequiredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAttachOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodAttachOptions{`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDNSConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOptions := \"[]PodDNSConfigOption{\"\n\tfor _, f := range this.Options {\n\t\trepeatedStringForOptions += strings.Replace(strings.Replace(f.String(), \"PodDNSConfigOption\", \"PodDNSConfigOption\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOptions += \"}\"\n\ts := strings.Join([]string{`&PodDNSConfig{`,\n\t\t`Nameservers:` + fmt.Sprintf(\"%v\", this.Nameservers) + `,`,\n\t\t`Searches:` + fmt.Sprintf(\"%v\", this.Searches) + `,`,\n\t\t`Options:` + repeatedStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDNSConfigOption) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDNSConfigOption{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + valueToStringGenerated(this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodExecOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodExecOptions{`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodIP) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodIP{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Pod{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Pod\", \"Pod\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodLogOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodLogOptions{`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`Follow:` + fmt.Sprintf(\"%v\", this.Follow) + `,`,\n\t\t`Previous:` + fmt.Sprintf(\"%v\", this.Previous) + `,`,\n\t\t`SinceSeconds:` + valueToStringGenerated(this.SinceSeconds) + `,`,\n\t\t`SinceTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.SinceTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`Timestamps:` + fmt.Sprintf(\"%v\", this.Timestamps) + `,`,\n\t\t`TailLines:` + valueToStringGenerated(this.TailLines) + `,`,\n\t\t`LimitBytes:` + valueToStringGenerated(this.LimitBytes) + `,`,\n\t\t`InsecureSkipTLSVerifyBackend:` + fmt.Sprintf(\"%v\", this.InsecureSkipTLSVerifyBackend) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodOS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodOS{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodPortForwardOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodPortForwardOptions{`,\n\t\t`Ports:` + fmt.Sprintf(\"%v\", this.Ports) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodReadinessGate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodReadinessGate{`,\n\t\t`ConditionType:` + fmt.Sprintf(\"%v\", this.ConditionType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodResourceClaim{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"ClaimSource\", \"ClaimSource\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingGate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSchedulingGate{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSysctls := \"[]Sysctl{\"\n\tfor _, f := range this.Sysctls {\n\t\trepeatedStringForSysctls += strings.Replace(strings.Replace(f.String(), \"Sysctl\", \"Sysctl\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSysctls += \"}\"\n\ts := strings.Join([]string{`&PodSecurityContext{`,\n\t\t`SELinuxOptions:` + strings.Replace(this.SELinuxOptions.String(), \"SELinuxOptions\", \"SELinuxOptions\", 1) + `,`,\n\t\t`RunAsUser:` + valueToStringGenerated(this.RunAsUser) + `,`,\n\t\t`RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`,\n\t\t`SupplementalGroups:` + fmt.Sprintf(\"%v\", this.SupplementalGroups) + `,`,\n\t\t`FSGroup:` + valueToStringGenerated(this.FSGroup) + `,`,\n\t\t`RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`,\n\t\t`Sysctls:` + repeatedStringForSysctls + `,`,\n\t\t`WindowsOptions:` + strings.Replace(this.WindowsOptions.String(), \"WindowsSecurityContextOptions\", \"WindowsSecurityContextOptions\", 1) + `,`,\n\t\t`FSGroupChangePolicy:` + valueToStringGenerated(this.FSGroupChangePolicy) + `,`,\n\t\t`SeccompProfile:` + strings.Replace(this.SeccompProfile.String(), \"SeccompProfile\", \"SeccompProfile\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSignature) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSignature{`,\n\t\t`PodController:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodController), \"OwnerReference\", \"v1.OwnerReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumes := \"[]Volume{\"\n\tfor _, f := range this.Volumes {\n\t\trepeatedStringForVolumes += strings.Replace(strings.Replace(f.String(), \"Volume\", \"Volume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumes += \"}\"\n\trepeatedStringForContainers := \"[]Container{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(strings.Replace(f.String(), \"Container\", \"Container\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\trepeatedStringForImagePullSecrets := \"[]LocalObjectReference{\"\n\tfor _, f := range this.ImagePullSecrets {\n\t\trepeatedStringForImagePullSecrets += strings.Replace(strings.Replace(f.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImagePullSecrets += \"}\"\n\trepeatedStringForInitContainers := \"[]Container{\"\n\tfor _, f := range this.InitContainers {\n\t\trepeatedStringForInitContainers += strings.Replace(strings.Replace(f.String(), \"Container\", \"Container\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForInitContainers += \"}\"\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += strings.Replace(strings.Replace(f.String(), \"Toleration\", \"Toleration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\trepeatedStringForHostAliases := \"[]HostAlias{\"\n\tfor _, f := range this.HostAliases {\n\t\trepeatedStringForHostAliases += strings.Replace(strings.Replace(f.String(), \"HostAlias\", \"HostAlias\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHostAliases += \"}\"\n\trepeatedStringForReadinessGates := \"[]PodReadinessGate{\"\n\tfor _, f := range this.ReadinessGates {\n\t\trepeatedStringForReadinessGates += strings.Replace(strings.Replace(f.String(), \"PodReadinessGate\", \"PodReadinessGate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForReadinessGates += \"}\"\n\trepeatedStringForTopologySpreadConstraints := \"[]TopologySpreadConstraint{\"\n\tfor _, f := range this.TopologySpreadConstraints {\n\t\trepeatedStringForTopologySpreadConstraints += strings.Replace(strings.Replace(f.String(), \"TopologySpreadConstraint\", \"TopologySpreadConstraint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTopologySpreadConstraints += \"}\"\n\trepeatedStringForEphemeralContainers := \"[]EphemeralContainer{\"\n\tfor _, f := range this.EphemeralContainers {\n\t\trepeatedStringForEphemeralContainers += strings.Replace(strings.Replace(f.String(), \"EphemeralContainer\", \"EphemeralContainer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEphemeralContainers += \"}\"\n\trepeatedStringForSchedulingGates := \"[]PodSchedulingGate{\"\n\tfor _, f := range this.SchedulingGates {\n\t\trepeatedStringForSchedulingGates += strings.Replace(strings.Replace(f.String(), \"PodSchedulingGate\", \"PodSchedulingGate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSchedulingGates += \"}\"\n\trepeatedStringForResourceClaims := \"[]PodResourceClaim{\"\n\tfor _, f := range this.ResourceClaims {\n\t\trepeatedStringForResourceClaims += strings.Replace(strings.Replace(f.String(), \"PodResourceClaim\", \"PodResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceClaims += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\tkeysForOverhead := make([]string, 0, len(this.Overhead))\n\tfor k := range this.Overhead {\n\t\tkeysForOverhead = append(keysForOverhead, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOverhead)\n\tmapStringForOverhead := \"ResourceList{\"\n\tfor _, k := range keysForOverhead {\n\t\tmapStringForOverhead += fmt.Sprintf(\"%v: %v,\", k, this.Overhead[ResourceName(k)])\n\t}\n\tmapStringForOverhead += \"}\"\n\ts := strings.Join([]string{`&PodSpec{`,\n\t\t`Volumes:` + repeatedStringForVolumes + `,`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`RestartPolicy:` + fmt.Sprintf(\"%v\", this.RestartPolicy) + `,`,\n\t\t`TerminationGracePeriodSeconds:` + valueToStringGenerated(this.TerminationGracePeriodSeconds) + `,`,\n\t\t`ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`,\n\t\t`DNSPolicy:` + fmt.Sprintf(\"%v\", this.DNSPolicy) + `,`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`ServiceAccountName:` + fmt.Sprintf(\"%v\", this.ServiceAccountName) + `,`,\n\t\t`DeprecatedServiceAccount:` + fmt.Sprintf(\"%v\", this.DeprecatedServiceAccount) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`HostNetwork:` + fmt.Sprintf(\"%v\", this.HostNetwork) + `,`,\n\t\t`HostPID:` + fmt.Sprintf(\"%v\", this.HostPID) + `,`,\n\t\t`HostIPC:` + fmt.Sprintf(\"%v\", this.HostIPC) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"PodSecurityContext\", \"PodSecurityContext\", 1) + `,`,\n\t\t`ImagePullSecrets:` + repeatedStringForImagePullSecrets + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Subdomain:` + fmt.Sprintf(\"%v\", this.Subdomain) + `,`,\n\t\t`Affinity:` + strings.Replace(this.Affinity.String(), \"Affinity\", \"Affinity\", 1) + `,`,\n\t\t`SchedulerName:` + fmt.Sprintf(\"%v\", this.SchedulerName) + `,`,\n\t\t`InitContainers:` + repeatedStringForInitContainers + `,`,\n\t\t`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`HostAliases:` + repeatedStringForHostAliases + `,`,\n\t\t`PriorityClassName:` + fmt.Sprintf(\"%v\", this.PriorityClassName) + `,`,\n\t\t`Priority:` + valueToStringGenerated(this.Priority) + `,`,\n\t\t`DNSConfig:` + strings.Replace(this.DNSConfig.String(), \"PodDNSConfig\", \"PodDNSConfig\", 1) + `,`,\n\t\t`ShareProcessNamespace:` + valueToStringGenerated(this.ShareProcessNamespace) + `,`,\n\t\t`ReadinessGates:` + repeatedStringForReadinessGates + `,`,\n\t\t`RuntimeClassName:` + valueToStringGenerated(this.RuntimeClassName) + `,`,\n\t\t`EnableServiceLinks:` + valueToStringGenerated(this.EnableServiceLinks) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`Overhead:` + mapStringForOverhead + `,`,\n\t\t`TopologySpreadConstraints:` + repeatedStringForTopologySpreadConstraints + `,`,\n\t\t`EphemeralContainers:` + repeatedStringForEphemeralContainers + `,`,\n\t\t`SetHostnameAsFQDN:` + valueToStringGenerated(this.SetHostnameAsFQDN) + `,`,\n\t\t`OS:` + strings.Replace(this.OS.String(), \"PodOS\", \"PodOS\", 1) + `,`,\n\t\t`HostUsers:` + valueToStringGenerated(this.HostUsers) + `,`,\n\t\t`SchedulingGates:` + repeatedStringForSchedulingGates + `,`,\n\t\t`ResourceClaims:` + repeatedStringForResourceClaims + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PodCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PodCondition\", \"PodCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\trepeatedStringForContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.ContainerStatuses {\n\t\trepeatedStringForContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForContainerStatuses += \"}\"\n\trepeatedStringForInitContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.InitContainerStatuses {\n\t\trepeatedStringForInitContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForInitContainerStatuses += \"}\"\n\trepeatedStringForPodIPs := \"[]PodIP{\"\n\tfor _, f := range this.PodIPs {\n\t\trepeatedStringForPodIPs += strings.Replace(strings.Replace(f.String(), \"PodIP\", \"PodIP\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPodIPs += \"}\"\n\trepeatedStringForEphemeralContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.EphemeralContainerStatuses {\n\t\trepeatedStringForEphemeralContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEphemeralContainerStatuses += \"}\"\n\ts := strings.Join([]string{`&PodStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`HostIP:` + fmt.Sprintf(\"%v\", this.HostIP) + `,`,\n\t\t`PodIP:` + fmt.Sprintf(\"%v\", this.PodIP) + `,`,\n\t\t`StartTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.StartTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`ContainerStatuses:` + repeatedStringForContainerStatuses + `,`,\n\t\t`QOSClass:` + fmt.Sprintf(\"%v\", this.QOSClass) + `,`,\n\t\t`InitContainerStatuses:` + repeatedStringForInitContainerStatuses + `,`,\n\t\t`NominatedNodeName:` + fmt.Sprintf(\"%v\", this.NominatedNodeName) + `,`,\n\t\t`PodIPs:` + repeatedStringForPodIPs + `,`,\n\t\t`EphemeralContainerStatuses:` + repeatedStringForEphemeralContainerStatuses + `,`,\n\t\t`Resize:` + fmt.Sprintf(\"%v\", this.Resize) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodStatusResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodStatusResult{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodStatus\", \"PodStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(this.Template.String(), \"PodTemplateSpec\", \"PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodTemplate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodTemplate\", \"PodTemplate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodTemplateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSpec\", \"PodSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortworxVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortworxVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Preconditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Preconditions{`,\n\t\t`UID:` + valueToStringGenerated(this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferAvoidPodsEntry) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreferAvoidPodsEntry{`,\n\t\t`PodSignature:` + strings.Replace(strings.Replace(this.PodSignature.String(), \"PodSignature\", \"PodSignature\", 1), `&`, ``, 1) + `,`,\n\t\t`EvictionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EvictionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferredSchedulingTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreferredSchedulingTerm{`,\n\t\t`Weight:` + fmt.Sprintf(\"%v\", this.Weight) + `,`,\n\t\t`Preference:` + strings.Replace(strings.Replace(this.Preference.String(), \"NodeSelectorTerm\", \"NodeSelectorTerm\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Probe) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Probe{`,\n\t\t`ProbeHandler:` + strings.Replace(strings.Replace(this.ProbeHandler.String(), \"ProbeHandler\", \"ProbeHandler\", 1), `&`, ``, 1) + `,`,\n\t\t`InitialDelaySeconds:` + fmt.Sprintf(\"%v\", this.InitialDelaySeconds) + `,`,\n\t\t`TimeoutSeconds:` + fmt.Sprintf(\"%v\", this.TimeoutSeconds) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`SuccessThreshold:` + fmt.Sprintf(\"%v\", this.SuccessThreshold) + `,`,\n\t\t`FailureThreshold:` + fmt.Sprintf(\"%v\", this.FailureThreshold) + `,`,\n\t\t`TerminationGracePeriodSeconds:` + valueToStringGenerated(this.TerminationGracePeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ProbeHandler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ProbeHandler{`,\n\t\t`Exec:` + strings.Replace(this.Exec.String(), \"ExecAction\", \"ExecAction\", 1) + `,`,\n\t\t`HTTPGet:` + strings.Replace(this.HTTPGet.String(), \"HTTPGetAction\", \"HTTPGetAction\", 1) + `,`,\n\t\t`TCPSocket:` + strings.Replace(this.TCPSocket.String(), \"TCPSocketAction\", \"TCPSocketAction\", 1) + `,`,\n\t\t`GRPC:` + strings.Replace(this.GRPC.String(), \"GRPCAction\", \"GRPCAction\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ProjectedVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSources := \"[]VolumeProjection{\"\n\tfor _, f := range this.Sources {\n\t\trepeatedStringForSources += strings.Replace(strings.Replace(f.String(), \"VolumeProjection\", \"VolumeProjection\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSources += \"}\"\n\ts := strings.Join([]string{`&ProjectedVolumeSource{`,\n\t\t`Sources:` + repeatedStringForSources + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QuobyteVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QuobyteVolumeSource{`,\n\t\t`Registry:` + fmt.Sprintf(\"%v\", this.Registry) + `,`,\n\t\t`Volume:` + fmt.Sprintf(\"%v\", this.Volume) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Tenant:` + fmt.Sprintf(\"%v\", this.Tenant) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RBDPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RBDPersistentVolumeSource{`,\n\t\t`CephMonitors:` + fmt.Sprintf(\"%v\", this.CephMonitors) + `,`,\n\t\t`RBDImage:` + fmt.Sprintf(\"%v\", this.RBDImage) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`RBDPool:` + fmt.Sprintf(\"%v\", this.RBDPool) + `,`,\n\t\t`RadosUser:` + fmt.Sprintf(\"%v\", this.RadosUser) + `,`,\n\t\t`Keyring:` + fmt.Sprintf(\"%v\", this.Keyring) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RBDVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RBDVolumeSource{`,\n\t\t`CephMonitors:` + fmt.Sprintf(\"%v\", this.CephMonitors) + `,`,\n\t\t`RBDImage:` + fmt.Sprintf(\"%v\", this.RBDImage) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`RBDPool:` + fmt.Sprintf(\"%v\", this.RBDPool) + `,`,\n\t\t`RadosUser:` + fmt.Sprintf(\"%v\", this.RadosUser) + `,`,\n\t\t`Keyring:` + fmt.Sprintf(\"%v\", this.Keyring) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RangeAllocation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RangeAllocation{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Range:` + fmt.Sprintf(\"%v\", this.Range) + `,`,\n\t\t`Data:` + valueToStringGenerated(this.Data) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationController) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicationController{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicationControllerSpec\", \"ReplicationControllerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicationControllerStatus\", \"ReplicationControllerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicationControllerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicationController{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicationController\", \"ReplicationController\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`Template:` + strings.Replace(this.Template.String(), \"PodTemplateSpec\", \"PodTemplateSpec\", 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicationControllerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicationControllerCondition\", \"ReplicationControllerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaim{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceFieldSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceFieldSelector{`,\n\t\t`ContainerName:` + fmt.Sprintf(\"%v\", this.ContainerName) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Divisor:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Divisor), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuota) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceQuota{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceQuotaSpec\", \"ResourceQuotaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ResourceQuotaStatus\", \"ResourceQuotaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceQuota{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceQuota\", \"ResourceQuota\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForHard := make([]string, 0, len(this.Hard))\n\tfor k := range this.Hard {\n\t\tkeysForHard = append(keysForHard, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\tmapStringForHard := \"ResourceList{\"\n\tfor _, k := range keysForHard {\n\t\tmapStringForHard += fmt.Sprintf(\"%v: %v,\", k, this.Hard[ResourceName(k)])\n\t}\n\tmapStringForHard += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaSpec{`,\n\t\t`Hard:` + mapStringForHard + `,`,\n\t\t`Scopes:` + fmt.Sprintf(\"%v\", this.Scopes) + `,`,\n\t\t`ScopeSelector:` + strings.Replace(this.ScopeSelector.String(), \"ScopeSelector\", \"ScopeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForHard := make([]string, 0, len(this.Hard))\n\tfor k := range this.Hard {\n\t\tkeysForHard = append(keysForHard, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\tmapStringForHard := \"ResourceList{\"\n\tfor _, k := range keysForHard {\n\t\tmapStringForHard += fmt.Sprintf(\"%v: %v,\", k, this.Hard[ResourceName(k)])\n\t}\n\tmapStringForHard += \"}\"\n\tkeysForUsed := make([]string, 0, len(this.Used))\n\tfor k := range this.Used {\n\t\tkeysForUsed = append(keysForUsed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUsed)\n\tmapStringForUsed := \"ResourceList{\"\n\tfor _, k := range keysForUsed {\n\t\tmapStringForUsed += fmt.Sprintf(\"%v: %v,\", k, this.Used[ResourceName(k)])\n\t}\n\tmapStringForUsed += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaStatus{`,\n\t\t`Hard:` + mapStringForHard + `,`,\n\t\t`Used:` + mapStringForUsed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRequirements) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClaims := \"[]ResourceClaim{\"\n\tfor _, f := range this.Claims {\n\t\trepeatedStringForClaims += strings.Replace(strings.Replace(f.String(), \"ResourceClaim\", \"ResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForClaims += \"}\"\n\tkeysForLimits := make([]string, 0, len(this.Limits))\n\tfor k := range this.Limits {\n\t\tkeysForLimits = append(keysForLimits, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\tmapStringForLimits := \"ResourceList{\"\n\tfor _, k := range keysForLimits {\n\t\tmapStringForLimits += fmt.Sprintf(\"%v: %v,\", k, this.Limits[ResourceName(k)])\n\t}\n\tmapStringForLimits += \"}\"\n\tkeysForRequests := make([]string, 0, len(this.Requests))\n\tfor k := range this.Requests {\n\t\tkeysForRequests = append(keysForRequests, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\tmapStringForRequests := \"ResourceList{\"\n\tfor _, k := range keysForRequests {\n\t\tmapStringForRequests += fmt.Sprintf(\"%v: %v,\", k, this.Requests[ResourceName(k)])\n\t}\n\tmapStringForRequests += \"}\"\n\ts := strings.Join([]string{`&ResourceRequirements{`,\n\t\t`Limits:` + mapStringForLimits + `,`,\n\t\t`Requests:` + mapStringForRequests + `,`,\n\t\t`Claims:` + repeatedStringForClaims + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SELinuxOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SELinuxOptions{`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Role:` + fmt.Sprintf(\"%v\", this.Role) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Level:` + fmt.Sprintf(\"%v\", this.Level) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleIOPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleIOPersistentVolumeSource{`,\n\t\t`Gateway:` + fmt.Sprintf(\"%v\", this.Gateway) + `,`,\n\t\t`System:` + fmt.Sprintf(\"%v\", this.System) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`SSLEnabled:` + fmt.Sprintf(\"%v\", this.SSLEnabled) + `,`,\n\t\t`ProtectionDomain:` + fmt.Sprintf(\"%v\", this.ProtectionDomain) + `,`,\n\t\t`StoragePool:` + fmt.Sprintf(\"%v\", this.StoragePool) + `,`,\n\t\t`StorageMode:` + fmt.Sprintf(\"%v\", this.StorageMode) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleIOVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleIOVolumeSource{`,\n\t\t`Gateway:` + fmt.Sprintf(\"%v\", this.Gateway) + `,`,\n\t\t`System:` + fmt.Sprintf(\"%v\", this.System) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`SSLEnabled:` + fmt.Sprintf(\"%v\", this.SSLEnabled) + `,`,\n\t\t`ProtectionDomain:` + fmt.Sprintf(\"%v\", this.ProtectionDomain) + `,`,\n\t\t`StoragePool:` + fmt.Sprintf(\"%v\", this.StoragePool) + `,`,\n\t\t`StorageMode:` + fmt.Sprintf(\"%v\", this.StorageMode) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScopeSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]ScopedResourceSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"ScopedResourceSelectorRequirement\", \"ScopedResourceSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\ts := strings.Join([]string{`&ScopeSelector{`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScopedResourceSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScopedResourceSelectorRequirement{`,\n\t\t`ScopeName:` + fmt.Sprintf(\"%v\", this.ScopeName) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SeccompProfile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SeccompProfile{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`LocalhostProfile:` + valueToStringGenerated(this.LocalhostProfile) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Secret) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForData := make([]string, 0, len(this.Data))\n\tfor k := range this.Data {\n\t\tkeysForData = append(keysForData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\tmapStringForData := \"map[string][]byte{\"\n\tfor _, k := range keysForData {\n\t\tmapStringForData += fmt.Sprintf(\"%v: %v,\", k, this.Data[k])\n\t}\n\tmapStringForData += \"}\"\n\tkeysForStringData := make([]string, 0, len(this.StringData))\n\tfor k := range this.StringData {\n\t\tkeysForStringData = append(keysForStringData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForStringData)\n\tmapStringForStringData := \"map[string]string{\"\n\tfor _, k := range keysForStringData {\n\t\tmapStringForStringData += fmt.Sprintf(\"%v: %v,\", k, this.StringData[k])\n\t}\n\tmapStringForStringData += \"}\"\n\ts := strings.Join([]string{`&Secret{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + mapStringForData + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`StringData:` + mapStringForStringData + `,`,\n\t\t`Immutable:` + valueToStringGenerated(this.Immutable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretEnvSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretEnvSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretKeySelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretKeySelector{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Secret{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Secret\", \"Secret\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretProjection{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecurityContext{`,\n\t\t`Capabilities:` + strings.Replace(this.Capabilities.String(), \"Capabilities\", \"Capabilities\", 1) + `,`,\n\t\t`Privileged:` + valueToStringGenerated(this.Privileged) + `,`,\n\t\t`SELinuxOptions:` + strings.Replace(this.SELinuxOptions.String(), \"SELinuxOptions\", \"SELinuxOptions\", 1) + `,`,\n\t\t`RunAsUser:` + valueToStringGenerated(this.RunAsUser) + `,`,\n\t\t`RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`,\n\t\t`ReadOnlyRootFilesystem:` + valueToStringGenerated(this.ReadOnlyRootFilesystem) + `,`,\n\t\t`AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`,\n\t\t`RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`,\n\t\t`ProcMount:` + valueToStringGenerated(this.ProcMount) + `,`,\n\t\t`WindowsOptions:` + strings.Replace(this.WindowsOptions.String(), \"WindowsSecurityContextOptions\", \"WindowsSecurityContextOptions\", 1) + `,`,\n\t\t`SeccompProfile:` + strings.Replace(this.SeccompProfile.String(), \"SeccompProfile\", \"SeccompProfile\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SerializedReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SerializedReference{`,\n\t\t`Reference:` + strings.Replace(strings.Replace(this.Reference.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Service) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Service{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ServiceSpec\", \"ServiceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ServiceStatus\", \"ServiceStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSecrets := \"[]ObjectReference{\"\n\tfor _, f := range this.Secrets {\n\t\trepeatedStringForSecrets += strings.Replace(strings.Replace(f.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSecrets += \"}\"\n\trepeatedStringForImagePullSecrets := \"[]LocalObjectReference{\"\n\tfor _, f := range this.ImagePullSecrets {\n\t\trepeatedStringForImagePullSecrets += strings.Replace(strings.Replace(f.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImagePullSecrets += \"}\"\n\ts := strings.Join([]string{`&ServiceAccount{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Secrets:` + repeatedStringForSecrets + `,`,\n\t\t`ImagePullSecrets:` + repeatedStringForImagePullSecrets + `,`,\n\t\t`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ServiceAccount{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ServiceAccount\", \"ServiceAccount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceAccountList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountTokenProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountTokenProjection{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Service{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Service\", \"Service\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServicePort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServicePort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`TargetPort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetPort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`NodePort:` + fmt.Sprintf(\"%v\", this.NodePort) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ServicePort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ServicePort\", \"ServicePort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ServiceSpec{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`ClusterIP:` + fmt.Sprintf(\"%v\", this.ClusterIP) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`ExternalIPs:` + fmt.Sprintf(\"%v\", this.ExternalIPs) + `,`,\n\t\t`SessionAffinity:` + fmt.Sprintf(\"%v\", this.SessionAffinity) + `,`,\n\t\t`LoadBalancerIP:` + fmt.Sprintf(\"%v\", this.LoadBalancerIP) + `,`,\n\t\t`LoadBalancerSourceRanges:` + fmt.Sprintf(\"%v\", this.LoadBalancerSourceRanges) + `,`,\n\t\t`ExternalName:` + fmt.Sprintf(\"%v\", this.ExternalName) + `,`,\n\t\t`ExternalTrafficPolicy:` + fmt.Sprintf(\"%v\", this.ExternalTrafficPolicy) + `,`,\n\t\t`HealthCheckNodePort:` + fmt.Sprintf(\"%v\", this.HealthCheckNodePort) + `,`,\n\t\t`PublishNotReadyAddresses:` + fmt.Sprintf(\"%v\", this.PublishNotReadyAddresses) + `,`,\n\t\t`SessionAffinityConfig:` + strings.Replace(this.SessionAffinityConfig.String(), \"SessionAffinityConfig\", \"SessionAffinityConfig\", 1) + `,`,\n\t\t`IPFamilyPolicy:` + valueToStringGenerated(this.IPFamilyPolicy) + `,`,\n\t\t`ClusterIPs:` + fmt.Sprintf(\"%v\", this.ClusterIPs) + `,`,\n\t\t`IPFamilies:` + fmt.Sprintf(\"%v\", this.IPFamilies) + `,`,\n\t\t`AllocateLoadBalancerNodePorts:` + valueToStringGenerated(this.AllocateLoadBalancerNodePorts) + `,`,\n\t\t`LoadBalancerClass:` + valueToStringGenerated(this.LoadBalancerClass) + `,`,\n\t\t`InternalTrafficPolicy:` + valueToStringGenerated(this.InternalTrafficPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ServiceStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"LoadBalancerStatus\", \"LoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SessionAffinityConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SessionAffinityConfig{`,\n\t\t`ClientIP:` + strings.Replace(this.ClientIP.String(), \"ClientIPConfig\", \"ClientIPConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageOSPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageOSPersistentVolumeSource{`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`VolumeNamespace:` + fmt.Sprintf(\"%v\", this.VolumeNamespace) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageOSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageOSVolumeSource{`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`VolumeNamespace:` + fmt.Sprintf(\"%v\", this.VolumeNamespace) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Sysctl) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Sysctl{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TCPSocketAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TCPSocketAction{`,\n\t\t`Port:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Taint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Taint{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`Effect:` + fmt.Sprintf(\"%v\", this.Effect) + `,`,\n\t\t`TimeAdded:` + strings.Replace(fmt.Sprintf(\"%v\", this.TimeAdded), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Toleration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Toleration{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`Effect:` + fmt.Sprintf(\"%v\", this.Effect) + `,`,\n\t\t`TolerationSeconds:` + valueToStringGenerated(this.TolerationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySelectorLabelRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TopologySelectorLabelRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySelectorTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchLabelExpressions := \"[]TopologySelectorLabelRequirement{\"\n\tfor _, f := range this.MatchLabelExpressions {\n\t\trepeatedStringForMatchLabelExpressions += strings.Replace(strings.Replace(f.String(), \"TopologySelectorLabelRequirement\", \"TopologySelectorLabelRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchLabelExpressions += \"}\"\n\ts := strings.Join([]string{`&TopologySelectorTerm{`,\n\t\t`MatchLabelExpressions:` + repeatedStringForMatchLabelExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySpreadConstraint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TopologySpreadConstraint{`,\n\t\t`MaxSkew:` + fmt.Sprintf(\"%v\", this.MaxSkew) + `,`,\n\t\t`TopologyKey:` + fmt.Sprintf(\"%v\", this.TopologyKey) + `,`,\n\t\t`WhenUnsatisfiable:` + fmt.Sprintf(\"%v\", this.WhenUnsatisfiable) + `,`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MinDomains:` + valueToStringGenerated(this.MinDomains) + `,`,\n\t\t`NodeAffinityPolicy:` + valueToStringGenerated(this.NodeAffinityPolicy) + `,`,\n\t\t`NodeTaintsPolicy:` + valueToStringGenerated(this.NodeTaintsPolicy) + `,`,\n\t\t`MatchLabelKeys:` + fmt.Sprintf(\"%v\", this.MatchLabelKeys) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypedLocalObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypedLocalObjectReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypedObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypedObjectReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Volume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Volume{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`VolumeSource:` + strings.Replace(strings.Replace(this.VolumeSource.String(), \"VolumeSource\", \"VolumeSource\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeDevice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeDevice{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DevicePath:` + fmt.Sprintf(\"%v\", this.DevicePath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeMount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeMount{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`MountPath:` + fmt.Sprintf(\"%v\", this.MountPath) + `,`,\n\t\t`SubPath:` + fmt.Sprintf(\"%v\", this.SubPath) + `,`,\n\t\t`MountPropagation:` + valueToStringGenerated(this.MountPropagation) + `,`,\n\t\t`SubPathExpr:` + fmt.Sprintf(\"%v\", this.SubPathExpr) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeAffinity{`,\n\t\t`Required:` + strings.Replace(this.Required.String(), \"NodeSelector\", \"NodeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeProjection{`,\n\t\t`Secret:` + strings.Replace(this.Secret.String(), \"SecretProjection\", \"SecretProjection\", 1) + `,`,\n\t\t`DownwardAPI:` + strings.Replace(this.DownwardAPI.String(), \"DownwardAPIProjection\", \"DownwardAPIProjection\", 1) + `,`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapProjection\", \"ConfigMapProjection\", 1) + `,`,\n\t\t`ServiceAccountToken:` + strings.Replace(this.ServiceAccountToken.String(), \"ServiceAccountTokenProjection\", \"ServiceAccountTokenProjection\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeSource{`,\n\t\t`HostPath:` + strings.Replace(this.HostPath.String(), \"HostPathVolumeSource\", \"HostPathVolumeSource\", 1) + `,`,\n\t\t`EmptyDir:` + strings.Replace(this.EmptyDir.String(), \"EmptyDirVolumeSource\", \"EmptyDirVolumeSource\", 1) + `,`,\n\t\t`GCEPersistentDisk:` + strings.Replace(this.GCEPersistentDisk.String(), \"GCEPersistentDiskVolumeSource\", \"GCEPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`AWSElasticBlockStore:` + strings.Replace(this.AWSElasticBlockStore.String(), \"AWSElasticBlockStoreVolumeSource\", \"AWSElasticBlockStoreVolumeSource\", 1) + `,`,\n\t\t`GitRepo:` + strings.Replace(this.GitRepo.String(), \"GitRepoVolumeSource\", \"GitRepoVolumeSource\", 1) + `,`,\n\t\t`Secret:` + strings.Replace(this.Secret.String(), \"SecretVolumeSource\", \"SecretVolumeSource\", 1) + `,`,\n\t\t`NFS:` + strings.Replace(this.NFS.String(), \"NFSVolumeSource\", \"NFSVolumeSource\", 1) + `,`,\n\t\t`ISCSI:` + strings.Replace(this.ISCSI.String(), \"ISCSIVolumeSource\", \"ISCSIVolumeSource\", 1) + `,`,\n\t\t`Glusterfs:` + strings.Replace(this.Glusterfs.String(), \"GlusterfsVolumeSource\", \"GlusterfsVolumeSource\", 1) + `,`,\n\t\t`PersistentVolumeClaim:` + strings.Replace(this.PersistentVolumeClaim.String(), \"PersistentVolumeClaimVolumeSource\", \"PersistentVolumeClaimVolumeSource\", 1) + `,`,\n\t\t`RBD:` + strings.Replace(this.RBD.String(), \"RBDVolumeSource\", \"RBDVolumeSource\", 1) + `,`,\n\t\t`FlexVolume:` + strings.Replace(this.FlexVolume.String(), \"FlexVolumeSource\", \"FlexVolumeSource\", 1) + `,`,\n\t\t`Cinder:` + strings.Replace(this.Cinder.String(), \"CinderVolumeSource\", \"CinderVolumeSource\", 1) + `,`,\n\t\t`CephFS:` + strings.Replace(this.CephFS.String(), \"CephFSVolumeSource\", \"CephFSVolumeSource\", 1) + `,`,\n\t\t`Flocker:` + strings.Replace(this.Flocker.String(), \"FlockerVolumeSource\", \"FlockerVolumeSource\", 1) + `,`,\n\t\t`DownwardAPI:` + strings.Replace(this.DownwardAPI.String(), \"DownwardAPIVolumeSource\", \"DownwardAPIVolumeSource\", 1) + `,`,\n\t\t`FC:` + strings.Replace(this.FC.String(), \"FCVolumeSource\", \"FCVolumeSource\", 1) + `,`,\n\t\t`AzureFile:` + strings.Replace(this.AzureFile.String(), \"AzureFileVolumeSource\", \"AzureFileVolumeSource\", 1) + `,`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapVolumeSource\", \"ConfigMapVolumeSource\", 1) + `,`,\n\t\t`VsphereVolume:` + strings.Replace(this.VsphereVolume.String(), \"VsphereVirtualDiskVolumeSource\", \"VsphereVirtualDiskVolumeSource\", 1) + `,`,\n\t\t`Quobyte:` + strings.Replace(this.Quobyte.String(), \"QuobyteVolumeSource\", \"QuobyteVolumeSource\", 1) + `,`,\n\t\t`AzureDisk:` + strings.Replace(this.AzureDisk.String(), \"AzureDiskVolumeSource\", \"AzureDiskVolumeSource\", 1) + `,`,\n\t\t`PhotonPersistentDisk:` + strings.Replace(this.PhotonPersistentDisk.String(), \"PhotonPersistentDiskVolumeSource\", \"PhotonPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`PortworxVolume:` + strings.Replace(this.PortworxVolume.String(), \"PortworxVolumeSource\", \"PortworxVolumeSource\", 1) + `,`,\n\t\t`ScaleIO:` + strings.Replace(this.ScaleIO.String(), \"ScaleIOVolumeSource\", \"ScaleIOVolumeSource\", 1) + `,`,\n\t\t`Projected:` + strings.Replace(this.Projected.String(), \"ProjectedVolumeSource\", \"ProjectedVolumeSource\", 1) + `,`,\n\t\t`StorageOS:` + strings.Replace(this.StorageOS.String(), \"StorageOSVolumeSource\", \"StorageOSVolumeSource\", 1) + `,`,\n\t\t`CSI:` + strings.Replace(this.CSI.String(), \"CSIVolumeSource\", \"CSIVolumeSource\", 1) + `,`,\n\t\t`Ephemeral:` + strings.Replace(this.Ephemeral.String(), \"EphemeralVolumeSource\", \"EphemeralVolumeSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VsphereVirtualDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VsphereVirtualDiskVolumeSource{`,\n\t\t`VolumePath:` + fmt.Sprintf(\"%v\", this.VolumePath) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`StoragePolicyName:` + fmt.Sprintf(\"%v\", this.StoragePolicyName) + `,`,\n\t\t`StoragePolicyID:` + fmt.Sprintf(\"%v\", this.StoragePolicyID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WeightedPodAffinityTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WeightedPodAffinityTerm{`,\n\t\t`Weight:` + fmt.Sprintf(\"%v\", this.Weight) + `,`,\n\t\t`PodAffinityTerm:` + strings.Replace(strings.Replace(this.PodAffinityTerm.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsSecurityContextOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsSecurityContextOptions{`,\n\t\t`GMSACredentialSpecName:` + valueToStringGenerated(this.GMSACredentialSpecName) + `,`,\n\t\t`GMSACredentialSpec:` + valueToStringGenerated(this.GMSACredentialSpec) + `,`,\n\t\t`RunAsUserName:` + valueToStringGenerated(this.RunAsUserName) + `,`,\n\t\t`HostProcess:` + valueToStringGenerated(this.HostProcess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AWSElasticBlockStoreVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AWSElasticBlockStoreVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tm.Partition = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Partition |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Affinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Affinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Affinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeAffinity == nil {\n\t\t\t\tm.NodeAffinity = &NodeAffinity{}\n\t\t\t}\n\t\t\tif err := m.NodeAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodAffinity == nil {\n\t\t\t\tm.PodAffinity = &PodAffinity{}\n\t\t\t}\n\t\t\tif err := m.PodAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAntiAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodAntiAffinity == nil {\n\t\t\t\tm.PodAntiAffinity = &PodAntiAffinity{}\n\t\t\t}\n\t\t\tif err := m.PodAntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AttachedVolume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AttachedVolume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AttachedVolume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = UniqueVolumeName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AvoidPods) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AvoidPods: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AvoidPods: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferAvoidPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferAvoidPods = append(m.PreferAvoidPods, PreferAvoidPodsEntry{})\n\t\t\tif err := m.PreferAvoidPods[len(m.PreferAvoidPods)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiskName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DiskName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataDiskURI\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DataDiskURI = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CachingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := AzureDataDiskCachingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.CachingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnly = &b\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := AzureDataDiskKind(dAtA[iNdEx:postIndex])\n\t\t\tm.Kind = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureFilePersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFilePersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFilePersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShareName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SecretNamespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureFileVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFileVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFileVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShareName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Binding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Binding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Binding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeHandle\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeHandle = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeAttributes == nil {\n\t\t\t\tm.VolumeAttributes = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.VolumeAttributes[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ControllerPublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ControllerPublishSecretRef == nil {\n\t\t\t\tm.ControllerPublishSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.ControllerPublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeStageSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeStageSecretRef == nil {\n\t\t\t\tm.NodeStageSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodeStageSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodePublishSecretRef == nil {\n\t\t\t\tm.NodePublishSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodePublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ControllerExpandSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ControllerExpandSecretRef == nil {\n\t\t\t\tm.ControllerExpandSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.ControllerExpandSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeExpandSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeExpandSecretRef == nil {\n\t\t\t\tm.NodeExpandSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodeExpandSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnly = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeAttributes == nil {\n\t\t\t\tm.VolumeAttributes = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.VolumeAttributes[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodePublishSecretRef == nil {\n\t\t\t\tm.NodePublishSecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.NodePublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Capabilities) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Capabilities: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Capabilities: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Add\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Add = append(m.Add, Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drop\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drop = append(m.Drop, Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CephFSPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Monitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Monitors = append(m.Monitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretFile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretFile = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CephFSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Monitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Monitors = append(m.Monitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretFile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretFile = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CinderPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CinderPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CinderPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CinderVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CinderVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CinderVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClaimSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClaimSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClaimSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceClaimName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimTemplateName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceClaimTemplateName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClientIPConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClientIPConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClientIPConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ComponentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ComponentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentStatusList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatusList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatusList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ComponentStatus{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMap) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMap: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMap: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Data[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BinaryData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BinaryData == nil {\n\t\t\t\tm.BinaryData = make(map[string][]byte)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := []byte{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapbyteLen uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapbyteLen |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintMapbyteLen := int(mapbyteLen)\n\t\t\t\t\tif intMapbyteLen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostbytesIndex := iNdEx + intMapbyteLen\n\t\t\t\t\tif postbytesIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postbytesIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = make([]byte, mapbyteLen)\n\t\t\t\t\tcopy(mapvalue, dAtA[iNdEx:postbytesIndex])\n\t\t\t\t\tiNdEx = postbytesIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BinaryData[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Immutable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Immutable = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapEnvSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapEnvSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapEnvSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapKeySelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapKeySelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapKeySelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ConfigMap{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapNodeConfigSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapNodeConfigSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapNodeConfigSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletConfigKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeletConfigKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Container) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Container: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Container: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingDir\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WorkingDir = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ContainerPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Env\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Env = append(m.Env, EnvVar{})\n\t\t\tif err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeMounts = append(m.VolumeMounts, VolumeMount{})\n\t\t\tif err := m.VolumeMounts[len(m.VolumeMounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LivenessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LivenessProbe == nil {\n\t\t\t\tm.LivenessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.LivenessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ReadinessProbe == nil {\n\t\t\t\tm.ReadinessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.ReadinessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lifecycle\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Lifecycle == nil {\n\t\t\t\tm.Lifecycle = &Lifecycle{}\n\t\t\t}\n\t\t\tif err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullPolicy = PullPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &SecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 17:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StdinOnce\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StdinOnce = bool(v != 0)\n\t\tcase 18:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnvFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EnvFrom = append(m.EnvFrom, EnvFromSource{})\n\t\t\tif err := m.EnvFrom[len(m.EnvFrom)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePolicy = TerminationMessagePolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeDevices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeDevices = append(m.VolumeDevices, VolumeDevice{})\n\t\t\tif err := m.VolumeDevices[len(m.VolumeDevices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartupProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartupProbe == nil {\n\t\t\t\tm.StartupProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.StartupProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResizePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResizePolicy = append(m.ResizePolicy, ContainerResizePolicy{})\n\t\t\tif err := m.ResizePolicy[len(m.ResizePolicy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerImage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerImage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerImage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Names\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Names = append(m.Names, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SizeBytes\", wireType)\n\t\t\t}\n\t\t\tm.SizeBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.SizeBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPort\", wireType)\n\t\t\t}\n\t\t\tm.HostPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HostPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPort\", wireType)\n\t\t\t}\n\t\t\tm.ContainerPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ContainerPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResizePolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResizePolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResizePolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceName = ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RestartPolicy = ResourceResizeRestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerState) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerState: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerState: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Waiting\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Waiting == nil {\n\t\t\t\tm.Waiting = &ContainerStateWaiting{}\n\t\t\t}\n\t\t\tif err := m.Waiting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Running\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Running == nil {\n\t\t\t\tm.Running = &ContainerStateRunning{}\n\t\t\t}\n\t\t\tif err := m.Running.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminated\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Terminated == nil {\n\t\t\t\tm.Terminated = &ContainerStateTerminated{}\n\t\t\t}\n\t\t\tif err := m.Terminated.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateRunning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateRunning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateRunning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateTerminated) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateTerminated: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateTerminated: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExitCode\", wireType)\n\t\t\t}\n\t\t\tm.ExitCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExitCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Signal\", wireType)\n\t\t\t}\n\t\t\tm.Signal = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Signal |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FinishedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateWaiting) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateWaiting: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateWaiting: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTerminationState\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTerminationState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Ready = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartCount\", wireType)\n\t\t\t}\n\t\t\tm.RestartCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.RestartCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Started\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Started = &b\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AllocatedResources == nil {\n\t\t\t\tm.AllocatedResources = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllocatedResources[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &ResourceRequirements{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonEndpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonEndpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonEndpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DownwardAPIVolumeFile{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIVolumeFile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeFile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeFile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldRef == nil {\n\t\t\t\tm.FieldRef = &ObjectFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceFieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceFieldRef == nil {\n\t\t\t\tm.ResourceFieldRef = &ResourceFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.ResourceFieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Mode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DownwardAPIVolumeFile{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EmptyDirVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EmptyDirVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EmptyDirVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Medium\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Medium = StorageMedium(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SizeLimit\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SizeLimit == nil {\n\t\t\t\tm.SizeLimit = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.SizeLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSubset) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSubset: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSubset: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, EndpointAddress{})\n\t\t\tif err := m.Addresses[len(m.Addresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NotReadyAddresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NotReadyAddresses = append(m.NotReadyAddresses, EndpointAddress{})\n\t\t\tif err := m.NotReadyAddresses[len(m.NotReadyAddresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Endpoints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subsets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subsets = append(m.Subsets, EndpointSubset{})\n\t\t\tif err := m.Subsets[len(m.Subsets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointsList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointsList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointsList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Endpoints{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvFromSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvFromSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvFromSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Prefix\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Prefix = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMapRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMapRef == nil {\n\t\t\t\tm.ConfigMapRef = &ConfigMapEnvSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretEnvSource{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvVar) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVar: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVar: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ValueFrom == nil {\n\t\t\t\tm.ValueFrom = &EnvVarSource{}\n\t\t\t}\n\t\t\tif err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvVarSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVarSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVarSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldRef == nil {\n\t\t\t\tm.FieldRef = &ObjectFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceFieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceFieldRef == nil {\n\t\t\t\tm.ResourceFieldRef = &ResourceFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.ResourceFieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMapKeyRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMapKeyRef == nil {\n\t\t\t\tm.ConfigMapKeyRef = &ConfigMapKeySelector{}\n\t\t\t}\n\t\t\tif err := m.ConfigMapKeyRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretKeyRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretKeyRef == nil {\n\t\t\t\tm.SecretKeyRef = &SecretKeySelector{}\n\t\t\t}\n\t\t\tif err := m.SecretKeyRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralContainer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainerCommon\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EphemeralContainerCommon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetContainerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralContainerCommon) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainerCommon: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainerCommon: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingDir\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WorkingDir = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ContainerPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Env\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Env = append(m.Env, EnvVar{})\n\t\t\tif err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeMounts = append(m.VolumeMounts, VolumeMount{})\n\t\t\tif err := m.VolumeMounts[len(m.VolumeMounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LivenessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LivenessProbe == nil {\n\t\t\t\tm.LivenessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.LivenessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ReadinessProbe == nil {\n\t\t\t\tm.ReadinessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.ReadinessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lifecycle\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Lifecycle == nil {\n\t\t\t\tm.Lifecycle = &Lifecycle{}\n\t\t\t}\n\t\t\tif err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullPolicy = PullPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &SecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 17:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StdinOnce\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StdinOnce = bool(v != 0)\n\t\tcase 18:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnvFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EnvFrom = append(m.EnvFrom, EnvFromSource{})\n\t\t\tif err := m.EnvFrom[len(m.EnvFrom)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePolicy = TerminationMessagePolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeDevices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeDevices = append(m.VolumeDevices, VolumeDevice{})\n\t\t\tif err := m.VolumeDevices[len(m.VolumeDevices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartupProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartupProbe == nil {\n\t\t\t\tm.StartupProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.StartupProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResizePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResizePolicy = append(m.ResizePolicy, ContainerResizePolicy{})\n\t\t\tif err := m.ResizePolicy[len(m.ResizePolicy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeClaimTemplate == nil {\n\t\t\t\tm.VolumeClaimTemplate = &PersistentVolumeClaimTemplate{}\n\t\t\t}\n\t\t\tif err := m.VolumeClaimTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InvolvedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.InvolvedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.FirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Component\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Component = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FCVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FCVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FCVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetWWNs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetWWNs = append(m.TargetWWNs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Lun = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WWIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WWIDs = append(m.WWIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlexPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlexPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Options[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlexVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlexVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlexVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Options[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlockerVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlockerVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlockerVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DatasetName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DatasetName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DatasetUUID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DatasetUUID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GCEPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GCEPersistentDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GCEPersistentDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PDName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PDName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tm.Partition = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Partition |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GRPCAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GRPCAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GRPCAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Service = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GitRepoVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GitRepoVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GitRepoVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Repository\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Repository = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Revision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Directory\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Directory = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GlusterfsPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EndpointsName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.EndpointsNamespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GlusterfsVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EndpointsName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPGetAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPGetAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPGetAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheme\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scheme = URIScheme(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPHeaders\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HTTPHeaders = append(m.HTTPHeaders, HTTPHeader{})\n\t\t\tif err := m.HTTPHeaders[len(m.HTTPHeaders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPHeader) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPHeader: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPHeader: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostAlias) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostAlias: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostAlias: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostnames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostnames = append(m.Hostnames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostPathVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostPathVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostPathVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := HostPathType(dAtA[iNdEx:postIndex])\n\t\t\tm.Type = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ISCSIPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPortal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetPortal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IQN\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IQN = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tm.Lun = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lun |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSIInterface\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ISCSIInterface = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Portals\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Portals = append(m.Portals, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiscoveryCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DiscoveryCHAPAuth = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SessionCHAPAuth = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitiatorName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.InitiatorName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ISCSIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPortal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetPortal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IQN\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IQN = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tm.Lun = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lun |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSIInterface\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ISCSIInterface = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Portals\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Portals = append(m.Portals, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiscoveryCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DiscoveryCHAPAuth = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SessionCHAPAuth = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitiatorName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.InitiatorName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *KeyToPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: KeyToPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: KeyToPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Mode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Lifecycle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lifecycle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lifecycle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PostStart\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PostStart == nil {\n\t\t\t\tm.PostStart = &LifecycleHandler{}\n\t\t\t}\n\t\t\tif err := m.PostStart.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreStop\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PreStop == nil {\n\t\t\t\tm.PreStop = &LifecycleHandler{}\n\t\t\t}\n\t\t\tif err := m.PreStop.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LifecycleHandler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LifecycleHandler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LifecycleHandler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exec == nil {\n\t\t\t\tm.Exec = &ExecAction{}\n\t\t\t}\n\t\t\tif err := m.Exec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPGet\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTPGet == nil {\n\t\t\t\tm.HTTPGet = &HTTPGetAction{}\n\t\t\t}\n\t\t\tif err := m.HTTPGet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TCPSocket\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TCPSocket == nil {\n\t\t\t\tm.TCPSocket = &TCPSocketAction{}\n\t\t\t}\n\t\t\tif err := m.TCPSocket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRange) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRange: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRange: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeItem) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeItem: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeItem: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Max\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Max == nil {\n\t\t\t\tm.Max = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Max[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Min\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Min == nil {\n\t\t\t\tm.Min = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Min[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Default\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Default == nil {\n\t\t\t\tm.Default = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Default[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultRequest\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DefaultRequest == nil {\n\t\t\t\tm.DefaultRequest = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultRequest[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxLimitRequestRatio\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxLimitRequestRatio == nil {\n\t\t\t\tm.MaxLimitRequestRatio = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MaxLimitRequestRatio[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, LimitRange{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Limits = append(m.Limits, LimitRangeItem{})\n\t\t\tif err := m.Limits[len(m.Limits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *List) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: List: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: List: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, runtime.RawExtension{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, PortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, LoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NFSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NFSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NFSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Server\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Server = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Namespace) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NamespaceConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Namespace{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Finalizers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Finalizers = append(m.Finalizers, FinalizerName(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = NamespacePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, NamespaceCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Node) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Node: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Node: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NodeAddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Address\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Address = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RequiredDuringSchedulingIgnoredDuringExecution == nil {\n\t\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = &NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, PreferredSchedulingTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NodeConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastHeartbeatTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastHeartbeatTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeConfigSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapNodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeConfigStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Assigned\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Assigned == nil {\n\t\t\t\tm.Assigned = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.Assigned.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Active == nil {\n\t\t\t\tm.Active = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.Active.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastKnownGood\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastKnownGood == nil {\n\t\t\t\tm.LastKnownGood = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.LastKnownGood.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeDaemonEndpoints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeDaemonEndpoints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletEndpoint\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.KubeletEndpoint.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Node{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelectorTerms\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeSelectorTerms = append(m.NodeSelectorTerms, NodeSelectorTerm{})\n\t\t\tif err := m.NodeSelectorTerms[len(m.NodeSelectorTerms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = NodeSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelectorTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, NodeSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchFields\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchFields = append(m.MatchFields, NodeSelectorRequirement{})\n\t\t\tif err := m.MatchFields[len(m.MatchFields)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodCIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodCIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DoNotUseExternalID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DoNotUseExternalID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProviderID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProviderID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Unschedulable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Unschedulable = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Taints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Taints = append(m.Taints, Taint{})\n\t\t\tif err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigSource == nil {\n\t\t\t\tm.ConfigSource = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodCIDRs = append(m.PodCIDRs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allocatable[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = NodePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, NodeCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, NodeAddress{})\n\t\t\tif err := m.Addresses[len(m.Addresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DaemonEndpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DaemonEndpoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.NodeInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Images\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Images = append(m.Images, ContainerImage{})\n\t\t\tif err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumesInUse\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumesInUse = append(m.VolumesInUse, UniqueVolumeName(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumesAttached\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumesAttached = append(m.VolumesAttached, AttachedVolume{})\n\t\t\tif err := m.VolumesAttached[len(m.VolumesAttached)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Config == nil {\n\t\t\t\tm.Config = &NodeConfigStatus{}\n\t\t\t}\n\t\t\tif err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSystemInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSystemInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSystemInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MachineID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MachineID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SystemUUID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SystemUUID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BootID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BootID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KernelVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KernelVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OSImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OSImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerRuntimeVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerRuntimeVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeletVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeProxyVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeProxyVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OperatingSystem\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OperatingSystem = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Architecture\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Architecture = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectFieldSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectFieldSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectFieldSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PersistentVolumeClaimConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PersistentVolumeClaim{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.StorageClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PersistentVolumeMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DataSource == nil {\n\t\t\t\tm.DataSource = &TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.DataSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataSourceRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DataSourceRef == nil {\n\t\t\t\tm.DataSourceRef = &TypedObjectReference{}\n\t\t\t}\n\t\t\tif err := m.DataSourceRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PersistentVolumeClaimPhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PersistentVolumeClaimCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AllocatedResources == nil {\n\t\t\t\tm.AllocatedResources = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllocatedResources[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResizeStatus\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PersistentVolumeClaimResizeStatus(dAtA[iNdEx:postIndex])\n\t\t\tm.ResizeStatus = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClaimName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClaimName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PersistentVolume{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GCEPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GCEPersistentDisk == nil {\n\t\t\t\tm.GCEPersistentDisk = &GCEPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GCEPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AWSElasticBlockStore\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AWSElasticBlockStore == nil {\n\t\t\t\tm.AWSElasticBlockStore = &AWSElasticBlockStoreVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AWSElasticBlockStore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HostPath == nil {\n\t\t\t\tm.HostPath = &HostPathVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.HostPath.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Glusterfs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Glusterfs == nil {\n\t\t\t\tm.Glusterfs = &GlusterfsPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Glusterfs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NFS == nil {\n\t\t\t\tm.NFS = &NFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.NFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBD\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RBD == nil {\n\t\t\t\tm.RBD = &RBDPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ISCSI == nil {\n\t\t\t\tm.ISCSI = &ISCSIPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ISCSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cinder\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cinder == nil {\n\t\t\t\tm.Cinder = &CinderPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Cinder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CephFS == nil {\n\t\t\t\tm.CephFS = &CephFSPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CephFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FC == nil {\n\t\t\t\tm.FC = &FCVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Flocker\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Flocker == nil {\n\t\t\t\tm.Flocker = &FlockerVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Flocker.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FlexVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FlexVolume == nil {\n\t\t\t\tm.FlexVolume = &FlexPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FlexVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureFile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureFile == nil {\n\t\t\t\tm.AzureFile = &AzureFilePersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureFile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VsphereVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VsphereVolume == nil {\n\t\t\t\tm.VsphereVolume = &VsphereVirtualDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.VsphereVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Quobyte\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Quobyte == nil {\n\t\t\t\tm.Quobyte = &QuobyteVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Quobyte.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureDisk == nil {\n\t\t\t\tm.AzureDisk = &AzureDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PhotonPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PhotonPersistentDisk == nil {\n\t\t\t\tm.PhotonPersistentDisk = &PhotonPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PhotonPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PortworxVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PortworxVolume == nil {\n\t\t\t\tm.PortworxVolume = &PortworxVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PortworxVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleIO\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleIO == nil {\n\t\t\t\tm.ScaleIO = &ScaleIOPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Local\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Local == nil {\n\t\t\t\tm.Local = &LocalVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Local.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageOS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StorageOS == nil {\n\t\t\t\tm.StorageOS = &StorageOSPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.StorageOS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CSI == nil {\n\t\t\t\tm.CSI = &CSIPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClaimRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ClaimRef == nil {\n\t\t\t\tm.ClaimRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.ClaimRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PersistentVolumeReclaimPolicy = PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PersistentVolumeMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeAffinity == nil {\n\t\t\t\tm.NodeAffinity = &VolumeNodeAffinity{}\n\t\t\t}\n\t\t\tif err := m.NodeAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PersistentVolumePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PhotonPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PhotonPersistentDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PhotonPersistentDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PdID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PdID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Pod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Pod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Pod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = append(m.RequiredDuringSchedulingIgnoredDuringExecution, PodAffinityTerm{})\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution[len(m.RequiredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, WeightedPodAffinityTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAffinityTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinityTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinityTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAntiAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAntiAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAntiAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = append(m.RequiredDuringSchedulingIgnoredDuringExecution, PodAffinityTerm{})\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution[len(m.RequiredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, WeightedPodAffinityTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAttachOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAttachOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAttachOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDNSConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nameservers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Nameservers = append(m.Nameservers, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Searches\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Searches = append(m.Searches, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Options = append(m.Options, PodDNSConfigOption{})\n\t\t\tif err := m.Options[len(m.Options)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDNSConfigOption) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfigOption: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfigOption: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Value = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodExecOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodExecOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodExecOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodIP) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Pod{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodLogOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodLogOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodLogOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Follow\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Follow = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Previous\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Previous = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SinceSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SinceSeconds = &v\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SinceTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SinceTime == nil {\n\t\t\t\tm.SinceTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.SinceTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamps\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Timestamps = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TailLines\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TailLines = &v\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitBytes\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LimitBytes = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InsecureSkipTLSVerifyBackend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.InsecureSkipTLSVerifyBackend = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodOS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodOS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodOS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = OSName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodPortForwardOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodPortForwardOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodPortForwardOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Ports = append(m.Ports, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.Ports) == 0 {\n\t\t\t\t\tm.Ports = make([]int32, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Ports = append(m.Ports, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodReadinessGate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodReadinessGate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodReadinessGate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConditionType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConditionType = PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingGate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingGate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingGate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SELinuxOptions == nil {\n\t\t\t\tm.SELinuxOptions = &SELinuxOptions{}\n\t\t\t}\n\t\t\tif err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsUser = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsNonRoot\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RunAsNonRoot = &b\n\t\tcase 4:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.SupplementalGroups) == 0 {\n\t\t\t\t\tm.SupplementalGroups = make([]int64, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FSGroup = &v\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsGroup = &v\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sysctls\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Sysctls = append(m.Sysctls, Sysctl{})\n\t\t\tif err := m.Sysctls[len(m.Sysctls)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WindowsOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WindowsOptions == nil {\n\t\t\t\tm.WindowsOptions = &WindowsSecurityContextOptions{}\n\t\t\t}\n\t\t\tif err := m.WindowsOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupChangePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PodFSGroupChangePolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupChangePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SeccompProfile == nil {\n\t\t\t\tm.SeccompProfile = &SeccompProfile{}\n\t\t\t}\n\t\t\tif err := m.SeccompProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSignature) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSignature: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSignature: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodController\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodController == nil {\n\t\t\t\tm.PodController = &v1.OwnerReference{}\n\t\t\t}\n\t\t\tif err := m.PodController.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Volumes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Volumes = append(m.Volumes, Volume{})\n\t\t\tif err := m.Volumes[len(m.Volumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, Container{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RestartPolicy = RestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TerminationGracePeriodSeconds = &v\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ActiveDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ActiveDeadlineSeconds = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DNSPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DNSPolicy = DNSPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccountName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceAccountName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeprecatedServiceAccount = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostNetwork\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostNetwork = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPID\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostPID = bool(v != 0)\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIPC\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostIPC = bool(v != 0)\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &PodSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullSecrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullSecrets = append(m.ImagePullSecrets, LocalObjectReference{})\n\t\t\tif err := m.ImagePullSecrets[len(m.ImagePullSecrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subdomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subdomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Affinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Affinity == nil {\n\t\t\t\tm.Affinity = &Affinity{}\n\t\t\t}\n\t\t\tif err := m.Affinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SchedulerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SchedulerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitContainers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InitContainers = append(m.InitContainers, Container{})\n\t\t\tif err := m.InitContainers[len(m.InitContainers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AutomountServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AutomountServiceAccountToken = &b\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostAliases\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostAliases = append(m.HostAliases, HostAlias{})\n\t\t\tif err := m.HostAliases[len(m.HostAliases)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PriorityClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 25:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Priority\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Priority = &v\n\t\tcase 26:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DNSConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DNSConfig == nil {\n\t\t\t\tm.DNSConfig = &PodDNSConfig{}\n\t\t\t}\n\t\t\tif err := m.DNSConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 27:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareProcessNamespace\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ShareProcessNamespace = &b\n\t\tcase 28:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessGates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReadinessGates = append(m.ReadinessGates, PodReadinessGate{})\n\t\t\tif err := m.ReadinessGates[len(m.ReadinessGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 29:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.RuntimeClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 30:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnableServiceLinks\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.EnableServiceLinks = &b\n\t\tcase 31:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 32:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Overhead[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 33:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologySpreadConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologySpreadConstraints = append(m.TopologySpreadConstraints, TopologySpreadConstraint{})\n\t\t\tif err := m.TopologySpreadConstraints[len(m.TopologySpreadConstraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 34:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EphemeralContainers = append(m.EphemeralContainers, EphemeralContainer{})\n\t\t\tif err := m.EphemeralContainers[len(m.EphemeralContainers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 35:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SetHostnameAsFQDN\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SetHostnameAsFQDN = &b\n\t\tcase 36:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.OS == nil {\n\t\t\t\tm.OS = &PodOS{}\n\t\t\t}\n\t\t\tif err := m.OS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 37:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostUsers\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.HostUsers = &b\n\t\tcase 38:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SchedulingGates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SchedulingGates = append(m.SchedulingGates, PodSchedulingGate{})\n\t\t\tif err := m.SchedulingGates[len(m.SchedulingGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 39:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaims\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceClaims = append(m.ResourceClaims, PodResourceClaim{})\n\t\t\tif err := m.ResourceClaims[len(m.ResourceClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PodPhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PodCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartTime == nil {\n\t\t\t\tm.StartTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerStatuses = append(m.ContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.ContainerStatuses[len(m.ContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QOSClass\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.QOSClass = PodQOSClass(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InitContainerStatuses = append(m.InitContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.InitContainerStatuses[len(m.InitContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominatedNodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NominatedNodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodIPs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodIPs = append(m.PodIPs, PodIP{})\n\t\t\tif err := m.PodIPs[len(m.PodIPs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EphemeralContainerStatuses = append(m.EphemeralContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.EphemeralContainerStatuses[len(m.EphemeralContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resize\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resize = PodResizeStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodStatusResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatusResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatusResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodTemplate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortworxVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortworxVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortworxVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Preconditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tm.UID = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferAvoidPodsEntry) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferAvoidPodsEntry: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferAvoidPodsEntry: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSignature\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSignature.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvictionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EvictionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferredSchedulingTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredSchedulingTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredSchedulingTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Weight\", wireType)\n\t\t\t}\n\t\t\tm.Weight = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Weight |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Preference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Preference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Probe) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Probe: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Probe: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProbeHandler\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ProbeHandler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitialDelaySeconds\", wireType)\n\t\t\t}\n\t\t\tm.InitialDelaySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.InitialDelaySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tm.TimeoutSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.TimeoutSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessThreshold\", wireType)\n\t\t\t}\n\t\t\tm.SuccessThreshold = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.SuccessThreshold |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailureThreshold\", wireType)\n\t\t\t}\n\t\t\tm.FailureThreshold = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FailureThreshold |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TerminationGracePeriodSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ProbeHandler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ProbeHandler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ProbeHandler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exec == nil {\n\t\t\t\tm.Exec = &ExecAction{}\n\t\t\t}\n\t\t\tif err := m.Exec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPGet\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTPGet == nil {\n\t\t\t\tm.HTTPGet = &HTTPGetAction{}\n\t\t\t}\n\t\t\tif err := m.HTTPGet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TCPSocket\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TCPSocket == nil {\n\t\t\t\tm.TCPSocket = &TCPSocketAction{}\n\t\t\t}\n\t\t\tif err := m.TCPSocket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GRPC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GRPC == nil {\n\t\t\t\tm.GRPC = &GRPCAction{}\n\t\t\t}\n\t\t\tif err := m.GRPC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ProjectedVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ProjectedVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ProjectedVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Sources = append(m.Sources, VolumeProjection{})\n\t\t\tif err := m.Sources[len(m.Sources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QuobyteVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QuobyteVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Registry\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Registry = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Volume\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Volume = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tenant\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tenant = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RBDPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RBDPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephMonitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDPool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDPool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RadosUser\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RadosUser = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Keyring\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Keyring = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RBDVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RBDVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RBDVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephMonitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDPool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDPool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RadosUser\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RadosUser = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Keyring\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Keyring = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RangeAllocation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RangeAllocation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RangeAllocation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Range\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Range = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationController) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationController: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationController: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicationControllerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicationController{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Template == nil {\n\t\t\t\tm.Template = &PodTemplateSpec{}\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicationControllerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceFieldSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceFieldSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceFieldSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Divisor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Divisor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuota) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuota: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuota: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceQuota{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hard\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hard == nil {\n\t\t\t\tm.Hard = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Hard[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scopes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scopes = append(m.Scopes, ResourceQuotaScope(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScopeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScopeSelector == nil {\n\t\t\t\tm.ScopeSelector = &ScopeSelector{}\n\t\t\t}\n\t\t\tif err := m.ScopeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hard\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hard == nil {\n\t\t\t\tm.Hard = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Hard[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Used\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Used == nil {\n\t\t\t\tm.Used = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Used[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRequirements) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRequirements: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRequirements: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limits == nil {\n\t\t\t\tm.Limits = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Limits[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Requests == nil {\n\t\t\t\tm.Requests = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Requests[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Claims\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Claims = append(m.Claims, ResourceClaim{})\n\t\t\tif err := m.Claims[len(m.Claims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SELinuxOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Role\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Role = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Level\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Level = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleIOPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gateway\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Gateway = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field System\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.System = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SSLEnabled\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SSLEnabled = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProtectionDomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProtectionDomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageMode = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gateway\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Gateway = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field System\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.System = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SSLEnabled\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SSLEnabled = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProtectionDomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProtectionDomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageMode = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScopeSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScopeSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScopeSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, ScopedResourceSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScopedResourceSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScopedResourceSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScopedResourceSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScopeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ScopeName = ResourceQuotaScope(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = ScopeSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SeccompProfile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SeccompProfile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SeccompProfile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = SeccompProfileType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalhostProfile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.LocalhostProfile = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Secret) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Secret: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Secret: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = make(map[string][]byte)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := []byte{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapbyteLen uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapbyteLen |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintMapbyteLen := int(mapbyteLen)\n\t\t\t\t\tif intMapbyteLen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostbytesIndex := iNdEx + intMapbyteLen\n\t\t\t\t\tif postbytesIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postbytesIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = make([]byte, mapbyteLen)\n\t\t\t\t\tcopy(mapvalue, dAtA[iNdEx:postbytesIndex])\n\t\t\t\t\tiNdEx = postbytesIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Data[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = SecretType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StringData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StringData == nil {\n\t\t\t\tm.StringData = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StringData[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Immutable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Immutable = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretEnvSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretEnvSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretEnvSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretKeySelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretKeySelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretKeySelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Secret{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capabilities\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capabilities == nil {\n\t\t\t\tm.Capabilities = &Capabilities{}\n\t\t\t}\n\t\t\tif err := m.Capabilities.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Privileged\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Privileged = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SELinuxOptions == nil {\n\t\t\t\tm.SELinuxOptions = &SELinuxOptions{}\n\t\t\t}\n\t\t\tif err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsUser = &v\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsNonRoot\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RunAsNonRoot = &b\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnlyRootFilesystem\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnlyRootFilesystem = &b\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowPrivilegeEscalation\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowPrivilegeEscalation = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsGroup = &v\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProcMount\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ProcMountType(dAtA[iNdEx:postIndex])\n\t\t\tm.ProcMount = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WindowsOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WindowsOptions == nil {\n\t\t\t\tm.WindowsOptions = &WindowsSecurityContextOptions{}\n\t\t\t}\n\t\t\tif err := m.WindowsOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SeccompProfile == nil {\n\t\t\t\tm.SeccompProfile = &SeccompProfile{}\n\t\t\t}\n\t\t\tif err := m.SeccompProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SerializedReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SerializedReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SerializedReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Reference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Service) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Service: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Service: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Secrets = append(m.Secrets, ObjectReference{})\n\t\t\tif err := m.Secrets[len(m.Secrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullSecrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullSecrets = append(m.ImagePullSecrets, LocalObjectReference{})\n\t\t\tif err := m.ImagePullSecrets[len(m.ImagePullSecrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AutomountServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AutomountServiceAccountToken = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ServiceAccount{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountTokenProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountTokenProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountTokenProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Service{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServicePort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServicePort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServicePort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetPort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePort\", wireType)\n\t\t\t}\n\t\t\tm.NodePort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NodePort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ServicePort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ServiceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalIPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalIPs = append(m.ExternalIPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionAffinity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SessionAffinity = ServiceAffinity(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LoadBalancerIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerSourceRanges\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LoadBalancerSourceRanges = append(m.LoadBalancerSourceRanges, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalTrafficPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalTrafficPolicy = ServiceExternalTrafficPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HealthCheckNodePort\", wireType)\n\t\t\t}\n\t\t\tm.HealthCheckNodePort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HealthCheckNodePort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PublishNotReadyAddresses\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PublishNotReadyAddresses = bool(v != 0)\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionAffinityConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SessionAffinityConfig == nil {\n\t\t\t\tm.SessionAffinityConfig = &SessionAffinityConfig{}\n\t\t\t}\n\t\t\tif err := m.SessionAffinityConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPFamilyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := IPFamilyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.IPFamilyPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterIPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterIPs = append(m.ClusterIPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPFamilies\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPFamilies = append(m.IPFamilies, IPFamily(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocateLoadBalancerNodePorts\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllocateLoadBalancerNodePorts = &b\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerClass\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.LoadBalancerClass = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InternalTrafficPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ServiceInternalTrafficPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.InternalTrafficPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SessionAffinityConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SessionAffinityConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SessionAffinityConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientIP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ClientIP == nil {\n\t\t\t\tm.ClientIP = &ClientIPConfig{}\n\t\t\t}\n\t\t\tif err := m.ClientIP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageOSPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeNamespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageOSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeNamespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Sysctl) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Sysctl: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Sysctl: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TCPSocketAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TCPSocketAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TCPSocketAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Taint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Taint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Taint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Effect\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Effect = TaintEffect(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeAdded\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TimeAdded == nil {\n\t\t\t\tm.TimeAdded = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.TimeAdded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Toleration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Toleration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Toleration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = TolerationOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Effect\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Effect = TaintEffect(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TolerationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TolerationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorLabelRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorLabelRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabelExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchLabelExpressions = append(m.MatchLabelExpressions, TopologySelectorLabelRequirement{})\n\t\t\tif err := m.MatchLabelExpressions[len(m.MatchLabelExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySpreadConstraint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySpreadConstraint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySpreadConstraint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSkew\", wireType)\n\t\t\t}\n\t\t\tm.MaxSkew = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxSkew |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenUnsatisfiable\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenUnsatisfiable = UnsatisfiableConstraintAction(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinDomains\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinDomains = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinityPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := NodeInclusionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeAffinityPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTaintsPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := NodeInclusionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeTaintsPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabelKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchLabelKeys = append(m.MatchLabelKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypedLocalObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypedLocalObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypedLocalObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypedObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypedObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypedObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Volume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Volume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Volume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.VolumeSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeDevice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeDevice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeDevice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeMount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SubPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SubPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountPropagation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MountPropagationMode(dAtA[iNdEx:postIndex])\n\t\t\tm.MountPropagation = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SubPathExpr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SubPathExpr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Required\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Required == nil {\n\t\t\t\tm.Required = &NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.Required.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secret\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Secret == nil {\n\t\t\t\tm.Secret = &SecretProjection{}\n\t\t\t}\n\t\t\tif err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DownwardAPI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DownwardAPI == nil {\n\t\t\t\tm.DownwardAPI = &DownwardAPIProjection{}\n\t\t\t}\n\t\t\tif err := m.DownwardAPI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapProjection{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccountToken == nil {\n\t\t\t\tm.ServiceAccountToken = &ServiceAccountTokenProjection{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccountToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HostPath == nil {\n\t\t\t\tm.HostPath = &HostPathVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.HostPath.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EmptyDir\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.EmptyDir == nil {\n\t\t\t\tm.EmptyDir = &EmptyDirVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.EmptyDir.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GCEPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GCEPersistentDisk == nil {\n\t\t\t\tm.GCEPersistentDisk = &GCEPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GCEPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AWSElasticBlockStore\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AWSElasticBlockStore == nil {\n\t\t\t\tm.AWSElasticBlockStore = &AWSElasticBlockStoreVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AWSElasticBlockStore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GitRepo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GitRepo == nil {\n\t\t\t\tm.GitRepo = &GitRepoVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GitRepo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secret\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Secret == nil {\n\t\t\t\tm.Secret = &SecretVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NFS == nil {\n\t\t\t\tm.NFS = &NFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.NFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ISCSI == nil {\n\t\t\t\tm.ISCSI = &ISCSIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ISCSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Glusterfs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Glusterfs == nil {\n\t\t\t\tm.Glusterfs = &GlusterfsVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Glusterfs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaim\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaim == nil {\n\t\t\t\tm.PersistentVolumeClaim = &PersistentVolumeClaimVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBD\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RBD == nil {\n\t\t\t\tm.RBD = &RBDVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FlexVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FlexVolume == nil {\n\t\t\t\tm.FlexVolume = &FlexVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FlexVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cinder\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cinder == nil {\n\t\t\t\tm.Cinder = &CinderVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Cinder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CephFS == nil {\n\t\t\t\tm.CephFS = &CephFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CephFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Flocker\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Flocker == nil {\n\t\t\t\tm.Flocker = &FlockerVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Flocker.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DownwardAPI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DownwardAPI == nil {\n\t\t\t\tm.DownwardAPI = &DownwardAPIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.DownwardAPI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FC == nil {\n\t\t\t\tm.FC = &FCVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureFile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureFile == nil {\n\t\t\t\tm.AzureFile = &AzureFileVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureFile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VsphereVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VsphereVolume == nil {\n\t\t\t\tm.VsphereVolume = &VsphereVirtualDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.VsphereVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Quobyte\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Quobyte == nil {\n\t\t\t\tm.Quobyte = &QuobyteVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Quobyte.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureDisk == nil {\n\t\t\t\tm.AzureDisk = &AzureDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PhotonPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PhotonPersistentDisk == nil {\n\t\t\t\tm.PhotonPersistentDisk = &PhotonPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PhotonPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PortworxVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PortworxVolume == nil {\n\t\t\t\tm.PortworxVolume = &PortworxVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PortworxVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 25:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleIO\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleIO == nil {\n\t\t\t\tm.ScaleIO = &ScaleIOVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 26:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Projected\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Projected == nil {\n\t\t\t\tm.Projected = &ProjectedVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Projected.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 27:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageOS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StorageOS == nil {\n\t\t\t\tm.StorageOS = &StorageOSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.StorageOS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 28:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CSI == nil {\n\t\t\t\tm.CSI = &CSIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 29:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ephemeral\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ephemeral == nil {\n\t\t\t\tm.Ephemeral = &EphemeralVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Ephemeral.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VsphereVirtualDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VsphereVirtualDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VsphereVirtualDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePolicyID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePolicyID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WeightedPodAffinityTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WeightedPodAffinityTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WeightedPodAffinityTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Weight\", wireType)\n\t\t\t}\n\t\t\tm.Weight = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Weight |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAffinityTerm\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodAffinityTerm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsSecurityContextOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSecurityContextOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSecurityContextOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GMSACredentialSpecName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.GMSACredentialSpecName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GMSACredentialSpec\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.GMSACredentialSpec = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUserName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.RunAsUserName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostProcess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.HostProcess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.core.v1;\n\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/core/v1\";\n\n// Represents a Persistent Disk resource in AWS.\n//\n// An AWS EBS disk must exist before mounting to a container. The disk\n// must also be in the same AWS zone as the kubelet. An AWS EBS disk\n// can only be mounted as read/write once. AWS EBS volumes support\n// ownership management and SELinux relabeling.\nmessage AWSElasticBlockStoreVolumeSource {\n  // volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  optional string volumeID = 1;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 2;\n\n  // partition is the partition in the volume that you want to mount.\n  // If omitted, the default is to mount by volume name.\n  // Examples: For volume /dev/sda1, you specify the partition as \"1\".\n  // Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n  // +optional\n  optional int32 partition = 3;\n\n  // readOnly value true will force the readOnly setting in VolumeMounts.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional bool readOnly = 4;\n}\n\n// Affinity is a group of affinity scheduling rules.\nmessage Affinity {\n  // Describes node affinity scheduling rules for the pod.\n  // +optional\n  optional NodeAffinity nodeAffinity = 1;\n\n  // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\n  // +optional\n  optional PodAffinity podAffinity = 2;\n\n  // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\n  // +optional\n  optional PodAntiAffinity podAntiAffinity = 3;\n}\n\n// AttachedVolume describes a volume attached to a node\nmessage AttachedVolume {\n  // Name of the attached volume\n  optional string name = 1;\n\n  // DevicePath represents the device path where the volume should be available\n  optional string devicePath = 2;\n}\n\n// AvoidPods describes pods that should avoid this node. This is the value for a\n// Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and\n// will eventually become a field of NodeStatus.\nmessage AvoidPods {\n  // Bounded-sized list of signatures of pods that should avoid this node, sorted\n  // in timestamp order from oldest to newest. Size of the slice is unspecified.\n  // +optional\n  repeated PreferAvoidPodsEntry preferAvoidPods = 1;\n}\n\n// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\nmessage AzureDiskVolumeSource {\n  // diskName is the Name of the data disk in the blob storage\n  optional string diskName = 1;\n\n  // diskURI is the URI of data disk in the blob storage\n  optional string diskURI = 2;\n\n  // cachingMode is the Host Caching mode: None, Read Only, Read Write.\n  // +optional\n  optional string cachingMode = 3;\n\n  // fsType is Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 4;\n\n  // readOnly Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 5;\n\n  // kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\n  optional string kind = 6;\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\nmessage AzureFilePersistentVolumeSource {\n  // secretName is the name of secret that contains Azure Storage Account Name and Key\n  optional string secretName = 1;\n\n  // shareName is the azure Share Name\n  optional string shareName = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key\n  // default is the same as the Pod\n  // +optional\n  optional string secretNamespace = 4;\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\nmessage AzureFileVolumeSource {\n  // secretName is the  name of secret that contains Azure Storage Account Name and Key\n  optional string secretName = 1;\n\n  // shareName is the azure share Name\n  optional string shareName = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\n// Deprecated in 1.7, please use the bindings subresource of pods instead.\nmessage Binding {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The target object that you want to bind to the standard object.\n  optional ObjectReference target = 2;\n}\n\n// Represents storage that is managed by an external CSI volume driver (Beta feature)\nmessage CSIPersistentVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  // Required.\n  optional string driver = 1;\n\n  // volumeHandle is the unique volume name returned by the CSI volume\n  // plugin’s CreateVolume to refer to the volume on all subsequent calls.\n  // Required.\n  optional string volumeHandle = 2;\n\n  // readOnly value to pass to ControllerPublishVolumeRequest.\n  // Defaults to false (read/write).\n  // +optional\n  optional bool readOnly = 3;\n\n  // fsType to mount. Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // +optional\n  optional string fsType = 4;\n\n  // volumeAttributes of the volume to publish.\n  // +optional\n  map<string, string> volumeAttributes = 5;\n\n  // controllerPublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // ControllerPublishVolume and ControllerUnpublishVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference controllerPublishSecretRef = 6;\n\n  // nodeStageSecretRef is a reference to the secret object containing sensitive\n  // information to pass to the CSI driver to complete the CSI NodeStageVolume\n  // and NodeStageVolume and NodeUnstageVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference nodeStageSecretRef = 7;\n\n  // nodePublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodePublishVolume and NodeUnpublishVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference nodePublishSecretRef = 8;\n\n  // controllerExpandSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // ControllerExpandVolume call.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference controllerExpandSecretRef = 9;\n\n  // nodeExpandSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodeExpandVolume call.\n  // This is a beta field which is enabled default by CSINodeExpandSecret feature gate.\n  // This field is optional, may be omitted if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +featureGate=CSINodeExpandSecret\n  // +optional\n  optional SecretReference nodeExpandSecretRef = 10;\n}\n\n// Represents a source location of a volume to mount, managed by an external CSI driver\nmessage CSIVolumeSource {\n  // driver is the name of the CSI driver that handles this volume.\n  // Consult with your admin for the correct name as registered in the cluster.\n  optional string driver = 1;\n\n  // readOnly specifies a read-only configuration for the volume.\n  // Defaults to false (read/write).\n  // +optional\n  optional bool readOnly = 2;\n\n  // fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // If not provided, the empty value is passed to the associated CSI driver\n  // which will determine the default filesystem to apply.\n  // +optional\n  optional string fsType = 3;\n\n  // volumeAttributes stores driver-specific properties that are passed to the CSI\n  // driver. Consult your driver's documentation for supported values.\n  // +optional\n  map<string, string> volumeAttributes = 4;\n\n  // nodePublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodePublishVolume and NodeUnpublishVolume calls.\n  // This field is optional, and  may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secret references are passed.\n  // +optional\n  optional LocalObjectReference nodePublishSecretRef = 5;\n}\n\n// Adds and removes POSIX capabilities from running containers.\nmessage Capabilities {\n  // Added capabilities\n  // +optional\n  repeated string add = 1;\n\n  // Removed capabilities\n  // +optional\n  repeated string drop = 2;\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\nmessage CephFSPersistentVolumeSource {\n  // monitors is Required: Monitors is a collection of Ceph monitors\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  repeated string monitors = 1;\n\n  // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n  // +optional\n  optional string path = 2;\n\n  // user is Optional: User is the rados user name, default is admin\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string user = 3;\n\n  // secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string secretFile = 4;\n\n  // secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional SecretReference secretRef = 5;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 6;\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\nmessage CephFSVolumeSource {\n  // monitors is Required: Monitors is a collection of Ceph monitors\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  repeated string monitors = 1;\n\n  // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n  // +optional\n  optional string path = 2;\n\n  // user is optional: User is the rados user name, default is admin\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string user = 3;\n\n  // secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string secretFile = 4;\n\n  // secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional LocalObjectReference secretRef = 5;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 6;\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\nmessage CinderPersistentVolumeSource {\n  // volumeID used to identify the volume in cinder.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  optional string volumeID = 1;\n\n  // fsType Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional string fsType = 2;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretRef is Optional: points to a secret object containing parameters used to connect\n  // to OpenStack.\n  // +optional\n  optional SecretReference secretRef = 4;\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\nmessage CinderVolumeSource {\n  // volumeID used to identify the volume in cinder.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  optional string volumeID = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional string fsType = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretRef is optional: points to a secret object containing parameters used to connect\n  // to OpenStack.\n  // +optional\n  optional LocalObjectReference secretRef = 4;\n}\n\n// ClaimSource describes a reference to a ResourceClaim.\n//\n// Exactly one of these fields should be set.  Consumers of this type must\n// treat an empty object as if it has an unknown value.\nmessage ClaimSource {\n  // ResourceClaimName is the name of a ResourceClaim object in the same\n  // namespace as this pod.\n  optional string resourceClaimName = 1;\n\n  // ResourceClaimTemplateName is the name of a ResourceClaimTemplate\n  // object in the same namespace as this pod.\n  //\n  // The template will be used to create a new ResourceClaim, which will\n  // be bound to this pod. When this pod is deleted, the ResourceClaim\n  // will also be deleted. The name of the ResourceClaim will be <pod\n  // name>-<resource name>, where <resource name> is the\n  // PodResourceClaim.Name. Pod validation will reject the pod if the\n  // concatenated name is not valid for a ResourceClaim (e.g. too long).\n  //\n  // An existing ResourceClaim with that name that is not owned by the\n  // pod will not be used for the pod to avoid using an unrelated\n  // resource by mistake. Scheduling and pod startup are then blocked\n  // until the unrelated ResourceClaim is removed.\n  //\n  // This field is immutable and no changes will be made to the\n  // corresponding ResourceClaim by the control plane after creating the\n  // ResourceClaim.\n  optional string resourceClaimTemplateName = 2;\n}\n\n// ClientIPConfig represents the configurations of Client IP based session affinity.\nmessage ClientIPConfig {\n  // timeoutSeconds specifies the seconds of ClientIP type session sticky time.\n  // The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\n  // Default value is 10800(for 3 hours).\n  // +optional\n  optional int32 timeoutSeconds = 1;\n}\n\n// Information about the condition of a component.\nmessage ComponentCondition {\n  // Type of condition for a component.\n  // Valid value: \"Healthy\"\n  optional string type = 1;\n\n  // Status of the condition for a component.\n  // Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".\n  optional string status = 2;\n\n  // Message about the condition for a component.\n  // For example, information about a health check.\n  // +optional\n  optional string message = 3;\n\n  // Condition error code for a component.\n  // For example, a health check error code.\n  // +optional\n  optional string error = 4;\n}\n\n// ComponentStatus (and ComponentStatusList) holds the cluster validation info.\n// Deprecated: This API is deprecated in v1.19+\nmessage ComponentStatus {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // List of component conditions observed\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated ComponentCondition conditions = 2;\n}\n\n// Status of all the conditions for the component as a list of ComponentStatus objects.\n// Deprecated: This API is deprecated in v1.19+\nmessage ComponentStatusList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ComponentStatus objects.\n  repeated ComponentStatus items = 2;\n}\n\n// ConfigMap holds configuration data for pods to consume.\nmessage ConfigMap {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Immutable, if set to true, ensures that data stored in the ConfigMap cannot\n  // be updated (only object metadata can be modified).\n  // If not set to true, the field can be modified at any time.\n  // Defaulted to nil.\n  // +optional\n  optional bool immutable = 4;\n\n  // Data contains the configuration data.\n  // Each key must consist of alphanumeric characters, '-', '_' or '.'.\n  // Values with non-UTF-8 byte sequences must use the BinaryData field.\n  // The keys stored in Data must not overlap with the keys in\n  // the BinaryData field, this is enforced during validation process.\n  // +optional\n  map<string, string> data = 2;\n\n  // BinaryData contains the binary data.\n  // Each key must consist of alphanumeric characters, '-', '_' or '.'.\n  // BinaryData can contain byte sequences that are not in the UTF-8 range.\n  // The keys stored in BinaryData must not overlap with the ones in\n  // the Data field, this is enforced during validation process.\n  // Using this field will require 1.10+ apiserver and\n  // kubelet.\n  // +optional\n  map<string, bytes> binaryData = 3;\n}\n\n// ConfigMapEnvSource selects a ConfigMap to populate the environment\n// variables with.\n//\n// The contents of the target ConfigMap's Data field will represent the\n// key-value pairs as environment variables.\nmessage ConfigMapEnvSource {\n  // The ConfigMap to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // Specify whether the ConfigMap must be defined\n  // +optional\n  optional bool optional = 2;\n}\n\n// Selects a key from a ConfigMap.\n// +structType=atomic\nmessage ConfigMapKeySelector {\n  // The ConfigMap to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // The key to select.\n  optional string key = 2;\n\n  // Specify whether the ConfigMap or its key must be defined\n  // +optional\n  optional bool optional = 3;\n}\n\n// ConfigMapList is a resource containing a list of ConfigMap objects.\nmessage ConfigMapList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ConfigMaps.\n  repeated ConfigMap items = 2;\n}\n\n// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.\n// This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\nmessage ConfigMapNodeConfigSource {\n  // Namespace is the metadata.namespace of the referenced ConfigMap.\n  // This field is required in all cases.\n  optional string namespace = 1;\n\n  // Name is the metadata.name of the referenced ConfigMap.\n  // This field is required in all cases.\n  optional string name = 2;\n\n  // UID is the metadata.UID of the referenced ConfigMap.\n  // This field is forbidden in Node.Spec, and required in Node.Status.\n  // +optional\n  optional string uid = 3;\n\n  // ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.\n  // This field is forbidden in Node.Spec, and required in Node.Status.\n  // +optional\n  optional string resourceVersion = 4;\n\n  // KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure\n  // This field is required in all cases.\n  optional string kubeletConfigKey = 5;\n}\n\n// Adapts a ConfigMap into a projected volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names,\n// unless the items element is populated with specific mappings of keys to paths.\n// Note that this is identical to a configmap volume source without the default\n// mode.\nmessage ConfigMapProjection {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // ConfigMap will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the ConfigMap,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  repeated KeyToPath items = 2;\n\n  // optional specify whether the ConfigMap or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// Adapts a ConfigMap into a volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// volume as files using the keys in the Data field as the file names, unless\n// the items element is populated with specific mappings of keys to paths.\n// ConfigMap volumes support ownership management and SELinux relabeling.\nmessage ConfigMapVolumeSource {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // ConfigMap will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the ConfigMap,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  repeated KeyToPath items = 2;\n\n  // defaultMode is optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 3;\n\n  // optional specify whether the ConfigMap or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// A single application container that you want to run within a pod.\nmessage Container {\n  // Name of the container specified as a DNS_LABEL.\n  // Each container in a pod must have a unique name (DNS_LABEL).\n  // Cannot be updated.\n  optional string name = 1;\n\n  // Container image name.\n  // More info: https://kubernetes.io/docs/concepts/containers/images\n  // This field is optional to allow higher level config management to default or override\n  // container images in workload controllers like Deployments and StatefulSets.\n  // +optional\n  optional string image = 2;\n\n  // Entrypoint array. Not executed within a shell.\n  // The container image's ENTRYPOINT is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  repeated string command = 3;\n\n  // Arguments to the entrypoint.\n  // The container image's CMD is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  repeated string args = 4;\n\n  // Container's working directory.\n  // If not specified, the container runtime's default will be used, which\n  // might be configured in the container image.\n  // Cannot be updated.\n  // +optional\n  optional string workingDir = 5;\n\n  // List of ports to expose from the container. Not specifying a port here\n  // DOES NOT prevent that port from being exposed. Any port which is\n  // listening on the default \"0.0.0.0\" address inside a container will be\n  // accessible from the network.\n  // Modifying this array with strategic merge patch may corrupt the data.\n  // For more information See https://github.com/kubernetes/kubernetes/issues/108255.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=containerPort\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=containerPort\n  // +listMapKey=protocol\n  repeated ContainerPort ports = 6;\n\n  // List of sources to populate environment variables in the container.\n  // The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n  // will be reported as an event when the container is starting. When a key exists in multiple\n  // sources, the value associated with the last source will take precedence.\n  // Values defined by an Env with a duplicate key will take precedence.\n  // Cannot be updated.\n  // +optional\n  repeated EnvFromSource envFrom = 19;\n\n  // List of environment variables to set in the container.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated EnvVar env = 7;\n\n  // Compute Resources required by this container.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  optional ResourceRequirements resources = 8;\n\n  // Resources resize policy for the container.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  // +listType=atomic\n  repeated ContainerResizePolicy resizePolicy = 23;\n\n  // Pod volumes to mount into the container's filesystem.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=mountPath\n  // +patchStrategy=merge\n  repeated VolumeMount volumeMounts = 9;\n\n  // volumeDevices is the list of block devices to be used by the container.\n  // +patchMergeKey=devicePath\n  // +patchStrategy=merge\n  // +optional\n  repeated VolumeDevice volumeDevices = 21;\n\n  // Periodic probe of container liveness.\n  // Container will be restarted if the probe fails.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe livenessProbe = 10;\n\n  // Periodic probe of container service readiness.\n  // Container will be removed from service endpoints if the probe fails.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe readinessProbe = 11;\n\n  // StartupProbe indicates that the Pod has successfully initialized.\n  // If specified, no other probes are executed until this completes successfully.\n  // If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\n  // This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\n  // when it might take a long time to load data or warm a cache, than during steady-state operation.\n  // This cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe startupProbe = 22;\n\n  // Actions that the management system should take in response to container lifecycle events.\n  // Cannot be updated.\n  // +optional\n  optional Lifecycle lifecycle = 12;\n\n  // Optional: Path at which the file to which the container's termination message\n  // will be written is mounted into the container's filesystem.\n  // Message written is intended to be brief final status, such as an assertion failure message.\n  // Will be truncated by the node if greater than 4096 bytes. The total message length across\n  // all containers will be limited to 12kb.\n  // Defaults to /dev/termination-log.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePath = 13;\n\n  // Indicate how the termination message should be populated. File will use the contents of\n  // terminationMessagePath to populate the container status message on both success and failure.\n  // FallbackToLogsOnError will use the last chunk of container log output if the termination\n  // message file is empty and the container exited with an error.\n  // The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n  // Defaults to File.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePolicy = 20;\n\n  // Image pull policy.\n  // One of Always, Never, IfNotPresent.\n  // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n  // +optional\n  optional string imagePullPolicy = 14;\n\n  // SecurityContext defines the security options the container should be run with.\n  // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n  // +optional\n  optional SecurityContext securityContext = 15;\n\n  // Whether this container should allocate a buffer for stdin in the container runtime. If this\n  // is not set, reads from stdin in the container will always result in EOF.\n  // Default is false.\n  // +optional\n  optional bool stdin = 16;\n\n  // Whether the container runtime should close the stdin channel after it has been opened by\n  // a single attach. When stdin is true the stdin stream will remain open across multiple attach\n  // sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n  // first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n  // at which time stdin is closed and remains closed until the container is restarted. If this\n  // flag is false, a container processes that reads from stdin will never receive an EOF.\n  // Default is false\n  // +optional\n  optional bool stdinOnce = 17;\n\n  // Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n  // Default is false.\n  // +optional\n  optional bool tty = 18;\n}\n\n// Describe a container image\nmessage ContainerImage {\n  // Names by which this image is known.\n  // e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]\n  // +optional\n  repeated string names = 1;\n\n  // The size of the image in bytes.\n  // +optional\n  optional int64 sizeBytes = 2;\n}\n\n// ContainerPort represents a network port in a single container.\nmessage ContainerPort {\n  // If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\n  // named port in a pod must have a unique name. Name for the port that can be\n  // referred to by services.\n  // +optional\n  optional string name = 1;\n\n  // Number of port to expose on the host.\n  // If specified, this must be a valid port number, 0 < x < 65536.\n  // If HostNetwork is specified, this must match ContainerPort.\n  // Most containers do not need this.\n  // +optional\n  optional int32 hostPort = 2;\n\n  // Number of port to expose on the pod's IP address.\n  // This must be a valid port number, 0 < x < 65536.\n  optional int32 containerPort = 3;\n\n  // Protocol for port. Must be UDP, TCP, or SCTP.\n  // Defaults to \"TCP\".\n  // +optional\n  // +default=\"TCP\"\n  optional string protocol = 4;\n\n  // What host IP to bind the external port to.\n  // +optional\n  optional string hostIP = 5;\n}\n\n// ContainerResizePolicy represents resource resize policy for the container.\nmessage ContainerResizePolicy {\n  // Name of the resource to which this resource resize policy applies.\n  // Supported values: cpu, memory.\n  optional string resourceName = 1;\n\n  // Restart policy to apply when specified resource is resized.\n  // If not specified, it defaults to NotRequired.\n  optional string restartPolicy = 2;\n}\n\n// ContainerState holds a possible state of container.\n// Only one of its members may be specified.\n// If none of them is specified, the default one is ContainerStateWaiting.\nmessage ContainerState {\n  // Details about a waiting container\n  // +optional\n  optional ContainerStateWaiting waiting = 1;\n\n  // Details about a running container\n  // +optional\n  optional ContainerStateRunning running = 2;\n\n  // Details about a terminated container\n  // +optional\n  optional ContainerStateTerminated terminated = 3;\n}\n\n// ContainerStateRunning is a running state of a container.\nmessage ContainerStateRunning {\n  // Time at which the container was last (re-)started\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;\n}\n\n// ContainerStateTerminated is a terminated state of a container.\nmessage ContainerStateTerminated {\n  // Exit status from the last termination of the container\n  optional int32 exitCode = 1;\n\n  // Signal from the last termination of the container\n  // +optional\n  optional int32 signal = 2;\n\n  // (brief) reason from the last termination of the container\n  // +optional\n  optional string reason = 3;\n\n  // Message regarding the last termination of the container\n  // +optional\n  optional string message = 4;\n\n  // Time at which previous execution of the container started\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;\n\n  // Time at which the container last terminated\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;\n\n  // Container's ID in the format '<type>://<container_id>'\n  // +optional\n  optional string containerID = 7;\n}\n\n// ContainerStateWaiting is a waiting state of a container.\nmessage ContainerStateWaiting {\n  // (brief) reason the container is not yet running.\n  // +optional\n  optional string reason = 1;\n\n  // Message regarding why the container is not yet running.\n  // +optional\n  optional string message = 2;\n}\n\n// ContainerStatus contains details for the current status of this container.\nmessage ContainerStatus {\n  // Name is a DNS_LABEL representing the unique name of the container.\n  // Each container in a pod must have a unique name across all container types.\n  // Cannot be updated.\n  optional string name = 1;\n\n  // State holds details about the container's current condition.\n  // +optional\n  optional ContainerState state = 2;\n\n  // LastTerminationState holds the last termination state of the container to\n  // help debug container crashes and restarts. This field is not\n  // populated if the container is still running and RestartCount is 0.\n  // +optional\n  optional ContainerState lastState = 3;\n\n  // Ready specifies whether the container is currently passing its readiness check.\n  // The value will change as readiness probes keep executing. If no readiness\n  // probes are specified, this field defaults to true once the container is\n  // fully started (see Started field).\n  //\n  // The value is typically used to determine whether a container is ready to\n  // accept traffic.\n  optional bool ready = 4;\n\n  // RestartCount holds the number of times the container has been restarted.\n  // Kubelet makes an effort to always increment the value, but there\n  // are cases when the state may be lost due to node restarts and then the value\n  // may be reset to 0. The value is never negative.\n  optional int32 restartCount = 5;\n\n  // Image is the name of container image that the container is running.\n  // The container image may not match the image used in the PodSpec,\n  // as it may have been resolved by the runtime.\n  // More info: https://kubernetes.io/docs/concepts/containers/images.\n  optional string image = 6;\n\n  // ImageID is the image ID of the container's image. The image ID may not\n  // match the image ID of the image used in the PodSpec, as it may have been\n  // resolved by the runtime.\n  optional string imageID = 7;\n\n  // ContainerID is the ID of the container in the format '<type>://<container_id>'.\n  // Where type is a container runtime identifier, returned from Version call of CRI API\n  // (for example \"containerd\").\n  // +optional\n  optional string containerID = 8;\n\n  // Started indicates whether the container has finished its postStart lifecycle hook\n  // and passed its startup probe.\n  // Initialized as false, becomes true after startupProbe is considered\n  // successful. Resets to false when the container is restarted, or if kubelet\n  // loses state temporarily. In both cases, startup probes will run again.\n  // Is always true when no startupProbe is defined and container is running and\n  // has passed the postStart lifecycle hook. The null value must be treated the\n  // same as false.\n  // +optional\n  optional bool started = 9;\n\n  // AllocatedResources represents the compute resources allocated for this container by the\n  // node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission\n  // and after successfully admitting desired pod resize.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> allocatedResources = 10;\n\n  // Resources represents the compute resource requests and limits that have been successfully\n  // enacted on the running container after it has been started or has been successfully resized.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  optional ResourceRequirements resources = 11;\n}\n\n// DaemonEndpoint contains information about a single Daemon endpoint.\nmessage DaemonEndpoint {\n  // Port number of the given endpoint.\n  optional int32 Port = 1;\n}\n\n// Represents downward API info for projecting into a projected volume.\n// Note that this is identical to a downwardAPI volume source without the default\n// mode.\nmessage DownwardAPIProjection {\n  // Items is a list of DownwardAPIVolume file\n  // +optional\n  repeated DownwardAPIVolumeFile items = 1;\n}\n\n// DownwardAPIVolumeFile represents information to create the file containing the pod field\nmessage DownwardAPIVolumeFile {\n  // Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\n  optional string path = 1;\n\n  // Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\n  // +optional\n  optional ObjectFieldSelector fieldRef = 2;\n\n  // Selects a resource of the container: only resources limits and requests\n  // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\n  // +optional\n  optional ResourceFieldSelector resourceFieldRef = 3;\n\n  // Optional: mode bits used to set permissions on this file, must be an octal value\n  // between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // If not specified, the volume defaultMode will be used.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 mode = 4;\n}\n\n// DownwardAPIVolumeSource represents a volume containing downward API info.\n// Downward API volumes support ownership management and SELinux relabeling.\nmessage DownwardAPIVolumeSource {\n  // Items is a list of downward API volume file\n  // +optional\n  repeated DownwardAPIVolumeFile items = 1;\n\n  // Optional: mode bits to use on created files by default. Must be a\n  // Optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 2;\n}\n\n// Represents an empty directory for a pod.\n// Empty directory volumes support ownership management and SELinux relabeling.\nmessage EmptyDirVolumeSource {\n  // medium represents what type of storage medium should back this directory.\n  // The default is \"\" which means to use the node's default medium.\n  // Must be an empty string (default) or Memory.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional string medium = 1;\n\n  // sizeLimit is the total amount of local storage required for this EmptyDir volume.\n  // The size limit is also applicable for memory medium.\n  // The maximum usage on memory medium EmptyDir would be the minimum value between\n  // the SizeLimit specified here and the sum of memory limits of all containers in a pod.\n  // The default is nil which means that the limit is undefined.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;\n}\n\n// EndpointAddress is a tuple that describes single IP address.\n// +structType=atomic\nmessage EndpointAddress {\n  // The IP of this endpoint.\n  // May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10),\n  // or link-local multicast (224.0.0.0/24 or ff02::/16).\n  optional string ip = 1;\n\n  // The Hostname of this endpoint\n  // +optional\n  optional string hostname = 3;\n\n  // Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\n  // +optional\n  optional string nodeName = 4;\n\n  // Reference to object providing the endpoint.\n  // +optional\n  optional ObjectReference targetRef = 2;\n}\n\n// EndpointPort is a tuple that describes a single port.\n// +structType=atomic\nmessage EndpointPort {\n  // The name of this port.  This must match the 'name' field in the\n  // corresponding ServicePort.\n  // Must be a DNS_LABEL.\n  // Optional only if one port is defined.\n  // +optional\n  optional string name = 1;\n\n  // The port number of the endpoint.\n  optional int32 port = 2;\n\n  // The IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  // +optional\n  optional string protocol = 3;\n\n  // The application protocol for this port.\n  // This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n  // This field follows standard Kubernetes label syntax.\n  // Valid values are either:\n  //\n  // * Un-prefixed protocol names - reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  //\n  // * Kubernetes-defined prefixed names:\n  //   * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\n  //\n  // * Other protocols should use implementation-defined prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSubset is a group of addresses with a common set of ports. The\n// expanded set of endpoints is the Cartesian product of Addresses x Ports.\n// For example, given:\n//\n// \t{\n// \t  Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n// \t  Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n// \t}\n//\n// The resulting set of endpoints can be viewed as:\n//\n// \ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n// \tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\nmessage EndpointSubset {\n  // IP addresses which offer the related ports that are marked as ready. These endpoints\n  // should be considered safe for load balancers and clients to utilize.\n  // +optional\n  repeated EndpointAddress addresses = 1;\n\n  // IP addresses which offer the related ports but are not currently marked as ready\n  // because they have not yet finished starting, have recently failed a readiness check,\n  // or have recently failed a liveness check.\n  // +optional\n  repeated EndpointAddress notReadyAddresses = 2;\n\n  // Port numbers available on the related IP addresses.\n  // +optional\n  repeated EndpointPort ports = 3;\n}\n\n// Endpoints is a collection of endpoints that implement the actual service. Example:\n//\n// \t Name: \"mysvc\",\n// \t Subsets: [\n// \t   {\n// \t     Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n// \t     Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n// \t   },\n// \t   {\n// \t     Addresses: [{\"ip\": \"10.10.3.3\"}],\n// \t     Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n// \t   },\n// \t]\nmessage Endpoints {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The set of all endpoints is the union of all subsets. Addresses are placed into\n  // subsets according to the IPs they share. A single address with multiple ports,\n  // some of which are ready and some of which are not (because they come from\n  // different containers) will result in the address being displayed in different\n  // subsets for the different ports. No address will appear in both Addresses and\n  // NotReadyAddresses in the same subset.\n  // Sets of addresses and ports that comprise a service.\n  // +optional\n  repeated EndpointSubset subsets = 2;\n}\n\n// EndpointsList is a list of endpoints.\nmessage EndpointsList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of endpoints.\n  repeated Endpoints items = 2;\n}\n\n// EnvFromSource represents the source of a set of ConfigMaps\nmessage EnvFromSource {\n  // An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\n  // +optional\n  optional string prefix = 1;\n\n  // The ConfigMap to select from\n  // +optional\n  optional ConfigMapEnvSource configMapRef = 2;\n\n  // The Secret to select from\n  // +optional\n  optional SecretEnvSource secretRef = 3;\n}\n\n// EnvVar represents an environment variable present in a Container.\nmessage EnvVar {\n  // Name of the environment variable. Must be a C_IDENTIFIER.\n  optional string name = 1;\n\n  // Variable references $(VAR_NAME) are expanded\n  // using the previously defined environment variables in the container and\n  // any service environment variables. If a variable cannot be resolved,\n  // the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\n  // \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\".\n  // Escaped references will never be expanded, regardless of whether the variable\n  // exists or not.\n  // Defaults to \"\".\n  // +optional\n  optional string value = 2;\n\n  // Source for the environment variable's value. Cannot be used if value is not empty.\n  // +optional\n  optional EnvVarSource valueFrom = 3;\n}\n\n// EnvVarSource represents a source for the value of an EnvVar.\nmessage EnvVarSource {\n  // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,\n  // spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\n  // +optional\n  optional ObjectFieldSelector fieldRef = 1;\n\n  // Selects a resource of the container: only resources limits and requests\n  // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\n  // +optional\n  optional ResourceFieldSelector resourceFieldRef = 2;\n\n  // Selects a key of a ConfigMap.\n  // +optional\n  optional ConfigMapKeySelector configMapKeyRef = 3;\n\n  // Selects a key of a secret in the pod's namespace\n  // +optional\n  optional SecretKeySelector secretKeyRef = 4;\n}\n\n// An EphemeralContainer is a temporary container that you may add to an existing Pod for\n// user-initiated activities such as debugging. Ephemeral containers have no resource or\n// scheduling guarantees, and they will not be restarted when they exit or when a Pod is\n// removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the\n// Pod to exceed its resource allocation.\n//\n// To add an ephemeral container, use the ephemeralcontainers subresource of an existing\n// Pod. Ephemeral containers may not be removed or restarted.\nmessage EphemeralContainer {\n  // Ephemeral containers have all of the fields of Container, plus additional fields\n  // specific to ephemeral containers. Fields in common with Container are in the\n  // following inlined struct so than an EphemeralContainer may easily be converted\n  // to a Container.\n  optional EphemeralContainerCommon ephemeralContainerCommon = 1;\n\n  // If set, the name of the container from PodSpec that this ephemeral container targets.\n  // The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\n  // If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n  //\n  // The container runtime must implement support for this feature. If the runtime does not\n  // support namespace targeting then the result of setting this field is undefined.\n  // +optional\n  optional string targetContainerName = 2;\n}\n\n// EphemeralContainerCommon is a copy of all fields in Container to be inlined in\n// EphemeralContainer. This separate type allows easy conversion from EphemeralContainer\n// to Container and allows separate documentation for the fields of EphemeralContainer.\n// When a new field is added to Container it must be added here as well.\nmessage EphemeralContainerCommon {\n  // Name of the ephemeral container specified as a DNS_LABEL.\n  // This name must be unique among all containers, init containers and ephemeral containers.\n  optional string name = 1;\n\n  // Container image name.\n  // More info: https://kubernetes.io/docs/concepts/containers/images\n  optional string image = 2;\n\n  // Entrypoint array. Not executed within a shell.\n  // The image's ENTRYPOINT is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  repeated string command = 3;\n\n  // Arguments to the entrypoint.\n  // The image's CMD is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  repeated string args = 4;\n\n  // Container's working directory.\n  // If not specified, the container runtime's default will be used, which\n  // might be configured in the container image.\n  // Cannot be updated.\n  // +optional\n  optional string workingDir = 5;\n\n  // Ports are not allowed for ephemeral containers.\n  // +optional\n  // +patchMergeKey=containerPort\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=containerPort\n  // +listMapKey=protocol\n  repeated ContainerPort ports = 6;\n\n  // List of sources to populate environment variables in the container.\n  // The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n  // will be reported as an event when the container is starting. When a key exists in multiple\n  // sources, the value associated with the last source will take precedence.\n  // Values defined by an Env with a duplicate key will take precedence.\n  // Cannot be updated.\n  // +optional\n  repeated EnvFromSource envFrom = 19;\n\n  // List of environment variables to set in the container.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated EnvVar env = 7;\n\n  // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\n  // already allocated to the pod.\n  // +optional\n  optional ResourceRequirements resources = 8;\n\n  // Resources resize policy for the container.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  // +listType=atomic\n  repeated ContainerResizePolicy resizePolicy = 23;\n\n  // Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=mountPath\n  // +patchStrategy=merge\n  repeated VolumeMount volumeMounts = 9;\n\n  // volumeDevices is the list of block devices to be used by the container.\n  // +patchMergeKey=devicePath\n  // +patchStrategy=merge\n  // +optional\n  repeated VolumeDevice volumeDevices = 21;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe livenessProbe = 10;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe readinessProbe = 11;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe startupProbe = 22;\n\n  // Lifecycle is not allowed for ephemeral containers.\n  // +optional\n  optional Lifecycle lifecycle = 12;\n\n  // Optional: Path at which the file to which the container's termination message\n  // will be written is mounted into the container's filesystem.\n  // Message written is intended to be brief final status, such as an assertion failure message.\n  // Will be truncated by the node if greater than 4096 bytes. The total message length across\n  // all containers will be limited to 12kb.\n  // Defaults to /dev/termination-log.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePath = 13;\n\n  // Indicate how the termination message should be populated. File will use the contents of\n  // terminationMessagePath to populate the container status message on both success and failure.\n  // FallbackToLogsOnError will use the last chunk of container log output if the termination\n  // message file is empty and the container exited with an error.\n  // The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n  // Defaults to File.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePolicy = 20;\n\n  // Image pull policy.\n  // One of Always, Never, IfNotPresent.\n  // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n  // +optional\n  optional string imagePullPolicy = 14;\n\n  // Optional: SecurityContext defines the security options the ephemeral container should be run with.\n  // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n  // +optional\n  optional SecurityContext securityContext = 15;\n\n  // Whether this container should allocate a buffer for stdin in the container runtime. If this\n  // is not set, reads from stdin in the container will always result in EOF.\n  // Default is false.\n  // +optional\n  optional bool stdin = 16;\n\n  // Whether the container runtime should close the stdin channel after it has been opened by\n  // a single attach. When stdin is true the stdin stream will remain open across multiple attach\n  // sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n  // first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n  // at which time stdin is closed and remains closed until the container is restarted. If this\n  // flag is false, a container processes that reads from stdin will never receive an EOF.\n  // Default is false\n  // +optional\n  optional bool stdinOnce = 17;\n\n  // Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n  // Default is false.\n  // +optional\n  optional bool tty = 18;\n}\n\n// Represents an ephemeral volume that is handled by a normal storage driver.\nmessage EphemeralVolumeSource {\n  // Will be used to create a stand-alone PVC to provision the volume.\n  // The pod in which this EphemeralVolumeSource is embedded will be the\n  // owner of the PVC, i.e. the PVC will be deleted together with the\n  // pod.  The name of the PVC will be `<pod name>-<volume name>` where\n  // `<volume name>` is the name from the `PodSpec.Volumes` array\n  // entry. Pod validation will reject the pod if the concatenated name\n  // is not valid for a PVC (for example, too long).\n  //\n  // An existing PVC with that name that is not owned by the pod\n  // will *not* be used for the pod to avoid using an unrelated\n  // volume by mistake. Starting the pod is then blocked until\n  // the unrelated PVC is removed. If such a pre-created PVC is\n  // meant to be used by the pod, the PVC has to updated with an\n  // owner reference to the pod once the pod exists. Normally\n  // this should not be necessary, but it may be useful when\n  // manually reconstructing a broken cluster.\n  //\n  // This field is read-only and no changes will be made by Kubernetes\n  // to the PVC after it has been created.\n  //\n  // Required, must not be nil.\n  optional PersistentVolumeClaimTemplate volumeClaimTemplate = 1;\n}\n\n// Event is a report of an event somewhere in the cluster.  Events\n// have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The object that this event is about.\n  optional ObjectReference involvedObject = 2;\n\n  // This should be a short, machine understandable string that gives the reason\n  // for the transition into the object's current status.\n  // TODO: provide exact specification for format.\n  // +optional\n  optional string reason = 3;\n\n  // A human-readable description of the status of this operation.\n  // TODO: decide on maximum length.\n  // +optional\n  optional string message = 4;\n\n  // The component reporting this event. Should be a short machine understandable string.\n  // +optional\n  optional EventSource source = 5;\n\n  // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;\n\n  // The time at which the most recent occurrence of this event was recorded.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;\n\n  // The number of times this event has occurred.\n  // +optional\n  optional int32 count = 8;\n\n  // Type of this event (Normal, Warning), new types could be added in the future\n  // +optional\n  optional string type = 9;\n\n  // Time when this Event was first observed.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;\n\n  // Data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 11;\n\n  // What action was taken/failed regarding to the Regarding object.\n  // +optional\n  optional string action = 12;\n\n  // Optional secondary object for more complex actions.\n  // +optional\n  optional ObjectReference related = 13;\n\n  // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // +optional\n  optional string reportingComponent = 14;\n\n  // ID of the controller instance, e.g. `kubelet-xyzf`.\n  // +optional\n  optional string reportingInstance = 15;\n}\n\n// EventList is a list of events.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of events\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\nmessage EventSeries {\n  // Number of occurrences in this series up to the last heartbeat time\n  optional int32 count = 1;\n\n  // Time of the last occurrence observed\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n// EventSource contains information for an event.\nmessage EventSource {\n  // Component from which the event is generated.\n  // +optional\n  optional string component = 1;\n\n  // Node name on which the event is generated.\n  // +optional\n  optional string host = 2;\n}\n\n// ExecAction describes a \"run in container\" action.\nmessage ExecAction {\n  // Command is the command line to execute inside the container, the working directory for the\n  // command  is root ('/') in the container's filesystem. The command is simply exec'd, it is\n  // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\n  // a shell, you need to explicitly call out to that shell.\n  // Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\n  // +optional\n  repeated string command = 1;\n}\n\n// Represents a Fibre Channel volume.\n// Fibre Channel volumes can only be mounted as read/write once.\n// Fibre Channel volumes support ownership management and SELinux relabeling.\nmessage FCVolumeSource {\n  // targetWWNs is Optional: FC target worldwide names (WWNs)\n  // +optional\n  repeated string targetWWNs = 1;\n\n  // lun is Optional: FC target lun number\n  // +optional\n  optional int32 lun = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // wwids Optional: FC volume world wide identifiers (wwids)\n  // Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\n  // +optional\n  repeated string wwids = 5;\n}\n\n// FlexPersistentVolumeSource represents a generic persistent volume resource that is\n// provisioned/attached using an exec based plugin.\nmessage FlexPersistentVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  optional string driver = 1;\n\n  // fsType is the Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n  // +optional\n  optional string fsType = 2;\n\n  // secretRef is Optional: SecretRef is reference to the secret object containing\n  // sensitive information to pass to the plugin scripts. This may be\n  // empty if no secret object is specified. If the secret object\n  // contains more than one secret, all secrets are passed to the plugin\n  // scripts.\n  // +optional\n  optional SecretReference secretRef = 3;\n\n  // readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // options is Optional: this field holds extra command options if any.\n  // +optional\n  map<string, string> options = 5;\n}\n\n// FlexVolume represents a generic volume resource that is\n// provisioned/attached using an exec based plugin.\nmessage FlexVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  optional string driver = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n  // +optional\n  optional string fsType = 2;\n\n  // secretRef is Optional: secretRef is reference to the secret object containing\n  // sensitive information to pass to the plugin scripts. This may be\n  // empty if no secret object is specified. If the secret object\n  // contains more than one secret, all secrets are passed to the plugin\n  // scripts.\n  // +optional\n  optional LocalObjectReference secretRef = 3;\n\n  // readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // options is Optional: this field holds extra command options if any.\n  // +optional\n  map<string, string> options = 5;\n}\n\n// Represents a Flocker volume mounted by the Flocker agent.\n// One and only one of datasetName and datasetUUID should be set.\n// Flocker volumes do not support ownership management or SELinux relabeling.\nmessage FlockerVolumeSource {\n  // datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker\n  // should be considered as deprecated\n  // +optional\n  optional string datasetName = 1;\n\n  // datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\n  // +optional\n  optional string datasetUUID = 2;\n}\n\n// Represents a Persistent Disk resource in Google Compute Engine.\n//\n// A GCE PD must exist before mounting to a container. The disk must\n// also be in the same GCE project and zone as the kubelet. A GCE PD\n// can only be mounted as read/write once or read-only many times. GCE\n// PDs support ownership management and SELinux relabeling.\nmessage GCEPersistentDiskVolumeSource {\n  // pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  optional string pdName = 1;\n\n  // fsType is filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 2;\n\n  // partition is the partition in the volume that you want to mount.\n  // If omitted, the default is to mount by volume name.\n  // Examples: For volume /dev/sda1, you specify the partition as \"1\".\n  // Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional int32 partition = 3;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional bool readOnly = 4;\n}\n\nmessage GRPCAction {\n  // Port number of the gRPC service. Number must be in the range 1 to 65535.\n  optional int32 port = 1;\n\n  // Service is the name of the service to place in the gRPC HealthCheckRequest\n  // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n  //\n  // If this is not specified, the default behavior is defined by gRPC.\n  // +optional\n  // +default=\"\"\n  optional string service = 2;\n}\n\n// Represents a volume that is populated with the contents of a git repository.\n// Git repo volumes do not support ownership management.\n// Git repo volumes support SELinux relabeling.\n//\n// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n// into the Pod's container.\nmessage GitRepoVolumeSource {\n  // repository is the URL\n  optional string repository = 1;\n\n  // revision is the commit hash for the specified revision.\n  // +optional\n  optional string revision = 2;\n\n  // directory is the target directory name.\n  // Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the\n  // git repository.  Otherwise, if specified, the volume will contain the git repository in\n  // the subdirectory with the given name.\n  // +optional\n  optional string directory = 3;\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\nmessage GlusterfsPersistentVolumeSource {\n  // endpoints is the endpoint name that details Glusterfs topology.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string endpoints = 1;\n\n  // path is the Glusterfs volume path.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string path = 2;\n\n  // readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional bool readOnly = 3;\n\n  // endpointsNamespace is the namespace that contains Glusterfs endpoint.\n  // If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional string endpointsNamespace = 4;\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\nmessage GlusterfsVolumeSource {\n  // endpoints is the endpoint name that details Glusterfs topology.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string endpoints = 1;\n\n  // path is the Glusterfs volume path.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string path = 2;\n\n  // readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// HTTPGetAction describes an action based on HTTP Get requests.\nmessage HTTPGetAction {\n  // Path to access on the HTTP server.\n  // +optional\n  optional string path = 1;\n\n  // Name or number of the port to access on the container.\n  // Number must be in the range 1 to 65535.\n  // Name must be an IANA_SVC_NAME.\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // Host name to connect to, defaults to the pod IP. You probably want to set\n  // \"Host\" in httpHeaders instead.\n  // +optional\n  optional string host = 3;\n\n  // Scheme to use for connecting to the host.\n  // Defaults to HTTP.\n  // +optional\n  optional string scheme = 4;\n\n  // Custom headers to set in the request. HTTP allows repeated headers.\n  // +optional\n  repeated HTTPHeader httpHeaders = 5;\n}\n\n// HTTPHeader describes a custom header to be used in HTTP probes\nmessage HTTPHeader {\n  // The header field name.\n  // This will be canonicalized upon output, so case-variant names will be understood as the same header.\n  optional string name = 1;\n\n  // The header field value\n  optional string value = 2;\n}\n\n// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\n// pod's hosts file.\nmessage HostAlias {\n  // IP address of the host file entry.\n  optional string ip = 1;\n\n  // Hostnames for the above IP address.\n  repeated string hostnames = 2;\n}\n\n// Represents a host path mapped into a pod.\n// Host path volumes do not support ownership management or SELinux relabeling.\nmessage HostPathVolumeSource {\n  // path of the directory on the host.\n  // If the path is a symlink, it will follow the link to the real path.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  optional string path = 1;\n\n  // type for HostPath Volume\n  // Defaults to \"\"\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // +optional\n  optional string type = 2;\n}\n\n// ISCSIPersistentVolumeSource represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\nmessage ISCSIPersistentVolumeSource {\n  // targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  optional string targetPortal = 1;\n\n  // iqn is Target iSCSI Qualified Name.\n  optional string iqn = 2;\n\n  // lun is iSCSI Target Lun number.\n  optional int32 lun = 3;\n\n  // iscsiInterface is the interface Name that uses an iSCSI transport.\n  // Defaults to 'default' (tcp).\n  // +optional\n  optional string iscsiInterface = 4;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 5;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 6;\n\n  // portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  // +optional\n  repeated string portals = 7;\n\n  // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n  // +optional\n  optional bool chapAuthDiscovery = 8;\n\n  // chapAuthSession defines whether support iSCSI Session CHAP authentication\n  // +optional\n  optional bool chapAuthSession = 11;\n\n  // secretRef is the CHAP Secret for iSCSI target and initiator authentication\n  // +optional\n  optional SecretReference secretRef = 10;\n\n  // initiatorName is the custom iSCSI Initiator Name.\n  // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n  // <target portal>:<volume name> will be created for the connection.\n  // +optional\n  optional string initiatorName = 12;\n}\n\n// Represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\nmessage ISCSIVolumeSource {\n  // targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  optional string targetPortal = 1;\n\n  // iqn is the target iSCSI Qualified Name.\n  optional string iqn = 2;\n\n  // lun represents iSCSI Target Lun number.\n  optional int32 lun = 3;\n\n  // iscsiInterface is the interface Name that uses an iSCSI transport.\n  // Defaults to 'default' (tcp).\n  // +optional\n  optional string iscsiInterface = 4;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 5;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 6;\n\n  // portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  // +optional\n  repeated string portals = 7;\n\n  // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n  // +optional\n  optional bool chapAuthDiscovery = 8;\n\n  // chapAuthSession defines whether support iSCSI Session CHAP authentication\n  // +optional\n  optional bool chapAuthSession = 11;\n\n  // secretRef is the CHAP Secret for iSCSI target and initiator authentication\n  // +optional\n  optional LocalObjectReference secretRef = 10;\n\n  // initiatorName is the custom iSCSI Initiator Name.\n  // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n  // <target portal>:<volume name> will be created for the connection.\n  // +optional\n  optional string initiatorName = 12;\n}\n\n// Maps a string key to a path within a volume.\nmessage KeyToPath {\n  // key is the key to project.\n  optional string key = 1;\n\n  // path is the relative path of the file to map the key to.\n  // May not be an absolute path.\n  // May not contain the path element '..'.\n  // May not start with the string '..'.\n  optional string path = 2;\n\n  // mode is Optional: mode bits used to set permissions on this file.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // If not specified, the volume defaultMode will be used.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 mode = 3;\n}\n\n// Lifecycle describes actions that the management system should take in response to container lifecycle\n// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks\n// until the action is complete, unless the container process fails, in which case the handler is aborted.\nmessage Lifecycle {\n  // PostStart is called immediately after a container is created. If the handler fails,\n  // the container is terminated and restarted according to its restart policy.\n  // Other management of the container blocks until the hook completes.\n  // More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n  // +optional\n  optional LifecycleHandler postStart = 1;\n\n  // PreStop is called immediately before a container is terminated due to an\n  // API request or management event such as liveness/startup probe failure,\n  // preemption, resource contention, etc. The handler is not called if the\n  // container crashes or exits. The Pod's termination grace period countdown begins before the\n  // PreStop hook is executed. Regardless of the outcome of the handler, the\n  // container will eventually terminate within the Pod's termination grace\n  // period (unless delayed by finalizers). Other management of the container blocks until the hook completes\n  // or until the termination grace period is reached.\n  // More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n  // +optional\n  optional LifecycleHandler preStop = 2;\n}\n\n// LifecycleHandler defines a specific action that should be taken in a lifecycle\n// hook. One and only one of the fields, except TCPSocket must be specified.\nmessage LifecycleHandler {\n  // Exec specifies the action to take.\n  // +optional\n  optional ExecAction exec = 1;\n\n  // HTTPGet specifies the http request to perform.\n  // +optional\n  optional HTTPGetAction httpGet = 2;\n\n  // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\n  // for the backward compatibility. There are no validation of this field and\n  // lifecycle hooks will fail in runtime when tcp handler is specified.\n  // +optional\n  optional TCPSocketAction tcpSocket = 3;\n}\n\n// LimitRange sets resource usage limits for each kind of resource in a Namespace.\nmessage LimitRange {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the limits enforced.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LimitRangeSpec spec = 2;\n}\n\n// LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\nmessage LimitRangeItem {\n  // Type of resource that this limit applies to.\n  optional string type = 1;\n\n  // Max usage constraints on this kind by resource name.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> max = 2;\n\n  // Min usage constraints on this kind by resource name.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> min = 3;\n\n  // Default resource requirement limit value by resource name if resource limit is omitted.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> default = 4;\n\n  // DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> defaultRequest = 5;\n\n  // MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> maxLimitRequestRatio = 6;\n}\n\n// LimitRangeList is a list of LimitRange items.\nmessage LimitRangeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of LimitRange objects.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  repeated LimitRange items = 2;\n}\n\n// LimitRangeSpec defines a min/max usage limit for resources that match on kind.\nmessage LimitRangeSpec {\n  // Limits is the list of LimitRangeItem objects that are enforced.\n  repeated LimitRangeItem limits = 1;\n}\n\n// List holds a list of objects, which may not be known by the server.\nmessage List {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of objects\n  repeated k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;\n}\n\n// LoadBalancerIngress represents the status of a load-balancer ingress point:\n// traffic intended for the service should be sent to an ingress point.\nmessage LoadBalancerIngress {\n  // IP is set for load-balancer ingress points that are IP based\n  // (typically GCE or OpenStack load-balancers)\n  // +optional\n  optional string ip = 1;\n\n  // Hostname is set for load-balancer ingress points that are DNS based\n  // (typically AWS load-balancers)\n  // +optional\n  optional string hostname = 2;\n\n  // Ports is a list of records of service ports\n  // If used, every port defined in the service should have an entry in it\n  // +listType=atomic\n  // +optional\n  repeated PortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage LoadBalancerStatus {\n  // Ingress is a list containing ingress points for the load-balancer.\n  // Traffic intended for the service should be sent to these ingress points.\n  // +optional\n  repeated LoadBalancerIngress ingress = 1;\n}\n\n// LocalObjectReference contains enough information to let you locate the\n// referenced object inside the same namespace.\n// +structType=atomic\nmessage LocalObjectReference {\n  // Name of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  // TODO: Add other useful fields. apiVersion, kind, uid?\n  // +optional\n  optional string name = 1;\n}\n\n// Local represents directly-attached storage with node affinity (Beta feature)\nmessage LocalVolumeSource {\n  // path of the full path to the volume on the node.\n  // It can be either a directory or block device (disk, partition, ...).\n  optional string path = 1;\n\n  // fsType is the filesystem type to mount.\n  // It applies only when the Path is a block device.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.\n  // +optional\n  optional string fsType = 2;\n}\n\n// Represents an NFS mount that lasts the lifetime of a pod.\n// NFS volumes do not support ownership management or SELinux relabeling.\nmessage NFSVolumeSource {\n  // server is the hostname or IP address of the NFS server.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  optional string server = 1;\n\n  // path that is exported by the NFS server.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  optional string path = 2;\n\n  // readOnly here will force the NFS export to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Namespace provides a scope for Names.\n// Use of multiple namespaces is optional.\nmessage Namespace {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of the Namespace.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NamespaceSpec spec = 2;\n\n  // Status describes the current status of a Namespace.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NamespaceStatus status = 3;\n}\n\n// NamespaceCondition contains details about state of namespace.\nmessage NamespaceCondition {\n  // Type of namespace controller condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // +optional\n  optional string reason = 5;\n\n  // +optional\n  optional string message = 6;\n}\n\n// NamespaceList is a list of Namespaces.\nmessage NamespaceList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Namespace objects in the list.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n  repeated Namespace items = 2;\n}\n\n// NamespaceSpec describes the attributes on a Namespace.\nmessage NamespaceSpec {\n  // Finalizers is an opaque list of values that must be empty to permanently remove object from storage.\n  // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n  // +optional\n  repeated string finalizers = 1;\n}\n\n// NamespaceStatus is information about the current status of a Namespace.\nmessage NamespaceStatus {\n  // Phase is the current lifecycle phase of the namespace.\n  // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n  // +optional\n  optional string phase = 1;\n\n  // Represents the latest available observations of a namespace's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated NamespaceCondition conditions = 2;\n}\n\n// Node is a worker node in Kubernetes.\n// Each node will have a unique identifier in the cache (i.e. in etcd).\nmessage Node {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of a node.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NodeSpec spec = 2;\n\n  // Most recently observed status of the node.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NodeStatus status = 3;\n}\n\n// NodeAddress contains information for the node's address.\nmessage NodeAddress {\n  // Node address type, one of Hostname, ExternalIP or InternalIP.\n  optional string type = 1;\n\n  // The node address.\n  optional string address = 2;\n}\n\n// Node affinity is a group of node affinity scheduling rules.\nmessage NodeAffinity {\n  // If the affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to an update), the system\n  // may or may not try to eventually evict the pod from its node.\n  // +optional\n  optional NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node matches the corresponding matchExpressions; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  repeated PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// NodeCondition contains condition information for a node.\nmessage NodeCondition {\n  // Type of node condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time we got an update on a given condition.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;\n\n  // Last time the condition transit from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // (brief) reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\n// This API is deprecated since 1.22\nmessage NodeConfigSource {\n  // ConfigMap is a reference to a Node's ConfigMap\n  optional ConfigMapNodeConfigSource configMap = 2;\n}\n\n// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\nmessage NodeConfigStatus {\n  // Assigned reports the checkpointed config the node will try to use.\n  // When Node.Spec.ConfigSource is updated, the node checkpoints the associated\n  // config payload to local disk, along with a record indicating intended\n  // config. The node refers to this record to choose its config checkpoint, and\n  // reports this record in Assigned. Assigned only updates in the status after\n  // the record has been checkpointed to disk. When the Kubelet is restarted,\n  // it tries to make the Assigned config the Active config by loading and\n  // validating the checkpointed payload identified by Assigned.\n  // +optional\n  optional NodeConfigSource assigned = 1;\n\n  // Active reports the checkpointed config the node is actively using.\n  // Active will represent either the current version of the Assigned config,\n  // or the current LastKnownGood config, depending on whether attempting to use the\n  // Assigned config results in an error.\n  // +optional\n  optional NodeConfigSource active = 2;\n\n  // LastKnownGood reports the checkpointed config the node will fall back to\n  // when it encounters an error attempting to use the Assigned config.\n  // The Assigned config becomes the LastKnownGood config when the node determines\n  // that the Assigned config is stable and correct.\n  // This is currently implemented as a 10-minute soak period starting when the local\n  // record of Assigned config is updated. If the Assigned config is Active at the end\n  // of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is\n  // reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,\n  // because the local default config is always assumed good.\n  // You should not make assumptions about the node's method of determining config stability\n  // and correctness, as this may change or become configurable in the future.\n  // +optional\n  optional NodeConfigSource lastKnownGood = 3;\n\n  // Error describes any problems reconciling the Spec.ConfigSource to the Active config.\n  // Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned\n  // record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting\n  // to load or validate the Assigned config, etc.\n  // Errors may occur at different points while syncing config. Earlier errors (e.g. download or\n  // checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across\n  // Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in\n  // a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error\n  // by fixing the config assigned in Spec.ConfigSource.\n  // You can find additional information for debugging by searching the error message in the Kubelet log.\n  // Error is a human-readable description of the error state; machines can check whether or not Error\n  // is empty, but should not rely on the stability of the Error text across Kubelet versions.\n  // +optional\n  optional string error = 4;\n}\n\n// NodeDaemonEndpoints lists ports opened by daemons running on the Node.\nmessage NodeDaemonEndpoints {\n  // Endpoint on which Kubelet is listening.\n  // +optional\n  optional DaemonEndpoint kubeletEndpoint = 1;\n}\n\n// NodeList is the whole list of all Nodes which have been registered with master.\nmessage NodeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of nodes\n  repeated Node items = 2;\n}\n\n// NodeProxyOptions is the query options to a Node's proxy call.\nmessage NodeProxyOptions {\n  // Path is the URL path to use for the current proxy request to node.\n  // +optional\n  optional string path = 1;\n}\n\n// NodeResources is an object for conveying resource information about a node.\n// see https://kubernetes.io/docs/concepts/architecture/nodes/#capacity for more details.\nmessage NodeResources {\n  // Capacity represents the available resources of a node\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 1;\n}\n\n// A node selector represents the union of the results of one or more label queries\n// over a set of nodes; that is, it represents the OR of the selectors represented\n// by the node selector terms.\n// +structType=atomic\nmessage NodeSelector {\n  // Required. A list of node selector terms. The terms are ORed.\n  repeated NodeSelectorTerm nodeSelectorTerms = 1;\n}\n\n// A node selector requirement is a selector that contains values, a key, and an operator\n// that relates the key and values.\nmessage NodeSelectorRequirement {\n  // The label key that the selector applies to.\n  optional string key = 1;\n\n  // Represents a key's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n  optional string operator = 2;\n\n  // An array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty. If the operator is Gt or Lt, the values\n  // array must have a single element, which will be interpreted as an integer.\n  // This array is replaced during a strategic merge patch.\n  // +optional\n  repeated string values = 3;\n}\n\n// A null or empty node selector term matches no objects. The requirements of\n// them are ANDed.\n// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n// +structType=atomic\nmessage NodeSelectorTerm {\n  // A list of node selector requirements by node's labels.\n  // +optional\n  repeated NodeSelectorRequirement matchExpressions = 1;\n\n  // A list of node selector requirements by node's fields.\n  // +optional\n  repeated NodeSelectorRequirement matchFields = 2;\n}\n\n// NodeSpec describes the attributes that a node is created with.\nmessage NodeSpec {\n  // PodCIDR represents the pod IP range assigned to the node.\n  // +optional\n  optional string podCIDR = 1;\n\n  // podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this\n  // field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for\n  // each of IPv4 and IPv6.\n  // +optional\n  // +patchStrategy=merge\n  repeated string podCIDRs = 7;\n\n  // ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\n  // +optional\n  optional string providerID = 3;\n\n  // Unschedulable controls node schedulability of new pods. By default, node is schedulable.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\n  // +optional\n  optional bool unschedulable = 4;\n\n  // If specified, the node's taints.\n  // +optional\n  repeated Taint taints = 5;\n\n  // Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\n  // +optional\n  optional NodeConfigSource configSource = 6;\n\n  // Deprecated. Not all kubelets will set this field. Remove field after 1.13.\n  // see: https://issues.k8s.io/61966\n  // +optional\n  optional string externalID = 2;\n}\n\n// NodeStatus is information about the current status of a node.\nmessage NodeStatus {\n  // Capacity represents the total resources of a node.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 1;\n\n  // Allocatable represents the resources of a node that are available for scheduling.\n  // Defaults to Capacity.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> allocatable = 2;\n\n  // NodePhase is the recently observed lifecycle phase of the node.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#phase\n  // The field is never populated, and now is deprecated.\n  // +optional\n  optional string phase = 3;\n\n  // Conditions is an array of current observed node conditions.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated NodeCondition conditions = 4;\n\n  // List of addresses reachable to the node.\n  // Queried from cloud provider, if available.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses\n  // Note: This field is declared as mergeable, but the merge key is not sufficiently\n  // unique, which can cause data corruption when it is merged. Callers should instead\n  // use a full-replacement patch. See https://pr.k8s.io/79391 for an example.\n  // Consumers should assume that addresses can change during the\n  // lifetime of a Node. However, there are some exceptions where this may not\n  // be possible, such as Pods that inherit a Node's address in its own status or\n  // consumers of the downward API (status.hostIP).\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated NodeAddress addresses = 5;\n\n  // Endpoints of daemons running on the Node.\n  // +optional\n  optional NodeDaemonEndpoints daemonEndpoints = 6;\n\n  // Set of ids/uuids to uniquely identify the node.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#info\n  // +optional\n  optional NodeSystemInfo nodeInfo = 7;\n\n  // List of container images on this node\n  // +optional\n  repeated ContainerImage images = 8;\n\n  // List of attachable volumes in use (mounted) by the node.\n  // +optional\n  repeated string volumesInUse = 9;\n\n  // List of volumes that are attached to the node.\n  // +optional\n  repeated AttachedVolume volumesAttached = 10;\n\n  // Status of the config assigned to the node via the dynamic Kubelet config feature.\n  // +optional\n  optional NodeConfigStatus config = 11;\n}\n\n// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\nmessage NodeSystemInfo {\n  // MachineID reported by the node. For unique machine identification\n  // in the cluster this field is preferred. Learn more from man(5)\n  // machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\n  optional string machineID = 1;\n\n  // SystemUUID reported by the node. For unique machine identification\n  // MachineID is preferred. This field is specific to Red Hat hosts\n  // https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\n  optional string systemUUID = 2;\n\n  // Boot ID reported by the node.\n  optional string bootID = 3;\n\n  // Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\n  optional string kernelVersion = 4;\n\n  // OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\n  optional string osImage = 5;\n\n  // ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\n  optional string containerRuntimeVersion = 6;\n\n  // Kubelet Version reported by the node.\n  optional string kubeletVersion = 7;\n\n  // KubeProxy Version reported by the node.\n  optional string kubeProxyVersion = 8;\n\n  // The Operating System reported by the node\n  optional string operatingSystem = 9;\n\n  // The Architecture reported by the node\n  optional string architecture = 10;\n}\n\n// ObjectFieldSelector selects an APIVersioned field of an object.\n// +structType=atomic\nmessage ObjectFieldSelector {\n  // Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n  // +optional\n  optional string apiVersion = 1;\n\n  // Path of the field to select in the specified API version.\n  optional string fieldPath = 2;\n}\n\n// ObjectReference contains enough information to let you inspect or modify the referred object.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\n//  2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +structType=atomic\nmessage ObjectReference {\n  // Kind of the referent.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 1;\n\n  // Namespace of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n  // +optional\n  optional string namespace = 2;\n\n  // Name of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  // +optional\n  optional string name = 3;\n\n  // UID of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n  // +optional\n  optional string uid = 4;\n\n  // API version of the referent.\n  // +optional\n  optional string apiVersion = 5;\n\n  // Specific resourceVersion to which this reference is made, if any.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 6;\n\n  // If referring to a piece of an object instead of an entire object, this string\n  // should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\n  // For example, if the object reference is to a container within a pod, this would take on a value like:\n  // \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\n  // the event) or if no container name is specified \"spec.containers[2]\" (container with\n  // index 2 in this pod). This syntax is chosen only to have some well-defined way of\n  // referencing a part of an object.\n  // TODO: this design is not final and this field is subject to change in the future.\n  // +optional\n  optional string fieldPath = 7;\n}\n\n// PersistentVolume (PV) is a storage resource provisioned by an administrator.\n// It is analogous to a node.\n// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\nmessage PersistentVolume {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines a specification of a persistent volume owned by the cluster.\n  // Provisioned by an administrator.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n  // +optional\n  optional PersistentVolumeSpec spec = 2;\n\n  // status represents the current information/status for the persistent volume.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n  // +optional\n  optional PersistentVolumeStatus status = 3;\n}\n\n// PersistentVolumeClaim is a user's request for and claim to a persistent volume\nmessage PersistentVolumeClaim {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the desired characteristics of a volume requested by a pod author.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimSpec spec = 2;\n\n  // status represents the current information/status of a persistent volume claim.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimStatus status = 3;\n}\n\n// PersistentVolumeClaimCondition contains details about state of pvc\nmessage PersistentVolumeClaimCondition {\n  optional string type = 1;\n\n  optional string status = 2;\n\n  // lastProbeTime is the time we probed the condition.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // lastTransitionTime is the time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // reason is a unique, this should be a short, machine understandable string that gives the reason\n  // for condition's last transition. If it reports \"ResizeStarted\" that means the underlying\n  // persistent volume is being resized.\n  // +optional\n  optional string reason = 5;\n\n  // message is the human-readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\nmessage PersistentVolumeClaimList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of persistent volume claims.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  repeated PersistentVolumeClaim items = 2;\n}\n\n// PersistentVolumeClaimSpec describes the common attributes of storage devices\n// and allows a Source for provider-specific attributes\nmessage PersistentVolumeClaimSpec {\n  // accessModes contains the desired access modes the volume should have.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n  // +optional\n  repeated string accessModes = 1;\n\n  // selector is a label query over volumes to consider for binding.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // resources represents the minimum resources the volume should have.\n  // If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\n  // that are lower than previous value but must still be higher than capacity recorded in the\n  // status field of the claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n  // +optional\n  optional ResourceRequirements resources = 2;\n\n  // volumeName is the binding reference to the PersistentVolume backing this claim.\n  // +optional\n  optional string volumeName = 3;\n\n  // storageClassName is the name of the StorageClass required by the claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\n  // +optional\n  optional string storageClassName = 5;\n\n  // volumeMode defines what type of volume is required by the claim.\n  // Value of Filesystem is implied when not included in claim spec.\n  // +optional\n  optional string volumeMode = 6;\n\n  // dataSource field can be used to specify either:\n  // * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n  // * An existing PVC (PersistentVolumeClaim)\n  // If the provisioner or an external controller can support the specified data source,\n  // it will create a new volume based on the contents of the specified data source.\n  // When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\n  // and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\n  // If the namespace is specified, then dataSourceRef will not be copied to dataSource.\n  // +optional\n  optional TypedLocalObjectReference dataSource = 7;\n\n  // dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\n  // volume is desired. This may be any object from a non-empty API group (non\n  // core object) or a PersistentVolumeClaim object.\n  // When this field is specified, volume binding will only succeed if the type of\n  // the specified object matches some installed volume populator or dynamic\n  // provisioner.\n  // This field will replace the functionality of the dataSource field and as such\n  // if both fields are non-empty, they must have the same value. For backwards\n  // compatibility, when namespace isn't specified in dataSourceRef,\n  // both fields (dataSource and dataSourceRef) will be set to the same\n  // value automatically if one of them is empty and the other is non-empty.\n  // When namespace is specified in dataSourceRef,\n  // dataSource isn't set to the same value and must be empty.\n  // There are three important differences between dataSource and dataSourceRef:\n  // * While dataSource only allows two specific types of objects, dataSourceRef\n  //   allows any non-core object, as well as PersistentVolumeClaim objects.\n  // * While dataSource ignores disallowed values (dropping them), dataSourceRef\n  //   preserves all values, and generates an error if a disallowed value is\n  //   specified.\n  // * While dataSource only allows local objects, dataSourceRef allows objects\n  //   in any namespaces.\n  // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n  // (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n  // +optional\n  optional TypedObjectReference dataSourceRef = 8;\n}\n\n// PersistentVolumeClaimStatus is the current status of a persistent volume claim.\nmessage PersistentVolumeClaimStatus {\n  // phase represents the current phase of PersistentVolumeClaim.\n  // +optional\n  optional string phase = 1;\n\n  // accessModes contains the actual access modes the volume backing the PVC has.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n  // +optional\n  repeated string accessModes = 2;\n\n  // capacity represents the actual resources of the underlying volume.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 3;\n\n  // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\n  // resized then the Condition will be set to 'ResizeStarted'.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated PersistentVolumeClaimCondition conditions = 4;\n\n  // allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may\n  // be larger than the actual capacity when a volume expansion operation is requested.\n  // For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\n  // If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\n  // If a volume expansion capacity request is lowered, allocatedResources is only\n  // lowered if there are no expansion operations in progress and if the actual volume capacity\n  // is equal or lower than the requested capacity.\n  // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n  // +featureGate=RecoverVolumeExpansionFailure\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> allocatedResources = 5;\n\n  // resizeStatus stores status of resize operation.\n  // ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty\n  // string by resize controller or kubelet.\n  // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n  // +featureGate=RecoverVolumeExpansionFailure\n  // +optional\n  optional string resizeStatus = 6;\n}\n\n// PersistentVolumeClaimTemplate is used to produce\n// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\nmessage PersistentVolumeClaimTemplate {\n  // May contain labels and annotations that will be copied into the PVC\n  // when creating it. No other fields are allowed and will be rejected during\n  // validation.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The specification for the PersistentVolumeClaim. The entire content is\n  // copied unchanged into the PVC that gets created from this\n  // template. The same fields as in a PersistentVolumeClaim\n  // are also valid here.\n  optional PersistentVolumeClaimSpec spec = 2;\n}\n\n// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.\n// This volume finds the bound PV and mounts that volume for the pod. A\n// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another\n// type of volume that is owned by someone else (the system).\nmessage PersistentVolumeClaimVolumeSource {\n  // claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  optional string claimName = 1;\n\n  // readOnly Will force the ReadOnly setting in VolumeMounts.\n  // Default false.\n  // +optional\n  optional bool readOnly = 2;\n}\n\n// PersistentVolumeList is a list of PersistentVolume items.\nmessage PersistentVolumeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of persistent volumes.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\n  repeated PersistentVolume items = 2;\n}\n\n// PersistentVolumeSource is similar to VolumeSource but meant for the\n// administrator who creates PVs. Exactly one of its members must be set.\nmessage PersistentVolumeSource {\n  // gcePersistentDisk represents a GCE Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional GCEPersistentDiskVolumeSource gcePersistentDisk = 1;\n\n  // awsElasticBlockStore represents an AWS Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;\n\n  // hostPath represents a directory on the host.\n  // Provisioned by a developer or tester.\n  // This is useful for single-node development and testing only!\n  // On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // +optional\n  optional HostPathVolumeSource hostPath = 3;\n\n  // glusterfs represents a Glusterfs volume that is attached to a host and\n  // exposed to the pod. Provisioned by an admin.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md\n  // +optional\n  optional GlusterfsPersistentVolumeSource glusterfs = 4;\n\n  // nfs represents an NFS mount on the host. Provisioned by an admin.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional NFSVolumeSource nfs = 5;\n\n  // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md\n  // +optional\n  optional RBDPersistentVolumeSource rbd = 6;\n\n  // iscsi represents an ISCSI Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n  // +optional\n  optional ISCSIPersistentVolumeSource iscsi = 7;\n\n  // cinder represents a cinder volume attached and mounted on kubelets host machine.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional CinderPersistentVolumeSource cinder = 8;\n\n  // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\n  // +optional\n  optional CephFSPersistentVolumeSource cephfs = 9;\n\n  // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n  // +optional\n  optional FCVolumeSource fc = 10;\n\n  // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\n  // +optional\n  optional FlockerVolumeSource flocker = 11;\n\n  // flexVolume represents a generic volume resource that is\n  // provisioned/attached using an exec based plugin.\n  // +optional\n  optional FlexPersistentVolumeSource flexVolume = 12;\n\n  // azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n  // +optional\n  optional AzureFilePersistentVolumeSource azureFile = 13;\n\n  // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\n  // +optional\n  optional VsphereVirtualDiskVolumeSource vsphereVolume = 14;\n\n  // quobyte represents a Quobyte mount on the host that shares a pod's lifetime\n  // +optional\n  optional QuobyteVolumeSource quobyte = 15;\n\n  // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n  // +optional\n  optional AzureDiskVolumeSource azureDisk = 16;\n\n  // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\n  optional PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;\n\n  // portworxVolume represents a portworx volume attached and mounted on kubelets host machine\n  // +optional\n  optional PortworxVolumeSource portworxVolume = 18;\n\n  // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n  // +optional\n  optional ScaleIOPersistentVolumeSource scaleIO = 19;\n\n  // local represents directly-attached storage with node affinity\n  // +optional\n  optional LocalVolumeSource local = 20;\n\n  // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod\n  // More info: https://examples.k8s.io/volumes/storageos/README.md\n  // +optional\n  optional StorageOSPersistentVolumeSource storageos = 21;\n\n  // csi represents storage that is handled by an external CSI driver (Beta feature).\n  // +optional\n  optional CSIPersistentVolumeSource csi = 22;\n}\n\n// PersistentVolumeSpec is the specification of a persistent volume.\nmessage PersistentVolumeSpec {\n  // capacity is the description of the persistent volume's resources and capacity.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 1;\n\n  // persistentVolumeSource is the actual volume backing the persistent volume.\n  optional PersistentVolumeSource persistentVolumeSource = 2;\n\n  // accessModes contains all ways the volume can be mounted.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\n  // +optional\n  repeated string accessModes = 3;\n\n  // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.\n  // Expected to be non-nil when bound.\n  // claim.VolumeName is the authoritative bind between PV and PVC.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\n  // +optional\n  // +structType=granular\n  optional ObjectReference claimRef = 4;\n\n  // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim.\n  // Valid options are Retain (default for manually created PersistentVolumes), Delete (default\n  // for dynamically provisioned PersistentVolumes), and Recycle (deprecated).\n  // Recycle must be supported by the volume plugin underlying this PersistentVolume.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n  // +optional\n  optional string persistentVolumeReclaimPolicy = 5;\n\n  // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value\n  // means that this volume does not belong to any StorageClass.\n  // +optional\n  optional string storageClassName = 6;\n\n  // mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will\n  // simply fail if one is invalid.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\n  // +optional\n  repeated string mountOptions = 7;\n\n  // volumeMode defines if a volume is intended to be used with a formatted filesystem\n  // or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n  // +optional\n  optional string volumeMode = 8;\n\n  // nodeAffinity defines constraints that limit what nodes this volume can be accessed from.\n  // This field influences the scheduling of pods that use this volume.\n  // +optional\n  optional VolumeNodeAffinity nodeAffinity = 9;\n}\n\n// PersistentVolumeStatus is the current status of a persistent volume.\nmessage PersistentVolumeStatus {\n  // phase indicates if a volume is available, bound to a claim, or released by a claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n  // +optional\n  optional string phase = 1;\n\n  // message is a human-readable message indicating details about why the volume is in this state.\n  // +optional\n  optional string message = 2;\n\n  // reason is a brief CamelCase string that describes any failure and is meant\n  // for machine parsing and tidy display in the CLI.\n  // +optional\n  optional string reason = 3;\n}\n\n// Represents a Photon Controller persistent disk resource.\nmessage PhotonPersistentDiskVolumeSource {\n  // pdID is the ID that identifies Photon Controller persistent disk\n  optional string pdID = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  optional string fsType = 2;\n}\n\n// Pod is a collection of containers that can run on a host. This resource is created\n// by clients and scheduled onto hosts.\nmessage Pod {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the pod.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodSpec spec = 2;\n\n  // Most recently observed status of the pod.\n  // This data may not be up to date.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodStatus status = 3;\n}\n\n// Pod affinity is a group of inter pod affinity scheduling rules.\nmessage PodAffinity {\n  // If the affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to a pod label update), the\n  // system may or may not try to eventually evict the pod from its node.\n  // When there are multiple elements, the lists of nodes corresponding to each\n  // podAffinityTerm are intersected, i.e. all terms must be satisfied.\n  // +optional\n  repeated PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  repeated WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// Defines a set of pods (namely those matching the labelSelector\n// relative to the given namespace(s)) that this pod should be\n// co-located (affinity) or not co-located (anti-affinity) with,\n// where co-located is defined as running on a node whose value of\n// the label with key <topologyKey> matches that of any node on which\n// a pod of the set of pods is running\nmessage PodAffinityTerm {\n  // A label query over a set of resources, in this case pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;\n\n  // namespaces specifies a static list of namespace names that the term applies to.\n  // The term is applied to the union of the namespaces listed in this field\n  // and the ones selected by namespaceSelector.\n  // null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".\n  // +optional\n  repeated string namespaces = 2;\n\n  // This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\n  // the labelSelector in the specified namespaces, where co-located is defined as running on a node\n  // whose value of the label with key topologyKey matches that of any node on which any of the\n  // selected pods is running.\n  // Empty topologyKey is not allowed.\n  optional string topologyKey = 3;\n\n  // A label query over the set of namespaces that the term applies to.\n  // The term is applied to the union of the namespaces selected by this field\n  // and the ones listed in the namespaces field.\n  // null selector and null or empty namespaces list means \"this pod's namespace\".\n  // An empty selector ({}) matches all namespaces.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 4;\n}\n\n// Pod anti affinity is a group of inter pod anti affinity scheduling rules.\nmessage PodAntiAffinity {\n  // If the anti-affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the anti-affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to a pod label update), the\n  // system may or may not try to eventually evict the pod from its node.\n  // When there are multiple elements, the lists of nodes corresponding to each\n  // podAffinityTerm are intersected, i.e. all terms must be satisfied.\n  // +optional\n  repeated PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the anti-affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling anti-affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  repeated WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// PodAttachOptions is the query options to a Pod's remote attach call.\n// ---\n// TODO: merge w/ PodExecOptions below for stdin, stdout, etc\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\nmessage PodAttachOptions {\n  // Stdin if true, redirects the standard input stream of the pod for this call.\n  // Defaults to false.\n  // +optional\n  optional bool stdin = 1;\n\n  // Stdout if true indicates that stdout is to be redirected for the attach call.\n  // Defaults to true.\n  // +optional\n  optional bool stdout = 2;\n\n  // Stderr if true indicates that stderr is to be redirected for the attach call.\n  // Defaults to true.\n  // +optional\n  optional bool stderr = 3;\n\n  // TTY if true indicates that a tty will be allocated for the attach call.\n  // This is passed through the container runtime so the tty\n  // is allocated on the worker node by the container runtime.\n  // Defaults to false.\n  // +optional\n  optional bool tty = 4;\n\n  // The container in which to execute the command.\n  // Defaults to only container if there is only one container in the pod.\n  // +optional\n  optional string container = 5;\n}\n\n// PodCondition contains details for the current condition of this pod.\nmessage PodCondition {\n  // Type is the type of the condition.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  optional string type = 1;\n\n  // Status is the status of the condition.\n  // Can be True, False, Unknown.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  optional string status = 2;\n\n  // Last time we probed the condition.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // Unique, one-word, CamelCase reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human-readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// PodDNSConfig defines the DNS parameters of a pod in addition to\n// those generated from DNSPolicy.\nmessage PodDNSConfig {\n  // A list of DNS name server IP addresses.\n  // This will be appended to the base nameservers generated from DNSPolicy.\n  // Duplicated nameservers will be removed.\n  // +optional\n  repeated string nameservers = 1;\n\n  // A list of DNS search domains for host-name lookup.\n  // This will be appended to the base search paths generated from DNSPolicy.\n  // Duplicated search paths will be removed.\n  // +optional\n  repeated string searches = 2;\n\n  // A list of DNS resolver options.\n  // This will be merged with the base options generated from DNSPolicy.\n  // Duplicated entries will be removed. Resolution options given in Options\n  // will override those that appear in the base DNSPolicy.\n  // +optional\n  repeated PodDNSConfigOption options = 3;\n}\n\n// PodDNSConfigOption defines DNS resolver options of a pod.\nmessage PodDNSConfigOption {\n  // Required.\n  optional string name = 1;\n\n  // +optional\n  optional string value = 2;\n}\n\n// PodExecOptions is the query options to a Pod's remote exec call.\n// ---\n// TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\nmessage PodExecOptions {\n  // Redirect the standard input stream of the pod for this call.\n  // Defaults to false.\n  // +optional\n  optional bool stdin = 1;\n\n  // Redirect the standard output stream of the pod for this call.\n  // +optional\n  optional bool stdout = 2;\n\n  // Redirect the standard error stream of the pod for this call.\n  // +optional\n  optional bool stderr = 3;\n\n  // TTY if true indicates that a tty will be allocated for the exec call.\n  // Defaults to false.\n  // +optional\n  optional bool tty = 4;\n\n  // Container in which to execute the command.\n  // Defaults to only container if there is only one container in the pod.\n  // +optional\n  optional string container = 5;\n\n  // Command is the remote command to execute. argv array. Not executed within a shell.\n  repeated string command = 6;\n}\n\n// IP address information for entries in the (plural) PodIPs field.\n// Each entry includes:\n//\n// \tIP: An IP address allocated to the pod. Routable at least within the cluster.\nmessage PodIP {\n  // ip is an IP address (IPv4 or IPv6) assigned to the pod\n  optional string ip = 1;\n}\n\n// PodList is a list of Pods.\nmessage PodList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of pods.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\n  repeated Pod items = 2;\n}\n\n// PodLogOptions is the query options for a Pod's logs REST call.\nmessage PodLogOptions {\n  // The container for which to stream logs. Defaults to only container if there is one container in the pod.\n  // +optional\n  optional string container = 1;\n\n  // Follow the log stream of the pod. Defaults to false.\n  // +optional\n  optional bool follow = 2;\n\n  // Return previous terminated container logs. Defaults to false.\n  // +optional\n  optional bool previous = 3;\n\n  // A relative time in seconds before the current time from which to show logs. If this value\n  // precedes the time a pod was started, only logs since the pod start will be returned.\n  // If this value is in the future, no logs will be returned.\n  // Only one of sinceSeconds or sinceTime may be specified.\n  // +optional\n  optional int64 sinceSeconds = 4;\n\n  // An RFC3339 timestamp from which to show logs. If this value\n  // precedes the time a pod was started, only logs since the pod start will be returned.\n  // If this value is in the future, no logs will be returned.\n  // Only one of sinceSeconds or sinceTime may be specified.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;\n\n  // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\n  // of log output. Defaults to false.\n  // +optional\n  optional bool timestamps = 6;\n\n  // If set, the number of lines from the end of the logs to show. If not specified,\n  // logs are shown from the creation of the container or sinceSeconds or sinceTime\n  // +optional\n  optional int64 tailLines = 7;\n\n  // If set, the number of bytes to read from the server before terminating the\n  // log output. This may not display a complete final line of logging, and may return\n  // slightly more or slightly less than the specified limit.\n  // +optional\n  optional int64 limitBytes = 8;\n\n  // insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\n  // serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver\n  // and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\n  // kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\n  // connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\n  // the actual log data coming from the real kubelet).\n  // +optional\n  optional bool insecureSkipTLSVerifyBackend = 9;\n}\n\n// PodOS defines the OS parameters of a pod.\nmessage PodOS {\n  // Name is the name of the operating system. The currently supported values are linux and windows.\n  // Additional value may be defined in future and can be one of:\n  // https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\n  // Clients should expect to handle additional values and treat unrecognized values in this field as os: null\n  optional string name = 1;\n}\n\n// PodPortForwardOptions is the query options to a Pod's port forward call\n// when using WebSockets.\n// The `port` query parameter must specify the port or\n// ports (comma separated) to forward over.\n// Port forwarding over SPDY does not use these options. It requires the port\n// to be passed in the `port` header as part of request.\nmessage PodPortForwardOptions {\n  // List of ports to forward\n  // Required when using WebSockets\n  // +optional\n  repeated int32 ports = 1;\n}\n\n// PodProxyOptions is the query options to a Pod's proxy call.\nmessage PodProxyOptions {\n  // Path is the URL path to use for the current proxy request to pod.\n  // +optional\n  optional string path = 1;\n}\n\n// PodReadinessGate contains the reference to a pod condition\nmessage PodReadinessGate {\n  // ConditionType refers to a condition in the pod's condition list with matching type.\n  optional string conditionType = 1;\n}\n\n// PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\n// It adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\n// Containers that need access to the ResourceClaim reference it with this name.\nmessage PodResourceClaim {\n  // Name uniquely identifies this resource claim inside the pod.\n  // This must be a DNS_LABEL.\n  optional string name = 1;\n\n  // Source describes where to find the ResourceClaim.\n  optional ClaimSource source = 2;\n}\n\n// PodSchedulingGate is associated to a Pod to guard its scheduling.\nmessage PodSchedulingGate {\n  // Name of the scheduling gate.\n  // Each scheduling gate must have a unique name field.\n  optional string name = 1;\n}\n\n// PodSecurityContext holds pod-level security attributes and common container settings.\n// Some fields are also present in container.securityContext.  Field values of\n// container.securityContext take precedence over field values of PodSecurityContext.\nmessage PodSecurityContext {\n  // The SELinux context to be applied to all containers.\n  // If unspecified, the container runtime will allocate a random SELinux context for each\n  // container.  May also be set in SecurityContext.  If set in\n  // both SecurityContext and PodSecurityContext, the value specified in SecurityContext\n  // takes precedence for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SELinuxOptions seLinuxOptions = 1;\n\n  // The Windows specific settings applied to all containers.\n  // If unspecified, the options within a container's SecurityContext will be used.\n  // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is linux.\n  // +optional\n  optional WindowsSecurityContextOptions windowsOptions = 8;\n\n  // The UID to run the entrypoint of the container process.\n  // Defaults to user specified in image metadata if unspecified.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence\n  // for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsUser = 2;\n\n  // The GID to run the entrypoint of the container process.\n  // Uses runtime default if unset.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence\n  // for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsGroup = 6;\n\n  // Indicates that the container must run as a non-root user.\n  // If true, the Kubelet will validate the image at runtime to ensure that it\n  // does not run as UID 0 (root) and fail to start the container if it does.\n  // If unset or false, no such validation will be performed.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional bool runAsNonRoot = 3;\n\n  // A list of groups applied to the first process run in each container, in addition\n  // to the container's primary GID, the fsGroup (if specified), and group memberships\n  // defined in the container image for the uid of the container process. If unspecified,\n  // no additional groups are added to any container. Note that group memberships\n  // defined in the container image for the uid of the container process are still effective,\n  // even if they are not included in this list.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  repeated int64 supplementalGroups = 4;\n\n  // A special supplemental group that applies to all containers in a pod.\n  // Some volume types allow the Kubelet to change the ownership of that volume\n  // to be owned by the pod:\n  //\n  // 1. The owning GID will be the FSGroup\n  // 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n  // 3. The permission bits are OR'd with rw-rw----\n  //\n  // If unset, the Kubelet will not modify the ownership and permissions of any volume.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 fsGroup = 5;\n\n  // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\n  // sysctls (by the container runtime) might fail to launch.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  repeated Sysctl sysctls = 7;\n\n  // fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\n  // before being exposed inside Pod. This field will only apply to\n  // volume types which support fsGroup based ownership(and permissions).\n  // It will have no effect on ephemeral volume types such as: secret, configmaps\n  // and emptydir.\n  // Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional string fsGroupChangePolicy = 9;\n\n  // The seccomp options to use by the containers in this pod.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SeccompProfile seccompProfile = 10;\n}\n\n// Describes the class of pods that should avoid this node.\n// Exactly one field should be set.\nmessage PodSignature {\n  // Reference to controller whose pods should avoid this node.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;\n}\n\n// PodSpec is a description of a pod.\nmessage PodSpec {\n  // List of volumes that can be mounted by containers belonging to the pod.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge,retainKeys\n  repeated Volume volumes = 1;\n\n  // List of initialization containers belonging to the pod.\n  // Init containers are executed in order prior to containers being started. If any\n  // init container fails, the pod is considered to have failed and is handled according\n  // to its restartPolicy. The name for an init container or normal container must be\n  // unique among all containers.\n  // Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\n  // The resourceRequirements of an init container are taken into account during scheduling\n  // by finding the highest request/limit for each resource type, and then using the max of\n  // of that value or the sum of the normal containers. Limits are applied to init containers\n  // in a similar fashion.\n  // Init containers cannot currently be added or removed.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated Container initContainers = 20;\n\n  // List of containers belonging to the pod.\n  // Containers cannot currently be added or removed.\n  // There must be at least one container in a Pod.\n  // Cannot be updated.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated Container containers = 2;\n\n  // List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\n  // pod to perform user-initiated actions such as debugging. This list cannot be specified when\n  // creating a pod, and it cannot be modified by updating the pod spec. In order to add an\n  // ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated EphemeralContainer ephemeralContainers = 34;\n\n  // Restart policy for all containers within the pod.\n  // One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\n  // Default to Always.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n  // +optional\n  optional string restartPolicy = 3;\n\n  // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\n  // Value must be non-negative integer. The value zero indicates stop immediately via\n  // the kill signal (no opportunity to shut down).\n  // If this value is nil, the default grace period will be used instead.\n  // The grace period is the duration in seconds after the processes running in the pod are sent\n  // a termination signal and the time when the processes are forcibly halted with a kill signal.\n  // Set this value longer than the expected cleanup time for your process.\n  // Defaults to 30 seconds.\n  // +optional\n  optional int64 terminationGracePeriodSeconds = 4;\n\n  // Optional duration in seconds the pod may be active on the node relative to\n  // StartTime before the system will actively try to mark it failed and kill associated containers.\n  // Value must be a positive integer.\n  // +optional\n  optional int64 activeDeadlineSeconds = 5;\n\n  // Set DNS policy for the pod.\n  // Defaults to \"ClusterFirst\".\n  // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\n  // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\n  // To have DNS options set along with hostNetwork, you have to specify DNS policy\n  // explicitly to 'ClusterFirstWithHostNet'.\n  // +optional\n  optional string dnsPolicy = 6;\n\n  // NodeSelector is a selector which must be true for the pod to fit on a node.\n  // Selector which must match a node's labels for the pod to be scheduled on that node.\n  // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 7;\n\n  // ServiceAccountName is the name of the ServiceAccount to use to run this pod.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n  // +optional\n  optional string serviceAccountName = 8;\n\n  // DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.\n  // Deprecated: Use serviceAccountName instead.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional string serviceAccount = 9;\n\n  // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\n  // +optional\n  optional bool automountServiceAccountToken = 21;\n\n  // NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\n  // the scheduler simply schedules this pod onto that node, assuming that it fits resource\n  // requirements.\n  // +optional\n  optional string nodeName = 10;\n\n  // Host networking requested for this pod. Use the host's network namespace.\n  // If this option is set, the ports that will be used must be specified.\n  // Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostNetwork = 11;\n\n  // Use the host's pid namespace.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostPID = 12;\n\n  // Use the host's ipc namespace.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostIPC = 13;\n\n  // Share a single process namespace between all of the containers in a pod.\n  // When this is set containers will be able to view and signal processes from other containers\n  // in the same pod, and the first process in each container will not be assigned PID 1.\n  // HostPID and ShareProcessNamespace cannot both be set.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool shareProcessNamespace = 27;\n\n  // SecurityContext holds pod-level security attributes and common container settings.\n  // Optional: Defaults to empty.  See type description for default values of each field.\n  // +optional\n  optional PodSecurityContext securityContext = 14;\n\n  // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\n  // If specified, these secrets will be passed to individual puller implementations for them to use.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated LocalObjectReference imagePullSecrets = 15;\n\n  // Specifies the hostname of the Pod\n  // If not specified, the pod's hostname will be set to a system-defined value.\n  // +optional\n  optional string hostname = 16;\n\n  // If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\".\n  // If not specified, the pod will not have a domainname at all.\n  // +optional\n  optional string subdomain = 17;\n\n  // If specified, the pod's scheduling constraints\n  // +optional\n  optional Affinity affinity = 18;\n\n  // If specified, the pod will be dispatched by specified scheduler.\n  // If not specified, the pod will be dispatched by default scheduler.\n  // +optional\n  optional string schedulerName = 19;\n\n  // If specified, the pod's tolerations.\n  // +optional\n  repeated Toleration tolerations = 22;\n\n  // HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\n  // file if specified. This is only valid for non-hostNetwork pods.\n  // +optional\n  // +patchMergeKey=ip\n  // +patchStrategy=merge\n  repeated HostAlias hostAliases = 23;\n\n  // If specified, indicates the pod's priority. \"system-node-critical\" and\n  // \"system-cluster-critical\" are two special keywords which indicate the\n  // highest priorities with the former being the highest priority. Any other\n  // name must be defined by creating a PriorityClass object with that name.\n  // If not specified, the pod priority will be default or zero if there is no\n  // default.\n  // +optional\n  optional string priorityClassName = 24;\n\n  // The priority value. Various system components use this field to find the\n  // priority of the pod. When Priority Admission Controller is enabled, it\n  // prevents users from setting this field. The admission controller populates\n  // this field from PriorityClassName.\n  // The higher the value, the higher the priority.\n  // +optional\n  optional int32 priority = 25;\n\n  // Specifies the DNS parameters of a pod.\n  // Parameters specified here will be merged to the generated DNS\n  // configuration based on DNSPolicy.\n  // +optional\n  optional PodDNSConfig dnsConfig = 26;\n\n  // If specified, all readiness gates will be evaluated for pod readiness.\n  // A pod is ready when all its containers are ready AND\n  // all conditions specified in the readiness gates have status equal to \"True\"\n  // More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\n  // +optional\n  repeated PodReadinessGate readinessGates = 28;\n\n  // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\n  // to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.\n  // If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an\n  // empty definition that uses the default runtime handler.\n  // More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n  // +optional\n  optional string runtimeClassName = 29;\n\n  // EnableServiceLinks indicates whether information about services should be injected into pod's\n  // environment variables, matching the syntax of Docker links.\n  // Optional: Defaults to true.\n  // +optional\n  optional bool enableServiceLinks = 30;\n\n  // PreemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 31;\n\n  // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\n  // This field will be autopopulated at admission time by the RuntimeClass admission controller. If\n  // the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\n  // The RuntimeClass admission controller will reject Pod create requests which have the overhead already\n  // set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\n  // defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\n  // More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> overhead = 32;\n\n  // TopologySpreadConstraints describes how a group of pods ought to spread across topology\n  // domains. Scheduler will schedule pods in a way which abides by the constraints.\n  // All topologySpreadConstraints are ANDed.\n  // +optional\n  // +patchMergeKey=topologyKey\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=topologyKey\n  // +listMapKey=whenUnsatisfiable\n  repeated TopologySpreadConstraint topologySpreadConstraints = 33;\n\n  // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\n  // In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\n  // In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN.\n  // If a pod does not have FQDN, this has no effect.\n  // Default to false.\n  // +optional\n  optional bool setHostnameAsFQDN = 35;\n\n  // Specifies the OS of the containers in the pod.\n  // Some pod and container fields are restricted if this is set.\n  //\n  // If the OS field is set to linux, the following fields must be unset:\n  // -securityContext.windowsOptions\n  //\n  // If the OS field is set to windows, following fields must be unset:\n  // - spec.hostPID\n  // - spec.hostIPC\n  // - spec.hostUsers\n  // - spec.securityContext.seLinuxOptions\n  // - spec.securityContext.seccompProfile\n  // - spec.securityContext.fsGroup\n  // - spec.securityContext.fsGroupChangePolicy\n  // - spec.securityContext.sysctls\n  // - spec.shareProcessNamespace\n  // - spec.securityContext.runAsUser\n  // - spec.securityContext.runAsGroup\n  // - spec.securityContext.supplementalGroups\n  // - spec.containers[*].securityContext.seLinuxOptions\n  // - spec.containers[*].securityContext.seccompProfile\n  // - spec.containers[*].securityContext.capabilities\n  // - spec.containers[*].securityContext.readOnlyRootFilesystem\n  // - spec.containers[*].securityContext.privileged\n  // - spec.containers[*].securityContext.allowPrivilegeEscalation\n  // - spec.containers[*].securityContext.procMount\n  // - spec.containers[*].securityContext.runAsUser\n  // - spec.containers[*].securityContext.runAsGroup\n  // +optional\n  optional PodOS os = 36;\n\n  // Use the host's user namespace.\n  // Optional: Default to true.\n  // If set to true or not present, the pod will be run in the host user namespace, useful\n  // for when the pod needs a feature only available to the host user namespace, such as\n  // loading a kernel module with CAP_SYS_MODULE.\n  // When set to false, a new userns is created for the pod. Setting false is useful for\n  // mitigating container breakout vulnerabilities even allowing users to run their\n  // containers as root without actually having root privileges on the host.\n  // This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostUsers = 37;\n\n  // SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\n  // If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\n  // scheduler will not attempt to schedule the pod.\n  //\n  // SchedulingGates can only be set at pod creation time, and be removed only afterwards.\n  //\n  // This is a beta feature enabled by the PodSchedulingReadiness feature gate.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=PodSchedulingReadiness\n  // +optional\n  repeated PodSchedulingGate schedulingGates = 38;\n\n  // ResourceClaims defines which ResourceClaims must be allocated\n  // and reserved before the Pod is allowed to start. The resources\n  // will be made available to those containers which consume them\n  // by name.\n  //\n  // This is an alpha field and requires enabling the\n  // DynamicResourceAllocation feature gate.\n  //\n  // This field is immutable.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge,retainKeys\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=DynamicResourceAllocation\n  // +optional\n  repeated PodResourceClaim resourceClaims = 39;\n}\n\n// PodStatus represents information about the status of a pod. Status may trail the actual\n// state of a system, especially if the node that hosts the pod cannot contact the control\n// plane.\nmessage PodStatus {\n  // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.\n  // The conditions array, the reason and message fields, and the individual container status\n  // arrays contain more detail about the pod's status.\n  // There are five possible phase values:\n  //\n  // Pending: The pod has been accepted by the Kubernetes system, but one or more of the\n  // container images has not been created. This includes time before being scheduled as\n  // well as time spent downloading images over the network, which could take a while.\n  // Running: The pod has been bound to a node, and all of the containers have been created.\n  // At least one container is still running, or is in the process of starting or restarting.\n  // Succeeded: All containers in the pod have terminated in success, and will not be restarted.\n  // Failed: All containers in the pod have terminated, and at least one container has\n  // terminated in failure. The container either exited with non-zero status or was terminated\n  // by the system.\n  // Unknown: For some reason the state of the pod could not be obtained, typically due to an\n  // error in communicating with the host of the pod.\n  //\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n  // +optional\n  optional string phase = 1;\n\n  // Current service state of pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated PodCondition conditions = 2;\n\n  // A human readable message indicating details about why the pod is in this condition.\n  // +optional\n  optional string message = 3;\n\n  // A brief CamelCase message indicating details about why the pod is in this state.\n  // e.g. 'Evicted'\n  // +optional\n  optional string reason = 4;\n\n  // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be\n  // scheduled right away as preemption victims receive their graceful termination periods.\n  // This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide\n  // to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to\n  // give the resources on this node to a higher priority pod that is created after preemption.\n  // As a result, this field may be different than PodSpec.nodeName when the pod is\n  // scheduled.\n  // +optional\n  optional string nominatedNodeName = 11;\n\n  // IP address of the host to which the pod is assigned. Empty if not yet scheduled.\n  // +optional\n  optional string hostIP = 5;\n\n  // IP address allocated to the pod. Routable at least within the cluster.\n  // Empty if not yet allocated.\n  // +optional\n  optional string podIP = 6;\n\n  // podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must\n  // match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list\n  // is empty if no IPs have been allocated yet.\n  // +optional\n  // +patchStrategy=merge\n  // +patchMergeKey=ip\n  repeated PodIP podIPs = 12;\n\n  // RFC 3339 date and time at which the object was acknowledged by the Kubelet.\n  // This is before the Kubelet pulled the container image(s) for the pod.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;\n\n  // The list has one entry per init container in the manifest. The most recent successful\n  // init container will have ready = true, the most recently started container will have\n  // startTime set.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n  repeated ContainerStatus initContainerStatuses = 10;\n\n  // The list has one entry per container in the manifest.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n  // +optional\n  repeated ContainerStatus containerStatuses = 8;\n\n  // The Quality of Service (QOS) classification assigned to the pod based on resource requirements\n  // See PodQOSClass type for available QOS classes\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n  // +optional\n  optional string qosClass = 9;\n\n  // Status for any ephemeral containers that have run in this pod.\n  // +optional\n  repeated ContainerStatus ephemeralContainerStatuses = 13;\n\n  // Status of resources resize desired for pod's containers.\n  // It is empty if no resources resize is pending.\n  // Any changes to container resources will automatically set this to \"Proposed\"\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  optional string resize = 14;\n}\n\n// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\nmessage PodStatusResult {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Most recently observed status of the pod.\n  // This data may not be up to date.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodStatus status = 2;\n}\n\n// PodTemplate describes a template for creating copies of a predefined pod.\nmessage PodTemplate {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Template defines the pods that will be created from this pod template.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodTemplateSpec template = 2;\n}\n\n// PodTemplateList is a list of PodTemplates.\nmessage PodTemplateList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of pod templates\n  repeated PodTemplate items = 2;\n}\n\n// PodTemplateSpec describes the data a pod should have when created from a template\nmessage PodTemplateSpec {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the pod.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodSpec spec = 2;\n}\n\nmessage PortStatus {\n  // Port is the port number of the service port of which status is recorded here\n  optional int32 port = 1;\n\n  // Protocol is the protocol of the service port of which status is recorded here\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // Error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// PortworxVolumeSource represents a Portworx volume resource.\nmessage PortworxVolumeSource {\n  // volumeID uniquely identifies a Portworx volume\n  optional string volumeID = 1;\n\n  // fSType represents the filesystem type to mount\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  optional string fsType = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\n// +k8s:openapi-gen=false\nmessage Preconditions {\n  // Specifies the target UID.\n  // +optional\n  optional string uid = 1;\n}\n\n// Describes a class of pods that should avoid this node.\nmessage PreferAvoidPodsEntry {\n  // The class of pods.\n  optional PodSignature podSignature = 1;\n\n  // Time at which this entry was added to the list.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;\n\n  // (brief) reason why this entry was added to the list.\n  // +optional\n  optional string reason = 3;\n\n  // Human readable message indicating why this entry was added to the list.\n  // +optional\n  optional string message = 4;\n}\n\n// An empty preferred scheduling term matches all objects with implicit weight 0\n// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\nmessage PreferredSchedulingTerm {\n  // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\n  optional int32 weight = 1;\n\n  // A node selector term, associated with the corresponding weight.\n  optional NodeSelectorTerm preference = 2;\n}\n\n// Probe describes a health check to be performed against a container to determine whether it is\n// alive or ready to receive traffic.\nmessage Probe {\n  // The action taken to determine the health of a container\n  optional ProbeHandler handler = 1;\n\n  // Number of seconds after the container has started before liveness probes are initiated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional int32 initialDelaySeconds = 2;\n\n  // Number of seconds after which the probe times out.\n  // Defaults to 1 second. Minimum value is 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional int32 timeoutSeconds = 3;\n\n  // How often (in seconds) to perform the probe.\n  // Default to 10 seconds. Minimum value is 1.\n  // +optional\n  optional int32 periodSeconds = 4;\n\n  // Minimum consecutive successes for the probe to be considered successful after having failed.\n  // Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\n  // +optional\n  optional int32 successThreshold = 5;\n\n  // Minimum consecutive failures for the probe to be considered failed after having succeeded.\n  // Defaults to 3. Minimum value is 1.\n  // +optional\n  optional int32 failureThreshold = 6;\n\n  // Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\n  // The grace period is the duration in seconds after the processes running in the pod are sent\n  // a termination signal and the time when the processes are forcibly halted with a kill signal.\n  // Set this value longer than the expected cleanup time for your process.\n  // If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\n  // value overrides the value provided by the pod spec.\n  // Value must be non-negative integer. The value zero indicates stop immediately via\n  // the kill signal (no opportunity to shut down).\n  // This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\n  // Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\n  // +optional\n  optional int64 terminationGracePeriodSeconds = 7;\n}\n\n// ProbeHandler defines a specific action that should be taken in a probe.\n// One and only one of the fields must be specified.\nmessage ProbeHandler {\n  // Exec specifies the action to take.\n  // +optional\n  optional ExecAction exec = 1;\n\n  // HTTPGet specifies the http request to perform.\n  // +optional\n  optional HTTPGetAction httpGet = 2;\n\n  // TCPSocket specifies an action involving a TCP port.\n  // +optional\n  optional TCPSocketAction tcpSocket = 3;\n\n  // GRPC specifies an action involving a GRPC port.\n  // +optional\n  optional GRPCAction grpc = 4;\n}\n\n// Represents a projected volume source\nmessage ProjectedVolumeSource {\n  // sources is the list of volume projections\n  // +optional\n  repeated VolumeProjection sources = 1;\n\n  // defaultMode are the mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 2;\n}\n\n// Represents a Quobyte mount that lasts the lifetime of a pod.\n// Quobyte volumes do not support ownership management or SELinux relabeling.\nmessage QuobyteVolumeSource {\n  // registry represents a single or multiple Quobyte Registry services\n  // specified as a string as host:port pair (multiple entries are separated with commas)\n  // which acts as the central registry for volumes\n  optional string registry = 1;\n\n  // volume is a string that references an already created Quobyte volume by name.\n  optional string volume = 2;\n\n  // readOnly here will force the Quobyte volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 3;\n\n  // user to map volume access to\n  // Defaults to serivceaccount user\n  // +optional\n  optional string user = 4;\n\n  // group to map volume access to\n  // Default is no group\n  // +optional\n  optional string group = 5;\n\n  // tenant owning the given Quobyte volume in the Backend\n  // Used with dynamically provisioned Quobyte volumes, value is set by the plugin\n  // +optional\n  optional string tenant = 6;\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\nmessage RBDPersistentVolumeSource {\n  // monitors is a collection of Ceph monitors.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  repeated string monitors = 1;\n\n  // image is the rados image name.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  optional string image = 2;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // pool is the rados pool name.\n  // Default is rbd.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string pool = 4;\n\n  // user is the rados user name.\n  // Default is admin.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string user = 5;\n\n  // keyring is the path to key ring for RBDUser.\n  // Default is /etc/ceph/keyring.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string keyring = 6;\n\n  // secretRef is name of the authentication secret for RBDUser. If provided\n  // overrides keyring.\n  // Default is nil.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional SecretReference secretRef = 7;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 8;\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\nmessage RBDVolumeSource {\n  // monitors is a collection of Ceph monitors.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  repeated string monitors = 1;\n\n  // image is the rados image name.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  optional string image = 2;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // pool is the rados pool name.\n  // Default is rbd.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string pool = 4;\n\n  // user is the rados user name.\n  // Default is admin.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string user = 5;\n\n  // keyring is the path to key ring for RBDUser.\n  // Default is /etc/ceph/keyring.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional string keyring = 6;\n\n  // secretRef is name of the authentication secret for RBDUser. If provided\n  // overrides keyring.\n  // Default is nil.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional LocalObjectReference secretRef = 7;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 8;\n}\n\n// RangeAllocation is not a public type.\nmessage RangeAllocation {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Range is string that identifies the range represented by 'data'.\n  optional string range = 2;\n\n  // Data is a bit array containing all allocated addresses in the previous segment.\n  optional bytes data = 3;\n}\n\n// ReplicationController represents the configuration of a replication controller.\nmessage ReplicationController {\n  // If the Labels of a ReplicationController are empty, they are defaulted to\n  // be the same as the Pod(s) that the replication controller manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the replication controller.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicationControllerSpec spec = 2;\n\n  // Status is the most recently observed status of the replication controller.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicationControllerStatus status = 3;\n}\n\n// ReplicationControllerCondition describes the state of a replication controller at a certain point.\nmessage ReplicationControllerCondition {\n  // Type of replication controller condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicationControllerList is a collection of replication controllers.\nmessage ReplicationControllerList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of replication controllers.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicationController items = 2;\n}\n\n// ReplicationControllerSpec is the specification of a replication controller.\nmessage ReplicationControllerSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the Replicas count.\n  // If Selector is empty, it is defaulted to the labels present on the Pod template.\n  // Label keys and values that must match in order to be controlled by this replication\n  // controller, if empty defaulted to labels on Pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. This takes precedence over a TemplateRef.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional PodTemplateSpec template = 3;\n}\n\n// ReplicationControllerStatus represents the current status of a replication\n// controller.\nmessage ReplicationControllerStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replication controller.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // The number of ready replicas for this replication controller.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replication controller.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed replication controller.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replication controller's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated ReplicationControllerCondition conditions = 6;\n}\n\n// ResourceClaim references one entry in PodSpec.ResourceClaims.\nmessage ResourceClaim {\n  // Name must match the name of one entry in pod.spec.resourceClaims of\n  // the Pod where this field is used. It makes that resource available\n  // inside a container.\n  optional string name = 1;\n}\n\n// ResourceFieldSelector represents container resources (cpu, memory) and their output format\n// +structType=atomic\nmessage ResourceFieldSelector {\n  // Container name: required for volumes, optional for env vars\n  // +optional\n  optional string containerName = 1;\n\n  // Required: resource to select\n  optional string resource = 2;\n\n  // Specifies the output format of the exposed resources, defaults to \"1\"\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;\n}\n\n// ResourceQuota sets aggregate quota restrictions enforced per namespace\nmessage ResourceQuota {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired quota.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ResourceQuotaSpec spec = 2;\n\n  // Status defines the actual enforced quota and its current usage.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ResourceQuotaStatus status = 3;\n}\n\n// ResourceQuotaList is a list of ResourceQuota items.\nmessage ResourceQuotaList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ResourceQuota objects.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  repeated ResourceQuota items = 2;\n}\n\n// ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\nmessage ResourceQuotaSpec {\n  // hard is the set of desired hard limits for each named resource.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> hard = 1;\n\n  // A collection of filters that must match each object tracked by a quota.\n  // If not specified, the quota matches all objects.\n  // +optional\n  repeated string scopes = 2;\n\n  // scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota\n  // but expressed using ScopeSelectorOperator in combination with possible values.\n  // For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\n  // +optional\n  optional ScopeSelector scopeSelector = 3;\n}\n\n// ResourceQuotaStatus defines the enforced hard limits and observed use.\nmessage ResourceQuotaStatus {\n  // Hard is the set of enforced hard limits for each named resource.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> hard = 1;\n\n  // Used is the current observed total usage of the resource in the namespace.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> used = 2;\n}\n\n// ResourceRequirements describes the compute resource requirements.\nmessage ResourceRequirements {\n  // Limits describes the maximum amount of compute resources allowed.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> limits = 1;\n\n  // Requests describes the minimum amount of compute resources required.\n  // If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n  // otherwise to an implementation-defined value. Requests cannot exceed Limits.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> requests = 2;\n\n  // Claims lists the names of resources, defined in spec.resourceClaims,\n  // that are used by this container.\n  //\n  // This is an alpha field and requires enabling the\n  // DynamicResourceAllocation feature gate.\n  //\n  // This field is immutable. It can only be set for containers.\n  //\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=DynamicResourceAllocation\n  // +optional\n  repeated ResourceClaim claims = 3;\n}\n\n// SELinuxOptions are the labels to be applied to the container\nmessage SELinuxOptions {\n  // User is a SELinux user label that applies to the container.\n  // +optional\n  optional string user = 1;\n\n  // Role is a SELinux role label that applies to the container.\n  // +optional\n  optional string role = 2;\n\n  // Type is a SELinux type label that applies to the container.\n  // +optional\n  optional string type = 3;\n\n  // Level is SELinux level label that applies to the container.\n  // +optional\n  optional string level = 4;\n}\n\n// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\nmessage ScaleIOPersistentVolumeSource {\n  // gateway is the host address of the ScaleIO API Gateway.\n  optional string gateway = 1;\n\n  // system is the name of the storage system as configured in ScaleIO.\n  optional string system = 2;\n\n  // secretRef references to the secret for ScaleIO user and other\n  // sensitive information. If this is not provided, Login operation will fail.\n  optional SecretReference secretRef = 3;\n\n  // sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\n  // +optional\n  optional bool sslEnabled = 4;\n\n  // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n  // +optional\n  optional string protectionDomain = 5;\n\n  // storagePool is the ScaleIO Storage Pool associated with the protection domain.\n  // +optional\n  optional string storagePool = 6;\n\n  // storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n  // Default is ThinProvisioned.\n  // +optional\n  optional string storageMode = 7;\n\n  // volumeName is the name of a volume already created in the ScaleIO system\n  // that is associated with this volume source.\n  optional string volumeName = 8;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // Default is \"xfs\"\n  // +optional\n  optional string fsType = 9;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 10;\n}\n\n// ScaleIOVolumeSource represents a persistent ScaleIO volume\nmessage ScaleIOVolumeSource {\n  // gateway is the host address of the ScaleIO API Gateway.\n  optional string gateway = 1;\n\n  // system is the name of the storage system as configured in ScaleIO.\n  optional string system = 2;\n\n  // secretRef references to the secret for ScaleIO user and other\n  // sensitive information. If this is not provided, Login operation will fail.\n  optional LocalObjectReference secretRef = 3;\n\n  // sslEnabled Flag enable/disable SSL communication with Gateway, default false\n  // +optional\n  optional bool sslEnabled = 4;\n\n  // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n  // +optional\n  optional string protectionDomain = 5;\n\n  // storagePool is the ScaleIO Storage Pool associated with the protection domain.\n  // +optional\n  optional string storagePool = 6;\n\n  // storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n  // Default is ThinProvisioned.\n  // +optional\n  optional string storageMode = 7;\n\n  // volumeName is the name of a volume already created in the ScaleIO system\n  // that is associated with this volume source.\n  optional string volumeName = 8;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // Default is \"xfs\".\n  // +optional\n  optional string fsType = 9;\n\n  // readOnly Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 10;\n}\n\n// A scope selector represents the AND of the selectors represented\n// by the scoped-resource selector requirements.\n// +structType=atomic\nmessage ScopeSelector {\n  // A list of scope selector requirements by scope of the resources.\n  // +optional\n  repeated ScopedResourceSelectorRequirement matchExpressions = 1;\n}\n\n// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator\n// that relates the scope name and values.\nmessage ScopedResourceSelectorRequirement {\n  // The name of the scope that the selector applies to.\n  optional string scopeName = 1;\n\n  // Represents a scope's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists, DoesNotExist.\n  optional string operator = 2;\n\n  // An array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty.\n  // This array is replaced during a strategic merge patch.\n  // +optional\n  repeated string values = 3;\n}\n\n// SeccompProfile defines a pod/container's seccomp profile settings.\n// Only one profile source may be set.\n// +union\nmessage SeccompProfile {\n  // type indicates which kind of seccomp profile will be applied.\n  // Valid options are:\n  //\n  // Localhost - a profile defined in a file on the node should be used.\n  // RuntimeDefault - the container runtime default profile should be used.\n  // Unconfined - no profile should be applied.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // localhostProfile indicates a profile defined in a file on the node should be used.\n  // The profile must be preconfigured on the node to work.\n  // Must be a descending path, relative to the kubelet's configured seccomp profile location.\n  // Must only be set if type is \"Localhost\".\n  // +optional\n  optional string localhostProfile = 2;\n}\n\n// Secret holds secret data of a certain type. The total bytes of the values in\n// the Data field must be less than MaxSecretSize bytes.\nmessage Secret {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Immutable, if set to true, ensures that data stored in the Secret cannot\n  // be updated (only object metadata can be modified).\n  // If not set to true, the field can be modified at any time.\n  // Defaulted to nil.\n  // +optional\n  optional bool immutable = 5;\n\n  // Data contains the secret data. Each key must consist of alphanumeric\n  // characters, '-', '_' or '.'. The serialized form of the secret data is a\n  // base64 encoded string, representing the arbitrary (possibly non-string)\n  // data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\n  // +optional\n  map<string, bytes> data = 2;\n\n  // stringData allows specifying non-binary secret data in string form.\n  // It is provided as a write-only input field for convenience.\n  // All keys and values are merged into the data field on write, overwriting any existing values.\n  // The stringData field is never output when reading from the API.\n  // +k8s:conversion-gen=false\n  // +optional\n  map<string, string> stringData = 4;\n\n  // Used to facilitate programmatic handling of secret data.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\n  // +optional\n  optional string type = 3;\n}\n\n// SecretEnvSource selects a Secret to populate the environment\n// variables with.\n//\n// The contents of the target Secret's Data field will represent the\n// key-value pairs as environment variables.\nmessage SecretEnvSource {\n  // The Secret to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // Specify whether the Secret must be defined\n  // +optional\n  optional bool optional = 2;\n}\n\n// SecretKeySelector selects a key of a Secret.\n// +structType=atomic\nmessage SecretKeySelector {\n  // The name of the secret in the pod's namespace to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // The key of the secret to select from.  Must be a valid secret key.\n  optional string key = 2;\n\n  // Specify whether the Secret or its key must be defined\n  // +optional\n  optional bool optional = 3;\n}\n\n// SecretList is a list of Secret.\nmessage SecretList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of secret objects.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret\n  repeated Secret items = 2;\n}\n\n// Adapts a secret into a projected volume.\n//\n// The contents of the target Secret's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names.\n// Note that this is identical to a secret volume source without the default\n// mode.\nmessage SecretProjection {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // Secret will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the Secret,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  repeated KeyToPath items = 2;\n\n  // optional field specify whether the Secret or its key must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// SecretReference represents a Secret Reference. It has enough information to retrieve secret\n// in any namespace\n// +structType=atomic\nmessage SecretReference {\n  // name is unique within a namespace to reference a secret resource.\n  // +optional\n  optional string name = 1;\n\n  // namespace defines the space within which the secret name must be unique.\n  // +optional\n  optional string namespace = 2;\n}\n\n// Adapts a Secret into a volume.\n//\n// The contents of the target Secret's Data field will be presented in a volume\n// as files using the keys in the Data field as the file names.\n// Secret volumes support ownership management and SELinux relabeling.\nmessage SecretVolumeSource {\n  // secretName is the name of the secret in the pod's namespace to use.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n  // +optional\n  optional string secretName = 1;\n\n  // items If unspecified, each key-value pair in the Data field of the referenced\n  // Secret will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the Secret,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  repeated KeyToPath items = 2;\n\n  // defaultMode is Optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values\n  // for mode bits. Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 3;\n\n  // optional field specify whether the Secret or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// SecurityContext holds security configuration that will be applied to a container.\n// Some fields are present in both SecurityContext and PodSecurityContext.  When both\n// are set, the values in SecurityContext take precedence.\nmessage SecurityContext {\n  // The capabilities to add/drop when running containers.\n  // Defaults to the default set of capabilities granted by the container runtime.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional Capabilities capabilities = 1;\n\n  // Run container in privileged mode.\n  // Processes in privileged containers are essentially equivalent to root on the host.\n  // Defaults to false.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool privileged = 2;\n\n  // The SELinux context to be applied to the container.\n  // If unspecified, the container runtime will allocate a random SELinux context for each\n  // container.  May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SELinuxOptions seLinuxOptions = 3;\n\n  // The Windows specific settings applied to all containers.\n  // If unspecified, the options from the PodSecurityContext will be used.\n  // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is linux.\n  // +optional\n  optional WindowsSecurityContextOptions windowsOptions = 10;\n\n  // The UID to run the entrypoint of the container process.\n  // Defaults to user specified in image metadata if unspecified.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsUser = 4;\n\n  // The GID to run the entrypoint of the container process.\n  // Uses runtime default if unset.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsGroup = 8;\n\n  // Indicates that the container must run as a non-root user.\n  // If true, the Kubelet will validate the image at runtime to ensure that it\n  // does not run as UID 0 (root) and fail to start the container if it does.\n  // If unset or false, no such validation will be performed.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional bool runAsNonRoot = 5;\n\n  // Whether this container has a read-only root filesystem.\n  // Default is false.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool readOnlyRootFilesystem = 6;\n\n  // AllowPrivilegeEscalation controls whether a process can gain more\n  // privileges than its parent process. This bool directly controls if\n  // the no_new_privs flag will be set on the container process.\n  // AllowPrivilegeEscalation is true always when the container is:\n  // 1) run as Privileged\n  // 2) has CAP_SYS_ADMIN\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool allowPrivilegeEscalation = 7;\n\n  // procMount denotes the type of proc mount to use for the containers.\n  // The default is DefaultProcMount which uses the container runtime defaults for\n  // readonly paths and masked paths.\n  // This requires the ProcMountType feature flag to be enabled.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional string procMount = 9;\n\n  // The seccomp options to use by this container. If seccomp options are\n  // provided at both the pod & container level, the container options\n  // override the pod options.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SeccompProfile seccompProfile = 11;\n}\n\n// SerializedReference is a reference to serialized object.\nmessage SerializedReference {\n  // The reference to an object in the system.\n  // +optional\n  optional ObjectReference reference = 1;\n}\n\n// Service is a named abstraction of software service (for example, mysql) consisting of local port\n// (for example 3306) that the proxy listens on, and the selector that determines which pods\n// will answer requests sent through the proxy.\nmessage Service {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of a service.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceSpec spec = 2;\n\n  // Most recently observed status of the service.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceStatus status = 3;\n}\n\n// ServiceAccount binds together:\n// * a name, understood by users, and perhaps by peripheral systems, for an identity\n// * a principal that can be authenticated and authorized\n// * a set of secrets\nmessage ServiceAccount {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use.\n  // Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\".\n  // This field should not be used to find auto-generated service account token secrets for use outside of pods.\n  // Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated ObjectReference secrets = 2;\n\n  // ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images\n  // in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets\n  // can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.\n  // More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\n  // +optional\n  repeated LocalObjectReference imagePullSecrets = 3;\n\n  // AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.\n  // Can be overridden at the pod level.\n  // +optional\n  optional bool automountServiceAccountToken = 4;\n}\n\n// ServiceAccountList is a list of ServiceAccount objects\nmessage ServiceAccountList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ServiceAccounts.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n  repeated ServiceAccount items = 2;\n}\n\n// ServiceAccountTokenProjection represents a projected service account token\n// volume. This projection can be used to insert a service account token into\n// the pods runtime filesystem for use against APIs (Kubernetes API Server or\n// otherwise).\nmessage ServiceAccountTokenProjection {\n  // audience is the intended audience of the token. A recipient of a token\n  // must identify itself with an identifier specified in the audience of the\n  // token, and otherwise should reject the token. The audience defaults to the\n  // identifier of the apiserver.\n  // +optional\n  optional string audience = 1;\n\n  // expirationSeconds is the requested duration of validity of the service\n  // account token. As the token approaches expiration, the kubelet volume\n  // plugin will proactively rotate the service account token. The kubelet will\n  // start trying to rotate the token if the token is older than 80 percent of\n  // its time to live or if the token is older than 24 hours.Defaults to 1 hour\n  // and must be at least 10 minutes.\n  // +optional\n  optional int64 expirationSeconds = 2;\n\n  // path is the path relative to the mount point of the file to project the\n  // token into.\n  optional string path = 3;\n}\n\n// ServiceList holds a list of services.\nmessage ServiceList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of services\n  repeated Service items = 2;\n}\n\n// ServicePort contains information on service's port.\nmessage ServicePort {\n  // The name of this port within the service. This must be a DNS_LABEL.\n  // All ports within a ServiceSpec must have unique names. When considering\n  // the endpoints for a Service, this must match the 'name' field in the\n  // EndpointPort.\n  // Optional if only one ServicePort is defined on this service.\n  // +optional\n  optional string name = 1;\n\n  // The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\n  // Default is TCP.\n  // +default=\"TCP\"\n  // +optional\n  optional string protocol = 2;\n\n  // The application protocol for this port.\n  // This field follows standard Kubernetes label syntax.\n  // Un-prefixed names are reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  // Non-standard protocols should use prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 6;\n\n  // The port that will be exposed by this service.\n  optional int32 port = 3;\n\n  // Number or name of the port to access on the pods targeted by the service.\n  // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\n  // If this is a string, it will be looked up as a named port in the\n  // target Pod's container ports. If this is not specified, the value\n  // of the 'port' field is used (an identity map).\n  // This field is ignored for services with clusterIP=None, and should be\n  // omitted or set equal to the 'port' field.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;\n\n  // The port on each node on which this service is exposed when type is\n  // NodePort or LoadBalancer.  Usually assigned by the system. If a value is\n  // specified, in-range, and not in use it will be used, otherwise the\n  // operation will fail.  If not specified, a port will be allocated if this\n  // Service requires one.  If this field is specified when creating a\n  // Service which does not need it, creation will fail. This field will be\n  // wiped when updating a Service to no longer need it (e.g. changing type\n  // from NodePort to ClusterIP).\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n  // +optional\n  optional int32 nodePort = 5;\n}\n\n// ServiceProxyOptions is the query options to a Service's proxy call.\nmessage ServiceProxyOptions {\n  // Path is the part of URLs that include service endpoints, suffixes,\n  // and parameters to use for the current proxy request to service.\n  // For example, the whole request URL is\n  // http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.\n  // Path is _search?q=user:kimchy.\n  // +optional\n  optional string path = 1;\n}\n\n// ServiceSpec describes the attributes that a user creates on a service.\nmessage ServiceSpec {\n  // The list of ports that are exposed by this service.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +patchMergeKey=port\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=port\n  // +listMapKey=protocol\n  repeated ServicePort ports = 1;\n\n  // Route service traffic to pods with label keys and values matching this\n  // selector. If empty or not present, the service is assumed to have an\n  // external process managing its endpoints, which Kubernetes will not\n  // modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\n  // Ignored if type is ExternalName.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // clusterIP is the IP address of the service and is usually assigned\n  // randomly. If an address is specified manually, is in-range (as per\n  // system configuration), and is not in use, it will be allocated to the\n  // service; otherwise creation of the service will fail. This field may not\n  // be changed through updates unless the type field is also being changed\n  // to ExternalName (which requires this field to be blank) or the type\n  // field is being changed from ExternalName (in which case this field may\n  // optionally be specified, as describe above).  Valid values are \"None\",\n  // empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n  // \"headless service\" (no virtual IP), which is useful when direct endpoint\n  // connections are preferred and proxying is not required.  Only applies to\n  // types ClusterIP, NodePort, and LoadBalancer. If this field is specified\n  // when creating a Service of type ExternalName, creation will fail. This\n  // field will be wiped when updating a Service to type ExternalName.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +optional\n  optional string clusterIP = 3;\n\n  // ClusterIPs is a list of IP addresses assigned to this service, and are\n  // usually assigned randomly.  If an address is specified manually, is\n  // in-range (as per system configuration), and is not in use, it will be\n  // allocated to the service; otherwise creation of the service will fail.\n  // This field may not be changed through updates unless the type field is\n  // also being changed to ExternalName (which requires this field to be\n  // empty) or the type field is being changed from ExternalName (in which\n  // case this field may optionally be specified, as describe above).  Valid\n  // values are \"None\", empty string (\"\"), or a valid IP address.  Setting\n  // this to \"None\" makes a \"headless service\" (no virtual IP), which is\n  // useful when direct endpoint connections are preferred and proxying is\n  // not required.  Only applies to types ClusterIP, NodePort, and\n  // LoadBalancer. If this field is specified when creating a Service of type\n  // ExternalName, creation will fail. This field will be wiped when updating\n  // a Service to type ExternalName.  If this field is not specified, it will\n  // be initialized from the clusterIP field.  If this field is specified,\n  // clients must ensure that clusterIPs[0] and clusterIP have the same\n  // value.\n  //\n  // This field may hold a maximum of two entries (dual-stack IPs, in either order).\n  // These IPs must correspond to the values of the ipFamilies field. Both\n  // clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +listType=atomic\n  // +optional\n  repeated string clusterIPs = 18;\n\n  // type determines how the Service is exposed. Defaults to ClusterIP. Valid\n  // options are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n  // \"ClusterIP\" allocates a cluster-internal IP address for load-balancing\n  // to endpoints. Endpoints are determined by the selector or if that is not\n  // specified, by manual construction of an Endpoints object or\n  // EndpointSlice objects. If clusterIP is \"None\", no virtual IP is\n  // allocated and the endpoints are published as a set of endpoints rather\n  // than a virtual IP.\n  // \"NodePort\" builds on ClusterIP and allocates a port on every node which\n  // routes to the same endpoints as the clusterIP.\n  // \"LoadBalancer\" builds on NodePort and creates an external load-balancer\n  // (if supported in the current cloud) which routes to the same endpoints\n  // as the clusterIP.\n  // \"ExternalName\" aliases this service to the specified externalName.\n  // Several other fields do not apply to ExternalName services.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n  // +optional\n  optional string type = 4;\n\n  // externalIPs is a list of IP addresses for which nodes in the cluster\n  // will also accept traffic for this service.  These IPs are not managed by\n  // Kubernetes.  The user is responsible for ensuring that traffic arrives\n  // at a node with this IP.  A common example is external load-balancers\n  // that are not part of the Kubernetes system.\n  // +optional\n  repeated string externalIPs = 5;\n\n  // Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\n  // Enable client IP based session affinity.\n  // Must be ClientIP or None.\n  // Defaults to None.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +optional\n  optional string sessionAffinity = 7;\n\n  // Only applies to Service Type: LoadBalancer.\n  // This feature depends on whether the underlying cloud-provider supports specifying\n  // the loadBalancerIP when a load balancer is created.\n  // This field will be ignored if the cloud-provider does not support the feature.\n  // Deprecated: This field was under-specified and its meaning varies across implementations,\n  // and it cannot support dual-stack.\n  // As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available.\n  // This field may be removed in a future API version.\n  // +optional\n  optional string loadBalancerIP = 8;\n\n  // If specified and supported by the platform, this will restrict traffic through the cloud-provider\n  // load-balancer will be restricted to the specified client IPs. This field will be ignored if the\n  // cloud-provider does not support the feature.\"\n  // More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n  // +optional\n  repeated string loadBalancerSourceRanges = 9;\n\n  // externalName is the external reference that discovery mechanisms will\n  // return as an alias for this service (e.g. a DNS CNAME record). No\n  // proxying will be involved.  Must be a lowercase RFC-1123 hostname\n  // (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n  // +optional\n  optional string externalName = 10;\n\n  // externalTrafficPolicy describes how nodes distribute service traffic they\n  // receive on one of the Service's \"externally-facing\" addresses (NodePorts,\n  // ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure\n  // the service in a way that assumes that external load balancers will take care\n  // of balancing the service traffic between nodes, and so each node will deliver\n  // traffic only to the node-local endpoints of the service, without masquerading\n  // the client source IP. (Traffic mistakenly sent to a node with no endpoints will\n  // be dropped.) The default value, \"Cluster\", uses the standard behavior of\n  // routing to all endpoints evenly (possibly modified by topology and other\n  // features). Note that traffic sent to an External IP or LoadBalancer IP from\n  // within the cluster will always get \"Cluster\" semantics, but clients sending to\n  // a NodePort from within the cluster may need to take traffic policy into account\n  // when picking a node.\n  // +optional\n  optional string externalTrafficPolicy = 11;\n\n  // healthCheckNodePort specifies the healthcheck nodePort for the service.\n  // This only applies when type is set to LoadBalancer and\n  // externalTrafficPolicy is set to Local. If a value is specified, is\n  // in-range, and is not in use, it will be used.  If not specified, a value\n  // will be automatically allocated.  External systems (e.g. load-balancers)\n  // can use this port to determine if a given node holds endpoints for this\n  // service or not.  If this field is specified when creating a Service\n  // which does not need it, creation will fail. This field will be wiped\n  // when updating a Service to no longer need it (e.g. changing type).\n  // This field cannot be updated once set.\n  // +optional\n  optional int32 healthCheckNodePort = 12;\n\n  // publishNotReadyAddresses indicates that any agent which deals with endpoints for this\n  // Service should disregard any indications of ready/not-ready.\n  // The primary use case for setting this field is for a StatefulSet's Headless Service to\n  // propagate SRV DNS records for its Pods for the purpose of peer discovery.\n  // The Kubernetes controllers that generate Endpoints and EndpointSlice resources for\n  // Services interpret this to mean that all endpoints are considered \"ready\" even if the\n  // Pods themselves are not. Agents which consume only Kubernetes generated endpoints\n  // through the Endpoints or EndpointSlice resources can safely assume this behavior.\n  // +optional\n  optional bool publishNotReadyAddresses = 13;\n\n  // sessionAffinityConfig contains the configurations of session affinity.\n  // +optional\n  optional SessionAffinityConfig sessionAffinityConfig = 14;\n\n  // IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\n  // service. This field is usually assigned automatically based on cluster\n  // configuration and the ipFamilyPolicy field. If this field is specified\n  // manually, the requested family is available in the cluster,\n  // and ipFamilyPolicy allows it, it will be used; otherwise creation of\n  // the service will fail. This field is conditionally mutable: it allows\n  // for adding or removing a secondary IP family, but it does not allow\n  // changing the primary IP family of the Service. Valid values are \"IPv4\"\n  // and \"IPv6\".  This field only applies to Services of types ClusterIP,\n  // NodePort, and LoadBalancer, and does apply to \"headless\" services.\n  // This field will be wiped when updating a Service to type ExternalName.\n  //\n  // This field may hold a maximum of two entries (dual-stack families, in\n  // either order).  These families must correspond to the values of the\n  // clusterIPs field, if specified. Both clusterIPs and ipFamilies are\n  // governed by the ipFamilyPolicy field.\n  // +listType=atomic\n  // +optional\n  repeated string ipFamilies = 19;\n\n  // IPFamilyPolicy represents the dual-stack-ness requested or required by\n  // this Service. If there is no value provided, then this field will be set\n  // to SingleStack. Services can be \"SingleStack\" (a single IP family),\n  // \"PreferDualStack\" (two IP families on dual-stack configured clusters or\n  // a single IP family on single-stack clusters), or \"RequireDualStack\"\n  // (two IP families on dual-stack configured clusters, otherwise fail). The\n  // ipFamilies and clusterIPs fields depend on the value of this field. This\n  // field will be wiped when updating a service to type ExternalName.\n  // +optional\n  optional string ipFamilyPolicy = 17;\n\n  // allocateLoadBalancerNodePorts defines if NodePorts will be automatically\n  // allocated for services with type LoadBalancer.  Default is \"true\". It\n  // may be set to \"false\" if the cluster load-balancer does not rely on\n  // NodePorts.  If the caller requests specific NodePorts (by specifying a\n  // value), those requests will be respected, regardless of this field.\n  // This field may only be set for services with type LoadBalancer and will\n  // be cleared if the type is changed to any other type.\n  // +optional\n  optional bool allocateLoadBalancerNodePorts = 20;\n\n  // loadBalancerClass is the class of the load balancer implementation this Service belongs to.\n  // If specified, the value of this field must be a label-style identifier, with an optional prefix,\n  // e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\n  // This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\n  // balancer implementation is used, today this is typically done through the cloud provider integration,\n  // but should apply for any default implementation. If set, it is assumed that a load balancer\n  // implementation is watching for Services with a matching class. Any default load balancer\n  // implementation (e.g. cloud providers) should ignore Services that set this field.\n  // This field can only be set when creating or updating a Service to type 'LoadBalancer'.\n  // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n  // +optional\n  optional string loadBalancerClass = 21;\n\n  // InternalTrafficPolicy describes how nodes distribute service traffic they\n  // receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods\n  // only want to talk to endpoints of the service on the same node as the pod,\n  // dropping the traffic if there are no local endpoints. The default value,\n  // \"Cluster\", uses the standard behavior of routing to all endpoints evenly\n  // (possibly modified by topology and other features).\n  // +optional\n  optional string internalTrafficPolicy = 22;\n}\n\n// ServiceStatus represents the current status of a service.\nmessage ServiceStatus {\n  // LoadBalancer contains the current status of the load-balancer,\n  // if one is present.\n  // +optional\n  optional LoadBalancerStatus loadBalancer = 1;\n\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 2;\n}\n\n// SessionAffinityConfig represents the configurations of session affinity.\nmessage SessionAffinityConfig {\n  // clientIP contains the configurations of Client IP based session affinity.\n  // +optional\n  optional ClientIPConfig clientIP = 1;\n}\n\n// Represents a StorageOS persistent volume resource.\nmessage StorageOSPersistentVolumeSource {\n  // volumeName is the human-readable name of the StorageOS volume.  Volume\n  // names are only unique within a namespace.\n  optional string volumeName = 1;\n\n  // volumeNamespace specifies the scope of the volume within StorageOS.  If no\n  // namespace is specified then the Pod's namespace will be used.  This allows the\n  // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n  // Set VolumeName to any name to override the default behaviour.\n  // Set to \"default\" if you are not using namespaces within StorageOS.\n  // Namespaces that do not pre-exist within StorageOS will be created.\n  // +optional\n  optional string volumeNamespace = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // secretRef specifies the secret to use for obtaining the StorageOS API\n  // credentials.  If not specified, default values will be attempted.\n  // +optional\n  optional ObjectReference secretRef = 5;\n}\n\n// Represents a StorageOS persistent volume resource.\nmessage StorageOSVolumeSource {\n  // volumeName is the human-readable name of the StorageOS volume.  Volume\n  // names are only unique within a namespace.\n  optional string volumeName = 1;\n\n  // volumeNamespace specifies the scope of the volume within StorageOS.  If no\n  // namespace is specified then the Pod's namespace will be used.  This allows the\n  // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n  // Set VolumeName to any name to override the default behaviour.\n  // Set to \"default\" if you are not using namespaces within StorageOS.\n  // Namespaces that do not pre-exist within StorageOS will be created.\n  // +optional\n  optional string volumeNamespace = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // secretRef specifies the secret to use for obtaining the StorageOS API\n  // credentials.  If not specified, default values will be attempted.\n  // +optional\n  optional LocalObjectReference secretRef = 5;\n}\n\n// Sysctl defines a kernel parameter to be set\nmessage Sysctl {\n  // Name of a property to set\n  optional string name = 1;\n\n  // Value of a property to set\n  optional string value = 2;\n}\n\n// TCPSocketAction describes an action based on opening a socket\nmessage TCPSocketAction {\n  // Number or name of the port to access on the container.\n  // Number must be in the range 1 to 65535.\n  // Name must be an IANA_SVC_NAME.\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;\n\n  // Optional: Host name to connect to, defaults to the pod IP.\n  // +optional\n  optional string host = 2;\n}\n\n// The node this Taint is attached to has the \"effect\" on\n// any pod that does not tolerate the Taint.\nmessage Taint {\n  // Required. The taint key to be applied to a node.\n  optional string key = 1;\n\n  // The taint value corresponding to the taint key.\n  // +optional\n  optional string value = 2;\n\n  // Required. The effect of the taint on pods\n  // that do not tolerate the taint.\n  // Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n  optional string effect = 3;\n\n  // TimeAdded represents the time at which the taint was added.\n  // It is only written for NoExecute taints.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;\n}\n\n// The pod this Toleration is attached to tolerates any taint that matches\n// the triple <key,value,effect> using the matching operator <operator>.\nmessage Toleration {\n  // Key is the taint key that the toleration applies to. Empty means match all taint keys.\n  // If the key is empty, operator must be Exists; this combination means to match all values and all keys.\n  // +optional\n  optional string key = 1;\n\n  // Operator represents a key's relationship to the value.\n  // Valid operators are Exists and Equal. Defaults to Equal.\n  // Exists is equivalent to wildcard for value, so that a pod can\n  // tolerate all taints of a particular category.\n  // +optional\n  optional string operator = 2;\n\n  // Value is the taint value the toleration matches to.\n  // If the operator is Exists, the value should be empty, otherwise just a regular string.\n  // +optional\n  optional string value = 3;\n\n  // Effect indicates the taint effect to match. Empty means match all taint effects.\n  // When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n  // +optional\n  optional string effect = 4;\n\n  // TolerationSeconds represents the period of time the toleration (which must be\n  // of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\n  // it is not set, which means tolerate the taint forever (do not evict). Zero and\n  // negative values will be treated as 0 (evict immediately) by the system.\n  // +optional\n  optional int64 tolerationSeconds = 5;\n}\n\n// A topology selector requirement is a selector that matches given label.\n// This is an alpha feature and may change in the future.\nmessage TopologySelectorLabelRequirement {\n  // The label key that the selector applies to.\n  optional string key = 1;\n\n  // An array of string values. One value must match the label to be selected.\n  // Each entry in Values is ORed.\n  repeated string values = 2;\n}\n\n// A topology selector term represents the result of label queries.\n// A null or empty topology selector term matches no objects.\n// The requirements of them are ANDed.\n// It provides a subset of functionality as NodeSelectorTerm.\n// This is an alpha feature and may change in the future.\n// +structType=atomic\nmessage TopologySelectorTerm {\n  // A list of topology selector requirements by labels.\n  // +optional\n  repeated TopologySelectorLabelRequirement matchLabelExpressions = 1;\n}\n\n// TopologySpreadConstraint specifies how to spread matching pods among the given topology.\nmessage TopologySpreadConstraint {\n  // MaxSkew describes the degree to which pods may be unevenly distributed.\n  // When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\n  // between the number of matching pods in the target topology and the global minimum.\n  // The global minimum is the minimum number of matching pods in an eligible domain\n  // or zero if the number of eligible domains is less than MinDomains.\n  // For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n  // labelSelector spread as 2/2/1:\n  // In this case, the global minimum is 1.\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // |  P P  |  P P  |   P   |\n  // +-------+-------+-------+\n  // - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\n  // scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\n  // violate MaxSkew(1).\n  // - if MaxSkew is 2, incoming pod can be scheduled onto any zone.\n  // When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\n  // to topologies that satisfy it.\n  // It's a required field. Default value is 1 and 0 is not allowed.\n  optional int32 maxSkew = 1;\n\n  // TopologyKey is the key of node labels. Nodes that have a label with this key\n  // and identical values are considered to be in the same topology.\n  // We consider each <key, value> as a \"bucket\", and try to put balanced number\n  // of pods into each bucket.\n  // We define a domain as a particular instance of a topology.\n  // Also, we define an eligible domain as a domain whose nodes meet the requirements of\n  // nodeAffinityPolicy and nodeTaintsPolicy.\n  // e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\n  // And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\n  // It's a required field.\n  optional string topologyKey = 2;\n\n  // WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\n  // the spread constraint.\n  // - DoNotSchedule (default) tells the scheduler not to schedule it.\n  // - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n  //   but giving higher precedence to topologies that would help reduce the\n  //   skew.\n  // A constraint is considered \"Unsatisfiable\" for an incoming pod\n  // if and only if every possible node assignment for that pod would violate\n  // \"MaxSkew\" on some topology.\n  // For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n  // labelSelector spread as 3/1/1:\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // | P P P |   P   |   P   |\n  // +-------+-------+-------+\n  // If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\n  // to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\n  // MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\n  // won't make it *more* imbalanced.\n  // It's a required field.\n  optional string whenUnsatisfiable = 3;\n\n  // LabelSelector is used to find matching pods.\n  // Pods that match this label selector are counted to determine the number of pods\n  // in their corresponding topology domain.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4;\n\n  // MinDomains indicates a minimum number of eligible domains.\n  // When the number of eligible domains with matching topology keys is less than minDomains,\n  // Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\n  // And when the number of eligible domains with matching topology keys equals or greater than minDomains,\n  // this value has no effect on scheduling.\n  // As a result, when the number of eligible domains is less than minDomains,\n  // scheduler won't schedule more than maxSkew Pods to those domains.\n  // If value is nil, the constraint behaves as if MinDomains is equal to 1.\n  // Valid values are integers greater than 0.\n  // When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n  //\n  // For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\n  // labelSelector spread as 2/2/2:\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // |  P P  |  P P  |  P P  |\n  // +-------+-------+-------+\n  // The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\n  // In this situation, new pod with the same labelSelector cannot be scheduled,\n  // because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\n  // it will violate MaxSkew.\n  //\n  // This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).\n  // +optional\n  optional int32 minDomains = 5;\n\n  // NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\n  // when calculating pod topology spread skew. Options are:\n  // - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\n  // - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n  //\n  // If this value is nil, the behavior is equivalent to the Honor policy.\n  // This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n  // +optional\n  optional string nodeAffinityPolicy = 6;\n\n  // NodeTaintsPolicy indicates how we will treat node taints when calculating\n  // pod topology spread skew. Options are:\n  // - Honor: nodes without taints, along with tainted nodes for which the incoming pod\n  // has a toleration, are included.\n  // - Ignore: node taints are ignored. All nodes are included.\n  //\n  // If this value is nil, the behavior is equivalent to the Ignore policy.\n  // This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n  // +optional\n  optional string nodeTaintsPolicy = 7;\n\n  // MatchLabelKeys is a set of pod label keys to select the pods over which\n  // spreading will be calculated. The keys are used to lookup values from the\n  // incoming pod labels, those key-value labels are ANDed with labelSelector\n  // to select the group of existing pods over which spreading will be calculated\n  // for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\n  // MatchLabelKeys cannot be set when LabelSelector isn't set.\n  // Keys that don't exist in the incoming pod labels will\n  // be ignored. A null or empty list means only match against labelSelector.\n  //\n  // This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\n  // +listType=atomic\n  // +optional\n  repeated string matchLabelKeys = 8;\n}\n\n// TypedLocalObjectReference contains enough information to let you locate the\n// typed referenced object inside the same namespace.\n// +structType=atomic\nmessage TypedLocalObjectReference {\n  // APIGroup is the group for the resource being referenced.\n  // If APIGroup is not specified, the specified Kind must be in the core API group.\n  // For any other third-party types, APIGroup is required.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\nmessage TypedObjectReference {\n  // APIGroup is the group for the resource being referenced.\n  // If APIGroup is not specified, the specified Kind must be in the core API group.\n  // For any other third-party types, APIGroup is required.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n\n  // Namespace is the namespace of resource being referenced\n  // Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\n  // (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n  // +featureGate=CrossNamespaceVolumeDataSource\n  // +optional\n  optional string namespace = 4;\n}\n\n// Volume represents a named volume in a pod that may be accessed by any container in the pod.\nmessage Volume {\n  // name of the volume.\n  // Must be a DNS_LABEL and unique within the pod.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 1;\n\n  // volumeSource represents the location and type of the mounted volume.\n  // If not specified, the Volume is implied to be an EmptyDir.\n  // This implied behavior is deprecated and will be removed in a future version.\n  optional VolumeSource volumeSource = 2;\n}\n\n// volumeDevice describes a mapping of a raw block device within a container.\nmessage VolumeDevice {\n  // name must match the name of a persistentVolumeClaim in the pod\n  optional string name = 1;\n\n  // devicePath is the path inside of the container that the device will be mapped to.\n  optional string devicePath = 2;\n}\n\n// VolumeMount describes a mounting of a Volume within a container.\nmessage VolumeMount {\n  // This must match the Name of a Volume.\n  optional string name = 1;\n\n  // Mounted read-only if true, read-write otherwise (false or unspecified).\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 2;\n\n  // Path within the container at which the volume should be mounted.  Must\n  // not contain ':'.\n  optional string mountPath = 3;\n\n  // Path within the volume from which the container's volume should be mounted.\n  // Defaults to \"\" (volume's root).\n  // +optional\n  optional string subPath = 4;\n\n  // mountPropagation determines how mounts are propagated from the host\n  // to container and the other way around.\n  // When not set, MountPropagationNone is used.\n  // This field is beta in 1.10.\n  // +optional\n  optional string mountPropagation = 5;\n\n  // Expanded path within the volume from which the container's volume should be mounted.\n  // Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\n  // Defaults to \"\" (volume's root).\n  // SubPathExpr and SubPath are mutually exclusive.\n  // +optional\n  optional string subPathExpr = 6;\n}\n\n// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\nmessage VolumeNodeAffinity {\n  // required specifies hard node constraints that must be met.\n  optional NodeSelector required = 1;\n}\n\n// Projection that may be projected along with other supported volume types\nmessage VolumeProjection {\n  // secret information about the secret data to project\n  // +optional\n  optional SecretProjection secret = 1;\n\n  // downwardAPI information about the downwardAPI data to project\n  // +optional\n  optional DownwardAPIProjection downwardAPI = 2;\n\n  // configMap information about the configMap data to project\n  // +optional\n  optional ConfigMapProjection configMap = 3;\n\n  // serviceAccountToken is information about the serviceAccountToken data to project\n  // +optional\n  optional ServiceAccountTokenProjection serviceAccountToken = 4;\n}\n\n// Represents the source of a volume to mount.\n// Only one of its members may be specified.\nmessage VolumeSource {\n  // hostPath represents a pre-existing file or directory on the host\n  // machine that is directly exposed to the container. This is generally\n  // used for system agents or other privileged things that are allowed\n  // to see the host machine. Most containers will NOT need this.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // ---\n  // TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\n  // mount host directories as read/write.\n  // +optional\n  optional HostPathVolumeSource hostPath = 1;\n\n  // emptyDir represents a temporary directory that shares a pod's lifetime.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional EmptyDirVolumeSource emptyDir = 2;\n\n  // gcePersistentDisk represents a GCE Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional GCEPersistentDiskVolumeSource gcePersistentDisk = 3;\n\n  // awsElasticBlockStore represents an AWS Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;\n\n  // gitRepo represents a git repository at a particular revision.\n  // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n  // EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n  // into the Pod's container.\n  // +optional\n  optional GitRepoVolumeSource gitRepo = 5;\n\n  // secret represents a secret that should populate this volume.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n  // +optional\n  optional SecretVolumeSource secret = 6;\n\n  // nfs represents an NFS mount on the host that shares a pod's lifetime\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional NFSVolumeSource nfs = 7;\n\n  // iscsi represents an ISCSI Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // More info: https://examples.k8s.io/volumes/iscsi/README.md\n  // +optional\n  optional ISCSIVolumeSource iscsi = 8;\n\n  // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md\n  // +optional\n  optional GlusterfsVolumeSource glusterfs = 9;\n\n  // persistentVolumeClaimVolumeSource represents a reference to a\n  // PersistentVolumeClaim in the same namespace.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;\n\n  // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md\n  // +optional\n  optional RBDVolumeSource rbd = 11;\n\n  // flexVolume represents a generic volume resource that is\n  // provisioned/attached using an exec based plugin.\n  // +optional\n  optional FlexVolumeSource flexVolume = 12;\n\n  // cinder represents a cinder volume attached and mounted on kubelets host machine.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional CinderVolumeSource cinder = 13;\n\n  // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\n  // +optional\n  optional CephFSVolumeSource cephfs = 14;\n\n  // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\n  // +optional\n  optional FlockerVolumeSource flocker = 15;\n\n  // downwardAPI represents downward API about the pod that should populate this volume\n  // +optional\n  optional DownwardAPIVolumeSource downwardAPI = 16;\n\n  // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n  // +optional\n  optional FCVolumeSource fc = 17;\n\n  // azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n  // +optional\n  optional AzureFileVolumeSource azureFile = 18;\n\n  // configMap represents a configMap that should populate this volume\n  // +optional\n  optional ConfigMapVolumeSource configMap = 19;\n\n  // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\n  // +optional\n  optional VsphereVirtualDiskVolumeSource vsphereVolume = 20;\n\n  // quobyte represents a Quobyte mount on the host that shares a pod's lifetime\n  // +optional\n  optional QuobyteVolumeSource quobyte = 21;\n\n  // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n  // +optional\n  optional AzureDiskVolumeSource azureDisk = 22;\n\n  // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\n  optional PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;\n\n  // projected items for all in one resources secrets, configmaps, and downward API\n  optional ProjectedVolumeSource projected = 26;\n\n  // portworxVolume represents a portworx volume attached and mounted on kubelets host machine\n  // +optional\n  optional PortworxVolumeSource portworxVolume = 24;\n\n  // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n  // +optional\n  optional ScaleIOVolumeSource scaleIO = 25;\n\n  // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\n  // +optional\n  optional StorageOSVolumeSource storageos = 27;\n\n  // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\n  // +optional\n  optional CSIVolumeSource csi = 28;\n\n  // ephemeral represents a volume that is handled by a cluster storage driver.\n  // The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\n  // and deleted when the pod is removed.\n  //\n  // Use this if:\n  // a) the volume is only needed while the pod runs,\n  // b) features of normal volumes like restoring from snapshot or capacity\n  //    tracking are needed,\n  // c) the storage driver is specified through a storage class, and\n  // d) the storage driver supports dynamic volume provisioning through\n  //    a PersistentVolumeClaim (see EphemeralVolumeSource for more\n  //    information on the connection between this volume type\n  //    and PersistentVolumeClaim).\n  //\n  // Use PersistentVolumeClaim or one of the vendor-specific\n  // APIs for volumes that persist for longer than the lifecycle\n  // of an individual pod.\n  //\n  // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to\n  // be used that way - see the documentation of the driver for\n  // more information.\n  //\n  // A pod can use both types of ephemeral volumes and\n  // persistent volumes at the same time.\n  //\n  // +optional\n  optional EphemeralVolumeSource ephemeral = 29;\n}\n\n// Represents a vSphere volume resource.\nmessage VsphereVirtualDiskVolumeSource {\n  // volumePath is the path that identifies vSphere volume vmdk\n  optional string volumePath = 1;\n\n  // fsType is filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 2;\n\n  // storagePolicyName is the storage Policy Based Management (SPBM) profile name.\n  // +optional\n  optional string storagePolicyName = 3;\n\n  // storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\n  // +optional\n  optional string storagePolicyID = 4;\n}\n\n// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\nmessage WeightedPodAffinityTerm {\n  // weight associated with matching the corresponding podAffinityTerm,\n  // in the range 1-100.\n  optional int32 weight = 1;\n\n  // Required. A pod affinity term, associated with the corresponding weight.\n  optional PodAffinityTerm podAffinityTerm = 2;\n}\n\n// WindowsSecurityContextOptions contain Windows-specific options and credentials.\nmessage WindowsSecurityContextOptions {\n  // GMSACredentialSpecName is the name of the GMSA credential spec to use.\n  // +optional\n  optional string gmsaCredentialSpecName = 1;\n\n  // GMSACredentialSpec is where the GMSA admission webhook\n  // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\n  // GMSA credential spec named by the GMSACredentialSpecName field.\n  // +optional\n  optional string gmsaCredentialSpec = 2;\n\n  // The UserName in Windows to run the entrypoint of the container process.\n  // Defaults to the user specified in image metadata if unspecified.\n  // May also be set in PodSecurityContext. If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional string runAsUserName = 3;\n\n  // HostProcess determines if a container should be run as a 'Host Process' container.\n  // This field is alpha-level and will only be honored by components that enable the\n  // WindowsHostProcessContainers feature flag. Setting this field without the feature\n  // flag will result in errors when validating the Pod. All of a Pod's containers must\n  // have the same effective HostProcess value (it is not allowed to have a mix of HostProcess\n  // containers and non-HostProcess containers).  In addition, if HostProcess is true\n  // then HostNetwork must also be set to true.\n  // +optional\n  optional bool hostProcess = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/lifecycle.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.\nfunc (in *ComponentStatus) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\nfunc (in *ComponentStatus) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.\nfunc (in *ComponentStatusList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\nfunc (in *ComponentStatusList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/objectreference.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// IsAnAPIObject allows clients to preemptively get a reference to an API object and pass it to places that\n// intend only to get a reference to that object. This simplifies the event recording interface.\nfunc (obj *ObjectReference) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\nfunc (obj *ObjectReference) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *ObjectReference) GetObjectKind() schema.ObjectKind { return obj }\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Pod{},\n\t\t&PodList{},\n\t\t&PodStatusResult{},\n\t\t&PodTemplate{},\n\t\t&PodTemplateList{},\n\t\t&ReplicationController{},\n\t\t&ReplicationControllerList{},\n\t\t&Service{},\n\t\t&ServiceProxyOptions{},\n\t\t&ServiceList{},\n\t\t&Endpoints{},\n\t\t&EndpointsList{},\n\t\t&Node{},\n\t\t&NodeList{},\n\t\t&NodeProxyOptions{},\n\t\t&Binding{},\n\t\t&Event{},\n\t\t&EventList{},\n\t\t&List{},\n\t\t&LimitRange{},\n\t\t&LimitRangeList{},\n\t\t&ResourceQuota{},\n\t\t&ResourceQuotaList{},\n\t\t&Namespace{},\n\t\t&NamespaceList{},\n\t\t&Secret{},\n\t\t&SecretList{},\n\t\t&ServiceAccount{},\n\t\t&ServiceAccountList{},\n\t\t&PersistentVolume{},\n\t\t&PersistentVolumeList{},\n\t\t&PersistentVolumeClaim{},\n\t\t&PersistentVolumeClaimList{},\n\t\t&PodAttachOptions{},\n\t\t&PodLogOptions{},\n\t\t&PodExecOptions{},\n\t\t&PodPortForwardOptions{},\n\t\t&PodProxyOptions{},\n\t\t&ComponentStatus{},\n\t\t&ComponentStatusList{},\n\t\t&SerializedReference{},\n\t\t&RangeAllocation{},\n\t\t&ConfigMap{},\n\t\t&ConfigMapList{},\n\t)\n\n\t// Add common types\n\tscheme.AddKnownTypes(SchemeGroupVersion, &metav1.Status{})\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/resource.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// Returns string version of ResourceName.\nfunc (rn ResourceName) String() string {\n\treturn string(rn)\n}\n\n// Cpu returns the Cpu limit if specified.\nfunc (rl *ResourceList) Cpu() *resource.Quantity {\n\treturn rl.Name(ResourceCPU, resource.DecimalSI)\n}\n\n// Memory returns the Memory limit if specified.\nfunc (rl *ResourceList) Memory() *resource.Quantity {\n\treturn rl.Name(ResourceMemory, resource.BinarySI)\n}\n\n// Storage returns the Storage limit if specified.\nfunc (rl *ResourceList) Storage() *resource.Quantity {\n\treturn rl.Name(ResourceStorage, resource.BinarySI)\n}\n\n// Pods returns the list of pods\nfunc (rl *ResourceList) Pods() *resource.Quantity {\n\treturn rl.Name(ResourcePods, resource.DecimalSI)\n}\n\n// StorageEphemeral returns the list of ephemeral storage volumes, if any\nfunc (rl *ResourceList) StorageEphemeral() *resource.Quantity {\n\treturn rl.Name(ResourceEphemeralStorage, resource.BinarySI)\n}\n\n// Name returns the resource with name if specified, otherwise it returns a nil quantity with default format.\nfunc (rl *ResourceList) Name(name ResourceName, defaultFormat resource.Format) *resource.Quantity {\n\tif val, ok := (*rl)[name]; ok {\n\t\treturn &val\n\t}\n\treturn &resource.Quantity{Format: defaultFormat}\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/taint.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport \"fmt\"\n\n// MatchTaint checks if the taint matches taintToMatch. Taints are unique by key:effect,\n// if the two taints have same key:effect, regard as they match.\nfunc (t *Taint) MatchTaint(taintToMatch *Taint) bool {\n\treturn t.Key == taintToMatch.Key && t.Effect == taintToMatch.Effect\n}\n\n// taint.ToString() converts taint struct to string in format '<key>=<value>:<effect>', '<key>=<value>:', '<key>:<effect>', or '<key>'.\nfunc (t *Taint) ToString() string {\n\tif len(t.Effect) == 0 {\n\t\tif len(t.Value) == 0 {\n\t\t\treturn fmt.Sprintf(\"%v\", t.Key)\n\t\t}\n\t\treturn fmt.Sprintf(\"%v=%v:\", t.Key, t.Value)\n\t}\n\tif len(t.Value) == 0 {\n\t\treturn fmt.Sprintf(\"%v:%v\", t.Key, t.Effect)\n\t}\n\treturn fmt.Sprintf(\"%v=%v:%v\", t.Key, t.Value, t.Effect)\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/toleration.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// MatchToleration checks if the toleration matches tolerationToMatch. Tolerations are unique by <key,effect,operator,value>,\n// if the two tolerations have same <key,effect,operator,value> combination, regard as they match.\n// TODO: uniqueness check for tolerations in api validations.\nfunc (t *Toleration) MatchToleration(tolerationToMatch *Toleration) bool {\n\treturn t.Key == tolerationToMatch.Key &&\n\t\tt.Effect == tolerationToMatch.Effect &&\n\t\tt.Operator == tolerationToMatch.Operator &&\n\t\tt.Value == tolerationToMatch.Value\n}\n\n// ToleratesTaint checks if the toleration tolerates the taint.\n// The matching follows the rules below:\n//\n//  1. Empty toleration.effect means to match all taint effects,\n//     otherwise taint effect must equal to toleration.effect.\n//  2. If toleration.operator is 'Exists', it means to match all taint values.\n//  3. Empty toleration.key means to match all taint keys.\n//     If toleration.key is empty, toleration.operator must be 'Exists';\n//     this combination means to match all taint values and all taint keys.\nfunc (t *Toleration) ToleratesTaint(taint *Taint) bool {\n\tif len(t.Effect) > 0 && t.Effect != taint.Effect {\n\t\treturn false\n\t}\n\n\tif len(t.Key) > 0 && t.Key != taint.Key {\n\t\treturn false\n\t}\n\n\t// TODO: Use proper defaulting when Toleration becomes a field of PodSpec\n\tswitch t.Operator {\n\t// empty operator means Equal\n\tcase \"\", TolerationOpEqual:\n\t\treturn t.Value == taint.Value\n\tcase TolerationOpExists:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\t// NamespaceDefault means the object is in the default namespace which is applied when not specified by clients\n\tNamespaceDefault string = \"default\"\n\t// NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces\n\tNamespaceAll string = \"\"\n\t// NamespaceNodeLease is the namespace where we place node lease objects (used for node heartbeats)\n\tNamespaceNodeLease string = \"kube-node-lease\"\n)\n\n// Volume represents a named volume in a pod that may be accessed by any container in the pod.\ntype Volume struct {\n\t// name of the volume.\n\t// Must be a DNS_LABEL and unique within the pod.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// volumeSource represents the location and type of the mounted volume.\n\t// If not specified, the Volume is implied to be an EmptyDir.\n\t// This implied behavior is deprecated and will be removed in a future version.\n\tVolumeSource `json:\",inline\" protobuf:\"bytes,2,opt,name=volumeSource\"`\n}\n\n// Represents the source of a volume to mount.\n// Only one of its members may be specified.\ntype VolumeSource struct {\n\t// hostPath represents a pre-existing file or directory on the host\n\t// machine that is directly exposed to the container. This is generally\n\t// used for system agents or other privileged things that are allowed\n\t// to see the host machine. Most containers will NOT need this.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// ---\n\t// TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\n\t// mount host directories as read/write.\n\t// +optional\n\tHostPath *HostPathVolumeSource `json:\"hostPath,omitempty\" protobuf:\"bytes,1,opt,name=hostPath\"`\n\t// emptyDir represents a temporary directory that shares a pod's lifetime.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tEmptyDir *EmptyDirVolumeSource `json:\"emptyDir,omitempty\" protobuf:\"bytes,2,opt,name=emptyDir\"`\n\t// gcePersistentDisk represents a GCE Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tGCEPersistentDisk *GCEPersistentDiskVolumeSource `json:\"gcePersistentDisk,omitempty\" protobuf:\"bytes,3,opt,name=gcePersistentDisk\"`\n\t// awsElasticBlockStore represents an AWS Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:\"awsElasticBlockStore,omitempty\" protobuf:\"bytes,4,opt,name=awsElasticBlockStore\"`\n\t// gitRepo represents a git repository at a particular revision.\n\t// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n\t// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n\t// into the Pod's container.\n\t// +optional\n\tGitRepo *GitRepoVolumeSource `json:\"gitRepo,omitempty\" protobuf:\"bytes,5,opt,name=gitRepo\"`\n\t// secret represents a secret that should populate this volume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n\t// +optional\n\tSecret *SecretVolumeSource `json:\"secret,omitempty\" protobuf:\"bytes,6,opt,name=secret\"`\n\t// nfs represents an NFS mount on the host that shares a pod's lifetime\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tNFS *NFSVolumeSource `json:\"nfs,omitempty\" protobuf:\"bytes,7,opt,name=nfs\"`\n\t// iscsi represents an ISCSI Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// More info: https://examples.k8s.io/volumes/iscsi/README.md\n\t// +optional\n\tISCSI *ISCSIVolumeSource `json:\"iscsi,omitempty\" protobuf:\"bytes,8,opt,name=iscsi\"`\n\t// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md\n\t// +optional\n\tGlusterfs *GlusterfsVolumeSource `json:\"glusterfs,omitempty\" protobuf:\"bytes,9,opt,name=glusterfs\"`\n\t// persistentVolumeClaimVolumeSource represents a reference to a\n\t// PersistentVolumeClaim in the same namespace.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tPersistentVolumeClaim *PersistentVolumeClaimVolumeSource `json:\"persistentVolumeClaim,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaim\"`\n\t// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md\n\t// +optional\n\tRBD *RBDVolumeSource `json:\"rbd,omitempty\" protobuf:\"bytes,11,opt,name=rbd\"`\n\t// flexVolume represents a generic volume resource that is\n\t// provisioned/attached using an exec based plugin.\n\t// +optional\n\tFlexVolume *FlexVolumeSource `json:\"flexVolume,omitempty\" protobuf:\"bytes,12,opt,name=flexVolume\"`\n\t// cinder represents a cinder volume attached and mounted on kubelets host machine.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tCinder *CinderVolumeSource `json:\"cinder,omitempty\" protobuf:\"bytes,13,opt,name=cinder\"`\n\t// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\n\t// +optional\n\tCephFS *CephFSVolumeSource `json:\"cephfs,omitempty\" protobuf:\"bytes,14,opt,name=cephfs\"`\n\t// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\n\t// +optional\n\tFlocker *FlockerVolumeSource `json:\"flocker,omitempty\" protobuf:\"bytes,15,opt,name=flocker\"`\n\t// downwardAPI represents downward API about the pod that should populate this volume\n\t// +optional\n\tDownwardAPI *DownwardAPIVolumeSource `json:\"downwardAPI,omitempty\" protobuf:\"bytes,16,opt,name=downwardAPI\"`\n\t// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n\t// +optional\n\tFC *FCVolumeSource `json:\"fc,omitempty\" protobuf:\"bytes,17,opt,name=fc\"`\n\t// azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n\t// +optional\n\tAzureFile *AzureFileVolumeSource `json:\"azureFile,omitempty\" protobuf:\"bytes,18,opt,name=azureFile\"`\n\t// configMap represents a configMap that should populate this volume\n\t// +optional\n\tConfigMap *ConfigMapVolumeSource `json:\"configMap,omitempty\" protobuf:\"bytes,19,opt,name=configMap\"`\n\t// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\n\t// +optional\n\tVsphereVolume *VsphereVirtualDiskVolumeSource `json:\"vsphereVolume,omitempty\" protobuf:\"bytes,20,opt,name=vsphereVolume\"`\n\t// quobyte represents a Quobyte mount on the host that shares a pod's lifetime\n\t// +optional\n\tQuobyte *QuobyteVolumeSource `json:\"quobyte,omitempty\" protobuf:\"bytes,21,opt,name=quobyte\"`\n\t// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n\t// +optional\n\tAzureDisk *AzureDiskVolumeSource `json:\"azureDisk,omitempty\" protobuf:\"bytes,22,opt,name=azureDisk\"`\n\t// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:\"photonPersistentDisk,omitempty\" protobuf:\"bytes,23,opt,name=photonPersistentDisk\"`\n\t// projected items for all in one resources secrets, configmaps, and downward API\n\tProjected *ProjectedVolumeSource `json:\"projected,omitempty\" protobuf:\"bytes,26,opt,name=projected\"`\n\t// portworxVolume represents a portworx volume attached and mounted on kubelets host machine\n\t// +optional\n\tPortworxVolume *PortworxVolumeSource `json:\"portworxVolume,omitempty\" protobuf:\"bytes,24,opt,name=portworxVolume\"`\n\t// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n\t// +optional\n\tScaleIO *ScaleIOVolumeSource `json:\"scaleIO,omitempty\" protobuf:\"bytes,25,opt,name=scaleIO\"`\n\t// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\n\t// +optional\n\tStorageOS *StorageOSVolumeSource `json:\"storageos,omitempty\" protobuf:\"bytes,27,opt,name=storageos\"`\n\t// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\n\t// +optional\n\tCSI *CSIVolumeSource `json:\"csi,omitempty\" protobuf:\"bytes,28,opt,name=csi\"`\n\t// ephemeral represents a volume that is handled by a cluster storage driver.\n\t// The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\n\t// and deleted when the pod is removed.\n\t//\n\t// Use this if:\n\t// a) the volume is only needed while the pod runs,\n\t// b) features of normal volumes like restoring from snapshot or capacity\n\t//    tracking are needed,\n\t// c) the storage driver is specified through a storage class, and\n\t// d) the storage driver supports dynamic volume provisioning through\n\t//    a PersistentVolumeClaim (see EphemeralVolumeSource for more\n\t//    information on the connection between this volume type\n\t//    and PersistentVolumeClaim).\n\t//\n\t// Use PersistentVolumeClaim or one of the vendor-specific\n\t// APIs for volumes that persist for longer than the lifecycle\n\t// of an individual pod.\n\t//\n\t// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to\n\t// be used that way - see the documentation of the driver for\n\t// more information.\n\t//\n\t// A pod can use both types of ephemeral volumes and\n\t// persistent volumes at the same time.\n\t//\n\t// +optional\n\tEphemeral *EphemeralVolumeSource `json:\"ephemeral,omitempty\" protobuf:\"bytes,29,opt,name=ephemeral\"`\n}\n\n// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.\n// This volume finds the bound PV and mounts that volume for the pod. A\n// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another\n// type of volume that is owned by someone else (the system).\ntype PersistentVolumeClaimVolumeSource struct {\n\t// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\tClaimName string `json:\"claimName\" protobuf:\"bytes,1,opt,name=claimName\"`\n\t// readOnly Will force the ReadOnly setting in VolumeMounts.\n\t// Default false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n}\n\n// PersistentVolumeSource is similar to VolumeSource but meant for the\n// administrator who creates PVs. Exactly one of its members must be set.\ntype PersistentVolumeSource struct {\n\t// gcePersistentDisk represents a GCE Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tGCEPersistentDisk *GCEPersistentDiskVolumeSource `json:\"gcePersistentDisk,omitempty\" protobuf:\"bytes,1,opt,name=gcePersistentDisk\"`\n\t// awsElasticBlockStore represents an AWS Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:\"awsElasticBlockStore,omitempty\" protobuf:\"bytes,2,opt,name=awsElasticBlockStore\"`\n\t// hostPath represents a directory on the host.\n\t// Provisioned by a developer or tester.\n\t// This is useful for single-node development and testing only!\n\t// On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// +optional\n\tHostPath *HostPathVolumeSource `json:\"hostPath,omitempty\" protobuf:\"bytes,3,opt,name=hostPath\"`\n\t// glusterfs represents a Glusterfs volume that is attached to a host and\n\t// exposed to the pod. Provisioned by an admin.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md\n\t// +optional\n\tGlusterfs *GlusterfsPersistentVolumeSource `json:\"glusterfs,omitempty\" protobuf:\"bytes,4,opt,name=glusterfs\"`\n\t// nfs represents an NFS mount on the host. Provisioned by an admin.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tNFS *NFSVolumeSource `json:\"nfs,omitempty\" protobuf:\"bytes,5,opt,name=nfs\"`\n\t// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md\n\t// +optional\n\tRBD *RBDPersistentVolumeSource `json:\"rbd,omitempty\" protobuf:\"bytes,6,opt,name=rbd\"`\n\t// iscsi represents an ISCSI Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n\t// +optional\n\tISCSI *ISCSIPersistentVolumeSource `json:\"iscsi,omitempty\" protobuf:\"bytes,7,opt,name=iscsi\"`\n\t// cinder represents a cinder volume attached and mounted on kubelets host machine.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tCinder *CinderPersistentVolumeSource `json:\"cinder,omitempty\" protobuf:\"bytes,8,opt,name=cinder\"`\n\t// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\n\t// +optional\n\tCephFS *CephFSPersistentVolumeSource `json:\"cephfs,omitempty\" protobuf:\"bytes,9,opt,name=cephfs\"`\n\t// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n\t// +optional\n\tFC *FCVolumeSource `json:\"fc,omitempty\" protobuf:\"bytes,10,opt,name=fc\"`\n\t// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\n\t// +optional\n\tFlocker *FlockerVolumeSource `json:\"flocker,omitempty\" protobuf:\"bytes,11,opt,name=flocker\"`\n\t// flexVolume represents a generic volume resource that is\n\t// provisioned/attached using an exec based plugin.\n\t// +optional\n\tFlexVolume *FlexPersistentVolumeSource `json:\"flexVolume,omitempty\" protobuf:\"bytes,12,opt,name=flexVolume\"`\n\t// azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n\t// +optional\n\tAzureFile *AzureFilePersistentVolumeSource `json:\"azureFile,omitempty\" protobuf:\"bytes,13,opt,name=azureFile\"`\n\t// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\n\t// +optional\n\tVsphereVolume *VsphereVirtualDiskVolumeSource `json:\"vsphereVolume,omitempty\" protobuf:\"bytes,14,opt,name=vsphereVolume\"`\n\t// quobyte represents a Quobyte mount on the host that shares a pod's lifetime\n\t// +optional\n\tQuobyte *QuobyteVolumeSource `json:\"quobyte,omitempty\" protobuf:\"bytes,15,opt,name=quobyte\"`\n\t// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n\t// +optional\n\tAzureDisk *AzureDiskVolumeSource `json:\"azureDisk,omitempty\" protobuf:\"bytes,16,opt,name=azureDisk\"`\n\t// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:\"photonPersistentDisk,omitempty\" protobuf:\"bytes,17,opt,name=photonPersistentDisk\"`\n\t// portworxVolume represents a portworx volume attached and mounted on kubelets host machine\n\t// +optional\n\tPortworxVolume *PortworxVolumeSource `json:\"portworxVolume,omitempty\" protobuf:\"bytes,18,opt,name=portworxVolume\"`\n\t// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n\t// +optional\n\tScaleIO *ScaleIOPersistentVolumeSource `json:\"scaleIO,omitempty\" protobuf:\"bytes,19,opt,name=scaleIO\"`\n\t// local represents directly-attached storage with node affinity\n\t// +optional\n\tLocal *LocalVolumeSource `json:\"local,omitempty\" protobuf:\"bytes,20,opt,name=local\"`\n\t// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod\n\t// More info: https://examples.k8s.io/volumes/storageos/README.md\n\t// +optional\n\tStorageOS *StorageOSPersistentVolumeSource `json:\"storageos,omitempty\" protobuf:\"bytes,21,opt,name=storageos\"`\n\t// csi represents storage that is handled by an external CSI driver (Beta feature).\n\t// +optional\n\tCSI *CSIPersistentVolumeSource `json:\"csi,omitempty\" protobuf:\"bytes,22,opt,name=csi\"`\n}\n\nconst (\n\t// BetaStorageClassAnnotation represents the beta/previous StorageClass annotation.\n\t// It's currently still used and will be held for backwards compatibility\n\tBetaStorageClassAnnotation = \"volume.beta.kubernetes.io/storage-class\"\n\n\t// MountOptionAnnotation defines mount option annotation used in PVs\n\tMountOptionAnnotation = \"volume.beta.kubernetes.io/mount-options\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PersistentVolume (PV) is a storage resource provisioned by an administrator.\n// It is analogous to a node.\n// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\ntype PersistentVolume struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines a specification of a persistent volume owned by the cluster.\n\t// Provisioned by an administrator.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n\t// +optional\n\tSpec PersistentVolumeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents the current information/status for the persistent volume.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n\t// +optional\n\tStatus PersistentVolumeStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PersistentVolumeSpec is the specification of a persistent volume.\ntype PersistentVolumeSpec struct {\n\t// capacity is the description of the persistent volume's resources and capacity.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// persistentVolumeSource is the actual volume backing the persistent volume.\n\tPersistentVolumeSource `json:\",inline\" protobuf:\"bytes,2,opt,name=persistentVolumeSource\"`\n\t// accessModes contains all ways the volume can be mounted.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\n\t// +optional\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,3,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.\n\t// Expected to be non-nil when bound.\n\t// claim.VolumeName is the authoritative bind between PV and PVC.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\n\t// +optional\n\t// +structType=granular\n\tClaimRef *ObjectReference `json:\"claimRef,omitempty\" protobuf:\"bytes,4,opt,name=claimRef\"`\n\t// persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim.\n\t// Valid options are Retain (default for manually created PersistentVolumes), Delete (default\n\t// for dynamically provisioned PersistentVolumes), and Recycle (deprecated).\n\t// Recycle must be supported by the volume plugin underlying this PersistentVolume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n\t// +optional\n\tPersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy `json:\"persistentVolumeReclaimPolicy,omitempty\" protobuf:\"bytes,5,opt,name=persistentVolumeReclaimPolicy,casttype=PersistentVolumeReclaimPolicy\"`\n\t// storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value\n\t// means that this volume does not belong to any StorageClass.\n\t// +optional\n\tStorageClassName string `json:\"storageClassName,omitempty\" protobuf:\"bytes,6,opt,name=storageClassName\"`\n\t// mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will\n\t// simply fail if one is invalid.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\n\t// +optional\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,7,opt,name=mountOptions\"`\n\t// volumeMode defines if a volume is intended to be used with a formatted filesystem\n\t// or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n\t// +optional\n\tVolumeMode *PersistentVolumeMode `json:\"volumeMode,omitempty\" protobuf:\"bytes,8,opt,name=volumeMode,casttype=PersistentVolumeMode\"`\n\t// nodeAffinity defines constraints that limit what nodes this volume can be accessed from.\n\t// This field influences the scheduling of pods that use this volume.\n\t// +optional\n\tNodeAffinity *VolumeNodeAffinity `json:\"nodeAffinity,omitempty\" protobuf:\"bytes,9,opt,name=nodeAffinity\"`\n}\n\n// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\ntype VolumeNodeAffinity struct {\n\t// required specifies hard node constraints that must be met.\n\tRequired *NodeSelector `json:\"required,omitempty\" protobuf:\"bytes,1,opt,name=required\"`\n}\n\n// PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes.\n// +enum\ntype PersistentVolumeReclaimPolicy string\n\nconst (\n\t// PersistentVolumeReclaimRecycle means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim.\n\t// The volume plugin must support Recycling.\n\tPersistentVolumeReclaimRecycle PersistentVolumeReclaimPolicy = \"Recycle\"\n\t// PersistentVolumeReclaimDelete means the volume will be deleted from Kubernetes on release from its claim.\n\t// The volume plugin must support Deletion.\n\tPersistentVolumeReclaimDelete PersistentVolumeReclaimPolicy = \"Delete\"\n\t// PersistentVolumeReclaimRetain means the volume will be left in its current phase (Released) for manual reclamation by the administrator.\n\t// The default policy is Retain.\n\tPersistentVolumeReclaimRetain PersistentVolumeReclaimPolicy = \"Retain\"\n)\n\n// PersistentVolumeMode describes how a volume is intended to be consumed, either Block or Filesystem.\n// +enum\ntype PersistentVolumeMode string\n\nconst (\n\t// PersistentVolumeBlock means the volume will not be formatted with a filesystem and will remain a raw block device.\n\tPersistentVolumeBlock PersistentVolumeMode = \"Block\"\n\t// PersistentVolumeFilesystem means the volume will be or is formatted with a filesystem.\n\tPersistentVolumeFilesystem PersistentVolumeMode = \"Filesystem\"\n)\n\n// PersistentVolumeStatus is the current status of a persistent volume.\ntype PersistentVolumeStatus struct {\n\t// phase indicates if a volume is available, bound to a claim, or released by a claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n\t// +optional\n\tPhase PersistentVolumePhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PersistentVolumePhase\"`\n\t// message is a human-readable message indicating details about why the volume is in this state.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// reason is a brief CamelCase string that describes any failure and is meant\n\t// for machine parsing and tidy display in the CLI.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PersistentVolumeList is a list of PersistentVolume items.\ntype PersistentVolumeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is a list of persistent volumes.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\n\tItems []PersistentVolume `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PersistentVolumeClaim is a user's request for and claim to a persistent volume\ntype PersistentVolumeClaim struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the desired characteristics of a volume requested by a pod author.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tSpec PersistentVolumeClaimSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents the current information/status of a persistent volume claim.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tStatus PersistentVolumeClaimStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\ntype PersistentVolumeClaimList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is a list of persistent volume claims.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\tItems []PersistentVolumeClaim `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PersistentVolumeClaimSpec describes the common attributes of storage devices\n// and allows a Source for provider-specific attributes\ntype PersistentVolumeClaimSpec struct {\n\t// accessModes contains the desired access modes the volume should have.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n\t// +optional\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,1,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// selector is a label query over volumes to consider for binding.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,opt,name=selector\"`\n\t// resources represents the minimum resources the volume should have.\n\t// If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\n\t// that are lower than previous value but must still be higher than capacity recorded in the\n\t// status field of the claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n\t// +optional\n\tResources ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,2,opt,name=resources\"`\n\t// volumeName is the binding reference to the PersistentVolume backing this claim.\n\t// +optional\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,3,opt,name=volumeName\"`\n\t// storageClassName is the name of the StorageClass required by the claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\n\t// +optional\n\tStorageClassName *string `json:\"storageClassName,omitempty\" protobuf:\"bytes,5,opt,name=storageClassName\"`\n\t// volumeMode defines what type of volume is required by the claim.\n\t// Value of Filesystem is implied when not included in claim spec.\n\t// +optional\n\tVolumeMode *PersistentVolumeMode `json:\"volumeMode,omitempty\" protobuf:\"bytes,6,opt,name=volumeMode,casttype=PersistentVolumeMode\"`\n\t// dataSource field can be used to specify either:\n\t// * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n\t// * An existing PVC (PersistentVolumeClaim)\n\t// If the provisioner or an external controller can support the specified data source,\n\t// it will create a new volume based on the contents of the specified data source.\n\t// When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\n\t// and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\n\t// If the namespace is specified, then dataSourceRef will not be copied to dataSource.\n\t// +optional\n\tDataSource *TypedLocalObjectReference `json:\"dataSource,omitempty\" protobuf:\"bytes,7,opt,name=dataSource\"`\n\t// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\n\t// volume is desired. This may be any object from a non-empty API group (non\n\t// core object) or a PersistentVolumeClaim object.\n\t// When this field is specified, volume binding will only succeed if the type of\n\t// the specified object matches some installed volume populator or dynamic\n\t// provisioner.\n\t// This field will replace the functionality of the dataSource field and as such\n\t// if both fields are non-empty, they must have the same value. For backwards\n\t// compatibility, when namespace isn't specified in dataSourceRef,\n\t// both fields (dataSource and dataSourceRef) will be set to the same\n\t// value automatically if one of them is empty and the other is non-empty.\n\t// When namespace is specified in dataSourceRef,\n\t// dataSource isn't set to the same value and must be empty.\n\t// There are three important differences between dataSource and dataSourceRef:\n\t// * While dataSource only allows two specific types of objects, dataSourceRef\n\t//   allows any non-core object, as well as PersistentVolumeClaim objects.\n\t// * While dataSource ignores disallowed values (dropping them), dataSourceRef\n\t//   preserves all values, and generates an error if a disallowed value is\n\t//   specified.\n\t// * While dataSource only allows local objects, dataSourceRef allows objects\n\t//   in any namespaces.\n\t// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n\t// (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n\t// +optional\n\tDataSourceRef *TypedObjectReference `json:\"dataSourceRef,omitempty\" protobuf:\"bytes,8,opt,name=dataSourceRef\"`\n}\n\ntype TypedObjectReference struct {\n\t// APIGroup is the group for the resource being referenced.\n\t// If APIGroup is not specified, the specified Kind must be in the core API group.\n\t// For any other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace is the namespace of resource being referenced\n\t// Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\n\t// (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n\t// +featureGate=CrossNamespaceVolumeDataSource\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\ntype PersistentVolumeClaimConditionType string\n\nconst (\n\t// PersistentVolumeClaimResizing - a user trigger resize of pvc has been started\n\tPersistentVolumeClaimResizing PersistentVolumeClaimConditionType = \"Resizing\"\n\t// PersistentVolumeClaimFileSystemResizePending - controller resize is finished and a file system resize is pending on node\n\tPersistentVolumeClaimFileSystemResizePending PersistentVolumeClaimConditionType = \"FileSystemResizePending\"\n)\n\n// +enum\ntype PersistentVolumeClaimResizeStatus string\n\nconst (\n\t// When expansion is complete, the empty string is set by resize controller or kubelet.\n\tPersistentVolumeClaimNoExpansionInProgress PersistentVolumeClaimResizeStatus = \"\"\n\t// State set when resize controller starts expanding the volume in control-plane\n\tPersistentVolumeClaimControllerExpansionInProgress PersistentVolumeClaimResizeStatus = \"ControllerExpansionInProgress\"\n\t// State set when expansion has failed in resize controller with a terminal error.\n\t// Transient errors such as timeout should not set this status and should leave ResizeStatus\n\t// unmodified, so as resize controller can resume the volume expansion.\n\tPersistentVolumeClaimControllerExpansionFailed PersistentVolumeClaimResizeStatus = \"ControllerExpansionFailed\"\n\t// State set when resize controller has finished expanding the volume but further expansion is needed on the node.\n\tPersistentVolumeClaimNodeExpansionPending PersistentVolumeClaimResizeStatus = \"NodeExpansionPending\"\n\t// State set when kubelet starts expanding the volume.\n\tPersistentVolumeClaimNodeExpansionInProgress PersistentVolumeClaimResizeStatus = \"NodeExpansionInProgress\"\n\t// State set when expansion has failed in kubelet with a terminal error. Transient errors don't set NodeExpansionFailed.\n\tPersistentVolumeClaimNodeExpansionFailed PersistentVolumeClaimResizeStatus = \"NodeExpansionFailed\"\n)\n\n// PersistentVolumeClaimCondition contains details about state of pvc\ntype PersistentVolumeClaimCondition struct {\n\tType   PersistentVolumeClaimConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=PersistentVolumeClaimConditionType\"`\n\tStatus ConditionStatus                    `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// lastProbeTime is the time we probed the condition.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// lastTransitionTime is the time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// reason is a unique, this should be a short, machine understandable string that gives the reason\n\t// for condition's last transition. If it reports \"ResizeStarted\" that means the underlying\n\t// persistent volume is being resized.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// message is the human-readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// PersistentVolumeClaimStatus is the current status of a persistent volume claim.\ntype PersistentVolumeClaimStatus struct {\n\t// phase represents the current phase of PersistentVolumeClaim.\n\t// +optional\n\tPhase PersistentVolumeClaimPhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PersistentVolumeClaimPhase\"`\n\t// accessModes contains the actual access modes the volume backing the PVC has.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n\t// +optional\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,2,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// capacity represents the actual resources of the underlying volume.\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,3,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\n\t// resized then the Condition will be set to 'ResizeStarted'.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []PersistentVolumeClaimCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,4,rep,name=conditions\"`\n\t// allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may\n\t// be larger than the actual capacity when a volume expansion operation is requested.\n\t// For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\n\t// If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\n\t// If a volume expansion capacity request is lowered, allocatedResources is only\n\t// lowered if there are no expansion operations in progress and if the actual volume capacity\n\t// is equal or lower than the requested capacity.\n\t// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n\t// +featureGate=RecoverVolumeExpansionFailure\n\t// +optional\n\tAllocatedResources ResourceList `json:\"allocatedResources,omitempty\" protobuf:\"bytes,5,rep,name=allocatedResources,casttype=ResourceList,castkey=ResourceName\"`\n\t// resizeStatus stores status of resize operation.\n\t// ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty\n\t// string by resize controller or kubelet.\n\t// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n\t// +featureGate=RecoverVolumeExpansionFailure\n\t// +optional\n\tResizeStatus *PersistentVolumeClaimResizeStatus `json:\"resizeStatus,omitempty\" protobuf:\"bytes,6,opt,name=resizeStatus,casttype=PersistentVolumeClaimResizeStatus\"`\n}\n\n// +enum\ntype PersistentVolumeAccessMode string\n\nconst (\n\t// can be mounted in read/write mode to exactly 1 host\n\tReadWriteOnce PersistentVolumeAccessMode = \"ReadWriteOnce\"\n\t// can be mounted in read-only mode to many hosts\n\tReadOnlyMany PersistentVolumeAccessMode = \"ReadOnlyMany\"\n\t// can be mounted in read/write mode to many hosts\n\tReadWriteMany PersistentVolumeAccessMode = \"ReadWriteMany\"\n\t// can be mounted in read/write mode to exactly 1 pod\n\t// cannot be used in combination with other access modes\n\tReadWriteOncePod PersistentVolumeAccessMode = \"ReadWriteOncePod\"\n)\n\n// +enum\ntype PersistentVolumePhase string\n\nconst (\n\t// used for PersistentVolumes that are not available\n\tVolumePending PersistentVolumePhase = \"Pending\"\n\t// used for PersistentVolumes that are not yet bound\n\t// Available volumes are held by the binder and matched to PersistentVolumeClaims\n\tVolumeAvailable PersistentVolumePhase = \"Available\"\n\t// used for PersistentVolumes that are bound\n\tVolumeBound PersistentVolumePhase = \"Bound\"\n\t// used for PersistentVolumes where the bound PersistentVolumeClaim was deleted\n\t// released volumes must be recycled before becoming available again\n\t// this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource\n\tVolumeReleased PersistentVolumePhase = \"Released\"\n\t// used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\n\tVolumeFailed PersistentVolumePhase = \"Failed\"\n)\n\n// +enum\ntype PersistentVolumeClaimPhase string\n\nconst (\n\t// used for PersistentVolumeClaims that are not yet bound\n\tClaimPending PersistentVolumeClaimPhase = \"Pending\"\n\t// used for PersistentVolumeClaims that are bound\n\tClaimBound PersistentVolumeClaimPhase = \"Bound\"\n\t// used for PersistentVolumeClaims that lost their underlying\n\t// PersistentVolume. The claim was bound to a PersistentVolume and this\n\t// volume does not exist any longer and all data on it was lost.\n\tClaimLost PersistentVolumeClaimPhase = \"Lost\"\n)\n\n// +enum\ntype HostPathType string\n\nconst (\n\t// For backwards compatible, leave it empty if unset\n\tHostPathUnset HostPathType = \"\"\n\t// If nothing exists at the given path, an empty directory will be created there\n\t// as needed with file mode 0755, having the same group and ownership with Kubelet.\n\tHostPathDirectoryOrCreate HostPathType = \"DirectoryOrCreate\"\n\t// A directory must exist at the given path\n\tHostPathDirectory HostPathType = \"Directory\"\n\t// If nothing exists at the given path, an empty file will be created there\n\t// as needed with file mode 0644, having the same group and ownership with Kubelet.\n\tHostPathFileOrCreate HostPathType = \"FileOrCreate\"\n\t// A file must exist at the given path\n\tHostPathFile HostPathType = \"File\"\n\t// A UNIX socket must exist at the given path\n\tHostPathSocket HostPathType = \"Socket\"\n\t// A character device must exist at the given path\n\tHostPathCharDev HostPathType = \"CharDevice\"\n\t// A block device must exist at the given path\n\tHostPathBlockDev HostPathType = \"BlockDevice\"\n)\n\n// Represents a host path mapped into a pod.\n// Host path volumes do not support ownership management or SELinux relabeling.\ntype HostPathVolumeSource struct {\n\t// path of the directory on the host.\n\t// If the path is a symlink, it will follow the link to the real path.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\t// type for HostPath Volume\n\t// Defaults to \"\"\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// +optional\n\tType *HostPathType `json:\"type,omitempty\" protobuf:\"bytes,2,opt,name=type\"`\n}\n\n// Represents an empty directory for a pod.\n// Empty directory volumes support ownership management and SELinux relabeling.\ntype EmptyDirVolumeSource struct {\n\t// medium represents what type of storage medium should back this directory.\n\t// The default is \"\" which means to use the node's default medium.\n\t// Must be an empty string (default) or Memory.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tMedium StorageMedium `json:\"medium,omitempty\" protobuf:\"bytes,1,opt,name=medium,casttype=StorageMedium\"`\n\t// sizeLimit is the total amount of local storage required for this EmptyDir volume.\n\t// The size limit is also applicable for memory medium.\n\t// The maximum usage on memory medium EmptyDir would be the minimum value between\n\t// the SizeLimit specified here and the sum of memory limits of all containers in a pod.\n\t// The default is nil which means that the limit is undefined.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tSizeLimit *resource.Quantity `json:\"sizeLimit,omitempty\" protobuf:\"bytes,2,opt,name=sizeLimit\"`\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\ntype GlusterfsVolumeSource struct {\n\t// endpoints is the endpoint name that details Glusterfs topology.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tEndpointsName string `json:\"endpoints\" protobuf:\"bytes,1,opt,name=endpoints\"`\n\n\t// path is the Glusterfs volume path.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\ntype GlusterfsPersistentVolumeSource struct {\n\t// endpoints is the endpoint name that details Glusterfs topology.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tEndpointsName string `json:\"endpoints\" protobuf:\"bytes,1,opt,name=endpoints\"`\n\n\t// path is the Glusterfs volume path.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// endpointsNamespace is the namespace that contains Glusterfs endpoint.\n\t// If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tEndpointsNamespace *string `json:\"endpointsNamespace,omitempty\" protobuf:\"bytes,4,opt,name=endpointsNamespace\"`\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\ntype RBDVolumeSource struct {\n\t// monitors is a collection of Ceph monitors.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tCephMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// image is the rados image name.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tRBDImage string `json:\"image\" protobuf:\"bytes,2,opt,name=image\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// pool is the rados pool name.\n\t// Default is rbd.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tRBDPool string `json:\"pool,omitempty\" protobuf:\"bytes,4,opt,name=pool\"`\n\t// user is the rados user name.\n\t// Default is admin.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tRadosUser string `json:\"user,omitempty\" protobuf:\"bytes,5,opt,name=user\"`\n\t// keyring is the path to key ring for RBDUser.\n\t// Default is /etc/ceph/keyring.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tKeyring string `json:\"keyring,omitempty\" protobuf:\"bytes,6,opt,name=keyring\"`\n\t// secretRef is name of the authentication secret for RBDUser. If provided\n\t// overrides keyring.\n\t// Default is nil.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,7,opt,name=secretRef\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,8,opt,name=readOnly\"`\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\ntype RBDPersistentVolumeSource struct {\n\t// monitors is a collection of Ceph monitors.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tCephMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// image is the rados image name.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tRBDImage string `json:\"image\" protobuf:\"bytes,2,opt,name=image\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// pool is the rados pool name.\n\t// Default is rbd.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tRBDPool string `json:\"pool,omitempty\" protobuf:\"bytes,4,opt,name=pool\"`\n\t// user is the rados user name.\n\t// Default is admin.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tRadosUser string `json:\"user,omitempty\" protobuf:\"bytes,5,opt,name=user\"`\n\t// keyring is the path to key ring for RBDUser.\n\t// Default is /etc/ceph/keyring.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tKeyring string `json:\"keyring,omitempty\" protobuf:\"bytes,6,opt,name=keyring\"`\n\t// secretRef is name of the authentication secret for RBDUser. If provided\n\t// overrides keyring.\n\t// Default is nil.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,7,opt,name=secretRef\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,8,opt,name=readOnly\"`\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\ntype CinderVolumeSource struct {\n\t// volumeID used to identify the volume in cinder.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretRef is optional: points to a secret object containing parameters used to connect\n\t// to OpenStack.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,4,opt,name=secretRef\"`\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\ntype CinderPersistentVolumeSource struct {\n\t// volumeID used to identify the volume in cinder.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretRef is Optional: points to a secret object containing parameters used to connect\n\t// to OpenStack.\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,4,opt,name=secretRef\"`\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\ntype CephFSVolumeSource struct {\n\t// monitors is Required: Monitors is a collection of Ceph monitors\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\tMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,2,opt,name=path\"`\n\t// user is optional: User is the rados user name, default is admin\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretFile string `json:\"secretFile,omitempty\" protobuf:\"bytes,4,opt,name=secretFile\"`\n\t// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n}\n\n// SecretReference represents a Secret Reference. It has enough information to retrieve secret\n// in any namespace\n// +structType=atomic\ntype SecretReference struct {\n\t// name is unique within a namespace to reference a secret resource.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// namespace defines the space within which the secret name must be unique.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,opt,name=namespace\"`\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\ntype CephFSPersistentVolumeSource struct {\n\t// monitors is Required: Monitors is a collection of Ceph monitors\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\tMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,2,opt,name=path\"`\n\t// user is Optional: User is the rados user name, default is admin\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretFile string `json:\"secretFile,omitempty\" protobuf:\"bytes,4,opt,name=secretFile\"`\n\t// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n}\n\n// Represents a Flocker volume mounted by the Flocker agent.\n// One and only one of datasetName and datasetUUID should be set.\n// Flocker volumes do not support ownership management or SELinux relabeling.\ntype FlockerVolumeSource struct {\n\t// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker\n\t// should be considered as deprecated\n\t// +optional\n\tDatasetName string `json:\"datasetName,omitempty\" protobuf:\"bytes,1,opt,name=datasetName\"`\n\t// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\n\t// +optional\n\tDatasetUUID string `json:\"datasetUUID,omitempty\" protobuf:\"bytes,2,opt,name=datasetUUID\"`\n}\n\n// StorageMedium defines ways that storage can be allocated to a volume.\ntype StorageMedium string\n\nconst (\n\tStorageMediumDefault         StorageMedium = \"\"           // use whatever the default is for the node, assume anything we don't explicitly handle is this\n\tStorageMediumMemory          StorageMedium = \"Memory\"     // use memory (e.g. tmpfs on linux)\n\tStorageMediumHugePages       StorageMedium = \"HugePages\"  // use hugepages\n\tStorageMediumHugePagesPrefix StorageMedium = \"HugePages-\" // prefix for full medium notation HugePages-<size>\n)\n\n// Protocol defines network protocols supported for things like container ports.\n// +enum\ntype Protocol string\n\nconst (\n\t// ProtocolTCP is the TCP protocol.\n\tProtocolTCP Protocol = \"TCP\"\n\t// ProtocolUDP is the UDP protocol.\n\tProtocolUDP Protocol = \"UDP\"\n\t// ProtocolSCTP is the SCTP protocol.\n\tProtocolSCTP Protocol = \"SCTP\"\n)\n\n// Represents a Persistent Disk resource in Google Compute Engine.\n//\n// A GCE PD must exist before mounting to a container. The disk must\n// also be in the same GCE project and zone as the kubelet. A GCE PD\n// can only be mounted as read/write once or read-only many times. GCE\n// PDs support ownership management and SELinux relabeling.\ntype GCEPersistentDiskVolumeSource struct {\n\t// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\tPDName string `json:\"pdName\" protobuf:\"bytes,1,opt,name=pdName\"`\n\t// fsType is filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// partition is the partition in the volume that you want to mount.\n\t// If omitted, the default is to mount by volume name.\n\t// Examples: For volume /dev/sda1, you specify the partition as \"1\".\n\t// Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tPartition int32 `json:\"partition,omitempty\" protobuf:\"varint,3,opt,name=partition\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n}\n\n// Represents a Quobyte mount that lasts the lifetime of a pod.\n// Quobyte volumes do not support ownership management or SELinux relabeling.\ntype QuobyteVolumeSource struct {\n\t// registry represents a single or multiple Quobyte Registry services\n\t// specified as a string as host:port pair (multiple entries are separated with commas)\n\t// which acts as the central registry for volumes\n\tRegistry string `json:\"registry\" protobuf:\"bytes,1,opt,name=registry\"`\n\n\t// volume is a string that references an already created Quobyte volume by name.\n\tVolume string `json:\"volume\" protobuf:\"bytes,2,opt,name=volume\"`\n\n\t// readOnly here will force the Quobyte volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// user to map volume access to\n\t// Defaults to serivceaccount user\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,4,opt,name=user\"`\n\n\t// group to map volume access to\n\t// Default is no group\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,5,opt,name=group\"`\n\n\t// tenant owning the given Quobyte volume in the Backend\n\t// Used with dynamically provisioned Quobyte volumes, value is set by the plugin\n\t// +optional\n\tTenant string `json:\"tenant,omitempty\" protobuf:\"bytes,6,opt,name=tenant\"`\n}\n\n// FlexPersistentVolumeSource represents a generic persistent volume resource that is\n// provisioned/attached using an exec based plugin.\ntype FlexPersistentVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\t// fsType is the Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// secretRef is Optional: SecretRef is reference to the secret object containing\n\t// sensitive information to pass to the plugin scripts. This may be\n\t// empty if no secret object is specified. If the secret object\n\t// contains more than one secret, all secrets are passed to the plugin\n\t// scripts.\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// options is Optional: this field holds extra command options if any.\n\t// +optional\n\tOptions map[string]string `json:\"options,omitempty\" protobuf:\"bytes,5,rep,name=options\"`\n}\n\n// FlexVolume represents a generic volume resource that is\n// provisioned/attached using an exec based plugin.\ntype FlexVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// secretRef is Optional: secretRef is reference to the secret object containing\n\t// sensitive information to pass to the plugin scripts. This may be\n\t// empty if no secret object is specified. If the secret object\n\t// contains more than one secret, all secrets are passed to the plugin\n\t// scripts.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// options is Optional: this field holds extra command options if any.\n\t// +optional\n\tOptions map[string]string `json:\"options,omitempty\" protobuf:\"bytes,5,rep,name=options\"`\n}\n\n// Represents a Persistent Disk resource in AWS.\n//\n// An AWS EBS disk must exist before mounting to a container. The disk\n// must also be in the same AWS zone as the kubelet. An AWS EBS disk\n// can only be mounted as read/write once. AWS EBS volumes support\n// ownership management and SELinux relabeling.\ntype AWSElasticBlockStoreVolumeSource struct {\n\t// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// partition is the partition in the volume that you want to mount.\n\t// If omitted, the default is to mount by volume name.\n\t// Examples: For volume /dev/sda1, you specify the partition as \"1\".\n\t// Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n\t// +optional\n\tPartition int32 `json:\"partition,omitempty\" protobuf:\"varint,3,opt,name=partition\"`\n\t// readOnly value true will force the readOnly setting in VolumeMounts.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n}\n\n// Represents a volume that is populated with the contents of a git repository.\n// Git repo volumes do not support ownership management.\n// Git repo volumes support SELinux relabeling.\n//\n// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n// into the Pod's container.\ntype GitRepoVolumeSource struct {\n\t// repository is the URL\n\tRepository string `json:\"repository\" protobuf:\"bytes,1,opt,name=repository\"`\n\t// revision is the commit hash for the specified revision.\n\t// +optional\n\tRevision string `json:\"revision,omitempty\" protobuf:\"bytes,2,opt,name=revision\"`\n\t// directory is the target directory name.\n\t// Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the\n\t// git repository.  Otherwise, if specified, the volume will contain the git repository in\n\t// the subdirectory with the given name.\n\t// +optional\n\tDirectory string `json:\"directory,omitempty\" protobuf:\"bytes,3,opt,name=directory\"`\n}\n\n// Adapts a Secret into a volume.\n//\n// The contents of the target Secret's Data field will be presented in a volume\n// as files using the keys in the Data field as the file names.\n// Secret volumes support ownership management and SELinux relabeling.\ntype SecretVolumeSource struct {\n\t// secretName is the name of the secret in the pod's namespace to use.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// items If unspecified, each key-value pair in the Data field of the referenced\n\t// Secret will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the Secret,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// defaultMode is Optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values\n\t// for mode bits. Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"bytes,3,opt,name=defaultMode\"`\n\t// optional field specify whether the Secret or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\nconst (\n\tSecretVolumeSourceDefaultMode int32 = 0644\n)\n\n// Adapts a secret into a projected volume.\n//\n// The contents of the target Secret's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names.\n// Note that this is identical to a secret volume source without the default\n// mode.\ntype SecretProjection struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// Secret will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the Secret,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// optional field specify whether the Secret or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\n// Represents an NFS mount that lasts the lifetime of a pod.\n// NFS volumes do not support ownership management or SELinux relabeling.\ntype NFSVolumeSource struct {\n\t// server is the hostname or IP address of the NFS server.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\tServer string `json:\"server\" protobuf:\"bytes,1,opt,name=server\"`\n\n\t// path that is exported by the NFS server.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the NFS export to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// Represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\ntype ISCSIVolumeSource struct {\n\t// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\tTargetPortal string `json:\"targetPortal\" protobuf:\"bytes,1,opt,name=targetPortal\"`\n\t// iqn is the target iSCSI Qualified Name.\n\tIQN string `json:\"iqn\" protobuf:\"bytes,2,opt,name=iqn\"`\n\t// lun represents iSCSI Target Lun number.\n\tLun int32 `json:\"lun\" protobuf:\"varint,3,opt,name=lun\"`\n\t// iscsiInterface is the interface Name that uses an iSCSI transport.\n\t// Defaults to 'default' (tcp).\n\t// +optional\n\tISCSIInterface string `json:\"iscsiInterface,omitempty\" protobuf:\"bytes,4,opt,name=iscsiInterface\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,5,opt,name=fsType\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n\t// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\t// +optional\n\tPortals []string `json:\"portals,omitempty\" protobuf:\"bytes,7,opt,name=portals\"`\n\t// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n\t// +optional\n\tDiscoveryCHAPAuth bool `json:\"chapAuthDiscovery,omitempty\" protobuf:\"varint,8,opt,name=chapAuthDiscovery\"`\n\t// chapAuthSession defines whether support iSCSI Session CHAP authentication\n\t// +optional\n\tSessionCHAPAuth bool `json:\"chapAuthSession,omitempty\" protobuf:\"varint,11,opt,name=chapAuthSession\"`\n\t// secretRef is the CHAP Secret for iSCSI target and initiator authentication\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,10,opt,name=secretRef\"`\n\t// initiatorName is the custom iSCSI Initiator Name.\n\t// If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n\t// <target portal>:<volume name> will be created for the connection.\n\t// +optional\n\tInitiatorName *string `json:\"initiatorName,omitempty\" protobuf:\"bytes,12,opt,name=initiatorName\"`\n}\n\n// ISCSIPersistentVolumeSource represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\ntype ISCSIPersistentVolumeSource struct {\n\t// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\tTargetPortal string `json:\"targetPortal\" protobuf:\"bytes,1,opt,name=targetPortal\"`\n\t// iqn is Target iSCSI Qualified Name.\n\tIQN string `json:\"iqn\" protobuf:\"bytes,2,opt,name=iqn\"`\n\t// lun is iSCSI Target Lun number.\n\tLun int32 `json:\"lun\" protobuf:\"varint,3,opt,name=lun\"`\n\t// iscsiInterface is the interface Name that uses an iSCSI transport.\n\t// Defaults to 'default' (tcp).\n\t// +optional\n\tISCSIInterface string `json:\"iscsiInterface,omitempty\" protobuf:\"bytes,4,opt,name=iscsiInterface\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,5,opt,name=fsType\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n\t// portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\t// +optional\n\tPortals []string `json:\"portals,omitempty\" protobuf:\"bytes,7,opt,name=portals\"`\n\t// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n\t// +optional\n\tDiscoveryCHAPAuth bool `json:\"chapAuthDiscovery,omitempty\" protobuf:\"varint,8,opt,name=chapAuthDiscovery\"`\n\t// chapAuthSession defines whether support iSCSI Session CHAP authentication\n\t// +optional\n\tSessionCHAPAuth bool `json:\"chapAuthSession,omitempty\" protobuf:\"varint,11,opt,name=chapAuthSession\"`\n\t// secretRef is the CHAP Secret for iSCSI target and initiator authentication\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,10,opt,name=secretRef\"`\n\t// initiatorName is the custom iSCSI Initiator Name.\n\t// If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n\t// <target portal>:<volume name> will be created for the connection.\n\t// +optional\n\tInitiatorName *string `json:\"initiatorName,omitempty\" protobuf:\"bytes,12,opt,name=initiatorName\"`\n}\n\n// Represents a Fibre Channel volume.\n// Fibre Channel volumes can only be mounted as read/write once.\n// Fibre Channel volumes support ownership management and SELinux relabeling.\ntype FCVolumeSource struct {\n\t// targetWWNs is Optional: FC target worldwide names (WWNs)\n\t// +optional\n\tTargetWWNs []string `json:\"targetWWNs,omitempty\" protobuf:\"bytes,1,rep,name=targetWWNs\"`\n\t// lun is Optional: FC target lun number\n\t// +optional\n\tLun *int32 `json:\"lun,omitempty\" protobuf:\"varint,2,opt,name=lun\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// wwids Optional: FC volume world wide identifiers (wwids)\n\t// Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\n\t// +optional\n\tWWIDs []string `json:\"wwids,omitempty\" protobuf:\"bytes,5,rep,name=wwids\"`\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\ntype AzureFileVolumeSource struct {\n\t// secretName is the  name of secret that contains Azure Storage Account Name and Key\n\tSecretName string `json:\"secretName\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// shareName is the azure share Name\n\tShareName string `json:\"shareName\" protobuf:\"bytes,2,opt,name=shareName\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\ntype AzureFilePersistentVolumeSource struct {\n\t// secretName is the name of secret that contains Azure Storage Account Name and Key\n\tSecretName string `json:\"secretName\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// shareName is the azure Share Name\n\tShareName string `json:\"shareName\" protobuf:\"bytes,2,opt,name=shareName\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key\n\t// default is the same as the Pod\n\t// +optional\n\tSecretNamespace *string `json:\"secretNamespace\" protobuf:\"bytes,4,opt,name=secretNamespace\"`\n}\n\n// Represents a vSphere volume resource.\ntype VsphereVirtualDiskVolumeSource struct {\n\t// volumePath is the path that identifies vSphere volume vmdk\n\tVolumePath string `json:\"volumePath\" protobuf:\"bytes,1,opt,name=volumePath\"`\n\t// fsType is filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// storagePolicyName is the storage Policy Based Management (SPBM) profile name.\n\t// +optional\n\tStoragePolicyName string `json:\"storagePolicyName,omitempty\" protobuf:\"bytes,3,opt,name=storagePolicyName\"`\n\t// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\n\t// +optional\n\tStoragePolicyID string `json:\"storagePolicyID,omitempty\" protobuf:\"bytes,4,opt,name=storagePolicyID\"`\n}\n\n// Represents a Photon Controller persistent disk resource.\ntype PhotonPersistentDiskVolumeSource struct {\n\t// pdID is the ID that identifies Photon Controller persistent disk\n\tPdID string `json:\"pdID\" protobuf:\"bytes,1,opt,name=pdID\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n}\n\n// +enum\ntype AzureDataDiskCachingMode string\n\n// +enum\ntype AzureDataDiskKind string\n\nconst (\n\tAzureDataDiskCachingNone      AzureDataDiskCachingMode = \"None\"\n\tAzureDataDiskCachingReadOnly  AzureDataDiskCachingMode = \"ReadOnly\"\n\tAzureDataDiskCachingReadWrite AzureDataDiskCachingMode = \"ReadWrite\"\n\n\tAzureSharedBlobDisk    AzureDataDiskKind = \"Shared\"\n\tAzureDedicatedBlobDisk AzureDataDiskKind = \"Dedicated\"\n\tAzureManagedDisk       AzureDataDiskKind = \"Managed\"\n)\n\n// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\ntype AzureDiskVolumeSource struct {\n\t// diskName is the Name of the data disk in the blob storage\n\tDiskName string `json:\"diskName\" protobuf:\"bytes,1,opt,name=diskName\"`\n\t// diskURI is the URI of data disk in the blob storage\n\tDataDiskURI string `json:\"diskURI\" protobuf:\"bytes,2,opt,name=diskURI\"`\n\t// cachingMode is the Host Caching mode: None, Read Only, Read Write.\n\t// +optional\n\tCachingMode *AzureDataDiskCachingMode `json:\"cachingMode,omitempty\" protobuf:\"bytes,3,opt,name=cachingMode,casttype=AzureDataDiskCachingMode\"`\n\t// fsType is Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,4,opt,name=fsType\"`\n\t// readOnly Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly *bool `json:\"readOnly,omitempty\" protobuf:\"varint,5,opt,name=readOnly\"`\n\t// kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\n\tKind *AzureDataDiskKind `json:\"kind,omitempty\" protobuf:\"bytes,6,opt,name=kind,casttype=AzureDataDiskKind\"`\n}\n\n// PortworxVolumeSource represents a Portworx volume resource.\ntype PortworxVolumeSource struct {\n\t// volumeID uniquely identifies a Portworx volume\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fSType represents the filesystem type to mount\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// ScaleIOVolumeSource represents a persistent ScaleIO volume\ntype ScaleIOVolumeSource struct {\n\t// gateway is the host address of the ScaleIO API Gateway.\n\tGateway string `json:\"gateway\" protobuf:\"bytes,1,opt,name=gateway\"`\n\t// system is the name of the storage system as configured in ScaleIO.\n\tSystem string `json:\"system\" protobuf:\"bytes,2,opt,name=system\"`\n\t// secretRef references to the secret for ScaleIO user and other\n\t// sensitive information. If this is not provided, Login operation will fail.\n\tSecretRef *LocalObjectReference `json:\"secretRef\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// sslEnabled Flag enable/disable SSL communication with Gateway, default false\n\t// +optional\n\tSSLEnabled bool `json:\"sslEnabled,omitempty\" protobuf:\"varint,4,opt,name=sslEnabled\"`\n\t// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n\t// +optional\n\tProtectionDomain string `json:\"protectionDomain,omitempty\" protobuf:\"bytes,5,opt,name=protectionDomain\"`\n\t// storagePool is the ScaleIO Storage Pool associated with the protection domain.\n\t// +optional\n\tStoragePool string `json:\"storagePool,omitempty\" protobuf:\"bytes,6,opt,name=storagePool\"`\n\t// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n\t// Default is ThinProvisioned.\n\t// +optional\n\tStorageMode string `json:\"storageMode,omitempty\" protobuf:\"bytes,7,opt,name=storageMode\"`\n\t// volumeName is the name of a volume already created in the ScaleIO system\n\t// that is associated with this volume source.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,8,opt,name=volumeName\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// Default is \"xfs\".\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,9,opt,name=fsType\"`\n\t// readOnly Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,10,opt,name=readOnly\"`\n}\n\n// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\ntype ScaleIOPersistentVolumeSource struct {\n\t// gateway is the host address of the ScaleIO API Gateway.\n\tGateway string `json:\"gateway\" protobuf:\"bytes,1,opt,name=gateway\"`\n\t// system is the name of the storage system as configured in ScaleIO.\n\tSystem string `json:\"system\" protobuf:\"bytes,2,opt,name=system\"`\n\t// secretRef references to the secret for ScaleIO user and other\n\t// sensitive information. If this is not provided, Login operation will fail.\n\tSecretRef *SecretReference `json:\"secretRef\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\n\t// +optional\n\tSSLEnabled bool `json:\"sslEnabled,omitempty\" protobuf:\"varint,4,opt,name=sslEnabled\"`\n\t// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n\t// +optional\n\tProtectionDomain string `json:\"protectionDomain,omitempty\" protobuf:\"bytes,5,opt,name=protectionDomain\"`\n\t// storagePool is the ScaleIO Storage Pool associated with the protection domain.\n\t// +optional\n\tStoragePool string `json:\"storagePool,omitempty\" protobuf:\"bytes,6,opt,name=storagePool\"`\n\t// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n\t// Default is ThinProvisioned.\n\t// +optional\n\tStorageMode string `json:\"storageMode,omitempty\" protobuf:\"bytes,7,opt,name=storageMode\"`\n\t// volumeName is the name of a volume already created in the ScaleIO system\n\t// that is associated with this volume source.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,8,opt,name=volumeName\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// Default is \"xfs\"\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,9,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,10,opt,name=readOnly\"`\n}\n\n// Represents a StorageOS persistent volume resource.\ntype StorageOSVolumeSource struct {\n\t// volumeName is the human-readable name of the StorageOS volume.  Volume\n\t// names are only unique within a namespace.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,1,opt,name=volumeName\"`\n\t// volumeNamespace specifies the scope of the volume within StorageOS.  If no\n\t// namespace is specified then the Pod's namespace will be used.  This allows the\n\t// Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n\t// Set VolumeName to any name to override the default behaviour.\n\t// Set to \"default\" if you are not using namespaces within StorageOS.\n\t// Namespaces that do not pre-exist within StorageOS will be created.\n\t// +optional\n\tVolumeNamespace string `json:\"volumeNamespace,omitempty\" protobuf:\"bytes,2,opt,name=volumeNamespace\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// secretRef specifies the secret to use for obtaining the StorageOS API\n\t// credentials.  If not specified, default values will be attempted.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n}\n\n// Represents a StorageOS persistent volume resource.\ntype StorageOSPersistentVolumeSource struct {\n\t// volumeName is the human-readable name of the StorageOS volume.  Volume\n\t// names are only unique within a namespace.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,1,opt,name=volumeName\"`\n\t// volumeNamespace specifies the scope of the volume within StorageOS.  If no\n\t// namespace is specified then the Pod's namespace will be used.  This allows the\n\t// Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n\t// Set VolumeName to any name to override the default behaviour.\n\t// Set to \"default\" if you are not using namespaces within StorageOS.\n\t// Namespaces that do not pre-exist within StorageOS will be created.\n\t// +optional\n\tVolumeNamespace string `json:\"volumeNamespace,omitempty\" protobuf:\"bytes,2,opt,name=volumeNamespace\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// secretRef specifies the secret to use for obtaining the StorageOS API\n\t// credentials.  If not specified, default values will be attempted.\n\t// +optional\n\tSecretRef *ObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n}\n\n// Adapts a ConfigMap into a volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// volume as files using the keys in the Data field as the file names, unless\n// the items element is populated with specific mappings of keys to paths.\n// ConfigMap volumes support ownership management and SELinux relabeling.\ntype ConfigMapVolumeSource struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// ConfigMap will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the ConfigMap,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// defaultMode is optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,3,opt,name=defaultMode\"`\n\t// optional specify whether the ConfigMap or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\nconst (\n\tConfigMapVolumeSourceDefaultMode int32 = 0644\n)\n\n// Adapts a ConfigMap into a projected volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names,\n// unless the items element is populated with specific mappings of keys to paths.\n// Note that this is identical to a configmap volume source without the default\n// mode.\ntype ConfigMapProjection struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// ConfigMap will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the ConfigMap,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// optional specify whether the ConfigMap or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\n// ServiceAccountTokenProjection represents a projected service account token\n// volume. This projection can be used to insert a service account token into\n// the pods runtime filesystem for use against APIs (Kubernetes API Server or\n// otherwise).\ntype ServiceAccountTokenProjection struct {\n\t// audience is the intended audience of the token. A recipient of a token\n\t// must identify itself with an identifier specified in the audience of the\n\t// token, and otherwise should reject the token. The audience defaults to the\n\t// identifier of the apiserver.\n\t// +optional\n\tAudience string `json:\"audience,omitempty\" protobuf:\"bytes,1,rep,name=audience\"`\n\t// expirationSeconds is the requested duration of validity of the service\n\t// account token. As the token approaches expiration, the kubelet volume\n\t// plugin will proactively rotate the service account token. The kubelet will\n\t// start trying to rotate the token if the token is older than 80 percent of\n\t// its time to live or if the token is older than 24 hours.Defaults to 1 hour\n\t// and must be at least 10 minutes.\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n\t// path is the path relative to the mount point of the file to project the\n\t// token into.\n\tPath string `json:\"path\" protobuf:\"bytes,3,opt,name=path\"`\n}\n\n// Represents a projected volume source\ntype ProjectedVolumeSource struct {\n\t// sources is the list of volume projections\n\t// +optional\n\tSources []VolumeProjection `json:\"sources\" protobuf:\"bytes,1,rep,name=sources\"`\n\t// defaultMode are the mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,2,opt,name=defaultMode\"`\n}\n\n// Projection that may be projected along with other supported volume types\ntype VolumeProjection struct {\n\t// all types below are the supported types for projection into the same volume\n\n\t// secret information about the secret data to project\n\t// +optional\n\tSecret *SecretProjection `json:\"secret,omitempty\" protobuf:\"bytes,1,opt,name=secret\"`\n\t// downwardAPI information about the downwardAPI data to project\n\t// +optional\n\tDownwardAPI *DownwardAPIProjection `json:\"downwardAPI,omitempty\" protobuf:\"bytes,2,opt,name=downwardAPI\"`\n\t// configMap information about the configMap data to project\n\t// +optional\n\tConfigMap *ConfigMapProjection `json:\"configMap,omitempty\" protobuf:\"bytes,3,opt,name=configMap\"`\n\t// serviceAccountToken is information about the serviceAccountToken data to project\n\t// +optional\n\tServiceAccountToken *ServiceAccountTokenProjection `json:\"serviceAccountToken,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccountToken\"`\n}\n\nconst (\n\tProjectedVolumeSourceDefaultMode int32 = 0644\n)\n\n// Maps a string key to a path within a volume.\ntype KeyToPath struct {\n\t// key is the key to project.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// path is the relative path of the file to map the key to.\n\t// May not be an absolute path.\n\t// May not contain the path element '..'.\n\t// May not start with the string '..'.\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\t// mode is Optional: mode bits used to set permissions on this file.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// If not specified, the volume defaultMode will be used.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tMode *int32 `json:\"mode,omitempty\" protobuf:\"varint,3,opt,name=mode\"`\n}\n\n// Local represents directly-attached storage with node affinity (Beta feature)\ntype LocalVolumeSource struct {\n\t// path of the full path to the volume on the node.\n\t// It can be either a directory or block device (disk, partition, ...).\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// fsType is the filesystem type to mount.\n\t// It applies only when the Path is a block device.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.\n\t// +optional\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n}\n\n// Represents storage that is managed by an external CSI volume driver (Beta feature)\ntype CSIPersistentVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\t// Required.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\n\t// volumeHandle is the unique volume name returned by the CSI volume\n\t// plugin’s CreateVolume to refer to the volume on all subsequent calls.\n\t// Required.\n\tVolumeHandle string `json:\"volumeHandle\" protobuf:\"bytes,2,opt,name=volumeHandle\"`\n\n\t// readOnly value to pass to ControllerPublishVolumeRequest.\n\t// Defaults to false (read/write).\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// fsType to mount. Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,4,opt,name=fsType\"`\n\n\t// volumeAttributes of the volume to publish.\n\t// +optional\n\tVolumeAttributes map[string]string `json:\"volumeAttributes,omitempty\" protobuf:\"bytes,5,rep,name=volumeAttributes\"`\n\n\t// controllerPublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// ControllerPublishVolume and ControllerUnpublishVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tControllerPublishSecretRef *SecretReference `json:\"controllerPublishSecretRef,omitempty\" protobuf:\"bytes,6,opt,name=controllerPublishSecretRef\"`\n\n\t// nodeStageSecretRef is a reference to the secret object containing sensitive\n\t// information to pass to the CSI driver to complete the CSI NodeStageVolume\n\t// and NodeStageVolume and NodeUnstageVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tNodeStageSecretRef *SecretReference `json:\"nodeStageSecretRef,omitempty\" protobuf:\"bytes,7,opt,name=nodeStageSecretRef\"`\n\n\t// nodePublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodePublishVolume and NodeUnpublishVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tNodePublishSecretRef *SecretReference `json:\"nodePublishSecretRef,omitempty\" protobuf:\"bytes,8,opt,name=nodePublishSecretRef\"`\n\n\t// controllerExpandSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// ControllerExpandVolume call.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tControllerExpandSecretRef *SecretReference `json:\"controllerExpandSecretRef,omitempty\" protobuf:\"bytes,9,opt,name=controllerExpandSecretRef\"`\n\n\t// nodeExpandSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodeExpandVolume call.\n\t// This is a beta field which is enabled default by CSINodeExpandSecret feature gate.\n\t// This field is optional, may be omitted if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +featureGate=CSINodeExpandSecret\n\t// +optional\n\tNodeExpandSecretRef *SecretReference `json:\"nodeExpandSecretRef,omitempty\" protobuf:\"bytes,10,opt,name=nodeExpandSecretRef\"`\n}\n\n// Represents a source location of a volume to mount, managed by an external CSI driver\ntype CSIVolumeSource struct {\n\t// driver is the name of the CSI driver that handles this volume.\n\t// Consult with your admin for the correct name as registered in the cluster.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\n\t// readOnly specifies a read-only configuration for the volume.\n\t// Defaults to false (read/write).\n\t// +optional\n\tReadOnly *bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n\n\t// fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// If not provided, the empty value is passed to the associated CSI driver\n\t// which will determine the default filesystem to apply.\n\t// +optional\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\n\t// volumeAttributes stores driver-specific properties that are passed to the CSI\n\t// driver. Consult your driver's documentation for supported values.\n\t// +optional\n\tVolumeAttributes map[string]string `json:\"volumeAttributes,omitempty\" protobuf:\"bytes,4,rep,name=volumeAttributes\"`\n\n\t// nodePublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodePublishVolume and NodeUnpublishVolume calls.\n\t// This field is optional, and  may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secret references are passed.\n\t// +optional\n\tNodePublishSecretRef *LocalObjectReference `json:\"nodePublishSecretRef,omitempty\" protobuf:\"bytes,5,opt,name=nodePublishSecretRef\"`\n}\n\n// Represents an ephemeral volume that is handled by a normal storage driver.\ntype EphemeralVolumeSource struct {\n\t// Will be used to create a stand-alone PVC to provision the volume.\n\t// The pod in which this EphemeralVolumeSource is embedded will be the\n\t// owner of the PVC, i.e. the PVC will be deleted together with the\n\t// pod.  The name of the PVC will be `<pod name>-<volume name>` where\n\t// `<volume name>` is the name from the `PodSpec.Volumes` array\n\t// entry. Pod validation will reject the pod if the concatenated name\n\t// is not valid for a PVC (for example, too long).\n\t//\n\t// An existing PVC with that name that is not owned by the pod\n\t// will *not* be used for the pod to avoid using an unrelated\n\t// volume by mistake. Starting the pod is then blocked until\n\t// the unrelated PVC is removed. If such a pre-created PVC is\n\t// meant to be used by the pod, the PVC has to updated with an\n\t// owner reference to the pod once the pod exists. Normally\n\t// this should not be necessary, but it may be useful when\n\t// manually reconstructing a broken cluster.\n\t//\n\t// This field is read-only and no changes will be made by Kubernetes\n\t// to the PVC after it has been created.\n\t//\n\t// Required, must not be nil.\n\tVolumeClaimTemplate *PersistentVolumeClaimTemplate `json:\"volumeClaimTemplate,omitempty\" protobuf:\"bytes,1,opt,name=volumeClaimTemplate\"`\n\n\t// ReadOnly is tombstoned to show why 2 is a reserved protobuf tag.\n\t// ReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n}\n\n// PersistentVolumeClaimTemplate is used to produce\n// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\ntype PersistentVolumeClaimTemplate struct {\n\t// May contain labels and annotations that will be copied into the PVC\n\t// when creating it. No other fields are allowed and will be rejected during\n\t// validation.\n\t//\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The specification for the PersistentVolumeClaim. The entire content is\n\t// copied unchanged into the PVC that gets created from this\n\t// template. The same fields as in a PersistentVolumeClaim\n\t// are also valid here.\n\tSpec PersistentVolumeClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// ContainerPort represents a network port in a single container.\ntype ContainerPort struct {\n\t// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\n\t// named port in a pod must have a unique name. Name for the port that can be\n\t// referred to by services.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Number of port to expose on the host.\n\t// If specified, this must be a valid port number, 0 < x < 65536.\n\t// If HostNetwork is specified, this must match ContainerPort.\n\t// Most containers do not need this.\n\t// +optional\n\tHostPort int32 `json:\"hostPort,omitempty\" protobuf:\"varint,2,opt,name=hostPort\"`\n\t// Number of port to expose on the pod's IP address.\n\t// This must be a valid port number, 0 < x < 65536.\n\tContainerPort int32 `json:\"containerPort\" protobuf:\"varint,3,opt,name=containerPort\"`\n\t// Protocol for port. Must be UDP, TCP, or SCTP.\n\t// Defaults to \"TCP\".\n\t// +optional\n\t// +default=\"TCP\"\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,4,opt,name=protocol,casttype=Protocol\"`\n\t// What host IP to bind the external port to.\n\t// +optional\n\tHostIP string `json:\"hostIP,omitempty\" protobuf:\"bytes,5,opt,name=hostIP\"`\n}\n\n// VolumeMount describes a mounting of a Volume within a container.\ntype VolumeMount struct {\n\t// This must match the Name of a Volume.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Mounted read-only if true, read-write otherwise (false or unspecified).\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n\t// Path within the container at which the volume should be mounted.  Must\n\t// not contain ':'.\n\tMountPath string `json:\"mountPath\" protobuf:\"bytes,3,opt,name=mountPath\"`\n\t// Path within the volume from which the container's volume should be mounted.\n\t// Defaults to \"\" (volume's root).\n\t// +optional\n\tSubPath string `json:\"subPath,omitempty\" protobuf:\"bytes,4,opt,name=subPath\"`\n\t// mountPropagation determines how mounts are propagated from the host\n\t// to container and the other way around.\n\t// When not set, MountPropagationNone is used.\n\t// This field is beta in 1.10.\n\t// +optional\n\tMountPropagation *MountPropagationMode `json:\"mountPropagation,omitempty\" protobuf:\"bytes,5,opt,name=mountPropagation,casttype=MountPropagationMode\"`\n\t// Expanded path within the volume from which the container's volume should be mounted.\n\t// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\n\t// Defaults to \"\" (volume's root).\n\t// SubPathExpr and SubPath are mutually exclusive.\n\t// +optional\n\tSubPathExpr string `json:\"subPathExpr,omitempty\" protobuf:\"bytes,6,opt,name=subPathExpr\"`\n}\n\n// MountPropagationMode describes mount propagation.\n// +enum\ntype MountPropagationMode string\n\nconst (\n\t// MountPropagationNone means that the volume in a container will\n\t// not receive new mounts from the host or other containers, and filesystems\n\t// mounted inside the container won't be propagated to the host or other\n\t// containers.\n\t// Note that this mode corresponds to \"private\" in Linux terminology.\n\tMountPropagationNone MountPropagationMode = \"None\"\n\t// MountPropagationHostToContainer means that the volume in a container will\n\t// receive new mounts from the host or other containers, but filesystems\n\t// mounted inside the container won't be propagated to the host or other\n\t// containers.\n\t// Note that this mode is recursively applied to all mounts in the volume\n\t// (\"rslave\" in Linux terminology).\n\tMountPropagationHostToContainer MountPropagationMode = \"HostToContainer\"\n\t// MountPropagationBidirectional means that the volume in a container will\n\t// receive new mounts from the host or other containers, and its own mounts\n\t// will be propagated from the container to the host or other containers.\n\t// Note that this mode is recursively applied to all mounts in the volume\n\t// (\"rshared\" in Linux terminology).\n\tMountPropagationBidirectional MountPropagationMode = \"Bidirectional\"\n)\n\n// volumeDevice describes a mapping of a raw block device within a container.\ntype VolumeDevice struct {\n\t// name must match the name of a persistentVolumeClaim in the pod\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// devicePath is the path inside of the container that the device will be mapped to.\n\tDevicePath string `json:\"devicePath\" protobuf:\"bytes,2,opt,name=devicePath\"`\n}\n\n// EnvVar represents an environment variable present in a Container.\ntype EnvVar struct {\n\t// Name of the environment variable. Must be a C_IDENTIFIER.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Optional: no more than one of the following may be specified.\n\n\t// Variable references $(VAR_NAME) are expanded\n\t// using the previously defined environment variables in the container and\n\t// any service environment variables. If a variable cannot be resolved,\n\t// the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\n\t// \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\".\n\t// Escaped references will never be expanded, regardless of whether the variable\n\t// exists or not.\n\t// Defaults to \"\".\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\t// Source for the environment variable's value. Cannot be used if value is not empty.\n\t// +optional\n\tValueFrom *EnvVarSource `json:\"valueFrom,omitempty\" protobuf:\"bytes,3,opt,name=valueFrom\"`\n}\n\n// EnvVarSource represents a source for the value of an EnvVar.\ntype EnvVarSource struct {\n\t// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,\n\t// spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\n\t// +optional\n\tFieldRef *ObjectFieldSelector `json:\"fieldRef,omitempty\" protobuf:\"bytes,1,opt,name=fieldRef\"`\n\t// Selects a resource of the container: only resources limits and requests\n\t// (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\n\t// +optional\n\tResourceFieldRef *ResourceFieldSelector `json:\"resourceFieldRef,omitempty\" protobuf:\"bytes,2,opt,name=resourceFieldRef\"`\n\t// Selects a key of a ConfigMap.\n\t// +optional\n\tConfigMapKeyRef *ConfigMapKeySelector `json:\"configMapKeyRef,omitempty\" protobuf:\"bytes,3,opt,name=configMapKeyRef\"`\n\t// Selects a key of a secret in the pod's namespace\n\t// +optional\n\tSecretKeyRef *SecretKeySelector `json:\"secretKeyRef,omitempty\" protobuf:\"bytes,4,opt,name=secretKeyRef\"`\n}\n\n// ObjectFieldSelector selects an APIVersioned field of an object.\n// +structType=atomic\ntype ObjectFieldSelector struct {\n\t// Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,opt,name=apiVersion\"`\n\t// Path of the field to select in the specified API version.\n\tFieldPath string `json:\"fieldPath\" protobuf:\"bytes,2,opt,name=fieldPath\"`\n}\n\n// ResourceFieldSelector represents container resources (cpu, memory) and their output format\n// +structType=atomic\ntype ResourceFieldSelector struct {\n\t// Container name: required for volumes, optional for env vars\n\t// +optional\n\tContainerName string `json:\"containerName,omitempty\" protobuf:\"bytes,1,opt,name=containerName\"`\n\t// Required: resource to select\n\tResource string `json:\"resource\" protobuf:\"bytes,2,opt,name=resource\"`\n\t// Specifies the output format of the exposed resources, defaults to \"1\"\n\t// +optional\n\tDivisor resource.Quantity `json:\"divisor,omitempty\" protobuf:\"bytes,3,opt,name=divisor\"`\n}\n\n// Selects a key from a ConfigMap.\n// +structType=atomic\ntype ConfigMapKeySelector struct {\n\t// The ConfigMap to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// The key to select.\n\tKey string `json:\"key\" protobuf:\"bytes,2,opt,name=key\"`\n\t// Specify whether the ConfigMap or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,3,opt,name=optional\"`\n}\n\n// SecretKeySelector selects a key of a Secret.\n// +structType=atomic\ntype SecretKeySelector struct {\n\t// The name of the secret in the pod's namespace to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// The key of the secret to select from.  Must be a valid secret key.\n\tKey string `json:\"key\" protobuf:\"bytes,2,opt,name=key\"`\n\t// Specify whether the Secret or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,3,opt,name=optional\"`\n}\n\n// EnvFromSource represents the source of a set of ConfigMaps\ntype EnvFromSource struct {\n\t// An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\n\t// +optional\n\tPrefix string `json:\"prefix,omitempty\" protobuf:\"bytes,1,opt,name=prefix\"`\n\t// The ConfigMap to select from\n\t// +optional\n\tConfigMapRef *ConfigMapEnvSource `json:\"configMapRef,omitempty\" protobuf:\"bytes,2,opt,name=configMapRef\"`\n\t// The Secret to select from\n\t// +optional\n\tSecretRef *SecretEnvSource `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n}\n\n// ConfigMapEnvSource selects a ConfigMap to populate the environment\n// variables with.\n//\n// The contents of the target ConfigMap's Data field will represent the\n// key-value pairs as environment variables.\ntype ConfigMapEnvSource struct {\n\t// The ConfigMap to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// Specify whether the ConfigMap must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,2,opt,name=optional\"`\n}\n\n// SecretEnvSource selects a Secret to populate the environment\n// variables with.\n//\n// The contents of the target Secret's Data field will represent the\n// key-value pairs as environment variables.\ntype SecretEnvSource struct {\n\t// The Secret to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// Specify whether the Secret must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,2,opt,name=optional\"`\n}\n\n// HTTPHeader describes a custom header to be used in HTTP probes\ntype HTTPHeader struct {\n\t// The header field name.\n\t// This will be canonicalized upon output, so case-variant names will be understood as the same header.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The header field value\n\tValue string `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\n// HTTPGetAction describes an action based on HTTP Get requests.\ntype HTTPGetAction struct {\n\t// Path to access on the HTTP server.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Name or number of the port to access on the container.\n\t// Number must be in the range 1 to 65535.\n\t// Name must be an IANA_SVC_NAME.\n\tPort intstr.IntOrString `json:\"port\" protobuf:\"bytes,2,opt,name=port\"`\n\t// Host name to connect to, defaults to the pod IP. You probably want to set\n\t// \"Host\" in httpHeaders instead.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,3,opt,name=host\"`\n\t// Scheme to use for connecting to the host.\n\t// Defaults to HTTP.\n\t// +optional\n\tScheme URIScheme `json:\"scheme,omitempty\" protobuf:\"bytes,4,opt,name=scheme,casttype=URIScheme\"`\n\t// Custom headers to set in the request. HTTP allows repeated headers.\n\t// +optional\n\tHTTPHeaders []HTTPHeader `json:\"httpHeaders,omitempty\" protobuf:\"bytes,5,rep,name=httpHeaders\"`\n}\n\n// URIScheme identifies the scheme used for connection to a host for Get actions\n// +enum\ntype URIScheme string\n\nconst (\n\t// URISchemeHTTP means that the scheme used will be http://\n\tURISchemeHTTP URIScheme = \"HTTP\"\n\t// URISchemeHTTPS means that the scheme used will be https://\n\tURISchemeHTTPS URIScheme = \"HTTPS\"\n)\n\n// TCPSocketAction describes an action based on opening a socket\ntype TCPSocketAction struct {\n\t// Number or name of the port to access on the container.\n\t// Number must be in the range 1 to 65535.\n\t// Name must be an IANA_SVC_NAME.\n\tPort intstr.IntOrString `json:\"port\" protobuf:\"bytes,1,opt,name=port\"`\n\t// Optional: Host name to connect to, defaults to the pod IP.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,2,opt,name=host\"`\n}\n\ntype GRPCAction struct {\n\t// Port number of the gRPC service. Number must be in the range 1 to 65535.\n\tPort int32 `json:\"port\" protobuf:\"bytes,1,opt,name=port\"`\n\n\t// Service is the name of the service to place in the gRPC HealthCheckRequest\n\t// (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\t//\n\t// If this is not specified, the default behavior is defined by gRPC.\n\t// +optional\n\t// +default=\"\"\n\tService *string `json:\"service\" protobuf:\"bytes,2,opt,name=service\"`\n}\n\n// ExecAction describes a \"run in container\" action.\ntype ExecAction struct {\n\t// Command is the command line to execute inside the container, the working directory for the\n\t// command  is root ('/') in the container's filesystem. The command is simply exec'd, it is\n\t// not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\n\t// a shell, you need to explicitly call out to that shell.\n\t// Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\n\t// +optional\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,1,rep,name=command\"`\n}\n\n// Probe describes a health check to be performed against a container to determine whether it is\n// alive or ready to receive traffic.\ntype Probe struct {\n\t// The action taken to determine the health of a container\n\tProbeHandler `json:\",inline\" protobuf:\"bytes,1,opt,name=handler\"`\n\t// Number of seconds after the container has started before liveness probes are initiated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tInitialDelaySeconds int32 `json:\"initialDelaySeconds,omitempty\" protobuf:\"varint,2,opt,name=initialDelaySeconds\"`\n\t// Number of seconds after which the probe times out.\n\t// Defaults to 1 second. Minimum value is 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tTimeoutSeconds int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,3,opt,name=timeoutSeconds\"`\n\t// How often (in seconds) to perform the probe.\n\t// Default to 10 seconds. Minimum value is 1.\n\t// +optional\n\tPeriodSeconds int32 `json:\"periodSeconds,omitempty\" protobuf:\"varint,4,opt,name=periodSeconds\"`\n\t// Minimum consecutive successes for the probe to be considered successful after having failed.\n\t// Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\n\t// +optional\n\tSuccessThreshold int32 `json:\"successThreshold,omitempty\" protobuf:\"varint,5,opt,name=successThreshold\"`\n\t// Minimum consecutive failures for the probe to be considered failed after having succeeded.\n\t// Defaults to 3. Minimum value is 1.\n\t// +optional\n\tFailureThreshold int32 `json:\"failureThreshold,omitempty\" protobuf:\"varint,6,opt,name=failureThreshold\"`\n\t// Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\n\t// The grace period is the duration in seconds after the processes running in the pod are sent\n\t// a termination signal and the time when the processes are forcibly halted with a kill signal.\n\t// Set this value longer than the expected cleanup time for your process.\n\t// If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\n\t// value overrides the value provided by the pod spec.\n\t// Value must be non-negative integer. The value zero indicates stop immediately via\n\t// the kill signal (no opportunity to shut down).\n\t// This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\n\t// Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\n\t// +optional\n\tTerminationGracePeriodSeconds *int64 `json:\"terminationGracePeriodSeconds,omitempty\" protobuf:\"varint,7,opt,name=terminationGracePeriodSeconds\"`\n}\n\n// PullPolicy describes a policy for if/when to pull a container image\n// +enum\ntype PullPolicy string\n\nconst (\n\t// PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n\tPullAlways PullPolicy = \"Always\"\n\t// PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\n\tPullNever PullPolicy = \"Never\"\n\t// PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n\tPullIfNotPresent PullPolicy = \"IfNotPresent\"\n)\n\n// ResourceResizeRestartPolicy specifies how to handle container resource resize.\ntype ResourceResizeRestartPolicy string\n\n// These are the valid resource resize restart policy values:\nconst (\n\t// 'NotRequired' means Kubernetes will try to resize the container\n\t// without restarting it, if possible. Kubernetes may however choose to\n\t// restart the container if it is unable to actuate resize without a\n\t// restart. For e.g. the runtime doesn't support restart-free resizing.\n\tNotRequired ResourceResizeRestartPolicy = \"NotRequired\"\n\t// 'RestartContainer' means Kubernetes will resize the container in-place\n\t// by stopping and starting the container when new resources are applied.\n\t// This is needed for legacy applications. For e.g. java apps using the\n\t// -xmxN flag which are unable to use resized memory without restarting.\n\tRestartContainer ResourceResizeRestartPolicy = \"RestartContainer\"\n)\n\n// ContainerResizePolicy represents resource resize policy for the container.\ntype ContainerResizePolicy struct {\n\t// Name of the resource to which this resource resize policy applies.\n\t// Supported values: cpu, memory.\n\tResourceName ResourceName `json:\"resourceName\" protobuf:\"bytes,1,opt,name=resourceName,casttype=ResourceName\"`\n\t// Restart policy to apply when specified resource is resized.\n\t// If not specified, it defaults to NotRequired.\n\tRestartPolicy ResourceResizeRestartPolicy `json:\"restartPolicy\" protobuf:\"bytes,2,opt,name=restartPolicy,casttype=ResourceResizeRestartPolicy\"`\n}\n\n// PreemptionPolicy describes a policy for if/when to preempt a pod.\n// +enum\ntype PreemptionPolicy string\n\nconst (\n\t// PreemptLowerPriority means that pod can preempt other pods with lower priority.\n\tPreemptLowerPriority PreemptionPolicy = \"PreemptLowerPriority\"\n\t// PreemptNever means that pod never preempts other pods with lower priority.\n\tPreemptNever PreemptionPolicy = \"Never\"\n)\n\n// TerminationMessagePolicy describes how termination messages are retrieved from a container.\n// +enum\ntype TerminationMessagePolicy string\n\nconst (\n\t// TerminationMessageReadFile is the default behavior and will set the container status message to\n\t// the contents of the container's terminationMessagePath when the container exits.\n\tTerminationMessageReadFile TerminationMessagePolicy = \"File\"\n\t// TerminationMessageFallbackToLogsOnError will read the most recent contents of the container logs\n\t// for the container status message when the container exits with an error and the\n\t// terminationMessagePath has no contents.\n\tTerminationMessageFallbackToLogsOnError TerminationMessagePolicy = \"FallbackToLogsOnError\"\n)\n\n// Capability represent POSIX capabilities type\ntype Capability string\n\n// Adds and removes POSIX capabilities from running containers.\ntype Capabilities struct {\n\t// Added capabilities\n\t// +optional\n\tAdd []Capability `json:\"add,omitempty\" protobuf:\"bytes,1,rep,name=add,casttype=Capability\"`\n\t// Removed capabilities\n\t// +optional\n\tDrop []Capability `json:\"drop,omitempty\" protobuf:\"bytes,2,rep,name=drop,casttype=Capability\"`\n}\n\n// ResourceRequirements describes the compute resource requirements.\ntype ResourceRequirements struct {\n\t// Limits describes the maximum amount of compute resources allowed.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tLimits ResourceList `json:\"limits,omitempty\" protobuf:\"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName\"`\n\t// Requests describes the minimum amount of compute resources required.\n\t// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n\t// otherwise to an implementation-defined value. Requests cannot exceed Limits.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tRequests ResourceList `json:\"requests,omitempty\" protobuf:\"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName\"`\n\t// Claims lists the names of resources, defined in spec.resourceClaims,\n\t// that are used by this container.\n\t//\n\t// This is an alpha field and requires enabling the\n\t// DynamicResourceAllocation feature gate.\n\t//\n\t// This field is immutable. It can only be set for containers.\n\t//\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=DynamicResourceAllocation\n\t// +optional\n\tClaims []ResourceClaim `json:\"claims,omitempty\" protobuf:\"bytes,3,opt,name=claims\"`\n}\n\n// ResourceClaim references one entry in PodSpec.ResourceClaims.\ntype ResourceClaim struct {\n\t// Name must match the name of one entry in pod.spec.resourceClaims of\n\t// the Pod where this field is used. It makes that resource available\n\t// inside a container.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\nconst (\n\t// TerminationMessagePathDefault means the default path to capture the application termination message running in a container\n\tTerminationMessagePathDefault string = \"/dev/termination-log\"\n)\n\n// A single application container that you want to run within a pod.\ntype Container struct {\n\t// Name of the container specified as a DNS_LABEL.\n\t// Each container in a pod must have a unique name (DNS_LABEL).\n\t// Cannot be updated.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Container image name.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images\n\t// This field is optional to allow higher level config management to default or override\n\t// container images in workload controllers like Deployments and StatefulSets.\n\t// +optional\n\tImage string `json:\"image,omitempty\" protobuf:\"bytes,2,opt,name=image\"`\n\t// Entrypoint array. Not executed within a shell.\n\t// The container image's ENTRYPOINT is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,3,rep,name=command\"`\n\t// Arguments to the entrypoint.\n\t// The container image's CMD is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\tArgs []string `json:\"args,omitempty\" protobuf:\"bytes,4,rep,name=args\"`\n\t// Container's working directory.\n\t// If not specified, the container runtime's default will be used, which\n\t// might be configured in the container image.\n\t// Cannot be updated.\n\t// +optional\n\tWorkingDir string `json:\"workingDir,omitempty\" protobuf:\"bytes,5,opt,name=workingDir\"`\n\t// List of ports to expose from the container. Not specifying a port here\n\t// DOES NOT prevent that port from being exposed. Any port which is\n\t// listening on the default \"0.0.0.0\" address inside a container will be\n\t// accessible from the network.\n\t// Modifying this array with strategic merge patch may corrupt the data.\n\t// For more information See https://github.com/kubernetes/kubernetes/issues/108255.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=containerPort\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=containerPort\n\t// +listMapKey=protocol\n\tPorts []ContainerPort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"containerPort\" protobuf:\"bytes,6,rep,name=ports\"`\n\t// List of sources to populate environment variables in the container.\n\t// The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n\t// will be reported as an event when the container is starting. When a key exists in multiple\n\t// sources, the value associated with the last source will take precedence.\n\t// Values defined by an Env with a duplicate key will take precedence.\n\t// Cannot be updated.\n\t// +optional\n\tEnvFrom []EnvFromSource `json:\"envFrom,omitempty\" protobuf:\"bytes,19,rep,name=envFrom\"`\n\t// List of environment variables to set in the container.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tEnv []EnvVar `json:\"env,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=env\"`\n\t// Compute Resources required by this container.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tResources ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,8,opt,name=resources\"`\n\t// Resources resize policy for the container.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\t// +listType=atomic\n\tResizePolicy []ContainerResizePolicy `json:\"resizePolicy,omitempty\" protobuf:\"bytes,23,rep,name=resizePolicy\"`\n\t// Pod volumes to mount into the container's filesystem.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=mountPath\n\t// +patchStrategy=merge\n\tVolumeMounts []VolumeMount `json:\"volumeMounts,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"mountPath\" protobuf:\"bytes,9,rep,name=volumeMounts\"`\n\t// volumeDevices is the list of block devices to be used by the container.\n\t// +patchMergeKey=devicePath\n\t// +patchStrategy=merge\n\t// +optional\n\tVolumeDevices []VolumeDevice `json:\"volumeDevices,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"devicePath\" protobuf:\"bytes,21,rep,name=volumeDevices\"`\n\t// Periodic probe of container liveness.\n\t// Container will be restarted if the probe fails.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tLivenessProbe *Probe `json:\"livenessProbe,omitempty\" protobuf:\"bytes,10,opt,name=livenessProbe\"`\n\t// Periodic probe of container service readiness.\n\t// Container will be removed from service endpoints if the probe fails.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tReadinessProbe *Probe `json:\"readinessProbe,omitempty\" protobuf:\"bytes,11,opt,name=readinessProbe\"`\n\t// StartupProbe indicates that the Pod has successfully initialized.\n\t// If specified, no other probes are executed until this completes successfully.\n\t// If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\n\t// This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\n\t// when it might take a long time to load data or warm a cache, than during steady-state operation.\n\t// This cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tStartupProbe *Probe `json:\"startupProbe,omitempty\" protobuf:\"bytes,22,opt,name=startupProbe\"`\n\t// Actions that the management system should take in response to container lifecycle events.\n\t// Cannot be updated.\n\t// +optional\n\tLifecycle *Lifecycle `json:\"lifecycle,omitempty\" protobuf:\"bytes,12,opt,name=lifecycle\"`\n\t// Optional: Path at which the file to which the container's termination message\n\t// will be written is mounted into the container's filesystem.\n\t// Message written is intended to be brief final status, such as an assertion failure message.\n\t// Will be truncated by the node if greater than 4096 bytes. The total message length across\n\t// all containers will be limited to 12kb.\n\t// Defaults to /dev/termination-log.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePath string `json:\"terminationMessagePath,omitempty\" protobuf:\"bytes,13,opt,name=terminationMessagePath\"`\n\t// Indicate how the termination message should be populated. File will use the contents of\n\t// terminationMessagePath to populate the container status message on both success and failure.\n\t// FallbackToLogsOnError will use the last chunk of container log output if the termination\n\t// message file is empty and the container exited with an error.\n\t// The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n\t// Defaults to File.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePolicy TerminationMessagePolicy `json:\"terminationMessagePolicy,omitempty\" protobuf:\"bytes,20,opt,name=terminationMessagePolicy,casttype=TerminationMessagePolicy\"`\n\t// Image pull policy.\n\t// One of Always, Never, IfNotPresent.\n\t// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\t// +optional\n\tImagePullPolicy PullPolicy `json:\"imagePullPolicy,omitempty\" protobuf:\"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy\"`\n\t// SecurityContext defines the security options the container should be run with.\n\t// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n\t// +optional\n\tSecurityContext *SecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,15,opt,name=securityContext\"`\n\n\t// Variables for interactive containers, these have very specialized use-cases (e.g. debugging)\n\t// and shouldn't be used for general purpose containers.\n\n\t// Whether this container should allocate a buffer for stdin in the container runtime. If this\n\t// is not set, reads from stdin in the container will always result in EOF.\n\t// Default is false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,16,opt,name=stdin\"`\n\t// Whether the container runtime should close the stdin channel after it has been opened by\n\t// a single attach. When stdin is true the stdin stream will remain open across multiple attach\n\t// sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n\t// first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n\t// at which time stdin is closed and remains closed until the container is restarted. If this\n\t// flag is false, a container processes that reads from stdin will never receive an EOF.\n\t// Default is false\n\t// +optional\n\tStdinOnce bool `json:\"stdinOnce,omitempty\" protobuf:\"varint,17,opt,name=stdinOnce\"`\n\t// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n\t// Default is false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,18,opt,name=tty\"`\n}\n\n// ProbeHandler defines a specific action that should be taken in a probe.\n// One and only one of the fields must be specified.\ntype ProbeHandler struct {\n\t// Exec specifies the action to take.\n\t// +optional\n\tExec *ExecAction `json:\"exec,omitempty\" protobuf:\"bytes,1,opt,name=exec\"`\n\t// HTTPGet specifies the http request to perform.\n\t// +optional\n\tHTTPGet *HTTPGetAction `json:\"httpGet,omitempty\" protobuf:\"bytes,2,opt,name=httpGet\"`\n\t// TCPSocket specifies an action involving a TCP port.\n\t// +optional\n\tTCPSocket *TCPSocketAction `json:\"tcpSocket,omitempty\" protobuf:\"bytes,3,opt,name=tcpSocket\"`\n\n\t// GRPC specifies an action involving a GRPC port.\n\t// +optional\n\tGRPC *GRPCAction `json:\"grpc,omitempty\" protobuf:\"bytes,4,opt,name=grpc\"`\n}\n\n// LifecycleHandler defines a specific action that should be taken in a lifecycle\n// hook. One and only one of the fields, except TCPSocket must be specified.\ntype LifecycleHandler struct {\n\t// Exec specifies the action to take.\n\t// +optional\n\tExec *ExecAction `json:\"exec,omitempty\" protobuf:\"bytes,1,opt,name=exec\"`\n\t// HTTPGet specifies the http request to perform.\n\t// +optional\n\tHTTPGet *HTTPGetAction `json:\"httpGet,omitempty\" protobuf:\"bytes,2,opt,name=httpGet\"`\n\t// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\n\t// for the backward compatibility. There are no validation of this field and\n\t// lifecycle hooks will fail in runtime when tcp handler is specified.\n\t// +optional\n\tTCPSocket *TCPSocketAction `json:\"tcpSocket,omitempty\" protobuf:\"bytes,3,opt,name=tcpSocket\"`\n}\n\n// Lifecycle describes actions that the management system should take in response to container lifecycle\n// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks\n// until the action is complete, unless the container process fails, in which case the handler is aborted.\ntype Lifecycle struct {\n\t// PostStart is called immediately after a container is created. If the handler fails,\n\t// the container is terminated and restarted according to its restart policy.\n\t// Other management of the container blocks until the hook completes.\n\t// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n\t// +optional\n\tPostStart *LifecycleHandler `json:\"postStart,omitempty\" protobuf:\"bytes,1,opt,name=postStart\"`\n\t// PreStop is called immediately before a container is terminated due to an\n\t// API request or management event such as liveness/startup probe failure,\n\t// preemption, resource contention, etc. The handler is not called if the\n\t// container crashes or exits. The Pod's termination grace period countdown begins before the\n\t// PreStop hook is executed. Regardless of the outcome of the handler, the\n\t// container will eventually terminate within the Pod's termination grace\n\t// period (unless delayed by finalizers). Other management of the container blocks until the hook completes\n\t// or until the termination grace period is reached.\n\t// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n\t// +optional\n\tPreStop *LifecycleHandler `json:\"preStop,omitempty\" protobuf:\"bytes,2,opt,name=preStop\"`\n}\n\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// ContainerStateWaiting is a waiting state of a container.\ntype ContainerStateWaiting struct {\n\t// (brief) reason the container is not yet running.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,1,opt,name=reason\"`\n\t// Message regarding why the container is not yet running.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// ContainerStateRunning is a running state of a container.\ntype ContainerStateRunning struct {\n\t// Time at which the container was last (re-)started\n\t// +optional\n\tStartedAt metav1.Time `json:\"startedAt,omitempty\" protobuf:\"bytes,1,opt,name=startedAt\"`\n}\n\n// ContainerStateTerminated is a terminated state of a container.\ntype ContainerStateTerminated struct {\n\t// Exit status from the last termination of the container\n\tExitCode int32 `json:\"exitCode\" protobuf:\"varint,1,opt,name=exitCode\"`\n\t// Signal from the last termination of the container\n\t// +optional\n\tSignal int32 `json:\"signal,omitempty\" protobuf:\"varint,2,opt,name=signal\"`\n\t// (brief) reason from the last termination of the container\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// Message regarding the last termination of the container\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n\t// Time at which previous execution of the container started\n\t// +optional\n\tStartedAt metav1.Time `json:\"startedAt,omitempty\" protobuf:\"bytes,5,opt,name=startedAt\"`\n\t// Time at which the container last terminated\n\t// +optional\n\tFinishedAt metav1.Time `json:\"finishedAt,omitempty\" protobuf:\"bytes,6,opt,name=finishedAt\"`\n\t// Container's ID in the format '<type>://<container_id>'\n\t// +optional\n\tContainerID string `json:\"containerID,omitempty\" protobuf:\"bytes,7,opt,name=containerID\"`\n}\n\n// ContainerState holds a possible state of container.\n// Only one of its members may be specified.\n// If none of them is specified, the default one is ContainerStateWaiting.\ntype ContainerState struct {\n\t// Details about a waiting container\n\t// +optional\n\tWaiting *ContainerStateWaiting `json:\"waiting,omitempty\" protobuf:\"bytes,1,opt,name=waiting\"`\n\t// Details about a running container\n\t// +optional\n\tRunning *ContainerStateRunning `json:\"running,omitempty\" protobuf:\"bytes,2,opt,name=running\"`\n\t// Details about a terminated container\n\t// +optional\n\tTerminated *ContainerStateTerminated `json:\"terminated,omitempty\" protobuf:\"bytes,3,opt,name=terminated\"`\n}\n\n// ContainerStatus contains details for the current status of this container.\ntype ContainerStatus struct {\n\t// Name is a DNS_LABEL representing the unique name of the container.\n\t// Each container in a pod must have a unique name across all container types.\n\t// Cannot be updated.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// State holds details about the container's current condition.\n\t// +optional\n\tState ContainerState `json:\"state,omitempty\" protobuf:\"bytes,2,opt,name=state\"`\n\t// LastTerminationState holds the last termination state of the container to\n\t// help debug container crashes and restarts. This field is not\n\t// populated if the container is still running and RestartCount is 0.\n\t// +optional\n\tLastTerminationState ContainerState `json:\"lastState,omitempty\" protobuf:\"bytes,3,opt,name=lastState\"`\n\t// Ready specifies whether the container is currently passing its readiness check.\n\t// The value will change as readiness probes keep executing. If no readiness\n\t// probes are specified, this field defaults to true once the container is\n\t// fully started (see Started field).\n\t//\n\t// The value is typically used to determine whether a container is ready to\n\t// accept traffic.\n\tReady bool `json:\"ready\" protobuf:\"varint,4,opt,name=ready\"`\n\t// RestartCount holds the number of times the container has been restarted.\n\t// Kubelet makes an effort to always increment the value, but there\n\t// are cases when the state may be lost due to node restarts and then the value\n\t// may be reset to 0. The value is never negative.\n\tRestartCount int32 `json:\"restartCount\" protobuf:\"varint,5,opt,name=restartCount\"`\n\t// Image is the name of container image that the container is running.\n\t// The container image may not match the image used in the PodSpec,\n\t// as it may have been resolved by the runtime.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images.\n\tImage string `json:\"image\" protobuf:\"bytes,6,opt,name=image\"`\n\t// ImageID is the image ID of the container's image. The image ID may not\n\t// match the image ID of the image used in the PodSpec, as it may have been\n\t// resolved by the runtime.\n\tImageID string `json:\"imageID\" protobuf:\"bytes,7,opt,name=imageID\"`\n\t// ContainerID is the ID of the container in the format '<type>://<container_id>'.\n\t// Where type is a container runtime identifier, returned from Version call of CRI API\n\t// (for example \"containerd\").\n\t// +optional\n\tContainerID string `json:\"containerID,omitempty\" protobuf:\"bytes,8,opt,name=containerID\"`\n\t// Started indicates whether the container has finished its postStart lifecycle hook\n\t// and passed its startup probe.\n\t// Initialized as false, becomes true after startupProbe is considered\n\t// successful. Resets to false when the container is restarted, or if kubelet\n\t// loses state temporarily. In both cases, startup probes will run again.\n\t// Is always true when no startupProbe is defined and container is running and\n\t// has passed the postStart lifecycle hook. The null value must be treated the\n\t// same as false.\n\t// +optional\n\tStarted *bool `json:\"started,omitempty\" protobuf:\"varint,9,opt,name=started\"`\n\t// AllocatedResources represents the compute resources allocated for this container by the\n\t// node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission\n\t// and after successfully admitting desired pod resize.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\tAllocatedResources ResourceList `json:\"allocatedResources,omitempty\" protobuf:\"bytes,10,rep,name=allocatedResources,casttype=ResourceList,castkey=ResourceName\"`\n\t// Resources represents the compute resource requests and limits that have been successfully\n\t// enacted on the running container after it has been started or has been successfully resized.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\tResources *ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,11,opt,name=resources\"`\n}\n\n// PodPhase is a label for the condition of a pod at the current time.\n// +enum\ntype PodPhase string\n\n// These are the valid statuses of pods.\nconst (\n\t// PodPending means the pod has been accepted by the system, but one or more of the containers\n\t// has not been started. This includes time before being bound to a node, as well as time spent\n\t// pulling images onto the host.\n\tPodPending PodPhase = \"Pending\"\n\t// PodRunning means the pod has been bound to a node and all of the containers have been started.\n\t// At least one container is still running or is in the process of being restarted.\n\tPodRunning PodPhase = \"Running\"\n\t// PodSucceeded means that all containers in the pod have voluntarily terminated\n\t// with a container exit code of 0, and the system is not going to restart any of these containers.\n\tPodSucceeded PodPhase = \"Succeeded\"\n\t// PodFailed means that all containers in the pod have terminated, and at least one container has\n\t// terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n\tPodFailed PodPhase = \"Failed\"\n\t// PodUnknown means that for some reason the state of the pod could not be obtained, typically due\n\t// to an error in communicating with the host of the pod.\n\t// Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)\n\tPodUnknown PodPhase = \"Unknown\"\n)\n\n// PodConditionType is a valid value for PodCondition.Type\ntype PodConditionType string\n\n// These are built-in conditions of pod. An application may use a custom condition not listed here.\nconst (\n\t// ContainersReady indicates whether all containers in the pod are ready.\n\tContainersReady PodConditionType = \"ContainersReady\"\n\t// PodInitialized means that all init containers in the pod have started successfully.\n\tPodInitialized PodConditionType = \"Initialized\"\n\t// PodReady means the pod is able to service requests and should be added to the\n\t// load balancing pools of all matching services.\n\tPodReady PodConditionType = \"Ready\"\n\t// PodScheduled represents status of the scheduling process for this pod.\n\tPodScheduled PodConditionType = \"PodScheduled\"\n\t// DisruptionTarget indicates the pod is about to be terminated due to a\n\t// disruption (such as preemption, eviction API or garbage-collection).\n\tDisruptionTarget PodConditionType = \"DisruptionTarget\"\n)\n\n// These are reasons for a pod's transition to a condition.\nconst (\n\t// PodReasonUnschedulable reason in PodScheduled PodCondition means that the scheduler\n\t// can't schedule the pod right now, for example due to insufficient resources in the cluster.\n\tPodReasonUnschedulable = \"Unschedulable\"\n\n\t// PodReasonSchedulingGated reason in PodScheduled PodCondition means that the scheduler\n\t// skips scheduling the pod because one or more scheduling gates are still present.\n\tPodReasonSchedulingGated = \"SchedulingGated\"\n\n\t// PodReasonSchedulerError reason in PodScheduled PodCondition means that some internal error happens\n\t// during scheduling, for example due to nodeAffinity parsing errors.\n\tPodReasonSchedulerError = \"SchedulerError\"\n\n\t// TerminationByKubelet reason in DisruptionTarget pod condition indicates that the termination\n\t// is initiated by kubelet\n\tPodReasonTerminationByKubelet = \"TerminationByKubelet\"\n\n\t// PodReasonPreemptionByScheduler reason in DisruptionTarget pod condition indicates that the\n\t// disruption was initiated by scheduler's preemption.\n\tPodReasonPreemptionByScheduler = \"PreemptionByScheduler\"\n)\n\n// PodCondition contains details for the current condition of this pod.\ntype PodCondition struct {\n\t// Type is the type of the condition.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\tType PodConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=PodConditionType\"`\n\t// Status is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Last time we probed the condition.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// Unique, one-word, CamelCase reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human-readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// PodResizeStatus shows status of desired resize of a pod's containers.\ntype PodResizeStatus string\n\nconst (\n\t// Pod resources resize has been requested and will be evaluated by node.\n\tPodResizeStatusProposed PodResizeStatus = \"Proposed\"\n\t// Pod resources resize has been accepted by node and is being actuated.\n\tPodResizeStatusInProgress PodResizeStatus = \"InProgress\"\n\t// Node cannot resize the pod at this time and will keep retrying.\n\tPodResizeStatusDeferred PodResizeStatus = \"Deferred\"\n\t// Requested pod resize is not feasible and will not be re-evaluated.\n\tPodResizeStatusInfeasible PodResizeStatus = \"Infeasible\"\n)\n\n// RestartPolicy describes how the container should be restarted.\n// Only one of the following restart policies may be specified.\n// If none of the following policies is specified, the default one\n// is RestartPolicyAlways.\n// +enum\ntype RestartPolicy string\n\nconst (\n\tRestartPolicyAlways    RestartPolicy = \"Always\"\n\tRestartPolicyOnFailure RestartPolicy = \"OnFailure\"\n\tRestartPolicyNever     RestartPolicy = \"Never\"\n)\n\n// DNSPolicy defines how a pod's DNS will be configured.\n// +enum\ntype DNSPolicy string\n\nconst (\n\t// DNSClusterFirstWithHostNet indicates that the pod should use cluster DNS\n\t// first, if it is available, then fall back on the default\n\t// (as determined by kubelet) DNS settings.\n\tDNSClusterFirstWithHostNet DNSPolicy = \"ClusterFirstWithHostNet\"\n\n\t// DNSClusterFirst indicates that the pod should use cluster DNS\n\t// first unless hostNetwork is true, if it is available, then\n\t// fall back on the default (as determined by kubelet) DNS settings.\n\tDNSClusterFirst DNSPolicy = \"ClusterFirst\"\n\n\t// DNSDefault indicates that the pod should use the default (as\n\t// determined by kubelet) DNS settings.\n\tDNSDefault DNSPolicy = \"Default\"\n\n\t// DNSNone indicates that the pod should use empty DNS settings. DNS\n\t// parameters such as nameservers and search paths should be defined via\n\t// DNSConfig.\n\tDNSNone DNSPolicy = \"None\"\n)\n\nconst (\n\t// DefaultTerminationGracePeriodSeconds indicates the default duration in\n\t// seconds a pod needs to terminate gracefully.\n\tDefaultTerminationGracePeriodSeconds = 30\n)\n\n// A node selector represents the union of the results of one or more label queries\n// over a set of nodes; that is, it represents the OR of the selectors represented\n// by the node selector terms.\n// +structType=atomic\ntype NodeSelector struct {\n\t// Required. A list of node selector terms. The terms are ORed.\n\tNodeSelectorTerms []NodeSelectorTerm `json:\"nodeSelectorTerms\" protobuf:\"bytes,1,rep,name=nodeSelectorTerms\"`\n}\n\n// A null or empty node selector term matches no objects. The requirements of\n// them are ANDed.\n// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n// +structType=atomic\ntype NodeSelectorTerm struct {\n\t// A list of node selector requirements by node's labels.\n\t// +optional\n\tMatchExpressions []NodeSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchExpressions\"`\n\t// A list of node selector requirements by node's fields.\n\t// +optional\n\tMatchFields []NodeSelectorRequirement `json:\"matchFields,omitempty\" protobuf:\"bytes,2,rep,name=matchFields\"`\n}\n\n// A node selector requirement is a selector that contains values, a key, and an operator\n// that relates the key and values.\ntype NodeSelectorRequirement struct {\n\t// The label key that the selector applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// Represents a key's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\tOperator NodeSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=NodeSelectorOperator\"`\n\t// An array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty. If the operator is Gt or Lt, the values\n\t// array must have a single element, which will be interpreted as an integer.\n\t// This array is replaced during a strategic merge patch.\n\t// +optional\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A node selector operator is the set of operators that can be used in\n// a node selector requirement.\n// +enum\ntype NodeSelectorOperator string\n\nconst (\n\tNodeSelectorOpIn           NodeSelectorOperator = \"In\"\n\tNodeSelectorOpNotIn        NodeSelectorOperator = \"NotIn\"\n\tNodeSelectorOpExists       NodeSelectorOperator = \"Exists\"\n\tNodeSelectorOpDoesNotExist NodeSelectorOperator = \"DoesNotExist\"\n\tNodeSelectorOpGt           NodeSelectorOperator = \"Gt\"\n\tNodeSelectorOpLt           NodeSelectorOperator = \"Lt\"\n)\n\n// A topology selector term represents the result of label queries.\n// A null or empty topology selector term matches no objects.\n// The requirements of them are ANDed.\n// It provides a subset of functionality as NodeSelectorTerm.\n// This is an alpha feature and may change in the future.\n// +structType=atomic\ntype TopologySelectorTerm struct {\n\t// Usage: Fields of type []TopologySelectorTerm must be listType=atomic.\n\n\t// A list of topology selector requirements by labels.\n\t// +optional\n\tMatchLabelExpressions []TopologySelectorLabelRequirement `json:\"matchLabelExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchLabelExpressions\"`\n}\n\n// A topology selector requirement is a selector that matches given label.\n// This is an alpha feature and may change in the future.\ntype TopologySelectorLabelRequirement struct {\n\t// The label key that the selector applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// An array of string values. One value must match the label to be selected.\n\t// Each entry in Values is ORed.\n\tValues []string `json:\"values\" protobuf:\"bytes,2,rep,name=values\"`\n}\n\n// Affinity is a group of affinity scheduling rules.\ntype Affinity struct {\n\t// Describes node affinity scheduling rules for the pod.\n\t// +optional\n\tNodeAffinity *NodeAffinity `json:\"nodeAffinity,omitempty\" protobuf:\"bytes,1,opt,name=nodeAffinity\"`\n\t// Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\n\t// +optional\n\tPodAffinity *PodAffinity `json:\"podAffinity,omitempty\" protobuf:\"bytes,2,opt,name=podAffinity\"`\n\t// Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\n\t// +optional\n\tPodAntiAffinity *PodAntiAffinity `json:\"podAntiAffinity,omitempty\" protobuf:\"bytes,3,opt,name=podAntiAffinity\"`\n}\n\n// Pod affinity is a group of inter pod affinity scheduling rules.\ntype PodAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system will try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system may or may not try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\tRequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,rep,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// Pod anti affinity is a group of inter pod anti affinity scheduling rules.\ntype PodAntiAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the anti-affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the anti-affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system will try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the anti-affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the anti-affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system may or may not try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\tRequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,rep,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the anti-affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling anti-affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\ntype WeightedPodAffinityTerm struct {\n\t// weight associated with matching the corresponding podAffinityTerm,\n\t// in the range 1-100.\n\tWeight int32 `json:\"weight\" protobuf:\"varint,1,opt,name=weight\"`\n\t// Required. A pod affinity term, associated with the corresponding weight.\n\tPodAffinityTerm PodAffinityTerm `json:\"podAffinityTerm\" protobuf:\"bytes,2,opt,name=podAffinityTerm\"`\n}\n\n// Defines a set of pods (namely those matching the labelSelector\n// relative to the given namespace(s)) that this pod should be\n// co-located (affinity) or not co-located (anti-affinity) with,\n// where co-located is defined as running on a node whose value of\n// the label with key <topologyKey> matches that of any node on which\n// a pod of the set of pods is running\ntype PodAffinityTerm struct {\n\t// A label query over a set of resources, in this case pods.\n\t// +optional\n\tLabelSelector *metav1.LabelSelector `json:\"labelSelector,omitempty\" protobuf:\"bytes,1,opt,name=labelSelector\"`\n\t// namespaces specifies a static list of namespace names that the term applies to.\n\t// The term is applied to the union of the namespaces listed in this field\n\t// and the ones selected by namespaceSelector.\n\t// null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".\n\t// +optional\n\tNamespaces []string `json:\"namespaces,omitempty\" protobuf:\"bytes,2,rep,name=namespaces\"`\n\t// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\n\t// the labelSelector in the specified namespaces, where co-located is defined as running on a node\n\t// whose value of the label with key topologyKey matches that of any node on which any of the\n\t// selected pods is running.\n\t// Empty topologyKey is not allowed.\n\tTopologyKey string `json:\"topologyKey\" protobuf:\"bytes,3,opt,name=topologyKey\"`\n\t// A label query over the set of namespaces that the term applies to.\n\t// The term is applied to the union of the namespaces selected by this field\n\t// and the ones listed in the namespaces field.\n\t// null selector and null or empty namespaces list means \"this pod's namespace\".\n\t// An empty selector ({}) matches all namespaces.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,4,opt,name=namespaceSelector\"`\n}\n\n// Node affinity is a group of node affinity scheduling rules.\ntype NodeAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to an update), the system\n\t// will try to eventually evict the pod from its node.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution *NodeSelector `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to an update), the system\n\t// may or may not try to eventually evict the pod from its node.\n\t// +optional\n\tRequiredDuringSchedulingIgnoredDuringExecution *NodeSelector `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,opt,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node matches the corresponding matchExpressions; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\tPreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// An empty preferred scheduling term matches all objects with implicit weight 0\n// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\ntype PreferredSchedulingTerm struct {\n\t// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\n\tWeight int32 `json:\"weight\" protobuf:\"varint,1,opt,name=weight\"`\n\t// A node selector term, associated with the corresponding weight.\n\tPreference NodeSelectorTerm `json:\"preference\" protobuf:\"bytes,2,opt,name=preference\"`\n}\n\n// The node this Taint is attached to has the \"effect\" on\n// any pod that does not tolerate the Taint.\ntype Taint struct {\n\t// Required. The taint key to be applied to a node.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// The taint value corresponding to the taint key.\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\t// Required. The effect of the taint on pods\n\t// that do not tolerate the taint.\n\t// Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n\tEffect TaintEffect `json:\"effect\" protobuf:\"bytes,3,opt,name=effect,casttype=TaintEffect\"`\n\t// TimeAdded represents the time at which the taint was added.\n\t// It is only written for NoExecute taints.\n\t// +optional\n\tTimeAdded *metav1.Time `json:\"timeAdded,omitempty\" protobuf:\"bytes,4,opt,name=timeAdded\"`\n}\n\n// +enum\ntype TaintEffect string\n\nconst (\n\t// Do not allow new pods to schedule onto the node unless they tolerate the taint,\n\t// but allow all pods submitted to Kubelet without going through the scheduler\n\t// to start, and allow all already-running pods to continue running.\n\t// Enforced by the scheduler.\n\tTaintEffectNoSchedule TaintEffect = \"NoSchedule\"\n\t// Like TaintEffectNoSchedule, but the scheduler tries not to schedule\n\t// new pods onto the node, rather than prohibiting new pods from scheduling\n\t// onto the node entirely. Enforced by the scheduler.\n\tTaintEffectPreferNoSchedule TaintEffect = \"PreferNoSchedule\"\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// Like TaintEffectNoSchedule, but additionally do not allow pods submitted to\n\t// Kubelet without going through the scheduler to start.\n\t// Enforced by Kubelet and the scheduler.\n\t// TaintEffectNoScheduleNoAdmit TaintEffect = \"NoScheduleNoAdmit\"\n\n\t// Evict any already-running pods that do not tolerate the taint.\n\t// Currently enforced by NodeController.\n\tTaintEffectNoExecute TaintEffect = \"NoExecute\"\n)\n\n// The pod this Toleration is attached to tolerates any taint that matches\n// the triple <key,value,effect> using the matching operator <operator>.\ntype Toleration struct {\n\t// Key is the taint key that the toleration applies to. Empty means match all taint keys.\n\t// If the key is empty, operator must be Exists; this combination means to match all values and all keys.\n\t// +optional\n\tKey string `json:\"key,omitempty\" protobuf:\"bytes,1,opt,name=key\"`\n\t// Operator represents a key's relationship to the value.\n\t// Valid operators are Exists and Equal. Defaults to Equal.\n\t// Exists is equivalent to wildcard for value, so that a pod can\n\t// tolerate all taints of a particular category.\n\t// +optional\n\tOperator TolerationOperator `json:\"operator,omitempty\" protobuf:\"bytes,2,opt,name=operator,casttype=TolerationOperator\"`\n\t// Value is the taint value the toleration matches to.\n\t// If the operator is Exists, the value should be empty, otherwise just a regular string.\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,3,opt,name=value\"`\n\t// Effect indicates the taint effect to match. Empty means match all taint effects.\n\t// When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\t// +optional\n\tEffect TaintEffect `json:\"effect,omitempty\" protobuf:\"bytes,4,opt,name=effect,casttype=TaintEffect\"`\n\t// TolerationSeconds represents the period of time the toleration (which must be\n\t// of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\n\t// it is not set, which means tolerate the taint forever (do not evict). Zero and\n\t// negative values will be treated as 0 (evict immediately) by the system.\n\t// +optional\n\tTolerationSeconds *int64 `json:\"tolerationSeconds,omitempty\" protobuf:\"varint,5,opt,name=tolerationSeconds\"`\n}\n\n// A toleration operator is the set of operators that can be used in a toleration.\n// +enum\ntype TolerationOperator string\n\nconst (\n\tTolerationOpExists TolerationOperator = \"Exists\"\n\tTolerationOpEqual  TolerationOperator = \"Equal\"\n)\n\n// PodReadinessGate contains the reference to a pod condition\ntype PodReadinessGate struct {\n\t// ConditionType refers to a condition in the pod's condition list with matching type.\n\tConditionType PodConditionType `json:\"conditionType\" protobuf:\"bytes,1,opt,name=conditionType,casttype=PodConditionType\"`\n}\n\n// PodSpec is a description of a pod.\ntype PodSpec struct {\n\t// List of volumes that can be mounted by containers belonging to the pod.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge,retainKeys\n\tVolumes []Volume `json:\"volumes,omitempty\" patchStrategy:\"merge,retainKeys\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=volumes\"`\n\t// List of initialization containers belonging to the pod.\n\t// Init containers are executed in order prior to containers being started. If any\n\t// init container fails, the pod is considered to have failed and is handled according\n\t// to its restartPolicy. The name for an init container or normal container must be\n\t// unique among all containers.\n\t// Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\n\t// The resourceRequirements of an init container are taken into account during scheduling\n\t// by finding the highest request/limit for each resource type, and then using the max of\n\t// of that value or the sum of the normal containers. Limits are applied to init containers\n\t// in a similar fashion.\n\t// Init containers cannot currently be added or removed.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tInitContainers []Container `json:\"initContainers,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,20,rep,name=initContainers\"`\n\t// List of containers belonging to the pod.\n\t// Containers cannot currently be added or removed.\n\t// There must be at least one container in a Pod.\n\t// Cannot be updated.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tContainers []Container `json:\"containers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=containers\"`\n\t// List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\n\t// pod to perform user-initiated actions such as debugging. This list cannot be specified when\n\t// creating a pod, and it cannot be modified by updating the pod spec. In order to add an\n\t// ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tEphemeralContainers []EphemeralContainer `json:\"ephemeralContainers,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,34,rep,name=ephemeralContainers\"`\n\t// Restart policy for all containers within the pod.\n\t// One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\n\t// Default to Always.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n\t// +optional\n\tRestartPolicy RestartPolicy `json:\"restartPolicy,omitempty\" protobuf:\"bytes,3,opt,name=restartPolicy,casttype=RestartPolicy\"`\n\t// Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\n\t// Value must be non-negative integer. The value zero indicates stop immediately via\n\t// the kill signal (no opportunity to shut down).\n\t// If this value is nil, the default grace period will be used instead.\n\t// The grace period is the duration in seconds after the processes running in the pod are sent\n\t// a termination signal and the time when the processes are forcibly halted with a kill signal.\n\t// Set this value longer than the expected cleanup time for your process.\n\t// Defaults to 30 seconds.\n\t// +optional\n\tTerminationGracePeriodSeconds *int64 `json:\"terminationGracePeriodSeconds,omitempty\" protobuf:\"varint,4,opt,name=terminationGracePeriodSeconds\"`\n\t// Optional duration in seconds the pod may be active on the node relative to\n\t// StartTime before the system will actively try to mark it failed and kill associated containers.\n\t// Value must be a positive integer.\n\t// +optional\n\tActiveDeadlineSeconds *int64 `json:\"activeDeadlineSeconds,omitempty\" protobuf:\"varint,5,opt,name=activeDeadlineSeconds\"`\n\t// Set DNS policy for the pod.\n\t// Defaults to \"ClusterFirst\".\n\t// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\n\t// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\n\t// To have DNS options set along with hostNetwork, you have to specify DNS policy\n\t// explicitly to 'ClusterFirstWithHostNet'.\n\t// +optional\n\tDNSPolicy DNSPolicy `json:\"dnsPolicy,omitempty\" protobuf:\"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy\"`\n\t// NodeSelector is a selector which must be true for the pod to fit on a node.\n\t// Selector which must match a node's labels for the pod to be scheduled on that node.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,7,rep,name=nodeSelector\"`\n\n\t// ServiceAccountName is the name of the ServiceAccount to use to run this pod.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n\t// +optional\n\tServiceAccountName string `json:\"serviceAccountName,omitempty\" protobuf:\"bytes,8,opt,name=serviceAccountName\"`\n\t// DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.\n\t// Deprecated: Use serviceAccountName instead.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tDeprecatedServiceAccount string `json:\"serviceAccount,omitempty\" protobuf:\"bytes,9,opt,name=serviceAccount\"`\n\t// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\n\t// +optional\n\tAutomountServiceAccountToken *bool `json:\"automountServiceAccountToken,omitempty\" protobuf:\"varint,21,opt,name=automountServiceAccountToken\"`\n\n\t// NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\n\t// the scheduler simply schedules this pod onto that node, assuming that it fits resource\n\t// requirements.\n\t// +optional\n\tNodeName string `json:\"nodeName,omitempty\" protobuf:\"bytes,10,opt,name=nodeName\"`\n\t// Host networking requested for this pod. Use the host's network namespace.\n\t// If this option is set, the ports that will be used must be specified.\n\t// Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostNetwork bool `json:\"hostNetwork,omitempty\" protobuf:\"varint,11,opt,name=hostNetwork\"`\n\t// Use the host's pid namespace.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostPID bool `json:\"hostPID,omitempty\" protobuf:\"varint,12,opt,name=hostPID\"`\n\t// Use the host's ipc namespace.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostIPC bool `json:\"hostIPC,omitempty\" protobuf:\"varint,13,opt,name=hostIPC\"`\n\t// Share a single process namespace between all of the containers in a pod.\n\t// When this is set containers will be able to view and signal processes from other containers\n\t// in the same pod, and the first process in each container will not be assigned PID 1.\n\t// HostPID and ShareProcessNamespace cannot both be set.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tShareProcessNamespace *bool `json:\"shareProcessNamespace,omitempty\" protobuf:\"varint,27,opt,name=shareProcessNamespace\"`\n\t// SecurityContext holds pod-level security attributes and common container settings.\n\t// Optional: Defaults to empty.  See type description for default values of each field.\n\t// +optional\n\tSecurityContext *PodSecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,14,opt,name=securityContext\"`\n\t// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\n\t// If specified, these secrets will be passed to individual puller implementations for them to use.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tImagePullSecrets []LocalObjectReference `json:\"imagePullSecrets,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,15,rep,name=imagePullSecrets\"`\n\t// Specifies the hostname of the Pod\n\t// If not specified, the pod's hostname will be set to a system-defined value.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,16,opt,name=hostname\"`\n\t// If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\".\n\t// If not specified, the pod will not have a domainname at all.\n\t// +optional\n\tSubdomain string `json:\"subdomain,omitempty\" protobuf:\"bytes,17,opt,name=subdomain\"`\n\t// If specified, the pod's scheduling constraints\n\t// +optional\n\tAffinity *Affinity `json:\"affinity,omitempty\" protobuf:\"bytes,18,opt,name=affinity\"`\n\t// If specified, the pod will be dispatched by specified scheduler.\n\t// If not specified, the pod will be dispatched by default scheduler.\n\t// +optional\n\tSchedulerName string `json:\"schedulerName,omitempty\" protobuf:\"bytes,19,opt,name=schedulerName\"`\n\t// If specified, the pod's tolerations.\n\t// +optional\n\tTolerations []Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,22,opt,name=tolerations\"`\n\t// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\n\t// file if specified. This is only valid for non-hostNetwork pods.\n\t// +optional\n\t// +patchMergeKey=ip\n\t// +patchStrategy=merge\n\tHostAliases []HostAlias `json:\"hostAliases,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"ip\" protobuf:\"bytes,23,rep,name=hostAliases\"`\n\t// If specified, indicates the pod's priority. \"system-node-critical\" and\n\t// \"system-cluster-critical\" are two special keywords which indicate the\n\t// highest priorities with the former being the highest priority. Any other\n\t// name must be defined by creating a PriorityClass object with that name.\n\t// If not specified, the pod priority will be default or zero if there is no\n\t// default.\n\t// +optional\n\tPriorityClassName string `json:\"priorityClassName,omitempty\" protobuf:\"bytes,24,opt,name=priorityClassName\"`\n\t// The priority value. Various system components use this field to find the\n\t// priority of the pod. When Priority Admission Controller is enabled, it\n\t// prevents users from setting this field. The admission controller populates\n\t// this field from PriorityClassName.\n\t// The higher the value, the higher the priority.\n\t// +optional\n\tPriority *int32 `json:\"priority,omitempty\" protobuf:\"bytes,25,opt,name=priority\"`\n\t// Specifies the DNS parameters of a pod.\n\t// Parameters specified here will be merged to the generated DNS\n\t// configuration based on DNSPolicy.\n\t// +optional\n\tDNSConfig *PodDNSConfig `json:\"dnsConfig,omitempty\" protobuf:\"bytes,26,opt,name=dnsConfig\"`\n\t// If specified, all readiness gates will be evaluated for pod readiness.\n\t// A pod is ready when all its containers are ready AND\n\t// all conditions specified in the readiness gates have status equal to \"True\"\n\t// More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\n\t// +optional\n\tReadinessGates []PodReadinessGate `json:\"readinessGates,omitempty\" protobuf:\"bytes,28,opt,name=readinessGates\"`\n\t// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\n\t// to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.\n\t// If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an\n\t// empty definition that uses the default runtime handler.\n\t// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n\t// +optional\n\tRuntimeClassName *string `json:\"runtimeClassName,omitempty\" protobuf:\"bytes,29,opt,name=runtimeClassName\"`\n\t// EnableServiceLinks indicates whether information about services should be injected into pod's\n\t// environment variables, matching the syntax of Docker links.\n\t// Optional: Defaults to true.\n\t// +optional\n\tEnableServiceLinks *bool `json:\"enableServiceLinks,omitempty\" protobuf:\"varint,30,opt,name=enableServiceLinks\"`\n\t// PreemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,31,opt,name=preemptionPolicy\"`\n\t// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\n\t// This field will be autopopulated at admission time by the RuntimeClass admission controller. If\n\t// the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\n\t// The RuntimeClass admission controller will reject Pod create requests which have the overhead already\n\t// set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\n\t// defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\n\t// More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead ResourceList `json:\"overhead,omitempty\" protobuf:\"bytes,32,opt,name=overhead\"`\n\t// TopologySpreadConstraints describes how a group of pods ought to spread across topology\n\t// domains. Scheduler will schedule pods in a way which abides by the constraints.\n\t// All topologySpreadConstraints are ANDed.\n\t// +optional\n\t// +patchMergeKey=topologyKey\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=topologyKey\n\t// +listMapKey=whenUnsatisfiable\n\tTopologySpreadConstraints []TopologySpreadConstraint `json:\"topologySpreadConstraints,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"topologyKey\" protobuf:\"bytes,33,opt,name=topologySpreadConstraints\"`\n\t// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\n\t// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\n\t// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN.\n\t// If a pod does not have FQDN, this has no effect.\n\t// Default to false.\n\t// +optional\n\tSetHostnameAsFQDN *bool `json:\"setHostnameAsFQDN,omitempty\" protobuf:\"varint,35,opt,name=setHostnameAsFQDN\"`\n\t// Specifies the OS of the containers in the pod.\n\t// Some pod and container fields are restricted if this is set.\n\t//\n\t// If the OS field is set to linux, the following fields must be unset:\n\t// -securityContext.windowsOptions\n\t//\n\t// If the OS field is set to windows, following fields must be unset:\n\t// - spec.hostPID\n\t// - spec.hostIPC\n\t// - spec.hostUsers\n\t// - spec.securityContext.seLinuxOptions\n\t// - spec.securityContext.seccompProfile\n\t// - spec.securityContext.fsGroup\n\t// - spec.securityContext.fsGroupChangePolicy\n\t// - spec.securityContext.sysctls\n\t// - spec.shareProcessNamespace\n\t// - spec.securityContext.runAsUser\n\t// - spec.securityContext.runAsGroup\n\t// - spec.securityContext.supplementalGroups\n\t// - spec.containers[*].securityContext.seLinuxOptions\n\t// - spec.containers[*].securityContext.seccompProfile\n\t// - spec.containers[*].securityContext.capabilities\n\t// - spec.containers[*].securityContext.readOnlyRootFilesystem\n\t// - spec.containers[*].securityContext.privileged\n\t// - spec.containers[*].securityContext.allowPrivilegeEscalation\n\t// - spec.containers[*].securityContext.procMount\n\t// - spec.containers[*].securityContext.runAsUser\n\t// - spec.containers[*].securityContext.runAsGroup\n\t// +optional\n\tOS *PodOS `json:\"os,omitempty\" protobuf:\"bytes,36,opt,name=os\"`\n\n\t// Use the host's user namespace.\n\t// Optional: Default to true.\n\t// If set to true or not present, the pod will be run in the host user namespace, useful\n\t// for when the pod needs a feature only available to the host user namespace, such as\n\t// loading a kernel module with CAP_SYS_MODULE.\n\t// When set to false, a new userns is created for the pod. Setting false is useful for\n\t// mitigating container breakout vulnerabilities even allowing users to run their\n\t// containers as root without actually having root privileges on the host.\n\t// This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostUsers *bool `json:\"hostUsers,omitempty\" protobuf:\"bytes,37,opt,name=hostUsers\"`\n\n\t// SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\n\t// If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\n\t// scheduler will not attempt to schedule the pod.\n\t//\n\t// SchedulingGates can only be set at pod creation time, and be removed only afterwards.\n\t//\n\t// This is a beta feature enabled by the PodSchedulingReadiness feature gate.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=PodSchedulingReadiness\n\t// +optional\n\tSchedulingGates []PodSchedulingGate `json:\"schedulingGates,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,38,opt,name=schedulingGates\"`\n\t// ResourceClaims defines which ResourceClaims must be allocated\n\t// and reserved before the Pod is allowed to start. The resources\n\t// will be made available to those containers which consume them\n\t// by name.\n\t//\n\t// This is an alpha field and requires enabling the\n\t// DynamicResourceAllocation feature gate.\n\t//\n\t// This field is immutable.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge,retainKeys\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=DynamicResourceAllocation\n\t// +optional\n\tResourceClaims []PodResourceClaim `json:\"resourceClaims,omitempty\" patchStrategy:\"merge,retainKeys\" patchMergeKey:\"name\" protobuf:\"bytes,39,rep,name=resourceClaims\"`\n}\n\n// PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\n// It adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\n// Containers that need access to the ResourceClaim reference it with this name.\ntype PodResourceClaim struct {\n\t// Name uniquely identifies this resource claim inside the pod.\n\t// This must be a DNS_LABEL.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Source describes where to find the ResourceClaim.\n\tSource ClaimSource `json:\"source,omitempty\" protobuf:\"bytes,2,name=source\"`\n}\n\n// ClaimSource describes a reference to a ResourceClaim.\n//\n// Exactly one of these fields should be set.  Consumers of this type must\n// treat an empty object as if it has an unknown value.\ntype ClaimSource struct {\n\t// ResourceClaimName is the name of a ResourceClaim object in the same\n\t// namespace as this pod.\n\tResourceClaimName *string `json:\"resourceClaimName,omitempty\" protobuf:\"bytes,1,opt,name=resourceClaimName\"`\n\n\t// ResourceClaimTemplateName is the name of a ResourceClaimTemplate\n\t// object in the same namespace as this pod.\n\t//\n\t// The template will be used to create a new ResourceClaim, which will\n\t// be bound to this pod. When this pod is deleted, the ResourceClaim\n\t// will also be deleted. The name of the ResourceClaim will be <pod\n\t// name>-<resource name>, where <resource name> is the\n\t// PodResourceClaim.Name. Pod validation will reject the pod if the\n\t// concatenated name is not valid for a ResourceClaim (e.g. too long).\n\t//\n\t// An existing ResourceClaim with that name that is not owned by the\n\t// pod will not be used for the pod to avoid using an unrelated\n\t// resource by mistake. Scheduling and pod startup are then blocked\n\t// until the unrelated ResourceClaim is removed.\n\t//\n\t// This field is immutable and no changes will be made to the\n\t// corresponding ResourceClaim by the control plane after creating the\n\t// ResourceClaim.\n\tResourceClaimTemplateName *string `json:\"resourceClaimTemplateName,omitempty\" protobuf:\"bytes,2,opt,name=resourceClaimTemplateName\"`\n}\n\n// OSName is the set of OS'es that can be used in OS.\ntype OSName string\n\n// These are valid values for OSName\nconst (\n\tLinux   OSName = \"linux\"\n\tWindows OSName = \"windows\"\n)\n\n// PodOS defines the OS parameters of a pod.\ntype PodOS struct {\n\t// Name is the name of the operating system. The currently supported values are linux and windows.\n\t// Additional value may be defined in future and can be one of:\n\t// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\n\t// Clients should expect to handle additional values and treat unrecognized values in this field as os: null\n\tName OSName `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PodSchedulingGate is associated to a Pod to guard its scheduling.\ntype PodSchedulingGate struct {\n\t// Name of the scheduling gate.\n\t// Each scheduling gate must have a unique name field.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// +enum\ntype UnsatisfiableConstraintAction string\n\nconst (\n\t// DoNotSchedule instructs the scheduler not to schedule the pod\n\t// when constraints are not satisfied.\n\tDoNotSchedule UnsatisfiableConstraintAction = \"DoNotSchedule\"\n\t// ScheduleAnyway instructs the scheduler to schedule the pod\n\t// even if constraints are not satisfied.\n\tScheduleAnyway UnsatisfiableConstraintAction = \"ScheduleAnyway\"\n)\n\n// NodeInclusionPolicy defines the type of node inclusion policy\n// +enum\ntype NodeInclusionPolicy string\n\nconst (\n\t// NodeInclusionPolicyIgnore means ignore this scheduling directive when calculating pod topology spread skew.\n\tNodeInclusionPolicyIgnore NodeInclusionPolicy = \"Ignore\"\n\t// NodeInclusionPolicyHonor means use this scheduling directive when calculating pod topology spread skew.\n\tNodeInclusionPolicyHonor NodeInclusionPolicy = \"Honor\"\n)\n\n// TopologySpreadConstraint specifies how to spread matching pods among the given topology.\ntype TopologySpreadConstraint struct {\n\t// MaxSkew describes the degree to which pods may be unevenly distributed.\n\t// When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\n\t// between the number of matching pods in the target topology and the global minimum.\n\t// The global minimum is the minimum number of matching pods in an eligible domain\n\t// or zero if the number of eligible domains is less than MinDomains.\n\t// For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n\t// labelSelector spread as 2/2/1:\n\t// In this case, the global minimum is 1.\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// |  P P  |  P P  |   P   |\n\t// +-------+-------+-------+\n\t// - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\n\t// scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\n\t// violate MaxSkew(1).\n\t// - if MaxSkew is 2, incoming pod can be scheduled onto any zone.\n\t// When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\n\t// to topologies that satisfy it.\n\t// It's a required field. Default value is 1 and 0 is not allowed.\n\tMaxSkew int32 `json:\"maxSkew\" protobuf:\"varint,1,opt,name=maxSkew\"`\n\t// TopologyKey is the key of node labels. Nodes that have a label with this key\n\t// and identical values are considered to be in the same topology.\n\t// We consider each <key, value> as a \"bucket\", and try to put balanced number\n\t// of pods into each bucket.\n\t// We define a domain as a particular instance of a topology.\n\t// Also, we define an eligible domain as a domain whose nodes meet the requirements of\n\t// nodeAffinityPolicy and nodeTaintsPolicy.\n\t// e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\n\t// And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\n\t// It's a required field.\n\tTopologyKey string `json:\"topologyKey\" protobuf:\"bytes,2,opt,name=topologyKey\"`\n\t// WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\n\t// the spread constraint.\n\t// - DoNotSchedule (default) tells the scheduler not to schedule it.\n\t// - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n\t//   but giving higher precedence to topologies that would help reduce the\n\t//   skew.\n\t// A constraint is considered \"Unsatisfiable\" for an incoming pod\n\t// if and only if every possible node assignment for that pod would violate\n\t// \"MaxSkew\" on some topology.\n\t// For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n\t// labelSelector spread as 3/1/1:\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// | P P P |   P   |   P   |\n\t// +-------+-------+-------+\n\t// If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\n\t// to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\n\t// MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\n\t// won't make it *more* imbalanced.\n\t// It's a required field.\n\tWhenUnsatisfiable UnsatisfiableConstraintAction `json:\"whenUnsatisfiable\" protobuf:\"bytes,3,opt,name=whenUnsatisfiable,casttype=UnsatisfiableConstraintAction\"`\n\t// LabelSelector is used to find matching pods.\n\t// Pods that match this label selector are counted to determine the number of pods\n\t// in their corresponding topology domain.\n\t// +optional\n\tLabelSelector *metav1.LabelSelector `json:\"labelSelector,omitempty\" protobuf:\"bytes,4,opt,name=labelSelector\"`\n\t// MinDomains indicates a minimum number of eligible domains.\n\t// When the number of eligible domains with matching topology keys is less than minDomains,\n\t// Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\n\t// And when the number of eligible domains with matching topology keys equals or greater than minDomains,\n\t// this value has no effect on scheduling.\n\t// As a result, when the number of eligible domains is less than minDomains,\n\t// scheduler won't schedule more than maxSkew Pods to those domains.\n\t// If value is nil, the constraint behaves as if MinDomains is equal to 1.\n\t// Valid values are integers greater than 0.\n\t// When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\t//\n\t// For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\n\t// labelSelector spread as 2/2/2:\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// |  P P  |  P P  |  P P  |\n\t// +-------+-------+-------+\n\t// The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\n\t// In this situation, new pod with the same labelSelector cannot be scheduled,\n\t// because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\n\t// it will violate MaxSkew.\n\t//\n\t// This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).\n\t// +optional\n\tMinDomains *int32 `json:\"minDomains,omitempty\" protobuf:\"varint,5,opt,name=minDomains\"`\n\t// NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\n\t// when calculating pod topology spread skew. Options are:\n\t// - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\n\t// - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\t//\n\t// If this value is nil, the behavior is equivalent to the Honor policy.\n\t// This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\t// +optional\n\tNodeAffinityPolicy *NodeInclusionPolicy `json:\"nodeAffinityPolicy,omitempty\" protobuf:\"bytes,6,opt,name=nodeAffinityPolicy\"`\n\t// NodeTaintsPolicy indicates how we will treat node taints when calculating\n\t// pod topology spread skew. Options are:\n\t// - Honor: nodes without taints, along with tainted nodes for which the incoming pod\n\t// has a toleration, are included.\n\t// - Ignore: node taints are ignored. All nodes are included.\n\t//\n\t// If this value is nil, the behavior is equivalent to the Ignore policy.\n\t// This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\t// +optional\n\tNodeTaintsPolicy *NodeInclusionPolicy `json:\"nodeTaintsPolicy,omitempty\" protobuf:\"bytes,7,opt,name=nodeTaintsPolicy\"`\n\t// MatchLabelKeys is a set of pod label keys to select the pods over which\n\t// spreading will be calculated. The keys are used to lookup values from the\n\t// incoming pod labels, those key-value labels are ANDed with labelSelector\n\t// to select the group of existing pods over which spreading will be calculated\n\t// for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\n\t// MatchLabelKeys cannot be set when LabelSelector isn't set.\n\t// Keys that don't exist in the incoming pod labels will\n\t// be ignored. A null or empty list means only match against labelSelector.\n\t//\n\t// This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\n\t// +listType=atomic\n\t// +optional\n\tMatchLabelKeys []string `json:\"matchLabelKeys,omitempty\" protobuf:\"bytes,8,opt,name=matchLabelKeys\"`\n}\n\nconst (\n\t// The default value for enableServiceLinks attribute.\n\tDefaultEnableServiceLinks = true\n)\n\n// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\n// pod's hosts file.\ntype HostAlias struct {\n\t// IP address of the host file entry.\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\t// Hostnames for the above IP address.\n\tHostnames []string `json:\"hostnames,omitempty\" protobuf:\"bytes,2,rep,name=hostnames\"`\n}\n\n// PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume\n// when volume is mounted.\n// +enum\ntype PodFSGroupChangePolicy string\n\nconst (\n\t// FSGroupChangeOnRootMismatch indicates that volume's ownership and permissions will be changed\n\t// only when permission and ownership of root directory does not match with expected\n\t// permissions on the volume. This can help shorten the time it takes to change\n\t// ownership and permissions of a volume.\n\tFSGroupChangeOnRootMismatch PodFSGroupChangePolicy = \"OnRootMismatch\"\n\t// FSGroupChangeAlways indicates that volume's ownership and permissions\n\t// should always be changed whenever volume is mounted inside a Pod. This the default\n\t// behavior.\n\tFSGroupChangeAlways PodFSGroupChangePolicy = \"Always\"\n)\n\n// PodSecurityContext holds pod-level security attributes and common container settings.\n// Some fields are also present in container.securityContext.  Field values of\n// container.securityContext take precedence over field values of PodSecurityContext.\ntype PodSecurityContext struct {\n\t// The SELinux context to be applied to all containers.\n\t// If unspecified, the container runtime will allocate a random SELinux context for each\n\t// container.  May also be set in SecurityContext.  If set in\n\t// both SecurityContext and PodSecurityContext, the value specified in SecurityContext\n\t// takes precedence for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSELinuxOptions *SELinuxOptions `json:\"seLinuxOptions,omitempty\" protobuf:\"bytes,1,opt,name=seLinuxOptions\"`\n\t// The Windows specific settings applied to all containers.\n\t// If unspecified, the options within a container's SecurityContext will be used.\n\t// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is linux.\n\t// +optional\n\tWindowsOptions *WindowsSecurityContextOptions `json:\"windowsOptions,omitempty\" protobuf:\"bytes,8,opt,name=windowsOptions\"`\n\t// The UID to run the entrypoint of the container process.\n\t// Defaults to user specified in image metadata if unspecified.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence\n\t// for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsUser *int64 `json:\"runAsUser,omitempty\" protobuf:\"varint,2,opt,name=runAsUser\"`\n\t// The GID to run the entrypoint of the container process.\n\t// Uses runtime default if unset.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence\n\t// for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsGroup *int64 `json:\"runAsGroup,omitempty\" protobuf:\"varint,6,opt,name=runAsGroup\"`\n\t// Indicates that the container must run as a non-root user.\n\t// If true, the Kubelet will validate the image at runtime to ensure that it\n\t// does not run as UID 0 (root) and fail to start the container if it does.\n\t// If unset or false, no such validation will be performed.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsNonRoot *bool `json:\"runAsNonRoot,omitempty\" protobuf:\"varint,3,opt,name=runAsNonRoot\"`\n\t// A list of groups applied to the first process run in each container, in addition\n\t// to the container's primary GID, the fsGroup (if specified), and group memberships\n\t// defined in the container image for the uid of the container process. If unspecified,\n\t// no additional groups are added to any container. Note that group memberships\n\t// defined in the container image for the uid of the container process are still effective,\n\t// even if they are not included in this list.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSupplementalGroups []int64 `json:\"supplementalGroups,omitempty\" protobuf:\"varint,4,rep,name=supplementalGroups\"`\n\t// A special supplemental group that applies to all containers in a pod.\n\t// Some volume types allow the Kubelet to change the ownership of that volume\n\t// to be owned by the pod:\n\t//\n\t// 1. The owning GID will be the FSGroup\n\t// 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n\t// 3. The permission bits are OR'd with rw-rw----\n\t//\n\t// If unset, the Kubelet will not modify the ownership and permissions of any volume.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tFSGroup *int64 `json:\"fsGroup,omitempty\" protobuf:\"varint,5,opt,name=fsGroup\"`\n\t// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\n\t// sysctls (by the container runtime) might fail to launch.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSysctls []Sysctl `json:\"sysctls,omitempty\" protobuf:\"bytes,7,rep,name=sysctls\"`\n\t// fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\n\t// before being exposed inside Pod. This field will only apply to\n\t// volume types which support fsGroup based ownership(and permissions).\n\t// It will have no effect on ephemeral volume types such as: secret, configmaps\n\t// and emptydir.\n\t// Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tFSGroupChangePolicy *PodFSGroupChangePolicy `json:\"fsGroupChangePolicy,omitempty\" protobuf:\"bytes,9,opt,name=fsGroupChangePolicy\"`\n\t// The seccomp options to use by the containers in this pod.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSeccompProfile *SeccompProfile `json:\"seccompProfile,omitempty\" protobuf:\"bytes,10,opt,name=seccompProfile\"`\n}\n\n// SeccompProfile defines a pod/container's seccomp profile settings.\n// Only one profile source may be set.\n// +union\ntype SeccompProfile struct {\n\t// type indicates which kind of seccomp profile will be applied.\n\t// Valid options are:\n\t//\n\t// Localhost - a profile defined in a file on the node should be used.\n\t// RuntimeDefault - the container runtime default profile should be used.\n\t// Unconfined - no profile should be applied.\n\t// +unionDiscriminator\n\tType SeccompProfileType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=SeccompProfileType\"`\n\t// localhostProfile indicates a profile defined in a file on the node should be used.\n\t// The profile must be preconfigured on the node to work.\n\t// Must be a descending path, relative to the kubelet's configured seccomp profile location.\n\t// Must only be set if type is \"Localhost\".\n\t// +optional\n\tLocalhostProfile *string `json:\"localhostProfile,omitempty\" protobuf:\"bytes,2,opt,name=localhostProfile\"`\n}\n\n// SeccompProfileType defines the supported seccomp profile types.\n// +enum\ntype SeccompProfileType string\n\nconst (\n\t// SeccompProfileTypeUnconfined indicates no seccomp profile is applied (A.K.A. unconfined).\n\tSeccompProfileTypeUnconfined SeccompProfileType = \"Unconfined\"\n\t// SeccompProfileTypeRuntimeDefault represents the default container runtime seccomp profile.\n\tSeccompProfileTypeRuntimeDefault SeccompProfileType = \"RuntimeDefault\"\n\t// SeccompProfileTypeLocalhost indicates a profile defined in a file on the node should be used.\n\t// The file's location relative to <kubelet-root-dir>/seccomp.\n\tSeccompProfileTypeLocalhost SeccompProfileType = \"Localhost\"\n)\n\n// PodQOSClass defines the supported qos classes of Pods.\n// +enum\ntype PodQOSClass string\n\nconst (\n\t// PodQOSGuaranteed is the Guaranteed qos class.\n\tPodQOSGuaranteed PodQOSClass = \"Guaranteed\"\n\t// PodQOSBurstable is the Burstable qos class.\n\tPodQOSBurstable PodQOSClass = \"Burstable\"\n\t// PodQOSBestEffort is the BestEffort qos class.\n\tPodQOSBestEffort PodQOSClass = \"BestEffort\"\n)\n\n// PodDNSConfig defines the DNS parameters of a pod in addition to\n// those generated from DNSPolicy.\ntype PodDNSConfig struct {\n\t// A list of DNS name server IP addresses.\n\t// This will be appended to the base nameservers generated from DNSPolicy.\n\t// Duplicated nameservers will be removed.\n\t// +optional\n\tNameservers []string `json:\"nameservers,omitempty\" protobuf:\"bytes,1,rep,name=nameservers\"`\n\t// A list of DNS search domains for host-name lookup.\n\t// This will be appended to the base search paths generated from DNSPolicy.\n\t// Duplicated search paths will be removed.\n\t// +optional\n\tSearches []string `json:\"searches,omitempty\" protobuf:\"bytes,2,rep,name=searches\"`\n\t// A list of DNS resolver options.\n\t// This will be merged with the base options generated from DNSPolicy.\n\t// Duplicated entries will be removed. Resolution options given in Options\n\t// will override those that appear in the base DNSPolicy.\n\t// +optional\n\tOptions []PodDNSConfigOption `json:\"options,omitempty\" protobuf:\"bytes,3,rep,name=options\"`\n}\n\n// PodDNSConfigOption defines DNS resolver options of a pod.\ntype PodDNSConfigOption struct {\n\t// Required.\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// +optional\n\tValue *string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\n// IP address information for entries in the (plural) PodIPs field.\n// Each entry includes:\n//\n//\tIP: An IP address allocated to the pod. Routable at least within the cluster.\ntype PodIP struct {\n\t// ip is an IP address (IPv4 or IPv6) assigned to the pod\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n}\n\n// EphemeralContainerCommon is a copy of all fields in Container to be inlined in\n// EphemeralContainer. This separate type allows easy conversion from EphemeralContainer\n// to Container and allows separate documentation for the fields of EphemeralContainer.\n// When a new field is added to Container it must be added here as well.\ntype EphemeralContainerCommon struct {\n\t// Name of the ephemeral container specified as a DNS_LABEL.\n\t// This name must be unique among all containers, init containers and ephemeral containers.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Container image name.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images\n\tImage string `json:\"image,omitempty\" protobuf:\"bytes,2,opt,name=image\"`\n\t// Entrypoint array. Not executed within a shell.\n\t// The image's ENTRYPOINT is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,3,rep,name=command\"`\n\t// Arguments to the entrypoint.\n\t// The image's CMD is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\tArgs []string `json:\"args,omitempty\" protobuf:\"bytes,4,rep,name=args\"`\n\t// Container's working directory.\n\t// If not specified, the container runtime's default will be used, which\n\t// might be configured in the container image.\n\t// Cannot be updated.\n\t// +optional\n\tWorkingDir string `json:\"workingDir,omitempty\" protobuf:\"bytes,5,opt,name=workingDir\"`\n\t// Ports are not allowed for ephemeral containers.\n\t// +optional\n\t// +patchMergeKey=containerPort\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=containerPort\n\t// +listMapKey=protocol\n\tPorts []ContainerPort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"containerPort\" protobuf:\"bytes,6,rep,name=ports\"`\n\t// List of sources to populate environment variables in the container.\n\t// The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n\t// will be reported as an event when the container is starting. When a key exists in multiple\n\t// sources, the value associated with the last source will take precedence.\n\t// Values defined by an Env with a duplicate key will take precedence.\n\t// Cannot be updated.\n\t// +optional\n\tEnvFrom []EnvFromSource `json:\"envFrom,omitempty\" protobuf:\"bytes,19,rep,name=envFrom\"`\n\t// List of environment variables to set in the container.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tEnv []EnvVar `json:\"env,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=env\"`\n\t// Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\n\t// already allocated to the pod.\n\t// +optional\n\tResources ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,8,opt,name=resources\"`\n\t// Resources resize policy for the container.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\t// +listType=atomic\n\tResizePolicy []ContainerResizePolicy `json:\"resizePolicy,omitempty\" protobuf:\"bytes,23,rep,name=resizePolicy\"`\n\t// Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=mountPath\n\t// +patchStrategy=merge\n\tVolumeMounts []VolumeMount `json:\"volumeMounts,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"mountPath\" protobuf:\"bytes,9,rep,name=volumeMounts\"`\n\t// volumeDevices is the list of block devices to be used by the container.\n\t// +patchMergeKey=devicePath\n\t// +patchStrategy=merge\n\t// +optional\n\tVolumeDevices []VolumeDevice `json:\"volumeDevices,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"devicePath\" protobuf:\"bytes,21,rep,name=volumeDevices\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tLivenessProbe *Probe `json:\"livenessProbe,omitempty\" protobuf:\"bytes,10,opt,name=livenessProbe\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tReadinessProbe *Probe `json:\"readinessProbe,omitempty\" protobuf:\"bytes,11,opt,name=readinessProbe\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tStartupProbe *Probe `json:\"startupProbe,omitempty\" protobuf:\"bytes,22,opt,name=startupProbe\"`\n\t// Lifecycle is not allowed for ephemeral containers.\n\t// +optional\n\tLifecycle *Lifecycle `json:\"lifecycle,omitempty\" protobuf:\"bytes,12,opt,name=lifecycle\"`\n\t// Optional: Path at which the file to which the container's termination message\n\t// will be written is mounted into the container's filesystem.\n\t// Message written is intended to be brief final status, such as an assertion failure message.\n\t// Will be truncated by the node if greater than 4096 bytes. The total message length across\n\t// all containers will be limited to 12kb.\n\t// Defaults to /dev/termination-log.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePath string `json:\"terminationMessagePath,omitempty\" protobuf:\"bytes,13,opt,name=terminationMessagePath\"`\n\t// Indicate how the termination message should be populated. File will use the contents of\n\t// terminationMessagePath to populate the container status message on both success and failure.\n\t// FallbackToLogsOnError will use the last chunk of container log output if the termination\n\t// message file is empty and the container exited with an error.\n\t// The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n\t// Defaults to File.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePolicy TerminationMessagePolicy `json:\"terminationMessagePolicy,omitempty\" protobuf:\"bytes,20,opt,name=terminationMessagePolicy,casttype=TerminationMessagePolicy\"`\n\t// Image pull policy.\n\t// One of Always, Never, IfNotPresent.\n\t// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\t// +optional\n\tImagePullPolicy PullPolicy `json:\"imagePullPolicy,omitempty\" protobuf:\"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy\"`\n\t// Optional: SecurityContext defines the security options the ephemeral container should be run with.\n\t// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n\t// +optional\n\tSecurityContext *SecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,15,opt,name=securityContext\"`\n\n\t// Variables for interactive containers, these have very specialized use-cases (e.g. debugging)\n\t// and shouldn't be used for general purpose containers.\n\n\t// Whether this container should allocate a buffer for stdin in the container runtime. If this\n\t// is not set, reads from stdin in the container will always result in EOF.\n\t// Default is false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,16,opt,name=stdin\"`\n\t// Whether the container runtime should close the stdin channel after it has been opened by\n\t// a single attach. When stdin is true the stdin stream will remain open across multiple attach\n\t// sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n\t// first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n\t// at which time stdin is closed and remains closed until the container is restarted. If this\n\t// flag is false, a container processes that reads from stdin will never receive an EOF.\n\t// Default is false\n\t// +optional\n\tStdinOnce bool `json:\"stdinOnce,omitempty\" protobuf:\"varint,17,opt,name=stdinOnce\"`\n\t// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n\t// Default is false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,18,opt,name=tty\"`\n}\n\n// EphemeralContainerCommon converts to Container. All fields must be kept in sync between\n// these two types.\nvar _ = Container(EphemeralContainerCommon{})\n\n// An EphemeralContainer is a temporary container that you may add to an existing Pod for\n// user-initiated activities such as debugging. Ephemeral containers have no resource or\n// scheduling guarantees, and they will not be restarted when they exit or when a Pod is\n// removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the\n// Pod to exceed its resource allocation.\n//\n// To add an ephemeral container, use the ephemeralcontainers subresource of an existing\n// Pod. Ephemeral containers may not be removed or restarted.\ntype EphemeralContainer struct {\n\t// Ephemeral containers have all of the fields of Container, plus additional fields\n\t// specific to ephemeral containers. Fields in common with Container are in the\n\t// following inlined struct so than an EphemeralContainer may easily be converted\n\t// to a Container.\n\tEphemeralContainerCommon `json:\",inline\" protobuf:\"bytes,1,req\"`\n\n\t// If set, the name of the container from PodSpec that this ephemeral container targets.\n\t// The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\n\t// If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\t//\n\t// The container runtime must implement support for this feature. If the runtime does not\n\t// support namespace targeting then the result of setting this field is undefined.\n\t// +optional\n\tTargetContainerName string `json:\"targetContainerName,omitempty\" protobuf:\"bytes,2,opt,name=targetContainerName\"`\n}\n\n// PodStatus represents information about the status of a pod. Status may trail the actual\n// state of a system, especially if the node that hosts the pod cannot contact the control\n// plane.\ntype PodStatus struct {\n\t// The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.\n\t// The conditions array, the reason and message fields, and the individual container status\n\t// arrays contain more detail about the pod's status.\n\t// There are five possible phase values:\n\t//\n\t// Pending: The pod has been accepted by the Kubernetes system, but one or more of the\n\t// container images has not been created. This includes time before being scheduled as\n\t// well as time spent downloading images over the network, which could take a while.\n\t// Running: The pod has been bound to a node, and all of the containers have been created.\n\t// At least one container is still running, or is in the process of starting or restarting.\n\t// Succeeded: All containers in the pod have terminated in success, and will not be restarted.\n\t// Failed: All containers in the pod have terminated, and at least one container has\n\t// terminated in failure. The container either exited with non-zero status or was terminated\n\t// by the system.\n\t// Unknown: For some reason the state of the pod could not be obtained, typically due to an\n\t// error in communicating with the host of the pod.\n\t//\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\t// +optional\n\tPhase PodPhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PodPhase\"`\n\t// Current service state of pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []PodCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n\t// A human readable message indicating details about why the pod is in this condition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// A brief CamelCase message indicating details about why the pod is in this state.\n\t// e.g. 'Evicted'\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be\n\t// scheduled right away as preemption victims receive their graceful termination periods.\n\t// This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide\n\t// to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to\n\t// give the resources on this node to a higher priority pod that is created after preemption.\n\t// As a result, this field may be different than PodSpec.nodeName when the pod is\n\t// scheduled.\n\t// +optional\n\tNominatedNodeName string `json:\"nominatedNodeName,omitempty\" protobuf:\"bytes,11,opt,name=nominatedNodeName\"`\n\n\t// IP address of the host to which the pod is assigned. Empty if not yet scheduled.\n\t// +optional\n\tHostIP string `json:\"hostIP,omitempty\" protobuf:\"bytes,5,opt,name=hostIP\"`\n\t// IP address allocated to the pod. Routable at least within the cluster.\n\t// Empty if not yet allocated.\n\t// +optional\n\tPodIP string `json:\"podIP,omitempty\" protobuf:\"bytes,6,opt,name=podIP\"`\n\n\t// podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must\n\t// match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list\n\t// is empty if no IPs have been allocated yet.\n\t// +optional\n\t// +patchStrategy=merge\n\t// +patchMergeKey=ip\n\tPodIPs []PodIP `json:\"podIPs,omitempty\" protobuf:\"bytes,12,rep,name=podIPs\" patchStrategy:\"merge\" patchMergeKey:\"ip\"`\n\n\t// RFC 3339 date and time at which the object was acknowledged by the Kubelet.\n\t// This is before the Kubelet pulled the container image(s) for the pod.\n\t// +optional\n\tStartTime *metav1.Time `json:\"startTime,omitempty\" protobuf:\"bytes,7,opt,name=startTime\"`\n\n\t// The list has one entry per init container in the manifest. The most recent successful\n\t// init container will have ready = true, the most recently started container will have\n\t// startTime set.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n\tInitContainerStatuses []ContainerStatus `json:\"initContainerStatuses,omitempty\" protobuf:\"bytes,10,rep,name=initContainerStatuses\"`\n\n\t// The list has one entry per container in the manifest.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n\t// +optional\n\tContainerStatuses []ContainerStatus `json:\"containerStatuses,omitempty\" protobuf:\"bytes,8,rep,name=containerStatuses\"`\n\t// The Quality of Service (QOS) classification assigned to the pod based on resource requirements\n\t// See PodQOSClass type for available QOS classes\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n\t// +optional\n\tQOSClass PodQOSClass `json:\"qosClass,omitempty\" protobuf:\"bytes,9,rep,name=qosClass\"`\n\t// Status for any ephemeral containers that have run in this pod.\n\t// +optional\n\tEphemeralContainerStatuses []ContainerStatus `json:\"ephemeralContainerStatuses,omitempty\" protobuf:\"bytes,13,rep,name=ephemeralContainerStatuses\"`\n\n\t// Status of resources resize desired for pod's containers.\n\t// It is empty if no resources resize is pending.\n\t// Any changes to container resources will automatically set this to \"Proposed\"\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\tResize PodResizeStatus `json:\"resize,omitempty\" protobuf:\"bytes,14,opt,name=resize,casttype=PodResizeStatus\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\ntype PodStatusResult struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Most recently observed status of the pod.\n\t// This data may not be up to date.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PodStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=UpdateEphemeralContainers,verb=update,subresource=ephemeralcontainers\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Pod is a collection of containers that can run on a host. This resource is created\n// by clients and scheduled onto hosts.\ntype Pod struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the pod.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PodSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the pod.\n\t// This data may not be up to date.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PodStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodList is a list of Pods.\ntype PodList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of pods.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\n\tItems []Pod `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PodTemplateSpec describes the data a pod should have when created from a template\ntype PodTemplateSpec struct {\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the pod.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PodSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodTemplate describes a template for creating copies of a predefined pod.\ntype PodTemplate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Template defines the pods that will be created from this pod template.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tTemplate PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,2,opt,name=template\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodTemplateList is a list of PodTemplates.\ntype PodTemplateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of pod templates\n\tItems []PodTemplate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicationControllerSpec is the specification of a replication controller.\ntype ReplicationControllerSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the Replicas count.\n\t// If Selector is empty, it is defaulted to the labels present on the Pod template.\n\t// Label keys and values that must match in order to be controlled by this replication\n\t// controller, if empty defaulted to labels on Pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// TemplateRef is a reference to an object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// Reference to an object that describes the pod that will be created if insufficient replicas are detected.\n\t// +optional\n\t// TemplateRef *ObjectReference `json:\"templateRef,omitempty\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. This takes precedence over a TemplateRef.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate *PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicationControllerStatus represents the current status of a replication\n// controller.\ntype ReplicationControllerStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replication controller.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// The number of ready replicas for this replication controller.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replication controller.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed replication controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replication controller's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []ReplicationControllerCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicationControllerConditionType string\n\n// These are valid conditions of a replication controller.\nconst (\n\t// ReplicationControllerReplicaFailure is added in a replication controller when one of its pods\n\t// fails to be created due to insufficient quota, limit ranges, pod security policy, node selectors,\n\t// etc. or deleted due to kubelet being down or finalizers are failing.\n\tReplicationControllerReplicaFailure ReplicationControllerConditionType = \"ReplicaFailure\"\n)\n\n// ReplicationControllerCondition describes the state of a replication controller at a certain point.\ntype ReplicationControllerCondition struct {\n\t// Type of replication controller condition.\n\tType ReplicationControllerConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicationControllerConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ReplicationController represents the configuration of a replication controller.\ntype ReplicationController struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicationController are empty, they are defaulted to\n\t// be the same as the Pod(s) that the replication controller manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the replication controller.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicationControllerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the replication controller.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicationControllerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ReplicationControllerList is a collection of replication controllers.\ntype ReplicationControllerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of replication controllers.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicationController `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Session Affinity Type string\n// +enum\ntype ServiceAffinity string\n\nconst (\n\t// ServiceAffinityClientIP is the Client IP based.\n\tServiceAffinityClientIP ServiceAffinity = \"ClientIP\"\n\n\t// ServiceAffinityNone - no session affinity.\n\tServiceAffinityNone ServiceAffinity = \"None\"\n)\n\nconst DefaultClientIPServiceAffinitySeconds int32 = 10800\n\n// SessionAffinityConfig represents the configurations of session affinity.\ntype SessionAffinityConfig struct {\n\t// clientIP contains the configurations of Client IP based session affinity.\n\t// +optional\n\tClientIP *ClientIPConfig `json:\"clientIP,omitempty\" protobuf:\"bytes,1,opt,name=clientIP\"`\n}\n\n// ClientIPConfig represents the configurations of Client IP based session affinity.\ntype ClientIPConfig struct {\n\t// timeoutSeconds specifies the seconds of ClientIP type session sticky time.\n\t// The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\n\t// Default value is 10800(for 3 hours).\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,1,opt,name=timeoutSeconds\"`\n}\n\n// Service Type string describes ingress methods for a service\n// +enum\ntype ServiceType string\n\nconst (\n\t// ServiceTypeClusterIP means a service will only be accessible inside the\n\t// cluster, via the cluster IP.\n\tServiceTypeClusterIP ServiceType = \"ClusterIP\"\n\n\t// ServiceTypeNodePort means a service will be exposed on one port of\n\t// every node, in addition to 'ClusterIP' type.\n\tServiceTypeNodePort ServiceType = \"NodePort\"\n\n\t// ServiceTypeLoadBalancer means a service will be exposed via an\n\t// external load balancer (if the cloud provider supports it), in addition\n\t// to 'NodePort' type.\n\tServiceTypeLoadBalancer ServiceType = \"LoadBalancer\"\n\n\t// ServiceTypeExternalName means a service consists of only a reference to\n\t// an external name that kubedns or equivalent will return as a CNAME\n\t// record, with no exposing or proxying of any pods involved.\n\tServiceTypeExternalName ServiceType = \"ExternalName\"\n)\n\n// ServiceInternalTrafficPolicy describes how nodes distribute service traffic they\n// receive on the ClusterIP.\n// +enum\ntype ServiceInternalTrafficPolicy string\n\nconst (\n\t// ServiceInternalTrafficPolicyCluster routes traffic to all endpoints.\n\tServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicy = \"Cluster\"\n\n\t// ServiceInternalTrafficPolicyLocal routes traffic only to endpoints on the same\n\t// node as the client pod (dropping the traffic if there are no local endpoints).\n\tServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicy = \"Local\"\n)\n\n// for backwards compat\n// +enum\ntype ServiceInternalTrafficPolicyType = ServiceInternalTrafficPolicy\n\n// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they\n// receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs,\n// and LoadBalancer IPs.\n// +enum\ntype ServiceExternalTrafficPolicy string\n\nconst (\n\t// ServiceExternalTrafficPolicyCluster routes traffic to all endpoints.\n\tServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = \"Cluster\"\n\n\t// ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by\n\t// routing only to endpoints on the same node as the traffic was received on\n\t// (dropping the traffic if there are no local endpoints).\n\tServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = \"Local\"\n)\n\n// for backwards compat\n// +enum\ntype ServiceExternalTrafficPolicyType = ServiceExternalTrafficPolicy\n\nconst (\n\tServiceExternalTrafficPolicyTypeLocal   = ServiceExternalTrafficPolicyLocal\n\tServiceExternalTrafficPolicyTypeCluster = ServiceExternalTrafficPolicyCluster\n)\n\n// These are the valid conditions of a service.\nconst (\n\t// LoadBalancerPortsError represents the condition of the requested ports\n\t// on the cloud load balancer instance.\n\tLoadBalancerPortsError = \"LoadBalancerPortsError\"\n\t// LoadBalancerPortsErrorReason reason in ServiceStatus condition LoadBalancerPortsError\n\t// means the LoadBalancer was not able to be configured correctly.\n\tLoadBalancerPortsErrorReason = \"LoadBalancerMixedProtocolNotSupported\"\n)\n\n// ServiceStatus represents the current status of a service.\ntype ServiceStatus struct {\n\t// LoadBalancer contains the current status of the load-balancer,\n\t// if one is present.\n\t// +optional\n\tLoadBalancer LoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype LoadBalancerStatus struct {\n\t// Ingress is a list containing ingress points for the load-balancer.\n\t// Traffic intended for the service should be sent to these ingress points.\n\t// +optional\n\tIngress []LoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// LoadBalancerIngress represents the status of a load-balancer ingress point:\n// traffic intended for the service should be sent to an ingress point.\ntype LoadBalancerIngress struct {\n\t// IP is set for load-balancer ingress points that are IP based\n\t// (typically GCE or OpenStack load-balancers)\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// Hostname is set for load-balancer ingress points that are DNS based\n\t// (typically AWS load-balancers)\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// Ports is a list of records of service ports\n\t// If used, every port defined in the service should have an entry in it\n\t// +listType=atomic\n\t// +optional\n\tPorts []PortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IPFamily represents the IP Family (IPv4 or IPv6). This type is used\n// to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\n// +enum\ntype IPFamily string\n\nconst (\n\t// IPv4Protocol indicates that this IP is IPv4 protocol\n\tIPv4Protocol IPFamily = \"IPv4\"\n\t// IPv6Protocol indicates that this IP is IPv6 protocol\n\tIPv6Protocol IPFamily = \"IPv6\"\n)\n\n// IPFamilyPolicy represents the dual-stack-ness requested or required by a Service\n// +enum\ntype IPFamilyPolicy string\n\nconst (\n\t// IPFamilyPolicySingleStack indicates that this service is required to have a single IPFamily.\n\t// The IPFamily assigned is based on the default IPFamily used by the cluster\n\t// or as identified by service.spec.ipFamilies field\n\tIPFamilyPolicySingleStack IPFamilyPolicy = \"SingleStack\"\n\t// IPFamilyPolicyPreferDualStack indicates that this service prefers dual-stack when\n\t// the cluster is configured for dual-stack. If the cluster is not configured\n\t// for dual-stack the service will be assigned a single IPFamily. If the IPFamily is not\n\t// set in service.spec.ipFamilies then the service will be assigned the default IPFamily\n\t// configured on the cluster\n\tIPFamilyPolicyPreferDualStack IPFamilyPolicy = \"PreferDualStack\"\n\t// IPFamilyPolicyRequireDualStack indicates that this service requires dual-stack. Using\n\t// IPFamilyPolicyRequireDualStack on a single stack cluster will result in validation errors. The\n\t// IPFamilies (and their order) assigned  to this service is based on service.spec.ipFamilies. If\n\t// service.spec.ipFamilies was not provided then it will be assigned according to how they are\n\t// configured on the cluster. If service.spec.ipFamilies has only one entry then the alternative\n\t// IPFamily will be added by apiserver\n\tIPFamilyPolicyRequireDualStack IPFamilyPolicy = \"RequireDualStack\"\n)\n\n// for backwards compat\n// +enum\ntype IPFamilyPolicyType = IPFamilyPolicy\n\n// ServiceSpec describes the attributes that a user creates on a service.\ntype ServiceSpec struct {\n\t// The list of ports that are exposed by this service.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +patchMergeKey=port\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=port\n\t// +listMapKey=protocol\n\tPorts []ServicePort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"port\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// Route service traffic to pods with label keys and values matching this\n\t// selector. If empty or not present, the service is assumed to have an\n\t// external process managing its endpoints, which Kubernetes will not\n\t// modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\n\t// Ignored if type is ExternalName.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// clusterIP is the IP address of the service and is usually assigned\n\t// randomly. If an address is specified manually, is in-range (as per\n\t// system configuration), and is not in use, it will be allocated to the\n\t// service; otherwise creation of the service will fail. This field may not\n\t// be changed through updates unless the type field is also being changed\n\t// to ExternalName (which requires this field to be blank) or the type\n\t// field is being changed from ExternalName (in which case this field may\n\t// optionally be specified, as describe above).  Valid values are \"None\",\n\t// empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n\t// \"headless service\" (no virtual IP), which is useful when direct endpoint\n\t// connections are preferred and proxying is not required.  Only applies to\n\t// types ClusterIP, NodePort, and LoadBalancer. If this field is specified\n\t// when creating a Service of type ExternalName, creation will fail. This\n\t// field will be wiped when updating a Service to type ExternalName.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +optional\n\tClusterIP string `json:\"clusterIP,omitempty\" protobuf:\"bytes,3,opt,name=clusterIP\"`\n\n\t// ClusterIPs is a list of IP addresses assigned to this service, and are\n\t// usually assigned randomly.  If an address is specified manually, is\n\t// in-range (as per system configuration), and is not in use, it will be\n\t// allocated to the service; otherwise creation of the service will fail.\n\t// This field may not be changed through updates unless the type field is\n\t// also being changed to ExternalName (which requires this field to be\n\t// empty) or the type field is being changed from ExternalName (in which\n\t// case this field may optionally be specified, as describe above).  Valid\n\t// values are \"None\", empty string (\"\"), or a valid IP address.  Setting\n\t// this to \"None\" makes a \"headless service\" (no virtual IP), which is\n\t// useful when direct endpoint connections are preferred and proxying is\n\t// not required.  Only applies to types ClusterIP, NodePort, and\n\t// LoadBalancer. If this field is specified when creating a Service of type\n\t// ExternalName, creation will fail. This field will be wiped when updating\n\t// a Service to type ExternalName.  If this field is not specified, it will\n\t// be initialized from the clusterIP field.  If this field is specified,\n\t// clients must ensure that clusterIPs[0] and clusterIP have the same\n\t// value.\n\t//\n\t// This field may hold a maximum of two entries (dual-stack IPs, in either order).\n\t// These IPs must correspond to the values of the ipFamilies field. Both\n\t// clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +listType=atomic\n\t// +optional\n\tClusterIPs []string `json:\"clusterIPs,omitempty\" protobuf:\"bytes,18,opt,name=clusterIPs\"`\n\n\t// type determines how the Service is exposed. Defaults to ClusterIP. Valid\n\t// options are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n\t// \"ClusterIP\" allocates a cluster-internal IP address for load-balancing\n\t// to endpoints. Endpoints are determined by the selector or if that is not\n\t// specified, by manual construction of an Endpoints object or\n\t// EndpointSlice objects. If clusterIP is \"None\", no virtual IP is\n\t// allocated and the endpoints are published as a set of endpoints rather\n\t// than a virtual IP.\n\t// \"NodePort\" builds on ClusterIP and allocates a port on every node which\n\t// routes to the same endpoints as the clusterIP.\n\t// \"LoadBalancer\" builds on NodePort and creates an external load-balancer\n\t// (if supported in the current cloud) which routes to the same endpoints\n\t// as the clusterIP.\n\t// \"ExternalName\" aliases this service to the specified externalName.\n\t// Several other fields do not apply to ExternalName services.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n\t// +optional\n\tType ServiceType `json:\"type,omitempty\" protobuf:\"bytes,4,opt,name=type,casttype=ServiceType\"`\n\n\t// externalIPs is a list of IP addresses for which nodes in the cluster\n\t// will also accept traffic for this service.  These IPs are not managed by\n\t// Kubernetes.  The user is responsible for ensuring that traffic arrives\n\t// at a node with this IP.  A common example is external load-balancers\n\t// that are not part of the Kubernetes system.\n\t// +optional\n\tExternalIPs []string `json:\"externalIPs,omitempty\" protobuf:\"bytes,5,rep,name=externalIPs\"`\n\n\t// Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\n\t// Enable client IP based session affinity.\n\t// Must be ClientIP or None.\n\t// Defaults to None.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +optional\n\tSessionAffinity ServiceAffinity `json:\"sessionAffinity,omitempty\" protobuf:\"bytes,7,opt,name=sessionAffinity,casttype=ServiceAffinity\"`\n\n\t// Only applies to Service Type: LoadBalancer.\n\t// This feature depends on whether the underlying cloud-provider supports specifying\n\t// the loadBalancerIP when a load balancer is created.\n\t// This field will be ignored if the cloud-provider does not support the feature.\n\t// Deprecated: This field was under-specified and its meaning varies across implementations,\n\t// and it cannot support dual-stack.\n\t// As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available.\n\t// This field may be removed in a future API version.\n\t// +optional\n\tLoadBalancerIP string `json:\"loadBalancerIP,omitempty\" protobuf:\"bytes,8,opt,name=loadBalancerIP\"`\n\n\t// If specified and supported by the platform, this will restrict traffic through the cloud-provider\n\t// load-balancer will be restricted to the specified client IPs. This field will be ignored if the\n\t// cloud-provider does not support the feature.\"\n\t// More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n\t// +optional\n\tLoadBalancerSourceRanges []string `json:\"loadBalancerSourceRanges,omitempty\" protobuf:\"bytes,9,opt,name=loadBalancerSourceRanges\"`\n\n\t// externalName is the external reference that discovery mechanisms will\n\t// return as an alias for this service (e.g. a DNS CNAME record). No\n\t// proxying will be involved.  Must be a lowercase RFC-1123 hostname\n\t// (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n\t// +optional\n\tExternalName string `json:\"externalName,omitempty\" protobuf:\"bytes,10,opt,name=externalName\"`\n\n\t// externalTrafficPolicy describes how nodes distribute service traffic they\n\t// receive on one of the Service's \"externally-facing\" addresses (NodePorts,\n\t// ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure\n\t// the service in a way that assumes that external load balancers will take care\n\t// of balancing the service traffic between nodes, and so each node will deliver\n\t// traffic only to the node-local endpoints of the service, without masquerading\n\t// the client source IP. (Traffic mistakenly sent to a node with no endpoints will\n\t// be dropped.) The default value, \"Cluster\", uses the standard behavior of\n\t// routing to all endpoints evenly (possibly modified by topology and other\n\t// features). Note that traffic sent to an External IP or LoadBalancer IP from\n\t// within the cluster will always get \"Cluster\" semantics, but clients sending to\n\t// a NodePort from within the cluster may need to take traffic policy into account\n\t// when picking a node.\n\t// +optional\n\tExternalTrafficPolicy ServiceExternalTrafficPolicy `json:\"externalTrafficPolicy,omitempty\" protobuf:\"bytes,11,opt,name=externalTrafficPolicy\"`\n\n\t// healthCheckNodePort specifies the healthcheck nodePort for the service.\n\t// This only applies when type is set to LoadBalancer and\n\t// externalTrafficPolicy is set to Local. If a value is specified, is\n\t// in-range, and is not in use, it will be used.  If not specified, a value\n\t// will be automatically allocated.  External systems (e.g. load-balancers)\n\t// can use this port to determine if a given node holds endpoints for this\n\t// service or not.  If this field is specified when creating a Service\n\t// which does not need it, creation will fail. This field will be wiped\n\t// when updating a Service to no longer need it (e.g. changing type).\n\t// This field cannot be updated once set.\n\t// +optional\n\tHealthCheckNodePort int32 `json:\"healthCheckNodePort,omitempty\" protobuf:\"bytes,12,opt,name=healthCheckNodePort\"`\n\n\t// publishNotReadyAddresses indicates that any agent which deals with endpoints for this\n\t// Service should disregard any indications of ready/not-ready.\n\t// The primary use case for setting this field is for a StatefulSet's Headless Service to\n\t// propagate SRV DNS records for its Pods for the purpose of peer discovery.\n\t// The Kubernetes controllers that generate Endpoints and EndpointSlice resources for\n\t// Services interpret this to mean that all endpoints are considered \"ready\" even if the\n\t// Pods themselves are not. Agents which consume only Kubernetes generated endpoints\n\t// through the Endpoints or EndpointSlice resources can safely assume this behavior.\n\t// +optional\n\tPublishNotReadyAddresses bool `json:\"publishNotReadyAddresses,omitempty\" protobuf:\"varint,13,opt,name=publishNotReadyAddresses\"`\n\n\t// sessionAffinityConfig contains the configurations of session affinity.\n\t// +optional\n\tSessionAffinityConfig *SessionAffinityConfig `json:\"sessionAffinityConfig,omitempty\" protobuf:\"bytes,14,opt,name=sessionAffinityConfig\"`\n\n\t// TopologyKeys is tombstoned to show why 16 is reserved protobuf tag.\n\t// TopologyKeys []string `json:\"topologyKeys,omitempty\" protobuf:\"bytes,16,opt,name=topologyKeys\"`\n\n\t// IPFamily is tombstoned to show why 15 is a reserved protobuf tag.\n\t// IPFamily *IPFamily `json:\"ipFamily,omitempty\" protobuf:\"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily\"`\n\n\t// IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\n\t// service. This field is usually assigned automatically based on cluster\n\t// configuration and the ipFamilyPolicy field. If this field is specified\n\t// manually, the requested family is available in the cluster,\n\t// and ipFamilyPolicy allows it, it will be used; otherwise creation of\n\t// the service will fail. This field is conditionally mutable: it allows\n\t// for adding or removing a secondary IP family, but it does not allow\n\t// changing the primary IP family of the Service. Valid values are \"IPv4\"\n\t// and \"IPv6\".  This field only applies to Services of types ClusterIP,\n\t// NodePort, and LoadBalancer, and does apply to \"headless\" services.\n\t// This field will be wiped when updating a Service to type ExternalName.\n\t//\n\t// This field may hold a maximum of two entries (dual-stack families, in\n\t// either order).  These families must correspond to the values of the\n\t// clusterIPs field, if specified. Both clusterIPs and ipFamilies are\n\t// governed by the ipFamilyPolicy field.\n\t// +listType=atomic\n\t// +optional\n\tIPFamilies []IPFamily `json:\"ipFamilies,omitempty\" protobuf:\"bytes,19,opt,name=ipFamilies,casttype=IPFamily\"`\n\n\t// IPFamilyPolicy represents the dual-stack-ness requested or required by\n\t// this Service. If there is no value provided, then this field will be set\n\t// to SingleStack. Services can be \"SingleStack\" (a single IP family),\n\t// \"PreferDualStack\" (two IP families on dual-stack configured clusters or\n\t// a single IP family on single-stack clusters), or \"RequireDualStack\"\n\t// (two IP families on dual-stack configured clusters, otherwise fail). The\n\t// ipFamilies and clusterIPs fields depend on the value of this field. This\n\t// field will be wiped when updating a service to type ExternalName.\n\t// +optional\n\tIPFamilyPolicy *IPFamilyPolicy `json:\"ipFamilyPolicy,omitempty\" protobuf:\"bytes,17,opt,name=ipFamilyPolicy,casttype=IPFamilyPolicy\"`\n\n\t// allocateLoadBalancerNodePorts defines if NodePorts will be automatically\n\t// allocated for services with type LoadBalancer.  Default is \"true\". It\n\t// may be set to \"false\" if the cluster load-balancer does not rely on\n\t// NodePorts.  If the caller requests specific NodePorts (by specifying a\n\t// value), those requests will be respected, regardless of this field.\n\t// This field may only be set for services with type LoadBalancer and will\n\t// be cleared if the type is changed to any other type.\n\t// +optional\n\tAllocateLoadBalancerNodePorts *bool `json:\"allocateLoadBalancerNodePorts,omitempty\" protobuf:\"bytes,20,opt,name=allocateLoadBalancerNodePorts\"`\n\n\t// loadBalancerClass is the class of the load balancer implementation this Service belongs to.\n\t// If specified, the value of this field must be a label-style identifier, with an optional prefix,\n\t// e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\n\t// This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\n\t// balancer implementation is used, today this is typically done through the cloud provider integration,\n\t// but should apply for any default implementation. If set, it is assumed that a load balancer\n\t// implementation is watching for Services with a matching class. Any default load balancer\n\t// implementation (e.g. cloud providers) should ignore Services that set this field.\n\t// This field can only be set when creating or updating a Service to type 'LoadBalancer'.\n\t// Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n\t// +optional\n\tLoadBalancerClass *string `json:\"loadBalancerClass,omitempty\" protobuf:\"bytes,21,opt,name=loadBalancerClass\"`\n\n\t// InternalTrafficPolicy describes how nodes distribute service traffic they\n\t// receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods\n\t// only want to talk to endpoints of the service on the same node as the pod,\n\t// dropping the traffic if there are no local endpoints. The default value,\n\t// \"Cluster\", uses the standard behavior of routing to all endpoints evenly\n\t// (possibly modified by topology and other features).\n\t// +optional\n\tInternalTrafficPolicy *ServiceInternalTrafficPolicy `json:\"internalTrafficPolicy,omitempty\" protobuf:\"bytes,22,opt,name=internalTrafficPolicy\"`\n}\n\n// ServicePort contains information on service's port.\ntype ServicePort struct {\n\t// The name of this port within the service. This must be a DNS_LABEL.\n\t// All ports within a ServiceSpec must have unique names. When considering\n\t// the endpoints for a Service, this must match the 'name' field in the\n\t// EndpointPort.\n\t// Optional if only one ServicePort is defined on this service.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\n\t// Default is TCP.\n\t// +default=\"TCP\"\n\t// +optional\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// The application protocol for this port.\n\t// This field follows standard Kubernetes label syntax.\n\t// Un-prefixed names are reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t// Non-standard protocols should use prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,6,opt,name=appProtocol\"`\n\n\t// The port that will be exposed by this service.\n\tPort int32 `json:\"port\" protobuf:\"varint,3,opt,name=port\"`\n\n\t// Number or name of the port to access on the pods targeted by the service.\n\t// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\n\t// If this is a string, it will be looked up as a named port in the\n\t// target Pod's container ports. If this is not specified, the value\n\t// of the 'port' field is used (an identity map).\n\t// This field is ignored for services with clusterIP=None, and should be\n\t// omitted or set equal to the 'port' field.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n\t// +optional\n\tTargetPort intstr.IntOrString `json:\"targetPort,omitempty\" protobuf:\"bytes,4,opt,name=targetPort\"`\n\n\t// The port on each node on which this service is exposed when type is\n\t// NodePort or LoadBalancer.  Usually assigned by the system. If a value is\n\t// specified, in-range, and not in use it will be used, otherwise the\n\t// operation will fail.  If not specified, a port will be allocated if this\n\t// Service requires one.  If this field is specified when creating a\n\t// Service which does not need it, creation will fail. This field will be\n\t// wiped when updating a Service to no longer need it (e.g. changing type\n\t// from NodePort to ClusterIP).\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n\t// +optional\n\tNodePort int32 `json:\"nodePort,omitempty\" protobuf:\"varint,5,opt,name=nodePort\"`\n}\n\n// +genclient\n// +genclient:skipVerbs=deleteCollection\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Service is a named abstraction of software service (for example, mysql) consisting of local port\n// (for example 3306) that the proxy listens on, and the selector that determines which pods\n// will answer requests sent through the proxy.\ntype Service struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of a service.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ServiceSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the service.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ServiceStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// ClusterIPNone - do not assign a cluster IP\n\t// no proxying required and no environment variables should be created for pods\n\tClusterIPNone = \"None\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ServiceList holds a list of services.\ntype ServiceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of services\n\tItems []Service `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=CreateToken,verb=create,subresource=token,input=k8s.io/api/authentication/v1.TokenRequest,result=k8s.io/api/authentication/v1.TokenRequest\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ServiceAccount binds together:\n// * a name, understood by users, and perhaps by peripheral systems, for an identity\n// * a principal that can be authenticated and authorized\n// * a set of secrets\ntype ServiceAccount struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use.\n\t// Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\".\n\t// This field should not be used to find auto-generated service account token secrets for use outside of pods.\n\t// Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tSecrets []ObjectReference `json:\"secrets,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=secrets\"`\n\n\t// ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images\n\t// in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets\n\t// can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\n\t// +optional\n\tImagePullSecrets []LocalObjectReference `json:\"imagePullSecrets,omitempty\" protobuf:\"bytes,3,rep,name=imagePullSecrets\"`\n\n\t// AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.\n\t// Can be overridden at the pod level.\n\t// +optional\n\tAutomountServiceAccountToken *bool `json:\"automountServiceAccountToken,omitempty\" protobuf:\"varint,4,opt,name=automountServiceAccountToken\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ServiceAccountList is a list of ServiceAccount objects\ntype ServiceAccountList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ServiceAccounts.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n\tItems []ServiceAccount `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Endpoints is a collection of endpoints that implement the actual service. Example:\n//\n//\t Name: \"mysvc\",\n//\t Subsets: [\n//\t   {\n//\t     Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n//\t     Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n//\t   },\n//\t   {\n//\t     Addresses: [{\"ip\": \"10.10.3.3\"}],\n//\t     Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n//\t   },\n//\t]\ntype Endpoints struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The set of all endpoints is the union of all subsets. Addresses are placed into\n\t// subsets according to the IPs they share. A single address with multiple ports,\n\t// some of which are ready and some of which are not (because they come from\n\t// different containers) will result in the address being displayed in different\n\t// subsets for the different ports. No address will appear in both Addresses and\n\t// NotReadyAddresses in the same subset.\n\t// Sets of addresses and ports that comprise a service.\n\t// +optional\n\tSubsets []EndpointSubset `json:\"subsets,omitempty\" protobuf:\"bytes,2,rep,name=subsets\"`\n}\n\n// EndpointSubset is a group of addresses with a common set of ports. The\n// expanded set of endpoints is the Cartesian product of Addresses x Ports.\n// For example, given:\n//\n//\t{\n//\t  Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n//\t  Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n//\t}\n//\n// The resulting set of endpoints can be viewed as:\n//\n//\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n//\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\ntype EndpointSubset struct {\n\t// IP addresses which offer the related ports that are marked as ready. These endpoints\n\t// should be considered safe for load balancers and clients to utilize.\n\t// +optional\n\tAddresses []EndpointAddress `json:\"addresses,omitempty\" protobuf:\"bytes,1,rep,name=addresses\"`\n\t// IP addresses which offer the related ports but are not currently marked as ready\n\t// because they have not yet finished starting, have recently failed a readiness check,\n\t// or have recently failed a liveness check.\n\t// +optional\n\tNotReadyAddresses []EndpointAddress `json:\"notReadyAddresses,omitempty\" protobuf:\"bytes,2,rep,name=notReadyAddresses\"`\n\t// Port numbers available on the related IP addresses.\n\t// +optional\n\tPorts []EndpointPort `json:\"ports,omitempty\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// EndpointAddress is a tuple that describes single IP address.\n// +structType=atomic\ntype EndpointAddress struct {\n\t// The IP of this endpoint.\n\t// May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10),\n\t// or link-local multicast (224.0.0.0/24 or ff02::/16).\n\tIP string `json:\"ip\" protobuf:\"bytes,1,opt,name=ip\"`\n\t// The Hostname of this endpoint\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\t// Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,4,opt,name=nodeName\"`\n\t// Reference to object providing the endpoint.\n\t// +optional\n\tTargetRef *ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,2,opt,name=targetRef\"`\n}\n\n// EndpointPort is a tuple that describes a single port.\n// +structType=atomic\ntype EndpointPort struct {\n\t// The name of this port.  This must match the 'name' field in the\n\t// corresponding ServicePort.\n\t// Must be a DNS_LABEL.\n\t// Optional only if one port is defined.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// The port number of the endpoint.\n\tPort int32 `json:\"port\" protobuf:\"varint,2,opt,name=port\"`\n\n\t// The IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\t// +optional\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,3,opt,name=protocol,casttype=Protocol\"`\n\n\t// The application protocol for this port.\n\t// This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n\t// This field follows standard Kubernetes label syntax.\n\t// Valid values are either:\n\t//\n\t// * Un-prefixed protocol names - reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t//\n\t// * Kubernetes-defined prefixed names:\n\t//   * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\n\t//\n\t// * Other protocols should use implementation-defined prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,opt,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// EndpointsList is a list of endpoints.\ntype EndpointsList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of endpoints.\n\tItems []Endpoints `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// NodeSpec describes the attributes that a node is created with.\ntype NodeSpec struct {\n\t// PodCIDR represents the pod IP range assigned to the node.\n\t// +optional\n\tPodCIDR string `json:\"podCIDR,omitempty\" protobuf:\"bytes,1,opt,name=podCIDR\"`\n\n\t// podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this\n\t// field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for\n\t// each of IPv4 and IPv6.\n\t// +optional\n\t// +patchStrategy=merge\n\tPodCIDRs []string `json:\"podCIDRs,omitempty\" protobuf:\"bytes,7,opt,name=podCIDRs\" patchStrategy:\"merge\"`\n\n\t// ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\n\t// +optional\n\tProviderID string `json:\"providerID,omitempty\" protobuf:\"bytes,3,opt,name=providerID\"`\n\t// Unschedulable controls node schedulability of new pods. By default, node is schedulable.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\n\t// +optional\n\tUnschedulable bool `json:\"unschedulable,omitempty\" protobuf:\"varint,4,opt,name=unschedulable\"`\n\t// If specified, the node's taints.\n\t// +optional\n\tTaints []Taint `json:\"taints,omitempty\" protobuf:\"bytes,5,opt,name=taints\"`\n\n\t// Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\n\t// +optional\n\tConfigSource *NodeConfigSource `json:\"configSource,omitempty\" protobuf:\"bytes,6,opt,name=configSource\"`\n\n\t// Deprecated. Not all kubelets will set this field. Remove field after 1.13.\n\t// see: https://issues.k8s.io/61966\n\t// +optional\n\tDoNotUseExternalID string `json:\"externalID,omitempty\" protobuf:\"bytes,2,opt,name=externalID\"`\n}\n\n// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\n// This API is deprecated since 1.22\ntype NodeConfigSource struct {\n\t// For historical context, regarding the below kind, apiVersion, and configMapRef deprecation tags:\n\t// 1. kind/apiVersion were used by the kubelet to persist this struct to disk (they had no protobuf tags)\n\t// 2. configMapRef and proto tag 1 were used by the API to refer to a configmap,\n\t//    but used a generic ObjectReference type that didn't really have the fields we needed\n\t// All uses/persistence of the NodeConfigSource struct prior to 1.11 were gated by alpha feature flags,\n\t// so there was no persisted data for these fields that needed to be migrated/handled.\n\n\t// +k8s:deprecated=kind\n\t// +k8s:deprecated=apiVersion\n\t// +k8s:deprecated=configMapRef,protobuf=1\n\n\t// ConfigMap is a reference to a Node's ConfigMap\n\tConfigMap *ConfigMapNodeConfigSource `json:\"configMap,omitempty\" protobuf:\"bytes,2,opt,name=configMap\"`\n}\n\n// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.\n// This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\ntype ConfigMapNodeConfigSource struct {\n\t// Namespace is the metadata.namespace of the referenced ConfigMap.\n\t// This field is required in all cases.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\n\t// Name is the metadata.name of the referenced ConfigMap.\n\t// This field is required in all cases.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// UID is the metadata.UID of the referenced ConfigMap.\n\t// This field is forbidden in Node.Spec, and required in Node.Status.\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\n\t// ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.\n\t// This field is forbidden in Node.Spec, and required in Node.Status.\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,4,opt,name=resourceVersion\"`\n\n\t// KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure\n\t// This field is required in all cases.\n\tKubeletConfigKey string `json:\"kubeletConfigKey\" protobuf:\"bytes,5,opt,name=kubeletConfigKey\"`\n}\n\n// DaemonEndpoint contains information about a single Daemon endpoint.\ntype DaemonEndpoint struct {\n\t/*\n\t\tThe port tag was not properly in quotes in earlier releases, so it must be\n\t\tuppercased for backwards compat (since it was falling back to var name of\n\t\t'Port').\n\t*/\n\n\t// Port number of the given endpoint.\n\tPort int32 `json:\"Port\" protobuf:\"varint,1,opt,name=Port\"`\n}\n\n// NodeDaemonEndpoints lists ports opened by daemons running on the Node.\ntype NodeDaemonEndpoints struct {\n\t// Endpoint on which Kubelet is listening.\n\t// +optional\n\tKubeletEndpoint DaemonEndpoint `json:\"kubeletEndpoint,omitempty\" protobuf:\"bytes,1,opt,name=kubeletEndpoint\"`\n}\n\n// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\ntype NodeSystemInfo struct {\n\t// MachineID reported by the node. For unique machine identification\n\t// in the cluster this field is preferred. Learn more from man(5)\n\t// machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\n\tMachineID string `json:\"machineID\" protobuf:\"bytes,1,opt,name=machineID\"`\n\t// SystemUUID reported by the node. For unique machine identification\n\t// MachineID is preferred. This field is specific to Red Hat hosts\n\t// https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\n\tSystemUUID string `json:\"systemUUID\" protobuf:\"bytes,2,opt,name=systemUUID\"`\n\t// Boot ID reported by the node.\n\tBootID string `json:\"bootID\" protobuf:\"bytes,3,opt,name=bootID\"`\n\t// Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\n\tKernelVersion string `json:\"kernelVersion\" protobuf:\"bytes,4,opt,name=kernelVersion\"`\n\t// OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\n\tOSImage string `json:\"osImage\" protobuf:\"bytes,5,opt,name=osImage\"`\n\t// ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\n\tContainerRuntimeVersion string `json:\"containerRuntimeVersion\" protobuf:\"bytes,6,opt,name=containerRuntimeVersion\"`\n\t// Kubelet Version reported by the node.\n\tKubeletVersion string `json:\"kubeletVersion\" protobuf:\"bytes,7,opt,name=kubeletVersion\"`\n\t// KubeProxy Version reported by the node.\n\tKubeProxyVersion string `json:\"kubeProxyVersion\" protobuf:\"bytes,8,opt,name=kubeProxyVersion\"`\n\t// The Operating System reported by the node\n\tOperatingSystem string `json:\"operatingSystem\" protobuf:\"bytes,9,opt,name=operatingSystem\"`\n\t// The Architecture reported by the node\n\tArchitecture string `json:\"architecture\" protobuf:\"bytes,10,opt,name=architecture\"`\n}\n\n// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\ntype NodeConfigStatus struct {\n\t// Assigned reports the checkpointed config the node will try to use.\n\t// When Node.Spec.ConfigSource is updated, the node checkpoints the associated\n\t// config payload to local disk, along with a record indicating intended\n\t// config. The node refers to this record to choose its config checkpoint, and\n\t// reports this record in Assigned. Assigned only updates in the status after\n\t// the record has been checkpointed to disk. When the Kubelet is restarted,\n\t// it tries to make the Assigned config the Active config by loading and\n\t// validating the checkpointed payload identified by Assigned.\n\t// +optional\n\tAssigned *NodeConfigSource `json:\"assigned,omitempty\" protobuf:\"bytes,1,opt,name=assigned\"`\n\t// Active reports the checkpointed config the node is actively using.\n\t// Active will represent either the current version of the Assigned config,\n\t// or the current LastKnownGood config, depending on whether attempting to use the\n\t// Assigned config results in an error.\n\t// +optional\n\tActive *NodeConfigSource `json:\"active,omitempty\" protobuf:\"bytes,2,opt,name=active\"`\n\t// LastKnownGood reports the checkpointed config the node will fall back to\n\t// when it encounters an error attempting to use the Assigned config.\n\t// The Assigned config becomes the LastKnownGood config when the node determines\n\t// that the Assigned config is stable and correct.\n\t// This is currently implemented as a 10-minute soak period starting when the local\n\t// record of Assigned config is updated. If the Assigned config is Active at the end\n\t// of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is\n\t// reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,\n\t// because the local default config is always assumed good.\n\t// You should not make assumptions about the node's method of determining config stability\n\t// and correctness, as this may change or become configurable in the future.\n\t// +optional\n\tLastKnownGood *NodeConfigSource `json:\"lastKnownGood,omitempty\" protobuf:\"bytes,3,opt,name=lastKnownGood\"`\n\t// Error describes any problems reconciling the Spec.ConfigSource to the Active config.\n\t// Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned\n\t// record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting\n\t// to load or validate the Assigned config, etc.\n\t// Errors may occur at different points while syncing config. Earlier errors (e.g. download or\n\t// checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across\n\t// Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in\n\t// a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error\n\t// by fixing the config assigned in Spec.ConfigSource.\n\t// You can find additional information for debugging by searching the error message in the Kubelet log.\n\t// Error is a human-readable description of the error state; machines can check whether or not Error\n\t// is empty, but should not rely on the stability of the Error text across Kubelet versions.\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,4,opt,name=error\"`\n}\n\n// NodeStatus is information about the current status of a node.\ntype NodeStatus struct {\n\t// Capacity represents the total resources of a node.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// Allocatable represents the resources of a node that are available for scheduling.\n\t// Defaults to Capacity.\n\t// +optional\n\tAllocatable ResourceList `json:\"allocatable,omitempty\" protobuf:\"bytes,2,rep,name=allocatable,casttype=ResourceList,castkey=ResourceName\"`\n\t// NodePhase is the recently observed lifecycle phase of the node.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#phase\n\t// The field is never populated, and now is deprecated.\n\t// +optional\n\tPhase NodePhase `json:\"phase,omitempty\" protobuf:\"bytes,3,opt,name=phase,casttype=NodePhase\"`\n\t// Conditions is an array of current observed node conditions.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []NodeCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,4,rep,name=conditions\"`\n\t// List of addresses reachable to the node.\n\t// Queried from cloud provider, if available.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses\n\t// Note: This field is declared as mergeable, but the merge key is not sufficiently\n\t// unique, which can cause data corruption when it is merged. Callers should instead\n\t// use a full-replacement patch. See https://pr.k8s.io/79391 for an example.\n\t// Consumers should assume that addresses can change during the\n\t// lifetime of a Node. However, there are some exceptions where this may not\n\t// be possible, such as Pods that inherit a Node's address in its own status or\n\t// consumers of the downward API (status.hostIP).\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tAddresses []NodeAddress `json:\"addresses,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,5,rep,name=addresses\"`\n\t// Endpoints of daemons running on the Node.\n\t// +optional\n\tDaemonEndpoints NodeDaemonEndpoints `json:\"daemonEndpoints,omitempty\" protobuf:\"bytes,6,opt,name=daemonEndpoints\"`\n\t// Set of ids/uuids to uniquely identify the node.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#info\n\t// +optional\n\tNodeInfo NodeSystemInfo `json:\"nodeInfo,omitempty\" protobuf:\"bytes,7,opt,name=nodeInfo\"`\n\t// List of container images on this node\n\t// +optional\n\tImages []ContainerImage `json:\"images,omitempty\" protobuf:\"bytes,8,rep,name=images\"`\n\t// List of attachable volumes in use (mounted) by the node.\n\t// +optional\n\tVolumesInUse []UniqueVolumeName `json:\"volumesInUse,omitempty\" protobuf:\"bytes,9,rep,name=volumesInUse\"`\n\t// List of volumes that are attached to the node.\n\t// +optional\n\tVolumesAttached []AttachedVolume `json:\"volumesAttached,omitempty\" protobuf:\"bytes,10,rep,name=volumesAttached\"`\n\t// Status of the config assigned to the node via the dynamic Kubelet config feature.\n\t// +optional\n\tConfig *NodeConfigStatus `json:\"config,omitempty\" protobuf:\"bytes,11,opt,name=config\"`\n}\n\ntype UniqueVolumeName string\n\n// AttachedVolume describes a volume attached to a node\ntype AttachedVolume struct {\n\t// Name of the attached volume\n\tName UniqueVolumeName `json:\"name\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// DevicePath represents the device path where the volume should be available\n\tDevicePath string `json:\"devicePath\" protobuf:\"bytes,2,rep,name=devicePath\"`\n}\n\n// AvoidPods describes pods that should avoid this node. This is the value for a\n// Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and\n// will eventually become a field of NodeStatus.\ntype AvoidPods struct {\n\t// Bounded-sized list of signatures of pods that should avoid this node, sorted\n\t// in timestamp order from oldest to newest. Size of the slice is unspecified.\n\t// +optional\n\tPreferAvoidPods []PreferAvoidPodsEntry `json:\"preferAvoidPods,omitempty\" protobuf:\"bytes,1,rep,name=preferAvoidPods\"`\n}\n\n// Describes a class of pods that should avoid this node.\ntype PreferAvoidPodsEntry struct {\n\t// The class of pods.\n\tPodSignature PodSignature `json:\"podSignature\" protobuf:\"bytes,1,opt,name=podSignature\"`\n\t// Time at which this entry was added to the list.\n\t// +optional\n\tEvictionTime metav1.Time `json:\"evictionTime,omitempty\" protobuf:\"bytes,2,opt,name=evictionTime\"`\n\t// (brief) reason why this entry was added to the list.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// Human readable message indicating why this entry was added to the list.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n}\n\n// Describes the class of pods that should avoid this node.\n// Exactly one field should be set.\ntype PodSignature struct {\n\t// Reference to controller whose pods should avoid this node.\n\t// +optional\n\tPodController *metav1.OwnerReference `json:\"podController,omitempty\" protobuf:\"bytes,1,opt,name=podController\"`\n}\n\n// Describe a container image\ntype ContainerImage struct {\n\t// Names by which this image is known.\n\t// e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]\n\t// +optional\n\tNames []string `json:\"names\" protobuf:\"bytes,1,rep,name=names\"`\n\t// The size of the image in bytes.\n\t// +optional\n\tSizeBytes int64 `json:\"sizeBytes,omitempty\" protobuf:\"varint,2,opt,name=sizeBytes\"`\n}\n\n// +enum\ntype NodePhase string\n\n// These are the valid phases of node.\nconst (\n\t// NodePending means the node has been created/added by the system, but not configured.\n\tNodePending NodePhase = \"Pending\"\n\t// NodeRunning means the node has been configured and has Kubernetes components running.\n\tNodeRunning NodePhase = \"Running\"\n\t// NodeTerminated means the node has been removed from the cluster.\n\tNodeTerminated NodePhase = \"Terminated\"\n)\n\ntype NodeConditionType string\n\n// These are valid but not exhaustive conditions of node. A cloud provider may set a condition not listed here.\n// The built-in set of conditions are:\n// NodeReachable, NodeLive, NodeReady, NodeSchedulable, NodeRunnable.\nconst (\n\t// NodeReady means kubelet is healthy and ready to accept pods.\n\tNodeReady NodeConditionType = \"Ready\"\n\t// NodeMemoryPressure means the kubelet is under pressure due to insufficient available memory.\n\tNodeMemoryPressure NodeConditionType = \"MemoryPressure\"\n\t// NodeDiskPressure means the kubelet is under pressure due to insufficient available disk.\n\tNodeDiskPressure NodeConditionType = \"DiskPressure\"\n\t// NodePIDPressure means the kubelet is under pressure due to insufficient available PID.\n\tNodePIDPressure NodeConditionType = \"PIDPressure\"\n\t// NodeNetworkUnavailable means that network for the node is not correctly configured.\n\tNodeNetworkUnavailable NodeConditionType = \"NetworkUnavailable\"\n)\n\n// NodeCondition contains condition information for a node.\ntype NodeCondition struct {\n\t// Type of node condition.\n\tType NodeConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NodeConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Last time we got an update on a given condition.\n\t// +optional\n\tLastHeartbeatTime metav1.Time `json:\"lastHeartbeatTime,omitempty\" protobuf:\"bytes,3,opt,name=lastHeartbeatTime\"`\n\t// Last time the condition transit from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// (brief) reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\ntype NodeAddressType string\n\n// These are built-in addresses type of node. A cloud provider may set a type not listed here.\nconst (\n\t// NodeHostName identifies a name of the node. Although every node can be assumed\n\t// to have a NodeAddress of this type, its exact syntax and semantics are not\n\t// defined, and are not consistent between different clusters.\n\tNodeHostName NodeAddressType = \"Hostname\"\n\n\t// NodeInternalIP identifies an IP address which is assigned to one of the node's\n\t// network interfaces. Every node should have at least one address of this type.\n\t//\n\t// An internal IP is normally expected to be reachable from every other node, but\n\t// may not be visible to hosts outside the cluster. By default it is assumed that\n\t// kube-apiserver can reach node internal IPs, though it is possible to configure\n\t// clusters where this is not the case.\n\t//\n\t// NodeInternalIP is the default type of node IP, and does not necessarily imply\n\t// that the IP is ONLY reachable internally. If a node has multiple internal IPs,\n\t// no specific semantics are assigned to the additional IPs.\n\tNodeInternalIP NodeAddressType = \"InternalIP\"\n\n\t// NodeExternalIP identifies an IP address which is, in some way, intended to be\n\t// more usable from outside the cluster then an internal IP, though no specific\n\t// semantics are defined. It may be a globally routable IP, though it is not\n\t// required to be.\n\t//\n\t// External IPs may be assigned directly to an interface on the node, like a\n\t// NodeInternalIP, or alternatively, packets sent to the external IP may be NAT'ed\n\t// to an internal node IP rather than being delivered directly (making the IP less\n\t// efficient for node-to-node traffic than a NodeInternalIP).\n\tNodeExternalIP NodeAddressType = \"ExternalIP\"\n\n\t// NodeInternalDNS identifies a DNS name which resolves to an IP address which has\n\t// the characteristics of a NodeInternalIP. The IP it resolves to may or may not\n\t// be a listed NodeInternalIP address.\n\tNodeInternalDNS NodeAddressType = \"InternalDNS\"\n\n\t// NodeExternalDNS identifies a DNS name which resolves to an IP address which has\n\t// the characteristics of a NodeExternalIP. The IP it resolves to may or may not\n\t// be a listed NodeExternalIP address.\n\tNodeExternalDNS NodeAddressType = \"ExternalDNS\"\n)\n\n// NodeAddress contains information for the node's address.\ntype NodeAddress struct {\n\t// Node address type, one of Hostname, ExternalIP or InternalIP.\n\tType NodeAddressType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NodeAddressType\"`\n\t// The node address.\n\tAddress string `json:\"address\" protobuf:\"bytes,2,opt,name=address\"`\n}\n\n// ResourceName is the name identifying various resources in a ResourceList.\ntype ResourceName string\n\n// Resource names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters,\n// with the -, _, and . characters allowed anywhere, except the first or last character.\n// The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than\n// camel case, separating compound words.\n// Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.\nconst (\n\t// CPU, in cores. (500m = .5 cores)\n\tResourceCPU ResourceName = \"cpu\"\n\t// Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceMemory ResourceName = \"memory\"\n\t// Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024)\n\tResourceStorage ResourceName = \"storage\"\n\t// Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\t// The resource name for ResourceEphemeralStorage is alpha and it can change across releases.\n\tResourceEphemeralStorage ResourceName = \"ephemeral-storage\"\n)\n\nconst (\n\t// Default namespace prefix.\n\tResourceDefaultNamespacePrefix = \"kubernetes.io/\"\n\t// Name prefix for huge page resources (alpha).\n\tResourceHugePagesPrefix = \"hugepages-\"\n\t// Name prefix for storage resource limits\n\tResourceAttachableVolumesPrefix = \"attachable-volumes-\"\n)\n\n// ResourceList is a set of (resource name, quantity) pairs.\ntype ResourceList map[ResourceName]resource.Quantity\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Node is a worker node in Kubernetes.\n// Each node will have a unique identifier in the cache (i.e. in etcd).\ntype Node struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of a node.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec NodeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the node.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NodeStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// NodeList is the whole list of all Nodes which have been registered with master.\ntype NodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of nodes\n\tItems []Node `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FinalizerName is the name identifying a finalizer during namespace lifecycle.\ntype FinalizerName string\n\n// These are internal finalizer values to Kubernetes, must be qualified name unless defined here or\n// in metav1.\nconst (\n\tFinalizerKubernetes FinalizerName = \"kubernetes\"\n)\n\n// NamespaceSpec describes the attributes on a Namespace.\ntype NamespaceSpec struct {\n\t// Finalizers is an opaque list of values that must be empty to permanently remove object from storage.\n\t// More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\t// +optional\n\tFinalizers []FinalizerName `json:\"finalizers,omitempty\" protobuf:\"bytes,1,rep,name=finalizers,casttype=FinalizerName\"`\n}\n\n// NamespaceStatus is information about the current status of a Namespace.\ntype NamespaceStatus struct {\n\t// Phase is the current lifecycle phase of the namespace.\n\t// More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\t// +optional\n\tPhase NamespacePhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=NamespacePhase\"`\n\n\t// Represents the latest available observations of a namespace's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []NamespaceCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// +enum\ntype NamespacePhase string\n\n// These are the valid phases of a namespace.\nconst (\n\t// NamespaceActive means the namespace is available for use in the system\n\tNamespaceActive NamespacePhase = \"Active\"\n\t// NamespaceTerminating means the namespace is undergoing graceful termination\n\tNamespaceTerminating NamespacePhase = \"Terminating\"\n)\n\nconst (\n\t// NamespaceTerminatingCause is returned as a defaults.cause item when a change is\n\t// forbidden due to the namespace being terminated.\n\tNamespaceTerminatingCause metav1.CauseType = \"NamespaceTerminating\"\n)\n\ntype NamespaceConditionType string\n\n// These are built-in conditions of a namespace.\nconst (\n\t// NamespaceDeletionDiscoveryFailure contains information about namespace deleter errors during resource discovery.\n\tNamespaceDeletionDiscoveryFailure NamespaceConditionType = \"NamespaceDeletionDiscoveryFailure\"\n\t// NamespaceDeletionContentFailure contains information about namespace deleter errors during deletion of resources.\n\tNamespaceDeletionContentFailure NamespaceConditionType = \"NamespaceDeletionContentFailure\"\n\t// NamespaceDeletionGVParsingFailure contains information about namespace deleter errors parsing GV for legacy types.\n\tNamespaceDeletionGVParsingFailure NamespaceConditionType = \"NamespaceDeletionGroupVersionParsingFailure\"\n\t// NamespaceContentRemaining contains information about resources remaining in a namespace.\n\tNamespaceContentRemaining NamespaceConditionType = \"NamespaceContentRemaining\"\n\t// NamespaceFinalizersRemaining contains information about which finalizers are on resources remaining in a namespace.\n\tNamespaceFinalizersRemaining NamespaceConditionType = \"NamespaceFinalizersRemaining\"\n)\n\n// NamespaceCondition contains details about state of namespace.\ntype NamespaceCondition struct {\n\t// Type of namespace controller condition.\n\tType NamespaceConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NamespaceConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:skipVerbs=deleteCollection\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Namespace provides a scope for Names.\n// Use of multiple namespaces is optional.\ntype Namespace struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of the Namespace.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec NamespaceSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status describes the current status of a Namespace.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NamespaceStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// NamespaceList is a list of Namespaces.\ntype NamespaceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Namespace objects in the list.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n\tItems []Namespace `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\n// Deprecated in 1.7, please use the bindings subresource of pods instead.\ntype Binding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The target object that you want to bind to the standard object.\n\tTarget ObjectReference `json:\"target\" protobuf:\"bytes,2,opt,name=target\"`\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\n// +k8s:openapi-gen=false\ntype Preconditions struct {\n\t// Specifies the target UID.\n\t// +optional\n\tUID *types.UID `json:\"uid,omitempty\" protobuf:\"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodLogOptions is the query options for a Pod's logs REST call.\ntype PodLogOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// The container for which to stream logs. Defaults to only container if there is one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,1,opt,name=container\"`\n\t// Follow the log stream of the pod. Defaults to false.\n\t// +optional\n\tFollow bool `json:\"follow,omitempty\" protobuf:\"varint,2,opt,name=follow\"`\n\t// Return previous terminated container logs. Defaults to false.\n\t// +optional\n\tPrevious bool `json:\"previous,omitempty\" protobuf:\"varint,3,opt,name=previous\"`\n\t// A relative time in seconds before the current time from which to show logs. If this value\n\t// precedes the time a pod was started, only logs since the pod start will be returned.\n\t// If this value is in the future, no logs will be returned.\n\t// Only one of sinceSeconds or sinceTime may be specified.\n\t// +optional\n\tSinceSeconds *int64 `json:\"sinceSeconds,omitempty\" protobuf:\"varint,4,opt,name=sinceSeconds\"`\n\t// An RFC3339 timestamp from which to show logs. If this value\n\t// precedes the time a pod was started, only logs since the pod start will be returned.\n\t// If this value is in the future, no logs will be returned.\n\t// Only one of sinceSeconds or sinceTime may be specified.\n\t// +optional\n\tSinceTime *metav1.Time `json:\"sinceTime,omitempty\" protobuf:\"bytes,5,opt,name=sinceTime\"`\n\t// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\n\t// of log output. Defaults to false.\n\t// +optional\n\tTimestamps bool `json:\"timestamps,omitempty\" protobuf:\"varint,6,opt,name=timestamps\"`\n\t// If set, the number of lines from the end of the logs to show. If not specified,\n\t// logs are shown from the creation of the container or sinceSeconds or sinceTime\n\t// +optional\n\tTailLines *int64 `json:\"tailLines,omitempty\" protobuf:\"varint,7,opt,name=tailLines\"`\n\t// If set, the number of bytes to read from the server before terminating the\n\t// log output. This may not display a complete final line of logging, and may return\n\t// slightly more or slightly less than the specified limit.\n\t// +optional\n\tLimitBytes *int64 `json:\"limitBytes,omitempty\" protobuf:\"varint,8,opt,name=limitBytes\"`\n\n\t// insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\n\t// serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver\n\t// and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\n\t// kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\n\t// connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\n\t// the actual log data coming from the real kubelet).\n\t// +optional\n\tInsecureSkipTLSVerifyBackend bool `json:\"insecureSkipTLSVerifyBackend,omitempty\" protobuf:\"varint,9,opt,name=insecureSkipTLSVerifyBackend\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodAttachOptions is the query options to a Pod's remote attach call.\n// ---\n// TODO: merge w/ PodExecOptions below for stdin, stdout, etc\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\ntype PodAttachOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Stdin if true, redirects the standard input stream of the pod for this call.\n\t// Defaults to false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,1,opt,name=stdin\"`\n\n\t// Stdout if true indicates that stdout is to be redirected for the attach call.\n\t// Defaults to true.\n\t// +optional\n\tStdout bool `json:\"stdout,omitempty\" protobuf:\"varint,2,opt,name=stdout\"`\n\n\t// Stderr if true indicates that stderr is to be redirected for the attach call.\n\t// Defaults to true.\n\t// +optional\n\tStderr bool `json:\"stderr,omitempty\" protobuf:\"varint,3,opt,name=stderr\"`\n\n\t// TTY if true indicates that a tty will be allocated for the attach call.\n\t// This is passed through the container runtime so the tty\n\t// is allocated on the worker node by the container runtime.\n\t// Defaults to false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,4,opt,name=tty\"`\n\n\t// The container in which to execute the command.\n\t// Defaults to only container if there is only one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,5,opt,name=container\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodExecOptions is the query options to a Pod's remote exec call.\n// ---\n// TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\ntype PodExecOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Redirect the standard input stream of the pod for this call.\n\t// Defaults to false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,1,opt,name=stdin\"`\n\n\t// Redirect the standard output stream of the pod for this call.\n\t// +optional\n\tStdout bool `json:\"stdout,omitempty\" protobuf:\"varint,2,opt,name=stdout\"`\n\n\t// Redirect the standard error stream of the pod for this call.\n\t// +optional\n\tStderr bool `json:\"stderr,omitempty\" protobuf:\"varint,3,opt,name=stderr\"`\n\n\t// TTY if true indicates that a tty will be allocated for the exec call.\n\t// Defaults to false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,4,opt,name=tty\"`\n\n\t// Container in which to execute the command.\n\t// Defaults to only container if there is only one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,5,opt,name=container\"`\n\n\t// Command is the remote command to execute. argv array. Not executed within a shell.\n\tCommand []string `json:\"command\" protobuf:\"bytes,6,rep,name=command\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodPortForwardOptions is the query options to a Pod's port forward call\n// when using WebSockets.\n// The `port` query parameter must specify the port or\n// ports (comma separated) to forward over.\n// Port forwarding over SPDY does not use these options. It requires the port\n// to be passed in the `port` header as part of request.\ntype PodPortForwardOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// List of ports to forward\n\t// Required when using WebSockets\n\t// +optional\n\tPorts []int32 `json:\"ports,omitempty\" protobuf:\"varint,1,rep,name=ports\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodProxyOptions is the query options to a Pod's proxy call.\ntype PodProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the URL path to use for the current proxy request to pod.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// NodeProxyOptions is the query options to a Node's proxy call.\ntype NodeProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the URL path to use for the current proxy request to node.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ServiceProxyOptions is the query options to a Service's proxy call.\ntype ServiceProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the part of URLs that include service endpoints, suffixes,\n\t// and parameters to use for the current proxy request to service.\n\t// For example, the whole request URL is\n\t// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.\n\t// Path is _search?q=user:kimchy.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// ObjectReference contains enough information to let you inspect or modify the referred object.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\n//  2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +structType=atomic\ntype ObjectReference struct {\n\t// Kind of the referent.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Namespace of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,opt,name=namespace\"`\n\t// Name of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// API version of the referent.\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,5,opt,name=apiVersion\"`\n\t// Specific resourceVersion to which this reference is made, if any.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,6,opt,name=resourceVersion\"`\n\n\t// If referring to a piece of an object instead of an entire object, this string\n\t// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\n\t// For example, if the object reference is to a container within a pod, this would take on a value like:\n\t// \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\n\t// the event) or if no container name is specified \"spec.containers[2]\" (container with\n\t// index 2 in this pod). This syntax is chosen only to have some well-defined way of\n\t// referencing a part of an object.\n\t// TODO: this design is not final and this field is subject to change in the future.\n\t// +optional\n\tFieldPath string `json:\"fieldPath,omitempty\" protobuf:\"bytes,7,opt,name=fieldPath\"`\n}\n\n// LocalObjectReference contains enough information to let you locate the\n// referenced object inside the same namespace.\n// +structType=atomic\ntype LocalObjectReference struct {\n\t// Name of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\t// TODO: Add other useful fields. apiVersion, kind, uid?\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// TypedLocalObjectReference contains enough information to let you locate the\n// typed referenced object inside the same namespace.\n// +structType=atomic\ntype TypedLocalObjectReference struct {\n\t// APIGroup is the group for the resource being referenced.\n\t// If APIGroup is not specified, the specified Kind must be in the core API group.\n\t// For any other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// SerializedReference is a reference to serialized object.\ntype SerializedReference struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// The reference to an object in the system.\n\t// +optional\n\tReference ObjectReference `json:\"reference,omitempty\" protobuf:\"bytes,1,opt,name=reference\"`\n}\n\n// EventSource contains information for an event.\ntype EventSource struct {\n\t// Component from which the event is generated.\n\t// +optional\n\tComponent string `json:\"component,omitempty\" protobuf:\"bytes,1,opt,name=component\"`\n\t// Node name on which the event is generated.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,2,opt,name=host\"`\n}\n\n// Valid values for event types (new types could be added in future)\nconst (\n\t// Information only and will not cause any problems\n\tEventTypeNormal string = \"Normal\"\n\t// These events are to warn that something might go wrong\n\tEventTypeWarning string = \"Warning\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Event is a report of an event somewhere in the cluster.  Events\n// have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The object that this event is about.\n\tInvolvedObject ObjectReference `json:\"involvedObject\" protobuf:\"bytes,2,opt,name=involvedObject\"`\n\n\t// This should be a short, machine understandable string that gives the reason\n\t// for the transition into the object's current status.\n\t// TODO: provide exact specification for format.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\n\t// A human-readable description of the status of this operation.\n\t// TODO: decide on maximum length.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n\n\t// The component reporting this event. Should be a short machine understandable string.\n\t// +optional\n\tSource EventSource `json:\"source,omitempty\" protobuf:\"bytes,5,opt,name=source\"`\n\n\t// The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\n\t// +optional\n\tFirstTimestamp metav1.Time `json:\"firstTimestamp,omitempty\" protobuf:\"bytes,6,opt,name=firstTimestamp\"`\n\n\t// The time at which the most recent occurrence of this event was recorded.\n\t// +optional\n\tLastTimestamp metav1.Time `json:\"lastTimestamp,omitempty\" protobuf:\"bytes,7,opt,name=lastTimestamp\"`\n\n\t// The number of times this event has occurred.\n\t// +optional\n\tCount int32 `json:\"count,omitempty\" protobuf:\"varint,8,opt,name=count\"`\n\n\t// Type of this event (Normal, Warning), new types could be added in the future\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,9,opt,name=type\"`\n\n\t// Time when this Event was first observed.\n\t// +optional\n\tEventTime metav1.MicroTime `json:\"eventTime,omitempty\" protobuf:\"bytes,10,opt,name=eventTime\"`\n\n\t// Data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,11,opt,name=series\"`\n\n\t// What action was taken/failed regarding to the Regarding object.\n\t// +optional\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,12,opt,name=action\"`\n\n\t// Optional secondary object for more complex actions.\n\t// +optional\n\tRelated *ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,13,opt,name=related\"`\n\n\t// Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// +optional\n\tReportingController string `json:\"reportingComponent\" protobuf:\"bytes,14,opt,name=reportingComponent\"`\n\n\t// ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// +optional\n\tReportingInstance string `json:\"reportingInstance\" protobuf:\"bytes,15,opt,name=reportingInstance\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\ntype EventSeries struct {\n\t// Number of occurrences in this series up to the last heartbeat time\n\tCount int32 `json:\"count,omitempty\" protobuf:\"varint,1,name=count\"`\n\t// Time of the last occurrence observed\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime,omitempty\" protobuf:\"bytes,2,name=lastObservedTime\"`\n\n\t// +k8s:deprecated=state,protobuf=3\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// EventList is a list of events.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of events\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// List holds a list of objects, which may not be known by the server.\ntype List metav1.List\n\n// LimitType is a type of object that is limited. It can be Pod, Container, PersistentVolumeClaim or\n// a fully qualified resource name.\ntype LimitType string\n\nconst (\n\t// Limit that applies to all pods in a namespace\n\tLimitTypePod LimitType = \"Pod\"\n\t// Limit that applies to all containers in a namespace\n\tLimitTypeContainer LimitType = \"Container\"\n\t// Limit that applies to all persistent volume claims in a namespace\n\tLimitTypePersistentVolumeClaim LimitType = \"PersistentVolumeClaim\"\n)\n\n// LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\ntype LimitRangeItem struct {\n\t// Type of resource that this limit applies to.\n\tType LimitType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=LimitType\"`\n\t// Max usage constraints on this kind by resource name.\n\t// +optional\n\tMax ResourceList `json:\"max,omitempty\" protobuf:\"bytes,2,rep,name=max,casttype=ResourceList,castkey=ResourceName\"`\n\t// Min usage constraints on this kind by resource name.\n\t// +optional\n\tMin ResourceList `json:\"min,omitempty\" protobuf:\"bytes,3,rep,name=min,casttype=ResourceList,castkey=ResourceName\"`\n\t// Default resource requirement limit value by resource name if resource limit is omitted.\n\t// +optional\n\tDefault ResourceList `json:\"default,omitempty\" protobuf:\"bytes,4,rep,name=default,casttype=ResourceList,castkey=ResourceName\"`\n\t// DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\n\t// +optional\n\tDefaultRequest ResourceList `json:\"defaultRequest,omitempty\" protobuf:\"bytes,5,rep,name=defaultRequest,casttype=ResourceList,castkey=ResourceName\"`\n\t// MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\n\t// +optional\n\tMaxLimitRequestRatio ResourceList `json:\"maxLimitRequestRatio,omitempty\" protobuf:\"bytes,6,rep,name=maxLimitRequestRatio,casttype=ResourceList,castkey=ResourceName\"`\n}\n\n// LimitRangeSpec defines a min/max usage limit for resources that match on kind.\ntype LimitRangeSpec struct {\n\t// Limits is the list of LimitRangeItem objects that are enforced.\n\tLimits []LimitRangeItem `json:\"limits\" protobuf:\"bytes,1,rep,name=limits\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// LimitRange sets resource usage limits for each kind of resource in a Namespace.\ntype LimitRange struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the limits enforced.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LimitRangeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// LimitRangeList is a list of LimitRange items.\ntype LimitRangeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of LimitRange objects.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\tItems []LimitRange `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// The following identify resource constants for Kubernetes object types\nconst (\n\t// Pods, number\n\tResourcePods ResourceName = \"pods\"\n\t// Services, number\n\tResourceServices ResourceName = \"services\"\n\t// ReplicationControllers, number\n\tResourceReplicationControllers ResourceName = \"replicationcontrollers\"\n\t// ResourceQuotas, number\n\tResourceQuotas ResourceName = \"resourcequotas\"\n\t// ResourceSecrets, number\n\tResourceSecrets ResourceName = \"secrets\"\n\t// ResourceConfigMaps, number\n\tResourceConfigMaps ResourceName = \"configmaps\"\n\t// ResourcePersistentVolumeClaims, number\n\tResourcePersistentVolumeClaims ResourceName = \"persistentvolumeclaims\"\n\t// ResourceServicesNodePorts, number\n\tResourceServicesNodePorts ResourceName = \"services.nodeports\"\n\t// ResourceServicesLoadBalancers, number\n\tResourceServicesLoadBalancers ResourceName = \"services.loadbalancers\"\n\t// CPU request, in cores. (500m = .5 cores)\n\tResourceRequestsCPU ResourceName = \"requests.cpu\"\n\t// Memory request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceRequestsMemory ResourceName = \"requests.memory\"\n\t// Storage request, in bytes\n\tResourceRequestsStorage ResourceName = \"requests.storage\"\n\t// Local ephemeral storage request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceRequestsEphemeralStorage ResourceName = \"requests.ephemeral-storage\"\n\t// CPU limit, in cores. (500m = .5 cores)\n\tResourceLimitsCPU ResourceName = \"limits.cpu\"\n\t// Memory limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceLimitsMemory ResourceName = \"limits.memory\"\n\t// Local ephemeral storage limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceLimitsEphemeralStorage ResourceName = \"limits.ephemeral-storage\"\n)\n\n// The following identify resource prefix for Kubernetes object types\nconst (\n\t// HugePages request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\t// As burst is not supported for HugePages, we would only quota its request, and ignore the limit.\n\tResourceRequestsHugePagesPrefix = \"requests.hugepages-\"\n\t// Default resource requests prefix\n\tDefaultResourceRequestsPrefix = \"requests.\"\n)\n\n// A ResourceQuotaScope defines a filter that must match each object tracked by a quota\n// +enum\ntype ResourceQuotaScope string\n\nconst (\n\t// Match all pod objects where spec.activeDeadlineSeconds >=0\n\tResourceQuotaScopeTerminating ResourceQuotaScope = \"Terminating\"\n\t// Match all pod objects where spec.activeDeadlineSeconds is nil\n\tResourceQuotaScopeNotTerminating ResourceQuotaScope = \"NotTerminating\"\n\t// Match all pod objects that have best effort quality of service\n\tResourceQuotaScopeBestEffort ResourceQuotaScope = \"BestEffort\"\n\t// Match all pod objects that do not have best effort quality of service\n\tResourceQuotaScopeNotBestEffort ResourceQuotaScope = \"NotBestEffort\"\n\t// Match all pod objects that have priority class mentioned\n\tResourceQuotaScopePriorityClass ResourceQuotaScope = \"PriorityClass\"\n\t// Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n\tResourceQuotaScopeCrossNamespacePodAffinity ResourceQuotaScope = \"CrossNamespacePodAffinity\"\n)\n\n// ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\ntype ResourceQuotaSpec struct {\n\t// hard is the set of desired hard limits for each named resource.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\t// +optional\n\tHard ResourceList `json:\"hard,omitempty\" protobuf:\"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName\"`\n\t// A collection of filters that must match each object tracked by a quota.\n\t// If not specified, the quota matches all objects.\n\t// +optional\n\tScopes []ResourceQuotaScope `json:\"scopes,omitempty\" protobuf:\"bytes,2,rep,name=scopes,casttype=ResourceQuotaScope\"`\n\t// scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota\n\t// but expressed using ScopeSelectorOperator in combination with possible values.\n\t// For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\n\t// +optional\n\tScopeSelector *ScopeSelector `json:\"scopeSelector,omitempty\" protobuf:\"bytes,3,opt,name=scopeSelector\"`\n}\n\n// A scope selector represents the AND of the selectors represented\n// by the scoped-resource selector requirements.\n// +structType=atomic\ntype ScopeSelector struct {\n\t// A list of scope selector requirements by scope of the resources.\n\t// +optional\n\tMatchExpressions []ScopedResourceSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchExpressions\"`\n}\n\n// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator\n// that relates the scope name and values.\ntype ScopedResourceSelectorRequirement struct {\n\t// The name of the scope that the selector applies to.\n\tScopeName ResourceQuotaScope `json:\"scopeName\" protobuf:\"bytes,1,opt,name=scopeName\"`\n\t// Represents a scope's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists, DoesNotExist.\n\tOperator ScopeSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=ScopedResourceSelectorOperator\"`\n\t// An array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty.\n\t// This array is replaced during a strategic merge patch.\n\t// +optional\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A scope selector operator is the set of operators that can be used in\n// a scope selector requirement.\n// +enum\ntype ScopeSelectorOperator string\n\nconst (\n\tScopeSelectorOpIn           ScopeSelectorOperator = \"In\"\n\tScopeSelectorOpNotIn        ScopeSelectorOperator = \"NotIn\"\n\tScopeSelectorOpExists       ScopeSelectorOperator = \"Exists\"\n\tScopeSelectorOpDoesNotExist ScopeSelectorOperator = \"DoesNotExist\"\n)\n\n// ResourceQuotaStatus defines the enforced hard limits and observed use.\ntype ResourceQuotaStatus struct {\n\t// Hard is the set of enforced hard limits for each named resource.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\t// +optional\n\tHard ResourceList `json:\"hard,omitempty\" protobuf:\"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName\"`\n\t// Used is the current observed total usage of the resource in the namespace.\n\t// +optional\n\tUsed ResourceList `json:\"used,omitempty\" protobuf:\"bytes,2,rep,name=used,casttype=ResourceList,castkey=ResourceName\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ResourceQuota sets aggregate quota restrictions enforced per namespace\ntype ResourceQuota struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired quota.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ResourceQuotaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status defines the actual enforced quota and its current usage.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ResourceQuotaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ResourceQuotaList is a list of ResourceQuota items.\ntype ResourceQuotaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ResourceQuota objects.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\tItems []ResourceQuota `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Secret holds secret data of a certain type. The total bytes of the values in\n// the Data field must be less than MaxSecretSize bytes.\ntype Secret struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Immutable, if set to true, ensures that data stored in the Secret cannot\n\t// be updated (only object metadata can be modified).\n\t// If not set to true, the field can be modified at any time.\n\t// Defaulted to nil.\n\t// +optional\n\tImmutable *bool `json:\"immutable,omitempty\" protobuf:\"varint,5,opt,name=immutable\"`\n\n\t// Data contains the secret data. Each key must consist of alphanumeric\n\t// characters, '-', '_' or '.'. The serialized form of the secret data is a\n\t// base64 encoded string, representing the arbitrary (possibly non-string)\n\t// data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\n\t// +optional\n\tData map[string][]byte `json:\"data,omitempty\" protobuf:\"bytes,2,rep,name=data\"`\n\n\t// stringData allows specifying non-binary secret data in string form.\n\t// It is provided as a write-only input field for convenience.\n\t// All keys and values are merged into the data field on write, overwriting any existing values.\n\t// The stringData field is never output when reading from the API.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tStringData map[string]string `json:\"stringData,omitempty\" protobuf:\"bytes,4,rep,name=stringData\"`\n\n\t// Used to facilitate programmatic handling of secret data.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\n\t// +optional\n\tType SecretType `json:\"type,omitempty\" protobuf:\"bytes,3,opt,name=type,casttype=SecretType\"`\n}\n\nconst MaxSecretSize = 1 * 1024 * 1024\n\ntype SecretType string\n\nconst (\n\t// SecretTypeOpaque is the default. Arbitrary user-defined data\n\tSecretTypeOpaque SecretType = \"Opaque\"\n\n\t// SecretTypeServiceAccountToken contains a token that identifies a service account to the API\n\t//\n\t// Required fields:\n\t// - Secret.Annotations[\"kubernetes.io/service-account.name\"] - the name of the ServiceAccount the token identifies\n\t// - Secret.Annotations[\"kubernetes.io/service-account.uid\"] - the UID of the ServiceAccount the token identifies\n\t// - Secret.Data[\"token\"] - a token that identifies the service account to the API\n\tSecretTypeServiceAccountToken SecretType = \"kubernetes.io/service-account-token\"\n\n\t// ServiceAccountNameKey is the key of the required annotation for SecretTypeServiceAccountToken secrets\n\tServiceAccountNameKey = \"kubernetes.io/service-account.name\"\n\t// ServiceAccountUIDKey is the key of the required annotation for SecretTypeServiceAccountToken secrets\n\tServiceAccountUIDKey = \"kubernetes.io/service-account.uid\"\n\t// ServiceAccountTokenKey is the key of the required data for SecretTypeServiceAccountToken secrets\n\tServiceAccountTokenKey = \"token\"\n\t// ServiceAccountKubeconfigKey is the key of the optional kubeconfig data for SecretTypeServiceAccountToken secrets\n\tServiceAccountKubeconfigKey = \"kubernetes.kubeconfig\"\n\t// ServiceAccountRootCAKey is the key of the optional root certificate authority for SecretTypeServiceAccountToken secrets\n\tServiceAccountRootCAKey = \"ca.crt\"\n\t// ServiceAccountNamespaceKey is the key of the optional namespace to use as the default for namespaced API calls\n\tServiceAccountNamespaceKey = \"namespace\"\n\n\t// SecretTypeDockercfg contains a dockercfg file that follows the same format rules as ~/.dockercfg\n\t//\n\t// Required fields:\n\t// - Secret.Data[\".dockercfg\"] - a serialized ~/.dockercfg file\n\tSecretTypeDockercfg SecretType = \"kubernetes.io/dockercfg\"\n\n\t// DockerConfigKey is the key of the required data for SecretTypeDockercfg secrets\n\tDockerConfigKey = \".dockercfg\"\n\n\t// SecretTypeDockerConfigJson contains a dockercfg file that follows the same format rules as ~/.docker/config.json\n\t//\n\t// Required fields:\n\t// - Secret.Data[\".dockerconfigjson\"] - a serialized ~/.docker/config.json file\n\tSecretTypeDockerConfigJson SecretType = \"kubernetes.io/dockerconfigjson\"\n\n\t// DockerConfigJsonKey is the key of the required data for SecretTypeDockerConfigJson secrets\n\tDockerConfigJsonKey = \".dockerconfigjson\"\n\n\t// SecretTypeBasicAuth contains data needed for basic authentication.\n\t//\n\t// Required at least one of fields:\n\t// - Secret.Data[\"username\"] - username used for authentication\n\t// - Secret.Data[\"password\"] - password or token needed for authentication\n\tSecretTypeBasicAuth SecretType = \"kubernetes.io/basic-auth\"\n\n\t// BasicAuthUsernameKey is the key of the username for SecretTypeBasicAuth secrets\n\tBasicAuthUsernameKey = \"username\"\n\t// BasicAuthPasswordKey is the key of the password or token for SecretTypeBasicAuth secrets\n\tBasicAuthPasswordKey = \"password\"\n\n\t// SecretTypeSSHAuth contains data needed for SSH authetication.\n\t//\n\t// Required field:\n\t// - Secret.Data[\"ssh-privatekey\"] - private SSH key needed for authentication\n\tSecretTypeSSHAuth SecretType = \"kubernetes.io/ssh-auth\"\n\n\t// SSHAuthPrivateKey is the key of the required SSH private key for SecretTypeSSHAuth secrets\n\tSSHAuthPrivateKey = \"ssh-privatekey\"\n\t// SecretTypeTLS contains information about a TLS client or server secret. It\n\t// is primarily used with TLS termination of the Ingress resource, but may be\n\t// used in other types.\n\t//\n\t// Required fields:\n\t// - Secret.Data[\"tls.key\"] - TLS private key.\n\t//   Secret.Data[\"tls.crt\"] - TLS certificate.\n\t// TODO: Consider supporting different formats, specifying CA/destinationCA.\n\tSecretTypeTLS SecretType = \"kubernetes.io/tls\"\n\n\t// TLSCertKey is the key for tls certificates in a TLS secret.\n\tTLSCertKey = \"tls.crt\"\n\t// TLSPrivateKeyKey is the key for the private key field in a TLS secret.\n\tTLSPrivateKeyKey = \"tls.key\"\n\t// SecretTypeBootstrapToken is used during the automated bootstrap process (first\n\t// implemented by kubeadm). It stores tokens that are used to sign well known\n\t// ConfigMaps. They are used for authn.\n\tSecretTypeBootstrapToken SecretType = \"bootstrap.kubernetes.io/token\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// SecretList is a list of Secret.\ntype SecretList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of secret objects.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret\n\tItems []Secret `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ConfigMap holds configuration data for pods to consume.\ntype ConfigMap struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Immutable, if set to true, ensures that data stored in the ConfigMap cannot\n\t// be updated (only object metadata can be modified).\n\t// If not set to true, the field can be modified at any time.\n\t// Defaulted to nil.\n\t// +optional\n\tImmutable *bool `json:\"immutable,omitempty\" protobuf:\"varint,4,opt,name=immutable\"`\n\n\t// Data contains the configuration data.\n\t// Each key must consist of alphanumeric characters, '-', '_' or '.'.\n\t// Values with non-UTF-8 byte sequences must use the BinaryData field.\n\t// The keys stored in Data must not overlap with the keys in\n\t// the BinaryData field, this is enforced during validation process.\n\t// +optional\n\tData map[string]string `json:\"data,omitempty\" protobuf:\"bytes,2,rep,name=data\"`\n\n\t// BinaryData contains the binary data.\n\t// Each key must consist of alphanumeric characters, '-', '_' or '.'.\n\t// BinaryData can contain byte sequences that are not in the UTF-8 range.\n\t// The keys stored in BinaryData must not overlap with the ones in\n\t// the Data field, this is enforced during validation process.\n\t// Using this field will require 1.10+ apiserver and\n\t// kubelet.\n\t// +optional\n\tBinaryData map[string][]byte `json:\"binaryData,omitempty\" protobuf:\"bytes,3,rep,name=binaryData\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ConfigMapList is a resource containing a list of ConfigMap objects.\ntype ConfigMapList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ConfigMaps.\n\tItems []ConfigMap `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Type and constants for component health validation.\ntype ComponentConditionType string\n\n// These are the valid conditions for the component.\nconst (\n\tComponentHealthy ComponentConditionType = \"Healthy\"\n)\n\n// Information about the condition of a component.\ntype ComponentCondition struct {\n\t// Type of condition for a component.\n\t// Valid value: \"Healthy\"\n\tType ComponentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ComponentConditionType\"`\n\t// Status of the condition for a component.\n\t// Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Message about the condition for a component.\n\t// For example, information about a health check.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// Condition error code for a component.\n\t// For example, a health check error code.\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,4,opt,name=error\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ComponentStatus (and ComponentStatusList) holds the cluster validation info.\n// Deprecated: This API is deprecated in v1.19+\ntype ComponentStatus struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of component conditions observed\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []ComponentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Status of all the conditions for the component as a list of ComponentStatus objects.\n// Deprecated: This API is deprecated in v1.19+\ntype ComponentStatusList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ComponentStatus objects.\n\tItems []ComponentStatus `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DownwardAPIVolumeSource represents a volume containing downward API info.\n// Downward API volumes support ownership management and SELinux relabeling.\ntype DownwardAPIVolumeSource struct {\n\t// Items is a list of downward API volume file\n\t// +optional\n\tItems []DownwardAPIVolumeFile `json:\"items,omitempty\" protobuf:\"bytes,1,rep,name=items\"`\n\t// Optional: mode bits to use on created files by default. Must be a\n\t// Optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,2,opt,name=defaultMode\"`\n}\n\nconst (\n\tDownwardAPIVolumeSourceDefaultMode int32 = 0644\n)\n\n// DownwardAPIVolumeFile represents information to create the file containing the pod field\ntype DownwardAPIVolumeFile struct {\n\t// Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\n\t// +optional\n\tFieldRef *ObjectFieldSelector `json:\"fieldRef,omitempty\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// Selects a resource of the container: only resources limits and requests\n\t// (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\n\t// +optional\n\tResourceFieldRef *ResourceFieldSelector `json:\"resourceFieldRef,omitempty\" protobuf:\"bytes,3,opt,name=resourceFieldRef\"`\n\t// Optional: mode bits used to set permissions on this file, must be an octal value\n\t// between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// If not specified, the volume defaultMode will be used.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tMode *int32 `json:\"mode,omitempty\" protobuf:\"varint,4,opt,name=mode\"`\n}\n\n// Represents downward API info for projecting into a projected volume.\n// Note that this is identical to a downwardAPI volume source without the default\n// mode.\ntype DownwardAPIProjection struct {\n\t// Items is a list of DownwardAPIVolume file\n\t// +optional\n\tItems []DownwardAPIVolumeFile `json:\"items,omitempty\" protobuf:\"bytes,1,rep,name=items\"`\n}\n\n// SecurityContext holds security configuration that will be applied to a container.\n// Some fields are present in both SecurityContext and PodSecurityContext.  When both\n// are set, the values in SecurityContext take precedence.\ntype SecurityContext struct {\n\t// The capabilities to add/drop when running containers.\n\t// Defaults to the default set of capabilities granted by the container runtime.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tCapabilities *Capabilities `json:\"capabilities,omitempty\" protobuf:\"bytes,1,opt,name=capabilities\"`\n\t// Run container in privileged mode.\n\t// Processes in privileged containers are essentially equivalent to root on the host.\n\t// Defaults to false.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tPrivileged *bool `json:\"privileged,omitempty\" protobuf:\"varint,2,opt,name=privileged\"`\n\t// The SELinux context to be applied to the container.\n\t// If unspecified, the container runtime will allocate a random SELinux context for each\n\t// container.  May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSELinuxOptions *SELinuxOptions `json:\"seLinuxOptions,omitempty\" protobuf:\"bytes,3,opt,name=seLinuxOptions\"`\n\t// The Windows specific settings applied to all containers.\n\t// If unspecified, the options from the PodSecurityContext will be used.\n\t// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is linux.\n\t// +optional\n\tWindowsOptions *WindowsSecurityContextOptions `json:\"windowsOptions,omitempty\" protobuf:\"bytes,10,opt,name=windowsOptions\"`\n\t// The UID to run the entrypoint of the container process.\n\t// Defaults to user specified in image metadata if unspecified.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsUser *int64 `json:\"runAsUser,omitempty\" protobuf:\"varint,4,opt,name=runAsUser\"`\n\t// The GID to run the entrypoint of the container process.\n\t// Uses runtime default if unset.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsGroup *int64 `json:\"runAsGroup,omitempty\" protobuf:\"varint,8,opt,name=runAsGroup\"`\n\t// Indicates that the container must run as a non-root user.\n\t// If true, the Kubelet will validate the image at runtime to ensure that it\n\t// does not run as UID 0 (root) and fail to start the container if it does.\n\t// If unset or false, no such validation will be performed.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsNonRoot *bool `json:\"runAsNonRoot,omitempty\" protobuf:\"varint,5,opt,name=runAsNonRoot\"`\n\t// Whether this container has a read-only root filesystem.\n\t// Default is false.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tReadOnlyRootFilesystem *bool `json:\"readOnlyRootFilesystem,omitempty\" protobuf:\"varint,6,opt,name=readOnlyRootFilesystem\"`\n\t// AllowPrivilegeEscalation controls whether a process can gain more\n\t// privileges than its parent process. This bool directly controls if\n\t// the no_new_privs flag will be set on the container process.\n\t// AllowPrivilegeEscalation is true always when the container is:\n\t// 1) run as Privileged\n\t// 2) has CAP_SYS_ADMIN\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tAllowPrivilegeEscalation *bool `json:\"allowPrivilegeEscalation,omitempty\" protobuf:\"varint,7,opt,name=allowPrivilegeEscalation\"`\n\t// procMount denotes the type of proc mount to use for the containers.\n\t// The default is DefaultProcMount which uses the container runtime defaults for\n\t// readonly paths and masked paths.\n\t// This requires the ProcMountType feature flag to be enabled.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tProcMount *ProcMountType `json:\"procMount,omitempty\" protobuf:\"bytes,9,opt,name=procMount\"`\n\t// The seccomp options to use by this container. If seccomp options are\n\t// provided at both the pod & container level, the container options\n\t// override the pod options.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSeccompProfile *SeccompProfile `json:\"seccompProfile,omitempty\" protobuf:\"bytes,11,opt,name=seccompProfile\"`\n}\n\n// +enum\ntype ProcMountType string\n\nconst (\n\t// DefaultProcMount uses the container runtime defaults for readonly and masked\n\t// paths for /proc.  Most container runtimes mask certain paths in /proc to avoid\n\t// accidental security exposure of special devices or information.\n\tDefaultProcMount ProcMountType = \"Default\"\n\n\t// UnmaskedProcMount bypasses the default masking behavior of the container\n\t// runtime and ensures the newly created /proc the container stays in tact with\n\t// no modifications.\n\tUnmaskedProcMount ProcMountType = \"Unmasked\"\n)\n\n// SELinuxOptions are the labels to be applied to the container\ntype SELinuxOptions struct {\n\t// User is a SELinux user label that applies to the container.\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,1,opt,name=user\"`\n\t// Role is a SELinux role label that applies to the container.\n\t// +optional\n\tRole string `json:\"role,omitempty\" protobuf:\"bytes,2,opt,name=role\"`\n\t// Type is a SELinux type label that applies to the container.\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,3,opt,name=type\"`\n\t// Level is SELinux level label that applies to the container.\n\t// +optional\n\tLevel string `json:\"level,omitempty\" protobuf:\"bytes,4,opt,name=level\"`\n}\n\n// WindowsSecurityContextOptions contain Windows-specific options and credentials.\ntype WindowsSecurityContextOptions struct {\n\t// GMSACredentialSpecName is the name of the GMSA credential spec to use.\n\t// +optional\n\tGMSACredentialSpecName *string `json:\"gmsaCredentialSpecName,omitempty\" protobuf:\"bytes,1,opt,name=gmsaCredentialSpecName\"`\n\n\t// GMSACredentialSpec is where the GMSA admission webhook\n\t// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\n\t// GMSA credential spec named by the GMSACredentialSpecName field.\n\t// +optional\n\tGMSACredentialSpec *string `json:\"gmsaCredentialSpec,omitempty\" protobuf:\"bytes,2,opt,name=gmsaCredentialSpec\"`\n\n\t// The UserName in Windows to run the entrypoint of the container process.\n\t// Defaults to the user specified in image metadata if unspecified.\n\t// May also be set in PodSecurityContext. If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsUserName *string `json:\"runAsUserName,omitempty\" protobuf:\"bytes,3,opt,name=runAsUserName\"`\n\n\t// HostProcess determines if a container should be run as a 'Host Process' container.\n\t// This field is alpha-level and will only be honored by components that enable the\n\t// WindowsHostProcessContainers feature flag. Setting this field without the feature\n\t// flag will result in errors when validating the Pod. All of a Pod's containers must\n\t// have the same effective HostProcess value (it is not allowed to have a mix of HostProcess\n\t// containers and non-HostProcess containers).  In addition, if HostProcess is true\n\t// then HostNetwork must also be set to true.\n\t// +optional\n\tHostProcess *bool `json:\"hostProcess,omitempty\" protobuf:\"bytes,4,opt,name=hostProcess\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RangeAllocation is not a public type.\ntype RangeAllocation struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Range is string that identifies the range represented by 'data'.\n\tRange string `json:\"range\" protobuf:\"bytes,2,opt,name=range\"`\n\t// Data is a bit array containing all allocated addresses in the previous segment.\n\tData []byte `json:\"data\" protobuf:\"bytes,3,opt,name=data\"`\n}\n\nconst (\n\t// DefaultSchedulerName defines the name of default scheduler.\n\tDefaultSchedulerName = \"default-scheduler\"\n\n\t// RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule\n\t// corresponding to every RequiredDuringScheduling affinity rule.\n\t// When the --hard-pod-affinity-weight scheduler flag is not specified,\n\t// DefaultHardPodAffinityWeight defines the weight of the implicit PreferredDuringScheduling affinity rule.\n\tDefaultHardPodAffinitySymmetricWeight int32 = 1\n)\n\n// Sysctl defines a kernel parameter to be set\ntype Sysctl struct {\n\t// Name of a property to set\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Value of a property to set\n\tValue string `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\n// NodeResources is an object for conveying resource information about a node.\n// see https://kubernetes.io/docs/concepts/architecture/nodes/#capacity for more details.\ntype NodeResources struct {\n\t// Capacity represents the available resources of a node\n\tCapacity ResourceList `protobuf:\"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n}\n\nconst (\n\t// Enable stdin for remote command execution\n\tExecStdinParam = \"input\"\n\t// Enable stdout for remote command execution\n\tExecStdoutParam = \"output\"\n\t// Enable stderr for remote command execution\n\tExecStderrParam = \"error\"\n\t// Enable TTY for remote command execution\n\tExecTTYParam = \"tty\"\n\t// Command to run for remote command execution\n\tExecCommandParam = \"command\"\n\n\t// Name of header that specifies stream type\n\tStreamType = \"streamType\"\n\t// Value for streamType header for stdin stream\n\tStreamTypeStdin = \"stdin\"\n\t// Value for streamType header for stdout stream\n\tStreamTypeStdout = \"stdout\"\n\t// Value for streamType header for stderr stream\n\tStreamTypeStderr = \"stderr\"\n\t// Value for streamType header for data stream\n\tStreamTypeData = \"data\"\n\t// Value for streamType header for error stream\n\tStreamTypeError = \"error\"\n\t// Value for streamType header for terminal resize stream\n\tStreamTypeResize = \"resize\"\n\n\t// Name of header that specifies the port being forwarded\n\tPortHeader = \"port\"\n\t// Name of header that specifies a request ID used to associate the error\n\t// and data streams for a single forwarded connection\n\tPortForwardRequestIDHeader = \"requestID\"\n)\n\nconst (\n\t// MixedProtocolNotSupported error in PortStatus means that the cloud provider\n\t// can't publish the port on the load balancer because mixed values of protocols\n\t// on the same LoadBalancer type of Service are not supported by the cloud provider.\n\tMixedProtocolNotSupported = \"MixedProtocolNotSupported\"\n)\n\n// PortStatus represents the error condition of a service port\n\ntype PortStatus struct {\n\t// Port is the port number of the service port of which status is recorded here\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\t// Protocol is the protocol of the service port of which status is recorded here\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\t// Error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AWSElasticBlockStoreVolumeSource = map[string]string{\n\t\"\":          \"Represents a Persistent Disk resource in AWS.\\n\\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"partition\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n\t\"readOnly\":  \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n}\n\nfunc (AWSElasticBlockStoreVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AWSElasticBlockStoreVolumeSource\n}\n\nvar map_Affinity = map[string]string{\n\t\"\":                \"Affinity is a group of affinity scheduling rules.\",\n\t\"nodeAffinity\":    \"Describes node affinity scheduling rules for the pod.\",\n\t\"podAffinity\":     \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n\t\"podAntiAffinity\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n}\n\nfunc (Affinity) SwaggerDoc() map[string]string {\n\treturn map_Affinity\n}\n\nvar map_AttachedVolume = map[string]string{\n\t\"\":           \"AttachedVolume describes a volume attached to a node\",\n\t\"name\":       \"Name of the attached volume\",\n\t\"devicePath\": \"DevicePath represents the device path where the volume should be available\",\n}\n\nfunc (AttachedVolume) SwaggerDoc() map[string]string {\n\treturn map_AttachedVolume\n}\n\nvar map_AvoidPods = map[string]string{\n\t\"\":                \"AvoidPods describes pods that should avoid this node. This is the value for a Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and will eventually become a field of NodeStatus.\",\n\t\"preferAvoidPods\": \"Bounded-sized list of signatures of pods that should avoid this node, sorted in timestamp order from oldest to newest. Size of the slice is unspecified.\",\n}\n\nfunc (AvoidPods) SwaggerDoc() map[string]string {\n\treturn map_AvoidPods\n}\n\nvar map_AzureDiskVolumeSource = map[string]string{\n\t\"\":            \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n\t\"diskName\":    \"diskName is the Name of the data disk in the blob storage\",\n\t\"diskURI\":     \"diskURI is the URI of data disk in the blob storage\",\n\t\"cachingMode\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n\t\"fsType\":      \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":    \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"kind\":        \"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n}\n\nfunc (AzureDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureDiskVolumeSource\n}\n\nvar map_AzureFilePersistentVolumeSource = map[string]string{\n\t\"\":                \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"secretName\":      \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n\t\"shareName\":       \"shareName is the azure Share Name\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretNamespace\": \"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\n}\n\nfunc (AzureFilePersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureFilePersistentVolumeSource\n}\n\nvar map_AzureFileVolumeSource = map[string]string{\n\t\"\":           \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"secretName\": \"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\n\t\"shareName\":  \"shareName is the azure share Name\",\n\t\"readOnly\":   \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (AzureFileVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureFileVolumeSource\n}\n\nvar map_Binding = map[string]string{\n\t\"\":         \"Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"target\":   \"The target object that you want to bind to the standard object.\",\n}\n\nfunc (Binding) SwaggerDoc() map[string]string {\n\treturn map_Binding\n}\n\nvar map_CSIPersistentVolumeSource = map[string]string{\n\t\"\":                           \"Represents storage that is managed by an external CSI volume driver (Beta feature)\",\n\t\"driver\":                     \"driver is the name of the driver to use for this volume. Required.\",\n\t\"volumeHandle\":               \"volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.\",\n\t\"readOnly\":                   \"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\n\t\"fsType\":                     \"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\n\t\"volumeAttributes\":           \"volumeAttributes of the volume to publish.\",\n\t\"controllerPublishSecretRef\": \"controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodeStageSecretRef\":         \"nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodePublishSecretRef\":       \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"controllerExpandSecretRef\":  \"controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodeExpandSecretRef\":        \"nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This is a beta field which is enabled default by CSINodeExpandSecret feature gate. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n}\n\nfunc (CSIPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CSIPersistentVolumeSource\n}\n\nvar map_CSIVolumeSource = map[string]string{\n\t\"\":                     \"Represents a source location of a volume to mount, managed by an external CSI driver\",\n\t\"driver\":               \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n\t\"readOnly\":             \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n\t\"fsType\":               \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n\t\"volumeAttributes\":     \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n\t\"nodePublishSecretRef\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n}\n\nfunc (CSIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CSIVolumeSource\n}\n\nvar map_Capabilities = map[string]string{\n\t\"\":     \"Adds and removes POSIX capabilities from running containers.\",\n\t\"add\":  \"Added capabilities\",\n\t\"drop\": \"Removed capabilities\",\n}\n\nfunc (Capabilities) SwaggerDoc() map[string]string {\n\treturn map_Capabilities\n}\n\nvar map_CephFSPersistentVolumeSource = map[string]string{\n\t\"\":           \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"monitors\":   \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"path\":       \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n\t\"user\":       \"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretFile\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretRef\":  \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n}\n\nfunc (CephFSPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CephFSPersistentVolumeSource\n}\n\nvar map_CephFSVolumeSource = map[string]string{\n\t\"\":           \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"monitors\":   \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"path\":       \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n\t\"user\":       \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretFile\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretRef\":  \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n}\n\nfunc (CephFSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CephFSVolumeSource\n}\n\nvar map_CinderPersistentVolumeSource = map[string]string{\n\t\"\":          \"Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"fsType\":    \"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"readOnly\":  \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"secretRef\": \"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n}\n\nfunc (CinderPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CinderPersistentVolumeSource\n}\n\nvar map_CinderVolumeSource = map[string]string{\n\t\"\":          \"Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"fsType\":    \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"readOnly\":  \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"secretRef\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n}\n\nfunc (CinderVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CinderVolumeSource\n}\n\nvar map_ClaimSource = map[string]string{\n\t\"\":                          \"ClaimSource describes a reference to a ResourceClaim.\\n\\nExactly one of these fields should be set.  Consumers of this type must treat an empty object as if it has an unknown value.\",\n\t\"resourceClaimName\":         \"ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\",\n\t\"resourceClaimTemplateName\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\\n\\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The name of the ResourceClaim will be <pod name>-<resource name>, where <resource name> is the PodResourceClaim.Name. Pod validation will reject the pod if the concatenated name is not valid for a ResourceClaim (e.g. too long).\\n\\nAn existing ResourceClaim with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated resource by mistake. Scheduling and pod startup are then blocked until the unrelated ResourceClaim is removed.\\n\\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\",\n}\n\nfunc (ClaimSource) SwaggerDoc() map[string]string {\n\treturn map_ClaimSource\n}\n\nvar map_ClientIPConfig = map[string]string{\n\t\"\":               \"ClientIPConfig represents the configurations of Client IP based session affinity.\",\n\t\"timeoutSeconds\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\". Default value is 10800(for 3 hours).\",\n}\n\nfunc (ClientIPConfig) SwaggerDoc() map[string]string {\n\treturn map_ClientIPConfig\n}\n\nvar map_ComponentCondition = map[string]string{\n\t\"\":        \"Information about the condition of a component.\",\n\t\"type\":    \"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\n\t\"status\":  \"Status of the condition for a component. Valid values for \\\"Healthy\\\": \\\"True\\\", \\\"False\\\", or \\\"Unknown\\\".\",\n\t\"message\": \"Message about the condition for a component. For example, information about a health check.\",\n\t\"error\":   \"Condition error code for a component. For example, a health check error code.\",\n}\n\nfunc (ComponentCondition) SwaggerDoc() map[string]string {\n\treturn map_ComponentCondition\n}\n\nvar map_ComponentStatus = map[string]string{\n\t\"\":           \"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"conditions\": \"List of component conditions observed\",\n}\n\nfunc (ComponentStatus) SwaggerDoc() map[string]string {\n\treturn map_ComponentStatus\n}\n\nvar map_ComponentStatusList = map[string]string{\n\t\"\":         \"Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ComponentStatus objects.\",\n}\n\nfunc (ComponentStatusList) SwaggerDoc() map[string]string {\n\treturn map_ComponentStatusList\n}\n\nvar map_ConfigMap = map[string]string{\n\t\"\":           \"ConfigMap holds configuration data for pods to consume.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"immutable\":  \"Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.\",\n\t\"data\":       \"Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.\",\n\t\"binaryData\": \"BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.\",\n}\n\nfunc (ConfigMap) SwaggerDoc() map[string]string {\n\treturn map_ConfigMap\n}\n\nvar map_ConfigMapEnvSource = map[string]string{\n\t\"\":         \"ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\\n\\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.\",\n\t\"optional\": \"Specify whether the ConfigMap must be defined\",\n}\n\nfunc (ConfigMapEnvSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapEnvSource\n}\n\nvar map_ConfigMapKeySelector = map[string]string{\n\t\"\":         \"Selects a key from a ConfigMap.\",\n\t\"key\":      \"The key to select.\",\n\t\"optional\": \"Specify whether the ConfigMap or its key must be defined\",\n}\n\nfunc (ConfigMapKeySelector) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapKeySelector\n}\n\nvar map_ConfigMapList = map[string]string{\n\t\"\":         \"ConfigMapList is a resource containing a list of ConfigMap objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ConfigMaps.\",\n}\n\nfunc (ConfigMapList) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapList\n}\n\nvar map_ConfigMapNodeConfigSource = map[string]string{\n\t\"\":                 \"ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\n\t\"namespace\":        \"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\n\t\"name\":             \"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\n\t\"uid\":              \"UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n\t\"resourceVersion\":  \"ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n\t\"kubeletConfigKey\": \"KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.\",\n}\n\nfunc (ConfigMapNodeConfigSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapNodeConfigSource\n}\n\nvar map_ConfigMapProjection = map[string]string{\n\t\"\":         \"Adapts a ConfigMap into a projected volume.\\n\\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.\",\n\t\"items\":    \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"optional\": \"optional specify whether the ConfigMap or its keys must be defined\",\n}\n\nfunc (ConfigMapProjection) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapProjection\n}\n\nvar map_ConfigMapVolumeSource = map[string]string{\n\t\"\":            \"Adapts a ConfigMap into a volume.\\n\\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.\",\n\t\"items\":       \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"defaultMode\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n\t\"optional\":    \"optional specify whether the ConfigMap or its keys must be defined\",\n}\n\nfunc (ConfigMapVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapVolumeSource\n}\n\nvar map_Container = map[string]string{\n\t\"\":                         \"A single application container that you want to run within a pod.\",\n\t\"name\":                     \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n\t\"image\":                    \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n\t\"command\":                  \"Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"args\":                     \"Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"workingDir\":               \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n\t\"ports\":                    \"List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.\",\n\t\"envFrom\":                  \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n\t\"env\":                      \"List of environment variables to set in the container. Cannot be updated.\",\n\t\"resources\":                \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"resizePolicy\":             \"Resources resize policy for the container.\",\n\t\"volumeMounts\":             \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n\t\"volumeDevices\":            \"volumeDevices is the list of block devices to be used by the container.\",\n\t\"livenessProbe\":            \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"readinessProbe\":           \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"startupProbe\":             \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"lifecycle\":                \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n\t\"terminationMessagePath\":   \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n\t\"terminationMessagePolicy\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n\t\"imagePullPolicy\":          \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n\t\"securityContext\":          \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n\t\"stdin\":                    \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n\t\"stdinOnce\":                \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n\t\"tty\":                      \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n}\n\nfunc (Container) SwaggerDoc() map[string]string {\n\treturn map_Container\n}\n\nvar map_ContainerImage = map[string]string{\n\t\"\":          \"Describe a container image\",\n\t\"names\":     \"Names by which this image is known. e.g. [\\\"kubernetes.example/hyperkube:v1.0.7\\\", \\\"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\\\"]\",\n\t\"sizeBytes\": \"The size of the image in bytes.\",\n}\n\nfunc (ContainerImage) SwaggerDoc() map[string]string {\n\treturn map_ContainerImage\n}\n\nvar map_ContainerPort = map[string]string{\n\t\"\":              \"ContainerPort represents a network port in a single container.\",\n\t\"name\":          \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n\t\"hostPort\":      \"Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n\t\"containerPort\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.\",\n\t\"protocol\":      \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n\t\"hostIP\":        \"What host IP to bind the external port to.\",\n}\n\nfunc (ContainerPort) SwaggerDoc() map[string]string {\n\treturn map_ContainerPort\n}\n\nvar map_ContainerResizePolicy = map[string]string{\n\t\"\":              \"ContainerResizePolicy represents resource resize policy for the container.\",\n\t\"resourceName\":  \"Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.\",\n\t\"restartPolicy\": \"Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.\",\n}\n\nfunc (ContainerResizePolicy) SwaggerDoc() map[string]string {\n\treturn map_ContainerResizePolicy\n}\n\nvar map_ContainerState = map[string]string{\n\t\"\":           \"ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.\",\n\t\"waiting\":    \"Details about a waiting container\",\n\t\"running\":    \"Details about a running container\",\n\t\"terminated\": \"Details about a terminated container\",\n}\n\nfunc (ContainerState) SwaggerDoc() map[string]string {\n\treturn map_ContainerState\n}\n\nvar map_ContainerStateRunning = map[string]string{\n\t\"\":          \"ContainerStateRunning is a running state of a container.\",\n\t\"startedAt\": \"Time at which the container was last (re-)started\",\n}\n\nfunc (ContainerStateRunning) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateRunning\n}\n\nvar map_ContainerStateTerminated = map[string]string{\n\t\"\":            \"ContainerStateTerminated is a terminated state of a container.\",\n\t\"exitCode\":    \"Exit status from the last termination of the container\",\n\t\"signal\":      \"Signal from the last termination of the container\",\n\t\"reason\":      \"(brief) reason from the last termination of the container\",\n\t\"message\":     \"Message regarding the last termination of the container\",\n\t\"startedAt\":   \"Time at which previous execution of the container started\",\n\t\"finishedAt\":  \"Time at which the container last terminated\",\n\t\"containerID\": \"Container's ID in the format '<type>://<container_id>'\",\n}\n\nfunc (ContainerStateTerminated) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateTerminated\n}\n\nvar map_ContainerStateWaiting = map[string]string{\n\t\"\":        \"ContainerStateWaiting is a waiting state of a container.\",\n\t\"reason\":  \"(brief) reason the container is not yet running.\",\n\t\"message\": \"Message regarding why the container is not yet running.\",\n}\n\nfunc (ContainerStateWaiting) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateWaiting\n}\n\nvar map_ContainerStatus = map[string]string{\n\t\"\":                   \"ContainerStatus contains details for the current status of this container.\",\n\t\"name\":               \"Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.\",\n\t\"state\":              \"State holds details about the container's current condition.\",\n\t\"lastState\":          \"LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0.\",\n\t\"ready\":              \"Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\\n\\nThe value is typically used to determine whether a container is ready to accept traffic.\",\n\t\"restartCount\":       \"RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.\",\n\t\"image\":              \"Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.\",\n\t\"imageID\":            \"ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.\",\n\t\"containerID\":        \"ContainerID is the ID of the container in the format '<type>://<container_id>'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \\\"containerd\\\").\",\n\t\"started\":            \"Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.\",\n\t\"allocatedResources\": \"AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.\",\n\t\"resources\":          \"Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized.\",\n}\n\nfunc (ContainerStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerStatus\n}\n\nvar map_DaemonEndpoint = map[string]string{\n\t\"\":     \"DaemonEndpoint contains information about a single Daemon endpoint.\",\n\t\"Port\": \"Port number of the given endpoint.\",\n}\n\nfunc (DaemonEndpoint) SwaggerDoc() map[string]string {\n\treturn map_DaemonEndpoint\n}\n\nvar map_DownwardAPIProjection = map[string]string{\n\t\"\":      \"Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.\",\n\t\"items\": \"Items is a list of DownwardAPIVolume file\",\n}\n\nfunc (DownwardAPIProjection) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIProjection\n}\n\nvar map_DownwardAPIVolumeFile = map[string]string{\n\t\"\":                 \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n\t\"path\":             \"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n\t\"fieldRef\":         \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n\t\"resourceFieldRef\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n\t\"mode\":             \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (DownwardAPIVolumeFile) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIVolumeFile\n}\n\nvar map_DownwardAPIVolumeSource = map[string]string{\n\t\"\":            \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n\t\"items\":       \"Items is a list of downward API volume file\",\n\t\"defaultMode\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (DownwardAPIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIVolumeSource\n}\n\nvar map_EmptyDirVolumeSource = map[string]string{\n\t\"\":          \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n\t\"medium\":    \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n\t\"sizeLimit\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n}\n\nfunc (EmptyDirVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_EmptyDirVolumeSource\n}\n\nvar map_EndpointAddress = map[string]string{\n\t\"\":          \"EndpointAddress is a tuple that describes single IP address.\",\n\t\"ip\":        \"The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).\",\n\t\"hostname\":  \"The Hostname of this endpoint\",\n\t\"nodeName\":  \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n\t\"targetRef\": \"Reference to object providing the endpoint.\",\n}\n\nfunc (EndpointAddress) SwaggerDoc() map[string]string {\n\treturn map_EndpointAddress\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort is a tuple that describes a single port.\",\n\t\"name\":        \"The name of this port.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.\",\n\t\"port\":        \"The port number of the endpoint.\",\n\t\"protocol\":    \"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"appProtocol\": \"The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n* Kubernetes-defined prefixed names:\\n  * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\\n\\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSubset = map[string]string{\n\t\"\":                  \"EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\\n\\n\\t{\\n\\t  Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t  Ports:     [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t}\\n\\nThe resulting set of endpoints can be viewed as:\\n\\n\\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\\n\\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\",\n\t\"addresses\":         \"IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.\",\n\t\"notReadyAddresses\": \"IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.\",\n\t\"ports\":             \"Port numbers available on the related IP addresses.\",\n}\n\nfunc (EndpointSubset) SwaggerDoc() map[string]string {\n\treturn map_EndpointSubset\n}\n\nvar map_Endpoints = map[string]string{\n\t\"\":         \"Endpoints is a collection of endpoints that implement the actual service. Example:\\n\\n\\t Name: \\\"mysvc\\\",\\n\\t Subsets: [\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t   },\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.3.3\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 93}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 76}]\\n\\t   },\\n\\t]\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"subsets\":  \"The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.\",\n}\n\nfunc (Endpoints) SwaggerDoc() map[string]string {\n\treturn map_Endpoints\n}\n\nvar map_EndpointsList = map[string]string{\n\t\"\":         \"EndpointsList is a list of endpoints.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of endpoints.\",\n}\n\nfunc (EndpointsList) SwaggerDoc() map[string]string {\n\treturn map_EndpointsList\n}\n\nvar map_EnvFromSource = map[string]string{\n\t\"\":             \"EnvFromSource represents the source of a set of ConfigMaps\",\n\t\"prefix\":       \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n\t\"configMapRef\": \"The ConfigMap to select from\",\n\t\"secretRef\":    \"The Secret to select from\",\n}\n\nfunc (EnvFromSource) SwaggerDoc() map[string]string {\n\treturn map_EnvFromSource\n}\n\nvar map_EnvVar = map[string]string{\n\t\"\":          \"EnvVar represents an environment variable present in a Container.\",\n\t\"name\":      \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n\t\"value\":     \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n\t\"valueFrom\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n}\n\nfunc (EnvVar) SwaggerDoc() map[string]string {\n\treturn map_EnvVar\n}\n\nvar map_EnvVarSource = map[string]string{\n\t\"\":                 \"EnvVarSource represents a source for the value of an EnvVar.\",\n\t\"fieldRef\":         \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n\t\"resourceFieldRef\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n\t\"configMapKeyRef\":  \"Selects a key of a ConfigMap.\",\n\t\"secretKeyRef\":     \"Selects a key of a secret in the pod's namespace\",\n}\n\nfunc (EnvVarSource) SwaggerDoc() map[string]string {\n\treturn map_EnvVarSource\n}\n\nvar map_EphemeralContainer = map[string]string{\n\t\"\":                    \"An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\",\n\t\"targetContainerName\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n}\n\nfunc (EphemeralContainer) SwaggerDoc() map[string]string {\n\treturn map_EphemeralContainer\n}\n\nvar map_EphemeralContainerCommon = map[string]string{\n\t\"\":                         \"EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well.\",\n\t\"name\":                     \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n\t\"image\":                    \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n\t\"command\":                  \"Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"args\":                     \"Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"workingDir\":               \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n\t\"ports\":                    \"Ports are not allowed for ephemeral containers.\",\n\t\"envFrom\":                  \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n\t\"env\":                      \"List of environment variables to set in the container. Cannot be updated.\",\n\t\"resources\":                \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n\t\"resizePolicy\":             \"Resources resize policy for the container.\",\n\t\"volumeMounts\":             \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n\t\"volumeDevices\":            \"volumeDevices is the list of block devices to be used by the container.\",\n\t\"livenessProbe\":            \"Probes are not allowed for ephemeral containers.\",\n\t\"readinessProbe\":           \"Probes are not allowed for ephemeral containers.\",\n\t\"startupProbe\":             \"Probes are not allowed for ephemeral containers.\",\n\t\"lifecycle\":                \"Lifecycle is not allowed for ephemeral containers.\",\n\t\"terminationMessagePath\":   \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n\t\"terminationMessagePolicy\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n\t\"imagePullPolicy\":          \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n\t\"securityContext\":          \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n\t\"stdin\":                    \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n\t\"stdinOnce\":                \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n\t\"tty\":                      \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n}\n\nfunc (EphemeralContainerCommon) SwaggerDoc() map[string]string {\n\treturn map_EphemeralContainerCommon\n}\n\nvar map_EphemeralVolumeSource = map[string]string{\n\t\"\":                    \"Represents an ephemeral volume that is handled by a normal storage driver.\",\n\t\"volumeClaimTemplate\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\n}\n\nfunc (EphemeralVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_EphemeralVolumeSource\n}\n\nvar map_Event = map[string]string{\n\t\"\":                   \"Event is a report of an event somewhere in the cluster.  Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":           \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"involvedObject\":     \"The object that this event is about.\",\n\t\"reason\":             \"This should be a short, machine understandable string that gives the reason for the transition into the object's current status.\",\n\t\"message\":            \"A human-readable description of the status of this operation.\",\n\t\"source\":             \"The component reporting this event. Should be a short machine understandable string.\",\n\t\"firstTimestamp\":     \"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\n\t\"lastTimestamp\":      \"The time at which the most recent occurrence of this event was recorded.\",\n\t\"count\":              \"The number of times this event has occurred.\",\n\t\"type\":               \"Type of this event (Normal, Warning), new types could be added in the future\",\n\t\"eventTime\":          \"Time when this Event was first observed.\",\n\t\"series\":             \"Data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"action\":             \"What action was taken/failed regarding to the Regarding object.\",\n\t\"related\":            \"Optional secondary object for more complex actions.\",\n\t\"reportingComponent\": \"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\n\t\"reportingInstance\":  \"ID of the controller instance, e.g. `kubelet-xyzf`.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of events.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of events\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\",\n\t\"count\":            \"Number of occurrences in this series up to the last heartbeat time\",\n\t\"lastObservedTime\": \"Time of the last occurrence observed\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\nvar map_EventSource = map[string]string{\n\t\"\":          \"EventSource contains information for an event.\",\n\t\"component\": \"Component from which the event is generated.\",\n\t\"host\":      \"Node name on which the event is generated.\",\n}\n\nfunc (EventSource) SwaggerDoc() map[string]string {\n\treturn map_EventSource\n}\n\nvar map_ExecAction = map[string]string{\n\t\"\":        \"ExecAction describes a \\\"run in container\\\" action.\",\n\t\"command\": \"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n}\n\nfunc (ExecAction) SwaggerDoc() map[string]string {\n\treturn map_ExecAction\n}\n\nvar map_FCVolumeSource = map[string]string{\n\t\"\":           \"Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.\",\n\t\"targetWWNs\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n\t\"lun\":        \"lun is Optional: FC target lun number\",\n\t\"fsType\":     \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"wwids\":      \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n}\n\nfunc (FCVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FCVolumeSource\n}\n\nvar map_FlexPersistentVolumeSource = map[string]string{\n\t\"\":          \"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"driver\":    \"driver is the name of the driver to use for this volume.\",\n\t\"fsType\":    \"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n\t\"secretRef\": \"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n\t\"readOnly\":  \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"options\":   \"options is Optional: this field holds extra command options if any.\",\n}\n\nfunc (FlexPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlexPersistentVolumeSource\n}\n\nvar map_FlexVolumeSource = map[string]string{\n\t\"\":          \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"driver\":    \"driver is the name of the driver to use for this volume.\",\n\t\"fsType\":    \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n\t\"secretRef\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n\t\"readOnly\":  \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"options\":   \"options is Optional: this field holds extra command options if any.\",\n}\n\nfunc (FlexVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlexVolumeSource\n}\n\nvar map_FlockerVolumeSource = map[string]string{\n\t\"\":            \"Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.\",\n\t\"datasetName\": \"datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated\",\n\t\"datasetUUID\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n}\n\nfunc (FlockerVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlockerVolumeSource\n}\n\nvar map_GCEPersistentDiskVolumeSource = map[string]string{\n\t\"\":          \"Represents a Persistent Disk resource in Google Compute Engine.\\n\\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.\",\n\t\"pdName\":    \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"fsType\":    \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"partition\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n}\n\nfunc (GCEPersistentDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GCEPersistentDiskVolumeSource\n}\n\nvar map_GRPCAction = map[string]string{\n\t\"port\":    \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n\t\"service\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n}\n\nfunc (GRPCAction) SwaggerDoc() map[string]string {\n\treturn map_GRPCAction\n}\n\nvar map_GitRepoVolumeSource = map[string]string{\n\t\"\":           \"Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\\n\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n\t\"repository\": \"repository is the URL\",\n\t\"revision\":   \"revision is the commit hash for the specified revision.\",\n\t\"directory\":  \"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n}\n\nfunc (GitRepoVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GitRepoVolumeSource\n}\n\nvar map_GlusterfsPersistentVolumeSource = map[string]string{\n\t\"\":                   \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"endpoints\":          \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"path\":               \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"readOnly\":           \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"endpointsNamespace\": \"endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n}\n\nfunc (GlusterfsPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GlusterfsPersistentVolumeSource\n}\n\nvar map_GlusterfsVolumeSource = map[string]string{\n\t\"\":          \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"endpoints\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"path\":      \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"readOnly\":  \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n}\n\nfunc (GlusterfsVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GlusterfsVolumeSource\n}\n\nvar map_HTTPGetAction = map[string]string{\n\t\"\":            \"HTTPGetAction describes an action based on HTTP Get requests.\",\n\t\"path\":        \"Path to access on the HTTP server.\",\n\t\"port\":        \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n\t\"host\":        \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n\t\"scheme\":      \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n\t\"httpHeaders\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n}\n\nfunc (HTTPGetAction) SwaggerDoc() map[string]string {\n\treturn map_HTTPGetAction\n}\n\nvar map_HTTPHeader = map[string]string{\n\t\"\":      \"HTTPHeader describes a custom header to be used in HTTP probes\",\n\t\"name\":  \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n\t\"value\": \"The header field value\",\n}\n\nfunc (HTTPHeader) SwaggerDoc() map[string]string {\n\treturn map_HTTPHeader\n}\n\nvar map_HostAlias = map[string]string{\n\t\"\":          \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n\t\"ip\":        \"IP address of the host file entry.\",\n\t\"hostnames\": \"Hostnames for the above IP address.\",\n}\n\nfunc (HostAlias) SwaggerDoc() map[string]string {\n\treturn map_HostAlias\n}\n\nvar map_HostPathVolumeSource = map[string]string{\n\t\"\":     \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n\t\"path\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"type\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n}\n\nfunc (HostPathVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_HostPathVolumeSource\n}\n\nvar map_ISCSIPersistentVolumeSource = map[string]string{\n\t\"\":                  \"ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n\t\"targetPortal\":      \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"iqn\":               \"iqn is Target iSCSI Qualified Name.\",\n\t\"lun\":               \"lun is iSCSI Target Lun number.\",\n\t\"iscsiInterface\":    \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n\t\"fsType\":            \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n\t\"readOnly\":          \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n\t\"portals\":           \"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"chapAuthDiscovery\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n\t\"chapAuthSession\":   \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n\t\"secretRef\":         \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n\t\"initiatorName\":     \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.\",\n}\n\nfunc (ISCSIPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ISCSIPersistentVolumeSource\n}\n\nvar map_ISCSIVolumeSource = map[string]string{\n\t\"\":                  \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n\t\"targetPortal\":      \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"iqn\":               \"iqn is the target iSCSI Qualified Name.\",\n\t\"lun\":               \"lun represents iSCSI Target Lun number.\",\n\t\"iscsiInterface\":    \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n\t\"fsType\":            \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n\t\"readOnly\":          \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n\t\"portals\":           \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"chapAuthDiscovery\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n\t\"chapAuthSession\":   \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n\t\"secretRef\":         \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n\t\"initiatorName\":     \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.\",\n}\n\nfunc (ISCSIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ISCSIVolumeSource\n}\n\nvar map_KeyToPath = map[string]string{\n\t\"\":     \"Maps a string key to a path within a volume.\",\n\t\"key\":  \"key is the key to project.\",\n\t\"path\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n\t\"mode\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (KeyToPath) SwaggerDoc() map[string]string {\n\treturn map_KeyToPath\n}\n\nvar map_Lifecycle = map[string]string{\n\t\"\":          \"Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.\",\n\t\"postStart\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n\t\"preStop\":   \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n}\n\nfunc (Lifecycle) SwaggerDoc() map[string]string {\n\treturn map_Lifecycle\n}\n\nvar map_LifecycleHandler = map[string]string{\n\t\"\":          \"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\n\t\"exec\":      \"Exec specifies the action to take.\",\n\t\"httpGet\":   \"HTTPGet specifies the http request to perform.\",\n\t\"tcpSocket\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n}\n\nfunc (LifecycleHandler) SwaggerDoc() map[string]string {\n\treturn map_LifecycleHandler\n}\n\nvar map_LimitRange = map[string]string{\n\t\"\":         \"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (LimitRange) SwaggerDoc() map[string]string {\n\treturn map_LimitRange\n}\n\nvar map_LimitRangeItem = map[string]string{\n\t\"\":                     \"LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\",\n\t\"type\":                 \"Type of resource that this limit applies to.\",\n\t\"max\":                  \"Max usage constraints on this kind by resource name.\",\n\t\"min\":                  \"Min usage constraints on this kind by resource name.\",\n\t\"default\":              \"Default resource requirement limit value by resource name if resource limit is omitted.\",\n\t\"defaultRequest\":       \"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\n\t\"maxLimitRequestRatio\": \"MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\",\n}\n\nfunc (LimitRangeItem) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeItem\n}\n\nvar map_LimitRangeList = map[string]string{\n\t\"\":         \"LimitRangeList is a list of LimitRange items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n}\n\nfunc (LimitRangeList) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeList\n}\n\nvar map_LimitRangeSpec = map[string]string{\n\t\"\":       \"LimitRangeSpec defines a min/max usage limit for resources that match on kind.\",\n\t\"limits\": \"Limits is the list of LimitRangeItem objects that are enforced.\",\n}\n\nfunc (LimitRangeSpec) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeSpec\n}\n\nvar map_LoadBalancerIngress = map[string]string{\n\t\"\":         \"LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\",\n\t\"ip\":       \"IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)\",\n\t\"hostname\": \"Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)\",\n\t\"ports\":    \"Ports is a list of records of service ports If used, every port defined in the service should have an entry in it\",\n}\n\nfunc (LoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_LoadBalancerIngress\n}\n\nvar map_LoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.\",\n}\n\nfunc (LoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_LoadBalancerStatus\n}\n\nvar map_LocalObjectReference = map[string]string{\n\t\"\":     \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n\t\"name\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n}\n\nfunc (LocalObjectReference) SwaggerDoc() map[string]string {\n\treturn map_LocalObjectReference\n}\n\nvar map_LocalVolumeSource = map[string]string{\n\t\"\":       \"Local represents directly-attached storage with node affinity (Beta feature)\",\n\t\"path\":   \"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\n\t\"fsType\": \"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\n}\n\nfunc (LocalVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_LocalVolumeSource\n}\n\nvar map_NFSVolumeSource = map[string]string{\n\t\"\":         \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n\t\"server\":   \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"path\":     \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"readOnly\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n}\n\nfunc (NFSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_NFSVolumeSource\n}\n\nvar map_Namespace = map[string]string{\n\t\"\":         \"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Namespace) SwaggerDoc() map[string]string {\n\treturn map_Namespace\n}\n\nvar map_NamespaceCondition = map[string]string{\n\t\"\":       \"NamespaceCondition contains details about state of namespace.\",\n\t\"type\":   \"Type of namespace controller condition.\",\n\t\"status\": \"Status of the condition, one of True, False, Unknown.\",\n}\n\nfunc (NamespaceCondition) SwaggerDoc() map[string]string {\n\treturn map_NamespaceCondition\n}\n\nvar map_NamespaceList = map[string]string{\n\t\"\":         \"NamespaceList is a list of Namespaces.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n}\n\nfunc (NamespaceList) SwaggerDoc() map[string]string {\n\treturn map_NamespaceList\n}\n\nvar map_NamespaceSpec = map[string]string{\n\t\"\":           \"NamespaceSpec describes the attributes on a Namespace.\",\n\t\"finalizers\": \"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\n}\n\nfunc (NamespaceSpec) SwaggerDoc() map[string]string {\n\treturn map_NamespaceSpec\n}\n\nvar map_NamespaceStatus = map[string]string{\n\t\"\":           \"NamespaceStatus is information about the current status of a Namespace.\",\n\t\"phase\":      \"Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\n\t\"conditions\": \"Represents the latest available observations of a namespace's current state.\",\n}\n\nfunc (NamespaceStatus) SwaggerDoc() map[string]string {\n\treturn map_NamespaceStatus\n}\n\nvar map_Node = map[string]string{\n\t\"\":         \"Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Node) SwaggerDoc() map[string]string {\n\treturn map_Node\n}\n\nvar map_NodeAddress = map[string]string{\n\t\"\":        \"NodeAddress contains information for the node's address.\",\n\t\"type\":    \"Node address type, one of Hostname, ExternalIP or InternalIP.\",\n\t\"address\": \"The node address.\",\n}\n\nfunc (NodeAddress) SwaggerDoc() map[string]string {\n\treturn map_NodeAddress\n}\n\nvar map_NodeAffinity = map[string]string{\n\t\"\": \"Node affinity is a group of node affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (NodeAffinity) SwaggerDoc() map[string]string {\n\treturn map_NodeAffinity\n}\n\nvar map_NodeCondition = map[string]string{\n\t\"\":                   \"NodeCondition contains condition information for a node.\",\n\t\"type\":               \"Type of node condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastHeartbeatTime\":  \"Last time we got an update on a given condition.\",\n\t\"lastTransitionTime\": \"Last time the condition transit from one status to another.\",\n\t\"reason\":             \"(brief) reason for the condition's last transition.\",\n\t\"message\":            \"Human readable message indicating details about last transition.\",\n}\n\nfunc (NodeCondition) SwaggerDoc() map[string]string {\n\treturn map_NodeCondition\n}\n\nvar map_NodeConfigSource = map[string]string{\n\t\"\":          \"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\n\t\"configMap\": \"ConfigMap is a reference to a Node's ConfigMap\",\n}\n\nfunc (NodeConfigSource) SwaggerDoc() map[string]string {\n\treturn map_NodeConfigSource\n}\n\nvar map_NodeConfigStatus = map[string]string{\n\t\"\":              \"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\n\t\"assigned\":      \"Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.\",\n\t\"active\":        \"Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.\",\n\t\"lastKnownGood\": \"LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.\",\n\t\"error\":         \"Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.\",\n}\n\nfunc (NodeConfigStatus) SwaggerDoc() map[string]string {\n\treturn map_NodeConfigStatus\n}\n\nvar map_NodeDaemonEndpoints = map[string]string{\n\t\"\":                \"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\n\t\"kubeletEndpoint\": \"Endpoint on which Kubelet is listening.\",\n}\n\nfunc (NodeDaemonEndpoints) SwaggerDoc() map[string]string {\n\treturn map_NodeDaemonEndpoints\n}\n\nvar map_NodeList = map[string]string{\n\t\"\":         \"NodeList is the whole list of all Nodes which have been registered with master.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of nodes\",\n}\n\nfunc (NodeList) SwaggerDoc() map[string]string {\n\treturn map_NodeList\n}\n\nvar map_NodeProxyOptions = map[string]string{\n\t\"\":     \"NodeProxyOptions is the query options to a Node's proxy call.\",\n\t\"path\": \"Path is the URL path to use for the current proxy request to node.\",\n}\n\nfunc (NodeProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_NodeProxyOptions\n}\n\nvar map_NodeResources = map[string]string{\n\t\"\":         \"NodeResources is an object for conveying resource information about a node. see https://kubernetes.io/docs/concepts/architecture/nodes/#capacity for more details.\",\n\t\"Capacity\": \"Capacity represents the available resources of a node\",\n}\n\nfunc (NodeResources) SwaggerDoc() map[string]string {\n\treturn map_NodeResources\n}\n\nvar map_NodeSelector = map[string]string{\n\t\"\":                  \"A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.\",\n\t\"nodeSelectorTerms\": \"Required. A list of node selector terms. The terms are ORed.\",\n}\n\nfunc (NodeSelector) SwaggerDoc() map[string]string {\n\treturn map_NodeSelector\n}\n\nvar map_NodeSelectorRequirement = map[string]string{\n\t\"\":         \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n\t\"key\":      \"The label key that the selector applies to.\",\n\t\"operator\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n\t\"values\":   \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (NodeSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_NodeSelectorRequirement\n}\n\nvar map_NodeSelectorTerm = map[string]string{\n\t\"\":                 \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n\t\"matchExpressions\": \"A list of node selector requirements by node's labels.\",\n\t\"matchFields\":      \"A list of node selector requirements by node's fields.\",\n}\n\nfunc (NodeSelectorTerm) SwaggerDoc() map[string]string {\n\treturn map_NodeSelectorTerm\n}\n\nvar map_NodeSpec = map[string]string{\n\t\"\":              \"NodeSpec describes the attributes that a node is created with.\",\n\t\"podCIDR\":       \"PodCIDR represents the pod IP range assigned to the node.\",\n\t\"podCIDRs\":      \"podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.\",\n\t\"providerID\":    \"ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\",\n\t\"unschedulable\": \"Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\",\n\t\"taints\":        \"If specified, the node's taints.\",\n\t\"configSource\":  \"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\",\n\t\"externalID\":    \"Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966\",\n}\n\nfunc (NodeSpec) SwaggerDoc() map[string]string {\n\treturn map_NodeSpec\n}\n\nvar map_NodeStatus = map[string]string{\n\t\"\":                \"NodeStatus is information about the current status of a node.\",\n\t\"capacity\":        \"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n\t\"allocatable\":     \"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\n\t\"phase\":           \"NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\",\n\t\"conditions\":      \"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\n\t\"addresses\":       \"List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).\",\n\t\"daemonEndpoints\": \"Endpoints of daemons running on the Node.\",\n\t\"nodeInfo\":        \"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\n\t\"images\":          \"List of container images on this node\",\n\t\"volumesInUse\":    \"List of attachable volumes in use (mounted) by the node.\",\n\t\"volumesAttached\": \"List of volumes that are attached to the node.\",\n\t\"config\":          \"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\n}\n\nfunc (NodeStatus) SwaggerDoc() map[string]string {\n\treturn map_NodeStatus\n}\n\nvar map_NodeSystemInfo = map[string]string{\n\t\"\":                        \"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\n\t\"machineID\":               \"MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\",\n\t\"systemUUID\":              \"SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\",\n\t\"bootID\":                  \"Boot ID reported by the node.\",\n\t\"kernelVersion\":           \"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\n\t\"osImage\":                 \"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\n\t\"containerRuntimeVersion\": \"ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\",\n\t\"kubeletVersion\":          \"Kubelet Version reported by the node.\",\n\t\"kubeProxyVersion\":        \"KubeProxy Version reported by the node.\",\n\t\"operatingSystem\":         \"The Operating System reported by the node\",\n\t\"architecture\":            \"The Architecture reported by the node\",\n}\n\nfunc (NodeSystemInfo) SwaggerDoc() map[string]string {\n\treturn map_NodeSystemInfo\n}\n\nvar map_ObjectFieldSelector = map[string]string{\n\t\"\":           \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n\t\"apiVersion\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n\t\"fieldPath\":  \"Path of the field to select in the specified API version.\",\n}\n\nfunc (ObjectFieldSelector) SwaggerDoc() map[string]string {\n\treturn map_ObjectFieldSelector\n}\n\nvar map_ObjectReference = map[string]string{\n\t\"\":                \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n\t\"kind\":            \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"namespace\":       \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n\t\"name\":            \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"uid\":             \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n\t\"apiVersion\":      \"API version of the referent.\",\n\t\"resourceVersion\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"fieldPath\":       \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.\",\n}\n\nfunc (ObjectReference) SwaggerDoc() map[string]string {\n\treturn map_ObjectReference\n}\n\nvar map_PersistentVolume = map[string]string{\n\t\"\":         \"PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\",\n\t\"status\":   \"status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\",\n}\n\nfunc (PersistentVolume) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolume\n}\n\nvar map_PersistentVolumeClaim = map[string]string{\n\t\"\":         \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"status\":   \"status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n}\n\nfunc (PersistentVolumeClaim) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaim\n}\n\nvar map_PersistentVolumeClaimCondition = map[string]string{\n\t\"\":                   \"PersistentVolumeClaimCondition contains details about state of pvc\",\n\t\"lastProbeTime\":      \"lastProbeTime is the time we probed the condition.\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n\t\"reason\":             \"reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \\\"ResizeStarted\\\" that means the underlying persistent volume is being resized.\",\n\t\"message\":            \"message is the human-readable message indicating details about last transition.\",\n}\n\nfunc (PersistentVolumeClaimCondition) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimCondition\n}\n\nvar map_PersistentVolumeClaimList = map[string]string{\n\t\"\":         \"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n}\n\nfunc (PersistentVolumeClaimList) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimList\n}\n\nvar map_PersistentVolumeClaimSpec = map[string]string{\n\t\"\":                 \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n\t\"accessModes\":      \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n\t\"selector\":         \"selector is a label query over volumes to consider for binding.\",\n\t\"resources\":        \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n\t\"volumeName\":       \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n\t\"storageClassName\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n\t\"volumeMode\":       \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n\t\"dataSource\":       \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n\t\"dataSourceRef\":    \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n  in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n}\n\nfunc (PersistentVolumeClaimSpec) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimSpec\n}\n\nvar map_PersistentVolumeClaimStatus = map[string]string{\n\t\"\":                   \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n\t\"phase\":              \"phase represents the current phase of PersistentVolumeClaim.\",\n\t\"accessModes\":        \"accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n\t\"capacity\":           \"capacity represents the actual resources of the underlying volume.\",\n\t\"conditions\":         \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n\t\"allocatedResources\": \"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n\t\"resizeStatus\":       \"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n}\n\nfunc (PersistentVolumeClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimStatus\n}\n\nvar map_PersistentVolumeClaimTemplate = map[string]string{\n\t\"\":         \"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\n\t\"metadata\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n\t\"spec\":     \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n}\n\nfunc (PersistentVolumeClaimTemplate) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimTemplate\n}\n\nvar map_PersistentVolumeClaimVolumeSource = map[string]string{\n\t\"\":          \"PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).\",\n\t\"claimName\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"readOnly\":  \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n}\n\nfunc (PersistentVolumeClaimVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimVolumeSource\n}\n\nvar map_PersistentVolumeList = map[string]string{\n\t\"\":         \"PersistentVolumeList is a list of PersistentVolume items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n}\n\nfunc (PersistentVolumeList) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeList\n}\n\nvar map_PersistentVolumeSource = map[string]string{\n\t\"\":                     \"PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.\",\n\t\"gcePersistentDisk\":    \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"awsElasticBlockStore\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"hostPath\":             \"hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"glusterfs\":            \"glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n\t\"nfs\":                  \"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"rbd\":                  \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n\t\"iscsi\":                \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\n\t\"cinder\":               \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"cephfs\":               \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n\t\"fc\":                   \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n\t\"flocker\":              \"flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\n\t\"flexVolume\":           \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"azureFile\":            \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"vsphereVolume\":        \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n\t\"quobyte\":              \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n\t\"azureDisk\":            \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n\t\"photonPersistentDisk\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n\t\"portworxVolume\":       \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n\t\"scaleIO\":              \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n\t\"local\":                \"local represents directly-attached storage with node affinity\",\n\t\"storageos\":            \"storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md\",\n\t\"csi\":                  \"csi represents storage that is handled by an external CSI driver (Beta feature).\",\n}\n\nfunc (PersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeSource\n}\n\nvar map_PersistentVolumeSpec = map[string]string{\n\t\"\":                              \"PersistentVolumeSpec is the specification of a persistent volume.\",\n\t\"capacity\":                      \"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n\t\"accessModes\":                   \"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\n\t\"claimRef\":                      \"claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\",\n\t\"persistentVolumeReclaimPolicy\": \"persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\",\n\t\"storageClassName\":              \"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\n\t\"mountOptions\":                  \"mountOptions is the list of mount options, e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\",\n\t\"volumeMode\":                    \"volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.\",\n\t\"nodeAffinity\":                  \"nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.\",\n}\n\nfunc (PersistentVolumeSpec) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeSpec\n}\n\nvar map_PersistentVolumeStatus = map[string]string{\n\t\"\":        \"PersistentVolumeStatus is the current status of a persistent volume.\",\n\t\"phase\":   \"phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\",\n\t\"message\": \"message is a human-readable message indicating details about why the volume is in this state.\",\n\t\"reason\":  \"reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.\",\n}\n\nfunc (PersistentVolumeStatus) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeStatus\n}\n\nvar map_PhotonPersistentDiskVolumeSource = map[string]string{\n\t\"\":       \"Represents a Photon Controller persistent disk resource.\",\n\t\"pdID\":   \"pdID is the ID that identifies Photon Controller persistent disk\",\n\t\"fsType\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n}\n\nfunc (PhotonPersistentDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PhotonPersistentDiskVolumeSource\n}\n\nvar map_Pod = map[string]string{\n\t\"\":         \"Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Pod) SwaggerDoc() map[string]string {\n\treturn map_Pod\n}\n\nvar map_PodAffinity = map[string]string{\n\t\"\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (PodAffinity) SwaggerDoc() map[string]string {\n\treturn map_PodAffinity\n}\n\nvar map_PodAffinityTerm = map[string]string{\n\t\"\":                  \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running\",\n\t\"labelSelector\":     \"A label query over a set of resources, in this case pods.\",\n\t\"namespaces\":        \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n\t\"topologyKey\":       \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n\t\"namespaceSelector\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n}\n\nfunc (PodAffinityTerm) SwaggerDoc() map[string]string {\n\treturn map_PodAffinityTerm\n}\n\nvar map_PodAntiAffinity = map[string]string{\n\t\"\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (PodAntiAffinity) SwaggerDoc() map[string]string {\n\treturn map_PodAntiAffinity\n}\n\nvar map_PodAttachOptions = map[string]string{\n\t\"\":          \"PodAttachOptions is the query options to a Pod's remote attach call.\",\n\t\"stdin\":     \"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\n\t\"stdout\":    \"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\n\t\"stderr\":    \"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\n\t\"tty\":       \"TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\",\n\t\"container\": \"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n}\n\nfunc (PodAttachOptions) SwaggerDoc() map[string]string {\n\treturn map_PodAttachOptions\n}\n\nvar map_PodCondition = map[string]string{\n\t\"\":                   \"PodCondition contains details for the current condition of this pod.\",\n\t\"type\":               \"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"status\":             \"Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"lastProbeTime\":      \"Last time we probed the condition.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"Human-readable message indicating details about last transition.\",\n}\n\nfunc (PodCondition) SwaggerDoc() map[string]string {\n\treturn map_PodCondition\n}\n\nvar map_PodDNSConfig = map[string]string{\n\t\"\":            \"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\n\t\"nameservers\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n\t\"searches\":    \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n\t\"options\":     \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n}\n\nfunc (PodDNSConfig) SwaggerDoc() map[string]string {\n\treturn map_PodDNSConfig\n}\n\nvar map_PodDNSConfigOption = map[string]string{\n\t\"\":     \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n\t\"name\": \"Required.\",\n}\n\nfunc (PodDNSConfigOption) SwaggerDoc() map[string]string {\n\treturn map_PodDNSConfigOption\n}\n\nvar map_PodExecOptions = map[string]string{\n\t\"\":          \"PodExecOptions is the query options to a Pod's remote exec call.\",\n\t\"stdin\":     \"Redirect the standard input stream of the pod for this call. Defaults to false.\",\n\t\"stdout\":    \"Redirect the standard output stream of the pod for this call.\",\n\t\"stderr\":    \"Redirect the standard error stream of the pod for this call.\",\n\t\"tty\":       \"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\n\t\"container\": \"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n\t\"command\":   \"Command is the remote command to execute. argv array. Not executed within a shell.\",\n}\n\nfunc (PodExecOptions) SwaggerDoc() map[string]string {\n\treturn map_PodExecOptions\n}\n\nvar map_PodIP = map[string]string{\n\t\"\":   \"IP address information for entries in the (plural) PodIPs field. Each entry includes:\\n\\n\\tIP: An IP address allocated to the pod. Routable at least within the cluster.\",\n\t\"ip\": \"ip is an IP address (IPv4 or IPv6) assigned to the pod\",\n}\n\nfunc (PodIP) SwaggerDoc() map[string]string {\n\treturn map_PodIP\n}\n\nvar map_PodList = map[string]string{\n\t\"\":         \"PodList is a list of Pods.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\n}\n\nfunc (PodList) SwaggerDoc() map[string]string {\n\treturn map_PodList\n}\n\nvar map_PodLogOptions = map[string]string{\n\t\"\":                             \"PodLogOptions is the query options for a Pod's logs REST call.\",\n\t\"container\":                    \"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\n\t\"follow\":                       \"Follow the log stream of the pod. Defaults to false.\",\n\t\"previous\":                     \"Return previous terminated container logs. Defaults to false.\",\n\t\"sinceSeconds\":                 \"A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\",\n\t\"sinceTime\":                    \"An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\",\n\t\"timestamps\":                   \"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\n\t\"tailLines\":                    \"If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime\",\n\t\"limitBytes\":                   \"If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.\",\n\t\"insecureSkipTLSVerifyBackend\": \"insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).\",\n}\n\nfunc (PodLogOptions) SwaggerDoc() map[string]string {\n\treturn map_PodLogOptions\n}\n\nvar map_PodOS = map[string]string{\n\t\"\":     \"PodOS defines the OS parameters of a pod.\",\n\t\"name\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n}\n\nfunc (PodOS) SwaggerDoc() map[string]string {\n\treturn map_PodOS\n}\n\nvar map_PodPortForwardOptions = map[string]string{\n\t\"\":      \"PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.\",\n\t\"ports\": \"List of ports to forward Required when using WebSockets\",\n}\n\nfunc (PodPortForwardOptions) SwaggerDoc() map[string]string {\n\treturn map_PodPortForwardOptions\n}\n\nvar map_PodProxyOptions = map[string]string{\n\t\"\":     \"PodProxyOptions is the query options to a Pod's proxy call.\",\n\t\"path\": \"Path is the URL path to use for the current proxy request to pod.\",\n}\n\nfunc (PodProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_PodProxyOptions\n}\n\nvar map_PodReadinessGate = map[string]string{\n\t\"\":              \"PodReadinessGate contains the reference to a pod condition\",\n\t\"conditionType\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n}\n\nfunc (PodReadinessGate) SwaggerDoc() map[string]string {\n\treturn map_PodReadinessGate\n}\n\nvar map_PodResourceClaim = map[string]string{\n\t\"\":       \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.\",\n\t\"name\":   \"Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.\",\n\t\"source\": \"Source describes where to find the ResourceClaim.\",\n}\n\nfunc (PodResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_PodResourceClaim\n}\n\nvar map_PodSchedulingGate = map[string]string{\n\t\"\":     \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n\t\"name\": \"Name of the scheduling gate. Each scheduling gate must have a unique name field.\",\n}\n\nfunc (PodSchedulingGate) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingGate\n}\n\nvar map_PodSecurityContext = map[string]string{\n\t\"\":                    \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext.  Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n\t\"seLinuxOptions\":      \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"windowsOptions\":      \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n\t\"runAsUser\":           \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsGroup\":          \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsNonRoot\":        \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"supplementalGroups\":  \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"fsGroup\":             \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\\n\\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw \",\n\t\"sysctls\":             \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"fsGroupChangePolicy\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seccompProfile\":      \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n}\n\nfunc (PodSecurityContext) SwaggerDoc() map[string]string {\n\treturn map_PodSecurityContext\n}\n\nvar map_PodSignature = map[string]string{\n\t\"\":              \"Describes the class of pods that should avoid this node. Exactly one field should be set.\",\n\t\"podController\": \"Reference to controller whose pods should avoid this node.\",\n}\n\nfunc (PodSignature) SwaggerDoc() map[string]string {\n\treturn map_PodSignature\n}\n\nvar map_PodSpec = map[string]string{\n\t\"\":                              \"PodSpec is a description of a pod.\",\n\t\"volumes\":                       \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n\t\"initContainers\":                \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n\t\"containers\":                    \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n\t\"ephemeralContainers\":           \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n\t\"restartPolicy\":                 \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n\t\"terminationGracePeriodSeconds\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n\t\"activeDeadlineSeconds\":         \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n\t\"dnsPolicy\":                     \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n\t\"nodeSelector\":                  \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n\t\"serviceAccountName\":            \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n\t\"serviceAccount\":                \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n\t\"automountServiceAccountToken\":  \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n\t\"nodeName\":                      \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.\",\n\t\"hostNetwork\":                   \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n\t\"hostPID\":                       \"Use the host's pid namespace. Optional: Default to false.\",\n\t\"hostIPC\":                       \"Use the host's ipc namespace. Optional: Default to false.\",\n\t\"shareProcessNamespace\":         \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n\t\"securityContext\":               \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\n\t\"imagePullSecrets\":              \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n\t\"hostname\":                      \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n\t\"subdomain\":                     \"If specified, the fully qualified Pod hostname will be \\\"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\\\". If not specified, the pod will not have a domainname at all.\",\n\t\"affinity\":                      \"If specified, the pod's scheduling constraints\",\n\t\"schedulerName\":                 \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n\t\"tolerations\":                   \"If specified, the pod's tolerations.\",\n\t\"hostAliases\":                   \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.\",\n\t\"priorityClassName\":             \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n\t\"priority\":                      \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n\t\"dnsConfig\":                     \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n\t\"readinessGates\":                \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n\t\"runtimeClassName\":              \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"enableServiceLinks\":            \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n\t\"preemptionPolicy\":              \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n\t\"overhead\":                      \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"topologySpreadConstraints\":     \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n\t\"setHostnameAsFQDN\":             \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n\t\"os\":                            \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup\",\n\t\"hostUsers\":                     \"Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n\t\"schedulingGates\":               \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\\n\\nThis is a beta feature enabled by the PodSchedulingReadiness feature gate.\",\n\t\"resourceClaims\":                \"ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n}\n\nfunc (PodSpec) SwaggerDoc() map[string]string {\n\treturn map_PodSpec\n}\n\nvar map_PodStatus = map[string]string{\n\t\"\":                           \"PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.\",\n\t\"phase\":                      \"The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\\n\\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\",\n\t\"conditions\":                 \"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"message\":                    \"A human readable message indicating details about why the pod is in this condition.\",\n\t\"reason\":                     \"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\n\t\"nominatedNodeName\":          \"nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.\",\n\t\"hostIP\":                     \"IP address of the host to which the pod is assigned. Empty if not yet scheduled.\",\n\t\"podIP\":                      \"IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.\",\n\t\"podIPs\":                     \"podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.\",\n\t\"startTime\":                  \"RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.\",\n\t\"initContainerStatuses\":      \"The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\n\t\"containerStatuses\":          \"The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\n\t\"qosClass\":                   \"The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\",\n\t\"ephemeralContainerStatuses\": \"Status for any ephemeral containers that have run in this pod.\",\n\t\"resize\":                     \"Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \\\"Proposed\\\"\",\n}\n\nfunc (PodStatus) SwaggerDoc() map[string]string {\n\treturn map_PodStatus\n}\n\nvar map_PodStatusResult = map[string]string{\n\t\"\":         \"PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodStatusResult) SwaggerDoc() map[string]string {\n\treturn map_PodStatusResult\n}\n\nvar map_PodTemplate = map[string]string{\n\t\"\":         \"PodTemplate describes a template for creating copies of a predefined pod.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"template\": \"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodTemplate) SwaggerDoc() map[string]string {\n\treturn map_PodTemplate\n}\n\nvar map_PodTemplateList = map[string]string{\n\t\"\":         \"PodTemplateList is a list of PodTemplates.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of pod templates\",\n}\n\nfunc (PodTemplateList) SwaggerDoc() map[string]string {\n\treturn map_PodTemplateList\n}\n\nvar map_PodTemplateSpec = map[string]string{\n\t\"\":         \"PodTemplateSpec describes the data a pod should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_PodTemplateSpec\n}\n\nvar map_PortStatus = map[string]string{\n\t\"port\":     \"Port is the port number of the service port of which status is recorded here\",\n\t\"protocol\": \"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (PortStatus) SwaggerDoc() map[string]string {\n\treturn map_PortStatus\n}\n\nvar map_PortworxVolumeSource = map[string]string{\n\t\"\":         \"PortworxVolumeSource represents a Portworx volume resource.\",\n\t\"volumeID\": \"volumeID uniquely identifies a Portworx volume\",\n\t\"fsType\":   \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (PortworxVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PortworxVolumeSource\n}\n\nvar map_Preconditions = map[string]string{\n\t\"\":    \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n\t\"uid\": \"Specifies the target UID.\",\n}\n\nfunc (Preconditions) SwaggerDoc() map[string]string {\n\treturn map_Preconditions\n}\n\nvar map_PreferAvoidPodsEntry = map[string]string{\n\t\"\":             \"Describes a class of pods that should avoid this node.\",\n\t\"podSignature\": \"The class of pods.\",\n\t\"evictionTime\": \"Time at which this entry was added to the list.\",\n\t\"reason\":       \"(brief) reason why this entry was added to the list.\",\n\t\"message\":      \"Human readable message indicating why this entry was added to the list.\",\n}\n\nfunc (PreferAvoidPodsEntry) SwaggerDoc() map[string]string {\n\treturn map_PreferAvoidPodsEntry\n}\n\nvar map_PreferredSchedulingTerm = map[string]string{\n\t\"\":           \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n\t\"weight\":     \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n\t\"preference\": \"A node selector term, associated with the corresponding weight.\",\n}\n\nfunc (PreferredSchedulingTerm) SwaggerDoc() map[string]string {\n\treturn map_PreferredSchedulingTerm\n}\n\nvar map_Probe = map[string]string{\n\t\"\":                              \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n\t\"initialDelaySeconds\":           \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"timeoutSeconds\":                \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"periodSeconds\":                 \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n\t\"successThreshold\":              \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n\t\"failureThreshold\":              \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n\t\"terminationGracePeriodSeconds\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n}\n\nfunc (Probe) SwaggerDoc() map[string]string {\n\treturn map_Probe\n}\n\nvar map_ProbeHandler = map[string]string{\n\t\"\":          \"ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.\",\n\t\"exec\":      \"Exec specifies the action to take.\",\n\t\"httpGet\":   \"HTTPGet specifies the http request to perform.\",\n\t\"tcpSocket\": \"TCPSocket specifies an action involving a TCP port.\",\n\t\"grpc\":      \"GRPC specifies an action involving a GRPC port.\",\n}\n\nfunc (ProbeHandler) SwaggerDoc() map[string]string {\n\treturn map_ProbeHandler\n}\n\nvar map_ProjectedVolumeSource = map[string]string{\n\t\"\":            \"Represents a projected volume source\",\n\t\"sources\":     \"sources is the list of volume projections\",\n\t\"defaultMode\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (ProjectedVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ProjectedVolumeSource\n}\n\nvar map_QuobyteVolumeSource = map[string]string{\n\t\"\":         \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n\t\"registry\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n\t\"volume\":   \"volume is a string that references an already created Quobyte volume by name.\",\n\t\"readOnly\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n\t\"user\":     \"user to map volume access to Defaults to serivceaccount user\",\n\t\"group\":    \"group to map volume access to Default is no group\",\n\t\"tenant\":   \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n}\n\nfunc (QuobyteVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_QuobyteVolumeSource\n}\n\nvar map_RBDPersistentVolumeSource = map[string]string{\n\t\"\":          \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n\t\"monitors\":  \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"image\":     \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n\t\"pool\":      \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"user\":      \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"keyring\":   \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"secretRef\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n}\n\nfunc (RBDPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_RBDPersistentVolumeSource\n}\n\nvar map_RBDVolumeSource = map[string]string{\n\t\"\":          \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n\t\"monitors\":  \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"image\":     \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n\t\"pool\":      \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"user\":      \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"keyring\":   \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"secretRef\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n}\n\nfunc (RBDVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_RBDVolumeSource\n}\n\nvar map_RangeAllocation = map[string]string{\n\t\"\":         \"RangeAllocation is not a public type.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"range\":    \"Range is string that identifies the range represented by 'data'.\",\n\t\"data\":     \"Data is a bit array containing all allocated addresses in the previous segment.\",\n}\n\nfunc (RangeAllocation) SwaggerDoc() map[string]string {\n\treturn map_RangeAllocation\n}\n\nvar map_ReplicationController = map[string]string{\n\t\"\":         \"ReplicationController represents the configuration of a replication controller.\",\n\t\"metadata\": \"If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicationController) SwaggerDoc() map[string]string {\n\treturn map_ReplicationController\n}\n\nvar map_ReplicationControllerCondition = map[string]string{\n\t\"\":                   \"ReplicationControllerCondition describes the state of a replication controller at a certain point.\",\n\t\"type\":               \"Type of replication controller condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicationControllerCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerCondition\n}\n\nvar map_ReplicationControllerList = map[string]string{\n\t\"\":         \"ReplicationControllerList is a collection of replication controllers.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicationControllerList) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerList\n}\n\nvar map_ReplicationControllerSpec = map[string]string{\n\t\"\":                \"ReplicationControllerSpec is the specification of a replication controller.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicationControllerSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerSpec\n}\n\nvar map_ReplicationControllerStatus = map[string]string{\n\t\"\":                     \"ReplicationControllerStatus represents the current status of a replication controller.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replication controller.\",\n\t\"readyReplicas\":        \"The number of ready replicas for this replication controller.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\n\t\"conditions\":           \"Represents the latest available observations of a replication controller's current state.\",\n}\n\nfunc (ReplicationControllerStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerStatus\n}\n\nvar map_ResourceClaim = map[string]string{\n\t\"\":     \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n\t\"name\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n}\n\nfunc (ResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaim\n}\n\nvar map_ResourceFieldSelector = map[string]string{\n\t\"\":              \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n\t\"containerName\": \"Container name: required for volumes, optional for env vars\",\n\t\"resource\":      \"Required: resource to select\",\n\t\"divisor\":       \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n}\n\nfunc (ResourceFieldSelector) SwaggerDoc() map[string]string {\n\treturn map_ResourceFieldSelector\n}\n\nvar map_ResourceQuota = map[string]string{\n\t\"\":         \"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ResourceQuota) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuota\n}\n\nvar map_ResourceQuotaList = map[string]string{\n\t\"\":         \"ResourceQuotaList is a list of ResourceQuota items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n}\n\nfunc (ResourceQuotaList) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaList\n}\n\nvar map_ResourceQuotaSpec = map[string]string{\n\t\"\":              \"ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\",\n\t\"hard\":          \"hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n\t\"scopes\":        \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n\t\"scopeSelector\": \"scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\",\n}\n\nfunc (ResourceQuotaSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaSpec\n}\n\nvar map_ResourceQuotaStatus = map[string]string{\n\t\"\":     \"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\n\t\"hard\": \"Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n\t\"used\": \"Used is the current observed total usage of the resource in the namespace.\",\n}\n\nfunc (ResourceQuotaStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaStatus\n}\n\nvar map_ResourceRequirements = map[string]string{\n\t\"\":         \"ResourceRequirements describes the compute resource requirements.\",\n\t\"limits\":   \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"requests\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"claims\":   \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable. It can only be set for containers.\",\n}\n\nfunc (ResourceRequirements) SwaggerDoc() map[string]string {\n\treturn map_ResourceRequirements\n}\n\nvar map_SELinuxOptions = map[string]string{\n\t\"\":      \"SELinuxOptions are the labels to be applied to the container\",\n\t\"user\":  \"User is a SELinux user label that applies to the container.\",\n\t\"role\":  \"Role is a SELinux role label that applies to the container.\",\n\t\"type\":  \"Type is a SELinux type label that applies to the container.\",\n\t\"level\": \"Level is SELinux level label that applies to the container.\",\n}\n\nfunc (SELinuxOptions) SwaggerDoc() map[string]string {\n\treturn map_SELinuxOptions\n}\n\nvar map_ScaleIOPersistentVolumeSource = map[string]string{\n\t\"\":                 \"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\n\t\"gateway\":          \"gateway is the host address of the ScaleIO API Gateway.\",\n\t\"system\":           \"system is the name of the storage system as configured in ScaleIO.\",\n\t\"secretRef\":        \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n\t\"sslEnabled\":       \"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\n\t\"protectionDomain\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n\t\"storagePool\":      \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n\t\"storageMode\":      \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n\t\"volumeName\":       \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n\t\"fsType\":           \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\n\t\"readOnly\":         \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (ScaleIOPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ScaleIOPersistentVolumeSource\n}\n\nvar map_ScaleIOVolumeSource = map[string]string{\n\t\"\":                 \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n\t\"gateway\":          \"gateway is the host address of the ScaleIO API Gateway.\",\n\t\"system\":           \"system is the name of the storage system as configured in ScaleIO.\",\n\t\"secretRef\":        \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n\t\"sslEnabled\":       \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n\t\"protectionDomain\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n\t\"storagePool\":      \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n\t\"storageMode\":      \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n\t\"volumeName\":       \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n\t\"fsType\":           \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n\t\"readOnly\":         \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (ScaleIOVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ScaleIOVolumeSource\n}\n\nvar map_ScopeSelector = map[string]string{\n\t\"\":                 \"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\n\t\"matchExpressions\": \"A list of scope selector requirements by scope of the resources.\",\n}\n\nfunc (ScopeSelector) SwaggerDoc() map[string]string {\n\treturn map_ScopeSelector\n}\n\nvar map_ScopedResourceSelectorRequirement = map[string]string{\n\t\"\":          \"A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.\",\n\t\"scopeName\": \"The name of the scope that the selector applies to.\",\n\t\"operator\":  \"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\",\n\t\"values\":    \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (ScopedResourceSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_ScopedResourceSelectorRequirement\n}\n\nvar map_SeccompProfile = map[string]string{\n\t\"\":                 \"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\n\t\"type\":             \"type indicates which kind of seccomp profile will be applied. Valid options are:\\n\\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n\t\"localhostProfile\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n}\n\nfunc (SeccompProfile) SwaggerDoc() map[string]string {\n\treturn map_SeccompProfile\n}\n\nvar map_Secret = map[string]string{\n\t\"\":           \"Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"immutable\":  \"Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.\",\n\t\"data\":       \"Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\",\n\t\"stringData\": \"stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.\",\n\t\"type\":       \"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\n}\n\nfunc (Secret) SwaggerDoc() map[string]string {\n\treturn map_Secret\n}\n\nvar map_SecretEnvSource = map[string]string{\n\t\"\":         \"SecretEnvSource selects a Secret to populate the environment variables with.\\n\\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.\",\n\t\"optional\": \"Specify whether the Secret must be defined\",\n}\n\nfunc (SecretEnvSource) SwaggerDoc() map[string]string {\n\treturn map_SecretEnvSource\n}\n\nvar map_SecretKeySelector = map[string]string{\n\t\"\":         \"SecretKeySelector selects a key of a Secret.\",\n\t\"key\":      \"The key of the secret to select from.  Must be a valid secret key.\",\n\t\"optional\": \"Specify whether the Secret or its key must be defined\",\n}\n\nfunc (SecretKeySelector) SwaggerDoc() map[string]string {\n\treturn map_SecretKeySelector\n}\n\nvar map_SecretList = map[string]string{\n\t\"\":         \"SecretList is a list of Secret.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n}\n\nfunc (SecretList) SwaggerDoc() map[string]string {\n\treturn map_SecretList\n}\n\nvar map_SecretProjection = map[string]string{\n\t\"\":         \"Adapts a secret into a projected volume.\\n\\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.\",\n\t\"items\":    \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"optional\": \"optional field specify whether the Secret or its key must be defined\",\n}\n\nfunc (SecretProjection) SwaggerDoc() map[string]string {\n\treturn map_SecretProjection\n}\n\nvar map_SecretReference = map[string]string{\n\t\"\":          \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n\t\"name\":      \"name is unique within a namespace to reference a secret resource.\",\n\t\"namespace\": \"namespace defines the space within which the secret name must be unique.\",\n}\n\nfunc (SecretReference) SwaggerDoc() map[string]string {\n\treturn map_SecretReference\n}\n\nvar map_SecretVolumeSource = map[string]string{\n\t\"\":            \"Adapts a Secret into a volume.\\n\\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.\",\n\t\"secretName\":  \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n\t\"items\":       \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"defaultMode\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n\t\"optional\":    \"optional field specify whether the Secret or its keys must be defined\",\n}\n\nfunc (SecretVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_SecretVolumeSource\n}\n\nvar map_SecurityContext = map[string]string{\n\t\"\":                         \"SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext.  When both are set, the values in SecurityContext take precedence.\",\n\t\"capabilities\":             \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"privileged\":               \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seLinuxOptions\":           \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"windowsOptions\":           \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n\t\"runAsUser\":                \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsGroup\":               \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsNonRoot\":             \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"readOnlyRootFilesystem\":   \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"allowPrivilegeEscalation\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n\t\"procMount\":                \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seccompProfile\":           \"The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n}\n\nfunc (SecurityContext) SwaggerDoc() map[string]string {\n\treturn map_SecurityContext\n}\n\nvar map_SerializedReference = map[string]string{\n\t\"\":          \"SerializedReference is a reference to serialized object.\",\n\t\"reference\": \"The reference to an object in the system.\",\n}\n\nfunc (SerializedReference) SwaggerDoc() map[string]string {\n\treturn map_SerializedReference\n}\n\nvar map_Service = map[string]string{\n\t\"\":         \"Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Service) SwaggerDoc() map[string]string {\n\treturn map_Service\n}\n\nvar map_ServiceAccount = map[string]string{\n\t\"\":                             \"ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets\",\n\t\"metadata\":                     \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"secrets\":                      \"Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation set to \\\"true\\\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n\t\"imagePullSecrets\":             \"ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\",\n\t\"automountServiceAccountToken\": \"AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.\",\n}\n\nfunc (ServiceAccount) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccount\n}\n\nvar map_ServiceAccountList = map[string]string{\n\t\"\":         \"ServiceAccountList is a list of ServiceAccount objects\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n}\n\nfunc (ServiceAccountList) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountList\n}\n\nvar map_ServiceAccountTokenProjection = map[string]string{\n\t\"\":                  \"ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).\",\n\t\"audience\":          \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n\t\"path\":              \"path is the path relative to the mount point of the file to project the token into.\",\n}\n\nfunc (ServiceAccountTokenProjection) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountTokenProjection\n}\n\nvar map_ServiceList = map[string]string{\n\t\"\":         \"ServiceList holds a list of services.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of services\",\n}\n\nfunc (ServiceList) SwaggerDoc() map[string]string {\n\treturn map_ServiceList\n}\n\nvar map_ServicePort = map[string]string{\n\t\"\":            \"ServicePort contains information on service's port.\",\n\t\"name\":        \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.\",\n\t\"protocol\":    \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\n\t\"appProtocol\": \"The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n\t\"port\":        \"The port that will be exposed by this service.\",\n\t\"targetPort\":  \"Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n\t\"nodePort\":    \"The port on each node on which this service is exposed when type is NodePort or LoadBalancer.  Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail.  If not specified, a port will be allocated if this Service requires one.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n}\n\nfunc (ServicePort) SwaggerDoc() map[string]string {\n\treturn map_ServicePort\n}\n\nvar map_ServiceProxyOptions = map[string]string{\n\t\"\":     \"ServiceProxyOptions is the query options to a Service's proxy call.\",\n\t\"path\": \"Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\",\n}\n\nfunc (ServiceProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_ServiceProxyOptions\n}\n\nvar map_ServiceSpec = map[string]string{\n\t\"\":                              \"ServiceSpec describes the attributes that a user creates on a service.\",\n\t\"ports\":                         \"The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"selector\":                      \"Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n\t\"clusterIP\":                     \"clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above).  Valid values are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required.  Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"clusterIPs\":                    \"ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly.  If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above).  Valid values are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address.  Setting this to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required.  Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName.  If this field is not specified, it will be initialized from the clusterIP field.  If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"type\":                          \"type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \\\"ExternalName\\\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n\t\"externalIPs\":                   \"externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.  These IPs are not managed by Kubernetes.  The user is responsible for ensuring that traffic arrives at a node with this IP.  A common example is external load-balancers that are not part of the Kubernetes system.\",\n\t\"sessionAffinity\":               \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"loadBalancerIP\":                \"Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.\",\n\t\"loadBalancerSourceRanges\":      \"If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\\\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n\t\"externalName\":                  \"externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved.  Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n\t\"externalTrafficPolicy\":         \"externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \\\"Cluster\\\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\",\n\t\"healthCheckNodePort\":           \"healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used.  If not specified, a value will be automatically allocated.  External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.\",\n\t\"publishNotReadyAddresses\":      \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \\\"ready\\\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n\t\"sessionAffinityConfig\":         \"sessionAffinityConfig contains the configurations of session affinity.\",\n\t\"ipFamilies\":                    \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \\\"IPv4\\\" and \\\"IPv6\\\".  This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \\\"headless\\\" services. This field will be wiped when updating a Service to type ExternalName.\\n\\nThis field may hold a maximum of two entries (dual-stack families, in either order).  These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\",\n\t\"ipFamilyPolicy\":                \"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \\\"SingleStack\\\" (a single IP family), \\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \\\"RequireDualStack\\\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.\",\n\t\"allocateLoadBalancerNodePorts\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer.  Default is \\\"true\\\". It may be set to \\\"false\\\" if the cluster load-balancer does not rely on NodePorts.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\n\t\"loadBalancerClass\":             \"loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n\t\"internalTrafficPolicy\":         \"InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\",\n}\n\nfunc (ServiceSpec) SwaggerDoc() map[string]string {\n\treturn map_ServiceSpec\n}\n\nvar map_ServiceStatus = map[string]string{\n\t\"\":             \"ServiceStatus represents the current status of a service.\",\n\t\"loadBalancer\": \"LoadBalancer contains the current status of the load-balancer, if one is present.\",\n\t\"conditions\":   \"Current service state\",\n}\n\nfunc (ServiceStatus) SwaggerDoc() map[string]string {\n\treturn map_ServiceStatus\n}\n\nvar map_SessionAffinityConfig = map[string]string{\n\t\"\":         \"SessionAffinityConfig represents the configurations of session affinity.\",\n\t\"clientIP\": \"clientIP contains the configurations of Client IP based session affinity.\",\n}\n\nfunc (SessionAffinityConfig) SwaggerDoc() map[string]string {\n\treturn map_SessionAffinityConfig\n}\n\nvar map_StorageOSPersistentVolumeSource = map[string]string{\n\t\"\":                \"Represents a StorageOS persistent volume resource.\",\n\t\"volumeName\":      \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n\t\"volumeNamespace\": \"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n\t\"fsType\":          \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretRef\":       \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n}\n\nfunc (StorageOSPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_StorageOSPersistentVolumeSource\n}\n\nvar map_StorageOSVolumeSource = map[string]string{\n\t\"\":                \"Represents a StorageOS persistent volume resource.\",\n\t\"volumeName\":      \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n\t\"volumeNamespace\": \"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n\t\"fsType\":          \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretRef\":       \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n}\n\nfunc (StorageOSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_StorageOSVolumeSource\n}\n\nvar map_Sysctl = map[string]string{\n\t\"\":      \"Sysctl defines a kernel parameter to be set\",\n\t\"name\":  \"Name of a property to set\",\n\t\"value\": \"Value of a property to set\",\n}\n\nfunc (Sysctl) SwaggerDoc() map[string]string {\n\treturn map_Sysctl\n}\n\nvar map_TCPSocketAction = map[string]string{\n\t\"\":     \"TCPSocketAction describes an action based on opening a socket\",\n\t\"port\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n\t\"host\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n}\n\nfunc (TCPSocketAction) SwaggerDoc() map[string]string {\n\treturn map_TCPSocketAction\n}\n\nvar map_Taint = map[string]string{\n\t\"\":          \"The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\",\n\t\"key\":       \"Required. The taint key to be applied to a node.\",\n\t\"value\":     \"The taint value corresponding to the taint key.\",\n\t\"effect\":    \"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\n\t\"timeAdded\": \"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\n}\n\nfunc (Taint) SwaggerDoc() map[string]string {\n\treturn map_Taint\n}\n\nvar map_Toleration = map[string]string{\n\t\"\":                  \"The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.\",\n\t\"key\":               \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n\t\"operator\":          \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n\t\"value\":             \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n\t\"effect\":            \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n\t\"tolerationSeconds\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n}\n\nfunc (Toleration) SwaggerDoc() map[string]string {\n\treturn map_Toleration\n}\n\nvar map_TopologySelectorLabelRequirement = map[string]string{\n\t\"\":       \"A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.\",\n\t\"key\":    \"The label key that the selector applies to.\",\n\t\"values\": \"An array of string values. One value must match the label to be selected. Each entry in Values is ORed.\",\n}\n\nfunc (TopologySelectorLabelRequirement) SwaggerDoc() map[string]string {\n\treturn map_TopologySelectorLabelRequirement\n}\n\nvar map_TopologySelectorTerm = map[string]string{\n\t\"\":                      \"A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.\",\n\t\"matchLabelExpressions\": \"A list of topology selector requirements by labels.\",\n}\n\nfunc (TopologySelectorTerm) SwaggerDoc() map[string]string {\n\treturn map_TopologySelectorTerm\n}\n\nvar map_TopologySpreadConstraint = map[string]string{\n\t\"\":                   \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n\t\"maxSkew\":            \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. \",\n\t\"topologyKey\":        \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\n\t\"whenUnsatisfiable\":  \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n  but giving higher precedence to topologies that would help reduce the\\n  skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assignment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: \",\n\t\"labelSelector\":      \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n\t\"minDomains\":         \"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: \",\n\t\"nodeAffinityPolicy\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n\t\"nodeTaintsPolicy\":   \"NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n\t\"matchLabelKeys\":     \"MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n}\n\nfunc (TopologySpreadConstraint) SwaggerDoc() map[string]string {\n\treturn map_TopologySpreadConstraint\n}\n\nvar map_TypedLocalObjectReference = map[string]string{\n\t\"\":         \"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (TypedLocalObjectReference) SwaggerDoc() map[string]string {\n\treturn map_TypedLocalObjectReference\n}\n\nvar map_TypedObjectReference = map[string]string{\n\t\"apiGroup\":  \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"Kind is the type of resource being referenced\",\n\t\"name\":      \"Name is the name of resource being referenced\",\n\t\"namespace\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n}\n\nfunc (TypedObjectReference) SwaggerDoc() map[string]string {\n\treturn map_TypedObjectReference\n}\n\nvar map_Volume = map[string]string{\n\t\"\":     \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n\t\"name\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n}\n\nfunc (Volume) SwaggerDoc() map[string]string {\n\treturn map_Volume\n}\n\nvar map_VolumeDevice = map[string]string{\n\t\"\":           \"volumeDevice describes a mapping of a raw block device within a container.\",\n\t\"name\":       \"name must match the name of a persistentVolumeClaim in the pod\",\n\t\"devicePath\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n}\n\nfunc (VolumeDevice) SwaggerDoc() map[string]string {\n\treturn map_VolumeDevice\n}\n\nvar map_VolumeMount = map[string]string{\n\t\"\":                 \"VolumeMount describes a mounting of a Volume within a container.\",\n\t\"name\":             \"This must match the Name of a Volume.\",\n\t\"readOnly\":         \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n\t\"mountPath\":        \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n\t\"subPath\":          \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n\t\"mountPropagation\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n\t\"subPathExpr\":      \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n}\n\nfunc (VolumeMount) SwaggerDoc() map[string]string {\n\treturn map_VolumeMount\n}\n\nvar map_VolumeNodeAffinity = map[string]string{\n\t\"\":         \"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\n\t\"required\": \"required specifies hard node constraints that must be met.\",\n}\n\nfunc (VolumeNodeAffinity) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeAffinity\n}\n\nvar map_VolumeProjection = map[string]string{\n\t\"\":                    \"Projection that may be projected along with other supported volume types\",\n\t\"secret\":              \"secret information about the secret data to project\",\n\t\"downwardAPI\":         \"downwardAPI information about the downwardAPI data to project\",\n\t\"configMap\":           \"configMap information about the configMap data to project\",\n\t\"serviceAccountToken\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n}\n\nfunc (VolumeProjection) SwaggerDoc() map[string]string {\n\treturn map_VolumeProjection\n}\n\nvar map_VolumeSource = map[string]string{\n\t\"\":                      \"Represents the source of a volume to mount. Only one of its members may be specified.\",\n\t\"hostPath\":              \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"emptyDir\":              \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n\t\"gcePersistentDisk\":     \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"awsElasticBlockStore\":  \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"gitRepo\":               \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n\t\"secret\":                \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n\t\"nfs\":                   \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"iscsi\":                 \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n\t\"glusterfs\":             \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n\t\"persistentVolumeClaim\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"rbd\":                   \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n\t\"flexVolume\":            \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"cinder\":                \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"cephfs\":                \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n\t\"flocker\":               \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n\t\"downwardAPI\":           \"downwardAPI represents downward API about the pod that should populate this volume\",\n\t\"fc\":                    \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n\t\"azureFile\":             \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"configMap\":             \"configMap represents a configMap that should populate this volume\",\n\t\"vsphereVolume\":         \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n\t\"quobyte\":               \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n\t\"azureDisk\":             \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n\t\"photonPersistentDisk\":  \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n\t\"projected\":             \"projected items for all in one resources secrets, configmaps, and downward API\",\n\t\"portworxVolume\":        \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n\t\"scaleIO\":               \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n\t\"storageos\":             \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n\t\"csi\":                   \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n\t\"ephemeral\":             \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n}\n\nfunc (VolumeSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeSource\n}\n\nvar map_VsphereVirtualDiskVolumeSource = map[string]string{\n\t\"\":                  \"Represents a vSphere volume resource.\",\n\t\"volumePath\":        \"volumePath is the path that identifies vSphere volume vmdk\",\n\t\"fsType\":            \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"storagePolicyName\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n\t\"storagePolicyID\":   \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n}\n\nfunc (VsphereVirtualDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_VsphereVirtualDiskVolumeSource\n}\n\nvar map_WeightedPodAffinityTerm = map[string]string{\n\t\"\":                \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n\t\"weight\":          \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n\t\"podAffinityTerm\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n}\n\nfunc (WeightedPodAffinityTerm) SwaggerDoc() map[string]string {\n\treturn map_WeightedPodAffinityTerm\n}\n\nvar map_WindowsSecurityContextOptions = map[string]string{\n\t\"\":                       \"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\n\t\"gmsaCredentialSpecName\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n\t\"gmsaCredentialSpec\":     \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n\t\"runAsUserName\":          \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"hostProcess\":            \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n}\n\nfunc (WindowsSecurityContextOptions) SwaggerDoc() map[string]string {\n\treturn map_WindowsSecurityContextOptions\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\tLabelHostname = \"kubernetes.io/hostname\"\n\n\tLabelTopologyZone   = \"topology.kubernetes.io/zone\"\n\tLabelTopologyRegion = \"topology.kubernetes.io/region\"\n\n\t// These label have been deprecated since 1.17, but will be supported for\n\t// the foreseeable future, to accommodate things like long-lived PVs that\n\t// use them.  New users should prefer the \"topology.kubernetes.io/*\"\n\t// equivalents.\n\tLabelFailureDomainBetaZone   = \"failure-domain.beta.kubernetes.io/zone\"   // deprecated\n\tLabelFailureDomainBetaRegion = \"failure-domain.beta.kubernetes.io/region\" // deprecated\n\n\t// Retained for compat when vendored.  Do not use these consts in new code.\n\tLabelZoneFailureDomain       = LabelFailureDomainBetaZone   // deprecated\n\tLabelZoneRegion              = LabelFailureDomainBetaRegion // deprecated\n\tLabelZoneFailureDomainStable = LabelTopologyZone            // deprecated\n\tLabelZoneRegionStable        = LabelTopologyRegion          // deprecated\n\n\tLabelInstanceType       = \"beta.kubernetes.io/instance-type\"\n\tLabelInstanceTypeStable = \"node.kubernetes.io/instance-type\"\n\n\tLabelOSStable   = \"kubernetes.io/os\"\n\tLabelArchStable = \"kubernetes.io/arch\"\n\n\t// LabelWindowsBuild is used on Windows nodes to specify the Windows build number starting with v1.17.0.\n\t// It's in the format MajorVersion.MinorVersion.BuildNumber (for ex: 10.0.17763)\n\tLabelWindowsBuild = \"node.kubernetes.io/windows-build\"\n\n\t// LabelNamespaceSuffixKubelet is an allowed label namespace suffix kubelets can self-set ([*.]kubelet.kubernetes.io/*)\n\tLabelNamespaceSuffixKubelet = \"kubelet.kubernetes.io\"\n\t// LabelNamespaceSuffixNode is an allowed label namespace suffix kubelets can self-set ([*.]node.kubernetes.io/*)\n\tLabelNamespaceSuffixNode = \"node.kubernetes.io\"\n\n\t// LabelNamespaceNodeRestriction is a forbidden label namespace that kubelets may not self-set when the NodeRestriction admission plugin is enabled\n\tLabelNamespaceNodeRestriction = \"node-restriction.kubernetes.io\"\n\n\t// IsHeadlessService is added by Controller to an Endpoint denoting if its parent\n\t// Service is Headless. The existence of this label can be used further by other\n\t// controllers and kube-proxy to check if the Endpoint objects should be replicated when\n\t// using Headless Services\n\tIsHeadlessService = \"service.kubernetes.io/headless\"\n\n\t// LabelNodeExcludeBalancers specifies that the node should not be considered as a target\n\t// for external load-balancers which use nodes as a second hop (e.g. many cloud LBs which only\n\t// understand nodes). For services that use externalTrafficPolicy=Local, this may mean that\n\t// any backends on excluded nodes are not reachable by those external load-balancers.\n\t// Implementations of this exclusion may vary based on provider.\n\tLabelNodeExcludeBalancers = \"node.kubernetes.io/exclude-from-external-load-balancers\"\n\t// LabelMetadataName is the label name which, in-tree, is used to automatically label namespaces, so they can be selected easily by tools which require definitive labels\n\tLabelMetadataName = \"kubernetes.io/metadata.name\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/well_known_taints.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// TaintNodeNotReady will be added when node is not ready\n\t// and removed when node becomes ready.\n\tTaintNodeNotReady = \"node.kubernetes.io/not-ready\"\n\n\t// TaintNodeUnreachable will be added when node becomes unreachable\n\t// (corresponding to NodeReady status ConditionUnknown)\n\t// and removed when node becomes reachable (NodeReady status ConditionTrue).\n\tTaintNodeUnreachable = \"node.kubernetes.io/unreachable\"\n\n\t// TaintNodeUnschedulable will be added when node becomes unschedulable\n\t// and removed when node becomes schedulable.\n\tTaintNodeUnschedulable = \"node.kubernetes.io/unschedulable\"\n\n\t// TaintNodeMemoryPressure will be added when node has memory pressure\n\t// and removed when node has enough memory.\n\tTaintNodeMemoryPressure = \"node.kubernetes.io/memory-pressure\"\n\n\t// TaintNodeDiskPressure will be added when node has disk pressure\n\t// and removed when node has enough disk.\n\tTaintNodeDiskPressure = \"node.kubernetes.io/disk-pressure\"\n\n\t// TaintNodeNetworkUnavailable will be added when node's network is unavailable\n\t// and removed when network becomes ready.\n\tTaintNodeNetworkUnavailable = \"node.kubernetes.io/network-unavailable\"\n\n\t// TaintNodePIDPressure will be added when node has pid pressure\n\t// and removed when node has enough pid.\n\tTaintNodePIDPressure = \"node.kubernetes.io/pid-pressure\"\n\n\t// TaintNodeOutOfService can be added when node is out of service in case of\n\t// a non-graceful shutdown\n\tTaintNodeOutOfService = \"node.kubernetes.io/out-of-service\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AWSElasticBlockStoreVolumeSource) DeepCopyInto(out *AWSElasticBlockStoreVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSElasticBlockStoreVolumeSource.\nfunc (in *AWSElasticBlockStoreVolumeSource) DeepCopy() *AWSElasticBlockStoreVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AWSElasticBlockStoreVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Affinity) DeepCopyInto(out *Affinity) {\n\t*out = *in\n\tif in.NodeAffinity != nil {\n\t\tin, out := &in.NodeAffinity, &out.NodeAffinity\n\t\t*out = new(NodeAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PodAffinity != nil {\n\t\tin, out := &in.PodAffinity, &out.PodAffinity\n\t\t*out = new(PodAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PodAntiAffinity != nil {\n\t\tin, out := &in.PodAntiAffinity, &out.PodAntiAffinity\n\t\t*out = new(PodAntiAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.\nfunc (in *Affinity) DeepCopy() *Affinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Affinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AttachedVolume) DeepCopyInto(out *AttachedVolume) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachedVolume.\nfunc (in *AttachedVolume) DeepCopy() *AttachedVolume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AttachedVolume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AvoidPods) DeepCopyInto(out *AvoidPods) {\n\t*out = *in\n\tif in.PreferAvoidPods != nil {\n\t\tin, out := &in.PreferAvoidPods, &out.PreferAvoidPods\n\t\t*out = make([]PreferAvoidPodsEntry, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvoidPods.\nfunc (in *AvoidPods) DeepCopy() *AvoidPods {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AvoidPods)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureDiskVolumeSource) DeepCopyInto(out *AzureDiskVolumeSource) {\n\t*out = *in\n\tif in.CachingMode != nil {\n\t\tin, out := &in.CachingMode, &out.CachingMode\n\t\t*out = new(AzureDataDiskCachingMode)\n\t\t**out = **in\n\t}\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ReadOnly != nil {\n\t\tin, out := &in.ReadOnly, &out.ReadOnly\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Kind != nil {\n\t\tin, out := &in.Kind, &out.Kind\n\t\t*out = new(AzureDataDiskKind)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureDiskVolumeSource.\nfunc (in *AzureDiskVolumeSource) DeepCopy() *AzureDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretNamespace != nil {\n\t\tin, out := &in.SecretNamespace, &out.SecretNamespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFilePersistentVolumeSource.\nfunc (in *AzureFilePersistentVolumeSource) DeepCopy() *AzureFilePersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureFilePersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureFileVolumeSource) DeepCopyInto(out *AzureFileVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFileVolumeSource.\nfunc (in *AzureFileVolumeSource) DeepCopy() *AzureFileVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureFileVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Binding) DeepCopyInto(out *Binding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Target = in.Target\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.\nfunc (in *Binding) DeepCopy() *Binding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Binding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Binding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIPersistentVolumeSource) DeepCopyInto(out *CSIPersistentVolumeSource) {\n\t*out = *in\n\tif in.VolumeAttributes != nil {\n\t\tin, out := &in.VolumeAttributes, &out.VolumeAttributes\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ControllerPublishSecretRef != nil {\n\t\tin, out := &in.ControllerPublishSecretRef, &out.ControllerPublishSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodeStageSecretRef != nil {\n\t\tin, out := &in.NodeStageSecretRef, &out.NodeStageSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodePublishSecretRef != nil {\n\t\tin, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.ControllerExpandSecretRef != nil {\n\t\tin, out := &in.ControllerExpandSecretRef, &out.ControllerExpandSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodeExpandSecretRef != nil {\n\t\tin, out := &in.NodeExpandSecretRef, &out.NodeExpandSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIPersistentVolumeSource.\nfunc (in *CSIPersistentVolumeSource) DeepCopy() *CSIPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIVolumeSource) DeepCopyInto(out *CSIVolumeSource) {\n\t*out = *in\n\tif in.ReadOnly != nil {\n\t\tin, out := &in.ReadOnly, &out.ReadOnly\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VolumeAttributes != nil {\n\t\tin, out := &in.VolumeAttributes, &out.VolumeAttributes\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodePublishSecretRef != nil {\n\t\tin, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIVolumeSource.\nfunc (in *CSIVolumeSource) DeepCopy() *CSIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Capabilities) DeepCopyInto(out *Capabilities) {\n\t*out = *in\n\tif in.Add != nil {\n\t\tin, out := &in.Add, &out.Add\n\t\t*out = make([]Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Drop != nil {\n\t\tin, out := &in.Drop, &out.Drop\n\t\t*out = make([]Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Capabilities.\nfunc (in *Capabilities) DeepCopy() *Capabilities {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Capabilities)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CephFSPersistentVolumeSource) DeepCopyInto(out *CephFSPersistentVolumeSource) {\n\t*out = *in\n\tif in.Monitors != nil {\n\t\tin, out := &in.Monitors, &out.Monitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSPersistentVolumeSource.\nfunc (in *CephFSPersistentVolumeSource) DeepCopy() *CephFSPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CephFSPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CephFSVolumeSource) DeepCopyInto(out *CephFSVolumeSource) {\n\t*out = *in\n\tif in.Monitors != nil {\n\t\tin, out := &in.Monitors, &out.Monitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSVolumeSource.\nfunc (in *CephFSVolumeSource) DeepCopy() *CephFSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CephFSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CinderPersistentVolumeSource) DeepCopyInto(out *CinderPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderPersistentVolumeSource.\nfunc (in *CinderPersistentVolumeSource) DeepCopy() *CinderPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CinderPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CinderVolumeSource) DeepCopyInto(out *CinderVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderVolumeSource.\nfunc (in *CinderVolumeSource) DeepCopy() *CinderVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CinderVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClaimSource) DeepCopyInto(out *ClaimSource) {\n\t*out = *in\n\tif in.ResourceClaimName != nil {\n\t\tin, out := &in.ResourceClaimName, &out.ResourceClaimName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ResourceClaimTemplateName != nil {\n\t\tin, out := &in.ResourceClaimTemplateName, &out.ResourceClaimTemplateName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClaimSource.\nfunc (in *ClaimSource) DeepCopy() *ClaimSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClaimSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClientIPConfig) DeepCopyInto(out *ClientIPConfig) {\n\t*out = *in\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientIPConfig.\nfunc (in *ClientIPConfig) DeepCopy() *ClientIPConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClientIPConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentCondition) DeepCopyInto(out *ComponentCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentCondition.\nfunc (in *ComponentCondition) DeepCopy() *ComponentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentStatus) DeepCopyInto(out *ComponentStatus) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ComponentCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.\nfunc (in *ComponentStatus) DeepCopy() *ComponentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ComponentStatus) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentStatusList) DeepCopyInto(out *ComponentStatusList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ComponentStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatusList.\nfunc (in *ComponentStatusList) DeepCopy() *ComponentStatusList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentStatusList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ComponentStatusList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMap) DeepCopyInto(out *ConfigMap) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Immutable != nil {\n\t\tin, out := &in.Immutable, &out.Immutable\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.BinaryData != nil {\n\t\tin, out := &in.BinaryData, &out.BinaryData\n\t\t*out = make(map[string][]byte, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []byte\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]byte, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMap.\nfunc (in *ConfigMap) DeepCopy() *ConfigMap {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMap)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ConfigMap) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapEnvSource) DeepCopyInto(out *ConfigMapEnvSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapEnvSource.\nfunc (in *ConfigMapEnvSource) DeepCopy() *ConfigMapEnvSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapEnvSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapKeySelector.\nfunc (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapKeySelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapList) DeepCopyInto(out *ConfigMapList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ConfigMap, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapList.\nfunc (in *ConfigMapList) DeepCopy() *ConfigMapList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ConfigMapList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapNodeConfigSource) DeepCopyInto(out *ConfigMapNodeConfigSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapNodeConfigSource.\nfunc (in *ConfigMapNodeConfigSource) DeepCopy() *ConfigMapNodeConfigSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapNodeConfigSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapProjection) DeepCopyInto(out *ConfigMapProjection) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapProjection.\nfunc (in *ConfigMapProjection) DeepCopy() *ConfigMapProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapVolumeSource) DeepCopyInto(out *ConfigMapVolumeSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapVolumeSource.\nfunc (in *ConfigMapVolumeSource) DeepCopy() *ConfigMapVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Container) DeepCopyInto(out *Container) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ContainerPort, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.EnvFrom != nil {\n\t\tin, out := &in.EnvFrom, &out.EnvFrom\n\t\t*out = make([]EnvFromSource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]EnvVar, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.ResizePolicy != nil {\n\t\tin, out := &in.ResizePolicy, &out.ResizePolicy\n\t\t*out = make([]ContainerResizePolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumeMounts != nil {\n\t\tin, out := &in.VolumeMounts, &out.VolumeMounts\n\t\t*out = make([]VolumeMount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumeDevices != nil {\n\t\tin, out := &in.VolumeDevices, &out.VolumeDevices\n\t\t*out = make([]VolumeDevice, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LivenessProbe != nil {\n\t\tin, out := &in.LivenessProbe, &out.LivenessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessProbe != nil {\n\t\tin, out := &in.ReadinessProbe, &out.ReadinessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StartupProbe != nil {\n\t\tin, out := &in.StartupProbe, &out.StartupProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Lifecycle != nil {\n\t\tin, out := &in.Lifecycle, &out.Lifecycle\n\t\t*out = new(Lifecycle)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(SecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.\nfunc (in *Container) DeepCopy() *Container {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Container)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerImage) DeepCopyInto(out *ContainerImage) {\n\t*out = *in\n\tif in.Names != nil {\n\t\tin, out := &in.Names, &out.Names\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImage.\nfunc (in *ContainerImage) DeepCopy() *ContainerImage {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerImage)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerPort) DeepCopyInto(out *ContainerPort) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerPort.\nfunc (in *ContainerPort) DeepCopy() *ContainerPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResizePolicy) DeepCopyInto(out *ContainerResizePolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResizePolicy.\nfunc (in *ContainerResizePolicy) DeepCopy() *ContainerResizePolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResizePolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerState) DeepCopyInto(out *ContainerState) {\n\t*out = *in\n\tif in.Waiting != nil {\n\t\tin, out := &in.Waiting, &out.Waiting\n\t\t*out = new(ContainerStateWaiting)\n\t\t**out = **in\n\t}\n\tif in.Running != nil {\n\t\tin, out := &in.Running, &out.Running\n\t\t*out = new(ContainerStateRunning)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Terminated != nil {\n\t\tin, out := &in.Terminated, &out.Terminated\n\t\t*out = new(ContainerStateTerminated)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerState.\nfunc (in *ContainerState) DeepCopy() *ContainerState {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerState)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateRunning) DeepCopyInto(out *ContainerStateRunning) {\n\t*out = *in\n\tin.StartedAt.DeepCopyInto(&out.StartedAt)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateRunning.\nfunc (in *ContainerStateRunning) DeepCopy() *ContainerStateRunning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateRunning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateTerminated) DeepCopyInto(out *ContainerStateTerminated) {\n\t*out = *in\n\tin.StartedAt.DeepCopyInto(&out.StartedAt)\n\tin.FinishedAt.DeepCopyInto(&out.FinishedAt)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateTerminated.\nfunc (in *ContainerStateTerminated) DeepCopy() *ContainerStateTerminated {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateTerminated)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateWaiting) DeepCopyInto(out *ContainerStateWaiting) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateWaiting.\nfunc (in *ContainerStateWaiting) DeepCopy() *ContainerStateWaiting {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateWaiting)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStatus) DeepCopyInto(out *ContainerStatus) {\n\t*out = *in\n\tin.State.DeepCopyInto(&out.State)\n\tin.LastTerminationState.DeepCopyInto(&out.LastTerminationState)\n\tif in.Started != nil {\n\t\tin, out := &in.Started, &out.Started\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllocatedResources != nil {\n\t\tin, out := &in.AllocatedResources, &out.AllocatedResources\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = new(ResourceRequirements)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStatus.\nfunc (in *ContainerStatus) DeepCopy() *ContainerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonEndpoint) DeepCopyInto(out *DaemonEndpoint) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonEndpoint.\nfunc (in *DaemonEndpoint) DeepCopy() *DaemonEndpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonEndpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIProjection) DeepCopyInto(out *DownwardAPIProjection) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DownwardAPIVolumeFile, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIProjection.\nfunc (in *DownwardAPIProjection) DeepCopy() *DownwardAPIProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIVolumeFile) DeepCopyInto(out *DownwardAPIVolumeFile) {\n\t*out = *in\n\tif in.FieldRef != nil {\n\t\tin, out := &in.FieldRef, &out.FieldRef\n\t\t*out = new(ObjectFieldSelector)\n\t\t**out = **in\n\t}\n\tif in.ResourceFieldRef != nil {\n\t\tin, out := &in.ResourceFieldRef, &out.ResourceFieldRef\n\t\t*out = new(ResourceFieldSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Mode != nil {\n\t\tin, out := &in.Mode, &out.Mode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeFile.\nfunc (in *DownwardAPIVolumeFile) DeepCopy() *DownwardAPIVolumeFile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIVolumeFile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIVolumeSource) DeepCopyInto(out *DownwardAPIVolumeSource) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DownwardAPIVolumeFile, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeSource.\nfunc (in *DownwardAPIVolumeSource) DeepCopy() *DownwardAPIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EmptyDirVolumeSource) DeepCopyInto(out *EmptyDirVolumeSource) {\n\t*out = *in\n\tif in.SizeLimit != nil {\n\t\tin, out := &in.SizeLimit, &out.SizeLimit\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmptyDirVolumeSource.\nfunc (in *EmptyDirVolumeSource) DeepCopy() *EmptyDirVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EmptyDirVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointAddress) DeepCopyInto(out *EndpointAddress) {\n\t*out = *in\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointAddress.\nfunc (in *EndpointAddress) DeepCopy() *EndpointAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSubset) DeepCopyInto(out *EndpointSubset) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]EndpointAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NotReadyAddresses != nil {\n\t\tin, out := &in.NotReadyAddresses, &out.NotReadyAddresses\n\t\t*out = make([]EndpointAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSubset.\nfunc (in *EndpointSubset) DeepCopy() *EndpointSubset {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSubset)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoints) DeepCopyInto(out *Endpoints) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subsets != nil {\n\t\tin, out := &in.Subsets, &out.Subsets\n\t\t*out = make([]EndpointSubset, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.\nfunc (in *Endpoints) DeepCopy() *Endpoints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Endpoints) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointsList) DeepCopyInto(out *EndpointsList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Endpoints, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsList.\nfunc (in *EndpointsList) DeepCopy() *EndpointsList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointsList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointsList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvFromSource) DeepCopyInto(out *EnvFromSource) {\n\t*out = *in\n\tif in.ConfigMapRef != nil {\n\t\tin, out := &in.ConfigMapRef, &out.ConfigMapRef\n\t\t*out = new(ConfigMapEnvSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretEnvSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvFromSource.\nfunc (in *EnvFromSource) DeepCopy() *EnvFromSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvFromSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvVar) DeepCopyInto(out *EnvVar) {\n\t*out = *in\n\tif in.ValueFrom != nil {\n\t\tin, out := &in.ValueFrom, &out.ValueFrom\n\t\t*out = new(EnvVarSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.\nfunc (in *EnvVar) DeepCopy() *EnvVar {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvVar)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvVarSource) DeepCopyInto(out *EnvVarSource) {\n\t*out = *in\n\tif in.FieldRef != nil {\n\t\tin, out := &in.FieldRef, &out.FieldRef\n\t\t*out = new(ObjectFieldSelector)\n\t\t**out = **in\n\t}\n\tif in.ResourceFieldRef != nil {\n\t\tin, out := &in.ResourceFieldRef, &out.ResourceFieldRef\n\t\t*out = new(ResourceFieldSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ConfigMapKeyRef != nil {\n\t\tin, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef\n\t\t*out = new(ConfigMapKeySelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecretKeyRef != nil {\n\t\tin, out := &in.SecretKeyRef, &out.SecretKeyRef\n\t\t*out = new(SecretKeySelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarSource.\nfunc (in *EnvVarSource) DeepCopy() *EnvVarSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvVarSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralContainer) DeepCopyInto(out *EphemeralContainer) {\n\t*out = *in\n\tin.EphemeralContainerCommon.DeepCopyInto(&out.EphemeralContainerCommon)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralContainer.\nfunc (in *EphemeralContainer) DeepCopy() *EphemeralContainer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralContainer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralContainerCommon) DeepCopyInto(out *EphemeralContainerCommon) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ContainerPort, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.EnvFrom != nil {\n\t\tin, out := &in.EnvFrom, &out.EnvFrom\n\t\t*out = make([]EnvFromSource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]EnvVar, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.ResizePolicy != nil {\n\t\tin, out := &in.ResizePolicy, &out.ResizePolicy\n\t\t*out = make([]ContainerResizePolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumeMounts != nil {\n\t\tin, out := &in.VolumeMounts, &out.VolumeMounts\n\t\t*out = make([]VolumeMount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumeDevices != nil {\n\t\tin, out := &in.VolumeDevices, &out.VolumeDevices\n\t\t*out = make([]VolumeDevice, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LivenessProbe != nil {\n\t\tin, out := &in.LivenessProbe, &out.LivenessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessProbe != nil {\n\t\tin, out := &in.ReadinessProbe, &out.ReadinessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StartupProbe != nil {\n\t\tin, out := &in.StartupProbe, &out.StartupProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Lifecycle != nil {\n\t\tin, out := &in.Lifecycle, &out.Lifecycle\n\t\t*out = new(Lifecycle)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(SecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralContainerCommon.\nfunc (in *EphemeralContainerCommon) DeepCopy() *EphemeralContainerCommon {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralContainerCommon)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralVolumeSource) DeepCopyInto(out *EphemeralVolumeSource) {\n\t*out = *in\n\tif in.VolumeClaimTemplate != nil {\n\t\tin, out := &in.VolumeClaimTemplate, &out.VolumeClaimTemplate\n\t\t*out = new(PersistentVolumeClaimTemplate)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeSource.\nfunc (in *EphemeralVolumeSource) DeepCopy() *EphemeralVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.InvolvedObject = in.InvolvedObject\n\tout.Source = in.Source\n\tin.FirstTimestamp.DeepCopyInto(&out.FirstTimestamp)\n\tin.LastTimestamp.DeepCopyInto(&out.LastTimestamp)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSource) DeepCopyInto(out *EventSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSource.\nfunc (in *EventSource) DeepCopy() *EventSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecAction) DeepCopyInto(out *ExecAction) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.\nfunc (in *ExecAction) DeepCopy() *ExecAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) {\n\t*out = *in\n\tif in.TargetWWNs != nil {\n\t\tin, out := &in.TargetWWNs, &out.TargetWWNs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Lun != nil {\n\t\tin, out := &in.Lun, &out.Lun\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.WWIDs != nil {\n\t\tin, out := &in.WWIDs, &out.WWIDs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FCVolumeSource.\nfunc (in *FCVolumeSource) DeepCopy() *FCVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FCVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlexPersistentVolumeSource) DeepCopyInto(out *FlexPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexPersistentVolumeSource.\nfunc (in *FlexPersistentVolumeSource) DeepCopy() *FlexPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlexPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlexVolumeSource) DeepCopyInto(out *FlexVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexVolumeSource.\nfunc (in *FlexVolumeSource) DeepCopy() *FlexVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlexVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlockerVolumeSource) DeepCopyInto(out *FlockerVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlockerVolumeSource.\nfunc (in *FlockerVolumeSource) DeepCopy() *FlockerVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlockerVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GCEPersistentDiskVolumeSource) DeepCopyInto(out *GCEPersistentDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCEPersistentDiskVolumeSource.\nfunc (in *GCEPersistentDiskVolumeSource) DeepCopy() *GCEPersistentDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GCEPersistentDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GRPCAction) DeepCopyInto(out *GRPCAction) {\n\t*out = *in\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCAction.\nfunc (in *GRPCAction) DeepCopy() *GRPCAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GRPCAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GitRepoVolumeSource) DeepCopyInto(out *GitRepoVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoVolumeSource.\nfunc (in *GitRepoVolumeSource) DeepCopy() *GitRepoVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GitRepoVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GlusterfsPersistentVolumeSource) DeepCopyInto(out *GlusterfsPersistentVolumeSource) {\n\t*out = *in\n\tif in.EndpointsNamespace != nil {\n\t\tin, out := &in.EndpointsNamespace, &out.EndpointsNamespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsPersistentVolumeSource.\nfunc (in *GlusterfsPersistentVolumeSource) DeepCopy() *GlusterfsPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GlusterfsPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GlusterfsVolumeSource) DeepCopyInto(out *GlusterfsVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsVolumeSource.\nfunc (in *GlusterfsVolumeSource) DeepCopy() *GlusterfsVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GlusterfsVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPGetAction) DeepCopyInto(out *HTTPGetAction) {\n\t*out = *in\n\tout.Port = in.Port\n\tif in.HTTPHeaders != nil {\n\t\tin, out := &in.HTTPHeaders, &out.HTTPHeaders\n\t\t*out = make([]HTTPHeader, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction.\nfunc (in *HTTPGetAction) DeepCopy() *HTTPGetAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPGetAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPHeader) DeepCopyInto(out *HTTPHeader) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeader.\nfunc (in *HTTPHeader) DeepCopy() *HTTPHeader {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPHeader)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostAlias) DeepCopyInto(out *HostAlias) {\n\t*out = *in\n\tif in.Hostnames != nil {\n\t\tin, out := &in.Hostnames, &out.Hostnames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostAlias.\nfunc (in *HostAlias) DeepCopy() *HostAlias {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostAlias)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) {\n\t*out = *in\n\tif in.Type != nil {\n\t\tin, out := &in.Type, &out.Type\n\t\t*out = new(HostPathType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathVolumeSource.\nfunc (in *HostPathVolumeSource) DeepCopy() *HostPathVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostPathVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ISCSIPersistentVolumeSource) DeepCopyInto(out *ISCSIPersistentVolumeSource) {\n\t*out = *in\n\tif in.Portals != nil {\n\t\tin, out := &in.Portals, &out.Portals\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.InitiatorName != nil {\n\t\tin, out := &in.InitiatorName, &out.InitiatorName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIPersistentVolumeSource.\nfunc (in *ISCSIPersistentVolumeSource) DeepCopy() *ISCSIPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ISCSIPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ISCSIVolumeSource) DeepCopyInto(out *ISCSIVolumeSource) {\n\t*out = *in\n\tif in.Portals != nil {\n\t\tin, out := &in.Portals, &out.Portals\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\tif in.InitiatorName != nil {\n\t\tin, out := &in.InitiatorName, &out.InitiatorName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIVolumeSource.\nfunc (in *ISCSIVolumeSource) DeepCopy() *ISCSIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ISCSIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *KeyToPath) DeepCopyInto(out *KeyToPath) {\n\t*out = *in\n\tif in.Mode != nil {\n\t\tin, out := &in.Mode, &out.Mode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyToPath.\nfunc (in *KeyToPath) DeepCopy() *KeyToPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(KeyToPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lifecycle) DeepCopyInto(out *Lifecycle) {\n\t*out = *in\n\tif in.PostStart != nil {\n\t\tin, out := &in.PostStart, &out.PostStart\n\t\t*out = new(LifecycleHandler)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PreStop != nil {\n\t\tin, out := &in.PreStop, &out.PreStop\n\t\t*out = new(LifecycleHandler)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lifecycle.\nfunc (in *Lifecycle) DeepCopy() *Lifecycle {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lifecycle)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LifecycleHandler) DeepCopyInto(out *LifecycleHandler) {\n\t*out = *in\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.HTTPGet != nil {\n\t\tin, out := &in.HTTPGet, &out.HTTPGet\n\t\t*out = new(HTTPGetAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TCPSocket != nil {\n\t\tin, out := &in.TCPSocket, &out.TCPSocket\n\t\t*out = new(TCPSocketAction)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleHandler.\nfunc (in *LifecycleHandler) DeepCopy() *LifecycleHandler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LifecycleHandler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRange) DeepCopyInto(out *LimitRange) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRange.\nfunc (in *LimitRange) DeepCopy() *LimitRange {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRange)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LimitRange) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeItem) DeepCopyInto(out *LimitRangeItem) {\n\t*out = *in\n\tif in.Max != nil {\n\t\tin, out := &in.Max, &out.Max\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Min != nil {\n\t\tin, out := &in.Min, &out.Min\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Default != nil {\n\t\tin, out := &in.Default, &out.Default\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.DefaultRequest != nil {\n\t\tin, out := &in.DefaultRequest, &out.DefaultRequest\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.MaxLimitRequestRatio != nil {\n\t\tin, out := &in.MaxLimitRequestRatio, &out.MaxLimitRequestRatio\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeItem.\nfunc (in *LimitRangeItem) DeepCopy() *LimitRangeItem {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeItem)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeList) DeepCopyInto(out *LimitRangeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]LimitRange, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeList.\nfunc (in *LimitRangeList) DeepCopy() *LimitRangeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LimitRangeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeSpec) DeepCopyInto(out *LimitRangeSpec) {\n\t*out = *in\n\tif in.Limits != nil {\n\t\tin, out := &in.Limits, &out.Limits\n\t\t*out = make([]LimitRangeItem, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeSpec.\nfunc (in *LimitRangeSpec) DeepCopy() *LimitRangeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *List) DeepCopyInto(out *List) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.RawExtension, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.\nfunc (in *List) DeepCopy() *List {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(List)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *List) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LoadBalancerIngress) DeepCopyInto(out *LoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]PortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerIngress.\nfunc (in *LoadBalancerIngress) DeepCopy() *LoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]LoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus.\nfunc (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.\nfunc (in *LocalObjectReference) DeepCopy() *LocalObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalVolumeSource) DeepCopyInto(out *LocalVolumeSource) {\n\t*out = *in\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalVolumeSource.\nfunc (in *LocalVolumeSource) DeepCopy() *LocalVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NFSVolumeSource) DeepCopyInto(out *NFSVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSVolumeSource.\nfunc (in *NFSVolumeSource) DeepCopy() *NFSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NFSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Namespace) DeepCopyInto(out *Namespace) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Namespace.\nfunc (in *Namespace) DeepCopy() *Namespace {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Namespace)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Namespace) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceCondition) DeepCopyInto(out *NamespaceCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceCondition.\nfunc (in *NamespaceCondition) DeepCopy() *NamespaceCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceList) DeepCopyInto(out *NamespaceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Namespace, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceList.\nfunc (in *NamespaceList) DeepCopy() *NamespaceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NamespaceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceSpec) DeepCopyInto(out *NamespaceSpec) {\n\t*out = *in\n\tif in.Finalizers != nil {\n\t\tin, out := &in.Finalizers, &out.Finalizers\n\t\t*out = make([]FinalizerName, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSpec.\nfunc (in *NamespaceSpec) DeepCopy() *NamespaceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceStatus) DeepCopyInto(out *NamespaceStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]NamespaceCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceStatus.\nfunc (in *NamespaceStatus) DeepCopy() *NamespaceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Node) DeepCopyInto(out *Node) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.\nfunc (in *Node) DeepCopy() *Node {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Node)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Node) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeAddress) DeepCopyInto(out *NodeAddress) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAddress.\nfunc (in *NodeAddress) DeepCopy() *NodeAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeAffinity) DeepCopyInto(out *NodeAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = new(NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PreferredSchedulingTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAffinity.\nfunc (in *NodeAffinity) DeepCopy() *NodeAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeCondition) DeepCopyInto(out *NodeCondition) {\n\t*out = *in\n\tin.LastHeartbeatTime.DeepCopyInto(&out.LastHeartbeatTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeCondition.\nfunc (in *NodeCondition) DeepCopy() *NodeCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) {\n\t*out = *in\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapNodeConfigSource)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSource.\nfunc (in *NodeConfigSource) DeepCopy() *NodeConfigSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeConfigSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeConfigStatus) DeepCopyInto(out *NodeConfigStatus) {\n\t*out = *in\n\tif in.Assigned != nil {\n\t\tin, out := &in.Assigned, &out.Assigned\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.LastKnownGood != nil {\n\t\tin, out := &in.LastKnownGood, &out.LastKnownGood\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigStatus.\nfunc (in *NodeConfigStatus) DeepCopy() *NodeConfigStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeConfigStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeDaemonEndpoints) DeepCopyInto(out *NodeDaemonEndpoints) {\n\t*out = *in\n\tout.KubeletEndpoint = in.KubeletEndpoint\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDaemonEndpoints.\nfunc (in *NodeDaemonEndpoints) DeepCopy() *NodeDaemonEndpoints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeDaemonEndpoints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeList) DeepCopyInto(out *NodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Node, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeList.\nfunc (in *NodeList) DeepCopy() *NodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeProxyOptions) DeepCopyInto(out *NodeProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeProxyOptions.\nfunc (in *NodeProxyOptions) DeepCopy() *NodeProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NodeProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeResources) DeepCopyInto(out *NodeResources) {\n\t*out = *in\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeResources.\nfunc (in *NodeResources) DeepCopy() *NodeResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelector) DeepCopyInto(out *NodeSelector) {\n\t*out = *in\n\tif in.NodeSelectorTerms != nil {\n\t\tin, out := &in.NodeSelectorTerms, &out.NodeSelectorTerms\n\t\t*out = make([]NodeSelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelector.\nfunc (in *NodeSelector) DeepCopy() *NodeSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelectorRequirement) DeepCopyInto(out *NodeSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorRequirement.\nfunc (in *NodeSelectorRequirement) DeepCopy() *NodeSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelectorTerm) DeepCopyInto(out *NodeSelectorTerm) {\n\t*out = *in\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]NodeSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchFields != nil {\n\t\tin, out := &in.MatchFields, &out.MatchFields\n\t\t*out = make([]NodeSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorTerm.\nfunc (in *NodeSelectorTerm) DeepCopy() *NodeSelectorTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelectorTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSpec) DeepCopyInto(out *NodeSpec) {\n\t*out = *in\n\tif in.PodCIDRs != nil {\n\t\tin, out := &in.PodCIDRs, &out.PodCIDRs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Taints != nil {\n\t\tin, out := &in.Taints, &out.Taints\n\t\t*out = make([]Taint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ConfigSource != nil {\n\t\tin, out := &in.ConfigSource, &out.ConfigSource\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpec.\nfunc (in *NodeSpec) DeepCopy() *NodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeStatus) DeepCopyInto(out *NodeStatus) {\n\t*out = *in\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]NodeCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]NodeAddress, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.DaemonEndpoints = in.DaemonEndpoints\n\tout.NodeInfo = in.NodeInfo\n\tif in.Images != nil {\n\t\tin, out := &in.Images, &out.Images\n\t\t*out = make([]ContainerImage, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumesInUse != nil {\n\t\tin, out := &in.VolumesInUse, &out.VolumesInUse\n\t\t*out = make([]UniqueVolumeName, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumesAttached != nil {\n\t\tin, out := &in.VolumesAttached, &out.VolumesAttached\n\t\t*out = make([]AttachedVolume, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = new(NodeConfigStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.\nfunc (in *NodeStatus) DeepCopy() *NodeStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSystemInfo) DeepCopyInto(out *NodeSystemInfo) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSystemInfo.\nfunc (in *NodeSystemInfo) DeepCopy() *NodeSystemInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSystemInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectFieldSelector) DeepCopyInto(out *ObjectFieldSelector) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectFieldSelector.\nfunc (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectFieldSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectReference) DeepCopyInto(out *ObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.\nfunc (in *ObjectReference) DeepCopy() *ObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ObjectReference) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolume) DeepCopyInto(out *PersistentVolume) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolume.\nfunc (in *PersistentVolume) DeepCopy() *PersistentVolume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolume) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.\nfunc (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeClaim) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimCondition) DeepCopyInto(out *PersistentVolumeClaimCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimCondition.\nfunc (in *PersistentVolumeClaimCondition) DeepCopy() *PersistentVolumeClaimCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimList) DeepCopyInto(out *PersistentVolumeClaimList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimList.\nfunc (in *PersistentVolumeClaimList) DeepCopy() *PersistentVolumeClaimList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeClaimList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec) {\n\t*out = *in\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.StorageClassName != nil {\n\t\tin, out := &in.StorageClassName, &out.StorageClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VolumeMode != nil {\n\t\tin, out := &in.VolumeMode, &out.VolumeMode\n\t\t*out = new(PersistentVolumeMode)\n\t\t**out = **in\n\t}\n\tif in.DataSource != nil {\n\t\tin, out := &in.DataSource, &out.DataSource\n\t\t*out = new(TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DataSourceRef != nil {\n\t\tin, out := &in.DataSourceRef, &out.DataSourceRef\n\t\t*out = new(TypedObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimSpec.\nfunc (in *PersistentVolumeClaimSpec) DeepCopy() *PersistentVolumeClaimSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimStatus) DeepCopyInto(out *PersistentVolumeClaimStatus) {\n\t*out = *in\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PersistentVolumeClaimCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AllocatedResources != nil {\n\t\tin, out := &in.AllocatedResources, &out.AllocatedResources\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.ResizeStatus != nil {\n\t\tin, out := &in.ResizeStatus, &out.ResizeStatus\n\t\t*out = new(PersistentVolumeClaimResizeStatus)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimStatus.\nfunc (in *PersistentVolumeClaimStatus) DeepCopy() *PersistentVolumeClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimTemplate) DeepCopyInto(out *PersistentVolumeClaimTemplate) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimTemplate.\nfunc (in *PersistentVolumeClaimTemplate) DeepCopy() *PersistentVolumeClaimTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimVolumeSource.\nfunc (in *PersistentVolumeClaimVolumeSource) DeepCopy() *PersistentVolumeClaimVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeList) DeepCopyInto(out *PersistentVolumeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PersistentVolume, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeList.\nfunc (in *PersistentVolumeList) DeepCopy() *PersistentVolumeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) {\n\t*out = *in\n\tif in.GCEPersistentDisk != nil {\n\t\tin, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk\n\t\t*out = new(GCEPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AWSElasticBlockStore != nil {\n\t\tin, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore\n\t\t*out = new(AWSElasticBlockStoreVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.HostPath != nil {\n\t\tin, out := &in.HostPath, &out.HostPath\n\t\t*out = new(HostPathVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Glusterfs != nil {\n\t\tin, out := &in.Glusterfs, &out.Glusterfs\n\t\t*out = new(GlusterfsPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NFS != nil {\n\t\tin, out := &in.NFS, &out.NFS\n\t\t*out = new(NFSVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.RBD != nil {\n\t\tin, out := &in.RBD, &out.RBD\n\t\t*out = new(RBDPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ISCSI != nil {\n\t\tin, out := &in.ISCSI, &out.ISCSI\n\t\t*out = new(ISCSIPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Cinder != nil {\n\t\tin, out := &in.Cinder, &out.Cinder\n\t\t*out = new(CinderPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CephFS != nil {\n\t\tin, out := &in.CephFS, &out.CephFS\n\t\t*out = new(CephFSPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FC != nil {\n\t\tin, out := &in.FC, &out.FC\n\t\t*out = new(FCVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Flocker != nil {\n\t\tin, out := &in.Flocker, &out.Flocker\n\t\t*out = new(FlockerVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.FlexVolume != nil {\n\t\tin, out := &in.FlexVolume, &out.FlexVolume\n\t\t*out = new(FlexPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AzureFile != nil {\n\t\tin, out := &in.AzureFile, &out.AzureFile\n\t\t*out = new(AzureFilePersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VsphereVolume != nil {\n\t\tin, out := &in.VsphereVolume, &out.VsphereVolume\n\t\t*out = new(VsphereVirtualDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Quobyte != nil {\n\t\tin, out := &in.Quobyte, &out.Quobyte\n\t\t*out = new(QuobyteVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AzureDisk != nil {\n\t\tin, out := &in.AzureDisk, &out.AzureDisk\n\t\t*out = new(AzureDiskVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PhotonPersistentDisk != nil {\n\t\tin, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk\n\t\t*out = new(PhotonPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.PortworxVolume != nil {\n\t\tin, out := &in.PortworxVolume, &out.PortworxVolume\n\t\t*out = new(PortworxVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ScaleIO != nil {\n\t\tin, out := &in.ScaleIO, &out.ScaleIO\n\t\t*out = new(ScaleIOPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Local != nil {\n\t\tin, out := &in.Local, &out.Local\n\t\t*out = new(LocalVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StorageOS != nil {\n\t\tin, out := &in.StorageOS, &out.StorageOS\n\t\t*out = new(StorageOSPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CSI != nil {\n\t\tin, out := &in.CSI, &out.CSI\n\t\t*out = new(CSIPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSource.\nfunc (in *PersistentVolumeSource) DeepCopy() *PersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) {\n\t*out = *in\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tin.PersistentVolumeSource.DeepCopyInto(&out.PersistentVolumeSource)\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ClaimRef != nil {\n\t\tin, out := &in.ClaimRef, &out.ClaimRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumeMode != nil {\n\t\tin, out := &in.VolumeMode, &out.VolumeMode\n\t\t*out = new(PersistentVolumeMode)\n\t\t**out = **in\n\t}\n\tif in.NodeAffinity != nil {\n\t\tin, out := &in.NodeAffinity, &out.NodeAffinity\n\t\t*out = new(VolumeNodeAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSpec.\nfunc (in *PersistentVolumeSpec) DeepCopy() *PersistentVolumeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeStatus) DeepCopyInto(out *PersistentVolumeStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeStatus.\nfunc (in *PersistentVolumeStatus) DeepCopy() *PersistentVolumeStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PhotonPersistentDiskVolumeSource) DeepCopyInto(out *PhotonPersistentDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhotonPersistentDiskVolumeSource.\nfunc (in *PhotonPersistentDiskVolumeSource) DeepCopy() *PhotonPersistentDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PhotonPersistentDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Pod) DeepCopyInto(out *Pod) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.\nfunc (in *Pod) DeepCopy() *Pod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Pod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Pod) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAffinity) DeepCopyInto(out *PodAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]WeightedPodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinity.\nfunc (in *PodAffinity) DeepCopy() *PodAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm) {\n\t*out = *in\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinityTerm.\nfunc (in *PodAffinityTerm) DeepCopy() *PodAffinityTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAffinityTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAntiAffinity) DeepCopyInto(out *PodAntiAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]WeightedPodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAntiAffinity.\nfunc (in *PodAntiAffinity) DeepCopy() *PodAntiAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAntiAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAttachOptions) DeepCopyInto(out *PodAttachOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAttachOptions.\nfunc (in *PodAttachOptions) DeepCopy() *PodAttachOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAttachOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodAttachOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodCondition) DeepCopyInto(out *PodCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodCondition.\nfunc (in *PodCondition) DeepCopy() *PodCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDNSConfig) DeepCopyInto(out *PodDNSConfig) {\n\t*out = *in\n\tif in.Nameservers != nil {\n\t\tin, out := &in.Nameservers, &out.Nameservers\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Searches != nil {\n\t\tin, out := &in.Searches, &out.Searches\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make([]PodDNSConfigOption, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfig.\nfunc (in *PodDNSConfig) DeepCopy() *PodDNSConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDNSConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDNSConfigOption) DeepCopyInto(out *PodDNSConfigOption) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfigOption.\nfunc (in *PodDNSConfigOption) DeepCopy() *PodDNSConfigOption {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDNSConfigOption)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodExecOptions) DeepCopyInto(out *PodExecOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodExecOptions.\nfunc (in *PodExecOptions) DeepCopy() *PodExecOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodExecOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodExecOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodIP) DeepCopyInto(out *PodIP) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodIP.\nfunc (in *PodIP) DeepCopy() *PodIP {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodIP)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodList) DeepCopyInto(out *PodList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Pod, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodList.\nfunc (in *PodList) DeepCopy() *PodList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodLogOptions) DeepCopyInto(out *PodLogOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.SinceSeconds != nil {\n\t\tin, out := &in.SinceSeconds, &out.SinceSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.SinceTime != nil {\n\t\tin, out := &in.SinceTime, &out.SinceTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.TailLines != nil {\n\t\tin, out := &in.TailLines, &out.TailLines\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LimitBytes != nil {\n\t\tin, out := &in.LimitBytes, &out.LimitBytes\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodLogOptions.\nfunc (in *PodLogOptions) DeepCopy() *PodLogOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodLogOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodLogOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodOS) DeepCopyInto(out *PodOS) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOS.\nfunc (in *PodOS) DeepCopy() *PodOS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodOS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]int32, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodPortForwardOptions.\nfunc (in *PodPortForwardOptions) DeepCopy() *PodPortForwardOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodPortForwardOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodPortForwardOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodProxyOptions) DeepCopyInto(out *PodProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodProxyOptions.\nfunc (in *PodProxyOptions) DeepCopy() *PodProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodReadinessGate) DeepCopyInto(out *PodReadinessGate) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodReadinessGate.\nfunc (in *PodReadinessGate) DeepCopy() *PodReadinessGate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodReadinessGate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodResourceClaim) DeepCopyInto(out *PodResourceClaim) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourceClaim.\nfunc (in *PodResourceClaim) DeepCopy() *PodResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingGate) DeepCopyInto(out *PodSchedulingGate) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingGate.\nfunc (in *PodSchedulingGate) DeepCopy() *PodSchedulingGate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingGate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) {\n\t*out = *in\n\tif in.SELinuxOptions != nil {\n\t\tin, out := &in.SELinuxOptions, &out.SELinuxOptions\n\t\t*out = new(SELinuxOptions)\n\t\t**out = **in\n\t}\n\tif in.WindowsOptions != nil {\n\t\tin, out := &in.WindowsOptions, &out.WindowsOptions\n\t\t*out = new(WindowsSecurityContextOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.RunAsUser != nil {\n\t\tin, out := &in.RunAsUser, &out.RunAsUser\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsGroup != nil {\n\t\tin, out := &in.RunAsGroup, &out.RunAsGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsNonRoot != nil {\n\t\tin, out := &in.RunAsNonRoot, &out.RunAsNonRoot\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SupplementalGroups != nil {\n\t\tin, out := &in.SupplementalGroups, &out.SupplementalGroups\n\t\t*out = make([]int64, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.FSGroup != nil {\n\t\tin, out := &in.FSGroup, &out.FSGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Sysctls != nil {\n\t\tin, out := &in.Sysctls, &out.Sysctls\n\t\t*out = make([]Sysctl, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.FSGroupChangePolicy != nil {\n\t\tin, out := &in.FSGroupChangePolicy, &out.FSGroupChangePolicy\n\t\t*out = new(PodFSGroupChangePolicy)\n\t\t**out = **in\n\t}\n\tif in.SeccompProfile != nil {\n\t\tin, out := &in.SeccompProfile, &out.SeccompProfile\n\t\t*out = new(SeccompProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityContext.\nfunc (in *PodSecurityContext) DeepCopy() *PodSecurityContext {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSecurityContext)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSignature) DeepCopyInto(out *PodSignature) {\n\t*out = *in\n\tif in.PodController != nil {\n\t\tin, out := &in.PodController, &out.PodController\n\t\t*out = new(metav1.OwnerReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSignature.\nfunc (in *PodSignature) DeepCopy() *PodSignature {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSignature)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSpec) DeepCopyInto(out *PodSpec) {\n\t*out = *in\n\tif in.Volumes != nil {\n\t\tin, out := &in.Volumes, &out.Volumes\n\t\t*out = make([]Volume, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.InitContainers != nil {\n\t\tin, out := &in.InitContainers, &out.InitContainers\n\t\t*out = make([]Container, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Containers != nil {\n\t\tin, out := &in.Containers, &out.Containers\n\t\t*out = make([]Container, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.EphemeralContainers != nil {\n\t\tin, out := &in.EphemeralContainers, &out.EphemeralContainers\n\t\t*out = make([]EphemeralContainer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.TerminationGracePeriodSeconds != nil {\n\t\tin, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.ActiveDeadlineSeconds != nil {\n\t\tin, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AutomountServiceAccountToken != nil {\n\t\tin, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ShareProcessNamespace != nil {\n\t\tin, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(PodSecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ImagePullSecrets != nil {\n\t\tin, out := &in.ImagePullSecrets, &out.ImagePullSecrets\n\t\t*out = make([]LocalObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Affinity != nil {\n\t\tin, out := &in.Affinity, &out.Affinity\n\t\t*out = new(Affinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.HostAliases != nil {\n\t\tin, out := &in.HostAliases, &out.HostAliases\n\t\t*out = make([]HostAlias, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Priority != nil {\n\t\tin, out := &in.Priority, &out.Priority\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.DNSConfig != nil {\n\t\tin, out := &in.DNSConfig, &out.DNSConfig\n\t\t*out = new(PodDNSConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessGates != nil {\n\t\tin, out := &in.ReadinessGates, &out.ReadinessGates\n\t\t*out = make([]PodReadinessGate, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RuntimeClassName != nil {\n\t\tin, out := &in.RuntimeClassName, &out.RuntimeClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.EnableServiceLinks != nil {\n\t\tin, out := &in.EnableServiceLinks, &out.EnableServiceLinks\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(PreemptionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.TopologySpreadConstraints != nil {\n\t\tin, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints\n\t\t*out = make([]TopologySpreadConstraint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.SetHostnameAsFQDN != nil {\n\t\tin, out := &in.SetHostnameAsFQDN, &out.SetHostnameAsFQDN\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.OS != nil {\n\t\tin, out := &in.OS, &out.OS\n\t\t*out = new(PodOS)\n\t\t**out = **in\n\t}\n\tif in.HostUsers != nil {\n\t\tin, out := &in.HostUsers, &out.HostUsers\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SchedulingGates != nil {\n\t\tin, out := &in.SchedulingGates, &out.SchedulingGates\n\t\t*out = make([]PodSchedulingGate, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceClaims != nil {\n\t\tin, out := &in.ResourceClaims, &out.ResourceClaims\n\t\t*out = make([]PodResourceClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.\nfunc (in *PodSpec) DeepCopy() *PodSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodStatus) DeepCopyInto(out *PodStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PodCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PodIPs != nil {\n\t\tin, out := &in.PodIPs, &out.PodIPs\n\t\t*out = make([]PodIP, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StartTime != nil {\n\t\tin, out := &in.StartTime, &out.StartTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.InitContainerStatuses != nil {\n\t\tin, out := &in.InitContainerStatuses, &out.InitContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ContainerStatuses != nil {\n\t\tin, out := &in.ContainerStatuses, &out.ContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.EphemeralContainerStatuses != nil {\n\t\tin, out := &in.EphemeralContainerStatuses, &out.EphemeralContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatus.\nfunc (in *PodStatus) DeepCopy() *PodStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodStatusResult) DeepCopyInto(out *PodStatusResult) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatusResult.\nfunc (in *PodStatusResult) DeepCopy() *PodStatusResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodStatusResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodStatusResult) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplate) DeepCopyInto(out *PodTemplate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.\nfunc (in *PodTemplate) DeepCopy() *PodTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodTemplate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplateList) DeepCopyInto(out *PodTemplateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodTemplate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateList.\nfunc (in *PodTemplateList) DeepCopy() *PodTemplateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodTemplateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.\nfunc (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PortStatus) DeepCopyInto(out *PortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortStatus.\nfunc (in *PortStatus) DeepCopy() *PortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PortworxVolumeSource) DeepCopyInto(out *PortworxVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortworxVolumeSource.\nfunc (in *PortworxVolumeSource) DeepCopy() *PortworxVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PortworxVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preconditions) DeepCopyInto(out *Preconditions) {\n\t*out = *in\n\tif in.UID != nil {\n\t\tin, out := &in.UID, &out.UID\n\t\t*out = new(types.UID)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preconditions.\nfunc (in *Preconditions) DeepCopy() *Preconditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preconditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PreferAvoidPodsEntry) DeepCopyInto(out *PreferAvoidPodsEntry) {\n\t*out = *in\n\tin.PodSignature.DeepCopyInto(&out.PodSignature)\n\tin.EvictionTime.DeepCopyInto(&out.EvictionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferAvoidPodsEntry.\nfunc (in *PreferAvoidPodsEntry) DeepCopy() *PreferAvoidPodsEntry {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PreferAvoidPodsEntry)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PreferredSchedulingTerm) DeepCopyInto(out *PreferredSchedulingTerm) {\n\t*out = *in\n\tin.Preference.DeepCopyInto(&out.Preference)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferredSchedulingTerm.\nfunc (in *PreferredSchedulingTerm) DeepCopy() *PreferredSchedulingTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PreferredSchedulingTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Probe) DeepCopyInto(out *Probe) {\n\t*out = *in\n\tin.ProbeHandler.DeepCopyInto(&out.ProbeHandler)\n\tif in.TerminationGracePeriodSeconds != nil {\n\t\tin, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.\nfunc (in *Probe) DeepCopy() *Probe {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Probe)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ProbeHandler) DeepCopyInto(out *ProbeHandler) {\n\t*out = *in\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.HTTPGet != nil {\n\t\tin, out := &in.HTTPGet, &out.HTTPGet\n\t\t*out = new(HTTPGetAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TCPSocket != nil {\n\t\tin, out := &in.TCPSocket, &out.TCPSocket\n\t\t*out = new(TCPSocketAction)\n\t\t**out = **in\n\t}\n\tif in.GRPC != nil {\n\t\tin, out := &in.GRPC, &out.GRPC\n\t\t*out = new(GRPCAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeHandler.\nfunc (in *ProbeHandler) DeepCopy() *ProbeHandler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ProbeHandler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ProjectedVolumeSource) DeepCopyInto(out *ProjectedVolumeSource) {\n\t*out = *in\n\tif in.Sources != nil {\n\t\tin, out := &in.Sources, &out.Sources\n\t\t*out = make([]VolumeProjection, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectedVolumeSource.\nfunc (in *ProjectedVolumeSource) DeepCopy() *ProjectedVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ProjectedVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QuobyteVolumeSource) DeepCopyInto(out *QuobyteVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuobyteVolumeSource.\nfunc (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QuobyteVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) {\n\t*out = *in\n\tif in.CephMonitors != nil {\n\t\tin, out := &in.CephMonitors, &out.CephMonitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource.\nfunc (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RBDPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) {\n\t*out = *in\n\tif in.CephMonitors != nil {\n\t\tin, out := &in.CephMonitors, &out.CephMonitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDVolumeSource.\nfunc (in *RBDVolumeSource) DeepCopy() *RBDVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RBDVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RangeAllocation) DeepCopyInto(out *RangeAllocation) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RangeAllocation.\nfunc (in *RangeAllocation) DeepCopy() *RangeAllocation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RangeAllocation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RangeAllocation) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationController) DeepCopyInto(out *ReplicationController) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationController.\nfunc (in *ReplicationController) DeepCopy() *ReplicationController {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationController)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicationController) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerCondition) DeepCopyInto(out *ReplicationControllerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerCondition.\nfunc (in *ReplicationControllerCondition) DeepCopy() *ReplicationControllerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerList) DeepCopyInto(out *ReplicationControllerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicationController, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerList.\nfunc (in *ReplicationControllerList) DeepCopy() *ReplicationControllerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicationControllerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerSpec) DeepCopyInto(out *ReplicationControllerSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Template != nil {\n\t\tin, out := &in.Template, &out.Template\n\t\t*out = new(PodTemplateSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerSpec.\nfunc (in *ReplicationControllerSpec) DeepCopy() *ReplicationControllerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerStatus) DeepCopyInto(out *ReplicationControllerStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicationControllerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerStatus.\nfunc (in *ReplicationControllerStatus) DeepCopy() *ReplicationControllerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaim) DeepCopyInto(out *ResourceClaim) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaim.\nfunc (in *ResourceClaim) DeepCopy() *ResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceFieldSelector) DeepCopyInto(out *ResourceFieldSelector) {\n\t*out = *in\n\tout.Divisor = in.Divisor.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceFieldSelector.\nfunc (in *ResourceFieldSelector) DeepCopy() *ResourceFieldSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceFieldSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ResourceList) DeepCopyInto(out *ResourceList) {\n\t{\n\t\tin := &in\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.\nfunc (in ResourceList) DeepCopy() ResourceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceList)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuota) DeepCopyInto(out *ResourceQuota) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuota.\nfunc (in *ResourceQuota) DeepCopy() *ResourceQuota {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuota)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceQuota) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaList) DeepCopyInto(out *ResourceQuotaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceQuota, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaList.\nfunc (in *ResourceQuotaList) DeepCopy() *ResourceQuotaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceQuotaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec) {\n\t*out = *in\n\tif in.Hard != nil {\n\t\tin, out := &in.Hard, &out.Hard\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Scopes != nil {\n\t\tin, out := &in.Scopes, &out.Scopes\n\t\t*out = make([]ResourceQuotaScope, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ScopeSelector != nil {\n\t\tin, out := &in.ScopeSelector, &out.ScopeSelector\n\t\t*out = new(ScopeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaSpec.\nfunc (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaStatus) DeepCopyInto(out *ResourceQuotaStatus) {\n\t*out = *in\n\tif in.Hard != nil {\n\t\tin, out := &in.Hard, &out.Hard\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Used != nil {\n\t\tin, out := &in.Used, &out.Used\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaStatus.\nfunc (in *ResourceQuotaStatus) DeepCopy() *ResourceQuotaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements) {\n\t*out = *in\n\tif in.Limits != nil {\n\t\tin, out := &in.Limits, &out.Limits\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Claims != nil {\n\t\tin, out := &in.Claims, &out.Claims\n\t\t*out = make([]ResourceClaim, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.\nfunc (in *ResourceRequirements) DeepCopy() *ResourceRequirements {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRequirements)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SELinuxOptions) DeepCopyInto(out *SELinuxOptions) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxOptions.\nfunc (in *SELinuxOptions) DeepCopy() *SELinuxOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SELinuxOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource.\nfunc (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleIOPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOVolumeSource.\nfunc (in *ScaleIOVolumeSource) DeepCopy() *ScaleIOVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleIOVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScopeSelector) DeepCopyInto(out *ScopeSelector) {\n\t*out = *in\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]ScopedResourceSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeSelector.\nfunc (in *ScopeSelector) DeepCopy() *ScopeSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScopeSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScopedResourceSelectorRequirement) DeepCopyInto(out *ScopedResourceSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopedResourceSelectorRequirement.\nfunc (in *ScopedResourceSelectorRequirement) DeepCopy() *ScopedResourceSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScopedResourceSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SeccompProfile) DeepCopyInto(out *SeccompProfile) {\n\t*out = *in\n\tif in.LocalhostProfile != nil {\n\t\tin, out := &in.LocalhostProfile, &out.LocalhostProfile\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeccompProfile.\nfunc (in *SeccompProfile) DeepCopy() *SeccompProfile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SeccompProfile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Secret) DeepCopyInto(out *Secret) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Immutable != nil {\n\t\tin, out := &in.Immutable, &out.Immutable\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make(map[string][]byte, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []byte\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]byte, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.StringData != nil {\n\t\tin, out := &in.StringData, &out.StringData\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.\nfunc (in *Secret) DeepCopy() *Secret {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Secret)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Secret) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretEnvSource) DeepCopyInto(out *SecretEnvSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretEnvSource.\nfunc (in *SecretEnvSource) DeepCopy() *SecretEnvSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretEnvSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.\nfunc (in *SecretKeySelector) DeepCopy() *SecretKeySelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretKeySelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretList) DeepCopyInto(out *SecretList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Secret, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretList.\nfunc (in *SecretList) DeepCopy() *SecretList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SecretList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretProjection) DeepCopyInto(out *SecretProjection) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretProjection.\nfunc (in *SecretProjection) DeepCopy() *SecretProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretReference) DeepCopyInto(out *SecretReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.\nfunc (in *SecretReference) DeepCopy() *SecretReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretVolumeSource) DeepCopyInto(out *SecretVolumeSource) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVolumeSource.\nfunc (in *SecretVolumeSource) DeepCopy() *SecretVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecurityContext) DeepCopyInto(out *SecurityContext) {\n\t*out = *in\n\tif in.Capabilities != nil {\n\t\tin, out := &in.Capabilities, &out.Capabilities\n\t\t*out = new(Capabilities)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Privileged != nil {\n\t\tin, out := &in.Privileged, &out.Privileged\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxOptions != nil {\n\t\tin, out := &in.SELinuxOptions, &out.SELinuxOptions\n\t\t*out = new(SELinuxOptions)\n\t\t**out = **in\n\t}\n\tif in.WindowsOptions != nil {\n\t\tin, out := &in.WindowsOptions, &out.WindowsOptions\n\t\t*out = new(WindowsSecurityContextOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.RunAsUser != nil {\n\t\tin, out := &in.RunAsUser, &out.RunAsUser\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsGroup != nil {\n\t\tin, out := &in.RunAsGroup, &out.RunAsGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsNonRoot != nil {\n\t\tin, out := &in.RunAsNonRoot, &out.RunAsNonRoot\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ReadOnlyRootFilesystem != nil {\n\t\tin, out := &in.ReadOnlyRootFilesystem, &out.ReadOnlyRootFilesystem\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllowPrivilegeEscalation != nil {\n\t\tin, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ProcMount != nil {\n\t\tin, out := &in.ProcMount, &out.ProcMount\n\t\t*out = new(ProcMountType)\n\t\t**out = **in\n\t}\n\tif in.SeccompProfile != nil {\n\t\tin, out := &in.SeccompProfile, &out.SeccompProfile\n\t\t*out = new(SeccompProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContext.\nfunc (in *SecurityContext) DeepCopy() *SecurityContext {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecurityContext)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SerializedReference) DeepCopyInto(out *SerializedReference) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tout.Reference = in.Reference\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SerializedReference.\nfunc (in *SerializedReference) DeepCopy() *SerializedReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SerializedReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SerializedReference) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Service) DeepCopyInto(out *Service) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.\nfunc (in *Service) DeepCopy() *Service {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Service)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Service) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccount) DeepCopyInto(out *ServiceAccount) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Secrets != nil {\n\t\tin, out := &in.Secrets, &out.Secrets\n\t\t*out = make([]ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImagePullSecrets != nil {\n\t\tin, out := &in.ImagePullSecrets, &out.ImagePullSecrets\n\t\t*out = make([]LocalObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AutomountServiceAccountToken != nil {\n\t\tin, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccount.\nfunc (in *ServiceAccount) DeepCopy() *ServiceAccount {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccount)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceAccount) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountList) DeepCopyInto(out *ServiceAccountList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ServiceAccount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountList.\nfunc (in *ServiceAccountList) DeepCopy() *ServiceAccountList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceAccountList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountTokenProjection) DeepCopyInto(out *ServiceAccountTokenProjection) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountTokenProjection.\nfunc (in *ServiceAccountTokenProjection) DeepCopy() *ServiceAccountTokenProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountTokenProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceList) DeepCopyInto(out *ServiceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Service, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList.\nfunc (in *ServiceList) DeepCopy() *ServiceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServicePort) DeepCopyInto(out *ServicePort) {\n\t*out = *in\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tout.TargetPort = in.TargetPort\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.\nfunc (in *ServicePort) DeepCopy() *ServicePort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServicePort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceProxyOptions) DeepCopyInto(out *ServiceProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProxyOptions.\nfunc (in *ServiceProxyOptions) DeepCopy() *ServiceProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ServicePort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ClusterIPs != nil {\n\t\tin, out := &in.ClusterIPs, &out.ClusterIPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExternalIPs != nil {\n\t\tin, out := &in.ExternalIPs, &out.ExternalIPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LoadBalancerSourceRanges != nil {\n\t\tin, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SessionAffinityConfig != nil {\n\t\tin, out := &in.SessionAffinityConfig, &out.SessionAffinityConfig\n\t\t*out = new(SessionAffinityConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPFamilies != nil {\n\t\tin, out := &in.IPFamilies, &out.IPFamilies\n\t\t*out = make([]IPFamily, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.IPFamilyPolicy != nil {\n\t\tin, out := &in.IPFamilyPolicy, &out.IPFamilyPolicy\n\t\t*out = new(IPFamilyPolicy)\n\t\t**out = **in\n\t}\n\tif in.AllocateLoadBalancerNodePorts != nil {\n\t\tin, out := &in.AllocateLoadBalancerNodePorts, &out.AllocateLoadBalancerNodePorts\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.LoadBalancerClass != nil {\n\t\tin, out := &in.LoadBalancerClass, &out.LoadBalancerClass\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InternalTrafficPolicy != nil {\n\t\tin, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy\n\t\t*out = new(ServiceInternalTrafficPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.\nfunc (in *ServiceSpec) DeepCopy() *ServiceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceStatus) DeepCopyInto(out *ServiceStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus.\nfunc (in *ServiceStatus) DeepCopy() *ServiceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig) {\n\t*out = *in\n\tif in.ClientIP != nil {\n\t\tin, out := &in.ClientIP, &out.ClientIP\n\t\t*out = new(ClientIPConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionAffinityConfig.\nfunc (in *SessionAffinityConfig) DeepCopy() *SessionAffinityConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SessionAffinityConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageOSPersistentVolumeSource) DeepCopyInto(out *StorageOSPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSPersistentVolumeSource.\nfunc (in *StorageOSPersistentVolumeSource) DeepCopy() *StorageOSPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageOSPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageOSVolumeSource) DeepCopyInto(out *StorageOSVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSVolumeSource.\nfunc (in *StorageOSVolumeSource) DeepCopy() *StorageOSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageOSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Sysctl) DeepCopyInto(out *Sysctl) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sysctl.\nfunc (in *Sysctl) DeepCopy() *Sysctl {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Sysctl)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TCPSocketAction) DeepCopyInto(out *TCPSocketAction) {\n\t*out = *in\n\tout.Port = in.Port\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction.\nfunc (in *TCPSocketAction) DeepCopy() *TCPSocketAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TCPSocketAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Taint) DeepCopyInto(out *Taint) {\n\t*out = *in\n\tif in.TimeAdded != nil {\n\t\tin, out := &in.TimeAdded, &out.TimeAdded\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Taint.\nfunc (in *Taint) DeepCopy() *Taint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Taint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Toleration) DeepCopyInto(out *Toleration) {\n\t*out = *in\n\tif in.TolerationSeconds != nil {\n\t\tin, out := &in.TolerationSeconds, &out.TolerationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Toleration.\nfunc (in *Toleration) DeepCopy() *Toleration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Toleration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySelectorLabelRequirement) DeepCopyInto(out *TopologySelectorLabelRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorLabelRequirement.\nfunc (in *TopologySelectorLabelRequirement) DeepCopy() *TopologySelectorLabelRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySelectorLabelRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySelectorTerm) DeepCopyInto(out *TopologySelectorTerm) {\n\t*out = *in\n\tif in.MatchLabelExpressions != nil {\n\t\tin, out := &in.MatchLabelExpressions, &out.MatchLabelExpressions\n\t\t*out = make([]TopologySelectorLabelRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorTerm.\nfunc (in *TopologySelectorTerm) DeepCopy() *TopologySelectorTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySelectorTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySpreadConstraint) DeepCopyInto(out *TopologySpreadConstraint) {\n\t*out = *in\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MinDomains != nil {\n\t\tin, out := &in.MinDomains, &out.MinDomains\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.NodeAffinityPolicy != nil {\n\t\tin, out := &in.NodeAffinityPolicy, &out.NodeAffinityPolicy\n\t\t*out = new(NodeInclusionPolicy)\n\t\t**out = **in\n\t}\n\tif in.NodeTaintsPolicy != nil {\n\t\tin, out := &in.NodeTaintsPolicy, &out.NodeTaintsPolicy\n\t\t*out = new(NodeInclusionPolicy)\n\t\t**out = **in\n\t}\n\tif in.MatchLabelKeys != nil {\n\t\tin, out := &in.MatchLabelKeys, &out.MatchLabelKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpreadConstraint.\nfunc (in *TopologySpreadConstraint) DeepCopy() *TopologySpreadConstraint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySpreadConstraint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypedLocalObjectReference) DeepCopyInto(out *TypedLocalObjectReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedLocalObjectReference.\nfunc (in *TypedLocalObjectReference) DeepCopy() *TypedLocalObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypedLocalObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypedObjectReference) DeepCopyInto(out *TypedObjectReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedObjectReference.\nfunc (in *TypedObjectReference) DeepCopy() *TypedObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypedObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Volume) DeepCopyInto(out *Volume) {\n\t*out = *in\n\tin.VolumeSource.DeepCopyInto(&out.VolumeSource)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.\nfunc (in *Volume) DeepCopy() *Volume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Volume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeDevice) DeepCopyInto(out *VolumeDevice) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeDevice.\nfunc (in *VolumeDevice) DeepCopy() *VolumeDevice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeDevice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeMount) DeepCopyInto(out *VolumeMount) {\n\t*out = *in\n\tif in.MountPropagation != nil {\n\t\tin, out := &in.MountPropagation, &out.MountPropagation\n\t\t*out = new(MountPropagationMode)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMount.\nfunc (in *VolumeMount) DeepCopy() *VolumeMount {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeMount)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) {\n\t*out = *in\n\tif in.Required != nil {\n\t\tin, out := &in.Required, &out.Required\n\t\t*out = new(NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeAffinity.\nfunc (in *VolumeNodeAffinity) DeepCopy() *VolumeNodeAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) {\n\t*out = *in\n\tif in.Secret != nil {\n\t\tin, out := &in.Secret, &out.Secret\n\t\t*out = new(SecretProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DownwardAPI != nil {\n\t\tin, out := &in.DownwardAPI, &out.DownwardAPI\n\t\t*out = new(DownwardAPIProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ServiceAccountToken != nil {\n\t\tin, out := &in.ServiceAccountToken, &out.ServiceAccountToken\n\t\t*out = new(ServiceAccountTokenProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeProjection.\nfunc (in *VolumeProjection) DeepCopy() *VolumeProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeSource) DeepCopyInto(out *VolumeSource) {\n\t*out = *in\n\tif in.HostPath != nil {\n\t\tin, out := &in.HostPath, &out.HostPath\n\t\t*out = new(HostPathVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.EmptyDir != nil {\n\t\tin, out := &in.EmptyDir, &out.EmptyDir\n\t\t*out = new(EmptyDirVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.GCEPersistentDisk != nil {\n\t\tin, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk\n\t\t*out = new(GCEPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AWSElasticBlockStore != nil {\n\t\tin, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore\n\t\t*out = new(AWSElasticBlockStoreVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.GitRepo != nil {\n\t\tin, out := &in.GitRepo, &out.GitRepo\n\t\t*out = new(GitRepoVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Secret != nil {\n\t\tin, out := &in.Secret, &out.Secret\n\t\t*out = new(SecretVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NFS != nil {\n\t\tin, out := &in.NFS, &out.NFS\n\t\t*out = new(NFSVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ISCSI != nil {\n\t\tin, out := &in.ISCSI, &out.ISCSI\n\t\t*out = new(ISCSIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Glusterfs != nil {\n\t\tin, out := &in.Glusterfs, &out.Glusterfs\n\t\t*out = new(GlusterfsVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaim != nil {\n\t\tin, out := &in.PersistentVolumeClaim, &out.PersistentVolumeClaim\n\t\t*out = new(PersistentVolumeClaimVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.RBD != nil {\n\t\tin, out := &in.RBD, &out.RBD\n\t\t*out = new(RBDVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FlexVolume != nil {\n\t\tin, out := &in.FlexVolume, &out.FlexVolume\n\t\t*out = new(FlexVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Cinder != nil {\n\t\tin, out := &in.Cinder, &out.Cinder\n\t\t*out = new(CinderVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CephFS != nil {\n\t\tin, out := &in.CephFS, &out.CephFS\n\t\t*out = new(CephFSVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Flocker != nil {\n\t\tin, out := &in.Flocker, &out.Flocker\n\t\t*out = new(FlockerVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.DownwardAPI != nil {\n\t\tin, out := &in.DownwardAPI, &out.DownwardAPI\n\t\t*out = new(DownwardAPIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FC != nil {\n\t\tin, out := &in.FC, &out.FC\n\t\t*out = new(FCVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AzureFile != nil {\n\t\tin, out := &in.AzureFile, &out.AzureFile\n\t\t*out = new(AzureFileVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VsphereVolume != nil {\n\t\tin, out := &in.VsphereVolume, &out.VsphereVolume\n\t\t*out = new(VsphereVirtualDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Quobyte != nil {\n\t\tin, out := &in.Quobyte, &out.Quobyte\n\t\t*out = new(QuobyteVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AzureDisk != nil {\n\t\tin, out := &in.AzureDisk, &out.AzureDisk\n\t\t*out = new(AzureDiskVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PhotonPersistentDisk != nil {\n\t\tin, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk\n\t\t*out = new(PhotonPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Projected != nil {\n\t\tin, out := &in.Projected, &out.Projected\n\t\t*out = new(ProjectedVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PortworxVolume != nil {\n\t\tin, out := &in.PortworxVolume, &out.PortworxVolume\n\t\t*out = new(PortworxVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ScaleIO != nil {\n\t\tin, out := &in.ScaleIO, &out.ScaleIO\n\t\t*out = new(ScaleIOVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StorageOS != nil {\n\t\tin, out := &in.StorageOS, &out.StorageOS\n\t\t*out = new(StorageOSVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CSI != nil {\n\t\tin, out := &in.CSI, &out.CSI\n\t\t*out = new(CSIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Ephemeral != nil {\n\t\tin, out := &in.Ephemeral, &out.Ephemeral\n\t\t*out = new(EphemeralVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.\nfunc (in *VolumeSource) DeepCopy() *VolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VsphereVirtualDiskVolumeSource) DeepCopyInto(out *VsphereVirtualDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VsphereVirtualDiskVolumeSource.\nfunc (in *VsphereVirtualDiskVolumeSource) DeepCopy() *VsphereVirtualDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VsphereVirtualDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WeightedPodAffinityTerm) DeepCopyInto(out *WeightedPodAffinityTerm) {\n\t*out = *in\n\tin.PodAffinityTerm.DeepCopyInto(&out.PodAffinityTerm)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedPodAffinityTerm.\nfunc (in *WeightedPodAffinityTerm) DeepCopy() *WeightedPodAffinityTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WeightedPodAffinityTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WindowsSecurityContextOptions) DeepCopyInto(out *WindowsSecurityContextOptions) {\n\t*out = *in\n\tif in.GMSACredentialSpecName != nil {\n\t\tin, out := &in.GMSACredentialSpecName, &out.GMSACredentialSpecName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.GMSACredentialSpec != nil {\n\t\tin, out := &in.GMSACredentialSpec, &out.GMSACredentialSpec\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.RunAsUserName != nil {\n\t\tin, out := &in.RunAsUserName, &out.RunAsUserName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.HostProcess != nil {\n\t\tin, out := &in.HostProcess, &out.HostProcess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsSecurityContextOptions.\nfunc (in *WindowsSecurityContextOptions) DeepCopy() *WindowsSecurityContextOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WindowsSecurityContextOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +groupName=discovery.k8s.io\n\npackage v1 // import \"k8s.io/api/discovery/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Endpoint) Reset()      { *m = Endpoint{} }\nfunc (*Endpoint) ProtoMessage() {}\nfunc (*Endpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{0}\n}\nfunc (m *Endpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoint.Merge(m, src)\n}\nfunc (m *Endpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoint proto.InternalMessageInfo\n\nfunc (m *EndpointConditions) Reset()      { *m = EndpointConditions{} }\nfunc (*EndpointConditions) ProtoMessage() {}\nfunc (*EndpointConditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{1}\n}\nfunc (m *EndpointConditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointConditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointConditions.Merge(m, src)\n}\nfunc (m *EndpointConditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointConditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointConditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointConditions proto.InternalMessageInfo\n\nfunc (m *EndpointHints) Reset()      { *m = EndpointHints{} }\nfunc (*EndpointHints) ProtoMessage() {}\nfunc (*EndpointHints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{2}\n}\nfunc (m *EndpointHints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointHints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointHints.Merge(m, src)\n}\nfunc (m *EndpointHints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointHints) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointHints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointHints proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{3}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSlice) Reset()      { *m = EndpointSlice{} }\nfunc (*EndpointSlice) ProtoMessage() {}\nfunc (*EndpointSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{4}\n}\nfunc (m *EndpointSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSlice.Merge(m, src)\n}\nfunc (m *EndpointSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSlice proto.InternalMessageInfo\n\nfunc (m *EndpointSliceList) Reset()      { *m = EndpointSliceList{} }\nfunc (*EndpointSliceList) ProtoMessage() {}\nfunc (*EndpointSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{5}\n}\nfunc (m *EndpointSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSliceList.Merge(m, src)\n}\nfunc (m *EndpointSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo\n\nfunc (m *ForZone) Reset()      { *m = ForZone{} }\nfunc (*ForZone) ProtoMessage() {}\nfunc (*ForZone) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5d310fb1396ddf, []int{6}\n}\nfunc (m *ForZone) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ForZone) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ForZone.Merge(m, src)\n}\nfunc (m *ForZone) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ForZone) XXX_DiscardUnknown() {\n\txxx_messageInfo_ForZone.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ForZone proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Endpoint)(nil), \"k8s.io.api.discovery.v1.Endpoint\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.discovery.v1.Endpoint.DeprecatedTopologyEntry\")\n\tproto.RegisterType((*EndpointConditions)(nil), \"k8s.io.api.discovery.v1.EndpointConditions\")\n\tproto.RegisterType((*EndpointHints)(nil), \"k8s.io.api.discovery.v1.EndpointHints\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.discovery.v1.EndpointPort\")\n\tproto.RegisterType((*EndpointSlice)(nil), \"k8s.io.api.discovery.v1.EndpointSlice\")\n\tproto.RegisterType((*EndpointSliceList)(nil), \"k8s.io.api.discovery.v1.EndpointSliceList\")\n\tproto.RegisterType((*ForZone)(nil), \"k8s.io.api.discovery.v1.ForZone\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1/generated.proto\", fileDescriptor_3a5d310fb1396ddf)\n}\n\nvar fileDescriptor_3a5d310fb1396ddf = []byte{\n\t// 893 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4d, 0x6f, 0xe3, 0x44,\n\t0x18, 0x8e, 0x9b, 0x86, 0xda, 0x93, 0x56, 0xec, 0x8e, 0x90, 0x1a, 0x05, 0x14, 0x87, 0xa0, 0x45,\n\t0x91, 0x2a, 0x6c, 0x5a, 0x21, 0xb4, 0x20, 0x21, 0x51, 0xb3, 0x65, 0x97, 0xaf, 0x52, 0xcd, 0xf6,\n\t0xb4, 0x42, 0x5a, 0x5c, 0xfb, 0xad, 0x63, 0xd2, 0xcc, 0x58, 0x33, 0x93, 0x48, 0xe1, 0xc4, 0x85,\n\t0x33, 0xfc, 0x22, 0x8e, 0xa8, 0xc7, 0xbd, 0xb1, 0x27, 0x8b, 0x9a, 0xbf, 0xc0, 0x69, 0x4f, 0x68,\n\t0xc6, 0x9f, 0x25, 0x8d, 0xb2, 0x37, 0xcf, 0x33, 0xcf, 0xf3, 0x7e, 0x3c, 0x33, 0xf3, 0x1a, 0x7d,\n\t0x3e, 0x7d, 0x28, 0x9c, 0x98, 0xb9, 0xd3, 0xf9, 0x05, 0x70, 0x0a, 0x12, 0x84, 0xbb, 0x00, 0x1a,\n\t0x32, 0xee, 0x16, 0x1b, 0x7e, 0x12, 0xbb, 0x61, 0x2c, 0x02, 0xb6, 0x00, 0xbe, 0x74, 0x17, 0x87,\n\t0x6e, 0x04, 0x14, 0xb8, 0x2f, 0x21, 0x74, 0x12, 0xce, 0x24, 0xc3, 0xfb, 0x39, 0xd1, 0xf1, 0x93,\n\t0xd8, 0xa9, 0x88, 0xce, 0xe2, 0xb0, 0xff, 0x41, 0x14, 0xcb, 0xc9, 0xfc, 0xc2, 0x09, 0xd8, 0xcc,\n\t0x8d, 0x58, 0xc4, 0x5c, 0xcd, 0xbf, 0x98, 0x5f, 0xea, 0x95, 0x5e, 0xe8, 0xaf, 0x3c, 0x4e, 0x7f,\n\t0xd4, 0x48, 0x18, 0x30, 0x0e, 0x77, 0xe4, 0xea, 0x7f, 0x54, 0x73, 0x66, 0x7e, 0x30, 0x89, 0xa9,\n\t0xaa, 0x29, 0x99, 0x46, 0x0a, 0x10, 0xee, 0x0c, 0xa4, 0x7f, 0x97, 0xca, 0x5d, 0xa7, 0xe2, 0x73,\n\t0x2a, 0xe3, 0x19, 0xac, 0x08, 0x3e, 0xde, 0x24, 0x10, 0xc1, 0x04, 0x66, 0xfe, 0xff, 0x75, 0xa3,\n\t0x7f, 0xb7, 0x91, 0x79, 0x42, 0xc3, 0x84, 0xc5, 0x54, 0xe2, 0x03, 0x64, 0xf9, 0x61, 0xc8, 0x41,\n\t0x08, 0x10, 0x3d, 0x63, 0xd8, 0x1e, 0x5b, 0xde, 0x5e, 0x96, 0xda, 0xd6, 0x71, 0x09, 0x92, 0x7a,\n\t0x1f, 0x3f, 0x47, 0x28, 0x60, 0x34, 0x8c, 0x65, 0xcc, 0xa8, 0xe8, 0x6d, 0x0d, 0x8d, 0x71, 0xf7,\n\t0xe8, 0xc0, 0x59, 0xe3, 0xac, 0x53, 0xe6, 0xf8, 0xa2, 0x92, 0x78, 0xf8, 0x3a, 0xb5, 0x5b, 0x59,\n\t0x6a, 0xa3, 0x1a, 0x23, 0x8d, 0x90, 0x78, 0x8c, 0xcc, 0x09, 0x13, 0x92, 0xfa, 0x33, 0xe8, 0xb5,\n\t0x87, 0xc6, 0xd8, 0xf2, 0x76, 0xb3, 0xd4, 0x36, 0x9f, 0x14, 0x18, 0xa9, 0x76, 0xf1, 0x19, 0xb2,\n\t0xa4, 0xcf, 0x23, 0x90, 0x04, 0x2e, 0x7b, 0xdb, 0xba, 0x92, 0xf7, 0x9a, 0x95, 0xa8, 0xb3, 0x51,\n\t0x45, 0x7c, 0x7f, 0xf1, 0x13, 0x04, 0x8a, 0x04, 0x1c, 0x68, 0x00, 0x79, 0x73, 0xe7, 0xa5, 0x92,\n\t0xd4, 0x41, 0xf0, 0xaf, 0x06, 0xc2, 0x21, 0x24, 0x1c, 0x02, 0xe5, 0xd5, 0x39, 0x4b, 0xd8, 0x15,\n\t0x8b, 0x96, 0xbd, 0xce, 0xb0, 0x3d, 0xee, 0x1e, 0x7d, 0xb2, 0xb1, 0x4b, 0xe7, 0xd1, 0x8a, 0xf6,\n\t0x84, 0x4a, 0xbe, 0xf4, 0xfa, 0x45, 0xcf, 0x78, 0x95, 0x40, 0xee, 0x48, 0xa8, 0x3c, 0xa0, 0x2c,\n\t0x84, 0x53, 0xe5, 0xc1, 0x1b, 0xb5, 0x07, 0xa7, 0x05, 0x46, 0xaa, 0x5d, 0xfc, 0x0e, 0xda, 0xfe,\n\t0x99, 0x51, 0xe8, 0xed, 0x68, 0x96, 0x99, 0xa5, 0xf6, 0xf6, 0x33, 0x46, 0x81, 0x68, 0x14, 0x3f,\n\t0x46, 0x9d, 0x49, 0x4c, 0xa5, 0xe8, 0x99, 0xda, 0x9d, 0xf7, 0x37, 0x76, 0xf0, 0x44, 0xb1, 0x3d,\n\t0x2b, 0x4b, 0xed, 0x8e, 0xfe, 0x24, 0xb9, 0xbe, 0x7f, 0x82, 0xf6, 0xd7, 0xf4, 0x86, 0xef, 0xa1,\n\t0xf6, 0x14, 0x96, 0x3d, 0x43, 0x15, 0x40, 0xd4, 0x27, 0x7e, 0x0b, 0x75, 0x16, 0xfe, 0xd5, 0x1c,\n\t0xf4, 0xed, 0xb0, 0x48, 0xbe, 0xf8, 0x74, 0xeb, 0xa1, 0x31, 0xfa, 0xcd, 0x40, 0x78, 0xf5, 0x4a,\n\t0x60, 0x1b, 0x75, 0x38, 0xf8, 0x61, 0x1e, 0xc4, 0xcc, 0xd3, 0x13, 0x05, 0x90, 0x1c, 0xc7, 0x0f,\n\t0xd0, 0x8e, 0x00, 0xbe, 0x88, 0x69, 0xa4, 0x63, 0x9a, 0x5e, 0x37, 0x4b, 0xed, 0x9d, 0xa7, 0x39,\n\t0x44, 0xca, 0x3d, 0x7c, 0x88, 0xba, 0x12, 0xf8, 0x2c, 0xa6, 0xbe, 0x54, 0xd4, 0xb6, 0xa6, 0xbe,\n\t0x99, 0xa5, 0x76, 0xf7, 0xbc, 0x86, 0x49, 0x93, 0x33, 0x7a, 0x8e, 0xf6, 0x6e, 0xf5, 0x8e, 0x4f,\n\t0x91, 0x79, 0xc9, 0xb8, 0xf2, 0x30, 0x7f, 0x0b, 0xdd, 0xa3, 0xe1, 0x5a, 0xd7, 0xbe, 0xcc, 0x89,\n\t0xde, 0xbd, 0xe2, 0x78, 0xcd, 0x02, 0x10, 0xa4, 0x8a, 0x31, 0xfa, 0xd3, 0x40, 0xbb, 0x65, 0x86,\n\t0x33, 0xc6, 0xa5, 0x3a, 0x31, 0x7d, 0xb7, 0x8d, 0xfa, 0xc4, 0xf4, 0x99, 0x6a, 0x14, 0x3f, 0x46,\n\t0xa6, 0x7e, 0xa1, 0x01, 0xbb, 0xca, 0xed, 0xf3, 0x0e, 0x54, 0xe0, 0xb3, 0x02, 0x7b, 0x95, 0xda,\n\t0x6f, 0xaf, 0x4e, 0x1f, 0xa7, 0xdc, 0x26, 0x95, 0x58, 0xa5, 0x49, 0x18, 0x97, 0xda, 0x84, 0x4e,\n\t0x9e, 0x46, 0xa5, 0x27, 0x1a, 0x55, 0x4e, 0xf9, 0x49, 0x52, 0xca, 0xf4, 0xe3, 0xb1, 0x72, 0xa7,\n\t0x8e, 0x6b, 0x98, 0x34, 0x39, 0xa3, 0xbf, 0xb6, 0x6a, 0xab, 0x9e, 0x5e, 0xc5, 0x01, 0xe0, 0x1f,\n\t0x91, 0xa9, 0x06, 0x59, 0xe8, 0x4b, 0x5f, 0x77, 0xd3, 0x3d, 0xfa, 0xb0, 0x61, 0x55, 0x35, 0x8f,\n\t0x9c, 0x64, 0x1a, 0x29, 0x40, 0x38, 0x8a, 0x5d, 0x3f, 0xc8, 0xef, 0x40, 0xfa, 0xf5, 0x34, 0xa8,\n\t0x31, 0x52, 0x45, 0xc5, 0x8f, 0x50, 0xb7, 0x98, 0x3c, 0xe7, 0xcb, 0x04, 0x8a, 0x32, 0x47, 0x85,\n\t0xa4, 0x7b, 0x5c, 0x6f, 0xbd, 0xba, 0xbd, 0x24, 0x4d, 0x19, 0x26, 0xc8, 0x82, 0xa2, 0x70, 0x35,\n\t0xb1, 0xd4, 0x99, 0xbe, 0xbb, 0xf1, 0x25, 0x78, 0xf7, 0x8b, 0x34, 0x56, 0x89, 0x08, 0x52, 0x87,\n\t0xc1, 0x5f, 0xa3, 0x8e, 0x32, 0x52, 0xf4, 0xda, 0x3a, 0xde, 0x83, 0x8d, 0xf1, 0x94, 0xf9, 0xde,\n\t0x5e, 0x11, 0xb3, 0xa3, 0x56, 0x82, 0xe4, 0x21, 0x46, 0x7f, 0x18, 0xe8, 0xfe, 0x2d, 0x67, 0xbf,\n\t0x8d, 0x85, 0xc4, 0x3f, 0xac, 0xb8, 0xeb, 0xbc, 0x9e, 0xbb, 0x4a, 0xad, 0xbd, 0xad, 0xae, 0x65,\n\t0x89, 0x34, 0x9c, 0xfd, 0x06, 0x75, 0x62, 0x09, 0xb3, 0xd2, 0x8f, 0xcd, 0x93, 0x41, 0x17, 0x56,\n\t0x37, 0xf0, 0x95, 0x12, 0x93, 0x3c, 0xc6, 0xe8, 0x00, 0xed, 0x14, 0x37, 0x1f, 0x0f, 0x6f, 0xdd,\n\t0xee, 0xdd, 0x82, 0xde, 0xb8, 0xe1, 0xde, 0x67, 0xd7, 0x37, 0x83, 0xd6, 0x8b, 0x9b, 0x41, 0xeb,\n\t0xe5, 0xcd, 0xa0, 0xf5, 0x4b, 0x36, 0x30, 0xae, 0xb3, 0x81, 0xf1, 0x22, 0x1b, 0x18, 0x2f, 0xb3,\n\t0x81, 0xf1, 0x77, 0x36, 0x30, 0x7e, 0xff, 0x67, 0xd0, 0x7a, 0xb6, 0xbf, 0xe6, 0xa7, 0xfe, 0x5f,\n\t0x00, 0x00, 0x00, 0xff, 0xff, 0x2e, 0xd0, 0xcc, 0x2e, 0x07, 0x08, 0x00, 0x00,\n}\n\nfunc (m *Endpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Hints != nil {\n\t\t{\n\t\t\tsize, err := m.Hints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.Zone != nil {\n\t\ti -= len(*m.Zone)\n\t\tcopy(dAtA[i:], *m.Zone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Zone)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.DeprecatedTopology) > 0 {\n\t\tkeysForDeprecatedTopology := make([]string, 0, len(m.DeprecatedTopology))\n\t\tfor k := range m.DeprecatedTopology {\n\t\t\tkeysForDeprecatedTopology = append(keysForDeprecatedTopology, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology)\n\t\tfor iNdEx := len(keysForDeprecatedTopology) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DeprecatedTopology[string(keysForDeprecatedTopology[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDeprecatedTopology[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDeprecatedTopology[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDeprecatedTopology[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Hostname != nil {\n\t\ti -= len(*m.Hostname)\n\t\tcopy(dAtA[i:], *m.Hostname)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Addresses[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Addresses[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointConditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminating != nil {\n\t\ti--\n\t\tif *m.Terminating {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Serving != nil {\n\t\ti--\n\t\tif *m.Serving {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Ready != nil {\n\t\ti--\n\t\tif *m.Ready {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointHints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Name != nil {\n\t\ti -= len(*m.Name)\n\t\tcopy(dAtA[i:], *m.Name)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.AddressType)\n\tcopy(dAtA[i:], m.AddressType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Endpoints) > 0 {\n\t\tfor iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ForZone) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ForZone) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Endpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, s := range m.Addresses {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Conditions.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Hostname != nil {\n\t\tl = len(*m.Hostname)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.DeprecatedTopology) > 0 {\n\t\tfor k, v := range m.DeprecatedTopology {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Zone != nil {\n\t\tl = len(*m.Zone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Hints != nil {\n\t\tl = m.Hints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointConditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Ready != nil {\n\t\tn += 2\n\t}\n\tif m.Serving != nil {\n\t\tn += 2\n\t}\n\tif m.Terminating != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *EndpointHints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor _, e := range m.ForZones {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Name != nil {\n\t\tl = len(*m.Name)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Endpoints) > 0 {\n\t\tfor _, e := range m.Endpoints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AddressType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EndpointSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ForZone) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Endpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForDeprecatedTopology := make([]string, 0, len(this.DeprecatedTopology))\n\tfor k := range this.DeprecatedTopology {\n\t\tkeysForDeprecatedTopology = append(keysForDeprecatedTopology, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology)\n\tmapStringForDeprecatedTopology := \"map[string]string{\"\n\tfor _, k := range keysForDeprecatedTopology {\n\t\tmapStringForDeprecatedTopology += fmt.Sprintf(\"%v: %v,\", k, this.DeprecatedTopology[k])\n\t}\n\tmapStringForDeprecatedTopology += \"}\"\n\ts := strings.Join([]string{`&Endpoint{`,\n\t\t`Addresses:` + fmt.Sprintf(\"%v\", this.Addresses) + `,`,\n\t\t`Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), \"EndpointConditions\", \"EndpointConditions\", 1), `&`, ``, 1) + `,`,\n\t\t`Hostname:` + valueToStringGenerated(this.Hostname) + `,`,\n\t\t`TargetRef:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetRef), \"ObjectReference\", \"v1.ObjectReference\", 1) + `,`,\n\t\t`DeprecatedTopology:` + mapStringForDeprecatedTopology + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`Zone:` + valueToStringGenerated(this.Zone) + `,`,\n\t\t`Hints:` + strings.Replace(this.Hints.String(), \"EndpointHints\", \"EndpointHints\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointConditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointConditions{`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`Serving:` + valueToStringGenerated(this.Serving) + `,`,\n\t\t`Terminating:` + valueToStringGenerated(this.Terminating) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointHints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForForZones := \"[]ForZone{\"\n\tfor _, f := range this.ForZones {\n\t\trepeatedStringForForZones += strings.Replace(strings.Replace(f.String(), \"ForZone\", \"ForZone\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForForZones += \"}\"\n\ts := strings.Join([]string{`&EndpointHints{`,\n\t\t`ForZones:` + repeatedStringForForZones + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + valueToStringGenerated(this.Name) + `,`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForEndpoints := \"[]Endpoint{\"\n\tfor _, f := range this.Endpoints {\n\t\trepeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), \"Endpoint\", \"Endpoint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEndpoints += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Endpoints:` + repeatedStringForEndpoints + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`AddressType:` + fmt.Sprintf(\"%v\", this.AddressType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]EndpointSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"EndpointSlice\", \"EndpointSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ForZone) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ForZone{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Endpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Hostname = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &v1.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeprecatedTopology == nil {\n\t\t\t\tm.DeprecatedTopology = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DeprecatedTopology[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Zone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Zone = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hints == nil {\n\t\t\t\tm.Hints = &EndpointHints{}\n\t\t\t}\n\t\t\tif err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointConditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Ready = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Serving\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Serving = &b\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminating\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Terminating = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointHints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ForZones\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ForZones = append(m.ForZones, ForZone{})\n\t\t\tif err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Name = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Endpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Endpoints = append(m.Endpoints, Endpoint{})\n\t\t\tif err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddressType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddressType = AddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, EndpointSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ForZone) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.discovery.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/discovery/v1\";\n\n// Endpoint represents a single logical \"backend\" implementing a service.\nmessage Endpoint {\n  // addresses of this endpoint. The contents of this field are interpreted\n  // according to the corresponding EndpointSlice addressType field. Consumers\n  // must handle different types of addresses in the context of their own\n  // capabilities. This must contain at least one address but no more than\n  // 100. These are all assumed to be fungible and clients may choose to only\n  // use the first element. Refer to: https://issue.k8s.io/106267\n  // +listType=set\n  repeated string addresses = 1;\n\n  // conditions contains information about the current status of the endpoint.\n  optional EndpointConditions conditions = 2;\n\n  // hostname of this endpoint. This field may be used by consumers of\n  // endpoints to distinguish endpoints from each other (e.g. in DNS names).\n  // Multiple endpoints which use the same hostname should be considered\n  // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n  // Label (RFC 1123) validation.\n  // +optional\n  optional string hostname = 3;\n\n  // targetRef is a reference to a Kubernetes object that represents this\n  // endpoint.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference targetRef = 4;\n\n  // deprecatedTopology contains topology information part of the v1beta1\n  // API. This field is deprecated, and will be removed when the v1beta1\n  // API is removed (no sooner than kubernetes v1.24).  While this field can\n  // hold values, it is not writable through the v1 API, and any attempts to\n  // write to it will be silently ignored. Topology information can be found\n  // in the zone and nodeName fields instead.\n  // +optional\n  map<string, string> deprecatedTopology = 5;\n\n  // nodeName represents the name of the Node hosting this endpoint. This can\n  // be used to determine endpoints local to a Node.\n  // +optional\n  optional string nodeName = 6;\n\n  // zone is the name of the Zone this endpoint exists in.\n  // +optional\n  optional string zone = 7;\n\n  // hints contains information associated with how an endpoint should be\n  // consumed.\n  // +optional\n  optional EndpointHints hints = 8;\n}\n\n// EndpointConditions represents the current condition of an endpoint.\nmessage EndpointConditions {\n  // ready indicates that this endpoint is prepared to receive traffic,\n  // according to whatever system is managing the endpoint. A nil value\n  // indicates an unknown state. In most cases consumers should interpret this\n  // unknown state as ready. For compatibility reasons, ready should never be\n  // \"true\" for terminating endpoints, except when the normal readiness\n  // behavior is being explicitly overridden, for example when the associated\n  // Service has set the publishNotReadyAddresses flag.\n  // +optional\n  optional bool ready = 1;\n\n  // serving is identical to ready except that it is set regardless of the\n  // terminating state of endpoints. This condition should be set to true for\n  // a ready endpoint that is terminating. If nil, consumers should defer to\n  // the ready condition.\n  // +optional\n  optional bool serving = 2;\n\n  // terminating indicates that this endpoint is terminating. A nil value\n  // indicates an unknown state. Consumers should interpret this unknown state\n  // to mean that the endpoint is not terminating.\n  // +optional\n  optional bool terminating = 3;\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\nmessage EndpointHints {\n  // forZones indicates the zone(s) this endpoint should be consumed by to\n  // enable topology aware routing.\n  // +listType=atomic\n  repeated ForZone forZones = 1;\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\n// +structType=atomic\nmessage EndpointPort {\n  // name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n  // If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name.\n  // Name must either be an empty string or pass DNS_LABEL validation:\n  // * must be no more than 63 characters long.\n  // * must consist of lower case alphanumeric characters or '-'.\n  // * must start and end with an alphanumeric character.\n  // Default is empty string.\n  optional string name = 1;\n\n  // protocol represents the IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  optional string protocol = 2;\n\n  // port represents the port number of the endpoint.\n  // If this is not specified, ports are not restricted and must be\n  // interpreted in the context of the specific consumer.\n  optional int32 port = 3;\n\n  // The application protocol for this port.\n  // This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n  // This field follows standard Kubernetes label syntax.\n  // Valid values are either:\n  //\n  // * Un-prefixed protocol names - reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  //\n  // * Kubernetes-defined prefixed names:\n  //   * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\n  //\n  // * Other protocols should use implementation-defined prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\nmessage EndpointSlice {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // addressType specifies the type of address carried by this EndpointSlice.\n  // All addresses in this slice must be the same type. This field is\n  // immutable after creation. The following address types are currently\n  // supported:\n  // * IPv4: Represents an IPv4 Address.\n  // * IPv6: Represents an IPv6 Address.\n  // * FQDN: Represents a Fully Qualified Domain Name.\n  optional string addressType = 4;\n\n  // endpoints is a list of unique endpoints in this slice. Each slice may\n  // include a maximum of 1000 endpoints.\n  // +listType=atomic\n  repeated Endpoint endpoints = 2;\n\n  // ports specifies the list of network ports exposed by each endpoint in\n  // this slice. Each port must have a unique name. When ports is empty, it\n  // indicates that there are no defined ports. When a port is defined with a\n  // nil port value, it indicates \"all ports\". Each slice may include a\n  // maximum of 100 ports.\n  // +optional\n  // +listType=atomic\n  repeated EndpointPort ports = 3;\n}\n\n// EndpointSliceList represents a list of endpoint slices\nmessage EndpointSliceList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of endpoint slices\n  repeated EndpointSlice items = 2;\n}\n\n// ForZone provides information about which zones should consume this endpoint.\nmessage ForZone {\n  // name represents the name of the zone.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package\nconst GroupName = \"discovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&EndpointSlice{},\n\t\t&EndpointSliceList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\ntype EndpointSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// addressType specifies the type of address carried by this EndpointSlice.\n\t// All addresses in this slice must be the same type. This field is\n\t// immutable after creation. The following address types are currently\n\t// supported:\n\t// * IPv4: Represents an IPv4 Address.\n\t// * IPv6: Represents an IPv6 Address.\n\t// * FQDN: Represents a Fully Qualified Domain Name.\n\tAddressType AddressType `json:\"addressType\" protobuf:\"bytes,4,rep,name=addressType\"`\n\n\t// endpoints is a list of unique endpoints in this slice. Each slice may\n\t// include a maximum of 1000 endpoints.\n\t// +listType=atomic\n\tEndpoints []Endpoint `json:\"endpoints\" protobuf:\"bytes,2,rep,name=endpoints\"`\n\n\t// ports specifies the list of network ports exposed by each endpoint in\n\t// this slice. Each port must have a unique name. When ports is empty, it\n\t// indicates that there are no defined ports. When a port is defined with a\n\t// nil port value, it indicates \"all ports\". Each slice may include a\n\t// maximum of 100 ports.\n\t// +optional\n\t// +listType=atomic\n\tPorts []EndpointPort `json:\"ports\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// AddressType represents the type of address referred to by an endpoint.\n// +enum\ntype AddressType string\n\nconst (\n\t// AddressTypeIPv4 represents an IPv4 Address.\n\tAddressTypeIPv4 = AddressType(v1.IPv4Protocol)\n\n\t// AddressTypeIPv6 represents an IPv6 Address.\n\tAddressTypeIPv6 = AddressType(v1.IPv6Protocol)\n\n\t// AddressTypeFQDN represents a FQDN.\n\tAddressTypeFQDN = AddressType(\"FQDN\")\n)\n\n// Endpoint represents a single logical \"backend\" implementing a service.\ntype Endpoint struct {\n\t// addresses of this endpoint. The contents of this field are interpreted\n\t// according to the corresponding EndpointSlice addressType field. Consumers\n\t// must handle different types of addresses in the context of their own\n\t// capabilities. This must contain at least one address but no more than\n\t// 100. These are all assumed to be fungible and clients may choose to only\n\t// use the first element. Refer to: https://issue.k8s.io/106267\n\t// +listType=set\n\tAddresses []string `json:\"addresses\" protobuf:\"bytes,1,rep,name=addresses\"`\n\n\t// conditions contains information about the current status of the endpoint.\n\tConditions EndpointConditions `json:\"conditions,omitempty\" protobuf:\"bytes,2,opt,name=conditions\"`\n\n\t// hostname of this endpoint. This field may be used by consumers of\n\t// endpoints to distinguish endpoints from each other (e.g. in DNS names).\n\t// Multiple endpoints which use the same hostname should be considered\n\t// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n\t// Label (RFC 1123) validation.\n\t// +optional\n\tHostname *string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\n\t// targetRef is a reference to a Kubernetes object that represents this\n\t// endpoint.\n\t// +optional\n\tTargetRef *v1.ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,4,opt,name=targetRef\"`\n\n\t// deprecatedTopology contains topology information part of the v1beta1\n\t// API. This field is deprecated, and will be removed when the v1beta1\n\t// API is removed (no sooner than kubernetes v1.24).  While this field can\n\t// hold values, it is not writable through the v1 API, and any attempts to\n\t// write to it will be silently ignored. Topology information can be found\n\t// in the zone and nodeName fields instead.\n\t// +optional\n\tDeprecatedTopology map[string]string `json:\"deprecatedTopology,omitempty\" protobuf:\"bytes,5,opt,name=deprecatedTopology\"`\n\n\t// nodeName represents the name of the Node hosting this endpoint. This can\n\t// be used to determine endpoints local to a Node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,6,opt,name=nodeName\"`\n\n\t// zone is the name of the Zone this endpoint exists in.\n\t// +optional\n\tZone *string `json:\"zone,omitempty\" protobuf:\"bytes,7,opt,name=zone\"`\n\n\t// hints contains information associated with how an endpoint should be\n\t// consumed.\n\t// +optional\n\tHints *EndpointHints `json:\"hints,omitempty\" protobuf:\"bytes,8,opt,name=hints\"`\n}\n\n// EndpointConditions represents the current condition of an endpoint.\ntype EndpointConditions struct {\n\t// ready indicates that this endpoint is prepared to receive traffic,\n\t// according to whatever system is managing the endpoint. A nil value\n\t// indicates an unknown state. In most cases consumers should interpret this\n\t// unknown state as ready. For compatibility reasons, ready should never be\n\t// \"true\" for terminating endpoints, except when the normal readiness\n\t// behavior is being explicitly overridden, for example when the associated\n\t// Service has set the publishNotReadyAddresses flag.\n\t// +optional\n\tReady *bool `json:\"ready,omitempty\" protobuf:\"bytes,1,name=ready\"`\n\n\t// serving is identical to ready except that it is set regardless of the\n\t// terminating state of endpoints. This condition should be set to true for\n\t// a ready endpoint that is terminating. If nil, consumers should defer to\n\t// the ready condition.\n\t// +optional\n\tServing *bool `json:\"serving,omitempty\" protobuf:\"bytes,2,name=serving\"`\n\n\t// terminating indicates that this endpoint is terminating. A nil value\n\t// indicates an unknown state. Consumers should interpret this unknown state\n\t// to mean that the endpoint is not terminating.\n\t// +optional\n\tTerminating *bool `json:\"terminating,omitempty\" protobuf:\"bytes,3,name=terminating\"`\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\ntype EndpointHints struct {\n\t// forZones indicates the zone(s) this endpoint should be consumed by to\n\t// enable topology aware routing.\n\t// +listType=atomic\n\tForZones []ForZone `json:\"forZones,omitempty\" protobuf:\"bytes,1,name=forZones\"`\n}\n\n// ForZone provides information about which zones should consume this endpoint.\ntype ForZone struct {\n\t// name represents the name of the zone.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\n// +structType=atomic\ntype EndpointPort struct {\n\t// name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n\t// If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name.\n\t// Name must either be an empty string or pass DNS_LABEL validation:\n\t// * must be no more than 63 characters long.\n\t// * must consist of lower case alphanumeric characters or '-'.\n\t// * must start and end with an alphanumeric character.\n\t// Default is empty string.\n\tName *string `json:\"name,omitempty\" protobuf:\"bytes,1,name=name\"`\n\n\t// protocol represents the IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,name=protocol\"`\n\n\t// port represents the port number of the endpoint.\n\t// If this is not specified, ports are not restricted and must be\n\t// interpreted in the context of the specific consumer.\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"bytes,3,opt,name=port\"`\n\n\t// The application protocol for this port.\n\t// This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n\t// This field follows standard Kubernetes label syntax.\n\t// Valid values are either:\n\t//\n\t// * Un-prefixed protocol names - reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t//\n\t// * Kubernetes-defined prefixed names:\n\t//   * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\n\t//\n\t// * Other protocols should use implementation-defined prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// EndpointSliceList represents a list of endpoint slices\ntype EndpointSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of endpoint slices\n\tItems []EndpointSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Endpoint = map[string]string{\n\t\"\":                   \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n\t\"addresses\":          \"addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267\",\n\t\"conditions\":         \"conditions contains information about the current status of the endpoint.\",\n\t\"hostname\":           \"hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.\",\n\t\"targetRef\":          \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n\t\"deprecatedTopology\": \"deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24).  While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.\",\n\t\"nodeName\":           \"nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.\",\n\t\"zone\":               \"zone is the name of the Zone this endpoint exists in.\",\n\t\"hints\":              \"hints contains information associated with how an endpoint should be consumed.\",\n}\n\nfunc (Endpoint) SwaggerDoc() map[string]string {\n\treturn map_Endpoint\n}\n\nvar map_EndpointConditions = map[string]string{\n\t\"\":            \"EndpointConditions represents the current condition of an endpoint.\",\n\t\"ready\":       \"ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \\\"true\\\" for terminating endpoints, except when the normal readiness behavior is being explicitly overridden, for example when the associated Service has set the publishNotReadyAddresses flag.\",\n\t\"serving\":     \"serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition.\",\n\t\"terminating\": \"terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating.\",\n}\n\nfunc (EndpointConditions) SwaggerDoc() map[string]string {\n\treturn map_EndpointConditions\n}\n\nvar map_EndpointHints = map[string]string{\n\t\"\":         \"EndpointHints provides hints describing how an endpoint should be consumed.\",\n\t\"forZones\": \"forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing.\",\n}\n\nfunc (EndpointHints) SwaggerDoc() map[string]string {\n\treturn map_EndpointHints\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort represents a Port used by an EndpointSlice\",\n\t\"name\":        \"name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.\",\n\t\"protocol\":    \"protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"port\":        \"port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.\",\n\t\"appProtocol\": \"The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n* Kubernetes-defined prefixed names:\\n  * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540\\n\\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSlice = map[string]string{\n\t\"\":            \"EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.\",\n\t\"metadata\":    \"Standard object's metadata.\",\n\t\"addressType\": \"addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.\",\n\t\"endpoints\":   \"endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.\",\n\t\"ports\":       \"ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \\\"all ports\\\". Each slice may include a maximum of 100 ports.\",\n}\n\nfunc (EndpointSlice) SwaggerDoc() map[string]string {\n\treturn map_EndpointSlice\n}\n\nvar map_EndpointSliceList = map[string]string{\n\t\"\":         \"EndpointSliceList represents a list of endpoint slices\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of endpoint slices\",\n}\n\nfunc (EndpointSliceList) SwaggerDoc() map[string]string {\n\treturn map_EndpointSliceList\n}\n\nvar map_ForZone = map[string]string{\n\t\"\":     \"ForZone provides information about which zones should consume this endpoint.\",\n\t\"name\": \"name represents the name of the zone.\",\n}\n\nfunc (ForZone) SwaggerDoc() map[string]string {\n\treturn map_ForZone\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// LabelServiceName is used to indicate the name of a Kubernetes service.\n\tLabelServiceName = \"kubernetes.io/service-name\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an EndpointSlice. This label aims to enable different EndpointSlice\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// EndpointSlices.\n\tLabelManagedBy = \"endpointslice.kubernetes.io/managed-by\"\n\t// LabelSkipMirror can be set to true on an Endpoints resource to indicate\n\t// that the EndpointSliceMirroring controller should not mirror this\n\t// resource with EndpointSlices.\n\tLabelSkipMirror = \"endpointslice.kubernetes.io/skip-mirror\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoint) DeepCopyInto(out *Endpoint) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Conditions.DeepCopyInto(&out.Conditions)\n\tif in.Hostname != nil {\n\t\tin, out := &in.Hostname, &out.Hostname\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(corev1.ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.DeprecatedTopology != nil {\n\t\tin, out := &in.DeprecatedTopology, &out.DeprecatedTopology\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Zone != nil {\n\t\tin, out := &in.Zone, &out.Zone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Hints != nil {\n\t\tin, out := &in.Hints, &out.Hints\n\t\t*out = new(EndpointHints)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.\nfunc (in *Endpoint) DeepCopy() *Endpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) {\n\t*out = *in\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Serving != nil {\n\t\tin, out := &in.Serving, &out.Serving\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Terminating != nil {\n\t\tin, out := &in.Terminating, &out.Terminating\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions.\nfunc (in *EndpointConditions) DeepCopy() *EndpointConditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointConditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointHints) DeepCopyInto(out *EndpointHints) {\n\t*out = *in\n\tif in.ForZones != nil {\n\t\tin, out := &in.ForZones, &out.ForZones\n\t\t*out = make([]ForZone, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints.\nfunc (in *EndpointHints) DeepCopy() *EndpointHints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointHints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.Name != nil {\n\t\tin, out := &in.Name, &out.Name\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Endpoints != nil {\n\t\tin, out := &in.Endpoints, &out.Endpoints\n\t\t*out = make([]Endpoint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice.\nfunc (in *EndpointSlice) DeepCopy() *EndpointSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]EndpointSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList.\nfunc (in *EndpointSliceList) DeepCopy() *EndpointSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ForZone) DeepCopyInto(out *ForZone) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone.\nfunc (in *ForZone) DeepCopy() *ForZone {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ForZone)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=discovery.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/discovery/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Endpoint) Reset()      { *m = Endpoint{} }\nfunc (*Endpoint) ProtoMessage() {}\nfunc (*Endpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{0}\n}\nfunc (m *Endpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoint.Merge(m, src)\n}\nfunc (m *Endpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoint proto.InternalMessageInfo\n\nfunc (m *EndpointConditions) Reset()      { *m = EndpointConditions{} }\nfunc (*EndpointConditions) ProtoMessage() {}\nfunc (*EndpointConditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{1}\n}\nfunc (m *EndpointConditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointConditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointConditions.Merge(m, src)\n}\nfunc (m *EndpointConditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointConditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointConditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointConditions proto.InternalMessageInfo\n\nfunc (m *EndpointHints) Reset()      { *m = EndpointHints{} }\nfunc (*EndpointHints) ProtoMessage() {}\nfunc (*EndpointHints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{2}\n}\nfunc (m *EndpointHints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointHints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointHints.Merge(m, src)\n}\nfunc (m *EndpointHints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointHints) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointHints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointHints proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{3}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSlice) Reset()      { *m = EndpointSlice{} }\nfunc (*EndpointSlice) ProtoMessage() {}\nfunc (*EndpointSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{4}\n}\nfunc (m *EndpointSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSlice.Merge(m, src)\n}\nfunc (m *EndpointSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSlice proto.InternalMessageInfo\n\nfunc (m *EndpointSliceList) Reset()      { *m = EndpointSliceList{} }\nfunc (*EndpointSliceList) ProtoMessage() {}\nfunc (*EndpointSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{5}\n}\nfunc (m *EndpointSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSliceList.Merge(m, src)\n}\nfunc (m *EndpointSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo\n\nfunc (m *ForZone) Reset()      { *m = ForZone{} }\nfunc (*ForZone) ProtoMessage() {}\nfunc (*ForZone) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ece80bbc872d519b, []int{6}\n}\nfunc (m *ForZone) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ForZone) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ForZone.Merge(m, src)\n}\nfunc (m *ForZone) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ForZone) XXX_DiscardUnknown() {\n\txxx_messageInfo_ForZone.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ForZone proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Endpoint)(nil), \"k8s.io.api.discovery.v1beta1.Endpoint\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.discovery.v1beta1.Endpoint.TopologyEntry\")\n\tproto.RegisterType((*EndpointConditions)(nil), \"k8s.io.api.discovery.v1beta1.EndpointConditions\")\n\tproto.RegisterType((*EndpointHints)(nil), \"k8s.io.api.discovery.v1beta1.EndpointHints\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.discovery.v1beta1.EndpointPort\")\n\tproto.RegisterType((*EndpointSlice)(nil), \"k8s.io.api.discovery.v1beta1.EndpointSlice\")\n\tproto.RegisterType((*EndpointSliceList)(nil), \"k8s.io.api.discovery.v1beta1.EndpointSliceList\")\n\tproto.RegisterType((*ForZone)(nil), \"k8s.io.api.discovery.v1beta1.ForZone\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1beta1/generated.proto\", fileDescriptor_ece80bbc872d519b)\n}\n\nvar fileDescriptor_ece80bbc872d519b = []byte{\n\t// 871 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x41, 0x6f, 0xe3, 0x44,\n\t0x14, 0x8e, 0x9b, 0x86, 0xda, 0x93, 0x56, 0xec, 0x8e, 0x38, 0x44, 0xa5, 0xb2, 0x23, 0xa3, 0x45,\n\t0x11, 0x15, 0x36, 0xad, 0x56, 0x68, 0x05, 0xa7, 0x1a, 0x0a, 0x8b, 0xb4, 0xec, 0x56, 0xd3, 0x4a,\n\t0x48, 0x2b, 0x0e, 0x4c, 0xec, 0xa9, 0x63, 0xd2, 0xcc, 0x58, 0x33, 0x93, 0x48, 0xb9, 0xf1, 0x0f,\n\t0xe0, 0xb7, 0xf0, 0x17, 0x90, 0x50, 0x8f, 0x7b, 0xdc, 0x93, 0x45, 0xcd, 0xbf, 0xe8, 0x09, 0xcd,\n\t0x78, 0x6c, 0x27, 0x04, 0xba, 0xb9, 0x79, 0xbe, 0x79, 0xdf, 0xf7, 0xde, 0xfb, 0xde, 0xcc, 0x18,\n\t0x9c, 0x4f, 0x9f, 0x89, 0x20, 0x63, 0xe1, 0x74, 0x3e, 0x26, 0x9c, 0x12, 0x49, 0x44, 0xb8, 0x20,\n\t0x34, 0x61, 0x3c, 0x34, 0x1b, 0x38, 0xcf, 0xc2, 0x24, 0x13, 0x31, 0x5b, 0x10, 0xbe, 0x0c, 0x17,\n\t0x27, 0x63, 0x22, 0xf1, 0x49, 0x98, 0x12, 0x4a, 0x38, 0x96, 0x24, 0x09, 0x72, 0xce, 0x24, 0x83,\n\t0x47, 0x55, 0x74, 0x80, 0xf3, 0x2c, 0x68, 0xa2, 0x03, 0x13, 0x7d, 0xf8, 0x69, 0x9a, 0xc9, 0xc9,\n\t0x7c, 0x1c, 0xc4, 0x6c, 0x16, 0xa6, 0x2c, 0x65, 0xa1, 0x26, 0x8d, 0xe7, 0xd7, 0x7a, 0xa5, 0x17,\n\t0xfa, 0xab, 0x12, 0x3b, 0xf4, 0x57, 0x52, 0xc7, 0x8c, 0x93, 0x70, 0xb1, 0x91, 0xf0, 0xf0, 0x69,\n\t0x1b, 0x33, 0xc3, 0xf1, 0x24, 0xa3, 0xaa, 0xba, 0x7c, 0x9a, 0x2a, 0x40, 0x84, 0x33, 0x22, 0xf1,\n\t0x7f, 0xb1, 0xc2, 0xff, 0x63, 0xf1, 0x39, 0x95, 0xd9, 0x8c, 0x6c, 0x10, 0x3e, 0x7f, 0x17, 0x41,\n\t0xc4, 0x13, 0x32, 0xc3, 0xff, 0xe6, 0xf9, 0xbf, 0xef, 0x02, 0xfb, 0x9c, 0x26, 0x39, 0xcb, 0xa8,\n\t0x84, 0xc7, 0xc0, 0xc1, 0x49, 0xc2, 0x89, 0x10, 0x44, 0x0c, 0xac, 0x61, 0x77, 0xe4, 0x44, 0x07,\n\t0x65, 0xe1, 0x39, 0x67, 0x35, 0x88, 0xda, 0x7d, 0x98, 0x00, 0x10, 0x33, 0x9a, 0x64, 0x32, 0x63,\n\t0x54, 0x0c, 0x76, 0x86, 0xd6, 0xa8, 0x7f, 0xfa, 0x59, 0xf0, 0x90, 0xbd, 0x41, 0x9d, 0xe8, 0xab,\n\t0x86, 0x17, 0xc1, 0xdb, 0xc2, 0xeb, 0x94, 0x85, 0x07, 0x5a, 0x0c, 0xad, 0xe8, 0xc2, 0x11, 0xb0,\n\t0x27, 0x4c, 0x48, 0x8a, 0x67, 0x64, 0xd0, 0x1d, 0x5a, 0x23, 0x27, 0xda, 0x2f, 0x0b, 0xcf, 0x7e,\n\t0x6e, 0x30, 0xd4, 0xec, 0xc2, 0x0b, 0xe0, 0x48, 0xcc, 0x53, 0x22, 0x11, 0xb9, 0x1e, 0xec, 0xea,\n\t0x72, 0x3e, 0x5a, 0x2d, 0x47, 0x0d, 0x28, 0x58, 0x9c, 0x04, 0xaf, 0xc6, 0x3f, 0x93, 0x58, 0x05,\n\t0x11, 0x4e, 0x68, 0x4c, 0xaa, 0x0e, 0xaf, 0x6a, 0x26, 0x6a, 0x45, 0xe0, 0x18, 0xd8, 0x92, 0xe5,\n\t0xec, 0x86, 0xa5, 0xcb, 0x41, 0x6f, 0xd8, 0x1d, 0xf5, 0x4f, 0x9f, 0x6e, 0xd7, 0x5f, 0x70, 0x65,\n\t0x68, 0xe7, 0x54, 0xf2, 0x65, 0xf4, 0xc8, 0xf4, 0x68, 0xd7, 0x30, 0x6a, 0x74, 0x55, 0x7f, 0x94,\n\t0x25, 0xe4, 0xa5, 0xea, 0xef, 0xbd, 0xb6, 0xbf, 0x97, 0x06, 0x43, 0xcd, 0x2e, 0x7c, 0x01, 0x7a,\n\t0x93, 0x8c, 0x4a, 0x31, 0xd8, 0xd3, 0xbd, 0x1d, 0x6f, 0x57, 0xca, 0x73, 0x45, 0x89, 0x9c, 0xb2,\n\t0xf0, 0x7a, 0xfa, 0x13, 0x55, 0x22, 0x87, 0x5f, 0x82, 0x83, 0xb5, 0x22, 0xe1, 0x23, 0xd0, 0x9d,\n\t0x92, 0xe5, 0xc0, 0x52, 0x35, 0x20, 0xf5, 0x09, 0x3f, 0x00, 0xbd, 0x05, 0xbe, 0x99, 0x13, 0x3d,\n\t0x5b, 0x07, 0x55, 0x8b, 0x2f, 0x76, 0x9e, 0x59, 0xfe, 0xaf, 0x16, 0x80, 0x9b, 0xb3, 0x84, 0x1e,\n\t0xe8, 0x71, 0x82, 0x93, 0x4a, 0xc4, 0xae, 0x92, 0x22, 0x05, 0xa0, 0x0a, 0x87, 0x4f, 0xc0, 0x9e,\n\t0x20, 0x7c, 0x91, 0xd1, 0x54, 0x6b, 0xda, 0x51, 0xbf, 0x2c, 0xbc, 0xbd, 0xcb, 0x0a, 0x42, 0xf5,\n\t0x1e, 0x3c, 0x01, 0x7d, 0x49, 0xf8, 0x2c, 0xa3, 0x58, 0xaa, 0xd0, 0xae, 0x0e, 0x7d, 0xbf, 0x2c,\n\t0xbc, 0xfe, 0x55, 0x0b, 0xa3, 0xd5, 0x18, 0x3f, 0x01, 0x07, 0x6b, 0x1d, 0xc3, 0x4b, 0x60, 0x5f,\n\t0x33, 0xfe, 0x9a, 0x51, 0x73, 0x92, 0xfb, 0xa7, 0x4f, 0x1e, 0x36, 0xec, 0x9b, 0x2a, 0xba, 0x1d,\n\t0x96, 0x01, 0x04, 0x6a, 0x84, 0xfc, 0x3f, 0x2d, 0xb0, 0x5f, 0xa7, 0xb9, 0x60, 0x5c, 0xc2, 0x23,\n\t0xb0, 0xab, 0x4f, 0xa6, 0x76, 0x2d, 0xb2, 0xcb, 0xc2, 0xdb, 0xd5, 0x53, 0xd3, 0x28, 0xfc, 0x16,\n\t0xd8, 0xfa, 0x92, 0xc5, 0xec, 0xa6, 0xf2, 0x30, 0x3a, 0x56, 0xc2, 0x17, 0x06, 0xbb, 0x2f, 0xbc,\n\t0x0f, 0x37, 0x1f, 0x90, 0xa0, 0xde, 0x46, 0x0d, 0x59, 0xa5, 0xc9, 0x19, 0x97, 0xda, 0x89, 0x5e,\n\t0x95, 0x46, 0xa5, 0x47, 0x1a, 0x55, 0x76, 0xe1, 0x3c, 0xaf, 0x69, 0xfa, 0xe8, 0x3b, 0x95, 0x5d,\n\t0x67, 0x2d, 0x8c, 0x56, 0x63, 0xfc, 0xbb, 0x9d, 0xd6, 0xaf, 0xcb, 0x9b, 0x2c, 0x26, 0xf0, 0x27,\n\t0x60, 0xab, 0xb7, 0x28, 0xc1, 0x12, 0xeb, 0x6e, 0xd6, 0xef, 0x72, 0xf3, 0xa4, 0x04, 0xf9, 0x34,\n\t0x55, 0x80, 0x08, 0x54, 0x74, 0x7b, 0x9d, 0xbe, 0x27, 0x12, 0xb7, 0x77, 0xb9, 0xc5, 0x50, 0xa3,\n\t0x0a, 0xbf, 0x06, 0x7d, 0xf3, 0x78, 0x5c, 0x2d, 0x73, 0x62, 0xca, 0xf4, 0x0d, 0xa5, 0x7f, 0xd6,\n\t0x6e, 0xdd, 0xaf, 0x2f, 0xd1, 0x2a, 0x0d, 0xfe, 0x00, 0x1c, 0x62, 0x0a, 0x57, 0x8f, 0x8e, 0x1a,\n\t0xec, 0xc7, 0xdb, 0xdd, 0x84, 0xe8, 0xb1, 0xc9, 0xe5, 0xd4, 0x88, 0x40, 0xad, 0x16, 0x7c, 0x05,\n\t0x7a, 0xca, 0x4d, 0x31, 0xe8, 0x6a, 0xd1, 0x4f, 0xb6, 0x13, 0x55, 0x63, 0x88, 0x0e, 0x8c, 0x70,\n\t0x4f, 0xad, 0x04, 0xaa, 0x74, 0xfc, 0x3f, 0x2c, 0xf0, 0x78, 0xcd, 0xe3, 0x17, 0x99, 0x90, 0xf0,\n\t0xc7, 0x0d, 0x9f, 0x83, 0xed, 0x7c, 0x56, 0x6c, 0xed, 0x72, 0x73, 0x40, 0x6b, 0x64, 0xc5, 0xe3,\n\t0x0b, 0xd0, 0xcb, 0x24, 0x99, 0xd5, 0xce, 0x6c, 0xf9, 0x46, 0xe8, 0xea, 0xda, 0x2e, 0xbe, 0x53,\n\t0x0a, 0xa8, 0x12, 0xf2, 0x8f, 0xc1, 0x9e, 0xb9, 0x08, 0x70, 0xb8, 0x76, 0xd8, 0xf7, 0x4d, 0xf8,\n\t0xca, 0x81, 0x8f, 0xa2, 0xdb, 0x3b, 0xb7, 0xf3, 0xe6, 0xce, 0xed, 0xbc, 0xbd, 0x73, 0x3b, 0xbf,\n\t0x94, 0xae, 0x75, 0x5b, 0xba, 0xd6, 0x9b, 0xd2, 0xb5, 0xde, 0x96, 0xae, 0xf5, 0x57, 0xe9, 0x5a,\n\t0xbf, 0xfd, 0xed, 0x76, 0x5e, 0x1f, 0x3d, 0xf4, 0xc3, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0xd2,\n\t0xeb, 0x52, 0x19, 0xe8, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Endpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Hints != nil {\n\t\t{\n\t\t\tsize, err := m.Hints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.Topology) > 0 {\n\t\tkeysForTopology := make([]string, 0, len(m.Topology))\n\t\tfor k := range m.Topology {\n\t\t\tkeysForTopology = append(keysForTopology, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForTopology)\n\t\tfor iNdEx := len(keysForTopology) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Topology[string(keysForTopology[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForTopology[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForTopology[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForTopology[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Hostname != nil {\n\t\ti -= len(*m.Hostname)\n\t\tcopy(dAtA[i:], *m.Hostname)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Addresses[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Addresses[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointConditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminating != nil {\n\t\ti--\n\t\tif *m.Terminating {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Serving != nil {\n\t\ti--\n\t\tif *m.Serving {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Ready != nil {\n\t\ti--\n\t\tif *m.Ready {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointHints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Name != nil {\n\t\ti -= len(*m.Name)\n\t\tcopy(dAtA[i:], *m.Name)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.AddressType)\n\tcopy(dAtA[i:], m.AddressType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Endpoints) > 0 {\n\t\tfor iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ForZone) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ForZone) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Endpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, s := range m.Addresses {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Conditions.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Hostname != nil {\n\t\tl = len(*m.Hostname)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Topology) > 0 {\n\t\tfor k, v := range m.Topology {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Hints != nil {\n\t\tl = m.Hints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointConditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Ready != nil {\n\t\tn += 2\n\t}\n\tif m.Serving != nil {\n\t\tn += 2\n\t}\n\tif m.Terminating != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *EndpointHints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor _, e := range m.ForZones {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Name != nil {\n\t\tl = len(*m.Name)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Endpoints) > 0 {\n\t\tfor _, e := range m.Endpoints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AddressType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EndpointSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ForZone) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Endpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForTopology := make([]string, 0, len(this.Topology))\n\tfor k := range this.Topology {\n\t\tkeysForTopology = append(keysForTopology, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForTopology)\n\tmapStringForTopology := \"map[string]string{\"\n\tfor _, k := range keysForTopology {\n\t\tmapStringForTopology += fmt.Sprintf(\"%v: %v,\", k, this.Topology[k])\n\t}\n\tmapStringForTopology += \"}\"\n\ts := strings.Join([]string{`&Endpoint{`,\n\t\t`Addresses:` + fmt.Sprintf(\"%v\", this.Addresses) + `,`,\n\t\t`Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), \"EndpointConditions\", \"EndpointConditions\", 1), `&`, ``, 1) + `,`,\n\t\t`Hostname:` + valueToStringGenerated(this.Hostname) + `,`,\n\t\t`TargetRef:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetRef), \"ObjectReference\", \"v1.ObjectReference\", 1) + `,`,\n\t\t`Topology:` + mapStringForTopology + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`Hints:` + strings.Replace(this.Hints.String(), \"EndpointHints\", \"EndpointHints\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointConditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointConditions{`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`Serving:` + valueToStringGenerated(this.Serving) + `,`,\n\t\t`Terminating:` + valueToStringGenerated(this.Terminating) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointHints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForForZones := \"[]ForZone{\"\n\tfor _, f := range this.ForZones {\n\t\trepeatedStringForForZones += strings.Replace(strings.Replace(f.String(), \"ForZone\", \"ForZone\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForForZones += \"}\"\n\ts := strings.Join([]string{`&EndpointHints{`,\n\t\t`ForZones:` + repeatedStringForForZones + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + valueToStringGenerated(this.Name) + `,`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForEndpoints := \"[]Endpoint{\"\n\tfor _, f := range this.Endpoints {\n\t\trepeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), \"Endpoint\", \"Endpoint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEndpoints += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Endpoints:` + repeatedStringForEndpoints + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`AddressType:` + fmt.Sprintf(\"%v\", this.AddressType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]EndpointSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"EndpointSlice\", \"EndpointSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ForZone) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ForZone{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Endpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Hostname = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &v1.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Topology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Topology == nil {\n\t\t\t\tm.Topology = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Topology[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hints == nil {\n\t\t\t\tm.Hints = &EndpointHints{}\n\t\t\t}\n\t\t\tif err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointConditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Ready = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Serving\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Serving = &b\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminating\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Terminating = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointHints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ForZones\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ForZones = append(m.ForZones, ForZone{})\n\t\t\tif err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Name = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Endpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Endpoints = append(m.Endpoints, Endpoint{})\n\t\t\tif err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddressType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddressType = AddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, EndpointSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ForZone) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.discovery.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/discovery/v1beta1\";\n\n// Endpoint represents a single logical \"backend\" implementing a service.\nmessage Endpoint {\n  // addresses of this endpoint. The contents of this field are interpreted\n  // according to the corresponding EndpointSlice addressType field. Consumers\n  // must handle different types of addresses in the context of their own\n  // capabilities. This must contain at least one address but no more than\n  // 100. These are all assumed to be fungible and clients may choose to only\n  // use the first element. Refer to: https://issue.k8s.io/106267\n  // +listType=set\n  repeated string addresses = 1;\n\n  // conditions contains information about the current status of the endpoint.\n  optional EndpointConditions conditions = 2;\n\n  // hostname of this endpoint. This field may be used by consumers of\n  // endpoints to distinguish endpoints from each other (e.g. in DNS names).\n  // Multiple endpoints which use the same hostname should be considered\n  // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n  // Label (RFC 1123) validation.\n  // +optional\n  optional string hostname = 3;\n\n  // targetRef is a reference to a Kubernetes object that represents this\n  // endpoint.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference targetRef = 4;\n\n  // topology contains arbitrary topology information associated with the\n  // endpoint. These key/value pairs must conform with the label format.\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // Topology may include a maximum of 16 key/value pairs. This includes, but\n  // is not limited to the following well known keys:\n  // * kubernetes.io/hostname: the value indicates the hostname of the node\n  //   where the endpoint is located. This should match the corresponding\n  //   node label.\n  // * topology.kubernetes.io/zone: the value indicates the zone where the\n  //   endpoint is located. This should match the corresponding node label.\n  // * topology.kubernetes.io/region: the value indicates the region where the\n  //   endpoint is located. This should match the corresponding node label.\n  // This field is deprecated and will be removed in future api versions.\n  // +optional\n  map<string, string> topology = 5;\n\n  // nodeName represents the name of the Node hosting this endpoint. This can\n  // be used to determine endpoints local to a Node.\n  // +optional\n  optional string nodeName = 6;\n\n  // hints contains information associated with how an endpoint should be\n  // consumed.\n  // +featureGate=TopologyAwareHints\n  // +optional\n  optional EndpointHints hints = 7;\n}\n\n// EndpointConditions represents the current condition of an endpoint.\nmessage EndpointConditions {\n  // ready indicates that this endpoint is prepared to receive traffic,\n  // according to whatever system is managing the endpoint. A nil value\n  // indicates an unknown state. In most cases consumers should interpret this\n  // unknown state as ready. For compatibility reasons, ready should never be\n  // \"true\" for terminating endpoints.\n  // +optional\n  optional bool ready = 1;\n\n  // serving is identical to ready except that it is set regardless of the\n  // terminating state of endpoints. This condition should be set to true for\n  // a ready endpoint that is terminating. If nil, consumers should defer to\n  // the ready condition.\n  // +optional\n  optional bool serving = 2;\n\n  // terminating indicates that this endpoint is terminating. A nil value\n  // indicates an unknown state. Consumers should interpret this unknown state\n  // to mean that the endpoint is not terminating.\n  // +optional\n  optional bool terminating = 3;\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\nmessage EndpointHints {\n  // forZones indicates the zone(s) this endpoint should be consumed by to\n  // enable topology aware routing. May contain a maximum of 8 entries.\n  // +listType=atomic\n  repeated ForZone forZones = 1;\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\nmessage EndpointPort {\n  // name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n  // If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name.\n  // Name must either be an empty string or pass DNS_LABEL validation:\n  // * must be no more than 63 characters long.\n  // * must consist of lower case alphanumeric characters or '-'.\n  // * must start and end with an alphanumeric character.\n  // Default is empty string.\n  optional string name = 1;\n\n  // protocol represents the IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  optional string protocol = 2;\n\n  // port represents the port number of the endpoint.\n  // If this is not specified, ports are not restricted and must be\n  // interpreted in the context of the specific consumer.\n  optional int32 port = 3;\n\n  // appProtocol represents the application protocol for this port.\n  // This field follows standard Kubernetes label syntax.\n  // Un-prefixed names are reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  // Non-standard protocols should use prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\nmessage EndpointSlice {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // addressType specifies the type of address carried by this EndpointSlice.\n  // All addresses in this slice must be the same type. This field is\n  // immutable after creation. The following address types are currently\n  // supported:\n  // * IPv4: Represents an IPv4 Address.\n  // * IPv6: Represents an IPv6 Address.\n  // * FQDN: Represents a Fully Qualified Domain Name.\n  optional string addressType = 4;\n\n  // endpoints is a list of unique endpoints in this slice. Each slice may\n  // include a maximum of 1000 endpoints.\n  // +listType=atomic\n  repeated Endpoint endpoints = 2;\n\n  // ports specifies the list of network ports exposed by each endpoint in\n  // this slice. Each port must have a unique name. When ports is empty, it\n  // indicates that there are no defined ports. When a port is defined with a\n  // nil port value, it indicates \"all ports\". Each slice may include a\n  // maximum of 100 ports.\n  // +optional\n  // +listType=atomic\n  repeated EndpointPort ports = 3;\n}\n\n// EndpointSliceList represents a list of endpoint slices\nmessage EndpointSliceList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of endpoint slices\n  repeated EndpointSlice items = 2;\n}\n\n// ForZone provides information about which zones should consume this endpoint.\nmessage ForZone {\n  // name represents the name of the zone.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package\nconst GroupName = \"discovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&EndpointSlice{},\n\t\t&EndpointSliceList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\ntype EndpointSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// addressType specifies the type of address carried by this EndpointSlice.\n\t// All addresses in this slice must be the same type. This field is\n\t// immutable after creation. The following address types are currently\n\t// supported:\n\t// * IPv4: Represents an IPv4 Address.\n\t// * IPv6: Represents an IPv6 Address.\n\t// * FQDN: Represents a Fully Qualified Domain Name.\n\tAddressType AddressType `json:\"addressType\" protobuf:\"bytes,4,rep,name=addressType\"`\n\n\t// endpoints is a list of unique endpoints in this slice. Each slice may\n\t// include a maximum of 1000 endpoints.\n\t// +listType=atomic\n\tEndpoints []Endpoint `json:\"endpoints\" protobuf:\"bytes,2,rep,name=endpoints\"`\n\n\t// ports specifies the list of network ports exposed by each endpoint in\n\t// this slice. Each port must have a unique name. When ports is empty, it\n\t// indicates that there are no defined ports. When a port is defined with a\n\t// nil port value, it indicates \"all ports\". Each slice may include a\n\t// maximum of 100 ports.\n\t// +optional\n\t// +listType=atomic\n\tPorts []EndpointPort `json:\"ports\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// AddressType represents the type of address referred to by an endpoint.\ntype AddressType string\n\nconst (\n\t// AddressTypeIPv4 represents an IPv4 Address.\n\tAddressTypeIPv4 = AddressType(v1.IPv4Protocol)\n\n\t// AddressTypeIPv6 represents an IPv6 Address.\n\tAddressTypeIPv6 = AddressType(v1.IPv6Protocol)\n\n\t// AddressTypeFQDN represents a FQDN.\n\tAddressTypeFQDN = AddressType(\"FQDN\")\n)\n\n// Endpoint represents a single logical \"backend\" implementing a service.\ntype Endpoint struct {\n\t// addresses of this endpoint. The contents of this field are interpreted\n\t// according to the corresponding EndpointSlice addressType field. Consumers\n\t// must handle different types of addresses in the context of their own\n\t// capabilities. This must contain at least one address but no more than\n\t// 100. These are all assumed to be fungible and clients may choose to only\n\t// use the first element. Refer to: https://issue.k8s.io/106267\n\t// +listType=set\n\tAddresses []string `json:\"addresses\" protobuf:\"bytes,1,rep,name=addresses\"`\n\n\t// conditions contains information about the current status of the endpoint.\n\tConditions EndpointConditions `json:\"conditions,omitempty\" protobuf:\"bytes,2,opt,name=conditions\"`\n\n\t// hostname of this endpoint. This field may be used by consumers of\n\t// endpoints to distinguish endpoints from each other (e.g. in DNS names).\n\t// Multiple endpoints which use the same hostname should be considered\n\t// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n\t// Label (RFC 1123) validation.\n\t// +optional\n\tHostname *string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\n\t// targetRef is a reference to a Kubernetes object that represents this\n\t// endpoint.\n\t// +optional\n\tTargetRef *v1.ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,4,opt,name=targetRef\"`\n\n\t// topology contains arbitrary topology information associated with the\n\t// endpoint. These key/value pairs must conform with the label format.\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// Topology may include a maximum of 16 key/value pairs. This includes, but\n\t// is not limited to the following well known keys:\n\t// * kubernetes.io/hostname: the value indicates the hostname of the node\n\t//   where the endpoint is located. This should match the corresponding\n\t//   node label.\n\t// * topology.kubernetes.io/zone: the value indicates the zone where the\n\t//   endpoint is located. This should match the corresponding node label.\n\t// * topology.kubernetes.io/region: the value indicates the region where the\n\t//   endpoint is located. This should match the corresponding node label.\n\t// This field is deprecated and will be removed in future api versions.\n\t// +optional\n\tTopology map[string]string `json:\"topology,omitempty\" protobuf:\"bytes,5,opt,name=topology\"`\n\n\t// nodeName represents the name of the Node hosting this endpoint. This can\n\t// be used to determine endpoints local to a Node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,6,opt,name=nodeName\"`\n\n\t// hints contains information associated with how an endpoint should be\n\t// consumed.\n\t// +featureGate=TopologyAwareHints\n\t// +optional\n\tHints *EndpointHints `json:\"hints,omitempty\" protobuf:\"bytes,7,opt,name=hints\"`\n}\n\n// EndpointConditions represents the current condition of an endpoint.\ntype EndpointConditions struct {\n\t// ready indicates that this endpoint is prepared to receive traffic,\n\t// according to whatever system is managing the endpoint. A nil value\n\t// indicates an unknown state. In most cases consumers should interpret this\n\t// unknown state as ready. For compatibility reasons, ready should never be\n\t// \"true\" for terminating endpoints.\n\t// +optional\n\tReady *bool `json:\"ready,omitempty\" protobuf:\"bytes,1,name=ready\"`\n\n\t// serving is identical to ready except that it is set regardless of the\n\t// terminating state of endpoints. This condition should be set to true for\n\t// a ready endpoint that is terminating. If nil, consumers should defer to\n\t// the ready condition.\n\t// +optional\n\tServing *bool `json:\"serving,omitempty\" protobuf:\"bytes,2,name=serving\"`\n\n\t// terminating indicates that this endpoint is terminating. A nil value\n\t// indicates an unknown state. Consumers should interpret this unknown state\n\t// to mean that the endpoint is not terminating.\n\t// +optional\n\tTerminating *bool `json:\"terminating,omitempty\" protobuf:\"bytes,3,name=terminating\"`\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\ntype EndpointHints struct {\n\t// forZones indicates the zone(s) this endpoint should be consumed by to\n\t// enable topology aware routing. May contain a maximum of 8 entries.\n\t// +listType=atomic\n\tForZones []ForZone `json:\"forZones,omitempty\" protobuf:\"bytes,1,name=forZones\"`\n}\n\n// ForZone provides information about which zones should consume this endpoint.\ntype ForZone struct {\n\t// name represents the name of the zone.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\ntype EndpointPort struct {\n\t// name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n\t// If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name.\n\t// Name must either be an empty string or pass DNS_LABEL validation:\n\t// * must be no more than 63 characters long.\n\t// * must consist of lower case alphanumeric characters or '-'.\n\t// * must start and end with an alphanumeric character.\n\t// Default is empty string.\n\tName *string `json:\"name,omitempty\" protobuf:\"bytes,1,name=name\"`\n\n\t// protocol represents the IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,name=protocol\"`\n\n\t// port represents the port number of the endpoint.\n\t// If this is not specified, ports are not restricted and must be\n\t// interpreted in the context of the specific consumer.\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"bytes,3,opt,name=port\"`\n\n\t// appProtocol represents the application protocol for this port.\n\t// This field follows standard Kubernetes label syntax.\n\t// Un-prefixed names are reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t// Non-standard protocols should use prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice\n\n// EndpointSliceList represents a list of endpoint slices\ntype EndpointSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of endpoint slices\n\tItems []EndpointSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Endpoint = map[string]string{\n\t\"\":           \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n\t\"addresses\":  \"addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267\",\n\t\"conditions\": \"conditions contains information about the current status of the endpoint.\",\n\t\"hostname\":   \"hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.\",\n\t\"targetRef\":  \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n\t\"topology\":   \"topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\\n  where the endpoint is located. This should match the corresponding\\n  node label.\\n* topology.kubernetes.io/zone: the value indicates the zone where the\\n  endpoint is located. This should match the corresponding node label.\\n* topology.kubernetes.io/region: the value indicates the region where the\\n  endpoint is located. This should match the corresponding node label.\\nThis field is deprecated and will be removed in future api versions.\",\n\t\"nodeName\":   \"nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.\",\n\t\"hints\":      \"hints contains information associated with how an endpoint should be consumed.\",\n}\n\nfunc (Endpoint) SwaggerDoc() map[string]string {\n\treturn map_Endpoint\n}\n\nvar map_EndpointConditions = map[string]string{\n\t\"\":            \"EndpointConditions represents the current condition of an endpoint.\",\n\t\"ready\":       \"ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \\\"true\\\" for terminating endpoints.\",\n\t\"serving\":     \"serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition.\",\n\t\"terminating\": \"terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating.\",\n}\n\nfunc (EndpointConditions) SwaggerDoc() map[string]string {\n\treturn map_EndpointConditions\n}\n\nvar map_EndpointHints = map[string]string{\n\t\"\":         \"EndpointHints provides hints describing how an endpoint should be consumed.\",\n\t\"forZones\": \"forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing. May contain a maximum of 8 entries.\",\n}\n\nfunc (EndpointHints) SwaggerDoc() map[string]string {\n\treturn map_EndpointHints\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort represents a Port used by an EndpointSlice\",\n\t\"name\":        \"name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.\",\n\t\"protocol\":    \"protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"port\":        \"port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.\",\n\t\"appProtocol\": \"appProtocol represents the application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSlice = map[string]string{\n\t\"\":            \"EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.\",\n\t\"metadata\":    \"Standard object's metadata.\",\n\t\"addressType\": \"addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.\",\n\t\"endpoints\":   \"endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.\",\n\t\"ports\":       \"ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \\\"all ports\\\". Each slice may include a maximum of 100 ports.\",\n}\n\nfunc (EndpointSlice) SwaggerDoc() map[string]string {\n\treturn map_EndpointSlice\n}\n\nvar map_EndpointSliceList = map[string]string{\n\t\"\":         \"EndpointSliceList represents a list of endpoint slices\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of endpoint slices\",\n}\n\nfunc (EndpointSliceList) SwaggerDoc() map[string]string {\n\treturn map_EndpointSliceList\n}\n\nvar map_ForZone = map[string]string{\n\t\"\":     \"ForZone provides information about which zones should consume this endpoint.\",\n\t\"name\": \"name represents the name of the zone.\",\n}\n\nfunc (ForZone) SwaggerDoc() map[string]string {\n\treturn map_ForZone\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\t// LabelServiceName is used to indicate the name of a Kubernetes service.\n\tLabelServiceName = \"kubernetes.io/service-name\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an EndpointSlice. This label aims to enable different EndpointSlice\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// EndpointSlices.\n\tLabelManagedBy = \"endpointslice.kubernetes.io/managed-by\"\n\t// LabelSkipMirror can be set to true on an Endpoints resource to indicate\n\t// that the EndpointSliceMirroring controller should not mirror this\n\t// resource with EndpointSlices.\n\tLabelSkipMirror = \"endpointslice.kubernetes.io/skip-mirror\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoint) DeepCopyInto(out *Endpoint) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Conditions.DeepCopyInto(&out.Conditions)\n\tif in.Hostname != nil {\n\t\tin, out := &in.Hostname, &out.Hostname\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(v1.ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.Topology != nil {\n\t\tin, out := &in.Topology, &out.Topology\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Hints != nil {\n\t\tin, out := &in.Hints, &out.Hints\n\t\t*out = new(EndpointHints)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.\nfunc (in *Endpoint) DeepCopy() *Endpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) {\n\t*out = *in\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Serving != nil {\n\t\tin, out := &in.Serving, &out.Serving\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Terminating != nil {\n\t\tin, out := &in.Terminating, &out.Terminating\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions.\nfunc (in *EndpointConditions) DeepCopy() *EndpointConditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointConditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointHints) DeepCopyInto(out *EndpointHints) {\n\t*out = *in\n\tif in.ForZones != nil {\n\t\tin, out := &in.ForZones, &out.ForZones\n\t\t*out = make([]ForZone, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints.\nfunc (in *EndpointHints) DeepCopy() *EndpointHints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointHints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.Name != nil {\n\t\tin, out := &in.Name, &out.Name\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(v1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Endpoints != nil {\n\t\tin, out := &in.Endpoints, &out.Endpoints\n\t\t*out = make([]Endpoint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice.\nfunc (in *EndpointSlice) DeepCopy() *EndpointSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]EndpointSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList.\nfunc (in *EndpointSliceList) DeepCopy() *EndpointSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ForZone) DeepCopyInto(out *ForZone) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone.\nfunc (in *ForZone) DeepCopy() *ForZone {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ForZone)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EndpointSlice) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *EndpointSlice) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"discovery.k8s.io\", Version: \"v1\", Kind: \"EndpointSlice\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EndpointSlice) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSliceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EndpointSliceList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *EndpointSliceList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"discovery.k8s.io\", Version: \"v1\", Kind: \"EndpointSlice\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EndpointSliceList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=events.k8s.io\n\npackage v1 // import \"k8s.io/api/events/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/events/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ee2600587b650fac, []int{0}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ee2600587b650fac, []int{1}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ee2600587b650fac, []int{2}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.events.v1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.events.v1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.events.v1.EventSeries\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/events/v1/generated.proto\", fileDescriptor_ee2600587b650fac)\n}\n\nvar fileDescriptor_ee2600587b650fac = []byte{\n\t// 775 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x6f, 0xe3, 0x44,\n\t0x14, 0x8f, 0x77, 0x9b, 0xb4, 0x99, 0xec, 0x6e, 0xd3, 0xd9, 0x95, 0x3a, 0x74, 0x25, 0x27, 0x64,\n\t0x25, 0x14, 0x21, 0x61, 0xd3, 0x0a, 0x21, 0x84, 0x84, 0x44, 0xdd, 0x14, 0x54, 0xd4, 0x52, 0x69,\n\t0xda, 0x13, 0xe2, 0xd0, 0x89, 0xf3, 0xea, 0x9a, 0xc4, 0x33, 0xd6, 0xcc, 0x24, 0x52, 0x6f, 0x5c,\n\t0x90, 0x38, 0xf2, 0x05, 0xf8, 0x00, 0x88, 0x2f, 0xd2, 0x63, 0x8f, 0x3d, 0x45, 0xd4, 0x7c, 0x11,\n\t0xe4, 0xb1, 0x13, 0xa7, 0xf9, 0x03, 0x41, 0x7b, 0xf3, 0xbc, 0xf7, 0xfb, 0xf3, 0xde, 0xcc, 0xcb,\n\t0x0b, 0xfa, 0xaa, 0xff, 0x85, 0x72, 0x42, 0xe1, 0xf6, 0x87, 0x5d, 0x90, 0x1c, 0x34, 0x28, 0x77,\n\t0x04, 0xbc, 0x27, 0xa4, 0x9b, 0x27, 0x58, 0x1c, 0xba, 0x30, 0x02, 0xae, 0x95, 0x3b, 0xda, 0x77,\n\t0x03, 0xe0, 0x20, 0x99, 0x86, 0x9e, 0x13, 0x4b, 0xa1, 0x05, 0x7e, 0x93, 0xa1, 0x1c, 0x16, 0x87,\n\t0x4e, 0x86, 0x72, 0x46, 0xfb, 0x7b, 0x9f, 0x04, 0xa1, 0xbe, 0x19, 0x76, 0x1d, 0x5f, 0x44, 0x6e,\n\t0x20, 0x02, 0xe1, 0x1a, 0x70, 0x77, 0x78, 0x6d, 0x4e, 0xe6, 0x60, 0xbe, 0x32, 0x91, 0xbd, 0xd6,\n\t0x8c, 0x95, 0x2f, 0x24, 0x2c, 0x31, 0xda, 0xfb, 0xac, 0xc0, 0x44, 0xcc, 0xbf, 0x09, 0x39, 0xc8,\n\t0x5b, 0x37, 0xee, 0x07, 0x69, 0x40, 0xb9, 0x11, 0x68, 0xb6, 0x8c, 0xe5, 0xae, 0x62, 0xc9, 0x21,\n\t0xd7, 0x61, 0x04, 0x0b, 0x84, 0xcf, 0xff, 0x8b, 0xa0, 0xfc, 0x1b, 0x88, 0xd8, 0x3c, 0xaf, 0xf5,\n\t0x7b, 0x15, 0x95, 0x8f, 0xd3, 0xfe, 0xf1, 0x15, 0xda, 0x4a, 0xab, 0xe9, 0x31, 0xcd, 0x88, 0xd5,\n\t0xb4, 0xda, 0xb5, 0x83, 0x4f, 0x9d, 0xe2, 0x92, 0xa6, 0xa2, 0x4e, 0xdc, 0x0f, 0xd2, 0x80, 0x72,\n\t0x52, 0xb4, 0x33, 0xda, 0x77, 0xce, 0xbb, 0x3f, 0x81, 0xaf, 0xcf, 0x40, 0x33, 0x0f, 0xdf, 0x8d,\n\t0x1b, 0xa5, 0x64, 0xdc, 0x40, 0x45, 0x8c, 0x4e, 0x55, 0xf1, 0x15, 0xaa, 0x9a, 0xab, 0xbe, 0x0c,\n\t0x23, 0x20, 0xcf, 0x8c, 0x85, 0xbb, 0x9e, 0xc5, 0x59, 0xe8, 0x4b, 0x91, 0xd2, 0xbc, 0x9d, 0xdc,\n\t0xa1, 0x7a, 0x3c, 0x51, 0xa2, 0x85, 0x28, 0x3e, 0x46, 0x15, 0x05, 0x32, 0x04, 0x45, 0x9e, 0x1b,\n\t0xf9, 0x0f, 0x9d, 0x65, 0xcf, 0xec, 0x18, 0xee, 0x85, 0x01, 0x7a, 0x28, 0x19, 0x37, 0x2a, 0xd9,\n\t0x37, 0xcd, 0xc9, 0xf8, 0x0c, 0xbd, 0x96, 0x10, 0x0b, 0xa9, 0x43, 0x1e, 0x1c, 0x09, 0xae, 0xa5,\n\t0x18, 0x0c, 0x40, 0x92, 0x8d, 0xa6, 0xd5, 0xae, 0x7a, 0x6f, 0xf3, 0x0a, 0x5e, 0xd3, 0x45, 0x08,\n\t0x5d, 0xc6, 0xc3, 0xdf, 0xa2, 0x9d, 0x69, 0xf8, 0x84, 0x2b, 0xcd, 0xb8, 0x0f, 0xa4, 0x6c, 0xc4,\n\t0x3e, 0xc8, 0xc5, 0x76, 0xe8, 0x3c, 0x80, 0x2e, 0x72, 0xf0, 0x47, 0xa8, 0xc2, 0x7c, 0x1d, 0x0a,\n\t0x4e, 0x2a, 0x86, 0xfd, 0x2a, 0x67, 0x57, 0x0e, 0x4d, 0x94, 0xe6, 0xd9, 0x14, 0x27, 0x81, 0x29,\n\t0xc1, 0xc9, 0xe6, 0x53, 0x1c, 0x35, 0x51, 0x9a, 0x67, 0xf1, 0x25, 0xaa, 0x4a, 0x08, 0x98, 0xec,\n\t0x85, 0x3c, 0x20, 0x5b, 0xe6, 0xc6, 0xde, 0xcd, 0xde, 0x58, 0x3a, 0xd3, 0xc5, 0x0b, 0x53, 0xb8,\n\t0x06, 0x09, 0xdc, 0x9f, 0x79, 0x04, 0x3a, 0x61, 0xd3, 0x42, 0x08, 0x7f, 0x87, 0x36, 0x25, 0x0c,\n\t0xd2, 0x19, 0x23, 0xd5, 0xf5, 0x35, 0x6b, 0xc9, 0xb8, 0xb1, 0x49, 0x33, 0x1e, 0x9d, 0x08, 0xe0,\n\t0x26, 0xda, 0xe0, 0x42, 0x03, 0x41, 0xa6, 0x8f, 0x17, 0xb9, 0xef, 0xc6, 0xf7, 0x42, 0x03, 0x35,\n\t0x99, 0x14, 0xa1, 0x6f, 0x63, 0x20, 0xb5, 0xa7, 0x88, 0xcb, 0xdb, 0x18, 0xa8, 0xc9, 0x60, 0x40,\n\t0xf5, 0x1e, 0xc4, 0x12, 0xfc, 0x54, 0xf1, 0x42, 0x0c, 0xa5, 0x0f, 0xe4, 0x85, 0x29, 0xac, 0xb1,\n\t0xac, 0xb0, 0x6c, 0x38, 0x0c, 0xcc, 0x23, 0xb9, 0x5c, 0xbd, 0x33, 0x27, 0x40, 0x17, 0x24, 0xf1,\n\t0xaf, 0x16, 0x22, 0x45, 0xf0, 0x9b, 0x50, 0x2a, 0x33, 0x93, 0x4a, 0xb3, 0x28, 0x26, 0x2f, 0x8d,\n\t0xdf, 0xc7, 0xeb, 0x4d, 0xbb, 0x19, 0xf4, 0x66, 0x6e, 0x4d, 0x3a, 0x2b, 0x34, 0xe9, 0x4a, 0x37,\n\t0xfc, 0x8b, 0x85, 0x76, 0x8b, 0xe4, 0x29, 0x9b, 0xad, 0xe4, 0xd5, 0xff, 0xae, 0xa4, 0x91, 0x57,\n\t0xb2, 0xdb, 0x59, 0x2e, 0x49, 0x57, 0x79, 0xe1, 0x43, 0xb4, 0x5d, 0xa4, 0x8e, 0xc4, 0x90, 0x6b,\n\t0xb2, 0xdd, 0xb4, 0xda, 0x65, 0x6f, 0x37, 0x97, 0xdc, 0xee, 0x3c, 0x4d, 0xd3, 0x79, 0x7c, 0xeb,\n\t0x4f, 0x0b, 0x65, 0x3f, 0xf5, 0xd3, 0x50, 0x69, 0xfc, 0xe3, 0xc2, 0x8e, 0x72, 0xd6, 0x6b, 0x24,\n\t0x65, 0x9b, 0x0d, 0x55, 0xcf, 0x9d, 0xb7, 0x26, 0x91, 0x99, 0xfd, 0xf4, 0x35, 0x2a, 0x87, 0x1a,\n\t0x22, 0x45, 0x9e, 0x35, 0x9f, 0xb7, 0x6b, 0x07, 0x6f, 0xff, 0x65, 0x79, 0x78, 0x2f, 0x73, 0x9d,\n\t0xf2, 0x49, 0xca, 0xa0, 0x19, 0xb1, 0xf5, 0x87, 0x85, 0x6a, 0x33, 0xcb, 0x05, 0xbf, 0x43, 0x65,\n\t0xdf, 0xb4, 0x6d, 0x99, 0xb6, 0xa7, 0xa4, 0xac, 0xd9, 0x2c, 0x87, 0x87, 0xa8, 0x3e, 0x60, 0x4a,\n\t0x9f, 0x77, 0x15, 0xc8, 0x11, 0xf4, 0xde, 0x67, 0x3b, 0x4e, 0xe7, 0xf5, 0x74, 0x4e, 0x90, 0x2e,\n\t0x58, 0x78, 0x5f, 0xde, 0x3d, 0xda, 0xa5, 0xfb, 0x47, 0xbb, 0xf4, 0xf0, 0x68, 0x97, 0x7e, 0x4e,\n\t0x6c, 0xeb, 0x2e, 0xb1, 0xad, 0xfb, 0xc4, 0xb6, 0x1e, 0x12, 0xdb, 0xfa, 0x2b, 0xb1, 0xad, 0xdf,\n\t0xfe, 0xb6, 0x4b, 0x3f, 0xbc, 0x59, 0xf6, 0x6f, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0,\n\t0xc8, 0x73, 0x3d, 0x7d, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedCount))\n\ti--\n\tdAtA[i] = 0x78\n\t{\n\t\tsize, err := m.DeprecatedLastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x72\n\t{\n\t\tsize, err := m.DeprecatedFirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x6a\n\t{\n\t\tsize, err := m.DeprecatedSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x62\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.Note)\n\tcopy(dAtA[i:], m.Note)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Note)))\n\ti--\n\tdAtA[i] = 0x52\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.Regarding.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Regarding.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Note)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedFirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedLastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.DeprecatedCount))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Regarding:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Regarding), \"ObjectReference\", \"v11.ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Related:` + strings.Replace(fmt.Sprintf(\"%v\", this.Related), \"ObjectReference\", \"v11.ObjectReference\", 1) + `,`,\n\t\t`Note:` + fmt.Sprintf(\"%v\", this.Note) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`DeprecatedSource:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedSource), \"EventSource\", \"v11.EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedFirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedFirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedLastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedLastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedCount:` + fmt.Sprintf(\"%v\", this.DeprecatedCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Regarding\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Regarding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &v11.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Note\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Note = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedFirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedFirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedLastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedLastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedCount\", wireType)\n\t\t\t}\n\t\t\tm.DeprecatedCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DeprecatedCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.events.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/events/v1\";\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // eventTime is the time when this Event was first observed. It is required.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2;\n\n  // series is data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 3;\n\n  // reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // This field cannot be empty for new Events.\n  optional string reportingController = 4;\n\n  // reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string reportingInstance = 5;\n\n  // action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string action = 6;\n\n  // reason is why the action was taken. It is human-readable.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string reason = 7;\n\n  // regarding contains the object this Event is about. In most cases it's an Object reporting controller\n  // implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n  // it acts on some changes in a ReplicaSet object.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference regarding = 8;\n\n  // related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n  // a creation or deletion of related object.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference related = 9;\n\n  // note is a human-readable description of the status of this operation.\n  // Maximal length of the note is 1kB, but libraries should be prepared to\n  // handle values up to 64kB.\n  // +optional\n  optional string note = 10;\n\n  // type is the type of this event (Normal, Warning), new types could be added in the future.\n  // It is machine-readable.\n  // This field cannot be empty for new Events.\n  optional string type = 11;\n\n  // deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.api.core.v1.EventSource deprecatedSource = 12;\n\n  // deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13;\n\n  // deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14;\n\n  // deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional int32 deprecatedCount = 15;\n}\n\n// EventList is a list of Event objects.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time. How often to update the EventSeries is up to the event reporters.\n// The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows\n// how this struct is updated on heartbeats and can guide customized reporter implementations.\nmessage EventSeries {\n  // count is the number of occurrences in this series up to the last heartbeat time.\n  optional int32 count = 1;\n\n  // lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"events.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Event{},\n\t\t&EventList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// eventTime is the time when this Event was first observed. It is required.\n\tEventTime metav1.MicroTime `json:\"eventTime\" protobuf:\"bytes,2,opt,name=eventTime\"`\n\n\t// series is data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,3,opt,name=series\"`\n\n\t// reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// This field cannot be empty for new Events.\n\tReportingController string `json:\"reportingController,omitempty\" protobuf:\"bytes,4,opt,name=reportingController\"`\n\n\t// reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tReportingInstance string `json:\"reportingInstance,omitempty\" protobuf:\"bytes,5,opt,name=reportingInstance\"`\n\n\t// action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,6,name=action\"`\n\n\t// reason is why the action was taken. It is human-readable.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,7,name=reason\"`\n\n\t// regarding contains the object this Event is about. In most cases it's an Object reporting controller\n\t// implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n\t// it acts on some changes in a ReplicaSet object.\n\t// +optional\n\tRegarding corev1.ObjectReference `json:\"regarding,omitempty\" protobuf:\"bytes,8,opt,name=regarding\"`\n\n\t// related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n\t// a creation or deletion of related object.\n\t// +optional\n\tRelated *corev1.ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,9,opt,name=related\"`\n\n\t// note is a human-readable description of the status of this operation.\n\t// Maximal length of the note is 1kB, but libraries should be prepared to\n\t// handle values up to 64kB.\n\t// +optional\n\tNote string `json:\"note,omitempty\" protobuf:\"bytes,10,opt,name=note\"`\n\n\t// type is the type of this event (Normal, Warning), new types could be added in the future.\n\t// It is machine-readable.\n\t// This field cannot be empty for new Events.\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,11,opt,name=type\"`\n\n\t// deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedSource corev1.EventSource `json:\"deprecatedSource,omitempty\" protobuf:\"bytes,12,opt,name=deprecatedSource\"`\n\t// deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedFirstTimestamp metav1.Time `json:\"deprecatedFirstTimestamp,omitempty\" protobuf:\"bytes,13,opt,name=deprecatedFirstTimestamp\"`\n\t// deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedLastTimestamp metav1.Time `json:\"deprecatedLastTimestamp,omitempty\" protobuf:\"bytes,14,opt,name=deprecatedLastTimestamp\"`\n\t// deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedCount int32 `json:\"deprecatedCount,omitempty\" protobuf:\"varint,15,opt,name=deprecatedCount\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time. How often to update the EventSeries is up to the event reporters.\n// The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows\n// how this struct is updated on heartbeats and can guide customized reporter implementations.\ntype EventSeries struct {\n\t// count is the number of occurrences in this series up to the last heartbeat time.\n\tCount int32 `json:\"count\" protobuf:\"varint,1,opt,name=count\"`\n\t// lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime\" protobuf:\"bytes,2,opt,name=lastObservedTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// EventList is a list of Event objects.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Event = map[string]string{\n\t\"\":                         \"Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":                 \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"eventTime\":                \"eventTime is the time when this Event was first observed. It is required.\",\n\t\"series\":                   \"series is data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"reportingController\":      \"reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.\",\n\t\"reportingInstance\":        \"reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"action\":                   \"action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"reason\":                   \"reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"regarding\":                \"regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.\",\n\t\"related\":                  \"related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\n\t\"note\":                     \"note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.\",\n\t\"type\":                     \"type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.\",\n\t\"deprecatedSource\":         \"deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedFirstTimestamp\": \"deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedLastTimestamp\":  \"deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedCount\":          \"deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of Event objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \\\"k8s.io/client-go/tools/events/event_broadcaster.go\\\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.\",\n\t\"count\":            \"count is the number of occurrences in this series up to the last heartbeat time.\",\n\t\"lastObservedTime\": \"lastObservedTime is the time when last Event from the series was seen before last heartbeat.\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.Regarding = in.Regarding\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(corev1.ObjectReference)\n\t\t**out = **in\n\t}\n\tout.DeprecatedSource = in.DeprecatedSource\n\tin.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp)\n\tin.DeprecatedLastTimestamp.DeepCopyInto(&out.DeprecatedLastTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=events.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/events/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4f97f691c32a5ac8, []int{0}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4f97f691c32a5ac8, []int{1}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4f97f691c32a5ac8, []int{2}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.events.v1beta1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.events.v1beta1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.events.v1beta1.EventSeries\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto\", fileDescriptor_4f97f691c32a5ac8)\n}\n\nvar fileDescriptor_4f97f691c32a5ac8 = []byte{\n\t// 779 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xcf, 0x6e, 0xdb, 0x46,\n\t0x10, 0xc6, 0xc5, 0xc4, 0x92, 0xad, 0x55, 0x12, 0xcb, 0x9b, 0x83, 0xd7, 0x2e, 0x40, 0x09, 0x0a,\n\t0x10, 0x08, 0x05, 0x4a, 0xd6, 0x41, 0x51, 0xf4, 0x56, 0x84, 0x91, 0x5b, 0x24, 0xb0, 0x1b, 0x60,\n\t0xe3, 0x53, 0xd1, 0x43, 0x56, 0xd4, 0x84, 0x66, 0x25, 0xee, 0x12, 0xbb, 0x2b, 0x01, 0xbe, 0xf5,\n\t0x52, 0xa0, 0xc7, 0x3e, 0x43, 0x6f, 0xbd, 0xf5, 0x31, 0x7c, 0xf4, 0xd1, 0x27, 0xa1, 0x66, 0x5f,\n\t0xa4, 0xe0, 0x72, 0x25, 0xca, 0xfa, 0x03, 0xab, 0xe8, 0x8d, 0x9c, 0xf9, 0xbe, 0xdf, 0xcc, 0x2e,\n\t0x47, 0x23, 0x14, 0x0c, 0xbf, 0x51, 0x5e, 0x2c, 0xfc, 0xe1, 0xb8, 0x0f, 0x92, 0x83, 0x06, 0xe5,\n\t0x4f, 0x80, 0x0f, 0x84, 0xf4, 0x6d, 0x82, 0xa5, 0xb1, 0x0f, 0x13, 0xe0, 0x5a, 0xf9, 0x93, 0x93,\n\t0x3e, 0x68, 0x76, 0xe2, 0x47, 0xc0, 0x41, 0x32, 0x0d, 0x03, 0x2f, 0x95, 0x42, 0x0b, 0x7c, 0x54,\n\t0x48, 0x3d, 0x96, 0xc6, 0x5e, 0x21, 0xf5, 0xac, 0xf4, 0xf8, 0x8b, 0x28, 0xd6, 0x97, 0xe3, 0xbe,\n\t0x17, 0x8a, 0xc4, 0x8f, 0x44, 0x24, 0x7c, 0xe3, 0xe8, 0x8f, 0x3f, 0x99, 0x37, 0xf3, 0x62, 0x9e,\n\t0x0a, 0xd2, 0x71, 0x67, 0xa1, 0x68, 0x28, 0x24, 0xf8, 0x93, 0x95, 0x6a, 0xc7, 0x5f, 0x95, 0x9a,\n\t0x84, 0x85, 0x97, 0x31, 0x07, 0x79, 0xe5, 0xa7, 0xc3, 0x28, 0x0f, 0x28, 0x3f, 0x01, 0xcd, 0xd6,\n\t0xb9, 0xfc, 0x4d, 0x2e, 0x39, 0xe6, 0x3a, 0x4e, 0x60, 0xc5, 0xf0, 0xf5, 0x43, 0x06, 0x15, 0x5e,\n\t0x42, 0xc2, 0x96, 0x7d, 0x9d, 0x3f, 0xea, 0xa8, 0x7a, 0x9a, 0x5f, 0x02, 0xfe, 0x88, 0xf6, 0xf2,\n\t0x6e, 0x06, 0x4c, 0x33, 0xe2, 0xb4, 0x9d, 0x6e, 0xe3, 0xd5, 0x97, 0x5e, 0x79, 0x53, 0x73, 0xa8,\n\t0x97, 0x0e, 0xa3, 0x3c, 0xa0, 0xbc, 0x5c, 0xed, 0x4d, 0x4e, 0xbc, 0xf7, 0xfd, 0x9f, 0x21, 0xd4,\n\t0xe7, 0xa0, 0x59, 0x80, 0xaf, 0xa7, 0xad, 0x4a, 0x36, 0x6d, 0xa1, 0x32, 0x46, 0xe7, 0x54, 0xfc,\n\t0x11, 0xd5, 0xcd, 0x7d, 0x5f, 0xc4, 0x09, 0x90, 0x47, 0xa6, 0x84, 0xbf, 0x5d, 0x89, 0xf3, 0x38,\n\t0x94, 0x22, 0xb7, 0x05, 0x07, 0xb6, 0x42, 0xfd, 0x74, 0x46, 0xa2, 0x25, 0x14, 0xbf, 0x43, 0x35,\n\t0x05, 0x32, 0x06, 0x45, 0x1e, 0x1b, 0xfc, 0x4b, 0x6f, 0xe3, 0xb7, 0xf6, 0x0c, 0xe0, 0x83, 0x51,\n\t0x07, 0x28, 0x9b, 0xb6, 0x6a, 0xc5, 0x33, 0xb5, 0x04, 0x7c, 0x8e, 0x9e, 0x4b, 0x48, 0x85, 0xd4,\n\t0x31, 0x8f, 0xde, 0x08, 0xae, 0xa5, 0x18, 0x8d, 0x40, 0x92, 0x9d, 0xb6, 0xd3, 0xad, 0x07, 0x9f,\n\t0xd9, 0x36, 0x9e, 0xd3, 0x55, 0x09, 0x5d, 0xe7, 0xc3, 0xdf, 0xa3, 0x83, 0x79, 0xf8, 0x2d, 0x57,\n\t0x9a, 0xf1, 0x10, 0x48, 0xd5, 0xc0, 0x8e, 0x2c, 0xec, 0x80, 0x2e, 0x0b, 0xe8, 0xaa, 0x07, 0xbf,\n\t0x44, 0x35, 0x16, 0xea, 0x58, 0x70, 0x52, 0x33, 0xee, 0x67, 0xd6, 0x5d, 0x7b, 0x6d, 0xa2, 0xd4,\n\t0x66, 0x73, 0x9d, 0x04, 0xa6, 0x04, 0x27, 0xbb, 0xf7, 0x75, 0xd4, 0x44, 0xa9, 0xcd, 0xe2, 0x0b,\n\t0x54, 0x97, 0x10, 0x31, 0x39, 0x88, 0x79, 0x44, 0xf6, 0xcc, 0xb5, 0xbd, 0x58, 0xbc, 0xb6, 0x7c,\n\t0xb0, 0xcb, 0xcf, 0x4c, 0xe1, 0x13, 0x48, 0xe0, 0xe1, 0xc2, 0x97, 0xa0, 0x33, 0x37, 0x2d, 0x41,\n\t0xf8, 0x1d, 0xda, 0x95, 0x30, 0xca, 0x07, 0x8d, 0xd4, 0xb7, 0x67, 0x36, 0xb2, 0x69, 0x6b, 0x97,\n\t0x16, 0x3e, 0x3a, 0x03, 0xe0, 0x36, 0xda, 0xe1, 0x42, 0x03, 0x41, 0xe6, 0x1c, 0x4f, 0x6c, 0xdd,\n\t0x9d, 0x1f, 0x84, 0x06, 0x6a, 0x32, 0xb9, 0x42, 0x5f, 0xa5, 0x40, 0x1a, 0xf7, 0x15, 0x17, 0x57,\n\t0x29, 0x50, 0x93, 0xc1, 0x80, 0x9a, 0x03, 0x48, 0x25, 0x84, 0x39, 0xf1, 0x83, 0x18, 0xcb, 0x10,\n\t0xc8, 0x13, 0xd3, 0x58, 0x6b, 0x5d, 0x63, 0xc5, 0x70, 0x18, 0x59, 0x40, 0x2c, 0xae, 0xd9, 0x5b,\n\t0x02, 0xd0, 0x15, 0x24, 0xfe, 0xcd, 0x41, 0xa4, 0x0c, 0x7e, 0x17, 0x4b, 0x65, 0x06, 0x53, 0x69,\n\t0x96, 0xa4, 0xe4, 0xa9, 0xa9, 0xf7, 0xf9, 0x76, 0x23, 0x6f, 0xa6, 0xbd, 0x6d, 0x4b, 0x93, 0xde,\n\t0x06, 0x26, 0xdd, 0x58, 0x0d, 0xff, 0xea, 0xa0, 0xc3, 0x32, 0x79, 0xc6, 0x16, 0x3b, 0x79, 0xf6,\n\t0x9f, 0x3b, 0x69, 0xd9, 0x4e, 0x0e, 0x7b, 0xeb, 0x91, 0x74, 0x53, 0x2d, 0xfc, 0x1a, 0xed, 0x97,\n\t0xa9, 0x37, 0x62, 0xcc, 0x35, 0xd9, 0x6f, 0x3b, 0xdd, 0x6a, 0x70, 0x68, 0x91, 0xfb, 0xbd, 0xfb,\n\t0x69, 0xba, 0xac, 0xef, 0xfc, 0xe5, 0xa0, 0xe2, 0xf7, 0x7e, 0x16, 0x2b, 0x8d, 0x7f, 0x5a, 0x59,\n\t0x54, 0xde, 0x76, 0x07, 0xc9, 0xdd, 0x66, 0x4d, 0x35, 0x6d, 0xe5, 0xbd, 0x59, 0x64, 0x61, 0x49,\n\t0x9d, 0xa2, 0x6a, 0xac, 0x21, 0x51, 0xe4, 0x51, 0xfb, 0x71, 0xb7, 0xf1, 0xaa, 0xfd, 0xd0, 0x06,\n\t0x09, 0x9e, 0x5a, 0x58, 0xf5, 0x6d, 0x6e, 0xa3, 0x85, 0xbb, 0xf3, 0xa7, 0x83, 0x1a, 0x0b, 0x1b,\n\t0x06, 0xbf, 0x40, 0xd5, 0xd0, 0x9c, 0xdd, 0x31, 0x67, 0x9f, 0x9b, 0x8a, 0x13, 0x17, 0x39, 0x3c,\n\t0x46, 0xcd, 0x11, 0x53, 0xfa, 0x7d, 0x5f, 0x81, 0x9c, 0xc0, 0xe0, 0xff, 0xec, 0xc9, 0xf9, 0xd0,\n\t0x9e, 0x2d, 0x01, 0xe9, 0x4a, 0x89, 0xe0, 0xdb, 0xeb, 0x3b, 0xb7, 0x72, 0x73, 0xe7, 0x56, 0x6e,\n\t0xef, 0xdc, 0xca, 0x2f, 0x99, 0xeb, 0x5c, 0x67, 0xae, 0x73, 0x93, 0xb9, 0xce, 0x6d, 0xe6, 0x3a,\n\t0x7f, 0x67, 0xae, 0xf3, 0xfb, 0x3f, 0x6e, 0xe5, 0xc7, 0xa3, 0x8d, 0xff, 0xb0, 0xff, 0x06, 0x00,\n\t0x00, 0xff, 0xff, 0xae, 0x19, 0x45, 0xf5, 0x96, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedCount))\n\ti--\n\tdAtA[i] = 0x78\n\t{\n\t\tsize, err := m.DeprecatedLastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x72\n\t{\n\t\tsize, err := m.DeprecatedFirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x6a\n\t{\n\t\tsize, err := m.DeprecatedSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x62\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.Note)\n\tcopy(dAtA[i:], m.Note)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Note)))\n\ti--\n\tdAtA[i] = 0x52\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.Regarding.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Regarding.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Note)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedFirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedLastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.DeprecatedCount))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Regarding:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Regarding), \"ObjectReference\", \"v11.ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Related:` + strings.Replace(fmt.Sprintf(\"%v\", this.Related), \"ObjectReference\", \"v11.ObjectReference\", 1) + `,`,\n\t\t`Note:` + fmt.Sprintf(\"%v\", this.Note) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`DeprecatedSource:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedSource), \"EventSource\", \"v11.EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedFirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedFirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedLastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedLastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedCount:` + fmt.Sprintf(\"%v\", this.DeprecatedCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Regarding\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Regarding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &v11.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Note\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Note = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedFirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedFirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedLastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedLastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedCount\", wireType)\n\t\t\t}\n\t\t\tm.DeprecatedCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DeprecatedCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.events.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/events/v1beta1\";\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // eventTime is the time when this Event was first observed. It is required.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2;\n\n  // series is data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 3;\n\n  // reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // This field cannot be empty for new Events.\n  // +optional\n  optional string reportingController = 4;\n\n  // reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  // +optional\n  optional string reportingInstance = 5;\n\n  // action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n  // This field can have at most 128 characters.\n  // +optional\n  optional string action = 6;\n\n  // reason is why the action was taken. It is human-readable.\n  // This field can have at most 128 characters.\n  // +optional\n  optional string reason = 7;\n\n  // regarding contains the object this Event is about. In most cases it's an Object reporting controller\n  // implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n  // it acts on some changes in a ReplicaSet object.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference regarding = 8;\n\n  // related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n  // a creation or deletion of related object.\n  // +optional\n  optional k8s.io.api.core.v1.ObjectReference related = 9;\n\n  // note is a human-readable description of the status of this operation.\n  // Maximal length of the note is 1kB, but libraries should be prepared to\n  // handle values up to 64kB.\n  // +optional\n  optional string note = 10;\n\n  // type is the type of this event (Normal, Warning), new types could be added in the future.\n  // It is machine-readable.\n  // +optional\n  optional string type = 11;\n\n  // deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.api.core.v1.EventSource deprecatedSource = 12;\n\n  // deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13;\n\n  // deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14;\n\n  // deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional int32 deprecatedCount = 15;\n}\n\n// EventList is a list of Event objects.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\nmessage EventSeries {\n  // count is the number of occurrences in this series up to the last heartbeat time.\n  optional int32 count = 1;\n\n  // lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"events.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Event{},\n\t\t&EventList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// eventTime is the time when this Event was first observed. It is required.\n\tEventTime metav1.MicroTime `json:\"eventTime\" protobuf:\"bytes,2,opt,name=eventTime\"`\n\n\t// series is data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,3,opt,name=series\"`\n\n\t// reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// This field cannot be empty for new Events.\n\t// +optional\n\tReportingController string `json:\"reportingController,omitempty\" protobuf:\"bytes,4,opt,name=reportingController\"`\n\n\t// reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\t// +optional\n\tReportingInstance string `json:\"reportingInstance,omitempty\" protobuf:\"bytes,5,opt,name=reportingInstance\"`\n\n\t// action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n\t// This field can have at most 128 characters.\n\t// +optional\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,6,name=action\"`\n\n\t// reason is why the action was taken. It is human-readable.\n\t// This field can have at most 128 characters.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,7,name=reason\"`\n\n\t// regarding contains the object this Event is about. In most cases it's an Object reporting controller\n\t// implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n\t// it acts on some changes in a ReplicaSet object.\n\t// +optional\n\tRegarding corev1.ObjectReference `json:\"regarding,omitempty\" protobuf:\"bytes,8,opt,name=regarding\"`\n\n\t// related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n\t// a creation or deletion of related object.\n\t// +optional\n\tRelated *corev1.ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,9,opt,name=related\"`\n\n\t// note is a human-readable description of the status of this operation.\n\t// Maximal length of the note is 1kB, but libraries should be prepared to\n\t// handle values up to 64kB.\n\t// +optional\n\tNote string `json:\"note,omitempty\" protobuf:\"bytes,10,opt,name=note\"`\n\n\t// type is the type of this event (Normal, Warning), new types could be added in the future.\n\t// It is machine-readable.\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,11,opt,name=type\"`\n\n\t// deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedSource corev1.EventSource `json:\"deprecatedSource,omitempty\" protobuf:\"bytes,12,opt,name=deprecatedSource\"`\n\t// deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedFirstTimestamp metav1.Time `json:\"deprecatedFirstTimestamp,omitempty\" protobuf:\"bytes,13,opt,name=deprecatedFirstTimestamp\"`\n\t// deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedLastTimestamp metav1.Time `json:\"deprecatedLastTimestamp,omitempty\" protobuf:\"bytes,14,opt,name=deprecatedLastTimestamp\"`\n\t// deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedCount int32 `json:\"deprecatedCount,omitempty\" protobuf:\"varint,15,opt,name=deprecatedCount\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\ntype EventSeries struct {\n\t// count is the number of occurrences in this series up to the last heartbeat time.\n\tCount int32 `json:\"count\" protobuf:\"varint,1,opt,name=count\"`\n\t// lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime\" protobuf:\"bytes,2,opt,name=lastObservedTime\"`\n\n\t// +k8s:deprecated=state,protobuf=3\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// EventList is a list of Event objects.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Event = map[string]string{\n\t\"\":                         \"Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":                 \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"eventTime\":                \"eventTime is the time when this Event was first observed. It is required.\",\n\t\"series\":                   \"series is data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"reportingController\":      \"reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.\",\n\t\"reportingInstance\":        \"reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"action\":                   \"action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.\",\n\t\"reason\":                   \"reason is why the action was taken. It is human-readable. This field can have at most 128 characters.\",\n\t\"regarding\":                \"regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.\",\n\t\"related\":                  \"related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\n\t\"note\":                     \"note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.\",\n\t\"type\":                     \"type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.\",\n\t\"deprecatedSource\":         \"deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedFirstTimestamp\": \"deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedLastTimestamp\":  \"deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedCount\":          \"deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of Event objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\",\n\t\"count\":            \"count is the number of occurrences in this series up to the last heartbeat time.\",\n\t\"lastObservedTime\": \"lastObservedTime is the time when last Event from the series was seen before last heartbeat.\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.Regarding = in.Regarding\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(v1.ObjectReference)\n\t\t**out = **in\n\t}\n\tout.DeprecatedSource = in.DeprecatedSource\n\tin.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp)\n\tin.DeprecatedLastTimestamp.DeepCopyInto(&out.DeprecatedLastTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Event) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Event) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Event) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EventList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EventList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EventList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/extensions/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/extensions/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{0}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{1}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{2}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{3}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{4}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{5}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{6}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{7}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{8}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentRollback) Reset()      { *m = DeploymentRollback{} }\nfunc (*DeploymentRollback) ProtoMessage() {}\nfunc (*DeploymentRollback) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{9}\n}\nfunc (m *DeploymentRollback) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentRollback) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentRollback) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentRollback.Merge(m, src)\n}\nfunc (m *DeploymentRollback) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentRollback) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentRollback.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentRollback proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{10}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{11}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{12}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{13}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{14}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IPBlock) Reset()      { *m = IPBlock{} }\nfunc (*IPBlock) ProtoMessage() {}\nfunc (*IPBlock) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{15}\n}\nfunc (m *IPBlock) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPBlock) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPBlock.Merge(m, src)\n}\nfunc (m *IPBlock) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPBlock) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPBlock.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPBlock proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{16}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{17}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{18}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{19}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{20}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{21}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{22}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{23}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{24}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{25}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{26}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc (m *NetworkPolicy) Reset()      { *m = NetworkPolicy{} }\nfunc (*NetworkPolicy) ProtoMessage() {}\nfunc (*NetworkPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{27}\n}\nfunc (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicy.Merge(m, src)\n}\nfunc (m *NetworkPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyEgressRule) Reset()      { *m = NetworkPolicyEgressRule{} }\nfunc (*NetworkPolicyEgressRule) ProtoMessage() {}\nfunc (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{28}\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyEgressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyEgressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyEgressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyEgressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyIngressRule) Reset()      { *m = NetworkPolicyIngressRule{} }\nfunc (*NetworkPolicyIngressRule) ProtoMessage() {}\nfunc (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{29}\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyIngressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyIngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyIngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyIngressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyList) Reset()      { *m = NetworkPolicyList{} }\nfunc (*NetworkPolicyList) ProtoMessage() {}\nfunc (*NetworkPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{30}\n}\nfunc (m *NetworkPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyList.Merge(m, src)\n}\nfunc (m *NetworkPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyList proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPeer) Reset()      { *m = NetworkPolicyPeer{} }\nfunc (*NetworkPolicyPeer) ProtoMessage() {}\nfunc (*NetworkPolicyPeer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{31}\n}\nfunc (m *NetworkPolicyPeer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPeer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPeer.Merge(m, src)\n}\nfunc (m *NetworkPolicyPeer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPeer) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPeer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPeer proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPort) Reset()      { *m = NetworkPolicyPort{} }\nfunc (*NetworkPolicyPort) ProtoMessage() {}\nfunc (*NetworkPolicyPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{32}\n}\nfunc (m *NetworkPolicyPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPort.Merge(m, src)\n}\nfunc (m *NetworkPolicyPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPort proto.InternalMessageInfo\n\nfunc (m *NetworkPolicySpec) Reset()      { *m = NetworkPolicySpec{} }\nfunc (*NetworkPolicySpec) ProtoMessage() {}\nfunc (*NetworkPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{33}\n}\nfunc (m *NetworkPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicySpec.Merge(m, src)\n}\nfunc (m *NetworkPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyStatus) Reset()      { *m = NetworkPolicyStatus{} }\nfunc (*NetworkPolicyStatus) ProtoMessage() {}\nfunc (*NetworkPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{34}\n}\nfunc (m *NetworkPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyStatus.Merge(m, src)\n}\nfunc (m *NetworkPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyStatus proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{35}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{36}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{37}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{38}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{39}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollbackConfig) Reset()      { *m = RollbackConfig{} }\nfunc (*RollbackConfig) ProtoMessage() {}\nfunc (*RollbackConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{40}\n}\nfunc (m *RollbackConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollbackConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollbackConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollbackConfig.Merge(m, src)\n}\nfunc (m *RollbackConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollbackConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollbackConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollbackConfig proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{41}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{42}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{43}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{44}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cdc93917efc28165, []int{45}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.extensions.v1beta1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentList\")\n\tproto.RegisterType((*DeploymentRollback)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentRollback\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentRollback.UpdatedAnnotationsEntry\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentStrategy\")\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.extensions.v1beta1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.extensions.v1beta1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*IPBlock)(nil), \"k8s.io.api.extensions.v1beta1.IPBlock\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.extensions.v1beta1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.extensions.v1beta1.IngressBackend\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.extensions.v1beta1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.extensions.v1beta1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.extensions.v1beta1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.extensions.v1beta1.IngressRuleValue\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.extensions.v1beta1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.extensions.v1beta1.IngressTLS\")\n\tproto.RegisterType((*NetworkPolicy)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicy\")\n\tproto.RegisterType((*NetworkPolicyEgressRule)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyEgressRule\")\n\tproto.RegisterType((*NetworkPolicyIngressRule)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyIngressRule\")\n\tproto.RegisterType((*NetworkPolicyList)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyList\")\n\tproto.RegisterType((*NetworkPolicyPeer)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyPeer\")\n\tproto.RegisterType((*NetworkPolicyPort)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyPort\")\n\tproto.RegisterType((*NetworkPolicySpec)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicySpec\")\n\tproto.RegisterType((*NetworkPolicyStatus)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyStatus\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetStatus\")\n\tproto.RegisterType((*RollbackConfig)(nil), \"k8s.io.api.extensions.v1beta1.RollbackConfig\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.extensions.v1beta1.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.extensions.v1beta1.RollingUpdateDeployment\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.extensions.v1beta1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.extensions.v1beta1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.extensions.v1beta1.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.extensions.v1beta1.ScaleStatus.SelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/extensions/v1beta1/generated.proto\", fileDescriptor_cdc93917efc28165)\n}\n\nvar fileDescriptor_cdc93917efc28165 = []byte{\n\t// 2890 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47,\n\t0xf5, 0xdf, 0x9e, 0xf1, 0xd8, 0xe3, 0xe7, 0xb5, 0xbd, 0x5b, 0xeb, 0xac, 0x1d, 0xef, 0x37, 0x76,\n\t0xd4, 0x5f, 0x11, 0x36, 0x61, 0x33, 0xc3, 0x6e, 0x92, 0x25, 0x3f, 0xa4, 0x84, 0x1d, 0xef, 0x26,\n\t0xeb, 0xc4, 0x1e, 0x4f, 0x6a, 0xc6, 0x09, 0x8a, 0x08, 0xd0, 0xee, 0x29, 0x8f, 0x3b, 0xee, 0xe9,\n\t0x1e, 0x75, 0xd7, 0x98, 0x35, 0x27, 0x10, 0x5c, 0x72, 0x82, 0x4b, 0x20, 0x47, 0x10, 0x12, 0x57,\n\t0xae, 0x1c, 0x42, 0x04, 0x22, 0x48, 0x2b, 0xc4, 0x21, 0x12, 0x07, 0x72, 0xb2, 0x88, 0x73, 0x42,\n\t0xfc, 0x03, 0x68, 0x4f, 0xa8, 0x7e, 0x74, 0xf5, 0x6f, 0xbb, 0xc7, 0x38, 0x16, 0x41, 0x9c, 0x3c,\n\t0x5d, 0xef, 0xbd, 0x4f, 0xbd, 0xaa, 0x7a, 0xf5, 0xde, 0xa7, 0xba, 0xda, 0xf0, 0xf2, 0xee, 0xb3,\n\t0x7e, 0xcd, 0x72, 0xeb, 0xbb, 0xc3, 0x2d, 0xe2, 0x39, 0x84, 0x12, 0xbf, 0xbe, 0x47, 0x9c, 0xae,\n\t0xeb, 0xd5, 0xa5, 0xc0, 0x18, 0x58, 0x75, 0x72, 0x8f, 0x12, 0xc7, 0xb7, 0x5c, 0xc7, 0xaf, 0xef,\n\t0x5d, 0xdf, 0x22, 0xd4, 0xb8, 0x5e, 0xef, 0x11, 0x87, 0x78, 0x06, 0x25, 0xdd, 0xda, 0xc0, 0x73,\n\t0xa9, 0x8b, 0x1e, 0x11, 0xea, 0x35, 0x63, 0x60, 0xd5, 0x42, 0xf5, 0x9a, 0x54, 0x5f, 0x7c, 0xb2,\n\t0x67, 0xd1, 0x9d, 0xe1, 0x56, 0xcd, 0x74, 0xfb, 0xf5, 0x9e, 0xdb, 0x73, 0xeb, 0xdc, 0x6a, 0x6b,\n\t0xb8, 0xcd, 0x9f, 0xf8, 0x03, 0xff, 0x25, 0xd0, 0x16, 0xf5, 0x48, 0xe7, 0xa6, 0xeb, 0x91, 0xfa,\n\t0x5e, 0xaa, 0xc7, 0xc5, 0xa7, 0x43, 0x9d, 0xbe, 0x61, 0xee, 0x58, 0x0e, 0xf1, 0xf6, 0xeb, 0x83,\n\t0xdd, 0x1e, 0x6b, 0xf0, 0xeb, 0x7d, 0x42, 0x8d, 0x2c, 0xab, 0x7a, 0x9e, 0x95, 0x37, 0x74, 0xa8,\n\t0xd5, 0x27, 0x29, 0x83, 0x9b, 0xc7, 0x19, 0xf8, 0xe6, 0x0e, 0xe9, 0x1b, 0x29, 0xbb, 0xa7, 0xf2,\n\t0xec, 0x86, 0xd4, 0xb2, 0xeb, 0x96, 0x43, 0x7d, 0xea, 0x25, 0x8d, 0xf4, 0xf7, 0x4a, 0x30, 0x79,\n\t0xdb, 0x20, 0x7d, 0xd7, 0x69, 0x13, 0x8a, 0xbe, 0x03, 0x55, 0x36, 0x8c, 0xae, 0x41, 0x8d, 0x05,\n\t0xed, 0x51, 0xed, 0xea, 0xd4, 0x8d, 0xaf, 0xd6, 0xc2, 0x69, 0x56, 0xa8, 0xb5, 0xc1, 0x6e, 0x8f,\n\t0x35, 0xf8, 0x35, 0xa6, 0x5d, 0xdb, 0xbb, 0x5e, 0xdb, 0xd8, 0x7a, 0x87, 0x98, 0x74, 0x9d, 0x50,\n\t0xa3, 0x81, 0xee, 0x1f, 0x2c, 0x9f, 0x3b, 0x3c, 0x58, 0x86, 0xb0, 0x0d, 0x2b, 0x54, 0xd4, 0x84,\n\t0x31, 0x7f, 0x40, 0xcc, 0x85, 0x12, 0x47, 0xbf, 0x56, 0x3b, 0x72, 0x11, 0x6b, 0xca, 0xb3, 0xf6,\n\t0x80, 0x98, 0x8d, 0xf3, 0x12, 0x79, 0x8c, 0x3d, 0x61, 0x8e, 0x83, 0xde, 0x80, 0x71, 0x9f, 0x1a,\n\t0x74, 0xe8, 0x2f, 0x94, 0x39, 0x62, 0xad, 0x30, 0x22, 0xb7, 0x6a, 0xcc, 0x48, 0xcc, 0x71, 0xf1,\n\t0x8c, 0x25, 0x9a, 0xfe, 0xf7, 0x12, 0x20, 0xa5, 0xbb, 0xe2, 0x3a, 0x5d, 0x8b, 0x5a, 0xae, 0x83,\n\t0x9e, 0x87, 0x31, 0xba, 0x3f, 0x20, 0x7c, 0x72, 0x26, 0x1b, 0x8f, 0x05, 0x0e, 0x75, 0xf6, 0x07,\n\t0xe4, 0xc1, 0xc1, 0xf2, 0xe5, 0xb4, 0x05, 0x93, 0x60, 0x6e, 0x83, 0xd6, 0x94, 0xab, 0x25, 0x6e,\n\t0xfd, 0x74, 0xbc, 0xeb, 0x07, 0x07, 0xcb, 0x19, 0x41, 0x58, 0x53, 0x48, 0x71, 0x07, 0xd1, 0x1e,\n\t0x20, 0xdb, 0xf0, 0x69, 0xc7, 0x33, 0x1c, 0x5f, 0xf4, 0x64, 0xf5, 0x89, 0x9c, 0x84, 0x27, 0x8a,\n\t0x2d, 0x1a, 0xb3, 0x68, 0x2c, 0x4a, 0x2f, 0xd0, 0x5a, 0x0a, 0x0d, 0x67, 0xf4, 0x80, 0x1e, 0x83,\n\t0x71, 0x8f, 0x18, 0xbe, 0xeb, 0x2c, 0x8c, 0xf1, 0x51, 0xa8, 0x09, 0xc4, 0xbc, 0x15, 0x4b, 0x29,\n\t0x7a, 0x1c, 0x26, 0xfa, 0xc4, 0xf7, 0x8d, 0x1e, 0x59, 0xa8, 0x70, 0xc5, 0x59, 0xa9, 0x38, 0xb1,\n\t0x2e, 0x9a, 0x71, 0x20, 0xd7, 0x3f, 0xd0, 0x60, 0x5a, 0xcd, 0xdc, 0x9a, 0xe5, 0x53, 0xf4, 0xcd,\n\t0x54, 0x1c, 0xd6, 0x8a, 0x0d, 0x89, 0x59, 0xf3, 0x28, 0xbc, 0x20, 0x7b, 0xab, 0x06, 0x2d, 0x91,\n\t0x18, 0x5c, 0x87, 0x8a, 0x45, 0x49, 0x9f, 0xad, 0x43, 0xf9, 0xea, 0xd4, 0x8d, 0xab, 0x45, 0x43,\n\t0xa6, 0x31, 0x2d, 0x41, 0x2b, 0xab, 0xcc, 0x1c, 0x0b, 0x14, 0xfd, 0xa7, 0x63, 0x11, 0xf7, 0x59,\n\t0x68, 0xa2, 0xb7, 0xa1, 0xea, 0x13, 0x9b, 0x98, 0xd4, 0xf5, 0xa4, 0xfb, 0x4f, 0x15, 0x74, 0xdf,\n\t0xd8, 0x22, 0x76, 0x5b, 0x9a, 0x36, 0xce, 0x33, 0xff, 0x83, 0x27, 0xac, 0x20, 0xd1, 0xeb, 0x50,\n\t0xa5, 0xa4, 0x3f, 0xb0, 0x0d, 0x4a, 0xe4, 0x3e, 0xfa, 0xff, 0xe8, 0x10, 0x58, 0xe4, 0x30, 0xb0,\n\t0x96, 0xdb, 0xed, 0x48, 0x35, 0xbe, 0x7d, 0xd4, 0x94, 0x04, 0xad, 0x58, 0xc1, 0xa0, 0x3d, 0x98,\n\t0x19, 0x0e, 0xba, 0x4c, 0x93, 0xb2, 0xec, 0xd0, 0xdb, 0x97, 0x91, 0x74, 0xb3, 0xe8, 0xdc, 0x6c,\n\t0xc6, 0xac, 0x1b, 0x97, 0x65, 0x5f, 0x33, 0xf1, 0x76, 0x9c, 0xe8, 0x05, 0xdd, 0x82, 0xd9, 0xbe,\n\t0xe5, 0x60, 0x62, 0x74, 0xf7, 0xdb, 0xc4, 0x74, 0x9d, 0xae, 0xcf, 0xc3, 0xaa, 0xd2, 0x98, 0x97,\n\t0x00, 0xb3, 0xeb, 0x71, 0x31, 0x4e, 0xea, 0xa3, 0x57, 0x01, 0x05, 0xc3, 0x78, 0x45, 0x24, 0x37,\n\t0xcb, 0x75, 0x78, 0xcc, 0x95, 0xc3, 0xe0, 0xee, 0xa4, 0x34, 0x70, 0x86, 0x15, 0x5a, 0x83, 0x39,\n\t0x8f, 0xec, 0x59, 0x6c, 0x8c, 0x77, 0x2d, 0x9f, 0xba, 0xde, 0xfe, 0x9a, 0xd5, 0xb7, 0xe8, 0xc2,\n\t0x38, 0xf7, 0x69, 0xe1, 0xf0, 0x60, 0x79, 0x0e, 0x67, 0xc8, 0x71, 0xa6, 0x95, 0xfe, 0xb3, 0x71,\n\t0x98, 0x4d, 0xe4, 0x1b, 0xf4, 0x06, 0x5c, 0x36, 0x87, 0x9e, 0x47, 0x1c, 0xda, 0x1c, 0xf6, 0xb7,\n\t0x88, 0xd7, 0x36, 0x77, 0x48, 0x77, 0x68, 0x93, 0x2e, 0x0f, 0x94, 0x4a, 0x63, 0x49, 0x7a, 0x7c,\n\t0x79, 0x25, 0x53, 0x0b, 0xe7, 0x58, 0xb3, 0x59, 0x70, 0x78, 0xd3, 0xba, 0xe5, 0xfb, 0x0a, 0xb3,\n\t0xc4, 0x31, 0xd5, 0x2c, 0x34, 0x53, 0x1a, 0x38, 0xc3, 0x8a, 0xf9, 0xd8, 0x25, 0xbe, 0xe5, 0x91,\n\t0x6e, 0xd2, 0xc7, 0x72, 0xdc, 0xc7, 0xdb, 0x99, 0x5a, 0x38, 0xc7, 0x1a, 0x3d, 0x03, 0x53, 0xa2,\n\t0x37, 0xbe, 0x7e, 0x72, 0xa1, 0x2f, 0x49, 0xb0, 0xa9, 0x66, 0x28, 0xc2, 0x51, 0x3d, 0x36, 0x34,\n\t0x77, 0xcb, 0x27, 0xde, 0x1e, 0xe9, 0xe6, 0x2f, 0xf0, 0x46, 0x4a, 0x03, 0x67, 0x58, 0xb1, 0xa1,\n\t0x89, 0x08, 0x4c, 0x0d, 0x6d, 0x3c, 0x3e, 0xb4, 0xcd, 0x4c, 0x2d, 0x9c, 0x63, 0xcd, 0xe2, 0x58,\n\t0xb8, 0x7c, 0x6b, 0xcf, 0xb0, 0x6c, 0x63, 0xcb, 0x26, 0x0b, 0x13, 0xf1, 0x38, 0x6e, 0xc6, 0xc5,\n\t0x38, 0xa9, 0x8f, 0x5e, 0x81, 0x8b, 0xa2, 0x69, 0xd3, 0x31, 0x14, 0x48, 0x95, 0x83, 0x3c, 0x2c,\n\t0x41, 0x2e, 0x36, 0x93, 0x0a, 0x38, 0x6d, 0x83, 0x9e, 0x87, 0x19, 0xd3, 0xb5, 0x6d, 0x1e, 0x8f,\n\t0x2b, 0xee, 0xd0, 0xa1, 0x0b, 0x93, 0x1c, 0x05, 0xb1, 0xfd, 0xb8, 0x12, 0x93, 0xe0, 0x84, 0x26,\n\t0x22, 0x00, 0x66, 0x50, 0x70, 0xfc, 0x05, 0xe0, 0xf9, 0xf1, 0x7a, 0xd1, 0x1c, 0xa0, 0x4a, 0x55,\n\t0xc8, 0x01, 0x54, 0x93, 0x8f, 0x23, 0xc0, 0xfa, 0x9f, 0x34, 0x98, 0xcf, 0x49, 0x1d, 0xe8, 0xa5,\n\t0x58, 0x89, 0xfd, 0x4a, 0xa2, 0xc4, 0x5e, 0xc9, 0x31, 0x8b, 0xd4, 0x59, 0x07, 0xa6, 0x3d, 0x36,\n\t0x2a, 0xa7, 0x27, 0x54, 0x64, 0x8e, 0x7c, 0xe6, 0x98, 0x61, 0xe0, 0xa8, 0x4d, 0x98, 0xf3, 0x2f,\n\t0x1e, 0x1e, 0x2c, 0x4f, 0xc7, 0x64, 0x38, 0x0e, 0xaf, 0xbf, 0x5f, 0x02, 0xb8, 0x4d, 0x06, 0xb6,\n\t0xbb, 0xdf, 0x27, 0xce, 0x59, 0x70, 0xa8, 0x8d, 0x18, 0x87, 0x7a, 0xf2, 0xb8, 0xe5, 0x51, 0xae,\n\t0xe5, 0x92, 0xa8, 0x37, 0x13, 0x24, 0xaa, 0x5e, 0x1c, 0xf2, 0x68, 0x16, 0xf5, 0xd7, 0x32, 0x5c,\n\t0x0a, 0x95, 0x43, 0x1a, 0xf5, 0x42, 0x6c, 0x8d, 0xbf, 0x9c, 0x58, 0xe3, 0xf9, 0x0c, 0x93, 0xcf,\n\t0x8d, 0x47, 0xbd, 0x03, 0x33, 0x8c, 0xe5, 0x88, 0xb5, 0xe4, 0x1c, 0x6a, 0x7c, 0x64, 0x0e, 0xa5,\n\t0xaa, 0xdd, 0x5a, 0x0c, 0x09, 0x27, 0x90, 0x73, 0x38, 0xdb, 0xc4, 0x17, 0x91, 0xb3, 0x7d, 0xa8,\n\t0xc1, 0x4c, 0xb8, 0x4c, 0x67, 0x40, 0xda, 0x9a, 0x71, 0xd2, 0xf6, 0x78, 0xe1, 0x10, 0xcd, 0x61,\n\t0x6d, 0xff, 0x64, 0x04, 0x5f, 0x29, 0xb1, 0x0d, 0xbe, 0x65, 0x98, 0xbb, 0xe8, 0x51, 0x18, 0x73,\n\t0x8c, 0x7e, 0x10, 0x99, 0x6a, 0xb3, 0x34, 0x8d, 0x3e, 0xc1, 0x5c, 0x82, 0xde, 0xd3, 0x00, 0xc9,\n\t0x2a, 0x70, 0xcb, 0x71, 0x5c, 0x6a, 0x88, 0x5c, 0x29, 0xdc, 0x5a, 0x2d, 0xec, 0x56, 0xd0, 0x63,\n\t0x6d, 0x33, 0x85, 0x75, 0xc7, 0xa1, 0xde, 0x7e, 0xb8, 0xc8, 0x69, 0x05, 0x9c, 0xe1, 0x00, 0x32,\n\t0x00, 0x3c, 0x89, 0xd9, 0x71, 0xe5, 0x46, 0x7e, 0xb2, 0x40, 0xce, 0x63, 0x06, 0x2b, 0xae, 0xb3,\n\t0x6d, 0xf5, 0xc2, 0xb4, 0x83, 0x15, 0x10, 0x8e, 0x80, 0x2e, 0xde, 0x81, 0xf9, 0x1c, 0x6f, 0xd1,\n\t0x05, 0x28, 0xef, 0x92, 0x7d, 0x31, 0x6d, 0x98, 0xfd, 0x44, 0x73, 0x50, 0xd9, 0x33, 0xec, 0xa1,\n\t0x48, 0xbf, 0x93, 0x58, 0x3c, 0x3c, 0x5f, 0x7a, 0x56, 0xd3, 0x3f, 0xa8, 0x44, 0x63, 0x87, 0x33,\n\t0xe6, 0xab, 0x50, 0xf5, 0xc8, 0xc0, 0xb6, 0x4c, 0xc3, 0x97, 0x44, 0x88, 0x93, 0x5f, 0x2c, 0xdb,\n\t0xb0, 0x92, 0xc6, 0xb8, 0x75, 0xe9, 0xf3, 0xe5, 0xd6, 0xe5, 0xd3, 0xe1, 0xd6, 0xdf, 0x86, 0xaa,\n\t0x1f, 0xb0, 0xea, 0x31, 0x0e, 0x79, 0x7d, 0x84, 0xfc, 0x2a, 0x09, 0xb5, 0xea, 0x40, 0x51, 0x69,\n\t0x05, 0x9a, 0x45, 0xa2, 0x2b, 0x23, 0x92, 0xe8, 0x53, 0x25, 0xbe, 0x2c, 0xdf, 0x0c, 0x8c, 0xa1,\n\t0x4f, 0xba, 0x3c, 0xb7, 0x55, 0xc3, 0x7c, 0xd3, 0xe2, 0xad, 0x58, 0x4a, 0xd1, 0xdb, 0xb1, 0x90,\n\t0xad, 0x9e, 0x24, 0x64, 0x67, 0xf2, 0xc3, 0x15, 0x6d, 0xc2, 0xfc, 0xc0, 0x73, 0x7b, 0x1e, 0xf1,\n\t0xfd, 0xdb, 0xc4, 0xe8, 0xda, 0x96, 0x43, 0x82, 0xf9, 0x11, 0x8c, 0xe8, 0xca, 0xe1, 0xc1, 0xf2,\n\t0x7c, 0x2b, 0x5b, 0x05, 0xe7, 0xd9, 0xea, 0xf7, 0xc7, 0xe0, 0x42, 0xb2, 0x02, 0xe6, 0x90, 0x54,\n\t0xed, 0x44, 0x24, 0xf5, 0x5a, 0x64, 0x33, 0x08, 0x06, 0xaf, 0x56, 0x3f, 0x63, 0x43, 0xdc, 0x82,\n\t0x59, 0x99, 0x0d, 0x02, 0xa1, 0xa4, 0xe9, 0x6a, 0xf5, 0x37, 0xe3, 0x62, 0x9c, 0xd4, 0x47, 0x2f,\n\t0xc0, 0xb4, 0xc7, 0x79, 0x77, 0x00, 0x20, 0xb8, 0xeb, 0x43, 0x12, 0x60, 0x1a, 0x47, 0x85, 0x38,\n\t0xae, 0xcb, 0x78, 0x6b, 0x48, 0x47, 0x03, 0x80, 0xb1, 0x38, 0x6f, 0xbd, 0x95, 0x54, 0xc0, 0x69,\n\t0x1b, 0xb4, 0x0e, 0x97, 0x86, 0x4e, 0x1a, 0x4a, 0x84, 0xf2, 0x15, 0x09, 0x75, 0x69, 0x33, 0xad,\n\t0x82, 0xb3, 0xec, 0xd0, 0x76, 0x8c, 0xca, 0x8e, 0xf3, 0xf4, 0x7c, 0xa3, 0xf0, 0xc6, 0x2b, 0xcc,\n\t0x65, 0x33, 0xe8, 0x76, 0xb5, 0x28, 0xdd, 0xd6, 0x7f, 0xaf, 0x45, 0x8b, 0x90, 0xa2, 0xc0, 0xc7,\n\t0xbd, 0x65, 0x4a, 0x59, 0x44, 0xd8, 0x91, 0x9b, 0xcd, 0x7e, 0x6f, 0x8e, 0xc4, 0x7e, 0xc3, 0xe2,\n\t0x79, 0x3c, 0xfd, 0xfd, 0x83, 0x06, 0xb3, 0x77, 0x3b, 0x9d, 0xd6, 0xaa, 0xc3, 0x77, 0x4b, 0xcb,\n\t0xa0, 0x3b, 0xac, 0x8a, 0x0e, 0x0c, 0xba, 0x93, 0xac, 0xa2, 0x4c, 0x86, 0xb9, 0x04, 0x3d, 0x0d,\n\t0x55, 0xf6, 0x97, 0x39, 0xce, 0xc3, 0x75, 0x92, 0x27, 0x99, 0x6a, 0x4b, 0xb6, 0x3d, 0x88, 0xfc,\n\t0xc6, 0x4a, 0x13, 0x7d, 0x03, 0x26, 0xd8, 0xde, 0x26, 0x4e, 0xb7, 0x20, 0xf9, 0x95, 0x4e, 0x35,\n\t0x84, 0x51, 0xc8, 0x67, 0x64, 0x03, 0x0e, 0xe0, 0xf4, 0x5d, 0x98, 0x8b, 0x0c, 0x02, 0x0f, 0x6d,\n\t0xf2, 0x06, 0xab, 0x57, 0xa8, 0x0d, 0x15, 0xd6, 0x3b, 0xab, 0x4a, 0xe5, 0x02, 0xaf, 0x17, 0x13,\n\t0x13, 0x11, 0x72, 0x0f, 0xf6, 0xe4, 0x63, 0x81, 0xa5, 0x6f, 0xc0, 0xc4, 0x6a, 0xab, 0x61, 0xbb,\n\t0x82, 0x6f, 0x98, 0x56, 0xd7, 0x4b, 0xce, 0xd4, 0xca, 0xea, 0x6d, 0x8c, 0xb9, 0x04, 0xe9, 0x30,\n\t0x4e, 0xee, 0x99, 0x64, 0x40, 0x39, 0xc5, 0x98, 0x6c, 0x00, 0x4b, 0xa4, 0x77, 0x78, 0x0b, 0x96,\n\t0x12, 0xfd, 0xc7, 0x25, 0x98, 0x90, 0xdd, 0x9e, 0xc1, 0xf9, 0x63, 0x2d, 0x76, 0xfe, 0x78, 0xa2,\n\t0xd8, 0x12, 0xe4, 0x1e, 0x3e, 0x3a, 0x89, 0xc3, 0xc7, 0xb5, 0x82, 0x78, 0x47, 0x9f, 0x3c, 0xde,\n\t0x2d, 0xc1, 0x4c, 0x7c, 0xf1, 0xd1, 0x33, 0x30, 0xc5, 0x52, 0xad, 0x65, 0x92, 0x66, 0xc8, 0xf0,\n\t0xd4, 0xeb, 0x87, 0x76, 0x28, 0xc2, 0x51, 0x3d, 0xd4, 0x53, 0x66, 0x2d, 0xd7, 0xa3, 0x72, 0xd0,\n\t0xf9, 0x53, 0x3a, 0xa4, 0x96, 0x5d, 0x13, 0x2f, 0xdb, 0x6b, 0xab, 0x0e, 0xdd, 0xf0, 0xda, 0xd4,\n\t0xb3, 0x9c, 0x5e, 0xaa, 0x23, 0x06, 0x86, 0xa3, 0xc8, 0xe8, 0x4d, 0x96, 0xf6, 0x7d, 0x77, 0xe8,\n\t0x99, 0x24, 0x8b, 0xbe, 0x05, 0xd4, 0x83, 0x6d, 0x84, 0xee, 0x9a, 0x6b, 0x1a, 0xb6, 0x58, 0x1c,\n\t0x4c, 0xb6, 0x89, 0x47, 0x1c, 0x93, 0x04, 0x94, 0x49, 0x40, 0x60, 0x05, 0xa6, 0xff, 0x46, 0x83,\n\t0x29, 0x39, 0x17, 0x67, 0x40, 0xd4, 0x5f, 0x8b, 0x13, 0xf5, 0xc7, 0x0a, 0xee, 0xd0, 0x6c, 0x96,\n\t0xfe, 0x5b, 0x0d, 0x16, 0x03, 0xd7, 0x5d, 0xa3, 0xdb, 0x30, 0x6c, 0xc3, 0x31, 0x89, 0x17, 0xc4,\n\t0xfa, 0x22, 0x94, 0xac, 0x81, 0x5c, 0x49, 0x90, 0x00, 0xa5, 0xd5, 0x16, 0x2e, 0x59, 0x03, 0x56,\n\t0x45, 0x77, 0x5c, 0x9f, 0x72, 0x36, 0x2f, 0x0e, 0x8a, 0xca, 0xeb, 0xbb, 0xb2, 0x1d, 0x2b, 0x0d,\n\t0xb4, 0x09, 0x95, 0x81, 0xeb, 0x51, 0x56, 0xb9, 0xca, 0x89, 0xf5, 0x3d, 0xc2, 0x6b, 0xb6, 0x6e,\n\t0x32, 0x10, 0xc3, 0x9d, 0xce, 0x60, 0xb0, 0x40, 0xd3, 0x7f, 0xa0, 0xc1, 0xc3, 0x19, 0xfe, 0x4b,\n\t0xd2, 0xd0, 0x85, 0x09, 0x4b, 0x08, 0x65, 0x7a, 0x79, 0xae, 0x58, 0xb7, 0x19, 0x53, 0x11, 0xa6,\n\t0xb6, 0x20, 0x85, 0x05, 0xd0, 0xfa, 0x2f, 0x35, 0xb8, 0x98, 0xf2, 0x97, 0xa7, 0x68, 0x16, 0xcf,\n\t0x92, 0x6d, 0xab, 0x14, 0xcd, 0xc2, 0x92, 0x4b, 0xd0, 0x6b, 0x50, 0xe5, 0x77, 0x44, 0xa6, 0x6b,\n\t0xcb, 0x09, 0xac, 0x07, 0x13, 0xd8, 0x92, 0xed, 0x0f, 0x0e, 0x96, 0xaf, 0x64, 0x9c, 0xb5, 0x03,\n\t0x31, 0x56, 0x00, 0x68, 0x19, 0x2a, 0xc4, 0xf3, 0x5c, 0x4f, 0x26, 0xfb, 0x49, 0x36, 0x53, 0x77,\n\t0x58, 0x03, 0x16, 0xed, 0xfa, 0xaf, 0xc2, 0x20, 0x65, 0xd9, 0x97, 0xf9, 0xc7, 0x16, 0x27, 0x99,\n\t0x18, 0xd9, 0xd2, 0x61, 0x2e, 0x41, 0x43, 0xb8, 0x60, 0x25, 0xd2, 0xb5, 0xdc, 0x9d, 0xf5, 0x62,\n\t0xd3, 0xa8, 0xcc, 0x1a, 0x0b, 0x12, 0xfe, 0x42, 0x52, 0x82, 0x53, 0x5d, 0xe8, 0x04, 0x52, 0x5a,\n\t0xe8, 0x75, 0x18, 0xdb, 0xa1, 0x74, 0x90, 0xf1, 0xb2, 0xff, 0x98, 0x22, 0x11, 0xba, 0x50, 0xe5,\n\t0xa3, 0xeb, 0x74, 0x5a, 0x98, 0x43, 0xe9, 0xbf, 0x2b, 0xa9, 0xf9, 0xe0, 0x27, 0xa4, 0xaf, 0xab,\n\t0xd1, 0xae, 0xd8, 0x86, 0xef, 0xf3, 0x14, 0x26, 0x4e, 0xf3, 0x73, 0x11, 0xc7, 0x95, 0x0c, 0xa7,\n\t0xb4, 0x51, 0x27, 0x2c, 0x9e, 0xda, 0x49, 0x8a, 0xe7, 0x54, 0x56, 0xe1, 0x44, 0x77, 0xa1, 0x4c,\n\t0xed, 0xa2, 0xa7, 0x72, 0x89, 0xd8, 0x59, 0x6b, 0x37, 0xa6, 0xe4, 0x94, 0x97, 0x3b, 0x6b, 0x6d,\n\t0xcc, 0x20, 0xd0, 0x06, 0x54, 0xbc, 0xa1, 0x4d, 0x58, 0x1d, 0x28, 0x17, 0xaf, 0x2b, 0x6c, 0x06,\n\t0xc3, 0xcd, 0xc7, 0x9e, 0x7c, 0x2c, 0x70, 0xf4, 0x1f, 0x6a, 0x30, 0x1d, 0xab, 0x16, 0xc8, 0x83,\n\t0xf3, 0x76, 0x64, 0xef, 0xc8, 0x79, 0x78, 0x76, 0xf4, 0x5d, 0x27, 0x37, 0xfd, 0x9c, 0xec, 0xf7,\n\t0x7c, 0x54, 0x86, 0x63, 0x7d, 0xe8, 0x06, 0x40, 0x38, 0x6c, 0xb6, 0x0f, 0x58, 0xf0, 0x8a, 0x0d,\n\t0x2f, 0xf7, 0x01, 0x8b, 0x69, 0x1f, 0x8b, 0x76, 0x74, 0x03, 0xc0, 0x27, 0xa6, 0x47, 0x68, 0x33,\n\t0x4c, 0x5c, 0xaa, 0x1c, 0xb7, 0x95, 0x04, 0x47, 0xb4, 0xf4, 0x5f, 0x94, 0x60, 0xba, 0x49, 0xe8,\n\t0x77, 0x5d, 0x6f, 0xb7, 0xe5, 0xda, 0x96, 0xb9, 0x7f, 0x06, 0x24, 0x00, 0xc7, 0x48, 0xc0, 0x71,\n\t0xf9, 0x32, 0xe6, 0x5d, 0x2e, 0x15, 0x78, 0x2b, 0x41, 0x05, 0x6e, 0x8c, 0x84, 0x7a, 0x34, 0x21,\n\t0xf8, 0x50, 0x83, 0xf9, 0x98, 0xfe, 0x9d, 0x30, 0xd7, 0xa8, 0xe4, 0xaf, 0x15, 0x4a, 0xfe, 0x31,\n\t0x18, 0x96, 0x30, 0xb3, 0x93, 0x3f, 0x5a, 0x83, 0x12, 0x75, 0xe5, 0xce, 0x18, 0x0d, 0x93, 0x10,\n\t0x2f, 0xac, 0x67, 0x1d, 0x17, 0x97, 0xa8, 0xab, 0xff, 0x51, 0x83, 0x85, 0x98, 0x56, 0x34, 0x5b,\n\t0x7e, 0x4e, 0x23, 0xc0, 0x30, 0xb6, 0xed, 0xb9, 0xfd, 0x13, 0x8f, 0x41, 0x2d, 0xf2, 0xcb, 0x9e,\n\t0xdb, 0xc7, 0x1c, 0x4b, 0xff, 0x48, 0x83, 0x8b, 0x31, 0xcd, 0x33, 0xe0, 0x24, 0xaf, 0xc7, 0x39,\n\t0xc9, 0xb5, 0x51, 0x06, 0x92, 0xc3, 0x4c, 0x3e, 0x2a, 0x25, 0x86, 0xc1, 0x06, 0x8c, 0xb6, 0x61,\n\t0x6a, 0xe0, 0x76, 0xdb, 0xa7, 0x70, 0xf9, 0x3b, 0xcb, 0xb8, 0x62, 0x2b, 0xc4, 0xc2, 0x51, 0x60,\n\t0x74, 0x0f, 0x2e, 0x32, 0xda, 0xe2, 0x0f, 0x0c, 0x93, 0xb4, 0x4f, 0xe1, 0x75, 0xd8, 0x43, 0xfc,\n\t0x76, 0x29, 0x89, 0x88, 0xd3, 0x9d, 0xa0, 0x75, 0x98, 0xb0, 0x06, 0xfc, 0xec, 0x22, 0x37, 0xe9,\n\t0xb1, 0x04, 0x4f, 0x9c, 0x74, 0x44, 0xf9, 0x90, 0x0f, 0x38, 0xc0, 0xd0, 0xff, 0x92, 0x8c, 0x06,\n\t0x4e, 0x85, 0x5f, 0x89, 0x50, 0x0f, 0x79, 0x0f, 0x74, 0x32, 0xda, 0xd1, 0x94, 0x2c, 0xe7, 0xa4,\n\t0xac, 0xbd, 0x9a, 0xe0, 0x44, 0x5f, 0x82, 0x09, 0xe2, 0x74, 0xf9, 0x41, 0x40, 0xbc, 0x64, 0xe1,\n\t0xa3, 0xba, 0x23, 0x9a, 0x70, 0x20, 0xd3, 0x7f, 0x54, 0x4e, 0x8c, 0x8a, 0x97, 0xf0, 0x77, 0x4e,\n\t0x2d, 0x38, 0xd4, 0x61, 0x22, 0x37, 0x40, 0xb6, 0x42, 0x6a, 0x29, 0x62, 0xfe, 0x6b, 0xa3, 0xc4,\n\t0x7c, 0xb4, 0xb6, 0xe6, 0x12, 0x4b, 0xf4, 0x2d, 0x18, 0x27, 0xa2, 0x0b, 0x51, 0xb1, 0x6f, 0x8e,\n\t0xd2, 0x45, 0x98, 0x7e, 0xc3, 0x94, 0x2d, 0xdb, 0x24, 0x2a, 0x7a, 0x89, 0xcd, 0x17, 0xd3, 0x65,\n\t0x47, 0x1e, 0xc1, 0xcc, 0x27, 0x1b, 0x8f, 0x88, 0x61, 0xab, 0xe6, 0x07, 0x07, 0xcb, 0x10, 0x3e,\n\t0xe2, 0xa8, 0x85, 0xfe, 0x3d, 0xb8, 0x94, 0x51, 0x22, 0x90, 0x19, 0x7b, 0x33, 0x24, 0x32, 0x66,\n\t0xbd, 0xd8, 0x32, 0x14, 0xbf, 0xe2, 0x7c, 0xbf, 0x04, 0x20, 0xdf, 0x45, 0x9d, 0xcd, 0x97, 0x55,\n\t0xa3, 0xdd, 0x0a, 0x86, 0xae, 0x9d, 0xda, 0xad, 0x60, 0x04, 0xf2, 0xe8, 0x52, 0xfc, 0x8f, 0x12,\n\t0x5c, 0x0a, 0x95, 0x0b, 0xdf, 0x0a, 0x66, 0x98, 0xfc, 0xef, 0xeb, 0xaa, 0x62, 0x37, 0x75, 0xe1,\n\t0xd4, 0xfd, 0xe7, 0xdd, 0xd4, 0x85, 0xbe, 0xe5, 0x54, 0xda, 0x5f, 0x97, 0xa2, 0x03, 0x18, 0xf1,\n\t0xba, 0xe8, 0x14, 0x3e, 0x30, 0xfa, 0xc2, 0xdd, 0x38, 0xe9, 0x7f, 0x2e, 0xc3, 0x85, 0xe4, 0x6e,\n\t0x8c, 0xdd, 0x2a, 0x68, 0xc7, 0xde, 0x2a, 0xb4, 0x60, 0x6e, 0x7b, 0x68, 0xdb, 0xfb, 0x7c, 0x0c,\n\t0x91, 0xab, 0x05, 0x71, 0x1f, 0xf1, 0x7f, 0xd2, 0x72, 0xee, 0xe5, 0x0c, 0x1d, 0x9c, 0x69, 0x99,\n\t0xbe, 0x64, 0x18, 0xfb, 0x77, 0x2f, 0x19, 0x2a, 0x27, 0xb8, 0x64, 0xc8, 0xbe, 0xa7, 0x29, 0x9f,\n\t0xe8, 0x9e, 0xe6, 0x24, 0x37, 0x0c, 0x19, 0x49, 0xec, 0xd8, 0x52, 0xf2, 0x22, 0xcc, 0xc4, 0x6f,\n\t0xbd, 0xc4, 0x5a, 0x8a, 0x8b, 0x37, 0x79, 0xc7, 0x14, 0x59, 0x4b, 0xd1, 0x8e, 0x95, 0x86, 0x7e,\n\t0xa8, 0xc1, 0xe5, 0xec, 0xaf, 0x5b, 0x90, 0x0d, 0x33, 0x7d, 0xe3, 0x5e, 0xf4, 0x8b, 0x23, 0xed,\n\t0x84, 0x4c, 0x89, 0x5f, 0x77, 0xac, 0xc7, 0xb0, 0x70, 0x02, 0x1b, 0xbd, 0x05, 0xd5, 0xbe, 0x71,\n\t0xaf, 0x3d, 0xf4, 0x7a, 0xe4, 0xc4, 0x8c, 0x8c, 0x6f, 0xa3, 0x75, 0x89, 0x82, 0x15, 0x9e, 0xfe,\n\t0x99, 0x06, 0xf3, 0x39, 0x97, 0x18, 0xff, 0x45, 0xa3, 0x7c, 0xb7, 0x04, 0x95, 0xb6, 0x69, 0xd8,\n\t0xe4, 0x0c, 0x08, 0xc5, 0xab, 0x31, 0x42, 0x71, 0xdc, 0x57, 0xb2, 0xdc, 0xab, 0x5c, 0x2e, 0x81,\n\t0x13, 0x5c, 0xe2, 0x89, 0x42, 0x68, 0x47, 0xd3, 0x88, 0xe7, 0x60, 0x52, 0x75, 0x3a, 0x5a, 0x76,\n\t0xd3, 0x7f, 0x5e, 0x82, 0xa9, 0x48, 0x17, 0x23, 0xe6, 0xc6, 0xed, 0x58, 0x41, 0x28, 0x17, 0x78,\n\t0x83, 0x14, 0xe9, 0xab, 0x16, 0x94, 0x00, 0xf1, 0x95, 0x47, 0x78, 0xaf, 0x9f, 0xae, 0x0c, 0x2f,\n\t0xc2, 0x0c, 0x35, 0xbc, 0x1e, 0xa1, 0xea, 0xc8, 0x20, 0x5e, 0x9e, 0xaa, 0xcf, 0x8d, 0x3a, 0x31,\n\t0x29, 0x4e, 0x68, 0x2f, 0xbe, 0x00, 0xd3, 0xb1, 0xce, 0x46, 0xf9, 0x48, 0xa3, 0xb1, 0x72, 0xff,\n\t0xd3, 0xa5, 0x73, 0x1f, 0x7f, 0xba, 0x74, 0xee, 0x93, 0x4f, 0x97, 0xce, 0x7d, 0xff, 0x70, 0x49,\n\t0xbb, 0x7f, 0xb8, 0xa4, 0x7d, 0x7c, 0xb8, 0xa4, 0x7d, 0x72, 0xb8, 0xa4, 0xfd, 0xed, 0x70, 0x49,\n\t0xfb, 0xc9, 0x67, 0x4b, 0xe7, 0xde, 0x7a, 0xe4, 0xc8, 0xff, 0xd9, 0xf8, 0x57, 0x00, 0x00, 0x00,\n\t0xff, 0xff, 0x39, 0x36, 0x95, 0x55, 0xec, 0x31, 0x00, 0x00,\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.TemplateGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentRollback) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentRollback) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tkeysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations))\n\t\tfor k := range m.UpdatedAnnotations {\n\t\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\t\tfor iNdEx := len(keysForUpdatedAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.UpdatedAnnotations[string(keysForUpdatedAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUpdatedAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUpdatedAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUpdatedAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.RollbackTo != nil {\n\t\t{\n\t\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPBlock) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPBlock) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Except) > 0 {\n\t\tfor iNdEx := len(m.Except) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Except[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Except[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Except[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.CIDR)\n\tcopy(dAtA[i:], m.CIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.ServicePort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Backend != nil {\n\t\t{\n\t\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyEgressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.To) > 0 {\n\t\tfor iNdEx := len(m.To) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.To[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyIngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.From) > 0 {\n\t\tfor iNdEx := len(m.From) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.From[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPeer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IPBlock != nil {\n\t\t{\n\t\t\tsize, err := m.IPBlock.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PodSelector != nil {\n\t\t{\n\t\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndPort != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Port != nil {\n\t\t{\n\t\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor iNdEx := len(m.PolicyTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PolicyTypes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PolicyTypes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyTypes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor iNdEx := len(m.Egress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Egress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollbackConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollbackConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollbackConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tn += 1 + sovGenerated(uint64(m.TemplateGeneration))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentRollback) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tfor k, v := range m.UpdatedAnnotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.RollbackTo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.RollbackTo != nil {\n\t\tl = m.RollbackTo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPBlock) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.CIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Except) > 0 {\n\t\tfor _, s := range m.Except {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ServicePort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Backend != nil {\n\t\tl = m.Backend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicyEgressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.To) > 0 {\n\t\tfor _, e := range m.To {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyIngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.From) > 0 {\n\t\tfor _, e := range m.From {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPeer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodSelector != nil {\n\t\tl = m.PodSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPBlock != nil {\n\t\tl = m.IPBlock.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tl = m.Port.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EndPort != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.EndPort))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSelector.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor _, e := range m.Egress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor _, s := range m.PolicyTypes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollbackConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`TemplateGeneration:` + fmt.Sprintf(\"%v\", this.TemplateGeneration) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentRollback) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations))\n\tfor k := range this.UpdatedAnnotations {\n\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\tmapStringForUpdatedAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForUpdatedAnnotations {\n\t\tmapStringForUpdatedAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.UpdatedAnnotations[k])\n\t}\n\tmapStringForUpdatedAnnotations += \"}\"\n\ts := strings.Join([]string{`&DeploymentRollback{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`,\n\t\t`RollbackTo:` + strings.Replace(strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`RollbackTo:` + strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPBlock) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPBlock{`,\n\t\t`CIDR:` + fmt.Sprintf(\"%v\", this.CIDR) + `,`,\n\t\t`Except:` + fmt.Sprintf(\"%v\", this.Except) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServicePort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ServicePort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`Backend:` + strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NetworkPolicySpec\", \"NetworkPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NetworkPolicyStatus\", \"NetworkPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyEgressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForTo := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.To {\n\t\trepeatedStringForTo += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTo += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyEgressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`To:` + repeatedStringForTo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyIngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForFrom := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.From {\n\t\trepeatedStringForFrom += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForFrom += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyIngressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`From:` + repeatedStringForFrom + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]NetworkPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"NetworkPolicy\", \"NetworkPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPeer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPeer{`,\n\t\t`PodSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`IPBlock:` + strings.Replace(this.IPBlock.String(), \"IPBlock\", \"IPBlock\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPort{`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`EndPort:` + valueToStringGenerated(this.EndPort) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]NetworkPolicyIngressRule{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyIngressRule\", \"NetworkPolicyIngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\trepeatedStringForEgress := \"[]NetworkPolicyEgressRule{\"\n\tfor _, f := range this.Egress {\n\t\trepeatedStringForEgress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyEgressRule\", \"NetworkPolicyEgressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEgress += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicySpec{`,\n\t\t`PodSelector:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1), `&`, ``, 1) + `,`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`Egress:` + repeatedStringForEgress + `,`,\n\t\t`PolicyTypes:` + fmt.Sprintf(\"%v\", this.PolicyTypes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollbackConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollbackConfig{`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TemplateGeneration\", wireType)\n\t\t\t}\n\t\t\tm.TemplateGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.TemplateGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentRollback) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UpdatedAnnotations == nil {\n\t\t\t\tm.UpdatedAnnotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.UpdatedAnnotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollbackTo == nil {\n\t\t\t\tm.RollbackTo = &RollbackConfig{}\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPBlock) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Except\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Except = append(m.Except, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServicePort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ServicePort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Backend == nil {\n\t\t\t\tm.Backend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field To\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.To = append(m.To, NetworkPolicyPeer{})\n\t\t\tif err := m.To[len(m.To)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field From\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.From = append(m.From, NetworkPolicyPeer{})\n\t\t\tif err := m.From[len(m.From)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, NetworkPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodSelector == nil {\n\t\t\t\tm.PodSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPBlock\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.IPBlock == nil {\n\t\t\t\tm.IPBlock = &IPBlock{}\n\t\t\t}\n\t\t\tif err := m.IPBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Port == nil {\n\t\t\t\tm.Port = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndPort\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.EndPort = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, NetworkPolicyIngressRule{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Egress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Egress = append(m.Egress, NetworkPolicyEgressRule{})\n\t\t\tif err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyTypes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyTypes = append(m.PolicyTypes, PolicyType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollbackConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.extensions.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/extensions/v1beta1\";\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // If empty, defaulted to labels on Pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // DEPRECATED.\n  // A sequence number representing a specific generation of the template.\n  // Populated by the system. It can be set only during the creation.\n  // +optional\n  optional int64 templateGeneration = 5;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // The number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running and ready.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\".\n  // Default is OnDelete.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\nmessage DeploymentRollback {\n  // Required: This must match the Name of a deployment.\n  optional string name = 1;\n\n  // The annotations to be updated to a deployment\n  // +optional\n  map<string, string> updatedAnnotations = 2;\n\n  // The config of this deployment rollback.\n  optional RollbackConfig rollbackTo = 3;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // This is set to the max value of int32 (i.e. 2147483647) by default, which\n  // means \"retaining all old ReplicaSets\".\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused and will not be processed by the\n  // deployment controller.\n  // +optional\n  optional bool paused = 7;\n\n  // DEPRECATED.\n  // The config this deployment is rolling back to. Will be cleared after rollback is done.\n  // +optional\n  optional RollbackConfig rollbackTo = 8;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. This is set to\n  // the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".\n  // +optional\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // Total number of ready pods targeted by this deployment.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // Path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/'. When unspecified,\n  // all paths from incoming requests are matched.\n  // +optional\n  optional string path = 1;\n\n  // PathType determines the interpretation of the Path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  // Defaults to ImplementationSpecific.\n  optional string pathType = 3;\n\n  // Backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // A collection of paths that map requests to backends.\n  repeated HTTPIngressPath paths = 1;\n}\n\n// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\nmessage IPBlock {\n  // CIDR is a string representing the IP Block\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  optional string cidr = 1;\n\n  // Except is a slice of CIDRs that should not be included within an IP Block\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  // Except values will be rejected if they are outside the CIDR range\n  // +optional\n  repeated string except = 2;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\n// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // Status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // Specifies the name of the referenced service.\n  // +optional\n  optional string serviceName = 1;\n\n  // Specifies the port of the referenced service.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString servicePort = 2;\n\n  // Resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, serviceName and servicePort\n  // must not be specified.\n  // +optional\n  optional k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // IP is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // Hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // Ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // Ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // Port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // Protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // Error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // Host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // Host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If Host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // http is a list of http selectors pointing to backends.\n  // A path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/'.\n  // A backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // IngressClassName is the name of the IngressClass cluster resource. The\n  // associated IngressClass defines which controller will implement the\n  // resource. This replaces the deprecated `kubernetes.io/ingress.class`\n  // annotation. For backwards compatibility, when that annotation is set, it\n  // must be given precedence over this field. The controller may emit a\n  // warning if the field and annotation have different values.\n  // Implementations of this API should ignore Ingresses without a class\n  // specified. An IngressClass resource may be marked as default, which can\n  // be used to set a default value for this field. For more information,\n  // refer to the IngressClass documentation.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // A default backend capable of servicing requests that don't match any\n  // rule. At least one of 'backend' or 'rules' must be specified. This field\n  // is optional to allow the loadbalancer controller or defaulting logic to\n  // specify a global default.\n  // +optional\n  optional IngressBackend backend = 1;\n\n  // TLS configuration. Currently the Ingress only supports a single TLS\n  // port, 443. If multiple members of this list specify different hosts, they\n  // will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +optional\n  repeated IngressTLS tls = 2;\n\n  // A list of host rules used to configure the Ingress. If unspecified, or\n  // no rule matches, all traffic is sent to the default backend.\n  // +optional\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describe the current state of the Ingress.\nmessage IngressStatus {\n  // LoadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\nmessage IngressTLS {\n  // Hosts are a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +optional\n  repeated string hosts = 1;\n\n  // SecretName is the name of the secret used to terminate SSL traffic on 443.\n  // Field is left optional to allow SSL routing based on SNI hostname alone.\n  // If the SNI host in a listener conflicts with the \"Host\" header field used\n  // by an IngressRule, the SNI host is used for termination and value of the\n  // Host header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\nmessage NetworkPolicy {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior for this NetworkPolicy.\n  // +optional\n  optional NetworkPolicySpec spec = 2;\n\n  // Status is the current state of the NetworkPolicy.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NetworkPolicyStatus status = 3;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\nmessage NetworkPolicyEgressRule {\n  // List of destination ports for outgoing traffic.\n  // Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  repeated NetworkPolicyPort ports = 1;\n\n  // List of destinations for outgoing traffic of pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all destinations (traffic not restricted by\n  // destination). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the to list.\n  // +optional\n  repeated NetworkPolicyPeer to = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.\n// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\nmessage NetworkPolicyIngressRule {\n  // List of ports which should be made accessible on the pods selected for this rule.\n  // Each item in this list is combined using a logical OR.\n  // If this field is empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows traffic\n  // only if the traffic matches at least one port in the list.\n  // +optional\n  repeated NetworkPolicyPort ports = 1;\n\n  // List of sources which should be able to access the pods selected for this rule.\n  // Items in this list are combined using a logical OR operation.\n  // If this field is empty or missing, this rule matches all sources (traffic not restricted by source).\n  // If this field is present and contains at least one item, this rule allows traffic only if the\n  // traffic matches at least one item in the from list.\n  // +optional\n  repeated NetworkPolicyPeer from = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.\n// Network Policy List is a list of NetworkPolicy objects.\nmessage NetworkPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of schema objects.\n  repeated NetworkPolicy items = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\nmessage NetworkPolicyPeer {\n  // This is a label selector which selects Pods. This field follows standard label\n  // selector semantics; if present but empty, it selects all pods.\n  //\n  // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // Selects Namespaces using cluster-scoped labels. This field follows standard label\n  // selector semantics; if present but empty, it selects all namespaces.\n  //\n  // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2;\n\n  // IPBlock defines policy on a particular IPBlock. If this field is set then\n  // neither of the other fields can be.\n  // +optional\n  optional IPBlock ipBlock = 3;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\nmessage NetworkPolicyPort {\n  // Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match.\n  // If not specified, this field defaults to TCP.\n  // +optional\n  optional string protocol = 1;\n\n  // The port on the given protocol. This can either be a numerical or named\n  // port on a pod. If this field is not provided, this matches all port names and\n  // numbers.\n  // If present, only traffic on the specified protocol AND port will be matched.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // If set, indicates that the range of ports from port to endPort, inclusive,\n  // should be allowed by the policy. This field cannot be defined if the port field\n  // is not defined or if the port field is defined as a named (string) port.\n  // The endPort must be equal or greater than port.\n  // +optional\n  optional int32 endPort = 3;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\nmessage NetworkPolicySpec {\n  // Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules\n  // is applied to any pods selected by this field. Multiple network policies can select the\n  // same set of pods.  In this case, the ingress rules for each are combined additively.\n  // This field is NOT optional and follows standard label selector semantics.\n  // An empty podSelector matches all pods in this namespace.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // List of ingress rules to be applied to the selected pods.\n  // Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n  // OR if the traffic source is the pod's local node,\n  // OR if the traffic matches at least one ingress rule across all of the NetworkPolicy\n  // objects whose podSelector matches the pod.\n  // If this field is empty then this NetworkPolicy does not allow any traffic\n  // (and serves solely to ensure that the pods it selects are isolated by default).\n  // +optional\n  repeated NetworkPolicyIngressRule ingress = 2;\n\n  // List of egress rules to be applied to the selected pods. Outgoing traffic is\n  // allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n  // otherwise allows the traffic), OR if the traffic matches at least one egress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default).\n  // This field is beta-level in 1.8\n  // +optional\n  repeated NetworkPolicyEgressRule egress = 3;\n\n  // List of rule types that the NetworkPolicy relates to.\n  // Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n  // If this field is not specified, it will default based on the existence of Ingress or Egress rules;\n  // policies that contain an Egress section are assumed to affect Egress, and all policies\n  // (whether or not they contain an Ingress section) are assumed to affect Ingress.\n  // If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n  // Likewise, if you want to write a policy that specifies that no egress is allowed,\n  // you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n  // an Egress section and would otherwise default to just [ \"Ingress\" ]).\n  // This field is beta-level in 1.8\n  // +optional\n  repeated string policyTypes = 4;\n}\n\n// NetworkPolicyStatus describe the current state of the NetworkPolicy.\nmessage NetworkPolicyStatus {\n  // Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;\n}\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // If the selector is empty, it is defaulted to the labels present on the pod template.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // The number of ready replicas for this replica set.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// DEPRECATED.\nmessage RollbackConfig {\n  // The revision to rollback to. If set to 0, rollback to the last revision.\n  // +optional\n  optional int64 revision = 1;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // By default, a fixed value of 1 is used.\n  // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old RC\n  // can be scaled down further, followed by scaling up the new RC, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // By default, a value of 1 is used.\n  // Example: when this is set to 30%, the new RC can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new RC can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"extensions\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&DeploymentRollback{},\n\t\t&Scale{},\n\t\t&DaemonSetList{},\n\t\t&DaemonSet{},\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&NetworkPolicy{},\n\t\t&NetworkPolicyList{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.2\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n\n// represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// This is set to the max value of int32 (i.e. 2147483647) by default, which\n\t// means \"retaining all old ReplicaSets\".\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused and will not be processed by the\n\t// deployment controller.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// DEPRECATED.\n\t// The config this deployment is rolling back to. Will be cleared after rollback is done.\n\t// +optional\n\tRollbackTo *RollbackConfig `json:\"rollbackTo,omitempty\" protobuf:\"bytes,8,opt,name=rollbackTo\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. This is set to\n\t// the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".\n\t// +optional\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\ntype DeploymentRollback struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Required: This must match the Name of a deployment.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The annotations to be updated to a deployment\n\t// +optional\n\tUpdatedAnnotations map[string]string `json:\"updatedAnnotations,omitempty\" protobuf:\"bytes,2,rep,name=updatedAnnotations\"`\n\t// The config of this deployment rollback.\n\tRollbackTo RollbackConfig `json:\"rollbackTo\" protobuf:\"bytes,3,opt,name=rollbackTo\"`\n}\n\n// DEPRECATED.\ntype RollbackConfig struct {\n\t// The revision to rollback to. If set to 0, rollback to the last revision.\n\t// +optional\n\tRevision int64 `json:\"revision,omitempty\" protobuf:\"varint,1,opt,name=revision\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing RCs (and label key that is added to its pods) to prevent the existing RCs\n\t// to select new pods (and old pods being select by new RC).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// By default, a fixed value of 1 is used.\n\t// Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old RC\n\t// can be scaled down further, followed by scaling up the new RC, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// By default, a value of 1 is used.\n\t// Example: when this is set to 30%, the new RC can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new RC can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// Total number of ready pods targeted by this deployment.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\".\n\t// Default is OnDelete.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// If empty, defaulted to labels on Pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// DEPRECATED.\n\t// A sequence number representing a specific generation of the template.\n\t// Populated by the system. It can be set only during the creation.\n\t// +optional\n\tTemplateGeneration int64 `json:\"templateGeneration,omitempty\" protobuf:\"varint,5,opt,name=templateGeneration\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// The number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running and ready.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSet\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DEPRECATED: DefaultDaemonSetUniqueLabelKey is used instead.\n\t// DaemonSetTemplateGenerationKey is the key of the labels that is added\n\t// to daemon set pods to distinguish between old and new pod templates\n\t// during DaemonSet template update.\n\tDaemonSetTemplateGenerationKey string = \"pod-template-generation\"\n\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = appsv1beta1.ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSetList\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,Ingress\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\n// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressList\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// IngressClassName is the name of the IngressClass cluster resource. The\n\t// associated IngressClass defines which controller will implement the\n\t// resource. This replaces the deprecated `kubernetes.io/ingress.class`\n\t// annotation. For backwards compatibility, when that annotation is set, it\n\t// must be given precedence over this field. The controller may emit a\n\t// warning if the field and annotation have different values.\n\t// Implementations of this API should ignore Ingresses without a class\n\t// specified. An IngressClass resource may be marked as default, which can\n\t// be used to set a default value for this field. For more information,\n\t// refer to the IngressClass documentation.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// A default backend capable of servicing requests that don't match any\n\t// rule. At least one of 'backend' or 'rules' must be specified. This field\n\t// is optional to allow the loadbalancer controller or defaulting logic to\n\t// specify a global default.\n\t// +optional\n\tBackend *IngressBackend `json:\"backend,omitempty\" protobuf:\"bytes,1,opt,name=backend\"`\n\n\t// TLS configuration. Currently the Ingress only supports a single TLS\n\t// port, 443. If multiple members of this list specify different hosts, they\n\t// will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +optional\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// A list of host rules used to configure the Ingress. If unspecified, or\n\t// no rule matches, all traffic is sent to the default backend.\n\t// +optional\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\t// TODO: Add the ability to specify load-balancer IP through claims\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\ntype IngressTLS struct {\n\t// Hosts are a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +optional\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\t// SecretName is the name of the secret used to terminate SSL traffic on 443.\n\t// Field is left optional to allow SSL routing based on SNI hostname alone.\n\t// If the SNI host in a listener conflicts with the \"Host\" header field used\n\t// by an IngressRule, the SNI host is used for termination and value of the\n\t// Host header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n\t// TODO: Consider specifying different modes of termination, protocols etc.\n}\n\n// IngressStatus describe the current state of the Ingress.\ntype IngressStatus struct {\n\t// LoadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// Ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// IP is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// Hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// Ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// Port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// Protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// Error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// Host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// Host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If Host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline,omitempty\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t//TODO:\n\t// 1. Consider renaming this resource and the associated rules so they\n\t// aren't tied to Ingress. They can be used to route intra-cluster traffic.\n\t// 2. Consider adding fields for ingress-type specific global options\n\t// usable by a loadbalancer, like http keep-alive.\n\n\t// http is a list of http selectors pointing to backends.\n\t// A path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/'.\n\t// A backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// A collection of paths that map requests to backends.\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n\t// TODO: Consider adding fields for ingress-type specific global\n\t// options usable by a loadbalancer, like http keep-alive.\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// Path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/'. When unspecified,\n\t// all paths from incoming requests are matched.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// PathType determines the interpretation of the Path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\t// Defaults to ImplementationSpecific.\n\tPathType *PathType `json:\"pathType,omitempty\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// Backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// Specifies the name of the referenced service.\n\t// +optional\n\tServiceName string `json:\"serviceName,omitempty\" protobuf:\"bytes,1,opt,name=serviceName\"`\n\n\t// Specifies the port of the referenced service.\n\t// +optional\n\tServicePort intstr.IntOrString `json:\"servicePort,omitempty\" protobuf:\"bytes,2,opt,name=servicePort\"`\n\n\t// Resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, serviceName and servicePort\n\t// must not be specified.\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSet\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSetList\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// If the selector is empty, it is defaulted to the labels present on the pod template.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// The number of ready replicas for this replica set.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.3\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,NetworkPolicy\n\n// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\ntype NetworkPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior for this NetworkPolicy.\n\t// +optional\n\tSpec NetworkPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current state of the NetworkPolicy.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NetworkPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DEPRECATED 1.9 - This group version of PolicyType is deprecated by networking/v1/PolicyType.\n// Policy Type string describes the NetworkPolicy type\n// This type is beta-level in 1.8\ntype PolicyType string\n\nconst (\n\t// PolicyTypeIngress is a NetworkPolicy that affects ingress traffic on selected pods\n\tPolicyTypeIngress PolicyType = \"Ingress\"\n\t// PolicyTypeEgress is a NetworkPolicy that affects egress traffic on selected pods\n\tPolicyTypeEgress PolicyType = \"Egress\"\n)\n\n// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\ntype NetworkPolicySpec struct {\n\t// Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules\n\t// is applied to any pods selected by this field. Multiple network policies can select the\n\t// same set of pods.  In this case, the ingress rules for each are combined additively.\n\t// This field is NOT optional and follows standard label selector semantics.\n\t// An empty podSelector matches all pods in this namespace.\n\tPodSelector metav1.LabelSelector `json:\"podSelector\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// List of ingress rules to be applied to the selected pods.\n\t// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n\t// OR if the traffic source is the pod's local node,\n\t// OR if the traffic matches at least one ingress rule across all of the NetworkPolicy\n\t// objects whose podSelector matches the pod.\n\t// If this field is empty then this NetworkPolicy does not allow any traffic\n\t// (and serves solely to ensure that the pods it selects are isolated by default).\n\t// +optional\n\tIngress []NetworkPolicyIngressRule `json:\"ingress,omitempty\" protobuf:\"bytes,2,rep,name=ingress\"`\n\n\t// List of egress rules to be applied to the selected pods. Outgoing traffic is\n\t// allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n\t// otherwise allows the traffic), OR if the traffic matches at least one egress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default).\n\t// This field is beta-level in 1.8\n\t// +optional\n\tEgress []NetworkPolicyEgressRule `json:\"egress,omitempty\" protobuf:\"bytes,3,rep,name=egress\"`\n\n\t// List of rule types that the NetworkPolicy relates to.\n\t// Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n\t// If this field is not specified, it will default based on the existence of Ingress or Egress rules;\n\t// policies that contain an Egress section are assumed to affect Egress, and all policies\n\t// (whether or not they contain an Ingress section) are assumed to affect Ingress.\n\t// If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n\t// Likewise, if you want to write a policy that specifies that no egress is allowed,\n\t// you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n\t// an Egress section and would otherwise default to just [ \"Ingress\" ]).\n\t// This field is beta-level in 1.8\n\t// +optional\n\tPolicyTypes []PolicyType `json:\"policyTypes,omitempty\" protobuf:\"bytes,4,rep,name=policyTypes,casttype=PolicyType\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.\n// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\ntype NetworkPolicyIngressRule struct {\n\t// List of ports which should be made accessible on the pods selected for this rule.\n\t// Each item in this list is combined using a logical OR.\n\t// If this field is empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows traffic\n\t// only if the traffic matches at least one port in the list.\n\t// +optional\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// List of sources which should be able to access the pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation.\n\t// If this field is empty or missing, this rule matches all sources (traffic not restricted by source).\n\t// If this field is present and contains at least one item, this rule allows traffic only if the\n\t// traffic matches at least one item in the from list.\n\t// +optional\n\tFrom []NetworkPolicyPeer `json:\"from,omitempty\" protobuf:\"bytes,2,rep,name=from\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\ntype NetworkPolicyEgressRule struct {\n\t// List of destination ports for outgoing traffic.\n\t// Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// List of destinations for outgoing traffic of pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all destinations (traffic not restricted by\n\t// destination). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the to list.\n\t// +optional\n\tTo []NetworkPolicyPeer `json:\"to,omitempty\" protobuf:\"bytes,2,rep,name=to\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\ntype NetworkPolicyPort struct {\n\t// Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match.\n\t// If not specified, this field defaults to TCP.\n\t// +optional\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol\"`\n\n\t// The port on the given protocol. This can either be a numerical or named\n\t// port on a pod. If this field is not provided, this matches all port names and\n\t// numbers.\n\t// If present, only traffic on the specified protocol AND port will be matched.\n\t// +optional\n\tPort *intstr.IntOrString `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n\n\t// If set, indicates that the range of ports from port to endPort, inclusive,\n\t// should be allowed by the policy. This field cannot be defined if the port field\n\t// is not defined or if the port field is defined as a named (string) port.\n\t// The endPort must be equal or greater than port.\n\t// +optional\n\tEndPort *int32 `json:\"endPort,omitempty\" protobuf:\"bytes,3,opt,name=endPort\"`\n}\n\n// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\ntype IPBlock struct {\n\t// CIDR is a string representing the IP Block\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\tCIDR string `json:\"cidr\" protobuf:\"bytes,1,name=cidr\"`\n\t// Except is a slice of CIDRs that should not be included within an IP Block\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\t// Except values will be rejected if they are outside the CIDR range\n\t// +optional\n\tExcept []string `json:\"except,omitempty\" protobuf:\"bytes,2,rep,name=except\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\ntype NetworkPolicyPeer struct {\n\t// This is a label selector which selects Pods. This field follows standard label\n\t// selector semantics; if present but empty, it selects all pods.\n\t//\n\t// If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\n\t// +optional\n\tPodSelector *metav1.LabelSelector `json:\"podSelector,omitempty\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// Selects Namespaces using cluster-scoped labels. This field follows standard label\n\t// selector semantics; if present but empty, it selects all namespaces.\n\t//\n\t// If PodSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,2,opt,name=namespaceSelector\"`\n\n\t// IPBlock defines policy on a particular IPBlock. If this field is set then\n\t// neither of the other fields can be.\n\t// +optional\n\tIPBlock *IPBlock `json:\"ipBlock,omitempty\" protobuf:\"bytes,3,rep,name=ipBlock\"`\n}\n\n// NetworkPolicyConditionType is the type for status conditions on\n// a NetworkPolicy. This type should be used with the\n// NetworkPolicyStatus.Conditions field.\ntype NetworkPolicyConditionType string\n\nconst (\n\t// NetworkPolicyConditionStatusAccepted represents status of a Network Policy that could be properly parsed by\n\t// the Network Policy provider and will be implemented in the cluster\n\tNetworkPolicyConditionStatusAccepted NetworkPolicyConditionType = \"Accepted\"\n\n\t// NetworkPolicyConditionStatusPartialFailure represents status of a Network Policy that could be partially\n\t// parsed by the Network Policy provider and may not be completely implemented due to a lack of a feature or some\n\t// other condition\n\tNetworkPolicyConditionStatusPartialFailure NetworkPolicyConditionType = \"PartialFailure\"\n\n\t// NetworkPolicyConditionStatusFailure represents status of a Network Policy that could not be parsed by the\n\t// Network Policy provider and will not be implemented in the cluster\n\tNetworkPolicyConditionStatusFailure NetworkPolicyConditionType = \"Failure\"\n)\n\n// NetworkPolicyConditionReason defines the set of reasons that explain why a\n// particular NetworkPolicy condition type has been raised.\ntype NetworkPolicyConditionReason string\n\nconst (\n\t// NetworkPolicyConditionReasonFeatureNotSupported represents a reason where the Network Policy may not have been\n\t// implemented in the cluster due to a lack of some feature not supported by the Network Policy provider\n\tNetworkPolicyConditionReasonFeatureNotSupported NetworkPolicyConditionReason = \"FeatureNotSupported\"\n)\n\n// NetworkPolicyStatus describe the current state of the NetworkPolicy.\ntype NetworkPolicyStatus struct {\n\t// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.3\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,NetworkPolicyList\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.\n// Network Policy List is a list of NetworkPolicy objects.\ntype NetworkPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of schema objects.\n\tItems []NetworkPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"templateGeneration\":   \"DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy indicates the strategy that the DaemonSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is OnDelete.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentRollback = map[string]string{\n\t\"\":                   \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n\t\"name\":               \"Required: This must match the Name of a deployment.\",\n\t\"updatedAnnotations\": \"The annotations to be updated to a deployment\",\n\t\"rollbackTo\":         \"The config of this deployment rollback.\",\n}\n\nfunc (DeploymentRollback) SwaggerDoc() map[string]string {\n\treturn map_DeploymentRollback\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n\t\"template\":                \"Template describes the pods that will be created.\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"retaining all old ReplicaSets\\\".\",\n\t\"paused\":                  \"Indicates that the deployment is paused and will not be processed by the deployment controller.\",\n\t\"rollbackTo\":              \"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"no deadline\\\".\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"Total number of ready pods targeted by this deployment.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. When unspecified, all paths from incoming requests are matched.\",\n\t\"pathType\": \"PathType determines the interpretation of the Path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types. Defaults to ImplementationSpecific.\",\n\t\"backend\":  \"Backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"A collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_IPBlock = map[string]string{\n\t\"\":       \"DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\n\t\"cidr\":   \"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\"\",\n\t\"except\": \"Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\" Except values will be rejected if they are outside the CIDR range\",\n}\n\nfunc (IPBlock) SwaggerDoc() map[string]string {\n\treturn map_IPBlock\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":            \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"serviceName\": \"Specifies the name of the referenced service.\",\n\t\"servicePort\": \"Specifies the port of the referenced service.\",\n\t\"resource\":    \"Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"IP is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"Hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"Ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"Ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"Port is the port number of the ingress port.\",\n\t\"protocol\": \"Protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nHost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\":     \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n\t\"http\": \"http is a list of http selectors pointing to backends. A path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. A backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.\",\n\t\"backend\":          \"A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.\",\n\t\"tls\":              \"TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describe the current state of the Ingress.\",\n\t\"loadBalancer\": \"LoadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an Ingress.\",\n\t\"hosts\":      \"Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\nvar map_NetworkPolicy = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior for this NetworkPolicy.\",\n\t\"status\":   \"Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (NetworkPolicy) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicy\n}\n\nvar map_NetworkPolicyEgressRule = map[string]string{\n\t\"\":      \"DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\",\n\t\"ports\": \"List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"to\":    \"List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.\",\n}\n\nfunc (NetworkPolicyEgressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyEgressRule\n}\n\nvar map_NetworkPolicyIngressRule = map[string]string{\n\t\"\":      \"DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\",\n\t\"ports\": \"List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"from\":  \"List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\n}\n\nfunc (NetworkPolicyIngressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyIngressRule\n}\n\nvar map_NetworkPolicyList = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is a list of schema objects.\",\n}\n\nfunc (NetworkPolicyList) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyList\n}\n\nvar map_NetworkPolicyPeer = map[string]string{\n\t\"\":                  \"DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\",\n\t\"podSelector\":       \"This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\\n\\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\",\n\t\"namespaceSelector\": \"Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\\n\\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\",\n\t\"ipBlock\":           \"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n}\n\nfunc (NetworkPolicyPeer) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPeer\n}\n\nvar map_NetworkPolicyPort = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\",\n\t\"protocol\": \"Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n\t\"port\":     \"The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n\t\"endPort\":  \"If set, indicates that the range of ports from port to endPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n}\n\nfunc (NetworkPolicyPort) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPort\n}\n\nvar map_NetworkPolicySpec = map[string]string{\n\t\"\":            \"DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\",\n\t\"podSelector\": \"Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods.  In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.\",\n\t\"ingress\":     \"List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).\",\n\t\"egress\":      \"List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8\",\n\t\"policyTypes\": \"List of rule types that the NetworkPolicy relates to. Valid options are [\\\"Ingress\\\"], [\\\"Egress\\\"], or [\\\"Ingress\\\", \\\"Egress\\\"]. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \\\"Egress\\\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \\\"Egress\\\" (since such a policy would not include an Egress section and would otherwise default to just [ \\\"Ingress\\\" ]). This field is beta-level in 1.8\",\n}\n\nfunc (NetworkPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicySpec\n}\n\nvar map_NetworkPolicyStatus = map[string]string{\n\t\"\":           \"NetworkPolicyStatus describe the current state of the NetworkPolicy.\",\n\t\"conditions\": \"Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state\",\n}\n\nfunc (NetworkPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyStatus\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"The number of ready replicas for this replica set.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollbackConfig = map[string]string{\n\t\"\":         \"DEPRECATED.\",\n\t\"revision\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n}\n\nfunc (RollbackConfig) SwaggerDoc() map[string]string {\n\treturn map_RollbackConfig\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"describes the attributes of a scale subresource\",\n\t\"replicas\": \"desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"represents the current status of a scale subresource.\",\n\t\"replicas\":       \"actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.UpdatedAnnotations != nil {\n\t\tin, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tout.RollbackTo = in.RollbackTo\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback.\nfunc (in *DeploymentRollback) DeepCopy() *DeploymentRollback {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentRollback)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentRollback) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.RollbackTo != nil {\n\t\tin, out := &in.RollbackTo, &out.RollbackTo\n\t\t*out = new(RollbackConfig)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPBlock) DeepCopyInto(out *IPBlock) {\n\t*out = *in\n\tif in.Except != nil {\n\t\tin, out := &in.Except, &out.Except\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock.\nfunc (in *IPBlock) DeepCopy() *IPBlock {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPBlock)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tout.ServicePort = in.ServicePort\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(corev1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Backend != nil {\n\t\tin, out := &in.Backend, &out.Backend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.\nfunc (in *NetworkPolicy) DeepCopy() *NetworkPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.To != nil {\n\t\tin, out := &in.To, &out.To\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule.\nfunc (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyEgressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.From != nil {\n\t\tin, out := &in.From, &out.From\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule.\nfunc (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyIngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]NetworkPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.\nfunc (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) {\n\t*out = *in\n\tif in.PodSelector != nil {\n\t\tin, out := &in.PodSelector, &out.PodSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPBlock != nil {\n\t\tin, out := &in.IPBlock, &out.IPBlock\n\t\t*out = new(IPBlock)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer.\nfunc (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPeer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) {\n\t*out = *in\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.EndPort != nil {\n\t\tin, out := &in.EndPort, &out.EndPort\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort.\nfunc (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) {\n\t*out = *in\n\tin.PodSelector.DeepCopyInto(&out.PodSelector)\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]NetworkPolicyIngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Egress != nil {\n\t\tin, out := &in.Egress, &out.Egress\n\t\t*out = make([]NetworkPolicyEgressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PolicyTypes != nil {\n\t\tin, out := &in.PolicyTypes, &out.PolicyTypes\n\t\t*out = make([]PolicyType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.\nfunc (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.\nfunc (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig.\nfunc (in *RollbackConfig) DeepCopy() *RollbackConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollbackConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Ingress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Ingress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Ingress) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"Ingress\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Ingress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 3\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *NetworkPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *NetworkPolicy) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"NetworkPolicy\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *NetworkPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 3\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *NetworkPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *NetworkPolicyList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"NetworkPolicyList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *NetworkPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1alpha1 holds api types of version v1alpha1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1alpha1 // import \"k8s.io/api/flowcontrol/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{0}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{1}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{2}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{3}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{4}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{5}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{6}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{7}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{8}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{9}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{10}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{11}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{12}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{13}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{14}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{15}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{16}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{17}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{18}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{19}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{20}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_45ba024d525b289b, []int{21}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1alpha1.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1alpha1.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1alpha1.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1alpha1.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1alpha1.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1alpha1.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1alpha1.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1alpha1.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1alpha1.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.proto\", fileDescriptor_45ba024d525b289b)\n}\n\nvar fileDescriptor_45ba024d525b289b = []byte{\n\t// 1554 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6f, 0x13, 0xc7,\n\t0x1b, 0xcf, 0x3a, 0x76, 0x12, 0x4f, 0x5e, 0x99, 0x10, 0xc5, 0xff, 0x20, 0xd9, 0x61, 0xff, 0x52,\n\t0xa1, 0x05, 0x76, 0x09, 0x05, 0x4a, 0x85, 0x2a, 0x94, 0x0d, 0x94, 0xb7, 0x24, 0x24, 0x13, 0xa0,\n\t0x2a, 0xa2, 0x12, 0x9b, 0xf5, 0xc4, 0x1e, 0x62, 0xef, 0x6e, 0x67, 0x76, 0x9d, 0xa6, 0xe2, 0x50,\n\t0xa9, 0x5f, 0xa0, 0x1f, 0x80, 0x63, 0x0f, 0x3d, 0xf7, 0x13, 0xf4, 0x18, 0x55, 0x3d, 0x70, 0xe4,\n\t0x64, 0x11, 0xf7, 0xda, 0x0f, 0xd0, 0x72, 0xa8, 0xaa, 0x99, 0x9d, 0xdd, 0xf5, 0xfa, 0x25, 0x6b,\n\t0x1a, 0x89, 0x53, 0x6f, 0xd9, 0xe7, 0xe5, 0xf7, 0xbc, 0xcc, 0xf3, 0xe6, 0x80, 0x3b, 0xbb, 0xd7,\n\t0x98, 0x46, 0x1c, 0x7d, 0xd7, 0xdf, 0xc6, 0xd4, 0xc6, 0x1e, 0x66, 0x7a, 0x03, 0xdb, 0x65, 0x87,\n\t0xea, 0x92, 0x61, 0xba, 0x44, 0xdf, 0xa9, 0x39, 0x7b, 0x96, 0x63, 0x7b, 0xd4, 0xa9, 0xe9, 0x8d,\n\t0x25, 0xb3, 0xe6, 0x56, 0xcd, 0x25, 0xbd, 0x82, 0x6d, 0x4c, 0x4d, 0x0f, 0x97, 0x35, 0x97, 0x3a,\n\t0x9e, 0x03, 0x4b, 0x81, 0x82, 0x66, 0xba, 0x44, 0x6b, 0x53, 0xd0, 0x42, 0x85, 0x85, 0x0b, 0x15,\n\t0xe2, 0x55, 0xfd, 0x6d, 0xcd, 0x72, 0xea, 0x7a, 0xc5, 0xa9, 0x38, 0xba, 0xd0, 0xdb, 0xf6, 0x77,\n\t0xc4, 0x97, 0xf8, 0x10, 0x7f, 0x05, 0x78, 0x0b, 0x97, 0x63, 0x07, 0xea, 0xa6, 0x55, 0x25, 0x36,\n\t0xa6, 0xfb, 0xba, 0xbb, 0x5b, 0xe1, 0x04, 0xa6, 0xd7, 0xb1, 0x67, 0xea, 0x8d, 0x2e, 0x2f, 0x16,\n\t0xf4, 0x7e, 0x5a, 0xd4, 0xb7, 0x3d, 0x52, 0xc7, 0x5d, 0x0a, 0x57, 0xd3, 0x14, 0x98, 0x55, 0xc5,\n\t0x75, 0xb3, 0x53, 0x4f, 0x7d, 0x02, 0xe6, 0x3f, 0xaf, 0x39, 0x7b, 0x37, 0x09, 0xf3, 0x88, 0x5d,\n\t0xf1, 0x09, 0xab, 0x62, 0xba, 0x86, 0xbd, 0xaa, 0x53, 0x86, 0x37, 0x40, 0xd6, 0xdb, 0x77, 0x71,\n\t0x41, 0x59, 0x54, 0xce, 0xe6, 0x8d, 0x73, 0x07, 0xcd, 0xd2, 0x50, 0xab, 0x59, 0xca, 0x3e, 0xdc,\n\t0x77, 0xf1, 0xdb, 0x66, 0xe9, 0x54, 0x1f, 0x35, 0xce, 0x46, 0x42, 0x51, 0x7d, 0x99, 0x01, 0x80,\n\t0x4b, 0x6d, 0x09, 0xd3, 0xf0, 0x19, 0x18, 0xe3, 0xe1, 0x96, 0x4d, 0xcf, 0x14, 0x98, 0xe3, 0x97,\n\t0x2e, 0x6a, 0x71, 0xb2, 0x23, 0xaf, 0x35, 0x77, 0xb7, 0xc2, 0x09, 0x4c, 0xe3, 0xd2, 0x5a, 0x63,\n\t0x49, 0x7b, 0xb0, 0xfd, 0x1c, 0x5b, 0xde, 0x1a, 0xf6, 0x4c, 0x03, 0x4a, 0x2f, 0x40, 0x4c, 0x43,\n\t0x11, 0x2a, 0xdc, 0x04, 0x59, 0xe6, 0x62, 0xab, 0x90, 0x11, 0xe8, 0xba, 0x96, 0xf2, 0x94, 0x5a,\n\t0xec, 0xdc, 0x96, 0x8b, 0x2d, 0x63, 0x22, 0x0c, 0x91, 0x7f, 0x21, 0x01, 0x05, 0xbf, 0x04, 0x23,\n\t0xcc, 0x33, 0x3d, 0x9f, 0x15, 0x86, 0x05, 0xe8, 0xd2, 0xbb, 0x80, 0x0a, 0x45, 0x63, 0x4a, 0xc2,\n\t0x8e, 0x04, 0xdf, 0x48, 0x02, 0xaa, 0xaf, 0x33, 0x60, 0x36, 0x16, 0x5e, 0x71, 0xec, 0x32, 0xf1,\n\t0x88, 0x63, 0xc3, 0xeb, 0x89, 0xbc, 0x9f, 0xe9, 0xc8, 0xfb, 0x7c, 0x0f, 0x95, 0x38, 0xe7, 0xf0,\n\t0xd3, 0xc8, 0xdf, 0x8c, 0x50, 0x3f, 0x9d, 0x34, 0xfe, 0xb6, 0x59, 0x9a, 0x8e, 0xd4, 0x92, 0xfe,\n\t0xc0, 0x06, 0x80, 0x35, 0x93, 0x79, 0x0f, 0xa9, 0x69, 0xb3, 0x00, 0x96, 0xd4, 0xb1, 0x0c, 0xfb,\n\t0xa3, 0xc1, 0x5e, 0x8a, 0x6b, 0x18, 0x0b, 0xd2, 0x24, 0x5c, 0xed, 0x42, 0x43, 0x3d, 0x2c, 0xc0,\n\t0x0f, 0xc0, 0x08, 0xc5, 0x26, 0x73, 0xec, 0x42, 0x56, 0xb8, 0x1c, 0xe5, 0x0b, 0x09, 0x2a, 0x92,\n\t0x5c, 0xf8, 0x21, 0x18, 0xad, 0x63, 0xc6, 0xcc, 0x0a, 0x2e, 0xe4, 0x84, 0xe0, 0xb4, 0x14, 0x1c,\n\t0x5d, 0x0b, 0xc8, 0x28, 0xe4, 0xab, 0xbf, 0x28, 0x60, 0x2a, 0xce, 0xd3, 0x2a, 0x61, 0x1e, 0x7c,\n\t0xda, 0x55, 0x7d, 0xda, 0x60, 0x31, 0x71, 0x6d, 0x51, 0x7b, 0x33, 0xd2, 0xdc, 0x58, 0x48, 0x69,\n\t0xab, 0xbc, 0x0d, 0x90, 0x23, 0x1e, 0xae, 0xf3, 0xac, 0x0f, 0x9f, 0x1d, 0xbf, 0x74, 0xee, 0x1d,\n\t0xaa, 0xc4, 0x98, 0x94, 0xb8, 0xb9, 0xbb, 0x1c, 0x01, 0x05, 0x40, 0xea, 0x1f, 0xc3, 0xed, 0x21,\n\t0xf0, 0x8a, 0x84, 0x3f, 0x29, 0x60, 0xc1, 0xa5, 0xc4, 0xa1, 0xc4, 0xdb, 0x5f, 0xc5, 0x0d, 0x5c,\n\t0x5b, 0x71, 0xec, 0x1d, 0x52, 0xf1, 0xa9, 0xc9, 0x73, 0x29, 0xa3, 0xba, 0x99, 0x6a, 0x7a, 0xa3,\n\t0x2f, 0x04, 0xc2, 0x3b, 0x98, 0x62, 0xdb, 0xc2, 0x86, 0x2a, 0x7d, 0x5a, 0x38, 0x42, 0xf8, 0x08,\n\t0x5f, 0xe0, 0x3d, 0x00, 0xeb, 0xa6, 0xc7, 0x73, 0x5a, 0xd9, 0xa0, 0xd8, 0xc2, 0x65, 0x8e, 0x2a,\n\t0x4a, 0x32, 0x17, 0xd7, 0xc7, 0x5a, 0x97, 0x04, 0xea, 0xa1, 0x05, 0xbf, 0x57, 0xc0, 0x6c, 0xb9,\n\t0x7b, 0xd0, 0xc8, 0xca, 0xbc, 0x36, 0x50, 0xaa, 0x7b, 0x0c, 0x2a, 0x63, 0xbe, 0xd5, 0x2c, 0xcd,\n\t0xf6, 0x60, 0xa0, 0x5e, 0xd6, 0xe0, 0x57, 0x20, 0x47, 0xfd, 0x1a, 0x66, 0x85, 0xac, 0x78, 0xe1,\n\t0x74, 0xb3, 0x1b, 0x4e, 0x8d, 0x58, 0xfb, 0x88, 0xeb, 0x7c, 0x41, 0xbc, 0xea, 0x96, 0x2f, 0x26,\n\t0x16, 0x8b, 0x9f, 0x5b, 0xb0, 0x50, 0x80, 0xaa, 0xbe, 0x00, 0x33, 0x9d, 0x83, 0x03, 0x56, 0x01,\n\t0xb0, 0xc2, 0x5e, 0x65, 0x05, 0x45, 0xd8, 0xbd, 0xfc, 0x0e, 0x95, 0x15, 0x35, 0x7a, 0x3c, 0x36,\n\t0x23, 0x12, 0x43, 0x6d, 0xd8, 0xea, 0x45, 0x30, 0x71, 0x9b, 0x3a, 0xbe, 0x2b, 0x9d, 0x84, 0x8b,\n\t0x20, 0x6b, 0x9b, 0xf5, 0x70, 0x04, 0x45, 0x73, 0x71, 0xdd, 0xac, 0x63, 0x24, 0x38, 0xea, 0x8f,\n\t0x0a, 0x98, 0x5c, 0x25, 0x75, 0xe2, 0x21, 0xcc, 0x5c, 0xc7, 0x66, 0x18, 0x5e, 0x49, 0x8c, 0xad,\n\t0xd3, 0x1d, 0x63, 0xeb, 0x44, 0x42, 0xb8, 0x6d, 0x60, 0x3d, 0x05, 0xa3, 0x5f, 0xfb, 0xd8, 0x27,\n\t0x76, 0x45, 0x8e, 0xed, 0x2b, 0xa9, 0x11, 0x6e, 0x06, 0xf2, 0x89, 0x8a, 0x33, 0xc6, 0xf9, 0x20,\n\t0x90, 0x1c, 0x14, 0x42, 0xaa, 0x7f, 0x67, 0xc0, 0x69, 0x61, 0x19, 0x97, 0xfb, 0x57, 0x32, 0x7c,\n\t0x0a, 0x0a, 0x26, 0x63, 0x3e, 0xc5, 0xe5, 0x15, 0xc7, 0xb6, 0x7c, 0xca, 0x7b, 0x60, 0x7f, 0xab,\n\t0x6a, 0x52, 0xcc, 0x44, 0x38, 0x39, 0x63, 0x51, 0x86, 0x53, 0x58, 0xee, 0x23, 0x87, 0xfa, 0x22,\n\t0xc0, 0x5d, 0x30, 0x59, 0x6b, 0x0f, 0x5e, 0xc6, 0xa9, 0xa5, 0xc6, 0x99, 0x48, 0x99, 0x31, 0x27,\n\t0x5d, 0x48, 0xa6, 0x1d, 0x25, 0xb1, 0xe1, 0x67, 0x60, 0xba, 0x86, 0xed, 0xb2, 0xb9, 0x5d, 0xc3,\n\t0x1b, 0x98, 0x5a, 0xd8, 0xf6, 0x44, 0x9f, 0xe4, 0x8c, 0xd9, 0x56, 0xb3, 0x34, 0xbd, 0x9a, 0x64,\n\t0xa1, 0x4e, 0x59, 0xf8, 0x00, 0xcc, 0x6d, 0x3b, 0x94, 0x3a, 0x7b, 0xc4, 0xae, 0x08, 0x3b, 0x21,\n\t0x48, 0x56, 0x80, 0xfc, 0xaf, 0xd5, 0x2c, 0xcd, 0x19, 0xbd, 0x04, 0x50, 0x6f, 0x3d, 0x75, 0x0f,\n\t0xcc, 0xad, 0xf3, 0xc1, 0xc2, 0x1c, 0x9f, 0x5a, 0x38, 0xee, 0x09, 0x58, 0x02, 0xb9, 0x06, 0xa6,\n\t0xdb, 0x41, 0x5d, 0xe7, 0x8d, 0x3c, 0xef, 0x88, 0xc7, 0x9c, 0x80, 0x02, 0x3a, 0x8f, 0xc4, 0x8e,\n\t0x35, 0x1f, 0xa1, 0x55, 0x56, 0x18, 0x11, 0xa2, 0x22, 0x92, 0xf5, 0x24, 0x0b, 0x75, 0xca, 0xaa,\n\t0x87, 0x19, 0x30, 0xdf, 0xa7, 0x05, 0xe1, 0x63, 0x30, 0xc6, 0xe4, 0xdf, 0xb2, 0xad, 0xce, 0xa6,\n\t0x3e, 0x86, 0x54, 0x8e, 0xb7, 0x40, 0x88, 0x86, 0x22, 0x2c, 0xe8, 0x82, 0x49, 0x2a, 0x7d, 0x10,\n\t0x46, 0xe5, 0x36, 0xf8, 0x38, 0x15, 0xbc, 0x3b, 0x3f, 0xf1, 0x73, 0xa3, 0x76, 0x44, 0x94, 0x34,\n\t0x00, 0x5f, 0x80, 0x99, 0xb6, 0xc0, 0x03, 0xa3, 0xc3, 0xc2, 0xe8, 0xd5, 0x54, 0xa3, 0x3d, 0xdf,\n\t0xc5, 0x28, 0x48, 0xbb, 0x33, 0xeb, 0x1d, 0xb8, 0xa8, 0xcb, 0x92, 0xfa, 0x5b, 0x06, 0x1c, 0xb1,\n\t0x20, 0xde, 0xc3, 0xc1, 0x67, 0x26, 0x0e, 0xbe, 0x1b, 0xc7, 0x58, 0x7d, 0x7d, 0x0f, 0x40, 0xd2,\n\t0x71, 0x00, 0x2e, 0x1f, 0xc7, 0xc8, 0xd1, 0x07, 0xe1, 0x9f, 0x19, 0xf0, 0xff, 0xfe, 0xca, 0xf1,\n\t0x81, 0x78, 0x3f, 0x31, 0x69, 0x3f, 0xe9, 0x98, 0xb4, 0x67, 0x06, 0x80, 0xf8, 0xef, 0x60, 0xec,\n\t0x38, 0x18, 0xdf, 0x28, 0xa0, 0xd8, 0x3f, 0x6f, 0xef, 0xe1, 0x80, 0x7c, 0x96, 0x3c, 0x20, 0xaf,\n\t0x1f, 0xa3, 0xca, 0xfa, 0x1c, 0x94, 0xb7, 0x8f, 0x2a, 0xae, 0xe8, 0xf2, 0x1b, 0x60, 0xf5, 0x1f,\n\t0x1c, 0x99, 0x2b, 0x71, 0xa9, 0xa6, 0xfc, 0x84, 0x49, 0x68, 0xdf, 0xb2, 0xf9, 0x02, 0xaa, 0xf3,\n\t0x1d, 0x12, 0x54, 0x24, 0x01, 0xa3, 0xb5, 0x60, 0x65, 0xcb, 0xbe, 0x36, 0x06, 0xdb, 0x94, 0x47,\n\t0xad, 0xf8, 0xe0, 0x3c, 0x90, 0x62, 0x28, 0xc4, 0x57, 0x5f, 0x2a, 0x60, 0x31, 0xad, 0x5d, 0xe1,\n\t0x37, 0x3d, 0xce, 0xb0, 0xe3, 0x5c, 0xd9, 0x83, 0x9f, 0x65, 0x3f, 0x2b, 0xe0, 0x64, 0xaf, 0x63,\n\t0x87, 0x77, 0x00, 0xbf, 0x70, 0xa2, 0xf3, 0x24, 0xea, 0x80, 0x4d, 0x41, 0x45, 0x92, 0x0b, 0xcf,\n\t0x83, 0xb1, 0xaa, 0x69, 0x97, 0xb7, 0xc8, 0xb7, 0xe1, 0xf1, 0x1d, 0xd5, 0xe0, 0x1d, 0x49, 0x47,\n\t0x91, 0x04, 0xbc, 0x09, 0x66, 0x84, 0xde, 0x2a, 0xb6, 0x2b, 0x5e, 0x55, 0x24, 0x4b, 0x1e, 0x0f,\n\t0xd1, 0x52, 0xd8, 0xec, 0xe0, 0xa3, 0x2e, 0x0d, 0xf5, 0x2f, 0x05, 0xc0, 0x7f, 0xb3, 0xef, 0xcf,\n\t0x81, 0xbc, 0xe9, 0x12, 0x71, 0x86, 0x06, 0x5d, 0x90, 0x37, 0x26, 0x5b, 0xcd, 0x52, 0x7e, 0x79,\n\t0xe3, 0x6e, 0x40, 0x44, 0x31, 0x9f, 0x0b, 0x87, 0x8b, 0x30, 0x58, 0x78, 0x52, 0x38, 0x34, 0xcc,\n\t0x50, 0xcc, 0x87, 0xd7, 0xc0, 0x84, 0x55, 0xf3, 0x99, 0x87, 0xe9, 0x96, 0xe5, 0xb8, 0x58, 0x4c,\n\t0x8d, 0x31, 0xe3, 0xa4, 0x8c, 0x69, 0x62, 0xa5, 0x8d, 0x87, 0x12, 0x92, 0x50, 0x03, 0x80, 0x97,\n\t0x3c, 0x73, 0x4d, 0x6e, 0x27, 0x27, 0xec, 0x4c, 0xf1, 0x07, 0x5b, 0x8f, 0xa8, 0xa8, 0x4d, 0x42,\n\t0x7d, 0x0e, 0xe6, 0xb6, 0x30, 0x6d, 0x10, 0x0b, 0x2f, 0x5b, 0x96, 0xe3, 0xdb, 0x5e, 0x78, 0x50,\n\t0xeb, 0x20, 0x1f, 0x89, 0xc9, 0xae, 0x38, 0x21, 0xed, 0xe7, 0x23, 0x2c, 0x14, 0xcb, 0x44, 0x6d,\n\t0x98, 0xe9, 0xdb, 0x86, 0xbf, 0x66, 0xc0, 0x68, 0x0c, 0x9f, 0xdd, 0x25, 0x76, 0x59, 0x22, 0x9f,\n\t0x0a, 0xa5, 0xef, 0x13, 0xbb, 0xfc, 0xb6, 0x59, 0x1a, 0x97, 0x62, 0xfc, 0x13, 0x09, 0x41, 0x78,\n\t0x0f, 0x64, 0x7d, 0x86, 0xa9, 0x6c, 0xb0, 0xf3, 0xa9, 0xd5, 0xfc, 0x88, 0x61, 0x1a, 0x5e, 0x40,\n\t0x63, 0x1c, 0x9a, 0x13, 0x90, 0xc0, 0x80, 0xeb, 0x20, 0x57, 0xe1, 0xaf, 0x22, 0x27, 0xff, 0x85,\n\t0x54, 0xb0, 0xf6, 0x9f, 0x1a, 0x41, 0x21, 0x08, 0x0a, 0x0a, 0x60, 0x20, 0x05, 0x53, 0x2c, 0x91,\n\t0x44, 0xf1, 0x60, 0x83, 0x5c, 0x34, 0x3d, 0x73, 0x6f, 0xc0, 0x56, 0xb3, 0x34, 0x95, 0x64, 0xa1,\n\t0x0e, 0x0b, 0xaa, 0x0e, 0xc6, 0xdb, 0x42, 0x4c, 0x1f, 0x82, 0xc6, 0xad, 0x83, 0xc3, 0xe2, 0xd0,\n\t0xab, 0xc3, 0xe2, 0xd0, 0xeb, 0xc3, 0xe2, 0xd0, 0x77, 0xad, 0xa2, 0x72, 0xd0, 0x2a, 0x2a, 0xaf,\n\t0x5a, 0x45, 0xe5, 0x75, 0xab, 0xa8, 0xbc, 0x69, 0x15, 0x95, 0x1f, 0x7e, 0x2f, 0x0e, 0x3d, 0x29,\n\t0xa5, 0xfc, 0xf7, 0xf1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x2e, 0x29, 0x16, 0xb8, 0x14,\n\t0x00, 0x00,\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AssuredConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.AssuredConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`AssuredConcurrencyShares:` + fmt.Sprintf(\"%v\", this.AssuredConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AssuredConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.AssuredConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AssuredConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1alpha1\";\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `assuredConcurrencyShares` (ACS) configures the execution\n  // limit, which is a limit on the number of requests of this\n  // priority level that may be exeucting at a given time.  ACS must\n  // be a positive number. The server's concurrency limit (SCL) is\n  // divided among the concurrency-controlled priority levels in\n  // proportion to their assured concurrency shares. This produces\n  // the assured concurrency value (ACV) --- the number of requests\n  // that may be executing at a time --- for each such priority\n  // level:\n  //\n  //             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n  //\n  // bigger numbers of ACS mean more reserved concurrent requests (at the\n  // expense of every other PL).\n  // This field has a default value of 30.\n  // +optional\n  optional int32 assuredConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.20\n// +k8s:prerelease-lifecycle-gen:removed=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.20\n// +k8s:prerelease-lifecycle-gen:removed=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.20\n// +k8s:prerelease-lifecycle-gen:removed=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.20\n// +k8s:prerelease-lifecycle-gen:removed=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `assuredConcurrencyShares` (ACS) configures the execution\n\t// limit, which is a limit on the number of requests of this\n\t// priority level that may be exeucting at a given time.  ACS must\n\t// be a positive number. The server's concurrency limit (SCL) is\n\t// divided among the concurrency-controlled priority levels in\n\t// proportion to their assured concurrency shares. This produces\n\t// the assured concurrency value (ACV) --- the number of requests\n\t// that may be executing at a time --- for each such priority\n\t// level:\n\t//\n\t//             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\t//\n\t// bigger numbers of ACS mean more reserved concurrent requests (at the\n\t// expense of every other PL).\n\t// This field has a default value of 30.\n\t// +optional\n\tAssuredConcurrencyShares int32 `json:\"assuredConcurrencyShares\" protobuf:\"varint,1,opt,name=assuredConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"assuredConcurrencyShares\": \"`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time.  ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) \",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 21\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta1 holds api types of version v1alpha1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta1 // import \"k8s.io/api/flowcontrol/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{0}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{1}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{2}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{3}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{4}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{5}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{6}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{7}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{8}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{9}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{10}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{11}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{12}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{13}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{14}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{15}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{16}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{17}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{18}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{19}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{20}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_80171c2a4e3669de, []int{21}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta1.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta1.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta1.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta1.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto\", fileDescriptor_80171c2a4e3669de)\n}\n\nvar fileDescriptor_80171c2a4e3669de = []byte{\n\t// 1553 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x6f, 0xdb, 0xc6,\n\t0x12, 0x37, 0x65, 0xc9, 0xb6, 0xc6, 0x7f, 0xb3, 0x8e, 0x61, 0x3d, 0x07, 0x90, 0x1c, 0x3e, 0xe0,\n\t0xe5, 0xbd, 0x97, 0x84, 0x4a, 0xd2, 0xa4, 0x49, 0x5b, 0xf4, 0x8f, 0xe9, 0xb4, 0x69, 0x1a, 0xdb,\n\t0x71, 0xd6, 0x49, 0x5b, 0xa4, 0x01, 0x1a, 0x8a, 0x5a, 0x4b, 0x8c, 0x25, 0x92, 0xd9, 0x25, 0x65,\n\t0xb8, 0xb9, 0x14, 0xfd, 0x04, 0x3d, 0xb7, 0xc7, 0x1e, 0x7a, 0xef, 0x17, 0xe8, 0xb1, 0x41, 0x4f,\n\t0x39, 0xe6, 0xa4, 0x36, 0xea, 0xa9, 0xdf, 0xa0, 0x0d, 0x50, 0xa0, 0xd8, 0xe5, 0x92, 0x14, 0xf5,\n\t0x8f, 0x42, 0x02, 0xe4, 0xd4, 0x9b, 0x39, 0xf3, 0x9b, 0xdf, 0xec, 0xcc, 0xce, 0xcc, 0x8e, 0x0c,\n\t0xd7, 0x0e, 0xae, 0x30, 0xcd, 0x72, 0xca, 0x07, 0x7e, 0x85, 0x50, 0x9b, 0x78, 0x84, 0x95, 0x5b,\n\t0xc4, 0xae, 0x3a, 0xb4, 0x2c, 0x15, 0x86, 0x6b, 0x95, 0xf7, 0x1b, 0xce, 0xa1, 0xe9, 0xd8, 0x1e,\n\t0x75, 0x1a, 0xe5, 0xd6, 0xf9, 0x0a, 0xf1, 0x8c, 0xf3, 0xe5, 0x1a, 0xb1, 0x09, 0x35, 0x3c, 0x52,\n\t0xd5, 0x5c, 0xea, 0x78, 0x0e, 0x2a, 0x06, 0x78, 0xcd, 0x70, 0x2d, 0xad, 0x0b, 0xaf, 0x49, 0xfc,\n\t0xda, 0xd9, 0x9a, 0xe5, 0xd5, 0xfd, 0x8a, 0x66, 0x3a, 0xcd, 0x72, 0xcd, 0xa9, 0x39, 0x65, 0x61,\n\t0x56, 0xf1, 0xf7, 0xc5, 0x97, 0xf8, 0x10, 0x7f, 0x05, 0x74, 0x6b, 0x17, 0x63, 0xf7, 0x4d, 0xc3,\n\t0xac, 0x5b, 0x36, 0xa1, 0x47, 0x65, 0xf7, 0xa0, 0xc6, 0x05, 0xac, 0xdc, 0x24, 0x9e, 0x51, 0x6e,\n\t0xf5, 0x1d, 0x62, 0xad, 0x3c, 0xcc, 0x8a, 0xfa, 0xb6, 0x67, 0x35, 0x49, 0x9f, 0xc1, 0xeb, 0x69,\n\t0x06, 0xcc, 0xac, 0x93, 0xa6, 0xd1, 0x6b, 0xa7, 0xde, 0x85, 0xd5, 0x0f, 0x1a, 0xce, 0xe1, 0x55,\n\t0x8b, 0x79, 0x96, 0x5d, 0xf3, 0x2d, 0x56, 0x27, 0x74, 0x9b, 0x78, 0x75, 0xa7, 0x8a, 0xde, 0x85,\n\t0xac, 0x77, 0xe4, 0x92, 0x82, 0xb2, 0xae, 0xfc, 0x37, 0xaf, 0x9f, 0x7e, 0xdc, 0x2e, 0x4d, 0x74,\n\t0xda, 0xa5, 0xec, 0xed, 0x23, 0x97, 0x3c, 0x6f, 0x97, 0x4e, 0x0c, 0x31, 0xe3, 0x6a, 0x2c, 0x0c,\n\t0xd5, 0x6f, 0x32, 0x00, 0x1c, 0xb5, 0x27, 0x5c, 0xa3, 0xfb, 0x30, 0xc3, 0xc3, 0xad, 0x1a, 0x9e,\n\t0x21, 0x38, 0x67, 0x2f, 0x9c, 0xd3, 0xe2, 0x5c, 0x47, 0xa7, 0xd6, 0xdc, 0x83, 0x1a, 0x17, 0x30,\n\t0x8d, 0xa3, 0xb5, 0xd6, 0x79, 0xed, 0x66, 0xe5, 0x01, 0x31, 0xbd, 0x6d, 0xe2, 0x19, 0x3a, 0x92,\n\t0xa7, 0x80, 0x58, 0x86, 0x23, 0x56, 0xb4, 0x0b, 0x59, 0xe6, 0x12, 0xb3, 0x90, 0x11, 0xec, 0x9a,\n\t0x36, 0xfa, 0x26, 0xb5, 0xf8, 0x6c, 0x7b, 0x2e, 0x31, 0xf5, 0xb9, 0x30, 0x42, 0xfe, 0x85, 0x05,\n\t0x13, 0xfa, 0x14, 0xa6, 0x98, 0x67, 0x78, 0x3e, 0x2b, 0x4c, 0xf6, 0x9d, 0x38, 0x8d, 0x53, 0xd8,\n\t0xe9, 0x0b, 0x92, 0x75, 0x2a, 0xf8, 0xc6, 0x92, 0x4f, 0x7d, 0x9a, 0x81, 0xe5, 0x18, 0xbc, 0xe9,\n\t0xd8, 0x55, 0xcb, 0xb3, 0x1c, 0x1b, 0xbd, 0x95, 0xc8, 0xfa, 0xa9, 0x9e, 0xac, 0xaf, 0x0e, 0x30,\n\t0x89, 0x33, 0x8e, 0xde, 0x88, 0x8e, 0x9b, 0x11, 0xe6, 0x27, 0x93, 0xce, 0x9f, 0xb7, 0x4b, 0x8b,\n\t0x91, 0x59, 0xf2, 0x3c, 0xa8, 0x05, 0xa8, 0x61, 0x30, 0xef, 0x36, 0x35, 0x6c, 0x16, 0xd0, 0x5a,\n\t0x4d, 0x22, 0xa3, 0xfe, 0xff, 0x78, 0xf7, 0xc4, 0x2d, 0xf4, 0x35, 0xe9, 0x12, 0x6d, 0xf5, 0xb1,\n\t0xe1, 0x01, 0x1e, 0xd0, 0x7f, 0x60, 0x8a, 0x12, 0x83, 0x39, 0x76, 0x21, 0x2b, 0x8e, 0x1c, 0xe5,\n\t0x0b, 0x0b, 0x29, 0x96, 0x5a, 0xf4, 0x3f, 0x98, 0x6e, 0x12, 0xc6, 0x8c, 0x1a, 0x29, 0xe4, 0x04,\n\t0x70, 0x51, 0x02, 0xa7, 0xb7, 0x03, 0x31, 0x0e, 0xf5, 0xea, 0x8f, 0x0a, 0x2c, 0xc4, 0x79, 0xda,\n\t0xb2, 0x98, 0x87, 0xee, 0xf5, 0xd5, 0x9e, 0x36, 0x5e, 0x4c, 0xdc, 0x5a, 0x54, 0xde, 0x92, 0x74,\n\t0x37, 0x13, 0x4a, 0xba, 0xea, 0xee, 0x26, 0xe4, 0x2c, 0x8f, 0x34, 0x79, 0xd6, 0x27, 0x7b, 0xd2,\n\t0x95, 0x52, 0x24, 0xfa, 0xbc, 0xa4, 0xcd, 0x5d, 0xe7, 0x04, 0x38, 0xe0, 0x51, 0x7f, 0x9f, 0xec,\n\t0x8e, 0x80, 0xd7, 0x23, 0xfa, 0x5e, 0x81, 0x35, 0x97, 0x5a, 0x0e, 0xb5, 0xbc, 0xa3, 0x2d, 0xd2,\n\t0x22, 0x8d, 0x4d, 0xc7, 0xde, 0xb7, 0x6a, 0x3e, 0x35, 0x78, 0x2a, 0x65, 0x50, 0x9b, 0x69, 0x9e,\n\t0x77, 0x87, 0x32, 0x60, 0xb2, 0x4f, 0x28, 0xb1, 0x4d, 0xa2, 0xab, 0xf2, 0x48, 0x6b, 0x23, 0xc0,\n\t0x23, 0x8e, 0x82, 0x3e, 0x02, 0xd4, 0x34, 0x3c, 0x9e, 0xd1, 0xda, 0x2e, 0x25, 0x26, 0xa9, 0x72,\n\t0x56, 0x51, 0x90, 0xb9, 0xb8, 0x3a, 0xb6, 0xfb, 0x10, 0x78, 0x80, 0x15, 0xfa, 0x4a, 0x81, 0xe5,\n\t0x6a, 0xff, 0x90, 0x91, 0x75, 0x79, 0x79, 0x9c, 0x44, 0x0f, 0x98, 0x51, 0xfa, 0x6a, 0xa7, 0x5d,\n\t0x5a, 0x1e, 0xa0, 0xc0, 0x83, 0x9c, 0xa1, 0x7b, 0x90, 0xa3, 0x7e, 0x83, 0xb0, 0x42, 0x56, 0x5c,\n\t0x6f, 0xaa, 0xd7, 0x5d, 0xa7, 0x61, 0x99, 0x47, 0x98, 0x9b, 0x7c, 0x62, 0x79, 0xf5, 0x3d, 0x5f,\n\t0xcc, 0x2a, 0x16, 0xdf, 0xb5, 0x50, 0xe1, 0x80, 0x54, 0x7d, 0x04, 0x4b, 0xbd, 0x43, 0x03, 0xd5,\n\t0x00, 0xcc, 0xb0, 0x4f, 0x59, 0x41, 0x11, 0x6e, 0x5f, 0x1b, 0xbf, 0xaa, 0xa2, 0x1e, 0x8f, 0xe7,\n\t0x65, 0x24, 0x62, 0xb8, 0x8b, 0x5a, 0x3d, 0x07, 0x73, 0xd7, 0xa8, 0xe3, 0xbb, 0xf2, 0x8c, 0x68,\n\t0x1d, 0xb2, 0xb6, 0xd1, 0x0c, 0xa7, 0x4f, 0x34, 0x11, 0x77, 0x8c, 0x26, 0xc1, 0x42, 0xa3, 0x7e,\n\t0xa7, 0xc0, 0xfc, 0x96, 0xd5, 0xb4, 0x3c, 0x4c, 0x98, 0xeb, 0xd8, 0x8c, 0xa0, 0x4b, 0x89, 0x89,\n\t0x75, 0xb2, 0x67, 0x62, 0x1d, 0x4b, 0x80, 0xbb, 0x66, 0xd5, 0x67, 0x30, 0xfd, 0xd0, 0x27, 0xbe,\n\t0x65, 0xd7, 0xe4, 0xbc, 0xbe, 0x98, 0x16, 0xe0, 0xad, 0x00, 0x9e, 0xa8, 0x36, 0x7d, 0x96, 0x8f,\n\t0x00, 0xa9, 0xc1, 0x21, 0xa3, 0xfa, 0x57, 0x06, 0x4e, 0x0a, 0xc7, 0xa4, 0x3a, 0xbc, 0x8a, 0xd1,\n\t0x3d, 0x28, 0x18, 0x8c, 0xf9, 0x94, 0x54, 0x37, 0x1d, 0xdb, 0xf4, 0x29, 0xaf, 0xff, 0xa3, 0xbd,\n\t0xba, 0x41, 0x09, 0x13, 0xd1, 0xe4, 0xf4, 0x75, 0x19, 0x4d, 0x61, 0x63, 0x08, 0x0e, 0x0f, 0x65,\n\t0x40, 0x0f, 0x60, 0xbe, 0xd1, 0x1d, 0xbb, 0x0c, 0xf3, 0x6c, 0x5a, 0x98, 0x89, 0x84, 0xe9, 0x2b,\n\t0xf2, 0x04, 0xc9, 0xa4, 0xe3, 0x24, 0x35, 0x7a, 0x1b, 0x16, 0x1b, 0xc4, 0xae, 0x1a, 0x95, 0x06,\n\t0xd9, 0x25, 0xd4, 0x24, 0xb6, 0x27, 0x5a, 0x24, 0xa7, 0x2f, 0x77, 0xda, 0xa5, 0xc5, 0xad, 0xa4,\n\t0x0a, 0xf7, 0x62, 0xd1, 0x4d, 0x58, 0xa9, 0x38, 0x94, 0x3a, 0x87, 0x96, 0x5d, 0x13, 0x7e, 0x42,\n\t0x92, 0xac, 0x20, 0xf9, 0x57, 0xa7, 0x5d, 0x5a, 0xd1, 0x07, 0x01, 0xf0, 0x60, 0x3b, 0xf5, 0x10,\n\t0x56, 0x76, 0xf8, 0x4c, 0x61, 0x8e, 0x4f, 0x4d, 0x12, 0x37, 0x04, 0x2a, 0x41, 0xae, 0x45, 0x68,\n\t0x25, 0x28, 0xea, 0xbc, 0x9e, 0xe7, 0xed, 0xf0, 0x31, 0x17, 0xe0, 0x40, 0xce, 0x23, 0xb1, 0x63,\n\t0xcb, 0x3b, 0x78, 0x8b, 0x15, 0xa6, 0x04, 0x54, 0x44, 0xb2, 0x93, 0x54, 0xe1, 0x5e, 0xac, 0xda,\n\t0xce, 0xc0, 0xea, 0x90, 0xfe, 0x43, 0x77, 0x60, 0x86, 0xc9, 0xbf, 0x65, 0x4f, 0x9d, 0x4a, 0xbb,\n\t0x0b, 0x69, 0x1b, 0x4f, 0xff, 0x90, 0x0c, 0x47, 0x54, 0xc8, 0x81, 0x79, 0x2a, 0x8f, 0x20, 0x7c,\n\t0xca, 0x57, 0xe0, 0x42, 0x1a, 0x77, 0x7f, 0x76, 0xe2, 0xcb, 0xc6, 0xdd, 0x84, 0x38, 0xc9, 0x8f,\n\t0x1e, 0xc1, 0x52, 0x57, 0xd8, 0x81, 0xcf, 0x49, 0xe1, 0xf3, 0x52, 0x9a, 0xcf, 0x81, 0x97, 0xa2,\n\t0x17, 0xa4, 0xdb, 0xa5, 0x9d, 0x1e, 0x5a, 0xdc, 0xe7, 0x48, 0xfd, 0x39, 0x03, 0x23, 0x1e, 0x86,\n\t0x57, 0xb0, 0xe4, 0xdd, 0x4f, 0x2c, 0x79, 0xef, 0xbc, 0xf8, 0x8b, 0x37, 0x74, 0xe9, 0xab, 0xf7,\n\t0x2c, 0x7d, 0xef, 0xbd, 0x84, 0x8f, 0xd1, 0x4b, 0xe0, 0x1f, 0x19, 0xf8, 0xf7, 0x70, 0xe3, 0x78,\n\t0x29, 0xbc, 0x91, 0x18, 0xb1, 0x97, 0x7b, 0x46, 0xec, 0xa9, 0x31, 0x28, 0xfe, 0x59, 0x12, 0x7b,\n\t0x96, 0xc4, 0x5f, 0x14, 0x28, 0x0e, 0xcf, 0xdb, 0x2b, 0x58, 0x1a, 0x3f, 0x4f, 0x2e, 0x8d, 0x6f,\n\t0xbe, 0x78, 0x91, 0x0d, 0x59, 0x22, 0xaf, 0x8d, 0xaa, 0xad, 0x68, 0xdd, 0x1b, 0xe3, 0xc9, 0xff,\n\t0x69, 0x64, 0xaa, 0xc4, 0x76, 0x9a, 0xf2, 0xab, 0x25, 0x61, 0xfd, 0xbe, 0xcd, 0x9f, 0x9e, 0x26,\n\t0x7f, 0x3d, 0x82, 0x82, 0xac, 0xc3, 0x74, 0x23, 0x78, 0xab, 0x65, 0x53, 0x6f, 0x8c, 0xf5, 0x44,\n\t0x8e, 0x7a, 0xda, 0x83, 0xb5, 0x40, 0xc2, 0x70, 0x48, 0xaf, 0x7e, 0xab, 0xc0, 0x7a, 0x5a, 0xb3,\n\t0xa2, 0xc3, 0x01, 0xcb, 0xd7, 0x4b, 0x2c, 0xd6, 0xe3, 0x2f, 0x63, 0x3f, 0x28, 0x70, 0x7c, 0xd0,\n\t0x8e, 0xc3, 0xcb, 0x9f, 0x2f, 0x36, 0xd1, 0x56, 0x12, 0x95, 0xff, 0x2d, 0x21, 0xc5, 0x52, 0x8b,\n\t0xce, 0xc0, 0x4c, 0xdd, 0xb0, 0xab, 0x7b, 0xd6, 0x17, 0xe1, 0xbe, 0x1d, 0x15, 0xe0, 0x87, 0x52,\n\t0x8e, 0x23, 0x04, 0xba, 0x0a, 0x4b, 0xc2, 0x6e, 0x8b, 0xd8, 0x35, 0xaf, 0x2e, 0x72, 0x25, 0x97,\n\t0x86, 0xe8, 0x3d, 0xb8, 0xd5, 0xa3, 0xc7, 0x7d, 0x16, 0xea, 0x9f, 0x0a, 0xa0, 0x17, 0x79, 0xe7,\n\t0x4f, 0x43, 0xde, 0x70, 0x2d, 0xb1, 0x7c, 0x06, 0x2d, 0x90, 0xd7, 0xe7, 0x3b, 0xed, 0x52, 0x7e,\n\t0x63, 0xf7, 0x7a, 0x20, 0xc4, 0xb1, 0x9e, 0x83, 0xc3, 0x27, 0x30, 0x78, 0xea, 0x24, 0x38, 0x74,\n\t0xcc, 0x70, 0xac, 0x47, 0x57, 0x60, 0xce, 0x6c, 0xf8, 0xcc, 0x23, 0x74, 0xcf, 0x74, 0x5c, 0x22,\n\t0x46, 0xc6, 0x8c, 0x7e, 0x5c, 0xc6, 0x34, 0xb7, 0xd9, 0xa5, 0xc3, 0x09, 0x24, 0xd2, 0x00, 0x78,\n\t0xc1, 0x33, 0xd7, 0xe0, 0x7e, 0x72, 0xc2, 0xcf, 0x02, 0xbf, 0xb0, 0x9d, 0x48, 0x8a, 0xbb, 0x10,\n\t0xea, 0x03, 0x58, 0xd9, 0x23, 0xb4, 0x65, 0x99, 0x64, 0xc3, 0x34, 0x1d, 0xdf, 0xf6, 0xc2, 0x35,\n\t0xba, 0x0c, 0xf9, 0x08, 0x26, 0x7b, 0xe2, 0x98, 0xf4, 0x9f, 0x8f, 0xb8, 0x70, 0x8c, 0x89, 0x9a,\n\t0x30, 0x33, 0xbc, 0x09, 0x33, 0x30, 0x1d, 0xd3, 0x67, 0x0f, 0x2c, 0xbb, 0x2a, 0x99, 0x4f, 0x84,\n\t0xe8, 0x1b, 0x96, 0x5d, 0x7d, 0xde, 0x2e, 0xcd, 0x4a, 0x18, 0xff, 0xc4, 0x02, 0x88, 0xae, 0x43,\n\t0xd6, 0x67, 0x84, 0xca, 0xf6, 0x3a, 0x9d, 0x56, 0xcc, 0x77, 0x18, 0xa1, 0xe1, 0xe6, 0x33, 0xc3,\n\t0x99, 0xb9, 0x00, 0x0b, 0x0a, 0xb4, 0x0d, 0xb9, 0x1a, 0xbf, 0x14, 0x39, 0xf5, 0xcf, 0xa4, 0x71,\n\t0x75, 0xff, 0xbc, 0x08, 0xca, 0x40, 0x48, 0x70, 0xc0, 0x82, 0x1e, 0xc2, 0x02, 0x4b, 0xa4, 0x50,\n\t0x5c, 0xd7, 0x18, 0x9b, 0xcc, 0xc0, 0xc4, 0xeb, 0xa8, 0xd3, 0x2e, 0x2d, 0x24, 0x55, 0xb8, 0xc7,\n\t0x81, 0x5a, 0x86, 0xd9, 0xae, 0x00, 0xd3, 0xe7, 0x9f, 0x7e, 0xf5, 0xf1, 0xb3, 0xe2, 0xc4, 0x93,\n\t0x67, 0xc5, 0x89, 0xa7, 0xcf, 0x8a, 0x13, 0x5f, 0x76, 0x8a, 0xca, 0xe3, 0x4e, 0x51, 0x79, 0xd2,\n\t0x29, 0x2a, 0x4f, 0x3b, 0x45, 0xe5, 0xd7, 0x4e, 0x51, 0xf9, 0xfa, 0xb7, 0xe2, 0xc4, 0xdd, 0xe2,\n\t0xe8, 0xff, 0x33, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x2c, 0x6d, 0x6e, 0x75, 0xa1, 0x14, 0x00,\n\t0x00,\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AssuredConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.AssuredConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`AssuredConcurrencyShares:` + fmt.Sprintf(\"%v\", this.AssuredConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AssuredConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.AssuredConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AssuredConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta1\";\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `assuredConcurrencyShares` (ACS) configures the execution\n  // limit, which is a limit on the number of requests of this\n  // priority level that may be exeucting at a given time.  ACS must\n  // be a positive number. The server's concurrency limit (SCL) is\n  // divided among the concurrency-controlled priority levels in\n  // proportion to their assured concurrency shares. This produces\n  // the assured concurrency value (ACV) --- the number of requests\n  // that may be executing at a time --- for each such priority\n  // level:\n  //\n  //             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n  //\n  // bigger numbers of ACS mean more reserved concurrent requests (at the\n  // expense of every other PL).\n  // This field has a default value of 30.\n  // +optional\n  optional int32 assuredConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped.\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `assuredConcurrencyShares` (ACS) configures the execution\n\t// limit, which is a limit on the number of requests of this\n\t// priority level that may be exeucting at a given time.  ACS must\n\t// be a positive number. The server's concurrency limit (SCL) is\n\t// divided among the concurrency-controlled priority levels in\n\t// proportion to their assured concurrency shares. This produces\n\t// the assured concurrency value (ACV) --- the number of requests\n\t// that may be executing at a time --- for each such priority\n\t// level:\n\t//\n\t//             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\t//\n\t// bigger numbers of ACS mean more reserved concurrent requests (at the\n\t// expense of every other PL).\n\t// This field has a default value of 30.\n\t// +optional\n\tAssuredConcurrencyShares int32 `json:\"assuredConcurrencyShares\" protobuf:\"varint,1,opt,name=assuredConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"assuredConcurrencyShares\": \"`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time.  ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) \",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta2 holds api types of version v1alpha1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta2 // import \"k8s.io/api/flowcontrol/v1beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto\n\npackage v1beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{0}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{1}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{2}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{3}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{4}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{5}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{6}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{7}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{8}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{9}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{10}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{11}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{12}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{13}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{14}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{15}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{16}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{17}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{18}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{19}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{20}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed300aa8e672704e, []int{21}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta2.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta2.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta2.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta2.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto\", fileDescriptor_ed300aa8e672704e)\n}\n\nvar fileDescriptor_ed300aa8e672704e = []byte{\n\t// 1554 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x6f, 0xdb, 0xc6,\n\t0x12, 0x37, 0x65, 0xc9, 0xb6, 0xc6, 0x7f, 0xb3, 0x8e, 0x61, 0x3d, 0x07, 0x90, 0x1c, 0x3e, 0xe0,\n\t0xe5, 0xbd, 0x97, 0x84, 0x4a, 0xd2, 0xa4, 0x49, 0x5b, 0xf4, 0x8f, 0xe9, 0xb4, 0x69, 0x1a, 0xdb,\n\t0x71, 0xd6, 0x49, 0x5b, 0xa4, 0x01, 0x1a, 0x8a, 0x5a, 0x4b, 0x8c, 0x25, 0x92, 0xd9, 0x25, 0x65,\n\t0xb8, 0xb9, 0x14, 0xfd, 0x04, 0x3d, 0xb7, 0xc7, 0x1e, 0x7a, 0xef, 0x17, 0xe8, 0xb1, 0x41, 0x4f,\n\t0x39, 0xe6, 0xa4, 0x36, 0xea, 0xa9, 0xdf, 0xa0, 0x0d, 0x50, 0xa0, 0xd8, 0xe5, 0x92, 0x14, 0xf5,\n\t0x8f, 0x42, 0x02, 0xe4, 0xd4, 0x9b, 0x39, 0xf3, 0x9b, 0xdf, 0xec, 0xcc, 0xce, 0xcc, 0x8e, 0x0c,\n\t0xd7, 0x0e, 0xae, 0x30, 0xcd, 0x72, 0xca, 0x07, 0x7e, 0x85, 0x50, 0x9b, 0x78, 0x84, 0x95, 0x5b,\n\t0xc4, 0xae, 0x3a, 0xb4, 0x2c, 0x15, 0x86, 0x6b, 0x95, 0xf7, 0x1b, 0xce, 0xa1, 0xe9, 0xd8, 0x1e,\n\t0x75, 0x1a, 0xe5, 0xd6, 0xf9, 0x0a, 0xf1, 0x8c, 0x0b, 0xe5, 0x1a, 0xb1, 0x09, 0x35, 0x3c, 0x52,\n\t0xd5, 0x5c, 0xea, 0x78, 0x0e, 0x2a, 0x06, 0x78, 0xcd, 0x70, 0x2d, 0xad, 0x0b, 0xaf, 0x49, 0xfc,\n\t0xda, 0xd9, 0x9a, 0xe5, 0xd5, 0xfd, 0x8a, 0x66, 0x3a, 0xcd, 0x72, 0xcd, 0xa9, 0x39, 0x65, 0x61,\n\t0x56, 0xf1, 0xf7, 0xc5, 0x97, 0xf8, 0x10, 0x7f, 0x05, 0x74, 0x6b, 0x17, 0x63, 0xf7, 0x4d, 0xc3,\n\t0xac, 0x5b, 0x36, 0xa1, 0x47, 0x65, 0xf7, 0xa0, 0xc6, 0x05, 0xac, 0xdc, 0x24, 0x9e, 0x51, 0x6e,\n\t0x9d, 0xef, 0x3d, 0xc4, 0x5a, 0x79, 0x98, 0x15, 0xf5, 0x6d, 0xcf, 0x6a, 0x92, 0x3e, 0x83, 0xd7,\n\t0xd3, 0x0c, 0x98, 0x59, 0x27, 0x4d, 0xa3, 0xd7, 0x4e, 0xbd, 0x0b, 0xab, 0x1f, 0x34, 0x9c, 0xc3,\n\t0xab, 0x16, 0xf3, 0x2c, 0xbb, 0xe6, 0x5b, 0xac, 0x4e, 0xe8, 0x36, 0xf1, 0xea, 0x4e, 0x15, 0xbd,\n\t0x0b, 0x59, 0xef, 0xc8, 0x25, 0x05, 0x65, 0x5d, 0xf9, 0x6f, 0x5e, 0x3f, 0xfd, 0xb8, 0x5d, 0x9a,\n\t0xe8, 0xb4, 0x4b, 0xd9, 0xdb, 0x47, 0x2e, 0x79, 0xde, 0x2e, 0x9d, 0x18, 0x62, 0xc6, 0xd5, 0x58,\n\t0x18, 0xaa, 0xdf, 0x64, 0x00, 0x38, 0x6a, 0x4f, 0xb8, 0x46, 0xf7, 0x61, 0x86, 0x87, 0x5b, 0x35,\n\t0x3c, 0x43, 0x70, 0xce, 0x5e, 0x38, 0xa7, 0xc5, 0xb9, 0x8e, 0x4e, 0xad, 0xb9, 0x07, 0x35, 0x2e,\n\t0x60, 0x1a, 0x47, 0x6b, 0xad, 0xf3, 0xda, 0xcd, 0xca, 0x03, 0x62, 0x7a, 0xdb, 0xc4, 0x33, 0x74,\n\t0x24, 0x4f, 0x01, 0xb1, 0x0c, 0x47, 0xac, 0x68, 0x17, 0xb2, 0xcc, 0x25, 0x66, 0x21, 0x23, 0xd8,\n\t0x35, 0x6d, 0xf4, 0x4d, 0x6a, 0xf1, 0xd9, 0xf6, 0x5c, 0x62, 0xea, 0x73, 0x61, 0x84, 0xfc, 0x0b,\n\t0x0b, 0x26, 0xf4, 0x29, 0x4c, 0x31, 0xcf, 0xf0, 0x7c, 0x56, 0x98, 0xec, 0x3b, 0x71, 0x1a, 0xa7,\n\t0xb0, 0xd3, 0x17, 0x24, 0xeb, 0x54, 0xf0, 0x8d, 0x25, 0x9f, 0xfa, 0x34, 0x03, 0xcb, 0x31, 0x78,\n\t0xd3, 0xb1, 0xab, 0x96, 0x67, 0x39, 0x36, 0x7a, 0x2b, 0x91, 0xf5, 0x53, 0x3d, 0x59, 0x5f, 0x1d,\n\t0x60, 0x12, 0x67, 0x1c, 0xbd, 0x11, 0x1d, 0x37, 0x23, 0xcc, 0x4f, 0x26, 0x9d, 0x3f, 0x6f, 0x97,\n\t0x16, 0x23, 0xb3, 0xe4, 0x79, 0x50, 0x0b, 0x50, 0xc3, 0x60, 0xde, 0x6d, 0x6a, 0xd8, 0x2c, 0xa0,\n\t0xb5, 0x9a, 0x44, 0x46, 0xfd, 0xff, 0xf1, 0xee, 0x89, 0x5b, 0xe8, 0x6b, 0xd2, 0x25, 0xda, 0xea,\n\t0x63, 0xc3, 0x03, 0x3c, 0xa0, 0xff, 0xc0, 0x14, 0x25, 0x06, 0x73, 0xec, 0x42, 0x56, 0x1c, 0x39,\n\t0xca, 0x17, 0x16, 0x52, 0x2c, 0xb5, 0xe8, 0x7f, 0x30, 0xdd, 0x24, 0x8c, 0x19, 0x35, 0x52, 0xc8,\n\t0x09, 0xe0, 0xa2, 0x04, 0x4e, 0x6f, 0x07, 0x62, 0x1c, 0xea, 0xd5, 0x1f, 0x15, 0x58, 0x88, 0xf3,\n\t0xb4, 0x65, 0x31, 0x0f, 0xdd, 0xeb, 0xab, 0x3d, 0x6d, 0xbc, 0x98, 0xb8, 0xb5, 0xa8, 0xbc, 0x25,\n\t0xe9, 0x6e, 0x26, 0x94, 0x74, 0xd5, 0xdd, 0x4d, 0xc8, 0x59, 0x1e, 0x69, 0xf2, 0xac, 0x4f, 0xf6,\n\t0xa4, 0x2b, 0xa5, 0x48, 0xf4, 0x79, 0x49, 0x9b, 0xbb, 0xce, 0x09, 0x70, 0xc0, 0xa3, 0xfe, 0x3e,\n\t0xd9, 0x1d, 0x01, 0xaf, 0x47, 0xf4, 0xbd, 0x02, 0x6b, 0x2e, 0xb5, 0x1c, 0x6a, 0x79, 0x47, 0x5b,\n\t0xa4, 0x45, 0x1a, 0x9b, 0x8e, 0xbd, 0x6f, 0xd5, 0x7c, 0x6a, 0xf0, 0x54, 0xca, 0xa0, 0x36, 0xd3,\n\t0x3c, 0xef, 0x0e, 0x65, 0xc0, 0x64, 0x9f, 0x50, 0x62, 0x9b, 0x44, 0x57, 0xe5, 0x91, 0xd6, 0x46,\n\t0x80, 0x47, 0x1c, 0x05, 0x7d, 0x04, 0xa8, 0x69, 0x78, 0x3c, 0xa3, 0xb5, 0x5d, 0x4a, 0x4c, 0x52,\n\t0xe5, 0xac, 0xa2, 0x20, 0x73, 0x71, 0x75, 0x6c, 0xf7, 0x21, 0xf0, 0x00, 0x2b, 0xf4, 0x95, 0x02,\n\t0xcb, 0xd5, 0xfe, 0x21, 0x23, 0xeb, 0xf2, 0xf2, 0x38, 0x89, 0x1e, 0x30, 0xa3, 0xf4, 0xd5, 0x4e,\n\t0xbb, 0xb4, 0x3c, 0x40, 0x81, 0x07, 0x39, 0x43, 0xf7, 0x20, 0x47, 0xfd, 0x06, 0x61, 0x85, 0xac,\n\t0xb8, 0xde, 0x54, 0xaf, 0xbb, 0x4e, 0xc3, 0x32, 0x8f, 0x30, 0x37, 0xf9, 0xc4, 0xf2, 0xea, 0x7b,\n\t0xbe, 0x98, 0x55, 0x2c, 0xbe, 0x6b, 0xa1, 0xc2, 0x01, 0xa9, 0xfa, 0x08, 0x96, 0x7a, 0x87, 0x06,\n\t0xaa, 0x01, 0x98, 0x61, 0x9f, 0xb2, 0x82, 0x22, 0xdc, 0xbe, 0x36, 0x7e, 0x55, 0x45, 0x3d, 0x1e,\n\t0xcf, 0xcb, 0x48, 0xc4, 0x70, 0x17, 0xb5, 0x7a, 0x0e, 0xe6, 0xae, 0x51, 0xc7, 0x77, 0xe5, 0x19,\n\t0xd1, 0x3a, 0x64, 0x6d, 0xa3, 0x19, 0x4e, 0x9f, 0x68, 0x22, 0xee, 0x18, 0x4d, 0x82, 0x85, 0x46,\n\t0xfd, 0x4e, 0x81, 0xf9, 0x2d, 0xab, 0x69, 0x79, 0x98, 0x30, 0xd7, 0xb1, 0x19, 0x41, 0x97, 0x12,\n\t0x13, 0xeb, 0x64, 0xcf, 0xc4, 0x3a, 0x96, 0x00, 0x77, 0xcd, 0xaa, 0xcf, 0x60, 0xfa, 0xa1, 0x4f,\n\t0x7c, 0xcb, 0xae, 0xc9, 0x79, 0x7d, 0x31, 0x2d, 0xc0, 0x5b, 0x01, 0x3c, 0x51, 0x6d, 0xfa, 0x2c,\n\t0x1f, 0x01, 0x52, 0x83, 0x43, 0x46, 0xf5, 0xaf, 0x0c, 0x9c, 0x14, 0x8e, 0x49, 0x75, 0x78, 0x15,\n\t0xa3, 0x7b, 0x50, 0x30, 0x18, 0xf3, 0x29, 0xa9, 0x6e, 0x3a, 0xb6, 0xe9, 0x53, 0x5e, 0xff, 0x47,\n\t0x7b, 0x75, 0x83, 0x12, 0x26, 0xa2, 0xc9, 0xe9, 0xeb, 0x32, 0x9a, 0xc2, 0xc6, 0x10, 0x1c, 0x1e,\n\t0xca, 0x80, 0x1e, 0xc0, 0x7c, 0xa3, 0x3b, 0x76, 0x19, 0xe6, 0xd9, 0xb4, 0x30, 0x13, 0x09, 0xd3,\n\t0x57, 0xe4, 0x09, 0x92, 0x49, 0xc7, 0x49, 0x6a, 0xf4, 0x36, 0x2c, 0x36, 0x88, 0x5d, 0x35, 0x2a,\n\t0x0d, 0xb2, 0x4b, 0xa8, 0x49, 0x6c, 0x4f, 0xb4, 0x48, 0x4e, 0x5f, 0xee, 0xb4, 0x4b, 0x8b, 0x5b,\n\t0x49, 0x15, 0xee, 0xc5, 0xa2, 0x9b, 0xb0, 0x52, 0x71, 0x28, 0x75, 0x0e, 0x2d, 0xbb, 0x26, 0xfc,\n\t0x84, 0x24, 0x59, 0x41, 0xf2, 0xaf, 0x4e, 0xbb, 0xb4, 0xa2, 0x0f, 0x02, 0xe0, 0xc1, 0x76, 0xea,\n\t0x21, 0xac, 0xec, 0xf0, 0x99, 0xc2, 0x1c, 0x9f, 0x9a, 0x24, 0x6e, 0x08, 0x54, 0x82, 0x5c, 0x8b,\n\t0xd0, 0x4a, 0x50, 0xd4, 0x79, 0x3d, 0xcf, 0xdb, 0xe1, 0x63, 0x2e, 0xc0, 0x81, 0x9c, 0x47, 0x62,\n\t0xc7, 0x96, 0x77, 0xf0, 0x16, 0x2b, 0x4c, 0x09, 0xa8, 0x88, 0x64, 0x27, 0xa9, 0xc2, 0xbd, 0x58,\n\t0xb5, 0x9d, 0x81, 0xd5, 0x21, 0xfd, 0x87, 0xee, 0xc0, 0x0c, 0x93, 0x7f, 0xcb, 0x9e, 0x3a, 0x95,\n\t0x76, 0x17, 0xd2, 0x36, 0x9e, 0xfe, 0x21, 0x19, 0x8e, 0xa8, 0x90, 0x03, 0xf3, 0x54, 0x1e, 0x41,\n\t0xf8, 0x94, 0xaf, 0xc0, 0x85, 0x34, 0xee, 0xfe, 0xec, 0xc4, 0x97, 0x8d, 0xbb, 0x09, 0x71, 0x92,\n\t0x1f, 0x3d, 0x82, 0xa5, 0xae, 0xb0, 0x03, 0x9f, 0x93, 0xc2, 0xe7, 0xa5, 0x34, 0x9f, 0x03, 0x2f,\n\t0x45, 0x2f, 0x48, 0xb7, 0x4b, 0x3b, 0x3d, 0xb4, 0xb8, 0xcf, 0x91, 0xfa, 0x73, 0x06, 0x46, 0x3c,\n\t0x0c, 0xaf, 0x60, 0xc9, 0xbb, 0x9f, 0x58, 0xf2, 0xde, 0x79, 0xf1, 0x17, 0x6f, 0xe8, 0xd2, 0x57,\n\t0xef, 0x59, 0xfa, 0xde, 0x7b, 0x09, 0x1f, 0xa3, 0x97, 0xc0, 0x3f, 0x32, 0xf0, 0xef, 0xe1, 0xc6,\n\t0xf1, 0x52, 0x78, 0x23, 0x31, 0x62, 0x2f, 0xf7, 0x8c, 0xd8, 0x53, 0x63, 0x50, 0xfc, 0xb3, 0x24,\n\t0xf6, 0x2c, 0x89, 0xbf, 0x28, 0x50, 0x1c, 0x9e, 0xb7, 0x57, 0xb0, 0x34, 0x7e, 0x9e, 0x5c, 0x1a,\n\t0xdf, 0x7c, 0xf1, 0x22, 0x1b, 0xb2, 0x44, 0x5e, 0x1b, 0x55, 0x5b, 0xd1, 0xba, 0x37, 0xc6, 0x93,\n\t0xff, 0xd3, 0xc8, 0x54, 0x89, 0xed, 0x34, 0xe5, 0x57, 0x4b, 0xc2, 0xfa, 0x7d, 0x9b, 0x3f, 0x3d,\n\t0x4d, 0xfe, 0x7a, 0x04, 0x05, 0x59, 0x87, 0xe9, 0x46, 0xf0, 0x56, 0xcb, 0xa6, 0xde, 0x18, 0xeb,\n\t0x89, 0x1c, 0xf5, 0xb4, 0x07, 0x6b, 0x81, 0x84, 0xe1, 0x90, 0x5e, 0xfd, 0x56, 0x81, 0xf5, 0xb4,\n\t0x66, 0x45, 0x87, 0x03, 0x96, 0xaf, 0x97, 0x58, 0xac, 0xc7, 0x5f, 0xc6, 0x7e, 0x50, 0xe0, 0xf8,\n\t0xa0, 0x1d, 0x87, 0x97, 0x3f, 0x5f, 0x6c, 0xa2, 0xad, 0x24, 0x2a, 0xff, 0x5b, 0x42, 0x8a, 0xa5,\n\t0x16, 0x9d, 0x81, 0x99, 0xba, 0x61, 0x57, 0xf7, 0xac, 0x2f, 0xc2, 0x7d, 0x3b, 0x2a, 0xc0, 0x0f,\n\t0xa5, 0x1c, 0x47, 0x08, 0x74, 0x15, 0x96, 0x84, 0xdd, 0x16, 0xb1, 0x6b, 0x5e, 0x5d, 0xe4, 0x4a,\n\t0x2e, 0x0d, 0xd1, 0x7b, 0x70, 0xab, 0x47, 0x8f, 0xfb, 0x2c, 0xd4, 0x3f, 0x15, 0x40, 0x2f, 0xf2,\n\t0xce, 0x9f, 0x86, 0xbc, 0xe1, 0x5a, 0x62, 0xf9, 0x0c, 0x5a, 0x20, 0xaf, 0xcf, 0x77, 0xda, 0xa5,\n\t0xfc, 0xc6, 0xee, 0xf5, 0x40, 0x88, 0x63, 0x3d, 0x07, 0x87, 0x4f, 0x60, 0xf0, 0xd4, 0x49, 0x70,\n\t0xe8, 0x98, 0xe1, 0x58, 0x8f, 0xae, 0xc0, 0x9c, 0xd9, 0xf0, 0x99, 0x47, 0xe8, 0x9e, 0xe9, 0xb8,\n\t0x44, 0x8c, 0x8c, 0x19, 0xfd, 0xb8, 0x8c, 0x69, 0x6e, 0xb3, 0x4b, 0x87, 0x13, 0x48, 0xa4, 0x01,\n\t0xf0, 0x82, 0x67, 0xae, 0xc1, 0xfd, 0xe4, 0x84, 0x9f, 0x05, 0x7e, 0x61, 0x3b, 0x91, 0x14, 0x77,\n\t0x21, 0xd4, 0x07, 0xb0, 0xb2, 0x47, 0x68, 0xcb, 0x32, 0xc9, 0x86, 0x69, 0x3a, 0xbe, 0xed, 0x85,\n\t0x6b, 0x74, 0x19, 0xf2, 0x11, 0x4c, 0xf6, 0xc4, 0x31, 0xe9, 0x3f, 0x1f, 0x71, 0xe1, 0x18, 0x13,\n\t0x35, 0x61, 0x66, 0x78, 0x13, 0x66, 0x60, 0x3a, 0xa6, 0xcf, 0x1e, 0x58, 0x76, 0x55, 0x32, 0x9f,\n\t0x08, 0xd1, 0x37, 0x2c, 0xbb, 0xfa, 0xbc, 0x5d, 0x9a, 0x95, 0x30, 0xfe, 0x89, 0x05, 0x10, 0x5d,\n\t0x87, 0xac, 0xcf, 0x08, 0x95, 0xed, 0x75, 0x3a, 0xad, 0x98, 0xef, 0x30, 0x42, 0xc3, 0xcd, 0x67,\n\t0x86, 0x33, 0x73, 0x01, 0x16, 0x14, 0x68, 0x1b, 0x72, 0x35, 0x7e, 0x29, 0x72, 0xea, 0x9f, 0x49,\n\t0xe3, 0xea, 0xfe, 0x79, 0x11, 0x94, 0x81, 0x90, 0xe0, 0x80, 0x05, 0x3d, 0x84, 0x05, 0x96, 0x48,\n\t0xa1, 0xb8, 0xae, 0x31, 0x36, 0x99, 0x81, 0x89, 0xd7, 0x51, 0xa7, 0x5d, 0x5a, 0x48, 0xaa, 0x70,\n\t0x8f, 0x03, 0xb5, 0x0c, 0xb3, 0x5d, 0x01, 0xa6, 0xcf, 0x3f, 0xfd, 0xea, 0xe3, 0x67, 0xc5, 0x89,\n\t0x27, 0xcf, 0x8a, 0x13, 0x4f, 0x9f, 0x15, 0x27, 0xbe, 0xec, 0x14, 0x95, 0xc7, 0x9d, 0xa2, 0xf2,\n\t0xa4, 0x53, 0x54, 0x9e, 0x76, 0x8a, 0xca, 0xaf, 0x9d, 0xa2, 0xf2, 0xf5, 0x6f, 0xc5, 0x89, 0xbb,\n\t0xc5, 0xd1, 0xff, 0x67, 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x87, 0x72, 0xbf, 0xe2, 0xa1, 0x14,\n\t0x00, 0x00,\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AssuredConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.AssuredConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`AssuredConcurrencyShares:` + fmt.Sprintf(\"%v\", this.AssuredConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AssuredConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.AssuredConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AssuredConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta2;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta2\";\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `assuredConcurrencyShares` (ACS) configures the execution\n  // limit, which is a limit on the number of requests of this\n  // priority level that may be exeucting at a given time.  ACS must\n  // be a positive number. The server's concurrency limit (SCL) is\n  // divided among the concurrency-controlled priority levels in\n  // proportion to their assured concurrency shares. This produces\n  // the assured concurrency value (ACV) --- the number of requests\n  // that may be executing at a time --- for each such priority\n  // level:\n  //\n  //             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n  //\n  // bigger numbers of ACS mean more reserved concurrent requests (at the\n  // expense of every other PL).\n  // This field has a default value of 30.\n  // +optional\n  optional int32 assuredConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta2\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped.\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `assuredConcurrencyShares` (ACS) configures the execution\n\t// limit, which is a limit on the number of requests of this\n\t// priority level that may be exeucting at a given time.  ACS must\n\t// be a positive number. The server's concurrency limit (SCL) is\n\t// divided among the concurrency-controlled priority levels in\n\t// proportion to their assured concurrency shares. This produces\n\t// the assured concurrency value (ACV) --- the number of requests\n\t// that may be executing at a time --- for each such priority\n\t// level:\n\t//\n\t//             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\t//\n\t// bigger numbers of ACS mean more reserved concurrent requests (at the\n\t// expense of every other PL).\n\t// This field has a default value of 30.\n\t// +optional\n\tAssuredConcurrencyShares int32 `json:\"assuredConcurrencyShares\" protobuf:\"varint,1,opt,name=assuredConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"assuredConcurrencyShares\": \"`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time.  ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) \",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta3 holds api types of version v1beta3 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta3 // import \"k8s.io/api/flowcontrol/v1beta3\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto\n\npackage v1beta3\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{0}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{1}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{2}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{3}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{4}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{5}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{6}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{7}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{8}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{9}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{10}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{11}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{12}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{13}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{14}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{15}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{16}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{17}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{18}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{19}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{20}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_803504887082f044, []int{21}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta3.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta3.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta3.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta3.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto\", fileDescriptor_803504887082f044)\n}\n\nvar fileDescriptor_803504887082f044 = []byte{\n\t// 1552 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6f, 0xdb, 0x46,\n\t0x13, 0x36, 0x65, 0xc9, 0xb6, 0xd6, 0x9f, 0x59, 0xc7, 0xb0, 0x5e, 0x07, 0x90, 0x1c, 0xbe, 0xc0,\n\t0x9b, 0xb7, 0x4d, 0x42, 0xe5, 0xb3, 0x49, 0x5b, 0xf4, 0x23, 0x74, 0xda, 0x34, 0x8d, 0xed, 0x38,\n\t0xeb, 0xa4, 0x2d, 0xd2, 0x00, 0x0d, 0x45, 0xad, 0xa9, 0x8d, 0x25, 0x92, 0xd9, 0x25, 0x65, 0xb8,\n\t0xb9, 0x14, 0xfd, 0x05, 0x3d, 0xb7, 0xc7, 0x1e, 0x7a, 0xef, 0x1f, 0xe8, 0xb1, 0x41, 0x4f, 0x39,\n\t0xe6, 0xa4, 0x36, 0xea, 0xa9, 0xff, 0xa0, 0x0d, 0x50, 0xa0, 0xd8, 0xe5, 0x92, 0x14, 0xa9, 0x0f,\n\t0x0a, 0x09, 0x90, 0x53, 0x6f, 0xe6, 0xcc, 0x33, 0xcf, 0xec, 0xcc, 0xce, 0xcc, 0x8e, 0x0c, 0xae,\n\t0xed, 0x5f, 0x66, 0x1a, 0x71, 0xaa, 0xfb, 0x7e, 0x0d, 0x53, 0x1b, 0x7b, 0x98, 0x55, 0xdb, 0xd8,\n\t0xae, 0x3b, 0xb4, 0x2a, 0x15, 0x86, 0x4b, 0xaa, 0x7b, 0x4d, 0xe7, 0xc0, 0x74, 0x6c, 0x8f, 0x3a,\n\t0xcd, 0x6a, 0xfb, 0x6c, 0x0d, 0x7b, 0xc6, 0xf9, 0xaa, 0x85, 0x6d, 0x4c, 0x0d, 0x0f, 0xd7, 0x35,\n\t0x97, 0x3a, 0x9e, 0x03, 0xcb, 0x01, 0x5e, 0x33, 0x5c, 0xa2, 0xf5, 0xe0, 0x35, 0x89, 0x5f, 0x3b,\n\t0x6d, 0x11, 0xaf, 0xe1, 0xd7, 0x34, 0xd3, 0x69, 0x55, 0x2d, 0xc7, 0x72, 0xaa, 0xc2, 0xac, 0xe6,\n\t0xef, 0x89, 0x2f, 0xf1, 0x21, 0xfe, 0x0a, 0xe8, 0xd6, 0x2e, 0xc4, 0xee, 0x5b, 0x86, 0xd9, 0x20,\n\t0x36, 0xa6, 0x87, 0x55, 0x77, 0xdf, 0xe2, 0x02, 0x56, 0x6d, 0x61, 0xcf, 0xa8, 0xb6, 0xcf, 0xa6,\n\t0x0f, 0xb1, 0x56, 0x1d, 0x66, 0x45, 0x7d, 0xdb, 0x23, 0x2d, 0xdc, 0x67, 0xf0, 0x46, 0x96, 0x01,\n\t0x33, 0x1b, 0xb8, 0x65, 0xa4, 0xed, 0xd4, 0xbb, 0x60, 0xf5, 0xc3, 0xa6, 0x73, 0x70, 0x95, 0x30,\n\t0x8f, 0xd8, 0x96, 0x4f, 0x58, 0x03, 0xd3, 0x2d, 0xec, 0x35, 0x9c, 0x3a, 0x7c, 0x0f, 0xe4, 0xbd,\n\t0x43, 0x17, 0x97, 0x94, 0x75, 0xe5, 0xff, 0x45, 0xfd, 0xe4, 0xe3, 0x4e, 0x65, 0xa2, 0xdb, 0xa9,\n\t0xe4, 0x6f, 0x1f, 0xba, 0xf8, 0x79, 0xa7, 0x72, 0x6c, 0x88, 0x19, 0x57, 0x23, 0x61, 0xa8, 0x7e,\n\t0x9b, 0x03, 0x80, 0xa3, 0x76, 0x85, 0x6b, 0x78, 0x1f, 0xcc, 0xf0, 0x70, 0xeb, 0x86, 0x67, 0x08,\n\t0xce, 0xd9, 0x73, 0x67, 0xb4, 0x38, 0xd7, 0xd1, 0xa9, 0x35, 0x77, 0xdf, 0xe2, 0x02, 0xa6, 0x71,\n\t0xb4, 0xd6, 0x3e, 0xab, 0xdd, 0xac, 0x3d, 0xc0, 0xa6, 0xb7, 0x85, 0x3d, 0x43, 0x87, 0xf2, 0x14,\n\t0x20, 0x96, 0xa1, 0x88, 0x15, 0xee, 0x80, 0x3c, 0x73, 0xb1, 0x59, 0xca, 0x09, 0x76, 0x4d, 0x1b,\n\t0x7d, 0x93, 0x5a, 0x7c, 0xb6, 0x5d, 0x17, 0x9b, 0xfa, 0x5c, 0x18, 0x21, 0xff, 0x42, 0x82, 0x09,\n\t0x7e, 0x06, 0xa6, 0x98, 0x67, 0x78, 0x3e, 0x2b, 0x4d, 0xf6, 0x9d, 0x38, 0x8b, 0x53, 0xd8, 0xe9,\n\t0x0b, 0x92, 0x75, 0x2a, 0xf8, 0x46, 0x92, 0x4f, 0x7d, 0x9a, 0x03, 0xcb, 0x31, 0x78, 0xc3, 0xb1,\n\t0xeb, 0xc4, 0x23, 0x8e, 0x0d, 0xdf, 0x4e, 0x64, 0xfd, 0x44, 0x2a, 0xeb, 0xab, 0x03, 0x4c, 0xe2,\n\t0x8c, 0xc3, 0x37, 0xa3, 0xe3, 0xe6, 0x84, 0xf9, 0xf1, 0xa4, 0xf3, 0xe7, 0x9d, 0xca, 0x62, 0x64,\n\t0x96, 0x3c, 0x0f, 0x6c, 0x03, 0xd8, 0x34, 0x98, 0x77, 0x9b, 0x1a, 0x36, 0x0b, 0x68, 0x49, 0x0b,\n\t0xcb, 0xa8, 0x5f, 0x1f, 0xef, 0x9e, 0xb8, 0x85, 0xbe, 0x26, 0x5d, 0xc2, 0xcd, 0x3e, 0x36, 0x34,\n\t0xc0, 0x03, 0xfc, 0x1f, 0x98, 0xa2, 0xd8, 0x60, 0x8e, 0x5d, 0xca, 0x8b, 0x23, 0x47, 0xf9, 0x42,\n\t0x42, 0x8a, 0xa4, 0x16, 0xbe, 0x06, 0xa6, 0x5b, 0x98, 0x31, 0xc3, 0xc2, 0xa5, 0x82, 0x00, 0x2e,\n\t0x4a, 0xe0, 0xf4, 0x56, 0x20, 0x46, 0xa1, 0x5e, 0xfd, 0x49, 0x01, 0x0b, 0x71, 0x9e, 0x36, 0x09,\n\t0xf3, 0xe0, 0xbd, 0xbe, 0xda, 0xd3, 0xc6, 0x8b, 0x89, 0x5b, 0x8b, 0xca, 0x5b, 0x92, 0xee, 0x66,\n\t0x42, 0x49, 0x4f, 0xdd, 0xdd, 0x04, 0x05, 0xe2, 0xe1, 0x16, 0xcf, 0xfa, 0x64, 0x2a, 0x5d, 0x19,\n\t0x45, 0xa2, 0xcf, 0x4b, 0xda, 0xc2, 0x75, 0x4e, 0x80, 0x02, 0x1e, 0xf5, 0x8f, 0xc9, 0xde, 0x08,\n\t0x78, 0x3d, 0xc2, 0x1f, 0x14, 0xb0, 0xe6, 0x52, 0xe2, 0x50, 0xe2, 0x1d, 0x6e, 0xe2, 0x36, 0x6e,\n\t0x6e, 0x38, 0xf6, 0x1e, 0xb1, 0x7c, 0x6a, 0xf0, 0x54, 0xca, 0xa0, 0x36, 0xb2, 0x3c, 0xef, 0x0c,\n\t0x65, 0x40, 0x78, 0x0f, 0x53, 0x6c, 0x9b, 0x58, 0x57, 0xe5, 0x91, 0xd6, 0x46, 0x80, 0x47, 0x1c,\n\t0x05, 0x7e, 0x0c, 0x60, 0xcb, 0xf0, 0x78, 0x46, 0xad, 0x1d, 0x8a, 0x4d, 0x5c, 0xe7, 0xac, 0xa2,\n\t0x20, 0x0b, 0x71, 0x75, 0x6c, 0xf5, 0x21, 0xd0, 0x00, 0x2b, 0xf8, 0xb5, 0x02, 0x96, 0xeb, 0xfd,\n\t0x43, 0x46, 0xd6, 0xe5, 0xa5, 0x71, 0x12, 0x3d, 0x60, 0x46, 0xe9, 0xab, 0xdd, 0x4e, 0x65, 0x79,\n\t0x80, 0x02, 0x0d, 0x72, 0x06, 0xef, 0x81, 0x02, 0xf5, 0x9b, 0x98, 0x95, 0xf2, 0xe2, 0x7a, 0x33,\n\t0xbd, 0xee, 0x38, 0x4d, 0x62, 0x1e, 0x22, 0x6e, 0xf2, 0x29, 0xf1, 0x1a, 0xbb, 0xbe, 0x98, 0x55,\n\t0x2c, 0xbe, 0x6b, 0xa1, 0x42, 0x01, 0xa9, 0xfa, 0x08, 0x2c, 0xa5, 0x87, 0x06, 0xb4, 0x00, 0x30,\n\t0xc3, 0x3e, 0x65, 0x25, 0x45, 0xb8, 0x3d, 0x3f, 0x7e, 0x55, 0x45, 0x3d, 0x1e, 0xcf, 0xcb, 0x48,\n\t0xc4, 0x50, 0x0f, 0xb5, 0x7a, 0x06, 0xcc, 0x5d, 0xa3, 0x8e, 0xef, 0xca, 0x33, 0xc2, 0x75, 0x90,\n\t0xb7, 0x8d, 0x56, 0x38, 0x7d, 0xa2, 0x89, 0xb8, 0x6d, 0xb4, 0x30, 0x12, 0x1a, 0xf5, 0x7b, 0x05,\n\t0xcc, 0x6f, 0x92, 0x16, 0xf1, 0x10, 0x66, 0xae, 0x63, 0x33, 0x0c, 0x2f, 0x26, 0x26, 0xd6, 0xf1,\n\t0xd4, 0xc4, 0x3a, 0x92, 0x00, 0xf7, 0xcc, 0xaa, 0xcf, 0xc1, 0xf4, 0x43, 0x1f, 0xfb, 0xc4, 0xb6,\n\t0xe4, 0xbc, 0xbe, 0x90, 0x15, 0xe0, 0xad, 0x00, 0x9e, 0xa8, 0x36, 0x7d, 0x96, 0x8f, 0x00, 0xa9,\n\t0x41, 0x21, 0xa3, 0xfa, 0x77, 0x0e, 0x1c, 0x17, 0x8e, 0x71, 0x7d, 0x78, 0x15, 0xc3, 0x7b, 0xa0,\n\t0x64, 0x3b, 0x2d, 0x62, 0x1b, 0x5c, 0x6e, 0xfa, 0x94, 0xd7, 0xff, 0xe1, 0x6e, 0xc3, 0xa0, 0x98,\n\t0x89, 0x68, 0x0a, 0xfa, 0xba, 0x8c, 0xa6, 0xb4, 0x3d, 0x04, 0x87, 0x86, 0x32, 0xc0, 0x07, 0x60,\n\t0xbe, 0xd9, 0x1b, 0xbb, 0x0c, 0xf3, 0x74, 0x56, 0x98, 0x89, 0x84, 0xe9, 0x2b, 0xf2, 0x04, 0xc9,\n\t0xa4, 0xa3, 0x24, 0x35, 0x7c, 0x07, 0x2c, 0x36, 0xb1, 0x5d, 0x37, 0x6a, 0x4d, 0xbc, 0x83, 0xa9,\n\t0x89, 0x6d, 0x4f, 0xb4, 0x48, 0x41, 0x5f, 0xee, 0x76, 0x2a, 0x8b, 0x9b, 0x49, 0x15, 0x4a, 0x63,\n\t0xe1, 0x4d, 0xb0, 0x52, 0x73, 0x28, 0x75, 0x0e, 0x88, 0x6d, 0x09, 0x3f, 0x21, 0x49, 0x5e, 0x90,\n\t0xfc, 0xa7, 0xdb, 0xa9, 0xac, 0xe8, 0x83, 0x00, 0x68, 0xb0, 0x9d, 0x7a, 0x00, 0x56, 0xb6, 0xf9,\n\t0x4c, 0x61, 0x8e, 0x4f, 0x4d, 0x1c, 0x37, 0x04, 0xac, 0x80, 0x42, 0x1b, 0xd3, 0x5a, 0x50, 0xd4,\n\t0x45, 0xbd, 0xc8, 0xdb, 0xe1, 0x13, 0x2e, 0x40, 0x81, 0x9c, 0x47, 0x62, 0xc7, 0x96, 0x77, 0xd0,\n\t0x26, 0x2b, 0x4d, 0x09, 0xa8, 0x88, 0x64, 0x3b, 0xa9, 0x42, 0x69, 0xac, 0xda, 0xc9, 0x81, 0xd5,\n\t0x21, 0xfd, 0x07, 0xef, 0x80, 0x19, 0x26, 0xff, 0x96, 0x3d, 0x75, 0x22, 0xeb, 0x2e, 0xa4, 0x6d,\n\t0x3c, 0xfd, 0x43, 0x32, 0x14, 0x51, 0x41, 0x07, 0xcc, 0x53, 0x79, 0x04, 0xe1, 0x53, 0xbe, 0x02,\n\t0xe7, 0xb2, 0xb8, 0xfb, 0xb3, 0x13, 0x5f, 0x36, 0xea, 0x25, 0x44, 0x49, 0x7e, 0xf8, 0x08, 0x2c,\n\t0xf5, 0x84, 0x1d, 0xf8, 0x9c, 0x14, 0x3e, 0x2f, 0x66, 0xf9, 0x1c, 0x78, 0x29, 0x7a, 0x49, 0xba,\n\t0x5d, 0xda, 0x4e, 0xd1, 0xa2, 0x3e, 0x47, 0xea, 0x2f, 0x39, 0x30, 0xe2, 0x61, 0x78, 0x05, 0x4b,\n\t0xde, 0xfd, 0xc4, 0x92, 0xf7, 0xee, 0x8b, 0xbf, 0x78, 0x43, 0x97, 0xbe, 0x46, 0x6a, 0xe9, 0x7b,\n\t0xff, 0x25, 0x7c, 0x8c, 0x5e, 0x02, 0xff, 0xcc, 0x81, 0xff, 0x0e, 0x37, 0x8e, 0x97, 0xc2, 0x1b,\n\t0x89, 0x11, 0x7b, 0x29, 0x35, 0x62, 0x4f, 0x8c, 0x41, 0xf1, 0xef, 0x92, 0x98, 0x5a, 0x12, 0x7f,\n\t0x55, 0x40, 0x79, 0x78, 0xde, 0x5e, 0xc1, 0xd2, 0xf8, 0x45, 0x72, 0x69, 0x7c, 0xeb, 0xc5, 0x8b,\n\t0x6c, 0xc8, 0x12, 0x79, 0x6d, 0x54, 0x6d, 0x45, 0xeb, 0xde, 0x18, 0x4f, 0xfe, 0xcf, 0x23, 0x53,\n\t0x25, 0xb6, 0xd3, 0x8c, 0x5f, 0x2d, 0x09, 0xeb, 0x0f, 0x6c, 0xfe, 0xf4, 0xb4, 0xf8, 0xeb, 0x11,\n\t0x14, 0x64, 0x03, 0x4c, 0x37, 0x83, 0xb7, 0x5a, 0x36, 0xf5, 0x95, 0xb1, 0x9e, 0xc8, 0x51, 0x4f,\n\t0x7b, 0xb0, 0x16, 0x48, 0x18, 0x0a, 0xe9, 0xd5, 0xef, 0x14, 0xb0, 0x9e, 0xd5, 0xac, 0xf0, 0x60,\n\t0xc0, 0xf2, 0xf5, 0x12, 0x8b, 0xf5, 0xf8, 0xcb, 0xd8, 0x8f, 0x0a, 0x38, 0x3a, 0x68, 0xc7, 0xe1,\n\t0xe5, 0xcf, 0x17, 0x9b, 0x68, 0x2b, 0x89, 0xca, 0xff, 0x96, 0x90, 0x22, 0xa9, 0x85, 0xa7, 0xc0,\n\t0x4c, 0xc3, 0xb0, 0xeb, 0xbb, 0xe4, 0xcb, 0x70, 0xdf, 0x8e, 0x0a, 0xf0, 0x23, 0x29, 0x47, 0x11,\n\t0x02, 0x5e, 0x05, 0x4b, 0xc2, 0x6e, 0x13, 0xdb, 0x96, 0xd7, 0x10, 0xb9, 0x92, 0x4b, 0x43, 0xf4,\n\t0x1e, 0xdc, 0x4a, 0xe9, 0x51, 0x9f, 0x85, 0xfa, 0x97, 0x02, 0xe0, 0x8b, 0xbc, 0xf3, 0x27, 0x41,\n\t0xd1, 0x70, 0x89, 0x58, 0x3e, 0x83, 0x16, 0x28, 0xea, 0xf3, 0xdd, 0x4e, 0xa5, 0x78, 0x65, 0xe7,\n\t0x7a, 0x20, 0x44, 0xb1, 0x9e, 0x83, 0xc3, 0x27, 0x30, 0x78, 0xea, 0x24, 0x38, 0x74, 0xcc, 0x50,\n\t0xac, 0x87, 0x97, 0xc1, 0x9c, 0xd9, 0xf4, 0x99, 0x87, 0xe9, 0xae, 0xe9, 0xb8, 0x58, 0x8c, 0x8c,\n\t0x19, 0xfd, 0xa8, 0x8c, 0x69, 0x6e, 0xa3, 0x47, 0x87, 0x12, 0x48, 0xa8, 0x01, 0xc0, 0x0b, 0x9e,\n\t0xb9, 0x06, 0xf7, 0x53, 0x10, 0x7e, 0x16, 0xf8, 0x85, 0x6d, 0x47, 0x52, 0xd4, 0x83, 0x50, 0x1f,\n\t0x80, 0x95, 0x5d, 0x4c, 0xdb, 0xc4, 0xc4, 0x57, 0x4c, 0xd3, 0xf1, 0x6d, 0x2f, 0x5c, 0xa3, 0xab,\n\t0xa0, 0x18, 0xc1, 0x64, 0x4f, 0x1c, 0x91, 0xfe, 0x8b, 0x11, 0x17, 0x8a, 0x31, 0x51, 0x13, 0xe6,\n\t0x86, 0x37, 0x61, 0x0e, 0x4c, 0xc7, 0xf4, 0xf9, 0x7d, 0x62, 0xd7, 0x25, 0xf3, 0xb1, 0x10, 0x7d,\n\t0x83, 0xd8, 0xf5, 0xe7, 0x9d, 0xca, 0xac, 0x84, 0xf1, 0x4f, 0x24, 0x80, 0xf0, 0x3a, 0xc8, 0xfb,\n\t0x0c, 0x53, 0xd9, 0x5e, 0x27, 0xb3, 0x8a, 0xf9, 0x0e, 0xc3, 0x34, 0xdc, 0x7c, 0x66, 0x38, 0x33,\n\t0x17, 0x20, 0x41, 0x01, 0xb7, 0x40, 0xc1, 0xe2, 0x97, 0x22, 0xa7, 0xfe, 0xa9, 0x2c, 0xae, 0xde,\n\t0x9f, 0x17, 0x41, 0x19, 0x08, 0x09, 0x0a, 0x58, 0xe0, 0x43, 0xb0, 0xc0, 0x12, 0x29, 0x14, 0xd7,\n\t0x35, 0xc6, 0x26, 0x33, 0x30, 0xf1, 0x3a, 0xec, 0x76, 0x2a, 0x0b, 0x49, 0x15, 0x4a, 0x39, 0x50,\n\t0xab, 0x60, 0xb6, 0x27, 0xc0, 0xec, 0xf9, 0xa7, 0x5f, 0x7d, 0xfc, 0xac, 0x3c, 0xf1, 0xe4, 0x59,\n\t0x79, 0xe2, 0xe9, 0xb3, 0xf2, 0xc4, 0x57, 0xdd, 0xb2, 0xf2, 0xb8, 0x5b, 0x56, 0x9e, 0x74, 0xcb,\n\t0xca, 0xd3, 0x6e, 0x59, 0xf9, 0xad, 0x5b, 0x56, 0xbe, 0xf9, 0xbd, 0x3c, 0x71, 0xb7, 0x3c, 0xfa,\n\t0xff, 0x8c, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x98, 0x4a, 0x24, 0x86, 0xa1, 0x14, 0x00, 0x00,\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NominalConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.NominalConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + fmt.Sprintf(\"%v\", this.NominalConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NominalConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta3;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta3\";\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats available at this priority level.\n  // This is used both for requests dispatched from this priority level\n  // as well as requests dispatched from other priority levels\n  // borrowing seats from this level.\n  // The server's concurrency limit (ServerCL) is divided among the\n  // Limited priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[limited priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other Limited priority level.\n  // This field has a default value of 30.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta3\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped.\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats available at this priority level.\n\t// This is used both for requests dispatched from this priority level\n\t// as well as requests dispatched from other priority levels\n\t// borrowing seats from this level.\n\t// The server's concurrency limit (ServerCL) is divided among the\n\t// Limited priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[limited priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other Limited priority level.\n\t// This field has a default value of 30.\n\t// +optional\n\tNominalConcurrencyShares int32 `json:\"nominalConcurrencyShares\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30.\",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +groupName=networking.k8s.io\n\npackage v1 // import \"k8s.io/api/networking/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/networking/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{0}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{1}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IPBlock) Reset()      { *m = IPBlock{} }\nfunc (*IPBlock) ProtoMessage() {}\nfunc (*IPBlock) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{2}\n}\nfunc (m *IPBlock) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPBlock) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPBlock.Merge(m, src)\n}\nfunc (m *IPBlock) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPBlock) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPBlock.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPBlock proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{3}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{4}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressClass) Reset()      { *m = IngressClass{} }\nfunc (*IngressClass) ProtoMessage() {}\nfunc (*IngressClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{5}\n}\nfunc (m *IngressClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClass.Merge(m, src)\n}\nfunc (m *IngressClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClass proto.InternalMessageInfo\n\nfunc (m *IngressClassList) Reset()      { *m = IngressClassList{} }\nfunc (*IngressClassList) ProtoMessage() {}\nfunc (*IngressClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{6}\n}\nfunc (m *IngressClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassList.Merge(m, src)\n}\nfunc (m *IngressClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassList proto.InternalMessageInfo\n\nfunc (m *IngressClassParametersReference) Reset()      { *m = IngressClassParametersReference{} }\nfunc (*IngressClassParametersReference) ProtoMessage() {}\nfunc (*IngressClassParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{7}\n}\nfunc (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassParametersReference.Merge(m, src)\n}\nfunc (m *IngressClassParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo\n\nfunc (m *IngressClassSpec) Reset()      { *m = IngressClassSpec{} }\nfunc (*IngressClassSpec) ProtoMessage() {}\nfunc (*IngressClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{8}\n}\nfunc (m *IngressClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassSpec.Merge(m, src)\n}\nfunc (m *IngressClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{9}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{10}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{11}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{12}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{13}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{14}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressServiceBackend) Reset()      { *m = IngressServiceBackend{} }\nfunc (*IngressServiceBackend) ProtoMessage() {}\nfunc (*IngressServiceBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{15}\n}\nfunc (m *IngressServiceBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressServiceBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressServiceBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressServiceBackend.Merge(m, src)\n}\nfunc (m *IngressServiceBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressServiceBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressServiceBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressServiceBackend proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{16}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{17}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{18}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc (m *NetworkPolicy) Reset()      { *m = NetworkPolicy{} }\nfunc (*NetworkPolicy) ProtoMessage() {}\nfunc (*NetworkPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{19}\n}\nfunc (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicy.Merge(m, src)\n}\nfunc (m *NetworkPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyEgressRule) Reset()      { *m = NetworkPolicyEgressRule{} }\nfunc (*NetworkPolicyEgressRule) ProtoMessage() {}\nfunc (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{20}\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyEgressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyEgressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyEgressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyEgressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyIngressRule) Reset()      { *m = NetworkPolicyIngressRule{} }\nfunc (*NetworkPolicyIngressRule) ProtoMessage() {}\nfunc (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{21}\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyIngressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyIngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyIngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyIngressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyList) Reset()      { *m = NetworkPolicyList{} }\nfunc (*NetworkPolicyList) ProtoMessage() {}\nfunc (*NetworkPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{22}\n}\nfunc (m *NetworkPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyList.Merge(m, src)\n}\nfunc (m *NetworkPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyList proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPeer) Reset()      { *m = NetworkPolicyPeer{} }\nfunc (*NetworkPolicyPeer) ProtoMessage() {}\nfunc (*NetworkPolicyPeer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{23}\n}\nfunc (m *NetworkPolicyPeer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPeer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPeer.Merge(m, src)\n}\nfunc (m *NetworkPolicyPeer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPeer) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPeer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPeer proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPort) Reset()      { *m = NetworkPolicyPort{} }\nfunc (*NetworkPolicyPort) ProtoMessage() {}\nfunc (*NetworkPolicyPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{24}\n}\nfunc (m *NetworkPolicyPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPort.Merge(m, src)\n}\nfunc (m *NetworkPolicyPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPort proto.InternalMessageInfo\n\nfunc (m *NetworkPolicySpec) Reset()      { *m = NetworkPolicySpec{} }\nfunc (*NetworkPolicySpec) ProtoMessage() {}\nfunc (*NetworkPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{25}\n}\nfunc (m *NetworkPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicySpec.Merge(m, src)\n}\nfunc (m *NetworkPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyStatus) Reset()      { *m = NetworkPolicyStatus{} }\nfunc (*NetworkPolicyStatus) ProtoMessage() {}\nfunc (*NetworkPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{26}\n}\nfunc (m *NetworkPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyStatus.Merge(m, src)\n}\nfunc (m *NetworkPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyStatus proto.InternalMessageInfo\n\nfunc (m *ServiceBackendPort) Reset()      { *m = ServiceBackendPort{} }\nfunc (*ServiceBackendPort) ProtoMessage() {}\nfunc (*ServiceBackendPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1c72867a70a7cc90, []int{27}\n}\nfunc (m *ServiceBackendPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceBackendPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceBackendPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceBackendPort.Merge(m, src)\n}\nfunc (m *ServiceBackendPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceBackendPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceBackendPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceBackendPort proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.networking.v1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.networking.v1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*IPBlock)(nil), \"k8s.io.api.networking.v1.IPBlock\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.networking.v1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.networking.v1.IngressBackend\")\n\tproto.RegisterType((*IngressClass)(nil), \"k8s.io.api.networking.v1.IngressClass\")\n\tproto.RegisterType((*IngressClassList)(nil), \"k8s.io.api.networking.v1.IngressClassList\")\n\tproto.RegisterType((*IngressClassParametersReference)(nil), \"k8s.io.api.networking.v1.IngressClassParametersReference\")\n\tproto.RegisterType((*IngressClassSpec)(nil), \"k8s.io.api.networking.v1.IngressClassSpec\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.networking.v1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.networking.v1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.networking.v1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.networking.v1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.networking.v1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.networking.v1.IngressRuleValue\")\n\tproto.RegisterType((*IngressServiceBackend)(nil), \"k8s.io.api.networking.v1.IngressServiceBackend\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.networking.v1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.networking.v1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.networking.v1.IngressTLS\")\n\tproto.RegisterType((*NetworkPolicy)(nil), \"k8s.io.api.networking.v1.NetworkPolicy\")\n\tproto.RegisterType((*NetworkPolicyEgressRule)(nil), \"k8s.io.api.networking.v1.NetworkPolicyEgressRule\")\n\tproto.RegisterType((*NetworkPolicyIngressRule)(nil), \"k8s.io.api.networking.v1.NetworkPolicyIngressRule\")\n\tproto.RegisterType((*NetworkPolicyList)(nil), \"k8s.io.api.networking.v1.NetworkPolicyList\")\n\tproto.RegisterType((*NetworkPolicyPeer)(nil), \"k8s.io.api.networking.v1.NetworkPolicyPeer\")\n\tproto.RegisterType((*NetworkPolicyPort)(nil), \"k8s.io.api.networking.v1.NetworkPolicyPort\")\n\tproto.RegisterType((*NetworkPolicySpec)(nil), \"k8s.io.api.networking.v1.NetworkPolicySpec\")\n\tproto.RegisterType((*NetworkPolicyStatus)(nil), \"k8s.io.api.networking.v1.NetworkPolicyStatus\")\n\tproto.RegisterType((*ServiceBackendPort)(nil), \"k8s.io.api.networking.v1.ServiceBackendPort\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/networking/v1/generated.proto\", fileDescriptor_1c72867a70a7cc90)\n}\n\nvar fileDescriptor_1c72867a70a7cc90 = []byte{\n\t// 1715 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x47,\n\t0x12, 0xd6, 0x50, 0xa2, 0x48, 0x35, 0x25, 0x59, 0x6a, 0xdb, 0x58, 0xae, 0x16, 0x4b, 0x6a, 0x07,\n\t0x6b, 0x5b, 0xbb, 0xb6, 0xc9, 0xb5, 0x6c, 0x2c, 0x76, 0x2f, 0x49, 0x3c, 0xb2, 0x2c, 0x2b, 0x96,\n\t0x29, 0xa2, 0xc9, 0x38, 0x48, 0x90, 0x87, 0x47, 0xc3, 0x16, 0x35, 0xe6, 0x70, 0x7a, 0xd0, 0xd3,\n\t0x54, 0xac, 0x20, 0x08, 0x72, 0xc9, 0x21, 0xb7, 0xdc, 0x72, 0x0e, 0xf2, 0x0b, 0x82, 0xe4, 0x10,\n\t0x20, 0x48, 0x8c, 0x5c, 0x02, 0x1f, 0x0d, 0xe4, 0xe2, 0x4b, 0x88, 0x98, 0xf9, 0x17, 0x3a, 0x05,\n\t0xfd, 0x98, 0x17, 0x1f, 0x22, 0x63, 0x18, 0x3a, 0x49, 0x5d, 0x55, 0xfd, 0x75, 0xbd, 0xab, 0x86,\n\t0xe0, 0x66, 0xeb, 0x7f, 0x7e, 0xc9, 0x26, 0xe5, 0x56, 0x67, 0x0f, 0x53, 0x17, 0x33, 0xec, 0x97,\n\t0x0f, 0xb1, 0xdb, 0x20, 0xb4, 0xac, 0x18, 0xa6, 0x67, 0x97, 0x5d, 0xcc, 0x3e, 0x20, 0xb4, 0x65,\n\t0xbb, 0xcd, 0xf2, 0xe1, 0xb5, 0x72, 0x13, 0xbb, 0x98, 0x9a, 0x0c, 0x37, 0x4a, 0x1e, 0x25, 0x8c,\n\t0xc0, 0xbc, 0x94, 0x2c, 0x99, 0x9e, 0x5d, 0x8a, 0x24, 0x4b, 0x87, 0xd7, 0x56, 0xae, 0x36, 0x6d,\n\t0x76, 0xd0, 0xd9, 0x2b, 0x59, 0xa4, 0x5d, 0x6e, 0x92, 0x26, 0x29, 0x8b, 0x0b, 0x7b, 0x9d, 0x7d,\n\t0x71, 0x12, 0x07, 0xf1, 0x9f, 0x04, 0x5a, 0xd1, 0x63, 0x4f, 0x5a, 0x84, 0xe2, 0x21, 0x8f, 0xad,\n\t0xdc, 0x88, 0x64, 0xda, 0xa6, 0x75, 0x60, 0xbb, 0x98, 0x1e, 0x95, 0xbd, 0x56, 0x93, 0x13, 0xfc,\n\t0x72, 0x1b, 0x33, 0x73, 0xd8, 0xad, 0xf2, 0xa8, 0x5b, 0xb4, 0xe3, 0x32, 0xbb, 0x8d, 0x07, 0x2e,\n\t0xfc, 0x77, 0xdc, 0x05, 0xdf, 0x3a, 0xc0, 0x6d, 0x73, 0xe0, 0xde, 0xf5, 0x51, 0xf7, 0x3a, 0xcc,\n\t0x76, 0xca, 0xb6, 0xcb, 0x7c, 0x46, 0xfb, 0x2f, 0xe9, 0x3f, 0x6a, 0xe0, 0xcc, 0x9d, 0x7a, 0xbd,\n\t0xba, 0xed, 0x36, 0x29, 0xf6, 0xfd, 0xaa, 0xc9, 0x0e, 0xe0, 0x2a, 0x98, 0xf1, 0x4c, 0x76, 0x90,\n\t0xd7, 0x56, 0xb5, 0xb5, 0x39, 0x63, 0xfe, 0x49, 0xb7, 0x38, 0xd5, 0xeb, 0x16, 0x67, 0x38, 0x0f,\n\t0x09, 0x0e, 0xbc, 0x01, 0xb2, 0xfc, 0x6f, 0xfd, 0xc8, 0xc3, 0xf9, 0x69, 0x21, 0x95, 0xef, 0x75,\n\t0x8b, 0xd9, 0xaa, 0xa2, 0x1d, 0xc7, 0xfe, 0x47, 0xa1, 0x24, 0xac, 0x81, 0xcc, 0x9e, 0x69, 0xb5,\n\t0xb0, 0xdb, 0xc8, 0xa7, 0x56, 0xb5, 0xb5, 0xdc, 0xfa, 0x5a, 0x69, 0x54, 0xf8, 0x4a, 0x4a, 0x1f,\n\t0x43, 0xca, 0x1b, 0x67, 0x94, 0x12, 0x19, 0x45, 0x40, 0x01, 0x92, 0xbe, 0x0f, 0xce, 0xc5, 0xf4,\n\t0x47, 0x1d, 0x07, 0xdf, 0x37, 0x9d, 0x0e, 0x86, 0x15, 0x90, 0xe6, 0x0f, 0xfb, 0x79, 0x6d, 0x75,\n\t0x7a, 0x2d, 0xb7, 0xfe, 0xaf, 0xd1, 0x4f, 0xf5, 0x99, 0x6f, 0x2c, 0xa8, 0xb7, 0xd2, 0xfc, 0xe4,\n\t0x23, 0x09, 0xa3, 0xef, 0x82, 0xcc, 0x76, 0xd5, 0x70, 0x88, 0xd5, 0xe2, 0xfe, 0xb1, 0xec, 0x06,\n\t0xed, 0xf7, 0xcf, 0xc6, 0xf6, 0x2d, 0x84, 0x04, 0x07, 0xea, 0x60, 0x16, 0x3f, 0xb2, 0xb0, 0xc7,\n\t0xf2, 0xa9, 0xd5, 0xe9, 0xb5, 0x39, 0x03, 0xf4, 0xba, 0xc5, 0xd9, 0x4d, 0x41, 0x41, 0x8a, 0xa3,\n\t0x7f, 0x9a, 0x02, 0x19, 0xf5, 0x2c, 0x7c, 0x00, 0xb2, 0x3c, 0x7d, 0x1a, 0x26, 0x33, 0x05, 0x6a,\n\t0x6e, 0xfd, 0x3f, 0x31, 0x7d, 0xc3, 0x68, 0x96, 0xbc, 0x56, 0x93, 0x13, 0xfc, 0x12, 0x97, 0xe6,\n\t0xba, 0xef, 0xee, 0x3d, 0xc4, 0x16, 0xbb, 0x87, 0x99, 0x69, 0x40, 0xa5, 0x07, 0x88, 0x68, 0x28,\n\t0x44, 0x85, 0x5b, 0x60, 0xc6, 0xf7, 0xb0, 0xa5, 0x1c, 0x7f, 0x61, 0xac, 0xe3, 0x6b, 0x1e, 0xb6,\n\t0x22, 0xd3, 0xf8, 0x09, 0x09, 0x00, 0xb8, 0x0b, 0x66, 0x7d, 0x66, 0xb2, 0x8e, 0x2f, 0x02, 0x9f,\n\t0x5b, 0xbf, 0x34, 0x1e, 0x4a, 0x88, 0x1b, 0x8b, 0x0a, 0x6c, 0x56, 0x9e, 0x91, 0x82, 0xd1, 0x7f,\n\t0xd2, 0xc0, 0x62, 0x32, 0xda, 0xf0, 0x3e, 0xc8, 0xf8, 0x98, 0x1e, 0xda, 0x16, 0xce, 0xcf, 0x88,\n\t0x47, 0xca, 0xe3, 0x1f, 0x91, 0xf2, 0x41, 0xbe, 0xe4, 0x78, 0xae, 0x28, 0x1a, 0x0a, 0xc0, 0xe0,\n\t0x9b, 0x20, 0x4b, 0xb1, 0x4f, 0x3a, 0xd4, 0xc2, 0x4a, 0xfb, 0xab, 0x71, 0x60, 0x5e, 0xf7, 0x1c,\n\t0x92, 0x27, 0x6b, 0x63, 0x87, 0x58, 0xa6, 0x23, 0x5d, 0x89, 0xf0, 0x3e, 0xa6, 0xd8, 0xb5, 0xb0,\n\t0x31, 0xcf, 0xb3, 0x1c, 0x29, 0x08, 0x14, 0x82, 0xf1, 0x2a, 0x9a, 0x57, 0x8a, 0x6c, 0x38, 0xe6,\n\t0xa9, 0x04, 0x74, 0x27, 0x11, 0xd0, 0x7f, 0x8f, 0x75, 0x90, 0xd0, 0x6b, 0x54, 0x54, 0xf5, 0x1f,\n\t0x34, 0xb0, 0x14, 0x17, 0xdc, 0xb1, 0x7d, 0x06, 0xdf, 0x19, 0x30, 0xa2, 0x34, 0x99, 0x11, 0xfc,\n\t0xb6, 0x30, 0x61, 0x49, 0x3d, 0x95, 0x0d, 0x28, 0x31, 0x03, 0xee, 0x82, 0xb4, 0xcd, 0x70, 0xdb,\n\t0x17, 0x25, 0x92, 0x5b, 0xbf, 0x38, 0x99, 0x05, 0x51, 0x75, 0x6e, 0xf3, 0xcb, 0x48, 0x62, 0xe8,\n\t0xbf, 0x6a, 0xa0, 0x18, 0x17, 0xab, 0x9a, 0xd4, 0x6c, 0x63, 0x86, 0xa9, 0x1f, 0x06, 0x0f, 0xae,\n\t0x81, 0xac, 0x59, 0xdd, 0xde, 0xa2, 0xa4, 0xe3, 0x05, 0xa5, 0xcb, 0x55, 0xbb, 0xa9, 0x68, 0x28,\n\t0xe4, 0xf2, 0x02, 0x6f, 0xd9, 0xaa, 0x4b, 0xc5, 0x0a, 0xfc, 0xae, 0xed, 0x36, 0x90, 0xe0, 0x70,\n\t0x09, 0xd7, 0x6c, 0x07, 0xcd, 0x2f, 0x94, 0xa8, 0x98, 0x6d, 0x8c, 0x04, 0x07, 0x16, 0x41, 0xda,\n\t0xb7, 0x88, 0x27, 0x33, 0x78, 0xce, 0x98, 0xe3, 0x2a, 0xd7, 0x38, 0x01, 0x49, 0x3a, 0xbc, 0x0c,\n\t0xe6, 0xb8, 0xa0, 0xef, 0x99, 0x16, 0xce, 0xa7, 0x85, 0xd0, 0x42, 0xaf, 0x5b, 0x9c, 0xab, 0x04,\n\t0x44, 0x14, 0xf1, 0xf5, 0xaf, 0xfb, 0xe2, 0xc3, 0x43, 0x07, 0xd7, 0x01, 0xb0, 0x88, 0xcb, 0x28,\n\t0x71, 0x1c, 0x1c, 0x74, 0xa3, 0x30, 0x69, 0x36, 0x42, 0x0e, 0x8a, 0x49, 0x41, 0x1b, 0x00, 0x2f,\n\t0xf4, 0x8d, 0x4a, 0x9e, 0xff, 0x4f, 0xe6, 0xfa, 0x21, 0x3e, 0x35, 0x16, 0xf9, 0x53, 0x31, 0x46,\n\t0x0c, 0x5c, 0xff, 0x46, 0x03, 0x39, 0x75, 0xff, 0x14, 0xd2, 0xe9, 0x76, 0x32, 0x9d, 0xfe, 0x31,\n\t0x7e, 0xb4, 0x0c, 0xcf, 0xa4, 0xef, 0x34, 0xb0, 0x12, 0x68, 0x4d, 0xcc, 0x86, 0x61, 0x3a, 0xa6,\n\t0x6b, 0x61, 0x1a, 0x74, 0xea, 0x15, 0x90, 0xb2, 0x83, 0xf4, 0x01, 0x0a, 0x20, 0xb5, 0x5d, 0x45,\n\t0x29, 0xdb, 0x83, 0x57, 0x40, 0xf6, 0x80, 0xf8, 0x4c, 0x24, 0x86, 0x4c, 0x9d, 0x50, 0xe1, 0x3b,\n\t0x8a, 0x8e, 0x42, 0x09, 0x58, 0x05, 0x69, 0x8f, 0x50, 0xe6, 0xe7, 0x67, 0x84, 0xc2, 0x97, 0xc7,\n\t0x2a, 0x5c, 0x25, 0x94, 0xa9, 0x5e, 0x1a, 0x8d, 0x28, 0x8e, 0x80, 0x24, 0x90, 0xfe, 0x11, 0xf8,\n\t0xeb, 0x10, 0xcd, 0xe5, 0x15, 0xf8, 0x3e, 0xc8, 0xd8, 0x92, 0xa9, 0x26, 0xe2, 0x8d, 0xb1, 0x0f,\n\t0x0e, 0xb1, 0x3f, 0x1a, 0xc4, 0xc1, 0xc0, 0x0d, 0x50, 0xf5, 0xaf, 0x34, 0xb0, 0x3c, 0xa0, 0xa9,\n\t0xd8, 0x25, 0x08, 0x65, 0xc2, 0x63, 0xe9, 0xd8, 0x2e, 0x41, 0x28, 0x43, 0x82, 0x03, 0xef, 0x82,\n\t0xac, 0x58, 0x45, 0x2c, 0xe2, 0x28, 0xaf, 0x95, 0x03, 0xaf, 0x55, 0x15, 0xfd, 0xb8, 0x5b, 0xfc,\n\t0xdb, 0xe0, 0x7e, 0x56, 0x0a, 0xd8, 0x28, 0x04, 0xe0, 0x55, 0x87, 0x29, 0x25, 0x54, 0x15, 0xa6,\n\t0xa8, 0xba, 0x4d, 0x4e, 0x40, 0x92, 0xae, 0x7f, 0x19, 0x25, 0x25, 0xdf, 0x15, 0xb8, 0x7e, 0x3c,\n\t0x22, 0xfd, 0xb3, 0x9c, 0xc7, 0x0b, 0x09, 0x0e, 0xf4, 0xc0, 0x92, 0xdd, 0xb7, 0x5c, 0x4c, 0xdc,\n\t0x74, 0xc3, 0x1b, 0x46, 0x5e, 0x21, 0x2f, 0xf5, 0x73, 0xd0, 0x00, 0xba, 0xfe, 0x00, 0x0c, 0x48,\n\t0xf1, 0x76, 0x7f, 0xc0, 0x98, 0x37, 0xa4, 0x70, 0x46, 0x6f, 0x33, 0xd1, 0xeb, 0x59, 0x61, 0x53,\n\t0xbd, 0x5e, 0x45, 0x02, 0x45, 0xff, 0x4c, 0x03, 0xe7, 0x87, 0x0e, 0xce, 0xb0, 0xb1, 0x69, 0x23,\n\t0x1b, 0x5b, 0x45, 0x45, 0x54, 0xfa, 0xe0, 0xca, 0x68, 0x4d, 0x92, 0xc8, 0x3c, 0xe2, 0xc3, 0xe2,\n\t0xaf, 0xff, 0x9c, 0x0a, 0x23, 0x22, 0xba, 0xda, 0x6b, 0xa1, 0xbf, 0x45, 0xd7, 0xe1, 0x2f, 0xab,\n\t0x1e, 0x7a, 0x2e, 0xe6, 0xbf, 0x90, 0x87, 0x06, 0xa4, 0x61, 0x03, 0x2c, 0x36, 0xf0, 0xbe, 0xd9,\n\t0x71, 0x98, 0x7a, 0x5b, 0x79, 0x6d, 0xf2, 0x75, 0x13, 0xf6, 0xba, 0xc5, 0xc5, 0x5b, 0x09, 0x0c,\n\t0xd4, 0x87, 0x09, 0x37, 0xc0, 0x34, 0x73, 0x82, 0x76, 0xf3, 0xcf, 0xb1, 0xd0, 0xf5, 0x9d, 0x9a,\n\t0x91, 0x53, 0xe6, 0x4f, 0xd7, 0x77, 0x6a, 0x88, 0xdf, 0x86, 0xaf, 0x83, 0x34, 0xed, 0x38, 0x98,\n\t0x2f, 0x53, 0xd3, 0x13, 0xed, 0x65, 0x3c, 0xa6, 0x51, 0xf9, 0xf3, 0x93, 0x8f, 0x24, 0x84, 0xfe,\n\t0x31, 0x58, 0x48, 0x6c, 0x5c, 0xb0, 0x0d, 0xe6, 0x9d, 0x58, 0x09, 0x2b, 0x2f, 0x5c, 0xff, 0x53,\n\t0x75, 0xaf, 0x1a, 0xce, 0x39, 0xf5, 0xe2, 0x7c, 0x9c, 0x87, 0x12, 0xf0, 0xba, 0x09, 0x40, 0x64,\n\t0x2b, 0xaf, 0x44, 0x5e, 0x3e, 0xb2, 0xdb, 0xa8, 0x4a, 0xe4, 0x55, 0xe5, 0x23, 0x49, 0xe7, 0xd3,\n\t0xcb, 0xc7, 0x16, 0xc5, 0xac, 0x12, 0xf5, 0xcb, 0x70, 0x7a, 0xd5, 0x42, 0x0e, 0x8a, 0x49, 0xe9,\n\t0x5f, 0xa4, 0xc0, 0x42, 0x45, 0xaa, 0x5c, 0x25, 0x8e, 0x6d, 0x1d, 0x9d, 0xc2, 0xa2, 0x75, 0x2f,\n\t0xb1, 0x68, 0x9d, 0xd0, 0xa6, 0x13, 0x8a, 0x8d, 0xdc, 0x9f, 0xdf, 0xe8, 0xdb, 0x9f, 0xaf, 0x4e,\n\t0x0a, 0x78, 0xf2, 0x16, 0xfd, 0xad, 0x06, 0xfe, 0x92, 0x90, 0xdf, 0x8c, 0x7a, 0x5c, 0x38, 0x69,\n\t0xb4, 0x71, 0x93, 0x26, 0x81, 0x20, 0x2a, 0x76, 0xe8, 0xa4, 0x81, 0x5b, 0x20, 0xc5, 0x88, 0x4a,\n\t0xfd, 0x89, 0xe1, 0x30, 0xa6, 0xd1, 0xc8, 0xac, 0x13, 0x94, 0x62, 0x44, 0xff, 0x5e, 0x03, 0xf9,\n\t0x84, 0x54, 0xbc, 0x37, 0xbf, 0x7c, 0xbd, 0xef, 0x81, 0x99, 0x7d, 0x4a, 0xda, 0x2f, 0xa2, 0x79,\n\t0x18, 0xcb, 0xdb, 0x94, 0xb4, 0x91, 0x80, 0xd1, 0x1f, 0x6b, 0x60, 0x39, 0x21, 0x79, 0x0a, 0x7b,\n\t0xce, 0x4e, 0x72, 0xcf, 0xb9, 0x34, 0xa1, 0x0d, 0x23, 0xb6, 0x9d, 0xc7, 0xa9, 0x3e, 0x0b, 0xb8,\n\t0xad, 0x70, 0x1f, 0xe4, 0x3c, 0xd2, 0xa8, 0x61, 0x07, 0x5b, 0x8c, 0x0c, 0xeb, 0x1b, 0x27, 0x19,\n\t0x61, 0xee, 0x61, 0x27, 0xb8, 0x6a, 0x9c, 0xe9, 0x75, 0x8b, 0xb9, 0x6a, 0x84, 0x85, 0xe2, 0xc0,\n\t0xf0, 0x11, 0x58, 0x0e, 0x57, 0xdc, 0xf0, 0xb5, 0xd4, 0x8b, 0xbf, 0x76, 0xbe, 0xd7, 0x2d, 0x2e,\n\t0x57, 0xfa, 0x11, 0xd1, 0xe0, 0x23, 0xf0, 0x0e, 0xc8, 0xd8, 0x9e, 0xf8, 0x9a, 0x57, 0x65, 0x78,\n\t0xd2, 0xbe, 0x28, 0x3f, 0xfb, 0xe5, 0x37, 0xa5, 0x3a, 0xa0, 0xe0, 0xba, 0xfe, 0x4b, 0x7f, 0x0e,\n\t0xf0, 0x84, 0x83, 0x5b, 0xb1, 0xa5, 0x46, 0x8e, 0xd2, 0xcb, 0x2f, 0xb6, 0xd0, 0x24, 0xa7, 0xed,\n\t0xe8, 0xde, 0xd6, 0x61, 0xb6, 0x53, 0x92, 0xbf, 0xf1, 0x94, 0xb6, 0x5d, 0xb6, 0x4b, 0x6b, 0x8c,\n\t0xda, 0x6e, 0x53, 0x4e, 0xfe, 0xd8, 0xb6, 0x75, 0x01, 0x64, 0xd4, 0x30, 0x16, 0x86, 0xa7, 0xa5,\n\t0x55, 0x9b, 0x92, 0x84, 0x02, 0x9e, 0x7e, 0xdc, 0x9f, 0x17, 0x62, 0x34, 0x3f, 0x7c, 0x69, 0x79,\n\t0x71, 0x56, 0x65, 0xe3, 0xe8, 0xdc, 0x78, 0x37, 0xda, 0x57, 0x65, 0xa6, 0xaf, 0x4f, 0x98, 0xe9,\n\t0xf1, 0x41, 0x39, 0x72, 0x5b, 0x85, 0x6f, 0x81, 0x59, 0x2c, 0xd1, 0xe5, 0xe4, 0xbd, 0x36, 0x21,\n\t0x7a, 0xd4, 0x56, 0xa3, 0x56, 0xac, 0x68, 0x0a, 0x10, 0xbe, 0xca, 0xbd, 0xc4, 0x65, 0xeb, 0x47,\n\t0x1e, 0x96, 0xeb, 0xfd, 0x9c, 0xf1, 0x77, 0x69, 0x6c, 0x48, 0x3e, 0xe6, 0xdf, 0x4d, 0xe1, 0x11,\n\t0xc5, 0x6f, 0xe8, 0x1f, 0x82, 0xb3, 0x43, 0x5a, 0x3f, 0xb4, 0xc4, 0xe7, 0x5e, 0xc3, 0x66, 0x36,\n\t0x71, 0x83, 0x9e, 0x58, 0x9e, 0xcc, 0xf9, 0x1b, 0xc1, 0xbd, 0xc4, 0xf7, 0xa1, 0x82, 0x42, 0x31,\n\t0x58, 0xfd, 0x3d, 0x00, 0x07, 0xf7, 0xb6, 0x09, 0xb6, 0xc2, 0x8b, 0x60, 0xd6, 0xed, 0xb4, 0xf7,\n\t0xb0, 0xac, 0xdf, 0x74, 0xe4, 0x9c, 0x8a, 0xa0, 0x22, 0xc5, 0x35, 0x5e, 0x79, 0xf2, 0xbc, 0x30,\n\t0xf5, 0xf4, 0x79, 0x61, 0xea, 0xd9, 0xf3, 0xc2, 0xd4, 0x27, 0xbd, 0x82, 0xf6, 0xa4, 0x57, 0xd0,\n\t0x9e, 0xf6, 0x0a, 0xda, 0xb3, 0x5e, 0x41, 0xfb, 0xad, 0x57, 0xd0, 0x3e, 0xff, 0xbd, 0x30, 0xf5,\n\t0x76, 0x7e, 0xd4, 0x0f, 0xc0, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff, 0x61, 0x0f, 0x0a, 0xd7, 0x34,\n\t0x16, 0x00, 0x00,\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPBlock) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPBlock) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Except) > 0 {\n\t\tfor iNdEx := len(m.Except) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Except[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Except[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Except[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.CIDR)\n\tcopy(dAtA[i:], m.CIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Parameters != nil {\n\t\t{\n\t\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Controller)\n\tcopy(dAtA[i:], m.Controller)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Controller)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressServiceBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressServiceBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressServiceBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.DefaultBackend != nil {\n\t\t{\n\t\t\tsize, err := m.DefaultBackend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyEgressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.To) > 0 {\n\t\tfor iNdEx := len(m.To) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.To[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyIngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.From) > 0 {\n\t\tfor iNdEx := len(m.From) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.From[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPeer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IPBlock != nil {\n\t\t{\n\t\t\tsize, err := m.IPBlock.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PodSelector != nil {\n\t\t{\n\t\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndPort != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Port != nil {\n\t\t{\n\t\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor iNdEx := len(m.PolicyTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PolicyTypes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PolicyTypes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyTypes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor iNdEx := len(m.Egress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Egress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceBackendPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceBackendPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceBackendPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Number))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPBlock) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.CIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Except) > 0 {\n\t\tfor _, s := range m.Except {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Controller)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Parameters != nil {\n\t\tl = m.Parameters.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressServiceBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.DefaultBackend != nil {\n\t\tl = m.DefaultBackend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicyEgressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.To) > 0 {\n\t\tfor _, e := range m.To {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyIngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.From) > 0 {\n\t\tfor _, e := range m.From {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPeer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodSelector != nil {\n\t\tl = m.PodSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPBlock != nil {\n\t\tl = m.IPBlock.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tl = m.Port.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EndPort != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.EndPort))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSelector.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor _, e := range m.Egress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor _, s := range m.PolicyTypes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceBackendPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Number))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPBlock) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPBlock{`,\n\t\t`CIDR:` + fmt.Sprintf(\"%v\", this.CIDR) + `,`,\n\t\t`Except:` + fmt.Sprintf(\"%v\", this.Except) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"IngressServiceBackend\", \"IngressServiceBackend\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressClassSpec\", \"IngressClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IngressClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IngressClass\", \"IngressClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassParametersReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassSpec{`,\n\t\t`Controller:` + fmt.Sprintf(\"%v\", this.Controller) + `,`,\n\t\t`Parameters:` + strings.Replace(this.Parameters.String(), \"IngressClassParametersReference\", \"IngressClassParametersReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressServiceBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressServiceBackend{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Port:` + strings.Replace(strings.Replace(this.Port.String(), \"ServiceBackendPort\", \"ServiceBackendPort\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`DefaultBackend:` + strings.Replace(this.DefaultBackend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NetworkPolicySpec\", \"NetworkPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NetworkPolicyStatus\", \"NetworkPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyEgressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForTo := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.To {\n\t\trepeatedStringForTo += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTo += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyEgressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`To:` + repeatedStringForTo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyIngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForFrom := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.From {\n\t\trepeatedStringForFrom += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForFrom += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyIngressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`From:` + repeatedStringForFrom + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]NetworkPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"NetworkPolicy\", \"NetworkPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPeer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPeer{`,\n\t\t`PodSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`IPBlock:` + strings.Replace(this.IPBlock.String(), \"IPBlock\", \"IPBlock\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPort{`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`EndPort:` + valueToStringGenerated(this.EndPort) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]NetworkPolicyIngressRule{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyIngressRule\", \"NetworkPolicyIngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\trepeatedStringForEgress := \"[]NetworkPolicyEgressRule{\"\n\tfor _, f := range this.Egress {\n\t\trepeatedStringForEgress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyEgressRule\", \"NetworkPolicyEgressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEgress += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicySpec{`,\n\t\t`PodSelector:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1), `&`, ``, 1) + `,`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`Egress:` + repeatedStringForEgress + `,`,\n\t\t`PolicyTypes:` + fmt.Sprintf(\"%v\", this.PolicyTypes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceBackendPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceBackendPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Number:` + fmt.Sprintf(\"%v\", this.Number) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPBlock) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Except\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Except = append(m.Except, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &IngressServiceBackend{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IngressClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Controller = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = &IngressClassParametersReference{}\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressServiceBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressServiceBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressServiceBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultBackend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DefaultBackend == nil {\n\t\t\t\tm.DefaultBackend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.DefaultBackend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field To\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.To = append(m.To, NetworkPolicyPeer{})\n\t\t\tif err := m.To[len(m.To)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field From\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.From = append(m.From, NetworkPolicyPeer{})\n\t\t\tif err := m.From[len(m.From)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, NetworkPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodSelector == nil {\n\t\t\t\tm.PodSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPBlock\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.IPBlock == nil {\n\t\t\t\tm.IPBlock = &IPBlock{}\n\t\t\t}\n\t\t\tif err := m.IPBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Port == nil {\n\t\t\t\tm.Port = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndPort\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.EndPort = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, NetworkPolicyIngressRule{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Egress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Egress = append(m.Egress, NetworkPolicyEgressRule{})\n\t\t\tif err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyTypes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyTypes = append(m.PolicyTypes, PolicyType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceBackendPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceBackendPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceBackendPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Number\", wireType)\n\t\t\t}\n\t\t\tm.Number = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Number |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1\";\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/' and must be present\n  // when using PathType with value \"Exact\" or \"Prefix\".\n  // +optional\n  optional string path = 1;\n\n  // pathType determines the interpretation of the path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  optional string pathType = 3;\n\n  // backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // paths is a collection of paths that map requests to backends.\n  // +listType=atomic\n  repeated HTTPIngressPath paths = 1;\n}\n\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\nmessage IPBlock {\n  // cidr is a string representing the IPBlock\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  optional string cidr = 1;\n\n  // except is a slice of CIDRs that should not be included within an IPBlock\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  // Except values will be rejected if they are outside the cidr range\n  // +optional\n  repeated string except = 2;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // service references a service as a backend.\n  // This is a mutually exclusive setting with \"Resource\".\n  // +optional\n  optional IngressServiceBackend service = 4;\n\n  // resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, a service.Name and\n  // service.Port must not be specified.\n  // This is a mutually exclusive setting with \"Service\".\n  // +optional\n  optional k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\nmessage IngressClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IngressClass.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressClassSpec spec = 2;\n}\n\n// IngressClassList is a collection of IngressClasses.\nmessage IngressClassList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IngressClasses.\n  repeated IngressClass items = 2;\n}\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\nmessage IngressClassParametersReference {\n  // apiGroup is the group for the resource being referenced. If APIGroup is\n  // not specified, the specified Kind must be in the core API group. For any\n  // other third-party types, APIGroup is required.\n  // +optional\n  optional string aPIGroup = 1;\n\n  // kind is the type of resource being referenced.\n  optional string kind = 2;\n\n  // name is the name of resource being referenced.\n  optional string name = 3;\n\n  // scope represents if this refers to a cluster or namespace scoped resource.\n  // This may be set to \"Cluster\" (default) or \"Namespace\".\n  // +optional\n  optional string scope = 4;\n\n  // namespace is the namespace of the resource being referenced. This field is\n  // required when scope is set to \"Namespace\" and must be unset when scope is set to\n  // \"Cluster\".\n  // +optional\n  optional string namespace = 5;\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\nmessage IngressClassSpec {\n  // controller refers to the name of the controller that should handle this\n  // class. This allows for different \"flavors\" that are controlled by the\n  // same controller. For example, you may have different parameters for the\n  // same implementing controller. This should be specified as a\n  // domain-prefixed path no more than 250 characters in length, e.g.\n  // \"acme.io/ingress-controller\". This field is immutable.\n  optional string controller = 1;\n\n  // parameters is a link to a custom resource containing additional\n  // configuration for the controller. This is optional if the controller does\n  // not require extra parameters.\n  // +optional\n  optional IngressClassParametersReference parameters = 2;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // ip is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// IngressLoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // +optional\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressServiceBackend references a Kubernetes Service as a Backend.\nmessage IngressServiceBackend {\n  // name is the referenced service. The service must exist in\n  // the same namespace as the Ingress object.\n  optional string name = 1;\n\n  // port of the referenced service. A port name or port number\n  // is required for a IngressServiceBackend.\n  optional ServiceBackendPort port = 2;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // ingressClassName is the name of an IngressClass cluster resource. Ingress\n  // controller implementations use this field to know whether they should be\n  // serving this Ingress resource, by a transitive connection\n  // (controller -> IngressClass -> Ingress resource). Although the\n  // `kubernetes.io/ingress.class` annotation (simple constant name) was never\n  // formally defined, it was widely supported by Ingress controllers to create\n  // a direct binding between Ingress controller and Ingress resources. Newly\n  // created Ingress resources should prefer using the field. However, even\n  // though the annotation is officially deprecated, for backwards compatibility\n  // reasons, ingress controllers should still honor that annotation if present.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // defaultBackend is the backend that should handle requests that don't\n  // match any rule. If Rules are not specified, DefaultBackend must be specified.\n  // If DefaultBackend is not set, the handling of requests that do not match any\n  // of the rules will be up to the Ingress controller.\n  // +optional\n  optional IngressBackend defaultBackend = 1;\n\n  // tls represents the TLS configuration. Currently the Ingress only supports a\n  // single TLS port, 443. If multiple members of this list specify different hosts,\n  // they will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +listType=atomic\n  // +optional\n  repeated IngressTLS tls = 2;\n\n  // rules is a list of host rules used to configure the Ingress. If unspecified,\n  // or no rule matches, all traffic is sent to the default backend.\n  // +listType=atomic\n  // +optional\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describe the current state of the Ingress.\nmessage IngressStatus {\n  // loadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an ingress.\nmessage IngressTLS {\n  // hosts is a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +listType=atomic\n  // +optional\n  repeated string hosts = 1;\n\n  // secretName is the name of the secret used to terminate TLS traffic on\n  // port 443. Field is left optional to allow TLS routing based on SNI\n  // hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n  // header field used by an IngressRule, the SNI host is used for termination\n  // and value of the \"Host\" header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\nmessage NetworkPolicy {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the desired behavior for this NetworkPolicy.\n  // +optional\n  optional NetworkPolicySpec spec = 2;\n\n  // status represents the current state of the NetworkPolicy.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NetworkPolicyStatus status = 3;\n}\n\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\nmessage NetworkPolicyEgressRule {\n  // ports is a list of destination ports for outgoing traffic.\n  // Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  repeated NetworkPolicyPort ports = 1;\n\n  // to is a list of destinations for outgoing traffic of pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all destinations (traffic not restricted by\n  // destination). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the to list.\n  // +optional\n  repeated NetworkPolicyPeer to = 2;\n}\n\n// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\nmessage NetworkPolicyIngressRule {\n  // ports is a list of ports which should be made accessible on the pods selected for\n  // this rule. Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  repeated NetworkPolicyPort ports = 1;\n\n  // from is a list of sources which should be able to access the pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all sources (traffic not restricted by\n  // source). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the from list.\n  // +optional\n  repeated NetworkPolicyPeer from = 2;\n}\n\n// NetworkPolicyList is a list of NetworkPolicy objects.\nmessage NetworkPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated NetworkPolicy items = 2;\n}\n\n// NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of\n// fields are allowed\nmessage NetworkPolicyPeer {\n  // podSelector is a label selector which selects pods. This field follows standard label\n  // selector semantics; if present but empty, it selects all pods.\n  //\n  // If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the pods matching podSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects the pods matching podSelector in the policy's own namespace.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // namespaceSelector selects namespaces using cluster-scoped labels. This field follows\n  // standard label selector semantics; if present but empty, it selects all namespaces.\n  //\n  // If podSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the pods matching podSelector in the namespaces selected by namespaceSelector.\n  // Otherwise it selects all pods in the namespaces selected by namespaceSelector.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2;\n\n  // ipBlock defines policy on a particular IPBlock. If this field is set then\n  // neither of the other fields can be.\n  // +optional\n  optional IPBlock ipBlock = 3;\n}\n\n// NetworkPolicyPort describes a port to allow traffic on\nmessage NetworkPolicyPort {\n  // protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match.\n  // If not specified, this field defaults to TCP.\n  // +optional\n  optional string protocol = 1;\n\n  // port represents the port on the given protocol. This can either be a numerical or named\n  // port on a pod. If this field is not provided, this matches all port names and\n  // numbers.\n  // If present, only traffic on the specified protocol AND port will be matched.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // endPort indicates that the range of ports from port to endPort if set, inclusive,\n  // should be allowed by the policy. This field cannot be defined if the port field\n  // is not defined or if the port field is defined as a named (string) port.\n  // The endPort must be equal or greater than port.\n  // +optional\n  optional int32 endPort = 3;\n}\n\n// NetworkPolicySpec provides the specification of a NetworkPolicy\nmessage NetworkPolicySpec {\n  // podSelector selects the pods to which this NetworkPolicy object applies.\n  // The array of ingress rules is applied to any pods selected by this field.\n  // Multiple network policies can select the same set of pods. In this case,\n  // the ingress rules for each are combined additively.\n  // This field is NOT optional and follows standard label selector semantics.\n  // An empty podSelector matches all pods in this namespace.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // ingress is a list of ingress rules to be applied to the selected pods.\n  // Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n  // (and cluster policy otherwise allows the traffic), OR if the traffic source is\n  // the pod's local node, OR if the traffic matches at least one ingress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy does not allow any traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default)\n  // +optional\n  repeated NetworkPolicyIngressRule ingress = 2;\n\n  // egress is a list of egress rules to be applied to the selected pods. Outgoing traffic\n  // is allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n  // otherwise allows the traffic), OR if the traffic matches at least one egress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default).\n  // This field is beta-level in 1.8\n  // +optional\n  repeated NetworkPolicyEgressRule egress = 3;\n\n  // policyTypes is a list of rule types that the NetworkPolicy relates to.\n  // Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n  // If this field is not specified, it will default based on the existence of ingress or egress rules;\n  // policies that contain an egress section are assumed to affect egress, and all policies\n  // (whether or not they contain an ingress section) are assumed to affect ingress.\n  // If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n  // Likewise, if you want to write a policy that specifies that no egress is allowed,\n  // you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n  // an egress section and would otherwise default to just [ \"Ingress\" ]).\n  // This field is beta-level in 1.8\n  // +optional\n  repeated string policyTypes = 4;\n}\n\n// NetworkPolicyStatus describes the current state of the NetworkPolicy.\nmessage NetworkPolicyStatus {\n  // conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;\n}\n\n// ServiceBackendPort is the service port being referenced.\nmessage ServiceBackendPort {\n  // name is the name of the port on the Service.\n  // This is a mutually exclusive setting with \"Number\".\n  // +optional\n  optional string name = 1;\n\n  // number is the numerical port number (e.g. 80) on the Service.\n  // This is a mutually exclusive setting with \"Name\".\n  // +optional\n  optional int32 number = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&IngressClass{},\n\t\t&IngressClassList{},\n\t\t&NetworkPolicy{},\n\t\t&NetworkPolicyList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\ntype NetworkPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the desired behavior for this NetworkPolicy.\n\t// +optional\n\tSpec NetworkPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents the current state of the NetworkPolicy.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NetworkPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PolicyType string describes the NetworkPolicy type\n// This type is beta-level in 1.8\n// +enum\ntype PolicyType string\n\nconst (\n\t// PolicyTypeIngress is a NetworkPolicy that affects ingress traffic on selected pods\n\tPolicyTypeIngress PolicyType = \"Ingress\"\n\t// PolicyTypeEgress is a NetworkPolicy that affects egress traffic on selected pods\n\tPolicyTypeEgress PolicyType = \"Egress\"\n)\n\n// NetworkPolicySpec provides the specification of a NetworkPolicy\ntype NetworkPolicySpec struct {\n\t// podSelector selects the pods to which this NetworkPolicy object applies.\n\t// The array of ingress rules is applied to any pods selected by this field.\n\t// Multiple network policies can select the same set of pods. In this case,\n\t// the ingress rules for each are combined additively.\n\t// This field is NOT optional and follows standard label selector semantics.\n\t// An empty podSelector matches all pods in this namespace.\n\tPodSelector metav1.LabelSelector `json:\"podSelector\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// ingress is a list of ingress rules to be applied to the selected pods.\n\t// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n\t// (and cluster policy otherwise allows the traffic), OR if the traffic source is\n\t// the pod's local node, OR if the traffic matches at least one ingress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy does not allow any traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default)\n\t// +optional\n\tIngress []NetworkPolicyIngressRule `json:\"ingress,omitempty\" protobuf:\"bytes,2,rep,name=ingress\"`\n\n\t// egress is a list of egress rules to be applied to the selected pods. Outgoing traffic\n\t// is allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n\t// otherwise allows the traffic), OR if the traffic matches at least one egress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default).\n\t// This field is beta-level in 1.8\n\t// +optional\n\tEgress []NetworkPolicyEgressRule `json:\"egress,omitempty\" protobuf:\"bytes,3,rep,name=egress\"`\n\n\t// policyTypes is a list of rule types that the NetworkPolicy relates to.\n\t// Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n\t// If this field is not specified, it will default based on the existence of ingress or egress rules;\n\t// policies that contain an egress section are assumed to affect egress, and all policies\n\t// (whether or not they contain an ingress section) are assumed to affect ingress.\n\t// If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n\t// Likewise, if you want to write a policy that specifies that no egress is allowed,\n\t// you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n\t// an egress section and would otherwise default to just [ \"Ingress\" ]).\n\t// This field is beta-level in 1.8\n\t// +optional\n\tPolicyTypes []PolicyType `json:\"policyTypes,omitempty\" protobuf:\"bytes,4,rep,name=policyTypes,casttype=PolicyType\"`\n}\n\n// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\ntype NetworkPolicyIngressRule struct {\n\t// ports is a list of ports which should be made accessible on the pods selected for\n\t// this rule. Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// from is a list of sources which should be able to access the pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all sources (traffic not restricted by\n\t// source). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the from list.\n\t// +optional\n\tFrom []NetworkPolicyPeer `json:\"from,omitempty\" protobuf:\"bytes,2,rep,name=from\"`\n}\n\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\ntype NetworkPolicyEgressRule struct {\n\t// ports is a list of destination ports for outgoing traffic.\n\t// Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// to is a list of destinations for outgoing traffic of pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all destinations (traffic not restricted by\n\t// destination). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the to list.\n\t// +optional\n\tTo []NetworkPolicyPeer `json:\"to,omitempty\" protobuf:\"bytes,2,rep,name=to\"`\n}\n\n// NetworkPolicyPort describes a port to allow traffic on\ntype NetworkPolicyPort struct {\n\t// protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match.\n\t// If not specified, this field defaults to TCP.\n\t// +optional\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol\"`\n\n\t// port represents the port on the given protocol. This can either be a numerical or named\n\t// port on a pod. If this field is not provided, this matches all port names and\n\t// numbers.\n\t// If present, only traffic on the specified protocol AND port will be matched.\n\t// +optional\n\tPort *intstr.IntOrString `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n\n\t// endPort indicates that the range of ports from port to endPort if set, inclusive,\n\t// should be allowed by the policy. This field cannot be defined if the port field\n\t// is not defined or if the port field is defined as a named (string) port.\n\t// The endPort must be equal or greater than port.\n\t// +optional\n\tEndPort *int32 `json:\"endPort,omitempty\" protobuf:\"bytes,3,opt,name=endPort\"`\n}\n\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\ntype IPBlock struct {\n\t// cidr is a string representing the IPBlock\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\tCIDR string `json:\"cidr\" protobuf:\"bytes,1,name=cidr\"`\n\n\t// except is a slice of CIDRs that should not be included within an IPBlock\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\t// Except values will be rejected if they are outside the cidr range\n\t// +optional\n\tExcept []string `json:\"except,omitempty\" protobuf:\"bytes,2,rep,name=except\"`\n}\n\n// NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of\n// fields are allowed\ntype NetworkPolicyPeer struct {\n\t// podSelector is a label selector which selects pods. This field follows standard label\n\t// selector semantics; if present but empty, it selects all pods.\n\t//\n\t// If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the pods matching podSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects the pods matching podSelector in the policy's own namespace.\n\t// +optional\n\tPodSelector *metav1.LabelSelector `json:\"podSelector,omitempty\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// namespaceSelector selects namespaces using cluster-scoped labels. This field follows\n\t// standard label selector semantics; if present but empty, it selects all namespaces.\n\t//\n\t// If podSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the pods matching podSelector in the namespaces selected by namespaceSelector.\n\t// Otherwise it selects all pods in the namespaces selected by namespaceSelector.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,2,opt,name=namespaceSelector\"`\n\n\t// ipBlock defines policy on a particular IPBlock. If this field is set then\n\t// neither of the other fields can be.\n\t// +optional\n\tIPBlock *IPBlock `json:\"ipBlock,omitempty\" protobuf:\"bytes,3,rep,name=ipBlock\"`\n}\n\n// NetworkPolicyConditionType is the type for status conditions on\n// a NetworkPolicy. This type should be used with the\n// NetworkPolicyStatus.Conditions field.\ntype NetworkPolicyConditionType string\n\nconst (\n\t// NetworkPolicyConditionStatusAccepted represents status of a Network Policy that could be properly parsed by\n\t// the Network Policy provider and will be implemented in the cluster\n\tNetworkPolicyConditionStatusAccepted NetworkPolicyConditionType = \"Accepted\"\n\n\t// NetworkPolicyConditionStatusPartialFailure represents status of a Network Policy that could be partially\n\t// parsed by the Network Policy provider and may not be completely implemented due to a lack of a feature or some\n\t// other condition\n\tNetworkPolicyConditionStatusPartialFailure NetworkPolicyConditionType = \"PartialFailure\"\n\n\t// NetworkPolicyConditionStatusFailure represents status of a Network Policy that could not be parsed by the\n\t// Network Policy provider and will not be implemented in the cluster\n\tNetworkPolicyConditionStatusFailure NetworkPolicyConditionType = \"Failure\"\n)\n\n// NetworkPolicyConditionReason defines the set of reasons that explain why a\n// particular NetworkPolicy condition type has been raised.\ntype NetworkPolicyConditionReason string\n\nconst (\n\t// NetworkPolicyConditionReasonFeatureNotSupported represents a reason where the Network Policy may not have been\n\t// implemented in the cluster due to a lack of some feature not supported by the Network Policy provider\n\tNetworkPolicyConditionReasonFeatureNotSupported NetworkPolicyConditionReason = \"FeatureNotSupported\"\n)\n\n// NetworkPolicyStatus describes the current state of the NetworkPolicy.\ntype NetworkPolicyStatus struct {\n\t// conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// NetworkPolicyList is a list of NetworkPolicy objects.\ntype NetworkPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []NetworkPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// ingressClassName is the name of an IngressClass cluster resource. Ingress\n\t// controller implementations use this field to know whether they should be\n\t// serving this Ingress resource, by a transitive connection\n\t// (controller -> IngressClass -> Ingress resource). Although the\n\t// `kubernetes.io/ingress.class` annotation (simple constant name) was never\n\t// formally defined, it was widely supported by Ingress controllers to create\n\t// a direct binding between Ingress controller and Ingress resources. Newly\n\t// created Ingress resources should prefer using the field. However, even\n\t// though the annotation is officially deprecated, for backwards compatibility\n\t// reasons, ingress controllers should still honor that annotation if present.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// defaultBackend is the backend that should handle requests that don't\n\t// match any rule. If Rules are not specified, DefaultBackend must be specified.\n\t// If DefaultBackend is not set, the handling of requests that do not match any\n\t// of the rules will be up to the Ingress controller.\n\t// +optional\n\tDefaultBackend *IngressBackend `json:\"defaultBackend,omitempty\" protobuf:\"bytes,1,opt,name=defaultBackend\"`\n\n\t// tls represents the TLS configuration. Currently the Ingress only supports a\n\t// single TLS port, 443. If multiple members of this list specify different hosts,\n\t// they will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +listType=atomic\n\t// +optional\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// rules is a list of host rules used to configure the Ingress. If unspecified,\n\t// or no rule matches, all traffic is sent to the default backend.\n\t// +listType=atomic\n\t// +optional\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n}\n\n// IngressTLS describes the transport layer security associated with an ingress.\ntype IngressTLS struct {\n\t// hosts is a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +listType=atomic\n\t// +optional\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\n\t// secretName is the name of the secret used to terminate TLS traffic on\n\t// port 443. Field is left optional to allow TLS routing based on SNI\n\t// hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n\t// header field used by an IngressRule, the SNI host is used for termination\n\t// and value of the \"Host\" header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n}\n\n// IngressStatus describe the current state of the Ingress.\ntype IngressStatus struct {\n\t// loadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// IngressLoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// ip is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline,omitempty\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t// +optional\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// paths is a collection of paths that map requests to backends.\n\t// +listType=atomic\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\n// +enum\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/' and must be present\n\t// when using PathType with value \"Exact\" or \"Prefix\".\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// pathType determines the interpretation of the path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\tPathType *PathType `json:\"pathType\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// service references a service as a backend.\n\t// This is a mutually exclusive setting with \"Resource\".\n\t// +optional\n\tService *IngressServiceBackend `json:\"service,omitempty\" protobuf:\"bytes,4,opt,name=service\"`\n\n\t// resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, a service.Name and\n\t// service.Port must not be specified.\n\t// This is a mutually exclusive setting with \"Service\".\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// IngressServiceBackend references a Kubernetes Service as a Backend.\ntype IngressServiceBackend struct {\n\t// name is the referenced service. The service must exist in\n\t// the same namespace as the Ingress object.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// port of the referenced service. A port name or port number\n\t// is required for a IngressServiceBackend.\n\tPort ServiceBackendPort `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n}\n\n// ServiceBackendPort is the service port being referenced.\ntype ServiceBackendPort struct {\n\t// name is the name of the port on the Service.\n\t// This is a mutually exclusive setting with \"Number\".\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// number is the numerical port number (e.g. 80) on the Service.\n\t// This is a mutually exclusive setting with \"Name\".\n\t// +optional\n\tNumber int32 `json:\"number,omitempty\" protobuf:\"bytes,2,opt,name=number\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\ntype IngressClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the IngressClass.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressClassSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\ntype IngressClassSpec struct {\n\t// controller refers to the name of the controller that should handle this\n\t// class. This allows for different \"flavors\" that are controlled by the\n\t// same controller. For example, you may have different parameters for the\n\t// same implementing controller. This should be specified as a\n\t// domain-prefixed path no more than 250 characters in length, e.g.\n\t// \"acme.io/ingress-controller\". This field is immutable.\n\tController string `json:\"controller,omitempty\" protobuf:\"bytes,1,opt,name=controller\"`\n\n\t// parameters is a link to a custom resource containing additional\n\t// configuration for the controller. This is optional if the controller does\n\t// not require extra parameters.\n\t// +optional\n\tParameters *IngressClassParametersReference `json:\"parameters,omitempty\" protobuf:\"bytes,2,opt,name=parameters\"`\n}\n\nconst (\n\t// IngressClassParametersReferenceScopeNamespace indicates that the\n\t// referenced Parameters resource is namespace-scoped.\n\tIngressClassParametersReferenceScopeNamespace = \"Namespace\"\n\t// IngressClassParametersReferenceScopeCluster indicates that the\n\t// referenced Parameters resource is cluster-scoped.\n\tIngressClassParametersReferenceScopeCluster = \"Cluster\"\n)\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\ntype IngressClassParametersReference struct {\n\t// apiGroup is the group for the resource being referenced. If APIGroup is\n\t// not specified, the specified Kind must be in the core API group. For any\n\t// other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=aPIGroup\"`\n\n\t// kind is the type of resource being referenced.\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\n\t// name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\n\t// scope represents if this refers to a cluster or namespace scoped resource.\n\t// This may be set to \"Cluster\" (default) or \"Namespace\".\n\t// +optional\n\tScope *string `json:\"scope\" protobuf:\"bytes,4,opt,name=scope\"`\n\n\t// namespace is the namespace of the resource being referenced. This field is\n\t// required when scope is set to \"Namespace\" and must be unset when scope is set to\n\t// \"Cluster\".\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,5,opt,name=namespace\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// IngressClassList is a collection of IngressClasses.\ntype IngressClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of IngressClasses.\n\tItems []IngressClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n\t\"pathType\": \"pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types.\",\n\t\"backend\":  \"backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"paths is a collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_IPBlock = map[string]string{\n\t\"\":       \"IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\n\t\"cidr\":   \"cidr is a string representing the IPBlock Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\"\",\n\t\"except\": \"except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\" Except values will be rejected if they are outside the cidr range\",\n}\n\nfunc (IPBlock) SwaggerDoc() map[string]string {\n\treturn map_IPBlock\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":         \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"service\":  \"service references a service as a backend. This is a mutually exclusive setting with \\\"Resource\\\".\",\n\t\"resource\": \"resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \\\"Service\\\".\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressClass = map[string]string{\n\t\"\":         \"IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IngressClass) SwaggerDoc() map[string]string {\n\treturn map_IngressClass\n}\n\nvar map_IngressClassList = map[string]string{\n\t\"\":         \"IngressClassList is a collection of IngressClasses.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of IngressClasses.\",\n}\n\nfunc (IngressClassList) SwaggerDoc() map[string]string {\n\treturn map_IngressClassList\n}\n\nvar map_IngressClassParametersReference = map[string]string{\n\t\"\":          \"IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\",\n\t\"apiGroup\":  \"apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"kind is the type of resource being referenced.\",\n\t\"name\":      \"name is the name of resource being referenced.\",\n\t\"scope\":     \"scope represents if this refers to a cluster or namespace scoped resource. This may be set to \\\"Cluster\\\" (default) or \\\"Namespace\\\".\",\n\t\"namespace\": \"namespace is the namespace of the resource being referenced. This field is required when scope is set to \\\"Namespace\\\" and must be unset when scope is set to \\\"Cluster\\\".\",\n}\n\nfunc (IngressClassParametersReference) SwaggerDoc() map[string]string {\n\treturn map_IngressClassParametersReference\n}\n\nvar map_IngressClassSpec = map[string]string{\n\t\"\":           \"IngressClassSpec provides information about the class of an Ingress.\",\n\t\"controller\": \"controller refers to the name of the controller that should handle this class. This allows for different \\\"flavors\\\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \\\"acme.io/ingress-controller\\\". This field is immutable.\",\n\t\"parameters\": \"parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.\",\n}\n\nfunc (IngressClassSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressClassSpec\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"ip is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"IngressLoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"port is the port number of the ingress port.\",\n\t\"protocol\": \"protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nhost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\": \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressServiceBackend = map[string]string{\n\t\"\":     \"IngressServiceBackend references a Kubernetes Service as a Backend.\",\n\t\"name\": \"name is the referenced service. The service must exist in the same namespace as the Ingress object.\",\n\t\"port\": \"port of the referenced service. A port name or port number is required for a IngressServiceBackend.\",\n}\n\nfunc (IngressServiceBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressServiceBackend\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.\",\n\t\"defaultBackend\":   \"defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller.\",\n\t\"tls\":              \"tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describe the current state of the Ingress.\",\n\t\"loadBalancer\": \"loadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an ingress.\",\n\t\"hosts\":      \"hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the \\\"Host\\\" header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\nvar map_NetworkPolicy = map[string]string{\n\t\"\":         \"NetworkPolicy describes what network traffic is allowed for a set of Pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the desired behavior for this NetworkPolicy.\",\n\t\"status\":   \"status represents the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (NetworkPolicy) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicy\n}\n\nvar map_NetworkPolicyEgressRule = map[string]string{\n\t\"\":      \"NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\",\n\t\"ports\": \"ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"to\":    \"to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.\",\n}\n\nfunc (NetworkPolicyEgressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyEgressRule\n}\n\nvar map_NetworkPolicyIngressRule = map[string]string{\n\t\"\":      \"NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\",\n\t\"ports\": \"ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"from\":  \"from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\n}\n\nfunc (NetworkPolicyIngressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyIngressRule\n}\n\nvar map_NetworkPolicyList = map[string]string{\n\t\"\":         \"NetworkPolicyList is a list of NetworkPolicy objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (NetworkPolicyList) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyList\n}\n\nvar map_NetworkPolicyPeer = map[string]string{\n\t\"\":                  \"NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed\",\n\t\"podSelector\":       \"podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\\n\\nIf namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace.\",\n\t\"namespaceSelector\": \"namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\\n\\nIf podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector.\",\n\t\"ipBlock\":           \"ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n}\n\nfunc (NetworkPolicyPeer) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPeer\n}\n\nvar map_NetworkPolicyPort = map[string]string{\n\t\"\":         \"NetworkPolicyPort describes a port to allow traffic on\",\n\t\"protocol\": \"protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n\t\"port\":     \"port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n\t\"endPort\":  \"endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n}\n\nfunc (NetworkPolicyPort) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPort\n}\n\nvar map_NetworkPolicySpec = map[string]string{\n\t\"\":            \"NetworkPolicySpec provides the specification of a NetworkPolicy\",\n\t\"podSelector\": \"podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.\",\n\t\"ingress\":     \"ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)\",\n\t\"egress\":      \"egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8\",\n\t\"policyTypes\": \"policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\\\"Ingress\\\"], [\\\"Egress\\\"], or [\\\"Ingress\\\", \\\"Egress\\\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \\\"Egress\\\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \\\"Egress\\\" (since such a policy would not include an egress section and would otherwise default to just [ \\\"Ingress\\\" ]). This field is beta-level in 1.8\",\n}\n\nfunc (NetworkPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicySpec\n}\n\nvar map_NetworkPolicyStatus = map[string]string{\n\t\"\":           \"NetworkPolicyStatus describes the current state of the NetworkPolicy.\",\n\t\"conditions\": \"conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state\",\n}\n\nfunc (NetworkPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyStatus\n}\n\nvar map_ServiceBackendPort = map[string]string{\n\t\"\":       \"ServiceBackendPort is the service port being referenced.\",\n\t\"name\":   \"name is the name of the port on the Service. This is a mutually exclusive setting with \\\"Number\\\".\",\n\t\"number\": \"number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \\\"Name\\\".\",\n}\n\nfunc (ServiceBackendPort) SwaggerDoc() map[string]string {\n\treturn map_ServiceBackendPort\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/well_known_annotations.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// AnnotationIsDefaultIngressClass can be used to indicate that an\n\t// IngressClass should be considered default. When a single IngressClass\n\t// resource has this annotation set to true, new Ingress resources without a\n\t// class specified will be assigned this default class.\n\tAnnotationIsDefaultIngressClass = \"ingressclass.kubernetes.io/is-default-class\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPBlock) DeepCopyInto(out *IPBlock) {\n\t*out = *in\n\tif in.Except != nil {\n\t\tin, out := &in.Except, &out.Except\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock.\nfunc (in *IPBlock) DeepCopy() *IPBlock {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPBlock)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(IngressServiceBackend)\n\t\t**out = **in\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(corev1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClass) DeepCopyInto(out *IngressClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClass.\nfunc (in *IngressClass) DeepCopy() *IngressClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassList) DeepCopyInto(out *IngressClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IngressClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassList.\nfunc (in *IngressClassList) DeepCopy() *IngressClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference.\nfunc (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) {\n\t*out = *in\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = new(IngressClassParametersReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassSpec.\nfunc (in *IngressClassSpec) DeepCopy() *IngressClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressServiceBackend) DeepCopyInto(out *IngressServiceBackend) {\n\t*out = *in\n\tout.Port = in.Port\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressServiceBackend.\nfunc (in *IngressServiceBackend) DeepCopy() *IngressServiceBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressServiceBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.DefaultBackend != nil {\n\t\tin, out := &in.DefaultBackend, &out.DefaultBackend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.\nfunc (in *NetworkPolicy) DeepCopy() *NetworkPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.To != nil {\n\t\tin, out := &in.To, &out.To\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule.\nfunc (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyEgressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.From != nil {\n\t\tin, out := &in.From, &out.From\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule.\nfunc (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyIngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]NetworkPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.\nfunc (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) {\n\t*out = *in\n\tif in.PodSelector != nil {\n\t\tin, out := &in.PodSelector, &out.PodSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPBlock != nil {\n\t\tin, out := &in.IPBlock, &out.IPBlock\n\t\t*out = new(IPBlock)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer.\nfunc (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPeer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) {\n\t*out = *in\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.EndPort != nil {\n\t\tin, out := &in.EndPort, &out.EndPort\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort.\nfunc (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) {\n\t*out = *in\n\tin.PodSelector.DeepCopyInto(&out.PodSelector)\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]NetworkPolicyIngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Egress != nil {\n\t\tin, out := &in.Egress, &out.Egress\n\t\t*out = make([]NetworkPolicyEgressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PolicyTypes != nil {\n\t\tin, out := &in.PolicyTypes, &out.PolicyTypes\n\t\t*out = make([]PolicyType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.\nfunc (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.\nfunc (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceBackendPort) DeepCopyInto(out *ServiceBackendPort) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceBackendPort.\nfunc (in *ServiceBackendPort) DeepCopy() *ServiceBackendPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceBackendPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=networking.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/networking/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/networking/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ClusterCIDR) Reset()      { *m = ClusterCIDR{} }\nfunc (*ClusterCIDR) ProtoMessage() {}\nfunc (*ClusterCIDR) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{0}\n}\nfunc (m *ClusterCIDR) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterCIDR) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterCIDR) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterCIDR.Merge(m, src)\n}\nfunc (m *ClusterCIDR) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterCIDR) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterCIDR.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterCIDR proto.InternalMessageInfo\n\nfunc (m *ClusterCIDRList) Reset()      { *m = ClusterCIDRList{} }\nfunc (*ClusterCIDRList) ProtoMessage() {}\nfunc (*ClusterCIDRList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{1}\n}\nfunc (m *ClusterCIDRList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterCIDRList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterCIDRList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterCIDRList.Merge(m, src)\n}\nfunc (m *ClusterCIDRList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterCIDRList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterCIDRList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterCIDRList proto.InternalMessageInfo\n\nfunc (m *ClusterCIDRSpec) Reset()      { *m = ClusterCIDRSpec{} }\nfunc (*ClusterCIDRSpec) ProtoMessage() {}\nfunc (*ClusterCIDRSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{2}\n}\nfunc (m *ClusterCIDRSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterCIDRSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterCIDRSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterCIDRSpec.Merge(m, src)\n}\nfunc (m *ClusterCIDRSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterCIDRSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterCIDRSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterCIDRSpec proto.InternalMessageInfo\n\nfunc (m *IPAddress) Reset()      { *m = IPAddress{} }\nfunc (*IPAddress) ProtoMessage() {}\nfunc (*IPAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{3}\n}\nfunc (m *IPAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddress.Merge(m, src)\n}\nfunc (m *IPAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddress proto.InternalMessageInfo\n\nfunc (m *IPAddressList) Reset()      { *m = IPAddressList{} }\nfunc (*IPAddressList) ProtoMessage() {}\nfunc (*IPAddressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{4}\n}\nfunc (m *IPAddressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressList.Merge(m, src)\n}\nfunc (m *IPAddressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressList proto.InternalMessageInfo\n\nfunc (m *IPAddressSpec) Reset()      { *m = IPAddressSpec{} }\nfunc (*IPAddressSpec) ProtoMessage() {}\nfunc (*IPAddressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{5}\n}\nfunc (m *IPAddressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressSpec.Merge(m, src)\n}\nfunc (m *IPAddressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressSpec proto.InternalMessageInfo\n\nfunc (m *ParentReference) Reset()      { *m = ParentReference{} }\nfunc (*ParentReference) ProtoMessage() {}\nfunc (*ParentReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1b7ac8d7d97acec, []int{6}\n}\nfunc (m *ParentReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParentReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParentReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParentReference.Merge(m, src)\n}\nfunc (m *ParentReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParentReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParentReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParentReference proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ClusterCIDR)(nil), \"k8s.io.api.networking.v1alpha1.ClusterCIDR\")\n\tproto.RegisterType((*ClusterCIDRList)(nil), \"k8s.io.api.networking.v1alpha1.ClusterCIDRList\")\n\tproto.RegisterType((*ClusterCIDRSpec)(nil), \"k8s.io.api.networking.v1alpha1.ClusterCIDRSpec\")\n\tproto.RegisterType((*IPAddress)(nil), \"k8s.io.api.networking.v1alpha1.IPAddress\")\n\tproto.RegisterType((*IPAddressList)(nil), \"k8s.io.api.networking.v1alpha1.IPAddressList\")\n\tproto.RegisterType((*IPAddressSpec)(nil), \"k8s.io.api.networking.v1alpha1.IPAddressSpec\")\n\tproto.RegisterType((*ParentReference)(nil), \"k8s.io.api.networking.v1alpha1.ParentReference\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/networking/v1alpha1/generated.proto\", fileDescriptor_c1b7ac8d7d97acec)\n}\n\nvar fileDescriptor_c1b7ac8d7d97acec = []byte{\n\t// 698 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0xcf, 0x4e, 0xdb, 0x4a,\n\t0x14, 0xc6, 0x63, 0x92, 0x48, 0x78, 0x00, 0x85, 0xeb, 0xcd, 0x8d, 0x58, 0x38, 0xb9, 0xb9, 0x1b,\n\t0xae, 0x6e, 0x19, 0x03, 0x42, 0x51, 0xb7, 0x98, 0x48, 0x34, 0x52, 0x0b, 0xe9, 0x20, 0xba, 0xa8,\n\t0x58, 0xd4, 0xb1, 0x0f, 0x8e, 0x1b, 0xfc, 0x47, 0x33, 0xe3, 0x54, 0xec, 0xfa, 0x08, 0x7d, 0xa1,\n\t0x56, 0x6a, 0x57, 0x2c, 0x59, 0xb2, 0x8a, 0x8a, 0xfb, 0x02, 0x5d, 0xb7, 0x9b, 0x6a, 0x26, 0x4e,\n\t0xec, 0x24, 0x0d, 0xd0, 0x0d, 0xbb, 0xcc, 0x39, 0xbf, 0xf3, 0xcd, 0x39, 0x73, 0xbe, 0x24, 0xe8,\n\t0xb0, 0xff, 0x94, 0x61, 0x2f, 0x34, 0xfa, 0x71, 0x17, 0x68, 0x00, 0x1c, 0x98, 0x31, 0x80, 0xc0,\n\t0x09, 0xa9, 0x91, 0x26, 0xac, 0xc8, 0x33, 0x02, 0xe0, 0xef, 0x42, 0xda, 0xf7, 0x02, 0xd7, 0x18,\n\t0xec, 0x58, 0x17, 0x51, 0xcf, 0xda, 0x31, 0x5c, 0x08, 0x80, 0x5a, 0x1c, 0x1c, 0x1c, 0xd1, 0x90,\n\t0x87, 0x9a, 0x3e, 0xe2, 0xb1, 0x15, 0x79, 0x38, 0xe3, 0xf1, 0x98, 0xdf, 0xd8, 0x72, 0x3d, 0xde,\n\t0x8b, 0xbb, 0xd8, 0x0e, 0x7d, 0xc3, 0x0d, 0xdd, 0xd0, 0x90, 0x65, 0xdd, 0xf8, 0x5c, 0x9e, 0xe4,\n\t0x41, 0x7e, 0x1a, 0xc9, 0x6d, 0x34, 0x72, 0xd7, 0xdb, 0x21, 0x05, 0x63, 0x30, 0x77, 0xe5, 0xc6,\n\t0x5e, 0xc6, 0xf8, 0x96, 0xdd, 0xf3, 0x02, 0xa0, 0x97, 0x46, 0xd4, 0x77, 0x45, 0x80, 0x19, 0x3e,\n\t0x70, 0xeb, 0x77, 0x55, 0xc6, 0xa2, 0x2a, 0x1a, 0x07, 0xdc, 0xf3, 0x61, 0xae, 0xa0, 0x79, 0x5f,\n\t0x01, 0xb3, 0x7b, 0xe0, 0x5b, 0xb3, 0x75, 0x8d, 0x2f, 0x0a, 0x5a, 0x39, 0xb8, 0x88, 0x19, 0x07,\n\t0x7a, 0xd0, 0x6e, 0x11, 0xed, 0x0d, 0x5a, 0x16, 0x3d, 0x39, 0x16, 0xb7, 0xaa, 0x4a, 0x5d, 0xd9,\n\t0x5c, 0xd9, 0xdd, 0xc6, 0xd9, 0xa3, 0x4d, 0xa4, 0x71, 0xd4, 0x77, 0x45, 0x80, 0x61, 0x41, 0xe3,\n\t0xc1, 0x0e, 0x3e, 0xee, 0xbe, 0x05, 0x9b, 0xbf, 0x00, 0x6e, 0x99, 0xda, 0xd5, 0xb0, 0x56, 0x48,\n\t0x86, 0x35, 0x94, 0xc5, 0xc8, 0x44, 0x55, 0x7b, 0x89, 0x4a, 0x2c, 0x02, 0xbb, 0xba, 0x24, 0xd5,\n\t0x0d, 0x7c, 0xf7, 0x4a, 0x70, 0xae, 0xb9, 0x93, 0x08, 0x6c, 0x73, 0x35, 0x15, 0x2f, 0x89, 0x13,\n\t0x91, 0x52, 0x8d, 0xcf, 0x0a, 0xaa, 0xe4, 0xb8, 0xe7, 0x1e, 0xe3, 0xda, 0xd9, 0xdc, 0x20, 0xf8,\n\t0x61, 0x83, 0x88, 0x6a, 0x39, 0xc6, 0x7a, 0x7a, 0xd3, 0xf2, 0x38, 0x92, 0x1b, 0xa2, 0x83, 0xca,\n\t0x1e, 0x07, 0x9f, 0x55, 0x97, 0xea, 0xc5, 0xcd, 0x95, 0xdd, 0xff, 0xff, 0x60, 0x0a, 0x73, 0x2d,\n\t0xd5, 0x2d, 0xb7, 0x85, 0x02, 0x19, 0x09, 0x35, 0xbe, 0x4f, 0xcf, 0x20, 0xa6, 0xd3, 0x5e, 0xa1,\n\t0xd5, 0x20, 0x74, 0xe0, 0x04, 0x2e, 0xc0, 0xe6, 0x21, 0x4d, 0xe7, 0xa8, 0xe7, 0x2f, 0x13, 0xb6,\n\t0x13, 0x5d, 0x1f, 0xe5, 0x38, 0x73, 0x3d, 0x19, 0xd6, 0x56, 0xf3, 0x11, 0x32, 0xa5, 0xa3, 0xed,\n\t0xa3, 0x4a, 0x04, 0x54, 0x00, 0xcf, 0x42, 0xc6, 0x4d, 0x8f, 0x33, 0xb9, 0x8d, 0xb2, 0xf9, 0x77,\n\t0xda, 0x5a, 0xa5, 0x33, 0x9d, 0x26, 0xb3, 0xbc, 0x56, 0x47, 0x25, 0x2f, 0x1a, 0xec, 0x55, 0x8b,\n\t0x75, 0x65, 0x53, 0xcd, 0x96, 0xd2, 0xee, 0x0c, 0xf6, 0x88, 0xcc, 0xa4, 0x44, 0xb3, 0x5a, 0x9a,\n\t0x23, 0x9a, 0x92, 0x68, 0x36, 0x3e, 0x29, 0x48, 0x6d, 0x77, 0xf6, 0x1d, 0x87, 0x02, 0x63, 0x8f,\n\t0xe0, 0xbc, 0xe3, 0x29, 0xe7, 0x6d, 0xdd, 0xb7, 0xb3, 0x49, 0x6b, 0x0b, 0x7d, 0xf7, 0x51, 0x41,\n\t0x6b, 0x13, 0xea, 0x11, 0x5c, 0x77, 0x34, 0xed, 0xba, 0xff, 0x1e, 0x3c, 0xc1, 0x02, 0xcf, 0xf9,\n\t0xb9, 0xf6, 0xa5, 0xe1, 0xce, 0x90, 0x1a, 0x59, 0x14, 0x02, 0x4e, 0xe0, 0x3c, 0xed, 0xff, 0xde,\n\t0x2f, 0x68, 0x67, 0x5c, 0x00, 0x14, 0x02, 0x1b, 0xcc, 0xb5, 0x64, 0x58, 0x53, 0x27, 0x41, 0x92,\n\t0x09, 0x36, 0x7e, 0x2a, 0xa8, 0x32, 0x43, 0x6b, 0xff, 0xa2, 0xb2, 0x4b, 0xc3, 0x38, 0x92, 0xb7,\n\t0xa9, 0x59, 0x9f, 0x87, 0x22, 0x48, 0x46, 0x39, 0xed, 0x09, 0x5a, 0xa6, 0xc0, 0xc2, 0x98, 0xda,\n\t0x20, 0x97, 0xa7, 0x66, 0xaf, 0x44, 0xd2, 0x38, 0x99, 0x10, 0x9a, 0x81, 0xd4, 0xc0, 0xf2, 0x81,\n\t0x45, 0x96, 0x0d, 0xa9, 0x3f, 0xff, 0x4a, 0x71, 0xf5, 0x68, 0x9c, 0x20, 0x19, 0x23, 0x9c, 0x2a,\n\t0x0e, 0xb3, 0x4e, 0x15, 0x2c, 0x91, 0x19, 0xcd, 0x44, 0xc5, 0xd8, 0x73, 0xaa, 0x65, 0x09, 0x6c,\n\t0xa7, 0x40, 0xf1, 0xb4, 0xdd, 0xfa, 0x31, 0xac, 0xfd, 0xb3, 0xe8, 0x97, 0x97, 0x5f, 0x46, 0xc0,\n\t0xf0, 0x69, 0xbb, 0x45, 0x44, 0xb1, 0xd9, 0xba, 0xba, 0xd5, 0x0b, 0xd7, 0xb7, 0x7a, 0xe1, 0xe6,\n\t0x56, 0x2f, 0xbc, 0x4f, 0x74, 0xe5, 0x2a, 0xd1, 0x95, 0xeb, 0x44, 0x57, 0x6e, 0x12, 0x5d, 0xf9,\n\t0x9a, 0xe8, 0xca, 0x87, 0x6f, 0x7a, 0xe1, 0xb5, 0x7e, 0xf7, 0x3f, 0xda, 0xaf, 0x00, 0x00, 0x00,\n\t0xff, 0xff, 0xf9, 0x9d, 0x9e, 0xc6, 0x0b, 0x07, 0x00, 0x00,\n}\n\nfunc (m *ClusterCIDR) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterCIDR) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterCIDR) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterCIDRList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterCIDRList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterCIDRList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterCIDRSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterCIDRSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterCIDRSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IPv6)\n\tcopy(dAtA[i:], m.IPv6)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPv6)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.IPv4)\n\tcopy(dAtA[i:], m.IPv4)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPv4)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PerNodeHostBits))\n\ti--\n\tdAtA[i] = 0x10\n\tif m.NodeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParentRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParentReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParentReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParentReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ClusterCIDR) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterCIDRList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterCIDRSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NodeSelector != nil {\n\t\tl = m.NodeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.PerNodeHostBits))\n\tl = len(m.IPv4)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.IPv6)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IPAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IPAddressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPAddressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\tl = m.ParentRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ParentReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ClusterCIDR) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterCIDR{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ClusterCIDRSpec\", \"ClusterCIDRSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterCIDRList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterCIDR{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterCIDR\", \"ClusterCIDR\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterCIDRList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterCIDRSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterCIDRSpec{`,\n\t\t`NodeSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeSelector), \"NodeSelector\", \"v11.NodeSelector\", 1) + `,`,\n\t\t`PerNodeHostBits:` + fmt.Sprintf(\"%v\", this.PerNodeHostBits) + `,`,\n\t\t`IPv4:` + fmt.Sprintf(\"%v\", this.IPv4) + `,`,\n\t\t`IPv6:` + fmt.Sprintf(\"%v\", this.IPv6) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IPAddressSpec\", \"IPAddressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IPAddress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IPAddress\", \"IPAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IPAddressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddressSpec{`,\n\t\t`ParentRef:` + strings.Replace(this.ParentRef.String(), \"ParentReference\", \"ParentReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParentReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParentReference{`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ClusterCIDR) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDR: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDR: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterCIDRList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDRList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDRList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterCIDR{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterCIDRSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDRSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterCIDRSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = &v11.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PerNodeHostBits\", wireType)\n\t\t\t}\n\t\t\tm.PerNodeHostBits = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PerNodeHostBits |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPv4\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPv4 = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPv6\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPv6 = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IPAddress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParentRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParentRef == nil {\n\t\t\t\tm.ParentRef = &ParentReference{}\n\t\t\t}\n\t\t\tif err := m.ParentRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParentReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1alpha1\";\n\n// ClusterCIDR represents a single configuration for per-Node Pod CIDR\n// allocations when the MultiCIDRRangeAllocator is enabled (see the config for\n// kube-controller-manager).  A cluster may have any number of ClusterCIDR\n// resources, all of which will be considered when allocating a CIDR for a\n// Node.  A ClusterCIDR is eligible to be used for a given Node when the node\n// selector matches the node in question and has free CIDRs to allocate.  In\n// case of multiple matching ClusterCIDR resources, the allocator will attempt\n// to break ties using internal heuristics, but any ClusterCIDR whose node\n// selector matches the Node may be used.\nmessage ClusterCIDR {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the ClusterCIDR.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ClusterCIDRSpec spec = 2;\n}\n\n// ClusterCIDRList contains a list of ClusterCIDR.\nmessage ClusterCIDRList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of ClusterCIDRs.\n  repeated ClusterCIDR items = 2;\n}\n\n// ClusterCIDRSpec defines the desired state of ClusterCIDR.\nmessage ClusterCIDRSpec {\n  // nodeSelector defines which nodes the config is applicable to.\n  // An empty or nil nodeSelector selects all nodes.\n  // This field is immutable.\n  // +optional\n  optional k8s.io.api.core.v1.NodeSelector nodeSelector = 1;\n\n  // perNodeHostBits defines the number of host bits to be configured per node.\n  // A subnet mask determines how much of the address is used for network bits\n  // and host bits. For example an IPv4 address of 192.168.0.0/24, splits the\n  // address into 24 bits for the network portion and 8 bits for the host portion.\n  // To allocate 256 IPs, set this field to 8 (a /24 mask for IPv4 or a /120 for IPv6).\n  // Minimum value is 4 (16 IPs).\n  // This field is immutable.\n  // +required\n  optional int32 perNodeHostBits = 2;\n\n  // ipv4 defines an IPv4 IP block in CIDR notation(e.g. \"10.0.0.0/8\").\n  // At least one of ipv4 and ipv6 must be specified.\n  // This field is immutable.\n  // +optional\n  optional string ipv4 = 3;\n\n  // ipv6 defines an IPv6 IP block in CIDR notation(e.g. \"2001:db8::/64\").\n  // At least one of ipv4 and ipv6 must be specified.\n  // This field is immutable.\n  // +optional\n  optional string ipv6 = 4;\n}\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\nmessage IPAddress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IPAddress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IPAddressSpec spec = 2;\n}\n\n// IPAddressList contains a list of IPAddress.\nmessage IPAddressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IPAddresses.\n  repeated IPAddress items = 2;\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\nmessage IPAddressSpec {\n  // ParentRef references the resource that an IPAddress is attached to.\n  // An IPAddress must reference a parent object.\n  // +required\n  optional ParentReference parentRef = 1;\n}\n\n// ParentReference describes a reference to a parent object.\nmessage ParentReference {\n  // Group is the group of the object being referenced.\n  // +optional\n  optional string group = 1;\n\n  // Resource is the resource of the object being referenced.\n  // +required\n  optional string resource = 2;\n\n  // Namespace is the namespace of the object being referenced.\n  // +optional\n  optional string namespace = 3;\n\n  // Name is the name of the object being referenced.\n  // +required\n  optional string name = 4;\n\n  // UID is the uid of the object being referenced.\n  // +optional\n  optional string uid = 5;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package.\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register objects in this package.\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind.\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource.\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder holds functions that add things to a scheme.\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme adds the types of this group into the given scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ClusterCIDR{},\n\t\t&ClusterCIDRList{},\n\t\t&IPAddress{},\n\t\t&IPAddressList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.25\n\n// ClusterCIDR represents a single configuration for per-Node Pod CIDR\n// allocations when the MultiCIDRRangeAllocator is enabled (see the config for\n// kube-controller-manager).  A cluster may have any number of ClusterCIDR\n// resources, all of which will be considered when allocating a CIDR for a\n// Node.  A ClusterCIDR is eligible to be used for a given Node when the node\n// selector matches the node in question and has free CIDRs to allocate.  In\n// case of multiple matching ClusterCIDR resources, the allocator will attempt\n// to break ties using internal heuristics, but any ClusterCIDR whose node\n// selector matches the Node may be used.\ntype ClusterCIDR struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the ClusterCIDR.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ClusterCIDRSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// ClusterCIDRSpec defines the desired state of ClusterCIDR.\ntype ClusterCIDRSpec struct {\n\t// nodeSelector defines which nodes the config is applicable to.\n\t// An empty or nil nodeSelector selects all nodes.\n\t// This field is immutable.\n\t// +optional\n\tNodeSelector *v1.NodeSelector `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// perNodeHostBits defines the number of host bits to be configured per node.\n\t// A subnet mask determines how much of the address is used for network bits\n\t// and host bits. For example an IPv4 address of 192.168.0.0/24, splits the\n\t// address into 24 bits for the network portion and 8 bits for the host portion.\n\t// To allocate 256 IPs, set this field to 8 (a /24 mask for IPv4 or a /120 for IPv6).\n\t// Minimum value is 4 (16 IPs).\n\t// This field is immutable.\n\t// +required\n\tPerNodeHostBits int32 `json:\"perNodeHostBits\" protobuf:\"varint,2,opt,name=perNodeHostBits\"`\n\n\t// ipv4 defines an IPv4 IP block in CIDR notation(e.g. \"10.0.0.0/8\").\n\t// At least one of ipv4 and ipv6 must be specified.\n\t// This field is immutable.\n\t// +optional\n\tIPv4 string `json:\"ipv4\" protobuf:\"bytes,3,opt,name=ipv4\"`\n\n\t// ipv6 defines an IPv6 IP block in CIDR notation(e.g. \"2001:db8::/64\").\n\t// At least one of ipv4 and ipv6 must be specified.\n\t// This field is immutable.\n\t// +optional\n\tIPv6 string `json:\"ipv6\" protobuf:\"bytes,4,opt,name=ipv6\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.25\n\n// ClusterCIDRList contains a list of ClusterCIDR.\ntype ClusterCIDRList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of ClusterCIDRs.\n\tItems []ClusterCIDR `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\ntype IPAddress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// spec is the desired state of the IPAddress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IPAddressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\ntype IPAddressSpec struct {\n\t// ParentRef references the resource that an IPAddress is attached to.\n\t// An IPAddress must reference a parent object.\n\t// +required\n\tParentRef *ParentReference `json:\"parentRef,omitempty\" protobuf:\"bytes,1,opt,name=parentRef\"`\n}\n\n// ParentReference describes a reference to a parent object.\ntype ParentReference struct {\n\t// Group is the group of the object being referenced.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,1,opt,name=group\"`\n\t// Resource is the resource of the object being referenced.\n\t// +required\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,2,opt,name=resource\"`\n\t// Namespace is the namespace of the object being referenced.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n\t// Name is the name of the object being referenced.\n\t// +required\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,4,opt,name=name\"`\n\t// UID is the uid of the object being referenced.\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,5,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// IPAddressList contains a list of IPAddress.\ntype IPAddressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of IPAddresses.\n\tItems []IPAddress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ClusterCIDR = map[string]string{\n\t\"\":         \"ClusterCIDR represents a single configuration for per-Node Pod CIDR allocations when the MultiCIDRRangeAllocator is enabled (see the config for kube-controller-manager).  A cluster may have any number of ClusterCIDR resources, all of which will be considered when allocating a CIDR for a Node.  A ClusterCIDR is eligible to be used for a given Node when the node selector matches the node in question and has free CIDRs to allocate.  In case of multiple matching ClusterCIDR resources, the allocator will attempt to break ties using internal heuristics, but any ClusterCIDR whose node selector matches the Node may be used.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the ClusterCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ClusterCIDR) SwaggerDoc() map[string]string {\n\treturn map_ClusterCIDR\n}\n\nvar map_ClusterCIDRList = map[string]string{\n\t\"\":         \"ClusterCIDRList contains a list of ClusterCIDR.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of ClusterCIDRs.\",\n}\n\nfunc (ClusterCIDRList) SwaggerDoc() map[string]string {\n\treturn map_ClusterCIDRList\n}\n\nvar map_ClusterCIDRSpec = map[string]string{\n\t\"\":                \"ClusterCIDRSpec defines the desired state of ClusterCIDR.\",\n\t\"nodeSelector\":    \"nodeSelector defines which nodes the config is applicable to. An empty or nil nodeSelector selects all nodes. This field is immutable.\",\n\t\"perNodeHostBits\": \"perNodeHostBits defines the number of host bits to be configured per node. A subnet mask determines how much of the address is used for network bits and host bits. For example an IPv4 address of 192.168.0.0/24, splits the address into 24 bits for the network portion and 8 bits for the host portion. To allocate 256 IPs, set this field to 8 (a /24 mask for IPv4 or a /120 for IPv6). Minimum value is 4 (16 IPs). This field is immutable.\",\n\t\"ipv4\":            \"ipv4 defines an IPv4 IP block in CIDR notation(e.g. \\\"10.0.0.0/8\\\"). At least one of ipv4 and ipv6 must be specified. This field is immutable.\",\n\t\"ipv6\":            \"ipv6 defines an IPv6 IP block in CIDR notation(e.g. \\\"2001:db8::/64\\\"). At least one of ipv4 and ipv6 must be specified. This field is immutable.\",\n}\n\nfunc (ClusterCIDRSpec) SwaggerDoc() map[string]string {\n\treturn map_ClusterCIDRSpec\n}\n\nvar map_IPAddress = map[string]string{\n\t\"\":         \"IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IPAddress) SwaggerDoc() map[string]string {\n\treturn map_IPAddress\n}\n\nvar map_IPAddressList = map[string]string{\n\t\"\":         \"IPAddressList contains a list of IPAddress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of IPAddresses.\",\n}\n\nfunc (IPAddressList) SwaggerDoc() map[string]string {\n\treturn map_IPAddressList\n}\n\nvar map_IPAddressSpec = map[string]string{\n\t\"\":          \"IPAddressSpec describe the attributes in an IP Address.\",\n\t\"parentRef\": \"ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object.\",\n}\n\nfunc (IPAddressSpec) SwaggerDoc() map[string]string {\n\treturn map_IPAddressSpec\n}\n\nvar map_ParentReference = map[string]string{\n\t\"\":          \"ParentReference describes a reference to a parent object.\",\n\t\"group\":     \"Group is the group of the object being referenced.\",\n\t\"resource\":  \"Resource is the resource of the object being referenced.\",\n\t\"namespace\": \"Namespace is the namespace of the object being referenced.\",\n\t\"name\":      \"Name is the name of the object being referenced.\",\n\t\"uid\":       \"UID is the uid of the object being referenced.\",\n}\n\nfunc (ParentReference) SwaggerDoc() map[string]string {\n\treturn map_ParentReference\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/well_known_labels.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nconst (\n\n\t// TODO: Use IPFamily as field with a field selector,And the value is set based on\n\t// the name at create time and immutable.\n\t// LabelIPAddressFamily is used to indicate the IP family of a Kubernetes IPAddress.\n\t// This label simplify dual-stack client operations allowing to obtain the list of\n\t// IP addresses filtered by family.\n\tLabelIPAddressFamily = \"ipaddress.kubernetes.io/ip-family\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an IPAddress. This label aims to enable different IPAddress\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// IPAddress objects.\n\tLabelManagedBy = \"ipaddress.kubernetes.io/managed-by\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterCIDR) DeepCopyInto(out *ClusterCIDR) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDR.\nfunc (in *ClusterCIDR) DeepCopy() *ClusterCIDR {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterCIDR)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterCIDR) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterCIDRList) DeepCopyInto(out *ClusterCIDRList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterCIDR, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRList.\nfunc (in *ClusterCIDRList) DeepCopy() *ClusterCIDRList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterCIDRList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterCIDRList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterCIDRSpec) DeepCopyInto(out *ClusterCIDRSpec) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = new(v1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRSpec.\nfunc (in *ClusterCIDRSpec) DeepCopy() *ClusterCIDRSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterCIDRSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddress) DeepCopyInto(out *IPAddress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddress.\nfunc (in *IPAddress) DeepCopy() *IPAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressList) DeepCopyInto(out *IPAddressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IPAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressList.\nfunc (in *IPAddressList) DeepCopy() *IPAddressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressSpec) DeepCopyInto(out *IPAddressSpec) {\n\t*out = *in\n\tif in.ParentRef != nil {\n\t\tin, out := &in.ParentRef, &out.ParentRef\n\t\t*out = new(ParentReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressSpec.\nfunc (in *IPAddressSpec) DeepCopy() *IPAddressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParentReference) DeepCopyInto(out *ParentReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParentReference.\nfunc (in *ParentReference) DeepCopy() *ParentReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParentReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterCIDR) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterCIDR) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterCIDR) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterCIDRList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterCIDRList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterCIDRList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=networking.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/networking/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/networking/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{0}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{1}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{2}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{3}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressClass) Reset()      { *m = IngressClass{} }\nfunc (*IngressClass) ProtoMessage() {}\nfunc (*IngressClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{4}\n}\nfunc (m *IngressClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClass.Merge(m, src)\n}\nfunc (m *IngressClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClass proto.InternalMessageInfo\n\nfunc (m *IngressClassList) Reset()      { *m = IngressClassList{} }\nfunc (*IngressClassList) ProtoMessage() {}\nfunc (*IngressClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{5}\n}\nfunc (m *IngressClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassList.Merge(m, src)\n}\nfunc (m *IngressClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassList proto.InternalMessageInfo\n\nfunc (m *IngressClassParametersReference) Reset()      { *m = IngressClassParametersReference{} }\nfunc (*IngressClassParametersReference) ProtoMessage() {}\nfunc (*IngressClassParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{6}\n}\nfunc (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassParametersReference.Merge(m, src)\n}\nfunc (m *IngressClassParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo\n\nfunc (m *IngressClassSpec) Reset()      { *m = IngressClassSpec{} }\nfunc (*IngressClassSpec) ProtoMessage() {}\nfunc (*IngressClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{7}\n}\nfunc (m *IngressClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassSpec.Merge(m, src)\n}\nfunc (m *IngressClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{8}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{9}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{10}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{11}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{12}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{13}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{14}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{15}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5bea11de0ceb8f53, []int{16}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.networking.v1beta1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.networking.v1beta1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.networking.v1beta1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.networking.v1beta1.IngressBackend\")\n\tproto.RegisterType((*IngressClass)(nil), \"k8s.io.api.networking.v1beta1.IngressClass\")\n\tproto.RegisterType((*IngressClassList)(nil), \"k8s.io.api.networking.v1beta1.IngressClassList\")\n\tproto.RegisterType((*IngressClassParametersReference)(nil), \"k8s.io.api.networking.v1beta1.IngressClassParametersReference\")\n\tproto.RegisterType((*IngressClassSpec)(nil), \"k8s.io.api.networking.v1beta1.IngressClassSpec\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.networking.v1beta1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.networking.v1beta1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.networking.v1beta1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.networking.v1beta1.IngressRuleValue\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.networking.v1beta1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.networking.v1beta1.IngressTLS\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/networking/v1beta1/generated.proto\", fileDescriptor_5bea11de0ceb8f53)\n}\n\nvar fileDescriptor_5bea11de0ceb8f53 = []byte{\n\t// 1247 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcb, 0x6f, 0x1b, 0x45,\n\t0x18, 0xcf, 0xda, 0x71, 0xe3, 0x8c, 0xd3, 0x36, 0x0c, 0x3d, 0x98, 0xa0, 0xda, 0xd1, 0x1e, 0x50,\n\t0xa0, 0xed, 0x6e, 0x93, 0x16, 0x54, 0x2e, 0x08, 0x36, 0x02, 0x12, 0x25, 0x24, 0x66, 0x6c, 0x1e,\n\t0x42, 0x1c, 0x18, 0xaf, 0xa7, 0xf6, 0xe2, 0xf5, 0xee, 0x6a, 0x66, 0x36, 0xa8, 0x37, 0x10, 0x27,\n\t0x4e, 0xf0, 0x3f, 0x20, 0xf1, 0x27, 0x20, 0x2e, 0x48, 0x08, 0x2e, 0x39, 0xf6, 0xd8, 0x0b, 0x11,\n\t0x31, 0xff, 0x45, 0x4f, 0xe8, 0x9b, 0x9d, 0x7d, 0xf8, 0x91, 0xd6, 0xe1, 0xd0, 0x53, 0xbc, 0xdf,\n\t0xe3, 0xf7, 0xbd, 0xbf, 0xf9, 0x82, 0x3e, 0x18, 0x3e, 0x10, 0x96, 0x17, 0xda, 0xc3, 0xb8, 0xcb,\n\t0x78, 0xc0, 0x24, 0x13, 0xf6, 0x09, 0x0b, 0x7a, 0x21, 0xb7, 0x35, 0x83, 0x46, 0x9e, 0x1d, 0x30,\n\t0xf9, 0x4d, 0xc8, 0x87, 0x5e, 0xd0, 0xb7, 0x4f, 0xb6, 0xbb, 0x4c, 0xd2, 0x6d, 0xbb, 0xcf, 0x02,\n\t0xc6, 0xa9, 0x64, 0x3d, 0x2b, 0xe2, 0xa1, 0x0c, 0xf1, 0xcd, 0x44, 0xdc, 0xa2, 0x91, 0x67, 0xe5,\n\t0xe2, 0x96, 0x16, 0xdf, 0xb8, 0xd3, 0xf7, 0xe4, 0x20, 0xee, 0x5a, 0x6e, 0x38, 0xb2, 0xfb, 0x61,\n\t0x3f, 0xb4, 0x95, 0x56, 0x37, 0x7e, 0xa8, 0xbe, 0xd4, 0x87, 0xfa, 0x95, 0xa0, 0x6d, 0x98, 0x05,\n\t0xe3, 0x6e, 0xc8, 0x99, 0x7d, 0x32, 0x63, 0x71, 0xe3, 0x7e, 0x2e, 0x33, 0xa2, 0xee, 0xc0, 0x0b,\n\t0x18, 0x7f, 0x64, 0x47, 0xc3, 0x3e, 0x10, 0x84, 0x3d, 0x62, 0x92, 0xce, 0xd3, 0xb2, 0x2f, 0xd2,\n\t0xe2, 0x71, 0x20, 0xbd, 0x11, 0x9b, 0x51, 0x78, 0xeb, 0x79, 0x0a, 0xc2, 0x1d, 0xb0, 0x11, 0x9d,\n\t0xd1, 0xbb, 0x77, 0x91, 0x5e, 0x2c, 0x3d, 0xdf, 0xf6, 0x02, 0x29, 0x24, 0x9f, 0x56, 0x32, 0xff,\n\t0x32, 0xd0, 0xf5, 0xbd, 0x4e, 0xa7, 0xb5, 0x1f, 0xf4, 0x39, 0x13, 0xa2, 0x45, 0xe5, 0x00, 0x6f,\n\t0xa2, 0xe5, 0x88, 0xca, 0x41, 0xdd, 0xd8, 0x34, 0xb6, 0x56, 0x9d, 0xb5, 0xd3, 0xb3, 0xe6, 0xd2,\n\t0xf8, 0xac, 0xb9, 0x0c, 0x3c, 0xa2, 0x38, 0xf8, 0x3e, 0xaa, 0xc2, 0xdf, 0xce, 0xa3, 0x88, 0xd5,\n\t0xcb, 0x4a, 0xaa, 0x3e, 0x3e, 0x6b, 0x56, 0x5b, 0x9a, 0xf6, 0xb4, 0xf0, 0x9b, 0x64, 0x92, 0xf8,\n\t0x73, 0xb4, 0xd2, 0xa5, 0xee, 0x90, 0x05, 0xbd, 0x7a, 0x69, 0xd3, 0xd8, 0xaa, 0xed, 0xdc, 0xb1,\n\t0x9e, 0x59, 0x43, 0x4b, 0x3b, 0xe5, 0x24, 0x4a, 0xce, 0x75, 0xed, 0xc9, 0x8a, 0x26, 0x90, 0x14,\n\t0xce, 0x1c, 0xa2, 0x1b, 0x85, 0x20, 0x48, 0xec, 0xb3, 0x4f, 0xa9, 0x1f, 0x33, 0xdc, 0x46, 0x15,\n\t0xb0, 0x2e, 0xea, 0xc6, 0x66, 0x79, 0xab, 0xb6, 0x63, 0x3d, 0xc7, 0xde, 0x54, 0x22, 0x9c, 0xab,\n\t0xda, 0x60, 0x05, 0xbe, 0x04, 0x49, 0xb0, 0xcc, 0x1f, 0x4b, 0x68, 0x45, 0x4b, 0xe1, 0xaf, 0x50,\n\t0x15, 0xea, 0xde, 0xa3, 0x92, 0xaa, 0x74, 0xd5, 0x76, 0xee, 0x16, 0x6c, 0x64, 0x65, 0xb0, 0xa2,\n\t0x61, 0x1f, 0x08, 0xc2, 0x02, 0x69, 0xeb, 0x64, 0xdb, 0x3a, 0xee, 0x7e, 0xcd, 0x5c, 0xf9, 0x11,\n\t0x93, 0xd4, 0xc1, 0xda, 0x0a, 0xca, 0x69, 0x24, 0x43, 0xc5, 0x87, 0x68, 0x59, 0x44, 0xcc, 0xd5,\n\t0x19, 0x7b, 0x63, 0xb1, 0x8c, 0xb5, 0x23, 0xe6, 0xe6, 0x85, 0x83, 0x2f, 0xa2, 0x50, 0x70, 0x07,\n\t0x5d, 0x11, 0x92, 0xca, 0x58, 0xa8, 0xb2, 0xd5, 0x76, 0x6e, 0x2f, 0x88, 0xa7, 0x74, 0x9c, 0x6b,\n\t0x1a, 0xf1, 0x4a, 0xf2, 0x4d, 0x34, 0x96, 0xf9, 0x43, 0x09, 0x5d, 0x9b, 0xac, 0x15, 0x7e, 0x13,\n\t0xd5, 0x04, 0xe3, 0x27, 0x9e, 0xcb, 0x8e, 0xe8, 0x88, 0xe9, 0x56, 0x7a, 0x59, 0xeb, 0xd7, 0xda,\n\t0x39, 0x8b, 0x14, 0xe5, 0x70, 0x3f, 0x53, 0x6b, 0x85, 0x5c, 0xea, 0xa0, 0x2f, 0x4e, 0x29, 0x74,\n\t0xb6, 0x95, 0x74, 0xb6, 0xb5, 0x1f, 0xc8, 0x63, 0xde, 0x96, 0xdc, 0x0b, 0xfa, 0x33, 0x86, 0x00,\n\t0x8c, 0x14, 0x91, 0xf1, 0x67, 0xa8, 0xca, 0x99, 0x08, 0x63, 0xee, 0x32, 0x9d, 0x8a, 0x89, 0x66,\n\t0x84, 0x15, 0x00, 0x65, 0x82, 0xbe, 0xed, 0x1d, 0x86, 0x2e, 0xf5, 0x93, 0xe2, 0x10, 0xf6, 0x90,\n\t0x71, 0x16, 0xb8, 0xcc, 0x59, 0x83, 0x86, 0x27, 0x1a, 0x82, 0x64, 0x60, 0x30, 0x50, 0x6b, 0x3a,\n\t0x17, 0xbb, 0x3e, 0x7d, 0x21, 0x2d, 0xf2, 0xf1, 0x44, 0x8b, 0xd8, 0x8b, 0x95, 0x54, 0x39, 0x77,\n\t0x51, 0x9f, 0x98, 0x7f, 0x1a, 0x68, 0xbd, 0x28, 0x78, 0xe8, 0x09, 0x89, 0xbf, 0x9c, 0x89, 0xc4,\n\t0x5a, 0x2c, 0x12, 0xd0, 0x56, 0x71, 0xac, 0x6b, 0x53, 0xd5, 0x94, 0x52, 0x88, 0xa2, 0x85, 0x2a,\n\t0x9e, 0x64, 0x23, 0x51, 0x2f, 0xa9, 0x59, 0xbd, 0x75, 0x89, 0x30, 0xf2, 0x41, 0xdd, 0x07, 0x04,\n\t0x92, 0x00, 0x99, 0x7f, 0x1b, 0xa8, 0x59, 0x14, 0x6b, 0x51, 0x4e, 0x47, 0x4c, 0x32, 0x2e, 0xb2,\n\t0x32, 0xe2, 0x2d, 0x54, 0xa5, 0xad, 0xfd, 0x0f, 0x79, 0x18, 0x47, 0xe9, 0xbe, 0x03, 0xff, 0xde,\n\t0xd3, 0x34, 0x92, 0x71, 0x61, 0x2b, 0x0e, 0x3d, 0xbd, 0xba, 0x0a, 0x5b, 0xf1, 0xc0, 0x0b, 0x7a,\n\t0x44, 0x71, 0x40, 0x22, 0x80, 0x66, 0x2f, 0x4f, 0x4a, 0xa8, 0x2e, 0x57, 0x1c, 0xdc, 0x44, 0x15,\n\t0xe1, 0x86, 0x11, 0xab, 0x2f, 0x2b, 0x91, 0x55, 0x70, 0xb9, 0x0d, 0x04, 0x92, 0xd0, 0xf1, 0x2d,\n\t0xb4, 0x0a, 0x82, 0x22, 0xa2, 0x2e, 0xab, 0x57, 0x94, 0xd0, 0xd5, 0xf1, 0x59, 0x73, 0xf5, 0x28,\n\t0x25, 0x92, 0x9c, 0x6f, 0xfe, 0x3a, 0x55, 0x24, 0xa8, 0x1f, 0xde, 0x41, 0xc8, 0x0d, 0x03, 0xc9,\n\t0x43, 0xdf, 0x67, 0x5c, 0x87, 0x94, 0xb5, 0xcf, 0x6e, 0xc6, 0x21, 0x05, 0x29, 0x1c, 0x20, 0x14,\n\t0x65, 0xb9, 0xd1, 0x6d, 0xf4, 0xce, 0x25, 0xf2, 0x3f, 0x27, 0xb1, 0xce, 0x35, 0xb0, 0x57, 0x60,\n\t0x14, 0x2c, 0x98, 0xbf, 0x19, 0xa8, 0xa6, 0xf5, 0x5f, 0x40, 0x63, 0x1d, 0x4c, 0x36, 0xd6, 0x6b,\n\t0x0b, 0x3e, 0x3a, 0xf3, 0x7b, 0xea, 0x77, 0x03, 0x6d, 0xa4, 0xae, 0x87, 0xb4, 0xe7, 0x50, 0x9f,\n\t0x06, 0x2e, 0xe3, 0xe9, 0x7b, 0xb0, 0x81, 0x4a, 0x5e, 0xda, 0x48, 0x48, 0x03, 0x94, 0xf6, 0x5b,\n\t0xa4, 0xe4, 0x45, 0xf8, 0x36, 0xaa, 0x0e, 0x42, 0x21, 0x55, 0x8b, 0x24, 0x4d, 0x94, 0x79, 0xbd,\n\t0xa7, 0xe9, 0x24, 0x93, 0xc0, 0x9f, 0xa0, 0x4a, 0x14, 0x72, 0x29, 0xea, 0xcb, 0xca, 0xeb, 0xbb,\n\t0x8b, 0x79, 0x0d, 0xbb, 0x4d, 0x2f, 0xeb, 0xfc, 0xf1, 0x02, 0x18, 0x92, 0xa0, 0x99, 0xdf, 0x19,\n\t0xe8, 0x95, 0x39, 0xfe, 0x27, 0x3a, 0xb8, 0x87, 0x56, 0xbc, 0x84, 0xa9, 0x5f, 0xcc, 0xb7, 0x17,\n\t0x33, 0x3b, 0x27, 0x15, 0xf9, 0x6b, 0x9d, 0xbe, 0xca, 0x29, 0xb4, 0xf9, 0xb3, 0x81, 0x5e, 0x9a,\n\t0xf1, 0x57, 0x5d, 0x1d, 0xb0, 0xf3, 0x21, 0x79, 0x95, 0xc2, 0xd5, 0x01, 0xab, 0x5b, 0x71, 0xf0,\n\t0x01, 0xaa, 0xaa, 0xa3, 0xc5, 0x0d, 0x7d, 0x9d, 0x40, 0x3b, 0x4d, 0x60, 0x4b, 0xd3, 0x9f, 0x9e,\n\t0x35, 0x5f, 0x9d, 0xbd, 0xe4, 0xac, 0x94, 0x4d, 0x32, 0x00, 0x18, 0x45, 0xc6, 0x79, 0xc8, 0xf5,\n\t0xb4, 0xaa, 0x51, 0x7c, 0x1f, 0x08, 0x24, 0xa1, 0x9b, 0xbf, 0xe4, 0x4d, 0x0a, 0x07, 0x05, 0xf8,\n\t0x07, 0xc5, 0x99, 0xbe, 0x8a, 0xa0, 0x74, 0x44, 0x71, 0x70, 0x8c, 0xd6, 0xbd, 0xa9, 0x0b, 0xe4,\n\t0x72, 0x3b, 0x39, 0x53, 0x73, 0xea, 0x1a, 0x7e, 0x7d, 0x9a, 0x43, 0x66, 0x4c, 0x98, 0x0c, 0xcd,\n\t0x48, 0xc1, 0x93, 0x30, 0x90, 0x32, 0xd2, 0xd3, 0x74, 0x6f, 0xf1, 0xbb, 0x27, 0x77, 0xa1, 0xaa,\n\t0xa2, 0xeb, 0x74, 0x5a, 0x44, 0x41, 0x99, 0x7f, 0x94, 0xb2, 0x7c, 0xa8, 0x45, 0xf3, 0x6e, 0x16,\n\t0xad, 0xda, 0x01, 0xea, 0x99, 0x4f, 0xd6, 0xda, 0x8d, 0x82, 0xe3, 0x19, 0x8f, 0xcc, 0x48, 0xe3,\n\t0x4e, 0x7e, 0x0f, 0x1a, 0xff, 0xe7, 0x1e, 0xac, 0xcd, 0xbb, 0x05, 0xf1, 0x1e, 0x2a, 0x4b, 0x3f,\n\t0x1d, 0xf6, 0xd7, 0x17, 0x43, 0xec, 0x1c, 0xb6, 0x9d, 0x9a, 0x4e, 0x79, 0xb9, 0x73, 0xd8, 0x26,\n\t0x00, 0x81, 0x8f, 0x51, 0x85, 0xc7, 0x3e, 0x83, 0x5b, 0xa9, 0xbc, 0xf8, 0xed, 0x05, 0x19, 0xcc,\n\t0x87, 0x0f, 0xbe, 0x04, 0x49, 0x70, 0xcc, 0xef, 0x0d, 0x74, 0x75, 0xe2, 0xa2, 0xc2, 0x1c, 0xad,\n\t0xf9, 0x85, 0xd9, 0xd1, 0x79, 0x78, 0x70, 0xf9, 0xa9, 0xd3, 0x43, 0x7f, 0x43, 0xdb, 0x5d, 0x2b,\n\t0xf2, 0xc8, 0x84, 0x0d, 0x93, 0x22, 0x94, 0x87, 0x0d, 0x73, 0x00, 0xcd, 0x9b, 0x0c, 0xbc, 0x9e,\n\t0x03, 0xe8, 0x69, 0x41, 0x12, 0x3a, 0x3c, 0x28, 0x82, 0xb9, 0x9c, 0xc9, 0xa3, 0x7c, 0x71, 0x65,\n\t0x0f, 0x4a, 0x3b, 0xe3, 0x90, 0x82, 0x94, 0xb3, 0x7b, 0x7a, 0xde, 0x58, 0x7a, 0x7c, 0xde, 0x58,\n\t0x7a, 0x72, 0xde, 0x58, 0xfa, 0x76, 0xdc, 0x30, 0x4e, 0xc7, 0x0d, 0xe3, 0xf1, 0xb8, 0x61, 0x3c,\n\t0x19, 0x37, 0x8c, 0x7f, 0xc6, 0x0d, 0xe3, 0xa7, 0x7f, 0x1b, 0x4b, 0x5f, 0xdc, 0x7c, 0xe6, 0x3f,\n\t0x7c, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x08, 0x04, 0x22, 0x31, 0x29, 0x0e, 0x00, 0x00,\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.ServicePort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Parameters != nil {\n\t\t{\n\t\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Controller)\n\tcopy(dAtA[i:], m.Controller)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Controller)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Backend != nil {\n\t\t{\n\t\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ServicePort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Controller)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Parameters != nil {\n\t\tl = m.Parameters.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Backend != nil {\n\t\tl = m.Backend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServicePort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ServicePort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressClassSpec\", \"IngressClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IngressClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IngressClass\", \"IngressClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassParametersReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassSpec{`,\n\t\t`Controller:` + fmt.Sprintf(\"%v\", this.Controller) + `,`,\n\t\t`Parameters:` + strings.Replace(this.Parameters.String(), \"IngressClassParametersReference\", \"IngressClassParametersReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`Backend:` + strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServicePort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ServicePort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IngressClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Controller = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = &IngressClassParametersReference{}\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Backend == nil {\n\t\t\t\tm.Backend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1beta1\";\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/' and must be present\n  // when using PathType with value \"Exact\" or \"Prefix\".\n  // +optional\n  optional string path = 1;\n\n  // pathType determines the interpretation of the path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  // Defaults to ImplementationSpecific.\n  optional string pathType = 3;\n\n  // backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // paths is a collection of paths that map requests to backends.\n  repeated HTTPIngressPath paths = 1;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // serviceName specifies the name of the referenced service.\n  // +optional\n  optional string serviceName = 1;\n\n  // servicePort Specifies the port of the referenced service.\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString servicePort = 2;\n\n  // resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, serviceName and servicePort\n  // must not be specified.\n  // +optional\n  optional k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\nmessage IngressClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IngressClass.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressClassSpec spec = 2;\n}\n\n// IngressClassList is a collection of IngressClasses.\nmessage IngressClassList {\n  // Standard list metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IngressClasses.\n  repeated IngressClass items = 2;\n}\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\nmessage IngressClassParametersReference {\n  // apiGroup is the group for the resource being referenced. If APIGroup is\n  // not specified, the specified Kind must be in the core API group. For any\n  // other third-party types, APIGroup is required.\n  // +optional\n  optional string aPIGroup = 1;\n\n  // kind is the type of resource being referenced.\n  optional string kind = 2;\n\n  // name is the name of resource being referenced.\n  optional string name = 3;\n\n  // scope represents if this refers to a cluster or namespace scoped resource.\n  // This may be set to \"Cluster\" (default) or \"Namespace\".\n  optional string scope = 4;\n\n  // namespace is the namespace of the resource being referenced. This field is\n  // required when scope is set to \"Namespace\" and must be unset when scope is set to\n  // \"Cluster\".\n  // +optional\n  optional string namespace = 5;\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\nmessage IngressClassSpec {\n  // controller refers to the name of the controller that should handle this\n  // class. This allows for different \"flavors\" that are controlled by the\n  // same controller. For example, you may have different parameters for the\n  // same implementing controller. This should be specified as a\n  // domain-prefixed path no more than 250 characters in length, e.g.\n  // \"acme.io/ingress-controller\". This field is immutable.\n  optional string controller = 1;\n\n  // parameters is a link to a custom resource containing additional\n  // configuration for the controller. This is optional if the controller does\n  // not require extra parameters.\n  // +optional\n  optional IngressClassParametersReference parameters = 2;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // ip is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If Host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // +optional\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // ingressClassName is the name of the IngressClass cluster resource. The\n  // associated IngressClass defines which controller will implement the\n  // resource. This replaces the deprecated `kubernetes.io/ingress.class`\n  // annotation. For backwards compatibility, when that annotation is set, it\n  // must be given precedence over this field. The controller may emit a\n  // warning if the field and annotation have different values.\n  // Implementations of this API should ignore Ingresses without a class\n  // specified. An IngressClass resource may be marked as default, which can\n  // be used to set a default value for this field. For more information,\n  // refer to the IngressClass documentation.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // backend is the default backend capable of servicing requests that don't match any\n  // rule. At least one of 'backend' or 'rules' must be specified. This field\n  // is optional to allow the loadbalancer controller or defaulting logic to\n  // specify a global default.\n  // +optional\n  optional IngressBackend backend = 1;\n\n  // tls represents the TLS configuration. Currently the Ingress only supports a\n  // single TLS port, 443. If multiple members of this list specify different hosts,\n  // they will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +optional\n  repeated IngressTLS tls = 2;\n\n  // rules is a list of host rules used to configure the Ingress. If unspecified, or\n  // no rule matches, all traffic is sent to the default backend.\n  // +optional\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describes the current state of the Ingress.\nmessage IngressStatus {\n  // loadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\nmessage IngressTLS {\n  // hosts is a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +optional\n  repeated string hosts = 1;\n\n  // secretName is the name of the secret used to terminate TLS traffic on\n  // port 443. Field is left optional to allow TLS routing based on SNI\n  // hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n  // header field used by an IngressRule, the SNI host is used for termination\n  // and value of the Host header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder holds functions that add things to a scheme\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme adds the types of this group into the given scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&IngressClass{},\n\t\t&IngressClassList{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,Ingress\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressList\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// ingressClassName is the name of the IngressClass cluster resource. The\n\t// associated IngressClass defines which controller will implement the\n\t// resource. This replaces the deprecated `kubernetes.io/ingress.class`\n\t// annotation. For backwards compatibility, when that annotation is set, it\n\t// must be given precedence over this field. The controller may emit a\n\t// warning if the field and annotation have different values.\n\t// Implementations of this API should ignore Ingresses without a class\n\t// specified. An IngressClass resource may be marked as default, which can\n\t// be used to set a default value for this field. For more information,\n\t// refer to the IngressClass documentation.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// backend is the default backend capable of servicing requests that don't match any\n\t// rule. At least one of 'backend' or 'rules' must be specified. This field\n\t// is optional to allow the loadbalancer controller or defaulting logic to\n\t// specify a global default.\n\t// +optional\n\tBackend *IngressBackend `json:\"backend,omitempty\" protobuf:\"bytes,1,opt,name=backend\"`\n\n\t// tls represents the TLS configuration. Currently the Ingress only supports a\n\t// single TLS port, 443. If multiple members of this list specify different hosts,\n\t// they will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +optional\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// rules is a list of host rules used to configure the Ingress. If unspecified, or\n\t// no rule matches, all traffic is sent to the default backend.\n\t// +optional\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\t// TODO: Add the ability to specify load-balancer IP through claims\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\ntype IngressTLS struct {\n\t// hosts is a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +optional\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\n\t// secretName is the name of the secret used to terminate TLS traffic on\n\t// port 443. Field is left optional to allow TLS routing based on SNI\n\t// hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n\t// header field used by an IngressRule, the SNI host is used for termination\n\t// and value of the Host header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n\t// TODO: Consider specifying different modes of termination, protocols etc.\n}\n\n// IngressStatus describes the current state of the Ingress.\ntype IngressStatus struct {\n\t// loadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// ip is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If Host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline,omitempty\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t//TODO:\n\t// 1. Consider renaming this resource and the associated rules so they\n\t// aren't tied to Ingress. They can be used to route intra-cluster traffic.\n\t// 2. Consider adding fields for ingress-type specific global options\n\t// usable by a loadbalancer, like http keep-alive.\n\n\t// +optional\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// paths is a collection of paths that map requests to backends.\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n\t// TODO: Consider adding fields for ingress-type specific global\n\t// options usable by a loadbalancer, like http keep-alive.\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/' and must be present\n\t// when using PathType with value \"Exact\" or \"Prefix\".\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// pathType determines the interpretation of the path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\t// Defaults to ImplementationSpecific.\n\tPathType *PathType `json:\"pathType,omitempty\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// serviceName specifies the name of the referenced service.\n\t// +optional\n\tServiceName string `json:\"serviceName,omitempty\" protobuf:\"bytes,1,opt,name=serviceName\"`\n\n\t// servicePort Specifies the port of the referenced service.\n\t// +optional\n\tServicePort intstr.IntOrString `json:\"servicePort,omitempty\" protobuf:\"bytes,2,opt,name=servicePort\"`\n\n\t// resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, serviceName and servicePort\n\t// must not be specified.\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressClassList\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\ntype IngressClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the IngressClass.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressClassSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\ntype IngressClassSpec struct {\n\t// controller refers to the name of the controller that should handle this\n\t// class. This allows for different \"flavors\" that are controlled by the\n\t// same controller. For example, you may have different parameters for the\n\t// same implementing controller. This should be specified as a\n\t// domain-prefixed path no more than 250 characters in length, e.g.\n\t// \"acme.io/ingress-controller\". This field is immutable.\n\tController string `json:\"controller,omitempty\" protobuf:\"bytes,1,opt,name=controller\"`\n\n\t// parameters is a link to a custom resource containing additional\n\t// configuration for the controller. This is optional if the controller does\n\t// not require extra parameters.\n\t// +optional\n\tParameters *IngressClassParametersReference `json:\"parameters,omitempty\" protobuf:\"bytes,2,opt,name=parameters\"`\n}\n\nconst (\n\t// IngressClassParametersReferenceScopeNamespace indicates that the\n\t// referenced Parameters resource is namespace-scoped.\n\tIngressClassParametersReferenceScopeNamespace = \"Namespace\"\n\t// IngressClassParametersReferenceScopeCluster indicates that the\n\t// referenced Parameters resource is cluster-scoped.\n\tIngressClassParametersReferenceScopeCluster = \"Cluster\"\n)\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\ntype IngressClassParametersReference struct {\n\t// apiGroup is the group for the resource being referenced. If APIGroup is\n\t// not specified, the specified Kind must be in the core API group. For any\n\t// other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=aPIGroup\"`\n\n\t// kind is the type of resource being referenced.\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\n\t// name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\n\t// scope represents if this refers to a cluster or namespace scoped resource.\n\t// This may be set to \"Cluster\" (default) or \"Namespace\".\n\tScope *string `json:\"scope\" protobuf:\"bytes,4,opt,name=scope\"`\n\n\t// namespace is the namespace of the resource being referenced. This field is\n\t// required when scope is set to \"Namespace\" and must be unset when scope is set to\n\t// \"Cluster\".\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,5,opt,name=namespace\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressClassList\n\n// IngressClassList is a collection of IngressClasses.\ntype IngressClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of IngressClasses.\n\tItems []IngressClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n\t\"pathType\": \"pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types. Defaults to ImplementationSpecific.\",\n\t\"backend\":  \"backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"paths is a collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":            \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"serviceName\": \"serviceName specifies the name of the referenced service.\",\n\t\"servicePort\": \"servicePort Specifies the port of the referenced service.\",\n\t\"resource\":    \"resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressClass = map[string]string{\n\t\"\":         \"IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IngressClass) SwaggerDoc() map[string]string {\n\treturn map_IngressClass\n}\n\nvar map_IngressClassList = map[string]string{\n\t\"\":         \"IngressClassList is a collection of IngressClasses.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of IngressClasses.\",\n}\n\nfunc (IngressClassList) SwaggerDoc() map[string]string {\n\treturn map_IngressClassList\n}\n\nvar map_IngressClassParametersReference = map[string]string{\n\t\"\":          \"IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\",\n\t\"apiGroup\":  \"apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"kind is the type of resource being referenced.\",\n\t\"name\":      \"name is the name of resource being referenced.\",\n\t\"scope\":     \"scope represents if this refers to a cluster or namespace scoped resource. This may be set to \\\"Cluster\\\" (default) or \\\"Namespace\\\".\",\n\t\"namespace\": \"namespace is the namespace of the resource being referenced. This field is required when scope is set to \\\"Namespace\\\" and must be unset when scope is set to \\\"Cluster\\\".\",\n}\n\nfunc (IngressClassParametersReference) SwaggerDoc() map[string]string {\n\treturn map_IngressClassParametersReference\n}\n\nvar map_IngressClassSpec = map[string]string{\n\t\"\":           \"IngressClassSpec provides information about the class of an Ingress.\",\n\t\"controller\": \"controller refers to the name of the controller that should handle this class. This allows for different \\\"flavors\\\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \\\"acme.io/ingress-controller\\\". This field is immutable.\",\n\t\"parameters\": \"parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.\",\n}\n\nfunc (IngressClassSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressClassSpec\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"ip is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"port is the port number of the ingress port.\",\n\t\"protocol\": \"protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nhost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\": \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"ingressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.\",\n\t\"backend\":          \"backend is the default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.\",\n\t\"tls\":              \"tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describes the current state of the Ingress.\",\n\t\"loadBalancer\": \"loadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an Ingress.\",\n\t\"hosts\":      \"hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/well_known_annotations.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\t// AnnotationIsDefaultIngressClass can be used to indicate that an\n\t// IngressClass should be considered default. When a single IngressClass\n\t// resource has this annotation set to true, new Ingress resources without a\n\t// class specified will be assigned this default class.\n\tAnnotationIsDefaultIngressClass = \"ingressclass.kubernetes.io/is-default-class\"\n\n\t// AnnotationIngressClass indicates the class of an Ingress to be used when\n\t// determining which controller should implement the Ingress. Use of this\n\t// annotation is deprecated. The Ingress class field should be used instead\n\t// of this annotation.\n\t// +deprecated\n\tAnnotationIngressClass = \"kubernetes.io/ingress.class\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tout.ServicePort = in.ServicePort\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(v1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClass) DeepCopyInto(out *IngressClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClass.\nfunc (in *IngressClass) DeepCopy() *IngressClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassList) DeepCopyInto(out *IngressClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IngressClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassList.\nfunc (in *IngressClassList) DeepCopy() *IngressClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference.\nfunc (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) {\n\t*out = *in\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = new(IngressClassParametersReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassSpec.\nfunc (in *IngressClassSpec) DeepCopy() *IngressClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Backend != nil {\n\t\tin, out := &in.Backend, &out.Backend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Ingress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Ingress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Ingress) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"Ingress\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Ingress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=node.k8s.io\n\npackage v1 // import \"k8s.io/api/node/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/node/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6ac9be560e26ae98, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6ac9be560e26ae98, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6ac9be560e26ae98, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6ac9be560e26ae98, []int{3}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1.RuntimeClassList\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/node/v1/generated.proto\", fileDescriptor_6ac9be560e26ae98)\n}\n\nvar fileDescriptor_6ac9be560e26ae98 = []byte{\n\t// 660 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6f, 0xd3, 0x4a,\n\t0x10, 0xce, 0xa6, 0xaf, 0x6a, 0xba, 0x49, 0xdf, 0xeb, 0x5b, 0x7a, 0x88, 0x22, 0xe4, 0x44, 0x39,\n\t0x15, 0xa4, 0xae, 0xdb, 0x0a, 0xa1, 0x0a, 0x0e, 0x48, 0x86, 0x56, 0x20, 0x41, 0x01, 0x17, 0x2e,\n\t0x88, 0x03, 0x1b, 0x7b, 0x70, 0xdc, 0xc4, 0xde, 0x68, 0xbd, 0x8e, 0xc8, 0x0d, 0x71, 0x41, 0xe2,\n\t0xd4, 0xff, 0xc2, 0x81, 0xbf, 0x50, 0x71, 0xea, 0xb1, 0xa7, 0x96, 0x86, 0x7f, 0xc1, 0x09, 0xed,\n\t0xda, 0x4e, 0x5c, 0x1c, 0x42, 0xb9, 0x79, 0x67, 0xbf, 0xef, 0x9b, 0x99, 0x6f, 0x76, 0x8c, 0xef,\n\t0xf6, 0x76, 0x22, 0xea, 0x73, 0xb3, 0x17, 0x77, 0x40, 0x84, 0x20, 0x21, 0x32, 0x87, 0x10, 0xba,\n\t0x5c, 0x98, 0xe9, 0x05, 0x1b, 0xf8, 0x66, 0xc8, 0x5d, 0x30, 0x87, 0x5b, 0xa6, 0x07, 0x21, 0x08,\n\t0x26, 0xc1, 0xa5, 0x03, 0xc1, 0x25, 0x27, 0x24, 0xc1, 0x50, 0x36, 0xf0, 0xa9, 0xc2, 0xd0, 0xe1,\n\t0x56, 0x63, 0xc3, 0xf3, 0x65, 0x37, 0xee, 0x50, 0x87, 0x07, 0xa6, 0xc7, 0x3d, 0x6e, 0x6a, 0x68,\n\t0x27, 0x7e, 0xab, 0x4f, 0xfa, 0xa0, 0xbf, 0x12, 0x89, 0x46, 0x3b, 0x97, 0xc6, 0xe1, 0x62, 0x56,\n\t0x9a, 0xc6, 0xad, 0x29, 0x26, 0x60, 0x4e, 0xd7, 0x0f, 0x41, 0x8c, 0xcc, 0x41, 0xcf, 0xd3, 0x24,\n\t0x01, 0x11, 0x8f, 0x85, 0x03, 0x7f, 0xc5, 0x8a, 0xcc, 0x00, 0x24, 0x9b, 0x95, 0xcb, 0xfc, 0x1d,\n\t0x4b, 0xc4, 0xa1, 0xf4, 0x83, 0x62, 0x9a, 0xdb, 0x7f, 0x22, 0x44, 0x4e, 0x17, 0x02, 0xf6, 0x2b,\n\t0xaf, 0xfd, 0xb5, 0x8c, 0x2b, 0x4f, 0x87, 0x20, 0xba, 0xc0, 0x5c, 0x72, 0x82, 0x70, 0x65, 0xc0,\n\t0xdd, 0x3d, 0xff, 0x1d, 0xb8, 0x75, 0xd4, 0x5a, 0x58, 0xaf, 0x6e, 0xdf, 0xa4, 0x45, 0x73, 0x69,\n\t0x46, 0xa0, 0xcf, 0x52, 0xf0, 0x6e, 0x28, 0xc5, 0xc8, 0xfa, 0x88, 0x8e, 0xcf, 0x9a, 0xa5, 0xf1,\n\t0x59, 0xb3, 0x92, 0xc5, 0x7f, 0x9c, 0x35, 0x9b, 0x45, 0x67, 0xa9, 0x9d, 0x9a, 0xf5, 0xd8, 0x8f,\n\t0xe4, 0x87, 0xf3, 0xb9, 0x90, 0x7d, 0x16, 0xc0, 0xa7, 0xf3, 0xe6, 0xc6, 0x55, 0xbc, 0xa7, 0xcf,\n\t0x63, 0x16, 0x4a, 0x5f, 0x8e, 0xec, 0x49, 0x17, 0x8d, 0x1e, 0x5e, 0xb9, 0x54, 0x24, 0x59, 0xc5,\n\t0x0b, 0x3d, 0x18, 0xd5, 0x51, 0x0b, 0xad, 0x2f, 0xdb, 0xea, 0x93, 0x3c, 0xc0, 0x8b, 0x43, 0xd6,\n\t0x8f, 0xa1, 0x5e, 0x6e, 0xa1, 0xf5, 0xea, 0x36, 0xcd, 0x75, 0x3c, 0xc9, 0x45, 0x07, 0x3d, 0x4f,\n\t0x5b, 0x50, 0xcc, 0x95, 0x90, 0xef, 0x94, 0x77, 0x50, 0xfb, 0x73, 0x19, 0xd7, 0xec, 0xc4, 0xef,\n\t0xfb, 0x7d, 0x16, 0x45, 0xe4, 0x0d, 0xae, 0xa8, 0x09, 0xbb, 0x4c, 0x32, 0x9d, 0xb1, 0xba, 0xbd,\n\t0x39, 0x4f, 0x3d, 0xa2, 0x0a, 0xad, 0x1d, 0xee, 0x1c, 0x82, 0x23, 0x9f, 0x80, 0x64, 0x16, 0x49,\n\t0x4d, 0xc5, 0xd3, 0x98, 0x3d, 0x51, 0x25, 0x37, 0xf0, 0x52, 0x97, 0x85, 0x6e, 0x1f, 0x84, 0x2e,\n\t0x7f, 0xd9, 0xfa, 0x2f, 0x85, 0x2f, 0x3d, 0x4c, 0xc2, 0x76, 0x76, 0x4f, 0xf6, 0x70, 0x85, 0xa7,\n\t0x83, 0xab, 0x2f, 0xe8, 0x62, 0xae, 0xcf, 0x1b, 0xae, 0x55, 0x53, 0x93, 0xcc, 0x4e, 0xf6, 0x84,\n\t0x4b, 0xf6, 0x31, 0x56, 0x8f, 0xc9, 0x8d, 0xfb, 0x7e, 0xe8, 0xd5, 0xff, 0xd1, 0x4a, 0xc6, 0x2c,\n\t0xa5, 0x83, 0x09, 0xca, 0xfa, 0x57, 0x35, 0x30, 0x3d, 0xdb, 0x39, 0x85, 0xf6, 0x17, 0x84, 0x57,\n\t0xf3, 0xae, 0xa9, 0x57, 0x41, 0x5e, 0x17, 0x9c, 0xa3, 0x57, 0x73, 0x4e, 0xb1, 0xb5, 0x6f, 0xab,\n\t0xd9, 0x63, 0xcc, 0x22, 0x39, 0xd7, 0x76, 0xf1, 0xa2, 0x2f, 0x21, 0x88, 0xea, 0x65, 0xfd, 0xc8,\n\t0x5b, 0xb3, 0xaa, 0xcf, 0x97, 0x64, 0xad, 0xa4, 0x62, 0x8b, 0x8f, 0x14, 0xcd, 0x4e, 0xd8, 0xed,\n\t0xa3, 0x32, 0xce, 0x35, 0x45, 0x0e, 0x71, 0x4d, 0x91, 0x0f, 0xa0, 0x0f, 0x8e, 0xe4, 0x22, 0xdd,\n\t0xa0, 0xcd, 0xf9, 0xd6, 0xd0, 0xfd, 0x1c, 0x25, 0xd9, 0xa3, 0xb5, 0x34, 0x59, 0x2d, 0x7f, 0x65,\n\t0x5f, 0xd2, 0x26, 0x2f, 0x71, 0x55, 0xf2, 0xbe, 0x5a, 0x65, 0x9f, 0x87, 0x59, 0x1f, 0x97, 0xa6,\n\t0xa0, 0x36, 0x49, 0xa5, 0x7a, 0x31, 0x81, 0x59, 0xd7, 0x52, 0xe1, 0xea, 0x34, 0x16, 0xd9, 0x79,\n\t0x9d, 0xc6, 0x3d, 0xfc, 0x7f, 0xa1, 0x9e, 0x19, 0x2b, 0xb3, 0x96, 0x5f, 0x99, 0xe5, 0xdc, 0x0a,\n\t0x58, 0x3b, 0xc7, 0x17, 0x46, 0xe9, 0xe4, 0xc2, 0x28, 0x9d, 0x5e, 0x18, 0xa5, 0xf7, 0x63, 0x03,\n\t0x1d, 0x8f, 0x0d, 0x74, 0x32, 0x36, 0xd0, 0xe9, 0xd8, 0x40, 0xdf, 0xc6, 0x06, 0x3a, 0xfa, 0x6e,\n\t0x94, 0x5e, 0x91, 0xe2, 0x5f, 0xfd, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x46, 0x77, 0x65, 0x3b,\n\t0x03, 0x06, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Handler)\n\tcopy(dAtA[i:], m.Handler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Handler)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Handler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Handler:` + fmt.Sprintf(\"%v\", this.Handler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Handler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Handler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://kubernetes.io/docs/concepts/containers/runtime-class/\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // handler specifies the underlying runtime and configuration that the CRI\n  // implementation will use to handle pods of this class. The possible values\n  // are specific to the node & CRI configuration.  It is assumed that all\n  // handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n  // and is immutable.\n  optional string handler = 2;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  //  https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\n  // +optional\n  optional Overhead overhead = 3;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 4;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://kubernetes.io/docs/concepts/containers/runtime-class/\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// handler specifies the underlying runtime and configuration that the CRI\n\t// implementation will use to handle pods of this class. The possible values\n\t// are specific to the node & CRI configuration.  It is assumed that all\n\t// handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n\t// and is immutable.\n\tHandler string `json:\"handler\" protobuf:\"bytes,2,opt,name=handler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t//  https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,3,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,4,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":           \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/\",\n\t\"metadata\":   \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"handler\":    \"handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":   \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see\\n https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\",\n\t\"scheduling\": \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(corev1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]corev1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=node.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/node/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/node/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_82a78945ab308218, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_82a78945ab308218, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_82a78945ab308218, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *RuntimeClassSpec) Reset()      { *m = RuntimeClassSpec{} }\nfunc (*RuntimeClassSpec) ProtoMessage() {}\nfunc (*RuntimeClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_82a78945ab308218, []int{3}\n}\nfunc (m *RuntimeClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassSpec.Merge(m, src)\n}\nfunc (m *RuntimeClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassSpec proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_82a78945ab308218, []int{4}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1alpha1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1alpha1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClassList\")\n\tproto.RegisterType((*RuntimeClassSpec)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClassSpec\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1alpha1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1alpha1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/node/v1alpha1/generated.proto\", fileDescriptor_82a78945ab308218)\n}\n\nvar fileDescriptor_82a78945ab308218 = []byte{\n\t// 699 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x3d, 0x6f, 0xd3, 0x4c,\n\t0x1c, 0xcf, 0xa5, 0xad, 0x94, 0x5e, 0xd2, 0xaa, 0x8f, 0x9f, 0xea, 0x51, 0x94, 0xc1, 0xa9, 0xac,\n\t0x47, 0xa8, 0x42, 0xea, 0x99, 0x56, 0xa8, 0xaa, 0x18, 0x8a, 0x30, 0x2f, 0x02, 0x51, 0x5a, 0x70,\n\t0xcb, 0x82, 0x18, 0xb8, 0xd8, 0x7f, 0x1c, 0x13, 0xdb, 0x67, 0xd9, 0xe7, 0x88, 0x6c, 0x88, 0x05,\n\t0x89, 0x89, 0x89, 0x6f, 0x03, 0x73, 0xc7, 0x4e, 0xa8, 0x53, 0x4b, 0xc3, 0x77, 0x60, 0x60, 0x42,\n\t0x67, 0x9f, 0x13, 0x27, 0x69, 0x68, 0xd8, 0x7c, 0x77, 0xbf, 0x97, 0xff, 0x6b, 0x82, 0xef, 0x74,\n\t0x76, 0x62, 0xe2, 0x32, 0xbd, 0x93, 0xb4, 0x20, 0x0a, 0x80, 0x43, 0xac, 0x77, 0x21, 0xb0, 0x59,\n\t0xa4, 0xcb, 0x07, 0x1a, 0xba, 0x7a, 0xc0, 0x6c, 0xd0, 0xbb, 0x9b, 0xd4, 0x0b, 0xdb, 0x74, 0x53,\n\t0x77, 0x20, 0x80, 0x88, 0x72, 0xb0, 0x49, 0x18, 0x31, 0xce, 0x94, 0x7a, 0x86, 0x24, 0x34, 0x74,\n\t0x89, 0x40, 0x92, 0x1c, 0xd9, 0xd8, 0x70, 0x5c, 0xde, 0x4e, 0x5a, 0xc4, 0x62, 0xbe, 0xee, 0x30,\n\t0x87, 0xe9, 0x29, 0xa1, 0x95, 0xbc, 0x4e, 0x4f, 0xe9, 0x21, 0xfd, 0xca, 0x84, 0x1a, 0x5a, 0xc1,\n\t0xd2, 0x62, 0x91, 0xb0, 0x1c, 0x37, 0x6b, 0xdc, 0x1c, 0x62, 0x7c, 0x6a, 0xb5, 0xdd, 0x00, 0xa2,\n\t0x9e, 0x1e, 0x76, 0x9c, 0x94, 0x14, 0x41, 0xcc, 0x92, 0xc8, 0x82, 0xbf, 0x62, 0xc5, 0xba, 0x0f,\n\t0x9c, 0x5e, 0xe6, 0xa5, 0x4f, 0x63, 0x45, 0x49, 0xc0, 0x5d, 0x7f, 0xd2, 0x66, 0xfb, 0x2a, 0x42,\n\t0x6c, 0xb5, 0xc1, 0xa7, 0xe3, 0x3c, 0xed, 0xa4, 0x8c, 0x2b, 0x07, 0x5d, 0x88, 0xda, 0x40, 0x6d,\n\t0xe5, 0x1b, 0xc2, 0x95, 0x90, 0xd9, 0x0f, 0xdc, 0xb7, 0x60, 0xd7, 0xd1, 0xda, 0xdc, 0x7a, 0x75,\n\t0xeb, 0x06, 0x99, 0x56, 0x62, 0x92, 0xd3, 0xc8, 0x53, 0x49, 0xb9, 0x1f, 0xf0, 0xa8, 0x67, 0x7c,\n\t0x40, 0xc7, 0x67, 0xcd, 0x52, 0xff, 0xac, 0x59, 0xc9, 0xef, 0x7f, 0x9d, 0x35, 0x9b, 0x93, 0xf5,\n\t0x25, 0xa6, 0x2c, 0xd9, 0x9e, 0x1b, 0xf3, 0xf7, 0xe7, 0x7f, 0x84, 0xec, 0x53, 0x1f, 0x3e, 0x9e,\n\t0x37, 0x37, 0x66, 0xe9, 0x00, 0x79, 0x96, 0xd0, 0x80, 0xbb, 0xbc, 0x67, 0x0e, 0x72, 0x69, 0x74,\n\t0xf0, 0xd2, 0x48, 0x90, 0xca, 0x0a, 0x9e, 0xeb, 0x40, 0xaf, 0x8e, 0xd6, 0xd0, 0xfa, 0xa2, 0x29,\n\t0x3e, 0x95, 0x7b, 0x78, 0xa1, 0x4b, 0xbd, 0x04, 0xea, 0xe5, 0x35, 0xb4, 0x5e, 0xdd, 0x22, 0x85,\n\t0xbc, 0x07, 0x5e, 0x24, 0xec, 0x38, 0x69, 0x21, 0x26, 0xbd, 0x32, 0xf2, 0xad, 0xf2, 0x0e, 0xd2,\n\t0xbe, 0x22, 0x5c, 0x33, 0xb3, 0xaa, 0xdf, 0xf5, 0x68, 0x1c, 0x2b, 0xaf, 0x70, 0x45, 0xf4, 0xd9,\n\t0xa6, 0x9c, 0xa6, 0x8e, 0xa3, 0x55, 0x9d, 0x50, 0x8f, 0x89, 0x40, 0x93, 0xee, 0x26, 0x39, 0x68,\n\t0xbd, 0x01, 0x8b, 0x3f, 0x01, 0x4e, 0x0d, 0x45, 0x16, 0x15, 0x0f, 0xef, 0xcc, 0x81, 0xaa, 0xb2,\n\t0x87, 0xe7, 0xe3, 0x10, 0x2c, 0x19, 0xfb, 0xf5, 0xe9, 0x3d, 0x2b, 0xc6, 0x75, 0x18, 0x82, 0x65,\n\t0xd4, 0xa4, 0xee, 0xbc, 0x38, 0x99, 0xa9, 0x8a, 0xf6, 0x05, 0xe1, 0x95, 0x22, 0x50, 0x34, 0x48,\n\t0x79, 0x39, 0x91, 0x04, 0x99, 0x2d, 0x09, 0xc1, 0x4e, 0x53, 0x58, 0xc9, 0xe7, 0x22, 0xbf, 0x29,\n\t0x24, 0xf0, 0x18, 0x2f, 0xb8, 0x1c, 0xfc, 0xb8, 0x5e, 0x4e, 0xa7, 0xee, 0xda, 0x6c, 0x19, 0x18,\n\t0x4b, 0x52, 0x72, 0xe1, 0x91, 0x20, 0x9b, 0x99, 0x86, 0xf6, 0x73, 0x2c, 0x7e, 0x91, 0x9a, 0xb2,\n\t0x8b, 0x97, 0xe5, 0x2a, 0x3c, 0xa4, 0x81, 0xed, 0x41, 0x94, 0x35, 0xdf, 0xf8, 0x4f, 0x4a, 0x2c,\n\t0x9b, 0x23, 0xaf, 0xe6, 0x18, 0x5a, 0xd9, 0xc3, 0x15, 0x26, 0x07, 0x5e, 0x96, 0x59, 0xbb, 0x7a,\n\t0x35, 0x8c, 0x9a, 0xc8, 0x37, 0x3f, 0x99, 0x03, 0x05, 0xe5, 0x08, 0x63, 0xb1, 0x90, 0x76, 0xe2,\n\t0xb9, 0x81, 0x53, 0x9f, 0x4b, 0xf5, 0xfe, 0x9f, 0xae, 0x77, 0x38, 0xc0, 0x1a, 0xcb, 0x62, 0x08,\n\t0x86, 0x67, 0xb3, 0xa0, 0xa3, 0x7d, 0x2e, 0xe3, 0xc2, 0x93, 0x12, 0xe2, 0x9a, 0x90, 0x39, 0x04,\n\t0x0f, 0x2c, 0xce, 0x22, 0xb9, 0xd1, 0xdb, 0xb3, 0xd8, 0x90, 0xfd, 0x02, 0x31, 0xdb, 0xeb, 0x55,\n\t0x59, 0xa8, 0x5a, 0xf1, 0xc9, 0x1c, 0x71, 0x50, 0x9e, 0xe3, 0x2a, 0x67, 0x9e, 0xf8, 0x81, 0x71,\n\t0x59, 0x90, 0x37, 0x53, 0x2d, 0x1a, 0x8a, 0xcd, 0x16, 0x53, 0x71, 0x34, 0x80, 0x19, 0xff, 0x4a,\n\t0xe1, 0xea, 0xf0, 0x2e, 0x36, 0x8b, 0x3a, 0x8d, 0xdb, 0xf8, 0x9f, 0x89, 0x78, 0x2e, 0x59, 0xe1,\n\t0xd5, 0xe2, 0x0a, 0x2f, 0x16, 0x56, 0xd2, 0xd8, 0x3d, 0xbe, 0x50, 0x4b, 0x27, 0x17, 0x6a, 0xe9,\n\t0xf4, 0x42, 0x2d, 0xbd, 0xeb, 0xab, 0xe8, 0xb8, 0xaf, 0xa2, 0x93, 0xbe, 0x8a, 0x4e, 0xfb, 0x2a,\n\t0xfa, 0xde, 0x57, 0xd1, 0xa7, 0x1f, 0x6a, 0xe9, 0x45, 0x7d, 0xda, 0xff, 0xce, 0xef, 0x00, 0x00,\n\t0x00, 0xff, 0xff, 0x92, 0x0d, 0xef, 0xbe, 0xab, 0x06, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.RuntimeHandler)\n\tcopy(dAtA[i:], m.RuntimeHandler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RuntimeHandler)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RuntimeHandler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"RuntimeClassSpec\", \"RuntimeClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClassSpec{`,\n\t\t`RuntimeHandler:` + fmt.Sprintf(\"%v\", this.RuntimeHandler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1alpha1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the RuntimeClass\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  optional RuntimeClassSpec spec = 2;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters\n// that are required to describe the RuntimeClass to the Container Runtime\n// Interface (CRI) implementation, as well as any other components that need to\n// understand how the pod will be run. The RuntimeClassSpec is immutable.\nmessage RuntimeClassSpec {\n  // runtimeHandler specifies the underlying runtime and configuration that the\n  // CRI implementation will use to handle pods of this class. The possible\n  // values are specific to the node & CRI configuration.  It is assumed that\n  // all handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123)\n  // requirements, and is immutable.\n  optional string runtimeHandler = 1;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  // https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  optional Overhead overhead = 2;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 3;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the RuntimeClass\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\tSpec RuntimeClassSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters\n// that are required to describe the RuntimeClass to the Container Runtime\n// Interface (CRI) implementation, as well as any other components that need to\n// understand how the pod will be run. The RuntimeClassSpec is immutable.\ntype RuntimeClassSpec struct {\n\t// runtimeHandler specifies the underlying runtime and configuration that the\n\t// CRI implementation will use to handle pods of this class. The possible\n\t// values are specific to the node & CRI configuration.  It is assumed that\n\t// all handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123)\n\t// requirements, and is immutable.\n\tRuntimeHandler string `json:\"runtimeHandler\" protobuf:\"bytes,1,opt,name=runtimeHandler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t// https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,2,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,3,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":         \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the RuntimeClass More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_RuntimeClassSpec = map[string]string{\n\t\"\":               \"RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters that are required to describe the RuntimeClass to the Container Runtime Interface (CRI) implementation, as well as any other components that need to understand how the pod will be run. The RuntimeClassSpec is immutable.\",\n\t\"runtimeHandler\": \"runtimeHandler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":       \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"scheduling\":     \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClassSpec) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassSpec\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(v1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassSpec) DeepCopyInto(out *RuntimeClassSpec) {\n\t*out = *in\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassSpec.\nfunc (in *RuntimeClassSpec) DeepCopy() *RuntimeClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]v1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=node.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/node/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/node/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f977b0dddc93b4ec, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f977b0dddc93b4ec, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f977b0dddc93b4ec, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f977b0dddc93b4ec, []int{3}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1beta1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1beta1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1beta1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1beta1.RuntimeClassList\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1beta1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1beta1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/node/v1beta1/generated.proto\", fileDescriptor_f977b0dddc93b4ec)\n}\n\nvar fileDescriptor_f977b0dddc93b4ec = []byte{\n\t// 668 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xbb, 0x6f, 0xd3, 0x40,\n\t0x18, 0xcf, 0xa5, 0x54, 0x4d, 0x2f, 0x29, 0x14, 0x53, 0xa9, 0x51, 0x06, 0xa7, 0x04, 0x21, 0x95,\n\t0xa1, 0x67, 0x5a, 0x01, 0xaa, 0x90, 0x10, 0xc8, 0x3c, 0xc4, 0xb3, 0x05, 0x17, 0x16, 0xc4, 0xc0,\n\t0xc5, 0xfe, 0x70, 0x4c, 0x62, 0x5f, 0x74, 0x3e, 0x47, 0x64, 0x43, 0x2c, 0x48, 0x4c, 0x2c, 0xfc,\n\t0x37, 0xb0, 0x77, 0xa3, 0x0b, 0x52, 0xa7, 0x96, 0x86, 0xff, 0x82, 0x09, 0x9d, 0x5f, 0xb9, 0x36,\n\t0x4d, 0x1b, 0x36, 0xdf, 0xdd, 0xef, 0x71, 0xdf, 0xef, 0xbb, 0xcf, 0xf8, 0x4e, 0x7b, 0x3d, 0x24,\n\t0x1e, 0x33, 0xda, 0x51, 0x13, 0x78, 0x00, 0x02, 0x42, 0xa3, 0x07, 0x81, 0xc3, 0xb8, 0x91, 0x1e,\n\t0xd0, 0xae, 0x67, 0x04, 0xcc, 0x01, 0xa3, 0xb7, 0xda, 0x04, 0x41, 0x57, 0x0d, 0x17, 0x02, 0xe0,\n\t0x54, 0x80, 0x43, 0xba, 0x9c, 0x09, 0xa6, 0x2d, 0x26, 0x40, 0x42, 0xbb, 0x1e, 0x91, 0x40, 0x92,\n\t0x02, 0x6b, 0x2b, 0xae, 0x27, 0x5a, 0x51, 0x93, 0xd8, 0xcc, 0x37, 0x5c, 0xe6, 0x32, 0x23, 0xc6,\n\t0x37, 0xa3, 0x77, 0xf1, 0x2a, 0x5e, 0xc4, 0x5f, 0x89, 0x4e, 0xad, 0xa1, 0x18, 0xda, 0x8c, 0x4b,\n\t0xc3, 0xa3, 0x5e, 0xb5, 0x6b, 0x43, 0x8c, 0x4f, 0xed, 0x96, 0x17, 0x00, 0xef, 0x1b, 0xdd, 0xb6,\n\t0x1b, 0x93, 0x38, 0x84, 0x2c, 0xe2, 0x36, 0xfc, 0x17, 0x2b, 0x34, 0x7c, 0x10, 0xf4, 0x38, 0x2f,\n\t0x63, 0x1c, 0x8b, 0x47, 0x81, 0xf0, 0xfc, 0x51, 0x9b, 0x1b, 0xa7, 0x11, 0x42, 0xbb, 0x05, 0x3e,\n\t0x3d, 0xca, 0x6b, 0xfc, 0x2c, 0xe2, 0xd2, 0x66, 0x0f, 0x78, 0x0b, 0xa8, 0xa3, 0xfd, 0x42, 0xb8,\n\t0xd4, 0x65, 0xce, 0x03, 0xef, 0x03, 0x38, 0x55, 0xb4, 0x34, 0xb5, 0x5c, 0x5e, 0x33, 0xc8, 0x98,\n\t0x84, 0x49, 0xc6, 0x22, 0xcf, 0x53, 0xc6, 0xfd, 0x40, 0xf0, 0xbe, 0xf9, 0x19, 0x6d, 0xef, 0xd5,\n\t0x0b, 0x83, 0xbd, 0x7a, 0x29, 0xdb, 0xff, 0xbb, 0x57, 0xaf, 0x8f, 0xc6, 0x4b, 0xac, 0x34, 0xb1,\n\t0xa7, 0x5e, 0x28, 0x3e, 0xed, 0x9f, 0x08, 0xd9, 0xa0, 0x3e, 0x7c, 0xd9, 0xaf, 0xaf, 0x4c, 0xd2,\n\t0x00, 0xf2, 0x22, 0xa2, 0x81, 0xf0, 0x44, 0xdf, 0xca, 0x4b, 0xa9, 0xb5, 0xf1, 0xdc, 0xa1, 0x4b,\n\t0x6a, 0xf3, 0x78, 0xaa, 0x0d, 0xfd, 0x2a, 0x5a, 0x42, 0xcb, 0xb3, 0x96, 0xfc, 0xd4, 0xee, 0xe1,\n\t0xe9, 0x1e, 0xed, 0x44, 0x50, 0x2d, 0x2e, 0xa1, 0xe5, 0xf2, 0x1a, 0x51, 0xca, 0xce, 0xbd, 0x48,\n\t0xb7, 0xed, 0xc6, 0x39, 0x8c, 0x7a, 0x25, 0xe4, 0x9b, 0xc5, 0x75, 0xd4, 0xf8, 0x51, 0xc4, 0x15,\n\t0x2b, 0x09, 0xfd, 0x6e, 0x87, 0x86, 0xa1, 0xf6, 0x16, 0x97, 0x64, 0x9b, 0x1d, 0x2a, 0x68, 0xec,\n\t0x58, 0x5e, 0xbb, 0x7a, 0x92, 0x7a, 0x48, 0x24, 0x9a, 0xf4, 0x56, 0xc9, 0x66, 0xf3, 0x3d, 0xd8,\n\t0xe2, 0x19, 0x08, 0x6a, 0x6a, 0x69, 0xa8, 0x78, 0xb8, 0x67, 0xe5, 0xaa, 0xda, 0x15, 0x3c, 0xd3,\n\t0xa2, 0x81, 0xd3, 0x01, 0x1e, 0x5f, 0x7f, 0xd6, 0x3c, 0x97, 0xc2, 0x67, 0x1e, 0x26, 0xdb, 0x56,\n\t0x76, 0xae, 0x3d, 0xc1, 0x25, 0x96, 0x36, 0xae, 0x3a, 0x15, 0x5f, 0xe6, 0xe2, 0xa9, 0x1d, 0x36,\n\t0x2b, 0xb2, 0x9d, 0xd9, 0xca, 0xca, 0x05, 0xb4, 0x2d, 0x8c, 0xe5, 0xb3, 0x72, 0xa2, 0x8e, 0x17,\n\t0xb8, 0xd5, 0x33, 0xb1, 0xdc, 0xa5, 0xb1, 0x72, 0x5b, 0x39, 0xd4, 0x3c, 0x2b, 0x4b, 0x19, 0xae,\n\t0x2d, 0x45, 0xa6, 0xf1, 0x1d, 0xe1, 0x79, 0x35, 0x3f, 0xf9, 0x3e, 0xb4, 0x37, 0x23, 0x19, 0x92,\n\t0xc9, 0x32, 0x94, 0xec, 0x38, 0xc1, 0xf9, 0xec, 0x59, 0x66, 0x3b, 0x4a, 0x7e, 0x8f, 0xf1, 0xb4,\n\t0x27, 0xc0, 0x0f, 0xab, 0xc5, 0xf8, 0xcd, 0x5f, 0x1e, 0x5b, 0x82, 0x7a, 0x2f, 0x73, 0x2e, 0x55,\n\t0x9c, 0x7e, 0x24, 0xb9, 0x56, 0x22, 0xd1, 0xf8, 0x56, 0xc4, 0x4a, 0x65, 0x1a, 0xc3, 0x15, 0xa9,\n\t0xb0, 0x05, 0x1d, 0xb0, 0x05, 0xe3, 0xe9, 0x54, 0x5d, 0x9f, 0x20, 0x24, 0xb2, 0xa1, 0xf0, 0x92,\n\t0xd9, 0x5a, 0x48, 0x1d, 0x2b, 0xea, 0x91, 0x75, 0xc8, 0x40, 0x7b, 0x85, 0xcb, 0x82, 0x75, 0xe4,\n\t0x8c, 0x7b, 0x2c, 0xc8, 0x2a, 0xd2, 0x55, 0x3f, 0x39, 0x5d, 0x32, 0x9a, 0x97, 0x39, 0xcc, 0xbc,\n\t0x90, 0x0a, 0x97, 0x87, 0x7b, 0xa1, 0xa5, 0xea, 0xd4, 0x6e, 0xe3, 0xf3, 0x23, 0xf7, 0x39, 0x66,\n\t0x8c, 0x16, 0xd4, 0x31, 0x9a, 0x55, 0xc6, 0xc2, 0xbc, 0xb5, 0x7d, 0xa0, 0x17, 0x76, 0x0e, 0xf4,\n\t0xc2, 0xee, 0x81, 0x5e, 0xf8, 0x38, 0xd0, 0xd1, 0xf6, 0x40, 0x47, 0x3b, 0x03, 0x1d, 0xed, 0x0e,\n\t0x74, 0xf4, 0x7b, 0xa0, 0xa3, 0xaf, 0x7f, 0xf4, 0xc2, 0xeb, 0xc5, 0x31, 0x3f, 0xfe, 0x7f, 0x01,\n\t0x00, 0x00, 0xff, 0xff, 0x7a, 0xca, 0xe1, 0x7d, 0x2b, 0x06, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Handler)\n\tcopy(dAtA[i:], m.Handler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Handler)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Handler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Handler:` + fmt.Sprintf(\"%v\", this.Handler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Handler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Handler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1beta1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // handler specifies the underlying runtime and configuration that the CRI\n  // implementation will use to handle pods of this class. The possible values\n  // are specific to the node & CRI configuration.  It is assumed that all\n  // handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n  // and is immutable.\n  optional string handler = 2;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  // https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  optional Overhead overhead = 3;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 4;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// handler specifies the underlying runtime and configuration that the CRI\n\t// implementation will use to handle pods of this class. The possible values\n\t// are specific to the node & CRI configuration.  It is assumed that all\n\t// handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n\t// and is immutable.\n\tHandler string `json:\"handler\" protobuf:\"bytes,2,opt,name=handler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t// https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,3,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,4,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":           \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"metadata\":   \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"handler\":    \"handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":   \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"scheduling\": \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(v1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]v1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RuntimeClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RuntimeClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RuntimeClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RuntimeClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// Package policy is for any kind of policy object.  Suitable examples, even if\n// they aren't all here, are PodDisruptionBudget, PodSecurityPolicy,\n// NetworkPolicy, etc.\npackage v1 // import \"k8s.io/api/policy/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/policy/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Eviction) Reset()      { *m = Eviction{} }\nfunc (*Eviction) ProtoMessage() {}\nfunc (*Eviction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2d50488813b2d18e, []int{0}\n}\nfunc (m *Eviction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Eviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Eviction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Eviction.Merge(m, src)\n}\nfunc (m *Eviction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Eviction) XXX_DiscardUnknown() {\n\txxx_messageInfo_Eviction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Eviction proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudget) Reset()      { *m = PodDisruptionBudget{} }\nfunc (*PodDisruptionBudget) ProtoMessage() {}\nfunc (*PodDisruptionBudget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2d50488813b2d18e, []int{1}\n}\nfunc (m *PodDisruptionBudget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudget.Merge(m, src)\n}\nfunc (m *PodDisruptionBudget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudget) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudget proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetList) Reset()      { *m = PodDisruptionBudgetList{} }\nfunc (*PodDisruptionBudgetList) ProtoMessage() {}\nfunc (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2d50488813b2d18e, []int{2}\n}\nfunc (m *PodDisruptionBudgetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetList.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetList proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetSpec) Reset()      { *m = PodDisruptionBudgetSpec{} }\nfunc (*PodDisruptionBudgetSpec) ProtoMessage() {}\nfunc (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2d50488813b2d18e, []int{3}\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetSpec.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetSpec proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetStatus) Reset()      { *m = PodDisruptionBudgetStatus{} }\nfunc (*PodDisruptionBudgetStatus) ProtoMessage() {}\nfunc (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2d50488813b2d18e, []int{4}\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetStatus.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Eviction)(nil), \"k8s.io.api.policy.v1.Eviction\")\n\tproto.RegisterType((*PodDisruptionBudget)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudget\")\n\tproto.RegisterType((*PodDisruptionBudgetList)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetList\")\n\tproto.RegisterType((*PodDisruptionBudgetSpec)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetSpec\")\n\tproto.RegisterType((*PodDisruptionBudgetStatus)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetStatus\")\n\tproto.RegisterMapType((map[string]v1.Time)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetStatus.DisruptedPodsEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/policy/v1/generated.proto\", fileDescriptor_2d50488813b2d18e)\n}\n\nvar fileDescriptor_2d50488813b2d18e = []byte{\n\t// 854 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0xcf, 0x8f, 0xdb, 0x44,\n\t0x14, 0xc7, 0xe3, 0xcd, 0x66, 0xd9, 0x4e, 0x93, 0x68, 0x19, 0x16, 0x58, 0x72, 0x70, 0xaa, 0x9c,\n\t0x16, 0xa4, 0x8e, 0xd9, 0x16, 0xa1, 0x55, 0x25, 0x50, 0xeb, 0x66, 0x05, 0x45, 0x5d, 0xb2, 0x9a,\n\t0x6d, 0x85, 0x84, 0x40, 0x62, 0x62, 0xbf, 0x26, 0x43, 0x6c, 0x8f, 0xe5, 0x19, 0x87, 0xe6, 0x44,\n\t0xff, 0x04, 0xfe, 0x05, 0xfe, 0x14, 0x4e, 0xec, 0xb1, 0xdc, 0x2a, 0x0e, 0x11, 0x6b, 0xfe, 0x0b,\n\t0x4e, 0xc8, 0x63, 0xe7, 0x87, 0x37, 0x0e, 0xcd, 0x72, 0xe8, 0xcd, 0xf3, 0xde, 0xfb, 0x7e, 0x9e,\n\t0xdf, 0x8f, 0x71, 0x82, 0x3e, 0x1b, 0x1d, 0x4b, 0xc2, 0x85, 0x35, 0x8a, 0xfb, 0x10, 0x05, 0xa0,\n\t0x40, 0x5a, 0x63, 0x08, 0x5c, 0x11, 0x59, 0xb9, 0x83, 0x85, 0xdc, 0x0a, 0x85, 0xc7, 0x9d, 0x89,\n\t0x35, 0x3e, 0xb2, 0x06, 0x10, 0x40, 0xc4, 0x14, 0xb8, 0x24, 0x8c, 0x84, 0x12, 0x78, 0x3f, 0x8b,\n\t0x22, 0x2c, 0xe4, 0x24, 0x8b, 0x22, 0xe3, 0xa3, 0xd6, 0xed, 0x01, 0x57, 0xc3, 0xb8, 0x4f, 0x1c,\n\t0xe1, 0x5b, 0x03, 0x31, 0x10, 0x96, 0x0e, 0xee, 0xc7, 0xcf, 0xf4, 0x49, 0x1f, 0xf4, 0x53, 0x06,\n\t0x69, 0x7d, 0xb2, 0x48, 0xe5, 0x33, 0x67, 0xc8, 0x03, 0x88, 0x26, 0x56, 0x38, 0x1a, 0xa4, 0x06,\n\t0x69, 0xf9, 0xa0, 0x58, 0x49, 0xea, 0x96, 0xb5, 0x4e, 0x15, 0xc5, 0x81, 0xe2, 0x3e, 0xac, 0x08,\n\t0x3e, 0x7d, 0x9d, 0x40, 0x3a, 0x43, 0xf0, 0xd9, 0x8a, 0xee, 0xee, 0x3a, 0x5d, 0xac, 0xb8, 0x67,\n\t0xf1, 0x40, 0x49, 0x15, 0x5d, 0x15, 0x75, 0xfe, 0x34, 0xd0, 0xee, 0xc9, 0x98, 0x3b, 0x8a, 0x8b,\n\t0x00, 0xff, 0x80, 0x76, 0xd3, 0x2a, 0x5c, 0xa6, 0xd8, 0x81, 0x71, 0xcb, 0x38, 0xbc, 0x79, 0xe7,\n\t0x63, 0xb2, 0x68, 0xdc, 0x1c, 0x4a, 0xc2, 0xd1, 0x20, 0x35, 0x48, 0x92, 0x46, 0x93, 0xf1, 0x11,\n\t0xe9, 0xf5, 0x7f, 0x04, 0x47, 0x9d, 0x82, 0x62, 0x36, 0xbe, 0x98, 0xb6, 0x2b, 0xc9, 0xb4, 0x8d,\n\t0x16, 0x36, 0x3a, 0xa7, 0x62, 0x0f, 0x35, 0x5c, 0xf0, 0x40, 0x41, 0x2f, 0x4c, 0x33, 0xca, 0x83,\n\t0x2d, 0x9d, 0xe6, 0xee, 0x66, 0x69, 0xba, 0xcb, 0x52, 0xfb, 0xed, 0x64, 0xda, 0x6e, 0x14, 0x4c,\n\t0xb4, 0x08, 0xef, 0xfc, 0xba, 0x85, 0xde, 0x39, 0x13, 0x6e, 0x97, 0xcb, 0x28, 0xd6, 0x26, 0x3b,\n\t0x76, 0x07, 0xa0, 0xde, 0x40, 0x9d, 0x3d, 0xb4, 0x2d, 0x43, 0x70, 0xf2, 0xf2, 0x6e, 0x93, 0xb2,\n\t0xf5, 0x23, 0x25, 0xaf, 0x76, 0x1e, 0x82, 0x63, 0xd7, 0x73, 0xf4, 0x76, 0x7a, 0xa2, 0x1a, 0x84,\n\t0xbf, 0x41, 0x3b, 0x52, 0x31, 0x15, 0xcb, 0x83, 0xaa, 0x46, 0x5a, 0x9b, 0x23, 0xb5, 0xcc, 0x6e,\n\t0xe6, 0xd0, 0x9d, 0xec, 0x4c, 0x73, 0x5c, 0xe7, 0x77, 0x03, 0xbd, 0x5f, 0xa2, 0x7a, 0xcc, 0xa5,\n\t0xc2, 0xdf, 0xad, 0xf4, 0x89, 0x6c, 0xd6, 0xa7, 0x54, 0xad, 0xbb, 0xb4, 0x97, 0x67, 0xdd, 0x9d,\n\t0x59, 0x96, 0x7a, 0xf4, 0x35, 0xaa, 0x71, 0x05, 0x7e, 0xba, 0x03, 0xd5, 0xc3, 0x9b, 0x77, 0x3e,\n\t0xdc, 0xb8, 0x22, 0xbb, 0x91, 0x53, 0x6b, 0x8f, 0x52, 0x3d, 0xcd, 0x30, 0x9d, 0x3f, 0xaa, 0xa5,\n\t0x95, 0xa4, 0x4d, 0xc4, 0xcf, 0x50, 0xdd, 0xe7, 0xc1, 0x83, 0x31, 0xe3, 0x1e, 0xeb, 0x7b, 0xf0,\n\t0xda, 0xa9, 0xa7, 0x57, 0x86, 0x64, 0x57, 0x86, 0x3c, 0x0a, 0x54, 0x2f, 0x3a, 0x57, 0x11, 0x0f,\n\t0x06, 0xf6, 0x5e, 0x32, 0x6d, 0xd7, 0x4f, 0x97, 0x48, 0xb4, 0xc0, 0xc5, 0xdf, 0xa3, 0x5d, 0x09,\n\t0x1e, 0x38, 0x4a, 0x44, 0xd7, 0x5b, 0xed, 0xc7, 0xac, 0x0f, 0xde, 0x79, 0x2e, 0xb5, 0xeb, 0x69,\n\t0xcb, 0x66, 0x27, 0x3a, 0x47, 0x62, 0x0f, 0x35, 0x7d, 0xf6, 0xfc, 0x69, 0xc0, 0xe6, 0x85, 0x54,\n\t0xff, 0x67, 0x21, 0x38, 0x99, 0xb6, 0x9b, 0xa7, 0x05, 0x16, 0xbd, 0xc2, 0xc6, 0x2f, 0x0c, 0xd4,\n\t0x8a, 0x83, 0x21, 0x30, 0x4f, 0x0d, 0x27, 0x67, 0xc2, 0x9d, 0x7d, 0x27, 0xce, 0xf4, 0x70, 0x0e,\n\t0xb6, 0x6f, 0x19, 0x87, 0x37, 0xec, 0xfb, 0xc9, 0xb4, 0xdd, 0x7a, 0xba, 0x36, 0xea, 0x9f, 0x69,\n\t0xdb, 0x5c, 0xef, 0x7d, 0x32, 0x09, 0x81, 0xfe, 0x47, 0x8e, 0xce, 0x6f, 0x35, 0xf4, 0xc1, 0xda,\n\t0x9d, 0xc6, 0x5f, 0x21, 0x2c, 0xfa, 0x12, 0xa2, 0x31, 0xb8, 0x5f, 0x64, 0xdf, 0x35, 0x2e, 0x02,\n\t0x3d, 0xdb, 0xaa, 0xdd, 0xca, 0x77, 0x04, 0xf7, 0x56, 0x22, 0x68, 0x89, 0x0a, 0xff, 0x8c, 0x1a,\n\t0x6e, 0x96, 0x05, 0xdc, 0x33, 0xe1, 0xce, 0xb6, 0xd2, 0xbe, 0xe6, 0x3d, 0x23, 0xdd, 0x65, 0xc8,\n\t0x49, 0xa0, 0xa2, 0x89, 0xfd, 0x6e, 0xfe, 0x2a, 0x8d, 0x82, 0x8f, 0x16, 0xf3, 0xa5, 0xc5, 0xb8,\n\t0x73, 0xa4, 0x7c, 0xe0, 0x79, 0xe2, 0x27, 0x70, 0xf5, 0x7c, 0x6b, 0x8b, 0x62, 0xba, 0x2b, 0x11,\n\t0xb4, 0x44, 0x85, 0x3f, 0x47, 0x4d, 0x27, 0x8e, 0x22, 0x08, 0xd4, 0x97, 0x59, 0x67, 0xf5, 0xb0,\n\t0x6a, 0xf6, 0x7b, 0x39, 0xa7, 0xf9, 0xb0, 0xe0, 0xa5, 0x57, 0xa2, 0x53, 0xbd, 0x0b, 0x92, 0x47,\n\t0xe0, 0xce, 0xf4, 0xb5, 0xa2, 0xbe, 0x5b, 0xf0, 0xd2, 0x2b, 0xd1, 0xf8, 0x18, 0xd5, 0xe1, 0x79,\n\t0x08, 0xce, 0xac, 0x97, 0x3b, 0x5a, 0xbd, 0x9f, 0xab, 0xeb, 0x27, 0x4b, 0x3e, 0x5a, 0x88, 0xc4,\n\t0x0e, 0x42, 0x8e, 0x08, 0x5c, 0x9e, 0xfd, 0x3a, 0xbc, 0xa5, 0x67, 0x60, 0x6d, 0x76, 0x85, 0x1e,\n\t0xce, 0x74, 0x8b, 0x6f, 0xf3, 0xdc, 0x24, 0xe9, 0x12, 0xb6, 0xe5, 0x21, 0xbc, 0x3a, 0x26, 0xbc,\n\t0x87, 0xaa, 0x23, 0x98, 0xe8, 0xf5, 0xb9, 0x41, 0xd3, 0x47, 0x7c, 0x1f, 0xd5, 0xc6, 0xcc, 0x8b,\n\t0x21, 0xbf, 0xca, 0x1f, 0x6d, 0xf6, 0x1e, 0x4f, 0xb8, 0x0f, 0x34, 0x13, 0xde, 0xdb, 0x3a, 0x36,\n\t0xec, 0x7b, 0x17, 0x97, 0x66, 0xe5, 0xe5, 0xa5, 0x59, 0x79, 0x75, 0x69, 0x56, 0x5e, 0x24, 0xa6,\n\t0x71, 0x91, 0x98, 0xc6, 0xcb, 0xc4, 0x34, 0x5e, 0x25, 0xa6, 0xf1, 0x57, 0x62, 0x1a, 0xbf, 0xfc,\n\t0x6d, 0x56, 0xbe, 0xdd, 0x2f, 0xfb, 0x1f, 0xf3, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x79, 0xd7,\n\t0x99, 0xdb, 0xf7, 0x08, 0x00, 0x00,\n}\n\nfunc (m *Eviction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Eviction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Eviction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DeleteOptions != nil {\n\t\t{\n\t\t\tsize, err := m.DeleteOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\ti -= len(*m.UnhealthyPodEvictionPolicy)\n\t\tcopy(dAtA[i:], *m.UnhealthyPodEvictionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UnhealthyPodEvictionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MinAvailable != nil {\n\t\t{\n\t\t\tsize, err := m.MinAvailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredHealthy))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed))\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.DisruptedPods) > 0 {\n\t\tkeysForDisruptedPods := make([]string, 0, len(m.DisruptedPods))\n\t\tfor k := range m.DisruptedPods {\n\t\t\tkeysForDisruptedPods = append(keysForDisruptedPods, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\t\tfor iNdEx := len(keysForDisruptedPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DisruptedPods[string(keysForDisruptedPods[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDisruptedPods[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDisruptedPods[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDisruptedPods[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Eviction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeleteOptions != nil {\n\t\tl = m.DeleteOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MinAvailable != nil {\n\t\tl = m.MinAvailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\tl = len(*m.UnhealthyPodEvictionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif len(m.DisruptedPods) > 0 {\n\t\tfor k, v := range m.DisruptedPods {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.DisruptionsAllowed))\n\tn += 1 + sovGenerated(uint64(m.CurrentHealthy))\n\tn += 1 + sovGenerated(uint64(m.DesiredHealthy))\n\tn += 1 + sovGenerated(uint64(m.ExpectedPods))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Eviction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Eviction{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DeleteOptions:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeleteOptions), \"DeleteOptions\", \"v1.DeleteOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudget{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodDisruptionBudgetSpec\", \"PodDisruptionBudgetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodDisruptionBudgetStatus\", \"PodDisruptionBudgetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodDisruptionBudget{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodDisruptionBudget\", \"PodDisruptionBudget\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudgetSpec{`,\n\t\t`MinAvailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MinAvailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`UnhealthyPodEvictionPolicy:` + valueToStringGenerated(this.UnhealthyPodEvictionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForDisruptedPods := make([]string, 0, len(this.DisruptedPods))\n\tfor k := range this.DisruptedPods {\n\t\tkeysForDisruptedPods = append(keysForDisruptedPods, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\tmapStringForDisruptedPods := \"map[string]v1.Time{\"\n\tfor _, k := range keysForDisruptedPods {\n\t\tmapStringForDisruptedPods += fmt.Sprintf(\"%v: %v,\", k, this.DisruptedPods[k])\n\t}\n\tmapStringForDisruptedPods += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`DisruptedPods:` + mapStringForDisruptedPods + `,`,\n\t\t`DisruptionsAllowed:` + fmt.Sprintf(\"%v\", this.DisruptionsAllowed) + `,`,\n\t\t`CurrentHealthy:` + fmt.Sprintf(\"%v\", this.CurrentHealthy) + `,`,\n\t\t`DesiredHealthy:` + fmt.Sprintf(\"%v\", this.DesiredHealthy) + `,`,\n\t\t`ExpectedPods:` + fmt.Sprintf(\"%v\", this.ExpectedPods) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Eviction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeleteOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeleteOptions == nil {\n\t\t\t\tm.DeleteOptions = &v1.DeleteOptions{}\n\t\t\t}\n\t\t\tif err := m.DeleteOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodDisruptionBudget{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinAvailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MinAvailable == nil {\n\t\t\t\tm.MinAvailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MinAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnhealthyPodEvictionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := UnhealthyPodEvictionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.UnhealthyPodEvictionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DisruptedPods == nil {\n\t\t\t\tm.DisruptedPods = make(map[string]v1.Time)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &v1.Time{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &v1.Time{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DisruptedPods[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptionsAllowed\", wireType)\n\t\t\t}\n\t\t\tm.DisruptionsAllowed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DisruptionsAllowed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentHealthy\", wireType)\n\t\t\t}\n\t\t\tm.CurrentHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredHealthy\", wireType)\n\t\t\t}\n\t\t\tm.DesiredHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpectedPods\", wireType)\n\t\t\t}\n\t\t\tm.ExpectedPods = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExpectedPods |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.policy.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/policy/v1\";\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\nmessage Eviction {\n  // ObjectMeta describes the pod that is being evicted.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // DeleteOptions may be provided\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2;\n}\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\nmessage PodDisruptionBudget {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetSpec spec = 2;\n\n  // Most recently observed status of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetStatus status = 3;\n}\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\nmessage PodDisruptionBudgetList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of PodDisruptionBudgets\n  repeated PodDisruptionBudget items = 2;\n}\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\nmessage PodDisruptionBudgetSpec {\n  // An eviction is allowed if at least \"minAvailable\" pods selected by\n  // \"selector\" will still be available after the eviction, i.e. even in the\n  // absence of the evicted pod.  So for example you can prevent all voluntary\n  // evictions by specifying \"100%\".\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1;\n\n  // Label query over pods whose evictions are managed by the disruption\n  // budget.\n  // A null selector will match no pods, while an empty ({}) selector will select\n  // all pods within the namespace.\n  // +patchStrategy=replace\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // An eviction is allowed if at most \"maxUnavailable\" pods selected by\n  // \"selector\" are unavailable after the eviction, i.e. even in absence of\n  // the evicted pod. For example, one can prevent all voluntary evictions\n  // by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3;\n\n  // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n  // should be considered for eviction. Current implementation considers healthy pods,\n  // as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n  //\n  // Valid policies are IfHealthyBudget and AlwaysAllow.\n  // If no policy is specified, the default behavior will be used,\n  // which corresponds to the IfHealthyBudget policy.\n  //\n  // IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n  // but not yet healthy can be evicted only if the guarded application is not\n  // disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n  // but not yet healthy are considered disrupted and can be evicted regardless\n  // of whether the criteria in a PDB is met. This means perspective running\n  // pods of a disrupted application might not get a chance to become healthy.\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // Additional policies may be added in the future.\n  // Clients making eviction decisions should disallow eviction of unhealthy pods\n  // if they encounter an unrecognized policy in this field.\n  //\n  // This field is beta-level. The eviction API uses this field when\n  // the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n  // +optional\n  optional string unhealthyPodEvictionPolicy = 4;\n}\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\nmessage PodDisruptionBudgetStatus {\n  // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n  // status information is valid only if observedGeneration equals to PDB's object generation.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // DisruptedPods contains information about pods whose eviction was\n  // processed by the API server eviction subresource handler but has not\n  // yet been observed by the PodDisruptionBudget controller.\n  // A pod will be in this map from the time when the API server processed the\n  // eviction request to the time when the pod is seen by PDB controller\n  // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n  // and the value is the time when the API server processed the eviction request. If\n  // the deletion didn't occur and a pod is still there it will be removed from\n  // the list automatically by PodDisruptionBudget controller after some time.\n  // If everything goes smooth this map should be empty for the most of the time.\n  // Large number of entries in the map may indicate problems with pod deletions.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.apis.meta.v1.Time> disruptedPods = 2;\n\n  // Number of pod disruptions that are currently allowed.\n  optional int32 disruptionsAllowed = 3;\n\n  // current number of healthy pods\n  optional int32 currentHealthy = 4;\n\n  // minimum desired number of healthy pods\n  optional int32 desiredHealthy = 5;\n\n  // total number of pods counted by this disruption budget\n  optional int32 expectedPods = 6;\n\n  // Conditions contain conditions for PDB. The disruption controller sets the\n  // DisruptionAllowed condition. The following are known values for the reason field\n  // (additional reasons could be added in the future):\n  // - SyncFailed: The controller encountered an error and wasn't able to compute\n  //               the number of allowed disruptions. Therefore no disruptions are\n  //               allowed and the status of the condition will be False.\n  // - InsufficientPods: The number of pods are either at or below the number\n  //                     required by the PodDisruptionBudget. No disruptions are\n  //                     allowed and the status of the condition will be False.\n  // - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n  //                   The condition will be True, and the number of allowed\n  //                   disruptions are provided by the disruptionsAllowed property.\n  //\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"policy\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PodDisruptionBudget{},\n\t\t&PodDisruptionBudgetList{},\n\t\t&Eviction{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DisruptionBudgetCause is the status cause returned for eviction failures caused by PodDisruptionBudget violations.\nconst DisruptionBudgetCause metav1.CauseType = \"DisruptionBudget\"\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\ntype PodDisruptionBudgetSpec struct {\n\t// An eviction is allowed if at least \"minAvailable\" pods selected by\n\t// \"selector\" will still be available after the eviction, i.e. even in the\n\t// absence of the evicted pod.  So for example you can prevent all voluntary\n\t// evictions by specifying \"100%\".\n\t// +optional\n\tMinAvailable *intstr.IntOrString `json:\"minAvailable,omitempty\" protobuf:\"bytes,1,opt,name=minAvailable\"`\n\n\t// Label query over pods whose evictions are managed by the disruption\n\t// budget.\n\t// A null selector will match no pods, while an empty ({}) selector will select\n\t// all pods within the namespace.\n\t// +patchStrategy=replace\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" patchStrategy:\"replace\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// An eviction is allowed if at most \"maxUnavailable\" pods selected by\n\t// \"selector\" are unavailable after the eviction, i.e. even in absence of\n\t// the evicted pod. For example, one can prevent all voluntary evictions\n\t// by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,3,opt,name=maxUnavailable\"`\n\n\t// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n\t// should be considered for eviction. Current implementation considers healthy pods,\n\t// as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\t//\n\t// Valid policies are IfHealthyBudget and AlwaysAllow.\n\t// If no policy is specified, the default behavior will be used,\n\t// which corresponds to the IfHealthyBudget policy.\n\t//\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// Additional policies may be added in the future.\n\t// Clients making eviction decisions should disallow eviction of unhealthy pods\n\t// if they encounter an unrecognized policy in this field.\n\t//\n\t// This field is beta-level. The eviction API uses this field when\n\t// the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n\t// +optional\n\tUnhealthyPodEvictionPolicy *UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\" protobuf:\"bytes,4,opt,name=unhealthyPodEvictionPolicy\"`\n}\n\n// UnhealthyPodEvictionPolicyType defines the criteria for when unhealthy pods\n// should be considered for eviction.\n// +enum\ntype UnhealthyPodEvictionPolicyType string\n\nconst (\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\tIfHealthyBudget UnhealthyPodEvictionPolicyType = \"IfHealthyBudget\"\n\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\tAlwaysAllow UnhealthyPodEvictionPolicyType = \"AlwaysAllow\"\n)\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\ntype PodDisruptionBudgetStatus struct {\n\t// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n\t// status information is valid only if observedGeneration equals to PDB's object generation.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// DisruptedPods contains information about pods whose eviction was\n\t// processed by the API server eviction subresource handler but has not\n\t// yet been observed by the PodDisruptionBudget controller.\n\t// A pod will be in this map from the time when the API server processed the\n\t// eviction request to the time when the pod is seen by PDB controller\n\t// as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n\t// and the value is the time when the API server processed the eviction request. If\n\t// the deletion didn't occur and a pod is still there it will be removed from\n\t// the list automatically by PodDisruptionBudget controller after some time.\n\t// If everything goes smooth this map should be empty for the most of the time.\n\t// Large number of entries in the map may indicate problems with pod deletions.\n\t// +optional\n\tDisruptedPods map[string]metav1.Time `json:\"disruptedPods,omitempty\" protobuf:\"bytes,2,rep,name=disruptedPods\"`\n\n\t// Number of pod disruptions that are currently allowed.\n\tDisruptionsAllowed int32 `json:\"disruptionsAllowed\" protobuf:\"varint,3,opt,name=disruptionsAllowed\"`\n\n\t// current number of healthy pods\n\tCurrentHealthy int32 `json:\"currentHealthy\" protobuf:\"varint,4,opt,name=currentHealthy\"`\n\n\t// minimum desired number of healthy pods\n\tDesiredHealthy int32 `json:\"desiredHealthy\" protobuf:\"varint,5,opt,name=desiredHealthy\"`\n\n\t// total number of pods counted by this disruption budget\n\tExpectedPods int32 `json:\"expectedPods\" protobuf:\"varint,6,opt,name=expectedPods\"`\n\n\t// Conditions contain conditions for PDB. The disruption controller sets the\n\t// DisruptionAllowed condition. The following are known values for the reason field\n\t// (additional reasons could be added in the future):\n\t// - SyncFailed: The controller encountered an error and wasn't able to compute\n\t//               the number of allowed disruptions. Therefore no disruptions are\n\t//               allowed and the status of the condition will be False.\n\t// - InsufficientPods: The number of pods are either at or below the number\n\t//                     required by the PodDisruptionBudget. No disruptions are\n\t//                     allowed and the status of the condition will be False.\n\t// - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n\t//                   The condition will be True, and the number of allowed\n\t//                   disruptions are provided by the disruptionsAllowed property.\n\t//\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,7,rep,name=conditions\"`\n}\n\nconst (\n\t// DisruptionAllowedCondition is a condition set by the disruption controller\n\t// that signal whether any of the pods covered by the PDB can be disrupted.\n\tDisruptionAllowedCondition = \"DisruptionAllowed\"\n\n\t// SyncFailedReason is set on the DisruptionAllowed condition if reconcile\n\t// of the PDB failed and therefore disruption of pods are not allowed.\n\tSyncFailedReason = \"SyncFailed\"\n\t// SufficientPodsReason is set on the DisruptionAllowed condition if there are\n\t// more pods covered by the PDB than required and at least one can be disrupted.\n\tSufficientPodsReason = \"SufficientPods\"\n\t// InsufficientPodsReason is set on the DisruptionAllowed condition if the number\n\t// of pods are equal to or fewer than required by the PDB.\n\tInsufficientPodsReason = \"InsufficientPods\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\ntype PodDisruptionBudget struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the PodDisruptionBudget.\n\t// +optional\n\tSpec PodDisruptionBudgetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// Most recently observed status of the PodDisruptionBudget.\n\t// +optional\n\tStatus PodDisruptionBudgetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\ntype PodDisruptionBudgetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Items is a list of PodDisruptionBudgets\n\tItems []PodDisruptionBudget `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:noVerbs\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\ntype Eviction struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// ObjectMeta describes the pod that is being evicted.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// DeleteOptions may be provided\n\t// +optional\n\tDeleteOptions *metav1.DeleteOptions `json:\"deleteOptions,omitempty\" protobuf:\"bytes,2,opt,name=deleteOptions\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Eviction = map[string]string{\n\t\"\":              \"Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.\",\n\t\"metadata\":      \"ObjectMeta describes the pod that is being evicted.\",\n\t\"deleteOptions\": \"DeleteOptions may be provided\",\n}\n\nfunc (Eviction) SwaggerDoc() map[string]string {\n\treturn map_Eviction\n}\n\nvar map_PodDisruptionBudget = map[string]string{\n\t\"\":         \"PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the PodDisruptionBudget.\",\n\t\"status\":   \"Most recently observed status of the PodDisruptionBudget.\",\n}\n\nfunc (PodDisruptionBudget) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudget\n}\n\nvar map_PodDisruptionBudgetList = map[string]string{\n\t\"\":         \"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is a list of PodDisruptionBudgets\",\n}\n\nfunc (PodDisruptionBudgetList) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetList\n}\n\nvar map_PodDisruptionBudgetSpec = map[string]string{\n\t\"\":                           \"PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\",\n\t\"minAvailable\":               \"An eviction is allowed if at least \\\"minAvailable\\\" pods selected by \\\"selector\\\" will still be available after the eviction, i.e. even in the absence of the evicted pod.  So for example you can prevent all voluntary evictions by specifying \\\"100%\\\".\",\n\t\"selector\":                   \"Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.\",\n\t\"maxUnavailable\":             \"An eviction is allowed if at most \\\"maxUnavailable\\\" pods selected by \\\"selector\\\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \\\"minAvailable\\\".\",\n\t\"unhealthyPodEvictionPolicy\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\\n\\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\\n\\nThis field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\",\n}\n\nfunc (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetSpec\n}\n\nvar map_PodDisruptionBudgetStatus = map[string]string{\n\t\"\":                   \"PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\",\n\t\"observedGeneration\": \"Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.\",\n\t\"disruptedPods\":      \"DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.\",\n\t\"disruptionsAllowed\": \"Number of pod disruptions that are currently allowed.\",\n\t\"currentHealthy\":     \"current number of healthy pods\",\n\t\"desiredHealthy\":     \"minimum desired number of healthy pods\",\n\t\"expectedPods\":       \"total number of pods counted by this disruption budget\",\n\t\"conditions\":         \"Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\\n              the number of allowed disruptions. Therefore no disruptions are\\n              allowed and the status of the condition will be False.\\n- InsufficientPods: The number of pods are either at or below the number\\n                    required by the PodDisruptionBudget. No disruptions are\\n                    allowed and the status of the condition will be False.\\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\\n                  The condition will be True, and the number of allowed\\n                  disruptions are provided by the disruptionsAllowed property.\",\n}\n\nfunc (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Eviction) DeepCopyInto(out *Eviction) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.DeleteOptions != nil {\n\t\tin, out := &in.DeleteOptions, &out.DeleteOptions\n\t\t*out = new(metav1.DeleteOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Eviction.\nfunc (in *Eviction) DeepCopy() *Eviction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Eviction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Eviction) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.\nfunc (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudget) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetList) DeepCopyInto(out *PodDisruptionBudgetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodDisruptionBudget, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetList.\nfunc (in *PodDisruptionBudgetList) DeepCopy() *PodDisruptionBudgetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudgetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) {\n\t*out = *in\n\tif in.MinAvailable != nil {\n\t\tin, out := &in.MinAvailable, &out.MinAvailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.UnhealthyPodEvictionPolicy != nil {\n\t\tin, out := &in.UnhealthyPodEvictionPolicy, &out.UnhealthyPodEvictionPolicy\n\t\t*out = new(UnhealthyPodEvictionPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.\nfunc (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus) {\n\t*out = *in\n\tif in.DisruptedPods != nil {\n\t\tin, out := &in.DisruptedPods, &out.DisruptedPods\n\t\t*out = make(map[string]metav1.Time, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetStatus.\nfunc (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// Package policy is for any kind of policy object.  Suitable examples, even if\n// they aren't all here, are PodDisruptionBudget, PodSecurityPolicy,\n// NetworkPolicy, etc.\npackage v1beta1 // import \"k8s.io/api/policy/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/policy/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AllowedCSIDriver) Reset()      { *m = AllowedCSIDriver{} }\nfunc (*AllowedCSIDriver) ProtoMessage() {}\nfunc (*AllowedCSIDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{0}\n}\nfunc (m *AllowedCSIDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllowedCSIDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllowedCSIDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllowedCSIDriver.Merge(m, src)\n}\nfunc (m *AllowedCSIDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllowedCSIDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllowedCSIDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllowedCSIDriver proto.InternalMessageInfo\n\nfunc (m *AllowedFlexVolume) Reset()      { *m = AllowedFlexVolume{} }\nfunc (*AllowedFlexVolume) ProtoMessage() {}\nfunc (*AllowedFlexVolume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{1}\n}\nfunc (m *AllowedFlexVolume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllowedFlexVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllowedFlexVolume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllowedFlexVolume.Merge(m, src)\n}\nfunc (m *AllowedFlexVolume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllowedFlexVolume) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllowedFlexVolume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllowedFlexVolume proto.InternalMessageInfo\n\nfunc (m *AllowedHostPath) Reset()      { *m = AllowedHostPath{} }\nfunc (*AllowedHostPath) ProtoMessage() {}\nfunc (*AllowedHostPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{2}\n}\nfunc (m *AllowedHostPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllowedHostPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllowedHostPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllowedHostPath.Merge(m, src)\n}\nfunc (m *AllowedHostPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllowedHostPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllowedHostPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllowedHostPath proto.InternalMessageInfo\n\nfunc (m *Eviction) Reset()      { *m = Eviction{} }\nfunc (*Eviction) ProtoMessage() {}\nfunc (*Eviction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{3}\n}\nfunc (m *Eviction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Eviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Eviction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Eviction.Merge(m, src)\n}\nfunc (m *Eviction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Eviction) XXX_DiscardUnknown() {\n\txxx_messageInfo_Eviction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Eviction proto.InternalMessageInfo\n\nfunc (m *FSGroupStrategyOptions) Reset()      { *m = FSGroupStrategyOptions{} }\nfunc (*FSGroupStrategyOptions) ProtoMessage() {}\nfunc (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{4}\n}\nfunc (m *FSGroupStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FSGroupStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FSGroupStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FSGroupStrategyOptions.Merge(m, src)\n}\nfunc (m *FSGroupStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FSGroupStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_FSGroupStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FSGroupStrategyOptions proto.InternalMessageInfo\n\nfunc (m *HostPortRange) Reset()      { *m = HostPortRange{} }\nfunc (*HostPortRange) ProtoMessage() {}\nfunc (*HostPortRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{5}\n}\nfunc (m *HostPortRange) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostPortRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostPortRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostPortRange.Merge(m, src)\n}\nfunc (m *HostPortRange) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostPortRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostPortRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostPortRange proto.InternalMessageInfo\n\nfunc (m *IDRange) Reset()      { *m = IDRange{} }\nfunc (*IDRange) ProtoMessage() {}\nfunc (*IDRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{6}\n}\nfunc (m *IDRange) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IDRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IDRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IDRange.Merge(m, src)\n}\nfunc (m *IDRange) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IDRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_IDRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IDRange proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudget) Reset()      { *m = PodDisruptionBudget{} }\nfunc (*PodDisruptionBudget) ProtoMessage() {}\nfunc (*PodDisruptionBudget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{7}\n}\nfunc (m *PodDisruptionBudget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudget.Merge(m, src)\n}\nfunc (m *PodDisruptionBudget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudget) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudget proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetList) Reset()      { *m = PodDisruptionBudgetList{} }\nfunc (*PodDisruptionBudgetList) ProtoMessage() {}\nfunc (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{8}\n}\nfunc (m *PodDisruptionBudgetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetList.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetList proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetSpec) Reset()      { *m = PodDisruptionBudgetSpec{} }\nfunc (*PodDisruptionBudgetSpec) ProtoMessage() {}\nfunc (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{9}\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetSpec.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetSpec proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetStatus) Reset()      { *m = PodDisruptionBudgetStatus{} }\nfunc (*PodDisruptionBudgetStatus) ProtoMessage() {}\nfunc (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{10}\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetStatus.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetStatus proto.InternalMessageInfo\n\nfunc (m *PodSecurityPolicy) Reset()      { *m = PodSecurityPolicy{} }\nfunc (*PodSecurityPolicy) ProtoMessage() {}\nfunc (*PodSecurityPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{11}\n}\nfunc (m *PodSecurityPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSecurityPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSecurityPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSecurityPolicy.Merge(m, src)\n}\nfunc (m *PodSecurityPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSecurityPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSecurityPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSecurityPolicy proto.InternalMessageInfo\n\nfunc (m *PodSecurityPolicyList) Reset()      { *m = PodSecurityPolicyList{} }\nfunc (*PodSecurityPolicyList) ProtoMessage() {}\nfunc (*PodSecurityPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{12}\n}\nfunc (m *PodSecurityPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSecurityPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSecurityPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSecurityPolicyList.Merge(m, src)\n}\nfunc (m *PodSecurityPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSecurityPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSecurityPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSecurityPolicyList proto.InternalMessageInfo\n\nfunc (m *PodSecurityPolicySpec) Reset()      { *m = PodSecurityPolicySpec{} }\nfunc (*PodSecurityPolicySpec) ProtoMessage() {}\nfunc (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{13}\n}\nfunc (m *PodSecurityPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSecurityPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSecurityPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSecurityPolicySpec.Merge(m, src)\n}\nfunc (m *PodSecurityPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSecurityPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSecurityPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSecurityPolicySpec proto.InternalMessageInfo\n\nfunc (m *RunAsGroupStrategyOptions) Reset()      { *m = RunAsGroupStrategyOptions{} }\nfunc (*RunAsGroupStrategyOptions) ProtoMessage() {}\nfunc (*RunAsGroupStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{14}\n}\nfunc (m *RunAsGroupStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RunAsGroupStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RunAsGroupStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RunAsGroupStrategyOptions.Merge(m, src)\n}\nfunc (m *RunAsGroupStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RunAsGroupStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_RunAsGroupStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RunAsGroupStrategyOptions proto.InternalMessageInfo\n\nfunc (m *RunAsUserStrategyOptions) Reset()      { *m = RunAsUserStrategyOptions{} }\nfunc (*RunAsUserStrategyOptions) ProtoMessage() {}\nfunc (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{15}\n}\nfunc (m *RunAsUserStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RunAsUserStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RunAsUserStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RunAsUserStrategyOptions.Merge(m, src)\n}\nfunc (m *RunAsUserStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RunAsUserStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_RunAsUserStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RunAsUserStrategyOptions proto.InternalMessageInfo\n\nfunc (m *RuntimeClassStrategyOptions) Reset()      { *m = RuntimeClassStrategyOptions{} }\nfunc (*RuntimeClassStrategyOptions) ProtoMessage() {}\nfunc (*RuntimeClassStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{16}\n}\nfunc (m *RuntimeClassStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassStrategyOptions.Merge(m, src)\n}\nfunc (m *RuntimeClassStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassStrategyOptions proto.InternalMessageInfo\n\nfunc (m *SELinuxStrategyOptions) Reset()      { *m = SELinuxStrategyOptions{} }\nfunc (*SELinuxStrategyOptions) ProtoMessage() {}\nfunc (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{17}\n}\nfunc (m *SELinuxStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SELinuxStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SELinuxStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SELinuxStrategyOptions.Merge(m, src)\n}\nfunc (m *SELinuxStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SELinuxStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_SELinuxStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SELinuxStrategyOptions proto.InternalMessageInfo\n\nfunc (m *SupplementalGroupsStrategyOptions) Reset()      { *m = SupplementalGroupsStrategyOptions{} }\nfunc (*SupplementalGroupsStrategyOptions) ProtoMessage() {}\nfunc (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_014060e454a820dc, []int{18}\n}\nfunc (m *SupplementalGroupsStrategyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SupplementalGroupsStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SupplementalGroupsStrategyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SupplementalGroupsStrategyOptions.Merge(m, src)\n}\nfunc (m *SupplementalGroupsStrategyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SupplementalGroupsStrategyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_SupplementalGroupsStrategyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SupplementalGroupsStrategyOptions proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AllowedCSIDriver)(nil), \"k8s.io.api.policy.v1beta1.AllowedCSIDriver\")\n\tproto.RegisterType((*AllowedFlexVolume)(nil), \"k8s.io.api.policy.v1beta1.AllowedFlexVolume\")\n\tproto.RegisterType((*AllowedHostPath)(nil), \"k8s.io.api.policy.v1beta1.AllowedHostPath\")\n\tproto.RegisterType((*Eviction)(nil), \"k8s.io.api.policy.v1beta1.Eviction\")\n\tproto.RegisterType((*FSGroupStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.FSGroupStrategyOptions\")\n\tproto.RegisterType((*HostPortRange)(nil), \"k8s.io.api.policy.v1beta1.HostPortRange\")\n\tproto.RegisterType((*IDRange)(nil), \"k8s.io.api.policy.v1beta1.IDRange\")\n\tproto.RegisterType((*PodDisruptionBudget)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudget\")\n\tproto.RegisterType((*PodDisruptionBudgetList)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetList\")\n\tproto.RegisterType((*PodDisruptionBudgetSpec)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetSpec\")\n\tproto.RegisterType((*PodDisruptionBudgetStatus)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetStatus\")\n\tproto.RegisterMapType((map[string]v1.Time)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetStatus.DisruptedPodsEntry\")\n\tproto.RegisterType((*PodSecurityPolicy)(nil), \"k8s.io.api.policy.v1beta1.PodSecurityPolicy\")\n\tproto.RegisterType((*PodSecurityPolicyList)(nil), \"k8s.io.api.policy.v1beta1.PodSecurityPolicyList\")\n\tproto.RegisterType((*PodSecurityPolicySpec)(nil), \"k8s.io.api.policy.v1beta1.PodSecurityPolicySpec\")\n\tproto.RegisterType((*RunAsGroupStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.RunAsGroupStrategyOptions\")\n\tproto.RegisterType((*RunAsUserStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.RunAsUserStrategyOptions\")\n\tproto.RegisterType((*RuntimeClassStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.RuntimeClassStrategyOptions\")\n\tproto.RegisterType((*SELinuxStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.SELinuxStrategyOptions\")\n\tproto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), \"k8s.io.api.policy.v1beta1.SupplementalGroupsStrategyOptions\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/policy/v1beta1/generated.proto\", fileDescriptor_014060e454a820dc)\n}\n\nvar fileDescriptor_014060e454a820dc = []byte{\n\t// 1946 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5b, 0x73, 0xdb, 0xc6,\n\t0x15, 0x16, 0x4c, 0x5d, 0xa8, 0xd5, 0xc5, 0xe2, 0xea, 0x62, 0x48, 0x69, 0x08, 0x07, 0x99, 0xe9,\n\t0xb8, 0x69, 0x0a, 0xc6, 0xb2, 0xe3, 0x7a, 0x9a, 0x5e, 0x2c, 0x88, 0x92, 0xad, 0x8c, 0x65, 0xb1,\n\t0x4b, 0x2b, 0xd3, 0x76, 0xdc, 0x4e, 0x97, 0xc0, 0x8a, 0x44, 0x04, 0x02, 0x28, 0x76, 0xc1, 0x88,\n\t0x6f, 0x79, 0xe8, 0x43, 0x1f, 0xfb, 0x07, 0x32, 0xfd, 0x01, 0x9d, 0x3e, 0xf5, 0x47, 0xd4, 0x99,\n\t0xe9, 0x74, 0xd2, 0xb7, 0x4c, 0x1f, 0x38, 0x35, 0xfb, 0x2f, 0xfc, 0xd4, 0xc1, 0x72, 0x01, 0x12,\n\t0x37, 0xd2, 0xce, 0x8c, 0xfd, 0x46, 0xec, 0xf9, 0xbe, 0xef, 0xec, 0x9e, 0xdd, 0x3d, 0x67, 0x77,\n\t0x09, 0xf4, 0xcb, 0xfb, 0x54, 0xb3, 0xdc, 0xda, 0x65, 0xd0, 0x22, 0xbe, 0x43, 0x18, 0xa1, 0xb5,\n\t0x1e, 0x71, 0x4c, 0xd7, 0xaf, 0x09, 0x03, 0xf6, 0xac, 0x9a, 0xe7, 0xda, 0x96, 0xd1, 0xaf, 0xf5,\n\t0x6e, 0xb7, 0x08, 0xc3, 0xb7, 0x6b, 0x6d, 0xe2, 0x10, 0x1f, 0x33, 0x62, 0x6a, 0x9e, 0xef, 0x32,\n\t0x17, 0xee, 0x8e, 0xa0, 0x1a, 0xf6, 0x2c, 0x6d, 0x04, 0xd5, 0x04, 0x74, 0xef, 0x47, 0x6d, 0x8b,\n\t0x75, 0x82, 0x96, 0x66, 0xb8, 0xdd, 0x5a, 0xdb, 0x6d, 0xbb, 0x35, 0xce, 0x68, 0x05, 0x17, 0xfc,\n\t0x8b, 0x7f, 0xf0, 0x5f, 0x23, 0xa5, 0x3d, 0x75, 0xc2, 0xa9, 0xe1, 0xfa, 0xa4, 0xd6, 0xcb, 0x78,\n\t0xdb, 0xbb, 0x3b, 0xc6, 0x74, 0xb1, 0xd1, 0xb1, 0x1c, 0xe2, 0xf7, 0x6b, 0xde, 0x65, 0x3b, 0x6c,\n\t0xa0, 0xb5, 0x2e, 0x61, 0x38, 0x8f, 0x55, 0x2b, 0x62, 0xf9, 0x81, 0xc3, 0xac, 0x2e, 0xc9, 0x10,\n\t0xee, 0xcd, 0x22, 0x50, 0xa3, 0x43, 0xba, 0x38, 0xc3, 0xbb, 0x53, 0xc4, 0x0b, 0x98, 0x65, 0xd7,\n\t0x2c, 0x87, 0x51, 0xe6, 0xa7, 0x49, 0xea, 0x5d, 0xb0, 0x71, 0x60, 0xdb, 0xee, 0x17, 0xc4, 0x3c,\n\t0x6c, 0x9e, 0xd4, 0x7d, 0xab, 0x47, 0x7c, 0x78, 0x13, 0xcc, 0x3b, 0xb8, 0x4b, 0x64, 0xe9, 0xa6,\n\t0x74, 0x6b, 0x59, 0x5f, 0x7d, 0x3e, 0x50, 0xe6, 0x86, 0x03, 0x65, 0xfe, 0x09, 0xee, 0x12, 0xc4,\n\t0x2d, 0xea, 0x27, 0xa0, 0x22, 0x58, 0xc7, 0x36, 0xb9, 0xfa, 0xcc, 0xb5, 0x83, 0x2e, 0x81, 0xdf,\n\t0x07, 0x8b, 0x26, 0x17, 0x10, 0xc4, 0x75, 0x41, 0x5c, 0x1c, 0xc9, 0x22, 0x61, 0x55, 0x29, 0xb8,\n\t0x2e, 0xc8, 0x8f, 0x5c, 0xca, 0x1a, 0x98, 0x75, 0xe0, 0x3e, 0x00, 0x1e, 0x66, 0x9d, 0x86, 0x4f,\n\t0x2e, 0xac, 0x2b, 0x41, 0x87, 0x82, 0x0e, 0x1a, 0xb1, 0x05, 0x4d, 0xa0, 0xe0, 0x87, 0xa0, 0xec,\n\t0x13, 0x6c, 0x9e, 0x39, 0x76, 0x5f, 0xbe, 0x76, 0x53, 0xba, 0x55, 0xd6, 0x37, 0x04, 0xa3, 0x8c,\n\t0x44, 0x3b, 0x8a, 0x11, 0xea, 0x7f, 0x24, 0x50, 0x3e, 0xea, 0x59, 0x06, 0xb3, 0x5c, 0x07, 0xfe,\n\t0x1e, 0x94, 0xc3, 0xd9, 0x32, 0x31, 0xc3, 0xdc, 0xd9, 0xca, 0xfe, 0x47, 0xda, 0x78, 0x25, 0xc5,\n\t0xc1, 0xd3, 0xbc, 0xcb, 0x76, 0xd8, 0x40, 0xb5, 0x10, 0xad, 0xf5, 0x6e, 0x6b, 0x67, 0xad, 0xcf,\n\t0x89, 0xc1, 0x4e, 0x09, 0xc3, 0xe3, 0xee, 0x8d, 0xdb, 0x50, 0xac, 0x0a, 0x6d, 0xb0, 0x66, 0x12,\n\t0x9b, 0x30, 0x72, 0xe6, 0x85, 0x1e, 0x29, 0xef, 0xe1, 0xca, 0xfe, 0x9d, 0x57, 0x73, 0x53, 0x9f,\n\t0xa4, 0xea, 0x95, 0xe1, 0x40, 0x59, 0x4b, 0x34, 0xa1, 0xa4, 0xb8, 0xfa, 0x95, 0x04, 0x76, 0x8e,\n\t0x9b, 0x0f, 0x7d, 0x37, 0xf0, 0x9a, 0x2c, 0x9c, 0xdd, 0x76, 0x5f, 0x98, 0xe0, 0x8f, 0xc1, 0xbc,\n\t0x1f, 0xd8, 0xd1, 0x5c, 0xbe, 0x1f, 0xcd, 0x25, 0x0a, 0x6c, 0xf2, 0x72, 0xa0, 0x6c, 0xa6, 0x58,\n\t0x4f, 0xfb, 0x1e, 0x41, 0x9c, 0x00, 0x3f, 0x05, 0x8b, 0x3e, 0x76, 0xda, 0x24, 0xec, 0x7a, 0xe9,\n\t0xd6, 0xca, 0xbe, 0xaa, 0x15, 0xee, 0x35, 0xed, 0xa4, 0x8e, 0x42, 0xe8, 0x78, 0xc6, 0xf9, 0x27,\n\t0x45, 0x42, 0x41, 0x3d, 0x05, 0x6b, 0x7c, 0xaa, 0x5d, 0x9f, 0x71, 0x0b, 0x7c, 0x17, 0x94, 0xba,\n\t0x96, 0xc3, 0x3b, 0xb5, 0xa0, 0xaf, 0x08, 0x56, 0xe9, 0xd4, 0x72, 0x50, 0xd8, 0xce, 0xcd, 0xf8,\n\t0x8a, 0xc7, 0x6c, 0xd2, 0x8c, 0xaf, 0x50, 0xd8, 0xae, 0x3e, 0x04, 0x4b, 0xc2, 0xe3, 0xa4, 0x50,\n\t0x69, 0xba, 0x50, 0x29, 0x47, 0xe8, 0xaf, 0xd7, 0xc0, 0x66, 0xc3, 0x35, 0xeb, 0x16, 0xf5, 0x03,\n\t0x1e, 0x2f, 0x3d, 0x30, 0xdb, 0x84, 0xbd, 0x85, 0xf5, 0xf1, 0x14, 0xcc, 0x53, 0x8f, 0x18, 0x62,\n\t0x59, 0xec, 0x4f, 0x89, 0x6d, 0x4e, 0xff, 0x9a, 0x1e, 0x31, 0xc6, 0xdb, 0x32, 0xfc, 0x42, 0x5c,\n\t0x0d, 0x3e, 0x03, 0x8b, 0x94, 0x61, 0x16, 0x50, 0xb9, 0xc4, 0x75, 0xef, 0xbe, 0xa6, 0x2e, 0xe7,\n\t0x8e, 0x67, 0x71, 0xf4, 0x8d, 0x84, 0xa6, 0xfa, 0x4f, 0x09, 0xdc, 0xc8, 0x61, 0x3d, 0xb6, 0x28,\n\t0x83, 0xcf, 0x32, 0x11, 0xd3, 0x5e, 0x2d, 0x62, 0x21, 0x9b, 0xc7, 0x2b, 0xde, 0xbc, 0x51, 0xcb,\n\t0x44, 0xb4, 0x9a, 0x60, 0xc1, 0x62, 0xa4, 0x1b, 0x2d, 0x45, 0xed, 0xf5, 0x86, 0xa5, 0xaf, 0x09,\n\t0xe9, 0x85, 0x93, 0x50, 0x04, 0x8d, 0xb4, 0xd4, 0x7f, 0x97, 0x72, 0x87, 0x13, 0x86, 0x13, 0x5e,\n\t0x80, 0xd5, 0xae, 0xe5, 0x1c, 0xf4, 0xb0, 0x65, 0xe3, 0x96, 0xd8, 0x3d, 0xd3, 0x16, 0x41, 0x98,\n\t0x61, 0xb5, 0x51, 0x86, 0xd5, 0x4e, 0x1c, 0x76, 0xe6, 0x37, 0x99, 0x6f, 0x39, 0x6d, 0x7d, 0x63,\n\t0x38, 0x50, 0x56, 0x4f, 0x27, 0x94, 0x50, 0x42, 0x17, 0xfe, 0x16, 0x94, 0x29, 0xb1, 0x89, 0xc1,\n\t0x5c, 0xff, 0xf5, 0x32, 0xc4, 0x63, 0xdc, 0x22, 0x76, 0x53, 0x50, 0xf5, 0xd5, 0x30, 0x6e, 0xd1,\n\t0x17, 0x8a, 0x25, 0xa1, 0x0d, 0xd6, 0xbb, 0xf8, 0xea, 0xdc, 0xc1, 0xf1, 0x40, 0x4a, 0xdf, 0x71,\n\t0x20, 0x70, 0x38, 0x50, 0xd6, 0x4f, 0x13, 0x5a, 0x28, 0xa5, 0x0d, 0xbf, 0x94, 0xc0, 0x5e, 0xe0,\n\t0x74, 0x08, 0xb6, 0x59, 0xa7, 0xdf, 0x70, 0xcd, 0x28, 0xdd, 0x36, 0xf8, 0x0c, 0xc9, 0xf3, 0x3c,\n\t0x03, 0x3d, 0x18, 0x0e, 0x94, 0xbd, 0xf3, 0x42, 0xd4, 0xcb, 0x81, 0x52, 0x2d, 0xb6, 0xf2, 0xf4,\n\t0x34, 0xc5, 0x87, 0xfa, 0x8f, 0x05, 0xb0, 0x5b, 0xb8, 0xb0, 0xe1, 0xa7, 0x00, 0xba, 0x2d, 0x4a,\n\t0xfc, 0x1e, 0x31, 0x1f, 0x8e, 0xca, 0xa0, 0xe5, 0x46, 0xb9, 0x63, 0x4f, 0xac, 0x11, 0x78, 0x96,\n\t0x41, 0xa0, 0x1c, 0x16, 0xfc, 0xa3, 0x04, 0xd6, 0xcc, 0x91, 0x1b, 0x62, 0x36, 0x5c, 0x33, 0x5a,\n\t0x9b, 0x0f, 0xbf, 0xcb, 0x96, 0xd3, 0xea, 0x93, 0x4a, 0x47, 0x0e, 0xf3, 0xfb, 0xfa, 0xb6, 0xe8,\n\t0xd0, 0x5a, 0xc2, 0x86, 0x92, 0x4e, 0xc3, 0x21, 0x99, 0xb1, 0x24, 0x15, 0x65, 0x95, 0xcf, 0xf2,\n\t0xc2, 0x78, 0x48, 0xf5, 0x0c, 0x02, 0xe5, 0xb0, 0xe0, 0xcf, 0xc1, 0xba, 0x11, 0xf8, 0x3e, 0x71,\n\t0xd8, 0xa3, 0x51, 0x7c, 0xf9, 0x94, 0x2d, 0xe8, 0x3b, 0x42, 0x67, 0xfd, 0x30, 0x61, 0x45, 0x29,\n\t0x74, 0xc8, 0x37, 0x09, 0xb5, 0x7c, 0x62, 0x46, 0xfc, 0x85, 0x24, 0xbf, 0x9e, 0xb0, 0xa2, 0x14,\n\t0x1a, 0xde, 0x07, 0xab, 0xe4, 0xca, 0x23, 0x46, 0x14, 0xd0, 0x45, 0xce, 0xde, 0x12, 0xec, 0xd5,\n\t0xa3, 0x09, 0x1b, 0x4a, 0x20, 0xa1, 0x01, 0x80, 0xe1, 0x3a, 0xa6, 0x35, 0x2a, 0xb5, 0x4b, 0x7c,\n\t0x22, 0x6a, 0xaf, 0xb6, 0x91, 0x0e, 0x23, 0xde, 0x38, 0x61, 0xc7, 0x4d, 0x14, 0x4d, 0xc8, 0xee,\n\t0xd9, 0x00, 0x66, 0xa7, 0x09, 0x6e, 0x80, 0xd2, 0x25, 0xe9, 0x8f, 0xca, 0x2b, 0x0a, 0x7f, 0xc2,\n\t0x07, 0x60, 0xa1, 0x87, 0xed, 0x80, 0x88, 0x0d, 0xfd, 0xc1, 0xab, 0xf5, 0xe3, 0xa9, 0xd5, 0x25,\n\t0x68, 0x44, 0xfc, 0xc9, 0xb5, 0xfb, 0x92, 0xfa, 0xb5, 0x04, 0x2a, 0x0d, 0xd7, 0x6c, 0x12, 0x23,\n\t0xf0, 0x2d, 0xd6, 0x1f, 0xad, 0xef, 0xb7, 0x50, 0x98, 0x50, 0xa2, 0x30, 0x7d, 0x34, 0x7d, 0x35,\n\t0x27, 0x7b, 0x57, 0x54, 0x96, 0xd4, 0xe7, 0x12, 0xd8, 0xce, 0xa0, 0xdf, 0x42, 0xd9, 0xf8, 0x65,\n\t0xb2, 0x6c, 0x7c, 0xf8, 0x3a, 0x83, 0x29, 0x28, 0x1a, 0x5f, 0x57, 0x72, 0x86, 0xc2, 0x4b, 0x46,\n\t0x78, 0x84, 0xf5, 0xad, 0x9e, 0x65, 0x93, 0x36, 0x31, 0xf9, 0x60, 0xca, 0x13, 0x47, 0xd8, 0xd8,\n\t0x82, 0x26, 0x50, 0x90, 0x82, 0x1d, 0x93, 0x5c, 0xe0, 0xc0, 0x66, 0x07, 0xa6, 0x79, 0x88, 0x3d,\n\t0xdc, 0xb2, 0x6c, 0x8b, 0x59, 0xe2, 0xcc, 0xb5, 0xac, 0x7f, 0x32, 0x1c, 0x28, 0x3b, 0xf5, 0x5c,\n\t0xc4, 0xcb, 0x81, 0xf2, 0x6e, 0xf6, 0xca, 0xa2, 0xc5, 0x90, 0x3e, 0x2a, 0x90, 0x86, 0x7d, 0x20,\n\t0xfb, 0xe4, 0x0f, 0x41, 0xb8, 0xf3, 0xea, 0xbe, 0xeb, 0x25, 0xdc, 0x96, 0xb8, 0xdb, 0x9f, 0x0d,\n\t0x07, 0x8a, 0x8c, 0x0a, 0x30, 0xb3, 0x1d, 0x17, 0xca, 0xc3, 0xcf, 0xc1, 0x26, 0x16, 0x97, 0x8d,\n\t0x49, 0xaf, 0xf3, 0xdc, 0xeb, 0xfd, 0xe1, 0x40, 0xd9, 0x3c, 0xc8, 0x9a, 0x67, 0x3b, 0xcc, 0x13,\n\t0x85, 0x35, 0xb0, 0xd4, 0xe3, 0xf7, 0x12, 0x2a, 0x2f, 0x70, 0xfd, 0xed, 0xe1, 0x40, 0x59, 0x1a,\n\t0x5d, 0x55, 0x42, 0xcd, 0xc5, 0xe3, 0x26, 0x2f, 0x27, 0x11, 0x0a, 0x7e, 0x0c, 0x56, 0x3a, 0x2e,\n\t0x65, 0x4f, 0x08, 0xfb, 0xc2, 0xf5, 0x2f, 0x79, 0xf6, 0x29, 0xeb, 0x9b, 0x62, 0x06, 0x57, 0x1e,\n\t0x8d, 0x4d, 0x68, 0x12, 0x07, 0x7f, 0x0d, 0x96, 0x3b, 0xe2, 0x6c, 0x1b, 0xa5, 0x9e, 0x5b, 0x53,\n\t0x16, 0x5a, 0xe2, 0x1c, 0xac, 0x57, 0x84, 0xfc, 0x72, 0xd4, 0x4c, 0xd1, 0x58, 0x0d, 0xfe, 0x00,\n\t0x2c, 0xf1, 0x8f, 0x93, 0xba, 0x5c, 0xe6, 0xbd, 0xb9, 0x2e, 0xe0, 0x4b, 0x8f, 0x46, 0xcd, 0x28,\n\t0xb2, 0x47, 0xd0, 0x93, 0xc6, 0xa1, 0xbc, 0x9c, 0x85, 0x9e, 0x34, 0x0e, 0x51, 0x64, 0x87, 0xcf,\n\t0xc0, 0x12, 0x25, 0x8f, 0x2d, 0x27, 0xb8, 0x92, 0x01, 0xdf, 0x72, 0xb7, 0xa7, 0x74, 0xb7, 0x79,\n\t0xc4, 0x91, 0xa9, 0x5b, 0xc5, 0x58, 0x5d, 0xd8, 0x51, 0x24, 0x09, 0x4d, 0xb0, 0xec, 0x07, 0xce,\n\t0x01, 0x3d, 0xa7, 0xc4, 0x97, 0x57, 0x32, 0x47, 0x9a, 0xb4, 0x3e, 0x8a, 0xb0, 0x69, 0x0f, 0x71,\n\t0x64, 0x62, 0x04, 0x1a, 0x0b, 0x43, 0x13, 0x00, 0xfe, 0xc1, 0x2f, 0x2f, 0xf2, 0xce, 0xcc, 0xc3,\n\t0x2e, 0x8a, 0xc1, 0x69, 0x3f, 0xeb, 0xe1, 0xf6, 0x1c, 0x9b, 0xd1, 0x84, 0x2e, 0xfc, 0x93, 0x04,\n\t0x20, 0x0d, 0x3c, 0xcf, 0x26, 0x5d, 0xe2, 0x30, 0x6c, 0xf3, 0x56, 0x2a, 0xaf, 0x72, 0x77, 0x3f,\n\t0x9d, 0x16, 0xb5, 0x0c, 0x29, 0xed, 0x36, 0xae, 0xcd, 0x59, 0x28, 0xca, 0xf1, 0x19, 0x4e, 0xda,\n\t0x85, 0x18, 0xed, 0xda, 0xcc, 0x49, 0xcb, 0xbf, 0x0a, 0x8e, 0x27, 0x4d, 0xd8, 0x51, 0x24, 0x09,\n\t0x3f, 0x03, 0x3b, 0xd1, 0x45, 0x19, 0xb9, 0x2e, 0x3b, 0xb6, 0x6c, 0x42, 0xfb, 0x94, 0x91, 0xae,\n\t0xbc, 0xce, 0x17, 0x53, 0x55, 0x30, 0x77, 0x50, 0x2e, 0x0a, 0x15, 0xb0, 0x61, 0x17, 0x28, 0x51,\n\t0x12, 0x0a, 0x77, 0x68, 0x9c, 0x05, 0x8f, 0xa8, 0x81, 0xed, 0xd1, 0xe9, 0xeb, 0x3a, 0x77, 0xf0,\n\t0xfe, 0x70, 0xa0, 0x28, 0xf5, 0xe9, 0x50, 0x34, 0x4b, 0x0b, 0xfe, 0x0a, 0xc8, 0xb8, 0xc8, 0xcf,\n\t0x06, 0xf7, 0xf3, 0xbd, 0x30, 0xb3, 0x15, 0x3a, 0x28, 0x64, 0x43, 0x0f, 0x6c, 0xe0, 0xe4, 0x93,\n\t0x05, 0x95, 0x2b, 0x7c, 0xaf, 0x7f, 0x30, 0x65, 0x1e, 0x52, 0xaf, 0x1c, 0xba, 0x2c, 0xc2, 0xb8,\n\t0x91, 0x32, 0x50, 0x94, 0x51, 0x87, 0x57, 0x00, 0xe2, 0xf4, 0x0b, 0x0b, 0x95, 0xe1, 0xcc, 0x42,\n\t0x96, 0x79, 0x96, 0x19, 0x2f, 0xb5, 0x8c, 0x89, 0xa2, 0x1c, 0x1f, 0x90, 0x81, 0x0a, 0x4e, 0xbd,\n\t0x08, 0x51, 0xf9, 0x06, 0x77, 0xfc, 0xc3, 0xd9, 0x8e, 0x63, 0x8e, 0xbe, 0x2b, 0xfc, 0x56, 0xd2,\n\t0x16, 0x8a, 0xb2, 0x0e, 0xe0, 0x63, 0xb0, 0x25, 0x1a, 0xcf, 0x1d, 0x8a, 0x2f, 0x48, 0xb3, 0x4f,\n\t0x0d, 0x66, 0x53, 0x79, 0x93, 0xe7, 0x6e, 0x79, 0x38, 0x50, 0xb6, 0x0e, 0x72, 0xec, 0x28, 0x97,\n\t0x05, 0x1f, 0x80, 0x8d, 0x0b, 0xd7, 0x6f, 0x59, 0xa6, 0x49, 0x9c, 0x48, 0x69, 0x8b, 0x2b, 0x6d,\n\t0x85, 0xf1, 0x3f, 0x4e, 0xd9, 0x50, 0x06, 0x0d, 0x29, 0xd8, 0x16, 0xca, 0x0d, 0xdf, 0x35, 0x4e,\n\t0xdd, 0xc0, 0x61, 0x61, 0xb9, 0xa0, 0xf2, 0x76, 0x5c, 0x22, 0xb7, 0x0f, 0xf2, 0x00, 0x2f, 0x07,\n\t0xca, 0xcd, 0x9c, 0x72, 0x95, 0x00, 0xa1, 0x7c, 0x6d, 0x68, 0x83, 0x55, 0xf1, 0xc6, 0x77, 0x68,\n\t0x63, 0x4a, 0x65, 0x99, 0x6f, 0xf5, 0x7b, 0xd3, 0x13, 0x5b, 0x0c, 0x4f, 0xef, 0x77, 0x7e, 0xf9,\n\t0x9c, 0x04, 0xa0, 0x84, 0xba, 0xfa, 0x17, 0x09, 0xec, 0x16, 0x26, 0x46, 0x78, 0x2f, 0xf1, 0x70,\n\t0xa4, 0xa6, 0x1e, 0x8e, 0x60, 0x96, 0xf8, 0x06, 0xde, 0x8d, 0xbe, 0x92, 0x80, 0x5c, 0x54, 0x21,\n\t0xe0, 0xc7, 0x89, 0x0e, 0xbe, 0x97, 0xea, 0x60, 0x25, 0xc3, 0x7b, 0x03, 0xfd, 0xfb, 0x97, 0x04,\n\t0xde, 0x99, 0x32, 0x03, 0x71, 0x42, 0x22, 0xe6, 0x24, 0xea, 0x09, 0x0e, 0xb7, 0xb2, 0xc4, 0xd7,\n\t0xd1, 0x38, 0x21, 0xe5, 0x60, 0x50, 0x21, 0x1b, 0x9e, 0x83, 0x1b, 0x22, 0x1b, 0xa6, 0x6d, 0xfc,\n\t0xe4, 0xbe, 0xac, 0xbf, 0x33, 0x1c, 0x28, 0x37, 0xea, 0xf9, 0x10, 0x54, 0xc4, 0x55, 0xff, 0x26,\n\t0x81, 0x9d, 0xfc, 0x92, 0x0f, 0xef, 0x24, 0xc2, 0xad, 0xa4, 0xc2, 0x7d, 0x3d, 0xc5, 0x12, 0xc1,\n\t0xfe, 0x1d, 0x58, 0x17, 0x07, 0x83, 0xe4, 0x3b, 0x68, 0x22, 0xe8, 0xe1, 0x16, 0x09, 0xcf, 0xf4,\n\t0x42, 0x22, 0x5a, 0xbe, 0xfc, 0xc9, 0x21, 0xd9, 0x86, 0x52, 0x6a, 0xea, 0xdf, 0x25, 0xf0, 0xde,\n\t0xcc, 0x62, 0x0b, 0xf5, 0x44, 0xd7, 0xb5, 0x54, 0xd7, 0xab, 0xc5, 0x02, 0x6f, 0xe6, 0x39, 0x54,\n\t0xff, 0xc5, 0xf3, 0x17, 0xd5, 0xb9, 0x6f, 0x5e, 0x54, 0xe7, 0xbe, 0x7d, 0x51, 0x9d, 0xfb, 0x72,\n\t0x58, 0x95, 0x9e, 0x0f, 0xab, 0xd2, 0x37, 0xc3, 0xaa, 0xf4, 0xed, 0xb0, 0x2a, 0xfd, 0x77, 0x58,\n\t0x95, 0xfe, 0xfc, 0xbf, 0xea, 0xdc, 0x6f, 0x76, 0x0b, 0xff, 0x06, 0xf9, 0x7f, 0x00, 0x00, 0x00,\n\t0xff, 0xff, 0xb4, 0x84, 0x53, 0xfb, 0x3b, 0x19, 0x00, 0x00,\n}\n\nfunc (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllowedCSIDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllowedCSIDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllowedFlexVolume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllowedFlexVolume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllowedFlexVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllowedHostPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllowedHostPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllowedHostPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.PathPrefix)\n\tcopy(dAtA[i:], m.PathPrefix)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PathPrefix)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Eviction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Eviction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Eviction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DeleteOptions != nil {\n\t\t{\n\t\t\tsize, err := m.DeleteOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FSGroupStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FSGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FSGroupStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ranges) > 0 {\n\t\tfor iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Rule)\n\tcopy(dAtA[i:], m.Rule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostPortRange) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostPortRange) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostPortRange) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Max))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Min))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IDRange) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IDRange) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IDRange) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Max))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Min))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\ti -= len(*m.UnhealthyPodEvictionPolicy)\n\t\tcopy(dAtA[i:], *m.UnhealthyPodEvictionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UnhealthyPodEvictionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MinAvailable != nil {\n\t\t{\n\t\t\tsize, err := m.MinAvailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredHealthy))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed))\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.DisruptedPods) > 0 {\n\t\tkeysForDisruptedPods := make([]string, 0, len(m.DisruptedPods))\n\t\tfor k := range m.DisruptedPods {\n\t\t\tkeysForDisruptedPods = append(keysForDisruptedPods, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\t\tfor iNdEx := len(keysForDisruptedPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DisruptedPods[string(keysForDisruptedPods[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDisruptedPods[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDisruptedPods[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDisruptedPods[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSecurityPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSecurityPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSecurityPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSecurityPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSecurityPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSecurityPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSecurityPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSecurityPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RuntimeClass != nil {\n\t\t{\n\t\t\tsize, err := m.RuntimeClass.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif len(m.AllowedCSIDrivers) > 0 {\n\t\tfor iNdEx := len(m.AllowedCSIDrivers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedCSIDrivers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif m.RunAsGroup != nil {\n\t\t{\n\t\t\tsize, err := m.RunAsGroup.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif len(m.AllowedProcMountTypes) > 0 {\n\t\tfor iNdEx := len(m.AllowedProcMountTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AllowedProcMountTypes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AllowedProcMountTypes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedProcMountTypes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xaa\n\t\t}\n\t}\n\tif len(m.ForbiddenSysctls) > 0 {\n\t\tfor iNdEx := len(m.ForbiddenSysctls) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ForbiddenSysctls[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ForbiddenSysctls[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ForbiddenSysctls[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa2\n\t\t}\n\t}\n\tif len(m.AllowedUnsafeSysctls) > 0 {\n\t\tfor iNdEx := len(m.AllowedUnsafeSysctls) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AllowedUnsafeSysctls[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AllowedUnsafeSysctls[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedUnsafeSysctls[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\tif len(m.AllowedFlexVolumes) > 0 {\n\t\tfor iNdEx := len(m.AllowedFlexVolumes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedFlexVolumes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x92\n\t\t}\n\t}\n\tif len(m.AllowedHostPaths) > 0 {\n\t\tfor iNdEx := len(m.AllowedHostPaths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedHostPaths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8a\n\t\t}\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\ti--\n\t\tif *m.AllowPrivilegeEscalation {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x80\n\t}\n\tif m.DefaultAllowPrivilegeEscalation != nil {\n\t\ti--\n\t\tif *m.DefaultAllowPrivilegeEscalation {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x78\n\t}\n\ti--\n\tif m.ReadOnlyRootFilesystem {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x70\n\t{\n\t\tsize, err := m.FSGroup.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x6a\n\t{\n\t\tsize, err := m.SupplementalGroups.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x62\n\t{\n\t\tsize, err := m.RunAsUser.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x5a\n\t{\n\t\tsize, err := m.SELinux.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x52\n\ti--\n\tif m.HostIPC {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x48\n\ti--\n\tif m.HostPID {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif len(m.HostPorts) > 0 {\n\t\tfor iNdEx := len(m.HostPorts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HostPorts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti--\n\tif m.HostNetwork {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif len(m.Volumes) > 0 {\n\t\tfor iNdEx := len(m.Volumes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Volumes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Volumes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Volumes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.AllowedCapabilities) > 0 {\n\t\tfor iNdEx := len(m.AllowedCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AllowedCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AllowedCapabilities[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.RequiredDropCapabilities) > 0 {\n\t\tfor iNdEx := len(m.RequiredDropCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.RequiredDropCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.RequiredDropCapabilities[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RequiredDropCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.DefaultAddCapabilities) > 0 {\n\t\tfor iNdEx := len(m.DefaultAddCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DefaultAddCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DefaultAddCapabilities[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DefaultAddCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Privileged {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RunAsGroupStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RunAsGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RunAsGroupStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ranges) > 0 {\n\t\tfor iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Rule)\n\tcopy(dAtA[i:], m.Rule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RunAsUserStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RunAsUserStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RunAsUserStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ranges) > 0 {\n\t\tfor iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Rule)\n\tcopy(dAtA[i:], m.Rule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DefaultRuntimeClassName != nil {\n\t\ti -= len(*m.DefaultRuntimeClassName)\n\t\tcopy(dAtA[i:], *m.DefaultRuntimeClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.DefaultRuntimeClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.AllowedRuntimeClassNames) > 0 {\n\t\tfor iNdEx := len(m.AllowedRuntimeClassNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AllowedRuntimeClassNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AllowedRuntimeClassNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedRuntimeClassNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SELinuxStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SELinuxStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SELinuxStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Rule)\n\tcopy(dAtA[i:], m.Rule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SupplementalGroupsStrategyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SupplementalGroupsStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ranges) > 0 {\n\t\tfor iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Rule)\n\tcopy(dAtA[i:], m.Rule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AllowedCSIDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *AllowedFlexVolume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *AllowedHostPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PathPrefix)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Eviction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeleteOptions != nil {\n\t\tl = m.DeleteOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *FSGroupStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Rule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ranges) > 0 {\n\t\tfor _, e := range m.Ranges {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HostPortRange) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Min))\n\tn += 1 + sovGenerated(uint64(m.Max))\n\treturn n\n}\n\nfunc (m *IDRange) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Min))\n\tn += 1 + sovGenerated(uint64(m.Max))\n\treturn n\n}\n\nfunc (m *PodDisruptionBudget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MinAvailable != nil {\n\t\tl = m.MinAvailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\tl = len(*m.UnhealthyPodEvictionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif len(m.DisruptedPods) > 0 {\n\t\tfor k, v := range m.DisruptedPods {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.DisruptionsAllowed))\n\tn += 1 + sovGenerated(uint64(m.CurrentHealthy))\n\tn += 1 + sovGenerated(uint64(m.DesiredHealthy))\n\tn += 1 + sovGenerated(uint64(m.ExpectedPods))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSecurityPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodSecurityPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSecurityPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.DefaultAddCapabilities) > 0 {\n\t\tfor _, s := range m.DefaultAddCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.RequiredDropCapabilities) > 0 {\n\t\tfor _, s := range m.RequiredDropCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllowedCapabilities) > 0 {\n\t\tfor _, s := range m.AllowedCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Volumes) > 0 {\n\t\tfor _, s := range m.Volumes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.HostPorts) > 0 {\n\t\tfor _, e := range m.HostPorts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tn += 2\n\tl = m.SELinux.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.RunAsUser.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.SupplementalGroups.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.FSGroup.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.DefaultAllowPrivilegeEscalation != nil {\n\t\tn += 2\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\tn += 3\n\t}\n\tif len(m.AllowedHostPaths) > 0 {\n\t\tfor _, e := range m.AllowedHostPaths {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllowedFlexVolumes) > 0 {\n\t\tfor _, e := range m.AllowedFlexVolumes {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllowedUnsafeSysctls) > 0 {\n\t\tfor _, s := range m.AllowedUnsafeSysctls {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ForbiddenSysctls) > 0 {\n\t\tfor _, s := range m.ForbiddenSysctls {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllowedProcMountTypes) > 0 {\n\t\tfor _, s := range m.AllowedProcMountTypes {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RunAsGroup != nil {\n\t\tl = m.RunAsGroup.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllowedCSIDrivers) > 0 {\n\t\tfor _, e := range m.AllowedCSIDrivers {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RuntimeClass != nil {\n\t\tl = m.RuntimeClass.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RunAsGroupStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Rule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ranges) > 0 {\n\t\tfor _, e := range m.Ranges {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RunAsUserStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Rule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ranges) > 0 {\n\t\tfor _, e := range m.Ranges {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.AllowedRuntimeClassNames) > 0 {\n\t\tfor _, s := range m.AllowedRuntimeClassNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultRuntimeClassName != nil {\n\t\tl = len(*m.DefaultRuntimeClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SELinuxStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Rule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SELinuxOptions != nil {\n\t\tl = m.SELinuxOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SupplementalGroupsStrategyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Rule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ranges) > 0 {\n\t\tfor _, e := range m.Ranges {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AllowedCSIDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AllowedCSIDriver{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllowedFlexVolume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AllowedFlexVolume{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllowedHostPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AllowedHostPath{`,\n\t\t`PathPrefix:` + fmt.Sprintf(\"%v\", this.PathPrefix) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Eviction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Eviction{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DeleteOptions:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeleteOptions), \"DeleteOptions\", \"v1.DeleteOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FSGroupStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRanges := \"[]IDRange{\"\n\tfor _, f := range this.Ranges {\n\t\trepeatedStringForRanges += strings.Replace(strings.Replace(f.String(), \"IDRange\", \"IDRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRanges += \"}\"\n\ts := strings.Join([]string{`&FSGroupStrategyOptions{`,\n\t\t`Rule:` + fmt.Sprintf(\"%v\", this.Rule) + `,`,\n\t\t`Ranges:` + repeatedStringForRanges + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostPortRange) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostPortRange{`,\n\t\t`Min:` + fmt.Sprintf(\"%v\", this.Min) + `,`,\n\t\t`Max:` + fmt.Sprintf(\"%v\", this.Max) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IDRange) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IDRange{`,\n\t\t`Min:` + fmt.Sprintf(\"%v\", this.Min) + `,`,\n\t\t`Max:` + fmt.Sprintf(\"%v\", this.Max) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudget{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodDisruptionBudgetSpec\", \"PodDisruptionBudgetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodDisruptionBudgetStatus\", \"PodDisruptionBudgetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodDisruptionBudget{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodDisruptionBudget\", \"PodDisruptionBudget\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudgetSpec{`,\n\t\t`MinAvailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MinAvailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`UnhealthyPodEvictionPolicy:` + valueToStringGenerated(this.UnhealthyPodEvictionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForDisruptedPods := make([]string, 0, len(this.DisruptedPods))\n\tfor k := range this.DisruptedPods {\n\t\tkeysForDisruptedPods = append(keysForDisruptedPods, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\tmapStringForDisruptedPods := \"map[string]v1.Time{\"\n\tfor _, k := range keysForDisruptedPods {\n\t\tmapStringForDisruptedPods += fmt.Sprintf(\"%v: %v,\", k, this.DisruptedPods[k])\n\t}\n\tmapStringForDisruptedPods += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`DisruptedPods:` + mapStringForDisruptedPods + `,`,\n\t\t`DisruptionsAllowed:` + fmt.Sprintf(\"%v\", this.DisruptionsAllowed) + `,`,\n\t\t`CurrentHealthy:` + fmt.Sprintf(\"%v\", this.CurrentHealthy) + `,`,\n\t\t`DesiredHealthy:` + fmt.Sprintf(\"%v\", this.DesiredHealthy) + `,`,\n\t\t`ExpectedPods:` + fmt.Sprintf(\"%v\", this.ExpectedPods) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSecurityPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSecurityPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSecurityPolicySpec\", \"PodSecurityPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSecurityPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodSecurityPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodSecurityPolicy\", \"PodSecurityPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodSecurityPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSecurityPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForHostPorts := \"[]HostPortRange{\"\n\tfor _, f := range this.HostPorts {\n\t\trepeatedStringForHostPorts += strings.Replace(strings.Replace(f.String(), \"HostPortRange\", \"HostPortRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHostPorts += \"}\"\n\trepeatedStringForAllowedHostPaths := \"[]AllowedHostPath{\"\n\tfor _, f := range this.AllowedHostPaths {\n\t\trepeatedStringForAllowedHostPaths += strings.Replace(strings.Replace(f.String(), \"AllowedHostPath\", \"AllowedHostPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAllowedHostPaths += \"}\"\n\trepeatedStringForAllowedFlexVolumes := \"[]AllowedFlexVolume{\"\n\tfor _, f := range this.AllowedFlexVolumes {\n\t\trepeatedStringForAllowedFlexVolumes += strings.Replace(strings.Replace(f.String(), \"AllowedFlexVolume\", \"AllowedFlexVolume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAllowedFlexVolumes += \"}\"\n\trepeatedStringForAllowedCSIDrivers := \"[]AllowedCSIDriver{\"\n\tfor _, f := range this.AllowedCSIDrivers {\n\t\trepeatedStringForAllowedCSIDrivers += strings.Replace(strings.Replace(f.String(), \"AllowedCSIDriver\", \"AllowedCSIDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAllowedCSIDrivers += \"}\"\n\ts := strings.Join([]string{`&PodSecurityPolicySpec{`,\n\t\t`Privileged:` + fmt.Sprintf(\"%v\", this.Privileged) + `,`,\n\t\t`DefaultAddCapabilities:` + fmt.Sprintf(\"%v\", this.DefaultAddCapabilities) + `,`,\n\t\t`RequiredDropCapabilities:` + fmt.Sprintf(\"%v\", this.RequiredDropCapabilities) + `,`,\n\t\t`AllowedCapabilities:` + fmt.Sprintf(\"%v\", this.AllowedCapabilities) + `,`,\n\t\t`Volumes:` + fmt.Sprintf(\"%v\", this.Volumes) + `,`,\n\t\t`HostNetwork:` + fmt.Sprintf(\"%v\", this.HostNetwork) + `,`,\n\t\t`HostPorts:` + repeatedStringForHostPorts + `,`,\n\t\t`HostPID:` + fmt.Sprintf(\"%v\", this.HostPID) + `,`,\n\t\t`HostIPC:` + fmt.Sprintf(\"%v\", this.HostIPC) + `,`,\n\t\t`SELinux:` + strings.Replace(strings.Replace(this.SELinux.String(), \"SELinuxStrategyOptions\", \"SELinuxStrategyOptions\", 1), `&`, ``, 1) + `,`,\n\t\t`RunAsUser:` + strings.Replace(strings.Replace(this.RunAsUser.String(), \"RunAsUserStrategyOptions\", \"RunAsUserStrategyOptions\", 1), `&`, ``, 1) + `,`,\n\t\t`SupplementalGroups:` + strings.Replace(strings.Replace(this.SupplementalGroups.String(), \"SupplementalGroupsStrategyOptions\", \"SupplementalGroupsStrategyOptions\", 1), `&`, ``, 1) + `,`,\n\t\t`FSGroup:` + strings.Replace(strings.Replace(this.FSGroup.String(), \"FSGroupStrategyOptions\", \"FSGroupStrategyOptions\", 1), `&`, ``, 1) + `,`,\n\t\t`ReadOnlyRootFilesystem:` + fmt.Sprintf(\"%v\", this.ReadOnlyRootFilesystem) + `,`,\n\t\t`DefaultAllowPrivilegeEscalation:` + valueToStringGenerated(this.DefaultAllowPrivilegeEscalation) + `,`,\n\t\t`AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`,\n\t\t`AllowedHostPaths:` + repeatedStringForAllowedHostPaths + `,`,\n\t\t`AllowedFlexVolumes:` + repeatedStringForAllowedFlexVolumes + `,`,\n\t\t`AllowedUnsafeSysctls:` + fmt.Sprintf(\"%v\", this.AllowedUnsafeSysctls) + `,`,\n\t\t`ForbiddenSysctls:` + fmt.Sprintf(\"%v\", this.ForbiddenSysctls) + `,`,\n\t\t`AllowedProcMountTypes:` + fmt.Sprintf(\"%v\", this.AllowedProcMountTypes) + `,`,\n\t\t`RunAsGroup:` + strings.Replace(this.RunAsGroup.String(), \"RunAsGroupStrategyOptions\", \"RunAsGroupStrategyOptions\", 1) + `,`,\n\t\t`AllowedCSIDrivers:` + repeatedStringForAllowedCSIDrivers + `,`,\n\t\t`RuntimeClass:` + strings.Replace(this.RuntimeClass.String(), \"RuntimeClassStrategyOptions\", \"RuntimeClassStrategyOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RunAsGroupStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRanges := \"[]IDRange{\"\n\tfor _, f := range this.Ranges {\n\t\trepeatedStringForRanges += strings.Replace(strings.Replace(f.String(), \"IDRange\", \"IDRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRanges += \"}\"\n\ts := strings.Join([]string{`&RunAsGroupStrategyOptions{`,\n\t\t`Rule:` + fmt.Sprintf(\"%v\", this.Rule) + `,`,\n\t\t`Ranges:` + repeatedStringForRanges + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RunAsUserStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRanges := \"[]IDRange{\"\n\tfor _, f := range this.Ranges {\n\t\trepeatedStringForRanges += strings.Replace(strings.Replace(f.String(), \"IDRange\", \"IDRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRanges += \"}\"\n\ts := strings.Join([]string{`&RunAsUserStrategyOptions{`,\n\t\t`Rule:` + fmt.Sprintf(\"%v\", this.Rule) + `,`,\n\t\t`Ranges:` + repeatedStringForRanges + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClassStrategyOptions{`,\n\t\t`AllowedRuntimeClassNames:` + fmt.Sprintf(\"%v\", this.AllowedRuntimeClassNames) + `,`,\n\t\t`DefaultRuntimeClassName:` + valueToStringGenerated(this.DefaultRuntimeClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SELinuxStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SELinuxStrategyOptions{`,\n\t\t`Rule:` + fmt.Sprintf(\"%v\", this.Rule) + `,`,\n\t\t`SELinuxOptions:` + strings.Replace(fmt.Sprintf(\"%v\", this.SELinuxOptions), \"SELinuxOptions\", \"v11.SELinuxOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SupplementalGroupsStrategyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRanges := \"[]IDRange{\"\n\tfor _, f := range this.Ranges {\n\t\trepeatedStringForRanges += strings.Replace(strings.Replace(f.String(), \"IDRange\", \"IDRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRanges += \"}\"\n\ts := strings.Join([]string{`&SupplementalGroupsStrategyOptions{`,\n\t\t`Rule:` + fmt.Sprintf(\"%v\", this.Rule) + `,`,\n\t\t`Ranges:` + repeatedStringForRanges + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AllowedCSIDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedCSIDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedCSIDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedFlexVolume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedFlexVolume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllowedHostPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedHostPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllowedHostPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathPrefix\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PathPrefix = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Eviction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeleteOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeleteOptions == nil {\n\t\t\t\tm.DeleteOptions = &v1.DeleteOptions{}\n\t\t\t}\n\t\t\tif err := m.DeleteOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FSGroupStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FSGroupStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rule = FSGroupStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ranges\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ranges = append(m.Ranges, IDRange{})\n\t\t\tif err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostPortRange) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostPortRange: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostPortRange: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Min\", wireType)\n\t\t\t}\n\t\t\tm.Min = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Min |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Max\", wireType)\n\t\t\t}\n\t\t\tm.Max = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Max |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IDRange) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IDRange: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IDRange: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Min\", wireType)\n\t\t\t}\n\t\t\tm.Min = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Min |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Max\", wireType)\n\t\t\t}\n\t\t\tm.Max = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Max |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodDisruptionBudget{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinAvailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MinAvailable == nil {\n\t\t\t\tm.MinAvailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MinAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnhealthyPodEvictionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := UnhealthyPodEvictionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.UnhealthyPodEvictionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DisruptedPods == nil {\n\t\t\t\tm.DisruptedPods = make(map[string]v1.Time)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &v1.Time{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &v1.Time{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DisruptedPods[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptionsAllowed\", wireType)\n\t\t\t}\n\t\t\tm.DisruptionsAllowed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DisruptionsAllowed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentHealthy\", wireType)\n\t\t\t}\n\t\t\tm.CurrentHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredHealthy\", wireType)\n\t\t\t}\n\t\t\tm.DesiredHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpectedPods\", wireType)\n\t\t\t}\n\t\t\tm.ExpectedPods = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExpectedPods |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodSecurityPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Privileged\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Privileged = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultAddCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DefaultAddCapabilities = append(m.DefaultAddCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDropCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RequiredDropCapabilities = append(m.RequiredDropCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedCapabilities = append(m.AllowedCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Volumes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Volumes = append(m.Volumes, FSType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostNetwork\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostNetwork = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPorts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostPorts = append(m.HostPorts, HostPortRange{})\n\t\t\tif err := m.HostPorts[len(m.HostPorts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPID\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostPID = bool(v != 0)\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIPC\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostIPC = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.SELinux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RunAsUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.SupplementalGroups.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroup\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.FSGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnlyRootFilesystem\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnlyRootFilesystem = bool(v != 0)\n\t\tcase 15:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultAllowPrivilegeEscalation\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.DefaultAllowPrivilegeEscalation = &b\n\t\tcase 16:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowPrivilegeEscalation\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowPrivilegeEscalation = &b\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedHostPaths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedHostPaths = append(m.AllowedHostPaths, AllowedHostPath{})\n\t\t\tif err := m.AllowedHostPaths[len(m.AllowedHostPaths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedFlexVolumes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedFlexVolumes = append(m.AllowedFlexVolumes, AllowedFlexVolume{})\n\t\t\tif err := m.AllowedFlexVolumes[len(m.AllowedFlexVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedUnsafeSysctls\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedUnsafeSysctls = append(m.AllowedUnsafeSysctls, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ForbiddenSysctls\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ForbiddenSysctls = append(m.ForbiddenSysctls, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedProcMountTypes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedProcMountTypes = append(m.AllowedProcMountTypes, k8s_io_api_core_v1.ProcMountType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RunAsGroup == nil {\n\t\t\t\tm.RunAsGroup = &RunAsGroupStrategyOptions{}\n\t\t\t}\n\t\t\tif err := m.RunAsGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedCSIDrivers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedCSIDrivers = append(m.AllowedCSIDrivers, AllowedCSIDriver{})\n\t\t\tif err := m.AllowedCSIDrivers[len(m.AllowedCSIDrivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeClass\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RuntimeClass == nil {\n\t\t\t\tm.RuntimeClass = &RuntimeClassStrategyOptions{}\n\t\t\t}\n\t\t\tif err := m.RuntimeClass.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RunAsGroupStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RunAsGroupStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rule = RunAsGroupStrategy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ranges\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ranges = append(m.Ranges, IDRange{})\n\t\t\tif err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RunAsUserStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RunAsUserStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rule = RunAsUserStrategy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ranges\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ranges = append(m.Ranges, IDRange{})\n\t\t\tif err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedRuntimeClassNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedRuntimeClassNames = append(m.AllowedRuntimeClassNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultRuntimeClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.DefaultRuntimeClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rule = SELinuxStrategy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SELinuxOptions == nil {\n\t\t\t\tm.SELinuxOptions = &v11.SELinuxOptions{}\n\t\t\t}\n\t\t\tif err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SupplementalGroupsStrategyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SupplementalGroupsStrategyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rule = SupplementalGroupsStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ranges\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ranges = append(m.Ranges, IDRange{})\n\t\t\tif err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.policy.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/policy/v1beta1\";\n\n// AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.\nmessage AllowedCSIDriver {\n  // Name is the registered name of the CSI driver\n  optional string name = 1;\n}\n\n// AllowedFlexVolume represents a single Flexvolume that is allowed to be used.\nmessage AllowedFlexVolume {\n  // driver is the name of the Flexvolume driver.\n  optional string driver = 1;\n}\n\n// AllowedHostPath defines the host volume conditions that will be enabled by a policy\n// for pods to use. It requires the path prefix to be defined.\nmessage AllowedHostPath {\n  // pathPrefix is the path prefix that the host volume must match.\n  // It does not support `*`.\n  // Trailing slashes are trimmed when validating the path prefix with a host path.\n  //\n  // Examples:\n  // `/foo` would allow `/foo`, `/foo/` and `/foo/bar`\n  // `/foo` would not allow `/food` or `/etc/foo`\n  optional string pathPrefix = 1;\n\n  // when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.\n  // +optional\n  optional bool readOnly = 2;\n}\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\nmessage Eviction {\n  // ObjectMeta describes the pod that is being evicted.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // DeleteOptions may be provided\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2;\n}\n\n// FSGroupStrategyOptions defines the strategy type and options used to create the strategy.\nmessage FSGroupStrategyOptions {\n  // rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\n  // +optional\n  optional string rule = 1;\n\n  // ranges are the allowed ranges of fs groups.  If you would like to force a single\n  // fs group then supply a single range with the same start and end. Required for MustRunAs.\n  // +optional\n  repeated IDRange ranges = 2;\n}\n\n// HostPortRange defines a range of host ports that will be enabled by a policy\n// for pods to use.  It requires both the start and end to be defined.\nmessage HostPortRange {\n  // min is the start of the range, inclusive.\n  optional int32 min = 1;\n\n  // max is the end of the range, inclusive.\n  optional int32 max = 2;\n}\n\n// IDRange provides a min/max of an allowed range of IDs.\nmessage IDRange {\n  // min is the start of the range, inclusive.\n  optional int64 min = 1;\n\n  // max is the end of the range, inclusive.\n  optional int64 max = 2;\n}\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\nmessage PodDisruptionBudget {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetSpec spec = 2;\n\n  // Most recently observed status of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetStatus status = 3;\n}\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\nmessage PodDisruptionBudgetList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items list individual PodDisruptionBudget objects\n  repeated PodDisruptionBudget items = 2;\n}\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\nmessage PodDisruptionBudgetSpec {\n  // An eviction is allowed if at least \"minAvailable\" pods selected by\n  // \"selector\" will still be available after the eviction, i.e. even in the\n  // absence of the evicted pod.  So for example you can prevent all voluntary\n  // evictions by specifying \"100%\".\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1;\n\n  // Label query over pods whose evictions are managed by the disruption\n  // budget.\n  // A null selector selects no pods.\n  // An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods.\n  // In policy/v1, an empty selector will select all pods in the namespace.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // An eviction is allowed if at most \"maxUnavailable\" pods selected by\n  // \"selector\" are unavailable after the eviction, i.e. even in absence of\n  // the evicted pod. For example, one can prevent all voluntary evictions\n  // by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n  // +optional\n  optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3;\n\n  // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n  // should be considered for eviction. Current implementation considers healthy pods,\n  // as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n  //\n  // Valid policies are IfHealthyBudget and AlwaysAllow.\n  // If no policy is specified, the default behavior will be used,\n  // which corresponds to the IfHealthyBudget policy.\n  //\n  // IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n  // but not yet healthy can be evicted only if the guarded application is not\n  // disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n  // but not yet healthy are considered disrupted and can be evicted regardless\n  // of whether the criteria in a PDB is met. This means perspective running\n  // pods of a disrupted application might not get a chance to become healthy.\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // Additional policies may be added in the future.\n  // Clients making eviction decisions should disallow eviction of unhealthy pods\n  // if they encounter an unrecognized policy in this field.\n  //\n  // This field is beta-level. The eviction API uses this field when\n  // the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n  // +optional\n  optional string unhealthyPodEvictionPolicy = 4;\n}\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\nmessage PodDisruptionBudgetStatus {\n  // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n  // status information is valid only if observedGeneration equals to PDB's object generation.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // DisruptedPods contains information about pods whose eviction was\n  // processed by the API server eviction subresource handler but has not\n  // yet been observed by the PodDisruptionBudget controller.\n  // A pod will be in this map from the time when the API server processed the\n  // eviction request to the time when the pod is seen by PDB controller\n  // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n  // and the value is the time when the API server processed the eviction request. If\n  // the deletion didn't occur and a pod is still there it will be removed from\n  // the list automatically by PodDisruptionBudget controller after some time.\n  // If everything goes smooth this map should be empty for the most of the time.\n  // Large number of entries in the map may indicate problems with pod deletions.\n  // +optional\n  map<string, k8s.io.apimachinery.pkg.apis.meta.v1.Time> disruptedPods = 2;\n\n  // Number of pod disruptions that are currently allowed.\n  optional int32 disruptionsAllowed = 3;\n\n  // current number of healthy pods\n  optional int32 currentHealthy = 4;\n\n  // minimum desired number of healthy pods\n  optional int32 desiredHealthy = 5;\n\n  // total number of pods counted by this disruption budget\n  optional int32 expectedPods = 6;\n\n  // Conditions contain conditions for PDB. The disruption controller sets the\n  // DisruptionAllowed condition. The following are known values for the reason field\n  // (additional reasons could be added in the future):\n  // - SyncFailed: The controller encountered an error and wasn't able to compute\n  //               the number of allowed disruptions. Therefore no disruptions are\n  //               allowed and the status of the condition will be False.\n  // - InsufficientPods: The number of pods are either at or below the number\n  //                     required by the PodDisruptionBudget. No disruptions are\n  //                     allowed and the status of the condition will be False.\n  // - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n  //                   The condition will be True, and the number of allowed\n  //                   disruptions are provided by the disruptionsAllowed property.\n  //\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7;\n}\n\n// PodSecurityPolicy governs the ability to make requests that affect the Security Context\n// that will be applied to a pod and container.\n// Deprecated in 1.21.\nmessage PodSecurityPolicy {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the policy enforced.\n  // +optional\n  optional PodSecurityPolicySpec spec = 2;\n}\n\n// PodSecurityPolicyList is a list of PodSecurityPolicy objects.\nmessage PodSecurityPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated PodSecurityPolicy items = 2;\n}\n\n// PodSecurityPolicySpec defines the policy enforced.\nmessage PodSecurityPolicySpec {\n  // privileged determines if a pod can request to be run as privileged.\n  // +optional\n  optional bool privileged = 1;\n\n  // defaultAddCapabilities is the default set of capabilities that will be added to the container\n  // unless the pod spec specifically drops the capability.  You may not list a capability in both\n  // defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly\n  // allowed, and need not be included in the allowedCapabilities list.\n  // +optional\n  repeated string defaultAddCapabilities = 2;\n\n  // requiredDropCapabilities are the capabilities that will be dropped from the container.  These\n  // are required to be dropped and cannot be added.\n  // +optional\n  repeated string requiredDropCapabilities = 3;\n\n  // allowedCapabilities is a list of capabilities that can be requested to add to the container.\n  // Capabilities in this field may be added at the pod author's discretion.\n  // You must not list a capability in both allowedCapabilities and requiredDropCapabilities.\n  // +optional\n  repeated string allowedCapabilities = 4;\n\n  // volumes is an allowlist of volume plugins. Empty indicates that\n  // no volumes may be used. To allow all volumes you may use '*'.\n  // +optional\n  repeated string volumes = 5;\n\n  // hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.\n  // +optional\n  optional bool hostNetwork = 6;\n\n  // hostPorts determines which host port ranges are allowed to be exposed.\n  // +optional\n  repeated HostPortRange hostPorts = 7;\n\n  // hostPID determines if the policy allows the use of HostPID in the pod spec.\n  // +optional\n  optional bool hostPID = 8;\n\n  // hostIPC determines if the policy allows the use of HostIPC in the pod spec.\n  // +optional\n  optional bool hostIPC = 9;\n\n  // seLinux is the strategy that will dictate the allowable labels that may be set.\n  optional SELinuxStrategyOptions seLinux = 10;\n\n  // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\n  optional RunAsUserStrategyOptions runAsUser = 11;\n\n  // RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set.\n  // If this field is omitted, the pod's RunAsGroup can take any value. This field requires the\n  // RunAsGroup feature gate to be enabled.\n  // +optional\n  optional RunAsGroupStrategyOptions runAsGroup = 22;\n\n  // supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\n  optional SupplementalGroupsStrategyOptions supplementalGroups = 12;\n\n  // fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\n  optional FSGroupStrategyOptions fsGroup = 13;\n\n  // readOnlyRootFilesystem when set to true will force containers to run with a read only root file\n  // system.  If the container specifically requests to run with a non-read only root file system\n  // the PSP should deny the pod.\n  // If set to false the container may run with a read only root file system if it wishes but it\n  // will not be forced to.\n  // +optional\n  optional bool readOnlyRootFilesystem = 14;\n\n  // defaultAllowPrivilegeEscalation controls the default setting for whether a\n  // process can gain more privileges than its parent process.\n  // +optional\n  optional bool defaultAllowPrivilegeEscalation = 15;\n\n  // allowPrivilegeEscalation determines if a pod can request to allow\n  // privilege escalation. If unspecified, defaults to true.\n  // +optional\n  optional bool allowPrivilegeEscalation = 16;\n\n  // allowedHostPaths is an allowlist of host paths. Empty indicates\n  // that all host paths may be used.\n  // +optional\n  repeated AllowedHostPath allowedHostPaths = 17;\n\n  // allowedFlexVolumes is an allowlist of Flexvolumes.  Empty or nil indicates that all\n  // Flexvolumes may be used.  This parameter is effective only when the usage of the Flexvolumes\n  // is allowed in the \"volumes\" field.\n  // +optional\n  repeated AllowedFlexVolume allowedFlexVolumes = 18;\n\n  // AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec.\n  // An empty value indicates that any CSI driver can be used for inline ephemeral volumes.\n  // +optional\n  repeated AllowedCSIDriver allowedCSIDrivers = 23;\n\n  // allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none.\n  // Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered\n  // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed.\n  // Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n  //\n  // Examples:\n  // e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc.\n  // e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.\n  // +optional\n  repeated string allowedUnsafeSysctls = 19;\n\n  // forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none.\n  // Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered\n  // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n  //\n  // Examples:\n  // e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc.\n  // e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.\n  // +optional\n  repeated string forbiddenSysctls = 20;\n\n  // AllowedProcMountTypes is an allowlist of allowed ProcMountTypes.\n  // Empty or nil indicates that only the DefaultProcMountType may be used.\n  // This requires the ProcMountType feature flag to be enabled.\n  // +optional\n  repeated string allowedProcMountTypes = 21;\n\n  // runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod.\n  // If this field is omitted, the pod's runtimeClassName field is unrestricted.\n  // Enforcement of this field depends on the RuntimeClass feature gate being enabled.\n  // +optional\n  optional RuntimeClassStrategyOptions runtimeClass = 24;\n}\n\n// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.\nmessage RunAsGroupStrategyOptions {\n  // rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\n  optional string rule = 1;\n\n  // ranges are the allowed ranges of gids that may be used. If you would like to force a single gid\n  // then supply a single range with the same start and end. Required for MustRunAs.\n  // +optional\n  repeated IDRange ranges = 2;\n}\n\n// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.\nmessage RunAsUserStrategyOptions {\n  // rule is the strategy that will dictate the allowable RunAsUser values that may be set.\n  optional string rule = 1;\n\n  // ranges are the allowed ranges of uids that may be used. If you would like to force a single uid\n  // then supply a single range with the same start and end. Required for MustRunAs.\n  // +optional\n  repeated IDRange ranges = 2;\n}\n\n// RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses\n// for a pod.\nmessage RuntimeClassStrategyOptions {\n  // allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod.\n  // A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the\n  // list. An empty list requires the RuntimeClassName field to be unset.\n  repeated string allowedRuntimeClassNames = 1;\n\n  // defaultRuntimeClassName is the default RuntimeClassName to set on the pod.\n  // The default MUST be allowed by the allowedRuntimeClassNames list.\n  // A value of nil does not mutate the Pod.\n  // +optional\n  optional string defaultRuntimeClassName = 2;\n}\n\n// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.\nmessage SELinuxStrategyOptions {\n  // rule is the strategy that will dictate the allowable labels that may be set.\n  optional string rule = 1;\n\n  // seLinuxOptions required to run as; required for MustRunAs\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n  // +optional\n  optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2;\n}\n\n// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.\nmessage SupplementalGroupsStrategyOptions {\n  // rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\n  // +optional\n  optional string rule = 1;\n\n  // ranges are the allowed ranges of supplemental groups.  If you would like to force a single\n  // supplemental group then supply a single range with the same start and end. Required for MustRunAs.\n  // +optional\n  repeated IDRange ranges = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"policy\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PodDisruptionBudget{},\n\t\t&PodDisruptionBudgetList{},\n\t\t&PodSecurityPolicy{},\n\t\t&PodSecurityPolicyList{},\n\t\t&Eviction{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\ntype PodDisruptionBudgetSpec struct {\n\t// An eviction is allowed if at least \"minAvailable\" pods selected by\n\t// \"selector\" will still be available after the eviction, i.e. even in the\n\t// absence of the evicted pod.  So for example you can prevent all voluntary\n\t// evictions by specifying \"100%\".\n\t// +optional\n\tMinAvailable *intstr.IntOrString `json:\"minAvailable,omitempty\" protobuf:\"bytes,1,opt,name=minAvailable\"`\n\n\t// Label query over pods whose evictions are managed by the disruption\n\t// budget.\n\t// A null selector selects no pods.\n\t// An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods.\n\t// In policy/v1, an empty selector will select all pods in the namespace.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// An eviction is allowed if at most \"maxUnavailable\" pods selected by\n\t// \"selector\" are unavailable after the eviction, i.e. even in absence of\n\t// the evicted pod. For example, one can prevent all voluntary evictions\n\t// by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,3,opt,name=maxUnavailable\"`\n\n\t// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n\t// should be considered for eviction. Current implementation considers healthy pods,\n\t// as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\t//\n\t// Valid policies are IfHealthyBudget and AlwaysAllow.\n\t// If no policy is specified, the default behavior will be used,\n\t// which corresponds to the IfHealthyBudget policy.\n\t//\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// Additional policies may be added in the future.\n\t// Clients making eviction decisions should disallow eviction of unhealthy pods\n\t// if they encounter an unrecognized policy in this field.\n\t//\n\t// This field is beta-level. The eviction API uses this field when\n\t// the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n\t// +optional\n\tUnhealthyPodEvictionPolicy *UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\" protobuf:\"bytes,4,opt,name=unhealthyPodEvictionPolicy\"`\n}\n\n// UnhealthyPodEvictionPolicyType defines the criteria for when unhealthy pods\n// should be considered for eviction.\n// +enum\ntype UnhealthyPodEvictionPolicyType string\n\nconst (\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\tIfHealthyBudget UnhealthyPodEvictionPolicyType = \"IfHealthyBudget\"\n\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\tAlwaysAllow UnhealthyPodEvictionPolicyType = \"AlwaysAllow\"\n)\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\ntype PodDisruptionBudgetStatus struct {\n\t// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n\t// status information is valid only if observedGeneration equals to PDB's object generation.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// DisruptedPods contains information about pods whose eviction was\n\t// processed by the API server eviction subresource handler but has not\n\t// yet been observed by the PodDisruptionBudget controller.\n\t// A pod will be in this map from the time when the API server processed the\n\t// eviction request to the time when the pod is seen by PDB controller\n\t// as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n\t// and the value is the time when the API server processed the eviction request. If\n\t// the deletion didn't occur and a pod is still there it will be removed from\n\t// the list automatically by PodDisruptionBudget controller after some time.\n\t// If everything goes smooth this map should be empty for the most of the time.\n\t// Large number of entries in the map may indicate problems with pod deletions.\n\t// +optional\n\tDisruptedPods map[string]metav1.Time `json:\"disruptedPods,omitempty\" protobuf:\"bytes,2,rep,name=disruptedPods\"`\n\n\t// Number of pod disruptions that are currently allowed.\n\tDisruptionsAllowed int32 `json:\"disruptionsAllowed\" protobuf:\"varint,3,opt,name=disruptionsAllowed\"`\n\n\t// current number of healthy pods\n\tCurrentHealthy int32 `json:\"currentHealthy\" protobuf:\"varint,4,opt,name=currentHealthy\"`\n\n\t// minimum desired number of healthy pods\n\tDesiredHealthy int32 `json:\"desiredHealthy\" protobuf:\"varint,5,opt,name=desiredHealthy\"`\n\n\t// total number of pods counted by this disruption budget\n\tExpectedPods int32 `json:\"expectedPods\" protobuf:\"varint,6,opt,name=expectedPods\"`\n\n\t// Conditions contain conditions for PDB. The disruption controller sets the\n\t// DisruptionAllowed condition. The following are known values for the reason field\n\t// (additional reasons could be added in the future):\n\t// - SyncFailed: The controller encountered an error and wasn't able to compute\n\t//               the number of allowed disruptions. Therefore no disruptions are\n\t//               allowed and the status of the condition will be False.\n\t// - InsufficientPods: The number of pods are either at or below the number\n\t//                     required by the PodDisruptionBudget. No disruptions are\n\t//                     allowed and the status of the condition will be False.\n\t// - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n\t//                   The condition will be True, and the number of allowed\n\t//                   disruptions are provided by the disruptionsAllowed property.\n\t//\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,7,rep,name=conditions\"`\n}\n\nconst (\n\t// DisruptionAllowedCondition is a condition set by the disruption controller\n\t// that signal whether any of the pods covered by the PDB can be disrupted.\n\tDisruptionAllowedCondition = \"DisruptionAllowed\"\n\n\t// SyncFailedReason is set on the DisruptionAllowed condition if reconcile\n\t// of the PDB failed and therefore disruption of pods are not allowed.\n\tSyncFailedReason = \"SyncFailed\"\n\t// SufficientPodsReason is set on the DisruptionAllowed condition if there are\n\t// more pods covered by the PDB than required and at least one can be disrupted.\n\tSufficientPodsReason = \"SufficientPods\"\n\t// InsufficientPodsReason is set on the DisruptionAllowed condition if the number\n\t// of pods are equal to or fewer than required by the PDB.\n\tInsufficientPodsReason = \"InsufficientPods\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudget\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\ntype PodDisruptionBudget struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the PodDisruptionBudget.\n\t// +optional\n\tSpec PodDisruptionBudgetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// Most recently observed status of the PodDisruptionBudget.\n\t// +optional\n\tStatus PodDisruptionBudgetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudgetList\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\ntype PodDisruptionBudgetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items list individual PodDisruptionBudget objects\n\tItems []PodDisruptionBudget `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:noVerbs\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\ntype Eviction struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// ObjectMeta describes the pod that is being evicted.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// DeleteOptions may be provided\n\t// +optional\n\tDeleteOptions *metav1.DeleteOptions `json:\"deleteOptions,omitempty\" protobuf:\"bytes,2,opt,name=deleteOptions\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n\n// PodSecurityPolicy governs the ability to make requests that affect the Security Context\n// that will be applied to a pod and container.\n// Deprecated in 1.21.\ntype PodSecurityPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the policy enforced.\n\t// +optional\n\tSpec PodSecurityPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// PodSecurityPolicySpec defines the policy enforced.\ntype PodSecurityPolicySpec struct {\n\t// privileged determines if a pod can request to be run as privileged.\n\t// +optional\n\tPrivileged bool `json:\"privileged,omitempty\" protobuf:\"varint,1,opt,name=privileged\"`\n\t// defaultAddCapabilities is the default set of capabilities that will be added to the container\n\t// unless the pod spec specifically drops the capability.  You may not list a capability in both\n\t// defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly\n\t// allowed, and need not be included in the allowedCapabilities list.\n\t// +optional\n\tDefaultAddCapabilities []v1.Capability `json:\"defaultAddCapabilities,omitempty\" protobuf:\"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability\"`\n\t// requiredDropCapabilities are the capabilities that will be dropped from the container.  These\n\t// are required to be dropped and cannot be added.\n\t// +optional\n\tRequiredDropCapabilities []v1.Capability `json:\"requiredDropCapabilities,omitempty\" protobuf:\"bytes,3,rep,name=requiredDropCapabilities,casttype=k8s.io/api/core/v1.Capability\"`\n\t// allowedCapabilities is a list of capabilities that can be requested to add to the container.\n\t// Capabilities in this field may be added at the pod author's discretion.\n\t// You must not list a capability in both allowedCapabilities and requiredDropCapabilities.\n\t// +optional\n\tAllowedCapabilities []v1.Capability `json:\"allowedCapabilities,omitempty\" protobuf:\"bytes,4,rep,name=allowedCapabilities,casttype=k8s.io/api/core/v1.Capability\"`\n\t// volumes is an allowlist of volume plugins. Empty indicates that\n\t// no volumes may be used. To allow all volumes you may use '*'.\n\t// +optional\n\tVolumes []FSType `json:\"volumes,omitempty\" protobuf:\"bytes,5,rep,name=volumes,casttype=FSType\"`\n\t// hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.\n\t// +optional\n\tHostNetwork bool `json:\"hostNetwork,omitempty\" protobuf:\"varint,6,opt,name=hostNetwork\"`\n\t// hostPorts determines which host port ranges are allowed to be exposed.\n\t// +optional\n\tHostPorts []HostPortRange `json:\"hostPorts,omitempty\" protobuf:\"bytes,7,rep,name=hostPorts\"`\n\t// hostPID determines if the policy allows the use of HostPID in the pod spec.\n\t// +optional\n\tHostPID bool `json:\"hostPID,omitempty\" protobuf:\"varint,8,opt,name=hostPID\"`\n\t// hostIPC determines if the policy allows the use of HostIPC in the pod spec.\n\t// +optional\n\tHostIPC bool `json:\"hostIPC,omitempty\" protobuf:\"varint,9,opt,name=hostIPC\"`\n\t// seLinux is the strategy that will dictate the allowable labels that may be set.\n\tSELinux SELinuxStrategyOptions `json:\"seLinux\" protobuf:\"bytes,10,opt,name=seLinux\"`\n\t// runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\n\tRunAsUser RunAsUserStrategyOptions `json:\"runAsUser\" protobuf:\"bytes,11,opt,name=runAsUser\"`\n\t// RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set.\n\t// If this field is omitted, the pod's RunAsGroup can take any value. This field requires the\n\t// RunAsGroup feature gate to be enabled.\n\t// +optional\n\tRunAsGroup *RunAsGroupStrategyOptions `json:\"runAsGroup,omitempty\" protobuf:\"bytes,22,opt,name=runAsGroup\"`\n\t// supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\n\tSupplementalGroups SupplementalGroupsStrategyOptions `json:\"supplementalGroups\" protobuf:\"bytes,12,opt,name=supplementalGroups\"`\n\t// fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\n\tFSGroup FSGroupStrategyOptions `json:\"fsGroup\" protobuf:\"bytes,13,opt,name=fsGroup\"`\n\t// readOnlyRootFilesystem when set to true will force containers to run with a read only root file\n\t// system.  If the container specifically requests to run with a non-read only root file system\n\t// the PSP should deny the pod.\n\t// If set to false the container may run with a read only root file system if it wishes but it\n\t// will not be forced to.\n\t// +optional\n\tReadOnlyRootFilesystem bool `json:\"readOnlyRootFilesystem,omitempty\" protobuf:\"varint,14,opt,name=readOnlyRootFilesystem\"`\n\t// defaultAllowPrivilegeEscalation controls the default setting for whether a\n\t// process can gain more privileges than its parent process.\n\t// +optional\n\tDefaultAllowPrivilegeEscalation *bool `json:\"defaultAllowPrivilegeEscalation,omitempty\" protobuf:\"varint,15,opt,name=defaultAllowPrivilegeEscalation\"`\n\t// allowPrivilegeEscalation determines if a pod can request to allow\n\t// privilege escalation. If unspecified, defaults to true.\n\t// +optional\n\tAllowPrivilegeEscalation *bool `json:\"allowPrivilegeEscalation,omitempty\" protobuf:\"varint,16,opt,name=allowPrivilegeEscalation\"`\n\t// allowedHostPaths is an allowlist of host paths. Empty indicates\n\t// that all host paths may be used.\n\t// +optional\n\tAllowedHostPaths []AllowedHostPath `json:\"allowedHostPaths,omitempty\" protobuf:\"bytes,17,rep,name=allowedHostPaths\"`\n\t// allowedFlexVolumes is an allowlist of Flexvolumes.  Empty or nil indicates that all\n\t// Flexvolumes may be used.  This parameter is effective only when the usage of the Flexvolumes\n\t// is allowed in the \"volumes\" field.\n\t// +optional\n\tAllowedFlexVolumes []AllowedFlexVolume `json:\"allowedFlexVolumes,omitempty\" protobuf:\"bytes,18,rep,name=allowedFlexVolumes\"`\n\t// AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec.\n\t// An empty value indicates that any CSI driver can be used for inline ephemeral volumes.\n\t// +optional\n\tAllowedCSIDrivers []AllowedCSIDriver `json:\"allowedCSIDrivers,omitempty\" protobuf:\"bytes,23,rep,name=allowedCSIDrivers\"`\n\t// allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none.\n\t// Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered\n\t// as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed.\n\t// Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n\t//\n\t// Examples:\n\t// e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc.\n\t// e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.\n\t// +optional\n\tAllowedUnsafeSysctls []string `json:\"allowedUnsafeSysctls,omitempty\" protobuf:\"bytes,19,rep,name=allowedUnsafeSysctls\"`\n\t// forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none.\n\t// Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered\n\t// as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\t//\n\t// Examples:\n\t// e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc.\n\t// e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.\n\t// +optional\n\tForbiddenSysctls []string `json:\"forbiddenSysctls,omitempty\" protobuf:\"bytes,20,rep,name=forbiddenSysctls\"`\n\t// AllowedProcMountTypes is an allowlist of allowed ProcMountTypes.\n\t// Empty or nil indicates that only the DefaultProcMountType may be used.\n\t// This requires the ProcMountType feature flag to be enabled.\n\t// +optional\n\tAllowedProcMountTypes []v1.ProcMountType `json:\"allowedProcMountTypes,omitempty\" protobuf:\"bytes,21,opt,name=allowedProcMountTypes\"`\n\t// runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod.\n\t// If this field is omitted, the pod's runtimeClassName field is unrestricted.\n\t// Enforcement of this field depends on the RuntimeClass feature gate being enabled.\n\t// +optional\n\tRuntimeClass *RuntimeClassStrategyOptions `json:\"runtimeClass,omitempty\" protobuf:\"bytes,24,opt,name=runtimeClass\"`\n}\n\n// AllowedHostPath defines the host volume conditions that will be enabled by a policy\n// for pods to use. It requires the path prefix to be defined.\ntype AllowedHostPath struct {\n\t// pathPrefix is the path prefix that the host volume must match.\n\t// It does not support `*`.\n\t// Trailing slashes are trimmed when validating the path prefix with a host path.\n\t//\n\t// Examples:\n\t// `/foo` would allow `/foo`, `/foo/` and `/foo/bar`\n\t// `/foo` would not allow `/food` or `/etc/foo`\n\tPathPrefix string `json:\"pathPrefix,omitempty\" protobuf:\"bytes,1,rep,name=pathPrefix\"`\n\n\t// when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n}\n\n// AllowAllCapabilities can be used as a value for the PodSecurityPolicy.AllowAllCapabilities\n// field and means that any capabilities are allowed to be requested.\nvar AllowAllCapabilities v1.Capability = \"*\"\n\n// FSType gives strong typing to different file systems that are used by volumes.\ntype FSType string\n\nconst (\n\tAzureFile             FSType = \"azureFile\"\n\tFlocker               FSType = \"flocker\"\n\tFlexVolume            FSType = \"flexVolume\"\n\tHostPath              FSType = \"hostPath\"\n\tEmptyDir              FSType = \"emptyDir\"\n\tGCEPersistentDisk     FSType = \"gcePersistentDisk\"\n\tAWSElasticBlockStore  FSType = \"awsElasticBlockStore\"\n\tGitRepo               FSType = \"gitRepo\"\n\tSecret                FSType = \"secret\"\n\tNFS                   FSType = \"nfs\"\n\tISCSI                 FSType = \"iscsi\"\n\tGlusterfs             FSType = \"glusterfs\"\n\tPersistentVolumeClaim FSType = \"persistentVolumeClaim\"\n\tRBD                   FSType = \"rbd\"\n\tCinder                FSType = \"cinder\"\n\tCephFS                FSType = \"cephFS\"\n\tDownwardAPI           FSType = \"downwardAPI\"\n\tFC                    FSType = \"fc\"\n\tConfigMap             FSType = \"configMap\"\n\tVsphereVolume         FSType = \"vsphereVolume\"\n\tQuobyte               FSType = \"quobyte\"\n\tAzureDisk             FSType = \"azureDisk\"\n\tPhotonPersistentDisk  FSType = \"photonPersistentDisk\"\n\tStorageOS             FSType = \"storageos\"\n\tProjected             FSType = \"projected\"\n\tPortworxVolume        FSType = \"portworxVolume\"\n\tScaleIO               FSType = \"scaleIO\"\n\tCSI                   FSType = \"csi\"\n\tEphemeral             FSType = \"ephemeral\"\n\tAll                   FSType = \"*\"\n)\n\n// AllowedFlexVolume represents a single Flexvolume that is allowed to be used.\ntype AllowedFlexVolume struct {\n\t// driver is the name of the Flexvolume driver.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n}\n\n// AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.\ntype AllowedCSIDriver struct {\n\t// Name is the registered name of the CSI driver\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// HostPortRange defines a range of host ports that will be enabled by a policy\n// for pods to use.  It requires both the start and end to be defined.\ntype HostPortRange struct {\n\t// min is the start of the range, inclusive.\n\tMin int32 `json:\"min\" protobuf:\"varint,1,opt,name=min\"`\n\t// max is the end of the range, inclusive.\n\tMax int32 `json:\"max\" protobuf:\"varint,2,opt,name=max\"`\n}\n\n// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.\ntype SELinuxStrategyOptions struct {\n\t// rule is the strategy that will dictate the allowable labels that may be set.\n\tRule SELinuxStrategy `json:\"rule\" protobuf:\"bytes,1,opt,name=rule,casttype=SELinuxStrategy\"`\n\t// seLinuxOptions required to run as; required for MustRunAs\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n\t// +optional\n\tSELinuxOptions *v1.SELinuxOptions `json:\"seLinuxOptions,omitempty\" protobuf:\"bytes,2,opt,name=seLinuxOptions\"`\n}\n\n// SELinuxStrategy denotes strategy types for generating SELinux options for a\n// Security Context.\ntype SELinuxStrategy string\n\nconst (\n\t// SELinuxStrategyMustRunAs means that container must have SELinux labels of X applied.\n\tSELinuxStrategyMustRunAs SELinuxStrategy = \"MustRunAs\"\n\t// SELinuxStrategyRunAsAny means that container may make requests for any SELinux context labels.\n\tSELinuxStrategyRunAsAny SELinuxStrategy = \"RunAsAny\"\n)\n\n// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.\ntype RunAsUserStrategyOptions struct {\n\t// rule is the strategy that will dictate the allowable RunAsUser values that may be set.\n\tRule RunAsUserStrategy `json:\"rule\" protobuf:\"bytes,1,opt,name=rule,casttype=RunAsUserStrategy\"`\n\t// ranges are the allowed ranges of uids that may be used. If you would like to force a single uid\n\t// then supply a single range with the same start and end. Required for MustRunAs.\n\t// +optional\n\tRanges []IDRange `json:\"ranges,omitempty\" protobuf:\"bytes,2,rep,name=ranges\"`\n}\n\n// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.\ntype RunAsGroupStrategyOptions struct {\n\t// rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\n\tRule RunAsGroupStrategy `json:\"rule\" protobuf:\"bytes,1,opt,name=rule,casttype=RunAsGroupStrategy\"`\n\t// ranges are the allowed ranges of gids that may be used. If you would like to force a single gid\n\t// then supply a single range with the same start and end. Required for MustRunAs.\n\t// +optional\n\tRanges []IDRange `json:\"ranges,omitempty\" protobuf:\"bytes,2,rep,name=ranges\"`\n}\n\n// IDRange provides a min/max of an allowed range of IDs.\ntype IDRange struct {\n\t// min is the start of the range, inclusive.\n\tMin int64 `json:\"min\" protobuf:\"varint,1,opt,name=min\"`\n\t// max is the end of the range, inclusive.\n\tMax int64 `json:\"max\" protobuf:\"varint,2,opt,name=max\"`\n}\n\n// RunAsUserStrategy denotes strategy types for generating RunAsUser values for a\n// Security Context.\ntype RunAsUserStrategy string\n\nconst (\n\t// RunAsUserStrategyMustRunAs means that container must run as a particular uid.\n\tRunAsUserStrategyMustRunAs RunAsUserStrategy = \"MustRunAs\"\n\t// RunAsUserStrategyMustRunAsNonRoot means that container must run as a non-root uid.\n\tRunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = \"MustRunAsNonRoot\"\n\t// RunAsUserStrategyRunAsAny means that container may make requests for any uid.\n\tRunAsUserStrategyRunAsAny RunAsUserStrategy = \"RunAsAny\"\n)\n\n// RunAsGroupStrategy denotes strategy types for generating RunAsGroup values for a\n// Security Context.\ntype RunAsGroupStrategy string\n\nconst (\n\t// RunAsGroupStrategyMayRunAs means that container does not need to run with a particular gid.\n\t// However, when RunAsGroup are specified, they have to fall in the defined range.\n\tRunAsGroupStrategyMayRunAs RunAsGroupStrategy = \"MayRunAs\"\n\t// RunAsGroupStrategyMustRunAs means that container must run as a particular gid.\n\tRunAsGroupStrategyMustRunAs RunAsGroupStrategy = \"MustRunAs\"\n\t// RunAsUserStrategyRunAsAny means that container may make requests for any gid.\n\tRunAsGroupStrategyRunAsAny RunAsGroupStrategy = \"RunAsAny\"\n)\n\n// FSGroupStrategyOptions defines the strategy type and options used to create the strategy.\ntype FSGroupStrategyOptions struct {\n\t// rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\n\t// +optional\n\tRule FSGroupStrategyType `json:\"rule,omitempty\" protobuf:\"bytes,1,opt,name=rule,casttype=FSGroupStrategyType\"`\n\t// ranges are the allowed ranges of fs groups.  If you would like to force a single\n\t// fs group then supply a single range with the same start and end. Required for MustRunAs.\n\t// +optional\n\tRanges []IDRange `json:\"ranges,omitempty\" protobuf:\"bytes,2,rep,name=ranges\"`\n}\n\n// FSGroupStrategyType denotes strategy types for generating FSGroup values for a\n// SecurityContext\ntype FSGroupStrategyType string\n\nconst (\n\t// FSGroupStrategyMayRunAs means that container does not need to have FSGroup of X applied.\n\t// However, when FSGroups are specified, they have to fall in the defined range.\n\tFSGroupStrategyMayRunAs FSGroupStrategyType = \"MayRunAs\"\n\t// FSGroupStrategyMustRunAs meant that container must have FSGroup of X applied.\n\tFSGroupStrategyMustRunAs FSGroupStrategyType = \"MustRunAs\"\n\t// FSGroupStrategyRunAsAny means that container may make requests for any FSGroup labels.\n\tFSGroupStrategyRunAsAny FSGroupStrategyType = \"RunAsAny\"\n)\n\n// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.\ntype SupplementalGroupsStrategyOptions struct {\n\t// rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\n\t// +optional\n\tRule SupplementalGroupsStrategyType `json:\"rule,omitempty\" protobuf:\"bytes,1,opt,name=rule,casttype=SupplementalGroupsStrategyType\"`\n\t// ranges are the allowed ranges of supplemental groups.  If you would like to force a single\n\t// supplemental group then supply a single range with the same start and end. Required for MustRunAs.\n\t// +optional\n\tRanges []IDRange `json:\"ranges,omitempty\" protobuf:\"bytes,2,rep,name=ranges\"`\n}\n\n// SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental\n// groups for a SecurityContext.\ntype SupplementalGroupsStrategyType string\n\nconst (\n\t// SupplementalGroupsStrategyMayRunAs means that container does not need to run with a particular gid.\n\t// However, when gids are specified, they have to fall in the defined range.\n\tSupplementalGroupsStrategyMayRunAs SupplementalGroupsStrategyType = \"MayRunAs\"\n\t// SupplementalGroupsStrategyMustRunAs means that container must run as a particular gid.\n\tSupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = \"MustRunAs\"\n\t// SupplementalGroupsStrategyRunAsAny means that container may make requests for any gid.\n\tSupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = \"RunAsAny\"\n)\n\n// RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses\n// for a pod.\ntype RuntimeClassStrategyOptions struct {\n\t// allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod.\n\t// A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the\n\t// list. An empty list requires the RuntimeClassName field to be unset.\n\tAllowedRuntimeClassNames []string `json:\"allowedRuntimeClassNames\" protobuf:\"bytes,1,rep,name=allowedRuntimeClassNames\"`\n\t// defaultRuntimeClassName is the default RuntimeClassName to set on the pod.\n\t// The default MUST be allowed by the allowedRuntimeClassNames list.\n\t// A value of nil does not mutate the Pod.\n\t// +optional\n\tDefaultRuntimeClassName *string `json:\"defaultRuntimeClassName,omitempty\" protobuf:\"bytes,2,opt,name=defaultRuntimeClassName\"`\n}\n\n// AllowAllRuntimeClassNames can be used as a value for the\n// RuntimeClassStrategyOptions.AllowedRuntimeClassNames field and means that any RuntimeClassName is\n// allowed.\nconst AllowAllRuntimeClassNames = \"*\"\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n\n// PodSecurityPolicyList is a list of PodSecurityPolicy objects.\ntype PodSecurityPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []PodSecurityPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AllowedCSIDriver = map[string]string{\n\t\"\":     \"AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.\",\n\t\"name\": \"Name is the registered name of the CSI driver\",\n}\n\nfunc (AllowedCSIDriver) SwaggerDoc() map[string]string {\n\treturn map_AllowedCSIDriver\n}\n\nvar map_AllowedFlexVolume = map[string]string{\n\t\"\":       \"AllowedFlexVolume represents a single Flexvolume that is allowed to be used.\",\n\t\"driver\": \"driver is the name of the Flexvolume driver.\",\n}\n\nfunc (AllowedFlexVolume) SwaggerDoc() map[string]string {\n\treturn map_AllowedFlexVolume\n}\n\nvar map_AllowedHostPath = map[string]string{\n\t\"\":           \"AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.\",\n\t\"pathPrefix\": \"pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\\n\\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`\",\n\t\"readOnly\":   \"when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.\",\n}\n\nfunc (AllowedHostPath) SwaggerDoc() map[string]string {\n\treturn map_AllowedHostPath\n}\n\nvar map_Eviction = map[string]string{\n\t\"\":              \"Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.\",\n\t\"metadata\":      \"ObjectMeta describes the pod that is being evicted.\",\n\t\"deleteOptions\": \"DeleteOptions may be provided\",\n}\n\nfunc (Eviction) SwaggerDoc() map[string]string {\n\treturn map_Eviction\n}\n\nvar map_FSGroupStrategyOptions = map[string]string{\n\t\"\":       \"FSGroupStrategyOptions defines the strategy type and options used to create the strategy.\",\n\t\"rule\":   \"rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\",\n\t\"ranges\": \"ranges are the allowed ranges of fs groups.  If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.\",\n}\n\nfunc (FSGroupStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_FSGroupStrategyOptions\n}\n\nvar map_HostPortRange = map[string]string{\n\t\"\":    \"HostPortRange defines a range of host ports that will be enabled by a policy for pods to use.  It requires both the start and end to be defined.\",\n\t\"min\": \"min is the start of the range, inclusive.\",\n\t\"max\": \"max is the end of the range, inclusive.\",\n}\n\nfunc (HostPortRange) SwaggerDoc() map[string]string {\n\treturn map_HostPortRange\n}\n\nvar map_IDRange = map[string]string{\n\t\"\":    \"IDRange provides a min/max of an allowed range of IDs.\",\n\t\"min\": \"min is the start of the range, inclusive.\",\n\t\"max\": \"max is the end of the range, inclusive.\",\n}\n\nfunc (IDRange) SwaggerDoc() map[string]string {\n\treturn map_IDRange\n}\n\nvar map_PodDisruptionBudget = map[string]string{\n\t\"\":         \"PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the PodDisruptionBudget.\",\n\t\"status\":   \"Most recently observed status of the PodDisruptionBudget.\",\n}\n\nfunc (PodDisruptionBudget) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudget\n}\n\nvar map_PodDisruptionBudgetList = map[string]string{\n\t\"\":         \"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items list individual PodDisruptionBudget objects\",\n}\n\nfunc (PodDisruptionBudgetList) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetList\n}\n\nvar map_PodDisruptionBudgetSpec = map[string]string{\n\t\"\":                           \"PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\",\n\t\"minAvailable\":               \"An eviction is allowed if at least \\\"minAvailable\\\" pods selected by \\\"selector\\\" will still be available after the eviction, i.e. even in the absence of the evicted pod.  So for example you can prevent all voluntary evictions by specifying \\\"100%\\\".\",\n\t\"selector\":                   \"Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.\",\n\t\"maxUnavailable\":             \"An eviction is allowed if at most \\\"maxUnavailable\\\" pods selected by \\\"selector\\\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \\\"minAvailable\\\".\",\n\t\"unhealthyPodEvictionPolicy\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\\n\\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\\n\\nThis field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\",\n}\n\nfunc (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetSpec\n}\n\nvar map_PodDisruptionBudgetStatus = map[string]string{\n\t\"\":                   \"PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\",\n\t\"observedGeneration\": \"Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.\",\n\t\"disruptedPods\":      \"DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.\",\n\t\"disruptionsAllowed\": \"Number of pod disruptions that are currently allowed.\",\n\t\"currentHealthy\":     \"current number of healthy pods\",\n\t\"desiredHealthy\":     \"minimum desired number of healthy pods\",\n\t\"expectedPods\":       \"total number of pods counted by this disruption budget\",\n\t\"conditions\":         \"Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\\n              the number of allowed disruptions. Therefore no disruptions are\\n              allowed and the status of the condition will be False.\\n- InsufficientPods: The number of pods are either at or below the number\\n                    required by the PodDisruptionBudget. No disruptions are\\n                    allowed and the status of the condition will be False.\\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\\n                  The condition will be True, and the number of allowed\\n                  disruptions are provided by the disruptionsAllowed property.\",\n}\n\nfunc (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetStatus\n}\n\nvar map_PodSecurityPolicy = map[string]string{\n\t\"\":         \"PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated in 1.21.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines the policy enforced.\",\n}\n\nfunc (PodSecurityPolicy) SwaggerDoc() map[string]string {\n\treturn map_PodSecurityPolicy\n}\n\nvar map_PodSecurityPolicyList = map[string]string{\n\t\"\":         \"PodSecurityPolicyList is a list of PodSecurityPolicy objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (PodSecurityPolicyList) SwaggerDoc() map[string]string {\n\treturn map_PodSecurityPolicyList\n}\n\nvar map_PodSecurityPolicySpec = map[string]string{\n\t\"\":                                \"PodSecurityPolicySpec defines the policy enforced.\",\n\t\"privileged\":                      \"privileged determines if a pod can request to be run as privileged.\",\n\t\"defaultAddCapabilities\":          \"defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability.  You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.\",\n\t\"requiredDropCapabilities\":        \"requiredDropCapabilities are the capabilities that will be dropped from the container.  These are required to be dropped and cannot be added.\",\n\t\"allowedCapabilities\":             \"allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.\",\n\t\"volumes\":                         \"volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.\",\n\t\"hostNetwork\":                     \"hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.\",\n\t\"hostPorts\":                       \"hostPorts determines which host port ranges are allowed to be exposed.\",\n\t\"hostPID\":                         \"hostPID determines if the policy allows the use of HostPID in the pod spec.\",\n\t\"hostIPC\":                         \"hostIPC determines if the policy allows the use of HostIPC in the pod spec.\",\n\t\"seLinux\":                         \"seLinux is the strategy that will dictate the allowable labels that may be set.\",\n\t\"runAsUser\":                       \"runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\",\n\t\"runAsGroup\":                      \"RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.\",\n\t\"supplementalGroups\":              \"supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\",\n\t\"fsGroup\":                         \"fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\",\n\t\"readOnlyRootFilesystem\":          \"readOnlyRootFilesystem when set to true will force containers to run with a read only root file system.  If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.\",\n\t\"defaultAllowPrivilegeEscalation\": \"defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.\",\n\t\"allowPrivilegeEscalation\":        \"allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.\",\n\t\"allowedHostPaths\":                \"allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.\",\n\t\"allowedFlexVolumes\":              \"allowedFlexVolumes is an allowlist of Flexvolumes.  Empty or nil indicates that all Flexvolumes may be used.  This parameter is effective only when the usage of the Flexvolumes is allowed in the \\\"volumes\\\" field.\",\n\t\"allowedCSIDrivers\":               \"AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes.\",\n\t\"allowedUnsafeSysctls\":            \"allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \\\"*\\\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\\n\\nExamples: e.g. \\\"foo/*\\\" allows \\\"foo/bar\\\", \\\"foo/baz\\\", etc. e.g. \\\"foo.*\\\" allows \\\"foo.bar\\\", \\\"foo.baz\\\", etc.\",\n\t\"forbiddenSysctls\":                \"forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \\\"*\\\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\\n\\nExamples: e.g. \\\"foo/*\\\" forbids \\\"foo/bar\\\", \\\"foo/baz\\\", etc. e.g. \\\"foo.*\\\" forbids \\\"foo.bar\\\", \\\"foo.baz\\\", etc.\",\n\t\"allowedProcMountTypes\":           \"AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.\",\n\t\"runtimeClass\":                    \"runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled.\",\n}\n\nfunc (PodSecurityPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_PodSecurityPolicySpec\n}\n\nvar map_RunAsGroupStrategyOptions = map[string]string{\n\t\"\":       \"RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.\",\n\t\"rule\":   \"rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\",\n\t\"ranges\": \"ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.\",\n}\n\nfunc (RunAsGroupStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_RunAsGroupStrategyOptions\n}\n\nvar map_RunAsUserStrategyOptions = map[string]string{\n\t\"\":       \"RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.\",\n\t\"rule\":   \"rule is the strategy that will dictate the allowable RunAsUser values that may be set.\",\n\t\"ranges\": \"ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.\",\n}\n\nfunc (RunAsUserStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_RunAsUserStrategyOptions\n}\n\nvar map_RuntimeClassStrategyOptions = map[string]string{\n\t\"\":                         \"RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.\",\n\t\"allowedRuntimeClassNames\": \"allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \\\"*\\\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.\",\n\t\"defaultRuntimeClassName\":  \"defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.\",\n}\n\nfunc (RuntimeClassStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassStrategyOptions\n}\n\nvar map_SELinuxStrategyOptions = map[string]string{\n\t\"\":               \"SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.\",\n\t\"rule\":           \"rule is the strategy that will dictate the allowable labels that may be set.\",\n\t\"seLinuxOptions\": \"seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n}\n\nfunc (SELinuxStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_SELinuxStrategyOptions\n}\n\nvar map_SupplementalGroupsStrategyOptions = map[string]string{\n\t\"\":       \"SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.\",\n\t\"rule\":   \"rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\",\n\t\"ranges\": \"ranges are the allowed ranges of supplemental groups.  If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.\",\n}\n\nfunc (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string {\n\treturn map_SupplementalGroupsStrategyOptions\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllowedCSIDriver) DeepCopyInto(out *AllowedCSIDriver) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedCSIDriver.\nfunc (in *AllowedCSIDriver) DeepCopy() *AllowedCSIDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllowedCSIDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume.\nfunc (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllowedFlexVolume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllowedHostPath) DeepCopyInto(out *AllowedHostPath) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedHostPath.\nfunc (in *AllowedHostPath) DeepCopy() *AllowedHostPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllowedHostPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Eviction) DeepCopyInto(out *Eviction) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.DeleteOptions != nil {\n\t\tin, out := &in.DeleteOptions, &out.DeleteOptions\n\t\t*out = new(v1.DeleteOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Eviction.\nfunc (in *Eviction) DeepCopy() *Eviction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Eviction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Eviction) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FSGroupStrategyOptions) DeepCopyInto(out *FSGroupStrategyOptions) {\n\t*out = *in\n\tif in.Ranges != nil {\n\t\tin, out := &in.Ranges, &out.Ranges\n\t\t*out = make([]IDRange, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FSGroupStrategyOptions.\nfunc (in *FSGroupStrategyOptions) DeepCopy() *FSGroupStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FSGroupStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostPortRange) DeepCopyInto(out *HostPortRange) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPortRange.\nfunc (in *HostPortRange) DeepCopy() *HostPortRange {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostPortRange)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IDRange) DeepCopyInto(out *IDRange) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IDRange.\nfunc (in *IDRange) DeepCopy() *IDRange {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IDRange)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.\nfunc (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudget) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetList) DeepCopyInto(out *PodDisruptionBudgetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodDisruptionBudget, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetList.\nfunc (in *PodDisruptionBudgetList) DeepCopy() *PodDisruptionBudgetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudgetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) {\n\t*out = *in\n\tif in.MinAvailable != nil {\n\t\tin, out := &in.MinAvailable, &out.MinAvailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.UnhealthyPodEvictionPolicy != nil {\n\t\tin, out := &in.UnhealthyPodEvictionPolicy, &out.UnhealthyPodEvictionPolicy\n\t\t*out = new(UnhealthyPodEvictionPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.\nfunc (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus) {\n\t*out = *in\n\tif in.DisruptedPods != nil {\n\t\tin, out := &in.DisruptedPods, &out.DisruptedPods\n\t\t*out = make(map[string]v1.Time, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetStatus.\nfunc (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicy.\nfunc (in *PodSecurityPolicy) DeepCopy() *PodSecurityPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSecurityPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodSecurityPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSecurityPolicyList) DeepCopyInto(out *PodSecurityPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodSecurityPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyList.\nfunc (in *PodSecurityPolicyList) DeepCopy() *PodSecurityPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSecurityPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodSecurityPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) {\n\t*out = *in\n\tif in.DefaultAddCapabilities != nil {\n\t\tin, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities\n\t\t*out = make([]corev1.Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RequiredDropCapabilities != nil {\n\t\tin, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities\n\t\t*out = make([]corev1.Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowedCapabilities != nil {\n\t\tin, out := &in.AllowedCapabilities, &out.AllowedCapabilities\n\t\t*out = make([]corev1.Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Volumes != nil {\n\t\tin, out := &in.Volumes, &out.Volumes\n\t\t*out = make([]FSType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.HostPorts != nil {\n\t\tin, out := &in.HostPorts, &out.HostPorts\n\t\t*out = make([]HostPortRange, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.SELinux.DeepCopyInto(&out.SELinux)\n\tin.RunAsUser.DeepCopyInto(&out.RunAsUser)\n\tif in.RunAsGroup != nil {\n\t\tin, out := &in.RunAsGroup, &out.RunAsGroup\n\t\t*out = new(RunAsGroupStrategyOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups)\n\tin.FSGroup.DeepCopyInto(&out.FSGroup)\n\tif in.DefaultAllowPrivilegeEscalation != nil {\n\t\tin, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllowPrivilegeEscalation != nil {\n\t\tin, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllowedHostPaths != nil {\n\t\tin, out := &in.AllowedHostPaths, &out.AllowedHostPaths\n\t\t*out = make([]AllowedHostPath, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowedFlexVolumes != nil {\n\t\tin, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes\n\t\t*out = make([]AllowedFlexVolume, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowedCSIDrivers != nil {\n\t\tin, out := &in.AllowedCSIDrivers, &out.AllowedCSIDrivers\n\t\t*out = make([]AllowedCSIDriver, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowedUnsafeSysctls != nil {\n\t\tin, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ForbiddenSysctls != nil {\n\t\tin, out := &in.ForbiddenSysctls, &out.ForbiddenSysctls\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowedProcMountTypes != nil {\n\t\tin, out := &in.AllowedProcMountTypes, &out.AllowedProcMountTypes\n\t\t*out = make([]corev1.ProcMountType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RuntimeClass != nil {\n\t\tin, out := &in.RuntimeClass, &out.RuntimeClass\n\t\t*out = new(RuntimeClassStrategyOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySpec.\nfunc (in *PodSecurityPolicySpec) DeepCopy() *PodSecurityPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSecurityPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RunAsGroupStrategyOptions) DeepCopyInto(out *RunAsGroupStrategyOptions) {\n\t*out = *in\n\tif in.Ranges != nil {\n\t\tin, out := &in.Ranges, &out.Ranges\n\t\t*out = make([]IDRange, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsGroupStrategyOptions.\nfunc (in *RunAsGroupStrategyOptions) DeepCopy() *RunAsGroupStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RunAsGroupStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) {\n\t*out = *in\n\tif in.Ranges != nil {\n\t\tin, out := &in.Ranges, &out.Ranges\n\t\t*out = make([]IDRange, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsUserStrategyOptions.\nfunc (in *RunAsUserStrategyOptions) DeepCopy() *RunAsUserStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RunAsUserStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassStrategyOptions) DeepCopyInto(out *RuntimeClassStrategyOptions) {\n\t*out = *in\n\tif in.AllowedRuntimeClassNames != nil {\n\t\tin, out := &in.AllowedRuntimeClassNames, &out.AllowedRuntimeClassNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.DefaultRuntimeClassName != nil {\n\t\tin, out := &in.DefaultRuntimeClassName, &out.DefaultRuntimeClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassStrategyOptions.\nfunc (in *RuntimeClassStrategyOptions) DeepCopy() *RuntimeClassStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) {\n\t*out = *in\n\tif in.SELinuxOptions != nil {\n\t\tin, out := &in.SELinuxOptions, &out.SELinuxOptions\n\t\t*out = new(corev1.SELinuxOptions)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxStrategyOptions.\nfunc (in *SELinuxStrategyOptions) DeepCopy() *SELinuxStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SELinuxStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) {\n\t*out = *in\n\tif in.Ranges != nil {\n\t\tin, out := &in.Ranges, &out.Ranges\n\t\t*out = make([]IDRange, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupplementalGroupsStrategyOptions.\nfunc (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrategyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SupplementalGroupsStrategyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Eviction) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Eviction) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Eviction) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudget) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodDisruptionBudget) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PodDisruptionBudget) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"policy\", Version: \"v1\", Kind: \"PodDisruptionBudget\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodDisruptionBudget) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudgetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodDisruptionBudgetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PodDisruptionBudgetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"policy\", Version: \"v1\", Kind: \"PodDisruptionBudgetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodDisruptionBudgetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodSecurityPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodSecurityPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodSecurityPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodSecurityPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodSecurityPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodSecurityPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=rbac.authorization.k8s.io\n\npackage v1 // import \"k8s.io/api/rbac/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_979ffd7b30c07419, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto\", fileDescriptor_979ffd7b30c07419)\n}\n\nvar fileDescriptor_979ffd7b30c07419 = []byte{\n\t// 809 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x56, 0xcf, 0x6b, 0xe3, 0x46,\n\t0x14, 0xf6, 0x38, 0x36, 0xb1, 0xc6, 0x35, 0x6e, 0xa6, 0xa1, 0x88, 0xb4, 0xc8, 0x41, 0x85, 0x12,\n\t0x68, 0x2b, 0x35, 0x69, 0x69, 0x03, 0x25, 0x87, 0x28, 0xa5, 0x25, 0x24, 0x4d, 0xc3, 0x84, 0xf6,\n\t0x50, 0x7a, 0xe8, 0x48, 0x9e, 0x28, 0x53, 0xeb, 0x17, 0x33, 0x92, 0x21, 0xf4, 0x52, 0x0a, 0x3d,\n\t0xec, 0x6d, 0x8f, 0xbb, 0x7f, 0xc1, 0x5e, 0x76, 0x8f, 0xfb, 0x17, 0xec, 0x25, 0xc7, 0x1c, 0x73,\n\t0x32, 0x1b, 0xed, 0x1f, 0xb2, 0x8b, 0x7e, 0x59, 0xfe, 0xa1, 0x6c, 0x7c, 0x32, 0x2c, 0x7b, 0xb2,\n\t0xe7, 0xbd, 0xef, 0x7d, 0xef, 0x9b, 0x4f, 0x7a, 0xcf, 0x86, 0x3f, 0x0c, 0x76, 0x85, 0xc6, 0x7c,\n\t0x7d, 0x10, 0x99, 0x94, 0x7b, 0x34, 0xa4, 0x42, 0x1f, 0x52, 0xaf, 0xef, 0x73, 0x3d, 0x4f, 0x90,\n\t0x80, 0xe9, 0xdc, 0x24, 0x96, 0x3e, 0xdc, 0xd6, 0x6d, 0xea, 0x51, 0x4e, 0x42, 0xda, 0xd7, 0x02,\n\t0xee, 0x87, 0x3e, 0x42, 0x19, 0x46, 0x23, 0x01, 0xd3, 0x12, 0x8c, 0x36, 0xdc, 0xde, 0xf8, 0xca,\n\t0x66, 0xe1, 0x45, 0x64, 0x6a, 0x96, 0xef, 0xea, 0xb6, 0x6f, 0xfb, 0x7a, 0x0a, 0x35, 0xa3, 0xf3,\n\t0xf4, 0x94, 0x1e, 0xd2, 0x6f, 0x19, 0xc5, 0xc6, 0xb7, 0x65, 0x1b, 0x97, 0x58, 0x17, 0xcc, 0xa3,\n\t0xfc, 0x52, 0x0f, 0x06, 0x76, 0x12, 0x10, 0xba, 0x4b, 0x43, 0x52, 0xd1, 0x78, 0x43, 0xbf, 0xab,\n\t0x8a, 0x47, 0x5e, 0xc8, 0x5c, 0x3a, 0x57, 0xf0, 0xdd, 0x7d, 0x05, 0xc2, 0xba, 0xa0, 0x2e, 0x99,\n\t0xad, 0x53, 0x1f, 0x03, 0xd8, 0xdd, 0xb7, 0x6d, 0x4e, 0x6d, 0x12, 0x32, 0xdf, 0xc3, 0x91, 0x43,\n\t0xd1, 0xff, 0x00, 0xae, 0x5b, 0x4e, 0x24, 0x42, 0xca, 0xb1, 0xef, 0xd0, 0x33, 0xea, 0x50, 0x2b,\n\t0xf4, 0xb9, 0x90, 0xc1, 0xe6, 0xca, 0x56, 0x7b, 0xe7, 0x1b, 0xad, 0x74, 0x65, 0xdc, 0x4b, 0x0b,\n\t0x06, 0x76, 0x12, 0x10, 0x5a, 0x72, 0x25, 0x6d, 0xb8, 0xad, 0x1d, 0x13, 0x93, 0x3a, 0x45, 0xad,\n\t0xf1, 0xe9, 0xd5, 0xa8, 0x57, 0x8b, 0x47, 0xbd, 0xf5, 0x83, 0x0a, 0x62, 0x5c, 0xd9, 0x4e, 0x7d,\n\t0x54, 0x87, 0xed, 0x09, 0x38, 0xfa, 0x0b, 0xb6, 0x12, 0xf2, 0x3e, 0x09, 0x89, 0x0c, 0x36, 0xc1,\n\t0x56, 0x7b, 0xe7, 0xeb, 0xc5, 0xa4, 0xfc, 0x6a, 0xfe, 0x4d, 0xad, 0xf0, 0x17, 0x1a, 0x12, 0x03,\n\t0xe5, 0x3a, 0x60, 0x19, 0xc3, 0x63, 0x56, 0x74, 0x00, 0x9b, 0x3c, 0x72, 0xa8, 0x90, 0xeb, 0xe9,\n\t0x4d, 0x15, 0x6d, 0xfe, 0xf9, 0x6b, 0xa7, 0xbe, 0xc3, 0xac, 0xcb, 0xc4, 0x28, 0xa3, 0x93, 0x93,\n\t0x35, 0x93, 0x93, 0xc0, 0x59, 0x2d, 0x32, 0x61, 0x97, 0x4c, 0x3b, 0x2a, 0xaf, 0xa4, 0x6a, 0x3f,\n\t0xab, 0xa2, 0x9b, 0x31, 0xdf, 0xf8, 0x28, 0x1e, 0xf5, 0x66, 0x9f, 0x08, 0x9e, 0x25, 0x54, 0x1f,\n\t0xd4, 0x21, 0x9a, 0xb0, 0xc6, 0x60, 0x5e, 0x9f, 0x79, 0xf6, 0x12, 0x1c, 0x3a, 0x84, 0x2d, 0x11,\n\t0xa5, 0x89, 0xc2, 0xa4, 0x4f, 0xaa, 0x6e, 0x75, 0x96, 0x61, 0x8c, 0x0f, 0x73, 0xb2, 0x56, 0x1e,\n\t0x10, 0x78, 0x5c, 0x8e, 0x7e, 0x82, 0xab, 0xdc, 0x77, 0x28, 0xa6, 0xe7, 0xb9, 0x3f, 0x95, 0x4c,\n\t0x38, 0x83, 0x18, 0xdd, 0x9c, 0x69, 0x35, 0x0f, 0xe0, 0xa2, 0x58, 0x7d, 0x01, 0xe0, 0xc7, 0xf3,\n\t0x5e, 0x1c, 0x33, 0x11, 0xa2, 0x3f, 0xe7, 0xfc, 0xd0, 0x16, 0x7c, 0x79, 0x99, 0xc8, 0xdc, 0x18,\n\t0x5f, 0xa0, 0x88, 0x4c, 0x78, 0x71, 0x04, 0x9b, 0x2c, 0xa4, 0x6e, 0x61, 0xc4, 0xe7, 0x55, 0xf2,\n\t0xe7, 0x85, 0x95, 0x6f, 0xcd, 0x61, 0x52, 0x8c, 0x33, 0x0e, 0xf5, 0x39, 0x80, 0xdd, 0x09, 0xf0,\n\t0x12, 0xe4, 0xff, 0x38, 0x2d, 0xbf, 0x77, 0x9f, 0xfc, 0x6a, 0xdd, 0xaf, 0x01, 0x84, 0xe5, 0x48,\n\t0xa0, 0x1e, 0x6c, 0x0e, 0x29, 0x37, 0xb3, 0x5d, 0x21, 0x19, 0x52, 0x82, 0xff, 0x3d, 0x09, 0xe0,\n\t0x2c, 0x8e, 0xbe, 0x80, 0x12, 0x09, 0xd8, 0xcf, 0xdc, 0x8f, 0x82, 0xac, 0xb3, 0x64, 0x74, 0xe2,\n\t0x51, 0x4f, 0xda, 0x3f, 0x3d, 0xcc, 0x82, 0xb8, 0xcc, 0x27, 0x60, 0x4e, 0x85, 0x1f, 0x71, 0x8b,\n\t0x0a, 0x79, 0xa5, 0x04, 0xe3, 0x22, 0x88, 0xcb, 0x3c, 0xfa, 0x1e, 0x76, 0x8a, 0xc3, 0x09, 0x71,\n\t0xa9, 0x90, 0x1b, 0x69, 0xc1, 0x5a, 0x3c, 0xea, 0x75, 0xf0, 0x64, 0x02, 0x4f, 0xe3, 0xd0, 0x1e,\n\t0xec, 0x7a, 0xbe, 0x57, 0x40, 0x7e, 0xc3, 0xc7, 0x42, 0x6e, 0xa6, 0xa5, 0xe9, 0x2c, 0x9e, 0x4c,\n\t0xa7, 0xf0, 0x2c, 0x56, 0x7d, 0x06, 0x60, 0xe3, 0x1d, 0xda, 0x4f, 0xea, 0x7f, 0x75, 0xd8, 0x7e,\n\t0xef, 0x97, 0x46, 0x32, 0x6e, 0xcb, 0xdd, 0x16, 0x8b, 0x8c, 0xdb, 0xfd, 0x6b, 0xe2, 0x09, 0x80,\n\t0xad, 0x25, 0xed, 0x87, 0xbd, 0x69, 0xc1, 0xf2, 0x9d, 0x82, 0xab, 0x95, 0xfe, 0x03, 0x0b, 0xd7,\n\t0xd1, 0x97, 0xb0, 0x55, 0xcc, 0x74, 0xaa, 0x53, 0x2a, 0xfb, 0x16, 0x63, 0x8f, 0xc7, 0x08, 0xb4,\n\t0x09, 0x1b, 0x03, 0xe6, 0xf5, 0xe5, 0x7a, 0x8a, 0xfc, 0x20, 0x47, 0x36, 0x8e, 0x98, 0xd7, 0xc7,\n\t0x69, 0x26, 0x41, 0x78, 0xc4, 0xcd, 0x7e, 0x56, 0x27, 0x10, 0xc9, 0x34, 0xe3, 0x34, 0xa3, 0x3e,\n\t0x05, 0x70, 0x35, 0x7f, 0x7b, 0xc6, 0x7c, 0xe0, 0x4e, 0xbe, 0x49, 0x7d, 0xf5, 0x45, 0xf4, 0xbd,\n\t0xbd, 0x3b, 0xd2, 0xa1, 0x94, 0x7c, 0x8a, 0x80, 0x58, 0x54, 0x6e, 0xa4, 0xb0, 0xb5, 0x1c, 0x26,\n\t0x9d, 0x14, 0x09, 0x5c, 0x62, 0x8c, 0xdd, 0xab, 0x5b, 0xa5, 0x76, 0x7d, 0xab, 0xd4, 0x6e, 0x6e,\n\t0x95, 0xda, 0xbf, 0xb1, 0x02, 0xae, 0x62, 0x05, 0x5c, 0xc7, 0x0a, 0xb8, 0x89, 0x15, 0xf0, 0x32,\n\t0x56, 0xc0, 0xc3, 0x57, 0x4a, 0xed, 0x0f, 0x34, 0xff, 0x8f, 0xf5, 0x4d, 0x00, 0x00, 0x00, 0xff,\n\t0xff, 0xec, 0x4f, 0xa6, 0x29, 0xdf, 0x0a, 0x00, 0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to. '*' represents all resources.\n  // +optional\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  repeated string resourceNames = 4;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  repeated string nonResourceURLs = 5;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\n// +structType=atomic\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\n// +structType=atomic\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIGroup holds the API group of the referenced subject.\n  // Defaults to \"\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n  // +optional\n  optional string apiGroup = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to. '*' represents all resources.\n\t// +optional\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,5,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\n// +structType=atomic\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIGroup holds the API group of the referenced subject.\n\t// Defaults to \"\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,2,opt.name=apiGroup\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\n// +structType=atomic\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBindingList is a collection of RoleBindings\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleList is a collection of Roles\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleList is a collection of ClusterRoles\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":          \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":      \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiGroup\":  \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n\t\"name\":      \"Name of the object being referenced.\",\n\t\"namespace\": \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]metav1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=rbac.authorization.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/rbac/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_b59b0bd5e7cb9590, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1alpha1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1alpha1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1alpha1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1alpha1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1alpha1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1alpha1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1alpha1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1alpha1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1alpha1/generated.proto\", fileDescriptor_b59b0bd5e7cb9590)\n}\n\nvar fileDescriptor_b59b0bd5e7cb9590 = []byte{\n\t// 833 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xbf, 0x8f, 0xe3, 0x44,\n\t0x14, 0xce, 0x64, 0x13, 0x36, 0x99, 0x25, 0x0a, 0x37, 0x9c, 0x90, 0xb5, 0x42, 0xce, 0x62, 0x81,\n\t0x74, 0x88, 0xc3, 0x66, 0x17, 0x04, 0x34, 0x20, 0xc5, 0x57, 0xa0, 0x40, 0xd8, 0x5b, 0xe6, 0xc4,\n\t0x15, 0x88, 0x82, 0x89, 0x33, 0xe7, 0x0c, 0xb1, 0x3d, 0xd6, 0x8c, 0x1d, 0xe9, 0x44, 0x43, 0x43,\n\t0x8b, 0x68, 0x28, 0xe8, 0x69, 0x69, 0xa0, 0xe4, 0x1f, 0x58, 0xba, 0x2b, 0xb7, 0x8a, 0x58, 0xf3,\n\t0x87, 0x80, 0x3c, 0xb6, 0x63, 0xe7, 0x17, 0x49, 0x15, 0x09, 0x89, 0x2a, 0x99, 0xf7, 0xbe, 0xf7,\n\t0xbd, 0xf7, 0xbe, 0x99, 0xf7, 0x12, 0xd8, 0x9f, 0xbe, 0x2f, 0x4d, 0xc6, 0xad, 0x69, 0x3c, 0xa2,\n\t0x22, 0xa0, 0x11, 0x95, 0xd6, 0x8c, 0x06, 0x63, 0x2e, 0xac, 0xdc, 0x41, 0x42, 0x66, 0x89, 0x11,\n\t0x71, 0xac, 0xd9, 0x39, 0xf1, 0xc2, 0x09, 0x39, 0xb7, 0x5c, 0x1a, 0x50, 0x41, 0x22, 0x3a, 0x36,\n\t0x43, 0xc1, 0x23, 0x8e, 0xb4, 0x0c, 0x69, 0x92, 0x90, 0x99, 0x29, 0xd2, 0x2c, 0x90, 0xa7, 0x6f,\n\t0xba, 0x2c, 0x9a, 0xc4, 0x23, 0xd3, 0xe1, 0xbe, 0xe5, 0x72, 0x97, 0x5b, 0x2a, 0x60, 0x14, 0x3f,\n\t0x51, 0x27, 0x75, 0x50, 0xdf, 0x32, 0xa2, 0xd3, 0x77, 0xca, 0x94, 0x3e, 0x71, 0x26, 0x2c, 0xa0,\n\t0xe2, 0xa9, 0x15, 0x4e, 0xdd, 0xd4, 0x20, 0x2d, 0x9f, 0x46, 0xc4, 0x9a, 0xad, 0xa5, 0x3f, 0xb5,\n\t0xb6, 0x45, 0x89, 0x38, 0x88, 0x98, 0x4f, 0xd7, 0x02, 0xde, 0xdd, 0x15, 0x20, 0x9d, 0x09, 0xf5,\n\t0xc9, 0x6a, 0x9c, 0xf1, 0x13, 0x80, 0xdd, 0xbe, 0xeb, 0x0a, 0xea, 0x92, 0x88, 0xf1, 0x00, 0xc7,\n\t0x1e, 0x45, 0xdf, 0x01, 0x78, 0xd7, 0xf1, 0x62, 0x19, 0x51, 0x81, 0xb9, 0x47, 0x1f, 0x51, 0x8f,\n\t0x3a, 0x11, 0x17, 0x52, 0x03, 0x67, 0x47, 0xf7, 0x4e, 0x2e, 0xde, 0x36, 0x4b, 0x6d, 0x16, 0xb9,\n\t0xcc, 0x70, 0xea, 0xa6, 0x06, 0x69, 0xa6, 0x2d, 0x99, 0xb3, 0x73, 0x73, 0x48, 0x46, 0xd4, 0x2b,\n\t0x62, 0xed, 0x97, 0xaf, 0xe7, 0xbd, 0x5a, 0x32, 0xef, 0xdd, 0x7d, 0xb0, 0x81, 0x18, 0x6f, 0x4c,\n\t0x67, 0xfc, 0x5c, 0x87, 0x27, 0x15, 0x38, 0xfa, 0x0a, 0xb6, 0x52, 0xf2, 0x31, 0x89, 0x88, 0x06,\n\t0xce, 0xc0, 0xbd, 0x93, 0x8b, 0xb7, 0xf6, 0x2b, 0xe5, 0xe1, 0xe8, 0x6b, 0xea, 0x44, 0x9f, 0xd2,\n\t0x88, 0xd8, 0x28, 0xaf, 0x03, 0x96, 0x36, 0xbc, 0x60, 0x45, 0x03, 0xd8, 0x14, 0xb1, 0x47, 0xa5,\n\t0x56, 0x57, 0x9d, 0xbe, 0x6a, 0x6e, 0x7b, 0x05, 0xe6, 0x15, 0xf7, 0x98, 0xf3, 0x34, 0x95, 0xcb,\n\t0xee, 0xe4, 0x94, 0xcd, 0xf4, 0x24, 0x71, 0xc6, 0x80, 0x26, 0xb0, 0x4b, 0x96, 0x75, 0xd5, 0x8e,\n\t0x54, 0xcd, 0xaf, 0x6f, 0x27, 0x5d, 0xb9, 0x08, 0xfb, 0xc5, 0x64, 0xde, 0x5b, 0xbd, 0x1d, 0xbc,\n\t0x4a, 0x6b, 0xfc, 0x58, 0x87, 0xa8, 0x22, 0x93, 0xcd, 0x82, 0x31, 0x0b, 0xdc, 0x03, 0xa8, 0xf5,\n\t0x10, 0xb6, 0x64, 0xac, 0x1c, 0x85, 0x60, 0xaf, 0x6c, 0xef, 0xed, 0x51, 0x86, 0xb4, 0x5f, 0xc8,\n\t0x29, 0x5b, 0xb9, 0x41, 0xe2, 0x05, 0x09, 0x1a, 0xc2, 0x63, 0xc1, 0x3d, 0x8a, 0xe9, 0x93, 0x5c,\n\t0xab, 0x7f, 0xe1, 0xc3, 0x19, 0xd0, 0xee, 0xe6, 0x7c, 0xc7, 0xb9, 0x01, 0x17, 0x14, 0xc6, 0x1f,\n\t0x00, 0xbe, 0xb4, 0xae, 0xcb, 0x90, 0xc9, 0x08, 0x7d, 0xb9, 0xa6, 0x8d, 0xb9, 0xe7, 0xa3, 0x66,\n\t0x32, 0x53, 0x66, 0xd1, 0x46, 0x61, 0xa9, 0xe8, 0xf2, 0x19, 0x6c, 0xb2, 0x88, 0xfa, 0x85, 0x28,\n\t0xf7, 0xb7, 0x37, 0xb1, 0x5e, 0x5e, 0xf9, 0x9a, 0x06, 0x29, 0x05, 0xce, 0x98, 0x8c, 0xdf, 0x01,\n\t0xec, 0x56, 0xc0, 0x07, 0x68, 0xe2, 0xe3, 0xe5, 0x26, 0x5e, 0xdb, 0xaf, 0x89, 0xcd, 0xd5, 0xff,\n\t0x0d, 0x20, 0x2c, 0x07, 0x06, 0xf5, 0x60, 0x73, 0x46, 0xc5, 0x28, 0xdb, 0x27, 0x6d, 0xbb, 0x9d,\n\t0xe2, 0x1f, 0xa7, 0x06, 0x9c, 0xd9, 0xd1, 0x1b, 0xb0, 0x4d, 0x42, 0xf6, 0x91, 0xe0, 0x71, 0x28,\n\t0xb5, 0x23, 0x05, 0xea, 0x24, 0xf3, 0x5e, 0xbb, 0x7f, 0x35, 0xc8, 0x8c, 0xb8, 0xf4, 0xa7, 0x60,\n\t0x41, 0x25, 0x8f, 0x85, 0x43, 0xa5, 0xd6, 0x28, 0xc1, 0xb8, 0x30, 0xe2, 0xd2, 0x8f, 0xde, 0x83,\n\t0x9d, 0xe2, 0x70, 0x49, 0x7c, 0x2a, 0xb5, 0xa6, 0x0a, 0xb8, 0x93, 0xcc, 0x7b, 0x1d, 0x5c, 0x75,\n\t0xe0, 0x65, 0x1c, 0xfa, 0x00, 0x76, 0x03, 0x1e, 0x14, 0x90, 0xcf, 0xf1, 0x50, 0x6a, 0xcf, 0xa9,\n\t0x50, 0x35, 0xa3, 0x97, 0xcb, 0x2e, 0xbc, 0x8a, 0x35, 0x7e, 0x03, 0xb0, 0xf1, 0x9f, 0xdb, 0x61,\n\t0xc6, 0xf7, 0x75, 0x78, 0xf2, 0xff, 0x4a, 0xa9, 0xac, 0x94, 0x74, 0x0c, 0x0f, 0xbb, 0x4b, 0xf6,\n\t0x1f, 0xc3, 0xdd, 0x4b, 0xe4, 0x17, 0x00, 0x5b, 0x07, 0xda, 0x1e, 0x0f, 0x96, 0xcb, 0xd6, 0x77,\n\t0x94, 0xbd, 0xb9, 0xde, 0x6f, 0x60, 0x71, 0x03, 0xe8, 0x3e, 0x6c, 0x15, 0x13, 0xaf, 0xaa, 0x6d,\n\t0x97, 0xd9, 0x8b, 0xa5, 0x80, 0x17, 0x08, 0x74, 0x06, 0x1b, 0x53, 0x16, 0x8c, 0xb5, 0xba, 0x42,\n\t0x3e, 0x9f, 0x23, 0x1b, 0x9f, 0xb0, 0x60, 0x8c, 0x95, 0x27, 0x45, 0x04, 0xc4, 0xcf, 0x7e, 0x92,\n\t0x2b, 0x88, 0x74, 0xd6, 0xb1, 0xf2, 0x18, 0xbf, 0x02, 0x78, 0x9c, 0xbf, 0xa7, 0x05, 0x1f, 0xd8,\n\t0xca, 0x77, 0x01, 0x21, 0x09, 0xd9, 0x63, 0x2a, 0x24, 0xe3, 0x41, 0x9e, 0x77, 0xf1, 0xd2, 0xfb,\n\t0x57, 0x83, 0xdc, 0x83, 0x2b, 0xa8, 0xdd, 0x35, 0x20, 0x0b, 0xb6, 0xd3, 0x4f, 0x19, 0x12, 0x87,\n\t0x6a, 0x0d, 0x05, 0xbb, 0x93, 0xc3, 0xda, 0x97, 0x85, 0x03, 0x97, 0x18, 0xfb, 0xc3, 0xeb, 0x5b,\n\t0xbd, 0xf6, 0xec, 0x56, 0xaf, 0xdd, 0xdc, 0xea, 0xb5, 0x6f, 0x13, 0x1d, 0x5c, 0x27, 0x3a, 0x78,\n\t0x96, 0xe8, 0xe0, 0x26, 0xd1, 0xc1, 0x9f, 0x89, 0x0e, 0x7e, 0xf8, 0x4b, 0xaf, 0x7d, 0xa1, 0x6d,\n\t0xfb, 0x17, 0xfc, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x0e, 0xba, 0xc2, 0x39, 0x0b, 0x00,\n\t0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1alpha1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  repeated string apiGroups = 3;\n\n  // Resources is a list of resources this rule applies to. '*' represents all resources.\n  // +optional\n  repeated string resources = 4;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  repeated string resourceNames = 5;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  repeated string nonResourceURLs = 6;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIVersion holds the API group and version of the referenced subject.\n  // Defaults to \"v1\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional string apiVersion = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,3,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to. '*' represents all resources.\n\t// +optional\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,4,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,5,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIVersion holds the API group and version of the referenced subject.\n\t// Defaults to \"v1\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt.name=apiVersion\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleList is a collection of Roles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":           \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":       \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiVersion\": \"APIVersion holds the API group and version of the referenced subject. Defaults to \\\"v1\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io/v1alpha1\\\" for User and Group subjects.\",\n\t\"name\":       \"Name of the object being referenced.\",\n\t\"namespace\":  \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]v1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=rbac.authorization.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/rbac/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99f6bec96facc83d, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1beta1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1beta1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1beta1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1beta1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1beta1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1beta1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1beta1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1beta1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1beta1/generated.proto\", fileDescriptor_99f6bec96facc83d)\n}\n\nvar fileDescriptor_99f6bec96facc83d = []byte{\n\t// 812 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xbd, 0x6f, 0x2b, 0x45,\n\t0x10, 0xf7, 0x3a, 0xb6, 0xe2, 0x5b, 0x63, 0x99, 0xb7, 0x3c, 0xf1, 0x4e, 0x11, 0x9c, 0x2d, 0x43,\n\t0x11, 0xe9, 0xc1, 0x1d, 0x79, 0x20, 0xa0, 0x89, 0x44, 0x8e, 0x02, 0xa2, 0x04, 0x13, 0x6d, 0x04,\n\t0x05, 0xa2, 0x60, 0xef, 0xbc, 0xb9, 0x2c, 0xbe, 0x2f, 0xed, 0xde, 0x59, 0x8a, 0x68, 0x68, 0xe8,\n\t0x28, 0x90, 0xa8, 0x68, 0xa9, 0xa9, 0x28, 0xf9, 0x0b, 0x5c, 0xa6, 0x4c, 0x65, 0x91, 0xe3, 0x0f,\n\t0x01, 0xed, 0x7d, 0xf8, 0xfc, 0x75, 0x89, 0x2b, 0x4b, 0x48, 0xaf, 0xb2, 0x77, 0xe6, 0x37, 0xbf,\n\t0x99, 0xf9, 0xed, 0xce, 0xd8, 0xf0, 0x93, 0xf1, 0xc7, 0x42, 0x67, 0x81, 0x31, 0x8e, 0x2d, 0xca,\n\t0x7d, 0x1a, 0x51, 0x61, 0x4c, 0xa8, 0x3f, 0x0a, 0xb8, 0x91, 0x3b, 0x48, 0xc8, 0x0c, 0x6e, 0x11,\n\t0xdb, 0x98, 0x1c, 0x59, 0x34, 0x22, 0x47, 0x86, 0x43, 0x7d, 0xca, 0x49, 0x44, 0x47, 0x7a, 0xc8,\n\t0x83, 0x28, 0x40, 0xcf, 0x32, 0xa0, 0x4e, 0x42, 0xa6, 0x4b, 0xa0, 0x9e, 0x03, 0x0f, 0xde, 0x75,\n\t0x58, 0x74, 0x1d, 0x5b, 0xba, 0x1d, 0x78, 0x86, 0x13, 0x38, 0x81, 0x91, 0xe2, 0xad, 0xf8, 0x2a,\n\t0x3d, 0xa5, 0x87, 0xf4, 0x5b, 0xc6, 0x73, 0xf0, 0x41, 0x99, 0xd0, 0x23, 0xf6, 0x35, 0xf3, 0x29,\n\t0xbf, 0x31, 0xc2, 0xb1, 0x23, 0x0d, 0xc2, 0xf0, 0x68, 0x44, 0x8c, 0xc9, 0x5a, 0xf6, 0x03, 0xa3,\n\t0x2a, 0x8a, 0xc7, 0x7e, 0xc4, 0x3c, 0xba, 0x16, 0xf0, 0xe1, 0x63, 0x01, 0xc2, 0xbe, 0xa6, 0x1e,\n\t0x59, 0x8d, 0x1b, 0xfc, 0x06, 0x60, 0xf7, 0xc4, 0x71, 0x38, 0x75, 0x48, 0xc4, 0x02, 0x1f, 0xc7,\n\t0x2e, 0x45, 0x3f, 0x01, 0xf8, 0xd4, 0x76, 0x63, 0x11, 0x51, 0x8e, 0x03, 0x97, 0x5e, 0x52, 0x97,\n\t0xda, 0x51, 0xc0, 0x85, 0x0a, 0xfa, 0x7b, 0x87, 0xed, 0x17, 0xef, 0xeb, 0xa5, 0x34, 0xf3, 0x5c,\n\t0x7a, 0x38, 0x76, 0xa4, 0x41, 0xe8, 0xb2, 0x25, 0x7d, 0x72, 0xa4, 0x9f, 0x13, 0x8b, 0xba, 0x45,\n\t0xac, 0xf9, 0xc6, 0x74, 0xd6, 0xab, 0x25, 0xb3, 0xde, 0xd3, 0x4f, 0x37, 0x10, 0xe3, 0x8d, 0xe9,\n\t0x06, 0xbf, 0xd7, 0x61, 0x7b, 0x01, 0x8e, 0xbe, 0x83, 0x2d, 0x49, 0x3e, 0x22, 0x11, 0x51, 0x41,\n\t0x1f, 0x1c, 0xb6, 0x5f, 0xbc, 0xb7, 0x5d, 0x29, 0x5f, 0x5a, 0xdf, 0x53, 0x3b, 0xfa, 0x82, 0x46,\n\t0xc4, 0x44, 0x79, 0x1d, 0xb0, 0xb4, 0xe1, 0x39, 0x2b, 0xfa, 0x1c, 0x36, 0x79, 0xec, 0x52, 0xa1,\n\t0xd6, 0xd3, 0x4e, 0xdf, 0xd2, 0x2b, 0x1e, 0x81, 0x7e, 0x11, 0xb8, 0xcc, 0xbe, 0x91, 0x6a, 0x99,\n\t0x9d, 0x9c, 0xb1, 0x29, 0x4f, 0x02, 0x67, 0x04, 0xc8, 0x81, 0x5d, 0xb2, 0x2c, 0xab, 0xba, 0x97,\n\t0x96, 0x7c, 0x58, 0xc9, 0xb9, 0x72, 0x0d, 0xe6, 0x6b, 0xc9, 0xac, 0xb7, 0x7a, 0x37, 0x78, 0x95,\n\t0x75, 0xf0, 0x6b, 0x1d, 0xa2, 0x05, 0x91, 0x4c, 0xe6, 0x8f, 0x98, 0xef, 0xec, 0x40, 0xab, 0x21,\n\t0x6c, 0x89, 0x38, 0x75, 0x14, 0x72, 0xf5, 0x2b, 0x5b, 0xbb, 0xcc, 0x80, 0xe6, 0xab, 0x39, 0x63,\n\t0x2b, 0x37, 0x08, 0x3c, 0xe7, 0x40, 0x67, 0x70, 0x9f, 0x07, 0x2e, 0xc5, 0xf4, 0x2a, 0x57, 0xaa,\n\t0x9a, 0x0e, 0x67, 0x38, 0xb3, 0x9b, 0xd3, 0xed, 0xe7, 0x06, 0x5c, 0x30, 0x0c, 0xa6, 0x00, 0xbe,\n\t0xbe, 0xae, 0xca, 0x39, 0x13, 0x11, 0xfa, 0x76, 0x4d, 0x19, 0x7d, 0xcb, 0x07, 0xcd, 0x44, 0xa6,\n\t0xcb, 0xbc, 0x8b, 0xc2, 0xb2, 0xa0, 0xca, 0x05, 0x6c, 0xb2, 0x88, 0x7a, 0x85, 0x24, 0xcf, 0x2b,\n\t0x7b, 0x58, 0xaf, 0xae, 0x7c, 0x49, 0xa7, 0x92, 0x01, 0x67, 0x44, 0x83, 0xbf, 0x00, 0xec, 0x2e,\n\t0x80, 0x77, 0xd0, 0xc3, 0xe9, 0x72, 0x0f, 0x6f, 0x6f, 0xd5, 0xc3, 0xe6, 0xe2, 0xff, 0x05, 0x10,\n\t0x96, 0xb3, 0x82, 0x7a, 0xb0, 0x39, 0xa1, 0xdc, 0xca, 0x36, 0x89, 0x62, 0x2a, 0x12, 0xff, 0xb5,\n\t0x34, 0xe0, 0xcc, 0x8e, 0x9e, 0x43, 0x85, 0x84, 0xec, 0x33, 0x1e, 0xc4, 0x61, 0x96, 0x5e, 0x31,\n\t0x3b, 0xc9, 0xac, 0xa7, 0x9c, 0x5c, 0x9c, 0x66, 0x46, 0x5c, 0xfa, 0x25, 0x98, 0x53, 0x11, 0xc4,\n\t0xdc, 0xa6, 0x42, 0xdd, 0x2b, 0xc1, 0xb8, 0x30, 0xe2, 0xd2, 0x8f, 0x3e, 0x82, 0x9d, 0xe2, 0x30,\n\t0x24, 0x1e, 0x15, 0x6a, 0x23, 0x0d, 0x78, 0x92, 0xcc, 0x7a, 0x1d, 0xbc, 0xe8, 0xc0, 0xcb, 0x38,\n\t0x74, 0x0c, 0xbb, 0x7e, 0xe0, 0x17, 0x90, 0xaf, 0xf0, 0xb9, 0x50, 0x9b, 0x69, 0x68, 0x3a, 0x9f,\n\t0xc3, 0x65, 0x17, 0x5e, 0xc5, 0x0e, 0xfe, 0x04, 0xb0, 0xf1, 0x7f, 0xdb, 0x5e, 0x83, 0x9f, 0xeb,\n\t0xb0, 0xfd, 0x72, 0x9b, 0xcc, 0xb7, 0x89, 0x1c, 0xc1, 0xdd, 0xae, 0x91, 0xad, 0x47, 0xf0, 0xf1,\n\t0xfd, 0xf1, 0x07, 0x80, 0xad, 0x1d, 0x2d, 0x0e, 0x73, 0xb9, 0xea, 0x37, 0x1f, 0xae, 0x7a, 0x73,\n\t0xb9, 0x3f, 0xc0, 0x42, 0x7f, 0xf4, 0x0e, 0x6c, 0x15, 0xc3, 0x9e, 0x16, 0xab, 0x94, 0xc9, 0x8b,\n\t0x7d, 0x80, 0xe7, 0x08, 0xd4, 0x87, 0x8d, 0x31, 0xf3, 0x47, 0x6a, 0x3d, 0x45, 0xbe, 0x92, 0x23,\n\t0x1b, 0x67, 0xcc, 0x1f, 0xe1, 0xd4, 0x23, 0x11, 0x3e, 0xf1, 0xb2, 0x1f, 0xe2, 0x05, 0x84, 0x1c,\n\t0x73, 0x9c, 0x7a, 0xa4, 0x56, 0xfb, 0xf9, 0x63, 0x9a, 0xf3, 0x81, 0x4a, 0xbe, 0xc5, 0xfa, 0xea,\n\t0xdb, 0xd4, 0xf7, 0x70, 0x76, 0x64, 0x40, 0x45, 0x7e, 0x8a, 0x90, 0xd8, 0x54, 0x6d, 0xa4, 0xb0,\n\t0x27, 0x39, 0x4c, 0x19, 0x16, 0x0e, 0x5c, 0x62, 0xcc, 0xe3, 0xe9, 0xbd, 0x56, 0xbb, 0xbd, 0xd7,\n\t0x6a, 0x77, 0xf7, 0x5a, 0xed, 0xc7, 0x44, 0x03, 0xd3, 0x44, 0x03, 0xb7, 0x89, 0x06, 0xee, 0x12,\n\t0x0d, 0xfc, 0x9d, 0x68, 0xe0, 0x97, 0x7f, 0xb4, 0xda, 0x37, 0xcf, 0x2a, 0xfe, 0xf2, 0xfe, 0x17,\n\t0x00, 0x00, 0xff, 0xff, 0xf7, 0xdd, 0xcc, 0x2b, 0x25, 0x0b, 0x00, 0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1beta1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups.\n  // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  repeated string resourceNames = 4;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  repeated string nonResourceURLs = 5;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIGroup holds the API group of the referenced subject.\n  // Defaults to \"\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n  // +optional\n  optional string apiGroup = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups.\n\t// '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,5,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIGroup holds the API group of the referenced subject.\n\t// Defaults to \"\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,2,opt.name=apiGroup\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,Role\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleBinding\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleBindingList\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleList\n\n// RoleList is a collection of Roles\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRole\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleBinding\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleBindingList\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleList\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":          \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":      \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiGroup\":  \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n\t\"name\":      \"Name of the object being referenced.\",\n\t\"namespace\": \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]v1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRole) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRole) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRole) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRole\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRole) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleBinding) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleBinding\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleBindingList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleBindingList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Role) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Role) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Role) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"Role\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Role) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleBinding) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleBinding\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleBindingList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleBindingList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n\n// +groupName=resource.k8s.io\n\n// Package v1alpha2 is the v1alpha2 version of the resource API.\npackage v1alpha2 // import \"k8s.io/api/resource/v1alpha2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/resource/v1alpha2/generated.proto\n\npackage v1alpha2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AllocationResult) Reset()      { *m = AllocationResult{} }\nfunc (*AllocationResult) ProtoMessage() {}\nfunc (*AllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{0}\n}\nfunc (m *AllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocationResult.Merge(m, src)\n}\nfunc (m *AllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocationResult proto.InternalMessageInfo\n\nfunc (m *PodSchedulingContext) Reset()      { *m = PodSchedulingContext{} }\nfunc (*PodSchedulingContext) ProtoMessage() {}\nfunc (*PodSchedulingContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{1}\n}\nfunc (m *PodSchedulingContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingContext.Merge(m, src)\n}\nfunc (m *PodSchedulingContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingContext proto.InternalMessageInfo\n\nfunc (m *PodSchedulingContextList) Reset()      { *m = PodSchedulingContextList{} }\nfunc (*PodSchedulingContextList) ProtoMessage() {}\nfunc (*PodSchedulingContextList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{2}\n}\nfunc (m *PodSchedulingContextList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingContextList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingContextList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingContextList.Merge(m, src)\n}\nfunc (m *PodSchedulingContextList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingContextList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingContextList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingContextList proto.InternalMessageInfo\n\nfunc (m *PodSchedulingContextSpec) Reset()      { *m = PodSchedulingContextSpec{} }\nfunc (*PodSchedulingContextSpec) ProtoMessage() {}\nfunc (*PodSchedulingContextSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{3}\n}\nfunc (m *PodSchedulingContextSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingContextSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingContextSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingContextSpec.Merge(m, src)\n}\nfunc (m *PodSchedulingContextSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingContextSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingContextSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingContextSpec proto.InternalMessageInfo\n\nfunc (m *PodSchedulingContextStatus) Reset()      { *m = PodSchedulingContextStatus{} }\nfunc (*PodSchedulingContextStatus) ProtoMessage() {}\nfunc (*PodSchedulingContextStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{4}\n}\nfunc (m *PodSchedulingContextStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingContextStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingContextStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingContextStatus.Merge(m, src)\n}\nfunc (m *PodSchedulingContextStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingContextStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingContextStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingContextStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaim) Reset()      { *m = ResourceClaim{} }\nfunc (*ResourceClaim) ProtoMessage() {}\nfunc (*ResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{5}\n}\nfunc (m *ResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaim.Merge(m, src)\n}\nfunc (m *ResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaim proto.InternalMessageInfo\n\nfunc (m *ResourceClaimConsumerReference) Reset()      { *m = ResourceClaimConsumerReference{} }\nfunc (*ResourceClaimConsumerReference) ProtoMessage() {}\nfunc (*ResourceClaimConsumerReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{6}\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimConsumerReference.Merge(m, src)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimConsumerReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimConsumerReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimConsumerReference proto.InternalMessageInfo\n\nfunc (m *ResourceClaimList) Reset()      { *m = ResourceClaimList{} }\nfunc (*ResourceClaimList) ProtoMessage() {}\nfunc (*ResourceClaimList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{7}\n}\nfunc (m *ResourceClaimList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimList.Merge(m, src)\n}\nfunc (m *ResourceClaimList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimParametersReference) Reset()      { *m = ResourceClaimParametersReference{} }\nfunc (*ResourceClaimParametersReference) ProtoMessage() {}\nfunc (*ResourceClaimParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{8}\n}\nfunc (m *ResourceClaimParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimParametersReference.Merge(m, src)\n}\nfunc (m *ResourceClaimParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimParametersReference proto.InternalMessageInfo\n\nfunc (m *ResourceClaimSchedulingStatus) Reset()      { *m = ResourceClaimSchedulingStatus{} }\nfunc (*ResourceClaimSchedulingStatus) ProtoMessage() {}\nfunc (*ResourceClaimSchedulingStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{9}\n}\nfunc (m *ResourceClaimSchedulingStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimSchedulingStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimSchedulingStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimSchedulingStatus.Merge(m, src)\n}\nfunc (m *ResourceClaimSchedulingStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimSchedulingStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimSchedulingStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimSchedulingStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaimSpec) Reset()      { *m = ResourceClaimSpec{} }\nfunc (*ResourceClaimSpec) ProtoMessage() {}\nfunc (*ResourceClaimSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{10}\n}\nfunc (m *ResourceClaimSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimSpec proto.InternalMessageInfo\n\nfunc (m *ResourceClaimStatus) Reset()      { *m = ResourceClaimStatus{} }\nfunc (*ResourceClaimStatus) ProtoMessage() {}\nfunc (*ResourceClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{11}\n}\nfunc (m *ResourceClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimStatus.Merge(m, src)\n}\nfunc (m *ResourceClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplate) Reset()      { *m = ResourceClaimTemplate{} }\nfunc (*ResourceClaimTemplate) ProtoMessage() {}\nfunc (*ResourceClaimTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{12}\n}\nfunc (m *ResourceClaimTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplate.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplate proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateList) Reset()      { *m = ResourceClaimTemplateList{} }\nfunc (*ResourceClaimTemplateList) ProtoMessage() {}\nfunc (*ResourceClaimTemplateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{13}\n}\nfunc (m *ResourceClaimTemplateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateList.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateSpec) Reset()      { *m = ResourceClaimTemplateSpec{} }\nfunc (*ResourceClaimTemplateSpec) ProtoMessage() {}\nfunc (*ResourceClaimTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{14}\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateSpec proto.InternalMessageInfo\n\nfunc (m *ResourceClass) Reset()      { *m = ResourceClass{} }\nfunc (*ResourceClass) ProtoMessage() {}\nfunc (*ResourceClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{15}\n}\nfunc (m *ResourceClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClass.Merge(m, src)\n}\nfunc (m *ResourceClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClass proto.InternalMessageInfo\n\nfunc (m *ResourceClassList) Reset()      { *m = ResourceClassList{} }\nfunc (*ResourceClassList) ProtoMessage() {}\nfunc (*ResourceClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{16}\n}\nfunc (m *ResourceClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClassList.Merge(m, src)\n}\nfunc (m *ResourceClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClassList proto.InternalMessageInfo\n\nfunc (m *ResourceClassParametersReference) Reset()      { *m = ResourceClassParametersReference{} }\nfunc (*ResourceClassParametersReference) ProtoMessage() {}\nfunc (*ResourceClassParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{17}\n}\nfunc (m *ResourceClassParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClassParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClassParametersReference.Merge(m, src)\n}\nfunc (m *ResourceClassParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClassParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClassParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClassParametersReference proto.InternalMessageInfo\n\nfunc (m *ResourceHandle) Reset()      { *m = ResourceHandle{} }\nfunc (*ResourceHandle) ProtoMessage() {}\nfunc (*ResourceHandle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3add37bbd52889e0, []int{18}\n}\nfunc (m *ResourceHandle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceHandle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceHandle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceHandle.Merge(m, src)\n}\nfunc (m *ResourceHandle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceHandle) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceHandle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceHandle proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AllocationResult)(nil), \"k8s.io.api.resource.v1alpha2.AllocationResult\")\n\tproto.RegisterType((*PodSchedulingContext)(nil), \"k8s.io.api.resource.v1alpha2.PodSchedulingContext\")\n\tproto.RegisterType((*PodSchedulingContextList)(nil), \"k8s.io.api.resource.v1alpha2.PodSchedulingContextList\")\n\tproto.RegisterType((*PodSchedulingContextSpec)(nil), \"k8s.io.api.resource.v1alpha2.PodSchedulingContextSpec\")\n\tproto.RegisterType((*PodSchedulingContextStatus)(nil), \"k8s.io.api.resource.v1alpha2.PodSchedulingContextStatus\")\n\tproto.RegisterType((*ResourceClaim)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaim\")\n\tproto.RegisterType((*ResourceClaimConsumerReference)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimConsumerReference\")\n\tproto.RegisterType((*ResourceClaimList)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimList\")\n\tproto.RegisterType((*ResourceClaimParametersReference)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimParametersReference\")\n\tproto.RegisterType((*ResourceClaimSchedulingStatus)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimSchedulingStatus\")\n\tproto.RegisterType((*ResourceClaimSpec)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimSpec\")\n\tproto.RegisterType((*ResourceClaimStatus)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimStatus\")\n\tproto.RegisterType((*ResourceClaimTemplate)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimTemplate\")\n\tproto.RegisterType((*ResourceClaimTemplateList)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimTemplateList\")\n\tproto.RegisterType((*ResourceClaimTemplateSpec)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClaimTemplateSpec\")\n\tproto.RegisterType((*ResourceClass)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClass\")\n\tproto.RegisterType((*ResourceClassList)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClassList\")\n\tproto.RegisterType((*ResourceClassParametersReference)(nil), \"k8s.io.api.resource.v1alpha2.ResourceClassParametersReference\")\n\tproto.RegisterType((*ResourceHandle)(nil), \"k8s.io.api.resource.v1alpha2.ResourceHandle\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/resource/v1alpha2/generated.proto\", fileDescriptor_3add37bbd52889e0)\n}\n\nvar fileDescriptor_3add37bbd52889e0 = []byte{\n\t// 1233 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4f, 0x6f, 0x1b, 0x45,\n\t0x14, 0xcf, 0xda, 0x6e, 0x95, 0x4c, 0x1a, 0x37, 0xd9, 0xb6, 0xe0, 0x46, 0xad, 0x63, 0xf6, 0x14,\n\t0x89, 0xb2, 0xdb, 0x06, 0x54, 0x2a, 0xfe, 0x49, 0xd9, 0x06, 0x4a, 0x04, 0x4d, 0xc3, 0x98, 0x8a,\n\t0x16, 0x21, 0xd4, 0xc9, 0xee, 0xab, 0xbd, 0x64, 0xff, 0xb1, 0x33, 0x6b, 0xa8, 0xb8, 0xf4, 0x23,\n\t0xf4, 0xc0, 0x01, 0x4e, 0x1c, 0xf9, 0x02, 0x7c, 0x03, 0x84, 0xd4, 0x63, 0x11, 0x1c, 0x7a, 0xb2,\n\t0xa8, 0xf9, 0x08, 0x9c, 0xe8, 0x09, 0xcd, 0x78, 0x77, 0xbd, 0xb3, 0xf6, 0x9a, 0x38, 0x07, 0x0b,\n\t0x4e, 0xc9, 0xcc, 0xfb, 0xbd, 0xdf, 0xfb, 0x37, 0xef, 0xcd, 0xac, 0xd1, 0xbb, 0x87, 0xd7, 0xa8,\n\t0xee, 0x04, 0xc6, 0x61, 0x7c, 0x00, 0x91, 0x0f, 0x0c, 0xa8, 0xd1, 0x03, 0xdf, 0x0e, 0x22, 0x23,\n\t0x11, 0x90, 0xd0, 0x31, 0x22, 0xa0, 0x41, 0x1c, 0x59, 0x60, 0xf4, 0xae, 0x10, 0x37, 0xec, 0x92,\n\t0x2d, 0xa3, 0x03, 0x3e, 0x44, 0x84, 0x81, 0xad, 0x87, 0x51, 0xc0, 0x02, 0xf5, 0xc2, 0x10, 0xad,\n\t0x93, 0xd0, 0xd1, 0x53, 0xb4, 0x9e, 0xa2, 0xd7, 0x5f, 0xe9, 0x38, 0xac, 0x1b, 0x1f, 0xe8, 0x56,\n\t0xe0, 0x19, 0x9d, 0xa0, 0x13, 0x18, 0x42, 0xe9, 0x20, 0xbe, 0x2f, 0x56, 0x62, 0x21, 0xfe, 0x1b,\n\t0x92, 0xad, 0x6b, 0x39, 0xd3, 0x56, 0x10, 0x71, 0xb3, 0x45, 0x83, 0xeb, 0xaf, 0x8d, 0x30, 0x1e,\n\t0xb1, 0xba, 0x8e, 0x0f, 0xd1, 0x03, 0x23, 0x3c, 0xec, 0xf0, 0x0d, 0x6a, 0x78, 0xc0, 0xc8, 0x24,\n\t0x2d, 0xa3, 0x4c, 0x2b, 0x8a, 0x7d, 0xe6, 0x78, 0x30, 0xa6, 0x70, 0xf5, 0xdf, 0x14, 0xa8, 0xd5,\n\t0x05, 0x8f, 0x14, 0xf5, 0xb4, 0xef, 0x2a, 0x68, 0x75, 0xdb, 0x75, 0x03, 0x8b, 0x30, 0x27, 0xf0,\n\t0x31, 0xd0, 0xd8, 0x65, 0x6a, 0x80, 0x4e, 0xa7, 0xb9, 0x79, 0x9f, 0xf8, 0xb6, 0x0b, 0xb4, 0xa1,\n\t0xb4, 0xaa, 0x9b, 0xcb, 0x5b, 0x97, 0xf4, 0x69, 0xe9, 0xd3, 0xb1, 0xa4, 0x64, 0xbe, 0xf8, 0xb8,\n\t0xbf, 0xb1, 0x30, 0xe8, 0x6f, 0x9c, 0x96, 0xf7, 0x29, 0x2e, 0xb2, 0xab, 0x07, 0x68, 0x95, 0xf4,\n\t0x88, 0xe3, 0x92, 0x03, 0x17, 0x6e, 0xf9, 0x7b, 0x81, 0x0d, 0xb4, 0x51, 0x69, 0x29, 0x9b, 0xcb,\n\t0x5b, 0xad, 0xbc, 0x45, 0x9e, 0x63, 0xbd, 0x77, 0x45, 0xe7, 0x80, 0x36, 0xb8, 0x60, 0xb1, 0x20,\n\t0x32, 0xcf, 0x0e, 0xfa, 0x1b, 0xab, 0xdb, 0x05, 0x6d, 0x3c, 0xc6, 0xa7, 0x1a, 0x68, 0x89, 0x76,\n\t0x49, 0x04, 0x7c, 0xaf, 0x51, 0x6d, 0x29, 0x9b, 0x8b, 0xe6, 0x5a, 0xe2, 0xe0, 0x52, 0x3b, 0x15,\n\t0xe0, 0x11, 0x46, 0xfb, 0xa9, 0x82, 0xce, 0xee, 0x07, 0x76, 0xdb, 0xea, 0x82, 0x1d, 0xbb, 0x8e,\n\t0xdf, 0xb9, 0x1e, 0xf8, 0x0c, 0xbe, 0x66, 0xea, 0x3d, 0xb4, 0xc8, 0xeb, 0x66, 0x13, 0x46, 0x1a,\n\t0x8a, 0xf0, 0xf2, 0x72, 0xce, 0xcb, 0x2c, 0xfd, 0x7a, 0x78, 0xd8, 0xe1, 0x1b, 0x54, 0xe7, 0x68,\n\t0xee, 0xf7, 0xad, 0x83, 0x2f, 0xc0, 0x62, 0x37, 0x81, 0x11, 0x53, 0x4d, 0x4c, 0xa3, 0xd1, 0x1e,\n\t0xce, 0x58, 0xd5, 0x3b, 0xa8, 0x46, 0x43, 0xb0, 0x92, 0x1c, 0x5c, 0x9d, 0x9e, 0xf5, 0x49, 0x3e,\n\t0xb6, 0x43, 0xb0, 0xcc, 0x53, 0x89, 0x8d, 0x1a, 0x5f, 0x61, 0xc1, 0xa8, 0xde, 0x43, 0x27, 0x29,\n\t0x23, 0x2c, 0xa6, 0x22, 0x05, 0xcb, 0x5b, 0xd7, 0x8e, 0xc1, 0x2d, 0xf4, 0xcd, 0x7a, 0xc2, 0x7e,\n\t0x72, 0xb8, 0xc6, 0x09, 0xaf, 0xf6, 0xab, 0x82, 0x1a, 0x93, 0xd4, 0x3e, 0x74, 0x28, 0x53, 0x3f,\n\t0x1b, 0x4b, 0x9d, 0x7e, 0xb4, 0xd4, 0x71, 0x6d, 0x91, 0xb8, 0xd5, 0xc4, 0xec, 0x62, 0xba, 0x93,\n\t0x4b, 0xdb, 0x27, 0xe8, 0x84, 0xc3, 0xc0, 0xe3, 0x67, 0x87, 0x9f, 0xd6, 0xad, 0xd9, 0x63, 0x33,\n\t0x57, 0x12, 0xfa, 0x13, 0xbb, 0x9c, 0x08, 0x0f, 0xf9, 0xb4, 0x47, 0x25, 0x31, 0xf1, 0xc4, 0xaa,\n\t0xd7, 0xd0, 0x29, 0x2a, 0x0e, 0x23, 0xd8, 0xfc, 0xa4, 0x89, 0xb8, 0x96, 0xcc, 0xb3, 0x09, 0xd1,\n\t0xa9, 0x76, 0x4e, 0x86, 0x25, 0xa4, 0xfa, 0x06, 0xaa, 0x87, 0x01, 0x03, 0x9f, 0x39, 0xc4, 0x4d,\n\t0x0f, 0x7d, 0x75, 0x73, 0xc9, 0x54, 0x07, 0xfd, 0x8d, 0xfa, 0xbe, 0x24, 0xc1, 0x05, 0xa4, 0xf6,\n\t0xbd, 0x82, 0xd6, 0xcb, 0xab, 0xa3, 0x7e, 0x83, 0xea, 0x69, 0xc4, 0xd7, 0x5d, 0xe2, 0x78, 0x69,\n\t0x07, 0xbf, 0x79, 0xb4, 0x0e, 0x16, 0x3a, 0x23, 0xee, 0xa4, 0xe4, 0x2f, 0x24, 0x31, 0xd5, 0x25,\n\t0x18, 0xc5, 0x05, 0x53, 0xda, 0x0f, 0x15, 0xb4, 0x22, 0x41, 0xe6, 0xd0, 0x32, 0x1f, 0x49, 0x2d,\n\t0x63, 0xcc, 0x12, 0x66, 0x59, 0xaf, 0xdc, 0x2d, 0xf4, 0xca, 0x95, 0x59, 0x48, 0xa7, 0x37, 0xc9,\n\t0x40, 0x41, 0x4d, 0x09, 0x7f, 0x3d, 0xf0, 0x69, 0xec, 0x41, 0x84, 0xe1, 0x3e, 0x44, 0xe0, 0x5b,\n\t0xa0, 0x5e, 0x42, 0x8b, 0x24, 0x74, 0x6e, 0x44, 0x41, 0x1c, 0x26, 0x47, 0x2a, 0x3b, 0xfa, 0xdb,\n\t0xfb, 0xbb, 0x62, 0x1f, 0x67, 0x08, 0x8e, 0x4e, 0x3d, 0x12, 0xde, 0xe6, 0xd0, 0xa9, 0x1d, 0x9c,\n\t0x21, 0xd4, 0x16, 0xaa, 0xf9, 0xc4, 0x83, 0x46, 0x4d, 0x20, 0xb3, 0xd8, 0xf7, 0x88, 0x07, 0x58,\n\t0x48, 0x54, 0x13, 0x55, 0x63, 0xc7, 0x6e, 0x9c, 0x10, 0x80, 0xcb, 0x09, 0xa0, 0x7a, 0x7b, 0x77,\n\t0xe7, 0x79, 0x7f, 0xe3, 0xa5, 0xb2, 0xbb, 0x86, 0x3d, 0x08, 0x81, 0xea, 0xb7, 0x77, 0x77, 0x30,\n\t0x57, 0xd6, 0x7e, 0x56, 0xd0, 0x9a, 0x14, 0xe4, 0x1c, 0x46, 0xc0, 0xbe, 0x3c, 0x02, 0x5e, 0x9e,\n\t0xa1, 0x64, 0x25, 0xbd, 0xff, 0xad, 0x82, 0x5a, 0x12, 0x6e, 0x9f, 0x44, 0xc4, 0x03, 0x06, 0x11,\n\t0x3d, 0x6e, 0xb1, 0x5a, 0xa8, 0x76, 0xe8, 0xf8, 0xb6, 0x38, 0xab, 0xb9, 0xf4, 0x7f, 0xe0, 0xf8,\n\t0x36, 0x16, 0x92, 0xac, 0x40, 0xd5, 0xb2, 0x02, 0x69, 0x0f, 0x15, 0x74, 0x71, 0x6a, 0xb7, 0x66,\n\t0x1c, 0x4a, 0x69, 0x91, 0xdf, 0x46, 0xa7, 0x63, 0x9f, 0xc6, 0x0e, 0xe3, 0xf7, 0x5d, 0x7e, 0x00,\n\t0x9d, 0xe1, 0xb7, 0xf6, 0x6d, 0x59, 0x84, 0x8b, 0x58, 0xed, 0xc7, 0x4a, 0xa1, 0xbe, 0x62, 0x1c,\n\t0xde, 0x40, 0x6b, 0xb9, 0x71, 0x40, 0xe9, 0xde, 0xc8, 0x87, 0xf3, 0x89, 0x0f, 0x79, 0xad, 0x21,\n\t0x00, 0x8f, 0xeb, 0xa8, 0x5f, 0xa1, 0x95, 0x30, 0x9f, 0xea, 0xa4, 0xb5, 0xdf, 0x99, 0xa1, 0xa4,\n\t0x13, 0x4a, 0x65, 0xae, 0x0d, 0xfa, 0x1b, 0x2b, 0x92, 0x00, 0xcb, 0x76, 0xd4, 0x7d, 0x54, 0x27,\n\t0xd9, 0x93, 0xe8, 0x26, 0x1f, 0xe9, 0xc3, 0x32, 0x6c, 0xa6, 0xe3, 0x6f, 0x5b, 0x92, 0x3e, 0x1f,\n\t0xdb, 0xc1, 0x05, 0x7d, 0xed, 0xaf, 0x0a, 0x3a, 0x33, 0x61, 0x3c, 0xa8, 0x5b, 0x08, 0xd9, 0x91,\n\t0xd3, 0x83, 0x28, 0x97, 0xa4, 0x6c, 0xcc, 0xed, 0x64, 0x12, 0x9c, 0x43, 0xa9, 0x9f, 0x23, 0x34,\n\t0x62, 0x4f, 0x72, 0xa2, 0x4f, 0xcf, 0x49, 0xf1, 0x81, 0x67, 0xd6, 0x39, 0x7f, 0x6e, 0x37, 0xc7,\n\t0xa8, 0x52, 0xb4, 0x1c, 0x01, 0x85, 0xa8, 0x07, 0xf6, 0x7b, 0x41, 0xd4, 0xa8, 0x8a, 0x3e, 0x7a,\n\t0x6b, 0x86, 0xa4, 0x8f, 0x8d, 0x32, 0xf3, 0x4c, 0x12, 0xd2, 0x32, 0x1e, 0x11, 0xe3, 0xbc, 0x15,\n\t0xb5, 0x8d, 0xce, 0xd9, 0x40, 0x72, 0x6e, 0x7e, 0x19, 0x03, 0x65, 0x60, 0x8b, 0x09, 0xb5, 0x68,\n\t0x5e, 0x4c, 0x08, 0xce, 0xed, 0x4c, 0x02, 0xe1, 0xc9, 0xba, 0xda, 0xef, 0x0a, 0x3a, 0x27, 0x79,\n\t0xf6, 0x31, 0x78, 0xa1, 0x4b, 0x18, 0xcc, 0xe1, 0x3a, 0xba, 0x2b, 0x5d, 0x47, 0xaf, 0xcf, 0x90,\n\t0xbe, 0xd4, 0xc9, 0xb2, 0x6b, 0x49, 0xfb, 0x4d, 0x41, 0xe7, 0x27, 0x6a, 0xcc, 0x61, 0xbc, 0xde,\n\t0x91, 0xc7, 0xeb, 0xab, 0xc7, 0x88, 0xab, 0x64, 0xcc, 0x3e, 0x29, 0x8b, 0xaa, 0x3d, 0x7c, 0xb6,\n\t0xfe, 0xff, 0xde, 0x0f, 0xda, 0xdf, 0xf2, 0x33, 0x88, 0xd2, 0x39, 0x84, 0x21, 0x4f, 0x94, 0xca,\n\t0x91, 0x26, 0xca, 0xd8, 0xa0, 0xad, 0xce, 0x38, 0x68, 0x29, 0x3d, 0xde, 0xa0, 0xbd, 0x8b, 0x56,\n\t0xe4, 0xdb, 0xa7, 0x76, 0xc4, 0x6f, 0x3e, 0x41, 0xdd, 0x96, 0x6e, 0x27, 0x99, 0xa9, 0xf8, 0xf6,\n\t0xa0, 0xf4, 0xbf, 0xfc, 0xf6, 0xa0, 0xb4, 0xa4, 0x29, 0x7e, 0x91, 0xdf, 0x1e, 0x13, 0xf3, 0x3c,\n\t0xff, 0xb7, 0x07, 0xff, 0x94, 0xe6, 0x7f, 0x69, 0x48, 0xac, 0xf4, 0x0d, 0x99, 0x7d, 0x4a, 0xef,\n\t0xa5, 0x02, 0x3c, 0xc2, 0x68, 0xf7, 0x51, 0x5d, 0xfe, 0x0d, 0xe0, 0x58, 0x37, 0x5f, 0x0b, 0xd5,\n\t0x44, 0xe5, 0x0a, 0xae, 0xef, 0x10, 0x46, 0xb0, 0x90, 0x98, 0xe6, 0xe3, 0x67, 0xcd, 0x85, 0x27,\n\t0xcf, 0x9a, 0x0b, 0x4f, 0x9f, 0x35, 0x17, 0x1e, 0x0e, 0x9a, 0xca, 0xe3, 0x41, 0x53, 0x79, 0x32,\n\t0x68, 0x2a, 0x4f, 0x07, 0x4d, 0xe5, 0x8f, 0x41, 0x53, 0x79, 0xf4, 0x67, 0x73, 0xe1, 0xd3, 0x0b,\n\t0xd3, 0x7e, 0x31, 0xfa, 0x27, 0x00, 0x00, 0xff, 0xff, 0x67, 0xe4, 0xf6, 0x18, 0x69, 0x12, 0x00,\n\t0x00,\n}\n\nfunc (m *AllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.Shareable {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\tif m.AvailableOnNodes != nil {\n\t\t{\n\t\t\tsize, err := m.AvailableOnNodes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ResourceHandles) > 0 {\n\t\tfor iNdEx := len(m.ResourceHandles) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceHandles[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingContextList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingContextList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingContextList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingContextSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingContextSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingContextSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PotentialNodes) > 0 {\n\t\tfor iNdEx := len(m.PotentialNodes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PotentialNodes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PotentialNodes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PotentialNodes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.SelectedNode)\n\tcopy(dAtA[i:], m.SelectedNode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SelectedNode)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingContextStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingContextStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingContextStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor iNdEx := len(m.ResourceClaims) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimConsumerReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimSchedulingStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimSchedulingStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimSchedulingStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.UnsuitableNodes) > 0 {\n\t\tfor iNdEx := len(m.UnsuitableNodes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.UnsuitableNodes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.UnsuitableNodes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UnsuitableNodes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.AllocationMode)\n\tcopy(dAtA[i:], m.AllocationMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllocationMode)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ParametersRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParametersRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.ResourceClassName)\n\tcopy(dAtA[i:], m.ResourceClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceClassName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.DeallocationRequested {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.ReservedFor) > 0 {\n\t\tfor iNdEx := len(m.ReservedFor) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ReservedFor[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.Allocation != nil {\n\t\t{\n\t\t\tsize, err := m.Allocation.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.DriverName)\n\tcopy(dAtA[i:], m.DriverName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DriverName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SuitableNodes != nil {\n\t\t{\n\t\t\tsize, err := m.SuitableNodes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ParametersRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParametersRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.DriverName)\n\tcopy(dAtA[i:], m.DriverName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DriverName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClassParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClassParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceHandle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceHandle) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceHandle) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Data)\n\tcopy(dAtA[i:], m.Data)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Data)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.DriverName)\n\tcopy(dAtA[i:], m.DriverName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DriverName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceHandles) > 0 {\n\t\tfor _, e := range m.ResourceHandles {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AvailableOnNodes != nil {\n\t\tl = m.AvailableOnNodes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *PodSchedulingContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodSchedulingContextList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSchedulingContextSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SelectedNode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.PotentialNodes) > 0 {\n\t\tfor _, s := range m.PotentialNodes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSchedulingContextStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor _, e := range m.ResourceClaims {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimConsumerReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimSchedulingStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.UnsuitableNodes) > 0 {\n\t\tfor _, s := range m.UnsuitableNodes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParametersRef != nil {\n\t\tl = m.ParametersRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.AllocationMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DriverName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Allocation != nil {\n\t\tl = m.Allocation.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ReservedFor) > 0 {\n\t\tfor _, e := range m.ReservedFor {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DriverName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParametersRef != nil {\n\t\tl = m.ParametersRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SuitableNodes != nil {\n\t\tl = m.SuitableNodes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClassParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceHandle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DriverName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Data)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceHandles := \"[]ResourceHandle{\"\n\tfor _, f := range this.ResourceHandles {\n\t\trepeatedStringForResourceHandles += strings.Replace(strings.Replace(f.String(), \"ResourceHandle\", \"ResourceHandle\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceHandles += \"}\"\n\ts := strings.Join([]string{`&AllocationResult{`,\n\t\t`ResourceHandles:` + repeatedStringForResourceHandles + `,`,\n\t\t`AvailableOnNodes:` + strings.Replace(fmt.Sprintf(\"%v\", this.AvailableOnNodes), \"NodeSelector\", \"v1.NodeSelector\", 1) + `,`,\n\t\t`Shareable:` + fmt.Sprintf(\"%v\", this.Shareable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSchedulingContext{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSchedulingContextSpec\", \"PodSchedulingContextSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodSchedulingContextStatus\", \"PodSchedulingContextStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingContextList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodSchedulingContext{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodSchedulingContext\", \"PodSchedulingContext\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodSchedulingContextList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingContextSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSchedulingContextSpec{`,\n\t\t`SelectedNode:` + fmt.Sprintf(\"%v\", this.SelectedNode) + `,`,\n\t\t`PotentialNodes:` + fmt.Sprintf(\"%v\", this.PotentialNodes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingContextStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceClaims := \"[]ResourceClaimSchedulingStatus{\"\n\tfor _, f := range this.ResourceClaims {\n\t\trepeatedStringForResourceClaims += strings.Replace(strings.Replace(f.String(), \"ResourceClaimSchedulingStatus\", \"ResourceClaimSchedulingStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceClaims += \"}\"\n\ts := strings.Join([]string{`&PodSchedulingContextStatus{`,\n\t\t`ResourceClaims:` + repeatedStringForResourceClaims + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaim{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ResourceClaimStatus\", \"ResourceClaimStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimConsumerReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimConsumerReference{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaim{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaim\", \"ResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimParametersReference{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimSchedulingStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimSchedulingStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UnsuitableNodes:` + fmt.Sprintf(\"%v\", this.UnsuitableNodes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimSpec{`,\n\t\t`ResourceClassName:` + fmt.Sprintf(\"%v\", this.ResourceClassName) + `,`,\n\t\t`ParametersRef:` + strings.Replace(this.ParametersRef.String(), \"ResourceClaimParametersReference\", \"ResourceClaimParametersReference\", 1) + `,`,\n\t\t`AllocationMode:` + fmt.Sprintf(\"%v\", this.AllocationMode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForReservedFor := \"[]ResourceClaimConsumerReference{\"\n\tfor _, f := range this.ReservedFor {\n\t\trepeatedStringForReservedFor += strings.Replace(strings.Replace(f.String(), \"ResourceClaimConsumerReference\", \"ResourceClaimConsumerReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForReservedFor += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimStatus{`,\n\t\t`DriverName:` + fmt.Sprintf(\"%v\", this.DriverName) + `,`,\n\t\t`Allocation:` + strings.Replace(this.Allocation.String(), \"AllocationResult\", \"AllocationResult\", 1) + `,`,\n\t\t`ReservedFor:` + repeatedStringForReservedFor + `,`,\n\t\t`DeallocationRequested:` + fmt.Sprintf(\"%v\", this.DeallocationRequested) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimTemplateSpec\", \"ResourceClaimTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaimTemplate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaimTemplate\", \"ResourceClaimTemplate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimTemplateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DriverName:` + fmt.Sprintf(\"%v\", this.DriverName) + `,`,\n\t\t`ParametersRef:` + strings.Replace(this.ParametersRef.String(), \"ResourceClassParametersReference\", \"ResourceClassParametersReference\", 1) + `,`,\n\t\t`SuitableNodes:` + strings.Replace(fmt.Sprintf(\"%v\", this.SuitableNodes), \"NodeSelector\", \"v1.NodeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClass\", \"ResourceClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClassParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClassParametersReference{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceHandle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceHandle{`,\n\t\t`DriverName:` + fmt.Sprintf(\"%v\", this.DriverName) + `,`,\n\t\t`Data:` + fmt.Sprintf(\"%v\", this.Data) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceHandles\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceHandles = append(m.ResourceHandles, ResourceHandle{})\n\t\t\tif err := m.ResourceHandles[len(m.ResourceHandles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableOnNodes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AvailableOnNodes == nil {\n\t\t\t\tm.AvailableOnNodes = &v1.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.AvailableOnNodes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Shareable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Shareable = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingContextList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodSchedulingContext{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingContextSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelectedNode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SelectedNode = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PotentialNodes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PotentialNodes = append(m.PotentialNodes, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingContextStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingContextStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaims\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceClaims = append(m.ResourceClaims, ResourceClaimSchedulingStatus{})\n\t\t\tif err := m.ResourceClaims[len(m.ResourceClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimConsumerReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaim{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimSchedulingStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSchedulingStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSchedulingStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnsuitableNodes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UnsuitableNodes = append(m.UnsuitableNodes, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParametersRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParametersRef == nil {\n\t\t\t\tm.ParametersRef = &ResourceClaimParametersReference{}\n\t\t\t}\n\t\t\tif err := m.ParametersRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocationMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllocationMode = AllocationMode(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DriverName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DriverName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocation\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocation == nil {\n\t\t\t\tm.Allocation = &AllocationResult{}\n\t\t\t}\n\t\t\tif err := m.Allocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReservedFor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReservedFor = append(m.ReservedFor, ResourceClaimConsumerReference{})\n\t\t\tif err := m.ReservedFor[len(m.ReservedFor)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeallocationRequested\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DeallocationRequested = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaimTemplate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DriverName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DriverName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParametersRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParametersRef == nil {\n\t\t\t\tm.ParametersRef = &ResourceClassParametersReference{}\n\t\t\t}\n\t\t\tif err := m.ParametersRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuitableNodes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SuitableNodes == nil {\n\t\t\t\tm.SuitableNodes = &v1.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.SuitableNodes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClassParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClassParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClassParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceHandle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceHandle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceHandle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DriverName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DriverName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Data = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.resource.v1alpha2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/resource/v1alpha2\";\n\n// AllocationResult contains attributes of an allocated resource.\nmessage AllocationResult {\n  // ResourceHandles contain the state associated with an allocation that\n  // should be maintained throughout the lifetime of a claim. Each\n  // ResourceHandle contains data that should be passed to a specific kubelet\n  // plugin once it lands on a node. This data is returned by the driver\n  // after a successful allocation and is opaque to Kubernetes. Driver\n  // documentation may explain to users how to interpret this data if needed.\n  //\n  // Setting this field is optional. It has a maximum size of 32 entries.\n  // If null (or empty), it is assumed this allocation will be processed by a\n  // single kubelet plugin with no ResourceHandle data attached. The name of\n  // the kubelet plugin invoked will match the DriverName set in the\n  // ResourceClaimStatus this AllocationResult is embedded in.\n  //\n  // +listType=atomic\n  // +optional\n  repeated ResourceHandle resourceHandles = 1;\n\n  // This field will get set by the resource driver after it has allocated\n  // the resource to inform the scheduler where it can schedule Pods using\n  // the ResourceClaim.\n  //\n  // Setting this field is optional. If null, the resource is available\n  // everywhere.\n  // +optional\n  optional k8s.io.api.core.v1.NodeSelector availableOnNodes = 2;\n\n  // Shareable determines whether the resource supports more\n  // than one consumer at a time.\n  // +optional\n  optional bool shareable = 3;\n}\n\n// PodSchedulingContext objects hold information that is needed to schedule\n// a Pod with ResourceClaims that use \"WaitForFirstConsumer\" allocation\n// mode.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage PodSchedulingContext {\n  // Standard object metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec describes where resources for the Pod are needed.\n  optional PodSchedulingContextSpec spec = 2;\n\n  // Status describes where resources for the Pod can be allocated.\n  // +optional\n  optional PodSchedulingContextStatus status = 3;\n}\n\n// PodSchedulingContextList is a collection of Pod scheduling objects.\nmessage PodSchedulingContextList {\n  // Standard list metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of PodSchedulingContext objects.\n  repeated PodSchedulingContext items = 2;\n}\n\n// PodSchedulingContextSpec describes where resources for the Pod are needed.\nmessage PodSchedulingContextSpec {\n  // SelectedNode is the node for which allocation of ResourceClaims that\n  // are referenced by the Pod and that use \"WaitForFirstConsumer\"\n  // allocation is to be attempted.\n  // +optional\n  optional string selectedNode = 1;\n\n  // PotentialNodes lists nodes where the Pod might be able to run.\n  //\n  // The size of this field is limited to 128. This is large enough for\n  // many clusters. Larger clusters may need more attempts to find a node\n  // that suits all pending resources. This may get increased in the\n  // future, but not reduced.\n  //\n  // +listType=set\n  // +optional\n  repeated string potentialNodes = 2;\n}\n\n// PodSchedulingContextStatus describes where resources for the Pod can be allocated.\nmessage PodSchedulingContextStatus {\n  // ResourceClaims describes resource availability for each\n  // pod.spec.resourceClaim entry where the corresponding ResourceClaim\n  // uses \"WaitForFirstConsumer\" allocation mode.\n  //\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated ResourceClaimSchedulingStatus resourceClaims = 1;\n}\n\n// ResourceClaim describes which resources are needed by a resource consumer.\n// Its status tracks whether the resource has been allocated and what the\n// resulting attributes are.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClaim {\n  // Standard object metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec describes the desired attributes of a resource that then needs\n  // to be allocated. It can only be set once when creating the\n  // ResourceClaim.\n  optional ResourceClaimSpec spec = 2;\n\n  // Status describes whether the resource is available and with which\n  // attributes.\n  // +optional\n  optional ResourceClaimStatus status = 3;\n}\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\nmessage ResourceClaimConsumerReference {\n  // APIGroup is the group for the resource being referenced. It is\n  // empty for the core API. This matches the group in the APIVersion\n  // that is used when creating the resources.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Resource is the type of resource being referenced, for example \"pods\".\n  optional string resource = 3;\n\n  // Name is the name of resource being referenced.\n  optional string name = 4;\n\n  // UID identifies exactly one incarnation of the resource.\n  optional string uid = 5;\n}\n\n// ResourceClaimList is a collection of claims.\nmessage ResourceClaimList {\n  // Standard list metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claims.\n  repeated ResourceClaim items = 2;\n}\n\n// ResourceClaimParametersReference contains enough information to let you\n// locate the parameters for a ResourceClaim. The object must be in the same\n// namespace as the ResourceClaim.\nmessage ResourceClaimParametersReference {\n  // APIGroup is the group for the resource being referenced. It is\n  // empty for the core API. This matches the group in the APIVersion\n  // that is used when creating the resources.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced. This is the same\n  // value as in the parameter object's metadata, for example \"ConfigMap\".\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced.\n  optional string name = 3;\n}\n\n// ResourceClaimSchedulingStatus contains information about one particular\n// ResourceClaim with \"WaitForFirstConsumer\" allocation mode.\nmessage ResourceClaimSchedulingStatus {\n  // Name matches the pod.spec.resourceClaims[*].Name field.\n  // +optional\n  optional string name = 1;\n\n  // UnsuitableNodes lists nodes that the ResourceClaim cannot be\n  // allocated for.\n  //\n  // The size of this field is limited to 128, the same as for\n  // PodSchedulingSpec.PotentialNodes. This may get increased in the\n  // future, but not reduced.\n  //\n  // +listType=set\n  // +optional\n  repeated string unsuitableNodes = 2;\n}\n\n// ResourceClaimSpec defines how a resource is to be allocated.\nmessage ResourceClaimSpec {\n  // ResourceClassName references the driver and additional parameters\n  // via the name of a ResourceClass that was created as part of the\n  // driver deployment.\n  optional string resourceClassName = 1;\n\n  // ParametersRef references a separate object with arbitrary parameters\n  // that will be used by the driver when allocating a resource for the\n  // claim.\n  //\n  // The object must be in the same namespace as the ResourceClaim.\n  // +optional\n  optional ResourceClaimParametersReference parametersRef = 2;\n\n  // Allocation can start immediately or when a Pod wants to use the\n  // resource. \"WaitForFirstConsumer\" is the default.\n  // +optional\n  optional string allocationMode = 3;\n}\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the resulting attributes are.\nmessage ResourceClaimStatus {\n  // DriverName is a copy of the driver name from the ResourceClass at\n  // the time when allocation started.\n  // +optional\n  optional string driverName = 1;\n\n  // Allocation is set by the resource driver once a resource or set of\n  // resources has been allocated successfully. If this is not specified, the\n  // resources have not been allocated yet.\n  // +optional\n  optional AllocationResult allocation = 2;\n\n  // ReservedFor indicates which entities are currently allowed to use\n  // the claim. A Pod which references a ResourceClaim which is not\n  // reserved for that Pod will not be started.\n  //\n  // There can be at most 32 such reservations. This may get increased in\n  // the future, but not reduced.\n  //\n  // +listType=map\n  // +listMapKey=uid\n  // +optional\n  repeated ResourceClaimConsumerReference reservedFor = 3;\n\n  // DeallocationRequested indicates that a ResourceClaim is to be\n  // deallocated.\n  //\n  // The driver then must deallocate this claim and reset the field\n  // together with clearing the Allocation field.\n  //\n  // While DeallocationRequested is set, no new consumers may be added to\n  // ReservedFor.\n  // +optional\n  optional bool deallocationRequested = 4;\n}\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\nmessage ResourceClaimTemplate {\n  // Standard object metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Describes the ResourceClaim that is to be generated.\n  //\n  // This field is immutable. A ResourceClaim will get created by the\n  // control plane for a Pod when needed and then not get updated\n  // anymore.\n  optional ResourceClaimTemplateSpec spec = 2;\n}\n\n// ResourceClaimTemplateList is a collection of claim templates.\nmessage ResourceClaimTemplateList {\n  // Standard list metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claim templates.\n  repeated ResourceClaimTemplate items = 2;\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\nmessage ResourceClaimTemplateSpec {\n  // ObjectMeta may contain labels and annotations that will be copied into the PVC\n  // when creating it. No other fields are allowed and will be rejected during\n  // validation.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec for the ResourceClaim. The entire content is copied unchanged\n  // into the ResourceClaim that gets created from this template. The\n  // same fields as in a ResourceClaim are also valid here.\n  optional ResourceClaimSpec spec = 2;\n}\n\n// ResourceClass is used by administrators to influence how resources\n// are allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClass {\n  // Standard object metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // DriverName defines the name of the dynamic resource driver that is\n  // used for allocation of a ResourceClaim that uses this class.\n  //\n  // Resource drivers have a unique name in forward domain order\n  // (acme.example.com).\n  optional string driverName = 2;\n\n  // ParametersRef references an arbitrary separate object that may hold\n  // parameters that will be used by the driver when allocating a\n  // resource that uses this class. A dynamic resource driver can\n  // distinguish between parameters stored here and and those stored in\n  // ResourceClaimSpec.\n  // +optional\n  optional ResourceClassParametersReference parametersRef = 3;\n\n  // Only nodes matching the selector will be considered by the scheduler\n  // when trying to find a Node that fits a Pod when that Pod uses\n  // a ResourceClaim that has not been allocated yet.\n  //\n  // Setting this field is optional. If null, all nodes are candidates.\n  // +optional\n  optional k8s.io.api.core.v1.NodeSelector suitableNodes = 4;\n}\n\n// ResourceClassList is a collection of classes.\nmessage ResourceClassList {\n  // Standard list metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource classes.\n  repeated ResourceClass items = 2;\n}\n\n// ResourceClassParametersReference contains enough information to let you\n// locate the parameters for a ResourceClass.\nmessage ResourceClassParametersReference {\n  // APIGroup is the group for the resource being referenced. It is\n  // empty for the core API. This matches the group in the APIVersion\n  // that is used when creating the resources.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced. This is the same\n  // value as in the parameter object's metadata.\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced.\n  optional string name = 3;\n\n  // Namespace that contains the referenced resource. Must be empty\n  // for cluster-scoped resources and non-empty for namespaced\n  // resources.\n  // +optional\n  optional string namespace = 4;\n}\n\n// ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.\nmessage ResourceHandle {\n  // DriverName specifies the name of the resource driver whose kubelet\n  // plugin should be invoked to process this ResourceHandle's data once it\n  // lands on a node. This may differ from the DriverName set in\n  // ResourceClaimStatus this ResourceHandle is embedded in.\n  optional string driverName = 1;\n\n  // Data contains the opaque data associated with this ResourceHandle. It is\n  // set by the controller component of the resource driver whose name\n  // matches the DriverName set in the ResourceClaimStatus this\n  // ResourceHandle is embedded in. It is set at allocation time and is\n  // intended for processing by the kubelet plugin whose name matches\n  // the DriverName set in this ResourceHandle.\n  //\n  // The maximum size of this field is 16KiB. This may get increased in the\n  // future, but not reduced.\n  // +optional\n  optional string data = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"resource.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ResourceClass{},\n\t\t&ResourceClassList{},\n\t\t&ResourceClaim{},\n\t\t&ResourceClaimList{},\n\t\t&ResourceClaimTemplate{},\n\t\t&ResourceClaimTemplateList{},\n\t\t&PodSchedulingContext{},\n\t\t&PodSchedulingContextList{},\n\t)\n\n\t// Add common types\n\tscheme.AddKnownTypes(SchemeGroupVersion, &metav1.Status{})\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClaim describes which resources are needed by a resource consumer.\n// Its status tracks whether the resource has been allocated and what the\n// resulting attributes are.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClaim struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec describes the desired attributes of a resource that then needs\n\t// to be allocated. It can only be set once when creating the\n\t// ResourceClaim.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n\n\t// Status describes whether the resource is available and with which\n\t// attributes.\n\t// +optional\n\tStatus ResourceClaimStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceClaimSpec defines how a resource is to be allocated.\ntype ResourceClaimSpec struct {\n\t// ResourceClassName references the driver and additional parameters\n\t// via the name of a ResourceClass that was created as part of the\n\t// driver deployment.\n\tResourceClassName string `json:\"resourceClassName\" protobuf:\"bytes,1,name=resourceClassName\"`\n\n\t// ParametersRef references a separate object with arbitrary parameters\n\t// that will be used by the driver when allocating a resource for the\n\t// claim.\n\t//\n\t// The object must be in the same namespace as the ResourceClaim.\n\t// +optional\n\tParametersRef *ResourceClaimParametersReference `json:\"parametersRef,omitempty\" protobuf:\"bytes,2,opt,name=parametersRef\"`\n\n\t// Allocation can start immediately or when a Pod wants to use the\n\t// resource. \"WaitForFirstConsumer\" is the default.\n\t// +optional\n\tAllocationMode AllocationMode `json:\"allocationMode,omitempty\" protobuf:\"bytes,3,opt,name=allocationMode\"`\n}\n\n// AllocationMode describes whether a ResourceClaim gets allocated immediately\n// when it gets created (AllocationModeImmediate) or whether allocation is\n// delayed until it is needed for a Pod\n// (AllocationModeWaitForFirstConsumer). Other modes might get added in the\n// future.\ntype AllocationMode string\n\nconst (\n\t// When a ResourceClaim has AllocationModeWaitForFirstConsumer, allocation is\n\t// delayed until a Pod gets scheduled that needs the ResourceClaim. The\n\t// scheduler will consider all resource requirements of that Pod and\n\t// trigger allocation for a node that fits the Pod.\n\tAllocationModeWaitForFirstConsumer AllocationMode = \"WaitForFirstConsumer\"\n\n\t// When a ResourceClaim has AllocationModeImmediate, allocation starts\n\t// as soon as the ResourceClaim gets created. This is done without\n\t// considering the needs of Pods that will use the ResourceClaim\n\t// because those Pods are not known yet.\n\tAllocationModeImmediate AllocationMode = \"Immediate\"\n)\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the resulting attributes are.\ntype ResourceClaimStatus struct {\n\t// DriverName is a copy of the driver name from the ResourceClass at\n\t// the time when allocation started.\n\t// +optional\n\tDriverName string `json:\"driverName,omitempty\" protobuf:\"bytes,1,opt,name=driverName\"`\n\n\t// Allocation is set by the resource driver once a resource or set of\n\t// resources has been allocated successfully. If this is not specified, the\n\t// resources have not been allocated yet.\n\t// +optional\n\tAllocation *AllocationResult `json:\"allocation,omitempty\" protobuf:\"bytes,2,opt,name=allocation\"`\n\n\t// ReservedFor indicates which entities are currently allowed to use\n\t// the claim. A Pod which references a ResourceClaim which is not\n\t// reserved for that Pod will not be started.\n\t//\n\t// There can be at most 32 such reservations. This may get increased in\n\t// the future, but not reduced.\n\t//\n\t// +listType=map\n\t// +listMapKey=uid\n\t// +optional\n\tReservedFor []ResourceClaimConsumerReference `json:\"reservedFor,omitempty\" protobuf:\"bytes,3,opt,name=reservedFor\"`\n\n\t// DeallocationRequested indicates that a ResourceClaim is to be\n\t// deallocated.\n\t//\n\t// The driver then must deallocate this claim and reset the field\n\t// together with clearing the Allocation field.\n\t//\n\t// While DeallocationRequested is set, no new consumers may be added to\n\t// ReservedFor.\n\t// +optional\n\tDeallocationRequested bool `json:\"deallocationRequested,omitempty\" protobuf:\"varint,4,opt,name=deallocationRequested\"`\n}\n\n// ReservedForMaxSize is the maximum number of entries in\n// claim.status.reservedFor.\nconst ResourceClaimReservedForMaxSize = 32\n\n// AllocationResult contains attributes of an allocated resource.\ntype AllocationResult struct {\n\t// ResourceHandles contain the state associated with an allocation that\n\t// should be maintained throughout the lifetime of a claim. Each\n\t// ResourceHandle contains data that should be passed to a specific kubelet\n\t// plugin once it lands on a node. This data is returned by the driver\n\t// after a successful allocation and is opaque to Kubernetes. Driver\n\t// documentation may explain to users how to interpret this data if needed.\n\t//\n\t// Setting this field is optional. It has a maximum size of 32 entries.\n\t// If null (or empty), it is assumed this allocation will be processed by a\n\t// single kubelet plugin with no ResourceHandle data attached. The name of\n\t// the kubelet plugin invoked will match the DriverName set in the\n\t// ResourceClaimStatus this AllocationResult is embedded in.\n\t//\n\t// +listType=atomic\n\t// +optional\n\tResourceHandles []ResourceHandle `json:\"resourceHandles,omitempty\" protobuf:\"bytes,1,opt,name=resourceHandles\"`\n\n\t// This field will get set by the resource driver after it has allocated\n\t// the resource to inform the scheduler where it can schedule Pods using\n\t// the ResourceClaim.\n\t//\n\t// Setting this field is optional. If null, the resource is available\n\t// everywhere.\n\t// +optional\n\tAvailableOnNodes *v1.NodeSelector `json:\"availableOnNodes,omitempty\" protobuf:\"bytes,2,opt,name=availableOnNodes\"`\n\n\t// Shareable determines whether the resource supports more\n\t// than one consumer at a time.\n\t// +optional\n\tShareable bool `json:\"shareable,omitempty\" protobuf:\"varint,3,opt,name=shareable\"`\n}\n\n// AllocationResultResourceHandlesMaxSize represents the maximum number of\n// entries in allocation.resourceHandles.\nconst AllocationResultResourceHandlesMaxSize = 32\n\n// ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.\ntype ResourceHandle struct {\n\t// DriverName specifies the name of the resource driver whose kubelet\n\t// plugin should be invoked to process this ResourceHandle's data once it\n\t// lands on a node. This may differ from the DriverName set in\n\t// ResourceClaimStatus this ResourceHandle is embedded in.\n\tDriverName string `json:\"driverName,omitempty\" protobuf:\"bytes,1,opt,name=driverName\"`\n\n\t// Data contains the opaque data associated with this ResourceHandle. It is\n\t// set by the controller component of the resource driver whose name\n\t// matches the DriverName set in the ResourceClaimStatus this\n\t// ResourceHandle is embedded in. It is set at allocation time and is\n\t// intended for processing by the kubelet plugin whose name matches\n\t// the DriverName set in this ResourceHandle.\n\t//\n\t// The maximum size of this field is 16KiB. This may get increased in the\n\t// future, but not reduced.\n\t// +optional\n\tData string `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n}\n\n// ResourceHandleDataMaxSize represents the maximum size of resourceHandle.data.\nconst ResourceHandleDataMaxSize = 16 * 1024\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClaimList is a collection of claims.\ntype ResourceClaimList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claims.\n\tItems []ResourceClaim `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// PodSchedulingContext objects hold information that is needed to schedule\n// a Pod with ResourceClaims that use \"WaitForFirstConsumer\" allocation\n// mode.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype PodSchedulingContext struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec describes where resources for the Pod are needed.\n\tSpec PodSchedulingContextSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n\n\t// Status describes where resources for the Pod can be allocated.\n\t// +optional\n\tStatus PodSchedulingContextStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodSchedulingContextSpec describes where resources for the Pod are needed.\ntype PodSchedulingContextSpec struct {\n\t// SelectedNode is the node for which allocation of ResourceClaims that\n\t// are referenced by the Pod and that use \"WaitForFirstConsumer\"\n\t// allocation is to be attempted.\n\t// +optional\n\tSelectedNode string `json:\"selectedNode,omitempty\" protobuf:\"bytes,1,opt,name=selectedNode\"`\n\n\t// PotentialNodes lists nodes where the Pod might be able to run.\n\t//\n\t// The size of this field is limited to 128. This is large enough for\n\t// many clusters. Larger clusters may need more attempts to find a node\n\t// that suits all pending resources. This may get increased in the\n\t// future, but not reduced.\n\t//\n\t// +listType=set\n\t// +optional\n\tPotentialNodes []string `json:\"potentialNodes,omitempty\" protobuf:\"bytes,2,opt,name=potentialNodes\"`\n}\n\n// PodSchedulingContextStatus describes where resources for the Pod can be allocated.\ntype PodSchedulingContextStatus struct {\n\t// ResourceClaims describes resource availability for each\n\t// pod.spec.resourceClaim entry where the corresponding ResourceClaim\n\t// uses \"WaitForFirstConsumer\" allocation mode.\n\t//\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tResourceClaims []ResourceClaimSchedulingStatus `json:\"resourceClaims,omitempty\" protobuf:\"bytes,1,opt,name=resourceClaims\"`\n\n\t// If there ever is a need to support other kinds of resources\n\t// than ResourceClaim, then new fields could get added here\n\t// for those other resources.\n}\n\n// ResourceClaimSchedulingStatus contains information about one particular\n// ResourceClaim with \"WaitForFirstConsumer\" allocation mode.\ntype ResourceClaimSchedulingStatus struct {\n\t// Name matches the pod.spec.resourceClaims[*].Name field.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// UnsuitableNodes lists nodes that the ResourceClaim cannot be\n\t// allocated for.\n\t//\n\t// The size of this field is limited to 128, the same as for\n\t// PodSchedulingSpec.PotentialNodes. This may get increased in the\n\t// future, but not reduced.\n\t//\n\t// +listType=set\n\t// +optional\n\tUnsuitableNodes []string `json:\"unsuitableNodes,omitempty\" protobuf:\"bytes,2,opt,name=unsuitableNodes\"`\n}\n\n// PodSchedulingNodeListMaxSize defines the maximum number of entries in the\n// node lists that are stored in PodSchedulingContext objects. This limit is part\n// of the API.\nconst PodSchedulingNodeListMaxSize = 128\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// PodSchedulingContextList is a collection of Pod scheduling objects.\ntype PodSchedulingContextList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of PodSchedulingContext objects.\n\tItems []PodSchedulingContext `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClass is used by administrators to influence how resources\n// are allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// DriverName defines the name of the dynamic resource driver that is\n\t// used for allocation of a ResourceClaim that uses this class.\n\t//\n\t// Resource drivers have a unique name in forward domain order\n\t// (acme.example.com).\n\tDriverName string `json:\"driverName\" protobuf:\"bytes,2,name=driverName\"`\n\n\t// ParametersRef references an arbitrary separate object that may hold\n\t// parameters that will be used by the driver when allocating a\n\t// resource that uses this class. A dynamic resource driver can\n\t// distinguish between parameters stored here and and those stored in\n\t// ResourceClaimSpec.\n\t// +optional\n\tParametersRef *ResourceClassParametersReference `json:\"parametersRef,omitempty\" protobuf:\"bytes,3,opt,name=parametersRef\"`\n\n\t// Only nodes matching the selector will be considered by the scheduler\n\t// when trying to find a Node that fits a Pod when that Pod uses\n\t// a ResourceClaim that has not been allocated yet.\n\t//\n\t// Setting this field is optional. If null, all nodes are candidates.\n\t// +optional\n\tSuitableNodes *v1.NodeSelector `json:\"suitableNodes,omitempty\" protobuf:\"bytes,4,opt,name=suitableNodes\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClassList is a collection of classes.\ntype ResourceClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource classes.\n\tItems []ResourceClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ResourceClassParametersReference contains enough information to let you\n// locate the parameters for a ResourceClass.\ntype ResourceClassParametersReference struct {\n\t// APIGroup is the group for the resource being referenced. It is\n\t// empty for the core API. This matches the group in the APIVersion\n\t// that is used when creating the resources.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced. This is the same\n\t// value as in the parameter object's metadata.\n\tKind string `json:\"kind\" protobuf:\"bytes,2,name=kind\"`\n\t// Name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,name=name\"`\n\t// Namespace that contains the referenced resource. Must be empty\n\t// for cluster-scoped resources and non-empty for namespaced\n\t// resources.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// ResourceClaimParametersReference contains enough information to let you\n// locate the parameters for a ResourceClaim. The object must be in the same\n// namespace as the ResourceClaim.\ntype ResourceClaimParametersReference struct {\n\t// APIGroup is the group for the resource being referenced. It is\n\t// empty for the core API. This matches the group in the APIVersion\n\t// that is used when creating the resources.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced. This is the same\n\t// value as in the parameter object's metadata, for example \"ConfigMap\".\n\tKind string `json:\"kind\" protobuf:\"bytes,2,name=kind\"`\n\t// Name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,name=name\"`\n}\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\ntype ResourceClaimConsumerReference struct {\n\t// APIGroup is the group for the resource being referenced. It is\n\t// empty for the core API. This matches the group in the APIVersion\n\t// that is used when creating the resources.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Resource is the type of resource being referenced, for example \"pods\".\n\tResource string `json:\"resource\" protobuf:\"bytes,3,name=resource\"`\n\t// Name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,4,name=name\"`\n\t// UID identifies exactly one incarnation of the resource.\n\tUID types.UID `json:\"uid\" protobuf:\"bytes,5,name=uid\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\ntype ResourceClaimTemplate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Describes the ResourceClaim that is to be generated.\n\t//\n\t// This field is immutable. A ResourceClaim will get created by the\n\t// control plane for a Pod when needed and then not get updated\n\t// anymore.\n\tSpec ResourceClaimTemplateSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\ntype ResourceClaimTemplateSpec struct {\n\t// ObjectMeta may contain labels and annotations that will be copied into the PVC\n\t// when creating it. No other fields are allowed and will be rejected during\n\t// validation.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec for the ResourceClaim. The entire content is copied unchanged\n\t// into the ResourceClaim that gets created from this template. The\n\t// same fields as in a ResourceClaim are also valid here.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ResourceClaimTemplateList is a collection of claim templates.\ntype ResourceClaimTemplateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claim templates.\n\tItems []ResourceClaimTemplate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AllocationResult = map[string]string{\n\t\"\":                 \"AllocationResult contains attributes of an allocated resource.\",\n\t\"resourceHandles\":  \"ResourceHandles contain the state associated with an allocation that should be maintained throughout the lifetime of a claim. Each ResourceHandle contains data that should be passed to a specific kubelet plugin once it lands on a node. This data is returned by the driver after a successful allocation and is opaque to Kubernetes. Driver documentation may explain to users how to interpret this data if needed.\\n\\nSetting this field is optional. It has a maximum size of 32 entries. If null (or empty), it is assumed this allocation will be processed by a single kubelet plugin with no ResourceHandle data attached. The name of the kubelet plugin invoked will match the DriverName set in the ResourceClaimStatus this AllocationResult is embedded in.\",\n\t\"availableOnNodes\": \"This field will get set by the resource driver after it has allocated the resource to inform the scheduler where it can schedule Pods using the ResourceClaim.\\n\\nSetting this field is optional. If null, the resource is available everywhere.\",\n\t\"shareable\":        \"Shareable determines whether the resource supports more than one consumer at a time.\",\n}\n\nfunc (AllocationResult) SwaggerDoc() map[string]string {\n\treturn map_AllocationResult\n}\n\nvar map_PodSchedulingContext = map[string]string{\n\t\"\":         \"PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use \\\"WaitForFirstConsumer\\\" allocation mode.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec describes where resources for the Pod are needed.\",\n\t\"status\":   \"Status describes where resources for the Pod can be allocated.\",\n}\n\nfunc (PodSchedulingContext) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingContext\n}\n\nvar map_PodSchedulingContextList = map[string]string{\n\t\"\":         \"PodSchedulingContextList is a collection of Pod scheduling objects.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of PodSchedulingContext objects.\",\n}\n\nfunc (PodSchedulingContextList) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingContextList\n}\n\nvar map_PodSchedulingContextSpec = map[string]string{\n\t\"\":               \"PodSchedulingContextSpec describes where resources for the Pod are needed.\",\n\t\"selectedNode\":   \"SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use \\\"WaitForFirstConsumer\\\" allocation is to be attempted.\",\n\t\"potentialNodes\": \"PotentialNodes lists nodes where the Pod might be able to run.\\n\\nThe size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced.\",\n}\n\nfunc (PodSchedulingContextSpec) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingContextSpec\n}\n\nvar map_PodSchedulingContextStatus = map[string]string{\n\t\"\":               \"PodSchedulingContextStatus describes where resources for the Pod can be allocated.\",\n\t\"resourceClaims\": \"ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses \\\"WaitForFirstConsumer\\\" allocation mode.\",\n}\n\nfunc (PodSchedulingContextStatus) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingContextStatus\n}\n\nvar map_ResourceClaim = map[string]string{\n\t\"\":         \"ResourceClaim describes which resources are needed by a resource consumer. Its status tracks whether the resource has been allocated and what the resulting attributes are.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec describes the desired attributes of a resource that then needs to be allocated. It can only be set once when creating the ResourceClaim.\",\n\t\"status\":   \"Status describes whether the resource is available and with which attributes.\",\n}\n\nfunc (ResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaim\n}\n\nvar map_ResourceClaimConsumerReference = map[string]string{\n\t\"\":         \"ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.\",\n\t\"resource\": \"Resource is the type of resource being referenced, for example \\\"pods\\\".\",\n\t\"name\":     \"Name is the name of resource being referenced.\",\n\t\"uid\":      \"UID identifies exactly one incarnation of the resource.\",\n}\n\nfunc (ResourceClaimConsumerReference) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimConsumerReference\n}\n\nvar map_ResourceClaimList = map[string]string{\n\t\"\":         \"ResourceClaimList is a collection of claims.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claims.\",\n}\n\nfunc (ResourceClaimList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimList\n}\n\nvar map_ResourceClaimParametersReference = map[string]string{\n\t\"\":         \"ResourceClaimParametersReference contains enough information to let you locate the parameters for a ResourceClaim. The object must be in the same namespace as the ResourceClaim.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.\",\n\t\"kind\":     \"Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata, for example \\\"ConfigMap\\\".\",\n\t\"name\":     \"Name is the name of resource being referenced.\",\n}\n\nfunc (ResourceClaimParametersReference) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimParametersReference\n}\n\nvar map_ResourceClaimSchedulingStatus = map[string]string{\n\t\"\":                \"ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with \\\"WaitForFirstConsumer\\\" allocation mode.\",\n\t\"name\":            \"Name matches the pod.spec.resourceClaims[*].Name field.\",\n\t\"unsuitableNodes\": \"UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.\\n\\nThe size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced.\",\n}\n\nfunc (ResourceClaimSchedulingStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimSchedulingStatus\n}\n\nvar map_ResourceClaimSpec = map[string]string{\n\t\"\":                  \"ResourceClaimSpec defines how a resource is to be allocated.\",\n\t\"resourceClassName\": \"ResourceClassName references the driver and additional parameters via the name of a ResourceClass that was created as part of the driver deployment.\",\n\t\"parametersRef\":     \"ParametersRef references a separate object with arbitrary parameters that will be used by the driver when allocating a resource for the claim.\\n\\nThe object must be in the same namespace as the ResourceClaim.\",\n\t\"allocationMode\":    \"Allocation can start immediately or when a Pod wants to use the resource. \\\"WaitForFirstConsumer\\\" is the default.\",\n}\n\nfunc (ResourceClaimSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimSpec\n}\n\nvar map_ResourceClaimStatus = map[string]string{\n\t\"\":                      \"ResourceClaimStatus tracks whether the resource has been allocated and what the resulting attributes are.\",\n\t\"driverName\":            \"DriverName is a copy of the driver name from the ResourceClass at the time when allocation started.\",\n\t\"allocation\":            \"Allocation is set by the resource driver once a resource or set of resources has been allocated successfully. If this is not specified, the resources have not been allocated yet.\",\n\t\"reservedFor\":           \"ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started.\\n\\nThere can be at most 32 such reservations. This may get increased in the future, but not reduced.\",\n\t\"deallocationRequested\": \"DeallocationRequested indicates that a ResourceClaim is to be deallocated.\\n\\nThe driver then must deallocate this claim and reset the field together with clearing the Allocation field.\\n\\nWhile DeallocationRequested is set, no new consumers may be added to ReservedFor.\",\n}\n\nfunc (ResourceClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimStatus\n}\n\nvar map_ResourceClaimTemplate = map[string]string{\n\t\"\":         \"ResourceClaimTemplate is used to produce ResourceClaim objects.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Describes the ResourceClaim that is to be generated.\\n\\nThis field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore.\",\n}\n\nfunc (ResourceClaimTemplate) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplate\n}\n\nvar map_ResourceClaimTemplateList = map[string]string{\n\t\"\":         \"ResourceClaimTemplateList is a collection of claim templates.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claim templates.\",\n}\n\nfunc (ResourceClaimTemplateList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateList\n}\n\nvar map_ResourceClaimTemplateSpec = map[string]string{\n\t\"\":         \"ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\",\n\t\"metadata\": \"ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n\t\"spec\":     \"Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.\",\n}\n\nfunc (ResourceClaimTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateSpec\n}\n\nvar map_ResourceClass = map[string]string{\n\t\"\":              \"ResourceClass is used by administrators to influence how resources are allocated.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\":      \"Standard object metadata\",\n\t\"driverName\":    \"DriverName defines the name of the dynamic resource driver that is used for allocation of a ResourceClaim that uses this class.\\n\\nResource drivers have a unique name in forward domain order (acme.example.com).\",\n\t\"parametersRef\": \"ParametersRef references an arbitrary separate object that may hold parameters that will be used by the driver when allocating a resource that uses this class. A dynamic resource driver can distinguish between parameters stored here and and those stored in ResourceClaimSpec.\",\n\t\"suitableNodes\": \"Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a ResourceClaim that has not been allocated yet.\\n\\nSetting this field is optional. If null, all nodes are candidates.\",\n}\n\nfunc (ResourceClass) SwaggerDoc() map[string]string {\n\treturn map_ResourceClass\n}\n\nvar map_ResourceClassList = map[string]string{\n\t\"\":         \"ResourceClassList is a collection of classes.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource classes.\",\n}\n\nfunc (ResourceClassList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClassList\n}\n\nvar map_ResourceClassParametersReference = map[string]string{\n\t\"\":          \"ResourceClassParametersReference contains enough information to let you locate the parameters for a ResourceClass.\",\n\t\"apiGroup\":  \"APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.\",\n\t\"kind\":      \"Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata.\",\n\t\"name\":      \"Name is the name of resource being referenced.\",\n\t\"namespace\": \"Namespace that contains the referenced resource. Must be empty for cluster-scoped resources and non-empty for namespaced resources.\",\n}\n\nfunc (ResourceClassParametersReference) SwaggerDoc() map[string]string {\n\treturn map_ResourceClassParametersReference\n}\n\nvar map_ResourceHandle = map[string]string{\n\t\"\":           \"ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.\",\n\t\"driverName\": \"DriverName specifies the name of the resource driver whose kubelet plugin should be invoked to process this ResourceHandle's data once it lands on a node. This may differ from the DriverName set in ResourceClaimStatus this ResourceHandle is embedded in.\",\n\t\"data\":       \"Data contains the opaque data associated with this ResourceHandle. It is set by the controller component of the resource driver whose name matches the DriverName set in the ResourceClaimStatus this ResourceHandle is embedded in. It is set at allocation time and is intended for processing by the kubelet plugin whose name matches the DriverName set in this ResourceHandle.\\n\\nThe maximum size of this field is 16KiB. This may get increased in the future, but not reduced.\",\n}\n\nfunc (ResourceHandle) SwaggerDoc() map[string]string {\n\treturn map_ResourceHandle\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllocationResult) DeepCopyInto(out *AllocationResult) {\n\t*out = *in\n\tif in.ResourceHandles != nil {\n\t\tin, out := &in.ResourceHandles, &out.ResourceHandles\n\t\t*out = make([]ResourceHandle, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AvailableOnNodes != nil {\n\t\tin, out := &in.AvailableOnNodes, &out.AvailableOnNodes\n\t\t*out = new(v1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationResult.\nfunc (in *AllocationResult) DeepCopy() *AllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingContext) DeepCopyInto(out *PodSchedulingContext) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingContext.\nfunc (in *PodSchedulingContext) DeepCopy() *PodSchedulingContext {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingContext)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodSchedulingContext) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingContextList) DeepCopyInto(out *PodSchedulingContextList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodSchedulingContext, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingContextList.\nfunc (in *PodSchedulingContextList) DeepCopy() *PodSchedulingContextList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingContextList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodSchedulingContextList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingContextSpec) DeepCopyInto(out *PodSchedulingContextSpec) {\n\t*out = *in\n\tif in.PotentialNodes != nil {\n\t\tin, out := &in.PotentialNodes, &out.PotentialNodes\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingContextSpec.\nfunc (in *PodSchedulingContextSpec) DeepCopy() *PodSchedulingContextSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingContextSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingContextStatus) DeepCopyInto(out *PodSchedulingContextStatus) {\n\t*out = *in\n\tif in.ResourceClaims != nil {\n\t\tin, out := &in.ResourceClaims, &out.ResourceClaims\n\t\t*out = make([]ResourceClaimSchedulingStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingContextStatus.\nfunc (in *PodSchedulingContextStatus) DeepCopy() *PodSchedulingContextStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingContextStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaim) DeepCopyInto(out *ResourceClaim) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaim.\nfunc (in *ResourceClaim) DeepCopy() *ResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaim) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimConsumerReference) DeepCopyInto(out *ResourceClaimConsumerReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimConsumerReference.\nfunc (in *ResourceClaimConsumerReference) DeepCopy() *ResourceClaimConsumerReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimConsumerReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimList) DeepCopyInto(out *ResourceClaimList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimList.\nfunc (in *ResourceClaimList) DeepCopy() *ResourceClaimList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimParametersReference) DeepCopyInto(out *ResourceClaimParametersReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimParametersReference.\nfunc (in *ResourceClaimParametersReference) DeepCopy() *ResourceClaimParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimSchedulingStatus) DeepCopyInto(out *ResourceClaimSchedulingStatus) {\n\t*out = *in\n\tif in.UnsuitableNodes != nil {\n\t\tin, out := &in.UnsuitableNodes, &out.UnsuitableNodes\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimSchedulingStatus.\nfunc (in *ResourceClaimSchedulingStatus) DeepCopy() *ResourceClaimSchedulingStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimSchedulingStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimSpec) DeepCopyInto(out *ResourceClaimSpec) {\n\t*out = *in\n\tif in.ParametersRef != nil {\n\t\tin, out := &in.ParametersRef, &out.ParametersRef\n\t\t*out = new(ResourceClaimParametersReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimSpec.\nfunc (in *ResourceClaimSpec) DeepCopy() *ResourceClaimSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimStatus) DeepCopyInto(out *ResourceClaimStatus) {\n\t*out = *in\n\tif in.Allocation != nil {\n\t\tin, out := &in.Allocation, &out.Allocation\n\t\t*out = new(AllocationResult)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReservedFor != nil {\n\t\tin, out := &in.ReservedFor, &out.ReservedFor\n\t\t*out = make([]ResourceClaimConsumerReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimStatus.\nfunc (in *ResourceClaimStatus) DeepCopy() *ResourceClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplate) DeepCopyInto(out *ResourceClaimTemplate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplate.\nfunc (in *ResourceClaimTemplate) DeepCopy() *ResourceClaimTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateList) DeepCopyInto(out *ResourceClaimTemplateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaimTemplate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateList.\nfunc (in *ResourceClaimTemplateList) DeepCopy() *ResourceClaimTemplateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateSpec) DeepCopyInto(out *ResourceClaimTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateSpec.\nfunc (in *ResourceClaimTemplateSpec) DeepCopy() *ResourceClaimTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClass) DeepCopyInto(out *ResourceClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.ParametersRef != nil {\n\t\tin, out := &in.ParametersRef, &out.ParametersRef\n\t\t*out = new(ResourceClassParametersReference)\n\t\t**out = **in\n\t}\n\tif in.SuitableNodes != nil {\n\t\tin, out := &in.SuitableNodes, &out.SuitableNodes\n\t\t*out = new(v1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClass.\nfunc (in *ResourceClass) DeepCopy() *ResourceClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClassList) DeepCopyInto(out *ResourceClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClassList.\nfunc (in *ResourceClassList) DeepCopy() *ResourceClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClassParametersReference) DeepCopyInto(out *ResourceClassParametersReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClassParametersReference.\nfunc (in *ResourceClassParametersReference) DeepCopy() *ResourceClassParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClassParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceHandle) DeepCopyInto(out *ResourceHandle) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceHandle.\nfunc (in *ResourceHandle) DeepCopy() *ResourceHandle {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceHandle)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=scheduling.k8s.io\n\npackage v1 // import \"k8s.io/api/scheduling/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_277b2f43b72fffd5, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_277b2f43b72fffd5, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1/generated.proto\", fileDescriptor_277b2f43b72fffd5)\n}\n\nvar fileDescriptor_277b2f43b72fffd5 = []byte{\n\t// 492 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x4f, 0x8b, 0xd3, 0x4e,\n\t0x18, 0xc7, 0x3b, 0xdd, 0x5f, 0xa1, 0xbf, 0x29, 0x85, 0x1a, 0x11, 0x42, 0x0f, 0x69, 0xe9, 0x1e,\n\t0xec, 0xc5, 0x19, 0xbb, 0xa8, 0x08, 0x0b, 0x82, 0x71, 0x41, 0x84, 0x15, 0x4b, 0x0e, 0x1e, 0xc4,\n\t0x83, 0x93, 0xe4, 0xd9, 0x74, 0x6c, 0x92, 0x09, 0x33, 0x93, 0x40, 0x6f, 0xbe, 0x04, 0xdf, 0x91,\n\t0xd7, 0x1e, 0xf7, 0xb8, 0xa7, 0x62, 0xe3, 0x4b, 0xf0, 0xe6, 0x49, 0x92, 0xc6, 0x4d, 0xff, 0x6c,\n\t0xd1, 0x5b, 0x9e, 0xe7, 0xf9, 0x7e, 0xbe, 0x33, 0xf3, 0xcd, 0x0c, 0x7e, 0x39, 0x7f, 0xae, 0x08,\n\t0x17, 0x74, 0x9e, 0xba, 0x20, 0x63, 0xd0, 0xa0, 0x68, 0x06, 0xb1, 0x2f, 0x24, 0xad, 0x06, 0x2c,\n\t0xe1, 0x54, 0x79, 0x33, 0xf0, 0xd3, 0x90, 0xc7, 0x01, 0xcd, 0x26, 0x34, 0x80, 0x18, 0x24, 0xd3,\n\t0xe0, 0x93, 0x44, 0x0a, 0x2d, 0x0c, 0x73, 0xa3, 0x24, 0x2c, 0xe1, 0xa4, 0x56, 0x92, 0x6c, 0xd2,\n\t0x7f, 0x14, 0x70, 0x3d, 0x4b, 0x5d, 0xe2, 0x89, 0x88, 0x06, 0x22, 0x10, 0xb4, 0x04, 0xdc, 0xf4,\n\t0xaa, 0xac, 0xca, 0xa2, 0xfc, 0xda, 0x18, 0xf5, 0x47, 0x5b, 0x4b, 0x7a, 0x42, 0xc2, 0x1d, 0x8b,\n\t0xf5, 0x9f, 0xd4, 0x9a, 0x88, 0x79, 0x33, 0x1e, 0x83, 0x5c, 0xd0, 0x64, 0x1e, 0x14, 0x0d, 0x45,\n\t0x23, 0xd0, 0xec, 0x2e, 0x8a, 0x1e, 0xa3, 0x64, 0x1a, 0x6b, 0x1e, 0xc1, 0x01, 0xf0, 0xec, 0x6f,\n\t0x40, 0x71, 0xd0, 0x88, 0xed, 0x73, 0xa3, 0x9f, 0x4d, 0xdc, 0x9d, 0x4a, 0x2e, 0x24, 0xd7, 0x8b,\n\t0x57, 0x21, 0x53, 0xca, 0xf8, 0x84, 0xdb, 0xc5, 0xae, 0x7c, 0xa6, 0x99, 0x89, 0x86, 0x68, 0xdc,\n\t0x39, 0x7b, 0x4c, 0xea, 0xc0, 0x6e, 0xcd, 0x49, 0x32, 0x0f, 0x8a, 0x86, 0x22, 0x85, 0x9a, 0x64,\n\t0x13, 0xf2, 0xce, 0xfd, 0x0c, 0x9e, 0x7e, 0x0b, 0x9a, 0xd9, 0xc6, 0x72, 0x35, 0x68, 0xe4, 0xab,\n\t0x01, 0xae, 0x7b, 0xce, 0xad, 0xab, 0x71, 0x8a, 0x5b, 0x19, 0x0b, 0x53, 0x30, 0x9b, 0x43, 0x34,\n\t0x6e, 0xd9, 0xdd, 0x4a, 0xdc, 0x7a, 0x5f, 0x34, 0x9d, 0xcd, 0xcc, 0x38, 0xc7, 0xdd, 0x20, 0x14,\n\t0x2e, 0x0b, 0x2f, 0xe0, 0x8a, 0xa5, 0xa1, 0x36, 0x4f, 0x86, 0x68, 0xdc, 0xb6, 0x1f, 0x54, 0xe2,\n\t0xee, 0xeb, 0xed, 0xa1, 0xb3, 0xab, 0x35, 0x9e, 0xe2, 0x8e, 0x0f, 0xca, 0x93, 0x3c, 0xd1, 0x5c,\n\t0xc4, 0xe6, 0x7f, 0x43, 0x34, 0xfe, 0xdf, 0xbe, 0x5f, 0xa1, 0x9d, 0x8b, 0x7a, 0xe4, 0x6c, 0xeb,\n\t0x8c, 0x00, 0xf7, 0x12, 0x09, 0x10, 0x95, 0xd5, 0x54, 0x84, 0xdc, 0x5b, 0x98, 0xad, 0x92, 0x3d,\n\t0xcf, 0x57, 0x83, 0xde, 0x74, 0x6f, 0xf6, 0x6b, 0x35, 0x38, 0x3d, 0xbc, 0x01, 0x64, 0x5f, 0xe6,\n\t0x1c, 0x98, 0x8e, 0xbe, 0x21, 0x7c, 0x6f, 0x27, 0xf5, 0x4b, 0xae, 0xb4, 0xf1, 0xf1, 0x20, 0x79,\n\t0xf2, 0x6f, 0xc9, 0x17, 0x74, 0x99, 0x7b, 0xaf, 0x3a, 0x62, 0xfb, 0x4f, 0x67, 0x2b, 0xf5, 0x4b,\n\t0xdc, 0xe2, 0x1a, 0x22, 0x65, 0x36, 0x87, 0x27, 0xe3, 0xce, 0xd9, 0x43, 0x72, 0xec, 0x15, 0x90,\n\t0x9d, 0x9d, 0xd5, 0xbf, 0xe7, 0x4d, 0x41, 0x3b, 0x1b, 0x13, 0xfb, 0xc5, 0x72, 0x6d, 0x35, 0xae,\n\t0xd7, 0x56, 0xe3, 0x66, 0x6d, 0x35, 0xbe, 0xe4, 0x16, 0x5a, 0xe6, 0x16, 0xba, 0xce, 0x2d, 0x74,\n\t0x93, 0x5b, 0xe8, 0x7b, 0x6e, 0xa1, 0xaf, 0x3f, 0xac, 0xc6, 0x07, 0xf3, 0xd8, 0x9b, 0xfc, 0x1d,\n\t0x00, 0x00, 0xff, 0xff, 0xa9, 0x88, 0x2b, 0xa0, 0xc7, 0x03, 0x00, 0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1\";\n\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\n\t// SchemeBuilder is a collection of functions that add things to a scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme applies all the stored functions to the scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(corev1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=scheduling.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/scheduling/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f033641dd0b95dce, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f033641dd0b95dce, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1alpha1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1alpha1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto\", fileDescriptor_f033641dd0b95dce)\n}\n\nvar fileDescriptor_f033641dd0b95dce = []byte{\n\t// 495 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x31, 0x8f, 0xd3, 0x30,\n\t0x14, 0xc7, 0xeb, 0x1e, 0x95, 0x8a, 0xab, 0x4a, 0x25, 0x08, 0x29, 0xea, 0xe0, 0x56, 0xbd, 0xa5,\n\t0xcb, 0xd9, 0xf4, 0x04, 0x08, 0xe9, 0xb6, 0x52, 0xe9, 0x84, 0x04, 0xa2, 0xca, 0xc0, 0x80, 0x18,\n\t0x70, 0xd3, 0x77, 0xa9, 0x69, 0x12, 0x47, 0xb6, 0x13, 0xa9, 0x1b, 0x1f, 0x81, 0x2f, 0x85, 0xd4,\n\t0xf1, 0xc6, 0x9b, 0x2a, 0x1a, 0x3e, 0x02, 0x1b, 0x13, 0x4a, 0x9a, 0xbb, 0xb4, 0x0d, 0x1c, 0x6c,\n\t0x79, 0xef, 0xfd, 0xfe, 0x7f, 0xdb, 0xff, 0xd8, 0xf8, 0x72, 0xf9, 0x52, 0x53, 0x21, 0xd9, 0x32,\n\t0x9e, 0x81, 0x0a, 0xc1, 0x80, 0x66, 0x09, 0x84, 0x73, 0xa9, 0x58, 0x31, 0xe0, 0x91, 0x60, 0xda,\n\t0x5d, 0xc0, 0x3c, 0xf6, 0x45, 0xe8, 0xb1, 0x64, 0xc4, 0xfd, 0x68, 0xc1, 0x47, 0xcc, 0x83, 0x10,\n\t0x14, 0x37, 0x30, 0xa7, 0x91, 0x92, 0x46, 0x5a, 0x64, 0xc7, 0x53, 0x1e, 0x09, 0x5a, 0xf2, 0xf4,\n\t0x96, 0xef, 0x9e, 0x79, 0xc2, 0x2c, 0xe2, 0x19, 0x75, 0x65, 0xc0, 0x3c, 0xe9, 0x49, 0x96, 0xcb,\n\t0x66, 0xf1, 0x55, 0x5e, 0xe5, 0x45, 0xfe, 0xb5, 0xb3, 0xeb, 0x0e, 0xf6, 0x96, 0x77, 0xa5, 0x02,\n\t0x96, 0x54, 0x96, 0xec, 0x3e, 0x2b, 0x99, 0x80, 0xbb, 0x0b, 0x11, 0x82, 0x5a, 0xb1, 0x68, 0xe9,\n\t0x65, 0x0d, 0xcd, 0x02, 0x30, 0xfc, 0x4f, 0x2a, 0xf6, 0x37, 0x95, 0x8a, 0x43, 0x23, 0x02, 0xa8,\n\t0x08, 0x5e, 0xfc, 0x4b, 0x90, 0x1d, 0x37, 0xe0, 0xc7, 0xba, 0xc1, 0xcf, 0x3a, 0x6e, 0x4f, 0x95,\n\t0x90, 0x4a, 0x98, 0xd5, 0x2b, 0x9f, 0x6b, 0x6d, 0x7d, 0xc2, 0xcd, 0x6c, 0x57, 0x73, 0x6e, 0xb8,\n\t0x8d, 0xfa, 0x68, 0xd8, 0x3a, 0x7f, 0x4a, 0xcb, 0xd8, 0xee, 0xcc, 0x69, 0xb4, 0xf4, 0xb2, 0x86,\n\t0xa6, 0x19, 0x4d, 0x93, 0x11, 0x7d, 0x37, 0xfb, 0x0c, 0xae, 0x79, 0x0b, 0x86, 0x8f, 0xad, 0xf5,\n\t0xa6, 0x57, 0x4b, 0x37, 0x3d, 0x5c, 0xf6, 0x9c, 0x3b, 0x57, 0xeb, 0x14, 0x37, 0x12, 0xee, 0xc7,\n\t0x60, 0xd7, 0xfb, 0x68, 0xd8, 0x18, 0xb7, 0x0b, 0xb8, 0xf1, 0x3e, 0x6b, 0x3a, 0xbb, 0x99, 0x75,\n\t0x81, 0xdb, 0x9e, 0x2f, 0x67, 0xdc, 0x9f, 0xc0, 0x15, 0x8f, 0x7d, 0x63, 0x9f, 0xf4, 0xd1, 0xb0,\n\t0x39, 0x7e, 0x52, 0xc0, 0xed, 0xcb, 0xfd, 0xa1, 0x73, 0xc8, 0x5a, 0xcf, 0x71, 0x6b, 0x0e, 0xda,\n\t0x55, 0x22, 0x32, 0x42, 0x86, 0xf6, 0x83, 0x3e, 0x1a, 0x3e, 0x1c, 0x3f, 0x2e, 0xa4, 0xad, 0x49,\n\t0x39, 0x72, 0xf6, 0x39, 0xcb, 0xc3, 0x9d, 0x48, 0x01, 0x04, 0x79, 0x35, 0x95, 0xbe, 0x70, 0x57,\n\t0x76, 0x23, 0xd7, 0x5e, 0xa4, 0x9b, 0x5e, 0x67, 0x7a, 0x34, 0xfb, 0xb5, 0xe9, 0x9d, 0x56, 0x6f,\n\t0x00, 0x3d, 0xc6, 0x9c, 0x8a, 0xe9, 0xe0, 0x1b, 0xc2, 0x8f, 0x0e, 0x52, 0x7f, 0x23, 0xb4, 0xb1,\n\t0x3e, 0x56, 0x92, 0xa7, 0xff, 0x97, 0x7c, 0xa6, 0xce, 0x73, 0xef, 0x14, 0x47, 0x6c, 0xde, 0x76,\n\t0xf6, 0x52, 0x77, 0x70, 0x43, 0x18, 0x08, 0xb4, 0x5d, 0xef, 0x9f, 0x0c, 0x5b, 0xe7, 0x67, 0xf4,\n\t0xfe, 0xb7, 0x40, 0x0f, 0xf6, 0x57, 0xfe, 0xa4, 0xd7, 0x99, 0x87, 0xb3, 0xb3, 0x1a, 0x4f, 0xd6,\n\t0x5b, 0x52, 0xbb, 0xde, 0x92, 0xda, 0xcd, 0x96, 0xd4, 0xbe, 0xa4, 0x04, 0xad, 0x53, 0x82, 0xae,\n\t0x53, 0x82, 0x6e, 0x52, 0x82, 0xbe, 0xa7, 0x04, 0x7d, 0xfd, 0x41, 0x6a, 0x1f, 0xc8, 0xfd, 0xaf,\n\t0xf4, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0xf8, 0x5a, 0x80, 0xdf, 0x03, 0x00, 0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1alpha1\";\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(v1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=scheduling.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/scheduling/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6cd406dede2d3f42, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6cd406dede2d3f42, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1beta1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1beta1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1beta1/generated.proto\", fileDescriptor_6cd406dede2d3f42)\n}\n\nvar fileDescriptor_6cd406dede2d3f42 = []byte{\n\t// 497 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x31, 0x8f, 0xd3, 0x3e,\n\t0x18, 0xc6, 0xeb, 0xde, 0xbf, 0x52, 0xff, 0xae, 0x2a, 0x95, 0x20, 0xa4, 0xa8, 0xd2, 0xa5, 0x55,\n\t0x6f, 0xe9, 0x00, 0x36, 0x3d, 0x01, 0x42, 0xba, 0xad, 0x77, 0x02, 0x21, 0x81, 0x28, 0x19, 0x18,\n\t0x10, 0x03, 0x4e, 0xf2, 0x5e, 0x6a, 0x9a, 0xc4, 0x91, 0xed, 0x44, 0xea, 0xc6, 0x47, 0xe0, 0x43,\n\t0x31, 0x74, 0xbc, 0xf1, 0xa6, 0x8a, 0x86, 0x8f, 0xc0, 0xc6, 0x84, 0x92, 0x86, 0x4b, 0xdb, 0xc0,\n\t0xc1, 0x96, 0xf7, 0x7d, 0x7f, 0xcf, 0x63, 0xfb, 0x89, 0x8d, 0x9f, 0x2d, 0x9e, 0x2a, 0xc2, 0x05,\n\t0x5d, 0x24, 0x0e, 0xc8, 0x08, 0x34, 0x28, 0x9a, 0x42, 0xe4, 0x09, 0x49, 0xcb, 0x01, 0x8b, 0x39,\n\t0x55, 0xee, 0x1c, 0xbc, 0x24, 0xe0, 0x91, 0x4f, 0xd3, 0x89, 0x03, 0x9a, 0x4d, 0xa8, 0x0f, 0x11,\n\t0x48, 0xa6, 0xc1, 0x23, 0xb1, 0x14, 0x5a, 0x18, 0xc7, 0x5b, 0x9c, 0xb0, 0x98, 0x93, 0x0a, 0x27,\n\t0x25, 0xde, 0x7f, 0xe0, 0x73, 0x3d, 0x4f, 0x1c, 0xe2, 0x8a, 0x90, 0xfa, 0xc2, 0x17, 0xb4, 0x50,\n\t0x39, 0xc9, 0x65, 0x51, 0x15, 0x45, 0xf1, 0xb5, 0x75, 0xeb, 0x8f, 0x76, 0x16, 0x77, 0x85, 0x04,\n\t0x9a, 0xd6, 0x56, 0xec, 0x3f, 0xaa, 0x98, 0x90, 0xb9, 0x73, 0x1e, 0x81, 0x5c, 0xd2, 0x78, 0xe1,\n\t0xe7, 0x0d, 0x45, 0x43, 0xd0, 0xec, 0x77, 0x2a, 0xfa, 0x27, 0x95, 0x4c, 0x22, 0xcd, 0x43, 0xa8,\n\t0x09, 0x9e, 0xfc, 0x4d, 0x90, 0x9f, 0x36, 0x64, 0x87, 0xba, 0xd1, 0xf7, 0x26, 0xee, 0xce, 0x24,\n\t0x17, 0x92, 0xeb, 0xe5, 0x79, 0xc0, 0x94, 0x32, 0x3e, 0xe0, 0x76, 0xbe, 0x2b, 0x8f, 0x69, 0x66,\n\t0xa2, 0x21, 0x1a, 0x77, 0x4e, 0x1f, 0x92, 0x2a, 0xb5, 0x1b, 0x73, 0x12, 0x2f, 0xfc, 0xbc, 0xa1,\n\t0x48, 0x4e, 0x93, 0x74, 0x42, 0x5e, 0x3b, 0x1f, 0xc1, 0xd5, 0xaf, 0x40, 0xb3, 0xa9, 0xb1, 0x5a,\n\t0x0f, 0x1a, 0xd9, 0x7a, 0x80, 0xab, 0x9e, 0x7d, 0xe3, 0x6a, 0x9c, 0xe0, 0x56, 0xca, 0x82, 0x04,\n\t0xcc, 0xe6, 0x10, 0x8d, 0x5b, 0xd3, 0x6e, 0x09, 0xb7, 0xde, 0xe6, 0x4d, 0x7b, 0x3b, 0x33, 0xce,\n\t0x70, 0xd7, 0x0f, 0x84, 0xc3, 0x82, 0x0b, 0xb8, 0x64, 0x49, 0xa0, 0xcd, 0xa3, 0x21, 0x1a, 0xb7,\n\t0xa7, 0xf7, 0x4a, 0xb8, 0xfb, 0x7c, 0x77, 0x68, 0xef, 0xb3, 0xc6, 0x63, 0xdc, 0xf1, 0x40, 0xb9,\n\t0x92, 0xc7, 0x9a, 0x8b, 0xc8, 0xfc, 0x6f, 0x88, 0xc6, 0xff, 0x4f, 0xef, 0x96, 0xd2, 0xce, 0x45,\n\t0x35, 0xb2, 0x77, 0x39, 0xc3, 0xc7, 0xbd, 0x58, 0x02, 0x84, 0x45, 0x35, 0x13, 0x01, 0x77, 0x97,\n\t0x66, 0xab, 0xd0, 0x9e, 0x65, 0xeb, 0x41, 0x6f, 0x76, 0x30, 0xfb, 0xb1, 0x1e, 0x9c, 0xd4, 0x6f,\n\t0x00, 0x39, 0xc4, 0xec, 0x9a, 0xe9, 0xe8, 0x0b, 0xc2, 0x77, 0xf6, 0x52, 0x7f, 0xc9, 0x95, 0x36,\n\t0xde, 0xd7, 0x92, 0x27, 0xff, 0x96, 0x7c, 0xae, 0x2e, 0x72, 0xef, 0x95, 0x47, 0x6c, 0xff, 0xea,\n\t0xec, 0xa4, 0xfe, 0x06, 0xb7, 0xb8, 0x86, 0x50, 0x99, 0xcd, 0xe1, 0xd1, 0xb8, 0x73, 0x7a, 0x9f,\n\t0xdc, 0xfa, 0x14, 0xc8, 0xde, 0xf6, 0xaa, 0x7f, 0xf4, 0x22, 0xb7, 0xb0, 0xb7, 0x4e, 0xd3, 0xf3,\n\t0xd5, 0xc6, 0x6a, 0x5c, 0x6d, 0xac, 0xc6, 0xf5, 0xc6, 0x6a, 0x7c, 0xca, 0x2c, 0xb4, 0xca, 0x2c,\n\t0x74, 0x95, 0x59, 0xe8, 0x3a, 0xb3, 0xd0, 0xd7, 0xcc, 0x42, 0x9f, 0xbf, 0x59, 0x8d, 0x77, 0xc7,\n\t0xb7, 0x3e, 0xd1, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x6c, 0x56, 0x80, 0xdb, 0x03, 0x00,\n\t0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1beta1\";\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.11\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=scheduling.k8s.io,v1,PriorityClass\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.11\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=scheduling.k8s.io,v1,PriorityClassList\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(v1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 11\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"scheduling.k8s.io\", Version: \"v1\", Kind: \"PriorityClass\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 11\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"scheduling.k8s.io\", Version: \"v1\", Kind: \"PriorityClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n\npackage v1 // import \"k8s.io/api/storage/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIDriver) Reset()      { *m = CSIDriver{} }\nfunc (*CSIDriver) ProtoMessage() {}\nfunc (*CSIDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{0}\n}\nfunc (m *CSIDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriver.Merge(m, src)\n}\nfunc (m *CSIDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriver proto.InternalMessageInfo\n\nfunc (m *CSIDriverList) Reset()      { *m = CSIDriverList{} }\nfunc (*CSIDriverList) ProtoMessage() {}\nfunc (*CSIDriverList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{1}\n}\nfunc (m *CSIDriverList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverList.Merge(m, src)\n}\nfunc (m *CSIDriverList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverList proto.InternalMessageInfo\n\nfunc (m *CSIDriverSpec) Reset()      { *m = CSIDriverSpec{} }\nfunc (*CSIDriverSpec) ProtoMessage() {}\nfunc (*CSIDriverSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{2}\n}\nfunc (m *CSIDriverSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverSpec.Merge(m, src)\n}\nfunc (m *CSIDriverSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverSpec proto.InternalMessageInfo\n\nfunc (m *CSINode) Reset()      { *m = CSINode{} }\nfunc (*CSINode) ProtoMessage() {}\nfunc (*CSINode) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{3}\n}\nfunc (m *CSINode) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINode) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINode.Merge(m, src)\n}\nfunc (m *CSINode) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINode) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINode.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINode proto.InternalMessageInfo\n\nfunc (m *CSINodeDriver) Reset()      { *m = CSINodeDriver{} }\nfunc (*CSINodeDriver) ProtoMessage() {}\nfunc (*CSINodeDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{4}\n}\nfunc (m *CSINodeDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeDriver.Merge(m, src)\n}\nfunc (m *CSINodeDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeDriver proto.InternalMessageInfo\n\nfunc (m *CSINodeList) Reset()      { *m = CSINodeList{} }\nfunc (*CSINodeList) ProtoMessage() {}\nfunc (*CSINodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{5}\n}\nfunc (m *CSINodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeList.Merge(m, src)\n}\nfunc (m *CSINodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeList proto.InternalMessageInfo\n\nfunc (m *CSINodeSpec) Reset()      { *m = CSINodeSpec{} }\nfunc (*CSINodeSpec) ProtoMessage() {}\nfunc (*CSINodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{6}\n}\nfunc (m *CSINodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeSpec.Merge(m, src)\n}\nfunc (m *CSINodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeSpec proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{7}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{8}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *StorageClass) Reset()      { *m = StorageClass{} }\nfunc (*StorageClass) ProtoMessage() {}\nfunc (*StorageClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{9}\n}\nfunc (m *StorageClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClass.Merge(m, src)\n}\nfunc (m *StorageClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClass proto.InternalMessageInfo\n\nfunc (m *StorageClassList) Reset()      { *m = StorageClassList{} }\nfunc (*StorageClassList) ProtoMessage() {}\nfunc (*StorageClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{10}\n}\nfunc (m *StorageClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClassList.Merge(m, src)\n}\nfunc (m *StorageClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClassList proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{11}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{12}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{13}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{14}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{15}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{16}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{17}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc (m *VolumeNodeResources) Reset()      { *m = VolumeNodeResources{} }\nfunc (*VolumeNodeResources) ProtoMessage() {}\nfunc (*VolumeNodeResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3b530c1983504d8d, []int{18}\n}\nfunc (m *VolumeNodeResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeResources.Merge(m, src)\n}\nfunc (m *VolumeNodeResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeResources proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIDriver)(nil), \"k8s.io.api.storage.v1.CSIDriver\")\n\tproto.RegisterType((*CSIDriverList)(nil), \"k8s.io.api.storage.v1.CSIDriverList\")\n\tproto.RegisterType((*CSIDriverSpec)(nil), \"k8s.io.api.storage.v1.CSIDriverSpec\")\n\tproto.RegisterType((*CSINode)(nil), \"k8s.io.api.storage.v1.CSINode\")\n\tproto.RegisterType((*CSINodeDriver)(nil), \"k8s.io.api.storage.v1.CSINodeDriver\")\n\tproto.RegisterType((*CSINodeList)(nil), \"k8s.io.api.storage.v1.CSINodeList\")\n\tproto.RegisterType((*CSINodeSpec)(nil), \"k8s.io.api.storage.v1.CSINodeSpec\")\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1.CSIStorageCapacityList\")\n\tproto.RegisterType((*StorageClass)(nil), \"k8s.io.api.storage.v1.StorageClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1.StorageClass.ParametersEntry\")\n\tproto.RegisterType((*StorageClassList)(nil), \"k8s.io.api.storage.v1.StorageClassList\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.storage.v1.TokenRequest\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1.VolumeError\")\n\tproto.RegisterType((*VolumeNodeResources)(nil), \"k8s.io.api.storage.v1.VolumeNodeResources\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/storage/v1/generated.proto\", fileDescriptor_3b530c1983504d8d)\n}\n\nvar fileDescriptor_3b530c1983504d8d = []byte{\n\t// 1670 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x73, 0x1b, 0x4b,\n\t0x11, 0xf7, 0x5a, 0xf2, 0xd7, 0xc8, 0x8e, 0xed, 0xb1, 0xfd, 0x10, 0x3e, 0x48, 0xae, 0x7d, 0xaf,\n\t0xc0, 0xef, 0xc1, 0x5b, 0xbd, 0x38, 0x21, 0x95, 0x0a, 0x15, 0xaa, 0xbc, 0xb6, 0x42, 0x5c, 0x58,\n\t0xb6, 0x19, 0x99, 0x54, 0x8a, 0x02, 0x2a, 0xe3, 0xdd, 0xb1, 0x3c, 0xb1, 0xf6, 0x23, 0x3b, 0xb3,\n\t0xc2, 0xe2, 0x04, 0x17, 0x6e, 0x54, 0xc1, 0x95, 0xbf, 0x02, 0xaa, 0xe0, 0xc2, 0x91, 0x03, 0x15,\n\t0x6e, 0x29, 0x4e, 0x39, 0xa9, 0x88, 0x38, 0xc3, 0x91, 0x83, 0x4f, 0xaf, 0x66, 0x76, 0xa4, 0xfd,\n\t0xd0, 0xca, 0xb1, 0x2f, 0xba, 0x69, 0xa6, 0xbb, 0x7f, 0xdd, 0x33, 0xdd, 0xfd, 0x9b, 0x5e, 0x81,\n\t0x1f, 0x5c, 0x3e, 0x66, 0x06, 0xf5, 0x6a, 0x97, 0xe1, 0x19, 0x09, 0x5c, 0xc2, 0x09, 0xab, 0x75,\n\t0x88, 0x6b, 0x7b, 0x41, 0x4d, 0x09, 0xb0, 0x4f, 0x6b, 0x8c, 0x7b, 0x01, 0x6e, 0x91, 0x5a, 0xe7,\n\t0x7e, 0xad, 0x45, 0x5c, 0x12, 0x60, 0x4e, 0x6c, 0xc3, 0x0f, 0x3c, 0xee, 0xc1, 0x8d, 0x48, 0xcd,\n\t0xc0, 0x3e, 0x35, 0x94, 0x9a, 0xd1, 0xb9, 0xbf, 0xf9, 0x65, 0x8b, 0xf2, 0x8b, 0xf0, 0xcc, 0xb0,\n\t0x3c, 0xa7, 0xd6, 0xf2, 0x5a, 0x5e, 0x4d, 0x6a, 0x9f, 0x85, 0xe7, 0x72, 0x25, 0x17, 0xf2, 0x57,\n\t0x84, 0xb2, 0xa9, 0x27, 0x9c, 0x59, 0x5e, 0x90, 0xe7, 0x69, 0xf3, 0x61, 0xac, 0xe3, 0x60, 0xeb,\n\t0x82, 0xba, 0x24, 0xe8, 0xd6, 0xfc, 0xcb, 0x96, 0x34, 0x0a, 0x08, 0xf3, 0xc2, 0xc0, 0x22, 0x77,\n\t0xb2, 0x62, 0x35, 0x87, 0x70, 0x9c, 0xe7, 0xab, 0x36, 0xce, 0x2a, 0x08, 0x5d, 0x4e, 0x9d, 0x51,\n\t0x37, 0x8f, 0x3e, 0x66, 0xc0, 0xac, 0x0b, 0xe2, 0xe0, 0xac, 0x9d, 0xfe, 0x57, 0x0d, 0x2c, 0xec,\n\t0x35, 0x0f, 0xf6, 0x03, 0xda, 0x21, 0x01, 0x7c, 0x05, 0xe6, 0x45, 0x44, 0x36, 0xe6, 0xb8, 0xac,\n\t0x6d, 0x69, 0xdb, 0xa5, 0x9d, 0xaf, 0x8c, 0xf8, 0x7e, 0x87, 0xc0, 0x86, 0x7f, 0xd9, 0x12, 0x1b,\n\t0xcc, 0x10, 0xda, 0x46, 0xe7, 0xbe, 0x71, 0x7c, 0xf6, 0x9a, 0x58, 0xbc, 0x41, 0x38, 0x36, 0xe1,\n\t0xdb, 0x5e, 0x75, 0xaa, 0xdf, 0xab, 0x82, 0x78, 0x0f, 0x0d, 0x51, 0xe1, 0x33, 0x50, 0x64, 0x3e,\n\t0xb1, 0xca, 0xd3, 0x12, 0xfd, 0x33, 0x23, 0x37, 0x7b, 0xc6, 0x30, 0xa2, 0xa6, 0x4f, 0x2c, 0x73,\n\t0x51, 0x21, 0x16, 0xc5, 0x0a, 0x49, 0x7b, 0xfd, 0x2f, 0x1a, 0x58, 0x1a, 0x6a, 0x1d, 0x52, 0xc6,\n\t0xe1, 0xcf, 0x46, 0x62, 0x37, 0x6e, 0x17, 0xbb, 0xb0, 0x96, 0x91, 0xaf, 0x28, 0x3f, 0xf3, 0x83,\n\t0x9d, 0x44, 0xdc, 0x75, 0x30, 0x43, 0x39, 0x71, 0x58, 0x79, 0x7a, 0xab, 0xb0, 0x5d, 0xda, 0xd9,\n\t0xfa, 0x58, 0xe0, 0xe6, 0x92, 0x02, 0x9b, 0x39, 0x10, 0x66, 0x28, 0xb2, 0xd6, 0xff, 0x55, 0x4c,\n\t0x84, 0x2d, 0x8e, 0x03, 0x9f, 0x80, 0x7b, 0x98, 0x73, 0x6c, 0x5d, 0x20, 0xf2, 0x26, 0xa4, 0x01,\n\t0xb1, 0x65, 0xf0, 0xf3, 0x26, 0xec, 0xf7, 0xaa, 0xf7, 0x76, 0x53, 0x12, 0x94, 0xd1, 0x14, 0xb6,\n\t0xbe, 0x67, 0x1f, 0xb8, 0xe7, 0xde, 0xb1, 0xdb, 0xf0, 0x42, 0x97, 0xcb, 0x6b, 0x55, 0xb6, 0x27,\n\t0x29, 0x09, 0xca, 0x68, 0x42, 0x0b, 0xac, 0x77, 0xbc, 0x76, 0xe8, 0x90, 0x43, 0x7a, 0x4e, 0xac,\n\t0xae, 0xd5, 0x26, 0x0d, 0xcf, 0x26, 0xac, 0x5c, 0xd8, 0x2a, 0x6c, 0x2f, 0x98, 0xb5, 0x7e, 0xaf,\n\t0xba, 0xfe, 0x22, 0x47, 0x7e, 0xdd, 0xab, 0xae, 0xe5, 0xec, 0xa3, 0x5c, 0x30, 0xf8, 0x14, 0x2c,\n\t0xab, 0xcb, 0xd9, 0xc3, 0x3e, 0xb6, 0x28, 0xef, 0x96, 0x8b, 0x32, 0xc2, 0xb5, 0x7e, 0xaf, 0xba,\n\t0xdc, 0x4c, 0x8b, 0x50, 0x56, 0x17, 0x3e, 0x07, 0x4b, 0xe7, 0xec, 0x87, 0x81, 0x17, 0xfa, 0x27,\n\t0x5e, 0x9b, 0x5a, 0xdd, 0xf2, 0xcc, 0x96, 0xb6, 0xbd, 0x60, 0xea, 0xfd, 0x5e, 0x75, 0xe9, 0x59,\n\t0x33, 0x21, 0xb8, 0xce, 0x6e, 0xa0, 0xb4, 0x21, 0x7c, 0x05, 0x96, 0xb8, 0x77, 0x49, 0x5c, 0x71,\n\t0x75, 0x84, 0x71, 0x56, 0x9e, 0x95, 0x69, 0xfc, 0x74, 0x4c, 0x1a, 0x4f, 0x13, 0xba, 0xe6, 0x86,\n\t0xca, 0xe4, 0x52, 0x72, 0x97, 0xa1, 0x34, 0x20, 0xdc, 0x03, 0xab, 0x41, 0x94, 0x17, 0x86, 0x88,\n\t0x1f, 0x9e, 0xb5, 0x29, 0xbb, 0x28, 0xcf, 0xc9, 0xc3, 0x6e, 0xf4, 0x7b, 0xd5, 0x55, 0x94, 0x15,\n\t0xa2, 0x51, 0x7d, 0xf8, 0x10, 0x2c, 0x32, 0x72, 0x48, 0xdd, 0xf0, 0x2a, 0x4a, 0xe7, 0xbc, 0xb4,\n\t0x5f, 0xe9, 0xf7, 0xaa, 0x8b, 0xcd, 0x7a, 0xbc, 0x8f, 0x52, 0x5a, 0xfa, 0x9f, 0x35, 0x30, 0xb7,\n\t0xd7, 0x3c, 0x38, 0xf2, 0x6c, 0x32, 0x81, 0x0e, 0xde, 0x4f, 0x75, 0xb0, 0x3e, 0xbe, 0x11, 0x44,\n\t0x3c, 0x63, 0xfb, 0xf7, 0x7f, 0x51, 0xff, 0x0a, 0x1d, 0xc5, 0x3d, 0x5b, 0xa0, 0xe8, 0x62, 0x87,\n\t0xc8, 0xa8, 0x17, 0x62, 0x9b, 0x23, 0xec, 0x10, 0x24, 0x25, 0xf0, 0x5b, 0x60, 0xd6, 0xf5, 0x6c,\n\t0x72, 0xb0, 0x2f, 0x7d, 0x2f, 0x98, 0xf7, 0x94, 0xce, 0xec, 0x91, 0xdc, 0x45, 0x4a, 0x2a, 0x6e,\n\t0x91, 0x7b, 0xbe, 0xd7, 0xf6, 0x5a, 0xdd, 0x1f, 0x91, 0xee, 0xa0, 0xa4, 0xe5, 0x2d, 0x9e, 0x26,\n\t0xf6, 0x51, 0x4a, 0x0b, 0xfe, 0x1c, 0x94, 0x70, 0xbb, 0xed, 0x59, 0x98, 0xe3, 0xb3, 0x36, 0x91,\n\t0x75, 0x5a, 0xda, 0xf9, 0x62, 0xcc, 0xf1, 0xa2, 0x16, 0x10, 0x7e, 0x91, 0x22, 0x7e, 0x66, 0x2e,\n\t0xf7, 0x7b, 0xd5, 0xd2, 0x6e, 0x0c, 0x81, 0x92, 0x78, 0xfa, 0x9f, 0x34, 0x50, 0x52, 0x07, 0x9e,\n\t0x00, 0x5d, 0xed, 0xa5, 0xe9, 0xaa, 0x72, 0x73, 0x96, 0xc6, 0x90, 0xd5, 0x2f, 0x86, 0x11, 0x4b,\n\t0xa6, 0x3a, 0x06, 0x73, 0xb6, 0x4c, 0x15, 0x2b, 0x6b, 0x12, 0xf5, 0xb3, 0x9b, 0x51, 0x15, 0x11,\n\t0x2e, 0x2b, 0xec, 0xb9, 0x68, 0xcd, 0xd0, 0x00, 0x45, 0xff, 0x7f, 0x01, 0xc0, 0xbd, 0xe6, 0x41,\n\t0x86, 0x06, 0x26, 0x50, 0xc2, 0x14, 0x2c, 0x8a, 0x52, 0x19, 0x14, 0x83, 0x2a, 0xe5, 0x07, 0xb7,\n\t0xbc, 0x7f, 0x7c, 0x46, 0xda, 0x4d, 0xd2, 0x26, 0x16, 0xf7, 0x82, 0xa8, 0xaa, 0x8e, 0x12, 0x60,\n\t0x28, 0x05, 0x0d, 0xf7, 0xc1, 0xca, 0x80, 0xd5, 0xda, 0x98, 0x31, 0x51, 0xcd, 0xe5, 0x82, 0xac,\n\t0xde, 0xb2, 0x0a, 0x71, 0xa5, 0x99, 0x91, 0xa3, 0x11, 0x0b, 0xf8, 0x12, 0xcc, 0x5b, 0x49, 0x02,\n\t0xfd, 0x48, 0xb1, 0x18, 0x83, 0x69, 0xc4, 0xf8, 0x71, 0x88, 0x5d, 0x4e, 0x79, 0xd7, 0x5c, 0x14,\n\t0x85, 0x32, 0x64, 0xda, 0x21, 0x1a, 0x64, 0x60, 0xd5, 0xc1, 0x57, 0xd4, 0x09, 0x9d, 0xa8, 0xa4,\n\t0x9b, 0xf4, 0x57, 0x44, 0xd2, 0xec, 0xdd, 0x5d, 0x48, 0x9a, 0x6b, 0x64, 0xc1, 0xd0, 0x28, 0xbe,\n\t0xfe, 0x0f, 0x0d, 0x7c, 0x32, 0x9a, 0xf8, 0x09, 0xb4, 0xc5, 0x51, 0xba, 0x2d, 0x3e, 0x1f, 0x5f,\n\t0xc0, 0x99, 0xd8, 0xc6, 0x74, 0xc8, 0xef, 0x66, 0xc1, 0x62, 0x32, 0x7d, 0x13, 0xa8, 0xdd, 0xef,\n\t0x81, 0x92, 0x1f, 0x78, 0x1d, 0xca, 0xa8, 0xe7, 0x92, 0x40, 0x31, 0xe1, 0x9a, 0x32, 0x29, 0x9d,\n\t0xc4, 0x22, 0x94, 0xd4, 0x83, 0x2d, 0x00, 0x7c, 0x1c, 0x60, 0x87, 0x70, 0xd1, 0xbf, 0x05, 0x79,\n\t0xfc, 0x07, 0x63, 0x8e, 0x9f, 0x3c, 0x91, 0x71, 0x32, 0xb4, 0xaa, 0xbb, 0x3c, 0xe8, 0xc6, 0xd1,\n\t0xc5, 0x02, 0x94, 0x80, 0x86, 0x97, 0x60, 0x29, 0x20, 0x56, 0x1b, 0x53, 0x47, 0xbd, 0xd9, 0x45,\n\t0x19, 0x61, 0x5d, 0x3c, 0xa0, 0x28, 0x29, 0xb8, 0xee, 0x55, 0xbf, 0x1a, 0x9d, 0xba, 0x8d, 0x13,\n\t0x12, 0x30, 0xca, 0x38, 0x71, 0x79, 0x54, 0x30, 0x29, 0x1b, 0x94, 0xc6, 0x16, 0x4c, 0xef, 0x88,\n\t0x27, 0xf0, 0xd8, 0xe7, 0xd4, 0x73, 0x59, 0x79, 0x26, 0x66, 0xfa, 0x46, 0x62, 0x1f, 0xa5, 0xb4,\n\t0xe0, 0x21, 0x58, 0x17, 0xcc, 0xfc, 0xcb, 0xc8, 0x41, 0xfd, 0xca, 0xc7, 0xae, 0xb8, 0xa5, 0xf2,\n\t0xac, 0x7c, 0x6d, 0xcb, 0x62, 0xf4, 0xd9, 0xcd, 0x91, 0xa3, 0x5c, 0x2b, 0xf8, 0x12, 0xac, 0x46,\n\t0xb3, 0x8f, 0x49, 0x5d, 0x9b, 0xba, 0x2d, 0x31, 0xf9, 0xc8, 0x87, 0x7f, 0xc1, 0xfc, 0x42, 0x74,\n\t0xc4, 0x8b, 0xac, 0xf0, 0x3a, 0x6f, 0x13, 0x8d, 0x82, 0xc0, 0x37, 0x60, 0x55, 0x7a, 0x24, 0xb6,\n\t0xa2, 0x13, 0x4a, 0x58, 0x79, 0x5e, 0xa6, 0x6e, 0x3b, 0x99, 0x3a, 0x71, 0x75, 0xd1, 0xd4, 0x12,\n\t0x91, 0xce, 0x80, 0x9c, 0x4e, 0x49, 0xe0, 0x98, 0xdf, 0x54, 0xf9, 0x5a, 0xdd, 0xcd, 0x42, 0xa1,\n\t0x51, 0xf4, 0xcd, 0xa7, 0x60, 0x39, 0x93, 0x70, 0xb8, 0x02, 0x0a, 0x97, 0xa4, 0x1b, 0x3d, 0xcb,\n\t0x48, 0xfc, 0x84, 0xeb, 0x60, 0xa6, 0x83, 0xdb, 0x21, 0x89, 0x8a, 0x0f, 0x45, 0x8b, 0x27, 0xd3,\n\t0x8f, 0x35, 0xfd, 0x6f, 0x1a, 0x48, 0xd1, 0xd9, 0x04, 0x5a, 0xfa, 0x79, 0xba, 0xa5, 0x3f, 0xbd,\n\t0x45, 0x4d, 0x8f, 0x69, 0xe6, 0xdf, 0x68, 0x60, 0x31, 0x39, 0xe2, 0xc1, 0xef, 0x82, 0x79, 0x1c,\n\t0xda, 0x94, 0xb8, 0xd6, 0x60, 0x2a, 0x19, 0x06, 0xb2, 0xab, 0xf6, 0xd1, 0x50, 0x43, 0x0c, 0x80,\n\t0xe4, 0xca, 0xa7, 0x01, 0x16, 0x45, 0xd6, 0x24, 0x96, 0xe7, 0xda, 0x4c, 0xde, 0x50, 0x21, 0x62,\n\t0xc6, 0x7a, 0x56, 0x88, 0x46, 0xf5, 0xf5, 0x3f, 0x4e, 0x83, 0x95, 0xa8, 0x36, 0xa2, 0xd1, 0xdf,\n\t0x21, 0x2e, 0x9f, 0x00, 0xa9, 0x34, 0x52, 0x33, 0xdd, 0x77, 0x6e, 0x1c, 0x7a, 0xe2, 0xc0, 0xc6,\n\t0x0d, 0x77, 0xf0, 0x27, 0x60, 0x96, 0x71, 0xcc, 0x43, 0x26, 0x9f, 0xba, 0xd2, 0xce, 0x97, 0xb7,\n\t0x05, 0x94, 0x46, 0xf1, 0x5c, 0x17, 0xad, 0x91, 0x02, 0xd3, 0xff, 0xae, 0x81, 0xf5, 0xac, 0xc9,\n\t0x04, 0x2a, 0xec, 0x30, 0x5d, 0x61, 0xdf, 0xbe, 0xe5, 0x61, 0xc6, 0x7d, 0x01, 0x6a, 0xe0, 0x93,\n\t0x91, 0x73, 0xcb, 0x97, 0x54, 0xf0, 0x92, 0x9f, 0x61, 0xbf, 0xa3, 0x78, 0x22, 0x96, 0xbc, 0x74,\n\t0x92, 0x23, 0x47, 0xb9, 0x56, 0xf0, 0x35, 0x58, 0xa1, 0x6e, 0x9b, 0xba, 0x44, 0x3d, 0xbc, 0x71,\n\t0x7e, 0x73, 0xc9, 0x23, 0x8b, 0x2c, 0x93, 0xbb, 0x2e, 0xe6, 0x93, 0x83, 0x0c, 0x0a, 0x1a, 0xc1,\n\t0xd5, 0xff, 0x99, 0x93, 0x19, 0x39, 0x33, 0x8a, 0x16, 0x92, 0x3b, 0x24, 0x18, 0x69, 0x21, 0xb5,\n\t0x8f, 0x86, 0x1a, 0xb2, 0x6e, 0xe4, 0x55, 0xa8, 0x40, 0x6f, 0x5d, 0x37, 0xd2, 0x28, 0x51, 0x37,\n\t0x72, 0x8d, 0x14, 0x98, 0x08, 0x42, 0xcc, 0x64, 0x89, 0xd9, 0x6b, 0x18, 0xc4, 0x91, 0xda, 0x47,\n\t0x43, 0x0d, 0xfd, 0xbf, 0x85, 0x9c, 0x04, 0xc9, 0x02, 0x4c, 0x9c, 0x66, 0xf0, 0x95, 0x9e, 0x3d,\n\t0x8d, 0x3d, 0x3c, 0x8d, 0x0d, 0xff, 0xa0, 0x01, 0x88, 0x87, 0x10, 0x8d, 0x41, 0x81, 0x46, 0x55,\n\t0x54, 0xbf, 0x53, 0x4b, 0x18, 0xbb, 0x23, 0x38, 0xd1, 0x6b, 0xbc, 0xa9, 0xfc, 0xc3, 0x51, 0x05,\n\t0x94, 0xe3, 0x1c, 0xda, 0xa0, 0x14, 0xed, 0xd6, 0x83, 0xc0, 0x0b, 0x54, 0x7b, 0xea, 0x37, 0xc6,\n\t0x22, 0x35, 0xcd, 0x8a, 0xfc, 0xb8, 0x89, 0x4d, 0xaf, 0x7b, 0xd5, 0x52, 0x42, 0x8e, 0x92, 0xb0,\n\t0xc2, 0x8b, 0x4d, 0x62, 0x2f, 0xc5, 0xbb, 0x79, 0xd9, 0x27, 0xe3, 0xbd, 0x24, 0x60, 0x37, 0xeb,\n\t0xe0, 0x1b, 0x63, 0xae, 0xe5, 0x4e, 0x6f, 0xd6, 0x6f, 0x35, 0x90, 0xf4, 0x01, 0x0f, 0x41, 0x91,\n\t0x53, 0xd5, 0x75, 0xe9, 0x0f, 0xc0, 0x1b, 0x88, 0xe4, 0x94, 0x3a, 0x24, 0xa6, 0x42, 0xb1, 0x42,\n\t0x12, 0x05, 0x7e, 0x0e, 0xe6, 0x1c, 0xc2, 0x18, 0x6e, 0x29, 0xcf, 0xf1, 0xe7, 0x50, 0x23, 0xda,\n\t0x46, 0x03, 0xb9, 0xfe, 0x08, 0xac, 0xe5, 0x7c, 0x56, 0xc2, 0x2a, 0x98, 0xb1, 0xe4, 0x9f, 0x01,\n\t0x22, 0xa0, 0x19, 0x73, 0x41, 0x30, 0xca, 0x9e, 0xfc, 0x17, 0x20, 0xda, 0x37, 0xbf, 0xff, 0xf6,\n\t0x43, 0x65, 0xea, 0xdd, 0x87, 0xca, 0xd4, 0xfb, 0x0f, 0x95, 0xa9, 0x5f, 0xf7, 0x2b, 0xda, 0xdb,\n\t0x7e, 0x45, 0x7b, 0xd7, 0xaf, 0x68, 0xef, 0xfb, 0x15, 0xed, 0xdf, 0xfd, 0x8a, 0xf6, 0xfb, 0xff,\n\t0x54, 0xa6, 0x7e, 0xba, 0x91, 0xfb, 0x77, 0xea, 0xd7, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xf9,\n\t0xe3, 0xd5, 0x7f, 0x15, 0x00, 0x00,\n}\n\nfunc (m *CSIDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxMount != nil {\n\t\ti--\n\t\tif *m.SELinuxMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.RequiresRepublish != nil {\n\t\ti--\n\t\tif *m.RequiresRepublish {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor iNdEx := len(m.TokenRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TokenRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\ti -= len(*m.FSGroupPolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StorageCapacity != nil {\n\t\ti--\n\t\tif *m.StorageCapacity {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumeLifecycleModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumeLifecycleModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeLifecycleModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\ti--\n\t\tif *m.PodInfoOnMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.AttachRequired != nil {\n\t\ti--\n\t\tif *m.AttachRequired {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINode) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINode) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINode) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Allocatable != nil {\n\t\t{\n\t\t\tsize, err := m.Allocatable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor iNdEx := len(m.TopologyKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TopologyKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TopologyKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.NodeID)\n\tcopy(dAtA[i:], m.NodeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor iNdEx := len(m.Drivers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Drivers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor iNdEx := len(m.AllowedTopologies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedTopologies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\ti -= len(*m.VolumeBindingMode)\n\t\tcopy(dAtA[i:], *m.VolumeBindingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\ti--\n\t\tif *m.AllowVolumeExpansion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\ti -= len(*m.ReclaimPolicy)\n\t\tcopy(dAtA[i:], *m.ReclaimPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReclaimPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Provisioner)\n\tcopy(dAtA[i:], m.Provisioner)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Provisioner)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Count))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIDriverList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIDriverSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.AttachRequired != nil {\n\t\tn += 2\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\tn += 2\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor _, s := range m.VolumeLifecycleModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StorageCapacity != nil {\n\t\tn += 2\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\tl = len(*m.FSGroupPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor _, e := range m.TokenRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RequiresRepublish != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxMount != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *CSINode) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSINodeDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor _, s := range m.TopologyKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Allocatable != nil {\n\t\tl = m.Allocatable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor _, e := range m.Drivers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Provisioner)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\tl = len(*m.ReclaimPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\tn += 2\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\tl = len(*m.VolumeBindingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor _, e := range m.AllowedTopologies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeNodeResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Count))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIDriver{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSIDriverSpec\", \"CSIDriverSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIDriver{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIDriver\", \"CSIDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIDriverList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTokenRequests := \"[]TokenRequest{\"\n\tfor _, f := range this.TokenRequests {\n\t\trepeatedStringForTokenRequests += strings.Replace(strings.Replace(f.String(), \"TokenRequest\", \"TokenRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTokenRequests += \"}\"\n\ts := strings.Join([]string{`&CSIDriverSpec{`,\n\t\t`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,\n\t\t`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,\n\t\t`VolumeLifecycleModes:` + fmt.Sprintf(\"%v\", this.VolumeLifecycleModes) + `,`,\n\t\t`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,\n\t\t`FSGroupPolicy:` + valueToStringGenerated(this.FSGroupPolicy) + `,`,\n\t\t`TokenRequests:` + repeatedStringForTokenRequests + `,`,\n\t\t`RequiresRepublish:` + valueToStringGenerated(this.RequiresRepublish) + `,`,\n\t\t`SELinuxMount:` + valueToStringGenerated(this.SELinuxMount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINode) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINode{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSINodeSpec\", \"CSINodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINodeDriver{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`NodeID:` + fmt.Sprintf(\"%v\", this.NodeID) + `,`,\n\t\t`TopologyKeys:` + fmt.Sprintf(\"%v\", this.TopologyKeys) + `,`,\n\t\t`Allocatable:` + strings.Replace(this.Allocatable.String(), \"VolumeNodeResources\", \"VolumeNodeResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSINode{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSINode\", \"CSINode\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSINodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDrivers := \"[]CSINodeDriver{\"\n\tfor _, f := range this.Drivers {\n\t\trepeatedStringForDrivers += strings.Replace(strings.Replace(f.String(), \"CSINodeDriver\", \"CSINodeDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDrivers += \"}\"\n\ts := strings.Join([]string{`&CSINodeSpec{`,\n\t\t`Drivers:` + repeatedStringForDrivers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAllowedTopologies := \"[]TopologySelectorTerm{\"\n\tfor _, f := range this.AllowedTopologies {\n\t\trepeatedStringForAllowedTopologies += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAllowedTopologies += \"}\"\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&StorageClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Provisioner:` + fmt.Sprintf(\"%v\", this.Provisioner) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,\n\t\t`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,\n\t\t`AllowedTopologies:` + repeatedStringForAllowedTopologies + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageClass\", \"StorageClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeResources{`,\n\t\t`Count:` + valueToStringGenerated(this.Count) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIDriver{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachRequired\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AttachRequired = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodInfoOnMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.PodInfoOnMount = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeLifecycleModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageCapacity\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.StorageCapacity = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FSGroupPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TokenRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TokenRequests = append(m.TokenRequests, TokenRequest{})\n\t\t\tif err := m.TokenRequests[len(m.TokenRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiresRepublish\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RequiresRepublish = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SELinuxMount = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINode) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKeys = append(m.TopologyKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = &VolumeNodeResources{}\n\t\t\t}\n\t\t\tif err := m.Allocatable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSINode{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drivers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drivers = append(m.Drivers, CSINodeDriver{})\n\t\t\tif err := m.Drivers[len(m.Drivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Provisioner\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Provisioner = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.ReclaimPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowVolumeExpansion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowVolumeExpansion = &b\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeBindingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := VolumeBindingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeBindingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedTopologies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedTopologies = append(m.AllowedTopologies, v11.TopologySelectorTerm{})\n\t\t\tif err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Count = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1\";\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\nmessage CSIDriver {\n  // Standard object metadata.\n  // metadata.Name indicates the name of the CSI driver that this object\n  // refers to; it MUST be the same name returned by the CSI GetPluginName()\n  // call for that driver.\n  // The driver name must be 63 characters or less, beginning and ending with\n  // an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n  // alphanumerics between.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the CSI Driver.\n  optional CSIDriverSpec spec = 2;\n}\n\n// CSIDriverList is a collection of CSIDriver objects.\nmessage CSIDriverList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIDriver\n  repeated CSIDriver items = 2;\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\nmessage CSIDriverSpec {\n  // attachRequired indicates this CSI volume driver requires an attach\n  // operation (because it implements the CSI ControllerPublishVolume()\n  // method), and that the Kubernetes attach detach controller should call\n  // the attach volume interface which checks the volumeattachment status\n  // and waits until the volume is attached before proceeding to mounting.\n  // The CSI external-attacher coordinates with CSI volume driver and updates\n  // the volumeattachment status when the attach operation is complete.\n  // If the CSIDriverRegistry feature gate is enabled and the value is\n  // specified to false, the attach operation will be skipped.\n  // Otherwise the attach operation will be called.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool attachRequired = 1;\n\n  // podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n  // during mount operations, if set to true.\n  // If set to false, pod information will not be passed on mount.\n  // Default is false.\n  //\n  // The CSI driver specifies podInfoOnMount as part of driver deployment.\n  // If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n  // The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n  //\n  // The following VolumeConext will be passed if podInfoOnMount is set to true.\n  // This list might grow, but the prefix will be used.\n  // \"csi.storage.k8s.io/pod.name\": pod.Name\n  // \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n  // \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n  // \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n  //                                 defined by a CSIVolumeSource, otherwise \"false\"\n  //\n  // \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n  // required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n  // Other drivers can leave pod info disabled and/or ignore this field.\n  // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n  // deployed on such a cluster and the deployment determines which mode that is, for example\n  // via a command line parameter of the driver.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool podInfoOnMount = 2;\n\n  // volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n  // The default if the list is empty is \"Persistent\", which is the usage defined by the\n  // CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n  //\n  // The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n  // with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n  // A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n  //\n  // For more information about implementing this mode, see\n  // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n  // A driver can support one or more of these modes and more modes may be added in the future.\n  //\n  // This field is beta.\n  // This field is immutable.\n  //\n  // +optional\n  // +listType=set\n  repeated string volumeLifecycleModes = 3;\n\n  // storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n  // capacity that the driver deployment will report by creating\n  // CSIStorageCapacity objects with capacity information, if set to true.\n  //\n  // The check can be enabled immediately when deploying a driver.\n  // In that case, provisioning new volumes with late binding\n  // will pause until the driver deployment has published\n  // some suitable CSIStorageCapacity object.\n  //\n  // Alternatively, the driver can be deployed with the field\n  // unset or false and it can be flipped later when storage\n  // capacity information has been published.\n  //\n  // This field was immutable in Kubernetes <= 1.22 and now is mutable.\n  //\n  // +optional\n  // +featureGate=CSIStorageCapacity\n  optional bool storageCapacity = 4;\n\n  // fsGroupPolicy defines if the underlying volume supports changing ownership and\n  // permission of the volume before being mounted.\n  // Refer to the specific FSGroupPolicy values for additional details.\n  //\n  // This field is immutable.\n  //\n  // Defaults to ReadWriteOnceWithFSType, which will examine each volume\n  // to determine if Kubernetes should modify ownership and permissions of the volume.\n  // With the default policy the defined fsGroup will only be applied\n  // if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n  //\n  // +optional\n  optional string fsGroupPolicy = 5;\n\n  // tokenRequests indicates the CSI driver needs pods' service account\n  // tokens it is mounting volume for to do necessary authentication. Kubelet\n  // will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n  // The CSI driver should parse and validate the following VolumeContext:\n  // \"csi.storage.k8s.io/serviceAccount.tokens\": {\n  //   \"<audience>\": {\n  //     \"token\": <token>,\n  //     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n  //   },\n  //   ...\n  // }\n  //\n  // Note: Audience in each TokenRequest should be different and at\n  // most one token is empty string. To receive a new token after expiry,\n  // RequiresRepublish can be used to trigger NodePublishVolume periodically.\n  //\n  // +optional\n  // +listType=atomic\n  repeated TokenRequest tokenRequests = 6;\n\n  // requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n  // being periodically called to reflect any possible change in the mounted\n  // volume. This field defaults to false.\n  //\n  // Note: After a successful initial NodePublishVolume call, subsequent calls\n  // to NodePublishVolume should only update the contents of the volume. New\n  // mount points will not be seen by a running container.\n  //\n  // +optional\n  optional bool requiresRepublish = 7;\n\n  // seLinuxMount specifies if the CSI driver supports \"-o context\"\n  // mount option.\n  //\n  // When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n  // driver can be mounted separately with different `-o context` options. This is\n  // typical for storage backends that provide volumes as filesystems on block\n  // devices or as independent shared volumes.\n  // Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n  // option when mounting a ReadWriteOncePod volume used in Pod that has\n  // explicitly set SELinux context. In the future, it may be expanded to other\n  // volume AccessModes. In any case, Kubernetes will ensure that the volume is\n  // mounted only with a single SELinux context.\n  //\n  // When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n  // This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n  //\n  // Default is \"false\".\n  //\n  // +featureGate=SELinuxMountReadWriteOncePod\n  // +optional\n  optional bool seLinuxMount = 8;\n}\n\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\nmessage CSINode {\n  // Standard object's metadata.\n  // metadata.name must be the Kubernetes node name.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification of CSINode\n  optional CSINodeSpec spec = 2;\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\nmessage CSINodeDriver {\n  // name represents the name of the CSI driver that this object refers to.\n  // This MUST be the same name returned by the CSI GetPluginName() call for\n  // that driver.\n  optional string name = 1;\n\n  // nodeID of the node from the driver point of view.\n  // This field enables Kubernetes to communicate with storage systems that do\n  // not share the same nomenclature for nodes. For example, Kubernetes may\n  // refer to a given node as \"node1\", but the storage system may refer to\n  // the same node as \"nodeA\". When Kubernetes issues a command to the storage\n  // system to attach a volume to a specific node, it can use this field to\n  // refer to the node name using the ID that the storage system will\n  // understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n  optional string nodeID = 2;\n\n  // topologyKeys is the list of keys supported by the driver.\n  // When a driver is initialized on a cluster, it provides a set of topology\n  // keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n  // When a driver is initialized on a node, it provides the same topology keys\n  // along with values. Kubelet will expose these topology keys as labels\n  // on its own node object.\n  // When Kubernetes does topology aware provisioning, it can use this list to\n  // determine which labels it should retrieve from the node object and pass\n  // back to the driver.\n  // It is possible for different nodes to use different topology keys.\n  // This can be empty if driver does not support topology.\n  // +optional\n  repeated string topologyKeys = 3;\n\n  // allocatable represents the volume resources of a node that are available for scheduling.\n  // This field is beta.\n  // +optional\n  optional VolumeNodeResources allocatable = 4;\n}\n\n// CSINodeList is a collection of CSINode objects.\nmessage CSINodeList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSINode\n  repeated CSINode items = 2;\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\nmessage CSINodeSpec {\n  // drivers is a list of information of all CSI Drivers existing on a node.\n  // If all drivers in the list are uninstalled, this can become empty.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated CSINodeDriver drivers = 1;\n}\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata.\n  // The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters).\n  // To ensure that there are no conflicts with other CSI drivers on the cluster,\n  // the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name\n  // which ends with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  // +listType=map\n  // +listMapKey=name\n  repeated CSIStorageCapacity items = 2;\n}\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\nmessage StorageClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // provisioner indicates the type of the provisioner.\n  optional string provisioner = 2;\n\n  // parameters holds the parameters for the provisioner that should\n  // create volumes of this storage class.\n  // +optional\n  map<string, string> parameters = 3;\n\n  // reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n  // Defaults to Delete.\n  // +optional\n  optional string reclaimPolicy = 4;\n\n  // mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n  // e.g. [\"ro\", \"soft\"]. Not validated -\n  // mount of the PVs will simply fail if one is invalid.\n  // +optional\n  repeated string mountOptions = 5;\n\n  // allowVolumeExpansion shows whether the storage class allow volume expand.\n  // +optional\n  optional bool allowVolumeExpansion = 6;\n\n  // volumeBindingMode indicates how PersistentVolumeClaims should be\n  // provisioned and bound.  When unset, VolumeBindingImmediate is used.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  optional string volumeBindingMode = 7;\n\n  // allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n  // Each volume plugin defines its own supported topology specifications.\n  // An empty TopologySelectorTerm list means there is no topology restriction.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;\n}\n\n// StorageClassList is a collection of storage classes.\nmessage StorageClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of StorageClasses\n  repeated StorageClass items = 2;\n}\n\n// TokenRequest contains parameters of a service account token.\nmessage TokenRequest {\n  // audience is the intended audience of the token in \"TokenRequestSpec\".\n  // It will default to the audiences of kube apiserver.\n  optional string audience = 1;\n\n  // expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n  // It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".\n  //\n  // +optional\n  optional int64 expirationSeconds = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is beta-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string may be logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\nmessage VolumeNodeResources {\n  // count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n  // A volume that is both attached and mounted on a node is considered to be used once, not twice.\n  // The same rule applies for a unique volume that is shared among multiple pods on the same node.\n  // If this field is not specified, then the supported number of volumes on this node is unbounded.\n  // +optional\n  optional int32 count = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageClass{},\n\t\t&StorageClassList{},\n\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\n\t\t&CSINode{},\n\t\t&CSINodeList{},\n\n\t\t&CSIDriver{},\n\t\t&CSIDriverList{},\n\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\ntype StorageClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// provisioner indicates the type of the provisioner.\n\tProvisioner string `json:\"provisioner\" protobuf:\"bytes,2,opt,name=provisioner\"`\n\n\t// parameters holds the parameters for the provisioner that should\n\t// create volumes of this storage class.\n\t// +optional\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n\n\t// reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n\t// Defaults to Delete.\n\t// +optional\n\tReclaimPolicy *v1.PersistentVolumeReclaimPolicy `json:\"reclaimPolicy,omitempty\" protobuf:\"bytes,4,opt,name=reclaimPolicy,casttype=k8s.io/api/core/v1.PersistentVolumeReclaimPolicy\"`\n\n\t// mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n\t// e.g. [\"ro\", \"soft\"]. Not validated -\n\t// mount of the PVs will simply fail if one is invalid.\n\t// +optional\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,5,opt,name=mountOptions\"`\n\n\t// allowVolumeExpansion shows whether the storage class allow volume expand.\n\t// +optional\n\tAllowVolumeExpansion *bool `json:\"allowVolumeExpansion,omitempty\" protobuf:\"varint,6,opt,name=allowVolumeExpansion\"`\n\n\t// volumeBindingMode indicates how PersistentVolumeClaims should be\n\t// provisioned and bound.  When unset, VolumeBindingImmediate is used.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\tVolumeBindingMode *VolumeBindingMode `json:\"volumeBindingMode,omitempty\" protobuf:\"bytes,7,opt,name=volumeBindingMode\"`\n\n\t// allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n\t// Each volume plugin defines its own supported topology specifications.\n\t// An empty TopologySelectorTerm list means there is no topology restriction.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\t// +listType=atomic\n\tAllowedTopologies []v1.TopologySelectorTerm `json:\"allowedTopologies,omitempty\" protobuf:\"bytes,8,rep,name=allowedTopologies\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// StorageClassList is a collection of storage classes.\ntype StorageClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of StorageClasses\n\tItems []StorageClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeBindingMode indicates how PersistentVolumeClaims should be bound.\n// +enum\ntype VolumeBindingMode string\n\nconst (\n\t// VolumeBindingImmediate indicates that PersistentVolumeClaims should be\n\t// immediately provisioned and bound.  This is the default mode.\n\tVolumeBindingImmediate VolumeBindingMode = \"Immediate\"\n\n\t// VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims\n\t// should not be provisioned and bound until the first Pod is created that\n\t// references the PeristentVolumeClaim.  The volume provisioning and\n\t// binding will occur during Pod scheduing.\n\tVolumeBindingWaitForFirstConsumer VolumeBindingMode = \"WaitForFirstConsumer\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is beta-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string may be logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\ntype CSIDriver struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// metadata.Name indicates the name of the CSI driver that this object\n\t// refers to; it MUST be the same name returned by the CSI GetPluginName()\n\t// call for that driver.\n\t// The driver name must be 63 characters or less, beginning and ending with\n\t// an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n\t// alphanumerics between.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the CSI Driver.\n\tSpec CSIDriverSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSIDriverList is a collection of CSIDriver objects.\ntype CSIDriverList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIDriver\n\tItems []CSIDriver `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\ntype CSIDriverSpec struct {\n\t// attachRequired indicates this CSI volume driver requires an attach\n\t// operation (because it implements the CSI ControllerPublishVolume()\n\t// method), and that the Kubernetes attach detach controller should call\n\t// the attach volume interface which checks the volumeattachment status\n\t// and waits until the volume is attached before proceeding to mounting.\n\t// The CSI external-attacher coordinates with CSI volume driver and updates\n\t// the volumeattachment status when the attach operation is complete.\n\t// If the CSIDriverRegistry feature gate is enabled and the value is\n\t// specified to false, the attach operation will be skipped.\n\t// Otherwise the attach operation will be called.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tAttachRequired *bool `json:\"attachRequired,omitempty\" protobuf:\"varint,1,opt,name=attachRequired\"`\n\n\t// podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n\t// during mount operations, if set to true.\n\t// If set to false, pod information will not be passed on mount.\n\t// Default is false.\n\t//\n\t// The CSI driver specifies podInfoOnMount as part of driver deployment.\n\t// If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n\t// The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\t//\n\t// The following VolumeConext will be passed if podInfoOnMount is set to true.\n\t// This list might grow, but the prefix will be used.\n\t// \"csi.storage.k8s.io/pod.name\": pod.Name\n\t// \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n\t// \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n\t// \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n\t//                                 defined by a CSIVolumeSource, otherwise \"false\"\n\t//\n\t// \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n\t// required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n\t// Other drivers can leave pod info disabled and/or ignore this field.\n\t// As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n\t// deployed on such a cluster and the deployment determines which mode that is, for example\n\t// via a command line parameter of the driver.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tPodInfoOnMount *bool `json:\"podInfoOnMount,omitempty\" protobuf:\"bytes,2,opt,name=podInfoOnMount\"`\n\n\t// volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n\t// The default if the list is empty is \"Persistent\", which is the usage defined by the\n\t// CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n\t//\n\t// The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n\t// with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n\t// A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n\t//\n\t// For more information about implementing this mode, see\n\t// https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n\t// A driver can support one or more of these modes and more modes may be added in the future.\n\t//\n\t// This field is beta.\n\t// This field is immutable.\n\t//\n\t// +optional\n\t// +listType=set\n\tVolumeLifecycleModes []VolumeLifecycleMode `json:\"volumeLifecycleModes,omitempty\" protobuf:\"bytes,3,opt,name=volumeLifecycleModes\"`\n\n\t// storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n\t// capacity that the driver deployment will report by creating\n\t// CSIStorageCapacity objects with capacity information, if set to true.\n\t//\n\t// The check can be enabled immediately when deploying a driver.\n\t// In that case, provisioning new volumes with late binding\n\t// will pause until the driver deployment has published\n\t// some suitable CSIStorageCapacity object.\n\t//\n\t// Alternatively, the driver can be deployed with the field\n\t// unset or false and it can be flipped later when storage\n\t// capacity information has been published.\n\t//\n\t// This field was immutable in Kubernetes <= 1.22 and now is mutable.\n\t//\n\t// +optional\n\t// +featureGate=CSIStorageCapacity\n\tStorageCapacity *bool `json:\"storageCapacity,omitempty\" protobuf:\"bytes,4,opt,name=storageCapacity\"`\n\n\t// fsGroupPolicy defines if the underlying volume supports changing ownership and\n\t// permission of the volume before being mounted.\n\t// Refer to the specific FSGroupPolicy values for additional details.\n\t//\n\t// This field is immutable.\n\t//\n\t// Defaults to ReadWriteOnceWithFSType, which will examine each volume\n\t// to determine if Kubernetes should modify ownership and permissions of the volume.\n\t// With the default policy the defined fsGroup will only be applied\n\t// if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n\t//\n\t// +optional\n\tFSGroupPolicy *FSGroupPolicy `json:\"fsGroupPolicy,omitempty\" protobuf:\"bytes,5,opt,name=fsGroupPolicy\"`\n\n\t// tokenRequests indicates the CSI driver needs pods' service account\n\t// tokens it is mounting volume for to do necessary authentication. Kubelet\n\t// will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n\t// The CSI driver should parse and validate the following VolumeContext:\n\t// \"csi.storage.k8s.io/serviceAccount.tokens\": {\n\t//   \"<audience>\": {\n\t//     \"token\": <token>,\n\t//     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n\t//   },\n\t//   ...\n\t// }\n\t//\n\t// Note: Audience in each TokenRequest should be different and at\n\t// most one token is empty string. To receive a new token after expiry,\n\t// RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tTokenRequests []TokenRequest `json:\"tokenRequests,omitempty\" protobuf:\"bytes,6,opt,name=tokenRequests\"`\n\n\t// requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n\t// being periodically called to reflect any possible change in the mounted\n\t// volume. This field defaults to false.\n\t//\n\t// Note: After a successful initial NodePublishVolume call, subsequent calls\n\t// to NodePublishVolume should only update the contents of the volume. New\n\t// mount points will not be seen by a running container.\n\t//\n\t// +optional\n\tRequiresRepublish *bool `json:\"requiresRepublish,omitempty\" protobuf:\"varint,7,opt,name=requiresRepublish\"`\n\n\t// seLinuxMount specifies if the CSI driver supports \"-o context\"\n\t// mount option.\n\t//\n\t// When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n\t// driver can be mounted separately with different `-o context` options. This is\n\t// typical for storage backends that provide volumes as filesystems on block\n\t// devices or as independent shared volumes.\n\t// Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n\t// option when mounting a ReadWriteOncePod volume used in Pod that has\n\t// explicitly set SELinux context. In the future, it may be expanded to other\n\t// volume AccessModes. In any case, Kubernetes will ensure that the volume is\n\t// mounted only with a single SELinux context.\n\t//\n\t// When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n\t// This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\t//\n\t// Default is \"false\".\n\t//\n\t// +featureGate=SELinuxMountReadWriteOncePod\n\t// +optional\n\tSELinuxMount *bool `json:\"seLinuxMount,omitempty\" protobuf:\"varint,8,opt,name=seLinuxMount\"`\n}\n\n// FSGroupPolicy specifies if a CSI Driver supports modifying\n// volume ownership and permissions of the volume to be mounted.\n// More modes may be added in the future.\ntype FSGroupPolicy string\n\nconst (\n\t// ReadWriteOnceWithFSTypeFSGroupPolicy indicates that each volume will be examined\n\t// to determine if the volume ownership and permissions\n\t// should be modified. If a fstype is defined and the volume's access mode\n\t// contains ReadWriteOnce, then the defined fsGroup will be applied.\n\t// This mode should be defined if it's expected that the\n\t// fsGroup may need to be modified depending on the pod's SecurityPolicy.\n\t// This is the default behavior if no other FSGroupPolicy is defined.\n\tReadWriteOnceWithFSTypeFSGroupPolicy FSGroupPolicy = \"ReadWriteOnceWithFSType\"\n\n\t// FileFSGroupPolicy indicates that CSI driver supports volume ownership\n\t// and permission change via fsGroup, and Kubernetes will change the permissions\n\t// and ownership of every file in the volume to match the user requested fsGroup in\n\t// the pod's SecurityPolicy regardless of fstype or access mode.\n\t// Use this mode if Kubernetes should modify the permissions and ownership\n\t// of the volume.\n\tFileFSGroupPolicy FSGroupPolicy = \"File\"\n\n\t// NoneFSGroupPolicy indicates that volumes will be mounted without performing\n\t// any ownership or permission modifications, as the CSIDriver does not support\n\t// these operations.\n\t// This mode should be selected if the CSIDriver does not support fsGroup modifications,\n\t// for example when Kubernetes cannot change ownership and permissions on a volume due\n\t// to root-squash settings on a NFS volume.\n\tNoneFSGroupPolicy FSGroupPolicy = \"None\"\n)\n\n// VolumeLifecycleMode is an enumeration of possible usage modes for a volume\n// provided by a CSI driver. More modes may be added in the future.\ntype VolumeLifecycleMode string\n\n// TokenRequest contains parameters of a service account token.\ntype TokenRequest struct {\n\t// audience is the intended audience of the token in \"TokenRequestSpec\".\n\t// It will default to the audiences of kube apiserver.\n\tAudience string `json:\"audience\" protobuf:\"bytes,1,opt,name=audience\"`\n\n\t// expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n\t// It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".\n\t//\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n}\n\nconst (\n\t// VolumeLifecyclePersistent explicitly confirms that the driver implements\n\t// the full CSI spec. It is the default when CSIDriverSpec.VolumeLifecycleModes is not\n\t// set. Such volumes are managed in Kubernetes via the persistent volume\n\t// claim mechanism and have a lifecycle that is independent of the pods which\n\t// use them.\n\tVolumeLifecyclePersistent VolumeLifecycleMode = \"Persistent\"\n\n\t// VolumeLifecycleEphemeral indicates that the driver can be used for\n\t// ephemeral inline volumes. Such volumes are specified inside the pod\n\t// spec with a CSIVolumeSource and, as far as Kubernetes is concerned, have\n\t// a lifecycle that is tied to the lifecycle of the pod. For example, such\n\t// a volume might contain data that gets created specifically for that pod,\n\t// like secrets.\n\t// But how the volume actually gets created and managed is entirely up to\n\t// the driver. It might also use reference counting to share the same volume\n\t// instance among different pods if the CSIVolumeSource of those pods is\n\t// identical.\n\tVolumeLifecycleEphemeral VolumeLifecycleMode = \"Ephemeral\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\ntype CSINode struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// metadata.name must be the Kubernetes node name.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification of CSINode\n\tSpec CSINodeSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\ntype CSINodeSpec struct {\n\t// drivers is a list of information of all CSI Drivers existing on a node.\n\t// If all drivers in the list are uninstalled, this can become empty.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tDrivers []CSINodeDriver `json:\"drivers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=drivers\"`\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\ntype CSINodeDriver struct {\n\t// name represents the name of the CSI driver that this object refers to.\n\t// This MUST be the same name returned by the CSI GetPluginName() call for\n\t// that driver.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// nodeID of the node from the driver point of view.\n\t// This field enables Kubernetes to communicate with storage systems that do\n\t// not share the same nomenclature for nodes. For example, Kubernetes may\n\t// refer to a given node as \"node1\", but the storage system may refer to\n\t// the same node as \"nodeA\". When Kubernetes issues a command to the storage\n\t// system to attach a volume to a specific node, it can use this field to\n\t// refer to the node name using the ID that the storage system will\n\t// understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n\tNodeID string `json:\"nodeID\" protobuf:\"bytes,2,opt,name=nodeID\"`\n\n\t// topologyKeys is the list of keys supported by the driver.\n\t// When a driver is initialized on a cluster, it provides a set of topology\n\t// keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n\t// When a driver is initialized on a node, it provides the same topology keys\n\t// along with values. Kubelet will expose these topology keys as labels\n\t// on its own node object.\n\t// When Kubernetes does topology aware provisioning, it can use this list to\n\t// determine which labels it should retrieve from the node object and pass\n\t// back to the driver.\n\t// It is possible for different nodes to use different topology keys.\n\t// This can be empty if driver does not support topology.\n\t// +optional\n\tTopologyKeys []string `json:\"topologyKeys\" protobuf:\"bytes,3,rep,name=topologyKeys\"`\n\n\t// allocatable represents the volume resources of a node that are available for scheduling.\n\t// This field is beta.\n\t// +optional\n\tAllocatable *VolumeNodeResources `json:\"allocatable,omitempty\" protobuf:\"bytes,4,opt,name=allocatable\"`\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\ntype VolumeNodeResources struct {\n\t// count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n\t// A volume that is both attached and mounted on a node is considered to be used once, not twice.\n\t// The same rule applies for a unique volume that is shared among multiple pods on the same node.\n\t// If this field is not specified, then the supported number of volumes on this node is unbounded.\n\t// +optional\n\tCount *int32 `json:\"count,omitempty\" protobuf:\"varint,1,opt,name=count\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSINodeList is a collection of CSINode objects.\ntype CSINodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSINode\n\tItems []CSINode `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters).\n\t// To ensure that there are no conflicts with other CSI drivers on the cluster,\n\t// the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name\n\t// which ends with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\t// +listType=map\n\t// +listMapKey=name\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIDriver = map[string]string{\n\t\"\":         \"CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the CSI Driver.\",\n}\n\nfunc (CSIDriver) SwaggerDoc() map[string]string {\n\treturn map_CSIDriver\n}\n\nvar map_CSIDriverList = map[string]string{\n\t\"\":         \"CSIDriverList is a collection of CSIDriver objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIDriver\",\n}\n\nfunc (CSIDriverList) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverList\n}\n\nvar map_CSIDriverSpec = map[string]string{\n\t\"\":                     \"CSIDriverSpec is the specification of a CSIDriver.\",\n\t\"attachRequired\":       \"attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\\n\\nThis field is immutable.\",\n\t\"podInfoOnMount\":       \"podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\\n\\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\\n\\nThe following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \\\"csi.storage.k8s.io/pod.name\\\": pod.Name \\\"csi.storage.k8s.io/pod.namespace\\\": pod.Namespace \\\"csi.storage.k8s.io/pod.uid\\\": string(pod.UID) \\\"csi.storage.k8s.io/ephemeral\\\": \\\"true\\\" if the volume is an ephemeral inline volume\\n                                defined by a CSIVolumeSource, otherwise \\\"false\\\"\\n\\n\\\"csi.storage.k8s.io/ephemeral\\\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \\\"Persistent\\\" and \\\"Ephemeral\\\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\\n\\nThis field is immutable.\",\n\t\"volumeLifecycleModes\": \"volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \\\"Persistent\\\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\\n\\nThe other mode is \\\"Ephemeral\\\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\\n\\nFor more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\\n\\nThis field is beta. This field is immutable.\",\n\t\"storageCapacity\":      \"storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true.\\n\\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\\n\\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\\n\\nThis field was immutable in Kubernetes <= 1.22 and now is mutable.\",\n\t\"fsGroupPolicy\":        \"fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\\n\\nThis field is immutable.\\n\\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.\",\n\t\"tokenRequests\":        \"tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \\\"csi.storage.k8s.io/serviceAccount.tokens\\\": {\\n  \\\"<audience>\\\": {\\n    \\\"token\\\": <token>,\\n    \\\"expirationTimestamp\\\": <expiration timestamp in RFC3339>,\\n  },\\n  ...\\n}\\n\\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\",\n\t\"requiresRepublish\":    \"requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\\n\\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\",\n\t\"seLinuxMount\":         \"seLinuxMount specifies if the CSI driver supports \\\"-o context\\\" mount option.\\n\\nWhen \\\"true\\\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \\\"-o context=xyz\\\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\\n\\nWhen \\\"false\\\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\\n\\nDefault is \\\"false\\\".\",\n}\n\nfunc (CSIDriverSpec) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverSpec\n}\n\nvar map_CSINode = map[string]string{\n\t\"\":         \"CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.\",\n\t\"metadata\": \"Standard object's metadata. metadata.name must be the Kubernetes node name.\",\n\t\"spec\":     \"spec is the specification of CSINode\",\n}\n\nfunc (CSINode) SwaggerDoc() map[string]string {\n\treturn map_CSINode\n}\n\nvar map_CSINodeDriver = map[string]string{\n\t\"\":             \"CSINodeDriver holds information about the specification of one CSI driver installed on a node\",\n\t\"name\":         \"name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.\",\n\t\"nodeID\":       \"nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \\\"node1\\\", but the storage system may refer to the same node as \\\"nodeA\\\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \\\"nodeA\\\" instead of \\\"node1\\\". This field is required.\",\n\t\"topologyKeys\": \"topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \\\"company.com/zone\\\", \\\"company.com/region\\\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.\",\n\t\"allocatable\":  \"allocatable represents the volume resources of a node that are available for scheduling. This field is beta.\",\n}\n\nfunc (CSINodeDriver) SwaggerDoc() map[string]string {\n\treturn map_CSINodeDriver\n}\n\nvar map_CSINodeList = map[string]string{\n\t\"\":         \"CSINodeList is a collection of CSINode objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSINode\",\n}\n\nfunc (CSINodeList) SwaggerDoc() map[string]string {\n\treturn map_CSINodeList\n}\n\nvar map_CSINodeSpec = map[string]string{\n\t\"\":        \"CSINodeSpec holds information about the specification of all CSI drivers installed on a node\",\n\t\"drivers\": \"drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.\",\n}\n\nfunc (CSINodeSpec) SwaggerDoc() map[string]string {\n\treturn map_CSINodeSpec\n}\n\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_StorageClass = map[string]string{\n\t\"\":                     \"StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\\n\\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.\",\n\t\"metadata\":             \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"provisioner\":          \"provisioner indicates the type of the provisioner.\",\n\t\"parameters\":           \"parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\n\t\"reclaimPolicy\":        \"reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.\",\n\t\"mountOptions\":         \"mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount of the PVs will simply fail if one is invalid.\",\n\t\"allowVolumeExpansion\": \"allowVolumeExpansion shows whether the storage class allow volume expand.\",\n\t\"volumeBindingMode\":    \"volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.\",\n\t\"allowedTopologies\":    \"allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.\",\n}\n\nfunc (StorageClass) SwaggerDoc() map[string]string {\n\treturn map_StorageClass\n}\n\nvar map_StorageClassList = map[string]string{\n\t\"\":         \"StorageClassList is a collection of storage classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of StorageClasses\",\n}\n\nfunc (StorageClassList) SwaggerDoc() map[string]string {\n\treturn map_StorageClassList\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":                  \"TokenRequest contains parameters of a service account token.\",\n\t\"audience\":          \"audience is the intended audience of the token in \\\"TokenRequestSpec\\\". It will default to the audiences of kube apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the duration of validity of the token in \\\"TokenRequestSpec\\\". It has the same default value of \\\"ExpirationSeconds\\\" in \\\"TokenRequestSpec\\\".\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\nvar map_VolumeNodeResources = map[string]string{\n\t\"\":      \"VolumeNodeResources is a set of resource limits for scheduling of volumes.\",\n\t\"count\": \"count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.\",\n}\n\nfunc (VolumeNodeResources) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeResources\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriver) DeepCopyInto(out *CSIDriver) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriver.\nfunc (in *CSIDriver) DeepCopy() *CSIDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriver) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverList) DeepCopyInto(out *CSIDriverList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverList.\nfunc (in *CSIDriverList) DeepCopy() *CSIDriverList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriverList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {\n\t*out = *in\n\tif in.AttachRequired != nil {\n\t\tin, out := &in.AttachRequired, &out.AttachRequired\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PodInfoOnMount != nil {\n\t\tin, out := &in.PodInfoOnMount, &out.PodInfoOnMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeLifecycleModes != nil {\n\t\tin, out := &in.VolumeLifecycleModes, &out.VolumeLifecycleModes\n\t\t*out = make([]VolumeLifecycleMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StorageCapacity != nil {\n\t\tin, out := &in.StorageCapacity, &out.StorageCapacity\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSGroupPolicy != nil {\n\t\tin, out := &in.FSGroupPolicy, &out.FSGroupPolicy\n\t\t*out = new(FSGroupPolicy)\n\t\t**out = **in\n\t}\n\tif in.TokenRequests != nil {\n\t\tin, out := &in.TokenRequests, &out.TokenRequests\n\t\t*out = make([]TokenRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.RequiresRepublish != nil {\n\t\tin, out := &in.RequiresRepublish, &out.RequiresRepublish\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxMount != nil {\n\t\tin, out := &in.SELinuxMount, &out.SELinuxMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverSpec.\nfunc (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINode) DeepCopyInto(out *CSINode) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINode.\nfunc (in *CSINode) DeepCopy() *CSINode {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINode)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINode) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeDriver) DeepCopyInto(out *CSINodeDriver) {\n\t*out = *in\n\tif in.TopologyKeys != nil {\n\t\tin, out := &in.TopologyKeys, &out.TopologyKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = new(VolumeNodeResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeDriver.\nfunc (in *CSINodeDriver) DeepCopy() *CSINodeDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeList) DeepCopyInto(out *CSINodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSINode, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeList.\nfunc (in *CSINodeList) DeepCopy() *CSINodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeSpec) DeepCopyInto(out *CSINodeSpec) {\n\t*out = *in\n\tif in.Drivers != nil {\n\t\tin, out := &in.Drivers, &out.Drivers\n\t\t*out = make([]CSINodeDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeSpec.\nfunc (in *CSINodeSpec) DeepCopy() *CSINodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClass) DeepCopyInto(out *StorageClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ReclaimPolicy != nil {\n\t\tin, out := &in.ReclaimPolicy, &out.ReclaimPolicy\n\t\t*out = new(corev1.PersistentVolumeReclaimPolicy)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowVolumeExpansion != nil {\n\t\tin, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeBindingMode != nil {\n\t\tin, out := &in.VolumeBindingMode, &out.VolumeBindingMode\n\t\t*out = new(VolumeBindingMode)\n\t\t**out = **in\n\t}\n\tif in.AllowedTopologies != nil {\n\t\tin, out := &in.AllowedTopologies, &out.AllowedTopologies\n\t\t*out = make([]corev1.TopologySelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClass.\nfunc (in *StorageClass) DeepCopy() *StorageClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClassList) DeepCopyInto(out *StorageClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClassList.\nfunc (in *StorageClassList) DeepCopy() *StorageClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeResources) DeepCopyInto(out *VolumeNodeResources) {\n\t*out = *in\n\tif in.Count != nil {\n\t\tin, out := &in.Count, &out.Count\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeResources.\nfunc (in *VolumeNodeResources) DeepCopy() *VolumeNodeResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1alpha1 // import \"k8s.io/api/storage/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{0}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{1}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{2}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{3}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{4}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{5}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{6}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_10f856db1e670dc4, []int{7}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1alpha1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1alpha1.CSIStorageCapacityList\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1alpha1.VolumeError\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto\", fileDescriptor_10f856db1e670dc4)\n}\n\nvar fileDescriptor_10f856db1e670dc4 = []byte{\n\t// 925 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x3f, 0x6f, 0x23, 0x45,\n\t0x14, 0xf7, 0xc6, 0xce, 0x9d, 0x6f, 0x1c, 0xc0, 0x37, 0x32, 0x87, 0xe5, 0x93, 0xd6, 0x91, 0x2b,\n\t0x83, 0xb8, 0x59, 0x72, 0x20, 0x74, 0xa2, 0xf3, 0x26, 0x29, 0x22, 0x92, 0x00, 0xe3, 0x08, 0x21,\n\t0xa0, 0x60, 0xbc, 0x7e, 0xd8, 0x13, 0x7b, 0xff, 0x68, 0x67, 0x36, 0xc2, 0x54, 0x54, 0xd4, 0x74,\n\t0x7c, 0x03, 0x3e, 0x4b, 0x0a, 0x24, 0x4e, 0x54, 0x57, 0x59, 0x64, 0xf9, 0x0e, 0x14, 0x34, 0xa0,\n\t0x9d, 0x1d, 0xaf, 0x37, 0x5e, 0x27, 0xe7, 0x4b, 0x71, 0x9d, 0xdf, 0x9b, 0xf7, 0x7e, 0xbf, 0xf7,\n\t0xdf, 0x8b, 0x0e, 0x26, 0xcf, 0x04, 0xe1, 0xbe, 0x35, 0x89, 0x06, 0x10, 0x7a, 0x20, 0x41, 0x58,\n\t0x17, 0xe0, 0x0d, 0xfd, 0xd0, 0xd2, 0x0f, 0x2c, 0xe0, 0x96, 0x90, 0x7e, 0xc8, 0x46, 0x60, 0x5d,\n\t0xec, 0xb1, 0x69, 0x30, 0x66, 0x7b, 0xd6, 0x08, 0x3c, 0x08, 0x99, 0x84, 0x21, 0x09, 0x42, 0x5f,\n\t0xfa, 0xf8, 0x71, 0x6a, 0x4c, 0x58, 0xc0, 0x89, 0x36, 0x26, 0x0b, 0xe3, 0xd6, 0x93, 0x11, 0x97,\n\t0xe3, 0x68, 0x40, 0x1c, 0xdf, 0xb5, 0x46, 0xfe, 0xc8, 0xb7, 0x94, 0xcf, 0x20, 0xfa, 0x5e, 0x49,\n\t0x4a, 0x50, 0xbf, 0x52, 0xac, 0x56, 0x27, 0x47, 0xec, 0xf8, 0x61, 0xc2, 0xba, 0xca, 0xd7, 0xfa,\n\t0x68, 0x69, 0xe3, 0x32, 0x67, 0xcc, 0x3d, 0x08, 0x67, 0x56, 0x30, 0x19, 0x29, 0xa7, 0x10, 0x84,\n\t0x1f, 0x85, 0x0e, 0xbc, 0x92, 0x97, 0xb0, 0x5c, 0x90, 0x6c, 0x1d, 0x97, 0x75, 0x93, 0x57, 0x18,\n\t0x79, 0x92, 0xbb, 0x45, 0x9a, 0x8f, 0x5f, 0xe6, 0x20, 0x9c, 0x31, 0xb8, 0x6c, 0xd5, 0xaf, 0xf3,\n\t0x4f, 0x19, 0xe1, 0xfd, 0xfe, 0x51, 0x3f, 0xad, 0xdf, 0x3e, 0x0b, 0x98, 0xc3, 0xe5, 0x0c, 0x7f,\n\t0x87, 0xaa, 0x49, 0x68, 0x43, 0x26, 0x59, 0xd3, 0xd8, 0x35, 0xba, 0xb5, 0xa7, 0x1f, 0x90, 0x65,\n\t0xb9, 0x33, 0x06, 0x12, 0x4c, 0x46, 0x89, 0x42, 0x90, 0xc4, 0x9a, 0x5c, 0xec, 0x91, 0xcf, 0x06,\n\t0xe7, 0xe0, 0xc8, 0x13, 0x90, 0xcc, 0xc6, 0x97, 0xf3, 0x76, 0x29, 0x9e, 0xb7, 0xd1, 0x52, 0x47,\n\t0x33, 0x54, 0xcc, 0xd1, 0x8e, 0xe7, 0x0f, 0xe1, 0xcc, 0x0f, 0xfc, 0xa9, 0x3f, 0x9a, 0x35, 0xb7,\n\t0x14, 0xcb, 0x87, 0x9b, 0xb1, 0x1c, 0xb3, 0x01, 0x4c, 0xfb, 0x30, 0x05, 0x47, 0xfa, 0xa1, 0x5d,\n\t0x8f, 0xe7, 0xed, 0x9d, 0xd3, 0x1c, 0x18, 0xbd, 0x06, 0x8d, 0x0f, 0x50, 0x5d, 0xcf, 0xc7, 0xfe,\n\t0x94, 0x09, 0x71, 0xca, 0x5c, 0x68, 0x96, 0x77, 0x8d, 0xee, 0x03, 0xbb, 0xa9, 0x43, 0xac, 0xf7,\n\t0x57, 0xde, 0x69, 0xc1, 0x03, 0x7f, 0x85, 0xaa, 0x8e, 0x2e, 0x4f, 0xb3, 0xa2, 0x82, 0x25, 0xb7,\n\t0x05, 0x4b, 0x16, 0x13, 0x41, 0xbe, 0x88, 0x98, 0x27, 0xb9, 0x9c, 0xd9, 0x3b, 0xf1, 0xbc, 0x5d,\n\t0x5d, 0x94, 0x98, 0x66, 0x68, 0x58, 0xa0, 0x87, 0x2e, 0xfb, 0x81, 0xbb, 0x91, 0xfb, 0xa5, 0x3f,\n\t0x8d, 0x5c, 0xe8, 0xf3, 0x1f, 0xa1, 0xb9, 0x7d, 0x27, 0x8a, 0xb7, 0xe3, 0x79, 0xfb, 0xe1, 0xc9,\n\t0x2a, 0x18, 0x2d, 0xe2, 0x77, 0x7e, 0x37, 0xd0, 0xa3, 0x62, 0xe3, 0x8f, 0xb9, 0x90, 0xf8, 0xdb,\n\t0x42, 0xf3, 0xc9, 0x86, 0x6d, 0xe1, 0x22, 0x6d, 0x7d, 0x5d, 0xd7, 0xb5, 0xba, 0xd0, 0xe4, 0x1a,\n\t0x7f, 0x86, 0xb6, 0xb9, 0x04, 0x57, 0x34, 0xb7, 0x76, 0xcb, 0xdd, 0xda, 0x53, 0x8b, 0xdc, 0xb2,\n\t0xc6, 0xa4, 0x18, 0xa1, 0xfd, 0x86, 0xc6, 0xde, 0x3e, 0x4a, 0x50, 0x68, 0x0a, 0xd6, 0xf9, 0x6d,\n\t0x0b, 0xd5, 0xd3, 0xec, 0x7a, 0x52, 0x32, 0x67, 0xec, 0x82, 0x27, 0x5f, 0xc3, 0x14, 0xf7, 0x51,\n\t0x45, 0x04, 0xe0, 0xe8, 0xe9, 0xdd, 0xbb, 0x35, 0x97, 0xd5, 0xf0, 0xfa, 0x01, 0x38, 0xf6, 0x8e,\n\t0x86, 0xaf, 0x24, 0x12, 0x55, 0x60, 0xf8, 0x1b, 0x74, 0x4f, 0x48, 0x26, 0x23, 0xa1, 0xa6, 0xf4,\n\t0xfa, 0x52, 0x6c, 0x00, 0xab, 0x5c, 0xed, 0x37, 0x35, 0xf0, 0xbd, 0x54, 0xa6, 0x1a, 0xb2, 0x73,\n\t0x69, 0xa0, 0xc6, 0xaa, 0xcb, 0x6b, 0xe8, 0x3a, 0xbd, 0xde, 0xf5, 0x27, 0xaf, 0x94, 0xd2, 0x0d,\n\t0x3d, 0xff, 0xd3, 0x40, 0x8f, 0x0a, 0xd9, 0xab, 0x85, 0xc0, 0xc7, 0xa8, 0x11, 0x40, 0x28, 0xb8,\n\t0x90, 0xe0, 0xc9, 0xd4, 0x46, 0xad, 0xbd, 0x91, 0xae, 0x7d, 0x3c, 0x6f, 0x37, 0x3e, 0x5f, 0xf3,\n\t0x4e, 0xd7, 0x7a, 0xe1, 0x73, 0x54, 0xe7, 0xde, 0x94, 0x7b, 0xa0, 0xf7, 0x67, 0xd9, 0xf1, 0x6e,\n\t0x3e, 0x8f, 0xe4, 0x8f, 0x23, 0x29, 0xc8, 0x2a, 0xb2, 0x6a, 0x74, 0x23, 0x39, 0x33, 0x47, 0x2b,\n\t0x28, 0xb4, 0x80, 0xdb, 0xf9, 0x63, 0x4d, 0x7f, 0x92, 0x07, 0xfc, 0x3e, 0xaa, 0x32, 0xa5, 0x81,\n\t0x50, 0xa7, 0x91, 0xd5, 0xbb, 0xa7, 0xf5, 0x34, 0xb3, 0x50, 0x33, 0xa4, 0x4a, 0xb1, 0xe6, 0xb0,\n\t0x6e, 0x30, 0x43, 0xca, 0x35, 0x37, 0x43, 0x4a, 0xa6, 0x1a, 0x32, 0x09, 0x25, 0x39, 0xb0, 0xb9,\n\t0x43, 0x9a, 0x85, 0x72, 0xaa, 0xf5, 0x34, 0xb3, 0xe8, 0xfc, 0x57, 0x5e, 0xd3, 0x26, 0x35, 0x8c,\n\t0xb9, 0x9c, 0x86, 0x2a, 0xa7, 0x6a, 0x21, 0xa7, 0x61, 0x96, 0xd3, 0x10, 0xff, 0x6a, 0x20, 0xcc,\n\t0x32, 0x88, 0x93, 0xc5, 0xb0, 0xa6, 0x13, 0xf5, 0xe9, 0x1d, 0x96, 0x84, 0xf4, 0x0a, 0x68, 0x87,\n\t0x9e, 0x0c, 0x67, 0x76, 0x4b, 0x47, 0x81, 0x8b, 0x06, 0x74, 0x4d, 0x08, 0xf8, 0x1c, 0xd5, 0x52,\n\t0xed, 0x61, 0x18, 0xfa, 0xa1, 0x5e, 0xdb, 0xee, 0x06, 0x11, 0x29, 0x7b, 0xdb, 0x8c, 0xe7, 0xed,\n\t0x5a, 0x6f, 0x09, 0xf0, 0xef, 0xbc, 0x5d, 0xcb, 0xbd, 0xd3, 0x3c, 0x78, 0xc2, 0x35, 0x84, 0x25,\n\t0x57, 0xe5, 0x2e, 0x5c, 0x07, 0x70, 0x33, 0x57, 0x0e, 0xbc, 0x75, 0x88, 0xde, 0xb9, 0xa1, 0x44,\n\t0xb8, 0x8e, 0xca, 0x13, 0x98, 0xa5, 0x93, 0x48, 0x93, 0x9f, 0xb8, 0x81, 0xb6, 0x2f, 0xd8, 0x34,\n\t0x4a, 0x27, 0xee, 0x01, 0x4d, 0x85, 0x4f, 0xb6, 0x9e, 0x19, 0x9d, 0x9f, 0x0d, 0x94, 0xe7, 0xc0,\n\t0xc7, 0xa8, 0x92, 0x7c, 0x93, 0xe8, 0x33, 0xf3, 0xde, 0x66, 0x67, 0xe6, 0x8c, 0xbb, 0xb0, 0x3c,\n\t0x97, 0x89, 0x44, 0x15, 0x0a, 0x7e, 0x17, 0xdd, 0x77, 0x41, 0x08, 0x36, 0xd2, 0xcc, 0xf6, 0x5b,\n\t0xda, 0xe8, 0xfe, 0x49, 0xaa, 0xa6, 0x8b, 0x77, 0xbb, 0x77, 0x79, 0x65, 0x96, 0x9e, 0x5f, 0x99,\n\t0xa5, 0x17, 0x57, 0x66, 0xe9, 0xa7, 0xd8, 0x34, 0x2e, 0x63, 0xd3, 0x78, 0x1e, 0x9b, 0xc6, 0x8b,\n\t0xd8, 0x34, 0xfe, 0x8a, 0x4d, 0xe3, 0x97, 0xbf, 0xcd, 0xd2, 0xd7, 0x8f, 0x6f, 0xf9, 0x0a, 0xfd,\n\t0x3f, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x8d, 0x17, 0x01, 0xbc, 0x0a, 0x00, 0x00,\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1alpha1\";\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata. The name has no particular meaning. It must be\n  // be a DNS subdomain (dots allowed, 253 characters). To ensure that\n  // there are no conflicts with other CSI drivers on the cluster, the recommendation\n  // is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n  // with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  // +listType=map\n  // +listMapKey=name\n  repeated CSIStorageCapacity items = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is alpha-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string maybe logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachment\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachmentList\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is alpha-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string maybe logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacity\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata. The name has no particular meaning. It must be\n\t// be a DNS subdomain (dots allowed, 253 characters). To ensure that\n\t// there are no conflicts with other CSI drivers on the cluster, the recommendation\n\t// is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n\t// with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacityList\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\t// +listType=map\n\t// +listMapKey=name\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1beta1\", Kind: \"CSIStorageCapacity\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1beta1\", Kind: \"CSIStorageCapacityList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachmentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/storage/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIDriver) Reset()      { *m = CSIDriver{} }\nfunc (*CSIDriver) ProtoMessage() {}\nfunc (*CSIDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{0}\n}\nfunc (m *CSIDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriver.Merge(m, src)\n}\nfunc (m *CSIDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriver proto.InternalMessageInfo\n\nfunc (m *CSIDriverList) Reset()      { *m = CSIDriverList{} }\nfunc (*CSIDriverList) ProtoMessage() {}\nfunc (*CSIDriverList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{1}\n}\nfunc (m *CSIDriverList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverList.Merge(m, src)\n}\nfunc (m *CSIDriverList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverList proto.InternalMessageInfo\n\nfunc (m *CSIDriverSpec) Reset()      { *m = CSIDriverSpec{} }\nfunc (*CSIDriverSpec) ProtoMessage() {}\nfunc (*CSIDriverSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{2}\n}\nfunc (m *CSIDriverSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverSpec.Merge(m, src)\n}\nfunc (m *CSIDriverSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverSpec proto.InternalMessageInfo\n\nfunc (m *CSINode) Reset()      { *m = CSINode{} }\nfunc (*CSINode) ProtoMessage() {}\nfunc (*CSINode) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{3}\n}\nfunc (m *CSINode) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINode) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINode.Merge(m, src)\n}\nfunc (m *CSINode) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINode) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINode.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINode proto.InternalMessageInfo\n\nfunc (m *CSINodeDriver) Reset()      { *m = CSINodeDriver{} }\nfunc (*CSINodeDriver) ProtoMessage() {}\nfunc (*CSINodeDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{4}\n}\nfunc (m *CSINodeDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeDriver.Merge(m, src)\n}\nfunc (m *CSINodeDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeDriver proto.InternalMessageInfo\n\nfunc (m *CSINodeList) Reset()      { *m = CSINodeList{} }\nfunc (*CSINodeList) ProtoMessage() {}\nfunc (*CSINodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{5}\n}\nfunc (m *CSINodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeList.Merge(m, src)\n}\nfunc (m *CSINodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeList proto.InternalMessageInfo\n\nfunc (m *CSINodeSpec) Reset()      { *m = CSINodeSpec{} }\nfunc (*CSINodeSpec) ProtoMessage() {}\nfunc (*CSINodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{6}\n}\nfunc (m *CSINodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeSpec.Merge(m, src)\n}\nfunc (m *CSINodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeSpec proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{7}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{8}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *StorageClass) Reset()      { *m = StorageClass{} }\nfunc (*StorageClass) ProtoMessage() {}\nfunc (*StorageClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{9}\n}\nfunc (m *StorageClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClass.Merge(m, src)\n}\nfunc (m *StorageClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClass proto.InternalMessageInfo\n\nfunc (m *StorageClassList) Reset()      { *m = StorageClassList{} }\nfunc (*StorageClassList) ProtoMessage() {}\nfunc (*StorageClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{10}\n}\nfunc (m *StorageClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClassList.Merge(m, src)\n}\nfunc (m *StorageClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClassList proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{11}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{12}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{13}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{14}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{15}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{16}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{17}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc (m *VolumeNodeResources) Reset()      { *m = VolumeNodeResources{} }\nfunc (*VolumeNodeResources) ProtoMessage() {}\nfunc (*VolumeNodeResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7d2980599fd0de80, []int{18}\n}\nfunc (m *VolumeNodeResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeResources.Merge(m, src)\n}\nfunc (m *VolumeNodeResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeResources proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIDriver)(nil), \"k8s.io.api.storage.v1beta1.CSIDriver\")\n\tproto.RegisterType((*CSIDriverList)(nil), \"k8s.io.api.storage.v1beta1.CSIDriverList\")\n\tproto.RegisterType((*CSIDriverSpec)(nil), \"k8s.io.api.storage.v1beta1.CSIDriverSpec\")\n\tproto.RegisterType((*CSINode)(nil), \"k8s.io.api.storage.v1beta1.CSINode\")\n\tproto.RegisterType((*CSINodeDriver)(nil), \"k8s.io.api.storage.v1beta1.CSINodeDriver\")\n\tproto.RegisterType((*CSINodeList)(nil), \"k8s.io.api.storage.v1beta1.CSINodeList\")\n\tproto.RegisterType((*CSINodeSpec)(nil), \"k8s.io.api.storage.v1beta1.CSINodeSpec\")\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1beta1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1beta1.CSIStorageCapacityList\")\n\tproto.RegisterType((*StorageClass)(nil), \"k8s.io.api.storage.v1beta1.StorageClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1beta1.StorageClass.ParametersEntry\")\n\tproto.RegisterType((*StorageClassList)(nil), \"k8s.io.api.storage.v1beta1.StorageClassList\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.storage.v1beta1.TokenRequest\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1beta1.VolumeError\")\n\tproto.RegisterType((*VolumeNodeResources)(nil), \"k8s.io.api.storage.v1beta1.VolumeNodeResources\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/api/storage/v1beta1/generated.proto\", fileDescriptor_7d2980599fd0de80)\n}\n\nvar fileDescriptor_7d2980599fd0de80 = []byte{\n\t// 1672 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6f, 0x1b, 0x4d,\n\t0x19, 0xcf, 0xc6, 0xce, 0xd7, 0x38, 0x69, 0x92, 0x49, 0x5a, 0x8c, 0x0f, 0x76, 0x64, 0x04, 0x4d,\n\t0xab, 0xb2, 0x6e, 0x43, 0xa9, 0xaa, 0x4a, 0x95, 0xc8, 0x26, 0x81, 0xba, 0x8d, 0xd3, 0x74, 0x1c,\n\t0x55, 0x55, 0xc5, 0x81, 0xf1, 0xee, 0xc4, 0x99, 0xc6, 0xfb, 0xd1, 0x9d, 0xd9, 0x10, 0x73, 0x82,\n\t0x0b, 0x67, 0xc4, 0x81, 0xbf, 0x80, 0x7f, 0x01, 0x24, 0xb8, 0x70, 0xa4, 0x12, 0x12, 0xaa, 0xb8,\n\t0xd0, 0x93, 0x45, 0xcd, 0x9f, 0xf0, 0x4a, 0xef, 0x21, 0x7a, 0x0f, 0xaf, 0x66, 0x76, 0xec, 0xfd,\n\t0xb2, 0x9b, 0xe4, 0x3d, 0xf8, 0xe6, 0x79, 0x3e, 0x7e, 0xcf, 0x33, 0xf3, 0x7c, 0xae, 0xc1, 0xce,\n\t0xe9, 0x63, 0xa6, 0x53, 0xb7, 0x76, 0x1a, 0xb4, 0x88, 0xef, 0x10, 0x4e, 0x58, 0xed, 0x8c, 0x38,\n\t0x96, 0xeb, 0xd7, 0x14, 0x03, 0x7b, 0xb4, 0xc6, 0xb8, 0xeb, 0xe3, 0x36, 0xa9, 0x9d, 0x3d, 0x68,\n\t0x11, 0x8e, 0x1f, 0xd4, 0xda, 0xc4, 0x21, 0x3e, 0xe6, 0xc4, 0xd2, 0x3d, 0xdf, 0xe5, 0x2e, 0x2c,\n\t0x85, 0xb2, 0x3a, 0xf6, 0xa8, 0xae, 0x64, 0x75, 0x25, 0x5b, 0xfa, 0x71, 0x9b, 0xf2, 0x93, 0xa0,\n\t0xa5, 0x9b, 0xae, 0x5d, 0x6b, 0xbb, 0x6d, 0xb7, 0x26, 0x55, 0x5a, 0xc1, 0xb1, 0x3c, 0xc9, 0x83,\n\t0xfc, 0x15, 0x42, 0x95, 0xaa, 0x31, 0xb3, 0xa6, 0xeb, 0x0b, 0x9b, 0x69, 0x73, 0xa5, 0x87, 0x91,\n\t0x8c, 0x8d, 0xcd, 0x13, 0xea, 0x10, 0xbf, 0x5b, 0xf3, 0x4e, 0xdb, 0x52, 0xc9, 0x27, 0xcc, 0x0d,\n\t0x7c, 0x93, 0x5c, 0x4b, 0x8b, 0xd5, 0x6c, 0xc2, 0xf1, 0x28, 0x5b, 0xb5, 0x71, 0x5a, 0x7e, 0xe0,\n\t0x70, 0x6a, 0x67, 0xcd, 0x3c, 0xba, 0x4c, 0x81, 0x99, 0x27, 0xc4, 0xc6, 0x69, 0xbd, 0xea, 0xdf,\n\t0x35, 0xb0, 0xb0, 0xd3, 0xac, 0xef, 0xfa, 0xf4, 0x8c, 0xf8, 0xf0, 0x57, 0x60, 0x5e, 0x78, 0x64,\n\t0x61, 0x8e, 0x8b, 0xda, 0x86, 0xb6, 0x59, 0xd8, 0xba, 0xaf, 0x47, 0x8f, 0x3c, 0x04, 0xd6, 0xbd,\n\t0xd3, 0xb6, 0x20, 0x30, 0x5d, 0x48, 0xeb, 0x67, 0x0f, 0xf4, 0x97, 0xad, 0x77, 0xc4, 0xe4, 0x0d,\n\t0xc2, 0xb1, 0x01, 0x3f, 0xf4, 0x2a, 0x53, 0xfd, 0x5e, 0x05, 0x44, 0x34, 0x34, 0x44, 0x85, 0x2f,\n\t0x40, 0x9e, 0x79, 0xc4, 0x2c, 0x4e, 0x4b, 0xf4, 0x3b, 0xfa, 0xf8, 0x10, 0xea, 0x43, 0xb7, 0x9a,\n\t0x1e, 0x31, 0x8d, 0x45, 0x05, 0x9b, 0x17, 0x27, 0x24, 0x41, 0xaa, 0x7f, 0xd3, 0xc0, 0xd2, 0x50,\n\t0x6a, 0x9f, 0x32, 0x0e, 0x7f, 0x99, 0xb9, 0x80, 0x7e, 0xb5, 0x0b, 0x08, 0x6d, 0xe9, 0xfe, 0x8a,\n\t0xb2, 0x33, 0x3f, 0xa0, 0xc4, 0x9c, 0x7f, 0x0e, 0x66, 0x28, 0x27, 0x36, 0x2b, 0x4e, 0x6f, 0xe4,\n\t0x36, 0x0b, 0x5b, 0x3f, 0xbc, 0x92, 0xf7, 0xc6, 0x92, 0x42, 0x9c, 0xa9, 0x0b, 0x5d, 0x14, 0x42,\n\t0x54, 0xff, 0x9b, 0x8f, 0xf9, 0x2e, 0xee, 0x04, 0x9f, 0x80, 0x1b, 0x98, 0x73, 0x6c, 0x9e, 0x20,\n\t0xf2, 0x3e, 0xa0, 0x3e, 0xb1, 0xe4, 0x0d, 0xe6, 0x0d, 0xd8, 0xef, 0x55, 0x6e, 0x6c, 0x27, 0x38,\n\t0x28, 0x25, 0x29, 0x74, 0x3d, 0xd7, 0xaa, 0x3b, 0xc7, 0xee, 0x4b, 0xa7, 0xe1, 0x06, 0x0e, 0x97,\n\t0x0f, 0xac, 0x74, 0x0f, 0x13, 0x1c, 0x94, 0x92, 0x84, 0x26, 0x58, 0x3f, 0x73, 0x3b, 0x81, 0x4d,\n\t0xf6, 0xe9, 0x31, 0x31, 0xbb, 0x66, 0x87, 0x34, 0x5c, 0x8b, 0xb0, 0x62, 0x6e, 0x23, 0xb7, 0xb9,\n\t0x60, 0xd4, 0xfa, 0xbd, 0xca, 0xfa, 0xeb, 0x11, 0xfc, 0x8b, 0x5e, 0x65, 0x6d, 0x04, 0x1d, 0x8d,\n\t0x04, 0x83, 0x4f, 0xc1, 0xb2, 0x7a, 0xa1, 0x1d, 0xec, 0x61, 0x93, 0xf2, 0x6e, 0x31, 0x2f, 0x3d,\n\t0x5c, 0xeb, 0xf7, 0x2a, 0xcb, 0xcd, 0x24, 0x0b, 0xa5, 0x65, 0xe1, 0x33, 0xb0, 0x74, 0xcc, 0x7e,\n\t0xe1, 0xbb, 0x81, 0x77, 0xe8, 0x76, 0xa8, 0xd9, 0x2d, 0xce, 0x6c, 0x68, 0x9b, 0x0b, 0x46, 0xb5,\n\t0xdf, 0xab, 0x2c, 0xfd, 0xbc, 0x19, 0x63, 0x5c, 0xa4, 0x09, 0x28, 0xa9, 0x08, 0x09, 0x58, 0xe2,\n\t0xee, 0x29, 0x71, 0xc4, 0xd3, 0x11, 0xc6, 0x59, 0x71, 0x56, 0xc6, 0x72, 0xf3, 0x4b, 0xb1, 0x3c,\n\t0x8a, 0x29, 0x18, 0x37, 0x55, 0x38, 0x97, 0xe2, 0x54, 0x86, 0x92, 0xa8, 0x70, 0x07, 0xac, 0xfa,\n\t0x61, 0x70, 0x18, 0x22, 0x5e, 0xd0, 0xea, 0x50, 0x76, 0x52, 0x9c, 0x93, 0x37, 0xbe, 0xd9, 0xef,\n\t0x55, 0x56, 0x51, 0x9a, 0x89, 0xb2, 0xf2, 0xf0, 0x21, 0x58, 0x64, 0x64, 0x9f, 0x3a, 0xc1, 0x79,\n\t0x18, 0xd3, 0x79, 0xa9, 0xbf, 0xd2, 0xef, 0x55, 0x16, 0x9b, 0x7b, 0x11, 0x1d, 0x25, 0xa4, 0xaa,\n\t0x7f, 0xd5, 0xc0, 0xdc, 0x4e, 0xb3, 0x7e, 0xe0, 0x5a, 0x64, 0x02, 0x05, 0x5d, 0x4f, 0x14, 0xf4,\n\t0xed, 0x4b, 0x4a, 0x42, 0x38, 0x35, 0xb6, 0x9c, 0xbf, 0x0a, 0xcb, 0x59, 0xc8, 0xa8, 0x7e, 0xb4,\n\t0x01, 0xf2, 0x0e, 0xb6, 0x89, 0x74, 0x7d, 0x21, 0xd2, 0x39, 0xc0, 0x36, 0x41, 0x92, 0x03, 0x7f,\n\t0x04, 0x66, 0x1d, 0xd7, 0x22, 0xf5, 0x5d, 0xe9, 0xc0, 0x82, 0x71, 0x43, 0xc9, 0xcc, 0x1e, 0x48,\n\t0x2a, 0x52, 0x5c, 0xf1, 0x94, 0xdc, 0xf5, 0xdc, 0x8e, 0xdb, 0xee, 0xbe, 0x20, 0xdd, 0x41, 0x72,\n\t0xcb, 0xa7, 0x3c, 0x8a, 0xd1, 0x51, 0x42, 0x0a, 0xb6, 0x40, 0x01, 0x77, 0x3a, 0xae, 0x89, 0x39,\n\t0x6e, 0x75, 0x88, 0xcc, 0xd8, 0xc2, 0x56, 0xed, 0x4b, 0x77, 0x0c, 0x2b, 0x42, 0x18, 0x47, 0x6a,\n\t0x22, 0x30, 0x63, 0xb9, 0xdf, 0xab, 0x14, 0xb6, 0x23, 0x1c, 0x14, 0x07, 0xad, 0xfe, 0x45, 0x03,\n\t0x05, 0x75, 0xeb, 0x09, 0xb4, 0xb0, 0x67, 0xc9, 0x16, 0xf6, 0x83, 0x2b, 0xc4, 0x6b, 0x4c, 0x03,\n\t0x33, 0x87, 0x6e, 0xcb, 0xee, 0x75, 0x04, 0xe6, 0x2c, 0x19, 0x34, 0x56, 0xd4, 0x24, 0xf4, 0x9d,\n\t0x2b, 0x40, 0xab, 0x0e, 0xb9, 0xac, 0x0c, 0xcc, 0x85, 0x67, 0x86, 0x06, 0x50, 0xd5, 0xaf, 0x73,\n\t0x00, 0xee, 0x34, 0xeb, 0xa9, 0xfe, 0x30, 0x81, 0xb4, 0xa6, 0x60, 0x51, 0x64, 0xce, 0x20, 0x37,\n\t0x54, 0x7a, 0xff, 0xe4, 0x8a, 0x91, 0xc0, 0x2d, 0xd2, 0x69, 0x92, 0x0e, 0x31, 0xb9, 0xeb, 0x87,\n\t0x49, 0x76, 0x10, 0x03, 0x43, 0x09, 0x68, 0xb8, 0x0b, 0x56, 0x06, 0xed, 0xae, 0x83, 0x19, 0x13,\n\t0xc9, 0x5d, 0xcc, 0xc9, 0x64, 0x2e, 0x2a, 0x17, 0x57, 0x9a, 0x29, 0x3e, 0xca, 0x68, 0xc0, 0x37,\n\t0x60, 0xde, 0x8c, 0x77, 0xd6, 0x4b, 0xd2, 0x46, 0x1f, 0x2c, 0x2c, 0xfa, 0xab, 0x00, 0x3b, 0x9c,\n\t0xf2, 0xae, 0xb1, 0x28, 0x52, 0x66, 0xd8, 0x82, 0x87, 0x68, 0x90, 0x81, 0x55, 0x1b, 0x9f, 0x53,\n\t0x3b, 0xb0, 0xc3, 0xe4, 0x6e, 0xd2, 0xdf, 0x10, 0xd9, 0x7f, 0xaf, 0x6f, 0x42, 0xb6, 0xbe, 0x46,\n\t0x1a, 0x0c, 0x65, 0xf1, 0xab, 0xff, 0xd2, 0xc0, 0xad, 0x6c, 0xe0, 0x27, 0x50, 0x20, 0xcd, 0x64,\n\t0x81, 0xe8, 0x97, 0x64, 0x71, 0xca, 0xc1, 0x31, 0xb5, 0xf2, 0xc7, 0x59, 0xb0, 0x18, 0x8f, 0xe1,\n\t0x04, 0x12, 0xf8, 0xa7, 0xa0, 0xe0, 0xf9, 0xee, 0x19, 0x65, 0xd4, 0x75, 0x88, 0xaf, 0xba, 0xe3,\n\t0x9a, 0x52, 0x29, 0x1c, 0x46, 0x2c, 0x14, 0x97, 0x83, 0x1d, 0x00, 0x3c, 0xec, 0x63, 0x9b, 0x70,\n\t0x51, 0xc9, 0x39, 0xf9, 0x06, 0x8f, 0xbf, 0xf4, 0x06, 0xf1, 0x6b, 0xe9, 0x87, 0x43, 0xd5, 0x3d,\n\t0x87, 0xfb, 0xdd, 0xc8, 0xc5, 0x88, 0x81, 0x62, 0xf8, 0xf0, 0x14, 0x2c, 0xf9, 0xc4, 0xec, 0x60,\n\t0x6a, 0xab, 0xb1, 0x9e, 0x97, 0x6e, 0xee, 0x89, 0xf1, 0x8a, 0xe2, 0x8c, 0x8b, 0x5e, 0xe5, 0x7e,\n\t0x76, 0x45, 0xd7, 0x0f, 0x89, 0xcf, 0x28, 0xe3, 0xc4, 0xe1, 0x61, 0xea, 0x24, 0x74, 0x50, 0x12,\n\t0x5b, 0x8c, 0x00, 0x5b, 0x0c, 0xc8, 0x97, 0x1e, 0xa7, 0xae, 0xc3, 0x8a, 0x33, 0xd1, 0x08, 0x68,\n\t0xc4, 0xe8, 0x28, 0x21, 0x05, 0xf7, 0xc1, 0xba, 0xe8, 0xd6, 0xbf, 0x0e, 0x0d, 0xec, 0x9d, 0x7b,\n\t0xd8, 0x11, 0x4f, 0x55, 0x9c, 0x95, 0xb3, 0xb8, 0x28, 0xb6, 0xa3, 0xed, 0x11, 0x7c, 0x34, 0x52,\n\t0x0b, 0xbe, 0x01, 0xab, 0xe1, 0x7a, 0x64, 0x50, 0xc7, 0xa2, 0x4e, 0x5b, 0x2c, 0x47, 0x72, 0x2d,\n\t0x58, 0x30, 0xee, 0x8a, 0xda, 0x78, 0x9d, 0x66, 0x5e, 0x8c, 0x22, 0xa2, 0x2c, 0x08, 0x7c, 0x0f,\n\t0x56, 0xa5, 0x45, 0x62, 0xa9, 0xc6, 0x42, 0x09, 0x2b, 0xce, 0x67, 0x77, 0x1b, 0xf1, 0x74, 0x22,\n\t0x91, 0x06, 0xed, 0x67, 0xd0, 0xa6, 0x8e, 0x88, 0x6f, 0x1b, 0xdf, 0x57, 0xf1, 0x5a, 0xdd, 0x4e,\n\t0x43, 0xa1, 0x2c, 0x7a, 0xe9, 0x29, 0x58, 0x4e, 0x05, 0x1c, 0xae, 0x80, 0xdc, 0x29, 0xe9, 0x86,\n\t0xf3, 0x1a, 0x89, 0x9f, 0x70, 0x1d, 0xcc, 0x9c, 0xe1, 0x4e, 0x40, 0xc2, 0x0c, 0x44, 0xe1, 0xe1,\n\t0xc9, 0xf4, 0x63, 0xad, 0xfa, 0x0f, 0x0d, 0x24, 0x1a, 0xdb, 0x04, 0x8a, 0xbb, 0x91, 0x2c, 0xee,\n\t0xcd, 0xab, 0x26, 0xf6, 0x98, 0xb2, 0xfe, 0x9d, 0x06, 0x16, 0xe3, 0x5b, 0x20, 0xbc, 0x07, 0xe6,\n\t0x71, 0x60, 0x51, 0xe2, 0x98, 0x83, 0x9d, 0x65, 0xe8, 0xcd, 0xb6, 0xa2, 0xa3, 0xa1, 0x84, 0xd8,\n\t0x11, 0xc9, 0xb9, 0x47, 0x7d, 0x2c, 0x32, 0xad, 0x49, 0x4c, 0xd7, 0xb1, 0x98, 0x7c, 0xa6, 0x5c,\n\t0xd8, 0x28, 0xf7, 0xd2, 0x4c, 0x94, 0x95, 0xaf, 0xfe, 0x79, 0x1a, 0xac, 0x84, 0x09, 0x12, 0x7e,\n\t0x22, 0xd8, 0xc4, 0xe1, 0x13, 0x68, 0x2f, 0x28, 0xb1, 0xf6, 0xdd, 0xbf, 0x7c, 0x25, 0x8a, 0xbc,\n\t0x1b, 0xb7, 0xff, 0xc1, 0xb7, 0x60, 0x96, 0x71, 0xcc, 0x03, 0x26, 0xc7, 0x5f, 0x61, 0x6b, 0xeb,\n\t0x5a, 0xa8, 0x52, 0x33, 0xda, 0xff, 0xc2, 0x33, 0x52, 0x88, 0xd5, 0x7f, 0x6a, 0x60, 0x3d, 0xad,\n\t0x32, 0x81, 0x84, 0x7b, 0x95, 0x4c, 0xb8, 0x7b, 0xd7, 0xb9, 0xd1, 0x98, 0xa4, 0xfb, 0x8f, 0x06,\n\t0x6e, 0x65, 0x2e, 0x2f, 0xe7, 0xac, 0xe8, 0x55, 0x5e, 0xaa, 0x23, 0x1e, 0x44, 0xeb, 0xb3, 0xec,\n\t0x55, 0x87, 0x23, 0xf8, 0x68, 0xa4, 0x16, 0x7c, 0x07, 0x56, 0xa8, 0xd3, 0xa1, 0x0e, 0x51, 0x63,\n\t0x39, 0x0a, 0xf7, 0xc8, 0x86, 0x92, 0x46, 0x96, 0x61, 0x5e, 0x17, 0xdb, 0x4b, 0x3d, 0x85, 0x82,\n\t0x32, 0xb8, 0xd5, 0x7f, 0x8f, 0x08, 0x8f, 0x5c, 0x2b, 0x45, 0x45, 0x49, 0x0a, 0xf1, 0x33, 0x15,\n\t0xa5, 0xe8, 0x68, 0x28, 0x21, 0x33, 0x48, 0x3e, 0x85, 0x72, 0xf4, 0x7a, 0x19, 0x24, 0x35, 0x63,\n\t0x19, 0x24, 0xcf, 0x48, 0x21, 0x0a, 0x4f, 0xc4, 0xda, 0x16, 0x5b, 0xcf, 0x86, 0x9e, 0x1c, 0x28,\n\t0x3a, 0x1a, 0x4a, 0x54, 0xbf, 0xc9, 0x8d, 0x88, 0x92, 0x4c, 0xc5, 0xd8, 0x95, 0x06, 0x5f, 0xf8,\n\t0xe9, 0x2b, 0x59, 0xc3, 0x2b, 0x59, 0xf0, 0x4f, 0x1a, 0x80, 0x78, 0x08, 0xd1, 0x18, 0xa4, 0x6a,\n\t0x98, 0x4f, 0xcf, 0xaf, 0x5f, 0x21, 0xfa, 0x76, 0x06, 0x2c, 0x9c, 0xd5, 0x25, 0xe5, 0x04, 0xcc,\n\t0x0a, 0xa0, 0x11, 0x1e, 0x40, 0x0a, 0x0a, 0x21, 0x75, 0xcf, 0xf7, 0x5d, 0x5f, 0x95, 0xec, 0xed,\n\t0xcb, 0x1d, 0x92, 0xe2, 0x46, 0x59, 0x7e, 0x13, 0x45, 0xfa, 0x17, 0xbd, 0x4a, 0x21, 0xc6, 0x47,\n\t0x71, 0x6c, 0x61, 0xca, 0x22, 0x91, 0xa9, 0xfc, 0x77, 0x30, 0xb5, 0x4b, 0xc6, 0x9b, 0x8a, 0x61,\n\t0x97, 0xf6, 0xc0, 0xf7, 0xc6, 0x3c, 0xd0, 0xb5, 0x66, 0xdb, 0xef, 0x35, 0x10, 0xb7, 0x01, 0xf7,\n\t0x41, 0x9e, 0x53, 0x55, 0x89, 0x85, 0xad, 0xbb, 0x57, 0xeb, 0x30, 0x47, 0xd4, 0x26, 0x51, 0xa3,\n\t0x14, 0x27, 0x24, 0x51, 0xe0, 0x1d, 0x30, 0x67, 0x13, 0xc6, 0x70, 0x5b, 0x59, 0x8e, 0x3e, 0xa0,\n\t0x1a, 0x21, 0x19, 0x0d, 0xf8, 0xd5, 0x47, 0x60, 0x6d, 0xc4, 0x27, 0x29, 0xac, 0x80, 0x19, 0x53,\n\t0xfe, 0xa5, 0x20, 0x1c, 0x9a, 0x31, 0x16, 0x44, 0x97, 0xd9, 0x91, 0xff, 0x25, 0x84, 0x74, 0xe3,\n\t0x67, 0x1f, 0x3e, 0x97, 0xa7, 0x3e, 0x7e, 0x2e, 0x4f, 0x7d, 0xfa, 0x5c, 0x9e, 0xfa, 0x6d, 0xbf,\n\t0xac, 0x7d, 0xe8, 0x97, 0xb5, 0x8f, 0xfd, 0xb2, 0xf6, 0xa9, 0x5f, 0xd6, 0xfe, 0xd7, 0x2f, 0x6b,\n\t0x7f, 0xf8, 0x7f, 0x79, 0xea, 0x6d, 0x69, 0xfc, 0xbf, 0xb5, 0xdf, 0x06, 0x00, 0x00, 0xff, 0xff,\n\t0xee, 0x44, 0x0b, 0xed, 0xe3, 0x15, 0x00, 0x00,\n}\n\nfunc (m *CSIDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxMount != nil {\n\t\ti--\n\t\tif *m.SELinuxMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.RequiresRepublish != nil {\n\t\ti--\n\t\tif *m.RequiresRepublish {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor iNdEx := len(m.TokenRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TokenRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\ti -= len(*m.FSGroupPolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StorageCapacity != nil {\n\t\ti--\n\t\tif *m.StorageCapacity {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumeLifecycleModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumeLifecycleModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeLifecycleModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\ti--\n\t\tif *m.PodInfoOnMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.AttachRequired != nil {\n\t\ti--\n\t\tif *m.AttachRequired {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINode) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINode) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINode) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Allocatable != nil {\n\t\t{\n\t\t\tsize, err := m.Allocatable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor iNdEx := len(m.TopologyKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TopologyKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TopologyKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.NodeID)\n\tcopy(dAtA[i:], m.NodeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor iNdEx := len(m.Drivers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Drivers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor iNdEx := len(m.AllowedTopologies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedTopologies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\ti -= len(*m.VolumeBindingMode)\n\t\tcopy(dAtA[i:], *m.VolumeBindingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\ti--\n\t\tif *m.AllowVolumeExpansion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\ti -= len(*m.ReclaimPolicy)\n\t\tcopy(dAtA[i:], *m.ReclaimPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReclaimPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Provisioner)\n\tcopy(dAtA[i:], m.Provisioner)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Provisioner)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Count))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIDriverList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIDriverSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.AttachRequired != nil {\n\t\tn += 2\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\tn += 2\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor _, s := range m.VolumeLifecycleModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StorageCapacity != nil {\n\t\tn += 2\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\tl = len(*m.FSGroupPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor _, e := range m.TokenRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RequiresRepublish != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxMount != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *CSINode) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSINodeDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor _, s := range m.TopologyKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Allocatable != nil {\n\t\tl = m.Allocatable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor _, e := range m.Drivers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Provisioner)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\tl = len(*m.ReclaimPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\tn += 2\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\tl = len(*m.VolumeBindingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor _, e := range m.AllowedTopologies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeNodeResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Count))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIDriver{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSIDriverSpec\", \"CSIDriverSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIDriver{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIDriver\", \"CSIDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIDriverList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTokenRequests := \"[]TokenRequest{\"\n\tfor _, f := range this.TokenRequests {\n\t\trepeatedStringForTokenRequests += strings.Replace(strings.Replace(f.String(), \"TokenRequest\", \"TokenRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTokenRequests += \"}\"\n\ts := strings.Join([]string{`&CSIDriverSpec{`,\n\t\t`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,\n\t\t`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,\n\t\t`VolumeLifecycleModes:` + fmt.Sprintf(\"%v\", this.VolumeLifecycleModes) + `,`,\n\t\t`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,\n\t\t`FSGroupPolicy:` + valueToStringGenerated(this.FSGroupPolicy) + `,`,\n\t\t`TokenRequests:` + repeatedStringForTokenRequests + `,`,\n\t\t`RequiresRepublish:` + valueToStringGenerated(this.RequiresRepublish) + `,`,\n\t\t`SELinuxMount:` + valueToStringGenerated(this.SELinuxMount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINode) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINode{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSINodeSpec\", \"CSINodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINodeDriver{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`NodeID:` + fmt.Sprintf(\"%v\", this.NodeID) + `,`,\n\t\t`TopologyKeys:` + fmt.Sprintf(\"%v\", this.TopologyKeys) + `,`,\n\t\t`Allocatable:` + strings.Replace(this.Allocatable.String(), \"VolumeNodeResources\", \"VolumeNodeResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSINode{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSINode\", \"CSINode\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSINodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDrivers := \"[]CSINodeDriver{\"\n\tfor _, f := range this.Drivers {\n\t\trepeatedStringForDrivers += strings.Replace(strings.Replace(f.String(), \"CSINodeDriver\", \"CSINodeDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDrivers += \"}\"\n\ts := strings.Join([]string{`&CSINodeSpec{`,\n\t\t`Drivers:` + repeatedStringForDrivers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAllowedTopologies := \"[]TopologySelectorTerm{\"\n\tfor _, f := range this.AllowedTopologies {\n\t\trepeatedStringForAllowedTopologies += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAllowedTopologies += \"}\"\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&StorageClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Provisioner:` + fmt.Sprintf(\"%v\", this.Provisioner) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,\n\t\t`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,\n\t\t`AllowedTopologies:` + repeatedStringForAllowedTopologies + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageClass\", \"StorageClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeResources{`,\n\t\t`Count:` + valueToStringGenerated(this.Count) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIDriver{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachRequired\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AttachRequired = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodInfoOnMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.PodInfoOnMount = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeLifecycleModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageCapacity\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.StorageCapacity = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FSGroupPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TokenRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TokenRequests = append(m.TokenRequests, TokenRequest{})\n\t\t\tif err := m.TokenRequests[len(m.TokenRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiresRepublish\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RequiresRepublish = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SELinuxMount = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINode) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKeys = append(m.TopologyKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = &VolumeNodeResources{}\n\t\t\t}\n\t\t\tif err := m.Allocatable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSINode{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drivers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drivers = append(m.Drivers, CSINodeDriver{})\n\t\t\tif err := m.Drivers[len(m.Drivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Provisioner\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Provisioner = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.ReclaimPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowVolumeExpansion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowVolumeExpansion = &b\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeBindingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := VolumeBindingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeBindingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedTopologies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedTopologies = append(m.AllowedTopologies, v11.TopologySelectorTerm{})\n\t\t\tif err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Count = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1beta1\";\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// CSI drivers do not need to create the CSIDriver object directly. Instead they may use the\n// cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically\n// creates a CSIDriver object representing the driver.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\nmessage CSIDriver {\n  // Standard object metadata.\n  // metadata.Name indicates the name of the CSI driver that this object\n  // refers to; it MUST be the same name returned by the CSI GetPluginName()\n  // call for that driver.\n  // The driver name must be 63 characters or less, beginning and ending with\n  // an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n  // alphanumerics between.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the CSI Driver.\n  optional CSIDriverSpec spec = 2;\n}\n\n// CSIDriverList is a collection of CSIDriver objects.\nmessage CSIDriverList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIDriver\n  repeated CSIDriver items = 2;\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\nmessage CSIDriverSpec {\n  // attachRequired indicates this CSI volume driver requires an attach\n  // operation (because it implements the CSI ControllerPublishVolume()\n  // method), and that the Kubernetes attach detach controller should call\n  // the attach volume interface which checks the volumeattachment status\n  // and waits until the volume is attached before proceeding to mounting.\n  // The CSI external-attacher coordinates with CSI volume driver and updates\n  // the volumeattachment status when the attach operation is complete.\n  // If the CSIDriverRegistry feature gate is enabled and the value is\n  // specified to false, the attach operation will be skipped.\n  // Otherwise the attach operation will be called.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool attachRequired = 1;\n\n  // podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n  // during mount operations, if set to true.\n  // If set to false, pod information will not be passed on mount.\n  // Default is false.\n  //\n  // The CSI driver specifies podInfoOnMount as part of driver deployment.\n  // If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n  // The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n  //\n  // The following VolumeConext will be passed if podInfoOnMount is set to true.\n  // This list might grow, but the prefix will be used.\n  // \"csi.storage.k8s.io/pod.name\": pod.Name\n  // \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n  // \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n  // \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n  //                                 defined by a CSIVolumeSource, otherwise \"false\"\n  //\n  // \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n  // required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n  // Other drivers can leave pod info disabled and/or ignore this field.\n  // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n  // deployed on such a cluster and the deployment determines which mode that is, for example\n  // via a command line parameter of the driver.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool podInfoOnMount = 2;\n\n  // volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n  // The default if the list is empty is \"Persistent\", which is the usage defined by the\n  // CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n  //\n  // The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n  // with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n  // A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n  //\n  // For more information about implementing this mode, see\n  // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n  // A driver can support one or more of these modes and\n  // more modes may be added in the future.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  repeated string volumeLifecycleModes = 3;\n\n  // storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n  // capacity that the driver deployment will report by creating\n  // CSIStorageCapacity objects with capacity information, if set to true.\n  //\n  // The check can be enabled immediately when deploying a driver.\n  // In that case, provisioning new volumes with late binding\n  // will pause until the driver deployment has published\n  // some suitable CSIStorageCapacity object.\n  //\n  // Alternatively, the driver can be deployed with the field\n  // unset or false and it can be flipped later when storage\n  // capacity information has been published.\n  //\n  // This field was immutable in Kubernetes <= 1.22 and now is mutable.\n  //\n  // +optional\n  optional bool storageCapacity = 4;\n\n  // fsGroupPolicy defines if the underlying volume supports changing ownership and\n  // permission of the volume before being mounted.\n  // Refer to the specific FSGroupPolicy values for additional details.\n  //\n  // This field is immutable.\n  //\n  // Defaults to ReadWriteOnceWithFSType, which will examine each volume\n  // to determine if Kubernetes should modify ownership and permissions of the volume.\n  // With the default policy the defined fsGroup will only be applied\n  // if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n  //\n  // +optional\n  optional string fsGroupPolicy = 5;\n\n  // tokenRequests indicates the CSI driver needs pods' service account\n  // tokens it is mounting volume for to do necessary authentication. Kubelet\n  // will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n  // The CSI driver should parse and validate the following VolumeContext:\n  // \"csi.storage.k8s.io/serviceAccount.tokens\": {\n  //   \"<audience>\": {\n  //     \"token\": <token>,\n  //     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n  //   },\n  //   ...\n  // }\n  //\n  // Note: Audience in each TokenRequest should be different and at\n  // most one token is empty string. To receive a new token after expiry,\n  // RequiresRepublish can be used to trigger NodePublishVolume periodically.\n  //\n  // +optional\n  // +listType=atomic\n  repeated TokenRequest tokenRequests = 6;\n\n  // requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n  // being periodically called to reflect any possible change in the mounted\n  // volume. This field defaults to false.\n  //\n  // Note: After a successful initial NodePublishVolume call, subsequent calls\n  // to NodePublishVolume should only update the contents of the volume. New\n  // mount points will not be seen by a running container.\n  //\n  // +optional\n  optional bool requiresRepublish = 7;\n\n  // seLinuxMount specifies if the CSI driver supports \"-o context\"\n  // mount option.\n  //\n  // When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n  // driver can be mounted separately with different `-o context` options. This is\n  // typical for storage backends that provide volumes as filesystems on block\n  // devices or as independent shared volumes.\n  // Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n  // option when mounting a ReadWriteOncePod volume used in Pod that has\n  // explicitly set SELinux context. In the future, it may be expanded to other\n  // volume AccessModes. In any case, Kubernetes will ensure that the volume is\n  // mounted only with a single SELinux context.\n  //\n  // When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n  // This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n  //\n  // Default is \"false\".\n  //\n  // +featureGate=SELinuxMountReadWriteOncePod\n  // +optional\n  optional bool seLinuxMount = 8;\n}\n\n// DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode.\n// See the release notes for more information.\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\nmessage CSINode {\n  // metadata.name must be the Kubernetes node name.\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification of CSINode\n  optional CSINodeSpec spec = 2;\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\nmessage CSINodeDriver {\n  // name represents the name of the CSI driver that this object refers to.\n  // This MUST be the same name returned by the CSI GetPluginName() call for\n  // that driver.\n  optional string name = 1;\n\n  // nodeID of the node from the driver point of view.\n  // This field enables Kubernetes to communicate with storage systems that do\n  // not share the same nomenclature for nodes. For example, Kubernetes may\n  // refer to a given node as \"node1\", but the storage system may refer to\n  // the same node as \"nodeA\". When Kubernetes issues a command to the storage\n  // system to attach a volume to a specific node, it can use this field to\n  // refer to the node name using the ID that the storage system will\n  // understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n  optional string nodeID = 2;\n\n  // topologyKeys is the list of keys supported by the driver.\n  // When a driver is initialized on a cluster, it provides a set of topology\n  // keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n  // When a driver is initialized on a node, it provides the same topology keys\n  // along with values. Kubelet will expose these topology keys as labels\n  // on its own node object.\n  // When Kubernetes does topology aware provisioning, it can use this list to\n  // determine which labels it should retrieve from the node object and pass\n  // back to the driver.\n  // It is possible for different nodes to use different topology keys.\n  // This can be empty if driver does not support topology.\n  // +optional\n  repeated string topologyKeys = 3;\n\n  // allocatable represents the volume resources of a node that are available for scheduling.\n  // +optional\n  optional VolumeNodeResources allocatable = 4;\n}\n\n// CSINodeList is a collection of CSINode objects.\nmessage CSINodeList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSINode\n  repeated CSINode items = 2;\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\nmessage CSINodeSpec {\n  // drivers is a list of information of all CSI Drivers existing on a node.\n  // If all drivers in the list are uninstalled, this can become empty.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  repeated CSINodeDriver drivers = 1;\n}\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata. The name has no particular meaning. It must be\n  // be a DNS subdomain (dots allowed, 253 characters). To ensure that\n  // there are no conflicts with other CSI drivers on the cluster, the recommendation\n  // is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n  // with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  // +listType=map\n  // +listMapKey=name\n  repeated CSIStorageCapacity items = 2;\n}\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\nmessage StorageClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // provisioner indicates the type of the provisioner.\n  optional string provisioner = 2;\n\n  // parameters holds the parameters for the provisioner that should\n  // create volumes of this storage class.\n  // +optional\n  map<string, string> parameters = 3;\n\n  // reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n  // Defaults to Delete.\n  // +optional\n  optional string reclaimPolicy = 4;\n\n  // mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n  // e.g. [\"ro\", \"soft\"]. Not validated -\n  // mount of the PVs will simply fail if one is invalid.\n  // +optional\n  repeated string mountOptions = 5;\n\n  // allowVolumeExpansion shows whether the storage class allow volume expand\n  // +optional\n  optional bool allowVolumeExpansion = 6;\n\n  // volumeBindingMode indicates how PersistentVolumeClaims should be\n  // provisioned and bound.  When unset, VolumeBindingImmediate is used.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  optional string volumeBindingMode = 7;\n\n  // allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n  // Each volume plugin defines its own supported topology specifications.\n  // An empty TopologySelectorTerm list means there is no topology restriction.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  // +listType=atomic\n  repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;\n}\n\n// StorageClassList is a collection of storage classes.\nmessage StorageClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of StorageClasses\n  repeated StorageClass items = 2;\n}\n\n// TokenRequest contains parameters of a service account token.\nmessage TokenRequest {\n  // audience is the intended audience of the token in \"TokenRequestSpec\".\n  // It will default to the audiences of kube apiserver.\n  optional string audience = 1;\n\n  // expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n  // It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\"\n  //\n  // +optional\n  optional int64 expirationSeconds = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is beta-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string may be logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\nmessage VolumeNodeResources {\n  // count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n  // A volume that is both attached and mounted on a node is considered to be used once, not twice.\n  // The same rule applies for a unique volume that is shared among multiple pods on the same node.\n  // If this field is nil, then the supported number of volumes on this node is unbounded.\n  // +optional\n  optional int32 count = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageClass{},\n\t\t&StorageClassList{},\n\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\n\t\t&CSIDriver{},\n\t\t&CSIDriverList{},\n\n\t\t&CSINode{},\n\t\t&CSINodeList{},\n\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,StorageClass\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\ntype StorageClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// provisioner indicates the type of the provisioner.\n\tProvisioner string `json:\"provisioner\" protobuf:\"bytes,2,opt,name=provisioner\"`\n\n\t// parameters holds the parameters for the provisioner that should\n\t// create volumes of this storage class.\n\t// +optional\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n\n\t// reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n\t// Defaults to Delete.\n\t// +optional\n\tReclaimPolicy *v1.PersistentVolumeReclaimPolicy `json:\"reclaimPolicy,omitempty\" protobuf:\"bytes,4,opt,name=reclaimPolicy,casttype=k8s.io/api/core/v1.PersistentVolumeReclaimPolicy\"`\n\n\t// mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n\t// e.g. [\"ro\", \"soft\"]. Not validated -\n\t// mount of the PVs will simply fail if one is invalid.\n\t// +optional\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,5,opt,name=mountOptions\"`\n\n\t// allowVolumeExpansion shows whether the storage class allow volume expand\n\t// +optional\n\tAllowVolumeExpansion *bool `json:\"allowVolumeExpansion,omitempty\" protobuf:\"varint,6,opt,name=allowVolumeExpansion\"`\n\n\t// volumeBindingMode indicates how PersistentVolumeClaims should be\n\t// provisioned and bound.  When unset, VolumeBindingImmediate is used.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\tVolumeBindingMode *VolumeBindingMode `json:\"volumeBindingMode,omitempty\" protobuf:\"bytes,7,opt,name=volumeBindingMode\"`\n\n\t// allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n\t// Each volume plugin defines its own supported topology specifications.\n\t// An empty TopologySelectorTerm list means there is no topology restriction.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\t// +listType=atomic\n\tAllowedTopologies []v1.TopologySelectorTerm `json:\"allowedTopologies,omitempty\" protobuf:\"bytes,8,rep,name=allowedTopologies\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,StorageClassList\n\n// StorageClassList is a collection of storage classes.\ntype StorageClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of StorageClasses\n\tItems []StorageClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeBindingMode indicates how PersistentVolumeClaims should be bound.\ntype VolumeBindingMode string\n\nconst (\n\t// VolumeBindingImmediate indicates that PersistentVolumeClaims should be\n\t// immediately provisioned and bound.  This is the default mode.\n\tVolumeBindingImmediate VolumeBindingMode = \"Immediate\"\n\n\t// VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims\n\t// should not be provisioned and bound until the first Pod is created that\n\t// references the PeristentVolumeClaim.  The volume provisioning and\n\t// binding will occur during Pod scheduing.\n\tVolumeBindingWaitForFirstConsumer VolumeBindingMode = \"WaitForFirstConsumer\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachment\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachmentList\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistenVolumes can be attached via external attacher,\n// in future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is beta-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string may be logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIDriver\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// CSI drivers do not need to create the CSIDriver object directly. Instead they may use the\n// cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically\n// creates a CSIDriver object representing the driver.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\ntype CSIDriver struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// metadata.Name indicates the name of the CSI driver that this object\n\t// refers to; it MUST be the same name returned by the CSI GetPluginName()\n\t// call for that driver.\n\t// The driver name must be 63 characters or less, beginning and ending with\n\t// an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n\t// alphanumerics between.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the CSI Driver.\n\tSpec CSIDriverSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIDriverList\n\n// CSIDriverList is a collection of CSIDriver objects.\ntype CSIDriverList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIDriver\n\tItems []CSIDriver `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\ntype CSIDriverSpec struct {\n\t// attachRequired indicates this CSI volume driver requires an attach\n\t// operation (because it implements the CSI ControllerPublishVolume()\n\t// method), and that the Kubernetes attach detach controller should call\n\t// the attach volume interface which checks the volumeattachment status\n\t// and waits until the volume is attached before proceeding to mounting.\n\t// The CSI external-attacher coordinates with CSI volume driver and updates\n\t// the volumeattachment status when the attach operation is complete.\n\t// If the CSIDriverRegistry feature gate is enabled and the value is\n\t// specified to false, the attach operation will be skipped.\n\t// Otherwise the attach operation will be called.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tAttachRequired *bool `json:\"attachRequired,omitempty\" protobuf:\"varint,1,opt,name=attachRequired\"`\n\n\t// podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n\t// during mount operations, if set to true.\n\t// If set to false, pod information will not be passed on mount.\n\t// Default is false.\n\t//\n\t// The CSI driver specifies podInfoOnMount as part of driver deployment.\n\t// If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n\t// The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\t//\n\t// The following VolumeConext will be passed if podInfoOnMount is set to true.\n\t// This list might grow, but the prefix will be used.\n\t// \"csi.storage.k8s.io/pod.name\": pod.Name\n\t// \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n\t// \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n\t// \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n\t//                                 defined by a CSIVolumeSource, otherwise \"false\"\n\t//\n\t// \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n\t// required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n\t// Other drivers can leave pod info disabled and/or ignore this field.\n\t// As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n\t// deployed on such a cluster and the deployment determines which mode that is, for example\n\t// via a command line parameter of the driver.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tPodInfoOnMount *bool `json:\"podInfoOnMount,omitempty\" protobuf:\"bytes,2,opt,name=podInfoOnMount\"`\n\n\t// volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n\t// The default if the list is empty is \"Persistent\", which is the usage defined by the\n\t// CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n\t//\n\t// The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n\t// with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n\t// A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n\t//\n\t// For more information about implementing this mode, see\n\t// https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n\t// A driver can support one or more of these modes and\n\t// more modes may be added in the future.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tVolumeLifecycleModes []VolumeLifecycleMode `json:\"volumeLifecycleModes,omitempty\" protobuf:\"bytes,3,opt,name=volumeLifecycleModes\"`\n\n\t// storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n\t// capacity that the driver deployment will report by creating\n\t// CSIStorageCapacity objects with capacity information, if set to true.\n\t//\n\t// The check can be enabled immediately when deploying a driver.\n\t// In that case, provisioning new volumes with late binding\n\t// will pause until the driver deployment has published\n\t// some suitable CSIStorageCapacity object.\n\t//\n\t// Alternatively, the driver can be deployed with the field\n\t// unset or false and it can be flipped later when storage\n\t// capacity information has been published.\n\t//\n\t// This field was immutable in Kubernetes <= 1.22 and now is mutable.\n\t//\n\t// +optional\n\tStorageCapacity *bool `json:\"storageCapacity,omitempty\" protobuf:\"bytes,4,opt,name=storageCapacity\"`\n\n\t// fsGroupPolicy defines if the underlying volume supports changing ownership and\n\t// permission of the volume before being mounted.\n\t// Refer to the specific FSGroupPolicy values for additional details.\n\t//\n\t// This field is immutable.\n\t//\n\t// Defaults to ReadWriteOnceWithFSType, which will examine each volume\n\t// to determine if Kubernetes should modify ownership and permissions of the volume.\n\t// With the default policy the defined fsGroup will only be applied\n\t// if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n\t//\n\t// +optional\n\tFSGroupPolicy *FSGroupPolicy `json:\"fsGroupPolicy,omitempty\" protobuf:\"bytes,5,opt,name=fsGroupPolicy\"`\n\n\t// tokenRequests indicates the CSI driver needs pods' service account\n\t// tokens it is mounting volume for to do necessary authentication. Kubelet\n\t// will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n\t// The CSI driver should parse and validate the following VolumeContext:\n\t// \"csi.storage.k8s.io/serviceAccount.tokens\": {\n\t//   \"<audience>\": {\n\t//     \"token\": <token>,\n\t//     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n\t//   },\n\t//   ...\n\t// }\n\t//\n\t// Note: Audience in each TokenRequest should be different and at\n\t// most one token is empty string. To receive a new token after expiry,\n\t// RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tTokenRequests []TokenRequest `json:\"tokenRequests,omitempty\" protobuf:\"bytes,6,opt,name=tokenRequests\"`\n\n\t// requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n\t// being periodically called to reflect any possible change in the mounted\n\t// volume. This field defaults to false.\n\t//\n\t// Note: After a successful initial NodePublishVolume call, subsequent calls\n\t// to NodePublishVolume should only update the contents of the volume. New\n\t// mount points will not be seen by a running container.\n\t//\n\t// +optional\n\tRequiresRepublish *bool `json:\"requiresRepublish,omitempty\" protobuf:\"varint,7,opt,name=requiresRepublish\"`\n\n\t// seLinuxMount specifies if the CSI driver supports \"-o context\"\n\t// mount option.\n\t//\n\t// When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n\t// driver can be mounted separately with different `-o context` options. This is\n\t// typical for storage backends that provide volumes as filesystems on block\n\t// devices or as independent shared volumes.\n\t// Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n\t// option when mounting a ReadWriteOncePod volume used in Pod that has\n\t// explicitly set SELinux context. In the future, it may be expanded to other\n\t// volume AccessModes. In any case, Kubernetes will ensure that the volume is\n\t// mounted only with a single SELinux context.\n\t//\n\t// When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n\t// This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\t//\n\t// Default is \"false\".\n\t//\n\t// +featureGate=SELinuxMountReadWriteOncePod\n\t// +optional\n\tSELinuxMount *bool `json:\"seLinuxMount,omitempty\" protobuf:\"varint,8,opt,name=seLinuxMount\"`\n}\n\n// FSGroupPolicy specifies if a CSI Driver supports modifying\n// volume ownership and permissions of the volume to be mounted.\n// More modes may be added in the future.\ntype FSGroupPolicy string\n\nconst (\n\t// ReadWriteOnceWithFSTypeFSGroupPolicy indicates that each volume will be examined\n\t// to determine if the volume ownership and permissions\n\t// should be modified. If a fstype is defined and the volume's access mode\n\t// contains ReadWriteOnce, then the defined fsGroup will be applied.\n\t// This is the default behavior if no other FSGroupPolicy is defined.\n\tReadWriteOnceWithFSTypeFSGroupPolicy FSGroupPolicy = \"ReadWriteOnceWithFSType\"\n\n\t// FileFSGroupPolicy indicates that CSI driver supports volume ownership\n\t// and permission change via fsGroup, and Kubernetes will change the permissions\n\t// and ownership of every file in the volume to match the user requested fsGroup in\n\t// the pod's SecurityPolicy regardless of fstype or access mode.\n\t// Use this mode if Kubernetes should modify the permissions and ownership\n\t// of the volume.\n\tFileFSGroupPolicy FSGroupPolicy = \"File\"\n\n\t// None indicates that volumes will be mounted without performing\n\t// any ownership or permission modifications, as the CSIDriver does not support\n\t// these operations.\n\tNoneFSGroupPolicy FSGroupPolicy = \"None\"\n)\n\n// VolumeLifecycleMode is an enumeration of possible usage modes for a volume\n// provided by a CSI driver. More modes may be added in the future.\ntype VolumeLifecycleMode string\n\n// TokenRequest contains parameters of a service account token.\ntype TokenRequest struct {\n\t// audience is the intended audience of the token in \"TokenRequestSpec\".\n\t// It will default to the audiences of kube apiserver.\n\tAudience string `json:\"audience\" protobuf:\"bytes,1,opt,name=audience\"`\n\n\t// expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n\t// It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\"\n\t//\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n}\n\nconst (\n\t// VolumeLifecyclePersistent explicitly confirms that the driver implements\n\t// the full CSI spec. It is the default when CSIDriverSpec.VolumeLifecycleModes is not\n\t// set. Such volumes are managed in Kubernetes via the persistent volume\n\t// claim mechanism and have a lifecycle that is independent of the pods which\n\t// use them.\n\tVolumeLifecyclePersistent VolumeLifecycleMode = \"Persistent\"\n\n\t// VolumeLifecycleEphemeral indicates that the driver can be used for\n\t// ephemeral inline volumes. Such volumes are specified inside the pod\n\t// spec with a CSIVolumeSource and, as far as Kubernetes is concerned, have\n\t// a lifecycle that is tied to the lifecycle of the pod. For example, such\n\t// a volume might contain data that gets created specifically for that pod,\n\t// like secrets.\n\t// But how the volume actually gets created and managed is entirely up to\n\t// the driver. It might also use reference counting to share the same volume\n\t// instance among different pods if the CSIVolumeSource of those pods is\n\t// identical.\n\tVolumeLifecycleEphemeral VolumeLifecycleMode = \"Ephemeral\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSINode\n\n// DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode.\n// See the release notes for more information.\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\ntype CSINode struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata.name must be the Kubernetes node name.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification of CSINode\n\tSpec CSINodeSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\ntype CSINodeSpec struct {\n\t// drivers is a list of information of all CSI Drivers existing on a node.\n\t// If all drivers in the list are uninstalled, this can become empty.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\tDrivers []CSINodeDriver `json:\"drivers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=drivers\"`\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\ntype CSINodeDriver struct {\n\t// name represents the name of the CSI driver that this object refers to.\n\t// This MUST be the same name returned by the CSI GetPluginName() call for\n\t// that driver.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// nodeID of the node from the driver point of view.\n\t// This field enables Kubernetes to communicate with storage systems that do\n\t// not share the same nomenclature for nodes. For example, Kubernetes may\n\t// refer to a given node as \"node1\", but the storage system may refer to\n\t// the same node as \"nodeA\". When Kubernetes issues a command to the storage\n\t// system to attach a volume to a specific node, it can use this field to\n\t// refer to the node name using the ID that the storage system will\n\t// understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n\tNodeID string `json:\"nodeID\" protobuf:\"bytes,2,opt,name=nodeID\"`\n\n\t// topologyKeys is the list of keys supported by the driver.\n\t// When a driver is initialized on a cluster, it provides a set of topology\n\t// keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n\t// When a driver is initialized on a node, it provides the same topology keys\n\t// along with values. Kubelet will expose these topology keys as labels\n\t// on its own node object.\n\t// When Kubernetes does topology aware provisioning, it can use this list to\n\t// determine which labels it should retrieve from the node object and pass\n\t// back to the driver.\n\t// It is possible for different nodes to use different topology keys.\n\t// This can be empty if driver does not support topology.\n\t// +optional\n\tTopologyKeys []string `json:\"topologyKeys\" protobuf:\"bytes,3,rep,name=topologyKeys\"`\n\n\t// allocatable represents the volume resources of a node that are available for scheduling.\n\t// +optional\n\tAllocatable *VolumeNodeResources `json:\"allocatable,omitempty\" protobuf:\"bytes,4,opt,name=allocatable\"`\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\ntype VolumeNodeResources struct {\n\t// count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n\t// A volume that is both attached and mounted on a node is considered to be used once, not twice.\n\t// The same rule applies for a unique volume that is shared among multiple pods on the same node.\n\t// If this field is nil, then the supported number of volumes on this node is unbounded.\n\t// +optional\n\tCount *int32 `json:\"count,omitempty\" protobuf:\"varint,1,opt,name=count\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSINode\n\n// CSINodeList is a collection of CSINode objects.\ntype CSINodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSINode\n\tItems []CSINode `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n// +k8s:prerelease-lifecycle-gen:deprecated=1.24\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIStorageCapacity\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata. The name has no particular meaning. It must be\n\t// be a DNS subdomain (dots allowed, 253 characters). To ensure that\n\t// there are no conflicts with other CSI drivers on the cluster, the recommendation\n\t// is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n\t// with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n// +k8s:prerelease-lifecycle-gen:deprecated=1.24\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIStorageCapacityList\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\t// +listType=map\n\t// +listMapKey=name\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIDriver = map[string]string{\n\t\"\":         \"CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the CSI Driver.\",\n}\n\nfunc (CSIDriver) SwaggerDoc() map[string]string {\n\treturn map_CSIDriver\n}\n\nvar map_CSIDriverList = map[string]string{\n\t\"\":         \"CSIDriverList is a collection of CSIDriver objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIDriver\",\n}\n\nfunc (CSIDriverList) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverList\n}\n\nvar map_CSIDriverSpec = map[string]string{\n\t\"\":                     \"CSIDriverSpec is the specification of a CSIDriver.\",\n\t\"attachRequired\":       \"attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\\n\\nThis field is immutable.\",\n\t\"podInfoOnMount\":       \"podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\\n\\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\\n\\nThe following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \\\"csi.storage.k8s.io/pod.name\\\": pod.Name \\\"csi.storage.k8s.io/pod.namespace\\\": pod.Namespace \\\"csi.storage.k8s.io/pod.uid\\\": string(pod.UID) \\\"csi.storage.k8s.io/ephemeral\\\": \\\"true\\\" if the volume is an ephemeral inline volume\\n                                defined by a CSIVolumeSource, otherwise \\\"false\\\"\\n\\n\\\"csi.storage.k8s.io/ephemeral\\\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \\\"Persistent\\\" and \\\"Ephemeral\\\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\\n\\nThis field is immutable.\",\n\t\"volumeLifecycleModes\": \"volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \\\"Persistent\\\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\\n\\nThe other mode is \\\"Ephemeral\\\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\\n\\nFor more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\\n\\nThis field is immutable.\",\n\t\"storageCapacity\":      \"storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true.\\n\\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\\n\\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\\n\\nThis field was immutable in Kubernetes <= 1.22 and now is mutable.\",\n\t\"fsGroupPolicy\":        \"fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\\n\\nThis field is immutable.\\n\\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.\",\n\t\"tokenRequests\":        \"tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \\\"csi.storage.k8s.io/serviceAccount.tokens\\\": {\\n  \\\"<audience>\\\": {\\n    \\\"token\\\": <token>,\\n    \\\"expirationTimestamp\\\": <expiration timestamp in RFC3339>,\\n  },\\n  ...\\n}\\n\\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\",\n\t\"requiresRepublish\":    \"requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\\n\\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\",\n\t\"seLinuxMount\":         \"seLinuxMount specifies if the CSI driver supports \\\"-o context\\\" mount option.\\n\\nWhen \\\"true\\\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \\\"-o context=xyz\\\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\\n\\nWhen \\\"false\\\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\\n\\nDefault is \\\"false\\\".\",\n}\n\nfunc (CSIDriverSpec) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverSpec\n}\n\nvar map_CSINode = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.\",\n\t\"metadata\": \"metadata.name must be the Kubernetes node name.\",\n\t\"spec\":     \"spec is the specification of CSINode\",\n}\n\nfunc (CSINode) SwaggerDoc() map[string]string {\n\treturn map_CSINode\n}\n\nvar map_CSINodeDriver = map[string]string{\n\t\"\":             \"CSINodeDriver holds information about the specification of one CSI driver installed on a node\",\n\t\"name\":         \"name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.\",\n\t\"nodeID\":       \"nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \\\"node1\\\", but the storage system may refer to the same node as \\\"nodeA\\\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \\\"nodeA\\\" instead of \\\"node1\\\". This field is required.\",\n\t\"topologyKeys\": \"topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \\\"company.com/zone\\\", \\\"company.com/region\\\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.\",\n\t\"allocatable\":  \"allocatable represents the volume resources of a node that are available for scheduling.\",\n}\n\nfunc (CSINodeDriver) SwaggerDoc() map[string]string {\n\treturn map_CSINodeDriver\n}\n\nvar map_CSINodeList = map[string]string{\n\t\"\":         \"CSINodeList is a collection of CSINode objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSINode\",\n}\n\nfunc (CSINodeList) SwaggerDoc() map[string]string {\n\treturn map_CSINodeList\n}\n\nvar map_CSINodeSpec = map[string]string{\n\t\"\":        \"CSINodeSpec holds information about the specification of all CSI drivers installed on a node\",\n\t\"drivers\": \"drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.\",\n}\n\nfunc (CSINodeSpec) SwaggerDoc() map[string]string {\n\treturn map_CSINodeSpec\n}\n\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_StorageClass = map[string]string{\n\t\"\":                     \"StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\\n\\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.\",\n\t\"metadata\":             \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"provisioner\":          \"provisioner indicates the type of the provisioner.\",\n\t\"parameters\":           \"parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\n\t\"reclaimPolicy\":        \"reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.\",\n\t\"mountOptions\":         \"mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount of the PVs will simply fail if one is invalid.\",\n\t\"allowVolumeExpansion\": \"allowVolumeExpansion shows whether the storage class allow volume expand\",\n\t\"volumeBindingMode\":    \"volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.\",\n\t\"allowedTopologies\":    \"allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.\",\n}\n\nfunc (StorageClass) SwaggerDoc() map[string]string {\n\treturn map_StorageClass\n}\n\nvar map_StorageClassList = map[string]string{\n\t\"\":         \"StorageClassList is a collection of storage classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of StorageClasses\",\n}\n\nfunc (StorageClassList) SwaggerDoc() map[string]string {\n\treturn map_StorageClassList\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":                  \"TokenRequest contains parameters of a service account token.\",\n\t\"audience\":          \"audience is the intended audience of the token in \\\"TokenRequestSpec\\\". It will default to the audiences of kube apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the duration of validity of the token in \\\"TokenRequestSpec\\\". It has the same default value of \\\"ExpirationSeconds\\\" in \\\"TokenRequestSpec\\\"\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\nvar map_VolumeNodeResources = map[string]string{\n\t\"\":      \"VolumeNodeResources is a set of resource limits for scheduling of volumes.\",\n\t\"count\": \"count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.\",\n}\n\nfunc (VolumeNodeResources) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeResources\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriver) DeepCopyInto(out *CSIDriver) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriver.\nfunc (in *CSIDriver) DeepCopy() *CSIDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriver) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverList) DeepCopyInto(out *CSIDriverList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverList.\nfunc (in *CSIDriverList) DeepCopy() *CSIDriverList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriverList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {\n\t*out = *in\n\tif in.AttachRequired != nil {\n\t\tin, out := &in.AttachRequired, &out.AttachRequired\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PodInfoOnMount != nil {\n\t\tin, out := &in.PodInfoOnMount, &out.PodInfoOnMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeLifecycleModes != nil {\n\t\tin, out := &in.VolumeLifecycleModes, &out.VolumeLifecycleModes\n\t\t*out = make([]VolumeLifecycleMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StorageCapacity != nil {\n\t\tin, out := &in.StorageCapacity, &out.StorageCapacity\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSGroupPolicy != nil {\n\t\tin, out := &in.FSGroupPolicy, &out.FSGroupPolicy\n\t\t*out = new(FSGroupPolicy)\n\t\t**out = **in\n\t}\n\tif in.TokenRequests != nil {\n\t\tin, out := &in.TokenRequests, &out.TokenRequests\n\t\t*out = make([]TokenRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.RequiresRepublish != nil {\n\t\tin, out := &in.RequiresRepublish, &out.RequiresRepublish\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxMount != nil {\n\t\tin, out := &in.SELinuxMount, &out.SELinuxMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverSpec.\nfunc (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINode) DeepCopyInto(out *CSINode) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINode.\nfunc (in *CSINode) DeepCopy() *CSINode {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINode)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINode) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeDriver) DeepCopyInto(out *CSINodeDriver) {\n\t*out = *in\n\tif in.TopologyKeys != nil {\n\t\tin, out := &in.TopologyKeys, &out.TopologyKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = new(VolumeNodeResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeDriver.\nfunc (in *CSINodeDriver) DeepCopy() *CSINodeDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeList) DeepCopyInto(out *CSINodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSINode, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeList.\nfunc (in *CSINodeList) DeepCopy() *CSINodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeSpec) DeepCopyInto(out *CSINodeSpec) {\n\t*out = *in\n\tif in.Drivers != nil {\n\t\tin, out := &in.Drivers, &out.Drivers\n\t\t*out = make([]CSINodeDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeSpec.\nfunc (in *CSINodeSpec) DeepCopy() *CSINodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClass) DeepCopyInto(out *StorageClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ReclaimPolicy != nil {\n\t\tin, out := &in.ReclaimPolicy, &out.ReclaimPolicy\n\t\t*out = new(corev1.PersistentVolumeReclaimPolicy)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowVolumeExpansion != nil {\n\t\tin, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeBindingMode != nil {\n\t\tin, out := &in.VolumeBindingMode, &out.VolumeBindingMode\n\t\t*out = new(VolumeBindingMode)\n\t\t**out = **in\n\t}\n\tif in.AllowedTopologies != nil {\n\t\tin, out := &in.AllowedTopologies, &out.AllowedTopologies\n\t\t*out = make([]corev1.TopologySelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClass.\nfunc (in *StorageClass) DeepCopy() *StorageClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClassList) DeepCopyInto(out *StorageClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClassList.\nfunc (in *StorageClassList) DeepCopy() *StorageClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeResources) DeepCopyInto(out *VolumeNodeResources) {\n\t*out = *in\n\tif in.Count != nil {\n\t\tin, out := &in.Count, &out.Count\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeResources.\nfunc (in *VolumeNodeResources) DeepCopy() *VolumeNodeResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriver) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIDriver) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIDriver) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIDriver\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIDriver) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriverList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIDriverList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIDriverList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIDriverList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIDriverList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINode) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSINode) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSINode) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSINode\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSINode) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINodeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSINodeList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSINodeList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSINode\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSINodeList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIStorageCapacity\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIStorageCapacityList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StorageClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"StorageClass\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StorageClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"StorageClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachmentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/equality/semantic.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage equality\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// Semantic can do semantic deep equality checks for api objects.\n// Example: apiequality.Semantic.DeepEqual(aPod, aPodWithNonNilButEmptyMaps) == true\nvar Semantic = conversion.EqualitiesOrDie(\n\tfunc(a, b resource.Quantity) bool {\n\t\t// Ignore formatting, only care that numeric value stayed the same.\n\t\t// TODO: if we decide it's important, it should be safe to start comparing the format.\n\t\t//\n\t\t// Uninitialized quantities are equivalent to 0 quantities.\n\t\treturn a.Cmp(b) == 0\n\t},\n\tfunc(a, b metav1.MicroTime) bool {\n\t\treturn a.UTC() == b.UTC()\n\t},\n\tfunc(a, b metav1.Time) bool {\n\t\treturn a.UTC() == b.UTC()\n\t},\n\tfunc(a, b labels.Selector) bool {\n\t\treturn a.String() == b.String()\n\t},\n\tfunc(a, b fields.Selector) bool {\n\t\treturn a.String() == b.String()\n\t},\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - lavalamp\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - derekwaynecarr\n  - caesarxuchao\n  - mikedanese\n  - liggitt\n  - saad-ali\n  - janetkuo\n  - tallclair\n  - dims\n  - cjcullen\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package errors provides detailed error types for api field validation.\npackage errors // import \"k8s.io/apimachinery/pkg/api/errors\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage errors\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// StatusError is an error intended for consumption by a REST API server; it can also be\n// reconstructed by clients from a REST response. Public to allow easy type switches.\ntype StatusError struct {\n\tErrStatus metav1.Status\n}\n\n// APIStatus is exposed by errors that can be converted to an api.Status object\n// for finer grained details.\ntype APIStatus interface {\n\tStatus() metav1.Status\n}\n\nvar _ error = &StatusError{}\n\nvar knownReasons = map[metav1.StatusReason]struct{}{\n\t// metav1.StatusReasonUnknown : {}\n\tmetav1.StatusReasonUnauthorized:          {},\n\tmetav1.StatusReasonForbidden:             {},\n\tmetav1.StatusReasonNotFound:              {},\n\tmetav1.StatusReasonAlreadyExists:         {},\n\tmetav1.StatusReasonConflict:              {},\n\tmetav1.StatusReasonGone:                  {},\n\tmetav1.StatusReasonInvalid:               {},\n\tmetav1.StatusReasonServerTimeout:         {},\n\tmetav1.StatusReasonTimeout:               {},\n\tmetav1.StatusReasonTooManyRequests:       {},\n\tmetav1.StatusReasonBadRequest:            {},\n\tmetav1.StatusReasonMethodNotAllowed:      {},\n\tmetav1.StatusReasonNotAcceptable:         {},\n\tmetav1.StatusReasonRequestEntityTooLarge: {},\n\tmetav1.StatusReasonUnsupportedMediaType:  {},\n\tmetav1.StatusReasonInternalError:         {},\n\tmetav1.StatusReasonExpired:               {},\n\tmetav1.StatusReasonServiceUnavailable:    {},\n}\n\n// Error implements the Error interface.\nfunc (e *StatusError) Error() string {\n\treturn e.ErrStatus.Message\n}\n\n// Status allows access to e's status without having to know the detailed workings\n// of StatusError.\nfunc (e *StatusError) Status() metav1.Status {\n\treturn e.ErrStatus\n}\n\n// DebugError reports extended info about the error to debug output.\nfunc (e *StatusError) DebugError() (string, []interface{}) {\n\tif out, err := json.MarshalIndent(e.ErrStatus, \"\", \"  \"); err == nil {\n\t\treturn \"server response object: %s\", []interface{}{string(out)}\n\t}\n\treturn \"server response object: %#v\", []interface{}{e.ErrStatus}\n}\n\n// HasStatusCause returns true if the provided error has a details cause\n// with the provided type name.\n// It supports wrapped errors and returns false when the error is nil.\nfunc HasStatusCause(err error, name metav1.CauseType) bool {\n\t_, ok := StatusCause(err, name)\n\treturn ok\n}\n\n// StatusCause returns the named cause from the provided error if it exists and\n// the error unwraps to the type APIStatus. Otherwise it returns false.\nfunc StatusCause(err error, name metav1.CauseType) (metav1.StatusCause, bool) {\n\tstatus, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &status)) && status.Status().Details != nil {\n\t\tfor _, cause := range status.Status().Details.Causes {\n\t\t\tif cause.Type == name {\n\t\t\t\treturn cause, true\n\t\t\t}\n\t\t}\n\t}\n\treturn metav1.StatusCause{}, false\n}\n\n// UnexpectedObjectError can be returned by FromObject if it's passed a non-status object.\ntype UnexpectedObjectError struct {\n\tObject runtime.Object\n}\n\n// Error returns an error message describing 'u'.\nfunc (u *UnexpectedObjectError) Error() string {\n\treturn fmt.Sprintf(\"unexpected object: %v\", u.Object)\n}\n\n// FromObject generates an StatusError from an metav1.Status, if that is the type of obj; otherwise,\n// returns an UnexpecteObjectError.\nfunc FromObject(obj runtime.Object) error {\n\tswitch t := obj.(type) {\n\tcase *metav1.Status:\n\t\treturn &StatusError{ErrStatus: *t}\n\tcase runtime.Unstructured:\n\t\tvar status metav1.Status\n\t\tobj := t.UnstructuredContent()\n\t\tif !reflect.DeepEqual(obj[\"kind\"], \"Status\") {\n\t\t\tbreak\n\t\t}\n\t\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(t.UnstructuredContent(), &status); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif status.APIVersion != \"v1\" && status.APIVersion != \"meta.k8s.io/v1\" {\n\t\t\tbreak\n\t\t}\n\t\treturn &StatusError{ErrStatus: status}\n\t}\n\treturn &UnexpectedObjectError{obj}\n}\n\n// NewNotFound returns a new error which indicates that the resource of the kind and the name was not found.\nfunc NewNotFound(qualifiedResource schema.GroupResource, name string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusNotFound,\n\t\tReason: metav1.StatusReasonNotFound,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s %q not found\", qualifiedResource.String(), name),\n\t}}\n}\n\n// NewAlreadyExists returns an error indicating the item requested exists by that identifier.\nfunc NewAlreadyExists(qualifiedResource schema.GroupResource, name string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonAlreadyExists,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s %q already exists\", qualifiedResource.String(), name),\n\t}}\n}\n\n// NewGenerateNameConflict returns an error indicating the server\n// was not able to generate a valid name for a resource.\nfunc NewGenerateNameConflict(qualifiedResource schema.GroupResource, name string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonAlreadyExists,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:             qualifiedResource.Group,\n\t\t\tKind:              qualifiedResource.Resource,\n\t\t\tName:              name,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: fmt.Sprintf(\n\t\t\t\"%s %q already exists, the server was not able to generate a unique name for the object\",\n\t\t\tqualifiedResource.String(), name),\n\t}}\n}\n\n// NewUnauthorized returns an error indicating the client is not authorized to perform the requested\n// action.\nfunc NewUnauthorized(reason string) *StatusError {\n\tmessage := reason\n\tif len(message) == 0 {\n\t\tmessage = \"not authorized\"\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusUnauthorized,\n\t\tReason:  metav1.StatusReasonUnauthorized,\n\t\tMessage: message,\n\t}}\n}\n\n// NewForbidden returns an error indicating the requested action was forbidden\nfunc NewForbidden(qualifiedResource schema.GroupResource, name string, err error) *StatusError {\n\tvar message string\n\tif qualifiedResource.Empty() {\n\t\tmessage = fmt.Sprintf(\"forbidden: %v\", err)\n\t} else if name == \"\" {\n\t\tmessage = fmt.Sprintf(\"%s is forbidden: %v\", qualifiedResource.String(), err)\n\t} else {\n\t\tmessage = fmt.Sprintf(\"%s %q is forbidden: %v\", qualifiedResource.String(), name, err)\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusForbidden,\n\t\tReason: metav1.StatusReasonForbidden,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// NewConflict returns an error indicating the item can't be updated as provided.\nfunc NewConflict(qualifiedResource schema.GroupResource, name string, err error) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonConflict,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"Operation cannot be fulfilled on %s %q: %v\", qualifiedResource.String(), name, err),\n\t}}\n}\n\n// NewApplyConflict returns an error including details on the requests apply conflicts\nfunc NewApplyConflict(causes []metav1.StatusCause, message string) *StatusError {\n\treturn &StatusError{ErrStatus: metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonConflict,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\t// TODO: Get obj details here?\n\t\t\tCauses: causes,\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// NewGone returns an error indicating the item no longer available at the server and no forwarding address is known.\n// DEPRECATED: Please use NewResourceExpired instead.\nfunc NewGone(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGone,\n\t\tReason:  metav1.StatusReasonGone,\n\t\tMessage: message,\n\t}}\n}\n\n// NewResourceExpired creates an error that indicates that the requested resource content has expired from\n// the server (usually due to a resourceVersion that is too old).\nfunc NewResourceExpired(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGone,\n\t\tReason:  metav1.StatusReasonExpired,\n\t\tMessage: message,\n\t}}\n}\n\n// NewInvalid returns an error indicating the item is invalid and cannot be processed.\nfunc NewInvalid(qualifiedKind schema.GroupKind, name string, errs field.ErrorList) *StatusError {\n\tcauses := make([]metav1.StatusCause, 0, len(errs))\n\tfor i := range errs {\n\t\terr := errs[i]\n\t\tcauses = append(causes, metav1.StatusCause{\n\t\t\tType:    metav1.CauseType(err.Type),\n\t\t\tMessage: err.ErrorBody(),\n\t\t\tField:   err.Field,\n\t\t})\n\t}\n\terr := &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusUnprocessableEntity,\n\t\tReason: metav1.StatusReasonInvalid,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:  qualifiedKind.Group,\n\t\t\tKind:   qualifiedKind.Kind,\n\t\t\tName:   name,\n\t\t\tCauses: causes,\n\t\t},\n\t}}\n\taggregatedErrs := errs.ToAggregate()\n\tif aggregatedErrs == nil {\n\t\terr.ErrStatus.Message = fmt.Sprintf(\"%s %q is invalid\", qualifiedKind.String(), name)\n\t} else {\n\t\terr.ErrStatus.Message = fmt.Sprintf(\"%s %q is invalid: %v\", qualifiedKind.String(), name, aggregatedErrs)\n\t}\n\treturn err\n}\n\n// NewBadRequest creates an error that indicates that the request is invalid and can not be processed.\nfunc NewBadRequest(reason string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusBadRequest,\n\t\tReason:  metav1.StatusReasonBadRequest,\n\t\tMessage: reason,\n\t}}\n}\n\n// NewTooManyRequests creates an error that indicates that the client must try again later because\n// the specified endpoint is not accepting requests. More specific details should be provided\n// if client should know why the failure was limited.\nfunc NewTooManyRequests(message string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusTooManyRequests,\n\t\tReason:  metav1.StatusReasonTooManyRequests,\n\t\tMessage: message,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t}}\n}\n\n// NewServiceUnavailable creates an error that indicates that the requested service is unavailable.\nfunc NewServiceUnavailable(reason string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusServiceUnavailable,\n\t\tReason:  metav1.StatusReasonServiceUnavailable,\n\t\tMessage: reason,\n\t}}\n}\n\n// NewMethodNotSupported returns an error indicating the requested action is not supported on this kind.\nfunc NewMethodNotSupported(qualifiedResource schema.GroupResource, action string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusMethodNotAllowed,\n\t\tReason: metav1.StatusReasonMethodNotAllowed,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s is not supported on resources of kind %q\", action, qualifiedResource.String()),\n\t}}\n}\n\n// NewServerTimeout returns an error indicating the requested action could not be completed due to a\n// transient error, and the client should try again.\nfunc NewServerTimeout(qualifiedResource schema.GroupResource, operation string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusInternalServerError,\n\t\tReason: metav1.StatusReasonServerTimeout,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:             qualifiedResource.Group,\n\t\t\tKind:              qualifiedResource.Resource,\n\t\t\tName:              operation,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: fmt.Sprintf(\"The %s operation against %s could not be completed at this time, please try again.\", operation, qualifiedResource.String()),\n\t}}\n}\n\n// NewServerTimeoutForKind should not exist.  Server timeouts happen when accessing resources, the Kind is just what we\n// happened to be looking at when the request failed.  This delegates to keep code sane, but we should work towards removing this.\nfunc NewServerTimeoutForKind(qualifiedKind schema.GroupKind, operation string, retryAfterSeconds int) *StatusError {\n\treturn NewServerTimeout(schema.GroupResource{Group: qualifiedKind.Group, Resource: qualifiedKind.Kind}, operation, retryAfterSeconds)\n}\n\n// NewInternalError returns an error indicating the item is invalid and cannot be processed.\nfunc NewInternalError(err error) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusInternalServerError,\n\t\tReason: metav1.StatusReasonInternalError,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tCauses: []metav1.StatusCause{{Message: err.Error()}},\n\t\t},\n\t\tMessage: fmt.Sprintf(\"Internal error occurred: %v\", err),\n\t}}\n}\n\n// NewTimeoutError returns an error indicating that a timeout occurred before the request\n// could be completed.  Clients may retry, but the operation may still complete.\nfunc NewTimeoutError(message string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGatewayTimeout,\n\t\tReason:  metav1.StatusReasonTimeout,\n\t\tMessage: fmt.Sprintf(\"Timeout: %s\", message),\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t}}\n}\n\n// NewTooManyRequestsError returns an error indicating that the request was rejected because\n// the server has received too many requests. Client should wait and retry. But if the request\n// is perishable, then the client should not retry the request.\nfunc NewTooManyRequestsError(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusTooManyRequests,\n\t\tReason:  metav1.StatusReasonTooManyRequests,\n\t\tMessage: fmt.Sprintf(\"Too many requests: %s\", message),\n\t}}\n}\n\n// NewRequestEntityTooLargeError returns an error indicating that the request\n// entity was too large.\nfunc NewRequestEntityTooLargeError(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusRequestEntityTooLarge,\n\t\tReason:  metav1.StatusReasonRequestEntityTooLarge,\n\t\tMessage: fmt.Sprintf(\"Request entity too large: %s\", message),\n\t}}\n}\n\n// NewGenericServerResponse returns a new error for server responses that are not in a recognizable form.\nfunc NewGenericServerResponse(code int, verb string, qualifiedResource schema.GroupResource, name, serverMessage string, retryAfterSeconds int, isUnexpectedResponse bool) *StatusError {\n\treason := metav1.StatusReasonUnknown\n\tmessage := fmt.Sprintf(\"the server responded with the status code %d but did not return more information\", code)\n\tswitch code {\n\tcase http.StatusConflict:\n\t\tif verb == \"POST\" {\n\t\t\treason = metav1.StatusReasonAlreadyExists\n\t\t} else {\n\t\t\treason = metav1.StatusReasonConflict\n\t\t}\n\t\tmessage = \"the server reported a conflict\"\n\tcase http.StatusNotFound:\n\t\treason = metav1.StatusReasonNotFound\n\t\tmessage = \"the server could not find the requested resource\"\n\tcase http.StatusBadRequest:\n\t\treason = metav1.StatusReasonBadRequest\n\t\tmessage = \"the server rejected our request for an unknown reason\"\n\tcase http.StatusUnauthorized:\n\t\treason = metav1.StatusReasonUnauthorized\n\t\tmessage = \"the server has asked for the client to provide credentials\"\n\tcase http.StatusForbidden:\n\t\treason = metav1.StatusReasonForbidden\n\t\t// the server message has details about who is trying to perform what action.  Keep its message.\n\t\tmessage = serverMessage\n\tcase http.StatusNotAcceptable:\n\t\treason = metav1.StatusReasonNotAcceptable\n\t\t// the server message has details about what types are acceptable\n\t\tif len(serverMessage) == 0 || serverMessage == \"unknown\" {\n\t\t\tmessage = \"the server was unable to respond with a content type that the client supports\"\n\t\t} else {\n\t\t\tmessage = serverMessage\n\t\t}\n\tcase http.StatusUnsupportedMediaType:\n\t\treason = metav1.StatusReasonUnsupportedMediaType\n\t\t// the server message has details about what types are acceptable\n\t\tmessage = serverMessage\n\tcase http.StatusMethodNotAllowed:\n\t\treason = metav1.StatusReasonMethodNotAllowed\n\t\tmessage = \"the server does not allow this method on the requested resource\"\n\tcase http.StatusUnprocessableEntity:\n\t\treason = metav1.StatusReasonInvalid\n\t\tmessage = \"the server rejected our request due to an error in our request\"\n\tcase http.StatusServiceUnavailable:\n\t\treason = metav1.StatusReasonServiceUnavailable\n\t\tmessage = \"the server is currently unable to handle the request\"\n\tcase http.StatusGatewayTimeout:\n\t\treason = metav1.StatusReasonTimeout\n\t\tmessage = \"the server was unable to return a response in the time allotted, but may still be processing the request\"\n\tcase http.StatusTooManyRequests:\n\t\treason = metav1.StatusReasonTooManyRequests\n\t\tmessage = \"the server has received too many requests and has asked us to try again later\"\n\tdefault:\n\t\tif code >= 500 {\n\t\t\treason = metav1.StatusReasonInternalError\n\t\t\tmessage = fmt.Sprintf(\"an error on the server (%q) has prevented the request from succeeding\", serverMessage)\n\t\t}\n\t}\n\tswitch {\n\tcase !qualifiedResource.Empty() && len(name) > 0:\n\t\tmessage = fmt.Sprintf(\"%s (%s %s %s)\", message, strings.ToLower(verb), qualifiedResource.String(), name)\n\tcase !qualifiedResource.Empty():\n\t\tmessage = fmt.Sprintf(\"%s (%s %s)\", message, strings.ToLower(verb), qualifiedResource.String())\n\t}\n\tvar causes []metav1.StatusCause\n\tif isUnexpectedResponse {\n\t\tcauses = []metav1.StatusCause{\n\t\t\t{\n\t\t\t\tType:    metav1.CauseTypeUnexpectedServerResponse,\n\t\t\t\tMessage: serverMessage,\n\t\t\t},\n\t\t}\n\t} else {\n\t\tcauses = nil\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   int32(code),\n\t\tReason: reason,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\n\t\t\tCauses:            causes,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// IsNotFound returns true if the specified error was created by NewNotFound.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsNotFound(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonNotFound {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusNotFound {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsAlreadyExists determines if the err is an error which indicates that a specified resource already exists.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsAlreadyExists(err error) bool {\n\treturn ReasonForError(err) == metav1.StatusReasonAlreadyExists\n}\n\n// IsConflict determines if the err is an error which indicates the provided update conflicts.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsConflict(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonConflict {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusConflict {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsInvalid determines if the err is an error which indicates the provided resource is not valid.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsInvalid(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonInvalid {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnprocessableEntity {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsGone is true if the error indicates the requested resource is no longer available.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsGone(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonGone {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusGone {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsResourceExpired is true if the error indicates the resource has expired and the current action is\n// no longer possible.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsResourceExpired(err error) bool {\n\treturn ReasonForError(err) == metav1.StatusReasonExpired\n}\n\n// IsNotAcceptable determines if err is an error which indicates that the request failed due to an invalid Accept header\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsNotAcceptable(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonNotAcceptable {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusNotAcceptable {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnsupportedMediaType determines if err is an error which indicates that the request failed due to an invalid Content-Type header\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnsupportedMediaType(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonUnsupportedMediaType {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnsupportedMediaType {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsMethodNotSupported determines if the err is an error which indicates the provided action could not\n// be performed because it is not supported by the server.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsMethodNotSupported(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonMethodNotAllowed {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusMethodNotAllowed {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsServiceUnavailable is true if the error indicates the underlying service is no longer available.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsServiceUnavailable(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonServiceUnavailable {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusServiceUnavailable {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsBadRequest determines if err is an error which indicates that the request is invalid.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsBadRequest(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonBadRequest {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusBadRequest {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnauthorized determines if err is an error which indicates that the request is unauthorized and\n// requires authentication by the user.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnauthorized(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonUnauthorized {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnauthorized {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsForbidden determines if err is an error which indicates that the request is forbidden and cannot\n// be completed as requested.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsForbidden(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonForbidden {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusForbidden {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsTimeout determines if err is an error which indicates that request times out due to long\n// processing.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsTimeout(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonTimeout {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusGatewayTimeout {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsServerTimeout determines if err is an error which indicates that the request needs to be retried\n// by the client.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsServerTimeout(err error) bool {\n\t// do not check the status code, because no https status code exists that can\n\t// be scoped to retryable timeouts.\n\treturn ReasonForError(err) == metav1.StatusReasonServerTimeout\n}\n\n// IsInternalError determines if err is an error which indicates an internal server error.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsInternalError(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonInternalError {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusInternalServerError {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsTooManyRequests determines if err is an error which indicates that there are too many requests\n// that the server cannot handle.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsTooManyRequests(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonTooManyRequests {\n\t\treturn true\n\t}\n\n\t// IsTooManyRequests' checking of code predates the checking of the code in\n\t// the other Is* functions. In order to maintain backward compatibility, this\n\t// does not check that the reason is unknown.\n\tif code == http.StatusTooManyRequests {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsRequestEntityTooLargeError determines if err is an error which indicates\n// the request entity is too large.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsRequestEntityTooLargeError(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonRequestEntityTooLarge {\n\t\treturn true\n\t}\n\n\t// IsRequestEntityTooLargeError's checking of code predates the checking of\n\t// the code in the other Is* functions. In order to maintain backward\n\t// compatibility, this does not check that the reason is unknown.\n\tif code == http.StatusRequestEntityTooLarge {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnexpectedServerError returns true if the server response was not in the expected API format,\n// and may be the result of another HTTP actor.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnexpectedServerError(err error) bool {\n\tstatus, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &status)) && status.Status().Details != nil {\n\t\tfor _, cause := range status.Status().Details.Causes {\n\t\t\tif cause.Type == metav1.CauseTypeUnexpectedServerResponse {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// IsUnexpectedObjectError determines if err is due to an unexpected object from the master.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnexpectedObjectError(err error) bool {\n\tuoe, ok := err.(*UnexpectedObjectError)\n\treturn err != nil && (ok || errors.As(err, &uoe))\n}\n\n// SuggestsClientDelay returns true if this error suggests a client delay as well as the\n// suggested seconds to wait, or false if the error does not imply a wait. It does not\n// address whether the error *should* be retried, since some errors (like a 3xx) may\n// request delay without retry.\n// It supports wrapped errors and returns false when the error is nil.\nfunc SuggestsClientDelay(err error) (int, bool) {\n\tt, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &t)) && t.Status().Details != nil {\n\t\tswitch t.Status().Reason {\n\t\t// this StatusReason explicitly requests the caller to delay the action\n\t\tcase metav1.StatusReasonServerTimeout:\n\t\t\treturn int(t.Status().Details.RetryAfterSeconds), true\n\t\t}\n\t\t// If the client requests that we retry after a certain number of seconds\n\t\tif t.Status().Details.RetryAfterSeconds > 0 {\n\t\t\treturn int(t.Status().Details.RetryAfterSeconds), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// ReasonForError returns the HTTP status for a particular error.\n// It supports wrapped errors and returns StatusReasonUnknown when\n// the error is nil or doesn't have a status.\nfunc ReasonForError(err error) metav1.StatusReason {\n\tif status, ok := err.(APIStatus); ok || errors.As(err, &status) {\n\t\treturn status.Status().Reason\n\t}\n\treturn metav1.StatusReasonUnknown\n}\n\nfunc reasonAndCodeForError(err error) (metav1.StatusReason, int32) {\n\tif status, ok := err.(APIStatus); ok || errors.As(err, &status) {\n\t\treturn status.Status().Reason, status.Status().Code\n\t}\n\treturn metav1.StatusReasonUnknown, 0\n}\n\n// ErrorReporter converts generic errors into runtime.Object errors without\n// requiring the caller to take a dependency on meta/v1 (where Status lives).\n// This prevents circular dependencies in core watch code.\ntype ErrorReporter struct {\n\tcode   int\n\tverb   string\n\treason string\n}\n\n// NewClientErrorReporter will respond with valid v1.Status objects that report\n// unexpected server responses. Primarily used by watch to report errors when\n// we attempt to decode a response from the server and it is not in the form\n// we expect. Because watch is a dependency of the core api, we can't return\n// meta/v1.Status in that package and so much inject this interface to convert a\n// generic error as appropriate. The reason is passed as a unique status cause\n// on the returned status, otherwise the generic \"ClientError\" is returned.\nfunc NewClientErrorReporter(code int, verb string, reason string) *ErrorReporter {\n\treturn &ErrorReporter{\n\t\tcode:   code,\n\t\tverb:   verb,\n\t\treason: reason,\n\t}\n}\n\n// AsObject returns a valid error runtime.Object (a v1.Status) for the given\n// error, using the code and verb of the reporter type. The error is set to\n// indicate that this was an unexpected server response.\nfunc (r *ErrorReporter) AsObject(err error) runtime.Object {\n\tstatus := NewGenericServerResponse(r.code, r.verb, schema.GroupResource{}, \"\", err.Error(), 0, true)\n\tif status.ErrStatus.Details == nil {\n\t\tstatus.ErrStatus.Details = &metav1.StatusDetails{}\n\t}\n\treason := r.reason\n\tif len(reason) == 0 {\n\t\treason = \"ClientError\"\n\t}\n\tstatus.ErrStatus.Details.Causes = append(status.ErrStatus.Details.Causes, metav1.StatusCause{\n\t\tType:    metav1.CauseType(reason),\n\t\tMessage: err.Error(),\n\t})\n\treturn &status.ErrStatus\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - derekwaynecarr\n  - caesarxuchao\n  - mikedanese\n  - liggitt\n  - janetkuo\n  - ncdc\n  - dims\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// SetStatusCondition sets the corresponding condition in conditions to newCondition.\n// conditions must be non-nil.\n//  1. if the condition of the specified type already exists (all fields of the existing condition are updated to\n//     newCondition, LastTransitionTime is set to now if the new status differs from the old status)\n//  2. if a condition of the specified type does not exist (LastTransitionTime is set to now() if unset, and newCondition is appended)\nfunc SetStatusCondition(conditions *[]metav1.Condition, newCondition metav1.Condition) {\n\tif conditions == nil {\n\t\treturn\n\t}\n\texistingCondition := FindStatusCondition(*conditions, newCondition.Type)\n\tif existingCondition == nil {\n\t\tif newCondition.LastTransitionTime.IsZero() {\n\t\t\tnewCondition.LastTransitionTime = metav1.NewTime(time.Now())\n\t\t}\n\t\t*conditions = append(*conditions, newCondition)\n\t\treturn\n\t}\n\n\tif existingCondition.Status != newCondition.Status {\n\t\texistingCondition.Status = newCondition.Status\n\t\tif !newCondition.LastTransitionTime.IsZero() {\n\t\t\texistingCondition.LastTransitionTime = newCondition.LastTransitionTime\n\t\t} else {\n\t\t\texistingCondition.LastTransitionTime = metav1.NewTime(time.Now())\n\t\t}\n\t}\n\n\texistingCondition.Reason = newCondition.Reason\n\texistingCondition.Message = newCondition.Message\n\texistingCondition.ObservedGeneration = newCondition.ObservedGeneration\n}\n\n// RemoveStatusCondition removes the corresponding conditionType from conditions.\n// conditions must be non-nil.\nfunc RemoveStatusCondition(conditions *[]metav1.Condition, conditionType string) {\n\tif conditions == nil || len(*conditions) == 0 {\n\t\treturn\n\t}\n\tnewConditions := make([]metav1.Condition, 0, len(*conditions)-1)\n\tfor _, condition := range *conditions {\n\t\tif condition.Type != conditionType {\n\t\t\tnewConditions = append(newConditions, condition)\n\t\t}\n\t}\n\n\t*conditions = newConditions\n}\n\n// FindStatusCondition finds the conditionType in conditions.\nfunc FindStatusCondition(conditions []metav1.Condition, conditionType string) *metav1.Condition {\n\tfor i := range conditions {\n\t\tif conditions[i].Type == conditionType {\n\t\t\treturn &conditions[i]\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// IsStatusConditionTrue returns true when the conditionType is present and set to `metav1.ConditionTrue`\nfunc IsStatusConditionTrue(conditions []metav1.Condition, conditionType string) bool {\n\treturn IsStatusConditionPresentAndEqual(conditions, conditionType, metav1.ConditionTrue)\n}\n\n// IsStatusConditionFalse returns true when the conditionType is present and set to `metav1.ConditionFalse`\nfunc IsStatusConditionFalse(conditions []metav1.Condition, conditionType string) bool {\n\treturn IsStatusConditionPresentAndEqual(conditions, conditionType, metav1.ConditionFalse)\n}\n\n// IsStatusConditionPresentAndEqual returns true when conditionType is present and equal to status.\nfunc IsStatusConditionPresentAndEqual(conditions []metav1.Condition, conditionType string, status metav1.ConditionStatus) bool {\n\tfor _, condition := range conditions {\n\t\tif condition.Type == conditionType {\n\t\t\treturn condition.Status == status\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package meta provides functions for retrieving API metadata from objects\n// belonging to the Kubernetes API\npackage meta // import \"k8s.io/apimachinery/pkg/api/meta\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// AmbiguousResourceError is returned if the RESTMapper finds multiple matches for a resource\ntype AmbiguousResourceError struct {\n\tPartialResource schema.GroupVersionResource\n\n\tMatchingResources []schema.GroupVersionResource\n\tMatchingKinds     []schema.GroupVersionKind\n}\n\nfunc (e *AmbiguousResourceError) Error() string {\n\tswitch {\n\tcase len(e.MatchingKinds) > 0 && len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v and kinds %v\", e.PartialResource, e.MatchingResources, e.MatchingKinds)\n\tcase len(e.MatchingKinds) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple kinds %v\", e.PartialResource, e.MatchingKinds)\n\tcase len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v\", e.PartialResource, e.MatchingResources)\n\t}\n\treturn fmt.Sprintf(\"%v matches multiple resources or kinds\", e.PartialResource)\n}\n\nfunc (*AmbiguousResourceError) Is(target error) bool {\n\t_, ok := target.(*AmbiguousResourceError)\n\treturn ok\n}\n\n// AmbiguousKindError is returned if the RESTMapper finds multiple matches for a kind\ntype AmbiguousKindError struct {\n\tPartialKind schema.GroupVersionKind\n\n\tMatchingResources []schema.GroupVersionResource\n\tMatchingKinds     []schema.GroupVersionKind\n}\n\nfunc (e *AmbiguousKindError) Error() string {\n\tswitch {\n\tcase len(e.MatchingKinds) > 0 && len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v and kinds %v\", e.PartialKind, e.MatchingResources, e.MatchingKinds)\n\tcase len(e.MatchingKinds) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple kinds %v\", e.PartialKind, e.MatchingKinds)\n\tcase len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v\", e.PartialKind, e.MatchingResources)\n\t}\n\treturn fmt.Sprintf(\"%v matches multiple resources or kinds\", e.PartialKind)\n}\n\nfunc (*AmbiguousKindError) Is(target error) bool {\n\t_, ok := target.(*AmbiguousKindError)\n\treturn ok\n}\n\nfunc IsAmbiguousError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\treturn errors.Is(err, &AmbiguousResourceError{}) || errors.Is(err, &AmbiguousKindError{})\n}\n\n// NoResourceMatchError is returned if the RESTMapper can't find any match for a resource\ntype NoResourceMatchError struct {\n\tPartialResource schema.GroupVersionResource\n}\n\nfunc (e *NoResourceMatchError) Error() string {\n\treturn fmt.Sprintf(\"no matches for %v\", e.PartialResource)\n}\n\nfunc (*NoResourceMatchError) Is(target error) bool {\n\t_, ok := target.(*NoResourceMatchError)\n\treturn ok\n}\n\n// NoKindMatchError is returned if the RESTMapper can't find any match for a kind\ntype NoKindMatchError struct {\n\t// GroupKind is the API group and kind that was searched\n\tGroupKind schema.GroupKind\n\t// SearchedVersions is the optional list of versions the search was restricted to\n\tSearchedVersions []string\n}\n\nfunc (e *NoKindMatchError) Error() string {\n\tsearchedVersions := sets.NewString()\n\tfor _, v := range e.SearchedVersions {\n\t\tsearchedVersions.Insert(schema.GroupVersion{Group: e.GroupKind.Group, Version: v}.String())\n\t}\n\n\tswitch len(searchedVersions) {\n\tcase 0:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in group %q\", e.GroupKind.Kind, e.GroupKind.Group)\n\tcase 1:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in version %q\", e.GroupKind.Kind, searchedVersions.List()[0])\n\tdefault:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in versions %q\", e.GroupKind.Kind, searchedVersions.List())\n\t}\n}\n\nfunc (*NoKindMatchError) Is(target error) bool {\n\t_, ok := target.(*NoKindMatchError)\n\treturn ok\n}\n\nfunc IsNoMatchError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\treturn errors.Is(err, &NoResourceMatchError{}) || errors.Is(err, &NoKindMatchError{})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/firsthit_restmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n)\n\nvar (\n\t_ ResettableRESTMapper = &FirstHitRESTMapper{}\n)\n\n// FirstHitRESTMapper is a wrapper for multiple RESTMappers which returns the\n// first successful result for the singular requests\ntype FirstHitRESTMapper struct {\n\tMultiRESTMapper\n}\n\nfunc (m FirstHitRESTMapper) String() string {\n\treturn fmt.Sprintf(\"FirstHitRESTMapper{\\n\\t%v\\n}\", m.MultiRESTMapper)\n}\n\nfunc (m FirstHitRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.ResourceFor(resource)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn schema.GroupVersionResource{}, collapseAggregateErrors(errors)\n}\n\nfunc (m FirstHitRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.KindFor(resource)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn schema.GroupVersionKind{}, collapseAggregateErrors(errors)\n}\n\n// RESTMapping provides the REST mapping for the resource based on the\n// kind and version. This implementation supports multiple REST schemas and\n// return the first match.\nfunc (m FirstHitRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.RESTMapping(gk, versions...)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn nil, collapseAggregateErrors(errors)\n}\n\nfunc (m FirstHitRESTMapper) Reset() {\n\tm.MultiRESTMapper.Reset()\n}\n\n// collapseAggregateErrors returns the minimal errors.  it handles empty as nil, handles one item in a list\n// by returning the item, and collapses all NoMatchErrors to a single one (since they should all be the same)\nfunc collapseAggregateErrors(errors []error) error {\n\tif len(errors) == 0 {\n\t\treturn nil\n\t}\n\tif len(errors) == 1 {\n\t\treturn errors[0]\n\t}\n\n\tallNoMatchErrors := true\n\tfor _, err := range errors {\n\t\tallNoMatchErrors = allNoMatchErrors && IsNoMatchError(err)\n\t}\n\tif allNoMatchErrors {\n\t\treturn errors[0]\n\t}\n\n\treturn utilerrors.NewAggregate(errors)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/help.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar (\n\t// isListCache maintains a cache of types that are checked for lists\n\t// which is used by IsListType.\n\t// TODO: remove and replace with an interface check\n\tisListCache = struct {\n\t\tlock   sync.RWMutex\n\t\tbyType map[reflect.Type]bool\n\t}{\n\t\tbyType: make(map[reflect.Type]bool, 1024),\n\t}\n)\n\n// IsListType returns true if the provided Object has a slice called Items.\n// TODO: Replace the code in this check with an interface comparison by\n// creating and enforcing that lists implement a list accessor.\nfunc IsListType(obj runtime.Object) bool {\n\tswitch t := obj.(type) {\n\tcase runtime.Unstructured:\n\t\treturn t.IsList()\n\t}\n\tt := reflect.TypeOf(obj)\n\n\tisListCache.lock.RLock()\n\tok, exists := isListCache.byType[t]\n\tisListCache.lock.RUnlock()\n\n\tif !exists {\n\t\t_, err := getItemsPtr(obj)\n\t\tok = err == nil\n\n\t\t// cache only the first 1024 types\n\t\tisListCache.lock.Lock()\n\t\tif len(isListCache.byType) < 1024 {\n\t\t\tisListCache.byType[t] = ok\n\t\t}\n\t\tisListCache.lock.Unlock()\n\t}\n\n\treturn ok\n}\n\nvar (\n\terrExpectFieldItems = errors.New(\"no Items field in this object\")\n\terrExpectSliceItems = errors.New(\"Items field must be a slice of objects\")\n)\n\n// GetItemsPtr returns a pointer to the list object's Items member.\n// If 'list' doesn't have an Items member, it's not really a list type\n// and an error will be returned.\n// This function will either return a pointer to a slice, or an error, but not both.\n// TODO: this will be replaced with an interface in the future\nfunc GetItemsPtr(list runtime.Object) (interface{}, error) {\n\tobj, err := getItemsPtr(list)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%T is not a list: %v\", list, err)\n\t}\n\treturn obj, nil\n}\n\n// getItemsPtr returns a pointer to the list object's Items member or an error.\nfunc getItemsPtr(list runtime.Object) (interface{}, error) {\n\tv, err := conversion.EnforcePtr(list)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\titems := v.FieldByName(\"Items\")\n\tif !items.IsValid() {\n\t\treturn nil, errExpectFieldItems\n\t}\n\tswitch items.Kind() {\n\tcase reflect.Interface, reflect.Pointer:\n\t\ttarget := reflect.TypeOf(items.Interface()).Elem()\n\t\tif target.Kind() != reflect.Slice {\n\t\t\treturn nil, errExpectSliceItems\n\t\t}\n\t\treturn items.Interface(), nil\n\tcase reflect.Slice:\n\t\treturn items.Addr().Interface(), nil\n\tdefault:\n\t\treturn nil, errExpectSliceItems\n\t}\n}\n\n// EachListItem invokes fn on each runtime.Object in the list. Any error immediately terminates\n// the loop.\nfunc EachListItem(obj runtime.Object, fn func(runtime.Object) error) error {\n\tif unstructured, ok := obj.(runtime.Unstructured); ok {\n\t\treturn unstructured.EachListItem(fn)\n\t}\n\t// TODO: Change to an interface call?\n\titemsPtr, err := GetItemsPtr(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlen := items.Len()\n\tif len == 0 {\n\t\treturn nil\n\t}\n\ttakeAddr := false\n\tif elemType := items.Type().Elem(); elemType.Kind() != reflect.Pointer && elemType.Kind() != reflect.Interface {\n\t\tif !items.Index(0).CanAddr() {\n\t\t\treturn fmt.Errorf(\"unable to take address of items in %T for EachListItem\", obj)\n\t\t}\n\t\ttakeAddr = true\n\t}\n\n\tfor i := 0; i < len; i++ {\n\t\traw := items.Index(i)\n\t\tif takeAddr {\n\t\t\traw = raw.Addr()\n\t\t}\n\t\tswitch item := raw.Interface().(type) {\n\t\tcase *runtime.RawExtension:\n\t\t\tif err := fn(item.Object); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase runtime.Object:\n\t\t\tif err := fn(item); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\tobj, ok := item.(runtime.Object)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"%v: item[%v]: Expected object, got %#v(%s)\", obj, i, raw.Interface(), raw.Kind())\n\t\t\t}\n\t\t\tif err := fn(obj); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ExtractList returns obj's Items element as an array of runtime.Objects.\n// Returns an error if obj is not a List type (does not have an Items member).\nfunc ExtractList(obj runtime.Object) ([]runtime.Object, error) {\n\titemsPtr, err := GetItemsPtr(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tlist := make([]runtime.Object, items.Len())\n\tfor i := range list {\n\t\traw := items.Index(i)\n\t\tswitch item := raw.Interface().(type) {\n\t\tcase runtime.RawExtension:\n\t\t\tswitch {\n\t\t\tcase item.Object != nil:\n\t\t\t\tlist[i] = item.Object\n\t\t\tcase item.Raw != nil:\n\t\t\t\t// TODO: Set ContentEncoding and ContentType correctly.\n\t\t\t\tlist[i] = &runtime.Unknown{Raw: item.Raw}\n\t\t\tdefault:\n\t\t\t\tlist[i] = nil\n\t\t\t}\n\t\tcase runtime.Object:\n\t\t\tlist[i] = item\n\t\tdefault:\n\t\t\tvar found bool\n\t\t\tif list[i], found = raw.Addr().Interface().(runtime.Object); !found {\n\t\t\t\treturn nil, fmt.Errorf(\"%v: item[%v]: Expected object, got %#v(%s)\", obj, i, raw.Interface(), raw.Kind())\n\t\t\t}\n\t\t}\n\t}\n\treturn list, nil\n}\n\n// objectSliceType is the type of a slice of Objects\nvar objectSliceType = reflect.TypeOf([]runtime.Object{})\n\n// LenList returns the length of this list or 0 if it is not a list.\nfunc LenList(list runtime.Object) int {\n\titemsPtr, err := GetItemsPtr(list)\n\tif err != nil {\n\t\treturn 0\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn items.Len()\n}\n\n// SetList sets the given list object's Items member have the elements given in\n// objects.\n// Returns an error if list is not a List type (does not have an Items member),\n// or if any of the objects are not of the right type.\nfunc SetList(list runtime.Object, objects []runtime.Object) error {\n\titemsPtr, err := GetItemsPtr(list)\n\tif err != nil {\n\t\treturn err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif items.Type() == objectSliceType {\n\t\titems.Set(reflect.ValueOf(objects))\n\t\treturn nil\n\t}\n\tslice := reflect.MakeSlice(items.Type(), len(objects), len(objects))\n\tfor i := range objects {\n\t\tdest := slice.Index(i)\n\t\tif dest.Type() == reflect.TypeOf(runtime.RawExtension{}) {\n\t\t\tdest = dest.FieldByName(\"Object\")\n\t\t}\n\n\t\t// check to see if you're directly assignable\n\t\tif reflect.TypeOf(objects[i]).AssignableTo(dest.Type()) {\n\t\t\tdest.Set(reflect.ValueOf(objects[i]))\n\t\t\tcontinue\n\t\t}\n\n\t\tsrc, err := conversion.EnforcePtr(objects[i])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif src.Type().AssignableTo(dest.Type()) {\n\t\t\tdest.Set(src)\n\t\t} else if src.Type().ConvertibleTo(dest.Type()) {\n\t\t\tdest.Set(src.Convert(dest.Type()))\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"item[%d]: can't assign or convert %v into %v\", i, src.Type(), dest.Type())\n\t\t}\n\t}\n\titems.Set(slice)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/interfaces.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\ntype ListMetaAccessor interface {\n\tGetListMeta() List\n}\n\n// List lets you work with list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\ntype List metav1.ListInterface\n\n// Type exposes the type and APIVersion of versioned or internal API objects.\ntype Type metav1.Type\n\n// MetadataAccessor lets you work with object and list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field (Name, UID, Namespace on lists) will be a no-op and return\n// a default value.\n//\n// MetadataAccessor exposes Interface in a way that can be used with multiple objects.\ntype MetadataAccessor interface {\n\tAPIVersion(obj runtime.Object) (string, error)\n\tSetAPIVersion(obj runtime.Object, version string) error\n\n\tKind(obj runtime.Object) (string, error)\n\tSetKind(obj runtime.Object, kind string) error\n\n\tNamespace(obj runtime.Object) (string, error)\n\tSetNamespace(obj runtime.Object, namespace string) error\n\n\tName(obj runtime.Object) (string, error)\n\tSetName(obj runtime.Object, name string) error\n\n\tGenerateName(obj runtime.Object) (string, error)\n\tSetGenerateName(obj runtime.Object, name string) error\n\n\tUID(obj runtime.Object) (types.UID, error)\n\tSetUID(obj runtime.Object, uid types.UID) error\n\n\tSelfLink(obj runtime.Object) (string, error)\n\tSetSelfLink(obj runtime.Object, selfLink string) error\n\n\tLabels(obj runtime.Object) (map[string]string, error)\n\tSetLabels(obj runtime.Object, labels map[string]string) error\n\n\tAnnotations(obj runtime.Object) (map[string]string, error)\n\tSetAnnotations(obj runtime.Object, annotations map[string]string) error\n\n\tContinue(obj runtime.Object) (string, error)\n\tSetContinue(obj runtime.Object, c string) error\n\n\truntime.ResourceVersioner\n}\n\ntype RESTScopeName string\n\nconst (\n\tRESTScopeNameNamespace RESTScopeName = \"namespace\"\n\tRESTScopeNameRoot      RESTScopeName = \"root\"\n)\n\n// RESTScope contains the information needed to deal with REST resources that are in a resource hierarchy\ntype RESTScope interface {\n\t// Name of the scope\n\tName() RESTScopeName\n}\n\n// RESTMapping contains the information needed to deal with objects of a specific\n// resource and kind in a RESTful manner.\ntype RESTMapping struct {\n\t// Resource is the GroupVersionResource (location) for this endpoint\n\tResource schema.GroupVersionResource\n\n\t// GroupVersionKind is the GroupVersionKind (data format) to submit to this endpoint\n\tGroupVersionKind schema.GroupVersionKind\n\n\t// Scope contains the information needed to deal with REST Resources that are in a resource hierarchy\n\tScope RESTScope\n}\n\n// RESTMapper allows clients to map resources to kind, and map kind and version\n// to interfaces for manipulating those objects. It is primarily intended for\n// consumers of Kubernetes compatible REST APIs as defined in docs/devel/api-conventions.md.\n//\n// The Kubernetes API provides versioned resources and object kinds which are scoped\n// to API groups. In other words, kinds and resources should not be assumed to be\n// unique across groups.\n//\n// TODO: split into sub-interfaces\ntype RESTMapper interface {\n\t// KindFor takes a partial resource and returns the single match.  Returns an error if there are multiple matches\n\tKindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error)\n\n\t// KindsFor takes a partial resource and returns the list of potential kinds in priority order\n\tKindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error)\n\n\t// ResourceFor takes a partial resource and returns the single match.  Returns an error if there are multiple matches\n\tResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error)\n\n\t// ResourcesFor takes a partial resource and returns the list of potential resource in priority order\n\tResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error)\n\n\t// RESTMapping identifies a preferred resource mapping for the provided group kind.\n\tRESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error)\n\t// RESTMappings returns all resource mappings for the provided group kind if no\n\t// version search is provided. Otherwise identifies a preferred resource mapping for\n\t// the provided version(s).\n\tRESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error)\n\n\tResourceSingularizer(resource string) (singular string, err error)\n}\n\n// ResettableRESTMapper is a RESTMapper which is capable of resetting itself\n// from discovery.\n// All rest mappers that delegate to other rest mappers must implement this interface and dynamically\n// check if the delegate mapper supports the Reset() operation.\ntype ResettableRESTMapper interface {\n\tRESTMapper\n\tReset()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/lazy.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// lazyObject defers loading the mapper and typer until necessary.\ntype lazyObject struct {\n\tloader func() (RESTMapper, error)\n\n\tlock   sync.Mutex\n\tloaded bool\n\terr    error\n\tmapper RESTMapper\n}\n\n// NewLazyRESTMapperLoader handles unrecoverable errors when creating a RESTMapper / ObjectTyper by\n// returning those initialization errors when the interface methods are invoked. This defers the\n// initialization and any server calls until a client actually needs to perform the action.\nfunc NewLazyRESTMapperLoader(fn func() (RESTMapper, error)) RESTMapper {\n\tobj := &lazyObject{loader: fn}\n\treturn obj\n}\n\n// init lazily loads the mapper and typer, returning an error if initialization has failed.\nfunc (o *lazyObject) init() error {\n\to.lock.Lock()\n\tdefer o.lock.Unlock()\n\tif o.loaded {\n\t\treturn o.err\n\t}\n\to.mapper, o.err = o.loader()\n\to.loaded = true\n\treturn o.err\n}\n\nvar _ ResettableRESTMapper = &lazyObject{}\n\nfunc (o *lazyObject) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tif err := o.init(); err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\treturn o.mapper.KindFor(resource)\n}\n\nfunc (o *lazyObject) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) {\n\tif err := o.init(); err != nil {\n\t\treturn []schema.GroupVersionKind{}, err\n\t}\n\treturn o.mapper.KindsFor(resource)\n}\n\nfunc (o *lazyObject) ResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tif err := o.init(); err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\treturn o.mapper.ResourceFor(input)\n}\n\nfunc (o *lazyObject) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tif err := o.init(); err != nil {\n\t\treturn []schema.GroupVersionResource{}, err\n\t}\n\treturn o.mapper.ResourcesFor(input)\n}\n\nfunc (o *lazyObject) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tif err := o.init(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn o.mapper.RESTMapping(gk, versions...)\n}\n\nfunc (o *lazyObject) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tif err := o.init(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn o.mapper.RESTMappings(gk, versions...)\n}\n\nfunc (o *lazyObject) ResourceSingularizer(resource string) (singular string, err error) {\n\tif err := o.init(); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn o.mapper.ResourceSingularizer(resource)\n}\n\nfunc (o *lazyObject) Reset() {\n\to.lock.Lock()\n\tdefer o.lock.Unlock()\n\tif o.loaded && o.err == nil {\n\t\tMaybeResetRESTMapper(o.mapper)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/meta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/klog/v2\"\n)\n\n// errNotList is returned when an object implements the Object style interfaces but not the List style\n// interfaces.\nvar errNotList = fmt.Errorf(\"object does not implement the List interfaces\")\n\nvar errNotCommon = fmt.Errorf(\"object does not implement the common interface for accessing the SelfLink\")\n\n// CommonAccessor returns a Common interface for the provided object or an error if the object does\n// not provide List.\nfunc CommonAccessor(obj interface{}) (metav1.Common, error) {\n\tswitch t := obj.(type) {\n\tcase List:\n\t\treturn t, nil\n\tcase ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tcase metav1.ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tcase metav1.Object:\n\t\treturn t, nil\n\tcase metav1.ObjectMetaAccessor:\n\t\tif m := t.GetObjectMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tdefault:\n\t\treturn nil, errNotCommon\n\t}\n}\n\n// ListAccessor returns a List interface for the provided object or an error if the object does\n// not provide List.\n// IMPORTANT: Objects are NOT a superset of lists. Do not use this check to determine whether an\n// object *is* a List.\nfunc ListAccessor(obj interface{}) (List, error) {\n\tswitch t := obj.(type) {\n\tcase List:\n\t\treturn t, nil\n\tcase ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotList\n\tcase metav1.ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotList\n\tdefault:\n\t\treturn nil, errNotList\n\t}\n}\n\n// errNotObject is returned when an object implements the List style interfaces but not the Object style\n// interfaces.\nvar errNotObject = fmt.Errorf(\"object does not implement the Object interfaces\")\n\n// Accessor takes an arbitrary object pointer and returns meta.Interface.\n// obj must be a pointer to an API type. An error is returned if the minimum\n// required fields are missing. Fields that are not required return the default\n// value and are a no-op if set.\nfunc Accessor(obj interface{}) (metav1.Object, error) {\n\tswitch t := obj.(type) {\n\tcase metav1.Object:\n\t\treturn t, nil\n\tcase metav1.ObjectMetaAccessor:\n\t\tif m := t.GetObjectMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotObject\n\tdefault:\n\t\treturn nil, errNotObject\n\t}\n}\n\n// AsPartialObjectMetadata takes the metav1 interface and returns a partial object.\n// TODO: consider making this solely a conversion action.\nfunc AsPartialObjectMetadata(m metav1.Object) *metav1.PartialObjectMetadata {\n\tswitch t := m.(type) {\n\tcase *metav1.ObjectMeta:\n\t\treturn &metav1.PartialObjectMetadata{ObjectMeta: *t}\n\tdefault:\n\t\treturn &metav1.PartialObjectMetadata{\n\t\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\t\tName:                       m.GetName(),\n\t\t\t\tGenerateName:               m.GetGenerateName(),\n\t\t\t\tNamespace:                  m.GetNamespace(),\n\t\t\t\tSelfLink:                   m.GetSelfLink(),\n\t\t\t\tUID:                        m.GetUID(),\n\t\t\t\tResourceVersion:            m.GetResourceVersion(),\n\t\t\t\tGeneration:                 m.GetGeneration(),\n\t\t\t\tCreationTimestamp:          m.GetCreationTimestamp(),\n\t\t\t\tDeletionTimestamp:          m.GetDeletionTimestamp(),\n\t\t\t\tDeletionGracePeriodSeconds: m.GetDeletionGracePeriodSeconds(),\n\t\t\t\tLabels:                     m.GetLabels(),\n\t\t\t\tAnnotations:                m.GetAnnotations(),\n\t\t\t\tOwnerReferences:            m.GetOwnerReferences(),\n\t\t\t\tFinalizers:                 m.GetFinalizers(),\n\t\t\t\tManagedFields:              m.GetManagedFields(),\n\t\t\t},\n\t\t}\n\t}\n}\n\n// TypeAccessor returns an interface that allows retrieving and modifying the APIVersion\n// and Kind of an in-memory internal object.\n// TODO: this interface is used to test code that does not have ObjectMeta or ListMeta\n// in round tripping (objects which can use apiVersion/kind, but do not fit the Kube\n// api conventions).\nfunc TypeAccessor(obj interface{}) (Type, error) {\n\tif typed, ok := obj.(runtime.Object); ok {\n\t\treturn objectAccessor{typed}, nil\n\t}\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tt := v.Type()\n\tif v.Kind() != reflect.Struct {\n\t\treturn nil, fmt.Errorf(\"expected struct, but got %v: %v (%#v)\", v.Kind(), t, v.Interface())\n\t}\n\n\ttypeMeta := v.FieldByName(\"TypeMeta\")\n\tif !typeMeta.IsValid() {\n\t\treturn nil, fmt.Errorf(\"struct %v lacks embedded TypeMeta type\", t)\n\t}\n\ta := &genericAccessor{}\n\tif err := extractFromTypeMeta(typeMeta, a); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to find type fields on %#v: %v\", typeMeta, err)\n\t}\n\treturn a, nil\n}\n\ntype objectAccessor struct {\n\truntime.Object\n}\n\nfunc (obj objectAccessor) GetKind() string {\n\treturn obj.GetObjectKind().GroupVersionKind().Kind\n}\n\nfunc (obj objectAccessor) SetKind(kind string) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tgvk.Kind = kind\n\tobj.GetObjectKind().SetGroupVersionKind(gvk)\n}\n\nfunc (obj objectAccessor) GetAPIVersion() string {\n\treturn obj.GetObjectKind().GroupVersionKind().GroupVersion().String()\n}\n\nfunc (obj objectAccessor) SetAPIVersion(version string) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tgv, err := schema.ParseGroupVersion(version)\n\tif err != nil {\n\t\tgv = schema.GroupVersion{Version: version}\n\t}\n\tgvk.Group, gvk.Version = gv.Group, gv.Version\n\tobj.GetObjectKind().SetGroupVersionKind(gvk)\n}\n\n// NewAccessor returns a MetadataAccessor that can retrieve\n// or manipulate resource version on objects derived from core API\n// metadata concepts.\nfunc NewAccessor() MetadataAccessor {\n\treturn resourceAccessor{}\n}\n\n// resourceAccessor implements ResourceVersioner and SelfLinker.\ntype resourceAccessor struct{}\n\nfunc (resourceAccessor) Kind(obj runtime.Object) (string, error) {\n\treturn objectAccessor{obj}.GetKind(), nil\n}\n\nfunc (resourceAccessor) SetKind(obj runtime.Object, kind string) error {\n\tobjectAccessor{obj}.SetKind(kind)\n\treturn nil\n}\n\nfunc (resourceAccessor) APIVersion(obj runtime.Object) (string, error) {\n\treturn objectAccessor{obj}.GetAPIVersion(), nil\n}\n\nfunc (resourceAccessor) SetAPIVersion(obj runtime.Object, version string) error {\n\tobjectAccessor{obj}.SetAPIVersion(version)\n\treturn nil\n}\n\nfunc (resourceAccessor) Namespace(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetNamespace(), nil\n}\n\nfunc (resourceAccessor) SetNamespace(obj runtime.Object, namespace string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetNamespace(namespace)\n\treturn nil\n}\n\nfunc (resourceAccessor) Name(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetName(), nil\n}\n\nfunc (resourceAccessor) SetName(obj runtime.Object, name string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetName(name)\n\treturn nil\n}\n\nfunc (resourceAccessor) GenerateName(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetGenerateName(), nil\n}\n\nfunc (resourceAccessor) SetGenerateName(obj runtime.Object, name string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetGenerateName(name)\n\treturn nil\n}\n\nfunc (resourceAccessor) UID(obj runtime.Object) (types.UID, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetUID(), nil\n}\n\nfunc (resourceAccessor) SetUID(obj runtime.Object, uid types.UID) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetUID(uid)\n\treturn nil\n}\n\nfunc (resourceAccessor) SelfLink(obj runtime.Object) (string, error) {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetSelfLink(), nil\n}\n\nfunc (resourceAccessor) SetSelfLink(obj runtime.Object, selfLink string) error {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetSelfLink(selfLink)\n\treturn nil\n}\n\nfunc (resourceAccessor) Labels(obj runtime.Object) (map[string]string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn accessor.GetLabels(), nil\n}\n\nfunc (resourceAccessor) SetLabels(obj runtime.Object, labels map[string]string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetLabels(labels)\n\treturn nil\n}\n\nfunc (resourceAccessor) Annotations(obj runtime.Object) (map[string]string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn accessor.GetAnnotations(), nil\n}\n\nfunc (resourceAccessor) SetAnnotations(obj runtime.Object, annotations map[string]string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetAnnotations(annotations)\n\treturn nil\n}\n\nfunc (resourceAccessor) ResourceVersion(obj runtime.Object) (string, error) {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetResourceVersion(), nil\n}\n\nfunc (resourceAccessor) SetResourceVersion(obj runtime.Object, version string) error {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetResourceVersion(version)\n\treturn nil\n}\n\nfunc (resourceAccessor) Continue(obj runtime.Object) (string, error) {\n\taccessor, err := ListAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetContinue(), nil\n}\n\nfunc (resourceAccessor) SetContinue(obj runtime.Object, version string) error {\n\taccessor, err := ListAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetContinue(version)\n\treturn nil\n}\n\n// extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object.\nfunc extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {\n\tif err := runtime.Field(v, \"APIVersion\", &o.APIVersion); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"Kind\", &o.Kind); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"Name\", &o.Name); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"UID\", &o.UID); err != nil {\n\t\treturn err\n\t}\n\tvar controllerPtr *bool\n\tif err := runtime.Field(v, \"Controller\", &controllerPtr); err != nil {\n\t\treturn err\n\t}\n\tif controllerPtr != nil {\n\t\tcontroller := *controllerPtr\n\t\to.Controller = &controller\n\t}\n\tvar blockOwnerDeletionPtr *bool\n\tif err := runtime.Field(v, \"BlockOwnerDeletion\", &blockOwnerDeletionPtr); err != nil {\n\t\treturn err\n\t}\n\tif blockOwnerDeletionPtr != nil {\n\t\tblock := *blockOwnerDeletionPtr\n\t\to.BlockOwnerDeletion = &block\n\t}\n\treturn nil\n}\n\n// setOwnerReference sets v to o. v is the OwnerReferences field of an object.\nfunc setOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {\n\tif err := runtime.SetField(o.APIVersion, v, \"APIVersion\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.Kind, v, \"Kind\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.Name, v, \"Name\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.UID, v, \"UID\"); err != nil {\n\t\treturn err\n\t}\n\tif o.Controller != nil {\n\t\tcontroller := *(o.Controller)\n\t\tif err := runtime.SetField(&controller, v, \"Controller\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif o.BlockOwnerDeletion != nil {\n\t\tblock := *(o.BlockOwnerDeletion)\n\t\tif err := runtime.SetField(&block, v, \"BlockOwnerDeletion\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// genericAccessor contains pointers to strings that can modify an arbitrary\n// struct and implements the Accessor interface.\ntype genericAccessor struct {\n\tnamespace         *string\n\tname              *string\n\tgenerateName      *string\n\tuid               *types.UID\n\tapiVersion        *string\n\tkind              *string\n\tresourceVersion   *string\n\tselfLink          *string\n\tcreationTimestamp *metav1.Time\n\tdeletionTimestamp **metav1.Time\n\tlabels            *map[string]string\n\tannotations       *map[string]string\n\townerReferences   reflect.Value\n\tfinalizers        *[]string\n}\n\nfunc (a genericAccessor) GetNamespace() string {\n\tif a.namespace == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.namespace\n}\n\nfunc (a genericAccessor) SetNamespace(namespace string) {\n\tif a.namespace == nil {\n\t\treturn\n\t}\n\t*a.namespace = namespace\n}\n\nfunc (a genericAccessor) GetName() string {\n\tif a.name == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.name\n}\n\nfunc (a genericAccessor) SetName(name string) {\n\tif a.name == nil {\n\t\treturn\n\t}\n\t*a.name = name\n}\n\nfunc (a genericAccessor) GetGenerateName() string {\n\tif a.generateName == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.generateName\n}\n\nfunc (a genericAccessor) SetGenerateName(generateName string) {\n\tif a.generateName == nil {\n\t\treturn\n\t}\n\t*a.generateName = generateName\n}\n\nfunc (a genericAccessor) GetUID() types.UID {\n\tif a.uid == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.uid\n}\n\nfunc (a genericAccessor) SetUID(uid types.UID) {\n\tif a.uid == nil {\n\t\treturn\n\t}\n\t*a.uid = uid\n}\n\nfunc (a genericAccessor) GetAPIVersion() string {\n\treturn *a.apiVersion\n}\n\nfunc (a genericAccessor) SetAPIVersion(version string) {\n\t*a.apiVersion = version\n}\n\nfunc (a genericAccessor) GetKind() string {\n\treturn *a.kind\n}\n\nfunc (a genericAccessor) SetKind(kind string) {\n\t*a.kind = kind\n}\n\nfunc (a genericAccessor) GetResourceVersion() string {\n\treturn *a.resourceVersion\n}\n\nfunc (a genericAccessor) SetResourceVersion(version string) {\n\t*a.resourceVersion = version\n}\n\nfunc (a genericAccessor) GetSelfLink() string {\n\treturn *a.selfLink\n}\n\nfunc (a genericAccessor) SetSelfLink(selfLink string) {\n\t*a.selfLink = selfLink\n}\n\nfunc (a genericAccessor) GetCreationTimestamp() metav1.Time {\n\treturn *a.creationTimestamp\n}\n\nfunc (a genericAccessor) SetCreationTimestamp(timestamp metav1.Time) {\n\t*a.creationTimestamp = timestamp\n}\n\nfunc (a genericAccessor) GetDeletionTimestamp() *metav1.Time {\n\treturn *a.deletionTimestamp\n}\n\nfunc (a genericAccessor) SetDeletionTimestamp(timestamp *metav1.Time) {\n\t*a.deletionTimestamp = timestamp\n}\n\nfunc (a genericAccessor) GetLabels() map[string]string {\n\tif a.labels == nil {\n\t\treturn nil\n\t}\n\treturn *a.labels\n}\n\nfunc (a genericAccessor) SetLabels(labels map[string]string) {\n\t*a.labels = labels\n}\n\nfunc (a genericAccessor) GetAnnotations() map[string]string {\n\tif a.annotations == nil {\n\t\treturn nil\n\t}\n\treturn *a.annotations\n}\n\nfunc (a genericAccessor) SetAnnotations(annotations map[string]string) {\n\tif a.annotations == nil {\n\t\temptyAnnotations := make(map[string]string)\n\t\ta.annotations = &emptyAnnotations\n\t}\n\t*a.annotations = annotations\n}\n\nfunc (a genericAccessor) GetFinalizers() []string {\n\tif a.finalizers == nil {\n\t\treturn nil\n\t}\n\treturn *a.finalizers\n}\n\nfunc (a genericAccessor) SetFinalizers(finalizers []string) {\n\t*a.finalizers = finalizers\n}\n\nfunc (a genericAccessor) GetOwnerReferences() []metav1.OwnerReference {\n\tvar ret []metav1.OwnerReference\n\ts := a.ownerReferences\n\tif s.Kind() != reflect.Pointer || s.Elem().Kind() != reflect.Slice {\n\t\tklog.Errorf(\"expect %v to be a pointer to slice\", s)\n\t\treturn ret\n\t}\n\ts = s.Elem()\n\t// Set the capacity to one element greater to avoid copy if the caller later append an element.\n\tret = make([]metav1.OwnerReference, s.Len(), s.Len()+1)\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif err := extractFromOwnerReference(s.Index(i), &ret[i]); err != nil {\n\t\t\tklog.Errorf(\"extractFromOwnerReference failed: %v\", err)\n\t\t\treturn ret\n\t\t}\n\t}\n\treturn ret\n}\n\nfunc (a genericAccessor) SetOwnerReferences(references []metav1.OwnerReference) {\n\ts := a.ownerReferences\n\tif s.Kind() != reflect.Pointer || s.Elem().Kind() != reflect.Slice {\n\t\tklog.Errorf(\"expect %v to be a pointer to slice\", s)\n\t}\n\ts = s.Elem()\n\tnewReferences := reflect.MakeSlice(s.Type(), len(references), len(references))\n\tfor i := 0; i < len(references); i++ {\n\t\tif err := setOwnerReference(newReferences.Index(i), &references[i]); err != nil {\n\t\t\tklog.Errorf(\"setOwnerReference failed: %v\", err)\n\t\t\treturn\n\t\t}\n\t}\n\ts.Set(newReferences)\n}\n\n// extractFromTypeMeta extracts pointers to version and kind fields from an object\nfunc extractFromTypeMeta(v reflect.Value, a *genericAccessor) error {\n\tif err := runtime.FieldPtr(v, \"APIVersion\", &a.apiVersion); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.FieldPtr(v, \"Kind\", &a.kind); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/multirestmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n)\n\nvar (\n\t_ ResettableRESTMapper = MultiRESTMapper{}\n)\n\n// MultiRESTMapper is a wrapper for multiple RESTMappers.\ntype MultiRESTMapper []RESTMapper\n\nfunc (m MultiRESTMapper) String() string {\n\tnested := make([]string, 0, len(m))\n\tfor _, t := range m {\n\t\tcurrString := fmt.Sprintf(\"%v\", t)\n\t\tsplitStrings := strings.Split(currString, \"\\n\")\n\t\tnested = append(nested, strings.Join(splitStrings, \"\\n\\t\"))\n\t}\n\n\treturn fmt.Sprintf(\"MultiRESTMapper{\\n\\t%s\\n}\", strings.Join(nested, \"\\n\\t\"))\n}\n\n// ResourceSingularizer converts a REST resource name from plural to singular (e.g., from pods to pod)\n// This implementation supports multiple REST schemas and return the first match.\nfunc (m MultiRESTMapper) ResourceSingularizer(resource string) (singular string, err error) {\n\tfor _, t := range m {\n\t\tsingular, err = t.ResourceSingularizer(resource)\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (m MultiRESTMapper) ResourcesFor(resource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tallGVRs := []schema.GroupVersionResource{}\n\tfor _, t := range m {\n\t\tgvrs, err := t.ResourcesFor(resource)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// walk the existing values to de-dup\n\t\tfor _, curr := range gvrs {\n\t\t\tfound := false\n\t\t\tfor _, existing := range allGVRs {\n\t\t\t\tif curr == existing {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !found {\n\t\t\t\tallGVRs = append(allGVRs, curr)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(allGVRs) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\treturn allGVRs, nil\n}\n\nfunc (m MultiRESTMapper) KindsFor(resource schema.GroupVersionResource) (gvk []schema.GroupVersionKind, err error) {\n\tallGVKs := []schema.GroupVersionKind{}\n\tfor _, t := range m {\n\t\tgvks, err := t.KindsFor(resource)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// walk the existing values to de-dup\n\t\tfor _, curr := range gvks {\n\t\t\tfound := false\n\t\t\tfor _, existing := range allGVKs {\n\t\t\t\tif curr == existing {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !found {\n\t\t\t\tallGVKs = append(allGVKs, curr)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(allGVKs) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\treturn allGVKs, nil\n}\n\nfunc (m MultiRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tresources, err := m.ResourcesFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\tif len(resources) == 1 {\n\t\treturn resources[0], nil\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: resource, MatchingResources: resources}\n}\n\nfunc (m MultiRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tkinds, err := m.KindsFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\tif len(kinds) == 1 {\n\t\treturn kinds[0], nil\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: resource, MatchingKinds: kinds}\n}\n\n// RESTMapping provides the REST mapping for the resource based on the\n// kind and version. This implementation supports multiple REST schemas and\n// return the first match.\nfunc (m MultiRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tallMappings := []*RESTMapping{}\n\terrors := []error{}\n\n\tfor _, t := range m {\n\t\tcurrMapping, err := t.RESTMapping(gk, versions...)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t\tcontinue\n\t\t}\n\n\t\tallMappings = append(allMappings, currMapping)\n\t}\n\n\t// if we got exactly one mapping, then use it even if other requested failed\n\tif len(allMappings) == 1 {\n\t\treturn allMappings[0], nil\n\t}\n\tif len(allMappings) > 1 {\n\t\tvar kinds []schema.GroupVersionKind\n\t\tfor _, m := range allMappings {\n\t\t\tkinds = append(kinds, m.GroupVersionKind)\n\t\t}\n\t\treturn nil, &AmbiguousKindError{PartialKind: gk.WithVersion(\"\"), MatchingKinds: kinds}\n\t}\n\tif len(errors) > 0 {\n\t\treturn nil, utilerrors.NewAggregate(errors)\n\t}\n\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n}\n\n// RESTMappings returns all possible RESTMappings for the provided group kind, or an error\n// if the type is not recognized.\nfunc (m MultiRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tvar allMappings []*RESTMapping\n\tvar errors []error\n\n\tfor _, t := range m {\n\t\tcurrMappings, err := t.RESTMappings(gk, versions...)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t\tcontinue\n\t\t}\n\t\tallMappings = append(allMappings, currMappings...)\n\t}\n\tif len(errors) > 0 {\n\t\treturn nil, utilerrors.NewAggregate(errors)\n\t}\n\tif len(allMappings) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\treturn allMappings, nil\n}\n\nfunc (m MultiRESTMapper) Reset() {\n\tfor _, t := range m {\n\t\tMaybeResetRESTMapper(t)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/priority.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst (\n\tAnyGroup    = \"*\"\n\tAnyVersion  = \"*\"\n\tAnyResource = \"*\"\n\tAnyKind     = \"*\"\n)\n\nvar (\n\t_ ResettableRESTMapper = PriorityRESTMapper{}\n)\n\n// PriorityRESTMapper is a wrapper for automatically choosing a particular Resource or Kind\n// when multiple matches are possible\ntype PriorityRESTMapper struct {\n\t// Delegate is the RESTMapper to use to locate all the Kind and Resource matches\n\tDelegate RESTMapper\n\n\t// ResourcePriority is a list of priority patterns to apply to matching resources.\n\t// The list of all matching resources is narrowed based on the patterns until only one remains.\n\t// A pattern with no matches is skipped.  A pattern with more than one match uses its\n\t// matches as the list to continue matching against.\n\tResourcePriority []schema.GroupVersionResource\n\n\t// KindPriority is a list of priority patterns to apply to matching kinds.\n\t// The list of all matching kinds is narrowed based on the patterns until only one remains.\n\t// A pattern with no matches is skipped.  A pattern with more than one match uses its\n\t// matches as the list to continue matching against.\n\tKindPriority []schema.GroupVersionKind\n}\n\nfunc (m PriorityRESTMapper) String() string {\n\treturn fmt.Sprintf(\"PriorityRESTMapper{\\n\\t%v\\n\\t%v\\n\\t%v\\n}\", m.ResourcePriority, m.KindPriority, m.Delegate)\n}\n\n// ResourceFor finds all resources, then passes them through the ResourcePriority patterns to find a single matching hit.\nfunc (m PriorityRESTMapper) ResourceFor(partiallySpecifiedResource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\toriginalGVRs, originalErr := m.Delegate.ResourcesFor(partiallySpecifiedResource)\n\tif originalErr != nil && len(originalGVRs) == 0 {\n\t\treturn schema.GroupVersionResource{}, originalErr\n\t}\n\tif len(originalGVRs) == 1 {\n\t\treturn originalGVRs[0], originalErr\n\t}\n\n\tremainingGVRs := append([]schema.GroupVersionResource{}, originalGVRs...)\n\tfor _, pattern := range m.ResourcePriority {\n\t\tmatchedGVRs := []schema.GroupVersionResource{}\n\t\tfor _, gvr := range remainingGVRs {\n\t\t\tif resourceMatches(pattern, gvr) {\n\t\t\t\tmatchedGVRs = append(matchedGVRs, gvr)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matchedGVRs) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matchedGVRs[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremainingGVRs = matchedGVRs\n\t\t}\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: partiallySpecifiedResource, MatchingResources: originalGVRs}\n}\n\n// KindFor finds all kinds, then passes them through the KindPriority patterns to find a single matching hit.\nfunc (m PriorityRESTMapper) KindFor(partiallySpecifiedResource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\toriginalGVKs, originalErr := m.Delegate.KindsFor(partiallySpecifiedResource)\n\tif originalErr != nil && len(originalGVKs) == 0 {\n\t\treturn schema.GroupVersionKind{}, originalErr\n\t}\n\tif len(originalGVKs) == 1 {\n\t\treturn originalGVKs[0], originalErr\n\t}\n\n\tremainingGVKs := append([]schema.GroupVersionKind{}, originalGVKs...)\n\tfor _, pattern := range m.KindPriority {\n\t\tmatchedGVKs := []schema.GroupVersionKind{}\n\t\tfor _, gvr := range remainingGVKs {\n\t\t\tif kindMatches(pattern, gvr) {\n\t\t\t\tmatchedGVKs = append(matchedGVKs, gvr)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matchedGVKs) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matchedGVKs[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremainingGVKs = matchedGVKs\n\t\t}\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: partiallySpecifiedResource, MatchingKinds: originalGVKs}\n}\n\nfunc resourceMatches(pattern schema.GroupVersionResource, resource schema.GroupVersionResource) bool {\n\tif pattern.Group != AnyGroup && pattern.Group != resource.Group {\n\t\treturn false\n\t}\n\tif pattern.Version != AnyVersion && pattern.Version != resource.Version {\n\t\treturn false\n\t}\n\tif pattern.Resource != AnyResource && pattern.Resource != resource.Resource {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc kindMatches(pattern schema.GroupVersionKind, kind schema.GroupVersionKind) bool {\n\tif pattern.Group != AnyGroup && pattern.Group != kind.Group {\n\t\treturn false\n\t}\n\tif pattern.Version != AnyVersion && pattern.Version != kind.Version {\n\t\treturn false\n\t}\n\tif pattern.Kind != AnyKind && pattern.Kind != kind.Kind {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc (m PriorityRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (mapping *RESTMapping, err error) {\n\tmappings, originalErr := m.Delegate.RESTMappings(gk, versions...)\n\tif originalErr != nil && len(mappings) == 0 {\n\t\treturn nil, originalErr\n\t}\n\n\t// any versions the user provides take priority\n\tpriorities := m.KindPriority\n\tif len(versions) > 0 {\n\t\tpriorities = make([]schema.GroupVersionKind, 0, len(m.KindPriority)+len(versions))\n\t\tfor _, version := range versions {\n\t\t\tgv := schema.GroupVersion{\n\t\t\t\tVersion: version,\n\t\t\t\tGroup:   gk.Group,\n\t\t\t}\n\t\t\tpriorities = append(priorities, gv.WithKind(AnyKind))\n\t\t}\n\t\tpriorities = append(priorities, m.KindPriority...)\n\t}\n\n\tremaining := append([]*RESTMapping{}, mappings...)\n\tfor _, pattern := range priorities {\n\t\tvar matching []*RESTMapping\n\t\tfor _, m := range remaining {\n\t\t\tif kindMatches(pattern, m.GroupVersionKind) {\n\t\t\t\tmatching = append(matching, m)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matching) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matching[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremaining = matching\n\t\t}\n\t}\n\tif len(remaining) == 1 {\n\t\treturn remaining[0], originalErr\n\t}\n\n\tvar kinds []schema.GroupVersionKind\n\tfor _, m := range mappings {\n\t\tkinds = append(kinds, m.GroupVersionKind)\n\t}\n\treturn nil, &AmbiguousKindError{PartialKind: gk.WithVersion(\"\"), MatchingKinds: kinds}\n}\n\nfunc (m PriorityRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\treturn m.Delegate.RESTMappings(gk, versions...)\n}\n\nfunc (m PriorityRESTMapper) ResourceSingularizer(resource string) (singular string, err error) {\n\treturn m.Delegate.ResourceSingularizer(resource)\n}\n\nfunc (m PriorityRESTMapper) ResourcesFor(partiallySpecifiedResource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\treturn m.Delegate.ResourcesFor(partiallySpecifiedResource)\n}\n\nfunc (m PriorityRESTMapper) KindsFor(partiallySpecifiedResource schema.GroupVersionResource) (gvk []schema.GroupVersionKind, err error) {\n\treturn m.Delegate.KindsFor(partiallySpecifiedResource)\n}\n\nfunc (m PriorityRESTMapper) Reset() {\n\tMaybeResetRESTMapper(m.Delegate)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/restmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// TODO: move everything in this file to pkg/api/rest\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// Implements RESTScope interface\ntype restScope struct {\n\tname RESTScopeName\n}\n\nfunc (r *restScope) Name() RESTScopeName {\n\treturn r.name\n}\n\nvar RESTScopeNamespace = &restScope{\n\tname: RESTScopeNameNamespace,\n}\n\nvar RESTScopeRoot = &restScope{\n\tname: RESTScopeNameRoot,\n}\n\n// DefaultRESTMapper exposes mappings between the types defined in a\n// runtime.Scheme. It assumes that all types defined the provided scheme\n// can be mapped with the provided MetadataAccessor and Codec interfaces.\n//\n// The resource name of a Kind is defined as the lowercase,\n// English-plural version of the Kind string.\n// When converting from resource to Kind, the singular version of the\n// resource name is also accepted for convenience.\n//\n// TODO: Only accept plural for some operations for increased control?\n// (`get pod bar` vs `get pods bar`)\ntype DefaultRESTMapper struct {\n\tdefaultGroupVersions []schema.GroupVersion\n\n\tresourceToKind       map[schema.GroupVersionResource]schema.GroupVersionKind\n\tkindToPluralResource map[schema.GroupVersionKind]schema.GroupVersionResource\n\tkindToScope          map[schema.GroupVersionKind]RESTScope\n\tsingularToPlural     map[schema.GroupVersionResource]schema.GroupVersionResource\n\tpluralToSingular     map[schema.GroupVersionResource]schema.GroupVersionResource\n}\n\nfunc (m *DefaultRESTMapper) String() string {\n\tif m == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DefaultRESTMapper{kindToPluralResource=%v}\", m.kindToPluralResource)\n}\n\nvar _ RESTMapper = &DefaultRESTMapper{}\n\n// NewDefaultRESTMapper initializes a mapping between Kind and APIVersion\n// to a resource name and back based on the objects in a runtime.Scheme\n// and the Kubernetes API conventions. Takes a group name, a priority list of the versions\n// to search when an object has no default version (set empty to return an error),\n// and a function that retrieves the correct metadata for a given version.\nfunc NewDefaultRESTMapper(defaultGroupVersions []schema.GroupVersion) *DefaultRESTMapper {\n\tresourceToKind := make(map[schema.GroupVersionResource]schema.GroupVersionKind)\n\tkindToPluralResource := make(map[schema.GroupVersionKind]schema.GroupVersionResource)\n\tkindToScope := make(map[schema.GroupVersionKind]RESTScope)\n\tsingularToPlural := make(map[schema.GroupVersionResource]schema.GroupVersionResource)\n\tpluralToSingular := make(map[schema.GroupVersionResource]schema.GroupVersionResource)\n\t// TODO: verify name mappings work correctly when versions differ\n\n\treturn &DefaultRESTMapper{\n\t\tresourceToKind:       resourceToKind,\n\t\tkindToPluralResource: kindToPluralResource,\n\t\tkindToScope:          kindToScope,\n\t\tdefaultGroupVersions: defaultGroupVersions,\n\t\tsingularToPlural:     singularToPlural,\n\t\tpluralToSingular:     pluralToSingular,\n\t}\n}\n\nfunc (m *DefaultRESTMapper) Add(kind schema.GroupVersionKind, scope RESTScope) {\n\tplural, singular := UnsafeGuessKindToResource(kind)\n\tm.AddSpecific(kind, plural, singular, scope)\n}\n\nfunc (m *DefaultRESTMapper) AddSpecific(kind schema.GroupVersionKind, plural, singular schema.GroupVersionResource, scope RESTScope) {\n\tm.singularToPlural[singular] = plural\n\tm.pluralToSingular[plural] = singular\n\n\tm.resourceToKind[singular] = kind\n\tm.resourceToKind[plural] = kind\n\n\tm.kindToPluralResource[kind] = plural\n\tm.kindToScope[kind] = scope\n}\n\n// unpluralizedSuffixes is a list of resource suffixes that are the same plural and singular\n// This is only is only necessary because some bits of code are lazy and don't actually use the RESTMapper like they should.\n// TODO eliminate this so that different callers can correctly map to resources.  This probably means updating all\n// callers to use the RESTMapper they mean.\nvar unpluralizedSuffixes = []string{\n\t\"endpoints\",\n}\n\n// UnsafeGuessKindToResource converts Kind to a resource name.\n// Broken. This method only \"sort of\" works when used outside of this package.  It assumes that Kinds and Resources match\n// and they aren't guaranteed to do so.\nfunc UnsafeGuessKindToResource(kind schema.GroupVersionKind) ( /*plural*/ schema.GroupVersionResource /*singular*/, schema.GroupVersionResource) {\n\tkindName := kind.Kind\n\tif len(kindName) == 0 {\n\t\treturn schema.GroupVersionResource{}, schema.GroupVersionResource{}\n\t}\n\tsingularName := strings.ToLower(kindName)\n\tsingular := kind.GroupVersion().WithResource(singularName)\n\n\tfor _, skip := range unpluralizedSuffixes {\n\t\tif strings.HasSuffix(singularName, skip) {\n\t\t\treturn singular, singular\n\t\t}\n\t}\n\n\tswitch string(singularName[len(singularName)-1]) {\n\tcase \"s\":\n\t\treturn kind.GroupVersion().WithResource(singularName + \"es\"), singular\n\tcase \"y\":\n\t\treturn kind.GroupVersion().WithResource(strings.TrimSuffix(singularName, \"y\") + \"ies\"), singular\n\t}\n\n\treturn kind.GroupVersion().WithResource(singularName + \"s\"), singular\n}\n\n// ResourceSingularizer implements RESTMapper\n// It converts a resource name from plural to singular (e.g., from pods to pod)\nfunc (m *DefaultRESTMapper) ResourceSingularizer(resourceType string) (string, error) {\n\tpartialResource := schema.GroupVersionResource{Resource: resourceType}\n\tresources, err := m.ResourcesFor(partialResource)\n\tif err != nil {\n\t\treturn resourceType, err\n\t}\n\n\tsingular := schema.GroupVersionResource{}\n\tfor _, curr := range resources {\n\t\tcurrSingular, ok := m.pluralToSingular[curr]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tif singular.Empty() {\n\t\t\tsingular = currSingular\n\t\t\tcontinue\n\t\t}\n\n\t\tif currSingular.Resource != singular.Resource {\n\t\t\treturn resourceType, fmt.Errorf(\"multiple possible singular resources (%v) found for %v\", resources, resourceType)\n\t\t}\n\t}\n\n\tif singular.Empty() {\n\t\treturn resourceType, fmt.Errorf(\"no singular of resource %v has been defined\", resourceType)\n\t}\n\n\treturn singular.Resource, nil\n}\n\n// coerceResourceForMatching makes the resource lower case and converts internal versions to unspecified (legacy behavior)\nfunc coerceResourceForMatching(resource schema.GroupVersionResource) schema.GroupVersionResource {\n\tresource.Resource = strings.ToLower(resource.Resource)\n\tif resource.Version == runtime.APIVersionInternal {\n\t\tresource.Version = \"\"\n\t}\n\n\treturn resource\n}\n\nfunc (m *DefaultRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tresource := coerceResourceForMatching(input)\n\n\thasResource := len(resource.Resource) > 0\n\thasGroup := len(resource.Group) > 0\n\thasVersion := len(resource.Version) > 0\n\n\tif !hasResource {\n\t\treturn nil, fmt.Errorf(\"a resource must be present, got: %v\", resource)\n\t}\n\n\tret := []schema.GroupVersionResource{}\n\tswitch {\n\tcase hasGroup && hasVersion:\n\t\t// fully qualified.  Find the exact match\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular == resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif plural == resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\tcase hasGroup:\n\t\t// given a group, prefer an exact match.  If you don't find one, resort to a prefix match on group\n\t\tfoundExactMatch := false\n\t\trequestedGroupResource := resource.GroupResource()\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\n\t\t// if you didn't find an exact match, match on group prefixing. This allows storageclass.storage to match\n\t\t// storageclass.storage.k8s.io\n\t\tif !foundExactMatch {\n\t\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\t\tif !strings.HasPrefix(plural.Group, requestedGroupResource.Group) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif singular.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, plural)\n\t\t\t\t}\n\t\t\t\tif plural.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, plural)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\tcase hasVersion:\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.Version == resource.Version && singular.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.Version == resource.Version && plural.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(ret) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\tsort.Sort(resourceByPreferredGroupVersion{ret, m.defaultGroupVersions})\n\treturn ret, nil\n}\n\nfunc (m *DefaultRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tresources, err := m.ResourcesFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\tif len(resources) == 1 {\n\t\treturn resources[0], nil\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: resource, MatchingResources: resources}\n}\n\nfunc (m *DefaultRESTMapper) KindsFor(input schema.GroupVersionResource) ([]schema.GroupVersionKind, error) {\n\tresource := coerceResourceForMatching(input)\n\n\thasResource := len(resource.Resource) > 0\n\thasGroup := len(resource.Group) > 0\n\thasVersion := len(resource.Version) > 0\n\n\tif !hasResource {\n\t\treturn nil, fmt.Errorf(\"a resource must be present, got: %v\", resource)\n\t}\n\n\tret := []schema.GroupVersionKind{}\n\tswitch {\n\t// fully qualified.  Find the exact match\n\tcase hasGroup && hasVersion:\n\t\tkind, exists := m.resourceToKind[resource]\n\t\tif exists {\n\t\t\tret = append(ret, kind)\n\t\t}\n\n\tcase hasGroup:\n\t\tfoundExactMatch := false\n\t\trequestedGroupResource := resource.GroupResource()\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\n\t\t// if you didn't find an exact match, match on group prefixing. This allows storageclass.storage to match\n\t\t// storageclass.storage.k8s.io\n\t\tif !foundExactMatch {\n\t\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\t\tif !strings.HasPrefix(currResource.Group, requestedGroupResource.Group) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif currResource.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, currKind)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\tcase hasVersion:\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.Version == resource.Version && currResource.Resource == resource.Resource {\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.Resource == resource.Resource {\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(ret) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: input}\n\t}\n\n\tsort.Sort(kindByPreferredGroupVersion{ret, m.defaultGroupVersions})\n\treturn ret, nil\n}\n\nfunc (m *DefaultRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tkinds, err := m.KindsFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\tif len(kinds) == 1 {\n\t\treturn kinds[0], nil\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: resource, MatchingKinds: kinds}\n}\n\ntype kindByPreferredGroupVersion struct {\n\tlist      []schema.GroupVersionKind\n\tsortOrder []schema.GroupVersion\n}\n\nfunc (o kindByPreferredGroupVersion) Len() int      { return len(o.list) }\nfunc (o kindByPreferredGroupVersion) Swap(i, j int) { o.list[i], o.list[j] = o.list[j], o.list[i] }\nfunc (o kindByPreferredGroupVersion) Less(i, j int) bool {\n\tlhs := o.list[i]\n\trhs := o.list[j]\n\tif lhs == rhs {\n\t\treturn false\n\t}\n\n\tif lhs.GroupVersion() == rhs.GroupVersion() {\n\t\treturn lhs.Kind < rhs.Kind\n\t}\n\n\t// otherwise, the difference is in the GroupVersion, so we need to sort with respect to the preferred order\n\tlhsIndex := -1\n\trhsIndex := -1\n\n\tfor i := range o.sortOrder {\n\t\tif o.sortOrder[i] == lhs.GroupVersion() {\n\t\t\tlhsIndex = i\n\t\t}\n\t\tif o.sortOrder[i] == rhs.GroupVersion() {\n\t\t\trhsIndex = i\n\t\t}\n\t}\n\n\tif rhsIndex == -1 {\n\t\treturn true\n\t}\n\n\treturn lhsIndex < rhsIndex\n}\n\ntype resourceByPreferredGroupVersion struct {\n\tlist      []schema.GroupVersionResource\n\tsortOrder []schema.GroupVersion\n}\n\nfunc (o resourceByPreferredGroupVersion) Len() int      { return len(o.list) }\nfunc (o resourceByPreferredGroupVersion) Swap(i, j int) { o.list[i], o.list[j] = o.list[j], o.list[i] }\nfunc (o resourceByPreferredGroupVersion) Less(i, j int) bool {\n\tlhs := o.list[i]\n\trhs := o.list[j]\n\tif lhs == rhs {\n\t\treturn false\n\t}\n\n\tif lhs.GroupVersion() == rhs.GroupVersion() {\n\t\treturn lhs.Resource < rhs.Resource\n\t}\n\n\t// otherwise, the difference is in the GroupVersion, so we need to sort with respect to the preferred order\n\tlhsIndex := -1\n\trhsIndex := -1\n\n\tfor i := range o.sortOrder {\n\t\tif o.sortOrder[i] == lhs.GroupVersion() {\n\t\t\tlhsIndex = i\n\t\t}\n\t\tif o.sortOrder[i] == rhs.GroupVersion() {\n\t\t\trhsIndex = i\n\t\t}\n\t}\n\n\tif rhsIndex == -1 {\n\t\treturn true\n\t}\n\n\treturn lhsIndex < rhsIndex\n}\n\n// RESTMapping returns a struct representing the resource path and conversion interfaces a\n// RESTClient should use to operate on the provided group/kind in order of versions. If a version search\n// order is not provided, the search order provided to DefaultRESTMapper will be used to resolve which\n// version should be used to access the named group/kind.\nfunc (m *DefaultRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tmappings, err := m.RESTMappings(gk, versions...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(mappings) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\t// since we rely on RESTMappings method\n\t// take the first match and return to the caller\n\t// as this was the existing behavior.\n\treturn mappings[0], nil\n}\n\n// RESTMappings returns the RESTMappings for the provided group kind. If a version search order\n// is not provided, the search order provided to DefaultRESTMapper will be used.\nfunc (m *DefaultRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tmappings := make([]*RESTMapping, 0)\n\tpotentialGVK := make([]schema.GroupVersionKind, 0)\n\thadVersion := false\n\n\t// Pick an appropriate version\n\tfor _, version := range versions {\n\t\tif len(version) == 0 || version == runtime.APIVersionInternal {\n\t\t\tcontinue\n\t\t}\n\t\tcurrGVK := gk.WithVersion(version)\n\t\thadVersion = true\n\t\tif _, ok := m.kindToPluralResource[currGVK]; ok {\n\t\t\tpotentialGVK = append(potentialGVK, currGVK)\n\t\t\tbreak\n\t\t}\n\t}\n\t// Use the default preferred versions\n\tif !hadVersion && len(potentialGVK) == 0 {\n\t\tfor _, gv := range m.defaultGroupVersions {\n\t\t\tif gv.Group != gk.Group {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpotentialGVK = append(potentialGVK, gk.WithVersion(gv.Version))\n\t\t}\n\t}\n\n\tif len(potentialGVK) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\n\tfor _, gvk := range potentialGVK {\n\t\t//Ensure we have a REST mapping\n\t\tres, ok := m.kindToPluralResource[gvk]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Ensure we have a REST scope\n\t\tscope, ok := m.kindToScope[gvk]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"the provided version %q and kind %q cannot be mapped to a supported scope\", gvk.GroupVersion(), gvk.Kind)\n\t\t}\n\n\t\tmappings = append(mappings, &RESTMapping{\n\t\t\tResource:         res,\n\t\t\tGroupVersionKind: gvk,\n\t\t\tScope:            scope,\n\t\t})\n\t}\n\n\tif len(mappings) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: schema.GroupVersionResource{Group: gk.Group, Resource: gk.Kind}}\n\t}\n\treturn mappings, nil\n}\n\n// MaybeResetRESTMapper calls Reset() on the mapper if it is a ResettableRESTMapper.\nfunc MaybeResetRESTMapper(mapper RESTMapper) {\n\tm, ok := mapper.(ResettableRESTMapper)\n\tif ok {\n\t\tm.Reset()\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - lavalamp\n  - smarterclayton\n  - wojtek-t\n  - derekwaynecarr\n  - mikedanese\n  - saad-ali\n  - janetkuo\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/amount.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math/big\"\n\t\"strconv\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\n// Scale is used for getting and setting the base-10 scaled value.\n// Base-2 scales are omitted for mathematical simplicity.\n// See Quantity.ScaledValue for more details.\ntype Scale int32\n\n// infScale adapts a Scale value to an inf.Scale value.\nfunc (s Scale) infScale() inf.Scale {\n\treturn inf.Scale(-s) // inf.Scale is upside-down\n}\n\nconst (\n\tNano  Scale = -9\n\tMicro Scale = -6\n\tMilli Scale = -3\n\tKilo  Scale = 3\n\tMega  Scale = 6\n\tGiga  Scale = 9\n\tTera  Scale = 12\n\tPeta  Scale = 15\n\tExa   Scale = 18\n)\n\nvar (\n\tZero = int64Amount{}\n\n\t// Used by quantity strings - treat as read only\n\tzeroBytes = []byte(\"0\")\n)\n\n// int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster\n// than operations on inf.Dec for values that can be represented as int64.\n// +k8s:openapi-gen=true\ntype int64Amount struct {\n\tvalue int64\n\tscale Scale\n}\n\n// Sign returns 0 if the value is zero, -1 if it is less than 0, or 1 if it is greater than 0.\nfunc (a int64Amount) Sign() int {\n\tswitch {\n\tcase a.value == 0:\n\t\treturn 0\n\tcase a.value > 0:\n\t\treturn 1\n\tdefault:\n\t\treturn -1\n\t}\n}\n\n// AsInt64 returns the current amount as an int64 at scale 0, or false if the value cannot be\n// represented in an int64 OR would result in a loss of precision. This method is intended as\n// an optimization to avoid calling AsDec.\nfunc (a int64Amount) AsInt64() (int64, bool) {\n\tif a.scale == 0 {\n\t\treturn a.value, true\n\t}\n\tif a.scale < 0 {\n\t\t// TODO: attempt to reduce factors, although it is assumed that factors are reduced prior\n\t\t// to the int64Amount being created.\n\t\treturn 0, false\n\t}\n\treturn positiveScaleInt64(a.value, a.scale)\n}\n\n// AsScaledInt64 returns an int64 representing the value of this amount at the specified scale,\n// rounding up, or false if that would result in overflow. (1e20).AsScaledInt64(1) would result\n// in overflow because 1e19 is not representable as an int64. Note that setting a scale larger\n// than the current value may result in loss of precision - i.e. (1e-6).AsScaledInt64(0) would\n// return 1, because 0.000001 is rounded up to 1.\nfunc (a int64Amount) AsScaledInt64(scale Scale) (result int64, ok bool) {\n\tif a.scale < scale {\n\t\tresult, _ = negativeScaleInt64(a.value, scale-a.scale)\n\t\treturn result, true\n\t}\n\treturn positiveScaleInt64(a.value, a.scale-scale)\n}\n\n// AsDec returns an inf.Dec representation of this value.\nfunc (a int64Amount) AsDec() *inf.Dec {\n\tvar base inf.Dec\n\tbase.SetUnscaled(a.value)\n\tbase.SetScale(inf.Scale(-a.scale))\n\treturn &base\n}\n\n// Cmp returns 0 if a and b are equal, 1 if a is greater than b, or -1 if a is less than b.\nfunc (a int64Amount) Cmp(b int64Amount) int {\n\tswitch {\n\tcase a.scale == b.scale:\n\t\t// compare only the unscaled portion\n\tcase a.scale > b.scale:\n\t\tresult, remainder, exact := divideByScaleInt64(b.value, a.scale-b.scale)\n\t\tif !exact {\n\t\t\treturn a.AsDec().Cmp(b.AsDec())\n\t\t}\n\t\tif result == a.value {\n\t\t\tswitch {\n\t\t\tcase remainder == 0:\n\t\t\t\treturn 0\n\t\t\tcase remainder > 0:\n\t\t\t\treturn -1\n\t\t\tdefault:\n\t\t\t\treturn 1\n\t\t\t}\n\t\t}\n\t\tb.value = result\n\tdefault:\n\t\tresult, remainder, exact := divideByScaleInt64(a.value, b.scale-a.scale)\n\t\tif !exact {\n\t\t\treturn a.AsDec().Cmp(b.AsDec())\n\t\t}\n\t\tif result == b.value {\n\t\t\tswitch {\n\t\t\tcase remainder == 0:\n\t\t\t\treturn 0\n\t\t\tcase remainder > 0:\n\t\t\t\treturn 1\n\t\t\tdefault:\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t\ta.value = result\n\t}\n\n\tswitch {\n\tcase a.value == b.value:\n\t\treturn 0\n\tcase a.value < b.value:\n\t\treturn -1\n\tdefault:\n\t\treturn 1\n\t}\n}\n\n// Add adds two int64Amounts together, matching scales. It will return false and not mutate\n// a if overflow or underflow would result.\nfunc (a *int64Amount) Add(b int64Amount) bool {\n\tswitch {\n\tcase b.value == 0:\n\t\treturn true\n\tcase a.value == 0:\n\t\ta.value = b.value\n\t\ta.scale = b.scale\n\t\treturn true\n\tcase a.scale == b.scale:\n\t\tc, ok := int64Add(a.value, b.value)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\tcase a.scale > b.scale:\n\t\tc, ok := positiveScaleInt64(a.value, a.scale-b.scale)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tc, ok = int64Add(c, b.value)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.scale = b.scale\n\t\ta.value = c\n\tdefault:\n\t\tc, ok := positiveScaleInt64(b.value, b.scale-a.scale)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tc, ok = int64Add(a.value, c)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\t}\n\treturn true\n}\n\n// Sub removes the value of b from the current amount, or returns false if underflow would result.\nfunc (a *int64Amount) Sub(b int64Amount) bool {\n\treturn a.Add(int64Amount{value: -b.value, scale: b.scale})\n}\n\n// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision\n// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6.\nfunc (a int64Amount) AsScale(scale Scale) (int64Amount, bool) {\n\tif a.scale >= scale {\n\t\treturn a, true\n\t}\n\tresult, exact := negativeScaleInt64(a.value, scale-a.scale)\n\treturn int64Amount{value: result, scale: scale}, exact\n}\n\n// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted\n// until the exponent is a multiple of 3 - i.e. 1.1e5 would return \"110\", 3.\nfunc (a int64Amount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tmantissa := a.value\n\texponent = int32(a.scale)\n\n\tamount, times := removeInt64Factors(mantissa, 10)\n\texponent += int32(times)\n\n\t// make sure exponent is a multiple of 3\n\tvar ok bool\n\tswitch exponent % 3 {\n\tcase 1, -2:\n\t\tamount, ok = int64MultiplyScale10(amount)\n\t\tif !ok {\n\t\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBytes(out)\n\t\t}\n\t\texponent = exponent - 1\n\tcase 2, -1:\n\t\tamount, ok = int64MultiplyScale100(amount)\n\t\tif !ok {\n\t\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBytes(out)\n\t\t}\n\t\texponent = exponent - 2\n\t}\n\treturn strconv.AppendInt(out, amount, 10), exponent\n}\n\n// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would\n// return []byte(\"2048\"), 1.\nfunc (a int64Amount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) {\n\tvalue, ok := a.AsScaledInt64(0)\n\tif !ok {\n\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBase1024Bytes(out)\n\t}\n\tamount, exponent := removeInt64Factors(value, 1024)\n\treturn strconv.AppendInt(out, amount, 10), exponent\n}\n\n// infDecAmount implements common operations over an inf.Dec that are specific to the quantity\n// representation.\ntype infDecAmount struct {\n\t*inf.Dec\n}\n\n// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision\n// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6.\nfunc (a infDecAmount) AsScale(scale Scale) (infDecAmount, bool) {\n\ttmp := &inf.Dec{}\n\ttmp.Round(a.Dec, scale.infScale(), inf.RoundUp)\n\treturn infDecAmount{tmp}, tmp.Cmp(a.Dec) == 0\n}\n\n// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted\n// until the exponent is a multiple of 3 - i.e. 1.1e5 would return \"110\", 3.\nfunc (a infDecAmount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tmantissa := a.Dec.UnscaledBig()\n\texponent = int32(-a.Dec.Scale())\n\tamount := big.NewInt(0).Set(mantissa)\n\t// move all factors of 10 into the exponent for easy reasoning\n\tamount, times := removeBigIntFactors(amount, bigTen)\n\texponent += times\n\n\t// make sure exponent is a multiple of 3\n\tfor exponent%3 != 0 {\n\t\tamount.Mul(amount, bigTen)\n\t\texponent--\n\t}\n\n\treturn append(out, amount.String()...), exponent\n}\n\n// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would\n// return []byte(\"2048\"), 1.\nfunc (a infDecAmount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) {\n\ttmp := &inf.Dec{}\n\ttmp.Round(a.Dec, 0, inf.RoundUp)\n\tamount, exponent := removeBigIntFactors(tmp.UnscaledBig(), big1024)\n\treturn append(out, amount.String()...), exponent\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto\n\npackage resource\n\nimport (\n\tfmt \"fmt\"\n\n\tmath \"math\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Quantity) Reset()      { *m = Quantity{} }\nfunc (*Quantity) ProtoMessage() {}\nfunc (*Quantity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_612bba87bd70906c, []int{0}\n}\nfunc (m *Quantity) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_Quantity.Unmarshal(m, b)\n}\nfunc (m *Quantity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_Quantity.Marshal(b, m, deterministic)\n}\nfunc (m *Quantity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Quantity.Merge(m, src)\n}\nfunc (m *Quantity) XXX_Size() int {\n\treturn xxx_messageInfo_Quantity.Size(m)\n}\nfunc (m *Quantity) XXX_DiscardUnknown() {\n\txxx_messageInfo_Quantity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Quantity proto.InternalMessageInfo\n\nfunc (m *QuantityValue) Reset()      { *m = QuantityValue{} }\nfunc (*QuantityValue) ProtoMessage() {}\nfunc (*QuantityValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_612bba87bd70906c, []int{1}\n}\nfunc (m *QuantityValue) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_QuantityValue.Unmarshal(m, b)\n}\nfunc (m *QuantityValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_QuantityValue.Marshal(b, m, deterministic)\n}\nfunc (m *QuantityValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QuantityValue.Merge(m, src)\n}\nfunc (m *QuantityValue) XXX_Size() int {\n\treturn xxx_messageInfo_QuantityValue.Size(m)\n}\nfunc (m *QuantityValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_QuantityValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QuantityValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Quantity)(nil), \"k8s.io.apimachinery.pkg.api.resource.Quantity\")\n\tproto.RegisterType((*QuantityValue)(nil), \"k8s.io.apimachinery.pkg.api.resource.QuantityValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto\", fileDescriptor_612bba87bd70906c)\n}\n\nvar fileDescriptor_612bba87bd70906c = []byte{\n\t// 254 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xf2, 0xcd, 0xb6, 0x28, 0xd6,\n\t0xcb, 0xcc, 0xd7, 0xcf, 0x2e, 0x4d, 0x4a, 0x2d, 0xca, 0x4b, 0x2d, 0x49, 0x2d, 0xd6, 0x2f, 0x4b,\n\t0xcd, 0x4b, 0xc9, 0x2f, 0xd2, 0x87, 0x4a, 0x24, 0x16, 0x64, 0xe6, 0x26, 0x26, 0x67, 0x64, 0xe6,\n\t0xa5, 0x16, 0x55, 0xea, 0x17, 0x64, 0xa7, 0x83, 0x04, 0xf4, 0x8b, 0x52, 0x8b, 0xf3, 0x4b, 0x8b,\n\t0x92, 0x53, 0xf5, 0xd3, 0x53, 0xf3, 0x52, 0x8b, 0x12, 0x4b, 0x52, 0x53, 0xf4, 0x0a, 0x8a, 0xf2,\n\t0x4b, 0xf2, 0x85, 0x54, 0x20, 0xba, 0xf4, 0x90, 0x75, 0xe9, 0x15, 0x64, 0xa7, 0x83, 0x04, 0xf4,\n\t0x60, 0xba, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3,\n\t0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x9a, 0x93, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x18,\n\t0xaa, 0x64, 0xc1, 0xc5, 0x11, 0x58, 0x9a, 0x98, 0x57, 0x92, 0x59, 0x52, 0x29, 0x24, 0xc6, 0xc5,\n\t0x56, 0x5c, 0x52, 0x94, 0x99, 0x97, 0x2e, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0x04, 0xe5, 0x59,\n\t0x89, 0xcc, 0x58, 0x20, 0xcf, 0xd0, 0xb1, 0x50, 0x9e, 0x61, 0xc2, 0x42, 0x79, 0x86, 0x05, 0x0b,\n\t0xe5, 0x19, 0x1a, 0xee, 0x28, 0x30, 0x28, 0xd9, 0x72, 0xf1, 0xc2, 0x74, 0x86, 0x25, 0xe6, 0x94,\n\t0xa6, 0x92, 0xa6, 0xdd, 0xc9, 0xeb, 0xc4, 0x43, 0x39, 0x86, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c,\n\t0x94, 0x63, 0x68, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x37,\n\t0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0x43, 0x94, 0x0a, 0x31, 0x21,\n\t0x05, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x70, 0x98, 0xa3, 0x69, 0x01, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.api.resource;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/api/resource\";\n\n// Quantity is a fixed-point representation of a number.\n// It provides convenient marshaling/unmarshaling in JSON and YAML,\n// in addition to String() and AsInt64() accessors.\n//\n// The serialization format is:\n//\n// ```\n// <quantity>        ::= <signedNumber><suffix>\n//\n// \t(Note that <suffix> may be empty, from the \"\" case in <decimalSI>.)\n//\n// <digit>           ::= 0 | 1 | ... | 9\n// <digits>          ::= <digit> | <digit><digits>\n// <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>\n// <sign>            ::= \"+\" | \"-\"\n// <signedNumber>    ::= <number> | <sign><number>\n// <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>\n// <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei\n//\n// \t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n//\n// <decimalSI>       ::= m | \"\" | k | M | G | T | P | E\n//\n// \t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n//\n// <decimalExponent> ::= \"e\" <signedNumber> | \"E\" <signedNumber>\n// ```\n//\n// No matter which of the three exponent forms is used, no quantity may represent\n// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\n// places. Numbers larger or more precise will be capped or rounded up.\n// (E.g.: 0.1m will rounded up to 1m.)\n// This may be extended in the future if we require larger or smaller quantities.\n//\n// When a Quantity is parsed from a string, it will remember the type of suffix\n// it had, and will use the same type again when it is serialized.\n//\n// Before serializing, Quantity will be put in \"canonical form\".\n// This means that Exponent/suffix will be adjusted up or down (with a\n// corresponding increase or decrease in Mantissa) such that:\n//\n// - No precision is lost\n// - No fractional digits will be emitted\n// - The exponent (or suffix) is as large as possible.\n//\n// The sign will be omitted unless the number is negative.\n//\n// Examples:\n//\n// - 1.5 will be serialized as \"1500m\"\n// - 1.5Gi will be serialized as \"1536Mi\"\n//\n// Note that the quantity will NEVER be internally represented by a\n// floating point number. That is the whole point of this exercise.\n//\n// Non-canonical values will still parse as long as they are well formed,\n// but will be re-emitted in their canonical form. (So always use canonical\n// form, or don't diff.)\n//\n// This format is intended to make it difficult to use these numbers without\n// writing some sort of special handling code in the hopes that that will\n// cause implementors to also use a fixed point implementation.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\n// +k8s:openapi-gen=true\nmessage Quantity {\n  optional string string = 1;\n}\n\n// QuantityValue makes it possible to use a Quantity as value for a command\n// line parameter.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\nmessage QuantityValue {\n  optional string string = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/math.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math/big\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\nconst (\n\t// maxInt64Factors is the highest value that will be checked when removing factors of 10 from an int64.\n\t// It is also the maximum decimal digits that can be represented with an int64.\n\tmaxInt64Factors = 18\n)\n\nvar (\n\t// Commonly needed big.Int values-- treat as read only!\n\tbigTen      = big.NewInt(10)\n\tbigZero     = big.NewInt(0)\n\tbigOne      = big.NewInt(1)\n\tbigThousand = big.NewInt(1000)\n\tbig1024     = big.NewInt(1024)\n\n\t// Commonly needed inf.Dec values-- treat as read only!\n\tdecZero = inf.NewDec(0, 0)\n\tdecOne  = inf.NewDec(1, 0)\n\n\t// Largest (in magnitude) number allowed.\n\tmaxAllowed = infDecAmount{inf.NewDec((1<<63)-1, 0)} // == max int64\n\n\t// The maximum value we can represent milli-units for.\n\t// Compare with the return value of Quantity.Value() to\n\t// see if it's safe to use Quantity.MilliValue().\n\tMaxMilliValue = int64(((1 << 63) - 1) / 1000)\n)\n\nconst mostNegative = -(mostPositive + 1)\nconst mostPositive = 1<<63 - 1\n\n// int64Add returns a+b, or false if that would overflow int64.\nfunc int64Add(a, b int64) (int64, bool) {\n\tc := a + b\n\tswitch {\n\tcase a > 0 && b > 0:\n\t\tif c < 0 {\n\t\t\treturn 0, false\n\t\t}\n\tcase a < 0 && b < 0:\n\t\tif c > 0 {\n\t\t\treturn 0, false\n\t\t}\n\t\tif a == mostNegative && b == mostNegative {\n\t\t\treturn 0, false\n\t\t}\n\t}\n\treturn c, true\n}\n\n// int64Multiply returns a*b, or false if that would overflow or underflow int64.\nfunc int64Multiply(a, b int64) (int64, bool) {\n\tif a == 0 || b == 0 || a == 1 || b == 1 {\n\t\treturn a * b, true\n\t}\n\tif a == mostNegative || b == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * b\n\treturn c, c/b == a\n}\n\n// int64MultiplyScale returns a*b, assuming b is greater than one, or false if that would overflow or underflow int64.\n// Use when b is known to be greater than one.\nfunc int64MultiplyScale(a int64, b int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * b, true\n\t}\n\tif a == mostNegative && b != 1 {\n\t\treturn 0, false\n\t}\n\tc := a * b\n\treturn c, c/b == a\n}\n\n// int64MultiplyScale10 multiplies a by 10, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 10) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale10(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 10, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 10\n\treturn c, c/10 == a\n}\n\n// int64MultiplyScale100 multiplies a by 100, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 100) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale100(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 100, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 100\n\treturn c, c/100 == a\n}\n\n// int64MultiplyScale1000 multiplies a by 1000, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 1000) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale1000(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 1000, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 1000\n\treturn c, c/1000 == a\n}\n\n// positiveScaleInt64 multiplies base by 10^scale, returning false if the\n// value overflows. Passing a negative scale is undefined.\nfunc positiveScaleInt64(base int64, scale Scale) (int64, bool) {\n\tswitch scale {\n\tcase 0:\n\t\treturn base, true\n\tcase 1:\n\t\treturn int64MultiplyScale10(base)\n\tcase 2:\n\t\treturn int64MultiplyScale100(base)\n\tcase 3:\n\t\treturn int64MultiplyScale1000(base)\n\tcase 6:\n\t\treturn int64MultiplyScale(base, 1000000)\n\tcase 9:\n\t\treturn int64MultiplyScale(base, 1000000000)\n\tdefault:\n\t\tvalue := base\n\t\tvar ok bool\n\t\tfor i := Scale(0); i < scale; i++ {\n\t\t\tif value, ok = int64MultiplyScale(value, 10); !ok {\n\t\t\t\treturn 0, false\n\t\t\t}\n\t\t}\n\t\treturn value, true\n\t}\n}\n\n// negativeScaleInt64 reduces base by the provided scale, rounding up, until the\n// value is zero or the scale is reached. Passing a negative scale is undefined.\n// The value returned, if not exact, is rounded away from zero.\nfunc negativeScaleInt64(base int64, scale Scale) (result int64, exact bool) {\n\tif scale == 0 {\n\t\treturn base, true\n\t}\n\n\tvalue := base\n\tvar fraction bool\n\tfor i := Scale(0); i < scale; i++ {\n\t\tif !fraction && value%10 != 0 {\n\t\t\tfraction = true\n\t\t}\n\t\tvalue = value / 10\n\t\tif value == 0 {\n\t\t\tif fraction {\n\t\t\t\tif base > 0 {\n\t\t\t\t\treturn 1, false\n\t\t\t\t}\n\t\t\t\treturn -1, false\n\t\t\t}\n\t\t\treturn 0, true\n\t\t}\n\t}\n\tif fraction {\n\t\tif base > 0 {\n\t\t\tvalue++\n\t\t} else {\n\t\t\tvalue--\n\t\t}\n\t}\n\treturn value, !fraction\n}\n\nfunc pow10Int64(b int64) int64 {\n\tswitch b {\n\tcase 0:\n\t\treturn 1\n\tcase 1:\n\t\treturn 10\n\tcase 2:\n\t\treturn 100\n\tcase 3:\n\t\treturn 1000\n\tcase 4:\n\t\treturn 10000\n\tcase 5:\n\t\treturn 100000\n\tcase 6:\n\t\treturn 1000000\n\tcase 7:\n\t\treturn 10000000\n\tcase 8:\n\t\treturn 100000000\n\tcase 9:\n\t\treturn 1000000000\n\tcase 10:\n\t\treturn 10000000000\n\tcase 11:\n\t\treturn 100000000000\n\tcase 12:\n\t\treturn 1000000000000\n\tcase 13:\n\t\treturn 10000000000000\n\tcase 14:\n\t\treturn 100000000000000\n\tcase 15:\n\t\treturn 1000000000000000\n\tcase 16:\n\t\treturn 10000000000000000\n\tcase 17:\n\t\treturn 100000000000000000\n\tcase 18:\n\t\treturn 1000000000000000000\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// negativeScaleInt64 returns the result of dividing base by scale * 10 and the remainder, or\n// false if no such division is possible. Dividing by negative scales is undefined.\nfunc divideByScaleInt64(base int64, scale Scale) (result, remainder int64, exact bool) {\n\tif scale == 0 {\n\t\treturn base, 0, true\n\t}\n\t// the max scale representable in base 10 in an int64 is 18 decimal places\n\tif scale >= 18 {\n\t\treturn 0, base, false\n\t}\n\tdivisor := pow10Int64(int64(scale))\n\treturn base / divisor, base % divisor, true\n}\n\n// removeInt64Factors divides in a loop; the return values have the property that\n// value == result * base ^ scale\nfunc removeInt64Factors(value int64, base int64) (result int64, times int32) {\n\ttimes = 0\n\tresult = value\n\tnegative := result < 0\n\tif negative {\n\t\tresult = -result\n\t}\n\tswitch base {\n\t// allow the compiler to optimize the common cases\n\tcase 10:\n\t\tfor result >= 10 && result%10 == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / 10\n\t\t}\n\t// allow the compiler to optimize the common cases\n\tcase 1024:\n\t\tfor result >= 1024 && result%1024 == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / 1024\n\t\t}\n\tdefault:\n\t\tfor result >= base && result%base == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / base\n\t\t}\n\t}\n\tif negative {\n\t\tresult = -result\n\t}\n\treturn result, times\n}\n\n// removeBigIntFactors divides in a loop; the return values have the property that\n// d == result * factor ^ times\n// d may be modified in place.\n// If d == 0, then the return values will be (0, 0)\nfunc removeBigIntFactors(d, factor *big.Int) (result *big.Int, times int32) {\n\tq := big.NewInt(0)\n\tm := big.NewInt(0)\n\tfor d.Cmp(bigZero) != 0 {\n\t\tq.DivMod(d, factor, m)\n\t\tif m.Cmp(bigZero) != 0 {\n\t\t\tbreak\n\t\t}\n\t\ttimes++\n\t\td, q = q, d\n\t}\n\treturn d, times\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/big\"\n\t\"strconv\"\n\t\"strings\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\n// Quantity is a fixed-point representation of a number.\n// It provides convenient marshaling/unmarshaling in JSON and YAML,\n// in addition to String() and AsInt64() accessors.\n//\n// The serialization format is:\n//\n// ```\n// <quantity>        ::= <signedNumber><suffix>\n//\n//\t(Note that <suffix> may be empty, from the \"\" case in <decimalSI>.)\n//\n// <digit>           ::= 0 | 1 | ... | 9\n// <digits>          ::= <digit> | <digit><digits>\n// <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>\n// <sign>            ::= \"+\" | \"-\"\n// <signedNumber>    ::= <number> | <sign><number>\n// <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>\n// <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei\n//\n//\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n//\n// <decimalSI>       ::= m | \"\" | k | M | G | T | P | E\n//\n//\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n//\n// <decimalExponent> ::= \"e\" <signedNumber> | \"E\" <signedNumber>\n// ```\n//\n// No matter which of the three exponent forms is used, no quantity may represent\n// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\n// places. Numbers larger or more precise will be capped or rounded up.\n// (E.g.: 0.1m will rounded up to 1m.)\n// This may be extended in the future if we require larger or smaller quantities.\n//\n// When a Quantity is parsed from a string, it will remember the type of suffix\n// it had, and will use the same type again when it is serialized.\n//\n// Before serializing, Quantity will be put in \"canonical form\".\n// This means that Exponent/suffix will be adjusted up or down (with a\n// corresponding increase or decrease in Mantissa) such that:\n//\n// - No precision is lost\n// - No fractional digits will be emitted\n// - The exponent (or suffix) is as large as possible.\n//\n// The sign will be omitted unless the number is negative.\n//\n// Examples:\n//\n// - 1.5 will be serialized as \"1500m\"\n// - 1.5Gi will be serialized as \"1536Mi\"\n//\n// Note that the quantity will NEVER be internally represented by a\n// floating point number. That is the whole point of this exercise.\n//\n// Non-canonical values will still parse as long as they are well formed,\n// but will be re-emitted in their canonical form. (So always use canonical\n// form, or don't diff.)\n//\n// This format is intended to make it difficult to use these numbers without\n// writing some sort of special handling code in the hopes that that will\n// cause implementors to also use a fixed point implementation.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\n// +k8s:openapi-gen=true\ntype Quantity struct {\n\t// i is the quantity in int64 scaled form, if d.Dec == nil\n\ti int64Amount\n\t// d is the quantity in inf.Dec form if d.Dec != nil\n\td infDecAmount\n\t// s is the generated value of this quantity to avoid recalculation\n\ts string\n\n\t// Change Format at will. See the comment for Canonicalize for\n\t// more details.\n\tFormat\n}\n\n// CanonicalValue allows a quantity amount to be converted to a string.\ntype CanonicalValue interface {\n\t// AsCanonicalBytes returns a byte array representing the string representation\n\t// of the value mantissa and an int32 representing its exponent in base-10. Callers may\n\t// pass a byte slice to the method to avoid allocations.\n\tAsCanonicalBytes(out []byte) ([]byte, int32)\n\t// AsCanonicalBase1024Bytes returns a byte array representing the string representation\n\t// of the value mantissa and an int32 representing its exponent in base-1024. Callers\n\t// may pass a byte slice to the method to avoid allocations.\n\tAsCanonicalBase1024Bytes(out []byte) ([]byte, int32)\n}\n\n// Format lists the three possible formattings of a quantity.\ntype Format string\n\nconst (\n\tDecimalExponent = Format(\"DecimalExponent\") // e.g., 12e6\n\tBinarySI        = Format(\"BinarySI\")        // e.g., 12Mi (12 * 2^20)\n\tDecimalSI       = Format(\"DecimalSI\")       // e.g., 12M  (12 * 10^6)\n)\n\n// MustParse turns the given string into a quantity or panics; for tests\n// or other cases where you know the string is valid.\nfunc MustParse(str string) Quantity {\n\tq, err := ParseQuantity(str)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"cannot parse '%v': %v\", str, err))\n\t}\n\treturn q\n}\n\nconst (\n\t// splitREString is used to separate a number from its suffix; as such,\n\t// this is overly permissive, but that's OK-- it will be checked later.\n\tsplitREString = \"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\"\n)\n\nvar (\n\t// Errors that could happen while parsing a string.\n\tErrFormatWrong = errors.New(\"quantities must match the regular expression '\" + splitREString + \"'\")\n\tErrNumeric     = errors.New(\"unable to parse numeric part of quantity\")\n\tErrSuffix      = errors.New(\"unable to parse quantity's suffix\")\n)\n\n// parseQuantityString is a fast scanner for quantity values.\nfunc parseQuantityString(str string) (positive bool, value, num, denom, suffix string, err error) {\n\tpositive = true\n\tpos := 0\n\tend := len(str)\n\n\t// handle leading sign\n\tif pos < end {\n\t\tswitch str[0] {\n\t\tcase '-':\n\t\t\tpositive = false\n\t\t\tpos++\n\t\tcase '+':\n\t\t\tpos++\n\t\t}\n\t}\n\n\t// strip leading zeros\nZeroes:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tnum = \"0\"\n\t\t\tvalue = num\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0':\n\t\t\tpos++\n\t\tdefault:\n\t\t\tbreak Zeroes\n\t\t}\n\t}\n\n\t// extract the numerator\nNum:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tnum = str[pos:end]\n\t\t\tvalue = str[0:end]\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tdefault:\n\t\t\tnum = str[pos:i]\n\t\t\tpos = i\n\t\t\tbreak Num\n\t\t}\n\t}\n\n\t// if we stripped all numerator positions, always return 0\n\tif len(num) == 0 {\n\t\tnum = \"0\"\n\t}\n\n\t// handle a denominator\n\tif pos < end && str[pos] == '.' {\n\t\tpos++\n\tDenom:\n\t\tfor i := pos; ; i++ {\n\t\t\tif i >= end {\n\t\t\t\tdenom = str[pos:end]\n\t\t\t\tvalue = str[0:end]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch str[i] {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tdefault:\n\t\t\t\tdenom = str[pos:i]\n\t\t\t\tpos = i\n\t\t\t\tbreak Denom\n\t\t\t}\n\t\t}\n\t\t// TODO: we currently allow 1.G, but we may not want to in the future.\n\t\t// if len(denom) == 0 {\n\t\t// \terr = ErrFormatWrong\n\t\t// \treturn\n\t\t// }\n\t}\n\tvalue = str[0:pos]\n\n\t// grab the elements of the suffix\n\tsuffixStart := pos\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tsuffix = str[suffixStart:end]\n\t\t\treturn\n\t\t}\n\t\tif !strings.ContainsAny(str[i:i+1], \"eEinumkKMGTP\") {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif pos < end {\n\t\tswitch str[pos] {\n\t\tcase '-', '+':\n\t\t\tpos++\n\t\t}\n\t}\nSuffix:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tsuffix = str[suffixStart:end]\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tdefault:\n\t\t\tbreak Suffix\n\t\t}\n\t}\n\t// we encountered a non decimal in the Suffix loop, but the last character\n\t// was not a valid exponent\n\terr = ErrFormatWrong\n\treturn\n}\n\n// ParseQuantity turns str into a Quantity, or returns an error.\nfunc ParseQuantity(str string) (Quantity, error) {\n\tif len(str) == 0 {\n\t\treturn Quantity{}, ErrFormatWrong\n\t}\n\tif str == \"0\" {\n\t\treturn Quantity{Format: DecimalSI, s: str}, nil\n\t}\n\n\tpositive, value, num, denom, suf, err := parseQuantityString(str)\n\tif err != nil {\n\t\treturn Quantity{}, err\n\t}\n\n\tbase, exponent, format, ok := quantitySuffixer.interpret(suffix(suf))\n\tif !ok {\n\t\treturn Quantity{}, ErrSuffix\n\t}\n\n\tprecision := int32(0)\n\tscale := int32(0)\n\tmantissa := int64(1)\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\t\tscale = exponent\n\t\tprecision = maxInt64Factors - int32(len(num)+len(denom))\n\tcase BinarySI:\n\t\tscale = 0\n\t\tswitch {\n\t\tcase exponent >= 0 && len(denom) == 0:\n\t\t\t// only handle positive binary numbers with the fast path\n\t\t\tmantissa = int64(int64(mantissa) << uint64(exponent))\n\t\t\t// 1Mi (2^20) has ~6 digits of decimal precision, so exponent*3/10 -1 is roughly the precision\n\t\t\tprecision = 15 - int32(len(num)) - int32(float32(exponent)*3/10) - 1\n\t\tdefault:\n\t\t\tprecision = -1\n\t\t}\n\t}\n\n\tif precision >= 0 {\n\t\t// if we have a denominator, shift the entire value to the left by the number of places in the\n\t\t// denominator\n\t\tscale -= int32(len(denom))\n\t\tif scale >= int32(Nano) {\n\t\t\tshifted := num + denom\n\n\t\t\tvar value int64\n\t\t\tvalue, err := strconv.ParseInt(shifted, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn Quantity{}, ErrNumeric\n\t\t\t}\n\t\t\tif result, ok := int64Multiply(value, int64(mantissa)); ok {\n\t\t\t\tif !positive {\n\t\t\t\t\tresult = -result\n\t\t\t\t}\n\t\t\t\t// if the number is in canonical form, reuse the string\n\t\t\t\tswitch format {\n\t\t\t\tcase BinarySI:\n\t\t\t\t\tif exponent%10 == 0 && (value&0x07 != 0) {\n\t\t\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tif scale%3 == 0 && !strings.HasSuffix(shifted, \"000\") && shifted[0] != '0' {\n\t\t\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format}, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tamount := new(inf.Dec)\n\tif _, ok := amount.SetString(value); !ok {\n\t\treturn Quantity{}, ErrNumeric\n\t}\n\n\t// So that no one but us has to think about suffixes, remove it.\n\tif base == 10 {\n\t\tamount.SetScale(amount.Scale() + Scale(exponent).infScale())\n\t} else if base == 2 {\n\t\t// numericSuffix = 2 ** exponent\n\t\tnumericSuffix := big.NewInt(1).Lsh(bigOne, uint(exponent))\n\t\tub := amount.UnscaledBig()\n\t\tamount.SetUnscaledBig(ub.Mul(ub, numericSuffix))\n\t}\n\n\t// Cap at min/max bounds.\n\tsign := amount.Sign()\n\tif sign == -1 {\n\t\tamount.Neg(amount)\n\t}\n\n\t// This rounds non-zero values up to the minimum representable value, under the theory that\n\t// if you want some resources, you should get some resources, even if you asked for way too small\n\t// of an amount.  Arguably, this should be inf.RoundHalfUp (normal rounding), but that would have\n\t// the side effect of rounding values < .5n to zero.\n\tif v, ok := amount.Unscaled(); v != int64(0) || !ok {\n\t\tamount.Round(amount, Nano.infScale(), inf.RoundUp)\n\t}\n\n\t// The max is just a simple cap.\n\t// TODO: this prevents accumulating quantities greater than int64, for instance quota across a cluster\n\tif format == BinarySI && amount.Cmp(maxAllowed.Dec) > 0 {\n\t\tamount.Set(maxAllowed.Dec)\n\t}\n\n\tif format == BinarySI && amount.Cmp(decOne) < 0 && amount.Cmp(decZero) > 0 {\n\t\t// This avoids rounding and hopefully confusion, too.\n\t\tformat = DecimalSI\n\t}\n\tif sign == -1 {\n\t\tamount.Neg(amount)\n\t}\n\n\treturn Quantity{d: infDecAmount{amount}, Format: format}, nil\n}\n\n// DeepCopy returns a deep-copy of the Quantity value.  Note that the method\n// receiver is a value, so we can mutate it in-place and return it.\nfunc (q Quantity) DeepCopy() Quantity {\n\tif q.d.Dec != nil {\n\t\ttmp := &inf.Dec{}\n\t\tq.d.Dec = tmp.Set(q.d.Dec)\n\t}\n\treturn q\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Quantity) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Quantity) OpenAPISchemaFormat() string { return \"\" }\n\n// OpenAPIV3OneOfTypes is used by the kube-openapi generator when constructing\n// the OpenAPI v3 spec of this type.\nfunc (Quantity) OpenAPIV3OneOfTypes() []string { return []string{\"string\", \"number\"} }\n\n// CanonicalizeBytes returns the canonical form of q and its suffix (see comment on Quantity).\n//\n// Note about BinarySI:\n//   - If q.Format is set to BinarySI and q.Amount represents a non-zero value between\n//     -1 and +1, it will be emitted as if q.Format were DecimalSI.\n//   - Otherwise, if q.Format is set to BinarySI, fractional parts of q.Amount will be\n//     rounded up. (1.1i becomes 2i.)\nfunc (q *Quantity) CanonicalizeBytes(out []byte) (result, suffix []byte) {\n\tif q.IsZero() {\n\t\treturn zeroBytes, nil\n\t}\n\n\tvar rounded CanonicalValue\n\tformat := q.Format\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\tcase BinarySI:\n\t\tif q.CmpInt64(-1024) > 0 && q.CmpInt64(1024) < 0 {\n\t\t\t// This avoids rounding and hopefully confusion, too.\n\t\t\tformat = DecimalSI\n\t\t} else {\n\t\t\tvar exact bool\n\t\t\tif rounded, exact = q.AsScale(0); !exact {\n\t\t\t\t// Don't lose precision-- show as DecimalSI\n\t\t\t\tformat = DecimalSI\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tformat = DecimalExponent\n\t}\n\n\t// TODO: If BinarySI formatting is requested but would cause rounding, upgrade to\n\t// one of the other formats.\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\t\tnumber, exponent := q.AsCanonicalBytes(out)\n\t\tsuffix, _ := quantitySuffixer.constructBytes(10, exponent, format)\n\t\treturn number, suffix\n\tdefault:\n\t\t// format must be BinarySI\n\t\tnumber, exponent := rounded.AsCanonicalBase1024Bytes(out)\n\t\tsuffix, _ := quantitySuffixer.constructBytes(2, exponent*10, format)\n\t\treturn number, suffix\n\t}\n}\n\n// AsApproximateFloat64 returns a float64 representation of the quantity which may\n// lose precision. If the value of the quantity is outside the range of a float64\n// +Inf/-Inf will be returned.\nfunc (q *Quantity) AsApproximateFloat64() float64 {\n\tvar base float64\n\tvar exponent int\n\tif q.d.Dec != nil {\n\t\tbase, _ = big.NewFloat(0).SetInt(q.d.Dec.UnscaledBig()).Float64()\n\t\texponent = int(-q.d.Dec.Scale())\n\t} else {\n\t\tbase = float64(q.i.value)\n\t\texponent = int(q.i.scale)\n\t}\n\tif exponent == 0 {\n\t\treturn base\n\t}\n\n\treturn base * math.Pow10(exponent)\n}\n\n// AsInt64 returns a representation of the current value as an int64 if a fast conversion\n// is possible. If false is returned, callers must use the inf.Dec form of this quantity.\nfunc (q *Quantity) AsInt64() (int64, bool) {\n\tif q.d.Dec != nil {\n\t\treturn 0, false\n\t}\n\treturn q.i.AsInt64()\n}\n\n// ToDec promotes the quantity in place to use an inf.Dec representation and returns itself.\nfunc (q *Quantity) ToDec() *Quantity {\n\tif q.d.Dec == nil {\n\t\tq.d.Dec = q.i.AsDec()\n\t\tq.i = int64Amount{}\n\t}\n\treturn q\n}\n\n// AsDec returns the quantity as represented by a scaled inf.Dec.\nfunc (q *Quantity) AsDec() *inf.Dec {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec\n\t}\n\tq.d.Dec = q.i.AsDec()\n\tq.i = int64Amount{}\n\treturn q.d.Dec\n}\n\n// AsCanonicalBytes returns the canonical byte representation of this quantity as a mantissa\n// and base 10 exponent. The out byte slice may be passed to the method to avoid an extra\n// allocation.\nfunc (q *Quantity) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tif q.d.Dec != nil {\n\t\treturn q.d.AsCanonicalBytes(out)\n\t}\n\treturn q.i.AsCanonicalBytes(out)\n}\n\n// IsZero returns true if the quantity is equal to zero.\nfunc (q *Quantity) IsZero() bool {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Sign() == 0\n\t}\n\treturn q.i.value == 0\n}\n\n// Sign returns 0 if the quantity is zero, -1 if the quantity is less than zero, or 1 if the\n// quantity is greater than zero.\nfunc (q *Quantity) Sign() int {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Sign()\n\t}\n\treturn q.i.Sign()\n}\n\n// AsScale returns the current value, rounded up to the provided scale, and returns\n// false if the scale resulted in a loss of precision.\nfunc (q *Quantity) AsScale(scale Scale) (CanonicalValue, bool) {\n\tif q.d.Dec != nil {\n\t\treturn q.d.AsScale(scale)\n\t}\n\treturn q.i.AsScale(scale)\n}\n\n// RoundUp updates the quantity to the provided scale, ensuring that the value is at\n// least 1. False is returned if the rounding operation resulted in a loss of precision.\n// Negative numbers are rounded away from zero (-9 scale 1 rounds to -10).\nfunc (q *Quantity) RoundUp(scale Scale) bool {\n\tif q.d.Dec != nil {\n\t\tq.s = \"\"\n\t\td, exact := q.d.AsScale(scale)\n\t\tq.d = d\n\t\treturn exact\n\t}\n\t// avoid clearing the string value if we have already calculated it\n\tif q.i.scale >= scale {\n\t\treturn true\n\t}\n\tq.s = \"\"\n\ti, exact := q.i.AsScale(scale)\n\tq.i = i\n\treturn exact\n}\n\n// Add adds the provide y quantity to the current value. If the current value is zero,\n// the format of the quantity will be updated to the format of y.\nfunc (q *Quantity) Add(y Quantity) {\n\tq.s = \"\"\n\tif q.d.Dec == nil && y.d.Dec == nil {\n\t\tif q.i.value == 0 {\n\t\t\tq.Format = y.Format\n\t\t}\n\t\tif q.i.Add(y.i) {\n\t\t\treturn\n\t\t}\n\t} else if q.IsZero() {\n\t\tq.Format = y.Format\n\t}\n\tq.ToDec().d.Dec.Add(q.d.Dec, y.AsDec())\n}\n\n// Sub subtracts the provided quantity from the current value in place. If the current\n// value is zero, the format of the quantity will be updated to the format of y.\nfunc (q *Quantity) Sub(y Quantity) {\n\tq.s = \"\"\n\tif q.IsZero() {\n\t\tq.Format = y.Format\n\t}\n\tif q.d.Dec == nil && y.d.Dec == nil && q.i.Sub(y.i) {\n\t\treturn\n\t}\n\tq.ToDec().d.Dec.Sub(q.d.Dec, y.AsDec())\n}\n\n// Cmp returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the\n// quantity is greater than y.\nfunc (q *Quantity) Cmp(y Quantity) int {\n\tif q.d.Dec == nil && y.d.Dec == nil {\n\t\treturn q.i.Cmp(y.i)\n\t}\n\treturn q.AsDec().Cmp(y.AsDec())\n}\n\n// CmpInt64 returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the\n// quantity is greater than y.\nfunc (q *Quantity) CmpInt64(y int64) int {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Cmp(inf.NewDec(y, inf.Scale(0)))\n\t}\n\treturn q.i.Cmp(int64Amount{value: y})\n}\n\n// Neg sets quantity to be the negative value of itself.\nfunc (q *Quantity) Neg() {\n\tq.s = \"\"\n\tif q.d.Dec == nil {\n\t\tq.i.value = -q.i.value\n\t\treturn\n\t}\n\tq.d.Dec.Neg(q.d.Dec)\n}\n\n// Equal checks equality of two Quantities. This is useful for testing with\n// cmp.Equal.\nfunc (q Quantity) Equal(v Quantity) bool {\n\treturn q.Cmp(v) == 0\n}\n\n// int64QuantityExpectedBytes is the expected width in bytes of the canonical string representation\n// of most Quantity values.\nconst int64QuantityExpectedBytes = 18\n\n// String formats the Quantity as a string, caching the result if not calculated.\n// String is an expensive operation and caching this result significantly reduces the cost of\n// normal parse / marshal operations on Quantity.\nfunc (q *Quantity) String() string {\n\tif q == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(q.s) == 0 {\n\t\tresult := make([]byte, 0, int64QuantityExpectedBytes)\n\t\tnumber, suffix := q.CanonicalizeBytes(result)\n\t\tnumber = append(number, suffix...)\n\t\tq.s = string(number)\n\t}\n\treturn q.s\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (q Quantity) MarshalJSON() ([]byte, error) {\n\tif len(q.s) > 0 {\n\t\tout := make([]byte, len(q.s)+2)\n\t\tout[0], out[len(out)-1] = '\"', '\"'\n\t\tcopy(out[1:], q.s)\n\t\treturn out, nil\n\t}\n\tresult := make([]byte, int64QuantityExpectedBytes)\n\tresult[0] = '\"'\n\tnumber, suffix := q.CanonicalizeBytes(result[1:1])\n\t// if the same slice was returned to us that we passed in, avoid another allocation by copying number into\n\t// the source slice and returning that\n\tif len(number) > 0 && &number[0] == &result[1] && (len(number)+len(suffix)+2) <= int64QuantityExpectedBytes {\n\t\tnumber = append(number, suffix...)\n\t\tnumber = append(number, '\"')\n\t\treturn result[:1+len(number)], nil\n\t}\n\t// if CanonicalizeBytes needed more space than our slice provided, we may need to allocate again so use\n\t// append\n\tresult = result[:1]\n\tresult = append(result, number...)\n\tresult = append(result, suffix...)\n\tresult = append(result, '\"')\n\treturn result, nil\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (q Quantity) ToUnstructured() interface{} {\n\treturn q.String()\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\n// TODO: Remove support for leading/trailing whitespace\nfunc (q *Quantity) UnmarshalJSON(value []byte) error {\n\tl := len(value)\n\tif l == 4 && bytes.Equal(value, []byte(\"null\")) {\n\t\tq.d.Dec = nil\n\t\tq.i = int64Amount{}\n\t\treturn nil\n\t}\n\tif l >= 2 && value[0] == '\"' && value[l-1] == '\"' {\n\t\tvalue = value[1 : l-1]\n\t}\n\n\tparsed, err := ParseQuantity(strings.TrimSpace(string(value)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// This copy is safe because parsed will not be referred to again.\n\t*q = parsed\n\treturn nil\n}\n\n// NewDecimalQuantity returns a new Quantity representing the given\n// value in the given format.\nfunc NewDecimalQuantity(b inf.Dec, format Format) *Quantity {\n\treturn &Quantity{\n\t\td:      infDecAmount{&b},\n\t\tFormat: format,\n\t}\n}\n\n// NewQuantity returns a new Quantity representing the given\n// value in the given format.\nfunc NewQuantity(value int64, format Format) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value},\n\t\tFormat: format,\n\t}\n}\n\n// NewMilliQuantity returns a new Quantity representing the given\n// value * 1/1000 in the given format. Note that BinarySI formatting\n// will round fractional values, and will be changed to DecimalSI for\n// values x where (-1 < x < 1) && (x != 0).\nfunc NewMilliQuantity(value int64, format Format) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value, scale: -3},\n\t\tFormat: format,\n\t}\n}\n\n// NewScaledQuantity returns a new Quantity representing the given\n// value * 10^scale in DecimalSI format.\nfunc NewScaledQuantity(value int64, scale Scale) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value, scale: scale},\n\t\tFormat: DecimalSI,\n\t}\n}\n\n// Value returns the unscaled value of q rounded up to the nearest integer away from 0.\nfunc (q *Quantity) Value() int64 {\n\treturn q.ScaledValue(0)\n}\n\n// MilliValue returns the value of ceil(q * 1000); this could overflow an int64;\n// if that's a concern, call Value() first to verify the number is small enough.\nfunc (q *Quantity) MilliValue() int64 {\n\treturn q.ScaledValue(Milli)\n}\n\n// ScaledValue returns the value of ceil(q / 10^scale).\n// For example, NewQuantity(1, DecimalSI).ScaledValue(Milli) returns 1000.\n// This could overflow an int64.\n// To detect overflow, call Value() first and verify the expected magnitude.\nfunc (q *Quantity) ScaledValue(scale Scale) int64 {\n\tif q.d.Dec == nil {\n\t\ti, _ := q.i.AsScaledInt64(scale)\n\t\treturn i\n\t}\n\tdec := q.d.Dec\n\treturn scaledValue(dec.UnscaledBig(), int(dec.Scale()), int(scale.infScale()))\n}\n\n// Set sets q's value to be value.\nfunc (q *Quantity) Set(value int64) {\n\tq.SetScaled(value, 0)\n}\n\n// SetMilli sets q's value to be value * 1/1000.\nfunc (q *Quantity) SetMilli(value int64) {\n\tq.SetScaled(value, Milli)\n}\n\n// SetScaled sets q's value to be value * 10^scale\nfunc (q *Quantity) SetScaled(value int64, scale Scale) {\n\tq.s = \"\"\n\tq.d.Dec = nil\n\tq.i = int64Amount{value: value, scale: scale}\n}\n\n// QuantityValue makes it possible to use a Quantity as value for a command\n// line parameter.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\ntype QuantityValue struct {\n\tQuantity\n}\n\n// Set implements pflag.Value.Set and Go flag.Value.Set.\nfunc (q *QuantityValue) Set(s string) error {\n\tquantity, err := ParseQuantity(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\tq.Quantity = quantity\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (q QuantityValue) Type() string {\n\treturn \"quantity\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math/bits\"\n\n\t\"github.com/gogo/protobuf/proto\"\n)\n\nvar _ proto.Sizer = &Quantity{}\n\nfunc (m *Quantity) Marshal() (data []byte, err error) {\n\tsize := m.Size()\n\tdata = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(data[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn data[:n], nil\n}\n\n// MarshalTo is a customized version of the generated Protobuf unmarshaler for a struct\n// with a single string field.\nfunc (m *Quantity) MarshalTo(data []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(data[:size])\n}\n\n// MarshalToSizedBuffer is a customized version of the generated\n// Protobuf unmarshaler for a struct with a single string field.\nfunc (m *Quantity) MarshalToSizedBuffer(data []byte) (int, error) {\n\ti := len(data)\n\t_ = i\n\tvar l int\n\t_ = l\n\n\t// BEGIN CUSTOM MARSHAL\n\tout := m.String()\n\ti -= len(out)\n\tcopy(data[i:], out)\n\ti = encodeVarintGenerated(data, i, uint64(len(out)))\n\t// END CUSTOM MARSHAL\n\ti--\n\tdata[i] = 0xa\n\n\treturn len(data) - i, nil\n}\n\nfunc encodeVarintGenerated(data []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdata[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdata[offset] = uint8(v)\n\treturn base\n}\n\nfunc (m *Quantity) Size() (n int) {\n\tvar l int\n\t_ = l\n\n\t// BEGIN CUSTOM SIZE\n\tl = len(m.String())\n\t// END CUSTOM SIZE\n\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (bits.Len64(x|1) + 6) / 7\n}\n\n// Unmarshal is a customized version of the generated Protobuf unmarshaler for a struct\n// with a single string field.\nfunc (m *Quantity) Unmarshal(data []byte) error {\n\tl := len(data)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Quantity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Quantity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field String_\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(data[iNdEx:postIndex])\n\n\t\t\t// BEGIN CUSTOM DECODE\n\t\t\tp, err := ParseQuantity(s)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*m = p\n\t\t\t// END CUSTOM DECODE\n\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(data[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n\nfunc skipGenerated(data []byte) (n int, err error) {\n\tl := len(data)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif data[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := data[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipGenerated(data[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthGenerated = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated   = fmt.Errorf(\"proto: integer overflow\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math\"\n\t\"math/big\"\n\t\"sync\"\n)\n\nvar (\n\t// A sync pool to reduce allocation.\n\tintPool  sync.Pool\n\tmaxInt64 = big.NewInt(math.MaxInt64)\n)\n\nfunc init() {\n\tintPool.New = func() interface{} {\n\t\treturn &big.Int{}\n\t}\n}\n\n// scaledValue scales given unscaled value from scale to new Scale and returns\n// an int64. It ALWAYS rounds up the result when scale down. The final result might\n// overflow.\n//\n// scale, newScale represents the scale of the unscaled decimal.\n// The mathematical value of the decimal is unscaled * 10**(-scale).\nfunc scaledValue(unscaled *big.Int, scale, newScale int) int64 {\n\tdif := scale - newScale\n\tif dif == 0 {\n\t\treturn unscaled.Int64()\n\t}\n\n\t// Handle scale up\n\t// This is an easy case, we do not need to care about rounding and overflow.\n\t// If any intermediate operation causes overflow, the result will overflow.\n\tif dif < 0 {\n\t\treturn unscaled.Int64() * int64(math.Pow10(-dif))\n\t}\n\n\t// Handle scale down\n\t// We have to be careful about the intermediate operations.\n\n\t// fast path when unscaled < max.Int64 and exp(10,dif) < max.Int64\n\tconst log10MaxInt64 = 19\n\tif unscaled.Cmp(maxInt64) < 0 && dif < log10MaxInt64 {\n\t\tdivide := int64(math.Pow10(dif))\n\t\tresult := unscaled.Int64() / divide\n\t\tmod := unscaled.Int64() % divide\n\t\tif mod != 0 {\n\t\t\treturn result + 1\n\t\t}\n\t\treturn result\n\t}\n\n\t// We should only convert back to int64 when getting the result.\n\tdivisor := intPool.Get().(*big.Int)\n\texp := intPool.Get().(*big.Int)\n\tresult := intPool.Get().(*big.Int)\n\tdefer func() {\n\t\tintPool.Put(divisor)\n\t\tintPool.Put(exp)\n\t\tintPool.Put(result)\n\t}()\n\n\t// divisor = 10^(dif)\n\t// TODO: create loop up table if exp costs too much.\n\tdivisor.Exp(bigTen, exp.SetInt64(int64(dif)), nil)\n\t// reuse exp\n\tremainder := exp\n\n\t// result = unscaled / divisor\n\t// remainder = unscaled % divisor\n\tresult.DivMod(unscaled, divisor, remainder)\n\tif remainder.Sign() != 0 {\n\t\treturn result.Int64() + 1\n\t}\n\n\treturn result.Int64()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"strconv\"\n)\n\ntype suffix string\n\n// suffixer can interpret and construct suffixes.\ntype suffixer interface {\n\tinterpret(suffix) (base, exponent int32, fmt Format, ok bool)\n\tconstruct(base, exponent int32, fmt Format) (s suffix, ok bool)\n\tconstructBytes(base, exponent int32, fmt Format) (s []byte, ok bool)\n}\n\n// quantitySuffixer handles suffixes for all three formats that quantity\n// can handle.\nvar quantitySuffixer = newSuffixer()\n\ntype bePair struct {\n\tbase, exponent int32\n}\n\ntype listSuffixer struct {\n\tsuffixToBE      map[suffix]bePair\n\tbeToSuffix      map[bePair]suffix\n\tbeToSuffixBytes map[bePair][]byte\n}\n\nfunc (ls *listSuffixer) addSuffix(s suffix, pair bePair) {\n\tif ls.suffixToBE == nil {\n\t\tls.suffixToBE = map[suffix]bePair{}\n\t}\n\tif ls.beToSuffix == nil {\n\t\tls.beToSuffix = map[bePair]suffix{}\n\t}\n\tif ls.beToSuffixBytes == nil {\n\t\tls.beToSuffixBytes = map[bePair][]byte{}\n\t}\n\tls.suffixToBE[s] = pair\n\tls.beToSuffix[pair] = s\n\tls.beToSuffixBytes[pair] = []byte(s)\n}\n\nfunc (ls *listSuffixer) lookup(s suffix) (base, exponent int32, ok bool) {\n\tpair, ok := ls.suffixToBE[s]\n\tif !ok {\n\t\treturn 0, 0, false\n\t}\n\treturn pair.base, pair.exponent, true\n}\n\nfunc (ls *listSuffixer) construct(base, exponent int32) (s suffix, ok bool) {\n\ts, ok = ls.beToSuffix[bePair{base, exponent}]\n\treturn\n}\n\nfunc (ls *listSuffixer) constructBytes(base, exponent int32) (s []byte, ok bool) {\n\ts, ok = ls.beToSuffixBytes[bePair{base, exponent}]\n\treturn\n}\n\ntype suffixHandler struct {\n\tdecSuffixes listSuffixer\n\tbinSuffixes listSuffixer\n}\n\ntype fastLookup struct {\n\t*suffixHandler\n}\n\nfunc (l fastLookup) interpret(s suffix) (base, exponent int32, format Format, ok bool) {\n\tswitch s {\n\tcase \"\":\n\t\treturn 10, 0, DecimalSI, true\n\tcase \"n\":\n\t\treturn 10, -9, DecimalSI, true\n\tcase \"u\":\n\t\treturn 10, -6, DecimalSI, true\n\tcase \"m\":\n\t\treturn 10, -3, DecimalSI, true\n\tcase \"k\":\n\t\treturn 10, 3, DecimalSI, true\n\tcase \"M\":\n\t\treturn 10, 6, DecimalSI, true\n\tcase \"G\":\n\t\treturn 10, 9, DecimalSI, true\n\t}\n\treturn l.suffixHandler.interpret(s)\n}\n\nfunc newSuffixer() suffixer {\n\tsh := &suffixHandler{}\n\n\t// IMPORTANT: if you change this section you must change fastLookup\n\n\tsh.binSuffixes.addSuffix(\"Ki\", bePair{2, 10})\n\tsh.binSuffixes.addSuffix(\"Mi\", bePair{2, 20})\n\tsh.binSuffixes.addSuffix(\"Gi\", bePair{2, 30})\n\tsh.binSuffixes.addSuffix(\"Ti\", bePair{2, 40})\n\tsh.binSuffixes.addSuffix(\"Pi\", bePair{2, 50})\n\tsh.binSuffixes.addSuffix(\"Ei\", bePair{2, 60})\n\t// Don't emit an error when trying to produce\n\t// a suffix for 2^0.\n\tsh.decSuffixes.addSuffix(\"\", bePair{2, 0})\n\n\tsh.decSuffixes.addSuffix(\"n\", bePair{10, -9})\n\tsh.decSuffixes.addSuffix(\"u\", bePair{10, -6})\n\tsh.decSuffixes.addSuffix(\"m\", bePair{10, -3})\n\tsh.decSuffixes.addSuffix(\"\", bePair{10, 0})\n\tsh.decSuffixes.addSuffix(\"k\", bePair{10, 3})\n\tsh.decSuffixes.addSuffix(\"M\", bePair{10, 6})\n\tsh.decSuffixes.addSuffix(\"G\", bePair{10, 9})\n\tsh.decSuffixes.addSuffix(\"T\", bePair{10, 12})\n\tsh.decSuffixes.addSuffix(\"P\", bePair{10, 15})\n\tsh.decSuffixes.addSuffix(\"E\", bePair{10, 18})\n\n\treturn fastLookup{sh}\n}\n\nfunc (sh *suffixHandler) construct(base, exponent int32, fmt Format) (s suffix, ok bool) {\n\tswitch fmt {\n\tcase DecimalSI:\n\t\treturn sh.decSuffixes.construct(base, exponent)\n\tcase BinarySI:\n\t\treturn sh.binSuffixes.construct(base, exponent)\n\tcase DecimalExponent:\n\t\tif base != 10 {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif exponent == 0 {\n\t\t\treturn \"\", true\n\t\t}\n\t\treturn suffix(\"e\" + strconv.FormatInt(int64(exponent), 10)), true\n\t}\n\treturn \"\", false\n}\n\nfunc (sh *suffixHandler) constructBytes(base, exponent int32, format Format) (s []byte, ok bool) {\n\tswitch format {\n\tcase DecimalSI:\n\t\treturn sh.decSuffixes.constructBytes(base, exponent)\n\tcase BinarySI:\n\t\treturn sh.binSuffixes.constructBytes(base, exponent)\n\tcase DecimalExponent:\n\t\tif base != 10 {\n\t\t\treturn nil, false\n\t\t}\n\t\tif exponent == 0 {\n\t\t\treturn nil, true\n\t\t}\n\t\tresult := make([]byte, 8)\n\t\tresult[0] = 'e'\n\t\tnumber := strconv.AppendInt(result[1:1], int64(exponent), 10)\n\t\tif &result[1] == &number[0] {\n\t\t\treturn result[:1+len(number)], true\n\t\t}\n\t\tresult = append(result[:1], number...)\n\t\treturn result, true\n\t}\n\treturn nil, false\n}\n\nfunc (sh *suffixHandler) interpret(suffix suffix) (base, exponent int32, fmt Format, ok bool) {\n\t// Try lookup tables first\n\tif b, e, ok := sh.decSuffixes.lookup(suffix); ok {\n\t\treturn b, e, DecimalSI, true\n\t}\n\tif b, e, ok := sh.binSuffixes.lookup(suffix); ok {\n\t\treturn b, e, BinarySI, true\n\t}\n\n\tif len(suffix) > 1 && (suffix[0] == 'E' || suffix[0] == 'e') {\n\t\tparsed, err := strconv.ParseInt(string(suffix[1:]), 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, 0, DecimalExponent, false\n\t\t}\n\t\treturn 10, int32(parsed), DecimalExponent, true\n\t}\n\n\treturn 0, 0, DecimalExponent, false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage resource\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Quantity) DeepCopyInto(out *Quantity) {\n\t*out = in.DeepCopy()\n\treturn\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QuantityValue) DeepCopyInto(out *QuantityValue) {\n\t*out = *in\n\tout.Quantity = in.Quantity.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuantityValue.\nfunc (in *QuantityValue) DeepCopy() *QuantityValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QuantityValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package validation contains generic api type validation functions.\npackage validation // import \"k8s.io/apimachinery/pkg/api/validation\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/generic.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// IsNegativeErrorMsg is a error message for value must be greater than or equal to 0.\nconst IsNegativeErrorMsg string = `must be greater than or equal to 0`\n\n// ValidateNameFunc validates that the provided name is valid for a given resource type.\n// Not all resources have the same validation rules for names. Prefix is true\n// if the name will have a value appended to it.  If the name is not valid,\n// this returns a list of descriptions of individual characteristics of the\n// value that were not valid.  Otherwise this returns an empty list or nil.\ntype ValidateNameFunc func(name string, prefix bool) []string\n\n// NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.\nfunc NameIsDNSSubdomain(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1123Subdomain(name)\n}\n\n// NameIsDNSLabel is a ValidateNameFunc for names that must be a DNS 1123 label.\nfunc NameIsDNSLabel(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1123Label(name)\n}\n\n// NameIsDNS1035Label is a ValidateNameFunc for names that must be a DNS 952 label.\nfunc NameIsDNS1035Label(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1035Label(name)\n}\n\n// ValidateNamespaceName can be used to check whether the given namespace name is valid.\n// Prefix indicates this name will be used as part of generation, in which case\n// trailing dashes are allowed.\nvar ValidateNamespaceName = NameIsDNSLabel\n\n// ValidateServiceAccountName can be used to check whether the given service account name is valid.\n// Prefix indicates this name will be used as part of generation, in which case\n// trailing dashes are allowed.\nvar ValidateServiceAccountName = NameIsDNSSubdomain\n\n// maskTrailingDash replaces the final character of a string with a subdomain safe\n// value if it is a dash and if the length of this string is greater than 1. Note that\n// this is used when a value could be appended to the string, see ValidateNameFunc\n// for more info.\nfunc maskTrailingDash(name string) string {\n\tif len(name) > 1 && strings.HasSuffix(name, \"-\") {\n\t\treturn name[:len(name)-2] + \"a\"\n\t}\n\treturn name\n}\n\n// ValidateNonnegativeField validates that given value is not negative.\nfunc ValidateNonnegativeField(value int64, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif value < 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, value, IsNegativeErrorMsg))\n\t}\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\tapiequality \"k8s.io/apimachinery/pkg/api/equality\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1validation \"k8s.io/apimachinery/pkg/apis/meta/v1/validation\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// FieldImmutableErrorMsg is a error message for field is immutable.\nconst FieldImmutableErrorMsg string = `field is immutable`\n\nconst TotalAnnotationSizeLimitB int = 256 * (1 << 10) // 256 kB\n\n// BannedOwners is a black list of object that are not allowed to be owners.\nvar BannedOwners = map[schema.GroupVersionKind]struct{}{\n\t{Group: \"\", Version: \"v1\", Kind: \"Event\"}: {},\n}\n\n// ValidateAnnotations validates that a set of annotations are correctly defined.\nfunc ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor k := range annotations {\n\t\t// The rule is QualifiedName except that case doesn't matter, so convert to lowercase before checking.\n\t\tfor _, msg := range validation.IsQualifiedName(strings.ToLower(k)) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, k, msg))\n\t\t}\n\t}\n\tif err := ValidateAnnotationsSize(annotations); err != nil {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath, \"\", TotalAnnotationSizeLimitB))\n\t}\n\treturn allErrs\n}\n\nfunc ValidateAnnotationsSize(annotations map[string]string) error {\n\tvar totalSize int64\n\tfor k, v := range annotations {\n\t\ttotalSize += (int64)(len(k)) + (int64)(len(v))\n\t}\n\tif totalSize > (int64)(TotalAnnotationSizeLimitB) {\n\t\treturn fmt.Errorf(\"annotations size %d is larger than limit %d\", totalSize, TotalAnnotationSizeLimitB)\n\t}\n\treturn nil\n}\n\nfunc validateOwnerReference(ownerReference metav1.OwnerReference, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tgvk := schema.FromAPIVersionAndKind(ownerReference.APIVersion, ownerReference.Kind)\n\t// gvk.Group is empty for the legacy group.\n\tif len(gvk.Version) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"apiVersion\"), ownerReference.APIVersion, \"version must not be empty\"))\n\t}\n\tif len(gvk.Kind) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"kind\"), ownerReference.Kind, \"kind must not be empty\"))\n\t}\n\tif len(ownerReference.Name) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"name\"), ownerReference.Name, \"name must not be empty\"))\n\t}\n\tif len(ownerReference.UID) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"uid\"), ownerReference.UID, \"uid must not be empty\"))\n\t}\n\tif _, ok := BannedOwners[gvk]; ok {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, ownerReference, fmt.Sprintf(\"%s is disallowed from being an owner\", gvk)))\n\t}\n\treturn allErrs\n}\n\n// ValidateOwnerReferences validates that a set of owner references are correctly defined.\nfunc ValidateOwnerReferences(ownerReferences []metav1.OwnerReference, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfirstControllerName := \"\"\n\tfor _, ref := range ownerReferences {\n\t\tallErrs = append(allErrs, validateOwnerReference(ref, fldPath)...)\n\t\tif ref.Controller != nil && *ref.Controller {\n\t\t\tcurControllerName := ref.Kind + \"/\" + ref.Name\n\t\t\tif firstControllerName != \"\" {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, ownerReferences,\n\t\t\t\t\tfmt.Sprintf(\"Only one reference can have Controller set to true. Found \\\"true\\\" in references for %v and %v\", firstControllerName, curControllerName)))\n\t\t\t} else {\n\t\t\t\tfirstControllerName = curControllerName\n\t\t\t}\n\t\t}\n\t}\n\treturn allErrs\n}\n\n// ValidateFinalizerName validates finalizer names.\nfunc ValidateFinalizerName(stringValue string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor _, msg := range validation.IsQualifiedName(stringValue) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, stringValue, msg))\n\t}\n\n\treturn allErrs\n}\n\n// ValidateNoNewFinalizers validates the new finalizers has no new finalizers compare to old finalizers.\nfunc ValidateNoNewFinalizers(newFinalizers []string, oldFinalizers []string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\textra := sets.NewString(newFinalizers...).Difference(sets.NewString(oldFinalizers...))\n\tif len(extra) != 0 {\n\t\tallErrs = append(allErrs, field.Forbidden(fldPath, fmt.Sprintf(\"no new finalizers can be added if the object is being deleted, found new finalizers %#v\", extra.List())))\n\t}\n\treturn allErrs\n}\n\n// ValidateImmutableField validates the new value and the old value are deeply equal.\nfunc ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !apiequality.Semantic.DeepEqual(oldVal, newVal) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, newVal, FieldImmutableErrorMsg))\n\t}\n\treturn allErrs\n}\n\n// ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already\n// been performed.\n// It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before.\nfunc ValidateObjectMeta(objMeta *metav1.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList {\n\tmetadata, err := meta.Accessor(objMeta)\n\tif err != nil {\n\t\tvar allErrs field.ErrorList\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, objMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\treturn ValidateObjectMetaAccessor(metadata, requiresNamespace, nameFn, fldPath)\n}\n\n// ValidateObjectMetaAccessor validates an object's metadata on creation. It expects that name generation has already\n// been performed.\n// It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before.\nfunc ValidateObjectMetaAccessor(meta metav1.Object, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\tif len(meta.GetGenerateName()) != 0 {\n\t\tfor _, msg := range nameFn(meta.GetGenerateName(), true) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"generateName\"), meta.GetGenerateName(), msg))\n\t\t}\n\t}\n\t// If the generated name validates, but the calculated value does not, it's a problem with generation, and we\n\t// report it here. This may confuse users, but indicates a programming bug and still must be validated.\n\t// If there are multiple fields out of which one is required then add an or as a separator\n\tif len(meta.GetName()) == 0 {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"name\"), \"name or generateName is required\"))\n\t} else {\n\t\tfor _, msg := range nameFn(meta.GetName(), false) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"name\"), meta.GetName(), msg))\n\t\t}\n\t}\n\tif requiresNamespace {\n\t\tif len(meta.GetNamespace()) == 0 {\n\t\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"namespace\"), \"\"))\n\t\t} else {\n\t\t\tfor _, msg := range ValidateNamespaceName(meta.GetNamespace(), false) {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"namespace\"), meta.GetNamespace(), msg))\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif len(meta.GetNamespace()) != 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(fldPath.Child(\"namespace\"), \"not allowed on this type\"))\n\t\t}\n\t}\n\n\tallErrs = append(allErrs, ValidateNonnegativeField(meta.GetGeneration(), fldPath.Child(\"generation\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateLabels(meta.GetLabels(), fldPath.Child(\"labels\"))...)\n\tallErrs = append(allErrs, ValidateAnnotations(meta.GetAnnotations(), fldPath.Child(\"annotations\"))...)\n\tallErrs = append(allErrs, ValidateOwnerReferences(meta.GetOwnerReferences(), fldPath.Child(\"ownerReferences\"))...)\n\tallErrs = append(allErrs, ValidateFinalizers(meta.GetFinalizers(), fldPath.Child(\"finalizers\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateManagedFields(meta.GetManagedFields(), fldPath.Child(\"managedFields\"))...)\n\treturn allErrs\n}\n\n// ValidateFinalizers tests if the finalizers name are valid, and if there are conflicting finalizers.\nfunc ValidateFinalizers(finalizers []string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\thasFinalizerOrphanDependents := false\n\thasFinalizerDeleteDependents := false\n\tfor _, finalizer := range finalizers {\n\t\tallErrs = append(allErrs, ValidateFinalizerName(finalizer, fldPath)...)\n\t\tif finalizer == metav1.FinalizerOrphanDependents {\n\t\t\thasFinalizerOrphanDependents = true\n\t\t}\n\t\tif finalizer == metav1.FinalizerDeleteDependents {\n\t\t\thasFinalizerDeleteDependents = true\n\t\t}\n\t}\n\tif hasFinalizerDeleteDependents && hasFinalizerOrphanDependents {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, finalizers, fmt.Sprintf(\"finalizer %s and %s cannot be both set\", metav1.FinalizerOrphanDependents, metav1.FinalizerDeleteDependents)))\n\t}\n\treturn allErrs\n}\n\n// ValidateObjectMetaUpdate validates an object's metadata when updated.\nfunc ValidateObjectMetaUpdate(newMeta, oldMeta *metav1.ObjectMeta, fldPath *field.Path) field.ErrorList {\n\tnewMetadata, err := meta.Accessor(newMeta)\n\tif err != nil {\n\t\tallErrs := field.ErrorList{}\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, newMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\toldMetadata, err := meta.Accessor(oldMeta)\n\tif err != nil {\n\t\tallErrs := field.ErrorList{}\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, oldMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\treturn ValidateObjectMetaAccessorUpdate(newMetadata, oldMetadata, fldPath)\n}\n\n// ValidateObjectMetaAccessorUpdate validates an object's metadata when updated.\nfunc ValidateObjectMetaAccessorUpdate(newMeta, oldMeta metav1.Object, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\t// Finalizers cannot be added if the object is already being deleted.\n\tif oldMeta.GetDeletionTimestamp() != nil {\n\t\tallErrs = append(allErrs, ValidateNoNewFinalizers(newMeta.GetFinalizers(), oldMeta.GetFinalizers(), fldPath.Child(\"finalizers\"))...)\n\t}\n\n\t// Reject updates that don't specify a resource version\n\tif len(newMeta.GetResourceVersion()) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"resourceVersion\"), newMeta.GetResourceVersion(), \"must be specified for an update\"))\n\t}\n\n\t// Generation shouldn't be decremented\n\tif newMeta.GetGeneration() < oldMeta.GetGeneration() {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"generation\"), newMeta.GetGeneration(), \"must not be decremented\"))\n\t}\n\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetName(), oldMeta.GetName(), fldPath.Child(\"name\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetNamespace(), oldMeta.GetNamespace(), fldPath.Child(\"namespace\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetUID(), oldMeta.GetUID(), fldPath.Child(\"uid\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetCreationTimestamp(), oldMeta.GetCreationTimestamp(), fldPath.Child(\"creationTimestamp\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetDeletionTimestamp(), oldMeta.GetDeletionTimestamp(), fldPath.Child(\"deletionTimestamp\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetDeletionGracePeriodSeconds(), oldMeta.GetDeletionGracePeriodSeconds(), fldPath.Child(\"deletionGracePeriodSeconds\"))...)\n\n\tallErrs = append(allErrs, v1validation.ValidateLabels(newMeta.GetLabels(), fldPath.Child(\"labels\"))...)\n\tallErrs = append(allErrs, ValidateAnnotations(newMeta.GetAnnotations(), fldPath.Child(\"annotations\"))...)\n\tallErrs = append(allErrs, ValidateOwnerReferences(newMeta.GetOwnerReferences(), fldPath.Child(\"ownerReferences\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateManagedFields(newMeta.GetManagedFields(), fldPath.Child(\"managedFields\"))...)\n\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - caesarxuchao\n  - liggitt\n  - sttts\n  - luxas\n  - janetkuo\n  - justinsb\n  - ncdc\n  - soltysh\n  - dims\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// IsControlledBy checks if the  object has a controllerRef set to the given owner\nfunc IsControlledBy(obj Object, owner Object) bool {\n\tref := GetControllerOfNoCopy(obj)\n\tif ref == nil {\n\t\treturn false\n\t}\n\treturn ref.UID == owner.GetUID()\n}\n\n// GetControllerOf returns a pointer to a copy of the controllerRef if controllee has a controller\nfunc GetControllerOf(controllee Object) *OwnerReference {\n\tref := GetControllerOfNoCopy(controllee)\n\tif ref == nil {\n\t\treturn nil\n\t}\n\tcp := *ref\n\treturn &cp\n}\n\n// GetControllerOf returns a pointer to the controllerRef if controllee has a controller\nfunc GetControllerOfNoCopy(controllee Object) *OwnerReference {\n\trefs := controllee.GetOwnerReferences()\n\tfor i := range refs {\n\t\tif refs[i].Controller != nil && *refs[i].Controller {\n\t\t\treturn &refs[i]\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewControllerRef creates an OwnerReference pointing to the given owner.\nfunc NewControllerRef(owner Object, gvk schema.GroupVersionKind) *OwnerReference {\n\tblockOwnerDeletion := true\n\tisController := true\n\treturn &OwnerReference{\n\t\tAPIVersion:         gvk.GroupVersion().String(),\n\t\tKind:               gvk.Kind,\n\t\tName:               owner.GetName(),\n\t\tUID:                owner.GetUID(),\n\t\tBlockOwnerDeletion: &blockOwnerDeletion,\n\t\tController:         &isController,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nfunc Convert_Pointer_float64_To_float64(in **float64, out *float64, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = float64(**in)\n\treturn nil\n}\n\nfunc Convert_float64_To_Pointer_float64(in *float64, out **float64, s conversion.Scope) error {\n\ttemp := float64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int32_To_int32(in **int32, out *int32, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int32(**in)\n\treturn nil\n}\n\nfunc Convert_int32_To_Pointer_int32(in *int32, out **int32, s conversion.Scope) error {\n\ttemp := int32(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int64_To_int64(in **int64, out *int64, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int64(**in)\n\treturn nil\n}\n\nfunc Convert_int64_To_Pointer_int64(in *int64, out **int64, s conversion.Scope) error {\n\ttemp := int64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int64_To_int(in **int64, out *int, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int(**in)\n\treturn nil\n}\n\nfunc Convert_int_To_Pointer_int64(in *int, out **int64, s conversion.Scope) error {\n\ttemp := int64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_string_To_string(in **string, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = \"\"\n\t\treturn nil\n\t}\n\t*out = **in\n\treturn nil\n}\n\nfunc Convert_string_To_Pointer_string(in *string, out **string, s conversion.Scope) error {\n\tif in == nil {\n\t\tstringVar := \"\"\n\t\t*out = &stringVar\n\t\treturn nil\n\t}\n\t*out = in\n\treturn nil\n}\n\nfunc Convert_Pointer_bool_To_bool(in **bool, out *bool, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = false\n\t\treturn nil\n\t}\n\t*out = **in\n\treturn nil\n}\n\nfunc Convert_bool_To_Pointer_bool(in *bool, out **bool, s conversion.Scope) error {\n\tif in == nil {\n\t\tboolVar := false\n\t\t*out = &boolVar\n\t\treturn nil\n\t}\n\t*out = in\n\treturn nil\n}\n\n// +k8s:conversion-fn=drop\nfunc Convert_v1_TypeMeta_To_v1_TypeMeta(in, out *TypeMeta, s conversion.Scope) error {\n\t// These values are explicitly not copied\n\t//out.APIVersion = in.APIVersion\n\t//out.Kind = in.Kind\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_ListMeta_To_v1_ListMeta(in, out *ListMeta, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_DeleteOptions_To_v1_DeleteOptions(in, out *DeleteOptions, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_intstr_IntOrString_To_intstr_IntOrString(in, out *intstr.IntOrString, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Pointer_intstr_IntOrString_To_intstr_IntOrString(in **intstr.IntOrString, out *intstr.IntOrString, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = intstr.IntOrString{} // zero value\n\t\treturn nil\n\t}\n\t*out = **in // copy\n\treturn nil\n}\n\nfunc Convert_intstr_IntOrString_To_Pointer_intstr_IntOrString(in *intstr.IntOrString, out **intstr.IntOrString, s conversion.Scope) error {\n\ttemp := *in // copy\n\t*out = &temp\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_Time_To_v1_Time(in *Time, out *Time, s conversion.Scope) error {\n\t// Cannot deep copy these, because time.Time has unexported fields.\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_MicroTime_To_v1_MicroTime(in *MicroTime, out *MicroTime, s conversion.Scope) error {\n\t// Cannot deep copy these, because time.Time has unexported fields.\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Pointer_v1_Duration_To_v1_Duration(in **Duration, out *Duration, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = Duration{} // zero duration\n\t\treturn nil\n\t}\n\t*out = **in // copy\n\treturn nil\n}\n\nfunc Convert_v1_Duration_To_Pointer_v1_Duration(in *Duration, out **Duration, s conversion.Scope) error {\n\ttemp := *in //copy\n\t*out = &temp\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_Time allows converting a URL query parameter value\nfunc Convert_Slice_string_To_v1_Time(in *[]string, out *Time, s conversion.Scope) error {\n\tstr := \"\"\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t}\n\treturn out.UnmarshalQueryParameter(str)\n}\n\nfunc Convert_Slice_string_To_Pointer_v1_Time(in *[]string, out **Time, s conversion.Scope) error {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tstr := \"\"\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t}\n\ttemp := Time{}\n\tif err := temp.UnmarshalQueryParameter(str); err != nil {\n\t\treturn err\n\t}\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_string_To_labels_Selector(in *string, out *labels.Selector, s conversion.Scope) error {\n\tselector, err := labels.Parse(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = selector\n\treturn nil\n}\n\nfunc Convert_string_To_fields_Selector(in *string, out *fields.Selector, s conversion.Scope) error {\n\tselector, err := fields.ParseSelector(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = selector\n\treturn nil\n}\n\nfunc Convert_labels_Selector_To_string(in *labels.Selector, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\treturn nil\n\t}\n\t*out = (*in).String()\n\treturn nil\n}\n\nfunc Convert_fields_Selector_To_string(in *fields.Selector, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\treturn nil\n\t}\n\t*out = (*in).String()\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_resource_Quantity_To_resource_Quantity(in *resource.Quantity, out *resource.Quantity, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Map_string_To_string_To_v1_LabelSelector(in *map[string]string, out *LabelSelector, s conversion.Scope) error {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tfor labelKey, labelValue := range *in {\n\t\tAddLabelToSelector(out, labelKey, labelValue)\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_LabelSelector_To_Map_string_To_string(in *LabelSelector, out *map[string]string, s conversion.Scope) error {\n\tvar err error\n\t*out, err = LabelSelectorAsMap(in)\n\treturn err\n}\n\n// Convert_Slice_string_To_Slice_int32 converts multiple query parameters or\n// a single query parameter with a comma delimited value to multiple int32.\n// This is used for port forwarding which needs the ports as int32.\nfunc Convert_Slice_string_To_Slice_int32(in *[]string, out *[]int32, s conversion.Scope) error {\n\tfor _, s := range *in {\n\t\tfor _, v := range strings.Split(s, \",\") {\n\t\t\tx, err := strconv.ParseUint(v, 10, 16)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"cannot convert to []int32: %v\", err)\n\t\t\t}\n\t\t\t*out = append(*out, int32(x))\n\t\t}\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_Pointer_v1_DeletionPropagation allows converting a URL query parameter propagationPolicy\nfunc Convert_Slice_string_To_Pointer_v1_DeletionPropagation(in *[]string, out **DeletionPropagation, s conversion.Scope) error {\n\tvar str string\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t} else {\n\t\tstr = \"\"\n\t}\n\ttemp := DeletionPropagation(str)\n\t*out = &temp\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_IncludeObjectPolicy allows converting a URL query parameter value\nfunc Convert_Slice_string_To_v1_IncludeObjectPolicy(in *[]string, out *IncludeObjectPolicy, s conversion.Scope) error {\n\tif len(*in) > 0 {\n\t\t*out = IncludeObjectPolicy((*in)[0])\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_DeleteOptions allows converting a URL to DeleteOptions.\nfunc Convert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions, s conversion.Scope) error {\n\tif err := autoConvert_url_Values_To_v1_DeleteOptions(in, out, s); err != nil {\n\t\treturn err\n\t}\n\n\tuid := types.UID(\"\")\n\tif values, ok := (*in)[\"uid\"]; ok && len(values) > 0 {\n\t\tuid = types.UID(values[0])\n\t}\n\n\tresourceVersion := \"\"\n\tif values, ok := (*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tresourceVersion = values[0]\n\t}\n\n\tif len(uid) > 0 || len(resourceVersion) > 0 {\n\t\tif out.Preconditions == nil {\n\t\t\tout.Preconditions = &Preconditions{}\n\t\t}\n\t\tif len(uid) > 0 {\n\t\t\tout.Preconditions.UID = &uid\n\t\t}\n\t\tif len(resourceVersion) > 0 {\n\t\t\tout.Preconditions.ResourceVersion = &resourceVersion\n\t\t}\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_ResourceVersionMatch allows converting a URL query parameter to ResourceVersionMatch\nfunc Convert_Slice_string_To_v1_ResourceVersionMatch(in *[]string, out *ResourceVersionMatch, s conversion.Scope) error {\n\tif len(*in) > 0 {\n\t\t*out = ResourceVersionMatch((*in)[0])\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/deepcopy.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nfunc (in *TableRow) DeepCopy() *TableRow {\n\tif in == nil {\n\t\treturn nil\n\t}\n\n\tout := new(TableRow)\n\n\tif in.Cells != nil {\n\t\tout.Cells = make([]interface{}, len(in.Cells))\n\t\tfor i := range in.Cells {\n\t\t\tout.Cells[i] = runtime.DeepCopyJSONValue(in.Cells[i])\n\t\t}\n\t}\n\n\tif in.Conditions != nil {\n\t\tout.Conditions = make([]TableRowCondition, len(in.Conditions))\n\t\tfor i := range in.Conditions {\n\t\t\tin.Conditions[i].DeepCopyInto(&out.Conditions[i])\n\t\t}\n\t}\n\n\tin.Object.DeepCopyInto(&out.Object)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:conversion-gen=false\n// +k8s:deepcopy-gen=package\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=meta.k8s.io\n\npackage v1 // import \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/duration.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n)\n\n// Duration is a wrapper around time.Duration which supports correct\n// marshaling to YAML and JSON. In particular, it marshals into strings, which\n// can be used as map keys in json.\ntype Duration struct {\n\ttime.Duration `protobuf:\"varint,1,opt,name=duration,casttype=time.Duration\"`\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (d *Duration) UnmarshalJSON(b []byte) error {\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpd, err := time.ParseDuration(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\td.Duration = pd\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (d Duration) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(d.Duration.String())\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (d Duration) ToUnstructured() interface{} {\n\treturn d.Duration.String()\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Duration) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Duration) OpenAPISchemaFormat() string { return \"\" }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\ttime \"time\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\nvar _ = time.Kitchen\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *APIGroup) Reset()      { *m = APIGroup{} }\nfunc (*APIGroup) ProtoMessage() {}\nfunc (*APIGroup) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{0}\n}\nfunc (m *APIGroup) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroup) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroup.Merge(m, src)\n}\nfunc (m *APIGroup) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroup) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroup.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroup proto.InternalMessageInfo\n\nfunc (m *APIGroupList) Reset()      { *m = APIGroupList{} }\nfunc (*APIGroupList) ProtoMessage() {}\nfunc (*APIGroupList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{1}\n}\nfunc (m *APIGroupList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupList.Merge(m, src)\n}\nfunc (m *APIGroupList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupList proto.InternalMessageInfo\n\nfunc (m *APIResource) Reset()      { *m = APIResource{} }\nfunc (*APIResource) ProtoMessage() {}\nfunc (*APIResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{2}\n}\nfunc (m *APIResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResource.Merge(m, src)\n}\nfunc (m *APIResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResource proto.InternalMessageInfo\n\nfunc (m *APIResourceList) Reset()      { *m = APIResourceList{} }\nfunc (*APIResourceList) ProtoMessage() {}\nfunc (*APIResourceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{3}\n}\nfunc (m *APIResourceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResourceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResourceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResourceList.Merge(m, src)\n}\nfunc (m *APIResourceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResourceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResourceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResourceList proto.InternalMessageInfo\n\nfunc (m *APIVersions) Reset()      { *m = APIVersions{} }\nfunc (*APIVersions) ProtoMessage() {}\nfunc (*APIVersions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{4}\n}\nfunc (m *APIVersions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIVersions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIVersions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIVersions.Merge(m, src)\n}\nfunc (m *APIVersions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIVersions) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIVersions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIVersions proto.InternalMessageInfo\n\nfunc (m *ApplyOptions) Reset()      { *m = ApplyOptions{} }\nfunc (*ApplyOptions) ProtoMessage() {}\nfunc (*ApplyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{5}\n}\nfunc (m *ApplyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ApplyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ApplyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ApplyOptions.Merge(m, src)\n}\nfunc (m *ApplyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ApplyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ApplyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ApplyOptions proto.InternalMessageInfo\n\nfunc (m *Condition) Reset()      { *m = Condition{} }\nfunc (*Condition) ProtoMessage() {}\nfunc (*Condition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{6}\n}\nfunc (m *Condition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Condition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Condition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Condition.Merge(m, src)\n}\nfunc (m *Condition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Condition) XXX_DiscardUnknown() {\n\txxx_messageInfo_Condition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Condition proto.InternalMessageInfo\n\nfunc (m *CreateOptions) Reset()      { *m = CreateOptions{} }\nfunc (*CreateOptions) ProtoMessage() {}\nfunc (*CreateOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{7}\n}\nfunc (m *CreateOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CreateOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CreateOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CreateOptions.Merge(m, src)\n}\nfunc (m *CreateOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CreateOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_CreateOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CreateOptions proto.InternalMessageInfo\n\nfunc (m *DeleteOptions) Reset()      { *m = DeleteOptions{} }\nfunc (*DeleteOptions) ProtoMessage() {}\nfunc (*DeleteOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{8}\n}\nfunc (m *DeleteOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeleteOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeleteOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeleteOptions.Merge(m, src)\n}\nfunc (m *DeleteOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeleteOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeleteOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeleteOptions proto.InternalMessageInfo\n\nfunc (m *Duration) Reset()      { *m = Duration{} }\nfunc (*Duration) ProtoMessage() {}\nfunc (*Duration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{9}\n}\nfunc (m *Duration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Duration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Duration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Duration.Merge(m, src)\n}\nfunc (m *Duration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Duration) XXX_DiscardUnknown() {\n\txxx_messageInfo_Duration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Duration proto.InternalMessageInfo\n\nfunc (m *FieldsV1) Reset()      { *m = FieldsV1{} }\nfunc (*FieldsV1) ProtoMessage() {}\nfunc (*FieldsV1) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{10}\n}\nfunc (m *FieldsV1) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FieldsV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FieldsV1) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldsV1.Merge(m, src)\n}\nfunc (m *FieldsV1) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FieldsV1) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldsV1.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldsV1 proto.InternalMessageInfo\n\nfunc (m *GetOptions) Reset()      { *m = GetOptions{} }\nfunc (*GetOptions) ProtoMessage() {}\nfunc (*GetOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{11}\n}\nfunc (m *GetOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GetOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GetOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GetOptions.Merge(m, src)\n}\nfunc (m *GetOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GetOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_GetOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GetOptions proto.InternalMessageInfo\n\nfunc (m *GroupKind) Reset()      { *m = GroupKind{} }\nfunc (*GroupKind) ProtoMessage() {}\nfunc (*GroupKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{12}\n}\nfunc (m *GroupKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupKind.Merge(m, src)\n}\nfunc (m *GroupKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupKind proto.InternalMessageInfo\n\nfunc (m *GroupResource) Reset()      { *m = GroupResource{} }\nfunc (*GroupResource) ProtoMessage() {}\nfunc (*GroupResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{13}\n}\nfunc (m *GroupResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupResource.Merge(m, src)\n}\nfunc (m *GroupResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupResource proto.InternalMessageInfo\n\nfunc (m *GroupVersion) Reset()      { *m = GroupVersion{} }\nfunc (*GroupVersion) ProtoMessage() {}\nfunc (*GroupVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{14}\n}\nfunc (m *GroupVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersion.Merge(m, src)\n}\nfunc (m *GroupVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersion proto.InternalMessageInfo\n\nfunc (m *GroupVersionForDiscovery) Reset()      { *m = GroupVersionForDiscovery{} }\nfunc (*GroupVersionForDiscovery) ProtoMessage() {}\nfunc (*GroupVersionForDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{15}\n}\nfunc (m *GroupVersionForDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionForDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionForDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionForDiscovery.Merge(m, src)\n}\nfunc (m *GroupVersionForDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionForDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionForDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionForDiscovery proto.InternalMessageInfo\n\nfunc (m *GroupVersionKind) Reset()      { *m = GroupVersionKind{} }\nfunc (*GroupVersionKind) ProtoMessage() {}\nfunc (*GroupVersionKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{16}\n}\nfunc (m *GroupVersionKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionKind.Merge(m, src)\n}\nfunc (m *GroupVersionKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionKind proto.InternalMessageInfo\n\nfunc (m *GroupVersionResource) Reset()      { *m = GroupVersionResource{} }\nfunc (*GroupVersionResource) ProtoMessage() {}\nfunc (*GroupVersionResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{17}\n}\nfunc (m *GroupVersionResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionResource.Merge(m, src)\n}\nfunc (m *GroupVersionResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionResource proto.InternalMessageInfo\n\nfunc (m *LabelSelector) Reset()      { *m = LabelSelector{} }\nfunc (*LabelSelector) ProtoMessage() {}\nfunc (*LabelSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{18}\n}\nfunc (m *LabelSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LabelSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LabelSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LabelSelector.Merge(m, src)\n}\nfunc (m *LabelSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LabelSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_LabelSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LabelSelector proto.InternalMessageInfo\n\nfunc (m *LabelSelectorRequirement) Reset()      { *m = LabelSelectorRequirement{} }\nfunc (*LabelSelectorRequirement) ProtoMessage() {}\nfunc (*LabelSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{19}\n}\nfunc (m *LabelSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LabelSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LabelSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LabelSelectorRequirement.Merge(m, src)\n}\nfunc (m *LabelSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LabelSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_LabelSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LabelSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *List) Reset()      { *m = List{} }\nfunc (*List) ProtoMessage() {}\nfunc (*List) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{20}\n}\nfunc (m *List) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *List) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *List) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_List.Merge(m, src)\n}\nfunc (m *List) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *List) XXX_DiscardUnknown() {\n\txxx_messageInfo_List.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_List proto.InternalMessageInfo\n\nfunc (m *ListMeta) Reset()      { *m = ListMeta{} }\nfunc (*ListMeta) ProtoMessage() {}\nfunc (*ListMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{21}\n}\nfunc (m *ListMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ListMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListMeta.Merge(m, src)\n}\nfunc (m *ListMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListMeta proto.InternalMessageInfo\n\nfunc (m *ListOptions) Reset()      { *m = ListOptions{} }\nfunc (*ListOptions) ProtoMessage() {}\nfunc (*ListOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{22}\n}\nfunc (m *ListOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ListOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListOptions.Merge(m, src)\n}\nfunc (m *ListOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListOptions proto.InternalMessageInfo\n\nfunc (m *ManagedFieldsEntry) Reset()      { *m = ManagedFieldsEntry{} }\nfunc (*ManagedFieldsEntry) ProtoMessage() {}\nfunc (*ManagedFieldsEntry) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{23}\n}\nfunc (m *ManagedFieldsEntry) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ManagedFieldsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ManagedFieldsEntry) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ManagedFieldsEntry.Merge(m, src)\n}\nfunc (m *ManagedFieldsEntry) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ManagedFieldsEntry) XXX_DiscardUnknown() {\n\txxx_messageInfo_ManagedFieldsEntry.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ManagedFieldsEntry proto.InternalMessageInfo\n\nfunc (m *MicroTime) Reset()      { *m = MicroTime{} }\nfunc (*MicroTime) ProtoMessage() {}\nfunc (*MicroTime) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{24}\n}\nfunc (m *MicroTime) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_MicroTime.Unmarshal(m, b)\n}\nfunc (m *MicroTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_MicroTime.Marshal(b, m, deterministic)\n}\nfunc (m *MicroTime) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MicroTime.Merge(m, src)\n}\nfunc (m *MicroTime) XXX_Size() int {\n\treturn xxx_messageInfo_MicroTime.Size(m)\n}\nfunc (m *MicroTime) XXX_DiscardUnknown() {\n\txxx_messageInfo_MicroTime.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MicroTime proto.InternalMessageInfo\n\nfunc (m *ObjectMeta) Reset()      { *m = ObjectMeta{} }\nfunc (*ObjectMeta) ProtoMessage() {}\nfunc (*ObjectMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{25}\n}\nfunc (m *ObjectMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMeta.Merge(m, src)\n}\nfunc (m *ObjectMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMeta proto.InternalMessageInfo\n\nfunc (m *OwnerReference) Reset()      { *m = OwnerReference{} }\nfunc (*OwnerReference) ProtoMessage() {}\nfunc (*OwnerReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{26}\n}\nfunc (m *OwnerReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *OwnerReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *OwnerReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OwnerReference.Merge(m, src)\n}\nfunc (m *OwnerReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *OwnerReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_OwnerReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OwnerReference proto.InternalMessageInfo\n\nfunc (m *PartialObjectMetadata) Reset()      { *m = PartialObjectMetadata{} }\nfunc (*PartialObjectMetadata) ProtoMessage() {}\nfunc (*PartialObjectMetadata) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{27}\n}\nfunc (m *PartialObjectMetadata) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PartialObjectMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PartialObjectMetadata) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PartialObjectMetadata.Merge(m, src)\n}\nfunc (m *PartialObjectMetadata) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PartialObjectMetadata) XXX_DiscardUnknown() {\n\txxx_messageInfo_PartialObjectMetadata.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PartialObjectMetadata proto.InternalMessageInfo\n\nfunc (m *PartialObjectMetadataList) Reset()      { *m = PartialObjectMetadataList{} }\nfunc (*PartialObjectMetadataList) ProtoMessage() {}\nfunc (*PartialObjectMetadataList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{28}\n}\nfunc (m *PartialObjectMetadataList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PartialObjectMetadataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PartialObjectMetadataList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PartialObjectMetadataList.Merge(m, src)\n}\nfunc (m *PartialObjectMetadataList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PartialObjectMetadataList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PartialObjectMetadataList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PartialObjectMetadataList proto.InternalMessageInfo\n\nfunc (m *Patch) Reset()      { *m = Patch{} }\nfunc (*Patch) ProtoMessage() {}\nfunc (*Patch) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{29}\n}\nfunc (m *Patch) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Patch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Patch) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Patch.Merge(m, src)\n}\nfunc (m *Patch) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Patch) XXX_DiscardUnknown() {\n\txxx_messageInfo_Patch.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Patch proto.InternalMessageInfo\n\nfunc (m *PatchOptions) Reset()      { *m = PatchOptions{} }\nfunc (*PatchOptions) ProtoMessage() {}\nfunc (*PatchOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{30}\n}\nfunc (m *PatchOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PatchOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PatchOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PatchOptions.Merge(m, src)\n}\nfunc (m *PatchOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PatchOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PatchOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PatchOptions proto.InternalMessageInfo\n\nfunc (m *Preconditions) Reset()      { *m = Preconditions{} }\nfunc (*Preconditions) ProtoMessage() {}\nfunc (*Preconditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{31}\n}\nfunc (m *Preconditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Preconditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Preconditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Preconditions.Merge(m, src)\n}\nfunc (m *Preconditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Preconditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_Preconditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Preconditions proto.InternalMessageInfo\n\nfunc (m *RootPaths) Reset()      { *m = RootPaths{} }\nfunc (*RootPaths) ProtoMessage() {}\nfunc (*RootPaths) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{32}\n}\nfunc (m *RootPaths) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RootPaths) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RootPaths) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RootPaths.Merge(m, src)\n}\nfunc (m *RootPaths) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RootPaths) XXX_DiscardUnknown() {\n\txxx_messageInfo_RootPaths.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RootPaths proto.InternalMessageInfo\n\nfunc (m *ServerAddressByClientCIDR) Reset()      { *m = ServerAddressByClientCIDR{} }\nfunc (*ServerAddressByClientCIDR) ProtoMessage() {}\nfunc (*ServerAddressByClientCIDR) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{33}\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServerAddressByClientCIDR.Merge(m, src)\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServerAddressByClientCIDR) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServerAddressByClientCIDR.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServerAddressByClientCIDR proto.InternalMessageInfo\n\nfunc (m *Status) Reset()      { *m = Status{} }\nfunc (*Status) ProtoMessage() {}\nfunc (*Status) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{34}\n}\nfunc (m *Status) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Status) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Status) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Status.Merge(m, src)\n}\nfunc (m *Status) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Status) XXX_DiscardUnknown() {\n\txxx_messageInfo_Status.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Status proto.InternalMessageInfo\n\nfunc (m *StatusCause) Reset()      { *m = StatusCause{} }\nfunc (*StatusCause) ProtoMessage() {}\nfunc (*StatusCause) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{35}\n}\nfunc (m *StatusCause) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatusCause) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusCause.Merge(m, src)\n}\nfunc (m *StatusCause) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusCause) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusCause.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusCause proto.InternalMessageInfo\n\nfunc (m *StatusDetails) Reset()      { *m = StatusDetails{} }\nfunc (*StatusDetails) ProtoMessage() {}\nfunc (*StatusDetails) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{36}\n}\nfunc (m *StatusDetails) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatusDetails) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusDetails.Merge(m, src)\n}\nfunc (m *StatusDetails) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusDetails) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusDetails.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusDetails proto.InternalMessageInfo\n\nfunc (m *TableOptions) Reset()      { *m = TableOptions{} }\nfunc (*TableOptions) ProtoMessage() {}\nfunc (*TableOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{37}\n}\nfunc (m *TableOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TableOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TableOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TableOptions.Merge(m, src)\n}\nfunc (m *TableOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TableOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_TableOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TableOptions proto.InternalMessageInfo\n\nfunc (m *Time) Reset()      { *m = Time{} }\nfunc (*Time) ProtoMessage() {}\nfunc (*Time) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{38}\n}\nfunc (m *Time) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_Time.Unmarshal(m, b)\n}\nfunc (m *Time) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_Time.Marshal(b, m, deterministic)\n}\nfunc (m *Time) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Time.Merge(m, src)\n}\nfunc (m *Time) XXX_Size() int {\n\treturn xxx_messageInfo_Time.Size(m)\n}\nfunc (m *Time) XXX_DiscardUnknown() {\n\txxx_messageInfo_Time.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Time proto.InternalMessageInfo\n\nfunc (m *Timestamp) Reset()      { *m = Timestamp{} }\nfunc (*Timestamp) ProtoMessage() {}\nfunc (*Timestamp) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{39}\n}\nfunc (m *Timestamp) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Timestamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Timestamp) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Timestamp.Merge(m, src)\n}\nfunc (m *Timestamp) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Timestamp) XXX_DiscardUnknown() {\n\txxx_messageInfo_Timestamp.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Timestamp proto.InternalMessageInfo\n\nfunc (m *TypeMeta) Reset()      { *m = TypeMeta{} }\nfunc (*TypeMeta) ProtoMessage() {}\nfunc (*TypeMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{40}\n}\nfunc (m *TypeMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeMeta.Merge(m, src)\n}\nfunc (m *TypeMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeMeta proto.InternalMessageInfo\n\nfunc (m *UpdateOptions) Reset()      { *m = UpdateOptions{} }\nfunc (*UpdateOptions) ProtoMessage() {}\nfunc (*UpdateOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{41}\n}\nfunc (m *UpdateOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UpdateOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateOptions.Merge(m, src)\n}\nfunc (m *UpdateOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateOptions proto.InternalMessageInfo\n\nfunc (m *Verbs) Reset()      { *m = Verbs{} }\nfunc (*Verbs) ProtoMessage() {}\nfunc (*Verbs) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{42}\n}\nfunc (m *Verbs) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Verbs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Verbs) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Verbs.Merge(m, src)\n}\nfunc (m *Verbs) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Verbs) XXX_DiscardUnknown() {\n\txxx_messageInfo_Verbs.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Verbs proto.InternalMessageInfo\n\nfunc (m *WatchEvent) Reset()      { *m = WatchEvent{} }\nfunc (*WatchEvent) ProtoMessage() {}\nfunc (*WatchEvent) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cf52fa777ced5367, []int{43}\n}\nfunc (m *WatchEvent) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WatchEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WatchEvent) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WatchEvent.Merge(m, src)\n}\nfunc (m *WatchEvent) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WatchEvent) XXX_DiscardUnknown() {\n\txxx_messageInfo_WatchEvent.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WatchEvent proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*APIGroup)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup\")\n\tproto.RegisterType((*APIGroupList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList\")\n\tproto.RegisterType((*APIResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIResource\")\n\tproto.RegisterType((*APIResourceList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList\")\n\tproto.RegisterType((*APIVersions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions\")\n\tproto.RegisterType((*ApplyOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ApplyOptions\")\n\tproto.RegisterType((*Condition)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Condition\")\n\tproto.RegisterType((*CreateOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions\")\n\tproto.RegisterType((*DeleteOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions\")\n\tproto.RegisterType((*Duration)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Duration\")\n\tproto.RegisterType((*FieldsV1)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1\")\n\tproto.RegisterType((*GetOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions\")\n\tproto.RegisterType((*GroupKind)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind\")\n\tproto.RegisterType((*GroupResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource\")\n\tproto.RegisterType((*GroupVersion)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion\")\n\tproto.RegisterType((*GroupVersionForDiscovery)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\")\n\tproto.RegisterType((*GroupVersionKind)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind\")\n\tproto.RegisterType((*GroupVersionResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource\")\n\tproto.RegisterType((*LabelSelector)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector.MatchLabelsEntry\")\n\tproto.RegisterType((*LabelSelectorRequirement)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\")\n\tproto.RegisterType((*List)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.List\")\n\tproto.RegisterType((*ListMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta\")\n\tproto.RegisterType((*ListOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions\")\n\tproto.RegisterType((*ManagedFieldsEntry)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\")\n\tproto.RegisterType((*MicroTime)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime\")\n\tproto.RegisterType((*ObjectMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.LabelsEntry\")\n\tproto.RegisterType((*OwnerReference)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference\")\n\tproto.RegisterType((*PartialObjectMetadata)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata\")\n\tproto.RegisterType((*PartialObjectMetadataList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList\")\n\tproto.RegisterType((*Patch)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Patch\")\n\tproto.RegisterType((*PatchOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions\")\n\tproto.RegisterType((*Preconditions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions\")\n\tproto.RegisterType((*RootPaths)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths\")\n\tproto.RegisterType((*ServerAddressByClientCIDR)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\")\n\tproto.RegisterType((*Status)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Status\")\n\tproto.RegisterType((*StatusCause)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause\")\n\tproto.RegisterType((*StatusDetails)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails\")\n\tproto.RegisterType((*TableOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions\")\n\tproto.RegisterType((*Time)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Time\")\n\tproto.RegisterType((*Timestamp)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp\")\n\tproto.RegisterType((*TypeMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta\")\n\tproto.RegisterType((*UpdateOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions\")\n\tproto.RegisterType((*Verbs)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Verbs\")\n\tproto.RegisterType((*WatchEvent)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\", fileDescriptor_cf52fa777ced5367)\n}\n\nvar fileDescriptor_cf52fa777ced5367 = []byte{\n\t// 2867 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4b, 0x6f, 0x24, 0x47,\n\t0xd9, 0x3d, 0x0f, 0x7b, 0xe6, 0x9b, 0x19, 0x3f, 0x6a, 0xbd, 0x30, 0x6b, 0x84, 0xc7, 0xe9, 0x44,\n\t0xd1, 0x06, 0x92, 0x71, 0x76, 0x09, 0xd1, 0x66, 0x43, 0x02, 0x1e, 0xcf, 0x7a, 0xe3, 0x64, 0x1d,\n\t0x5b, 0xe5, 0xdd, 0x05, 0x42, 0x84, 0xd2, 0x9e, 0x2e, 0x8f, 0x1b, 0xf7, 0x74, 0x4f, 0xaa, 0x7a,\n\t0xbc, 0x19, 0x38, 0x90, 0x03, 0x08, 0x90, 0x50, 0x14, 0x6e, 0x9c, 0x50, 0x22, 0xf8, 0x01, 0x88,\n\t0x13, 0x77, 0x90, 0xc8, 0x31, 0x88, 0x4b, 0x24, 0xd0, 0x28, 0x31, 0x07, 0x8e, 0x88, 0xab, 0x85,\n\t0x04, 0xaa, 0x47, 0x77, 0x57, 0xcf, 0x63, 0xdd, 0x93, 0x5d, 0x22, 0x6e, 0xd3, 0xdf, 0xbb, 0xaa,\n\t0xbe, 0xfa, 0xea, 0x7b, 0x0c, 0xec, 0x1c, 0x5f, 0x63, 0x75, 0xc7, 0x5f, 0x3f, 0xee, 0x1d, 0x10,\n\t0xea, 0x91, 0x80, 0xb0, 0xf5, 0x13, 0xe2, 0xd9, 0x3e, 0x5d, 0x57, 0x08, 0xab, 0xeb, 0x74, 0xac,\n\t0xd6, 0x91, 0xe3, 0x11, 0xda, 0x5f, 0xef, 0x1e, 0xb7, 0x39, 0x80, 0xad, 0x77, 0x48, 0x60, 0xad,\n\t0x9f, 0x5c, 0x59, 0x6f, 0x13, 0x8f, 0x50, 0x2b, 0x20, 0x76, 0xbd, 0x4b, 0xfd, 0xc0, 0x47, 0x8f,\n\t0x49, 0xae, 0xba, 0xce, 0x55, 0xef, 0x1e, 0xb7, 0x39, 0x80, 0xd5, 0x39, 0x57, 0xfd, 0xe4, 0xca,\n\t0xca, 0x53, 0x6d, 0x27, 0x38, 0xea, 0x1d, 0xd4, 0x5b, 0x7e, 0x67, 0xbd, 0xed, 0xb7, 0xfd, 0x75,\n\t0xc1, 0x7c, 0xd0, 0x3b, 0x14, 0x5f, 0xe2, 0x43, 0xfc, 0x92, 0x42, 0x57, 0x26, 0x9a, 0x42, 0x7b,\n\t0x5e, 0xe0, 0x74, 0xc8, 0xb0, 0x15, 0x2b, 0xcf, 0x9e, 0xc7, 0xc0, 0x5a, 0x47, 0xa4, 0x63, 0x0d,\n\t0xf3, 0x99, 0x7f, 0xca, 0x42, 0x61, 0x63, 0x6f, 0xfb, 0x26, 0xf5, 0x7b, 0x5d, 0xb4, 0x06, 0x39,\n\t0xcf, 0xea, 0x90, 0xaa, 0xb1, 0x66, 0x5c, 0x2e, 0x36, 0xca, 0x1f, 0x0c, 0x6a, 0x33, 0xa7, 0x83,\n\t0x5a, 0xee, 0x55, 0xab, 0x43, 0xb0, 0xc0, 0x20, 0x17, 0x0a, 0x27, 0x84, 0x32, 0xc7, 0xf7, 0x58,\n\t0x35, 0xb3, 0x96, 0xbd, 0x5c, 0xba, 0xfa, 0x62, 0x3d, 0xcd, 0xfa, 0xeb, 0x42, 0xc1, 0x5d, 0xc9,\n\t0xba, 0xe5, 0xd3, 0xa6, 0xc3, 0x5a, 0xfe, 0x09, 0xa1, 0xfd, 0xc6, 0xa2, 0xd2, 0x52, 0x50, 0x48,\n\t0x86, 0x23, 0x0d, 0xe8, 0x47, 0x06, 0x2c, 0x76, 0x29, 0x39, 0x24, 0x94, 0x12, 0x5b, 0xe1, 0xab,\n\t0xd9, 0x35, 0xe3, 0x21, 0xa8, 0xad, 0x2a, 0xb5, 0x8b, 0x7b, 0x43, 0xf2, 0xf1, 0x88, 0x46, 0xf4,\n\t0x6b, 0x03, 0x56, 0x18, 0xa1, 0x27, 0x84, 0x6e, 0xd8, 0x36, 0x25, 0x8c, 0x35, 0xfa, 0x9b, 0xae,\n\t0x43, 0xbc, 0x60, 0x73, 0xbb, 0x89, 0x59, 0x35, 0x27, 0xf6, 0xe1, 0xeb, 0xe9, 0x0c, 0xda, 0x9f,\n\t0x24, 0xa7, 0x61, 0x2a, 0x8b, 0x56, 0x26, 0x92, 0x30, 0x7c, 0x1f, 0x33, 0xcc, 0x43, 0x28, 0x87,\n\t0x07, 0x79, 0xcb, 0x61, 0x01, 0xba, 0x0b, 0xb3, 0x6d, 0xfe, 0xc1, 0xaa, 0x86, 0x30, 0xb0, 0x9e,\n\t0xce, 0xc0, 0x50, 0x46, 0x63, 0x5e, 0xd9, 0x33, 0x2b, 0x3e, 0x19, 0x56, 0xd2, 0xcc, 0x9f, 0xe5,\n\t0xa0, 0xb4, 0xb1, 0xb7, 0x8d, 0x09, 0xf3, 0x7b, 0xb4, 0x45, 0x52, 0x38, 0xcd, 0x35, 0x28, 0x33,\n\t0xc7, 0x6b, 0xf7, 0x5c, 0x8b, 0x72, 0x68, 0x75, 0x56, 0x50, 0x2e, 0x2b, 0xca, 0xf2, 0xbe, 0x86,\n\t0xc3, 0x09, 0x4a, 0x74, 0x15, 0x80, 0x4b, 0x60, 0x5d, 0xab, 0x45, 0xec, 0x6a, 0x66, 0xcd, 0xb8,\n\t0x5c, 0x68, 0x20, 0xc5, 0x07, 0xaf, 0x46, 0x18, 0xac, 0x51, 0xa1, 0x47, 0x21, 0x2f, 0x2c, 0xad,\n\t0x16, 0x84, 0x9a, 0x8a, 0x22, 0xcf, 0x8b, 0x65, 0x60, 0x89, 0x43, 0x4f, 0xc0, 0x9c, 0xf2, 0xb2,\n\t0x6a, 0x51, 0x90, 0x2d, 0x28, 0xb2, 0xb9, 0xd0, 0x0d, 0x42, 0x3c, 0x5f, 0xdf, 0xb1, 0xe3, 0xd9,\n\t0xc2, 0xef, 0xb4, 0xf5, 0xbd, 0xe2, 0x78, 0x36, 0x16, 0x18, 0x74, 0x0b, 0xf2, 0x27, 0x84, 0x1e,\n\t0x70, 0x4f, 0xe0, 0xae, 0xf9, 0xe5, 0x74, 0x1b, 0x7d, 0x97, 0xb3, 0x34, 0x8a, 0xdc, 0x34, 0xf1,\n\t0x13, 0x4b, 0x21, 0xa8, 0x0e, 0xc0, 0x8e, 0x7c, 0x1a, 0x88, 0xe5, 0x55, 0xf3, 0x6b, 0xd9, 0xcb,\n\t0xc5, 0xc6, 0x3c, 0x5f, 0xef, 0x7e, 0x04, 0xc5, 0x1a, 0x05, 0xa7, 0x6f, 0x59, 0x01, 0x69, 0xfb,\n\t0xd4, 0x21, 0xac, 0x3a, 0x17, 0xd3, 0x6f, 0x46, 0x50, 0xac, 0x51, 0xa0, 0x97, 0x01, 0xb1, 0xc0,\n\t0xa7, 0x56, 0x9b, 0xa8, 0xa5, 0xbe, 0x64, 0xb1, 0xa3, 0x2a, 0x88, 0xd5, 0xad, 0xa8, 0xd5, 0xa1,\n\t0xfd, 0x11, 0x0a, 0x3c, 0x86, 0xcb, 0xfc, 0x9d, 0x01, 0x0b, 0x9a, 0x2f, 0x08, 0xbf, 0xbb, 0x06,\n\t0xe5, 0xb6, 0x76, 0xeb, 0x94, 0x5f, 0x44, 0xa7, 0xad, 0xdf, 0x48, 0x9c, 0xa0, 0x44, 0x04, 0x8a,\n\t0x54, 0x49, 0x0a, 0xa3, 0xcb, 0x95, 0xd4, 0x4e, 0x1b, 0xda, 0x10, 0x6b, 0xd2, 0x80, 0x0c, 0xc7,\n\t0x92, 0xcd, 0x7f, 0x18, 0xc2, 0x81, 0xc3, 0x78, 0x83, 0x2e, 0x6b, 0x31, 0xcd, 0x10, 0xdb, 0x57,\n\t0x9e, 0x10, 0x8f, 0xce, 0x09, 0x04, 0x99, 0xff, 0x8b, 0x40, 0x70, 0xbd, 0xf0, 0xcb, 0xf7, 0x6a,\n\t0x33, 0x6f, 0xff, 0x6d, 0x6d, 0xc6, 0xfc, 0x85, 0x01, 0xe5, 0x8d, 0x6e, 0xd7, 0xed, 0xef, 0x76,\n\t0x03, 0xb1, 0x00, 0x13, 0x66, 0x6d, 0xda, 0xc7, 0x3d, 0x4f, 0x2d, 0x14, 0xf8, 0xfd, 0x6e, 0x0a,\n\t0x08, 0x56, 0x18, 0x7e, 0x7f, 0x0e, 0x7d, 0xda, 0x22, 0xea, 0xba, 0x45, 0xf7, 0x67, 0x8b, 0x03,\n\t0xb1, 0xc4, 0xf1, 0x43, 0x3e, 0x74, 0x88, 0x6b, 0xef, 0x58, 0x9e, 0xd5, 0x26, 0x54, 0x5d, 0x8e,\n\t0x68, 0xeb, 0xb7, 0x34, 0x1c, 0x4e, 0x50, 0x9a, 0xff, 0xc9, 0x40, 0x71, 0xd3, 0xf7, 0x6c, 0x27,\n\t0x50, 0x97, 0x2b, 0xe8, 0x77, 0x47, 0x82, 0xc7, 0xed, 0x7e, 0x97, 0x60, 0x81, 0x41, 0xcf, 0xc1,\n\t0x2c, 0x0b, 0xac, 0xa0, 0xc7, 0x84, 0x3d, 0xc5, 0xc6, 0x23, 0x61, 0x58, 0xda, 0x17, 0xd0, 0xb3,\n\t0x41, 0x6d, 0x21, 0x12, 0x27, 0x41, 0x58, 0x31, 0x70, 0x4f, 0xf7, 0x0f, 0xc4, 0x46, 0xd9, 0x37,\n\t0xe5, 0xb3, 0x17, 0xbe, 0x1f, 0xd9, 0xd8, 0xd3, 0x77, 0x47, 0x28, 0xf0, 0x18, 0x2e, 0x74, 0x02,\n\t0xc8, 0xb5, 0x58, 0x70, 0x9b, 0x5a, 0x1e, 0x13, 0xba, 0x6e, 0x3b, 0x1d, 0xa2, 0x2e, 0xfc, 0x97,\n\t0xd2, 0x9d, 0x38, 0xe7, 0x88, 0xf5, 0xde, 0x1a, 0x91, 0x86, 0xc7, 0x68, 0x40, 0x8f, 0xc3, 0x2c,\n\t0x25, 0x16, 0xf3, 0xbd, 0x6a, 0x5e, 0x2c, 0x3f, 0x8a, 0xca, 0x58, 0x40, 0xb1, 0xc2, 0xf2, 0x80,\n\t0xd6, 0x21, 0x8c, 0x59, 0xed, 0x30, 0xbc, 0x46, 0x01, 0x6d, 0x47, 0x82, 0x71, 0x88, 0x37, 0x7f,\n\t0x6b, 0x40, 0x65, 0x93, 0x12, 0x2b, 0x20, 0xd3, 0xb8, 0xc5, 0xa7, 0x3e, 0x71, 0xb4, 0x01, 0x0b,\n\t0xe2, 0xfb, 0xae, 0xe5, 0x3a, 0xb6, 0x3c, 0x83, 0x9c, 0x60, 0xfe, 0xbc, 0x62, 0x5e, 0xd8, 0x4a,\n\t0xa2, 0xf1, 0x30, 0xbd, 0xf9, 0x93, 0x2c, 0x54, 0x9a, 0xc4, 0x25, 0xb1, 0xc9, 0x5b, 0x80, 0xda,\n\t0xd4, 0x6a, 0x91, 0x3d, 0x42, 0x1d, 0xdf, 0xde, 0x27, 0x2d, 0xdf, 0xb3, 0x99, 0x70, 0xa3, 0x6c,\n\t0xe3, 0x73, 0x7c, 0x7f, 0x6f, 0x8e, 0x60, 0xf1, 0x18, 0x0e, 0xe4, 0x42, 0xa5, 0x4b, 0xc5, 0x6f,\n\t0xb1, 0xe7, 0xd2, 0xcb, 0x4a, 0x57, 0xbf, 0x92, 0xee, 0x48, 0xf7, 0x74, 0xd6, 0xc6, 0xd2, 0xe9,\n\t0xa0, 0x56, 0x49, 0x80, 0x70, 0x52, 0x38, 0xfa, 0x06, 0x2c, 0xfa, 0xb4, 0x7b, 0x64, 0x79, 0x4d,\n\t0xd2, 0x25, 0x9e, 0x4d, 0xbc, 0x80, 0x89, 0x8d, 0x2c, 0x34, 0x96, 0x79, 0x2e, 0xb2, 0x3b, 0x84,\n\t0xc3, 0x23, 0xd4, 0xe8, 0x35, 0x58, 0xea, 0x52, 0xbf, 0x6b, 0xb5, 0xc5, 0xc6, 0xec, 0xf9, 0xae,\n\t0xd3, 0xea, 0xab, 0xed, 0x7c, 0xf2, 0x74, 0x50, 0x5b, 0xda, 0x1b, 0x46, 0x9e, 0x0d, 0x6a, 0x17,\n\t0xc4, 0xd6, 0x71, 0x48, 0x8c, 0xc4, 0xa3, 0x62, 0x34, 0x37, 0xc8, 0x4f, 0x72, 0x03, 0x73, 0x1b,\n\t0x0a, 0xcd, 0x9e, 0xba, 0x13, 0x2f, 0x40, 0xc1, 0x56, 0xbf, 0xd5, 0xce, 0x87, 0x97, 0x33, 0xa2,\n\t0x39, 0x1b, 0xd4, 0x2a, 0x3c, 0xfd, 0xac, 0x87, 0x00, 0x1c, 0xb1, 0x98, 0x8f, 0x43, 0x41, 0x1c,\n\t0x3c, 0xbb, 0x7b, 0x05, 0x2d, 0x42, 0x16, 0x5b, 0xf7, 0x84, 0x94, 0x32, 0xe6, 0x3f, 0xb5, 0x28,\n\t0xb6, 0x0b, 0x70, 0x93, 0x04, 0xe1, 0xc1, 0x6f, 0xc0, 0x42, 0x18, 0xca, 0x93, 0x2f, 0x4c, 0xe4,\n\t0x4d, 0x38, 0x89, 0xc6, 0xc3, 0xf4, 0xe6, 0xeb, 0x50, 0x14, 0xaf, 0x10, 0x7f, 0xc2, 0xe3, 0x74,\n\t0xc1, 0xb8, 0x4f, 0xba, 0x10, 0xe6, 0x00, 0x99, 0x49, 0x39, 0x80, 0x66, 0xae, 0x0b, 0x15, 0xc9,\n\t0x1b, 0x26, 0x48, 0xa9, 0x34, 0x3c, 0x09, 0x85, 0xd0, 0x4c, 0xa5, 0x25, 0x4a, 0x8c, 0x43, 0x41,\n\t0x38, 0xa2, 0xd0, 0xb4, 0x1d, 0x41, 0xe2, 0x45, 0x4d, 0xa7, 0x4c, 0xcb, 0x7e, 0x32, 0xf7, 0xcf,\n\t0x7e, 0x34, 0x4d, 0x3f, 0x84, 0xea, 0xa4, 0x6c, 0xfa, 0x01, 0xde, 0xfc, 0xf4, 0xa6, 0x98, 0xef,\n\t0x18, 0xb0, 0xa8, 0x4b, 0x4a, 0x7f, 0x7c, 0xe9, 0x95, 0x9c, 0x9f, 0xed, 0x69, 0x3b, 0xf2, 0x2b,\n\t0x03, 0x96, 0x13, 0x4b, 0x9b, 0xea, 0xc4, 0xa7, 0x30, 0x4a, 0x77, 0x8e, 0xec, 0x14, 0xce, 0xf1,\n\t0x97, 0x0c, 0x54, 0x6e, 0x59, 0x07, 0xc4, 0xdd, 0x27, 0x2e, 0x69, 0x05, 0x3e, 0x45, 0x3f, 0x80,\n\t0x52, 0xc7, 0x0a, 0x5a, 0x47, 0x02, 0x1a, 0x56, 0x06, 0xcd, 0x74, 0xc1, 0x2e, 0x21, 0xa9, 0xbe,\n\t0x13, 0x8b, 0xb9, 0xe1, 0x05, 0xb4, 0xdf, 0xb8, 0xa0, 0x4c, 0x2a, 0x69, 0x18, 0xac, 0x6b, 0x13,\n\t0xe5, 0x9c, 0xf8, 0xbe, 0xf1, 0x56, 0x97, 0xa7, 0x2d, 0xd3, 0x57, 0x91, 0x09, 0x13, 0x30, 0x79,\n\t0xb3, 0xe7, 0x50, 0xd2, 0x21, 0x5e, 0x10, 0x97, 0x73, 0x3b, 0x43, 0xf2, 0xf1, 0x88, 0xc6, 0x95,\n\t0x17, 0x61, 0x71, 0xd8, 0x78, 0x1e, 0x7f, 0x8e, 0x49, 0x5f, 0x9e, 0x17, 0xe6, 0x3f, 0xd1, 0x32,\n\t0xe4, 0x4f, 0x2c, 0xb7, 0xa7, 0x6e, 0x23, 0x96, 0x1f, 0xd7, 0x33, 0xd7, 0x0c, 0xf3, 0x37, 0x06,\n\t0x54, 0x27, 0x19, 0x82, 0xbe, 0xa8, 0x09, 0x6a, 0x94, 0x94, 0x55, 0xd9, 0x57, 0x48, 0x5f, 0x4a,\n\t0xbd, 0x01, 0x05, 0xbf, 0xcb, 0x73, 0x0a, 0x9f, 0xaa, 0x53, 0x7f, 0x22, 0x3c, 0xc9, 0x5d, 0x05,\n\t0x3f, 0x1b, 0xd4, 0x2e, 0x26, 0xc4, 0x87, 0x08, 0x1c, 0xb1, 0xf2, 0x48, 0x2d, 0xec, 0xe1, 0xaf,\n\t0x47, 0x14, 0xa9, 0xef, 0x0a, 0x08, 0x56, 0x18, 0xf3, 0xf7, 0x06, 0xe4, 0x44, 0x42, 0xfe, 0x3a,\n\t0x14, 0xf8, 0xfe, 0xd9, 0x56, 0x60, 0x09, 0xbb, 0x52, 0x97, 0x82, 0x9c, 0x7b, 0x87, 0x04, 0x56,\n\t0xec, 0x6d, 0x21, 0x04, 0x47, 0x12, 0x11, 0x86, 0xbc, 0x13, 0x90, 0x4e, 0x78, 0x90, 0x4f, 0x4d,\n\t0x14, 0xad, 0x1a, 0x11, 0x75, 0x6c, 0xdd, 0xbb, 0xf1, 0x56, 0x40, 0x3c, 0x7e, 0x18, 0xf1, 0xd5,\n\t0xd8, 0xe6, 0x32, 0xb0, 0x14, 0x65, 0xfe, 0xcb, 0x80, 0x48, 0x15, 0x77, 0x7e, 0x46, 0xdc, 0xc3,\n\t0x5b, 0x8e, 0x77, 0xac, 0xb6, 0x35, 0x32, 0x67, 0x5f, 0xc1, 0x71, 0x44, 0x31, 0xee, 0x79, 0xc8,\n\t0x4c, 0xf7, 0x3c, 0x70, 0x85, 0x2d, 0xdf, 0x0b, 0x1c, 0xaf, 0x37, 0x72, 0xdb, 0x36, 0x15, 0x1c,\n\t0x47, 0x14, 0x3c, 0x11, 0xa1, 0xa4, 0x63, 0x39, 0x9e, 0xe3, 0xb5, 0xf9, 0x22, 0x36, 0xfd, 0x9e,\n\t0x17, 0x88, 0x17, 0x59, 0x25, 0x22, 0x78, 0x04, 0x8b, 0xc7, 0x70, 0x98, 0xff, 0xce, 0x41, 0x89,\n\t0xaf, 0x39, 0x7c, 0xe7, 0x9e, 0x87, 0x8a, 0xab, 0x7b, 0x81, 0x5a, 0xfb, 0x45, 0x65, 0x4a, 0xf2,\n\t0x5e, 0xe3, 0x24, 0x2d, 0x67, 0x16, 0x29, 0x54, 0xc4, 0x9c, 0x49, 0x32, 0x6f, 0xe9, 0x48, 0x9c,\n\t0xa4, 0xe5, 0xd1, 0xeb, 0x1e, 0xbf, 0x1f, 0x2a, 0x33, 0x89, 0x8e, 0xe8, 0x9b, 0x1c, 0x88, 0x25,\n\t0x0e, 0xed, 0xc0, 0x05, 0xcb, 0x75, 0xfd, 0x7b, 0x02, 0xd8, 0xf0, 0xfd, 0xe3, 0x8e, 0x45, 0x8f,\n\t0x99, 0x28, 0xa6, 0x0b, 0x8d, 0x2f, 0x28, 0x96, 0x0b, 0x1b, 0xa3, 0x24, 0x78, 0x1c, 0xdf, 0xb8,\n\t0x63, 0xcb, 0x4d, 0x79, 0x6c, 0x47, 0xb0, 0x3c, 0x04, 0x12, 0xb7, 0x5c, 0x55, 0xb6, 0xcf, 0x28,\n\t0x39, 0xcb, 0x78, 0x0c, 0xcd, 0xd9, 0x04, 0x38, 0x1e, 0x2b, 0x11, 0x5d, 0x87, 0x79, 0xee, 0xc9,\n\t0x7e, 0x2f, 0x08, 0xf3, 0xce, 0xbc, 0x38, 0x6e, 0x74, 0x3a, 0xa8, 0xcd, 0xdf, 0x4e, 0x60, 0xf0,\n\t0x10, 0x25, 0xdf, 0x5c, 0xd7, 0xe9, 0x38, 0x41, 0x75, 0x4e, 0xb0, 0x44, 0x9b, 0x7b, 0x8b, 0x03,\n\t0xb1, 0xc4, 0x25, 0x3c, 0xb0, 0x70, 0xae, 0x07, 0x6e, 0xc2, 0x12, 0x23, 0x9e, 0xbd, 0xed, 0x39,\n\t0x81, 0x63, 0xb9, 0x37, 0x4e, 0x44, 0x56, 0x59, 0x12, 0x07, 0x71, 0x91, 0xa7, 0x84, 0xfb, 0xc3,\n\t0x48, 0x3c, 0x4a, 0x6f, 0xfe, 0x39, 0x0b, 0x48, 0x26, 0xec, 0xb6, 0x4c, 0xca, 0x64, 0x5c, 0xe4,\n\t0x65, 0x85, 0x4a, 0xf8, 0x8d, 0xa1, 0xb2, 0x42, 0xe5, 0xfa, 0x21, 0x1e, 0xed, 0x40, 0x51, 0xc6,\n\t0xa7, 0xf8, 0xce, 0xad, 0x2b, 0xe2, 0xe2, 0x6e, 0x88, 0x38, 0x1b, 0xd4, 0x56, 0x12, 0x6a, 0x22,\n\t0x8c, 0x28, 0xf9, 0x62, 0x09, 0xe8, 0x2a, 0x80, 0xd5, 0x75, 0xf4, 0xa6, 0x5f, 0x31, 0x6e, 0xfd,\n\t0xc4, 0xe5, 0x3b, 0xd6, 0xa8, 0xd0, 0x4b, 0x90, 0x0b, 0x3e, 0x5d, 0x59, 0x56, 0x10, 0x55, 0x27,\n\t0x2f, 0xc2, 0x84, 0x04, 0xae, 0x5d, 0x5c, 0x0a, 0xc6, 0xcd, 0x52, 0x15, 0x55, 0xa4, 0x7d, 0x2b,\n\t0xc2, 0x60, 0x8d, 0x0a, 0x7d, 0x0b, 0x0a, 0x87, 0x2a, 0x9f, 0x15, 0xa7, 0x9b, 0x3a, 0xce, 0x86,\n\t0x59, 0xb0, 0xec, 0x3b, 0x84, 0x5f, 0x38, 0x92, 0x86, 0xbe, 0x0a, 0x25, 0xd6, 0x3b, 0x88, 0x52,\n\t0x00, 0xe9, 0x12, 0xd1, 0x7b, 0xbb, 0x1f, 0xa3, 0xb0, 0x4e, 0x67, 0xbe, 0x09, 0xc5, 0x1d, 0xa7,\n\t0x45, 0x7d, 0x51, 0x48, 0x3e, 0x01, 0x73, 0x2c, 0x51, 0x25, 0x45, 0x27, 0x19, 0xba, 0x6a, 0x88,\n\t0xe7, 0x3e, 0xea, 0x59, 0x9e, 0x2f, 0x6b, 0xa1, 0x7c, 0xec, 0xa3, 0xaf, 0x72, 0x20, 0x96, 0xb8,\n\t0xeb, 0xcb, 0x3c, 0xcb, 0xf8, 0xe9, 0xfb, 0xb5, 0x99, 0x77, 0xdf, 0xaf, 0xcd, 0xbc, 0xf7, 0xbe,\n\t0xca, 0x38, 0xfe, 0x00, 0x00, 0xbb, 0x07, 0xdf, 0x23, 0x2d, 0x19, 0xbb, 0x53, 0xf5, 0x06, 0xc3,\n\t0x96, 0xb4, 0xe8, 0x0d, 0x66, 0x86, 0x32, 0x47, 0x0d, 0x87, 0x13, 0x94, 0x68, 0x1d, 0x8a, 0x51,\n\t0xd7, 0x4f, 0xf9, 0xc7, 0x52, 0xe8, 0x6f, 0x51, 0x6b, 0x10, 0xc7, 0x34, 0x89, 0x87, 0x24, 0x77,\n\t0xee, 0x43, 0xd2, 0x80, 0x6c, 0xcf, 0xb1, 0x55, 0xd5, 0xfd, 0x74, 0xf8, 0x90, 0xdf, 0xd9, 0x6e,\n\t0x9e, 0x0d, 0x6a, 0x8f, 0x4c, 0x6a, 0xb6, 0x07, 0xfd, 0x2e, 0x61, 0xf5, 0x3b, 0xdb, 0x4d, 0xcc,\n\t0x99, 0xc7, 0x45, 0xb5, 0xd9, 0x29, 0xa3, 0xda, 0x55, 0x80, 0x76, 0xdc, 0xbb, 0x90, 0x41, 0x23,\n\t0x72, 0x44, 0xad, 0x67, 0xa1, 0x51, 0x21, 0x06, 0x4b, 0x2d, 0x5e, 0xdf, 0xab, 0x1e, 0x02, 0x0b,\n\t0xac, 0x8e, 0xec, 0x86, 0x4e, 0x77, 0x27, 0x2e, 0x29, 0x35, 0x4b, 0x9b, 0xc3, 0xc2, 0xf0, 0xa8,\n\t0x7c, 0xe4, 0xc3, 0x92, 0xad, 0xca, 0xcc, 0x58, 0x69, 0x71, 0x6a, 0xa5, 0x22, 0x62, 0x35, 0x87,\n\t0x05, 0xe1, 0x51, 0xd9, 0xe8, 0xbb, 0xb0, 0x12, 0x02, 0x47, 0x6b, 0x7d, 0x11, 0xf5, 0xb3, 0x8d,\n\t0xd5, 0xd3, 0x41, 0x6d, 0xa5, 0x39, 0x91, 0x0a, 0xdf, 0x47, 0x02, 0xb2, 0x61, 0xd6, 0x95, 0x59,\n\t0x72, 0x49, 0x64, 0x36, 0x5f, 0x4b, 0xb7, 0x8a, 0xd8, 0xfb, 0xeb, 0x7a, 0x76, 0x1c, 0xf5, 0x6d,\n\t0x54, 0x62, 0xac, 0x64, 0xa3, 0xb7, 0xa0, 0x64, 0x79, 0x9e, 0x1f, 0x58, 0xb2, 0xfb, 0x50, 0x16,\n\t0xaa, 0x36, 0xa6, 0x56, 0xb5, 0x11, 0xcb, 0x18, 0xca, 0xc6, 0x35, 0x0c, 0xd6, 0x55, 0xa1, 0x7b,\n\t0xb0, 0xe0, 0xdf, 0xf3, 0x08, 0xc5, 0xe4, 0x90, 0x50, 0xe2, 0xb5, 0x08, 0xab, 0x56, 0x84, 0xf6,\n\t0x67, 0x52, 0x6a, 0x4f, 0x30, 0xc7, 0x2e, 0x9d, 0x84, 0x33, 0x3c, 0xac, 0x05, 0xd5, 0x79, 0x6c,\n\t0xf5, 0x2c, 0xd7, 0xf9, 0x3e, 0xa1, 0xac, 0x3a, 0x1f, 0x37, 0xac, 0xb7, 0x22, 0x28, 0xd6, 0x28,\n\t0x50, 0x0f, 0x2a, 0x1d, 0xfd, 0xc9, 0xa8, 0x2e, 0x09, 0x33, 0xaf, 0xa5, 0x33, 0x73, 0xf4, 0x51,\n\t0x8b, 0xd3, 0xa0, 0x04, 0x0e, 0x27, 0xb5, 0xac, 0x3c, 0x07, 0xa5, 0x4f, 0x59, 0x21, 0xf0, 0x0a,\n\t0x63, 0xf8, 0x40, 0xa6, 0xaa, 0x30, 0xfe, 0x98, 0x81, 0xf9, 0xe4, 0x36, 0x0e, 0x3d, 0x87, 0xf9,\n\t0x54, 0xcf, 0x61, 0x58, 0xcb, 0x1a, 0x13, 0x27, 0x17, 0x61, 0x7c, 0xce, 0x4e, 0x8c, 0xcf, 0x2a,\n\t0x0c, 0xe6, 0x1e, 0x24, 0x0c, 0xd6, 0x01, 0x78, 0xb2, 0x42, 0x7d, 0xd7, 0x25, 0x54, 0x44, 0xc0,\n\t0x82, 0x9a, 0x50, 0x44, 0x50, 0xac, 0x51, 0xf0, 0x94, 0xfa, 0xc0, 0xf5, 0x5b, 0xc7, 0x62, 0x0b,\n\t0xc2, 0xdb, 0x2b, 0x62, 0x5f, 0x41, 0xa6, 0xd4, 0x8d, 0x11, 0x2c, 0x1e, 0xc3, 0x61, 0xf6, 0xe1,\n\t0xe2, 0x9e, 0x45, 0x79, 0x92, 0x13, 0xdf, 0x14, 0x51, 0xb3, 0xbc, 0x31, 0x52, 0x11, 0x3d, 0x3d,\n\t0xed, 0x8d, 0x8b, 0x37, 0x3f, 0x86, 0xc5, 0x55, 0x91, 0xf9, 0x57, 0x03, 0x2e, 0x8d, 0xd5, 0xfd,\n\t0x19, 0x54, 0x64, 0x6f, 0x24, 0x2b, 0xb2, 0xe7, 0x53, 0xb6, 0x32, 0xc7, 0x59, 0x3b, 0xa1, 0x3e,\n\t0x9b, 0x83, 0xfc, 0x1e, 0xcf, 0x84, 0xcd, 0x0f, 0x0d, 0x28, 0x8b, 0x5f, 0xd3, 0x74, 0x92, 0x6b,\n\t0xc9, 0x01, 0x43, 0xf1, 0xe1, 0x0d, 0x17, 0x1e, 0x46, 0xab, 0xf9, 0x1d, 0x03, 0x92, 0x3d, 0x5c,\n\t0xf4, 0xa2, 0xbc, 0x02, 0x46, 0xd4, 0x64, 0x9d, 0xd2, 0xfd, 0x5f, 0x98, 0x54, 0x92, 0x5e, 0x48,\n\t0xd5, 0xad, 0x7c, 0x12, 0x8a, 0xd8, 0xf7, 0x83, 0x3d, 0x2b, 0x38, 0x62, 0x7c, 0xef, 0xba, 0xfc,\n\t0x87, 0xda, 0x5e, 0xb1, 0x77, 0x02, 0x83, 0x25, 0xdc, 0xfc, 0xb9, 0x01, 0x97, 0x26, 0xce, 0x8d,\n\t0x78, 0x14, 0x69, 0x45, 0x5f, 0x6a, 0x45, 0x91, 0x23, 0xc7, 0x74, 0x58, 0xa3, 0xe2, 0xb5, 0x64,\n\t0x62, 0xd8, 0x34, 0x5c, 0x4b, 0x26, 0xb4, 0xe1, 0x24, 0xad, 0xf9, 0xcf, 0x0c, 0xa8, 0x41, 0xcd,\n\t0xff, 0xd8, 0xe9, 0x1f, 0x1f, 0x1a, 0x13, 0xcd, 0x27, 0xc7, 0x44, 0xd1, 0x4c, 0x48, 0x9b, 0x93,\n\t0x64, 0xef, 0x3f, 0x27, 0x41, 0xcf, 0x46, 0xa3, 0x17, 0xe9, 0x43, 0xab, 0xc9, 0xd1, 0xcb, 0xd9,\n\t0xa0, 0x56, 0x56, 0xc2, 0x93, 0xa3, 0x98, 0xd7, 0x60, 0xce, 0x26, 0x81, 0xe5, 0xb8, 0xb2, 0x2e,\n\t0x4c, 0x3d, 0x4c, 0x90, 0xc2, 0x9a, 0x92, 0xb5, 0x51, 0xe2, 0x36, 0xa9, 0x0f, 0x1c, 0x0a, 0xe4,\n\t0x01, 0xbb, 0xe5, 0xdb, 0xb2, 0x22, 0xc9, 0xc7, 0x01, 0x7b, 0xd3, 0xb7, 0x09, 0x16, 0x18, 0xf3,\n\t0x5d, 0x03, 0x4a, 0x52, 0xd2, 0xa6, 0xd5, 0x63, 0x04, 0x5d, 0x89, 0x56, 0x21, 0x8f, 0xfb, 0x92,\n\t0x3e, 0x63, 0x3b, 0x1b, 0xd4, 0x8a, 0x82, 0x4c, 0x14, 0x33, 0x63, 0x66, 0x49, 0x99, 0x73, 0xf6,\n\t0xe8, 0x51, 0xc8, 0x8b, 0x0b, 0xa4, 0x36, 0x33, 0x1e, 0x16, 0x72, 0x20, 0x96, 0x38, 0xf3, 0xe3,\n\t0x0c, 0x54, 0x12, 0x8b, 0x4b, 0x51, 0x17, 0x44, 0x2d, 0xd4, 0x4c, 0x8a, 0xb6, 0xfc, 0xe4, 0xd1,\n\t0xbc, 0x7a, 0xbe, 0x66, 0x1f, 0xe4, 0xf9, 0xfa, 0x36, 0xcc, 0xb6, 0xf8, 0x1e, 0x85, 0xff, 0xf4,\n\t0xb8, 0x32, 0xcd, 0x71, 0x8a, 0xdd, 0x8d, 0xbd, 0x51, 0x7c, 0x32, 0xac, 0x04, 0xa2, 0x9b, 0xb0,\n\t0x44, 0x49, 0x40, 0xfb, 0x1b, 0x87, 0x01, 0xa1, 0x7a, 0x33, 0x21, 0x1f, 0x67, 0xdf, 0x78, 0x98,\n\t0x00, 0x8f, 0xf2, 0x98, 0x07, 0x50, 0xbe, 0x6d, 0x1d, 0xb8, 0xd1, 0x78, 0x0c, 0x43, 0xc5, 0xf1,\n\t0x5a, 0x6e, 0xcf, 0x26, 0x32, 0xa0, 0x87, 0xd1, 0x2b, 0xbc, 0xb4, 0xdb, 0x3a, 0xf2, 0x6c, 0x50,\n\t0xbb, 0x90, 0x00, 0xc8, 0x79, 0x10, 0x4e, 0x8a, 0x30, 0x5d, 0xc8, 0x7d, 0x86, 0x95, 0xe4, 0x77,\n\t0xa0, 0x18, 0xe7, 0xfa, 0x0f, 0x59, 0xa5, 0xf9, 0x06, 0x14, 0xb8, 0xc7, 0x87, 0x35, 0xea, 0x39,\n\t0x59, 0x52, 0x32, 0xf7, 0xca, 0xa4, 0xc9, 0xbd, 0xc4, 0x90, 0xf5, 0x4e, 0xd7, 0x7e, 0xc0, 0x21,\n\t0x6b, 0xe6, 0x41, 0x5e, 0xbe, 0xec, 0x94, 0x2f, 0xdf, 0x55, 0x90, 0x7f, 0x44, 0xe1, 0x8f, 0x8c,\n\t0x4c, 0x20, 0xb4, 0x47, 0x46, 0x7f, 0xff, 0xb5, 0x09, 0xc3, 0x8f, 0x0d, 0x00, 0xd1, 0xca, 0x13,\n\t0x6d, 0xa4, 0x14, 0xe3, 0xfc, 0x3b, 0x30, 0xeb, 0x4b, 0x8f, 0x94, 0x83, 0xd6, 0x29, 0xfb, 0xc5,\n\t0xd1, 0x45, 0x92, 0x3e, 0x89, 0x95, 0xb0, 0xc6, 0xcb, 0x1f, 0x7c, 0xb2, 0x3a, 0xf3, 0xe1, 0x27,\n\t0xab, 0x33, 0x1f, 0x7d, 0xb2, 0x3a, 0xf3, 0xf6, 0xe9, 0xaa, 0xf1, 0xc1, 0xe9, 0xaa, 0xf1, 0xe1,\n\t0xe9, 0xaa, 0xf1, 0xd1, 0xe9, 0xaa, 0xf1, 0xf1, 0xe9, 0xaa, 0xf1, 0xee, 0xdf, 0x57, 0x67, 0x5e,\n\t0x7b, 0x2c, 0xcd, 0x1f, 0xfc, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x28, 0x27, 0x65, 0xab, 0x20,\n\t0x28, 0x00, 0x00,\n}\n\nfunc (m *APIGroup) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroup) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroup) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor iNdEx := len(m.ServerAddressByClientCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ServerAddressByClientCIDRs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PreferredVersion.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIGroupList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Groups[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StorageVersionHash)\n\tcopy(dAtA[i:], m.StorageVersionHash)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageVersionHash)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Categories) > 0 {\n\t\tfor iNdEx := len(m.Categories) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Categories[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Categories[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Categories[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.SingularName)\n\tcopy(dAtA[i:], m.SingularName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SingularName)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.ShortNames) > 0 {\n\t\tfor iNdEx := len(m.ShortNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ShortNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ShortNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShortNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.Verbs != nil {\n\t\t{\n\t\t\tsize, err := m.Verbs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.Namespaced {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResourceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResourceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResourceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.APIResources) > 0 {\n\t\tfor iNdEx := len(m.APIResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.APIResources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.GroupVersion)\n\tcopy(dAtA[i:], m.GroupVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIVersions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIVersions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIVersions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor iNdEx := len(m.ServerAddressByClientCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ServerAddressByClientCIDRs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Versions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Versions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Versions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ApplyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ApplyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ApplyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.Force {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Condition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Condition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Condition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CreateOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CreateOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeleteOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeleteOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeleteOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.PropagationPolicy != nil {\n\t\ti -= len(*m.PropagationPolicy)\n\t\tcopy(dAtA[i:], *m.PropagationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PropagationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.OrphanDependents != nil {\n\t\ti--\n\t\tif *m.OrphanDependents {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Preconditions != nil {\n\t\t{\n\t\t\tsize, err := m.Preconditions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.GracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Duration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Duration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Duration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Duration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FieldsV1) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FieldsV1) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FieldsV1) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GetOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GetOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionForDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionForDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionForDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.GroupVersion)\n\tcopy(dAtA[i:], m.GroupVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LabelSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LabelSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LabelSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.MatchLabels) > 0 {\n\t\tkeysForMatchLabels := make([]string, 0, len(m.MatchLabels))\n\t\tfor k := range m.MatchLabels {\n\t\t\tkeysForMatchLabels = append(keysForMatchLabels, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMatchLabels)\n\t\tfor iNdEx := len(keysForMatchLabels) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.MatchLabels[string(keysForMatchLabels[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMatchLabels[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMatchLabels[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMatchLabels[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LabelSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LabelSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LabelSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *List) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *List) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *List) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RemainingItemCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RemainingItemCount))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.Continue)\n\tcopy(dAtA[i:], m.Continue)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Continue)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SelfLink)\n\tcopy(dAtA[i:], m.SelfLink)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SelfLink)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SendInitialEvents != nil {\n\t\ti--\n\t\tif *m.SendInitialEvents {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x58\n\t}\n\ti -= len(m.ResourceVersionMatch)\n\tcopy(dAtA[i:], m.ResourceVersionMatch)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersionMatch)))\n\ti--\n\tdAtA[i] = 0x52\n\ti--\n\tif m.AllowWatchBookmarks {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x48\n\ti -= len(m.Continue)\n\tcopy(dAtA[i:], m.Continue)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Continue)))\n\ti--\n\tdAtA[i] = 0x42\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Limit))\n\ti--\n\tdAtA[i] = 0x38\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Watch {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FieldSelector)\n\tcopy(dAtA[i:], m.FieldSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldSelector)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.LabelSelector)\n\tcopy(dAtA[i:], m.LabelSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LabelSelector)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ManagedFieldsEntry) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ManagedFieldsEntry) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ManagedFieldsEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x42\n\tif m.FieldsV1 != nil {\n\t\t{\n\t\t\tsize, err := m.FieldsV1.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.FieldsType)\n\tcopy(dAtA[i:], m.FieldsType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldsType)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.Time != nil {\n\t\t{\n\t\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Operation)\n\tcopy(dAtA[i:], m.Operation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operation)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Manager)\n\tcopy(dAtA[i:], m.Manager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Manager)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ManagedFields) > 0 {\n\t\tfor iNdEx := len(m.ManagedFields) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ManagedFields[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8a\n\t\t}\n\t}\n\tif len(m.Finalizers) > 0 {\n\t\tfor iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Finalizers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Finalizers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x72\n\t\t}\n\t}\n\tif len(m.OwnerReferences) > 0 {\n\t\tfor iNdEx := len(m.OwnerReferences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.OwnerReferences[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tkeysForAnnotations := make([]string, 0, len(m.Annotations))\n\t\tfor k := range m.Annotations {\n\t\t\tkeysForAnnotations = append(keysForAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\t\tfor iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Annotations[string(keysForAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tkeysForLabels := make([]string, 0, len(m.Labels))\n\t\tfor k := range m.Labels {\n\t\t\tkeysForLabels = append(keysForLabels, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\t\tfor iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Labels[string(keysForLabels[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForLabels[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForLabels[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.DeletionGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DeletionGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x50\n\t}\n\tif m.DeletionTimestamp != nil {\n\t\t{\n\t\t\tsize, err := m.DeletionTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.CreationTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Generation))\n\ti--\n\tdAtA[i] = 0x38\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.SelfLink)\n\tcopy(dAtA[i:], m.SelfLink)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SelfLink)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.GenerateName)\n\tcopy(dAtA[i:], m.GenerateName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GenerateName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *OwnerReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *OwnerReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *OwnerReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BlockOwnerDeletion != nil {\n\t\ti--\n\t\tif *m.BlockOwnerDeletion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.Controller != nil {\n\t\ti--\n\t\tif *m.Controller {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PartialObjectMetadata) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PartialObjectMetadata) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PartialObjectMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PartialObjectMetadataList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PartialObjectMetadataList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PartialObjectMetadataList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Patch) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Patch) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Patch) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PatchOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PatchOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PatchOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Force != nil {\n\t\ti--\n\t\tif *m.Force {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Preconditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Preconditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Preconditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResourceVersion != nil {\n\t\ti -= len(*m.ResourceVersion)\n\t\tcopy(dAtA[i:], *m.ResourceVersion)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.UID != nil {\n\t\ti -= len(*m.UID)\n\t\tcopy(dAtA[i:], *m.UID)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UID)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RootPaths) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RootPaths) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RootPaths) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Paths[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Paths[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Paths[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServerAddressByClientCIDR) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServerAddressByClientCIDR) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServerAddressByClientCIDR) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ServerAddress)\n\tcopy(dAtA[i:], m.ServerAddress)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServerAddress)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ClientCIDR)\n\tcopy(dAtA[i:], m.ClientCIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientCIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Status) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Status) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Status) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Code))\n\ti--\n\tdAtA[i] = 0x30\n\tif m.Details != nil {\n\t\t{\n\t\t\tsize, err := m.Details.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusCause) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusCause) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusCause) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Field)\n\tcopy(dAtA[i:], m.Field)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Field)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusDetails) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusDetails) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.RetryAfterSeconds))\n\ti--\n\tdAtA[i] = 0x28\n\tif len(m.Causes) > 0 {\n\t\tfor iNdEx := len(m.Causes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Causes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TableOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TableOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TableOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IncludeObject)\n\tcopy(dAtA[i:], m.IncludeObject)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IncludeObject)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Timestamp) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Timestamp) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Timestamp) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Nanos))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Seconds))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m Verbs) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m Verbs) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m Verbs) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WatchEvent) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WatchEvent) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *APIGroup) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Versions) > 0 {\n\t\tfor _, e := range m.Versions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.PreferredVersion.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor _, e := range m.ServerAddressByClientCIDRs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIGroupList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Groups) > 0 {\n\t\tfor _, e := range m.Groups {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Verbs != nil {\n\t\tl = m.Verbs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor _, s := range m.ShortNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SingularName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Categories) > 0 {\n\t\tfor _, s := range m.Categories {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageVersionHash)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *APIResourceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.GroupVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.APIResources) > 0 {\n\t\tfor _, e := range m.APIResources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIVersions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Versions) > 0 {\n\t\tfor _, s := range m.Versions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor _, e := range m.ServerAddressByClientCIDRs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ApplyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Condition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CreateOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeleteOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.GracePeriodSeconds))\n\t}\n\tif m.Preconditions != nil {\n\t\tl = m.Preconditions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.OrphanDependents != nil {\n\t\tn += 2\n\t}\n\tif m.PropagationPolicy != nil {\n\t\tl = len(*m.PropagationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Duration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Duration))\n\treturn n\n}\n\nfunc (m *FieldsV1) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GetOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionForDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.GroupVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LabelSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabels) > 0 {\n\t\tfor k, v := range m.MatchLabels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LabelSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *List) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SelfLink)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Continue)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RemainingItemCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RemainingItemCount))\n\t}\n\treturn n\n}\n\nfunc (m *ListOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.LabelSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Limit))\n\tl = len(m.Continue)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.ResourceVersionMatch)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SendInitialEvents != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ManagedFieldsEntry) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Manager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Time != nil {\n\t\tl = m.Time.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.FieldsType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldsV1 != nil {\n\t\tl = m.FieldsV1.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.GenerateName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SelfLink)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Generation))\n\tl = m.CreationTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeletionTimestamp != nil {\n\t\tl = m.DeletionTimestamp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DeletionGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DeletionGracePeriodSeconds))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.OwnerReferences) > 0 {\n\t\tfor _, e := range m.OwnerReferences {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Finalizers) > 0 {\n\t\tfor _, s := range m.Finalizers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ManagedFields) > 0 {\n\t\tfor _, e := range m.ManagedFields {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *OwnerReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Controller != nil {\n\t\tn += 2\n\t}\n\tif m.BlockOwnerDeletion != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *PartialObjectMetadata) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PartialObjectMetadataList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Patch) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *PatchOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Force != nil {\n\t\tn += 2\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Preconditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\tl = len(*m.UID)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceVersion != nil {\n\t\tl = len(*m.ResourceVersion)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RootPaths) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, s := range m.Paths {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServerAddressByClientCIDR) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ClientCIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ServerAddress)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Status) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Details != nil {\n\t\tl = m.Details.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Code))\n\treturn n\n}\n\nfunc (m *StatusCause) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Field)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatusDetails) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Causes) > 0 {\n\t\tfor _, e := range m.Causes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.RetryAfterSeconds))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TableOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IncludeObject)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Timestamp) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Seconds))\n\tn += 1 + sovGenerated(uint64(m.Nanos))\n\treturn n\n}\n\nfunc (m *TypeMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *UpdateOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m Verbs) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *WatchEvent) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Object.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *APIGroup) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVersions := \"[]GroupVersionForDiscovery{\"\n\tfor _, f := range this.Versions {\n\t\trepeatedStringForVersions += strings.Replace(strings.Replace(f.String(), \"GroupVersionForDiscovery\", \"GroupVersionForDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVersions += \"}\"\n\trepeatedStringForServerAddressByClientCIDRs := \"[]ServerAddressByClientCIDR{\"\n\tfor _, f := range this.ServerAddressByClientCIDRs {\n\t\trepeatedStringForServerAddressByClientCIDRs += strings.Replace(strings.Replace(f.String(), \"ServerAddressByClientCIDR\", \"ServerAddressByClientCIDR\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForServerAddressByClientCIDRs += \"}\"\n\ts := strings.Join([]string{`&APIGroup{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Versions:` + repeatedStringForVersions + `,`,\n\t\t`PreferredVersion:` + strings.Replace(strings.Replace(this.PreferredVersion.String(), \"GroupVersionForDiscovery\", \"GroupVersionForDiscovery\", 1), `&`, ``, 1) + `,`,\n\t\t`ServerAddressByClientCIDRs:` + repeatedStringForServerAddressByClientCIDRs + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIGroupList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForGroups := \"[]APIGroup{\"\n\tfor _, f := range this.Groups {\n\t\trepeatedStringForGroups += strings.Replace(strings.Replace(f.String(), \"APIGroup\", \"APIGroup\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForGroups += \"}\"\n\ts := strings.Join([]string{`&APIGroupList{`,\n\t\t`Groups:` + repeatedStringForGroups + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&APIResource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespaced:` + fmt.Sprintf(\"%v\", this.Namespaced) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Verbs:` + strings.Replace(fmt.Sprintf(\"%v\", this.Verbs), \"Verbs\", \"Verbs\", 1) + `,`,\n\t\t`ShortNames:` + fmt.Sprintf(\"%v\", this.ShortNames) + `,`,\n\t\t`SingularName:` + fmt.Sprintf(\"%v\", this.SingularName) + `,`,\n\t\t`Categories:` + fmt.Sprintf(\"%v\", this.Categories) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`StorageVersionHash:` + fmt.Sprintf(\"%v\", this.StorageVersionHash) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResourceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAPIResources := \"[]APIResource{\"\n\tfor _, f := range this.APIResources {\n\t\trepeatedStringForAPIResources += strings.Replace(strings.Replace(f.String(), \"APIResource\", \"APIResource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAPIResources += \"}\"\n\ts := strings.Join([]string{`&APIResourceList{`,\n\t\t`GroupVersion:` + fmt.Sprintf(\"%v\", this.GroupVersion) + `,`,\n\t\t`APIResources:` + repeatedStringForAPIResources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ApplyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ApplyOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`Force:` + fmt.Sprintf(\"%v\", this.Force) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Condition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Condition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeleteOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeleteOptions{`,\n\t\t`GracePeriodSeconds:` + valueToStringGenerated(this.GracePeriodSeconds) + `,`,\n\t\t`Preconditions:` + strings.Replace(this.Preconditions.String(), \"Preconditions\", \"Preconditions\", 1) + `,`,\n\t\t`OrphanDependents:` + valueToStringGenerated(this.OrphanDependents) + `,`,\n\t\t`PropagationPolicy:` + valueToStringGenerated(this.PropagationPolicy) + `,`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Duration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Duration{`,\n\t\t`Duration:` + fmt.Sprintf(\"%v\", this.Duration) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetOptions{`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupVersionForDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupVersionForDiscovery{`,\n\t\t`GroupVersion:` + fmt.Sprintf(\"%v\", this.GroupVersion) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LabelSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]LabelSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"LabelSelectorRequirement\", \"LabelSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\tkeysForMatchLabels := make([]string, 0, len(this.MatchLabels))\n\tfor k := range this.MatchLabels {\n\t\tkeysForMatchLabels = append(keysForMatchLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMatchLabels)\n\tmapStringForMatchLabels := \"map[string]string{\"\n\tfor _, k := range keysForMatchLabels {\n\t\tmapStringForMatchLabels += fmt.Sprintf(\"%v: %v,\", k, this.MatchLabels[k])\n\t}\n\tmapStringForMatchLabels += \"}\"\n\ts := strings.Join([]string{`&LabelSelector{`,\n\t\t`MatchLabels:` + mapStringForMatchLabels + `,`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LabelSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LabelSelectorRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *List) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RawExtension{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&List{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListMeta{`,\n\t\t`SelfLink:` + fmt.Sprintf(\"%v\", this.SelfLink) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`Continue:` + fmt.Sprintf(\"%v\", this.Continue) + `,`,\n\t\t`RemainingItemCount:` + valueToStringGenerated(this.RemainingItemCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListOptions{`,\n\t\t`LabelSelector:` + fmt.Sprintf(\"%v\", this.LabelSelector) + `,`,\n\t\t`FieldSelector:` + fmt.Sprintf(\"%v\", this.FieldSelector) + `,`,\n\t\t`Watch:` + fmt.Sprintf(\"%v\", this.Watch) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`Limit:` + fmt.Sprintf(\"%v\", this.Limit) + `,`,\n\t\t`Continue:` + fmt.Sprintf(\"%v\", this.Continue) + `,`,\n\t\t`AllowWatchBookmarks:` + fmt.Sprintf(\"%v\", this.AllowWatchBookmarks) + `,`,\n\t\t`ResourceVersionMatch:` + fmt.Sprintf(\"%v\", this.ResourceVersionMatch) + `,`,\n\t\t`SendInitialEvents:` + valueToStringGenerated(this.SendInitialEvents) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ManagedFieldsEntry) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ManagedFieldsEntry{`,\n\t\t`Manager:` + fmt.Sprintf(\"%v\", this.Manager) + `,`,\n\t\t`Operation:` + fmt.Sprintf(\"%v\", this.Operation) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Time:` + strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"Time\", 1) + `,`,\n\t\t`FieldsType:` + fmt.Sprintf(\"%v\", this.FieldsType) + `,`,\n\t\t`FieldsV1:` + strings.Replace(fmt.Sprintf(\"%v\", this.FieldsV1), \"FieldsV1\", \"FieldsV1\", 1) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOwnerReferences := \"[]OwnerReference{\"\n\tfor _, f := range this.OwnerReferences {\n\t\trepeatedStringForOwnerReferences += strings.Replace(strings.Replace(f.String(), \"OwnerReference\", \"OwnerReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOwnerReferences += \"}\"\n\trepeatedStringForManagedFields := \"[]ManagedFieldsEntry{\"\n\tfor _, f := range this.ManagedFields {\n\t\trepeatedStringForManagedFields += strings.Replace(strings.Replace(f.String(), \"ManagedFieldsEntry\", \"ManagedFieldsEntry\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForManagedFields += \"}\"\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ObjectMeta{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`GenerateName:` + fmt.Sprintf(\"%v\", this.GenerateName) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`SelfLink:` + fmt.Sprintf(\"%v\", this.SelfLink) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`Generation:` + fmt.Sprintf(\"%v\", this.Generation) + `,`,\n\t\t`CreationTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CreationTimestamp), \"Time\", \"Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeletionTimestamp:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeletionTimestamp), \"Time\", \"Time\", 1) + `,`,\n\t\t`DeletionGracePeriodSeconds:` + valueToStringGenerated(this.DeletionGracePeriodSeconds) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`OwnerReferences:` + repeatedStringForOwnerReferences + `,`,\n\t\t`Finalizers:` + fmt.Sprintf(\"%v\", this.Finalizers) + `,`,\n\t\t`ManagedFields:` + repeatedStringForManagedFields + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *OwnerReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&OwnerReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Controller:` + valueToStringGenerated(this.Controller) + `,`,\n\t\t`BlockOwnerDeletion:` + valueToStringGenerated(this.BlockOwnerDeletion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PartialObjectMetadata) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PartialObjectMetadata{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), \"ObjectMeta\", \"ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PartialObjectMetadataList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PartialObjectMetadata{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PartialObjectMetadata\", \"PartialObjectMetadata\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PartialObjectMetadataList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Patch) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Patch{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PatchOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PatchOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`Force:` + valueToStringGenerated(this.Force) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Preconditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Preconditions{`,\n\t\t`UID:` + valueToStringGenerated(this.UID) + `,`,\n\t\t`ResourceVersion:` + valueToStringGenerated(this.ResourceVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RootPaths) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RootPaths{`,\n\t\t`Paths:` + fmt.Sprintf(\"%v\", this.Paths) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServerAddressByClientCIDR) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServerAddressByClientCIDR{`,\n\t\t`ClientCIDR:` + fmt.Sprintf(\"%v\", this.ClientCIDR) + `,`,\n\t\t`ServerAddress:` + fmt.Sprintf(\"%v\", this.ServerAddress) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Status) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Status{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Details:` + strings.Replace(this.Details.String(), \"StatusDetails\", \"StatusDetails\", 1) + `,`,\n\t\t`Code:` + fmt.Sprintf(\"%v\", this.Code) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusCause) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatusCause{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Field:` + fmt.Sprintf(\"%v\", this.Field) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusDetails) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCauses := \"[]StatusCause{\"\n\tfor _, f := range this.Causes {\n\t\trepeatedStringForCauses += strings.Replace(strings.Replace(f.String(), \"StatusCause\", \"StatusCause\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCauses += \"}\"\n\ts := strings.Join([]string{`&StatusDetails{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Causes:` + repeatedStringForCauses + `,`,\n\t\t`RetryAfterSeconds:` + fmt.Sprintf(\"%v\", this.RetryAfterSeconds) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TableOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TableOptions{`,\n\t\t`IncludeObject:` + fmt.Sprintf(\"%v\", this.IncludeObject) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Timestamp) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Timestamp{`,\n\t\t`Seconds:` + fmt.Sprintf(\"%v\", this.Seconds) + `,`,\n\t\t`Nanos:` + fmt.Sprintf(\"%v\", this.Nanos) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypeMeta{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UpdateOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WatchEvent) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WatchEvent{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Object), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *APIGroup) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroup: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroup: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, GroupVersionForDiscovery{})\n\t\t\tif err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredVersion\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PreferredVersion.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddressByClientCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddressByClientCIDRs = append(m.ServerAddressByClientCIDRs, ServerAddressByClientCIDR{})\n\t\t\tif err := m.ServerAddressByClientCIDRs[len(m.ServerAddressByClientCIDRs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIGroupList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, APIGroup{})\n\t\t\tif err := m.Groups[len(m.Groups)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaced\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Namespaced = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Verbs == nil {\n\t\t\t\tm.Verbs = Verbs{}\n\t\t\t}\n\t\t\tif err := m.Verbs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShortNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShortNames = append(m.ShortNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SingularName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SingularName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Categories\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Categories = append(m.Categories, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageVersionHash\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageVersionHash = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResourceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GroupVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GroupVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIResources = append(m.APIResources, APIResource{})\n\t\t\tif err := m.APIResources[len(m.APIResources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIVersions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddressByClientCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddressByClientCIDRs = append(m.ServerAddressByClientCIDRs, ServerAddressByClientCIDR{})\n\t\t\tif err := m.ServerAddressByClientCIDRs[len(m.ServerAddressByClientCIDRs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ApplyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Force\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Force = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Condition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Condition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Condition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeleteOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeleteOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeleteOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GracePeriodSeconds = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Preconditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Preconditions == nil {\n\t\t\t\tm.Preconditions = &Preconditions{}\n\t\t\t}\n\t\t\tif err := m.Preconditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OrphanDependents\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.OrphanDependents = &b\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PropagationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := DeletionPropagation(dAtA[iNdEx:postIndex])\n\t\t\tm.PropagationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Duration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Duration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Duration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Duration\", wireType)\n\t\t\t}\n\t\t\tm.Duration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Duration |= time.Duration(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FieldsV1) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FieldsV1: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FieldsV1: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionForDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionForDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionForDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GroupVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GroupVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LabelSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchLabels == nil {\n\t\t\t\tm.MatchLabels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MatchLabels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, LabelSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LabelSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = LabelSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *List) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: List: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: List: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, runtime.RawExtension{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelfLink\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SelfLink = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Continue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Continue = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RemainingItemCount\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RemainingItemCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LabelSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Watch\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Watch = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limit\", wireType)\n\t\t\t}\n\t\t\tm.Limit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Limit |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Continue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Continue = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowWatchBookmarks\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllowWatchBookmarks = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersionMatch\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersionMatch = ResourceVersionMatch(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SendInitialEvents\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SendInitialEvents = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ManagedFieldsEntry) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ManagedFieldsEntry: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ManagedFieldsEntry: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Manager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Manager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operation = ManagedFieldsOperationType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Time == nil {\n\t\t\t\tm.Time = &Time{}\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldsType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldsType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldsV1\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldsV1 == nil {\n\t\t\t\tm.FieldsV1 = &FieldsV1{}\n\t\t\t}\n\t\t\tif err := m.FieldsV1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GenerateName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GenerateName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelfLink\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SelfLink = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Generation\", wireType)\n\t\t\t}\n\t\t\tm.Generation = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Generation |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreationTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CreationTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeletionTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeletionTimestamp == nil {\n\t\t\t\tm.DeletionTimestamp = &Time{}\n\t\t\t}\n\t\t\tif err := m.DeletionTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeletionGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DeletionGracePeriodSeconds = &v\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OwnerReferences\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OwnerReferences = append(m.OwnerReferences, OwnerReference{})\n\t\t\tif err := m.OwnerReferences[len(m.OwnerReferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Finalizers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Finalizers = append(m.Finalizers, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ManagedFields\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ManagedFields = append(m.ManagedFields, ManagedFieldsEntry{})\n\t\t\tif err := m.ManagedFields[len(m.ManagedFields)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *OwnerReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: OwnerReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: OwnerReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Controller = &b\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BlockOwnerDeletion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.BlockOwnerDeletion = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PartialObjectMetadata) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadata: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadata: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PartialObjectMetadata{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Patch) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Patch: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Patch: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PatchOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PatchOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PatchOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Force\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Force = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Preconditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tm.UID = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceVersion = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RootPaths) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RootPaths: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RootPaths: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServerAddressByClientCIDR: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServerAddressByClientCIDR: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientCIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClientCIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddress\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddress = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Status) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Status: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Status: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Details\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Details == nil {\n\t\t\t\tm.Details = &StatusDetails{}\n\t\t\t}\n\t\t\tif err := m.Details.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Code\", wireType)\n\t\t\t}\n\t\t\tm.Code = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Code |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusCause) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusCause: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusCause: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = CauseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Field\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Field = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusDetails) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusDetails: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusDetails: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Causes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Causes = append(m.Causes, StatusCause{})\n\t\t\tif err := m.Causes[len(m.Causes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RetryAfterSeconds\", wireType)\n\t\t\t}\n\t\t\tm.RetryAfterSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.RetryAfterSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TableOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TableOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TableOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IncludeObject\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IncludeObject = IncludeObjectPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Timestamp) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Timestamp: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Timestamp: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Seconds\", wireType)\n\t\t\t}\n\t\t\tm.Seconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Seconds |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nanos\", wireType)\n\t\t\t}\n\t\t\tm.Nanos = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Nanos |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Verbs) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Verbs: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Verbs: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WatchEvent) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WatchEvent: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WatchEvent: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.apis.meta.v1;\n\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/apis/meta/v1\";\n\n// APIGroup contains the name, the supported versions, and the preferred version\n// of a group.\nmessage APIGroup {\n  // name is the name of the group.\n  optional string name = 1;\n\n  // versions are the versions supported in this group.\n  repeated GroupVersionForDiscovery versions = 2;\n\n  // preferredVersion is the version preferred by the API server, which\n  // probably is the storage version.\n  // +optional\n  optional GroupVersionForDiscovery preferredVersion = 3;\n\n  // a map of client CIDR to server address that is serving this group.\n  // This is to help clients reach servers in the most network-efficient way possible.\n  // Clients can use the appropriate server address as per the CIDR that they match.\n  // In case of multiple matches, clients should use the longest matching CIDR.\n  // The server returns only those CIDRs that it thinks that the client can match.\n  // For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n  // Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n  // +optional\n  repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;\n}\n\n// APIGroupList is a list of APIGroup, to allow clients to discover the API at\n// /apis.\nmessage APIGroupList {\n  // groups is a list of APIGroup.\n  repeated APIGroup groups = 1;\n}\n\n// APIResource specifies the name of a resource and whether it is namespaced.\nmessage APIResource {\n  // name is the plural name of the resource.\n  optional string name = 1;\n\n  // singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n  // The singularName is more correct for reporting status on a single item and both singular and plural are allowed\n  // from the kubectl CLI interface.\n  optional string singularName = 6;\n\n  // namespaced indicates if a resource is namespaced or not.\n  optional bool namespaced = 2;\n\n  // group is the preferred group of the resource.  Empty implies the group of the containing resource list.\n  // For subresources, this may have a different value, for example: Scale\".\n  optional string group = 8;\n\n  // version is the preferred version of the resource.  Empty implies the version of the containing resource list\n  // For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".\n  optional string version = 9;\n\n  // kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\n  optional string kind = 3;\n\n  // verbs is a list of supported kube verbs (this includes get, list, watch, create,\n  // update, patch, delete, deletecollection, and proxy)\n  optional Verbs verbs = 4;\n\n  // shortNames is a list of suggested short names of the resource.\n  repeated string shortNames = 5;\n\n  // categories is a list of the grouped resources this resource belongs to (e.g. 'all')\n  repeated string categories = 7;\n\n  // The hash value of the storage version, the version this resource is\n  // converted to when written to the data store. Value must be treated\n  // as opaque by clients. Only equality comparison on the value is valid.\n  // This is an alpha feature and may change or be removed in the future.\n  // The field is populated by the apiserver only if the\n  // StorageVersionHash feature gate is enabled.\n  // This field will remain optional even if it graduates.\n  // +optional\n  optional string storageVersionHash = 10;\n}\n\n// APIResourceList is a list of APIResource, it is used to expose the name of the\n// resources supported in a specific group and version, and if the resource\n// is namespaced.\nmessage APIResourceList {\n  // groupVersion is the group and version this APIResourceList is for.\n  optional string groupVersion = 1;\n\n  // resources contains the name of the resources and if they are namespaced.\n  repeated APIResource resources = 2;\n}\n\n// APIVersions lists the versions that are available, to allow clients to\n// discover the API at /api, which is the root path of the legacy v1 API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage APIVersions {\n  // versions are the api versions that are available.\n  repeated string versions = 1;\n\n  // a map of client CIDR to server address that is serving this group.\n  // This is to help clients reach servers in the most network-efficient way possible.\n  // Clients can use the appropriate server address as per the CIDR that they match.\n  // In case of multiple matches, clients should use the longest matching CIDR.\n  // The server returns only those CIDRs that it thinks that the client can match.\n  // For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n  // Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n  repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;\n}\n\n// ApplyOptions may be provided when applying an API object.\n// FieldManager is required for apply requests.\n// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation\n// that speaks specifically to how the options fields relate to apply.\nmessage ApplyOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  repeated string dryRun = 1;\n\n  // Force is going to \"force\" Apply requests. It means user will\n  // re-acquire conflicting fields owned by other people.\n  optional bool force = 2;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint. This\n  // field is required.\n  optional string fieldManager = 3;\n}\n\n// Condition contains details for one aspect of the current state of this API Resource.\n// ---\n// This struct is intended for direct use as an array at the field path .status.conditions.  For example,\n//\n// \ttype FooStatus struct{\n// \t    // Represents the observations of a foo's current state.\n// \t    // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n// \t    // +patchMergeKey=type\n// \t    // +patchStrategy=merge\n// \t    // +listType=map\n// \t    // +listMapKey=type\n// \t    Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n//\n// \t    // other fields\n// \t}\nmessage Condition {\n  // type of condition in CamelCase or in foo.example.com/CamelCase.\n  // ---\n  // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\n  // useful (see .node.status.conditions), the ability to deconflict is important.\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string type = 1;\n\n  // status of the condition, one of True, False, Unknown.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Enum=True;False;Unknown\n  optional string status = 2;\n\n  // observedGeneration represents the .metadata.generation that the condition was set based upon.\n  // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\n  // with respect to the current state of the instance.\n  // +optional\n  // +kubebuilder:validation:Minimum=0\n  optional int64 observedGeneration = 3;\n\n  // lastTransitionTime is the last time the condition transitioned from one status to another.\n  // This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Type=string\n  // +kubebuilder:validation:Format=date-time\n  optional Time lastTransitionTime = 4;\n\n  // reason contains a programmatic identifier indicating the reason for the condition's last transition.\n  // Producers of specific condition types may define expected values and meanings for this field,\n  // and whether the values are considered a guaranteed API.\n  // The value should be a CamelCase string.\n  // This field may not be empty.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:MaxLength=1024\n  // +kubebuilder:validation:MinLength=1\n  // +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`\n  optional string reason = 5;\n\n  // message is a human readable message indicating details about the transition.\n  // This may be an empty string.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:MaxLength=32768\n  optional string message = 6;\n}\n\n// CreateOptions may be provided when creating an API object.\nmessage CreateOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  repeated string dryRun = 1;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint.\n  // +optional\n  optional string fieldManager = 3;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 4;\n}\n\n// DeleteOptions may be provided when deleting an API object.\nmessage DeleteOptions {\n  // The duration in seconds before the object should be deleted. Value must be non-negative integer.\n  // The value zero indicates delete immediately. If this value is nil, the default grace period for the\n  // specified type will be used.\n  // Defaults to a per object value if not specified. zero means delete immediately.\n  // +optional\n  optional int64 gracePeriodSeconds = 1;\n\n  // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be\n  // returned.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional Preconditions preconditions = 2;\n\n  // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.\n  // Should the dependent objects be orphaned. If true/false, the \"orphan\"\n  // finalizer will be added to/removed from the object's finalizers list.\n  // Either this field or PropagationPolicy may be set, but not both.\n  // +optional\n  optional bool orphanDependents = 3;\n\n  // Whether and how garbage collection will be performed.\n  // Either this field or OrphanDependents may be set, but not both.\n  // The default policy is decided by the existing finalizer set in the\n  // metadata.finalizers and the resource-specific default policy.\n  // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -\n  // allow the garbage collector to delete the dependents in the background;\n  // 'Foreground' - a cascading policy that deletes all dependents in the\n  // foreground.\n  // +optional\n  optional string propagationPolicy = 4;\n\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  repeated string dryRun = 5;\n}\n\n// Duration is a wrapper around time.Duration which supports correct\n// marshaling to YAML and JSON. In particular, it marshals into strings, which\n// can be used as map keys in json.\nmessage Duration {\n  optional int64 duration = 1;\n}\n\n// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n//\n// Each key is either a '.' representing the field itself, and will always map to an empty set,\n// or a string representing a sub-field or item. The string will follow one of these four formats:\n// 'f:<name>', where <name> is the name of a field in a struct, or key in a map\n// 'v:<value>', where <value> is the exact json formatted value of a list item\n// 'i:<index>', where <index> is position of a item in a list\n// 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values\n// If a key maps to an empty Fields value, the field that key represents is part of the set.\n//\n// The exact format is defined in sigs.k8s.io/structured-merge-diff\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage FieldsV1 {\n  // Raw is the underlying serialization of this object.\n  optional bytes Raw = 1;\n}\n\n// GetOptions is the standard query options to the standard REST get call.\nmessage GetOptions {\n  // resourceVersion sets a constraint on what resource versions a request may be served from.\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersion = 1;\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupKind {\n  optional string group = 1;\n\n  optional string kind = 2;\n}\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupResource {\n  optional string group = 1;\n\n  optional string resource = 2;\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersion {\n  optional string group = 1;\n\n  optional string version = 2;\n}\n\n// GroupVersion contains the \"group/version\" and \"version\" string of a version.\n// It is made a struct to keep extensibility.\nmessage GroupVersionForDiscovery {\n  // groupVersion specifies the API group and version in the form \"group/version\"\n  optional string groupVersion = 1;\n\n  // version specifies the version in the form of \"version\". This is to save\n  // the clients the trouble of splitting the GroupVersion.\n  optional string version = 2;\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersionKind {\n  optional string group = 1;\n\n  optional string version = 2;\n\n  optional string kind = 3;\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersionResource {\n  optional string group = 1;\n\n  optional string version = 2;\n\n  optional string resource = 3;\n}\n\n// A label selector is a label query over a set of resources. The result of matchLabels and\n// matchExpressions are ANDed. An empty label selector matches all objects. A null\n// label selector matches no objects.\n// +structType=atomic\nmessage LabelSelector {\n  // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\n  // map is equivalent to an element of matchExpressions, whose key field is \"key\", the\n  // operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\n  // +optional\n  map<string, string> matchLabels = 1;\n\n  // matchExpressions is a list of label selector requirements. The requirements are ANDed.\n  // +optional\n  repeated LabelSelectorRequirement matchExpressions = 2;\n}\n\n// A label selector requirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\nmessage LabelSelectorRequirement {\n  // key is the label key that the selector applies to.\n  // +patchMergeKey=key\n  // +patchStrategy=merge\n  optional string key = 1;\n\n  // operator represents a key's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists and DoesNotExist.\n  optional string operator = 2;\n\n  // values is an array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty. This array is replaced during a strategic\n  // merge patch.\n  // +optional\n  repeated string values = 3;\n}\n\n// List holds a list of objects, which may not be known by the server.\nmessage List {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // List of objects\n  repeated k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;\n}\n\n// ListMeta describes metadata that synthetic resources must have, including lists and\n// various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\nmessage ListMeta {\n  // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n  // +optional\n  optional string selfLink = 1;\n\n  // String that identifies the server's internal version of this object that\n  // can be used by clients to determine when objects have changed.\n  // Value must be treated as opaque by clients and passed unmodified back to the server.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 2;\n\n  // continue may be set if the user set a limit on the number of items returned, and indicates that\n  // the server has more data available. The value is opaque and may be used to issue another request\n  // to the endpoint that served this list to retrieve the next set of available objects. Continuing a\n  // consistent list may not be possible if the server configuration has changed or more than a few\n  // minutes have passed. The resourceVersion field returned when using this continue value will be\n  // identical to the value in the first response, unless you have received this token from an error\n  // message.\n  optional string continue = 3;\n\n  // remainingItemCount is the number of subsequent items in the list which are not included in this\n  // list response. If the list request contained label or field selectors, then the number of\n  // remaining items is unknown and the field will be left unset and omitted during serialization.\n  // If the list is complete (either because it is not chunking or because this is the last chunk),\n  // then there are no more remaining items and this field will be left unset and omitted during\n  // serialization.\n  // Servers older than v1.15 do not set this field.\n  // The intended use of the remainingItemCount is *estimating* the size of a collection. Clients\n  // should not rely on the remainingItemCount to be set or to be exact.\n  // +optional\n  optional int64 remainingItemCount = 4;\n}\n\n// ListOptions is the query options to a standard REST list call.\nmessage ListOptions {\n  // A selector to restrict the list of returned objects by their labels.\n  // Defaults to everything.\n  // +optional\n  optional string labelSelector = 1;\n\n  // A selector to restrict the list of returned objects by their fields.\n  // Defaults to everything.\n  // +optional\n  optional string fieldSelector = 2;\n\n  // Watch for changes to the described resources and return them as a stream of\n  // add, update, and remove notifications. Specify resourceVersion.\n  // +optional\n  optional bool watch = 3;\n\n  // allowWatchBookmarks requests watch events with type \"BOOKMARK\".\n  // Servers that do not implement bookmarks may ignore this flag and\n  // bookmarks are sent at the server's discretion. Clients should not\n  // assume bookmarks are returned at any specific interval, nor may they\n  // assume the server will send any BOOKMARK event during a session.\n  // If this is not a watch, this field is ignored.\n  // +optional\n  optional bool allowWatchBookmarks = 9;\n\n  // resourceVersion sets a constraint on what resource versions a request may be served from.\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersion = 4;\n\n  // resourceVersionMatch determines how resourceVersion is applied to list calls.\n  // It is highly recommended that resourceVersionMatch be set for list calls where\n  // resourceVersion is set\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersionMatch = 10;\n\n  // Timeout for the list/watch call.\n  // This limits the duration of the call, regardless of any activity or inactivity.\n  // +optional\n  optional int64 timeoutSeconds = 5;\n\n  // limit is a maximum number of responses to return for a list call. If more items exist, the\n  // server will set the `continue` field on the list metadata to a value that can be used with the\n  // same initial query to retrieve the next set of results. Setting a limit may return fewer than\n  // the requested amount of items (up to zero items) in the event all requested objects are\n  // filtered out and clients should only use the presence of the continue field to determine whether\n  // more results are available. Servers may choose not to support the limit argument and will return\n  // all of the available results. If limit is specified and the continue field is empty, clients may\n  // assume that no more results are available. This field is not supported if watch is true.\n  //\n  // The server guarantees that the objects returned when using continue will be identical to issuing\n  // a single list call without a limit - that is, no objects created, modified, or deleted after the\n  // first request is issued will be included in any subsequent continued requests. This is sometimes\n  // referred to as a consistent snapshot, and ensures that a client that is using limit to receive\n  // smaller chunks of a very large result can ensure they see all possible objects. If objects are\n  // updated during a chunked list the version of the object that was present at the time the first list\n  // result was calculated is returned.\n  optional int64 limit = 7;\n\n  // The continue option should be set when retrieving more results from the server. Since this value is\n  // server defined, clients may only use the continue value from a previous query result with identical\n  // query parameters (except for the value of continue) and the server may reject a continue value it\n  // does not recognize. If the specified continue value is no longer valid whether due to expiration\n  // (generally five to fifteen minutes) or a configuration change on the server, the server will\n  // respond with a 410 ResourceExpired error together with a continue token. If the client needs a\n  // consistent list, it must restart their list without the continue field. Otherwise, the client may\n  // send another list request with the token received with the 410 error, the server will respond with\n  // a list starting from the next key, but from the latest snapshot, which is inconsistent from the\n  // previous list results - objects that are created, modified, or deleted after the first list request\n  // will be included in the response, as long as their keys are after the \"next key\".\n  //\n  // This field is not supported when watch is true. Clients may start a watch from the last\n  // resourceVersion value returned by the server and not miss any modifications.\n  optional string continue = 8;\n\n  // `sendInitialEvents=true` may be set together with `watch=true`.\n  // In that case, the watch stream will begin with synthetic events to\n  // produce the current state of objects in the collection. Once all such\n  // events have been sent, a synthetic \"Bookmark\" event  will be sent.\n  // The bookmark will report the ResourceVersion (RV) corresponding to the\n  // set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation.\n  // Afterwards, the watch stream will proceed as usual, sending watch events\n  // corresponding to changes (subsequent to the RV) to objects watched.\n  //\n  // When `sendInitialEvents` option is set, we require `resourceVersionMatch`\n  // option to also be set. The semantic of the watch request is as following:\n  // - `resourceVersionMatch` = NotOlderThan\n  //   is interpreted as \"data at least as new as the provided `resourceVersion`\"\n  //   and the bookmark event is send when the state is synced\n  //   to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n  //   If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n  //   bookmark event is send when the state is synced at least to the moment\n  //   when request started being processed.\n  // - `resourceVersionMatch` set to any other value or unset\n  //   Invalid error is returned.\n  //\n  // Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\n  // compatibility reasons) and to false otherwise.\n  // +optional\n  optional bool sendInitialEvents = 11;\n}\n\n// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\n// that the fieldset applies to.\nmessage ManagedFieldsEntry {\n  // Manager is an identifier of the workflow managing these fields.\n  optional string manager = 1;\n\n  // Operation is the type of operation which lead to this ManagedFieldsEntry being created.\n  // The only valid values for this field are 'Apply' and 'Update'.\n  optional string operation = 2;\n\n  // APIVersion defines the version of this resource that this field set\n  // applies to. The format is \"group/version\" just like the top-level\n  // APIVersion field. It is necessary to track the version of a field\n  // set because it cannot be automatically converted.\n  optional string apiVersion = 3;\n\n  // Time is the timestamp of when the ManagedFields entry was added. The\n  // timestamp will also be updated if a field is added, the manager\n  // changes any of the owned fields value or removes a field. The\n  // timestamp does not update when a field is removed from the entry\n  // because another manager took it over.\n  // +optional\n  optional Time time = 4;\n\n  // FieldsType is the discriminator for the different fields format and version.\n  // There is currently only one possible value: \"FieldsV1\"\n  optional string fieldsType = 6;\n\n  // FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n  // +optional\n  optional FieldsV1 fieldsV1 = 7;\n\n  // Subresource is the name of the subresource used to update that object, or\n  // empty string if the object was updated through the main resource. The\n  // value of this field is used to distinguish between managers, even if they\n  // share the same name. For example, a status update will be distinct from a\n  // regular update using the same manager name.\n  // Note that the APIVersion field is not related to the Subresource field and\n  // it always corresponds to the version of the main resource.\n  optional string subresource = 8;\n}\n\n// MicroTime is version of Time with microsecond level precision.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage MicroTime {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// ObjectMeta is metadata that all persisted resources must have, which includes all objects\n// users must create.\nmessage ObjectMeta {\n  // Name must be unique within a namespace. Is required when creating resources, although\n  // some resources may allow a client to request the generation of an appropriate name\n  // automatically. Name is primarily intended for creation idempotence and configuration\n  // definition.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n  // +optional\n  optional string name = 1;\n\n  // GenerateName is an optional prefix, used by the server, to generate a unique\n  // name ONLY IF the Name field has not been provided.\n  // If this field is used, the name returned to the client will be different\n  // than the name passed. This value will also be combined with a unique suffix.\n  // The provided value has the same validation rules as the Name field,\n  // and may be truncated by the length of the suffix required to make the value\n  // unique on the server.\n  //\n  // If this field is specified and the generated name exists, the server will return a 409.\n  //\n  // Applied only if Name is not specified.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n  // +optional\n  optional string generateName = 2;\n\n  // Namespace defines the space within which each name must be unique. An empty namespace is\n  // equivalent to the \"default\" namespace, but \"default\" is the canonical representation.\n  // Not all objects are required to be scoped to a namespace - the value of this field for\n  // those objects will be empty.\n  //\n  // Must be a DNS_LABEL.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\n  // +optional\n  optional string namespace = 3;\n\n  // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n  // +optional\n  optional string selfLink = 4;\n\n  // UID is the unique in time and space value for this object. It is typically generated by\n  // the server on successful creation of a resource and is not allowed to change on PUT\n  // operations.\n  //\n  // Populated by the system.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  // +optional\n  optional string uid = 5;\n\n  // An opaque value that represents the internal version of this object that can\n  // be used by clients to determine when objects have changed. May be used for optimistic\n  // concurrency, change detection, and the watch operation on a resource or set of resources.\n  // Clients must treat these values as opaque and passed unmodified back to the server.\n  // They may only be valid for a particular resource or set of resources.\n  //\n  // Populated by the system.\n  // Read-only.\n  // Value must be treated as opaque by clients and .\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 6;\n\n  // A sequence number representing a specific generation of the desired state.\n  // Populated by the system. Read-only.\n  // +optional\n  optional int64 generation = 7;\n\n  // CreationTimestamp is a timestamp representing the server time when this object was\n  // created. It is not guaranteed to be set in happens-before order across separate operations.\n  // Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n  //\n  // Populated by the system.\n  // Read-only.\n  // Null for lists.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional Time creationTimestamp = 8;\n\n  // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\n  // field is set by the server when a graceful deletion is requested by the user, and is not\n  // directly settable by a client. The resource is expected to be deleted (no longer visible\n  // from resource lists, and not reachable by name) after the time in this field, once the\n  // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\n  // Once the deletionTimestamp is set, this value may not be unset or be set further into the\n  // future, although it may be shortened or the resource may be deleted prior to this time.\n  // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\n  // by sending a graceful termination signal to the containers in the pod. After that 30 seconds,\n  // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\n  // remove the pod from the API. In the presence of network partitions, this object may still\n  // exist after this timestamp, until an administrator or automated process can determine the\n  // resource is fully terminated.\n  // If not set, graceful deletion of the object has not been requested.\n  //\n  // Populated by the system when a graceful deletion is requested.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional Time deletionTimestamp = 9;\n\n  // Number of seconds allowed for this object to gracefully terminate before\n  // it will be removed from the system. Only set when deletionTimestamp is also set.\n  // May only be shortened.\n  // Read-only.\n  // +optional\n  optional int64 deletionGracePeriodSeconds = 10;\n\n  // Map of string keys and values that can be used to organize and categorize\n  // (scope and select) objects. May match selectors of replication controllers\n  // and services.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // +optional\n  map<string, string> labels = 11;\n\n  // Annotations is an unstructured key value map stored with a resource that may be\n  // set by external tools to store and retrieve arbitrary metadata. They are not\n  // queryable and should be preserved when modifying objects.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n  // +optional\n  map<string, string> annotations = 12;\n\n  // List of objects depended by this object. If ALL objects in the list have\n  // been deleted, this object will be garbage collected. If this object is managed by a controller,\n  // then an entry in this list will point to this controller, with the controller field set to true.\n  // There cannot be more than one managing controller.\n  // +optional\n  // +patchMergeKey=uid\n  // +patchStrategy=merge\n  repeated OwnerReference ownerReferences = 13;\n\n  // Must be empty before the object is deleted from the registry. Each entry\n  // is an identifier for the responsible component that will remove the entry\n  // from the list. If the deletionTimestamp of the object is non-nil, entries\n  // in this list can only be removed.\n  // Finalizers may be processed and removed in any order.  Order is NOT enforced\n  // because it introduces significant risk of stuck finalizers.\n  // finalizers is a shared field, any actor with permission can reorder it.\n  // If the finalizer list is processed in order, then this can lead to a situation\n  // in which the component responsible for the first finalizer in the list is\n  // waiting for a signal (field value, external system, or other) produced by a\n  // component responsible for a finalizer later in the list, resulting in a deadlock.\n  // Without enforced ordering finalizers are free to order amongst themselves and\n  // are not vulnerable to ordering changes in the list.\n  // +optional\n  // +patchStrategy=merge\n  repeated string finalizers = 14;\n\n  // ManagedFields maps workflow-id and version to the set of fields\n  // that are managed by that workflow. This is mostly for internal\n  // housekeeping, and users typically shouldn't need to set or\n  // understand this field. A workflow can be the user's name, a\n  // controller's name, or the name of a specific apply path like\n  // \"ci-cd\". The set of fields is always in the version that the\n  // workflow used when modifying the object.\n  //\n  // +optional\n  repeated ManagedFieldsEntry managedFields = 17;\n}\n\n// OwnerReference contains enough information to let you identify an owning\n// object. An owning object must be in the same namespace as the dependent, or\n// be cluster-scoped, so there is no namespace field.\n// +structType=atomic\nmessage OwnerReference {\n  // API version of the referent.\n  optional string apiVersion = 5;\n\n  // Kind of the referent.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // Name of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n  optional string name = 3;\n\n  // UID of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  optional string uid = 4;\n\n  // If true, this reference points to the managing controller.\n  // +optional\n  optional bool controller = 6;\n\n  // If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\n  // the owner cannot be deleted from the key-value store until this\n  // reference is removed.\n  // See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\n  // for how the garbage collector interacts with this field and enforces the foreground deletion.\n  // Defaults to false.\n  // To set this field, a user needs \"delete\" permission of the owner,\n  // otherwise 422 (Unprocessable Entity) will be returned.\n  // +optional\n  optional bool blockOwnerDeletion = 7;\n}\n\n// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients\n// to get access to a particular ObjectMeta schema without knowing the details of the version.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage PartialObjectMetadata {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional ObjectMeta metadata = 1;\n}\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage PartialObjectMetadataList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // items contains each of the included items.\n  repeated PartialObjectMetadata items = 2;\n}\n\n// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\nmessage Patch {\n}\n\n// PatchOptions may be provided when patching an API object.\n// PatchOptions is meant to be a superset of UpdateOptions.\nmessage PatchOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  repeated string dryRun = 1;\n\n  // Force is going to \"force\" Apply requests. It means user will\n  // re-acquire conflicting fields owned by other people. Force\n  // flag must be unset for non-apply patch requests.\n  // +optional\n  optional bool force = 2;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint. This\n  // field is required for apply requests\n  // (application/apply-patch) but optional for non-apply patch\n  // types (JsonPatch, MergePatch, StrategicMergePatch).\n  // +optional\n  optional string fieldManager = 3;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 4;\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\nmessage Preconditions {\n  // Specifies the target UID.\n  // +optional\n  optional string uid = 1;\n\n  // Specifies the target ResourceVersion\n  // +optional\n  optional string resourceVersion = 2;\n}\n\n// RootPaths lists the paths available at root.\n// For example: \"/healthz\", \"/apis\".\nmessage RootPaths {\n  // paths are the paths available at root.\n  repeated string paths = 1;\n}\n\n// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\nmessage ServerAddressByClientCIDR {\n  // The CIDR with which clients can match their IP to figure out the server address that they should use.\n  optional string clientCIDR = 1;\n\n  // Address of this server, suitable for a client that matches the above CIDR.\n  // This can be a hostname, hostname:port, IP or IP:port.\n  optional string serverAddress = 2;\n}\n\n// Status is a return value for calls that don't return other objects.\nmessage Status {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // Status of the operation.\n  // One of: \"Success\" or \"Failure\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional string status = 2;\n\n  // A human-readable description of the status of this operation.\n  // +optional\n  optional string message = 3;\n\n  // A machine-readable description of why this operation is in the\n  // \"Failure\" status. If this value is empty there\n  // is no information available. A Reason clarifies an HTTP status\n  // code but does not override it.\n  // +optional\n  optional string reason = 4;\n\n  // Extended data associated with the reason.  Each reason may define its\n  // own extended details. This field is optional and the data returned\n  // is not guaranteed to conform to any schema except that defined by\n  // the reason type.\n  // +optional\n  optional StatusDetails details = 5;\n\n  // Suggested HTTP return code for this status, 0 if not set.\n  // +optional\n  optional int32 code = 6;\n}\n\n// StatusCause provides more information about an api.Status failure, including\n// cases when multiple errors are encountered.\nmessage StatusCause {\n  // A machine-readable description of the cause of the error. If this value is\n  // empty there is no information available.\n  // +optional\n  optional string reason = 1;\n\n  // A human-readable description of the cause of the error.  This field may be\n  // presented as-is to a reader.\n  // +optional\n  optional string message = 2;\n\n  // The field of the resource that has caused this error, as named by its JSON\n  // serialization. May include dot and postfix notation for nested attributes.\n  // Arrays are zero-indexed.  Fields may appear more than once in an array of\n  // causes due to fields having multiple errors.\n  // Optional.\n  //\n  // Examples:\n  //   \"name\" - the field \"name\" on the current resource\n  //   \"items[0].name\" - the field \"name\" on the first array entry in \"items\"\n  // +optional\n  optional string field = 3;\n}\n\n// StatusDetails is a set of additional properties that MAY be set by the\n// server to provide additional information about a response. The Reason\n// field of a Status object defines what attributes will be set. Clients\n// must ignore fields that do not match the defined type of each attribute,\n// and should assume that any attribute may be empty, invalid, or under\n// defined.\nmessage StatusDetails {\n  // The name attribute of the resource associated with the status StatusReason\n  // (when there is a single name which can be described).\n  // +optional\n  optional string name = 1;\n\n  // The group attribute of the resource associated with the status StatusReason.\n  // +optional\n  optional string group = 2;\n\n  // The kind attribute of the resource associated with the status StatusReason.\n  // On some operations may differ from the requested resource Kind.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 3;\n\n  // UID of the resource.\n  // (when there is a single resource which can be described).\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  // +optional\n  optional string uid = 6;\n\n  // The Causes array includes more details associated with the StatusReason\n  // failure. Not all StatusReasons may provide detailed causes.\n  // +optional\n  repeated StatusCause causes = 4;\n\n  // If specified, the time in seconds before the operation should be retried. Some errors may indicate\n  // the client must take an alternate action - for those errors this field may indicate how long to wait\n  // before taking the alternate action.\n  // +optional\n  optional int32 retryAfterSeconds = 5;\n}\n\n// TableOptions are used when a Table is requested by the caller.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage TableOptions {\n  // includeObject decides whether to include each object along with its columnar information.\n  // Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and\n  // specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind\n  // in version v1beta1 of the meta.k8s.io API group.\n  optional string includeObject = 1;\n}\n\n// Time is a wrapper around time.Time which supports correct\n// marshaling to YAML and JSON.  Wrappers are provided for many\n// of the factory methods that the time package offers.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage Time {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// Timestamp is a struct that is equivalent to Time, but intended for\n// protobuf marshalling/unmarshalling. It is generated into a serialization\n// that matches Time. Do not use in Go structs.\nmessage Timestamp {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// TypeMeta describes an individual object in an API response or request\n// with strings representing the type of the object and its API schema version.\n// Structures that are versioned or persisted should inline TypeMeta.\n//\n// +k8s:deepcopy-gen=false\nmessage TypeMeta {\n  // Kind is a string value representing the REST resource this object represents.\n  // Servers may infer this from the endpoint the client submits requests to.\n  // Cannot be updated.\n  // In CamelCase.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 1;\n\n  // APIVersion defines the versioned schema of this representation of an object.\n  // Servers should convert recognized schemas to the latest internal value, and\n  // may reject unrecognized values.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\n  // +optional\n  optional string apiVersion = 2;\n}\n\n// UpdateOptions may be provided when updating an API object.\n// All fields in UpdateOptions should also be present in PatchOptions.\nmessage UpdateOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  repeated string dryRun = 1;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint.\n  // +optional\n  optional string fieldManager = 2;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 3;\n}\n\n// Verbs masks the value so protobuf can generate\n//\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage Verbs {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// Event represents a single event to a watched resource.\n//\n// +protobuf=true\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage WatchEvent {\n  optional string type = 1;\n\n  // Object is:\n  //  * If Type is Added or Modified: the new state of the object.\n  //  * If Type is Deleted: the state of the object immediately before deletion.\n  //  * If Type is Error: *Status is recommended; other types may make sense\n  //    depending on context.\n  optional k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/group_version.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupResource struct {\n\tGroup    string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tResource string `json:\"resource\" protobuf:\"bytes,2,opt,name=resource\"`\n}\n\nfunc (gr *GroupResource) String() string {\n\tif gr == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(gr.Group) == 0 {\n\t\treturn gr.Resource\n\t}\n\treturn gr.Resource + \".\" + gr.Group\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersionResource struct {\n\tGroup    string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion  string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n\tResource string `json:\"resource\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\nfunc (gvr *GroupVersionResource) String() string {\n\tif gvr == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn strings.Join([]string{gvr.Group, \"/\", gvr.Version, \", Resource=\", gvr.Resource}, \"\")\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupKind struct {\n\tGroup string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tKind  string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n}\n\nfunc (gk *GroupKind) String() string {\n\tif gk == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(gk.Group) == 0 {\n\t\treturn gk.Kind\n\t}\n\treturn gk.Kind + \".\" + gk.Group\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersionKind struct {\n\tGroup   string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n\tKind    string `json:\"kind\" protobuf:\"bytes,3,opt,name=kind\"`\n}\n\nfunc (gvk GroupVersionKind) String() string {\n\treturn gvk.Group + \"/\" + gvk.Version + \", Kind=\" + gvk.Kind\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersion struct {\n\tGroup   string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n}\n\n// Empty returns true if group and version are empty\nfunc (gv GroupVersion) Empty() bool {\n\treturn len(gv.Group) == 0 && len(gv.Version) == 0\n}\n\n// String puts \"group\" and \"version\" into a single \"group/version\" string. For the legacy v1\n// it returns \"v1\".\nfunc (gv GroupVersion) String() string {\n\t// special case the internal apiVersion for the legacy kube types\n\tif gv.Empty() {\n\t\treturn \"\"\n\t}\n\n\t// special case of \"v1\" for backward compatibility\n\tif len(gv.Group) == 0 && gv.Version == \"v1\" {\n\t\treturn gv.Version\n\t}\n\tif len(gv.Group) > 0 {\n\t\treturn gv.Group + \"/\" + gv.Version\n\t}\n\treturn gv.Version\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (gv GroupVersion) MarshalJSON() ([]byte, error) {\n\ts := gv.String()\n\tif strings.Count(s, \"/\") > 1 {\n\t\treturn []byte{}, fmt.Errorf(\"illegal GroupVersion %v: contains more than one /\", s)\n\t}\n\treturn json.Marshal(s)\n}\n\nfunc (gv *GroupVersion) unmarshal(value []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(value, &s); err != nil {\n\t\treturn err\n\t}\n\tparsed, err := schema.ParseGroupVersion(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgv.Group, gv.Version = parsed.Group, parsed.Version\n\treturn nil\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (gv *GroupVersion) UnmarshalJSON(value []byte) error {\n\treturn gv.unmarshal(value)\n}\n\n// UnmarshalTEXT implements the Ugorji's encoding.TextUnmarshaler interface.\nfunc (gv *GroupVersion) UnmarshalText(value []byte) error {\n\treturn gv.unmarshal(value)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/helpers.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/selection\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// LabelSelectorAsSelector converts the LabelSelector api type into a struct that implements\n// labels.Selector\n// Note: This function should be kept in sync with the selector methods in pkg/labels/selector.go\nfunc LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {\n\tif ps == nil {\n\t\treturn labels.Nothing(), nil\n\t}\n\tif len(ps.MatchLabels)+len(ps.MatchExpressions) == 0 {\n\t\treturn labels.Everything(), nil\n\t}\n\trequirements := make([]labels.Requirement, 0, len(ps.MatchLabels)+len(ps.MatchExpressions))\n\tfor k, v := range ps.MatchLabels {\n\t\tr, err := labels.NewRequirement(k, selection.Equals, []string{v})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\tfor _, expr := range ps.MatchExpressions {\n\t\tvar op selection.Operator\n\t\tswitch expr.Operator {\n\t\tcase LabelSelectorOpIn:\n\t\t\top = selection.In\n\t\tcase LabelSelectorOpNotIn:\n\t\t\top = selection.NotIn\n\t\tcase LabelSelectorOpExists:\n\t\t\top = selection.Exists\n\t\tcase LabelSelectorOpDoesNotExist:\n\t\t\top = selection.DoesNotExist\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"%q is not a valid label selector operator\", expr.Operator)\n\t\t}\n\t\tr, err := labels.NewRequirement(expr.Key, op, append([]string(nil), expr.Values...))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\tselector := labels.NewSelector()\n\tselector = selector.Add(requirements...)\n\treturn selector, nil\n}\n\n// LabelSelectorAsMap converts the LabelSelector api type into a map of strings, ie. the\n// original structure of a label selector. Operators that cannot be converted into plain\n// labels (Exists, DoesNotExist, NotIn, and In with more than one value) will result in\n// an error.\nfunc LabelSelectorAsMap(ps *LabelSelector) (map[string]string, error) {\n\tif ps == nil {\n\t\treturn nil, nil\n\t}\n\tselector := map[string]string{}\n\tfor k, v := range ps.MatchLabels {\n\t\tselector[k] = v\n\t}\n\tfor _, expr := range ps.MatchExpressions {\n\t\tswitch expr.Operator {\n\t\tcase LabelSelectorOpIn:\n\t\t\tif len(expr.Values) != 1 {\n\t\t\t\treturn selector, fmt.Errorf(\"operator %q without a single value cannot be converted into the old label selector format\", expr.Operator)\n\t\t\t}\n\t\t\t// Should we do anything in case this will override a previous key-value pair?\n\t\t\tselector[expr.Key] = expr.Values[0]\n\t\tcase LabelSelectorOpNotIn, LabelSelectorOpExists, LabelSelectorOpDoesNotExist:\n\t\t\treturn selector, fmt.Errorf(\"operator %q cannot be converted into the old label selector format\", expr.Operator)\n\t\tdefault:\n\t\t\treturn selector, fmt.Errorf(\"%q is not a valid selector operator\", expr.Operator)\n\t\t}\n\t}\n\treturn selector, nil\n}\n\n// ParseToLabelSelector parses a string representing a selector into a LabelSelector object.\n// Note: This function should be kept in sync with the parser in pkg/labels/selector.go\nfunc ParseToLabelSelector(selector string) (*LabelSelector, error) {\n\treqs, err := labels.ParseToRequirements(selector)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't parse the selector string \\\"%s\\\": %v\", selector, err)\n\t}\n\n\tlabelSelector := &LabelSelector{\n\t\tMatchLabels:      map[string]string{},\n\t\tMatchExpressions: []LabelSelectorRequirement{},\n\t}\n\tfor _, req := range reqs {\n\t\tvar op LabelSelectorOperator\n\t\tswitch req.Operator() {\n\t\tcase selection.Equals, selection.DoubleEquals:\n\t\t\tvals := req.Values()\n\t\t\tif vals.Len() != 1 {\n\t\t\t\treturn nil, fmt.Errorf(\"equals operator must have exactly one value\")\n\t\t\t}\n\t\t\tval, ok := vals.PopAny()\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"equals operator has exactly one value but it cannot be retrieved\")\n\t\t\t}\n\t\t\tlabelSelector.MatchLabels[req.Key()] = val\n\t\t\tcontinue\n\t\tcase selection.In:\n\t\t\top = LabelSelectorOpIn\n\t\tcase selection.NotIn:\n\t\t\top = LabelSelectorOpNotIn\n\t\tcase selection.Exists:\n\t\t\top = LabelSelectorOpExists\n\t\tcase selection.DoesNotExist:\n\t\t\top = LabelSelectorOpDoesNotExist\n\t\tcase selection.GreaterThan, selection.LessThan:\n\t\t\t// Adding a separate case for these operators to indicate that this is deliberate\n\t\t\treturn nil, fmt.Errorf(\"%q isn't supported in label selectors\", req.Operator())\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"%q is not a valid label selector operator\", req.Operator())\n\t\t}\n\t\tlabelSelector.MatchExpressions = append(labelSelector.MatchExpressions, LabelSelectorRequirement{\n\t\t\tKey:      req.Key(),\n\t\t\tOperator: op,\n\t\t\tValues:   req.Values().List(),\n\t\t})\n\t}\n\treturn labelSelector, nil\n}\n\n// SetAsLabelSelector converts the labels.Set object into a LabelSelector api object.\nfunc SetAsLabelSelector(ls labels.Set) *LabelSelector {\n\tif ls == nil {\n\t\treturn nil\n\t}\n\n\tselector := &LabelSelector{\n\t\tMatchLabels: make(map[string]string, len(ls)),\n\t}\n\tfor label, value := range ls {\n\t\tselector.MatchLabels[label] = value\n\t}\n\n\treturn selector\n}\n\n// FormatLabelSelector convert labelSelector into plain string\nfunc FormatLabelSelector(labelSelector *LabelSelector) string {\n\tselector, err := LabelSelectorAsSelector(labelSelector)\n\tif err != nil {\n\t\treturn \"<error>\"\n\t}\n\n\tl := selector.String()\n\tif len(l) == 0 {\n\t\tl = \"<none>\"\n\t}\n\treturn l\n}\n\nfunc ExtractGroupVersions(l *APIGroupList) []string {\n\tvar groupVersions []string\n\tfor _, g := range l.Groups {\n\t\tfor _, gv := range g.Versions {\n\t\t\tgroupVersions = append(groupVersions, gv.GroupVersion)\n\t\t}\n\t}\n\treturn groupVersions\n}\n\n// HasAnnotation returns a bool if passed in annotation exists\nfunc HasAnnotation(obj ObjectMeta, ann string) bool {\n\t_, found := obj.Annotations[ann]\n\treturn found\n}\n\n// SetMetaDataAnnotation sets the annotation and value\nfunc SetMetaDataAnnotation(obj *ObjectMeta, ann string, value string) {\n\tif obj.Annotations == nil {\n\t\tobj.Annotations = make(map[string]string)\n\t}\n\tobj.Annotations[ann] = value\n}\n\n// HasLabel returns a bool if passed in label exists\nfunc HasLabel(obj ObjectMeta, label string) bool {\n\t_, found := obj.Labels[label]\n\treturn found\n}\n\n// SetMetaDataLabel sets the label and value\nfunc SetMetaDataLabel(obj *ObjectMeta, label string, value string) {\n\tif obj.Labels == nil {\n\t\tobj.Labels = make(map[string]string)\n\t}\n\tobj.Labels[label] = value\n}\n\n// SingleObject returns a ListOptions for watching a single object.\nfunc SingleObject(meta ObjectMeta) ListOptions {\n\treturn ListOptions{\n\t\tFieldSelector:   fields.OneTermEqualSelector(\"metadata.name\", meta.Name).String(),\n\t\tResourceVersion: meta.ResourceVersion,\n\t}\n}\n\n// NewDeleteOptions returns a DeleteOptions indicating the resource should\n// be deleted within the specified grace period. Use zero to indicate\n// immediate deletion. If you would prefer to use the default grace period,\n// use &metav1.DeleteOptions{} directly.\nfunc NewDeleteOptions(grace int64) *DeleteOptions {\n\treturn &DeleteOptions{GracePeriodSeconds: &grace}\n}\n\n// NewPreconditionDeleteOptions returns a DeleteOptions with a UID precondition set.\nfunc NewPreconditionDeleteOptions(uid string) *DeleteOptions {\n\tu := types.UID(uid)\n\tp := Preconditions{UID: &u}\n\treturn &DeleteOptions{Preconditions: &p}\n}\n\n// NewUIDPreconditions returns a Preconditions with UID set.\nfunc NewUIDPreconditions(uid string) *Preconditions {\n\tu := types.UID(uid)\n\treturn &Preconditions{UID: &u}\n}\n\n// NewRVDeletionPrecondition returns a DeleteOptions with a ResourceVersion precondition set.\nfunc NewRVDeletionPrecondition(rv string) *DeleteOptions {\n\tp := Preconditions{ResourceVersion: &rv}\n\treturn &DeleteOptions{Preconditions: &p}\n}\n\n// HasObjectMetaSystemFieldValues returns true if fields that are managed by the system on ObjectMeta have values.\nfunc HasObjectMetaSystemFieldValues(meta Object) bool {\n\treturn !meta.GetCreationTimestamp().Time.IsZero() ||\n\t\tlen(meta.GetUID()) != 0\n}\n\n// ResetObjectMetaForStatus forces the meta fields for a status update to match the meta fields\n// for a pre-existing object. This is opt-in for new objects with Status subresource.\nfunc ResetObjectMetaForStatus(meta, existingMeta Object) {\n\tmeta.SetDeletionTimestamp(existingMeta.GetDeletionTimestamp())\n\tmeta.SetGeneration(existingMeta.GetGeneration())\n\tmeta.SetSelfLink(existingMeta.GetSelfLink())\n\tmeta.SetLabels(existingMeta.GetLabels())\n\tmeta.SetAnnotations(existingMeta.GetAnnotations())\n\tmeta.SetFinalizers(existingMeta.GetFinalizers())\n\tmeta.SetOwnerReferences(existingMeta.GetOwnerReferences())\n\t// managedFields must be preserved since it's been modified to\n\t// track changed fields in the status update.\n\t//meta.SetManagedFields(existingMeta.GetManagedFields())\n}\n\n// MarshalJSON implements json.Marshaler\n// MarshalJSON may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (f FieldsV1) MarshalJSON() ([]byte, error) {\n\tif f.Raw == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn f.Raw, nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler\nfunc (f *FieldsV1) UnmarshalJSON(b []byte) error {\n\tif f == nil {\n\t\treturn errors.New(\"metav1.Fields: UnmarshalJSON on nil pointer\")\n\t}\n\tif !bytes.Equal(b, []byte(\"null\")) {\n\t\tf.Raw = append(f.Raw[0:0], b...)\n\t}\n\treturn nil\n}\n\nvar _ json.Marshaler = FieldsV1{}\nvar _ json.Unmarshaler = &FieldsV1{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/labels.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// Clones the given selector and returns a new selector with the given key and value added.\n// Returns the given selector, if labelKey is empty.\nfunc CloneSelectorAndAddLabel(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {\n\tif labelKey == \"\" {\n\t\t// Don't need to add a label.\n\t\treturn selector\n\t}\n\n\t// Clone.\n\tnewSelector := selector.DeepCopy()\n\n\tif newSelector.MatchLabels == nil {\n\t\tnewSelector.MatchLabels = make(map[string]string)\n\t}\n\n\tnewSelector.MatchLabels[labelKey] = labelValue\n\n\treturn newSelector\n}\n\n// AddLabelToSelector returns a selector with the given key and value added to the given selector's MatchLabels.\nfunc AddLabelToSelector(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {\n\tif labelKey == \"\" {\n\t\t// Don't need to add a label.\n\t\treturn selector\n\t}\n\tif selector.MatchLabels == nil {\n\t\tselector.MatchLabels = make(map[string]string)\n\t}\n\tselector.MatchLabels[labelKey] = labelValue\n\treturn selector\n}\n\n// SelectorHasLabel checks if the given selector contains the given label key in its MatchLabels\nfunc SelectorHasLabel(selector *LabelSelector, labelKey string) bool {\n\treturn len(selector.MatchLabels[labelKey]) > 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// TODO: move this, Object, List, and Type to a different package\ntype ObjectMetaAccessor interface {\n\tGetObjectMeta() Object\n}\n\n// Object lets you work with object metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field (Name, UID, Namespace on lists) will be a no-op and return\n// a default value.\ntype Object interface {\n\tGetNamespace() string\n\tSetNamespace(namespace string)\n\tGetName() string\n\tSetName(name string)\n\tGetGenerateName() string\n\tSetGenerateName(name string)\n\tGetUID() types.UID\n\tSetUID(uid types.UID)\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetGeneration() int64\n\tSetGeneration(generation int64)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n\tGetCreationTimestamp() Time\n\tSetCreationTimestamp(timestamp Time)\n\tGetDeletionTimestamp() *Time\n\tSetDeletionTimestamp(timestamp *Time)\n\tGetDeletionGracePeriodSeconds() *int64\n\tSetDeletionGracePeriodSeconds(*int64)\n\tGetLabels() map[string]string\n\tSetLabels(labels map[string]string)\n\tGetAnnotations() map[string]string\n\tSetAnnotations(annotations map[string]string)\n\tGetFinalizers() []string\n\tSetFinalizers(finalizers []string)\n\tGetOwnerReferences() []OwnerReference\n\tSetOwnerReferences([]OwnerReference)\n\tGetManagedFields() []ManagedFieldsEntry\n\tSetManagedFields(managedFields []ManagedFieldsEntry)\n}\n\n// ListMetaAccessor retrieves the list interface from an object\ntype ListMetaAccessor interface {\n\tGetListMeta() ListInterface\n}\n\n// Common lets you work with core metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype Common interface {\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n}\n\n// ListInterface lets you work with list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype ListInterface interface {\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n\tGetContinue() string\n\tSetContinue(c string)\n\tGetRemainingItemCount() *int64\n\tSetRemainingItemCount(c *int64)\n}\n\n// Type exposes the type and APIVersion of versioned or internal API objects.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype Type interface {\n\tGetAPIVersion() string\n\tSetAPIVersion(version string)\n\tGetKind() string\n\tSetKind(kind string)\n}\n\nvar _ ListInterface = &ListMeta{}\n\nfunc (meta *ListMeta) GetResourceVersion() string        { return meta.ResourceVersion }\nfunc (meta *ListMeta) SetResourceVersion(version string) { meta.ResourceVersion = version }\nfunc (meta *ListMeta) GetSelfLink() string               { return meta.SelfLink }\nfunc (meta *ListMeta) SetSelfLink(selfLink string)       { meta.SelfLink = selfLink }\nfunc (meta *ListMeta) GetContinue() string               { return meta.Continue }\nfunc (meta *ListMeta) SetContinue(c string)              { meta.Continue = c }\nfunc (meta *ListMeta) GetRemainingItemCount() *int64     { return meta.RemainingItemCount }\nfunc (meta *ListMeta) SetRemainingItemCount(c *int64)    { meta.RemainingItemCount = c }\n\nfunc (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }\n\n// SetGroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\n// GroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *ListMeta) GetListMeta() ListInterface { return obj }\n\nfunc (obj *ObjectMeta) GetObjectMeta() Object { return obj }\n\n// Namespace implements metav1.Object for any object with an ObjectMeta typed field. Allows\n// fast, direct access to metadata fields for API objects.\nfunc (meta *ObjectMeta) GetNamespace() string                { return meta.Namespace }\nfunc (meta *ObjectMeta) SetNamespace(namespace string)       { meta.Namespace = namespace }\nfunc (meta *ObjectMeta) GetName() string                     { return meta.Name }\nfunc (meta *ObjectMeta) SetName(name string)                 { meta.Name = name }\nfunc (meta *ObjectMeta) GetGenerateName() string             { return meta.GenerateName }\nfunc (meta *ObjectMeta) SetGenerateName(generateName string) { meta.GenerateName = generateName }\nfunc (meta *ObjectMeta) GetUID() types.UID                   { return meta.UID }\nfunc (meta *ObjectMeta) SetUID(uid types.UID)                { meta.UID = uid }\nfunc (meta *ObjectMeta) GetResourceVersion() string          { return meta.ResourceVersion }\nfunc (meta *ObjectMeta) SetResourceVersion(version string)   { meta.ResourceVersion = version }\nfunc (meta *ObjectMeta) GetGeneration() int64                { return meta.Generation }\nfunc (meta *ObjectMeta) SetGeneration(generation int64)      { meta.Generation = generation }\nfunc (meta *ObjectMeta) GetSelfLink() string                 { return meta.SelfLink }\nfunc (meta *ObjectMeta) SetSelfLink(selfLink string)         { meta.SelfLink = selfLink }\nfunc (meta *ObjectMeta) GetCreationTimestamp() Time          { return meta.CreationTimestamp }\nfunc (meta *ObjectMeta) SetCreationTimestamp(creationTimestamp Time) {\n\tmeta.CreationTimestamp = creationTimestamp\n}\nfunc (meta *ObjectMeta) GetDeletionTimestamp() *Time { return meta.DeletionTimestamp }\nfunc (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *Time) {\n\tmeta.DeletionTimestamp = deletionTimestamp\n}\nfunc (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 {\n\treturn meta.DeletionGracePeriodSeconds\n}\nfunc (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {\n\tmeta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds\n}\nfunc (meta *ObjectMeta) GetLabels() map[string]string                 { return meta.Labels }\nfunc (meta *ObjectMeta) SetLabels(labels map[string]string)           { meta.Labels = labels }\nfunc (meta *ObjectMeta) GetAnnotations() map[string]string            { return meta.Annotations }\nfunc (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Annotations = annotations }\nfunc (meta *ObjectMeta) GetFinalizers() []string                      { return meta.Finalizers }\nfunc (meta *ObjectMeta) SetFinalizers(finalizers []string)            { meta.Finalizers = finalizers }\nfunc (meta *ObjectMeta) GetOwnerReferences() []OwnerReference         { return meta.OwnerReferences }\nfunc (meta *ObjectMeta) SetOwnerReferences(references []OwnerReference) {\n\tmeta.OwnerReferences = references\n}\nfunc (meta *ObjectMeta) GetManagedFields() []ManagedFieldsEntry { return meta.ManagedFields }\nfunc (meta *ObjectMeta) SetManagedFields(managedFields []ManagedFieldsEntry) {\n\tmeta.ManagedFields = managedFields\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n)\n\nconst RFC3339Micro = \"2006-01-02T15:04:05.000000Z07:00\"\n\n// MicroTime is version of Time with microsecond level precision.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype MicroTime struct {\n\ttime.Time `protobuf:\"-\"`\n}\n\n// DeepCopy returns a deep-copy of the MicroTime value.  The underlying time.Time\n// type is effectively immutable in the time API, so it is safe to\n// copy-by-assign, despite the presence of (unexported) Pointer fields.\nfunc (t *MicroTime) DeepCopyInto(out *MicroTime) {\n\t*out = *t\n}\n\n// NewMicroTime returns a wrapped instance of the provided time\nfunc NewMicroTime(time time.Time) MicroTime {\n\treturn MicroTime{time}\n}\n\n// DateMicro returns the MicroTime corresponding to the supplied parameters\n// by wrapping time.Date.\nfunc DateMicro(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) MicroTime {\n\treturn MicroTime{time.Date(year, month, day, hour, min, sec, nsec, loc)}\n}\n\n// NowMicro returns the current local time.\nfunc NowMicro() MicroTime {\n\treturn MicroTime{time.Now()}\n}\n\n// IsZero returns true if the value is nil or time is zero.\nfunc (t *MicroTime) IsZero() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\treturn t.Time.IsZero()\n}\n\n// Before reports whether the time instant t is before u.\nfunc (t *MicroTime) Before(u *MicroTime) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// Equal reports whether the time instant t is equal to u.\nfunc (t *MicroTime) Equal(u *MicroTime) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// BeforeTime reports whether the time instant t is before second-lever precision u.\nfunc (t *MicroTime) BeforeTime(u *Time) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// EqualTime reports whether the time instant t is equal to second-lever precision u.\nfunc (t *MicroTime) EqualTime(u *Time) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// UnixMicro returns the local time corresponding to the given Unix time\n// by wrapping time.Unix.\nfunc UnixMicro(sec int64, nsec int64) MicroTime {\n\treturn MicroTime{time.Unix(sec, nsec)}\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (t *MicroTime) UnmarshalJSON(b []byte) error {\n\tif len(b) == 4 && string(b) == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpt, err := time.Parse(RFC3339Micro, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// UnmarshalQueryParameter converts from a URL query parameter value to an object\nfunc (t *MicroTime) UnmarshalQueryParameter(str string) error {\n\tif len(str) == 0 {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\t// Tolerate requests from older clients that used JSON serialization to build query params\n\tif len(str) == 4 && str == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tpt, err := time.Parse(RFC3339Micro, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (t MicroTime) MarshalJSON() ([]byte, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as JSON's \"null\".\n\t\treturn []byte(\"null\"), nil\n\t}\n\n\treturn json.Marshal(t.UTC().Format(RFC3339Micro))\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ MicroTime) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ MicroTime) OpenAPISchemaFormat() string { return \"date-time\" }\n\n// MarshalQueryParameter converts to a URL query parameter value\nfunc (t MicroTime) MarshalQueryParameter() (string, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as an empty string\n\t\treturn \"\", nil\n\t}\n\n\treturn t.UTC().Format(RFC3339Micro), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface.\nfunc (t *MicroTime) Fuzz(c fuzz.Continue) {\n\tif t == nil {\n\t\treturn\n\t}\n\t// Allow for about 1000 years of randomness. Accurate to a tenth of\n\t// micro second. Leave off nanoseconds because JSON doesn't\n\t// represent them so they can't round-trip properly.\n\tt.Time = time.Unix(c.Rand.Int63n(1000*365*24*60*60), 1000*c.Rand.Int63n(1000000))\n}\n\n// ensure MicroTime implements fuzz.Interface\nvar _ fuzz.Interface = &MicroTime{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_proto.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n)\n\n// Timestamp is declared in time_proto.go\n\n// Timestamp returns the Time as a new Timestamp value.\nfunc (m *MicroTime) ProtoMicroTime() *Timestamp {\n\tif m == nil {\n\t\treturn &Timestamp{}\n\t}\n\n\t// truncate precision to microseconds to match JSON marshaling/unmarshaling\n\ttruncatedNanoseconds := time.Duration(m.Time.Nanosecond()).Truncate(time.Microsecond)\n\treturn &Timestamp{\n\t\tSeconds: m.Time.Unix(),\n\t\tNanos:   int32(truncatedNanoseconds),\n\t}\n}\n\n// Size implements the protobuf marshalling interface.\nfunc (m *MicroTime) Size() (n int) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0\n\t}\n\treturn m.ProtoMicroTime().Size()\n}\n\n// Reset implements the protobuf marshalling interface.\nfunc (m *MicroTime) Unmarshal(data []byte) error {\n\tif len(data) == 0 {\n\t\tm.Time = time.Time{}\n\t\treturn nil\n\t}\n\tp := Timestamp{}\n\tif err := p.Unmarshal(data); err != nil {\n\t\treturn err\n\t}\n\n\t// truncate precision to microseconds to match JSON marshaling/unmarshaling\n\ttruncatedNanoseconds := time.Duration(p.Nanos).Truncate(time.Microsecond)\n\tm.Time = time.Unix(p.Seconds, int64(truncatedNanoseconds)).Local()\n\treturn nil\n}\n\n// Marshal implements the protobuf marshalling interface.\nfunc (m *MicroTime) Marshal() (data []byte, err error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn nil, nil\n\t}\n\treturn m.ProtoMicroTime().Marshal()\n}\n\n// MarshalTo implements the protobuf marshalling interface.\nfunc (m *MicroTime) MarshalTo(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoMicroTime().MarshalTo(data)\n}\n\n// MarshalToSizedBuffer implements the protobuf marshalling interface.\nfunc (m *MicroTime) MarshalToSizedBuffer(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoMicroTime().MarshalToSizedBuffer(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"meta.k8s.io\"\n\nvar (\n\t// localSchemeBuilder is used to make compiler happy for autogenerated\n\t// conversions. However, it's not used.\n\tschemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &schemeBuilder\n)\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Unversioned is group version for unversioned API objects\n// TODO: this should be v1 probably\nvar Unversioned = schema.GroupVersion{Group: \"\", Version: \"v1\"}\n\n// WatchEventKind is name reserved for serializing watch events.\nconst WatchEventKind = \"WatchEvent\"\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// scheme is the registry for the common types that adhere to the meta v1 API spec.\nvar scheme = runtime.NewScheme()\n\n// ParameterCodec knows about query parameters used with the meta v1 API spec.\nvar ParameterCodec = runtime.NewParameterCodec(scheme)\n\nvar optionsTypes = []runtime.Object{\n\t&ListOptions{},\n\t&GetOptions{},\n\t&DeleteOptions{},\n\t&CreateOptions{},\n\t&UpdateOptions{},\n\t&PatchOptions{},\n}\n\n// AddToGroupVersion registers common meta types into schemas.\nfunc AddToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion) {\n\tscheme.AddKnownTypeWithName(groupVersion.WithKind(WatchEventKind), &WatchEvent{})\n\tscheme.AddKnownTypeWithName(\n\t\tschema.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal}.WithKind(WatchEventKind),\n\t\t&InternalEvent{},\n\t)\n\t// Supports legacy code paths, most callers should use metav1.ParameterCodec for now\n\tscheme.AddKnownTypes(groupVersion, optionsTypes...)\n\t// Register Unversioned types under their own special group\n\tscheme.AddUnversionedTypes(Unversioned,\n\t\t&Status{},\n\t\t&APIVersions{},\n\t\t&APIGroupList{},\n\t\t&APIGroup{},\n\t\t&APIResourceList{},\n\t)\n\n\t// register manually. This usually goes through the SchemeBuilder, which we cannot use here.\n\tutilruntime.Must(RegisterConversions(scheme))\n\tutilruntime.Must(RegisterDefaults(scheme))\n}\n\n// AddMetaToScheme registers base meta types into schemas.\nfunc AddMetaToScheme(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Table{},\n\t\t&TableOptions{},\n\t\t&PartialObjectMetadata{},\n\t\t&PartialObjectMetadataList{},\n\t)\n\n\treturn nil\n}\n\nfunc init() {\n\tscheme.AddUnversionedTypes(SchemeGroupVersion, optionsTypes...)\n\n\tutilruntime.Must(AddMetaToScheme(scheme))\n\n\t// register manually. This usually goes through the SchemeBuilder, which we cannot use here.\n\tutilruntime.Must(RegisterDefaults(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n)\n\n// Time is a wrapper around time.Time which supports correct\n// marshaling to YAML and JSON.  Wrappers are provided for many\n// of the factory methods that the time package offers.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype Time struct {\n\ttime.Time `protobuf:\"-\"`\n}\n\n// DeepCopyInto creates a deep-copy of the Time value.  The underlying time.Time\n// type is effectively immutable in the time API, so it is safe to\n// copy-by-assign, despite the presence of (unexported) Pointer fields.\nfunc (t *Time) DeepCopyInto(out *Time) {\n\t*out = *t\n}\n\n// NewTime returns a wrapped instance of the provided time\nfunc NewTime(time time.Time) Time {\n\treturn Time{time}\n}\n\n// Date returns the Time corresponding to the supplied parameters\n// by wrapping time.Date.\nfunc Date(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) Time {\n\treturn Time{time.Date(year, month, day, hour, min, sec, nsec, loc)}\n}\n\n// Now returns the current local time.\nfunc Now() Time {\n\treturn Time{time.Now()}\n}\n\n// IsZero returns true if the value is nil or time is zero.\nfunc (t *Time) IsZero() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\treturn t.Time.IsZero()\n}\n\n// Before reports whether the time instant t is before u.\nfunc (t *Time) Before(u *Time) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// Equal reports whether the time instant t is equal to u.\nfunc (t *Time) Equal(u *Time) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// Unix returns the local time corresponding to the given Unix time\n// by wrapping time.Unix.\nfunc Unix(sec int64, nsec int64) Time {\n\treturn Time{time.Unix(sec, nsec)}\n}\n\n// Rfc3339Copy returns a copy of the Time at second-level precision.\nfunc (t Time) Rfc3339Copy() Time {\n\tcopied, _ := time.Parse(time.RFC3339, t.Format(time.RFC3339))\n\treturn Time{copied}\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (t *Time) UnmarshalJSON(b []byte) error {\n\tif len(b) == 4 && string(b) == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpt, err := time.Parse(time.RFC3339, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// UnmarshalQueryParameter converts from a URL query parameter value to an object\nfunc (t *Time) UnmarshalQueryParameter(str string) error {\n\tif len(str) == 0 {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\t// Tolerate requests from older clients that used JSON serialization to build query params\n\tif len(str) == 4 && str == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tpt, err := time.Parse(time.RFC3339, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (t Time) MarshalJSON() ([]byte, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as JSON's \"null\".\n\t\treturn []byte(\"null\"), nil\n\t}\n\tbuf := make([]byte, 0, len(time.RFC3339)+2)\n\tbuf = append(buf, '\"')\n\t// time cannot contain non escapable JSON characters\n\tbuf = t.UTC().AppendFormat(buf, time.RFC3339)\n\tbuf = append(buf, '\"')\n\treturn buf, nil\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (t Time) ToUnstructured() interface{} {\n\tif t.IsZero() {\n\t\treturn nil\n\t}\n\tbuf := make([]byte, 0, len(time.RFC3339))\n\tbuf = t.UTC().AppendFormat(buf, time.RFC3339)\n\treturn string(buf)\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Time) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Time) OpenAPISchemaFormat() string { return \"date-time\" }\n\n// MarshalQueryParameter converts to a URL query parameter value\nfunc (t Time) MarshalQueryParameter() (string, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as an empty string\n\t\treturn \"\", nil\n\t}\n\n\treturn t.UTC().Format(time.RFC3339), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface.\nfunc (t *Time) Fuzz(c fuzz.Continue) {\n\tif t == nil {\n\t\treturn\n\t}\n\t// Allow for about 1000 years of randomness.  Leave off nanoseconds\n\t// because JSON doesn't represent them so they can't round-trip\n\t// properly.\n\tt.Time = time.Unix(c.Rand.Int63n(1000*365*24*60*60), 0)\n}\n\n// ensure Time implements fuzz.Interface\nvar _ fuzz.Interface = &Time{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n)\n\n// Timestamp is a struct that is equivalent to Time, but intended for\n// protobuf marshalling/unmarshalling. It is generated into a serialization\n// that matches Time. Do not use in Go structs.\ntype Timestamp struct {\n\t// Represents seconds of UTC time since Unix epoch\n\t// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n\t// 9999-12-31T23:59:59Z inclusive.\n\tSeconds int64 `json:\"seconds\" protobuf:\"varint,1,opt,name=seconds\"`\n\t// Non-negative fractions of a second at nanosecond resolution. Negative\n\t// second values with fractions must still have non-negative nanos values\n\t// that count forward in time. Must be from 0 to 999,999,999\n\t// inclusive. This field may be limited in precision depending on context.\n\tNanos int32 `json:\"nanos\" protobuf:\"varint,2,opt,name=nanos\"`\n}\n\n// Timestamp returns the Time as a new Timestamp value.\nfunc (m *Time) ProtoTime() *Timestamp {\n\tif m == nil {\n\t\treturn &Timestamp{}\n\t}\n\treturn &Timestamp{\n\t\tSeconds: m.Time.Unix(),\n\t\t// leaving this here for the record.  our JSON only handled seconds, so this results in writes by\n\t\t// protobuf clients storing values that aren't read by json clients, which results in unexpected\n\t\t// field mutation, which fails various validation and equality code.\n\t\t// Nanos:   int32(m.Time.Nanosecond()),\n\t}\n}\n\n// Size implements the protobuf marshalling interface.\nfunc (m *Time) Size() (n int) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0\n\t}\n\treturn m.ProtoTime().Size()\n}\n\n// Reset implements the protobuf marshalling interface.\nfunc (m *Time) Unmarshal(data []byte) error {\n\tif len(data) == 0 {\n\t\tm.Time = time.Time{}\n\t\treturn nil\n\t}\n\tp := Timestamp{}\n\tif err := p.Unmarshal(data); err != nil {\n\t\treturn err\n\t}\n\t// leaving this here for the record.  our JSON only handled seconds, so this results in writes by\n\t// protobuf clients storing values that aren't read by json clients, which results in unexpected\n\t// field mutation, which fails various validation and equality code.\n\t// m.Time = time.Unix(p.Seconds, int64(p.Nanos)).Local()\n\tm.Time = time.Unix(p.Seconds, int64(0)).Local()\n\treturn nil\n}\n\n// Marshal implements the protobuf marshaling interface.\nfunc (m *Time) Marshal() (data []byte, err error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn nil, nil\n\t}\n\treturn m.ProtoTime().Marshal()\n}\n\n// MarshalTo implements the protobuf marshaling interface.\nfunc (m *Time) MarshalTo(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoTime().MarshalTo(data)\n}\n\n// MarshalToSizedBuffer implements the protobuf reverse marshaling interface.\nfunc (m *Time) MarshalToSizedBuffer(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoTime().MarshalToSizedBuffer(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package v1 contains API types that are common to all versions.\n//\n// The package contains two categories of types:\n//   - external (serialized) types that lack their own version (e.g TypeMeta)\n//   - internal (never-serialized) types that are needed by several different\n//     api groups, and so live here, to avoid duplication and/or import loops\n//     (e.g. LabelSelector).\n//\n// In the future, we will probably move these categories of objects into\n// separate packages.\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// TypeMeta describes an individual object in an API response or request\n// with strings representing the type of the object and its API schema version.\n// Structures that are versioned or persisted should inline TypeMeta.\n//\n// +k8s:deepcopy-gen=false\ntype TypeMeta struct {\n\t// Kind is a string value representing the REST resource this object represents.\n\t// Servers may infer this from the endpoint the client submits requests to.\n\t// Cannot be updated.\n\t// In CamelCase.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// APIVersion defines the versioned schema of this representation of an object.\n\t// Servers should convert recognized schemas to the latest internal value, and\n\t// may reject unrecognized values.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt,name=apiVersion\"`\n}\n\n// ListMeta describes metadata that synthetic resources must have, including lists and\n// various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\ntype ListMeta struct {\n\t// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n\t// +optional\n\tSelfLink string `json:\"selfLink,omitempty\" protobuf:\"bytes,1,opt,name=selfLink\"`\n\n\t// String that identifies the server's internal version of this object that\n\t// can be used by clients to determine when objects have changed.\n\t// Value must be treated as opaque by clients and passed unmodified back to the server.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,2,opt,name=resourceVersion\"`\n\n\t// continue may be set if the user set a limit on the number of items returned, and indicates that\n\t// the server has more data available. The value is opaque and may be used to issue another request\n\t// to the endpoint that served this list to retrieve the next set of available objects. Continuing a\n\t// consistent list may not be possible if the server configuration has changed or more than a few\n\t// minutes have passed. The resourceVersion field returned when using this continue value will be\n\t// identical to the value in the first response, unless you have received this token from an error\n\t// message.\n\tContinue string `json:\"continue,omitempty\" protobuf:\"bytes,3,opt,name=continue\"`\n\n\t// remainingItemCount is the number of subsequent items in the list which are not included in this\n\t// list response. If the list request contained label or field selectors, then the number of\n\t// remaining items is unknown and the field will be left unset and omitted during serialization.\n\t// If the list is complete (either because it is not chunking or because this is the last chunk),\n\t// then there are no more remaining items and this field will be left unset and omitted during\n\t// serialization.\n\t// Servers older than v1.15 do not set this field.\n\t// The intended use of the remainingItemCount is *estimating* the size of a collection. Clients\n\t// should not rely on the remainingItemCount to be set or to be exact.\n\t// +optional\n\tRemainingItemCount *int64 `json:\"remainingItemCount,omitempty\" protobuf:\"bytes,4,opt,name=remainingItemCount\"`\n}\n\n// Field path constants that are specific to the internal API\n// representation.\nconst (\n\tObjectNameField = \"metadata.name\"\n)\n\n// These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here\nconst (\n\tFinalizerOrphanDependents = \"orphan\"\n\tFinalizerDeleteDependents = \"foregroundDeletion\"\n)\n\n// ObjectMeta is metadata that all persisted resources must have, which includes all objects\n// users must create.\ntype ObjectMeta struct {\n\t// Name must be unique within a namespace. Is required when creating resources, although\n\t// some resources may allow a client to request the generation of an appropriate name\n\t// automatically. Name is primarily intended for creation idempotence and configuration\n\t// definition.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// GenerateName is an optional prefix, used by the server, to generate a unique\n\t// name ONLY IF the Name field has not been provided.\n\t// If this field is used, the name returned to the client will be different\n\t// than the name passed. This value will also be combined with a unique suffix.\n\t// The provided value has the same validation rules as the Name field,\n\t// and may be truncated by the length of the suffix required to make the value\n\t// unique on the server.\n\t//\n\t// If this field is specified and the generated name exists, the server will return a 409.\n\t//\n\t// Applied only if Name is not specified.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n\t// +optional\n\tGenerateName string `json:\"generateName,omitempty\" protobuf:\"bytes,2,opt,name=generateName\"`\n\n\t// Namespace defines the space within which each name must be unique. An empty namespace is\n\t// equivalent to the \"default\" namespace, but \"default\" is the canonical representation.\n\t// Not all objects are required to be scoped to a namespace - the value of this field for\n\t// those objects will be empty.\n\t//\n\t// Must be a DNS_LABEL.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n\n\t// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n\t// +optional\n\tSelfLink string `json:\"selfLink,omitempty\" protobuf:\"bytes,4,opt,name=selfLink\"`\n\n\t// UID is the unique in time and space value for this object. It is typically generated by\n\t// the server on successful creation of a resource and is not allowed to change on PUT\n\t// operations.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,5,opt,name=uid,casttype=k8s.io/kubernetes/pkg/types.UID\"`\n\n\t// An opaque value that represents the internal version of this object that can\n\t// be used by clients to determine when objects have changed. May be used for optimistic\n\t// concurrency, change detection, and the watch operation on a resource or set of resources.\n\t// Clients must treat these values as opaque and passed unmodified back to the server.\n\t// They may only be valid for a particular resource or set of resources.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// Value must be treated as opaque by clients and .\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,6,opt,name=resourceVersion\"`\n\n\t// A sequence number representing a specific generation of the desired state.\n\t// Populated by the system. Read-only.\n\t// +optional\n\tGeneration int64 `json:\"generation,omitempty\" protobuf:\"varint,7,opt,name=generation\"`\n\n\t// CreationTimestamp is a timestamp representing the server time when this object was\n\t// created. It is not guaranteed to be set in happens-before order across separate operations.\n\t// Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// Null for lists.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tCreationTimestamp Time `json:\"creationTimestamp,omitempty\" protobuf:\"bytes,8,opt,name=creationTimestamp\"`\n\n\t// DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\n\t// field is set by the server when a graceful deletion is requested by the user, and is not\n\t// directly settable by a client. The resource is expected to be deleted (no longer visible\n\t// from resource lists, and not reachable by name) after the time in this field, once the\n\t// finalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\n\t// Once the deletionTimestamp is set, this value may not be unset or be set further into the\n\t// future, although it may be shortened or the resource may be deleted prior to this time.\n\t// For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\n\t// by sending a graceful termination signal to the containers in the pod. After that 30 seconds,\n\t// the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\n\t// remove the pod from the API. In the presence of network partitions, this object may still\n\t// exist after this timestamp, until an administrator or automated process can determine the\n\t// resource is fully terminated.\n\t// If not set, graceful deletion of the object has not been requested.\n\t//\n\t// Populated by the system when a graceful deletion is requested.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tDeletionTimestamp *Time `json:\"deletionTimestamp,omitempty\" protobuf:\"bytes,9,opt,name=deletionTimestamp\"`\n\n\t// Number of seconds allowed for this object to gracefully terminate before\n\t// it will be removed from the system. Only set when deletionTimestamp is also set.\n\t// May only be shortened.\n\t// Read-only.\n\t// +optional\n\tDeletionGracePeriodSeconds *int64 `json:\"deletionGracePeriodSeconds,omitempty\" protobuf:\"varint,10,opt,name=deletionGracePeriodSeconds\"`\n\n\t// Map of string keys and values that can be used to organize and categorize\n\t// (scope and select) objects. May match selectors of replication controllers\n\t// and services.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// +optional\n\tLabels map[string]string `json:\"labels,omitempty\" protobuf:\"bytes,11,rep,name=labels\"`\n\n\t// Annotations is an unstructured key value map stored with a resource that may be\n\t// set by external tools to store and retrieve arbitrary metadata. They are not\n\t// queryable and should be preserved when modifying objects.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n\t// +optional\n\tAnnotations map[string]string `json:\"annotations,omitempty\" protobuf:\"bytes,12,rep,name=annotations\"`\n\n\t// List of objects depended by this object. If ALL objects in the list have\n\t// been deleted, this object will be garbage collected. If this object is managed by a controller,\n\t// then an entry in this list will point to this controller, with the controller field set to true.\n\t// There cannot be more than one managing controller.\n\t// +optional\n\t// +patchMergeKey=uid\n\t// +patchStrategy=merge\n\tOwnerReferences []OwnerReference `json:\"ownerReferences,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"uid\" protobuf:\"bytes,13,rep,name=ownerReferences\"`\n\n\t// Must be empty before the object is deleted from the registry. Each entry\n\t// is an identifier for the responsible component that will remove the entry\n\t// from the list. If the deletionTimestamp of the object is non-nil, entries\n\t// in this list can only be removed.\n\t// Finalizers may be processed and removed in any order.  Order is NOT enforced\n\t// because it introduces significant risk of stuck finalizers.\n\t// finalizers is a shared field, any actor with permission can reorder it.\n\t// If the finalizer list is processed in order, then this can lead to a situation\n\t// in which the component responsible for the first finalizer in the list is\n\t// waiting for a signal (field value, external system, or other) produced by a\n\t// component responsible for a finalizer later in the list, resulting in a deadlock.\n\t// Without enforced ordering finalizers are free to order amongst themselves and\n\t// are not vulnerable to ordering changes in the list.\n\t// +optional\n\t// +patchStrategy=merge\n\tFinalizers []string `json:\"finalizers,omitempty\" patchStrategy:\"merge\" protobuf:\"bytes,14,rep,name=finalizers\"`\n\n\t// Tombstone: ClusterName was a legacy field that was always cleared by\n\t// the system and never used.\n\t// ClusterName string `json:\"clusterName,omitempty\" protobuf:\"bytes,15,opt,name=clusterName\"`\n\n\t// ManagedFields maps workflow-id and version to the set of fields\n\t// that are managed by that workflow. This is mostly for internal\n\t// housekeeping, and users typically shouldn't need to set or\n\t// understand this field. A workflow can be the user's name, a\n\t// controller's name, or the name of a specific apply path like\n\t// \"ci-cd\". The set of fields is always in the version that the\n\t// workflow used when modifying the object.\n\t//\n\t// +optional\n\tManagedFields []ManagedFieldsEntry `json:\"managedFields,omitempty\" protobuf:\"bytes,17,rep,name=managedFields\"`\n}\n\nconst (\n\t// NamespaceDefault means the object is in the default namespace which is applied when not specified by clients\n\tNamespaceDefault = \"default\"\n\t// NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces\n\tNamespaceAll = \"\"\n\t// NamespaceNone is the argument for a context when there is no namespace.\n\tNamespaceNone = \"\"\n\t// NamespaceSystem is the system namespace where we place system components.\n\tNamespaceSystem = \"kube-system\"\n\t// NamespacePublic is the namespace where we place public info (ConfigMaps)\n\tNamespacePublic = \"kube-public\"\n)\n\n// OwnerReference contains enough information to let you identify an owning\n// object. An owning object must be in the same namespace as the dependent, or\n// be cluster-scoped, so there is no namespace field.\n// +structType=atomic\ntype OwnerReference struct {\n\t// API version of the referent.\n\tAPIVersion string `json:\"apiVersion\" protobuf:\"bytes,5,opt,name=apiVersion\"`\n\t// Kind of the referent.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Name of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\tUID types.UID `json:\"uid\" protobuf:\"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// If true, this reference points to the managing controller.\n\t// +optional\n\tController *bool `json:\"controller,omitempty\" protobuf:\"varint,6,opt,name=controller\"`\n\t// If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\n\t// the owner cannot be deleted from the key-value store until this\n\t// reference is removed.\n\t// See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\n\t// for how the garbage collector interacts with this field and enforces the foreground deletion.\n\t// Defaults to false.\n\t// To set this field, a user needs \"delete\" permission of the owner,\n\t// otherwise 422 (Unprocessable Entity) will be returned.\n\t// +optional\n\tBlockOwnerDeletion *bool `json:\"blockOwnerDeletion,omitempty\" protobuf:\"varint,7,opt,name=blockOwnerDeletion\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ListOptions is the query options to a standard REST list call.\ntype ListOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// A selector to restrict the list of returned objects by their labels.\n\t// Defaults to everything.\n\t// +optional\n\tLabelSelector string `json:\"labelSelector,omitempty\" protobuf:\"bytes,1,opt,name=labelSelector\"`\n\t// A selector to restrict the list of returned objects by their fields.\n\t// Defaults to everything.\n\t// +optional\n\tFieldSelector string `json:\"fieldSelector,omitempty\" protobuf:\"bytes,2,opt,name=fieldSelector\"`\n\n\t// +k8s:deprecated=includeUninitialized,protobuf=6\n\n\t// Watch for changes to the described resources and return them as a stream of\n\t// add, update, and remove notifications. Specify resourceVersion.\n\t// +optional\n\tWatch bool `json:\"watch,omitempty\" protobuf:\"varint,3,opt,name=watch\"`\n\t// allowWatchBookmarks requests watch events with type \"BOOKMARK\".\n\t// Servers that do not implement bookmarks may ignore this flag and\n\t// bookmarks are sent at the server's discretion. Clients should not\n\t// assume bookmarks are returned at any specific interval, nor may they\n\t// assume the server will send any BOOKMARK event during a session.\n\t// If this is not a watch, this field is ignored.\n\t// +optional\n\tAllowWatchBookmarks bool `json:\"allowWatchBookmarks,omitempty\" protobuf:\"varint,9,opt,name=allowWatchBookmarks\"`\n\n\t// resourceVersion sets a constraint on what resource versions a request may be served from.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,4,opt,name=resourceVersion\"`\n\n\t// resourceVersionMatch determines how resourceVersion is applied to list calls.\n\t// It is highly recommended that resourceVersionMatch be set for list calls where\n\t// resourceVersion is set\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersionMatch ResourceVersionMatch `json:\"resourceVersionMatch,omitempty\" protobuf:\"bytes,10,opt,name=resourceVersionMatch,casttype=ResourceVersionMatch\"`\n\t// Timeout for the list/watch call.\n\t// This limits the duration of the call, regardless of any activity or inactivity.\n\t// +optional\n\tTimeoutSeconds *int64 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,5,opt,name=timeoutSeconds\"`\n\n\t// limit is a maximum number of responses to return for a list call. If more items exist, the\n\t// server will set the `continue` field on the list metadata to a value that can be used with the\n\t// same initial query to retrieve the next set of results. Setting a limit may return fewer than\n\t// the requested amount of items (up to zero items) in the event all requested objects are\n\t// filtered out and clients should only use the presence of the continue field to determine whether\n\t// more results are available. Servers may choose not to support the limit argument and will return\n\t// all of the available results. If limit is specified and the continue field is empty, clients may\n\t// assume that no more results are available. This field is not supported if watch is true.\n\t//\n\t// The server guarantees that the objects returned when using continue will be identical to issuing\n\t// a single list call without a limit - that is, no objects created, modified, or deleted after the\n\t// first request is issued will be included in any subsequent continued requests. This is sometimes\n\t// referred to as a consistent snapshot, and ensures that a client that is using limit to receive\n\t// smaller chunks of a very large result can ensure they see all possible objects. If objects are\n\t// updated during a chunked list the version of the object that was present at the time the first list\n\t// result was calculated is returned.\n\tLimit int64 `json:\"limit,omitempty\" protobuf:\"varint,7,opt,name=limit\"`\n\t// The continue option should be set when retrieving more results from the server. Since this value is\n\t// server defined, clients may only use the continue value from a previous query result with identical\n\t// query parameters (except for the value of continue) and the server may reject a continue value it\n\t// does not recognize. If the specified continue value is no longer valid whether due to expiration\n\t// (generally five to fifteen minutes) or a configuration change on the server, the server will\n\t// respond with a 410 ResourceExpired error together with a continue token. If the client needs a\n\t// consistent list, it must restart their list without the continue field. Otherwise, the client may\n\t// send another list request with the token received with the 410 error, the server will respond with\n\t// a list starting from the next key, but from the latest snapshot, which is inconsistent from the\n\t// previous list results - objects that are created, modified, or deleted after the first list request\n\t// will be included in the response, as long as their keys are after the \"next key\".\n\t//\n\t// This field is not supported when watch is true. Clients may start a watch from the last\n\t// resourceVersion value returned by the server and not miss any modifications.\n\tContinue string `json:\"continue,omitempty\" protobuf:\"bytes,8,opt,name=continue\"`\n\n\t// `sendInitialEvents=true` may be set together with `watch=true`.\n\t// In that case, the watch stream will begin with synthetic events to\n\t// produce the current state of objects in the collection. Once all such\n\t// events have been sent, a synthetic \"Bookmark\" event  will be sent.\n\t// The bookmark will report the ResourceVersion (RV) corresponding to the\n\t// set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation.\n\t// Afterwards, the watch stream will proceed as usual, sending watch events\n\t// corresponding to changes (subsequent to the RV) to objects watched.\n\t//\n\t// When `sendInitialEvents` option is set, we require `resourceVersionMatch`\n\t// option to also be set. The semantic of the watch request is as following:\n\t// - `resourceVersionMatch` = NotOlderThan\n\t//   is interpreted as \"data at least as new as the provided `resourceVersion`\"\n\t//   and the bookmark event is send when the state is synced\n\t//   to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n\t//   If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n\t//   bookmark event is send when the state is synced at least to the moment\n\t//   when request started being processed.\n\t// - `resourceVersionMatch` set to any other value or unset\n\t//   Invalid error is returned.\n\t//\n\t// Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\n\t// compatibility reasons) and to false otherwise.\n\t// +optional\n\tSendInitialEvents *bool `json:\"sendInitialEvents,omitempty\" protobuf:\"varint,11,opt,name=sendInitialEvents\"`\n}\n\n// resourceVersionMatch specifies how the resourceVersion parameter is applied. resourceVersionMatch\n// may only be set if resourceVersion is also set.\n//\n// \"NotOlderThan\" matches data at least as new as the provided resourceVersion.\n// \"Exact\" matches data at the exact resourceVersion provided.\n//\n// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n// details.\ntype ResourceVersionMatch string\n\nconst (\n\t// ResourceVersionMatchNotOlderThan matches data at least as new as the provided\n\t// resourceVersion.\n\tResourceVersionMatchNotOlderThan ResourceVersionMatch = \"NotOlderThan\"\n\t// ResourceVersionMatchExact matches data at the exact resourceVersion\n\t// provided.\n\tResourceVersionMatchExact ResourceVersionMatch = \"Exact\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// GetOptions is the standard query options to the standard REST get call.\ntype GetOptions struct {\n\tTypeMeta `json:\",inline\"`\n\t// resourceVersion sets a constraint on what resource versions a request may be served from.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,1,opt,name=resourceVersion\"`\n\t// +k8s:deprecated=includeUninitialized,protobuf=2\n}\n\n// DeletionPropagation decides if a deletion will propagate to the dependents of\n// the object, and how the garbage collector will handle the propagation.\ntype DeletionPropagation string\n\nconst (\n\t// Orphans the dependents.\n\tDeletePropagationOrphan DeletionPropagation = \"Orphan\"\n\t// Deletes the object from the key-value store, the garbage collector will\n\t// delete the dependents in the background.\n\tDeletePropagationBackground DeletionPropagation = \"Background\"\n\t// The object exists in the key-value store until the garbage collector\n\t// deletes all the dependents whose ownerReference.blockOwnerDeletion=true\n\t// from the key-value store.  API sever will put the \"foregroundDeletion\"\n\t// finalizer on the object, and sets its deletionTimestamp.  This policy is\n\t// cascading, i.e., the dependents will be deleted with Foreground.\n\tDeletePropagationForeground DeletionPropagation = \"Foreground\"\n)\n\nconst (\n\t// DryRunAll means to complete all processing stages, but don't\n\t// persist changes to storage.\n\tDryRunAll = \"All\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DeleteOptions may be provided when deleting an API object.\ntype DeleteOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// The duration in seconds before the object should be deleted. Value must be non-negative integer.\n\t// The value zero indicates delete immediately. If this value is nil, the default grace period for the\n\t// specified type will be used.\n\t// Defaults to a per object value if not specified. zero means delete immediately.\n\t// +optional\n\tGracePeriodSeconds *int64 `json:\"gracePeriodSeconds,omitempty\" protobuf:\"varint,1,opt,name=gracePeriodSeconds\"`\n\n\t// Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be\n\t// returned.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tPreconditions *Preconditions `json:\"preconditions,omitempty\" protobuf:\"bytes,2,opt,name=preconditions\"`\n\n\t// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.\n\t// Should the dependent objects be orphaned. If true/false, the \"orphan\"\n\t// finalizer will be added to/removed from the object's finalizers list.\n\t// Either this field or PropagationPolicy may be set, but not both.\n\t// +optional\n\tOrphanDependents *bool `json:\"orphanDependents,omitempty\" protobuf:\"varint,3,opt,name=orphanDependents\"`\n\n\t// Whether and how garbage collection will be performed.\n\t// Either this field or OrphanDependents may be set, but not both.\n\t// The default policy is decided by the existing finalizer set in the\n\t// metadata.finalizers and the resource-specific default policy.\n\t// Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -\n\t// allow the garbage collector to delete the dependents in the background;\n\t// 'Foreground' - a cascading policy that deletes all dependents in the\n\t// foreground.\n\t// +optional\n\tPropagationPolicy *DeletionPropagation `json:\"propagationPolicy,omitempty\" protobuf:\"varint,4,opt,name=propagationPolicy\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,5,rep,name=dryRun\"`\n}\n\nconst (\n\t// FieldValidationIgnore ignores unknown/duplicate fields\n\tFieldValidationIgnore = \"Ignore\"\n\t// FieldValidationWarn responds with a warning, but successfully serve the request\n\tFieldValidationWarn = \"Warn\"\n\t// FieldValidationStrict fails the request on unknown/duplicate fields\n\tFieldValidationStrict = \"Strict\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CreateOptions may be provided when creating an API object.\ntype CreateOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\t// +k8s:deprecated=includeUninitialized,protobuf=2\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint.\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,3,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,4,name=fieldValidation\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PatchOptions may be provided when patching an API object.\n// PatchOptions is meant to be a superset of UpdateOptions.\ntype PatchOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// Force is going to \"force\" Apply requests. It means user will\n\t// re-acquire conflicting fields owned by other people. Force\n\t// flag must be unset for non-apply patch requests.\n\t// +optional\n\tForce *bool `json:\"force,omitempty\" protobuf:\"varint,2,opt,name=force\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint. This\n\t// field is required for apply requests\n\t// (application/apply-patch) but optional for non-apply patch\n\t// types (JsonPatch, MergePatch, StrategicMergePatch).\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,3,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,4,name=fieldValidation\"`\n}\n\n// ApplyOptions may be provided when applying an API object.\n// FieldManager is required for apply requests.\n// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation\n// that speaks specifically to how the options fields relate to apply.\ntype ApplyOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// Force is going to \"force\" Apply requests. It means user will\n\t// re-acquire conflicting fields owned by other people.\n\tForce bool `json:\"force\" protobuf:\"varint,2,opt,name=force\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint. This\n\t// field is required.\n\tFieldManager string `json:\"fieldManager\" protobuf:\"bytes,3,name=fieldManager\"`\n}\n\nfunc (o ApplyOptions) ToPatchOptions() PatchOptions {\n\treturn PatchOptions{DryRun: o.DryRun, Force: &o.Force, FieldManager: o.FieldManager}\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// UpdateOptions may be provided when updating an API object.\n// All fields in UpdateOptions should also be present in PatchOptions.\ntype UpdateOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint.\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,2,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,3,name=fieldValidation\"`\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\ntype Preconditions struct {\n\t// Specifies the target UID.\n\t// +optional\n\tUID *types.UID `json:\"uid,omitempty\" protobuf:\"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// Specifies the target ResourceVersion\n\t// +optional\n\tResourceVersion *string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,2,opt,name=resourceVersion\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Status is a return value for calls that don't return other objects.\ntype Status struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Status of the operation.\n\t// One of: \"Success\" or \"Failure\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus string `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// A human-readable description of the status of this operation.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// A machine-readable description of why this operation is in the\n\t// \"Failure\" status. If this value is empty there\n\t// is no information available. A Reason clarifies an HTTP status\n\t// code but does not override it.\n\t// +optional\n\tReason StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason,casttype=StatusReason\"`\n\t// Extended data associated with the reason.  Each reason may define its\n\t// own extended details. This field is optional and the data returned\n\t// is not guaranteed to conform to any schema except that defined by\n\t// the reason type.\n\t// +optional\n\tDetails *StatusDetails `json:\"details,omitempty\" protobuf:\"bytes,5,opt,name=details\"`\n\t// Suggested HTTP return code for this status, 0 if not set.\n\t// +optional\n\tCode int32 `json:\"code,omitempty\" protobuf:\"varint,6,opt,name=code\"`\n}\n\n// StatusDetails is a set of additional properties that MAY be set by the\n// server to provide additional information about a response. The Reason\n// field of a Status object defines what attributes will be set. Clients\n// must ignore fields that do not match the defined type of each attribute,\n// and should assume that any attribute may be empty, invalid, or under\n// defined.\ntype StatusDetails struct {\n\t// The name attribute of the resource associated with the status StatusReason\n\t// (when there is a single name which can be described).\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The group attribute of the resource associated with the status StatusReason.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,2,opt,name=group\"`\n\t// The kind attribute of the resource associated with the status StatusReason.\n\t// On some operations may differ from the requested resource Kind.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,3,opt,name=kind\"`\n\t// UID of the resource.\n\t// (when there is a single resource which can be described).\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// The Causes array includes more details associated with the StatusReason\n\t// failure. Not all StatusReasons may provide detailed causes.\n\t// +optional\n\tCauses []StatusCause `json:\"causes,omitempty\" protobuf:\"bytes,4,rep,name=causes\"`\n\t// If specified, the time in seconds before the operation should be retried. Some errors may indicate\n\t// the client must take an alternate action - for those errors this field may indicate how long to wait\n\t// before taking the alternate action.\n\t// +optional\n\tRetryAfterSeconds int32 `json:\"retryAfterSeconds,omitempty\" protobuf:\"varint,5,opt,name=retryAfterSeconds\"`\n}\n\n// Values of Status.Status\nconst (\n\tStatusSuccess = \"Success\"\n\tStatusFailure = \"Failure\"\n)\n\n// StatusReason is an enumeration of possible failure causes.  Each StatusReason\n// must map to a single HTTP status code, but multiple reasons may map\n// to the same HTTP status code.\n// TODO: move to apiserver\ntype StatusReason string\n\nconst (\n\t// StatusReasonUnknown means the server has declined to indicate a specific reason.\n\t// The details field may contain other information about this error.\n\t// Status code 500.\n\tStatusReasonUnknown StatusReason = \"\"\n\n\t// StatusReasonUnauthorized means the server can be reached and understood the request, but requires\n\t// the user to present appropriate authorization credentials (identified by the WWW-Authenticate header)\n\t// in order for the action to be completed. If the user has specified credentials on the request, the\n\t// server considers them insufficient.\n\t// Status code 401\n\tStatusReasonUnauthorized StatusReason = \"Unauthorized\"\n\n\t// StatusReasonForbidden means the server can be reached and understood the request, but refuses\n\t// to take any further action.  It is the result of the server being configured to deny access for some reason\n\t// to the requested resource by the client.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the forbidden resource\n\t//                   on some operations may differ from the requested\n\t//                   resource.\n\t//   \"id\"   string - the identifier of the forbidden resource\n\t// Status code 403\n\tStatusReasonForbidden StatusReason = \"Forbidden\"\n\n\t// StatusReasonNotFound means one or more resources required for this operation\n\t// could not be found.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the missing resource\n\t//                   on some operations may differ from the requested\n\t//                   resource.\n\t//   \"id\"   string - the identifier of the missing resource\n\t// Status code 404\n\tStatusReasonNotFound StatusReason = \"NotFound\"\n\n\t// StatusReasonAlreadyExists means the resource you are creating already exists.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the conflicting resource\n\t//   \"id\"   string - the identifier of the conflicting resource\n\t// Status code 409\n\tStatusReasonAlreadyExists StatusReason = \"AlreadyExists\"\n\n\t// StatusReasonConflict means the requested operation cannot be completed\n\t// due to a conflict in the operation. The client may need to alter the\n\t// request. Each resource may define custom details that indicate the\n\t// nature of the conflict.\n\t// Status code 409\n\tStatusReasonConflict StatusReason = \"Conflict\"\n\n\t// StatusReasonGone means the item is no longer available at the server and no\n\t// forwarding address is known.\n\t// Status code 410\n\tStatusReasonGone StatusReason = \"Gone\"\n\n\t// StatusReasonInvalid means the requested create or update operation cannot be\n\t// completed due to invalid data provided as part of the request. The client may\n\t// need to alter the request. When set, the client may use the StatusDetails\n\t// message field as a summary of the issues encountered.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the invalid resource\n\t//   \"id\"   string - the identifier of the invalid resource\n\t//   \"causes\"      - one or more StatusCause entries indicating the data in the\n\t//                   provided resource that was invalid.  The code, message, and\n\t//                   field attributes will be set.\n\t// Status code 422\n\tStatusReasonInvalid StatusReason = \"Invalid\"\n\n\t// StatusReasonServerTimeout means the server can be reached and understood the request,\n\t// but cannot complete the action in a reasonable time. The client should retry the request.\n\t// This is may be due to temporary server load or a transient communication issue with\n\t// another server. Status code 500 is used because the HTTP spec provides no suitable\n\t// server-requested client retry and the 5xx class represents actionable errors.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the resource being acted on.\n\t//   \"id\"   string - the operation that is being attempted.\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 500\n\tStatusReasonServerTimeout StatusReason = \"ServerTimeout\"\n\n\t// StatusReasonTimeout means that the request could not be completed within the given time.\n\t// Clients can get this response only when they specified a timeout param in the request,\n\t// or if the server cannot complete the operation within a reasonable amount of time.\n\t// The request might succeed with an increased value of timeout param. The client *should*\n\t// wait at least the number of seconds specified by the retryAfterSeconds field.\n\t// Details (optional):\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 504\n\tStatusReasonTimeout StatusReason = \"Timeout\"\n\n\t// StatusReasonTooManyRequests means the server experienced too many requests within a\n\t// given window and that the client must wait to perform the action again. A client may\n\t// always retry the request that led to this error, although the client should wait at least\n\t// the number of seconds specified by the retryAfterSeconds field.\n\t// Details (optional):\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 429\n\tStatusReasonTooManyRequests StatusReason = \"TooManyRequests\"\n\n\t// StatusReasonBadRequest means that the request itself was invalid, because the request\n\t// doesn't make any sense, for example deleting a read-only object.  This is different than\n\t// StatusReasonInvalid above which indicates that the API call could possibly succeed, but the\n\t// data was invalid.  API calls that return BadRequest can never succeed.\n\t// Status code 400\n\tStatusReasonBadRequest StatusReason = \"BadRequest\"\n\n\t// StatusReasonMethodNotAllowed means that the action the client attempted to perform on the\n\t// resource was not supported by the code - for instance, attempting to delete a resource that\n\t// can only be created. API calls that return MethodNotAllowed can never succeed.\n\t// Status code 405\n\tStatusReasonMethodNotAllowed StatusReason = \"MethodNotAllowed\"\n\n\t// StatusReasonNotAcceptable means that the accept types indicated by the client were not acceptable\n\t// to the server - for instance, attempting to receive protobuf for a resource that supports only json and yaml.\n\t// API calls that return NotAcceptable can never succeed.\n\t// Status code 406\n\tStatusReasonNotAcceptable StatusReason = \"NotAcceptable\"\n\n\t// StatusReasonRequestEntityTooLarge means that the request entity is too large.\n\t// Status code 413\n\tStatusReasonRequestEntityTooLarge StatusReason = \"RequestEntityTooLarge\"\n\n\t// StatusReasonUnsupportedMediaType means that the content type sent by the client is not acceptable\n\t// to the server - for instance, attempting to send protobuf for a resource that supports only json and yaml.\n\t// API calls that return UnsupportedMediaType can never succeed.\n\t// Status code 415\n\tStatusReasonUnsupportedMediaType StatusReason = \"UnsupportedMediaType\"\n\n\t// StatusReasonInternalError indicates that an internal error occurred, it is unexpected\n\t// and the outcome of the call is unknown.\n\t// Details (optional):\n\t//   \"causes\" - The original error\n\t// Status code 500\n\tStatusReasonInternalError StatusReason = \"InternalError\"\n\n\t// StatusReasonExpired indicates that the request is invalid because the content you are requesting\n\t// has expired and is no longer available. It is typically associated with watches that can't be\n\t// serviced.\n\t// Status code 410 (gone)\n\tStatusReasonExpired StatusReason = \"Expired\"\n\n\t// StatusReasonServiceUnavailable means that the request itself was valid,\n\t// but the requested service is unavailable at this time.\n\t// Retrying the request after some time might succeed.\n\t// Status code 503\n\tStatusReasonServiceUnavailable StatusReason = \"ServiceUnavailable\"\n)\n\n// StatusCause provides more information about an api.Status failure, including\n// cases when multiple errors are encountered.\ntype StatusCause struct {\n\t// A machine-readable description of the cause of the error. If this value is\n\t// empty there is no information available.\n\t// +optional\n\tType CauseType `json:\"reason,omitempty\" protobuf:\"bytes,1,opt,name=reason,casttype=CauseType\"`\n\t// A human-readable description of the cause of the error.  This field may be\n\t// presented as-is to a reader.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// The field of the resource that has caused this error, as named by its JSON\n\t// serialization. May include dot and postfix notation for nested attributes.\n\t// Arrays are zero-indexed.  Fields may appear more than once in an array of\n\t// causes due to fields having multiple errors.\n\t// Optional.\n\t//\n\t// Examples:\n\t//   \"name\" - the field \"name\" on the current resource\n\t//   \"items[0].name\" - the field \"name\" on the first array entry in \"items\"\n\t// +optional\n\tField string `json:\"field,omitempty\" protobuf:\"bytes,3,opt,name=field\"`\n}\n\n// CauseType is a machine readable value providing more detail about what\n// occurred in a status response. An operation may have multiple causes for a\n// status (whether Failure or Success).\ntype CauseType string\n\nconst (\n\t// CauseTypeFieldValueNotFound is used to report failure to find a requested value\n\t// (e.g. looking up an ID).\n\tCauseTypeFieldValueNotFound CauseType = \"FieldValueNotFound\"\n\t// CauseTypeFieldValueRequired is used to report required values that are not\n\t// provided (e.g. empty strings, null values, or empty arrays).\n\tCauseTypeFieldValueRequired CauseType = \"FieldValueRequired\"\n\t// CauseTypeFieldValueDuplicate is used to report collisions of values that must be\n\t// unique (e.g. unique IDs).\n\tCauseTypeFieldValueDuplicate CauseType = \"FieldValueDuplicate\"\n\t// CauseTypeFieldValueInvalid is used to report malformed values (e.g. failed regex\n\t// match).\n\tCauseTypeFieldValueInvalid CauseType = \"FieldValueInvalid\"\n\t// CauseTypeFieldValueNotSupported is used to report valid (as per formatting rules)\n\t// values that can not be handled (e.g. an enumerated string).\n\tCauseTypeFieldValueNotSupported CauseType = \"FieldValueNotSupported\"\n\t// CauseTypeUnexpectedServerResponse is used to report when the server responded to the client\n\t// without the expected return type. The presence of this cause indicates the error may be\n\t// due to an intervening proxy or the server software malfunctioning.\n\tCauseTypeUnexpectedServerResponse CauseType = \"UnexpectedServerResponse\"\n\t// FieldManagerConflict is used to report when another client claims to manage this field,\n\t// It should only be returned for a request using server-side apply.\n\tCauseTypeFieldManagerConflict CauseType = \"FieldManagerConflict\"\n\t// CauseTypeResourceVersionTooLarge is used to report that the requested resource version\n\t// is newer than the data observed by the API server, so the request cannot be served.\n\tCauseTypeResourceVersionTooLarge CauseType = \"ResourceVersionTooLarge\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// List holds a list of objects, which may not be known by the server.\ntype List struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of objects\n\tItems []runtime.RawExtension `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// APIVersions lists the versions that are available, to allow clients to\n// discover the API at /api, which is the root path of the legacy v1 API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype APIVersions struct {\n\tTypeMeta `json:\",inline\"`\n\t// versions are the api versions that are available.\n\tVersions []string `json:\"versions\" protobuf:\"bytes,1,rep,name=versions\"`\n\t// a map of client CIDR to server address that is serving this group.\n\t// This is to help clients reach servers in the most network-efficient way possible.\n\t// Clients can use the appropriate server address as per the CIDR that they match.\n\t// In case of multiple matches, clients should use the longest matching CIDR.\n\t// The server returns only those CIDRs that it thinks that the client can match.\n\t// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n\t// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n\tServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:\"serverAddressByClientCIDRs\" protobuf:\"bytes,2,rep,name=serverAddressByClientCIDRs\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIGroupList is a list of APIGroup, to allow clients to discover the API at\n// /apis.\ntype APIGroupList struct {\n\tTypeMeta `json:\",inline\"`\n\t// groups is a list of APIGroup.\n\tGroups []APIGroup `json:\"groups\" protobuf:\"bytes,1,rep,name=groups\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIGroup contains the name, the supported versions, and the preferred version\n// of a group.\ntype APIGroup struct {\n\tTypeMeta `json:\",inline\"`\n\t// name is the name of the group.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// versions are the versions supported in this group.\n\tVersions []GroupVersionForDiscovery `json:\"versions\" protobuf:\"bytes,2,rep,name=versions\"`\n\t// preferredVersion is the version preferred by the API server, which\n\t// probably is the storage version.\n\t// +optional\n\tPreferredVersion GroupVersionForDiscovery `json:\"preferredVersion,omitempty\" protobuf:\"bytes,3,opt,name=preferredVersion\"`\n\t// a map of client CIDR to server address that is serving this group.\n\t// This is to help clients reach servers in the most network-efficient way possible.\n\t// Clients can use the appropriate server address as per the CIDR that they match.\n\t// In case of multiple matches, clients should use the longest matching CIDR.\n\t// The server returns only those CIDRs that it thinks that the client can match.\n\t// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n\t// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n\t// +optional\n\tServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:\"serverAddressByClientCIDRs,omitempty\" protobuf:\"bytes,4,rep,name=serverAddressByClientCIDRs\"`\n}\n\n// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\ntype ServerAddressByClientCIDR struct {\n\t// The CIDR with which clients can match their IP to figure out the server address that they should use.\n\tClientCIDR string `json:\"clientCIDR\" protobuf:\"bytes,1,opt,name=clientCIDR\"`\n\t// Address of this server, suitable for a client that matches the above CIDR.\n\t// This can be a hostname, hostname:port, IP or IP:port.\n\tServerAddress string `json:\"serverAddress\" protobuf:\"bytes,2,opt,name=serverAddress\"`\n}\n\n// GroupVersion contains the \"group/version\" and \"version\" string of a version.\n// It is made a struct to keep extensibility.\ntype GroupVersionForDiscovery struct {\n\t// groupVersion specifies the API group and version in the form \"group/version\"\n\tGroupVersion string `json:\"groupVersion\" protobuf:\"bytes,1,opt,name=groupVersion\"`\n\t// version specifies the version in the form of \"version\". This is to save\n\t// the clients the trouble of splitting the GroupVersion.\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n}\n\n// APIResource specifies the name of a resource and whether it is namespaced.\ntype APIResource struct {\n\t// name is the plural name of the resource.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n\t// The singularName is more correct for reporting status on a single item and both singular and plural are allowed\n\t// from the kubectl CLI interface.\n\tSingularName string `json:\"singularName\" protobuf:\"bytes,6,opt,name=singularName\"`\n\t// namespaced indicates if a resource is namespaced or not.\n\tNamespaced bool `json:\"namespaced\" protobuf:\"varint,2,opt,name=namespaced\"`\n\t// group is the preferred group of the resource.  Empty implies the group of the containing resource list.\n\t// For subresources, this may have a different value, for example: Scale\".\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,8,opt,name=group\"`\n\t// version is the preferred version of the resource.  Empty implies the version of the containing resource list\n\t// For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,9,opt,name=version\"`\n\t// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\n\tKind string `json:\"kind\" protobuf:\"bytes,3,opt,name=kind\"`\n\t// verbs is a list of supported kube verbs (this includes get, list, watch, create,\n\t// update, patch, delete, deletecollection, and proxy)\n\tVerbs Verbs `json:\"verbs\" protobuf:\"bytes,4,opt,name=verbs\"`\n\t// shortNames is a list of suggested short names of the resource.\n\tShortNames []string `json:\"shortNames,omitempty\" protobuf:\"bytes,5,rep,name=shortNames\"`\n\t// categories is a list of the grouped resources this resource belongs to (e.g. 'all')\n\tCategories []string `json:\"categories,omitempty\" protobuf:\"bytes,7,rep,name=categories\"`\n\t// The hash value of the storage version, the version this resource is\n\t// converted to when written to the data store. Value must be treated\n\t// as opaque by clients. Only equality comparison on the value is valid.\n\t// This is an alpha feature and may change or be removed in the future.\n\t// The field is populated by the apiserver only if the\n\t// StorageVersionHash feature gate is enabled.\n\t// This field will remain optional even if it graduates.\n\t// +optional\n\tStorageVersionHash string `json:\"storageVersionHash,omitempty\" protobuf:\"bytes,10,opt,name=storageVersionHash\"`\n}\n\n// Verbs masks the value so protobuf can generate\n//\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype Verbs []string\n\nfunc (vs Verbs) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(vs))\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIResourceList is a list of APIResource, it is used to expose the name of the\n// resources supported in a specific group and version, and if the resource\n// is namespaced.\ntype APIResourceList struct {\n\tTypeMeta `json:\",inline\"`\n\t// groupVersion is the group and version this APIResourceList is for.\n\tGroupVersion string `json:\"groupVersion\" protobuf:\"bytes,1,opt,name=groupVersion\"`\n\t// resources contains the name of the resources and if they are namespaced.\n\tAPIResources []APIResource `json:\"resources\" protobuf:\"bytes,2,rep,name=resources\"`\n}\n\n// RootPaths lists the paths available at root.\n// For example: \"/healthz\", \"/apis\".\ntype RootPaths struct {\n\t// paths are the paths available at root.\n\tPaths []string `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n}\n\n// TODO: remove me when watch is refactored\nfunc LabelSelectorQueryParam(version string) string {\n\treturn \"labelSelector\"\n}\n\n// TODO: remove me when watch is refactored\nfunc FieldSelectorQueryParam(version string) string {\n\treturn \"fieldSelector\"\n}\n\n// String returns available api versions as a human-friendly version string.\nfunc (apiVersions APIVersions) String() string {\n\treturn strings.Join(apiVersions.Versions, \",\")\n}\n\nfunc (apiVersions APIVersions) GoString() string {\n\treturn apiVersions.String()\n}\n\n// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\ntype Patch struct{}\n\n// Note:\n// There are two different styles of label selectors used in versioned types:\n// an older style which is represented as just a string in versioned types, and a\n// newer style that is structured.  LabelSelector is an internal representation for the\n// latter style.\n\n// A label selector is a label query over a set of resources. The result of matchLabels and\n// matchExpressions are ANDed. An empty label selector matches all objects. A null\n// label selector matches no objects.\n// +structType=atomic\ntype LabelSelector struct {\n\t// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\n\t// map is equivalent to an element of matchExpressions, whose key field is \"key\", the\n\t// operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\n\t// +optional\n\tMatchLabels map[string]string `json:\"matchLabels,omitempty\" protobuf:\"bytes,1,rep,name=matchLabels\"`\n\t// matchExpressions is a list of label selector requirements. The requirements are ANDed.\n\t// +optional\n\tMatchExpressions []LabelSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,2,rep,name=matchExpressions\"`\n}\n\n// A label selector requirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\ntype LabelSelectorRequirement struct {\n\t// key is the label key that the selector applies to.\n\t// +patchMergeKey=key\n\t// +patchStrategy=merge\n\tKey string `json:\"key\" patchStrategy:\"merge\" patchMergeKey:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// operator represents a key's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists and DoesNotExist.\n\tOperator LabelSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=LabelSelectorOperator\"`\n\t// values is an array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty. This array is replaced during a strategic\n\t// merge patch.\n\t// +optional\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A label selector operator is the set of operators that can be used in a selector requirement.\ntype LabelSelectorOperator string\n\nconst (\n\tLabelSelectorOpIn           LabelSelectorOperator = \"In\"\n\tLabelSelectorOpNotIn        LabelSelectorOperator = \"NotIn\"\n\tLabelSelectorOpExists       LabelSelectorOperator = \"Exists\"\n\tLabelSelectorOpDoesNotExist LabelSelectorOperator = \"DoesNotExist\"\n)\n\n// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\n// that the fieldset applies to.\ntype ManagedFieldsEntry struct {\n\t// Manager is an identifier of the workflow managing these fields.\n\tManager string `json:\"manager,omitempty\" protobuf:\"bytes,1,opt,name=manager\"`\n\t// Operation is the type of operation which lead to this ManagedFieldsEntry being created.\n\t// The only valid values for this field are 'Apply' and 'Update'.\n\tOperation ManagedFieldsOperationType `json:\"operation,omitempty\" protobuf:\"bytes,2,opt,name=operation,casttype=ManagedFieldsOperationType\"`\n\t// APIVersion defines the version of this resource that this field set\n\t// applies to. The format is \"group/version\" just like the top-level\n\t// APIVersion field. It is necessary to track the version of a field\n\t// set because it cannot be automatically converted.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n\t// Time is the timestamp of when the ManagedFields entry was added. The\n\t// timestamp will also be updated if a field is added, the manager\n\t// changes any of the owned fields value or removes a field. The\n\t// timestamp does not update when a field is removed from the entry\n\t// because another manager took it over.\n\t// +optional\n\tTime *Time `json:\"time,omitempty\" protobuf:\"bytes,4,opt,name=time\"`\n\n\t// Fields is tombstoned to show why 5 is a reserved protobuf tag.\n\t//Fields *Fields `json:\"fields,omitempty\" protobuf:\"bytes,5,opt,name=fields,casttype=Fields\"`\n\n\t// FieldsType is the discriminator for the different fields format and version.\n\t// There is currently only one possible value: \"FieldsV1\"\n\tFieldsType string `json:\"fieldsType,omitempty\" protobuf:\"bytes,6,opt,name=fieldsType\"`\n\t// FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n\t// +optional\n\tFieldsV1 *FieldsV1 `json:\"fieldsV1,omitempty\" protobuf:\"bytes,7,opt,name=fieldsV1\"`\n\n\t// Subresource is the name of the subresource used to update that object, or\n\t// empty string if the object was updated through the main resource. The\n\t// value of this field is used to distinguish between managers, even if they\n\t// share the same name. For example, a status update will be distinct from a\n\t// regular update using the same manager name.\n\t// Note that the APIVersion field is not related to the Subresource field and\n\t// it always corresponds to the version of the main resource.\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,8,opt,name=subresource\"`\n}\n\n// ManagedFieldsOperationType is the type of operation which lead to a ManagedFieldsEntry being created.\ntype ManagedFieldsOperationType string\n\nconst (\n\tManagedFieldsOperationApply  ManagedFieldsOperationType = \"Apply\"\n\tManagedFieldsOperationUpdate ManagedFieldsOperationType = \"Update\"\n)\n\n// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n//\n// Each key is either a '.' representing the field itself, and will always map to an empty set,\n// or a string representing a sub-field or item. The string will follow one of these four formats:\n// 'f:<name>', where <name> is the name of a field in a struct, or key in a map\n// 'v:<value>', where <value> is the exact json formatted value of a list item\n// 'i:<index>', where <index> is position of a item in a list\n// 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values\n// If a key maps to an empty Fields value, the field that key represents is part of the set.\n//\n// The exact format is defined in sigs.k8s.io/structured-merge-diff\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype FieldsV1 struct {\n\t// Raw is the underlying serialization of this object.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,1,opt,name=Raw\"`\n}\n\nfunc (f FieldsV1) String() string {\n\treturn string(f.Raw)\n}\n\n// TODO: Table does not generate to protobuf because of the interface{} - fix protobuf\n//   generation to support a meta type that can accept any valid JSON. This can be introduced\n//   in a v1 because clients a) receive an error if they try to access proto today, and b)\n//   once introduced they would be able to gracefully switch over to using it.\n\n// Table is a tabular representation of a set of API resources. The server transforms the\n// object into a set of preferred columns for quickly reviewing the objects.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=false\ntype Table struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\"`\n\n\t// columnDefinitions describes each column in the returned items array. The number of cells per row\n\t// will always match the number of column definitions.\n\tColumnDefinitions []TableColumnDefinition `json:\"columnDefinitions\"`\n\t// rows is the list of items in the table.\n\tRows []TableRow `json:\"rows\"`\n}\n\n// TableColumnDefinition contains information about a column returned in the Table.\n// +protobuf=false\ntype TableColumnDefinition struct {\n\t// name is a human readable name for the column.\n\tName string `json:\"name\"`\n\t// type is an OpenAPI type definition for this column, such as number, integer, string, or\n\t// array.\n\t// See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\n\tType string `json:\"type\"`\n\t// format is an optional OpenAPI type modifier for this column. A format modifies the type and\n\t// imposes additional rules, like date or time formatting for a string. The 'name' format is applied\n\t// to the primary identifier column which has type 'string' to assist in clients identifying column\n\t// is the resource name.\n\t// See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\n\tFormat string `json:\"format\"`\n\t// description is a human readable description of this column.\n\tDescription string `json:\"description\"`\n\t// priority is an integer defining the relative importance of this column compared to others. Lower\n\t// numbers are considered higher priority. Columns that may be omitted in limited space scenarios\n\t// should be given a higher priority.\n\tPriority int32 `json:\"priority\"`\n}\n\n// TableRow is an individual row in a table.\n// +protobuf=false\ntype TableRow struct {\n\t// cells will be as wide as the column definitions array and may contain strings, numbers (float64 or\n\t// int64), booleans, simple maps, lists, or null. See the type field of the column definition for a\n\t// more detailed description.\n\tCells []interface{} `json:\"cells\"`\n\t// conditions describe additional status of a row that are relevant for a human user. These conditions\n\t// apply to the row, not to the object, and will be specific to table output. The only defined\n\t// condition type is 'Completed', for a row that indicates a resource that has run to completion and\n\t// can be given less visual priority.\n\t// +optional\n\tConditions []TableRowCondition `json:\"conditions,omitempty\"`\n\t// This field contains the requested additional information about each object based on the includeObject\n\t// policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the\n\t// default serialization of the object for the current API version, and if \"Metadata\" (the default) will\n\t// contain the object metadata. Check the returned kind and apiVersion of the object before parsing.\n\t// The media type of the object will always match the enclosing list - if this as a JSON table, these\n\t// will be JSON encoded objects.\n\t// +optional\n\tObject runtime.RawExtension `json:\"object,omitempty\"`\n}\n\n// TableRowCondition allows a row to be marked with additional information.\n// +protobuf=false\ntype TableRowCondition struct {\n\t// Type of row condition. The only defined value is 'Completed' indicating that the\n\t// object this row represents has reached a completed state and may be given less visual\n\t// priority than other rows. Clients are not required to honor any conditions but should\n\t// be consistent where possible about handling the conditions.\n\tType RowConditionType `json:\"type\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\"`\n\t// (brief) machine readable reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\"`\n}\n\ntype RowConditionType string\n\n// These are valid conditions of a row. This list is not exhaustive and new conditions may be\n// included by other resources.\nconst (\n\t// RowCompleted means the underlying resource has reached completion and may be given less\n\t// visual priority than other resources.\n\tRowCompleted RowConditionType = \"Completed\"\n)\n\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// IncludeObjectPolicy controls which portion of the object is returned with a Table.\ntype IncludeObjectPolicy string\n\nconst (\n\t// IncludeNone returns no object.\n\tIncludeNone IncludeObjectPolicy = \"None\"\n\t// IncludeMetadata serializes the object containing only its metadata field.\n\tIncludeMetadata IncludeObjectPolicy = \"Metadata\"\n\t// IncludeObject contains the full object.\n\tIncludeObject IncludeObjectPolicy = \"Object\"\n)\n\n// TableOptions are used when a Table is requested by the caller.\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype TableOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// NoHeaders is only exposed for internal callers. It is not included in our OpenAPI definitions\n\t// and may be removed as a field in a future release.\n\tNoHeaders bool `json:\"-\"`\n\n\t// includeObject decides whether to include each object along with its columnar information.\n\t// Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and\n\t// specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind\n\t// in version v1beta1 of the meta.k8s.io API group.\n\tIncludeObject IncludeObjectPolicy `json:\"includeObject,omitempty\" protobuf:\"bytes,1,opt,name=includeObject,casttype=IncludeObjectPolicy\"`\n}\n\n// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients\n// to get access to a particular ObjectMeta schema without knowing the details of the version.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadata struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n}\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadataList struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items contains each of the included items.\n\tItems []PartialObjectMetadata `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Condition contains details for one aspect of the current state of this API Resource.\n// ---\n// This struct is intended for direct use as an array at the field path .status.conditions.  For example,\n//\n//\ttype FooStatus struct{\n//\t    // Represents the observations of a foo's current state.\n//\t    // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n//\t    // +patchMergeKey=type\n//\t    // +patchStrategy=merge\n//\t    // +listType=map\n//\t    // +listMapKey=type\n//\t    Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n//\n//\t    // other fields\n//\t}\ntype Condition struct {\n\t// type of condition in CamelCase or in foo.example.com/CamelCase.\n\t// ---\n\t// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\n\t// useful (see .node.status.conditions), the ability to deconflict is important.\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tType string `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\t// status of the condition, one of True, False, Unknown.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Enum=True;False;Unknown\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status\"`\n\t// observedGeneration represents the .metadata.generation that the condition was set based upon.\n\t// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\n\t// with respect to the current state of the instance.\n\t// +optional\n\t// +kubebuilder:validation:Minimum=0\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\t// lastTransitionTime is the last time the condition transitioned from one status to another.\n\t// This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Type=string\n\t// +kubebuilder:validation:Format=date-time\n\tLastTransitionTime Time `json:\"lastTransitionTime\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// reason contains a programmatic identifier indicating the reason for the condition's last transition.\n\t// Producers of specific condition types may define expected values and meanings for this field,\n\t// and whether the values are considered a guaranteed API.\n\t// The value should be a CamelCase string.\n\t// This field may not be empty.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:MaxLength=1024\n\t// +kubebuilder:validation:MinLength=1\n\t// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`\n\tReason string `json:\"reason\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// message is a human readable message indicating details about the transition.\n\t// This may be an empty string.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:MaxLength=32768\n\tMessage string `json:\"message\" protobuf:\"bytes,6,opt,name=message\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_APIGroup = map[string]string{\n\t\"\":                           \"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\n\t\"name\":                       \"name is the name of the group.\",\n\t\"versions\":                   \"versions are the versions supported in this group.\",\n\t\"preferredVersion\":           \"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\n\t\"serverAddressByClientCIDRs\": \"a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\",\n}\n\nfunc (APIGroup) SwaggerDoc() map[string]string {\n\treturn map_APIGroup\n}\n\nvar map_APIGroupList = map[string]string{\n\t\"\":       \"APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\",\n\t\"groups\": \"groups is a list of APIGroup.\",\n}\n\nfunc (APIGroupList) SwaggerDoc() map[string]string {\n\treturn map_APIGroupList\n}\n\nvar map_APIResource = map[string]string{\n\t\"\":                   \"APIResource specifies the name of a resource and whether it is namespaced.\",\n\t\"name\":               \"name is the plural name of the resource.\",\n\t\"singularName\":       \"singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.\",\n\t\"namespaced\":         \"namespaced indicates if a resource is namespaced or not.\",\n\t\"group\":              \"group is the preferred group of the resource.  Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\\\".\",\n\t\"version\":            \"version is the preferred version of the resource.  Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\\\".\",\n\t\"kind\":               \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n\t\"verbs\":              \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n\t\"shortNames\":         \"shortNames is a list of suggested short names of the resource.\",\n\t\"categories\":         \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n\t\"storageVersionHash\": \"The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.\",\n}\n\nfunc (APIResource) SwaggerDoc() map[string]string {\n\treturn map_APIResource\n}\n\nvar map_APIResourceList = map[string]string{\n\t\"\":             \"APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.\",\n\t\"groupVersion\": \"groupVersion is the group and version this APIResourceList is for.\",\n\t\"resources\":    \"resources contains the name of the resources and if they are namespaced.\",\n}\n\nfunc (APIResourceList) SwaggerDoc() map[string]string {\n\treturn map_APIResourceList\n}\n\nvar map_APIVersions = map[string]string{\n\t\"\":                           \"APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.\",\n\t\"versions\":                   \"versions are the api versions that are available.\",\n\t\"serverAddressByClientCIDRs\": \"a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\",\n}\n\nfunc (APIVersions) SwaggerDoc() map[string]string {\n\treturn map_APIVersions\n}\n\nvar map_ApplyOptions = map[string]string{\n\t\"\":             \"ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.\",\n\t\"dryRun\":       \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"force\":        \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people.\",\n\t\"fieldManager\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.\",\n}\n\nfunc (ApplyOptions) SwaggerDoc() map[string]string {\n\treturn map_ApplyOptions\n}\n\nvar map_Condition = map[string]string{\n\t\"\":                   \"Condition contains details for one aspect of the current state of this API Resource.\",\n\t\"type\":               \"type of condition in CamelCase or in foo.example.com/CamelCase.\",\n\t\"status\":             \"status of the condition, one of True, False, Unknown.\",\n\t\"observedGeneration\": \"observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\",\n\t\"reason\":             \"reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.\",\n\t\"message\":            \"message is a human readable message indicating details about the transition. This may be an empty string.\",\n}\n\nfunc (Condition) SwaggerDoc() map[string]string {\n\treturn map_Condition\n}\n\nvar map_CreateOptions = map[string]string{\n\t\"\":                \"CreateOptions may be provided when creating an API object.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (CreateOptions) SwaggerDoc() map[string]string {\n\treturn map_CreateOptions\n}\n\nvar map_DeleteOptions = map[string]string{\n\t\"\":                   \"DeleteOptions may be provided when deleting an API object.\",\n\t\"gracePeriodSeconds\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n\t\"preconditions\":      \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\n\t\"orphanDependents\":   \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n\t\"propagationPolicy\":  \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n\t\"dryRun\":             \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n}\n\nfunc (DeleteOptions) SwaggerDoc() map[string]string {\n\treturn map_DeleteOptions\n}\n\nvar map_FieldsV1 = map[string]string{\n\t\"\": \"FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\\n\\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\\n\\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\",\n}\n\nfunc (FieldsV1) SwaggerDoc() map[string]string {\n\treturn map_FieldsV1\n}\n\nvar map_GetOptions = map[string]string{\n\t\"\":                \"GetOptions is the standard query options to the standard REST get call.\",\n\t\"resourceVersion\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n}\n\nfunc (GetOptions) SwaggerDoc() map[string]string {\n\treturn map_GetOptions\n}\n\nvar map_GroupVersionForDiscovery = map[string]string{\n\t\"\":             \"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\n\t\"groupVersion\": \"groupVersion specifies the API group and version in the form \\\"group/version\\\"\",\n\t\"version\":      \"version specifies the version in the form of \\\"version\\\". This is to save the clients the trouble of splitting the GroupVersion.\",\n}\n\nfunc (GroupVersionForDiscovery) SwaggerDoc() map[string]string {\n\treturn map_GroupVersionForDiscovery\n}\n\nvar map_LabelSelector = map[string]string{\n\t\"\":                 \"A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.\",\n\t\"matchLabels\":      \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n\t\"matchExpressions\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n}\n\nfunc (LabelSelector) SwaggerDoc() map[string]string {\n\treturn map_LabelSelector\n}\n\nvar map_LabelSelectorRequirement = map[string]string{\n\t\"\":         \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n\t\"key\":      \"key is the label key that the selector applies to.\",\n\t\"operator\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n\t\"values\":   \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (LabelSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_LabelSelectorRequirement\n}\n\nvar map_List = map[string]string{\n\t\"\":         \"List holds a list of objects, which may not be known by the server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of objects\",\n}\n\nfunc (List) SwaggerDoc() map[string]string {\n\treturn map_List\n}\n\nvar map_ListMeta = map[string]string{\n\t\"\":                   \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n\t\"selfLink\":           \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n\t\"resourceVersion\":    \"String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"continue\":           \"continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.\",\n\t\"remainingItemCount\": \"remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.\",\n}\n\nfunc (ListMeta) SwaggerDoc() map[string]string {\n\treturn map_ListMeta\n}\n\nvar map_ListOptions = map[string]string{\n\t\"\":                     \"ListOptions is the query options to a standard REST list call.\",\n\t\"labelSelector\":        \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n\t\"fieldSelector\":        \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n\t\"watch\":                \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n\t\"allowWatchBookmarks\":  \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n\t\"resourceVersion\":      \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n\t\"resourceVersionMatch\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n\t\"timeoutSeconds\":       \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n\t\"limit\":                \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n\t\"continue\":             \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n\t\"sendInitialEvents\":    \"`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\\"Bookmark\\\" event  will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\\"k8s.io/initial-events-end\\\": \\\"true\\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\\n\\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\\n  is interpreted as \\\"data at least as new as the provided `resourceVersion`\\\"\\n  and the bookmark event is send when the state is synced\\n  to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\\n  If `resourceVersion` is unset, this is interpreted as \\\"consistent read\\\" and the\\n  bookmark event is send when the state is synced at least to the moment\\n  when request started being processed.\\n- `resourceVersionMatch` set to any other value or unset\\n  Invalid error is returned.\\n\\nDefaults to true if `resourceVersion=\\\"\\\"` or `resourceVersion=\\\"0\\\"` (for backward compatibility reasons) and to false otherwise.\",\n}\n\nfunc (ListOptions) SwaggerDoc() map[string]string {\n\treturn map_ListOptions\n}\n\nvar map_ManagedFieldsEntry = map[string]string{\n\t\"\":            \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n\t\"manager\":     \"Manager is an identifier of the workflow managing these fields.\",\n\t\"operation\":   \"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\n\t\"apiVersion\":  \"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\n\t\"time\":        \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\n\t\"fieldsType\":  \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n\t\"fieldsV1\":    \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\n\t\"subresource\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n}\n\nfunc (ManagedFieldsEntry) SwaggerDoc() map[string]string {\n\treturn map_ManagedFieldsEntry\n}\n\nvar map_ObjectMeta = map[string]string{\n\t\"\":                           \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n\t\"name\":                       \"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\",\n\t\"generateName\":               \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n\t\"namespace\":                  \"Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \\\"default\\\" namespace, but \\\"default\\\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\\n\\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\",\n\t\"selfLink\":                   \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n\t\"uid\":                        \"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"resourceVersion\":            \"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\\n\\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"generation\":                 \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n\t\"creationTimestamp\":          \"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"deletionTimestamp\":          \"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"deletionGracePeriodSeconds\": \"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\n\t\"labels\":                     \"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\",\n\t\"annotations\":                \"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\",\n\t\"ownerReferences\":            \"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.\",\n\t\"finalizers\":                 \"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\n\t\"managedFields\":              \"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\n}\n\nfunc (ObjectMeta) SwaggerDoc() map[string]string {\n\treturn map_ObjectMeta\n}\n\nvar map_OwnerReference = map[string]string{\n\t\"\":                   \"OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.\",\n\t\"apiVersion\":         \"API version of the referent.\",\n\t\"kind\":               \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":               \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\",\n\t\"uid\":                \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"controller\":         \"If true, this reference points to the managing controller.\",\n\t\"blockOwnerDeletion\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n}\n\nfunc (OwnerReference) SwaggerDoc() map[string]string {\n\treturn map_OwnerReference\n}\n\nvar map_PartialObjectMetadata = map[string]string{\n\t\"\":         \"PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients to get access to a particular ObjectMeta schema without knowing the details of the version.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n}\n\nfunc (PartialObjectMetadata) SwaggerDoc() map[string]string {\n\treturn map_PartialObjectMetadata\n}\n\nvar map_PartialObjectMetadataList = map[string]string{\n\t\"\":         \"PartialObjectMetadataList contains a list of objects containing only their metadata\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items contains each of the included items.\",\n}\n\nfunc (PartialObjectMetadataList) SwaggerDoc() map[string]string {\n\treturn map_PartialObjectMetadataList\n}\n\nvar map_Patch = map[string]string{\n\t\"\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\",\n}\n\nfunc (Patch) SwaggerDoc() map[string]string {\n\treturn map_Patch\n}\n\nvar map_PatchOptions = map[string]string{\n\t\"\":                \"PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"force\":           \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (PatchOptions) SwaggerDoc() map[string]string {\n\treturn map_PatchOptions\n}\n\nvar map_Preconditions = map[string]string{\n\t\"\":                \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n\t\"uid\":             \"Specifies the target UID.\",\n\t\"resourceVersion\": \"Specifies the target ResourceVersion\",\n}\n\nfunc (Preconditions) SwaggerDoc() map[string]string {\n\treturn map_Preconditions\n}\n\nvar map_RootPaths = map[string]string{\n\t\"\":      \"RootPaths lists the paths available at root. For example: \\\"/healthz\\\", \\\"/apis\\\".\",\n\t\"paths\": \"paths are the paths available at root.\",\n}\n\nfunc (RootPaths) SwaggerDoc() map[string]string {\n\treturn map_RootPaths\n}\n\nvar map_ServerAddressByClientCIDR = map[string]string{\n\t\"\":              \"ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\",\n\t\"clientCIDR\":    \"The CIDR with which clients can match their IP to figure out the server address that they should use.\",\n\t\"serverAddress\": \"Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.\",\n}\n\nfunc (ServerAddressByClientCIDR) SwaggerDoc() map[string]string {\n\treturn map_ServerAddressByClientCIDR\n}\n\nvar map_Status = map[string]string{\n\t\"\":         \"Status is a return value for calls that don't return other objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"status\":   \"Status of the operation. One of: \\\"Success\\\" or \\\"Failure\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"message\":  \"A human-readable description of the status of this operation.\",\n\t\"reason\":   \"A machine-readable description of why this operation is in the \\\"Failure\\\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.\",\n\t\"details\":  \"Extended data associated with the reason.  Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.\",\n\t\"code\":     \"Suggested HTTP return code for this status, 0 if not set.\",\n}\n\nfunc (Status) SwaggerDoc() map[string]string {\n\treturn map_Status\n}\n\nvar map_StatusCause = map[string]string{\n\t\"\":        \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n\t\"reason\":  \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n\t\"message\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n\t\"field\":   \"The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed.  Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\\n\\nExamples:\\n  \\\"name\\\" - the field \\\"name\\\" on the current resource\\n  \\\"items[0].name\\\" - the field \\\"name\\\" on the first array entry in \\\"items\\\"\",\n}\n\nfunc (StatusCause) SwaggerDoc() map[string]string {\n\treturn map_StatusCause\n}\n\nvar map_StatusDetails = map[string]string{\n\t\"\":                  \"StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.\",\n\t\"name\":              \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n\t\"group\":             \"The group attribute of the resource associated with the status StatusReason.\",\n\t\"kind\":              \"The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"uid\":               \"UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"causes\":            \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n\t\"retryAfterSeconds\": \"If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.\",\n}\n\nfunc (StatusDetails) SwaggerDoc() map[string]string {\n\treturn map_StatusDetails\n}\n\nvar map_Table = map[string]string{\n\t\"\":                  \"Table is a tabular representation of a set of API resources. The server transforms the object into a set of preferred columns for quickly reviewing the objects.\",\n\t\"metadata\":          \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"columnDefinitions\": \"columnDefinitions describes each column in the returned items array. The number of cells per row will always match the number of column definitions.\",\n\t\"rows\":              \"rows is the list of items in the table.\",\n}\n\nfunc (Table) SwaggerDoc() map[string]string {\n\treturn map_Table\n}\n\nvar map_TableColumnDefinition = map[string]string{\n\t\"\":            \"TableColumnDefinition contains information about a column returned in the Table.\",\n\t\"name\":        \"name is a human readable name for the column.\",\n\t\"type\":        \"type is an OpenAPI type definition for this column, such as number, integer, string, or array. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\",\n\t\"format\":      \"format is an optional OpenAPI type modifier for this column. A format modifies the type and imposes additional rules, like date or time formatting for a string. The 'name' format is applied to the primary identifier column which has type 'string' to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\",\n\t\"description\": \"description is a human readable description of this column.\",\n\t\"priority\":    \"priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.\",\n}\n\nfunc (TableColumnDefinition) SwaggerDoc() map[string]string {\n\treturn map_TableColumnDefinition\n}\n\nvar map_TableOptions = map[string]string{\n\t\"\":              \"TableOptions are used when a Table is requested by the caller.\",\n\t\"includeObject\": \"includeObject decides whether to include each object along with its columnar information. Specifying \\\"None\\\" will return no object, specifying \\\"Object\\\" will return the full object contents, and specifying \\\"Metadata\\\" (the default) will return the object's metadata in the PartialObjectMetadata kind in version v1beta1 of the meta.k8s.io API group.\",\n}\n\nfunc (TableOptions) SwaggerDoc() map[string]string {\n\treturn map_TableOptions\n}\n\nvar map_TableRow = map[string]string{\n\t\"\":           \"TableRow is an individual row in a table.\",\n\t\"cells\":      \"cells will be as wide as the column definitions array and may contain strings, numbers (float64 or int64), booleans, simple maps, lists, or null. See the type field of the column definition for a more detailed description.\",\n\t\"conditions\": \"conditions describe additional status of a row that are relevant for a human user. These conditions apply to the row, not to the object, and will be specific to table output. The only defined condition type is 'Completed', for a row that indicates a resource that has run to completion and can be given less visual priority.\",\n\t\"object\":     \"This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \\\"None\\\", this field is empty, if \\\"Object\\\" this will be the default serialization of the object for the current API version, and if \\\"Metadata\\\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.\",\n}\n\nfunc (TableRow) SwaggerDoc() map[string]string {\n\treturn map_TableRow\n}\n\nvar map_TableRowCondition = map[string]string{\n\t\"\":        \"TableRowCondition allows a row to be marked with additional information.\",\n\t\"type\":    \"Type of row condition. The only defined value is 'Completed' indicating that the object this row represents has reached a completed state and may be given less visual priority than other rows. Clients are not required to honor any conditions but should be consistent where possible about handling the conditions.\",\n\t\"status\":  \"Status of the condition, one of True, False, Unknown.\",\n\t\"reason\":  \"(brief) machine readable reason for the condition's last transition.\",\n\t\"message\": \"Human readable message indicating details about last transition.\",\n}\n\nfunc (TableRowCondition) SwaggerDoc() map[string]string {\n\treturn map_TableRowCondition\n}\n\nvar map_TypeMeta = map[string]string{\n\t\"\":           \"TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.\",\n\t\"kind\":       \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"apiVersion\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n}\n\nfunc (TypeMeta) SwaggerDoc() map[string]string {\n\treturn map_TypeMeta\n}\n\nvar map_UpdateOptions = map[string]string{\n\t\"\":                \"UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (UpdateOptions) SwaggerDoc() map[string]string {\n\treturn map_UpdateOptions\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\tgojson \"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NestedFieldCopy returns a deep copy of the value of a nested field.\n// Returns false if the value is missing.\n// No error is returned for a nil field.\n//\n// Note: fields passed to this function are treated as keys within the passed\n// object; no array/slice syntax is supported.\nfunc NestedFieldCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\treturn runtime.DeepCopyJSONValue(val), true, nil\n}\n\n// NestedFieldNoCopy returns a reference to a nested field.\n// Returns false if value is not found and an error if unable\n// to traverse obj.\n//\n// Note: fields passed to this function are treated as keys within the passed\n// object; no array/slice syntax is supported.\nfunc NestedFieldNoCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error) {\n\tvar val interface{} = obj\n\n\tfor i, field := range fields {\n\t\tif val == nil {\n\t\t\treturn nil, false, nil\n\t\t}\n\t\tif m, ok := val.(map[string]interface{}); ok {\n\t\t\tval, ok = m[field]\n\t\t\tif !ok {\n\t\t\t\treturn nil, false, nil\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected map[string]interface{}\", jsonPath(fields[:i+1]), val, val)\n\t\t}\n\t}\n\treturn val, true, nil\n}\n\n// NestedString returns the string value of a nested field.\n// Returns false if value is not found and an error if not a string.\nfunc NestedString(obj map[string]interface{}, fields ...string) (string, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn \"\", found, err\n\t}\n\ts, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected string\", jsonPath(fields), val, val)\n\t}\n\treturn s, true, nil\n}\n\n// NestedBool returns the bool value of a nested field.\n// Returns false if value is not found and an error if not a bool.\nfunc NestedBool(obj map[string]interface{}, fields ...string) (bool, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn false, found, err\n\t}\n\tb, ok := val.(bool)\n\tif !ok {\n\t\treturn false, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected bool\", jsonPath(fields), val, val)\n\t}\n\treturn b, true, nil\n}\n\n// NestedFloat64 returns the float64 value of a nested field.\n// Returns false if value is not found and an error if not a float64.\nfunc NestedFloat64(obj map[string]interface{}, fields ...string) (float64, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn 0, found, err\n\t}\n\tf, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected float64\", jsonPath(fields), val, val)\n\t}\n\treturn f, true, nil\n}\n\n// NestedInt64 returns the int64 value of a nested field.\n// Returns false if value is not found and an error if not an int64.\nfunc NestedInt64(obj map[string]interface{}, fields ...string) (int64, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn 0, found, err\n\t}\n\ti, ok := val.(int64)\n\tif !ok {\n\t\treturn 0, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected int64\", jsonPath(fields), val, val)\n\t}\n\treturn i, true, nil\n}\n\n// NestedStringSlice returns a copy of []string value of a nested field.\n// Returns false if value is not found and an error if not a []interface{} or contains non-string items in the slice.\nfunc NestedStringSlice(obj map[string]interface{}, fields ...string) ([]string, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tm, ok := val.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected []interface{}\", jsonPath(fields), val, val)\n\t}\n\tstrSlice := make([]string, 0, len(m))\n\tfor _, v := range m {\n\t\tif str, ok := v.(string); ok {\n\t\t\tstrSlice = append(strSlice, str)\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: contains non-string key in the slice: %v is of the type %T, expected string\", jsonPath(fields), v, v)\n\t\t}\n\t}\n\treturn strSlice, true, nil\n}\n\n// NestedSlice returns a deep copy of []interface{} value of a nested field.\n// Returns false if value is not found and an error if not a []interface{}.\nfunc NestedSlice(obj map[string]interface{}, fields ...string) ([]interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\t_, ok := val.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected []interface{}\", jsonPath(fields), val, val)\n\t}\n\treturn runtime.DeepCopyJSONValue(val).([]interface{}), true, nil\n}\n\n// NestedStringMap returns a copy of map[string]string value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{} or contains non-string values in the map.\nfunc NestedStringMap(obj map[string]interface{}, fields ...string) (map[string]string, bool, error) {\n\tm, found, err := nestedMapNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tstrMap := make(map[string]string, len(m))\n\tfor k, v := range m {\n\t\tif str, ok := v.(string); ok {\n\t\t\tstrMap[k] = str\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: contains non-string key in the map: %v is of the type %T, expected string\", jsonPath(fields), v, v)\n\t\t}\n\t}\n\treturn strMap, true, nil\n}\n\n// NestedMap returns a deep copy of map[string]interface{} value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{}.\nfunc NestedMap(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool, error) {\n\tm, found, err := nestedMapNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\treturn runtime.DeepCopyJSON(m), true, nil\n}\n\n// nestedMapNoCopy returns a map[string]interface{} value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{}.\nfunc nestedMapNoCopy(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tm, ok := val.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected map[string]interface{}\", jsonPath(fields), val, val)\n\t}\n\treturn m, true, nil\n}\n\n// SetNestedField sets the value of a nested field to a deep copy of the value provided.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedField(obj map[string]interface{}, value interface{}, fields ...string) error {\n\treturn setNestedFieldNoCopy(obj, runtime.DeepCopyJSONValue(value), fields...)\n}\n\nfunc setNestedFieldNoCopy(obj map[string]interface{}, value interface{}, fields ...string) error {\n\tm := obj\n\n\tfor i, field := range fields[:len(fields)-1] {\n\t\tif val, ok := m[field]; ok {\n\t\t\tif valMap, ok := val.(map[string]interface{}); ok {\n\t\t\t\tm = valMap\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"value cannot be set because %v is not a map[string]interface{}\", jsonPath(fields[:i+1]))\n\t\t\t}\n\t\t} else {\n\t\t\tnewVal := make(map[string]interface{})\n\t\t\tm[field] = newVal\n\t\t\tm = newVal\n\t\t}\n\t}\n\tm[fields[len(fields)-1]] = value\n\treturn nil\n}\n\n// SetNestedStringSlice sets the string slice value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedStringSlice(obj map[string]interface{}, value []string, fields ...string) error {\n\tm := make([]interface{}, 0, len(value)) // convert []string into []interface{}\n\tfor _, v := range value {\n\t\tm = append(m, v)\n\t}\n\treturn setNestedFieldNoCopy(obj, m, fields...)\n}\n\n// SetNestedSlice sets the slice value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedSlice(obj map[string]interface{}, value []interface{}, fields ...string) error {\n\treturn SetNestedField(obj, value, fields...)\n}\n\n// SetNestedStringMap sets the map[string]string value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedStringMap(obj map[string]interface{}, value map[string]string, fields ...string) error {\n\tm := make(map[string]interface{}, len(value)) // convert map[string]string into map[string]interface{}\n\tfor k, v := range value {\n\t\tm[k] = v\n\t}\n\treturn setNestedFieldNoCopy(obj, m, fields...)\n}\n\n// SetNestedMap sets the map[string]interface{} value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedMap(obj map[string]interface{}, value map[string]interface{}, fields ...string) error {\n\treturn SetNestedField(obj, value, fields...)\n}\n\n// RemoveNestedField removes the nested field from the obj.\nfunc RemoveNestedField(obj map[string]interface{}, fields ...string) {\n\tm := obj\n\tfor _, field := range fields[:len(fields)-1] {\n\t\tif x, ok := m[field].(map[string]interface{}); ok {\n\t\t\tm = x\n\t\t} else {\n\t\t\treturn\n\t\t}\n\t}\n\tdelete(m, fields[len(fields)-1])\n}\n\nfunc getNestedString(obj map[string]interface{}, fields ...string) string {\n\tval, found, err := NestedString(obj, fields...)\n\tif !found || err != nil {\n\t\treturn \"\"\n\t}\n\treturn val\n}\n\nfunc getNestedInt64Pointer(obj map[string]interface{}, fields ...string) *int64 {\n\tval, found, err := NestedInt64(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\treturn &val\n}\n\nfunc jsonPath(fields []string) string {\n\treturn \".\" + strings.Join(fields, \".\")\n}\n\nfunc extractOwnerReference(v map[string]interface{}) metav1.OwnerReference {\n\t// though this field is a *bool, but when decoded from JSON, it's\n\t// unmarshalled as bool.\n\tvar controllerPtr *bool\n\tif controller, found, err := NestedBool(v, \"controller\"); err == nil && found {\n\t\tcontrollerPtr = &controller\n\t}\n\tvar blockOwnerDeletionPtr *bool\n\tif blockOwnerDeletion, found, err := NestedBool(v, \"blockOwnerDeletion\"); err == nil && found {\n\t\tblockOwnerDeletionPtr = &blockOwnerDeletion\n\t}\n\treturn metav1.OwnerReference{\n\t\tKind:               getNestedString(v, \"kind\"),\n\t\tName:               getNestedString(v, \"name\"),\n\t\tAPIVersion:         getNestedString(v, \"apiVersion\"),\n\t\tUID:                types.UID(getNestedString(v, \"uid\")),\n\t\tController:         controllerPtr,\n\t\tBlockOwnerDeletion: blockOwnerDeletionPtr,\n\t}\n}\n\n// UnstructuredJSONScheme is capable of converting JSON data into the Unstructured\n// type, which can be used for generic access to objects without a predefined scheme.\n// TODO: move into serializer/json.\nvar UnstructuredJSONScheme runtime.Codec = unstructuredJSONScheme{}\n\ntype unstructuredJSONScheme struct{}\n\nconst unstructuredJSONSchemeIdentifier runtime.Identifier = \"unstructuredJSON\"\n\nfunc (s unstructuredJSONScheme) Decode(data []byte, _ *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tvar err error\n\tif obj != nil {\n\t\terr = s.decodeInto(data, obj)\n\t} else {\n\t\tobj, err = s.decode(data)\n\t}\n\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tif len(gvk.Kind) == 0 {\n\t\treturn nil, &gvk, runtime.NewMissingKindErr(string(data))\n\t}\n\t// TODO(109023): require apiVersion here as well\n\n\treturn obj, &gvk, nil\n}\n\nfunc (s unstructuredJSONScheme) Encode(obj runtime.Object, w io.Writer) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, w)\n\t}\n\treturn s.doEncode(obj, w)\n}\n\nfunc (unstructuredJSONScheme) doEncode(obj runtime.Object, w io.Writer) error {\n\tswitch t := obj.(type) {\n\tcase *Unstructured:\n\t\treturn json.NewEncoder(w).Encode(t.Object)\n\tcase *UnstructuredList:\n\t\titems := make([]interface{}, 0, len(t.Items))\n\t\tfor _, i := range t.Items {\n\t\t\titems = append(items, i.Object)\n\t\t}\n\t\tlistObj := make(map[string]interface{}, len(t.Object)+1)\n\t\tfor k, v := range t.Object { // Make a shallow copy\n\t\t\tlistObj[k] = v\n\t\t}\n\t\tlistObj[\"items\"] = items\n\t\treturn json.NewEncoder(w).Encode(listObj)\n\tcase *runtime.Unknown:\n\t\t// TODO: Unstructured needs to deal with ContentType.\n\t\t_, err := w.Write(t.Raw)\n\t\treturn err\n\tdefault:\n\t\treturn json.NewEncoder(w).Encode(t)\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (unstructuredJSONScheme) Identifier() runtime.Identifier {\n\treturn unstructuredJSONSchemeIdentifier\n}\n\nfunc (s unstructuredJSONScheme) decode(data []byte) (runtime.Object, error) {\n\ttype detector struct {\n\t\tItems gojson.RawMessage `json:\"items\"`\n\t}\n\tvar det detector\n\tif err := json.Unmarshal(data, &det); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif det.Items != nil {\n\t\tlist := &UnstructuredList{}\n\t\terr := s.decodeToList(data, list)\n\t\treturn list, err\n\t}\n\n\t// No Items field, so it wasn't a list.\n\tunstruct := &Unstructured{}\n\terr := s.decodeToUnstructured(data, unstruct)\n\treturn unstruct, err\n}\n\nfunc (s unstructuredJSONScheme) decodeInto(data []byte, obj runtime.Object) error {\n\tswitch x := obj.(type) {\n\tcase *Unstructured:\n\t\treturn s.decodeToUnstructured(data, x)\n\tcase *UnstructuredList:\n\t\treturn s.decodeToList(data, x)\n\tdefault:\n\t\treturn json.Unmarshal(data, x)\n\t}\n}\n\nfunc (unstructuredJSONScheme) decodeToUnstructured(data []byte, unstruct *Unstructured) error {\n\tm := make(map[string]interface{})\n\tif err := json.Unmarshal(data, &m); err != nil {\n\t\treturn err\n\t}\n\n\tunstruct.Object = m\n\n\treturn nil\n}\n\nfunc (s unstructuredJSONScheme) decodeToList(data []byte, list *UnstructuredList) error {\n\ttype decodeList struct {\n\t\tItems []gojson.RawMessage `json:\"items\"`\n\t}\n\n\tvar dList decodeList\n\tif err := json.Unmarshal(data, &dList); err != nil {\n\t\treturn err\n\t}\n\n\tif err := json.Unmarshal(data, &list.Object); err != nil {\n\t\treturn err\n\t}\n\n\t// For typed lists, e.g., a PodList, API server doesn't set each item's\n\t// APIVersion and Kind. We need to set it.\n\tlistAPIVersion := list.GetAPIVersion()\n\tlistKind := list.GetKind()\n\titemKind := strings.TrimSuffix(listKind, \"List\")\n\n\tdelete(list.Object, \"items\")\n\tlist.Items = make([]Unstructured, 0, len(dList.Items))\n\tfor _, i := range dList.Items {\n\t\tunstruct := &Unstructured{}\n\t\tif err := s.decodeToUnstructured([]byte(i), unstruct); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This is hacky. Set the item's Kind and APIVersion to those inferred\n\t\t// from the List.\n\t\tif len(unstruct.GetKind()) == 0 && len(unstruct.GetAPIVersion()) == 0 {\n\t\t\tunstruct.SetKind(itemKind)\n\t\t\tunstruct.SetAPIVersion(listAPIVersion)\n\t\t}\n\t\tlist.Items = append(list.Items, *unstruct)\n\t}\n\treturn nil\n}\n\ntype jsonFallbackEncoder struct {\n\tencoder    runtime.Encoder\n\tidentifier runtime.Identifier\n}\n\nfunc NewJSONFallbackEncoder(encoder runtime.Encoder) runtime.Encoder {\n\tresult := map[string]string{\n\t\t\"name\": \"fallback\",\n\t\t\"base\": string(encoder.Identifier()),\n\t}\n\tidentifier, err := gojson.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for jsonFallbackEncoder: %v\", err)\n\t}\n\treturn &jsonFallbackEncoder{\n\t\tencoder:    encoder,\n\t\tidentifier: runtime.Identifier(identifier),\n\t}\n}\n\nfunc (c *jsonFallbackEncoder) Encode(obj runtime.Object, w io.Writer) error {\n\t// There is no need to handle runtime.CacheableObject, as we only\n\t// fallback to other encoders here.\n\terr := c.encoder.Encode(obj, w)\n\tif runtime.IsNotRegisteredError(err) {\n\t\tswitch obj.(type) {\n\t\tcase *Unstructured, *UnstructuredList:\n\t\t\treturn UnstructuredJSONScheme.Encode(obj, w)\n\t\t}\n\t}\n\treturn err\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (c *jsonFallbackEncoder) Identifier() runtime.Identifier {\n\treturn c.identifier\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// Unstructured allows objects that do not have Golang structs registered to be manipulated\n// generically. This can be used to deal with the API objects from a plug-in. Unstructured\n// objects still have functioning TypeMeta features-- kind, version, etc.\n//\n// WARNING: This object has accessors for the v1 standard metadata. You *MUST NOT* use this\n// type if you are dealing with objects that are not in the server meta v1 schema.\n//\n// TODO: make the serialization part of this type distinct from the field accessors.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:deepcopy-gen=true\ntype Unstructured struct {\n\t// Object is a JSON compatible map with string, float, int, bool, []interface{}, or\n\t// map[string]interface{}\n\t// children.\n\tObject map[string]interface{}\n}\n\nvar _ metav1.Object = &Unstructured{}\nvar _ runtime.Unstructured = &Unstructured{}\nvar _ metav1.ListInterface = &Unstructured{}\n\nfunc (obj *Unstructured) GetObjectKind() schema.ObjectKind { return obj }\n\nfunc (obj *Unstructured) IsList() bool {\n\tfield, ok := obj.Object[\"items\"]\n\tif !ok {\n\t\treturn false\n\t}\n\t_, ok = field.([]interface{})\n\treturn ok\n}\nfunc (obj *Unstructured) ToList() (*UnstructuredList, error) {\n\tif !obj.IsList() {\n\t\t// return an empty list back\n\t\treturn &UnstructuredList{Object: obj.Object}, nil\n\t}\n\n\tret := &UnstructuredList{}\n\tret.Object = obj.Object\n\n\terr := obj.EachListItem(func(item runtime.Object) error {\n\t\tcastItem := item.(*Unstructured)\n\t\tret.Items = append(ret.Items, *castItem)\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ret, nil\n}\n\nfunc (obj *Unstructured) EachListItem(fn func(runtime.Object) error) error {\n\tfield, ok := obj.Object[\"items\"]\n\tif !ok {\n\t\treturn errors.New(\"content is not a list\")\n\t}\n\titems, ok := field.([]interface{})\n\tif !ok {\n\t\treturn fmt.Errorf(\"content is not a list: %T\", field)\n\t}\n\tfor _, item := range items {\n\t\tchild, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"items member is not an object: %T\", child)\n\t\t}\n\t\tif err := fn(&Unstructured{Object: child}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (obj *Unstructured) UnstructuredContent() map[string]interface{} {\n\tif obj.Object == nil {\n\t\treturn make(map[string]interface{})\n\t}\n\treturn obj.Object\n}\n\nfunc (obj *Unstructured) SetUnstructuredContent(content map[string]interface{}) {\n\tobj.Object = content\n}\n\n// MarshalJSON ensures that the unstructured object produces proper\n// JSON when passed to Go's standard JSON library.\nfunc (u *Unstructured) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\terr := UnstructuredJSONScheme.Encode(u, &buf)\n\treturn buf.Bytes(), err\n}\n\n// UnmarshalJSON ensures that the unstructured object properly decodes\n// JSON when passed to Go's standard JSON library.\nfunc (u *Unstructured) UnmarshalJSON(b []byte) error {\n\t_, _, err := UnstructuredJSONScheme.Decode(b, nil, u)\n\treturn err\n}\n\n// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\nfunc (in *Unstructured) NewEmptyInstance() runtime.Unstructured {\n\tout := new(Unstructured)\n\tif in != nil {\n\t\tout.GetObjectKind().SetGroupVersionKind(in.GetObjectKind().GroupVersionKind())\n\t}\n\treturn out\n}\n\nfunc (in *Unstructured) DeepCopy() *Unstructured {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Unstructured)\n\t*out = *in\n\tout.Object = runtime.DeepCopyJSON(in.Object)\n\treturn out\n}\n\nfunc (u *Unstructured) setNestedField(value interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedField(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedStringSlice(value []string, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedStringSlice(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedSlice(value []interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedSlice(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedMap(value map[string]string, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedStringMap(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) GetOwnerReferences() []metav1.OwnerReference {\n\tfield, found, err := NestedFieldNoCopy(u.Object, \"metadata\", \"ownerReferences\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\toriginal, ok := field.([]interface{})\n\tif !ok {\n\t\treturn nil\n\t}\n\tret := make([]metav1.OwnerReference, 0, len(original))\n\tfor _, obj := range original {\n\t\to, ok := obj.(map[string]interface{})\n\t\tif !ok {\n\t\t\t// expected map[string]interface{}, got something else\n\t\t\treturn nil\n\t\t}\n\t\tret = append(ret, extractOwnerReference(o))\n\t}\n\treturn ret\n}\n\nfunc (u *Unstructured) SetOwnerReferences(references []metav1.OwnerReference) {\n\tif references == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"ownerReferences\")\n\t\treturn\n\t}\n\n\tnewReferences := make([]interface{}, 0, len(references))\n\tfor _, reference := range references {\n\t\tout, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&reference)\n\t\tif err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to convert Owner Reference: %v\", err))\n\t\t\tcontinue\n\t\t}\n\t\tnewReferences = append(newReferences, out)\n\t}\n\tu.setNestedField(newReferences, \"metadata\", \"ownerReferences\")\n}\n\nfunc (u *Unstructured) GetAPIVersion() string {\n\treturn getNestedString(u.Object, \"apiVersion\")\n}\n\nfunc (u *Unstructured) SetAPIVersion(version string) {\n\tu.setNestedField(version, \"apiVersion\")\n}\n\nfunc (u *Unstructured) GetKind() string {\n\treturn getNestedString(u.Object, \"kind\")\n}\n\nfunc (u *Unstructured) SetKind(kind string) {\n\tu.setNestedField(kind, \"kind\")\n}\n\nfunc (u *Unstructured) GetNamespace() string {\n\treturn getNestedString(u.Object, \"metadata\", \"namespace\")\n}\n\nfunc (u *Unstructured) SetNamespace(namespace string) {\n\tif len(namespace) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"namespace\")\n\t\treturn\n\t}\n\tu.setNestedField(namespace, \"metadata\", \"namespace\")\n}\n\nfunc (u *Unstructured) GetName() string {\n\treturn getNestedString(u.Object, \"metadata\", \"name\")\n}\n\nfunc (u *Unstructured) SetName(name string) {\n\tif len(name) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"name\")\n\t\treturn\n\t}\n\tu.setNestedField(name, \"metadata\", \"name\")\n}\n\nfunc (u *Unstructured) GetGenerateName() string {\n\treturn getNestedString(u.Object, \"metadata\", \"generateName\")\n}\n\nfunc (u *Unstructured) SetGenerateName(generateName string) {\n\tif len(generateName) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"generateName\")\n\t\treturn\n\t}\n\tu.setNestedField(generateName, \"metadata\", \"generateName\")\n}\n\nfunc (u *Unstructured) GetUID() types.UID {\n\treturn types.UID(getNestedString(u.Object, \"metadata\", \"uid\"))\n}\n\nfunc (u *Unstructured) SetUID(uid types.UID) {\n\tif len(string(uid)) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"uid\")\n\t\treturn\n\t}\n\tu.setNestedField(string(uid), \"metadata\", \"uid\")\n}\n\nfunc (u *Unstructured) GetResourceVersion() string {\n\treturn getNestedString(u.Object, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *Unstructured) SetResourceVersion(resourceVersion string) {\n\tif len(resourceVersion) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"resourceVersion\")\n\t\treturn\n\t}\n\tu.setNestedField(resourceVersion, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *Unstructured) GetGeneration() int64 {\n\tval, found, err := NestedInt64(u.Object, \"metadata\", \"generation\")\n\tif !found || err != nil {\n\t\treturn 0\n\t}\n\treturn val\n}\n\nfunc (u *Unstructured) SetGeneration(generation int64) {\n\tif generation == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"generation\")\n\t\treturn\n\t}\n\tu.setNestedField(generation, \"metadata\", \"generation\")\n}\n\nfunc (u *Unstructured) GetSelfLink() string {\n\treturn getNestedString(u.Object, \"metadata\", \"selfLink\")\n}\n\nfunc (u *Unstructured) SetSelfLink(selfLink string) {\n\tif len(selfLink) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"selfLink\")\n\t\treturn\n\t}\n\tu.setNestedField(selfLink, \"metadata\", \"selfLink\")\n}\n\nfunc (u *Unstructured) GetContinue() string {\n\treturn getNestedString(u.Object, \"metadata\", \"continue\")\n}\n\nfunc (u *Unstructured) SetContinue(c string) {\n\tif len(c) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"continue\")\n\t\treturn\n\t}\n\tu.setNestedField(c, \"metadata\", \"continue\")\n}\n\nfunc (u *Unstructured) GetRemainingItemCount() *int64 {\n\treturn getNestedInt64Pointer(u.Object, \"metadata\", \"remainingItemCount\")\n}\n\nfunc (u *Unstructured) SetRemainingItemCount(c *int64) {\n\tif c == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"remainingItemCount\")\n\t} else {\n\t\tu.setNestedField(*c, \"metadata\", \"remainingItemCount\")\n\t}\n}\n\nfunc (u *Unstructured) GetCreationTimestamp() metav1.Time {\n\tvar timestamp metav1.Time\n\ttimestamp.UnmarshalQueryParameter(getNestedString(u.Object, \"metadata\", \"creationTimestamp\"))\n\treturn timestamp\n}\n\nfunc (u *Unstructured) SetCreationTimestamp(timestamp metav1.Time) {\n\tts, _ := timestamp.MarshalQueryParameter()\n\tif len(ts) == 0 || timestamp.Time.IsZero() {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"creationTimestamp\")\n\t\treturn\n\t}\n\tu.setNestedField(ts, \"metadata\", \"creationTimestamp\")\n}\n\nfunc (u *Unstructured) GetDeletionTimestamp() *metav1.Time {\n\tvar timestamp metav1.Time\n\ttimestamp.UnmarshalQueryParameter(getNestedString(u.Object, \"metadata\", \"deletionTimestamp\"))\n\tif timestamp.IsZero() {\n\t\treturn nil\n\t}\n\treturn &timestamp\n}\n\nfunc (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) {\n\tif timestamp == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"deletionTimestamp\")\n\t\treturn\n\t}\n\tts, _ := timestamp.MarshalQueryParameter()\n\tu.setNestedField(ts, \"metadata\", \"deletionTimestamp\")\n}\n\nfunc (u *Unstructured) GetDeletionGracePeriodSeconds() *int64 {\n\tval, found, err := NestedInt64(u.Object, \"metadata\", \"deletionGracePeriodSeconds\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\treturn &val\n}\n\nfunc (u *Unstructured) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {\n\tif deletionGracePeriodSeconds == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"deletionGracePeriodSeconds\")\n\t\treturn\n\t}\n\tu.setNestedField(*deletionGracePeriodSeconds, \"metadata\", \"deletionGracePeriodSeconds\")\n}\n\nfunc (u *Unstructured) GetLabels() map[string]string {\n\tm, _, _ := NestedStringMap(u.Object, \"metadata\", \"labels\")\n\treturn m\n}\n\nfunc (u *Unstructured) SetLabels(labels map[string]string) {\n\tif labels == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"labels\")\n\t\treturn\n\t}\n\tu.setNestedMap(labels, \"metadata\", \"labels\")\n}\n\nfunc (u *Unstructured) GetAnnotations() map[string]string {\n\tm, _, _ := NestedStringMap(u.Object, \"metadata\", \"annotations\")\n\treturn m\n}\n\nfunc (u *Unstructured) SetAnnotations(annotations map[string]string) {\n\tif annotations == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"annotations\")\n\t\treturn\n\t}\n\tu.setNestedMap(annotations, \"metadata\", \"annotations\")\n}\n\nfunc (u *Unstructured) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tu.SetAPIVersion(gvk.GroupVersion().String())\n\tu.SetKind(gvk.Kind)\n}\n\nfunc (u *Unstructured) GroupVersionKind() schema.GroupVersionKind {\n\tgv, err := schema.ParseGroupVersion(u.GetAPIVersion())\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}\n\t}\n\tgvk := gv.WithKind(u.GetKind())\n\treturn gvk\n}\n\nfunc (u *Unstructured) GetFinalizers() []string {\n\tval, _, _ := NestedStringSlice(u.Object, \"metadata\", \"finalizers\")\n\treturn val\n}\n\nfunc (u *Unstructured) SetFinalizers(finalizers []string) {\n\tif finalizers == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"finalizers\")\n\t\treturn\n\t}\n\tu.setNestedStringSlice(finalizers, \"metadata\", \"finalizers\")\n}\n\nfunc (u *Unstructured) GetManagedFields() []metav1.ManagedFieldsEntry {\n\titems, found, err := NestedSlice(u.Object, \"metadata\", \"managedFields\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\tmanagedFields := []metav1.ManagedFieldsEntry{}\n\tfor _, item := range items {\n\t\tm, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to retrieve managedFields for object, item %v is not a map\", item))\n\t\t\treturn nil\n\t\t}\n\t\tout := metav1.ManagedFieldsEntry{}\n\t\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(m, &out); err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to retrieve managedFields for object: %v\", err))\n\t\t\treturn nil\n\t\t}\n\t\tmanagedFields = append(managedFields, out)\n\t}\n\treturn managedFields\n}\n\nfunc (u *Unstructured) SetManagedFields(managedFields []metav1.ManagedFieldsEntry) {\n\tif managedFields == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"managedFields\")\n\t\treturn\n\t}\n\titems := []interface{}{}\n\tfor _, managedFieldsEntry := range managedFields {\n\t\tout, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&managedFieldsEntry)\n\t\tif err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to set managedFields for object: %v\", err))\n\t\t\treturn\n\t\t}\n\t\titems = append(items, out)\n\t}\n\tu.setNestedSlice(items, \"metadata\", \"managedFields\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\t\"bytes\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nvar _ runtime.Unstructured = &UnstructuredList{}\nvar _ metav1.ListInterface = &UnstructuredList{}\n\n// UnstructuredList allows lists that do not have Golang structs\n// registered to be manipulated generically. This can be used to deal\n// with the API lists from a plug-in.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:deepcopy-gen=true\ntype UnstructuredList struct {\n\tObject map[string]interface{}\n\n\t// Items is a list of unstructured objects.\n\tItems []Unstructured `json:\"items\"`\n}\n\nfunc (u *UnstructuredList) GetObjectKind() schema.ObjectKind { return u }\n\nfunc (u *UnstructuredList) IsList() bool { return true }\n\nfunc (u *UnstructuredList) EachListItem(fn func(runtime.Object) error) error {\n\tfor i := range u.Items {\n\t\tif err := fn(&u.Items[i]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\nfunc (u *UnstructuredList) NewEmptyInstance() runtime.Unstructured {\n\tout := new(UnstructuredList)\n\tif u != nil {\n\t\tout.SetGroupVersionKind(u.GroupVersionKind())\n\t}\n\treturn out\n}\n\n// UnstructuredContent returns a map contain an overlay of the Items field onto\n// the Object field. Items always overwrites overlay.\nfunc (u *UnstructuredList) UnstructuredContent() map[string]interface{} {\n\tout := make(map[string]interface{}, len(u.Object)+1)\n\n\t// shallow copy every property\n\tfor k, v := range u.Object {\n\t\tout[k] = v\n\t}\n\n\titems := make([]interface{}, len(u.Items))\n\tfor i, item := range u.Items {\n\t\titems[i] = item.UnstructuredContent()\n\t}\n\tout[\"items\"] = items\n\treturn out\n}\n\n// SetUnstructuredContent obeys the conventions of List and keeps Items and the items\n// array in sync. If items is not an array of objects in the incoming map, then any\n// mismatched item will be removed.\nfunc (obj *UnstructuredList) SetUnstructuredContent(content map[string]interface{}) {\n\tobj.Object = content\n\tif content == nil {\n\t\tobj.Items = nil\n\t\treturn\n\t}\n\titems, ok := obj.Object[\"items\"].([]interface{})\n\tif !ok || items == nil {\n\t\titems = []interface{}{}\n\t}\n\tunstructuredItems := make([]Unstructured, 0, len(items))\n\tnewItems := make([]interface{}, 0, len(items))\n\tfor _, item := range items {\n\t\to, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tunstructuredItems = append(unstructuredItems, Unstructured{Object: o})\n\t\tnewItems = append(newItems, o)\n\t}\n\tobj.Items = unstructuredItems\n\tobj.Object[\"items\"] = newItems\n}\n\nfunc (u *UnstructuredList) DeepCopy() *UnstructuredList {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UnstructuredList)\n\t*out = *u\n\tout.Object = runtime.DeepCopyJSON(u.Object)\n\tout.Items = make([]Unstructured, len(u.Items))\n\tfor i := range u.Items {\n\t\tu.Items[i].DeepCopyInto(&out.Items[i])\n\t}\n\treturn out\n}\n\n// MarshalJSON ensures that the unstructured list object produces proper\n// JSON when passed to Go's standard JSON library.\nfunc (u *UnstructuredList) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\terr := UnstructuredJSONScheme.Encode(u, &buf)\n\treturn buf.Bytes(), err\n}\n\n// UnmarshalJSON ensures that the unstructured list object properly\n// decodes JSON when passed to Go's standard JSON library.\nfunc (u *UnstructuredList) UnmarshalJSON(b []byte) error {\n\t_, _, err := UnstructuredJSONScheme.Decode(b, nil, u)\n\treturn err\n}\n\nfunc (u *UnstructuredList) GetAPIVersion() string {\n\treturn getNestedString(u.Object, \"apiVersion\")\n}\n\nfunc (u *UnstructuredList) SetAPIVersion(version string) {\n\tu.setNestedField(version, \"apiVersion\")\n}\n\nfunc (u *UnstructuredList) GetKind() string {\n\treturn getNestedString(u.Object, \"kind\")\n}\n\nfunc (u *UnstructuredList) SetKind(kind string) {\n\tu.setNestedField(kind, \"kind\")\n}\n\nfunc (u *UnstructuredList) GetResourceVersion() string {\n\treturn getNestedString(u.Object, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *UnstructuredList) SetResourceVersion(version string) {\n\tu.setNestedField(version, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *UnstructuredList) GetSelfLink() string {\n\treturn getNestedString(u.Object, \"metadata\", \"selfLink\")\n}\n\nfunc (u *UnstructuredList) SetSelfLink(selfLink string) {\n\tu.setNestedField(selfLink, \"metadata\", \"selfLink\")\n}\n\nfunc (u *UnstructuredList) GetContinue() string {\n\treturn getNestedString(u.Object, \"metadata\", \"continue\")\n}\n\nfunc (u *UnstructuredList) SetContinue(c string) {\n\tu.setNestedField(c, \"metadata\", \"continue\")\n}\n\nfunc (u *UnstructuredList) GetRemainingItemCount() *int64 {\n\treturn getNestedInt64Pointer(u.Object, \"metadata\", \"remainingItemCount\")\n}\n\nfunc (u *UnstructuredList) SetRemainingItemCount(c *int64) {\n\tif c == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"remainingItemCount\")\n\t} else {\n\t\tu.setNestedField(*c, \"metadata\", \"remainingItemCount\")\n\t}\n}\n\nfunc (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tu.SetAPIVersion(gvk.GroupVersion().String())\n\tu.SetKind(gvk.Kind)\n}\n\nfunc (u *UnstructuredList) GroupVersionKind() schema.GroupVersionKind {\n\tgv, err := schema.ParseGroupVersion(u.GetAPIVersion())\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}\n\t}\n\tgvk := gv.WithKind(u.GetKind())\n\treturn gvk\n}\n\nfunc (u *UnstructuredList) setNestedField(value interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedField(u.Object, value, fields...)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage unstructured\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Unstructured) DeepCopyInto(out *Unstructured) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Unstructured) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UnstructuredList) DeepCopyInto(out *UnstructuredList) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *UnstructuredList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"unicode\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// LabelSelectorValidationOptions is a struct that can be passed to ValidateLabelSelector to record the validate options\ntype LabelSelectorValidationOptions struct {\n\t// Allow invalid label value in selector\n\tAllowInvalidLabelValueInSelector bool\n}\n\n// LabelSelectorHasInvalidLabelValue returns true if the given selector contains an invalid label value in a match expression.\n// This is useful for determining whether AllowInvalidLabelValueInSelector should be set to true when validating an update\n// based on existing persisted invalid values.\nfunc LabelSelectorHasInvalidLabelValue(ps *metav1.LabelSelector) bool {\n\tif ps == nil {\n\t\treturn false\n\t}\n\tfor _, e := range ps.MatchExpressions {\n\t\tfor _, v := range e.Values {\n\t\t\tif len(validation.IsValidLabelValue(v)) > 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// ValidateLabelSelector validate the LabelSelector according to the opts and returns any validation errors.\n// opts.AllowInvalidLabelValueInSelector is only expected to be set to true when required for backwards compatibility with existing invalid data.\nfunc ValidateLabelSelector(ps *metav1.LabelSelector, opts LabelSelectorValidationOptions, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif ps == nil {\n\t\treturn allErrs\n\t}\n\tallErrs = append(allErrs, ValidateLabels(ps.MatchLabels, fldPath.Child(\"matchLabels\"))...)\n\tfor i, expr := range ps.MatchExpressions {\n\t\tallErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, opts, fldPath.Child(\"matchExpressions\").Index(i))...)\n\t}\n\treturn allErrs\n}\n\n// ValidateLabelSelectorRequirement validate the requirement according to the opts and returns any validation errors.\n// opts.AllowInvalidLabelValueInSelector is only expected to be set to true when required for backwards compatibility with existing invalid data.\nfunc ValidateLabelSelectorRequirement(sr metav1.LabelSelectorRequirement, opts LabelSelectorValidationOptions, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tswitch sr.Operator {\n\tcase metav1.LabelSelectorOpIn, metav1.LabelSelectorOpNotIn:\n\t\tif len(sr.Values) == 0 {\n\t\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"values\"), \"must be specified when `operator` is 'In' or 'NotIn'\"))\n\t\t}\n\tcase metav1.LabelSelectorOpExists, metav1.LabelSelectorOpDoesNotExist:\n\t\tif len(sr.Values) > 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(fldPath.Child(\"values\"), \"may not be specified when `operator` is 'Exists' or 'DoesNotExist'\"))\n\t\t}\n\tdefault:\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"operator\"), sr.Operator, \"not a valid selector operator\"))\n\t}\n\tallErrs = append(allErrs, ValidateLabelName(sr.Key, fldPath.Child(\"key\"))...)\n\tif !opts.AllowInvalidLabelValueInSelector {\n\t\tfor valueIndex, value := range sr.Values {\n\t\t\tfor _, msg := range validation.IsValidLabelValue(value) {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"values\").Index(valueIndex), value, msg))\n\t\t\t}\n\t\t}\n\t}\n\treturn allErrs\n}\n\n// ValidateLabelName validates that the label name is correctly defined.\nfunc ValidateLabelName(labelName string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor _, msg := range validation.IsQualifiedName(labelName) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, labelName, msg))\n\t}\n\treturn allErrs\n}\n\n// ValidateLabels validates that a set of labels are correctly defined.\nfunc ValidateLabels(labels map[string]string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor k, v := range labels {\n\t\tallErrs = append(allErrs, ValidateLabelName(k, fldPath)...)\n\t\tfor _, msg := range validation.IsValidLabelValue(v) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, v, msg))\n\t\t}\n\t}\n\treturn allErrs\n}\n\nfunc ValidateDeleteOptions(options *metav1.DeleteOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\t//lint:file-ignore SA1019 Keep validation for deprecated OrphanDependents option until it's being removed\n\tif options.OrphanDependents != nil && options.PropagationPolicy != nil {\n\t\tallErrs = append(allErrs, field.Invalid(field.NewPath(\"propagationPolicy\"), options.PropagationPolicy, \"orphanDependents and deletionPropagation cannot be both set\"))\n\t}\n\tif options.PropagationPolicy != nil &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationForeground &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationBackground &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationOrphan {\n\t\tallErrs = append(allErrs, field.NotSupported(field.NewPath(\"propagationPolicy\"), options.PropagationPolicy, []string{string(metav1.DeletePropagationForeground), string(metav1.DeletePropagationBackground), string(metav1.DeletePropagationOrphan), \"nil\"}))\n\t}\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\treturn allErrs\n}\n\nfunc ValidateCreateOptions(options *metav1.CreateOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nfunc ValidateUpdateOptions(options *metav1.UpdateOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nfunc ValidatePatchOptions(options *metav1.PatchOptions, patchType types.PatchType) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif patchType != types.ApplyPatchType {\n\t\tif options.Force != nil {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"force\"), \"may not be specified for non-apply patch\"))\n\t\t}\n\t} else {\n\t\tif options.FieldManager == \"\" {\n\t\t\t// This field is defaulted to \"kubectl\" by kubectl, but HAS TO be explicitly set by controllers.\n\t\t\tallErrs = append(allErrs, field.Required(field.NewPath(\"fieldManager\"), \"is required for apply patch\"))\n\t\t}\n\t}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nvar FieldManagerMaxLength = 128\n\n// ValidateFieldManager valides that the fieldManager is the proper length and\n// only has printable characters.\nfunc ValidateFieldManager(fieldManager string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\t// the field can not be set as a `*string`, so a empty string (\"\") is\n\t// considered as not set and is defaulted by the rest of the process\n\t// (unless apply is used, in which case it is required).\n\tif len(fieldManager) > FieldManagerMaxLength {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath, fieldManager, FieldManagerMaxLength))\n\t}\n\t// Verify that all characters are printable.\n\tfor i, r := range fieldManager {\n\t\tif !unicode.IsPrint(r) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, fieldManager, fmt.Sprintf(\"invalid character %#U (at position %d)\", r, i)))\n\t\t}\n\t}\n\n\treturn allErrs\n}\n\nvar allowedDryRunValues = sets.NewString(metav1.DryRunAll)\n\n// ValidateDryRun validates that a dryRun query param only contains allowed values.\nfunc ValidateDryRun(fldPath *field.Path, dryRun []string) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !allowedDryRunValues.HasAll(dryRun...) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath, dryRun, allowedDryRunValues.List()))\n\t}\n\treturn allErrs\n}\n\nvar allowedFieldValidationValues = sets.NewString(\"\", metav1.FieldValidationIgnore, metav1.FieldValidationWarn, metav1.FieldValidationStrict)\n\n// ValidateFieldValidation validates that a fieldValidation query param only contains allowed values.\nfunc ValidateFieldValidation(fldPath *field.Path, fieldValidation string) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !allowedFieldValidationValues.Has(fieldValidation) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath, fieldValidation, allowedFieldValidationValues.List()))\n\t}\n\treturn allErrs\n\n}\n\nconst UninitializedStatusUpdateErrorMsg string = `must not update status when the object is uninitialized`\n\n// ValidateTableOptions returns any invalid flags on TableOptions.\nfunc ValidateTableOptions(opts *metav1.TableOptions) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tswitch opts.IncludeObject {\n\tcase metav1.IncludeMetadata, metav1.IncludeNone, metav1.IncludeObject, \"\":\n\tdefault:\n\t\tallErrs = append(allErrs, field.Invalid(field.NewPath(\"includeObject\"), opts.IncludeObject, \"must be 'Metadata', 'Object', 'None', or empty\"))\n\t}\n\treturn allErrs\n}\n\nconst MaxSubresourceNameLength = 256\n\nfunc ValidateManagedFields(fieldsList []metav1.ManagedFieldsEntry, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tfor i, fields := range fieldsList {\n\t\tfldPath := fldPath.Index(i)\n\t\tswitch fields.Operation {\n\t\tcase metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate:\n\t\tdefault:\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"operation\"), fields.Operation, \"must be `Apply` or `Update`\"))\n\t\t}\n\t\tif len(fields.FieldsType) > 0 && fields.FieldsType != \"FieldsV1\" {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"fieldsType\"), fields.FieldsType, \"must be `FieldsV1`\"))\n\t\t}\n\t\tallErrs = append(allErrs, ValidateFieldManager(fields.Manager, fldPath.Child(\"manager\"))...)\n\n\t\tif len(fields.Subresource) > MaxSubresourceNameLength {\n\t\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"subresource\"), fields.Subresource, MaxSubresourceNameLength))\n\t\t}\n\t}\n\treturn allErrs\n}\n\nfunc ValidateConditions(conditions []metav1.Condition, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\tconditionTypeToFirstIndex := map[string]int{}\n\tfor i, condition := range conditions {\n\t\tif _, ok := conditionTypeToFirstIndex[condition.Type]; ok {\n\t\t\tallErrs = append(allErrs, field.Duplicate(fldPath.Index(i).Child(\"type\"), condition.Type))\n\t\t} else {\n\t\t\tconditionTypeToFirstIndex[condition.Type] = i\n\t\t}\n\n\t\tallErrs = append(allErrs, ValidateCondition(condition, fldPath.Index(i))...)\n\t}\n\n\treturn allErrs\n}\n\n// validConditionStatuses is used internally to check validity and provide a good message\nvar validConditionStatuses = sets.NewString(string(metav1.ConditionTrue), string(metav1.ConditionFalse), string(metav1.ConditionUnknown))\n\nconst (\n\tmaxReasonLen  = 1 * 1024\n\tmaxMessageLen = 32 * 1024\n)\n\nfunc ValidateCondition(condition metav1.Condition, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\t// type is set and is a valid format\n\tallErrs = append(allErrs, ValidateLabelName(condition.Type, fldPath.Child(\"type\"))...)\n\n\t// status is set and is an accepted value\n\tif !validConditionStatuses.Has(string(condition.Status)) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath.Child(\"status\"), condition.Status, validConditionStatuses.List()))\n\t}\n\n\tif condition.ObservedGeneration < 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"observedGeneration\"), condition.ObservedGeneration, \"must be greater than or equal to zero\"))\n\t}\n\n\tif condition.LastTransitionTime.IsZero() {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"lastTransitionTime\"), \"must be set\"))\n\t}\n\n\tif len(condition.Reason) == 0 {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"reason\"), \"must be set\"))\n\t} else {\n\t\tfor _, currErr := range isValidConditionReason(condition.Reason) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"reason\"), condition.Reason, currErr))\n\t\t}\n\t\tif len(condition.Reason) > maxReasonLen {\n\t\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"reason\"), condition.Reason, maxReasonLen))\n\t\t}\n\t}\n\n\tif len(condition.Message) > maxMessageLen {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"message\"), condition.Message, maxMessageLen))\n\t}\n\n\treturn allErrs\n}\n\nconst conditionReasonFmt string = \"[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?\"\nconst conditionReasonErrMsg string = \"a condition reason must start with alphabetic character, optionally followed by a string of alphanumeric characters or '_,:', and must end with an alphanumeric character or '_'\"\n\nvar conditionReasonRegexp = regexp.MustCompile(\"^\" + conditionReasonFmt + \"$\")\n\n// isValidConditionReason tests for a string that conforms to rules for condition reasons. This checks the format, but not the length.\nfunc isValidConditionReason(value string) []string {\n\tif !conditionReasonRegexp.MatchString(value) {\n\t\treturn []string{validation.RegexError(conditionReasonErrMsg, conditionReasonFmt, \"my_name\", \"MY_NAME\", \"MyName\", \"ReasonA,ReasonB\", \"ReasonA:ReasonB\")}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/watch.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Event represents a single event to a watched resource.\n//\n// +protobuf=true\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype WatchEvent struct {\n\tType string `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Object is:\n\t//  * If Type is Added or Modified: the new state of the object.\n\t//  * If Type is Deleted: the state of the object immediately before deletion.\n\t//  * If Type is Error: *Status is recommended; other types may make sense\n\t//    depending on context.\n\tObject runtime.RawExtension `json:\"object\" protobuf:\"bytes,2,opt,name=object\"`\n}\n\nfunc Convert_watch_Event_To_v1_WatchEvent(in *watch.Event, out *WatchEvent, s conversion.Scope) error {\n\tout.Type = string(in.Type)\n\tswitch t := in.Object.(type) {\n\tcase *runtime.Unknown:\n\t\t// TODO: handle other fields on Unknown and detect type\n\t\tout.Object.Raw = t.Raw\n\tcase nil:\n\tdefault:\n\t\tout.Object.Object = in.Object\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_InternalEvent_To_v1_WatchEvent(in *InternalEvent, out *WatchEvent, s conversion.Scope) error {\n\treturn Convert_watch_Event_To_v1_WatchEvent((*watch.Event)(in), out, s)\n}\n\nfunc Convert_v1_WatchEvent_To_watch_Event(in *WatchEvent, out *watch.Event, s conversion.Scope) error {\n\tout.Type = watch.EventType(in.Type)\n\tif in.Object.Object != nil {\n\t\tout.Object = in.Object.Object\n\t} else if in.Object.Raw != nil {\n\t\t// TODO: handle other fields on Unknown and detect type\n\t\tout.Object = &runtime.Unknown{\n\t\t\tRaw:         in.Object.Raw,\n\t\t\tContentType: runtime.ContentTypeJSON,\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_WatchEvent_To_v1_InternalEvent(in *WatchEvent, out *InternalEvent, s conversion.Scope) error {\n\treturn Convert_v1_WatchEvent_To_watch_Event(in, (*watch.Event)(out), s)\n}\n\n// InternalEvent makes watch.Event versioned\n// +protobuf=false\ntype InternalEvent watch.Event\n\nfunc (e *InternalEvent) GetObjectKind() schema.ObjectKind { return schema.EmptyObjectKind }\nfunc (e *WatchEvent) GetObjectKind() schema.ObjectKind    { return schema.EmptyObjectKind }\nfunc (e *InternalEvent) DeepCopyObject() runtime.Object {\n\tif c := e.DeepCopy(); c != nil {\n\t\treturn c\n\t} else {\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\turl \"net/url\"\n\tunsafe \"unsafe\"\n\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\tfields \"k8s.io/apimachinery/pkg/fields\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*CreateOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_CreateOptions(a.(*url.Values), b.(*CreateOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_DeleteOptions(a.(*url.Values), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*GetOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_GetOptions(a.(*url.Values), b.(*GetOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*ListOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_ListOptions(a.(*url.Values), b.(*ListOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*PatchOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_PatchOptions(a.(*url.Values), b.(*PatchOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*TableOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_TableOptions(a.(*url.Values), b.(*TableOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*UpdateOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_UpdateOptions(a.(*url.Values), b.(*UpdateOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*map[string]string)(nil), (*LabelSelector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Map_string_To_string_To_v1_LabelSelector(a.(*map[string]string), b.(*LabelSelector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**bool)(nil), (*bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_bool_To_bool(a.(**bool), b.(*bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**float64)(nil), (*float64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_float64_To_float64(a.(**float64), b.(*float64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int32)(nil), (*int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int32_To_int32(a.(**int32), b.(*int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int64)(nil), (*int)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int64_To_int(a.(**int64), b.(*int), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int64)(nil), (*int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int64_To_int64(a.(**int64), b.(*int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**intstr.IntOrString)(nil), (*intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_intstr_IntOrString_To_intstr_IntOrString(a.(**intstr.IntOrString), b.(*intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**string)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_string_To_string(a.(**string), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**Duration)(nil), (*Duration)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_v1_Duration_To_v1_Duration(a.(**Duration), b.(*Duration), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (**DeletionPropagation)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Pointer_v1_DeletionPropagation(a.(*[]string), b.(**DeletionPropagation), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (**Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Pointer_v1_Time(a.(*[]string), b.(**Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*[]int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Slice_int32(a.(*[]string), b.(*[]int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*IncludeObjectPolicy)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_IncludeObjectPolicy(a.(*[]string), b.(*IncludeObjectPolicy), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*ResourceVersionMatch)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_ResourceVersionMatch(a.(*[]string), b.(*ResourceVersionMatch), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_Time(a.(*[]string), b.(*Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*bool)(nil), (**bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_bool_To_Pointer_bool(a.(*bool), b.(**bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*fields.Selector)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_fields_Selector_To_string(a.(*fields.Selector), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*float64)(nil), (**float64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_float64_To_Pointer_float64(a.(*float64), b.(**float64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int32)(nil), (**int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int32_To_Pointer_int32(a.(*int32), b.(**int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int64)(nil), (**int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int64_To_Pointer_int64(a.(*int64), b.(**int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int)(nil), (**int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int_To_Pointer_int64(a.(*int), b.(**int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*intstr.IntOrString)(nil), (**intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_intstr_IntOrString_To_Pointer_intstr_IntOrString(a.(*intstr.IntOrString), b.(**intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*intstr.IntOrString)(nil), (*intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_intstr_IntOrString_To_intstr_IntOrString(a.(*intstr.IntOrString), b.(*intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*labels.Selector)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_labels_Selector_To_string(a.(*labels.Selector), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*resource.Quantity)(nil), (*resource.Quantity)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_resource_Quantity_To_resource_Quantity(a.(*resource.Quantity), b.(*resource.Quantity), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (**string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_Pointer_string(a.(*string), b.(**string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (*fields.Selector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_fields_Selector(a.(*string), b.(*fields.Selector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (*labels.Selector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_labels_Selector(a.(*string), b.(*labels.Selector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*url.Values)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_DeleteOptions(a.(*url.Values), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*DeleteOptions)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_DeleteOptions_To_v1_DeleteOptions(a.(*DeleteOptions), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*Duration)(nil), (**Duration)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Duration_To_Pointer_v1_Duration(a.(*Duration), b.(**Duration), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*InternalEvent)(nil), (*WatchEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_InternalEvent_To_v1_WatchEvent(a.(*InternalEvent), b.(*WatchEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*LabelSelector)(nil), (*map[string]string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_LabelSelector_To_Map_string_To_string(a.(*LabelSelector), b.(*map[string]string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*ListMeta)(nil), (*ListMeta)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ListMeta_To_v1_ListMeta(a.(*ListMeta), b.(*ListMeta), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*MicroTime)(nil), (*MicroTime)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_MicroTime_To_v1_MicroTime(a.(*MicroTime), b.(*MicroTime), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*Time)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Time_To_v1_Time(a.(*Time), b.(*Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*TypeMeta)(nil), (*TypeMeta)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_TypeMeta_To_v1_TypeMeta(a.(*TypeMeta), b.(*TypeMeta), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*WatchEvent)(nil), (*InternalEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_WatchEvent_To_v1_InternalEvent(a.(*WatchEvent), b.(*InternalEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*WatchEvent)(nil), (*watch.Event)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_WatchEvent_To_watch_Event(a.(*WatchEvent), b.(*watch.Event), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*watch.Event)(nil), (*WatchEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_watch_Event_To_v1_WatchEvent(a.(*watch.Event), b.(*WatchEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_url_Values_To_v1_CreateOptions(in *url.Values, out *CreateOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_CreateOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_CreateOptions(in *url.Values, out *CreateOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_CreateOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"gracePeriodSeconds\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.GracePeriodSeconds, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.GracePeriodSeconds = nil\n\t}\n\t// INFO: in.Preconditions opted out of conversion generation\n\tif values, ok := map[string][]string(*in)[\"orphanDependents\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.OrphanDependents, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.OrphanDependents = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"propagationPolicy\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_Pointer_v1_DeletionPropagation(&values, &out.PropagationPolicy, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.PropagationPolicy = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\treturn nil\n}\n\nfunc autoConvert_url_Values_To_v1_GetOptions(in *url.Values, out *GetOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.ResourceVersion, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersion = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_GetOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_GetOptions(in *url.Values, out *GetOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_GetOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_ListOptions(in *url.Values, out *ListOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"labelSelector\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.LabelSelector, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.LabelSelector = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldSelector\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldSelector, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldSelector = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"watch\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.Watch, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Watch = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"allowWatchBookmarks\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.AllowWatchBookmarks, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.AllowWatchBookmarks = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.ResourceVersion, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersion = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"resourceVersionMatch\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_v1_ResourceVersionMatch(&values, &out.ResourceVersionMatch, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersionMatch = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"timeoutSeconds\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.TimeoutSeconds, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.TimeoutSeconds = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"limit\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_int64(&values, &out.Limit, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Limit = 0\n\t}\n\tif values, ok := map[string][]string(*in)[\"continue\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.Continue, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Continue = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"sendInitialEvents\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.SendInitialEvents, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.SendInitialEvents = nil\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_ListOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_ListOptions(in *url.Values, out *ListOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_ListOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_PatchOptions(in *url.Values, out *PatchOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"force\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.Force, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Force = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_PatchOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_PatchOptions(in *url.Values, out *PatchOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_PatchOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_TableOptions(in *url.Values, out *TableOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"-\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.NoHeaders, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.NoHeaders = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"includeObject\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_v1_IncludeObjectPolicy(&values, &out.IncludeObject, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.IncludeObject = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_TableOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_TableOptions(in *url.Values, out *TableOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_TableOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_UpdateOptions(in *url.Values, out *UpdateOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_UpdateOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_UpdateOptions(in *url.Values, out *UpdateOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_UpdateOptions(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroup) DeepCopyInto(out *APIGroup) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]GroupVersionForDiscovery, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.PreferredVersion = in.PreferredVersion\n\tif in.ServerAddressByClientCIDRs != nil {\n\t\tin, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs\n\t\t*out = make([]ServerAddressByClientCIDR, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroup.\nfunc (in *APIGroup) DeepCopy() *APIGroup {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroup)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroup) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupList) DeepCopyInto(out *APIGroupList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]APIGroup, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupList.\nfunc (in *APIGroupList) DeepCopy() *APIGroupList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResource) DeepCopyInto(out *APIResource) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make(Verbs, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ShortNames != nil {\n\t\tin, out := &in.ShortNames, &out.ShortNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Categories != nil {\n\t\tin, out := &in.Categories, &out.Categories\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResource.\nfunc (in *APIResource) DeepCopy() *APIResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResourceList) DeepCopyInto(out *APIResourceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.APIResources != nil {\n\t\tin, out := &in.APIResources, &out.APIResources\n\t\t*out = make([]APIResource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResourceList.\nfunc (in *APIResourceList) DeepCopy() *APIResourceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResourceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIResourceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIVersions) DeepCopyInto(out *APIVersions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ServerAddressByClientCIDRs != nil {\n\t\tin, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs\n\t\t*out = make([]ServerAddressByClientCIDR, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersions.\nfunc (in *APIVersions) DeepCopy() *APIVersions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIVersions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIVersions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ApplyOptions) DeepCopyInto(out *ApplyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOptions.\nfunc (in *ApplyOptions) DeepCopy() *ApplyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ApplyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Condition) DeepCopyInto(out *Condition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.\nfunc (in *Condition) DeepCopy() *Condition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Condition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CreateOptions) DeepCopyInto(out *CreateOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreateOptions.\nfunc (in *CreateOptions) DeepCopy() *CreateOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CreateOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CreateOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeleteOptions) DeepCopyInto(out *DeleteOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.GracePeriodSeconds != nil {\n\t\tin, out := &in.GracePeriodSeconds, &out.GracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Preconditions != nil {\n\t\tin, out := &in.Preconditions, &out.Preconditions\n\t\t*out = new(Preconditions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.OrphanDependents != nil {\n\t\tin, out := &in.OrphanDependents, &out.OrphanDependents\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PropagationPolicy != nil {\n\t\tin, out := &in.PropagationPolicy, &out.PropagationPolicy\n\t\t*out = new(DeletionPropagation)\n\t\t**out = **in\n\t}\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteOptions.\nfunc (in *DeleteOptions) DeepCopy() *DeleteOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeleteOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeleteOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Duration) DeepCopyInto(out *Duration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Duration.\nfunc (in *Duration) DeepCopy() *Duration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Duration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FieldsV1) DeepCopyInto(out *FieldsV1) {\n\t*out = *in\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldsV1.\nfunc (in *FieldsV1) DeepCopy() *FieldsV1 {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FieldsV1)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GetOptions) DeepCopyInto(out *GetOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GetOptions.\nfunc (in *GetOptions) DeepCopy() *GetOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GetOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *GetOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupKind) DeepCopyInto(out *GroupKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupKind.\nfunc (in *GroupKind) DeepCopy() *GroupKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupResource) DeepCopyInto(out *GroupResource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.\nfunc (in *GroupResource) DeepCopy() *GroupResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersion) DeepCopyInto(out *GroupVersion) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersion.\nfunc (in *GroupVersion) DeepCopy() *GroupVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionForDiscovery) DeepCopyInto(out *GroupVersionForDiscovery) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionForDiscovery.\nfunc (in *GroupVersionForDiscovery) DeepCopy() *GroupVersionForDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionForDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionKind.\nfunc (in *GroupVersionKind) DeepCopy() *GroupVersionKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionResource) DeepCopyInto(out *GroupVersionResource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionResource.\nfunc (in *GroupVersionResource) DeepCopy() *GroupVersionResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *InternalEvent) DeepCopyInto(out *InternalEvent) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalEvent.\nfunc (in *InternalEvent) DeepCopy() *InternalEvent {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(InternalEvent)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LabelSelector) DeepCopyInto(out *LabelSelector) {\n\t*out = *in\n\tif in.MatchLabels != nil {\n\t\tin, out := &in.MatchLabels, &out.MatchLabels\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]LabelSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelector.\nfunc (in *LabelSelector) DeepCopy() *LabelSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LabelSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LabelSelectorRequirement) DeepCopyInto(out *LabelSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelectorRequirement.\nfunc (in *LabelSelectorRequirement) DeepCopy() *LabelSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LabelSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *List) DeepCopyInto(out *List) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.RawExtension, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.\nfunc (in *List) DeepCopy() *List {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(List)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *List) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ListMeta) DeepCopyInto(out *ListMeta) {\n\t*out = *in\n\tif in.RemainingItemCount != nil {\n\t\tin, out := &in.RemainingItemCount, &out.RemainingItemCount\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListMeta.\nfunc (in *ListMeta) DeepCopy() *ListMeta {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ListMeta)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ListOptions) DeepCopyInto(out *ListOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.SendInitialEvents != nil {\n\t\tin, out := &in.SendInitialEvents, &out.SendInitialEvents\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListOptions.\nfunc (in *ListOptions) DeepCopy() *ListOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ListOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ListOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ManagedFieldsEntry) DeepCopyInto(out *ManagedFieldsEntry) {\n\t*out = *in\n\tif in.Time != nil {\n\t\tin, out := &in.Time, &out.Time\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.FieldsV1 != nil {\n\t\tin, out := &in.FieldsV1, &out.FieldsV1\n\t\t*out = new(FieldsV1)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedFieldsEntry.\nfunc (in *ManagedFieldsEntry) DeepCopy() *ManagedFieldsEntry {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ManagedFieldsEntry)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicroTime.\nfunc (in *MicroTime) DeepCopy() *MicroTime {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MicroTime)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMeta) DeepCopyInto(out *ObjectMeta) {\n\t*out = *in\n\tin.CreationTimestamp.DeepCopyInto(&out.CreationTimestamp)\n\tif in.DeletionTimestamp != nil {\n\t\tin, out := &in.DeletionTimestamp, &out.DeletionTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.DeletionGracePeriodSeconds != nil {\n\t\tin, out := &in.DeletionGracePeriodSeconds, &out.DeletionGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Labels != nil {\n\t\tin, out := &in.Labels, &out.Labels\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.OwnerReferences != nil {\n\t\tin, out := &in.OwnerReferences, &out.OwnerReferences\n\t\t*out = make([]OwnerReference, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Finalizers != nil {\n\t\tin, out := &in.Finalizers, &out.Finalizers\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ManagedFields != nil {\n\t\tin, out := &in.ManagedFields, &out.ManagedFields\n\t\t*out = make([]ManagedFieldsEntry, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.\nfunc (in *ObjectMeta) DeepCopy() *ObjectMeta {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMeta)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *OwnerReference) DeepCopyInto(out *OwnerReference) {\n\t*out = *in\n\tif in.Controller != nil {\n\t\tin, out := &in.Controller, &out.Controller\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.BlockOwnerDeletion != nil {\n\t\tin, out := &in.BlockOwnerDeletion, &out.BlockOwnerDeletion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OwnerReference.\nfunc (in *OwnerReference) DeepCopy() *OwnerReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(OwnerReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PartialObjectMetadata) DeepCopyInto(out *PartialObjectMetadata) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMetadata.\nfunc (in *PartialObjectMetadata) DeepCopy() *PartialObjectMetadata {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PartialObjectMetadata)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PartialObjectMetadata) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PartialObjectMetadataList) DeepCopyInto(out *PartialObjectMetadataList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PartialObjectMetadata, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMetadataList.\nfunc (in *PartialObjectMetadataList) DeepCopy() *PartialObjectMetadataList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PartialObjectMetadataList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PartialObjectMetadataList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Patch) DeepCopyInto(out *Patch) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.\nfunc (in *Patch) DeepCopy() *Patch {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Patch)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PatchOptions) DeepCopyInto(out *PatchOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Force != nil {\n\t\tin, out := &in.Force, &out.Force\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchOptions.\nfunc (in *PatchOptions) DeepCopy() *PatchOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PatchOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PatchOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preconditions) DeepCopyInto(out *Preconditions) {\n\t*out = *in\n\tif in.UID != nil {\n\t\tin, out := &in.UID, &out.UID\n\t\t*out = new(types.UID)\n\t\t**out = **in\n\t}\n\tif in.ResourceVersion != nil {\n\t\tin, out := &in.ResourceVersion, &out.ResourceVersion\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preconditions.\nfunc (in *Preconditions) DeepCopy() *Preconditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preconditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RootPaths) DeepCopyInto(out *RootPaths) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootPaths.\nfunc (in *RootPaths) DeepCopy() *RootPaths {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RootPaths)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServerAddressByClientCIDR) DeepCopyInto(out *ServerAddressByClientCIDR) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerAddressByClientCIDR.\nfunc (in *ServerAddressByClientCIDR) DeepCopy() *ServerAddressByClientCIDR {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServerAddressByClientCIDR)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Status) DeepCopyInto(out *Status) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Details != nil {\n\t\tin, out := &in.Details, &out.Details\n\t\t*out = new(StatusDetails)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.\nfunc (in *Status) DeepCopy() *Status {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Status)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Status) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatusCause) DeepCopyInto(out *StatusCause) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusCause.\nfunc (in *StatusCause) DeepCopy() *StatusCause {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatusCause)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatusDetails) DeepCopyInto(out *StatusDetails) {\n\t*out = *in\n\tif in.Causes != nil {\n\t\tin, out := &in.Causes, &out.Causes\n\t\t*out = make([]StatusCause, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusDetails.\nfunc (in *StatusDetails) DeepCopy() *StatusDetails {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatusDetails)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Table) DeepCopyInto(out *Table) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.ColumnDefinitions != nil {\n\t\tin, out := &in.ColumnDefinitions, &out.ColumnDefinitions\n\t\t*out = make([]TableColumnDefinition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Rows != nil {\n\t\tin, out := &in.Rows, &out.Rows\n\t\t*out = make([]TableRow, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Table.\nfunc (in *Table) DeepCopy() *Table {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Table)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Table) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableColumnDefinition) DeepCopyInto(out *TableColumnDefinition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableColumnDefinition.\nfunc (in *TableColumnDefinition) DeepCopy() *TableColumnDefinition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableColumnDefinition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableOptions) DeepCopyInto(out *TableOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableOptions.\nfunc (in *TableOptions) DeepCopy() *TableOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TableOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableRow) DeepCopyInto(out *TableRow) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableRowCondition) DeepCopyInto(out *TableRowCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableRowCondition.\nfunc (in *TableRowCondition) DeepCopy() *TableRowCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableRowCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Time.\nfunc (in *Time) DeepCopy() *Time {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Time)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Timestamp) DeepCopyInto(out *Timestamp) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timestamp.\nfunc (in *Timestamp) DeepCopy() *Timestamp {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Timestamp)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UpdateOptions) DeepCopyInto(out *UpdateOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateOptions.\nfunc (in *UpdateOptions) DeepCopy() *UpdateOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UpdateOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *UpdateOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in Verbs) DeepCopyInto(out *Verbs) {\n\t{\n\t\tin := &in\n\t\t*out = make(Verbs, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Verbs.\nfunc (in Verbs) DeepCopy() Verbs {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Verbs)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WatchEvent) DeepCopyInto(out *WatchEvent) {\n\t*out = *in\n\tin.Object.DeepCopyInto(&out.Object)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatchEvent.\nfunc (in *WatchEvent) DeepCopy() *WatchEvent {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WatchEvent)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *WatchEvent) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/converter.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\ntype typePair struct {\n\tsource reflect.Type\n\tdest   reflect.Type\n}\n\ntype NameFunc func(t reflect.Type) string\n\nvar DefaultNameFunc = func(t reflect.Type) string { return t.Name() }\n\n// ConversionFunc converts the object a into the object b, reusing arrays or objects\n// or pointers if necessary. It should return an error if the object cannot be converted\n// or if some data is invalid. If you do not wish a and b to share fields or nested\n// objects, you must copy a before calling this function.\ntype ConversionFunc func(a, b interface{}, scope Scope) error\n\n// Converter knows how to convert one type to another.\ntype Converter struct {\n\t// Map from the conversion pair to a function which can\n\t// do the conversion.\n\tconversionFuncs          ConversionFuncs\n\tgeneratedConversionFuncs ConversionFuncs\n\n\t// Set of conversions that should be treated as a no-op\n\tignoredUntypedConversions map[typePair]struct{}\n}\n\n// NewConverter creates a new Converter object.\n// Arg NameFunc is just for backward compatibility.\nfunc NewConverter(NameFunc) *Converter {\n\tc := &Converter{\n\t\tconversionFuncs:           NewConversionFuncs(),\n\t\tgeneratedConversionFuncs:  NewConversionFuncs(),\n\t\tignoredUntypedConversions: make(map[typePair]struct{}),\n\t}\n\tc.RegisterUntypedConversionFunc(\n\t\t(*[]byte)(nil), (*[]byte)(nil),\n\t\tfunc(a, b interface{}, s Scope) error {\n\t\t\treturn Convert_Slice_byte_To_Slice_byte(a.(*[]byte), b.(*[]byte), s)\n\t\t},\n\t)\n\treturn c\n}\n\n// WithConversions returns a Converter that is a copy of c but with the additional\n// fns merged on top.\nfunc (c *Converter) WithConversions(fns ConversionFuncs) *Converter {\n\tcopied := *c\n\tcopied.conversionFuncs = c.conversionFuncs.Merge(fns)\n\treturn &copied\n}\n\n// DefaultMeta returns meta for a given type.\nfunc (c *Converter) DefaultMeta(t reflect.Type) *Meta {\n\treturn &Meta{}\n}\n\n// Convert_Slice_byte_To_Slice_byte prevents recursing into every byte\nfunc Convert_Slice_byte_To_Slice_byte(in *[]byte, out *[]byte, s Scope) error {\n\tif *in == nil {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\t*out = make([]byte, len(*in))\n\tcopy(*out, *in)\n\treturn nil\n}\n\n// Scope is passed to conversion funcs to allow them to continue an ongoing conversion.\n// If multiple converters exist in the system, Scope will allow you to use the correct one\n// from a conversion function--that is, the one your conversion function was called by.\ntype Scope interface {\n\t// Call Convert to convert sub-objects. Note that if you call it with your own exact\n\t// parameters, you'll run out of stack space before anything useful happens.\n\tConvert(src, dest interface{}) error\n\n\t// Meta returns any information originally passed to Convert.\n\tMeta() *Meta\n}\n\nfunc NewConversionFuncs() ConversionFuncs {\n\treturn ConversionFuncs{\n\t\tuntyped: make(map[typePair]ConversionFunc),\n\t}\n}\n\ntype ConversionFuncs struct {\n\tuntyped map[typePair]ConversionFunc\n}\n\n// AddUntyped adds the provided conversion function to the lookup table for the types that are\n// supplied as a and b. a and b must be pointers or an error is returned. This method overwrites\n// previously defined functions.\nfunc (c ConversionFuncs) AddUntyped(a, b interface{}, fn ConversionFunc) error {\n\ttA, tB := reflect.TypeOf(a), reflect.TypeOf(b)\n\tif tA.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"the type %T must be a pointer to register as an untyped conversion\", a)\n\t}\n\tif tB.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"the type %T must be a pointer to register as an untyped conversion\", b)\n\t}\n\tc.untyped[typePair{tA, tB}] = fn\n\treturn nil\n}\n\n// Merge returns a new ConversionFuncs that contains all conversions from\n// both other and c, with other conversions taking precedence.\nfunc (c ConversionFuncs) Merge(other ConversionFuncs) ConversionFuncs {\n\tmerged := NewConversionFuncs()\n\tfor k, v := range c.untyped {\n\t\tmerged.untyped[k] = v\n\t}\n\tfor k, v := range other.untyped {\n\t\tmerged.untyped[k] = v\n\t}\n\treturn merged\n}\n\n// Meta is supplied by Scheme, when it calls Convert.\ntype Meta struct {\n\t// Context is an optional field that callers may use to pass info to conversion functions.\n\tContext interface{}\n}\n\n// scope contains information about an ongoing conversion.\ntype scope struct {\n\tconverter *Converter\n\tmeta      *Meta\n}\n\n// Convert continues a conversion.\nfunc (s *scope) Convert(src, dest interface{}) error {\n\treturn s.converter.Convert(src, dest, s.meta)\n}\n\n// Meta returns the meta object that was originally passed to Convert.\nfunc (s *scope) Meta() *Meta {\n\treturn s.meta\n}\n\n// RegisterUntypedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (c *Converter) RegisterUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error {\n\treturn c.conversionFuncs.AddUntyped(a, b, fn)\n}\n\n// RegisterGeneratedUntypedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (c *Converter) RegisterGeneratedUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error {\n\treturn c.generatedConversionFuncs.AddUntyped(a, b, fn)\n}\n\n// RegisterIgnoredConversion registers a \"no-op\" for conversion, where any requested\n// conversion between from and to is ignored.\nfunc (c *Converter) RegisterIgnoredConversion(from, to interface{}) error {\n\ttypeFrom := reflect.TypeOf(from)\n\ttypeTo := reflect.TypeOf(to)\n\tif typeFrom.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"expected pointer arg for 'from' param 0, got: %v\", typeFrom)\n\t}\n\tif typeTo.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"expected pointer arg for 'to' param 1, got: %v\", typeTo)\n\t}\n\tc.ignoredUntypedConversions[typePair{typeFrom, typeTo}] = struct{}{}\n\treturn nil\n}\n\n// Convert will translate src to dest if it knows how. Both must be pointers.\n// If no conversion func is registered and the default copying mechanism\n// doesn't work on this type pair, an error will be returned.\n// 'meta' is given to allow you to pass information to conversion functions,\n// it is not used by Convert() other than storing it in the scope.\n// Not safe for objects with cyclic references!\nfunc (c *Converter) Convert(src, dest interface{}, meta *Meta) error {\n\tpair := typePair{reflect.TypeOf(src), reflect.TypeOf(dest)}\n\tscope := &scope{\n\t\tconverter: c,\n\t\tmeta:      meta,\n\t}\n\n\t// ignore conversions of this type\n\tif _, ok := c.ignoredUntypedConversions[pair]; ok {\n\t\treturn nil\n\t}\n\tif fn, ok := c.conversionFuncs.untyped[pair]; ok {\n\t\treturn fn(src, dest, scope)\n\t}\n\tif fn, ok := c.generatedConversionFuncs.untyped[pair]; ok {\n\t\treturn fn(src, dest, scope)\n\t}\n\n\tdv, err := EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tsv, err := EnforcePtr(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fmt.Errorf(\"converting (%s) to (%s): unknown conversion\", sv.Type(), dv.Type())\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/deep_equal.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"k8s.io/apimachinery/third_party/forked/golang/reflect\"\n)\n\n// The code for this type must be located in third_party, since it forks from\n// go std lib. But for convenience, we expose the type here, too.\ntype Equalities struct {\n\treflect.Equalities\n}\n\n// For convenience, panics on errors\nfunc EqualitiesOrDie(funcs ...interface{}) Equalities {\n\te := Equalities{reflect.Equalities{}}\n\tif err := e.AddFuncs(funcs...); err != nil {\n\t\tpanic(err)\n\t}\n\treturn e\n}\n\n// Performs a shallow copy of the equalities map\nfunc (e Equalities) Copy() Equalities {\n\tresult := Equalities{reflect.Equalities{}}\n\n\tfor key, value := range e.Equalities {\n\t\tresult.Equalities[key] = value\n\t}\n\n\treturn result\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package conversion provides go object versioning.\n//\n// Specifically, conversion provides a way for you to define multiple versions\n// of the same object. You may write functions which implement conversion logic,\n// but for the fields which did not change, copying is automated. This makes it\n// easy to modify the structures you use in memory without affecting the format\n// you store on disk or respond to in your external API calls.\npackage conversion // import \"k8s.io/apimachinery/pkg/conversion\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/helper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// EnforcePtr ensures that obj is a pointer of some sort. Returns a reflect.Value\n// of the dereferenced pointer, ensuring that it is settable/addressable.\n// Returns an error if this is not possible.\nfunc EnforcePtr(obj interface{}) (reflect.Value, error) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Pointer {\n\t\tif v.Kind() == reflect.Invalid {\n\t\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got invalid kind\")\n\t\t}\n\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got %v type\", v.Type())\n\t}\n\tif v.IsNil() {\n\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got nil\")\n\t}\n\treturn v.Elem(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/queryparams/convert.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage queryparams\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Marshaler converts an object to a query parameter string representation\ntype Marshaler interface {\n\tMarshalQueryParameter() (string, error)\n}\n\n// Unmarshaler converts a string representation to an object\ntype Unmarshaler interface {\n\tUnmarshalQueryParameter(string) error\n}\n\nfunc jsonTag(field reflect.StructField) (string, bool) {\n\tstructTag := field.Tag.Get(\"json\")\n\tif len(structTag) == 0 {\n\t\treturn \"\", false\n\t}\n\tparts := strings.Split(structTag, \",\")\n\ttag := parts[0]\n\tif tag == \"-\" {\n\t\ttag = \"\"\n\t}\n\tomitempty := false\n\tparts = parts[1:]\n\tfor _, part := range parts {\n\t\tif part == \"omitempty\" {\n\t\t\tomitempty = true\n\t\t\tbreak\n\t\t}\n\t}\n\treturn tag, omitempty\n}\n\nfunc isPointerKind(kind reflect.Kind) bool {\n\treturn kind == reflect.Pointer\n}\n\nfunc isStructKind(kind reflect.Kind) bool {\n\treturn kind == reflect.Struct\n}\n\nfunc isValueKind(kind reflect.Kind) bool {\n\tswitch kind {\n\tcase reflect.String, reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16,\n\t\treflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8,\n\t\treflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float32,\n\t\treflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc zeroValue(value reflect.Value) bool {\n\treturn reflect.DeepEqual(reflect.Zero(value.Type()).Interface(), value.Interface())\n}\n\nfunc customMarshalValue(value reflect.Value) (reflect.Value, bool) {\n\t// Return unless we implement a custom query marshaler\n\tif !value.CanInterface() {\n\t\treturn reflect.Value{}, false\n\t}\n\n\tmarshaler, ok := value.Interface().(Marshaler)\n\tif !ok {\n\t\tif !isPointerKind(value.Kind()) && value.CanAddr() {\n\t\t\tmarshaler, ok = value.Addr().Interface().(Marshaler)\n\t\t\tif !ok {\n\t\t\t\treturn reflect.Value{}, false\n\t\t\t}\n\t\t} else {\n\t\t\treturn reflect.Value{}, false\n\t\t}\n\t}\n\n\t// Don't invoke functions on nil pointers\n\t// If the type implements MarshalQueryParameter, AND the tag is not omitempty, AND the value is a nil pointer, \"\" seems like a reasonable response\n\tif isPointerKind(value.Kind()) && zeroValue(value) {\n\t\treturn reflect.ValueOf(\"\"), true\n\t}\n\n\t// Get the custom marshalled value\n\tv, err := marshaler.MarshalQueryParameter()\n\tif err != nil {\n\t\treturn reflect.Value{}, false\n\t}\n\treturn reflect.ValueOf(v), true\n}\n\nfunc addParam(values url.Values, tag string, omitempty bool, value reflect.Value) {\n\tif omitempty && zeroValue(value) {\n\t\treturn\n\t}\n\tval := \"\"\n\tiValue := fmt.Sprintf(\"%v\", value.Interface())\n\n\tif iValue != \"<nil>\" {\n\t\tval = iValue\n\t}\n\tvalues.Add(tag, val)\n}\n\nfunc addListOfParams(values url.Values, tag string, omitempty bool, list reflect.Value) {\n\tfor i := 0; i < list.Len(); i++ {\n\t\taddParam(values, tag, omitempty, list.Index(i))\n\t}\n}\n\n// Convert takes an object and converts it to a url.Values object using JSON tags as\n// parameter names. Only top-level simple values, arrays, and slices are serialized.\n// Embedded structs, maps, etc. will not be serialized.\nfunc Convert(obj interface{}) (url.Values, error) {\n\tresult := url.Values{}\n\tif obj == nil {\n\t\treturn result, nil\n\t}\n\tvar sv reflect.Value\n\tswitch reflect.TypeOf(obj).Kind() {\n\tcase reflect.Pointer, reflect.Interface:\n\t\tsv = reflect.ValueOf(obj).Elem()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"expecting a pointer or interface\")\n\t}\n\tst := sv.Type()\n\tif !isStructKind(st.Kind()) {\n\t\treturn nil, fmt.Errorf(\"expecting a pointer to a struct\")\n\t}\n\n\t// Check all object fields\n\tconvertStruct(result, st, sv)\n\n\treturn result, nil\n}\n\nfunc convertStruct(result url.Values, st reflect.Type, sv reflect.Value) {\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tfield := sv.Field(i)\n\t\ttag, omitempty := jsonTag(st.Field(i))\n\t\tif len(tag) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tft := field.Type()\n\n\t\tkind := ft.Kind()\n\t\tif isPointerKind(kind) {\n\t\t\tft = ft.Elem()\n\t\t\tkind = ft.Kind()\n\t\t\tif !field.IsNil() {\n\t\t\t\tfield = reflect.Indirect(field)\n\t\t\t\t// If the field is non-nil, it should be added to params\n\t\t\t\t// and the omitempty should be overwite to false\n\t\t\t\tomitempty = false\n\t\t\t}\n\t\t}\n\n\t\tswitch {\n\t\tcase isValueKind(kind):\n\t\t\taddParam(result, tag, omitempty, field)\n\t\tcase kind == reflect.Array || kind == reflect.Slice:\n\t\t\tif isValueKind(ft.Elem().Kind()) {\n\t\t\t\taddListOfParams(result, tag, omitempty, field)\n\t\t\t}\n\t\tcase isStructKind(kind) && !(zeroValue(field) && omitempty):\n\t\t\tif marshalValue, ok := customMarshalValue(field); ok {\n\t\t\t\taddParam(result, tag, omitempty, marshalValue)\n\t\t\t} else {\n\t\t\t\tconvertStruct(result, ft, field)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/queryparams/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package queryparams provides conversion from versioned\n// runtime objects to URL query values\npackage queryparams // import \"k8s.io/apimachinery/pkg/conversion/queryparams\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fields implements a simple field system, parsing and matching\n// selectors with sets of fields.\npackage fields // import \"k8s.io/apimachinery/pkg/fields\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/fields.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\n// Fields allows you to present fields independently from their storage.\ntype Fields interface {\n\t// Has returns whether the provided field exists.\n\tHas(field string) (exists bool)\n\n\t// Get returns the value for the provided field.\n\tGet(field string) (value string)\n}\n\n// Set is a map of field:value. It implements Fields.\ntype Set map[string]string\n\n// String returns all fields listed as a human readable string.\n// Conveniently, exactly the format that ParseSelector takes.\nfunc (ls Set) String() string {\n\tselector := make([]string, 0, len(ls))\n\tfor key, value := range ls {\n\t\tselector = append(selector, key+\"=\"+value)\n\t}\n\t// Sort for determinism.\n\tsort.StringSlice(selector).Sort()\n\treturn strings.Join(selector, \",\")\n}\n\n// Has returns whether the provided field exists in the map.\nfunc (ls Set) Has(field string) bool {\n\t_, exists := ls[field]\n\treturn exists\n}\n\n// Get returns the value in the map for the provided field.\nfunc (ls Set) Get(field string) string {\n\treturn ls[field]\n}\n\n// AsSelector converts fields into a selectors.\nfunc (ls Set) AsSelector() Selector {\n\treturn SelectorFromSet(ls)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/requirements.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport \"k8s.io/apimachinery/pkg/selection\"\n\n// Requirements is AND of all requirements.\ntype Requirements []Requirement\n\n// Requirement contains a field, a value, and an operator that relates the field and value.\n// This is currently for reading internal selection information of field selector.\ntype Requirement struct {\n\tOperator selection.Operator\n\tField    string\n\tValue    string\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/selector.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/selection\"\n)\n\n// Selector represents a field selector.\ntype Selector interface {\n\t// Matches returns true if this selector matches the given set of fields.\n\tMatches(Fields) bool\n\n\t// Empty returns true if this selector does not restrict the selection space.\n\tEmpty() bool\n\n\t// RequiresExactMatch allows a caller to introspect whether a given selector\n\t// requires a single specific field to be set, and if so returns the value it\n\t// requires.\n\tRequiresExactMatch(field string) (value string, found bool)\n\n\t// Transform returns a new copy of the selector after TransformFunc has been\n\t// applied to the entire selector, or an error if fn returns an error.\n\t// If for a given requirement both field and value are transformed to empty\n\t// string, the requirement is skipped.\n\tTransform(fn TransformFunc) (Selector, error)\n\n\t// Requirements converts this interface to Requirements to expose\n\t// more detailed selection information.\n\tRequirements() Requirements\n\n\t// String returns a human readable string that represents this selector.\n\tString() string\n\n\t// Make a deep copy of the selector.\n\tDeepCopySelector() Selector\n}\n\ntype nothingSelector struct{}\n\nfunc (n nothingSelector) Matches(_ Fields) bool      { return false }\nfunc (n nothingSelector) Empty() bool                { return false }\nfunc (n nothingSelector) String() string             { return \"\" }\nfunc (n nothingSelector) Requirements() Requirements { return nil }\nfunc (n nothingSelector) DeepCopySelector() Selector { return n }\nfunc (n nothingSelector) RequiresExactMatch(field string) (value string, found bool) {\n\treturn \"\", false\n}\nfunc (n nothingSelector) Transform(fn TransformFunc) (Selector, error) { return n, nil }\n\n// Nothing returns a selector that matches no fields\nfunc Nothing() Selector {\n\treturn nothingSelector{}\n}\n\n// Everything returns a selector that matches all fields.\nfunc Everything() Selector {\n\treturn andTerm{}\n}\n\ntype hasTerm struct {\n\tfield, value string\n}\n\nfunc (t *hasTerm) Matches(ls Fields) bool {\n\treturn ls.Get(t.field) == t.value\n}\n\nfunc (t *hasTerm) Empty() bool {\n\treturn false\n}\n\nfunc (t *hasTerm) RequiresExactMatch(field string) (value string, found bool) {\n\tif t.field == field {\n\t\treturn t.value, true\n\t}\n\treturn \"\", false\n}\n\nfunc (t *hasTerm) Transform(fn TransformFunc) (Selector, error) {\n\tfield, value, err := fn(t.field, t.value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(field) == 0 && len(value) == 0 {\n\t\treturn Everything(), nil\n\t}\n\treturn &hasTerm{field, value}, nil\n}\n\nfunc (t *hasTerm) Requirements() Requirements {\n\treturn []Requirement{{\n\t\tField:    t.field,\n\t\tOperator: selection.Equals,\n\t\tValue:    t.value,\n\t}}\n}\n\nfunc (t *hasTerm) String() string {\n\treturn fmt.Sprintf(\"%v=%v\", t.field, EscapeValue(t.value))\n}\n\nfunc (t *hasTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := new(hasTerm)\n\t*out = *t\n\treturn out\n}\n\ntype notHasTerm struct {\n\tfield, value string\n}\n\nfunc (t *notHasTerm) Matches(ls Fields) bool {\n\treturn ls.Get(t.field) != t.value\n}\n\nfunc (t *notHasTerm) Empty() bool {\n\treturn false\n}\n\nfunc (t *notHasTerm) RequiresExactMatch(field string) (value string, found bool) {\n\treturn \"\", false\n}\n\nfunc (t *notHasTerm) Transform(fn TransformFunc) (Selector, error) {\n\tfield, value, err := fn(t.field, t.value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(field) == 0 && len(value) == 0 {\n\t\treturn Everything(), nil\n\t}\n\treturn &notHasTerm{field, value}, nil\n}\n\nfunc (t *notHasTerm) Requirements() Requirements {\n\treturn []Requirement{{\n\t\tField:    t.field,\n\t\tOperator: selection.NotEquals,\n\t\tValue:    t.value,\n\t}}\n}\n\nfunc (t *notHasTerm) String() string {\n\treturn fmt.Sprintf(\"%v!=%v\", t.field, EscapeValue(t.value))\n}\n\nfunc (t *notHasTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := new(notHasTerm)\n\t*out = *t\n\treturn out\n}\n\ntype andTerm []Selector\n\nfunc (t andTerm) Matches(ls Fields) bool {\n\tfor _, q := range t {\n\t\tif !q.Matches(ls) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (t andTerm) Empty() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\tif len([]Selector(t)) == 0 {\n\t\treturn true\n\t}\n\tfor i := range t {\n\t\tif !t[i].Empty() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (t andTerm) RequiresExactMatch(field string) (string, bool) {\n\tif t == nil || len([]Selector(t)) == 0 {\n\t\treturn \"\", false\n\t}\n\tfor i := range t {\n\t\tif value, found := t[i].RequiresExactMatch(field); found {\n\t\t\treturn value, found\n\t\t}\n\t}\n\treturn \"\", false\n}\n\nfunc (t andTerm) Transform(fn TransformFunc) (Selector, error) {\n\tnext := make([]Selector, 0, len([]Selector(t)))\n\tfor _, s := range []Selector(t) {\n\t\tn, err := s.Transform(fn)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !n.Empty() {\n\t\t\tnext = append(next, n)\n\t\t}\n\t}\n\treturn andTerm(next), nil\n}\n\nfunc (t andTerm) Requirements() Requirements {\n\treqs := make([]Requirement, 0, len(t))\n\tfor _, s := range []Selector(t) {\n\t\trs := s.Requirements()\n\t\treqs = append(reqs, rs...)\n\t}\n\treturn reqs\n}\n\nfunc (t andTerm) String() string {\n\tvar terms []string\n\tfor _, q := range t {\n\t\tterms = append(terms, q.String())\n\t}\n\treturn strings.Join(terms, \",\")\n}\n\nfunc (t andTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := make([]Selector, len(t))\n\tfor i := range t {\n\t\tout[i] = t[i].DeepCopySelector()\n\t}\n\treturn andTerm(out)\n}\n\n// SelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil Set is considered equivalent to Everything().\nfunc SelectorFromSet(ls Set) Selector {\n\tif ls == nil {\n\t\treturn Everything()\n\t}\n\titems := make([]Selector, 0, len(ls))\n\tfor field, value := range ls {\n\t\titems = append(items, &hasTerm{field: field, value: value})\n\t}\n\tif len(items) == 1 {\n\t\treturn items[0]\n\t}\n\treturn andTerm(items)\n}\n\n// valueEscaper prefixes \\,= characters with a backslash\nvar valueEscaper = strings.NewReplacer(\n\t// escape \\ characters\n\t`\\`, `\\\\`,\n\t// then escape , and = characters to allow unambiguous parsing of the value in a fieldSelector\n\t`,`, `\\,`,\n\t`=`, `\\=`,\n)\n\n// EscapeValue escapes an arbitrary literal string for use as a fieldSelector value\nfunc EscapeValue(s string) string {\n\treturn valueEscaper.Replace(s)\n}\n\n// InvalidEscapeSequence indicates an error occurred unescaping a field selector\ntype InvalidEscapeSequence struct {\n\tsequence string\n}\n\nfunc (i InvalidEscapeSequence) Error() string {\n\treturn fmt.Sprintf(\"invalid field selector: invalid escape sequence: %s\", i.sequence)\n}\n\n// UnescapedRune indicates an error occurred unescaping a field selector\ntype UnescapedRune struct {\n\tr rune\n}\n\nfunc (i UnescapedRune) Error() string {\n\treturn fmt.Sprintf(\"invalid field selector: unescaped character in value: %v\", i.r)\n}\n\n// UnescapeValue unescapes a fieldSelector value and returns the original literal value.\n// May return the original string if it contains no escaped or special characters.\nfunc UnescapeValue(s string) (string, error) {\n\t// if there's no escaping or special characters, just return to avoid allocation\n\tif !strings.ContainsAny(s, `\\,=`) {\n\t\treturn s, nil\n\t}\n\n\tv := bytes.NewBuffer(make([]byte, 0, len(s)))\n\tinSlash := false\n\tfor _, c := range s {\n\t\tif inSlash {\n\t\t\tswitch c {\n\t\t\tcase '\\\\', ',', '=':\n\t\t\t\t// omit the \\ for recognized escape sequences\n\t\t\t\tv.WriteRune(c)\n\t\t\tdefault:\n\t\t\t\t// error on unrecognized escape sequences\n\t\t\t\treturn \"\", InvalidEscapeSequence{sequence: string([]rune{'\\\\', c})}\n\t\t\t}\n\t\t\tinSlash = false\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch c {\n\t\tcase '\\\\':\n\t\t\tinSlash = true\n\t\tcase ',', '=':\n\t\t\t// unescaped , and = characters are not allowed in field selector values\n\t\t\treturn \"\", UnescapedRune{r: c}\n\t\tdefault:\n\t\t\tv.WriteRune(c)\n\t\t}\n\t}\n\n\t// Ending with a single backslash is an invalid sequence\n\tif inSlash {\n\t\treturn \"\", InvalidEscapeSequence{sequence: \"\\\\\"}\n\t}\n\n\treturn v.String(), nil\n}\n\n// ParseSelectorOrDie takes a string representing a selector and returns an\n// object suitable for matching, or panic when an error occur.\nfunc ParseSelectorOrDie(s string) Selector {\n\tselector, err := ParseSelector(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn selector\n}\n\n// ParseSelector takes a string representing a selector and returns an\n// object suitable for matching, or an error.\nfunc ParseSelector(selector string) (Selector, error) {\n\treturn parseSelector(selector,\n\t\tfunc(lhs, rhs string) (newLhs, newRhs string, err error) {\n\t\t\treturn lhs, rhs, nil\n\t\t})\n}\n\n// ParseAndTransformSelector parses the selector and runs them through the given TransformFunc.\nfunc ParseAndTransformSelector(selector string, fn TransformFunc) (Selector, error) {\n\treturn parseSelector(selector, fn)\n}\n\n// TransformFunc transforms selectors.\ntype TransformFunc func(field, value string) (newField, newValue string, err error)\n\n// splitTerms returns the comma-separated terms contained in the given fieldSelector.\n// Backslash-escaped commas are treated as data instead of delimiters, and are included in the returned terms, with the leading backslash preserved.\nfunc splitTerms(fieldSelector string) []string {\n\tif len(fieldSelector) == 0 {\n\t\treturn nil\n\t}\n\n\tterms := make([]string, 0, 1)\n\tstartIndex := 0\n\tinSlash := false\n\tfor i, c := range fieldSelector {\n\t\tswitch {\n\t\tcase inSlash:\n\t\t\tinSlash = false\n\t\tcase c == '\\\\':\n\t\t\tinSlash = true\n\t\tcase c == ',':\n\t\t\tterms = append(terms, fieldSelector[startIndex:i])\n\t\t\tstartIndex = i + 1\n\t\t}\n\t}\n\n\tterms = append(terms, fieldSelector[startIndex:])\n\n\treturn terms\n}\n\nconst (\n\tnotEqualOperator    = \"!=\"\n\tdoubleEqualOperator = \"==\"\n\tequalOperator       = \"=\"\n)\n\n// termOperators holds the recognized operators supported in fieldSelectors.\n// doubleEqualOperator and equal are equivalent, but doubleEqualOperator is checked first\n// to avoid leaving a leading = character on the rhs value.\nvar termOperators = []string{notEqualOperator, doubleEqualOperator, equalOperator}\n\n// splitTerm returns the lhs, operator, and rhs parsed from the given term, along with an indicator of whether the parse was successful.\n// no escaping of special characters is supported in the lhs value, so the first occurrence of a recognized operator is used as the split point.\n// the literal rhs is returned, and the caller is responsible for applying any desired unescaping.\nfunc splitTerm(term string) (lhs, op, rhs string, ok bool) {\n\tfor i := range term {\n\t\tremaining := term[i:]\n\t\tfor _, op := range termOperators {\n\t\t\tif strings.HasPrefix(remaining, op) {\n\t\t\t\treturn term[0:i], op, term[i+len(op):], true\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", \"\", \"\", false\n}\n\nfunc parseSelector(selector string, fn TransformFunc) (Selector, error) {\n\tparts := splitTerms(selector)\n\tsort.StringSlice(parts).Sort()\n\tvar items []Selector\n\tfor _, part := range parts {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tlhs, op, rhs, ok := splitTerm(part)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid selector: '%s'; can't understand '%s'\", selector, part)\n\t\t}\n\t\tunescapedRHS, err := UnescapeValue(rhs)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch op {\n\t\tcase notEqualOperator:\n\t\t\titems = append(items, &notHasTerm{field: lhs, value: unescapedRHS})\n\t\tcase doubleEqualOperator:\n\t\t\titems = append(items, &hasTerm{field: lhs, value: unescapedRHS})\n\t\tcase equalOperator:\n\t\t\titems = append(items, &hasTerm{field: lhs, value: unescapedRHS})\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"invalid selector: '%s'; can't understand '%s'\", selector, part)\n\t\t}\n\t}\n\tif len(items) == 1 {\n\t\treturn items[0].Transform(fn)\n\t}\n\treturn andTerm(items).Transform(fn)\n}\n\n// OneTermEqualSelector returns an object that matches objects where one field/field equals one value.\n// Cannot return an error.\nfunc OneTermEqualSelector(k, v string) Selector {\n\treturn &hasTerm{field: k, value: v}\n}\n\n// OneTermNotEqualSelector returns an object that matches objects where one field/field does not equal one value.\n// Cannot return an error.\nfunc OneTermNotEqualSelector(k, v string) Selector {\n\treturn &notHasTerm{field: k, value: v}\n}\n\n// AndSelectors creates a selector that is the logical AND of all the given selectors\nfunc AndSelectors(selectors ...Selector) Selector {\n\treturn andTerm(selectors)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package labels implements a simple label system, parsing and matching\n// selectors with sets of labels.\npackage labels // import \"k8s.io/apimachinery/pkg/labels\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/labels.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage labels\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// Labels allows you to present labels independently from their storage.\ntype Labels interface {\n\t// Has returns whether the provided label exists.\n\tHas(label string) (exists bool)\n\n\t// Get returns the value for the provided label.\n\tGet(label string) (value string)\n}\n\n// Set is a map of label:value. It implements Labels.\ntype Set map[string]string\n\n// String returns all labels listed as a human readable string.\n// Conveniently, exactly the format that ParseSelector takes.\nfunc (ls Set) String() string {\n\tselector := make([]string, 0, len(ls))\n\tfor key, value := range ls {\n\t\tselector = append(selector, key+\"=\"+value)\n\t}\n\t// Sort for determinism.\n\tsort.StringSlice(selector).Sort()\n\treturn strings.Join(selector, \",\")\n}\n\n// Has returns whether the provided label exists in the map.\nfunc (ls Set) Has(label string) bool {\n\t_, exists := ls[label]\n\treturn exists\n}\n\n// Get returns the value in the map for the provided label.\nfunc (ls Set) Get(label string) string {\n\treturn ls[label]\n}\n\n// AsSelector converts labels into a selectors. It does not\n// perform any validation, which means the server will reject\n// the request if the Set contains invalid values.\nfunc (ls Set) AsSelector() Selector {\n\treturn SelectorFromSet(ls)\n}\n\n// AsValidatedSelector converts labels into a selectors.\n// The Set is validated client-side, which allows to catch errors early.\nfunc (ls Set) AsValidatedSelector() (Selector, error) {\n\treturn ValidatedSelectorFromSet(ls)\n}\n\n// AsSelectorPreValidated converts labels into a selector, but\n// assumes that labels are already validated and thus doesn't\n// perform any validation.\n// According to our measurements this is significantly faster\n// in codepaths that matter at high scale.\n// Note: this method copies the Set; if the Set is immutable, consider wrapping it with ValidatedSetSelector\n// instead, which does not copy.\nfunc (ls Set) AsSelectorPreValidated() Selector {\n\treturn SelectorFromValidatedSet(ls)\n}\n\n// FormatLabels converts label map into plain string\nfunc FormatLabels(labelMap map[string]string) string {\n\tl := Set(labelMap).String()\n\tif l == \"\" {\n\t\tl = \"<none>\"\n\t}\n\treturn l\n}\n\n// Conflicts takes 2 maps and returns true if there a key match between\n// the maps but the value doesn't match, and returns false in other cases\nfunc Conflicts(labels1, labels2 Set) bool {\n\tsmall := labels1\n\tbig := labels2\n\tif len(labels2) < len(labels1) {\n\t\tsmall = labels2\n\t\tbig = labels1\n\t}\n\n\tfor k, v := range small {\n\t\tif val, match := big[k]; match {\n\t\t\tif val != v {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\n// Merge combines given maps, and does not check for any conflicts\n// between the maps. In case of conflicts, second map (labels2) wins\nfunc Merge(labels1, labels2 Set) Set {\n\tmergedMap := Set{}\n\n\tfor k, v := range labels1 {\n\t\tmergedMap[k] = v\n\t}\n\tfor k, v := range labels2 {\n\t\tmergedMap[k] = v\n\t}\n\treturn mergedMap\n}\n\n// Equals returns true if the given maps are equal\nfunc Equals(labels1, labels2 Set) bool {\n\tif len(labels1) != len(labels2) {\n\t\treturn false\n\t}\n\n\tfor k, v := range labels1 {\n\t\tvalue, ok := labels2[k]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif value != v {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ConvertSelectorToLabelsMap converts selector string to labels map\n// and validates keys and values\nfunc ConvertSelectorToLabelsMap(selector string, opts ...field.PathOption) (Set, error) {\n\tlabelsMap := Set{}\n\n\tif len(selector) == 0 {\n\t\treturn labelsMap, nil\n\t}\n\n\tlabels := strings.Split(selector, \",\")\n\tfor _, label := range labels {\n\t\tl := strings.Split(label, \"=\")\n\t\tif len(l) != 2 {\n\t\t\treturn labelsMap, fmt.Errorf(\"invalid selector: %s\", l)\n\t\t}\n\t\tkey := strings.TrimSpace(l[0])\n\t\tif err := validateLabelKey(key, field.ToPath(opts...)); err != nil {\n\t\t\treturn labelsMap, err\n\t\t}\n\t\tvalue := strings.TrimSpace(l[1])\n\t\tif err := validateLabelValue(key, value, field.ToPath(opts...)); err != nil {\n\t\t\treturn labelsMap, err\n\t\t}\n\t\tlabelsMap[key] = value\n\t}\n\treturn labelsMap, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/selector.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage labels\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/selection\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n\t\"k8s.io/klog/v2\"\n\tstringslices \"k8s.io/utils/strings/slices\"\n)\n\nvar (\n\tunaryOperators = []string{\n\t\tstring(selection.Exists), string(selection.DoesNotExist),\n\t}\n\tbinaryOperators = []string{\n\t\tstring(selection.In), string(selection.NotIn),\n\t\tstring(selection.Equals), string(selection.DoubleEquals), string(selection.NotEquals),\n\t\tstring(selection.GreaterThan), string(selection.LessThan),\n\t}\n\tvalidRequirementOperators = append(binaryOperators, unaryOperators...)\n)\n\n// Requirements is AND of all requirements.\ntype Requirements []Requirement\n\n// Selector represents a label selector.\ntype Selector interface {\n\t// Matches returns true if this selector matches the given set of labels.\n\tMatches(Labels) bool\n\n\t// Empty returns true if this selector does not restrict the selection space.\n\tEmpty() bool\n\n\t// String returns a human readable string that represents this selector.\n\tString() string\n\n\t// Add adds requirements to the Selector\n\tAdd(r ...Requirement) Selector\n\n\t// Requirements converts this interface into Requirements to expose\n\t// more detailed selection information.\n\t// If there are querying parameters, it will return converted requirements and selectable=true.\n\t// If this selector doesn't want to select anything, it will return selectable=false.\n\tRequirements() (requirements Requirements, selectable bool)\n\n\t// Make a deep copy of the selector.\n\tDeepCopySelector() Selector\n\n\t// RequiresExactMatch allows a caller to introspect whether a given selector\n\t// requires a single specific label to be set, and if so returns the value it\n\t// requires.\n\tRequiresExactMatch(label string) (value string, found bool)\n}\n\n// Sharing this saves 1 alloc per use; this is safe because it's immutable.\nvar sharedEverythingSelector Selector = internalSelector{}\n\n// Everything returns a selector that matches all labels.\nfunc Everything() Selector {\n\treturn sharedEverythingSelector\n}\n\ntype nothingSelector struct{}\n\nfunc (n nothingSelector) Matches(_ Labels) bool              { return false }\nfunc (n nothingSelector) Empty() bool                        { return false }\nfunc (n nothingSelector) String() string                     { return \"\" }\nfunc (n nothingSelector) Add(_ ...Requirement) Selector      { return n }\nfunc (n nothingSelector) Requirements() (Requirements, bool) { return nil, false }\nfunc (n nothingSelector) DeepCopySelector() Selector         { return n }\nfunc (n nothingSelector) RequiresExactMatch(label string) (value string, found bool) {\n\treturn \"\", false\n}\n\n// Sharing this saves 1 alloc per use; this is safe because it's immutable.\nvar sharedNothingSelector Selector = nothingSelector{}\n\n// Nothing returns a selector that matches no labels\nfunc Nothing() Selector {\n\treturn sharedNothingSelector\n}\n\n// NewSelector returns a nil selector\nfunc NewSelector() Selector {\n\treturn internalSelector(nil)\n}\n\ntype internalSelector []Requirement\n\nfunc (s internalSelector) DeepCopy() internalSelector {\n\tif s == nil {\n\t\treturn nil\n\t}\n\tresult := make([]Requirement, len(s))\n\tfor i := range s {\n\t\ts[i].DeepCopyInto(&result[i])\n\t}\n\treturn result\n}\n\nfunc (s internalSelector) DeepCopySelector() Selector {\n\treturn s.DeepCopy()\n}\n\n// ByKey sorts requirements by key to obtain deterministic parser\ntype ByKey []Requirement\n\nfunc (a ByKey) Len() int { return len(a) }\n\nfunc (a ByKey) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\n\nfunc (a ByKey) Less(i, j int) bool { return a[i].key < a[j].key }\n\n// Requirement contains values, a key, and an operator that relates the key and values.\n// The zero value of Requirement is invalid.\n// Requirement implements both set based match and exact match\n// Requirement should be initialized via NewRequirement constructor for creating a valid Requirement.\n// +k8s:deepcopy-gen=true\ntype Requirement struct {\n\tkey      string\n\toperator selection.Operator\n\t// In huge majority of cases we have at most one value here.\n\t// It is generally faster to operate on a single-element slice\n\t// than on a single-element map, so we have a slice here.\n\tstrValues []string\n}\n\n// NewRequirement is the constructor for a Requirement.\n// If any of these rules is violated, an error is returned:\n//  1. The operator can only be In, NotIn, Equals, DoubleEquals, Gt, Lt, NotEquals, Exists, or DoesNotExist.\n//  2. If the operator is In or NotIn, the values set must be non-empty.\n//  3. If the operator is Equals, DoubleEquals, or NotEquals, the values set must contain one value.\n//  4. If the operator is Exists or DoesNotExist, the value set must be empty.\n//  5. If the operator is Gt or Lt, the values set must contain only one value, which will be interpreted as an integer.\n//  6. The key is invalid due to its length, or sequence of characters. See validateLabelKey for more details.\n//\n// The empty string is a valid value in the input values set.\n// Returned error, if not nil, is guaranteed to be an aggregated field.ErrorList\nfunc NewRequirement(key string, op selection.Operator, vals []string, opts ...field.PathOption) (*Requirement, error) {\n\tvar allErrs field.ErrorList\n\tpath := field.ToPath(opts...)\n\tif err := validateLabelKey(key, path.Child(\"key\")); err != nil {\n\t\tallErrs = append(allErrs, err)\n\t}\n\n\tvaluePath := path.Child(\"values\")\n\tswitch op {\n\tcase selection.In, selection.NotIn:\n\t\tif len(vals) == 0 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"for 'in', 'notin' operators, values set can't be empty\"))\n\t\t}\n\tcase selection.Equals, selection.DoubleEquals, selection.NotEquals:\n\t\tif len(vals) != 1 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"exact-match compatibility requires one single value\"))\n\t\t}\n\tcase selection.Exists, selection.DoesNotExist:\n\t\tif len(vals) != 0 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"values set must be empty for exists and does not exist\"))\n\t\t}\n\tcase selection.GreaterThan, selection.LessThan:\n\t\tif len(vals) != 1 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"for 'Gt', 'Lt' operators, exactly one value is required\"))\n\t\t}\n\t\tfor i := range vals {\n\t\t\tif _, err := strconv.ParseInt(vals[i], 10, 64); err != nil {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(valuePath.Index(i), vals[i], \"for 'Gt', 'Lt' operators, the value must be an integer\"))\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tallErrs = append(allErrs, field.NotSupported(path.Child(\"operator\"), op, validRequirementOperators))\n\t}\n\n\tfor i := range vals {\n\t\tif err := validateLabelValue(key, vals[i], valuePath.Index(i)); err != nil {\n\t\t\tallErrs = append(allErrs, err)\n\t\t}\n\t}\n\treturn &Requirement{key: key, operator: op, strValues: vals}, allErrs.ToAggregate()\n}\n\nfunc (r *Requirement) hasValue(value string) bool {\n\tfor i := range r.strValues {\n\t\tif r.strValues[i] == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Matches returns true if the Requirement matches the input Labels.\n// There is a match in the following cases:\n//  1. The operator is Exists and Labels has the Requirement's key.\n//  2. The operator is In, Labels has the Requirement's key and Labels'\n//     value for that key is in Requirement's value set.\n//  3. The operator is NotIn, Labels has the Requirement's key and\n//     Labels' value for that key is not in Requirement's value set.\n//  4. The operator is DoesNotExist or NotIn and Labels does not have the\n//     Requirement's key.\n//  5. The operator is GreaterThanOperator or LessThanOperator, and Labels has\n//     the Requirement's key and the corresponding value satisfies mathematical inequality.\nfunc (r *Requirement) Matches(ls Labels) bool {\n\tswitch r.operator {\n\tcase selection.In, selection.Equals, selection.DoubleEquals:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn false\n\t\t}\n\t\treturn r.hasValue(ls.Get(r.key))\n\tcase selection.NotIn, selection.NotEquals:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn true\n\t\t}\n\t\treturn !r.hasValue(ls.Get(r.key))\n\tcase selection.Exists:\n\t\treturn ls.Has(r.key)\n\tcase selection.DoesNotExist:\n\t\treturn !ls.Has(r.key)\n\tcase selection.GreaterThan, selection.LessThan:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn false\n\t\t}\n\t\tlsValue, err := strconv.ParseInt(ls.Get(r.key), 10, 64)\n\t\tif err != nil {\n\t\t\tklog.V(10).Infof(\"ParseInt failed for value %+v in label %+v, %+v\", ls.Get(r.key), ls, err)\n\t\t\treturn false\n\t\t}\n\n\t\t// There should be only one strValue in r.strValues, and can be converted to an integer.\n\t\tif len(r.strValues) != 1 {\n\t\t\tklog.V(10).Infof(\"Invalid values count %+v of requirement %#v, for 'Gt', 'Lt' operators, exactly one value is required\", len(r.strValues), r)\n\t\t\treturn false\n\t\t}\n\n\t\tvar rValue int64\n\t\tfor i := range r.strValues {\n\t\t\trValue, err = strconv.ParseInt(r.strValues[i], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\tklog.V(10).Infof(\"ParseInt failed for value %+v in requirement %#v, for 'Gt', 'Lt' operators, the value must be an integer\", r.strValues[i], r)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn (r.operator == selection.GreaterThan && lsValue > rValue) || (r.operator == selection.LessThan && lsValue < rValue)\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Key returns requirement key\nfunc (r *Requirement) Key() string {\n\treturn r.key\n}\n\n// Operator returns requirement operator\nfunc (r *Requirement) Operator() selection.Operator {\n\treturn r.operator\n}\n\n// Values returns requirement values\nfunc (r *Requirement) Values() sets.String {\n\tret := sets.String{}\n\tfor i := range r.strValues {\n\t\tret.Insert(r.strValues[i])\n\t}\n\treturn ret\n}\n\n// Equal checks the equality of requirement.\nfunc (r Requirement) Equal(x Requirement) bool {\n\tif r.key != x.key {\n\t\treturn false\n\t}\n\tif r.operator != x.operator {\n\t\treturn false\n\t}\n\treturn stringslices.Equal(r.strValues, x.strValues)\n}\n\n// Empty returns true if the internalSelector doesn't restrict selection space\nfunc (s internalSelector) Empty() bool {\n\tif s == nil {\n\t\treturn true\n\t}\n\treturn len(s) == 0\n}\n\n// String returns a human-readable string that represents this\n// Requirement. If called on an invalid Requirement, an error is\n// returned. See NewRequirement for creating a valid Requirement.\nfunc (r *Requirement) String() string {\n\tvar sb strings.Builder\n\tsb.Grow(\n\t\t// length of r.key\n\t\tlen(r.key) +\n\t\t\t// length of 'r.operator' + 2 spaces for the worst case ('in' and 'notin')\n\t\t\tlen(r.operator) + 2 +\n\t\t\t// length of 'r.strValues' slice times. Heuristically 5 chars per word\n\t\t\t+5*len(r.strValues))\n\tif r.operator == selection.DoesNotExist {\n\t\tsb.WriteString(\"!\")\n\t}\n\tsb.WriteString(r.key)\n\n\tswitch r.operator {\n\tcase selection.Equals:\n\t\tsb.WriteString(\"=\")\n\tcase selection.DoubleEquals:\n\t\tsb.WriteString(\"==\")\n\tcase selection.NotEquals:\n\t\tsb.WriteString(\"!=\")\n\tcase selection.In:\n\t\tsb.WriteString(\" in \")\n\tcase selection.NotIn:\n\t\tsb.WriteString(\" notin \")\n\tcase selection.GreaterThan:\n\t\tsb.WriteString(\">\")\n\tcase selection.LessThan:\n\t\tsb.WriteString(\"<\")\n\tcase selection.Exists, selection.DoesNotExist:\n\t\treturn sb.String()\n\t}\n\n\tswitch r.operator {\n\tcase selection.In, selection.NotIn:\n\t\tsb.WriteString(\"(\")\n\t}\n\tif len(r.strValues) == 1 {\n\t\tsb.WriteString(r.strValues[0])\n\t} else { // only > 1 since == 0 prohibited by NewRequirement\n\t\t// normalizes value order on output, without mutating the in-memory selector representation\n\t\t// also avoids normalization when it is not required, and ensures we do not mutate shared data\n\t\tsb.WriteString(strings.Join(safeSort(r.strValues), \",\"))\n\t}\n\n\tswitch r.operator {\n\tcase selection.In, selection.NotIn:\n\t\tsb.WriteString(\")\")\n\t}\n\treturn sb.String()\n}\n\n// safeSort sorts input strings without modification\nfunc safeSort(in []string) []string {\n\tif sort.StringsAreSorted(in) {\n\t\treturn in\n\t}\n\tout := make([]string, len(in))\n\tcopy(out, in)\n\tsort.Strings(out)\n\treturn out\n}\n\n// Add adds requirements to the selector. It copies the current selector returning a new one\nfunc (s internalSelector) Add(reqs ...Requirement) Selector {\n\tret := make(internalSelector, 0, len(s)+len(reqs))\n\tret = append(ret, s...)\n\tret = append(ret, reqs...)\n\tsort.Sort(ByKey(ret))\n\treturn ret\n}\n\n// Matches for a internalSelector returns true if all\n// its Requirements match the input Labels. If any\n// Requirement does not match, false is returned.\nfunc (s internalSelector) Matches(l Labels) bool {\n\tfor ix := range s {\n\t\tif matches := s[ix].Matches(l); !matches {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (s internalSelector) Requirements() (Requirements, bool) { return Requirements(s), true }\n\n// String returns a comma-separated string of all\n// the internalSelector Requirements' human-readable strings.\nfunc (s internalSelector) String() string {\n\tvar reqs []string\n\tfor ix := range s {\n\t\treqs = append(reqs, s[ix].String())\n\t}\n\treturn strings.Join(reqs, \",\")\n}\n\n// RequiresExactMatch introspects whether a given selector requires a single specific field\n// to be set, and if so returns the value it requires.\nfunc (s internalSelector) RequiresExactMatch(label string) (value string, found bool) {\n\tfor ix := range s {\n\t\tif s[ix].key == label {\n\t\t\tswitch s[ix].operator {\n\t\t\tcase selection.Equals, selection.DoubleEquals, selection.In:\n\t\t\t\tif len(s[ix].strValues) == 1 {\n\t\t\t\t\treturn s[ix].strValues[0], true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\", false\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// Token represents constant definition for lexer token\ntype Token int\n\nconst (\n\t// ErrorToken represents scan error\n\tErrorToken Token = iota\n\t// EndOfStringToken represents end of string\n\tEndOfStringToken\n\t// ClosedParToken represents close parenthesis\n\tClosedParToken\n\t// CommaToken represents the comma\n\tCommaToken\n\t// DoesNotExistToken represents logic not\n\tDoesNotExistToken\n\t// DoubleEqualsToken represents double equals\n\tDoubleEqualsToken\n\t// EqualsToken represents equal\n\tEqualsToken\n\t// GreaterThanToken represents greater than\n\tGreaterThanToken\n\t// IdentifierToken represents identifier, e.g. keys and values\n\tIdentifierToken\n\t// InToken represents in\n\tInToken\n\t// LessThanToken represents less than\n\tLessThanToken\n\t// NotEqualsToken represents not equal\n\tNotEqualsToken\n\t// NotInToken represents not in\n\tNotInToken\n\t// OpenParToken represents open parenthesis\n\tOpenParToken\n)\n\n// string2token contains the mapping between lexer Token and token literal\n// (except IdentifierToken, EndOfStringToken and ErrorToken since it makes no sense)\nvar string2token = map[string]Token{\n\t\")\":     ClosedParToken,\n\t\",\":     CommaToken,\n\t\"!\":     DoesNotExistToken,\n\t\"==\":    DoubleEqualsToken,\n\t\"=\":     EqualsToken,\n\t\">\":     GreaterThanToken,\n\t\"in\":    InToken,\n\t\"<\":     LessThanToken,\n\t\"!=\":    NotEqualsToken,\n\t\"notin\": NotInToken,\n\t\"(\":     OpenParToken,\n}\n\n// ScannedItem contains the Token and the literal produced by the lexer.\ntype ScannedItem struct {\n\ttok     Token\n\tliteral string\n}\n\n// isWhitespace returns true if the rune is a space, tab, or newline.\nfunc isWhitespace(ch byte) bool {\n\treturn ch == ' ' || ch == '\\t' || ch == '\\r' || ch == '\\n'\n}\n\n// isSpecialSymbol detects if the character ch can be an operator\nfunc isSpecialSymbol(ch byte) bool {\n\tswitch ch {\n\tcase '=', '!', '(', ')', ',', '>', '<':\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Lexer represents the Lexer struct for label selector.\n// It contains necessary informationt to tokenize the input string\ntype Lexer struct {\n\t// s stores the string to be tokenized\n\ts string\n\t// pos is the position currently tokenized\n\tpos int\n}\n\n// read returns the character currently lexed\n// increment the position and check the buffer overflow\nfunc (l *Lexer) read() (b byte) {\n\tb = 0\n\tif l.pos < len(l.s) {\n\t\tb = l.s[l.pos]\n\t\tl.pos++\n\t}\n\treturn b\n}\n\n// unread 'undoes' the last read character\nfunc (l *Lexer) unread() {\n\tl.pos--\n}\n\n// scanIDOrKeyword scans string to recognize literal token (for example 'in') or an identifier.\nfunc (l *Lexer) scanIDOrKeyword() (tok Token, lit string) {\n\tvar buffer []byte\nIdentifierLoop:\n\tfor {\n\t\tswitch ch := l.read(); {\n\t\tcase ch == 0:\n\t\t\tbreak IdentifierLoop\n\t\tcase isSpecialSymbol(ch) || isWhitespace(ch):\n\t\t\tl.unread()\n\t\t\tbreak IdentifierLoop\n\t\tdefault:\n\t\t\tbuffer = append(buffer, ch)\n\t\t}\n\t}\n\ts := string(buffer)\n\tif val, ok := string2token[s]; ok { // is a literal token?\n\t\treturn val, s\n\t}\n\treturn IdentifierToken, s // otherwise is an identifier\n}\n\n// scanSpecialSymbol scans string starting with special symbol.\n// special symbol identify non literal operators. \"!=\", \"==\", \"=\"\nfunc (l *Lexer) scanSpecialSymbol() (Token, string) {\n\tlastScannedItem := ScannedItem{}\n\tvar buffer []byte\nSpecialSymbolLoop:\n\tfor {\n\t\tswitch ch := l.read(); {\n\t\tcase ch == 0:\n\t\t\tbreak SpecialSymbolLoop\n\t\tcase isSpecialSymbol(ch):\n\t\t\tbuffer = append(buffer, ch)\n\t\t\tif token, ok := string2token[string(buffer)]; ok {\n\t\t\t\tlastScannedItem = ScannedItem{tok: token, literal: string(buffer)}\n\t\t\t} else if lastScannedItem.tok != 0 {\n\t\t\t\tl.unread()\n\t\t\t\tbreak SpecialSymbolLoop\n\t\t\t}\n\t\tdefault:\n\t\t\tl.unread()\n\t\t\tbreak SpecialSymbolLoop\n\t\t}\n\t}\n\tif lastScannedItem.tok == 0 {\n\t\treturn ErrorToken, fmt.Sprintf(\"error expected: keyword found '%s'\", buffer)\n\t}\n\treturn lastScannedItem.tok, lastScannedItem.literal\n}\n\n// skipWhiteSpaces consumes all blank characters\n// returning the first non blank character\nfunc (l *Lexer) skipWhiteSpaces(ch byte) byte {\n\tfor {\n\t\tif !isWhitespace(ch) {\n\t\t\treturn ch\n\t\t}\n\t\tch = l.read()\n\t}\n}\n\n// Lex returns a pair of Token and the literal\n// literal is meaningfull only for IdentifierToken token\nfunc (l *Lexer) Lex() (tok Token, lit string) {\n\tswitch ch := l.skipWhiteSpaces(l.read()); {\n\tcase ch == 0:\n\t\treturn EndOfStringToken, \"\"\n\tcase isSpecialSymbol(ch):\n\t\tl.unread()\n\t\treturn l.scanSpecialSymbol()\n\tdefault:\n\t\tl.unread()\n\t\treturn l.scanIDOrKeyword()\n\t}\n}\n\n// Parser data structure contains the label selector parser data structure\ntype Parser struct {\n\tl            *Lexer\n\tscannedItems []ScannedItem\n\tposition     int\n\tpath         *field.Path\n}\n\n// ParserContext represents context during parsing:\n// some literal for example 'in' and 'notin' can be\n// recognized as operator for example 'x in (a)' but\n// it can be recognized as value for example 'value in (in)'\ntype ParserContext int\n\nconst (\n\t// KeyAndOperator represents key and operator\n\tKeyAndOperator ParserContext = iota\n\t// Values represents values\n\tValues\n)\n\n// lookahead func returns the current token and string. No increment of current position\nfunc (p *Parser) lookahead(context ParserContext) (Token, string) {\n\ttok, lit := p.scannedItems[p.position].tok, p.scannedItems[p.position].literal\n\tif context == Values {\n\t\tswitch tok {\n\t\tcase InToken, NotInToken:\n\t\t\ttok = IdentifierToken\n\t\t}\n\t}\n\treturn tok, lit\n}\n\n// consume returns current token and string. Increments the position\nfunc (p *Parser) consume(context ParserContext) (Token, string) {\n\tp.position++\n\ttok, lit := p.scannedItems[p.position-1].tok, p.scannedItems[p.position-1].literal\n\tif context == Values {\n\t\tswitch tok {\n\t\tcase InToken, NotInToken:\n\t\t\ttok = IdentifierToken\n\t\t}\n\t}\n\treturn tok, lit\n}\n\n// scan runs through the input string and stores the ScannedItem in an array\n// Parser can now lookahead and consume the tokens\nfunc (p *Parser) scan() {\n\tfor {\n\t\ttoken, literal := p.l.Lex()\n\t\tp.scannedItems = append(p.scannedItems, ScannedItem{token, literal})\n\t\tif token == EndOfStringToken {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\n// parse runs the left recursive descending algorithm\n// on input string. It returns a list of Requirement objects.\nfunc (p *Parser) parse() (internalSelector, error) {\n\tp.scan() // init scannedItems\n\n\tvar requirements internalSelector\n\tfor {\n\t\ttok, lit := p.lookahead(Values)\n\t\tswitch tok {\n\t\tcase IdentifierToken, DoesNotExistToken:\n\t\t\tr, err := p.parseRequirement()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to parse requirement: %v\", err)\n\t\t\t}\n\t\t\trequirements = append(requirements, *r)\n\t\t\tt, l := p.consume(Values)\n\t\t\tswitch t {\n\t\t\tcase EndOfStringToken:\n\t\t\t\treturn requirements, nil\n\t\t\tcase CommaToken:\n\t\t\t\tt2, l2 := p.lookahead(Values)\n\t\t\t\tif t2 != IdentifierToken && t2 != DoesNotExistToken {\n\t\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: identifier after ','\", l2)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',' or 'end of string'\", l)\n\t\t\t}\n\t\tcase EndOfStringToken:\n\t\t\treturn requirements, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: !, identifier, or 'end of string'\", lit)\n\t\t}\n\t}\n}\n\nfunc (p *Parser) parseRequirement() (*Requirement, error) {\n\tkey, operator, err := p.parseKeyAndInferOperator()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif operator == selection.Exists || operator == selection.DoesNotExist { // operator found lookahead set checked\n\t\treturn NewRequirement(key, operator, []string{}, field.WithPath(p.path))\n\t}\n\toperator, err = p.parseOperator()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar values sets.String\n\tswitch operator {\n\tcase selection.In, selection.NotIn:\n\t\tvalues, err = p.parseValues()\n\tcase selection.Equals, selection.DoubleEquals, selection.NotEquals, selection.GreaterThan, selection.LessThan:\n\t\tvalues, err = p.parseExactValue()\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewRequirement(key, operator, values.List(), field.WithPath(p.path))\n\n}\n\n// parseKeyAndInferOperator parses literals.\n// in case of no operator '!, in, notin, ==, =, !=' are found\n// the 'exists' operator is inferred\nfunc (p *Parser) parseKeyAndInferOperator() (string, selection.Operator, error) {\n\tvar operator selection.Operator\n\ttok, literal := p.consume(Values)\n\tif tok == DoesNotExistToken {\n\t\toperator = selection.DoesNotExist\n\t\ttok, literal = p.consume(Values)\n\t}\n\tif tok != IdentifierToken {\n\t\terr := fmt.Errorf(\"found '%s', expected: identifier\", literal)\n\t\treturn \"\", \"\", err\n\t}\n\tif err := validateLabelKey(literal, p.path); err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\tif t, _ := p.lookahead(Values); t == EndOfStringToken || t == CommaToken {\n\t\tif operator != selection.DoesNotExist {\n\t\t\toperator = selection.Exists\n\t\t}\n\t}\n\treturn literal, operator, nil\n}\n\n// parseOperator returns operator and eventually matchType\n// matchType can be exact\nfunc (p *Parser) parseOperator() (op selection.Operator, err error) {\n\ttok, lit := p.consume(KeyAndOperator)\n\tswitch tok {\n\t// DoesNotExistToken shouldn't be here because it's a unary operator, not a binary operator\n\tcase InToken:\n\t\top = selection.In\n\tcase EqualsToken:\n\t\top = selection.Equals\n\tcase DoubleEqualsToken:\n\t\top = selection.DoubleEquals\n\tcase GreaterThanToken:\n\t\top = selection.GreaterThan\n\tcase LessThanToken:\n\t\top = selection.LessThan\n\tcase NotInToken:\n\t\top = selection.NotIn\n\tcase NotEqualsToken:\n\t\top = selection.NotEquals\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"found '%s', expected: %v\", lit, strings.Join(binaryOperators, \", \"))\n\t}\n\treturn op, nil\n}\n\n// parseValues parses the values for set based matching (x,y,z)\nfunc (p *Parser) parseValues() (sets.String, error) {\n\ttok, lit := p.consume(Values)\n\tif tok != OpenParToken {\n\t\treturn nil, fmt.Errorf(\"found '%s' expected: '('\", lit)\n\t}\n\ttok, lit = p.lookahead(Values)\n\tswitch tok {\n\tcase IdentifierToken, CommaToken:\n\t\ts, err := p.parseIdentifiersList() // handles general cases\n\t\tif err != nil {\n\t\t\treturn s, err\n\t\t}\n\t\tif tok, _ = p.consume(Values); tok != ClosedParToken {\n\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ')'\", lit)\n\t\t}\n\t\treturn s, nil\n\tcase ClosedParToken: // handles \"()\"\n\t\tp.consume(Values)\n\t\treturn sets.NewString(\"\"), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',', ')' or identifier\", lit)\n\t}\n}\n\n// parseIdentifiersList parses a (possibly empty) list of\n// of comma separated (possibly empty) identifiers\nfunc (p *Parser) parseIdentifiersList() (sets.String, error) {\n\ts := sets.NewString()\n\tfor {\n\t\ttok, lit := p.consume(Values)\n\t\tswitch tok {\n\t\tcase IdentifierToken:\n\t\t\ts.Insert(lit)\n\t\t\ttok2, lit2 := p.lookahead(Values)\n\t\t\tswitch tok2 {\n\t\t\tcase CommaToken:\n\t\t\t\tcontinue\n\t\t\tcase ClosedParToken:\n\t\t\t\treturn s, nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',' or ')'\", lit2)\n\t\t\t}\n\t\tcase CommaToken: // handled here since we can have \"(,\"\n\t\t\tif s.Len() == 0 {\n\t\t\t\ts.Insert(\"\") // to handle (,\n\t\t\t}\n\t\t\ttok2, _ := p.lookahead(Values)\n\t\t\tif tok2 == ClosedParToken {\n\t\t\t\ts.Insert(\"\") // to handle ,)  Double \"\" removed by StringSet\n\t\t\t\treturn s, nil\n\t\t\t}\n\t\t\tif tok2 == CommaToken {\n\t\t\t\tp.consume(Values)\n\t\t\t\ts.Insert(\"\") // to handle ,, Double \"\" removed by StringSet\n\t\t\t}\n\t\tdefault: // it can be operator\n\t\t\treturn s, fmt.Errorf(\"found '%s', expected: ',', or identifier\", lit)\n\t\t}\n\t}\n}\n\n// parseExactValue parses the only value for exact match style\nfunc (p *Parser) parseExactValue() (sets.String, error) {\n\ts := sets.NewString()\n\ttok, _ := p.lookahead(Values)\n\tif tok == EndOfStringToken || tok == CommaToken {\n\t\ts.Insert(\"\")\n\t\treturn s, nil\n\t}\n\ttok, lit := p.consume(Values)\n\tif tok == IdentifierToken {\n\t\ts.Insert(lit)\n\t\treturn s, nil\n\t}\n\treturn nil, fmt.Errorf(\"found '%s', expected: identifier\", lit)\n}\n\n// Parse takes a string representing a selector and returns a selector\n// object, or an error. This parsing function differs from ParseSelector\n// as they parse different selectors with different syntaxes.\n// The input will cause an error if it does not follow this form:\n//\n//\t<selector-syntax>         ::= <requirement> | <requirement> \",\" <selector-syntax>\n//\t<requirement>             ::= [!] KEY [ <set-based-restriction> | <exact-match-restriction> ]\n//\t<set-based-restriction>   ::= \"\" | <inclusion-exclusion> <value-set>\n//\t<inclusion-exclusion>     ::= <inclusion> | <exclusion>\n//\t<exclusion>               ::= \"notin\"\n//\t<inclusion>               ::= \"in\"\n//\t<value-set>               ::= \"(\" <values> \")\"\n//\t<values>                  ::= VALUE | VALUE \",\" <values>\n//\t<exact-match-restriction> ::= [\"=\"|\"==\"|\"!=\"] VALUE\n//\n// KEY is a sequence of one or more characters following [ DNS_SUBDOMAIN \"/\" ] DNS_LABEL. Max length is 63 characters.\n// VALUE is a sequence of zero or more characters \"([A-Za-z0-9_-\\.])\". Max length is 63 characters.\n// Delimiter is white space: (' ', '\\t')\n// Example of valid syntax:\n//\n//\t\"x in (foo,,baz),y,z notin ()\"\n//\n// Note:\n//  1. Inclusion - \" in \" - denotes that the KEY exists and is equal to any of the\n//     VALUEs in its requirement\n//  2. Exclusion - \" notin \" - denotes that the KEY is not equal to any\n//     of the VALUEs in its requirement or does not exist\n//  3. The empty string is a valid VALUE\n//  4. A requirement with just a KEY - as in \"y\" above - denotes that\n//     the KEY exists and can be any VALUE.\n//  5. A requirement with just !KEY requires that the KEY not exist.\nfunc Parse(selector string, opts ...field.PathOption) (Selector, error) {\n\tparsedSelector, err := parse(selector, field.ToPath(opts...))\n\tif err == nil {\n\t\treturn parsedSelector, nil\n\t}\n\treturn nil, err\n}\n\n// parse parses the string representation of the selector and returns the internalSelector struct.\n// The callers of this method can then decide how to return the internalSelector struct to their\n// callers. This function has two callers now, one returns a Selector interface and the other\n// returns a list of requirements.\nfunc parse(selector string, path *field.Path) (internalSelector, error) {\n\tp := &Parser{l: &Lexer{s: selector, pos: 0}, path: path}\n\titems, err := p.parse()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Sort(ByKey(items)) // sort to grant determistic parsing\n\treturn internalSelector(items), err\n}\n\nfunc validateLabelKey(k string, path *field.Path) *field.Error {\n\tif errs := validation.IsQualifiedName(k); len(errs) != 0 {\n\t\treturn field.Invalid(path, k, strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}\n\nfunc validateLabelValue(k, v string, path *field.Path) *field.Error {\n\tif errs := validation.IsValidLabelValue(v); len(errs) != 0 {\n\t\treturn field.Invalid(path.Key(k), v, strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}\n\n// SelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil and empty Sets are considered equivalent to Everything().\n// It does not perform any validation, which means the server will reject\n// the request if the Set contains invalid values.\nfunc SelectorFromSet(ls Set) Selector {\n\treturn SelectorFromValidatedSet(ls)\n}\n\n// ValidatedSelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil and empty Sets are considered equivalent to Everything().\n// The Set is validated client-side, which allows to catch errors early.\nfunc ValidatedSelectorFromSet(ls Set) (Selector, error) {\n\tif ls == nil || len(ls) == 0 {\n\t\treturn internalSelector{}, nil\n\t}\n\trequirements := make([]Requirement, 0, len(ls))\n\tfor label, value := range ls {\n\t\tr, err := NewRequirement(label, selection.Equals, []string{value})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\t// sort to have deterministic string representation\n\tsort.Sort(ByKey(requirements))\n\treturn internalSelector(requirements), nil\n}\n\n// SelectorFromValidatedSet returns a Selector which will match exactly the given Set.\n// A nil and empty Sets are considered equivalent to Everything().\n// It assumes that Set is already validated and doesn't do any validation.\n// Note: this method copies the Set; if the Set is immutable, consider wrapping it with ValidatedSetSelector\n// instead, which does not copy.\nfunc SelectorFromValidatedSet(ls Set) Selector {\n\tif ls == nil || len(ls) == 0 {\n\t\treturn internalSelector{}\n\t}\n\trequirements := make([]Requirement, 0, len(ls))\n\tfor label, value := range ls {\n\t\trequirements = append(requirements, Requirement{key: label, operator: selection.Equals, strValues: []string{value}})\n\t}\n\t// sort to have deterministic string representation\n\tsort.Sort(ByKey(requirements))\n\treturn internalSelector(requirements)\n}\n\n// ParseToRequirements takes a string representing a selector and returns a list of\n// requirements. This function is suitable for those callers that perform additional\n// processing on selector requirements.\n// See the documentation for Parse() function for more details.\n// TODO: Consider exporting the internalSelector type instead.\nfunc ParseToRequirements(selector string, opts ...field.PathOption) ([]Requirement, error) {\n\treturn parse(selector, field.ToPath(opts...))\n}\n\n// ValidatedSetSelector wraps a Set, allowing it to implement the Selector interface. Unlike\n// Set.AsSelectorPreValidated (which copies the input Set), this type simply wraps the underlying\n// Set. As a result, it is substantially more efficient. A nil and empty Sets are considered\n// equivalent to Everything().\n//\n// Callers MUST ensure the underlying Set is not mutated, and that it is already validated. If these\n// constraints are not met, Set.AsValidatedSelector should be preferred\n//\n// None of the Selector methods mutate the underlying Set, but Add() and Requirements() convert to\n// the less optimized version.\ntype ValidatedSetSelector Set\n\nfunc (s ValidatedSetSelector) Matches(labels Labels) bool {\n\tfor k, v := range s {\n\t\tif !labels.Has(k) || v != labels.Get(k) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (s ValidatedSetSelector) Empty() bool {\n\treturn len(s) == 0\n}\n\nfunc (s ValidatedSetSelector) String() string {\n\tkeys := make([]string, 0, len(s))\n\tfor k := range s {\n\t\tkeys = append(keys, k)\n\t}\n\t// Ensure deterministic output\n\tsort.Strings(keys)\n\tb := strings.Builder{}\n\tfor i, key := range keys {\n\t\tv := s[key]\n\t\tb.Grow(len(key) + 2 + len(v))\n\t\tif i != 0 {\n\t\t\tb.WriteString(\",\")\n\t\t}\n\t\tb.WriteString(key)\n\t\tb.WriteString(\"=\")\n\t\tb.WriteString(v)\n\t}\n\treturn b.String()\n}\n\nfunc (s ValidatedSetSelector) Add(r ...Requirement) Selector {\n\treturn s.toFullSelector().Add(r...)\n}\n\nfunc (s ValidatedSetSelector) Requirements() (requirements Requirements, selectable bool) {\n\treturn s.toFullSelector().Requirements()\n}\n\nfunc (s ValidatedSetSelector) DeepCopySelector() Selector {\n\tres := make(ValidatedSetSelector, len(s))\n\tfor k, v := range s {\n\t\tres[k] = v\n\t}\n\treturn res\n}\n\nfunc (s ValidatedSetSelector) RequiresExactMatch(label string) (value string, found bool) {\n\tv, f := s[label]\n\treturn v, f\n}\n\nfunc (s ValidatedSetSelector) toFullSelector() Selector {\n\treturn SelectorFromValidatedSet(Set(s))\n}\n\nvar _ Selector = ValidatedSetSelector{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage labels\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Requirement) DeepCopyInto(out *Requirement) {\n\t*out = *in\n\tif in.strValues != nil {\n\t\tin, out := &in.strValues, &out.strValues\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Requirement.\nfunc (in *Requirement) DeepCopy() *Requirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Requirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/allocator.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"sync\"\n)\n\n// AllocatorPool simply stores Allocator objects to avoid additional memory allocations\n// by caching created but unused items for later reuse, relieving pressure on the garbage collector.\n//\n// Usage:\n//\n//\tmemoryAllocator := runtime.AllocatorPool.Get().(*runtime.Allocator)\n//\tdefer runtime.AllocatorPool.Put(memoryAllocator)\n//\n// A note for future:\n//\n//\tconsider introducing multiple pools for storing buffers of different sizes\n//\tperhaps this could allow us to be more efficient.\nvar AllocatorPool = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn &Allocator{}\n\t},\n}\n\n// Allocator knows how to allocate memory\n// It exists to make the cost of object serialization cheaper.\n// In some cases, it allows for allocating memory only once and then reusing it.\n// This approach puts less load on GC and leads to less fragmented memory in general.\ntype Allocator struct {\n\tbuf []byte\n}\n\nvar _ MemoryAllocator = &Allocator{}\n\n// Allocate reserves memory for n bytes only if the underlying array doesn't have enough capacity\n// otherwise it returns previously allocated block of memory.\n//\n// Note that the returned array is not zeroed, it is the caller's\n// responsibility to clean the memory if needed.\nfunc (a *Allocator) Allocate(n uint64) []byte {\n\tif uint64(cap(a.buf)) >= n {\n\t\ta.buf = a.buf[:n]\n\t\treturn a.buf\n\t}\n\t// grow the buffer\n\tsize := uint64(2*cap(a.buf)) + n\n\ta.buf = make([]byte, size)\n\ta.buf = a.buf[:n]\n\treturn a.buf\n}\n\n// SimpleAllocator a wrapper around make([]byte)\n// conforms to the MemoryAllocator interface\ntype SimpleAllocator struct{}\n\nvar _ MemoryAllocator = &SimpleAllocator{}\n\nfunc (sa *SimpleAllocator) Allocate(n uint64) []byte {\n\treturn make([]byte, n)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/codec.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion/queryparams\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n)\n\n// codec binds an encoder and decoder.\ntype codec struct {\n\tEncoder\n\tDecoder\n}\n\n// NewCodec creates a Codec from an Encoder and Decoder.\nfunc NewCodec(e Encoder, d Decoder) Codec {\n\treturn codec{e, d}\n}\n\n// Encode is a convenience wrapper for encoding to a []byte from an Encoder\nfunc Encode(e Encoder, obj Object) ([]byte, error) {\n\t// TODO: reuse buffer\n\tbuf := &bytes.Buffer{}\n\tif err := e.Encode(obj, buf); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf.Bytes(), nil\n}\n\n// Decode is a convenience wrapper for decoding data into an Object.\nfunc Decode(d Decoder, data []byte) (Object, error) {\n\tobj, _, err := d.Decode(data, nil, nil)\n\treturn obj, err\n}\n\n// DecodeInto performs a Decode into the provided object.\nfunc DecodeInto(d Decoder, data []byte, into Object) error {\n\tout, gvk, err := d.Decode(data, nil, into)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif out != into {\n\t\treturn fmt.Errorf(\"unable to decode %s into %v\", gvk, reflect.TypeOf(into))\n\t}\n\treturn nil\n}\n\n// EncodeOrDie is a version of Encode which will panic instead of returning an error. For tests.\nfunc EncodeOrDie(e Encoder, obj Object) string {\n\tbytes, err := Encode(e, obj)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn string(bytes)\n}\n\n// UseOrCreateObject returns obj if the canonical ObjectKind returned by the provided typer matches gvk, or\n// invokes the ObjectCreator to instantiate a new gvk. Returns an error if the typer cannot find the object.\nfunc UseOrCreateObject(t ObjectTyper, c ObjectCreater, gvk schema.GroupVersionKind, obj Object) (Object, error) {\n\tif obj != nil {\n\t\tkinds, _, err := t.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, kind := range kinds {\n\t\t\tif gvk == kind {\n\t\t\t\treturn obj, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn c.New(gvk)\n}\n\n// NoopEncoder converts an Decoder to a Serializer or Codec for code that expects them but only uses decoding.\ntype NoopEncoder struct {\n\tDecoder\n}\n\nvar _ Serializer = NoopEncoder{}\n\nconst noopEncoderIdentifier Identifier = \"noop\"\n\nfunc (n NoopEncoder) Encode(obj Object, w io.Writer) error {\n\t// There is no need to handle runtime.CacheableObject, as we don't\n\t// process the obj at all.\n\treturn fmt.Errorf(\"encoding is not allowed for this codec: %v\", reflect.TypeOf(n.Decoder))\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (n NoopEncoder) Identifier() Identifier {\n\treturn noopEncoderIdentifier\n}\n\n// NoopDecoder converts an Encoder to a Serializer or Codec for code that expects them but only uses encoding.\ntype NoopDecoder struct {\n\tEncoder\n}\n\nvar _ Serializer = NoopDecoder{}\n\nfunc (n NoopDecoder) Decode(data []byte, gvk *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\treturn nil, nil, fmt.Errorf(\"decoding is not allowed for this codec: %v\", reflect.TypeOf(n.Encoder))\n}\n\n// NewParameterCodec creates a ParameterCodec capable of transforming url values into versioned objects and back.\nfunc NewParameterCodec(scheme *Scheme) ParameterCodec {\n\treturn &parameterCodec{\n\t\ttyper:     scheme,\n\t\tconvertor: scheme,\n\t\tcreator:   scheme,\n\t\tdefaulter: scheme,\n\t}\n}\n\n// parameterCodec implements conversion to and from query parameters and objects.\ntype parameterCodec struct {\n\ttyper     ObjectTyper\n\tconvertor ObjectConvertor\n\tcreator   ObjectCreater\n\tdefaulter ObjectDefaulter\n}\n\nvar _ ParameterCodec = &parameterCodec{}\n\n// DecodeParameters converts the provided url.Values into an object of type From with the kind of into, and then\n// converts that object to into (if necessary). Returns an error if the operation cannot be completed.\nfunc (c *parameterCodec) DecodeParameters(parameters url.Values, from schema.GroupVersion, into Object) error {\n\tif len(parameters) == 0 {\n\t\treturn nil\n\t}\n\ttargetGVKs, _, err := c.typer.ObjectKinds(into)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor i := range targetGVKs {\n\t\tif targetGVKs[i].GroupVersion() == from {\n\t\t\tif err := c.convertor.Convert(&parameters, into, nil); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// in the case where we going into the same object we're receiving, default on the outbound object\n\t\t\tif c.defaulter != nil {\n\t\t\t\tc.defaulter.Default(into)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tinput, err := c.creator.New(from.WithKind(targetGVKs[0].Kind))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := c.convertor.Convert(&parameters, input, nil); err != nil {\n\t\treturn err\n\t}\n\t// if we have defaulter, default the input before converting to output\n\tif c.defaulter != nil {\n\t\tc.defaulter.Default(input)\n\t}\n\treturn c.convertor.Convert(input, into, nil)\n}\n\n// EncodeParameters converts the provided object into the to version, then converts that object to url.Values.\n// Returns an error if conversion is not possible.\nfunc (c *parameterCodec) EncodeParameters(obj Object, to schema.GroupVersion) (url.Values, error) {\n\tgvks, _, err := c.typer.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgvk := gvks[0]\n\tif to != gvk.GroupVersion() {\n\t\tout, err := c.convertor.ConvertToVersion(obj, to)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tobj = out\n\t}\n\treturn queryparams.Convert(obj)\n}\n\ntype base64Serializer struct {\n\tEncoder\n\tDecoder\n\n\tidentifier Identifier\n}\n\nfunc NewBase64Serializer(e Encoder, d Decoder) Serializer {\n\treturn &base64Serializer{\n\t\tEncoder:    e,\n\t\tDecoder:    d,\n\t\tidentifier: identifier(e),\n\t}\n}\n\nfunc identifier(e Encoder) Identifier {\n\tresult := map[string]string{\n\t\t\"name\": \"base64\",\n\t}\n\tif e != nil {\n\t\tresult[\"encoder\"] = string(e.Identifier())\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for base64Serializer: %v\", err)\n\t}\n\treturn Identifier(identifier)\n}\n\nfunc (s base64Serializer) Encode(obj Object, stream io.Writer) error {\n\tif co, ok := obj.(CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, stream)\n\t}\n\treturn s.doEncode(obj, stream)\n}\n\nfunc (s base64Serializer) doEncode(obj Object, stream io.Writer) error {\n\te := base64.NewEncoder(base64.StdEncoding, stream)\n\terr := s.Encoder.Encode(obj, e)\n\te.Close()\n\treturn err\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s base64Serializer) Identifier() Identifier {\n\treturn s.identifier\n}\n\nfunc (s base64Serializer) Decode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\tout := make([]byte, base64.StdEncoding.DecodedLen(len(data)))\n\tn, err := base64.StdEncoding.Decode(out, data)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\treturn s.Decoder.Decode(out[:n], defaults, into)\n}\n\n// SerializerInfoForMediaType returns the first info in types that has a matching media type (which cannot\n// include media-type parameters), or the first info with an empty media type, or false if no type matches.\nfunc SerializerInfoForMediaType(types []SerializerInfo, mediaType string) (SerializerInfo, bool) {\n\tfor _, info := range types {\n\t\tif info.MediaType == mediaType {\n\t\t\treturn info, true\n\t\t}\n\t}\n\tfor _, info := range types {\n\t\tif len(info.MediaType) == 0 {\n\t\t\treturn info, true\n\t\t}\n\t}\n\treturn SerializerInfo{}, false\n}\n\nvar (\n\t// InternalGroupVersioner will always prefer the internal version for a given group version kind.\n\tInternalGroupVersioner GroupVersioner = internalGroupVersioner{}\n\t// DisabledGroupVersioner will reject all kinds passed to it.\n\tDisabledGroupVersioner GroupVersioner = disabledGroupVersioner{}\n)\n\nconst (\n\tinternalGroupVersionerIdentifier = \"internal\"\n\tdisabledGroupVersionerIdentifier = \"disabled\"\n)\n\ntype internalGroupVersioner struct{}\n\n// KindForGroupVersionKinds returns an internal Kind if one is found, or converts the first provided kind to the internal version.\nfunc (internalGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\tfor _, kind := range kinds {\n\t\tif kind.Version == APIVersionInternal {\n\t\t\treturn kind, true\n\t\t}\n\t}\n\tfor _, kind := range kinds {\n\t\treturn schema.GroupVersionKind{Group: kind.Group, Version: APIVersionInternal, Kind: kind.Kind}, true\n\t}\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (internalGroupVersioner) Identifier() string {\n\treturn internalGroupVersionerIdentifier\n}\n\ntype disabledGroupVersioner struct{}\n\n// KindForGroupVersionKinds returns false for any input.\nfunc (disabledGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (disabledGroupVersioner) Identifier() string {\n\treturn disabledGroupVersionerIdentifier\n}\n\n// Assert that schema.GroupVersion and GroupVersions implement GroupVersioner\nvar _ GroupVersioner = schema.GroupVersion{}\nvar _ GroupVersioner = schema.GroupVersions{}\nvar _ GroupVersioner = multiGroupVersioner{}\n\ntype multiGroupVersioner struct {\n\ttarget             schema.GroupVersion\n\tacceptedGroupKinds []schema.GroupKind\n\tcoerce             bool\n}\n\n// NewMultiGroupVersioner returns the provided group version for any kind that matches one of the provided group kinds.\n// Kind may be empty in the provided group kind, in which case any kind will match.\nfunc NewMultiGroupVersioner(gv schema.GroupVersion, groupKinds ...schema.GroupKind) GroupVersioner {\n\tif len(groupKinds) == 0 || (len(groupKinds) == 1 && groupKinds[0].Group == gv.Group) {\n\t\treturn gv\n\t}\n\treturn multiGroupVersioner{target: gv, acceptedGroupKinds: groupKinds}\n}\n\n// NewCoercingMultiGroupVersioner returns the provided group version for any incoming kind.\n// Incoming kinds that match the provided groupKinds are preferred.\n// Kind may be empty in the provided group kind, in which case any kind will match.\n// Examples:\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup/Foo, anothergroup/Bar\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, anothergroup/v1/Bar) -> mygroup/__internal/Bar (matched preferred group/kind)\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup, anothergroup\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, anothergroup/v1/Bar) -> mygroup/__internal/Bar (matched preferred group)\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup, anothergroup\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, yetanother/v1/Bar) -> mygroup/__internal/Baz (no preferred group/kind match, uses first kind in list)\nfunc NewCoercingMultiGroupVersioner(gv schema.GroupVersion, groupKinds ...schema.GroupKind) GroupVersioner {\n\treturn multiGroupVersioner{target: gv, acceptedGroupKinds: groupKinds, coerce: true}\n}\n\n// KindForGroupVersionKinds returns the target group version if any kind matches any of the original group kinds. It will\n// use the originating kind where possible.\nfunc (v multiGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\tfor _, src := range kinds {\n\t\tfor _, kind := range v.acceptedGroupKinds {\n\t\t\tif kind.Group != src.Group {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif len(kind.Kind) > 0 && kind.Kind != src.Kind {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn v.target.WithKind(src.Kind), true\n\t\t}\n\t}\n\tif v.coerce && len(kinds) > 0 {\n\t\treturn v.target.WithKind(kinds[0].Kind), true\n\t}\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (v multiGroupVersioner) Identifier() string {\n\tgroupKinds := make([]string, 0, len(v.acceptedGroupKinds))\n\tfor _, gk := range v.acceptedGroupKinds {\n\t\tgroupKinds = append(groupKinds, gk.String())\n\t}\n\tresult := map[string]string{\n\t\t\"name\":     \"multi\",\n\t\t\"target\":   v.target.String(),\n\t\t\"accepted\": strings.Join(groupKinds, \",\"),\n\t\t\"coerce\":   strconv.FormatBool(v.coerce),\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling Identifier for %#v: %v\", v, err)\n\t}\n\treturn string(identifier)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/codec_check.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n)\n\n// CheckCodec makes sure that the codec can encode objects like internalType,\n// decode all of the external types listed, and also decode them into the given\n// object. (Will modify internalObject.) (Assumes JSON serialization.)\n// TODO: verify that the correct external version is chosen on encode...\nfunc CheckCodec(c Codec, internalType Object, externalTypes ...schema.GroupVersionKind) error {\n\tif _, err := Encode(c, internalType); err != nil {\n\t\treturn fmt.Errorf(\"internal type not encodable: %v\", err)\n\t}\n\tfor _, et := range externalTypes {\n\t\ttypeMeta := TypeMeta{\n\t\t\tKind:       et.Kind,\n\t\t\tAPIVersion: et.GroupVersion().String(),\n\t\t}\n\t\texBytes, err := json.Marshal(&typeMeta)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobj, err := Decode(c, exBytes)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"external type %s not interpretable: %v\", et, err)\n\t\t}\n\t\tif reflect.TypeOf(obj) != reflect.TypeOf(internalType) {\n\t\t\treturn fmt.Errorf(\"decode of external type %s produced: %#v\", et, obj)\n\t\t}\n\t\tif err = DecodeInto(c, exBytes, internalType); err != nil {\n\t\t\treturn fmt.Errorf(\"external type %s not convertible to internal type: %v\", et, err)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/conversion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package runtime defines conversions between generic types and structs to map query strings\n// to struct objects.\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n)\n\n// DefaultMetaV1FieldSelectorConversion auto-accepts metav1 values for name and namespace.\n// A cluster scoped resource specifying namespace empty works fine and specifying a particular\n// namespace will return no results, as expected.\nfunc DefaultMetaV1FieldSelectorConversion(label, value string) (string, string, error) {\n\tswitch label {\n\tcase \"metadata.name\":\n\t\treturn label, value, nil\n\tcase \"metadata.namespace\":\n\t\treturn label, value, nil\n\tdefault:\n\t\treturn \"\", \"\", fmt.Errorf(\"%q is not a known field selector: only %q, %q\", label, \"metadata.name\", \"metadata.namespace\")\n\t}\n}\n\n// JSONKeyMapper uses the struct tags on a conversion to determine the key value for\n// the other side. Use when mapping from a map[string]* to a struct or vice versa.\nfunc JSONKeyMapper(key string, sourceTag, destTag reflect.StructTag) (string, string) {\n\tif s := destTag.Get(\"json\"); len(s) > 0 {\n\t\treturn strings.SplitN(s, \",\", 2)[0], key\n\t}\n\tif s := sourceTag.Get(\"json\"); len(s) > 0 {\n\t\treturn key, strings.SplitN(s, \",\", 2)[0]\n\t}\n\treturn key, key\n}\n\nfunc Convert_Slice_string_To_string(in *[]string, out *string, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = \"\"\n\t\treturn nil\n\t}\n\t*out = (*in)[0]\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_int(in *[]string, out *int, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\tstr := (*in)[0]\n\ti, err := strconv.Atoi(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\n// Convert_Slice_string_To_bool will convert a string parameter to boolean.\n// Only the absence of a value (i.e. zero-length slice), a value of \"false\", or a\n// value of \"0\" resolve to false.\n// Any other value (including empty string) resolves to true.\nfunc Convert_Slice_string_To_bool(in *[]string, out *bool, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = false\n\t\treturn nil\n\t}\n\tswitch {\n\tcase (*in)[0] == \"0\", strings.EqualFold((*in)[0], \"false\"):\n\t\t*out = false\n\tdefault:\n\t\t*out = true\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_bool will convert a string parameter to boolean.\n// Only the absence of a value (i.e. zero-length slice), a value of \"false\", or a\n// value of \"0\" resolve to false.\n// Any other value (including empty string) resolves to true.\nfunc Convert_Slice_string_To_Pointer_bool(in *[]string, out **bool, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\tboolVar := false\n\t\t*out = &boolVar\n\t\treturn nil\n\t}\n\tswitch {\n\tcase (*in)[0] == \"0\", strings.EqualFold((*in)[0], \"false\"):\n\t\tboolVar := false\n\t\t*out = &boolVar\n\tdefault:\n\t\tboolVar := true\n\t\t*out = &boolVar\n\t}\n\treturn nil\n}\n\nfunc string_to_int64(in string) (int64, error) {\n\treturn strconv.ParseInt(in, 10, 64)\n}\n\nfunc Convert_string_To_int64(in *string, out *int64, s conversion.Scope) error {\n\tif in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\ti, err := string_to_int64(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_int64(in *[]string, out *int64, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\ti, err := string_to_int64((*in)[0])\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\nfunc Convert_string_To_Pointer_int64(in *string, out **int64, s conversion.Scope) error {\n\tif in == nil {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\ti, err := string_to_int64(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = &i\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_Pointer_int64(in *[]string, out **int64, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\ti, err := string_to_int64((*in)[0])\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = &i\n\treturn nil\n}\n\nfunc RegisterStringConversions(s *Scheme) error {\n\tif err := s.AddConversionFunc((*[]string)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_string(a.(*[]string), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*int)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_int(a.(*[]string), b.(*int), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_bool(a.(*[]string), b.(*bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_int64(a.(*[]string), b.(*int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/converter.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\tencodingjson \"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// UnstructuredConverter is an interface for converting between interface{}\n// and map[string]interface representation.\ntype UnstructuredConverter interface {\n\tToUnstructured(obj interface{}) (map[string]interface{}, error)\n\tFromUnstructured(u map[string]interface{}, obj interface{}) error\n}\n\ntype structField struct {\n\tstructType reflect.Type\n\tfield      int\n}\n\ntype fieldInfo struct {\n\tname      string\n\tnameValue reflect.Value\n\tomitempty bool\n}\n\ntype fieldsCacheMap map[structField]*fieldInfo\n\ntype fieldsCache struct {\n\tsync.Mutex\n\tvalue atomic.Value\n}\n\nfunc newFieldsCache() *fieldsCache {\n\tcache := &fieldsCache{}\n\tcache.value.Store(make(fieldsCacheMap))\n\treturn cache\n}\n\nvar (\n\tmapStringInterfaceType = reflect.TypeOf(map[string]interface{}{})\n\tstringType             = reflect.TypeOf(string(\"\"))\n\tfieldCache             = newFieldsCache()\n\n\t// DefaultUnstructuredConverter performs unstructured to Go typed object conversions.\n\tDefaultUnstructuredConverter = &unstructuredConverter{\n\t\tmismatchDetection: parseBool(os.Getenv(\"KUBE_PATCH_CONVERSION_DETECTOR\")),\n\t\tcomparison: conversion.EqualitiesOrDie(\n\t\t\tfunc(a, b time.Time) bool {\n\t\t\t\treturn a.UTC() == b.UTC()\n\t\t\t},\n\t\t),\n\t}\n)\n\nfunc parseBool(key string) bool {\n\tif len(key) == 0 {\n\t\treturn false\n\t}\n\tvalue, err := strconv.ParseBool(key)\n\tif err != nil {\n\t\tutilruntime.HandleError(fmt.Errorf(\"couldn't parse '%s' as bool for unstructured mismatch detection\", key))\n\t}\n\treturn value\n}\n\n// unstructuredConverter knows how to convert between interface{} and\n// Unstructured in both ways.\ntype unstructuredConverter struct {\n\t// If true, we will be additionally running conversion via json\n\t// to ensure that the result is true.\n\t// This is supposed to be set only in tests.\n\tmismatchDetection bool\n\t// comparison is the default test logic used to compare\n\tcomparison conversion.Equalities\n}\n\n// NewTestUnstructuredConverter creates an UnstructuredConverter that accepts JSON typed maps and translates them\n// to Go types via reflection. It performs mismatch detection automatically and is intended for use by external\n// test tools. Use DefaultUnstructuredConverter if you do not explicitly need mismatch detection.\nfunc NewTestUnstructuredConverter(comparison conversion.Equalities) UnstructuredConverter {\n\treturn NewTestUnstructuredConverterWithValidation(comparison)\n}\n\n// NewTestUnstrucutredConverterWithValidation allows for access to\n// FromUnstructuredWithValidation from within tests.\nfunc NewTestUnstructuredConverterWithValidation(comparison conversion.Equalities) *unstructuredConverter {\n\treturn &unstructuredConverter{\n\t\tmismatchDetection: true,\n\t\tcomparison:        comparison,\n\t}\n}\n\n// fromUnstructuredContext provides options for informing the converter\n// the state of its recursive walk through the conversion process.\ntype fromUnstructuredContext struct {\n\t// isInlined indicates whether the converter is currently in\n\t// an inlined field or not to determine whether it should\n\t// validate the matchedKeys yet or only collect them.\n\t// This should only be set from `structFromUnstructured`\n\tisInlined bool\n\t// matchedKeys is a stack of the set of all fields that exist in the\n\t// concrete go type of the object being converted into.\n\t// This should only be manipulated via `pushMatchedKeyTracker`,\n\t// `recordMatchedKey`, or `popAndVerifyMatchedKeys`\n\tmatchedKeys []map[string]struct{}\n\t// parentPath collects the path that the conversion\n\t// takes as it traverses the unstructured json map.\n\t// It is used to report the full path to any unknown\n\t// fields that the converter encounters.\n\tparentPath []string\n\t// returnUnknownFields indicates whether or not\n\t// unknown field errors should be collected and\n\t// returned to the caller\n\treturnUnknownFields bool\n\t// unknownFieldErrors are the collection of\n\t// the full path to each unknown field in the\n\t// object.\n\tunknownFieldErrors []error\n}\n\n// pushMatchedKeyTracker adds a placeholder set for tracking\n// matched keys for the given level. This should only be\n// called from `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) pushMatchedKeyTracker() {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tc.matchedKeys = append(c.matchedKeys, nil)\n}\n\n// recordMatchedKey initializes the last element of matchedKeys\n// (if needed) and sets 'key'. This should only be called from\n// `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) recordMatchedKey(key string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tlast := len(c.matchedKeys) - 1\n\tif c.matchedKeys[last] == nil {\n\t\tc.matchedKeys[last] = map[string]struct{}{}\n\t}\n\tc.matchedKeys[last][key] = struct{}{}\n}\n\n// popAndVerifyMatchedKeys pops the last element of matchedKeys,\n// checks the matched keys against the data, and adds unknown\n// field errors for any matched keys.\n// `mapValue` is the value of sv containing all of the keys that exist at this level\n// (ie. sv.MapKeys) in the source data.\n// `matchedKeys` are all the keys found for that level in the destination object.\n// This should only be called from `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) popAndVerifyMatchedKeys(mapValue reflect.Value) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tlast := len(c.matchedKeys) - 1\n\tcurMatchedKeys := c.matchedKeys[last]\n\tc.matchedKeys[last] = nil\n\tc.matchedKeys = c.matchedKeys[:last]\n\tfor _, key := range mapValue.MapKeys() {\n\t\tif _, ok := curMatchedKeys[key.String()]; !ok {\n\t\t\tc.recordUnknownField(key.String())\n\t\t}\n\t}\n}\n\nfunc (c *fromUnstructuredContext) recordUnknownField(field string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tpathLen := len(c.parentPath)\n\tc.pushKey(field)\n\terrPath := strings.Join(c.parentPath, \"\")\n\tc.parentPath = c.parentPath[:pathLen]\n\tc.unknownFieldErrors = append(c.unknownFieldErrors, fmt.Errorf(`unknown field \"%s\"`, errPath))\n}\n\nfunc (c *fromUnstructuredContext) pushIndex(index int) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tc.parentPath = append(c.parentPath, \"[\", strconv.Itoa(index), \"]\")\n}\n\nfunc (c *fromUnstructuredContext) pushKey(key string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tif len(c.parentPath) > 0 {\n\t\tc.parentPath = append(c.parentPath, \".\")\n\t}\n\tc.parentPath = append(c.parentPath, key)\n\n}\n\n// FromUnstructuredWIthValidation converts an object from map[string]interface{} representation into a concrete type.\n// It uses encoding/json/Unmarshaler if object implements it or reflection if not.\n// It takes a validationDirective that indicates how to behave when it encounters unknown fields.\nfunc (c *unstructuredConverter) FromUnstructuredWithValidation(u map[string]interface{}, obj interface{}, returnUnknownFields bool) error {\n\tt := reflect.TypeOf(obj)\n\tvalue := reflect.ValueOf(obj)\n\tif t.Kind() != reflect.Pointer || value.IsNil() {\n\t\treturn fmt.Errorf(\"FromUnstructured requires a non-nil pointer to an object, got %v\", t)\n\t}\n\n\tfromUnstructuredContext := &fromUnstructuredContext{\n\t\treturnUnknownFields: returnUnknownFields,\n\t}\n\terr := fromUnstructured(reflect.ValueOf(u), value.Elem(), fromUnstructuredContext)\n\tif c.mismatchDetection {\n\t\tnewObj := reflect.New(t.Elem()).Interface()\n\t\tnewErr := fromUnstructuredViaJSON(u, newObj)\n\t\tif (err != nil) != (newErr != nil) {\n\t\t\tklog.Fatalf(\"FromUnstructured unexpected error for %v: error: %v\", u, err)\n\t\t}\n\t\tif err == nil && !c.comparison.DeepEqual(obj, newObj) {\n\t\t\tklog.Fatalf(\"FromUnstructured mismatch\\nobj1: %#v\\nobj2: %#v\", obj, newObj)\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\tif returnUnknownFields && len(fromUnstructuredContext.unknownFieldErrors) > 0 {\n\t\tsort.Slice(fromUnstructuredContext.unknownFieldErrors, func(i, j int) bool {\n\t\t\treturn fromUnstructuredContext.unknownFieldErrors[i].Error() <\n\t\t\t\tfromUnstructuredContext.unknownFieldErrors[j].Error()\n\t\t})\n\t\treturn NewStrictDecodingError(fromUnstructuredContext.unknownFieldErrors)\n\t}\n\treturn nil\n}\n\n// FromUnstructured converts an object from map[string]interface{} representation into a concrete type.\n// It uses encoding/json/Unmarshaler if object implements it or reflection if not.\nfunc (c *unstructuredConverter) FromUnstructured(u map[string]interface{}, obj interface{}) error {\n\treturn c.FromUnstructuredWithValidation(u, obj, false)\n}\n\nfunc fromUnstructuredViaJSON(u map[string]interface{}, obj interface{}) error {\n\tdata, err := json.Marshal(u)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, obj)\n}\n\nfunc fromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tsv = unwrapInterface(sv)\n\tif !sv.IsValid() {\n\t\tdv.Set(reflect.Zero(dv.Type()))\n\t\treturn nil\n\t}\n\tst, dt := sv.Type(), dv.Type()\n\n\tswitch dt.Kind() {\n\tcase reflect.Map, reflect.Slice, reflect.Pointer, reflect.Struct, reflect.Interface:\n\t\t// Those require non-trivial conversion.\n\tdefault:\n\t\t// This should handle all simple types.\n\t\tif st.AssignableTo(dt) {\n\t\t\tdv.Set(sv)\n\t\t\treturn nil\n\t\t}\n\t\t// We cannot simply use \"ConvertibleTo\", as JSON doesn't support conversions\n\t\t// between those four groups: bools, integers, floats and string. We need to\n\t\t// do the same.\n\t\tif st.ConvertibleTo(dt) {\n\t\t\tswitch st.Kind() {\n\t\t\tcase reflect.String:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.String:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Bool:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Bool:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tif sv.Float() == math.Trunc(sv.Float()) {\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn fmt.Errorf(\"cannot convert %s to %s\", st.String(), dt.String())\n\t\t}\n\t}\n\n\t// Check if the object has a custom JSON marshaller/unmarshaller.\n\tentry := value.TypeReflectEntryOf(dv.Type())\n\tif entry.CanConvertFromUnstructured() {\n\t\treturn entry.FromUnstructured(sv, dv)\n\t}\n\n\tswitch dt.Kind() {\n\tcase reflect.Map:\n\t\treturn mapFromUnstructured(sv, dv, ctx)\n\tcase reflect.Slice:\n\t\treturn sliceFromUnstructured(sv, dv, ctx)\n\tcase reflect.Pointer:\n\t\treturn pointerFromUnstructured(sv, dv, ctx)\n\tcase reflect.Struct:\n\t\treturn structFromUnstructured(sv, dv, ctx)\n\tcase reflect.Interface:\n\t\treturn interfaceFromUnstructured(sv, dv)\n\tdefault:\n\t\treturn fmt.Errorf(\"unrecognized type: %v\", dt.Kind())\n\t}\n\n}\n\nfunc fieldInfoFromField(structType reflect.Type, field int) *fieldInfo {\n\tfieldCacheMap := fieldCache.value.Load().(fieldsCacheMap)\n\tif info, ok := fieldCacheMap[structField{structType, field}]; ok {\n\t\treturn info\n\t}\n\n\t// Cache miss - we need to compute the field name.\n\tinfo := &fieldInfo{}\n\ttypeField := structType.Field(field)\n\tjsonTag := typeField.Tag.Get(\"json\")\n\tif len(jsonTag) == 0 {\n\t\t// Make the first character lowercase.\n\t\tif typeField.Name == \"\" {\n\t\t\tinfo.name = typeField.Name\n\t\t} else {\n\t\t\tinfo.name = strings.ToLower(typeField.Name[:1]) + typeField.Name[1:]\n\t\t}\n\t} else {\n\t\titems := strings.Split(jsonTag, \",\")\n\t\tinfo.name = items[0]\n\t\tfor i := range items {\n\t\t\tif items[i] == \"omitempty\" {\n\t\t\t\tinfo.omitempty = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tinfo.nameValue = reflect.ValueOf(info.name)\n\n\tfieldCache.Lock()\n\tdefer fieldCache.Unlock()\n\tfieldCacheMap = fieldCache.value.Load().(fieldsCacheMap)\n\tnewFieldCacheMap := make(fieldsCacheMap)\n\tfor k, v := range fieldCacheMap {\n\t\tnewFieldCacheMap[k] = v\n\t}\n\tnewFieldCacheMap[structField{structType, field}] = info\n\tfieldCache.value.Store(newFieldCacheMap)\n\treturn info\n}\n\nfunc unwrapInterface(v reflect.Value) reflect.Value {\n\tfor v.Kind() == reflect.Interface {\n\t\tv = v.Elem()\n\t}\n\treturn v\n}\n\nfunc mapFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot restore map from %v\", st.Kind())\n\t}\n\n\tif !st.Key().AssignableTo(dt.Key()) && !st.Key().ConvertibleTo(dt.Key()) {\n\t\treturn fmt.Errorf(\"cannot copy map with non-assignable keys: %v %v\", st.Key(), dt.Key())\n\t}\n\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.MakeMap(dt))\n\tfor _, key := range sv.MapKeys() {\n\t\tvalue := reflect.New(dt.Elem()).Elem()\n\t\tif val := unwrapInterface(sv.MapIndex(key)); val.IsValid() {\n\t\t\tif err := fromUnstructured(val, value, ctx); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tvalue.Set(reflect.Zero(dt.Elem()))\n\t\t}\n\t\tif st.Key().AssignableTo(dt.Key()) {\n\t\t\tdv.SetMapIndex(key, value)\n\t\t} else {\n\t\t\tdv.SetMapIndex(key.Convert(dt.Key()), value)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sliceFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() == reflect.String && dt.Elem().Kind() == reflect.Uint8 {\n\t\t// We store original []byte representation as string.\n\t\t// This conversion is allowed, but we need to be careful about\n\t\t// marshaling data appropriately.\n\t\tif len(sv.Interface().(string)) > 0 {\n\t\t\tmarshalled, err := json.Marshal(sv.Interface())\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error encoding %s to json: %v\", st, err)\n\t\t\t}\n\t\t\t// TODO: Is this Unmarshal needed?\n\t\t\tvar data []byte\n\t\t\terr = json.Unmarshal(marshalled, &data)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error decoding from json: %v\", err)\n\t\t\t}\n\t\t\tdv.SetBytes(data)\n\t\t} else {\n\t\t\tdv.Set(reflect.Zero(dt))\n\t\t}\n\t\treturn nil\n\t}\n\tif st.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"cannot restore slice from %v\", st.Kind())\n\t}\n\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.MakeSlice(dt, sv.Len(), sv.Cap()))\n\n\tpathLen := len(ctx.parentPath)\n\tdefer func() {\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t}()\n\tfor i := 0; i < sv.Len(); i++ {\n\t\tctx.pushIndex(i)\n\t\tif err := fromUnstructured(sv.Index(i), dv.Index(i), ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t}\n\treturn nil\n}\n\nfunc pointerFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\n\tif st.Kind() == reflect.Pointer && sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.New(dt.Elem()))\n\tswitch st.Kind() {\n\tcase reflect.Pointer, reflect.Interface:\n\t\treturn fromUnstructured(sv.Elem(), dv.Elem(), ctx)\n\tdefault:\n\t\treturn fromUnstructured(sv, dv.Elem(), ctx)\n\t}\n}\n\nfunc structFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot restore struct from: %v\", st.Kind())\n\t}\n\n\tpathLen := len(ctx.parentPath)\n\tsvInlined := ctx.isInlined\n\tdefer func() {\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t\tctx.isInlined = svInlined\n\t}()\n\tif !svInlined {\n\t\tctx.pushMatchedKeyTracker()\n\t}\n\tfor i := 0; i < dt.NumField(); i++ {\n\t\tfieldInfo := fieldInfoFromField(dt, i)\n\t\tfv := dv.Field(i)\n\n\t\tif len(fieldInfo.name) == 0 {\n\t\t\t// This field is inlined, recurse into fromUnstructured again\n\t\t\t// with the same set of matched keys.\n\t\t\tctx.isInlined = true\n\t\t\tif err := fromUnstructured(sv, fv, ctx); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tctx.isInlined = svInlined\n\t\t} else {\n\t\t\t// This field is not inlined so we recurse into\n\t\t\t// child field of sv corresponding to field i of\n\t\t\t// dv, with a new set of matchedKeys and updating\n\t\t\t// the parentPath to indicate that we are one level\n\t\t\t// deeper.\n\t\t\tctx.recordMatchedKey(fieldInfo.name)\n\t\t\tvalue := unwrapInterface(sv.MapIndex(fieldInfo.nameValue))\n\t\t\tif value.IsValid() {\n\t\t\t\tctx.isInlined = false\n\t\t\t\tctx.pushKey(fieldInfo.name)\n\t\t\t\tif err := fromUnstructured(value, fv, ctx); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t\t\t\tctx.isInlined = svInlined\n\t\t\t} else {\n\t\t\t\tfv.Set(reflect.Zero(fv.Type()))\n\t\t\t}\n\t\t}\n\t}\n\tif !svInlined {\n\t\tctx.popAndVerifyMatchedKeys(sv)\n\t}\n\treturn nil\n}\n\nfunc interfaceFromUnstructured(sv, dv reflect.Value) error {\n\t// TODO: Is this conversion safe?\n\tdv.Set(sv)\n\treturn nil\n}\n\n// ToUnstructured converts an object into map[string]interface{} representation.\n// It uses encoding/json/Marshaler if object implements it or reflection if not.\nfunc (c *unstructuredConverter) ToUnstructured(obj interface{}) (map[string]interface{}, error) {\n\tvar u map[string]interface{}\n\tvar err error\n\tif unstr, ok := obj.(Unstructured); ok {\n\t\tu = unstr.UnstructuredContent()\n\t} else {\n\t\tt := reflect.TypeOf(obj)\n\t\tvalue := reflect.ValueOf(obj)\n\t\tif t.Kind() != reflect.Pointer || value.IsNil() {\n\t\t\treturn nil, fmt.Errorf(\"ToUnstructured requires a non-nil pointer to an object, got %v\", t)\n\t\t}\n\t\tu = map[string]interface{}{}\n\t\terr = toUnstructured(value.Elem(), reflect.ValueOf(&u).Elem())\n\t}\n\tif c.mismatchDetection {\n\t\tnewUnstr := map[string]interface{}{}\n\t\tnewErr := toUnstructuredViaJSON(obj, &newUnstr)\n\t\tif (err != nil) != (newErr != nil) {\n\t\t\tklog.Fatalf(\"ToUnstructured unexpected error for %v: error: %v; newErr: %v\", obj, err, newErr)\n\t\t}\n\t\tif err == nil && !c.comparison.DeepEqual(u, newUnstr) {\n\t\t\tklog.Fatalf(\"ToUnstructured mismatch\\nobj1: %#v\\nobj2: %#v\", u, newUnstr)\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn u, nil\n}\n\n// DeepCopyJSON deep copies the passed value, assuming it is a valid JSON representation i.e. only contains\n// types produced by json.Unmarshal() and also int64.\n// bool, int64, float64, string, []interface{}, map[string]interface{}, json.Number and nil\nfunc DeepCopyJSON(x map[string]interface{}) map[string]interface{} {\n\treturn DeepCopyJSONValue(x).(map[string]interface{})\n}\n\n// DeepCopyJSONValue deep copies the passed value, assuming it is a valid JSON representation i.e. only contains\n// types produced by json.Unmarshal() and also int64.\n// bool, int64, float64, string, []interface{}, map[string]interface{}, json.Number and nil\nfunc DeepCopyJSONValue(x interface{}) interface{} {\n\tswitch x := x.(type) {\n\tcase map[string]interface{}:\n\t\tif x == nil {\n\t\t\t// Typed nil - an interface{} that contains a type map[string]interface{} with a value of nil\n\t\t\treturn x\n\t\t}\n\t\tclone := make(map[string]interface{}, len(x))\n\t\tfor k, v := range x {\n\t\t\tclone[k] = DeepCopyJSONValue(v)\n\t\t}\n\t\treturn clone\n\tcase []interface{}:\n\t\tif x == nil {\n\t\t\t// Typed nil - an interface{} that contains a type []interface{} with a value of nil\n\t\t\treturn x\n\t\t}\n\t\tclone := make([]interface{}, len(x))\n\t\tfor i, v := range x {\n\t\t\tclone[i] = DeepCopyJSONValue(v)\n\t\t}\n\t\treturn clone\n\tcase string, int64, bool, float64, nil, encodingjson.Number:\n\t\treturn x\n\tdefault:\n\t\tpanic(fmt.Errorf(\"cannot deep copy %T\", x))\n\t}\n}\n\nfunc toUnstructuredViaJSON(obj interface{}, u *map[string]interface{}) error {\n\tdata, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, u)\n}\n\nfunc toUnstructured(sv, dv reflect.Value) error {\n\t// Check if the object has a custom string converter.\n\tentry := value.TypeReflectEntryOf(sv.Type())\n\tif entry.CanConvertToUnstructured() {\n\t\tv, err := entry.ToUnstructured(sv)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif v != nil {\n\t\t\tdv.Set(reflect.ValueOf(v))\n\t\t}\n\t\treturn nil\n\t}\n\tst := sv.Type()\n\tswitch st.Kind() {\n\tcase reflect.String:\n\t\tdv.Set(reflect.ValueOf(sv.String()))\n\t\treturn nil\n\tcase reflect.Bool:\n\t\tdv.Set(reflect.ValueOf(sv.Bool()))\n\t\treturn nil\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tdv.Set(reflect.ValueOf(sv.Int()))\n\t\treturn nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tuVal := sv.Uint()\n\t\tif uVal > math.MaxInt64 {\n\t\t\treturn fmt.Errorf(\"unsigned value %d does not fit into int64 (overflow)\", uVal)\n\t\t}\n\t\tdv.Set(reflect.ValueOf(int64(uVal)))\n\t\treturn nil\n\tcase reflect.Float32, reflect.Float64:\n\t\tdv.Set(reflect.ValueOf(sv.Float()))\n\t\treturn nil\n\tcase reflect.Map:\n\t\treturn mapToUnstructured(sv, dv)\n\tcase reflect.Slice:\n\t\treturn sliceToUnstructured(sv, dv)\n\tcase reflect.Pointer:\n\t\treturn pointerToUnstructured(sv, dv)\n\tcase reflect.Struct:\n\t\treturn structToUnstructured(sv, dv)\n\tcase reflect.Interface:\n\t\treturn interfaceToUnstructured(sv, dv)\n\tdefault:\n\t\treturn fmt.Errorf(\"unrecognized type: %v\", st.Kind())\n\t}\n}\n\nfunc mapToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tif st.Key().Kind() == reflect.String {\n\t\t\tdv.Set(reflect.MakeMap(mapStringInterfaceType))\n\t\t\tdv = dv.Elem()\n\t\t\tdt = dv.Type()\n\t\t}\n\t}\n\tif dt.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot convert map to: %v\", dt.Kind())\n\t}\n\n\tif !st.Key().AssignableTo(dt.Key()) && !st.Key().ConvertibleTo(dt.Key()) {\n\t\treturn fmt.Errorf(\"cannot copy map with non-assignable keys: %v %v\", st.Key(), dt.Key())\n\t}\n\n\tfor _, key := range sv.MapKeys() {\n\t\tvalue := reflect.New(dt.Elem()).Elem()\n\t\tif err := toUnstructured(sv.MapIndex(key), value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif st.Key().AssignableTo(dt.Key()) {\n\t\t\tdv.SetMapIndex(key, value)\n\t\t} else {\n\t\t\tdv.SetMapIndex(key.Convert(dt.Key()), value)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sliceToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tif st.Elem().Kind() == reflect.Uint8 {\n\t\tdv.Set(reflect.New(stringType))\n\t\tdata, err := json.Marshal(sv.Bytes())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar result string\n\t\tif err = json.Unmarshal(data, &result); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdv.Set(reflect.ValueOf(result))\n\t\treturn nil\n\t}\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tdv.Set(reflect.MakeSlice(reflect.SliceOf(dt), sv.Len(), sv.Cap()))\n\t\tdv = dv.Elem()\n\t\tdt = dv.Type()\n\t}\n\tif dt.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"cannot convert slice to: %v\", dt.Kind())\n\t}\n\tfor i := 0; i < sv.Len(); i++ {\n\t\tif err := toUnstructured(sv.Index(i), dv.Index(i)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc pointerToUnstructured(sv, dv reflect.Value) error {\n\tif sv.IsNil() {\n\t\t// We're done - we don't need to store anything.\n\t\treturn nil\n\t}\n\treturn toUnstructured(sv.Elem(), dv)\n}\n\nfunc isZero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Map, reflect.Slice:\n\t\t// TODO: It seems that 0-len maps are ignored in it.\n\t\treturn v.IsNil() || v.Len() == 0\n\tcase reflect.Pointer, reflect.Interface:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc structToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tdv.Set(reflect.MakeMapWithSize(mapStringInterfaceType, st.NumField()))\n\t\tdv = dv.Elem()\n\t\tdt = dv.Type()\n\t}\n\tif dt.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot convert struct to: %v\", dt.Kind())\n\t}\n\trealMap := dv.Interface().(map[string]interface{})\n\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tfieldInfo := fieldInfoFromField(st, i)\n\t\tfv := sv.Field(i)\n\n\t\tif fieldInfo.name == \"-\" {\n\t\t\t// This field should be skipped.\n\t\t\tcontinue\n\t\t}\n\t\tif fieldInfo.omitempty && isZero(fv) {\n\t\t\t// omitempty fields should be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tif len(fieldInfo.name) == 0 {\n\t\t\t// This field is inlined.\n\t\t\tif err := toUnstructured(fv, dv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch fv.Type().Kind() {\n\t\tcase reflect.String:\n\t\t\trealMap[fieldInfo.name] = fv.String()\n\t\tcase reflect.Bool:\n\t\t\trealMap[fieldInfo.name] = fv.Bool()\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\trealMap[fieldInfo.name] = fv.Int()\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\trealMap[fieldInfo.name] = fv.Uint()\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\trealMap[fieldInfo.name] = fv.Float()\n\t\tdefault:\n\t\t\tsubv := reflect.New(dt.Elem()).Elem()\n\t\t\tif err := toUnstructured(fv, subv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdv.SetMapIndex(fieldInfo.nameValue, subv)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc interfaceToUnstructured(sv, dv reflect.Value) error {\n\tif !sv.IsValid() || sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dv.Type()))\n\t\treturn nil\n\t}\n\treturn toUnstructured(sv.Elem(), dv)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package runtime includes helper functions for working with API objects\n// that follow the kubernetes API object conventions, which are:\n//\n// 0. Your API objects have a common metadata struct member, TypeMeta.\n//\n// 1. Your code refers to an internal set of API objects.\n//\n// 2. In a separate package, you have an external set of API objects.\n//\n// 3. The external set is considered to be versioned, and no breaking\n// changes are ever made to it (fields may be added but not changed\n// or removed).\n//\n// 4. As your api evolves, you'll make an additional versioned package\n// with every major change.\n//\n// 5. Versioned packages have conversion functions which convert to\n// and from the internal version.\n//\n// 6. You'll continue to support older versions according to your\n// deprecation policy, and you can easily provide a program/library\n// to update old versions into new versions because of 5.\n//\n// 7. All of your serializations and deserializations are handled in a\n// centralized place.\n//\n// Package runtime provides a conversion helper to make 5 easy, and the\n// Encode/Decode/DecodeInto trio to accomplish 7. You can also register\n// additional \"codecs\" which use a version of your choice. It's\n// recommended that you register your types with runtime in your\n// package's init function.\n//\n// As a bonus, a few common types useful from all api objects and versions\n// are provided in types.go.\npackage runtime // import \"k8s.io/apimachinery/pkg/runtime\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/embedded.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"errors\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype encodable struct {\n\tE        Encoder `json:\"-\"`\n\tobj      Object\n\tversions []schema.GroupVersion\n}\n\nfunc (e encodable) GetObjectKind() schema.ObjectKind { return e.obj.GetObjectKind() }\nfunc (e encodable) DeepCopyObject() Object {\n\tout := e\n\tout.obj = e.obj.DeepCopyObject()\n\tcopy(out.versions, e.versions)\n\treturn out\n}\n\n// NewEncodable creates an object that will be encoded with the provided codec on demand.\n// Provided as a convenience for test cases dealing with internal objects.\nfunc NewEncodable(e Encoder, obj Object, versions ...schema.GroupVersion) Object {\n\tif _, ok := obj.(*Unknown); ok {\n\t\treturn obj\n\t}\n\treturn encodable{e, obj, versions}\n}\n\nfunc (e encodable) UnmarshalJSON(in []byte) error {\n\treturn errors.New(\"runtime.encodable cannot be unmarshalled from JSON\")\n}\n\n// Marshal may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (e encodable) MarshalJSON() ([]byte, error) {\n\treturn Encode(e.E, e.obj)\n}\n\n// NewEncodableList creates an object that will be encoded with the provided codec on demand.\n// Provided as a convenience for test cases dealing with internal objects.\nfunc NewEncodableList(e Encoder, objects []Object, versions ...schema.GroupVersion) []Object {\n\tout := make([]Object, len(objects))\n\tfor i := range objects {\n\t\tif _, ok := objects[i].(*Unknown); ok {\n\t\t\tout[i] = objects[i]\n\t\t\tcontinue\n\t\t}\n\t\tout[i] = NewEncodable(e, objects[i], versions...)\n\t}\n\treturn out\n}\n\nfunc (e *Unknown) UnmarshalJSON(in []byte) error {\n\tif e == nil {\n\t\treturn errors.New(\"runtime.Unknown: UnmarshalJSON on nil pointer\")\n\t}\n\te.TypeMeta = TypeMeta{}\n\te.Raw = append(e.Raw[0:0], in...)\n\te.ContentEncoding = \"\"\n\te.ContentType = ContentTypeJSON\n\treturn nil\n}\n\n// Marshal may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (e Unknown) MarshalJSON() ([]byte, error) {\n\t// If ContentType is unset, we assume this is JSON.\n\tif e.ContentType != \"\" && e.ContentType != ContentTypeJSON {\n\t\treturn nil, errors.New(\"runtime.Unknown: MarshalJSON on non-json data\")\n\t}\n\tif e.Raw == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn e.Raw, nil\n}\n\nfunc Convert_runtime_Object_To_runtime_RawExtension(in *Object, out *RawExtension, s conversion.Scope) error {\n\tif in == nil {\n\t\tout.Raw = []byte(\"null\")\n\t\treturn nil\n\t}\n\tobj := *in\n\tif unk, ok := obj.(*Unknown); ok {\n\t\tif unk.Raw != nil {\n\t\t\tout.Raw = unk.Raw\n\t\t\treturn nil\n\t\t}\n\t\tobj = out.Object\n\t}\n\tif obj == nil {\n\t\tout.Raw = nil\n\t\treturn nil\n\t}\n\tout.Object = obj\n\treturn nil\n}\n\nfunc Convert_runtime_RawExtension_To_runtime_Object(in *RawExtension, out *Object, s conversion.Scope) error {\n\tif in.Object != nil {\n\t\t*out = in.Object\n\t\treturn nil\n\t}\n\tdata := in.Raw\n\tif len(data) == 0 || (len(data) == 4 && string(data) == \"null\") {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\t*out = &Unknown{\n\t\tRaw: data,\n\t\t// TODO: Set ContentEncoding and ContentType appropriately.\n\t\t// Currently we set ContentTypeJSON to make tests passing.\n\t\tContentType: ContentTypeJSON,\n\t}\n\treturn nil\n}\n\nfunc RegisterEmbeddedConversions(s *Scheme) error {\n\tif err := s.AddConversionFunc((*Object)(nil), (*RawExtension)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_runtime_Object_To_runtime_RawExtension(a.(*Object), b.(*RawExtension), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*RawExtension)(nil), (*Object)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_runtime_RawExtension_To_runtime_Object(a.(*RawExtension), b.(*Object), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/error.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype notRegisteredErr struct {\n\tschemeName string\n\tgvk        schema.GroupVersionKind\n\ttarget     GroupVersioner\n\tt          reflect.Type\n}\n\nfunc NewNotRegisteredErrForKind(schemeName string, gvk schema.GroupVersionKind) error {\n\treturn &notRegisteredErr{schemeName: schemeName, gvk: gvk}\n}\n\nfunc NewNotRegisteredErrForType(schemeName string, t reflect.Type) error {\n\treturn &notRegisteredErr{schemeName: schemeName, t: t}\n}\n\nfunc NewNotRegisteredErrForTarget(schemeName string, t reflect.Type, target GroupVersioner) error {\n\treturn &notRegisteredErr{schemeName: schemeName, t: t, target: target}\n}\n\nfunc NewNotRegisteredGVKErrForTarget(schemeName string, gvk schema.GroupVersionKind, target GroupVersioner) error {\n\treturn &notRegisteredErr{schemeName: schemeName, gvk: gvk, target: target}\n}\n\nfunc (k *notRegisteredErr) Error() string {\n\tif k.t != nil && k.target != nil {\n\t\treturn fmt.Sprintf(\"%v is not suitable for converting to %q in scheme %q\", k.t, k.target, k.schemeName)\n\t}\n\tnullGVK := schema.GroupVersionKind{}\n\tif k.gvk != nullGVK && k.target != nil {\n\t\treturn fmt.Sprintf(\"%q is not suitable for converting to %q in scheme %q\", k.gvk.GroupVersion(), k.target, k.schemeName)\n\t}\n\tif k.t != nil {\n\t\treturn fmt.Sprintf(\"no kind is registered for the type %v in scheme %q\", k.t, k.schemeName)\n\t}\n\tif len(k.gvk.Kind) == 0 {\n\t\treturn fmt.Sprintf(\"no version %q has been registered in scheme %q\", k.gvk.GroupVersion(), k.schemeName)\n\t}\n\tif k.gvk.Version == APIVersionInternal {\n\t\treturn fmt.Sprintf(\"no kind %q is registered for the internal version of group %q in scheme %q\", k.gvk.Kind, k.gvk.Group, k.schemeName)\n\t}\n\n\treturn fmt.Sprintf(\"no kind %q is registered for version %q in scheme %q\", k.gvk.Kind, k.gvk.GroupVersion(), k.schemeName)\n}\n\n// IsNotRegisteredError returns true if the error indicates the provided\n// object or input data is not registered.\nfunc IsNotRegisteredError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*notRegisteredErr)\n\treturn ok\n}\n\ntype missingKindErr struct {\n\tdata string\n}\n\nfunc NewMissingKindErr(data string) error {\n\treturn &missingKindErr{data}\n}\n\nfunc (k *missingKindErr) Error() string {\n\treturn fmt.Sprintf(\"Object 'Kind' is missing in '%s'\", k.data)\n}\n\n// IsMissingKind returns true if the error indicates that the provided object\n// is missing a 'Kind' field.\nfunc IsMissingKind(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*missingKindErr)\n\treturn ok\n}\n\ntype missingVersionErr struct {\n\tdata string\n}\n\nfunc NewMissingVersionErr(data string) error {\n\treturn &missingVersionErr{data}\n}\n\nfunc (k *missingVersionErr) Error() string {\n\treturn fmt.Sprintf(\"Object 'apiVersion' is missing in '%s'\", k.data)\n}\n\n// IsMissingVersion returns true if the error indicates that the provided object\n// is missing a 'Version' field.\nfunc IsMissingVersion(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*missingVersionErr)\n\treturn ok\n}\n\n// strictDecodingError is a base error type that is returned by a strict Decoder such\n// as UniversalStrictDecoder.\ntype strictDecodingError struct {\n\terrors []error\n}\n\n// NewStrictDecodingError creates a new strictDecodingError object.\nfunc NewStrictDecodingError(errors []error) error {\n\treturn &strictDecodingError{\n\t\terrors: errors,\n\t}\n}\n\nfunc (e *strictDecodingError) Error() string {\n\tvar s strings.Builder\n\ts.WriteString(\"strict decoding error: \")\n\tfor i, err := range e.errors {\n\t\tif i != 0 {\n\t\t\ts.WriteString(\", \")\n\t\t}\n\t\ts.WriteString(err.Error())\n\t}\n\treturn s.String()\n}\n\nfunc (e *strictDecodingError) Errors() []error {\n\treturn e.errors\n}\n\n// IsStrictDecodingError returns true if the error indicates that the provided object\n// strictness violations.\nfunc IsStrictDecodingError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*strictDecodingError)\n\treturn ok\n}\n\n// AsStrictDecodingError returns a strict decoding error\n// containing all the strictness violations.\nfunc AsStrictDecodingError(err error) (*strictDecodingError, bool) {\n\tif err == nil {\n\t\treturn nil, false\n\t}\n\tstrictErr, ok := err.(*strictDecodingError)\n\treturn strictErr, ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/extension.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n)\n\nfunc (re *RawExtension) UnmarshalJSON(in []byte) error {\n\tif re == nil {\n\t\treturn errors.New(\"runtime.RawExtension: UnmarshalJSON on nil pointer\")\n\t}\n\tif !bytes.Equal(in, []byte(\"null\")) {\n\t\tre.Raw = append(re.Raw[0:0], in...)\n\t}\n\treturn nil\n}\n\n// MarshalJSON may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (re RawExtension) MarshalJSON() ([]byte, error) {\n\tif re.Raw == nil {\n\t\t// TODO: this is to support legacy behavior of JSONPrinter and YAMLPrinter, which\n\t\t// expect to call json.Marshal on arbitrary versioned objects (even those not in\n\t\t// the scheme). pkg/kubectl/resource#AsVersionedObjects and its interaction with\n\t\t// kubectl get on objects not in the scheme needs to be updated to ensure that the\n\t\t// objects that are not part of the scheme are correctly put into the right form.\n\t\tif re.Object != nil {\n\t\t\treturn json.Marshal(re.Object)\n\t\t}\n\t\treturn []byte(\"null\"), nil\n\t}\n\t// TODO: Check whether ContentType is actually JSON before returning it.\n\treturn re.Raw, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/generated.proto\n\npackage runtime\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *RawExtension) Reset()      { *m = RawExtension{} }\nfunc (*RawExtension) ProtoMessage() {}\nfunc (*RawExtension) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9d3c45d7f546725c, []int{0}\n}\nfunc (m *RawExtension) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RawExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RawExtension) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RawExtension.Merge(m, src)\n}\nfunc (m *RawExtension) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RawExtension) XXX_DiscardUnknown() {\n\txxx_messageInfo_RawExtension.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RawExtension proto.InternalMessageInfo\n\nfunc (m *TypeMeta) Reset()      { *m = TypeMeta{} }\nfunc (*TypeMeta) ProtoMessage() {}\nfunc (*TypeMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9d3c45d7f546725c, []int{1}\n}\nfunc (m *TypeMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeMeta.Merge(m, src)\n}\nfunc (m *TypeMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeMeta proto.InternalMessageInfo\n\nfunc (m *Unknown) Reset()      { *m = Unknown{} }\nfunc (*Unknown) ProtoMessage() {}\nfunc (*Unknown) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9d3c45d7f546725c, []int{2}\n}\nfunc (m *Unknown) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Unknown) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Unknown) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Unknown.Merge(m, src)\n}\nfunc (m *Unknown) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Unknown) XXX_DiscardUnknown() {\n\txxx_messageInfo_Unknown.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Unknown proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*RawExtension)(nil), \"k8s.io.apimachinery.pkg.runtime.RawExtension\")\n\tproto.RegisterType((*TypeMeta)(nil), \"k8s.io.apimachinery.pkg.runtime.TypeMeta\")\n\tproto.RegisterType((*Unknown)(nil), \"k8s.io.apimachinery.pkg.runtime.Unknown\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/generated.proto\", fileDescriptor_9d3c45d7f546725c)\n}\n\nvar fileDescriptor_9d3c45d7f546725c = []byte{\n\t// 380 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcf, 0xaa, 0x13, 0x31,\n\t0x14, 0xc6, 0x27, 0xb7, 0x85, 0x7b, 0x4d, 0x0b, 0x57, 0xe2, 0xc2, 0xd1, 0x45, 0xe6, 0xd2, 0x95,\n\t0x77, 0x61, 0x02, 0x17, 0x04, 0xb7, 0x9d, 0x52, 0x50, 0x44, 0x90, 0xe0, 0x1f, 0x70, 0x65, 0x3a,\n\t0x13, 0xa7, 0x61, 0xe8, 0xc9, 0x90, 0x66, 0x1c, 0xbb, 0xf3, 0x11, 0x7c, 0xac, 0x2e, 0xbb, 0xec,\n\t0xaa, 0xd8, 0xf1, 0x21, 0xdc, 0x4a, 0xd3, 0xb4, 0x56, 0x5d, 0x74, 0x97, 0x73, 0xbe, 0xef, 0xf7,\n\t0x9d, 0x73, 0x20, 0xf8, 0x45, 0xf9, 0x7c, 0xce, 0xb4, 0xe1, 0x65, 0x3d, 0x51, 0x16, 0x94, 0x53,\n\t0x73, 0xfe, 0x45, 0x41, 0x6e, 0x2c, 0x0f, 0x82, 0xac, 0xf4, 0x4c, 0x66, 0x53, 0x0d, 0xca, 0x2e,\n\t0x78, 0x55, 0x16, 0xdc, 0xd6, 0xe0, 0xf4, 0x4c, 0xf1, 0x42, 0x81, 0xb2, 0xd2, 0xa9, 0x9c, 0x55,\n\t0xd6, 0x38, 0x43, 0x92, 0x3d, 0xc0, 0x4e, 0x01, 0x56, 0x95, 0x05, 0x0b, 0xc0, 0xe3, 0xa7, 0x85,\n\t0x76, 0xd3, 0x7a, 0xc2, 0x32, 0x33, 0xe3, 0x85, 0x29, 0x0c, 0xf7, 0xdc, 0xa4, 0xfe, 0xec, 0x2b,\n\t0x5f, 0xf8, 0xd7, 0x3e, 0x6f, 0x70, 0x8b, 0xfb, 0x42, 0x36, 0xe3, 0xaf, 0x4e, 0xc1, 0x5c, 0x1b,\n\t0x20, 0x8f, 0x70, 0xc7, 0xca, 0x26, 0x46, 0x37, 0xe8, 0x49, 0x3f, 0xbd, 0x6c, 0x37, 0x49, 0x47,\n\t0xc8, 0x46, 0xec, 0x7a, 0x83, 0x4f, 0xf8, 0xea, 0xed, 0xa2, 0x52, 0xaf, 0x95, 0x93, 0xe4, 0x0e,\n\t0x63, 0x59, 0xe9, 0xf7, 0xca, 0xee, 0x20, 0xef, 0xbe, 0x97, 0x92, 0xe5, 0x26, 0x89, 0xda, 0x4d,\n\t0x82, 0x87, 0x6f, 0x5e, 0x06, 0x45, 0x9c, 0xb8, 0xc8, 0x0d, 0xee, 0x96, 0x1a, 0xf2, 0xf8, 0xc2,\n\t0xbb, 0xfb, 0xc1, 0xdd, 0x7d, 0xa5, 0x21, 0x17, 0x5e, 0x19, 0xfc, 0x42, 0xf8, 0xf2, 0x1d, 0x94,\n\t0x60, 0x1a, 0x20, 0x1f, 0xf0, 0x95, 0x0b, 0xd3, 0x7c, 0x7e, 0xef, 0xee, 0x96, 0x9d, 0xb9, 0x9d,\n\t0x1d, 0xd6, 0x4b, 0xef, 0x87, 0xf0, 0xe3, 0xc2, 0xe2, 0x18, 0x76, 0xb8, 0xf0, 0xe2, 0xff, 0x0b,\n\t0xc9, 0x10, 0x5f, 0x67, 0x06, 0x9c, 0x02, 0x37, 0x86, 0xcc, 0xe4, 0x1a, 0x8a, 0xb8, 0xe3, 0x97,\n\t0x7d, 0x18, 0xf2, 0xae, 0x47, 0x7f, 0xcb, 0xe2, 0x5f, 0x3f, 0x79, 0x86, 0x7b, 0xa1, 0xb5, 0x1b,\n\t0x1d, 0x77, 0x3d, 0xfe, 0x20, 0xe0, 0xbd, 0xd1, 0x1f, 0x49, 0x9c, 0xfa, 0xd2, 0xf1, 0x72, 0x4b,\n\t0xa3, 0xd5, 0x96, 0x46, 0xeb, 0x2d, 0x8d, 0xbe, 0xb5, 0x14, 0x2d, 0x5b, 0x8a, 0x56, 0x2d, 0x45,\n\t0xeb, 0x96, 0xa2, 0x1f, 0x2d, 0x45, 0xdf, 0x7f, 0xd2, 0xe8, 0x63, 0x72, 0xe6, 0xb7, 0xfc, 0x0e,\n\t0x00, 0x00, 0xff, 0xff, 0x1f, 0x32, 0xd5, 0x68, 0x68, 0x02, 0x00, 0x00,\n}\n\nfunc (m *RawExtension) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RawExtension) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RawExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Unknown) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Unknown) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Unknown) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ContentType)\n\tcopy(dAtA[i:], m.ContentType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContentType)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.ContentEncoding)\n\tcopy(dAtA[i:], m.ContentEncoding)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContentEncoding)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.TypeMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *RawExtension) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *TypeMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Unknown) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.TypeMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ContentEncoding)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContentType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *RawExtension) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RawExtension{`,\n\t\t`Raw:` + valueToStringGenerated(this.Raw) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypeMeta{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Unknown) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Unknown{`,\n\t\t`TypeMeta:` + strings.Replace(strings.Replace(this.TypeMeta.String(), \"TypeMeta\", \"TypeMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Raw:` + valueToStringGenerated(this.Raw) + `,`,\n\t\t`ContentEncoding:` + fmt.Sprintf(\"%v\", this.ContentEncoding) + `,`,\n\t\t`ContentType:` + fmt.Sprintf(\"%v\", this.ContentType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *RawExtension) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RawExtension: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RawExtension: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Unknown) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Unknown: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Unknown: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TypeMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContentEncoding\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContentEncoding = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContentType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContentType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.runtime;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/runtime\";\n\n// RawExtension is used to hold extensions in external versions.\n//\n// To use this, make a field which has RawExtension as its type in your external, versioned\n// struct, and Object in your internal struct. You also need to register your\n// various plugin types.\n//\n// // Internal package:\n//\n// \ttype MyAPIObject struct {\n// \t\truntime.TypeMeta `json:\",inline\"`\n// \t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n// \t}\n//\n// \ttype PluginA struct {\n// \t\tAOption string `json:\"aOption\"`\n// \t}\n//\n// // External package:\n//\n// \ttype MyAPIObject struct {\n// \t\truntime.TypeMeta `json:\",inline\"`\n// \t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n// \t}\n//\n// \ttype PluginA struct {\n// \t\tAOption string `json:\"aOption\"`\n// \t}\n//\n// // On the wire, the JSON will look something like this:\n//\n// \t{\n// \t\t\"kind\":\"MyAPIObject\",\n// \t\t\"apiVersion\":\"v1\",\n// \t\t\"myPlugin\": {\n// \t\t\t\"kind\":\"PluginA\",\n// \t\t\t\"aOption\":\"foo\",\n// \t\t},\n// \t}\n//\n// So what happens? Decode first uses json or yaml to unmarshal the serialized data into\n// your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked.\n// The next step is to copy (using pkg/conversion) into the internal struct. The runtime\n// package's DefaultScheme has conversion functions installed which will unpack the\n// JSON stored in RawExtension, turning it into the correct object type, and storing it\n// in the Object. (TODO: In the case where the object is of an unknown type, a\n// runtime.Unknown object will be created and stored.)\n//\n// +k8s:deepcopy-gen=true\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage RawExtension {\n  // Raw is the underlying serialization of this object.\n  //\n  // TODO: Determine how to detect ContentType and ContentEncoding of 'Raw' data.\n  optional bytes raw = 1;\n}\n\n// TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type,\n// like this:\n//\n// \ttype MyAwesomeAPIObject struct {\n// \t     runtime.TypeMeta    `json:\",inline\"`\n// \t     ... // other fields\n// \t}\n//\n// func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n//\n// TypeMeta is provided here for convenience. You may use it directly from this package or define\n// your own with the same fields.\n//\n// +k8s:deepcopy-gen=false\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage TypeMeta {\n  // +optional\n  optional string apiVersion = 1;\n\n  // +optional\n  optional string kind = 2;\n}\n\n// Unknown allows api objects with unknown types to be passed-through. This can be used\n// to deal with the API objects from a plug-in. Unknown objects still have functioning\n// TypeMeta features-- kind, version, etc.\n// TODO: Make this object have easy access to field based accessors and settors for\n// metadata and field mutatation.\n//\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage Unknown {\n  optional TypeMeta typeMeta = 1;\n\n  // Raw will hold the complete serialized object which couldn't be matched\n  // with a registered type. Most likely, nothing should be done with this\n  // except for passing it through the system.\n  optional bytes raw = 2;\n\n  // ContentEncoding is encoding used to encode 'Raw' data.\n  // Unspecified means no encoding.\n  optional string contentEncoding = 3;\n\n  // ContentType  is serialization method used to serialize 'Raw'.\n  // Unspecified means ContentTypeJSON.\n  optional string contentType = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/helper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/errors\"\n)\n\n// unsafeObjectConvertor implements ObjectConvertor using the unsafe conversion path.\ntype unsafeObjectConvertor struct {\n\t*Scheme\n}\n\nvar _ ObjectConvertor = unsafeObjectConvertor{}\n\n// ConvertToVersion converts in to the provided outVersion without copying the input first, which\n// is only safe if the output object is not mutated or reused.\nfunc (c unsafeObjectConvertor) ConvertToVersion(in Object, outVersion GroupVersioner) (Object, error) {\n\treturn c.Scheme.UnsafeConvertToVersion(in, outVersion)\n}\n\n// UnsafeObjectConvertor performs object conversion without copying the object structure,\n// for use when the converted object will not be reused or mutated. Primarily for use within\n// versioned codecs, which use the external object for serialization but do not return it.\nfunc UnsafeObjectConvertor(scheme *Scheme) ObjectConvertor {\n\treturn unsafeObjectConvertor{scheme}\n}\n\n// SetField puts the value of src, into fieldName, which must be a member of v.\n// The value of src must be assignable to the field.\nfunc SetField(src interface{}, v reflect.Value, fieldName string) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tsrcValue := reflect.ValueOf(src)\n\tif srcValue.Type().AssignableTo(field.Type()) {\n\t\tfield.Set(srcValue)\n\t\treturn nil\n\t}\n\tif srcValue.Type().ConvertibleTo(field.Type()) {\n\t\tfield.Set(srcValue.Convert(field.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", srcValue.Type(), field.Type())\n}\n\n// Field puts the value of fieldName, which must be a member of v, into dest,\n// which must be a variable to which this field's value can be assigned.\nfunc Field(v reflect.Value, fieldName string, dest interface{}) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tdestValue, err := conversion.EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif field.Type().AssignableTo(destValue.Type()) {\n\t\tdestValue.Set(field)\n\t\treturn nil\n\t}\n\tif field.Type().ConvertibleTo(destValue.Type()) {\n\t\tdestValue.Set(field.Convert(destValue.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", field.Type(), destValue.Type())\n}\n\n// FieldPtr puts the address of fieldName, which must be a member of v,\n// into dest, which must be an address of a variable to which this field's\n// address can be assigned.\nfunc FieldPtr(v reflect.Value, fieldName string, dest interface{}) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tv, err := conversion.EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfield = field.Addr()\n\tif field.Type().AssignableTo(v.Type()) {\n\t\tv.Set(field)\n\t\treturn nil\n\t}\n\tif field.Type().ConvertibleTo(v.Type()) {\n\t\tv.Set(field.Convert(v.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", field.Type(), v.Type())\n}\n\n// EncodeList ensures that each object in an array is converted to a Unknown{} in serialized form.\n// TODO: accept a content type.\nfunc EncodeList(e Encoder, objects []Object) error {\n\tvar errs []error\n\tfor i := range objects {\n\t\tdata, err := Encode(e, objects[i])\n\t\tif err != nil {\n\t\t\terrs = append(errs, err)\n\t\t\tcontinue\n\t\t}\n\t\t// TODO: Set ContentEncoding and ContentType.\n\t\tobjects[i] = &Unknown{Raw: data}\n\t}\n\treturn errors.NewAggregate(errs)\n}\n\nfunc decodeListItem(obj *Unknown, decoders []Decoder) (Object, error) {\n\tfor _, decoder := range decoders {\n\t\t// TODO: Decode based on ContentType.\n\t\tobj, err := Decode(decoder, obj.Raw)\n\t\tif err != nil {\n\t\t\tif IsNotRegisteredError(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\treturn obj, nil\n\t}\n\t// could not decode, so leave the object as Unknown, but give the decoders the\n\t// chance to set Unknown.TypeMeta if it is available.\n\tfor _, decoder := range decoders {\n\t\tif err := DecodeInto(decoder, obj.Raw, obj); err == nil {\n\t\t\treturn obj, nil\n\t\t}\n\t}\n\treturn obj, nil\n}\n\n// DecodeList alters the list in place, attempting to decode any objects found in\n// the list that have the Unknown type. Any errors that occur are returned\n// after the entire list is processed. Decoders are tried in order.\nfunc DecodeList(objects []Object, decoders ...Decoder) []error {\n\terrs := []error(nil)\n\tfor i, obj := range objects {\n\t\tswitch t := obj.(type) {\n\t\tcase *Unknown:\n\t\t\tdecoded, err := decodeListItem(t, decoders)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tobjects[i] = decoded\n\t\t}\n\t}\n\treturn errs\n}\n\n// MultiObjectTyper returns the types of objects across multiple schemes in order.\ntype MultiObjectTyper []ObjectTyper\n\nvar _ ObjectTyper = MultiObjectTyper{}\n\nfunc (m MultiObjectTyper) ObjectKinds(obj Object) (gvks []schema.GroupVersionKind, unversionedType bool, err error) {\n\tfor _, t := range m {\n\t\tgvks, unversionedType, err = t.ObjectKinds(obj)\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (m MultiObjectTyper) Recognizes(gvk schema.GroupVersionKind) bool {\n\tfor _, t := range m {\n\t\tif t.Recognizes(gvk) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// SetZeroValue would set the object of objPtr to zero value of its type.\nfunc SetZeroValue(objPtr Object) error {\n\tv, err := conversion.EnforcePtr(objPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tv.Set(reflect.Zero(v.Type()))\n\treturn nil\n}\n\n// DefaultFramer is valid for any stream that can read objects serially without\n// any separation in the stream.\nvar DefaultFramer = defaultFramer{}\n\ntype defaultFramer struct{}\n\nfunc (defaultFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser { return r }\nfunc (defaultFramer) NewFrameWriter(w io.Writer) io.Writer         { return w }\n\n// WithVersionEncoder serializes an object and ensures the GVK is set.\ntype WithVersionEncoder struct {\n\tVersion GroupVersioner\n\tEncoder\n\tObjectTyper\n}\n\n// Encode does not do conversion. It sets the gvk during serialization.\nfunc (e WithVersionEncoder) Encode(obj Object, stream io.Writer) error {\n\tgvks, _, err := e.ObjectTyper.ObjectKinds(obj)\n\tif err != nil {\n\t\tif IsNotRegisteredError(err) {\n\t\t\treturn e.Encoder.Encode(obj, stream)\n\t\t}\n\t\treturn err\n\t}\n\tkind := obj.GetObjectKind()\n\toldGVK := kind.GroupVersionKind()\n\tgvk := gvks[0]\n\tif e.Version != nil {\n\t\tpreferredGVK, ok := e.Version.KindForGroupVersionKinds(gvks)\n\t\tif ok {\n\t\t\tgvk = preferredGVK\n\t\t}\n\t}\n\tkind.SetGroupVersionKind(gvk)\n\terr = e.Encoder.Encode(obj, stream)\n\tkind.SetGroupVersionKind(oldGVK)\n\treturn err\n}\n\n// WithoutVersionDecoder clears the group version kind of a deserialized object.\ntype WithoutVersionDecoder struct {\n\tDecoder\n}\n\n// Decode does not do conversion. It removes the gvk during deserialization.\nfunc (d WithoutVersionDecoder) Decode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\tobj, gvk, err := d.Decoder.Decode(data, defaults, into)\n\tif obj != nil {\n\t\tkind := obj.GetObjectKind()\n\t\t// clearing the gvk is just a convention of a codec\n\t\tkind.SetGroupVersionKind(schema.GroupVersionKind{})\n\t}\n\treturn obj, gvk, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/interfaces.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"io\"\n\t\"net/url\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst (\n\t// APIVersionInternal may be used if you are registering a type that should not\n\t// be considered stable or serialized - it is a convention only and has no\n\t// special behavior in this package.\n\tAPIVersionInternal = \"__internal\"\n)\n\n// GroupVersioner refines a set of possible conversion targets into a single option.\ntype GroupVersioner interface {\n\t// KindForGroupVersionKinds returns a desired target group version kind for the given input, or returns ok false if no\n\t// target is known. In general, if the return target is not in the input list, the caller is expected to invoke\n\t// Scheme.New(target) and then perform a conversion between the current Go type and the destination Go type.\n\t// Sophisticated implementations may use additional information about the input kinds to pick a destination kind.\n\tKindForGroupVersionKinds(kinds []schema.GroupVersionKind) (target schema.GroupVersionKind, ok bool)\n\t// Identifier returns string representation of the object.\n\t// Identifiers of two different encoders should be equal only if for every input\n\t// kinds they return the same result.\n\tIdentifier() string\n}\n\n// Identifier represents an identifier.\n// Identitier of two different objects should be equal if and only if for every\n// input the output they produce is exactly the same.\ntype Identifier string\n\n// Encoder writes objects to a serialized form\ntype Encoder interface {\n\t// Encode writes an object to a stream. Implementations may return errors if the versions are\n\t// incompatible, or if no conversion is defined.\n\tEncode(obj Object, w io.Writer) error\n\t// Identifier returns an identifier of the encoder.\n\t// Identifiers of two different encoders should be equal if and only if for every input\n\t// object it will be encoded to the same representation by both of them.\n\t//\n\t// Identifier is intended for use with CacheableObject#CacheEncode method. In order to\n\t// correctly handle CacheableObject, Encode() method should look similar to below, where\n\t// doEncode() is the encoding logic of implemented encoder:\n\t//   func (e *MyEncoder) Encode(obj Object, w io.Writer) error {\n\t//     if co, ok := obj.(CacheableObject); ok {\n\t//       return co.CacheEncode(e.Identifier(), e.doEncode, w)\n\t//     }\n\t//     return e.doEncode(obj, w)\n\t//   }\n\tIdentifier() Identifier\n}\n\n// MemoryAllocator is responsible for allocating memory.\n// By encapsulating memory allocation into its own interface, we can reuse the memory\n// across many operations in places we know it can significantly improve the performance.\ntype MemoryAllocator interface {\n\t// Allocate reserves memory for n bytes.\n\t// Note that implementations of this method are not required to zero the returned array.\n\t// It is the caller's responsibility to clean the memory if needed.\n\tAllocate(n uint64) []byte\n}\n\n// EncoderWithAllocator  serializes objects in a way that allows callers to manage any additional memory allocations.\ntype EncoderWithAllocator interface {\n\tEncoder\n\t// EncodeWithAllocator writes an object to a stream as Encode does.\n\t// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization\n\tEncodeWithAllocator(obj Object, w io.Writer, memAlloc MemoryAllocator) error\n}\n\n// Decoder attempts to load an object from data.\ntype Decoder interface {\n\t// Decode attempts to deserialize the provided data using either the innate typing of the scheme or the\n\t// default kind, group, and version provided. It returns a decoded object as well as the kind, group, and\n\t// version from the serialized data, or an error. If into is non-nil, it will be used as the target type\n\t// and implementations may choose to use it rather than reallocating an object. However, the object is not\n\t// guaranteed to be populated. The returned object is not guaranteed to match into. If defaults are\n\t// provided, they are applied to the data by default. If no defaults or partial defaults are provided, the\n\t// type of the into may be used to guide conversion decisions.\n\tDecode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error)\n}\n\n// Serializer is the core interface for transforming objects into a serialized format and back.\n// Implementations may choose to perform conversion of the object, but no assumptions should be made.\ntype Serializer interface {\n\tEncoder\n\tDecoder\n}\n\n// Codec is a Serializer that deals with the details of versioning objects. It offers the same\n// interface as Serializer, so this is a marker to consumers that care about the version of the objects\n// they receive.\ntype Codec Serializer\n\n// ParameterCodec defines methods for serializing and deserializing API objects to url.Values and\n// performing any necessary conversion. Unlike the normal Codec, query parameters are not self describing\n// and the desired version must be specified.\ntype ParameterCodec interface {\n\t// DecodeParameters takes the given url.Values in the specified group version and decodes them\n\t// into the provided object, or returns an error.\n\tDecodeParameters(parameters url.Values, from schema.GroupVersion, into Object) error\n\t// EncodeParameters encodes the provided object as query parameters or returns an error.\n\tEncodeParameters(obj Object, to schema.GroupVersion) (url.Values, error)\n}\n\n// Framer is a factory for creating readers and writers that obey a particular framing pattern.\ntype Framer interface {\n\tNewFrameReader(r io.ReadCloser) io.ReadCloser\n\tNewFrameWriter(w io.Writer) io.Writer\n}\n\n// SerializerInfo contains information about a specific serialization format\ntype SerializerInfo struct {\n\t// MediaType is the value that represents this serializer over the wire.\n\tMediaType string\n\t// MediaTypeType is the first part of the MediaType (\"application\" in \"application/json\").\n\tMediaTypeType string\n\t// MediaTypeSubType is the second part of the MediaType (\"json\" in \"application/json\").\n\tMediaTypeSubType string\n\t// EncodesAsText indicates this serializer can be encoded to UTF-8 safely.\n\tEncodesAsText bool\n\t// Serializer is the individual object serializer for this media type.\n\tSerializer Serializer\n\t// PrettySerializer, if set, can serialize this object in a form biased towards\n\t// readability.\n\tPrettySerializer Serializer\n\t// StrictSerializer, if set, deserializes this object strictly,\n\t// erring on unknown fields.\n\tStrictSerializer Serializer\n\t// StreamSerializer, if set, describes the streaming serialization format\n\t// for this media type.\n\tStreamSerializer *StreamSerializerInfo\n}\n\n// StreamSerializerInfo contains information about a specific stream serialization format\ntype StreamSerializerInfo struct {\n\t// EncodesAsText indicates this serializer can be encoded to UTF-8 safely.\n\tEncodesAsText bool\n\t// Serializer is the top level object serializer for this type when streaming\n\tSerializer\n\t// Framer is the factory for retrieving streams that separate objects on the wire\n\tFramer\n}\n\n// NegotiatedSerializer is an interface used for obtaining encoders, decoders, and serializers\n// for multiple supported media types. This would commonly be accepted by a server component\n// that performs HTTP content negotiation to accept multiple formats.\ntype NegotiatedSerializer interface {\n\t// SupportedMediaTypes is the media types supported for reading and writing single objects.\n\tSupportedMediaTypes() []SerializerInfo\n\n\t// EncoderForVersion returns an encoder that ensures objects being written to the provided\n\t// serializer are in the provided group version.\n\tEncoderForVersion(serializer Encoder, gv GroupVersioner) Encoder\n\t// DecoderToVersion returns a decoder that ensures objects being read by the provided\n\t// serializer are in the provided group version by default.\n\tDecoderToVersion(serializer Decoder, gv GroupVersioner) Decoder\n}\n\n// ClientNegotiator handles turning an HTTP content type into the appropriate encoder.\n// Use NewClientNegotiator or NewVersionedClientNegotiator to create this interface from\n// a NegotiatedSerializer.\ntype ClientNegotiator interface {\n\t// Encoder returns the appropriate encoder for the provided contentType (e.g. application/json)\n\t// and any optional mediaType parameters (e.g. pretty=1), or an error. If no serializer is found\n\t// a NegotiateError will be returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tEncoder(contentType string, params map[string]string) (Encoder, error)\n\t// Decoder returns the appropriate decoder for the provided contentType (e.g. application/json)\n\t// and any optional mediaType parameters (e.g. pretty=1), or an error. If no serializer is found\n\t// a NegotiateError will be returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tDecoder(contentType string, params map[string]string) (Decoder, error)\n\t// StreamDecoder returns the appropriate stream decoder for the provided contentType (e.g.\n\t// application/json) and any optional mediaType parameters (e.g. pretty=1), or an error. If no\n\t// serializer is found a NegotiateError will be returned. The Serializer and Framer will always\n\t// be returned if a Decoder is returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tStreamDecoder(contentType string, params map[string]string) (Decoder, Serializer, Framer, error)\n}\n\n// StorageSerializer is an interface used for obtaining encoders, decoders, and serializers\n// that can read and write data at rest. This would commonly be used by client tools that must\n// read files, or server side storage interfaces that persist restful objects.\ntype StorageSerializer interface {\n\t// SupportedMediaTypes are the media types supported for reading and writing objects.\n\tSupportedMediaTypes() []SerializerInfo\n\n\t// UniversalDeserializer returns a Serializer that can read objects in multiple supported formats\n\t// by introspecting the data at rest.\n\tUniversalDeserializer() Decoder\n\n\t// EncoderForVersion returns an encoder that ensures objects being written to the provided\n\t// serializer are in the provided group version.\n\tEncoderForVersion(serializer Encoder, gv GroupVersioner) Encoder\n\t// DecoderForVersion returns a decoder that ensures objects being read by the provided\n\t// serializer are in the provided group version by default.\n\tDecoderToVersion(serializer Decoder, gv GroupVersioner) Decoder\n}\n\n// NestedObjectEncoder is an optional interface that objects may implement to be given\n// an opportunity to encode any nested Objects / RawExtensions during serialization.\ntype NestedObjectEncoder interface {\n\tEncodeNestedObjects(e Encoder) error\n}\n\n// NestedObjectDecoder is an optional interface that objects may implement to be given\n// an opportunity to decode any nested Objects / RawExtensions during serialization.\n// It is possible for DecodeNestedObjects to return a non-nil error but for the decoding\n// to have succeeded in the case of strict decoding errors (e.g. unknown/duplicate fields).\n// As such it is important for callers of DecodeNestedObjects to check to confirm whether\n// an error is a runtime.StrictDecodingError before short circuiting.\n// Similarly, implementations of DecodeNestedObjects should ensure that a runtime.StrictDecodingError\n// is only returned when the rest of decoding has succeeded.\ntype NestedObjectDecoder interface {\n\tDecodeNestedObjects(d Decoder) error\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// Non-codec interfaces\n\ntype ObjectDefaulter interface {\n\t// Default takes an object (must be a pointer) and applies any default values.\n\t// Defaulters may not error.\n\tDefault(in Object)\n}\n\ntype ObjectVersioner interface {\n\tConvertToVersion(in Object, gv GroupVersioner) (out Object, err error)\n}\n\n// ObjectConvertor converts an object to a different version.\ntype ObjectConvertor interface {\n\t// Convert attempts to convert one object into another, or returns an error. This\n\t// method does not mutate the in object, but the in and out object might share data structures,\n\t// i.e. the out object cannot be mutated without mutating the in object as well.\n\t// The context argument will be passed to all nested conversions.\n\tConvert(in, out, context interface{}) error\n\t// ConvertToVersion takes the provided object and converts it the provided version. This\n\t// method does not mutate the in object, but the in and out object might share data structures,\n\t// i.e. the out object cannot be mutated without mutating the in object as well.\n\t// This method is similar to Convert() but handles specific details of choosing the correct\n\t// output version.\n\tConvertToVersion(in Object, gv GroupVersioner) (out Object, err error)\n\tConvertFieldLabel(gvk schema.GroupVersionKind, label, value string) (string, string, error)\n}\n\n// ObjectTyper contains methods for extracting the APIVersion and Kind\n// of objects.\ntype ObjectTyper interface {\n\t// ObjectKinds returns the all possible group,version,kind of the provided object, true if\n\t// the object is unversioned, or an error if the object is not recognized\n\t// (IsNotRegisteredError will return true).\n\tObjectKinds(Object) ([]schema.GroupVersionKind, bool, error)\n\t// Recognizes returns true if the scheme is able to handle the provided version and kind,\n\t// or more precisely that the provided version is a possible conversion or decoding\n\t// target.\n\tRecognizes(gvk schema.GroupVersionKind) bool\n}\n\n// ObjectCreater contains methods for instantiating an object by kind and version.\ntype ObjectCreater interface {\n\tNew(kind schema.GroupVersionKind) (out Object, err error)\n}\n\n// EquivalentResourceMapper provides information about resources that address the same underlying data as a specified resource\ntype EquivalentResourceMapper interface {\n\t// EquivalentResourcesFor returns a list of resources that address the same underlying data as resource.\n\t// If subresource is specified, only equivalent resources which also have the same subresource are included.\n\t// The specified resource can be included in the returned list.\n\tEquivalentResourcesFor(resource schema.GroupVersionResource, subresource string) []schema.GroupVersionResource\n\t// KindFor returns the kind expected by the specified resource[/subresource].\n\t// A zero value is returned if the kind is unknown.\n\tKindFor(resource schema.GroupVersionResource, subresource string) schema.GroupVersionKind\n}\n\n// EquivalentResourceRegistry provides an EquivalentResourceMapper interface,\n// and allows registering known resource[/subresource] -> kind\ntype EquivalentResourceRegistry interface {\n\tEquivalentResourceMapper\n\t// RegisterKindFor registers the existence of the specified resource[/subresource] along with its expected kind.\n\tRegisterKindFor(resource schema.GroupVersionResource, subresource string, kind schema.GroupVersionKind)\n}\n\n// ResourceVersioner provides methods for setting and retrieving\n// the resource version from an API object.\ntype ResourceVersioner interface {\n\tSetResourceVersion(obj Object, version string) error\n\tResourceVersion(obj Object) (string, error)\n}\n\n// Namer provides methods for retrieving name and namespace of an API object.\ntype Namer interface {\n\t// Name returns the name of a given object.\n\tName(obj Object) (string, error)\n\t// Namespace returns the name of a given object.\n\tNamespace(obj Object) (string, error)\n}\n\n// Object interface must be supported by all API types registered with Scheme. Since objects in a scheme are\n// expected to be serialized to the wire, the interface an Object must provide to the Scheme allows\n// serializers to set the kind, version, and group the object is represented as. An Object may choose\n// to return a no-op ObjectKindAccessor in cases where it is not expected to be serialized.\ntype Object interface {\n\tGetObjectKind() schema.ObjectKind\n\tDeepCopyObject() Object\n}\n\n// CacheableObject allows an object to cache its different serializations\n// to avoid performing the same serialization multiple times.\ntype CacheableObject interface {\n\t// CacheEncode writes an object to a stream. The <encode> function will\n\t// be used in case of cache miss. The <encode> function takes ownership\n\t// of the object.\n\t// If CacheableObject is a wrapper, then deep-copy of the wrapped object\n\t// should be passed to <encode> function.\n\t// CacheEncode assumes that for two different calls with the same <id>,\n\t// <encode> function will also be the same.\n\tCacheEncode(id Identifier, encode func(Object, io.Writer) error, w io.Writer) error\n\t// GetObject returns a deep-copy of an object to be encoded - the caller of\n\t// GetObject() is the owner of returned object. The reason for making a copy\n\t// is to avoid bugs, where caller modifies the object and forgets to copy it,\n\t// thus modifying the object for everyone.\n\t// The object returned by GetObject should be the same as the one that is supposed\n\t// to be passed to <encode> function in CacheEncode method.\n\t// If CacheableObject is a wrapper, the copy of wrapped object should be returned.\n\tGetObject() Object\n}\n\n// Unstructured objects store values as map[string]interface{}, with only values that can be serialized\n// to JSON allowed.\ntype Unstructured interface {\n\tObject\n\t// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n\t// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\n\tNewEmptyInstance() Unstructured\n\t// UnstructuredContent returns a non-nil map with this object's contents. Values may be\n\t// []interface{}, map[string]interface{}, or any primitive type. Contents are typically serialized to\n\t// and from JSON. SetUnstructuredContent should be used to mutate the contents.\n\tUnstructuredContent() map[string]interface{}\n\t// SetUnstructuredContent updates the object content to match the provided map.\n\tSetUnstructuredContent(map[string]interface{})\n\t// IsList returns true if this type is a list or matches the list convention - has an array called \"items\".\n\tIsList() bool\n\t// EachListItem should pass a single item out of the list as an Object to the provided function. Any\n\t// error should terminate the iteration. If IsList() returns false, this method should return an error\n\t// instead of calling the provided function.\n\tEachListItem(func(Object) error) error\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/mapper.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype equivalentResourceRegistry struct {\n\t// keyFunc computes a key for the specified resource (this allows honoring colocated resources across API groups).\n\t// if null, or if \"\" is returned, resource.String() is used as the key\n\tkeyFunc func(resource schema.GroupResource) string\n\t// resources maps key -> subresource -> equivalent resources (subresource is not included in the returned resources).\n\t// main resources are stored with subresource=\"\".\n\tresources map[string]map[string][]schema.GroupVersionResource\n\t// kinds maps resource -> subresource -> kind\n\tkinds map[schema.GroupVersionResource]map[string]schema.GroupVersionKind\n\t// keys caches the computed key for each GroupResource\n\tkeys map[schema.GroupResource]string\n\n\tmutex sync.RWMutex\n}\n\nvar _ EquivalentResourceMapper = (*equivalentResourceRegistry)(nil)\nvar _ EquivalentResourceRegistry = (*equivalentResourceRegistry)(nil)\n\n// NewEquivalentResourceRegistry creates a resource registry that considers all versions of a GroupResource to be equivalent.\nfunc NewEquivalentResourceRegistry() EquivalentResourceRegistry {\n\treturn &equivalentResourceRegistry{}\n}\n\n// NewEquivalentResourceRegistryWithIdentity creates a resource mapper with a custom identity function.\n// If \"\" is returned by the function, GroupResource#String is used as the identity.\n// GroupResources with the same identity string are considered equivalent.\nfunc NewEquivalentResourceRegistryWithIdentity(keyFunc func(schema.GroupResource) string) EquivalentResourceRegistry {\n\treturn &equivalentResourceRegistry{keyFunc: keyFunc}\n}\n\nfunc (r *equivalentResourceRegistry) EquivalentResourcesFor(resource schema.GroupVersionResource, subresource string) []schema.GroupVersionResource {\n\tr.mutex.RLock()\n\tdefer r.mutex.RUnlock()\n\treturn r.resources[r.keys[resource.GroupResource()]][subresource]\n}\nfunc (r *equivalentResourceRegistry) KindFor(resource schema.GroupVersionResource, subresource string) schema.GroupVersionKind {\n\tr.mutex.RLock()\n\tdefer r.mutex.RUnlock()\n\treturn r.kinds[resource][subresource]\n}\nfunc (r *equivalentResourceRegistry) RegisterKindFor(resource schema.GroupVersionResource, subresource string, kind schema.GroupVersionKind) {\n\tr.mutex.Lock()\n\tdefer r.mutex.Unlock()\n\tif r.kinds == nil {\n\t\tr.kinds = map[schema.GroupVersionResource]map[string]schema.GroupVersionKind{}\n\t}\n\tif r.kinds[resource] == nil {\n\t\tr.kinds[resource] = map[string]schema.GroupVersionKind{}\n\t}\n\tr.kinds[resource][subresource] = kind\n\n\t// get the shared key of the parent resource\n\tkey := \"\"\n\tgr := resource.GroupResource()\n\tif r.keyFunc != nil {\n\t\tkey = r.keyFunc(gr)\n\t}\n\tif key == \"\" {\n\t\tkey = gr.String()\n\t}\n\n\tif r.keys == nil {\n\t\tr.keys = map[schema.GroupResource]string{}\n\t}\n\tr.keys[gr] = key\n\n\tif r.resources == nil {\n\t\tr.resources = map[string]map[string][]schema.GroupVersionResource{}\n\t}\n\tif r.resources[key] == nil {\n\t\tr.resources[key] = map[string][]schema.GroupVersionResource{}\n\t}\n\tr.resources[key][subresource] = append(r.resources[key][subresource], resource)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/negotiate.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// NegotiateError is returned when a ClientNegotiator is unable to locate\n// a serializer for the requested operation.\ntype NegotiateError struct {\n\tContentType string\n\tStream      bool\n}\n\nfunc (e NegotiateError) Error() string {\n\tif e.Stream {\n\t\treturn fmt.Sprintf(\"no stream serializers registered for %s\", e.ContentType)\n\t}\n\treturn fmt.Sprintf(\"no serializers registered for %s\", e.ContentType)\n}\n\ntype clientNegotiator struct {\n\tserializer     NegotiatedSerializer\n\tencode, decode GroupVersioner\n}\n\nfunc (n *clientNegotiator) Encoder(contentType string, params map[string]string) (Encoder, error) {\n\t// TODO: `pretty=1` is handled in NegotiateOutputMediaType, consider moving it to this method\n\t// if client negotiators truly need to use it\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, NegotiateError{ContentType: contentType}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\treturn n.serializer.EncoderForVersion(info.Serializer, n.encode), nil\n}\n\nfunc (n *clientNegotiator) Decoder(contentType string, params map[string]string) (Decoder, error) {\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, NegotiateError{ContentType: contentType}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\treturn n.serializer.DecoderToVersion(info.Serializer, n.decode), nil\n}\n\nfunc (n *clientNegotiator) StreamDecoder(contentType string, params map[string]string) (Decoder, Serializer, Framer, error) {\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, nil, nil, NegotiateError{ContentType: contentType, Stream: true}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\tif info.StreamSerializer == nil {\n\t\treturn nil, nil, nil, NegotiateError{ContentType: info.MediaType, Stream: true}\n\t}\n\treturn n.serializer.DecoderToVersion(info.Serializer, n.decode), info.StreamSerializer.Serializer, info.StreamSerializer.Framer, nil\n}\n\n// NewClientNegotiator will attempt to retrieve the appropriate encoder, decoder, or\n// stream decoder for a given content type. Does not perform any conversion, but will\n// encode the object to the desired group, version, and kind. Use when creating a client.\nfunc NewClientNegotiator(serializer NegotiatedSerializer, gv schema.GroupVersion) ClientNegotiator {\n\treturn &clientNegotiator{\n\t\tserializer: serializer,\n\t\tencode:     gv,\n\t}\n}\n\ntype simpleNegotiatedSerializer struct {\n\tinfo SerializerInfo\n}\n\nfunc NewSimpleNegotiatedSerializer(info SerializerInfo) NegotiatedSerializer {\n\treturn &simpleNegotiatedSerializer{info: info}\n}\n\nfunc (n *simpleNegotiatedSerializer) SupportedMediaTypes() []SerializerInfo {\n\treturn []SerializerInfo{n.info}\n}\n\nfunc (n *simpleNegotiatedSerializer) EncoderForVersion(e Encoder, _ GroupVersioner) Encoder {\n\treturn e\n}\n\nfunc (n *simpleNegotiatedSerializer) DecoderToVersion(d Decoder, _gv GroupVersioner) Decoder {\n\treturn d\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport \"k8s.io/apimachinery/pkg/runtime/schema\"\n\n// SetGroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\n// GroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto\n\npackage schema\n\nimport (\n\tfmt \"fmt\"\n\n\tmath \"math\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto\", fileDescriptor_0462724132518e0d)\n}\n\nvar fileDescriptor_0462724132518e0d = []byte{\n\t// 186 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0xce, 0xad, 0x8e, 0xc3, 0x30,\n\t0x0c, 0xc0, 0xf1, 0x84, 0x1e, 0x3c, 0x78, 0xc0, 0xb0, 0xec, 0x62, 0x7a, 0xf8, 0xf0, 0xa4, 0xf1,\n\t0xb1, 0xb4, 0xf5, 0xd2, 0x28, 0xca, 0x87, 0xd2, 0x64, 0xd2, 0xd8, 0x1e, 0x61, 0x8f, 0x55, 0x58,\n\t0x58, 0xb8, 0x66, 0x2f, 0x32, 0x29, 0x2d, 0x18, 0x1c, 0xf3, 0x5f, 0xd6, 0xcf, 0xf2, 0xd7, 0xd1,\n\t0xfc, 0x8d, 0x42, 0x7b, 0x34, 0xb9, 0xa5, 0xe8, 0x28, 0xd1, 0x88, 0x17, 0x72, 0xbd, 0x8f, 0xb8,\n\t0x2f, 0x64, 0xd0, 0x56, 0x76, 0x83, 0x76, 0x14, 0xaf, 0x18, 0x8c, 0xc2, 0x98, 0x5d, 0xd2, 0x96,\n\t0x70, 0xec, 0x06, 0xb2, 0x12, 0x15, 0x39, 0x8a, 0x32, 0x51, 0x2f, 0x42, 0xf4, 0xc9, 0x7f, 0x37,\n\t0x9b, 0x13, 0xef, 0x4e, 0x04, 0xa3, 0xc4, 0xee, 0xc4, 0xe6, 0x7e, 0x7e, 0x95, 0x4e, 0x43, 0x6e,\n\t0x45, 0xe7, 0x2d, 0x2a, 0xaf, 0x3c, 0x56, 0xde, 0xe6, 0x73, 0xad, 0x1a, 0x75, 0xda, 0xce, 0xfe,\n\t0x1f, 0xa6, 0x15, 0xd8, 0xbc, 0x02, 0x5b, 0x56, 0x60, 0xb7, 0x02, 0x7c, 0x2a, 0xc0, 0xe7, 0x02,\n\t0x7c, 0x29, 0xc0, 0x1f, 0x05, 0xf8, 0xfd, 0x09, 0xec, 0xd4, 0x7c, 0xf6, 0xf4, 0x2b, 0x00, 0x00,\n\t0xff, 0xff, 0x12, 0xb4, 0xae, 0x48, 0xf6, 0x00, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.runtime.schema;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/runtime/schema\";\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/group_version.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// ParseResourceArg takes the common style of string which may be either `resource.group.com` or `resource.version.group.com`\n// and parses it out into both possibilities.  This code takes no responsibility for knowing which representation was intended\n// but with a knowledge of all GroupVersions, calling code can take a very good guess.  If there are only two segments, then\n// `*GroupVersionResource` is nil.\n// `resource.group.com` -> `group=com, version=group, resource=resource` and `group=group.com, resource=resource`\nfunc ParseResourceArg(arg string) (*GroupVersionResource, GroupResource) {\n\tvar gvr *GroupVersionResource\n\tif strings.Count(arg, \".\") >= 2 {\n\t\ts := strings.SplitN(arg, \".\", 3)\n\t\tgvr = &GroupVersionResource{Group: s[2], Version: s[1], Resource: s[0]}\n\t}\n\n\treturn gvr, ParseGroupResource(arg)\n}\n\n// ParseKindArg takes the common style of string which may be either `Kind.group.com` or `Kind.version.group.com`\n// and parses it out into both possibilities. This code takes no responsibility for knowing which representation was intended\n// but with a knowledge of all GroupKinds, calling code can take a very good guess. If there are only two segments, then\n// `*GroupVersionResource` is nil.\n// `Kind.group.com` -> `group=com, version=group, kind=Kind` and `group=group.com, kind=Kind`\nfunc ParseKindArg(arg string) (*GroupVersionKind, GroupKind) {\n\tvar gvk *GroupVersionKind\n\tif strings.Count(arg, \".\") >= 2 {\n\t\ts := strings.SplitN(arg, \".\", 3)\n\t\tgvk = &GroupVersionKind{Group: s[2], Version: s[1], Kind: s[0]}\n\t}\n\n\treturn gvk, ParseGroupKind(arg)\n}\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\ntype GroupResource struct {\n\tGroup    string\n\tResource string\n}\n\nfunc (gr GroupResource) WithVersion(version string) GroupVersionResource {\n\treturn GroupVersionResource{Group: gr.Group, Version: version, Resource: gr.Resource}\n}\n\nfunc (gr GroupResource) Empty() bool {\n\treturn len(gr.Group) == 0 && len(gr.Resource) == 0\n}\n\nfunc (gr GroupResource) String() string {\n\tif len(gr.Group) == 0 {\n\t\treturn gr.Resource\n\t}\n\treturn gr.Resource + \".\" + gr.Group\n}\n\nfunc ParseGroupKind(gk string) GroupKind {\n\ti := strings.Index(gk, \".\")\n\tif i == -1 {\n\t\treturn GroupKind{Kind: gk}\n\t}\n\n\treturn GroupKind{Group: gk[i+1:], Kind: gk[:i]}\n}\n\n// ParseGroupResource turns \"resource.group\" string into a GroupResource struct.  Empty strings are allowed\n// for each field.\nfunc ParseGroupResource(gr string) GroupResource {\n\tif i := strings.Index(gr, \".\"); i >= 0 {\n\t\treturn GroupResource{Group: gr[i+1:], Resource: gr[:i]}\n\t}\n\treturn GroupResource{Resource: gr}\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\ntype GroupVersionResource struct {\n\tGroup    string\n\tVersion  string\n\tResource string\n}\n\nfunc (gvr GroupVersionResource) Empty() bool {\n\treturn len(gvr.Group) == 0 && len(gvr.Version) == 0 && len(gvr.Resource) == 0\n}\n\nfunc (gvr GroupVersionResource) GroupResource() GroupResource {\n\treturn GroupResource{Group: gvr.Group, Resource: gvr.Resource}\n}\n\nfunc (gvr GroupVersionResource) GroupVersion() GroupVersion {\n\treturn GroupVersion{Group: gvr.Group, Version: gvr.Version}\n}\n\nfunc (gvr GroupVersionResource) String() string {\n\treturn strings.Join([]string{gvr.Group, \"/\", gvr.Version, \", Resource=\", gvr.Resource}, \"\")\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\ntype GroupKind struct {\n\tGroup string\n\tKind  string\n}\n\nfunc (gk GroupKind) Empty() bool {\n\treturn len(gk.Group) == 0 && len(gk.Kind) == 0\n}\n\nfunc (gk GroupKind) WithVersion(version string) GroupVersionKind {\n\treturn GroupVersionKind{Group: gk.Group, Version: version, Kind: gk.Kind}\n}\n\nfunc (gk GroupKind) String() string {\n\tif len(gk.Group) == 0 {\n\t\treturn gk.Kind\n\t}\n\treturn gk.Kind + \".\" + gk.Group\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\ntype GroupVersionKind struct {\n\tGroup   string\n\tVersion string\n\tKind    string\n}\n\n// Empty returns true if group, version, and kind are empty\nfunc (gvk GroupVersionKind) Empty() bool {\n\treturn len(gvk.Group) == 0 && len(gvk.Version) == 0 && len(gvk.Kind) == 0\n}\n\nfunc (gvk GroupVersionKind) GroupKind() GroupKind {\n\treturn GroupKind{Group: gvk.Group, Kind: gvk.Kind}\n}\n\nfunc (gvk GroupVersionKind) GroupVersion() GroupVersion {\n\treturn GroupVersion{Group: gvk.Group, Version: gvk.Version}\n}\n\nfunc (gvk GroupVersionKind) String() string {\n\treturn gvk.Group + \"/\" + gvk.Version + \", Kind=\" + gvk.Kind\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\ntype GroupVersion struct {\n\tGroup   string\n\tVersion string\n}\n\n// Empty returns true if group and version are empty\nfunc (gv GroupVersion) Empty() bool {\n\treturn len(gv.Group) == 0 && len(gv.Version) == 0\n}\n\n// String puts \"group\" and \"version\" into a single \"group/version\" string. For the legacy v1\n// it returns \"v1\".\nfunc (gv GroupVersion) String() string {\n\tif len(gv.Group) > 0 {\n\t\treturn gv.Group + \"/\" + gv.Version\n\t}\n\treturn gv.Version\n}\n\n// Identifier implements runtime.GroupVersioner interface.\nfunc (gv GroupVersion) Identifier() string {\n\treturn gv.String()\n}\n\n// KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false\n// if none of the options match the group. It prefers a match to group and version over just group.\n// TODO: Move GroupVersion to a package under pkg/runtime, since it's used by scheme.\n// TODO: Introduce an adapter type between GroupVersion and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)\n// in fewer places.\nfunc (gv GroupVersion) KindForGroupVersionKinds(kinds []GroupVersionKind) (target GroupVersionKind, ok bool) {\n\tfor _, gvk := range kinds {\n\t\tif gvk.Group == gv.Group && gvk.Version == gv.Version {\n\t\t\treturn gvk, true\n\t\t}\n\t}\n\tfor _, gvk := range kinds {\n\t\tif gvk.Group == gv.Group {\n\t\t\treturn gv.WithKind(gvk.Kind), true\n\t\t}\n\t}\n\treturn GroupVersionKind{}, false\n}\n\n// ParseGroupVersion turns \"group/version\" string into a GroupVersion struct. It reports error\n// if it cannot parse the string.\nfunc ParseGroupVersion(gv string) (GroupVersion, error) {\n\t// this can be the internal version for the legacy kube types\n\t// TODO once we've cleared the last uses as strings, this special case should be removed.\n\tif (len(gv) == 0) || (gv == \"/\") {\n\t\treturn GroupVersion{}, nil\n\t}\n\n\tswitch strings.Count(gv, \"/\") {\n\tcase 0:\n\t\treturn GroupVersion{\"\", gv}, nil\n\tcase 1:\n\t\ti := strings.Index(gv, \"/\")\n\t\treturn GroupVersion{gv[:i], gv[i+1:]}, nil\n\tdefault:\n\t\treturn GroupVersion{}, fmt.Errorf(\"unexpected GroupVersion string: %v\", gv)\n\t}\n}\n\n// WithKind creates a GroupVersionKind based on the method receiver's GroupVersion and the passed Kind.\nfunc (gv GroupVersion) WithKind(kind string) GroupVersionKind {\n\treturn GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: kind}\n}\n\n// WithResource creates a GroupVersionResource based on the method receiver's GroupVersion and the passed Resource.\nfunc (gv GroupVersion) WithResource(resource string) GroupVersionResource {\n\treturn GroupVersionResource{Group: gv.Group, Version: gv.Version, Resource: resource}\n}\n\n// GroupVersions can be used to represent a set of desired group versions.\n// TODO: Move GroupVersions to a package under pkg/runtime, since it's used by scheme.\n// TODO: Introduce an adapter type between GroupVersions and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)\n// in fewer places.\ntype GroupVersions []GroupVersion\n\n// Identifier implements runtime.GroupVersioner interface.\nfunc (gvs GroupVersions) Identifier() string {\n\tgroupVersions := make([]string, 0, len(gvs))\n\tfor i := range gvs {\n\t\tgroupVersions = append(groupVersions, gvs[i].String())\n\t}\n\treturn fmt.Sprintf(\"[%s]\", strings.Join(groupVersions, \",\"))\n}\n\n// KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false\n// if none of the options match the group.\nfunc (gvs GroupVersions) KindForGroupVersionKinds(kinds []GroupVersionKind) (GroupVersionKind, bool) {\n\tvar targets []GroupVersionKind\n\tfor _, gv := range gvs {\n\t\ttarget, ok := gv.KindForGroupVersionKinds(kinds)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\ttargets = append(targets, target)\n\t}\n\tif len(targets) == 1 {\n\t\treturn targets[0], true\n\t}\n\tif len(targets) > 1 {\n\t\treturn bestMatch(kinds, targets), true\n\t}\n\treturn GroupVersionKind{}, false\n}\n\n// bestMatch tries to pick best matching GroupVersionKind and falls back to the first\n// found if no exact match exists.\nfunc bestMatch(kinds []GroupVersionKind, targets []GroupVersionKind) GroupVersionKind {\n\tfor _, gvk := range targets {\n\t\tfor _, k := range kinds {\n\t\t\tif k == gvk {\n\t\t\t\treturn k\n\t\t\t}\n\t\t}\n\t}\n\treturn targets[0]\n}\n\n// ToAPIVersionAndKind is a convenience method for satisfying runtime.Object on types that\n// do not use TypeMeta.\nfunc (gvk GroupVersionKind) ToAPIVersionAndKind() (string, string) {\n\tif gvk.Empty() {\n\t\treturn \"\", \"\"\n\t}\n\treturn gvk.GroupVersion().String(), gvk.Kind\n}\n\n// FromAPIVersionAndKind returns a GVK representing the provided fields for types that\n// do not use TypeMeta. This method exists to support test types and legacy serializations\n// that have a distinct group and kind.\n// TODO: further reduce usage of this method.\nfunc FromAPIVersionAndKind(apiVersion, kind string) GroupVersionKind {\n\tif gv, err := ParseGroupVersion(apiVersion); err == nil {\n\t\treturn GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: kind}\n\t}\n\treturn GroupVersionKind{Kind: kind}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/interfaces.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\n// All objects that are serialized from a Scheme encode their type information. This interface is used\n// by serialization to set type information from the Scheme onto the serialized version of an object.\n// For objects that cannot be serialized or have unique requirements, this interface may be a no-op.\ntype ObjectKind interface {\n\t// SetGroupVersionKind sets or clears the intended serialized kind of an object. Passing kind nil\n\t// should clear the current setting.\n\tSetGroupVersionKind(kind GroupVersionKind)\n\t// GroupVersionKind returns the stored group, version, and kind of an object, or an empty struct\n\t// if the object does not expose or provide these fields.\n\tGroupVersionKind() GroupVersionKind\n}\n\n// EmptyObjectKind implements the ObjectKind interface as a noop\nvar EmptyObjectKind = emptyObjectKind{}\n\ntype emptyObjectKind struct{}\n\n// SetGroupVersionKind implements the ObjectKind interface\nfunc (emptyObjectKind) SetGroupVersionKind(gvk GroupVersionKind) {}\n\n// GroupVersionKind implements the ObjectKind interface\nfunc (emptyObjectKind) GroupVersionKind() GroupVersionKind { return GroupVersionKind{} }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/scheme.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/naming\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// Scheme defines methods for serializing and deserializing API objects, a type\n// registry for converting group, version, and kind information to and from Go\n// schemas, and mappings between Go schemas of different versions. A scheme is the\n// foundation for a versioned API and versioned configuration over time.\n//\n// In a Scheme, a Type is a particular Go struct, a Version is a point-in-time\n// identifier for a particular representation of that Type (typically backwards\n// compatible), a Kind is the unique name for that Type within the Version, and a\n// Group identifies a set of Versions, Kinds, and Types that evolve over time. An\n// Unversioned Type is one that is not yet formally bound to a type and is promised\n// to be backwards compatible (effectively a \"v1\" of a Type that does not expect\n// to break in the future).\n//\n// Schemes are not expected to change at runtime and are only threadsafe after\n// registration is complete.\ntype Scheme struct {\n\t// gvkToType allows one to figure out the go type of an object with\n\t// the given version and name.\n\tgvkToType map[schema.GroupVersionKind]reflect.Type\n\n\t// typeToGVK allows one to find metadata for a given go object.\n\t// The reflect.Type we index by should *not* be a pointer.\n\ttypeToGVK map[reflect.Type][]schema.GroupVersionKind\n\n\t// unversionedTypes are transformed without conversion in ConvertToVersion.\n\tunversionedTypes map[reflect.Type]schema.GroupVersionKind\n\n\t// unversionedKinds are the names of kinds that can be created in the context of any group\n\t// or version\n\t// TODO: resolve the status of unversioned types.\n\tunversionedKinds map[string]reflect.Type\n\n\t// Map from version and resource to the corresponding func to convert\n\t// resource field labels in that version to internal version.\n\tfieldLabelConversionFuncs map[schema.GroupVersionKind]FieldLabelConversionFunc\n\n\t// defaulterFuncs is a map to funcs to be called with an object to provide defaulting\n\t// the provided object must be a pointer.\n\tdefaulterFuncs map[reflect.Type]func(interface{})\n\n\t// converter stores all registered conversion functions. It also has\n\t// default converting behavior.\n\tconverter *conversion.Converter\n\n\t// versionPriority is a map of groups to ordered lists of versions for those groups indicating the\n\t// default priorities of these versions as registered in the scheme\n\tversionPriority map[string][]string\n\n\t// observedVersions keeps track of the order we've seen versions during type registration\n\tobservedVersions []schema.GroupVersion\n\n\t// schemeName is the name of this scheme.  If you don't specify a name, the stack of the NewScheme caller will be used.\n\t// This is useful for error reporting to indicate the origin of the scheme.\n\tschemeName string\n}\n\n// FieldLabelConversionFunc converts a field selector to internal representation.\ntype FieldLabelConversionFunc func(label, value string) (internalLabel, internalValue string, err error)\n\n// NewScheme creates a new Scheme. This scheme is pluggable by default.\nfunc NewScheme() *Scheme {\n\ts := &Scheme{\n\t\tgvkToType:                 map[schema.GroupVersionKind]reflect.Type{},\n\t\ttypeToGVK:                 map[reflect.Type][]schema.GroupVersionKind{},\n\t\tunversionedTypes:          map[reflect.Type]schema.GroupVersionKind{},\n\t\tunversionedKinds:          map[string]reflect.Type{},\n\t\tfieldLabelConversionFuncs: map[schema.GroupVersionKind]FieldLabelConversionFunc{},\n\t\tdefaulterFuncs:            map[reflect.Type]func(interface{}){},\n\t\tversionPriority:           map[string][]string{},\n\t\tschemeName:                naming.GetNameFromCallsite(internalPackages...),\n\t}\n\ts.converter = conversion.NewConverter(nil)\n\n\t// Enable couple default conversions by default.\n\tutilruntime.Must(RegisterEmbeddedConversions(s))\n\tutilruntime.Must(RegisterStringConversions(s))\n\treturn s\n}\n\n// Converter allows access to the converter for the scheme\nfunc (s *Scheme) Converter() *conversion.Converter {\n\treturn s.converter\n}\n\n// AddUnversionedTypes registers the provided types as \"unversioned\", which means that they follow special rules.\n// Whenever an object of this type is serialized, it is serialized with the provided group version and is not\n// converted. Thus unversioned objects are expected to remain backwards compatible forever, as if they were in an\n// API group and version that would never be updated.\n//\n// TODO: there is discussion about removing unversioned and replacing it with objects that are manifest into\n// every version with particular schemas. Resolve this method at that point.\nfunc (s *Scheme) AddUnversionedTypes(version schema.GroupVersion, types ...Object) {\n\ts.addObservedVersion(version)\n\ts.AddKnownTypes(version, types...)\n\tfor _, obj := range types {\n\t\tt := reflect.TypeOf(obj).Elem()\n\t\tgvk := version.WithKind(t.Name())\n\t\ts.unversionedTypes[t] = gvk\n\t\tif old, ok := s.unversionedKinds[gvk.Kind]; ok && t != old {\n\t\t\tpanic(fmt.Sprintf(\"%v.%v has already been registered as unversioned kind %q - kind name must be unique in scheme %q\", old.PkgPath(), old.Name(), gvk, s.schemeName))\n\t\t}\n\t\ts.unversionedKinds[gvk.Kind] = t\n\t}\n}\n\n// AddKnownTypes registers all types passed in 'types' as being members of version 'version'.\n// All objects passed to types should be pointers to structs. The name that go reports for\n// the struct becomes the \"kind\" field when encoding. Version may not be empty - use the\n// APIVersionInternal constant if you have a type that does not have a formal version.\nfunc (s *Scheme) AddKnownTypes(gv schema.GroupVersion, types ...Object) {\n\ts.addObservedVersion(gv)\n\tfor _, obj := range types {\n\t\tt := reflect.TypeOf(obj)\n\t\tif t.Kind() != reflect.Pointer {\n\t\t\tpanic(\"All types must be pointers to structs.\")\n\t\t}\n\t\tt = t.Elem()\n\t\ts.AddKnownTypeWithName(gv.WithKind(t.Name()), obj)\n\t}\n}\n\n// AddKnownTypeWithName is like AddKnownTypes, but it lets you specify what this type should\n// be encoded as. Useful for testing when you don't want to make multiple packages to define\n// your structs. Version may not be empty - use the APIVersionInternal constant if you have a\n// type that does not have a formal version.\nfunc (s *Scheme) AddKnownTypeWithName(gvk schema.GroupVersionKind, obj Object) {\n\ts.addObservedVersion(gvk.GroupVersion())\n\tt := reflect.TypeOf(obj)\n\tif len(gvk.Version) == 0 {\n\t\tpanic(fmt.Sprintf(\"version is required on all types: %s %v\", gvk, t))\n\t}\n\tif t.Kind() != reflect.Pointer {\n\t\tpanic(\"All types must be pointers to structs.\")\n\t}\n\tt = t.Elem()\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(\"All types must be pointers to structs.\")\n\t}\n\n\tif oldT, found := s.gvkToType[gvk]; found && oldT != t {\n\t\tpanic(fmt.Sprintf(\"Double registration of different types for %v: old=%v.%v, new=%v.%v in scheme %q\", gvk, oldT.PkgPath(), oldT.Name(), t.PkgPath(), t.Name(), s.schemeName))\n\t}\n\n\ts.gvkToType[gvk] = t\n\n\tfor _, existingGvk := range s.typeToGVK[t] {\n\t\tif existingGvk == gvk {\n\t\t\treturn\n\t\t}\n\t}\n\ts.typeToGVK[t] = append(s.typeToGVK[t], gvk)\n\n\t// if the type implements DeepCopyInto(<obj>), register a self-conversion\n\tif m := reflect.ValueOf(obj).MethodByName(\"DeepCopyInto\"); m.IsValid() && m.Type().NumIn() == 1 && m.Type().NumOut() == 0 && m.Type().In(0) == reflect.TypeOf(obj) {\n\t\tif err := s.AddGeneratedConversionFunc(obj, obj, func(a, b interface{}, scope conversion.Scope) error {\n\t\t\t// copy a to b\n\t\t\treflect.ValueOf(a).MethodByName(\"DeepCopyInto\").Call([]reflect.Value{reflect.ValueOf(b)})\n\t\t\t// clear TypeMeta to match legacy reflective conversion\n\t\t\tb.(Object).GetObjectKind().SetGroupVersionKind(schema.GroupVersionKind{})\n\t\t\treturn nil\n\t\t}); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// KnownTypes returns the types known for the given version.\nfunc (s *Scheme) KnownTypes(gv schema.GroupVersion) map[string]reflect.Type {\n\ttypes := make(map[string]reflect.Type)\n\tfor gvk, t := range s.gvkToType {\n\t\tif gv != gvk.GroupVersion() {\n\t\t\tcontinue\n\t\t}\n\n\t\ttypes[gvk.Kind] = t\n\t}\n\treturn types\n}\n\n// VersionsForGroupKind returns the versions that a particular GroupKind can be converted to within the given group.\n// A GroupKind might be converted to a different group. That information is available in EquivalentResourceMapper.\nfunc (s *Scheme) VersionsForGroupKind(gk schema.GroupKind) []schema.GroupVersion {\n\tavailableVersions := []schema.GroupVersion{}\n\tfor gvk := range s.gvkToType {\n\t\tif gk != gvk.GroupKind() {\n\t\t\tcontinue\n\t\t}\n\n\t\tavailableVersions = append(availableVersions, gvk.GroupVersion())\n\t}\n\n\t// order the return for stability\n\tret := []schema.GroupVersion{}\n\tfor _, version := range s.PrioritizedVersionsForGroup(gk.Group) {\n\t\tfor _, availableVersion := range availableVersions {\n\t\t\tif version != availableVersion {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tret = append(ret, availableVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// AllKnownTypes returns the all known types.\nfunc (s *Scheme) AllKnownTypes() map[schema.GroupVersionKind]reflect.Type {\n\treturn s.gvkToType\n}\n\n// ObjectKinds returns all possible group,version,kind of the go object, true if the\n// object is considered unversioned, or an error if it's not a pointer or is unregistered.\nfunc (s *Scheme) ObjectKinds(obj Object) ([]schema.GroupVersionKind, bool, error) {\n\t// Unstructured objects are always considered to have their declared GVK\n\tif _, ok := obj.(Unstructured); ok {\n\t\t// we require that the GVK be populated in order to recognize the object\n\t\tgvk := obj.GetObjectKind().GroupVersionKind()\n\t\tif len(gvk.Kind) == 0 {\n\t\t\treturn nil, false, NewMissingKindErr(\"unstructured object has no kind\")\n\t\t}\n\t\tif len(gvk.Version) == 0 {\n\t\t\treturn nil, false, NewMissingVersionErr(\"unstructured object has no version\")\n\t\t}\n\t\treturn []schema.GroupVersionKind{gvk}, false, nil\n\t}\n\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\tt := v.Type()\n\n\tgvks, ok := s.typeToGVK[t]\n\tif !ok {\n\t\treturn nil, false, NewNotRegisteredErrForType(s.schemeName, t)\n\t}\n\t_, unversionedType := s.unversionedTypes[t]\n\n\treturn gvks, unversionedType, nil\n}\n\n// Recognizes returns true if the scheme is able to handle the provided group,version,kind\n// of an object.\nfunc (s *Scheme) Recognizes(gvk schema.GroupVersionKind) bool {\n\t_, exists := s.gvkToType[gvk]\n\treturn exists\n}\n\nfunc (s *Scheme) IsUnversioned(obj Object) (bool, bool) {\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn false, false\n\t}\n\tt := v.Type()\n\n\tif _, ok := s.typeToGVK[t]; !ok {\n\t\treturn false, false\n\t}\n\t_, ok := s.unversionedTypes[t]\n\treturn ok, true\n}\n\n// New returns a new API object of the given version and name, or an error if it hasn't\n// been registered. The version and kind fields must be specified.\nfunc (s *Scheme) New(kind schema.GroupVersionKind) (Object, error) {\n\tif t, exists := s.gvkToType[kind]; exists {\n\t\treturn reflect.New(t).Interface().(Object), nil\n\t}\n\n\tif t, exists := s.unversionedKinds[kind.Kind]; exists {\n\t\treturn reflect.New(t).Interface().(Object), nil\n\t}\n\treturn nil, NewNotRegisteredErrForKind(s.schemeName, kind)\n}\n\n// AddIgnoredConversionType identifies a pair of types that should be skipped by\n// conversion (because the data inside them is explicitly dropped during\n// conversion).\nfunc (s *Scheme) AddIgnoredConversionType(from, to interface{}) error {\n\treturn s.converter.RegisterIgnoredConversion(from, to)\n}\n\n// AddConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (s *Scheme) AddConversionFunc(a, b interface{}, fn conversion.ConversionFunc) error {\n\treturn s.converter.RegisterUntypedConversionFunc(a, b, fn)\n}\n\n// AddGeneratedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (s *Scheme) AddGeneratedConversionFunc(a, b interface{}, fn conversion.ConversionFunc) error {\n\treturn s.converter.RegisterGeneratedUntypedConversionFunc(a, b, fn)\n}\n\n// AddFieldLabelConversionFunc adds a conversion function to convert field selectors\n// of the given kind from the given version to internal version representation.\nfunc (s *Scheme) AddFieldLabelConversionFunc(gvk schema.GroupVersionKind, conversionFunc FieldLabelConversionFunc) error {\n\ts.fieldLabelConversionFuncs[gvk] = conversionFunc\n\treturn nil\n}\n\n// AddTypeDefaultingFunc registers a function that is passed a pointer to an\n// object and can default fields on the object. These functions will be invoked\n// when Default() is called. The function will never be called unless the\n// defaulted object matches srcType. If this function is invoked twice with the\n// same srcType, the fn passed to the later call will be used instead.\nfunc (s *Scheme) AddTypeDefaultingFunc(srcType Object, fn func(interface{})) {\n\ts.defaulterFuncs[reflect.TypeOf(srcType)] = fn\n}\n\n// Default sets defaults on the provided Object.\nfunc (s *Scheme) Default(src Object) {\n\tif fn, ok := s.defaulterFuncs[reflect.TypeOf(src)]; ok {\n\t\tfn(src)\n\t}\n}\n\n// Convert will attempt to convert in into out. Both must be pointers. For easy\n// testing of conversion functions. Returns an error if the conversion isn't\n// possible. You can call this with types that haven't been registered (for example,\n// a to test conversion of types that are nested within registered types). The\n// context interface is passed to the convertor. Convert also supports Unstructured\n// types and will convert them intelligently.\nfunc (s *Scheme) Convert(in, out interface{}, context interface{}) error {\n\tunstructuredIn, okIn := in.(Unstructured)\n\tunstructuredOut, okOut := out.(Unstructured)\n\tswitch {\n\tcase okIn && okOut:\n\t\t// converting unstructured input to an unstructured output is a straight copy - unstructured\n\t\t// is a \"smart holder\" and the contents are passed by reference between the two objects\n\t\tunstructuredOut.SetUnstructuredContent(unstructuredIn.UnstructuredContent())\n\t\treturn nil\n\n\tcase okOut:\n\t\t// if the output is an unstructured object, use the standard Go type to unstructured\n\t\t// conversion. The object must not be internal.\n\t\tobj, ok := in.(Object)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"unable to convert object type %T to Unstructured, must be a runtime.Object\", in)\n\t\t}\n\t\tgvks, unversioned, err := s.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgvk := gvks[0]\n\n\t\t// if no conversion is necessary, convert immediately\n\t\tif unversioned || gvk.Version != APIVersionInternal {\n\t\t\tcontent, err := DefaultUnstructuredConverter.ToUnstructured(in)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tunstructuredOut.SetUnstructuredContent(content)\n\t\t\tunstructuredOut.GetObjectKind().SetGroupVersionKind(gvk)\n\t\t\treturn nil\n\t\t}\n\n\t\t// attempt to convert the object to an external version first.\n\t\ttarget, ok := context.(GroupVersioner)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"unable to convert the internal object type %T to Unstructured without providing a preferred version to convert to\", in)\n\t\t}\n\t\t// Convert is implicitly unsafe, so we don't need to perform a safe conversion\n\t\tversioned, err := s.UnsafeConvertToVersion(obj, target)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontent, err := DefaultUnstructuredConverter.ToUnstructured(versioned)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tunstructuredOut.SetUnstructuredContent(content)\n\t\treturn nil\n\n\tcase okIn:\n\t\t// converting an unstructured object to any type is modeled by first converting\n\t\t// the input to a versioned type, then running standard conversions\n\t\ttyped, err := s.unstructuredToTyped(unstructuredIn)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tin = typed\n\t}\n\n\tmeta := s.generateConvertMeta(in)\n\tmeta.Context = context\n\treturn s.converter.Convert(in, out, meta)\n}\n\n// ConvertFieldLabel alters the given field label and value for an kind field selector from\n// versioned representation to an unversioned one or returns an error.\nfunc (s *Scheme) ConvertFieldLabel(gvk schema.GroupVersionKind, label, value string) (string, string, error) {\n\tconversionFunc, ok := s.fieldLabelConversionFuncs[gvk]\n\tif !ok {\n\t\treturn DefaultMetaV1FieldSelectorConversion(label, value)\n\t}\n\treturn conversionFunc(label, value)\n}\n\n// ConvertToVersion attempts to convert an input object to its matching Kind in another\n// version within this scheme. Will return an error if the provided version does not\n// contain the inKind (or a mapping by name defined with AddKnownTypeWithName). Will also\n// return an error if the conversion does not result in a valid Object being\n// returned. Passes target down to the conversion methods as the Context on the scope.\nfunc (s *Scheme) ConvertToVersion(in Object, target GroupVersioner) (Object, error) {\n\treturn s.convertToVersion(true, in, target)\n}\n\n// UnsafeConvertToVersion will convert in to the provided target if such a conversion is possible,\n// but does not guarantee the output object does not share fields with the input object. It attempts to be as\n// efficient as possible when doing conversion.\nfunc (s *Scheme) UnsafeConvertToVersion(in Object, target GroupVersioner) (Object, error) {\n\treturn s.convertToVersion(false, in, target)\n}\n\n// convertToVersion handles conversion with an optional copy.\nfunc (s *Scheme) convertToVersion(copy bool, in Object, target GroupVersioner) (Object, error) {\n\tvar t reflect.Type\n\n\tif u, ok := in.(Unstructured); ok {\n\t\ttyped, err := s.unstructuredToTyped(u)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tin = typed\n\t\t// unstructuredToTyped returns an Object, which must be a pointer to a struct.\n\t\tt = reflect.TypeOf(in).Elem()\n\n\t} else {\n\t\t// determine the incoming kinds with as few allocations as possible.\n\t\tt = reflect.TypeOf(in)\n\t\tif t.Kind() != reflect.Pointer {\n\t\t\treturn nil, fmt.Errorf(\"only pointer types may be converted: %v\", t)\n\t\t}\n\t\tt = t.Elem()\n\t\tif t.Kind() != reflect.Struct {\n\t\t\treturn nil, fmt.Errorf(\"only pointers to struct types may be converted: %v\", t)\n\t\t}\n\t}\n\n\tkinds, ok := s.typeToGVK[t]\n\tif !ok || len(kinds) == 0 {\n\t\treturn nil, NewNotRegisteredErrForType(s.schemeName, t)\n\t}\n\n\tgvk, ok := target.KindForGroupVersionKinds(kinds)\n\tif !ok {\n\t\t// try to see if this type is listed as unversioned (for legacy support)\n\t\t// TODO: when we move to server API versions, we should completely remove the unversioned concept\n\t\tif unversionedKind, ok := s.unversionedTypes[t]; ok {\n\t\t\tif gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{unversionedKind}); ok {\n\t\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t\t}\n\t\t\treturn copyAndSetTargetKind(copy, in, unversionedKind)\n\t\t}\n\t\treturn nil, NewNotRegisteredErrForTarget(s.schemeName, t, target)\n\t}\n\n\t// target wants to use the existing type, set kind and return (no conversion necessary)\n\tfor _, kind := range kinds {\n\t\tif gvk == kind {\n\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t}\n\t}\n\n\t// type is unversioned, no conversion necessary\n\tif unversionedKind, ok := s.unversionedTypes[t]; ok {\n\t\tif gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{unversionedKind}); ok {\n\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t}\n\t\treturn copyAndSetTargetKind(copy, in, unversionedKind)\n\t}\n\n\tout, err := s.New(gvk)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif copy {\n\t\tin = in.DeepCopyObject()\n\t}\n\n\tmeta := s.generateConvertMeta(in)\n\tmeta.Context = target\n\tif err := s.converter.Convert(in, out, meta); err != nil {\n\t\treturn nil, err\n\t}\n\n\tsetTargetKind(out, gvk)\n\treturn out, nil\n}\n\n// unstructuredToTyped attempts to transform an unstructured object to a typed\n// object if possible. It will return an error if conversion is not possible, or the versioned\n// Go form of the object. Note that this conversion will lose fields.\nfunc (s *Scheme) unstructuredToTyped(in Unstructured) (Object, error) {\n\t// the type must be something we recognize\n\tgvks, _, err := s.ObjectKinds(in)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttyped, err := s.New(gvks[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := DefaultUnstructuredConverter.FromUnstructured(in.UnstructuredContent(), typed); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to convert unstructured object to %v: %v\", gvks[0], err)\n\t}\n\treturn typed, nil\n}\n\n// generateConvertMeta constructs the meta value we pass to Convert.\nfunc (s *Scheme) generateConvertMeta(in interface{}) *conversion.Meta {\n\treturn s.converter.DefaultMeta(reflect.TypeOf(in))\n}\n\n// copyAndSetTargetKind performs a conditional copy before returning the object, or an error if copy was not successful.\nfunc copyAndSetTargetKind(copy bool, obj Object, kind schema.GroupVersionKind) (Object, error) {\n\tif copy {\n\t\tobj = obj.DeepCopyObject()\n\t}\n\tsetTargetKind(obj, kind)\n\treturn obj, nil\n}\n\n// setTargetKind sets the kind on an object, taking into account whether the target kind is the internal version.\nfunc setTargetKind(obj Object, kind schema.GroupVersionKind) {\n\tif kind.Version == APIVersionInternal {\n\t\t// internal is a special case\n\t\t// TODO: look at removing the need to special case this\n\t\tobj.GetObjectKind().SetGroupVersionKind(schema.GroupVersionKind{})\n\t\treturn\n\t}\n\tobj.GetObjectKind().SetGroupVersionKind(kind)\n}\n\n// SetVersionPriority allows specifying a precise order of priority. All specified versions must be in the same group,\n// and the specified order overwrites any previously specified order for this group\nfunc (s *Scheme) SetVersionPriority(versions ...schema.GroupVersion) error {\n\tgroups := sets.String{}\n\torder := []string{}\n\tfor _, version := range versions {\n\t\tif len(version.Version) == 0 || version.Version == APIVersionInternal {\n\t\t\treturn fmt.Errorf(\"internal versions cannot be prioritized: %v\", version)\n\t\t}\n\n\t\tgroups.Insert(version.Group)\n\t\torder = append(order, version.Version)\n\t}\n\tif len(groups) != 1 {\n\t\treturn fmt.Errorf(\"must register versions for exactly one group: %v\", strings.Join(groups.List(), \", \"))\n\t}\n\n\ts.versionPriority[groups.List()[0]] = order\n\treturn nil\n}\n\n// PrioritizedVersionsForGroup returns versions for a single group in priority order\nfunc (s *Scheme) PrioritizedVersionsForGroup(group string) []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor _, version := range s.versionPriority[group] {\n\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion.Group != group {\n\t\t\tcontinue\n\t\t}\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing == observedVersion {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// PrioritizedVersionsAllGroups returns all known versions in their priority order.  Groups are random, but\n// versions for a single group are prioritized\nfunc (s *Scheme) PrioritizedVersionsAllGroups() []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor group, versions := range s.versionPriority {\n\t\tfor _, version := range versions {\n\t\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t\t}\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing == observedVersion {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\treturn ret\n}\n\n// PreferredVersionAllGroups returns the most preferred version for every group.\n// group ordering is random.\nfunc (s *Scheme) PreferredVersionAllGroups() []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor group, versions := range s.versionPriority {\n\t\tfor _, version := range versions {\n\t\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t\t\tbreak\n\t\t}\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing.Group == observedVersion.Group {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// IsGroupRegistered returns true if types for the group have been registered with the scheme\nfunc (s *Scheme) IsGroupRegistered(group string) bool {\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion.Group == group {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsVersionRegistered returns true if types for the version have been registered with the scheme\nfunc (s *Scheme) IsVersionRegistered(version schema.GroupVersion) bool {\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion == version {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (s *Scheme) addObservedVersion(version schema.GroupVersion) {\n\tif len(version.Version) == 0 || version.Version == APIVersionInternal {\n\t\treturn\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion == version {\n\t\t\treturn\n\t\t}\n\t}\n\n\ts.observedVersions = append(s.observedVersions, version)\n}\n\nfunc (s *Scheme) Name() string {\n\treturn s.schemeName\n}\n\n// internalPackages are packages that ignored when creating a default reflector name. These packages are in the common\n// call chains to NewReflector, so they'd be low entropy names for reflectors\nvar internalPackages = []string{\"k8s.io/apimachinery/pkg/runtime/scheme.go\"}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/scheme_builder.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\n// SchemeBuilder collects functions that add things to a scheme. It's to allow\n// code to compile without explicitly referencing generated types. You should\n// declare one in each package that will have generated deep copy or conversion\n// functions.\ntype SchemeBuilder []func(*Scheme) error\n\n// AddToScheme applies all the stored functions to the scheme. A non-nil error\n// indicates that one function failed and the attempt was abandoned.\nfunc (sb *SchemeBuilder) AddToScheme(s *Scheme) error {\n\tfor _, f := range *sb {\n\t\tif err := f(s); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Register adds a scheme setup function to the list.\nfunc (sb *SchemeBuilder) Register(funcs ...func(*Scheme) error) {\n\tfor _, f := range funcs {\n\t\t*sb = append(*sb, f)\n\t}\n}\n\n// NewSchemeBuilder calls Register for you.\nfunc NewSchemeBuilder(funcs ...func(*Scheme) error) SchemeBuilder {\n\tvar sb SchemeBuilder\n\tsb.Register(funcs...)\n\treturn sb\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/codec_factory.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serializer\n\nimport (\n\t\"mime\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/json\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/protobuf\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/versioning\"\n)\n\n// serializerExtensions are for serializers that are conditionally compiled in\nvar serializerExtensions = []func(*runtime.Scheme) (serializerType, bool){}\n\ntype serializerType struct {\n\tAcceptContentTypes []string\n\tContentType        string\n\tFileExtensions     []string\n\t// EncodesAsText should be true if this content type can be represented safely in UTF-8\n\tEncodesAsText bool\n\n\tSerializer       runtime.Serializer\n\tPrettySerializer runtime.Serializer\n\tStrictSerializer runtime.Serializer\n\n\tAcceptStreamContentTypes []string\n\tStreamContentType        string\n\n\tFramer           runtime.Framer\n\tStreamSerializer runtime.Serializer\n}\n\nfunc newSerializersForScheme(scheme *runtime.Scheme, mf json.MetaFactory, options CodecFactoryOptions) []serializerType {\n\tjsonSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: false, Pretty: false, Strict: options.Strict},\n\t)\n\tjsonSerializerType := serializerType{\n\t\tAcceptContentTypes: []string{runtime.ContentTypeJSON},\n\t\tContentType:        runtime.ContentTypeJSON,\n\t\tFileExtensions:     []string{\"json\"},\n\t\tEncodesAsText:      true,\n\t\tSerializer:         jsonSerializer,\n\n\t\tFramer:           json.Framer,\n\t\tStreamSerializer: jsonSerializer,\n\t}\n\tif options.Pretty {\n\t\tjsonSerializerType.PrettySerializer = json.NewSerializerWithOptions(\n\t\t\tmf, scheme, scheme,\n\t\t\tjson.SerializerOptions{Yaml: false, Pretty: true, Strict: options.Strict},\n\t\t)\n\t}\n\n\tstrictJSONSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: false, Pretty: false, Strict: true},\n\t)\n\tjsonSerializerType.StrictSerializer = strictJSONSerializer\n\n\tyamlSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: true, Pretty: false, Strict: options.Strict},\n\t)\n\tstrictYAMLSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: true, Pretty: false, Strict: true},\n\t)\n\tprotoSerializer := protobuf.NewSerializer(scheme, scheme)\n\tprotoRawSerializer := protobuf.NewRawSerializer(scheme, scheme)\n\n\tserializers := []serializerType{\n\t\tjsonSerializerType,\n\t\t{\n\t\t\tAcceptContentTypes: []string{runtime.ContentTypeYAML},\n\t\t\tContentType:        runtime.ContentTypeYAML,\n\t\t\tFileExtensions:     []string{\"yaml\"},\n\t\t\tEncodesAsText:      true,\n\t\t\tSerializer:         yamlSerializer,\n\t\t\tStrictSerializer:   strictYAMLSerializer,\n\t\t},\n\t\t{\n\t\t\tAcceptContentTypes: []string{runtime.ContentTypeProtobuf},\n\t\t\tContentType:        runtime.ContentTypeProtobuf,\n\t\t\tFileExtensions:     []string{\"pb\"},\n\t\t\tSerializer:         protoSerializer,\n\t\t\t// note, strict decoding is unsupported for protobuf,\n\t\t\t// fall back to regular serializing\n\t\t\tStrictSerializer: protoSerializer,\n\n\t\t\tFramer:           protobuf.LengthDelimitedFramer,\n\t\t\tStreamSerializer: protoRawSerializer,\n\t\t},\n\t}\n\n\tfor _, fn := range serializerExtensions {\n\t\tif serializer, ok := fn(scheme); ok {\n\t\t\tserializers = append(serializers, serializer)\n\t\t}\n\t}\n\treturn serializers\n}\n\n// CodecFactory provides methods for retrieving codecs and serializers for specific\n// versions and content types.\ntype CodecFactory struct {\n\tscheme    *runtime.Scheme\n\tuniversal runtime.Decoder\n\taccepts   []runtime.SerializerInfo\n\n\tlegacySerializer runtime.Serializer\n}\n\n// CodecFactoryOptions holds the options for configuring CodecFactory behavior\ntype CodecFactoryOptions struct {\n\t// Strict configures all serializers in strict mode\n\tStrict bool\n\t// Pretty includes a pretty serializer along with the non-pretty one\n\tPretty bool\n}\n\n// CodecFactoryOptionsMutator takes a pointer to an options struct and then modifies it.\n// Functions implementing this type can be passed to the NewCodecFactory() constructor.\ntype CodecFactoryOptionsMutator func(*CodecFactoryOptions)\n\n// EnablePretty enables including a pretty serializer along with the non-pretty one\nfunc EnablePretty(options *CodecFactoryOptions) {\n\toptions.Pretty = true\n}\n\n// DisablePretty disables including a pretty serializer along with the non-pretty one\nfunc DisablePretty(options *CodecFactoryOptions) {\n\toptions.Pretty = false\n}\n\n// EnableStrict enables configuring all serializers in strict mode\nfunc EnableStrict(options *CodecFactoryOptions) {\n\toptions.Strict = true\n}\n\n// DisableStrict disables configuring all serializers in strict mode\nfunc DisableStrict(options *CodecFactoryOptions) {\n\toptions.Strict = false\n}\n\n// NewCodecFactory provides methods for retrieving serializers for the supported wire formats\n// and conversion wrappers to define preferred internal and external versions. In the future,\n// as the internal version is used less, callers may instead use a defaulting serializer and\n// only convert objects which are shared internally (Status, common API machinery).\n//\n// Mutators can be passed to change the CodecFactoryOptions before construction of the factory.\n// It is recommended to explicitly pass mutators instead of relying on defaults.\n// By default, Pretty is enabled -- this is conformant with previously supported behavior.\n//\n// TODO: allow other codecs to be compiled in?\n// TODO: accept a scheme interface\nfunc NewCodecFactory(scheme *runtime.Scheme, mutators ...CodecFactoryOptionsMutator) CodecFactory {\n\toptions := CodecFactoryOptions{Pretty: true}\n\tfor _, fn := range mutators {\n\t\tfn(&options)\n\t}\n\n\tserializers := newSerializersForScheme(scheme, json.DefaultMetaFactory, options)\n\treturn newCodecFactory(scheme, serializers)\n}\n\n// newCodecFactory is a helper for testing that allows a different metafactory to be specified.\nfunc newCodecFactory(scheme *runtime.Scheme, serializers []serializerType) CodecFactory {\n\tdecoders := make([]runtime.Decoder, 0, len(serializers))\n\tvar accepts []runtime.SerializerInfo\n\talreadyAccepted := make(map[string]struct{})\n\n\tvar legacySerializer runtime.Serializer\n\tfor _, d := range serializers {\n\t\tdecoders = append(decoders, d.Serializer)\n\t\tfor _, mediaType := range d.AcceptContentTypes {\n\t\t\tif _, ok := alreadyAccepted[mediaType]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\talreadyAccepted[mediaType] = struct{}{}\n\t\t\tinfo := runtime.SerializerInfo{\n\t\t\t\tMediaType:        d.ContentType,\n\t\t\t\tEncodesAsText:    d.EncodesAsText,\n\t\t\t\tSerializer:       d.Serializer,\n\t\t\t\tPrettySerializer: d.PrettySerializer,\n\t\t\t\tStrictSerializer: d.StrictSerializer,\n\t\t\t}\n\n\t\t\tmediaType, _, err := mime.ParseMediaType(info.MediaType)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tparts := strings.SplitN(mediaType, \"/\", 2)\n\t\t\tinfo.MediaTypeType = parts[0]\n\t\t\tinfo.MediaTypeSubType = parts[1]\n\n\t\t\tif d.StreamSerializer != nil {\n\t\t\t\tinfo.StreamSerializer = &runtime.StreamSerializerInfo{\n\t\t\t\t\tSerializer:    d.StreamSerializer,\n\t\t\t\t\tEncodesAsText: d.EncodesAsText,\n\t\t\t\t\tFramer:        d.Framer,\n\t\t\t\t}\n\t\t\t}\n\t\t\taccepts = append(accepts, info)\n\t\t\tif mediaType == runtime.ContentTypeJSON {\n\t\t\t\tlegacySerializer = d.Serializer\n\t\t\t}\n\t\t}\n\t}\n\tif legacySerializer == nil {\n\t\tlegacySerializer = serializers[0].Serializer\n\t}\n\n\treturn CodecFactory{\n\t\tscheme:    scheme,\n\t\tuniversal: recognizer.NewDecoder(decoders...),\n\n\t\taccepts: accepts,\n\n\t\tlegacySerializer: legacySerializer,\n\t}\n}\n\n// WithoutConversion returns a NegotiatedSerializer that performs no conversion, even if the\n// caller requests it.\nfunc (f CodecFactory) WithoutConversion() runtime.NegotiatedSerializer {\n\treturn WithoutConversionCodecFactory{f}\n}\n\n// SupportedMediaTypes returns the RFC2046 media types that this factory has serializers for.\nfunc (f CodecFactory) SupportedMediaTypes() []runtime.SerializerInfo {\n\treturn f.accepts\n}\n\n// LegacyCodec encodes output to a given API versions, and decodes output into the internal form from\n// any recognized source. The returned codec will always encode output to JSON. If a type is not\n// found in the list of versions an error will be returned.\n//\n// This method is deprecated - clients and servers should negotiate a serializer by mime-type and\n// invoke CodecForVersions. Callers that need only to read data should use UniversalDecoder().\n//\n// TODO: make this call exist only in pkg/api, and initialize it with the set of default versions.\n// All other callers will be forced to request a Codec directly.\nfunc (f CodecFactory) LegacyCodec(version ...schema.GroupVersion) runtime.Codec {\n\treturn versioning.NewDefaultingCodecForScheme(f.scheme, f.legacySerializer, f.universal, schema.GroupVersions(version), runtime.InternalGroupVersioner)\n}\n\n// UniversalDeserializer can convert any stored data recognized by this factory into a Go object that satisfies\n// runtime.Object. It does not perform conversion. It does not perform defaulting.\nfunc (f CodecFactory) UniversalDeserializer() runtime.Decoder {\n\treturn f.universal\n}\n\n// UniversalDecoder returns a runtime.Decoder capable of decoding all known API objects in all known formats. Used\n// by clients that do not need to encode objects but want to deserialize API objects stored on disk. Only decodes\n// objects in groups registered with the scheme. The GroupVersions passed may be used to select alternate\n// versions of objects to return - by default, runtime.APIVersionInternal is used. If any versions are specified,\n// unrecognized groups will be returned in the version they are encoded as (no conversion). This decoder performs\n// defaulting.\n//\n// TODO: the decoder will eventually be removed in favor of dealing with objects in their versioned form\n// TODO: only accept a group versioner\nfunc (f CodecFactory) UniversalDecoder(versions ...schema.GroupVersion) runtime.Decoder {\n\tvar versioner runtime.GroupVersioner\n\tif len(versions) == 0 {\n\t\tversioner = runtime.InternalGroupVersioner\n\t} else {\n\t\tversioner = schema.GroupVersions(versions)\n\t}\n\treturn f.CodecForVersions(nil, f.universal, nil, versioner)\n}\n\n// CodecForVersions creates a codec with the provided serializer. If an object is decoded and its group is not in the list,\n// it will default to runtime.APIVersionInternal. If encode is not specified for an object's group, the object is not\n// converted. If encode or decode are nil, no conversion is performed.\nfunc (f CodecFactory) CodecForVersions(encoder runtime.Encoder, decoder runtime.Decoder, encode runtime.GroupVersioner, decode runtime.GroupVersioner) runtime.Codec {\n\t// TODO: these are for backcompat, remove them in the future\n\tif encode == nil {\n\t\tencode = runtime.DisabledGroupVersioner\n\t}\n\tif decode == nil {\n\t\tdecode = runtime.InternalGroupVersioner\n\t}\n\treturn versioning.NewDefaultingCodecForScheme(f.scheme, encoder, decoder, encode, decode)\n}\n\n// DecoderToVersion returns a decoder that targets the provided group version.\nfunc (f CodecFactory) DecoderToVersion(decoder runtime.Decoder, gv runtime.GroupVersioner) runtime.Decoder {\n\treturn f.CodecForVersions(nil, decoder, nil, gv)\n}\n\n// EncoderForVersion returns an encoder that targets the provided group version.\nfunc (f CodecFactory) EncoderForVersion(encoder runtime.Encoder, gv runtime.GroupVersioner) runtime.Encoder {\n\treturn f.CodecForVersions(encoder, nil, gv, nil)\n}\n\n// WithoutConversionCodecFactory is a CodecFactory that will explicitly ignore requests to perform conversion.\n// This wrapper is used while code migrates away from using conversion (such as external clients) and in the future\n// will be unnecessary when we change the signature of NegotiatedSerializer.\ntype WithoutConversionCodecFactory struct {\n\tCodecFactory\n}\n\n// EncoderForVersion returns an encoder that does not do conversion, but does set the group version kind of the object\n// when serialized.\nfunc (f WithoutConversionCodecFactory) EncoderForVersion(serializer runtime.Encoder, version runtime.GroupVersioner) runtime.Encoder {\n\treturn runtime.WithVersionEncoder{\n\t\tVersion:     version,\n\t\tEncoder:     serializer,\n\t\tObjectTyper: f.CodecFactory.scheme,\n\t}\n}\n\n// DecoderToVersion returns an decoder that does not do conversion.\nfunc (f WithoutConversionCodecFactory) DecoderToVersion(serializer runtime.Decoder, _ runtime.GroupVersioner) runtime.Decoder {\n\treturn runtime.WithoutVersionDecoder{\n\t\tDecoder: serializer,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"strconv\"\n\n\tkjson \"sigs.k8s.io/json\"\n\t\"sigs.k8s.io/yaml\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/util/framer\"\n\tutilyaml \"k8s.io/apimachinery/pkg/util/yaml\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NewSerializer creates a JSON serializer that handles encoding versioned objects into the proper JSON form. If typer\n// is not nil, the object has the group, version, and kind fields set.\n// Deprecated: use NewSerializerWithOptions instead.\nfunc NewSerializer(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, pretty bool) *Serializer {\n\treturn NewSerializerWithOptions(meta, creater, typer, SerializerOptions{false, pretty, false})\n}\n\n// NewYAMLSerializer creates a YAML serializer that handles encoding versioned objects into the proper YAML form. If typer\n// is not nil, the object has the group, version, and kind fields set. This serializer supports only the subset of YAML that\n// matches JSON, and will error if constructs are used that do not serialize to JSON.\n// Deprecated: use NewSerializerWithOptions instead.\nfunc NewYAMLSerializer(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper) *Serializer {\n\treturn NewSerializerWithOptions(meta, creater, typer, SerializerOptions{true, false, false})\n}\n\n// NewSerializerWithOptions creates a JSON/YAML serializer that handles encoding versioned objects into the proper JSON/YAML\n// form. If typer is not nil, the object has the group, version, and kind fields set. Options are copied into the Serializer\n// and are immutable.\nfunc NewSerializerWithOptions(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, options SerializerOptions) *Serializer {\n\treturn &Serializer{\n\t\tmeta:       meta,\n\t\tcreater:    creater,\n\t\ttyper:      typer,\n\t\toptions:    options,\n\t\tidentifier: identifier(options),\n\t}\n}\n\n// identifier computes Identifier of Encoder based on the given options.\nfunc identifier(options SerializerOptions) runtime.Identifier {\n\tresult := map[string]string{\n\t\t\"name\":   \"json\",\n\t\t\"yaml\":   strconv.FormatBool(options.Yaml),\n\t\t\"pretty\": strconv.FormatBool(options.Pretty),\n\t\t\"strict\": strconv.FormatBool(options.Strict),\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for json Serializer: %v\", err)\n\t}\n\treturn runtime.Identifier(identifier)\n}\n\n// SerializerOptions holds the options which are used to configure a JSON/YAML serializer.\n// example:\n// (1) To configure a JSON serializer, set `Yaml` to `false`.\n// (2) To configure a YAML serializer, set `Yaml` to `true`.\n// (3) To configure a strict serializer that can return strictDecodingError, set `Strict` to `true`.\ntype SerializerOptions struct {\n\t// Yaml: configures the Serializer to work with JSON(false) or YAML(true).\n\t// When `Yaml` is enabled, this serializer only supports the subset of YAML that\n\t// matches JSON, and will error if constructs are used that do not serialize to JSON.\n\tYaml bool\n\n\t// Pretty: configures a JSON enabled Serializer(`Yaml: false`) to produce human-readable output.\n\t// This option is silently ignored when `Yaml` is `true`.\n\tPretty bool\n\n\t// Strict: configures the Serializer to return strictDecodingError's when duplicate fields are present decoding JSON or YAML.\n\t// Note that enabling this option is not as performant as the non-strict variant, and should not be used in fast paths.\n\tStrict bool\n}\n\n// Serializer handles encoding versioned objects into the proper JSON form\ntype Serializer struct {\n\tmeta    MetaFactory\n\toptions SerializerOptions\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n\n\tidentifier runtime.Identifier\n}\n\n// Serializer implements Serializer\nvar _ runtime.Serializer = &Serializer{}\nvar _ recognizer.RecognizingDecoder = &Serializer{}\n\n// gvkWithDefaults returns group kind and version defaulting from provided default\nfunc gvkWithDefaults(actual, defaultGVK schema.GroupVersionKind) schema.GroupVersionKind {\n\tif len(actual.Kind) == 0 {\n\t\tactual.Kind = defaultGVK.Kind\n\t}\n\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\tactual.Group = defaultGVK.Group\n\t\tactual.Version = defaultGVK.Version\n\t}\n\tif len(actual.Version) == 0 && actual.Group == defaultGVK.Group {\n\t\tactual.Version = defaultGVK.Version\n\t}\n\treturn actual\n}\n\n// Decode attempts to convert the provided data into YAML or JSON, extract the stored schema kind, apply the provided default gvk, and then\n// load that data into an object matching the desired schema kind or the provided into.\n// If into is *runtime.Unknown, the raw data will be extracted and no decoding will be performed.\n// If into is not registered with the typer, then the object will be straight decoded using normal JSON/YAML unmarshalling.\n// If into is provided and the original data is not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk.\n// If into is nil or data's gvk different from into's gvk, it will generate a new Object with ObjectCreater.New(gvk)\n// On success or most errors, the method will return the calculated schema kind.\n// The gvk calculate priority will be originalData > default gvk > into\nfunc (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tdata := originalData\n\tif s.options.Yaml {\n\t\taltered, err := yaml.YAMLToJSON(data)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tdata = altered\n\t}\n\n\tactual, err := s.meta.Interpret(data)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif gvk != nil {\n\t\t*actual = gvkWithDefaults(*actual, *gvk)\n\t}\n\n\tif unk, ok := into.(*runtime.Unknown); ok && unk != nil {\n\t\tunk.Raw = originalData\n\t\tunk.ContentType = runtime.ContentTypeJSON\n\t\tunk.GetObjectKind().SetGroupVersionKind(*actual)\n\t\treturn unk, actual, nil\n\t}\n\n\tif into != nil {\n\t\t_, isUnstructured := into.(runtime.Unstructured)\n\t\ttypes, _, err := s.typer.ObjectKinds(into)\n\t\tswitch {\n\t\tcase runtime.IsNotRegisteredError(err), isUnstructured:\n\t\t\tstrictErrs, err := s.unmarshal(into, data, originalData)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, actual, err\n\t\t\t}\n\n\t\t\t// when decoding directly into a provided unstructured object,\n\t\t\t// extract the actual gvk decoded from the provided data,\n\t\t\t// and ensure it is non-empty.\n\t\t\tif isUnstructured {\n\t\t\t\t*actual = into.GetObjectKind().GroupVersionKind()\n\t\t\t\tif len(actual.Kind) == 0 {\n\t\t\t\t\treturn nil, actual, runtime.NewMissingKindErr(string(originalData))\n\t\t\t\t}\n\t\t\t\t// TODO(109023): require apiVersion here as well once unstructuredJSONScheme#Decode does\n\t\t\t}\n\n\t\t\tif len(strictErrs) > 0 {\n\t\t\t\treturn into, actual, runtime.NewStrictDecodingError(strictErrs)\n\t\t\t}\n\t\t\treturn into, actual, nil\n\t\tcase err != nil:\n\t\t\treturn nil, actual, err\n\t\tdefault:\n\t\t\t*actual = gvkWithDefaults(*actual, types[0])\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, actual, runtime.NewMissingKindErr(string(originalData))\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, actual, runtime.NewMissingVersionErr(string(originalData))\n\t}\n\n\t// use the target if necessary\n\tobj, err := runtime.UseOrCreateObject(s.typer, s.creater, *actual, into)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tstrictErrs, err := s.unmarshal(obj, data, originalData)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t} else if len(strictErrs) > 0 {\n\t\treturn obj, actual, runtime.NewStrictDecodingError(strictErrs)\n\t}\n\treturn obj, actual, nil\n}\n\n// Encode serializes the provided object to the given writer.\nfunc (s *Serializer) Encode(obj runtime.Object, w io.Writer) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, w)\n\t}\n\treturn s.doEncode(obj, w)\n}\n\nfunc (s *Serializer) doEncode(obj runtime.Object, w io.Writer) error {\n\tif s.options.Yaml {\n\t\tjson, err := json.Marshal(obj)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdata, err := yaml.JSONToYAML(json)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\t}\n\n\tif s.options.Pretty {\n\t\tdata, err := json.MarshalIndent(obj, \"\", \"  \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\t}\n\tencoder := json.NewEncoder(w)\n\treturn encoder.Encode(obj)\n}\n\n// IsStrict indicates whether the serializer\n// uses strict decoding or not\nfunc (s *Serializer) IsStrict() bool {\n\treturn s.options.Strict\n}\n\nfunc (s *Serializer) unmarshal(into runtime.Object, data, originalData []byte) (strictErrs []error, err error) {\n\t// If the deserializer is non-strict, return here.\n\tif !s.options.Strict {\n\t\tif err := kjson.UnmarshalCaseSensitivePreserveInts(data, into); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, nil\n\t}\n\n\tif s.options.Yaml {\n\t\t// In strict mode pass the original data through the YAMLToJSONStrict converter.\n\t\t// This is done to catch duplicate fields in YAML that would have been dropped in the original YAMLToJSON conversion.\n\t\t// TODO: rework YAMLToJSONStrict to return warnings about duplicate fields without terminating so we don't have to do this twice.\n\t\t_, err := yaml.YAMLToJSONStrict(originalData)\n\t\tif err != nil {\n\t\t\tstrictErrs = append(strictErrs, err)\n\t\t}\n\t}\n\n\tvar strictJSONErrs []error\n\tif u, isUnstructured := into.(runtime.Unstructured); isUnstructured {\n\t\t// Unstructured is a custom unmarshaler that gets delegated\n\t\t// to, so in order to detect strict JSON errors we need\n\t\t// to unmarshal directly into the object.\n\t\tm := map[string]interface{}{}\n\t\tstrictJSONErrs, err = kjson.UnmarshalStrict(data, &m)\n\t\tu.SetUnstructuredContent(m)\n\t} else {\n\t\tstrictJSONErrs, err = kjson.UnmarshalStrict(data, into)\n\t}\n\tif err != nil {\n\t\t// fatal decoding error, not due to strictness\n\t\treturn nil, err\n\t}\n\tstrictErrs = append(strictErrs, strictJSONErrs...)\n\treturn strictErrs, nil\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *Serializer) Identifier() runtime.Identifier {\n\treturn s.identifier\n}\n\n// RecognizesData implements the RecognizingDecoder interface.\nfunc (s *Serializer) RecognizesData(data []byte) (ok, unknown bool, err error) {\n\tif s.options.Yaml {\n\t\t// we could potentially look for '---'\n\t\treturn false, true, nil\n\t}\n\treturn utilyaml.IsJSONBuffer(data), false, nil\n}\n\n// Framer is the default JSON framing behavior, with newlines delimiting individual objects.\nvar Framer = jsonFramer{}\n\ntype jsonFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (jsonFramer) NewFrameWriter(w io.Writer) io.Writer {\n\t// we can write JSON objects directly to the writer, because they are self-framing\n\treturn w\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (jsonFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\t// we need to extract the JSON chunks of data to pass to Decode()\n\treturn framer.NewJSONFramedReader(r)\n}\n\n// YAMLFramer is the default JSON framing behavior, with newlines delimiting individual objects.\nvar YAMLFramer = yamlFramer{}\n\ntype yamlFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (yamlFramer) NewFrameWriter(w io.Writer) io.Writer {\n\treturn yamlFrameWriter{w}\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (yamlFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\t// extract the YAML document chunks directly\n\treturn utilyaml.NewDocumentDecoder(r)\n}\n\ntype yamlFrameWriter struct {\n\tw io.Writer\n}\n\n// Write separates each document with the YAML document separator (`---` followed by line\n// break). Writers must write well formed YAML documents (include a final line break).\nfunc (w yamlFrameWriter) Write(data []byte) (n int, err error) {\n\tif _, err := w.w.Write([]byte(\"---\\n\")); err != nil {\n\t\treturn 0, err\n\t}\n\treturn w.w.Write(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/meta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// MetaFactory is used to store and retrieve the version and kind\n// information for JSON objects in a serializer.\ntype MetaFactory interface {\n\t// Interpret should return the version and kind of the wire-format of\n\t// the object.\n\tInterpret(data []byte) (*schema.GroupVersionKind, error)\n}\n\n// DefaultMetaFactory is a default factory for versioning objects in JSON. The object\n// in memory and in the default JSON serialization will use the \"kind\" and \"apiVersion\"\n// fields.\nvar DefaultMetaFactory = SimpleMetaFactory{}\n\n// SimpleMetaFactory provides default methods for retrieving the type and version of objects\n// that are identified with an \"apiVersion\" and \"kind\" fields in their JSON\n// serialization. It may be parameterized with the names of the fields in memory, or an\n// optional list of base structs to search for those fields in memory.\ntype SimpleMetaFactory struct {\n}\n\n// Interpret will return the APIVersion and Kind of the JSON wire-format\n// encoding of an object, or an error.\nfunc (SimpleMetaFactory) Interpret(data []byte) (*schema.GroupVersionKind, error) {\n\tfindKind := struct {\n\t\t// +optional\n\t\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\t\t// +optional\n\t\tKind string `json:\"kind,omitempty\"`\n\t}{}\n\tif err := json.Unmarshal(data, &findKind); err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't get version/kind; json parse error: %v\", err)\n\t}\n\tgv, err := schema.ParseGroupVersion(findKind.APIVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &schema.GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: findKind.Kind}, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/negotiated_codec.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serializer\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// TODO: We should split negotiated serializers that we can change versions on from those we can change\n// serialization formats on\ntype negotiatedSerializerWrapper struct {\n\tinfo runtime.SerializerInfo\n}\n\nfunc NegotiatedSerializerWrapper(info runtime.SerializerInfo) runtime.NegotiatedSerializer {\n\treturn &negotiatedSerializerWrapper{info}\n}\n\nfunc (n *negotiatedSerializerWrapper) SupportedMediaTypes() []runtime.SerializerInfo {\n\treturn []runtime.SerializerInfo{n.info}\n}\n\nfunc (n *negotiatedSerializerWrapper) EncoderForVersion(e runtime.Encoder, _ runtime.GroupVersioner) runtime.Encoder {\n\treturn e\n}\n\nfunc (n *negotiatedSerializerWrapper) DecoderToVersion(d runtime.Decoder, _gv runtime.GroupVersioner) runtime.Decoder {\n\treturn d\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package protobuf provides a Kubernetes serializer for the protobuf format.\npackage protobuf // import \"k8s.io/apimachinery/pkg/runtime/serializer/protobuf\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage protobuf\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"reflect\"\n\n\t\"github.com/gogo/protobuf/proto\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/util/framer\"\n\t\"k8s.io/klog/v2\"\n)\n\nvar (\n\t// protoEncodingPrefix serves as a magic number for an encoded protobuf message on this serializer. All\n\t// proto messages serialized by this schema will be preceded by the bytes 0x6b 0x38 0x73, with the fourth\n\t// byte being reserved for the encoding style. The only encoding style defined is 0x00, which means that\n\t// the rest of the byte stream is a message of type k8s.io.kubernetes.pkg.runtime.Unknown (proto2).\n\t//\n\t// See k8s.io/apimachinery/pkg/runtime/generated.proto for details of the runtime.Unknown message.\n\t//\n\t// This encoding scheme is experimental, and is subject to change at any time.\n\tprotoEncodingPrefix = []byte{0x6b, 0x38, 0x73, 0x00}\n)\n\ntype errNotMarshalable struct {\n\tt reflect.Type\n}\n\nfunc (e errNotMarshalable) Error() string {\n\treturn fmt.Sprintf(\"object %v does not implement the protobuf marshalling interface and cannot be encoded to a protobuf message\", e.t)\n}\n\nfunc (e errNotMarshalable) Status() metav1.Status {\n\treturn metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusNotAcceptable,\n\t\tReason:  metav1.StatusReason(\"NotAcceptable\"),\n\t\tMessage: e.Error(),\n\t}\n}\n\n// IsNotMarshalable checks the type of error, returns a boolean true if error is not nil and not marshalable false otherwise\nfunc IsNotMarshalable(err error) bool {\n\t_, ok := err.(errNotMarshalable)\n\treturn err != nil && ok\n}\n\n// NewSerializer creates a Protobuf serializer that handles encoding versioned objects into the proper wire form. If a typer\n// is passed, the encoded object will have group, version, and kind fields set. If typer is nil, the objects will be written\n// as-is (any type info passed with the object will be used).\nfunc NewSerializer(creater runtime.ObjectCreater, typer runtime.ObjectTyper) *Serializer {\n\treturn &Serializer{\n\t\tprefix:  protoEncodingPrefix,\n\t\tcreater: creater,\n\t\ttyper:   typer,\n\t}\n}\n\n// Serializer handles encoding versioned objects into the proper wire form\ntype Serializer struct {\n\tprefix  []byte\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n}\n\nvar _ runtime.Serializer = &Serializer{}\nvar _ runtime.EncoderWithAllocator = &Serializer{}\nvar _ recognizer.RecognizingDecoder = &Serializer{}\n\nconst serializerIdentifier runtime.Identifier = \"protobuf\"\n\n// Decode attempts to convert the provided data into a protobuf message, extract the stored schema kind, apply the provided default\n// gvk, and then load that data into an object matching the desired schema kind or the provided into. If into is *runtime.Unknown,\n// the raw data will be extracted and no decoding will be performed. If into is not registered with the typer, then the object will\n// be straight decoded using normal protobuf unmarshalling (the MarshalTo interface). If into is provided and the original data is\n// not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk. On success or most\n// errors, the method will return the calculated schema kind.\nfunc (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tprefixLen := len(s.prefix)\n\tswitch {\n\tcase len(originalData) == 0:\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty data\")\n\tcase len(originalData) < prefixLen || !bytes.Equal(s.prefix, originalData[:prefixLen]):\n\t\treturn nil, nil, fmt.Errorf(\"provided data does not appear to be a protobuf message, expected prefix %v\", s.prefix)\n\tcase len(originalData) == prefixLen:\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty body\")\n\t}\n\n\tdata := originalData[prefixLen:]\n\tunk := runtime.Unknown{}\n\tif err := unk.Unmarshal(data); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tactual := unk.GroupVersionKind()\n\tcopyKindDefaults(&actual, gvk)\n\n\tif intoUnknown, ok := into.(*runtime.Unknown); ok && intoUnknown != nil {\n\t\t*intoUnknown = unk\n\t\tif ok, _, _ := s.RecognizesData(unk.Raw); ok {\n\t\t\tintoUnknown.ContentType = runtime.ContentTypeProtobuf\n\t\t}\n\t\treturn intoUnknown, &actual, nil\n\t}\n\n\tif into != nil {\n\t\ttypes, _, err := s.typer.ObjectKinds(into)\n\t\tswitch {\n\t\tcase runtime.IsNotRegisteredError(err):\n\t\t\tpb, ok := into.(proto.Message)\n\t\t\tif !ok {\n\t\t\t\treturn nil, &actual, errNotMarshalable{reflect.TypeOf(into)}\n\t\t\t}\n\t\t\tif err := proto.Unmarshal(unk.Raw, pb); err != nil {\n\t\t\t\treturn nil, &actual, err\n\t\t\t}\n\t\t\treturn into, &actual, nil\n\t\tcase err != nil:\n\t\t\treturn nil, &actual, err\n\t\tdefault:\n\t\t\tcopyKindDefaults(&actual, &types[0])\n\t\t\t// if the result of defaulting did not set a version or group, ensure that at least group is set\n\t\t\t// (copyKindDefaults will not assign Group if version is already set). This guarantees that the group\n\t\t\t// of into is set if there is no better information from the caller or object.\n\t\t\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\t\t\tactual.Group = types[0].Group\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, &actual, runtime.NewMissingKindErr(fmt.Sprintf(\"%#v\", unk.TypeMeta))\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, &actual, runtime.NewMissingVersionErr(fmt.Sprintf(\"%#v\", unk.TypeMeta))\n\t}\n\n\treturn unmarshalToObject(s.typer, s.creater, &actual, into, unk.Raw)\n}\n\n// EncodeWithAllocator writes an object to the provided writer.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (s *Serializer) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn s.encode(obj, w, memAlloc)\n}\n\n// Encode serializes the provided object to the given writer.\nfunc (s *Serializer) Encode(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(obj, w, &runtime.SimpleAllocator{})\n}\n\nfunc (s *Serializer) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), func(obj runtime.Object, w io.Writer) error { return s.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn s.doEncode(obj, w, memAlloc)\n}\n\nfunc (s *Serializer) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif memAlloc == nil {\n\t\tklog.Error(\"a mandatory memory allocator wasn't provided, this might have a negative impact on performance, check invocations of EncodeWithAllocator method, falling back on runtime.SimpleAllocator\")\n\t\tmemAlloc = &runtime.SimpleAllocator{}\n\t}\n\tprefixSize := uint64(len(s.prefix))\n\n\tvar unk runtime.Unknown\n\tswitch t := obj.(type) {\n\tcase *runtime.Unknown:\n\t\testimatedSize := prefixSize + uint64(t.Size())\n\t\tdata := memAlloc.Allocate(estimatedSize)\n\t\ti, err := t.MarshalTo(data[prefixSize:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcopy(data, s.prefix)\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\tdefault:\n\t\tkind := obj.GetObjectKind().GroupVersionKind()\n\t\tunk = runtime.Unknown{\n\t\t\tTypeMeta: runtime.TypeMeta{\n\t\t\t\tKind:       kind.Kind,\n\t\t\t\tAPIVersion: kind.GroupVersion().String(),\n\t\t\t},\n\t\t}\n\t}\n\n\tswitch t := obj.(type) {\n\tcase bufferedMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalToSizedBuffer methods\n\t\tencodedSize := uint64(t.Size())\n\t\testimatedSize := prefixSize + estimateUnknownSize(&unk, encodedSize)\n\t\tdata := memAlloc.Allocate(estimatedSize)\n\n\t\ti, err := unk.NestedMarshalTo(data[prefixSize:], t, encodedSize)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcopy(data, s.prefix)\n\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\n\tcase proto.Marshaler:\n\t\t// this path performs extra allocations\n\t\tdata, err := t.Marshal()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tunk.Raw = data\n\n\t\testimatedSize := prefixSize + uint64(unk.Size())\n\t\tdata = memAlloc.Allocate(estimatedSize)\n\n\t\ti, err := unk.MarshalTo(data[prefixSize:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcopy(data, s.prefix)\n\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\n\tdefault:\n\t\t// TODO: marshal with a different content type and serializer (JSON for third party objects)\n\t\treturn errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *Serializer) Identifier() runtime.Identifier {\n\treturn serializerIdentifier\n}\n\n// RecognizesData implements the RecognizingDecoder interface.\nfunc (s *Serializer) RecognizesData(data []byte) (bool, bool, error) {\n\treturn bytes.HasPrefix(data, s.prefix), false, nil\n}\n\n// copyKindDefaults defaults dst to the value in src if dst does not have a value set.\nfunc copyKindDefaults(dst, src *schema.GroupVersionKind) {\n\tif src == nil {\n\t\treturn\n\t}\n\t// apply kind and version defaulting from provided default\n\tif len(dst.Kind) == 0 {\n\t\tdst.Kind = src.Kind\n\t}\n\tif len(dst.Version) == 0 && len(src.Version) > 0 {\n\t\tdst.Group = src.Group\n\t\tdst.Version = src.Version\n\t}\n}\n\n// bufferedMarshaller describes a more efficient marshalling interface that can avoid allocating multiple\n// byte buffers by pre-calculating the size of the final buffer needed.\ntype bufferedMarshaller interface {\n\tproto.Sizer\n\truntime.ProtobufMarshaller\n}\n\n// Like bufferedMarshaller, but is able to marshal backwards, which is more efficient since it doesn't call Size() as frequently.\ntype bufferedReverseMarshaller interface {\n\tproto.Sizer\n\truntime.ProtobufReverseMarshaller\n}\n\n// estimateUnknownSize returns the expected bytes consumed by a given runtime.Unknown\n// object with a nil RawJSON struct and the expected size of the provided buffer. The\n// returned size will not be correct if RawJSOn is set on unk.\nfunc estimateUnknownSize(unk *runtime.Unknown, byteSize uint64) uint64 {\n\tsize := uint64(unk.Size())\n\t// protobuf uses 1 byte for the tag, a varint for the length of the array (at most 8 bytes - uint64 - here),\n\t// and the size of the array.\n\tsize += 1 + 8 + byteSize\n\treturn size\n}\n\n// NewRawSerializer creates a Protobuf serializer that handles encoding versioned objects into the proper wire form. If typer\n// is not nil, the object has the group, version, and kind fields set. This serializer does not provide type information for the\n// encoded object, and thus is not self describing (callers must know what type is being described in order to decode).\n//\n// This encoding scheme is experimental, and is subject to change at any time.\nfunc NewRawSerializer(creater runtime.ObjectCreater, typer runtime.ObjectTyper) *RawSerializer {\n\treturn &RawSerializer{\n\t\tcreater: creater,\n\t\ttyper:   typer,\n\t}\n}\n\n// RawSerializer encodes and decodes objects without adding a runtime.Unknown wrapper (objects are encoded without identifying\n// type).\ntype RawSerializer struct {\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n}\n\nvar _ runtime.Serializer = &RawSerializer{}\n\nconst rawSerializerIdentifier runtime.Identifier = \"raw-protobuf\"\n\n// Decode attempts to convert the provided data into a protobuf message, extract the stored schema kind, apply the provided default\n// gvk, and then load that data into an object matching the desired schema kind or the provided into. If into is *runtime.Unknown,\n// the raw data will be extracted and no decoding will be performed. If into is not registered with the typer, then the object will\n// be straight decoded using normal protobuf unmarshalling (the MarshalTo interface). If into is provided and the original data is\n// not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk. On success or most\n// errors, the method will return the calculated schema kind.\nfunc (s *RawSerializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tif into == nil {\n\t\treturn nil, nil, fmt.Errorf(\"this serializer requires an object to decode into: %#v\", s)\n\t}\n\n\tif len(originalData) == 0 {\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty data\")\n\t}\n\tdata := originalData\n\n\tactual := &schema.GroupVersionKind{}\n\tcopyKindDefaults(actual, gvk)\n\n\tif intoUnknown, ok := into.(*runtime.Unknown); ok && intoUnknown != nil {\n\t\tintoUnknown.Raw = data\n\t\tintoUnknown.ContentEncoding = \"\"\n\t\tintoUnknown.ContentType = runtime.ContentTypeProtobuf\n\t\tintoUnknown.SetGroupVersionKind(*actual)\n\t\treturn intoUnknown, actual, nil\n\t}\n\n\ttypes, _, err := s.typer.ObjectKinds(into)\n\tswitch {\n\tcase runtime.IsNotRegisteredError(err):\n\t\tpb, ok := into.(proto.Message)\n\t\tif !ok {\n\t\t\treturn nil, actual, errNotMarshalable{reflect.TypeOf(into)}\n\t\t}\n\t\tif err := proto.Unmarshal(data, pb); err != nil {\n\t\t\treturn nil, actual, err\n\t\t}\n\t\treturn into, actual, nil\n\tcase err != nil:\n\t\treturn nil, actual, err\n\tdefault:\n\t\tcopyKindDefaults(actual, &types[0])\n\t\t// if the result of defaulting did not set a version or group, ensure that at least group is set\n\t\t// (copyKindDefaults will not assign Group if version is already set). This guarantees that the group\n\t\t// of into is set if there is no better information from the caller or object.\n\t\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\t\tactual.Group = types[0].Group\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, actual, runtime.NewMissingKindErr(\"<protobuf encoded body - must provide default type>\")\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, actual, runtime.NewMissingVersionErr(\"<protobuf encoded body - must provide default type>\")\n\t}\n\n\treturn unmarshalToObject(s.typer, s.creater, actual, into, data)\n}\n\n// unmarshalToObject is the common code between decode in the raw and normal serializer.\nfunc unmarshalToObject(typer runtime.ObjectTyper, creater runtime.ObjectCreater, actual *schema.GroupVersionKind, into runtime.Object, data []byte) (runtime.Object, *schema.GroupVersionKind, error) {\n\t// use the target if necessary\n\tobj, err := runtime.UseOrCreateObject(typer, creater, *actual, into)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tpb, ok := obj.(proto.Message)\n\tif !ok {\n\t\treturn nil, actual, errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n\tif err := proto.Unmarshal(data, pb); err != nil {\n\t\treturn nil, actual, err\n\t}\n\tif actual != nil {\n\t\tobj.GetObjectKind().SetGroupVersionKind(*actual)\n\t}\n\treturn obj, actual, nil\n}\n\n// Encode serializes the provided object to the given writer. Overrides is ignored.\nfunc (s *RawSerializer) Encode(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(obj, w, &runtime.SimpleAllocator{})\n}\n\n// EncodeWithAllocator writes an object to the provided writer.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (s *RawSerializer) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn s.encode(obj, w, memAlloc)\n}\n\nfunc (s *RawSerializer) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), func(obj runtime.Object, w io.Writer) error { return s.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn s.doEncode(obj, w, memAlloc)\n}\n\nfunc (s *RawSerializer) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif memAlloc == nil {\n\t\tklog.Error(\"a mandatory memory allocator wasn't provided, this might have a negative impact on performance, check invocations of EncodeWithAllocator method, falling back on runtime.SimpleAllocator\")\n\t\tmemAlloc = &runtime.SimpleAllocator{}\n\t}\n\tswitch t := obj.(type) {\n\tcase bufferedReverseMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalToSizedBuffer methods\n\t\tencodedSize := uint64(t.Size())\n\t\tdata := memAlloc.Allocate(encodedSize)\n\n\t\tn, err := t.MarshalToSizedBuffer(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data[:n])\n\t\treturn err\n\n\tcase bufferedMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalTo methods\n\t\tencodedSize := uint64(t.Size())\n\t\tdata := memAlloc.Allocate(encodedSize)\n\n\t\tn, err := t.MarshalTo(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data[:n])\n\t\treturn err\n\n\tcase proto.Marshaler:\n\t\t// this path performs extra allocations\n\t\tdata, err := t.Marshal()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\n\tdefault:\n\t\treturn errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *RawSerializer) Identifier() runtime.Identifier {\n\treturn rawSerializerIdentifier\n}\n\n// LengthDelimitedFramer is exported variable of type lengthDelimitedFramer\nvar LengthDelimitedFramer = lengthDelimitedFramer{}\n\n// Provides length delimited frame reader and writer methods\ntype lengthDelimitedFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (lengthDelimitedFramer) NewFrameWriter(w io.Writer) io.Writer {\n\treturn framer.NewLengthDelimitedFrameWriter(w)\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (lengthDelimitedFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\treturn framer.NewLengthDelimitedFrameReader(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage recognizer\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype RecognizingDecoder interface {\n\truntime.Decoder\n\t// RecognizesData should return true if the input provided in the provided reader\n\t// belongs to this decoder, or an error if the data could not be read or is ambiguous.\n\t// Unknown is true if the data could not be determined to match the decoder type.\n\t// Decoders should assume that they can read as much of peek as they need (as the caller\n\t// provides) and may return unknown if the data provided is not sufficient to make a\n\t// a determination. When peek returns EOF that may mean the end of the input or the\n\t// end of buffered input - recognizers should return the best guess at that time.\n\tRecognizesData(peek []byte) (ok, unknown bool, err error)\n}\n\n// NewDecoder creates a decoder that will attempt multiple decoders in an order defined\n// by:\n//\n// 1. The decoder implements RecognizingDecoder and identifies the data\n// 2. All other decoders, and any decoder that returned true for unknown.\n//\n// The order passed to the constructor is preserved within those priorities.\nfunc NewDecoder(decoders ...runtime.Decoder) runtime.Decoder {\n\treturn &decoder{\n\t\tdecoders: decoders,\n\t}\n}\n\ntype decoder struct {\n\tdecoders []runtime.Decoder\n}\n\nvar _ RecognizingDecoder = &decoder{}\n\nfunc (d *decoder) RecognizesData(data []byte) (bool, bool, error) {\n\tvar (\n\t\tlastErr    error\n\t\tanyUnknown bool\n\t)\n\tfor _, r := range d.decoders {\n\t\tswitch t := r.(type) {\n\t\tcase RecognizingDecoder:\n\t\t\tok, unknown, err := t.RecognizesData(data)\n\t\t\tif err != nil {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tanyUnknown = anyUnknown || unknown\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn true, false, nil\n\t\t}\n\t}\n\treturn false, anyUnknown, lastErr\n}\n\nfunc (d *decoder) Decode(data []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tvar (\n\t\tlastErr error\n\t\tskipped []runtime.Decoder\n\t)\n\n\t// try recognizers, record any decoders we need to give a chance later\n\tfor _, r := range d.decoders {\n\t\tswitch t := r.(type) {\n\t\tcase RecognizingDecoder:\n\t\t\tok, unknown, err := t.RecognizesData(data)\n\t\t\tif err != nil {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif unknown {\n\t\t\t\tskipped = append(skipped, t)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn r.Decode(data, gvk, into)\n\t\tdefault:\n\t\t\tskipped = append(skipped, t)\n\t\t}\n\t}\n\n\t// try recognizers that returned unknown or didn't recognize their data\n\tfor _, r := range skipped {\n\t\tout, actual, err := r.Decode(data, gvk, into)\n\t\tif err != nil {\n\t\t\t// if we got an object back from the decoder, and the\n\t\t\t// error was a strict decoding error (e.g. unknown or\n\t\t\t// duplicate fields), we still consider the recognizer\n\t\t\t// to have understood the object\n\t\t\tif out == nil || !runtime.IsStrictDecodingError(err) {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\treturn out, actual, err\n\t}\n\n\tif lastErr == nil {\n\t\tlastErr = fmt.Errorf(\"no serialization format matched the provided data\")\n\t}\n\treturn nil, nil, lastErr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming/streaming.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package streaming implements encoder and decoder for streams\n// of runtime.Objects over io.Writer/Readers.\npackage streaming\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// Encoder is a runtime.Encoder on a stream.\ntype Encoder interface {\n\t// Encode will write the provided object to the stream or return an error. It obeys the same\n\t// contract as runtime.VersionedEncoder.\n\tEncode(obj runtime.Object) error\n}\n\n// Decoder is a runtime.Decoder from a stream.\ntype Decoder interface {\n\t// Decode will return io.EOF when no more objects are available.\n\tDecode(defaults *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error)\n\t// Close closes the underlying stream.\n\tClose() error\n}\n\n// Serializer is a factory for creating encoders and decoders that work over streams.\ntype Serializer interface {\n\tNewEncoder(w io.Writer) Encoder\n\tNewDecoder(r io.ReadCloser) Decoder\n}\n\ntype decoder struct {\n\treader    io.ReadCloser\n\tdecoder   runtime.Decoder\n\tbuf       []byte\n\tmaxBytes  int\n\tresetRead bool\n}\n\n// NewDecoder creates a streaming decoder that reads object chunks from r and decodes them with d.\n// The reader is expected to return ErrShortRead if the provided buffer is not large enough to read\n// an entire object.\nfunc NewDecoder(r io.ReadCloser, d runtime.Decoder) Decoder {\n\treturn &decoder{\n\t\treader:   r,\n\t\tdecoder:  d,\n\t\tbuf:      make([]byte, 1024),\n\t\tmaxBytes: 16 * 1024 * 1024,\n\t}\n}\n\nvar ErrObjectTooLarge = fmt.Errorf(\"object to decode was longer than maximum allowed size\")\n\n// Decode reads the next object from the stream and decodes it.\nfunc (d *decoder) Decode(defaults *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tbase := 0\n\tfor {\n\t\tn, err := d.reader.Read(d.buf[base:])\n\t\tif err == io.ErrShortBuffer {\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, nil, fmt.Errorf(\"got short buffer with n=0, base=%d, cap=%d\", base, cap(d.buf))\n\t\t\t}\n\t\t\tif d.resetRead {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// double the buffer size up to maxBytes\n\t\t\tif len(d.buf) < d.maxBytes {\n\t\t\t\tbase += n\n\t\t\t\td.buf = append(d.buf, make([]byte, len(d.buf))...)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// must read the rest of the frame (until we stop getting ErrShortBuffer)\n\t\t\td.resetRead = true\n\t\t\treturn nil, nil, ErrObjectTooLarge\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tif d.resetRead {\n\t\t\t// now that we have drained the large read, continue\n\t\t\td.resetRead = false\n\t\t\tcontinue\n\t\t}\n\t\tbase += n\n\t\tbreak\n\t}\n\treturn d.decoder.Decode(d.buf[:base], defaults, into)\n}\n\nfunc (d *decoder) Close() error {\n\treturn d.reader.Close()\n}\n\ntype encoder struct {\n\twriter  io.Writer\n\tencoder runtime.Encoder\n\tbuf     *bytes.Buffer\n}\n\n// NewEncoder returns a new streaming encoder.\nfunc NewEncoder(w io.Writer, e runtime.Encoder) Encoder {\n\treturn &encoder{\n\t\twriter:  w,\n\t\tencoder: e,\n\t\tbuf:     &bytes.Buffer{},\n\t}\n}\n\n// Encode writes the provided object to the nested writer.\nfunc (e *encoder) Encode(obj runtime.Object) error {\n\tif err := e.encoder.Encode(obj, e.buf); err != nil {\n\t\treturn err\n\t}\n\t_, err := e.writer.Write(e.buf.Bytes())\n\te.buf.Reset()\n\treturn err\n}\n\ntype encoderWithAllocator struct {\n\twriter       io.Writer\n\tencoder      runtime.EncoderWithAllocator\n\tmemAllocator runtime.MemoryAllocator\n}\n\n// NewEncoderWithAllocator returns a new streaming encoder\nfunc NewEncoderWithAllocator(w io.Writer, e runtime.EncoderWithAllocator, a runtime.MemoryAllocator) Encoder {\n\treturn &encoderWithAllocator{\n\t\twriter:       w,\n\t\tencoder:      e,\n\t\tmemAllocator: a,\n\t}\n}\n\n// Encode writes the provided object to the nested writer\nfunc (e *encoderWithAllocator) Encode(obj runtime.Object) error {\n\treturn e.encoder.EncodeWithAllocator(obj, e.writer, e.memAllocator)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage versioning\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NewDefaultingCodecForScheme is a convenience method for callers that are using a scheme.\nfunc NewDefaultingCodecForScheme(\n\t// TODO: I should be a scheme interface?\n\tscheme *runtime.Scheme,\n\tencoder runtime.Encoder,\n\tdecoder runtime.Decoder,\n\tencodeVersion runtime.GroupVersioner,\n\tdecodeVersion runtime.GroupVersioner,\n) runtime.Codec {\n\treturn NewCodec(encoder, decoder, runtime.UnsafeObjectConvertor(scheme), scheme, scheme, scheme, encodeVersion, decodeVersion, scheme.Name())\n}\n\n// NewCodec takes objects in their internal versions and converts them to external versions before\n// serializing them. It assumes the serializer provided to it only deals with external versions.\n// This class is also a serializer, but is generally used with a specific version.\nfunc NewCodec(\n\tencoder runtime.Encoder,\n\tdecoder runtime.Decoder,\n\tconvertor runtime.ObjectConvertor,\n\tcreater runtime.ObjectCreater,\n\ttyper runtime.ObjectTyper,\n\tdefaulter runtime.ObjectDefaulter,\n\tencodeVersion runtime.GroupVersioner,\n\tdecodeVersion runtime.GroupVersioner,\n\toriginalSchemeName string,\n) runtime.Codec {\n\tinternal := &codec{\n\t\tencoder:   encoder,\n\t\tdecoder:   decoder,\n\t\tconvertor: convertor,\n\t\tcreater:   creater,\n\t\ttyper:     typer,\n\t\tdefaulter: defaulter,\n\n\t\tencodeVersion: encodeVersion,\n\t\tdecodeVersion: decodeVersion,\n\n\t\tidentifier: identifier(encodeVersion, encoder),\n\n\t\toriginalSchemeName: originalSchemeName,\n\t}\n\treturn internal\n}\n\ntype codec struct {\n\tencoder   runtime.Encoder\n\tdecoder   runtime.Decoder\n\tconvertor runtime.ObjectConvertor\n\tcreater   runtime.ObjectCreater\n\ttyper     runtime.ObjectTyper\n\tdefaulter runtime.ObjectDefaulter\n\n\tencodeVersion runtime.GroupVersioner\n\tdecodeVersion runtime.GroupVersioner\n\n\tidentifier runtime.Identifier\n\n\t// originalSchemeName is optional, but when filled in it holds the name of the scheme from which this codec originates\n\toriginalSchemeName string\n}\n\nvar _ runtime.EncoderWithAllocator = &codec{}\n\nvar identifiersMap sync.Map\n\ntype codecIdentifier struct {\n\tEncodeGV string `json:\"encodeGV,omitempty\"`\n\tEncoder  string `json:\"encoder,omitempty\"`\n\tName     string `json:\"name,omitempty\"`\n}\n\n// identifier computes Identifier of Encoder based on codec parameters.\nfunc identifier(encodeGV runtime.GroupVersioner, encoder runtime.Encoder) runtime.Identifier {\n\tresult := codecIdentifier{\n\t\tName: \"versioning\",\n\t}\n\n\tif encodeGV != nil {\n\t\tresult.EncodeGV = encodeGV.Identifier()\n\t}\n\tif encoder != nil {\n\t\tresult.Encoder = string(encoder.Identifier())\n\t}\n\tif id, ok := identifiersMap.Load(result); ok {\n\t\treturn id.(runtime.Identifier)\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for codec: %v\", err)\n\t}\n\tidentifiersMap.Store(result, runtime.Identifier(identifier))\n\treturn runtime.Identifier(identifier)\n}\n\n// Decode attempts a decode of the object, then tries to convert it to the internal version. If into is provided and the decoding is\n// successful, the returned runtime.Object will be the value passed as into. Note that this may bypass conversion if you pass an\n// into that matches the serialized version.\nfunc (c *codec) Decode(data []byte, defaultGVK *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\t// If the into object is unstructured and expresses an opinion about its group/version,\n\t// create a new instance of the type so we always exercise the conversion path (skips short-circuiting on `into == obj`)\n\tdecodeInto := into\n\tif into != nil {\n\t\tif _, ok := into.(runtime.Unstructured); ok && !into.GetObjectKind().GroupVersionKind().GroupVersion().Empty() {\n\t\t\tdecodeInto = reflect.New(reflect.TypeOf(into).Elem()).Interface().(runtime.Object)\n\t\t}\n\t}\n\n\tvar strictDecodingErrs []error\n\tobj, gvk, err := c.decoder.Decode(data, defaultGVK, decodeInto)\n\tif err != nil {\n\t\tif strictErr, ok := runtime.AsStrictDecodingError(err); obj != nil && ok {\n\t\t\t// save the strictDecodingError and let the caller decide what to do with it\n\t\t\tstrictDecodingErrs = append(strictDecodingErrs, strictErr.Errors()...)\n\t\t} else {\n\t\t\treturn nil, gvk, err\n\t\t}\n\t}\n\n\tif d, ok := obj.(runtime.NestedObjectDecoder); ok {\n\t\tif err := d.DecodeNestedObjects(runtime.WithoutVersionDecoder{Decoder: c.decoder}); err != nil {\n\t\t\tif strictErr, ok := runtime.AsStrictDecodingError(err); ok {\n\t\t\t\t// save the strictDecodingError let and the caller decide what to do with it\n\t\t\t\tstrictDecodingErrs = append(strictDecodingErrs, strictErr.Errors()...)\n\t\t\t} else {\n\t\t\t\treturn nil, gvk, err\n\n\t\t\t}\n\t\t}\n\t}\n\n\t// aggregate the strict decoding errors into one\n\tvar strictDecodingErr error\n\tif len(strictDecodingErrs) > 0 {\n\t\tstrictDecodingErr = runtime.NewStrictDecodingError(strictDecodingErrs)\n\t}\n\t// if we specify a target, use generic conversion.\n\tif into != nil {\n\t\t// perform defaulting if requested\n\t\tif c.defaulter != nil {\n\t\t\tc.defaulter.Default(obj)\n\t\t}\n\n\t\t// Short-circuit conversion if the into object is same object\n\t\tif into == obj {\n\t\t\treturn into, gvk, strictDecodingErr\n\t\t}\n\n\t\tif err := c.convertor.Convert(obj, into, c.decodeVersion); err != nil {\n\t\t\treturn nil, gvk, err\n\t\t}\n\n\t\treturn into, gvk, strictDecodingErr\n\t}\n\n\t// perform defaulting if requested\n\tif c.defaulter != nil {\n\t\tc.defaulter.Default(obj)\n\t}\n\n\tout, err := c.convertor.ConvertToVersion(obj, c.decodeVersion)\n\tif err != nil {\n\t\treturn nil, gvk, err\n\t}\n\treturn out, gvk, strictDecodingErr\n}\n\n// EncodeWithAllocator ensures the provided object is output in the appropriate group and version, invoking\n// conversion if necessary. Unversioned objects (according to the ObjectTyper) are output as is.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (c *codec) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn c.encode(obj, w, memAlloc)\n}\n\n// Encode ensures the provided object is output in the appropriate group and version, invoking\n// conversion if necessary. Unversioned objects (according to the ObjectTyper) are output as is.\nfunc (c *codec) Encode(obj runtime.Object, w io.Writer) error {\n\treturn c.encode(obj, w, nil)\n}\n\nfunc (c *codec) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(c.Identifier(), func(obj runtime.Object, w io.Writer) error { return c.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn c.doEncode(obj, w, memAlloc)\n}\n\nfunc (c *codec) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tencodeFn := c.encoder.Encode\n\tif memAlloc != nil {\n\t\tif encoder, supportsAllocator := c.encoder.(runtime.EncoderWithAllocator); supportsAllocator {\n\t\t\tencodeFn = func(obj runtime.Object, w io.Writer) error {\n\t\t\t\treturn encoder.EncodeWithAllocator(obj, w, memAlloc)\n\t\t\t}\n\t\t} else {\n\t\t\tklog.V(6).Infof(\"a memory allocator was provided but the encoder %s doesn't implement the runtime.EncoderWithAllocator, using regular encoder.Encode method\", c.encoder.Identifier())\n\t\t}\n\t}\n\tswitch obj := obj.(type) {\n\tcase *runtime.Unknown:\n\t\treturn encodeFn(obj, w)\n\tcase runtime.Unstructured:\n\t\t// An unstructured list can contain objects of multiple group version kinds. don't short-circuit just\n\t\t// because the top-level type matches our desired destination type. actually send the object to the converter\n\t\t// to give it a chance to convert the list items if needed.\n\t\tif _, ok := obj.(*unstructured.UnstructuredList); !ok {\n\t\t\t// avoid conversion roundtrip if GVK is the right one already or is empty (yes, this is a hack, but the old behaviour we rely on in kubectl)\n\t\t\tobjGVK := obj.GetObjectKind().GroupVersionKind()\n\t\t\tif len(objGVK.Version) == 0 {\n\t\t\t\treturn encodeFn(obj, w)\n\t\t\t}\n\t\t\ttargetGVK, ok := c.encodeVersion.KindForGroupVersionKinds([]schema.GroupVersionKind{objGVK})\n\t\t\tif !ok {\n\t\t\t\treturn runtime.NewNotRegisteredGVKErrForTarget(c.originalSchemeName, objGVK, c.encodeVersion)\n\t\t\t}\n\t\t\tif targetGVK == objGVK {\n\t\t\t\treturn encodeFn(obj, w)\n\t\t\t}\n\t\t}\n\t}\n\n\tgvks, isUnversioned, err := c.typer.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobjectKind := obj.GetObjectKind()\n\told := objectKind.GroupVersionKind()\n\t// restore the old GVK after encoding\n\tdefer objectKind.SetGroupVersionKind(old)\n\n\tif c.encodeVersion == nil || isUnversioned {\n\t\tif e, ok := obj.(runtime.NestedObjectEncoder); ok {\n\t\t\tif err := e.EncodeNestedObjects(runtime.WithVersionEncoder{Encoder: c.encoder, ObjectTyper: c.typer}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tobjectKind.SetGroupVersionKind(gvks[0])\n\t\treturn encodeFn(obj, w)\n\t}\n\n\t// Perform a conversion if necessary\n\tout, err := c.convertor.ConvertToVersion(obj, c.encodeVersion)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif e, ok := out.(runtime.NestedObjectEncoder); ok {\n\t\tif err := e.EncodeNestedObjects(runtime.WithVersionEncoder{Version: c.encodeVersion, Encoder: c.encoder, ObjectTyper: c.typer}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Conversion is responsible for setting the proper group, version, and kind onto the outgoing object\n\treturn encodeFn(out, w)\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (c *codec) Identifier() runtime.Identifier {\n\treturn c.identifier\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/swagger_doc_generator.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/doc\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Pair of strings. We keed the name of fields and the doc\ntype Pair struct {\n\tName, Doc string\n}\n\n// KubeTypes is an array to represent all available types in a parsed file. [0] is for the type itself\ntype KubeTypes []Pair\n\nfunc astFrom(filePath string) *doc.Package {\n\tfset := token.NewFileSet()\n\tm := make(map[string]*ast.File)\n\n\tf, err := parser.ParseFile(fset, filePath, nil, parser.ParseComments)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn nil\n\t}\n\n\tm[filePath] = f\n\tapkg, _ := ast.NewPackage(fset, m, nil, nil)\n\n\treturn doc.New(apkg, \"\", 0)\n}\n\nfunc fmtRawDoc(rawDoc string) string {\n\tvar buffer bytes.Buffer\n\tdelPrevChar := func() {\n\t\tif buffer.Len() > 0 {\n\t\t\tbuffer.Truncate(buffer.Len() - 1) // Delete the last \" \" or \"\\n\"\n\t\t}\n\t}\n\n\t// Ignore all lines after ---\n\trawDoc = strings.Split(rawDoc, \"---\")[0]\n\n\tfor _, line := range strings.Split(rawDoc, \"\\n\") {\n\t\tline = strings.TrimRight(line, \" \")\n\t\tleading := strings.TrimLeft(line, \" \")\n\t\tswitch {\n\t\tcase len(line) == 0: // Keep paragraphs\n\t\t\tdelPrevChar()\n\t\t\tbuffer.WriteString(\"\\n\\n\")\n\t\tcase strings.HasPrefix(leading, \"TODO\"): // Ignore one line TODOs\n\t\tcase strings.HasPrefix(leading, \"+\"): // Ignore instructions to the generators\n\t\tdefault:\n\t\t\tif strings.HasPrefix(line, \" \") || strings.HasPrefix(line, \"\\t\") {\n\t\t\t\tdelPrevChar()\n\t\t\t\tline = \"\\n\" + line + \"\\n\" // Replace it with newline. This is useful when we have a line with: \"Example:\\n\\tJSON-someting...\"\n\t\t\t} else {\n\t\t\t\tline += \" \"\n\t\t\t}\n\t\t\tbuffer.WriteString(line)\n\t\t}\n\t}\n\n\tpostDoc := strings.TrimRight(buffer.String(), \"\\n\")\n\tpostDoc = strings.Replace(postDoc, \"\\\\\\\"\", \"\\\"\", -1) // replace user's \\\" to \"\n\tpostDoc = strings.Replace(postDoc, \"\\\"\", \"\\\\\\\"\", -1) // Escape \"\n\tpostDoc = strings.Replace(postDoc, \"\\n\", \"\\\\n\", -1)\n\tpostDoc = strings.Replace(postDoc, \"\\t\", \"\\\\t\", -1)\n\n\treturn postDoc\n}\n\n// fieldName returns the name of the field as it should appear in JSON format\n// \"-\" indicates that this field is not part of the JSON representation\nfunc fieldName(field *ast.Field) string {\n\tjsonTag := \"\"\n\tif field.Tag != nil {\n\t\tjsonTag = reflect.StructTag(field.Tag.Value[1 : len(field.Tag.Value)-1]).Get(\"json\") // Delete first and last quotation\n\t\tif strings.Contains(jsonTag, \"inline\") {\n\t\t\treturn \"-\"\n\t\t}\n\t}\n\n\tjsonTag = strings.Split(jsonTag, \",\")[0] // This can return \"-\"\n\tif jsonTag == \"\" {\n\t\tif field.Names != nil {\n\t\t\treturn field.Names[0].Name\n\t\t}\n\t\treturn field.Type.(*ast.Ident).Name\n\t}\n\treturn jsonTag\n}\n\n// A buffer of lines that will be written.\ntype bufferedLine struct {\n\tline        string\n\tindentation int\n}\n\ntype buffer struct {\n\tlines []bufferedLine\n}\n\nfunc newBuffer() *buffer {\n\treturn &buffer{\n\t\tlines: make([]bufferedLine, 0),\n\t}\n}\n\nfunc (b *buffer) addLine(line string, indent int) {\n\tb.lines = append(b.lines, bufferedLine{line, indent})\n}\n\nfunc (b *buffer) flushLines(w io.Writer) error {\n\tfor _, line := range b.lines {\n\t\tindentation := strings.Repeat(\"\\t\", line.indentation)\n\t\tfullLine := fmt.Sprintf(\"%s%s\", indentation, line.line)\n\t\tif _, err := io.WriteString(w, fullLine); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc writeFuncHeader(b *buffer, structName string, indent int) {\n\ts := fmt.Sprintf(\"var map_%s = map[string]string {\\n\", structName)\n\tb.addLine(s, indent)\n}\n\nfunc writeFuncFooter(b *buffer, structName string, indent int) {\n\tb.addLine(\"}\\n\", indent) // Closes the map definition\n\n\ts := fmt.Sprintf(\"func (%s) SwaggerDoc() map[string]string {\\n\", structName)\n\tb.addLine(s, indent)\n\ts = fmt.Sprintf(\"return map_%s\\n\", structName)\n\tb.addLine(s, indent+1)\n\tb.addLine(\"}\\n\", indent) // Closes the function definition\n}\n\nfunc writeMapBody(b *buffer, kubeType []Pair, indent int) {\n\tformat := \"\\\"%s\\\": \\\"%s\\\",\\n\"\n\tfor _, pair := range kubeType {\n\t\ts := fmt.Sprintf(format, pair.Name, pair.Doc)\n\t\tb.addLine(s, indent+2)\n\t}\n}\n\n// ParseDocumentationFrom gets all types' documentation and returns them as an\n// array. Each type is again represented as an array (we have to use arrays as we\n// need to be sure for the order of the fields). This function returns fields and\n// struct definitions that have no documentation as {name, \"\"}.\nfunc ParseDocumentationFrom(src string) []KubeTypes {\n\tvar docForTypes []KubeTypes\n\n\tpkg := astFrom(src)\n\n\tfor _, kubType := range pkg.Types {\n\t\tif structType, ok := kubType.Decl.Specs[0].(*ast.TypeSpec).Type.(*ast.StructType); ok {\n\t\t\tvar ks KubeTypes\n\t\t\tks = append(ks, Pair{kubType.Name, fmtRawDoc(kubType.Doc)})\n\n\t\t\tfor _, field := range structType.Fields.List {\n\t\t\t\tif n := fieldName(field); n != \"-\" {\n\t\t\t\t\tfieldDoc := fmtRawDoc(field.Doc.Text())\n\t\t\t\t\tks = append(ks, Pair{n, fieldDoc})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdocForTypes = append(docForTypes, ks)\n\t\t}\n\t}\n\n\treturn docForTypes\n}\n\n// WriteSwaggerDocFunc writes a declaration of a function as a string. This function is used in\n// Swagger as a documentation source for structs and theirs fields\nfunc WriteSwaggerDocFunc(kubeTypes []KubeTypes, w io.Writer) error {\n\tfor _, kubeType := range kubeTypes {\n\t\tstructName := kubeType[0].Name\n\t\tkubeType[0].Name = \"\"\n\n\t\t// Ignore empty documentation\n\t\tdocfulTypes := make(KubeTypes, 0, len(kubeType))\n\t\tfor _, pair := range kubeType {\n\t\t\tif pair.Doc != \"\" {\n\t\t\t\tdocfulTypes = append(docfulTypes, pair)\n\t\t\t}\n\t\t}\n\n\t\tif len(docfulTypes) == 0 {\n\t\t\tcontinue // If no fields and the struct have documentation, skip the function definition\n\t\t}\n\n\t\tindent := 0\n\t\tbuffer := newBuffer()\n\n\t\twriteFuncHeader(buffer, structName, indent)\n\t\twriteMapBody(buffer, docfulTypes, indent)\n\t\twriteFuncFooter(buffer, structName, indent)\n\t\tbuffer.addLine(\"\\n\", 0)\n\n\t\tif err := buffer.flushLines(w); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// VerifySwaggerDocsExist writes in a io.Writer a list of structs and fields that\n// are missing of documentation.\nfunc VerifySwaggerDocsExist(kubeTypes []KubeTypes, w io.Writer) (int, error) {\n\tmissingDocs := 0\n\tbuffer := newBuffer()\n\n\tfor _, kubeType := range kubeTypes {\n\t\tstructName := kubeType[0].Name\n\t\tif kubeType[0].Doc == \"\" {\n\t\t\tformat := \"Missing documentation for the struct itself: %s\\n\"\n\t\t\ts := fmt.Sprintf(format, structName)\n\t\t\tbuffer.addLine(s, 0)\n\t\t\tmissingDocs++\n\t\t}\n\t\tkubeType = kubeType[1:] // Skip struct definition\n\n\t\tfor _, pair := range kubeType { // Iterate only the fields\n\t\t\tif pair.Doc == \"\" {\n\t\t\t\tformat := \"In struct: %s, field documentation is missing: %s\\n\"\n\t\t\t\ts := fmt.Sprintf(format, structName, pair.Name)\n\t\t\t\tbuffer.addLine(s, 0)\n\t\t\t\tmissingDocs++\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := buffer.flushLines(w); err != nil {\n\t\treturn -1, err\n\t}\n\treturn missingDocs, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\n// Note that the types provided in this file are not versioned and are intended to be\n// safe to use from within all versions of every API object.\n\n// TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type,\n// like this:\n//\n//\ttype MyAwesomeAPIObject struct {\n//\t     runtime.TypeMeta    `json:\",inline\"`\n//\t     ... // other fields\n//\t}\n//\n// func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n//\n// TypeMeta is provided here for convenience. You may use it directly from this package or define\n// your own with the same fields.\n//\n// +k8s:deepcopy-gen=false\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype TypeMeta struct {\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" yaml:\"apiVersion,omitempty\" protobuf:\"bytes,1,opt,name=apiVersion\"`\n\t// +optional\n\tKind string `json:\"kind,omitempty\" yaml:\"kind,omitempty\" protobuf:\"bytes,2,opt,name=kind\"`\n}\n\nconst (\n\tContentTypeJSON     string = \"application/json\"\n\tContentTypeYAML     string = \"application/yaml\"\n\tContentTypeProtobuf string = \"application/vnd.kubernetes.protobuf\"\n)\n\n// RawExtension is used to hold extensions in external versions.\n//\n// To use this, make a field which has RawExtension as its type in your external, versioned\n// struct, and Object in your internal struct. You also need to register your\n// various plugin types.\n//\n// // Internal package:\n//\n//\ttype MyAPIObject struct {\n//\t\truntime.TypeMeta `json:\",inline\"`\n//\t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n//\t}\n//\n//\ttype PluginA struct {\n//\t\tAOption string `json:\"aOption\"`\n//\t}\n//\n// // External package:\n//\n//\ttype MyAPIObject struct {\n//\t\truntime.TypeMeta `json:\",inline\"`\n//\t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n//\t}\n//\n//\ttype PluginA struct {\n//\t\tAOption string `json:\"aOption\"`\n//\t}\n//\n// // On the wire, the JSON will look something like this:\n//\n//\t{\n//\t\t\"kind\":\"MyAPIObject\",\n//\t\t\"apiVersion\":\"v1\",\n//\t\t\"myPlugin\": {\n//\t\t\t\"kind\":\"PluginA\",\n//\t\t\t\"aOption\":\"foo\",\n//\t\t},\n//\t}\n//\n// So what happens? Decode first uses json or yaml to unmarshal the serialized data into\n// your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked.\n// The next step is to copy (using pkg/conversion) into the internal struct. The runtime\n// package's DefaultScheme has conversion functions installed which will unpack the\n// JSON stored in RawExtension, turning it into the correct object type, and storing it\n// in the Object. (TODO: In the case where the object is of an unknown type, a\n// runtime.Unknown object will be created and stored.)\n//\n// +k8s:deepcopy-gen=true\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype RawExtension struct {\n\t// Raw is the underlying serialization of this object.\n\t//\n\t// TODO: Determine how to detect ContentType and ContentEncoding of 'Raw' data.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,1,opt,name=raw\"`\n\t// Object can hold a representation of this extension - useful for working with versioned\n\t// structs.\n\tObject Object `json:\"-\"`\n}\n\n// Unknown allows api objects with unknown types to be passed-through. This can be used\n// to deal with the API objects from a plug-in. Unknown objects still have functioning\n// TypeMeta features-- kind, version, etc.\n// TODO: Make this object have easy access to field based accessors and settors for\n// metadata and field mutatation.\n//\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype Unknown struct {\n\tTypeMeta `json:\",inline\" protobuf:\"bytes,1,opt,name=typeMeta\"`\n\t// Raw will hold the complete serialized object which couldn't be matched\n\t// with a registered type. Most likely, nothing should be done with this\n\t// except for passing it through the system.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,2,opt,name=raw\"`\n\t// ContentEncoding is encoding used to encode 'Raw' data.\n\t// Unspecified means no encoding.\n\tContentEncoding string `protobuf:\"bytes,3,opt,name=contentEncoding\"`\n\t// ContentType  is serialization method used to serialize 'Raw'.\n\t// Unspecified means ContentTypeJSON.\n\tContentType string `protobuf:\"bytes,4,opt,name=contentType\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/types_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n)\n\ntype ProtobufMarshaller interface {\n\tMarshalTo(data []byte) (int, error)\n}\n\ntype ProtobufReverseMarshaller interface {\n\tMarshalToSizedBuffer(data []byte) (int, error)\n}\n\n// NestedMarshalTo allows a caller to avoid extra allocations during serialization of an Unknown\n// that will contain an object that implements ProtobufMarshaller or ProtobufReverseMarshaller.\nfunc (m *Unknown) NestedMarshalTo(data []byte, b ProtobufMarshaller, size uint64) (int, error) {\n\t// Calculate the full size of the message.\n\tmsgSize := m.Size()\n\tif b != nil {\n\t\tmsgSize += int(size) + sovGenerated(size) + 1\n\t}\n\n\t// Reverse marshal the fields of m.\n\ti := msgSize\n\ti -= len(m.ContentType)\n\tcopy(data[i:], m.ContentType)\n\ti = encodeVarintGenerated(data, i, uint64(len(m.ContentType)))\n\ti--\n\tdata[i] = 0x22\n\ti -= len(m.ContentEncoding)\n\tcopy(data[i:], m.ContentEncoding)\n\ti = encodeVarintGenerated(data, i, uint64(len(m.ContentEncoding)))\n\ti--\n\tdata[i] = 0x1a\n\tif b != nil {\n\t\tif r, ok := b.(ProtobufReverseMarshaller); ok {\n\t\t\tn1, err := r.MarshalToSizedBuffer(data[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= int(size)\n\t\t\tif uint64(n1) != size {\n\t\t\t\t// programmer error: the Size() method for protobuf does not match the results of LashramOt, which means the proto\n\t\t\t\t// struct returned would be wrong.\n\t\t\t\treturn 0, fmt.Errorf(\"the Size() value of %T was %d, but NestedMarshalTo wrote %d bytes to data\", b, size, n1)\n\t\t\t}\n\t\t} else {\n\t\t\ti -= int(size)\n\t\t\tn1, err := b.MarshalTo(data[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\tif uint64(n1) != size {\n\t\t\t\t// programmer error: the Size() method for protobuf does not match the results of MarshalTo, which means the proto\n\t\t\t\t// struct returned would be wrong.\n\t\t\t\treturn 0, fmt.Errorf(\"the Size() value of %T was %d, but NestedMarshalTo wrote %d bytes to data\", b, size, n1)\n\t\t\t}\n\t\t}\n\t\ti = encodeVarintGenerated(data, i, size)\n\t\ti--\n\t\tdata[i] = 0x12\n\t}\n\tn2, err := m.TypeMeta.MarshalToSizedBuffer(data[:i])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\ti -= n2\n\ti = encodeVarintGenerated(data, i, uint64(n2))\n\ti--\n\tdata[i] = 0xa\n\treturn msgSize - i, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage runtime\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RawExtension) DeepCopyInto(out *RawExtension) {\n\t*out = *in\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawExtension.\nfunc (in *RawExtension) DeepCopy() *RawExtension {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RawExtension)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Unknown) DeepCopyInto(out *Unknown) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Unknown.\nfunc (in *Unknown) DeepCopy() *Unknown {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Unknown)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new Object.\nfunc (in *Unknown) DeepCopyObject() Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/selection/operator.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage selection\n\n// Operator represents a key/field's relationship to value(s).\n// See labels.Requirement and fields.Requirement for more details.\ntype Operator string\n\nconst (\n\tDoesNotExist Operator = \"!\"\n\tEquals       Operator = \"=\"\n\tDoubleEquals Operator = \"==\"\n\tIn           Operator = \"in\"\n\tNotEquals    Operator = \"!=\"\n\tNotIn        Operator = \"notin\"\n\tExists       Operator = \"exists\"\n\tGreaterThan  Operator = \"gt\"\n\tLessThan     Operator = \"lt\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package types implements various generic types used throughout kubernetes.\npackage types // import \"k8s.io/apimachinery/pkg/types\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/namespacedname.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// NamespacedName comprises a resource name, with a mandatory namespace,\n// rendered as \"<namespace>/<name>\".  Being a type captures intent and\n// helps make sure that UIDs, namespaced names and non-namespaced names\n// do not get conflated in code.  For most use cases, namespace and name\n// will already have been format validated at the API entry point, so we\n// don't do that here.  Where that's not the case (e.g. in testing),\n// consider using NamespacedNameOrDie() in testing.go in this package.\n\ntype NamespacedName struct {\n\tNamespace string\n\tName      string\n}\n\nconst (\n\tSeparator = '/'\n)\n\n// String returns the general purpose string representation\nfunc (n NamespacedName) String() string {\n\treturn n.Namespace + string(Separator) + n.Name\n}\n\n// MarshalLog emits a struct containing required key/value pair\nfunc (n NamespacedName) MarshalLog() interface{} {\n\treturn struct {\n\t\tName      string `json:\"name\"`\n\t\tNamespace string `json:\"namespace,omitempty\"`\n\t}{\n\t\tName:      n.Name,\n\t\tNamespace: n.Namespace,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/nodename.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// NodeName is a type that holds a api.Node's Name identifier.\n// Being a type captures intent and helps make sure that the node name\n// is not confused with similar concepts (the hostname, the cloud provider id,\n// the cloud provider name etc)\n//\n// To clarify the various types:\n//\n//   - Node.Name is the Name field of the Node in the API.  This should be stored in a NodeName.\n//     Unfortunately, because Name is part of ObjectMeta, we can't store it as a NodeName at the API level.\n//\n//   - Hostname is the hostname of the local machine (from uname -n).\n//     However, some components allow the user to pass in a --hostname-override flag,\n//     which will override this in most places. In the absence of anything more meaningful,\n//     kubelet will use Hostname as the Node.Name when it creates the Node.\n//\n// * The cloudproviders have the own names: GCE has InstanceName, AWS has InstanceId.\n//\n//\tFor GCE, InstanceName is the Name of an Instance object in the GCE API.  On GCE, Instance.Name becomes the\n//\tHostname, and thus it makes sense also to use it as the Node.Name.  But that is GCE specific, and it is up\n//\tto the cloudprovider how to do this mapping.\n//\n//\tFor AWS, the InstanceID is not yet suitable for use as a Node.Name, so we actually use the\n//\tPrivateDnsName for the Node.Name.  And this is _not_ always the same as the hostname: if\n//\twe are using a custom DHCP domain it won't be.\ntype NodeName string\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/patch.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// Similarly to above, these are constants to support HTTP PATCH utilized by\n// both the client and server that didn't make sense for a whole package to be\n// dedicated to.\ntype PatchType string\n\nconst (\n\tJSONPatchType           PatchType = \"application/json-patch+json\"\n\tMergePatchType          PatchType = \"application/merge-patch+json\"\n\tStrategicMergePatchType PatchType = \"application/strategic-merge-patch+json\"\n\tApplyPatchType          PatchType = \"application/apply-patch+yaml\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/uid.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// UID is a type that holds unique ID values, including UUIDs.  Because we\n// don't ONLY use UUIDs, this is an alias to string.  Being a type captures\n// intent and helps make sure that UIDs and names do not get conflated.\ntype UID string\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/errors/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package errors implements various utility functions and types around errors.\npackage errors // import \"k8s.io/apimachinery/pkg/util/errors\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/errors/errors.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage errors\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// MessageCountMap contains occurrence for each error message.\ntype MessageCountMap map[string]int\n\n// Aggregate represents an object that contains multiple errors, but does not\n// necessarily have singular semantic meaning.\n// The aggregate can be used with `errors.Is()` to check for the occurrence of\n// a specific error type.\n// Errors.As() is not supported, because the caller presumably cares about a\n// specific error of potentially multiple that match the given type.\ntype Aggregate interface {\n\terror\n\tErrors() []error\n\tIs(error) bool\n}\n\n// NewAggregate converts a slice of errors into an Aggregate interface, which\n// is itself an implementation of the error interface.  If the slice is empty,\n// this returns nil.\n// It will check if any of the element of input error list is nil, to avoid\n// nil pointer panic when call Error().\nfunc NewAggregate(errlist []error) Aggregate {\n\tif len(errlist) == 0 {\n\t\treturn nil\n\t}\n\t// In case of input error list contains nil\n\tvar errs []error\n\tfor _, e := range errlist {\n\t\tif e != nil {\n\t\t\terrs = append(errs, e)\n\t\t}\n\t}\n\tif len(errs) == 0 {\n\t\treturn nil\n\t}\n\treturn aggregate(errs)\n}\n\n// This helper implements the error and Errors interfaces.  Keeping it private\n// prevents people from making an aggregate of 0 errors, which is not\n// an error, but does satisfy the error interface.\ntype aggregate []error\n\n// Error is part of the error interface.\nfunc (agg aggregate) Error() string {\n\tif len(agg) == 0 {\n\t\t// This should never happen, really.\n\t\treturn \"\"\n\t}\n\tif len(agg) == 1 {\n\t\treturn agg[0].Error()\n\t}\n\tseenerrs := sets.NewString()\n\tresult := \"\"\n\tagg.visit(func(err error) bool {\n\t\tmsg := err.Error()\n\t\tif seenerrs.Has(msg) {\n\t\t\treturn false\n\t\t}\n\t\tseenerrs.Insert(msg)\n\t\tif len(seenerrs) > 1 {\n\t\t\tresult += \", \"\n\t\t}\n\t\tresult += msg\n\t\treturn false\n\t})\n\tif len(seenerrs) == 1 {\n\t\treturn result\n\t}\n\treturn \"[\" + result + \"]\"\n}\n\nfunc (agg aggregate) Is(target error) bool {\n\treturn agg.visit(func(err error) bool {\n\t\treturn errors.Is(err, target)\n\t})\n}\n\nfunc (agg aggregate) visit(f func(err error) bool) bool {\n\tfor _, err := range agg {\n\t\tswitch err := err.(type) {\n\t\tcase aggregate:\n\t\t\tif match := err.visit(f); match {\n\t\t\t\treturn match\n\t\t\t}\n\t\tcase Aggregate:\n\t\t\tfor _, nestedErr := range err.Errors() {\n\t\t\t\tif match := f(nestedErr); match {\n\t\t\t\t\treturn match\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tif match := f(err); match {\n\t\t\t\treturn match\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\n// Errors is part of the Aggregate interface.\nfunc (agg aggregate) Errors() []error {\n\treturn []error(agg)\n}\n\n// Matcher is used to match errors.  Returns true if the error matches.\ntype Matcher func(error) bool\n\n// FilterOut removes all errors that match any of the matchers from the input\n// error.  If the input is a singular error, only that error is tested.  If the\n// input implements the Aggregate interface, the list of errors will be\n// processed recursively.\n//\n// This can be used, for example, to remove known-OK errors (such as io.EOF or\n// os.PathNotFound) from a list of errors.\nfunc FilterOut(err error, fns ...Matcher) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tif agg, ok := err.(Aggregate); ok {\n\t\treturn NewAggregate(filterErrors(agg.Errors(), fns...))\n\t}\n\tif !matchesError(err, fns...) {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// matchesError returns true if any Matcher returns true\nfunc matchesError(err error, fns ...Matcher) bool {\n\tfor _, fn := range fns {\n\t\tif fn(err) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// filterErrors returns any errors (or nested errors, if the list contains\n// nested Errors) for which all fns return false. If no errors\n// remain a nil list is returned. The resulting slice will have all\n// nested slices flattened as a side effect.\nfunc filterErrors(list []error, fns ...Matcher) []error {\n\tresult := []error{}\n\tfor _, err := range list {\n\t\tr := FilterOut(err, fns...)\n\t\tif r != nil {\n\t\t\tresult = append(result, r)\n\t\t}\n\t}\n\treturn result\n}\n\n// Flatten takes an Aggregate, which may hold other Aggregates in arbitrary\n// nesting, and flattens them all into a single Aggregate, recursively.\nfunc Flatten(agg Aggregate) Aggregate {\n\tresult := []error{}\n\tif agg == nil {\n\t\treturn nil\n\t}\n\tfor _, err := range agg.Errors() {\n\t\tif a, ok := err.(Aggregate); ok {\n\t\t\tr := Flatten(a)\n\t\t\tif r != nil {\n\t\t\t\tresult = append(result, r.Errors()...)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tresult = append(result, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn NewAggregate(result)\n}\n\n// CreateAggregateFromMessageCountMap converts MessageCountMap Aggregate\nfunc CreateAggregateFromMessageCountMap(m MessageCountMap) Aggregate {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tresult := make([]error, 0, len(m))\n\tfor errStr, count := range m {\n\t\tvar countStr string\n\t\tif count > 1 {\n\t\t\tcountStr = fmt.Sprintf(\" (repeated %v times)\", count)\n\t\t}\n\t\tresult = append(result, fmt.Errorf(\"%v%v\", errStr, countStr))\n\t}\n\treturn NewAggregate(result)\n}\n\n// Reduce will return err or nil, if err is an Aggregate and only has one item,\n// the first item in the aggregate.\nfunc Reduce(err error) error {\n\tif agg, ok := err.(Aggregate); ok && err != nil {\n\t\tswitch len(agg.Errors()) {\n\t\tcase 1:\n\t\t\treturn agg.Errors()[0]\n\t\tcase 0:\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn err\n}\n\n// AggregateGoroutines runs the provided functions in parallel, stuffing all\n// non-nil errors into the returned Aggregate.\n// Returns nil if all the functions complete successfully.\nfunc AggregateGoroutines(funcs ...func() error) Aggregate {\n\terrChan := make(chan error, len(funcs))\n\tfor _, f := range funcs {\n\t\tgo func(f func() error) { errChan <- f() }(f)\n\t}\n\terrs := make([]error, 0)\n\tfor i := 0; i < cap(errChan); i++ {\n\t\tif err := <-errChan; err != nil {\n\t\t\terrs = append(errs, err)\n\t\t}\n\t}\n\treturn NewAggregate(errs)\n}\n\n// ErrPreconditionViolated is returned when the precondition is violated\nvar ErrPreconditionViolated = errors.New(\"precondition is violated\")\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/framer/framer.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package framer implements simple frame decoding techniques for an io.ReadCloser\npackage framer\n\nimport (\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"io\"\n)\n\ntype lengthDelimitedFrameWriter struct {\n\tw io.Writer\n\th [4]byte\n}\n\nfunc NewLengthDelimitedFrameWriter(w io.Writer) io.Writer {\n\treturn &lengthDelimitedFrameWriter{w: w}\n}\n\n// Write writes a single frame to the nested writer, prepending it with the length\n// in bytes of data (as a 4 byte, bigendian uint32).\nfunc (w *lengthDelimitedFrameWriter) Write(data []byte) (int, error) {\n\tbinary.BigEndian.PutUint32(w.h[:], uint32(len(data)))\n\tn, err := w.w.Write(w.h[:])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif n != len(w.h) {\n\t\treturn 0, io.ErrShortWrite\n\t}\n\treturn w.w.Write(data)\n}\n\ntype lengthDelimitedFrameReader struct {\n\tr         io.ReadCloser\n\tremaining int\n}\n\n// NewLengthDelimitedFrameReader returns an io.Reader that will decode length-prefixed\n// frames off of a stream.\n//\n// The protocol is:\n//\n//\tstream: message ...\n//\tmessage: prefix body\n//\tprefix: 4 byte uint32 in BigEndian order, denotes length of body\n//\tbody: bytes (0..prefix)\n//\n// If the buffer passed to Read is not long enough to contain an entire frame, io.ErrShortRead\n// will be returned along with the number of bytes read.\nfunc NewLengthDelimitedFrameReader(r io.ReadCloser) io.ReadCloser {\n\treturn &lengthDelimitedFrameReader{r: r}\n}\n\n// Read attempts to read an entire frame into data. If that is not possible, io.ErrShortBuffer\n// is returned and subsequent calls will attempt to read the last frame. A frame is complete when\n// err is nil.\nfunc (r *lengthDelimitedFrameReader) Read(data []byte) (int, error) {\n\tif r.remaining <= 0 {\n\t\theader := [4]byte{}\n\t\tn, err := io.ReadAtLeast(r.r, header[:4], 4)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif n != 4 {\n\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tframeLength := int(binary.BigEndian.Uint32(header[:]))\n\t\tr.remaining = frameLength\n\t}\n\n\texpect := r.remaining\n\tmax := expect\n\tif max > len(data) {\n\t\tmax = len(data)\n\t}\n\tn, err := io.ReadAtLeast(r.r, data[:max], int(max))\n\tr.remaining -= n\n\tif err == io.ErrShortBuffer || r.remaining > 0 {\n\t\treturn n, io.ErrShortBuffer\n\t}\n\tif err != nil {\n\t\treturn n, err\n\t}\n\tif n != expect {\n\t\treturn n, io.ErrUnexpectedEOF\n\t}\n\n\treturn n, nil\n}\n\nfunc (r *lengthDelimitedFrameReader) Close() error {\n\treturn r.r.Close()\n}\n\ntype jsonFrameReader struct {\n\tr         io.ReadCloser\n\tdecoder   *json.Decoder\n\tremaining []byte\n}\n\n// NewJSONFramedReader returns an io.Reader that will decode individual JSON objects off\n// of a wire.\n//\n// The boundaries between each frame are valid JSON objects. A JSON parsing error will terminate\n// the read.\nfunc NewJSONFramedReader(r io.ReadCloser) io.ReadCloser {\n\treturn &jsonFrameReader{\n\t\tr:       r,\n\t\tdecoder: json.NewDecoder(r),\n\t}\n}\n\n// ReadFrame decodes the next JSON object in the stream, or returns an error. The returned\n// byte slice will be modified the next time ReadFrame is invoked and should not be altered.\nfunc (r *jsonFrameReader) Read(data []byte) (int, error) {\n\t// Return whatever remaining data exists from an in progress frame\n\tif n := len(r.remaining); n > 0 {\n\t\tif n <= len(data) {\n\t\t\t//nolint:staticcheck // SA4006,SA4010 underlying array of data is modified here.\n\t\t\tdata = append(data[0:0], r.remaining...)\n\t\t\tr.remaining = nil\n\t\t\treturn n, nil\n\t\t}\n\n\t\tn = len(data)\n\t\t//nolint:staticcheck // SA4006,SA4010 underlying array of data is modified here.\n\t\tdata = append(data[0:0], r.remaining[:n]...)\n\t\tr.remaining = r.remaining[n:]\n\t\treturn n, io.ErrShortBuffer\n\t}\n\n\t// RawMessage#Unmarshal appends to data - we reset the slice down to 0 and will either see\n\t// data written to data, or be larger than data and a different array.\n\tn := len(data)\n\tm := json.RawMessage(data[:0])\n\tif err := r.decoder.Decode(&m); err != nil {\n\t\treturn 0, err\n\t}\n\n\t// If capacity of data is less than length of the message, decoder will allocate a new slice\n\t// and set m to it, which means we need to copy the partial result back into data and preserve\n\t// the remaining result for subsequent reads.\n\tif len(m) > n {\n\t\t//nolint:staticcheck // SA4006,SA4010 underlying array of data is modified here.\n\t\tdata = append(data[0:0], m[:n]...)\n\t\tr.remaining = m[n:]\n\t\treturn n, io.ErrShortBuffer\n\t}\n\treturn len(m), nil\n}\n\nfunc (r *jsonFrameReader) Close() error {\n\treturn r.r.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto\n\npackage intstr\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *IntOrString) Reset()      { *m = IntOrString{} }\nfunc (*IntOrString) ProtoMessage() {}\nfunc (*IntOrString) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_94e046ae3ce6121c, []int{0}\n}\nfunc (m *IntOrString) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IntOrString) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IntOrString) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IntOrString.Merge(m, src)\n}\nfunc (m *IntOrString) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IntOrString) XXX_DiscardUnknown() {\n\txxx_messageInfo_IntOrString.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IntOrString proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*IntOrString)(nil), \"k8s.io.apimachinery.pkg.util.intstr.IntOrString\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto\", fileDescriptor_94e046ae3ce6121c)\n}\n\nvar fileDescriptor_94e046ae3ce6121c = []byte{\n\t// 292 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xb1, 0x4a, 0x03, 0x31,\n\t0x1c, 0xc6, 0x13, 0x5b, 0x8b, 0x9e, 0xe0, 0x50, 0x1c, 0x8a, 0x43, 0x7a, 0x58, 0x90, 0x5b, 0x4c,\n\t0x56, 0x71, 0xec, 0x56, 0x10, 0x84, 0x56, 0x1c, 0xdc, 0xee, 0xda, 0x98, 0x86, 0x6b, 0x93, 0x90,\n\t0xfb, 0x9f, 0x70, 0x5b, 0x1f, 0x41, 0x37, 0x47, 0x1f, 0xe7, 0xc6, 0x8e, 0x1d, 0xa4, 0x78, 0xf1,\n\t0x2d, 0x9c, 0xe4, 0x72, 0x07, 0x3a, 0x3a, 0x25, 0xdf, 0xf7, 0xfd, 0x7e, 0x19, 0x12, 0xdc, 0xa6,\n\t0xd7, 0x19, 0x95, 0x9a, 0xa5, 0x79, 0xc2, 0xad, 0xe2, 0xc0, 0x33, 0xf6, 0xcc, 0xd5, 0x42, 0x5b,\n\t0xd6, 0x0e, 0xb1, 0x91, 0xeb, 0x78, 0xbe, 0x94, 0x8a, 0xdb, 0x82, 0x99, 0x54, 0xb0, 0x1c, 0xe4,\n\t0x8a, 0x49, 0x05, 0x19, 0x58, 0x26, 0xb8, 0xe2, 0x36, 0x06, 0xbe, 0xa0, 0xc6, 0x6a, 0xd0, 0xfd,\n\t0x51, 0x23, 0xd1, 0xbf, 0x12, 0x35, 0xa9, 0xa0, 0xb5, 0x44, 0x1b, 0xe9, 0xfc, 0x4a, 0x48, 0x58,\n\t0xe6, 0x09, 0x9d, 0xeb, 0x35, 0x13, 0x5a, 0x68, 0xe6, 0xdd, 0x24, 0x7f, 0xf2, 0xc9, 0x07, 0x7f,\n\t0x6b, 0xde, 0xbc, 0x78, 0xc5, 0xc1, 0xc9, 0x44, 0xc1, 0x9d, 0x9d, 0x81, 0x95, 0x4a, 0xf4, 0xa3,\n\t0xa0, 0x0b, 0x85, 0xe1, 0x03, 0x1c, 0xe2, 0xa8, 0x33, 0x3e, 0x2b, 0xf7, 0x43, 0xe4, 0xf6, 0xc3,\n\t0xee, 0x7d, 0x61, 0xf8, 0x77, 0x7b, 0x4e, 0x3d, 0xd1, 0xbf, 0x0c, 0x7a, 0x52, 0xc1, 0x43, 0xbc,\n\t0x1a, 0x1c, 0x84, 0x38, 0x3a, 0x1c, 0x9f, 0xb6, 0x6c, 0x6f, 0xe2, 0xdb, 0x69, 0xbb, 0xd6, 0x5c,\n\t0x06, 0xb6, 0xe6, 0x3a, 0x21, 0x8e, 0x8e, 0x7f, 0xb9, 0x99, 0x6f, 0xa7, 0xed, 0x7a, 0x73, 0xf4,\n\t0xf6, 0x3e, 0x44, 0x9b, 0x8f, 0x10, 0x8d, 0x27, 0x65, 0x45, 0xd0, 0xb6, 0x22, 0x68, 0x57, 0x11,\n\t0xb4, 0x71, 0x04, 0x97, 0x8e, 0xe0, 0xad, 0x23, 0x78, 0xe7, 0x08, 0xfe, 0x74, 0x04, 0xbf, 0x7c,\n\t0x11, 0xf4, 0x38, 0xfa, 0xc7, 0x17, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0xdc, 0xc4, 0xf0, 0xa0,\n\t0x81, 0x01, 0x00, 0x00,\n}\n\nfunc (m *IntOrString) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IntOrString) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IntOrString) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StrVal)\n\tcopy(dAtA[i:], m.StrVal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StrVal)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.IntVal))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Type))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *IntOrString) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Type))\n\tn += 1 + sovGenerated(uint64(m.IntVal))\n\tl = len(m.StrVal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (m *IntOrString) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IntOrString: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IntOrString: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tm.Type = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Type |= Type(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IntVal\", wireType)\n\t\t\t}\n\t\t\tm.IntVal = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.IntVal |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StrVal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StrVal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.util.intstr;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/util/intstr\";\n\n// IntOrString is a type that can hold an int32 or a string.  When used in\n// JSON or YAML marshalling and unmarshalling, it produces or consumes the\n// inner type.  This allows you to have, for example, a JSON field that can\n// accept a name or number.\n// TODO: Rename to Int32OrString\n//\n// +protobuf=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:openapi-gen=true\nmessage IntOrString {\n  optional int64 type = 1;\n\n  optional int32 intVal = 2;\n\n  optional string strVal = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage intstr\n\nimport (\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface\nfunc (intstr *IntOrString) Fuzz(c fuzz.Continue) {\n\tif intstr == nil {\n\t\treturn\n\t}\n\tif c.RandBool() {\n\t\tintstr.Type = Int\n\t\tc.Fuzz(&intstr.IntVal)\n\t\tintstr.StrVal = \"\"\n\t} else {\n\t\tintstr.Type = String\n\t\tintstr.IntVal = 0\n\t\tc.Fuzz(&intstr.StrVal)\n\t}\n}\n\n// ensure IntOrString implements fuzz.Interface\nvar _ fuzz.Interface = &IntOrString{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/intstr.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage intstr\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// IntOrString is a type that can hold an int32 or a string.  When used in\n// JSON or YAML marshalling and unmarshalling, it produces or consumes the\n// inner type.  This allows you to have, for example, a JSON field that can\n// accept a name or number.\n// TODO: Rename to Int32OrString\n//\n// +protobuf=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:openapi-gen=true\ntype IntOrString struct {\n\tType   Type   `protobuf:\"varint,1,opt,name=type,casttype=Type\"`\n\tIntVal int32  `protobuf:\"varint,2,opt,name=intVal\"`\n\tStrVal string `protobuf:\"bytes,3,opt,name=strVal\"`\n}\n\n// Type represents the stored type of IntOrString.\ntype Type int64\n\nconst (\n\tInt    Type = iota // The IntOrString holds an int.\n\tString             // The IntOrString holds a string.\n)\n\n// FromInt creates an IntOrString object with an int32 value. It is\n// your responsibility not to call this method with a value greater\n// than int32.\n// TODO: convert to (val int32)\nfunc FromInt(val int) IntOrString {\n\tif val > math.MaxInt32 || val < math.MinInt32 {\n\t\tklog.Errorf(\"value: %d overflows int32\\n%s\\n\", val, debug.Stack())\n\t}\n\treturn IntOrString{Type: Int, IntVal: int32(val)}\n}\n\n// FromString creates an IntOrString object with a string value.\nfunc FromString(val string) IntOrString {\n\treturn IntOrString{Type: String, StrVal: val}\n}\n\n// Parse the given string and try to convert it to an integer before\n// setting it as a string value.\nfunc Parse(val string) IntOrString {\n\ti, err := strconv.Atoi(val)\n\tif err != nil {\n\t\treturn FromString(val)\n\t}\n\treturn FromInt(i)\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (intstr *IntOrString) UnmarshalJSON(value []byte) error {\n\tif value[0] == '\"' {\n\t\tintstr.Type = String\n\t\treturn json.Unmarshal(value, &intstr.StrVal)\n\t}\n\tintstr.Type = Int\n\treturn json.Unmarshal(value, &intstr.IntVal)\n}\n\n// String returns the string value, or the Itoa of the int value.\nfunc (intstr *IntOrString) String() string {\n\tif intstr == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif intstr.Type == String {\n\t\treturn intstr.StrVal\n\t}\n\treturn strconv.Itoa(intstr.IntValue())\n}\n\n// IntValue returns the IntVal if type Int, or if\n// it is a String, will attempt a conversion to int,\n// returning 0 if a parsing error occurs.\nfunc (intstr *IntOrString) IntValue() int {\n\tif intstr.Type == String {\n\t\ti, _ := strconv.Atoi(intstr.StrVal)\n\t\treturn i\n\t}\n\treturn int(intstr.IntVal)\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (intstr IntOrString) MarshalJSON() ([]byte, error) {\n\tswitch intstr.Type {\n\tcase Int:\n\t\treturn json.Marshal(intstr.IntVal)\n\tcase String:\n\t\treturn json.Marshal(intstr.StrVal)\n\tdefault:\n\t\treturn []byte{}, fmt.Errorf(\"impossible IntOrString.Type\")\n\t}\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (IntOrString) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (IntOrString) OpenAPISchemaFormat() string { return \"int-or-string\" }\n\n// OpenAPIV3OneOfTypes is used by the kube-openapi generator when constructing\n// the OpenAPI v3 spec of this type.\nfunc (IntOrString) OpenAPIV3OneOfTypes() []string { return []string{\"integer\", \"string\"} }\n\nfunc ValueOrDefault(intOrPercent *IntOrString, defaultValue IntOrString) *IntOrString {\n\tif intOrPercent == nil {\n\t\treturn &defaultValue\n\t}\n\treturn intOrPercent\n}\n\n// GetScaledValueFromIntOrPercent is meant to replace GetValueFromIntOrPercent.\n// This method returns a scaled value from an IntOrString type. If the IntOrString\n// is a percentage string value it's treated as a percentage and scaled appropriately\n// in accordance to the total, if it's an int value it's treated as a simple value and\n// if it is a string value which is either non-numeric or numeric but lacking a trailing '%' it returns an error.\nfunc GetScaledValueFromIntOrPercent(intOrPercent *IntOrString, total int, roundUp bool) (int, error) {\n\tif intOrPercent == nil {\n\t\treturn 0, errors.New(\"nil value for IntOrString\")\n\t}\n\tvalue, isPercent, err := getIntOrPercentValueSafely(intOrPercent)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid value for IntOrString: %v\", err)\n\t}\n\tif isPercent {\n\t\tif roundUp {\n\t\t\tvalue = int(math.Ceil(float64(value) * (float64(total)) / 100))\n\t\t} else {\n\t\t\tvalue = int(math.Floor(float64(value) * (float64(total)) / 100))\n\t\t}\n\t}\n\treturn value, nil\n}\n\n// GetValueFromIntOrPercent was deprecated in favor of\n// GetScaledValueFromIntOrPercent. This method was treating all int as a numeric value and all\n// strings with or without a percent symbol as a percentage value.\n// Deprecated\nfunc GetValueFromIntOrPercent(intOrPercent *IntOrString, total int, roundUp bool) (int, error) {\n\tif intOrPercent == nil {\n\t\treturn 0, errors.New(\"nil value for IntOrString\")\n\t}\n\tvalue, isPercent, err := getIntOrPercentValue(intOrPercent)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid value for IntOrString: %v\", err)\n\t}\n\tif isPercent {\n\t\tif roundUp {\n\t\t\tvalue = int(math.Ceil(float64(value) * (float64(total)) / 100))\n\t\t} else {\n\t\t\tvalue = int(math.Floor(float64(value) * (float64(total)) / 100))\n\t\t}\n\t}\n\treturn value, nil\n}\n\n// getIntOrPercentValue is a legacy function and only meant to be called by GetValueFromIntOrPercent\n// For a more correct implementation call getIntOrPercentSafely\nfunc getIntOrPercentValue(intOrStr *IntOrString) (int, bool, error) {\n\tswitch intOrStr.Type {\n\tcase Int:\n\t\treturn intOrStr.IntValue(), false, nil\n\tcase String:\n\t\ts := strings.Replace(intOrStr.StrVal, \"%\", \"\", -1)\n\t\tv, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid value %q: %v\", intOrStr.StrVal, err)\n\t\t}\n\t\treturn int(v), true, nil\n\t}\n\treturn 0, false, fmt.Errorf(\"invalid type: neither int nor percentage\")\n}\n\nfunc getIntOrPercentValueSafely(intOrStr *IntOrString) (int, bool, error) {\n\tswitch intOrStr.Type {\n\tcase Int:\n\t\treturn intOrStr.IntValue(), false, nil\n\tcase String:\n\t\tisPercent := false\n\t\ts := intOrStr.StrVal\n\t\tif strings.HasSuffix(s, \"%\") {\n\t\t\tisPercent = true\n\t\t\ts = strings.TrimSuffix(intOrStr.StrVal, \"%\")\n\t\t} else {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid type: string is not a percentage\")\n\t\t}\n\t\tv, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid value %q: %v\", intOrStr.StrVal, err)\n\t\t}\n\t\treturn int(v), isPercent, nil\n\t}\n\treturn 0, false, fmt.Errorf(\"invalid type: neither int nor percentage\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/json/json.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\tkjson \"sigs.k8s.io/json\"\n)\n\n// NewEncoder delegates to json.NewEncoder\n// It is only here so this package can be a drop-in for common encoding/json uses\nfunc NewEncoder(w io.Writer) *json.Encoder {\n\treturn json.NewEncoder(w)\n}\n\n// Marshal delegates to json.Marshal\n// It is only here so this package can be a drop-in for common encoding/json uses\nfunc Marshal(v interface{}) ([]byte, error) {\n\treturn json.Marshal(v)\n}\n\n// limit recursive depth to prevent stack overflow errors\nconst maxDepth = 10000\n\n// Unmarshal unmarshals the given data.\n// Object keys are case-sensitive.\n// Numbers decoded into interface{} fields are converted to int64 or float64.\nfunc Unmarshal(data []byte, v interface{}) error {\n\treturn kjson.UnmarshalCaseSensitivePreserveInts(data, v)\n}\n\n// ConvertInterfaceNumbers converts any json.Number values to int64 or float64.\n// Values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertInterfaceNumbers(v *interface{}, depth int) error {\n\tvar err error\n\tswitch v2 := (*v).(type) {\n\tcase json.Number:\n\t\t*v, err = convertNumber(v2)\n\tcase map[string]interface{}:\n\t\terr = ConvertMapNumbers(v2, depth+1)\n\tcase []interface{}:\n\t\terr = ConvertSliceNumbers(v2, depth+1)\n\t}\n\treturn err\n}\n\n// ConvertMapNumbers traverses the map, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertMapNumbers(m map[string]interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor k, v := range m {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\tm[k], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = ConvertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = ConvertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConvertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertSliceNumbers(s []interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor i, v := range s {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\ts[i], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = ConvertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = ConvertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts a json.Number to an int64 or float64, or returns an error\nfunc convertNumber(n json.Number) (interface{}, error) {\n\t// Attempt to convert to an int64 first\n\tif i, err := n.Int64(); err == nil {\n\t\treturn i, nil\n\t}\n\t// Return a float64 (default json.Decode() behavior)\n\t// An overflow will return an error\n\treturn n.Float64()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/endpoints.yaml",
    "content": "apiVersion: v1\nkind: Endpoints\nmetadata:\n  creationTimestamp: '2016-10-04T17:45:58Z'\n  labels:\n    app: my-app\n  name: app-server\n  namespace: default\n  resourceVersion: '184597135'\n  selfLink: /self/link\n  uid: 6826f086-8a5a-11e6-8d09-42010a800005\nsubsets:\n- addresses:\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0000\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0001\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0002\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0003\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0004\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0005\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0006\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0007\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0008\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0009\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0010\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0011\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0012\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0013\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0014\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0015\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0016\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0017\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0018\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0019\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0020\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0021\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0022\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0023\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0024\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0025\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0026\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0027\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0028\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0029\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0030\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0031\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0032\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0033\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0034\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0035\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0036\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0037\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0038\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0039\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0040\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0041\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0042\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0043\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0044\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0045\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0046\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0047\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0048\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0049\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0050\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0051\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0052\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0053\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0054\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0055\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0056\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0057\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0058\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0059\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0060\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0061\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0062\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0063\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0064\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0065\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0066\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0067\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0068\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0069\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0070\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0071\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0072\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0073\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0074\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0075\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0076\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0077\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0078\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0079\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0080\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0081\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0082\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0083\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0084\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0085\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0086\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0087\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0088\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0089\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0090\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0091\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0092\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0093\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0094\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0095\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0096\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0097\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0098\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0099\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0100\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0101\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0102\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0103\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0104\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0105\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0106\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0107\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0108\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0109\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0110\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0111\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0112\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0113\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0114\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0115\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0116\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0117\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0118\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0119\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0120\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0121\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0122\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0123\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0124\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0125\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0126\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0127\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0128\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0129\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0130\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0131\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0132\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0133\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0134\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0135\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0136\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0137\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0138\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0139\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0140\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0141\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0142\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0143\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0144\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0145\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0146\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0147\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0148\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0149\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0150\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0151\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0152\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0153\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0154\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0155\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0156\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0157\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0158\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0159\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0160\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0161\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0162\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0163\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0164\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0165\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0166\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0167\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0168\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0169\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0170\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0171\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0172\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0173\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0174\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0175\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0176\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0177\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0178\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0179\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0180\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0181\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0182\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0183\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0184\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0185\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0186\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0187\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0188\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0189\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0190\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0191\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0192\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0193\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0194\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0195\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0196\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0197\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0198\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0199\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0200\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0201\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0202\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0203\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0204\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0205\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0206\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0207\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0208\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0209\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0210\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0211\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0212\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0213\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0214\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0215\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0216\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0217\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0218\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0219\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0220\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0221\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0222\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0223\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0224\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0225\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0226\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0227\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0228\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0229\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0230\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0231\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0232\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0233\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0234\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0235\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0236\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0237\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0238\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0239\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0240\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0241\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0242\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0243\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0244\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0245\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0246\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0247\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0248\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0249\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0250\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0251\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0252\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0253\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0254\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0255\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0256\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0257\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0258\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0259\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0260\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0261\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0262\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0263\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0264\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0265\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0266\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0267\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0268\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0269\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0270\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0271\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0272\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0273\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0274\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0275\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0276\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0277\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0278\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0279\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0280\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0281\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0282\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0283\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0284\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0285\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0286\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0287\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0288\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0289\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0290\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0291\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0292\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0293\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0294\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0295\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0296\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0297\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0298\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0299\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0300\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0301\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0302\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0303\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0304\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0305\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0306\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0307\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0308\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0309\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0310\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0311\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0312\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0313\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0314\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0315\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0316\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0317\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0318\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0319\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0320\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0321\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0322\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0323\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0324\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0325\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0326\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0327\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0328\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0329\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0330\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0331\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0332\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0333\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0334\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0335\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0336\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0337\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0338\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0339\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0340\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0341\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0342\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0343\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0344\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0345\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0346\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0347\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0348\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0349\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0350\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0351\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0352\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0353\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0354\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0355\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0356\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0357\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0358\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0359\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0360\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0361\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0362\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0363\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0364\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0365\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0366\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0367\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0368\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0369\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0370\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0371\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0372\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0373\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0374\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0375\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0376\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0377\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0378\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0379\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0380\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0381\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0382\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0383\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0384\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0385\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0386\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0387\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0388\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0389\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0390\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0391\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0392\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0393\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0394\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0395\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0396\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0397\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0398\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0399\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0400\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0401\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0402\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0403\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0404\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0405\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0406\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0407\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0408\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0409\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0410\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0411\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0412\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0413\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0414\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0415\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0416\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0417\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0418\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0419\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0420\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0421\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0422\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0423\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0424\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0425\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0426\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0427\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0428\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0429\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0430\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0431\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0432\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0433\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0434\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0435\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0436\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0437\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0438\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0439\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0440\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0441\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0442\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0443\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0444\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0445\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0446\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0447\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0448\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0449\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0450\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0451\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0452\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0453\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0454\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0455\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0456\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0457\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0458\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0459\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0460\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0461\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0462\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0463\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0464\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0465\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0466\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0467\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0468\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0469\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0470\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0471\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0472\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0473\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0474\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0475\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0476\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0477\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0478\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0479\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0480\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0481\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0482\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0483\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0484\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0485\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0486\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0487\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0488\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0489\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0490\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0491\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0492\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0493\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0494\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0495\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0496\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0497\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0498\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0499\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0500\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0501\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0502\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0503\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0504\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0505\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0506\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0507\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0508\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0509\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0510\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0511\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0512\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0513\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0514\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0515\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0516\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0517\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0518\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0519\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0520\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0521\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0522\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0523\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0524\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0525\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0526\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0527\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0528\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0529\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0530\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0531\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0532\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0533\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0534\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0535\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0536\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0537\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0538\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0539\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0540\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0541\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0542\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0543\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0544\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0545\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0546\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0547\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0548\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0549\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0550\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0551\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0552\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0553\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0554\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0555\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0556\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0557\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0558\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0559\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0560\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0561\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0562\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0563\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0564\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0565\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0566\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0567\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0568\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0569\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0570\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0571\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0572\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0573\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0574\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0575\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0576\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0577\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0578\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0579\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0580\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0581\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0582\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0583\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0584\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0585\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0586\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0587\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0588\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0589\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0590\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0591\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0592\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0593\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0594\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0595\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0596\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0597\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0598\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0599\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0600\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0601\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0602\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0603\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0604\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0605\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0606\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0607\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0608\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0609\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0610\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0611\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0612\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0613\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0614\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0615\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0616\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0617\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0618\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0619\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0620\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0621\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0622\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0623\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0624\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0625\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0626\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0627\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0628\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0629\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0630\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0631\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0632\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0633\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0634\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0635\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0636\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0637\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0638\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0639\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0640\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0641\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0642\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0643\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0644\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0645\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0646\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0647\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0648\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0649\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0650\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0651\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0652\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0653\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0654\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0655\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0656\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0657\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0658\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0659\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0660\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0661\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0662\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0663\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0664\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0665\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0666\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0667\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0668\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0669\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0670\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0671\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0672\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0673\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0674\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0675\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0676\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0677\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0678\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0679\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0680\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0681\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0682\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0683\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0684\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0685\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0686\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0687\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0688\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0689\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0690\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0691\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0692\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0693\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0694\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0695\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0696\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0697\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0698\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0699\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0700\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0701\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0702\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0703\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0704\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0705\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0706\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0707\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0708\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0709\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0710\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0711\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0712\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0713\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0714\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0715\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0716\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0717\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0718\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0719\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0720\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0721\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0722\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0723\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0724\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0725\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0726\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0727\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0728\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0729\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0730\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0731\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0732\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0733\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0734\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0735\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0736\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0737\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0738\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0739\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0740\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0741\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0742\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0743\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0744\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0745\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0746\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0747\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0748\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0749\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0750\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0751\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0752\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0753\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0754\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0755\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0756\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0757\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0758\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0759\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0760\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0761\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0762\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0763\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0764\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0765\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0766\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0767\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0768\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0769\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0770\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0771\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0772\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0773\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0774\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0775\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0776\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0777\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0778\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0779\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0780\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0781\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0782\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0783\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0784\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0785\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0786\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0787\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0788\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0789\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0790\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0791\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0792\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0793\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0794\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0795\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0796\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0797\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0798\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0799\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0800\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0801\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0802\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0803\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0804\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0805\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0806\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0807\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0808\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0809\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0810\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0811\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0812\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0813\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0814\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0815\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0816\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0817\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0818\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0819\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0820\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0821\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0822\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0823\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0824\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0825\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0826\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0827\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0828\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0829\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0830\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0831\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0832\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0833\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0834\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0835\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0836\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0837\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0838\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0839\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0840\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0841\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0842\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0843\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0844\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0845\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0846\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0847\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0848\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0849\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0850\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0851\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0852\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0853\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0854\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0855\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0856\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0857\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0858\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0859\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0860\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0861\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0862\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0863\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0864\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0865\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0866\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0867\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0868\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0869\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0870\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0871\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0872\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0873\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0874\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0875\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0876\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0877\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0878\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0879\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0880\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0881\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0882\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0883\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0884\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0885\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0886\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0887\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0888\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0889\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0890\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0891\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0892\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0893\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0894\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0895\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0896\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0897\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0898\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0899\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0900\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0901\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0902\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0903\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0904\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0905\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0906\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0907\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0908\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0909\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0910\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0911\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0912\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0913\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0914\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0915\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0916\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0917\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0918\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0919\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0920\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0921\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0922\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0923\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0924\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0925\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0926\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0927\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0928\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0929\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0930\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0931\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0932\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0933\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0934\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0935\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0936\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0937\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0938\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0939\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0940\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0941\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0942\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0943\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0944\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0945\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0946\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0947\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0948\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0949\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0950\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0951\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0952\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0953\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0954\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0955\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0956\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0957\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0958\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0959\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0960\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0961\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0962\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0963\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0964\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0965\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0966\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0967\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0968\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0969\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0970\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0971\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0972\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0973\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0974\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0975\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0976\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0977\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0978\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0979\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0980\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0981\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0982\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0983\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0984\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0985\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0986\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0987\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0988\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0989\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0990\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0991\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0992\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0993\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0994\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0995\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0996\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0997\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0998\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0999\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  ports:\n  - name: port-name\n    port: 8080\n    protocol: TCP\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/extract.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// ExtractInto extracts the applied configuration state from object for fieldManager\n// into applyConfiguration. If no managed fields are found for the given fieldManager,\n// no error is returned, but applyConfiguration is left unpopulated. It is possible\n// that no managed fields were found for the fieldManager because other field managers\n// have taken ownership of all the fields previously owned by the fieldManager. It is\n// also possible the fieldManager never owned fields.\n//\n// The provided object MUST bo a root resource object since subresource objects\n// do not contain their own managed fields. For example, an autoscaling.Scale\n// object read from a \"scale\" subresource does not have any managed fields and so\n// cannot be used as the object.\n//\n// If the fields of a subresource are a subset of the fields of the root object,\n// and their field paths and types are exactly the same, then ExtractInto can be\n// called with the root resource as the object and the subresource as the\n// applyConfiguration. This works for \"status\", obviously, because status is\n// represented by the exact same object as the root resource. This does NOT\n// work, for example, with the \"scale\" subresources of Deployment, ReplicaSet and\n// StatefulSet. While the spec.replicas, status.replicas fields are in the same\n// exact field path locations as they are in autoscaling.Scale, the selector\n// fields are in different locations, and are a different type.\nfunc ExtractInto(object runtime.Object, objectType typed.ParseableType, fieldManager string, applyConfiguration interface{}, subresource string) error {\n\ttypedObj, err := toTyped(object, objectType)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error converting obj to typed: %w\", err)\n\t}\n\n\taccessor, err := meta.Accessor(object)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error accessing metadata: %w\", err)\n\t}\n\tfieldsEntry, ok := findManagedFields(accessor, fieldManager, subresource)\n\tif !ok {\n\t\treturn nil\n\t}\n\tfieldset := &fieldpath.Set{}\n\terr = fieldset.FromJSON(bytes.NewReader(fieldsEntry.FieldsV1.Raw))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error marshalling FieldsV1 to JSON: %w\", err)\n\t}\n\n\tu := typedObj.ExtractItems(fieldset.Leaves()).AsValue().Unstructured()\n\tm, ok := u.(map[string]interface{})\n\tif !ok {\n\t\treturn fmt.Errorf(\"unable to convert managed fields for %s to unstructured, expected map, got %T\", fieldManager, u)\n\t}\n\n\t// set the type meta manually if it doesn't exist to avoid missing kind errors\n\t// when decoding from unstructured JSON\n\tif _, ok := m[\"kind\"]; !ok && object.GetObjectKind().GroupVersionKind().Kind != \"\" {\n\t\tm[\"kind\"] = object.GetObjectKind().GroupVersionKind().Kind\n\t\tm[\"apiVersion\"] = object.GetObjectKind().GroupVersionKind().GroupVersion().String()\n\t}\n\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(m, applyConfiguration); err != nil {\n\t\treturn fmt.Errorf(\"error extracting into obj from unstructured: %w\", err)\n\t}\n\treturn nil\n}\n\nfunc findManagedFields(accessor metav1.Object, fieldManager string, subresource string) (metav1.ManagedFieldsEntry, bool) {\n\tobjManagedFields := accessor.GetManagedFields()\n\tfor _, mf := range objManagedFields {\n\t\tif mf.Manager == fieldManager && mf.Operation == metav1.ManagedFieldsOperationApply && mf.Subresource == subresource {\n\t\t\treturn mf, true\n\t\t}\n\t}\n\treturn metav1.ManagedFieldsEntry{}, false\n}\n\nfunc toTyped(obj runtime.Object, objectType typed.ParseableType) (*typed.TypedValue, error) {\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn objectType.FromUnstructured(o.Object)\n\tdefault:\n\t\treturn objectType.FromStructured(o)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/fieldmanager.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// FieldManager updates the managed fields and merges applied\n// configurations.\ntype FieldManager = internal.FieldManager\n\n// NewDefaultFieldManager creates a new FieldManager that merges apply requests\n// and update managed fields for other types of requests.\nfunc NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (*FieldManager, error) {\n\tf, err := internal.NewStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field manager: %v\", err)\n\t}\n\treturn internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil\n}\n\n// NewDefaultCRDFieldManager creates a new FieldManager specifically for\n// CRDs. This allows for the possibility of fields which are not defined\n// in models, as well as having no models defined at all.\nfunc NewDefaultCRDFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (_ *FieldManager, err error) {\n\tf, err := internal.NewCRDStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field manager: %v\", err)\n\t}\n\treturn internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil\n}\n\nfunc ValidateManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) error {\n\t_, err := internal.DecodeManagedFields(encodedManagedFields)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\tsmdschema \"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// groupVersionKindExtensionKey is the key used to lookup the\n// GroupVersionKind value for an object definition from the\n// definition's \"extensions\" map.\nconst groupVersionKindExtensionKey = \"x-kubernetes-group-version-kind\"\n\n// GvkParser contains a Parser that allows introspecting the schema.\ntype GvkParser struct {\n\tgvks   map[schema.GroupVersionKind]string\n\tparser typed.Parser\n}\n\n// Type returns a helper which can produce objects of the given type. Any\n// errors are deferred until a further function is called.\nfunc (p *GvkParser) Type(gvk schema.GroupVersionKind) *typed.ParseableType {\n\ttypeName, ok := p.gvks[gvk]\n\tif !ok {\n\t\treturn nil\n\t}\n\tt := p.parser.Type(typeName)\n\treturn &t\n}\n\n// NewGVKParser builds a GVKParser from a proto.Models. This\n// will automatically find the proper version of the object, and the\n// corresponding schema information.\nfunc NewGVKParser(models proto.Models, preserveUnknownFields bool) (*GvkParser, error) {\n\ttypeSchema, err := schemaconv.ToSchemaWithPreserveUnknownFields(models, preserveUnknownFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert models to schema: %v\", err)\n\t}\n\tparser := GvkParser{\n\t\tgvks: map[schema.GroupVersionKind]string{},\n\t}\n\tparser.parser = typed.Parser{Schema: smdschema.Schema{Types: typeSchema.Types}}\n\tfor _, modelName := range models.ListModels() {\n\t\tmodel := models.LookupModel(modelName)\n\t\tif model == nil {\n\t\t\tpanic(fmt.Sprintf(\"ListModels returns a model that can't be looked-up for: %v\", modelName))\n\t\t}\n\t\tgvkList := parseGroupVersionKind(model)\n\t\tfor _, gvk := range gvkList {\n\t\t\tif len(gvk.Kind) > 0 {\n\t\t\t\t_, ok := parser.gvks[gvk]\n\t\t\t\tif ok {\n\t\t\t\t\treturn nil, fmt.Errorf(\"duplicate entry for %v\", gvk)\n\t\t\t\t}\n\t\t\t\tparser.gvks[gvk] = modelName\n\t\t\t}\n\t\t}\n\t}\n\treturn &parser, nil\n}\n\n// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one.\nfunc parseGroupVersionKind(s proto.Schema) []schema.GroupVersionKind {\n\textensions := s.GetExtensions()\n\n\tgvkListResult := []schema.GroupVersionKind{}\n\n\t// Get the extensions\n\tgvkExtension, ok := extensions[groupVersionKindExtensionKey]\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\t// gvk extension must be a list of at least 1 element.\n\tgvkList, ok := gvkExtension.([]interface{})\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\tfor _, gvk := range gvkList {\n\t\t// gvk extension list must be a map with group, version, and\n\t\t// kind fields\n\t\tgvkMap, ok := gvk.(map[interface{}]interface{})\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tgroup, ok := gvkMap[\"group\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tversion, ok := gvkMap[\"version\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tkind, ok := gvkMap[\"kind\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tgvkListResult = append(gvkListResult, schema.GroupVersionKind{\n\t\t\tGroup:   group,\n\t\t\tVersion: version,\n\t\t\tKind:    kind,\n\t\t})\n\t}\n\n\treturn gvkListResult\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/atmostevery.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// AtMostEvery will never run the method more than once every specified\n// duration.\ntype AtMostEvery struct {\n\tdelay    time.Duration\n\tlastCall time.Time\n\tmutex    sync.Mutex\n}\n\n// NewAtMostEvery creates a new AtMostEvery, that will run the method at\n// most every given duration.\nfunc NewAtMostEvery(delay time.Duration) *AtMostEvery {\n\treturn &AtMostEvery{\n\t\tdelay: delay,\n\t}\n}\n\n// updateLastCall returns true if the lastCall time has been updated,\n// false if it was too early.\nfunc (s *AtMostEvery) updateLastCall() bool {\n\ts.mutex.Lock()\n\tdefer s.mutex.Unlock()\n\tif time.Since(s.lastCall) < s.delay {\n\t\treturn false\n\t}\n\ts.lastCall = time.Now()\n\treturn true\n}\n\n// Do will run the method if enough time has passed, and return true.\n// Otherwise, it does nothing and returns false.\nfunc (s *AtMostEvery) Do(fn func()) bool {\n\tif !s.updateLastCall() {\n\t\treturn false\n\t}\n\tfn()\n\treturn true\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/buildmanagerinfo.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype buildManagerInfoManager struct {\n\tfieldManager Manager\n\tgroupVersion schema.GroupVersion\n\tsubresource  string\n}\n\nvar _ Manager = &buildManagerInfoManager{}\n\n// NewBuildManagerInfoManager creates a new Manager that converts the manager name into a unique identifier\n// combining operation and version for update requests, and just operation for apply requests.\nfunc NewBuildManagerInfoManager(f Manager, gv schema.GroupVersion, subresource string) Manager {\n\treturn &buildManagerInfoManager{\n\t\tfieldManager: f,\n\t\tgroupVersion: gv,\n\t\tsubresource:  subresource,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *buildManagerInfoManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tmanager, err := f.buildManagerInfo(manager, metav1.ManagedFieldsOperationUpdate)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to build manager identifier: %v\", err)\n\t}\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply implements Manager.\nfunc (f *buildManagerInfoManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tmanager, err := f.buildManagerInfo(manager, metav1.ManagedFieldsOperationApply)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to build manager identifier: %v\", err)\n\t}\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n}\n\nfunc (f *buildManagerInfoManager) buildManagerInfo(prefix string, operation metav1.ManagedFieldsOperationType) (string, error) {\n\tmanagerInfo := metav1.ManagedFieldsEntry{\n\t\tManager:     prefix,\n\t\tOperation:   operation,\n\t\tAPIVersion:  f.groupVersion.String(),\n\t\tSubresource: f.subresource,\n\t}\n\tif managerInfo.Manager == \"\" {\n\t\tmanagerInfo.Manager = \"unknown\"\n\t}\n\treturn BuildManagerIdentifier(&managerInfo)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/capmanagers.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype capManagersManager struct {\n\tfieldManager          Manager\n\tmaxUpdateManagers     int\n\toldUpdatesManagerName string\n}\n\nvar _ Manager = &capManagersManager{}\n\n// NewCapManagersManager creates a new wrapped FieldManager which ensures that the number of managers from updates\n// does not exceed maxUpdateManagers, by merging some of the oldest entries on each update.\nfunc NewCapManagersManager(fieldManager Manager, maxUpdateManagers int) Manager {\n\treturn &capManagersManager{\n\t\tfieldManager:          fieldManager,\n\t\tmaxUpdateManagers:     maxUpdateManagers,\n\t\toldUpdatesManagerName: \"ancient-changes\",\n\t}\n}\n\n// Update implements Manager.\nfunc (f *capManagersManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tobject, managed, err := f.fieldManager.Update(liveObj, newObj, managed, manager)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\tif managed, err = f.capUpdateManagers(managed); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to cap update managers: %v\", err)\n\t}\n\treturn object, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *capManagersManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n}\n\n// capUpdateManagers merges a number of the oldest update entries into versioned buckets,\n// such that the number of entries from updates does not exceed f.maxUpdateManagers.\nfunc (f *capManagersManager) capUpdateManagers(managed Managed) (newManaged Managed, err error) {\n\t// Gather all entries from updates\n\tupdaters := []string{}\n\tfor manager, fields := range managed.Fields() {\n\t\tif !fields.Applied() {\n\t\t\tupdaters = append(updaters, manager)\n\t\t}\n\t}\n\tif len(updaters) <= f.maxUpdateManagers {\n\t\treturn managed, nil\n\t}\n\n\t// If we have more than the maximum, sort the update entries by time, oldest first.\n\tsort.Slice(updaters, func(i, j int) bool {\n\t\tiTime, jTime, iSeconds, jSeconds := managed.Times()[updaters[i]], managed.Times()[updaters[j]], int64(0), int64(0)\n\t\tif iTime != nil {\n\t\t\tiSeconds = iTime.Unix()\n\t\t}\n\t\tif jTime != nil {\n\t\t\tjSeconds = jTime.Unix()\n\t\t}\n\t\tif iSeconds != jSeconds {\n\t\t\treturn iSeconds < jSeconds\n\t\t}\n\t\treturn updaters[i] < updaters[j]\n\t})\n\n\t// Merge the oldest updaters with versioned bucket managers until the number of updaters is under the cap\n\tversionToFirstManager := map[string]string{}\n\tfor i, length := 0, len(updaters); i < len(updaters) && length > f.maxUpdateManagers; i++ {\n\t\tmanager := updaters[i]\n\t\tvs := managed.Fields()[manager]\n\t\ttime := managed.Times()[manager]\n\t\tversion := string(vs.APIVersion())\n\n\t\t// Create a new manager identifier for the versioned bucket entry.\n\t\t// The version for this manager comes from the version of the update being merged into the bucket.\n\t\tbucket, err := BuildManagerIdentifier(&metav1.ManagedFieldsEntry{\n\t\t\tManager:    f.oldUpdatesManagerName,\n\t\t\tOperation:  metav1.ManagedFieldsOperationUpdate,\n\t\t\tAPIVersion: version,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn managed, fmt.Errorf(\"failed to create bucket manager for version %v: %v\", version, err)\n\t\t}\n\n\t\t// Merge the fieldets if this is not the first time the version was seen.\n\t\t// Otherwise just record the manager name in versionToFirstManager\n\t\tif first, ok := versionToFirstManager[version]; ok {\n\t\t\t// If the bucket doesn't exists yet, create one.\n\t\t\tif _, ok := managed.Fields()[bucket]; !ok {\n\t\t\t\ts := managed.Fields()[first]\n\t\t\t\tdelete(managed.Fields(), first)\n\t\t\t\tmanaged.Fields()[bucket] = s\n\t\t\t}\n\n\t\t\tmanaged.Fields()[bucket] = fieldpath.NewVersionedSet(vs.Set().Union(managed.Fields()[bucket].Set()), vs.APIVersion(), vs.Applied())\n\t\t\tdelete(managed.Fields(), manager)\n\t\t\tlength--\n\n\t\t\t// Use the time from the update being merged into the bucket, since it is more recent.\n\t\t\tmanaged.Times()[bucket] = time\n\t\t} else {\n\t\t\tversionToFirstManager[version] = manager\n\t\t}\n\t}\n\n\treturn managed, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/conflict.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\n// NewConflictError returns an error including details on the requests apply conflicts\nfunc NewConflictError(conflicts merge.Conflicts) *errors.StatusError {\n\tcauses := []metav1.StatusCause{}\n\tfor _, conflict := range conflicts {\n\t\tcauses = append(causes, metav1.StatusCause{\n\t\t\tType:    metav1.CauseTypeFieldManagerConflict,\n\t\t\tMessage: fmt.Sprintf(\"conflict with %v\", printManager(conflict.Manager)),\n\t\t\tField:   conflict.Path.String(),\n\t\t})\n\t}\n\treturn errors.NewApplyConflict(causes, getConflictMessage(conflicts))\n}\n\nfunc getConflictMessage(conflicts merge.Conflicts) string {\n\tif len(conflicts) == 1 {\n\t\treturn fmt.Sprintf(\"Apply failed with 1 conflict: conflict with %v: %v\", printManager(conflicts[0].Manager), conflicts[0].Path)\n\t}\n\n\tm := map[string][]fieldpath.Path{}\n\tfor _, conflict := range conflicts {\n\t\tm[conflict.Manager] = append(m[conflict.Manager], conflict.Path)\n\t}\n\n\tuniqueManagers := []string{}\n\tfor manager := range m {\n\t\tuniqueManagers = append(uniqueManagers, manager)\n\t}\n\n\t// Print conflicts by sorted managers.\n\tsort.Strings(uniqueManagers)\n\n\tmessages := []string{}\n\tfor _, manager := range uniqueManagers {\n\t\tmessages = append(messages, fmt.Sprintf(\"conflicts with %v:\", printManager(manager)))\n\t\tfor _, path := range m[manager] {\n\t\t\tmessages = append(messages, fmt.Sprintf(\"- %v\", path))\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"Apply failed with %d conflicts: %s\", len(conflicts), strings.Join(messages, \"\\n\"))\n}\n\nfunc printManager(manager string) string {\n\tencodedManager := &metav1.ManagedFieldsEntry{}\n\tif err := json.Unmarshal([]byte(manager), encodedManager); err != nil {\n\t\treturn fmt.Sprintf(\"%q\", manager)\n\t}\n\tmanagerStr := fmt.Sprintf(\"%q\", encodedManager.Manager)\n\tif encodedManager.Subresource != \"\" {\n\t\tmanagerStr = fmt.Sprintf(\"%s with subresource %q\", managerStr, encodedManager.Subresource)\n\t}\n\tif encodedManager.Operation == metav1.ManagedFieldsOperationUpdate {\n\t\tif encodedManager.Time == nil {\n\t\t\treturn fmt.Sprintf(\"%s using %v\", managerStr, encodedManager.APIVersion)\n\t\t}\n\t\treturn fmt.Sprintf(\"%s using %v at %v\", managerStr, encodedManager.APIVersion, encodedManager.Time.UTC().Format(time.RFC3339))\n\t}\n\treturn managerStr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/fieldmanager.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\n// DefaultMaxUpdateManagers defines the default maximum retained number of managedFields entries from updates\n// if the number of update managers exceeds this, the oldest entries will be merged until the number is below the maximum.\n// TODO(jennybuckley): Determine if this is really the best value. Ideally we wouldn't unnecessarily merge too many entries.\nconst DefaultMaxUpdateManagers int = 10\n\n// DefaultTrackOnCreateProbability defines the default probability that the field management of an object\n// starts being tracked from the object's creation, instead of from the first time the object is applied to.\nconst DefaultTrackOnCreateProbability float32 = 1\n\nvar atMostEverySecond = NewAtMostEvery(time.Second)\n\n// FieldManager updates the managed fields and merges applied\n// configurations.\ntype FieldManager struct {\n\tfieldManager Manager\n\tsubresource  string\n}\n\n// NewFieldManager creates a new FieldManager that decodes, manages, then re-encodes managedFields\n// on update and apply requests.\nfunc NewFieldManager(f Manager, subresource string) *FieldManager {\n\treturn &FieldManager{fieldManager: f, subresource: subresource}\n}\n\n// newDefaultFieldManager is a helper function which wraps a Manager with certain default logic.\nfunc NewDefaultFieldManager(f Manager, typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, subresource string) *FieldManager {\n\treturn NewFieldManager(\n\t\tNewLastAppliedUpdater(\n\t\t\tNewLastAppliedManager(\n\t\t\t\tNewProbabilisticSkipNonAppliedManager(\n\t\t\t\t\tNewCapManagersManager(\n\t\t\t\t\t\tNewBuildManagerInfoManager(\n\t\t\t\t\t\t\tNewManagedFieldsUpdater(\n\t\t\t\t\t\t\t\tNewStripMetaManager(f),\n\t\t\t\t\t\t\t), kind.GroupVersion(), subresource,\n\t\t\t\t\t\t), DefaultMaxUpdateManagers,\n\t\t\t\t\t), objectCreater, kind, DefaultTrackOnCreateProbability,\n\t\t\t\t), typeConverter, objectConverter, kind.GroupVersion()),\n\t\t), subresource,\n\t)\n}\n\nfunc decodeLiveOrNew(liveObj, newObj runtime.Object, ignoreManagedFieldsFromRequestObject bool) (Managed, error) {\n\tliveAccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We take the managedFields of the live object in case the request tries to\n\t// manually set managedFields via a subresource.\n\tif ignoreManagedFieldsFromRequestObject {\n\t\treturn emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields()))\n\t}\n\n\t// If the object doesn't have metadata, we should just return without trying to\n\t// set the managedFields at all, so creates/updates/patches will work normally.\n\tnewAccessor, err := meta.Accessor(newObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif isResetManagedFields(newAccessor.GetManagedFields()) {\n\t\treturn NewEmptyManaged(), nil\n\t}\n\n\t// If the managed field is empty or we failed to decode it,\n\t// let's try the live object. This is to prevent clients who\n\t// don't understand managedFields from deleting it accidentally.\n\tmanaged, err := DecodeManagedFields(newAccessor.GetManagedFields())\n\tif err != nil || len(managed.Fields()) == 0 {\n\t\treturn emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields()))\n\t}\n\treturn managed, nil\n}\n\nfunc emptyManagedFieldsOnErr(managed Managed, err error) (Managed, error) {\n\tif err != nil {\n\t\treturn NewEmptyManaged(), nil\n\t}\n\treturn managed, nil\n}\n\n// Update is used when the object has already been merged (non-apply\n// use-case), and simply updates the managed fields in the output\n// object.\nfunc (f *FieldManager) Update(liveObj, newObj runtime.Object, manager string) (object runtime.Object, err error) {\n\t// First try to decode the managed fields provided in the update,\n\t// This is necessary to allow directly updating managed fields.\n\tisSubresource := f.subresource != \"\"\n\tmanaged, err := decodeLiveOrNew(liveObj, newObj, isSubresource)\n\tif err != nil {\n\t\treturn newObj, nil\n\t}\n\n\tRemoveObjectManagedFields(newObj)\n\n\tif object, managed, err = f.fieldManager.Update(liveObj, newObj, managed, manager); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = EncodeObjectManagedFields(object, managed); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to encode managed fields: %v\", err)\n\t}\n\n\treturn object, nil\n}\n\n// UpdateNoErrors is the same as Update, but it will not return\n// errors. If an error happens, the object is returned with\n// managedFields cleared.\nfunc (f *FieldManager) UpdateNoErrors(liveObj, newObj runtime.Object, manager string) runtime.Object {\n\tobj, err := f.Update(liveObj, newObj, manager)\n\tif err != nil {\n\t\tatMostEverySecond.Do(func() {\n\t\t\tns, name := \"unknown\", \"unknown\"\n\t\t\tif accessor, err := meta.Accessor(newObj); err == nil {\n\t\t\t\tns = accessor.GetNamespace()\n\t\t\t\tname = accessor.GetName()\n\t\t\t}\n\n\t\t\tklog.ErrorS(err, \"[SHOULD NOT HAPPEN] failed to update managedFields\", \"versionKind\",\n\t\t\t\tnewObj.GetObjectKind().GroupVersionKind(), \"namespace\", ns, \"name\", name)\n\t\t})\n\t\t// Explicitly remove managedFields on failure, so that\n\t\t// we can't have garbage in it.\n\t\tRemoveObjectManagedFields(newObj)\n\t\treturn newObj\n\t}\n\treturn obj\n}\n\n// Returns true if the managedFields indicate that the user is trying to\n// reset the managedFields, i.e. if the list is non-nil but empty, or if\n// the list has one empty item.\nfunc isResetManagedFields(managedFields []metav1.ManagedFieldsEntry) bool {\n\tif len(managedFields) == 0 {\n\t\treturn managedFields != nil\n\t}\n\n\tif len(managedFields) == 1 {\n\t\treturn reflect.DeepEqual(managedFields[0], metav1.ManagedFieldsEntry{})\n\t}\n\n\treturn false\n}\n\n// Apply is used when server-side apply is called, as it merges the\n// object and updates the managed fields.\nfunc (f *FieldManager) Apply(liveObj, appliedObj runtime.Object, manager string, force bool) (object runtime.Object, err error) {\n\t// If the object doesn't have metadata, apply isn't allowed.\n\taccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't get accessor: %v\", err)\n\t}\n\n\t// Decode the managed fields in the live object, since it isn't allowed in the patch.\n\tmanaged, err := DecodeManagedFields(accessor.GetManagedFields())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to decode managed fields: %v\", err)\n\t}\n\n\tobject, managed, err = f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n\tif err != nil {\n\t\tif conflicts, ok := err.(merge.Conflicts); ok {\n\t\t\treturn nil, NewConflictError(conflicts)\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tif err = EncodeObjectManagedFields(object, managed); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to encode managed fields: %v\", err)\n\t}\n\n\treturn object, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/fields.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"bytes\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// EmptyFields represents a set with no paths\n// It looks like metav1.Fields{Raw: []byte(\"{}\")}\nvar EmptyFields = func() metav1.FieldsV1 {\n\tf, err := SetToFields(*fieldpath.NewSet())\n\tif err != nil {\n\t\tpanic(\"should never happen\")\n\t}\n\treturn f\n}()\n\n// FieldsToSet creates a set paths from an input trie of fields\nfunc FieldsToSet(f metav1.FieldsV1) (s fieldpath.Set, err error) {\n\terr = s.FromJSON(bytes.NewReader(f.Raw))\n\treturn s, err\n}\n\n// SetToFields creates a trie of fields from an input set of paths\nfunc SetToFields(s fieldpath.Set) (f metav1.FieldsV1, err error) {\n\tf.Raw, err = s.ToJSON()\n\treturn f, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastapplied.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tapimachineryvalidation \"k8s.io/apimachinery/pkg/api/validation\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// LastAppliedConfigAnnotation is the annotation used to store the previous\n// configuration of a resource for use in a three way diff by UpdateApplyAnnotation.\n//\n// This is a copy of the corev1 annotation since we don't want to depend on the whole package.\nconst LastAppliedConfigAnnotation = \"kubectl.kubernetes.io/last-applied-configuration\"\n\n// SetLastApplied sets the last-applied annotation the given value in\n// the object.\nfunc SetLastApplied(obj runtime.Object, value string) error {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\tannotations = map[string]string{}\n\t}\n\tannotations[LastAppliedConfigAnnotation] = value\n\tif err := apimachineryvalidation.ValidateAnnotationsSize(annotations); err != nil {\n\t\tdelete(annotations, LastAppliedConfigAnnotation)\n\t}\n\taccessor.SetAnnotations(annotations)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastappliedmanager.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\ntype lastAppliedManager struct {\n\tfieldManager    Manager\n\ttypeConverter   TypeConverter\n\tobjectConverter runtime.ObjectConvertor\n\tgroupVersion    schema.GroupVersion\n}\n\nvar _ Manager = &lastAppliedManager{}\n\n// NewLastAppliedManager converts the client-side apply annotation to\n// server-side apply managed fields\nfunc NewLastAppliedManager(fieldManager Manager, typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, groupVersion schema.GroupVersion) Manager {\n\treturn &lastAppliedManager{\n\t\tfieldManager:    fieldManager,\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tgroupVersion:    groupVersion,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *lastAppliedManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply will consider the last-applied annotation\n// for upgrading an object managed by client-side apply to server-side apply\n// without conflicts.\nfunc (f *lastAppliedManager) Apply(liveObj, newObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tnewLiveObj, newManaged, newErr := f.fieldManager.Apply(liveObj, newObj, managed, manager, force)\n\t// Upgrade the client-side apply annotation only from kubectl server-side-apply.\n\t// To opt-out of this behavior, users may specify a different field manager.\n\tif manager != \"kubectl\" {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\n\t// Check if we have conflicts\n\tif newErr == nil {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tconflicts, ok := newErr.(merge.Conflicts)\n\tif !ok {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tconflictSet := conflictsToSet(conflicts)\n\n\t// Check if conflicts are allowed due to client-side apply,\n\t// and if so, then force apply\n\tallowedConflictSet, err := f.allowedConflictsFromLastApplied(liveObj)\n\tif err != nil {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tif !conflictSet.Difference(allowedConflictSet).Empty() {\n\t\tnewConflicts := conflictsDifference(conflicts, allowedConflictSet)\n\t\treturn newLiveObj, newManaged, newConflicts\n\t}\n\n\treturn f.fieldManager.Apply(liveObj, newObj, managed, manager, true)\n}\n\nfunc (f *lastAppliedManager) allowedConflictsFromLastApplied(liveObj runtime.Object) (*fieldpath.Set, error) {\n\tvar accessor, err = meta.Accessor(liveObj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\t// If there is no client-side apply annotation, then there is nothing to do\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\treturn nil, fmt.Errorf(\"no last applied annotation\")\n\t}\n\tvar lastApplied, ok = annotations[LastAppliedConfigAnnotation]\n\tif !ok || lastApplied == \"\" {\n\t\treturn nil, fmt.Errorf(\"no last applied annotation\")\n\t}\n\n\tliveObjVersioned, err := f.objectConverter.ConvertToVersion(liveObj, f.groupVersion)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert live obj to versioned: %v\", err)\n\t}\n\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert live obj to typed: %v\", err)\n\t}\n\n\tvar lastAppliedObj = &unstructured.Unstructured{Object: map[string]interface{}{}}\n\terr = json.Unmarshal([]byte(lastApplied), lastAppliedObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to decode last applied obj: %v in '%s'\", err, lastApplied)\n\t}\n\n\tif lastAppliedObj.GetAPIVersion() != f.groupVersion.String() {\n\t\treturn nil, fmt.Errorf(\"expected version of last applied to match live object '%s', but got '%s': %v\", f.groupVersion.String(), lastAppliedObj.GetAPIVersion(), err)\n\t}\n\n\tlastAppliedObjTyped, err := f.typeConverter.ObjectToTyped(lastAppliedObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert last applied to typed: %v\", err)\n\t}\n\n\tlastAppliedObjFieldSet, err := lastAppliedObjTyped.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create fieldset for last applied object: %v\", err)\n\t}\n\n\tcomparison, err := lastAppliedObjTyped.Compare(liveObjTyped)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to compare last applied object and live object: %v\", err)\n\t}\n\n\t// Remove fields in last applied that are different, added, or missing in\n\t// the live object.\n\t// Because last-applied fields don't match the live object fields,\n\t// then we don't own these fields.\n\tlastAppliedObjFieldSet = lastAppliedObjFieldSet.\n\t\tDifference(comparison.Modified).\n\t\tDifference(comparison.Added).\n\t\tDifference(comparison.Removed)\n\n\treturn lastAppliedObjFieldSet, nil\n}\n\n// TODO: replace with merge.Conflicts.ToSet()\nfunc conflictsToSet(conflicts merge.Conflicts) *fieldpath.Set {\n\tconflictSet := fieldpath.NewSet()\n\tfor _, conflict := range []merge.Conflict(conflicts) {\n\t\tconflictSet.Insert(conflict.Path)\n\t}\n\treturn conflictSet\n}\n\nfunc conflictsDifference(conflicts merge.Conflicts, s *fieldpath.Set) merge.Conflicts {\n\tnewConflicts := []merge.Conflict{}\n\tfor _, conflict := range []merge.Conflict(conflicts) {\n\t\tif !s.Has(conflict.Path) {\n\t\t\tnewConflicts = append(newConflicts, conflict)\n\t\t}\n\t}\n\treturn newConflicts\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastappliedupdater.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\ntype lastAppliedUpdater struct {\n\tfieldManager Manager\n}\n\nvar _ Manager = &lastAppliedUpdater{}\n\n// NewLastAppliedUpdater sets the client-side apply annotation up to date with\n// server-side apply managed fields\nfunc NewLastAppliedUpdater(fieldManager Manager) Manager {\n\treturn &lastAppliedUpdater{\n\t\tfieldManager: fieldManager,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *lastAppliedUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// server-side apply managed fields\nfunc (f *lastAppliedUpdater) Apply(liveObj, newObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tliveObj, managed, err := f.fieldManager.Apply(liveObj, newObj, managed, manager, force)\n\tif err != nil {\n\t\treturn liveObj, managed, err\n\t}\n\n\t// Sync the client-side apply annotation only from kubectl server-side apply.\n\t// To opt-out of this behavior, users may specify a different field manager.\n\t//\n\t// If the client-side apply annotation doesn't exist,\n\t// then continue because we have no annotation to update\n\tif manager == \"kubectl\" && hasLastApplied(liveObj) {\n\t\tlastAppliedValue, err := buildLastApplied(newObj)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to build last-applied annotation: %v\", err)\n\t\t}\n\t\terr = SetLastApplied(liveObj, lastAppliedValue)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to set last-applied annotation: %v\", err)\n\t\t}\n\t}\n\treturn liveObj, managed, err\n}\n\nfunc hasLastApplied(obj runtime.Object) bool {\n\tvar accessor, err = meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\treturn false\n\t}\n\tlastApplied, ok := annotations[LastAppliedConfigAnnotation]\n\treturn ok && len(lastApplied) > 0\n}\n\nfunc buildLastApplied(obj runtime.Object) (string, error) {\n\tobj = obj.DeepCopyObject()\n\n\tvar accessor, err = meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\t// Remove the annotation from the object before encoding the object\n\tvar annotations = accessor.GetAnnotations()\n\tdelete(annotations, LastAppliedConfigAnnotation)\n\taccessor.SetAnnotations(annotations)\n\n\tlastApplied, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"couldn't encode object into last applied annotation: %v\", err)\n\t}\n\treturn string(lastApplied), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/managedfields.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// ManagedInterface groups a fieldpath.ManagedFields together with the timestamps associated with each operation.\ntype ManagedInterface interface {\n\t// Fields gets the fieldpath.ManagedFields.\n\tFields() fieldpath.ManagedFields\n\n\t// Times gets the timestamps associated with each operation.\n\tTimes() map[string]*metav1.Time\n}\n\ntype managedStruct struct {\n\tfields fieldpath.ManagedFields\n\ttimes  map[string]*metav1.Time\n}\n\nvar _ ManagedInterface = &managedStruct{}\n\n// Fields implements ManagedInterface.\nfunc (m *managedStruct) Fields() fieldpath.ManagedFields {\n\treturn m.fields\n}\n\n// Times implements ManagedInterface.\nfunc (m *managedStruct) Times() map[string]*metav1.Time {\n\treturn m.times\n}\n\n// NewEmptyManaged creates an empty ManagedInterface.\nfunc NewEmptyManaged() ManagedInterface {\n\treturn NewManaged(fieldpath.ManagedFields{}, map[string]*metav1.Time{})\n}\n\n// NewManaged creates a ManagedInterface from a fieldpath.ManagedFields and the timestamps associated with each operation.\nfunc NewManaged(f fieldpath.ManagedFields, t map[string]*metav1.Time) ManagedInterface {\n\treturn &managedStruct{\n\t\tfields: f,\n\t\ttimes:  t,\n\t}\n}\n\n// RemoveObjectManagedFields removes the ManagedFields from the object\n// before we merge so that it doesn't appear in the ManagedFields\n// recursively.\nfunc RemoveObjectManagedFields(obj runtime.Object) {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\taccessor.SetManagedFields(nil)\n}\n\n// EncodeObjectManagedFields converts and stores the fieldpathManagedFields into the objects ManagedFields\nfunc EncodeObjectManagedFields(obj runtime.Object, managed ManagedInterface) error {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\tencodedManagedFields, err := encodeManagedFields(managed)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to convert back managed fields to API: %v\", err)\n\t}\n\taccessor.SetManagedFields(encodedManagedFields)\n\n\treturn nil\n}\n\n// DecodeManagedFields converts ManagedFields from the wire format (api format)\n// to the format used by sigs.k8s.io/structured-merge-diff\nfunc DecodeManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (ManagedInterface, error) {\n\tmanaged := managedStruct{}\n\tmanaged.fields = make(fieldpath.ManagedFields, len(encodedManagedFields))\n\tmanaged.times = make(map[string]*metav1.Time, len(encodedManagedFields))\n\n\tfor i, encodedVersionedSet := range encodedManagedFields {\n\t\tswitch encodedVersionedSet.Operation {\n\t\tcase metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate:\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"operation must be `Apply` or `Update`\")\n\t\t}\n\t\tif len(encodedVersionedSet.APIVersion) < 1 {\n\t\t\treturn nil, fmt.Errorf(\"apiVersion must not be empty\")\n\t\t}\n\t\tswitch encodedVersionedSet.FieldsType {\n\t\tcase \"FieldsV1\":\n\t\t\t// Valid case.\n\t\tcase \"\":\n\t\t\treturn nil, fmt.Errorf(\"missing fieldsType in managed fields entry %d\", i)\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"invalid fieldsType %q in managed fields entry %d\", encodedVersionedSet.FieldsType, i)\n\t\t}\n\t\tmanager, err := BuildManagerIdentifier(&encodedVersionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error decoding manager from %v: %v\", encodedVersionedSet, err)\n\t\t}\n\t\tmanaged.fields[manager], err = decodeVersionedSet(&encodedVersionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error decoding versioned set from %v: %v\", encodedVersionedSet, err)\n\t\t}\n\t\tmanaged.times[manager] = encodedVersionedSet.Time\n\t}\n\treturn &managed, nil\n}\n\n// BuildManagerIdentifier creates a manager identifier string from a ManagedFieldsEntry\nfunc BuildManagerIdentifier(encodedManager *metav1.ManagedFieldsEntry) (manager string, err error) {\n\tencodedManagerCopy := *encodedManager\n\n\t// Never include fields type in the manager identifier\n\tencodedManagerCopy.FieldsType = \"\"\n\n\t// Never include the fields in the manager identifier\n\tencodedManagerCopy.FieldsV1 = nil\n\n\t// Never include the time in the manager identifier\n\tencodedManagerCopy.Time = nil\n\n\t// For appliers, don't include the APIVersion in the manager identifier,\n\t// so it will always have the same manager identifier each time it applied.\n\tif encodedManager.Operation == metav1.ManagedFieldsOperationApply {\n\t\tencodedManagerCopy.APIVersion = \"\"\n\t}\n\n\t// Use the remaining fields to build the manager identifier\n\tb, err := json.Marshal(&encodedManagerCopy)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"error marshalling manager identifier: %v\", err)\n\t}\n\n\treturn string(b), nil\n}\n\nfunc decodeVersionedSet(encodedVersionedSet *metav1.ManagedFieldsEntry) (versionedSet fieldpath.VersionedSet, err error) {\n\tfields := EmptyFields\n\tif encodedVersionedSet.FieldsV1 != nil {\n\t\tfields = *encodedVersionedSet.FieldsV1\n\t}\n\tset, err := FieldsToSet(fields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error decoding set: %v\", err)\n\t}\n\treturn fieldpath.NewVersionedSet(&set, fieldpath.APIVersion(encodedVersionedSet.APIVersion), encodedVersionedSet.Operation == metav1.ManagedFieldsOperationApply), nil\n}\n\n// encodeManagedFields converts ManagedFields from the format used by\n// sigs.k8s.io/structured-merge-diff to the wire format (api format)\nfunc encodeManagedFields(managed ManagedInterface) (encodedManagedFields []metav1.ManagedFieldsEntry, err error) {\n\tif len(managed.Fields()) == 0 {\n\t\treturn nil, nil\n\t}\n\tencodedManagedFields = []metav1.ManagedFieldsEntry{}\n\tfor manager := range managed.Fields() {\n\t\tversionedSet := managed.Fields()[manager]\n\t\tv, err := encodeManagerVersionedSet(manager, versionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error encoding versioned set for %v: %v\", manager, err)\n\t\t}\n\t\tif t, ok := managed.Times()[manager]; ok {\n\t\t\tv.Time = t\n\t\t}\n\t\tencodedManagedFields = append(encodedManagedFields, *v)\n\t}\n\treturn sortEncodedManagedFields(encodedManagedFields)\n}\n\nfunc sortEncodedManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (sortedManagedFields []metav1.ManagedFieldsEntry, err error) {\n\tsort.Slice(encodedManagedFields, func(i, j int) bool {\n\t\tp, q := encodedManagedFields[i], encodedManagedFields[j]\n\n\t\tif p.Operation != q.Operation {\n\t\t\treturn p.Operation < q.Operation\n\t\t}\n\n\t\tpSeconds, qSeconds := int64(0), int64(0)\n\t\tif p.Time != nil {\n\t\t\tpSeconds = p.Time.Unix()\n\t\t}\n\t\tif q.Time != nil {\n\t\t\tqSeconds = q.Time.Unix()\n\t\t}\n\t\tif pSeconds != qSeconds {\n\t\t\treturn pSeconds < qSeconds\n\t\t}\n\n\t\tif p.Manager != q.Manager {\n\t\t\treturn p.Manager < q.Manager\n\t\t}\n\n\t\tif p.APIVersion != q.APIVersion {\n\t\t\treturn p.APIVersion < q.APIVersion\n\t\t}\n\t\treturn p.Subresource < q.Subresource\n\t})\n\n\treturn encodedManagedFields, nil\n}\n\nfunc encodeManagerVersionedSet(manager string, versionedSet fieldpath.VersionedSet) (encodedVersionedSet *metav1.ManagedFieldsEntry, err error) {\n\tencodedVersionedSet = &metav1.ManagedFieldsEntry{}\n\n\t// Get as many fields as we can from the manager identifier\n\terr = json.Unmarshal([]byte(manager), encodedVersionedSet)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error unmarshalling manager identifier %v: %v\", manager, err)\n\t}\n\n\t// Get the APIVersion, Operation, and Fields from the VersionedSet\n\tencodedVersionedSet.APIVersion = string(versionedSet.APIVersion())\n\tif versionedSet.Applied() {\n\t\tencodedVersionedSet.Operation = metav1.ManagedFieldsOperationApply\n\t}\n\tencodedVersionedSet.FieldsType = \"FieldsV1\"\n\tfields, err := SetToFields(*versionedSet.Set())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error encoding set: %v\", err)\n\t}\n\tencodedVersionedSet.FieldsV1 = &fields\n\n\treturn encodedVersionedSet, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/managedfieldsupdater.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype managedFieldsUpdater struct {\n\tfieldManager Manager\n}\n\nvar _ Manager = &managedFieldsUpdater{}\n\n// NewManagedFieldsUpdater is responsible for updating the managedfields\n// in the object, updating the time of the operation as necessary. For\n// updates, it uses a hard-coded manager to detect if things have\n// changed, and swaps back the correct manager after the operation is\n// done.\nfunc NewManagedFieldsUpdater(fieldManager Manager) Manager {\n\treturn &managedFieldsUpdater{\n\t\tfieldManager: fieldManager,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tself := \"current-operation\"\n\tobject, managed, err := f.fieldManager.Update(liveObj, newObj, managed, self)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\n\t// If the current operation took any fields from anything, it means the object changed,\n\t// so update the timestamp of the managedFieldsEntry and merge with any previous updates from the same manager\n\tif vs, ok := managed.Fields()[self]; ok {\n\t\tdelete(managed.Fields(), self)\n\n\t\tif previous, ok := managed.Fields()[manager]; ok {\n\t\t\tmanaged.Fields()[manager] = fieldpath.NewVersionedSet(vs.Set().Union(previous.Set()), vs.APIVersion(), vs.Applied())\n\t\t} else {\n\t\t\tmanaged.Fields()[manager] = vs\n\t\t}\n\n\t\tmanaged.Times()[manager] = &metav1.Time{Time: time.Now().UTC()}\n\t}\n\n\treturn object, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *managedFieldsUpdater) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\tobject, managed, err := f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\tif object != nil {\n\t\tmanaged.Times()[fieldManager] = &metav1.Time{Time: time.Now().UTC()}\n\t} else {\n\t\tobject = liveObj.DeepCopyObject()\n\t\tRemoveObjectManagedFields(object)\n\t}\n\treturn object, managed, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/manager.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// Managed groups a fieldpath.ManagedFields together with the timestamps associated with each operation.\ntype Managed interface {\n\t// Fields gets the fieldpath.ManagedFields.\n\tFields() fieldpath.ManagedFields\n\n\t// Times gets the timestamps associated with each operation.\n\tTimes() map[string]*metav1.Time\n}\n\n// Manager updates the managed fields and merges applied configurations.\ntype Manager interface {\n\t// Update is used when the object has already been merged (non-apply\n\t// use-case), and simply updates the managed fields in the output\n\t// object.\n\t//  * `liveObj` is not mutated by this function\n\t//  * `newObj` may be mutated by this function\n\t// Returns the new object with managedFields removed, and the object's new\n\t// proposed managedFields separately.\n\tUpdate(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error)\n\n\t// Apply is used when server-side apply is called, as it merges the\n\t// object and updates the managed fields.\n\t//  * `liveObj` is not mutated by this function\n\t//  * `newObj` may be mutated by this function\n\t// Returns the new object with managedFields removed, and the object's new\n\t// proposed managedFields separately.\n\tApply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/pathelement.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nconst (\n\t// Field indicates that the content of this path element is a field's name\n\tField = \"f\"\n\n\t// Value indicates that the content of this path element is a field's value\n\tValue = \"v\"\n\n\t// Index indicates that the content of this path element is an index in an array\n\tIndex = \"i\"\n\n\t// Key indicates that the content of this path element is a key value map\n\tKey = \"k\"\n\n\t// Separator separates the type of a path element from the contents\n\tSeparator = \":\"\n)\n\n// NewPathElement parses a serialized path element\nfunc NewPathElement(s string) (fieldpath.PathElement, error) {\n\tsplit := strings.SplitN(s, Separator, 2)\n\tif len(split) < 2 {\n\t\treturn fieldpath.PathElement{}, fmt.Errorf(\"missing colon: %v\", s)\n\t}\n\tswitch split[0] {\n\tcase Field:\n\t\treturn fieldpath.PathElement{\n\t\t\tFieldName: &split[1],\n\t\t}, nil\n\tcase Value:\n\t\tval, err := value.FromJSON([]byte(split[1]))\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tValue: &val,\n\t\t}, nil\n\tcase Index:\n\t\ti, err := strconv.Atoi(split[1])\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tIndex: &i,\n\t\t}, nil\n\tcase Key:\n\t\tkv := map[string]json.RawMessage{}\n\t\terr := json.Unmarshal([]byte(split[1]), &kv)\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\tfields := value.FieldList{}\n\t\tfor k, v := range kv {\n\t\t\tb, err := json.Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldpath.PathElement{}, err\n\t\t\t}\n\t\t\tval, err := value.FromJSON(b)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldpath.PathElement{}, err\n\t\t\t}\n\n\t\t\tfields = append(fields, value.Field{\n\t\t\t\tName:  k,\n\t\t\t\tValue: val,\n\t\t\t})\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tKey: &fields,\n\t\t}, nil\n\tdefault:\n\t\t// Ignore unknown key types\n\t\treturn fieldpath.PathElement{}, nil\n\t}\n}\n\n// PathElementString serializes a path element\nfunc PathElementString(pe fieldpath.PathElement) (string, error) {\n\tswitch {\n\tcase pe.FieldName != nil:\n\t\treturn Field + Separator + *pe.FieldName, nil\n\tcase pe.Key != nil:\n\t\tkv := map[string]json.RawMessage{}\n\t\tfor _, k := range *pe.Key {\n\t\t\tb, err := value.ToJSON(k.Value)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tm := json.RawMessage{}\n\t\t\terr = json.Unmarshal(b, &m)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tkv[k.Name] = m\n\t\t}\n\t\tb, err := json.Marshal(kv)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn Key + \":\" + string(b), nil\n\tcase pe.Value != nil:\n\t\tb, err := value.ToJSON(*pe.Value)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn Value + \":\" + string(b), nil\n\tcase pe.Index != nil:\n\t\treturn Index + \":\" + strconv.Itoa(*pe.Index), nil\n\tdefault:\n\t\treturn \"\", errors.New(\"Invalid type of path element\")\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/skipnonapplied.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype skipNonAppliedManager struct {\n\tfieldManager           Manager\n\tobjectCreater          runtime.ObjectCreater\n\tgvk                    schema.GroupVersionKind\n\tbeforeApplyManagerName string\n\tprobability            float32\n}\n\nvar _ Manager = &skipNonAppliedManager{}\n\n// NewSkipNonAppliedManager creates a new wrapped FieldManager that only starts tracking managers after the first apply.\nfunc NewSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, gvk schema.GroupVersionKind) Manager {\n\treturn NewProbabilisticSkipNonAppliedManager(fieldManager, objectCreater, gvk, 0.0)\n}\n\n// NewProbabilisticSkipNonAppliedManager creates a new wrapped FieldManager that starts tracking managers after the first apply,\n// or starts tracking on create with p probability.\nfunc NewProbabilisticSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, gvk schema.GroupVersionKind, p float32) Manager {\n\treturn &skipNonAppliedManager{\n\t\tfieldManager:           fieldManager,\n\t\tobjectCreater:          objectCreater,\n\t\tgvk:                    gvk,\n\t\tbeforeApplyManagerName: \"before-first-apply\",\n\t\tprobability:            p,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *skipNonAppliedManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\taccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn newObj, managed, nil\n\t}\n\n\t// If managed fields is empty, we need to determine whether to skip tracking managed fields.\n\tif len(managed.Fields()) == 0 {\n\t\t// Check if the operation is a create, by checking whether lastObj's UID is empty.\n\t\t// If the operation is create, P(tracking managed fields) = f.probability\n\t\t// If the operation is update, skip tracking managed fields, since we already know managed fields is empty.\n\t\tif len(accessor.GetUID()) == 0 {\n\t\t\tif f.probability <= rand.Float32() {\n\t\t\t\treturn newObj, managed, nil\n\t\t\t}\n\t\t} else {\n\t\t\treturn newObj, managed, nil\n\t\t}\n\t}\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply implements Manager.\nfunc (f *skipNonAppliedManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\tif len(managed.Fields()) == 0 {\n\t\temptyObj, err := f.objectCreater.New(f.gvk)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to create empty object of type %v: %v\", f.gvk, err)\n\t\t}\n\t\tliveObj, managed, err = f.fieldManager.Update(emptyObj, liveObj, managed, f.beforeApplyManagerName)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to create manager for existing fields: %v\", err)\n\t\t}\n\t}\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/stripmeta.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype stripMetaManager struct {\n\tfieldManager Manager\n\n\t// stripSet is the list of fields that should never be part of a mangedFields.\n\tstripSet *fieldpath.Set\n}\n\nvar _ Manager = &stripMetaManager{}\n\n// NewStripMetaManager creates a new Manager that strips metadata and typemeta fields from the manager's fieldset.\nfunc NewStripMetaManager(fieldManager Manager) Manager {\n\treturn &stripMetaManager{\n\t\tfieldManager: fieldManager,\n\t\tstripSet: fieldpath.NewSet(\n\t\t\tfieldpath.MakePathOrDie(\"apiVersion\"),\n\t\t\tfieldpath.MakePathOrDie(\"kind\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"name\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"namespace\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"creationTimestamp\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"selfLink\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"uid\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"clusterName\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"generation\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"managedFields\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"resourceVersion\"),\n\t\t),\n\t}\n}\n\n// Update implements Manager.\nfunc (f *stripMetaManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tnewObj, managed, err := f.fieldManager.Update(liveObj, newObj, managed, manager)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tf.stripFields(managed.Fields(), manager)\n\treturn newObj, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *stripMetaManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tnewObj, managed, err := f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tf.stripFields(managed.Fields(), manager)\n\treturn newObj, managed, nil\n}\n\n// stripFields removes a predefined set of paths found in typed from managed\nfunc (f *stripMetaManager) stripFields(managed fieldpath.ManagedFields, manager string) {\n\tvs, ok := managed[manager]\n\tif ok {\n\t\tif vs == nil {\n\t\t\tpanic(fmt.Sprintf(\"Found unexpected nil manager which should never happen: %s\", manager))\n\t\t}\n\t\tnewSet := vs.Set().Difference(f.stripSet)\n\t\tif newSet.Empty() {\n\t\t\tdelete(managed, manager)\n\t\t} else {\n\t\t\tmanaged[manager] = fieldpath.NewVersionedSet(newSet, vs.APIVersion(), vs.Applied())\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/structuredmerge.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\ntype structuredMergeManager struct {\n\ttypeConverter   TypeConverter\n\tobjectConverter runtime.ObjectConvertor\n\tobjectDefaulter runtime.ObjectDefaulter\n\tgroupVersion    schema.GroupVersion\n\thubVersion      schema.GroupVersion\n\tupdater         merge.Updater\n}\n\nvar _ Manager = &structuredMergeManager{}\n\n// NewStructuredMergeManager creates a new Manager that merges apply requests\n// and update managed fields for other types of requests.\nfunc NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (Manager, error) {\n\treturn &structuredMergeManager{\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tobjectDefaulter: objectDefaulter,\n\t\tgroupVersion:    gv,\n\t\thubVersion:      hub,\n\t\tupdater: merge.Updater{\n\t\t\tConverter:     newVersionConverter(typeConverter, objectConverter, hub), // This is the converter provided to SMD from k8s\n\t\t\tIgnoredFields: resetFields,\n\t\t},\n\t}, nil\n}\n\n// NewCRDStructuredMergeManager creates a new Manager specifically for\n// CRDs. This allows for the possibility of fields which are not defined\n// in models, as well as having no models defined at all.\nfunc NewCRDStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (_ Manager, err error) {\n\treturn &structuredMergeManager{\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tobjectDefaulter: objectDefaulter,\n\t\tgroupVersion:    gv,\n\t\thubVersion:      hub,\n\t\tupdater: merge.Updater{\n\t\t\tConverter:     newCRDVersionConverter(typeConverter, objectConverter, hub),\n\t\t\tIgnoredFields: resetFields,\n\t\t},\n\t}, nil\n}\n\nfunc objectGVKNN(obj runtime.Object) string {\n\tname := \"<unknown>\"\n\tnamespace := \"<unknown>\"\n\tif accessor, err := meta.Accessor(obj); err == nil {\n\t\tname = accessor.GetName()\n\t\tnamespace = accessor.GetNamespace()\n\t}\n\n\treturn fmt.Sprintf(\"%v/%v; %v\", namespace, name, obj.GetObjectKind().GroupVersionKind())\n}\n\n// Update implements Manager.\nfunc (f *structuredMergeManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tnewObjVersioned, err := f.toVersioned(newObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to proper version (%v): %v\", objectGVKNN(newObj), f.groupVersion, err)\n\t}\n\tliveObjVersioned, err := f.toVersioned(liveObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to proper version: %v\", objectGVKNN(liveObj), err)\n\t}\n\tnewObjTyped, err := f.typeConverter.ObjectToTyped(newObjVersioned)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to smd typed: %v\", objectGVKNN(newObjVersioned), err)\n\t}\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to smd typed: %v\", objectGVKNN(liveObjVersioned), err)\n\t}\n\tapiVersion := fieldpath.APIVersion(f.groupVersion.String())\n\n\t// TODO(apelisse) use the first return value when unions are implemented\n\t_, managedFields, err := f.updater.Update(liveObjTyped, newObjTyped, apiVersion, managed.Fields(), manager)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to update ManagedFields (%v): %v\", objectGVKNN(newObjVersioned), err)\n\t}\n\tmanaged = NewManaged(managedFields, managed.Times())\n\n\treturn newObj, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *structuredMergeManager) Apply(liveObj, patchObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\t// Check that the patch object has the same version as the live object\n\tif patchVersion := patchObj.GetObjectKind().GroupVersionKind().GroupVersion(); patchVersion != f.groupVersion {\n\t\treturn nil, nil,\n\t\t\terrors.NewBadRequest(\n\t\t\t\tfmt.Sprintf(\"Incorrect version specified in apply patch. \"+\n\t\t\t\t\t\"Specified patch version: %s, expected: %s\",\n\t\t\t\t\tpatchVersion, f.groupVersion))\n\t}\n\n\tpatchObjMeta, err := meta.Accessor(patchObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"couldn't get accessor: %v\", err)\n\t}\n\tif patchObjMeta.GetManagedFields() != nil {\n\t\treturn nil, nil, errors.NewBadRequest(\"metadata.managedFields must be nil\")\n\t}\n\n\tliveObjVersioned, err := f.toVersioned(liveObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to proper version: %v\", objectGVKNN(liveObj), err)\n\t}\n\n\tpatchObjTyped, err := f.typeConverter.ObjectToTyped(patchObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create typed patch object (%v): %v\", objectGVKNN(patchObj), err)\n\t}\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create typed live object (%v): %v\", objectGVKNN(liveObjVersioned), err)\n\t}\n\n\tapiVersion := fieldpath.APIVersion(f.groupVersion.String())\n\tnewObjTyped, managedFields, err := f.updater.Apply(liveObjTyped, patchObjTyped, apiVersion, managed.Fields(), manager, force)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tmanaged = NewManaged(managedFields, managed.Times())\n\n\tif newObjTyped == nil {\n\t\treturn nil, managed, nil\n\t}\n\n\tnewObj, err := f.typeConverter.TypedToObject(newObjTyped)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new typed object (%v) to object: %v\", objectGVKNN(patchObj), err)\n\t}\n\n\tnewObjVersioned, err := f.toVersioned(newObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to proper version: %v\", objectGVKNN(patchObj), err)\n\t}\n\tf.objectDefaulter.Default(newObjVersioned)\n\n\tnewObjUnversioned, err := f.toUnversioned(newObjVersioned)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert to unversioned (%v): %v\", objectGVKNN(patchObj), err)\n\t}\n\treturn newObjUnversioned, managed, nil\n}\n\nfunc (f *structuredMergeManager) toVersioned(obj runtime.Object) (runtime.Object, error) {\n\treturn f.objectConverter.ConvertToVersion(obj, f.groupVersion)\n}\n\nfunc (f *structuredMergeManager) toUnversioned(obj runtime.Object) (runtime.Object, error) {\n\treturn f.objectConverter.ConvertToVersion(obj, f.hubVersion)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/typeconverter.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\tsmdschema \"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// TypeConverter allows you to convert from runtime.Object to\n// typed.TypedValue and the other way around.\ntype TypeConverter interface {\n\tObjectToTyped(runtime.Object) (*typed.TypedValue, error)\n\tTypedToObject(*typed.TypedValue) (runtime.Object, error)\n}\n\ntype typeConverter struct {\n\tparser map[schema.GroupVersionKind]*typed.ParseableType\n}\n\nvar _ TypeConverter = &typeConverter{}\n\nfunc NewTypeConverter(openapiSpec map[string]*spec.Schema, preserveUnknownFields bool) (TypeConverter, error) {\n\ttypeSchema, err := schemaconv.ToSchemaFromOpenAPI(openapiSpec, preserveUnknownFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert models to schema: %v\", err)\n\t}\n\n\ttypeParser := typed.Parser{Schema: smdschema.Schema{Types: typeSchema.Types}}\n\ttr := indexModels(&typeParser, openapiSpec)\n\n\treturn &typeConverter{parser: tr}, nil\n}\n\nfunc (c *typeConverter) ObjectToTyped(obj runtime.Object) (*typed.TypedValue, error) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tt := c.parser[gvk]\n\tif t == nil {\n\t\treturn nil, NewNoCorrespondingTypeError(gvk)\n\t}\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn t.FromUnstructured(o.UnstructuredContent())\n\tdefault:\n\t\treturn t.FromStructured(obj)\n\t}\n}\n\nfunc (c *typeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, error) {\n\treturn valueToObject(value.AsValue())\n}\n\ntype deducedTypeConverter struct{}\n\n// DeducedTypeConverter is a TypeConverter for CRDs that don't have a\n// schema. It does implement the same interface though (and create the\n// same types of objects), so that everything can still work the same.\n// CRDs are merged with all their fields being \"atomic\" (lists\n// included).\nfunc NewDeducedTypeConverter() TypeConverter {\n\treturn deducedTypeConverter{}\n}\n\n// ObjectToTyped converts an object into a TypedValue with a \"deduced type\".\nfunc (deducedTypeConverter) ObjectToTyped(obj runtime.Object) (*typed.TypedValue, error) {\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn typed.DeducedParseableType.FromUnstructured(o.UnstructuredContent())\n\tdefault:\n\t\treturn typed.DeducedParseableType.FromStructured(obj)\n\t}\n}\n\n// TypedToObject transforms the typed value into a runtime.Object. That\n// is not specific to deduced type.\nfunc (deducedTypeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, error) {\n\treturn valueToObject(value.AsValue())\n}\n\nfunc valueToObject(val value.Value) (runtime.Object, error) {\n\tvu := val.Unstructured()\n\tswitch o := vu.(type) {\n\tcase map[string]interface{}:\n\t\treturn &unstructured.Unstructured{Object: o}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"failed to convert value to unstructured for type %T\", vu)\n\t}\n}\n\nfunc indexModels(\n\ttypeParser *typed.Parser,\n\topenAPISchemas map[string]*spec.Schema,\n) map[schema.GroupVersionKind]*typed.ParseableType {\n\ttr := map[schema.GroupVersionKind]*typed.ParseableType{}\n\tfor modelName, model := range openAPISchemas {\n\t\tgvkList := parseGroupVersionKind(model.Extensions)\n\t\tif len(gvkList) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tparsedType := typeParser.Type(modelName)\n\t\tfor _, gvk := range gvkList {\n\t\t\tif len(gvk.Kind) > 0 {\n\t\t\t\ttr[schema.GroupVersionKind(gvk)] = &parsedType\n\t\t\t}\n\t\t}\n\t}\n\treturn tr\n}\n\n// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one.\nfunc parseGroupVersionKind(extensions map[string]interface{}) []schema.GroupVersionKind {\n\tgvkListResult := []schema.GroupVersionKind{}\n\n\t// Get the extensions\n\tgvkExtension, ok := extensions[\"x-kubernetes-group-version-kind\"]\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\t// gvk extension must be a list of at least 1 element.\n\tgvkList, ok := gvkExtension.([]interface{})\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\tfor _, gvk := range gvkList {\n\t\tvar group, version, kind string\n\n\t\t// gvk extension list must be a map with group, version, and\n\t\t// kind fields\n\t\tif gvkMap, ok := gvk.(map[interface{}]interface{}); ok {\n\t\t\tgroup, ok = gvkMap[\"group\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tversion, ok = gvkMap[\"version\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tkind, ok = gvkMap[\"kind\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t} else if gvkMap, ok := gvk.(map[string]interface{}); ok {\n\t\t\tgroup, ok = gvkMap[\"group\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tversion, ok = gvkMap[\"version\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tkind, ok = gvkMap[\"kind\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\tcontinue\n\t\t}\n\n\t\tgvkListResult = append(gvkListResult, schema.GroupVersionKind{\n\t\t\tGroup:   group,\n\t\t\tVersion: version,\n\t\t\tKind:    kind,\n\t\t})\n\t}\n\n\treturn gvkListResult\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/versionconverter.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// versionConverter is an implementation of\n// sigs.k8s.io/structured-merge-diff/merge.Converter\ntype versionConverter struct {\n\ttypeConverter   TypeConverter\n\tobjectConvertor runtime.ObjectConvertor\n\thubGetter       func(from schema.GroupVersion) schema.GroupVersion\n}\n\nvar _ merge.Converter = &versionConverter{}\n\n// NewVersionConverter builds a VersionConverter from a TypeConverter and an ObjectConvertor.\nfunc newVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.GroupVersion) merge.Converter {\n\treturn &versionConverter{\n\t\ttypeConverter:   t,\n\t\tobjectConvertor: o,\n\t\thubGetter: func(from schema.GroupVersion) schema.GroupVersion {\n\t\t\treturn schema.GroupVersion{\n\t\t\t\tGroup:   from.Group,\n\t\t\t\tVersion: h.Version,\n\t\t\t}\n\t\t},\n\t}\n}\n\n// NewCRDVersionConverter builds a VersionConverter for CRDs from a TypeConverter and an ObjectConvertor.\nfunc newCRDVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.GroupVersion) merge.Converter {\n\treturn &versionConverter{\n\t\ttypeConverter:   t,\n\t\tobjectConvertor: o,\n\t\thubGetter: func(from schema.GroupVersion) schema.GroupVersion {\n\t\t\treturn h\n\t\t},\n\t}\n}\n\n// Convert implements sigs.k8s.io/structured-merge-diff/merge.Converter\nfunc (v *versionConverter) Convert(object *typed.TypedValue, version fieldpath.APIVersion) (*typed.TypedValue, error) {\n\t// Convert the smd typed value to a kubernetes object.\n\tobjectToConvert, err := v.typeConverter.TypedToObject(object)\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Parse the target groupVersion.\n\tgroupVersion, err := schema.ParseGroupVersion(string(version))\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// If attempting to convert to the same version as we already have, just return it.\n\tfromVersion := objectToConvert.GetObjectKind().GroupVersionKind().GroupVersion()\n\tif fromVersion == groupVersion {\n\t\treturn object, nil\n\t}\n\n\t// Convert to internal\n\tinternalObject, err := v.objectConvertor.ConvertToVersion(objectToConvert, v.hubGetter(fromVersion))\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Convert the object into the target version\n\tconvertedObject, err := v.objectConvertor.ConvertToVersion(internalObject, groupVersion)\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Convert the object back to a smd typed value and return it.\n\treturn v.typeConverter.ObjectToTyped(convertedObject)\n}\n\n// IsMissingVersionError\nfunc (v *versionConverter) IsMissingVersionError(err error) bool {\n\treturn runtime.IsNotRegisteredError(err) || isNoCorrespondingTypeError(err)\n}\n\ntype noCorrespondingTypeErr struct {\n\tgvk schema.GroupVersionKind\n}\n\nfunc NewNoCorrespondingTypeError(gvk schema.GroupVersionKind) error {\n\treturn &noCorrespondingTypeErr{gvk: gvk}\n}\n\nfunc (k *noCorrespondingTypeErr) Error() string {\n\treturn fmt.Sprintf(\"no corresponding type for %v\", k.gvk)\n}\n\nfunc isNoCorrespondingTypeError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*noCorrespondingTypeErr)\n\treturn ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/node.yaml",
    "content": "apiVersion: v1\nkind: Node\nmetadata:\n  annotations:\n    container.googleapis.com/instance_id: \"123456789321654789\"\n    node.alpha.kubernetes.io/ttl: \"0\"\n    volumes.kubernetes.io/controller-managed-attach-detach: \"true\"\n  creationTimestamp: \"2019-07-09T16:17:29Z\"\n  labels:\n    kubernetes.io/arch: amd64\n    beta.kubernetes.io/fluentd-ds-ready: \"true\"\n    beta.kubernetes.io/instance-type: n1-standard-4\n    kubernetes.io/os: linux\n    cloud.google.com/gke-nodepool: default-pool\n    cloud.google.com/gke-os-distribution: cos\n    failure-domain.beta.kubernetes.io/region: us-central1\n    failure-domain.beta.kubernetes.io/zone: us-central1-b\n    topology.kubernetes.io/region: us-central1\n    topology.kubernetes.io/zone: us-central1-b\n    kubernetes.io/hostname: node-default-pool-something\n  name: node-default-pool-something\n  resourceVersion: \"211582541\"\n  selfLink: /api/v1/nodes/node-default-pool-something\n  uid: 0c24d0e1-a265-11e9-abe4-42010a80026b\nspec:\n  podCIDR: 10.0.0.1/24\n  providerID: some-provider-id-of-some-sort\nstatus:\n  addresses:\n  - address: 10.0.0.1\n    type: InternalIP\n  - address: 192.168.0.1\n    type: ExternalIP\n  - address: node-default-pool-something\n    type: Hostname\n  allocatable:\n    cpu: 3920m\n    ephemeral-storage: \"104638878617\"\n    hugepages-2Mi: \"0\"\n    memory: 12700100Ki\n    pods: \"110\"\n  capacity:\n    cpu: \"4\"\n    ephemeral-storage: 202086868Ki\n    hugepages-2Mi: \"0\"\n    memory: 15399364Ki\n    pods: \"110\"\n  conditions:\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:08Z\"\n    message: containerd is functioning properly\n    reason: FrequentContainerdRestart\n    status: \"False\"\n    type: FrequentContainerdRestart\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: docker overlay2 is functioning properly\n    reason: CorruptDockerOverlay2\n    status: \"False\"\n    type: CorruptDockerOverlay2\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: node is functioning properly\n    reason: UnregisterNetDevice\n    status: \"False\"\n    type: FrequentUnregisterNetDevice\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:17:04Z\"\n    message: kernel has no deadlock\n    reason: KernelHasNoDeadlock\n    status: \"False\"\n    type: KernelDeadlock\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:17:04Z\"\n    message: Filesystem is not read-only\n    reason: FilesystemIsNotReadOnly\n    status: \"False\"\n    type: ReadonlyFilesystem\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:05Z\"\n    message: kubelet is functioning properly\n    reason: FrequentKubeletRestart\n    status: \"False\"\n    type: FrequentKubeletRestart\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: docker is functioning properly\n    reason: FrequentDockerRestart\n    status: \"False\"\n    type: FrequentDockerRestart\n  - lastHeartbeatTime: \"2019-07-09T16:17:47Z\"\n    lastTransitionTime: \"2019-07-09T16:17:47Z\"\n    message: RouteController created a route\n    reason: RouteCreated\n    status: \"False\"\n    type: NetworkUnavailable\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient disk space available\n    reason: KubeletHasSufficientDisk\n    status: \"False\"\n    type: OutOfDisk\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient memory available\n    reason: KubeletHasSufficientMemory\n    status: \"False\"\n    type: MemoryPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has no disk pressure\n    reason: KubeletHasNoDiskPressure\n    status: \"False\"\n    type: DiskPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient PID available\n    reason: KubeletHasSufficientPID\n    status: \"False\"\n    type: PIDPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:49Z\"\n    message: kubelet is posting ready status. AppArmor enabled\n    reason: KubeletReady\n    status: \"True\"\n    type: Ready\n  daemonEndpoints:\n    kubeletEndpoint:\n      Port: 10250\n  images:\n  - names:\n    - grafana/grafana@sha256:80e5e113a984d74836aa16f5b4524012099436b1a50df293f00ac6377fb512c8\n    - grafana/grafana:4.4.2\n    sizeBytes: 287008013\n  - names:\n    - registry.k8s.io/node-problem-detector@sha256:f95cab985c26b2f46e9bd43283e0bfa88860c14e0fb0649266babe8b65e9eb2b\n    - registry.k8s.io/node-problem-detector:v0.4.1\n    sizeBytes: 286572743\n  - names:\n    - grafana/grafana@sha256:7ff7f9b2501a5d55b55ce3f58d21771b1c5af1f2a4ab7dbf11bef7142aae7033\n    - grafana/grafana:4.2.0\n    sizeBytes: 277940263\n  - names:\n    - influxdb@sha256:7dddf03376348876ed4bdf33d6dfa3326f45a2bae0930dbd80781a374eb519bc\n    - influxdb:1.2.2\n    sizeBytes: 223948571\n  - names:\n    - gcr.io/stackdriver-agents/stackdriver-logging-agent@sha256:f8d5231b67b9c53f60068b535a11811d29d1b3efd53d2b79f2a2591ea338e4f2\n    - gcr.io/stackdriver-agents/stackdriver-logging-agent:0.6-1.6.0-1\n    sizeBytes: 223242132\n  - names:\n    - nginx@sha256:35779791c05d119df4fe476db8f47c0bee5943c83eba5656a15fc046db48178b\n    - nginx:1.10.1\n    sizeBytes: 180708613\n  - names:\n    - registry.k8s.io/fluentd-elasticsearch@sha256:b8c94527b489fb61d3d81ce5ad7f3ddbb7be71e9620a3a36e2bede2f2e487d73\n    - registry.k8s.io/fluentd-elasticsearch:v2.0.4\n    sizeBytes: 135716379\n  - names:\n    - nginx@sha256:00be67d6ba53d5318cd91c57771530f5251cfbe028b7be2c4b70526f988cfc9f\n    - nginx:latest\n    sizeBytes: 109357355\n  - names:\n    - registry.k8s.io/kubernetes-dashboard-amd64@sha256:dc4026c1b595435ef5527ca598e1e9c4343076926d7d62b365c44831395adbd0\n    - registry.k8s.io/kubernetes-dashboard-amd64:v1.8.3\n    sizeBytes: 102319441\n  - names:\n    - gcr.io/google_containers/kube-proxy:v1.11.10-gke.5\n    - registry.k8s.io/kube-proxy:v1.11.10-gke.5\n    sizeBytes: 102279340\n  - names:\n    - registry.k8s.io/event-exporter@sha256:7f9cd7cb04d6959b0aa960727d04fa86759008048c785397b7b0d9dff0007516\n    - registry.k8s.io/event-exporter:v0.2.3\n    sizeBytes: 94171943\n  - names:\n    - registry.k8s.io/prometheus-to-sd@sha256:6c0c742475363d537ff059136e5d5e4ab1f512ee0fd9b7ca42ea48bc309d1662\n    - registry.k8s.io/prometheus-to-sd:v0.3.1\n    sizeBytes: 88077694\n  - names:\n    - registry.k8s.io/fluentd-gcp-scaler@sha256:a5ace7506d393c4ed65eb2cbb6312c64ab357fcea16dff76b9055bc6e498e5ff\n    - registry.k8s.io/fluentd-gcp-scaler:0.5.1\n    sizeBytes: 86637208\n  - names:\n    - registry.k8s.io/heapster-amd64@sha256:9fae0af136ce0cf4f88393b3670f7139ffc464692060c374d2ae748e13144521\n    - registry.k8s.io/heapster-amd64:v1.6.0-beta.1\n    sizeBytes: 76016169\n  - names:\n    - registry.k8s.io/ingress-glbc-amd64@sha256:31d36bbd9c44caffa135fc78cf0737266fcf25e3cf0cd1c2fcbfbc4f7309cc52\n    - registry.k8s.io/ingress-glbc-amd64:v1.1.1\n    sizeBytes: 67801919\n  - names:\n    - registry.k8s.io/kube-addon-manager@sha256:d53486c3a0b49ebee019932878dc44232735d5622a51dbbdcec7124199020d09\n    - registry.k8s.io/kube-addon-manager:v8.7\n    sizeBytes: 63322109\n  - names:\n    - nginx@sha256:4aacdcf186934dcb02f642579314075910f1855590fd3039d8fa4c9f96e48315\n    - nginx:1.10-alpine\n    sizeBytes: 54042627\n  - names:\n    - registry.k8s.io/cpvpa-amd64@sha256:cfe7b0a11c9c8e18c87b1eb34fef9a7cbb8480a8da11fc2657f78dbf4739f869\n    - registry.k8s.io/cpvpa-amd64:v0.6.0\n    sizeBytes: 51785854\n  - names:\n    - registry.k8s.io/cluster-proportional-autoscaler-amd64@sha256:003f98d9f411ddfa6ff6d539196355e03ddd69fa4ed38c7ffb8fec6f729afe2d\n    - registry.k8s.io/cluster-proportional-autoscaler-amd64:1.1.2-r2\n    sizeBytes: 49648481\n  - names:\n    - registry.k8s.io/ip-masq-agent-amd64@sha256:1ffda57d87901bc01324c82ceb2145fe6a0448d3f0dd9cb65aa76a867cd62103\n    - registry.k8s.io/ip-masq-agent-amd64:v2.1.1\n    sizeBytes: 49612505\n  - names:\n    - registry.k8s.io/k8s-dns-kube-dns-amd64@sha256:b99fc3eee2a9f052f7eb4cc00f15eb12fc405fa41019baa2d6b79847ae7284a8\n    - registry.k8s.io/k8s-dns-kube-dns-amd64:1.14.10\n    sizeBytes: 49549457\n  - names:\n    - registry.k8s.io/rescheduler@sha256:156cfbfd05a5a815206fd2eeb6cbdaf1596d71ea4b415d3a6c43071dd7b99450\n    - registry.k8s.io/rescheduler:v0.4.0\n    sizeBytes: 48973149\n  - names:\n    - registry.k8s.io/event-exporter@sha256:16ca66e2b5dc7a1ce6a5aafcb21d0885828b75cdfc08135430480f7ad2364adc\n    - registry.k8s.io/event-exporter:v0.2.4\n    sizeBytes: 47261019\n  - names:\n    - registry.k8s.io/coredns@sha256:db2bf53126ed1c761d5a41f24a1b82a461c85f736ff6e90542e9522be4757848\n    - registry.k8s.io/coredns:1.1.3\n    sizeBytes: 45587362\n  - names:\n    - prom/prometheus@sha256:483f4c9d7733699ba79facca9f8bcce1cef1af43dfc3e7c5a1882aa85f53cb74\n    - prom/prometheus:v1.1.3\n    sizeBytes: 45493941\n  nodeInfo:\n    architecture: amd64\n    bootID: a32eca78-4ad4-4b76-9252-f143d6c2ae61\n    containerRuntimeVersion: docker://17.3.2\n    kernelVersion: 4.14.127+\n    kubeProxyVersion: v1.11.10-gke.5\n    kubeletVersion: v1.11.10-gke.5\n    machineID: 1739555e5b231057f0f9a0b5fa29511b\n    operatingSystem: linux\n    osImage: Container-Optimized OS from Google\n    systemUUID: 1739555E-5B23-1057-F0F9-A0B5FA29511B\n  volumesAttached:\n  - devicePath: /dev/disk/by-id/b9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n  - devicePath: /dev/disk/by-id/b9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n  volumesInUse:\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/pod.yaml",
    "content": "apiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    app: some-app\n    plugin1: some-value\n    plugin2: some-value\n    plugin3: some-value\n    plugin4: some-value\n  name: some-name\n  namespace: default\n  ownerReferences:\n  - apiVersion: apps/v1\n    blockOwnerDeletion: true\n    controller: true\n    kind: ReplicaSet\n    name: some-name\n    uid: 0a9d2b9e-779e-11e7-b422-42010a8001be\nspec:\n  containers:\n  - args:\n    - one\n    - two\n    - three\n    - four\n    - five\n    - six\n    - seven\n    - eight\n    - nine\n    env:\n    - name: VAR_3\n      valueFrom:\n        secretKeyRef:\n          key: some-other-key\n          name: some-oher-name\n    - name: VAR_2\n      valueFrom:\n        secretKeyRef:\n          key: other-key\n          name: other-name\n    - name: VAR_1\n      valueFrom:\n        secretKeyRef:\n          key: some-key\n          name: some-name\n    image: some-image-name\n    imagePullPolicy: IfNotPresent\n    name: some-name\n    resources:\n      requests:\n        cpu: '0'\n    terminationMessagePath: /dev/termination-log\n    terminationMessagePolicy: File\n    volumeMounts:\n    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount\n      name: default-token-hu5jz\n      readOnly: true\n  dnsPolicy: ClusterFirst\n  nodeName: node-name\n  priority: 0\n  restartPolicy: Always\n  schedulerName: default-scheduler\n  securityContext: {}\n  serviceAccount: default\n  serviceAccountName: default\n  terminationGracePeriodSeconds: 30\n  tolerations:\n  - effect: NoExecute\n    key: node.kubernetes.io/not-ready\n    operator: Exists\n    tolerationSeconds: 300\n  - effect: NoExecute\n    key: node.kubernetes.io/unreachable\n    operator: Exists\n    tolerationSeconds: 300\n  volumes:\n  - name: default-token-hu5jz\n    secret:\n      defaultMode: 420\n      secretName: default-token-hu5jz\nstatus:\n  conditions:\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:31:18Z'\n    status: 'True'\n    type: Initialized\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:41:59Z'\n    status: 'True'\n    type: Ready\n  - lastProbeTime: null\n    lastTransitionTime: null\n    status: 'True'\n    type: ContainersReady\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:31:18Z'\n    status: 'True'\n    type: PodScheduled\n  containerStatuses:\n  - containerID: docker://885e82a1ed0b7356541bb410a0126921ac42439607c09875cd8097dd5d7b5376\n    image: some-image-name\n    imageID: docker-pullable://some-image-id\n    lastState:\n      terminated:\n        containerID: docker://d57290f9e00fad626b20d2dd87a3cf69bbc22edae07985374f86a8b2b4e39565\n        exitCode: 255\n        finishedAt: '2019-07-08T09:39:09Z'\n        reason: Error\n        startedAt: '2019-07-08T09:38:54Z'\n    name: name\n    ready: true\n    restartCount: 6\n    state:\n      running:\n        startedAt: '2019-07-08T09:41:59Z'\n  hostIP: 10.0.0.1\n  phase: Running\n  podIP: 10.0.0.1\n  qosClass: BestEffort\n  startTime: '2019-07-08T09:31:18Z'\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/scalehandler.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\nvar (\n\tscaleGroupVersion   = schema.GroupVersion{Group: \"autoscaling\", Version: \"v1\"}\n\treplicasPathInScale = fieldpath.MakePathOrDie(\"spec\", \"replicas\")\n)\n\n// ResourcePathMappings maps a group/version to its replicas path. The\n// assumption is that all the paths correspond to leaf fields.\ntype ResourcePathMappings map[string]fieldpath.Path\n\n// ScaleHandler manages the conversion of managed fields between a main\n// resource and the scale subresource\ntype ScaleHandler struct {\n\tparentEntries []metav1.ManagedFieldsEntry\n\tgroupVersion  schema.GroupVersion\n\tmappings      ResourcePathMappings\n}\n\n// NewScaleHandler creates a new ScaleHandler\nfunc NewScaleHandler(parentEntries []metav1.ManagedFieldsEntry, groupVersion schema.GroupVersion, mappings ResourcePathMappings) *ScaleHandler {\n\treturn &ScaleHandler{\n\t\tparentEntries: parentEntries,\n\t\tgroupVersion:  groupVersion,\n\t\tmappings:      mappings,\n\t}\n}\n\n// ToSubresource filter the managed fields of the main resource and convert\n// them so that they can be handled by scale.\n// For the managed fields that have a replicas path it performs two changes:\n//  1. APIVersion is changed to the APIVersion of the scale subresource\n//  2. Replicas path of the main resource is transformed to the replicas path of\n//     the scale subresource\nfunc (h *ScaleHandler) ToSubresource() ([]metav1.ManagedFieldsEntry, error) {\n\tmanaged, err := internal.DecodeManagedFields(h.parentEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := fieldpath.ManagedFields{}\n\tt := map[string]*metav1.Time{}\n\tfor manager, versionedSet := range managed.Fields() {\n\t\tpath, ok := h.mappings[string(versionedSet.APIVersion())]\n\t\t// Skip the entry if the APIVersion is unknown\n\t\tif !ok || path == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif versionedSet.Set().Has(path) {\n\t\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\t\tfieldpath.NewSet(replicasPathInScale),\n\t\t\t\tfieldpath.APIVersion(scaleGroupVersion.String()),\n\t\t\t\tversionedSet.Applied(),\n\t\t\t)\n\n\t\t\tf[manager] = newVersionedSet\n\t\t\tt[manager] = managed.Times()[manager]\n\t\t}\n\t}\n\n\treturn managedFieldsEntries(internal.NewManaged(f, t))\n}\n\n// ToParent merges `scaleEntries` with the entries of the main resource and\n// transforms them accordingly\nfunc (h *ScaleHandler) ToParent(scaleEntries []metav1.ManagedFieldsEntry) ([]metav1.ManagedFieldsEntry, error) {\n\tdecodedParentEntries, err := internal.DecodeManagedFields(h.parentEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tparentFields := decodedParentEntries.Fields()\n\n\tdecodedScaleEntries, err := internal.DecodeManagedFields(scaleEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tscaleFields := decodedScaleEntries.Fields()\n\n\tf := fieldpath.ManagedFields{}\n\tt := map[string]*metav1.Time{}\n\n\tfor manager, versionedSet := range parentFields {\n\t\t// Get the main resource \"replicas\" path\n\t\tpath, ok := h.mappings[string(versionedSet.APIVersion())]\n\t\t// Drop the entry if the APIVersion is unknown.\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// If the parent entry does not have the replicas path or it is nil, just\n\t\t// keep it as it is. The path is nil for Custom Resources without scale\n\t\t// subresource.\n\t\tif path == nil || !versionedSet.Set().Has(path) {\n\t\t\tf[manager] = versionedSet\n\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, ok := scaleFields[manager]; !ok {\n\t\t\t// \"Steal\" the replicas path from the main resource entry\n\t\t\tnewSet := versionedSet.Set().Difference(fieldpath.NewSet(path))\n\n\t\t\tif !newSet.Empty() {\n\t\t\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\t\t\tnewSet,\n\t\t\t\t\tversionedSet.APIVersion(),\n\t\t\t\t\tversionedSet.Applied(),\n\t\t\t\t)\n\t\t\t\tf[manager] = newVersionedSet\n\t\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\t}\n\t\t} else {\n\t\t\t// Field wasn't stolen, let's keep the entry as it is.\n\t\t\tf[manager] = versionedSet\n\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\tdelete(scaleFields, manager)\n\t\t}\n\t}\n\n\tfor manager, versionedSet := range scaleFields {\n\t\tif !versionedSet.Set().Has(replicasPathInScale) {\n\t\t\tcontinue\n\t\t}\n\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\tfieldpath.NewSet(h.mappings[h.groupVersion.String()]),\n\t\t\tfieldpath.APIVersion(h.groupVersion.String()),\n\t\t\tversionedSet.Applied(),\n\t\t)\n\t\tf[manager] = newVersionedSet\n\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t}\n\n\treturn managedFieldsEntries(internal.NewManaged(f, t))\n}\n\nfunc managedFieldsEntries(entries internal.ManagedInterface) ([]metav1.ManagedFieldsEntry, error) {\n\tobj := &unstructured.Unstructured{Object: map[string]interface{}{}}\n\tif err := internal.EncodeObjectManagedFields(obj, entries); err != nil {\n\t\treturn nil, err\n\t}\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\treturn accessor.GetManagedFields(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/typeconverter.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// TypeConverter allows you to convert from runtime.Object to\n// typed.TypedValue and the other way around.\ntype TypeConverter = internal.TypeConverter\n\n// NewDeducedTypeConverter creates a TypeConverter for CRDs that don't\n// have a schema. It does implement the same interface though (and\n// create the same types of objects), so that everything can still work\n// the same. CRDs are merged with all their fields being \"atomic\" (lists\n// included).\nfunc NewDeducedTypeConverter() TypeConverter {\n\treturn internal.NewDeducedTypeConverter()\n}\n\n// NewTypeConverter builds a TypeConverter from a map of OpenAPIV3 schemas.\n// This will automatically find the proper version of the object, and the\n// corresponding schema information.\n// The keys to the map must be consistent with the names\n// used by Refs within the schemas.\n// The schemas should conform to the Kubernetes Structural Schema OpenAPI\n// restrictions found in docs:\n// https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#specifying-a-structural-schema\nfunc NewTypeConverter(openapiSpec map[string]*spec.Schema, preserveUnknownFields bool) (TypeConverter, error) {\n\treturn internal.NewTypeConverter(openapiSpec, preserveUnknownFields)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - pwittrock\nreviewers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/errors.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage mergepatch\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\nvar (\n\tErrBadJSONDoc                           = errors.New(\"invalid JSON document\")\n\tErrNoListOfLists                        = errors.New(\"lists of lists are not supported\")\n\tErrBadPatchFormatForPrimitiveList       = errors.New(\"invalid patch format of primitive list\")\n\tErrBadPatchFormatForRetainKeys          = errors.New(\"invalid patch format of retainKeys\")\n\tErrBadPatchFormatForSetElementOrderList = errors.New(\"invalid patch format of setElementOrder list\")\n\tErrPatchContentNotMatchRetainKeys       = errors.New(\"patch content doesn't match retainKeys list\")\n\tErrUnsupportedStrategicMergePatchFormat = errors.New(\"strategic merge patch format is not supported\")\n)\n\nfunc ErrNoMergeKey(m map[string]interface{}, k string) error {\n\treturn fmt.Errorf(\"map: %v does not contain declared merge key: %s\", m, k)\n}\n\nfunc ErrBadArgType(expected, actual interface{}) error {\n\treturn fmt.Errorf(\"expected a %s, but received a %s\",\n\t\treflect.TypeOf(expected),\n\t\treflect.TypeOf(actual))\n}\n\nfunc ErrBadArgKind(expected, actual interface{}) error {\n\tvar expectedKindString, actualKindString string\n\tif expected == nil {\n\t\texpectedKindString = \"nil\"\n\t} else {\n\t\texpectedKindString = reflect.TypeOf(expected).Kind().String()\n\t}\n\tif actual == nil {\n\t\tactualKindString = \"nil\"\n\t} else {\n\t\tactualKindString = reflect.TypeOf(actual).Kind().String()\n\t}\n\treturn fmt.Errorf(\"expected a %s, but received a %s\", expectedKindString, actualKindString)\n}\n\nfunc ErrBadPatchType(t interface{}, m map[string]interface{}) error {\n\treturn fmt.Errorf(\"unknown patch type: %s in map: %v\", t, m)\n}\n\n// IsPreconditionFailed returns true if the provided error indicates\n// a precondition failed.\nfunc IsPreconditionFailed(err error) bool {\n\t_, ok := err.(ErrPreconditionFailed)\n\treturn ok\n}\n\ntype ErrPreconditionFailed struct {\n\tmessage string\n}\n\nfunc NewErrPreconditionFailed(target map[string]interface{}) ErrPreconditionFailed {\n\ts := fmt.Sprintf(\"precondition failed for: %v\", target)\n\treturn ErrPreconditionFailed{s}\n}\n\nfunc (err ErrPreconditionFailed) Error() string {\n\treturn err.message\n}\n\ntype ErrConflict struct {\n\tmessage string\n}\n\nfunc NewErrConflict(patch, current string) ErrConflict {\n\ts := fmt.Sprintf(\"patch:\\n%s\\nconflicts with changes made from original to current:\\n%s\\n\", patch, current)\n\treturn ErrConflict{s}\n}\n\nfunc (err ErrConflict) Error() string {\n\treturn err.message\n}\n\n// IsConflict returns true if the provided error indicates\n// a conflict between the patch and the current configuration.\nfunc IsConflict(err error) bool {\n\t_, ok := err.(ErrConflict)\n\treturn ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/util.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage mergepatch\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"sigs.k8s.io/yaml\"\n)\n\n// PreconditionFunc asserts that an incompatible change is not present within a patch.\ntype PreconditionFunc func(interface{}) bool\n\n// RequireKeyUnchanged returns a precondition function that fails if the provided key\n// is present in the patch (indicating that its value has changed).\nfunc RequireKeyUnchanged(key string) PreconditionFunc {\n\treturn func(patch interface{}) bool {\n\t\tpatchMap, ok := patch.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\n\t\t// The presence of key means that its value has been changed, so the test fails.\n\t\t_, ok = patchMap[key]\n\t\treturn !ok\n\t}\n}\n\n// RequireMetadataKeyUnchanged creates a precondition function that fails\n// if the metadata.key is present in the patch (indicating its value\n// has changed).\nfunc RequireMetadataKeyUnchanged(key string) PreconditionFunc {\n\treturn func(patch interface{}) bool {\n\t\tpatchMap, ok := patch.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\tpatchMap1, ok := patchMap[\"metadata\"]\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\tpatchMap2, ok := patchMap1.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\t_, ok = patchMap2[key]\n\t\treturn !ok\n\t}\n}\n\nfunc ToYAMLOrError(v interface{}) string {\n\ty, err := toYAML(v)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn y\n}\n\nfunc toYAML(v interface{}) (string, error) {\n\ty, err := yaml.Marshal(v)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"yaml marshal failed:%v\\n%v\\n\", err, spew.Sdump(v))\n\t}\n\n\treturn string(y), nil\n}\n\n// HasConflicts returns true if the left and right JSON interface objects overlap with\n// different values in any key. All keys are required to be strings. Since patches of the\n// same Type have congruent keys, this is valid for multiple patch types. This method\n// supports JSON merge patch semantics.\n//\n// NOTE: Numbers with different types (e.g. int(0) vs int64(0)) will be detected as conflicts.\n// Make sure the unmarshaling of left and right are consistent (e.g. use the same library).\nfunc HasConflicts(left, right interface{}) (bool, error) {\n\tswitch typedLeft := left.(type) {\n\tcase map[string]interface{}:\n\t\tswitch typedRight := right.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tfor key, leftValue := range typedLeft {\n\t\t\t\trightValue, ok := typedRight[key]\n\t\t\t\tif !ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif conflict, err := HasConflicts(leftValue, rightValue); err != nil || conflict {\n\t\t\t\t\treturn conflict, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn true, nil\n\t\t}\n\tcase []interface{}:\n\t\tswitch typedRight := right.(type) {\n\t\tcase []interface{}:\n\t\t\tif len(typedLeft) != len(typedRight) {\n\t\t\t\treturn true, nil\n\t\t\t}\n\n\t\t\tfor i := range typedLeft {\n\t\t\t\tif conflict, err := HasConflicts(typedLeft[i], typedRight[i]); err != nil || conflict {\n\t\t\t\t\treturn conflict, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn true, nil\n\t\t}\n\tcase string, float64, bool, int64, nil:\n\t\treturn !reflect.DeepEqual(left, right), nil\n\tdefault:\n\t\treturn true, fmt.Errorf(\"unknown type: %v\", reflect.TypeOf(left))\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/naming/from_stack.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage naming\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\tgoruntime \"runtime\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// GetNameFromCallsite walks back through the call stack until we find a caller from outside of the ignoredPackages\n// it returns back a shortpath/filename:line to aid in identification of this reflector when it starts logging\nfunc GetNameFromCallsite(ignoredPackages ...string) string {\n\tname := \"????\"\n\tconst maxStack = 10\n\tfor i := 1; i < maxStack; i++ {\n\t\t_, file, line, ok := goruntime.Caller(i)\n\t\tif !ok {\n\t\t\tfile, line, ok = extractStackCreator()\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ti += maxStack\n\t\t}\n\t\tif hasPackage(file, append(ignoredPackages, \"/runtime/asm_\")) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfile = trimPackagePrefix(file)\n\t\tname = fmt.Sprintf(\"%s:%d\", file, line)\n\t\tbreak\n\t}\n\treturn name\n}\n\n// hasPackage returns true if the file is in one of the ignored packages.\nfunc hasPackage(file string, ignoredPackages []string) bool {\n\tfor _, ignoredPackage := range ignoredPackages {\n\t\tif strings.Contains(file, ignoredPackage) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// trimPackagePrefix reduces duplicate values off the front of a package name.\nfunc trimPackagePrefix(file string) string {\n\tif l := strings.LastIndex(file, \"/vendor/\"); l >= 0 {\n\t\treturn file[l+len(\"/vendor/\"):]\n\t}\n\tif l := strings.LastIndex(file, \"/src/\"); l >= 0 {\n\t\treturn file[l+5:]\n\t}\n\tif l := strings.LastIndex(file, \"/pkg/\"); l >= 0 {\n\t\treturn file[l+1:]\n\t}\n\treturn file\n}\n\nvar stackCreator = regexp.MustCompile(`(?m)^created by (.*)\\n\\s+(.*):(\\d+) \\+0x[[:xdigit:]]+$`)\n\n// extractStackCreator retrieves the goroutine file and line that launched this stack. Returns false\n// if the creator cannot be located.\n// TODO: Go does not expose this via runtime https://github.com/golang/go/issues/11440\nfunc extractStackCreator() (string, int, bool) {\n\tstack := debug.Stack()\n\tmatches := stackCreator.FindStringSubmatch(string(stack))\n\tif len(matches) != 4 {\n\t\treturn \"\", 0, false\n\t}\n\tline, err := strconv.Atoi(matches[3])\n\tif err != nil {\n\t\treturn \"\", 0, false\n\t}\n\treturn matches[2], line, true\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/http.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/net/http2\"\n\t\"k8s.io/klog/v2\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\n// JoinPreservingTrailingSlash does a path.Join of the specified elements,\n// preserving any trailing slash on the last non-empty segment\nfunc JoinPreservingTrailingSlash(elem ...string) string {\n\t// do the basic path join\n\tresult := path.Join(elem...)\n\n\t// find the last non-empty segment\n\tfor i := len(elem) - 1; i >= 0; i-- {\n\t\tif len(elem[i]) > 0 {\n\t\t\t// if the last segment ended in a slash, ensure our result does as well\n\t\t\tif strings.HasSuffix(elem[i], \"/\") && !strings.HasSuffix(result, \"/\") {\n\t\t\t\tresult += \"/\"\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn result\n}\n\n// IsTimeout returns true if the given error is a network timeout error\nfunc IsTimeout(err error) bool {\n\tvar neterr net.Error\n\tif errors.As(err, &neterr) {\n\t\treturn neterr != nil && neterr.Timeout()\n\t}\n\treturn false\n}\n\n// IsProbableEOF returns true if the given error resembles a connection termination\n// scenario that would justify assuming that the watch is empty.\n// These errors are what the Go http stack returns back to us which are general\n// connection closure errors (strongly correlated) and callers that need to\n// differentiate probable errors in connection behavior between normal \"this is\n// disconnected\" should use the method.\nfunc IsProbableEOF(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\tvar uerr *url.Error\n\tif errors.As(err, &uerr) {\n\t\terr = uerr.Err\n\t}\n\tmsg := err.Error()\n\tswitch {\n\tcase err == io.EOF:\n\t\treturn true\n\tcase err == io.ErrUnexpectedEOF:\n\t\treturn true\n\tcase msg == \"http: can't write HTTP request on broken connection\":\n\t\treturn true\n\tcase strings.Contains(msg, \"http2: server sent GOAWAY and closed the connection\"):\n\t\treturn true\n\tcase strings.Contains(msg, \"connection reset by peer\"):\n\t\treturn true\n\tcase strings.Contains(strings.ToLower(msg), \"use of closed network connection\"):\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar defaultTransport = http.DefaultTransport.(*http.Transport)\n\n// SetOldTransportDefaults applies the defaults from http.DefaultTransport\n// for the Proxy, Dial, and TLSHandshakeTimeout fields if unset\nfunc SetOldTransportDefaults(t *http.Transport) *http.Transport {\n\tif t.Proxy == nil || isDefault(t.Proxy) {\n\t\t// http.ProxyFromEnvironment doesn't respect CIDRs and that makes it impossible to exclude things like pod and service IPs from proxy settings\n\t\t// ProxierWithNoProxyCIDR allows CIDR rules in NO_PROXY\n\t\tt.Proxy = NewProxierWithNoProxyCIDR(http.ProxyFromEnvironment)\n\t}\n\t// If no custom dialer is set, use the default context dialer\n\t//lint:file-ignore SA1019 Keep supporting deprecated Dial method of custom transports\n\tif t.DialContext == nil && t.Dial == nil {\n\t\tt.DialContext = defaultTransport.DialContext\n\t}\n\tif t.TLSHandshakeTimeout == 0 {\n\t\tt.TLSHandshakeTimeout = defaultTransport.TLSHandshakeTimeout\n\t}\n\tif t.IdleConnTimeout == 0 {\n\t\tt.IdleConnTimeout = defaultTransport.IdleConnTimeout\n\t}\n\treturn t\n}\n\n// SetTransportDefaults applies the defaults from http.DefaultTransport\n// for the Proxy, Dial, and TLSHandshakeTimeout fields if unset\nfunc SetTransportDefaults(t *http.Transport) *http.Transport {\n\tt = SetOldTransportDefaults(t)\n\t// Allow clients to disable http2 if needed.\n\tif s := os.Getenv(\"DISABLE_HTTP2\"); len(s) > 0 {\n\t\tklog.Info(\"HTTP2 has been explicitly disabled\")\n\t} else if allowsHTTP2(t) {\n\t\tif err := configureHTTP2Transport(t); err != nil {\n\t\t\tklog.Warningf(\"Transport failed http2 configuration: %v\", err)\n\t\t}\n\t}\n\treturn t\n}\n\nfunc readIdleTimeoutSeconds() int {\n\tret := 30\n\t// User can set the readIdleTimeout to 0 to disable the HTTP/2\n\t// connection health check.\n\tif s := os.Getenv(\"HTTP2_READ_IDLE_TIMEOUT_SECONDS\"); len(s) > 0 {\n\t\ti, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"Illegal HTTP2_READ_IDLE_TIMEOUT_SECONDS(%q): %v.\"+\n\t\t\t\t\" Default value %d is used\", s, err, ret)\n\t\t\treturn ret\n\t\t}\n\t\tret = i\n\t}\n\treturn ret\n}\n\nfunc pingTimeoutSeconds() int {\n\tret := 15\n\tif s := os.Getenv(\"HTTP2_PING_TIMEOUT_SECONDS\"); len(s) > 0 {\n\t\ti, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"Illegal HTTP2_PING_TIMEOUT_SECONDS(%q): %v.\"+\n\t\t\t\t\" Default value %d is used\", s, err, ret)\n\t\t\treturn ret\n\t\t}\n\t\tret = i\n\t}\n\treturn ret\n}\n\nfunc configureHTTP2Transport(t *http.Transport) error {\n\tt2, err := http2.ConfigureTransports(t)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// The following enables the HTTP/2 connection health check added in\n\t// https://github.com/golang/net/pull/55. The health check detects and\n\t// closes broken transport layer connections. Without the health check,\n\t// a broken connection can linger too long, e.g., a broken TCP\n\t// connection will be closed by the Linux kernel after 13 to 30 minutes\n\t// by default, which caused\n\t// https://github.com/kubernetes/client-go/issues/374 and\n\t// https://github.com/kubernetes/kubernetes/issues/87615.\n\tt2.ReadIdleTimeout = time.Duration(readIdleTimeoutSeconds()) * time.Second\n\tt2.PingTimeout = time.Duration(pingTimeoutSeconds()) * time.Second\n\treturn nil\n}\n\nfunc allowsHTTP2(t *http.Transport) bool {\n\tif t.TLSClientConfig == nil || len(t.TLSClientConfig.NextProtos) == 0 {\n\t\t// the transport expressed no NextProto preference, allow\n\t\treturn true\n\t}\n\tfor _, p := range t.TLSClientConfig.NextProtos {\n\t\tif p == http2.NextProtoTLS {\n\t\t\t// the transport explicitly allowed http/2\n\t\t\treturn true\n\t\t}\n\t}\n\t// the transport explicitly set NextProtos and excluded http/2\n\treturn false\n}\n\ntype RoundTripperWrapper interface {\n\thttp.RoundTripper\n\tWrappedRoundTripper() http.RoundTripper\n}\n\ntype DialFunc func(ctx context.Context, net, addr string) (net.Conn, error)\n\nfunc DialerFor(transport http.RoundTripper) (DialFunc, error) {\n\tif transport == nil {\n\t\treturn nil, nil\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase *http.Transport:\n\t\t// transport.DialContext takes precedence over transport.Dial\n\t\tif transport.DialContext != nil {\n\t\t\treturn transport.DialContext, nil\n\t\t}\n\t\t// adapt transport.Dial to the DialWithContext signature\n\t\tif transport.Dial != nil {\n\t\t\treturn func(ctx context.Context, net, addr string) (net.Conn, error) {\n\t\t\t\treturn transport.Dial(net, addr)\n\t\t\t}, nil\n\t\t}\n\t\t// otherwise return nil\n\t\treturn nil, nil\n\tcase RoundTripperWrapper:\n\t\treturn DialerFor(transport.WrappedRoundTripper())\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown transport type: %T\", transport)\n\t}\n}\n\n// CloseIdleConnectionsFor close idles connections for the Transport.\n// If the Transport is wrapped it iterates over the wrapped round trippers\n// until it finds one that implements the CloseIdleConnections method.\n// If the Transport does not have a CloseIdleConnections method\n// then this function does nothing.\nfunc CloseIdleConnectionsFor(transport http.RoundTripper) {\n\tif transport == nil {\n\t\treturn\n\t}\n\ttype closeIdler interface {\n\t\tCloseIdleConnections()\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase closeIdler:\n\t\ttransport.CloseIdleConnections()\n\tcase RoundTripperWrapper:\n\t\tCloseIdleConnectionsFor(transport.WrappedRoundTripper())\n\tdefault:\n\t\tklog.Warningf(\"unknown transport type: %T\", transport)\n\t}\n}\n\ntype TLSClientConfigHolder interface {\n\tTLSClientConfig() *tls.Config\n}\n\nfunc TLSClientConfig(transport http.RoundTripper) (*tls.Config, error) {\n\tif transport == nil {\n\t\treturn nil, nil\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase *http.Transport:\n\t\treturn transport.TLSClientConfig, nil\n\tcase TLSClientConfigHolder:\n\t\treturn transport.TLSClientConfig(), nil\n\tcase RoundTripperWrapper:\n\t\treturn TLSClientConfig(transport.WrappedRoundTripper())\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown transport type: %T\", transport)\n\t}\n}\n\nfunc FormatURL(scheme string, host string, port int, path string) *url.URL {\n\treturn &url.URL{\n\t\tScheme: scheme,\n\t\tHost:   net.JoinHostPort(host, strconv.Itoa(port)),\n\t\tPath:   path,\n\t}\n}\n\nfunc GetHTTPClient(req *http.Request) string {\n\tif ua := req.UserAgent(); len(ua) != 0 {\n\t\treturn ua\n\t}\n\treturn \"unknown\"\n}\n\n// SourceIPs splits the comma separated X-Forwarded-For header and joins it with\n// the X-Real-Ip header and/or req.RemoteAddr, ignoring invalid IPs.\n// The X-Real-Ip is omitted if it's already present in the X-Forwarded-For chain.\n// The req.RemoteAddr is always the last IP in the returned list.\n// It returns nil if all of these are empty or invalid.\nfunc SourceIPs(req *http.Request) []net.IP {\n\tvar srcIPs []net.IP\n\n\thdr := req.Header\n\t// First check the X-Forwarded-For header for requests via proxy.\n\thdrForwardedFor := hdr.Get(\"X-Forwarded-For\")\n\tif hdrForwardedFor != \"\" {\n\t\t// X-Forwarded-For can be a csv of IPs in case of multiple proxies.\n\t\t// Use the first valid one.\n\t\tparts := strings.Split(hdrForwardedFor, \",\")\n\t\tfor _, part := range parts {\n\t\t\tip := netutils.ParseIPSloppy(strings.TrimSpace(part))\n\t\t\tif ip != nil {\n\t\t\t\tsrcIPs = append(srcIPs, ip)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Try the X-Real-Ip header.\n\thdrRealIp := hdr.Get(\"X-Real-Ip\")\n\tif hdrRealIp != \"\" {\n\t\tip := netutils.ParseIPSloppy(hdrRealIp)\n\t\t// Only append the X-Real-Ip if it's not already contained in the X-Forwarded-For chain.\n\t\tif ip != nil && !containsIP(srcIPs, ip) {\n\t\t\tsrcIPs = append(srcIPs, ip)\n\t\t}\n\t}\n\n\t// Always include the request Remote Address as it cannot be easily spoofed.\n\tvar remoteIP net.IP\n\t// Remote Address in Go's HTTP server is in the form host:port so we need to split that first.\n\thost, _, err := net.SplitHostPort(req.RemoteAddr)\n\tif err == nil {\n\t\tremoteIP = netutils.ParseIPSloppy(host)\n\t}\n\t// Fallback if Remote Address was just IP.\n\tif remoteIP == nil {\n\t\tremoteIP = netutils.ParseIPSloppy(req.RemoteAddr)\n\t}\n\n\t// Don't duplicate remote IP if it's already the last address in the chain.\n\tif remoteIP != nil && (len(srcIPs) == 0 || !remoteIP.Equal(srcIPs[len(srcIPs)-1])) {\n\t\tsrcIPs = append(srcIPs, remoteIP)\n\t}\n\n\treturn srcIPs\n}\n\n// Checks whether the given IP address is contained in the list of IPs.\nfunc containsIP(ips []net.IP, ip net.IP) bool {\n\tfor _, v := range ips {\n\t\tif v.Equal(ip) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Extracts and returns the clients IP from the given request.\n// Looks at X-Forwarded-For header, X-Real-Ip header and request.RemoteAddr in that order.\n// Returns nil if none of them are set or is set to an invalid value.\nfunc GetClientIP(req *http.Request) net.IP {\n\tips := SourceIPs(req)\n\tif len(ips) == 0 {\n\t\treturn nil\n\t}\n\treturn ips[0]\n}\n\n// Prepares the X-Forwarded-For header for another forwarding hop by appending the previous sender's\n// IP address to the X-Forwarded-For chain.\nfunc AppendForwardedForHeader(req *http.Request) {\n\t// Copied from net/http/httputil/reverseproxy.go:\n\tif clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil {\n\t\t// If we aren't the first proxy retain prior\n\t\t// X-Forwarded-For information as a comma+space\n\t\t// separated list and fold multiple headers into one.\n\t\tif prior, ok := req.Header[\"X-Forwarded-For\"]; ok {\n\t\t\tclientIP = strings.Join(prior, \", \") + \", \" + clientIP\n\t\t}\n\t\treq.Header.Set(\"X-Forwarded-For\", clientIP)\n\t}\n}\n\nvar defaultProxyFuncPointer = fmt.Sprintf(\"%p\", http.ProxyFromEnvironment)\n\n// isDefault checks to see if the transportProxierFunc is pointing to the default one\nfunc isDefault(transportProxier func(*http.Request) (*url.URL, error)) bool {\n\ttransportProxierPointer := fmt.Sprintf(\"%p\", transportProxier)\n\treturn transportProxierPointer == defaultProxyFuncPointer\n}\n\n// NewProxierWithNoProxyCIDR constructs a Proxier function that respects CIDRs in NO_PROXY and delegates if\n// no matching CIDRs are found\nfunc NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error)) func(req *http.Request) (*url.URL, error) {\n\t// we wrap the default method, so we only need to perform our check if the NO_PROXY (or no_proxy) envvar has a CIDR in it\n\tnoProxyEnv := os.Getenv(\"NO_PROXY\")\n\tif noProxyEnv == \"\" {\n\t\tnoProxyEnv = os.Getenv(\"no_proxy\")\n\t}\n\tnoProxyRules := strings.Split(noProxyEnv, \",\")\n\n\tcidrs := []*net.IPNet{}\n\tfor _, noProxyRule := range noProxyRules {\n\t\t_, cidr, _ := netutils.ParseCIDRSloppy(noProxyRule)\n\t\tif cidr != nil {\n\t\t\tcidrs = append(cidrs, cidr)\n\t\t}\n\t}\n\n\tif len(cidrs) == 0 {\n\t\treturn delegate\n\t}\n\n\treturn func(req *http.Request) (*url.URL, error) {\n\t\tip := netutils.ParseIPSloppy(req.URL.Hostname())\n\t\tif ip == nil {\n\t\t\treturn delegate(req)\n\t\t}\n\n\t\tfor _, cidr := range cidrs {\n\t\t\tif cidr.Contains(ip) {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t}\n\n\t\treturn delegate(req)\n\t}\n}\n\n// DialerFunc implements Dialer for the provided function.\ntype DialerFunc func(req *http.Request) (net.Conn, error)\n\nfunc (fn DialerFunc) Dial(req *http.Request) (net.Conn, error) {\n\treturn fn(req)\n}\n\n// Dialer dials a host and writes a request to it.\ntype Dialer interface {\n\t// Dial connects to the host specified by req's URL, writes the request to the connection, and\n\t// returns the opened net.Conn.\n\tDial(req *http.Request) (net.Conn, error)\n}\n\n// CloneRequest creates a shallow copy of the request along with a deep copy of the Headers.\nfunc CloneRequest(req *http.Request) *http.Request {\n\tr := new(http.Request)\n\n\t// shallow clone\n\t*r = *req\n\n\t// deep copy headers\n\tr.Header = CloneHeader(req.Header)\n\n\treturn r\n}\n\n// CloneHeader creates a deep copy of an http.Header.\nfunc CloneHeader(in http.Header) http.Header {\n\tout := make(http.Header, len(in))\n\tfor key, values := range in {\n\t\tnewValues := make([]string, len(values))\n\t\tcopy(newValues, values)\n\t\tout[key] = newValues\n\t}\n\treturn out\n}\n\n// WarningHeader contains a single RFC2616 14.46 warnings header\ntype WarningHeader struct {\n\t// Codeindicates the type of warning. 299 is a miscellaneous persistent warning\n\tCode int\n\t// Agent contains the name or pseudonym of the server adding the Warning header.\n\t// A single \"-\" is recommended when agent is unknown.\n\tAgent string\n\t// Warning text\n\tText string\n}\n\n// ParseWarningHeaders extract RFC2616 14.46 warnings headers from the specified set of header values.\n// Multiple comma-separated warnings per header are supported.\n// If errors are encountered on a header, the remainder of that header are skipped and subsequent headers are parsed.\n// Returns successfully parsed warnings and any errors encountered.\nfunc ParseWarningHeaders(headers []string) ([]WarningHeader, []error) {\n\tvar (\n\t\tresults []WarningHeader\n\t\terrs    []error\n\t)\n\tfor _, header := range headers {\n\t\tfor len(header) > 0 {\n\t\t\tresult, remainder, err := ParseWarningHeader(header)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tresults = append(results, result)\n\t\t\theader = remainder\n\t\t}\n\t}\n\treturn results, errs\n}\n\nvar (\n\tcodeMatcher = regexp.MustCompile(`^[0-9]{3}$`)\n\twordDecoder = &mime.WordDecoder{}\n)\n\n// ParseWarningHeader extracts one RFC2616 14.46 warning from the specified header,\n// returning an error if the header does not contain a correctly formatted warning.\n// Any remaining content in the header is returned.\nfunc ParseWarningHeader(header string) (result WarningHeader, remainder string, err error) {\n\t// https://tools.ietf.org/html/rfc2616#section-14.46\n\t//   updated by\n\t// https://tools.ietf.org/html/rfc7234#section-5.5\n\t//   https://tools.ietf.org/html/rfc7234#appendix-A\n\t//     Some requirements regarding production and processing of the Warning\n\t//     header fields have been relaxed, as it is not widely implemented.\n\t//     Furthermore, the Warning header field no longer uses RFC 2047\n\t//     encoding, nor does it allow multiple languages, as these aspects were\n\t//     not implemented.\n\t//\n\t// Format is one of:\n\t// warn-code warn-agent \"warn-text\"\n\t// warn-code warn-agent \"warn-text\" \"warn-date\"\n\t//\n\t// warn-code is a three digit number\n\t// warn-agent is unquoted and contains no spaces\n\t// warn-text is quoted with backslash escaping (RFC2047-encoded according to RFC2616, not encoded according to RFC7234)\n\t// warn-date is optional, quoted, and in HTTP-date format (no embedded or escaped quotes)\n\t//\n\t// additional warnings can optionally be included in the same header by comma-separating them:\n\t// warn-code warn-agent \"warn-text\" \"warn-date\"[, warn-code warn-agent \"warn-text\" \"warn-date\", ...]\n\n\t// tolerate leading whitespace\n\theader = strings.TrimSpace(header)\n\n\tparts := strings.SplitN(header, \" \", 3)\n\tif len(parts) != 3 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: fewer than 3 segments\")\n\t}\n\tcode, agent, textDateRemainder := parts[0], parts[1], parts[2]\n\n\t// verify code format\n\tif !codeMatcher.Match([]byte(code)) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: code segment is not 3 digits between 100-299\")\n\t}\n\tcodeInt, _ := strconv.ParseInt(code, 10, 64)\n\n\t// verify agent presence\n\tif len(agent) == 0 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: empty agent segment\")\n\t}\n\tif !utf8.ValidString(agent) || hasAnyRunes(agent, unicode.IsControl) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: invalid agent\")\n\t}\n\n\t// verify textDateRemainder presence\n\tif len(textDateRemainder) == 0 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: empty text segment\")\n\t}\n\n\t// extract text\n\ttext, dateAndRemainder, err := parseQuotedString(textDateRemainder)\n\tif err != nil {\n\t\treturn WarningHeader{}, \"\", fmt.Errorf(\"invalid warning header: %v\", err)\n\t}\n\t// tolerate RFC2047-encoded text from warnings produced according to RFC2616\n\tif decodedText, err := wordDecoder.DecodeHeader(text); err == nil {\n\t\ttext = decodedText\n\t}\n\tif !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: invalid text\")\n\t}\n\tresult = WarningHeader{Code: int(codeInt), Agent: agent, Text: text}\n\n\tif len(dateAndRemainder) > 0 {\n\t\tif dateAndRemainder[0] == '\"' {\n\t\t\t// consume date\n\t\t\tfoundEndQuote := false\n\t\t\tfor i := 1; i < len(dateAndRemainder); i++ {\n\t\t\t\tif dateAndRemainder[i] == '\"' {\n\t\t\t\t\tfoundEndQuote = true\n\t\t\t\t\tremainder = strings.TrimSpace(dateAndRemainder[i+1:])\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !foundEndQuote {\n\t\t\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: unterminated date segment\")\n\t\t\t}\n\t\t} else {\n\t\t\tremainder = dateAndRemainder\n\t\t}\n\t}\n\tif len(remainder) > 0 {\n\t\tif remainder[0] == ',' {\n\t\t\t// consume comma if present\n\t\t\tremainder = strings.TrimSpace(remainder[1:])\n\t\t} else {\n\t\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: unexpected token after warn-date\")\n\t\t}\n\t}\n\n\treturn result, remainder, nil\n}\n\nfunc parseQuotedString(quotedString string) (string, string, error) {\n\tif len(quotedString) == 0 {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: 0-length\")\n\t}\n\n\tif quotedString[0] != '\"' {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: missing initial quote\")\n\t}\n\n\tquotedString = quotedString[1:]\n\tvar remainder string\n\tescaping := false\n\tclosedQuote := false\n\tresult := &strings.Builder{}\nloop:\n\tfor i := 0; i < len(quotedString); i++ {\n\t\tb := quotedString[i]\n\t\tswitch b {\n\t\tcase '\"':\n\t\t\tif escaping {\n\t\t\t\tresult.WriteByte(b)\n\t\t\t\tescaping = false\n\t\t\t} else {\n\t\t\t\tclosedQuote = true\n\t\t\t\tremainder = strings.TrimSpace(quotedString[i+1:])\n\t\t\t\tbreak loop\n\t\t\t}\n\t\tcase '\\\\':\n\t\t\tif escaping {\n\t\t\t\tresult.WriteByte(b)\n\t\t\t\tescaping = false\n\t\t\t} else {\n\t\t\t\tescaping = true\n\t\t\t}\n\t\tdefault:\n\t\t\tresult.WriteByte(b)\n\t\t\tescaping = false\n\t\t}\n\t}\n\n\tif !closedQuote {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: missing closing quote\")\n\t}\n\treturn result.String(), remainder, nil\n}\n\nfunc NewWarningHeader(code int, agent, text string) (string, error) {\n\tif code < 0 || code > 999 {\n\t\treturn \"\", errors.New(\"code must be between 0 and 999\")\n\t}\n\tif len(agent) == 0 {\n\t\tagent = \"-\"\n\t} else if !utf8.ValidString(agent) || strings.ContainsAny(agent, `\\\"`) || hasAnyRunes(agent, unicode.IsSpace, unicode.IsControl) {\n\t\treturn \"\", errors.New(\"agent must be valid UTF-8 and must not contain spaces, quotes, backslashes, or control characters\")\n\t}\n\tif !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {\n\t\treturn \"\", errors.New(\"text must be valid UTF-8 and must not contain control characters\")\n\t}\n\treturn fmt.Sprintf(\"%03d %s %s\", code, agent, makeQuotedString(text)), nil\n}\n\nfunc hasAnyRunes(s string, runeCheckers ...func(rune) bool) bool {\n\tfor _, r := range s {\n\t\tfor _, checker := range runeCheckers {\n\t\t\tif checker(r) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc makeQuotedString(s string) string {\n\tresult := &bytes.Buffer{}\n\t// opening quote\n\tresult.WriteRune('\"')\n\tfor _, c := range s {\n\t\tswitch c {\n\t\tcase '\"', '\\\\':\n\t\t\t// escape \" and \\\n\t\t\tresult.WriteRune('\\\\')\n\t\t\tresult.WriteRune(c)\n\t\tdefault:\n\t\t\t// write everything else as-is\n\t\t\tresult.WriteRune(c)\n\t\t}\n\t}\n\t// closing quote\n\tresult.WriteRune('\"')\n\treturn result.String()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/interface.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"bufio\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\n\t\"strings\"\n\n\t\"k8s.io/klog/v2\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\ntype AddressFamily uint\n\nconst (\n\tfamilyIPv4 AddressFamily = 4\n\tfamilyIPv6 AddressFamily = 6\n)\n\ntype AddressFamilyPreference []AddressFamily\n\nvar (\n\tpreferIPv4 = AddressFamilyPreference{familyIPv4, familyIPv6}\n\tpreferIPv6 = AddressFamilyPreference{familyIPv6, familyIPv4}\n)\n\nconst (\n\t// LoopbackInterfaceName is the default name of the loopback interface\n\tLoopbackInterfaceName = \"lo\"\n)\n\nconst (\n\tipv4RouteFile = \"/proc/net/route\"\n\tipv6RouteFile = \"/proc/net/ipv6_route\"\n)\n\ntype Route struct {\n\tInterface   string\n\tDestination net.IP\n\tGateway     net.IP\n\tFamily      AddressFamily\n}\n\ntype RouteFile struct {\n\tname  string\n\tparse func(input io.Reader) ([]Route, error)\n}\n\n// noRoutesError can be returned in case of no routes\ntype noRoutesError struct {\n\tmessage string\n}\n\nfunc (e noRoutesError) Error() string {\n\treturn e.message\n}\n\n// IsNoRoutesError checks if an error is of type noRoutesError\nfunc IsNoRoutesError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\tswitch err.(type) {\n\tcase noRoutesError:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nvar (\n\tv4File = RouteFile{name: ipv4RouteFile, parse: getIPv4DefaultRoutes}\n\tv6File = RouteFile{name: ipv6RouteFile, parse: getIPv6DefaultRoutes}\n)\n\nfunc (rf RouteFile) extract() ([]Route, error) {\n\tfile, err := os.Open(rf.name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\treturn rf.parse(file)\n}\n\n// getIPv4DefaultRoutes obtains the IPv4 routes, and filters out non-default routes.\nfunc getIPv4DefaultRoutes(input io.Reader) ([]Route, error) {\n\troutes := []Route{}\n\tscanner := bufio.NewReader(input)\n\tfor {\n\t\tline, err := scanner.ReadString('\\n')\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\t//ignore the headers in the route info\n\t\tif strings.HasPrefix(line, \"Iface\") {\n\t\t\tcontinue\n\t\t}\n\t\tfields := strings.Fields(line)\n\t\t// Interested in fields:\n\t\t//  0 - interface name\n\t\t//  1 - destination address\n\t\t//  2 - gateway\n\t\tdest, err := parseIP(fields[1], familyIPv4)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgw, err := parseIP(fields[2], familyIPv4)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !dest.Equal(net.IPv4zero) {\n\t\t\tcontinue\n\t\t}\n\t\troutes = append(routes, Route{\n\t\t\tInterface:   fields[0],\n\t\t\tDestination: dest,\n\t\t\tGateway:     gw,\n\t\t\tFamily:      familyIPv4,\n\t\t})\n\t}\n\treturn routes, nil\n}\n\nfunc getIPv6DefaultRoutes(input io.Reader) ([]Route, error) {\n\troutes := []Route{}\n\tscanner := bufio.NewReader(input)\n\tfor {\n\t\tline, err := scanner.ReadString('\\n')\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tfields := strings.Fields(line)\n\t\t// Interested in fields:\n\t\t//  0 - destination address\n\t\t//  4 - gateway\n\t\t//  9 - interface name\n\t\tdest, err := parseIP(fields[0], familyIPv6)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgw, err := parseIP(fields[4], familyIPv6)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !dest.Equal(net.IPv6zero) {\n\t\t\tcontinue\n\t\t}\n\t\tif gw.Equal(net.IPv6zero) {\n\t\t\tcontinue // loopback\n\t\t}\n\t\troutes = append(routes, Route{\n\t\t\tInterface:   fields[9],\n\t\t\tDestination: dest,\n\t\t\tGateway:     gw,\n\t\t\tFamily:      familyIPv6,\n\t\t})\n\t}\n\treturn routes, nil\n}\n\n// parseIP takes the hex IP address string from route file and converts it\n// to a net.IP address. For IPv4, the value must be converted to big endian.\nfunc parseIP(str string, family AddressFamily) (net.IP, error) {\n\tif str == \"\" {\n\t\treturn nil, fmt.Errorf(\"input is nil\")\n\t}\n\tbytes, err := hex.DecodeString(str)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif family == familyIPv4 {\n\t\tif len(bytes) != net.IPv4len {\n\t\t\treturn nil, fmt.Errorf(\"invalid IPv4 address in route\")\n\t\t}\n\t\treturn net.IP([]byte{bytes[3], bytes[2], bytes[1], bytes[0]}), nil\n\t}\n\t// Must be IPv6\n\tif len(bytes) != net.IPv6len {\n\t\treturn nil, fmt.Errorf(\"invalid IPv6 address in route\")\n\t}\n\treturn net.IP(bytes), nil\n}\n\nfunc isInterfaceUp(intf *net.Interface) bool {\n\tif intf == nil {\n\t\treturn false\n\t}\n\tif intf.Flags&net.FlagUp != 0 {\n\t\tklog.V(4).Infof(\"Interface %v is up\", intf.Name)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isLoopbackOrPointToPoint(intf *net.Interface) bool {\n\treturn intf.Flags&(net.FlagLoopback|net.FlagPointToPoint) != 0\n}\n\n// getMatchingGlobalIP returns the first valid global unicast address of the given\n// 'family' from the list of 'addrs'.\nfunc getMatchingGlobalIP(addrs []net.Addr, family AddressFamily) (net.IP, error) {\n\tif len(addrs) > 0 {\n\t\tfor i := range addrs {\n\t\t\tklog.V(4).Infof(\"Checking addr  %s.\", addrs[i].String())\n\t\t\tip, _, err := netutils.ParseCIDRSloppy(addrs[i].String())\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif memberOf(ip, family) {\n\t\t\t\tif ip.IsGlobalUnicast() {\n\t\t\t\t\tklog.V(4).Infof(\"IP found %v\", ip)\n\t\t\t\t\treturn ip, nil\n\t\t\t\t} else {\n\t\t\t\t\tklog.V(4).Infof(\"Non-global unicast address found %v\", ip)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tklog.V(4).Infof(\"%v is not an IPv%d address\", ip, int(family))\n\t\t\t}\n\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// getIPFromInterface gets the IPs on an interface and returns a global unicast address, if any. The\n// interface must be up, the IP must in the family requested, and the IP must be a global unicast address.\nfunc getIPFromInterface(intfName string, forFamily AddressFamily, nw networkInterfacer) (net.IP, error) {\n\tintf, err := nw.InterfaceByName(intfName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif isInterfaceUp(intf) {\n\t\taddrs, err := nw.Addrs(intf)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tklog.V(4).Infof(\"Interface %q has %d addresses :%v.\", intfName, len(addrs), addrs)\n\t\tmatchingIP, err := getMatchingGlobalIP(addrs, forFamily)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif matchingIP != nil {\n\t\t\tklog.V(4).Infof(\"Found valid IPv%d address %v for interface %q.\", int(forFamily), matchingIP, intfName)\n\t\t\treturn matchingIP, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// getIPFromLoopbackInterface gets the IPs on a loopback interface and returns a global unicast address, if any.\n// The loopback interface must be up, the IP must in the family requested, and the IP must be a global unicast address.\nfunc getIPFromLoopbackInterface(forFamily AddressFamily, nw networkInterfacer) (net.IP, error) {\n\tintfs, err := nw.Interfaces()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, intf := range intfs {\n\t\tif !isInterfaceUp(&intf) {\n\t\t\tcontinue\n\t\t}\n\t\tif intf.Flags&(net.FlagLoopback) != 0 {\n\t\t\taddrs, err := nw.Addrs(&intf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tklog.V(4).Infof(\"Interface %q has %d addresses :%v.\", intf.Name, len(addrs), addrs)\n\t\t\tmatchingIP, err := getMatchingGlobalIP(addrs, forFamily)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif matchingIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found valid IPv%d address %v for interface %q.\", int(forFamily), matchingIP, intf.Name)\n\t\t\t\treturn matchingIP, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// memberOf tells if the IP is of the desired family. Used for checking interface addresses.\nfunc memberOf(ip net.IP, family AddressFamily) bool {\n\tif ip.To4() != nil {\n\t\treturn family == familyIPv4\n\t} else {\n\t\treturn family == familyIPv6\n\t}\n}\n\n// chooseIPFromHostInterfaces looks at all system interfaces, trying to find one that is up that\n// has a global unicast address (non-loopback, non-link local, non-point2point), and returns the IP.\n// addressFamilies determines whether it prefers IPv4 or IPv6\nfunc chooseIPFromHostInterfaces(nw networkInterfacer, addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tintfs, err := nw.Interfaces()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(intfs) == 0 {\n\t\treturn nil, fmt.Errorf(\"no interfaces found on host.\")\n\t}\n\tfor _, family := range addressFamilies {\n\t\tklog.V(4).Infof(\"Looking for system interface with a global IPv%d address\", uint(family))\n\t\tfor _, intf := range intfs {\n\t\t\tif !isInterfaceUp(&intf) {\n\t\t\t\tklog.V(4).Infof(\"Skipping: down interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif isLoopbackOrPointToPoint(&intf) {\n\t\t\t\tklog.V(4).Infof(\"Skipping: LB or P2P interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\taddrs, err := nw.Addrs(&intf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif len(addrs) == 0 {\n\t\t\t\tklog.V(4).Infof(\"Skipping: no addresses on interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, addr := range addrs {\n\t\t\t\tip, _, err := netutils.ParseCIDRSloppy(addr.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"unable to parse CIDR for interface %q: %s\", intf.Name, err)\n\t\t\t\t}\n\t\t\t\tif !memberOf(ip, family) {\n\t\t\t\t\tklog.V(4).Infof(\"Skipping: no address family match for %q on interface %q.\", ip, intf.Name)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// TODO: Decide if should open up to allow IPv6 LLAs in future.\n\t\t\t\tif !ip.IsGlobalUnicast() {\n\t\t\t\t\tklog.V(4).Infof(\"Skipping: non-global address %q on interface %q.\", ip, intf.Name)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tklog.V(4).Infof(\"Found global unicast address %q on interface %q.\", ip, intf.Name)\n\t\t\t\treturn ip, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"no acceptable interface with global unicast address found on host\")\n}\n\n// ChooseHostInterface is a method used fetch an IP for a daemon.\n// If there is no routing info file, it will choose a global IP from the system\n// interfaces. Otherwise, it will use IPv4 and IPv6 route information to return the\n// IP of the interface with a gateway on it (with priority given to IPv4). For a node\n// with no internet connection, it returns error.\nfunc ChooseHostInterface() (net.IP, error) {\n\treturn chooseHostInterface(preferIPv4)\n}\n\nfunc chooseHostInterface(addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tvar nw networkInterfacer = networkInterface{}\n\tif _, err := os.Stat(ipv4RouteFile); os.IsNotExist(err) {\n\t\treturn chooseIPFromHostInterfaces(nw, addressFamilies)\n\t}\n\troutes, err := getAllDefaultRoutes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn chooseHostInterfaceFromRoute(routes, nw, addressFamilies)\n}\n\n// networkInterfacer defines an interface for several net library functions. Production\n// code will forward to net library functions, and unit tests will override the methods\n// for testing purposes.\ntype networkInterfacer interface {\n\tInterfaceByName(intfName string) (*net.Interface, error)\n\tAddrs(intf *net.Interface) ([]net.Addr, error)\n\tInterfaces() ([]net.Interface, error)\n}\n\n// networkInterface implements the networkInterfacer interface for production code, just\n// wrapping the underlying net library function calls.\ntype networkInterface struct{}\n\nfunc (_ networkInterface) InterfaceByName(intfName string) (*net.Interface, error) {\n\treturn net.InterfaceByName(intfName)\n}\n\nfunc (_ networkInterface) Addrs(intf *net.Interface) ([]net.Addr, error) {\n\treturn intf.Addrs()\n}\n\nfunc (_ networkInterface) Interfaces() ([]net.Interface, error) {\n\treturn net.Interfaces()\n}\n\n// getAllDefaultRoutes obtains IPv4 and IPv6 default routes on the node. If unable\n// to read the IPv4 routing info file, we return an error. If unable to read the IPv6\n// routing info file (which is optional), we'll just use the IPv4 route information.\n// Using all the routing info, if no default routes are found, an error is returned.\nfunc getAllDefaultRoutes() ([]Route, error) {\n\troutes, err := v4File.extract()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tv6Routes, _ := v6File.extract()\n\troutes = append(routes, v6Routes...)\n\tif len(routes) == 0 {\n\t\treturn nil, noRoutesError{\n\t\t\tmessage: fmt.Sprintf(\"no default routes found in %q or %q\", v4File.name, v6File.name),\n\t\t}\n\t}\n\treturn routes, nil\n}\n\n// chooseHostInterfaceFromRoute cycles through each default route provided, looking for a\n// global IP address from the interface for the route. If there are routes but no global\n// address is obtained from the interfaces, it checks if the loopback interface has a global address.\n// addressFamilies determines whether it prefers IPv4 or IPv6\nfunc chooseHostInterfaceFromRoute(routes []Route, nw networkInterfacer, addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tfor _, family := range addressFamilies {\n\t\tklog.V(4).Infof(\"Looking for default routes with IPv%d addresses\", uint(family))\n\t\tfor _, route := range routes {\n\t\t\tif route.Family != family {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tklog.V(4).Infof(\"Default route transits interface %q\", route.Interface)\n\t\t\tfinalIP, err := getIPFromInterface(route.Interface, family, nw)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif finalIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found active IP %v \", finalIP)\n\t\t\t\treturn finalIP, nil\n\t\t\t}\n\t\t\t// In case of network setups where default routes are present, but network\n\t\t\t// interfaces use only link-local addresses (e.g. as described in RFC5549).\n\t\t\t// the global IP is assigned to the loopback interface, and we should use it\n\t\t\tloopbackIP, err := getIPFromLoopbackInterface(family, nw)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif loopbackIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found active IP %v on Loopback interface\", loopbackIP)\n\t\t\t\treturn loopbackIP, nil\n\t\t\t}\n\t\t}\n\t}\n\tklog.V(4).Infof(\"No active IP found by looking at default routes\")\n\treturn nil, fmt.Errorf(\"unable to select an IP from default routes.\")\n}\n\n// ResolveBindAddress returns the IP address of a daemon, based on the given bindAddress:\n// If bindAddress is unset, it returns the host's default IP, as with ChooseHostInterface().\n// If bindAddress is unspecified or loopback, it returns the default IP of the same\n// address family as bindAddress.\n// Otherwise, it just returns bindAddress.\nfunc ResolveBindAddress(bindAddress net.IP) (net.IP, error) {\n\taddressFamilies := preferIPv4\n\tif bindAddress != nil && memberOf(bindAddress, familyIPv6) {\n\t\taddressFamilies = preferIPv6\n\t}\n\n\tif bindAddress == nil || bindAddress.IsUnspecified() || bindAddress.IsLoopback() {\n\t\thostIP, err := chooseHostInterface(addressFamilies)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbindAddress = hostIP\n\t}\n\treturn bindAddress, nil\n}\n\n// ChooseBindAddressForInterface choose a global IP for a specific interface, with priority given to IPv4.\n// This is required in case of network setups where default routes are present, but network\n// interfaces use only link-local addresses (e.g. as described in RFC5549).\n// e.g when using BGP to announce a host IP over link-local ip addresses and this ip address is attached to the lo interface.\nfunc ChooseBindAddressForInterface(intfName string) (net.IP, error) {\n\tvar nw networkInterfacer = networkInterface{}\n\tfor _, family := range preferIPv4 {\n\t\tip, err := getIPFromInterface(intfName, family, nw)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif ip != nil {\n\t\t\treturn ip, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"unable to select an IP from %s network interface\", intfName)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/port_range.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// PortRange represents a range of TCP/UDP ports.  To represent a single port,\n// set Size to 1.\ntype PortRange struct {\n\tBase int\n\tSize int\n}\n\n// Contains tests whether a given port falls within the PortRange.\nfunc (pr *PortRange) Contains(p int) bool {\n\treturn (p >= pr.Base) && ((p - pr.Base) < pr.Size)\n}\n\n// String converts the PortRange to a string representation, which can be\n// parsed by PortRange.Set or ParsePortRange.\nfunc (pr PortRange) String() string {\n\tif pr.Size == 0 {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%d-%d\", pr.Base, pr.Base+pr.Size-1)\n}\n\n// Set parses a string of the form \"value\", \"min-max\", or \"min+offset\", inclusive at both ends, and\n// sets the PortRange from it.  This is part of the flag.Value and pflag.Value\n// interfaces.\nfunc (pr *PortRange) Set(value string) error {\n\tconst (\n\t\tSinglePortNotation = 1 << iota\n\t\tHyphenNotation\n\t\tPlusNotation\n\t)\n\n\tvalue = strings.TrimSpace(value)\n\thyphenIndex := strings.Index(value, \"-\")\n\tplusIndex := strings.Index(value, \"+\")\n\n\tif value == \"\" {\n\t\tpr.Base = 0\n\t\tpr.Size = 0\n\t\treturn nil\n\t}\n\n\tvar err error\n\tvar low, high int\n\tvar notation int\n\n\tif plusIndex == -1 && hyphenIndex == -1 {\n\t\tnotation |= SinglePortNotation\n\t}\n\tif hyphenIndex != -1 {\n\t\tnotation |= HyphenNotation\n\t}\n\tif plusIndex != -1 {\n\t\tnotation |= PlusNotation\n\t}\n\n\tswitch notation {\n\tcase SinglePortNotation:\n\t\tvar port int\n\t\tport, err = strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlow = port\n\t\thigh = port\n\tcase HyphenNotation:\n\t\tlow, err = strconv.Atoi(value[:hyphenIndex])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thigh, err = strconv.Atoi(value[hyphenIndex+1:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\tcase PlusNotation:\n\t\tvar offset int\n\t\tlow, err = strconv.Atoi(value[:plusIndex])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toffset, err = strconv.Atoi(value[plusIndex+1:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thigh = low + offset\n\tdefault:\n\t\treturn fmt.Errorf(\"unable to parse port range: %s\", value)\n\t}\n\n\tif low > 65535 || high > 65535 {\n\t\treturn fmt.Errorf(\"the port range cannot be greater than 65535: %s\", value)\n\t}\n\n\tif high < low {\n\t\treturn fmt.Errorf(\"end port cannot be less than start port: %s\", value)\n\t}\n\n\tpr.Base = low\n\tpr.Size = 1 + high - low\n\treturn nil\n}\n\n// Type returns a descriptive string about this type.  This is part of the\n// pflag.Value interface.\nfunc (*PortRange) Type() string {\n\treturn \"portRange\"\n}\n\n// ParsePortRange parses a string of the form \"min-max\", inclusive at both\n// ends, and initializes a new PortRange from it.\nfunc ParsePortRange(value string) (*PortRange, error) {\n\tpr := &PortRange{}\n\terr := pr.Set(value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn pr, nil\n}\n\nfunc ParsePortRangeOrDie(value string) *PortRange {\n\tpr, err := ParsePortRange(value)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't parse port range %q: %v\", value, err))\n\t}\n\treturn pr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/port_split.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\nvar validSchemes = sets.NewString(\"http\", \"https\", \"\")\n\n// SplitSchemeNamePort takes a string of the following forms:\n//   - \"<name>\",                 returns \"\",        \"<name>\",\"\",      true\n//   - \"<name>:<port>\",          returns \"\",        \"<name>\",\"<port>\",true\n//   - \"<scheme>:<name>:<port>\", returns \"<scheme>\",\"<name>\",\"<port>\",true\n//\n// Name must be non-empty or valid will be returned false.\n// Scheme must be \"http\" or \"https\" if specified\n// Port is returned as a string, and it is not required to be numeric (could be\n// used for a named port, for example).\nfunc SplitSchemeNamePort(id string) (scheme, name, port string, valid bool) {\n\tparts := strings.Split(id, \":\")\n\tswitch len(parts) {\n\tcase 1:\n\t\tname = parts[0]\n\tcase 2:\n\t\tname = parts[0]\n\t\tport = parts[1]\n\tcase 3:\n\t\tscheme = parts[0]\n\t\tname = parts[1]\n\t\tport = parts[2]\n\tdefault:\n\t\treturn \"\", \"\", \"\", false\n\t}\n\n\tif len(name) > 0 && validSchemes.Has(scheme) {\n\t\treturn scheme, name, port, true\n\t} else {\n\t\treturn \"\", \"\", \"\", false\n\t}\n}\n\n// JoinSchemeNamePort returns a string that specifies the scheme, name, and port:\n//   - \"<name>\"\n//   - \"<name>:<port>\"\n//   - \"<scheme>:<name>:<port>\"\n//\n// None of the parameters may contain a ':' character\n// Name is required\n// Scheme must be \"\", \"http\", or \"https\"\nfunc JoinSchemeNamePort(scheme, name, port string) string {\n\tif len(scheme) > 0 {\n\t\t// Must include three segments to specify scheme\n\t\treturn scheme + \":\" + name + \":\" + port\n\t}\n\tif len(port) > 0 {\n\t\t// Must include two segments to specify port\n\t\treturn name + \":\" + port\n\t}\n\t// Return name alone\n\treturn name\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/util.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"errors\"\n\t\"net\"\n\t\"reflect\"\n\t\"syscall\"\n)\n\n// IPNetEqual checks if the two input IPNets are representing the same subnet.\n// For example,\n//\n//\t10.0.0.1/24 and 10.0.0.0/24 are the same subnet.\n//\t10.0.0.1/24 and 10.0.0.0/25 are not the same subnet.\nfunc IPNetEqual(ipnet1, ipnet2 *net.IPNet) bool {\n\tif ipnet1 == nil || ipnet2 == nil {\n\t\treturn false\n\t}\n\tif reflect.DeepEqual(ipnet1.Mask, ipnet2.Mask) && ipnet1.Contains(ipnet2.IP) && ipnet2.Contains(ipnet1.IP) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Returns if the given err is \"connection reset by peer\" error.\nfunc IsConnectionReset(err error) bool {\n\tvar errno syscall.Errno\n\tif errors.As(err, &errno) {\n\t\treturn errno == syscall.ECONNRESET\n\t}\n\treturn false\n}\n\n// Returns if the given err is \"connection refused\" error\nfunc IsConnectionRefused(err error) bool {\n\tvar errno syscall.Errno\n\tif errors.As(err, &errno) {\n\t\treturn errno == syscall.ECONNREFUSED\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n)\n\nvar (\n\t// ReallyCrash controls the behavior of HandleCrash and defaults to\n\t// true. It's exposed so components can optionally set to false\n\t// to restore prior behavior. This flag is mostly used for tests to validate\n\t// crash conditions.\n\tReallyCrash = true\n)\n\n// PanicHandlers is a list of functions which will be invoked when a panic happens.\nvar PanicHandlers = []func(interface{}){logPanic}\n\n// HandleCrash simply catches a crash and logs an error. Meant to be called via\n// defer.  Additional context-specific handlers can be provided, and will be\n// called in case of panic.  HandleCrash actually crashes, after calling the\n// handlers and logging the panic message.\n//\n// E.g., you can provide one or more additional handlers for something like shutting down go routines gracefully.\nfunc HandleCrash(additionalHandlers ...func(interface{})) {\n\tif r := recover(); r != nil {\n\t\tfor _, fn := range PanicHandlers {\n\t\t\tfn(r)\n\t\t}\n\t\tfor _, fn := range additionalHandlers {\n\t\t\tfn(r)\n\t\t}\n\t\tif ReallyCrash {\n\t\t\t// Actually proceed to panic.\n\t\t\tpanic(r)\n\t\t}\n\t}\n}\n\n// logPanic logs the caller tree when a panic occurs (except in the special case of http.ErrAbortHandler).\nfunc logPanic(r interface{}) {\n\tif r == http.ErrAbortHandler {\n\t\t// honor the http.ErrAbortHandler sentinel panic value:\n\t\t//   ErrAbortHandler is a sentinel panic value to abort a handler.\n\t\t//   While any panic from ServeHTTP aborts the response to the client,\n\t\t//   panicking with ErrAbortHandler also suppresses logging of a stack trace to the server's error log.\n\t\treturn\n\t}\n\n\t// Same as stdlib http server code. Manually allocate stack trace buffer size\n\t// to prevent excessively large logs\n\tconst size = 64 << 10\n\tstacktrace := make([]byte, size)\n\tstacktrace = stacktrace[:runtime.Stack(stacktrace, false)]\n\tif _, ok := r.(string); ok {\n\t\tklog.Errorf(\"Observed a panic: %s\\n%s\", r, stacktrace)\n\t} else {\n\t\tklog.Errorf(\"Observed a panic: %#v (%v)\\n%s\", r, r, stacktrace)\n\t}\n}\n\n// ErrorHandlers is a list of functions which will be invoked when a nonreturnable\n// error occurs.\n// TODO(lavalamp): for testability, this and the below HandleError function\n// should be packaged up into a testable and reusable object.\nvar ErrorHandlers = []func(error){\n\tlogError,\n\t(&rudimentaryErrorBackoff{\n\t\tlastErrorTime: time.Now(),\n\t\t// 1ms was the number folks were able to stomach as a global rate limit.\n\t\t// If you need to log errors more than 1000 times a second you\n\t\t// should probably consider fixing your code instead. :)\n\t\tminPeriod: time.Millisecond,\n\t}).OnError,\n}\n\n// HandlerError is a method to invoke when a non-user facing piece of code cannot\n// return an error and needs to indicate it has been ignored. Invoking this method\n// is preferable to logging the error - the default behavior is to log but the\n// errors may be sent to a remote server for analysis.\nfunc HandleError(err error) {\n\t// this is sometimes called with a nil error.  We probably shouldn't fail and should do nothing instead\n\tif err == nil {\n\t\treturn\n\t}\n\n\tfor _, fn := range ErrorHandlers {\n\t\tfn(err)\n\t}\n}\n\n// logError prints an error with the call stack of the location it was reported\nfunc logError(err error) {\n\tklog.ErrorDepth(2, err)\n}\n\ntype rudimentaryErrorBackoff struct {\n\tminPeriod time.Duration // immutable\n\t// TODO(lavalamp): use the clock for testability. Need to move that\n\t// package for that to be accessible here.\n\tlastErrorTimeLock sync.Mutex\n\tlastErrorTime     time.Time\n}\n\n// OnError will block if it is called more often than the embedded period time.\n// This will prevent overly tight hot error loops.\nfunc (r *rudimentaryErrorBackoff) OnError(error) {\n\tr.lastErrorTimeLock.Lock()\n\tdefer r.lastErrorTimeLock.Unlock()\n\td := time.Since(r.lastErrorTime)\n\tif d < r.minPeriod {\n\t\t// If the time moves backwards for any reason, do nothing\n\t\ttime.Sleep(r.minPeriod - d)\n\t}\n\tr.lastErrorTime = time.Now()\n}\n\n// GetCaller returns the caller of the function that calls it.\nfunc GetCaller() string {\n\tvar pc [1]uintptr\n\truntime.Callers(3, pc[:])\n\tf := runtime.FuncForPC(pc[0])\n\tif f == nil {\n\t\treturn \"Unable to find caller\"\n\t}\n\treturn f.Name()\n}\n\n// RecoverFromPanic replaces the specified error with an error containing the\n// original error, and  the call tree when a panic occurs. This enables error\n// handlers to handle errors and panics the same way.\nfunc RecoverFromPanic(err *error) {\n\tif r := recover(); r != nil {\n\t\t// Same as stdlib http server code. Manually allocate stack trace buffer size\n\t\t// to prevent excessively large logs\n\t\tconst size = 64 << 10\n\t\tstacktrace := make([]byte, size)\n\t\tstacktrace = stacktrace[:runtime.Stack(stacktrace, false)]\n\n\t\t*err = fmt.Errorf(\n\t\t\t\"recovered from panic %q. (err=%v) Call stack:\\n%s\",\n\t\t\tr,\n\t\t\t*err,\n\t\t\tstacktrace)\n\t}\n}\n\n// Must panics on non-nil errors. Useful to handling programmer level errors.\nfunc Must(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/byte.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Byte is a set of bytes, implemented via map[byte]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[byte]{}\n// s2 := New[byte]()\ntype Byte map[byte]Empty\n\n// NewByte creates a Byte from a list of values.\nfunc NewByte(items ...byte) Byte {\n\treturn Byte(New[byte](items...))\n}\n\n// ByteKeySet creates a Byte from a keys of a map[byte](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc ByteKeySet[T any](theMap map[byte]T) Byte {\n\treturn Byte(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Byte) Insert(items ...byte) Byte {\n\treturn Byte(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Byte) Delete(items ...byte) Byte {\n\treturn Byte(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Byte) Has(item byte) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Byte) HasAll(items ...byte) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Byte) HasAny(items ...byte) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Byte) Clone() Byte {\n\treturn Byte(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Byte) Difference(s2 Byte) Byte {\n\treturn Byte(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Byte) SymmetricDifference(s2 Byte) Byte {\n\treturn Byte(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Byte) Union(s2 Byte) Byte {\n\treturn Byte(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Byte) Intersection(s2 Byte) Byte {\n\treturn Byte(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Byte) IsSuperset(s2 Byte) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Byte) Equal(s2 Byte) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted byte slice.\nfunc (s Byte) List() []byte {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Byte) UnsortedList() []byte {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Byte) PopAny() (byte, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Byte) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package sets has generic set and specified sets. Generic set will\n// replace specified ones over time. And specific ones are deprecated.\npackage sets\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/empty.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Empty is public since it is used by some internal API objects for conversions between external\n// string arrays and internal sets, and conversion logic requires public types today.\ntype Empty struct{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int is a set of ints, implemented via map[int]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int]{}\n// s2 := New[int]()\ntype Int map[int]Empty\n\n// NewInt creates a Int from a list of values.\nfunc NewInt(items ...int) Int {\n\treturn Int(New[int](items...))\n}\n\n// IntKeySet creates a Int from a keys of a map[int](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc IntKeySet[T any](theMap map[int]T) Int {\n\treturn Int(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int) Insert(items ...int) Int {\n\treturn Int(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int) Delete(items ...int) Int {\n\treturn Int(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int) Has(item int) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int) HasAll(items ...int) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int) HasAny(items ...int) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int) Clone() Int {\n\treturn Int(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int) Difference(s2 Int) Int {\n\treturn Int(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int) SymmetricDifference(s2 Int) Int {\n\treturn Int(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int) Union(s2 Int) Int {\n\treturn Int(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int) Intersection(s2 Int) Int {\n\treturn Int(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int) IsSuperset(s2 Int) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int) Equal(s2 Int) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int slice.\nfunc (s Int) List() []int {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int) UnsortedList() []int {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int) PopAny() (int, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int32.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int32 is a set of int32s, implemented via map[int32]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int32]{}\n// s2 := New[int32]()\ntype Int32 map[int32]Empty\n\n// NewInt32 creates a Int32 from a list of values.\nfunc NewInt32(items ...int32) Int32 {\n\treturn Int32(New[int32](items...))\n}\n\n// Int32KeySet creates a Int32 from a keys of a map[int32](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc Int32KeySet[T any](theMap map[int32]T) Int32 {\n\treturn Int32(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int32) Insert(items ...int32) Int32 {\n\treturn Int32(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int32) Delete(items ...int32) Int32 {\n\treturn Int32(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int32) Has(item int32) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int32) HasAll(items ...int32) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int32) HasAny(items ...int32) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int32) Clone() Int32 {\n\treturn Int32(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int32) Difference(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int32) SymmetricDifference(s2 Int32) Int32 {\n\treturn Int32(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int32) Union(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int32) Intersection(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int32) IsSuperset(s2 Int32) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int32) Equal(s2 Int32) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int32 slice.\nfunc (s Int32) List() []int32 {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int32) UnsortedList() []int32 {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int32) PopAny() (int32, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int32) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int64.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int64 is a set of int64s, implemented via map[int64]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int64]{}\n// s2 := New[int64]()\ntype Int64 map[int64]Empty\n\n// NewInt64 creates a Int64 from a list of values.\nfunc NewInt64(items ...int64) Int64 {\n\treturn Int64(New[int64](items...))\n}\n\n// Int64KeySet creates a Int64 from a keys of a map[int64](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc Int64KeySet[T any](theMap map[int64]T) Int64 {\n\treturn Int64(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int64) Insert(items ...int64) Int64 {\n\treturn Int64(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int64) Delete(items ...int64) Int64 {\n\treturn Int64(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int64) Has(item int64) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int64) HasAll(items ...int64) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int64) HasAny(items ...int64) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int64) Clone() Int64 {\n\treturn Int64(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int64) Difference(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int64) SymmetricDifference(s2 Int64) Int64 {\n\treturn Int64(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int64) Union(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int64) Intersection(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int64) IsSuperset(s2 Int64) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int64) Equal(s2 Int64) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int64 slice.\nfunc (s Int64) List() []int64 {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int64) UnsortedList() []int64 {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int64) PopAny() (int64, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int64) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/ordered.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// ordered is a constraint that permits any ordered type: any type\n// that supports the operators < <= >= >.\n// If future releases of Go add new ordered types,\n// this constraint will be modified to include them.\ntype ordered interface {\n\tinteger | float | ~string\n}\n\n// integer is a constraint that permits any integer type.\n// If future releases of Go add new predeclared integer types,\n// this constraint will be modified to include them.\ntype integer interface {\n\tsigned | unsigned\n}\n\n// float is a constraint that permits any floating-point type.\n// If future releases of Go add new predeclared floating-point types,\n// this constraint will be modified to include them.\ntype float interface {\n\t~float32 | ~float64\n}\n\n// signed is a constraint that permits any signed integer type.\n// If future releases of Go add new predeclared signed integer types,\n// this constraint will be modified to include them.\ntype signed interface {\n\t~int | ~int8 | ~int16 | ~int32 | ~int64\n}\n\n// unsigned is a constraint that permits any unsigned integer type.\n// If future releases of Go add new predeclared unsigned integer types,\n// this constraint will be modified to include them.\ntype unsigned interface {\n\t~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/set.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\nimport (\n\t\"sort\"\n)\n\n// Set is a set of the same type elements, implemented via map[comparable]struct{} for minimal memory consumption.\ntype Set[T comparable] map[T]Empty\n\n// cast transforms specified set to generic Set[T].\nfunc cast[T comparable](s map[T]Empty) Set[T] { return s }\n\n// New creates a Set from a list of values.\n// NOTE: type param must be explicitly instantiated if given items are empty.\nfunc New[T comparable](items ...T) Set[T] {\n\tss := make(Set[T], len(items))\n\tss.Insert(items...)\n\treturn ss\n}\n\n// KeySet creates a Set from a keys of a map[comparable](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc KeySet[T comparable, V any](theMap map[T]V) Set[T] {\n\tret := Set[T]{}\n\tfor keyValue := range theMap {\n\t\tret.Insert(keyValue)\n\t}\n\treturn ret\n}\n\n// Insert adds items to the set.\nfunc (s Set[T]) Insert(items ...T) Set[T] {\n\tfor _, item := range items {\n\t\ts[item] = Empty{}\n\t}\n\treturn s\n}\n\nfunc Insert[T comparable](set Set[T], items ...T) Set[T] {\n\treturn set.Insert(items...)\n}\n\n// Delete removes all items from the set.\nfunc (s Set[T]) Delete(items ...T) Set[T] {\n\tfor _, item := range items {\n\t\tdelete(s, item)\n\t}\n\treturn s\n}\n\n// Clear empties the set.\n// It is preferable to replace the set with a newly constructed set,\n// but not all callers can do that (when there are other references to the map).\n// In some cases the set *won't* be fully cleared, e.g. a Set[float32] containing NaN\n// can't be cleared because NaN can't be removed.\n// For sets containing items of a type that is reflexive for ==,\n// this is optimized to a single call to runtime.mapclear().\nfunc (s Set[T]) Clear() Set[T] {\n\tfor key := range s {\n\t\tdelete(s, key)\n\t}\n\treturn s\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Set[T]) Has(item T) bool {\n\t_, contained := s[item]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Set[T]) HasAll(items ...T) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Set[T]) HasAny(items ...T) bool {\n\tfor _, item := range items {\n\t\tif s.Has(item) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Set[T]) Clone() Set[T] {\n\tresult := make(Set[T], len(s))\n\tfor key := range s {\n\t\tresult.Insert(key)\n\t}\n\treturn result\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Set[T]) Difference(s2 Set[T]) Set[T] {\n\tresult := New[T]()\n\tfor key := range s1 {\n\t\tif !s2.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Set[T]) SymmetricDifference(s2 Set[T]) Set[T] {\n\treturn s1.Difference(s2).Union(s2.Difference(s1))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Set[T]) Union(s2 Set[T]) Set[T] {\n\tresult := s1.Clone()\n\tfor key := range s2 {\n\t\tresult.Insert(key)\n\t}\n\treturn result\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Set[T]) Intersection(s2 Set[T]) Set[T] {\n\tvar walk, other Set[T]\n\tresult := New[T]()\n\tif s1.Len() < s2.Len() {\n\t\twalk = s1\n\t\tother = s2\n\t} else {\n\t\twalk = s2\n\t\tother = s1\n\t}\n\tfor key := range walk {\n\t\tif other.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Set[T]) IsSuperset(s2 Set[T]) bool {\n\tfor item := range s2 {\n\t\tif !s1.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Set[T]) Equal(s2 Set[T]) bool {\n\treturn len(s1) == len(s2) && s1.IsSuperset(s2)\n}\n\ntype sortableSliceOfGeneric[T ordered] []T\n\nfunc (g sortableSliceOfGeneric[T]) Len() int           { return len(g) }\nfunc (g sortableSliceOfGeneric[T]) Less(i, j int) bool { return less[T](g[i], g[j]) }\nfunc (g sortableSliceOfGeneric[T]) Swap(i, j int)      { g[i], g[j] = g[j], g[i] }\n\n// List returns the contents as a sorted T slice.\n//\n// This is a separate function and not a method because not all types supported\n// by Generic are ordered and only those can be sorted.\nfunc List[T ordered](s Set[T]) []T {\n\tres := make(sortableSliceOfGeneric[T], 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\tsort.Sort(res)\n\treturn res\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Set[T]) UnsortedList() []T {\n\tres := make([]T, 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\treturn res\n}\n\n// PopAny returns a single element from the set.\nfunc (s Set[T]) PopAny() (T, bool) {\n\tfor key := range s {\n\t\ts.Delete(key)\n\t\treturn key, true\n\t}\n\tvar zeroValue T\n\treturn zeroValue, false\n}\n\n// Len returns the size of the set.\nfunc (s Set[T]) Len() int {\n\treturn len(s)\n}\n\nfunc less[T ordered](lhs, rhs T) bool {\n\treturn lhs < rhs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/string.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// String is a set of strings, implemented via map[string]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[string]{}\n// s2 := New[string]()\ntype String map[string]Empty\n\n// NewString creates a String from a list of values.\nfunc NewString(items ...string) String {\n\treturn String(New[string](items...))\n}\n\n// StringKeySet creates a String from a keys of a map[string](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc StringKeySet[T any](theMap map[string]T) String {\n\treturn String(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s String) Insert(items ...string) String {\n\treturn String(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s String) Delete(items ...string) String {\n\treturn String(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s String) Has(item string) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s String) HasAll(items ...string) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s String) HasAny(items ...string) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s String) Clone() String {\n\treturn String(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 String) Difference(s2 String) String {\n\treturn String(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 String) SymmetricDifference(s2 String) String {\n\treturn String(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 String) Union(s2 String) String {\n\treturn String(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 String) Intersection(s2 String) String {\n\treturn String(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 String) IsSuperset(s2 String) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 String) Equal(s2 String) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted string slice.\nfunc (s String) List() []string {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s String) UnsortedList() []string {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s String) PopAny() (string, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s String) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - apelisse\n  - pwittrock\nreviewers:\n  - apelisse\nemeritus_approvers:\n  - mengqiy\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/errors.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"fmt\"\n)\n\ntype LookupPatchMetaError struct {\n\tPath string\n\tErr  error\n}\n\nfunc (e LookupPatchMetaError) Error() string {\n\treturn fmt.Sprintf(\"LookupPatchMetaError(%s): %v\", e.Path, e.Err)\n}\n\ntype FieldNotFoundError struct {\n\tPath  string\n\tField string\n}\n\nfunc (e FieldNotFoundError) Error() string {\n\treturn fmt.Sprintf(\"unable to find api field %q in %s\", e.Field, e.Path)\n}\n\ntype InvalidTypeError struct {\n\tPath     string\n\tExpected string\n\tActual   string\n}\n\nfunc (e InvalidTypeError) Error() string {\n\treturn fmt.Sprintf(\"invalid type for %s: got %q, expected %q\", e.Path, e.Actual, e.Expected)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/meta.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n\tforkedjson \"k8s.io/apimachinery/third_party/forked/golang/json\"\n\topenapi \"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\ntype PatchMeta struct {\n\tpatchStrategies []string\n\tpatchMergeKey   string\n}\n\nfunc (pm *PatchMeta) GetPatchStrategies() []string {\n\tif pm.patchStrategies == nil {\n\t\treturn []string{}\n\t}\n\treturn pm.patchStrategies\n}\n\nfunc (pm *PatchMeta) SetPatchStrategies(ps []string) {\n\tpm.patchStrategies = ps\n}\n\nfunc (pm *PatchMeta) GetPatchMergeKey() string {\n\treturn pm.patchMergeKey\n}\n\nfunc (pm *PatchMeta) SetPatchMergeKey(pmk string) {\n\tpm.patchMergeKey = pmk\n}\n\ntype LookupPatchMeta interface {\n\t// LookupPatchMetadataForStruct gets subschema and the patch metadata (e.g. patch strategy and merge key) for map.\n\tLookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error)\n\t// LookupPatchMetadataForSlice get subschema and the patch metadata for slice.\n\tLookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error)\n\t// Get the type name of the field\n\tName() string\n}\n\ntype PatchMetaFromStruct struct {\n\tT reflect.Type\n}\n\nfunc NewPatchMetaFromStruct(dataStruct interface{}) (PatchMetaFromStruct, error) {\n\tt, err := getTagStructType(dataStruct)\n\treturn PatchMetaFromStruct{T: t}, err\n}\n\nvar _ LookupPatchMeta = PatchMetaFromStruct{}\n\nfunc (s PatchMetaFromStruct) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) {\n\tfieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadataForStruct(s.T, key)\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\n\treturn PatchMetaFromStruct{T: fieldType},\n\t\tPatchMeta{\n\t\t\tpatchStrategies: fieldPatchStrategies,\n\t\t\tpatchMergeKey:   fieldPatchMergeKey,\n\t\t}, nil\n}\n\nfunc (s PatchMetaFromStruct) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) {\n\tsubschema, patchMeta, err := s.LookupPatchMetadataForStruct(key)\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\telemPatchMetaFromStruct := subschema.(PatchMetaFromStruct)\n\tt := elemPatchMetaFromStruct.T\n\n\tvar elemType reflect.Type\n\tswitch t.Kind() {\n\t// If t is an array or a slice, get the element type.\n\t// If element is still an array or a slice, return an error.\n\t// Otherwise, return element type.\n\tcase reflect.Array, reflect.Slice:\n\t\telemType = t.Elem()\n\t\tif elemType.Kind() == reflect.Array || elemType.Kind() == reflect.Slice {\n\t\t\treturn nil, PatchMeta{}, errors.New(\"unexpected slice of slice\")\n\t\t}\n\t// If t is an pointer, get the underlying element.\n\t// If the underlying element is neither an array nor a slice, the pointer is pointing to a slice,\n\t// e.g. https://github.com/kubernetes/kubernetes/blob/bc22e206c79282487ea0bf5696d5ccec7e839a76/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go#L2782-L2822\n\t// If the underlying element is either an array or a slice, return its element type.\n\tcase reflect.Pointer:\n\t\tt = t.Elem()\n\t\tif t.Kind() == reflect.Array || t.Kind() == reflect.Slice {\n\t\t\tt = t.Elem()\n\t\t}\n\t\telemType = t\n\tdefault:\n\t\treturn nil, PatchMeta{}, fmt.Errorf(\"expected slice or array type, but got: %s\", s.T.Kind().String())\n\t}\n\n\treturn PatchMetaFromStruct{T: elemType}, patchMeta, nil\n}\n\nfunc (s PatchMetaFromStruct) Name() string {\n\treturn s.T.Kind().String()\n}\n\nfunc getTagStructType(dataStruct interface{}) (reflect.Type, error) {\n\tif dataStruct == nil {\n\t\treturn nil, mergepatch.ErrBadArgKind(struct{}{}, nil)\n\t}\n\n\tt := reflect.TypeOf(dataStruct)\n\t// Get the underlying type for pointers\n\tif t.Kind() == reflect.Pointer {\n\t\tt = t.Elem()\n\t}\n\n\tif t.Kind() != reflect.Struct {\n\t\treturn nil, mergepatch.ErrBadArgKind(struct{}{}, dataStruct)\n\t}\n\n\treturn t, nil\n}\n\nfunc GetTagStructTypeOrDie(dataStruct interface{}) reflect.Type {\n\tt, err := getTagStructType(dataStruct)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\ntype PatchMetaFromOpenAPI struct {\n\tSchema openapi.Schema\n}\n\nfunc NewPatchMetaFromOpenAPI(s openapi.Schema) PatchMetaFromOpenAPI {\n\treturn PatchMetaFromOpenAPI{Schema: s}\n}\n\nvar _ LookupPatchMeta = PatchMetaFromOpenAPI{}\n\nfunc (s PatchMetaFromOpenAPI) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) {\n\tif s.Schema == nil {\n\t\treturn nil, PatchMeta{}, nil\n\t}\n\tkindItem := NewKindItem(key, s.Schema.GetPath())\n\ts.Schema.Accept(kindItem)\n\n\terr := kindItem.Error()\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\treturn PatchMetaFromOpenAPI{Schema: kindItem.subschema},\n\t\tkindItem.patchmeta, nil\n}\n\nfunc (s PatchMetaFromOpenAPI) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) {\n\tif s.Schema == nil {\n\t\treturn nil, PatchMeta{}, nil\n\t}\n\tsliceItem := NewSliceItem(key, s.Schema.GetPath())\n\ts.Schema.Accept(sliceItem)\n\n\terr := sliceItem.Error()\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\treturn PatchMetaFromOpenAPI{Schema: sliceItem.subschema},\n\t\tsliceItem.patchmeta, nil\n}\n\nfunc (s PatchMetaFromOpenAPI) Name() string {\n\tschema := s.Schema\n\treturn schema.GetName()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n)\n\n// An alternate implementation of JSON Merge Patch\n// (https://tools.ietf.org/html/rfc7386) which supports the ability to annotate\n// certain fields with metadata that indicates whether the elements of JSON\n// lists should be merged or replaced.\n//\n// For more information, see the PATCH section of docs/devel/api-conventions.md.\n//\n// Some of the content of this package was borrowed with minor adaptations from\n// evanphx/json-patch and openshift/origin.\n\nconst (\n\tdirectiveMarker  = \"$patch\"\n\tdeleteDirective  = \"delete\"\n\treplaceDirective = \"replace\"\n\tmergeDirective   = \"merge\"\n\n\tretainKeysStrategy = \"retainKeys\"\n\n\tdeleteFromPrimitiveListDirectivePrefix = \"$deleteFromPrimitiveList\"\n\tretainKeysDirective                    = \"$\" + retainKeysStrategy\n\tsetElementOrderDirectivePrefix         = \"$setElementOrder\"\n)\n\n// JSONMap is a representations of JSON object encoded as map[string]interface{}\n// where the children can be either map[string]interface{}, []interface{} or\n// primitive type).\n// Operating on JSONMap representation is much faster as it doesn't require any\n// json marshaling and/or unmarshaling operations.\ntype JSONMap map[string]interface{}\n\ntype DiffOptions struct {\n\t// SetElementOrder determines whether we generate the $setElementOrder parallel list.\n\tSetElementOrder bool\n\t// IgnoreChangesAndAdditions indicates if we keep the changes and additions in the patch.\n\tIgnoreChangesAndAdditions bool\n\t// IgnoreDeletions indicates if we keep the deletions in the patch.\n\tIgnoreDeletions bool\n\t// We introduce a new value retainKeys for patchStrategy.\n\t// It indicates that all fields needing to be preserved must be\n\t// present in the `retainKeys` list.\n\t// And the fields that are present will be merged with live object.\n\t// All the missing fields will be cleared when patching.\n\tBuildRetainKeysDirective bool\n}\n\ntype MergeOptions struct {\n\t// MergeParallelList indicates if we are merging the parallel list.\n\t// We don't merge parallel list when calling mergeMap() in CreateThreeWayMergePatch()\n\t// which is called client-side.\n\t// We merge parallel list iff when calling mergeMap() in StrategicMergeMapPatch()\n\t// which is called server-side\n\tMergeParallelList bool\n\t// IgnoreUnmatchedNulls indicates if we should process the unmatched nulls.\n\tIgnoreUnmatchedNulls bool\n}\n\n// The following code is adapted from github.com/openshift/origin/pkg/util/jsonmerge.\n// Instead of defining a Delta that holds an original, a patch and a set of preconditions,\n// the reconcile method accepts a set of preconditions as an argument.\n\n// CreateTwoWayMergePatch creates a patch that can be passed to StrategicMergePatch from an original\n// document and a modified document, which are passed to the method as json encoded content. It will\n// return a patch that yields the modified document when applied to the original document, or an error\n// if either of the two documents is invalid.\nfunc CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn CreateTwoWayMergePatchUsingLookupPatchMeta(original, modified, schema, fns...)\n}\n\nfunc CreateTwoWayMergePatchUsingLookupPatchMeta(\n\toriginal, modified []byte, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\toriginalMap := map[string]interface{}{}\n\tif len(original) > 0 {\n\t\tif err := json.Unmarshal(original, &originalMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tmodifiedMap := map[string]interface{}{}\n\tif len(modified) > 0 {\n\t\tif err := json.Unmarshal(modified, &modifiedMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tpatchMap, err := CreateTwoWayMergeMapPatchUsingLookupPatchMeta(originalMap, modifiedMap, schema, fns...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(patchMap)\n}\n\n// CreateTwoWayMergeMapPatch creates a patch from an original and modified JSON objects,\n// encoded JSONMap.\n// The serialized version of the map can then be passed to StrategicMergeMapPatch.\nfunc CreateTwoWayMergeMapPatch(original, modified JSONMap, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) (JSONMap, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified, schema, fns...)\n}\n\nfunc CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified JSONMap, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) (JSONMap, error) {\n\tdiffOptions := DiffOptions{\n\t\tSetElementOrder: true,\n\t}\n\tpatchMap, err := diffMaps(original, modified, schema, diffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Apply the preconditions to the patch, and return an error if any of them fail.\n\tfor _, fn := range fns {\n\t\tif !fn(patchMap) {\n\t\t\treturn nil, mergepatch.NewErrPreconditionFailed(patchMap)\n\t\t}\n\t}\n\n\treturn patchMap, nil\n}\n\n// Returns a (recursive) strategic merge patch that yields modified when applied to original.\n// Including:\n// - Adding fields to the patch present in modified, missing from original\n// - Setting fields to the patch present in modified and original with different values\n// - Delete fields present in original, missing from modified through\n// - IFF map field - set to nil in patch\n// - IFF list of maps && merge strategy - use deleteDirective for the elements\n// - IFF list of primitives && merge strategy - use parallel deletion list\n// - IFF list of maps or primitives with replace strategy (default) - set patch value to the value in modified\n// - Build $retainKeys directive for fields with retainKeys patch strategy\nfunc diffMaps(original, modified map[string]interface{}, schema LookupPatchMeta, diffOptions DiffOptions) (map[string]interface{}, error) {\n\tpatch := map[string]interface{}{}\n\n\t// This will be used to build the $retainKeys directive sent in the patch\n\tretainKeysList := make([]interface{}, 0, len(modified))\n\n\t// Compare each value in the modified map against the value in the original map\n\tfor key, modifiedValue := range modified {\n\t\t// Get the underlying type for pointers\n\t\tif diffOptions.BuildRetainKeysDirective && modifiedValue != nil {\n\t\t\tretainKeysList = append(retainKeysList, key)\n\t\t}\n\n\t\toriginalValue, ok := original[key]\n\t\tif !ok {\n\t\t\t// Key was added, so add to patch\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch[key] = modifiedValue\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// The patch may have a patch directive\n\t\t// TODO: figure out if we need this. This shouldn't be needed by apply. When would the original map have patch directives in it?\n\t\tfoundDirectiveMarker, err := handleDirectiveMarker(key, originalValue, modifiedValue, patch)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif foundDirectiveMarker {\n\t\t\tcontinue\n\t\t}\n\n\t\tif reflect.TypeOf(originalValue) != reflect.TypeOf(modifiedValue) {\n\t\t\t// Types have changed, so add to patch\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch[key] = modifiedValue\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Types are the same, so compare values\n\t\tswitch originalValueTyped := originalValue.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tmodifiedValueTyped := modifiedValue.(map[string]interface{})\n\t\t\terr = handleMapDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions)\n\t\tcase []interface{}:\n\t\t\tmodifiedValueTyped := modifiedValue.([]interface{})\n\t\t\terr = handleSliceDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions)\n\t\tdefault:\n\t\t\treplacePatchFieldIfNotEqual(key, originalValue, modifiedValue, patch, diffOptions)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tupdatePatchIfMissing(original, modified, patch, diffOptions)\n\t// Insert the retainKeysList iff there are values present in the retainKeysList and\n\t// either of the following is true:\n\t// - the patch is not empty\n\t// - there are additional field in original that need to be cleared\n\tif len(retainKeysList) > 0 &&\n\t\t(len(patch) > 0 || hasAdditionalNewField(original, modified)) {\n\t\tpatch[retainKeysDirective] = sortScalars(retainKeysList)\n\t}\n\treturn patch, nil\n}\n\n// handleDirectiveMarker handles how to diff directive marker between 2 objects\nfunc handleDirectiveMarker(key string, originalValue, modifiedValue interface{}, patch map[string]interface{}) (bool, error) {\n\tif key == directiveMarker {\n\t\toriginalString, ok := originalValue.(string)\n\t\tif !ok {\n\t\t\treturn false, fmt.Errorf(\"invalid value for special key: %s\", directiveMarker)\n\t\t}\n\t\tmodifiedString, ok := modifiedValue.(string)\n\t\tif !ok {\n\t\t\treturn false, fmt.Errorf(\"invalid value for special key: %s\", directiveMarker)\n\t\t}\n\t\tif modifiedString != originalString {\n\t\t\tpatch[directiveMarker] = modifiedValue\n\t\t}\n\t\treturn true, nil\n\t}\n\treturn false, nil\n}\n\n// handleMapDiff diff between 2 maps `originalValueTyped` and `modifiedValue`,\n// puts the diff in the `patch` associated with `key`\n// key is the key associated with originalValue and modifiedValue.\n// originalValue, modifiedValue are the old and new value respectively.They are both maps\n// patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue\n// diffOptions contains multiple options to control how we do the diff.\nfunc handleMapDiff(key string, originalValue, modifiedValue, patch map[string]interface{},\n\tschema LookupPatchMeta, diffOptions DiffOptions) error {\n\tsubschema, patchMeta, err := schema.LookupPatchMetadataForStruct(key)\n\n\tif err != nil {\n\t\t// We couldn't look up metadata for the field\n\t\t// If the values are identical, this doesn't matter, no patch is needed\n\t\tif reflect.DeepEqual(originalValue, modifiedValue) {\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise, return the error\n\t\treturn err\n\t}\n\tretainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\tif err != nil {\n\t\treturn err\n\t}\n\tdiffOptions.BuildRetainKeysDirective = retainKeys\n\tswitch patchStrategy {\n\t// The patch strategic from metadata tells us to replace the entire object instead of diffing it\n\tcase replaceDirective:\n\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\tpatch[key] = modifiedValue\n\t\t}\n\tdefault:\n\t\tpatchValue, err := diffMaps(originalValue, modifiedValue, subschema, diffOptions)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Maps were not identical, use provided patch value\n\t\tif len(patchValue) > 0 {\n\t\t\tpatch[key] = patchValue\n\t\t}\n\t}\n\treturn nil\n}\n\n// handleSliceDiff diff between 2 slices `originalValueTyped` and `modifiedValue`,\n// puts the diff in the `patch` associated with `key`\n// key is the key associated with originalValue and modifiedValue.\n// originalValue, modifiedValue are the old and new value respectively.They are both slices\n// patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue\n// diffOptions contains multiple options to control how we do the diff.\nfunc handleSliceDiff(key string, originalValue, modifiedValue []interface{}, patch map[string]interface{},\n\tschema LookupPatchMeta, diffOptions DiffOptions) error {\n\tsubschema, patchMeta, err := schema.LookupPatchMetadataForSlice(key)\n\tif err != nil {\n\t\t// We couldn't look up metadata for the field\n\t\t// If the values are identical, this doesn't matter, no patch is needed\n\t\tif reflect.DeepEqual(originalValue, modifiedValue) {\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise, return the error\n\t\treturn err\n\t}\n\tretainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch patchStrategy {\n\t// Merge the 2 slices using mergePatchKey\n\tcase mergeDirective:\n\t\tdiffOptions.BuildRetainKeysDirective = retainKeys\n\t\taddList, deletionList, setOrderList, err := diffLists(originalValue, modifiedValue, subschema, patchMeta.GetPatchMergeKey(), diffOptions)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(addList) > 0 {\n\t\t\tpatch[key] = addList\n\t\t}\n\t\t// generate a parallel list for deletion\n\t\tif len(deletionList) > 0 {\n\t\t\tparallelDeletionListKey := fmt.Sprintf(\"%s/%s\", deleteFromPrimitiveListDirectivePrefix, key)\n\t\t\tpatch[parallelDeletionListKey] = deletionList\n\t\t}\n\t\tif len(setOrderList) > 0 {\n\t\t\tparallelSetOrderListKey := fmt.Sprintf(\"%s/%s\", setElementOrderDirectivePrefix, key)\n\t\t\tpatch[parallelSetOrderListKey] = setOrderList\n\t\t}\n\tdefault:\n\t\treplacePatchFieldIfNotEqual(key, originalValue, modifiedValue, patch, diffOptions)\n\t}\n\treturn nil\n}\n\n// replacePatchFieldIfNotEqual updates the patch if original and modified are not deep equal\n// if diffOptions.IgnoreChangesAndAdditions is false.\n// original is the old value, maybe either the live cluster object or the last applied configuration\n// modified is the new value, is always the users new config\nfunc replacePatchFieldIfNotEqual(key string, original, modified interface{},\n\tpatch map[string]interface{}, diffOptions DiffOptions) {\n\tif diffOptions.IgnoreChangesAndAdditions {\n\t\t// Ignoring changes - do nothing\n\t\treturn\n\t}\n\tif reflect.DeepEqual(original, modified) {\n\t\t// Contents are identical - do nothing\n\t\treturn\n\t}\n\t// Create a patch to replace the old value with the new one\n\tpatch[key] = modified\n}\n\n// updatePatchIfMissing iterates over `original` when ignoreDeletions is false.\n// Clear the field whose key is not present in `modified`.\n// original is the old value, maybe either the live cluster object or the last applied configuration\n// modified is the new value, is always the users new config\nfunc updatePatchIfMissing(original, modified, patch map[string]interface{}, diffOptions DiffOptions) {\n\tif diffOptions.IgnoreDeletions {\n\t\t// Ignoring deletion - do nothing\n\t\treturn\n\t}\n\t// Add nils for deleted values\n\tfor key := range original {\n\t\tif _, found := modified[key]; !found {\n\t\t\tpatch[key] = nil\n\t\t}\n\t}\n}\n\n// validateMergeKeyInLists checks if each map in the list has the mentryerge key.\nfunc validateMergeKeyInLists(mergeKey string, lists ...[]interface{}) error {\n\tfor _, list := range lists {\n\t\tfor _, item := range list {\n\t\t\tm, ok := item.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(m, item)\n\t\t\t}\n\t\t\tif _, ok = m[mergeKey]; !ok {\n\t\t\t\treturn mergepatch.ErrNoMergeKey(m, mergeKey)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// normalizeElementOrder sort `patch` list by `patchOrder` and sort `serverOnly` list by `serverOrder`.\n// Then it merges the 2 sorted lists.\n// It guarantee the relative order in the patch list and in the serverOnly list is kept.\n// `patch` is a list of items in the patch, and `serverOnly` is a list of items in the live object.\n// `patchOrder` is the order we want `patch` list to have and\n// `serverOrder` is the order we want `serverOnly` list to have.\n// kind is the kind of each item in the lists `patch` and `serverOnly`.\nfunc normalizeElementOrder(patch, serverOnly, patchOrder, serverOrder []interface{}, mergeKey string, kind reflect.Kind) ([]interface{}, error) {\n\tpatch, err := normalizeSliceOrder(patch, patchOrder, mergeKey, kind)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tserverOnly, err = normalizeSliceOrder(serverOnly, serverOrder, mergeKey, kind)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tall := mergeSortedSlice(serverOnly, patch, serverOrder, mergeKey, kind)\n\n\treturn all, nil\n}\n\n// mergeSortedSlice merges the 2 sorted lists by serverOrder with best effort.\n// It will insert each item in `left` list to `right` list. In most cases, the 2 lists will be interleaved.\n// The relative order of left and right are guaranteed to be kept.\n// They have higher precedence than the order in the live list.\n// The place for a item in `left` is found by:\n// scan from the place of last insertion in `right` to the end of `right`,\n// the place is before the first item that is greater than the item we want to insert.\n// example usage: using server-only items as left and patch items as right. We insert server-only items\n// to patch list. We use the order of live object as record for comparison.\nfunc mergeSortedSlice(left, right, serverOrder []interface{}, mergeKey string, kind reflect.Kind) []interface{} {\n\t// Returns if l is less than r, and if both have been found.\n\t// If l and r both present and l is in front of r, l is less than r.\n\tless := func(l, r interface{}) (bool, bool) {\n\t\tli := index(serverOrder, l, mergeKey, kind)\n\t\tri := index(serverOrder, r, mergeKey, kind)\n\t\tif li >= 0 && ri >= 0 {\n\t\t\treturn li < ri, true\n\t\t} else {\n\t\t\treturn false, false\n\t\t}\n\t}\n\n\t// left and right should be non-overlapping.\n\tsize := len(left) + len(right)\n\ti, j := 0, 0\n\ts := make([]interface{}, size, size)\n\n\tfor k := 0; k < size; k++ {\n\t\tif i >= len(left) && j < len(right) {\n\t\t\t// have items left in `right` list\n\t\t\ts[k] = right[j]\n\t\t\tj++\n\t\t} else if j >= len(right) && i < len(left) {\n\t\t\t// have items left in `left` list\n\t\t\ts[k] = left[i]\n\t\t\ti++\n\t\t} else {\n\t\t\t// compare them if i and j are both in bound\n\t\t\tless, foundBoth := less(left[i], right[j])\n\t\t\tif foundBoth && less {\n\t\t\t\ts[k] = left[i]\n\t\t\t\ti++\n\t\t\t} else {\n\t\t\t\ts[k] = right[j]\n\t\t\t\tj++\n\t\t\t}\n\t\t}\n\t}\n\treturn s\n}\n\n// index returns the index of the item in the given items, or -1 if it doesn't exist\n// l must NOT be a slice of slices, this should be checked before calling.\nfunc index(l []interface{}, valToLookUp interface{}, mergeKey string, kind reflect.Kind) int {\n\tvar getValFn func(interface{}) interface{}\n\t// Get the correct `getValFn` based on item `kind`.\n\t// It should return the value of merge key for maps and\n\t// return the item for other kinds.\n\tswitch kind {\n\tcase reflect.Map:\n\t\tgetValFn = func(item interface{}) interface{} {\n\t\t\ttypedItem, ok := item.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tval := typedItem[mergeKey]\n\t\t\treturn val\n\t\t}\n\tdefault:\n\t\tgetValFn = func(item interface{}) interface{} {\n\t\t\treturn item\n\t\t}\n\t}\n\n\tfor i, v := range l {\n\t\tif getValFn(valToLookUp) == getValFn(v) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// extractToDeleteItems takes a list and\n// returns 2 lists: one contains items that should be kept and the other contains items to be deleted.\nfunc extractToDeleteItems(l []interface{}) ([]interface{}, []interface{}, error) {\n\tvar nonDelete, toDelete []interface{}\n\tfor _, v := range l {\n\t\tm, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, nil, mergepatch.ErrBadArgType(m, v)\n\t\t}\n\n\t\tdirective, foundDirective := m[directiveMarker]\n\t\tif foundDirective && directive == deleteDirective {\n\t\t\ttoDelete = append(toDelete, v)\n\t\t} else {\n\t\t\tnonDelete = append(nonDelete, v)\n\t\t}\n\t}\n\treturn nonDelete, toDelete, nil\n}\n\n// normalizeSliceOrder sort `toSort` list by `order`\nfunc normalizeSliceOrder(toSort, order []interface{}, mergeKey string, kind reflect.Kind) ([]interface{}, error) {\n\tvar toDelete []interface{}\n\tif kind == reflect.Map {\n\t\t// make sure each item in toSort, order has merge key\n\t\terr := validateMergeKeyInLists(mergeKey, toSort, order)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttoSort, toDelete, err = extractToDeleteItems(toSort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tsort.SliceStable(toSort, func(i, j int) bool {\n\t\tif ii := index(order, toSort[i], mergeKey, kind); ii >= 0 {\n\t\t\tif ij := index(order, toSort[j], mergeKey, kind); ij >= 0 {\n\t\t\t\treturn ii < ij\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\ttoSort = append(toSort, toDelete...)\n\treturn toSort, nil\n}\n\n// Returns a (recursive) strategic merge patch, a parallel deletion list if necessary and\n// another list to set the order of the list\n// Only list of primitives with merge strategy will generate a parallel deletion list.\n// These two lists should yield modified when applied to original, for lists with merge semantics.\nfunc diffLists(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, []interface{}, error) {\n\tif len(original) == 0 {\n\t\t// Both slices are empty - do nothing\n\t\tif len(modified) == 0 || diffOptions.IgnoreChangesAndAdditions {\n\t\t\treturn nil, nil, nil, nil\n\t\t}\n\n\t\t// Old slice was empty - add all elements from the new slice\n\t\treturn modified, nil, nil, nil\n\t}\n\n\telementType, err := sliceElementType(original, modified)\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\n\tvar patchList, deleteList, setOrderList []interface{}\n\tkind := elementType.Kind()\n\tswitch kind {\n\tcase reflect.Map:\n\t\tpatchList, deleteList, err = diffListsOfMaps(original, modified, schema, mergeKey, diffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tpatchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\torderSame, err := isOrderSame(original, modified, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\t// append the deletions to the end of the patch list.\n\t\tpatchList = append(patchList, deleteList...)\n\t\tdeleteList = nil\n\t\t// generate the setElementOrder list when there are content changes or order changes\n\t\tif diffOptions.SetElementOrder &&\n\t\t\t((!diffOptions.IgnoreChangesAndAdditions && (len(patchList) > 0 || !orderSame)) ||\n\t\t\t\t(!diffOptions.IgnoreDeletions && len(patchList) > 0)) {\n\t\t\t// Generate a list of maps that each item contains only the merge key.\n\t\t\tsetOrderList = make([]interface{}, len(modified))\n\t\t\tfor i, v := range modified {\n\t\t\t\ttypedV := v.(map[string]interface{})\n\t\t\t\tsetOrderList[i] = map[string]interface{}{\n\t\t\t\t\tmergeKey: typedV[mergeKey],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Slice:\n\t\t// Lists of Lists are not permitted by the api\n\t\treturn nil, nil, nil, mergepatch.ErrNoListOfLists\n\tdefault:\n\t\tpatchList, deleteList, err = diffListsOfScalars(original, modified, diffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tpatchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind)\n\t\t// generate the setElementOrder list when there are content changes or order changes\n\t\tif diffOptions.SetElementOrder && ((!diffOptions.IgnoreDeletions && len(deleteList) > 0) ||\n\t\t\t(!diffOptions.IgnoreChangesAndAdditions && !reflect.DeepEqual(original, modified))) {\n\t\t\tsetOrderList = modified\n\t\t}\n\t}\n\treturn patchList, deleteList, setOrderList, err\n}\n\n// isOrderSame checks if the order in a list has changed\nfunc isOrderSame(original, modified []interface{}, mergeKey string) (bool, error) {\n\tif len(original) != len(modified) {\n\t\treturn false, nil\n\t}\n\tfor i, modifiedItem := range modified {\n\t\tequal, err := mergeKeyValueEqual(original[i], modifiedItem, mergeKey)\n\t\tif err != nil || !equal {\n\t\t\treturn equal, err\n\t\t}\n\t}\n\treturn true, nil\n}\n\n// diffListsOfScalars returns 2 lists, the first one is addList and the second one is deletionList.\n// Argument diffOptions.IgnoreChangesAndAdditions controls if calculate addList. true means not calculate.\n// Argument diffOptions.IgnoreDeletions controls if calculate deletionList. true means not calculate.\n// original may be changed, but modified is guaranteed to not be changed\nfunc diffListsOfScalars(original, modified []interface{}, diffOptions DiffOptions) ([]interface{}, []interface{}, error) {\n\tmodifiedCopy := make([]interface{}, len(modified))\n\tcopy(modifiedCopy, modified)\n\t// Sort the scalars for easier calculating the diff\n\toriginalScalars := sortScalars(original)\n\tmodifiedScalars := sortScalars(modifiedCopy)\n\n\toriginalIndex, modifiedIndex := 0, 0\n\taddList := []interface{}{}\n\tdeletionList := []interface{}{}\n\n\tfor {\n\t\toriginalInBounds := originalIndex < len(originalScalars)\n\t\tmodifiedInBounds := modifiedIndex < len(modifiedScalars)\n\t\tif !originalInBounds && !modifiedInBounds {\n\t\t\tbreak\n\t\t}\n\t\t// we need to compare the string representation of the scalar,\n\t\t// because the scalar is an interface which doesn't support either < or >\n\t\t// And that's how func sortScalars compare scalars.\n\t\tvar originalString, modifiedString string\n\t\tvar originalValue, modifiedValue interface{}\n\t\tif originalInBounds {\n\t\t\toriginalValue = originalScalars[originalIndex]\n\t\t\toriginalString = fmt.Sprintf(\"%v\", originalValue)\n\t\t}\n\t\tif modifiedInBounds {\n\t\t\tmodifiedValue = modifiedScalars[modifiedIndex]\n\t\t\tmodifiedString = fmt.Sprintf(\"%v\", modifiedValue)\n\t\t}\n\n\t\toriginalV, modifiedV := compareListValuesAtIndex(originalInBounds, modifiedInBounds, originalString, modifiedString)\n\t\tswitch {\n\t\tcase originalV == nil && modifiedV == nil:\n\t\t\toriginalIndex++\n\t\t\tmodifiedIndex++\n\t\tcase originalV != nil && modifiedV == nil:\n\t\t\tif !diffOptions.IgnoreDeletions {\n\t\t\t\tdeletionList = append(deletionList, originalValue)\n\t\t\t}\n\t\t\toriginalIndex++\n\t\tcase originalV == nil && modifiedV != nil:\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\taddList = append(addList, modifiedValue)\n\t\t\t}\n\t\t\tmodifiedIndex++\n\t\tdefault:\n\t\t\treturn nil, nil, fmt.Errorf(\"Unexpected returned value from compareListValuesAtIndex: %v and %v\", originalV, modifiedV)\n\t\t}\n\t}\n\n\treturn addList, deduplicateScalars(deletionList), nil\n}\n\n// If first return value is non-nil, list1 contains an element not present in list2\n// If second return value is non-nil, list2 contains an element not present in list1\nfunc compareListValuesAtIndex(list1Inbounds, list2Inbounds bool, list1Value, list2Value string) (interface{}, interface{}) {\n\tbothInBounds := list1Inbounds && list2Inbounds\n\tswitch {\n\t// scalars are identical\n\tcase bothInBounds && list1Value == list2Value:\n\t\treturn nil, nil\n\t// only list2 is in bound\n\tcase !list1Inbounds:\n\t\tfallthrough\n\t// list2 has additional scalar\n\tcase bothInBounds && list1Value > list2Value:\n\t\treturn nil, list2Value\n\t// only original is in bound\n\tcase !list2Inbounds:\n\t\tfallthrough\n\t// original has additional scalar\n\tcase bothInBounds && list1Value < list2Value:\n\t\treturn list1Value, nil\n\tdefault:\n\t\treturn nil, nil\n\t}\n}\n\n// diffListsOfMaps takes a pair of lists and\n// returns a (recursive) strategic merge patch list contains additions and changes and\n// a deletion list contains deletions\nfunc diffListsOfMaps(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, error) {\n\tpatch := make([]interface{}, 0, len(modified))\n\tdeletionList := make([]interface{}, 0, len(original))\n\n\toriginalSorted, err := sortMergeListsByNameArray(original, schema, mergeKey, false)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tmodifiedSorted, err := sortMergeListsByNameArray(modified, schema, mergeKey, false)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\toriginalIndex, modifiedIndex := 0, 0\n\tfor {\n\t\toriginalInBounds := originalIndex < len(originalSorted)\n\t\tmodifiedInBounds := modifiedIndex < len(modifiedSorted)\n\t\tbothInBounds := originalInBounds && modifiedInBounds\n\t\tif !originalInBounds && !modifiedInBounds {\n\t\t\tbreak\n\t\t}\n\n\t\tvar originalElementMergeKeyValueString, modifiedElementMergeKeyValueString string\n\t\tvar originalElementMergeKeyValue, modifiedElementMergeKeyValue interface{}\n\t\tvar originalElement, modifiedElement map[string]interface{}\n\t\tif originalInBounds {\n\t\t\toriginalElement, originalElementMergeKeyValue, err = getMapAndMergeKeyValueByIndex(originalIndex, mergeKey, originalSorted)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\toriginalElementMergeKeyValueString = fmt.Sprintf(\"%v\", originalElementMergeKeyValue)\n\t\t}\n\t\tif modifiedInBounds {\n\t\t\tmodifiedElement, modifiedElementMergeKeyValue, err = getMapAndMergeKeyValueByIndex(modifiedIndex, mergeKey, modifiedSorted)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\tmodifiedElementMergeKeyValueString = fmt.Sprintf(\"%v\", modifiedElementMergeKeyValue)\n\t\t}\n\n\t\tswitch {\n\t\tcase bothInBounds && ItemMatchesOriginalAndModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\t// Merge key values are equal, so recurse\n\t\t\tpatchValue, err := diffMaps(originalElement, modifiedElement, schema, diffOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\tif len(patchValue) > 0 {\n\t\t\t\tpatchValue[mergeKey] = modifiedElementMergeKeyValue\n\t\t\t\tpatch = append(patch, patchValue)\n\t\t\t}\n\t\t\toriginalIndex++\n\t\t\tmodifiedIndex++\n\t\t// only modified is in bound\n\t\tcase !originalInBounds:\n\t\t\tfallthrough\n\t\t// modified has additional map\n\t\tcase bothInBounds && ItemAddedToModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch = append(patch, modifiedElement)\n\t\t\t}\n\t\t\tmodifiedIndex++\n\t\t// only original is in bound\n\t\tcase !modifiedInBounds:\n\t\t\tfallthrough\n\t\t// original has additional map\n\t\tcase bothInBounds && ItemRemovedFromModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\tif !diffOptions.IgnoreDeletions {\n\t\t\t\t// Item was deleted, so add delete directive\n\t\t\t\tdeletionList = append(deletionList, CreateDeleteDirective(mergeKey, originalElementMergeKeyValue))\n\t\t\t}\n\t\t\toriginalIndex++\n\t\t}\n\t}\n\n\treturn patch, deletionList, nil\n}\n\n// getMapAndMergeKeyValueByIndex return a map in the list and its merge key value given the index of the map.\nfunc getMapAndMergeKeyValueByIndex(index int, mergeKey string, listOfMaps []interface{}) (map[string]interface{}, interface{}, error) {\n\tm, ok := listOfMaps[index].(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(m, listOfMaps[index])\n\t}\n\n\tval, ok := m[mergeKey]\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrNoMergeKey(m, mergeKey)\n\t}\n\treturn m, val, nil\n}\n\n// StrategicMergePatch applies a strategic merge patch. The patch and the original document\n// must be json encoded content. A patch can be created from an original and a modified document\n// by calling CreateStrategicMergePatch.\nfunc StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn StrategicMergePatchUsingLookupPatchMeta(original, patch, schema)\n}\n\nfunc StrategicMergePatchUsingLookupPatchMeta(original, patch []byte, schema LookupPatchMeta) ([]byte, error) {\n\toriginalMap, err := handleUnmarshal(original)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpatchMap, err := handleUnmarshal(patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult, err := StrategicMergeMapPatchUsingLookupPatchMeta(originalMap, patchMap, schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(result)\n}\n\nfunc handleUnmarshal(j []byte) (map[string]interface{}, error) {\n\tif j == nil {\n\t\tj = []byte(\"{}\")\n\t}\n\n\tm := map[string]interface{}{}\n\terr := json.Unmarshal(j, &m)\n\tif err != nil {\n\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t}\n\treturn m, nil\n}\n\n// StrategicMergeMapPatch applies a strategic merge patch. The original and patch documents\n// must be JSONMap. A patch can be created from an original and modified document by\n// calling CreateTwoWayMergeMapPatch.\n// Warning: the original and patch JSONMap objects are mutated by this function and should not be reused.\nfunc StrategicMergeMapPatch(original, patch JSONMap, dataStruct interface{}) (JSONMap, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We need the go struct tags `patchMergeKey` and `patchStrategy` for fields that support a strategic merge patch.\n\t// For native resources, we can easily figure out these tags since we know the fields.\n\n\t// Because custom resources are decoded as Unstructured and because we're missing the metadata about how to handle\n\t// each field in a strategic merge patch, we can't find the go struct tags. Hence, we can't easily  do a strategic merge\n\t// for custom resources. So we should fail fast and return an error.\n\tif _, ok := dataStruct.(*unstructured.Unstructured); ok {\n\t\treturn nil, mergepatch.ErrUnsupportedStrategicMergePatchFormat\n\t}\n\n\treturn StrategicMergeMapPatchUsingLookupPatchMeta(original, patch, schema)\n}\n\nfunc StrategicMergeMapPatchUsingLookupPatchMeta(original, patch JSONMap, schema LookupPatchMeta) (JSONMap, error) {\n\tmergeOptions := MergeOptions{\n\t\tMergeParallelList:    true,\n\t\tIgnoreUnmatchedNulls: true,\n\t}\n\treturn mergeMap(original, patch, schema, mergeOptions)\n}\n\n// MergeStrategicMergeMapPatchUsingLookupPatchMeta merges strategic merge\n// patches retaining `null` fields and parallel lists. If 2 patches change the\n// same fields and the latter one will override the former one. If you don't\n// want that happen, you need to run func MergingMapsHaveConflicts before\n// merging these patches. Applying the resulting merged merge patch to a JSONMap\n// yields the same as merging each strategic merge patch to the JSONMap in\n// succession.\nfunc MergeStrategicMergeMapPatchUsingLookupPatchMeta(schema LookupPatchMeta, patches ...JSONMap) (JSONMap, error) {\n\tmergeOptions := MergeOptions{\n\t\tMergeParallelList:    false,\n\t\tIgnoreUnmatchedNulls: false,\n\t}\n\tmerged := JSONMap{}\n\tvar err error\n\tfor _, patch := range patches {\n\t\tmerged, err = mergeMap(merged, patch, schema, mergeOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn merged, nil\n}\n\n// handleDirectiveInMergeMap handles the patch directive when merging 2 maps.\nfunc handleDirectiveInMergeMap(directive interface{}, patch map[string]interface{}) (map[string]interface{}, error) {\n\tif directive == replaceDirective {\n\t\t// If the patch contains \"$patch: replace\", don't merge it, just use the\n\t\t// patch directly. Later on, we can add a single level replace that only\n\t\t// affects the map that the $patch is in.\n\t\tdelete(patch, directiveMarker)\n\t\treturn patch, nil\n\t}\n\n\tif directive == deleteDirective {\n\t\t// If the patch contains \"$patch: delete\", don't merge it, just return\n\t\t//  an empty map.\n\t\treturn map[string]interface{}{}, nil\n\t}\n\n\treturn nil, mergepatch.ErrBadPatchType(directive, patch)\n}\n\nfunc containsDirectiveMarker(item interface{}) bool {\n\tm, ok := item.(map[string]interface{})\n\tif ok {\n\t\tif _, foundDirectiveMarker := m[directiveMarker]; foundDirectiveMarker {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc mergeKeyValueEqual(left, right interface{}, mergeKey string) (bool, error) {\n\tif len(mergeKey) == 0 {\n\t\treturn left == right, nil\n\t}\n\ttypedLeft, ok := left.(map[string]interface{})\n\tif !ok {\n\t\treturn false, mergepatch.ErrBadArgType(typedLeft, left)\n\t}\n\ttypedRight, ok := right.(map[string]interface{})\n\tif !ok {\n\t\treturn false, mergepatch.ErrBadArgType(typedRight, right)\n\t}\n\tmergeKeyLeft, ok := typedLeft[mergeKey]\n\tif !ok {\n\t\treturn false, mergepatch.ErrNoMergeKey(typedLeft, mergeKey)\n\t}\n\tmergeKeyRight, ok := typedRight[mergeKey]\n\tif !ok {\n\t\treturn false, mergepatch.ErrNoMergeKey(typedRight, mergeKey)\n\t}\n\treturn mergeKeyLeft == mergeKeyRight, nil\n}\n\n// extractKey trims the prefix and return the original key\nfunc extractKey(s, prefix string) (string, error) {\n\tsubstrings := strings.SplitN(s, \"/\", 2)\n\tif len(substrings) <= 1 || substrings[0] != prefix {\n\t\tswitch prefix {\n\t\tcase deleteFromPrimitiveListDirectivePrefix:\n\t\t\treturn \"\", mergepatch.ErrBadPatchFormatForPrimitiveList\n\t\tcase setElementOrderDirectivePrefix:\n\t\t\treturn \"\", mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\tdefault:\n\t\t\treturn \"\", fmt.Errorf(\"fail to find unknown prefix %q in %s\\n\", prefix, s)\n\t\t}\n\t}\n\treturn substrings[1], nil\n}\n\n// validatePatchUsingSetOrderList verifies:\n// the relative order of any two items in the setOrderList list matches that in the patch list.\n// the items in the patch list must be a subset or the same as the $setElementOrder list (deletions are ignored).\nfunc validatePatchWithSetOrderList(patchList, setOrderList interface{}, mergeKey string) error {\n\ttypedSetOrderList, ok := setOrderList.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t}\n\ttypedPatchList, ok := patchList.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t}\n\tif len(typedSetOrderList) == 0 || len(typedPatchList) == 0 {\n\t\treturn nil\n\t}\n\n\tvar nonDeleteList []interface{}\n\tvar err error\n\tif len(mergeKey) > 0 {\n\t\tnonDeleteList, _, err = extractToDeleteItems(typedPatchList)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tnonDeleteList = typedPatchList\n\t}\n\n\tpatchIndex, setOrderIndex := 0, 0\n\tfor patchIndex < len(nonDeleteList) && setOrderIndex < len(typedSetOrderList) {\n\t\tif containsDirectiveMarker(nonDeleteList[patchIndex]) {\n\t\t\tpatchIndex++\n\t\t\tcontinue\n\t\t}\n\t\tmergeKeyEqual, err := mergeKeyValueEqual(nonDeleteList[patchIndex], typedSetOrderList[setOrderIndex], mergeKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif mergeKeyEqual {\n\t\t\tpatchIndex++\n\t\t}\n\t\tsetOrderIndex++\n\t}\n\t// If patchIndex is inbound but setOrderIndex if out of bound mean there are items mismatching between the patch list and setElementOrder list.\n\t// the second check is a sanity check, and should always be true if the first is true.\n\tif patchIndex < len(nonDeleteList) && setOrderIndex >= len(typedSetOrderList) {\n\t\treturn fmt.Errorf(\"The order in patch list:\\n%v\\n doesn't match %s list:\\n%v\\n\", typedPatchList, setElementOrderDirectivePrefix, setOrderList)\n\t}\n\treturn nil\n}\n\n// preprocessDeletionListForMerging preprocesses the deletion list.\n// it returns shouldContinue, isDeletionList, noPrefixKey\nfunc preprocessDeletionListForMerging(key string, original map[string]interface{},\n\tpatchVal interface{}, mergeDeletionList bool) (bool, bool, string, error) {\n\t// If found a parallel list for deletion and we are going to merge the list,\n\t// overwrite the key to the original key and set flag isDeleteList\n\tfoundParallelListPrefix := strings.HasPrefix(key, deleteFromPrimitiveListDirectivePrefix)\n\tif foundParallelListPrefix {\n\t\tif !mergeDeletionList {\n\t\t\toriginal[key] = patchVal\n\t\t\treturn true, false, \"\", nil\n\t\t}\n\t\toriginalKey, err := extractKey(key, deleteFromPrimitiveListDirectivePrefix)\n\t\treturn false, true, originalKey, err\n\t}\n\treturn false, false, \"\", nil\n}\n\n// applyRetainKeysDirective looks for a retainKeys directive and applies to original\n// - if no directive exists do nothing\n// - if directive is found, clear keys in original missing from the directive list\n// - validate that all keys present in the patch are present in the retainKeys directive\n// note: original may be another patch request, e.g. applying the add+modified patch to the deletions patch. In this case it may have directives\nfunc applyRetainKeysDirective(original, patch map[string]interface{}, options MergeOptions) error {\n\tretainKeysInPatch, foundInPatch := patch[retainKeysDirective]\n\tif !foundInPatch {\n\t\treturn nil\n\t}\n\t// cleanup the directive\n\tdelete(patch, retainKeysDirective)\n\n\tif !options.MergeParallelList {\n\t\t// If original is actually a patch, make sure the retainKeys directives are the same in both patches if present in both.\n\t\t// If not present in the original patch, copy from the modified patch.\n\t\tretainKeysInOriginal, foundInOriginal := original[retainKeysDirective]\n\t\tif foundInOriginal {\n\t\t\tif !reflect.DeepEqual(retainKeysInOriginal, retainKeysInPatch) {\n\t\t\t\t// This error actually should never happen.\n\t\t\t\treturn fmt.Errorf(\"%v and %v are not deep equal: this may happen when calculating the 3-way diff patch\", retainKeysInOriginal, retainKeysInPatch)\n\t\t\t}\n\t\t} else {\n\t\t\toriginal[retainKeysDirective] = retainKeysInPatch\n\t\t}\n\t\treturn nil\n\t}\n\n\tretainKeysList, ok := retainKeysInPatch.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForRetainKeys\n\t}\n\n\t// validate patch to make sure all fields in the patch are present in the retainKeysList.\n\t// The map is used only as a set, the value is never referenced\n\tm := map[interface{}]struct{}{}\n\tfor _, v := range retainKeysList {\n\t\tm[v] = struct{}{}\n\t}\n\tfor k, v := range patch {\n\t\tif v == nil || strings.HasPrefix(k, deleteFromPrimitiveListDirectivePrefix) ||\n\t\t\tstrings.HasPrefix(k, setElementOrderDirectivePrefix) {\n\t\t\tcontinue\n\t\t}\n\t\t// If there is an item present in the patch but not in the retainKeys list,\n\t\t// the patch is invalid.\n\t\tif _, found := m[k]; !found {\n\t\t\treturn mergepatch.ErrBadPatchFormatForRetainKeys\n\t\t}\n\t}\n\n\t// clear not present fields\n\tfor k := range original {\n\t\tif _, found := m[k]; !found {\n\t\t\tdelete(original, k)\n\t\t}\n\t}\n\treturn nil\n}\n\n// mergePatchIntoOriginal processes $setElementOrder list.\n// When not merging the directive, it will make sure $setElementOrder list exist only in original.\n// When merging the directive, it will try to find the $setElementOrder list and\n// its corresponding patch list, validate it and merge it.\n// Then, sort them by the relative order in setElementOrder, patch list and live list.\n// The precedence is $setElementOrder > order in patch list > order in live list.\n// This function will delete the item after merging it to prevent process it again in the future.\n// Ref: https://git.k8s.io/design-proposals-archive/cli/preserve-order-in-strategic-merge-patch.md\nfunc mergePatchIntoOriginal(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) error {\n\tfor key, patchV := range patch {\n\t\t// Do nothing if there is no ordering directive\n\t\tif !strings.HasPrefix(key, setElementOrderDirectivePrefix) {\n\t\t\tcontinue\n\t\t}\n\n\t\tsetElementOrderInPatch := patchV\n\t\t// Copies directive from the second patch (`patch`) to the first patch (`original`)\n\t\t// and checks they are equal and delete the directive in the second patch\n\t\tif !mergeOptions.MergeParallelList {\n\t\t\tsetElementOrderListInOriginal, ok := original[key]\n\t\t\tif ok {\n\t\t\t\t// check if the setElementOrder list in original and the one in patch matches\n\t\t\t\tif !reflect.DeepEqual(setElementOrderListInOriginal, setElementOrderInPatch) {\n\t\t\t\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// move the setElementOrder list from patch to original\n\t\t\t\toriginal[key] = setElementOrderInPatch\n\t\t\t}\n\t\t}\n\t\tdelete(patch, key)\n\n\t\tvar (\n\t\t\tok                                          bool\n\t\t\toriginalFieldValue, patchFieldValue, merged []interface{}\n\t\t\tpatchStrategy                               string\n\t\t\tpatchMeta                                   PatchMeta\n\t\t\tsubschema                                   LookupPatchMeta\n\t\t)\n\t\ttypedSetElementOrderList, ok := setElementOrderInPatch.([]interface{})\n\t\tif !ok {\n\t\t\treturn mergepatch.ErrBadArgType(typedSetElementOrderList, setElementOrderInPatch)\n\t\t}\n\t\t// Trim the setElementOrderDirectivePrefix to get the key of the list field in original.\n\t\toriginalKey, err := extractKey(key, setElementOrderDirectivePrefix)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// try to find the list with `originalKey` in `original` and `modified` and merge them.\n\t\toriginalList, foundOriginal := original[originalKey]\n\t\tpatchList, foundPatch := patch[originalKey]\n\t\tif foundOriginal {\n\t\t\toriginalFieldValue, ok = originalList.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(originalFieldValue, originalList)\n\t\t\t}\n\t\t}\n\t\tif foundPatch {\n\t\t\tpatchFieldValue, ok = patchList.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(patchFieldValue, patchList)\n\t\t\t}\n\t\t}\n\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForSlice(originalKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Check for consistency between the element order list and the field it applies to\n\t\terr = validatePatchWithSetOrderList(patchFieldValue, typedSetElementOrderList, patchMeta.GetPatchMergeKey())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tswitch {\n\t\tcase foundOriginal && !foundPatch:\n\t\t\t// no change to list contents\n\t\t\tmerged = originalFieldValue\n\t\tcase !foundOriginal && foundPatch:\n\t\t\t// list was added\n\t\t\tmerged = patchFieldValue\n\t\tcase foundOriginal && foundPatch:\n\t\t\tmerged, err = mergeSliceHandler(originalList, patchList, subschema,\n\t\t\t\tpatchStrategy, patchMeta.GetPatchMergeKey(), false, mergeOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase !foundOriginal && !foundPatch:\n\t\t\tcontinue\n\t\t}\n\n\t\t// Split all items into patch items and server-only items and then enforce the order.\n\t\tvar patchItems, serverOnlyItems []interface{}\n\t\tif len(patchMeta.GetPatchMergeKey()) == 0 {\n\t\t\t// Primitives doesn't need merge key to do partitioning.\n\t\t\tpatchItems, serverOnlyItems = partitionPrimitivesByPresentInList(merged, typedSetElementOrderList)\n\n\t\t} else {\n\t\t\t// Maps need merge key to do partitioning.\n\t\t\tpatchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, typedSetElementOrderList, patchMeta.GetPatchMergeKey())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\telementType, err := sliceElementType(originalFieldValue, patchFieldValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkind := elementType.Kind()\n\t\t// normalize merged list\n\t\t// typedSetElementOrderList contains all the relative order in typedPatchList,\n\t\t// so don't need to use typedPatchList\n\t\tboth, err := normalizeElementOrder(patchItems, serverOnlyItems, typedSetElementOrderList, originalFieldValue, patchMeta.GetPatchMergeKey(), kind)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toriginal[originalKey] = both\n\t\t// delete patch list from patch to prevent process again in the future\n\t\tdelete(patch, originalKey)\n\t}\n\treturn nil\n}\n\n// partitionPrimitivesByPresentInList partitions elements into 2 slices, the first containing items present in partitionBy, the other not.\nfunc partitionPrimitivesByPresentInList(original, partitionBy []interface{}) ([]interface{}, []interface{}) {\n\tpatch := make([]interface{}, 0, len(original))\n\tserverOnly := make([]interface{}, 0, len(original))\n\tinPatch := map[interface{}]bool{}\n\tfor _, v := range partitionBy {\n\t\tinPatch[v] = true\n\t}\n\tfor _, v := range original {\n\t\tif !inPatch[v] {\n\t\t\tserverOnly = append(serverOnly, v)\n\t\t} else {\n\t\t\tpatch = append(patch, v)\n\t\t}\n\t}\n\treturn patch, serverOnly\n}\n\n// partitionMapsByPresentInList partitions elements into 2 slices, the first containing items present in partitionBy, the other not.\nfunc partitionMapsByPresentInList(original, partitionBy []interface{}, mergeKey string) ([]interface{}, []interface{}, error) {\n\tpatch := make([]interface{}, 0, len(original))\n\tserverOnly := make([]interface{}, 0, len(original))\n\tfor _, v := range original {\n\t\ttypedV, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, nil, mergepatch.ErrBadArgType(typedV, v)\n\t\t}\n\t\tmergeKeyValue, foundMergeKey := typedV[mergeKey]\n\t\tif !foundMergeKey {\n\t\t\treturn nil, nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t}\n\t\t_, _, found, err := findMapInSliceBasedOnKeyValue(partitionBy, mergeKey, mergeKeyValue)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tif !found {\n\t\t\tserverOnly = append(serverOnly, v)\n\t\t} else {\n\t\t\tpatch = append(patch, v)\n\t\t}\n\t}\n\treturn patch, serverOnly, nil\n}\n\n// Merge fields from a patch map into the original map. Note: This may modify\n// both the original map and the patch because getting a deep copy of a map in\n// golang is highly non-trivial.\n// flag mergeOptions.MergeParallelList controls if using the parallel list to delete or keeping the list.\n// If patch contains any null field (e.g. field_1: null) that is not\n// present in original, then to propagate it to the end result use\n// mergeOptions.IgnoreUnmatchedNulls == false.\nfunc mergeMap(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) (map[string]interface{}, error) {\n\tif v, ok := patch[directiveMarker]; ok {\n\t\treturn handleDirectiveInMergeMap(v, patch)\n\t}\n\n\t// nil is an accepted value for original to simplify logic in other places.\n\t// If original is nil, replace it with an empty map and then apply the patch.\n\tif original == nil {\n\t\toriginal = map[string]interface{}{}\n\t}\n\n\terr := applyRetainKeysDirective(original, patch, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Process $setElementOrder list and other lists sharing the same key.\n\t// When not merging the directive, it will make sure $setElementOrder list exist only in original.\n\t// When merging the directive, it will process $setElementOrder and its patch list together.\n\t// This function will delete the merged elements from patch so they will not be reprocessed\n\terr = mergePatchIntoOriginal(original, patch, schema, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Start merging the patch into the original.\n\tfor k, patchV := range patch {\n\t\tskipProcessing, isDeleteList, noPrefixKey, err := preprocessDeletionListForMerging(k, original, patchV, mergeOptions.MergeParallelList)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif skipProcessing {\n\t\t\tcontinue\n\t\t}\n\t\tif len(noPrefixKey) > 0 {\n\t\t\tk = noPrefixKey\n\t\t}\n\n\t\t// If the value of this key is null, delete the key if it exists in the\n\t\t// original. Otherwise, check if we want to preserve it or skip it.\n\t\t// Preserving the null value is useful when we want to send an explicit\n\t\t// delete to the API server.\n\t\tif patchV == nil {\n\t\t\tdelete(original, k)\n\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t_, ok := original[k]\n\t\tif !ok {\n\t\t\tif !isDeleteList {\n\t\t\t\t// If it's not in the original document, just take the patch value.\n\t\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\t\tdiscardNullValuesFromPatch(patchV)\n\t\t\t\t}\n\t\t\t\toriginal[k] = patchV\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\toriginalType := reflect.TypeOf(original[k])\n\t\tpatchType := reflect.TypeOf(patchV)\n\t\tif originalType != patchType {\n\t\t\tif !isDeleteList {\n\t\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\t\tdiscardNullValuesFromPatch(patchV)\n\t\t\t\t}\n\t\t\t\toriginal[k] = patchV\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// If they're both maps or lists, recurse into the value.\n\t\tswitch originalType.Kind() {\n\t\tcase reflect.Map:\n\t\t\tsubschema, patchMeta, err2 := schema.LookupPatchMetadataForStruct(k)\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\t_, patchStrategy, err2 := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\toriginal[k], err = mergeMapHandler(original[k], patchV, subschema, patchStrategy, mergeOptions)\n\t\tcase reflect.Slice:\n\t\t\tsubschema, patchMeta, err2 := schema.LookupPatchMetadataForSlice(k)\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\t_, patchStrategy, err2 := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\toriginal[k], err = mergeSliceHandler(original[k], patchV, subschema, patchStrategy, patchMeta.GetPatchMergeKey(), isDeleteList, mergeOptions)\n\t\tdefault:\n\t\t\toriginal[k] = patchV\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn original, nil\n}\n\n// discardNullValuesFromPatch discards all null property values from patch.\n// It traverses all slices and map types.\nfunc discardNullValuesFromPatch(patchV interface{}) {\n\tswitch patchV := patchV.(type) {\n\tcase map[string]interface{}:\n\t\tfor k, v := range patchV {\n\t\t\tif v == nil {\n\t\t\t\tdelete(patchV, k)\n\t\t\t} else {\n\t\t\t\tdiscardNullValuesFromPatch(v)\n\t\t\t}\n\t\t}\n\tcase []interface{}:\n\t\tfor _, v := range patchV {\n\t\t\tdiscardNullValuesFromPatch(v)\n\t\t}\n\t}\n}\n\n// mergeMapHandler handles how to merge `patchV` whose key is `key` with `original` respecting\n// fieldPatchStrategy and mergeOptions.\nfunc mergeMapHandler(original, patch interface{}, schema LookupPatchMeta,\n\tfieldPatchStrategy string, mergeOptions MergeOptions) (map[string]interface{}, error) {\n\ttypedOriginal, typedPatch, err := mapTypeAssertion(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif fieldPatchStrategy != replaceDirective {\n\t\treturn mergeMap(typedOriginal, typedPatch, schema, mergeOptions)\n\t} else {\n\t\treturn typedPatch, nil\n\t}\n}\n\n// mergeSliceHandler handles how to merge `patchV` whose key is `key` with `original` respecting\n// fieldPatchStrategy, fieldPatchMergeKey, isDeleteList and mergeOptions.\nfunc mergeSliceHandler(original, patch interface{}, schema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string, isDeleteList bool, mergeOptions MergeOptions) ([]interface{}, error) {\n\ttypedOriginal, typedPatch, err := sliceTypeAssertion(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif fieldPatchStrategy == mergeDirective {\n\t\treturn mergeSlice(typedOriginal, typedPatch, schema, fieldPatchMergeKey, mergeOptions, isDeleteList)\n\t} else {\n\t\treturn typedPatch, nil\n\t}\n}\n\n// Merge two slices together. Note: This may modify both the original slice and\n// the patch because getting a deep copy of a slice in golang is highly\n// non-trivial.\nfunc mergeSlice(original, patch []interface{}, schema LookupPatchMeta, mergeKey string, mergeOptions MergeOptions, isDeleteList bool) ([]interface{}, error) {\n\tif len(original) == 0 && len(patch) == 0 {\n\t\treturn original, nil\n\t}\n\n\t// All the values must be of the same type, but not a list.\n\tt, err := sliceElementType(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar merged []interface{}\n\tkind := t.Kind()\n\t// If the elements are not maps, merge the slices of scalars.\n\tif kind != reflect.Map {\n\t\tif mergeOptions.MergeParallelList && isDeleteList {\n\t\t\treturn deleteFromSlice(original, patch), nil\n\t\t}\n\t\t// Maybe in the future add a \"concat\" mode that doesn't\n\t\t// deduplicate.\n\t\tboth := append(original, patch...)\n\t\tmerged = deduplicateScalars(both)\n\n\t} else {\n\t\tif mergeKey == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"cannot merge lists without merge key for %s\", schema.Name())\n\t\t}\n\n\t\toriginal, patch, err = mergeSliceWithSpecialElements(original, patch, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmerged, err = mergeSliceWithoutSpecialElements(original, patch, mergeKey, schema, mergeOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// enforce the order\n\tvar patchItems, serverOnlyItems []interface{}\n\tif len(mergeKey) == 0 {\n\t\tpatchItems, serverOnlyItems = partitionPrimitivesByPresentInList(merged, patch)\n\t} else {\n\t\tpatchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, patch, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn normalizeElementOrder(patchItems, serverOnlyItems, patch, original, mergeKey, kind)\n}\n\n// mergeSliceWithSpecialElements handles special elements with directiveMarker\n// before merging the slices. It returns a updated `original` and a patch without special elements.\n// original and patch must be slices of maps, they should be checked before calling this function.\nfunc mergeSliceWithSpecialElements(original, patch []interface{}, mergeKey string) ([]interface{}, []interface{}, error) {\n\tpatchWithoutSpecialElements := []interface{}{}\n\treplace := false\n\tfor _, v := range patch {\n\t\ttypedV := v.(map[string]interface{})\n\t\tpatchType, ok := typedV[directiveMarker]\n\t\tif !ok {\n\t\t\tpatchWithoutSpecialElements = append(patchWithoutSpecialElements, v)\n\t\t} else {\n\t\t\tswitch patchType {\n\t\t\tcase deleteDirective:\n\t\t\t\tmergeValue, ok := typedV[mergeKey]\n\t\t\t\tif ok {\n\t\t\t\t\tvar err error\n\t\t\t\t\toriginal, err = deleteMatchingEntries(original, mergeKey, mergeValue)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, nil, err\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t\t\t}\n\t\t\tcase replaceDirective:\n\t\t\t\treplace = true\n\t\t\t\t// Continue iterating through the array to prune any other $patch elements.\n\t\t\tcase mergeDirective:\n\t\t\t\treturn nil, nil, fmt.Errorf(\"merging lists cannot yet be specified in the patch\")\n\t\t\tdefault:\n\t\t\t\treturn nil, nil, mergepatch.ErrBadPatchType(patchType, typedV)\n\t\t\t}\n\t\t}\n\t}\n\tif replace {\n\t\treturn patchWithoutSpecialElements, nil, nil\n\t}\n\treturn original, patchWithoutSpecialElements, nil\n}\n\n// delete all matching entries (based on merge key) from a merging list\nfunc deleteMatchingEntries(original []interface{}, mergeKey string, mergeValue interface{}) ([]interface{}, error) {\n\tfor {\n\t\t_, originalKey, found, err := findMapInSliceBasedOnKeyValue(original, mergeKey, mergeValue)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif !found {\n\t\t\tbreak\n\t\t}\n\t\t// Delete the element at originalKey.\n\t\toriginal = append(original[:originalKey], original[originalKey+1:]...)\n\t}\n\treturn original, nil\n}\n\n// mergeSliceWithoutSpecialElements merges slices with non-special elements.\n// original and patch must be slices of maps, they should be checked before calling this function.\nfunc mergeSliceWithoutSpecialElements(original, patch []interface{}, mergeKey string, schema LookupPatchMeta, mergeOptions MergeOptions) ([]interface{}, error) {\n\tfor _, v := range patch {\n\t\ttypedV := v.(map[string]interface{})\n\t\tmergeValue, ok := typedV[mergeKey]\n\t\tif !ok {\n\t\t\treturn nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t}\n\n\t\t// If we find a value with this merge key value in original, merge the\n\t\t// maps. Otherwise append onto original.\n\t\toriginalMap, originalKey, found, err := findMapInSliceBasedOnKeyValue(original, mergeKey, mergeValue)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif found {\n\t\t\tvar mergedMaps interface{}\n\t\t\tvar err error\n\t\t\t// Merge into original.\n\t\t\tmergedMaps, err = mergeMap(originalMap, typedV, schema, mergeOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\toriginal[originalKey] = mergedMaps\n\t\t} else {\n\t\t\toriginal = append(original, v)\n\t\t}\n\t}\n\treturn original, nil\n}\n\n// deleteFromSlice uses the parallel list to delete the items in a list of scalars\nfunc deleteFromSlice(current, toDelete []interface{}) []interface{} {\n\ttoDeleteMap := map[interface{}]interface{}{}\n\tprocessed := make([]interface{}, 0, len(current))\n\tfor _, v := range toDelete {\n\t\ttoDeleteMap[v] = true\n\t}\n\tfor _, v := range current {\n\t\tif _, found := toDeleteMap[v]; !found {\n\t\t\tprocessed = append(processed, v)\n\t\t}\n\t}\n\treturn processed\n}\n\n// This method no longer panics if any element of the slice is not a map.\nfunc findMapInSliceBasedOnKeyValue(m []interface{}, key string, value interface{}) (map[string]interface{}, int, bool, error) {\n\tfor k, v := range m {\n\t\ttypedV, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, 0, false, fmt.Errorf(\"value for key %v is not a map\", k)\n\t\t}\n\n\t\tvalueToMatch, ok := typedV[key]\n\t\tif ok && valueToMatch == value {\n\t\t\treturn typedV, k, true, nil\n\t\t}\n\t}\n\n\treturn nil, 0, false, nil\n}\n\n// This function takes a JSON map and sorts all the lists that should be merged\n// by key. This is needed by tests because in JSON, list order is significant,\n// but in Strategic Merge Patch, merge lists do not have significant order.\n// Sorting the lists allows for order-insensitive comparison of patched maps.\nfunc sortMergeListsByName(mapJSON []byte, schema LookupPatchMeta) ([]byte, error) {\n\tvar m map[string]interface{}\n\terr := json.Unmarshal(mapJSON, &m)\n\tif err != nil {\n\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t}\n\n\tnewM, err := sortMergeListsByNameMap(m, schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(newM)\n}\n\n// Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in a map.\nfunc sortMergeListsByNameMap(s map[string]interface{}, schema LookupPatchMeta) (map[string]interface{}, error) {\n\tnewS := map[string]interface{}{}\n\tfor k, v := range s {\n\t\tif k == retainKeysDirective {\n\t\t\ttypedV, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForRetainKeys\n\t\t\t}\n\t\t\tv = sortScalars(typedV)\n\t\t} else if strings.HasPrefix(k, deleteFromPrimitiveListDirectivePrefix) {\n\t\t\ttypedV, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForPrimitiveList\n\t\t\t}\n\t\t\tv = sortScalars(typedV)\n\t\t} else if strings.HasPrefix(k, setElementOrderDirectivePrefix) {\n\t\t\t_, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\t\t}\n\t\t} else if k != directiveMarker {\n\t\t\t// recurse for map and slice.\n\t\t\tswitch typedV := v.(type) {\n\t\t\tcase map[string]interface{}:\n\t\t\t\tsubschema, _, err := schema.LookupPatchMetadataForStruct(k)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tv, err = sortMergeListsByNameMap(typedV, subschema)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\tcase []interface{}:\n\t\t\t\tsubschema, patchMeta, err := schema.LookupPatchMetadataForSlice(k)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\t_, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif patchStrategy == mergeDirective {\n\t\t\t\t\tvar err error\n\t\t\t\t\tv, err = sortMergeListsByNameArray(typedV, subschema, patchMeta.GetPatchMergeKey(), true)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tnewS[k] = v\n\t}\n\n\treturn newS, nil\n}\n\n// Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in an array.\nfunc sortMergeListsByNameArray(s []interface{}, schema LookupPatchMeta, mergeKey string, recurse bool) ([]interface{}, error) {\n\tif len(s) == 0 {\n\t\treturn s, nil\n\t}\n\n\t// We don't support lists of lists yet.\n\tt, err := sliceElementType(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If the elements are not maps...\n\tif t.Kind() != reflect.Map {\n\t\t// Sort the elements, because they may have been merged out of order.\n\t\treturn deduplicateAndSortScalars(s), nil\n\t}\n\n\t// Elements are maps - if one of the keys of the map is a map or a\n\t// list, we may need to recurse into it.\n\tnewS := []interface{}{}\n\tfor _, elem := range s {\n\t\tif recurse {\n\t\t\ttypedElem := elem.(map[string]interface{})\n\t\t\tnewElem, err := sortMergeListsByNameMap(typedElem, schema)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnewS = append(newS, newElem)\n\t\t} else {\n\t\t\tnewS = append(newS, elem)\n\t\t}\n\t}\n\n\t// Sort the maps.\n\tnewS = sortMapsBasedOnField(newS, mergeKey)\n\treturn newS, nil\n}\n\nfunc sortMapsBasedOnField(m []interface{}, fieldName string) []interface{} {\n\tmapM := mapSliceFromSlice(m)\n\tss := SortableSliceOfMaps{mapM, fieldName}\n\tsort.Sort(ss)\n\tnewS := sliceFromMapSlice(ss.s)\n\treturn newS\n}\n\nfunc mapSliceFromSlice(m []interface{}) []map[string]interface{} {\n\tnewM := []map[string]interface{}{}\n\tfor _, v := range m {\n\t\tvt := v.(map[string]interface{})\n\t\tnewM = append(newM, vt)\n\t}\n\n\treturn newM\n}\n\nfunc sliceFromMapSlice(s []map[string]interface{}) []interface{} {\n\tnewS := []interface{}{}\n\tfor _, v := range s {\n\t\tnewS = append(newS, v)\n\t}\n\n\treturn newS\n}\n\ntype SortableSliceOfMaps struct {\n\ts []map[string]interface{}\n\tk string // key to sort on\n}\n\nfunc (ss SortableSliceOfMaps) Len() int {\n\treturn len(ss.s)\n}\n\nfunc (ss SortableSliceOfMaps) Less(i, j int) bool {\n\tiStr := fmt.Sprintf(\"%v\", ss.s[i][ss.k])\n\tjStr := fmt.Sprintf(\"%v\", ss.s[j][ss.k])\n\treturn sort.StringsAreSorted([]string{iStr, jStr})\n}\n\nfunc (ss SortableSliceOfMaps) Swap(i, j int) {\n\ttmp := ss.s[i]\n\tss.s[i] = ss.s[j]\n\tss.s[j] = tmp\n}\n\nfunc deduplicateAndSortScalars(s []interface{}) []interface{} {\n\ts = deduplicateScalars(s)\n\treturn sortScalars(s)\n}\n\nfunc sortScalars(s []interface{}) []interface{} {\n\tss := SortableSliceOfScalars{s}\n\tsort.Sort(ss)\n\treturn ss.s\n}\n\nfunc deduplicateScalars(s []interface{}) []interface{} {\n\t// Clever algorithm to deduplicate.\n\tlength := len(s) - 1\n\tfor i := 0; i < length; i++ {\n\t\tfor j := i + 1; j <= length; j++ {\n\t\t\tif s[i] == s[j] {\n\t\t\t\ts[j] = s[length]\n\t\t\t\ts = s[0:length]\n\t\t\t\tlength--\n\t\t\t\tj--\n\t\t\t}\n\t\t}\n\t}\n\n\treturn s\n}\n\ntype SortableSliceOfScalars struct {\n\ts []interface{}\n}\n\nfunc (ss SortableSliceOfScalars) Len() int {\n\treturn len(ss.s)\n}\n\nfunc (ss SortableSliceOfScalars) Less(i, j int) bool {\n\tiStr := fmt.Sprintf(\"%v\", ss.s[i])\n\tjStr := fmt.Sprintf(\"%v\", ss.s[j])\n\treturn sort.StringsAreSorted([]string{iStr, jStr})\n}\n\nfunc (ss SortableSliceOfScalars) Swap(i, j int) {\n\ttmp := ss.s[i]\n\tss.s[i] = ss.s[j]\n\tss.s[j] = tmp\n}\n\n// Returns the type of the elements of N slice(s). If the type is different,\n// another slice or undefined, returns an error.\nfunc sliceElementType(slices ...[]interface{}) (reflect.Type, error) {\n\tvar prevType reflect.Type\n\tfor _, s := range slices {\n\t\t// Go through elements of all given slices and make sure they are all the same type.\n\t\tfor _, v := range s {\n\t\t\tcurrentType := reflect.TypeOf(v)\n\t\t\tif prevType == nil {\n\t\t\t\tprevType = currentType\n\t\t\t\t// We don't support lists of lists yet.\n\t\t\t\tif prevType.Kind() == reflect.Slice {\n\t\t\t\t\treturn nil, mergepatch.ErrNoListOfLists\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif prevType != currentType {\n\t\t\t\t\treturn nil, fmt.Errorf(\"list element types are not identical: %v\", fmt.Sprint(slices))\n\t\t\t\t}\n\t\t\t\tprevType = currentType\n\t\t\t}\n\t\t}\n\t}\n\n\tif prevType == nil {\n\t\treturn nil, fmt.Errorf(\"no elements in any of the given slices\")\n\t}\n\n\treturn prevType, nil\n}\n\n// MergingMapsHaveConflicts returns true if the left and right JSON interface\n// objects overlap with different values in any key. All keys are required to be\n// strings. Since patches of the same Type have congruent keys, this is valid\n// for multiple patch types. This method supports strategic merge patch semantics.\nfunc MergingMapsHaveConflicts(left, right map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\treturn mergingMapFieldsHaveConflicts(left, right, schema, \"\", \"\")\n}\n\nfunc mergingMapFieldsHaveConflicts(\n\tleft, right interface{},\n\tschema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string,\n) (bool, error) {\n\tswitch leftType := left.(type) {\n\tcase map[string]interface{}:\n\t\trightType, ok := right.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true, nil\n\t\t}\n\t\tleftMarker, okLeft := leftType[directiveMarker]\n\t\trightMarker, okRight := rightType[directiveMarker]\n\t\t// if one or the other has a directive marker,\n\t\t// then we need to consider that before looking at the individual keys,\n\t\t// since a directive operates on the whole map.\n\t\tif okLeft || okRight {\n\t\t\t// if one has a directive marker and the other doesn't,\n\t\t\t// then we have a conflict, since one is deleting or replacing the whole map,\n\t\t\t// and the other is doing things to individual keys.\n\t\t\tif okLeft != okRight {\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t\t// if they both have markers, but they are not the same directive,\n\t\t\t// then we have a conflict because they're doing different things to the map.\n\t\t\tif leftMarker != rightMarker {\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t}\n\t\tif fieldPatchStrategy == replaceDirective {\n\t\t\treturn false, nil\n\t\t}\n\t\t// Check the individual keys.\n\t\treturn mapsHaveConflicts(leftType, rightType, schema)\n\n\tcase []interface{}:\n\t\trightType, ok := right.([]interface{})\n\t\tif !ok {\n\t\t\treturn true, nil\n\t\t}\n\t\treturn slicesHaveConflicts(leftType, rightType, schema, fieldPatchStrategy, fieldPatchMergeKey)\n\tcase string, float64, bool, int64, nil:\n\t\treturn !reflect.DeepEqual(left, right), nil\n\tdefault:\n\t\treturn true, fmt.Errorf(\"unknown type: %v\", reflect.TypeOf(left))\n\t}\n}\n\nfunc mapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\tfor key, leftValue := range typedLeft {\n\t\tif key != directiveMarker && key != retainKeysDirective {\n\t\t\tif rightValue, ok := typedRight[key]; ok {\n\t\t\t\tvar subschema LookupPatchMeta\n\t\t\t\tvar patchMeta PatchMeta\n\t\t\t\tvar patchStrategy string\n\t\t\t\tvar err error\n\t\t\t\tswitch leftValue.(type) {\n\t\t\t\tcase []interface{}:\n\t\t\t\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForSlice(key)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\tcase map[string]interface{}:\n\t\t\t\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForStruct(key)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue,\n\t\t\t\t\tsubschema, patchStrategy, patchMeta.GetPatchMergeKey()); hasConflicts {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\nfunc slicesHaveConflicts(\n\ttypedLeft, typedRight []interface{},\n\tschema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string,\n) (bool, error) {\n\telementType, err := sliceElementType(typedLeft, typedRight)\n\tif err != nil {\n\t\treturn true, err\n\t}\n\n\tif fieldPatchStrategy == mergeDirective {\n\t\t// Merging lists of scalars have no conflicts by definition\n\t\t// So we only need to check further if the elements are maps\n\t\tif elementType.Kind() != reflect.Map {\n\t\t\treturn false, nil\n\t\t}\n\n\t\t// Build a map for each slice and then compare the two maps\n\t\tleftMap, err := sliceOfMapsToMapOfMaps(typedLeft, fieldPatchMergeKey)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\trightMap, err := sliceOfMapsToMapOfMaps(typedRight, fieldPatchMergeKey)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\treturn mapsOfMapsHaveConflicts(leftMap, rightMap, schema)\n\t}\n\n\t// Either we don't have type information, or these are non-merging lists\n\tif len(typedLeft) != len(typedRight) {\n\t\treturn true, nil\n\t}\n\n\t// Sort scalar slices to prevent ordering issues\n\t// We have no way to sort non-merging lists of maps\n\tif elementType.Kind() != reflect.Map {\n\t\ttypedLeft = deduplicateAndSortScalars(typedLeft)\n\t\ttypedRight = deduplicateAndSortScalars(typedRight)\n\t}\n\n\t// Compare the slices element by element in order\n\t// This test will fail if the slices are not sorted\n\tfor i := range typedLeft {\n\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(typedLeft[i], typedRight[i], schema, \"\", \"\"); hasConflicts {\n\t\t\treturn true, err\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\nfunc sliceOfMapsToMapOfMaps(slice []interface{}, mergeKey string) (map[string]interface{}, error) {\n\tresult := make(map[string]interface{}, len(slice))\n\tfor _, value := range slice {\n\t\ttypedValue, ok := value.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid element type in merging list:%v\", slice)\n\t\t}\n\n\t\tmergeValue, ok := typedValue[mergeKey]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"cannot find merge key `%s` in merging list element:%v\", mergeKey, typedValue)\n\t\t}\n\n\t\tresult[fmt.Sprintf(\"%s\", mergeValue)] = typedValue\n\t}\n\n\treturn result, nil\n}\n\nfunc mapsOfMapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\tfor key, leftValue := range typedLeft {\n\t\tif rightValue, ok := typedRight[key]; ok {\n\t\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue, schema, \"\", \"\"); hasConflicts {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// CreateThreeWayMergePatch reconciles a modified configuration with an original configuration,\n// while preserving any changes or deletions made to the original configuration in the interim,\n// and not overridden by the current configuration. All three documents must be passed to the\n// method as json encoded content. It will return a strategic merge patch, or an error if any\n// of the documents is invalid, or if there are any preconditions that fail against the modified\n// configuration, or, if overwrite is false and there are conflicts between the modified and current\n// configurations. Conflicts are defined as keys changed differently from original to modified\n// than from original to current. In other words, a conflict occurs if modified changes any key\n// in a way that is different from how it is changed in current (e.g., deleting it, changing its\n// value). We also propagate values fields that do not exist in original but are explicitly\n// defined in modified.\nfunc CreateThreeWayMergePatch(original, modified, current []byte, schema LookupPatchMeta, overwrite bool, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\toriginalMap := map[string]interface{}{}\n\tif len(original) > 0 {\n\t\tif err := json.Unmarshal(original, &originalMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tmodifiedMap := map[string]interface{}{}\n\tif len(modified) > 0 {\n\t\tif err := json.Unmarshal(modified, &modifiedMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tcurrentMap := map[string]interface{}{}\n\tif len(current) > 0 {\n\t\tif err := json.Unmarshal(current, &currentMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\t// The patch is the difference from current to modified without deletions, plus deletions\n\t// from original to modified. To find it, we compute deletions, which are the deletions from\n\t// original to modified, and delta, which is the difference from current to modified without\n\t// deletions, and then apply delta to deletions as a patch, which should be strictly additive.\n\tdeltaMapDiffOptions := DiffOptions{\n\t\tIgnoreDeletions: true,\n\t\tSetElementOrder: true,\n\t}\n\tdeltaMap, err := diffMaps(currentMap, modifiedMap, schema, deltaMapDiffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdeletionsMapDiffOptions := DiffOptions{\n\t\tSetElementOrder:           true,\n\t\tIgnoreChangesAndAdditions: true,\n\t}\n\tdeletionsMap, err := diffMaps(originalMap, modifiedMap, schema, deletionsMapDiffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmergeOptions := MergeOptions{}\n\tpatchMap, err := mergeMap(deletionsMap, deltaMap, schema, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Apply the preconditions to the patch, and return an error if any of them fail.\n\tfor _, fn := range fns {\n\t\tif !fn(patchMap) {\n\t\t\treturn nil, mergepatch.NewErrPreconditionFailed(patchMap)\n\t\t}\n\t}\n\n\t// If overwrite is false, and the patch contains any keys that were changed differently,\n\t// then return a conflict error.\n\tif !overwrite {\n\t\tchangeMapDiffOptions := DiffOptions{}\n\t\tchangedMap, err := diffMaps(originalMap, currentMap, schema, changeMapDiffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\thasConflicts, err := MergingMapsHaveConflicts(patchMap, changedMap, schema)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif hasConflicts {\n\t\t\treturn nil, mergepatch.NewErrConflict(mergepatch.ToYAMLOrError(patchMap), mergepatch.ToYAMLOrError(changedMap))\n\t\t}\n\t}\n\n\treturn json.Marshal(patchMap)\n}\n\nfunc ItemAddedToModifiedSlice(original, modified string) bool { return original > modified }\n\nfunc ItemRemovedFromModifiedSlice(original, modified string) bool { return original < modified }\n\nfunc ItemMatchesOriginalAndModifiedSlice(original, modified string) bool { return original == modified }\n\nfunc CreateDeleteDirective(mergeKey string, mergeKeyValue interface{}) map[string]interface{} {\n\treturn map[string]interface{}{mergeKey: mergeKeyValue, directiveMarker: deleteDirective}\n}\n\nfunc mapTypeAssertion(original, patch interface{}) (map[string]interface{}, map[string]interface{}, error) {\n\ttypedOriginal, ok := original.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedOriginal, original)\n\t}\n\ttypedPatch, ok := patch.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedPatch, patch)\n\t}\n\treturn typedOriginal, typedPatch, nil\n}\n\nfunc sliceTypeAssertion(original, patch interface{}) ([]interface{}, []interface{}, error) {\n\ttypedOriginal, ok := original.([]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedOriginal, original)\n\t}\n\ttypedPatch, ok := patch.([]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedPatch, patch)\n\t}\n\treturn typedOriginal, typedPatch, nil\n}\n\n// extractRetainKeysPatchStrategy process patch strategy, which is a string may contains multiple\n// patch strategies separated by \",\". It returns a boolean var indicating if it has\n// retainKeys strategies and a string for the other strategy.\nfunc extractRetainKeysPatchStrategy(strategies []string) (bool, string, error) {\n\tswitch len(strategies) {\n\tcase 0:\n\t\treturn false, \"\", nil\n\tcase 1:\n\t\tsingleStrategy := strategies[0]\n\t\tswitch singleStrategy {\n\t\tcase retainKeysStrategy:\n\t\t\treturn true, \"\", nil\n\t\tdefault:\n\t\t\treturn false, singleStrategy, nil\n\t\t}\n\tcase 2:\n\t\tswitch {\n\t\tcase strategies[0] == retainKeysStrategy:\n\t\t\treturn true, strategies[1], nil\n\t\tcase strategies[1] == retainKeysStrategy:\n\t\t\treturn true, strategies[0], nil\n\t\tdefault:\n\t\t\treturn false, \"\", fmt.Errorf(\"unexpected patch strategy: %v\", strategies)\n\t\t}\n\tdefault:\n\t\treturn false, \"\", fmt.Errorf(\"unexpected patch strategy: %v\", strategies)\n\t}\n}\n\n// hasAdditionalNewField returns if original map has additional key with non-nil value than modified.\nfunc hasAdditionalNewField(original, modified map[string]interface{}) bool {\n\tfor k, v := range original {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif _, found := modified[k]; !found {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n\topenapi \"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\nconst (\n\tpatchStrategyOpenapiextensionKey = \"x-kubernetes-patch-strategy\"\n\tpatchMergeKeyOpenapiextensionKey = \"x-kubernetes-patch-merge-key\"\n)\n\ntype LookupPatchItem interface {\n\topenapi.SchemaVisitor\n\n\tError() error\n\tPath() *openapi.Path\n}\n\ntype kindItem struct {\n\tkey          string\n\tpath         *openapi.Path\n\terr          error\n\tpatchmeta    PatchMeta\n\tsubschema    openapi.Schema\n\thasVisitKind bool\n}\n\nfunc NewKindItem(key string, path *openapi.Path) *kindItem {\n\treturn &kindItem{\n\t\tkey:  key,\n\t\tpath: path,\n\t}\n}\n\nvar _ LookupPatchItem = &kindItem{}\n\nfunc (item *kindItem) Error() error {\n\treturn item.err\n}\n\nfunc (item *kindItem) Path() *openapi.Path {\n\treturn item.path\n}\n\nfunc (item *kindItem) VisitPrimitive(schema *openapi.Primitive) {\n\titem.err = errors.New(\"expected kind, but got primitive\")\n}\n\nfunc (item *kindItem) VisitArray(schema *openapi.Array) {\n\titem.err = errors.New(\"expected kind, but got slice\")\n}\n\nfunc (item *kindItem) VisitMap(schema *openapi.Map) {\n\titem.err = errors.New(\"expected kind, but got map\")\n}\n\nfunc (item *kindItem) VisitReference(schema openapi.Reference) {\n\tif !item.hasVisitKind {\n\t\tschema.SubSchema().Accept(item)\n\t}\n}\n\nfunc (item *kindItem) VisitKind(schema *openapi.Kind) {\n\tsubschema, ok := schema.Fields[item.key]\n\tif !ok {\n\t\titem.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key}\n\t\treturn\n\t}\n\n\tmergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions())\n\tif err != nil {\n\t\titem.err = err\n\t\treturn\n\t}\n\titem.patchmeta = PatchMeta{\n\t\tpatchStrategies: patchStrategies,\n\t\tpatchMergeKey:   mergeKey,\n\t}\n\titem.subschema = subschema\n}\n\ntype sliceItem struct {\n\tkey          string\n\tpath         *openapi.Path\n\terr          error\n\tpatchmeta    PatchMeta\n\tsubschema    openapi.Schema\n\thasVisitKind bool\n}\n\nfunc NewSliceItem(key string, path *openapi.Path) *sliceItem {\n\treturn &sliceItem{\n\t\tkey:  key,\n\t\tpath: path,\n\t}\n}\n\nvar _ LookupPatchItem = &sliceItem{}\n\nfunc (item *sliceItem) Error() error {\n\treturn item.err\n}\n\nfunc (item *sliceItem) Path() *openapi.Path {\n\treturn item.path\n}\n\nfunc (item *sliceItem) VisitPrimitive(schema *openapi.Primitive) {\n\titem.err = errors.New(\"expected slice, but got primitive\")\n}\n\nfunc (item *sliceItem) VisitArray(schema *openapi.Array) {\n\tif !item.hasVisitKind {\n\t\titem.err = errors.New(\"expected visit kind first, then visit array\")\n\t}\n\tsubschema := schema.SubType\n\titem.subschema = subschema\n}\n\nfunc (item *sliceItem) VisitMap(schema *openapi.Map) {\n\titem.err = errors.New(\"expected slice, but got map\")\n}\n\nfunc (item *sliceItem) VisitReference(schema openapi.Reference) {\n\tif !item.hasVisitKind {\n\t\tschema.SubSchema().Accept(item)\n\t} else {\n\t\titem.subschema = schema.SubSchema()\n\t}\n}\n\nfunc (item *sliceItem) VisitKind(schema *openapi.Kind) {\n\tsubschema, ok := schema.Fields[item.key]\n\tif !ok {\n\t\titem.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key}\n\t\treturn\n\t}\n\n\tmergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions())\n\tif err != nil {\n\t\titem.err = err\n\t\treturn\n\t}\n\titem.patchmeta = PatchMeta{\n\t\tpatchStrategies: patchStrategies,\n\t\tpatchMergeKey:   mergeKey,\n\t}\n\titem.hasVisitKind = true\n\tsubschema.Accept(item)\n}\n\nfunc parsePatchMetadata(extensions map[string]interface{}) (string, []string, error) {\n\tps, foundPS := extensions[patchStrategyOpenapiextensionKey]\n\tvar patchStrategies []string\n\tvar mergeKey, patchStrategy string\n\tvar ok bool\n\tif foundPS {\n\t\tpatchStrategy, ok = ps.(string)\n\t\tif ok {\n\t\t\tpatchStrategies = strings.Split(patchStrategy, \",\")\n\t\t} else {\n\t\t\treturn \"\", nil, mergepatch.ErrBadArgType(patchStrategy, ps)\n\t\t}\n\t}\n\tmk, foundMK := extensions[patchMergeKeyOpenapiextensionKey]\n\tif foundMK {\n\t\tmergeKey, ok = mk.(string)\n\t\tif !ok {\n\t\t\treturn \"\", nil, mergepatch.ErrBadArgType(mergeKey, mk)\n\t\t}\n\t}\n\treturn mergeKey, patchStrategies, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/field/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// Error is an implementation of the 'error' interface, which represents a\n// field-level validation error.\ntype Error struct {\n\tType     ErrorType\n\tField    string\n\tBadValue interface{}\n\tDetail   string\n}\n\nvar _ error = &Error{}\n\n// Error implements the error interface.\nfunc (v *Error) Error() string {\n\treturn fmt.Sprintf(\"%s: %s\", v.Field, v.ErrorBody())\n}\n\ntype OmitValueType struct{}\n\nvar omitValue = OmitValueType{}\n\n// ErrorBody returns the error message without the field name.  This is useful\n// for building nice-looking higher-level error reporting.\nfunc (v *Error) ErrorBody() string {\n\tvar s string\n\tswitch {\n\tcase v.Type == ErrorTypeRequired:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeForbidden:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeTooLong:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeInternal:\n\t\ts = v.Type.String()\n\tcase v.BadValue == omitValue:\n\t\ts = v.Type.String()\n\tdefault:\n\t\tvalue := v.BadValue\n\t\tvalueType := reflect.TypeOf(value)\n\t\tif value == nil || valueType == nil {\n\t\t\tvalue = \"null\"\n\t\t} else if valueType.Kind() == reflect.Pointer {\n\t\t\tif reflectValue := reflect.ValueOf(value); reflectValue.IsNil() {\n\t\t\t\tvalue = \"null\"\n\t\t\t} else {\n\t\t\t\tvalue = reflectValue.Elem().Interface()\n\t\t\t}\n\t\t}\n\t\tswitch t := value.(type) {\n\t\tcase int64, int32, float64, float32, bool:\n\t\t\t// use simple printer for simple types\n\t\t\ts = fmt.Sprintf(\"%s: %v\", v.Type, value)\n\t\tcase string:\n\t\t\ts = fmt.Sprintf(\"%s: %q\", v.Type, t)\n\t\tcase fmt.Stringer:\n\t\t\t// anything that defines String() is better than raw struct\n\t\t\ts = fmt.Sprintf(\"%s: %s\", v.Type, t.String())\n\t\tdefault:\n\t\t\t// fallback to raw struct\n\t\t\t// TODO: internal types have panic guards against json.Marshalling to prevent\n\t\t\t// accidental use of internal types in external serialized form.  For now, use\n\t\t\t// %#v, although it would be better to show a more expressive output in the future\n\t\t\ts = fmt.Sprintf(\"%s: %#v\", v.Type, value)\n\t\t}\n\t}\n\tif len(v.Detail) != 0 {\n\t\ts += fmt.Sprintf(\": %s\", v.Detail)\n\t}\n\treturn s\n}\n\n// ErrorType is a machine readable value providing more detail about why\n// a field is invalid.  These values are expected to match 1-1 with\n// CauseType in api/types.go.\ntype ErrorType string\n\n// TODO: These values are duplicated in api/types.go, but there's a circular dep.  Fix it.\nconst (\n\t// ErrorTypeNotFound is used to report failure to find a requested value\n\t// (e.g. looking up an ID).  See NotFound().\n\tErrorTypeNotFound ErrorType = \"FieldValueNotFound\"\n\t// ErrorTypeRequired is used to report required values that are not\n\t// provided (e.g. empty strings, null values, or empty arrays).  See\n\t// Required().\n\tErrorTypeRequired ErrorType = \"FieldValueRequired\"\n\t// ErrorTypeDuplicate is used to report collisions of values that must be\n\t// unique (e.g. unique IDs).  See Duplicate().\n\tErrorTypeDuplicate ErrorType = \"FieldValueDuplicate\"\n\t// ErrorTypeInvalid is used to report malformed values (e.g. failed regex\n\t// match, too long, out of bounds).  See Invalid().\n\tErrorTypeInvalid ErrorType = \"FieldValueInvalid\"\n\t// ErrorTypeNotSupported is used to report unknown values for enumerated\n\t// fields (e.g. a list of valid values).  See NotSupported().\n\tErrorTypeNotSupported ErrorType = \"FieldValueNotSupported\"\n\t// ErrorTypeForbidden is used to report valid (as per formatting rules)\n\t// values which would be accepted under some conditions, but which are not\n\t// permitted by the current conditions (such as security policy).  See\n\t// Forbidden().\n\tErrorTypeForbidden ErrorType = \"FieldValueForbidden\"\n\t// ErrorTypeTooLong is used to report that the given value is too long.\n\t// This is similar to ErrorTypeInvalid, but the error will not include the\n\t// too-long value.  See TooLong().\n\tErrorTypeTooLong ErrorType = \"FieldValueTooLong\"\n\t// ErrorTypeTooMany is used to report \"too many\". This is used to\n\t// report that a given list has too many items. This is similar to FieldValueTooLong,\n\t// but the error indicates quantity instead of length.\n\tErrorTypeTooMany ErrorType = \"FieldValueTooMany\"\n\t// ErrorTypeInternal is used to report other errors that are not related\n\t// to user input.  See InternalError().\n\tErrorTypeInternal ErrorType = \"InternalError\"\n\t// ErrorTypeTypeInvalid is for the value did not match the schema type for that field\n\tErrorTypeTypeInvalid ErrorType = \"FieldValueTypeInvalid\"\n)\n\n// String converts a ErrorType into its corresponding canonical error message.\nfunc (t ErrorType) String() string {\n\tswitch t {\n\tcase ErrorTypeNotFound:\n\t\treturn \"Not found\"\n\tcase ErrorTypeRequired:\n\t\treturn \"Required value\"\n\tcase ErrorTypeDuplicate:\n\t\treturn \"Duplicate value\"\n\tcase ErrorTypeInvalid:\n\t\treturn \"Invalid value\"\n\tcase ErrorTypeNotSupported:\n\t\treturn \"Unsupported value\"\n\tcase ErrorTypeForbidden:\n\t\treturn \"Forbidden\"\n\tcase ErrorTypeTooLong:\n\t\treturn \"Too long\"\n\tcase ErrorTypeTooMany:\n\t\treturn \"Too many\"\n\tcase ErrorTypeInternal:\n\t\treturn \"Internal error\"\n\tcase ErrorTypeTypeInvalid:\n\t\treturn \"Invalid value\"\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unrecognized validation error: %q\", string(t)))\n\t}\n}\n\n// TypeInvalid returns a *Error indicating \"type is invalid\"\nfunc TypeInvalid(field *Path, value interface{}, detail string) *Error {\n\treturn &Error{ErrorTypeTypeInvalid, field.String(), value, detail}\n}\n\n// NotFound returns a *Error indicating \"value not found\".  This is\n// used to report failure to find a requested value (e.g. looking up an ID).\nfunc NotFound(field *Path, value interface{}) *Error {\n\treturn &Error{ErrorTypeNotFound, field.String(), value, \"\"}\n}\n\n// Required returns a *Error indicating \"value required\".  This is used\n// to report required values that are not provided (e.g. empty strings, null\n// values, or empty arrays).\nfunc Required(field *Path, detail string) *Error {\n\treturn &Error{ErrorTypeRequired, field.String(), \"\", detail}\n}\n\n// Duplicate returns a *Error indicating \"duplicate value\".  This is\n// used to report collisions of values that must be unique (e.g. names or IDs).\nfunc Duplicate(field *Path, value interface{}) *Error {\n\treturn &Error{ErrorTypeDuplicate, field.String(), value, \"\"}\n}\n\n// Invalid returns a *Error indicating \"invalid value\".  This is used\n// to report malformed values (e.g. failed regex match, too long, out of bounds).\nfunc Invalid(field *Path, value interface{}, detail string) *Error {\n\treturn &Error{ErrorTypeInvalid, field.String(), value, detail}\n}\n\n// NotSupported returns a *Error indicating \"unsupported value\".\n// This is used to report unknown values for enumerated fields (e.g. a list of\n// valid values).\nfunc NotSupported(field *Path, value interface{}, validValues []string) *Error {\n\tdetail := \"\"\n\tif len(validValues) > 0 {\n\t\tquotedValues := make([]string, len(validValues))\n\t\tfor i, v := range validValues {\n\t\t\tquotedValues[i] = strconv.Quote(v)\n\t\t}\n\t\tdetail = \"supported values: \" + strings.Join(quotedValues, \", \")\n\t}\n\treturn &Error{ErrorTypeNotSupported, field.String(), value, detail}\n}\n\n// Forbidden returns a *Error indicating \"forbidden\".  This is used to\n// report valid (as per formatting rules) values which would be accepted under\n// some conditions, but which are not permitted by current conditions (e.g.\n// security policy).\nfunc Forbidden(field *Path, detail string) *Error {\n\treturn &Error{ErrorTypeForbidden, field.String(), \"\", detail}\n}\n\n// TooLong returns a *Error indicating \"too long\".  This is used to\n// report that the given value is too long.  This is similar to\n// Invalid, but the returned error will not include the too-long\n// value.\nfunc TooLong(field *Path, value interface{}, maxLength int) *Error {\n\treturn &Error{ErrorTypeTooLong, field.String(), value, fmt.Sprintf(\"must have at most %d bytes\", maxLength)}\n}\n\n// TooLongMaxLength returns a *Error indicating \"too long\".  This is used to\n// report that the given value is too long.  This is similar to\n// Invalid, but the returned error will not include the too-long\n// value. If maxLength is negative, no max length will be included in the message.\nfunc TooLongMaxLength(field *Path, value interface{}, maxLength int) *Error {\n\tvar msg string\n\tif maxLength >= 0 {\n\t\tmsg = fmt.Sprintf(\"may not be longer than %d\", maxLength)\n\t} else {\n\t\tmsg = \"value is too long\"\n\t}\n\treturn &Error{ErrorTypeTooLong, field.String(), value, msg}\n}\n\n// TooMany returns a *Error indicating \"too many\". This is used to\n// report that a given list has too many items. This is similar to TooLong,\n// but the returned error indicates quantity instead of length.\nfunc TooMany(field *Path, actualQuantity, maxQuantity int) *Error {\n\tvar msg string\n\n\tif maxQuantity >= 0 {\n\t\tmsg = fmt.Sprintf(\"must have at most %d items\", maxQuantity)\n\t} else {\n\t\tmsg = \"has too many items\"\n\t}\n\n\tvar actual interface{}\n\tif actualQuantity >= 0 {\n\t\tactual = actualQuantity\n\t} else {\n\t\tactual = omitValue\n\t}\n\n\treturn &Error{ErrorTypeTooMany, field.String(), actual, msg}\n}\n\n// InternalError returns a *Error indicating \"internal error\".  This is used\n// to signal that an error was found that was not directly related to user\n// input.  The err argument must be non-nil.\nfunc InternalError(field *Path, err error) *Error {\n\treturn &Error{ErrorTypeInternal, field.String(), nil, err.Error()}\n}\n\n// ErrorList holds a set of Errors.  It is plausible that we might one day have\n// non-field errors in this same umbrella package, but for now we don't, so\n// we can keep it simple and leave ErrorList here.\ntype ErrorList []*Error\n\n// NewErrorTypeMatcher returns an errors.Matcher that returns true\n// if the provided error is a Error and has the provided ErrorType.\nfunc NewErrorTypeMatcher(t ErrorType) utilerrors.Matcher {\n\treturn func(err error) bool {\n\t\tif e, ok := err.(*Error); ok {\n\t\t\treturn e.Type == t\n\t\t}\n\t\treturn false\n\t}\n}\n\n// ToAggregate converts the ErrorList into an errors.Aggregate.\nfunc (list ErrorList) ToAggregate() utilerrors.Aggregate {\n\tif len(list) == 0 {\n\t\treturn nil\n\t}\n\terrs := make([]error, 0, len(list))\n\terrorMsgs := sets.NewString()\n\tfor _, err := range list {\n\t\tmsg := fmt.Sprintf(\"%v\", err)\n\t\tif errorMsgs.Has(msg) {\n\t\t\tcontinue\n\t\t}\n\t\terrorMsgs.Insert(msg)\n\t\terrs = append(errs, err)\n\t}\n\treturn utilerrors.NewAggregate(errs)\n}\n\nfunc fromAggregate(agg utilerrors.Aggregate) ErrorList {\n\terrs := agg.Errors()\n\tlist := make(ErrorList, len(errs))\n\tfor i := range errs {\n\t\tlist[i] = errs[i].(*Error)\n\t}\n\treturn list\n}\n\n// Filter removes items from the ErrorList that match the provided fns.\nfunc (list ErrorList) Filter(fns ...utilerrors.Matcher) ErrorList {\n\terr := utilerrors.FilterOut(list.ToAggregate(), fns...)\n\tif err == nil {\n\t\treturn nil\n\t}\n\t// FilterOut takes an Aggregate and returns an Aggregate\n\treturn fromAggregate(err.(utilerrors.Aggregate))\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage field\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\ntype pathOptions struct {\n\tpath *Path\n}\n\n// PathOption modifies a pathOptions\ntype PathOption func(o *pathOptions)\n\n// WithPath generates a PathOption\nfunc WithPath(p *Path) PathOption {\n\treturn func(o *pathOptions) {\n\t\to.path = p\n\t}\n}\n\n// ToPath produces *Path from a set of PathOption\nfunc ToPath(opts ...PathOption) *Path {\n\tc := &pathOptions{}\n\tfor _, opt := range opts {\n\t\topt(c)\n\t}\n\treturn c.path\n}\n\n// Path represents the path from some root to a particular field.\ntype Path struct {\n\tname   string // the name of this field or \"\" if this is an index\n\tindex  string // if name == \"\", this is a subscript (index or map key) of the previous element\n\tparent *Path  // nil if this is the root element\n}\n\n// NewPath creates a root Path object.\nfunc NewPath(name string, moreNames ...string) *Path {\n\tr := &Path{name: name, parent: nil}\n\tfor _, anotherName := range moreNames {\n\t\tr = &Path{name: anotherName, parent: r}\n\t}\n\treturn r\n}\n\n// Root returns the root element of this Path.\nfunc (p *Path) Root() *Path {\n\tfor ; p.parent != nil; p = p.parent {\n\t\t// Do nothing.\n\t}\n\treturn p\n}\n\n// Child creates a new Path that is a child of the method receiver.\nfunc (p *Path) Child(name string, moreNames ...string) *Path {\n\tr := NewPath(name, moreNames...)\n\tr.Root().parent = p\n\treturn r\n}\n\n// Index indicates that the previous Path is to be subscripted by an int.\n// This sets the same underlying value as Key.\nfunc (p *Path) Index(index int) *Path {\n\treturn &Path{index: strconv.Itoa(index), parent: p}\n}\n\n// Key indicates that the previous Path is to be subscripted by a string.\n// This sets the same underlying value as Index.\nfunc (p *Path) Key(key string) *Path {\n\treturn &Path{index: key, parent: p}\n}\n\n// String produces a string representation of the Path.\nfunc (p *Path) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\t// make a slice to iterate\n\telems := []*Path{}\n\tfor ; p != nil; p = p.parent {\n\t\telems = append(elems, p)\n\t}\n\n\t// iterate, but it has to be backwards\n\tbuf := bytes.NewBuffer(nil)\n\tfor i := range elems {\n\t\tp := elems[len(elems)-1-i]\n\t\tif p.parent != nil && len(p.name) > 0 {\n\t\t\t// This is either the root or it is a subscript.\n\t\t\tbuf.WriteString(\".\")\n\t\t}\n\t\tif len(p.name) > 0 {\n\t\t\tbuf.WriteString(p.name)\n\t\t} else {\n\t\t\tfmt.Fprintf(buf, \"[%s]\", p.index)\n\t\t}\n\t}\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/validation.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"net\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\nconst qnameCharFmt string = \"[A-Za-z0-9]\"\nconst qnameExtCharFmt string = \"[-A-Za-z0-9_.]\"\nconst qualifiedNameFmt string = \"(\" + qnameCharFmt + qnameExtCharFmt + \"*)?\" + qnameCharFmt\nconst qualifiedNameErrMsg string = \"must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character\"\nconst qualifiedNameMaxLength int = 63\n\nvar qualifiedNameRegexp = regexp.MustCompile(\"^\" + qualifiedNameFmt + \"$\")\n\n// IsQualifiedName tests whether the value passed is what Kubernetes calls a\n// \"qualified name\".  This is a format used in various places throughout the\n// system.  If the value is not valid, a list of error strings is returned.\n// Otherwise an empty list (or nil) is returned.\nfunc IsQualifiedName(value string) []string {\n\tvar errs []string\n\tparts := strings.Split(value, \"/\")\n\tvar name string\n\tswitch len(parts) {\n\tcase 1:\n\t\tname = parts[0]\n\tcase 2:\n\t\tvar prefix string\n\t\tprefix, name = parts[0], parts[1]\n\t\tif len(prefix) == 0 {\n\t\t\terrs = append(errs, \"prefix part \"+EmptyError())\n\t\t} else if msgs := IsDNS1123Subdomain(prefix); len(msgs) != 0 {\n\t\t\terrs = append(errs, prefixEach(msgs, \"prefix part \")...)\n\t\t}\n\tdefault:\n\t\treturn append(errs, \"a qualified name \"+RegexError(qualifiedNameErrMsg, qualifiedNameFmt, \"MyName\", \"my.name\", \"123-abc\")+\n\t\t\t\" with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\")\n\t}\n\n\tif len(name) == 0 {\n\t\terrs = append(errs, \"name part \"+EmptyError())\n\t} else if len(name) > qualifiedNameMaxLength {\n\t\terrs = append(errs, \"name part \"+MaxLenError(qualifiedNameMaxLength))\n\t}\n\tif !qualifiedNameRegexp.MatchString(name) {\n\t\terrs = append(errs, \"name part \"+RegexError(qualifiedNameErrMsg, qualifiedNameFmt, \"MyName\", \"my.name\", \"123-abc\"))\n\t}\n\treturn errs\n}\n\n// IsFullyQualifiedName checks if the name is fully qualified. This is similar\n// to IsFullyQualifiedDomainName but requires a minimum of 3 segments instead of\n// 2 and does not accept a trailing . as valid.\n// TODO: This function is deprecated and preserved until all callers migrate to\n// IsFullyQualifiedDomainName; please don't add new callers.\nfunc IsFullyQualifiedName(fldPath *field.Path, name string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tif len(name) == 0 {\n\t\treturn append(allErrors, field.Required(fldPath, \"\"))\n\t}\n\tif errs := IsDNS1123Subdomain(name); len(errs) > 0 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, strings.Join(errs, \",\")))\n\t}\n\tif len(strings.Split(name, \".\")) < 3 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, \"should be a domain with at least three segments separated by dots\"))\n\t}\n\treturn allErrors\n}\n\n// IsFullyQualifiedDomainName checks if the domain name is fully qualified. This\n// is similar to IsFullyQualifiedName but only requires a minimum of 2 segments\n// instead of 3 and accepts a trailing . as valid.\nfunc IsFullyQualifiedDomainName(fldPath *field.Path, name string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tif len(name) == 0 {\n\t\treturn append(allErrors, field.Required(fldPath, \"\"))\n\t}\n\tif strings.HasSuffix(name, \".\") {\n\t\tname = name[:len(name)-1]\n\t}\n\tif errs := IsDNS1123Subdomain(name); len(errs) > 0 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, strings.Join(errs, \",\")))\n\t}\n\tif len(strings.Split(name, \".\")) < 2 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, \"should be a domain with at least two segments separated by dots\"))\n\t}\n\tfor _, label := range strings.Split(name, \".\") {\n\t\tif errs := IsDNS1123Label(label); len(errs) > 0 {\n\t\t\treturn append(allErrors, field.Invalid(fldPath, label, strings.Join(errs, \",\")))\n\t\t}\n\t}\n\treturn allErrors\n}\n\n// Allowed characters in an HTTP Path as defined by RFC 3986. A HTTP path may\n// contain:\n// * unreserved characters (alphanumeric, '-', '.', '_', '~')\n// * percent-encoded octets\n// * sub-delims (\"!\", \"$\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \";\", \"=\")\n// * a colon character (\":\")\nconst httpPathFmt string = `[A-Za-z0-9/\\-._~%!$&'()*+,;=:]+`\n\nvar httpPathRegexp = regexp.MustCompile(\"^\" + httpPathFmt + \"$\")\n\n// IsDomainPrefixedPath checks if the given string is a domain-prefixed path\n// (e.g. acme.io/foo). All characters before the first \"/\" must be a valid\n// subdomain as defined by RFC 1123. All characters trailing the first \"/\" must\n// be valid HTTP Path characters as defined by RFC 3986.\nfunc IsDomainPrefixedPath(fldPath *field.Path, dpPath string) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tif len(dpPath) == 0 {\n\t\treturn append(allErrs, field.Required(fldPath, \"\"))\n\t}\n\n\tsegments := strings.SplitN(dpPath, \"/\", 2)\n\tif len(segments) != 2 || len(segments[0]) == 0 || len(segments[1]) == 0 {\n\t\treturn append(allErrs, field.Invalid(fldPath, dpPath, \"must be a domain-prefixed path (such as \\\"acme.io/foo\\\")\"))\n\t}\n\n\thost := segments[0]\n\tfor _, err := range IsDNS1123Subdomain(host) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, host, err))\n\t}\n\n\tpath := segments[1]\n\tif !httpPathRegexp.MatchString(path) {\n\t\treturn append(allErrs, field.Invalid(fldPath, path, RegexError(\"Invalid path\", httpPathFmt)))\n\t}\n\n\treturn allErrs\n}\n\nconst labelValueFmt string = \"(\" + qualifiedNameFmt + \")?\"\nconst labelValueErrMsg string = \"a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character\"\n\n// LabelValueMaxLength is a label's max length\nconst LabelValueMaxLength int = 63\n\nvar labelValueRegexp = regexp.MustCompile(\"^\" + labelValueFmt + \"$\")\n\n// IsValidLabelValue tests whether the value passed is a valid label value.  If\n// the value is not valid, a list of error strings is returned.  Otherwise an\n// empty list (or nil) is returned.\nfunc IsValidLabelValue(value string) []string {\n\tvar errs []string\n\tif len(value) > LabelValueMaxLength {\n\t\terrs = append(errs, MaxLenError(LabelValueMaxLength))\n\t}\n\tif !labelValueRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(labelValueErrMsg, labelValueFmt, \"MyValue\", \"my_value\", \"12345\"))\n\t}\n\treturn errs\n}\n\nconst dns1123LabelFmt string = \"[a-z0-9]([-a-z0-9]*[a-z0-9])?\"\nconst dns1123LabelErrMsg string = \"a lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character\"\n\n// DNS1123LabelMaxLength is a label's max length in DNS (RFC 1123)\nconst DNS1123LabelMaxLength int = 63\n\nvar dns1123LabelRegexp = regexp.MustCompile(\"^\" + dns1123LabelFmt + \"$\")\n\n// IsDNS1123Label tests for a string that conforms to the definition of a label in\n// DNS (RFC 1123).\nfunc IsDNS1123Label(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123LabelMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123LabelMaxLength))\n\t}\n\tif !dns1123LabelRegexp.MatchString(value) {\n\t\tif dns1123SubdomainRegexp.MatchString(value) {\n\t\t\t// It was a valid subdomain and not a valid label.  Since we\n\t\t\t// already checked length, it must be dots.\n\t\t\terrs = append(errs, \"must not contain dots\")\n\t\t} else {\n\t\t\terrs = append(errs, RegexError(dns1123LabelErrMsg, dns1123LabelFmt, \"my-name\", \"123-abc\"))\n\t\t}\n\t}\n\treturn errs\n}\n\nconst dns1123SubdomainFmt string = dns1123LabelFmt + \"(\\\\.\" + dns1123LabelFmt + \")*\"\nconst dns1123SubdomainErrorMsg string = \"a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character\"\n\n// DNS1123SubdomainMaxLength is a subdomain's max length in DNS (RFC 1123)\nconst DNS1123SubdomainMaxLength int = 253\n\nvar dns1123SubdomainRegexp = regexp.MustCompile(\"^\" + dns1123SubdomainFmt + \"$\")\n\n// IsDNS1123Subdomain tests for a string that conforms to the definition of a\n// subdomain in DNS (RFC 1123).\nfunc IsDNS1123Subdomain(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !dns1123SubdomainRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(dns1123SubdomainErrorMsg, dns1123SubdomainFmt, \"example.com\"))\n\t}\n\treturn errs\n}\n\nconst dns1035LabelFmt string = \"[a-z]([-a-z0-9]*[a-z0-9])?\"\nconst dns1035LabelErrMsg string = \"a DNS-1035 label must consist of lower case alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character\"\n\n// DNS1035LabelMaxLength is a label's max length in DNS (RFC 1035)\nconst DNS1035LabelMaxLength int = 63\n\nvar dns1035LabelRegexp = regexp.MustCompile(\"^\" + dns1035LabelFmt + \"$\")\n\n// IsDNS1035Label tests for a string that conforms to the definition of a label in\n// DNS (RFC 1035).\nfunc IsDNS1035Label(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1035LabelMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1035LabelMaxLength))\n\t}\n\tif !dns1035LabelRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(dns1035LabelErrMsg, dns1035LabelFmt, \"my-name\", \"abc-123\"))\n\t}\n\treturn errs\n}\n\n// wildcard definition - RFC 1034 section 4.3.3.\n// examples:\n// - valid: *.bar.com, *.foo.bar.com\n// - invalid: *.*.bar.com, *.foo.*.com, *bar.com, f*.bar.com, *\nconst wildcardDNS1123SubdomainFmt = \"\\\\*\\\\.\" + dns1123SubdomainFmt\nconst wildcardDNS1123SubdomainErrMsg = \"a wildcard DNS-1123 subdomain must start with '*.', followed by a valid DNS subdomain, which must consist of lower case alphanumeric characters, '-' or '.' and end with an alphanumeric character\"\n\n// IsWildcardDNS1123Subdomain tests for a string that conforms to the definition of a\n// wildcard subdomain in DNS (RFC 1034 section 4.3.3).\nfunc IsWildcardDNS1123Subdomain(value string) []string {\n\twildcardDNS1123SubdomainRegexp := regexp.MustCompile(\"^\" + wildcardDNS1123SubdomainFmt + \"$\")\n\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !wildcardDNS1123SubdomainRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(wildcardDNS1123SubdomainErrMsg, wildcardDNS1123SubdomainFmt, \"*.example.com\"))\n\t}\n\treturn errs\n}\n\nconst cIdentifierFmt string = \"[A-Za-z_][A-Za-z0-9_]*\"\nconst identifierErrMsg string = \"a valid C identifier must start with alphabetic character or '_', followed by a string of alphanumeric characters or '_'\"\n\nvar cIdentifierRegexp = regexp.MustCompile(\"^\" + cIdentifierFmt + \"$\")\n\n// IsCIdentifier tests for a string that conforms the definition of an identifier\n// in C. This checks the format, but not the length.\nfunc IsCIdentifier(value string) []string {\n\tif !cIdentifierRegexp.MatchString(value) {\n\t\treturn []string{RegexError(identifierErrMsg, cIdentifierFmt, \"my_name\", \"MY_NAME\", \"MyName\")}\n\t}\n\treturn nil\n}\n\n// IsValidPortNum tests that the argument is a valid, non-zero port number.\nfunc IsValidPortNum(port int) []string {\n\tif 1 <= port && port <= 65535 {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(1, 65535)}\n}\n\n// IsInRange tests that the argument is in an inclusive range.\nfunc IsInRange(value int, min int, max int) []string {\n\tif value >= min && value <= max {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(min, max)}\n}\n\n// Now in libcontainer UID/GID limits is 0 ~ 1<<31 - 1\n// TODO: once we have a type for UID/GID we should make these that type.\nconst (\n\tminUserID  = 0\n\tmaxUserID  = math.MaxInt32\n\tminGroupID = 0\n\tmaxGroupID = math.MaxInt32\n)\n\n// IsValidGroupID tests that the argument is a valid Unix GID.\nfunc IsValidGroupID(gid int64) []string {\n\tif minGroupID <= gid && gid <= maxGroupID {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(minGroupID, maxGroupID)}\n}\n\n// IsValidUserID tests that the argument is a valid Unix UID.\nfunc IsValidUserID(uid int64) []string {\n\tif minUserID <= uid && uid <= maxUserID {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(minUserID, maxUserID)}\n}\n\nvar portNameCharsetRegex = regexp.MustCompile(\"^[-a-z0-9]+$\")\nvar portNameOneLetterRegexp = regexp.MustCompile(\"[a-z]\")\n\n// IsValidPortName check that the argument is valid syntax. It must be\n// non-empty and no more than 15 characters long. It may contain only [-a-z0-9]\n// and must contain at least one letter [a-z]. It must not start or end with a\n// hyphen, nor contain adjacent hyphens.\n//\n// Note: We only allow lower-case characters, even though RFC 6335 is case\n// insensitive.\nfunc IsValidPortName(port string) []string {\n\tvar errs []string\n\tif len(port) > 15 {\n\t\terrs = append(errs, MaxLenError(15))\n\t}\n\tif !portNameCharsetRegex.MatchString(port) {\n\t\terrs = append(errs, \"must contain only alpha-numeric characters (a-z, 0-9), and hyphens (-)\")\n\t}\n\tif !portNameOneLetterRegexp.MatchString(port) {\n\t\terrs = append(errs, \"must contain at least one letter (a-z)\")\n\t}\n\tif strings.Contains(port, \"--\") {\n\t\terrs = append(errs, \"must not contain consecutive hyphens\")\n\t}\n\tif len(port) > 0 && (port[0] == '-' || port[len(port)-1] == '-') {\n\t\terrs = append(errs, \"must not begin or end with a hyphen\")\n\t}\n\treturn errs\n}\n\n// IsValidIP tests that the argument is a valid IP address.\nfunc IsValidIP(value string) []string {\n\tif netutils.ParseIPSloppy(value) == nil {\n\t\treturn []string{\"must be a valid IP address, (e.g. 10.9.8.7 or 2001:db8::ffff)\"}\n\t}\n\treturn nil\n}\n\n// IsValidIPv4Address tests that the argument is a valid IPv4 address.\nfunc IsValidIPv4Address(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tip := netutils.ParseIPSloppy(value)\n\tif ip == nil || ip.To4() == nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid IPv4 address\"))\n\t}\n\treturn allErrors\n}\n\n// IsValidIPv6Address tests that the argument is a valid IPv6 address.\nfunc IsValidIPv6Address(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tip := netutils.ParseIPSloppy(value)\n\tif ip == nil || ip.To4() != nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid IPv6 address\"))\n\t}\n\treturn allErrors\n}\n\nconst percentFmt string = \"[0-9]+%\"\nconst percentErrMsg string = \"a valid percent string must be a numeric string followed by an ending '%'\"\n\nvar percentRegexp = regexp.MustCompile(\"^\" + percentFmt + \"$\")\n\n// IsValidPercent checks that string is in the form of a percentage\nfunc IsValidPercent(percent string) []string {\n\tif !percentRegexp.MatchString(percent) {\n\t\treturn []string{RegexError(percentErrMsg, percentFmt, \"1%\", \"93%\")}\n\t}\n\treturn nil\n}\n\nconst httpHeaderNameFmt string = \"[-A-Za-z0-9]+\"\nconst httpHeaderNameErrMsg string = \"a valid HTTP header must consist of alphanumeric characters or '-'\"\n\nvar httpHeaderNameRegexp = regexp.MustCompile(\"^\" + httpHeaderNameFmt + \"$\")\n\n// IsHTTPHeaderName checks that a string conforms to the Go HTTP library's\n// definition of a valid header field name (a stricter subset than RFC7230).\nfunc IsHTTPHeaderName(value string) []string {\n\tif !httpHeaderNameRegexp.MatchString(value) {\n\t\treturn []string{RegexError(httpHeaderNameErrMsg, httpHeaderNameFmt, \"X-Header-Name\")}\n\t}\n\treturn nil\n}\n\nconst envVarNameFmt = \"[-._a-zA-Z][-._a-zA-Z0-9]*\"\nconst envVarNameFmtErrMsg string = \"a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit\"\n\nvar envVarNameRegexp = regexp.MustCompile(\"^\" + envVarNameFmt + \"$\")\n\n// IsEnvVarName tests if a string is a valid environment variable name.\nfunc IsEnvVarName(value string) []string {\n\tvar errs []string\n\tif !envVarNameRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(envVarNameFmtErrMsg, envVarNameFmt, \"my.env-name\", \"MY_ENV.NAME\", \"MyEnvName1\"))\n\t}\n\n\terrs = append(errs, hasChDirPrefix(value)...)\n\treturn errs\n}\n\nconst configMapKeyFmt = `[-._a-zA-Z0-9]+`\nconst configMapKeyErrMsg string = \"a valid config key must consist of alphanumeric characters, '-', '_' or '.'\"\n\nvar configMapKeyRegexp = regexp.MustCompile(\"^\" + configMapKeyFmt + \"$\")\n\n// IsConfigMapKey tests for a string that is a valid key for a ConfigMap or Secret\nfunc IsConfigMapKey(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !configMapKeyRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(configMapKeyErrMsg, configMapKeyFmt, \"key.name\", \"KEY_NAME\", \"key-name\"))\n\t}\n\terrs = append(errs, hasChDirPrefix(value)...)\n\treturn errs\n}\n\n// MaxLenError returns a string explanation of a \"string too long\" validation\n// failure.\nfunc MaxLenError(length int) string {\n\treturn fmt.Sprintf(\"must be no more than %d characters\", length)\n}\n\n// RegexError returns a string explanation of a regex validation failure.\nfunc RegexError(msg string, fmt string, examples ...string) string {\n\tif len(examples) == 0 {\n\t\treturn msg + \" (regex used for validation is '\" + fmt + \"')\"\n\t}\n\tmsg += \" (e.g. \"\n\tfor i := range examples {\n\t\tif i > 0 {\n\t\t\tmsg += \" or \"\n\t\t}\n\t\tmsg += \"'\" + examples[i] + \"', \"\n\t}\n\tmsg += \"regex used for validation is '\" + fmt + \"')\"\n\treturn msg\n}\n\n// EmptyError returns a string explanation of a \"must not be empty\" validation\n// failure.\nfunc EmptyError() string {\n\treturn \"must be non-empty\"\n}\n\nfunc prefixEach(msgs []string, prefix string) []string {\n\tfor i := range msgs {\n\t\tmsgs[i] = prefix + msgs[i]\n\t}\n\treturn msgs\n}\n\n// InclusiveRangeError returns a string explanation of a numeric \"must be\n// between\" validation failure.\nfunc InclusiveRangeError(lo, hi int) string {\n\treturn fmt.Sprintf(`must be between %d and %d, inclusive`, lo, hi)\n}\n\nfunc hasChDirPrefix(value string) []string {\n\tvar errs []string\n\tswitch {\n\tcase value == \".\":\n\t\terrs = append(errs, `must not be '.'`)\n\tcase value == \"..\":\n\t\terrs = append(errs, `must not be '..'`)\n\tcase strings.HasPrefix(value, \"..\"):\n\t\terrs = append(errs, `must not start with '..'`)\n\t}\n\treturn errs\n}\n\n// IsValidSocketAddr checks that string represents a valid socket address\n// as defined in RFC 789. (e.g 0.0.0.0:10254 or [::]:10254))\nfunc IsValidSocketAddr(value string) []string {\n\tvar errs []string\n\tip, port, err := net.SplitHostPort(value)\n\tif err != nil {\n\t\terrs = append(errs, \"must be a valid socket address format, (e.g. 0.0.0.0:10254 or [::]:10254)\")\n\t\treturn errs\n\t}\n\tportInt, _ := strconv.Atoi(port)\n\terrs = append(errs, IsValidPortNum(portInt)...)\n\terrs = append(errs, IsValidIP(ip)...)\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/backoff.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/utils/clock\"\n)\n\n// Backoff holds parameters applied to a Backoff function.\ntype Backoff struct {\n\t// The initial duration.\n\tDuration time.Duration\n\t// Duration is multiplied by factor each iteration, if factor is not zero\n\t// and the limits imposed by Steps and Cap have not been reached.\n\t// Should not be negative.\n\t// The jitter does not contribute to the updates to the duration parameter.\n\tFactor float64\n\t// The sleep at each iteration is the duration plus an additional\n\t// amount chosen uniformly at random from the interval between\n\t// zero and `jitter*duration`.\n\tJitter float64\n\t// The remaining number of iterations in which the duration\n\t// parameter may change (but progress can be stopped earlier by\n\t// hitting the cap). If not positive, the duration is not\n\t// changed. Used for exponential backoff in combination with\n\t// Factor and Cap.\n\tSteps int\n\t// A limit on revised values of the duration parameter. If a\n\t// multiplication by the factor parameter would make the duration\n\t// exceed the cap then the duration is set to the cap and the\n\t// steps parameter is set to zero.\n\tCap time.Duration\n}\n\n// Step returns an amount of time to sleep determined by the original\n// Duration and Jitter. The backoff is mutated to update its Steps and\n// Duration. A nil Backoff always has a zero-duration step.\nfunc (b *Backoff) Step() time.Duration {\n\tif b == nil {\n\t\treturn 0\n\t}\n\tvar nextDuration time.Duration\n\tnextDuration, b.Duration, b.Steps = delay(b.Steps, b.Duration, b.Cap, b.Factor, b.Jitter)\n\treturn nextDuration\n}\n\n// DelayFunc returns a function that will compute the next interval to\n// wait given the arguments in b. It does not mutate the original backoff\n// but the function is safe to use only from a single goroutine.\nfunc (b Backoff) DelayFunc() DelayFunc {\n\tsteps := b.Steps\n\tduration := b.Duration\n\tcap := b.Cap\n\tfactor := b.Factor\n\tjitter := b.Jitter\n\n\treturn func() time.Duration {\n\t\tvar nextDuration time.Duration\n\t\t// jitter is applied per step and is not cumulative over multiple steps\n\t\tnextDuration, duration, steps = delay(steps, duration, cap, factor, jitter)\n\t\treturn nextDuration\n\t}\n}\n\n// Timer returns a timer implementation appropriate to this backoff's parameters\n// for use with wait functions.\nfunc (b Backoff) Timer() Timer {\n\tif b.Steps > 1 || b.Jitter != 0 {\n\t\treturn &variableTimer{new: internalClock.NewTimer, fn: b.DelayFunc()}\n\t}\n\tif b.Duration > 0 {\n\t\treturn &fixedTimer{new: internalClock.NewTicker, interval: b.Duration}\n\t}\n\treturn newNoopTimer()\n}\n\n// delay implements the core delay algorithm used in this package.\nfunc delay(steps int, duration, cap time.Duration, factor, jitter float64) (_ time.Duration, next time.Duration, nextSteps int) {\n\t// when steps is non-positive, do not alter the base duration\n\tif steps < 1 {\n\t\tif jitter > 0 {\n\t\t\treturn Jitter(duration, jitter), duration, 0\n\t\t}\n\t\treturn duration, duration, 0\n\t}\n\tsteps--\n\n\t// calculate the next step's interval\n\tif factor != 0 {\n\t\tnext = time.Duration(float64(duration) * factor)\n\t\tif cap > 0 && next > cap {\n\t\t\tnext = cap\n\t\t\tsteps = 0\n\t\t}\n\t} else {\n\t\tnext = duration\n\t}\n\n\t// add jitter for this step\n\tif jitter > 0 {\n\t\tduration = Jitter(duration, jitter)\n\t}\n\n\treturn duration, next, steps\n\n}\n\n// DelayWithReset returns a DelayFunc that will return the appropriate next interval to\n// wait. Every resetInterval the backoff parameters are reset to their initial state.\n// This method is safe to invoke from multiple goroutines, but all calls will advance\n// the backoff state when Factor is set. If Factor is zero, this method is the same as\n// invoking b.DelayFunc() since Steps has no impact without Factor. If resetInterval is\n// zero no backoff will be performed as the same calling DelayFunc with a zero factor\n// and steps.\nfunc (b Backoff) DelayWithReset(c clock.Clock, resetInterval time.Duration) DelayFunc {\n\tif b.Factor <= 0 {\n\t\treturn b.DelayFunc()\n\t}\n\tif resetInterval <= 0 {\n\t\tb.Steps = 0\n\t\tb.Factor = 0\n\t\treturn b.DelayFunc()\n\t}\n\treturn (&backoffManager{\n\t\tbackoff:        b,\n\t\tinitialBackoff: b,\n\t\tresetInterval:  resetInterval,\n\n\t\tclock:     c,\n\t\tlastStart: c.Now(),\n\t\ttimer:     nil,\n\t}).Step\n}\n\n// Until loops until stop channel is closed, running f every period.\n//\n// Until is syntactic sugar on top of JitterUntil with zero jitter factor and\n// with sliding = true (which means the timer for period starts after the f\n// completes).\nfunc Until(f func(), period time.Duration, stopCh <-chan struct{}) {\n\tJitterUntil(f, period, 0.0, true, stopCh)\n}\n\n// UntilWithContext loops until context is done, running f every period.\n//\n// UntilWithContext is syntactic sugar on top of JitterUntilWithContext\n// with zero jitter factor and with sliding = true (which means the timer\n// for period starts after the f completes).\nfunc UntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {\n\tJitterUntilWithContext(ctx, f, period, 0.0, true)\n}\n\n// NonSlidingUntil loops until stop channel is closed, running f every\n// period.\n//\n// NonSlidingUntil is syntactic sugar on top of JitterUntil with zero jitter\n// factor, with sliding = false (meaning the timer for period starts at the same\n// time as the function starts).\nfunc NonSlidingUntil(f func(), period time.Duration, stopCh <-chan struct{}) {\n\tJitterUntil(f, period, 0.0, false, stopCh)\n}\n\n// NonSlidingUntilWithContext loops until context is done, running f every\n// period.\n//\n// NonSlidingUntilWithContext is syntactic sugar on top of JitterUntilWithContext\n// with zero jitter factor, with sliding = false (meaning the timer for period\n// starts at the same time as the function starts).\nfunc NonSlidingUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {\n\tJitterUntilWithContext(ctx, f, period, 0.0, false)\n}\n\n// JitterUntil loops until stop channel is closed, running f every period.\n//\n// If jitterFactor is positive, the period is jittered before every run of f.\n// If jitterFactor is not positive, the period is unchanged and not jittered.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\n//\n// Close stopCh to stop. f may not be invoked if stop channel is already\n// closed. Pass NeverStop to if you don't want it stop.\nfunc JitterUntil(f func(), period time.Duration, jitterFactor float64, sliding bool, stopCh <-chan struct{}) {\n\tBackoffUntil(f, NewJitteredBackoffManager(period, jitterFactor, &clock.RealClock{}), sliding, stopCh)\n}\n\n// BackoffUntil loops until stop channel is closed, run f every duration given by BackoffManager.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\nfunc BackoffUntil(f func(), backoff BackoffManager, sliding bool, stopCh <-chan struct{}) {\n\tvar t clock.Timer\n\tfor {\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\n\t\tif !sliding {\n\t\t\tt = backoff.Backoff()\n\t\t}\n\n\t\tfunc() {\n\t\t\tdefer runtime.HandleCrash()\n\t\t\tf()\n\t\t}()\n\n\t\tif sliding {\n\t\t\tt = backoff.Backoff()\n\t\t}\n\n\t\t// NOTE: b/c there is no priority selection in golang\n\t\t// it is possible for this to race, meaning we could\n\t\t// trigger t.C and stopCh, and t.C select falls through.\n\t\t// In order to mitigate we re-check stopCh at the beginning\n\t\t// of every loop to prevent extra executions of f().\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\tif !t.Stop() {\n\t\t\t\t<-t.C()\n\t\t\t}\n\t\t\treturn\n\t\tcase <-t.C():\n\t\t}\n\t}\n}\n\n// JitterUntilWithContext loops until context is done, running f every period.\n//\n// If jitterFactor is positive, the period is jittered before every run of f.\n// If jitterFactor is not positive, the period is unchanged and not jittered.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\n//\n// Cancel context to stop. f may not be invoked if context is already expired.\nfunc JitterUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration, jitterFactor float64, sliding bool) {\n\tJitterUntil(func() { f(ctx) }, period, jitterFactor, sliding, ctx.Done())\n}\n\n// backoffManager provides simple backoff behavior in a threadsafe manner to a caller.\ntype backoffManager struct {\n\tbackoff        Backoff\n\tinitialBackoff Backoff\n\tresetInterval  time.Duration\n\n\tclock clock.Clock\n\n\tlock      sync.Mutex\n\tlastStart time.Time\n\ttimer     clock.Timer\n}\n\n// Step returns the expected next duration to wait.\nfunc (b *backoffManager) Step() time.Duration {\n\tb.lock.Lock()\n\tdefer b.lock.Unlock()\n\n\tswitch {\n\tcase b.resetInterval == 0:\n\t\tb.backoff = b.initialBackoff\n\tcase b.clock.Now().Sub(b.lastStart) > b.resetInterval:\n\t\tb.backoff = b.initialBackoff\n\t\tb.lastStart = b.clock.Now()\n\t}\n\treturn b.backoff.Step()\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer\n// for exponential backoff. The returned timer must be drained before calling Backoff() the second\n// time.\nfunc (b *backoffManager) Backoff() clock.Timer {\n\tb.lock.Lock()\n\tdefer b.lock.Unlock()\n\tif b.timer == nil {\n\t\tb.timer = b.clock.NewTimer(b.Step())\n\t} else {\n\t\tb.timer.Reset(b.Step())\n\t}\n\treturn b.timer\n}\n\n// Timer returns a new Timer instance that shares the clock and the reset behavior with all other\n// timers.\nfunc (b *backoffManager) Timer() Timer {\n\treturn DelayFunc(b.Step).Timer(b.clock)\n}\n\n// BackoffManager manages backoff with a particular scheme based on its underlying implementation.\ntype BackoffManager interface {\n\t// Backoff returns a shared clock.Timer that is Reset on every invocation. This method is not\n\t// safe for use from multiple threads. It returns a timer for backoff, and caller shall backoff\n\t// until Timer.C() drains. If the second Backoff() is called before the timer from the first\n\t// Backoff() call finishes, the first timer will NOT be drained and result in undetermined\n\t// behavior.\n\tBackoff() clock.Timer\n}\n\n// Deprecated: Will be removed when the legacy polling functions are removed.\ntype exponentialBackoffManagerImpl struct {\n\tbackoff              *Backoff\n\tbackoffTimer         clock.Timer\n\tlastBackoffStart     time.Time\n\tinitialBackoff       time.Duration\n\tbackoffResetDuration time.Duration\n\tclock                clock.Clock\n}\n\n// NewExponentialBackoffManager returns a manager for managing exponential backoff. Each backoff is jittered and\n// backoff will not exceed the given max. If the backoff is not called within resetDuration, the backoff is reset.\n// This backoff manager is used to reduce load during upstream unhealthiness.\n//\n// Deprecated: Will be removed when the legacy Poll methods are removed. Callers should construct a\n// Backoff struct, use DelayWithReset() to get a DelayFunc that periodically resets itself, and then\n// invoke Timer() when calling wait.BackoffUntil.\n//\n// Instead of:\n//\n//\tbm := wait.NewExponentialBackoffManager(init, max, reset, factor, jitter, clock)\n//\t...\n//\twait.BackoffUntil(..., bm.Backoff, ...)\n//\n// Use:\n//\n//\tdelayFn := wait.Backoff{\n//\t  Duration: init,\n//\t  Cap:      max,\n//\t  Steps:    int(math.Ceil(float64(max) / float64(init))), // now a required argument\n//\t  Factor:   factor,\n//\t  Jitter:   jitter,\n//\t}.DelayWithReset(reset, clock)\n//\twait.BackoffUntil(..., delayFn.Timer(), ...)\nfunc NewExponentialBackoffManager(initBackoff, maxBackoff, resetDuration time.Duration, backoffFactor, jitter float64, c clock.Clock) BackoffManager {\n\treturn &exponentialBackoffManagerImpl{\n\t\tbackoff: &Backoff{\n\t\t\tDuration: initBackoff,\n\t\t\tFactor:   backoffFactor,\n\t\t\tJitter:   jitter,\n\n\t\t\t// the current impl of wait.Backoff returns Backoff.Duration once steps are used up, which is not\n\t\t\t// what we ideally need here, we set it to max int and assume we will never use up the steps\n\t\t\tSteps: math.MaxInt32,\n\t\t\tCap:   maxBackoff,\n\t\t},\n\t\tbackoffTimer:         nil,\n\t\tinitialBackoff:       initBackoff,\n\t\tlastBackoffStart:     c.Now(),\n\t\tbackoffResetDuration: resetDuration,\n\t\tclock:                c,\n\t}\n}\n\nfunc (b *exponentialBackoffManagerImpl) getNextBackoff() time.Duration {\n\tif b.clock.Now().Sub(b.lastBackoffStart) > b.backoffResetDuration {\n\t\tb.backoff.Steps = math.MaxInt32\n\t\tb.backoff.Duration = b.initialBackoff\n\t}\n\tb.lastBackoffStart = b.clock.Now()\n\treturn b.backoff.Step()\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer for exponential backoff.\n// The returned timer must be drained before calling Backoff() the second time\nfunc (b *exponentialBackoffManagerImpl) Backoff() clock.Timer {\n\tif b.backoffTimer == nil {\n\t\tb.backoffTimer = b.clock.NewTimer(b.getNextBackoff())\n\t} else {\n\t\tb.backoffTimer.Reset(b.getNextBackoff())\n\t}\n\treturn b.backoffTimer\n}\n\n// Deprecated: Will be removed when the legacy polling functions are removed.\ntype jitteredBackoffManagerImpl struct {\n\tclock        clock.Clock\n\tduration     time.Duration\n\tjitter       float64\n\tbackoffTimer clock.Timer\n}\n\n// NewJitteredBackoffManager returns a BackoffManager that backoffs with given duration plus given jitter. If the jitter\n// is negative, backoff will not be jittered.\n//\n// Deprecated: Will be removed when the legacy Poll methods are removed. Callers should construct a\n// Backoff struct and invoke Timer() when calling wait.BackoffUntil.\n//\n// Instead of:\n//\n//\tbm := wait.NewJitteredBackoffManager(duration, jitter, clock)\n//\t...\n//\twait.BackoffUntil(..., bm.Backoff, ...)\n//\n// Use:\n//\n//\twait.BackoffUntil(..., wait.Backoff{Duration: duration, Jitter: jitter}.Timer(), ...)\nfunc NewJitteredBackoffManager(duration time.Duration, jitter float64, c clock.Clock) BackoffManager {\n\treturn &jitteredBackoffManagerImpl{\n\t\tclock:        c,\n\t\tduration:     duration,\n\t\tjitter:       jitter,\n\t\tbackoffTimer: nil,\n\t}\n}\n\nfunc (j *jitteredBackoffManagerImpl) getNextBackoff() time.Duration {\n\tjitteredPeriod := j.duration\n\tif j.jitter > 0.0 {\n\t\tjitteredPeriod = Jitter(j.duration, j.jitter)\n\t}\n\treturn jitteredPeriod\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer for jittered backoff.\n// The returned timer must be drained before calling Backoff() the second time\nfunc (j *jitteredBackoffManagerImpl) Backoff() clock.Timer {\n\tbackoff := j.getNextBackoff()\n\tif j.backoffTimer == nil {\n\t\tj.backoffTimer = j.clock.NewTimer(backoff)\n\t} else {\n\t\tj.backoffTimer.Reset(backoff)\n\t}\n\treturn j.backoffTimer\n}\n\n// ExponentialBackoff repeats a condition check with exponential backoff.\n//\n// It repeatedly checks the condition and then sleeps, using `backoff.Step()`\n// to determine the length of the sleep and adjust Duration and Steps.\n// Stops and returns as soon as:\n// 1. the condition check returns true or an error,\n// 2. `backoff.Steps` checks of the condition have been done, or\n// 3. a sleep truncated by the cap on duration has been completed.\n// In case (1) the returned error is what the condition function returned.\n// In all other cases, ErrWaitTimeout is returned.\n//\n// Since backoffs are often subject to cancellation, we recommend using\n// ExponentialBackoffWithContext and passing a context to the method.\nfunc ExponentialBackoff(backoff Backoff, condition ConditionFunc) error {\n\tfor backoff.Steps > 0 {\n\t\tif ok, err := runConditionWithCrashProtection(condition); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t\tif backoff.Steps == 1 {\n\t\t\tbreak\n\t\t}\n\t\ttime.Sleep(backoff.Step())\n\t}\n\treturn ErrWaitTimeout\n}\n\n// ExponentialBackoffWithContext repeats a condition check with exponential backoff.\n// It immediately returns an error if the condition returns an error, the context is cancelled\n// or hits the deadline, or if the maximum attempts defined in backoff is exceeded (ErrWaitTimeout).\n// If an error is returned by the condition the backoff stops immediately. The condition will\n// never be invoked more than backoff.Steps times.\nfunc ExponentialBackoffWithContext(ctx context.Context, backoff Backoff, condition ConditionWithContextFunc) error {\n\tfor backoff.Steps > 0 {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tdefault:\n\t\t}\n\n\t\tif ok, err := runConditionWithCrashProtectionWithContext(ctx, condition); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\n\t\tif backoff.Steps == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\twaitBeforeRetry := backoff.Step()\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-time.After(waitBeforeRetry):\n\t\t}\n\t}\n\n\treturn ErrWaitTimeout\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/delay.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// DelayFunc returns the next time interval to wait.\ntype DelayFunc func() time.Duration\n\n// Timer takes an arbitrary delay function and returns a timer that can handle arbitrary interval changes.\n// Use Backoff{...}.Timer() for simple delays and more efficient timers.\nfunc (fn DelayFunc) Timer(c clock.Clock) Timer {\n\treturn &variableTimer{fn: fn, new: c.NewTimer}\n}\n\n// Until takes an arbitrary delay function and runs until cancelled or the condition indicates exit. This\n// offers all of the functionality of the methods in this package.\nfunc (fn DelayFunc) Until(ctx context.Context, immediate, sliding bool, condition ConditionWithContextFunc) error {\n\treturn loopConditionUntilContext(ctx, &variableTimer{fn: fn, new: internalClock.NewTimer}, immediate, sliding, condition)\n}\n\n// Concurrent returns a version of this DelayFunc that is safe for use by multiple goroutines that\n// wish to share a single delay timer.\nfunc (fn DelayFunc) Concurrent() DelayFunc {\n\tvar lock sync.Mutex\n\treturn func() time.Duration {\n\t\tlock.Lock()\n\t\tdefer lock.Unlock()\n\t\treturn fn()\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package wait provides tools for polling or listening for changes\n// to a condition.\npackage wait // import \"k8s.io/apimachinery/pkg/util/wait\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/error.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"errors\"\n)\n\n// ErrWaitTimeout is returned when the condition was not satisfied in time.\n//\n// Deprecated: This type will be made private in favor of Interrupted()\n// for checking errors or ErrorInterrupted(err) for returning a wrapped error.\nvar ErrWaitTimeout = ErrorInterrupted(errors.New(\"timed out waiting for the condition\"))\n\n// Interrupted returns true if the error indicates a Poll, ExponentialBackoff, or\n// Until loop exited for any reason besides the condition returning true or an\n// error. A loop is considered interrupted if the calling context is cancelled,\n// the context reaches its deadline, or a backoff reaches its maximum allowed\n// steps.\n//\n// Callers should use this method instead of comparing the error value directly to\n// ErrWaitTimeout, as methods that cancel a context may not return that error.\n//\n// Instead of:\n//\n//\terr := wait.Poll(...)\n//\tif err == wait.ErrWaitTimeout {\n//\t    log.Infof(\"Wait for operation exceeded\")\n//\t} else ...\n//\n// Use:\n//\n//\terr := wait.Poll(...)\n//\tif wait.Interrupted(err) {\n//\t    log.Infof(\"Wait for operation exceeded\")\n//\t} else ...\nfunc Interrupted(err error) bool {\n\tswitch {\n\tcase errors.Is(err, errWaitTimeout),\n\t\terrors.Is(err, context.Canceled),\n\t\terrors.Is(err, context.DeadlineExceeded):\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// errInterrupted\ntype errInterrupted struct {\n\tcause error\n}\n\n// ErrorInterrupted returns an error that indicates the wait was ended\n// early for a given reason. If no cause is provided a generic error\n// will be used but callers are encouraged to provide a real cause for\n// clarity in debugging.\nfunc ErrorInterrupted(cause error) error {\n\tswitch cause.(type) {\n\tcase errInterrupted:\n\t\t// no need to wrap twice since errInterrupted is only needed\n\t\t// once in a chain\n\t\treturn cause\n\tdefault:\n\t\treturn errInterrupted{cause}\n\t}\n}\n\n// errWaitTimeout is the private version of the previous ErrWaitTimeout\n// and is private to prevent direct comparison. Use ErrorInterrupted(err)\n// to get an error that will return true for Interrupted(err).\nvar errWaitTimeout = errInterrupted{}\n\nfunc (e errInterrupted) Unwrap() error        { return e.cause }\nfunc (e errInterrupted) Is(target error) bool { return target == errWaitTimeout }\nfunc (e errInterrupted) Error() string {\n\tif e.cause == nil {\n\t\t// returns the same error message as historical behavior\n\t\treturn \"timed out waiting for the condition\"\n\t}\n\treturn e.cause.Error()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/loop.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// loopConditionUntilContext executes the provided condition at intervals defined by\n// the provided timer until the provided context is cancelled, the condition returns\n// true, or the condition returns an error. If sliding is true, the period is computed\n// after condition runs. If it is false then period includes the runtime for condition.\n// If immediate is false the first delay happens before any call to condition. The\n// returned error is the error returned by the last condition or the context error if\n// the context was terminated.\n//\n// This is the common loop construct for all polling in the wait package.\nfunc loopConditionUntilContext(ctx context.Context, t Timer, immediate, sliding bool, condition ConditionWithContextFunc) error {\n\tdefer t.Stop()\n\n\tvar timeCh <-chan time.Time\n\tdoneCh := ctx.Done()\n\n\t// if we haven't requested immediate execution, delay once\n\tif !immediate {\n\t\ttimeCh = t.C()\n\t\tselect {\n\t\tcase <-doneCh:\n\t\t\treturn ctx.Err()\n\t\tcase <-timeCh:\n\t\t}\n\t}\n\n\tfor {\n\t\t// checking ctx.Err() is slightly faster than checking a select\n\t\tif err := ctx.Err(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !sliding {\n\t\t\tt.Next()\n\t\t}\n\t\tif ok, err := func() (bool, error) {\n\t\t\tdefer runtime.HandleCrash()\n\t\t\treturn condition(ctx)\n\t\t}(); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t\tif sliding {\n\t\t\tt.Next()\n\t\t}\n\n\t\tif timeCh == nil {\n\t\t\ttimeCh = t.C()\n\t\t}\n\n\t\t// NOTE: b/c there is no priority selection in golang\n\t\t// it is possible for this to race, meaning we could\n\t\t// trigger t.C and doneCh, and t.C select falls through.\n\t\t// In order to mitigate we re-check doneCh at the beginning\n\t\t// of every loop to guarantee at-most one extra execution\n\t\t// of condition.\n\t\tselect {\n\t\tcase <-doneCh:\n\t\t\treturn ctx.Err()\n\t\tcase <-timeCh:\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/poll.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"time\"\n)\n\n// PollUntilContextCancel tries a condition func until it returns true, an error, or the context\n// is cancelled or hits a deadline. condition will be invoked after the first interval if the\n// context is not cancelled first. The returned error will be from ctx.Err(), the condition's\n// err return value, or nil. If invoking condition takes longer than interval the next condition\n// will be invoked immediately. When using very short intervals, condition may be invoked multiple\n// times before a context cancellation is detected. If immediate is true, condition will be\n// invoked before waiting and guarantees that condition is invoked at least once, regardless of\n// whether the context has been cancelled.\nfunc PollUntilContextCancel(ctx context.Context, interval time.Duration, immediate bool, condition ConditionWithContextFunc) error {\n\treturn loopConditionUntilContext(ctx, Backoff{Duration: interval}.Timer(), immediate, false, condition)\n}\n\n// PollUntilContextTimeout will terminate polling after timeout duration by setting a context\n// timeout. This is provided as a convenience function for callers not currently executing under\n// a deadline and is equivalent to:\n//\n//\tdeadlineCtx, deadlineCancel := context.WithTimeout(ctx, timeout)\n//\terr := PollUntilContextCancel(ctx, interval, immediate, condition)\n//\n// The deadline context will be cancelled if the Poll succeeds before the timeout, simplifying\n// inline usage. All other behavior is identical to PollWithContextTimeout.\nfunc PollUntilContextTimeout(ctx context.Context, interval, timeout time.Duration, immediate bool, condition ConditionWithContextFunc) error {\n\tdeadlineCtx, deadlineCancel := context.WithTimeout(ctx, timeout)\n\tdefer deadlineCancel()\n\treturn loopConditionUntilContext(deadlineCtx, Backoff{Duration: interval}.Timer(), immediate, false, condition)\n}\n\n// Poll tries a condition func until it returns true, an error, or the timeout\n// is reached.\n//\n// Poll always waits the interval before the run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to Poll something forever, see PollInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc Poll(interval, timeout time.Duration, condition ConditionFunc) error {\n\treturn PollWithContext(context.Background(), interval, timeout, condition.WithContext())\n}\n\n// PollWithContext tries a condition func until it returns true, an error,\n// or when the context expires or the timeout is reached, whichever\n// happens first.\n//\n// PollWithContext always waits the interval before the run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to Poll something forever, see PollInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollWithContext(ctx context.Context, interval, timeout time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, timeout), condition)\n}\n\n// PollUntil tries a condition func until it returns true, an error or stopCh is\n// closed.\n//\n// PollUntil always waits interval before the first run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollUntil(interval time.Duration, condition ConditionFunc, stopCh <-chan struct{}) error {\n\treturn PollUntilWithContext(ContextForChannel(stopCh), interval, condition.WithContext())\n}\n\n// PollUntilWithContext tries a condition func until it returns true,\n// an error or the specified context is cancelled or expired.\n//\n// PollUntilWithContext always waits interval before the first run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollUntilWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, 0), condition)\n}\n\n// PollInfinite tries a condition func until it returns true or an error\n//\n// PollInfinite always waits the interval before the run of 'condition'.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollInfinite(interval time.Duration, condition ConditionFunc) error {\n\treturn PollInfiniteWithContext(context.Background(), interval, condition.WithContext())\n}\n\n// PollInfiniteWithContext tries a condition func until it returns true or an error\n//\n// PollInfiniteWithContext always waits the interval before the run of 'condition'.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollInfiniteWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, 0), condition)\n}\n\n// PollImmediate tries a condition func until it returns true, an error, or the timeout\n// is reached.\n//\n// PollImmediate always checks 'condition' before waiting for the interval. 'condition'\n// will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to immediately Poll something forever, see PollImmediateInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediate(interval, timeout time.Duration, condition ConditionFunc) error {\n\treturn PollImmediateWithContext(context.Background(), interval, timeout, condition.WithContext())\n}\n\n// PollImmediateWithContext tries a condition func until it returns true, an error,\n// or the timeout is reached or the specified context expires, whichever happens first.\n//\n// PollImmediateWithContext always checks 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to immediately Poll something forever, see PollImmediateInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateWithContext(ctx context.Context, interval, timeout time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, timeout), condition)\n}\n\n// PollImmediateUntil tries a condition func until it returns true, an error or stopCh is closed.\n//\n// PollImmediateUntil runs the 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateUntil(interval time.Duration, condition ConditionFunc, stopCh <-chan struct{}) error {\n\treturn PollImmediateUntilWithContext(ContextForChannel(stopCh), interval, condition.WithContext())\n}\n\n// PollImmediateUntilWithContext tries a condition func until it returns true,\n// an error or the specified context is cancelled or expired.\n//\n// PollImmediateUntilWithContext runs the 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateUntilWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, 0), condition)\n}\n\n// PollImmediateInfinite tries a condition func until it returns true or an error\n//\n// PollImmediateInfinite runs the 'condition' before waiting for the interval.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateInfinite(interval time.Duration, condition ConditionFunc) error {\n\treturn PollImmediateInfiniteWithContext(context.Background(), interval, condition.WithContext())\n}\n\n// PollImmediateInfiniteWithContext tries a condition func until it returns true\n// or an error or the specified context gets cancelled or expired.\n//\n// PollImmediateInfiniteWithContext runs the 'condition' before waiting for the interval.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollWithContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateInfiniteWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, 0), condition)\n}\n\n// Internally used, each of the public 'Poll*' function defined in this\n// package should invoke this internal function with appropriate parameters.\n// ctx: the context specified by the caller, for infinite polling pass\n// a context that never gets cancelled or expired.\n// immediate: if true, the 'condition' will be invoked before waiting for the interval,\n// in this case 'condition' will always be invoked at least once.\n// wait: user specified WaitFunc function that controls at what interval the condition\n// function should be invoked periodically and whether it is bound by a timeout.\n// condition: user specified ConditionWithContextFunc function.\n//\n// Deprecated: will be removed in favor of loopConditionUntilContext.\nfunc poll(ctx context.Context, immediate bool, wait waitWithContextFunc, condition ConditionWithContextFunc) error {\n\tif immediate {\n\t\tdone, err := runConditionWithCrashProtectionWithContext(ctx, condition)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif done {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tselect {\n\tcase <-ctx.Done():\n\t\t// returning ctx.Err() will break backward compatibility, use new PollUntilContext*\n\t\t// methods instead\n\t\treturn ErrWaitTimeout\n\tdefault:\n\t\treturn waitForWithContext(ctx, wait, condition)\n\t}\n}\n\n// poller returns a WaitFunc that will send to the channel every interval until\n// timeout has elapsed and then closes the channel.\n//\n// Over very short intervals you may receive no ticks before the channel is\n// closed. A timeout of 0 is interpreted as an infinity, and in such a case\n// it would be the caller's responsibility to close the done channel.\n// Failure to do so would result in a leaked goroutine.\n//\n// Output ticks are not buffered. If the channel is not ready to receive an\n// item, the tick is skipped.\n//\n// Deprecated: Will be removed in a future release.\nfunc poller(interval, timeout time.Duration) waitWithContextFunc {\n\treturn waitWithContextFunc(func(ctx context.Context) <-chan struct{} {\n\t\tch := make(chan struct{})\n\n\t\tgo func() {\n\t\t\tdefer close(ch)\n\n\t\t\ttick := time.NewTicker(interval)\n\t\t\tdefer tick.Stop()\n\n\t\t\tvar after <-chan time.Time\n\t\t\tif timeout != 0 {\n\t\t\t\t// time.After is more convenient, but it\n\t\t\t\t// potentially leaves timers around much longer\n\t\t\t\t// than necessary if we exit early.\n\t\t\t\ttimer := time.NewTimer(timeout)\n\t\t\t\tafter = timer.C\n\t\t\t\tdefer timer.Stop()\n\t\t\t}\n\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase <-tick.C:\n\t\t\t\t\t// If the consumer isn't ready for this signal drop it and\n\t\t\t\t\t// check the other channels.\n\t\t\t\t\tselect {\n\t\t\t\t\tcase ch <- struct{}{}:\n\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\t\t\t\tcase <-after:\n\t\t\t\t\treturn\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\n\t\treturn ch\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/timer.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// Timer abstracts how wait functions interact with time runtime efficiently. Test\n// code may implement this interface directly but package consumers are encouraged\n// to use the Backoff type as the primary mechanism for acquiring a Timer. The\n// interface is a simplification of clock.Timer to prevent misuse. Timers are not\n// expected to be safe for calls from multiple goroutines.\ntype Timer interface {\n\t// C returns a channel that will receive a struct{} each time the timer fires.\n\t// The channel should not be waited on after Stop() is invoked. It is allowed\n\t// to cache the returned value of C() for the lifetime of the Timer.\n\tC() <-chan time.Time\n\t// Next is invoked by wait functions to signal timers that the next interval\n\t// should begin. You may only use Next() if you have drained the channel C().\n\t// You should not call Next() after Stop() is invoked.\n\tNext()\n\t// Stop releases the timer. It is safe to invoke if no other methods have been\n\t// called.\n\tStop()\n}\n\ntype noopTimer struct {\n\tclosedCh <-chan time.Time\n}\n\n// newNoopTimer creates a timer with a unique channel to avoid contention\n// for the channel's lock across multiple unrelated timers.\nfunc newNoopTimer() noopTimer {\n\tch := make(chan time.Time)\n\tclose(ch)\n\treturn noopTimer{closedCh: ch}\n}\n\nfunc (t noopTimer) C() <-chan time.Time {\n\treturn t.closedCh\n}\nfunc (noopTimer) Next() {}\nfunc (noopTimer) Stop() {}\n\ntype variableTimer struct {\n\tfn  DelayFunc\n\tt   clock.Timer\n\tnew func(time.Duration) clock.Timer\n}\n\nfunc (t *variableTimer) C() <-chan time.Time {\n\tif t.t == nil {\n\t\td := t.fn()\n\t\tt.t = t.new(d)\n\t}\n\treturn t.t.C()\n}\nfunc (t *variableTimer) Next() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\td := t.fn()\n\tt.t.Reset(d)\n}\nfunc (t *variableTimer) Stop() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\tt.t.Stop()\n\tt.t = nil\n}\n\ntype fixedTimer struct {\n\tinterval time.Duration\n\tt        clock.Ticker\n\tnew      func(time.Duration) clock.Ticker\n}\n\nfunc (t *fixedTimer) C() <-chan time.Time {\n\tif t.t == nil {\n\t\tt.t = t.new(t.interval)\n\t}\n\treturn t.t.C()\n}\nfunc (t *fixedTimer) Next() {\n\t// no-op for fixed timers\n}\nfunc (t *fixedTimer) Stop() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\tt.t.Stop()\n\tt.t = nil\n}\n\nvar (\n\t// RealTimer can be passed to methods that need a clock.Timer.\n\tRealTimer = clock.RealClock{}.NewTimer\n)\n\nvar (\n\t// internalClock is used for test injection of clocks\n\tinternalClock = clock.RealClock{}\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/wait.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// For any test of the style:\n//\n//\t...\n//\t<- time.After(timeout):\n//\t   t.Errorf(\"Timed out\")\n//\n// The value for timeout should effectively be \"forever.\" Obviously we don't want our tests to truly lock up forever, but 30s\n// is long enough that it is effectively forever for the things that can slow down a run on a heavily contended machine\n// (GC, seeks, etc), but not so long as to make a developer ctrl-c a test run if they do happen to break that test.\nvar ForeverTestTimeout = time.Second * 30\n\n// NeverStop may be passed to Until to make it never stop.\nvar NeverStop <-chan struct{} = make(chan struct{})\n\n// Group allows to start a group of goroutines and wait for their completion.\ntype Group struct {\n\twg sync.WaitGroup\n}\n\nfunc (g *Group) Wait() {\n\tg.wg.Wait()\n}\n\n// StartWithChannel starts f in a new goroutine in the group.\n// stopCh is passed to f as an argument. f should stop when stopCh is available.\nfunc (g *Group) StartWithChannel(stopCh <-chan struct{}, f func(stopCh <-chan struct{})) {\n\tg.Start(func() {\n\t\tf(stopCh)\n\t})\n}\n\n// StartWithContext starts f in a new goroutine in the group.\n// ctx is passed to f as an argument. f should stop when ctx.Done() is available.\nfunc (g *Group) StartWithContext(ctx context.Context, f func(context.Context)) {\n\tg.Start(func() {\n\t\tf(ctx)\n\t})\n}\n\n// Start starts f in a new goroutine in the group.\nfunc (g *Group) Start(f func()) {\n\tg.wg.Add(1)\n\tgo func() {\n\t\tdefer g.wg.Done()\n\t\tf()\n\t}()\n}\n\n// Forever calls f every period for ever.\n//\n// Forever is syntactic sugar on top of Until.\nfunc Forever(f func(), period time.Duration) {\n\tUntil(f, period, NeverStop)\n}\n\n// Jitter returns a time.Duration between duration and duration + maxFactor *\n// duration.\n//\n// This allows clients to avoid converging on periodic behavior. If maxFactor\n// is 0.0, a suggested default value will be chosen.\nfunc Jitter(duration time.Duration, maxFactor float64) time.Duration {\n\tif maxFactor <= 0.0 {\n\t\tmaxFactor = 1.0\n\t}\n\twait := duration + time.Duration(rand.Float64()*maxFactor*float64(duration))\n\treturn wait\n}\n\n// ConditionFunc returns true if the condition is satisfied, or an error\n// if the loop should be aborted.\ntype ConditionFunc func() (done bool, err error)\n\n// ConditionWithContextFunc returns true if the condition is satisfied, or an error\n// if the loop should be aborted.\n//\n// The caller passes along a context that can be used by the condition function.\ntype ConditionWithContextFunc func(context.Context) (done bool, err error)\n\n// WithContext converts a ConditionFunc into a ConditionWithContextFunc\nfunc (cf ConditionFunc) WithContext() ConditionWithContextFunc {\n\treturn func(context.Context) (done bool, err error) {\n\t\treturn cf()\n\t}\n}\n\n// ContextForChannel provides a context that will be treated as cancelled\n// when the provided parentCh is closed. The implementation returns\n// context.Canceled for Err() if and only if the parentCh is closed.\nfunc ContextForChannel(parentCh <-chan struct{}) context.Context {\n\treturn channelContext{stopCh: parentCh}\n}\n\nvar _ context.Context = channelContext{}\n\n// channelContext will behave as if the context were cancelled when stopCh is\n// closed.\ntype channelContext struct {\n\tstopCh <-chan struct{}\n}\n\nfunc (c channelContext) Done() <-chan struct{} { return c.stopCh }\nfunc (c channelContext) Err() error {\n\tselect {\n\tcase <-c.stopCh:\n\t\treturn context.Canceled\n\tdefault:\n\t\treturn nil\n\t}\n}\nfunc (c channelContext) Deadline() (time.Time, bool) { return time.Time{}, false }\nfunc (c channelContext) Value(key any) any           { return nil }\n\n// runConditionWithCrashProtection runs a ConditionFunc with crash protection.\n//\n// Deprecated: Will be removed when the legacy polling methods are removed.\nfunc runConditionWithCrashProtection(condition ConditionFunc) (bool, error) {\n\tdefer runtime.HandleCrash()\n\treturn condition()\n}\n\n// runConditionWithCrashProtectionWithContext runs a ConditionWithContextFunc\n// with crash protection.\n//\n// Deprecated: Will be removed when the legacy polling methods are removed.\nfunc runConditionWithCrashProtectionWithContext(ctx context.Context, condition ConditionWithContextFunc) (bool, error) {\n\tdefer runtime.HandleCrash()\n\treturn condition(ctx)\n}\n\n// waitFunc creates a channel that receives an item every time a test\n// should be executed and is closed when the last test should be invoked.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\ntype waitFunc func(done <-chan struct{}) <-chan struct{}\n\n// WithContext converts the WaitFunc to an equivalent WaitWithContextFunc\nfunc (w waitFunc) WithContext() waitWithContextFunc {\n\treturn func(ctx context.Context) <-chan struct{} {\n\t\treturn w(ctx.Done())\n\t}\n}\n\n// waitWithContextFunc creates a channel that receives an item every time a test\n// should be executed and is closed when the last test should be invoked.\n//\n// When the specified context gets cancelled or expires the function\n// stops sending item and returns immediately.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\ntype waitWithContextFunc func(ctx context.Context) <-chan struct{}\n\n// waitForWithContext continually checks 'fn' as driven by 'wait'.\n//\n// waitForWithContext gets a channel from 'wait()”, and then invokes 'fn'\n// once for every value placed on the channel and once more when the\n// channel is closed. If the channel is closed and 'fn'\n// returns false without error, waitForWithContext returns ErrWaitTimeout.\n//\n// If 'fn' returns an error the loop ends and that error is returned. If\n// 'fn' returns true the loop ends and nil is returned.\n//\n// context.Canceled will be returned if the ctx.Done() channel is closed\n// without fn ever returning true.\n//\n// When the ctx.Done() channel is closed, because the golang `select` statement is\n// \"uniform pseudo-random\", the `fn` might still run one or multiple times,\n// though eventually `waitForWithContext` will return.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\nfunc waitForWithContext(ctx context.Context, wait waitWithContextFunc, fn ConditionWithContextFunc) error {\n\twaitCtx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\tc := wait(waitCtx)\n\tfor {\n\t\tselect {\n\t\tcase _, open := <-c:\n\t\t\tok, err := runConditionWithCrashProtectionWithContext(ctx, fn)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif !open {\n\t\t\t\treturn ErrWaitTimeout\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\t// returning ctx.Err() will break backward compatibility, use new PollUntilContext*\n\t\t\t// methods instead\n\t\t\treturn ErrWaitTimeout\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage yaml\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"unicode\"\n\n\tjsonutil \"k8s.io/apimachinery/pkg/util/json\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\n// Unmarshal unmarshals the given data\n// If v is a *map[string]interface{}, *[]interface{}, or *interface{} numbers\n// are converted to int64 or float64\nfunc Unmarshal(data []byte, v interface{}) error {\n\tpreserveIntFloat := func(d *json.Decoder) *json.Decoder {\n\t\td.UseNumber()\n\t\treturn d\n\t}\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertMapNumbers(*v, 0)\n\tcase *[]interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertSliceNumbers(*v, 0)\n\tcase *interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertInterfaceNumbers(v, 0)\n\tdefault:\n\t\treturn yaml.Unmarshal(data, v)\n\t}\n}\n\n// UnmarshalStrict unmarshals the given data\n// strictly (erroring when there are duplicate fields).\nfunc UnmarshalStrict(data []byte, v interface{}) error {\n\tpreserveIntFloat := func(d *json.Decoder) *json.Decoder {\n\t\td.UseNumber()\n\t\treturn d\n\t}\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertMapNumbers(*v, 0)\n\tcase *[]interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertSliceNumbers(*v, 0)\n\tcase *interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertInterfaceNumbers(v, 0)\n\tdefault:\n\t\treturn yaml.UnmarshalStrict(data, v)\n\t}\n}\n\n// ToJSON converts a single YAML document into a JSON document\n// or returns an error. If the document appears to be JSON the\n// YAML decoding path is not used (so that error messages are\n// JSON specific).\nfunc ToJSON(data []byte) ([]byte, error) {\n\tif hasJSONPrefix(data) {\n\t\treturn data, nil\n\t}\n\treturn yaml.YAMLToJSON(data)\n}\n\n// YAMLToJSONDecoder decodes YAML documents from an io.Reader by\n// separating individual documents. It first converts the YAML\n// body to JSON, then unmarshals the JSON.\ntype YAMLToJSONDecoder struct {\n\treader Reader\n}\n\n// NewYAMLToJSONDecoder decodes YAML documents from the provided\n// stream in chunks by converting each document (as defined by\n// the YAML spec) into its own chunk, converting it to JSON via\n// yaml.YAMLToJSON, and then passing it to json.Decoder.\nfunc NewYAMLToJSONDecoder(r io.Reader) *YAMLToJSONDecoder {\n\treader := bufio.NewReader(r)\n\treturn &YAMLToJSONDecoder{\n\t\treader: NewYAMLReader(reader),\n\t}\n}\n\n// Decode reads a YAML document as JSON from the stream or returns\n// an error. The decoding rules match json.Unmarshal, not\n// yaml.Unmarshal.\nfunc (d *YAMLToJSONDecoder) Decode(into interface{}) error {\n\tbytes, err := d.reader.Read()\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\tif len(bytes) != 0 {\n\t\terr := yaml.Unmarshal(bytes, into)\n\t\tif err != nil {\n\t\t\treturn YAMLSyntaxError{err}\n\t\t}\n\t}\n\treturn err\n}\n\n// YAMLDecoder reads chunks of objects and returns ErrShortBuffer if\n// the data is not sufficient.\ntype YAMLDecoder struct {\n\tr         io.ReadCloser\n\tscanner   *bufio.Scanner\n\tremaining []byte\n}\n\n// NewDocumentDecoder decodes YAML documents from the provided\n// stream in chunks by converting each document (as defined by\n// the YAML spec) into its own chunk. io.ErrShortBuffer will be\n// returned if the entire buffer could not be read to assist\n// the caller in framing the chunk.\nfunc NewDocumentDecoder(r io.ReadCloser) io.ReadCloser {\n\tscanner := bufio.NewScanner(r)\n\t// the size of initial allocation for buffer 4k\n\tbuf := make([]byte, 4*1024)\n\t// the maximum size used to buffer a token 5M\n\tscanner.Buffer(buf, 5*1024*1024)\n\tscanner.Split(splitYAMLDocument)\n\treturn &YAMLDecoder{\n\t\tr:       r,\n\t\tscanner: scanner,\n\t}\n}\n\n// Read reads the previous slice into the buffer, or attempts to read\n// the next chunk.\n// TODO: switch to readline approach.\nfunc (d *YAMLDecoder) Read(data []byte) (n int, err error) {\n\tleft := len(d.remaining)\n\tif left == 0 {\n\t\t// return the next chunk from the stream\n\t\tif !d.scanner.Scan() {\n\t\t\terr := d.scanner.Err()\n\t\t\tif err == nil {\n\t\t\t\terr = io.EOF\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\tout := d.scanner.Bytes()\n\t\td.remaining = out\n\t\tleft = len(out)\n\t}\n\n\t// fits within data\n\tif left <= len(data) {\n\t\tcopy(data, d.remaining)\n\t\td.remaining = nil\n\t\treturn left, nil\n\t}\n\n\t// caller will need to reread\n\tcopy(data, d.remaining[:len(data)])\n\td.remaining = d.remaining[len(data):]\n\treturn len(data), io.ErrShortBuffer\n}\n\nfunc (d *YAMLDecoder) Close() error {\n\treturn d.r.Close()\n}\n\nconst yamlSeparator = \"\\n---\"\nconst separator = \"---\"\n\n// splitYAMLDocument is a bufio.SplitFunc for splitting YAML streams into individual documents.\nfunc splitYAMLDocument(data []byte, atEOF bool) (advance int, token []byte, err error) {\n\tif atEOF && len(data) == 0 {\n\t\treturn 0, nil, nil\n\t}\n\tsep := len([]byte(yamlSeparator))\n\tif i := bytes.Index(data, []byte(yamlSeparator)); i >= 0 {\n\t\t// We have a potential document terminator\n\t\ti += sep\n\t\tafter := data[i:]\n\t\tif len(after) == 0 {\n\t\t\t// we can't read any more characters\n\t\t\tif atEOF {\n\t\t\t\treturn len(data), data[:len(data)-sep], nil\n\t\t\t}\n\t\t\treturn 0, nil, nil\n\t\t}\n\t\tif j := bytes.IndexByte(after, '\\n'); j >= 0 {\n\t\t\treturn i + j + 1, data[0 : i-sep], nil\n\t\t}\n\t\treturn 0, nil, nil\n\t}\n\t// If we're at EOF, we have a final, non-terminated line. Return it.\n\tif atEOF {\n\t\treturn len(data), data, nil\n\t}\n\t// Request more data.\n\treturn 0, nil, nil\n}\n\n// decoder is a convenience interface for Decode.\ntype decoder interface {\n\tDecode(into interface{}) error\n}\n\n// YAMLOrJSONDecoder attempts to decode a stream of JSON documents or\n// YAML documents by sniffing for a leading { character.\ntype YAMLOrJSONDecoder struct {\n\tr          io.Reader\n\tbufferSize int\n\n\tdecoder decoder\n}\n\ntype JSONSyntaxError struct {\n\tOffset int64\n\tErr    error\n}\n\nfunc (e JSONSyntaxError) Error() string {\n\treturn fmt.Sprintf(\"json: offset %d: %s\", e.Offset, e.Err.Error())\n}\n\ntype YAMLSyntaxError struct {\n\terr error\n}\n\nfunc (e YAMLSyntaxError) Error() string {\n\treturn e.err.Error()\n}\n\n// NewYAMLOrJSONDecoder returns a decoder that will process YAML documents\n// or JSON documents from the given reader as a stream. bufferSize determines\n// how far into the stream the decoder will look to figure out whether this\n// is a JSON stream (has whitespace followed by an open brace).\nfunc NewYAMLOrJSONDecoder(r io.Reader, bufferSize int) *YAMLOrJSONDecoder {\n\treturn &YAMLOrJSONDecoder{\n\t\tr:          r,\n\t\tbufferSize: bufferSize,\n\t}\n}\n\n// Decode unmarshals the next object from the underlying stream into the\n// provide object, or returns an error.\nfunc (d *YAMLOrJSONDecoder) Decode(into interface{}) error {\n\tif d.decoder == nil {\n\t\tbuffer, _, isJSON := GuessJSONStream(d.r, d.bufferSize)\n\t\tif isJSON {\n\t\t\td.decoder = json.NewDecoder(buffer)\n\t\t} else {\n\t\t\td.decoder = NewYAMLToJSONDecoder(buffer)\n\t\t}\n\t}\n\terr := d.decoder.Decode(into)\n\tif syntax, ok := err.(*json.SyntaxError); ok {\n\t\treturn JSONSyntaxError{\n\t\t\tOffset: syntax.Offset,\n\t\t\tErr:    syntax,\n\t\t}\n\t}\n\treturn err\n}\n\ntype Reader interface {\n\tRead() ([]byte, error)\n}\n\ntype YAMLReader struct {\n\treader Reader\n}\n\nfunc NewYAMLReader(r *bufio.Reader) *YAMLReader {\n\treturn &YAMLReader{\n\t\treader: &LineReader{reader: r},\n\t}\n}\n\n// Read returns a full YAML document.\nfunc (r *YAMLReader) Read() ([]byte, error) {\n\tvar buffer bytes.Buffer\n\tfor {\n\t\tline, err := r.reader.Read()\n\t\tif err != nil && err != io.EOF {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tsep := len([]byte(separator))\n\t\tif i := bytes.Index(line, []byte(separator)); i == 0 {\n\t\t\t// We have a potential document terminator\n\t\t\ti += sep\n\t\t\ttrimmed := strings.TrimSpace(string(line[i:]))\n\t\t\t// We only allow comments and spaces following the yaml doc separator, otherwise we'll return an error\n\t\t\tif len(trimmed) > 0 && string(trimmed[0]) != \"#\" {\n\t\t\t\treturn nil, YAMLSyntaxError{\n\t\t\t\t\terr: fmt.Errorf(\"invalid Yaml document separator: %s\", trimmed),\n\t\t\t\t}\n\t\t\t}\n\t\t\tif buffer.Len() != 0 {\n\t\t\t\treturn buffer.Bytes(), nil\n\t\t\t}\n\t\t\tif err == io.EOF {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tif err == io.EOF {\n\t\t\tif buffer.Len() != 0 {\n\t\t\t\t// If we're at EOF, we have a final, non-terminated line. Return it.\n\t\t\t\treturn buffer.Bytes(), nil\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tbuffer.Write(line)\n\t}\n}\n\ntype LineReader struct {\n\treader *bufio.Reader\n}\n\n// Read returns a single line (with '\\n' ended) from the underlying reader.\n// An error is returned iff there is an error with the underlying reader.\nfunc (r *LineReader) Read() ([]byte, error) {\n\tvar (\n\t\tisPrefix bool  = true\n\t\terr      error = nil\n\t\tline     []byte\n\t\tbuffer   bytes.Buffer\n\t)\n\n\tfor isPrefix && err == nil {\n\t\tline, isPrefix, err = r.reader.ReadLine()\n\t\tbuffer.Write(line)\n\t}\n\tbuffer.WriteByte('\\n')\n\treturn buffer.Bytes(), err\n}\n\n// GuessJSONStream scans the provided reader up to size, looking\n// for an open brace indicating this is JSON. It will return the\n// bufio.Reader it creates for the consumer.\nfunc GuessJSONStream(r io.Reader, size int) (io.Reader, []byte, bool) {\n\tbuffer := bufio.NewReaderSize(r, size)\n\tb, _ := buffer.Peek(size)\n\treturn buffer, b, hasJSONPrefix(b)\n}\n\n// IsJSONBuffer scans the provided buffer, looking\n// for an open brace indicating this is JSON.\nfunc IsJSONBuffer(buf []byte) bool {\n\treturn hasJSONPrefix(buf)\n}\n\nvar jsonPrefix = []byte(\"{\")\n\n// hasJSONPrefix returns true if the provided buffer appears to start with\n// a JSON open brace.\nfunc hasJSONPrefix(buf []byte) bool {\n\treturn hasPrefix(buf, jsonPrefix)\n}\n\n// Return true if the first non-whitespace bytes in buf is\n// prefix.\nfunc hasPrefix(buf []byte, prefix []byte) bool {\n\ttrim := bytes.TrimLeftFunc(buf, unicode.IsSpace)\n\treturn bytes.HasPrefix(trim, prefix)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\n// Package version supplies the type for version information collected at build time.\npackage version // import \"k8s.io/apimachinery/pkg/version\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/helpers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype versionType int\n\nconst (\n\t// Bigger the version type number, higher priority it is\n\tversionTypeAlpha versionType = iota\n\tversionTypeBeta\n\tversionTypeGA\n)\n\nvar kubeVersionRegex = regexp.MustCompile(\"^v([\\\\d]+)(?:(alpha|beta)([\\\\d]+))?$\")\n\nfunc parseKubeVersion(v string) (majorVersion int, vType versionType, minorVersion int, ok bool) {\n\tvar err error\n\tsubmatches := kubeVersionRegex.FindStringSubmatch(v)\n\tif len(submatches) != 4 {\n\t\treturn 0, 0, 0, false\n\t}\n\tswitch submatches[2] {\n\tcase \"alpha\":\n\t\tvType = versionTypeAlpha\n\tcase \"beta\":\n\t\tvType = versionTypeBeta\n\tcase \"\":\n\t\tvType = versionTypeGA\n\tdefault:\n\t\treturn 0, 0, 0, false\n\t}\n\tif majorVersion, err = strconv.Atoi(submatches[1]); err != nil {\n\t\treturn 0, 0, 0, false\n\t}\n\tif vType != versionTypeGA {\n\t\tif minorVersion, err = strconv.Atoi(submatches[3]); err != nil {\n\t\t\treturn 0, 0, 0, false\n\t\t}\n\t}\n\treturn majorVersion, vType, minorVersion, true\n}\n\n// CompareKubeAwareVersionStrings compares two kube-like version strings.\n// Kube-like version strings are starting with a v, followed by a major version, optional \"alpha\" or \"beta\" strings\n// followed by a minor version (e.g. v1, v2beta1). Versions will be sorted based on GA/alpha/beta first and then major\n// and minor versions. e.g. v2, v1, v1beta2, v1beta1, v1alpha1.\nfunc CompareKubeAwareVersionStrings(v1, v2 string) int {\n\tif v1 == v2 {\n\t\treturn 0\n\t}\n\tv1major, v1type, v1minor, ok1 := parseKubeVersion(v1)\n\tv2major, v2type, v2minor, ok2 := parseKubeVersion(v2)\n\tswitch {\n\tcase !ok1 && !ok2:\n\t\treturn strings.Compare(v2, v1)\n\tcase !ok1 && ok2:\n\t\treturn -1\n\tcase ok1 && !ok2:\n\t\treturn 1\n\t}\n\tif v1type != v2type {\n\t\treturn int(v1type) - int(v2type)\n\t}\n\tif v1major != v2major {\n\t\treturn v1major - v2major\n\t}\n\treturn v1minor - v2minor\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\n// Info contains versioning information.\n// TODO: Add []string of api versions supported? It's still unclear\n// how we'll want to distribute that information.\ntype Info struct {\n\tMajor        string `json:\"major\"`\n\tMinor        string `json:\"minor\"`\n\tGitVersion   string `json:\"gitVersion\"`\n\tGitCommit    string `json:\"gitCommit\"`\n\tGitTreeState string `json:\"gitTreeState\"`\n\tBuildDate    string `json:\"buildDate\"`\n\tGoVersion    string `json:\"goVersion\"`\n\tCompiler     string `json:\"compiler\"`\n\tPlatform     string `json:\"platform\"`\n}\n\n// String returns info as a human-friendly version string.\nfunc (info Info) String() string {\n\treturn info.GitVersion\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package watch contains a generic watchable interface, and a fake for\n// testing code that uses the watch interface.\npackage watch // import \"k8s.io/apimachinery/pkg/watch\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/filter.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"sync\"\n)\n\n// FilterFunc should take an event, possibly modify it in some way, and return\n// the modified event. If the event should be ignored, then return keep=false.\ntype FilterFunc func(in Event) (out Event, keep bool)\n\n// Filter passes all events through f before allowing them to pass on.\n// Putting a filter on a watch, as an unavoidable side-effect due to the way\n// go channels work, effectively causes the watch's event channel to have its\n// queue length increased by one.\n//\n// WARNING: filter has a fatal flaw, in that it can't properly update the\n// Type field (Add/Modified/Deleted) to reflect items beginning to pass the\n// filter when they previously didn't.\nfunc Filter(w Interface, f FilterFunc) Interface {\n\tfw := &filteredWatch{\n\t\tincoming: w,\n\t\tresult:   make(chan Event),\n\t\tf:        f,\n\t}\n\tgo fw.loop()\n\treturn fw\n}\n\ntype filteredWatch struct {\n\tincoming Interface\n\tresult   chan Event\n\tf        FilterFunc\n}\n\n// ResultChan returns a channel which will receive filtered events.\nfunc (fw *filteredWatch) ResultChan() <-chan Event {\n\treturn fw.result\n}\n\n// Stop stops the upstream watch, which will eventually stop this watch.\nfunc (fw *filteredWatch) Stop() {\n\tfw.incoming.Stop()\n}\n\n// loop waits for new values, filters them, and resends them.\nfunc (fw *filteredWatch) loop() {\n\tdefer close(fw.result)\n\tfor event := range fw.incoming.ResultChan() {\n\t\tfiltered, keep := fw.f(event)\n\t\tif keep {\n\t\t\tfw.result <- filtered\n\t\t}\n\t}\n}\n\n// Recorder records all events that are sent from the watch until it is closed.\ntype Recorder struct {\n\tInterface\n\n\tlock   sync.Mutex\n\tevents []Event\n}\n\nvar _ Interface = &Recorder{}\n\n// NewRecorder wraps an Interface and records any changes sent across it.\nfunc NewRecorder(w Interface) *Recorder {\n\tr := &Recorder{}\n\tr.Interface = Filter(w, r.record)\n\treturn r\n}\n\n// record is a FilterFunc and tracks each received event.\nfunc (r *Recorder) record(in Event) (Event, bool) {\n\tr.lock.Lock()\n\tdefer r.lock.Unlock()\n\tr.events = append(r.events, in)\n\treturn in, true\n}\n\n// Events returns a copy of the events sent across this recorder.\nfunc (r *Recorder) Events() []Event {\n\tr.lock.Lock()\n\tdefer r.lock.Unlock()\n\tcopied := make([]Event, len(r.events))\n\tcopy(copied, r.events)\n\treturn copied\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/mux.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// FullChannelBehavior controls how the Broadcaster reacts if a watcher's watch\n// channel is full.\ntype FullChannelBehavior int\n\nconst (\n\tWaitIfChannelFull FullChannelBehavior = iota\n\tDropIfChannelFull\n)\n\n// Buffer the incoming queue a little bit even though it should rarely ever accumulate\n// anything, just in case a few events are received in such a short window that\n// Broadcaster can't move them onto the watchers' queues fast enough.\nconst incomingQueueLength = 25\n\n// Broadcaster distributes event notifications among any number of watchers. Every event\n// is delivered to every watcher.\ntype Broadcaster struct {\n\twatchers     map[int64]*broadcasterWatcher\n\tnextWatcher  int64\n\tdistributing sync.WaitGroup\n\n\t// incomingBlock allows us to ensure we don't race and end up sending events\n\t// to a closed channel following a broadcaster shutdown.\n\tincomingBlock sync.Mutex\n\tincoming      chan Event\n\tstopped       chan struct{}\n\n\t// How large to make watcher's channel.\n\twatchQueueLength int\n\t// If one of the watch channels is full, don't wait for it to become empty.\n\t// Instead just deliver it to the watchers that do have space in their\n\t// channels and move on to the next event.\n\t// It's more fair to do this on a per-watcher basis than to do it on the\n\t// \"incoming\" channel, which would allow one slow watcher to prevent all\n\t// other watchers from getting new events.\n\tfullChannelBehavior FullChannelBehavior\n}\n\n// NewBroadcaster creates a new Broadcaster. queueLength is the maximum number of events to queue per watcher.\n// It is guaranteed that events will be distributed in the order in which they occur,\n// but the order in which a single event is distributed among all of the watchers is unspecified.\nfunc NewBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *Broadcaster {\n\tm := &Broadcaster{\n\t\twatchers:            map[int64]*broadcasterWatcher{},\n\t\tincoming:            make(chan Event, incomingQueueLength),\n\t\tstopped:             make(chan struct{}),\n\t\twatchQueueLength:    queueLength,\n\t\tfullChannelBehavior: fullChannelBehavior,\n\t}\n\tm.distributing.Add(1)\n\tgo m.loop()\n\treturn m\n}\n\n// NewLongQueueBroadcaster functions nearly identically to NewBroadcaster,\n// except that the incoming queue is the same size as the outgoing queues\n// (specified by queueLength).\nfunc NewLongQueueBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *Broadcaster {\n\tm := &Broadcaster{\n\t\twatchers:            map[int64]*broadcasterWatcher{},\n\t\tincoming:            make(chan Event, queueLength),\n\t\tstopped:             make(chan struct{}),\n\t\twatchQueueLength:    queueLength,\n\t\tfullChannelBehavior: fullChannelBehavior,\n\t}\n\tm.distributing.Add(1)\n\tgo m.loop()\n\treturn m\n}\n\nconst internalRunFunctionMarker = \"internal-do-function\"\n\n// a function type we can shoehorn into the queue.\ntype functionFakeRuntimeObject func()\n\nfunc (obj functionFakeRuntimeObject) GetObjectKind() schema.ObjectKind {\n\treturn schema.EmptyObjectKind\n}\nfunc (obj functionFakeRuntimeObject) DeepCopyObject() runtime.Object {\n\tif obj == nil {\n\t\treturn nil\n\t}\n\t// funcs are immutable. Hence, just return the original func.\n\treturn obj\n}\n\n// Execute f, blocking the incoming queue (and waiting for it to drain first).\n// The purpose of this terrible hack is so that watchers added after an event\n// won't ever see that event, and will always see any event after they are\n// added.\nfunc (m *Broadcaster) blockQueue(f func()) {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\tselect {\n\tcase <-m.stopped:\n\t\treturn\n\tdefault:\n\t}\n\tvar wg sync.WaitGroup\n\twg.Add(1)\n\tm.incoming <- Event{\n\t\tType: internalRunFunctionMarker,\n\t\tObject: functionFakeRuntimeObject(func() {\n\t\t\tdefer wg.Done()\n\t\t\tf()\n\t\t}),\n\t}\n\twg.Wait()\n}\n\n// Watch adds a new watcher to the list and returns an Interface for it.\n// Note: new watchers will only receive new events. They won't get an entire history\n// of previous events. It will block until the watcher is actually added to the\n// broadcaster.\nfunc (m *Broadcaster) Watch() (Interface, error) {\n\tvar w *broadcasterWatcher\n\tm.blockQueue(func() {\n\t\tid := m.nextWatcher\n\t\tm.nextWatcher++\n\t\tw = &broadcasterWatcher{\n\t\t\tresult:  make(chan Event, m.watchQueueLength),\n\t\t\tstopped: make(chan struct{}),\n\t\t\tid:      id,\n\t\t\tm:       m,\n\t\t}\n\t\tm.watchers[id] = w\n\t})\n\tif w == nil {\n\t\treturn nil, fmt.Errorf(\"broadcaster already stopped\")\n\t}\n\treturn w, nil\n}\n\n// WatchWithPrefix adds a new watcher to the list and returns an Interface for it. It sends\n// queuedEvents down the new watch before beginning to send ordinary events from Broadcaster.\n// The returned watch will have a queue length that is at least large enough to accommodate\n// all of the items in queuedEvents. It will block until the watcher is actually added to\n// the broadcaster.\nfunc (m *Broadcaster) WatchWithPrefix(queuedEvents []Event) (Interface, error) {\n\tvar w *broadcasterWatcher\n\tm.blockQueue(func() {\n\t\tid := m.nextWatcher\n\t\tm.nextWatcher++\n\t\tlength := m.watchQueueLength\n\t\tif n := len(queuedEvents) + 1; n > length {\n\t\t\tlength = n\n\t\t}\n\t\tw = &broadcasterWatcher{\n\t\t\tresult:  make(chan Event, length),\n\t\t\tstopped: make(chan struct{}),\n\t\t\tid:      id,\n\t\t\tm:       m,\n\t\t}\n\t\tm.watchers[id] = w\n\t\tfor _, e := range queuedEvents {\n\t\t\tw.result <- e\n\t\t}\n\t})\n\tif w == nil {\n\t\treturn nil, fmt.Errorf(\"broadcaster already stopped\")\n\t}\n\treturn w, nil\n}\n\n// stopWatching stops the given watcher and removes it from the list.\nfunc (m *Broadcaster) stopWatching(id int64) {\n\tm.blockQueue(func() {\n\t\tw, ok := m.watchers[id]\n\t\tif !ok {\n\t\t\t// No need to do anything, it's already been removed from the list.\n\t\t\treturn\n\t\t}\n\t\tdelete(m.watchers, id)\n\t\tclose(w.result)\n\t})\n}\n\n// closeAll disconnects all watchers (presumably in response to a Shutdown call).\nfunc (m *Broadcaster) closeAll() {\n\tfor _, w := range m.watchers {\n\t\tclose(w.result)\n\t}\n\t// Delete everything from the map, since presence/absence in the map is used\n\t// by stopWatching to avoid double-closing the channel.\n\tm.watchers = map[int64]*broadcasterWatcher{}\n}\n\n// Action distributes the given event among all watchers.\nfunc (m *Broadcaster) Action(action EventType, obj runtime.Object) error {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\tselect {\n\tcase <-m.stopped:\n\t\treturn fmt.Errorf(\"broadcaster already stopped\")\n\tdefault:\n\t}\n\n\tm.incoming <- Event{action, obj}\n\treturn nil\n}\n\n// Action distributes the given event among all watchers, or drops it on the floor\n// if too many incoming actions are queued up.  Returns true if the action was sent,\n// false if dropped.\nfunc (m *Broadcaster) ActionOrDrop(action EventType, obj runtime.Object) (bool, error) {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\n\t// Ensure that if the broadcaster is stopped we do not send events to it.\n\tselect {\n\tcase <-m.stopped:\n\t\treturn false, fmt.Errorf(\"broadcaster already stopped\")\n\tdefault:\n\t}\n\n\tselect {\n\tcase m.incoming <- Event{action, obj}:\n\t\treturn true, nil\n\tdefault:\n\t\treturn false, nil\n\t}\n}\n\n// Shutdown disconnects all watchers (but any queued events will still be distributed).\n// You must not call Action or Watch* after calling Shutdown. This call blocks\n// until all events have been distributed through the outbound channels. Note\n// that since they can be buffered, this means that the watchers might not\n// have received the data yet as it can remain sitting in the buffered\n// channel. It will block until the broadcaster stop request is actually executed\nfunc (m *Broadcaster) Shutdown() {\n\tm.blockQueue(func() {\n\t\tclose(m.stopped)\n\t\tclose(m.incoming)\n\t})\n\tm.distributing.Wait()\n}\n\n// loop receives from m.incoming and distributes to all watchers.\nfunc (m *Broadcaster) loop() {\n\t// Deliberately not catching crashes here. Yes, bring down the process if there's a\n\t// bug in watch.Broadcaster.\n\tfor event := range m.incoming {\n\t\tif event.Type == internalRunFunctionMarker {\n\t\t\tevent.Object.(functionFakeRuntimeObject)()\n\t\t\tcontinue\n\t\t}\n\t\tm.distribute(event)\n\t}\n\tm.closeAll()\n\tm.distributing.Done()\n}\n\n// distribute sends event to all watchers. Blocking.\nfunc (m *Broadcaster) distribute(event Event) {\n\tif m.fullChannelBehavior == DropIfChannelFull {\n\t\tfor _, w := range m.watchers {\n\t\t\tselect {\n\t\t\tcase w.result <- event:\n\t\t\tcase <-w.stopped:\n\t\t\tdefault: // Don't block if the event can't be queued.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, w := range m.watchers {\n\t\t\tselect {\n\t\t\tcase w.result <- event:\n\t\t\tcase <-w.stopped:\n\t\t\t}\n\t\t}\n\t}\n}\n\n// broadcasterWatcher handles a single watcher of a broadcaster\ntype broadcasterWatcher struct {\n\tresult  chan Event\n\tstopped chan struct{}\n\tstop    sync.Once\n\tid      int64\n\tm       *Broadcaster\n}\n\n// ResultChan returns a channel to use for waiting on events.\nfunc (mw *broadcasterWatcher) ResultChan() <-chan Event {\n\treturn mw.result\n}\n\n// Stop stops watching and removes mw from its list.\n// It will block until the watcher stop request is actually executed\nfunc (mw *broadcasterWatcher) Stop() {\n\tmw.stop.Do(func() {\n\t\tclose(mw.stopped)\n\t\tmw.m.stopWatching(mw.id)\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// Decoder allows StreamWatcher to watch any stream for which a Decoder can be written.\ntype Decoder interface {\n\t// Decode should return the type of event, the decoded object, or an error.\n\t// An error will cause StreamWatcher to call Close(). Decode should block until\n\t// it has data or an error occurs.\n\tDecode() (action EventType, object runtime.Object, err error)\n\n\t// Close should close the underlying io.Reader, signalling to the source of\n\t// the stream that it is no longer being watched. Close() must cause any\n\t// outstanding call to Decode() to return with an error of some sort.\n\tClose()\n}\n\n// Reporter hides the details of how an error is turned into a runtime.Object for\n// reporting on a watch stream since this package may not import a higher level report.\ntype Reporter interface {\n\t// AsObject must convert err into a valid runtime.Object for the watch stream.\n\tAsObject(err error) runtime.Object\n}\n\n// StreamWatcher turns any stream for which you can write a Decoder interface\n// into a watch.Interface.\ntype StreamWatcher struct {\n\tsync.Mutex\n\tsource   Decoder\n\treporter Reporter\n\tresult   chan Event\n\tdone     chan struct{}\n}\n\n// NewStreamWatcher creates a StreamWatcher from the given decoder.\nfunc NewStreamWatcher(d Decoder, r Reporter) *StreamWatcher {\n\tsw := &StreamWatcher{\n\t\tsource:   d,\n\t\treporter: r,\n\t\t// It's easy for a consumer to add buffering via an extra\n\t\t// goroutine/channel, but impossible for them to remove it,\n\t\t// so nonbuffered is better.\n\t\tresult: make(chan Event),\n\t\t// If the watcher is externally stopped there is no receiver anymore\n\t\t// and the send operations on the result channel, especially the\n\t\t// error reporting might block forever.\n\t\t// Therefore a dedicated stop channel is used to resolve this blocking.\n\t\tdone: make(chan struct{}),\n\t}\n\tgo sw.receive()\n\treturn sw\n}\n\n// ResultChan implements Interface.\nfunc (sw *StreamWatcher) ResultChan() <-chan Event {\n\treturn sw.result\n}\n\n// Stop implements Interface.\nfunc (sw *StreamWatcher) Stop() {\n\t// Call Close() exactly once by locking and setting a flag.\n\tsw.Lock()\n\tdefer sw.Unlock()\n\t// closing a closed channel always panics, therefore check before closing\n\tselect {\n\tcase <-sw.done:\n\tdefault:\n\t\tclose(sw.done)\n\t\tsw.source.Close()\n\t}\n}\n\n// receive reads result from the decoder in a loop and sends down the result channel.\nfunc (sw *StreamWatcher) receive() {\n\tdefer utilruntime.HandleCrash()\n\tdefer close(sw.result)\n\tdefer sw.Stop()\n\tfor {\n\t\taction, obj, err := sw.source.Decode()\n\t\tif err != nil {\n\t\t\tswitch err {\n\t\t\tcase io.EOF:\n\t\t\t\t// watch closed normally\n\t\t\tcase io.ErrUnexpectedEOF:\n\t\t\t\tklog.V(1).Infof(\"Unexpected EOF during watch stream event decoding: %v\", err)\n\t\t\tdefault:\n\t\t\t\tif net.IsProbableEOF(err) || net.IsTimeout(err) {\n\t\t\t\t\tklog.V(5).Infof(\"Unable to decode an event from the watch stream: %v\", err)\n\t\t\t\t} else {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-sw.done:\n\t\t\t\t\tcase sw.result <- Event{\n\t\t\t\t\t\tType:   Error,\n\t\t\t\t\t\tObject: sw.reporter.AsObject(fmt.Errorf(\"unable to decode an event from the watch stream: %v\", err)),\n\t\t\t\t\t}:\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tselect {\n\t\tcase <-sw.done:\n\t\t\treturn\n\t\tcase sw.result <- Event{\n\t\t\tType:   action,\n\t\t\tObject: obj,\n\t\t}:\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/watch.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// Interface can be implemented by anything that knows how to watch and report changes.\ntype Interface interface {\n\t// Stop stops watching. Will close the channel returned by ResultChan(). Releases\n\t// any resources used by the watch.\n\tStop()\n\n\t// ResultChan returns a chan which will receive all the events. If an error occurs\n\t// or Stop() is called, the implementation will close this channel and\n\t// release any resources used by the watch.\n\tResultChan() <-chan Event\n}\n\n// EventType defines the possible types of events.\ntype EventType string\n\nconst (\n\tAdded    EventType = \"ADDED\"\n\tModified EventType = \"MODIFIED\"\n\tDeleted  EventType = \"DELETED\"\n\tBookmark EventType = \"BOOKMARK\"\n\tError    EventType = \"ERROR\"\n)\n\nvar (\n\tDefaultChanSize int32 = 100\n)\n\n// Event represents a single event to a watched resource.\n// +k8s:deepcopy-gen=true\ntype Event struct {\n\tType EventType\n\n\t// Object is:\n\t//  * If Type is Added or Modified: the new state of the object.\n\t//  * If Type is Deleted: the state of the object immediately before deletion.\n\t//  * If Type is Bookmark: the object (instance of a type being watched) where\n\t//    only ResourceVersion field is set. On successful restart of watch from a\n\t//    bookmark resourceVersion, client is guaranteed to not get repeat event\n\t//    nor miss any events.\n\t//  * If Type is Error: *api.Status is recommended; other types may make sense\n\t//    depending on context.\n\tObject runtime.Object\n}\n\ntype emptyWatch chan Event\n\n// NewEmptyWatch returns a watch interface that returns no results and is closed.\n// May be used in certain error conditions where no information is available but\n// an error is not warranted.\nfunc NewEmptyWatch() Interface {\n\tch := make(chan Event)\n\tclose(ch)\n\treturn emptyWatch(ch)\n}\n\n// Stop implements Interface\nfunc (w emptyWatch) Stop() {\n}\n\n// ResultChan implements Interface\nfunc (w emptyWatch) ResultChan() <-chan Event {\n\treturn chan Event(w)\n}\n\n// FakeWatcher lets you test anything that consumes a watch.Interface; threadsafe.\ntype FakeWatcher struct {\n\tresult  chan Event\n\tstopped bool\n\tsync.Mutex\n}\n\nfunc NewFake() *FakeWatcher {\n\treturn &FakeWatcher{\n\t\tresult: make(chan Event),\n\t}\n}\n\nfunc NewFakeWithChanSize(size int, blocking bool) *FakeWatcher {\n\treturn &FakeWatcher{\n\t\tresult: make(chan Event, size),\n\t}\n}\n\n// Stop implements Interface.Stop().\nfunc (f *FakeWatcher) Stop() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.stopped {\n\t\tklog.V(4).Infof(\"Stopping fake watcher.\")\n\t\tclose(f.result)\n\t\tf.stopped = true\n\t}\n}\n\nfunc (f *FakeWatcher) IsStopped() bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.stopped\n}\n\n// Reset prepares the watcher to be reused.\nfunc (f *FakeWatcher) Reset() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tf.stopped = false\n\tf.result = make(chan Event)\n}\n\nfunc (f *FakeWatcher) ResultChan() <-chan Event {\n\treturn f.result\n}\n\n// Add sends an add event.\nfunc (f *FakeWatcher) Add(obj runtime.Object) {\n\tf.result <- Event{Added, obj}\n}\n\n// Modify sends a modify event.\nfunc (f *FakeWatcher) Modify(obj runtime.Object) {\n\tf.result <- Event{Modified, obj}\n}\n\n// Delete sends a delete event.\nfunc (f *FakeWatcher) Delete(lastValue runtime.Object) {\n\tf.result <- Event{Deleted, lastValue}\n}\n\n// Error sends an Error event.\nfunc (f *FakeWatcher) Error(errValue runtime.Object) {\n\tf.result <- Event{Error, errValue}\n}\n\n// Action sends an event of the requested type, for table-based testing.\nfunc (f *FakeWatcher) Action(action EventType, obj runtime.Object) {\n\tf.result <- Event{action, obj}\n}\n\n// RaceFreeFakeWatcher lets you test anything that consumes a watch.Interface; threadsafe.\ntype RaceFreeFakeWatcher struct {\n\tresult  chan Event\n\tStopped bool\n\tsync.Mutex\n}\n\nfunc NewRaceFreeFake() *RaceFreeFakeWatcher {\n\treturn &RaceFreeFakeWatcher{\n\t\tresult: make(chan Event, DefaultChanSize),\n\t}\n}\n\n// Stop implements Interface.Stop().\nfunc (f *RaceFreeFakeWatcher) Stop() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tklog.V(4).Infof(\"Stopping fake watcher.\")\n\t\tclose(f.result)\n\t\tf.Stopped = true\n\t}\n}\n\nfunc (f *RaceFreeFakeWatcher) IsStopped() bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.Stopped\n}\n\n// Reset prepares the watcher to be reused.\nfunc (f *RaceFreeFakeWatcher) Reset() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tf.Stopped = false\n\tf.result = make(chan Event, DefaultChanSize)\n}\n\nfunc (f *RaceFreeFakeWatcher) ResultChan() <-chan Event {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.result\n}\n\n// Add sends an add event.\nfunc (f *RaceFreeFakeWatcher) Add(obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Added, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Modify sends a modify event.\nfunc (f *RaceFreeFakeWatcher) Modify(obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Modified, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Delete sends a delete event.\nfunc (f *RaceFreeFakeWatcher) Delete(lastValue runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Deleted, lastValue}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Error sends an Error event.\nfunc (f *RaceFreeFakeWatcher) Error(errValue runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Error, errValue}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Action sends an event of the requested type, for table-based testing.\nfunc (f *RaceFreeFakeWatcher) Action(action EventType, obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{action, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// ProxyWatcher lets you wrap your channel in watch Interface. threadsafe.\ntype ProxyWatcher struct {\n\tresult chan Event\n\tstopCh chan struct{}\n\n\tmutex   sync.Mutex\n\tstopped bool\n}\n\nvar _ Interface = &ProxyWatcher{}\n\n// NewProxyWatcher creates new ProxyWatcher by wrapping a channel\nfunc NewProxyWatcher(ch chan Event) *ProxyWatcher {\n\treturn &ProxyWatcher{\n\t\tresult:  ch,\n\t\tstopCh:  make(chan struct{}),\n\t\tstopped: false,\n\t}\n}\n\n// Stop implements Interface\nfunc (pw *ProxyWatcher) Stop() {\n\tpw.mutex.Lock()\n\tdefer pw.mutex.Unlock()\n\tif !pw.stopped {\n\t\tpw.stopped = true\n\t\tclose(pw.stopCh)\n\t}\n}\n\n// Stopping returns true if Stop() has been called\nfunc (pw *ProxyWatcher) Stopping() bool {\n\tpw.mutex.Lock()\n\tdefer pw.mutex.Unlock()\n\treturn pw.stopped\n}\n\n// ResultChan implements Interface\nfunc (pw *ProxyWatcher) ResultChan() <-chan Event {\n\treturn pw.result\n}\n\n// StopChan returns stop channel\nfunc (pw *ProxyWatcher) StopChan() <-chan struct{} {\n\treturn pw.stopCh\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage watch\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/json/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - pwittrock\nreviewers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json is forked from the Go standard library to enable us to find the\n// field of a struct that a given JSON key maps to.\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\tpatchStrategyTagKey = \"patchStrategy\"\n\tpatchMergeKeyTagKey = \"patchMergeKey\"\n)\n\n// Finds the patchStrategy and patchMergeKey struct tag fields on a given\n// struct field given the struct type and the JSON name of the field.\n// It returns field type, a slice of patch strategies, merge key and error.\n// TODO: fix the returned errors to be introspectable.\nfunc LookupPatchMetadataForStruct(t reflect.Type, jsonField string) (\n\telemType reflect.Type, patchStrategies []string, patchMergeKey string, e error) {\n\tif t.Kind() == reflect.Pointer {\n\t\tt = t.Elem()\n\t}\n\n\tif t.Kind() != reflect.Struct {\n\t\te = fmt.Errorf(\"merging an object in json but data type is not struct, instead is: %s\",\n\t\t\tt.Kind().String())\n\t\treturn\n\t}\n\tjf := []byte(jsonField)\n\t// Find the field that the JSON library would use.\n\tvar f *field\n\tfields := cachedTypeFields(t)\n\tfor i := range fields {\n\t\tff := &fields[i]\n\t\tif bytes.Equal(ff.nameBytes, jf) {\n\t\t\tf = ff\n\t\t\tbreak\n\t\t}\n\t\t// Do case-insensitive comparison.\n\t\tif f == nil && ff.equalFold(ff.nameBytes, jf) {\n\t\t\tf = ff\n\t\t}\n\t}\n\tif f != nil {\n\t\t// Find the reflect.Value of the most preferential struct field.\n\t\ttjf := t.Field(f.index[0])\n\t\t// we must navigate down all the anonymously included structs in the chain\n\t\tfor i := 1; i < len(f.index); i++ {\n\t\t\ttjf = tjf.Type.Field(f.index[i])\n\t\t}\n\t\tpatchStrategy := tjf.Tag.Get(patchStrategyTagKey)\n\t\tpatchMergeKey = tjf.Tag.Get(patchMergeKeyTagKey)\n\t\tpatchStrategies = strings.Split(patchStrategy, \",\")\n\t\telemType = tjf.Type\n\t\treturn\n\t}\n\te = fmt.Errorf(\"unable to find api field in struct %s for the json field %q\", t.Name(), jsonField)\n\treturn\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte                 // []byte(name)\n\tequalFold func(s, t []byte) bool // bytes.EqualFold or equivalent\n\n\ttag bool\n\t// index is the sequence of indexes from the containing type fields to this field.\n\t// it is a slice because anonymous structs will need multiple navigation steps to correctly\n\t// resolve the proper fields\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n}\n\nfunc (f field) String() string {\n\treturn fmt.Sprintf(\"{name: %s, type: %v, tag: %v, index: %v, omitEmpty: %v, quoted: %v}\", f.name, f.typ, f.tag, f.index, f.omitEmpty, f.quoted)\n}\n\nfunc fillField(f field) field {\n\tf.nameBytes = []byte(f.name)\n\tf.equalFold = foldFunc(f.nameBytes)\n\treturn f\n}\n\n// byName sorts field by name, breaking ties with depth,\n// then breaking ties with \"name came from json tag\", then\n// breaking ties with index sequence.\ntype byName []field\n\nfunc (x byName) Len() int { return len(x) }\n\nfunc (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byName) Less(i, j int) bool {\n\tif x[i].name != x[j].name {\n\t\treturn x[i].name < x[j].name\n\t}\n\tif len(x[i].index) != len(x[j].index) {\n\t\treturn len(x[i].index) < len(x[j].index)\n\t}\n\tif x[i].tag != x[j].tag {\n\t\treturn x[i].tag\n\t}\n\treturn byIndex(x).Less(i, j)\n}\n\n// byIndex sorts field by index sequence.\ntype byIndex []field\n\nfunc (x byIndex) Len() int { return len(x) }\n\nfunc (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byIndex) Less(i, j int) bool {\n\tfor k, xik := range x[i].index {\n\t\tif k >= len(x[j].index) {\n\t\t\treturn false\n\t\t}\n\t\tif xik != x[j].index[k] {\n\t\t\treturn xik < x[j].index[k]\n\t\t}\n\t}\n\treturn len(x[i].index) < len(x[j].index)\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) []field {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tcount := map[reflect.Type]int{}\n\tnextCount := map[reflect.Type]int{}\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.PkgPath != \"\" { // unexported\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Pointer {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfields = append(fields, fillField(field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    opts.Contains(\"string\"),\n\t\t\t\t\t}))\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 or 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, fillField(field{name: ft.Name(), index: index, typ: ft}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Sort(byName(fields))\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tsort.Sort(byIndex(fields))\n\n\treturn fields\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order. The winner\n\t// must therefore be one with the shortest index length. Drop all\n\t// longer entries, which is easy: just truncate the slice.\n\tlength := len(fields[0].index)\n\ttagged := -1 // Index of first tagged field.\n\tfor i, f := range fields {\n\t\tif len(f.index) > length {\n\t\t\tfields = fields[:i]\n\t\t\tbreak\n\t\t}\n\t\tif f.tag {\n\t\t\tif tagged >= 0 {\n\t\t\t\t// Multiple tagged fields at the same level: conflict.\n\t\t\t\t// Return no field.\n\t\t\t\treturn field{}, false\n\t\t\t}\n\t\t\ttagged = i\n\t\t}\n\t}\n\tif tagged >= 0 {\n\t\treturn fields[tagged], true\n\t}\n\t// All remaining fields have the same length. If there's more than one,\n\t// we have a conflict (two fields named \"X\" at the same level) and we\n\t// return no field.\n\tif len(fields) > 1 {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache struct {\n\tsync.RWMutex\n\tm map[reflect.Type][]field\n}\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) []field {\n\tfieldCache.RLock()\n\tf := fieldCache.m[t]\n\tfieldCache.RUnlock()\n\tif f != nil {\n\t\treturn f\n\t}\n\n\t// Compute fields without lock.\n\t// Might duplicate effort but won't hold other computations back.\n\tf = typeFields(t)\n\tif f == nil {\n\t\tf = []field{}\n\t}\n\n\tfieldCache.Lock()\n\tif fieldCache.m == nil {\n\t\tfieldCache.m = map[reflect.Type][]field{}\n\t}\n\tfieldCache.m[t] = f\n\tfieldCache.Unlock()\n\treturn f\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tdefault:\n\t\t\tif !unicode.IsLetter(c) && !unicode.IsDigit(c) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nconst (\n\tcaseMask     = ^byte(0x20) // Mask to ignore case in ASCII.\n\tkelvin       = '\\u212a'\n\tsmallLongEss = '\\u017f'\n)\n\n// foldFunc returns one of four different case folding equivalence\n// functions, from most general (and slow) to fastest:\n//\n// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8\n// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')\n// 3) asciiEqualFold, no special, but includes non-letters (including _)\n// 4) simpleLetterEqualFold, no specials, no non-letters.\n//\n// The letters S and K are special because they map to 3 runes, not just 2:\n//  * S maps to s and to U+017F 'ſ' Latin small letter long s\n//  * k maps to K and to U+212A 'K' Kelvin sign\n// See http://play.golang.org/p/tTxjOc0OGo\n//\n// The returned function is specialized for matching against s and\n// should only be given s. It's not curried for performance reasons.\nfunc foldFunc(s []byte) func(s, t []byte) bool {\n\tnonLetter := false\n\tspecial := false // special letter\n\tfor _, b := range s {\n\t\tif b >= utf8.RuneSelf {\n\t\t\treturn bytes.EqualFold\n\t\t}\n\t\tupper := b & caseMask\n\t\tif upper < 'A' || upper > 'Z' {\n\t\t\tnonLetter = true\n\t\t} else if upper == 'K' || upper == 'S' {\n\t\t\t// See above for why these letters are special.\n\t\t\tspecial = true\n\t\t}\n\t}\n\tif special {\n\t\treturn equalFoldRight\n\t}\n\tif nonLetter {\n\t\treturn asciiEqualFold\n\t}\n\treturn simpleLetterEqualFold\n}\n\n// equalFoldRight is a specialization of bytes.EqualFold when s is\n// known to be all ASCII (including punctuation), but contains an 's',\n// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.\n// See comments on foldFunc.\nfunc equalFoldRight(s, t []byte) bool {\n\tfor _, sb := range s {\n\t\tif len(t) == 0 {\n\t\t\treturn false\n\t\t}\n\t\ttb := t[0]\n\t\tif tb < utf8.RuneSelf {\n\t\t\tif sb != tb {\n\t\t\t\tsbUpper := sb & caseMask\n\t\t\t\tif 'A' <= sbUpper && sbUpper <= 'Z' {\n\t\t\t\t\tif sbUpper != tb&caseMask {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tt = t[1:]\n\t\t\tcontinue\n\t\t}\n\t\t// sb is ASCII and t is not. t must be either kelvin\n\t\t// sign or long s; sb must be s, S, k, or K.\n\t\ttr, size := utf8.DecodeRune(t)\n\t\tswitch sb {\n\t\tcase 's', 'S':\n\t\t\tif tr != smallLongEss {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase 'k', 'K':\n\t\t\tif tr != kelvin {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t\tt = t[size:]\n\n\t}\n\tif len(t) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// asciiEqualFold is a specialization of bytes.EqualFold for use when\n// s is all ASCII (but may contain non-letters) and contains no\n// special-folding letters.\n// See comments on foldFunc.\nfunc asciiEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, sb := range s {\n\t\ttb := t[i]\n\t\tif sb == tb {\n\t\t\tcontinue\n\t\t}\n\t\tif ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {\n\t\t\tif sb&caseMask != tb&caseMask {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// simpleLetterEqualFold is a specialization of bytes.EqualFold for\n// use when s is all ASCII letters (no underscores, etc) and also\n// doesn't contain 'k', 'K', 's', or 'S'.\n// See comments on foldFunc.\nfunc simpleLetterEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, b := range s {\n\t\tif b&caseMask != t[i]&caseMask {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package reflect is a fork of go's standard library reflection package, which\n// allows for deep equal with equality functions defined.\npackage reflect\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Equalities is a map from type to a function comparing two values of\n// that type.\ntype Equalities map[reflect.Type]reflect.Value\n\n// For convenience, panics on errors\nfunc EqualitiesOrDie(funcs ...interface{}) Equalities {\n\te := Equalities{}\n\tif err := e.AddFuncs(funcs...); err != nil {\n\t\tpanic(err)\n\t}\n\treturn e\n}\n\n// AddFuncs is a shortcut for multiple calls to AddFunc.\nfunc (e Equalities) AddFuncs(funcs ...interface{}) error {\n\tfor _, f := range funcs {\n\t\tif err := e.AddFunc(f); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// AddFunc uses func as an equality function: it must take\n// two parameters of the same type, and return a boolean.\nfunc (e Equalities) AddFunc(eqFunc interface{}) error {\n\tfv := reflect.ValueOf(eqFunc)\n\tft := fv.Type()\n\tif ft.Kind() != reflect.Func {\n\t\treturn fmt.Errorf(\"expected func, got: %v\", ft)\n\t}\n\tif ft.NumIn() != 2 {\n\t\treturn fmt.Errorf(\"expected two 'in' params, got: %v\", ft)\n\t}\n\tif ft.NumOut() != 1 {\n\t\treturn fmt.Errorf(\"expected one 'out' param, got: %v\", ft)\n\t}\n\tif ft.In(0) != ft.In(1) {\n\t\treturn fmt.Errorf(\"expected arg 1 and 2 to have same type, but got %v\", ft)\n\t}\n\tvar forReturnType bool\n\tboolType := reflect.TypeOf(forReturnType)\n\tif ft.Out(0) != boolType {\n\t\treturn fmt.Errorf(\"expected bool return, got: %v\", ft)\n\t}\n\te[ft.In(0)] = fv\n\treturn nil\n}\n\n// Below here is forked from go's reflect/deepequal.go\n\n// During deepValueEqual, must keep track of checks that are\n// in progress.  The comparison algorithm assumes that all\n// checks in progress are true when it reencounters them.\n// Visited comparisons are stored in a map indexed by visit.\ntype visit struct {\n\ta1  uintptr\n\ta2  uintptr\n\ttyp reflect.Type\n}\n\n// unexportedTypePanic is thrown when you use this DeepEqual on something that has an\n// unexported type. It indicates a programmer error, so should not occur at runtime,\n// which is why it's not public and thus impossible to catch.\ntype unexportedTypePanic []reflect.Type\n\nfunc (u unexportedTypePanic) Error() string { return u.String() }\nfunc (u unexportedTypePanic) String() string {\n\tstrs := make([]string, len(u))\n\tfor i, t := range u {\n\t\tstrs[i] = fmt.Sprintf(\"%v\", t)\n\t}\n\treturn \"an unexported field was encountered, nested like this: \" + strings.Join(strs, \" -> \")\n}\n\nfunc makeUsefulPanic(v reflect.Value) {\n\tif x := recover(); x != nil {\n\t\tif u, ok := x.(unexportedTypePanic); ok {\n\t\t\tu = append(unexportedTypePanic{v.Type()}, u...)\n\t\t\tx = u\n\t\t}\n\t\tpanic(x)\n\t}\n}\n\n// Tests for deep equality using reflected types. The map argument tracks\n// comparisons that have already been seen, which allows short circuiting on\n// recursive types.\n// equateNilAndEmpty controls whether empty maps/slices are equivalent to nil\nfunc (e Equalities) deepValueEqual(v1, v2 reflect.Value, visited map[visit]bool, equateNilAndEmpty bool, depth int) bool {\n\tdefer makeUsefulPanic(v1)\n\n\tif !v1.IsValid() || !v2.IsValid() {\n\t\treturn v1.IsValid() == v2.IsValid()\n\t}\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif fv, ok := e[v1.Type()]; ok {\n\t\treturn fv.Call([]reflect.Value{v1, v2})[0].Bool()\n\t}\n\n\thard := func(k reflect.Kind) bool {\n\t\tswitch k {\n\t\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.Struct:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tif v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {\n\t\taddr1 := v1.UnsafeAddr()\n\t\taddr2 := v2.UnsafeAddr()\n\t\tif addr1 > addr2 {\n\t\t\t// Canonicalize order to reduce number of entries in visited.\n\t\t\taddr1, addr2 = addr2, addr1\n\t\t}\n\n\t\t// Short circuit if references are identical ...\n\t\tif addr1 == addr2 {\n\t\t\treturn true\n\t\t}\n\n\t\t// ... or already seen\n\t\ttyp := v1.Type()\n\t\tv := visit{addr1, addr2, typ}\n\t\tif visited[v] {\n\t\t\treturn true\n\t\t}\n\n\t\t// Remember for later.\n\t\tvisited[v] = true\n\t}\n\n\tswitch v1.Kind() {\n\tcase reflect.Array:\n\t\t// We don't need to check length here because length is part of\n\t\t// an array's type, which has already been filtered for.\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueEqual(v1.Index(i), v2.Index(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Slice:\n\t\tif equateNilAndEmpty {\n\t\t\tif (v1.IsNil() || v1.Len() == 0) != (v2.IsNil() || v2.Len() == 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} else {\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Optimize nil and empty cases\n\t\t\t// Two lists that are BOTH nil are equal\n\t\t\t// No need to check v2 is nil since v1.IsNil == v2.IsNil from above\n\t\t\tif v1.IsNil() {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Two lists that are both empty and both non nil are equal\n\t\t\tif v1.Len() == 0 || v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueEqual(v1.Index(i), v2.Index(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Interface:\n\t\tif v1.IsNil() || v2.IsNil() {\n\t\t\treturn v1.IsNil() == v2.IsNil()\n\t\t}\n\t\treturn e.deepValueEqual(v1.Elem(), v2.Elem(), visited, equateNilAndEmpty, depth+1)\n\tcase reflect.Ptr:\n\t\treturn e.deepValueEqual(v1.Elem(), v2.Elem(), visited, equateNilAndEmpty, depth+1)\n\tcase reflect.Struct:\n\t\tfor i, n := 0, v1.NumField(); i < n; i++ {\n\t\t\tif !e.deepValueEqual(v1.Field(i), v2.Field(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Map:\n\t\tif equateNilAndEmpty {\n\t\t\tif (v1.IsNil() || v1.Len() == 0) != (v2.IsNil() || v2.Len() == 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} else {\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Optimize nil and empty cases\n\t\t\t// Two maps that are BOTH nil are equal\n\t\t\t// No need to check v2 is nil since v1.IsNil == v2.IsNil from above\n\t\t\tif v1.IsNil() {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Two maps that are both empty and both non nil are equal\n\t\t\tif v1.Len() == 0 || v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor _, k := range v1.MapKeys() {\n\t\t\tif !e.deepValueEqual(v1.MapIndex(k), v2.MapIndex(k), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Func:\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\t// Can't do better than this:\n\t\treturn false\n\tdefault:\n\t\t// Normal equality suffices\n\t\tif !v1.CanInterface() || !v2.CanInterface() {\n\t\t\tpanic(unexportedTypePanic{})\n\t\t}\n\t\treturn v1.Interface() == v2.Interface()\n\t}\n}\n\n// DeepEqual is like reflect.DeepEqual, but focused on semantic equality\n// instead of memory equality.\n//\n// It will use e's equality functions if it finds types that match.\n//\n// An empty slice *is* equal to a nil slice for our purposes; same for maps.\n//\n// Unexported field members cannot be compared and will cause an informative panic; you must add an Equality\n// function for these types.\nfunc (e Equalities) DeepEqual(a1, a2 interface{}) bool {\n\treturn e.deepEqual(a1, a2, true)\n}\n\nfunc (e Equalities) DeepEqualWithNilDifferentFromEmpty(a1, a2 interface{}) bool {\n\treturn e.deepEqual(a1, a2, false)\n}\n\nfunc (e Equalities) deepEqual(a1, a2 interface{}, equateNilAndEmpty bool) bool {\n\tif a1 == nil || a2 == nil {\n\t\treturn a1 == a2\n\t}\n\tv1 := reflect.ValueOf(a1)\n\tv2 := reflect.ValueOf(a2)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\treturn e.deepValueEqual(v1, v2, make(map[visit]bool), equateNilAndEmpty, 0)\n}\n\nfunc (e Equalities) deepValueDerive(v1, v2 reflect.Value, visited map[visit]bool, depth int) bool {\n\tdefer makeUsefulPanic(v1)\n\n\tif !v1.IsValid() || !v2.IsValid() {\n\t\treturn v1.IsValid() == v2.IsValid()\n\t}\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif fv, ok := e[v1.Type()]; ok {\n\t\treturn fv.Call([]reflect.Value{v1, v2})[0].Bool()\n\t}\n\n\thard := func(k reflect.Kind) bool {\n\t\tswitch k {\n\t\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.Struct:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tif v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {\n\t\taddr1 := v1.UnsafeAddr()\n\t\taddr2 := v2.UnsafeAddr()\n\t\tif addr1 > addr2 {\n\t\t\t// Canonicalize order to reduce number of entries in visited.\n\t\t\taddr1, addr2 = addr2, addr1\n\t\t}\n\n\t\t// Short circuit if references are identical ...\n\t\tif addr1 == addr2 {\n\t\t\treturn true\n\t\t}\n\n\t\t// ... or already seen\n\t\ttyp := v1.Type()\n\t\tv := visit{addr1, addr2, typ}\n\t\tif visited[v] {\n\t\t\treturn true\n\t\t}\n\n\t\t// Remember for later.\n\t\tvisited[v] = true\n\t}\n\n\tswitch v1.Kind() {\n\tcase reflect.Array:\n\t\t// We don't need to check length here because length is part of\n\t\t// an array's type, which has already been filtered for.\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueDerive(v1.Index(i), v2.Index(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Slice:\n\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueDerive(v1.Index(i), v2.Index(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.String:\n\t\tif v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\treturn v1.String() == v2.String()\n\tcase reflect.Interface:\n\t\tif v1.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn e.deepValueDerive(v1.Elem(), v2.Elem(), visited, depth+1)\n\tcase reflect.Pointer:\n\t\tif v1.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn e.deepValueDerive(v1.Elem(), v2.Elem(), visited, depth+1)\n\tcase reflect.Struct:\n\t\tfor i, n := 0, v1.NumField(); i < n; i++ {\n\t\t\tif !e.deepValueDerive(v1.Field(i), v2.Field(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Map:\n\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor _, k := range v1.MapKeys() {\n\t\t\tif !e.deepValueDerive(v1.MapIndex(k), v2.MapIndex(k), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Func:\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\t// Can't do better than this:\n\t\treturn false\n\tdefault:\n\t\t// Normal equality suffices\n\t\tif !v1.CanInterface() || !v2.CanInterface() {\n\t\t\tpanic(unexportedTypePanic{})\n\t\t}\n\t\treturn v1.Interface() == v2.Interface()\n\t}\n}\n\n// DeepDerivative is similar to DeepEqual except that unset fields in a1 are\n// ignored (not compared). This allows us to focus on the fields that matter to\n// the semantic comparison.\n//\n// The unset fields include a nil pointer and an empty string.\nfunc (e Equalities) DeepDerivative(a1, a2 interface{}) bool {\n\tif a1 == nil {\n\t\treturn true\n\t}\n\tv1 := reflect.ValueOf(a1)\n\tv2 := reflect.ValueOf(a2)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\treturn e.deepValueDerive(v1, v2, make(map[visit]bool), 0)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// MatchConditionApplyConfiguration represents an declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs an declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookApplyConfiguration represents an declarative configuration of the MutatingWebhook type for use\n// with apply.\ntype MutatingWebhookApplyConfiguration struct {\n\tName                    *string                                         `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration          `json:\"clientConfig,omitempty\"`\n\tRules                   []RuleWithOperationsApplyConfiguration          `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1.FailurePolicyType      `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1.MatchPolicyType        `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration         `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration         `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1.SideEffectClass        `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                          `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                        `json:\"admissionReviewVersions,omitempty\"`\n\tReinvocationPolicy      *admissionregistrationv1.ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration              `json:\"matchConditions,omitempty\"`\n}\n\n// MutatingWebhookApplyConfiguration constructs an declarative configuration of the MutatingWebhook type for use with\n// apply.\nfunc MutatingWebhook() *MutatingWebhookApplyConfiguration {\n\treturn &MutatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *MutatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *MutatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *MutatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReinvocationPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.ReinvocationPolicy = &value\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the MutatingWebhookConfiguration type for use\n// with apply.\ntype MutatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []MutatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// MutatingWebhookConfiguration constructs an declarative configuration of the MutatingWebhookConfiguration type for use with\n// apply.\nfunc MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a\n// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *apiadmissionregistrationv1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractMutatingWebhookConfigurationStatus is the same as ExtractMutatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingWebhookConfigurationStatus(mutatingWebhookConfiguration *apiadmissionregistrationv1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractMutatingWebhookConfiguration(mutatingWebhookConfiguration *apiadmissionregistrationv1.MutatingWebhookConfiguration, fieldManager string, subresource string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// RuleApplyConfiguration represents an declarative configuration of the Rule type for use\n// with apply.\ntype RuleApplyConfiguration struct {\n\tAPIGroups   []string      `json:\"apiGroups,omitempty\"`\n\tAPIVersions []string      `json:\"apiVersions,omitempty\"`\n\tResources   []string      `json:\"resources,omitempty\"`\n\tScope       *v1.ScopeType `json:\"scope,omitempty\"`\n}\n\n// RuleApplyConfiguration constructs an declarative configuration of the Rule type for use with\n// apply.\nfunc Rule() *RuleApplyConfiguration {\n\treturn &RuleApplyConfiguration{}\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *RuleApplyConfiguration) WithAPIGroups(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *RuleApplyConfiguration) WithAPIVersions(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIVersions = append(b.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *RuleApplyConfiguration) WithResources(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *RuleApplyConfiguration) WithScope(value v1.ScopeType) *RuleApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// RuleWithOperationsApplyConfiguration represents an declarative configuration of the RuleWithOperations type for use\n// with apply.\ntype RuleWithOperationsApplyConfiguration struct {\n\tOperations             []v1.OperationType `json:\"operations,omitempty\"`\n\tRuleApplyConfiguration `json:\",inline\"`\n}\n\n// RuleWithOperationsApplyConfiguration constructs an declarative configuration of the RuleWithOperations type for use with\n// apply.\nfunc RuleWithOperations() *RuleWithOperationsApplyConfiguration {\n\treturn &RuleWithOperationsApplyConfiguration{}\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithOperations(values ...v1.OperationType) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Operations = append(b.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIVersions = append(b.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithResources(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *RuleWithOperationsApplyConfiguration) WithScope(value v1.ScopeType) *RuleWithOperationsApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceReferenceApplyConfiguration represents an declarative configuration of the ServiceReference type for use\n// with apply.\ntype ServiceReferenceApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tPath      *string `json:\"path,omitempty\"`\n\tPort      *int32  `json:\"port,omitempty\"`\n}\n\n// ServiceReferenceApplyConfiguration constructs an declarative configuration of the ServiceReference type for use with\n// apply.\nfunc ServiceReference() *ServiceReferenceApplyConfiguration {\n\treturn &ServiceReferenceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookApplyConfiguration represents an declarative configuration of the ValidatingWebhook type for use\n// with apply.\ntype ValidatingWebhookApplyConfiguration struct {\n\tName                    *string                                    `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration     `json:\"clientConfig,omitempty\"`\n\tRules                   []RuleWithOperationsApplyConfiguration     `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1.MatchPolicyType   `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration    `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration    `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1.SideEffectClass   `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                     `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                   `json:\"admissionReviewVersions,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration         `json:\"matchConditions,omitempty\"`\n}\n\n// ValidatingWebhookApplyConfiguration constructs an declarative configuration of the ValidatingWebhook type for use with\n// apply.\nfunc ValidatingWebhook() *ValidatingWebhookApplyConfiguration {\n\treturn &ValidatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *ValidatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the ValidatingWebhookConfiguration type for use\n// with apply.\ntype ValidatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []ValidatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// ValidatingWebhookConfiguration constructs an declarative configuration of the ValidatingWebhookConfiguration type for use with\n// apply.\nfunc ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a\n// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *apiadmissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractValidatingWebhookConfigurationStatus is the same as ExtractValidatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingWebhookConfigurationStatus(validatingWebhookConfiguration *apiadmissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractValidatingWebhookConfiguration(validatingWebhookConfiguration *apiadmissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string, subresource string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WebhookClientConfigApplyConfiguration represents an declarative configuration of the WebhookClientConfig type for use\n// with apply.\ntype WebhookClientConfigApplyConfiguration struct {\n\tURL      *string                             `json:\"url,omitempty\"`\n\tService  *ServiceReferenceApplyConfiguration `json:\"service,omitempty\"`\n\tCABundle []byte                              `json:\"caBundle,omitempty\"`\n}\n\n// WebhookClientConfigApplyConfiguration constructs an declarative configuration of the WebhookClientConfig type for use with\n// apply.\nfunc WebhookClientConfig() *WebhookClientConfigApplyConfiguration {\n\treturn &WebhookClientConfigApplyConfiguration{}\n}\n\n// WithURL sets the URL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the URL field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration {\n\tb.URL = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithCABundle adds the given value to the CABundle field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CABundle field.\nfunc (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.CABundle = append(b.CABundle, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/auditannotation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// AuditAnnotationApplyConfiguration represents an declarative configuration of the AuditAnnotation type for use\n// with apply.\ntype AuditAnnotationApplyConfiguration struct {\n\tKey             *string `json:\"key,omitempty\"`\n\tValueExpression *string `json:\"valueExpression,omitempty\"`\n}\n\n// AuditAnnotationApplyConfiguration constructs an declarative configuration of the AuditAnnotation type for use with\n// apply.\nfunc AuditAnnotation() *AuditAnnotationApplyConfiguration {\n\treturn &AuditAnnotationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithKey(value string) *AuditAnnotationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValueExpression sets the ValueExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueExpression field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithValueExpression(value string) *AuditAnnotationApplyConfiguration {\n\tb.ValueExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/expressionwarning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ExpressionWarningApplyConfiguration represents an declarative configuration of the ExpressionWarning type for use\n// with apply.\ntype ExpressionWarningApplyConfiguration struct {\n\tFieldRef *string `json:\"fieldRef,omitempty\"`\n\tWarning  *string `json:\"warning,omitempty\"`\n}\n\n// ExpressionWarningApplyConfiguration constructs an declarative configuration of the ExpressionWarning type for use with\n// apply.\nfunc ExpressionWarning() *ExpressionWarningApplyConfiguration {\n\treturn &ExpressionWarningApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithFieldRef(value string) *ExpressionWarningApplyConfiguration {\n\tb.FieldRef = &value\n\treturn b\n}\n\n// WithWarning sets the Warning field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Warning field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithWarning(value string) *ExpressionWarningApplyConfiguration {\n\tb.Warning = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// MatchConditionApplyConfiguration represents an declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs an declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchresources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MatchResourcesApplyConfiguration represents an declarative configuration of the MatchResources type for use\n// with apply.\ntype MatchResourcesApplyConfiguration struct {\n\tNamespaceSelector    *v1.LabelSelectorApplyConfiguration            `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector       *v1.LabelSelectorApplyConfiguration            `json:\"objectSelector,omitempty\"`\n\tResourceRules        []NamedRuleWithOperationsApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tExcludeResourceRules []NamedRuleWithOperationsApplyConfiguration    `json:\"excludeResourceRules,omitempty\"`\n\tMatchPolicy          *admissionregistrationv1alpha1.MatchPolicyType `json:\"matchPolicy,omitempty\"`\n}\n\n// MatchResourcesApplyConfiguration constructs an declarative configuration of the MatchResources type for use with\n// apply.\nfunc MatchResources() *MatchResourcesApplyConfiguration {\n\treturn &MatchResourcesApplyConfiguration{}\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithObjectSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithExcludeResourceRules adds the given value to the ExcludeResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExcludeResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithExcludeResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExcludeResourceRules\")\n\t\t}\n\t\tb.ExcludeResourceRules = append(b.ExcludeResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithMatchPolicy(value admissionregistrationv1alpha1.MatchPolicyType) *MatchResourcesApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/namedrulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n)\n\n// NamedRuleWithOperationsApplyConfiguration represents an declarative configuration of the NamedRuleWithOperations type for use\n// with apply.\ntype NamedRuleWithOperationsApplyConfiguration struct {\n\tResourceNames                           []string `json:\"resourceNames,omitempty\"`\n\tv1.RuleWithOperationsApplyConfiguration `json:\",inline\"`\n}\n\n// NamedRuleWithOperationsApplyConfiguration constructs an declarative configuration of the NamedRuleWithOperations type for use with\n// apply.\nfunc NamedRuleWithOperations() *NamedRuleWithOperationsApplyConfiguration {\n\treturn &NamedRuleWithOperationsApplyConfiguration{}\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResourceNames(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithOperations(values ...admissionregistrationv1.OperationType) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Operations = append(b.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIVersions = append(b.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResources(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *NamedRuleWithOperationsApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramkind.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ParamKindApplyConfiguration represents an declarative configuration of the ParamKind type for use\n// with apply.\ntype ParamKindApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tKind       *string `json:\"kind,omitempty\"`\n}\n\n// ParamKindApplyConfiguration constructs an declarative configuration of the ParamKind type for use with\n// apply.\nfunc ParamKind() *ParamKindApplyConfiguration {\n\treturn &ParamKindApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithAPIVersion(value string) *ParamKindApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithKind(value string) *ParamKindApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ParamRefApplyConfiguration represents an declarative configuration of the ParamRef type for use\n// with apply.\ntype ParamRefApplyConfiguration struct {\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// ParamRefApplyConfiguration constructs an declarative configuration of the ParamRef type for use with\n// apply.\nfunc ParamRef() *ParamRefApplyConfiguration {\n\treturn &ParamRefApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithName(value string) *ParamRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithNamespace(value string) *ParamRefApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/typechecking.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// TypeCheckingApplyConfiguration represents an declarative configuration of the TypeChecking type for use\n// with apply.\ntype TypeCheckingApplyConfiguration struct {\n\tExpressionWarnings []ExpressionWarningApplyConfiguration `json:\"expressionWarnings,omitempty\"`\n}\n\n// TypeCheckingApplyConfiguration constructs an declarative configuration of the TypeChecking type for use with\n// apply.\nfunc TypeChecking() *TypeCheckingApplyConfiguration {\n\treturn &TypeCheckingApplyConfiguration{}\n}\n\n// WithExpressionWarnings adds the given value to the ExpressionWarnings field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExpressionWarnings field.\nfunc (b *TypeCheckingApplyConfiguration) WithExpressionWarnings(values ...*ExpressionWarningApplyConfiguration) *TypeCheckingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExpressionWarnings\")\n\t\t}\n\t\tb.ExpressionWarnings = append(b.ExpressionWarnings, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyApplyConfiguration represents an declarative configuration of the ValidatingAdmissionPolicy type for use\n// with apply.\ntype ValidatingAdmissionPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ValidatingAdmissionPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ValidatingAdmissionPolicy constructs an declarative configuration of the ValidatingAdmissionPolicy type for use with\n// apply.\nfunc ValidatingAdmissionPolicy(name string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicy extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicy. If no managedFields are found in validatingAdmissionPolicy for fieldManager, a\n// ValidatingAdmissionPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicy must be a unmodified ValidatingAdmissionPolicy API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyStatus is the same as ExtractValidatingAdmissionPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyStatus(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string, subresource string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicy, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicy.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicySpecApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithStatus(value *ValidatingAdmissionPolicyStatusApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyBindingApplyConfiguration represents an declarative configuration of the ValidatingAdmissionPolicyBinding type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicyBindingSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBinding constructs an declarative configuration of the ValidatingAdmissionPolicyBinding type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBinding(name string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicyBinding extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicyBinding. If no managedFields are found in validatingAdmissionPolicyBinding for fieldManager, a\n// ValidatingAdmissionPolicyBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicyBinding must be a unmodified ValidatingAdmissionPolicyBinding API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicyBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyBindingStatus is the same as ExtractValidatingAdmissionPolicyBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBindingStatus(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string, subresource string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicyBinding, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicyBinding.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybindingspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration represents an declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingSpecApplyConfiguration struct {\n\tPolicyName        *string                                          `json:\"policyName,omitempty\"`\n\tParamRef          *ParamRefApplyConfiguration                      `json:\"paramRef,omitempty\"`\n\tMatchResources    *MatchResourcesApplyConfiguration                `json:\"matchResources,omitempty\"`\n\tValidationActions []admissionregistrationv1alpha1.ValidationAction `json:\"validationActions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration constructs an declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBindingSpec() *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n}\n\n// WithPolicyName sets the PolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PolicyName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithPolicyName(value string) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.PolicyName = &value\n\treturn b\n}\n\n// WithParamRef sets the ParamRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamRef field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithParamRef(value *ParamRefApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.ParamRef = value\n\treturn b\n}\n\n// WithMatchResources sets the MatchResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchResources field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithMatchResources(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.MatchResources = value\n\treturn b\n}\n\n// WithValidationActions adds the given value to the ValidationActions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ValidationActions field.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithValidationActions(values ...admissionregistrationv1alpha1.ValidationAction) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ValidationActions = append(b.ValidationActions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// ValidatingAdmissionPolicySpecApplyConfiguration represents an declarative configuration of the ValidatingAdmissionPolicySpec type for use\n// with apply.\ntype ValidatingAdmissionPolicySpecApplyConfiguration struct {\n\tParamKind        *ParamKindApplyConfiguration                     `json:\"paramKind,omitempty\"`\n\tMatchConstraints *MatchResourcesApplyConfiguration                `json:\"matchConstraints,omitempty\"`\n\tValidations      []ValidationApplyConfiguration                   `json:\"validations,omitempty\"`\n\tFailurePolicy    *admissionregistrationv1alpha1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tAuditAnnotations []AuditAnnotationApplyConfiguration              `json:\"auditAnnotations,omitempty\"`\n\tMatchConditions  []MatchConditionApplyConfiguration               `json:\"matchConditions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicySpecApplyConfiguration constructs an declarative configuration of the ValidatingAdmissionPolicySpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicySpec() *ValidatingAdmissionPolicySpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicySpecApplyConfiguration{}\n}\n\n// WithParamKind sets the ParamKind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamKind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithParamKind(value *ParamKindApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.ParamKind = value\n\treturn b\n}\n\n// WithMatchConstraints sets the MatchConstraints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchConstraints field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConstraints(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.MatchConstraints = value\n\treturn b\n}\n\n// WithValidations adds the given value to the Validations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Validations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithValidations(values ...*ValidationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithValidations\")\n\t\t}\n\t\tb.Validations = append(b.Validations, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithFailurePolicy(value admissionregistrationv1alpha1.FailurePolicyType) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithAuditAnnotations adds the given value to the AuditAnnotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AuditAnnotations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithAuditAnnotations(values ...*AuditAnnotationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAuditAnnotations\")\n\t\t}\n\t\tb.AuditAnnotations = append(b.AuditAnnotations, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration represents an declarative configuration of the ValidatingAdmissionPolicyStatus type for use\n// with apply.\ntype ValidatingAdmissionPolicyStatusApplyConfiguration struct {\n\tObservedGeneration *int64                           `json:\"observedGeneration,omitempty\"`\n\tTypeChecking       *TypeCheckingApplyConfiguration  `json:\"typeChecking,omitempty\"`\n\tConditions         []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration constructs an declarative configuration of the ValidatingAdmissionPolicyStatus type for use with\n// apply.\nfunc ValidatingAdmissionPolicyStatus() *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithObservedGeneration(value int64) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithTypeChecking sets the TypeChecking field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TypeChecking field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithTypeChecking(value *TypeCheckingApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.TypeChecking = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ValidationApplyConfiguration represents an declarative configuration of the Validation type for use\n// with apply.\ntype ValidationApplyConfiguration struct {\n\tExpression        *string          `json:\"expression,omitempty\"`\n\tMessage           *string          `json:\"message,omitempty\"`\n\tReason            *v1.StatusReason `json:\"reason,omitempty\"`\n\tMessageExpression *string          `json:\"messageExpression,omitempty\"`\n}\n\n// ValidationApplyConfiguration constructs an declarative configuration of the Validation type for use with\n// apply.\nfunc Validation() *ValidationApplyConfiguration {\n\treturn &ValidationApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithExpression(value string) *ValidationApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessage(value string) *ValidationApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithReason(value v1.StatusReason) *ValidationApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessageExpression sets the MessageExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MessageExpression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessageExpression(value string) *ValidationApplyConfiguration {\n\tb.MessageExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// MatchConditionApplyConfiguration represents an declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs an declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookApplyConfiguration represents an declarative configuration of the MutatingWebhook type for use\n// with apply.\ntype MutatingWebhookApplyConfiguration struct {\n\tName                    *string                                              `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration               `json:\"clientConfig,omitempty\"`\n\tRules                   []v1.RuleWithOperationsApplyConfiguration            `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1beta1.FailurePolicyType      `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1beta1.MatchPolicyType        `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration              `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration              `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1beta1.SideEffectClass        `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                               `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                             `json:\"admissionReviewVersions,omitempty\"`\n\tReinvocationPolicy      *admissionregistrationv1beta1.ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration                   `json:\"matchConditions,omitempty\"`\n}\n\n// MutatingWebhookApplyConfiguration constructs an declarative configuration of the MutatingWebhook type for use with\n// apply.\nfunc MutatingWebhook() *MutatingWebhookApplyConfiguration {\n\treturn &MutatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *MutatingWebhookApplyConfiguration) WithRules(values ...*v1.RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *MutatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *MutatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReinvocationPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1beta1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.ReinvocationPolicy = &value\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the MutatingWebhookConfiguration type for use\n// with apply.\ntype MutatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []MutatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// MutatingWebhookConfiguration constructs an declarative configuration of the MutatingWebhookConfiguration type for use with\n// apply.\nfunc MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a\n// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractMutatingWebhookConfigurationStatus is the same as ExtractMutatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingWebhookConfigurationStatus(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string, subresource string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ServiceReferenceApplyConfiguration represents an declarative configuration of the ServiceReference type for use\n// with apply.\ntype ServiceReferenceApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tPath      *string `json:\"path,omitempty\"`\n\tPort      *int32  `json:\"port,omitempty\"`\n}\n\n// ServiceReferenceApplyConfiguration constructs an declarative configuration of the ServiceReference type for use with\n// apply.\nfunc ServiceReference() *ServiceReferenceApplyConfiguration {\n\treturn &ServiceReferenceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookApplyConfiguration represents an declarative configuration of the ValidatingWebhook type for use\n// with apply.\ntype ValidatingWebhookApplyConfiguration struct {\n\tName                    *string                                         `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration          `json:\"clientConfig,omitempty\"`\n\tRules                   []v1.RuleWithOperationsApplyConfiguration       `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1beta1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1beta1.MatchPolicyType   `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration         `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration         `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1beta1.SideEffectClass   `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                          `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                        `json:\"admissionReviewVersions,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration              `json:\"matchConditions,omitempty\"`\n}\n\n// ValidatingWebhookApplyConfiguration constructs an declarative configuration of the ValidatingWebhook type for use with\n// apply.\nfunc ValidatingWebhook() *ValidatingWebhookApplyConfiguration {\n\treturn &ValidatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*v1.RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *ValidatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the ValidatingWebhookConfiguration type for use\n// with apply.\ntype ValidatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []ValidatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// ValidatingWebhookConfiguration constructs an declarative configuration of the ValidatingWebhookConfiguration type for use with\n// apply.\nfunc ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a\n// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractValidatingWebhookConfigurationStatus is the same as ExtractValidatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingWebhookConfigurationStatus(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string, subresource string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// WebhookClientConfigApplyConfiguration represents an declarative configuration of the WebhookClientConfig type for use\n// with apply.\ntype WebhookClientConfigApplyConfiguration struct {\n\tURL      *string                             `json:\"url,omitempty\"`\n\tService  *ServiceReferenceApplyConfiguration `json:\"service,omitempty\"`\n\tCABundle []byte                              `json:\"caBundle,omitempty\"`\n}\n\n// WebhookClientConfigApplyConfiguration constructs an declarative configuration of the WebhookClientConfig type for use with\n// apply.\nfunc WebhookClientConfig() *WebhookClientConfigApplyConfiguration {\n\treturn &WebhookClientConfigApplyConfiguration{}\n}\n\n// WithURL sets the URL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the URL field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration {\n\tb.URL = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithCABundle adds the given value to the CABundle field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CABundle field.\nfunc (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.CABundle = append(b.CABundle, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ServerStorageVersionApplyConfiguration represents an declarative configuration of the ServerStorageVersion type for use\n// with apply.\ntype ServerStorageVersionApplyConfiguration struct {\n\tAPIServerID       *string  `json:\"apiServerID,omitempty\"`\n\tEncodingVersion   *string  `json:\"encodingVersion,omitempty\"`\n\tDecodableVersions []string `json:\"decodableVersions,omitempty\"`\n}\n\n// ServerStorageVersionApplyConfiguration constructs an declarative configuration of the ServerStorageVersion type for use with\n// apply.\nfunc ServerStorageVersion() *ServerStorageVersionApplyConfiguration {\n\treturn &ServerStorageVersionApplyConfiguration{}\n}\n\n// WithAPIServerID sets the APIServerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIServerID field is set to the value of the last call.\nfunc (b *ServerStorageVersionApplyConfiguration) WithAPIServerID(value string) *ServerStorageVersionApplyConfiguration {\n\tb.APIServerID = &value\n\treturn b\n}\n\n// WithEncodingVersion sets the EncodingVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EncodingVersion field is set to the value of the last call.\nfunc (b *ServerStorageVersionApplyConfiguration) WithEncodingVersion(value string) *ServerStorageVersionApplyConfiguration {\n\tb.EncodingVersion = &value\n\treturn b\n}\n\n// WithDecodableVersions adds the given value to the DecodableVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the DecodableVersions field.\nfunc (b *ServerStorageVersionApplyConfiguration) WithDecodableVersions(values ...string) *ServerStorageVersionApplyConfiguration {\n\tfor i := range values {\n\t\tb.DecodableVersions = append(b.DecodableVersions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageVersionApplyConfiguration represents an declarative configuration of the StorageVersion type for use\n// with apply.\ntype StorageVersionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *v1alpha1.StorageVersionSpec            `json:\"spec,omitempty\"`\n\tStatus                           *StorageVersionStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StorageVersion constructs an declarative configuration of the StorageVersion type for use with\n// apply.\nfunc StorageVersion(name string) *StorageVersionApplyConfiguration {\n\tb := &StorageVersionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageVersion\")\n\tb.WithAPIVersion(\"internal.apiserver.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractStorageVersion extracts the applied configuration owned by fieldManager from\n// storageVersion. If no managedFields are found in storageVersion for fieldManager, a\n// StorageVersionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageVersion must be a unmodified StorageVersion API object that was retrieved from the Kubernetes API.\n// ExtractStorageVersion provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageVersion(storageVersion *v1alpha1.StorageVersion, fieldManager string) (*StorageVersionApplyConfiguration, error) {\n\treturn extractStorageVersion(storageVersion, fieldManager, \"\")\n}\n\n// ExtractStorageVersionStatus is the same as ExtractStorageVersion except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageVersionStatus(storageVersion *v1alpha1.StorageVersion, fieldManager string) (*StorageVersionApplyConfiguration, error) {\n\treturn extractStorageVersion(storageVersion, fieldManager, \"status\")\n}\n\nfunc extractStorageVersion(storageVersion *v1alpha1.StorageVersion, fieldManager string, subresource string) (*StorageVersionApplyConfiguration, error) {\n\tb := &StorageVersionApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageVersion, internal.Parser().Type(\"io.k8s.api.apiserverinternal.v1alpha1.StorageVersion\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageVersion.Name)\n\n\tb.WithKind(\"StorageVersion\")\n\tb.WithAPIVersion(\"internal.apiserver.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithKind(value string) *StorageVersionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithAPIVersion(value string) *StorageVersionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithName(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithGenerateName(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithNamespace(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithUID(value types.UID) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithResourceVersion(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithGeneration(value int64) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageVersionApplyConfiguration) WithLabels(entries map[string]string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageVersionApplyConfiguration) WithAnnotations(entries map[string]string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageVersionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageVersionApplyConfiguration) WithFinalizers(values ...string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageVersionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithSpec(value v1alpha1.StorageVersionSpec) *StorageVersionApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithStatus(value *StorageVersionStatusApplyConfiguration) *StorageVersionApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StorageVersionConditionApplyConfiguration represents an declarative configuration of the StorageVersionCondition type for use\n// with apply.\ntype StorageVersionConditionApplyConfiguration struct {\n\tType               *v1alpha1.StorageVersionConditionType `json:\"type,omitempty\"`\n\tStatus             *v1alpha1.ConditionStatus             `json:\"status,omitempty\"`\n\tObservedGeneration *int64                                `json:\"observedGeneration,omitempty\"`\n\tLastTransitionTime *v1.Time                              `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                               `json:\"reason,omitempty\"`\n\tMessage            *string                               `json:\"message,omitempty\"`\n}\n\n// StorageVersionConditionApplyConfiguration constructs an declarative configuration of the StorageVersionCondition type for use with\n// apply.\nfunc StorageVersionCondition() *StorageVersionConditionApplyConfiguration {\n\treturn &StorageVersionConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithType(value v1alpha1.StorageVersionConditionType) *StorageVersionConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *StorageVersionConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithObservedGeneration(value int64) *StorageVersionConditionApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *StorageVersionConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithReason(value string) *StorageVersionConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithMessage(value string) *StorageVersionConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionStatusApplyConfiguration represents an declarative configuration of the StorageVersionStatus type for use\n// with apply.\ntype StorageVersionStatusApplyConfiguration struct {\n\tStorageVersions       []ServerStorageVersionApplyConfiguration    `json:\"storageVersions,omitempty\"`\n\tCommonEncodingVersion *string                                     `json:\"commonEncodingVersion,omitempty\"`\n\tConditions            []StorageVersionConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// StorageVersionStatusApplyConfiguration constructs an declarative configuration of the StorageVersionStatus type for use with\n// apply.\nfunc StorageVersionStatus() *StorageVersionStatusApplyConfiguration {\n\treturn &StorageVersionStatusApplyConfiguration{}\n}\n\n// WithStorageVersions adds the given value to the StorageVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the StorageVersions field.\nfunc (b *StorageVersionStatusApplyConfiguration) WithStorageVersions(values ...*ServerStorageVersionApplyConfiguration) *StorageVersionStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithStorageVersions\")\n\t\t}\n\t\tb.StorageVersions = append(b.StorageVersions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCommonEncodingVersion sets the CommonEncodingVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CommonEncodingVersion field is set to the value of the last call.\nfunc (b *StorageVersionStatusApplyConfiguration) WithCommonEncodingVersion(value string) *StorageVersionStatusApplyConfiguration {\n\tb.CommonEncodingVersion = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StorageVersionStatusApplyConfiguration) WithConditions(values ...*StorageVersionConditionApplyConfiguration) *StorageVersionStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                             *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                         *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *appsv1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *appsv1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *appsv1.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs an declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *apiappsv1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *apiappsv1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *apiappsv1.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.apps.v1.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *v1.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus    `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                    `json:\"reason,omitempty\"`\n\tMessage            *string                    `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value v1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *v1.LabelSelectorApplyConfiguration        `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1.DaemonSetUpdateStrategyType           `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs an declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *apiappsv1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *apiappsv1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *apiappsv1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *v1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus     `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                     `json:\"reason,omitempty\"`\n\tMessage            *string                     `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value v1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *v1.DeploymentStrategyType                 `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value v1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *apiappsv1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *apiappsv1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *apiappsv1.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.apps.v1.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *v1.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus     `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                     `json:\"reason,omitempty\"`\n\tMessage            *string                     `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value v1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs an declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *apiappsv1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *apiappsv1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *apiappsv1.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *v1.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus      `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                 `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                      `json:\"reason,omitempty\"`\n\tMessage            *string                      `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value v1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *v1.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *v1.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value v1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value v1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *v1.LabelSelectorApplyConfiguration                                `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *appsv1.PodManagementPolicyType                                    `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value appsv1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1.StatefulSetUpdateStrategyType                   `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                             *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                         *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *v1beta1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *v1beta1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *v1beta1.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs an declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *appsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *appsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *appsv1beta1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *v1beta1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus              `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                     `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value v1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tRollbackTo              *RollbackConfigApplyConfiguration         `json:\"rollbackTo,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollbackTo field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.RollbackTo = value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *v1beta1.DeploymentStrategyType            `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RollbackConfigApplyConfiguration represents an declarative configuration of the RollbackConfig type for use\n// with apply.\ntype RollbackConfigApplyConfiguration struct {\n\tRevision *int64 `json:\"revision,omitempty\"`\n}\n\n// RollbackConfigApplyConfiguration constructs an declarative configuration of the RollbackConfig type for use with\n// apply.\nfunc RollbackConfig() *RollbackConfigApplyConfiguration {\n\treturn &RollbackConfigApplyConfiguration{}\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs an declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *appsv1beta1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *appsv1beta1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *appsv1beta1.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *v1beta1.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus               `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                      `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                           `json:\"reason,omitempty\"`\n\tMessage            *string                           `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value v1beta1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *v1beta1.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *v1beta1.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value v1beta1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value v1beta1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *v1.LabelSelectorApplyConfiguration                                `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *v1beta1.PodManagementPolicyType                                   `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value v1beta1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1beta1.StatefulSetUpdateStrategyType              `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1beta1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                             *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                         *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *v1beta2.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *v1beta2.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *v1beta2.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs an declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *appsv1beta2.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *appsv1beta2.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *appsv1beta2.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *v1beta2.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus             `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                         `json:\"reason,omitempty\"`\n\tMessage            *string                         `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value v1beta2.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *v1.LabelSelectorApplyConfiguration        `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1beta2.DaemonSetUpdateStrategyType      `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1beta2.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs an declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *appsv1beta2.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *appsv1beta2.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *appsv1beta2.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *v1beta2.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus              `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                     `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value v1beta2.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *v1beta2.DeploymentStrategyType            `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta2.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *appsv1beta2.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *appsv1beta2.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *appsv1beta2.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *v1beta2.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus              `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value v1beta2.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents an declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *v1beta2.ScaleSpec   `json:\"spec,omitempty\"`\n\tStatus                           *v1beta2.ScaleStatus `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs an declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value v1beta2.ScaleSpec) *ScaleApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value v1beta2.ScaleStatus) *ScaleApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs an declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *appsv1beta2.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *appsv1beta2.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *appsv1beta2.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *v1beta2.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus               `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                      `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                           `json:\"reason,omitempty\"`\n\tMessage            *string                           `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value v1beta2.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *v1beta2.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *v1beta2.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs an declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value v1beta2.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value v1beta2.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *v1.LabelSelectorApplyConfiguration                                `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *v1beta2.PodManagementPolicyType                                   `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value v1beta2.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1beta2.StatefulSetUpdateStrategyType              `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1beta2.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapiautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *apiautoscalingv1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *apiautoscalingv1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *apiautoscalingv1.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef                 *CrossVersionObjectReferenceApplyConfiguration `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas                    *int32                                         `json:\"minReplicas,omitempty\"`\n\tMaxReplicas                    *int32                                         `json:\"maxReplicas,omitempty\"`\n\tTargetCPUUtilizationPercentage *int32                                         `json:\"targetCPUUtilizationPercentage,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithTargetCPUUtilizationPercentage sets the TargetCPUUtilizationPercentage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetCPUUtilizationPercentage field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithTargetCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.TargetCPUUtilizationPercentage = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration              *int64   `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime                   *v1.Time `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas                 *int32   `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas                 *int32   `json:\"desiredReplicas,omitempty\"`\n\tCurrentCPUUtilizationPercentage *int32   `json:\"currentCPUUtilizationPercentage,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentCPUUtilizationPercentage sets the CurrentCPUUtilizationPercentage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentCPUUtilizationPercentage field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentCPUUtilizationPercentage = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents an declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ScaleSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ScaleStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs an declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value *ScaleSpecApplyConfiguration) *ScaleApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value *ScaleStatusApplyConfiguration) *ScaleApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleSpecApplyConfiguration represents an declarative configuration of the ScaleSpec type for use\n// with apply.\ntype ScaleSpecApplyConfiguration struct {\n\tReplicas *int32 `json:\"replicas,omitempty\"`\n}\n\n// ScaleSpecApplyConfiguration constructs an declarative configuration of the ScaleSpec type for use with\n// apply.\nfunc ScaleSpec() *ScaleSpecApplyConfiguration {\n\treturn &ScaleSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ScaleSpecApplyConfiguration) WithReplicas(value int32) *ScaleSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleStatusApplyConfiguration represents an declarative configuration of the ScaleStatus type for use\n// with apply.\ntype ScaleStatusApplyConfiguration struct {\n\tReplicas *int32  `json:\"replicas,omitempty\"`\n\tSelector *string `json:\"selector,omitempty\"`\n}\n\n// ScaleStatusApplyConfiguration constructs an declarative configuration of the ScaleStatus type for use with\n// apply.\nfunc ScaleStatus() *ScaleStatusApplyConfiguration {\n\treturn &ScaleStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ScaleStatusApplyConfiguration) WithReplicas(value int32) *ScaleStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ScaleStatusApplyConfiguration) WithSelector(value string) *ScaleStatusApplyConfiguration {\n\tb.Selector = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents an declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName      *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget    *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n\tContainer *string                         `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents an declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName      *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent   *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n\tContainer *string                              `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ExternalMetricSourceApplyConfiguration represents an declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs an declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ExternalMetricStatusApplyConfiguration represents an declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs an declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerbehavior.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerBehavior type for use\n// with apply.\ntype HorizontalPodAutoscalerBehaviorApplyConfiguration struct {\n\tScaleUp   *HPAScalingRulesApplyConfiguration `json:\"scaleUp,omitempty\"`\n\tScaleDown *HPAScalingRulesApplyConfiguration `json:\"scaleDown,omitempty\"`\n}\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerBehavior type for use with\n// apply.\nfunc HorizontalPodAutoscalerBehavior() *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\treturn &HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n}\n\n// WithScaleUp sets the ScaleUp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleUp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleUp(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleUp = value\n\treturn b\n}\n\n// WithScaleDown sets the ScaleDown field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleDown field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleDown(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleDown = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *v2.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                      `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                             `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                  `json:\"reason,omitempty\"`\n\tMessage            *string                                  `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value v2.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration     `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                             `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                             `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                     `json:\"metrics,omitempty\"`\n\tBehavior       *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:\"behavior,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithBehavior sets the Behavior field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Behavior field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.Behavior = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// HPAScalingPolicyApplyConfiguration represents an declarative configuration of the HPAScalingPolicy type for use\n// with apply.\ntype HPAScalingPolicyApplyConfiguration struct {\n\tType          *v2.HPAScalingPolicyType `json:\"type,omitempty\"`\n\tValue         *int32                   `json:\"value,omitempty\"`\n\tPeriodSeconds *int32                   `json:\"periodSeconds,omitempty\"`\n}\n\n// HPAScalingPolicyApplyConfiguration constructs an declarative configuration of the HPAScalingPolicy type for use with\n// apply.\nfunc HPAScalingPolicy() *HPAScalingPolicyApplyConfiguration {\n\treturn &HPAScalingPolicyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithType(value v2.HPAScalingPolicyType) *HPAScalingPolicyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithValue(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithPeriodSeconds(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingrules.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// HPAScalingRulesApplyConfiguration represents an declarative configuration of the HPAScalingRules type for use\n// with apply.\ntype HPAScalingRulesApplyConfiguration struct {\n\tStabilizationWindowSeconds *int32                               `json:\"stabilizationWindowSeconds,omitempty\"`\n\tSelectPolicy               *v2.ScalingPolicySelect              `json:\"selectPolicy,omitempty\"`\n\tPolicies                   []HPAScalingPolicyApplyConfiguration `json:\"policies,omitempty\"`\n}\n\n// HPAScalingRulesApplyConfiguration constructs an declarative configuration of the HPAScalingRules type for use with\n// apply.\nfunc HPAScalingRules() *HPAScalingRulesApplyConfiguration {\n\treturn &HPAScalingRulesApplyConfiguration{}\n}\n\n// WithStabilizationWindowSeconds sets the StabilizationWindowSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StabilizationWindowSeconds field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithStabilizationWindowSeconds(value int32) *HPAScalingRulesApplyConfiguration {\n\tb.StabilizationWindowSeconds = &value\n\treturn b\n}\n\n// WithSelectPolicy sets the SelectPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SelectPolicy field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithSelectPolicy(value v2.ScalingPolicySelect) *HPAScalingRulesApplyConfiguration {\n\tb.SelectPolicy = &value\n\treturn b\n}\n\n// WithPolicies adds the given value to the Policies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Policies field.\nfunc (b *HPAScalingRulesApplyConfiguration) WithPolicies(values ...*HPAScalingPolicyApplyConfiguration) *HPAScalingRulesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPolicies\")\n\t\t}\n\t\tb.Policies = append(b.Policies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricidentifier.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MetricIdentifierApplyConfiguration represents an declarative configuration of the MetricIdentifier type for use\n// with apply.\ntype MetricIdentifierApplyConfiguration struct {\n\tName     *string                             `json:\"name,omitempty\"`\n\tSelector *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// MetricIdentifierApplyConfiguration constructs an declarative configuration of the MetricIdentifier type for use with\n// apply.\nfunc MetricIdentifier() *MetricIdentifierApplyConfiguration {\n\treturn &MetricIdentifierApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithName(value string) *MetricIdentifierApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *MetricIdentifierApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// MetricSpecApplyConfiguration represents an declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *v2.MetricSourceType                             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs an declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value v2.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// MetricStatusApplyConfiguration represents an declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *v2.MetricSourceType                             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs an declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value v2.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metrictarget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricTargetApplyConfiguration represents an declarative configuration of the MetricTarget type for use\n// with apply.\ntype MetricTargetApplyConfiguration struct {\n\tType               *v2.MetricTargetType `json:\"type,omitempty\"`\n\tValue              *resource.Quantity   `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity   `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32               `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricTargetApplyConfiguration constructs an declarative configuration of the MetricTarget type for use with\n// apply.\nfunc MetricTarget() *MetricTargetApplyConfiguration {\n\treturn &MetricTargetApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithType(value v2.MetricTargetType) *MetricTargetApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageUtilization(value int32) *MetricTargetApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricvaluestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricValueStatusApplyConfiguration represents an declarative configuration of the MetricValueStatus type for use\n// with apply.\ntype MetricValueStatusApplyConfiguration struct {\n\tValue              *resource.Quantity `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32             `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricValueStatusApplyConfiguration constructs an declarative configuration of the MetricValueStatus type for use with\n// apply.\nfunc MetricValueStatus() *MetricValueStatusApplyConfiguration {\n\treturn &MetricValueStatusApplyConfiguration{}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageUtilization(value int32) *MetricValueStatusApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ObjectMetricSourceApplyConfiguration represents an declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n\tTarget          *MetricTargetApplyConfiguration                `json:\"target,omitempty\"`\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs an declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ObjectMetricStatusApplyConfiguration represents an declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n\tCurrent         *MetricValueStatusApplyConfiguration           `json:\"current,omitempty\"`\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs an declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// PodsMetricSourceApplyConfiguration represents an declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs an declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// PodsMetricStatusApplyConfiguration represents an declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs an declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents an declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName   *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents an declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName    *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents an declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName                     *v1.ResourceName   `json:\"name,omitempty\"`\n\tTargetAverageUtilization *int32             `json:\"targetAverageUtilization,omitempty\"`\n\tTargetAverageValue       *resource.Quantity `json:\"targetAverageValue,omitempty\"`\n\tContainer                *string            `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageUtilization field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageUtilization = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents an declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName                      *v1.ResourceName   `json:\"name,omitempty\"`\n\tCurrentAverageUtilization *int32             `json:\"currentAverageUtilization,omitempty\"`\n\tCurrentAverageValue       *resource.Quantity `json:\"currentAverageValue,omitempty\"`\n\tContainer                 *string            `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageUtilization = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ExternalMetricSourceApplyConfiguration represents an declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetricName         *string                             `json:\"metricName,omitempty\"`\n\tMetricSelector     *v1.LabelSelectorApplyConfiguration `json:\"metricSelector,omitempty\"`\n\tTargetValue        *resource.Quantity                  `json:\"targetValue,omitempty\"`\n\tTargetAverageValue *resource.Quantity                  `json:\"targetAverageValue,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs an declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetricName(value string) *ExternalMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricSelector field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.MetricSelector = value\n\treturn b\n}\n\n// WithTargetValue sets the TargetValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetValue field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration {\n\tb.TargetValue = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ExternalMetricStatusApplyConfiguration represents an declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetricName          *string                             `json:\"metricName,omitempty\"`\n\tMetricSelector      *v1.LabelSelectorApplyConfiguration `json:\"metricSelector,omitempty\"`\n\tCurrentValue        *resource.Quantity                  `json:\"currentValue,omitempty\"`\n\tCurrentAverageValue *resource.Quantity                  `json:\"currentAverageValue,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs an declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetricName(value string) *ExternalMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricSelector field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.MetricSelector = value\n\treturn b\n}\n\n// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentValue field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration {\n\tb.CurrentValue = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta1\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *v2beta1.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                           `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                  `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                       `json:\"reason,omitempty\"`\n\tMessage            *string                                       `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value v2beta1.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                         `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                         `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                 `json:\"metrics,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n)\n\n// MetricSpecApplyConfiguration represents an declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *v2beta1.MetricSourceType                        `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs an declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value v2beta1.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n)\n\n// MetricStatusApplyConfiguration represents an declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *v2beta1.MetricSourceType                        `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs an declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value v2beta1.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ObjectMetricSourceApplyConfiguration represents an declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tTarget       *CrossVersionObjectReferenceApplyConfiguration `json:\"target,omitempty\"`\n\tMetricName   *string                                        `json:\"metricName,omitempty\"`\n\tTargetValue  *resource.Quantity                             `json:\"targetValue,omitempty\"`\n\tSelector     *v1.LabelSelectorApplyConfiguration            `json:\"selector,omitempty\"`\n\tAverageValue *resource.Quantity                             `json:\"averageValue,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs an declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetricName(value string) *ObjectMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithTargetValue sets the TargetValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetValue field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration {\n\tb.TargetValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ObjectMetricStatusApplyConfiguration represents an declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tTarget       *CrossVersionObjectReferenceApplyConfiguration `json:\"target,omitempty\"`\n\tMetricName   *string                                        `json:\"metricName,omitempty\"`\n\tCurrentValue *resource.Quantity                             `json:\"currentValue,omitempty\"`\n\tSelector     *v1.LabelSelectorApplyConfiguration            `json:\"selector,omitempty\"`\n\tAverageValue *resource.Quantity                             `json:\"averageValue,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs an declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetricName(value string) *ObjectMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentValue field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration {\n\tb.CurrentValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodsMetricSourceApplyConfiguration represents an declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetricName         *string                             `json:\"metricName,omitempty\"`\n\tTargetAverageValue *resource.Quantity                  `json:\"targetAverageValue,omitempty\"`\n\tSelector           *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs an declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetricName(value string) *PodsMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *PodsMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodsMetricStatusApplyConfiguration represents an declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetricName          *string                             `json:\"metricName,omitempty\"`\n\tCurrentAverageValue *resource.Quantity                  `json:\"currentAverageValue,omitempty\"`\n\tSelector            *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs an declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetricName(value string) *PodsMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *PodsMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents an declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName                     *v1.ResourceName   `json:\"name,omitempty\"`\n\tTargetAverageUtilization *int32             `json:\"targetAverageUtilization,omitempty\"`\n\tTargetAverageValue       *resource.Quantity `json:\"targetAverageValue,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageUtilization field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageUtilization = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents an declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName                      *v1.ResourceName   `json:\"name,omitempty\"`\n\tCurrentAverageUtilization *int32             `json:\"currentAverageUtilization,omitempty\"`\n\tCurrentAverageValue       *resource.Quantity `json:\"currentAverageValue,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageUtilization = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents an declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName      *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget    *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n\tContainer *string                         `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents an declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName      *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent   *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n\tContainer *string                              `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ExternalMetricSourceApplyConfiguration represents an declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs an declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ExternalMetricStatusApplyConfiguration represents an declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs an declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta2\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerBehavior type for use\n// with apply.\ntype HorizontalPodAutoscalerBehaviorApplyConfiguration struct {\n\tScaleUp   *HPAScalingRulesApplyConfiguration `json:\"scaleUp,omitempty\"`\n\tScaleDown *HPAScalingRulesApplyConfiguration `json:\"scaleDown,omitempty\"`\n}\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerBehavior type for use with\n// apply.\nfunc HorizontalPodAutoscalerBehavior() *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\treturn &HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n}\n\n// WithScaleUp sets the ScaleUp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleUp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleUp(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleUp = value\n\treturn b\n}\n\n// WithScaleDown sets the ScaleDown field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleDown field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleDown(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleDown = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *v2beta2.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                           `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                  `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                       `json:\"reason,omitempty\"`\n\tMessage            *string                                       `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value v2beta2.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration     `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                             `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                             `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                     `json:\"metrics,omitempty\"`\n\tBehavior       *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:\"behavior,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithBehavior sets the Behavior field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Behavior field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.Behavior = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// HPAScalingPolicyApplyConfiguration represents an declarative configuration of the HPAScalingPolicy type for use\n// with apply.\ntype HPAScalingPolicyApplyConfiguration struct {\n\tType          *v2beta2.HPAScalingPolicyType `json:\"type,omitempty\"`\n\tValue         *int32                        `json:\"value,omitempty\"`\n\tPeriodSeconds *int32                        `json:\"periodSeconds,omitempty\"`\n}\n\n// HPAScalingPolicyApplyConfiguration constructs an declarative configuration of the HPAScalingPolicy type for use with\n// apply.\nfunc HPAScalingPolicy() *HPAScalingPolicyApplyConfiguration {\n\treturn &HPAScalingPolicyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithType(value v2beta2.HPAScalingPolicyType) *HPAScalingPolicyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithValue(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithPeriodSeconds(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// HPAScalingRulesApplyConfiguration represents an declarative configuration of the HPAScalingRules type for use\n// with apply.\ntype HPAScalingRulesApplyConfiguration struct {\n\tStabilizationWindowSeconds *int32                               `json:\"stabilizationWindowSeconds,omitempty\"`\n\tSelectPolicy               *v2beta2.ScalingPolicySelect         `json:\"selectPolicy,omitempty\"`\n\tPolicies                   []HPAScalingPolicyApplyConfiguration `json:\"policies,omitempty\"`\n}\n\n// HPAScalingRulesApplyConfiguration constructs an declarative configuration of the HPAScalingRules type for use with\n// apply.\nfunc HPAScalingRules() *HPAScalingRulesApplyConfiguration {\n\treturn &HPAScalingRulesApplyConfiguration{}\n}\n\n// WithStabilizationWindowSeconds sets the StabilizationWindowSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StabilizationWindowSeconds field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithStabilizationWindowSeconds(value int32) *HPAScalingRulesApplyConfiguration {\n\tb.StabilizationWindowSeconds = &value\n\treturn b\n}\n\n// WithSelectPolicy sets the SelectPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SelectPolicy field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithSelectPolicy(value v2beta2.ScalingPolicySelect) *HPAScalingRulesApplyConfiguration {\n\tb.SelectPolicy = &value\n\treturn b\n}\n\n// WithPolicies adds the given value to the Policies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Policies field.\nfunc (b *HPAScalingRulesApplyConfiguration) WithPolicies(values ...*HPAScalingPolicyApplyConfiguration) *HPAScalingRulesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPolicies\")\n\t\t}\n\t\tb.Policies = append(b.Policies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MetricIdentifierApplyConfiguration represents an declarative configuration of the MetricIdentifier type for use\n// with apply.\ntype MetricIdentifierApplyConfiguration struct {\n\tName     *string                             `json:\"name,omitempty\"`\n\tSelector *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// MetricIdentifierApplyConfiguration constructs an declarative configuration of the MetricIdentifier type for use with\n// apply.\nfunc MetricIdentifier() *MetricIdentifierApplyConfiguration {\n\treturn &MetricIdentifierApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithName(value string) *MetricIdentifierApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *MetricIdentifierApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// MetricSpecApplyConfiguration represents an declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *v2beta2.MetricSourceType                        `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs an declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value v2beta2.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// MetricStatusApplyConfiguration represents an declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *v2beta2.MetricSourceType                        `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs an declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value v2beta2.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricTargetApplyConfiguration represents an declarative configuration of the MetricTarget type for use\n// with apply.\ntype MetricTargetApplyConfiguration struct {\n\tType               *v2beta2.MetricTargetType `json:\"type,omitempty\"`\n\tValue              *resource.Quantity        `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity        `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32                    `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricTargetApplyConfiguration constructs an declarative configuration of the MetricTarget type for use with\n// apply.\nfunc MetricTarget() *MetricTargetApplyConfiguration {\n\treturn &MetricTargetApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithType(value v2beta2.MetricTargetType) *MetricTargetApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageUtilization(value int32) *MetricTargetApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricValueStatusApplyConfiguration represents an declarative configuration of the MetricValueStatus type for use\n// with apply.\ntype MetricValueStatusApplyConfiguration struct {\n\tValue              *resource.Quantity `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32             `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricValueStatusApplyConfiguration constructs an declarative configuration of the MetricValueStatus type for use with\n// apply.\nfunc MetricValueStatus() *MetricValueStatusApplyConfiguration {\n\treturn &MetricValueStatusApplyConfiguration{}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageUtilization(value int32) *MetricValueStatusApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ObjectMetricSourceApplyConfiguration represents an declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n\tTarget          *MetricTargetApplyConfiguration                `json:\"target,omitempty\"`\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs an declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ObjectMetricStatusApplyConfiguration represents an declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n\tCurrent         *MetricValueStatusApplyConfiguration           `json:\"current,omitempty\"`\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs an declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// PodsMetricSourceApplyConfiguration represents an declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs an declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// PodsMetricStatusApplyConfiguration represents an declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs an declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents an declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName   *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents an declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName    *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapibatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CronJobApplyConfiguration represents an declarative configuration of the CronJob type for use\n// with apply.\ntype CronJobApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CronJobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CronJobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CronJob constructs an declarative configuration of the CronJob type for use with\n// apply.\nfunc CronJob(name, namespace string) *CronJobApplyConfiguration {\n\tb := &CronJobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b\n}\n\n// ExtractCronJob extracts the applied configuration owned by fieldManager from\n// cronJob. If no managedFields are found in cronJob for fieldManager, a\n// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API.\n// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCronJob(cronJob *apibatchv1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"\")\n}\n\n// ExtractCronJobStatus is the same as ExtractCronJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCronJobStatus(cronJob *apibatchv1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"status\")\n}\n\nfunc extractCronJob(cronJob *apibatchv1.CronJob, fieldManager string, subresource string) (*CronJobApplyConfiguration, error) {\n\tb := &CronJobApplyConfiguration{}\n\terr := managedfields.ExtractInto(cronJob, internal.Parser().Type(\"io.k8s.api.batch.v1.CronJob\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cronJob.Name)\n\tb.WithNamespace(cronJob.Namespace)\n\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n)\n\n// CronJobSpecApplyConfiguration represents an declarative configuration of the CronJobSpec type for use\n// with apply.\ntype CronJobSpecApplyConfiguration struct {\n\tSchedule                   *string                            `json:\"schedule,omitempty\"`\n\tTimeZone                   *string                            `json:\"timeZone,omitempty\"`\n\tStartingDeadlineSeconds    *int64                             `json:\"startingDeadlineSeconds,omitempty\"`\n\tConcurrencyPolicy          *v1.ConcurrencyPolicy              `json:\"concurrencyPolicy,omitempty\"`\n\tSuspend                    *bool                              `json:\"suspend,omitempty\"`\n\tJobTemplate                *JobTemplateSpecApplyConfiguration `json:\"jobTemplate,omitempty\"`\n\tSuccessfulJobsHistoryLimit *int32                             `json:\"successfulJobsHistoryLimit,omitempty\"`\n\tFailedJobsHistoryLimit     *int32                             `json:\"failedJobsHistoryLimit,omitempty\"`\n}\n\n// CronJobSpecApplyConfiguration constructs an declarative configuration of the CronJobSpec type for use with\n// apply.\nfunc CronJobSpec() *CronJobSpecApplyConfiguration {\n\treturn &CronJobSpecApplyConfiguration{}\n}\n\n// WithSchedule sets the Schedule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Schedule field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration {\n\tb.Schedule = &value\n\treturn b\n}\n\n// WithTimeZone sets the TimeZone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeZone field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithTimeZone(value string) *CronJobSpecApplyConfiguration {\n\tb.TimeZone = &value\n\treturn b\n}\n\n// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration {\n\tb.StartingDeadlineSeconds = &value\n\treturn b\n}\n\n// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value v1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration {\n\tb.ConcurrencyPolicy = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n\n// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the JobTemplate field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration {\n\tb.JobTemplate = value\n\treturn b\n}\n\n// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.SuccessfulJobsHistoryLimit = &value\n\treturn b\n}\n\n// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.FailedJobsHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// CronJobStatusApplyConfiguration represents an declarative configuration of the CronJobStatus type for use\n// with apply.\ntype CronJobStatusApplyConfiguration struct {\n\tActive             []v1.ObjectReferenceApplyConfiguration `json:\"active,omitempty\"`\n\tLastScheduleTime   *metav1.Time                           `json:\"lastScheduleTime,omitempty\"`\n\tLastSuccessfulTime *metav1.Time                           `json:\"lastSuccessfulTime,omitempty\"`\n}\n\n// CronJobStatusApplyConfiguration constructs an declarative configuration of the CronJobStatus type for use with\n// apply.\nfunc CronJobStatus() *CronJobStatusApplyConfiguration {\n\treturn &CronJobStatusApplyConfiguration{}\n}\n\n// WithActive adds the given value to the Active field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Active field.\nfunc (b *CronJobStatusApplyConfiguration) WithActive(values ...*v1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithActive\")\n\t\t}\n\t\tb.Active = append(b.Active, *values[i])\n\t}\n\treturn b\n}\n\n// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScheduleTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastScheduleTime = &value\n\treturn b\n}\n\n// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastSuccessfulTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastSuccessfulTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapibatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobApplyConfiguration represents an declarative configuration of the Job type for use\n// with apply.\ntype JobApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *JobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *JobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Job constructs an declarative configuration of the Job type for use with\n// apply.\nfunc Job(name, namespace string) *JobApplyConfiguration {\n\tb := &JobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Job\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b\n}\n\n// ExtractJob extracts the applied configuration owned by fieldManager from\n// job. If no managedFields are found in job for fieldManager, a\n// JobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// job must be a unmodified Job API object that was retrieved from the Kubernetes API.\n// ExtractJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractJob(job *apibatchv1.Job, fieldManager string) (*JobApplyConfiguration, error) {\n\treturn extractJob(job, fieldManager, \"\")\n}\n\n// ExtractJobStatus is the same as ExtractJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractJobStatus(job *apibatchv1.Job, fieldManager string) (*JobApplyConfiguration, error) {\n\treturn extractJob(job, fieldManager, \"status\")\n}\n\nfunc extractJob(job *apibatchv1.Job, fieldManager string, subresource string) (*JobApplyConfiguration, error) {\n\tb := &JobApplyConfiguration{}\n\terr := managedfields.ExtractInto(job, internal.Parser().Type(\"io.k8s.api.batch.v1.Job\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(job.Name)\n\tb.WithNamespace(job.Namespace)\n\n\tb.WithKind(\"Job\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithKind(value string) *JobApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithAPIVersion(value string) *JobApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithName(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithGenerateName(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithNamespace(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithUID(value types.UID) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithResourceVersion(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithGeneration(value int64) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobApplyConfiguration) WithLabels(entries map[string]string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobApplyConfiguration) WithAnnotations(entries map[string]string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobApplyConfiguration) WithFinalizers(values ...string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithStatus(value *JobStatusApplyConfiguration) *JobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobConditionApplyConfiguration represents an declarative configuration of the JobCondition type for use\n// with apply.\ntype JobConditionApplyConfiguration struct {\n\tType               *v1.JobConditionType    `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time            `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time            `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                 `json:\"reason,omitempty\"`\n\tMessage            *string                 `json:\"message,omitempty\"`\n}\n\n// JobConditionApplyConfiguration constructs an declarative configuration of the JobCondition type for use with\n// apply.\nfunc JobCondition() *JobConditionApplyConfiguration {\n\treturn &JobConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithType(value v1.JobConditionType) *JobConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *JobConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *JobConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *JobConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithReason(value string) *JobConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithMessage(value string) *JobConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobSpecApplyConfiguration represents an declarative configuration of the JobSpec type for use\n// with apply.\ntype JobSpecApplyConfiguration struct {\n\tParallelism             *int32                                    `json:\"parallelism,omitempty\"`\n\tCompletions             *int32                                    `json:\"completions,omitempty\"`\n\tActiveDeadlineSeconds   *int64                                    `json:\"activeDeadlineSeconds,omitempty\"`\n\tPodFailurePolicy        *PodFailurePolicyApplyConfiguration       `json:\"podFailurePolicy,omitempty\"`\n\tBackoffLimit            *int32                                    `json:\"backoffLimit,omitempty\"`\n\tSelector                *metav1.LabelSelectorApplyConfiguration   `json:\"selector,omitempty\"`\n\tManualSelector          *bool                                     `json:\"manualSelector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tTTLSecondsAfterFinished *int32                                    `json:\"ttlSecondsAfterFinished,omitempty\"`\n\tCompletionMode          *batchv1.CompletionMode                   `json:\"completionMode,omitempty\"`\n\tSuspend                 *bool                                     `json:\"suspend,omitempty\"`\n}\n\n// JobSpecApplyConfiguration constructs an declarative configuration of the JobSpec type for use with\n// apply.\nfunc JobSpec() *JobSpecApplyConfiguration {\n\treturn &JobSpecApplyConfiguration{}\n}\n\n// WithParallelism sets the Parallelism field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parallelism field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithParallelism(value int32) *JobSpecApplyConfiguration {\n\tb.Parallelism = &value\n\treturn b\n}\n\n// WithCompletions sets the Completions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Completions field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithCompletions(value int32) *JobSpecApplyConfiguration {\n\tb.Completions = &value\n\treturn b\n}\n\n// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *JobSpecApplyConfiguration {\n\tb.ActiveDeadlineSeconds = &value\n\treturn b\n}\n\n// WithPodFailurePolicy sets the PodFailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFailurePolicy field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithPodFailurePolicy(value *PodFailurePolicyApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.PodFailurePolicy = value\n\treturn b\n}\n\n// WithBackoffLimit sets the BackoffLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BackoffLimit field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithBackoffLimit(value int32) *JobSpecApplyConfiguration {\n\tb.BackoffLimit = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithManualSelector sets the ManualSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ManualSelector field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithManualSelector(value bool) *JobSpecApplyConfiguration {\n\tb.ManualSelector = &value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithTTLSecondsAfterFinished sets the TTLSecondsAfterFinished field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTLSecondsAfterFinished field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithTTLSecondsAfterFinished(value int32) *JobSpecApplyConfiguration {\n\tb.TTLSecondsAfterFinished = &value\n\treturn b\n}\n\n// WithCompletionMode sets the CompletionMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletionMode field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithCompletionMode(value batchv1.CompletionMode) *JobSpecApplyConfiguration {\n\tb.CompletionMode = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithSuspend(value bool) *JobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobStatusApplyConfiguration represents an declarative configuration of the JobStatus type for use\n// with apply.\ntype JobStatusApplyConfiguration struct {\n\tConditions              []JobConditionApplyConfiguration           `json:\"conditions,omitempty\"`\n\tStartTime               *metav1.Time                               `json:\"startTime,omitempty\"`\n\tCompletionTime          *metav1.Time                               `json:\"completionTime,omitempty\"`\n\tActive                  *int32                                     `json:\"active,omitempty\"`\n\tSucceeded               *int32                                     `json:\"succeeded,omitempty\"`\n\tFailed                  *int32                                     `json:\"failed,omitempty\"`\n\tCompletedIndexes        *string                                    `json:\"completedIndexes,omitempty\"`\n\tUncountedTerminatedPods *UncountedTerminatedPodsApplyConfiguration `json:\"uncountedTerminatedPods,omitempty\"`\n\tReady                   *int32                                     `json:\"ready,omitempty\"`\n}\n\n// JobStatusApplyConfiguration constructs an declarative configuration of the JobStatus type for use with\n// apply.\nfunc JobStatus() *JobStatusApplyConfiguration {\n\treturn &JobStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *JobStatusApplyConfiguration) WithConditions(values ...*JobConditionApplyConfiguration) *JobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithStartTime sets the StartTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartTime field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithStartTime(value metav1.Time) *JobStatusApplyConfiguration {\n\tb.StartTime = &value\n\treturn b\n}\n\n// WithCompletionTime sets the CompletionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletionTime field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithCompletionTime(value metav1.Time) *JobStatusApplyConfiguration {\n\tb.CompletionTime = &value\n\treturn b\n}\n\n// WithActive sets the Active field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Active field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithActive(value int32) *JobStatusApplyConfiguration {\n\tb.Active = &value\n\treturn b\n}\n\n// WithSucceeded sets the Succeeded field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Succeeded field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithSucceeded(value int32) *JobStatusApplyConfiguration {\n\tb.Succeeded = &value\n\treturn b\n}\n\n// WithFailed sets the Failed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Failed field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithFailed(value int32) *JobStatusApplyConfiguration {\n\tb.Failed = &value\n\treturn b\n}\n\n// WithCompletedIndexes sets the CompletedIndexes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletedIndexes field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithCompletedIndexes(value string) *JobStatusApplyConfiguration {\n\tb.CompletedIndexes = &value\n\treturn b\n}\n\n// WithUncountedTerminatedPods sets the UncountedTerminatedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UncountedTerminatedPods field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithUncountedTerminatedPods(value *UncountedTerminatedPodsApplyConfiguration) *JobStatusApplyConfiguration {\n\tb.UncountedTerminatedPods = value\n\treturn b\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithReady(value int32) *JobStatusApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobTemplateSpecApplyConfiguration represents an declarative configuration of the JobTemplateSpec type for use\n// with apply.\ntype JobTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *JobSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// JobTemplateSpecApplyConfiguration constructs an declarative configuration of the JobTemplateSpec type for use with\n// apply.\nfunc JobTemplateSpec() *JobTemplateSpecApplyConfiguration {\n\treturn &JobTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodFailurePolicyApplyConfiguration represents an declarative configuration of the PodFailurePolicy type for use\n// with apply.\ntype PodFailurePolicyApplyConfiguration struct {\n\tRules []PodFailurePolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// PodFailurePolicyApplyConfiguration constructs an declarative configuration of the PodFailurePolicy type for use with\n// apply.\nfunc PodFailurePolicy() *PodFailurePolicyApplyConfiguration {\n\treturn &PodFailurePolicyApplyConfiguration{}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *PodFailurePolicyApplyConfiguration) WithRules(values ...*PodFailurePolicyRuleApplyConfiguration) *PodFailurePolicyApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonexitcodesrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n)\n\n// PodFailurePolicyOnExitCodesRequirementApplyConfiguration represents an declarative configuration of the PodFailurePolicyOnExitCodesRequirement type for use\n// with apply.\ntype PodFailurePolicyOnExitCodesRequirementApplyConfiguration struct {\n\tContainerName *string                                 `json:\"containerName,omitempty\"`\n\tOperator      *v1.PodFailurePolicyOnExitCodesOperator `json:\"operator,omitempty\"`\n\tValues        []int32                                 `json:\"values,omitempty\"`\n}\n\n// PodFailurePolicyOnExitCodesRequirementApplyConfiguration constructs an declarative configuration of the PodFailurePolicyOnExitCodesRequirement type for use with\n// apply.\nfunc PodFailurePolicyOnExitCodesRequirement() *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\treturn &PodFailurePolicyOnExitCodesRequirementApplyConfiguration{}\n}\n\n// WithContainerName sets the ContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerName field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithContainerName(value string) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tb.ContainerName = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithOperator(value v1.PodFailurePolicyOnExitCodesOperator) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithValues(values ...int32) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonpodconditionspattern.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PodFailurePolicyOnPodConditionsPatternApplyConfiguration represents an declarative configuration of the PodFailurePolicyOnPodConditionsPattern type for use\n// with apply.\ntype PodFailurePolicyOnPodConditionsPatternApplyConfiguration struct {\n\tType   *v1.PodConditionType `json:\"type,omitempty\"`\n\tStatus *v1.ConditionStatus  `json:\"status,omitempty\"`\n}\n\n// PodFailurePolicyOnPodConditionsPatternApplyConfiguration constructs an declarative configuration of the PodFailurePolicyOnPodConditionsPattern type for use with\n// apply.\nfunc PodFailurePolicyOnPodConditionsPattern() *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\treturn &PodFailurePolicyOnPodConditionsPatternApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnPodConditionsPatternApplyConfiguration) WithType(value v1.PodConditionType) *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnPodConditionsPatternApplyConfiguration) WithStatus(value v1.ConditionStatus) *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n)\n\n// PodFailurePolicyRuleApplyConfiguration represents an declarative configuration of the PodFailurePolicyRule type for use\n// with apply.\ntype PodFailurePolicyRuleApplyConfiguration struct {\n\tAction          *v1.PodFailurePolicyAction                                 `json:\"action,omitempty\"`\n\tOnExitCodes     *PodFailurePolicyOnExitCodesRequirementApplyConfiguration  `json:\"onExitCodes,omitempty\"`\n\tOnPodConditions []PodFailurePolicyOnPodConditionsPatternApplyConfiguration `json:\"onPodConditions,omitempty\"`\n}\n\n// PodFailurePolicyRuleApplyConfiguration constructs an declarative configuration of the PodFailurePolicyRule type for use with\n// apply.\nfunc PodFailurePolicyRule() *PodFailurePolicyRuleApplyConfiguration {\n\treturn &PodFailurePolicyRuleApplyConfiguration{}\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithAction(value v1.PodFailurePolicyAction) *PodFailurePolicyRuleApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithOnExitCodes sets the OnExitCodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OnExitCodes field is set to the value of the last call.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithOnExitCodes(value *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) *PodFailurePolicyRuleApplyConfiguration {\n\tb.OnExitCodes = value\n\treturn b\n}\n\n// WithOnPodConditions adds the given value to the OnPodConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OnPodConditions field.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithOnPodConditions(values ...*PodFailurePolicyOnPodConditionsPatternApplyConfiguration) *PodFailurePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOnPodConditions\")\n\t\t}\n\t\tb.OnPodConditions = append(b.OnPodConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/uncountedterminatedpods.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// UncountedTerminatedPodsApplyConfiguration represents an declarative configuration of the UncountedTerminatedPods type for use\n// with apply.\ntype UncountedTerminatedPodsApplyConfiguration struct {\n\tSucceeded []types.UID `json:\"succeeded,omitempty\"`\n\tFailed    []types.UID `json:\"failed,omitempty\"`\n}\n\n// UncountedTerminatedPodsApplyConfiguration constructs an declarative configuration of the UncountedTerminatedPods type for use with\n// apply.\nfunc UncountedTerminatedPods() *UncountedTerminatedPodsApplyConfiguration {\n\treturn &UncountedTerminatedPodsApplyConfiguration{}\n}\n\n// WithSucceeded adds the given value to the Succeeded field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Succeeded field.\nfunc (b *UncountedTerminatedPodsApplyConfiguration) WithSucceeded(values ...types.UID) *UncountedTerminatedPodsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Succeeded = append(b.Succeeded, values[i])\n\t}\n\treturn b\n}\n\n// WithFailed adds the given value to the Failed field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Failed field.\nfunc (b *UncountedTerminatedPodsApplyConfiguration) WithFailed(values ...types.UID) *UncountedTerminatedPodsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Failed = append(b.Failed, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CronJobApplyConfiguration represents an declarative configuration of the CronJob type for use\n// with apply.\ntype CronJobApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CronJobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CronJobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CronJob constructs an declarative configuration of the CronJob type for use with\n// apply.\nfunc CronJob(name, namespace string) *CronJobApplyConfiguration {\n\tb := &CronJobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1beta1\")\n\treturn b\n}\n\n// ExtractCronJob extracts the applied configuration owned by fieldManager from\n// cronJob. If no managedFields are found in cronJob for fieldManager, a\n// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API.\n// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCronJob(cronJob *batchv1beta1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"\")\n}\n\n// ExtractCronJobStatus is the same as ExtractCronJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCronJobStatus(cronJob *batchv1beta1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"status\")\n}\n\nfunc extractCronJob(cronJob *batchv1beta1.CronJob, fieldManager string, subresource string) (*CronJobApplyConfiguration, error) {\n\tb := &CronJobApplyConfiguration{}\n\terr := managedfields.ExtractInto(cronJob, internal.Parser().Type(\"io.k8s.api.batch.v1beta1.CronJob\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cronJob.Name)\n\tb.WithNamespace(cronJob.Namespace)\n\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/batch/v1beta1\"\n)\n\n// CronJobSpecApplyConfiguration represents an declarative configuration of the CronJobSpec type for use\n// with apply.\ntype CronJobSpecApplyConfiguration struct {\n\tSchedule                   *string                            `json:\"schedule,omitempty\"`\n\tTimeZone                   *string                            `json:\"timeZone,omitempty\"`\n\tStartingDeadlineSeconds    *int64                             `json:\"startingDeadlineSeconds,omitempty\"`\n\tConcurrencyPolicy          *v1beta1.ConcurrencyPolicy         `json:\"concurrencyPolicy,omitempty\"`\n\tSuspend                    *bool                              `json:\"suspend,omitempty\"`\n\tJobTemplate                *JobTemplateSpecApplyConfiguration `json:\"jobTemplate,omitempty\"`\n\tSuccessfulJobsHistoryLimit *int32                             `json:\"successfulJobsHistoryLimit,omitempty\"`\n\tFailedJobsHistoryLimit     *int32                             `json:\"failedJobsHistoryLimit,omitempty\"`\n}\n\n// CronJobSpecApplyConfiguration constructs an declarative configuration of the CronJobSpec type for use with\n// apply.\nfunc CronJobSpec() *CronJobSpecApplyConfiguration {\n\treturn &CronJobSpecApplyConfiguration{}\n}\n\n// WithSchedule sets the Schedule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Schedule field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration {\n\tb.Schedule = &value\n\treturn b\n}\n\n// WithTimeZone sets the TimeZone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeZone field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithTimeZone(value string) *CronJobSpecApplyConfiguration {\n\tb.TimeZone = &value\n\treturn b\n}\n\n// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration {\n\tb.StartingDeadlineSeconds = &value\n\treturn b\n}\n\n// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value v1beta1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration {\n\tb.ConcurrencyPolicy = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n\n// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the JobTemplate field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration {\n\tb.JobTemplate = value\n\treturn b\n}\n\n// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.SuccessfulJobsHistoryLimit = &value\n\treturn b\n}\n\n// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.FailedJobsHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// CronJobStatusApplyConfiguration represents an declarative configuration of the CronJobStatus type for use\n// with apply.\ntype CronJobStatusApplyConfiguration struct {\n\tActive             []v1.ObjectReferenceApplyConfiguration `json:\"active,omitempty\"`\n\tLastScheduleTime   *metav1.Time                           `json:\"lastScheduleTime,omitempty\"`\n\tLastSuccessfulTime *metav1.Time                           `json:\"lastSuccessfulTime,omitempty\"`\n}\n\n// CronJobStatusApplyConfiguration constructs an declarative configuration of the CronJobStatus type for use with\n// apply.\nfunc CronJobStatus() *CronJobStatusApplyConfiguration {\n\treturn &CronJobStatusApplyConfiguration{}\n}\n\n// WithActive adds the given value to the Active field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Active field.\nfunc (b *CronJobStatusApplyConfiguration) WithActive(values ...*v1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithActive\")\n\t\t}\n\t\tb.Active = append(b.Active, *values[i])\n\t}\n\treturn b\n}\n\n// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScheduleTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastScheduleTime = &value\n\treturn b\n}\n\n// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastSuccessfulTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastSuccessfulTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobTemplateSpecApplyConfiguration represents an declarative configuration of the JobTemplateSpec type for use\n// with apply.\ntype JobTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *batchv1.JobSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// JobTemplateSpecApplyConfiguration constructs an declarative configuration of the JobTemplateSpec type for use with\n// apply.\nfunc JobTemplateSpec() *JobTemplateSpecApplyConfiguration {\n\treturn &JobTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithSpec(value *batchv1.JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicertificatesv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CertificateSigningRequestApplyConfiguration represents an declarative configuration of the CertificateSigningRequest type for use\n// with apply.\ntype CertificateSigningRequestApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CertificateSigningRequestSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CertificateSigningRequestStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CertificateSigningRequest constructs an declarative configuration of the CertificateSigningRequest type for use with\n// apply.\nfunc CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from\n// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a\n// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API.\n// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCertificateSigningRequest(certificateSigningRequest *apicertificatesv1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"\")\n}\n\n// ExtractCertificateSigningRequestStatus is the same as ExtractCertificateSigningRequest except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCertificateSigningRequestStatus(certificateSigningRequest *apicertificatesv1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"status\")\n}\n\nfunc extractCertificateSigningRequest(certificateSigningRequest *apicertificatesv1.CertificateSigningRequest, fieldManager string, subresource string) (*CertificateSigningRequestApplyConfiguration, error) {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\terr := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type(\"io.k8s.api.certificates.v1.CertificateSigningRequest\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(certificateSigningRequest.Name)\n\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/certificates/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CertificateSigningRequestConditionApplyConfiguration represents an declarative configuration of the CertificateSigningRequestCondition type for use\n// with apply.\ntype CertificateSigningRequestConditionApplyConfiguration struct {\n\tType               *v1.RequestConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus  `json:\"status,omitempty\"`\n\tReason             *string                  `json:\"reason,omitempty\"`\n\tMessage            *string                  `json:\"message,omitempty\"`\n\tLastUpdateTime     *metav1.Time             `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time             `json:\"lastTransitionTime,omitempty\"`\n}\n\n// CertificateSigningRequestConditionApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestCondition type for use with\n// apply.\nfunc CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration {\n\treturn &CertificateSigningRequestConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value v1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/certificates/v1\"\n)\n\n// CertificateSigningRequestSpecApplyConfiguration represents an declarative configuration of the CertificateSigningRequestSpec type for use\n// with apply.\ntype CertificateSigningRequestSpecApplyConfiguration struct {\n\tRequest           []byte                   `json:\"request,omitempty\"`\n\tSignerName        *string                  `json:\"signerName,omitempty\"`\n\tExpirationSeconds *int32                   `json:\"expirationSeconds,omitempty\"`\n\tUsages            []v1.KeyUsage            `json:\"usages,omitempty\"`\n\tUsername          *string                  `json:\"username,omitempty\"`\n\tUID               *string                  `json:\"uid,omitempty\"`\n\tGroups            []string                 `json:\"groups,omitempty\"`\n\tExtra             map[string]v1.ExtraValue `json:\"extra,omitempty\"`\n}\n\n// CertificateSigningRequestSpecApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestSpec type for use with\n// apply.\nfunc CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration {\n\treturn &CertificateSigningRequestSpecApplyConfiguration{}\n}\n\n// WithRequest adds the given value to the Request field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Request field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Request = append(b.Request, values[i])\n\t}\n\treturn b\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExpirationSeconds(value int32) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithUsages adds the given value to the Usages field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Usages field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...v1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Usages = append(b.Usages, values[i])\n\t}\n\treturn b\n}\n\n// WithUsername sets the Username field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Username field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.Username = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithGroups adds the given value to the Groups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Groups field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Groups = append(b.Groups, values[i])\n\t}\n\treturn b\n}\n\n// WithExtra puts the entries into the Extra field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Extra field,\n// overwriting an existing map entries in Extra field with the same key.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]v1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration {\n\tif b.Extra == nil && len(entries) > 0 {\n\t\tb.Extra = make(map[string]v1.ExtraValue, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Extra[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CertificateSigningRequestStatusApplyConfiguration represents an declarative configuration of the CertificateSigningRequestStatus type for use\n// with apply.\ntype CertificateSigningRequestStatusApplyConfiguration struct {\n\tConditions  []CertificateSigningRequestConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCertificate []byte                                                 `json:\"certificate,omitempty\"`\n}\n\n// CertificateSigningRequestStatusApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestStatus type for use with\n// apply.\nfunc CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration {\n\treturn &CertificateSigningRequestStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCertificate adds the given value to the Certificate field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Certificate field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.Certificate = append(b.Certificate, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterTrustBundleApplyConfiguration represents an declarative configuration of the ClusterTrustBundle type for use\n// with apply.\ntype ClusterTrustBundleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ClusterTrustBundleSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ClusterTrustBundle constructs an declarative configuration of the ClusterTrustBundle type for use with\n// apply.\nfunc ClusterTrustBundle(name string) *ClusterTrustBundleApplyConfiguration {\n\tb := &ClusterTrustBundleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterTrustBundle\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterTrustBundle extracts the applied configuration owned by fieldManager from\n// clusterTrustBundle. If no managedFields are found in clusterTrustBundle for fieldManager, a\n// ClusterTrustBundleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterTrustBundle must be a unmodified ClusterTrustBundle API object that was retrieved from the Kubernetes API.\n// ExtractClusterTrustBundle provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterTrustBundle(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string) (*ClusterTrustBundleApplyConfiguration, error) {\n\treturn extractClusterTrustBundle(clusterTrustBundle, fieldManager, \"\")\n}\n\n// ExtractClusterTrustBundleStatus is the same as ExtractClusterTrustBundle except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterTrustBundleStatus(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string) (*ClusterTrustBundleApplyConfiguration, error) {\n\treturn extractClusterTrustBundle(clusterTrustBundle, fieldManager, \"status\")\n}\n\nfunc extractClusterTrustBundle(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string, subresource string) (*ClusterTrustBundleApplyConfiguration, error) {\n\tb := &ClusterTrustBundleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterTrustBundle, internal.Parser().Type(\"io.k8s.api.certificates.v1alpha1.ClusterTrustBundle\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterTrustBundle.Name)\n\n\tb.WithKind(\"ClusterTrustBundle\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithKind(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithAPIVersion(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithName(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithGenerateName(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithNamespace(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithUID(value types.UID) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithResourceVersion(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithGeneration(value int64) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithLabels(entries map[string]string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithFinalizers(values ...string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterTrustBundleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithSpec(value *ClusterTrustBundleSpecApplyConfiguration) *ClusterTrustBundleApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundlespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ClusterTrustBundleSpecApplyConfiguration represents an declarative configuration of the ClusterTrustBundleSpec type for use\n// with apply.\ntype ClusterTrustBundleSpecApplyConfiguration struct {\n\tSignerName  *string `json:\"signerName,omitempty\"`\n\tTrustBundle *string `json:\"trustBundle,omitempty\"`\n}\n\n// ClusterTrustBundleSpecApplyConfiguration constructs an declarative configuration of the ClusterTrustBundleSpec type for use with\n// apply.\nfunc ClusterTrustBundleSpec() *ClusterTrustBundleSpecApplyConfiguration {\n\treturn &ClusterTrustBundleSpecApplyConfiguration{}\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *ClusterTrustBundleSpecApplyConfiguration) WithSignerName(value string) *ClusterTrustBundleSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithTrustBundle sets the TrustBundle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TrustBundle field is set to the value of the last call.\nfunc (b *ClusterTrustBundleSpecApplyConfiguration) WithTrustBundle(value string) *ClusterTrustBundleSpecApplyConfiguration {\n\tb.TrustBundle = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CertificateSigningRequestApplyConfiguration represents an declarative configuration of the CertificateSigningRequest type for use\n// with apply.\ntype CertificateSigningRequestApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CertificateSigningRequestSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CertificateSigningRequestStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CertificateSigningRequest constructs an declarative configuration of the CertificateSigningRequest type for use with\n// apply.\nfunc CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from\n// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a\n// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API.\n// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCertificateSigningRequest(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"\")\n}\n\n// ExtractCertificateSigningRequestStatus is the same as ExtractCertificateSigningRequest except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCertificateSigningRequestStatus(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"status\")\n}\n\nfunc extractCertificateSigningRequest(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string, subresource string) (*CertificateSigningRequestApplyConfiguration, error) {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\terr := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type(\"io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(certificateSigningRequest.Name)\n\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CertificateSigningRequestConditionApplyConfiguration represents an declarative configuration of the CertificateSigningRequestCondition type for use\n// with apply.\ntype CertificateSigningRequestConditionApplyConfiguration struct {\n\tType               *v1beta1.RequestConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus           `json:\"status,omitempty\"`\n\tReason             *string                       `json:\"reason,omitempty\"`\n\tMessage            *string                       `json:\"message,omitempty\"`\n\tLastUpdateTime     *metav1.Time                  `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                  `json:\"lastTransitionTime,omitempty\"`\n}\n\n// CertificateSigningRequestConditionApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestCondition type for use with\n// apply.\nfunc CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration {\n\treturn &CertificateSigningRequestConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value v1beta1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n)\n\n// CertificateSigningRequestSpecApplyConfiguration represents an declarative configuration of the CertificateSigningRequestSpec type for use\n// with apply.\ntype CertificateSigningRequestSpecApplyConfiguration struct {\n\tRequest           []byte                        `json:\"request,omitempty\"`\n\tSignerName        *string                       `json:\"signerName,omitempty\"`\n\tExpirationSeconds *int32                        `json:\"expirationSeconds,omitempty\"`\n\tUsages            []v1beta1.KeyUsage            `json:\"usages,omitempty\"`\n\tUsername          *string                       `json:\"username,omitempty\"`\n\tUID               *string                       `json:\"uid,omitempty\"`\n\tGroups            []string                      `json:\"groups,omitempty\"`\n\tExtra             map[string]v1beta1.ExtraValue `json:\"extra,omitempty\"`\n}\n\n// CertificateSigningRequestSpecApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestSpec type for use with\n// apply.\nfunc CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration {\n\treturn &CertificateSigningRequestSpecApplyConfiguration{}\n}\n\n// WithRequest adds the given value to the Request field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Request field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Request = append(b.Request, values[i])\n\t}\n\treturn b\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExpirationSeconds(value int32) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithUsages adds the given value to the Usages field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Usages field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...v1beta1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Usages = append(b.Usages, values[i])\n\t}\n\treturn b\n}\n\n// WithUsername sets the Username field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Username field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.Username = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithGroups adds the given value to the Groups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Groups field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Groups = append(b.Groups, values[i])\n\t}\n\treturn b\n}\n\n// WithExtra puts the entries into the Extra field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Extra field,\n// overwriting an existing map entries in Extra field with the same key.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]v1beta1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration {\n\tif b.Extra == nil && len(entries) > 0 {\n\t\tb.Extra = make(map[string]v1beta1.ExtraValue, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Extra[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CertificateSigningRequestStatusApplyConfiguration represents an declarative configuration of the CertificateSigningRequestStatus type for use\n// with apply.\ntype CertificateSigningRequestStatusApplyConfiguration struct {\n\tConditions  []CertificateSigningRequestConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCertificate []byte                                                 `json:\"certificate,omitempty\"`\n}\n\n// CertificateSigningRequestStatusApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestStatus type for use with\n// apply.\nfunc CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration {\n\treturn &CertificateSigningRequestStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCertificate adds the given value to the Certificate field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Certificate field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.Certificate = append(b.Certificate, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicoordinationv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LeaseApplyConfiguration represents an declarative configuration of the Lease type for use\n// with apply.\ntype LeaseApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *LeaseSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// Lease constructs an declarative configuration of the Lease type for use with\n// apply.\nfunc Lease(name, namespace string) *LeaseApplyConfiguration {\n\tb := &LeaseApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractLease extracts the applied configuration owned by fieldManager from\n// lease. If no managedFields are found in lease for fieldManager, a\n// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API.\n// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLease(lease *apicoordinationv1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"\")\n}\n\n// ExtractLeaseStatus is the same as ExtractLease except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLeaseStatus(lease *apicoordinationv1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"status\")\n}\n\nfunc extractLease(lease *apicoordinationv1.Lease, fieldManager string, subresource string) (*LeaseApplyConfiguration, error) {\n\tb := &LeaseApplyConfiguration{}\n\terr := managedfields.ExtractInto(lease, internal.Parser().Type(\"io.k8s.api.coordination.v1.Lease\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(lease.Name)\n\tb.WithNamespace(lease.Namespace)\n\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LeaseSpecApplyConfiguration represents an declarative configuration of the LeaseSpec type for use\n// with apply.\ntype LeaseSpecApplyConfiguration struct {\n\tHolderIdentity       *string       `json:\"holderIdentity,omitempty\"`\n\tLeaseDurationSeconds *int32        `json:\"leaseDurationSeconds,omitempty\"`\n\tAcquireTime          *v1.MicroTime `json:\"acquireTime,omitempty\"`\n\tRenewTime            *v1.MicroTime `json:\"renewTime,omitempty\"`\n\tLeaseTransitions     *int32        `json:\"leaseTransitions,omitempty\"`\n}\n\n// LeaseSpecApplyConfiguration constructs an declarative configuration of the LeaseSpec type for use with\n// apply.\nfunc LeaseSpec() *LeaseSpecApplyConfiguration {\n\treturn &LeaseSpecApplyConfiguration{}\n}\n\n// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HolderIdentity field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration {\n\tb.HolderIdentity = &value\n\treturn b\n}\n\n// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseDurationSeconds = &value\n\treturn b\n}\n\n// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AcquireTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithAcquireTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.AcquireTime = &value\n\treturn b\n}\n\n// WithRenewTime sets the RenewTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RenewTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.RenewTime = &value\n\treturn b\n}\n\n// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseTransitions field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseTransitions = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LeaseApplyConfiguration represents an declarative configuration of the Lease type for use\n// with apply.\ntype LeaseApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *LeaseSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// Lease constructs an declarative configuration of the Lease type for use with\n// apply.\nfunc Lease(name, namespace string) *LeaseApplyConfiguration {\n\tb := &LeaseApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractLease extracts the applied configuration owned by fieldManager from\n// lease. If no managedFields are found in lease for fieldManager, a\n// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API.\n// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLease(lease *coordinationv1beta1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"\")\n}\n\n// ExtractLeaseStatus is the same as ExtractLease except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLeaseStatus(lease *coordinationv1beta1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"status\")\n}\n\nfunc extractLease(lease *coordinationv1beta1.Lease, fieldManager string, subresource string) (*LeaseApplyConfiguration, error) {\n\tb := &LeaseApplyConfiguration{}\n\terr := managedfields.ExtractInto(lease, internal.Parser().Type(\"io.k8s.api.coordination.v1beta1.Lease\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(lease.Name)\n\tb.WithNamespace(lease.Namespace)\n\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LeaseSpecApplyConfiguration represents an declarative configuration of the LeaseSpec type for use\n// with apply.\ntype LeaseSpecApplyConfiguration struct {\n\tHolderIdentity       *string       `json:\"holderIdentity,omitempty\"`\n\tLeaseDurationSeconds *int32        `json:\"leaseDurationSeconds,omitempty\"`\n\tAcquireTime          *v1.MicroTime `json:\"acquireTime,omitempty\"`\n\tRenewTime            *v1.MicroTime `json:\"renewTime,omitempty\"`\n\tLeaseTransitions     *int32        `json:\"leaseTransitions,omitempty\"`\n}\n\n// LeaseSpecApplyConfiguration constructs an declarative configuration of the LeaseSpec type for use with\n// apply.\nfunc LeaseSpec() *LeaseSpecApplyConfiguration {\n\treturn &LeaseSpecApplyConfiguration{}\n}\n\n// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HolderIdentity field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration {\n\tb.HolderIdentity = &value\n\treturn b\n}\n\n// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseDurationSeconds = &value\n\treturn b\n}\n\n// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AcquireTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithAcquireTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.AcquireTime = &value\n\treturn b\n}\n\n// WithRenewTime sets the RenewTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RenewTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.RenewTime = &value\n\treturn b\n}\n\n// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseTransitions field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseTransitions = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AffinityApplyConfiguration represents an declarative configuration of the Affinity type for use\n// with apply.\ntype AffinityApplyConfiguration struct {\n\tNodeAffinity    *NodeAffinityApplyConfiguration    `json:\"nodeAffinity,omitempty\"`\n\tPodAffinity     *PodAffinityApplyConfiguration     `json:\"podAffinity,omitempty\"`\n\tPodAntiAffinity *PodAntiAffinityApplyConfiguration `json:\"podAntiAffinity,omitempty\"`\n}\n\n// AffinityApplyConfiguration constructs an declarative configuration of the Affinity type for use with\n// apply.\nfunc Affinity() *AffinityApplyConfiguration {\n\treturn &AffinityApplyConfiguration{}\n}\n\n// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithNodeAffinity(value *NodeAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.NodeAffinity = value\n\treturn b\n}\n\n// WithPodAffinity sets the PodAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithPodAffinity(value *PodAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.PodAffinity = value\n\treturn b\n}\n\n// WithPodAntiAffinity sets the PodAntiAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAntiAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithPodAntiAffinity(value *PodAntiAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.PodAntiAffinity = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// AttachedVolumeApplyConfiguration represents an declarative configuration of the AttachedVolume type for use\n// with apply.\ntype AttachedVolumeApplyConfiguration struct {\n\tName       *v1.UniqueVolumeName `json:\"name,omitempty\"`\n\tDevicePath *string              `json:\"devicePath,omitempty\"`\n}\n\n// AttachedVolumeApplyConfiguration constructs an declarative configuration of the AttachedVolume type for use with\n// apply.\nfunc AttachedVolume() *AttachedVolumeApplyConfiguration {\n\treturn &AttachedVolumeApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *AttachedVolumeApplyConfiguration) WithName(value v1.UniqueVolumeName) *AttachedVolumeApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDevicePath sets the DevicePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DevicePath field is set to the value of the last call.\nfunc (b *AttachedVolumeApplyConfiguration) WithDevicePath(value string) *AttachedVolumeApplyConfiguration {\n\tb.DevicePath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AWSElasticBlockStoreVolumeSourceApplyConfiguration represents an declarative configuration of the AWSElasticBlockStoreVolumeSource type for use\n// with apply.\ntype AWSElasticBlockStoreVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string `json:\"volumeID,omitempty\"`\n\tFSType    *string `json:\"fsType,omitempty\"`\n\tPartition *int32  `json:\"partition,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// AWSElasticBlockStoreVolumeSourceApplyConfiguration constructs an declarative configuration of the AWSElasticBlockStoreVolumeSource type for use with\n// apply.\nfunc AWSElasticBlockStoreVolumeSource() *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\treturn &AWSElasticBlockStoreVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithVolumeID(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithFSType(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithPartition(value int32) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// AzureDiskVolumeSourceApplyConfiguration represents an declarative configuration of the AzureDiskVolumeSource type for use\n// with apply.\ntype AzureDiskVolumeSourceApplyConfiguration struct {\n\tDiskName    *string                      `json:\"diskName,omitempty\"`\n\tDataDiskURI *string                      `json:\"diskURI,omitempty\"`\n\tCachingMode *v1.AzureDataDiskCachingMode `json:\"cachingMode,omitempty\"`\n\tFSType      *string                      `json:\"fsType,omitempty\"`\n\tReadOnly    *bool                        `json:\"readOnly,omitempty\"`\n\tKind        *v1.AzureDataDiskKind        `json:\"kind,omitempty\"`\n}\n\n// AzureDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureDiskVolumeSource type for use with\n// apply.\nfunc AzureDiskVolumeSource() *AzureDiskVolumeSourceApplyConfiguration {\n\treturn &AzureDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithDiskName sets the DiskName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiskName field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithDiskName(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.DiskName = &value\n\treturn b\n}\n\n// WithDataDiskURI sets the DataDiskURI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataDiskURI field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithDataDiskURI(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.DataDiskURI = &value\n\treturn b\n}\n\n// WithCachingMode sets the CachingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CachingMode field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithCachingMode(value v1.AzureDataDiskCachingMode) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.CachingMode = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithFSType(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithKind(value v1.AzureDataDiskKind) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AzureFilePersistentVolumeSourceApplyConfiguration represents an declarative configuration of the AzureFilePersistentVolumeSource type for use\n// with apply.\ntype AzureFilePersistentVolumeSourceApplyConfiguration struct {\n\tSecretName      *string `json:\"secretName,omitempty\"`\n\tShareName       *string `json:\"shareName,omitempty\"`\n\tReadOnly        *bool   `json:\"readOnly,omitempty\"`\n\tSecretNamespace *string `json:\"secretNamespace,omitempty\"`\n}\n\n// AzureFilePersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureFilePersistentVolumeSource type for use with\n// apply.\nfunc AzureFilePersistentVolumeSource() *AzureFilePersistentVolumeSourceApplyConfiguration {\n\treturn &AzureFilePersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithShareName sets the ShareName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareName field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.ShareName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretNamespace sets the SecretNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretNamespace field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretNamespace(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.SecretNamespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AzureFileVolumeSourceApplyConfiguration represents an declarative configuration of the AzureFileVolumeSource type for use\n// with apply.\ntype AzureFileVolumeSourceApplyConfiguration struct {\n\tSecretName *string `json:\"secretName,omitempty\"`\n\tShareName  *string `json:\"shareName,omitempty\"`\n\tReadOnly   *bool   `json:\"readOnly,omitempty\"`\n}\n\n// AzureFileVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureFileVolumeSource type for use with\n// apply.\nfunc AzureFileVolumeSource() *AzureFileVolumeSourceApplyConfiguration {\n\treturn &AzureFileVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFileVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithShareName sets the ShareName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareName field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFileVolumeSourceApplyConfiguration {\n\tb.ShareName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFileVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// CapabilitiesApplyConfiguration represents an declarative configuration of the Capabilities type for use\n// with apply.\ntype CapabilitiesApplyConfiguration struct {\n\tAdd  []v1.Capability `json:\"add,omitempty\"`\n\tDrop []v1.Capability `json:\"drop,omitempty\"`\n}\n\n// CapabilitiesApplyConfiguration constructs an declarative configuration of the Capabilities type for use with\n// apply.\nfunc Capabilities() *CapabilitiesApplyConfiguration {\n\treturn &CapabilitiesApplyConfiguration{}\n}\n\n// WithAdd adds the given value to the Add field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Add field.\nfunc (b *CapabilitiesApplyConfiguration) WithAdd(values ...v1.Capability) *CapabilitiesApplyConfiguration {\n\tfor i := range values {\n\t\tb.Add = append(b.Add, values[i])\n\t}\n\treturn b\n}\n\n// WithDrop adds the given value to the Drop field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drop field.\nfunc (b *CapabilitiesApplyConfiguration) WithDrop(values ...v1.Capability) *CapabilitiesApplyConfiguration {\n\tfor i := range values {\n\t\tb.Drop = append(b.Drop, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CephFSPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CephFSPersistentVolumeSource type for use\n// with apply.\ntype CephFSPersistentVolumeSourceApplyConfiguration struct {\n\tMonitors   []string                           `json:\"monitors,omitempty\"`\n\tPath       *string                            `json:\"path,omitempty\"`\n\tUser       *string                            `json:\"user,omitempty\"`\n\tSecretFile *string                            `json:\"secretFile,omitempty\"`\n\tSecretRef  *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly   *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// CephFSPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CephFSPersistentVolumeSource type for use with\n// apply.\nfunc CephFSPersistentVolumeSource() *CephFSPersistentVolumeSourceApplyConfiguration {\n\treturn &CephFSPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithMonitors adds the given value to the Monitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Monitors field.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Monitors = append(b.Monitors, values[i])\n\t}\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithPath(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithUser(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithSecretFile sets the SecretFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretFile field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretFile = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CephFSVolumeSourceApplyConfiguration represents an declarative configuration of the CephFSVolumeSource type for use\n// with apply.\ntype CephFSVolumeSourceApplyConfiguration struct {\n\tMonitors   []string                                `json:\"monitors,omitempty\"`\n\tPath       *string                                 `json:\"path,omitempty\"`\n\tUser       *string                                 `json:\"user,omitempty\"`\n\tSecretFile *string                                 `json:\"secretFile,omitempty\"`\n\tSecretRef  *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly   *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// CephFSVolumeSourceApplyConfiguration constructs an declarative configuration of the CephFSVolumeSource type for use with\n// apply.\nfunc CephFSVolumeSource() *CephFSVolumeSourceApplyConfiguration {\n\treturn &CephFSVolumeSourceApplyConfiguration{}\n}\n\n// WithMonitors adds the given value to the Monitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Monitors field.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Monitors = append(b.Monitors, values[i])\n\t}\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithPath(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithUser(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithSecretFile sets the SecretFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretFile field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.SecretFile = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CephFSVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CinderPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CinderPersistentVolumeSource type for use\n// with apply.\ntype CinderPersistentVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string                            `json:\"volumeID,omitempty\"`\n\tFSType    *string                            `json:\"fsType,omitempty\"`\n\tReadOnly  *bool                              `json:\"readOnly,omitempty\"`\n\tSecretRef *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// CinderPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CinderPersistentVolumeSource type for use with\n// apply.\nfunc CinderPersistentVolumeSource() *CinderPersistentVolumeSourceApplyConfiguration {\n\treturn &CinderPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CinderVolumeSourceApplyConfiguration represents an declarative configuration of the CinderVolumeSource type for use\n// with apply.\ntype CinderVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string                                 `json:\"volumeID,omitempty\"`\n\tFSType    *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly  *bool                                   `json:\"readOnly,omitempty\"`\n\tSecretRef *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// CinderVolumeSourceApplyConfiguration constructs an declarative configuration of the CinderVolumeSource type for use with\n// apply.\nfunc CinderVolumeSource() *CinderVolumeSourceApplyConfiguration {\n\treturn &CinderVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithFSType(value string) *CinderVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CinderVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/claimsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ClaimSourceApplyConfiguration represents an declarative configuration of the ClaimSource type for use\n// with apply.\ntype ClaimSourceApplyConfiguration struct {\n\tResourceClaimName         *string `json:\"resourceClaimName,omitempty\"`\n\tResourceClaimTemplateName *string `json:\"resourceClaimTemplateName,omitempty\"`\n}\n\n// ClaimSourceApplyConfiguration constructs an declarative configuration of the ClaimSource type for use with\n// apply.\nfunc ClaimSource() *ClaimSourceApplyConfiguration {\n\treturn &ClaimSourceApplyConfiguration{}\n}\n\n// WithResourceClaimName sets the ResourceClaimName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClaimName field is set to the value of the last call.\nfunc (b *ClaimSourceApplyConfiguration) WithResourceClaimName(value string) *ClaimSourceApplyConfiguration {\n\tb.ResourceClaimName = &value\n\treturn b\n}\n\n// WithResourceClaimTemplateName sets the ResourceClaimTemplateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClaimTemplateName field is set to the value of the last call.\nfunc (b *ClaimSourceApplyConfiguration) WithResourceClaimTemplateName(value string) *ClaimSourceApplyConfiguration {\n\tb.ResourceClaimTemplateName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ClientIPConfigApplyConfiguration represents an declarative configuration of the ClientIPConfig type for use\n// with apply.\ntype ClientIPConfigApplyConfiguration struct {\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\"`\n}\n\n// ClientIPConfigApplyConfiguration constructs an declarative configuration of the ClientIPConfig type for use with\n// apply.\nfunc ClientIPConfig() *ClientIPConfigApplyConfiguration {\n\treturn &ClientIPConfigApplyConfiguration{}\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ClientIPConfigApplyConfiguration) WithTimeoutSeconds(value int32) *ClientIPConfigApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ComponentConditionApplyConfiguration represents an declarative configuration of the ComponentCondition type for use\n// with apply.\ntype ComponentConditionApplyConfiguration struct {\n\tType    *v1.ComponentConditionType `json:\"type,omitempty\"`\n\tStatus  *v1.ConditionStatus        `json:\"status,omitempty\"`\n\tMessage *string                    `json:\"message,omitempty\"`\n\tError   *string                    `json:\"error,omitempty\"`\n}\n\n// ComponentConditionApplyConfiguration constructs an declarative configuration of the ComponentCondition type for use with\n// apply.\nfunc ComponentCondition() *ComponentConditionApplyConfiguration {\n\treturn &ComponentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithType(value v1.ComponentConditionType) *ComponentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ComponentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithMessage(value string) *ComponentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithError(value string) *ComponentConditionApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ComponentStatusApplyConfiguration represents an declarative configuration of the ComponentStatus type for use\n// with apply.\ntype ComponentStatusApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tConditions                       []ComponentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ComponentStatus constructs an declarative configuration of the ComponentStatus type for use with\n// apply.\nfunc ComponentStatus(name string) *ComponentStatusApplyConfiguration {\n\tb := &ComponentStatusApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ComponentStatus\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractComponentStatus extracts the applied configuration owned by fieldManager from\n// componentStatus. If no managedFields are found in componentStatus for fieldManager, a\n// ComponentStatusApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// componentStatus must be a unmodified ComponentStatus API object that was retrieved from the Kubernetes API.\n// ExtractComponentStatus provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractComponentStatus(componentStatus *apicorev1.ComponentStatus, fieldManager string) (*ComponentStatusApplyConfiguration, error) {\n\treturn extractComponentStatus(componentStatus, fieldManager, \"\")\n}\n\n// ExtractComponentStatusStatus is the same as ExtractComponentStatus except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractComponentStatusStatus(componentStatus *apicorev1.ComponentStatus, fieldManager string) (*ComponentStatusApplyConfiguration, error) {\n\treturn extractComponentStatus(componentStatus, fieldManager, \"status\")\n}\n\nfunc extractComponentStatus(componentStatus *apicorev1.ComponentStatus, fieldManager string, subresource string) (*ComponentStatusApplyConfiguration, error) {\n\tb := &ComponentStatusApplyConfiguration{}\n\terr := managedfields.ExtractInto(componentStatus, internal.Parser().Type(\"io.k8s.api.core.v1.ComponentStatus\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(componentStatus.Name)\n\n\tb.WithKind(\"ComponentStatus\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithKind(value string) *ComponentStatusApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithAPIVersion(value string) *ComponentStatusApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithName(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithGenerateName(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithNamespace(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithUID(value types.UID) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithResourceVersion(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithGeneration(value int64) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ComponentStatusApplyConfiguration) WithLabels(entries map[string]string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ComponentStatusApplyConfiguration) WithAnnotations(entries map[string]string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ComponentStatusApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ComponentStatusApplyConfiguration) WithFinalizers(values ...string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ComponentStatusApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ComponentStatusApplyConfiguration) WithConditions(values ...*ComponentConditionApplyConfiguration) *ComponentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ConfigMapApplyConfiguration represents an declarative configuration of the ConfigMap type for use\n// with apply.\ntype ConfigMapApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tImmutable                        *bool             `json:\"immutable,omitempty\"`\n\tData                             map[string]string `json:\"data,omitempty\"`\n\tBinaryData                       map[string][]byte `json:\"binaryData,omitempty\"`\n}\n\n// ConfigMap constructs an declarative configuration of the ConfigMap type for use with\n// apply.\nfunc ConfigMap(name, namespace string) *ConfigMapApplyConfiguration {\n\tb := &ConfigMapApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ConfigMap\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractConfigMap extracts the applied configuration owned by fieldManager from\n// configMap. If no managedFields are found in configMap for fieldManager, a\n// ConfigMapApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// configMap must be a unmodified ConfigMap API object that was retrieved from the Kubernetes API.\n// ExtractConfigMap provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractConfigMap(configMap *corev1.ConfigMap, fieldManager string) (*ConfigMapApplyConfiguration, error) {\n\treturn extractConfigMap(configMap, fieldManager, \"\")\n}\n\n// ExtractConfigMapStatus is the same as ExtractConfigMap except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractConfigMapStatus(configMap *corev1.ConfigMap, fieldManager string) (*ConfigMapApplyConfiguration, error) {\n\treturn extractConfigMap(configMap, fieldManager, \"status\")\n}\n\nfunc extractConfigMap(configMap *corev1.ConfigMap, fieldManager string, subresource string) (*ConfigMapApplyConfiguration, error) {\n\tb := &ConfigMapApplyConfiguration{}\n\terr := managedfields.ExtractInto(configMap, internal.Parser().Type(\"io.k8s.api.core.v1.ConfigMap\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(configMap.Name)\n\tb.WithNamespace(configMap.Namespace)\n\n\tb.WithKind(\"ConfigMap\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithKind(value string) *ConfigMapApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithAPIVersion(value string) *ConfigMapApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithName(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithGenerateName(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithNamespace(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithUID(value types.UID) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithResourceVersion(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithGeneration(value int64) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithLabels(entries map[string]string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithAnnotations(entries map[string]string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ConfigMapApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ConfigMapApplyConfiguration) WithFinalizers(values ...string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ConfigMapApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithImmutable sets the Immutable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Immutable field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithImmutable(value bool) *ConfigMapApplyConfiguration {\n\tb.Immutable = &value\n\treturn b\n}\n\n// WithData puts the entries into the Data field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Data field,\n// overwriting an existing map entries in Data field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithData(entries map[string]string) *ConfigMapApplyConfiguration {\n\tif b.Data == nil && len(entries) > 0 {\n\t\tb.Data = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Data[k] = v\n\t}\n\treturn b\n}\n\n// WithBinaryData puts the entries into the BinaryData field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the BinaryData field,\n// overwriting an existing map entries in BinaryData field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithBinaryData(entries map[string][]byte) *ConfigMapApplyConfiguration {\n\tif b.BinaryData == nil && len(entries) > 0 {\n\t\tb.BinaryData = make(map[string][]byte, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.BinaryData[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapEnvSourceApplyConfiguration represents an declarative configuration of the ConfigMapEnvSource type for use\n// with apply.\ntype ConfigMapEnvSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tOptional                               *bool `json:\"optional,omitempty\"`\n}\n\n// ConfigMapEnvSourceApplyConfiguration constructs an declarative configuration of the ConfigMapEnvSource type for use with\n// apply.\nfunc ConfigMapEnvSource() *ConfigMapEnvSourceApplyConfiguration {\n\treturn &ConfigMapEnvSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapEnvSourceApplyConfiguration) WithName(value string) *ConfigMapEnvSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapEnvSourceApplyConfiguration) WithOptional(value bool) *ConfigMapEnvSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapKeySelectorApplyConfiguration represents an declarative configuration of the ConfigMapKeySelector type for use\n// with apply.\ntype ConfigMapKeySelectorApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tKey                                    *string `json:\"key,omitempty\"`\n\tOptional                               *bool   `json:\"optional,omitempty\"`\n}\n\n// ConfigMapKeySelectorApplyConfiguration constructs an declarative configuration of the ConfigMapKeySelector type for use with\n// apply.\nfunc ConfigMapKeySelector() *ConfigMapKeySelectorApplyConfiguration {\n\treturn &ConfigMapKeySelectorApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithName(value string) *ConfigMapKeySelectorApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithKey(value string) *ConfigMapKeySelectorApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithOptional(value bool) *ConfigMapKeySelectorApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ConfigMapNodeConfigSourceApplyConfiguration represents an declarative configuration of the ConfigMapNodeConfigSource type for use\n// with apply.\ntype ConfigMapNodeConfigSourceApplyConfiguration struct {\n\tNamespace        *string    `json:\"namespace,omitempty\"`\n\tName             *string    `json:\"name,omitempty\"`\n\tUID              *types.UID `json:\"uid,omitempty\"`\n\tResourceVersion  *string    `json:\"resourceVersion,omitempty\"`\n\tKubeletConfigKey *string    `json:\"kubeletConfigKey,omitempty\"`\n}\n\n// ConfigMapNodeConfigSourceApplyConfiguration constructs an declarative configuration of the ConfigMapNodeConfigSource type for use with\n// apply.\nfunc ConfigMapNodeConfigSource() *ConfigMapNodeConfigSourceApplyConfiguration {\n\treturn &ConfigMapNodeConfigSourceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithNamespace(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithName(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithUID(value types.UID) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithResourceVersion(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithKubeletConfigKey sets the KubeletConfigKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletConfigKey field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithKubeletConfigKey(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.KubeletConfigKey = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapProjectionApplyConfiguration represents an declarative configuration of the ConfigMapProjection type for use\n// with apply.\ntype ConfigMapProjectionApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// ConfigMapProjectionApplyConfiguration constructs an declarative configuration of the ConfigMapProjection type for use with\n// apply.\nfunc ConfigMapProjection() *ConfigMapProjectionApplyConfiguration {\n\treturn &ConfigMapProjectionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithName(value string) *ConfigMapProjectionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithOptional(value bool) *ConfigMapProjectionApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapVolumeSourceApplyConfiguration represents an declarative configuration of the ConfigMapVolumeSource type for use\n// with apply.\ntype ConfigMapVolumeSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode                            *int32                        `json:\"defaultMode,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// ConfigMapVolumeSourceApplyConfiguration constructs an declarative configuration of the ConfigMapVolumeSource type for use with\n// apply.\nfunc ConfigMapVolumeSource() *ConfigMapVolumeSourceApplyConfiguration {\n\treturn &ConfigMapVolumeSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithName(value string) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithOptional(value bool) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerApplyConfiguration represents an declarative configuration of the Container type for use\n// with apply.\ntype ContainerApplyConfiguration struct {\n\tName                     *string                                   `json:\"name,omitempty\"`\n\tImage                    *string                                   `json:\"image,omitempty\"`\n\tCommand                  []string                                  `json:\"command,omitempty\"`\n\tArgs                     []string                                  `json:\"args,omitempty\"`\n\tWorkingDir               *string                                   `json:\"workingDir,omitempty\"`\n\tPorts                    []ContainerPortApplyConfiguration         `json:\"ports,omitempty\"`\n\tEnvFrom                  []EnvFromSourceApplyConfiguration         `json:\"envFrom,omitempty\"`\n\tEnv                      []EnvVarApplyConfiguration                `json:\"env,omitempty\"`\n\tResources                *ResourceRequirementsApplyConfiguration   `json:\"resources,omitempty\"`\n\tResizePolicy             []ContainerResizePolicyApplyConfiguration `json:\"resizePolicy,omitempty\"`\n\tVolumeMounts             []VolumeMountApplyConfiguration           `json:\"volumeMounts,omitempty\"`\n\tVolumeDevices            []VolumeDeviceApplyConfiguration          `json:\"volumeDevices,omitempty\"`\n\tLivenessProbe            *ProbeApplyConfiguration                  `json:\"livenessProbe,omitempty\"`\n\tReadinessProbe           *ProbeApplyConfiguration                  `json:\"readinessProbe,omitempty\"`\n\tStartupProbe             *ProbeApplyConfiguration                  `json:\"startupProbe,omitempty\"`\n\tLifecycle                *LifecycleApplyConfiguration              `json:\"lifecycle,omitempty\"`\n\tTerminationMessagePath   *string                                   `json:\"terminationMessagePath,omitempty\"`\n\tTerminationMessagePolicy *corev1.TerminationMessagePolicy          `json:\"terminationMessagePolicy,omitempty\"`\n\tImagePullPolicy          *corev1.PullPolicy                        `json:\"imagePullPolicy,omitempty\"`\n\tSecurityContext          *SecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tStdin                    *bool                                     `json:\"stdin,omitempty\"`\n\tStdinOnce                *bool                                     `json:\"stdinOnce,omitempty\"`\n\tTTY                      *bool                                     `json:\"tty,omitempty\"`\n}\n\n// ContainerApplyConfiguration constructs an declarative configuration of the Container type for use with\n// apply.\nfunc Container() *ContainerApplyConfiguration {\n\treturn &ContainerApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithName(value string) *ContainerApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithImage(value string) *ContainerApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *ContainerApplyConfiguration) WithCommand(values ...string) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *ContainerApplyConfiguration) WithArgs(values ...string) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Args = append(b.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithWorkingDir(value string) *ContainerApplyConfiguration {\n\tb.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *ContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *ContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EnvFrom = append(b.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *ContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.Env = append(b.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *ContainerApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *ContainerApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.ResizePolicy = append(b.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *ContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *ContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.VolumeDevices = append(b.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *ContainerApplyConfiguration {\n\tb.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTerminationMessagePath(value string) *ContainerApplyConfiguration {\n\tb.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *ContainerApplyConfiguration {\n\tb.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *ContainerApplyConfiguration {\n\tb.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *ContainerApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStdin(value bool) *ContainerApplyConfiguration {\n\tb.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStdinOnce(value bool) *ContainerApplyConfiguration {\n\tb.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTTY(value bool) *ContainerApplyConfiguration {\n\tb.TTY = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerImageApplyConfiguration represents an declarative configuration of the ContainerImage type for use\n// with apply.\ntype ContainerImageApplyConfiguration struct {\n\tNames     []string `json:\"names,omitempty\"`\n\tSizeBytes *int64   `json:\"sizeBytes,omitempty\"`\n}\n\n// ContainerImageApplyConfiguration constructs an declarative configuration of the ContainerImage type for use with\n// apply.\nfunc ContainerImage() *ContainerImageApplyConfiguration {\n\treturn &ContainerImageApplyConfiguration{}\n}\n\n// WithNames adds the given value to the Names field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Names field.\nfunc (b *ContainerImageApplyConfiguration) WithNames(values ...string) *ContainerImageApplyConfiguration {\n\tfor i := range values {\n\t\tb.Names = append(b.Names, values[i])\n\t}\n\treturn b\n}\n\n// WithSizeBytes sets the SizeBytes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SizeBytes field is set to the value of the last call.\nfunc (b *ContainerImageApplyConfiguration) WithSizeBytes(value int64) *ContainerImageApplyConfiguration {\n\tb.SizeBytes = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerPortApplyConfiguration represents an declarative configuration of the ContainerPort type for use\n// with apply.\ntype ContainerPortApplyConfiguration struct {\n\tName          *string      `json:\"name,omitempty\"`\n\tHostPort      *int32       `json:\"hostPort,omitempty\"`\n\tContainerPort *int32       `json:\"containerPort,omitempty\"`\n\tProtocol      *v1.Protocol `json:\"protocol,omitempty\"`\n\tHostIP        *string      `json:\"hostIP,omitempty\"`\n}\n\n// ContainerPortApplyConfiguration constructs an declarative configuration of the ContainerPort type for use with\n// apply.\nfunc ContainerPort() *ContainerPortApplyConfiguration {\n\treturn &ContainerPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithName(value string) *ContainerPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithHostPort sets the HostPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPort field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithHostPort(value int32) *ContainerPortApplyConfiguration {\n\tb.HostPort = &value\n\treturn b\n}\n\n// WithContainerPort sets the ContainerPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerPort field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithContainerPort(value int32) *ContainerPortApplyConfiguration {\n\tb.ContainerPort = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithProtocol(value v1.Protocol) *ContainerPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithHostIP sets the HostIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIP field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithHostIP(value string) *ContainerPortApplyConfiguration {\n\tb.HostIP = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerresizepolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResizePolicyApplyConfiguration represents an declarative configuration of the ContainerResizePolicy type for use\n// with apply.\ntype ContainerResizePolicyApplyConfiguration struct {\n\tResourceName  *v1.ResourceName                `json:\"resourceName,omitempty\"`\n\tRestartPolicy *v1.ResourceResizeRestartPolicy `json:\"restartPolicy,omitempty\"`\n}\n\n// ContainerResizePolicyApplyConfiguration constructs an declarative configuration of the ContainerResizePolicy type for use with\n// apply.\nfunc ContainerResizePolicy() *ContainerResizePolicyApplyConfiguration {\n\treturn &ContainerResizePolicyApplyConfiguration{}\n}\n\n// WithResourceName sets the ResourceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceName field is set to the value of the last call.\nfunc (b *ContainerResizePolicyApplyConfiguration) WithResourceName(value v1.ResourceName) *ContainerResizePolicyApplyConfiguration {\n\tb.ResourceName = &value\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *ContainerResizePolicyApplyConfiguration) WithRestartPolicy(value v1.ResourceResizeRestartPolicy) *ContainerResizePolicyApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerStateApplyConfiguration represents an declarative configuration of the ContainerState type for use\n// with apply.\ntype ContainerStateApplyConfiguration struct {\n\tWaiting    *ContainerStateWaitingApplyConfiguration    `json:\"waiting,omitempty\"`\n\tRunning    *ContainerStateRunningApplyConfiguration    `json:\"running,omitempty\"`\n\tTerminated *ContainerStateTerminatedApplyConfiguration `json:\"terminated,omitempty\"`\n}\n\n// ContainerStateApplyConfiguration constructs an declarative configuration of the ContainerState type for use with\n// apply.\nfunc ContainerState() *ContainerStateApplyConfiguration {\n\treturn &ContainerStateApplyConfiguration{}\n}\n\n// WithWaiting sets the Waiting field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Waiting field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithWaiting(value *ContainerStateWaitingApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Waiting = value\n\treturn b\n}\n\n// WithRunning sets the Running field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Running field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithRunning(value *ContainerStateRunningApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Running = value\n\treturn b\n}\n\n// WithTerminated sets the Terminated field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminated field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithTerminated(value *ContainerStateTerminatedApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Terminated = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ContainerStateRunningApplyConfiguration represents an declarative configuration of the ContainerStateRunning type for use\n// with apply.\ntype ContainerStateRunningApplyConfiguration struct {\n\tStartedAt *v1.Time `json:\"startedAt,omitempty\"`\n}\n\n// ContainerStateRunningApplyConfiguration constructs an declarative configuration of the ContainerStateRunning type for use with\n// apply.\nfunc ContainerStateRunning() *ContainerStateRunningApplyConfiguration {\n\treturn &ContainerStateRunningApplyConfiguration{}\n}\n\n// WithStartedAt sets the StartedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartedAt field is set to the value of the last call.\nfunc (b *ContainerStateRunningApplyConfiguration) WithStartedAt(value v1.Time) *ContainerStateRunningApplyConfiguration {\n\tb.StartedAt = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ContainerStateTerminatedApplyConfiguration represents an declarative configuration of the ContainerStateTerminated type for use\n// with apply.\ntype ContainerStateTerminatedApplyConfiguration struct {\n\tExitCode    *int32   `json:\"exitCode,omitempty\"`\n\tSignal      *int32   `json:\"signal,omitempty\"`\n\tReason      *string  `json:\"reason,omitempty\"`\n\tMessage     *string  `json:\"message,omitempty\"`\n\tStartedAt   *v1.Time `json:\"startedAt,omitempty\"`\n\tFinishedAt  *v1.Time `json:\"finishedAt,omitempty\"`\n\tContainerID *string  `json:\"containerID,omitempty\"`\n}\n\n// ContainerStateTerminatedApplyConfiguration constructs an declarative configuration of the ContainerStateTerminated type for use with\n// apply.\nfunc ContainerStateTerminated() *ContainerStateTerminatedApplyConfiguration {\n\treturn &ContainerStateTerminatedApplyConfiguration{}\n}\n\n// WithExitCode sets the ExitCode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExitCode field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithExitCode(value int32) *ContainerStateTerminatedApplyConfiguration {\n\tb.ExitCode = &value\n\treturn b\n}\n\n// WithSignal sets the Signal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Signal field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithSignal(value int32) *ContainerStateTerminatedApplyConfiguration {\n\tb.Signal = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithReason(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithMessage(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithStartedAt sets the StartedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartedAt field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithStartedAt(value v1.Time) *ContainerStateTerminatedApplyConfiguration {\n\tb.StartedAt = &value\n\treturn b\n}\n\n// WithFinishedAt sets the FinishedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FinishedAt field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithFinishedAt(value v1.Time) *ContainerStateTerminatedApplyConfiguration {\n\tb.FinishedAt = &value\n\treturn b\n}\n\n// WithContainerID sets the ContainerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerID field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithContainerID(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.ContainerID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerStateWaitingApplyConfiguration represents an declarative configuration of the ContainerStateWaiting type for use\n// with apply.\ntype ContainerStateWaitingApplyConfiguration struct {\n\tReason  *string `json:\"reason,omitempty\"`\n\tMessage *string `json:\"message,omitempty\"`\n}\n\n// ContainerStateWaitingApplyConfiguration constructs an declarative configuration of the ContainerStateWaiting type for use with\n// apply.\nfunc ContainerStateWaiting() *ContainerStateWaitingApplyConfiguration {\n\treturn &ContainerStateWaitingApplyConfiguration{}\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ContainerStateWaitingApplyConfiguration) WithReason(value string) *ContainerStateWaitingApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ContainerStateWaitingApplyConfiguration) WithMessage(value string) *ContainerStateWaitingApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerStatusApplyConfiguration represents an declarative configuration of the ContainerStatus type for use\n// with apply.\ntype ContainerStatusApplyConfiguration struct {\n\tName                 *string                                 `json:\"name,omitempty\"`\n\tState                *ContainerStateApplyConfiguration       `json:\"state,omitempty\"`\n\tLastTerminationState *ContainerStateApplyConfiguration       `json:\"lastState,omitempty\"`\n\tReady                *bool                                   `json:\"ready,omitempty\"`\n\tRestartCount         *int32                                  `json:\"restartCount,omitempty\"`\n\tImage                *string                                 `json:\"image,omitempty\"`\n\tImageID              *string                                 `json:\"imageID,omitempty\"`\n\tContainerID          *string                                 `json:\"containerID,omitempty\"`\n\tStarted              *bool                                   `json:\"started,omitempty\"`\n\tAllocatedResources   *corev1.ResourceList                    `json:\"allocatedResources,omitempty\"`\n\tResources            *ResourceRequirementsApplyConfiguration `json:\"resources,omitempty\"`\n}\n\n// ContainerStatusApplyConfiguration constructs an declarative configuration of the ContainerStatus type for use with\n// apply.\nfunc ContainerStatus() *ContainerStatusApplyConfiguration {\n\treturn &ContainerStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithName(value string) *ContainerStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithState sets the State field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the State field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.State = value\n\treturn b\n}\n\n// WithLastTerminationState sets the LastTerminationState field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTerminationState field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithLastTerminationState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.LastTerminationState = value\n\treturn b\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithReady(value bool) *ContainerStatusApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithRestartCount sets the RestartCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartCount field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithRestartCount(value int32) *ContainerStatusApplyConfiguration {\n\tb.RestartCount = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithImage(value string) *ContainerStatusApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithImageID sets the ImageID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImageID field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithImageID(value string) *ContainerStatusApplyConfiguration {\n\tb.ImageID = &value\n\treturn b\n}\n\n// WithContainerID sets the ContainerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerID field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithContainerID(value string) *ContainerStatusApplyConfiguration {\n\tb.ContainerID = &value\n\treturn b\n}\n\n// WithStarted sets the Started field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Started field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithStarted(value bool) *ContainerStatusApplyConfiguration {\n\tb.Started = &value\n\treturn b\n}\n\n// WithAllocatedResources sets the AllocatedResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocatedResources field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithAllocatedResources(value corev1.ResourceList) *ContainerStatusApplyConfiguration {\n\tb.AllocatedResources = &value\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSIPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CSIPersistentVolumeSource type for use\n// with apply.\ntype CSIPersistentVolumeSourceApplyConfiguration struct {\n\tDriver                     *string                            `json:\"driver,omitempty\"`\n\tVolumeHandle               *string                            `json:\"volumeHandle,omitempty\"`\n\tReadOnly                   *bool                              `json:\"readOnly,omitempty\"`\n\tFSType                     *string                            `json:\"fsType,omitempty\"`\n\tVolumeAttributes           map[string]string                  `json:\"volumeAttributes,omitempty\"`\n\tControllerPublishSecretRef *SecretReferenceApplyConfiguration `json:\"controllerPublishSecretRef,omitempty\"`\n\tNodeStageSecretRef         *SecretReferenceApplyConfiguration `json:\"nodeStageSecretRef,omitempty\"`\n\tNodePublishSecretRef       *SecretReferenceApplyConfiguration `json:\"nodePublishSecretRef,omitempty\"`\n\tControllerExpandSecretRef  *SecretReferenceApplyConfiguration `json:\"controllerExpandSecretRef,omitempty\"`\n\tNodeExpandSecretRef        *SecretReferenceApplyConfiguration `json:\"nodeExpandSecretRef,omitempty\"`\n}\n\n// CSIPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CSIPersistentVolumeSource type for use with\n// apply.\nfunc CSIPersistentVolumeSource() *CSIPersistentVolumeSourceApplyConfiguration {\n\treturn &CSIPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithVolumeHandle sets the VolumeHandle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeHandle field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeHandle(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeHandle = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field,\n// overwriting an existing map entries in VolumeAttributes field with the same key.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tif b.VolumeAttributes == nil && len(entries) > 0 {\n\t\tb.VolumeAttributes = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.VolumeAttributes[k] = v\n\t}\n\treturn b\n}\n\n// WithControllerPublishSecretRef sets the ControllerPublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ControllerPublishSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerPublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ControllerPublishSecretRef = value\n\treturn b\n}\n\n// WithNodeStageSecretRef sets the NodeStageSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeStageSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodeStageSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodeStageSecretRef = value\n\treturn b\n}\n\n// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePublishSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodePublishSecretRef = value\n\treturn b\n}\n\n// WithControllerExpandSecretRef sets the ControllerExpandSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ControllerExpandSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerExpandSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ControllerExpandSecretRef = value\n\treturn b\n}\n\n// WithNodeExpandSecretRef sets the NodeExpandSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeExpandSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodeExpandSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodeExpandSecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSIVolumeSourceApplyConfiguration represents an declarative configuration of the CSIVolumeSource type for use\n// with apply.\ntype CSIVolumeSourceApplyConfiguration struct {\n\tDriver               *string                                 `json:\"driver,omitempty\"`\n\tReadOnly             *bool                                   `json:\"readOnly,omitempty\"`\n\tFSType               *string                                 `json:\"fsType,omitempty\"`\n\tVolumeAttributes     map[string]string                       `json:\"volumeAttributes,omitempty\"`\n\tNodePublishSecretRef *LocalObjectReferenceApplyConfiguration `json:\"nodePublishSecretRef,omitempty\"`\n}\n\n// CSIVolumeSourceApplyConfiguration constructs an declarative configuration of the CSIVolumeSource type for use with\n// apply.\nfunc CSIVolumeSource() *CSIVolumeSourceApplyConfiguration {\n\treturn &CSIVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithDriver(value string) *CSIVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithFSType(value string) *CSIVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field,\n// overwriting an existing map entries in VolumeAttributes field with the same key.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIVolumeSourceApplyConfiguration {\n\tif b.VolumeAttributes == nil && len(entries) > 0 {\n\t\tb.VolumeAttributes = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.VolumeAttributes[k] = v\n\t}\n\treturn b\n}\n\n// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePublishSecretRef field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *LocalObjectReferenceApplyConfiguration) *CSIVolumeSourceApplyConfiguration {\n\tb.NodePublishSecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DaemonEndpointApplyConfiguration represents an declarative configuration of the DaemonEndpoint type for use\n// with apply.\ntype DaemonEndpointApplyConfiguration struct {\n\tPort *int32 `json:\"Port,omitempty\"`\n}\n\n// DaemonEndpointApplyConfiguration constructs an declarative configuration of the DaemonEndpoint type for use with\n// apply.\nfunc DaemonEndpoint() *DaemonEndpointApplyConfiguration {\n\treturn &DaemonEndpointApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *DaemonEndpointApplyConfiguration) WithPort(value int32) *DaemonEndpointApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIProjectionApplyConfiguration represents an declarative configuration of the DownwardAPIProjection type for use\n// with apply.\ntype DownwardAPIProjectionApplyConfiguration struct {\n\tItems []DownwardAPIVolumeFileApplyConfiguration `json:\"items,omitempty\"`\n}\n\n// DownwardAPIProjectionApplyConfiguration constructs an declarative configuration of the DownwardAPIProjection type for use with\n// apply.\nfunc DownwardAPIProjection() *DownwardAPIProjectionApplyConfiguration {\n\treturn &DownwardAPIProjectionApplyConfiguration{}\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *DownwardAPIProjectionApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIVolumeFileApplyConfiguration represents an declarative configuration of the DownwardAPIVolumeFile type for use\n// with apply.\ntype DownwardAPIVolumeFileApplyConfiguration struct {\n\tPath             *string                                  `json:\"path,omitempty\"`\n\tFieldRef         *ObjectFieldSelectorApplyConfiguration   `json:\"fieldRef,omitempty\"`\n\tResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:\"resourceFieldRef,omitempty\"`\n\tMode             *int32                                   `json:\"mode,omitempty\"`\n}\n\n// DownwardAPIVolumeFileApplyConfiguration constructs an declarative configuration of the DownwardAPIVolumeFile type for use with\n// apply.\nfunc DownwardAPIVolumeFile() *DownwardAPIVolumeFileApplyConfiguration {\n\treturn &DownwardAPIVolumeFileApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithPath(value string) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.FieldRef = value\n\treturn b\n}\n\n// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceFieldRef field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.ResourceFieldRef = value\n\treturn b\n}\n\n// WithMode sets the Mode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Mode field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithMode(value int32) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.Mode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIVolumeSourceApplyConfiguration represents an declarative configuration of the DownwardAPIVolumeSource type for use\n// with apply.\ntype DownwardAPIVolumeSourceApplyConfiguration struct {\n\tItems       []DownwardAPIVolumeFileApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode *int32                                    `json:\"defaultMode,omitempty\"`\n}\n\n// DownwardAPIVolumeSourceApplyConfiguration constructs an declarative configuration of the DownwardAPIVolumeSource type for use with\n// apply.\nfunc DownwardAPIVolumeSource() *DownwardAPIVolumeSourceApplyConfiguration {\n\treturn &DownwardAPIVolumeSourceApplyConfiguration{}\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *DownwardAPIVolumeSourceApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *DownwardAPIVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// EmptyDirVolumeSourceApplyConfiguration represents an declarative configuration of the EmptyDirVolumeSource type for use\n// with apply.\ntype EmptyDirVolumeSourceApplyConfiguration struct {\n\tMedium    *v1.StorageMedium  `json:\"medium,omitempty\"`\n\tSizeLimit *resource.Quantity `json:\"sizeLimit,omitempty\"`\n}\n\n// EmptyDirVolumeSourceApplyConfiguration constructs an declarative configuration of the EmptyDirVolumeSource type for use with\n// apply.\nfunc EmptyDirVolumeSource() *EmptyDirVolumeSourceApplyConfiguration {\n\treturn &EmptyDirVolumeSourceApplyConfiguration{}\n}\n\n// WithMedium sets the Medium field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Medium field is set to the value of the last call.\nfunc (b *EmptyDirVolumeSourceApplyConfiguration) WithMedium(value v1.StorageMedium) *EmptyDirVolumeSourceApplyConfiguration {\n\tb.Medium = &value\n\treturn b\n}\n\n// WithSizeLimit sets the SizeLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SizeLimit field is set to the value of the last call.\nfunc (b *EmptyDirVolumeSourceApplyConfiguration) WithSizeLimit(value resource.Quantity) *EmptyDirVolumeSourceApplyConfiguration {\n\tb.SizeLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointAddressApplyConfiguration represents an declarative configuration of the EndpointAddress type for use\n// with apply.\ntype EndpointAddressApplyConfiguration struct {\n\tIP        *string                            `json:\"ip,omitempty\"`\n\tHostname  *string                            `json:\"hostname,omitempty\"`\n\tNodeName  *string                            `json:\"nodeName,omitempty\"`\n\tTargetRef *ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n}\n\n// EndpointAddressApplyConfiguration constructs an declarative configuration of the EndpointAddress type for use with\n// apply.\nfunc EndpointAddress() *EndpointAddressApplyConfiguration {\n\treturn &EndpointAddressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithIP(value string) *EndpointAddressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithHostname(value string) *EndpointAddressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithNodeName(value string) *EndpointAddressApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithTargetRef(value *ObjectReferenceApplyConfiguration) *EndpointAddressApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string      `json:\"name,omitempty\"`\n\tPort        *int32       `json:\"port,omitempty\"`\n\tProtocol    *v1.Protocol `json:\"protocol,omitempty\"`\n\tAppProtocol *string      `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointsApplyConfiguration represents an declarative configuration of the Endpoints type for use\n// with apply.\ntype EndpointsApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubsets                          []EndpointSubsetApplyConfiguration `json:\"subsets,omitempty\"`\n}\n\n// Endpoints constructs an declarative configuration of the Endpoints type for use with\n// apply.\nfunc Endpoints(name, namespace string) *EndpointsApplyConfiguration {\n\tb := &EndpointsApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Endpoints\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractEndpoints extracts the applied configuration owned by fieldManager from\n// endpoints. If no managedFields are found in endpoints for fieldManager, a\n// EndpointsApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpoints must be a unmodified Endpoints API object that was retrieved from the Kubernetes API.\n// ExtractEndpoints provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpoints(endpoints *apicorev1.Endpoints, fieldManager string) (*EndpointsApplyConfiguration, error) {\n\treturn extractEndpoints(endpoints, fieldManager, \"\")\n}\n\n// ExtractEndpointsStatus is the same as ExtractEndpoints except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointsStatus(endpoints *apicorev1.Endpoints, fieldManager string) (*EndpointsApplyConfiguration, error) {\n\treturn extractEndpoints(endpoints, fieldManager, \"status\")\n}\n\nfunc extractEndpoints(endpoints *apicorev1.Endpoints, fieldManager string, subresource string) (*EndpointsApplyConfiguration, error) {\n\tb := &EndpointsApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpoints, internal.Parser().Type(\"io.k8s.api.core.v1.Endpoints\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpoints.Name)\n\tb.WithNamespace(endpoints.Namespace)\n\n\tb.WithKind(\"Endpoints\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithKind(value string) *EndpointsApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithAPIVersion(value string) *EndpointsApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithName(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithGenerateName(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithNamespace(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithUID(value types.UID) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithResourceVersion(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithGeneration(value int64) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointsApplyConfiguration) WithLabels(entries map[string]string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointsApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointsApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointsApplyConfiguration) WithFinalizers(values ...string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointsApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubsets adds the given value to the Subsets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subsets field.\nfunc (b *EndpointsApplyConfiguration) WithSubsets(values ...*EndpointSubsetApplyConfiguration) *EndpointsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubsets\")\n\t\t}\n\t\tb.Subsets = append(b.Subsets, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointSubsetApplyConfiguration represents an declarative configuration of the EndpointSubset type for use\n// with apply.\ntype EndpointSubsetApplyConfiguration struct {\n\tAddresses         []EndpointAddressApplyConfiguration `json:\"addresses,omitempty\"`\n\tNotReadyAddresses []EndpointAddressApplyConfiguration `json:\"notReadyAddresses,omitempty\"`\n\tPorts             []EndpointPortApplyConfiguration    `json:\"ports,omitempty\"`\n}\n\n// EndpointSubsetApplyConfiguration constructs an declarative configuration of the EndpointSubset type for use with\n// apply.\nfunc EndpointSubset() *EndpointSubsetApplyConfiguration {\n\treturn &EndpointSubsetApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointSubsetApplyConfiguration) WithAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAddresses\")\n\t\t}\n\t\tb.Addresses = append(b.Addresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithNotReadyAddresses adds the given value to the NotReadyAddresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NotReadyAddresses field.\nfunc (b *EndpointSubsetApplyConfiguration) WithNotReadyAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNotReadyAddresses\")\n\t\t}\n\t\tb.NotReadyAddresses = append(b.NotReadyAddresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSubsetApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvFromSourceApplyConfiguration represents an declarative configuration of the EnvFromSource type for use\n// with apply.\ntype EnvFromSourceApplyConfiguration struct {\n\tPrefix       *string                               `json:\"prefix,omitempty\"`\n\tConfigMapRef *ConfigMapEnvSourceApplyConfiguration `json:\"configMapRef,omitempty\"`\n\tSecretRef    *SecretEnvSourceApplyConfiguration    `json:\"secretRef,omitempty\"`\n}\n\n// EnvFromSourceApplyConfiguration constructs an declarative configuration of the EnvFromSource type for use with\n// apply.\nfunc EnvFromSource() *EnvFromSourceApplyConfiguration {\n\treturn &EnvFromSourceApplyConfiguration{}\n}\n\n// WithPrefix sets the Prefix field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Prefix field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithPrefix(value string) *EnvFromSourceApplyConfiguration {\n\tb.Prefix = &value\n\treturn b\n}\n\n// WithConfigMapRef sets the ConfigMapRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMapRef field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithConfigMapRef(value *ConfigMapEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration {\n\tb.ConfigMapRef = value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithSecretRef(value *SecretEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvVarApplyConfiguration represents an declarative configuration of the EnvVar type for use\n// with apply.\ntype EnvVarApplyConfiguration struct {\n\tName      *string                         `json:\"name,omitempty\"`\n\tValue     *string                         `json:\"value,omitempty\"`\n\tValueFrom *EnvVarSourceApplyConfiguration `json:\"valueFrom,omitempty\"`\n}\n\n// EnvVarApplyConfiguration constructs an declarative configuration of the EnvVar type for use with\n// apply.\nfunc EnvVar() *EnvVarApplyConfiguration {\n\treturn &EnvVarApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithName(value string) *EnvVarApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithValue(value string) *EnvVarApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithValueFrom sets the ValueFrom field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueFrom field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithValueFrom(value *EnvVarSourceApplyConfiguration) *EnvVarApplyConfiguration {\n\tb.ValueFrom = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvVarSourceApplyConfiguration represents an declarative configuration of the EnvVarSource type for use\n// with apply.\ntype EnvVarSourceApplyConfiguration struct {\n\tFieldRef         *ObjectFieldSelectorApplyConfiguration   `json:\"fieldRef,omitempty\"`\n\tResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:\"resourceFieldRef,omitempty\"`\n\tConfigMapKeyRef  *ConfigMapKeySelectorApplyConfiguration  `json:\"configMapKeyRef,omitempty\"`\n\tSecretKeyRef     *SecretKeySelectorApplyConfiguration     `json:\"secretKeyRef,omitempty\"`\n}\n\n// EnvVarSourceApplyConfiguration constructs an declarative configuration of the EnvVarSource type for use with\n// apply.\nfunc EnvVarSource() *EnvVarSourceApplyConfiguration {\n\treturn &EnvVarSourceApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.FieldRef = value\n\treturn b\n}\n\n// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceFieldRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.ResourceFieldRef = value\n\treturn b\n}\n\n// WithConfigMapKeyRef sets the ConfigMapKeyRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMapKeyRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithConfigMapKeyRef(value *ConfigMapKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.ConfigMapKeyRef = value\n\treturn b\n}\n\n// WithSecretKeyRef sets the SecretKeyRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretKeyRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithSecretKeyRef(value *SecretKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.SecretKeyRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EphemeralContainerApplyConfiguration represents an declarative configuration of the EphemeralContainer type for use\n// with apply.\ntype EphemeralContainerApplyConfiguration struct {\n\tEphemeralContainerCommonApplyConfiguration `json:\",inline\"`\n\tTargetContainerName                        *string `json:\"targetContainerName,omitempty\"`\n}\n\n// EphemeralContainerApplyConfiguration constructs an declarative configuration of the EphemeralContainer type for use with\n// apply.\nfunc EphemeralContainer() *EphemeralContainerApplyConfiguration {\n\treturn &EphemeralContainerApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithName(value string) *EphemeralContainerApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithImage(value string) *EphemeralContainerApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *EphemeralContainerApplyConfiguration) WithCommand(values ...string) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *EphemeralContainerApplyConfiguration) WithArgs(values ...string) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Args = append(b.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerApplyConfiguration {\n\tb.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EphemeralContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *EphemeralContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EnvFrom = append(b.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *EphemeralContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.Env = append(b.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *EphemeralContainerApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.ResizePolicy = append(b.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *EphemeralContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *EphemeralContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.VolumeDevices = append(b.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerApplyConfiguration {\n\tb.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerApplyConfiguration {\n\tb.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerApplyConfiguration {\n\tb.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStdin(value bool) *EphemeralContainerApplyConfiguration {\n\tb.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerApplyConfiguration {\n\tb.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTTY(value bool) *EphemeralContainerApplyConfiguration {\n\tb.TTY = &value\n\treturn b\n}\n\n// WithTargetContainerName sets the TargetContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetContainerName field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTargetContainerName(value string) *EphemeralContainerApplyConfiguration {\n\tb.TargetContainerName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EphemeralContainerCommonApplyConfiguration represents an declarative configuration of the EphemeralContainerCommon type for use\n// with apply.\ntype EphemeralContainerCommonApplyConfiguration struct {\n\tName                     *string                                   `json:\"name,omitempty\"`\n\tImage                    *string                                   `json:\"image,omitempty\"`\n\tCommand                  []string                                  `json:\"command,omitempty\"`\n\tArgs                     []string                                  `json:\"args,omitempty\"`\n\tWorkingDir               *string                                   `json:\"workingDir,omitempty\"`\n\tPorts                    []ContainerPortApplyConfiguration         `json:\"ports,omitempty\"`\n\tEnvFrom                  []EnvFromSourceApplyConfiguration         `json:\"envFrom,omitempty\"`\n\tEnv                      []EnvVarApplyConfiguration                `json:\"env,omitempty\"`\n\tResources                *ResourceRequirementsApplyConfiguration   `json:\"resources,omitempty\"`\n\tResizePolicy             []ContainerResizePolicyApplyConfiguration `json:\"resizePolicy,omitempty\"`\n\tVolumeMounts             []VolumeMountApplyConfiguration           `json:\"volumeMounts,omitempty\"`\n\tVolumeDevices            []VolumeDeviceApplyConfiguration          `json:\"volumeDevices,omitempty\"`\n\tLivenessProbe            *ProbeApplyConfiguration                  `json:\"livenessProbe,omitempty\"`\n\tReadinessProbe           *ProbeApplyConfiguration                  `json:\"readinessProbe,omitempty\"`\n\tStartupProbe             *ProbeApplyConfiguration                  `json:\"startupProbe,omitempty\"`\n\tLifecycle                *LifecycleApplyConfiguration              `json:\"lifecycle,omitempty\"`\n\tTerminationMessagePath   *string                                   `json:\"terminationMessagePath,omitempty\"`\n\tTerminationMessagePolicy *corev1.TerminationMessagePolicy          `json:\"terminationMessagePolicy,omitempty\"`\n\tImagePullPolicy          *corev1.PullPolicy                        `json:\"imagePullPolicy,omitempty\"`\n\tSecurityContext          *SecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tStdin                    *bool                                     `json:\"stdin,omitempty\"`\n\tStdinOnce                *bool                                     `json:\"stdinOnce,omitempty\"`\n\tTTY                      *bool                                     `json:\"tty,omitempty\"`\n}\n\n// EphemeralContainerCommonApplyConfiguration constructs an declarative configuration of the EphemeralContainerCommon type for use with\n// apply.\nfunc EphemeralContainerCommon() *EphemeralContainerCommonApplyConfiguration {\n\treturn &EphemeralContainerCommonApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithName(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithImage(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithCommand(values ...string) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithArgs(values ...string) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tb.Args = append(b.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EnvFrom = append(b.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.Env = append(b.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.ResizePolicy = append(b.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.VolumeDevices = append(b.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerCommonApplyConfiguration {\n\tb.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerCommonApplyConfiguration {\n\tb.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStdin(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTTY(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.TTY = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EphemeralVolumeSourceApplyConfiguration represents an declarative configuration of the EphemeralVolumeSource type for use\n// with apply.\ntype EphemeralVolumeSourceApplyConfiguration struct {\n\tVolumeClaimTemplate *PersistentVolumeClaimTemplateApplyConfiguration `json:\"volumeClaimTemplate,omitempty\"`\n}\n\n// EphemeralVolumeSourceApplyConfiguration constructs an declarative configuration of the EphemeralVolumeSource type for use with\n// apply.\nfunc EphemeralVolumeSource() *EphemeralVolumeSourceApplyConfiguration {\n\treturn &EphemeralVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeClaimTemplate sets the VolumeClaimTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeClaimTemplate field is set to the value of the last call.\nfunc (b *EphemeralVolumeSourceApplyConfiguration) WithVolumeClaimTemplate(value *PersistentVolumeClaimTemplateApplyConfiguration) *EphemeralVolumeSourceApplyConfiguration {\n\tb.VolumeClaimTemplate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents an declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tInvolvedObject                   *ObjectReferenceApplyConfiguration `json:\"involvedObject,omitempty\"`\n\tReason                           *string                            `json:\"reason,omitempty\"`\n\tMessage                          *string                            `json:\"message,omitempty\"`\n\tSource                           *EventSourceApplyConfiguration     `json:\"source,omitempty\"`\n\tFirstTimestamp                   *metav1.Time                       `json:\"firstTimestamp,omitempty\"`\n\tLastTimestamp                    *metav1.Time                       `json:\"lastTimestamp,omitempty\"`\n\tCount                            *int32                             `json:\"count,omitempty\"`\n\tType                             *string                            `json:\"type,omitempty\"`\n\tEventTime                        *metav1.MicroTime                  `json:\"eventTime,omitempty\"`\n\tSeries                           *EventSeriesApplyConfiguration     `json:\"series,omitempty\"`\n\tAction                           *string                            `json:\"action,omitempty\"`\n\tRelated                          *ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tReportingController              *string                            `json:\"reportingComponent,omitempty\"`\n\tReportingInstance                *string                            `json:\"reportingInstance,omitempty\"`\n}\n\n// Event constructs an declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *apicorev1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *apicorev1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *apicorev1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.core.v1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithInvolvedObject sets the InvolvedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InvolvedObject field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithInvolvedObject(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.InvolvedObject = value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithMessage(value string) *EventApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSource(value *EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithFirstTimestamp sets the FirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithFirstTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.FirstTimestamp = &value\n\treturn b\n}\n\n// WithLastTimestamp sets the LastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithLastTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.LastTimestamp = &value\n\treturn b\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCount(value int32) *EventApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32        `json:\"count,omitempty\"`\n\tLastObservedTime *v1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EventSourceApplyConfiguration represents an declarative configuration of the EventSource type for use\n// with apply.\ntype EventSourceApplyConfiguration struct {\n\tComponent *string `json:\"component,omitempty\"`\n\tHost      *string `json:\"host,omitempty\"`\n}\n\n// EventSourceApplyConfiguration constructs an declarative configuration of the EventSource type for use with\n// apply.\nfunc EventSource() *EventSourceApplyConfiguration {\n\treturn &EventSourceApplyConfiguration{}\n}\n\n// WithComponent sets the Component field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Component field is set to the value of the last call.\nfunc (b *EventSourceApplyConfiguration) WithComponent(value string) *EventSourceApplyConfiguration {\n\tb.Component = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *EventSourceApplyConfiguration) WithHost(value string) *EventSourceApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ExecActionApplyConfiguration represents an declarative configuration of the ExecAction type for use\n// with apply.\ntype ExecActionApplyConfiguration struct {\n\tCommand []string `json:\"command,omitempty\"`\n}\n\n// ExecActionApplyConfiguration constructs an declarative configuration of the ExecAction type for use with\n// apply.\nfunc ExecAction() *ExecActionApplyConfiguration {\n\treturn &ExecActionApplyConfiguration{}\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *ExecActionApplyConfiguration) WithCommand(values ...string) *ExecActionApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FCVolumeSourceApplyConfiguration represents an declarative configuration of the FCVolumeSource type for use\n// with apply.\ntype FCVolumeSourceApplyConfiguration struct {\n\tTargetWWNs []string `json:\"targetWWNs,omitempty\"`\n\tLun        *int32   `json:\"lun,omitempty\"`\n\tFSType     *string  `json:\"fsType,omitempty\"`\n\tReadOnly   *bool    `json:\"readOnly,omitempty\"`\n\tWWIDs      []string `json:\"wwids,omitempty\"`\n}\n\n// FCVolumeSourceApplyConfiguration constructs an declarative configuration of the FCVolumeSource type for use with\n// apply.\nfunc FCVolumeSource() *FCVolumeSourceApplyConfiguration {\n\treturn &FCVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetWWNs adds the given value to the TargetWWNs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TargetWWNs field.\nfunc (b *FCVolumeSourceApplyConfiguration) WithTargetWWNs(values ...string) *FCVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.TargetWWNs = append(b.TargetWWNs, values[i])\n\t}\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithLun(value int32) *FCVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithFSType(value string) *FCVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FCVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithWWIDs adds the given value to the WWIDs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the WWIDs field.\nfunc (b *FCVolumeSourceApplyConfiguration) WithWWIDs(values ...string) *FCVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.WWIDs = append(b.WWIDs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlexPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the FlexPersistentVolumeSource type for use\n// with apply.\ntype FlexPersistentVolumeSourceApplyConfiguration struct {\n\tDriver    *string                            `json:\"driver,omitempty\"`\n\tFSType    *string                            `json:\"fsType,omitempty\"`\n\tSecretRef *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly  *bool                              `json:\"readOnly,omitempty\"`\n\tOptions   map[string]string                  `json:\"options,omitempty\"`\n}\n\n// FlexPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the FlexPersistentVolumeSource type for use with\n// apply.\nfunc FlexPersistentVolumeSource() *FlexPersistentVolumeSourceApplyConfiguration {\n\treturn &FlexPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithOptions puts the entries into the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Options field,\n// overwriting an existing map entries in Options field with the same key.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tif b.Options == nil && len(entries) > 0 {\n\t\tb.Options = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Options[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlexVolumeSourceApplyConfiguration represents an declarative configuration of the FlexVolumeSource type for use\n// with apply.\ntype FlexVolumeSourceApplyConfiguration struct {\n\tDriver    *string                                 `json:\"driver,omitempty\"`\n\tFSType    *string                                 `json:\"fsType,omitempty\"`\n\tSecretRef *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly  *bool                                   `json:\"readOnly,omitempty\"`\n\tOptions   map[string]string                       `json:\"options,omitempty\"`\n}\n\n// FlexVolumeSourceApplyConfiguration constructs an declarative configuration of the FlexVolumeSource type for use with\n// apply.\nfunc FlexVolumeSource() *FlexVolumeSourceApplyConfiguration {\n\treturn &FlexVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithDriver(value string) *FlexVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithFSType(value string) *FlexVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *FlexVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithOptions puts the entries into the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Options field,\n// overwriting an existing map entries in Options field with the same key.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexVolumeSourceApplyConfiguration {\n\tif b.Options == nil && len(entries) > 0 {\n\t\tb.Options = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Options[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlockerVolumeSourceApplyConfiguration represents an declarative configuration of the FlockerVolumeSource type for use\n// with apply.\ntype FlockerVolumeSourceApplyConfiguration struct {\n\tDatasetName *string `json:\"datasetName,omitempty\"`\n\tDatasetUUID *string `json:\"datasetUUID,omitempty\"`\n}\n\n// FlockerVolumeSourceApplyConfiguration constructs an declarative configuration of the FlockerVolumeSource type for use with\n// apply.\nfunc FlockerVolumeSource() *FlockerVolumeSourceApplyConfiguration {\n\treturn &FlockerVolumeSourceApplyConfiguration{}\n}\n\n// WithDatasetName sets the DatasetName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DatasetName field is set to the value of the last call.\nfunc (b *FlockerVolumeSourceApplyConfiguration) WithDatasetName(value string) *FlockerVolumeSourceApplyConfiguration {\n\tb.DatasetName = &value\n\treturn b\n}\n\n// WithDatasetUUID sets the DatasetUUID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DatasetUUID field is set to the value of the last call.\nfunc (b *FlockerVolumeSourceApplyConfiguration) WithDatasetUUID(value string) *FlockerVolumeSourceApplyConfiguration {\n\tb.DatasetUUID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GCEPersistentDiskVolumeSourceApplyConfiguration represents an declarative configuration of the GCEPersistentDiskVolumeSource type for use\n// with apply.\ntype GCEPersistentDiskVolumeSourceApplyConfiguration struct {\n\tPDName    *string `json:\"pdName,omitempty\"`\n\tFSType    *string `json:\"fsType,omitempty\"`\n\tPartition *int32  `json:\"partition,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// GCEPersistentDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the GCEPersistentDiskVolumeSource type for use with\n// apply.\nfunc GCEPersistentDiskVolumeSource() *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\treturn &GCEPersistentDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithPDName sets the PDName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PDName field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPDName(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.PDName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPartition(value int32) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GitRepoVolumeSourceApplyConfiguration represents an declarative configuration of the GitRepoVolumeSource type for use\n// with apply.\ntype GitRepoVolumeSourceApplyConfiguration struct {\n\tRepository *string `json:\"repository,omitempty\"`\n\tRevision   *string `json:\"revision,omitempty\"`\n\tDirectory  *string `json:\"directory,omitempty\"`\n}\n\n// GitRepoVolumeSourceApplyConfiguration constructs an declarative configuration of the GitRepoVolumeSource type for use with\n// apply.\nfunc GitRepoVolumeSource() *GitRepoVolumeSourceApplyConfiguration {\n\treturn &GitRepoVolumeSourceApplyConfiguration{}\n}\n\n// WithRepository sets the Repository field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Repository field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithRepository(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Repository = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithRevision(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n\n// WithDirectory sets the Directory field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Directory field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithDirectory(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Directory = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GlusterfsPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the GlusterfsPersistentVolumeSource type for use\n// with apply.\ntype GlusterfsPersistentVolumeSourceApplyConfiguration struct {\n\tEndpointsName      *string `json:\"endpoints,omitempty\"`\n\tPath               *string `json:\"path,omitempty\"`\n\tReadOnly           *bool   `json:\"readOnly,omitempty\"`\n\tEndpointsNamespace *string `json:\"endpointsNamespace,omitempty\"`\n}\n\n// GlusterfsPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the GlusterfsPersistentVolumeSource type for use with\n// apply.\nfunc GlusterfsPersistentVolumeSource() *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\treturn &GlusterfsPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsName field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.EndpointsName = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithEndpointsNamespace sets the EndpointsNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsNamespace field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsNamespace(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.EndpointsNamespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GlusterfsVolumeSourceApplyConfiguration represents an declarative configuration of the GlusterfsVolumeSource type for use\n// with apply.\ntype GlusterfsVolumeSourceApplyConfiguration struct {\n\tEndpointsName *string `json:\"endpoints,omitempty\"`\n\tPath          *string `json:\"path,omitempty\"`\n\tReadOnly      *bool   `json:\"readOnly,omitempty\"`\n}\n\n// GlusterfsVolumeSourceApplyConfiguration constructs an declarative configuration of the GlusterfsVolumeSource type for use with\n// apply.\nfunc GlusterfsVolumeSource() *GlusterfsVolumeSourceApplyConfiguration {\n\treturn &GlusterfsVolumeSourceApplyConfiguration{}\n}\n\n// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsName field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.EndpointsName = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/grpcaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GRPCActionApplyConfiguration represents an declarative configuration of the GRPCAction type for use\n// with apply.\ntype GRPCActionApplyConfiguration struct {\n\tPort    *int32  `json:\"port,omitempty\"`\n\tService *string `json:\"service,omitempty\"`\n}\n\n// GRPCActionApplyConfiguration constructs an declarative configuration of the GRPCAction type for use with\n// apply.\nfunc GRPCAction() *GRPCActionApplyConfiguration {\n\treturn &GRPCActionApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *GRPCActionApplyConfiguration) WithPort(value int32) *GRPCActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *GRPCActionApplyConfiguration) WithService(value string) *GRPCActionApplyConfiguration {\n\tb.Service = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HostAliasApplyConfiguration represents an declarative configuration of the HostAlias type for use\n// with apply.\ntype HostAliasApplyConfiguration struct {\n\tIP        *string  `json:\"ip,omitempty\"`\n\tHostnames []string `json:\"hostnames,omitempty\"`\n}\n\n// HostAliasApplyConfiguration constructs an declarative configuration of the HostAlias type for use with\n// apply.\nfunc HostAlias() *HostAliasApplyConfiguration {\n\treturn &HostAliasApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *HostAliasApplyConfiguration) WithIP(value string) *HostAliasApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostnames adds the given value to the Hostnames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hostnames field.\nfunc (b *HostAliasApplyConfiguration) WithHostnames(values ...string) *HostAliasApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hostnames = append(b.Hostnames, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// HostPathVolumeSourceApplyConfiguration represents an declarative configuration of the HostPathVolumeSource type for use\n// with apply.\ntype HostPathVolumeSourceApplyConfiguration struct {\n\tPath *string          `json:\"path,omitempty\"`\n\tType *v1.HostPathType `json:\"type,omitempty\"`\n}\n\n// HostPathVolumeSourceApplyConfiguration constructs an declarative configuration of the HostPathVolumeSource type for use with\n// apply.\nfunc HostPathVolumeSource() *HostPathVolumeSourceApplyConfiguration {\n\treturn &HostPathVolumeSourceApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HostPathVolumeSourceApplyConfiguration) WithPath(value string) *HostPathVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HostPathVolumeSourceApplyConfiguration) WithType(value v1.HostPathType) *HostPathVolumeSourceApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// HTTPGetActionApplyConfiguration represents an declarative configuration of the HTTPGetAction type for use\n// with apply.\ntype HTTPGetActionApplyConfiguration struct {\n\tPath        *string                        `json:\"path,omitempty\"`\n\tPort        *intstr.IntOrString            `json:\"port,omitempty\"`\n\tHost        *string                        `json:\"host,omitempty\"`\n\tScheme      *v1.URIScheme                  `json:\"scheme,omitempty\"`\n\tHTTPHeaders []HTTPHeaderApplyConfiguration `json:\"httpHeaders,omitempty\"`\n}\n\n// HTTPGetActionApplyConfiguration constructs an declarative configuration of the HTTPGetAction type for use with\n// apply.\nfunc HTTPGetAction() *HTTPGetActionApplyConfiguration {\n\treturn &HTTPGetActionApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithPath(value string) *HTTPGetActionApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithPort(value intstr.IntOrString) *HTTPGetActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithHost(value string) *HTTPGetActionApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithScheme sets the Scheme field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheme field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithScheme(value v1.URIScheme) *HTTPGetActionApplyConfiguration {\n\tb.Scheme = &value\n\treturn b\n}\n\n// WithHTTPHeaders adds the given value to the HTTPHeaders field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HTTPHeaders field.\nfunc (b *HTTPGetActionApplyConfiguration) WithHTTPHeaders(values ...*HTTPHeaderApplyConfiguration) *HTTPGetActionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHTTPHeaders\")\n\t\t}\n\t\tb.HTTPHeaders = append(b.HTTPHeaders, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HTTPHeaderApplyConfiguration represents an declarative configuration of the HTTPHeader type for use\n// with apply.\ntype HTTPHeaderApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// HTTPHeaderApplyConfiguration constructs an declarative configuration of the HTTPHeader type for use with\n// apply.\nfunc HTTPHeader() *HTTPHeaderApplyConfiguration {\n\treturn &HTTPHeaderApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HTTPHeaderApplyConfiguration) WithName(value string) *HTTPHeaderApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HTTPHeaderApplyConfiguration) WithValue(value string) *HTTPHeaderApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ISCSIPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the ISCSIPersistentVolumeSource type for use\n// with apply.\ntype ISCSIPersistentVolumeSourceApplyConfiguration struct {\n\tTargetPortal      *string                            `json:\"targetPortal,omitempty\"`\n\tIQN               *string                            `json:\"iqn,omitempty\"`\n\tLun               *int32                             `json:\"lun,omitempty\"`\n\tISCSIInterface    *string                            `json:\"iscsiInterface,omitempty\"`\n\tFSType            *string                            `json:\"fsType,omitempty\"`\n\tReadOnly          *bool                              `json:\"readOnly,omitempty\"`\n\tPortals           []string                           `json:\"portals,omitempty\"`\n\tDiscoveryCHAPAuth *bool                              `json:\"chapAuthDiscovery,omitempty\"`\n\tSessionCHAPAuth   *bool                              `json:\"chapAuthSession,omitempty\"`\n\tSecretRef         *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tInitiatorName     *string                            `json:\"initiatorName,omitempty\"`\n}\n\n// ISCSIPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the ISCSIPersistentVolumeSource type for use with\n// apply.\nfunc ISCSIPersistentVolumeSource() *ISCSIPersistentVolumeSourceApplyConfiguration {\n\treturn &ISCSIPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPortal field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.TargetPortal = &value\n\treturn b\n}\n\n// WithIQN sets the IQN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IQN field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.IQN = &value\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSIInterface field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.ISCSIInterface = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithPortals adds the given value to the Portals field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Portals field.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Portals = append(b.Portals, values[i])\n\t}\n\treturn b\n}\n\n// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.DiscoveryCHAPAuth = &value\n\treturn b\n}\n\n// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.SessionCHAPAuth = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitiatorName field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.InitiatorName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ISCSIVolumeSourceApplyConfiguration represents an declarative configuration of the ISCSIVolumeSource type for use\n// with apply.\ntype ISCSIVolumeSourceApplyConfiguration struct {\n\tTargetPortal      *string                                 `json:\"targetPortal,omitempty\"`\n\tIQN               *string                                 `json:\"iqn,omitempty\"`\n\tLun               *int32                                  `json:\"lun,omitempty\"`\n\tISCSIInterface    *string                                 `json:\"iscsiInterface,omitempty\"`\n\tFSType            *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly          *bool                                   `json:\"readOnly,omitempty\"`\n\tPortals           []string                                `json:\"portals,omitempty\"`\n\tDiscoveryCHAPAuth *bool                                   `json:\"chapAuthDiscovery,omitempty\"`\n\tSessionCHAPAuth   *bool                                   `json:\"chapAuthSession,omitempty\"`\n\tSecretRef         *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tInitiatorName     *string                                 `json:\"initiatorName,omitempty\"`\n}\n\n// ISCSIVolumeSourceApplyConfiguration constructs an declarative configuration of the ISCSIVolumeSource type for use with\n// apply.\nfunc ISCSIVolumeSource() *ISCSIVolumeSourceApplyConfiguration {\n\treturn &ISCSIVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPortal field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.TargetPortal = &value\n\treturn b\n}\n\n// WithIQN sets the IQN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IQN field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.IQN = &value\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSIInterface field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.ISCSIInterface = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithPortals adds the given value to the Portals field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Portals field.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Portals = append(b.Portals, values[i])\n\t}\n\treturn b\n}\n\n// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.DiscoveryCHAPAuth = &value\n\treturn b\n}\n\n// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.SessionCHAPAuth = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ISCSIVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitiatorName field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.InitiatorName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// KeyToPathApplyConfiguration represents an declarative configuration of the KeyToPath type for use\n// with apply.\ntype KeyToPathApplyConfiguration struct {\n\tKey  *string `json:\"key,omitempty\"`\n\tPath *string `json:\"path,omitempty\"`\n\tMode *int32  `json:\"mode,omitempty\"`\n}\n\n// KeyToPathApplyConfiguration constructs an declarative configuration of the KeyToPath type for use with\n// apply.\nfunc KeyToPath() *KeyToPathApplyConfiguration {\n\treturn &KeyToPathApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithKey(value string) *KeyToPathApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithPath(value string) *KeyToPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithMode sets the Mode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Mode field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithMode(value int32) *KeyToPathApplyConfiguration {\n\tb.Mode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LifecycleApplyConfiguration represents an declarative configuration of the Lifecycle type for use\n// with apply.\ntype LifecycleApplyConfiguration struct {\n\tPostStart *LifecycleHandlerApplyConfiguration `json:\"postStart,omitempty\"`\n\tPreStop   *LifecycleHandlerApplyConfiguration `json:\"preStop,omitempty\"`\n}\n\n// LifecycleApplyConfiguration constructs an declarative configuration of the Lifecycle type for use with\n// apply.\nfunc Lifecycle() *LifecycleApplyConfiguration {\n\treturn &LifecycleApplyConfiguration{}\n}\n\n// WithPostStart sets the PostStart field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PostStart field is set to the value of the last call.\nfunc (b *LifecycleApplyConfiguration) WithPostStart(value *LifecycleHandlerApplyConfiguration) *LifecycleApplyConfiguration {\n\tb.PostStart = value\n\treturn b\n}\n\n// WithPreStop sets the PreStop field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreStop field is set to the value of the last call.\nfunc (b *LifecycleApplyConfiguration) WithPreStop(value *LifecycleHandlerApplyConfiguration) *LifecycleApplyConfiguration {\n\tb.PreStop = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecyclehandler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LifecycleHandlerApplyConfiguration represents an declarative configuration of the LifecycleHandler type for use\n// with apply.\ntype LifecycleHandlerApplyConfiguration struct {\n\tExec      *ExecActionApplyConfiguration      `json:\"exec,omitempty\"`\n\tHTTPGet   *HTTPGetActionApplyConfiguration   `json:\"httpGet,omitempty\"`\n\tTCPSocket *TCPSocketActionApplyConfiguration `json:\"tcpSocket,omitempty\"`\n}\n\n// LifecycleHandlerApplyConfiguration constructs an declarative configuration of the LifecycleHandler type for use with\n// apply.\nfunc LifecycleHandler() *LifecycleHandlerApplyConfiguration {\n\treturn &LifecycleHandlerApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.TCPSocket = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LimitRangeApplyConfiguration represents an declarative configuration of the LimitRange type for use\n// with apply.\ntype LimitRangeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *LimitRangeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// LimitRange constructs an declarative configuration of the LimitRange type for use with\n// apply.\nfunc LimitRange(name, namespace string) *LimitRangeApplyConfiguration {\n\tb := &LimitRangeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"LimitRange\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractLimitRange extracts the applied configuration owned by fieldManager from\n// limitRange. If no managedFields are found in limitRange for fieldManager, a\n// LimitRangeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// limitRange must be a unmodified LimitRange API object that was retrieved from the Kubernetes API.\n// ExtractLimitRange provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLimitRange(limitRange *apicorev1.LimitRange, fieldManager string) (*LimitRangeApplyConfiguration, error) {\n\treturn extractLimitRange(limitRange, fieldManager, \"\")\n}\n\n// ExtractLimitRangeStatus is the same as ExtractLimitRange except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLimitRangeStatus(limitRange *apicorev1.LimitRange, fieldManager string) (*LimitRangeApplyConfiguration, error) {\n\treturn extractLimitRange(limitRange, fieldManager, \"status\")\n}\n\nfunc extractLimitRange(limitRange *apicorev1.LimitRange, fieldManager string, subresource string) (*LimitRangeApplyConfiguration, error) {\n\tb := &LimitRangeApplyConfiguration{}\n\terr := managedfields.ExtractInto(limitRange, internal.Parser().Type(\"io.k8s.api.core.v1.LimitRange\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(limitRange.Name)\n\tb.WithNamespace(limitRange.Namespace)\n\n\tb.WithKind(\"LimitRange\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithKind(value string) *LimitRangeApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithAPIVersion(value string) *LimitRangeApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithName(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithGenerateName(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithNamespace(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithUID(value types.UID) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithResourceVersion(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithGeneration(value int64) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LimitRangeApplyConfiguration) WithLabels(entries map[string]string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LimitRangeApplyConfiguration) WithAnnotations(entries map[string]string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LimitRangeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LimitRangeApplyConfiguration) WithFinalizers(values ...string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LimitRangeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithSpec(value *LimitRangeSpecApplyConfiguration) *LimitRangeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// LimitRangeItemApplyConfiguration represents an declarative configuration of the LimitRangeItem type for use\n// with apply.\ntype LimitRangeItemApplyConfiguration struct {\n\tType                 *v1.LimitType    `json:\"type,omitempty\"`\n\tMax                  *v1.ResourceList `json:\"max,omitempty\"`\n\tMin                  *v1.ResourceList `json:\"min,omitempty\"`\n\tDefault              *v1.ResourceList `json:\"default,omitempty\"`\n\tDefaultRequest       *v1.ResourceList `json:\"defaultRequest,omitempty\"`\n\tMaxLimitRequestRatio *v1.ResourceList `json:\"maxLimitRequestRatio,omitempty\"`\n}\n\n// LimitRangeItemApplyConfiguration constructs an declarative configuration of the LimitRangeItem type for use with\n// apply.\nfunc LimitRangeItem() *LimitRangeItemApplyConfiguration {\n\treturn &LimitRangeItemApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithType(value v1.LimitType) *LimitRangeItemApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithMax sets the Max field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Max field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMax(value v1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Max = &value\n\treturn b\n}\n\n// WithMin sets the Min field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Min field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMin(value v1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Min = &value\n\treturn b\n}\n\n// WithDefault sets the Default field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Default field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithDefault(value v1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Default = &value\n\treturn b\n}\n\n// WithDefaultRequest sets the DefaultRequest field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultRequest field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithDefaultRequest(value v1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.DefaultRequest = &value\n\treturn b\n}\n\n// WithMaxLimitRequestRatio sets the MaxLimitRequestRatio field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxLimitRequestRatio field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMaxLimitRequestRatio(value v1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.MaxLimitRequestRatio = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LimitRangeSpecApplyConfiguration represents an declarative configuration of the LimitRangeSpec type for use\n// with apply.\ntype LimitRangeSpecApplyConfiguration struct {\n\tLimits []LimitRangeItemApplyConfiguration `json:\"limits,omitempty\"`\n}\n\n// LimitRangeSpecApplyConfiguration constructs an declarative configuration of the LimitRangeSpec type for use with\n// apply.\nfunc LimitRangeSpec() *LimitRangeSpecApplyConfiguration {\n\treturn &LimitRangeSpecApplyConfiguration{}\n}\n\n// WithLimits adds the given value to the Limits field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Limits field.\nfunc (b *LimitRangeSpecApplyConfiguration) WithLimits(values ...*LimitRangeItemApplyConfiguration) *LimitRangeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithLimits\")\n\t\t}\n\t\tb.Limits = append(b.Limits, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LoadBalancerIngressApplyConfiguration represents an declarative configuration of the LoadBalancerIngress type for use\n// with apply.\ntype LoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                        `json:\"ip,omitempty\"`\n\tHostname *string                        `json:\"hostname,omitempty\"`\n\tPorts    []PortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// LoadBalancerIngressApplyConfiguration constructs an declarative configuration of the LoadBalancerIngress type for use with\n// apply.\nfunc LoadBalancerIngress() *LoadBalancerIngressApplyConfiguration {\n\treturn &LoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithIP(value string) *LoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithHostname(value string) *LoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithPorts(values ...*PortStatusApplyConfiguration) *LoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LoadBalancerStatusApplyConfiguration represents an declarative configuration of the LoadBalancerStatus type for use\n// with apply.\ntype LoadBalancerStatusApplyConfiguration struct {\n\tIngress []LoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// LoadBalancerStatusApplyConfiguration constructs an declarative configuration of the LoadBalancerStatus type for use with\n// apply.\nfunc LoadBalancerStatus() *LoadBalancerStatusApplyConfiguration {\n\treturn &LoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *LoadBalancerStatusApplyConfiguration) WithIngress(values ...*LoadBalancerIngressApplyConfiguration) *LoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LocalObjectReferenceApplyConfiguration represents an declarative configuration of the LocalObjectReference type for use\n// with apply.\ntype LocalObjectReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// LocalObjectReferenceApplyConfiguration constructs an declarative configuration of the LocalObjectReference type for use with\n// apply.\nfunc LocalObjectReference() *LocalObjectReferenceApplyConfiguration {\n\treturn &LocalObjectReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LocalObjectReferenceApplyConfiguration) WithName(value string) *LocalObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LocalVolumeSourceApplyConfiguration represents an declarative configuration of the LocalVolumeSource type for use\n// with apply.\ntype LocalVolumeSourceApplyConfiguration struct {\n\tPath   *string `json:\"path,omitempty\"`\n\tFSType *string `json:\"fsType,omitempty\"`\n}\n\n// LocalVolumeSourceApplyConfiguration constructs an declarative configuration of the LocalVolumeSource type for use with\n// apply.\nfunc LocalVolumeSource() *LocalVolumeSourceApplyConfiguration {\n\treturn &LocalVolumeSourceApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *LocalVolumeSourceApplyConfiguration) WithPath(value string) *LocalVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *LocalVolumeSourceApplyConfiguration) WithFSType(value string) *LocalVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NamespaceApplyConfiguration represents an declarative configuration of the Namespace type for use\n// with apply.\ntype NamespaceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *NamespaceSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *NamespaceStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Namespace constructs an declarative configuration of the Namespace type for use with\n// apply.\nfunc Namespace(name string) *NamespaceApplyConfiguration {\n\tb := &NamespaceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"Namespace\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractNamespace extracts the applied configuration owned by fieldManager from\n// namespace. If no managedFields are found in namespace for fieldManager, a\n// NamespaceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// namespace must be a unmodified Namespace API object that was retrieved from the Kubernetes API.\n// ExtractNamespace provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNamespace(namespace *apicorev1.Namespace, fieldManager string) (*NamespaceApplyConfiguration, error) {\n\treturn extractNamespace(namespace, fieldManager, \"\")\n}\n\n// ExtractNamespaceStatus is the same as ExtractNamespace except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNamespaceStatus(namespace *apicorev1.Namespace, fieldManager string) (*NamespaceApplyConfiguration, error) {\n\treturn extractNamespace(namespace, fieldManager, \"status\")\n}\n\nfunc extractNamespace(namespace *apicorev1.Namespace, fieldManager string, subresource string) (*NamespaceApplyConfiguration, error) {\n\tb := &NamespaceApplyConfiguration{}\n\terr := managedfields.ExtractInto(namespace, internal.Parser().Type(\"io.k8s.api.core.v1.Namespace\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(namespace.Name)\n\n\tb.WithKind(\"Namespace\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithKind(value string) *NamespaceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithAPIVersion(value string) *NamespaceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithName(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithGenerateName(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithNamespace(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithUID(value types.UID) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithResourceVersion(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithGeneration(value int64) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NamespaceApplyConfiguration) WithLabels(entries map[string]string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NamespaceApplyConfiguration) WithAnnotations(entries map[string]string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NamespaceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NamespaceApplyConfiguration) WithFinalizers(values ...string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NamespaceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithSpec(value *NamespaceSpecApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithStatus(value *NamespaceStatusApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// NamespaceConditionApplyConfiguration represents an declarative configuration of the NamespaceCondition type for use\n// with apply.\ntype NamespaceConditionApplyConfiguration struct {\n\tType               *v1.NamespaceConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus        `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                    `json:\"reason,omitempty\"`\n\tMessage            *string                    `json:\"message,omitempty\"`\n}\n\n// NamespaceConditionApplyConfiguration constructs an declarative configuration of the NamespaceCondition type for use with\n// apply.\nfunc NamespaceCondition() *NamespaceConditionApplyConfiguration {\n\treturn &NamespaceConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithType(value v1.NamespaceConditionType) *NamespaceConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *NamespaceConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NamespaceConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithReason(value string) *NamespaceConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithMessage(value string) *NamespaceConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// NamespaceSpecApplyConfiguration represents an declarative configuration of the NamespaceSpec type for use\n// with apply.\ntype NamespaceSpecApplyConfiguration struct {\n\tFinalizers []v1.FinalizerName `json:\"finalizers,omitempty\"`\n}\n\n// NamespaceSpecApplyConfiguration constructs an declarative configuration of the NamespaceSpec type for use with\n// apply.\nfunc NamespaceSpec() *NamespaceSpecApplyConfiguration {\n\treturn &NamespaceSpecApplyConfiguration{}\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NamespaceSpecApplyConfiguration) WithFinalizers(values ...v1.FinalizerName) *NamespaceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// NamespaceStatusApplyConfiguration represents an declarative configuration of the NamespaceStatus type for use\n// with apply.\ntype NamespaceStatusApplyConfiguration struct {\n\tPhase      *v1.NamespacePhase                     `json:\"phase,omitempty\"`\n\tConditions []NamespaceConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// NamespaceStatusApplyConfiguration constructs an declarative configuration of the NamespaceStatus type for use with\n// apply.\nfunc NamespaceStatus() *NamespaceStatusApplyConfiguration {\n\treturn &NamespaceStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *NamespaceStatusApplyConfiguration) WithPhase(value v1.NamespacePhase) *NamespaceStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NamespaceStatusApplyConfiguration) WithConditions(values ...*NamespaceConditionApplyConfiguration) *NamespaceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NFSVolumeSourceApplyConfiguration represents an declarative configuration of the NFSVolumeSource type for use\n// with apply.\ntype NFSVolumeSourceApplyConfiguration struct {\n\tServer   *string `json:\"server,omitempty\"`\n\tPath     *string `json:\"path,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n}\n\n// NFSVolumeSourceApplyConfiguration constructs an declarative configuration of the NFSVolumeSource type for use with\n// apply.\nfunc NFSVolumeSource() *NFSVolumeSourceApplyConfiguration {\n\treturn &NFSVolumeSourceApplyConfiguration{}\n}\n\n// WithServer sets the Server field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Server field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithServer(value string) *NFSVolumeSourceApplyConfiguration {\n\tb.Server = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithPath(value string) *NFSVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *NFSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NodeApplyConfiguration represents an declarative configuration of the Node type for use\n// with apply.\ntype NodeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *NodeSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *NodeStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Node constructs an declarative configuration of the Node type for use with\n// apply.\nfunc Node(name string) *NodeApplyConfiguration {\n\tb := &NodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"Node\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractNode extracts the applied configuration owned by fieldManager from\n// node. If no managedFields are found in node for fieldManager, a\n// NodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// node must be a unmodified Node API object that was retrieved from the Kubernetes API.\n// ExtractNode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNode(node *apicorev1.Node, fieldManager string) (*NodeApplyConfiguration, error) {\n\treturn extractNode(node, fieldManager, \"\")\n}\n\n// ExtractNodeStatus is the same as ExtractNode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNodeStatus(node *apicorev1.Node, fieldManager string) (*NodeApplyConfiguration, error) {\n\treturn extractNode(node, fieldManager, \"status\")\n}\n\nfunc extractNode(node *apicorev1.Node, fieldManager string, subresource string) (*NodeApplyConfiguration, error) {\n\tb := &NodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(node, internal.Parser().Type(\"io.k8s.api.core.v1.Node\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(node.Name)\n\n\tb.WithKind(\"Node\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithKind(value string) *NodeApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithAPIVersion(value string) *NodeApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithName(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithGenerateName(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithNamespace(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithUID(value types.UID) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithResourceVersion(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithGeneration(value int64) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NodeApplyConfiguration) WithLabels(entries map[string]string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NodeApplyConfiguration) WithAnnotations(entries map[string]string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NodeApplyConfiguration) WithFinalizers(values ...string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithSpec(value *NodeSpecApplyConfiguration) *NodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithStatus(value *NodeStatusApplyConfiguration) *NodeApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// NodeAddressApplyConfiguration represents an declarative configuration of the NodeAddress type for use\n// with apply.\ntype NodeAddressApplyConfiguration struct {\n\tType    *v1.NodeAddressType `json:\"type,omitempty\"`\n\tAddress *string             `json:\"address,omitempty\"`\n}\n\n// NodeAddressApplyConfiguration constructs an declarative configuration of the NodeAddress type for use with\n// apply.\nfunc NodeAddress() *NodeAddressApplyConfiguration {\n\treturn &NodeAddressApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NodeAddressApplyConfiguration) WithType(value v1.NodeAddressType) *NodeAddressApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithAddress sets the Address field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Address field is set to the value of the last call.\nfunc (b *NodeAddressApplyConfiguration) WithAddress(value string) *NodeAddressApplyConfiguration {\n\tb.Address = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeAffinityApplyConfiguration represents an declarative configuration of the NodeAffinity type for use\n// with apply.\ntype NodeAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  *NodeSelectorApplyConfiguration             `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// NodeAffinityApplyConfiguration constructs an declarative configuration of the NodeAffinity type for use with\n// apply.\nfunc NodeAffinity() *NodeAffinityApplyConfiguration {\n\treturn &NodeAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution sets the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiredDuringSchedulingIgnoredDuringExecution field is set to the value of the last call.\nfunc (b *NodeAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(value *NodeSelectorApplyConfiguration) *NodeAffinityApplyConfiguration {\n\tb.RequiredDuringSchedulingIgnoredDuringExecution = value\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *NodeAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*PreferredSchedulingTermApplyConfiguration) *NodeAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// NodeConditionApplyConfiguration represents an declarative configuration of the NodeCondition type for use\n// with apply.\ntype NodeConditionApplyConfiguration struct {\n\tType               *v1.NodeConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus   `json:\"status,omitempty\"`\n\tLastHeartbeatTime  *metav1.Time          `json:\"lastHeartbeatTime,omitempty\"`\n\tLastTransitionTime *metav1.Time          `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string               `json:\"reason,omitempty\"`\n\tMessage            *string               `json:\"message,omitempty\"`\n}\n\n// NodeConditionApplyConfiguration constructs an declarative configuration of the NodeCondition type for use with\n// apply.\nfunc NodeCondition() *NodeConditionApplyConfiguration {\n\treturn &NodeConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithType(value v1.NodeConditionType) *NodeConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *NodeConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastHeartbeatTime sets the LastHeartbeatTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastHeartbeatTime field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithLastHeartbeatTime(value metav1.Time) *NodeConditionApplyConfiguration {\n\tb.LastHeartbeatTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NodeConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithReason(value string) *NodeConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithMessage(value string) *NodeConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeConfigSourceApplyConfiguration represents an declarative configuration of the NodeConfigSource type for use\n// with apply.\ntype NodeConfigSourceApplyConfiguration struct {\n\tConfigMap *ConfigMapNodeConfigSourceApplyConfiguration `json:\"configMap,omitempty\"`\n}\n\n// NodeConfigSourceApplyConfiguration constructs an declarative configuration of the NodeConfigSource type for use with\n// apply.\nfunc NodeConfigSource() *NodeConfigSourceApplyConfiguration {\n\treturn &NodeConfigSourceApplyConfiguration{}\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *NodeConfigSourceApplyConfiguration) WithConfigMap(value *ConfigMapNodeConfigSourceApplyConfiguration) *NodeConfigSourceApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeConfigStatusApplyConfiguration represents an declarative configuration of the NodeConfigStatus type for use\n// with apply.\ntype NodeConfigStatusApplyConfiguration struct {\n\tAssigned      *NodeConfigSourceApplyConfiguration `json:\"assigned,omitempty\"`\n\tActive        *NodeConfigSourceApplyConfiguration `json:\"active,omitempty\"`\n\tLastKnownGood *NodeConfigSourceApplyConfiguration `json:\"lastKnownGood,omitempty\"`\n\tError         *string                             `json:\"error,omitempty\"`\n}\n\n// NodeConfigStatusApplyConfiguration constructs an declarative configuration of the NodeConfigStatus type for use with\n// apply.\nfunc NodeConfigStatus() *NodeConfigStatusApplyConfiguration {\n\treturn &NodeConfigStatusApplyConfiguration{}\n}\n\n// WithAssigned sets the Assigned field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Assigned field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithAssigned(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.Assigned = value\n\treturn b\n}\n\n// WithActive sets the Active field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Active field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithActive(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.Active = value\n\treturn b\n}\n\n// WithLastKnownGood sets the LastKnownGood field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastKnownGood field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithLastKnownGood(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.LastKnownGood = value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithError(value string) *NodeConfigStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeDaemonEndpointsApplyConfiguration represents an declarative configuration of the NodeDaemonEndpoints type for use\n// with apply.\ntype NodeDaemonEndpointsApplyConfiguration struct {\n\tKubeletEndpoint *DaemonEndpointApplyConfiguration `json:\"kubeletEndpoint,omitempty\"`\n}\n\n// NodeDaemonEndpointsApplyConfiguration constructs an declarative configuration of the NodeDaemonEndpoints type for use with\n// apply.\nfunc NodeDaemonEndpoints() *NodeDaemonEndpointsApplyConfiguration {\n\treturn &NodeDaemonEndpointsApplyConfiguration{}\n}\n\n// WithKubeletEndpoint sets the KubeletEndpoint field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletEndpoint field is set to the value of the last call.\nfunc (b *NodeDaemonEndpointsApplyConfiguration) WithKubeletEndpoint(value *DaemonEndpointApplyConfiguration) *NodeDaemonEndpointsApplyConfiguration {\n\tb.KubeletEndpoint = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSelectorApplyConfiguration represents an declarative configuration of the NodeSelector type for use\n// with apply.\ntype NodeSelectorApplyConfiguration struct {\n\tNodeSelectorTerms []NodeSelectorTermApplyConfiguration `json:\"nodeSelectorTerms,omitempty\"`\n}\n\n// NodeSelectorApplyConfiguration constructs an declarative configuration of the NodeSelector type for use with\n// apply.\nfunc NodeSelector() *NodeSelectorApplyConfiguration {\n\treturn &NodeSelectorApplyConfiguration{}\n}\n\n// WithNodeSelectorTerms adds the given value to the NodeSelectorTerms field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NodeSelectorTerms field.\nfunc (b *NodeSelectorApplyConfiguration) WithNodeSelectorTerms(values ...*NodeSelectorTermApplyConfiguration) *NodeSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNodeSelectorTerms\")\n\t\t}\n\t\tb.NodeSelectorTerms = append(b.NodeSelectorTerms, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// NodeSelectorRequirementApplyConfiguration represents an declarative configuration of the NodeSelectorRequirement type for use\n// with apply.\ntype NodeSelectorRequirementApplyConfiguration struct {\n\tKey      *string                  `json:\"key,omitempty\"`\n\tOperator *v1.NodeSelectorOperator `json:\"operator,omitempty\"`\n\tValues   []string                 `json:\"values,omitempty\"`\n}\n\n// NodeSelectorRequirementApplyConfiguration constructs an declarative configuration of the NodeSelectorRequirement type for use with\n// apply.\nfunc NodeSelectorRequirement() *NodeSelectorRequirementApplyConfiguration {\n\treturn &NodeSelectorRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithKey(value string) *NodeSelectorRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithOperator(value v1.NodeSelectorOperator) *NodeSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithValues(values ...string) *NodeSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSelectorTermApplyConfiguration represents an declarative configuration of the NodeSelectorTerm type for use\n// with apply.\ntype NodeSelectorTermApplyConfiguration struct {\n\tMatchExpressions []NodeSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n\tMatchFields      []NodeSelectorRequirementApplyConfiguration `json:\"matchFields,omitempty\"`\n}\n\n// NodeSelectorTermApplyConfiguration constructs an declarative configuration of the NodeSelectorTerm type for use with\n// apply.\nfunc NodeSelectorTerm() *NodeSelectorTermApplyConfiguration {\n\treturn &NodeSelectorTermApplyConfiguration{}\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *NodeSelectorTermApplyConfiguration) WithMatchExpressions(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchFields adds the given value to the MatchFields field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchFields field.\nfunc (b *NodeSelectorTermApplyConfiguration) WithMatchFields(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchFields\")\n\t\t}\n\t\tb.MatchFields = append(b.MatchFields, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSpecApplyConfiguration represents an declarative configuration of the NodeSpec type for use\n// with apply.\ntype NodeSpecApplyConfiguration struct {\n\tPodCIDR            *string                             `json:\"podCIDR,omitempty\"`\n\tPodCIDRs           []string                            `json:\"podCIDRs,omitempty\"`\n\tProviderID         *string                             `json:\"providerID,omitempty\"`\n\tUnschedulable      *bool                               `json:\"unschedulable,omitempty\"`\n\tTaints             []TaintApplyConfiguration           `json:\"taints,omitempty\"`\n\tConfigSource       *NodeConfigSourceApplyConfiguration `json:\"configSource,omitempty\"`\n\tDoNotUseExternalID *string                             `json:\"externalID,omitempty\"`\n}\n\n// NodeSpecApplyConfiguration constructs an declarative configuration of the NodeSpec type for use with\n// apply.\nfunc NodeSpec() *NodeSpecApplyConfiguration {\n\treturn &NodeSpecApplyConfiguration{}\n}\n\n// WithPodCIDR sets the PodCIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodCIDR field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithPodCIDR(value string) *NodeSpecApplyConfiguration {\n\tb.PodCIDR = &value\n\treturn b\n}\n\n// WithPodCIDRs adds the given value to the PodCIDRs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PodCIDRs field.\nfunc (b *NodeSpecApplyConfiguration) WithPodCIDRs(values ...string) *NodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PodCIDRs = append(b.PodCIDRs, values[i])\n\t}\n\treturn b\n}\n\n// WithProviderID sets the ProviderID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProviderID field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithProviderID(value string) *NodeSpecApplyConfiguration {\n\tb.ProviderID = &value\n\treturn b\n}\n\n// WithUnschedulable sets the Unschedulable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Unschedulable field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithUnschedulable(value bool) *NodeSpecApplyConfiguration {\n\tb.Unschedulable = &value\n\treturn b\n}\n\n// WithTaints adds the given value to the Taints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Taints field.\nfunc (b *NodeSpecApplyConfiguration) WithTaints(values ...*TaintApplyConfiguration) *NodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTaints\")\n\t\t}\n\t\tb.Taints = append(b.Taints, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfigSource sets the ConfigSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigSource field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithConfigSource(value *NodeConfigSourceApplyConfiguration) *NodeSpecApplyConfiguration {\n\tb.ConfigSource = value\n\treturn b\n}\n\n// WithDoNotUseExternalID sets the DoNotUseExternalID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DoNotUseExternalID field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithDoNotUseExternalID(value string) *NodeSpecApplyConfiguration {\n\tb.DoNotUseExternalID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// NodeStatusApplyConfiguration represents an declarative configuration of the NodeStatus type for use\n// with apply.\ntype NodeStatusApplyConfiguration struct {\n\tCapacity        *v1.ResourceList                       `json:\"capacity,omitempty\"`\n\tAllocatable     *v1.ResourceList                       `json:\"allocatable,omitempty\"`\n\tPhase           *v1.NodePhase                          `json:\"phase,omitempty\"`\n\tConditions      []NodeConditionApplyConfiguration      `json:\"conditions,omitempty\"`\n\tAddresses       []NodeAddressApplyConfiguration        `json:\"addresses,omitempty\"`\n\tDaemonEndpoints *NodeDaemonEndpointsApplyConfiguration `json:\"daemonEndpoints,omitempty\"`\n\tNodeInfo        *NodeSystemInfoApplyConfiguration      `json:\"nodeInfo,omitempty\"`\n\tImages          []ContainerImageApplyConfiguration     `json:\"images,omitempty\"`\n\tVolumesInUse    []v1.UniqueVolumeName                  `json:\"volumesInUse,omitempty\"`\n\tVolumesAttached []AttachedVolumeApplyConfiguration     `json:\"volumesAttached,omitempty\"`\n\tConfig          *NodeConfigStatusApplyConfiguration    `json:\"config,omitempty\"`\n}\n\n// NodeStatusApplyConfiguration constructs an declarative configuration of the NodeStatus type for use with\n// apply.\nfunc NodeStatus() *NodeStatusApplyConfiguration {\n\treturn &NodeStatusApplyConfiguration{}\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithCapacity(value v1.ResourceList) *NodeStatusApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithAllocatable(value v1.ResourceList) *NodeStatusApplyConfiguration {\n\tb.Allocatable = &value\n\treturn b\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithPhase(value v1.NodePhase) *NodeStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NodeStatusApplyConfiguration) WithConditions(values ...*NodeConditionApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *NodeStatusApplyConfiguration) WithAddresses(values ...*NodeAddressApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAddresses\")\n\t\t}\n\t\tb.Addresses = append(b.Addresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithDaemonEndpoints sets the DaemonEndpoints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DaemonEndpoints field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithDaemonEndpoints(value *NodeDaemonEndpointsApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.DaemonEndpoints = value\n\treturn b\n}\n\n// WithNodeInfo sets the NodeInfo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeInfo field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithNodeInfo(value *NodeSystemInfoApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.NodeInfo = value\n\treturn b\n}\n\n// WithImages adds the given value to the Images field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Images field.\nfunc (b *NodeStatusApplyConfiguration) WithImages(values ...*ContainerImageApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImages\")\n\t\t}\n\t\tb.Images = append(b.Images, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumesInUse adds the given value to the VolumesInUse field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumesInUse field.\nfunc (b *NodeStatusApplyConfiguration) WithVolumesInUse(values ...v1.UniqueVolumeName) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumesInUse = append(b.VolumesInUse, values[i])\n\t}\n\treturn b\n}\n\n// WithVolumesAttached adds the given value to the VolumesAttached field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumesAttached field.\nfunc (b *NodeStatusApplyConfiguration) WithVolumesAttached(values ...*AttachedVolumeApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumesAttached\")\n\t\t}\n\t\tb.VolumesAttached = append(b.VolumesAttached, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig sets the Config field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Config field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithConfig(value *NodeConfigStatusApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.Config = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSystemInfoApplyConfiguration represents an declarative configuration of the NodeSystemInfo type for use\n// with apply.\ntype NodeSystemInfoApplyConfiguration struct {\n\tMachineID               *string `json:\"machineID,omitempty\"`\n\tSystemUUID              *string `json:\"systemUUID,omitempty\"`\n\tBootID                  *string `json:\"bootID,omitempty\"`\n\tKernelVersion           *string `json:\"kernelVersion,omitempty\"`\n\tOSImage                 *string `json:\"osImage,omitempty\"`\n\tContainerRuntimeVersion *string `json:\"containerRuntimeVersion,omitempty\"`\n\tKubeletVersion          *string `json:\"kubeletVersion,omitempty\"`\n\tKubeProxyVersion        *string `json:\"kubeProxyVersion,omitempty\"`\n\tOperatingSystem         *string `json:\"operatingSystem,omitempty\"`\n\tArchitecture            *string `json:\"architecture,omitempty\"`\n}\n\n// NodeSystemInfoApplyConfiguration constructs an declarative configuration of the NodeSystemInfo type for use with\n// apply.\nfunc NodeSystemInfo() *NodeSystemInfoApplyConfiguration {\n\treturn &NodeSystemInfoApplyConfiguration{}\n}\n\n// WithMachineID sets the MachineID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MachineID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithMachineID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.MachineID = &value\n\treturn b\n}\n\n// WithSystemUUID sets the SystemUUID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SystemUUID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithSystemUUID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.SystemUUID = &value\n\treturn b\n}\n\n// WithBootID sets the BootID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BootID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithBootID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.BootID = &value\n\treturn b\n}\n\n// WithKernelVersion sets the KernelVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KernelVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKernelVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KernelVersion = &value\n\treturn b\n}\n\n// WithOSImage sets the OSImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OSImage field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithOSImage(value string) *NodeSystemInfoApplyConfiguration {\n\tb.OSImage = &value\n\treturn b\n}\n\n// WithContainerRuntimeVersion sets the ContainerRuntimeVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerRuntimeVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithContainerRuntimeVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.ContainerRuntimeVersion = &value\n\treturn b\n}\n\n// WithKubeletVersion sets the KubeletVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKubeletVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KubeletVersion = &value\n\treturn b\n}\n\n// WithKubeProxyVersion sets the KubeProxyVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeProxyVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKubeProxyVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KubeProxyVersion = &value\n\treturn b\n}\n\n// WithOperatingSystem sets the OperatingSystem field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OperatingSystem field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithOperatingSystem(value string) *NodeSystemInfoApplyConfiguration {\n\tb.OperatingSystem = &value\n\treturn b\n}\n\n// WithArchitecture sets the Architecture field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Architecture field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithArchitecture(value string) *NodeSystemInfoApplyConfiguration {\n\tb.Architecture = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ObjectFieldSelectorApplyConfiguration represents an declarative configuration of the ObjectFieldSelector type for use\n// with apply.\ntype ObjectFieldSelectorApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tFieldPath  *string `json:\"fieldPath,omitempty\"`\n}\n\n// ObjectFieldSelectorApplyConfiguration constructs an declarative configuration of the ObjectFieldSelector type for use with\n// apply.\nfunc ObjectFieldSelector() *ObjectFieldSelectorApplyConfiguration {\n\treturn &ObjectFieldSelectorApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ObjectFieldSelectorApplyConfiguration) WithAPIVersion(value string) *ObjectFieldSelectorApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithFieldPath sets the FieldPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldPath field is set to the value of the last call.\nfunc (b *ObjectFieldSelectorApplyConfiguration) WithFieldPath(value string) *ObjectFieldSelectorApplyConfiguration {\n\tb.FieldPath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ObjectReferenceApplyConfiguration represents an declarative configuration of the ObjectReference type for use\n// with apply.\ntype ObjectReferenceApplyConfiguration struct {\n\tKind            *string    `json:\"kind,omitempty\"`\n\tNamespace       *string    `json:\"namespace,omitempty\"`\n\tName            *string    `json:\"name,omitempty\"`\n\tUID             *types.UID `json:\"uid,omitempty\"`\n\tAPIVersion      *string    `json:\"apiVersion,omitempty\"`\n\tResourceVersion *string    `json:\"resourceVersion,omitempty\"`\n\tFieldPath       *string    `json:\"fieldPath,omitempty\"`\n}\n\n// ObjectReferenceApplyConfiguration constructs an declarative configuration of the ObjectReference type for use with\n// apply.\nfunc ObjectReference() *ObjectReferenceApplyConfiguration {\n\treturn &ObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithKind(value string) *ObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithNamespace(value string) *ObjectReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithName(value string) *ObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithUID(value types.UID) *ObjectReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithAPIVersion(value string) *ObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithResourceVersion(value string) *ObjectReferenceApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithFieldPath sets the FieldPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldPath field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithFieldPath(value string) *ObjectReferenceApplyConfiguration {\n\tb.FieldPath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeApplyConfiguration represents an declarative configuration of the PersistentVolume type for use\n// with apply.\ntype PersistentVolumeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PersistentVolumeSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PersistentVolumeStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PersistentVolume constructs an declarative configuration of the PersistentVolume type for use with\n// apply.\nfunc PersistentVolume(name string) *PersistentVolumeApplyConfiguration {\n\tb := &PersistentVolumeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PersistentVolume\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPersistentVolume extracts the applied configuration owned by fieldManager from\n// persistentVolume. If no managedFields are found in persistentVolume for fieldManager, a\n// PersistentVolumeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// persistentVolume must be a unmodified PersistentVolume API object that was retrieved from the Kubernetes API.\n// ExtractPersistentVolume provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPersistentVolume(persistentVolume *apicorev1.PersistentVolume, fieldManager string) (*PersistentVolumeApplyConfiguration, error) {\n\treturn extractPersistentVolume(persistentVolume, fieldManager, \"\")\n}\n\n// ExtractPersistentVolumeStatus is the same as ExtractPersistentVolume except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPersistentVolumeStatus(persistentVolume *apicorev1.PersistentVolume, fieldManager string) (*PersistentVolumeApplyConfiguration, error) {\n\treturn extractPersistentVolume(persistentVolume, fieldManager, \"status\")\n}\n\nfunc extractPersistentVolume(persistentVolume *apicorev1.PersistentVolume, fieldManager string, subresource string) (*PersistentVolumeApplyConfiguration, error) {\n\tb := &PersistentVolumeApplyConfiguration{}\n\terr := managedfields.ExtractInto(persistentVolume, internal.Parser().Type(\"io.k8s.api.core.v1.PersistentVolume\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(persistentVolume.Name)\n\n\tb.WithKind(\"PersistentVolume\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithKind(value string) *PersistentVolumeApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithName(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithGenerateName(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithNamespace(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithUID(value types.UID) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithGeneration(value int64) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithSpec(value *PersistentVolumeSpecApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithStatus(value *PersistentVolumeStatusApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimApplyConfiguration represents an declarative configuration of the PersistentVolumeClaim type for use\n// with apply.\ntype PersistentVolumeClaimApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PersistentVolumeClaimSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PersistentVolumeClaimStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PersistentVolumeClaim constructs an declarative configuration of the PersistentVolumeClaim type for use with\n// apply.\nfunc PersistentVolumeClaim(name, namespace string) *PersistentVolumeClaimApplyConfiguration {\n\tb := &PersistentVolumeClaimApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PersistentVolumeClaim\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPersistentVolumeClaim extracts the applied configuration owned by fieldManager from\n// persistentVolumeClaim. If no managedFields are found in persistentVolumeClaim for fieldManager, a\n// PersistentVolumeClaimApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// persistentVolumeClaim must be a unmodified PersistentVolumeClaim API object that was retrieved from the Kubernetes API.\n// ExtractPersistentVolumeClaim provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPersistentVolumeClaim(persistentVolumeClaim *apicorev1.PersistentVolumeClaim, fieldManager string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\treturn extractPersistentVolumeClaim(persistentVolumeClaim, fieldManager, \"\")\n}\n\n// ExtractPersistentVolumeClaimStatus is the same as ExtractPersistentVolumeClaim except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPersistentVolumeClaimStatus(persistentVolumeClaim *apicorev1.PersistentVolumeClaim, fieldManager string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\treturn extractPersistentVolumeClaim(persistentVolumeClaim, fieldManager, \"status\")\n}\n\nfunc extractPersistentVolumeClaim(persistentVolumeClaim *apicorev1.PersistentVolumeClaim, fieldManager string, subresource string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\tb := &PersistentVolumeClaimApplyConfiguration{}\n\terr := managedfields.ExtractInto(persistentVolumeClaim, internal.Parser().Type(\"io.k8s.api.core.v1.PersistentVolumeClaim\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(persistentVolumeClaim.Name)\n\tb.WithNamespace(persistentVolumeClaim.Namespace)\n\n\tb.WithKind(\"PersistentVolumeClaim\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithKind(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithName(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithStatus(value *PersistentVolumeClaimStatusApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PersistentVolumeClaimConditionApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimCondition type for use\n// with apply.\ntype PersistentVolumeClaimConditionApplyConfiguration struct {\n\tType               *v1.PersistentVolumeClaimConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                    `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time                           `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                           `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                `json:\"reason,omitempty\"`\n\tMessage            *string                                `json:\"message,omitempty\"`\n}\n\n// PersistentVolumeClaimConditionApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimCondition type for use with\n// apply.\nfunc PersistentVolumeClaimCondition() *PersistentVolumeClaimConditionApplyConfiguration {\n\treturn &PersistentVolumeClaimConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithType(value v1.PersistentVolumeClaimConditionType) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithReason(value string) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithMessage(value string) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimSpecApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimSpec type for use\n// with apply.\ntype PersistentVolumeClaimSpecApplyConfiguration struct {\n\tAccessModes      []v1.PersistentVolumeAccessMode              `json:\"accessModes,omitempty\"`\n\tSelector         *metav1.LabelSelectorApplyConfiguration      `json:\"selector,omitempty\"`\n\tResources        *ResourceRequirementsApplyConfiguration      `json:\"resources,omitempty\"`\n\tVolumeName       *string                                      `json:\"volumeName,omitempty\"`\n\tStorageClassName *string                                      `json:\"storageClassName,omitempty\"`\n\tVolumeMode       *v1.PersistentVolumeMode                     `json:\"volumeMode,omitempty\"`\n\tDataSource       *TypedLocalObjectReferenceApplyConfiguration `json:\"dataSource,omitempty\"`\n\tDataSourceRef    *TypedObjectReferenceApplyConfiguration      `json:\"dataSourceRef,omitempty\"`\n}\n\n// PersistentVolumeClaimSpecApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimSpec type for use with\n// apply.\nfunc PersistentVolumeClaimSpec() *PersistentVolumeClaimSpecApplyConfiguration {\n\treturn &PersistentVolumeClaimSpecApplyConfiguration{}\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeClaimSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeName(value string) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeMode field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeMode(value v1.PersistentVolumeMode) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.VolumeMode = &value\n\treturn b\n}\n\n// WithDataSource sets the DataSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataSource field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSource(value *TypedLocalObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.DataSource = value\n\treturn b\n}\n\n// WithDataSourceRef sets the DataSourceRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataSourceRef field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSourceRef(value *TypedObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.DataSourceRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PersistentVolumeClaimStatusApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimStatus type for use\n// with apply.\ntype PersistentVolumeClaimStatusApplyConfiguration struct {\n\tPhase              *v1.PersistentVolumeClaimPhase                     `json:\"phase,omitempty\"`\n\tAccessModes        []v1.PersistentVolumeAccessMode                    `json:\"accessModes,omitempty\"`\n\tCapacity           *v1.ResourceList                                   `json:\"capacity,omitempty\"`\n\tConditions         []PersistentVolumeClaimConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAllocatedResources *v1.ResourceList                                   `json:\"allocatedResources,omitempty\"`\n\tResizeStatus       *v1.PersistentVolumeClaimResizeStatus              `json:\"resizeStatus,omitempty\"`\n}\n\n// PersistentVolumeClaimStatusApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimStatus type for use with\n// apply.\nfunc PersistentVolumeClaimStatus() *PersistentVolumeClaimStatusApplyConfiguration {\n\treturn &PersistentVolumeClaimStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithPhase(value v1.PersistentVolumeClaimPhase) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithCapacity(value v1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithConditions(values ...*PersistentVolumeClaimConditionApplyConfiguration) *PersistentVolumeClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatedResources sets the AllocatedResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocatedResources field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithAllocatedResources(value v1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.AllocatedResources = &value\n\treturn b\n}\n\n// WithResizeStatus sets the ResizeStatus field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResizeStatus field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithResizeStatus(value v1.PersistentVolumeClaimResizeStatus) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.ResizeStatus = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimTemplateApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimTemplate type for use\n// with apply.\ntype PersistentVolumeClaimTemplateApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PersistentVolumeClaimSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// PersistentVolumeClaimTemplateApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimTemplate type for use with\n// apply.\nfunc PersistentVolumeClaimTemplate() *PersistentVolumeClaimTemplateApplyConfiguration {\n\treturn &PersistentVolumeClaimTemplateApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithName(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PersistentVolumeClaimVolumeSourceApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimVolumeSource type for use\n// with apply.\ntype PersistentVolumeClaimVolumeSourceApplyConfiguration struct {\n\tClaimName *string `json:\"claimName,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// PersistentVolumeClaimVolumeSourceApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimVolumeSource type for use with\n// apply.\nfunc PersistentVolumeClaimVolumeSource() *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\treturn &PersistentVolumeClaimVolumeSourceApplyConfiguration{}\n}\n\n// WithClaimName sets the ClaimName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClaimName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithClaimName(value string) *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\tb.ClaimName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PersistentVolumeSourceApplyConfiguration represents an declarative configuration of the PersistentVolumeSource type for use\n// with apply.\ntype PersistentVolumeSourceApplyConfiguration struct {\n\tGCEPersistentDisk    *GCEPersistentDiskVolumeSourceApplyConfiguration    `json:\"gcePersistentDisk,omitempty\"`\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSourceApplyConfiguration `json:\"awsElasticBlockStore,omitempty\"`\n\tHostPath             *HostPathVolumeSourceApplyConfiguration             `json:\"hostPath,omitempty\"`\n\tGlusterfs            *GlusterfsPersistentVolumeSourceApplyConfiguration  `json:\"glusterfs,omitempty\"`\n\tNFS                  *NFSVolumeSourceApplyConfiguration                  `json:\"nfs,omitempty\"`\n\tRBD                  *RBDPersistentVolumeSourceApplyConfiguration        `json:\"rbd,omitempty\"`\n\tISCSI                *ISCSIPersistentVolumeSourceApplyConfiguration      `json:\"iscsi,omitempty\"`\n\tCinder               *CinderPersistentVolumeSourceApplyConfiguration     `json:\"cinder,omitempty\"`\n\tCephFS               *CephFSPersistentVolumeSourceApplyConfiguration     `json:\"cephfs,omitempty\"`\n\tFC                   *FCVolumeSourceApplyConfiguration                   `json:\"fc,omitempty\"`\n\tFlocker              *FlockerVolumeSourceApplyConfiguration              `json:\"flocker,omitempty\"`\n\tFlexVolume           *FlexPersistentVolumeSourceApplyConfiguration       `json:\"flexVolume,omitempty\"`\n\tAzureFile            *AzureFilePersistentVolumeSourceApplyConfiguration  `json:\"azureFile,omitempty\"`\n\tVsphereVolume        *VsphereVirtualDiskVolumeSourceApplyConfiguration   `json:\"vsphereVolume,omitempty\"`\n\tQuobyte              *QuobyteVolumeSourceApplyConfiguration              `json:\"quobyte,omitempty\"`\n\tAzureDisk            *AzureDiskVolumeSourceApplyConfiguration            `json:\"azureDisk,omitempty\"`\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSourceApplyConfiguration `json:\"photonPersistentDisk,omitempty\"`\n\tPortworxVolume       *PortworxVolumeSourceApplyConfiguration             `json:\"portworxVolume,omitempty\"`\n\tScaleIO              *ScaleIOPersistentVolumeSourceApplyConfiguration    `json:\"scaleIO,omitempty\"`\n\tLocal                *LocalVolumeSourceApplyConfiguration                `json:\"local,omitempty\"`\n\tStorageOS            *StorageOSPersistentVolumeSourceApplyConfiguration  `json:\"storageos,omitempty\"`\n\tCSI                  *CSIPersistentVolumeSourceApplyConfiguration        `json:\"csi,omitempty\"`\n}\n\n// PersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the PersistentVolumeSource type for use with\n// apply.\nfunc PersistentVolumeSource() *PersistentVolumeSourceApplyConfiguration {\n\treturn &PersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithLocal sets the Local field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Local field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Local = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PersistentVolumeSpecApplyConfiguration represents an declarative configuration of the PersistentVolumeSpec type for use\n// with apply.\ntype PersistentVolumeSpecApplyConfiguration struct {\n\tCapacity                                 *v1.ResourceList `json:\"capacity,omitempty\"`\n\tPersistentVolumeSourceApplyConfiguration `json:\",inline\"`\n\tAccessModes                              []v1.PersistentVolumeAccessMode       `json:\"accessModes,omitempty\"`\n\tClaimRef                                 *ObjectReferenceApplyConfiguration    `json:\"claimRef,omitempty\"`\n\tPersistentVolumeReclaimPolicy            *v1.PersistentVolumeReclaimPolicy     `json:\"persistentVolumeReclaimPolicy,omitempty\"`\n\tStorageClassName                         *string                               `json:\"storageClassName,omitempty\"`\n\tMountOptions                             []string                              `json:\"mountOptions,omitempty\"`\n\tVolumeMode                               *v1.PersistentVolumeMode              `json:\"volumeMode,omitempty\"`\n\tNodeAffinity                             *VolumeNodeAffinityApplyConfiguration `json:\"nodeAffinity,omitempty\"`\n}\n\n// PersistentVolumeSpecApplyConfiguration constructs an declarative configuration of the PersistentVolumeSpec type for use with\n// apply.\nfunc PersistentVolumeSpec() *PersistentVolumeSpecApplyConfiguration {\n\treturn &PersistentVolumeSpecApplyConfiguration{}\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCapacity(value v1.ResourceList) *PersistentVolumeSpecApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithLocal sets the Local field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Local field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.Local = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithClaimRef sets the ClaimRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClaimRef field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithClaimRef(value *ObjectReferenceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.ClaimRef = value\n\treturn b\n}\n\n// WithPersistentVolumeReclaimPolicy sets the PersistentVolumeReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeReclaimPolicy field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPersistentVolumeReclaimPolicy(value v1.PersistentVolumeReclaimPolicy) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeReclaimPolicy = &value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeSpecApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithMountOptions(values ...string) *PersistentVolumeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeMode field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithVolumeMode(value v1.PersistentVolumeMode) *PersistentVolumeSpecApplyConfiguration {\n\tb.VolumeMode = &value\n\treturn b\n}\n\n// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinity field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithNodeAffinity(value *VolumeNodeAffinityApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.NodeAffinity = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PersistentVolumeStatusApplyConfiguration represents an declarative configuration of the PersistentVolumeStatus type for use\n// with apply.\ntype PersistentVolumeStatusApplyConfiguration struct {\n\tPhase   *v1.PersistentVolumePhase `json:\"phase,omitempty\"`\n\tMessage *string                   `json:\"message,omitempty\"`\n\tReason  *string                   `json:\"reason,omitempty\"`\n}\n\n// PersistentVolumeStatusApplyConfiguration constructs an declarative configuration of the PersistentVolumeStatus type for use with\n// apply.\nfunc PersistentVolumeStatus() *PersistentVolumeStatusApplyConfiguration {\n\treturn &PersistentVolumeStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithPhase(value v1.PersistentVolumePhase) *PersistentVolumeStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithMessage(value string) *PersistentVolumeStatusApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithReason(value string) *PersistentVolumeStatusApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PhotonPersistentDiskVolumeSourceApplyConfiguration represents an declarative configuration of the PhotonPersistentDiskVolumeSource type for use\n// with apply.\ntype PhotonPersistentDiskVolumeSourceApplyConfiguration struct {\n\tPdID   *string `json:\"pdID,omitempty\"`\n\tFSType *string `json:\"fsType,omitempty\"`\n}\n\n// PhotonPersistentDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the PhotonPersistentDiskVolumeSource type for use with\n// apply.\nfunc PhotonPersistentDiskVolumeSource() *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\treturn &PhotonPersistentDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithPdID sets the PdID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PdID field is set to the value of the last call.\nfunc (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithPdID(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\tb.PdID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodApplyConfiguration represents an declarative configuration of the Pod type for use\n// with apply.\ntype PodApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PodStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Pod constructs an declarative configuration of the Pod type for use with\n// apply.\nfunc Pod(name, namespace string) *PodApplyConfiguration {\n\tb := &PodApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Pod\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPod extracts the applied configuration owned by fieldManager from\n// pod. If no managedFields are found in pod for fieldManager, a\n// PodApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// pod must be a unmodified Pod API object that was retrieved from the Kubernetes API.\n// ExtractPod provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPod(pod *apicorev1.Pod, fieldManager string) (*PodApplyConfiguration, error) {\n\treturn extractPod(pod, fieldManager, \"\")\n}\n\n// ExtractPodStatus is the same as ExtractPod except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodStatus(pod *apicorev1.Pod, fieldManager string) (*PodApplyConfiguration, error) {\n\treturn extractPod(pod, fieldManager, \"status\")\n}\n\nfunc extractPod(pod *apicorev1.Pod, fieldManager string, subresource string) (*PodApplyConfiguration, error) {\n\tb := &PodApplyConfiguration{}\n\terr := managedfields.ExtractInto(pod, internal.Parser().Type(\"io.k8s.api.core.v1.Pod\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(pod.Name)\n\tb.WithNamespace(pod.Namespace)\n\n\tb.WithKind(\"Pod\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithKind(value string) *PodApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithAPIVersion(value string) *PodApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithName(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithGenerateName(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithNamespace(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithUID(value types.UID) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithResourceVersion(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithGeneration(value int64) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodApplyConfiguration) WithLabels(entries map[string]string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodApplyConfiguration) WithAnnotations(entries map[string]string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodApplyConfiguration) WithFinalizers(values ...string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithStatus(value *PodStatusApplyConfiguration) *PodApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodAffinityApplyConfiguration represents an declarative configuration of the PodAffinity type for use\n// with apply.\ntype PodAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  []PodAffinityTermApplyConfiguration         `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// PodAffinityApplyConfiguration constructs an declarative configuration of the PodAffinity type for use with\n// apply.\nfunc PodAffinity() *PodAffinityApplyConfiguration {\n\treturn &PodAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodAffinityTermApplyConfiguration represents an declarative configuration of the PodAffinityTerm type for use\n// with apply.\ntype PodAffinityTermApplyConfiguration struct {\n\tLabelSelector     *v1.LabelSelectorApplyConfiguration `json:\"labelSelector,omitempty\"`\n\tNamespaces        []string                            `json:\"namespaces,omitempty\"`\n\tTopologyKey       *string                             `json:\"topologyKey,omitempty\"`\n\tNamespaceSelector *v1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n}\n\n// PodAffinityTermApplyConfiguration constructs an declarative configuration of the PodAffinityTerm type for use with\n// apply.\nfunc PodAffinityTerm() *PodAffinityTermApplyConfiguration {\n\treturn &PodAffinityTermApplyConfiguration{}\n}\n\n// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LabelSelector field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithLabelSelector(value *v1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration {\n\tb.LabelSelector = value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *PodAffinityTermApplyConfiguration) WithNamespaces(values ...string) *PodAffinityTermApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n\n// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TopologyKey field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithTopologyKey(value string) *PodAffinityTermApplyConfiguration {\n\tb.TopologyKey = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodAntiAffinityApplyConfiguration represents an declarative configuration of the PodAntiAffinity type for use\n// with apply.\ntype PodAntiAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  []PodAffinityTermApplyConfiguration         `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// PodAntiAffinityApplyConfiguration constructs an declarative configuration of the PodAntiAffinity type for use with\n// apply.\nfunc PodAntiAffinity() *PodAntiAffinityApplyConfiguration {\n\treturn &PodAntiAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAntiAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAntiAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PodConditionApplyConfiguration represents an declarative configuration of the PodCondition type for use\n// with apply.\ntype PodConditionApplyConfiguration struct {\n\tType               *v1.PodConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus  `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time         `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string              `json:\"reason,omitempty\"`\n\tMessage            *string              `json:\"message,omitempty\"`\n}\n\n// PodConditionApplyConfiguration constructs an declarative configuration of the PodCondition type for use with\n// apply.\nfunc PodCondition() *PodConditionApplyConfiguration {\n\treturn &PodConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithType(value v1.PodConditionType) *PodConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *PodConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PodConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PodConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithReason(value string) *PodConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithMessage(value string) *PodConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodDNSConfigApplyConfiguration represents an declarative configuration of the PodDNSConfig type for use\n// with apply.\ntype PodDNSConfigApplyConfiguration struct {\n\tNameservers []string                               `json:\"nameservers,omitempty\"`\n\tSearches    []string                               `json:\"searches,omitempty\"`\n\tOptions     []PodDNSConfigOptionApplyConfiguration `json:\"options,omitempty\"`\n}\n\n// PodDNSConfigApplyConfiguration constructs an declarative configuration of the PodDNSConfig type for use with\n// apply.\nfunc PodDNSConfig() *PodDNSConfigApplyConfiguration {\n\treturn &PodDNSConfigApplyConfiguration{}\n}\n\n// WithNameservers adds the given value to the Nameservers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Nameservers field.\nfunc (b *PodDNSConfigApplyConfiguration) WithNameservers(values ...string) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.Nameservers = append(b.Nameservers, values[i])\n\t}\n\treturn b\n}\n\n// WithSearches adds the given value to the Searches field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Searches field.\nfunc (b *PodDNSConfigApplyConfiguration) WithSearches(values ...string) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.Searches = append(b.Searches, values[i])\n\t}\n\treturn b\n}\n\n// WithOptions adds the given value to the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Options field.\nfunc (b *PodDNSConfigApplyConfiguration) WithOptions(values ...*PodDNSConfigOptionApplyConfiguration) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOptions\")\n\t\t}\n\t\tb.Options = append(b.Options, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodDNSConfigOptionApplyConfiguration represents an declarative configuration of the PodDNSConfigOption type for use\n// with apply.\ntype PodDNSConfigOptionApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// PodDNSConfigOptionApplyConfiguration constructs an declarative configuration of the PodDNSConfigOption type for use with\n// apply.\nfunc PodDNSConfigOption() *PodDNSConfigOptionApplyConfiguration {\n\treturn &PodDNSConfigOptionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDNSConfigOptionApplyConfiguration) WithName(value string) *PodDNSConfigOptionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PodDNSConfigOptionApplyConfiguration) WithValue(value string) *PodDNSConfigOptionApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodIPApplyConfiguration represents an declarative configuration of the PodIP type for use\n// with apply.\ntype PodIPApplyConfiguration struct {\n\tIP *string `json:\"ip,omitempty\"`\n}\n\n// PodIPApplyConfiguration constructs an declarative configuration of the PodIP type for use with\n// apply.\nfunc PodIP() *PodIPApplyConfiguration {\n\treturn &PodIPApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *PodIPApplyConfiguration) WithIP(value string) *PodIPApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podos.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PodOSApplyConfiguration represents an declarative configuration of the PodOS type for use\n// with apply.\ntype PodOSApplyConfiguration struct {\n\tName *v1.OSName `json:\"name,omitempty\"`\n}\n\n// PodOSApplyConfiguration constructs an declarative configuration of the PodOS type for use with\n// apply.\nfunc PodOS() *PodOSApplyConfiguration {\n\treturn &PodOSApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodOSApplyConfiguration) WithName(value v1.OSName) *PodOSApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PodReadinessGateApplyConfiguration represents an declarative configuration of the PodReadinessGate type for use\n// with apply.\ntype PodReadinessGateApplyConfiguration struct {\n\tConditionType *v1.PodConditionType `json:\"conditionType,omitempty\"`\n}\n\n// PodReadinessGateApplyConfiguration constructs an declarative configuration of the PodReadinessGate type for use with\n// apply.\nfunc PodReadinessGate() *PodReadinessGateApplyConfiguration {\n\treturn &PodReadinessGateApplyConfiguration{}\n}\n\n// WithConditionType sets the ConditionType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConditionType field is set to the value of the last call.\nfunc (b *PodReadinessGateApplyConfiguration) WithConditionType(value v1.PodConditionType) *PodReadinessGateApplyConfiguration {\n\tb.ConditionType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodResourceClaimApplyConfiguration represents an declarative configuration of the PodResourceClaim type for use\n// with apply.\ntype PodResourceClaimApplyConfiguration struct {\n\tName   *string                        `json:\"name,omitempty\"`\n\tSource *ClaimSourceApplyConfiguration `json:\"source,omitempty\"`\n}\n\n// PodResourceClaimApplyConfiguration constructs an declarative configuration of the PodResourceClaim type for use with\n// apply.\nfunc PodResourceClaim() *PodResourceClaimApplyConfiguration {\n\treturn &PodResourceClaimApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodResourceClaimApplyConfiguration) WithName(value string) *PodResourceClaimApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *PodResourceClaimApplyConfiguration) WithSource(value *ClaimSourceApplyConfiguration) *PodResourceClaimApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podschedulinggate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodSchedulingGateApplyConfiguration represents an declarative configuration of the PodSchedulingGate type for use\n// with apply.\ntype PodSchedulingGateApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PodSchedulingGateApplyConfiguration constructs an declarative configuration of the PodSchedulingGate type for use with\n// apply.\nfunc PodSchedulingGate() *PodSchedulingGateApplyConfiguration {\n\treturn &PodSchedulingGateApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodSchedulingGateApplyConfiguration) WithName(value string) *PodSchedulingGateApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodSecurityContextApplyConfiguration represents an declarative configuration of the PodSecurityContext type for use\n// with apply.\ntype PodSecurityContextApplyConfiguration struct {\n\tSELinuxOptions      *SELinuxOptionsApplyConfiguration                `json:\"seLinuxOptions,omitempty\"`\n\tWindowsOptions      *WindowsSecurityContextOptionsApplyConfiguration `json:\"windowsOptions,omitempty\"`\n\tRunAsUser           *int64                                           `json:\"runAsUser,omitempty\"`\n\tRunAsGroup          *int64                                           `json:\"runAsGroup,omitempty\"`\n\tRunAsNonRoot        *bool                                            `json:\"runAsNonRoot,omitempty\"`\n\tSupplementalGroups  []int64                                          `json:\"supplementalGroups,omitempty\"`\n\tFSGroup             *int64                                           `json:\"fsGroup,omitempty\"`\n\tSysctls             []SysctlApplyConfiguration                       `json:\"sysctls,omitempty\"`\n\tFSGroupChangePolicy *corev1.PodFSGroupChangePolicy                   `json:\"fsGroupChangePolicy,omitempty\"`\n\tSeccompProfile      *SeccompProfileApplyConfiguration                `json:\"seccompProfile,omitempty\"`\n}\n\n// PodSecurityContextApplyConfiguration constructs an declarative configuration of the PodSecurityContext type for use with\n// apply.\nfunc PodSecurityContext() *PodSecurityContextApplyConfiguration {\n\treturn &PodSecurityContextApplyConfiguration{}\n}\n\n// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxOptions field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.SELinuxOptions = value\n\treturn b\n}\n\n// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WindowsOptions field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.WindowsOptions = value\n\treturn b\n}\n\n// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUser field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsUser(value int64) *PodSecurityContextApplyConfiguration {\n\tb.RunAsUser = &value\n\treturn b\n}\n\n// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsGroup field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsGroup(value int64) *PodSecurityContextApplyConfiguration {\n\tb.RunAsGroup = &value\n\treturn b\n}\n\n// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsNonRoot field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *PodSecurityContextApplyConfiguration {\n\tb.RunAsNonRoot = &value\n\treturn b\n}\n\n// WithSupplementalGroups adds the given value to the SupplementalGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the SupplementalGroups field.\nfunc (b *PodSecurityContextApplyConfiguration) WithSupplementalGroups(values ...int64) *PodSecurityContextApplyConfiguration {\n\tfor i := range values {\n\t\tb.SupplementalGroups = append(b.SupplementalGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithFSGroup sets the FSGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroup field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithFSGroup(value int64) *PodSecurityContextApplyConfiguration {\n\tb.FSGroup = &value\n\treturn b\n}\n\n// WithSysctls adds the given value to the Sysctls field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Sysctls field.\nfunc (b *PodSecurityContextApplyConfiguration) WithSysctls(values ...*SysctlApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSysctls\")\n\t\t}\n\t\tb.Sysctls = append(b.Sysctls, *values[i])\n\t}\n\treturn b\n}\n\n// WithFSGroupChangePolicy sets the FSGroupChangePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupChangePolicy field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithFSGroupChangePolicy(value corev1.PodFSGroupChangePolicy) *PodSecurityContextApplyConfiguration {\n\tb.FSGroupChangePolicy = &value\n\treturn b\n}\n\n// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SeccompProfile field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.SeccompProfile = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodSpecApplyConfiguration represents an declarative configuration of the PodSpec type for use\n// with apply.\ntype PodSpecApplyConfiguration struct {\n\tVolumes                       []VolumeApplyConfiguration                   `json:\"volumes,omitempty\"`\n\tInitContainers                []ContainerApplyConfiguration                `json:\"initContainers,omitempty\"`\n\tContainers                    []ContainerApplyConfiguration                `json:\"containers,omitempty\"`\n\tEphemeralContainers           []EphemeralContainerApplyConfiguration       `json:\"ephemeralContainers,omitempty\"`\n\tRestartPolicy                 *corev1.RestartPolicy                        `json:\"restartPolicy,omitempty\"`\n\tTerminationGracePeriodSeconds *int64                                       `json:\"terminationGracePeriodSeconds,omitempty\"`\n\tActiveDeadlineSeconds         *int64                                       `json:\"activeDeadlineSeconds,omitempty\"`\n\tDNSPolicy                     *corev1.DNSPolicy                            `json:\"dnsPolicy,omitempty\"`\n\tNodeSelector                  map[string]string                            `json:\"nodeSelector,omitempty\"`\n\tServiceAccountName            *string                                      `json:\"serviceAccountName,omitempty\"`\n\tDeprecatedServiceAccount      *string                                      `json:\"serviceAccount,omitempty\"`\n\tAutomountServiceAccountToken  *bool                                        `json:\"automountServiceAccountToken,omitempty\"`\n\tNodeName                      *string                                      `json:\"nodeName,omitempty\"`\n\tHostNetwork                   *bool                                        `json:\"hostNetwork,omitempty\"`\n\tHostPID                       *bool                                        `json:\"hostPID,omitempty\"`\n\tHostIPC                       *bool                                        `json:\"hostIPC,omitempty\"`\n\tShareProcessNamespace         *bool                                        `json:\"shareProcessNamespace,omitempty\"`\n\tSecurityContext               *PodSecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tImagePullSecrets              []LocalObjectReferenceApplyConfiguration     `json:\"imagePullSecrets,omitempty\"`\n\tHostname                      *string                                      `json:\"hostname,omitempty\"`\n\tSubdomain                     *string                                      `json:\"subdomain,omitempty\"`\n\tAffinity                      *AffinityApplyConfiguration                  `json:\"affinity,omitempty\"`\n\tSchedulerName                 *string                                      `json:\"schedulerName,omitempty\"`\n\tTolerations                   []TolerationApplyConfiguration               `json:\"tolerations,omitempty\"`\n\tHostAliases                   []HostAliasApplyConfiguration                `json:\"hostAliases,omitempty\"`\n\tPriorityClassName             *string                                      `json:\"priorityClassName,omitempty\"`\n\tPriority                      *int32                                       `json:\"priority,omitempty\"`\n\tDNSConfig                     *PodDNSConfigApplyConfiguration              `json:\"dnsConfig,omitempty\"`\n\tReadinessGates                []PodReadinessGateApplyConfiguration         `json:\"readinessGates,omitempty\"`\n\tRuntimeClassName              *string                                      `json:\"runtimeClassName,omitempty\"`\n\tEnableServiceLinks            *bool                                        `json:\"enableServiceLinks,omitempty\"`\n\tPreemptionPolicy              *corev1.PreemptionPolicy                     `json:\"preemptionPolicy,omitempty\"`\n\tOverhead                      *corev1.ResourceList                         `json:\"overhead,omitempty\"`\n\tTopologySpreadConstraints     []TopologySpreadConstraintApplyConfiguration `json:\"topologySpreadConstraints,omitempty\"`\n\tSetHostnameAsFQDN             *bool                                        `json:\"setHostnameAsFQDN,omitempty\"`\n\tOS                            *PodOSApplyConfiguration                     `json:\"os,omitempty\"`\n\tHostUsers                     *bool                                        `json:\"hostUsers,omitempty\"`\n\tSchedulingGates               []PodSchedulingGateApplyConfiguration        `json:\"schedulingGates,omitempty\"`\n\tResourceClaims                []PodResourceClaimApplyConfiguration         `json:\"resourceClaims,omitempty\"`\n}\n\n// PodSpecApplyConfiguration constructs an declarative configuration of the PodSpec type for use with\n// apply.\nfunc PodSpec() *PodSpecApplyConfiguration {\n\treturn &PodSpecApplyConfiguration{}\n}\n\n// WithVolumes adds the given value to the Volumes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Volumes field.\nfunc (b *PodSpecApplyConfiguration) WithVolumes(values ...*VolumeApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumes\")\n\t\t}\n\t\tb.Volumes = append(b.Volumes, *values[i])\n\t}\n\treturn b\n}\n\n// WithInitContainers adds the given value to the InitContainers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the InitContainers field.\nfunc (b *PodSpecApplyConfiguration) WithInitContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithInitContainers\")\n\t\t}\n\t\tb.InitContainers = append(b.InitContainers, *values[i])\n\t}\n\treturn b\n}\n\n// WithContainers adds the given value to the Containers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Containers field.\nfunc (b *PodSpecApplyConfiguration) WithContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithContainers\")\n\t\t}\n\t\tb.Containers = append(b.Containers, *values[i])\n\t}\n\treturn b\n}\n\n// WithEphemeralContainers adds the given value to the EphemeralContainers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EphemeralContainers field.\nfunc (b *PodSpecApplyConfiguration) WithEphemeralContainers(values ...*EphemeralContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEphemeralContainers\")\n\t\t}\n\t\tb.EphemeralContainers = append(b.EphemeralContainers, *values[i])\n\t}\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithRestartPolicy(value corev1.RestartPolicy) *PodSpecApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n\n// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *PodSpecApplyConfiguration {\n\tb.TerminationGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *PodSpecApplyConfiguration {\n\tb.ActiveDeadlineSeconds = &value\n\treturn b\n}\n\n// WithDNSPolicy sets the DNSPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DNSPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDNSPolicy(value corev1.DNSPolicy) *PodSpecApplyConfiguration {\n\tb.DNSPolicy = &value\n\treturn b\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *PodSpecApplyConfiguration) WithNodeSelector(entries map[string]string) *PodSpecApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithServiceAccountName sets the ServiceAccountName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccountName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithServiceAccountName(value string) *PodSpecApplyConfiguration {\n\tb.ServiceAccountName = &value\n\treturn b\n}\n\n// WithDeprecatedServiceAccount sets the DeprecatedServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedServiceAccount field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDeprecatedServiceAccount(value string) *PodSpecApplyConfiguration {\n\tb.DeprecatedServiceAccount = &value\n\treturn b\n}\n\n// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithAutomountServiceAccountToken(value bool) *PodSpecApplyConfiguration {\n\tb.AutomountServiceAccountToken = &value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithNodeName(value string) *PodSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostNetwork field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostNetwork(value bool) *PodSpecApplyConfiguration {\n\tb.HostNetwork = &value\n\treturn b\n}\n\n// WithHostPID sets the HostPID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPID field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostPID(value bool) *PodSpecApplyConfiguration {\n\tb.HostPID = &value\n\treturn b\n}\n\n// WithHostIPC sets the HostIPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIPC field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostIPC(value bool) *PodSpecApplyConfiguration {\n\tb.HostIPC = &value\n\treturn b\n}\n\n// WithShareProcessNamespace sets the ShareProcessNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareProcessNamespace field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithShareProcessNamespace(value bool) *PodSpecApplyConfiguration {\n\tb.ShareProcessNamespace = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSecurityContext(value *PodSecurityContextApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field.\nfunc (b *PodSpecApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImagePullSecrets\")\n\t\t}\n\t\tb.ImagePullSecrets = append(b.ImagePullSecrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostname(value string) *PodSpecApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithSubdomain sets the Subdomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Subdomain field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSubdomain(value string) *PodSpecApplyConfiguration {\n\tb.Subdomain = &value\n\treturn b\n}\n\n// WithAffinity sets the Affinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Affinity field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithAffinity(value *AffinityApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.Affinity = value\n\treturn b\n}\n\n// WithSchedulerName sets the SchedulerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SchedulerName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSchedulerName(value string) *PodSpecApplyConfiguration {\n\tb.SchedulerName = &value\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *PodSpecApplyConfiguration) WithTolerations(values ...*TolerationApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n\n// WithHostAliases adds the given value to the HostAliases field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HostAliases field.\nfunc (b *PodSpecApplyConfiguration) WithHostAliases(values ...*HostAliasApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHostAliases\")\n\t\t}\n\t\tb.HostAliases = append(b.HostAliases, *values[i])\n\t}\n\treturn b\n}\n\n// WithPriorityClassName sets the PriorityClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityClassName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPriorityClassName(value string) *PodSpecApplyConfiguration {\n\tb.PriorityClassName = &value\n\treturn b\n}\n\n// WithPriority sets the Priority field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Priority field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPriority(value int32) *PodSpecApplyConfiguration {\n\tb.Priority = &value\n\treturn b\n}\n\n// WithDNSConfig sets the DNSConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DNSConfig field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDNSConfig(value *PodDNSConfigApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.DNSConfig = value\n\treturn b\n}\n\n// WithReadinessGates adds the given value to the ReadinessGates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ReadinessGates field.\nfunc (b *PodSpecApplyConfiguration) WithReadinessGates(values ...*PodReadinessGateApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithReadinessGates\")\n\t\t}\n\t\tb.ReadinessGates = append(b.ReadinessGates, *values[i])\n\t}\n\treturn b\n}\n\n// WithRuntimeClassName sets the RuntimeClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RuntimeClassName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithRuntimeClassName(value string) *PodSpecApplyConfiguration {\n\tb.RuntimeClassName = &value\n\treturn b\n}\n\n// WithEnableServiceLinks sets the EnableServiceLinks field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EnableServiceLinks field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithEnableServiceLinks(value bool) *PodSpecApplyConfiguration {\n\tb.EnableServiceLinks = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PodSpecApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithOverhead(value corev1.ResourceList) *PodSpecApplyConfiguration {\n\tb.Overhead = &value\n\treturn b\n}\n\n// WithTopologySpreadConstraints adds the given value to the TopologySpreadConstraints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologySpreadConstraints field.\nfunc (b *PodSpecApplyConfiguration) WithTopologySpreadConstraints(values ...*TopologySpreadConstraintApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTopologySpreadConstraints\")\n\t\t}\n\t\tb.TopologySpreadConstraints = append(b.TopologySpreadConstraints, *values[i])\n\t}\n\treturn b\n}\n\n// WithSetHostnameAsFQDN sets the SetHostnameAsFQDN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SetHostnameAsFQDN field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSetHostnameAsFQDN(value bool) *PodSpecApplyConfiguration {\n\tb.SetHostnameAsFQDN = &value\n\treturn b\n}\n\n// WithOS sets the OS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OS field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithOS(value *PodOSApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.OS = value\n\treturn b\n}\n\n// WithHostUsers sets the HostUsers field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostUsers field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostUsers(value bool) *PodSpecApplyConfiguration {\n\tb.HostUsers = &value\n\treturn b\n}\n\n// WithSchedulingGates adds the given value to the SchedulingGates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the SchedulingGates field.\nfunc (b *PodSpecApplyConfiguration) WithSchedulingGates(values ...*PodSchedulingGateApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSchedulingGates\")\n\t\t}\n\t\tb.SchedulingGates = append(b.SchedulingGates, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceClaims adds the given value to the ResourceClaims field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceClaims field.\nfunc (b *PodSpecApplyConfiguration) WithResourceClaims(values ...*PodResourceClaimApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceClaims\")\n\t\t}\n\t\tb.ResourceClaims = append(b.ResourceClaims, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PodStatusApplyConfiguration represents an declarative configuration of the PodStatus type for use\n// with apply.\ntype PodStatusApplyConfiguration struct {\n\tPhase                      *v1.PodPhase                        `json:\"phase,omitempty\"`\n\tConditions                 []PodConditionApplyConfiguration    `json:\"conditions,omitempty\"`\n\tMessage                    *string                             `json:\"message,omitempty\"`\n\tReason                     *string                             `json:\"reason,omitempty\"`\n\tNominatedNodeName          *string                             `json:\"nominatedNodeName,omitempty\"`\n\tHostIP                     *string                             `json:\"hostIP,omitempty\"`\n\tPodIP                      *string                             `json:\"podIP,omitempty\"`\n\tPodIPs                     []PodIPApplyConfiguration           `json:\"podIPs,omitempty\"`\n\tStartTime                  *metav1.Time                        `json:\"startTime,omitempty\"`\n\tInitContainerStatuses      []ContainerStatusApplyConfiguration `json:\"initContainerStatuses,omitempty\"`\n\tContainerStatuses          []ContainerStatusApplyConfiguration `json:\"containerStatuses,omitempty\"`\n\tQOSClass                   *v1.PodQOSClass                     `json:\"qosClass,omitempty\"`\n\tEphemeralContainerStatuses []ContainerStatusApplyConfiguration `json:\"ephemeralContainerStatuses,omitempty\"`\n\tResize                     *v1.PodResizeStatus                 `json:\"resize,omitempty\"`\n}\n\n// PodStatusApplyConfiguration constructs an declarative configuration of the PodStatus type for use with\n// apply.\nfunc PodStatus() *PodStatusApplyConfiguration {\n\treturn &PodStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithPhase(value v1.PodPhase) *PodStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodStatusApplyConfiguration) WithConditions(values ...*PodConditionApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithMessage(value string) *PodStatusApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithReason(value string) *PodStatusApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithNominatedNodeName sets the NominatedNodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominatedNodeName field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithNominatedNodeName(value string) *PodStatusApplyConfiguration {\n\tb.NominatedNodeName = &value\n\treturn b\n}\n\n// WithHostIP sets the HostIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIP field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithHostIP(value string) *PodStatusApplyConfiguration {\n\tb.HostIP = &value\n\treturn b\n}\n\n// WithPodIP sets the PodIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodIP field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithPodIP(value string) *PodStatusApplyConfiguration {\n\tb.PodIP = &value\n\treturn b\n}\n\n// WithPodIPs adds the given value to the PodIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PodIPs field.\nfunc (b *PodStatusApplyConfiguration) WithPodIPs(values ...*PodIPApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPodIPs\")\n\t\t}\n\t\tb.PodIPs = append(b.PodIPs, *values[i])\n\t}\n\treturn b\n}\n\n// WithStartTime sets the StartTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartTime field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithStartTime(value metav1.Time) *PodStatusApplyConfiguration {\n\tb.StartTime = &value\n\treturn b\n}\n\n// WithInitContainerStatuses adds the given value to the InitContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the InitContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithInitContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithInitContainerStatuses\")\n\t\t}\n\t\tb.InitContainerStatuses = append(b.InitContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithContainerStatuses adds the given value to the ContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithContainerStatuses\")\n\t\t}\n\t\tb.ContainerStatuses = append(b.ContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithQOSClass sets the QOSClass field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QOSClass field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithQOSClass(value v1.PodQOSClass) *PodStatusApplyConfiguration {\n\tb.QOSClass = &value\n\treturn b\n}\n\n// WithEphemeralContainerStatuses adds the given value to the EphemeralContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EphemeralContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithEphemeralContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEphemeralContainerStatuses\")\n\t\t}\n\t\tb.EphemeralContainerStatuses = append(b.EphemeralContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithResize sets the Resize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resize field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithResize(value v1.PodResizeStatus) *PodStatusApplyConfiguration {\n\tb.Resize = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodTemplateApplyConfiguration represents an declarative configuration of the PodTemplate type for use\n// with apply.\ntype PodTemplateApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tTemplate                         *PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// PodTemplate constructs an declarative configuration of the PodTemplate type for use with\n// apply.\nfunc PodTemplate(name, namespace string) *PodTemplateApplyConfiguration {\n\tb := &PodTemplateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodTemplate\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPodTemplate extracts the applied configuration owned by fieldManager from\n// podTemplate. If no managedFields are found in podTemplate for fieldManager, a\n// PodTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podTemplate must be a unmodified PodTemplate API object that was retrieved from the Kubernetes API.\n// ExtractPodTemplate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodTemplate(podTemplate *apicorev1.PodTemplate, fieldManager string) (*PodTemplateApplyConfiguration, error) {\n\treturn extractPodTemplate(podTemplate, fieldManager, \"\")\n}\n\n// ExtractPodTemplateStatus is the same as ExtractPodTemplate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodTemplateStatus(podTemplate *apicorev1.PodTemplate, fieldManager string) (*PodTemplateApplyConfiguration, error) {\n\treturn extractPodTemplate(podTemplate, fieldManager, \"status\")\n}\n\nfunc extractPodTemplate(podTemplate *apicorev1.PodTemplate, fieldManager string, subresource string) (*PodTemplateApplyConfiguration, error) {\n\tb := &PodTemplateApplyConfiguration{}\n\terr := managedfields.ExtractInto(podTemplate, internal.Parser().Type(\"io.k8s.api.core.v1.PodTemplate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podTemplate.Name)\n\tb.WithNamespace(podTemplate.Namespace)\n\n\tb.WithKind(\"PodTemplate\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithKind(value string) *PodTemplateApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithAPIVersion(value string) *PodTemplateApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithName(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithGenerateName(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithNamespace(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithUID(value types.UID) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithResourceVersion(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithGeneration(value int64) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodTemplateApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodTemplateApplyConfiguration) WithFinalizers(values ...string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *PodTemplateApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodTemplateSpecApplyConfiguration represents an declarative configuration of the PodTemplateSpec type for use\n// with apply.\ntype PodTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// PodTemplateSpecApplyConfiguration constructs an declarative configuration of the PodTemplateSpec type for use with\n// apply.\nfunc PodTemplateSpec() *PodTemplateSpecApplyConfiguration {\n\treturn &PodTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithName(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithGenerateName(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithNamespace(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithUID(value types.UID) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithResourceVersion(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithGeneration(value int64) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// PortStatusApplyConfiguration represents an declarative configuration of the PortStatus type for use\n// with apply.\ntype PortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// PortStatusApplyConfiguration constructs an declarative configuration of the PortStatus type for use with\n// apply.\nfunc PortStatus() *PortStatusApplyConfiguration {\n\treturn &PortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithPort(value int32) *PortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *PortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithError(value string) *PortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PortworxVolumeSourceApplyConfiguration represents an declarative configuration of the PortworxVolumeSource type for use\n// with apply.\ntype PortworxVolumeSourceApplyConfiguration struct {\n\tVolumeID *string `json:\"volumeID,omitempty\"`\n\tFSType   *string `json:\"fsType,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n}\n\n// PortworxVolumeSourceApplyConfiguration constructs an declarative configuration of the PortworxVolumeSource type for use with\n// apply.\nfunc PortworxVolumeSource() *PortworxVolumeSourceApplyConfiguration {\n\treturn &PortworxVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithVolumeID(value string) *PortworxVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithFSType(value string) *PortworxVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PortworxVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PreferredSchedulingTermApplyConfiguration represents an declarative configuration of the PreferredSchedulingTerm type for use\n// with apply.\ntype PreferredSchedulingTermApplyConfiguration struct {\n\tWeight     *int32                              `json:\"weight,omitempty\"`\n\tPreference *NodeSelectorTermApplyConfiguration `json:\"preference,omitempty\"`\n}\n\n// PreferredSchedulingTermApplyConfiguration constructs an declarative configuration of the PreferredSchedulingTerm type for use with\n// apply.\nfunc PreferredSchedulingTerm() *PreferredSchedulingTermApplyConfiguration {\n\treturn &PreferredSchedulingTermApplyConfiguration{}\n}\n\n// WithWeight sets the Weight field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Weight field is set to the value of the last call.\nfunc (b *PreferredSchedulingTermApplyConfiguration) WithWeight(value int32) *PreferredSchedulingTermApplyConfiguration {\n\tb.Weight = &value\n\treturn b\n}\n\n// WithPreference sets the Preference field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Preference field is set to the value of the last call.\nfunc (b *PreferredSchedulingTermApplyConfiguration) WithPreference(value *NodeSelectorTermApplyConfiguration) *PreferredSchedulingTermApplyConfiguration {\n\tb.Preference = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProbeApplyConfiguration represents an declarative configuration of the Probe type for use\n// with apply.\ntype ProbeApplyConfiguration struct {\n\tProbeHandlerApplyConfiguration `json:\",inline\"`\n\tInitialDelaySeconds            *int32 `json:\"initialDelaySeconds,omitempty\"`\n\tTimeoutSeconds                 *int32 `json:\"timeoutSeconds,omitempty\"`\n\tPeriodSeconds                  *int32 `json:\"periodSeconds,omitempty\"`\n\tSuccessThreshold               *int32 `json:\"successThreshold,omitempty\"`\n\tFailureThreshold               *int32 `json:\"failureThreshold,omitempty\"`\n\tTerminationGracePeriodSeconds  *int64 `json:\"terminationGracePeriodSeconds,omitempty\"`\n}\n\n// ProbeApplyConfiguration constructs an declarative configuration of the Probe type for use with\n// apply.\nfunc Probe() *ProbeApplyConfiguration {\n\treturn &ProbeApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.TCPSocket = value\n\treturn b\n}\n\n// WithGRPC sets the GRPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GRPC field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithGRPC(value *GRPCActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.GRPC = value\n\treturn b\n}\n\n// WithInitialDelaySeconds sets the InitialDelaySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitialDelaySeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithInitialDelaySeconds(value int32) *ProbeApplyConfiguration {\n\tb.InitialDelaySeconds = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTimeoutSeconds(value int32) *ProbeApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithPeriodSeconds(value int32) *ProbeApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n\n// WithSuccessThreshold sets the SuccessThreshold field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessThreshold field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithSuccessThreshold(value int32) *ProbeApplyConfiguration {\n\tb.SuccessThreshold = &value\n\treturn b\n}\n\n// WithFailureThreshold sets the FailureThreshold field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailureThreshold field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithFailureThreshold(value int32) *ProbeApplyConfiguration {\n\tb.FailureThreshold = &value\n\treturn b\n}\n\n// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *ProbeApplyConfiguration {\n\tb.TerminationGracePeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/probehandler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProbeHandlerApplyConfiguration represents an declarative configuration of the ProbeHandler type for use\n// with apply.\ntype ProbeHandlerApplyConfiguration struct {\n\tExec      *ExecActionApplyConfiguration      `json:\"exec,omitempty\"`\n\tHTTPGet   *HTTPGetActionApplyConfiguration   `json:\"httpGet,omitempty\"`\n\tTCPSocket *TCPSocketActionApplyConfiguration `json:\"tcpSocket,omitempty\"`\n\tGRPC      *GRPCActionApplyConfiguration      `json:\"grpc,omitempty\"`\n}\n\n// ProbeHandlerApplyConfiguration constructs an declarative configuration of the ProbeHandler type for use with\n// apply.\nfunc ProbeHandler() *ProbeHandlerApplyConfiguration {\n\treturn &ProbeHandlerApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.TCPSocket = value\n\treturn b\n}\n\n// WithGRPC sets the GRPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GRPC field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithGRPC(value *GRPCActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.GRPC = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProjectedVolumeSourceApplyConfiguration represents an declarative configuration of the ProjectedVolumeSource type for use\n// with apply.\ntype ProjectedVolumeSourceApplyConfiguration struct {\n\tSources     []VolumeProjectionApplyConfiguration `json:\"sources,omitempty\"`\n\tDefaultMode *int32                               `json:\"defaultMode,omitempty\"`\n}\n\n// ProjectedVolumeSourceApplyConfiguration constructs an declarative configuration of the ProjectedVolumeSource type for use with\n// apply.\nfunc ProjectedVolumeSource() *ProjectedVolumeSourceApplyConfiguration {\n\treturn &ProjectedVolumeSourceApplyConfiguration{}\n}\n\n// WithSources adds the given value to the Sources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Sources field.\nfunc (b *ProjectedVolumeSourceApplyConfiguration) WithSources(values ...*VolumeProjectionApplyConfiguration) *ProjectedVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSources\")\n\t\t}\n\t\tb.Sources = append(b.Sources, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *ProjectedVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ProjectedVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// QuobyteVolumeSourceApplyConfiguration represents an declarative configuration of the QuobyteVolumeSource type for use\n// with apply.\ntype QuobyteVolumeSourceApplyConfiguration struct {\n\tRegistry *string `json:\"registry,omitempty\"`\n\tVolume   *string `json:\"volume,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n\tUser     *string `json:\"user,omitempty\"`\n\tGroup    *string `json:\"group,omitempty\"`\n\tTenant   *string `json:\"tenant,omitempty\"`\n}\n\n// QuobyteVolumeSourceApplyConfiguration constructs an declarative configuration of the QuobyteVolumeSource type for use with\n// apply.\nfunc QuobyteVolumeSource() *QuobyteVolumeSourceApplyConfiguration {\n\treturn &QuobyteVolumeSourceApplyConfiguration{}\n}\n\n// WithRegistry sets the Registry field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Registry field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithRegistry(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Registry = &value\n\treturn b\n}\n\n// WithVolume sets the Volume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Volume field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithVolume(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Volume = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithReadOnly(value bool) *QuobyteVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithUser(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithGroup(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithTenant sets the Tenant field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Tenant field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithTenant(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Tenant = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RBDPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the RBDPersistentVolumeSource type for use\n// with apply.\ntype RBDPersistentVolumeSourceApplyConfiguration struct {\n\tCephMonitors []string                           `json:\"monitors,omitempty\"`\n\tRBDImage     *string                            `json:\"image,omitempty\"`\n\tFSType       *string                            `json:\"fsType,omitempty\"`\n\tRBDPool      *string                            `json:\"pool,omitempty\"`\n\tRadosUser    *string                            `json:\"user,omitempty\"`\n\tKeyring      *string                            `json:\"keyring,omitempty\"`\n\tSecretRef    *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly     *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// RBDPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the RBDPersistentVolumeSource type for use with\n// apply.\nfunc RBDPersistentVolumeSource() *RBDPersistentVolumeSourceApplyConfiguration {\n\treturn &RBDPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CephMonitors field.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.CephMonitors = append(b.CephMonitors, values[i])\n\t}\n\treturn b\n}\n\n// WithRBDImage sets the RBDImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDImage field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RBDImage = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithRBDPool sets the RBDPool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDPool field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RBDPool = &value\n\treturn b\n}\n\n// WithRadosUser sets the RadosUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RadosUser field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RadosUser = &value\n\treturn b\n}\n\n// WithKeyring sets the Keyring field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Keyring field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.Keyring = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RBDVolumeSourceApplyConfiguration represents an declarative configuration of the RBDVolumeSource type for use\n// with apply.\ntype RBDVolumeSourceApplyConfiguration struct {\n\tCephMonitors []string                                `json:\"monitors,omitempty\"`\n\tRBDImage     *string                                 `json:\"image,omitempty\"`\n\tFSType       *string                                 `json:\"fsType,omitempty\"`\n\tRBDPool      *string                                 `json:\"pool,omitempty\"`\n\tRadosUser    *string                                 `json:\"user,omitempty\"`\n\tKeyring      *string                                 `json:\"keyring,omitempty\"`\n\tSecretRef    *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly     *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// RBDVolumeSourceApplyConfiguration constructs an declarative configuration of the RBDVolumeSource type for use with\n// apply.\nfunc RBDVolumeSource() *RBDVolumeSourceApplyConfiguration {\n\treturn &RBDVolumeSourceApplyConfiguration{}\n}\n\n// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CephMonitors field.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.CephMonitors = append(b.CephMonitors, values[i])\n\t}\n\treturn b\n}\n\n// WithRBDImage sets the RBDImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDImage field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RBDImage = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithFSType(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithRBDPool sets the RBDPool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDPool field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RBDPool = &value\n\treturn b\n}\n\n// WithRadosUser sets the RadosUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RadosUser field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RadosUser = &value\n\treturn b\n}\n\n// WithKeyring sets the Keyring field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Keyring field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.Keyring = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *RBDVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicationControllerApplyConfiguration represents an declarative configuration of the ReplicationController type for use\n// with apply.\ntype ReplicationControllerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicationControllerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicationControllerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicationController constructs an declarative configuration of the ReplicationController type for use with\n// apply.\nfunc ReplicationController(name, namespace string) *ReplicationControllerApplyConfiguration {\n\tb := &ReplicationControllerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicationController\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractReplicationController extracts the applied configuration owned by fieldManager from\n// replicationController. If no managedFields are found in replicationController for fieldManager, a\n// ReplicationControllerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicationController must be a unmodified ReplicationController API object that was retrieved from the Kubernetes API.\n// ExtractReplicationController provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicationController(replicationController *apicorev1.ReplicationController, fieldManager string) (*ReplicationControllerApplyConfiguration, error) {\n\treturn extractReplicationController(replicationController, fieldManager, \"\")\n}\n\n// ExtractReplicationControllerStatus is the same as ExtractReplicationController except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicationControllerStatus(replicationController *apicorev1.ReplicationController, fieldManager string) (*ReplicationControllerApplyConfiguration, error) {\n\treturn extractReplicationController(replicationController, fieldManager, \"status\")\n}\n\nfunc extractReplicationController(replicationController *apicorev1.ReplicationController, fieldManager string, subresource string) (*ReplicationControllerApplyConfiguration, error) {\n\tb := &ReplicationControllerApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicationController, internal.Parser().Type(\"io.k8s.api.core.v1.ReplicationController\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicationController.Name)\n\tb.WithNamespace(replicationController.Namespace)\n\n\tb.WithKind(\"ReplicationController\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithKind(value string) *ReplicationControllerApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithAPIVersion(value string) *ReplicationControllerApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithName(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithGenerateName(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithNamespace(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithUID(value types.UID) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithResourceVersion(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithGeneration(value int64) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicationControllerApplyConfiguration) WithLabels(entries map[string]string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicationControllerApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicationControllerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicationControllerApplyConfiguration) WithFinalizers(values ...string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicationControllerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithSpec(value *ReplicationControllerSpecApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithStatus(value *ReplicationControllerStatusApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicationControllerConditionApplyConfiguration represents an declarative configuration of the ReplicationControllerCondition type for use\n// with apply.\ntype ReplicationControllerConditionApplyConfiguration struct {\n\tType               *v1.ReplicationControllerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                    `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                           `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                `json:\"reason,omitempty\"`\n\tMessage            *string                                `json:\"message,omitempty\"`\n}\n\n// ReplicationControllerConditionApplyConfiguration constructs an declarative configuration of the ReplicationControllerCondition type for use with\n// apply.\nfunc ReplicationControllerCondition() *ReplicationControllerConditionApplyConfiguration {\n\treturn &ReplicationControllerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithType(value v1.ReplicationControllerConditionType) *ReplicationControllerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicationControllerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicationControllerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithReason(value string) *ReplicationControllerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithMessage(value string) *ReplicationControllerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicationControllerSpecApplyConfiguration represents an declarative configuration of the ReplicationControllerSpec type for use\n// with apply.\ntype ReplicationControllerSpecApplyConfiguration struct {\n\tReplicas        *int32                             `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                             `json:\"minReadySeconds,omitempty\"`\n\tSelector        map[string]string                  `json:\"selector,omitempty\"`\n\tTemplate        *PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicationControllerSpecApplyConfiguration constructs an declarative configuration of the ReplicationControllerSpec type for use with\n// apply.\nfunc ReplicationControllerSpec() *ReplicationControllerSpecApplyConfiguration {\n\treturn &ReplicationControllerSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithReplicas(value int32) *ReplicationControllerSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicationControllerSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector puts the entries into the Selector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Selector field,\n// overwriting an existing map entries in Selector field with the same key.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithSelector(entries map[string]string) *ReplicationControllerSpecApplyConfiguration {\n\tif b.Selector == nil && len(entries) > 0 {\n\t\tb.Selector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Selector[k] = v\n\t}\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *ReplicationControllerSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicationControllerStatusApplyConfiguration represents an declarative configuration of the ReplicationControllerStatus type for use\n// with apply.\ntype ReplicationControllerStatusApplyConfiguration struct {\n\tReplicas             *int32                                             `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                             `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                             `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                             `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                             `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicationControllerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicationControllerStatusApplyConfiguration constructs an declarative configuration of the ReplicationControllerStatus type for use with\n// apply.\nfunc ReplicationControllerStatus() *ReplicationControllerStatusApplyConfiguration {\n\treturn &ReplicationControllerStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicationControllerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithConditions(values ...*ReplicationControllerConditionApplyConfiguration) *ReplicationControllerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ResourceClaimApplyConfiguration represents an declarative configuration of the ResourceClaim type for use\n// with apply.\ntype ResourceClaimApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// ResourceClaimApplyConfiguration constructs an declarative configuration of the ResourceClaim type for use with\n// apply.\nfunc ResourceClaim() *ResourceClaimApplyConfiguration {\n\treturn &ResourceClaimApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithName(value string) *ResourceClaimApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceFieldSelectorApplyConfiguration represents an declarative configuration of the ResourceFieldSelector type for use\n// with apply.\ntype ResourceFieldSelectorApplyConfiguration struct {\n\tContainerName *string            `json:\"containerName,omitempty\"`\n\tResource      *string            `json:\"resource,omitempty\"`\n\tDivisor       *resource.Quantity `json:\"divisor,omitempty\"`\n}\n\n// ResourceFieldSelectorApplyConfiguration constructs an declarative configuration of the ResourceFieldSelector type for use with\n// apply.\nfunc ResourceFieldSelector() *ResourceFieldSelectorApplyConfiguration {\n\treturn &ResourceFieldSelectorApplyConfiguration{}\n}\n\n// WithContainerName sets the ContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerName field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithContainerName(value string) *ResourceFieldSelectorApplyConfiguration {\n\tb.ContainerName = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithResource(value string) *ResourceFieldSelectorApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithDivisor sets the Divisor field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Divisor field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithDivisor(value resource.Quantity) *ResourceFieldSelectorApplyConfiguration {\n\tb.Divisor = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceQuotaApplyConfiguration represents an declarative configuration of the ResourceQuota type for use\n// with apply.\ntype ResourceQuotaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceQuotaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ResourceQuotaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ResourceQuota constructs an declarative configuration of the ResourceQuota type for use with\n// apply.\nfunc ResourceQuota(name, namespace string) *ResourceQuotaApplyConfiguration {\n\tb := &ResourceQuotaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceQuota\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractResourceQuota extracts the applied configuration owned by fieldManager from\n// resourceQuota. If no managedFields are found in resourceQuota for fieldManager, a\n// ResourceQuotaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceQuota must be a unmodified ResourceQuota API object that was retrieved from the Kubernetes API.\n// ExtractResourceQuota provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceQuota(resourceQuota *apicorev1.ResourceQuota, fieldManager string) (*ResourceQuotaApplyConfiguration, error) {\n\treturn extractResourceQuota(resourceQuota, fieldManager, \"\")\n}\n\n// ExtractResourceQuotaStatus is the same as ExtractResourceQuota except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceQuotaStatus(resourceQuota *apicorev1.ResourceQuota, fieldManager string) (*ResourceQuotaApplyConfiguration, error) {\n\treturn extractResourceQuota(resourceQuota, fieldManager, \"status\")\n}\n\nfunc extractResourceQuota(resourceQuota *apicorev1.ResourceQuota, fieldManager string, subresource string) (*ResourceQuotaApplyConfiguration, error) {\n\tb := &ResourceQuotaApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceQuota, internal.Parser().Type(\"io.k8s.api.core.v1.ResourceQuota\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceQuota.Name)\n\tb.WithNamespace(resourceQuota.Namespace)\n\n\tb.WithKind(\"ResourceQuota\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithKind(value string) *ResourceQuotaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithAPIVersion(value string) *ResourceQuotaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithName(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithGenerateName(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithNamespace(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithUID(value types.UID) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithResourceVersion(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithGeneration(value int64) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceQuotaApplyConfiguration) WithLabels(entries map[string]string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceQuotaApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceQuotaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceQuotaApplyConfiguration) WithFinalizers(values ...string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceQuotaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithSpec(value *ResourceQuotaSpecApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithStatus(value *ResourceQuotaStatusApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceQuotaSpecApplyConfiguration represents an declarative configuration of the ResourceQuotaSpec type for use\n// with apply.\ntype ResourceQuotaSpecApplyConfiguration struct {\n\tHard          *v1.ResourceList                 `json:\"hard,omitempty\"`\n\tScopes        []v1.ResourceQuotaScope          `json:\"scopes,omitempty\"`\n\tScopeSelector *ScopeSelectorApplyConfiguration `json:\"scopeSelector,omitempty\"`\n}\n\n// ResourceQuotaSpecApplyConfiguration constructs an declarative configuration of the ResourceQuotaSpec type for use with\n// apply.\nfunc ResourceQuotaSpec() *ResourceQuotaSpecApplyConfiguration {\n\treturn &ResourceQuotaSpecApplyConfiguration{}\n}\n\n// WithHard sets the Hard field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hard field is set to the value of the last call.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithHard(value v1.ResourceList) *ResourceQuotaSpecApplyConfiguration {\n\tb.Hard = &value\n\treturn b\n}\n\n// WithScopes adds the given value to the Scopes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Scopes field.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithScopes(values ...v1.ResourceQuotaScope) *ResourceQuotaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Scopes = append(b.Scopes, values[i])\n\t}\n\treturn b\n}\n\n// WithScopeSelector sets the ScopeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScopeSelector field is set to the value of the last call.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithScopeSelector(value *ScopeSelectorApplyConfiguration) *ResourceQuotaSpecApplyConfiguration {\n\tb.ScopeSelector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceQuotaStatusApplyConfiguration represents an declarative configuration of the ResourceQuotaStatus type for use\n// with apply.\ntype ResourceQuotaStatusApplyConfiguration struct {\n\tHard *v1.ResourceList `json:\"hard,omitempty\"`\n\tUsed *v1.ResourceList `json:\"used,omitempty\"`\n}\n\n// ResourceQuotaStatusApplyConfiguration constructs an declarative configuration of the ResourceQuotaStatus type for use with\n// apply.\nfunc ResourceQuotaStatus() *ResourceQuotaStatusApplyConfiguration {\n\treturn &ResourceQuotaStatusApplyConfiguration{}\n}\n\n// WithHard sets the Hard field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hard field is set to the value of the last call.\nfunc (b *ResourceQuotaStatusApplyConfiguration) WithHard(value v1.ResourceList) *ResourceQuotaStatusApplyConfiguration {\n\tb.Hard = &value\n\treturn b\n}\n\n// WithUsed sets the Used field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Used field is set to the value of the last call.\nfunc (b *ResourceQuotaStatusApplyConfiguration) WithUsed(value v1.ResourceList) *ResourceQuotaStatusApplyConfiguration {\n\tb.Used = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceRequirementsApplyConfiguration represents an declarative configuration of the ResourceRequirements type for use\n// with apply.\ntype ResourceRequirementsApplyConfiguration struct {\n\tLimits   *v1.ResourceList                  `json:\"limits,omitempty\"`\n\tRequests *v1.ResourceList                  `json:\"requests,omitempty\"`\n\tClaims   []ResourceClaimApplyConfiguration `json:\"claims,omitempty\"`\n}\n\n// ResourceRequirementsApplyConfiguration constructs an declarative configuration of the ResourceRequirements type for use with\n// apply.\nfunc ResourceRequirements() *ResourceRequirementsApplyConfiguration {\n\treturn &ResourceRequirementsApplyConfiguration{}\n}\n\n// WithLimits sets the Limits field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limits field is set to the value of the last call.\nfunc (b *ResourceRequirementsApplyConfiguration) WithLimits(value v1.ResourceList) *ResourceRequirementsApplyConfiguration {\n\tb.Limits = &value\n\treturn b\n}\n\n// WithRequests sets the Requests field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Requests field is set to the value of the last call.\nfunc (b *ResourceRequirementsApplyConfiguration) WithRequests(value v1.ResourceList) *ResourceRequirementsApplyConfiguration {\n\tb.Requests = &value\n\treturn b\n}\n\n// WithClaims adds the given value to the Claims field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Claims field.\nfunc (b *ResourceRequirementsApplyConfiguration) WithClaims(values ...*ResourceClaimApplyConfiguration) *ResourceRequirementsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClaims\")\n\t\t}\n\t\tb.Claims = append(b.Claims, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleIOPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the ScaleIOPersistentVolumeSource type for use\n// with apply.\ntype ScaleIOPersistentVolumeSourceApplyConfiguration struct {\n\tGateway          *string                            `json:\"gateway,omitempty\"`\n\tSystem           *string                            `json:\"system,omitempty\"`\n\tSecretRef        *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tSSLEnabled       *bool                              `json:\"sslEnabled,omitempty\"`\n\tProtectionDomain *string                            `json:\"protectionDomain,omitempty\"`\n\tStoragePool      *string                            `json:\"storagePool,omitempty\"`\n\tStorageMode      *string                            `json:\"storageMode,omitempty\"`\n\tVolumeName       *string                            `json:\"volumeName,omitempty\"`\n\tFSType           *string                            `json:\"fsType,omitempty\"`\n\tReadOnly         *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// ScaleIOPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the ScaleIOPersistentVolumeSource type for use with\n// apply.\nfunc ScaleIOPersistentVolumeSource() *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\treturn &ScaleIOPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithGateway sets the Gateway field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Gateway field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.Gateway = &value\n\treturn b\n}\n\n// WithSystem sets the System field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the System field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.System = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SSLEnabled field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.SSLEnabled = &value\n\treturn b\n}\n\n// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProtectionDomain field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.ProtectionDomain = &value\n\treturn b\n}\n\n// WithStoragePool sets the StoragePool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePool field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.StoragePool = &value\n\treturn b\n}\n\n// WithStorageMode sets the StorageMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageMode field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.StorageMode = &value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleIOVolumeSourceApplyConfiguration represents an declarative configuration of the ScaleIOVolumeSource type for use\n// with apply.\ntype ScaleIOVolumeSourceApplyConfiguration struct {\n\tGateway          *string                                 `json:\"gateway,omitempty\"`\n\tSystem           *string                                 `json:\"system,omitempty\"`\n\tSecretRef        *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tSSLEnabled       *bool                                   `json:\"sslEnabled,omitempty\"`\n\tProtectionDomain *string                                 `json:\"protectionDomain,omitempty\"`\n\tStoragePool      *string                                 `json:\"storagePool,omitempty\"`\n\tStorageMode      *string                                 `json:\"storageMode,omitempty\"`\n\tVolumeName       *string                                 `json:\"volumeName,omitempty\"`\n\tFSType           *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly         *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// ScaleIOVolumeSourceApplyConfiguration constructs an declarative configuration of the ScaleIOVolumeSource type for use with\n// apply.\nfunc ScaleIOVolumeSource() *ScaleIOVolumeSourceApplyConfiguration {\n\treturn &ScaleIOVolumeSourceApplyConfiguration{}\n}\n\n// WithGateway sets the Gateway field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Gateway field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.Gateway = &value\n\treturn b\n}\n\n// WithSystem sets the System field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the System field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.System = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SSLEnabled field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.SSLEnabled = &value\n\treturn b\n}\n\n// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProtectionDomain field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.ProtectionDomain = &value\n\treturn b\n}\n\n// WithStoragePool sets the StoragePool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePool field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.StoragePool = &value\n\treturn b\n}\n\n// WithStorageMode sets the StorageMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageMode field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.StorageMode = &value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ScopedResourceSelectorRequirementApplyConfiguration represents an declarative configuration of the ScopedResourceSelectorRequirement type for use\n// with apply.\ntype ScopedResourceSelectorRequirementApplyConfiguration struct {\n\tScopeName *v1.ResourceQuotaScope    `json:\"scopeName,omitempty\"`\n\tOperator  *v1.ScopeSelectorOperator `json:\"operator,omitempty\"`\n\tValues    []string                  `json:\"values,omitempty\"`\n}\n\n// ScopedResourceSelectorRequirementApplyConfiguration constructs an declarative configuration of the ScopedResourceSelectorRequirement type for use with\n// apply.\nfunc ScopedResourceSelectorRequirement() *ScopedResourceSelectorRequirementApplyConfiguration {\n\treturn &ScopedResourceSelectorRequirementApplyConfiguration{}\n}\n\n// WithScopeName sets the ScopeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScopeName field is set to the value of the last call.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithScopeName(value v1.ResourceQuotaScope) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tb.ScopeName = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithOperator(value v1.ScopeSelectorOperator) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithValues(values ...string) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScopeSelectorApplyConfiguration represents an declarative configuration of the ScopeSelector type for use\n// with apply.\ntype ScopeSelectorApplyConfiguration struct {\n\tMatchExpressions []ScopedResourceSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n}\n\n// ScopeSelectorApplyConfiguration constructs an declarative configuration of the ScopeSelector type for use with\n// apply.\nfunc ScopeSelector() *ScopeSelectorApplyConfiguration {\n\treturn &ScopeSelectorApplyConfiguration{}\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *ScopeSelectorApplyConfiguration) WithMatchExpressions(values ...*ScopedResourceSelectorRequirementApplyConfiguration) *ScopeSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// SeccompProfileApplyConfiguration represents an declarative configuration of the SeccompProfile type for use\n// with apply.\ntype SeccompProfileApplyConfiguration struct {\n\tType             *v1.SeccompProfileType `json:\"type,omitempty\"`\n\tLocalhostProfile *string                `json:\"localhostProfile,omitempty\"`\n}\n\n// SeccompProfileApplyConfiguration constructs an declarative configuration of the SeccompProfile type for use with\n// apply.\nfunc SeccompProfile() *SeccompProfileApplyConfiguration {\n\treturn &SeccompProfileApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SeccompProfileApplyConfiguration) WithType(value v1.SeccompProfileType) *SeccompProfileApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLocalhostProfile sets the LocalhostProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LocalhostProfile field is set to the value of the last call.\nfunc (b *SeccompProfileApplyConfiguration) WithLocalhostProfile(value string) *SeccompProfileApplyConfiguration {\n\tb.LocalhostProfile = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// SecretApplyConfiguration represents an declarative configuration of the Secret type for use\n// with apply.\ntype SecretApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tImmutable                        *bool              `json:\"immutable,omitempty\"`\n\tData                             map[string][]byte  `json:\"data,omitempty\"`\n\tStringData                       map[string]string  `json:\"stringData,omitempty\"`\n\tType                             *corev1.SecretType `json:\"type,omitempty\"`\n}\n\n// Secret constructs an declarative configuration of the Secret type for use with\n// apply.\nfunc Secret(name, namespace string) *SecretApplyConfiguration {\n\tb := &SecretApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Secret\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractSecret extracts the applied configuration owned by fieldManager from\n// secret. If no managedFields are found in secret for fieldManager, a\n// SecretApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// secret must be a unmodified Secret API object that was retrieved from the Kubernetes API.\n// ExtractSecret provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractSecret(secret *corev1.Secret, fieldManager string) (*SecretApplyConfiguration, error) {\n\treturn extractSecret(secret, fieldManager, \"\")\n}\n\n// ExtractSecretStatus is the same as ExtractSecret except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractSecretStatus(secret *corev1.Secret, fieldManager string) (*SecretApplyConfiguration, error) {\n\treturn extractSecret(secret, fieldManager, \"status\")\n}\n\nfunc extractSecret(secret *corev1.Secret, fieldManager string, subresource string) (*SecretApplyConfiguration, error) {\n\tb := &SecretApplyConfiguration{}\n\terr := managedfields.ExtractInto(secret, internal.Parser().Type(\"io.k8s.api.core.v1.Secret\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(secret.Name)\n\tb.WithNamespace(secret.Namespace)\n\n\tb.WithKind(\"Secret\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithKind(value string) *SecretApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithAPIVersion(value string) *SecretApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithName(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithGenerateName(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithNamespace(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithUID(value types.UID) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithResourceVersion(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithGeneration(value int64) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithCreationTimestamp(value metav1.Time) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *SecretApplyConfiguration) WithLabels(entries map[string]string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *SecretApplyConfiguration) WithAnnotations(entries map[string]string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *SecretApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *SecretApplyConfiguration) WithFinalizers(values ...string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *SecretApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithImmutable sets the Immutable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Immutable field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithImmutable(value bool) *SecretApplyConfiguration {\n\tb.Immutable = &value\n\treturn b\n}\n\n// WithData puts the entries into the Data field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Data field,\n// overwriting an existing map entries in Data field with the same key.\nfunc (b *SecretApplyConfiguration) WithData(entries map[string][]byte) *SecretApplyConfiguration {\n\tif b.Data == nil && len(entries) > 0 {\n\t\tb.Data = make(map[string][]byte, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Data[k] = v\n\t}\n\treturn b\n}\n\n// WithStringData puts the entries into the StringData field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the StringData field,\n// overwriting an existing map entries in StringData field with the same key.\nfunc (b *SecretApplyConfiguration) WithStringData(entries map[string]string) *SecretApplyConfiguration {\n\tif b.StringData == nil && len(entries) > 0 {\n\t\tb.StringData = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.StringData[k] = v\n\t}\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithType(value corev1.SecretType) *SecretApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretEnvSourceApplyConfiguration represents an declarative configuration of the SecretEnvSource type for use\n// with apply.\ntype SecretEnvSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tOptional                               *bool `json:\"optional,omitempty\"`\n}\n\n// SecretEnvSourceApplyConfiguration constructs an declarative configuration of the SecretEnvSource type for use with\n// apply.\nfunc SecretEnvSource() *SecretEnvSourceApplyConfiguration {\n\treturn &SecretEnvSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretEnvSourceApplyConfiguration) WithName(value string) *SecretEnvSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretEnvSourceApplyConfiguration) WithOptional(value bool) *SecretEnvSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretKeySelectorApplyConfiguration represents an declarative configuration of the SecretKeySelector type for use\n// with apply.\ntype SecretKeySelectorApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tKey                                    *string `json:\"key,omitempty\"`\n\tOptional                               *bool   `json:\"optional,omitempty\"`\n}\n\n// SecretKeySelectorApplyConfiguration constructs an declarative configuration of the SecretKeySelector type for use with\n// apply.\nfunc SecretKeySelector() *SecretKeySelectorApplyConfiguration {\n\treturn &SecretKeySelectorApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithName(value string) *SecretKeySelectorApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithKey(value string) *SecretKeySelectorApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithOptional(value bool) *SecretKeySelectorApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretProjectionApplyConfiguration represents an declarative configuration of the SecretProjection type for use\n// with apply.\ntype SecretProjectionApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// SecretProjectionApplyConfiguration constructs an declarative configuration of the SecretProjection type for use with\n// apply.\nfunc SecretProjection() *SecretProjectionApplyConfiguration {\n\treturn &SecretProjectionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretProjectionApplyConfiguration) WithName(value string) *SecretProjectionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *SecretProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretProjectionApplyConfiguration) WithOptional(value bool) *SecretProjectionApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretReferenceApplyConfiguration represents an declarative configuration of the SecretReference type for use\n// with apply.\ntype SecretReferenceApplyConfiguration struct {\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SecretReferenceApplyConfiguration constructs an declarative configuration of the SecretReference type for use with\n// apply.\nfunc SecretReference() *SecretReferenceApplyConfiguration {\n\treturn &SecretReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretReferenceApplyConfiguration) WithName(value string) *SecretReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SecretReferenceApplyConfiguration) WithNamespace(value string) *SecretReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretVolumeSourceApplyConfiguration represents an declarative configuration of the SecretVolumeSource type for use\n// with apply.\ntype SecretVolumeSourceApplyConfiguration struct {\n\tSecretName  *string                       `json:\"secretName,omitempty\"`\n\tItems       []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode *int32                        `json:\"defaultMode,omitempty\"`\n\tOptional    *bool                         `json:\"optional,omitempty\"`\n}\n\n// SecretVolumeSourceApplyConfiguration constructs an declarative configuration of the SecretVolumeSource type for use with\n// apply.\nfunc SecretVolumeSource() *SecretVolumeSourceApplyConfiguration {\n\treturn &SecretVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithSecretName(value string) *SecretVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *SecretVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithOptional(value bool) *SecretVolumeSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// SecurityContextApplyConfiguration represents an declarative configuration of the SecurityContext type for use\n// with apply.\ntype SecurityContextApplyConfiguration struct {\n\tCapabilities             *CapabilitiesApplyConfiguration                  `json:\"capabilities,omitempty\"`\n\tPrivileged               *bool                                            `json:\"privileged,omitempty\"`\n\tSELinuxOptions           *SELinuxOptionsApplyConfiguration                `json:\"seLinuxOptions,omitempty\"`\n\tWindowsOptions           *WindowsSecurityContextOptionsApplyConfiguration `json:\"windowsOptions,omitempty\"`\n\tRunAsUser                *int64                                           `json:\"runAsUser,omitempty\"`\n\tRunAsGroup               *int64                                           `json:\"runAsGroup,omitempty\"`\n\tRunAsNonRoot             *bool                                            `json:\"runAsNonRoot,omitempty\"`\n\tReadOnlyRootFilesystem   *bool                                            `json:\"readOnlyRootFilesystem,omitempty\"`\n\tAllowPrivilegeEscalation *bool                                            `json:\"allowPrivilegeEscalation,omitempty\"`\n\tProcMount                *corev1.ProcMountType                            `json:\"procMount,omitempty\"`\n\tSeccompProfile           *SeccompProfileApplyConfiguration                `json:\"seccompProfile,omitempty\"`\n}\n\n// SecurityContextApplyConfiguration constructs an declarative configuration of the SecurityContext type for use with\n// apply.\nfunc SecurityContext() *SecurityContextApplyConfiguration {\n\treturn &SecurityContextApplyConfiguration{}\n}\n\n// WithCapabilities sets the Capabilities field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capabilities field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithCapabilities(value *CapabilitiesApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.Capabilities = value\n\treturn b\n}\n\n// WithPrivileged sets the Privileged field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Privileged field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithPrivileged(value bool) *SecurityContextApplyConfiguration {\n\tb.Privileged = &value\n\treturn b\n}\n\n// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxOptions field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.SELinuxOptions = value\n\treturn b\n}\n\n// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WindowsOptions field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.WindowsOptions = value\n\treturn b\n}\n\n// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUser field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsUser(value int64) *SecurityContextApplyConfiguration {\n\tb.RunAsUser = &value\n\treturn b\n}\n\n// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsGroup field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsGroup(value int64) *SecurityContextApplyConfiguration {\n\tb.RunAsGroup = &value\n\treturn b\n}\n\n// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsNonRoot field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *SecurityContextApplyConfiguration {\n\tb.RunAsNonRoot = &value\n\treturn b\n}\n\n// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *SecurityContextApplyConfiguration {\n\tb.ReadOnlyRootFilesystem = &value\n\treturn b\n}\n\n// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *SecurityContextApplyConfiguration {\n\tb.AllowPrivilegeEscalation = &value\n\treturn b\n}\n\n// WithProcMount sets the ProcMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProcMount field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithProcMount(value corev1.ProcMountType) *SecurityContextApplyConfiguration {\n\tb.ProcMount = &value\n\treturn b\n}\n\n// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SeccompProfile field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.SeccompProfile = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SELinuxOptionsApplyConfiguration represents an declarative configuration of the SELinuxOptions type for use\n// with apply.\ntype SELinuxOptionsApplyConfiguration struct {\n\tUser  *string `json:\"user,omitempty\"`\n\tRole  *string `json:\"role,omitempty\"`\n\tType  *string `json:\"type,omitempty\"`\n\tLevel *string `json:\"level,omitempty\"`\n}\n\n// SELinuxOptionsApplyConfiguration constructs an declarative configuration of the SELinuxOptions type for use with\n// apply.\nfunc SELinuxOptions() *SELinuxOptionsApplyConfiguration {\n\treturn &SELinuxOptionsApplyConfiguration{}\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithUser(value string) *SELinuxOptionsApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithRole sets the Role field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Role field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithRole(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Role = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithType(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLevel sets the Level field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Level field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithLevel(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Level = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceApplyConfiguration represents an declarative configuration of the Service type for use\n// with apply.\ntype ServiceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ServiceSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ServiceStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Service constructs an declarative configuration of the Service type for use with\n// apply.\nfunc Service(name, namespace string) *ServiceApplyConfiguration {\n\tb := &ServiceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Service\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractService extracts the applied configuration owned by fieldManager from\n// service. If no managedFields are found in service for fieldManager, a\n// ServiceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// service must be a unmodified Service API object that was retrieved from the Kubernetes API.\n// ExtractService provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractService(service *apicorev1.Service, fieldManager string) (*ServiceApplyConfiguration, error) {\n\treturn extractService(service, fieldManager, \"\")\n}\n\n// ExtractServiceStatus is the same as ExtractService except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceStatus(service *apicorev1.Service, fieldManager string) (*ServiceApplyConfiguration, error) {\n\treturn extractService(service, fieldManager, \"status\")\n}\n\nfunc extractService(service *apicorev1.Service, fieldManager string, subresource string) (*ServiceApplyConfiguration, error) {\n\tb := &ServiceApplyConfiguration{}\n\terr := managedfields.ExtractInto(service, internal.Parser().Type(\"io.k8s.api.core.v1.Service\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(service.Name)\n\tb.WithNamespace(service.Namespace)\n\n\tb.WithKind(\"Service\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithKind(value string) *ServiceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithAPIVersion(value string) *ServiceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithName(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithGenerateName(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithNamespace(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithUID(value types.UID) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithResourceVersion(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithGeneration(value int64) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceApplyConfiguration) WithLabels(entries map[string]string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceApplyConfiguration) WithFinalizers(values ...string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithSpec(value *ServiceSpecApplyConfiguration) *ServiceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithStatus(value *ServiceStatusApplyConfiguration) *ServiceApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceAccountApplyConfiguration represents an declarative configuration of the ServiceAccount type for use\n// with apply.\ntype ServiceAccountApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSecrets                          []ObjectReferenceApplyConfiguration      `json:\"secrets,omitempty\"`\n\tImagePullSecrets                 []LocalObjectReferenceApplyConfiguration `json:\"imagePullSecrets,omitempty\"`\n\tAutomountServiceAccountToken     *bool                                    `json:\"automountServiceAccountToken,omitempty\"`\n}\n\n// ServiceAccount constructs an declarative configuration of the ServiceAccount type for use with\n// apply.\nfunc ServiceAccount(name, namespace string) *ServiceAccountApplyConfiguration {\n\tb := &ServiceAccountApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ServiceAccount\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractServiceAccount extracts the applied configuration owned by fieldManager from\n// serviceAccount. If no managedFields are found in serviceAccount for fieldManager, a\n// ServiceAccountApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// serviceAccount must be a unmodified ServiceAccount API object that was retrieved from the Kubernetes API.\n// ExtractServiceAccount provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractServiceAccount(serviceAccount *apicorev1.ServiceAccount, fieldManager string) (*ServiceAccountApplyConfiguration, error) {\n\treturn extractServiceAccount(serviceAccount, fieldManager, \"\")\n}\n\n// ExtractServiceAccountStatus is the same as ExtractServiceAccount except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceAccountStatus(serviceAccount *apicorev1.ServiceAccount, fieldManager string) (*ServiceAccountApplyConfiguration, error) {\n\treturn extractServiceAccount(serviceAccount, fieldManager, \"status\")\n}\n\nfunc extractServiceAccount(serviceAccount *apicorev1.ServiceAccount, fieldManager string, subresource string) (*ServiceAccountApplyConfiguration, error) {\n\tb := &ServiceAccountApplyConfiguration{}\n\terr := managedfields.ExtractInto(serviceAccount, internal.Parser().Type(\"io.k8s.api.core.v1.ServiceAccount\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(serviceAccount.Name)\n\tb.WithNamespace(serviceAccount.Namespace)\n\n\tb.WithKind(\"ServiceAccount\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithKind(value string) *ServiceAccountApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithAPIVersion(value string) *ServiceAccountApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithName(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithGenerateName(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithNamespace(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithUID(value types.UID) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithResourceVersion(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithGeneration(value int64) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceAccountApplyConfiguration) WithLabels(entries map[string]string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceAccountApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceAccountApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceAccountApplyConfiguration) WithFinalizers(values ...string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceAccountApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSecrets adds the given value to the Secrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Secrets field.\nfunc (b *ServiceAccountApplyConfiguration) WithSecrets(values ...*ObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSecrets\")\n\t\t}\n\t\tb.Secrets = append(b.Secrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field.\nfunc (b *ServiceAccountApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImagePullSecrets\")\n\t\t}\n\t\tb.ImagePullSecrets = append(b.ImagePullSecrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithAutomountServiceAccountToken(value bool) *ServiceAccountApplyConfiguration {\n\tb.AutomountServiceAccountToken = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceAccountTokenProjectionApplyConfiguration represents an declarative configuration of the ServiceAccountTokenProjection type for use\n// with apply.\ntype ServiceAccountTokenProjectionApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n\tPath              *string `json:\"path,omitempty\"`\n}\n\n// ServiceAccountTokenProjectionApplyConfiguration constructs an declarative configuration of the ServiceAccountTokenProjection type for use with\n// apply.\nfunc ServiceAccountTokenProjection() *ServiceAccountTokenProjectionApplyConfiguration {\n\treturn &ServiceAccountTokenProjectionApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithAudience(value string) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithExpirationSeconds(value int64) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithPath(value string) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// ServicePortApplyConfiguration represents an declarative configuration of the ServicePort type for use\n// with apply.\ntype ServicePortApplyConfiguration struct {\n\tName        *string             `json:\"name,omitempty\"`\n\tProtocol    *v1.Protocol        `json:\"protocol,omitempty\"`\n\tAppProtocol *string             `json:\"appProtocol,omitempty\"`\n\tPort        *int32              `json:\"port,omitempty\"`\n\tTargetPort  *intstr.IntOrString `json:\"targetPort,omitempty\"`\n\tNodePort    *int32              `json:\"nodePort,omitempty\"`\n}\n\n// ServicePortApplyConfiguration constructs an declarative configuration of the ServicePort type for use with\n// apply.\nfunc ServicePort() *ServicePortApplyConfiguration {\n\treturn &ServicePortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithName(value string) *ServicePortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithProtocol(value v1.Protocol) *ServicePortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithAppProtocol(value string) *ServicePortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithPort(value int32) *ServicePortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithTargetPort sets the TargetPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPort field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithTargetPort(value intstr.IntOrString) *ServicePortApplyConfiguration {\n\tb.TargetPort = &value\n\treturn b\n}\n\n// WithNodePort sets the NodePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePort field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithNodePort(value int32) *ServicePortApplyConfiguration {\n\tb.NodePort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ServiceSpecApplyConfiguration represents an declarative configuration of the ServiceSpec type for use\n// with apply.\ntype ServiceSpecApplyConfiguration struct {\n\tPorts                         []ServicePortApplyConfiguration          `json:\"ports,omitempty\"`\n\tSelector                      map[string]string                        `json:\"selector,omitempty\"`\n\tClusterIP                     *string                                  `json:\"clusterIP,omitempty\"`\n\tClusterIPs                    []string                                 `json:\"clusterIPs,omitempty\"`\n\tType                          *corev1.ServiceType                      `json:\"type,omitempty\"`\n\tExternalIPs                   []string                                 `json:\"externalIPs,omitempty\"`\n\tSessionAffinity               *corev1.ServiceAffinity                  `json:\"sessionAffinity,omitempty\"`\n\tLoadBalancerIP                *string                                  `json:\"loadBalancerIP,omitempty\"`\n\tLoadBalancerSourceRanges      []string                                 `json:\"loadBalancerSourceRanges,omitempty\"`\n\tExternalName                  *string                                  `json:\"externalName,omitempty\"`\n\tExternalTrafficPolicy         *corev1.ServiceExternalTrafficPolicy     `json:\"externalTrafficPolicy,omitempty\"`\n\tHealthCheckNodePort           *int32                                   `json:\"healthCheckNodePort,omitempty\"`\n\tPublishNotReadyAddresses      *bool                                    `json:\"publishNotReadyAddresses,omitempty\"`\n\tSessionAffinityConfig         *SessionAffinityConfigApplyConfiguration `json:\"sessionAffinityConfig,omitempty\"`\n\tIPFamilies                    []corev1.IPFamily                        `json:\"ipFamilies,omitempty\"`\n\tIPFamilyPolicy                *corev1.IPFamilyPolicy                   `json:\"ipFamilyPolicy,omitempty\"`\n\tAllocateLoadBalancerNodePorts *bool                                    `json:\"allocateLoadBalancerNodePorts,omitempty\"`\n\tLoadBalancerClass             *string                                  `json:\"loadBalancerClass,omitempty\"`\n\tInternalTrafficPolicy         *corev1.ServiceInternalTrafficPolicy     `json:\"internalTrafficPolicy,omitempty\"`\n}\n\n// ServiceSpecApplyConfiguration constructs an declarative configuration of the ServiceSpec type for use with\n// apply.\nfunc ServiceSpec() *ServiceSpecApplyConfiguration {\n\treturn &ServiceSpecApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *ServiceSpecApplyConfiguration) WithPorts(values ...*ServicePortApplyConfiguration) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithSelector puts the entries into the Selector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Selector field,\n// overwriting an existing map entries in Selector field with the same key.\nfunc (b *ServiceSpecApplyConfiguration) WithSelector(entries map[string]string) *ServiceSpecApplyConfiguration {\n\tif b.Selector == nil && len(entries) > 0 {\n\t\tb.Selector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Selector[k] = v\n\t}\n\treturn b\n}\n\n// WithClusterIP sets the ClusterIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterIP field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithClusterIP(value string) *ServiceSpecApplyConfiguration {\n\tb.ClusterIP = &value\n\treturn b\n}\n\n// WithClusterIPs adds the given value to the ClusterIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterIPs field.\nfunc (b *ServiceSpecApplyConfiguration) WithClusterIPs(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ClusterIPs = append(b.ClusterIPs, values[i])\n\t}\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithType(value corev1.ServiceType) *ServiceSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithExternalIPs adds the given value to the ExternalIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExternalIPs field.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalIPs(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ExternalIPs = append(b.ExternalIPs, values[i])\n\t}\n\treturn b\n}\n\n// WithSessionAffinity sets the SessionAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionAffinity field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithSessionAffinity(value corev1.ServiceAffinity) *ServiceSpecApplyConfiguration {\n\tb.SessionAffinity = &value\n\treturn b\n}\n\n// WithLoadBalancerIP sets the LoadBalancerIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancerIP field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerIP(value string) *ServiceSpecApplyConfiguration {\n\tb.LoadBalancerIP = &value\n\treturn b\n}\n\n// WithLoadBalancerSourceRanges adds the given value to the LoadBalancerSourceRanges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the LoadBalancerSourceRanges field.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerSourceRanges(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.LoadBalancerSourceRanges = append(b.LoadBalancerSourceRanges, values[i])\n\t}\n\treturn b\n}\n\n// WithExternalName sets the ExternalName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExternalName field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalName(value string) *ServiceSpecApplyConfiguration {\n\tb.ExternalName = &value\n\treturn b\n}\n\n// WithExternalTrafficPolicy sets the ExternalTrafficPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExternalTrafficPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalTrafficPolicy(value corev1.ServiceExternalTrafficPolicy) *ServiceSpecApplyConfiguration {\n\tb.ExternalTrafficPolicy = &value\n\treturn b\n}\n\n// WithHealthCheckNodePort sets the HealthCheckNodePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HealthCheckNodePort field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithHealthCheckNodePort(value int32) *ServiceSpecApplyConfiguration {\n\tb.HealthCheckNodePort = &value\n\treturn b\n}\n\n// WithPublishNotReadyAddresses sets the PublishNotReadyAddresses field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PublishNotReadyAddresses field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithPublishNotReadyAddresses(value bool) *ServiceSpecApplyConfiguration {\n\tb.PublishNotReadyAddresses = &value\n\treturn b\n}\n\n// WithSessionAffinityConfig sets the SessionAffinityConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionAffinityConfig field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithSessionAffinityConfig(value *SessionAffinityConfigApplyConfiguration) *ServiceSpecApplyConfiguration {\n\tb.SessionAffinityConfig = value\n\treturn b\n}\n\n// WithIPFamilies adds the given value to the IPFamilies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the IPFamilies field.\nfunc (b *ServiceSpecApplyConfiguration) WithIPFamilies(values ...corev1.IPFamily) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.IPFamilies = append(b.IPFamilies, values[i])\n\t}\n\treturn b\n}\n\n// WithIPFamilyPolicy sets the IPFamilyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPFamilyPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithIPFamilyPolicy(value corev1.IPFamilyPolicy) *ServiceSpecApplyConfiguration {\n\tb.IPFamilyPolicy = &value\n\treturn b\n}\n\n// WithAllocateLoadBalancerNodePorts sets the AllocateLoadBalancerNodePorts field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocateLoadBalancerNodePorts field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithAllocateLoadBalancerNodePorts(value bool) *ServiceSpecApplyConfiguration {\n\tb.AllocateLoadBalancerNodePorts = &value\n\treturn b\n}\n\n// WithLoadBalancerClass sets the LoadBalancerClass field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancerClass field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerClass(value string) *ServiceSpecApplyConfiguration {\n\tb.LoadBalancerClass = &value\n\treturn b\n}\n\n// WithInternalTrafficPolicy sets the InternalTrafficPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InternalTrafficPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicy) *ServiceSpecApplyConfiguration {\n\tb.InternalTrafficPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceStatusApplyConfiguration represents an declarative configuration of the ServiceStatus type for use\n// with apply.\ntype ServiceStatusApplyConfiguration struct {\n\tLoadBalancer *LoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n\tConditions   []metav1.ConditionApplyConfiguration  `json:\"conditions,omitempty\"`\n}\n\n// ServiceStatusApplyConfiguration constructs an declarative configuration of the ServiceStatus type for use with\n// apply.\nfunc ServiceStatus() *ServiceStatusApplyConfiguration {\n\treturn &ServiceStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *ServiceStatusApplyConfiguration) WithLoadBalancer(value *LoadBalancerStatusApplyConfiguration) *ServiceStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ServiceStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *ServiceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SessionAffinityConfigApplyConfiguration represents an declarative configuration of the SessionAffinityConfig type for use\n// with apply.\ntype SessionAffinityConfigApplyConfiguration struct {\n\tClientIP *ClientIPConfigApplyConfiguration `json:\"clientIP,omitempty\"`\n}\n\n// SessionAffinityConfigApplyConfiguration constructs an declarative configuration of the SessionAffinityConfig type for use with\n// apply.\nfunc SessionAffinityConfig() *SessionAffinityConfigApplyConfiguration {\n\treturn &SessionAffinityConfigApplyConfiguration{}\n}\n\n// WithClientIP sets the ClientIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientIP field is set to the value of the last call.\nfunc (b *SessionAffinityConfigApplyConfiguration) WithClientIP(value *ClientIPConfigApplyConfiguration) *SessionAffinityConfigApplyConfiguration {\n\tb.ClientIP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StorageOSPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the StorageOSPersistentVolumeSource type for use\n// with apply.\ntype StorageOSPersistentVolumeSourceApplyConfiguration struct {\n\tVolumeName      *string                            `json:\"volumeName,omitempty\"`\n\tVolumeNamespace *string                            `json:\"volumeNamespace,omitempty\"`\n\tFSType          *string                            `json:\"fsType,omitempty\"`\n\tReadOnly        *bool                              `json:\"readOnly,omitempty\"`\n\tSecretRef       *ObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// StorageOSPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the StorageOSPersistentVolumeSource type for use with\n// apply.\nfunc StorageOSPersistentVolumeSource() *StorageOSPersistentVolumeSourceApplyConfiguration {\n\treturn &StorageOSPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeNamespace field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeNamespace = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *ObjectReferenceApplyConfiguration) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StorageOSVolumeSourceApplyConfiguration represents an declarative configuration of the StorageOSVolumeSource type for use\n// with apply.\ntype StorageOSVolumeSourceApplyConfiguration struct {\n\tVolumeName      *string                                 `json:\"volumeName,omitempty\"`\n\tVolumeNamespace *string                                 `json:\"volumeNamespace,omitempty\"`\n\tFSType          *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly        *bool                                   `json:\"readOnly,omitempty\"`\n\tSecretRef       *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// StorageOSVolumeSourceApplyConfiguration constructs an declarative configuration of the StorageOSVolumeSource type for use with\n// apply.\nfunc StorageOSVolumeSource() *StorageOSVolumeSourceApplyConfiguration {\n\treturn &StorageOSVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeNamespace field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.VolumeNamespace = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *StorageOSVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SysctlApplyConfiguration represents an declarative configuration of the Sysctl type for use\n// with apply.\ntype SysctlApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// SysctlApplyConfiguration constructs an declarative configuration of the Sysctl type for use with\n// apply.\nfunc Sysctl() *SysctlApplyConfiguration {\n\treturn &SysctlApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SysctlApplyConfiguration) WithName(value string) *SysctlApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *SysctlApplyConfiguration) WithValue(value string) *SysctlApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// TaintApplyConfiguration represents an declarative configuration of the Taint type for use\n// with apply.\ntype TaintApplyConfiguration struct {\n\tKey       *string         `json:\"key,omitempty\"`\n\tValue     *string         `json:\"value,omitempty\"`\n\tEffect    *v1.TaintEffect `json:\"effect,omitempty\"`\n\tTimeAdded *metav1.Time    `json:\"timeAdded,omitempty\"`\n}\n\n// TaintApplyConfiguration constructs an declarative configuration of the Taint type for use with\n// apply.\nfunc Taint() *TaintApplyConfiguration {\n\treturn &TaintApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithKey(value string) *TaintApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithValue(value string) *TaintApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithEffect sets the Effect field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Effect field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithEffect(value v1.TaintEffect) *TaintApplyConfiguration {\n\tb.Effect = &value\n\treturn b\n}\n\n// WithTimeAdded sets the TimeAdded field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeAdded field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithTimeAdded(value metav1.Time) *TaintApplyConfiguration {\n\tb.TimeAdded = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// TCPSocketActionApplyConfiguration represents an declarative configuration of the TCPSocketAction type for use\n// with apply.\ntype TCPSocketActionApplyConfiguration struct {\n\tPort *intstr.IntOrString `json:\"port,omitempty\"`\n\tHost *string             `json:\"host,omitempty\"`\n}\n\n// TCPSocketActionApplyConfiguration constructs an declarative configuration of the TCPSocketAction type for use with\n// apply.\nfunc TCPSocketAction() *TCPSocketActionApplyConfiguration {\n\treturn &TCPSocketActionApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *TCPSocketActionApplyConfiguration) WithPort(value intstr.IntOrString) *TCPSocketActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *TCPSocketActionApplyConfiguration) WithHost(value string) *TCPSocketActionApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// TolerationApplyConfiguration represents an declarative configuration of the Toleration type for use\n// with apply.\ntype TolerationApplyConfiguration struct {\n\tKey               *string                `json:\"key,omitempty\"`\n\tOperator          *v1.TolerationOperator `json:\"operator,omitempty\"`\n\tValue             *string                `json:\"value,omitempty\"`\n\tEffect            *v1.TaintEffect        `json:\"effect,omitempty\"`\n\tTolerationSeconds *int64                 `json:\"tolerationSeconds,omitempty\"`\n}\n\n// TolerationApplyConfiguration constructs an declarative configuration of the Toleration type for use with\n// apply.\nfunc Toleration() *TolerationApplyConfiguration {\n\treturn &TolerationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithKey(value string) *TolerationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithOperator(value v1.TolerationOperator) *TolerationApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithValue(value string) *TolerationApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithEffect sets the Effect field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Effect field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithEffect(value v1.TaintEffect) *TolerationApplyConfiguration {\n\tb.Effect = &value\n\treturn b\n}\n\n// WithTolerationSeconds sets the TolerationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TolerationSeconds field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithTolerationSeconds(value int64) *TolerationApplyConfiguration {\n\tb.TolerationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TopologySelectorLabelRequirementApplyConfiguration represents an declarative configuration of the TopologySelectorLabelRequirement type for use\n// with apply.\ntype TopologySelectorLabelRequirementApplyConfiguration struct {\n\tKey    *string  `json:\"key,omitempty\"`\n\tValues []string `json:\"values,omitempty\"`\n}\n\n// TopologySelectorLabelRequirementApplyConfiguration constructs an declarative configuration of the TopologySelectorLabelRequirement type for use with\n// apply.\nfunc TopologySelectorLabelRequirement() *TopologySelectorLabelRequirementApplyConfiguration {\n\treturn &TopologySelectorLabelRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TopologySelectorLabelRequirementApplyConfiguration) WithKey(value string) *TopologySelectorLabelRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *TopologySelectorLabelRequirementApplyConfiguration) WithValues(values ...string) *TopologySelectorLabelRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TopologySelectorTermApplyConfiguration represents an declarative configuration of the TopologySelectorTerm type for use\n// with apply.\ntype TopologySelectorTermApplyConfiguration struct {\n\tMatchLabelExpressions []TopologySelectorLabelRequirementApplyConfiguration `json:\"matchLabelExpressions,omitempty\"`\n}\n\n// TopologySelectorTermApplyConfiguration constructs an declarative configuration of the TopologySelectorTerm type for use with\n// apply.\nfunc TopologySelectorTerm() *TopologySelectorTermApplyConfiguration {\n\treturn &TopologySelectorTermApplyConfiguration{}\n}\n\n// WithMatchLabelExpressions adds the given value to the MatchLabelExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchLabelExpressions field.\nfunc (b *TopologySelectorTermApplyConfiguration) WithMatchLabelExpressions(values ...*TopologySelectorLabelRequirementApplyConfiguration) *TopologySelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchLabelExpressions\")\n\t\t}\n\t\tb.MatchLabelExpressions = append(b.MatchLabelExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// TopologySpreadConstraintApplyConfiguration represents an declarative configuration of the TopologySpreadConstraint type for use\n// with apply.\ntype TopologySpreadConstraintApplyConfiguration struct {\n\tMaxSkew            *int32                                  `json:\"maxSkew,omitempty\"`\n\tTopologyKey        *string                                 `json:\"topologyKey,omitempty\"`\n\tWhenUnsatisfiable  *v1.UnsatisfiableConstraintAction       `json:\"whenUnsatisfiable,omitempty\"`\n\tLabelSelector      *metav1.LabelSelectorApplyConfiguration `json:\"labelSelector,omitempty\"`\n\tMinDomains         *int32                                  `json:\"minDomains,omitempty\"`\n\tNodeAffinityPolicy *v1.NodeInclusionPolicy                 `json:\"nodeAffinityPolicy,omitempty\"`\n\tNodeTaintsPolicy   *v1.NodeInclusionPolicy                 `json:\"nodeTaintsPolicy,omitempty\"`\n\tMatchLabelKeys     []string                                `json:\"matchLabelKeys,omitempty\"`\n}\n\n// TopologySpreadConstraintApplyConfiguration constructs an declarative configuration of the TopologySpreadConstraint type for use with\n// apply.\nfunc TopologySpreadConstraint() *TopologySpreadConstraintApplyConfiguration {\n\treturn &TopologySpreadConstraintApplyConfiguration{}\n}\n\n// WithMaxSkew sets the MaxSkew field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSkew field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMaxSkew(value int32) *TopologySpreadConstraintApplyConfiguration {\n\tb.MaxSkew = &value\n\treturn b\n}\n\n// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TopologyKey field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithTopologyKey(value string) *TopologySpreadConstraintApplyConfiguration {\n\tb.TopologyKey = &value\n\treturn b\n}\n\n// WithWhenUnsatisfiable sets the WhenUnsatisfiable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenUnsatisfiable field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithWhenUnsatisfiable(value v1.UnsatisfiableConstraintAction) *TopologySpreadConstraintApplyConfiguration {\n\tb.WhenUnsatisfiable = &value\n\treturn b\n}\n\n// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LabelSelector field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithLabelSelector(value *metav1.LabelSelectorApplyConfiguration) *TopologySpreadConstraintApplyConfiguration {\n\tb.LabelSelector = value\n\treturn b\n}\n\n// WithMinDomains sets the MinDomains field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinDomains field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMinDomains(value int32) *TopologySpreadConstraintApplyConfiguration {\n\tb.MinDomains = &value\n\treturn b\n}\n\n// WithNodeAffinityPolicy sets the NodeAffinityPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinityPolicy field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithNodeAffinityPolicy(value v1.NodeInclusionPolicy) *TopologySpreadConstraintApplyConfiguration {\n\tb.NodeAffinityPolicy = &value\n\treturn b\n}\n\n// WithNodeTaintsPolicy sets the NodeTaintsPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTaintsPolicy field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithNodeTaintsPolicy(value v1.NodeInclusionPolicy) *TopologySpreadConstraintApplyConfiguration {\n\tb.NodeTaintsPolicy = &value\n\treturn b\n}\n\n// WithMatchLabelKeys adds the given value to the MatchLabelKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchLabelKeys field.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMatchLabelKeys(values ...string) *TopologySpreadConstraintApplyConfiguration {\n\tfor i := range values {\n\t\tb.MatchLabelKeys = append(b.MatchLabelKeys, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypedLocalObjectReferenceApplyConfiguration represents an declarative configuration of the TypedLocalObjectReference type for use\n// with apply.\ntype TypedLocalObjectReferenceApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// TypedLocalObjectReferenceApplyConfiguration constructs an declarative configuration of the TypedLocalObjectReference type for use with\n// apply.\nfunc TypedLocalObjectReference() *TypedLocalObjectReferenceApplyConfiguration {\n\treturn &TypedLocalObjectReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithAPIGroup(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithKind(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithName(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/typedobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypedObjectReferenceApplyConfiguration represents an declarative configuration of the TypedObjectReference type for use\n// with apply.\ntype TypedObjectReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// TypedObjectReferenceApplyConfiguration constructs an declarative configuration of the TypedObjectReference type for use with\n// apply.\nfunc TypedObjectReference() *TypedObjectReferenceApplyConfiguration {\n\treturn &TypedObjectReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithAPIGroup(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithKind(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithName(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithNamespace(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeApplyConfiguration represents an declarative configuration of the Volume type for use\n// with apply.\ntype VolumeApplyConfiguration struct {\n\tName                           *string `json:\"name,omitempty\"`\n\tVolumeSourceApplyConfiguration `json:\",inline\"`\n}\n\n// VolumeApplyConfiguration constructs an declarative configuration of the Volume type for use with\n// apply.\nfunc Volume() *VolumeApplyConfiguration {\n\treturn &VolumeApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithName(value string) *VolumeApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EmptyDir field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.EmptyDir = value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithGitRepo sets the GitRepo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GitRepo field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.GitRepo = value\n\treturn b\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Secret = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.PersistentVolumeClaim = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.DownwardAPI = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithProjected sets the Projected field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Projected field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Projected = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n\n// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ephemeral field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.Ephemeral = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeDeviceApplyConfiguration represents an declarative configuration of the VolumeDevice type for use\n// with apply.\ntype VolumeDeviceApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tDevicePath *string `json:\"devicePath,omitempty\"`\n}\n\n// VolumeDeviceApplyConfiguration constructs an declarative configuration of the VolumeDevice type for use with\n// apply.\nfunc VolumeDevice() *VolumeDeviceApplyConfiguration {\n\treturn &VolumeDeviceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeDeviceApplyConfiguration) WithName(value string) *VolumeDeviceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDevicePath sets the DevicePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DevicePath field is set to the value of the last call.\nfunc (b *VolumeDeviceApplyConfiguration) WithDevicePath(value string) *VolumeDeviceApplyConfiguration {\n\tb.DevicePath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// VolumeMountApplyConfiguration represents an declarative configuration of the VolumeMount type for use\n// with apply.\ntype VolumeMountApplyConfiguration struct {\n\tName             *string                  `json:\"name,omitempty\"`\n\tReadOnly         *bool                    `json:\"readOnly,omitempty\"`\n\tMountPath        *string                  `json:\"mountPath,omitempty\"`\n\tSubPath          *string                  `json:\"subPath,omitempty\"`\n\tMountPropagation *v1.MountPropagationMode `json:\"mountPropagation,omitempty\"`\n\tSubPathExpr      *string                  `json:\"subPathExpr,omitempty\"`\n}\n\n// VolumeMountApplyConfiguration constructs an declarative configuration of the VolumeMount type for use with\n// apply.\nfunc VolumeMount() *VolumeMountApplyConfiguration {\n\treturn &VolumeMountApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithName(value string) *VolumeMountApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithReadOnly(value bool) *VolumeMountApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithMountPath sets the MountPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MountPath field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithMountPath(value string) *VolumeMountApplyConfiguration {\n\tb.MountPath = &value\n\treturn b\n}\n\n// WithSubPath sets the SubPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SubPath field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithSubPath(value string) *VolumeMountApplyConfiguration {\n\tb.SubPath = &value\n\treturn b\n}\n\n// WithMountPropagation sets the MountPropagation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MountPropagation field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithMountPropagation(value v1.MountPropagationMode) *VolumeMountApplyConfiguration {\n\tb.MountPropagation = &value\n\treturn b\n}\n\n// WithSubPathExpr sets the SubPathExpr field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SubPathExpr field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithSubPathExpr(value string) *VolumeMountApplyConfiguration {\n\tb.SubPathExpr = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeNodeAffinityApplyConfiguration represents an declarative configuration of the VolumeNodeAffinity type for use\n// with apply.\ntype VolumeNodeAffinityApplyConfiguration struct {\n\tRequired *NodeSelectorApplyConfiguration `json:\"required,omitempty\"`\n}\n\n// VolumeNodeAffinityApplyConfiguration constructs an declarative configuration of the VolumeNodeAffinity type for use with\n// apply.\nfunc VolumeNodeAffinity() *VolumeNodeAffinityApplyConfiguration {\n\treturn &VolumeNodeAffinityApplyConfiguration{}\n}\n\n// WithRequired sets the Required field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Required field is set to the value of the last call.\nfunc (b *VolumeNodeAffinityApplyConfiguration) WithRequired(value *NodeSelectorApplyConfiguration) *VolumeNodeAffinityApplyConfiguration {\n\tb.Required = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeProjectionApplyConfiguration represents an declarative configuration of the VolumeProjection type for use\n// with apply.\ntype VolumeProjectionApplyConfiguration struct {\n\tSecret              *SecretProjectionApplyConfiguration              `json:\"secret,omitempty\"`\n\tDownwardAPI         *DownwardAPIProjectionApplyConfiguration         `json:\"downwardAPI,omitempty\"`\n\tConfigMap           *ConfigMapProjectionApplyConfiguration           `json:\"configMap,omitempty\"`\n\tServiceAccountToken *ServiceAccountTokenProjectionApplyConfiguration `json:\"serviceAccountToken,omitempty\"`\n}\n\n// VolumeProjectionApplyConfiguration constructs an declarative configuration of the VolumeProjection type for use with\n// apply.\nfunc VolumeProjection() *VolumeProjectionApplyConfiguration {\n\treturn &VolumeProjectionApplyConfiguration{}\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithSecret(value *SecretProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.Secret = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithDownwardAPI(value *DownwardAPIProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.DownwardAPI = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithConfigMap(value *ConfigMapProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n\n// WithServiceAccountToken sets the ServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccountToken field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithServiceAccountToken(value *ServiceAccountTokenProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.ServiceAccountToken = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeSourceApplyConfiguration represents an declarative configuration of the VolumeSource type for use\n// with apply.\ntype VolumeSourceApplyConfiguration struct {\n\tHostPath              *HostPathVolumeSourceApplyConfiguration              `json:\"hostPath,omitempty\"`\n\tEmptyDir              *EmptyDirVolumeSourceApplyConfiguration              `json:\"emptyDir,omitempty\"`\n\tGCEPersistentDisk     *GCEPersistentDiskVolumeSourceApplyConfiguration     `json:\"gcePersistentDisk,omitempty\"`\n\tAWSElasticBlockStore  *AWSElasticBlockStoreVolumeSourceApplyConfiguration  `json:\"awsElasticBlockStore,omitempty\"`\n\tGitRepo               *GitRepoVolumeSourceApplyConfiguration               `json:\"gitRepo,omitempty\"`\n\tSecret                *SecretVolumeSourceApplyConfiguration                `json:\"secret,omitempty\"`\n\tNFS                   *NFSVolumeSourceApplyConfiguration                   `json:\"nfs,omitempty\"`\n\tISCSI                 *ISCSIVolumeSourceApplyConfiguration                 `json:\"iscsi,omitempty\"`\n\tGlusterfs             *GlusterfsVolumeSourceApplyConfiguration             `json:\"glusterfs,omitempty\"`\n\tPersistentVolumeClaim *PersistentVolumeClaimVolumeSourceApplyConfiguration `json:\"persistentVolumeClaim,omitempty\"`\n\tRBD                   *RBDVolumeSourceApplyConfiguration                   `json:\"rbd,omitempty\"`\n\tFlexVolume            *FlexVolumeSourceApplyConfiguration                  `json:\"flexVolume,omitempty\"`\n\tCinder                *CinderVolumeSourceApplyConfiguration                `json:\"cinder,omitempty\"`\n\tCephFS                *CephFSVolumeSourceApplyConfiguration                `json:\"cephfs,omitempty\"`\n\tFlocker               *FlockerVolumeSourceApplyConfiguration               `json:\"flocker,omitempty\"`\n\tDownwardAPI           *DownwardAPIVolumeSourceApplyConfiguration           `json:\"downwardAPI,omitempty\"`\n\tFC                    *FCVolumeSourceApplyConfiguration                    `json:\"fc,omitempty\"`\n\tAzureFile             *AzureFileVolumeSourceApplyConfiguration             `json:\"azureFile,omitempty\"`\n\tConfigMap             *ConfigMapVolumeSourceApplyConfiguration             `json:\"configMap,omitempty\"`\n\tVsphereVolume         *VsphereVirtualDiskVolumeSourceApplyConfiguration    `json:\"vsphereVolume,omitempty\"`\n\tQuobyte               *QuobyteVolumeSourceApplyConfiguration               `json:\"quobyte,omitempty\"`\n\tAzureDisk             *AzureDiskVolumeSourceApplyConfiguration             `json:\"azureDisk,omitempty\"`\n\tPhotonPersistentDisk  *PhotonPersistentDiskVolumeSourceApplyConfiguration  `json:\"photonPersistentDisk,omitempty\"`\n\tProjected             *ProjectedVolumeSourceApplyConfiguration             `json:\"projected,omitempty\"`\n\tPortworxVolume        *PortworxVolumeSourceApplyConfiguration              `json:\"portworxVolume,omitempty\"`\n\tScaleIO               *ScaleIOVolumeSourceApplyConfiguration               `json:\"scaleIO,omitempty\"`\n\tStorageOS             *StorageOSVolumeSourceApplyConfiguration             `json:\"storageos,omitempty\"`\n\tCSI                   *CSIVolumeSourceApplyConfiguration                   `json:\"csi,omitempty\"`\n\tEphemeral             *EphemeralVolumeSourceApplyConfiguration             `json:\"ephemeral,omitempty\"`\n}\n\n// VolumeSourceApplyConfiguration constructs an declarative configuration of the VolumeSource type for use with\n// apply.\nfunc VolumeSource() *VolumeSourceApplyConfiguration {\n\treturn &VolumeSourceApplyConfiguration{}\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EmptyDir field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.EmptyDir = value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithGitRepo sets the GitRepo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GitRepo field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.GitRepo = value\n\treturn b\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Secret = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PersistentVolumeClaim = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.DownwardAPI = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithProjected sets the Projected field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Projected field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Projected = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n\n// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ephemeral field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Ephemeral = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VsphereVirtualDiskVolumeSourceApplyConfiguration represents an declarative configuration of the VsphereVirtualDiskVolumeSource type for use\n// with apply.\ntype VsphereVirtualDiskVolumeSourceApplyConfiguration struct {\n\tVolumePath        *string `json:\"volumePath,omitempty\"`\n\tFSType            *string `json:\"fsType,omitempty\"`\n\tStoragePolicyName *string `json:\"storagePolicyName,omitempty\"`\n\tStoragePolicyID   *string `json:\"storagePolicyID,omitempty\"`\n}\n\n// VsphereVirtualDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the VsphereVirtualDiskVolumeSource type for use with\n// apply.\nfunc VsphereVirtualDiskVolumeSource() *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\treturn &VsphereVirtualDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumePath sets the VolumePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumePath field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithVolumePath(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.VolumePath = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithFSType(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithStoragePolicyName sets the StoragePolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePolicyName field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyName(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.StoragePolicyName = &value\n\treturn b\n}\n\n// WithStoragePolicyID sets the StoragePolicyID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePolicyID field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyID(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.StoragePolicyID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WeightedPodAffinityTermApplyConfiguration represents an declarative configuration of the WeightedPodAffinityTerm type for use\n// with apply.\ntype WeightedPodAffinityTermApplyConfiguration struct {\n\tWeight          *int32                             `json:\"weight,omitempty\"`\n\tPodAffinityTerm *PodAffinityTermApplyConfiguration `json:\"podAffinityTerm,omitempty\"`\n}\n\n// WeightedPodAffinityTermApplyConfiguration constructs an declarative configuration of the WeightedPodAffinityTerm type for use with\n// apply.\nfunc WeightedPodAffinityTerm() *WeightedPodAffinityTermApplyConfiguration {\n\treturn &WeightedPodAffinityTermApplyConfiguration{}\n}\n\n// WithWeight sets the Weight field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Weight field is set to the value of the last call.\nfunc (b *WeightedPodAffinityTermApplyConfiguration) WithWeight(value int32) *WeightedPodAffinityTermApplyConfiguration {\n\tb.Weight = &value\n\treturn b\n}\n\n// WithPodAffinityTerm sets the PodAffinityTerm field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAffinityTerm field is set to the value of the last call.\nfunc (b *WeightedPodAffinityTermApplyConfiguration) WithPodAffinityTerm(value *PodAffinityTermApplyConfiguration) *WeightedPodAffinityTermApplyConfiguration {\n\tb.PodAffinityTerm = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WindowsSecurityContextOptionsApplyConfiguration represents an declarative configuration of the WindowsSecurityContextOptions type for use\n// with apply.\ntype WindowsSecurityContextOptionsApplyConfiguration struct {\n\tGMSACredentialSpecName *string `json:\"gmsaCredentialSpecName,omitempty\"`\n\tGMSACredentialSpec     *string `json:\"gmsaCredentialSpec,omitempty\"`\n\tRunAsUserName          *string `json:\"runAsUserName,omitempty\"`\n\tHostProcess            *bool   `json:\"hostProcess,omitempty\"`\n}\n\n// WindowsSecurityContextOptionsApplyConfiguration constructs an declarative configuration of the WindowsSecurityContextOptions type for use with\n// apply.\nfunc WindowsSecurityContextOptions() *WindowsSecurityContextOptionsApplyConfiguration {\n\treturn &WindowsSecurityContextOptionsApplyConfiguration{}\n}\n\n// WithGMSACredentialSpecName sets the GMSACredentialSpecName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GMSACredentialSpecName field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpecName(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.GMSACredentialSpecName = &value\n\treturn b\n}\n\n// WithGMSACredentialSpec sets the GMSACredentialSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GMSACredentialSpec field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpec(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.GMSACredentialSpec = &value\n\treturn b\n}\n\n// WithRunAsUserName sets the RunAsUserName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUserName field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithRunAsUserName(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.RunAsUserName = &value\n\treturn b\n}\n\n// WithHostProcess sets the HostProcess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostProcess field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithHostProcess(value bool) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.HostProcess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use\n// with apply.\ntype EndpointApplyConfiguration struct {\n\tAddresses          []string                                  `json:\"addresses,omitempty\"`\n\tConditions         *EndpointConditionsApplyConfiguration     `json:\"conditions,omitempty\"`\n\tHostname           *string                                   `json:\"hostname,omitempty\"`\n\tTargetRef          *corev1.ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n\tDeprecatedTopology map[string]string                         `json:\"deprecatedTopology,omitempty\"`\n\tNodeName           *string                                   `json:\"nodeName,omitempty\"`\n\tZone               *string                                   `json:\"zone,omitempty\"`\n\tHints              *EndpointHintsApplyConfiguration          `json:\"hints,omitempty\"`\n}\n\n// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with\n// apply.\nfunc Endpoint() *EndpointApplyConfiguration {\n\treturn &EndpointApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration {\n\tfor i := range values {\n\t\tb.Addresses = append(b.Addresses, values[i])\n\t}\n\treturn b\n}\n\n// WithConditions sets the Conditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Conditions field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Conditions = value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithTargetRef(value *corev1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n\n// WithDeprecatedTopology puts the entries into the DeprecatedTopology field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DeprecatedTopology field,\n// overwriting an existing map entries in DeprecatedTopology field with the same key.\nfunc (b *EndpointApplyConfiguration) WithDeprecatedTopology(entries map[string]string) *EndpointApplyConfiguration {\n\tif b.DeprecatedTopology == nil && len(entries) > 0 {\n\t\tb.DeprecatedTopology = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DeprecatedTopology[k] = v\n\t}\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithZone sets the Zone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Zone field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithZone(value string) *EndpointApplyConfiguration {\n\tb.Zone = &value\n\treturn b\n}\n\n// WithHints sets the Hints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hints field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Hints = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointConditionsApplyConfiguration represents an declarative configuration of the EndpointConditions type for use\n// with apply.\ntype EndpointConditionsApplyConfiguration struct {\n\tReady       *bool `json:\"ready,omitempty\"`\n\tServing     *bool `json:\"serving,omitempty\"`\n\tTerminating *bool `json:\"terminating,omitempty\"`\n}\n\n// EndpointConditionsApplyConfiguration constructs an declarative configuration of the EndpointConditions type for use with\n// apply.\nfunc EndpointConditions() *EndpointConditionsApplyConfiguration {\n\treturn &EndpointConditionsApplyConfiguration{}\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithServing sets the Serving field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Serving field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Serving = &value\n\treturn b\n}\n\n// WithTerminating sets the Terminating field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminating field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Terminating = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointHintsApplyConfiguration represents an declarative configuration of the EndpointHints type for use\n// with apply.\ntype EndpointHintsApplyConfiguration struct {\n\tForZones []ForZoneApplyConfiguration `json:\"forZones,omitempty\"`\n}\n\n// EndpointHintsApplyConfiguration constructs an declarative configuration of the EndpointHints type for use with\n// apply.\nfunc EndpointHints() *EndpointHintsApplyConfiguration {\n\treturn &EndpointHintsApplyConfiguration{}\n}\n\n// WithForZones adds the given value to the ForZones field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ForZones field.\nfunc (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithForZones\")\n\t\t}\n\t\tb.ForZones = append(b.ForZones, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string      `json:\"name,omitempty\"`\n\tProtocol    *v1.Protocol `json:\"protocol,omitempty\"`\n\tPort        *int32       `json:\"port,omitempty\"`\n\tAppProtocol *string      `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointSliceApplyConfiguration represents an declarative configuration of the EndpointSlice type for use\n// with apply.\ntype EndpointSliceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tAddressType                      *discoveryv1.AddressType         `json:\"addressType,omitempty\"`\n\tEndpoints                        []EndpointApplyConfiguration     `json:\"endpoints,omitempty\"`\n\tPorts                            []EndpointPortApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// EndpointSlice constructs an declarative configuration of the EndpointSlice type for use with\n// apply.\nfunc EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration {\n\tb := &EndpointSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from\n// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a\n// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API.\n// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpointSlice(endpointSlice *discoveryv1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"\")\n}\n\n// ExtractEndpointSliceStatus is the same as ExtractEndpointSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointSliceStatus(endpointSlice *discoveryv1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"status\")\n}\n\nfunc extractEndpointSlice(endpointSlice *discoveryv1.EndpointSlice, fieldManager string, subresource string) (*EndpointSliceApplyConfiguration, error) {\n\tb := &EndpointSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpointSlice, internal.Parser().Type(\"io.k8s.api.discovery.v1.EndpointSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpointSlice.Name)\n\tb.WithNamespace(endpointSlice.Namespace)\n\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithAddressType sets the AddressType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AddressType field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAddressType(value discoveryv1.AddressType) *EndpointSliceApplyConfiguration {\n\tb.AddressType = &value\n\treturn b\n}\n\n// WithEndpoints adds the given value to the Endpoints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Endpoints field.\nfunc (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEndpoints\")\n\t\t}\n\t\tb.Endpoints = append(b.Endpoints, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ForZoneApplyConfiguration represents an declarative configuration of the ForZone type for use\n// with apply.\ntype ForZoneApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// ForZoneApplyConfiguration constructs an declarative configuration of the ForZone type for use with\n// apply.\nfunc ForZone() *ForZoneApplyConfiguration {\n\treturn &ForZoneApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use\n// with apply.\ntype EndpointApplyConfiguration struct {\n\tAddresses  []string                              `json:\"addresses,omitempty\"`\n\tConditions *EndpointConditionsApplyConfiguration `json:\"conditions,omitempty\"`\n\tHostname   *string                               `json:\"hostname,omitempty\"`\n\tTargetRef  *v1.ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n\tTopology   map[string]string                     `json:\"topology,omitempty\"`\n\tNodeName   *string                               `json:\"nodeName,omitempty\"`\n\tHints      *EndpointHintsApplyConfiguration      `json:\"hints,omitempty\"`\n}\n\n// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with\n// apply.\nfunc Endpoint() *EndpointApplyConfiguration {\n\treturn &EndpointApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration {\n\tfor i := range values {\n\t\tb.Addresses = append(b.Addresses, values[i])\n\t}\n\treturn b\n}\n\n// WithConditions sets the Conditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Conditions field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Conditions = value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithTargetRef(value *v1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n\n// WithTopology puts the entries into the Topology field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Topology field,\n// overwriting an existing map entries in Topology field with the same key.\nfunc (b *EndpointApplyConfiguration) WithTopology(entries map[string]string) *EndpointApplyConfiguration {\n\tif b.Topology == nil && len(entries) > 0 {\n\t\tb.Topology = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Topology[k] = v\n\t}\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithHints sets the Hints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hints field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Hints = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EndpointConditionsApplyConfiguration represents an declarative configuration of the EndpointConditions type for use\n// with apply.\ntype EndpointConditionsApplyConfiguration struct {\n\tReady       *bool `json:\"ready,omitempty\"`\n\tServing     *bool `json:\"serving,omitempty\"`\n\tTerminating *bool `json:\"terminating,omitempty\"`\n}\n\n// EndpointConditionsApplyConfiguration constructs an declarative configuration of the EndpointConditions type for use with\n// apply.\nfunc EndpointConditions() *EndpointConditionsApplyConfiguration {\n\treturn &EndpointConditionsApplyConfiguration{}\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithServing sets the Serving field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Serving field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Serving = &value\n\treturn b\n}\n\n// WithTerminating sets the Terminating field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminating field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Terminating = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EndpointHintsApplyConfiguration represents an declarative configuration of the EndpointHints type for use\n// with apply.\ntype EndpointHintsApplyConfiguration struct {\n\tForZones []ForZoneApplyConfiguration `json:\"forZones,omitempty\"`\n}\n\n// EndpointHintsApplyConfiguration constructs an declarative configuration of the EndpointHints type for use with\n// apply.\nfunc EndpointHints() *EndpointHintsApplyConfiguration {\n\treturn &EndpointHintsApplyConfiguration{}\n}\n\n// WithForZones adds the given value to the ForZones field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ForZones field.\nfunc (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithForZones\")\n\t\t}\n\t\tb.ForZones = append(b.ForZones, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string      `json:\"name,omitempty\"`\n\tProtocol    *v1.Protocol `json:\"protocol,omitempty\"`\n\tPort        *int32       `json:\"port,omitempty\"`\n\tAppProtocol *string      `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointSliceApplyConfiguration represents an declarative configuration of the EndpointSlice type for use\n// with apply.\ntype EndpointSliceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tAddressType                      *v1beta1.AddressType             `json:\"addressType,omitempty\"`\n\tEndpoints                        []EndpointApplyConfiguration     `json:\"endpoints,omitempty\"`\n\tPorts                            []EndpointPortApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// EndpointSlice constructs an declarative configuration of the EndpointSlice type for use with\n// apply.\nfunc EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration {\n\tb := &EndpointSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from\n// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a\n// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API.\n// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpointSlice(endpointSlice *v1beta1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"\")\n}\n\n// ExtractEndpointSliceStatus is the same as ExtractEndpointSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointSliceStatus(endpointSlice *v1beta1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"status\")\n}\n\nfunc extractEndpointSlice(endpointSlice *v1beta1.EndpointSlice, fieldManager string, subresource string) (*EndpointSliceApplyConfiguration, error) {\n\tb := &EndpointSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpointSlice, internal.Parser().Type(\"io.k8s.api.discovery.v1beta1.EndpointSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpointSlice.Name)\n\tb.WithNamespace(endpointSlice.Namespace)\n\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithAddressType sets the AddressType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AddressType field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAddressType(value v1beta1.AddressType) *EndpointSliceApplyConfiguration {\n\tb.AddressType = &value\n\treturn b\n}\n\n// WithEndpoints adds the given value to the Endpoints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Endpoints field.\nfunc (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEndpoints\")\n\t\t}\n\t\tb.Endpoints = append(b.Endpoints, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ForZoneApplyConfiguration represents an declarative configuration of the ForZone type for use\n// with apply.\ntype ForZoneApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// ForZoneApplyConfiguration constructs an declarative configuration of the ForZone type for use with\n// apply.\nfunc ForZone() *ForZoneApplyConfiguration {\n\treturn &ForZoneApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapieventsv1 \"k8s.io/api/events/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents an declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tEventTime                        *metav1.MicroTime                         `json:\"eventTime,omitempty\"`\n\tSeries                           *EventSeriesApplyConfiguration            `json:\"series,omitempty\"`\n\tReportingController              *string                                   `json:\"reportingController,omitempty\"`\n\tReportingInstance                *string                                   `json:\"reportingInstance,omitempty\"`\n\tAction                           *string                                   `json:\"action,omitempty\"`\n\tReason                           *string                                   `json:\"reason,omitempty\"`\n\tRegarding                        *corev1.ObjectReferenceApplyConfiguration `json:\"regarding,omitempty\"`\n\tRelated                          *corev1.ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tNote                             *string                                   `json:\"note,omitempty\"`\n\tType                             *string                                   `json:\"type,omitempty\"`\n\tDeprecatedSource                 *corev1.EventSourceApplyConfiguration     `json:\"deprecatedSource,omitempty\"`\n\tDeprecatedFirstTimestamp         *metav1.Time                              `json:\"deprecatedFirstTimestamp,omitempty\"`\n\tDeprecatedLastTimestamp          *metav1.Time                              `json:\"deprecatedLastTimestamp,omitempty\"`\n\tDeprecatedCount                  *int32                                    `json:\"deprecatedCount,omitempty\"`\n}\n\n// Event constructs an declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *apieventsv1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *apieventsv1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *apieventsv1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.events.v1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithRegarding sets the Regarding field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Regarding field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Regarding = value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithNote sets the Note field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Note field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration {\n\tb.Note = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedSource field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.DeprecatedSource = value\n\treturn b\n}\n\n// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedFirstTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedLastTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedCount field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration {\n\tb.DeprecatedCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32        `json:\"count,omitempty\"`\n\tLastObservedTime *v1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents an declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tEventTime                        *metav1.MicroTime                         `json:\"eventTime,omitempty\"`\n\tSeries                           *EventSeriesApplyConfiguration            `json:\"series,omitempty\"`\n\tReportingController              *string                                   `json:\"reportingController,omitempty\"`\n\tReportingInstance                *string                                   `json:\"reportingInstance,omitempty\"`\n\tAction                           *string                                   `json:\"action,omitempty\"`\n\tReason                           *string                                   `json:\"reason,omitempty\"`\n\tRegarding                        *corev1.ObjectReferenceApplyConfiguration `json:\"regarding,omitempty\"`\n\tRelated                          *corev1.ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tNote                             *string                                   `json:\"note,omitempty\"`\n\tType                             *string                                   `json:\"type,omitempty\"`\n\tDeprecatedSource                 *corev1.EventSourceApplyConfiguration     `json:\"deprecatedSource,omitempty\"`\n\tDeprecatedFirstTimestamp         *metav1.Time                              `json:\"deprecatedFirstTimestamp,omitempty\"`\n\tDeprecatedLastTimestamp          *metav1.Time                              `json:\"deprecatedLastTimestamp,omitempty\"`\n\tDeprecatedCount                  *int32                                    `json:\"deprecatedCount,omitempty\"`\n}\n\n// Event constructs an declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *eventsv1beta1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *eventsv1beta1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *eventsv1beta1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.events.v1beta1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithRegarding sets the Regarding field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Regarding field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Regarding = value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithNote sets the Note field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Note field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration {\n\tb.Note = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedSource field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.DeprecatedSource = value\n\treturn b\n}\n\n// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedFirstTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedLastTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedCount field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration {\n\tb.DeprecatedCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32        `json:\"count,omitempty\"`\n\tLastObservedTime *v1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs an declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *v1beta1.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus             `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                         `json:\"reason,omitempty\"`\n\tMessage            *string                         `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value v1beta1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *v1.LabelSelectorApplyConfiguration        `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tTemplateGeneration   *int64                                     `json:\"templateGeneration,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithTemplateGeneration sets the TemplateGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TemplateGeneration field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplateGeneration(value int64) *DaemonSetSpecApplyConfiguration {\n\tb.TemplateGeneration = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *v1beta1.DaemonSetUpdateStrategyType      `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1beta1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs an declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *extensionsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *extensionsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *extensionsv1beta1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *v1beta1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus              `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                     `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value v1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tRollbackTo              *RollbackConfigApplyConfiguration         `json:\"rollbackTo,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollbackTo field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.RollbackTo = value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *v1beta1.DeploymentStrategyType            `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *v1beta1.PathType                 `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1beta1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs an declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *extensionsv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *extensionsv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *extensionsv1beta1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tServiceName *string                                         `json:\"serviceName,omitempty\"`\n\tServicePort *intstr.IntOrString                             `json:\"servicePort,omitempty\"`\n\tResource    *v1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithServicePort sets the ServicePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServicePort field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration {\n\tb.ServicePort = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerIngressApplyConfiguration represents an declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerStatusApplyConfiguration represents an declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents an declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs an declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",omitempty,inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tBackend          *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ipblock.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IPBlockApplyConfiguration represents an declarative configuration of the IPBlock type for use\n// with apply.\ntype IPBlockApplyConfiguration struct {\n\tCIDR   *string  `json:\"cidr,omitempty\"`\n\tExcept []string `json:\"except,omitempty\"`\n}\n\n// IPBlockApplyConfiguration constructs an declarative configuration of the IPBlock type for use with\n// apply.\nfunc IPBlock() *IPBlockApplyConfiguration {\n\treturn &IPBlockApplyConfiguration{}\n}\n\n// WithCIDR sets the CIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CIDR field is set to the value of the last call.\nfunc (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration {\n\tb.CIDR = &value\n\treturn b\n}\n\n// WithExcept adds the given value to the Except field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Except field.\nfunc (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration {\n\tfor i := range values {\n\t\tb.Except = append(b.Except, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyApplyConfiguration represents an declarative configuration of the NetworkPolicy type for use\n// with apply.\ntype NetworkPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *NetworkPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *NetworkPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with\n// apply.\nfunc NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration {\n\tb := &NetworkPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from\n// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a\n// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API.\n// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNetworkPolicy(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"\")\n}\n\n// ExtractNetworkPolicyStatus is the same as ExtractNetworkPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNetworkPolicyStatus(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"status\")\n}\n\nfunc extractNetworkPolicy(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string, subresource string) (*NetworkPolicyApplyConfiguration, error) {\n\tb := &NetworkPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(networkPolicy, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.NetworkPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(networkPolicy.Name)\n\tb.WithNamespace(networkPolicy.Namespace)\n\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithStatus(value *NetworkPolicyStatusApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyegressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NetworkPolicyEgressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyEgressRule type for use\n// with apply.\ntype NetworkPolicyEgressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tTo    []NetworkPolicyPeerApplyConfiguration `json:\"to,omitempty\"`\n}\n\n// NetworkPolicyEgressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyEgressRule type for use with\n// apply.\nfunc NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration {\n\treturn &NetworkPolicyEgressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithTo adds the given value to the To field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the To field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTo\")\n\t\t}\n\t\tb.To = append(b.To, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NetworkPolicyIngressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyIngressRule type for use\n// with apply.\ntype NetworkPolicyIngressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tFrom  []NetworkPolicyPeerApplyConfiguration `json:\"from,omitempty\"`\n}\n\n// NetworkPolicyIngressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyIngressRule type for use with\n// apply.\nfunc NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration {\n\treturn &NetworkPolicyIngressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithFrom adds the given value to the From field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the From field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithFrom\")\n\t\t}\n\t\tb.From = append(b.From, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicypeer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyPeerApplyConfiguration represents an declarative configuration of the NetworkPolicyPeer type for use\n// with apply.\ntype NetworkPolicyPeerApplyConfiguration struct {\n\tPodSelector       *v1.LabelSelectorApplyConfiguration `json:\"podSelector,omitempty\"`\n\tNamespaceSelector *v1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n\tIPBlock           *IPBlockApplyConfiguration          `json:\"ipBlock,omitempty\"`\n}\n\n// NetworkPolicyPeerApplyConfiguration constructs an declarative configuration of the NetworkPolicyPeer type for use with\n// apply.\nfunc NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration {\n\treturn &NetworkPolicyPeerApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithIPBlock sets the IPBlock field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPBlock field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.IPBlock = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// NetworkPolicyPortApplyConfiguration represents an declarative configuration of the NetworkPolicyPort type for use\n// with apply.\ntype NetworkPolicyPortApplyConfiguration struct {\n\tProtocol *v1.Protocol        `json:\"protocol,omitempty\"`\n\tPort     *intstr.IntOrString `json:\"port,omitempty\"`\n\tEndPort  *int32              `json:\"endPort,omitempty\"`\n}\n\n// NetworkPolicyPortApplyConfiguration constructs an declarative configuration of the NetworkPolicyPort type for use with\n// apply.\nfunc NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration {\n\treturn &NetworkPolicyPortApplyConfiguration{}\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithEndPort sets the EndPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndPort field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration {\n\tb.EndPort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicySpecApplyConfiguration represents an declarative configuration of the NetworkPolicySpec type for use\n// with apply.\ntype NetworkPolicySpecApplyConfiguration struct {\n\tPodSelector *v1.LabelSelectorApplyConfiguration          `json:\"podSelector,omitempty\"`\n\tIngress     []NetworkPolicyIngressRuleApplyConfiguration `json:\"ingress,omitempty\"`\n\tEgress      []NetworkPolicyEgressRuleApplyConfiguration  `json:\"egress,omitempty\"`\n\tPolicyTypes []extensionsv1beta1.PolicyType               `json:\"policyTypes,omitempty\"`\n}\n\n// NetworkPolicySpecApplyConfiguration constructs an declarative configuration of the NetworkPolicySpec type for use with\n// apply.\nfunc NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration {\n\treturn &NetworkPolicySpecApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n\n// WithEgress adds the given value to the Egress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Egress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEgress\")\n\t\t}\n\t\tb.Egress = append(b.Egress, *values[i])\n\t}\n\treturn b\n}\n\n// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PolicyTypes field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...extensionsv1beta1.PolicyType) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PolicyTypes = append(b.PolicyTypes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyStatusApplyConfiguration represents an declarative configuration of the NetworkPolicyStatus type for use\n// with apply.\ntype NetworkPolicyStatusApplyConfiguration struct {\n\tConditions []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// NetworkPolicyStatusApplyConfiguration constructs an declarative configuration of the NetworkPolicyStatus type for use with\n// apply.\nfunc NetworkPolicyStatus() *NetworkPolicyStatusApplyConfiguration {\n\treturn &NetworkPolicyStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NetworkPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *NetworkPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *v1beta1.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus              `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value v1beta1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollbackconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RollbackConfigApplyConfiguration represents an declarative configuration of the RollbackConfig type for use\n// with apply.\ntype RollbackConfigApplyConfiguration struct {\n\tRevision *int64 `json:\"revision,omitempty\"`\n}\n\n// RollbackConfigApplyConfiguration constructs an declarative configuration of the RollbackConfig type for use with\n// apply.\nfunc RollbackConfig() *RollbackConfigApplyConfiguration {\n\treturn &RollbackConfigApplyConfiguration{}\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents an declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *v1beta1.ScaleSpec   `json:\"spec,omitempty\"`\n\tStatus                           *v1beta1.ScaleStatus `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs an declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value v1beta1.ScaleSpec) *ScaleApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value v1beta1.ScaleStatus) *ScaleApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *v1alpha1.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1alpha1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tflowcontrolv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs an declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1alpha1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1alpha1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1alpha1.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1alpha1.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *v1alpha1.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *v1alpha1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                          `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                           `json:\"reason,omitempty\"`\n\tMessage            *string                           `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value v1alpha1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tAssuredConcurrencyShares *int32                           `json:\"assuredConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.AssuredConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n)\n\n// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *v1alpha1.LimitResponseType             `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value v1alpha1.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tflowcontrolv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *v1alpha1.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *v1alpha1.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                          `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                           `json:\"reason,omitempty\"`\n\tMessage            *string                                           `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1alpha1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *v1alpha1.PriorityLevelEnablement                    `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1alpha1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n)\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *v1alpha1.SubjectKind                    `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value v1alpha1.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *v1beta1.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1beta1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs an declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta1.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *v1beta1.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value v1beta1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1beta1.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tAssuredConcurrencyShares *int32                           `json:\"assuredConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.AssuredConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *v1beta1.LimitResponseType              `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value v1beta1.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *v1beta1.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta1.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                          `json:\"reason,omitempty\"`\n\tMessage            *string                                          `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1beta1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1beta1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *v1beta1.PriorityLevelEnablement                     `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1beta1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *v1beta1.SubjectKind                     `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value v1beta1.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *v1beta2.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1beta2.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs an declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta2.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *v1beta2.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta2.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value v1beta2.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1beta2.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tAssuredConcurrencyShares *int32                           `json:\"assuredConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.AssuredConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *v1beta2.LimitResponseType              `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value v1beta2.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *v1beta2.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta2.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                          `json:\"reason,omitempty\"`\n\tMessage            *string                                          `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1beta2.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1beta2.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *v1beta2.PriorityLevelEnablement                     `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1beta2.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *v1beta2.SubjectKind                     `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value v1beta2.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *v1beta3.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1beta3.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs an declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta3.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *v1beta3.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta3.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value v1beta3.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1beta3.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32                           `json:\"nominalConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *v1beta3.LimitResponseType              `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value v1beta3.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *v1beta3.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *v1beta3.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                          `json:\"reason,omitempty\"`\n\tMessage            *string                                          `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1beta3.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1beta3.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *v1beta3.PriorityLevelEnablement                     `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1beta3.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *v1beta3.SubjectKind                     `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value v1beta3.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/internal/internal.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\ttyped \"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\nfunc Parser() *typed.Parser {\n\tparserOnce.Do(func() {\n\t\tvar err error\n\t\tparser, err = typed.NewParser(schemaYAML)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to parse schema: %v\", err))\n\t\t}\n\t})\n\treturn parser\n}\n\nvar parserOnce sync.Once\nvar parser *typed.Parser\nvar schemaYAML = typed.YAMLObject(`types:\n- name: io.k8s.api.admissionregistration.v1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MutatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.RuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.AuditAnnotation\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: valueExpression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.ExpressionWarning\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        scalar: string\n      default: \"\"\n    - name: warning\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n  map:\n    fields:\n    - name: excludeResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n          elementRelationship: atomic\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ParamKind\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ParamRef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.TypeChecking\n  map:\n    fields:\n    - name: expressionWarnings\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.ExpressionWarning\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\n  map:\n    fields:\n    - name: matchResources\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: paramRef\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamRef\n    - name: policyName\n      type:\n        scalar: string\n    - name: validationActions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\n  map:\n    fields:\n    - name: auditAnnotations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.AuditAnnotation\n          elementRelationship: atomic\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchConstraints\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: paramKind\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamKind\n    - name: validations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.Validation\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: typeChecking\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.TypeChecking\n- name: io.k8s.api.admissionregistration.v1alpha1.Validation\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: message\n      type:\n        scalar: string\n    - name: messageExpression\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1beta1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion\n  map:\n    fields:\n    - name: apiServerID\n      type:\n        scalar: string\n    - name: decodableVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: encodingVersion\n      type:\n        scalar: string\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersion\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus\n      default: {}\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: reason\n      type:\n        scalar: string\n      default: \"\"\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus\n  map:\n    fields:\n    - name: commonEncodingVersion\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: storageVersions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion\n          elementRelationship: associative\n          keys:\n          - apiServerID\n- name: io.k8s.api.apps.v1.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.apps.v1.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: rollbackTo\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollbackConfig\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.RollbackConfig\n  map:\n    fields:\n    - name: revision\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta1.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta1.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1beta1.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta1.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta2.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta2.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1beta2.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n      default: {}\n    - name: targetCPUUtilizationPercentage\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: currentCPUUtilizationPercentage\n      type:\n        scalar: numeric\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.ExternalMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n  map:\n    fields:\n    - name: periodSeconds\n      type:\n        scalar: numeric\n      default: 0\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.autoscaling.v2.HPAScalingRules\n  map:\n    fields:\n    - name: policies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n          elementRelationship: atomic\n    - name: selectPolicy\n      type:\n        scalar: string\n    - name: stabilizationWindowSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n  map:\n    fields:\n    - name: scaleDown\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n    - name: scaleUp\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: behavior\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.MetricIdentifier\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.MetricTarget\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.MetricValueStatus\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.ObjectMetricSource\n  map:\n    fields:\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.PodsMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.PodsMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: targetAverageUtilization\n      type:\n        scalar: numeric\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: currentAverageUtilization\n      type:\n        scalar: numeric\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\n  map:\n    fields:\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: metricSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: targetValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\n  map:\n    fields:\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: currentValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: metricSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\n          elementRelationship: atomic\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta1.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\n  map:\n    fields:\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n    - name: targetValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\n  map:\n    fields:\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: currentValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.PodsMetricSource\n  map:\n    fields:\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\n  map:\n    fields:\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: targetAverageUtilization\n      type:\n        scalar: numeric\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\n  map:\n    fields:\n    - name: currentAverageUtilization\n      type:\n        scalar: numeric\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy\n  map:\n    fields:\n    - name: periodSeconds\n      type:\n        scalar: numeric\n      default: 0\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n  map:\n    fields:\n    - name: policies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy\n          elementRelationship: atomic\n    - name: selectPolicy\n      type:\n        scalar: string\n    - name: stabilizationWindowSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\n  map:\n    fields:\n    - name: scaleDown\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n    - name: scaleUp\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: behavior\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\n          elementRelationship: atomic\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta2.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.MetricTarget\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\n  map:\n    fields:\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.PodsMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.CronJob\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobStatus\n      default: {}\n- name: io.k8s.api.batch.v1.CronJobSpec\n  map:\n    fields:\n    - name: concurrencyPolicy\n      type:\n        scalar: string\n    - name: failedJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: jobTemplate\n      type:\n        namedType: io.k8s.api.batch.v1.JobTemplateSpec\n      default: {}\n    - name: schedule\n      type:\n        scalar: string\n      default: \"\"\n    - name: startingDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: successfulJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: timeZone\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.CronJobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: atomic\n    - name: lastScheduleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastSuccessfulTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.batch.v1.Job\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.JobStatus\n      default: {}\n- name: io.k8s.api.batch.v1.JobCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.JobSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: backoffLimit\n      type:\n        scalar: numeric\n    - name: completionMode\n      type:\n        scalar: string\n    - name: completions\n      type:\n        scalar: numeric\n    - name: manualSelector\n      type:\n        scalar: boolean\n    - name: parallelism\n      type:\n        scalar: numeric\n    - name: podFailurePolicy\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicy\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: ttlSecondsAfterFinished\n      type:\n        scalar: numeric\n- name: io.k8s.api.batch.v1.JobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        scalar: numeric\n    - name: completedIndexes\n      type:\n        scalar: string\n    - name: completionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.JobCondition\n          elementRelationship: atomic\n    - name: failed\n      type:\n        scalar: numeric\n    - name: ready\n      type:\n        scalar: numeric\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: succeeded\n      type:\n        scalar: numeric\n    - name: uncountedTerminatedPods\n      type:\n        namedType: io.k8s.api.batch.v1.UncountedTerminatedPods\n- name: io.k8s.api.batch.v1.JobTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n- name: io.k8s.api.batch.v1.PodFailurePolicy\n  map:\n    fields:\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: associative\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n  map:\n    fields:\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.PodFailurePolicyRule\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n      default: \"\"\n    - name: onExitCodes\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n    - name: onPodConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.UncountedTerminatedPods\n  map:\n    fields:\n    - name: failed\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: succeeded\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.batch.v1beta1.CronJob\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1beta1.CronJobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1beta1.CronJobStatus\n      default: {}\n- name: io.k8s.api.batch.v1beta1.CronJobSpec\n  map:\n    fields:\n    - name: concurrencyPolicy\n      type:\n        scalar: string\n    - name: failedJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: jobTemplate\n      type:\n        namedType: io.k8s.api.batch.v1beta1.JobTemplateSpec\n      default: {}\n    - name: schedule\n      type:\n        scalar: string\n      default: \"\"\n    - name: startingDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: successfulJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: timeZone\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1beta1.CronJobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: atomic\n    - name: lastScheduleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastSuccessfulTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.batch.v1beta1.JobTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n- name: io.k8s.api.certificates.v1.CertificateSigningRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n      default: {}\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n  map:\n    fields:\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: request\n      type:\n        scalar: string\n    - name: signerName\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n    - name: usages\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n  map:\n    fields:\n    - name: certificate\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.certificates.v1alpha1.ClusterTrustBundle\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec\n      default: {}\n- name: io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec\n  map:\n    fields:\n    - name: signerName\n      type:\n        scalar: string\n    - name: trustBundle\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\n      default: {}\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\n  map:\n    fields:\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: request\n      type:\n        scalar: string\n    - name: signerName\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    - name: usages\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\n  map:\n    fields:\n    - name: certificate\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.coordination.v1.Lease\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1.LeaseSpec\n      default: {}\n- name: io.k8s.api.coordination.v1.LeaseSpec\n  map:\n    fields:\n    - name: acquireTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: holderIdentity\n      type:\n        scalar: string\n    - name: leaseDurationSeconds\n      type:\n        scalar: numeric\n    - name: leaseTransitions\n      type:\n        scalar: numeric\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.coordination.v1beta1.Lease\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1beta1.LeaseSpec\n      default: {}\n- name: io.k8s.api.coordination.v1beta1.LeaseSpec\n  map:\n    fields:\n    - name: acquireTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: holderIdentity\n      type:\n        scalar: string\n    - name: leaseDurationSeconds\n      type:\n        scalar: numeric\n    - name: leaseTransitions\n      type:\n        scalar: numeric\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Affinity\n  map:\n    fields:\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.NodeAffinity\n    - name: podAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinity\n    - name: podAntiAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAntiAffinity\n- name: io.k8s.api.core.v1.AttachedVolume\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.AzureDiskVolumeSource\n  map:\n    fields:\n    - name: cachingMode\n      type:\n        scalar: string\n    - name: diskName\n      type:\n        scalar: string\n      default: \"\"\n    - name: diskURI\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n      default: \"\"\n    - name: secretNamespace\n      type:\n        scalar: string\n    - name: shareName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.AzureFileVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n      default: \"\"\n    - name: shareName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CSIPersistentVolumeSource\n  map:\n    fields:\n    - name: controllerExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: controllerPublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodeExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodeStageSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: volumeHandle\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CSIVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.core.v1.Capabilities\n  map:\n    fields:\n    - name: add\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: drop\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CephFSVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CinderPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CinderVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ClaimSource\n  map:\n    fields:\n    - name: resourceClaimName\n      type:\n        scalar: string\n    - name: resourceClaimTemplateName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ClientIPConfig\n  map:\n    fields:\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ComponentCondition\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: message\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ComponentStatus\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ComponentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.core.v1.ConfigMap\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: binaryData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.core.v1.ConfigMapEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n  map:\n    fields:\n    - name: kubeletConfigKey\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ConfigMapProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.Container\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resizePolicy\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerResizePolicy\n          elementRelationship: atomic\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n      default: {}\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerImage\n  map:\n    fields:\n    - name: names\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sizeBytes\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ContainerPort\n  map:\n    fields:\n    - name: containerPort\n      type:\n        scalar: numeric\n      default: 0\n    - name: hostIP\n      type:\n        scalar: string\n    - name: hostPort\n      type:\n        scalar: numeric\n    - name: name\n      type:\n        scalar: string\n    - name: protocol\n      type:\n        scalar: string\n      default: TCP\n- name: io.k8s.api.core.v1.ContainerResizePolicy\n  map:\n    fields:\n    - name: resourceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: restartPolicy\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ContainerState\n  map:\n    fields:\n    - name: running\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateRunning\n    - name: terminated\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateTerminated\n    - name: waiting\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateWaiting\n- name: io.k8s.api.core.v1.ContainerStateRunning\n  map:\n    fields:\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n- name: io.k8s.api.core.v1.ContainerStateTerminated\n  map:\n    fields:\n    - name: containerID\n      type:\n        scalar: string\n    - name: exitCode\n      type:\n        scalar: numeric\n      default: 0\n    - name: finishedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: signal\n      type:\n        scalar: numeric\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n- name: io.k8s.api.core.v1.ContainerStateWaiting\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerStatus\n  map:\n    fields:\n    - name: allocatedResources\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: containerID\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: imageID\n      type:\n        scalar: string\n      default: \"\"\n    - name: lastState\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ready\n      type:\n        scalar: boolean\n      default: false\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: restartCount\n      type:\n        scalar: numeric\n      default: 0\n    - name: started\n      type:\n        scalar: boolean\n    - name: state\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n      default: {}\n- name: io.k8s.api.core.v1.DaemonEndpoint\n  map:\n    fields:\n    - name: Port\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.DownwardAPIProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.DownwardAPIVolumeFile\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n- name: io.k8s.api.core.v1.DownwardAPIVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EmptyDirVolumeSource\n  map:\n    fields:\n    - name: medium\n      type:\n        scalar: string\n    - name: sizeLimit\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.EndpointAddress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointSubset\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: notReadyAddresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.Endpoints\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: subsets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointSubset\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EnvFromSource\n  map:\n    fields:\n    - name: configMapRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapEnvSource\n    - name: prefix\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretEnvSource\n- name: io.k8s.api.core.v1.EnvVar\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n    - name: valueFrom\n      type:\n        namedType: io.k8s.api.core.v1.EnvVarSource\n- name: io.k8s.api.core.v1.EnvVarSource\n  map:\n    fields:\n    - name: configMapKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapKeySelector\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n    - name: secretKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretKeySelector\n- name: io.k8s.api.core.v1.EphemeralContainer\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resizePolicy\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerResizePolicy\n          elementRelationship: atomic\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n      default: {}\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: targetContainerName\n      type:\n        scalar: string\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EphemeralVolumeSource\n  map:\n    fields:\n    - name: volumeClaimTemplate\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n- name: io.k8s.api.core.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: count\n      type:\n        scalar: numeric\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n    - name: firstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: involvedObject\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: lastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: reason\n      type:\n        scalar: string\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingComponent\n      type:\n        scalar: string\n      default: \"\"\n    - name: reportingInstance\n      type:\n        scalar: string\n      default: \"\"\n    - name: series\n      type:\n        namedType: io.k8s.api.core.v1.EventSeries\n    - name: source\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n- name: io.k8s.api.core.v1.EventSource\n  map:\n    fields:\n    - name: component\n      type:\n        scalar: string\n    - name: host\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ExecAction\n  map:\n    fields:\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FCVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: targetWWNs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: wwids\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FlexPersistentVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n- name: io.k8s.api.core.v1.FlexVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n- name: io.k8s.api.core.v1.FlockerVolumeSource\n  map:\n    fields:\n    - name: datasetName\n      type:\n        scalar: string\n    - name: datasetUUID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: pdName\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GRPCAction\n  map:\n    fields:\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: service\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.GitRepoVolumeSource\n  map:\n    fields:\n    - name: directory\n      type:\n        scalar: string\n    - name: repository\n      type:\n        scalar: string\n      default: \"\"\n    - name: revision\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n      default: \"\"\n    - name: endpointsNamespace\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GlusterfsVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.HTTPGetAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: httpHeaders\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HTTPHeader\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n      default: {}\n    - name: scheme\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HTTPHeader\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.HostAlias\n  map:\n    fields:\n    - name: hostnames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ip\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HostPathVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n      default: \"\"\n    - name: iscsiInterface\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n      default: 0\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: targetPortal\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ISCSIVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n      default: \"\"\n    - name: iscsiInterface\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n      default: 0\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: targetPortal\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.KeyToPath\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Lifecycle\n  map:\n    fields:\n    - name: postStart\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n    - name: preStop\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n- name: io.k8s.api.core.v1.LifecycleHandler\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n- name: io.k8s.api.core.v1.LimitRange\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.LimitRangeSpec\n      default: {}\n- name: io.k8s.api.core.v1.LimitRangeItem\n  map:\n    fields:\n    - name: default\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: defaultRequest\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: max\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: maxLimitRequestRatio\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: min\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.LimitRangeSpec\n  map:\n    fields:\n    - name: limits\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LimitRangeItem\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalObjectReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NFSVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: server\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Namespace\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceStatus\n      default: {}\n- name: io.k8s.api.core.v1.NamespaceCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NamespaceSpec\n  map:\n    fields:\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NamespaceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NamespaceCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: phase\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Node\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NodeSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NodeStatus\n      default: {}\n- name: io.k8s.api.core.v1.NodeAddress\n  map:\n    fields:\n    - name: address\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NodeAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PreferredSchedulingTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.NodeCondition\n  map:\n    fields:\n    - name: lastHeartbeatTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NodeConfigSource\n  map:\n    fields:\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n- name: io.k8s.api.core.v1.NodeConfigStatus\n  map:\n    fields:\n    - name: active\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: assigned\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: error\n      type:\n        scalar: string\n    - name: lastKnownGood\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n- name: io.k8s.api.core.v1.NodeDaemonEndpoints\n  map:\n    fields:\n    - name: kubeletEndpoint\n      type:\n        namedType: io.k8s.api.core.v1.DaemonEndpoint\n      default: {}\n- name: io.k8s.api.core.v1.NodeSelector\n  map:\n    fields:\n    - name: nodeSelectorTerms\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorTerm\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorTerm\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    - name: matchFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSpec\n  map:\n    fields:\n    - name: configSource\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: externalID\n      type:\n        scalar: string\n    - name: podCIDR\n      type:\n        scalar: string\n    - name: podCIDRs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: providerID\n      type:\n        scalar: string\n    - name: taints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Taint\n          elementRelationship: atomic\n    - name: unschedulable\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.NodeStatus\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeAddress\n          elementRelationship: associative\n          keys:\n          - type\n    - name: allocatable\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: config\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigStatus\n    - name: daemonEndpoints\n      type:\n        namedType: io.k8s.api.core.v1.NodeDaemonEndpoints\n      default: {}\n    - name: images\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerImage\n          elementRelationship: atomic\n    - name: nodeInfo\n      type:\n        namedType: io.k8s.api.core.v1.NodeSystemInfo\n      default: {}\n    - name: phase\n      type:\n        scalar: string\n    - name: volumesAttached\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.AttachedVolume\n          elementRelationship: atomic\n    - name: volumesInUse\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSystemInfo\n  map:\n    fields:\n    - name: architecture\n      type:\n        scalar: string\n      default: \"\"\n    - name: bootID\n      type:\n        scalar: string\n      default: \"\"\n    - name: containerRuntimeVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kernelVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kubeProxyVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kubeletVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: machineID\n      type:\n        scalar: string\n      default: \"\"\n    - name: operatingSystem\n      type:\n        scalar: string\n      default: \"\"\n    - name: osImage\n      type:\n        scalar: string\n      default: \"\"\n    - name: systemUUID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ObjectFieldSelector\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.PersistentVolume\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeStatus\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: dataSource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: dataSourceRef\n      type:\n        namedType: io.k8s.api.core.v1.TypedObjectReference\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n      default: {}\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: allocatedResources\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: phase\n      type:\n        scalar: string\n    - name: resizeStatus\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n  map:\n    fields:\n    - name: claimName\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.PersistentVolumeSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderPersistentVolumeSource\n    - name: claimRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n        elementRelationship: separable\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIPersistentVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexPersistentVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n    - name: local\n      type:\n        namedType: io.k8s.api.core.v1.LocalVolumeSource\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.VolumeNodeAffinity\n    - name: persistentVolumeReclaimPolicy\n      type:\n        scalar: string\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDPersistentVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.PersistentVolumeStatus\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: pdID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Pod\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PodStatus\n      default: {}\n- name: io.k8s.api.core.v1.PodAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodAffinityTerm\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: topologyKey\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodAntiAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodDNSConfig\n  map:\n    fields:\n    - name: nameservers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: options\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodDNSConfigOption\n          elementRelationship: atomic\n    - name: searches\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodDNSConfigOption\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodIP\n  map:\n    fields:\n    - name: ip\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodOS\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodReadinessGate\n  map:\n    fields:\n    - name: conditionType\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.core.v1.ClaimSource\n      default: {}\n- name: io.k8s.api.core.v1.PodSchedulingGate\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodSecurityContext\n  map:\n    fields:\n    - name: fsGroup\n      type:\n        scalar: numeric\n    - name: fsGroupChangePolicy\n      type:\n        scalar: string\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: supplementalGroups\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: atomic\n    - name: sysctls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Sysctl\n          elementRelationship: atomic\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.PodSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: affinity\n      type:\n        namedType: io.k8s.api.core.v1.Affinity\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: containers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: dnsConfig\n      type:\n        namedType: io.k8s.api.core.v1.PodDNSConfig\n    - name: dnsPolicy\n      type:\n        scalar: string\n    - name: enableServiceLinks\n      type:\n        scalar: boolean\n    - name: ephemeralContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EphemeralContainer\n          elementRelationship: associative\n          keys:\n          - name\n    - name: hostAliases\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HostAlias\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: hostIPC\n      type:\n        scalar: boolean\n    - name: hostNetwork\n      type:\n        scalar: boolean\n    - name: hostPID\n      type:\n        scalar: boolean\n    - name: hostUsers\n      type:\n        scalar: boolean\n    - name: hostname\n      type:\n        scalar: string\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n    - name: initContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: nodeName\n      type:\n        scalar: string\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: os\n      type:\n        namedType: io.k8s.api.core.v1.PodOS\n    - name: overhead\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: priority\n      type:\n        scalar: numeric\n    - name: priorityClassName\n      type:\n        scalar: string\n    - name: readinessGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodReadinessGate\n          elementRelationship: atomic\n    - name: resourceClaims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodResourceClaim\n          elementRelationship: associative\n          keys:\n          - name\n    - name: restartPolicy\n      type:\n        scalar: string\n    - name: runtimeClassName\n      type:\n        scalar: string\n    - name: schedulerName\n      type:\n        scalar: string\n    - name: schedulingGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodSchedulingGate\n          elementRelationship: associative\n          keys:\n          - name\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.PodSecurityContext\n    - name: serviceAccount\n      type:\n        scalar: string\n    - name: serviceAccountName\n      type:\n        scalar: string\n    - name: setHostnameAsFQDN\n      type:\n        scalar: boolean\n    - name: shareProcessNamespace\n      type:\n        scalar: boolean\n    - name: subdomain\n      type:\n        scalar: string\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n    - name: topologySpreadConstraints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySpreadConstraint\n          elementRelationship: associative\n          keys:\n          - topologyKey\n          - whenUnsatisfiable\n    - name: volumes\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Volume\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.PodStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: containerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: ephemeralContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: hostIP\n      type:\n        scalar: string\n    - name: initContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: message\n      type:\n        scalar: string\n    - name: nominatedNodeName\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: podIP\n      type:\n        scalar: string\n    - name: podIPs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodIP\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: qosClass\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: resize\n      type:\n        scalar: string\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.PodTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.core.v1.PodTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n      default: {}\n- name: io.k8s.api.core.v1.PortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PortworxVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PreferredSchedulingTerm\n  map:\n    fields:\n    - name: preference\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelectorTerm\n      default: {}\n    - name: weight\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.Probe\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: failureThreshold\n      type:\n        scalar: numeric\n    - name: grpc\n      type:\n        namedType: io.k8s.api.core.v1.GRPCAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: initialDelaySeconds\n      type:\n        scalar: numeric\n    - name: periodSeconds\n      type:\n        scalar: numeric\n    - name: successThreshold\n      type:\n        scalar: numeric\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ProjectedVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: sources\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeProjection\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.QuobyteVolumeSource\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: registry\n      type:\n        scalar: string\n      default: \"\"\n    - name: tenant\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n    - name: volume\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.RBDPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: keyring\n      type:\n        scalar: string\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.RBDVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: keyring\n      type:\n        scalar: string\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ReplicationController\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerStatus\n      default: {}\n- name: io.k8s.api.core.v1.ReplicationControllerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ReplicationControllerSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.core.v1.ReplicationControllerStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ReplicationControllerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.ResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ResourceFieldSelector\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: divisor\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n      default: {}\n    - name: resource\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceQuota\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaStatus\n      default: {}\n- name: io.k8s.api.core.v1.ResourceQuotaSpec\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: scopeSelector\n      type:\n        namedType: io.k8s.api.core.v1.ScopeSelector\n    - name: scopes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceQuotaStatus\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: used\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.ResourceRequirements\n  map:\n    fields:\n    - name: claims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceClaim\n          elementRelationship: associative\n          keys:\n          - name\n    - name: limits\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: requests\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.SELinuxOptions\n  map:\n    fields:\n    - name: level\n      type:\n        scalar: string\n    - name: role\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: gateway\n      type:\n        scalar: string\n      default: \"\"\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n      default: \"\"\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: gateway\n      type:\n        scalar: string\n      default: \"\"\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n      default: \"\"\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScopeSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n  map:\n    fields:\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: scopeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.SeccompProfile\n  map:\n    fields:\n    - name: localhostProfile\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: localhostProfile\n        discriminatorValue: LocalhostProfile\n- name: io.k8s.api.core.v1.Secret\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: stringData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecretEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: optional\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecurityContext\n  map:\n    fields:\n    - name: allowPrivilegeEscalation\n      type:\n        scalar: boolean\n    - name: capabilities\n      type:\n        namedType: io.k8s.api.core.v1.Capabilities\n    - name: privileged\n      type:\n        scalar: boolean\n    - name: procMount\n      type:\n        scalar: string\n    - name: readOnlyRootFilesystem\n      type:\n        scalar: boolean\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.Service\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ServiceSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ServiceStatus\n      default: {}\n- name: io.k8s.api.core.v1.ServiceAccount\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: secrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.ServiceAccountTokenProjection\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ServicePort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: nodePort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: TCP\n    - name: targetPort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n      default: {}\n- name: io.k8s.api.core.v1.ServiceSpec\n  map:\n    fields:\n    - name: allocateLoadBalancerNodePorts\n      type:\n        scalar: boolean\n    - name: clusterIP\n      type:\n        scalar: string\n    - name: clusterIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalName\n      type:\n        scalar: string\n    - name: externalTrafficPolicy\n      type:\n        scalar: string\n    - name: healthCheckNodePort\n      type:\n        scalar: numeric\n    - name: internalTrafficPolicy\n      type:\n        scalar: string\n    - name: ipFamilies\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ipFamilyPolicy\n      type:\n        scalar: string\n    - name: loadBalancerClass\n      type:\n        scalar: string\n    - name: loadBalancerIP\n      type:\n        scalar: string\n    - name: loadBalancerSourceRanges\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ServicePort\n          elementRelationship: associative\n          keys:\n          - port\n          - protocol\n    - name: publishNotReadyAddresses\n      type:\n        scalar: boolean\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sessionAffinity\n      type:\n        scalar: string\n    - name: sessionAffinityConfig\n      type:\n        namedType: io.k8s.api.core.v1.SessionAffinityConfig\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ServiceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.core.v1.LoadBalancerStatus\n      default: {}\n- name: io.k8s.api.core.v1.SessionAffinityConfig\n  map:\n    fields:\n    - name: clientIP\n      type:\n        namedType: io.k8s.api.core.v1.ClientIPConfig\n- name: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.StorageOSVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Sysctl\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.TCPSocketAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n      default: {}\n- name: io.k8s.api.core.v1.Taint\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n      default: \"\"\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: timeAdded\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Toleration\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n    - name: key\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: tolerationSeconds\n      type:\n        scalar: numeric\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySelectorTerm\n  map:\n    fields:\n    - name: matchLabelExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySpreadConstraint\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: matchLabelKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: maxSkew\n      type:\n        scalar: numeric\n      default: 0\n    - name: minDomains\n      type:\n        scalar: numeric\n    - name: nodeAffinityPolicy\n      type:\n        scalar: string\n    - name: nodeTaintsPolicy\n      type:\n        scalar: string\n    - name: topologyKey\n      type:\n        scalar: string\n      default: \"\"\n    - name: whenUnsatisfiable\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.TypedLocalObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TypedObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Volume\n  map:\n    fields:\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFileVolumeSource\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderVolumeSource\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapVolumeSource\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIVolumeSource\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIVolumeSource\n    - name: emptyDir\n      type:\n        namedType: io.k8s.api.core.v1.EmptyDirVolumeSource\n    - name: ephemeral\n      type:\n        namedType: io.k8s.api.core.v1.EphemeralVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: gitRepo\n      type:\n        namedType: io.k8s.api.core.v1.GitRepoVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIVolumeSource\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: persistentVolumeClaim\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: projected\n      type:\n        namedType: io.k8s.api.core.v1.ProjectedVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOVolumeSource\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretVolumeSource\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSVolumeSource\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.VolumeDevice\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.VolumeMount\n  map:\n    fields:\n    - name: mountPath\n      type:\n        scalar: string\n      default: \"\"\n    - name: mountPropagation\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: subPath\n      type:\n        scalar: string\n    - name: subPathExpr\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.VolumeNodeAffinity\n  map:\n    fields:\n    - name: required\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.VolumeProjection\n  map:\n    fields:\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapProjection\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIProjection\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretProjection\n    - name: serviceAccountToken\n      type:\n        namedType: io.k8s.api.core.v1.ServiceAccountTokenProjection\n- name: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: storagePolicyID\n      type:\n        scalar: string\n    - name: storagePolicyName\n      type:\n        scalar: string\n    - name: volumePath\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.WeightedPodAffinityTerm\n  map:\n    fields:\n    - name: podAffinityTerm\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinityTerm\n      default: {}\n    - name: weight\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.WindowsSecurityContextOptions\n  map:\n    fields:\n    - name: gmsaCredentialSpec\n      type:\n        scalar: string\n    - name: gmsaCredentialSpecName\n      type:\n        scalar: string\n    - name: hostProcess\n      type:\n        scalar: boolean\n    - name: runAsUserName\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.Endpoint\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: conditions\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointConditions\n      default: {}\n    - name: deprecatedTopology\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: hints\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointHints\n    - name: hostname\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: zone\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.EndpointConditions\n  map:\n    fields:\n    - name: ready\n      type:\n        scalar: boolean\n    - name: serving\n      type:\n        scalar: boolean\n    - name: terminating\n      type:\n        scalar: boolean\n- name: io.k8s.api.discovery.v1.EndpointHints\n  map:\n    fields:\n    - name: forZones\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.ForZone\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointSlice\n  map:\n    fields:\n    - name: addressType\n      type:\n        scalar: string\n      default: \"\"\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: endpoints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.Endpoint\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.ForZone\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.discovery.v1beta1.Endpoint\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: conditions\n      type:\n        namedType: io.k8s.api.discovery.v1beta1.EndpointConditions\n      default: {}\n    - name: hints\n      type:\n        namedType: io.k8s.api.discovery.v1beta1.EndpointHints\n    - name: hostname\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: topology\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.discovery.v1beta1.EndpointConditions\n  map:\n    fields:\n    - name: ready\n      type:\n        scalar: boolean\n    - name: serving\n      type:\n        scalar: boolean\n    - name: terminating\n      type:\n        scalar: boolean\n- name: io.k8s.api.discovery.v1beta1.EndpointHints\n  map:\n    fields:\n    - name: forZones\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.ForZone\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1beta1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1beta1.EndpointSlice\n  map:\n    fields:\n    - name: addressType\n      type:\n        scalar: string\n      default: \"\"\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: endpoints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.Endpoint\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1beta1.ForZone\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.events.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deprecatedCount\n      type:\n        scalar: numeric\n    - name: deprecatedFirstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: deprecatedLastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: deprecatedSource\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: note\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: regarding\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingController\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.events.v1.EventSeries\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n- name: io.k8s.api.events.v1beta1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deprecatedCount\n      type:\n        scalar: numeric\n    - name: deprecatedFirstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: deprecatedLastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: deprecatedSource\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: note\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: regarding\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingController\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.events.v1beta1.EventSeries\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1beta1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: templateGeneration\n      type:\n        scalar: numeric\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: rollbackTo\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollbackConfig\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IPBlock\n  map:\n    fields:\n    - name: cidr\n      type:\n        scalar: string\n      default: \"\"\n    - name: except\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: serviceName\n      type:\n        scalar: string\n    - name: servicePort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\n- name: io.k8s.api.extensions.v1beta1.IngressSpec\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.NetworkPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\n  map:\n    fields:\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n          elementRelationship: atomic\n    - name: to\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\n  map:\n    fields:\n    - name: from\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n  map:\n    fields:\n    - name: ipBlock\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IPBlock\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n  map:\n    fields:\n    - name: endPort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicySpec\n  map:\n    fields:\n    - name: egress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\n          elementRelationship: atomic\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\n          elementRelationship: atomic\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n      default: {}\n    - name: policyTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.extensions.v1beta1.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.extensions.v1beta1.RollbackConfig\n  map:\n    fields:\n    - name: revision\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.flowcontrol.v1alpha1.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1alpha1.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1alpha1.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.LimitResponse\n      default: {}\n- name: io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1alpha1.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1alpha1.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1alpha1.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1alpha1.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1alpha1.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta1.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.LimitResponse\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta1.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta2.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n      default: {}\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta3.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus\n      default: {}\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec\n  map:\n    fields:\n    - name: image\n      type:\n        scalar: string\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec\n  map:\n    fields:\n    - name: annotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: containers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec\n          elementRelationship: atomic\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus\n  map:\n    fields:\n    - name: allowed\n      type:\n        scalar: boolean\n      default: false\n    - name: auditAnnotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IPBlock\n  map:\n    fields:\n    - name: cidr\n      type:\n        scalar: string\n      default: \"\"\n    - name: except\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1.IngressStatus\n      default: {}\n- name: io.k8s.api.networking.v1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: service\n      type:\n        namedType: io.k8s.api.networking.v1.IngressServiceBackend\n- name: io.k8s.api.networking.v1.IngressClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassSpec\n      default: {}\n- name: io.k8s.api.networking.v1.IngressClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.IngressClassSpec\n  map:\n    fields:\n    - name: controller\n      type:\n        scalar: string\n    - name: parameters\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassParametersReference\n- name: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.networking.v1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.networking.v1.HTTPIngressRuleValue\n- name: io.k8s.api.networking.v1.IngressServiceBackend\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: port\n      type:\n        namedType: io.k8s.api.networking.v1.ServiceBackendPort\n      default: {}\n- name: io.k8s.api.networking.v1.IngressSpec\n  map:\n    fields:\n    - name: defaultBackend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.networking.v1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.NetworkPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1.NetworkPolicyStatus\n      default: {}\n- name: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n  map:\n    fields:\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n    - name: to\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n  map:\n    fields:\n    - name: from\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyPeer\n  map:\n    fields:\n    - name: ipBlock\n      type:\n        namedType: io.k8s.api.networking.v1.IPBlock\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.networking.v1.NetworkPolicyPort\n  map:\n    fields:\n    - name: endPort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicySpec\n  map:\n    fields:\n    - name: egress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n          elementRelationship: atomic\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n          elementRelationship: atomic\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n      default: {}\n    - name: policyTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.networking.v1.ServiceBackendPort\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: number\n      type:\n        scalar: numeric\n- name: io.k8s.api.networking.v1alpha1.ClusterCIDR\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.ClusterCIDRSpec\n      default: {}\n- name: io.k8s.api.networking.v1alpha1.ClusterCIDRSpec\n  map:\n    fields:\n    - name: ipv4\n      type:\n        scalar: string\n      default: \"\"\n    - name: ipv6\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeSelector\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n    - name: perNodeHostBits\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.networking.v1alpha1.IPAddress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.IPAddressSpec\n      default: {}\n- name: io.k8s.api.networking.v1alpha1.IPAddressSpec\n  map:\n    fields:\n    - name: parentRef\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.ParentReference\n- name: io.k8s.api.networking.v1alpha1.ParentReference\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resource\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressStatus\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: serviceName\n      type:\n        scalar: string\n    - name: servicePort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressClassSpec\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.IngressClassSpec\n  map:\n    fields:\n    - name: controller\n      type:\n        scalar: string\n    - name: parameters\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressClassParametersReference\n- name: io.k8s.api.networking.v1beta1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.networking.v1beta1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue\n- name: io.k8s.api.networking.v1beta1.IngressSpec\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.node.v1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: handler\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1.Overhead\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1.Scheduling\n- name: io.k8s.api.node.v1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.node.v1alpha1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1alpha1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.node.v1alpha1.RuntimeClassSpec\n      default: {}\n- name: io.k8s.api.node.v1alpha1.RuntimeClassSpec\n  map:\n    fields:\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1alpha1.Overhead\n    - name: runtimeHandler\n      type:\n        scalar: string\n      default: \"\"\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1alpha1.Scheduling\n- name: io.k8s.api.node.v1alpha1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.node.v1beta1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1beta1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: handler\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1beta1.Overhead\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1beta1.Scheduling\n- name: io.k8s.api.node.v1beta1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.policy.v1.Eviction\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deleteOptions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.policy.v1.PodDisruptionBudget\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n      default: {}\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: minAvailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: unhealthyPodEvictionPolicy\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: disruptedPods\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: disruptionsAllowed\n      type:\n        scalar: numeric\n      default: 0\n    - name: expectedPods\n      type:\n        scalar: numeric\n      default: 0\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.policy.v1beta1.AllowedCSIDriver\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.policy.v1beta1.AllowedFlexVolume\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.policy.v1beta1.AllowedHostPath\n  map:\n    fields:\n    - name: pathPrefix\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.policy.v1beta1.Eviction\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deleteOptions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.policy.v1beta1.FSGroupStrategyOptions\n  map:\n    fields:\n    - name: ranges\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.IDRange\n          elementRelationship: atomic\n    - name: rule\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1beta1.HostPortRange\n  map:\n    fields:\n    - name: max\n      type:\n        scalar: numeric\n      default: 0\n    - name: min\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.policy.v1beta1.IDRange\n  map:\n    fields:\n    - name: max\n      type:\n        scalar: numeric\n      default: 0\n    - name: min\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudget\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\n      default: {}\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: minAvailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: unhealthyPodEvictionPolicy\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: disruptedPods\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: disruptionsAllowed\n      type:\n        scalar: numeric\n      default: 0\n    - name: expectedPods\n      type:\n        scalar: numeric\n      default: 0\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.policy.v1beta1.PodSecurityPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\n      default: {}\n- name: io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\n  map:\n    fields:\n    - name: allowPrivilegeEscalation\n      type:\n        scalar: boolean\n    - name: allowedCSIDrivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.AllowedCSIDriver\n          elementRelationship: atomic\n    - name: allowedCapabilities\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: allowedFlexVolumes\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.AllowedFlexVolume\n          elementRelationship: atomic\n    - name: allowedHostPaths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.AllowedHostPath\n          elementRelationship: atomic\n    - name: allowedProcMountTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: allowedUnsafeSysctls\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: defaultAddCapabilities\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: defaultAllowPrivilegeEscalation\n      type:\n        scalar: boolean\n    - name: forbiddenSysctls\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: fsGroup\n      type:\n        namedType: io.k8s.api.policy.v1beta1.FSGroupStrategyOptions\n      default: {}\n    - name: hostIPC\n      type:\n        scalar: boolean\n    - name: hostNetwork\n      type:\n        scalar: boolean\n    - name: hostPID\n      type:\n        scalar: boolean\n    - name: hostPorts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.HostPortRange\n          elementRelationship: atomic\n    - name: privileged\n      type:\n        scalar: boolean\n    - name: readOnlyRootFilesystem\n      type:\n        scalar: boolean\n    - name: requiredDropCapabilities\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: runAsGroup\n      type:\n        namedType: io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\n    - name: runAsUser\n      type:\n        namedType: io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\n      default: {}\n    - name: runtimeClass\n      type:\n        namedType: io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions\n    - name: seLinux\n      type:\n        namedType: io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\n      default: {}\n    - name: supplementalGroups\n      type:\n        namedType: io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions\n      default: {}\n    - name: volumes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\n  map:\n    fields:\n    - name: ranges\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.IDRange\n          elementRelationship: atomic\n    - name: rule\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\n  map:\n    fields:\n    - name: ranges\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.IDRange\n          elementRelationship: atomic\n    - name: rule\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions\n  map:\n    fields:\n    - name: allowedRuntimeClassNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: defaultRuntimeClassName\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\n  map:\n    fields:\n    - name: rule\n      type:\n        scalar: string\n      default: \"\"\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n- name: io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions\n  map:\n    fields:\n    - name: ranges\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1beta1.IDRange\n          elementRelationship: atomic\n    - name: rule\n      type:\n        scalar: string\n- name: io.k8s.api.rbac.v1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Subject\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.rbac.v1alpha1.Subject\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.rbac.v1beta1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.rbac.v1beta1.Subject\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1alpha2.AllocationResult\n  map:\n    fields:\n    - name: availableOnNodes\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n    - name: resourceHandles\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha2.ResourceHandle\n          elementRelationship: atomic\n    - name: shareable\n      type:\n        scalar: boolean\n- name: io.k8s.api.resource.v1alpha2.PodSchedulingContext\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.PodSchedulingContextSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.PodSchedulingContextStatus\n      default: {}\n- name: io.k8s.api.resource.v1alpha2.PodSchedulingContextSpec\n  map:\n    fields:\n    - name: potentialNodes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: selectedNode\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1alpha2.PodSchedulingContextStatus\n  map:\n    fields:\n    - name: resourceClaims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha2.ResourceClaimSchedulingStatus\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.resource.v1alpha2.ResourceClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClaimSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClaimStatus\n      default: {}\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimConsumerReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resource\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimSchedulingStatus\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: unsuitableNodes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimSpec\n  map:\n    fields:\n    - name: allocationMode\n      type:\n        scalar: string\n    - name: parametersRef\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClaimParametersReference\n    - name: resourceClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimStatus\n  map:\n    fields:\n    - name: allocation\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.AllocationResult\n    - name: deallocationRequested\n      type:\n        scalar: boolean\n    - name: driverName\n      type:\n        scalar: string\n    - name: reservedFor\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha2.ResourceClaimConsumerReference\n          elementRelationship: associative\n          keys:\n          - uid\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClaimTemplateSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha2.ResourceClaimTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClaimSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha2.ResourceClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: driverName\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: parametersRef\n      type:\n        namedType: io.k8s.api.resource.v1alpha2.ResourceClassParametersReference\n    - name: suitableNodes\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.resource.v1alpha2.ResourceClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1alpha2.ResourceHandle\n  map:\n    fields:\n    - name: data\n      type:\n        scalar: string\n    - name: driverName\n      type:\n        scalar: string\n- name: io.k8s.api.scheduling.v1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.scheduling.v1alpha1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.scheduling.v1beta1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.storage.v1.CSIDriver\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSIDriverSpec\n      default: {}\n- name: io.k8s.api.storage.v1.CSIDriverSpec\n  map:\n    fields:\n    - name: attachRequired\n      type:\n        scalar: boolean\n    - name: fsGroupPolicy\n      type:\n        scalar: string\n    - name: podInfoOnMount\n      type:\n        scalar: boolean\n    - name: requiresRepublish\n      type:\n        scalar: boolean\n    - name: seLinuxMount\n      type:\n        scalar: boolean\n    - name: storageCapacity\n      type:\n        scalar: boolean\n    - name: tokenRequests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.TokenRequest\n          elementRelationship: atomic\n    - name: volumeLifecycleModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.storage.v1.CSINode\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSINodeSpec\n      default: {}\n- name: io.k8s.api.storage.v1.CSINodeDriver\n  map:\n    fields:\n    - name: allocatable\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeNodeResources\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeID\n      type:\n        scalar: string\n      default: \"\"\n    - name: topologyKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1.CSINodeSpec\n  map:\n    fields:\n    - name: drivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSINodeDriver\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.storage.v1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1.StorageClass\n  map:\n    fields:\n    - name: allowVolumeExpansion\n      type:\n        scalar: boolean\n    - name: allowedTopologies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorTerm\n          elementRelationship: atomic\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: provisioner\n      type:\n        scalar: string\n      default: \"\"\n    - name: reclaimPolicy\n      type:\n        scalar: string\n    - name: volumeBindingMode\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.TokenRequest\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n      default: \"\"\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n- name: io.k8s.api.storage.v1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n- name: io.k8s.api.storage.v1.VolumeNodeResources\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1alpha1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeError\n- name: io.k8s.api.storage.v1alpha1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n- name: io.k8s.api.storage.v1beta1.CSIDriver\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.CSIDriverSpec\n      default: {}\n- name: io.k8s.api.storage.v1beta1.CSIDriverSpec\n  map:\n    fields:\n    - name: attachRequired\n      type:\n        scalar: boolean\n    - name: fsGroupPolicy\n      type:\n        scalar: string\n    - name: podInfoOnMount\n      type:\n        scalar: boolean\n    - name: requiresRepublish\n      type:\n        scalar: boolean\n    - name: seLinuxMount\n      type:\n        scalar: boolean\n    - name: storageCapacity\n      type:\n        scalar: boolean\n    - name: tokenRequests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1beta1.TokenRequest\n          elementRelationship: atomic\n    - name: volumeLifecycleModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1beta1.CSINode\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.CSINodeSpec\n      default: {}\n- name: io.k8s.api.storage.v1beta1.CSINodeDriver\n  map:\n    fields:\n    - name: allocatable\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeNodeResources\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeID\n      type:\n        scalar: string\n      default: \"\"\n    - name: topologyKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1beta1.CSINodeSpec\n  map:\n    fields:\n    - name: drivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1beta1.CSINodeDriver\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.storage.v1beta1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1beta1.StorageClass\n  map:\n    fields:\n    - name: allowVolumeExpansion\n      type:\n        scalar: boolean\n    - name: allowedTopologies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorTerm\n          elementRelationship: atomic\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: provisioner\n      type:\n        scalar: string\n      default: \"\"\n    - name: reclaimPolicy\n      type:\n        scalar: string\n    - name: volumeBindingMode\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1beta1.TokenRequest\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n      default: \"\"\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1beta1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeError\n- name: io.k8s.api.storage.v1beta1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n- name: io.k8s.api.storage.v1beta1.VolumeNodeResources\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n- name: io.k8s.apimachinery.pkg.api.resource.Quantity\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: message\n      type:\n        scalar: string\n      default: \"\"\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: reason\n      type:\n        scalar: string\n      default: \"\"\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: dryRun\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: gracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: kind\n      type:\n        scalar: string\n    - name: orphanDependents\n      type:\n        scalar: boolean\n    - name: preconditions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n    - name: propagationPolicy\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n          elementRelationship: atomic\n    - name: matchLabels\n      type:\n        map:\n          elementType:\n            scalar: string\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldsType\n      type:\n        scalar: string\n    - name: fieldsV1\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n    - name: manager\n      type:\n        scalar: string\n    - name: operation\n      type:\n        scalar: string\n    - name: subresource\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n  map:\n    fields:\n    - name: annotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: creationTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n      default: {}\n    - name: deletionGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: deletionTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: generateName\n      type:\n        scalar: string\n    - name: generation\n      type:\n        scalar: numeric\n    - name: labels\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: managedFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: ownerReferences\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n          elementRelationship: associative\n          keys:\n          - uid\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: selfLink\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: blockOwnerDeletion\n      type:\n        scalar: boolean\n    - name: controller\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n  map:\n    fields:\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.runtime.RawExtension\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n  scalar: untyped\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n`)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/condition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ConditionApplyConfiguration represents an declarative configuration of the Condition type for use\n// with apply.\ntype ConditionApplyConfiguration struct {\n\tType               *string             `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus `json:\"status,omitempty\"`\n\tObservedGeneration *int64              `json:\"observedGeneration,omitempty\"`\n\tLastTransitionTime *v1.Time            `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string             `json:\"reason,omitempty\"`\n\tMessage            *string             `json:\"message,omitempty\"`\n}\n\n// ConditionApplyConfiguration constructs an declarative configuration of the Condition type for use with\n// apply.\nfunc Condition() *ConditionApplyConfiguration {\n\treturn &ConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithType(value string) *ConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithObservedGeneration(value int64) *ConditionApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *ConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithReason(value string) *ConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithMessage(value string) *ConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/deleteoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeleteOptionsApplyConfiguration represents an declarative configuration of the DeleteOptions type for use\n// with apply.\ntype DeleteOptionsApplyConfiguration struct {\n\tTypeMetaApplyConfiguration `json:\",inline\"`\n\tGracePeriodSeconds         *int64                           `json:\"gracePeriodSeconds,omitempty\"`\n\tPreconditions              *PreconditionsApplyConfiguration `json:\"preconditions,omitempty\"`\n\tOrphanDependents           *bool                            `json:\"orphanDependents,omitempty\"`\n\tPropagationPolicy          *metav1.DeletionPropagation      `json:\"propagationPolicy,omitempty\"`\n\tDryRun                     []string                         `json:\"dryRun,omitempty\"`\n}\n\n// DeleteOptionsApplyConfiguration constructs an declarative configuration of the DeleteOptions type for use with\n// apply.\nfunc DeleteOptions() *DeleteOptionsApplyConfiguration {\n\tb := &DeleteOptionsApplyConfiguration{}\n\tb.WithKind(\"DeleteOptions\")\n\tb.WithAPIVersion(\"meta.k8s.io/v1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithKind(value string) *DeleteOptionsApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithAPIVersion(value string) *DeleteOptionsApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithGracePeriodSeconds sets the GracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithGracePeriodSeconds(value int64) *DeleteOptionsApplyConfiguration {\n\tb.GracePeriodSeconds = &value\n\treturn b\n}\n\n// WithPreconditions sets the Preconditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Preconditions field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithPreconditions(value *PreconditionsApplyConfiguration) *DeleteOptionsApplyConfiguration {\n\tb.Preconditions = value\n\treturn b\n}\n\n// WithOrphanDependents sets the OrphanDependents field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OrphanDependents field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithOrphanDependents(value bool) *DeleteOptionsApplyConfiguration {\n\tb.OrphanDependents = &value\n\treturn b\n}\n\n// WithPropagationPolicy sets the PropagationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PropagationPolicy field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithPropagationPolicy(value metav1.DeletionPropagation) *DeleteOptionsApplyConfiguration {\n\tb.PropagationPolicy = &value\n\treturn b\n}\n\n// WithDryRun adds the given value to the DryRun field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the DryRun field.\nfunc (b *DeleteOptionsApplyConfiguration) WithDryRun(values ...string) *DeleteOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tb.DryRun = append(b.DryRun, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LabelSelectorApplyConfiguration represents an declarative configuration of the LabelSelector type for use\n// with apply.\ntype LabelSelectorApplyConfiguration struct {\n\tMatchLabels      map[string]string                            `json:\"matchLabels,omitempty\"`\n\tMatchExpressions []LabelSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n}\n\n// LabelSelectorApplyConfiguration constructs an declarative configuration of the LabelSelector type for use with\n// apply.\nfunc LabelSelector() *LabelSelectorApplyConfiguration {\n\treturn &LabelSelectorApplyConfiguration{}\n}\n\n// WithMatchLabels puts the entries into the MatchLabels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the MatchLabels field,\n// overwriting an existing map entries in MatchLabels field with the same key.\nfunc (b *LabelSelectorApplyConfiguration) WithMatchLabels(entries map[string]string) *LabelSelectorApplyConfiguration {\n\tif b.MatchLabels == nil && len(entries) > 0 {\n\t\tb.MatchLabels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.MatchLabels[k] = v\n\t}\n\treturn b\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *LabelSelectorApplyConfiguration) WithMatchExpressions(values ...*LabelSelectorRequirementApplyConfiguration) *LabelSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LabelSelectorRequirementApplyConfiguration represents an declarative configuration of the LabelSelectorRequirement type for use\n// with apply.\ntype LabelSelectorRequirementApplyConfiguration struct {\n\tKey      *string                   `json:\"key,omitempty\"`\n\tOperator *v1.LabelSelectorOperator `json:\"operator,omitempty\"`\n\tValues   []string                  `json:\"values,omitempty\"`\n}\n\n// LabelSelectorRequirementApplyConfiguration constructs an declarative configuration of the LabelSelectorRequirement type for use with\n// apply.\nfunc LabelSelectorRequirement() *LabelSelectorRequirementApplyConfiguration {\n\treturn &LabelSelectorRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithKey(value string) *LabelSelectorRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithOperator(value v1.LabelSelectorOperator) *LabelSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithValues(values ...string) *LabelSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/managedfieldsentry.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ManagedFieldsEntryApplyConfiguration represents an declarative configuration of the ManagedFieldsEntry type for use\n// with apply.\ntype ManagedFieldsEntryApplyConfiguration struct {\n\tManager     *string                        `json:\"manager,omitempty\"`\n\tOperation   *v1.ManagedFieldsOperationType `json:\"operation,omitempty\"`\n\tAPIVersion  *string                        `json:\"apiVersion,omitempty\"`\n\tTime        *v1.Time                       `json:\"time,omitempty\"`\n\tFieldsType  *string                        `json:\"fieldsType,omitempty\"`\n\tFieldsV1    *v1.FieldsV1                   `json:\"fieldsV1,omitempty\"`\n\tSubresource *string                        `json:\"subresource,omitempty\"`\n}\n\n// ManagedFieldsEntryApplyConfiguration constructs an declarative configuration of the ManagedFieldsEntry type for use with\n// apply.\nfunc ManagedFieldsEntry() *ManagedFieldsEntryApplyConfiguration {\n\treturn &ManagedFieldsEntryApplyConfiguration{}\n}\n\n// WithManager sets the Manager field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Manager field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithManager(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.Manager = &value\n\treturn b\n}\n\n// WithOperation sets the Operation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operation field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithOperation(value v1.ManagedFieldsOperationType) *ManagedFieldsEntryApplyConfiguration {\n\tb.Operation = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithAPIVersion(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithTime(value v1.Time) *ManagedFieldsEntryApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithFieldsType sets the FieldsType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldsType field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithFieldsType(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.FieldsType = &value\n\treturn b\n}\n\n// WithFieldsV1 sets the FieldsV1 field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldsV1 field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithFieldsV1(value v1.FieldsV1) *ManagedFieldsEntryApplyConfiguration {\n\tb.FieldsV1 = &value\n\treturn b\n}\n\n// WithSubresource sets the Subresource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Subresource field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithSubresource(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.Subresource = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/objectmeta.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ObjectMetaApplyConfiguration represents an declarative configuration of the ObjectMeta type for use\n// with apply.\ntype ObjectMetaApplyConfiguration struct {\n\tName                       *string                            `json:\"name,omitempty\"`\n\tGenerateName               *string                            `json:\"generateName,omitempty\"`\n\tNamespace                  *string                            `json:\"namespace,omitempty\"`\n\tUID                        *types.UID                         `json:\"uid,omitempty\"`\n\tResourceVersion            *string                            `json:\"resourceVersion,omitempty\"`\n\tGeneration                 *int64                             `json:\"generation,omitempty\"`\n\tCreationTimestamp          *v1.Time                           `json:\"creationTimestamp,omitempty\"`\n\tDeletionTimestamp          *v1.Time                           `json:\"deletionTimestamp,omitempty\"`\n\tDeletionGracePeriodSeconds *int64                             `json:\"deletionGracePeriodSeconds,omitempty\"`\n\tLabels                     map[string]string                  `json:\"labels,omitempty\"`\n\tAnnotations                map[string]string                  `json:\"annotations,omitempty\"`\n\tOwnerReferences            []OwnerReferenceApplyConfiguration `json:\"ownerReferences,omitempty\"`\n\tFinalizers                 []string                           `json:\"finalizers,omitempty\"`\n}\n\n// ObjectMetaApplyConfiguration constructs an declarative configuration of the ObjectMeta type for use with\n// apply.\nfunc ObjectMeta() *ObjectMetaApplyConfiguration {\n\treturn &ObjectMetaApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithName(value string) *ObjectMetaApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithGenerateName(value string) *ObjectMetaApplyConfiguration {\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithNamespace(value string) *ObjectMetaApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithUID(value types.UID) *ObjectMetaApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithResourceVersion(value string) *ObjectMetaApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithGeneration(value int64) *ObjectMetaApplyConfiguration {\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithCreationTimestamp(value v1.Time) *ObjectMetaApplyConfiguration {\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithDeletionTimestamp(value v1.Time) *ObjectMetaApplyConfiguration {\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ObjectMetaApplyConfiguration {\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ObjectMetaApplyConfiguration) WithLabels(entries map[string]string) *ObjectMetaApplyConfiguration {\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ObjectMetaApplyConfiguration) WithAnnotations(entries map[string]string) *ObjectMetaApplyConfiguration {\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ObjectMetaApplyConfiguration) WithOwnerReferences(values ...*OwnerReferenceApplyConfiguration) *ObjectMetaApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ObjectMetaApplyConfiguration) WithFinalizers(values ...string) *ObjectMetaApplyConfiguration {\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/ownerreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// OwnerReferenceApplyConfiguration represents an declarative configuration of the OwnerReference type for use\n// with apply.\ntype OwnerReferenceApplyConfiguration struct {\n\tAPIVersion         *string    `json:\"apiVersion,omitempty\"`\n\tKind               *string    `json:\"kind,omitempty\"`\n\tName               *string    `json:\"name,omitempty\"`\n\tUID                *types.UID `json:\"uid,omitempty\"`\n\tController         *bool      `json:\"controller,omitempty\"`\n\tBlockOwnerDeletion *bool      `json:\"blockOwnerDeletion,omitempty\"`\n}\n\n// OwnerReferenceApplyConfiguration constructs an declarative configuration of the OwnerReference type for use with\n// apply.\nfunc OwnerReference() *OwnerReferenceApplyConfiguration {\n\treturn &OwnerReferenceApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithAPIVersion(value string) *OwnerReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithKind(value string) *OwnerReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithName(value string) *OwnerReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithUID(value types.UID) *OwnerReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithController(value bool) *OwnerReferenceApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithBlockOwnerDeletion sets the BlockOwnerDeletion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BlockOwnerDeletion field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithBlockOwnerDeletion(value bool) *OwnerReferenceApplyConfiguration {\n\tb.BlockOwnerDeletion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/preconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// PreconditionsApplyConfiguration represents an declarative configuration of the Preconditions type for use\n// with apply.\ntype PreconditionsApplyConfiguration struct {\n\tUID             *types.UID `json:\"uid,omitempty\"`\n\tResourceVersion *string    `json:\"resourceVersion,omitempty\"`\n}\n\n// PreconditionsApplyConfiguration constructs an declarative configuration of the Preconditions type for use with\n// apply.\nfunc Preconditions() *PreconditionsApplyConfiguration {\n\treturn &PreconditionsApplyConfiguration{}\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PreconditionsApplyConfiguration) WithUID(value types.UID) *PreconditionsApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PreconditionsApplyConfiguration) WithResourceVersion(value string) *PreconditionsApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/typemeta.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypeMetaApplyConfiguration represents an declarative configuration of the TypeMeta type for use\n// with apply.\ntype TypeMetaApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// TypeMetaApplyConfiguration constructs an declarative configuration of the TypeMeta type for use with\n// apply.\nfunc TypeMeta() *TypeMetaApplyConfiguration {\n\treturn &TypeMetaApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypeMetaApplyConfiguration) WithKind(value string) *TypeMetaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *TypeMetaApplyConfiguration) WithAPIVersion(value string) *TypeMetaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/unstructured.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields\"\n\t\"k8s.io/client-go/discovery\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// openAPISchemaTTL is how frequently we need to check\n// whether the open API schema has changed or not.\nconst openAPISchemaTTL = time.Minute\n\n// UnstructuredExtractor enables extracting the applied configuration state from object for fieldManager into an\n// unstructured object type.\ntype UnstructuredExtractor interface {\n\tExtract(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error)\n\tExtractStatus(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error)\n}\n\n// gvkParserCache caches the GVKParser in order to prevent from having to repeatedly\n// parse the models from the open API schema when the schema itself changes infrequently.\ntype gvkParserCache struct {\n\t// discoveryClient is the client for retrieving the openAPI document and checking\n\t// whether the document has changed recently\n\tdiscoveryClient discovery.DiscoveryInterface\n\t// mu protects the gvkParser\n\tmu sync.Mutex\n\t// gvkParser retrieves the objectType for a given gvk\n\tgvkParser *managedfields.GvkParser\n\t// lastChecked is the last time we checked if the openAPI doc has changed.\n\tlastChecked time.Time\n}\n\n// regenerateGVKParser builds the parser from the raw OpenAPI schema.\nfunc regenerateGVKParser(dc discovery.DiscoveryInterface) (*managedfields.GvkParser, error) {\n\tdoc, err := dc.OpenAPISchema()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodels, err := proto.NewOpenAPIData(doc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn managedfields.NewGVKParser(models, false)\n}\n\n// objectTypeForGVK retrieves the typed.ParseableType for a given gvk from the cache\nfunc (c *gvkParserCache) objectTypeForGVK(gvk schema.GroupVersionKind) (*typed.ParseableType, error) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\t// if the ttl on the openAPISchema has expired,\n\t// regenerate the gvk parser\n\tif time.Since(c.lastChecked) > openAPISchemaTTL {\n\t\tc.lastChecked = time.Now()\n\t\tparser, err := regenerateGVKParser(c.discoveryClient)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tc.gvkParser = parser\n\t}\n\treturn c.gvkParser.Type(gvk), nil\n}\n\ntype extractor struct {\n\tcache *gvkParserCache\n}\n\n// NewUnstructuredExtractor creates the extractor with which you can extract the applied configuration\n// for a given manager from an unstructured object.\nfunc NewUnstructuredExtractor(dc discovery.DiscoveryInterface) (UnstructuredExtractor, error) {\n\tparser, err := regenerateGVKParser(dc)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed generating initial GVK Parser: %v\", err)\n\t}\n\treturn &extractor{\n\t\tcache: &gvkParserCache{\n\t\t\tgvkParser:       parser,\n\t\t\tdiscoveryClient: dc,\n\t\t},\n\t}, nil\n}\n\n// Extract extracts the applied configuration owned by fieldManager from an unstructured object.\n// Note that the apply configuration itself is also an unstructured object.\nfunc (e *extractor) Extract(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error) {\n\treturn e.extractUnstructured(object, fieldManager, \"\")\n}\n\n// ExtractStatus is the same as ExtractUnstructured except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc (e *extractor) ExtractStatus(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error) {\n\treturn e.extractUnstructured(object, fieldManager, \"status\")\n}\n\nfunc (e *extractor) extractUnstructured(object *unstructured.Unstructured, fieldManager string, subresource string) (*unstructured.Unstructured, error) {\n\tgvk := object.GetObjectKind().GroupVersionKind()\n\tobjectType, err := e.cache.objectTypeForGVK(gvk)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to fetch the objectType: %v\", err)\n\t}\n\tresult := &unstructured.Unstructured{}\n\terr = managedfields.ExtractInto(object, *objectType, fieldManager, result, subresource)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed calling ExtractInto for unstructured: %v\", err)\n\t}\n\tresult.SetName(object.GetName())\n\tresult.SetNamespace(object.GetNamespace())\n\tresult.SetKind(object.GetKind())\n\tresult.SetAPIVersion(object.GetAPIVersion())\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/networking/v1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *v1.PathType                      `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs an declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *apinetworkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *apinetworkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *apinetworkingv1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.networking.v1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tService  *IngressServiceBackendApplyConfiguration            `json:\"service,omitempty\"`\n\tResource *corev1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithService(value *IngressServiceBackendApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *corev1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressClassApplyConfiguration represents an declarative configuration of the IngressClass type for use\n// with apply.\ntype IngressClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IngressClass constructs an declarative configuration of the IngressClass type for use with\n// apply.\nfunc IngressClass(name string) *IngressClassApplyConfiguration {\n\tb := &IngressClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractIngressClass extracts the applied configuration owned by fieldManager from\n// ingressClass. If no managedFields are found in ingressClass for fieldManager, a\n// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API.\n// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngressClass(ingressClass *apinetworkingv1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"\")\n}\n\n// ExtractIngressClassStatus is the same as ExtractIngressClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressClassStatus(ingressClass *apinetworkingv1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"status\")\n}\n\nfunc extractIngressClass(ingressClass *apinetworkingv1.IngressClass, fieldManager string, subresource string) (*IngressClassApplyConfiguration, error) {\n\tb := &IngressClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingressClass, internal.Parser().Type(\"io.k8s.api.networking.v1.IngressClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingressClass.Name)\n\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressClassParametersReferenceApplyConfiguration represents an declarative configuration of the IngressClassParametersReference type for use\n// with apply.\ntype IngressClassParametersReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tScope     *string `json:\"scope,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// IngressClassParametersReferenceApplyConfiguration constructs an declarative configuration of the IngressClassParametersReference type for use with\n// apply.\nfunc IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration {\n\treturn &IngressClassParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressClassSpecApplyConfiguration represents an declarative configuration of the IngressClassSpec type for use\n// with apply.\ntype IngressClassSpecApplyConfiguration struct {\n\tController *string                                            `json:\"controller,omitempty\"`\n\tParameters *IngressClassParametersReferenceApplyConfiguration `json:\"parameters,omitempty\"`\n}\n\n// IngressClassSpecApplyConfiguration constructs an declarative configuration of the IngressClassSpec type for use with\n// apply.\nfunc IngressClassSpec() *IngressClassSpecApplyConfiguration {\n\treturn &IngressClassSpecApplyConfiguration{}\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration {\n\tb.Parameters = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressLoadBalancerIngressApplyConfiguration represents an declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressLoadBalancerStatusApplyConfiguration represents an declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents an declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs an declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",omitempty,inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressservicebackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressServiceBackendApplyConfiguration represents an declarative configuration of the IngressServiceBackend type for use\n// with apply.\ntype IngressServiceBackendApplyConfiguration struct {\n\tName *string                               `json:\"name,omitempty\"`\n\tPort *ServiceBackendPortApplyConfiguration `json:\"port,omitempty\"`\n}\n\n// IngressServiceBackendApplyConfiguration constructs an declarative configuration of the IngressServiceBackend type for use with\n// apply.\nfunc IngressServiceBackend() *IngressServiceBackendApplyConfiguration {\n\treturn &IngressServiceBackendApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressServiceBackendApplyConfiguration) WithName(value string) *IngressServiceBackendApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressServiceBackendApplyConfiguration) WithPort(value *ServiceBackendPortApplyConfiguration) *IngressServiceBackendApplyConfiguration {\n\tb.Port = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tDefaultBackend   *IngressBackendApplyConfiguration `json:\"defaultBackend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithDefaultBackend sets the DefaultBackend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultBackend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithDefaultBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.DefaultBackend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ipblock.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IPBlockApplyConfiguration represents an declarative configuration of the IPBlock type for use\n// with apply.\ntype IPBlockApplyConfiguration struct {\n\tCIDR   *string  `json:\"cidr,omitempty\"`\n\tExcept []string `json:\"except,omitempty\"`\n}\n\n// IPBlockApplyConfiguration constructs an declarative configuration of the IPBlock type for use with\n// apply.\nfunc IPBlock() *IPBlockApplyConfiguration {\n\treturn &IPBlockApplyConfiguration{}\n}\n\n// WithCIDR sets the CIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CIDR field is set to the value of the last call.\nfunc (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration {\n\tb.CIDR = &value\n\treturn b\n}\n\n// WithExcept adds the given value to the Except field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Except field.\nfunc (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration {\n\tfor i := range values {\n\t\tb.Except = append(b.Except, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyApplyConfiguration represents an declarative configuration of the NetworkPolicy type for use\n// with apply.\ntype NetworkPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *NetworkPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *NetworkPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with\n// apply.\nfunc NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration {\n\tb := &NetworkPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from\n// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a\n// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API.\n// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNetworkPolicy(networkPolicy *apinetworkingv1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"\")\n}\n\n// ExtractNetworkPolicyStatus is the same as ExtractNetworkPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNetworkPolicyStatus(networkPolicy *apinetworkingv1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"status\")\n}\n\nfunc extractNetworkPolicy(networkPolicy *apinetworkingv1.NetworkPolicy, fieldManager string, subresource string) (*NetworkPolicyApplyConfiguration, error) {\n\tb := &NetworkPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(networkPolicy, internal.Parser().Type(\"io.k8s.api.networking.v1.NetworkPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(networkPolicy.Name)\n\tb.WithNamespace(networkPolicy.Namespace)\n\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithStatus(value *NetworkPolicyStatusApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyegressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NetworkPolicyEgressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyEgressRule type for use\n// with apply.\ntype NetworkPolicyEgressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tTo    []NetworkPolicyPeerApplyConfiguration `json:\"to,omitempty\"`\n}\n\n// NetworkPolicyEgressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyEgressRule type for use with\n// apply.\nfunc NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration {\n\treturn &NetworkPolicyEgressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithTo adds the given value to the To field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the To field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTo\")\n\t\t}\n\t\tb.To = append(b.To, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NetworkPolicyIngressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyIngressRule type for use\n// with apply.\ntype NetworkPolicyIngressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tFrom  []NetworkPolicyPeerApplyConfiguration `json:\"from,omitempty\"`\n}\n\n// NetworkPolicyIngressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyIngressRule type for use with\n// apply.\nfunc NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration {\n\treturn &NetworkPolicyIngressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithFrom adds the given value to the From field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the From field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithFrom\")\n\t\t}\n\t\tb.From = append(b.From, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicypeer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyPeerApplyConfiguration represents an declarative configuration of the NetworkPolicyPeer type for use\n// with apply.\ntype NetworkPolicyPeerApplyConfiguration struct {\n\tPodSelector       *v1.LabelSelectorApplyConfiguration `json:\"podSelector,omitempty\"`\n\tNamespaceSelector *v1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n\tIPBlock           *IPBlockApplyConfiguration          `json:\"ipBlock,omitempty\"`\n}\n\n// NetworkPolicyPeerApplyConfiguration constructs an declarative configuration of the NetworkPolicyPeer type for use with\n// apply.\nfunc NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration {\n\treturn &NetworkPolicyPeerApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithIPBlock sets the IPBlock field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPBlock field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.IPBlock = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// NetworkPolicyPortApplyConfiguration represents an declarative configuration of the NetworkPolicyPort type for use\n// with apply.\ntype NetworkPolicyPortApplyConfiguration struct {\n\tProtocol *v1.Protocol        `json:\"protocol,omitempty\"`\n\tPort     *intstr.IntOrString `json:\"port,omitempty\"`\n\tEndPort  *int32              `json:\"endPort,omitempty\"`\n}\n\n// NetworkPolicyPortApplyConfiguration constructs an declarative configuration of the NetworkPolicyPort type for use with\n// apply.\nfunc NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration {\n\treturn &NetworkPolicyPortApplyConfiguration{}\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithEndPort sets the EndPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndPort field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration {\n\tb.EndPort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicySpecApplyConfiguration represents an declarative configuration of the NetworkPolicySpec type for use\n// with apply.\ntype NetworkPolicySpecApplyConfiguration struct {\n\tPodSelector *v1.LabelSelectorApplyConfiguration          `json:\"podSelector,omitempty\"`\n\tIngress     []NetworkPolicyIngressRuleApplyConfiguration `json:\"ingress,omitempty\"`\n\tEgress      []NetworkPolicyEgressRuleApplyConfiguration  `json:\"egress,omitempty\"`\n\tPolicyTypes []apinetworkingv1.PolicyType                 `json:\"policyTypes,omitempty\"`\n}\n\n// NetworkPolicySpecApplyConfiguration constructs an declarative configuration of the NetworkPolicySpec type for use with\n// apply.\nfunc NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration {\n\treturn &NetworkPolicySpecApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n\n// WithEgress adds the given value to the Egress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Egress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEgress\")\n\t\t}\n\t\tb.Egress = append(b.Egress, *values[i])\n\t}\n\treturn b\n}\n\n// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PolicyTypes field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...apinetworkingv1.PolicyType) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PolicyTypes = append(b.PolicyTypes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyStatusApplyConfiguration represents an declarative configuration of the NetworkPolicyStatus type for use\n// with apply.\ntype NetworkPolicyStatusApplyConfiguration struct {\n\tConditions []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// NetworkPolicyStatusApplyConfiguration constructs an declarative configuration of the NetworkPolicyStatus type for use with\n// apply.\nfunc NetworkPolicyStatus() *NetworkPolicyStatusApplyConfiguration {\n\treturn &NetworkPolicyStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NetworkPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *NetworkPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/servicebackendport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceBackendPortApplyConfiguration represents an declarative configuration of the ServiceBackendPort type for use\n// with apply.\ntype ServiceBackendPortApplyConfiguration struct {\n\tName   *string `json:\"name,omitempty\"`\n\tNumber *int32  `json:\"number,omitempty\"`\n}\n\n// ServiceBackendPortApplyConfiguration constructs an declarative configuration of the ServiceBackendPort type for use with\n// apply.\nfunc ServiceBackendPort() *ServiceBackendPortApplyConfiguration {\n\treturn &ServiceBackendPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceBackendPortApplyConfiguration) WithName(value string) *ServiceBackendPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNumber sets the Number field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Number field is set to the value of the last call.\nfunc (b *ServiceBackendPortApplyConfiguration) WithNumber(value int32) *ServiceBackendPortApplyConfiguration {\n\tb.Number = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterCIDRApplyConfiguration represents an declarative configuration of the ClusterCIDR type for use\n// with apply.\ntype ClusterCIDRApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ClusterCIDRSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ClusterCIDR constructs an declarative configuration of the ClusterCIDR type for use with\n// apply.\nfunc ClusterCIDR(name string) *ClusterCIDRApplyConfiguration {\n\tb := &ClusterCIDRApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterCIDR extracts the applied configuration owned by fieldManager from\n// clusterCIDR. If no managedFields are found in clusterCIDR for fieldManager, a\n// ClusterCIDRApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterCIDR must be a unmodified ClusterCIDR API object that was retrieved from the Kubernetes API.\n// ExtractClusterCIDR provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterCIDR(clusterCIDR *networkingv1alpha1.ClusterCIDR, fieldManager string) (*ClusterCIDRApplyConfiguration, error) {\n\treturn extractClusterCIDR(clusterCIDR, fieldManager, \"\")\n}\n\n// ExtractClusterCIDRStatus is the same as ExtractClusterCIDR except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterCIDRStatus(clusterCIDR *networkingv1alpha1.ClusterCIDR, fieldManager string) (*ClusterCIDRApplyConfiguration, error) {\n\treturn extractClusterCIDR(clusterCIDR, fieldManager, \"status\")\n}\n\nfunc extractClusterCIDR(clusterCIDR *networkingv1alpha1.ClusterCIDR, fieldManager string, subresource string) (*ClusterCIDRApplyConfiguration, error) {\n\tb := &ClusterCIDRApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterCIDR, internal.Parser().Type(\"io.k8s.api.networking.v1alpha1.ClusterCIDR\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterCIDR.Name)\n\n\tb.WithKind(\"ClusterCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithKind(value string) *ClusterCIDRApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithAPIVersion(value string) *ClusterCIDRApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithName(value string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithGenerateName(value string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithNamespace(value string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithUID(value types.UID) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithResourceVersion(value string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithGeneration(value int64) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterCIDRApplyConfiguration) WithLabels(entries map[string]string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterCIDRApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterCIDRApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterCIDRApplyConfiguration) WithFinalizers(values ...string) *ClusterCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterCIDRApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ClusterCIDRApplyConfiguration) WithSpec(value *ClusterCIDRSpecApplyConfiguration) *ClusterCIDRApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// ClusterCIDRSpecApplyConfiguration represents an declarative configuration of the ClusterCIDRSpec type for use\n// with apply.\ntype ClusterCIDRSpecApplyConfiguration struct {\n\tNodeSelector    *v1.NodeSelectorApplyConfiguration `json:\"nodeSelector,omitempty\"`\n\tPerNodeHostBits *int32                             `json:\"perNodeHostBits,omitempty\"`\n\tIPv4            *string                            `json:\"ipv4,omitempty\"`\n\tIPv6            *string                            `json:\"ipv6,omitempty\"`\n}\n\n// ClusterCIDRSpecApplyConfiguration constructs an declarative configuration of the ClusterCIDRSpec type for use with\n// apply.\nfunc ClusterCIDRSpec() *ClusterCIDRSpecApplyConfiguration {\n\treturn &ClusterCIDRSpecApplyConfiguration{}\n}\n\n// WithNodeSelector sets the NodeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeSelector field is set to the value of the last call.\nfunc (b *ClusterCIDRSpecApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *ClusterCIDRSpecApplyConfiguration {\n\tb.NodeSelector = value\n\treturn b\n}\n\n// WithPerNodeHostBits sets the PerNodeHostBits field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PerNodeHostBits field is set to the value of the last call.\nfunc (b *ClusterCIDRSpecApplyConfiguration) WithPerNodeHostBits(value int32) *ClusterCIDRSpecApplyConfiguration {\n\tb.PerNodeHostBits = &value\n\treturn b\n}\n\n// WithIPv4 sets the IPv4 field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPv4 field is set to the value of the last call.\nfunc (b *ClusterCIDRSpecApplyConfiguration) WithIPv4(value string) *ClusterCIDRSpecApplyConfiguration {\n\tb.IPv4 = &value\n\treturn b\n}\n\n// WithIPv6 sets the IPv6 field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPv6 field is set to the value of the last call.\nfunc (b *ClusterCIDRSpecApplyConfiguration) WithIPv6(value string) *ClusterCIDRSpecApplyConfiguration {\n\tb.IPv6 = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IPAddressApplyConfiguration represents an declarative configuration of the IPAddress type for use\n// with apply.\ntype IPAddressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IPAddressSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IPAddress constructs an declarative configuration of the IPAddress type for use with\n// apply.\nfunc IPAddress(name string) *IPAddressApplyConfiguration {\n\tb := &IPAddressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractIPAddress extracts the applied configuration owned by fieldManager from\n// iPAddress. If no managedFields are found in iPAddress for fieldManager, a\n// IPAddressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// iPAddress must be a unmodified IPAddress API object that was retrieved from the Kubernetes API.\n// ExtractIPAddress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIPAddress(iPAddress *networkingv1alpha1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"\")\n}\n\n// ExtractIPAddressStatus is the same as ExtractIPAddress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIPAddressStatus(iPAddress *networkingv1alpha1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"status\")\n}\n\nfunc extractIPAddress(iPAddress *networkingv1alpha1.IPAddress, fieldManager string, subresource string) (*IPAddressApplyConfiguration, error) {\n\tb := &IPAddressApplyConfiguration{}\n\terr := managedfields.ExtractInto(iPAddress, internal.Parser().Type(\"io.k8s.api.networking.v1alpha1.IPAddress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(iPAddress.Name)\n\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithKind(value string) *IPAddressApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithAPIVersion(value string) *IPAddressApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGenerateName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithNamespace(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithUID(value types.UID) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithResourceVersion(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGeneration(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithLabels(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithAnnotations(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IPAddressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IPAddressApplyConfiguration) WithFinalizers(values ...string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IPAddressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithSpec(value *IPAddressSpecApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/ipaddressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// IPAddressSpecApplyConfiguration represents an declarative configuration of the IPAddressSpec type for use\n// with apply.\ntype IPAddressSpecApplyConfiguration struct {\n\tParentRef *ParentReferenceApplyConfiguration `json:\"parentRef,omitempty\"`\n}\n\n// IPAddressSpecApplyConfiguration constructs an declarative configuration of the IPAddressSpec type for use with\n// apply.\nfunc IPAddressSpec() *IPAddressSpecApplyConfiguration {\n\treturn &IPAddressSpecApplyConfiguration{}\n}\n\n// WithParentRef sets the ParentRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParentRef field is set to the value of the last call.\nfunc (b *IPAddressSpecApplyConfiguration) WithParentRef(value *ParentReferenceApplyConfiguration) *IPAddressSpecApplyConfiguration {\n\tb.ParentRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/parentreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ParentReferenceApplyConfiguration represents an declarative configuration of the ParentReference type for use\n// with apply.\ntype ParentReferenceApplyConfiguration struct {\n\tGroup     *string    `json:\"group,omitempty\"`\n\tResource  *string    `json:\"resource,omitempty\"`\n\tNamespace *string    `json:\"namespace,omitempty\"`\n\tName      *string    `json:\"name,omitempty\"`\n\tUID       *types.UID `json:\"uid,omitempty\"`\n}\n\n// ParentReferenceApplyConfiguration constructs an declarative configuration of the ParentReference type for use with\n// apply.\nfunc ParentReference() *ParentReferenceApplyConfiguration {\n\treturn &ParentReferenceApplyConfiguration{}\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithGroup(value string) *ParentReferenceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithResource(value string) *ParentReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithNamespace(value string) *ParentReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithName(value string) *ParentReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithUID(value types.UID) *ParentReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *v1beta1.PathType                 `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1beta1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs an declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *networkingv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *networkingv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *networkingv1beta1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tServiceName *string                                         `json:\"serviceName,omitempty\"`\n\tServicePort *intstr.IntOrString                             `json:\"servicePort,omitempty\"`\n\tResource    *v1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithServicePort sets the ServicePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServicePort field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration {\n\tb.ServicePort = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressClassApplyConfiguration represents an declarative configuration of the IngressClass type for use\n// with apply.\ntype IngressClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IngressClass constructs an declarative configuration of the IngressClass type for use with\n// apply.\nfunc IngressClass(name string) *IngressClassApplyConfiguration {\n\tb := &IngressClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractIngressClass extracts the applied configuration owned by fieldManager from\n// ingressClass. If no managedFields are found in ingressClass for fieldManager, a\n// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API.\n// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngressClass(ingressClass *networkingv1beta1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"\")\n}\n\n// ExtractIngressClassStatus is the same as ExtractIngressClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressClassStatus(ingressClass *networkingv1beta1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"status\")\n}\n\nfunc extractIngressClass(ingressClass *networkingv1beta1.IngressClass, fieldManager string, subresource string) (*IngressClassApplyConfiguration, error) {\n\tb := &IngressClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingressClass, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.IngressClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingressClass.Name)\n\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressClassParametersReferenceApplyConfiguration represents an declarative configuration of the IngressClassParametersReference type for use\n// with apply.\ntype IngressClassParametersReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tScope     *string `json:\"scope,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// IngressClassParametersReferenceApplyConfiguration constructs an declarative configuration of the IngressClassParametersReference type for use with\n// apply.\nfunc IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration {\n\treturn &IngressClassParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressClassSpecApplyConfiguration represents an declarative configuration of the IngressClassSpec type for use\n// with apply.\ntype IngressClassSpecApplyConfiguration struct {\n\tController *string                                            `json:\"controller,omitempty\"`\n\tParameters *IngressClassParametersReferenceApplyConfiguration `json:\"parameters,omitempty\"`\n}\n\n// IngressClassSpecApplyConfiguration constructs an declarative configuration of the IngressClassSpec type for use with\n// apply.\nfunc IngressClassSpec() *IngressClassSpecApplyConfiguration {\n\treturn &IngressClassSpecApplyConfiguration{}\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration {\n\tb.Parameters = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerIngressApplyConfiguration represents an declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerStatusApplyConfiguration represents an declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs an declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents an declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs an declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",omitempty,inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tBackend          *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *v1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapinodev1 \"k8s.io/api/node/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tHandler                          *string                       `json:\"handler,omitempty\"`\n\tOverhead                         *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling                       *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *apinodev1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *apinodev1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *apinodev1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithHandler sets the Handler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Handler field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration {\n\tb.Handler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                 `json:\"nodeSelector,omitempty\"`\n\tTolerations  []v1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *v1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *RuntimeClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1alpha1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithSpec(value *RuntimeClassSpecApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// RuntimeClassSpecApplyConfiguration represents an declarative configuration of the RuntimeClassSpec type for use\n// with apply.\ntype RuntimeClassSpecApplyConfiguration struct {\n\tRuntimeHandler *string                       `json:\"runtimeHandler,omitempty\"`\n\tOverhead       *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling     *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClassSpecApplyConfiguration constructs an declarative configuration of the RuntimeClassSpec type for use with\n// apply.\nfunc RuntimeClassSpec() *RuntimeClassSpecApplyConfiguration {\n\treturn &RuntimeClassSpecApplyConfiguration{}\n}\n\n// WithRuntimeHandler sets the RuntimeHandler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RuntimeHandler field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithRuntimeHandler(value string) *RuntimeClassSpecApplyConfiguration {\n\tb.RuntimeHandler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassSpecApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassSpecApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                 `json:\"nodeSelector,omitempty\"`\n\tTolerations  []v1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *v1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tHandler                          *string                       `json:\"handler,omitempty\"`\n\tOverhead                         *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling                       *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1beta1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithHandler sets the Handler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Handler field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration {\n\tb.Handler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                 `json:\"nodeSelector,omitempty\"`\n\tTolerations  []v1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EvictionApplyConfiguration represents an declarative configuration of the Eviction type for use\n// with apply.\ntype EvictionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDeleteOptions                    *v1.DeleteOptionsApplyConfiguration `json:\"deleteOptions,omitempty\"`\n}\n\n// Eviction constructs an declarative configuration of the Eviction type for use with\n// apply.\nfunc Eviction(name, namespace string) *EvictionApplyConfiguration {\n\tb := &EvictionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b\n}\n\n// ExtractEviction extracts the applied configuration owned by fieldManager from\n// eviction. If no managedFields are found in eviction for fieldManager, a\n// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API.\n// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEviction(eviction *policyv1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"\")\n}\n\n// ExtractEvictionStatus is the same as ExtractEviction except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEvictionStatus(eviction *policyv1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"status\")\n}\n\nfunc extractEviction(eviction *policyv1.Eviction, fieldManager string, subresource string) (*EvictionApplyConfiguration, error) {\n\tb := &EvictionApplyConfiguration{}\n\terr := managedfields.ExtractInto(eviction, internal.Parser().Type(\"io.k8s.api.policy.v1.Eviction\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(eviction.Name)\n\tb.WithNamespace(eviction.Namespace)\n\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeleteOptions field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeleteOptions(value *v1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration {\n\tb.DeleteOptions = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapipolicyv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetApplyConfiguration represents an declarative configuration of the PodDisruptionBudget type for use\n// with apply.\ntype PodDisruptionBudgetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodDisruptionBudgetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PodDisruptionBudgetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PodDisruptionBudget constructs an declarative configuration of the PodDisruptionBudget type for use with\n// apply.\nfunc PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b\n}\n\n// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from\n// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a\n// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API.\n// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodDisruptionBudget(podDisruptionBudget *apipolicyv1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"\")\n}\n\n// ExtractPodDisruptionBudgetStatus is the same as ExtractPodDisruptionBudget except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodDisruptionBudgetStatus(podDisruptionBudget *apipolicyv1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"status\")\n}\n\nfunc extractPodDisruptionBudget(podDisruptionBudget *apipolicyv1.PodDisruptionBudget, fieldManager string, subresource string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\terr := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type(\"io.k8s.api.policy.v1.PodDisruptionBudget\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podDisruptionBudget.Name)\n\tb.WithNamespace(podDisruptionBudget.Namespace)\n\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetSpecApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetSpec type for use\n// with apply.\ntype PodDisruptionBudgetSpecApplyConfiguration struct {\n\tMinAvailable               *intstr.IntOrString                      `json:\"minAvailable,omitempty\"`\n\tSelector                   *v1.LabelSelectorApplyConfiguration      `json:\"selector,omitempty\"`\n\tMaxUnavailable             *intstr.IntOrString                      `json:\"maxUnavailable,omitempty\"`\n\tUnhealthyPodEvictionPolicy *policyv1.UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\"`\n}\n\n// PodDisruptionBudgetSpecApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetSpec type for use with\n// apply.\nfunc PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration {\n\treturn &PodDisruptionBudgetSpecApplyConfiguration{}\n}\n\n// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinAvailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MinAvailable = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithUnhealthyPodEvictionPolicy sets the UnhealthyPodEvictionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnhealthyPodEvictionPolicy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithUnhealthyPodEvictionPolicy(value policyv1.UnhealthyPodEvictionPolicyType) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.UnhealthyPodEvictionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetStatusApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetStatus type for use\n// with apply.\ntype PodDisruptionBudgetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                               `json:\"observedGeneration,omitempty\"`\n\tDisruptedPods      map[string]v1.Time                   `json:\"disruptedPods,omitempty\"`\n\tDisruptionsAllowed *int32                               `json:\"disruptionsAllowed,omitempty\"`\n\tCurrentHealthy     *int32                               `json:\"currentHealthy,omitempty\"`\n\tDesiredHealthy     *int32                               `json:\"desiredHealthy,omitempty\"`\n\tExpectedPods       *int32                               `json:\"expectedPods,omitempty\"`\n\tConditions         []metav1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PodDisruptionBudgetStatusApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetStatus type for use with\n// apply.\nfunc PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration {\n\treturn &PodDisruptionBudgetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DisruptedPods field,\n// overwriting an existing map entries in DisruptedPods field with the same key.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]v1.Time) *PodDisruptionBudgetStatusApplyConfiguration {\n\tif b.DisruptedPods == nil && len(entries) > 0 {\n\t\tb.DisruptedPods = make(map[string]v1.Time, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DisruptedPods[k] = v\n\t}\n\treturn b\n}\n\n// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DisruptionsAllowed field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DisruptionsAllowed = &value\n\treturn b\n}\n\n// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.CurrentHealthy = &value\n\treturn b\n}\n\n// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DesiredHealthy = &value\n\treturn b\n}\n\n// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpectedPods field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ExpectedPods = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedcsidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// AllowedCSIDriverApplyConfiguration represents an declarative configuration of the AllowedCSIDriver type for use\n// with apply.\ntype AllowedCSIDriverApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// AllowedCSIDriverApplyConfiguration constructs an declarative configuration of the AllowedCSIDriver type for use with\n// apply.\nfunc AllowedCSIDriver() *AllowedCSIDriverApplyConfiguration {\n\treturn &AllowedCSIDriverApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *AllowedCSIDriverApplyConfiguration) WithName(value string) *AllowedCSIDriverApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedflexvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// AllowedFlexVolumeApplyConfiguration represents an declarative configuration of the AllowedFlexVolume type for use\n// with apply.\ntype AllowedFlexVolumeApplyConfiguration struct {\n\tDriver *string `json:\"driver,omitempty\"`\n}\n\n// AllowedFlexVolumeApplyConfiguration constructs an declarative configuration of the AllowedFlexVolume type for use with\n// apply.\nfunc AllowedFlexVolume() *AllowedFlexVolumeApplyConfiguration {\n\treturn &AllowedFlexVolumeApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *AllowedFlexVolumeApplyConfiguration) WithDriver(value string) *AllowedFlexVolumeApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedhostpath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// AllowedHostPathApplyConfiguration represents an declarative configuration of the AllowedHostPath type for use\n// with apply.\ntype AllowedHostPathApplyConfiguration struct {\n\tPathPrefix *string `json:\"pathPrefix,omitempty\"`\n\tReadOnly   *bool   `json:\"readOnly,omitempty\"`\n}\n\n// AllowedHostPathApplyConfiguration constructs an declarative configuration of the AllowedHostPath type for use with\n// apply.\nfunc AllowedHostPath() *AllowedHostPathApplyConfiguration {\n\treturn &AllowedHostPathApplyConfiguration{}\n}\n\n// WithPathPrefix sets the PathPrefix field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathPrefix field is set to the value of the last call.\nfunc (b *AllowedHostPathApplyConfiguration) WithPathPrefix(value string) *AllowedHostPathApplyConfiguration {\n\tb.PathPrefix = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AllowedHostPathApplyConfiguration) WithReadOnly(value bool) *AllowedHostPathApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EvictionApplyConfiguration represents an declarative configuration of the Eviction type for use\n// with apply.\ntype EvictionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDeleteOptions                    *v1.DeleteOptionsApplyConfiguration `json:\"deleteOptions,omitempty\"`\n}\n\n// Eviction constructs an declarative configuration of the Eviction type for use with\n// apply.\nfunc Eviction(name, namespace string) *EvictionApplyConfiguration {\n\tb := &EvictionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b\n}\n\n// ExtractEviction extracts the applied configuration owned by fieldManager from\n// eviction. If no managedFields are found in eviction for fieldManager, a\n// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API.\n// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEviction(eviction *v1beta1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"\")\n}\n\n// ExtractEvictionStatus is the same as ExtractEviction except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEvictionStatus(eviction *v1beta1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"status\")\n}\n\nfunc extractEviction(eviction *v1beta1.Eviction, fieldManager string, subresource string) (*EvictionApplyConfiguration, error) {\n\tb := &EvictionApplyConfiguration{}\n\terr := managedfields.ExtractInto(eviction, internal.Parser().Type(\"io.k8s.api.policy.v1beta1.Eviction\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(eviction.Name)\n\tb.WithNamespace(eviction.Namespace)\n\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeleteOptions field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeleteOptions(value *v1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration {\n\tb.DeleteOptions = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/fsgroupstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n)\n\n// FSGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the FSGroupStrategyOptions type for use\n// with apply.\ntype FSGroupStrategyOptionsApplyConfiguration struct {\n\tRule   *v1beta1.FSGroupStrategyType `json:\"rule,omitempty\"`\n\tRanges []IDRangeApplyConfiguration  `json:\"ranges,omitempty\"`\n}\n\n// FSGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the FSGroupStrategyOptions type for use with\n// apply.\nfunc FSGroupStrategyOptions() *FSGroupStrategyOptionsApplyConfiguration {\n\treturn &FSGroupStrategyOptionsApplyConfiguration{}\n}\n\n// WithRule sets the Rule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Rule field is set to the value of the last call.\nfunc (b *FSGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.FSGroupStrategyType) *FSGroupStrategyOptionsApplyConfiguration {\n\tb.Rule = &value\n\treturn b\n}\n\n// WithRanges adds the given value to the Ranges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ranges field.\nfunc (b *FSGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *FSGroupStrategyOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRanges\")\n\t\t}\n\t\tb.Ranges = append(b.Ranges, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/hostportrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// HostPortRangeApplyConfiguration represents an declarative configuration of the HostPortRange type for use\n// with apply.\ntype HostPortRangeApplyConfiguration struct {\n\tMin *int32 `json:\"min,omitempty\"`\n\tMax *int32 `json:\"max,omitempty\"`\n}\n\n// HostPortRangeApplyConfiguration constructs an declarative configuration of the HostPortRange type for use with\n// apply.\nfunc HostPortRange() *HostPortRangeApplyConfiguration {\n\treturn &HostPortRangeApplyConfiguration{}\n}\n\n// WithMin sets the Min field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Min field is set to the value of the last call.\nfunc (b *HostPortRangeApplyConfiguration) WithMin(value int32) *HostPortRangeApplyConfiguration {\n\tb.Min = &value\n\treturn b\n}\n\n// WithMax sets the Max field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Max field is set to the value of the last call.\nfunc (b *HostPortRangeApplyConfiguration) WithMax(value int32) *HostPortRangeApplyConfiguration {\n\tb.Max = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/idrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IDRangeApplyConfiguration represents an declarative configuration of the IDRange type for use\n// with apply.\ntype IDRangeApplyConfiguration struct {\n\tMin *int64 `json:\"min,omitempty\"`\n\tMax *int64 `json:\"max,omitempty\"`\n}\n\n// IDRangeApplyConfiguration constructs an declarative configuration of the IDRange type for use with\n// apply.\nfunc IDRange() *IDRangeApplyConfiguration {\n\treturn &IDRangeApplyConfiguration{}\n}\n\n// WithMin sets the Min field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Min field is set to the value of the last call.\nfunc (b *IDRangeApplyConfiguration) WithMin(value int64) *IDRangeApplyConfiguration {\n\tb.Min = &value\n\treturn b\n}\n\n// WithMax sets the Max field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Max field is set to the value of the last call.\nfunc (b *IDRangeApplyConfiguration) WithMax(value int64) *IDRangeApplyConfiguration {\n\tb.Max = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetApplyConfiguration represents an declarative configuration of the PodDisruptionBudget type for use\n// with apply.\ntype PodDisruptionBudgetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodDisruptionBudgetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PodDisruptionBudgetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PodDisruptionBudget constructs an declarative configuration of the PodDisruptionBudget type for use with\n// apply.\nfunc PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b\n}\n\n// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from\n// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a\n// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API.\n// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"\")\n}\n\n// ExtractPodDisruptionBudgetStatus is the same as ExtractPodDisruptionBudget except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodDisruptionBudgetStatus(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"status\")\n}\n\nfunc extractPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string, subresource string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\terr := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type(\"io.k8s.api.policy.v1beta1.PodDisruptionBudget\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podDisruptionBudget.Name)\n\tb.WithNamespace(podDisruptionBudget.Namespace)\n\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetSpecApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetSpec type for use\n// with apply.\ntype PodDisruptionBudgetSpecApplyConfiguration struct {\n\tMinAvailable               *intstr.IntOrString                     `json:\"minAvailable,omitempty\"`\n\tSelector                   *v1.LabelSelectorApplyConfiguration     `json:\"selector,omitempty\"`\n\tMaxUnavailable             *intstr.IntOrString                     `json:\"maxUnavailable,omitempty\"`\n\tUnhealthyPodEvictionPolicy *v1beta1.UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\"`\n}\n\n// PodDisruptionBudgetSpecApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetSpec type for use with\n// apply.\nfunc PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration {\n\treturn &PodDisruptionBudgetSpecApplyConfiguration{}\n}\n\n// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinAvailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MinAvailable = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithUnhealthyPodEvictionPolicy sets the UnhealthyPodEvictionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnhealthyPodEvictionPolicy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithUnhealthyPodEvictionPolicy(value v1beta1.UnhealthyPodEvictionPolicyType) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.UnhealthyPodEvictionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetStatusApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetStatus type for use\n// with apply.\ntype PodDisruptionBudgetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                               `json:\"observedGeneration,omitempty\"`\n\tDisruptedPods      map[string]v1.Time                   `json:\"disruptedPods,omitempty\"`\n\tDisruptionsAllowed *int32                               `json:\"disruptionsAllowed,omitempty\"`\n\tCurrentHealthy     *int32                               `json:\"currentHealthy,omitempty\"`\n\tDesiredHealthy     *int32                               `json:\"desiredHealthy,omitempty\"`\n\tExpectedPods       *int32                               `json:\"expectedPods,omitempty\"`\n\tConditions         []metav1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PodDisruptionBudgetStatusApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetStatus type for use with\n// apply.\nfunc PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration {\n\treturn &PodDisruptionBudgetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DisruptedPods field,\n// overwriting an existing map entries in DisruptedPods field with the same key.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]v1.Time) *PodDisruptionBudgetStatusApplyConfiguration {\n\tif b.DisruptedPods == nil && len(entries) > 0 {\n\t\tb.DisruptedPods = make(map[string]v1.Time, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DisruptedPods[k] = v\n\t}\n\treturn b\n}\n\n// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DisruptionsAllowed field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DisruptionsAllowed = &value\n\treturn b\n}\n\n// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.CurrentHealthy = &value\n\treturn b\n}\n\n// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DesiredHealthy = &value\n\treturn b\n}\n\n// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpectedPods field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ExpectedPods = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodSecurityPolicyApplyConfiguration represents an declarative configuration of the PodSecurityPolicy type for use\n// with apply.\ntype PodSecurityPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodSecurityPolicySpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// PodSecurityPolicy constructs an declarative configuration of the PodSecurityPolicy type for use with\n// apply.\nfunc PodSecurityPolicy(name string) *PodSecurityPolicyApplyConfiguration {\n\tb := &PodSecurityPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PodSecurityPolicy\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b\n}\n\n// ExtractPodSecurityPolicy extracts the applied configuration owned by fieldManager from\n// podSecurityPolicy. If no managedFields are found in podSecurityPolicy for fieldManager, a\n// PodSecurityPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podSecurityPolicy must be a unmodified PodSecurityPolicy API object that was retrieved from the Kubernetes API.\n// ExtractPodSecurityPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodSecurityPolicy(podSecurityPolicy *policyv1beta1.PodSecurityPolicy, fieldManager string) (*PodSecurityPolicyApplyConfiguration, error) {\n\treturn extractPodSecurityPolicy(podSecurityPolicy, fieldManager, \"\")\n}\n\n// ExtractPodSecurityPolicyStatus is the same as ExtractPodSecurityPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodSecurityPolicyStatus(podSecurityPolicy *policyv1beta1.PodSecurityPolicy, fieldManager string) (*PodSecurityPolicyApplyConfiguration, error) {\n\treturn extractPodSecurityPolicy(podSecurityPolicy, fieldManager, \"status\")\n}\n\nfunc extractPodSecurityPolicy(podSecurityPolicy *policyv1beta1.PodSecurityPolicy, fieldManager string, subresource string) (*PodSecurityPolicyApplyConfiguration, error) {\n\tb := &PodSecurityPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(podSecurityPolicy, internal.Parser().Type(\"io.k8s.api.policy.v1beta1.PodSecurityPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podSecurityPolicy.Name)\n\n\tb.WithKind(\"PodSecurityPolicy\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithKind(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithAPIVersion(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithName(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithGenerateName(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithNamespace(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithUID(value types.UID) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithResourceVersion(value string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithGeneration(value int64) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithLabels(entries map[string]string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithFinalizers(values ...string) *PodSecurityPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodSecurityPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodSecurityPolicyApplyConfiguration) WithSpec(value *PodSecurityPolicySpecApplyConfiguration) *PodSecurityPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n)\n\n// PodSecurityPolicySpecApplyConfiguration represents an declarative configuration of the PodSecurityPolicySpec type for use\n// with apply.\ntype PodSecurityPolicySpecApplyConfiguration struct {\n\tPrivileged                      *bool                                                `json:\"privileged,omitempty\"`\n\tDefaultAddCapabilities          []v1.Capability                                      `json:\"defaultAddCapabilities,omitempty\"`\n\tRequiredDropCapabilities        []v1.Capability                                      `json:\"requiredDropCapabilities,omitempty\"`\n\tAllowedCapabilities             []v1.Capability                                      `json:\"allowedCapabilities,omitempty\"`\n\tVolumes                         []v1beta1.FSType                                     `json:\"volumes,omitempty\"`\n\tHostNetwork                     *bool                                                `json:\"hostNetwork,omitempty\"`\n\tHostPorts                       []HostPortRangeApplyConfiguration                    `json:\"hostPorts,omitempty\"`\n\tHostPID                         *bool                                                `json:\"hostPID,omitempty\"`\n\tHostIPC                         *bool                                                `json:\"hostIPC,omitempty\"`\n\tSELinux                         *SELinuxStrategyOptionsApplyConfiguration            `json:\"seLinux,omitempty\"`\n\tRunAsUser                       *RunAsUserStrategyOptionsApplyConfiguration          `json:\"runAsUser,omitempty\"`\n\tRunAsGroup                      *RunAsGroupStrategyOptionsApplyConfiguration         `json:\"runAsGroup,omitempty\"`\n\tSupplementalGroups              *SupplementalGroupsStrategyOptionsApplyConfiguration `json:\"supplementalGroups,omitempty\"`\n\tFSGroup                         *FSGroupStrategyOptionsApplyConfiguration            `json:\"fsGroup,omitempty\"`\n\tReadOnlyRootFilesystem          *bool                                                `json:\"readOnlyRootFilesystem,omitempty\"`\n\tDefaultAllowPrivilegeEscalation *bool                                                `json:\"defaultAllowPrivilegeEscalation,omitempty\"`\n\tAllowPrivilegeEscalation        *bool                                                `json:\"allowPrivilegeEscalation,omitempty\"`\n\tAllowedHostPaths                []AllowedHostPathApplyConfiguration                  `json:\"allowedHostPaths,omitempty\"`\n\tAllowedFlexVolumes              []AllowedFlexVolumeApplyConfiguration                `json:\"allowedFlexVolumes,omitempty\"`\n\tAllowedCSIDrivers               []AllowedCSIDriverApplyConfiguration                 `json:\"allowedCSIDrivers,omitempty\"`\n\tAllowedUnsafeSysctls            []string                                             `json:\"allowedUnsafeSysctls,omitempty\"`\n\tForbiddenSysctls                []string                                             `json:\"forbiddenSysctls,omitempty\"`\n\tAllowedProcMountTypes           []v1.ProcMountType                                   `json:\"allowedProcMountTypes,omitempty\"`\n\tRuntimeClass                    *RuntimeClassStrategyOptionsApplyConfiguration       `json:\"runtimeClass,omitempty\"`\n}\n\n// PodSecurityPolicySpecApplyConfiguration constructs an declarative configuration of the PodSecurityPolicySpec type for use with\n// apply.\nfunc PodSecurityPolicySpec() *PodSecurityPolicySpecApplyConfiguration {\n\treturn &PodSecurityPolicySpecApplyConfiguration{}\n}\n\n// WithPrivileged sets the Privileged field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Privileged field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithPrivileged(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.Privileged = &value\n\treturn b\n}\n\n// WithDefaultAddCapabilities adds the given value to the DefaultAddCapabilities field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the DefaultAddCapabilities field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAddCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.DefaultAddCapabilities = append(b.DefaultAddCapabilities, values[i])\n\t}\n\treturn b\n}\n\n// WithRequiredDropCapabilities adds the given value to the RequiredDropCapabilities field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RequiredDropCapabilities field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithRequiredDropCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.RequiredDropCapabilities = append(b.RequiredDropCapabilities, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowedCapabilities adds the given value to the AllowedCapabilities field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedCapabilities field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AllowedCapabilities = append(b.AllowedCapabilities, values[i])\n\t}\n\treturn b\n}\n\n// WithVolumes adds the given value to the Volumes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Volumes field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithVolumes(values ...v1beta1.FSType) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Volumes = append(b.Volumes, values[i])\n\t}\n\treturn b\n}\n\n// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostNetwork field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithHostNetwork(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.HostNetwork = &value\n\treturn b\n}\n\n// WithHostPorts adds the given value to the HostPorts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HostPorts field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithHostPorts(values ...*HostPortRangeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHostPorts\")\n\t\t}\n\t\tb.HostPorts = append(b.HostPorts, *values[i])\n\t}\n\treturn b\n}\n\n// WithHostPID sets the HostPID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPID field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithHostPID(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.HostPID = &value\n\treturn b\n}\n\n// WithHostIPC sets the HostIPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIPC field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithHostIPC(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.HostIPC = &value\n\treturn b\n}\n\n// WithSELinux sets the SELinux field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinux field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithSELinux(value *SELinuxStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.SELinux = value\n\treturn b\n}\n\n// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUser field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsUser(value *RunAsUserStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.RunAsUser = value\n\treturn b\n}\n\n// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsGroup field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsGroup(value *RunAsGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.RunAsGroup = value\n\treturn b\n}\n\n// WithSupplementalGroups sets the SupplementalGroups field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SupplementalGroups field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithSupplementalGroups(value *SupplementalGroupsStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.SupplementalGroups = value\n\treturn b\n}\n\n// WithFSGroup sets the FSGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroup field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithFSGroup(value *FSGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.FSGroup = value\n\treturn b\n}\n\n// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.ReadOnlyRootFilesystem = &value\n\treturn b\n}\n\n// WithDefaultAllowPrivilegeEscalation sets the DefaultAllowPrivilegeEscalation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultAllowPrivilegeEscalation field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.DefaultAllowPrivilegeEscalation = &value\n\treturn b\n}\n\n// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration {\n\tb.AllowPrivilegeEscalation = &value\n\treturn b\n}\n\n// WithAllowedHostPaths adds the given value to the AllowedHostPaths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedHostPaths field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedHostPaths(values ...*AllowedHostPathApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedHostPaths\")\n\t\t}\n\t\tb.AllowedHostPaths = append(b.AllowedHostPaths, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllowedFlexVolumes adds the given value to the AllowedFlexVolumes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedFlexVolumes field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedFlexVolumes(values ...*AllowedFlexVolumeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedFlexVolumes\")\n\t\t}\n\t\tb.AllowedFlexVolumes = append(b.AllowedFlexVolumes, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllowedCSIDrivers adds the given value to the AllowedCSIDrivers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedCSIDrivers field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCSIDrivers(values ...*AllowedCSIDriverApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedCSIDrivers\")\n\t\t}\n\t\tb.AllowedCSIDrivers = append(b.AllowedCSIDrivers, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllowedUnsafeSysctls adds the given value to the AllowedUnsafeSysctls field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedUnsafeSysctls field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedUnsafeSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AllowedUnsafeSysctls = append(b.AllowedUnsafeSysctls, values[i])\n\t}\n\treturn b\n}\n\n// WithForbiddenSysctls adds the given value to the ForbiddenSysctls field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ForbiddenSysctls field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithForbiddenSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ForbiddenSysctls = append(b.ForbiddenSysctls, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowedProcMountTypes adds the given value to the AllowedProcMountTypes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedProcMountTypes field.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedProcMountTypes(values ...v1.ProcMountType) *PodSecurityPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AllowedProcMountTypes = append(b.AllowedProcMountTypes, values[i])\n\t}\n\treturn b\n}\n\n// WithRuntimeClass sets the RuntimeClass field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RuntimeClass field is set to the value of the last call.\nfunc (b *PodSecurityPolicySpecApplyConfiguration) WithRuntimeClass(value *RuntimeClassStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration {\n\tb.RuntimeClass = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasgroupstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n)\n\n// RunAsGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsGroupStrategyOptions type for use\n// with apply.\ntype RunAsGroupStrategyOptionsApplyConfiguration struct {\n\tRule   *v1beta1.RunAsGroupStrategy `json:\"rule,omitempty\"`\n\tRanges []IDRangeApplyConfiguration `json:\"ranges,omitempty\"`\n}\n\n// RunAsGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsGroupStrategyOptions type for use with\n// apply.\nfunc RunAsGroupStrategyOptions() *RunAsGroupStrategyOptionsApplyConfiguration {\n\treturn &RunAsGroupStrategyOptionsApplyConfiguration{}\n}\n\n// WithRule sets the Rule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Rule field is set to the value of the last call.\nfunc (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsGroupStrategy) *RunAsGroupStrategyOptionsApplyConfiguration {\n\tb.Rule = &value\n\treturn b\n}\n\n// WithRanges adds the given value to the Ranges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ranges field.\nfunc (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsGroupStrategyOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRanges\")\n\t\t}\n\t\tb.Ranges = append(b.Ranges, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasuserstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n)\n\n// RunAsUserStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsUserStrategyOptions type for use\n// with apply.\ntype RunAsUserStrategyOptionsApplyConfiguration struct {\n\tRule   *v1beta1.RunAsUserStrategy  `json:\"rule,omitempty\"`\n\tRanges []IDRangeApplyConfiguration `json:\"ranges,omitempty\"`\n}\n\n// RunAsUserStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsUserStrategyOptions type for use with\n// apply.\nfunc RunAsUserStrategyOptions() *RunAsUserStrategyOptionsApplyConfiguration {\n\treturn &RunAsUserStrategyOptionsApplyConfiguration{}\n}\n\n// WithRule sets the Rule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Rule field is set to the value of the last call.\nfunc (b *RunAsUserStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsUserStrategy) *RunAsUserStrategyOptionsApplyConfiguration {\n\tb.Rule = &value\n\treturn b\n}\n\n// WithRanges adds the given value to the Ranges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ranges field.\nfunc (b *RunAsUserStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsUserStrategyOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRanges\")\n\t\t}\n\t\tb.Ranges = append(b.Ranges, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runtimeclassstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RuntimeClassStrategyOptionsApplyConfiguration represents an declarative configuration of the RuntimeClassStrategyOptions type for use\n// with apply.\ntype RuntimeClassStrategyOptionsApplyConfiguration struct {\n\tAllowedRuntimeClassNames []string `json:\"allowedRuntimeClassNames,omitempty\"`\n\tDefaultRuntimeClassName  *string  `json:\"defaultRuntimeClassName,omitempty\"`\n}\n\n// RuntimeClassStrategyOptionsApplyConfiguration constructs an declarative configuration of the RuntimeClassStrategyOptions type for use with\n// apply.\nfunc RuntimeClassStrategyOptions() *RuntimeClassStrategyOptionsApplyConfiguration {\n\treturn &RuntimeClassStrategyOptionsApplyConfiguration{}\n}\n\n// WithAllowedRuntimeClassNames adds the given value to the AllowedRuntimeClassNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedRuntimeClassNames field.\nfunc (b *RuntimeClassStrategyOptionsApplyConfiguration) WithAllowedRuntimeClassNames(values ...string) *RuntimeClassStrategyOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tb.AllowedRuntimeClassNames = append(b.AllowedRuntimeClassNames, values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultRuntimeClassName sets the DefaultRuntimeClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultRuntimeClassName field is set to the value of the last call.\nfunc (b *RuntimeClassStrategyOptionsApplyConfiguration) WithDefaultRuntimeClassName(value string) *RuntimeClassStrategyOptionsApplyConfiguration {\n\tb.DefaultRuntimeClassName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/selinuxstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SELinuxStrategyOptionsApplyConfiguration represents an declarative configuration of the SELinuxStrategyOptions type for use\n// with apply.\ntype SELinuxStrategyOptionsApplyConfiguration struct {\n\tRule           *v1beta1.SELinuxStrategy             `json:\"rule,omitempty\"`\n\tSELinuxOptions *v1.SELinuxOptionsApplyConfiguration `json:\"seLinuxOptions,omitempty\"`\n}\n\n// SELinuxStrategyOptionsApplyConfiguration constructs an declarative configuration of the SELinuxStrategyOptions type for use with\n// apply.\nfunc SELinuxStrategyOptions() *SELinuxStrategyOptionsApplyConfiguration {\n\treturn &SELinuxStrategyOptionsApplyConfiguration{}\n}\n\n// WithRule sets the Rule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Rule field is set to the value of the last call.\nfunc (b *SELinuxStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SELinuxStrategy) *SELinuxStrategyOptionsApplyConfiguration {\n\tb.Rule = &value\n\treturn b\n}\n\n// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxOptions field is set to the value of the last call.\nfunc (b *SELinuxStrategyOptionsApplyConfiguration) WithSELinuxOptions(value *v1.SELinuxOptionsApplyConfiguration) *SELinuxStrategyOptionsApplyConfiguration {\n\tb.SELinuxOptions = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/supplementalgroupsstrategyoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n)\n\n// SupplementalGroupsStrategyOptionsApplyConfiguration represents an declarative configuration of the SupplementalGroupsStrategyOptions type for use\n// with apply.\ntype SupplementalGroupsStrategyOptionsApplyConfiguration struct {\n\tRule   *v1beta1.SupplementalGroupsStrategyType `json:\"rule,omitempty\"`\n\tRanges []IDRangeApplyConfiguration             `json:\"ranges,omitempty\"`\n}\n\n// SupplementalGroupsStrategyOptionsApplyConfiguration constructs an declarative configuration of the SupplementalGroupsStrategyOptions type for use with\n// apply.\nfunc SupplementalGroupsStrategyOptions() *SupplementalGroupsStrategyOptionsApplyConfiguration {\n\treturn &SupplementalGroupsStrategyOptionsApplyConfiguration{}\n}\n\n// WithRule sets the Rule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Rule field is set to the value of the last call.\nfunc (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SupplementalGroupsStrategyType) *SupplementalGroupsStrategyOptionsApplyConfiguration {\n\tb.Rule = &value\n\treturn b\n}\n\n// WithRanges adds the given value to the Ranges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ranges field.\nfunc (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *SupplementalGroupsStrategyOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRanges\")\n\t\t}\n\t\tb.Ranges = append(b.Ranges, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                  *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs an declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *apirbacv1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *apirbacv1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *apirbacv1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *apirbacv1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *apirbacv1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *apirbacv1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents an declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs an declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *apirbacv1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *apirbacv1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *apirbacv1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs an declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *apirbacv1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *apirbacv1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *apirbacv1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind      *string `json:\"kind,omitempty\"`\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                  *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs an declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents an declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs an declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *rbacv1alpha1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *rbacv1alpha1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *rbacv1alpha1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs an declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tNamespace  *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIVersion(value string) *SubjectApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                  *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs an declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *rbacv1beta1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *rbacv1beta1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *rbacv1beta1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents an declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs an declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *rbacv1beta1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *rbacv1beta1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *rbacv1beta1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs an declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *rbacv1beta1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *rbacv1beta1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *rbacv1beta1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind      *string `json:\"kind,omitempty\"`\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/allocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// AllocationResultApplyConfiguration represents an declarative configuration of the AllocationResult type for use\n// with apply.\ntype AllocationResultApplyConfiguration struct {\n\tResourceHandles  []ResourceHandleApplyConfiguration `json:\"resourceHandles,omitempty\"`\n\tAvailableOnNodes *v1.NodeSelectorApplyConfiguration `json:\"availableOnNodes,omitempty\"`\n\tShareable        *bool                              `json:\"shareable,omitempty\"`\n}\n\n// AllocationResultApplyConfiguration constructs an declarative configuration of the AllocationResult type for use with\n// apply.\nfunc AllocationResult() *AllocationResultApplyConfiguration {\n\treturn &AllocationResultApplyConfiguration{}\n}\n\n// WithResourceHandles adds the given value to the ResourceHandles field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceHandles field.\nfunc (b *AllocationResultApplyConfiguration) WithResourceHandles(values ...*ResourceHandleApplyConfiguration) *AllocationResultApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceHandles\")\n\t\t}\n\t\tb.ResourceHandles = append(b.ResourceHandles, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableOnNodes sets the AvailableOnNodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableOnNodes field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithAvailableOnNodes(value *v1.NodeSelectorApplyConfiguration) *AllocationResultApplyConfiguration {\n\tb.AvailableOnNodes = value\n\treturn b\n}\n\n// WithShareable sets the Shareable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Shareable field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithShareable(value bool) *AllocationResultApplyConfiguration {\n\tb.Shareable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/podschedulingcontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodSchedulingContextApplyConfiguration represents an declarative configuration of the PodSchedulingContext type for use\n// with apply.\ntype PodSchedulingContextApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodSchedulingContextSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PodSchedulingContextStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PodSchedulingContext constructs an declarative configuration of the PodSchedulingContext type for use with\n// apply.\nfunc PodSchedulingContext(name, namespace string) *PodSchedulingContextApplyConfiguration {\n\tb := &PodSchedulingContextApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodSchedulingContext\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b\n}\n\n// ExtractPodSchedulingContext extracts the applied configuration owned by fieldManager from\n// podSchedulingContext. If no managedFields are found in podSchedulingContext for fieldManager, a\n// PodSchedulingContextApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podSchedulingContext must be a unmodified PodSchedulingContext API object that was retrieved from the Kubernetes API.\n// ExtractPodSchedulingContext provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodSchedulingContext(podSchedulingContext *resourcev1alpha2.PodSchedulingContext, fieldManager string) (*PodSchedulingContextApplyConfiguration, error) {\n\treturn extractPodSchedulingContext(podSchedulingContext, fieldManager, \"\")\n}\n\n// ExtractPodSchedulingContextStatus is the same as ExtractPodSchedulingContext except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodSchedulingContextStatus(podSchedulingContext *resourcev1alpha2.PodSchedulingContext, fieldManager string) (*PodSchedulingContextApplyConfiguration, error) {\n\treturn extractPodSchedulingContext(podSchedulingContext, fieldManager, \"status\")\n}\n\nfunc extractPodSchedulingContext(podSchedulingContext *resourcev1alpha2.PodSchedulingContext, fieldManager string, subresource string) (*PodSchedulingContextApplyConfiguration, error) {\n\tb := &PodSchedulingContextApplyConfiguration{}\n\terr := managedfields.ExtractInto(podSchedulingContext, internal.Parser().Type(\"io.k8s.api.resource.v1alpha2.PodSchedulingContext\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podSchedulingContext.Name)\n\tb.WithNamespace(podSchedulingContext.Namespace)\n\n\tb.WithKind(\"PodSchedulingContext\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithKind(value string) *PodSchedulingContextApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithAPIVersion(value string) *PodSchedulingContextApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithName(value string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithGenerateName(value string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithNamespace(value string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithUID(value types.UID) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithResourceVersion(value string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithGeneration(value int64) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodSchedulingContextApplyConfiguration) WithLabels(entries map[string]string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodSchedulingContextApplyConfiguration) WithAnnotations(entries map[string]string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodSchedulingContextApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodSchedulingContextApplyConfiguration) WithFinalizers(values ...string) *PodSchedulingContextApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodSchedulingContextApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithSpec(value *PodSchedulingContextSpecApplyConfiguration) *PodSchedulingContextApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodSchedulingContextApplyConfiguration) WithStatus(value *PodSchedulingContextStatusApplyConfiguration) *PodSchedulingContextApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/podschedulingcontextspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// PodSchedulingContextSpecApplyConfiguration represents an declarative configuration of the PodSchedulingContextSpec type for use\n// with apply.\ntype PodSchedulingContextSpecApplyConfiguration struct {\n\tSelectedNode   *string  `json:\"selectedNode,omitempty\"`\n\tPotentialNodes []string `json:\"potentialNodes,omitempty\"`\n}\n\n// PodSchedulingContextSpecApplyConfiguration constructs an declarative configuration of the PodSchedulingContextSpec type for use with\n// apply.\nfunc PodSchedulingContextSpec() *PodSchedulingContextSpecApplyConfiguration {\n\treturn &PodSchedulingContextSpecApplyConfiguration{}\n}\n\n// WithSelectedNode sets the SelectedNode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SelectedNode field is set to the value of the last call.\nfunc (b *PodSchedulingContextSpecApplyConfiguration) WithSelectedNode(value string) *PodSchedulingContextSpecApplyConfiguration {\n\tb.SelectedNode = &value\n\treturn b\n}\n\n// WithPotentialNodes adds the given value to the PotentialNodes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PotentialNodes field.\nfunc (b *PodSchedulingContextSpecApplyConfiguration) WithPotentialNodes(values ...string) *PodSchedulingContextSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PotentialNodes = append(b.PotentialNodes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/podschedulingcontextstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// PodSchedulingContextStatusApplyConfiguration represents an declarative configuration of the PodSchedulingContextStatus type for use\n// with apply.\ntype PodSchedulingContextStatusApplyConfiguration struct {\n\tResourceClaims []ResourceClaimSchedulingStatusApplyConfiguration `json:\"resourceClaims,omitempty\"`\n}\n\n// PodSchedulingContextStatusApplyConfiguration constructs an declarative configuration of the PodSchedulingContextStatus type for use with\n// apply.\nfunc PodSchedulingContextStatus() *PodSchedulingContextStatusApplyConfiguration {\n\treturn &PodSchedulingContextStatusApplyConfiguration{}\n}\n\n// WithResourceClaims adds the given value to the ResourceClaims field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceClaims field.\nfunc (b *PodSchedulingContextStatusApplyConfiguration) WithResourceClaims(values ...*ResourceClaimSchedulingStatusApplyConfiguration) *PodSchedulingContextStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceClaims\")\n\t\t}\n\t\tb.ResourceClaims = append(b.ResourceClaims, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimApplyConfiguration represents an declarative configuration of the ResourceClaim type for use\n// with apply.\ntype ResourceClaimApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ResourceClaimStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ResourceClaim constructs an declarative configuration of the ResourceClaim type for use with\n// apply.\nfunc ResourceClaim(name, namespace string) *ResourceClaimApplyConfiguration {\n\tb := &ResourceClaimApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b\n}\n\n// ExtractResourceClaim extracts the applied configuration owned by fieldManager from\n// resourceClaim. If no managedFields are found in resourceClaim for fieldManager, a\n// ResourceClaimApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaim must be a unmodified ResourceClaim API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaim provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaim(resourceClaim *resourcev1alpha2.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"\")\n}\n\n// ExtractResourceClaimStatus is the same as ExtractResourceClaim except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimStatus(resourceClaim *resourcev1alpha2.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"status\")\n}\n\nfunc extractResourceClaim(resourceClaim *resourcev1alpha2.ResourceClaim, fieldManager string, subresource string) (*ResourceClaimApplyConfiguration, error) {\n\tb := &ResourceClaimApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaim, internal.Parser().Type(\"io.k8s.api.resource.v1alpha2.ResourceClaim\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaim.Name)\n\tb.WithNamespace(resourceClaim.Namespace)\n\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithKind(value string) *ResourceClaimApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithAPIVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGenerateName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithNamespace(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithUID(value types.UID) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithResourceVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGeneration(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithStatus(value *ResourceClaimStatusApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimconsumerreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ResourceClaimConsumerReferenceApplyConfiguration represents an declarative configuration of the ResourceClaimConsumerReference type for use\n// with apply.\ntype ResourceClaimConsumerReferenceApplyConfiguration struct {\n\tAPIGroup *string    `json:\"apiGroup,omitempty\"`\n\tResource *string    `json:\"resource,omitempty\"`\n\tName     *string    `json:\"name,omitempty\"`\n\tUID      *types.UID `json:\"uid,omitempty\"`\n}\n\n// ResourceClaimConsumerReferenceApplyConfiguration constructs an declarative configuration of the ResourceClaimConsumerReference type for use with\n// apply.\nfunc ResourceClaimConsumerReference() *ResourceClaimConsumerReferenceApplyConfiguration {\n\treturn &ResourceClaimConsumerReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithAPIGroup(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithResource(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithName(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithUID(value types.UID) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// ResourceClaimParametersReferenceApplyConfiguration represents an declarative configuration of the ResourceClaimParametersReference type for use\n// with apply.\ntype ResourceClaimParametersReferenceApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// ResourceClaimParametersReferenceApplyConfiguration constructs an declarative configuration of the ResourceClaimParametersReference type for use with\n// apply.\nfunc ResourceClaimParametersReference() *ResourceClaimParametersReferenceApplyConfiguration {\n\treturn &ResourceClaimParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *ResourceClaimParametersReferenceApplyConfiguration) WithAPIGroup(value string) *ResourceClaimParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimParametersReferenceApplyConfiguration) WithKind(value string) *ResourceClaimParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimParametersReferenceApplyConfiguration) WithName(value string) *ResourceClaimParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimschedulingstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// ResourceClaimSchedulingStatusApplyConfiguration represents an declarative configuration of the ResourceClaimSchedulingStatus type for use\n// with apply.\ntype ResourceClaimSchedulingStatusApplyConfiguration struct {\n\tName            *string  `json:\"name,omitempty\"`\n\tUnsuitableNodes []string `json:\"unsuitableNodes,omitempty\"`\n}\n\n// ResourceClaimSchedulingStatusApplyConfiguration constructs an declarative configuration of the ResourceClaimSchedulingStatus type for use with\n// apply.\nfunc ResourceClaimSchedulingStatus() *ResourceClaimSchedulingStatusApplyConfiguration {\n\treturn &ResourceClaimSchedulingStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimSchedulingStatusApplyConfiguration) WithName(value string) *ResourceClaimSchedulingStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUnsuitableNodes adds the given value to the UnsuitableNodes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the UnsuitableNodes field.\nfunc (b *ResourceClaimSchedulingStatusApplyConfiguration) WithUnsuitableNodes(values ...string) *ResourceClaimSchedulingStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.UnsuitableNodes = append(b.UnsuitableNodes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n)\n\n// ResourceClaimSpecApplyConfiguration represents an declarative configuration of the ResourceClaimSpec type for use\n// with apply.\ntype ResourceClaimSpecApplyConfiguration struct {\n\tResourceClassName *string                                             `json:\"resourceClassName,omitempty\"`\n\tParametersRef     *ResourceClaimParametersReferenceApplyConfiguration `json:\"parametersRef,omitempty\"`\n\tAllocationMode    *resourcev1alpha2.AllocationMode                    `json:\"allocationMode,omitempty\"`\n}\n\n// ResourceClaimSpecApplyConfiguration constructs an declarative configuration of the ResourceClaimSpec type for use with\n// apply.\nfunc ResourceClaimSpec() *ResourceClaimSpecApplyConfiguration {\n\treturn &ResourceClaimSpecApplyConfiguration{}\n}\n\n// WithResourceClassName sets the ResourceClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClassName field is set to the value of the last call.\nfunc (b *ResourceClaimSpecApplyConfiguration) WithResourceClassName(value string) *ResourceClaimSpecApplyConfiguration {\n\tb.ResourceClassName = &value\n\treturn b\n}\n\n// WithParametersRef sets the ParametersRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParametersRef field is set to the value of the last call.\nfunc (b *ResourceClaimSpecApplyConfiguration) WithParametersRef(value *ResourceClaimParametersReferenceApplyConfiguration) *ResourceClaimSpecApplyConfiguration {\n\tb.ParametersRef = value\n\treturn b\n}\n\n// WithAllocationMode sets the AllocationMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocationMode field is set to the value of the last call.\nfunc (b *ResourceClaimSpecApplyConfiguration) WithAllocationMode(value resourcev1alpha2.AllocationMode) *ResourceClaimSpecApplyConfiguration {\n\tb.AllocationMode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// ResourceClaimStatusApplyConfiguration represents an declarative configuration of the ResourceClaimStatus type for use\n// with apply.\ntype ResourceClaimStatusApplyConfiguration struct {\n\tDriverName            *string                                            `json:\"driverName,omitempty\"`\n\tAllocation            *AllocationResultApplyConfiguration                `json:\"allocation,omitempty\"`\n\tReservedFor           []ResourceClaimConsumerReferenceApplyConfiguration `json:\"reservedFor,omitempty\"`\n\tDeallocationRequested *bool                                              `json:\"deallocationRequested,omitempty\"`\n}\n\n// ResourceClaimStatusApplyConfiguration constructs an declarative configuration of the ResourceClaimStatus type for use with\n// apply.\nfunc ResourceClaimStatus() *ResourceClaimStatusApplyConfiguration {\n\treturn &ResourceClaimStatusApplyConfiguration{}\n}\n\n// WithDriverName sets the DriverName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DriverName field is set to the value of the last call.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithDriverName(value string) *ResourceClaimStatusApplyConfiguration {\n\tb.DriverName = &value\n\treturn b\n}\n\n// WithAllocation sets the Allocation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocation field is set to the value of the last call.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithAllocation(value *AllocationResultApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tb.Allocation = value\n\treturn b\n}\n\n// WithReservedFor adds the given value to the ReservedFor field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ReservedFor field.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithReservedFor(values ...*ResourceClaimConsumerReferenceApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithReservedFor\")\n\t\t}\n\t\tb.ReservedFor = append(b.ReservedFor, *values[i])\n\t}\n\treturn b\n}\n\n// WithDeallocationRequested sets the DeallocationRequested field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeallocationRequested field is set to the value of the last call.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithDeallocationRequested(value bool) *ResourceClaimStatusApplyConfiguration {\n\tb.DeallocationRequested = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateApplyConfiguration represents an declarative configuration of the ResourceClaimTemplate type for use\n// with apply.\ntype ResourceClaimTemplateApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimTemplateSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplate constructs an declarative configuration of the ResourceClaimTemplate type for use with\n// apply.\nfunc ResourceClaimTemplate(name, namespace string) *ResourceClaimTemplateApplyConfiguration {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b\n}\n\n// ExtractResourceClaimTemplate extracts the applied configuration owned by fieldManager from\n// resourceClaimTemplate. If no managedFields are found in resourceClaimTemplate for fieldManager, a\n// ResourceClaimTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaimTemplate must be a unmodified ResourceClaimTemplate API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaimTemplate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaimTemplate(resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"\")\n}\n\n// ExtractResourceClaimTemplateStatus is the same as ExtractResourceClaimTemplate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimTemplateStatus(resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"status\")\n}\n\nfunc extractResourceClaimTemplate(resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplate, fieldManager string, subresource string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaimTemplate, internal.Parser().Type(\"io.k8s.api.resource.v1alpha2.ResourceClaimTemplate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaimTemplate.Name)\n\tb.WithNamespace(resourceClaimTemplate.Namespace)\n\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithKind(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAPIVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithSpec(value *ResourceClaimTemplateSpecApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateSpecApplyConfiguration represents an declarative configuration of the ResourceClaimTemplateSpec type for use\n// with apply.\ntype ResourceClaimTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplateSpecApplyConfiguration constructs an declarative configuration of the ResourceClaimTemplateSpec type for use with\n// apply.\nfunc ResourceClaimTemplateSpec() *ResourceClaimTemplateSpecApplyConfiguration {\n\treturn &ResourceClaimTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClassApplyConfiguration represents an declarative configuration of the ResourceClass type for use\n// with apply.\ntype ResourceClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDriverName                       *string                                             `json:\"driverName,omitempty\"`\n\tParametersRef                    *ResourceClassParametersReferenceApplyConfiguration `json:\"parametersRef,omitempty\"`\n\tSuitableNodes                    *corev1.NodeSelectorApplyConfiguration              `json:\"suitableNodes,omitempty\"`\n}\n\n// ResourceClass constructs an declarative configuration of the ResourceClass type for use with\n// apply.\nfunc ResourceClass(name string) *ResourceClassApplyConfiguration {\n\tb := &ResourceClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ResourceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b\n}\n\n// ExtractResourceClass extracts the applied configuration owned by fieldManager from\n// resourceClass. If no managedFields are found in resourceClass for fieldManager, a\n// ResourceClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClass must be a unmodified ResourceClass API object that was retrieved from the Kubernetes API.\n// ExtractResourceClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClass(resourceClass *resourcev1alpha2.ResourceClass, fieldManager string) (*ResourceClassApplyConfiguration, error) {\n\treturn extractResourceClass(resourceClass, fieldManager, \"\")\n}\n\n// ExtractResourceClassStatus is the same as ExtractResourceClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClassStatus(resourceClass *resourcev1alpha2.ResourceClass, fieldManager string) (*ResourceClassApplyConfiguration, error) {\n\treturn extractResourceClass(resourceClass, fieldManager, \"status\")\n}\n\nfunc extractResourceClass(resourceClass *resourcev1alpha2.ResourceClass, fieldManager string, subresource string) (*ResourceClassApplyConfiguration, error) {\n\tb := &ResourceClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClass, internal.Parser().Type(\"io.k8s.api.resource.v1alpha2.ResourceClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClass.Name)\n\n\tb.WithKind(\"ResourceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithKind(value string) *ResourceClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithAPIVersion(value string) *ResourceClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithName(value string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithGenerateName(value string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithNamespace(value string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithUID(value types.UID) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithResourceVersion(value string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithGeneration(value int64) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClassApplyConfiguration) WithLabels(entries map[string]string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClassApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClassApplyConfiguration) WithFinalizers(values ...string) *ResourceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDriverName sets the DriverName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DriverName field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithDriverName(value string) *ResourceClassApplyConfiguration {\n\tb.DriverName = &value\n\treturn b\n}\n\n// WithParametersRef sets the ParametersRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParametersRef field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithParametersRef(value *ResourceClassParametersReferenceApplyConfiguration) *ResourceClassApplyConfiguration {\n\tb.ParametersRef = value\n\treturn b\n}\n\n// WithSuitableNodes sets the SuitableNodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuitableNodes field is set to the value of the last call.\nfunc (b *ResourceClassApplyConfiguration) WithSuitableNodes(value *corev1.NodeSelectorApplyConfiguration) *ResourceClassApplyConfiguration {\n\tb.SuitableNodes = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclassparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// ResourceClassParametersReferenceApplyConfiguration represents an declarative configuration of the ResourceClassParametersReference type for use\n// with apply.\ntype ResourceClassParametersReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// ResourceClassParametersReferenceApplyConfiguration constructs an declarative configuration of the ResourceClassParametersReference type for use with\n// apply.\nfunc ResourceClassParametersReference() *ResourceClassParametersReferenceApplyConfiguration {\n\treturn &ResourceClassParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *ResourceClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *ResourceClassParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClassParametersReferenceApplyConfiguration) WithKind(value string) *ResourceClassParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClassParametersReferenceApplyConfiguration) WithName(value string) *ResourceClassParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClassParametersReferenceApplyConfiguration) WithNamespace(value string) *ResourceClassParametersReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcehandle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// ResourceHandleApplyConfiguration represents an declarative configuration of the ResourceHandle type for use\n// with apply.\ntype ResourceHandleApplyConfiguration struct {\n\tDriverName *string `json:\"driverName,omitempty\"`\n\tData       *string `json:\"data,omitempty\"`\n}\n\n// ResourceHandleApplyConfiguration constructs an declarative configuration of the ResourceHandle type for use with\n// apply.\nfunc ResourceHandle() *ResourceHandleApplyConfiguration {\n\treturn &ResourceHandleApplyConfiguration{}\n}\n\n// WithDriverName sets the DriverName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DriverName field is set to the value of the last call.\nfunc (b *ResourceHandleApplyConfiguration) WithDriverName(value string) *ResourceHandleApplyConfiguration {\n\tb.DriverName = &value\n\treturn b\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ResourceHandleApplyConfiguration) WithData(value string) *ResourceHandleApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                            *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                    *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                      *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                 *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs an declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *schedulingv1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *schedulingv1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *schedulingv1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                            *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                    *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                      *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                 *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs an declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *v1alpha1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *v1alpha1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *v1alpha1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1alpha1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                            *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                    *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                      *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                 *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs an declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *v1beta1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *v1beta1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *v1beta1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1beta1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIDriverApplyConfiguration represents an declarative configuration of the CSIDriver type for use\n// with apply.\ntype CSIDriverApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSIDriverSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSIDriver constructs an declarative configuration of the CSIDriver type for use with\n// apply.\nfunc CSIDriver(name string) *CSIDriverApplyConfiguration {\n\tb := &CSIDriverApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSIDriver extracts the applied configuration owned by fieldManager from\n// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a\n// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API.\n// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIDriver(cSIDriver *apistoragev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"\")\n}\n\n// ExtractCSIDriverStatus is the same as ExtractCSIDriver except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIDriverStatus(cSIDriver *apistoragev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"status\")\n}\n\nfunc extractCSIDriver(cSIDriver *apistoragev1.CSIDriver, fieldManager string, subresource string) (*CSIDriverApplyConfiguration, error) {\n\tb := &CSIDriverApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIDriver, internal.Parser().Type(\"io.k8s.api.storage.v1.CSIDriver\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIDriver.Name)\n\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriverspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n)\n\n// CSIDriverSpecApplyConfiguration represents an declarative configuration of the CSIDriverSpec type for use\n// with apply.\ntype CSIDriverSpecApplyConfiguration struct {\n\tAttachRequired       *bool                            `json:\"attachRequired,omitempty\"`\n\tPodInfoOnMount       *bool                            `json:\"podInfoOnMount,omitempty\"`\n\tVolumeLifecycleModes []v1.VolumeLifecycleMode         `json:\"volumeLifecycleModes,omitempty\"`\n\tStorageCapacity      *bool                            `json:\"storageCapacity,omitempty\"`\n\tFSGroupPolicy        *v1.FSGroupPolicy                `json:\"fsGroupPolicy,omitempty\"`\n\tTokenRequests        []TokenRequestApplyConfiguration `json:\"tokenRequests,omitempty\"`\n\tRequiresRepublish    *bool                            `json:\"requiresRepublish,omitempty\"`\n\tSELinuxMount         *bool                            `json:\"seLinuxMount,omitempty\"`\n}\n\n// CSIDriverSpecApplyConfiguration constructs an declarative configuration of the CSIDriverSpec type for use with\n// apply.\nfunc CSIDriverSpec() *CSIDriverSpecApplyConfiguration {\n\treturn &CSIDriverSpecApplyConfiguration{}\n}\n\n// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachRequired field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.AttachRequired = &value\n\treturn b\n}\n\n// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodInfoOnMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.PodInfoOnMount = &value\n\treturn b\n}\n\n// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...v1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i])\n\t}\n\treturn b\n}\n\n// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageCapacity field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.StorageCapacity = &value\n\treturn b\n}\n\n// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupPolicy field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value v1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration {\n\tb.FSGroupPolicy = &value\n\treturn b\n}\n\n// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TokenRequests field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTokenRequests\")\n\t\t}\n\t\tb.TokenRequests = append(b.TokenRequests, *values[i])\n\t}\n\treturn b\n}\n\n// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiresRepublish field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.RequiresRepublish = &value\n\treturn b\n}\n\n// WithSELinuxMount sets the SELinuxMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithSELinuxMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.SELinuxMount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSINodeApplyConfiguration represents an declarative configuration of the CSINode type for use\n// with apply.\ntype CSINodeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSINodeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSINode constructs an declarative configuration of the CSINode type for use with\n// apply.\nfunc CSINode(name string) *CSINodeApplyConfiguration {\n\tb := &CSINodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSINode extracts the applied configuration owned by fieldManager from\n// cSINode. If no managedFields are found in cSINode for fieldManager, a\n// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API.\n// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSINode(cSINode *apistoragev1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"\")\n}\n\n// ExtractCSINodeStatus is the same as ExtractCSINode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSINodeStatus(cSINode *apistoragev1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"status\")\n}\n\nfunc extractCSINode(cSINode *apistoragev1.CSINode, fieldManager string, subresource string) (*CSINodeApplyConfiguration, error) {\n\tb := &CSINodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSINode, internal.Parser().Type(\"io.k8s.api.storage.v1.CSINode\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSINode.Name)\n\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodedriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSINodeDriverApplyConfiguration represents an declarative configuration of the CSINodeDriver type for use\n// with apply.\ntype CSINodeDriverApplyConfiguration struct {\n\tName         *string                                `json:\"name,omitempty\"`\n\tNodeID       *string                                `json:\"nodeID,omitempty\"`\n\tTopologyKeys []string                               `json:\"topologyKeys,omitempty\"`\n\tAllocatable  *VolumeNodeResourcesApplyConfiguration `json:\"allocatable,omitempty\"`\n}\n\n// CSINodeDriverApplyConfiguration constructs an declarative configuration of the CSINodeDriver type for use with\n// apply.\nfunc CSINodeDriver() *CSINodeDriverApplyConfiguration {\n\treturn &CSINodeDriverApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNodeID sets the NodeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeID field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration {\n\tb.NodeID = &value\n\treturn b\n}\n\n// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologyKeys field.\nfunc (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration {\n\tfor i := range values {\n\t\tb.TopologyKeys = append(b.TopologyKeys, values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration {\n\tb.Allocatable = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSINodeSpecApplyConfiguration represents an declarative configuration of the CSINodeSpec type for use\n// with apply.\ntype CSINodeSpecApplyConfiguration struct {\n\tDrivers []CSINodeDriverApplyConfiguration `json:\"drivers,omitempty\"`\n}\n\n// CSINodeSpecApplyConfiguration constructs an declarative configuration of the CSINodeSpec type for use with\n// apply.\nfunc CSINodeSpec() *CSINodeSpecApplyConfiguration {\n\treturn &CSINodeSpecApplyConfiguration{}\n}\n\n// WithDrivers adds the given value to the Drivers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drivers field.\nfunc (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDrivers\")\n\t\t}\n\t\tb.Drivers = append(b.Drivers, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents an declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                     *v1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                 *string                             `json:\"storageClassName,omitempty\"`\n\tCapacity                         *resource.Quantity                  `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                *resource.Quantity                  `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs an declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageClassApplyConfiguration represents an declarative configuration of the StorageClass type for use\n// with apply.\ntype StorageClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tProvisioner                      *string                                                            `json:\"provisioner,omitempty\"`\n\tParameters                       map[string]string                                                  `json:\"parameters,omitempty\"`\n\tReclaimPolicy                    *corev1.PersistentVolumeReclaimPolicy                              `json:\"reclaimPolicy,omitempty\"`\n\tMountOptions                     []string                                                           `json:\"mountOptions,omitempty\"`\n\tAllowVolumeExpansion             *bool                                                              `json:\"allowVolumeExpansion,omitempty\"`\n\tVolumeBindingMode                *storagev1.VolumeBindingMode                                       `json:\"volumeBindingMode,omitempty\"`\n\tAllowedTopologies                []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:\"allowedTopologies,omitempty\"`\n}\n\n// StorageClass constructs an declarative configuration of the StorageClass type for use with\n// apply.\nfunc StorageClass(name string) *StorageClassApplyConfiguration {\n\tb := &StorageClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractStorageClass extracts the applied configuration owned by fieldManager from\n// storageClass. If no managedFields are found in storageClass for fieldManager, a\n// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API.\n// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageClass(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"\")\n}\n\n// ExtractStorageClassStatus is the same as ExtractStorageClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageClassStatus(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"status\")\n}\n\nfunc extractStorageClass(storageClass *storagev1.StorageClass, fieldManager string, subresource string) (*StorageClassApplyConfiguration, error) {\n\tb := &StorageClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageClass, internal.Parser().Type(\"io.k8s.api.storage.v1.StorageClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageClass.Name)\n\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithProvisioner sets the Provisioner field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Provisioner field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration {\n\tb.Provisioner = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReclaimPolicy field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration {\n\tb.ReclaimPolicy = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration {\n\tb.AllowVolumeExpansion = &value\n\treturn b\n}\n\n// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeBindingMode field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value storagev1.VolumeBindingMode) *StorageClassApplyConfiguration {\n\tb.VolumeBindingMode = &value\n\treturn b\n}\n\n// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedTopologies field.\nfunc (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedTopologies\")\n\t\t}\n\t\tb.AllowedTopologies = append(b.AllowedTopologies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/tokenrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TokenRequestApplyConfiguration represents an declarative configuration of the TokenRequest type for use\n// with apply.\ntype TokenRequestApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n}\n\n// TokenRequestApplyConfiguration constructs an declarative configuration of the TokenRequest type for use with\n// apply.\nfunc TokenRequest() *TokenRequestApplyConfiguration {\n\treturn &TokenRequestApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *apistoragev1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *apistoragev1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *apistoragev1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                    `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *v1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *v1.Time `json:\"time,omitempty\"`\n\tMessage *string  `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumenoderesources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeNodeResourcesApplyConfiguration represents an declarative configuration of the VolumeNodeResources type for use\n// with apply.\ntype VolumeNodeResourcesApplyConfiguration struct {\n\tCount *int32 `json:\"count,omitempty\"`\n}\n\n// VolumeNodeResourcesApplyConfiguration constructs an declarative configuration of the VolumeNodeResources type for use with\n// apply.\nfunc VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration {\n\treturn &VolumeNodeResourcesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents an declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                     *v1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                 *string                             `json:\"storageClassName,omitempty\"`\n\tCapacity                         *resource.Quantity                  `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                *resource.Quantity                  `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs an declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *v1alpha1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *v1alpha1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *v1alpha1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1alpha1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1alpha1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                    `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *v1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *v1.Time `json:\"time,omitempty\"`\n\tMessage *string  `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIDriverApplyConfiguration represents an declarative configuration of the CSIDriver type for use\n// with apply.\ntype CSIDriverApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSIDriverSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSIDriver constructs an declarative configuration of the CSIDriver type for use with\n// apply.\nfunc CSIDriver(name string) *CSIDriverApplyConfiguration {\n\tb := &CSIDriverApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSIDriver extracts the applied configuration owned by fieldManager from\n// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a\n// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API.\n// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIDriver(cSIDriver *storagev1beta1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"\")\n}\n\n// ExtractCSIDriverStatus is the same as ExtractCSIDriver except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIDriverStatus(cSIDriver *storagev1beta1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"status\")\n}\n\nfunc extractCSIDriver(cSIDriver *storagev1beta1.CSIDriver, fieldManager string, subresource string) (*CSIDriverApplyConfiguration, error) {\n\tb := &CSIDriverApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIDriver, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSIDriver\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIDriver.Name)\n\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriverspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n)\n\n// CSIDriverSpecApplyConfiguration represents an declarative configuration of the CSIDriverSpec type for use\n// with apply.\ntype CSIDriverSpecApplyConfiguration struct {\n\tAttachRequired       *bool                            `json:\"attachRequired,omitempty\"`\n\tPodInfoOnMount       *bool                            `json:\"podInfoOnMount,omitempty\"`\n\tVolumeLifecycleModes []v1beta1.VolumeLifecycleMode    `json:\"volumeLifecycleModes,omitempty\"`\n\tStorageCapacity      *bool                            `json:\"storageCapacity,omitempty\"`\n\tFSGroupPolicy        *v1beta1.FSGroupPolicy           `json:\"fsGroupPolicy,omitempty\"`\n\tTokenRequests        []TokenRequestApplyConfiguration `json:\"tokenRequests,omitempty\"`\n\tRequiresRepublish    *bool                            `json:\"requiresRepublish,omitempty\"`\n\tSELinuxMount         *bool                            `json:\"seLinuxMount,omitempty\"`\n}\n\n// CSIDriverSpecApplyConfiguration constructs an declarative configuration of the CSIDriverSpec type for use with\n// apply.\nfunc CSIDriverSpec() *CSIDriverSpecApplyConfiguration {\n\treturn &CSIDriverSpecApplyConfiguration{}\n}\n\n// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachRequired field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.AttachRequired = &value\n\treturn b\n}\n\n// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodInfoOnMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.PodInfoOnMount = &value\n\treturn b\n}\n\n// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...v1beta1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i])\n\t}\n\treturn b\n}\n\n// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageCapacity field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.StorageCapacity = &value\n\treturn b\n}\n\n// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupPolicy field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value v1beta1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration {\n\tb.FSGroupPolicy = &value\n\treturn b\n}\n\n// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TokenRequests field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTokenRequests\")\n\t\t}\n\t\tb.TokenRequests = append(b.TokenRequests, *values[i])\n\t}\n\treturn b\n}\n\n// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiresRepublish field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.RequiresRepublish = &value\n\treturn b\n}\n\n// WithSELinuxMount sets the SELinuxMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithSELinuxMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.SELinuxMount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSINodeApplyConfiguration represents an declarative configuration of the CSINode type for use\n// with apply.\ntype CSINodeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSINodeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSINode constructs an declarative configuration of the CSINode type for use with\n// apply.\nfunc CSINode(name string) *CSINodeApplyConfiguration {\n\tb := &CSINodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSINode extracts the applied configuration owned by fieldManager from\n// cSINode. If no managedFields are found in cSINode for fieldManager, a\n// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API.\n// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSINode(cSINode *storagev1beta1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"\")\n}\n\n// ExtractCSINodeStatus is the same as ExtractCSINode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSINodeStatus(cSINode *storagev1beta1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"status\")\n}\n\nfunc extractCSINode(cSINode *storagev1beta1.CSINode, fieldManager string, subresource string) (*CSINodeApplyConfiguration, error) {\n\tb := &CSINodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSINode, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSINode\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSINode.Name)\n\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodedriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CSINodeDriverApplyConfiguration represents an declarative configuration of the CSINodeDriver type for use\n// with apply.\ntype CSINodeDriverApplyConfiguration struct {\n\tName         *string                                `json:\"name,omitempty\"`\n\tNodeID       *string                                `json:\"nodeID,omitempty\"`\n\tTopologyKeys []string                               `json:\"topologyKeys,omitempty\"`\n\tAllocatable  *VolumeNodeResourcesApplyConfiguration `json:\"allocatable,omitempty\"`\n}\n\n// CSINodeDriverApplyConfiguration constructs an declarative configuration of the CSINodeDriver type for use with\n// apply.\nfunc CSINodeDriver() *CSINodeDriverApplyConfiguration {\n\treturn &CSINodeDriverApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNodeID sets the NodeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeID field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration {\n\tb.NodeID = &value\n\treturn b\n}\n\n// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologyKeys field.\nfunc (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration {\n\tfor i := range values {\n\t\tb.TopologyKeys = append(b.TopologyKeys, values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration {\n\tb.Allocatable = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CSINodeSpecApplyConfiguration represents an declarative configuration of the CSINodeSpec type for use\n// with apply.\ntype CSINodeSpecApplyConfiguration struct {\n\tDrivers []CSINodeDriverApplyConfiguration `json:\"drivers,omitempty\"`\n}\n\n// CSINodeSpecApplyConfiguration constructs an declarative configuration of the CSINodeSpec type for use with\n// apply.\nfunc CSINodeSpec() *CSINodeSpecApplyConfiguration {\n\treturn &CSINodeSpecApplyConfiguration{}\n}\n\n// WithDrivers adds the given value to the Drivers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drivers field.\nfunc (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDrivers\")\n\t\t}\n\t\tb.Drivers = append(b.Drivers, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents an declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                     *v1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                 *string                             `json:\"storageClassName,omitempty\"`\n\tCapacity                         *resource.Quantity                  `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                *resource.Quantity                  `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs an declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *v1beta1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *v1beta1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *v1beta1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageClassApplyConfiguration represents an declarative configuration of the StorageClass type for use\n// with apply.\ntype StorageClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tProvisioner                      *string                                                            `json:\"provisioner,omitempty\"`\n\tParameters                       map[string]string                                                  `json:\"parameters,omitempty\"`\n\tReclaimPolicy                    *corev1.PersistentVolumeReclaimPolicy                              `json:\"reclaimPolicy,omitempty\"`\n\tMountOptions                     []string                                                           `json:\"mountOptions,omitempty\"`\n\tAllowVolumeExpansion             *bool                                                              `json:\"allowVolumeExpansion,omitempty\"`\n\tVolumeBindingMode                *v1beta1.VolumeBindingMode                                         `json:\"volumeBindingMode,omitempty\"`\n\tAllowedTopologies                []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:\"allowedTopologies,omitempty\"`\n}\n\n// StorageClass constructs an declarative configuration of the StorageClass type for use with\n// apply.\nfunc StorageClass(name string) *StorageClassApplyConfiguration {\n\tb := &StorageClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractStorageClass extracts the applied configuration owned by fieldManager from\n// storageClass. If no managedFields are found in storageClass for fieldManager, a\n// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API.\n// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageClass(storageClass *v1beta1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"\")\n}\n\n// ExtractStorageClassStatus is the same as ExtractStorageClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageClassStatus(storageClass *v1beta1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"status\")\n}\n\nfunc extractStorageClass(storageClass *v1beta1.StorageClass, fieldManager string, subresource string) (*StorageClassApplyConfiguration, error) {\n\tb := &StorageClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageClass, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.StorageClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageClass.Name)\n\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithProvisioner sets the Provisioner field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Provisioner field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration {\n\tb.Provisioner = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReclaimPolicy field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration {\n\tb.ReclaimPolicy = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration {\n\tb.AllowVolumeExpansion = &value\n\treturn b\n}\n\n// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeBindingMode field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value v1beta1.VolumeBindingMode) *StorageClassApplyConfiguration {\n\tb.VolumeBindingMode = &value\n\treturn b\n}\n\n// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedTopologies field.\nfunc (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedTopologies\")\n\t\t}\n\t\tb.AllowedTopologies = append(b.AllowedTopologies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/tokenrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// TokenRequestApplyConfiguration represents an declarative configuration of the TokenRequest type for use\n// with apply.\ntype TokenRequestApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n}\n\n// TokenRequestApplyConfiguration constructs an declarative configuration of the TokenRequest type for use with\n// apply.\nfunc TokenRequest() *TokenRequestApplyConfiguration {\n\treturn &TokenRequestApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                    `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *v1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *v1.Time `json:\"time,omitempty\"`\n\tMessage *string  `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumenoderesources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeNodeResourcesApplyConfiguration represents an declarative configuration of the VolumeNodeResources type for use\n// with apply.\ntype VolumeNodeResourcesApplyConfiguration struct {\n\tCount *int32 `json:\"count,omitempty\"`\n}\n\n// VolumeNodeResourcesApplyConfiguration constructs an declarative configuration of the VolumeNodeResources type for use with\n// apply.\nfunc VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration {\n\treturn &VolumeNodeResourcesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/aggregated_discovery.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"fmt\"\n\n\tapidiscovery \"k8s.io/api/apidiscovery/v2beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// StaleGroupVersionError encasulates failed GroupVersion marked \"stale\"\n// in the returned AggregatedDiscovery format.\ntype StaleGroupVersionError struct {\n\tgv schema.GroupVersion\n}\n\nfunc (s StaleGroupVersionError) Error() string {\n\treturn fmt.Sprintf(\"stale GroupVersion discovery: %v\", s.gv)\n}\n\n// SplitGroupsAndResources transforms \"aggregated\" discovery top-level structure into\n// the previous \"unaggregated\" discovery groups and resources.\nfunc SplitGroupsAndResources(aggregatedGroups apidiscovery.APIGroupDiscoveryList) (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Aggregated group list will contain the entirety of discovery, including\n\t// groups, versions, and resources. GroupVersions marked \"stale\" are failed.\n\tgroups := []*metav1.APIGroup{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tresourcesByGV := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfor _, aggGroup := range aggregatedGroups.Items {\n\t\tgroup, resources, failed := convertAPIGroup(aggGroup)\n\t\tgroups = append(groups, group)\n\t\tfor gv, resourceList := range resources {\n\t\t\tresourcesByGV[gv] = resourceList\n\t\t}\n\t\tfor gv, err := range failed {\n\t\t\tfailedGVs[gv] = err\n\t\t}\n\t}\n\t// Transform slice of groups to group list before returning.\n\tgroupList := &metav1.APIGroupList{}\n\tgroupList.Groups = make([]metav1.APIGroup, 0, len(groups))\n\tfor _, group := range groups {\n\t\tgroupList.Groups = append(groupList.Groups, *group)\n\t}\n\treturn groupList, resourcesByGV, failedGVs\n}\n\n// convertAPIGroup tranforms an \"aggregated\" APIGroupDiscovery to an \"legacy\" APIGroup,\n// also returning the map of APIResourceList for resources within GroupVersions.\nfunc convertAPIGroup(g apidiscovery.APIGroupDiscovery) (\n\t*metav1.APIGroup,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Iterate through versions to convert to group and resources.\n\tgroup := &metav1.APIGroup{}\n\tgvResources := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tgroup.Name = g.ObjectMeta.Name\n\tfor _, v := range g.Versions {\n\t\tgv := schema.GroupVersion{Group: g.Name, Version: v.Version}\n\t\tif v.Freshness == apidiscovery.DiscoveryFreshnessStale {\n\t\t\tfailedGVs[gv] = StaleGroupVersionError{gv: gv}\n\t\t\tcontinue\n\t\t}\n\t\tversion := metav1.GroupVersionForDiscovery{}\n\t\tversion.GroupVersion = gv.String()\n\t\tversion.Version = v.Version\n\t\tgroup.Versions = append(group.Versions, version)\n\t\t// PreferredVersion is first non-stale Version\n\t\tif group.PreferredVersion == (metav1.GroupVersionForDiscovery{}) {\n\t\t\tgroup.PreferredVersion = version\n\t\t}\n\t\tresourceList := &metav1.APIResourceList{}\n\t\tresourceList.GroupVersion = gv.String()\n\t\tfor _, r := range v.Resources {\n\t\t\tresource, err := convertAPIResource(r)\n\t\t\tif err == nil {\n\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, resource)\n\t\t\t}\n\t\t\t// Subresources field in new format get transformed into full APIResources.\n\t\t\t// It is possible a partial result with an error was returned to be used\n\t\t\t// as the parent resource for the subresource.\n\t\t\tfor _, subresource := range r.Subresources {\n\t\t\t\tsr, err := convertAPISubresource(resource, subresource)\n\t\t\t\tif err == nil {\n\t\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, sr)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tgvResources[gv] = resourceList\n\t}\n\treturn group, gvResources, failedGVs\n}\n\n// convertAPIResource tranforms a APIResourceDiscovery to an APIResource. We are\n// resilient to missing GVK, since this resource might be the parent resource\n// for a subresource. If the parent is missing a GVK, it is not returned in\n// discovery, and the subresource MUST have the GVK.\nfunc convertAPIResource(in apidiscovery.APIResourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{\n\t\tName:         in.Resource,\n\t\tSingularName: in.SingularResource,\n\t\tNamespaced:   in.Scope == apidiscovery.ScopeNamespace,\n\t\tVerbs:        in.Verbs,\n\t\tShortNames:   in.ShortNames,\n\t\tCategories:   in.Categories,\n\t}\n\tvar err error\n\tif in.ResponseKind != nil {\n\t\tresult.Group = in.ResponseKind.Group\n\t\tresult.Version = in.ResponseKind.Version\n\t\tresult.Kind = in.ResponseKind.Kind\n\t} else {\n\t\terr = fmt.Errorf(\"discovery resource %s missing GVK\", in.Resource)\n\t}\n\t// Can return partial result with error, which can be the parent for a\n\t// subresource. Do not add this result to the returned discovery resources.\n\treturn result, err\n}\n\n// convertAPISubresource tranforms a APISubresourceDiscovery to an APIResource.\nfunc convertAPISubresource(parent metav1.APIResource, in apidiscovery.APISubresourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{}\n\tif in.ResponseKind == nil {\n\t\treturn result, fmt.Errorf(\"subresource %s/%s missing GVK\", parent.Name, in.Subresource)\n\t}\n\tresult.Name = fmt.Sprintf(\"%s/%s\", parent.Name, in.Subresource)\n\tresult.SingularName = parent.SingularName\n\tresult.Namespaced = parent.Namespaced\n\tresult.Group = in.ResponseKind.Group\n\tresult.Version = in.ResponseKind.Version\n\tresult.Kind = in.ResponseKind.Kind\n\tresult.Verbs = in.Verbs\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/discovery_client.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t//nolint:staticcheck // SA1019 Keep using module since it's still being maintained and the api of google.golang.org/protobuf/proto differs\n\t\"github.com/golang/protobuf/proto\"\n\topenapi_v2 \"github.com/google/gnostic/openapiv2\"\n\n\tapidiscovery \"k8s.io/api/apidiscovery/v2beta1\"\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/version\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\t\"k8s.io/client-go/openapi\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\nconst (\n\t// defaultRetries is the number of times a resource discovery is repeated if an api group disappears on the fly (e.g. CustomResourceDefinitions).\n\tdefaultRetries = 2\n\t// protobuf mime type\n\topenAPIV2mimePb = \"application/com.github.proto-openapi.spec.v2@v1.0+protobuf\"\n\n\t// defaultTimeout is the maximum amount of time per request when no timeout has been set on a RESTClient.\n\t// Defaults to 32s in order to have a distinguishable length of time, relative to other timeouts that exist.\n\tdefaultTimeout = 32 * time.Second\n\n\t// defaultBurst is the default burst to be used with the discovery client's token bucket rate limiter\n\tdefaultBurst = 300\n\n\tAcceptV1 = runtime.ContentTypeJSON\n\t// Aggregated discovery content-type (v2beta1). NOTE: content-type parameters\n\t// MUST be ordered (g, v, as) for server in \"Accept\" header (BUT we are resilient\n\t// to ordering when comparing returned values in \"Content-Type\" header).\n\tAcceptV2Beta1 = runtime.ContentTypeJSON + \";\" + \"g=apidiscovery.k8s.io;v=v2beta1;as=APIGroupDiscoveryList\"\n\t// Prioritize aggregated discovery by placing first in the order of discovery accept types.\n\tacceptDiscoveryFormats = AcceptV2Beta1 + \",\" + AcceptV1\n)\n\n// DiscoveryInterface holds the methods that discover server-supported API groups,\n// versions and resources.\ntype DiscoveryInterface interface {\n\tRESTClient() restclient.Interface\n\tServerGroupsInterface\n\tServerResourcesInterface\n\tServerVersionInterface\n\tOpenAPISchemaInterface\n\tOpenAPIV3SchemaInterface\n\t// Returns copy of current discovery client that will only\n\t// receive the legacy discovery format, or pointer to current\n\t// discovery client if it does not support legacy-only discovery.\n\tWithLegacy() DiscoveryInterface\n}\n\n// AggregatedDiscoveryInterface extends DiscoveryInterface to include a method to possibly\n// return discovery resources along with the discovery groups, which is what the newer\n// aggregated discovery format does (APIGroupDiscoveryList).\ntype AggregatedDiscoveryInterface interface {\n\tDiscoveryInterface\n\n\tGroupsAndMaybeResources() (*metav1.APIGroupList, map[schema.GroupVersion]*metav1.APIResourceList, map[schema.GroupVersion]error, error)\n}\n\n// CachedDiscoveryInterface is a DiscoveryInterface with cache invalidation and freshness.\n// Note that If the ServerResourcesForGroupVersion method returns a cache miss\n// error, the user needs to explicitly call Invalidate to clear the cache,\n// otherwise the same cache miss error will be returned next time.\ntype CachedDiscoveryInterface interface {\n\tDiscoveryInterface\n\t// Fresh is supposed to tell the caller whether or not to retry if the cache\n\t// fails to find something (false = retry, true = no need to retry).\n\t//\n\t// TODO: this needs to be revisited, this interface can't be locked properly\n\t// and doesn't make a lot of sense.\n\tFresh() bool\n\t// Invalidate enforces that no cached data that is older than the current time\n\t// is used.\n\tInvalidate()\n}\n\n// ServerGroupsInterface has methods for obtaining supported groups on the API server\ntype ServerGroupsInterface interface {\n\t// ServerGroups returns the supported groups, with information like supported versions and the\n\t// preferred version.\n\tServerGroups() (*metav1.APIGroupList, error)\n}\n\n// ServerResourcesInterface has methods for obtaining supported resources on the API server\ntype ServerResourcesInterface interface {\n\t// ServerResourcesForGroupVersion returns the supported resources for a group and version.\n\tServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error)\n\t// ServerGroupsAndResources returns the supported groups and resources for all groups and versions.\n\t//\n\t// The returned group and resource lists might be non-nil with partial results even in the\n\t// case of non-nil error.\n\tServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error)\n\t// ServerPreferredResources returns the supported resources with the version preferred by the\n\t// server.\n\t//\n\t// The returned group and resource lists might be non-nil with partial results even in the\n\t// case of non-nil error.\n\tServerPreferredResources() ([]*metav1.APIResourceList, error)\n\t// ServerPreferredNamespacedResources returns the supported namespaced resources with the\n\t// version preferred by the server.\n\t//\n\t// The returned resource list might be non-nil with partial results even in the case of\n\t// non-nil error.\n\tServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error)\n}\n\n// ServerVersionInterface has a method for retrieving the server's version.\ntype ServerVersionInterface interface {\n\t// ServerVersion retrieves and parses the server's version (git version).\n\tServerVersion() (*version.Info, error)\n}\n\n// OpenAPISchemaInterface has a method to retrieve the open API schema.\ntype OpenAPISchemaInterface interface {\n\t// OpenAPISchema retrieves and parses the swagger API schema the server supports.\n\tOpenAPISchema() (*openapi_v2.Document, error)\n}\n\ntype OpenAPIV3SchemaInterface interface {\n\tOpenAPIV3() openapi.Client\n}\n\n// DiscoveryClient implements the functions that discover server-supported API groups,\n// versions and resources.\ntype DiscoveryClient struct {\n\trestClient restclient.Interface\n\n\tLegacyPrefix string\n\t// Forces the client to request only \"unaggregated\" (legacy) discovery.\n\tUseLegacyDiscovery bool\n}\n\nvar _ AggregatedDiscoveryInterface = &DiscoveryClient{}\n\n// Convert metav1.APIVersions to metav1.APIGroup. APIVersions is used by legacy v1, so\n// group would be \"\".\nfunc apiVersionsToAPIGroup(apiVersions *metav1.APIVersions) (apiGroup metav1.APIGroup) {\n\tgroupVersions := []metav1.GroupVersionForDiscovery{}\n\tfor _, version := range apiVersions.Versions {\n\t\tgroupVersion := metav1.GroupVersionForDiscovery{\n\t\t\tGroupVersion: version,\n\t\t\tVersion:      version,\n\t\t}\n\t\tgroupVersions = append(groupVersions, groupVersion)\n\t}\n\tapiGroup.Versions = groupVersions\n\t// There should be only one groupVersion returned at /api\n\tapiGroup.PreferredVersion = groupVersions[0]\n\treturn\n}\n\n// GroupsAndMaybeResources returns the discovery groups, and (if new aggregated\n// discovery format) the resources keyed by group/version. Merges discovery groups\n// and resources from /api and /apis (either aggregated or not). Legacy groups\n// must be ordered first. The server will either return both endpoints (/api, /apis)\n// as aggregated discovery format or legacy format. For safety, resources will only\n// be returned if both endpoints returned resources. Returned \"failedGVs\" can be\n// empty, but will only be nil in the case an error is returned.\nfunc (d *DiscoveryClient) GroupsAndMaybeResources() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\t// Legacy group ordered first (there is only one -- core/v1 group). Returned groups must\n\t// be non-nil, but it could be empty. Returned resources, apiResources map could be nil.\n\tgroups, resources, failedGVs, err := d.downloadLegacy()\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\t// Discovery groups and (possibly) resources downloaded from /apis.\n\tapiGroups, apiResources, failedApisGVs, aerr := d.downloadAPIs()\n\tif aerr != nil {\n\t\treturn nil, nil, nil, aerr\n\t}\n\t// Merge apis groups into the legacy groups.\n\tfor _, group := range apiGroups.Groups {\n\t\tgroups.Groups = append(groups.Groups, group)\n\t}\n\t// For safety, only return resources if both endpoints returned resources.\n\tif resources != nil && apiResources != nil {\n\t\tfor gv, resourceList := range apiResources {\n\t\t\tresources[gv] = resourceList\n\t\t}\n\t} else if resources != nil {\n\t\tresources = nil\n\t}\n\t// Merge failed GroupVersions from /api and /apis\n\tfor gv, err := range failedApisGVs {\n\t\tfailedGVs[gv] = err\n\t}\n\treturn groups, resources, failedGVs, err\n}\n\n// downloadLegacy returns the discovery groups and possibly resources\n// for the legacy v1 GVR at /api, or an error if one occurred. It is\n// possible for the resource map to be nil if the server returned\n// the unaggregated discovery. Returned \"failedGVs\" can be empty, but\n// will only be nil in the case of a returned error.\nfunc (d *DiscoveryClient) downloadLegacy() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\taccept := acceptDiscoveryFormats\n\tif d.UseLegacyDiscovery {\n\t\taccept = AcceptV1\n\t}\n\tvar responseContentType string\n\tbody, err := d.restClient.Get().\n\t\tAbsPath(\"/api\").\n\t\tSetHeader(\"Accept\", accept).\n\t\tDo(context.TODO()).\n\t\tContentType(&responseContentType).\n\t\tRaw()\n\tapiGroupList := &metav1.APIGroupList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tif err != nil {\n\t\t// Tolerate 404, since aggregated api servers can return it.\n\t\tif errors.IsNotFound(err) {\n\t\t\t// Return empty structures and no error.\n\t\t\temptyGVMap := map[schema.GroupVersion]*metav1.APIResourceList{}\n\t\t\treturn apiGroupList, emptyGVMap, failedGVs, nil\n\t\t} else {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t}\n\n\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t// Switch on content-type server responded with: aggregated or unaggregated.\n\tswitch {\n\tcase isV2Beta1ContentType(responseContentType):\n\t\tvar aggregatedDiscovery apidiscovery.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResources(aggregatedDiscovery)\n\tdefault:\n\t\t// Default is unaggregated discovery v1.\n\t\tvar v metav1.APIVersions\n\t\terr = json.Unmarshal(body, &v)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroup := metav1.APIGroup{}\n\t\tif len(v.Versions) != 0 {\n\t\t\tapiGroup = apiVersionsToAPIGroup(&v)\n\t\t}\n\t\tapiGroupList.Groups = []metav1.APIGroup{apiGroup}\n\t}\n\n\treturn apiGroupList, resourcesByGV, failedGVs, nil\n}\n\n// downloadAPIs returns the discovery groups and (if aggregated format) the\n// discovery resources. The returned groups will always exist, but the\n// resources map may be nil. Returned \"failedGVs\" can be empty, but will\n// only be nil in the case of a returned error.\nfunc (d *DiscoveryClient) downloadAPIs() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\taccept := acceptDiscoveryFormats\n\tif d.UseLegacyDiscovery {\n\t\taccept = AcceptV1\n\t}\n\tvar responseContentType string\n\tbody, err := d.restClient.Get().\n\t\tAbsPath(\"/apis\").\n\t\tSetHeader(\"Accept\", accept).\n\t\tDo(context.TODO()).\n\t\tContentType(&responseContentType).\n\t\tRaw()\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\n\tapiGroupList := &metav1.APIGroupList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t// Switch on content-type server responded with: aggregated or unaggregated.\n\tswitch {\n\tcase isV2Beta1ContentType(responseContentType):\n\t\tvar aggregatedDiscovery apidiscovery.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResources(aggregatedDiscovery)\n\tdefault:\n\t\t// Default is unaggregated discovery v1.\n\t\terr = json.Unmarshal(body, apiGroupList)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t}\n\n\treturn apiGroupList, resourcesByGV, failedGVs, nil\n}\n\n// isV2Beta1ContentType checks of the content-type string is both\n// \"application/json\" and contains the v2beta1 content-type params.\n// NOTE: This function is resilient to the ordering of the\n// content-type parameters, as well as parameters added by\n// intermediaries such as proxies or gateways. Examples:\n//\n//\t\"application/json; g=apidiscovery.k8s.io;v=v2beta1;as=APIGroupDiscoveryList\" = true\n//\t\"application/json; as=APIGroupDiscoveryList;v=v2beta1;g=apidiscovery.k8s.io\" = true\n//\t\"application/json; as=APIGroupDiscoveryList;v=v2beta1;g=apidiscovery.k8s.io;charset=utf-8\" = true\n//\t\"application/json\" = false\n//\t\"application/json; charset=UTF-8\" = false\nfunc isV2Beta1ContentType(contentType string) bool {\n\tbase, params, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn runtime.ContentTypeJSON == base &&\n\t\tparams[\"g\"] == \"apidiscovery.k8s.io\" &&\n\t\tparams[\"v\"] == \"v2beta1\" &&\n\t\tparams[\"as\"] == \"APIGroupDiscoveryList\"\n}\n\n// ServerGroups returns the supported groups, with information like supported versions and the\n// preferred version.\nfunc (d *DiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) {\n\tgroups, _, _, err := d.GroupsAndMaybeResources()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn groups, nil\n}\n\n// ServerResourcesForGroupVersion returns the supported resources for a group and version.\nfunc (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *metav1.APIResourceList, err error) {\n\turl := url.URL{}\n\tif len(groupVersion) == 0 {\n\t\treturn nil, fmt.Errorf(\"groupVersion shouldn't be empty\")\n\t}\n\tif len(d.LegacyPrefix) > 0 && groupVersion == \"v1\" {\n\t\turl.Path = d.LegacyPrefix + \"/\" + groupVersion\n\t} else {\n\t\turl.Path = \"/apis/\" + groupVersion\n\t}\n\tresources = &metav1.APIResourceList{\n\t\tGroupVersion: groupVersion,\n\t}\n\terr = d.restClient.Get().AbsPath(url.String()).Do(context.TODO()).Into(resources)\n\tif err != nil {\n\t\t// Tolerate core/v1 not found response by returning empty resource list;\n\t\t// this probably should not happen. But we should verify all callers are\n\t\t// not depending on this toleration before removal.\n\t\tif groupVersion == \"v1\" && errors.IsNotFound(err) {\n\t\t\treturn resources, nil\n\t\t}\n\t\treturn nil, err\n\t}\n\treturn resources, nil\n}\n\n// ServerGroupsAndResources returns the supported resources for all groups and versions.\nfunc (d *DiscoveryClient) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\treturn withRetries(defaultRetries, func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\t\treturn ServerGroupsAndResources(d)\n\t})\n}\n\n// ErrGroupDiscoveryFailed is returned if one or more API groups fail to load.\ntype ErrGroupDiscoveryFailed struct {\n\t// Groups is a list of the groups that failed to load and the error cause\n\tGroups map[schema.GroupVersion]error\n}\n\n// Error implements the error interface\nfunc (e *ErrGroupDiscoveryFailed) Error() string {\n\tvar groups []string\n\tfor k, v := range e.Groups {\n\t\tgroups = append(groups, fmt.Sprintf(\"%s: %v\", k, v))\n\t}\n\tsort.Strings(groups)\n\treturn fmt.Sprintf(\"unable to retrieve the complete list of server APIs: %s\", strings.Join(groups, \", \"))\n}\n\n// IsGroupDiscoveryFailedError returns true if the provided error indicates the server was unable to discover\n// a complete list of APIs for the client to use.\nfunc IsGroupDiscoveryFailedError(err error) bool {\n\t_, ok := err.(*ErrGroupDiscoveryFailed)\n\treturn err != nil && ok\n}\n\nfunc ServerGroupsAndResources(d DiscoveryInterface) ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tvar sgs *metav1.APIGroupList\n\tvar resources []*metav1.APIResourceList\n\tvar failedGVs map[schema.GroupVersion]error\n\tvar err error\n\n\t// If the passed discovery object implements the wider AggregatedDiscoveryInterface,\n\t// then attempt to retrieve aggregated discovery with both groups and the resources.\n\tif ad, ok := d.(AggregatedDiscoveryInterface); ok {\n\t\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t\tsgs, resourcesByGV, failedGVs, err = ad.GroupsAndMaybeResources()\n\t\tfor _, resourceList := range resourcesByGV {\n\t\t\tresources = append(resources, resourceList)\n\t\t}\n\t} else {\n\t\tsgs, err = d.ServerGroups()\n\t}\n\n\tif sgs == nil {\n\t\treturn nil, nil, err\n\t}\n\tresultGroups := []*metav1.APIGroup{}\n\tfor i := range sgs.Groups {\n\t\tresultGroups = append(resultGroups, &sgs.Groups[i])\n\t}\n\t// resources is non-nil if aggregated discovery succeeded.\n\tif resources != nil {\n\t\t// Any stale Group/Versions returned by aggregated discovery\n\t\t// must be surfaced to the caller as failed Group/Versions.\n\t\tvar ferr error\n\t\tif len(failedGVs) > 0 {\n\t\t\tferr = &ErrGroupDiscoveryFailed{Groups: failedGVs}\n\t\t}\n\t\treturn resultGroups, resources, ferr\n\t}\n\n\tgroupVersionResources, failedGroups := fetchGroupVersionResources(d, sgs)\n\n\t// order results by group/version discovery order\n\tresult := []*metav1.APIResourceList{}\n\tfor _, apiGroup := range sgs.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgv := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\t\t\tif resources, ok := groupVersionResources[gv]; ok {\n\t\t\t\tresult = append(result, resources)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(failedGroups) == 0 {\n\t\treturn resultGroups, result, nil\n\t}\n\n\treturn resultGroups, result, &ErrGroupDiscoveryFailed{Groups: failedGroups}\n}\n\n// ServerPreferredResources uses the provided discovery interface to look up preferred resources\nfunc ServerPreferredResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) {\n\tvar serverGroupList *metav1.APIGroupList\n\tvar failedGroups map[schema.GroupVersion]error\n\tvar groupVersionResources map[schema.GroupVersion]*metav1.APIResourceList\n\tvar err error\n\n\t// If the passed discovery object implements the wider AggregatedDiscoveryInterface,\n\t// then it is attempt to retrieve both the groups and the resources. \"failedGroups\"\n\t// are Group/Versions returned as stale in AggregatedDiscovery format.\n\tad, ok := d.(AggregatedDiscoveryInterface)\n\tif ok {\n\t\tserverGroupList, groupVersionResources, failedGroups, err = ad.GroupsAndMaybeResources()\n\t} else {\n\t\tserverGroupList, err = d.ServerGroups()\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Non-aggregated discovery must fetch resources from Groups.\n\tif groupVersionResources == nil {\n\t\tgroupVersionResources, failedGroups = fetchGroupVersionResources(d, serverGroupList)\n\t}\n\n\tresult := []*metav1.APIResourceList{}\n\tgrVersions := map[schema.GroupResource]string{}                         // selected version of a GroupResource\n\tgrAPIResources := map[schema.GroupResource]*metav1.APIResource{}        // selected APIResource for a GroupResource\n\tgvAPIResourceLists := map[schema.GroupVersion]*metav1.APIResourceList{} // blueprint for a APIResourceList for later grouping\n\n\tfor _, apiGroup := range serverGroupList.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgroupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\n\t\t\tapiResourceList, ok := groupVersionResources[groupVersion]\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// create empty list which is filled later in another loop\n\t\t\temptyAPIResourceList := metav1.APIResourceList{\n\t\t\t\tGroupVersion: version.GroupVersion,\n\t\t\t}\n\t\t\tgvAPIResourceLists[groupVersion] = &emptyAPIResourceList\n\t\t\tresult = append(result, &emptyAPIResourceList)\n\n\t\t\tfor i := range apiResourceList.APIResources {\n\t\t\t\tapiResource := &apiResourceList.APIResources[i]\n\t\t\t\tif strings.Contains(apiResource.Name, \"/\") {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tgv := schema.GroupResource{Group: apiGroup.Name, Resource: apiResource.Name}\n\t\t\t\tif _, ok := grAPIResources[gv]; ok && version.Version != apiGroup.PreferredVersion.Version {\n\t\t\t\t\t// only override with preferred version\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tgrVersions[gv] = version.Version\n\t\t\t\tgrAPIResources[gv] = apiResource\n\t\t\t}\n\t\t}\n\t}\n\n\t// group selected APIResources according to GroupVersion into APIResourceLists\n\tfor groupResource, apiResource := range grAPIResources {\n\t\tversion := grVersions[groupResource]\n\t\tgroupVersion := schema.GroupVersion{Group: groupResource.Group, Version: version}\n\t\tapiResourceList := gvAPIResourceLists[groupVersion]\n\t\tapiResourceList.APIResources = append(apiResourceList.APIResources, *apiResource)\n\t}\n\n\tif len(failedGroups) == 0 {\n\t\treturn result, nil\n\t}\n\n\treturn result, &ErrGroupDiscoveryFailed{Groups: failedGroups}\n}\n\n// fetchServerResourcesForGroupVersions uses the discovery client to fetch the resources for the specified groups in parallel.\nfunc fetchGroupVersionResources(d DiscoveryInterface, apiGroups *metav1.APIGroupList) (map[schema.GroupVersion]*metav1.APIResourceList, map[schema.GroupVersion]error) {\n\tgroupVersionResources := make(map[schema.GroupVersion]*metav1.APIResourceList)\n\tfailedGroups := make(map[schema.GroupVersion]error)\n\n\twg := &sync.WaitGroup{}\n\tresultLock := &sync.Mutex{}\n\tfor _, apiGroup := range apiGroups.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgroupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\t\t\twg.Add(1)\n\t\t\tgo func() {\n\t\t\t\tdefer wg.Done()\n\t\t\t\tdefer utilruntime.HandleCrash()\n\n\t\t\t\tapiResourceList, err := d.ServerResourcesForGroupVersion(groupVersion.String())\n\n\t\t\t\t// lock to record results\n\t\t\t\tresultLock.Lock()\n\t\t\t\tdefer resultLock.Unlock()\n\n\t\t\t\tif err != nil {\n\t\t\t\t\t// TODO: maybe restrict this to NotFound errors\n\t\t\t\t\tfailedGroups[groupVersion] = err\n\t\t\t\t}\n\t\t\t\tif apiResourceList != nil {\n\t\t\t\t\t// even in case of error, some fallback might have been returned\n\t\t\t\t\tgroupVersionResources[groupVersion] = apiResourceList\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\t}\n\twg.Wait()\n\n\treturn groupVersionResources, failedGroups\n}\n\n// ServerPreferredResources returns the supported resources with the version preferred by the\n// server.\nfunc (d *DiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) {\n\t_, rs, err := withRetries(defaultRetries, func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\t\trs, err := ServerPreferredResources(d)\n\t\treturn nil, rs, err\n\t})\n\treturn rs, err\n}\n\n// ServerPreferredNamespacedResources returns the supported namespaced resources with the\n// version preferred by the server.\nfunc (d *DiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) {\n\treturn ServerPreferredNamespacedResources(d)\n}\n\n// ServerPreferredNamespacedResources uses the provided discovery interface to look up preferred namespaced resources\nfunc ServerPreferredNamespacedResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) {\n\tall, err := ServerPreferredResources(d)\n\treturn FilteredBy(ResourcePredicateFunc(func(groupVersion string, r *metav1.APIResource) bool {\n\t\treturn r.Namespaced\n\t}), all), err\n}\n\n// ServerVersion retrieves and parses the server's version (git version).\nfunc (d *DiscoveryClient) ServerVersion() (*version.Info, error) {\n\tbody, err := d.restClient.Get().AbsPath(\"/version\").Do(context.TODO()).Raw()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar info version.Info\n\terr = json.Unmarshal(body, &info)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse the server version: %v\", err)\n\t}\n\treturn &info, nil\n}\n\n// OpenAPISchema fetches the open api v2 schema using a rest client and parses the proto.\nfunc (d *DiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) {\n\tdata, err := d.restClient.Get().AbsPath(\"/openapi/v2\").SetHeader(\"Accept\", openAPIV2mimePb).Do(context.TODO()).Raw()\n\tif err != nil {\n\t\tif errors.IsForbidden(err) || errors.IsNotFound(err) || errors.IsNotAcceptable(err) {\n\t\t\t// single endpoint not found/registered in old server, try to fetch old endpoint\n\t\t\t// TODO: remove this when kubectl/client-go don't work with 1.9 server\n\t\t\tdata, err = d.restClient.Get().AbsPath(\"/swagger-2.0.0.pb-v1\").Do(context.TODO()).Raw()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tdocument := &openapi_v2.Document{}\n\terr = proto.Unmarshal(data, document)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn document, nil\n}\n\nfunc (d *DiscoveryClient) OpenAPIV3() openapi.Client {\n\treturn openapi.NewClient(d.restClient)\n}\n\n// WithLegacy returns copy of current discovery client that will only\n// receive the legacy discovery format.\nfunc (d *DiscoveryClient) WithLegacy() DiscoveryInterface {\n\tclient := *d\n\tclient.UseLegacyDiscovery = true\n\treturn &client\n}\n\n// withRetries retries the given recovery function in case the groups supported by the server change after ServerGroup() returns.\nfunc withRetries(maxRetries int, f func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error)) ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tvar result []*metav1.APIResourceList\n\tvar resultGroups []*metav1.APIGroup\n\tvar err error\n\tfor i := 0; i < maxRetries; i++ {\n\t\tresultGroups, result, err = f()\n\t\tif err == nil {\n\t\t\treturn resultGroups, result, nil\n\t\t}\n\t\tif _, ok := err.(*ErrGroupDiscoveryFailed); !ok {\n\t\t\treturn nil, nil, err\n\t\t}\n\t}\n\treturn resultGroups, result, err\n}\n\nfunc setDiscoveryDefaults(config *restclient.Config) error {\n\tconfig.APIPath = \"\"\n\tconfig.GroupVersion = nil\n\tif config.Timeout == 0 {\n\t\tconfig.Timeout = defaultTimeout\n\t}\n\t// if a burst limit is not already configured\n\tif config.Burst == 0 {\n\t\t// discovery is expected to be bursty, increase the default burst\n\t\t// to accommodate looking up resource info for many API groups.\n\t\t// matches burst set by ConfigFlags#ToDiscoveryClient().\n\t\t// see https://issue.k8s.io/86149\n\t\tconfig.Burst = defaultBurst\n\t}\n\tcodec := runtime.NoopEncoder{Decoder: scheme.Codecs.UniversalDecoder()}\n\tconfig.NegotiatedSerializer = serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: codec})\n\tif len(config.UserAgent) == 0 {\n\t\tconfig.UserAgent = restclient.DefaultKubernetesUserAgent()\n\t}\n\treturn nil\n}\n\n// NewDiscoveryClientForConfig creates a new DiscoveryClient for the given config. This client\n// can be used to discover supported resources in the API server.\n// NewDiscoveryClientForConfig is equivalent to NewDiscoveryClientForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewDiscoveryClientForConfig(c *restclient.Config) (*DiscoveryClient, error) {\n\tconfig := *c\n\tif err := setDiscoveryDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := restclient.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewDiscoveryClientForConfigAndClient(&config, httpClient)\n}\n\n// NewDiscoveryClientForConfigAndClient creates a new DiscoveryClient for the given config. This client\n// can be used to discover supported resources in the API server.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewDiscoveryClientForConfigAndClient(c *restclient.Config, httpClient *http.Client) (*DiscoveryClient, error) {\n\tconfig := *c\n\tif err := setDiscoveryDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := restclient.UnversionedRESTClientForConfigAndClient(&config, httpClient)\n\treturn &DiscoveryClient{restClient: client, LegacyPrefix: \"/api\", UseLegacyDiscovery: false}, err\n}\n\n// NewDiscoveryClientForConfigOrDie creates a new DiscoveryClient for the given config. If\n// there is an error, it panics.\nfunc NewDiscoveryClientForConfigOrDie(c *restclient.Config) *DiscoveryClient {\n\tclient, err := NewDiscoveryClientForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n\n}\n\n// NewDiscoveryClient returns a new DiscoveryClient for the given RESTClient.\nfunc NewDiscoveryClient(c restclient.Interface) *DiscoveryClient {\n\treturn &DiscoveryClient{restClient: c, LegacyPrefix: \"/api\", UseLegacyDiscovery: false}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (d *DiscoveryClient) RESTClient() restclient.Interface {\n\tif d == nil {\n\t\treturn nil\n\t}\n\treturn d.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package discovery provides ways to discover server-supported\n// API groups, versions and resources.\npackage discovery // import \"k8s.io/client-go/discovery\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/fake/discovery.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\n\topenapi_v2 \"github.com/google/gnostic/openapiv2\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/version\"\n\t\"k8s.io/client-go/discovery\"\n\t\"k8s.io/client-go/openapi\"\n\tkubeversion \"k8s.io/client-go/pkg/version\"\n\trestclient \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/testing\"\n)\n\n// FakeDiscovery implements discovery.DiscoveryInterface and sometimes calls testing.Fake.Invoke with an action,\n// but doesn't respect the return value if any. There is a way to fake static values like ServerVersion by using the Faked... fields on the struct.\ntype FakeDiscovery struct {\n\t*testing.Fake\n\tFakedServerVersion *version.Info\n}\n\n// ServerResourcesForGroupVersion returns the supported resources for a group\n// and version.\nfunc (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) {\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"resource\"},\n\t}\n\tc.Invokes(action, nil)\n\tfor _, resourceList := range c.Resources {\n\t\tif resourceList.GroupVersion == groupVersion {\n\t\t\treturn resourceList, nil\n\t\t}\n\t}\n\treturn nil, &errors.StatusError{\n\t\tErrStatus: metav1.Status{\n\t\t\tStatus:  metav1.StatusFailure,\n\t\t\tCode:    http.StatusNotFound,\n\t\t\tReason:  metav1.StatusReasonNotFound,\n\t\t\tMessage: fmt.Sprintf(\"the server could not find the requested resource, GroupVersion %q not found\", groupVersion),\n\t\t}}\n}\n\n// ServerGroupsAndResources returns the supported groups and resources for all groups and versions.\nfunc (c *FakeDiscovery) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tsgs, err := c.ServerGroups()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tresultGroups := []*metav1.APIGroup{}\n\tfor i := range sgs.Groups {\n\t\tresultGroups = append(resultGroups, &sgs.Groups[i])\n\t}\n\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"resource\"},\n\t}\n\tc.Invokes(action, nil)\n\treturn resultGroups, c.Resources, nil\n}\n\n// ServerPreferredResources returns the supported resources with the version\n// preferred by the server.\nfunc (c *FakeDiscovery) ServerPreferredResources() ([]*metav1.APIResourceList, error) {\n\treturn nil, nil\n}\n\n// ServerPreferredNamespacedResources returns the supported namespaced resources\n// with the version preferred by the server.\nfunc (c *FakeDiscovery) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) {\n\treturn nil, nil\n}\n\n// ServerGroups returns the supported groups, with information like supported\n// versions and the preferred version.\nfunc (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) {\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"group\"},\n\t}\n\tc.Invokes(action, nil)\n\n\tgroups := map[string]*metav1.APIGroup{}\n\n\tfor _, res := range c.Resources {\n\t\tgv, err := schema.ParseGroupVersion(res.GroupVersion)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgroup := groups[gv.Group]\n\t\tif group == nil {\n\t\t\tgroup = &metav1.APIGroup{\n\t\t\t\tName: gv.Group,\n\t\t\t\tPreferredVersion: metav1.GroupVersionForDiscovery{\n\t\t\t\t\tGroupVersion: res.GroupVersion,\n\t\t\t\t\tVersion:      gv.Version,\n\t\t\t\t},\n\t\t\t}\n\t\t\tgroups[gv.Group] = group\n\t\t}\n\n\t\tgroup.Versions = append(group.Versions, metav1.GroupVersionForDiscovery{\n\t\t\tGroupVersion: res.GroupVersion,\n\t\t\tVersion:      gv.Version,\n\t\t})\n\t}\n\n\tlist := &metav1.APIGroupList{}\n\tfor _, apiGroup := range groups {\n\t\tlist.Groups = append(list.Groups, *apiGroup)\n\t}\n\n\treturn list, nil\n\n}\n\n// ServerVersion retrieves and parses the server's version.\nfunc (c *FakeDiscovery) ServerVersion() (*version.Info, error) {\n\taction := testing.ActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = schema.GroupVersionResource{Resource: \"version\"}\n\t_, err := c.Invokes(action, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif c.FakedServerVersion != nil {\n\t\treturn c.FakedServerVersion, nil\n\t}\n\n\tversionInfo := kubeversion.Get()\n\treturn &versionInfo, nil\n}\n\n// OpenAPISchema retrieves and parses the swagger API schema the server supports.\nfunc (c *FakeDiscovery) OpenAPISchema() (*openapi_v2.Document, error) {\n\treturn &openapi_v2.Document{}, nil\n}\n\nfunc (c *FakeDiscovery) OpenAPIV3() openapi.Client {\n\tpanic(\"unimplemented\")\n}\n\n// RESTClient returns a RESTClient that is used to communicate with API server\n// by this client implementation.\nfunc (c *FakeDiscovery) RESTClient() restclient.Interface {\n\treturn nil\n}\n\nfunc (c *FakeDiscovery) WithLegacy() discovery.DiscoveryInterface {\n\tpanic(\"unimplemented\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/helper.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"fmt\"\n\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\tapimachineryversion \"k8s.io/apimachinery/pkg/version\"\n)\n\n// IsResourceEnabled queries the server to determine if the resource specified is present on the server.\n// This is particularly helpful when writing a controller or an e2e test that requires a particular resource to function.\nfunc IsResourceEnabled(client DiscoveryInterface, resourceToCheck schema.GroupVersionResource) (bool, error) {\n\t// this is a single request.  The ServerResourcesForGroupVersion handles the core v1 group as legacy.\n\tresourceList, err := client.ServerResourcesForGroupVersion(resourceToCheck.GroupVersion().String())\n\tif apierrors.IsNotFound(err) { // if the discovery endpoint isn't present, then the resource isn't present.\n\t\treturn false, nil\n\t}\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tfor _, actualResource := range resourceList.APIResources {\n\t\tif actualResource.Name == resourceToCheck.Resource {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// MatchesServerVersion queries the server to compares the build version\n// (git hash) of the client with the server's build version. It returns an error\n// if it failed to contact the server or if the versions are not an exact match.\nfunc MatchesServerVersion(clientVersion apimachineryversion.Info, client DiscoveryInterface) error {\n\tsVer, err := client.ServerVersion()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"couldn't read version from server: %v\", err)\n\t}\n\t// GitVersion includes GitCommit and GitTreeState, but best to be safe?\n\tif clientVersion.GitVersion != sVer.GitVersion || clientVersion.GitCommit != sVer.GitCommit || clientVersion.GitTreeState != sVer.GitTreeState {\n\t\treturn fmt.Errorf(\"server version (%#v) differs from client version (%#v)\", sVer, clientVersion)\n\t}\n\n\treturn nil\n}\n\n// ServerSupportsVersion returns an error if the server doesn't have the required version\nfunc ServerSupportsVersion(client DiscoveryInterface, requiredGV schema.GroupVersion) error {\n\tgroups, err := client.ServerGroups()\n\tif err != nil {\n\t\t// This is almost always a connection error, and higher level code should treat this as a generic error,\n\t\t// not a negotiation specific error.\n\t\treturn err\n\t}\n\tversions := metav1.ExtractGroupVersions(groups)\n\tserverVersions := sets.String{}\n\tfor _, v := range versions {\n\t\tserverVersions.Insert(v)\n\t}\n\n\tif serverVersions.Has(requiredGV.String()) {\n\t\treturn nil\n\t}\n\n\t// If the server supports no versions, then we should pretend it has the version because of old servers.\n\t// This can happen because discovery fails due to 403 Forbidden errors\n\tif len(serverVersions) == 0 {\n\t\treturn nil\n\t}\n\n\treturn fmt.Errorf(\"server does not support API version %q\", requiredGV)\n}\n\n// GroupVersionResources converts APIResourceLists to the GroupVersionResources.\nfunc GroupVersionResources(rls []*metav1.APIResourceList) (map[schema.GroupVersionResource]struct{}, error) {\n\tgvrs := map[schema.GroupVersionResource]struct{}{}\n\tfor _, rl := range rls {\n\t\tgv, err := schema.ParseGroupVersion(rl.GroupVersion)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor i := range rl.APIResources {\n\t\t\tgvrs[schema.GroupVersionResource{Group: gv.Group, Version: gv.Version, Resource: rl.APIResources[i].Name}] = struct{}{}\n\t\t}\n\t}\n\treturn gvrs, nil\n}\n\n// FilteredBy filters by the given predicate. Empty APIResourceLists are dropped.\nfunc FilteredBy(pred ResourcePredicate, rls []*metav1.APIResourceList) []*metav1.APIResourceList {\n\tresult := []*metav1.APIResourceList{}\n\tfor _, rl := range rls {\n\t\tfiltered := *rl\n\t\tfiltered.APIResources = nil\n\t\tfor i := range rl.APIResources {\n\t\t\tif pred.Match(rl.GroupVersion, &rl.APIResources[i]) {\n\t\t\t\tfiltered.APIResources = append(filtered.APIResources, rl.APIResources[i])\n\t\t\t}\n\t\t}\n\t\tif filtered.APIResources != nil {\n\t\t\tresult = append(result, &filtered)\n\t\t}\n\t}\n\treturn result\n}\n\n// ResourcePredicate has a method to check if a resource matches a given condition.\ntype ResourcePredicate interface {\n\tMatch(groupVersion string, r *metav1.APIResource) bool\n}\n\n// ResourcePredicateFunc returns true if it matches a resource based on a custom condition.\ntype ResourcePredicateFunc func(groupVersion string, r *metav1.APIResource) bool\n\n// Match is a wrapper around ResourcePredicateFunc.\nfunc (fn ResourcePredicateFunc) Match(groupVersion string, r *metav1.APIResource) bool {\n\treturn fn(groupVersion, r)\n}\n\n// SupportsAllVerbs is a predicate matching a resource iff all given verbs are supported.\ntype SupportsAllVerbs struct {\n\tVerbs []string\n}\n\n// Match checks if a resource contains all the given verbs.\nfunc (p SupportsAllVerbs) Match(groupVersion string, r *metav1.APIResource) bool {\n\treturn sets.NewString([]string(r.Verbs)...).HasAll(p.Verbs...)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/clientset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage kubernetes\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\n\tdiscovery \"k8s.io/client-go/discovery\"\n\tadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\tappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\tbatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\tcoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\tcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\tdiscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\teventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\teventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\tnodev1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\tnodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\tpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\trbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\tresourcev1alpha2 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha2\"\n\tschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\tflowcontrol \"k8s.io/client-go/util/flowcontrol\"\n)\n\ntype Interface interface {\n\tDiscovery() discovery.DiscoveryInterface\n\tAdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface\n\tAdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface\n\tAdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface\n\tInternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface\n\tAppsV1() appsv1.AppsV1Interface\n\tAppsV1beta1() appsv1beta1.AppsV1beta1Interface\n\tAppsV1beta2() appsv1beta2.AppsV1beta2Interface\n\tAuthenticationV1() authenticationv1.AuthenticationV1Interface\n\tAuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface\n\tAuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface\n\tAuthorizationV1() authorizationv1.AuthorizationV1Interface\n\tAuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface\n\tAutoscalingV1() autoscalingv1.AutoscalingV1Interface\n\tAutoscalingV2() autoscalingv2.AutoscalingV2Interface\n\tAutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface\n\tAutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface\n\tBatchV1() batchv1.BatchV1Interface\n\tBatchV1beta1() batchv1beta1.BatchV1beta1Interface\n\tCertificatesV1() certificatesv1.CertificatesV1Interface\n\tCertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface\n\tCertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface\n\tCoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface\n\tCoordinationV1() coordinationv1.CoordinationV1Interface\n\tCoreV1() corev1.CoreV1Interface\n\tDiscoveryV1() discoveryv1.DiscoveryV1Interface\n\tDiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface\n\tEventsV1() eventsv1.EventsV1Interface\n\tEventsV1beta1() eventsv1beta1.EventsV1beta1Interface\n\tExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface\n\tFlowcontrolV1alpha1() flowcontrolv1alpha1.FlowcontrolV1alpha1Interface\n\tFlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface\n\tFlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface\n\tFlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface\n\tNetworkingV1() networkingv1.NetworkingV1Interface\n\tNetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface\n\tNetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface\n\tNodeV1() nodev1.NodeV1Interface\n\tNodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface\n\tNodeV1beta1() nodev1beta1.NodeV1beta1Interface\n\tPolicyV1() policyv1.PolicyV1Interface\n\tPolicyV1beta1() policyv1beta1.PolicyV1beta1Interface\n\tRbacV1() rbacv1.RbacV1Interface\n\tRbacV1beta1() rbacv1beta1.RbacV1beta1Interface\n\tRbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface\n\tResourceV1alpha2() resourcev1alpha2.ResourceV1alpha2Interface\n\tSchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface\n\tSchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface\n\tSchedulingV1() schedulingv1.SchedulingV1Interface\n\tStorageV1beta1() storagev1beta1.StorageV1beta1Interface\n\tStorageV1() storagev1.StorageV1Interface\n\tStorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface\n}\n\n// Clientset contains the clients for groups.\ntype Clientset struct {\n\t*discovery.DiscoveryClient\n\tadmissionregistrationV1       *admissionregistrationv1.AdmissionregistrationV1Client\n\tadmissionregistrationV1alpha1 *admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Client\n\tadmissionregistrationV1beta1  *admissionregistrationv1beta1.AdmissionregistrationV1beta1Client\n\tinternalV1alpha1              *internalv1alpha1.InternalV1alpha1Client\n\tappsV1                        *appsv1.AppsV1Client\n\tappsV1beta1                   *appsv1beta1.AppsV1beta1Client\n\tappsV1beta2                   *appsv1beta2.AppsV1beta2Client\n\tauthenticationV1              *authenticationv1.AuthenticationV1Client\n\tauthenticationV1alpha1        *authenticationv1alpha1.AuthenticationV1alpha1Client\n\tauthenticationV1beta1         *authenticationv1beta1.AuthenticationV1beta1Client\n\tauthorizationV1               *authorizationv1.AuthorizationV1Client\n\tauthorizationV1beta1          *authorizationv1beta1.AuthorizationV1beta1Client\n\tautoscalingV1                 *autoscalingv1.AutoscalingV1Client\n\tautoscalingV2                 *autoscalingv2.AutoscalingV2Client\n\tautoscalingV2beta1            *autoscalingv2beta1.AutoscalingV2beta1Client\n\tautoscalingV2beta2            *autoscalingv2beta2.AutoscalingV2beta2Client\n\tbatchV1                       *batchv1.BatchV1Client\n\tbatchV1beta1                  *batchv1beta1.BatchV1beta1Client\n\tcertificatesV1                *certificatesv1.CertificatesV1Client\n\tcertificatesV1beta1           *certificatesv1beta1.CertificatesV1beta1Client\n\tcertificatesV1alpha1          *certificatesv1alpha1.CertificatesV1alpha1Client\n\tcoordinationV1beta1           *coordinationv1beta1.CoordinationV1beta1Client\n\tcoordinationV1                *coordinationv1.CoordinationV1Client\n\tcoreV1                        *corev1.CoreV1Client\n\tdiscoveryV1                   *discoveryv1.DiscoveryV1Client\n\tdiscoveryV1beta1              *discoveryv1beta1.DiscoveryV1beta1Client\n\teventsV1                      *eventsv1.EventsV1Client\n\teventsV1beta1                 *eventsv1beta1.EventsV1beta1Client\n\textensionsV1beta1             *extensionsv1beta1.ExtensionsV1beta1Client\n\tflowcontrolV1alpha1           *flowcontrolv1alpha1.FlowcontrolV1alpha1Client\n\tflowcontrolV1beta1            *flowcontrolv1beta1.FlowcontrolV1beta1Client\n\tflowcontrolV1beta2            *flowcontrolv1beta2.FlowcontrolV1beta2Client\n\tflowcontrolV1beta3            *flowcontrolv1beta3.FlowcontrolV1beta3Client\n\tnetworkingV1                  *networkingv1.NetworkingV1Client\n\tnetworkingV1alpha1            *networkingv1alpha1.NetworkingV1alpha1Client\n\tnetworkingV1beta1             *networkingv1beta1.NetworkingV1beta1Client\n\tnodeV1                        *nodev1.NodeV1Client\n\tnodeV1alpha1                  *nodev1alpha1.NodeV1alpha1Client\n\tnodeV1beta1                   *nodev1beta1.NodeV1beta1Client\n\tpolicyV1                      *policyv1.PolicyV1Client\n\tpolicyV1beta1                 *policyv1beta1.PolicyV1beta1Client\n\trbacV1                        *rbacv1.RbacV1Client\n\trbacV1beta1                   *rbacv1beta1.RbacV1beta1Client\n\trbacV1alpha1                  *rbacv1alpha1.RbacV1alpha1Client\n\tresourceV1alpha2              *resourcev1alpha2.ResourceV1alpha2Client\n\tschedulingV1alpha1            *schedulingv1alpha1.SchedulingV1alpha1Client\n\tschedulingV1beta1             *schedulingv1beta1.SchedulingV1beta1Client\n\tschedulingV1                  *schedulingv1.SchedulingV1Client\n\tstorageV1beta1                *storagev1beta1.StorageV1beta1Client\n\tstorageV1                     *storagev1.StorageV1Client\n\tstorageV1alpha1               *storagev1alpha1.StorageV1alpha1Client\n}\n\n// AdmissionregistrationV1 retrieves the AdmissionregistrationV1Client\nfunc (c *Clientset) AdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface {\n\treturn c.admissionregistrationV1\n}\n\n// AdmissionregistrationV1alpha1 retrieves the AdmissionregistrationV1alpha1Client\nfunc (c *Clientset) AdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface {\n\treturn c.admissionregistrationV1alpha1\n}\n\n// AdmissionregistrationV1beta1 retrieves the AdmissionregistrationV1beta1Client\nfunc (c *Clientset) AdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface {\n\treturn c.admissionregistrationV1beta1\n}\n\n// InternalV1alpha1 retrieves the InternalV1alpha1Client\nfunc (c *Clientset) InternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface {\n\treturn c.internalV1alpha1\n}\n\n// AppsV1 retrieves the AppsV1Client\nfunc (c *Clientset) AppsV1() appsv1.AppsV1Interface {\n\treturn c.appsV1\n}\n\n// AppsV1beta1 retrieves the AppsV1beta1Client\nfunc (c *Clientset) AppsV1beta1() appsv1beta1.AppsV1beta1Interface {\n\treturn c.appsV1beta1\n}\n\n// AppsV1beta2 retrieves the AppsV1beta2Client\nfunc (c *Clientset) AppsV1beta2() appsv1beta2.AppsV1beta2Interface {\n\treturn c.appsV1beta2\n}\n\n// AuthenticationV1 retrieves the AuthenticationV1Client\nfunc (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface {\n\treturn c.authenticationV1\n}\n\n// AuthenticationV1alpha1 retrieves the AuthenticationV1alpha1Client\nfunc (c *Clientset) AuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface {\n\treturn c.authenticationV1alpha1\n}\n\n// AuthenticationV1beta1 retrieves the AuthenticationV1beta1Client\nfunc (c *Clientset) AuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface {\n\treturn c.authenticationV1beta1\n}\n\n// AuthorizationV1 retrieves the AuthorizationV1Client\nfunc (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface {\n\treturn c.authorizationV1\n}\n\n// AuthorizationV1beta1 retrieves the AuthorizationV1beta1Client\nfunc (c *Clientset) AuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface {\n\treturn c.authorizationV1beta1\n}\n\n// AutoscalingV1 retrieves the AutoscalingV1Client\nfunc (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface {\n\treturn c.autoscalingV1\n}\n\n// AutoscalingV2 retrieves the AutoscalingV2Client\nfunc (c *Clientset) AutoscalingV2() autoscalingv2.AutoscalingV2Interface {\n\treturn c.autoscalingV2\n}\n\n// AutoscalingV2beta1 retrieves the AutoscalingV2beta1Client\nfunc (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface {\n\treturn c.autoscalingV2beta1\n}\n\n// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client\nfunc (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface {\n\treturn c.autoscalingV2beta2\n}\n\n// BatchV1 retrieves the BatchV1Client\nfunc (c *Clientset) BatchV1() batchv1.BatchV1Interface {\n\treturn c.batchV1\n}\n\n// BatchV1beta1 retrieves the BatchV1beta1Client\nfunc (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface {\n\treturn c.batchV1beta1\n}\n\n// CertificatesV1 retrieves the CertificatesV1Client\nfunc (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface {\n\treturn c.certificatesV1\n}\n\n// CertificatesV1beta1 retrieves the CertificatesV1beta1Client\nfunc (c *Clientset) CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface {\n\treturn c.certificatesV1beta1\n}\n\n// CertificatesV1alpha1 retrieves the CertificatesV1alpha1Client\nfunc (c *Clientset) CertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface {\n\treturn c.certificatesV1alpha1\n}\n\n// CoordinationV1beta1 retrieves the CoordinationV1beta1Client\nfunc (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface {\n\treturn c.coordinationV1beta1\n}\n\n// CoordinationV1 retrieves the CoordinationV1Client\nfunc (c *Clientset) CoordinationV1() coordinationv1.CoordinationV1Interface {\n\treturn c.coordinationV1\n}\n\n// CoreV1 retrieves the CoreV1Client\nfunc (c *Clientset) CoreV1() corev1.CoreV1Interface {\n\treturn c.coreV1\n}\n\n// DiscoveryV1 retrieves the DiscoveryV1Client\nfunc (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface {\n\treturn c.discoveryV1\n}\n\n// DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client\nfunc (c *Clientset) DiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface {\n\treturn c.discoveryV1beta1\n}\n\n// EventsV1 retrieves the EventsV1Client\nfunc (c *Clientset) EventsV1() eventsv1.EventsV1Interface {\n\treturn c.eventsV1\n}\n\n// EventsV1beta1 retrieves the EventsV1beta1Client\nfunc (c *Clientset) EventsV1beta1() eventsv1beta1.EventsV1beta1Interface {\n\treturn c.eventsV1beta1\n}\n\n// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client\nfunc (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface {\n\treturn c.extensionsV1beta1\n}\n\n// FlowcontrolV1alpha1 retrieves the FlowcontrolV1alpha1Client\nfunc (c *Clientset) FlowcontrolV1alpha1() flowcontrolv1alpha1.FlowcontrolV1alpha1Interface {\n\treturn c.flowcontrolV1alpha1\n}\n\n// FlowcontrolV1beta1 retrieves the FlowcontrolV1beta1Client\nfunc (c *Clientset) FlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface {\n\treturn c.flowcontrolV1beta1\n}\n\n// FlowcontrolV1beta2 retrieves the FlowcontrolV1beta2Client\nfunc (c *Clientset) FlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface {\n\treturn c.flowcontrolV1beta2\n}\n\n// FlowcontrolV1beta3 retrieves the FlowcontrolV1beta3Client\nfunc (c *Clientset) FlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface {\n\treturn c.flowcontrolV1beta3\n}\n\n// NetworkingV1 retrieves the NetworkingV1Client\nfunc (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface {\n\treturn c.networkingV1\n}\n\n// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client\nfunc (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface {\n\treturn c.networkingV1alpha1\n}\n\n// NetworkingV1beta1 retrieves the NetworkingV1beta1Client\nfunc (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface {\n\treturn c.networkingV1beta1\n}\n\n// NodeV1 retrieves the NodeV1Client\nfunc (c *Clientset) NodeV1() nodev1.NodeV1Interface {\n\treturn c.nodeV1\n}\n\n// NodeV1alpha1 retrieves the NodeV1alpha1Client\nfunc (c *Clientset) NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface {\n\treturn c.nodeV1alpha1\n}\n\n// NodeV1beta1 retrieves the NodeV1beta1Client\nfunc (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface {\n\treturn c.nodeV1beta1\n}\n\n// PolicyV1 retrieves the PolicyV1Client\nfunc (c *Clientset) PolicyV1() policyv1.PolicyV1Interface {\n\treturn c.policyV1\n}\n\n// PolicyV1beta1 retrieves the PolicyV1beta1Client\nfunc (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface {\n\treturn c.policyV1beta1\n}\n\n// RbacV1 retrieves the RbacV1Client\nfunc (c *Clientset) RbacV1() rbacv1.RbacV1Interface {\n\treturn c.rbacV1\n}\n\n// RbacV1beta1 retrieves the RbacV1beta1Client\nfunc (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface {\n\treturn c.rbacV1beta1\n}\n\n// RbacV1alpha1 retrieves the RbacV1alpha1Client\nfunc (c *Clientset) RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface {\n\treturn c.rbacV1alpha1\n}\n\n// ResourceV1alpha2 retrieves the ResourceV1alpha2Client\nfunc (c *Clientset) ResourceV1alpha2() resourcev1alpha2.ResourceV1alpha2Interface {\n\treturn c.resourceV1alpha2\n}\n\n// SchedulingV1alpha1 retrieves the SchedulingV1alpha1Client\nfunc (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface {\n\treturn c.schedulingV1alpha1\n}\n\n// SchedulingV1beta1 retrieves the SchedulingV1beta1Client\nfunc (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface {\n\treturn c.schedulingV1beta1\n}\n\n// SchedulingV1 retrieves the SchedulingV1Client\nfunc (c *Clientset) SchedulingV1() schedulingv1.SchedulingV1Interface {\n\treturn c.schedulingV1\n}\n\n// StorageV1beta1 retrieves the StorageV1beta1Client\nfunc (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface {\n\treturn c.storageV1beta1\n}\n\n// StorageV1 retrieves the StorageV1Client\nfunc (c *Clientset) StorageV1() storagev1.StorageV1Interface {\n\treturn c.storageV1\n}\n\n// StorageV1alpha1 retrieves the StorageV1alpha1Client\nfunc (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface {\n\treturn c.storageV1alpha1\n}\n\n// Discovery retrieves the DiscoveryClient\nfunc (c *Clientset) Discovery() discovery.DiscoveryInterface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.DiscoveryClient\n}\n\n// NewForConfig creates a new Clientset for the given config.\n// If config's RateLimiter is not set and QPS and Burst are acceptable,\n// NewForConfig will generate a rate-limiter in configShallowCopy.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*Clientset, error) {\n\tconfigShallowCopy := *c\n\n\tif configShallowCopy.UserAgent == \"\" {\n\t\tconfigShallowCopy.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\t// share the transport between all clients\n\thttpClient, err := rest.HTTPClientFor(&configShallowCopy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewForConfigAndClient(&configShallowCopy, httpClient)\n}\n\n// NewForConfigAndClient creates a new Clientset for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\n// If config's RateLimiter is not set and QPS and Burst are acceptable,\n// NewForConfigAndClient will generate a rate-limiter in configShallowCopy.\nfunc NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, error) {\n\tconfigShallowCopy := *c\n\tif configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {\n\t\tif configShallowCopy.Burst <= 0 {\n\t\t\treturn nil, fmt.Errorf(\"burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0\")\n\t\t}\n\t\tconfigShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)\n\t}\n\n\tvar cs Clientset\n\tvar err error\n\tcs.admissionregistrationV1, err = admissionregistrationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.admissionregistrationV1alpha1, err = admissionregistrationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.admissionregistrationV1beta1, err = admissionregistrationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.internalV1alpha1, err = internalv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1, err = appsv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1beta1, err = appsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1beta2, err = appsv1beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1, err = authenticationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1alpha1, err = authenticationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1beta1, err = authenticationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authorizationV1, err = authorizationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authorizationV1beta1, err = authorizationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV1, err = autoscalingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2, err = autoscalingv2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2beta1, err = autoscalingv2beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2beta2, err = autoscalingv2beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.batchV1, err = batchv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.batchV1beta1, err = batchv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1, err = certificatesv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1beta1, err = certificatesv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1alpha1, err = certificatesv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coordinationV1beta1, err = coordinationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coordinationV1, err = coordinationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coreV1, err = corev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.discoveryV1, err = discoveryv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.discoveryV1beta1, err = discoveryv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.eventsV1, err = eventsv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.eventsV1beta1, err = eventsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.extensionsV1beta1, err = extensionsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1alpha1, err = flowcontrolv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta1, err = flowcontrolv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta2, err = flowcontrolv1beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta3, err = flowcontrolv1beta3.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1, err = networkingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1alpha1, err = networkingv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1beta1, err = networkingv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1, err = nodev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1alpha1, err = nodev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1beta1, err = nodev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.policyV1, err = policyv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.policyV1beta1, err = policyv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1, err = rbacv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1beta1, err = rbacv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1alpha1, err = rbacv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.resourceV1alpha2, err = resourcev1alpha2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1alpha1, err = schedulingv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1beta1, err = schedulingv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1, err = schedulingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1beta1, err = storagev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1, err = storagev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1alpha1, err = storagev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &cs, nil\n}\n\n// NewForConfigOrDie creates a new Clientset for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *Clientset {\n\tcs, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn cs\n}\n\n// New creates a new Clientset for the given RESTClient.\nfunc New(c rest.Interface) *Clientset {\n\tvar cs Clientset\n\tcs.admissionregistrationV1 = admissionregistrationv1.New(c)\n\tcs.admissionregistrationV1alpha1 = admissionregistrationv1alpha1.New(c)\n\tcs.admissionregistrationV1beta1 = admissionregistrationv1beta1.New(c)\n\tcs.internalV1alpha1 = internalv1alpha1.New(c)\n\tcs.appsV1 = appsv1.New(c)\n\tcs.appsV1beta1 = appsv1beta1.New(c)\n\tcs.appsV1beta2 = appsv1beta2.New(c)\n\tcs.authenticationV1 = authenticationv1.New(c)\n\tcs.authenticationV1alpha1 = authenticationv1alpha1.New(c)\n\tcs.authenticationV1beta1 = authenticationv1beta1.New(c)\n\tcs.authorizationV1 = authorizationv1.New(c)\n\tcs.authorizationV1beta1 = authorizationv1beta1.New(c)\n\tcs.autoscalingV1 = autoscalingv1.New(c)\n\tcs.autoscalingV2 = autoscalingv2.New(c)\n\tcs.autoscalingV2beta1 = autoscalingv2beta1.New(c)\n\tcs.autoscalingV2beta2 = autoscalingv2beta2.New(c)\n\tcs.batchV1 = batchv1.New(c)\n\tcs.batchV1beta1 = batchv1beta1.New(c)\n\tcs.certificatesV1 = certificatesv1.New(c)\n\tcs.certificatesV1beta1 = certificatesv1beta1.New(c)\n\tcs.certificatesV1alpha1 = certificatesv1alpha1.New(c)\n\tcs.coordinationV1beta1 = coordinationv1beta1.New(c)\n\tcs.coordinationV1 = coordinationv1.New(c)\n\tcs.coreV1 = corev1.New(c)\n\tcs.discoveryV1 = discoveryv1.New(c)\n\tcs.discoveryV1beta1 = discoveryv1beta1.New(c)\n\tcs.eventsV1 = eventsv1.New(c)\n\tcs.eventsV1beta1 = eventsv1beta1.New(c)\n\tcs.extensionsV1beta1 = extensionsv1beta1.New(c)\n\tcs.flowcontrolV1alpha1 = flowcontrolv1alpha1.New(c)\n\tcs.flowcontrolV1beta1 = flowcontrolv1beta1.New(c)\n\tcs.flowcontrolV1beta2 = flowcontrolv1beta2.New(c)\n\tcs.flowcontrolV1beta3 = flowcontrolv1beta3.New(c)\n\tcs.networkingV1 = networkingv1.New(c)\n\tcs.networkingV1alpha1 = networkingv1alpha1.New(c)\n\tcs.networkingV1beta1 = networkingv1beta1.New(c)\n\tcs.nodeV1 = nodev1.New(c)\n\tcs.nodeV1alpha1 = nodev1alpha1.New(c)\n\tcs.nodeV1beta1 = nodev1beta1.New(c)\n\tcs.policyV1 = policyv1.New(c)\n\tcs.policyV1beta1 = policyv1beta1.New(c)\n\tcs.rbacV1 = rbacv1.New(c)\n\tcs.rbacV1beta1 = rbacv1beta1.New(c)\n\tcs.rbacV1alpha1 = rbacv1alpha1.New(c)\n\tcs.resourceV1alpha2 = resourcev1alpha2.New(c)\n\tcs.schedulingV1alpha1 = schedulingv1alpha1.New(c)\n\tcs.schedulingV1beta1 = schedulingv1beta1.New(c)\n\tcs.schedulingV1 = schedulingv1.New(c)\n\tcs.storageV1beta1 = storagev1beta1.New(c)\n\tcs.storageV1 = storagev1.New(c)\n\tcs.storageV1alpha1 = storagev1alpha1.New(c)\n\n\tcs.DiscoveryClient = discovery.NewDiscoveryClient(c)\n\treturn &cs\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/doc.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package kubernetes holds packages which implement a clientset for Kubernetes\n// APIs.\npackage kubernetes\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\t\"k8s.io/client-go/discovery\"\n\tfakediscovery \"k8s.io/client-go/discovery/fake\"\n\tclientset \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\tfakeadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\tfakeadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\tfakeadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake\"\n\tinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\tfakeinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake\"\n\tappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\tfakeappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1/fake\"\n\tappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\tfakeappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake\"\n\tappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\tfakeappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\tfakeauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1/fake\"\n\tauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\tfakeauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\tfakeauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\tfakeauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1/fake\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\tfakeauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake\"\n\tautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\tfakeautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake\"\n\tautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\tfakeautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake\"\n\tautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\tfakeautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake\"\n\tautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\tfakeautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake\"\n\tbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\tfakebatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1/fake\"\n\tbatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\tfakebatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake\"\n\tcertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\tfakecertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1/fake\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\tfakecertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake\"\n\tcertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\tfakecertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake\"\n\tcoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\tfakecoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1/fake\"\n\tcoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\tfakecoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake\"\n\tcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\tfakecorev1 \"k8s.io/client-go/kubernetes/typed/core/v1/fake\"\n\tdiscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\tfakediscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1/fake\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\tfakediscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake\"\n\teventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\tfakeeventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1/fake\"\n\teventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\tfakeeventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1/fake\"\n\textensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\tfakeextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1\"\n\tfakeflowcontrolv1alpha1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\tfakeflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\tfakeflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\tfakeflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake\"\n\tnetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\tfakenetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1/fake\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\tfakenetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake\"\n\tnetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\tfakenetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake\"\n\tnodev1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\tfakenodev1 \"k8s.io/client-go/kubernetes/typed/node/v1/fake\"\n\tnodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\tfakenodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake\"\n\tnodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\tfakenodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1/fake\"\n\tpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\tfakepolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1/fake\"\n\tpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\tfakepolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake\"\n\trbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\tfakerbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1/fake\"\n\trbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\tfakerbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake\"\n\trbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\tfakerbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake\"\n\tresourcev1alpha2 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha2\"\n\tfakeresourcev1alpha2 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake\"\n\tschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\tfakeschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1/fake\"\n\tschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\tfakeschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake\"\n\tschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\tfakeschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake\"\n\tstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\tfakestoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1/fake\"\n\tstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\tfakestoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake\"\n\tstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\tfakestoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake\"\n\t\"k8s.io/client-go/testing\"\n)\n\n// NewSimpleClientset returns a clientset that will respond with the provided objects.\n// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,\n// without applying any validations and/or defaults. It shouldn't be considered a replacement\n// for a real clientset and is mostly useful in simple unit tests.\nfunc NewSimpleClientset(objects ...runtime.Object) *Clientset {\n\to := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())\n\tfor _, obj := range objects {\n\t\tif err := o.Add(obj); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tcs := &Clientset{tracker: o}\n\tcs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}\n\tcs.AddReactor(\"*\", \"*\", testing.ObjectReaction(o))\n\tcs.AddWatchReactor(\"*\", func(action testing.Action) (handled bool, ret watch.Interface, err error) {\n\t\tgvr := action.GetResource()\n\t\tns := action.GetNamespace()\n\t\twatch, err := o.Watch(gvr, ns)\n\t\tif err != nil {\n\t\t\treturn false, nil, err\n\t\t}\n\t\treturn true, watch, nil\n\t})\n\n\treturn cs\n}\n\n// Clientset implements clientset.Interface. Meant to be embedded into a\n// struct to get a default implementation. This makes faking out just the method\n// you want to test easier.\ntype Clientset struct {\n\ttesting.Fake\n\tdiscovery *fakediscovery.FakeDiscovery\n\ttracker   testing.ObjectTracker\n}\n\nfunc (c *Clientset) Discovery() discovery.DiscoveryInterface {\n\treturn c.discovery\n}\n\nfunc (c *Clientset) Tracker() testing.ObjectTracker {\n\treturn c.tracker\n}\n\nvar (\n\t_ clientset.Interface = &Clientset{}\n\t_ testing.FakeClient  = &Clientset{}\n)\n\n// AdmissionregistrationV1 retrieves the AdmissionregistrationV1Client\nfunc (c *Clientset) AdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface {\n\treturn &fakeadmissionregistrationv1.FakeAdmissionregistrationV1{Fake: &c.Fake}\n}\n\n// AdmissionregistrationV1alpha1 retrieves the AdmissionregistrationV1alpha1Client\nfunc (c *Clientset) AdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface {\n\treturn &fakeadmissionregistrationv1alpha1.FakeAdmissionregistrationV1alpha1{Fake: &c.Fake}\n}\n\n// AdmissionregistrationV1beta1 retrieves the AdmissionregistrationV1beta1Client\nfunc (c *Clientset) AdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface {\n\treturn &fakeadmissionregistrationv1beta1.FakeAdmissionregistrationV1beta1{Fake: &c.Fake}\n}\n\n// InternalV1alpha1 retrieves the InternalV1alpha1Client\nfunc (c *Clientset) InternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface {\n\treturn &fakeinternalv1alpha1.FakeInternalV1alpha1{Fake: &c.Fake}\n}\n\n// AppsV1 retrieves the AppsV1Client\nfunc (c *Clientset) AppsV1() appsv1.AppsV1Interface {\n\treturn &fakeappsv1.FakeAppsV1{Fake: &c.Fake}\n}\n\n// AppsV1beta1 retrieves the AppsV1beta1Client\nfunc (c *Clientset) AppsV1beta1() appsv1beta1.AppsV1beta1Interface {\n\treturn &fakeappsv1beta1.FakeAppsV1beta1{Fake: &c.Fake}\n}\n\n// AppsV1beta2 retrieves the AppsV1beta2Client\nfunc (c *Clientset) AppsV1beta2() appsv1beta2.AppsV1beta2Interface {\n\treturn &fakeappsv1beta2.FakeAppsV1beta2{Fake: &c.Fake}\n}\n\n// AuthenticationV1 retrieves the AuthenticationV1Client\nfunc (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface {\n\treturn &fakeauthenticationv1.FakeAuthenticationV1{Fake: &c.Fake}\n}\n\n// AuthenticationV1alpha1 retrieves the AuthenticationV1alpha1Client\nfunc (c *Clientset) AuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface {\n\treturn &fakeauthenticationv1alpha1.FakeAuthenticationV1alpha1{Fake: &c.Fake}\n}\n\n// AuthenticationV1beta1 retrieves the AuthenticationV1beta1Client\nfunc (c *Clientset) AuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface {\n\treturn &fakeauthenticationv1beta1.FakeAuthenticationV1beta1{Fake: &c.Fake}\n}\n\n// AuthorizationV1 retrieves the AuthorizationV1Client\nfunc (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface {\n\treturn &fakeauthorizationv1.FakeAuthorizationV1{Fake: &c.Fake}\n}\n\n// AuthorizationV1beta1 retrieves the AuthorizationV1beta1Client\nfunc (c *Clientset) AuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface {\n\treturn &fakeauthorizationv1beta1.FakeAuthorizationV1beta1{Fake: &c.Fake}\n}\n\n// AutoscalingV1 retrieves the AutoscalingV1Client\nfunc (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface {\n\treturn &fakeautoscalingv1.FakeAutoscalingV1{Fake: &c.Fake}\n}\n\n// AutoscalingV2 retrieves the AutoscalingV2Client\nfunc (c *Clientset) AutoscalingV2() autoscalingv2.AutoscalingV2Interface {\n\treturn &fakeautoscalingv2.FakeAutoscalingV2{Fake: &c.Fake}\n}\n\n// AutoscalingV2beta1 retrieves the AutoscalingV2beta1Client\nfunc (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface {\n\treturn &fakeautoscalingv2beta1.FakeAutoscalingV2beta1{Fake: &c.Fake}\n}\n\n// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client\nfunc (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface {\n\treturn &fakeautoscalingv2beta2.FakeAutoscalingV2beta2{Fake: &c.Fake}\n}\n\n// BatchV1 retrieves the BatchV1Client\nfunc (c *Clientset) BatchV1() batchv1.BatchV1Interface {\n\treturn &fakebatchv1.FakeBatchV1{Fake: &c.Fake}\n}\n\n// BatchV1beta1 retrieves the BatchV1beta1Client\nfunc (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface {\n\treturn &fakebatchv1beta1.FakeBatchV1beta1{Fake: &c.Fake}\n}\n\n// CertificatesV1 retrieves the CertificatesV1Client\nfunc (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface {\n\treturn &fakecertificatesv1.FakeCertificatesV1{Fake: &c.Fake}\n}\n\n// CertificatesV1beta1 retrieves the CertificatesV1beta1Client\nfunc (c *Clientset) CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface {\n\treturn &fakecertificatesv1beta1.FakeCertificatesV1beta1{Fake: &c.Fake}\n}\n\n// CertificatesV1alpha1 retrieves the CertificatesV1alpha1Client\nfunc (c *Clientset) CertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface {\n\treturn &fakecertificatesv1alpha1.FakeCertificatesV1alpha1{Fake: &c.Fake}\n}\n\n// CoordinationV1beta1 retrieves the CoordinationV1beta1Client\nfunc (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface {\n\treturn &fakecoordinationv1beta1.FakeCoordinationV1beta1{Fake: &c.Fake}\n}\n\n// CoordinationV1 retrieves the CoordinationV1Client\nfunc (c *Clientset) CoordinationV1() coordinationv1.CoordinationV1Interface {\n\treturn &fakecoordinationv1.FakeCoordinationV1{Fake: &c.Fake}\n}\n\n// CoreV1 retrieves the CoreV1Client\nfunc (c *Clientset) CoreV1() corev1.CoreV1Interface {\n\treturn &fakecorev1.FakeCoreV1{Fake: &c.Fake}\n}\n\n// DiscoveryV1 retrieves the DiscoveryV1Client\nfunc (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface {\n\treturn &fakediscoveryv1.FakeDiscoveryV1{Fake: &c.Fake}\n}\n\n// DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client\nfunc (c *Clientset) DiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface {\n\treturn &fakediscoveryv1beta1.FakeDiscoveryV1beta1{Fake: &c.Fake}\n}\n\n// EventsV1 retrieves the EventsV1Client\nfunc (c *Clientset) EventsV1() eventsv1.EventsV1Interface {\n\treturn &fakeeventsv1.FakeEventsV1{Fake: &c.Fake}\n}\n\n// EventsV1beta1 retrieves the EventsV1beta1Client\nfunc (c *Clientset) EventsV1beta1() eventsv1beta1.EventsV1beta1Interface {\n\treturn &fakeeventsv1beta1.FakeEventsV1beta1{Fake: &c.Fake}\n}\n\n// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client\nfunc (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface {\n\treturn &fakeextensionsv1beta1.FakeExtensionsV1beta1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1alpha1 retrieves the FlowcontrolV1alpha1Client\nfunc (c *Clientset) FlowcontrolV1alpha1() flowcontrolv1alpha1.FlowcontrolV1alpha1Interface {\n\treturn &fakeflowcontrolv1alpha1.FakeFlowcontrolV1alpha1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta1 retrieves the FlowcontrolV1beta1Client\nfunc (c *Clientset) FlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface {\n\treturn &fakeflowcontrolv1beta1.FakeFlowcontrolV1beta1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta2 retrieves the FlowcontrolV1beta2Client\nfunc (c *Clientset) FlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface {\n\treturn &fakeflowcontrolv1beta2.FakeFlowcontrolV1beta2{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta3 retrieves the FlowcontrolV1beta3Client\nfunc (c *Clientset) FlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface {\n\treturn &fakeflowcontrolv1beta3.FakeFlowcontrolV1beta3{Fake: &c.Fake}\n}\n\n// NetworkingV1 retrieves the NetworkingV1Client\nfunc (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface {\n\treturn &fakenetworkingv1.FakeNetworkingV1{Fake: &c.Fake}\n}\n\n// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client\nfunc (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface {\n\treturn &fakenetworkingv1alpha1.FakeNetworkingV1alpha1{Fake: &c.Fake}\n}\n\n// NetworkingV1beta1 retrieves the NetworkingV1beta1Client\nfunc (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface {\n\treturn &fakenetworkingv1beta1.FakeNetworkingV1beta1{Fake: &c.Fake}\n}\n\n// NodeV1 retrieves the NodeV1Client\nfunc (c *Clientset) NodeV1() nodev1.NodeV1Interface {\n\treturn &fakenodev1.FakeNodeV1{Fake: &c.Fake}\n}\n\n// NodeV1alpha1 retrieves the NodeV1alpha1Client\nfunc (c *Clientset) NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface {\n\treturn &fakenodev1alpha1.FakeNodeV1alpha1{Fake: &c.Fake}\n}\n\n// NodeV1beta1 retrieves the NodeV1beta1Client\nfunc (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface {\n\treturn &fakenodev1beta1.FakeNodeV1beta1{Fake: &c.Fake}\n}\n\n// PolicyV1 retrieves the PolicyV1Client\nfunc (c *Clientset) PolicyV1() policyv1.PolicyV1Interface {\n\treturn &fakepolicyv1.FakePolicyV1{Fake: &c.Fake}\n}\n\n// PolicyV1beta1 retrieves the PolicyV1beta1Client\nfunc (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface {\n\treturn &fakepolicyv1beta1.FakePolicyV1beta1{Fake: &c.Fake}\n}\n\n// RbacV1 retrieves the RbacV1Client\nfunc (c *Clientset) RbacV1() rbacv1.RbacV1Interface {\n\treturn &fakerbacv1.FakeRbacV1{Fake: &c.Fake}\n}\n\n// RbacV1beta1 retrieves the RbacV1beta1Client\nfunc (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface {\n\treturn &fakerbacv1beta1.FakeRbacV1beta1{Fake: &c.Fake}\n}\n\n// RbacV1alpha1 retrieves the RbacV1alpha1Client\nfunc (c *Clientset) RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface {\n\treturn &fakerbacv1alpha1.FakeRbacV1alpha1{Fake: &c.Fake}\n}\n\n// ResourceV1alpha2 retrieves the ResourceV1alpha2Client\nfunc (c *Clientset) ResourceV1alpha2() resourcev1alpha2.ResourceV1alpha2Interface {\n\treturn &fakeresourcev1alpha2.FakeResourceV1alpha2{Fake: &c.Fake}\n}\n\n// SchedulingV1alpha1 retrieves the SchedulingV1alpha1Client\nfunc (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface {\n\treturn &fakeschedulingv1alpha1.FakeSchedulingV1alpha1{Fake: &c.Fake}\n}\n\n// SchedulingV1beta1 retrieves the SchedulingV1beta1Client\nfunc (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface {\n\treturn &fakeschedulingv1beta1.FakeSchedulingV1beta1{Fake: &c.Fake}\n}\n\n// SchedulingV1 retrieves the SchedulingV1Client\nfunc (c *Clientset) SchedulingV1() schedulingv1.SchedulingV1Interface {\n\treturn &fakeschedulingv1.FakeSchedulingV1{Fake: &c.Fake}\n}\n\n// StorageV1beta1 retrieves the StorageV1beta1Client\nfunc (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface {\n\treturn &fakestoragev1beta1.FakeStorageV1beta1{Fake: &c.Fake}\n}\n\n// StorageV1 retrieves the StorageV1Client\nfunc (c *Clientset) StorageV1() storagev1.StorageV1Interface {\n\treturn &fakestoragev1.FakeStorageV1{Fake: &c.Fake}\n}\n\n// StorageV1alpha1 retrieves the StorageV1alpha1Client\nfunc (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface {\n\treturn &fakestoragev1alpha1.FakeStorageV1alpha1{Fake: &c.Fake}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated fake clientset.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/register.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tserializer \"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\nvar scheme = runtime.NewScheme()\nvar codecs = serializer.NewCodecFactory(scheme)\n\nvar localSchemeBuilder = runtime.SchemeBuilder{\n\tadmissionregistrationv1.AddToScheme,\n\tadmissionregistrationv1alpha1.AddToScheme,\n\tadmissionregistrationv1beta1.AddToScheme,\n\tinternalv1alpha1.AddToScheme,\n\tappsv1.AddToScheme,\n\tappsv1beta1.AddToScheme,\n\tappsv1beta2.AddToScheme,\n\tauthenticationv1.AddToScheme,\n\tauthenticationv1alpha1.AddToScheme,\n\tauthenticationv1beta1.AddToScheme,\n\tauthorizationv1.AddToScheme,\n\tauthorizationv1beta1.AddToScheme,\n\tautoscalingv1.AddToScheme,\n\tautoscalingv2.AddToScheme,\n\tautoscalingv2beta1.AddToScheme,\n\tautoscalingv2beta2.AddToScheme,\n\tbatchv1.AddToScheme,\n\tbatchv1beta1.AddToScheme,\n\tcertificatesv1.AddToScheme,\n\tcertificatesv1beta1.AddToScheme,\n\tcertificatesv1alpha1.AddToScheme,\n\tcoordinationv1beta1.AddToScheme,\n\tcoordinationv1.AddToScheme,\n\tcorev1.AddToScheme,\n\tdiscoveryv1.AddToScheme,\n\tdiscoveryv1beta1.AddToScheme,\n\teventsv1.AddToScheme,\n\teventsv1beta1.AddToScheme,\n\textensionsv1beta1.AddToScheme,\n\tflowcontrolv1alpha1.AddToScheme,\n\tflowcontrolv1beta1.AddToScheme,\n\tflowcontrolv1beta2.AddToScheme,\n\tflowcontrolv1beta3.AddToScheme,\n\tnetworkingv1.AddToScheme,\n\tnetworkingv1alpha1.AddToScheme,\n\tnetworkingv1beta1.AddToScheme,\n\tnodev1.AddToScheme,\n\tnodev1alpha1.AddToScheme,\n\tnodev1beta1.AddToScheme,\n\tpolicyv1.AddToScheme,\n\tpolicyv1beta1.AddToScheme,\n\trbacv1.AddToScheme,\n\trbacv1beta1.AddToScheme,\n\trbacv1alpha1.AddToScheme,\n\tresourcev1alpha2.AddToScheme,\n\tschedulingv1alpha1.AddToScheme,\n\tschedulingv1beta1.AddToScheme,\n\tschedulingv1.AddToScheme,\n\tstoragev1beta1.AddToScheme,\n\tstoragev1.AddToScheme,\n\tstoragev1alpha1.AddToScheme,\n}\n\n// AddToScheme adds all types of this clientset into the given scheme. This allows composition\n// of clientsets, like in:\n//\n//\timport (\n//\t  \"k8s.io/client-go/kubernetes\"\n//\t  clientsetscheme \"k8s.io/client-go/kubernetes/scheme\"\n//\t  aggregatorclientsetscheme \"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme\"\n//\t)\n//\n//\tkclientset, _ := kubernetes.NewForConfig(c)\n//\t_ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)\n//\n// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types\n// correctly.\nvar AddToScheme = localSchemeBuilder.AddToScheme\n\nfunc init() {\n\tv1.AddToGroupVersion(scheme, schema.GroupVersion{Version: \"v1\"})\n\tutilruntime.Must(AddToScheme(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/import.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file exists to enforce this clientset's vanity import path.\n\npackage kubernetes // import \"k8s.io/client-go/kubernetes\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/scheme/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package contains the scheme of the automatically generated clientset.\npackage scheme\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/scheme/register.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage scheme\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tresourcev1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tserializer \"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\nvar Scheme = runtime.NewScheme()\nvar Codecs = serializer.NewCodecFactory(Scheme)\nvar ParameterCodec = runtime.NewParameterCodec(Scheme)\nvar localSchemeBuilder = runtime.SchemeBuilder{\n\tadmissionregistrationv1.AddToScheme,\n\tadmissionregistrationv1alpha1.AddToScheme,\n\tadmissionregistrationv1beta1.AddToScheme,\n\tinternalv1alpha1.AddToScheme,\n\tappsv1.AddToScheme,\n\tappsv1beta1.AddToScheme,\n\tappsv1beta2.AddToScheme,\n\tauthenticationv1.AddToScheme,\n\tauthenticationv1alpha1.AddToScheme,\n\tauthenticationv1beta1.AddToScheme,\n\tauthorizationv1.AddToScheme,\n\tauthorizationv1beta1.AddToScheme,\n\tautoscalingv1.AddToScheme,\n\tautoscalingv2.AddToScheme,\n\tautoscalingv2beta1.AddToScheme,\n\tautoscalingv2beta2.AddToScheme,\n\tbatchv1.AddToScheme,\n\tbatchv1beta1.AddToScheme,\n\tcertificatesv1.AddToScheme,\n\tcertificatesv1beta1.AddToScheme,\n\tcertificatesv1alpha1.AddToScheme,\n\tcoordinationv1beta1.AddToScheme,\n\tcoordinationv1.AddToScheme,\n\tcorev1.AddToScheme,\n\tdiscoveryv1.AddToScheme,\n\tdiscoveryv1beta1.AddToScheme,\n\teventsv1.AddToScheme,\n\teventsv1beta1.AddToScheme,\n\textensionsv1beta1.AddToScheme,\n\tflowcontrolv1alpha1.AddToScheme,\n\tflowcontrolv1beta1.AddToScheme,\n\tflowcontrolv1beta2.AddToScheme,\n\tflowcontrolv1beta3.AddToScheme,\n\tnetworkingv1.AddToScheme,\n\tnetworkingv1alpha1.AddToScheme,\n\tnetworkingv1beta1.AddToScheme,\n\tnodev1.AddToScheme,\n\tnodev1alpha1.AddToScheme,\n\tnodev1beta1.AddToScheme,\n\tpolicyv1.AddToScheme,\n\tpolicyv1beta1.AddToScheme,\n\trbacv1.AddToScheme,\n\trbacv1beta1.AddToScheme,\n\trbacv1alpha1.AddToScheme,\n\tresourcev1alpha2.AddToScheme,\n\tschedulingv1alpha1.AddToScheme,\n\tschedulingv1beta1.AddToScheme,\n\tschedulingv1.AddToScheme,\n\tstoragev1beta1.AddToScheme,\n\tstoragev1.AddToScheme,\n\tstoragev1alpha1.AddToScheme,\n}\n\n// AddToScheme adds all types of this clientset into the given scheme. This allows composition\n// of clientsets, like in:\n//\n//\timport (\n//\t  \"k8s.io/client-go/kubernetes\"\n//\t  clientsetscheme \"k8s.io/client-go/kubernetes/scheme\"\n//\t  aggregatorclientsetscheme \"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme\"\n//\t)\n//\n//\tkclientset, _ := kubernetes.NewForConfig(c)\n//\t_ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)\n//\n// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types\n// correctly.\nvar AddToScheme = localSchemeBuilder.AddToScheme\n\nfunc init() {\n\tv1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: \"v1\"})\n\tutilruntime.Must(AddToScheme(Scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1Interface interface {\n\tRESTClient() rest.Interface\n\tMutatingWebhookConfigurationsGetter\n\tValidatingWebhookConfigurationsGetter\n}\n\n// AdmissionregistrationV1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1Client) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface {\n\treturn newMutatingWebhookConfigurations(c)\n}\n\nfunc (c *AdmissionregistrationV1Client) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface {\n\treturn newValidatingWebhookConfigurations(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1Client {\n\treturn &AdmissionregistrationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1) MutatingWebhookConfigurations() v1.MutatingWebhookConfigurationInterface {\n\treturn &FakeMutatingWebhookConfigurations{c}\n}\n\nfunc (c *FakeAdmissionregistrationV1) ValidatingWebhookConfigurations() v1.ValidatingWebhookConfigurationInterface {\n\treturn &FakeValidatingWebhookConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype FakeMutatingWebhookConfigurations struct {\n\tFake *FakeAdmissionregistrationV1\n}\n\nvar mutatingwebhookconfigurationsResource = v1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\")\n\nvar mutatingwebhookconfigurationsKind = v1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\")\n\n// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(mutatingwebhookconfigurationsResource, name), &v1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.MutatingWebhookConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors.\nfunc (c *FakeMutatingWebhookConfigurations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.MutatingWebhookConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(mutatingwebhookconfigurationsResource, mutatingwebhookconfigurationsKind, opts), &v1.MutatingWebhookConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.MutatingWebhookConfigurationList{ListMeta: obj.(*v1.MutatingWebhookConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1.MutatingWebhookConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations.\nfunc (c *FakeMutatingWebhookConfigurations) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(mutatingwebhookconfigurationsResource, opts))\n}\n\n// Create takes the representation of a mutatingWebhookConfiguration and creates it.  Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Create(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.CreateOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.MutatingWebhookConfiguration), err\n}\n\n// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Update(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.UpdateOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.MutatingWebhookConfiguration), err\n}\n\n// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakeMutatingWebhookConfigurations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(mutatingwebhookconfigurationsResource, name, opts), &v1.MutatingWebhookConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeMutatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(mutatingwebhookconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.MutatingWebhookConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched mutatingWebhookConfiguration.\nfunc (c *FakeMutatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.MutatingWebhookConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration.\nfunc (c *FakeMutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tif mutatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(mutatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := mutatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.MutatingWebhookConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype FakeValidatingWebhookConfigurations struct {\n\tFake *FakeAdmissionregistrationV1\n}\n\nvar validatingwebhookconfigurationsResource = v1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\")\n\nvar validatingwebhookconfigurationsKind = v1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\")\n\n// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(validatingwebhookconfigurationsResource, name), &v1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ValidatingWebhookConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors.\nfunc (c *FakeValidatingWebhookConfigurations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ValidatingWebhookConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(validatingwebhookconfigurationsResource, validatingwebhookconfigurationsKind, opts), &v1.ValidatingWebhookConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ValidatingWebhookConfigurationList{ListMeta: obj.(*v1.ValidatingWebhookConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1.ValidatingWebhookConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations.\nfunc (c *FakeValidatingWebhookConfigurations) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(validatingwebhookconfigurationsResource, opts))\n}\n\n// Create takes the representation of a validatingWebhookConfiguration and creates it.  Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Create(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.CreateOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ValidatingWebhookConfiguration), err\n}\n\n// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Update(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.UpdateOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ValidatingWebhookConfiguration), err\n}\n\n// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakeValidatingWebhookConfigurations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(validatingwebhookconfigurationsResource, name, opts), &v1.ValidatingWebhookConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeValidatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(validatingwebhookconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ValidatingWebhookConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched validatingWebhookConfiguration.\nfunc (c *FakeValidatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ValidatingWebhookConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration.\nfunc (c *FakeValidatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tif validatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(validatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ValidatingWebhookConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype MutatingWebhookConfigurationExpansion interface{}\n\ntype ValidatingWebhookConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype MutatingWebhookConfigurationsGetter interface {\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInterface\n}\n\n// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources.\ntype MutatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.CreateOptions) (*v1.MutatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.UpdateOptions) (*v1.MutatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.MutatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.MutatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.MutatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.MutatingWebhookConfiguration, err error)\n\tMutatingWebhookConfigurationExpansion\n}\n\n// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype mutatingWebhookConfigurations struct {\n\tclient rest.Interface\n}\n\n// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations\nfunc newMutatingWebhookConfigurations(c *AdmissionregistrationV1Client) *mutatingWebhookConfigurations {\n\treturn &mutatingWebhookConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any.\nfunc (c *mutatingWebhookConfigurations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1.MutatingWebhookConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors.\nfunc (c *mutatingWebhookConfigurations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.MutatingWebhookConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.MutatingWebhookConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations.\nfunc (c *mutatingWebhookConfigurations) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a mutatingWebhookConfiguration and creates it.  Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *mutatingWebhookConfigurations) Create(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.CreateOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1.MutatingWebhookConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(mutatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *mutatingWebhookConfigurations) Update(ctx context.Context, mutatingWebhookConfiguration *v1.MutatingWebhookConfiguration, opts metav1.UpdateOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1.MutatingWebhookConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(mutatingWebhookConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(mutatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *mutatingWebhookConfigurations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *mutatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched mutatingWebhookConfiguration.\nfunc (c *mutatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1.MutatingWebhookConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration.\nfunc (c *mutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.MutatingWebhookConfiguration, err error) {\n\tif mutatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(mutatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := mutatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1.MutatingWebhookConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype ValidatingWebhookConfigurationsGetter interface {\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface\n}\n\n// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources.\ntype ValidatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.CreateOptions) (*v1.ValidatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.UpdateOptions) (*v1.ValidatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ValidatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ValidatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ValidatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ValidatingWebhookConfiguration, err error)\n\tValidatingWebhookConfigurationExpansion\n}\n\n// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype validatingWebhookConfigurations struct {\n\tclient rest.Interface\n}\n\n// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations\nfunc newValidatingWebhookConfigurations(c *AdmissionregistrationV1Client) *validatingWebhookConfigurations {\n\treturn &validatingWebhookConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any.\nfunc (c *validatingWebhookConfigurations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1.ValidatingWebhookConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors.\nfunc (c *validatingWebhookConfigurations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ValidatingWebhookConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ValidatingWebhookConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations.\nfunc (c *validatingWebhookConfigurations) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a validatingWebhookConfiguration and creates it.  Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *validatingWebhookConfigurations) Create(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.CreateOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1.ValidatingWebhookConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *validatingWebhookConfigurations) Update(ctx context.Context, validatingWebhookConfiguration *v1.ValidatingWebhookConfiguration, opts metav1.UpdateOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1.ValidatingWebhookConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(validatingWebhookConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *validatingWebhookConfigurations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *validatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched validatingWebhookConfiguration.\nfunc (c *validatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1.ValidatingWebhookConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration.\nfunc (c *validatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ValidatingWebhookConfiguration, err error) {\n\tif validatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(validatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ValidatingWebhookConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tValidatingAdmissionPoliciesGetter\n\tValidatingAdmissionPolicyBindingsGetter\n}\n\n// AdmissionregistrationV1alpha1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface {\n\treturn newValidatingAdmissionPolicies(c)\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface {\n\treturn newValidatingAdmissionPolicyBindings(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1alpha1Client {\n\treturn &AdmissionregistrationV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) ValidatingAdmissionPolicies() v1alpha1.ValidatingAdmissionPolicyInterface {\n\treturn &FakeValidatingAdmissionPolicies{c}\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) ValidatingAdmissionPolicyBindings() v1alpha1.ValidatingAdmissionPolicyBindingInterface {\n\treturn &FakeValidatingAdmissionPolicyBindings{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeValidatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype FakeValidatingAdmissionPolicies struct {\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nvar validatingadmissionpoliciesResource = v1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\")\n\nvar validatingadmissionpoliciesKind = v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\")\n\n// Get takes name of the validatingAdmissionPolicy, and returns the corresponding validatingAdmissionPolicy object, and an error if there is any.\nfunc (c *FakeValidatingAdmissionPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(validatingadmissionpoliciesResource, name), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// List takes label and field selectors, and returns the list of ValidatingAdmissionPolicies that match those selectors.\nfunc (c *FakeValidatingAdmissionPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ValidatingAdmissionPolicyList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(validatingadmissionpoliciesResource, validatingadmissionpoliciesKind, opts), &v1alpha1.ValidatingAdmissionPolicyList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ValidatingAdmissionPolicyList{ListMeta: obj.(*v1alpha1.ValidatingAdmissionPolicyList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ValidatingAdmissionPolicyList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested validatingAdmissionPolicies.\nfunc (c *FakeValidatingAdmissionPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(validatingadmissionpoliciesResource, opts))\n}\n\n// Create takes the representation of a validatingAdmissionPolicy and creates it.  Returns the server's representation of the validatingAdmissionPolicy, and an error, if there is any.\nfunc (c *FakeValidatingAdmissionPolicies) Create(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.CreateOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(validatingadmissionpoliciesResource, validatingAdmissionPolicy), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// Update takes the representation of a validatingAdmissionPolicy and updates it. Returns the server's representation of the validatingAdmissionPolicy, and an error, if there is any.\nfunc (c *FakeValidatingAdmissionPolicies) Update(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(validatingadmissionpoliciesResource, validatingAdmissionPolicy), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeValidatingAdmissionPolicies) UpdateStatus(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*v1alpha1.ValidatingAdmissionPolicy, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(validatingadmissionpoliciesResource, \"status\", validatingAdmissionPolicy), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// Delete takes name of the validatingAdmissionPolicy and deletes it. Returns an error if one occurs.\nfunc (c *FakeValidatingAdmissionPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(validatingadmissionpoliciesResource, name, opts), &v1alpha1.ValidatingAdmissionPolicy{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeValidatingAdmissionPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(validatingadmissionpoliciesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ValidatingAdmissionPolicyList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched validatingAdmissionPolicy.\nfunc (c *FakeValidatingAdmissionPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingadmissionpoliciesResource, name, pt, data, subresources...), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingAdmissionPolicy.\nfunc (c *FakeValidatingAdmissionPolicies) Apply(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tif validatingAdmissionPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(validatingAdmissionPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingAdmissionPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingadmissionpoliciesResource, *name, types.ApplyPatchType, data), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeValidatingAdmissionPolicies) ApplyStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tif validatingAdmissionPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(validatingAdmissionPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingAdmissionPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingadmissionpoliciesResource, *name, types.ApplyPatchType, data, \"status\"), &v1alpha1.ValidatingAdmissionPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicy), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeValidatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype FakeValidatingAdmissionPolicyBindings struct {\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nvar validatingadmissionpolicybindingsResource = v1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\")\n\nvar validatingadmissionpolicybindingsKind = v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\n// Get takes name of the validatingAdmissionPolicyBinding, and returns the corresponding validatingAdmissionPolicyBinding object, and an error if there is any.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(validatingadmissionpolicybindingsResource, name), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicyBinding), err\n}\n\n// List takes label and field selectors, and returns the list of ValidatingAdmissionPolicyBindings that match those selectors.\nfunc (c *FakeValidatingAdmissionPolicyBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ValidatingAdmissionPolicyBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(validatingadmissionpolicybindingsResource, validatingadmissionpolicybindingsKind, opts), &v1alpha1.ValidatingAdmissionPolicyBindingList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ValidatingAdmissionPolicyBindingList{ListMeta: obj.(*v1alpha1.ValidatingAdmissionPolicyBindingList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ValidatingAdmissionPolicyBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested validatingAdmissionPolicyBindings.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(validatingadmissionpolicybindingsResource, opts))\n}\n\n// Create takes the representation of a validatingAdmissionPolicyBinding and creates it.  Returns the server's representation of the validatingAdmissionPolicyBinding, and an error, if there is any.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Create(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.CreateOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(validatingadmissionpolicybindingsResource, validatingAdmissionPolicyBinding), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicyBinding), err\n}\n\n// Update takes the representation of a validatingAdmissionPolicyBinding and updates it. Returns the server's representation of the validatingAdmissionPolicyBinding, and an error, if there is any.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Update(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.UpdateOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(validatingadmissionpolicybindingsResource, validatingAdmissionPolicyBinding), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicyBinding), err\n}\n\n// Delete takes name of the validatingAdmissionPolicyBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(validatingadmissionpolicybindingsResource, name, opts), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeValidatingAdmissionPolicyBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(validatingadmissionpolicybindingsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ValidatingAdmissionPolicyBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched validatingAdmissionPolicyBinding.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingadmissionpolicybindingsResource, name, pt, data, subresources...), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicyBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingAdmissionPolicyBinding.\nfunc (c *FakeValidatingAdmissionPolicyBindings) Apply(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tif validatingAdmissionPolicyBinding == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicyBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(validatingAdmissionPolicyBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingAdmissionPolicyBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicyBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingadmissionpolicybindingsResource, *name, types.ApplyPatchType, data), &v1alpha1.ValidatingAdmissionPolicyBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ValidatingAdmissionPolicyBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ValidatingAdmissionPolicyExpansion interface{}\n\ntype ValidatingAdmissionPolicyBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ValidatingAdmissionPoliciesGetter has a method to return a ValidatingAdmissionPolicyInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPoliciesGetter interface {\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface\n}\n\n// ValidatingAdmissionPolicyInterface has methods to work with ValidatingAdmissionPolicy resources.\ntype ValidatingAdmissionPolicyInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.CreateOptions) (*v1alpha1.ValidatingAdmissionPolicy, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*v1alpha1.ValidatingAdmissionPolicy, error)\n\tUpdateStatus(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*v1alpha1.ValidatingAdmissionPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ValidatingAdmissionPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ValidatingAdmissionPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicy, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error)\n\tApplyStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error)\n\tValidatingAdmissionPolicyExpansion\n}\n\n// validatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype validatingAdmissionPolicies struct {\n\tclient rest.Interface\n}\n\n// newValidatingAdmissionPolicies returns a ValidatingAdmissionPolicies\nfunc newValidatingAdmissionPolicies(c *AdmissionregistrationV1alpha1Client) *validatingAdmissionPolicies {\n\treturn &validatingAdmissionPolicies{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the validatingAdmissionPolicy, and returns the corresponding validatingAdmissionPolicy object, and an error if there is any.\nfunc (c *validatingAdmissionPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Get().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ValidatingAdmissionPolicies that match those selectors.\nfunc (c *validatingAdmissionPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ValidatingAdmissionPolicyList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ValidatingAdmissionPolicyList{}\n\terr = c.client.Get().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested validatingAdmissionPolicies.\nfunc (c *validatingAdmissionPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a validatingAdmissionPolicy and creates it.  Returns the server's representation of the validatingAdmissionPolicy, and an error, if there is any.\nfunc (c *validatingAdmissionPolicies) Create(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.CreateOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Post().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingAdmissionPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a validatingAdmissionPolicy and updates it. Returns the server's representation of the validatingAdmissionPolicy, and an error, if there is any.\nfunc (c *validatingAdmissionPolicies) Update(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Put().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(validatingAdmissionPolicy.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingAdmissionPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *validatingAdmissionPolicies) UpdateStatus(ctx context.Context, validatingAdmissionPolicy *v1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Put().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(validatingAdmissionPolicy.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingAdmissionPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the validatingAdmissionPolicy and deletes it. Returns an error if one occurs.\nfunc (c *validatingAdmissionPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *validatingAdmissionPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched validatingAdmissionPolicy.\nfunc (c *validatingAdmissionPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingAdmissionPolicy.\nfunc (c *validatingAdmissionPolicies) Apply(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tif validatingAdmissionPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(validatingAdmissionPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingAdmissionPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *validatingAdmissionPolicies) ApplyStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicy, err error) {\n\tif validatingAdmissionPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(validatingAdmissionPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := validatingAdmissionPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicy.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha1.ValidatingAdmissionPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"validatingadmissionpolicies\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ValidatingAdmissionPolicyBindingsGetter has a method to return a ValidatingAdmissionPolicyBindingInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPolicyBindingsGetter interface {\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface\n}\n\n// ValidatingAdmissionPolicyBindingInterface has methods to work with ValidatingAdmissionPolicyBinding resources.\ntype ValidatingAdmissionPolicyBindingInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.CreateOptions) (*v1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.UpdateOptions) (*v1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ValidatingAdmissionPolicyBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error)\n\tValidatingAdmissionPolicyBindingExpansion\n}\n\n// validatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype validatingAdmissionPolicyBindings struct {\n\tclient rest.Interface\n}\n\n// newValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindings\nfunc newValidatingAdmissionPolicyBindings(c *AdmissionregistrationV1alpha1Client) *validatingAdmissionPolicyBindings {\n\treturn &validatingAdmissionPolicyBindings{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the validatingAdmissionPolicyBinding, and returns the corresponding validatingAdmissionPolicyBinding object, and an error if there is any.\nfunc (c *validatingAdmissionPolicyBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBinding{}\n\terr = c.client.Get().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ValidatingAdmissionPolicyBindings that match those selectors.\nfunc (c *validatingAdmissionPolicyBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ValidatingAdmissionPolicyBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBindingList{}\n\terr = c.client.Get().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested validatingAdmissionPolicyBindings.\nfunc (c *validatingAdmissionPolicyBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a validatingAdmissionPolicyBinding and creates it.  Returns the server's representation of the validatingAdmissionPolicyBinding, and an error, if there is any.\nfunc (c *validatingAdmissionPolicyBindings) Create(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.CreateOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBinding{}\n\terr = c.client.Post().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingAdmissionPolicyBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a validatingAdmissionPolicyBinding and updates it. Returns the server's representation of the validatingAdmissionPolicyBinding, and an error, if there is any.\nfunc (c *validatingAdmissionPolicyBindings) Update(ctx context.Context, validatingAdmissionPolicyBinding *v1alpha1.ValidatingAdmissionPolicyBinding, opts v1.UpdateOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBinding{}\n\terr = c.client.Put().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tName(validatingAdmissionPolicyBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingAdmissionPolicyBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the validatingAdmissionPolicyBinding and deletes it. Returns an error if one occurs.\nfunc (c *validatingAdmissionPolicyBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *validatingAdmissionPolicyBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched validatingAdmissionPolicyBinding.\nfunc (c *validatingAdmissionPolicyBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBinding{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingAdmissionPolicyBinding.\nfunc (c *validatingAdmissionPolicyBindings) Apply(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ValidatingAdmissionPolicyBinding, err error) {\n\tif validatingAdmissionPolicyBinding == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicyBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(validatingAdmissionPolicyBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingAdmissionPolicyBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingAdmissionPolicyBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ValidatingAdmissionPolicyBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"validatingadmissionpolicybindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tMutatingWebhookConfigurationsGetter\n\tValidatingWebhookConfigurationsGetter\n}\n\n// AdmissionregistrationV1beta1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface {\n\treturn newMutatingWebhookConfigurations(c)\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface {\n\treturn newValidatingWebhookConfigurations(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1beta1Client {\n\treturn &AdmissionregistrationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) MutatingWebhookConfigurations() v1beta1.MutatingWebhookConfigurationInterface {\n\treturn &FakeMutatingWebhookConfigurations{c}\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) ValidatingWebhookConfigurations() v1beta1.ValidatingWebhookConfigurationInterface {\n\treturn &FakeValidatingWebhookConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype FakeMutatingWebhookConfigurations struct {\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nvar mutatingwebhookconfigurationsResource = v1beta1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\")\n\nvar mutatingwebhookconfigurationsKind = v1beta1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\")\n\n// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(mutatingwebhookconfigurationsResource, name), &v1beta1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.MutatingWebhookConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors.\nfunc (c *FakeMutatingWebhookConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.MutatingWebhookConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(mutatingwebhookconfigurationsResource, mutatingwebhookconfigurationsKind, opts), &v1beta1.MutatingWebhookConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.MutatingWebhookConfigurationList{ListMeta: obj.(*v1beta1.MutatingWebhookConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.MutatingWebhookConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations.\nfunc (c *FakeMutatingWebhookConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(mutatingwebhookconfigurationsResource, opts))\n}\n\n// Create takes the representation of a mutatingWebhookConfiguration and creates it.  Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Create(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.CreateOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1beta1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.MutatingWebhookConfiguration), err\n}\n\n// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeMutatingWebhookConfigurations) Update(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.UpdateOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1beta1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.MutatingWebhookConfiguration), err\n}\n\n// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakeMutatingWebhookConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(mutatingwebhookconfigurationsResource, name, opts), &v1beta1.MutatingWebhookConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeMutatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(mutatingwebhookconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.MutatingWebhookConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched mutatingWebhookConfiguration.\nfunc (c *FakeMutatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1beta1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.MutatingWebhookConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration.\nfunc (c *FakeMutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tif mutatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(mutatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := mutatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.MutatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.MutatingWebhookConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype FakeValidatingWebhookConfigurations struct {\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nvar validatingwebhookconfigurationsResource = v1beta1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\")\n\nvar validatingwebhookconfigurationsKind = v1beta1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\")\n\n// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(validatingwebhookconfigurationsResource, name), &v1beta1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ValidatingWebhookConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors.\nfunc (c *FakeValidatingWebhookConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ValidatingWebhookConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(validatingwebhookconfigurationsResource, validatingwebhookconfigurationsKind, opts), &v1beta1.ValidatingWebhookConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.ValidatingWebhookConfigurationList{ListMeta: obj.(*v1beta1.ValidatingWebhookConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.ValidatingWebhookConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations.\nfunc (c *FakeValidatingWebhookConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(validatingwebhookconfigurationsResource, opts))\n}\n\n// Create takes the representation of a validatingWebhookConfiguration and creates it.  Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Create(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.CreateOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1beta1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ValidatingWebhookConfiguration), err\n}\n\n// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *FakeValidatingWebhookConfigurations) Update(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.UpdateOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1beta1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ValidatingWebhookConfiguration), err\n}\n\n// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakeValidatingWebhookConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(validatingwebhookconfigurationsResource, name, opts), &v1beta1.ValidatingWebhookConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeValidatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(validatingwebhookconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.ValidatingWebhookConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched validatingWebhookConfiguration.\nfunc (c *FakeValidatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1beta1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ValidatingWebhookConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration.\nfunc (c *FakeValidatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tif validatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(validatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.ValidatingWebhookConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ValidatingWebhookConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype MutatingWebhookConfigurationExpansion interface{}\n\ntype ValidatingWebhookConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype MutatingWebhookConfigurationsGetter interface {\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInterface\n}\n\n// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources.\ntype MutatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.CreateOptions) (*v1beta1.MutatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.UpdateOptions) (*v1beta1.MutatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.MutatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.MutatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.MutatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error)\n\tMutatingWebhookConfigurationExpansion\n}\n\n// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype mutatingWebhookConfigurations struct {\n\tclient rest.Interface\n}\n\n// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations\nfunc newMutatingWebhookConfigurations(c *AdmissionregistrationV1beta1Client) *mutatingWebhookConfigurations {\n\treturn &mutatingWebhookConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any.\nfunc (c *mutatingWebhookConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.MutatingWebhookConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors.\nfunc (c *mutatingWebhookConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.MutatingWebhookConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.MutatingWebhookConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations.\nfunc (c *mutatingWebhookConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a mutatingWebhookConfiguration and creates it.  Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *mutatingWebhookConfigurations) Create(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.CreateOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.MutatingWebhookConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(mutatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any.\nfunc (c *mutatingWebhookConfigurations) Update(ctx context.Context, mutatingWebhookConfiguration *v1beta1.MutatingWebhookConfiguration, opts v1.UpdateOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.MutatingWebhookConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(mutatingWebhookConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(mutatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *mutatingWebhookConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *mutatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched mutatingWebhookConfiguration.\nfunc (c *mutatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.MutatingWebhookConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration.\nfunc (c *mutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) {\n\tif mutatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(mutatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := mutatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"mutatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.MutatingWebhookConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"mutatingwebhookconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype ValidatingWebhookConfigurationsGetter interface {\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface\n}\n\n// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources.\ntype ValidatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.CreateOptions) (*v1beta1.ValidatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.UpdateOptions) (*v1beta1.ValidatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.ValidatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.ValidatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ValidatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error)\n\tValidatingWebhookConfigurationExpansion\n}\n\n// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype validatingWebhookConfigurations struct {\n\tclient rest.Interface\n}\n\n// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations\nfunc newValidatingWebhookConfigurations(c *AdmissionregistrationV1beta1Client) *validatingWebhookConfigurations {\n\treturn &validatingWebhookConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any.\nfunc (c *validatingWebhookConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.ValidatingWebhookConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors.\nfunc (c *validatingWebhookConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ValidatingWebhookConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.ValidatingWebhookConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations.\nfunc (c *validatingWebhookConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a validatingWebhookConfiguration and creates it.  Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *validatingWebhookConfigurations) Create(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.CreateOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.ValidatingWebhookConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any.\nfunc (c *validatingWebhookConfigurations) Update(ctx context.Context, validatingWebhookConfiguration *v1beta1.ValidatingWebhookConfiguration, opts v1.UpdateOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.ValidatingWebhookConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(validatingWebhookConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(validatingWebhookConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *validatingWebhookConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *validatingWebhookConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched validatingWebhookConfiguration.\nfunc (c *validatingWebhookConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tresult = &v1beta1.ValidatingWebhookConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration.\nfunc (c *validatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) {\n\tif validatingWebhookConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(validatingWebhookConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := validatingWebhookConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"validatingWebhookConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.ValidatingWebhookConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"validatingwebhookconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/apiserverinternal_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype InternalV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tStorageVersionsGetter\n}\n\n// InternalV1alpha1Client is used to interact with features provided by the internal.apiserver.k8s.io group.\ntype InternalV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *InternalV1alpha1Client) StorageVersions() StorageVersionInterface {\n\treturn newStorageVersions(c)\n}\n\n// NewForConfig creates a new InternalV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*InternalV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new InternalV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*InternalV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &InternalV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new InternalV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *InternalV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new InternalV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *InternalV1alpha1Client {\n\treturn &InternalV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *InternalV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_apiserverinternal_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeInternalV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeInternalV1alpha1) StorageVersions() v1alpha1.StorageVersionInterface {\n\treturn &FakeStorageVersions{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeInternalV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapiserverinternalv1alpha1 \"k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStorageVersions implements StorageVersionInterface\ntype FakeStorageVersions struct {\n\tFake *FakeInternalV1alpha1\n}\n\nvar storageversionsResource = v1alpha1.SchemeGroupVersion.WithResource(\"storageversions\")\n\nvar storageversionsKind = v1alpha1.SchemeGroupVersion.WithKind(\"StorageVersion\")\n\n// Get takes name of the storageVersion, and returns the corresponding storageVersion object, and an error if there is any.\nfunc (c *FakeStorageVersions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.StorageVersion, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(storageversionsResource, name), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// List takes label and field selectors, and returns the list of StorageVersions that match those selectors.\nfunc (c *FakeStorageVersions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.StorageVersionList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(storageversionsResource, storageversionsKind, opts), &v1alpha1.StorageVersionList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.StorageVersionList{ListMeta: obj.(*v1alpha1.StorageVersionList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.StorageVersionList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested storageVersions.\nfunc (c *FakeStorageVersions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(storageversionsResource, opts))\n}\n\n// Create takes the representation of a storageVersion and creates it.  Returns the server's representation of the storageVersion, and an error, if there is any.\nfunc (c *FakeStorageVersions) Create(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.CreateOptions) (result *v1alpha1.StorageVersion, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(storageversionsResource, storageVersion), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// Update takes the representation of a storageVersion and updates it. Returns the server's representation of the storageVersion, and an error, if there is any.\nfunc (c *FakeStorageVersions) Update(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (result *v1alpha1.StorageVersion, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(storageversionsResource, storageVersion), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeStorageVersions) UpdateStatus(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (*v1alpha1.StorageVersion, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(storageversionsResource, \"status\", storageVersion), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// Delete takes name of the storageVersion and deletes it. Returns an error if one occurs.\nfunc (c *FakeStorageVersions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(storageversionsResource, name, opts), &v1alpha1.StorageVersion{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStorageVersions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(storageversionsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.StorageVersionList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched storageVersion.\nfunc (c *FakeStorageVersions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.StorageVersion, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageversionsResource, name, pt, data, subresources...), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageVersion.\nfunc (c *FakeStorageVersions) Apply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) {\n\tif storageVersion == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(storageVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageVersion.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageversionsResource, *name, types.ApplyPatchType, data), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeStorageVersions) ApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) {\n\tif storageVersion == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(storageVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageVersion.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageversionsResource, *name, types.ApplyPatchType, data, \"status\"), &v1alpha1.StorageVersion{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.StorageVersion), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype StorageVersionExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapiserverinternalv1alpha1 \"k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StorageVersionsGetter has a method to return a StorageVersionInterface.\n// A group's client should implement this interface.\ntype StorageVersionsGetter interface {\n\tStorageVersions() StorageVersionInterface\n}\n\n// StorageVersionInterface has methods to work with StorageVersion resources.\ntype StorageVersionInterface interface {\n\tCreate(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.CreateOptions) (*v1alpha1.StorageVersion, error)\n\tUpdate(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (*v1alpha1.StorageVersion, error)\n\tUpdateStatus(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (*v1alpha1.StorageVersion, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.StorageVersion, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.StorageVersionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.StorageVersion, err error)\n\tApply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error)\n\tApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error)\n\tStorageVersionExpansion\n}\n\n// storageVersions implements StorageVersionInterface\ntype storageVersions struct {\n\tclient rest.Interface\n}\n\n// newStorageVersions returns a StorageVersions\nfunc newStorageVersions(c *InternalV1alpha1Client) *storageVersions {\n\treturn &storageVersions{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the storageVersion, and returns the corresponding storageVersion object, and an error if there is any.\nfunc (c *storageVersions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.StorageVersion, err error) {\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Get().\n\t\tResource(\"storageversions\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StorageVersions that match those selectors.\nfunc (c *storageVersions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.StorageVersionList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.StorageVersionList{}\n\terr = c.client.Get().\n\t\tResource(\"storageversions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested storageVersions.\nfunc (c *storageVersions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"storageversions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a storageVersion and creates it.  Returns the server's representation of the storageVersion, and an error, if there is any.\nfunc (c *storageVersions) Create(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.CreateOptions) (result *v1alpha1.StorageVersion, err error) {\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Post().\n\t\tResource(\"storageversions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageVersion).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a storageVersion and updates it. Returns the server's representation of the storageVersion, and an error, if there is any.\nfunc (c *storageVersions) Update(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (result *v1alpha1.StorageVersion, err error) {\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Put().\n\t\tResource(\"storageversions\").\n\t\tName(storageVersion.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageVersion).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *storageVersions) UpdateStatus(ctx context.Context, storageVersion *v1alpha1.StorageVersion, opts v1.UpdateOptions) (result *v1alpha1.StorageVersion, err error) {\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Put().\n\t\tResource(\"storageversions\").\n\t\tName(storageVersion.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageVersion).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the storageVersion and deletes it. Returns an error if one occurs.\nfunc (c *storageVersions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"storageversions\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *storageVersions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"storageversions\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched storageVersion.\nfunc (c *storageVersions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.StorageVersion, err error) {\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"storageversions\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageVersion.\nfunc (c *storageVersions) Apply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) {\n\tif storageVersion == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(storageVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageVersion.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"storageversions\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *storageVersions) ApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) {\n\tif storageVersion == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(storageVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := storageVersion.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageVersion.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha1.StorageVersion{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"storageversions\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tReplicaSetsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1Client is used to interact with features provided by the apps group.\ntype AppsV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *AppsV1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\nfunc (c *AppsV1Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1Client {\n\treturn &AppsV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.CreateOptions) (*v1.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.UpdateOptions) (*v1.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ControllerRevision, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *appsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *controllerRevisions) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ControllerRevision, err error) {\n\tresult = &v1.ControllerRevision{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *controllerRevisions) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ControllerRevisionList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ControllerRevisionList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *controllerRevisions) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Create(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.CreateOptions) (result *v1.ControllerRevision, err error) {\n\tresult = &v1.ControllerRevision{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Update(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.UpdateOptions) (result *v1.ControllerRevision, err error) {\n\tresult = &v1.ControllerRevision{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(controllerRevision.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *controllerRevisions) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *controllerRevisions) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ControllerRevision, err error) {\n\tresult = &v1.ControllerRevision{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ControllerRevision{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.CreateOptions) (*v1.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (*v1.DaemonSet, error)\n\tUpdateStatus(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (*v1.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.DaemonSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.DaemonSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error)\n\tApplyStatus(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *AppsV1Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *daemonSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.DaemonSet, err error) {\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *daemonSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DaemonSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.DaemonSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *daemonSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Create(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.CreateOptions) (result *v1.DaemonSet, err error) {\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Update(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (result *v1.DaemonSet, err error) {\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *daemonSets) UpdateStatus(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (result *v1.DaemonSet, err error) {\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *daemonSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *daemonSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DaemonSet, err error) {\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *daemonSets) Apply(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *v1.Deployment, opts metav1.CreateOptions) (*v1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (*v1.Deployment, error)\n\tUpdateStatus(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (*v1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Deployment, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.DeploymentList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Deployment, err error)\n\tApply(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error)\n\tApplyStatus(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error)\n\tGetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *deployments) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Deployment, err error) {\n\tresult = &v1.Deployment{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *deployments) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DeploymentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.DeploymentList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *deployments) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Create(ctx context.Context, deployment *v1.Deployment, opts metav1.CreateOptions) (result *v1.Deployment, err error) {\n\tresult = &v1.Deployment{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Update(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (result *v1.Deployment, err error) {\n\tresult = &v1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *deployments) UpdateStatus(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (result *v1.Deployment, err error) {\n\tresult = &v1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *deployments) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *deployments) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Deployment, err error) {\n\tresult = &v1.Deployment{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *deployments) Apply(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the deployment, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *deployments) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *deployments) UpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *deployments) ApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1) ControllerRevisions(namespace string) v1.ControllerRevisionInterface {\n\treturn &FakeControllerRevisions{c, namespace}\n}\n\nfunc (c *FakeAppsV1) DaemonSets(namespace string) v1.DaemonSetInterface {\n\treturn &FakeDaemonSets{c, namespace}\n}\n\nfunc (c *FakeAppsV1) Deployments(namespace string) v1.DeploymentInterface {\n\treturn &FakeDeployments{c, namespace}\n}\n\nfunc (c *FakeAppsV1) ReplicaSets(namespace string) v1.ReplicaSetInterface {\n\treturn &FakeReplicaSets{c, namespace}\n}\n\nfunc (c *FakeAppsV1) StatefulSets(namespace string) v1.StatefulSetInterface {\n\treturn &FakeStatefulSets{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeControllerRevisions implements ControllerRevisionInterface\ntype FakeControllerRevisions struct {\n\tFake *FakeAppsV1\n\tns   string\n}\n\nvar controllerrevisionsResource = v1.SchemeGroupVersion.WithResource(\"controllerrevisions\")\n\nvar controllerrevisionsKind = v1.SchemeGroupVersion.WithKind(\"ControllerRevision\")\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *FakeControllerRevisions) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &v1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ControllerRevision), err\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *FakeControllerRevisions) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ControllerRevisionList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &v1.ControllerRevisionList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ControllerRevisionList{ListMeta: obj.(*v1.ControllerRevisionList).ListMeta}\n\tfor _, item := range obj.(*v1.ControllerRevisionList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *FakeControllerRevisions) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(controllerrevisionsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Create(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.CreateOptions) (result *v1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ControllerRevision), err\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Update(ctx context.Context, controllerRevision *v1.ControllerRevision, opts metav1.UpdateOptions) (result *v1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ControllerRevision), err\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *FakeControllerRevisions) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(controllerrevisionsResource, c.ns, name, opts), &v1.ControllerRevision{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeControllerRevisions) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(controllerrevisionsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ControllerRevisionList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &v1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ControllerRevision), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &v1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ControllerRevision), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDaemonSets implements DaemonSetInterface\ntype FakeDaemonSets struct {\n\tFake *FakeAppsV1\n\tns   string\n}\n\nvar daemonsetsResource = v1.SchemeGroupVersion.WithResource(\"daemonsets\")\n\nvar daemonsetsKind = v1.SchemeGroupVersion.WithKind(\"DaemonSet\")\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *FakeDaemonSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *FakeDaemonSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DaemonSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &v1.DaemonSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.DaemonSetList{ListMeta: obj.(*v1.DaemonSetList).ListMeta}\n\tfor _, item := range obj.(*v1.DaemonSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *FakeDaemonSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(daemonsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Create(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.CreateOptions) (result *v1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Update(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (result *v1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDaemonSets) UpdateStatus(ctx context.Context, daemonSet *v1.DaemonSet, opts metav1.UpdateOptions) (*v1.DaemonSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(daemonsetsResource, \"status\", c.ns, daemonSet), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeDaemonSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(daemonsetsResource, c.ns, name, opts), &v1.DaemonSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDaemonSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(daemonsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.DaemonSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.DaemonSet), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDeployments implements DeploymentInterface\ntype FakeDeployments struct {\n\tFake *FakeAppsV1\n\tns   string\n}\n\nvar deploymentsResource = v1.SchemeGroupVersion.WithResource(\"deployments\")\n\nvar deploymentsKind = v1.SchemeGroupVersion.WithKind(\"Deployment\")\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *FakeDeployments) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(deploymentsResource, c.ns, name), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *FakeDeployments) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DeploymentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &v1.DeploymentList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.DeploymentList{ListMeta: obj.(*v1.DeploymentList).ListMeta}\n\tfor _, item := range obj.(*v1.DeploymentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *FakeDeployments) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(deploymentsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Create(ctx context.Context, deployment *v1.Deployment, opts metav1.CreateOptions) (result *v1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Update(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (result *v1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDeployments) UpdateStatus(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (*v1.Deployment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"status\", c.ns, deployment), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *FakeDeployments) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(deploymentsResource, c.ns, name, opts), &v1.Deployment{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDeployments) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.DeploymentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *FakeDeployments) Apply(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Deployment), err\n}\n\n// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeDeployments) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, \"scale\", deploymentName), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeDeployments) UpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"scale\", c.ns, scale), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeDeployments) ApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, deploymentName, types.ApplyPatchType, data, \"status\"), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeReplicaSets implements ReplicaSetInterface\ntype FakeReplicaSets struct {\n\tFake *FakeAppsV1\n\tns   string\n}\n\nvar replicasetsResource = v1.SchemeGroupVersion.WithResource(\"replicasets\")\n\nvar replicasetsKind = v1.SchemeGroupVersion.WithKind(\"ReplicaSet\")\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *FakeReplicaSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(replicasetsResource, c.ns, name), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *FakeReplicaSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ReplicaSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &v1.ReplicaSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ReplicaSetList{ListMeta: obj.(*v1.ReplicaSetList).ListMeta}\n\tfor _, item := range obj.(*v1.ReplicaSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *FakeReplicaSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(replicasetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Create(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.CreateOptions) (result *v1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Update(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (result *v1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeReplicaSets) UpdateStatus(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (*v1.ReplicaSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicasetsResource, \"status\", c.ns, replicaSet), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeReplicaSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(replicasetsResource, c.ns, name, opts), &v1.ReplicaSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeReplicaSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(replicasetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ReplicaSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicaSet), err\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, \"scale\", replicaSetName), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeReplicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicasetsResource, \"scale\", c.ns, scale), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeReplicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, replicaSetName, types.ApplyPatchType, data, \"status\"), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStatefulSets implements StatefulSetInterface\ntype FakeStatefulSets struct {\n\tFake *FakeAppsV1\n\tns   string\n}\n\nvar statefulsetsResource = v1.SchemeGroupVersion.WithResource(\"statefulsets\")\n\nvar statefulsetsKind = v1.SchemeGroupVersion.WithKind(\"StatefulSet\")\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *FakeStatefulSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *FakeStatefulSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.StatefulSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &v1.StatefulSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.StatefulSetList{ListMeta: obj.(*v1.StatefulSetList).ListMeta}\n\tfor _, item := range obj.(*v1.StatefulSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *FakeStatefulSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(statefulsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Create(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.CreateOptions) (result *v1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Update(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (result *v1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeStatefulSets) UpdateStatus(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (*v1.StatefulSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(statefulsetsResource, \"status\", c.ns, statefulSet), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeStatefulSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(statefulsetsResource, c.ns, name, opts), &v1.StatefulSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStatefulSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(statefulsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.StatefulSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StatefulSet), err\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(statefulsetsResource, c.ns, \"scale\", statefulSetName), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeStatefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(statefulsetsResource, \"scale\", c.ns, scale), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeStatefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, statefulSetName, types.ApplyPatchType, data, \"status\"), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ControllerRevisionExpansion interface{}\n\ntype DaemonSetExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.CreateOptions) (*v1.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (*v1.ReplicaSet, error)\n\tUpdateStatus(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (*v1.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ReplicaSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error)\n\tApplyStatus(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error)\n\tGetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *AppsV1Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *replicaSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ReplicaSet, err error) {\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *replicaSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ReplicaSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ReplicaSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *replicaSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Create(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.CreateOptions) (result *v1.ReplicaSet, err error) {\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Update(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (result *v1.ReplicaSet, err error) {\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *replicaSets) UpdateStatus(ctx context.Context, replicaSet *v1.ReplicaSet, opts metav1.UpdateOptions) (result *v1.ReplicaSet, err error) {\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *replicaSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *replicaSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicaSet, err error) {\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *replicaSets) Apply(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *replicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.CreateOptions) (*v1.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (*v1.StatefulSet, error)\n\tUpdateStatus(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (*v1.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.StatefulSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.StatefulSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error)\n\tApplyStatus(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error)\n\tGetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *statefulSets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.StatefulSet, err error) {\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *statefulSets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.StatefulSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.StatefulSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *statefulSets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Create(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.CreateOptions) (result *v1.StatefulSet, err error) {\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Update(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (result *v1.StatefulSet, err error) {\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *statefulSets) UpdateStatus(ctx context.Context, statefulSet *v1.StatefulSet, opts metav1.UpdateOptions) (result *v1.StatefulSet, err error) {\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *statefulSets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *statefulSets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StatefulSet, err error) {\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *statefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *statefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDeploymentsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1beta1Client is used to interact with features provided by the apps group.\ntype AppsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1beta1Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1beta1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1beta1Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1beta1Client {\n\treturn &AppsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.CreateOptions) (*v1beta1.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.UpdateOptions) (*v1beta1.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.ControllerRevision, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1beta1Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *controllerRevisions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ControllerRevision, err error) {\n\tresult = &v1beta1.ControllerRevision{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *controllerRevisions) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ControllerRevisionList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.ControllerRevisionList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *controllerRevisions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Create(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.CreateOptions) (result *v1beta1.ControllerRevision, err error) {\n\tresult = &v1beta1.ControllerRevision{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Update(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.UpdateOptions) (result *v1beta1.ControllerRevision, err error) {\n\tresult = &v1beta1.ControllerRevision{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(controllerRevision.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *controllerRevisions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *controllerRevisions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ControllerRevision, err error) {\n\tresult = &v1beta1.ControllerRevision{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.ControllerRevision{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (*v1beta1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error)\n\tUpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error)\n\tApply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error)\n\tApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error)\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1beta1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *deployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *deployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.DeploymentList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *deployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Create(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Update(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *deployments) UpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *deployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *deployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *deployments) Apply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1beta1) ControllerRevisions(namespace string) v1beta1.ControllerRevisionInterface {\n\treturn &FakeControllerRevisions{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterface {\n\treturn &FakeDeployments{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta1) StatefulSets(namespace string) v1beta1.StatefulSetInterface {\n\treturn &FakeStatefulSets{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeControllerRevisions implements ControllerRevisionInterface\ntype FakeControllerRevisions struct {\n\tFake *FakeAppsV1beta1\n\tns   string\n}\n\nvar controllerrevisionsResource = v1beta1.SchemeGroupVersion.WithResource(\"controllerrevisions\")\n\nvar controllerrevisionsKind = v1beta1.SchemeGroupVersion.WithKind(\"ControllerRevision\")\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *FakeControllerRevisions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &v1beta1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ControllerRevision), err\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *FakeControllerRevisions) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ControllerRevisionList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &v1beta1.ControllerRevisionList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.ControllerRevisionList{ListMeta: obj.(*v1beta1.ControllerRevisionList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.ControllerRevisionList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *FakeControllerRevisions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(controllerrevisionsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Create(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.CreateOptions) (result *v1beta1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1beta1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ControllerRevision), err\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Update(ctx context.Context, controllerRevision *v1beta1.ControllerRevision, opts v1.UpdateOptions) (result *v1beta1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1beta1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ControllerRevision), err\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *FakeControllerRevisions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(controllerrevisionsResource, c.ns, name, opts), &v1beta1.ControllerRevision{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeControllerRevisions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(controllerrevisionsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.ControllerRevisionList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &v1beta1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ControllerRevision), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ControllerRevision), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDeployments implements DeploymentInterface\ntype FakeDeployments struct {\n\tFake *FakeAppsV1beta1\n\tns   string\n}\n\nvar deploymentsResource = v1beta1.SchemeGroupVersion.WithResource(\"deployments\")\n\nvar deploymentsKind = v1beta1.SchemeGroupVersion.WithKind(\"Deployment\")\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *FakeDeployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(deploymentsResource, c.ns, name), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *FakeDeployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &v1beta1.DeploymentList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.DeploymentList{ListMeta: obj.(*v1beta1.DeploymentList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.DeploymentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *FakeDeployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(deploymentsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Create(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Update(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDeployments) UpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"status\", c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *FakeDeployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(deploymentsResource, c.ns, name, opts), &v1beta1.Deployment{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDeployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.DeploymentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *FakeDeployments) Apply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStatefulSets implements StatefulSetInterface\ntype FakeStatefulSets struct {\n\tFake *FakeAppsV1beta1\n\tns   string\n}\n\nvar statefulsetsResource = v1beta1.SchemeGroupVersion.WithResource(\"statefulsets\")\n\nvar statefulsetsKind = v1beta1.SchemeGroupVersion.WithKind(\"StatefulSet\")\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *FakeStatefulSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *FakeStatefulSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.StatefulSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &v1beta1.StatefulSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.StatefulSetList{ListMeta: obj.(*v1beta1.StatefulSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.StatefulSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *FakeStatefulSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(statefulsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Create(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.CreateOptions) (result *v1beta1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Update(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (result *v1beta1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeStatefulSets) UpdateStatus(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (*v1beta1.StatefulSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(statefulsetsResource, \"status\", c.ns, statefulSet), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeStatefulSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(statefulsetsResource, c.ns, name, opts), &v1beta1.StatefulSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStatefulSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(statefulsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.StatefulSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StatefulSet), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype ControllerRevisionExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.CreateOptions) (*v1beta1.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (*v1beta1.StatefulSet, error)\n\tUpdateStatus(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (*v1beta1.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.StatefulSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.StatefulSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error)\n\tApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error)\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1beta1Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *statefulSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.StatefulSet, err error) {\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *statefulSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.StatefulSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.StatefulSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *statefulSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Create(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.CreateOptions) (result *v1beta1.StatefulSet, err error) {\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Update(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (result *v1beta1.StatefulSet, err error) {\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *statefulSets) UpdateStatus(ctx context.Context, statefulSet *v1beta1.StatefulSet, opts v1.UpdateOptions) (result *v1beta1.StatefulSet, err error) {\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *statefulSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *statefulSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StatefulSet, err error) {\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"net/http\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1beta2Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tReplicaSetsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1beta2Client is used to interact with features provided by the apps group.\ntype AppsV1beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1beta2Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1beta2Client {\n\treturn &AppsV1beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.CreateOptions) (*v1beta2.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.UpdateOptions) (*v1beta2.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.ControllerRevision, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1beta2Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *controllerRevisions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.ControllerRevision, err error) {\n\tresult = &v1beta2.ControllerRevision{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *controllerRevisions) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.ControllerRevisionList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.ControllerRevisionList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *controllerRevisions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Create(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.CreateOptions) (result *v1beta2.ControllerRevision, err error) {\n\tresult = &v1beta2.ControllerRevision{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *controllerRevisions) Update(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.UpdateOptions) (result *v1beta2.ControllerRevision, err error) {\n\tresult = &v1beta2.ControllerRevision{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(controllerRevision.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(controllerRevision).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *controllerRevisions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *controllerRevisions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ControllerRevision, err error) {\n\tresult = &v1beta2.ControllerRevision{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.ControllerRevision{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"controllerrevisions\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.CreateOptions) (*v1beta2.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (*v1beta2.DaemonSet, error)\n\tUpdateStatus(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (*v1beta2.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.DaemonSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.DaemonSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error)\n\tApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *AppsV1beta2Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *daemonSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.DaemonSet, err error) {\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *daemonSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DaemonSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.DaemonSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *daemonSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Create(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.CreateOptions) (result *v1beta2.DaemonSet, err error) {\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Update(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (result *v1beta2.DaemonSet, err error) {\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *daemonSets) UpdateStatus(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (result *v1beta2.DaemonSet, err error) {\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *daemonSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *daemonSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DaemonSet, err error) {\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *daemonSets) Apply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *v1beta2.Deployment, opts v1.CreateOptions) (*v1beta2.Deployment, error)\n\tUpdate(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (*v1beta2.Deployment, error)\n\tUpdateStatus(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (*v1beta2.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.Deployment, err error)\n\tApply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error)\n\tApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error)\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1beta2Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *deployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.Deployment, err error) {\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *deployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DeploymentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.DeploymentList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *deployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Create(ctx context.Context, deployment *v1beta2.Deployment, opts v1.CreateOptions) (result *v1beta2.Deployment, err error) {\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Update(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (result *v1beta2.Deployment, err error) {\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *deployments) UpdateStatus(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (result *v1beta2.Deployment, err error) {\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *deployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *deployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.Deployment, err error) {\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *deployments) Apply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1beta2) ControllerRevisions(namespace string) v1beta2.ControllerRevisionInterface {\n\treturn &FakeControllerRevisions{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta2) DaemonSets(namespace string) v1beta2.DaemonSetInterface {\n\treturn &FakeDaemonSets{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta2) Deployments(namespace string) v1beta2.DeploymentInterface {\n\treturn &FakeDeployments{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta2) ReplicaSets(namespace string) v1beta2.ReplicaSetInterface {\n\treturn &FakeReplicaSets{c, namespace}\n}\n\nfunc (c *FakeAppsV1beta2) StatefulSets(namespace string) v1beta2.StatefulSetInterface {\n\treturn &FakeStatefulSets{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeControllerRevisions implements ControllerRevisionInterface\ntype FakeControllerRevisions struct {\n\tFake *FakeAppsV1beta2\n\tns   string\n}\n\nvar controllerrevisionsResource = v1beta2.SchemeGroupVersion.WithResource(\"controllerrevisions\")\n\nvar controllerrevisionsKind = v1beta2.SchemeGroupVersion.WithKind(\"ControllerRevision\")\n\n// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any.\nfunc (c *FakeControllerRevisions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &v1beta2.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ControllerRevision), err\n}\n\n// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors.\nfunc (c *FakeControllerRevisions) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.ControllerRevisionList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &v1beta2.ControllerRevisionList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.ControllerRevisionList{ListMeta: obj.(*v1beta2.ControllerRevisionList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.ControllerRevisionList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested controllerRevisions.\nfunc (c *FakeControllerRevisions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(controllerrevisionsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a controllerRevision and creates it.  Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Create(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.CreateOptions) (result *v1beta2.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1beta2.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ControllerRevision), err\n}\n\n// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any.\nfunc (c *FakeControllerRevisions) Update(ctx context.Context, controllerRevision *v1beta2.ControllerRevision, opts v1.UpdateOptions) (result *v1beta2.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &v1beta2.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ControllerRevision), err\n}\n\n// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs.\nfunc (c *FakeControllerRevisions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(controllerrevisionsResource, c.ns, name, opts), &v1beta2.ControllerRevision{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeControllerRevisions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(controllerrevisionsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.ControllerRevisionList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched controllerRevision.\nfunc (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ControllerRevision, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &v1beta2.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ControllerRevision), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision.\nfunc (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error) {\n\tif controllerRevision == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(controllerRevision)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := controllerRevision.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"controllerRevision.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.ControllerRevision{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ControllerRevision), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDaemonSets implements DaemonSetInterface\ntype FakeDaemonSets struct {\n\tFake *FakeAppsV1beta2\n\tns   string\n}\n\nvar daemonsetsResource = v1beta2.SchemeGroupVersion.WithResource(\"daemonsets\")\n\nvar daemonsetsKind = v1beta2.SchemeGroupVersion.WithKind(\"DaemonSet\")\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *FakeDaemonSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *FakeDaemonSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DaemonSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &v1beta2.DaemonSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.DaemonSetList{ListMeta: obj.(*v1beta2.DaemonSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.DaemonSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *FakeDaemonSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(daemonsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Create(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.CreateOptions) (result *v1beta2.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Update(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (result *v1beta2.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDaemonSets) UpdateStatus(ctx context.Context, daemonSet *v1beta2.DaemonSet, opts v1.UpdateOptions) (*v1beta2.DaemonSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(daemonsetsResource, \"status\", c.ns, daemonSet), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeDaemonSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(daemonsetsResource, c.ns, name, opts), &v1beta2.DaemonSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDaemonSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(daemonsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.DaemonSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.DaemonSet), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDeployments implements DeploymentInterface\ntype FakeDeployments struct {\n\tFake *FakeAppsV1beta2\n\tns   string\n}\n\nvar deploymentsResource = v1beta2.SchemeGroupVersion.WithResource(\"deployments\")\n\nvar deploymentsKind = v1beta2.SchemeGroupVersion.WithKind(\"Deployment\")\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *FakeDeployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(deploymentsResource, c.ns, name), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *FakeDeployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DeploymentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &v1beta2.DeploymentList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.DeploymentList{ListMeta: obj.(*v1beta2.DeploymentList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.DeploymentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *FakeDeployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(deploymentsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Create(ctx context.Context, deployment *v1beta2.Deployment, opts v1.CreateOptions) (result *v1beta2.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Update(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (result *v1beta2.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDeployments) UpdateStatus(ctx context.Context, deployment *v1beta2.Deployment, opts v1.UpdateOptions) (*v1beta2.Deployment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"status\", c.ns, deployment), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *FakeDeployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(deploymentsResource, c.ns, name, opts), &v1beta2.Deployment{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDeployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.DeploymentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *FakeDeployments) Apply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Deployment), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeReplicaSets implements ReplicaSetInterface\ntype FakeReplicaSets struct {\n\tFake *FakeAppsV1beta2\n\tns   string\n}\n\nvar replicasetsResource = v1beta2.SchemeGroupVersion.WithResource(\"replicasets\")\n\nvar replicasetsKind = v1beta2.SchemeGroupVersion.WithKind(\"ReplicaSet\")\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *FakeReplicaSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(replicasetsResource, c.ns, name), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *FakeReplicaSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.ReplicaSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &v1beta2.ReplicaSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.ReplicaSetList{ListMeta: obj.(*v1beta2.ReplicaSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.ReplicaSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *FakeReplicaSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(replicasetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Create(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.CreateOptions) (result *v1beta2.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Update(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (result *v1beta2.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeReplicaSets) UpdateStatus(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (*v1beta2.ReplicaSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicasetsResource, \"status\", c.ns, replicaSet), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeReplicaSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(replicasetsResource, c.ns, name, opts), &v1beta2.ReplicaSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeReplicaSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(replicasetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.ReplicaSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.ReplicaSet), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStatefulSets implements StatefulSetInterface\ntype FakeStatefulSets struct {\n\tFake *FakeAppsV1beta2\n\tns   string\n}\n\nvar statefulsetsResource = v1beta2.SchemeGroupVersion.WithResource(\"statefulsets\")\n\nvar statefulsetsKind = v1beta2.SchemeGroupVersion.WithKind(\"StatefulSet\")\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *FakeStatefulSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *FakeStatefulSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.StatefulSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &v1beta2.StatefulSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.StatefulSetList{ListMeta: obj.(*v1beta2.StatefulSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.StatefulSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *FakeStatefulSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(statefulsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Create(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.CreateOptions) (result *v1beta2.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *FakeStatefulSets) Update(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (result *v1beta2.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeStatefulSets) UpdateStatus(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (*v1beta2.StatefulSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(statefulsetsResource, \"status\", c.ns, statefulSet), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeStatefulSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(statefulsetsResource, c.ns, name, opts), &v1beta2.StatefulSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStatefulSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(statefulsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.StatefulSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.StatefulSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.StatefulSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.StatefulSet), err\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *v1beta2.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(statefulsetsResource, c.ns, \"scale\", statefulSetName), &v1beta2.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeStatefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *v1beta2.Scale, opts v1.UpdateOptions) (result *v1beta2.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(statefulsetsResource, \"scale\", c.ns, scale), &v1beta2.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeStatefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, statefulSetName, types.ApplyPatchType, data, \"status\"), &v1beta2.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\ntype ControllerRevisionExpansion interface{}\n\ntype DaemonSetExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.CreateOptions) (*v1beta2.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (*v1beta2.ReplicaSet, error)\n\tUpdateStatus(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (*v1beta2.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.ReplicaSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error)\n\tApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error)\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *AppsV1beta2Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *replicaSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.ReplicaSet, err error) {\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *replicaSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.ReplicaSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.ReplicaSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *replicaSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Create(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.CreateOptions) (result *v1beta2.ReplicaSet, err error) {\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Update(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (result *v1beta2.ReplicaSet, err error) {\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *replicaSets) UpdateStatus(ctx context.Context, replicaSet *v1beta2.ReplicaSet, opts v1.UpdateOptions) (result *v1beta2.ReplicaSet, err error) {\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *replicaSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *replicaSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ReplicaSet, err error) {\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *replicaSets) Apply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.CreateOptions) (*v1beta2.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (*v1beta2.StatefulSet, error)\n\tUpdateStatus(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (*v1beta2.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.StatefulSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.StatefulSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error)\n\tApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error)\n\tGetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (*v1beta2.Scale, error)\n\tUpdateScale(ctx context.Context, statefulSetName string, scale *v1beta2.Scale, opts v1.UpdateOptions) (*v1beta2.Scale, error)\n\tApplyScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (*v1beta2.Scale, error)\n\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1beta2Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any.\nfunc (c *statefulSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.StatefulSet, err error) {\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StatefulSets that match those selectors.\nfunc (c *statefulSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.StatefulSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.StatefulSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested statefulSets.\nfunc (c *statefulSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a statefulSet and creates it.  Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Create(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.CreateOptions) (result *v1beta2.StatefulSet, err error) {\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any.\nfunc (c *statefulSets) Update(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (result *v1beta2.StatefulSet, err error) {\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *statefulSets) UpdateStatus(ctx context.Context, statefulSet *v1beta2.StatefulSet, opts v1.UpdateOptions) (result *v1beta2.StatefulSet, err error) {\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(statefulSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs.\nfunc (c *statefulSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *statefulSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched statefulSet.\nfunc (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.StatefulSet, err error) {\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet.\nfunc (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) {\n\tif statefulSet == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(statefulSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := statefulSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"statefulSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.StatefulSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding v1beta2.Scale object, and an error if there is any.\nfunc (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *v1beta2.Scale, err error) {\n\tresult = &v1beta2.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *statefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *v1beta2.Scale, opts v1.UpdateOptions) (result *v1beta2.Scale, err error) {\n\tresult = &v1beta2.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *statefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &v1beta2.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/authentication/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1Interface interface {\n\tRESTClient() rest.Interface\n\tTokenReviewsGetter\n}\n\n// AuthenticationV1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1Client) TokenReviews() TokenReviewInterface {\n\treturn newTokenReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1Client {\n\treturn &AuthenticationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1) TokenReviews() v1.TokenReviewInterface {\n\treturn &FakeTokenReviews{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeTokenReviews implements TokenReviewInterface\ntype FakeTokenReviews struct {\n\tFake *FakeAuthenticationV1\n}\n\nvar tokenreviewsResource = v1.SchemeGroupVersion.WithResource(\"tokenreviews\")\n\nvar tokenreviewsKind = v1.SchemeGroupVersion.WithKind(\"TokenReview\")\n\n// Create takes the representation of a tokenReview and creates it.  Returns the server's representation of the tokenReview, and an error, if there is any.\nfunc (c *FakeTokenReviews) Create(ctx context.Context, tokenReview *v1.TokenReview, opts metav1.CreateOptions) (result *v1.TokenReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(tokenreviewsResource, tokenReview), &v1.TokenReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.TokenReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype TokenReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// TokenReviewsGetter has a method to return a TokenReviewInterface.\n// A group's client should implement this interface.\ntype TokenReviewsGetter interface {\n\tTokenReviews() TokenReviewInterface\n}\n\n// TokenReviewInterface has methods to work with TokenReview resources.\ntype TokenReviewInterface interface {\n\tCreate(ctx context.Context, tokenReview *v1.TokenReview, opts metav1.CreateOptions) (*v1.TokenReview, error)\n\tTokenReviewExpansion\n}\n\n// tokenReviews implements TokenReviewInterface\ntype tokenReviews struct {\n\tclient rest.Interface\n}\n\n// newTokenReviews returns a TokenReviews\nfunc newTokenReviews(c *AuthenticationV1Client) *tokenReviews {\n\treturn &tokenReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a tokenReview and creates it.  Returns the server's representation of the tokenReview, and an error, if there is any.\nfunc (c *tokenReviews) Create(ctx context.Context, tokenReview *v1.TokenReview, opts metav1.CreateOptions) (result *v1.TokenReview, err error) {\n\tresult = &v1.TokenReview{}\n\terr = c.client.Post().\n\t\tResource(\"tokenreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(tokenReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tSelfSubjectReviewsGetter\n}\n\n// AuthenticationV1alpha1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1alpha1Client) SelfSubjectReviews() SelfSubjectReviewInterface {\n\treturn newSelfSubjectReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1alpha1Client {\n\treturn &AuthenticationV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1alpha1) SelfSubjectReviews() v1alpha1.SelfSubjectReviewInterface {\n\treturn &FakeSelfSubjectReviews{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/fake_selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectReviews implements SelfSubjectReviewInterface\ntype FakeSelfSubjectReviews struct {\n\tFake *FakeAuthenticationV1alpha1\n}\n\nvar selfsubjectreviewsResource = v1alpha1.SchemeGroupVersion.WithResource(\"selfsubjectreviews\")\n\nvar selfsubjectreviewsKind = v1alpha1.SchemeGroupVersion.WithKind(\"SelfSubjectReview\")\n\n// Create takes the representation of a selfSubjectReview and creates it.  Returns the server's representation of the selfSubjectReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectReviews) Create(ctx context.Context, selfSubjectReview *v1alpha1.SelfSubjectReview, opts v1.CreateOptions) (result *v1alpha1.SelfSubjectReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectreviewsResource, selfSubjectReview), &v1alpha1.SelfSubjectReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.SelfSubjectReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype SelfSubjectReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\n\tv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectReviewsGetter has a method to return a SelfSubjectReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectReviewsGetter interface {\n\tSelfSubjectReviews() SelfSubjectReviewInterface\n}\n\n// SelfSubjectReviewInterface has methods to work with SelfSubjectReview resources.\ntype SelfSubjectReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectReview *v1alpha1.SelfSubjectReview, opts v1.CreateOptions) (*v1alpha1.SelfSubjectReview, error)\n\tSelfSubjectReviewExpansion\n}\n\n// selfSubjectReviews implements SelfSubjectReviewInterface\ntype selfSubjectReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectReviews returns a SelfSubjectReviews\nfunc newSelfSubjectReviews(c *AuthenticationV1alpha1Client) *selfSubjectReviews {\n\treturn &selfSubjectReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectReview and creates it.  Returns the server's representation of the selfSubjectReview, and an error, if there is any.\nfunc (c *selfSubjectReviews) Create(ctx context.Context, selfSubjectReview *v1alpha1.SelfSubjectReview, opts v1.CreateOptions) (result *v1alpha1.SelfSubjectReview, err error) {\n\tresult = &v1alpha1.SelfSubjectReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tSelfSubjectReviewsGetter\n\tTokenReviewsGetter\n}\n\n// AuthenticationV1beta1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1beta1Client) SelfSubjectReviews() SelfSubjectReviewInterface {\n\treturn newSelfSubjectReviews(c)\n}\n\nfunc (c *AuthenticationV1beta1Client) TokenReviews() TokenReviewInterface {\n\treturn newTokenReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1beta1Client {\n\treturn &AuthenticationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1beta1) SelfSubjectReviews() v1beta1.SelfSubjectReviewInterface {\n\treturn &FakeSelfSubjectReviews{c}\n}\n\nfunc (c *FakeAuthenticationV1beta1) TokenReviews() v1beta1.TokenReviewInterface {\n\treturn &FakeTokenReviews{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectReviews implements SelfSubjectReviewInterface\ntype FakeSelfSubjectReviews struct {\n\tFake *FakeAuthenticationV1beta1\n}\n\nvar selfsubjectreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"selfsubjectreviews\")\n\nvar selfsubjectreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectReview\")\n\n// Create takes the representation of a selfSubjectReview and creates it.  Returns the server's representation of the selfSubjectReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectReviews) Create(ctx context.Context, selfSubjectReview *v1beta1.SelfSubjectReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectreviewsResource, selfSubjectReview), &v1beta1.SelfSubjectReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.SelfSubjectReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeTokenReviews implements TokenReviewInterface\ntype FakeTokenReviews struct {\n\tFake *FakeAuthenticationV1beta1\n}\n\nvar tokenreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"tokenreviews\")\n\nvar tokenreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"TokenReview\")\n\n// Create takes the representation of a tokenReview and creates it.  Returns the server's representation of the tokenReview, and an error, if there is any.\nfunc (c *FakeTokenReviews) Create(ctx context.Context, tokenReview *v1beta1.TokenReview, opts v1.CreateOptions) (result *v1beta1.TokenReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(tokenreviewsResource, tokenReview), &v1beta1.TokenReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.TokenReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype SelfSubjectReviewExpansion interface{}\n\ntype TokenReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectReviewsGetter has a method to return a SelfSubjectReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectReviewsGetter interface {\n\tSelfSubjectReviews() SelfSubjectReviewInterface\n}\n\n// SelfSubjectReviewInterface has methods to work with SelfSubjectReview resources.\ntype SelfSubjectReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectReview *v1beta1.SelfSubjectReview, opts v1.CreateOptions) (*v1beta1.SelfSubjectReview, error)\n\tSelfSubjectReviewExpansion\n}\n\n// selfSubjectReviews implements SelfSubjectReviewInterface\ntype selfSubjectReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectReviews returns a SelfSubjectReviews\nfunc newSelfSubjectReviews(c *AuthenticationV1beta1Client) *selfSubjectReviews {\n\treturn &selfSubjectReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectReview and creates it.  Returns the server's representation of the selfSubjectReview, and an error, if there is any.\nfunc (c *selfSubjectReviews) Create(ctx context.Context, selfSubjectReview *v1beta1.SelfSubjectReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectReview, err error) {\n\tresult = &v1beta1.SelfSubjectReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// TokenReviewsGetter has a method to return a TokenReviewInterface.\n// A group's client should implement this interface.\ntype TokenReviewsGetter interface {\n\tTokenReviews() TokenReviewInterface\n}\n\n// TokenReviewInterface has methods to work with TokenReview resources.\ntype TokenReviewInterface interface {\n\tCreate(ctx context.Context, tokenReview *v1beta1.TokenReview, opts v1.CreateOptions) (*v1beta1.TokenReview, error)\n\tTokenReviewExpansion\n}\n\n// tokenReviews implements TokenReviewInterface\ntype tokenReviews struct {\n\tclient rest.Interface\n}\n\n// newTokenReviews returns a TokenReviews\nfunc newTokenReviews(c *AuthenticationV1beta1Client) *tokenReviews {\n\treturn &tokenReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a tokenReview and creates it.  Returns the server's representation of the tokenReview, and an error, if there is any.\nfunc (c *tokenReviews) Create(ctx context.Context, tokenReview *v1beta1.TokenReview, opts v1.CreateOptions) (result *v1beta1.TokenReview, err error) {\n\tresult = &v1beta1.TokenReview{}\n\terr = c.client.Post().\n\t\tResource(\"tokenreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(tokenReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthorizationV1Interface interface {\n\tRESTClient() rest.Interface\n\tLocalSubjectAccessReviewsGetter\n\tSelfSubjectAccessReviewsGetter\n\tSelfSubjectRulesReviewsGetter\n\tSubjectAccessReviewsGetter\n}\n\n// AuthorizationV1Client is used to interact with features provided by the authorization.k8s.io group.\ntype AuthorizationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthorizationV1Client) LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface {\n\treturn newLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *AuthorizationV1Client) SelfSubjectAccessReviews() SelfSubjectAccessReviewInterface {\n\treturn newSelfSubjectAccessReviews(c)\n}\n\nfunc (c *AuthorizationV1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {\n\treturn newSelfSubjectRulesReviews(c)\n}\n\nfunc (c *AuthorizationV1Client) SubjectAccessReviews() SubjectAccessReviewInterface {\n\treturn newSubjectAccessReviews(c)\n}\n\n// NewForConfig creates a new AuthorizationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthorizationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthorizationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthorizationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthorizationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthorizationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthorizationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthorizationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthorizationV1Client {\n\treturn &AuthorizationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthorizationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthorizationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthorizationV1) LocalSubjectAccessReviews(namespace string) v1.LocalSubjectAccessReviewInterface {\n\treturn &FakeLocalSubjectAccessReviews{c, namespace}\n}\n\nfunc (c *FakeAuthorizationV1) SelfSubjectAccessReviews() v1.SelfSubjectAccessReviewInterface {\n\treturn &FakeSelfSubjectAccessReviews{c}\n}\n\nfunc (c *FakeAuthorizationV1) SelfSubjectRulesReviews() v1.SelfSubjectRulesReviewInterface {\n\treturn &FakeSelfSubjectRulesReviews{c}\n}\n\nfunc (c *FakeAuthorizationV1) SubjectAccessReviews() v1.SubjectAccessReviewInterface {\n\treturn &FakeSubjectAccessReviews{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthorizationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeLocalSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype FakeLocalSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1\n\tns   string\n}\n\nvar localsubjectaccessreviewsResource = v1.SchemeGroupVersion.WithResource(\"localsubjectaccessreviews\")\n\nvar localsubjectaccessreviewsKind = v1.SchemeGroupVersion.WithKind(\"LocalSubjectAccessReview\")\n\n// Create takes the representation of a localSubjectAccessReview and creates it.  Returns the server's representation of the localSubjectAccessReview, and an error, if there is any.\nfunc (c *FakeLocalSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (result *v1.LocalSubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(localsubjectaccessreviewsResource, c.ns, localSubjectAccessReview), &v1.LocalSubjectAccessReview{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LocalSubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype FakeSelfSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1\n}\n\nvar selfsubjectaccessreviewsResource = v1.SchemeGroupVersion.WithResource(\"selfsubjectaccessreviews\")\n\nvar selfsubjectaccessreviewsKind = v1.SchemeGroupVersion.WithKind(\"SelfSubjectAccessReview\")\n\n// Create takes the representation of a selfSubjectAccessReview and creates it.  Returns the server's representation of the selfSubjectAccessReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectAccessReviews) Create(ctx context.Context, selfSubjectAccessReview *v1.SelfSubjectAccessReview, opts metav1.CreateOptions) (result *v1.SelfSubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectaccessreviewsResource, selfSubjectAccessReview), &v1.SelfSubjectAccessReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.SelfSubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype FakeSelfSubjectRulesReviews struct {\n\tFake *FakeAuthorizationV1\n}\n\nvar selfsubjectrulesreviewsResource = v1.SchemeGroupVersion.WithResource(\"selfsubjectrulesreviews\")\n\nvar selfsubjectrulesreviewsKind = v1.SchemeGroupVersion.WithKind(\"SelfSubjectRulesReview\")\n\n// Create takes the representation of a selfSubjectRulesReview and creates it.  Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (result *v1.SelfSubjectRulesReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectrulesreviewsResource, selfSubjectRulesReview), &v1.SelfSubjectRulesReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.SelfSubjectRulesReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSubjectAccessReviews implements SubjectAccessReviewInterface\ntype FakeSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1\n}\n\nvar subjectaccessreviewsResource = v1.SchemeGroupVersion.WithResource(\"subjectaccessreviews\")\n\nvar subjectaccessreviewsKind = v1.SchemeGroupVersion.WithKind(\"SubjectAccessReview\")\n\n// Create takes the representation of a subjectAccessReview and creates it.  Returns the server's representation of the subjectAccessReview, and an error, if there is any.\nfunc (c *FakeSubjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(subjectaccessreviewsResource, subjectAccessReview), &v1.SubjectAccessReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.SubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype LocalSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectRulesReviewExpansion interface{}\n\ntype SubjectAccessReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// LocalSubjectAccessReviewsGetter has a method to return a LocalSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype LocalSubjectAccessReviewsGetter interface {\n\tLocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface\n}\n\n// LocalSubjectAccessReviewInterface has methods to work with LocalSubjectAccessReview resources.\ntype LocalSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (*v1.LocalSubjectAccessReview, error)\n\tLocalSubjectAccessReviewExpansion\n}\n\n// localSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype localSubjectAccessReviews struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newLocalSubjectAccessReviews returns a LocalSubjectAccessReviews\nfunc newLocalSubjectAccessReviews(c *AuthorizationV1Client, namespace string) *localSubjectAccessReviews {\n\treturn &localSubjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Create takes the representation of a localSubjectAccessReview and creates it.  Returns the server's representation of the localSubjectAccessReview, and an error, if there is any.\nfunc (c *localSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (result *v1.LocalSubjectAccessReview, err error) {\n\tresult = &v1.LocalSubjectAccessReview{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"localsubjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(localSubjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectAccessReviewsGetter has a method to return a SelfSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectAccessReviewsGetter interface {\n\tSelfSubjectAccessReviews() SelfSubjectAccessReviewInterface\n}\n\n// SelfSubjectAccessReviewInterface has methods to work with SelfSubjectAccessReview resources.\ntype SelfSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectAccessReview *v1.SelfSubjectAccessReview, opts metav1.CreateOptions) (*v1.SelfSubjectAccessReview, error)\n\tSelfSubjectAccessReviewExpansion\n}\n\n// selfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype selfSubjectAccessReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectAccessReviews returns a SelfSubjectAccessReviews\nfunc newSelfSubjectAccessReviews(c *AuthorizationV1Client) *selfSubjectAccessReviews {\n\treturn &selfSubjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectAccessReview and creates it.  Returns the server's representation of the selfSubjectAccessReview, and an error, if there is any.\nfunc (c *selfSubjectAccessReviews) Create(ctx context.Context, selfSubjectAccessReview *v1.SelfSubjectAccessReview, opts metav1.CreateOptions) (result *v1.SelfSubjectAccessReview, err error) {\n\tresult = &v1.SelfSubjectAccessReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectRulesReviewsGetter interface {\n\tSelfSubjectRulesReviews() SelfSubjectRulesReviewInterface\n}\n\n// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.\ntype SelfSubjectRulesReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (*v1.SelfSubjectRulesReview, error)\n\tSelfSubjectRulesReviewExpansion\n}\n\n// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype selfSubjectRulesReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews\nfunc newSelfSubjectRulesReviews(c *AuthorizationV1Client) *selfSubjectRulesReviews {\n\treturn &selfSubjectRulesReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectRulesReview and creates it.  Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any.\nfunc (c *selfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (result *v1.SelfSubjectRulesReview, err error) {\n\tresult = &v1.SelfSubjectRulesReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectrulesreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectRulesReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SubjectAccessReviewsGetter has a method to return a SubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SubjectAccessReviewsGetter interface {\n\tSubjectAccessReviews() SubjectAccessReviewInterface\n}\n\n// SubjectAccessReviewInterface has methods to work with SubjectAccessReview resources.\ntype SubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (*v1.SubjectAccessReview, error)\n\tSubjectAccessReviewExpansion\n}\n\n// subjectAccessReviews implements SubjectAccessReviewInterface\ntype subjectAccessReviews struct {\n\tclient rest.Interface\n}\n\n// newSubjectAccessReviews returns a SubjectAccessReviews\nfunc newSubjectAccessReviews(c *AuthorizationV1Client) *subjectAccessReviews {\n\treturn &subjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a subjectAccessReview and creates it.  Returns the server's representation of the subjectAccessReview, and an error, if there is any.\nfunc (c *subjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReview, err error) {\n\tresult = &v1.SubjectAccessReview{}\n\terr = c.client.Post().\n\t\tResource(\"subjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(subjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthorizationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tLocalSubjectAccessReviewsGetter\n\tSelfSubjectAccessReviewsGetter\n\tSelfSubjectRulesReviewsGetter\n\tSubjectAccessReviewsGetter\n}\n\n// AuthorizationV1beta1Client is used to interact with features provided by the authorization.k8s.io group.\ntype AuthorizationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthorizationV1beta1Client) LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface {\n\treturn newLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *AuthorizationV1beta1Client) SelfSubjectAccessReviews() SelfSubjectAccessReviewInterface {\n\treturn newSelfSubjectAccessReviews(c)\n}\n\nfunc (c *AuthorizationV1beta1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {\n\treturn newSelfSubjectRulesReviews(c)\n}\n\nfunc (c *AuthorizationV1beta1Client) SubjectAccessReviews() SubjectAccessReviewInterface {\n\treturn newSubjectAccessReviews(c)\n}\n\n// NewForConfig creates a new AuthorizationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthorizationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthorizationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthorizationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthorizationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthorizationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthorizationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthorizationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthorizationV1beta1Client {\n\treturn &AuthorizationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthorizationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthorizationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthorizationV1beta1) LocalSubjectAccessReviews(namespace string) v1beta1.LocalSubjectAccessReviewInterface {\n\treturn &FakeLocalSubjectAccessReviews{c, namespace}\n}\n\nfunc (c *FakeAuthorizationV1beta1) SelfSubjectAccessReviews() v1beta1.SelfSubjectAccessReviewInterface {\n\treturn &FakeSelfSubjectAccessReviews{c}\n}\n\nfunc (c *FakeAuthorizationV1beta1) SelfSubjectRulesReviews() v1beta1.SelfSubjectRulesReviewInterface {\n\treturn &FakeSelfSubjectRulesReviews{c}\n}\n\nfunc (c *FakeAuthorizationV1beta1) SubjectAccessReviews() v1beta1.SubjectAccessReviewInterface {\n\treturn &FakeSubjectAccessReviews{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthorizationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeLocalSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype FakeLocalSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1beta1\n\tns   string\n}\n\nvar localsubjectaccessreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"localsubjectaccessreviews\")\n\nvar localsubjectaccessreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"LocalSubjectAccessReview\")\n\n// Create takes the representation of a localSubjectAccessReview and creates it.  Returns the server's representation of the localSubjectAccessReview, and an error, if there is any.\nfunc (c *FakeLocalSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1beta1.LocalSubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.LocalSubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(localsubjectaccessreviewsResource, c.ns, localSubjectAccessReview), &v1beta1.LocalSubjectAccessReview{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.LocalSubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype FakeSelfSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1beta1\n}\n\nvar selfsubjectaccessreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"selfsubjectaccessreviews\")\n\nvar selfsubjectaccessreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectAccessReview\")\n\n// Create takes the representation of a selfSubjectAccessReview and creates it.  Returns the server's representation of the selfSubjectAccessReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectAccessReviews) Create(ctx context.Context, selfSubjectAccessReview *v1beta1.SelfSubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectaccessreviewsResource, selfSubjectAccessReview), &v1beta1.SelfSubjectAccessReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.SelfSubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype FakeSelfSubjectRulesReviews struct {\n\tFake *FakeAuthorizationV1beta1\n}\n\nvar selfsubjectrulesreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"selfsubjectrulesreviews\")\n\nvar selfsubjectrulesreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectRulesReview\")\n\n// Create takes the representation of a selfSubjectRulesReview and creates it.  Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any.\nfunc (c *FakeSelfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1beta1.SelfSubjectRulesReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectRulesReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(selfsubjectrulesreviewsResource, selfSubjectRulesReview), &v1beta1.SelfSubjectRulesReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.SelfSubjectRulesReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSubjectAccessReviews implements SubjectAccessReviewInterface\ntype FakeSubjectAccessReviews struct {\n\tFake *FakeAuthorizationV1beta1\n}\n\nvar subjectaccessreviewsResource = v1beta1.SchemeGroupVersion.WithResource(\"subjectaccessreviews\")\n\nvar subjectaccessreviewsKind = v1beta1.SchemeGroupVersion.WithKind(\"SubjectAccessReview\")\n\n// Create takes the representation of a subjectAccessReview and creates it.  Returns the server's representation of the subjectAccessReview, and an error, if there is any.\nfunc (c *FakeSubjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1beta1.SubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.SubjectAccessReview, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(subjectaccessreviewsResource, subjectAccessReview), &v1beta1.SubjectAccessReview{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.SubjectAccessReview), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype LocalSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectRulesReviewExpansion interface{}\n\ntype SubjectAccessReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// LocalSubjectAccessReviewsGetter has a method to return a LocalSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype LocalSubjectAccessReviewsGetter interface {\n\tLocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface\n}\n\n// LocalSubjectAccessReviewInterface has methods to work with LocalSubjectAccessReview resources.\ntype LocalSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, localSubjectAccessReview *v1beta1.LocalSubjectAccessReview, opts v1.CreateOptions) (*v1beta1.LocalSubjectAccessReview, error)\n\tLocalSubjectAccessReviewExpansion\n}\n\n// localSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype localSubjectAccessReviews struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newLocalSubjectAccessReviews returns a LocalSubjectAccessReviews\nfunc newLocalSubjectAccessReviews(c *AuthorizationV1beta1Client, namespace string) *localSubjectAccessReviews {\n\treturn &localSubjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Create takes the representation of a localSubjectAccessReview and creates it.  Returns the server's representation of the localSubjectAccessReview, and an error, if there is any.\nfunc (c *localSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1beta1.LocalSubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.LocalSubjectAccessReview, err error) {\n\tresult = &v1beta1.LocalSubjectAccessReview{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"localsubjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(localSubjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectAccessReviewsGetter has a method to return a SelfSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectAccessReviewsGetter interface {\n\tSelfSubjectAccessReviews() SelfSubjectAccessReviewInterface\n}\n\n// SelfSubjectAccessReviewInterface has methods to work with SelfSubjectAccessReview resources.\ntype SelfSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectAccessReview *v1beta1.SelfSubjectAccessReview, opts v1.CreateOptions) (*v1beta1.SelfSubjectAccessReview, error)\n\tSelfSubjectAccessReviewExpansion\n}\n\n// selfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype selfSubjectAccessReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectAccessReviews returns a SelfSubjectAccessReviews\nfunc newSelfSubjectAccessReviews(c *AuthorizationV1beta1Client) *selfSubjectAccessReviews {\n\treturn &selfSubjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectAccessReview and creates it.  Returns the server's representation of the selfSubjectAccessReview, and an error, if there is any.\nfunc (c *selfSubjectAccessReviews) Create(ctx context.Context, selfSubjectAccessReview *v1beta1.SelfSubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectAccessReview, err error) {\n\tresult = &v1beta1.SelfSubjectAccessReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectRulesReviewsGetter interface {\n\tSelfSubjectRulesReviews() SelfSubjectRulesReviewInterface\n}\n\n// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.\ntype SelfSubjectRulesReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectRulesReview *v1beta1.SelfSubjectRulesReview, opts v1.CreateOptions) (*v1beta1.SelfSubjectRulesReview, error)\n\tSelfSubjectRulesReviewExpansion\n}\n\n// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype selfSubjectRulesReviews struct {\n\tclient rest.Interface\n}\n\n// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews\nfunc newSelfSubjectRulesReviews(c *AuthorizationV1beta1Client) *selfSubjectRulesReviews {\n\treturn &selfSubjectRulesReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a selfSubjectRulesReview and creates it.  Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any.\nfunc (c *selfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1beta1.SelfSubjectRulesReview, opts v1.CreateOptions) (result *v1beta1.SelfSubjectRulesReview, err error) {\n\tresult = &v1beta1.SelfSubjectRulesReview{}\n\terr = c.client.Post().\n\t\tResource(\"selfsubjectrulesreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(selfSubjectRulesReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SubjectAccessReviewsGetter has a method to return a SubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SubjectAccessReviewsGetter interface {\n\tSubjectAccessReviews() SubjectAccessReviewInterface\n}\n\n// SubjectAccessReviewInterface has methods to work with SubjectAccessReview resources.\ntype SubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, subjectAccessReview *v1beta1.SubjectAccessReview, opts v1.CreateOptions) (*v1beta1.SubjectAccessReview, error)\n\tSubjectAccessReviewExpansion\n}\n\n// subjectAccessReviews implements SubjectAccessReviewInterface\ntype subjectAccessReviews struct {\n\tclient rest.Interface\n}\n\n// newSubjectAccessReviews returns a SubjectAccessReviews\nfunc newSubjectAccessReviews(c *AuthorizationV1beta1Client) *subjectAccessReviews {\n\treturn &subjectAccessReviews{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Create takes the representation of a subjectAccessReview and creates it.  Returns the server's representation of the subjectAccessReview, and an error, if there is any.\nfunc (c *subjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1beta1.SubjectAccessReview, opts v1.CreateOptions) (result *v1beta1.SubjectAccessReview, err error) {\n\tresult = &v1beta1.SubjectAccessReview{}\n\terr = c.client.Post().\n\t\tResource(\"subjectaccessreviews\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(subjectAccessReview).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/autoscaling/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV1Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV1Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV1Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV1Client {\n\treturn &AutoscalingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV1) HorizontalPodAutoscalers(namespace string) v1.HorizontalPodAutoscalerInterface {\n\treturn &FakeHorizontalPodAutoscalers{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype FakeHorizontalPodAutoscalers struct {\n\tFake *FakeAutoscalingV1\n\tns   string\n}\n\nvar horizontalpodautoscalersResource = v1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\")\n\nvar horizontalpodautoscalersKind = v1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\")\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *FakeHorizontalPodAutoscalers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.HorizontalPodAutoscalerList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &v1.HorizontalPodAutoscalerList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.HorizontalPodAutoscalerList{ListMeta: obj.(*v1.HorizontalPodAutoscalerList).ListMeta}\n\tfor _, item := range obj.(*v1.HorizontalPodAutoscalerList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *FakeHorizontalPodAutoscalers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.CreateOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeHorizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (*v1.HorizontalPodAutoscaler, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, \"status\", c.ns, horizontalPodAutoscaler), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *FakeHorizontalPodAutoscalers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(horizontalpodautoscalersResource, c.ns, name, opts), &v1.HorizontalPodAutoscaler{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeHorizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.HorizontalPodAutoscalerList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.HorizontalPodAutoscaler), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.CreateOptions) (*v1.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (*v1.HorizontalPodAutoscaler, error)\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (*v1.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error)\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV1Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *horizontalPodAutoscalers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *horizontalPodAutoscalers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.HorizontalPodAutoscalerList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.HorizontalPodAutoscalerList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *horizontalPodAutoscalers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.CreateOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *horizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *horizontalPodAutoscalers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *horizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) {\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\t\"net/http\"\n\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2Client {\n\treturn &AutoscalingV2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2) HorizontalPodAutoscalers(namespace string) v2.HorizontalPodAutoscalerInterface {\n\treturn &FakeHorizontalPodAutoscalers{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype FakeHorizontalPodAutoscalers struct {\n\tFake *FakeAutoscalingV2\n\tns   string\n}\n\nvar horizontalpodautoscalersResource = v2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\")\n\nvar horizontalpodautoscalersKind = v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\")\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *FakeHorizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2.HorizontalPodAutoscalerList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &v2.HorizontalPodAutoscalerList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v2.HorizontalPodAutoscalerList{ListMeta: obj.(*v2.HorizontalPodAutoscalerList).ListMeta}\n\tfor _, item := range obj.(*v2.HorizontalPodAutoscalerList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *FakeHorizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeHorizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2.HorizontalPodAutoscaler, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, \"status\", c.ns, horizontalPodAutoscaler), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *FakeHorizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(horizontalpodautoscalersResource, c.ns, name, opts), &v2.HorizontalPodAutoscaler{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeHorizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v2.HorizontalPodAutoscalerList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2.HorizontalPodAutoscaler), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.CreateOptions) (*v2.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2.HorizontalPodAutoscaler, error)\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v2.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v2.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error)\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *horizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *horizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2.HorizontalPodAutoscalerList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v2.HorizontalPodAutoscalerList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *horizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *horizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *horizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *horizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\n\tresult = &v2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\t\"net/http\"\n\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2beta1Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2beta1Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2beta1Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2beta1Client {\n\treturn &AutoscalingV2beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v2beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2beta1) HorizontalPodAutoscalers(namespace string) v2beta1.HorizontalPodAutoscalerInterface {\n\treturn &FakeHorizontalPodAutoscalers{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2beta1 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype FakeHorizontalPodAutoscalers struct {\n\tFake *FakeAutoscalingV2beta1\n\tns   string\n}\n\nvar horizontalpodautoscalersResource = v2beta1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\")\n\nvar horizontalpodautoscalersKind = v2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\")\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *FakeHorizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2beta1.HorizontalPodAutoscalerList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &v2beta1.HorizontalPodAutoscalerList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v2beta1.HorizontalPodAutoscalerList{ListMeta: obj.(*v2beta1.HorizontalPodAutoscalerList).ListMeta}\n\tfor _, item := range obj.(*v2beta1.HorizontalPodAutoscalerList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *FakeHorizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeHorizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta1.HorizontalPodAutoscaler, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, \"status\", c.ns, horizontalPodAutoscaler), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *FakeHorizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(horizontalpodautoscalersResource, c.ns, name, opts), &v2beta1.HorizontalPodAutoscaler{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeHorizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v2beta1.HorizontalPodAutoscalerList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v2beta1.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta1.HorizontalPodAutoscaler), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2beta1 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.CreateOptions) (*v2beta1.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta1.HorizontalPodAutoscaler, error)\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta1.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v2beta1.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v2beta1.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta1.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error)\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2beta1Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *horizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *horizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2beta1.HorizontalPodAutoscalerList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v2beta1.HorizontalPodAutoscalerList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *horizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *horizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *horizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *horizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\n\tresult = &v2beta1.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\t\"net/http\"\n\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2beta2Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2beta2Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2beta2Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2beta2Client {\n\treturn &AutoscalingV2beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v2beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2beta2) HorizontalPodAutoscalers(namespace string) v2beta2.HorizontalPodAutoscalerInterface {\n\treturn &FakeHorizontalPodAutoscalers{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2beta2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype FakeHorizontalPodAutoscalers struct {\n\tFake *FakeAutoscalingV2beta2\n\tns   string\n}\n\nvar horizontalpodautoscalersResource = v2beta2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\")\n\nvar horizontalpodautoscalersKind = v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\")\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *FakeHorizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.HorizontalPodAutoscalerList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &v2beta2.HorizontalPodAutoscalerList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v2beta2.HorizontalPodAutoscalerList{ListMeta: obj.(*v2beta2.HorizontalPodAutoscalerList).ListMeta}\n\tfor _, item := range obj.(*v2beta2.HorizontalPodAutoscalerList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *FakeHorizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *FakeHorizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeHorizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta2.HorizontalPodAutoscaler, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, \"status\", c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *FakeHorizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(horizontalpodautoscalersResource, c.ns, name, opts), &v2beta2.HorizontalPodAutoscaler{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeHorizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v2beta2.HorizontalPodAutoscalerList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v2beta2.HorizontalPodAutoscaler{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v2beta2.HorizontalPodAutoscaler), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tautoscalingv2beta2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.CreateOptions) (*v2beta2.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta2.HorizontalPodAutoscaler, error)\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*v2beta2.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v2beta2.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error)\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2beta2Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any.\nfunc (c *horizontalPodAutoscalers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors.\nfunc (c *horizontalPodAutoscalers) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.HorizontalPodAutoscalerList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v2beta2.HorizontalPodAutoscalerList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers.\nfunc (c *horizontalPodAutoscalers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a horizontalPodAutoscaler and creates it.  Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Create(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.CreateOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any.\nfunc (c *horizontalPodAutoscalers) Update(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *horizontalPodAutoscalers) UpdateStatus(ctx context.Context, horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(horizontalPodAutoscaler.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(horizontalPodAutoscaler).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs.\nfunc (c *horizontalPodAutoscalers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *horizontalPodAutoscalers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler.\nfunc (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) {\n\tif horizontalPodAutoscaler == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(horizontalPodAutoscaler)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := horizontalPodAutoscaler.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"horizontalPodAutoscaler.Name must be provided to Apply\")\n\t}\n\n\tresult = &v2beta2.HorizontalPodAutoscaler{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"horizontalpodautoscalers\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/batch/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype BatchV1Interface interface {\n\tRESTClient() rest.Interface\n\tCronJobsGetter\n\tJobsGetter\n}\n\n// BatchV1Client is used to interact with features provided by the batch group.\ntype BatchV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *BatchV1Client) CronJobs(namespace string) CronJobInterface {\n\treturn newCronJobs(c, namespace)\n}\n\nfunc (c *BatchV1Client) Jobs(namespace string) JobInterface {\n\treturn newJobs(c, namespace)\n}\n\n// NewForConfig creates a new BatchV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*BatchV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new BatchV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*BatchV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &BatchV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new BatchV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *BatchV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new BatchV1Client for the given RESTClient.\nfunc New(c rest.Interface) *BatchV1Client {\n\treturn &BatchV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *BatchV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CronJobsGetter has a method to return a CronJobInterface.\n// A group's client should implement this interface.\ntype CronJobsGetter interface {\n\tCronJobs(namespace string) CronJobInterface\n}\n\n// CronJobInterface has methods to work with CronJob resources.\ntype CronJobInterface interface {\n\tCreate(ctx context.Context, cronJob *v1.CronJob, opts metav1.CreateOptions) (*v1.CronJob, error)\n\tUpdate(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (*v1.CronJob, error)\n\tUpdateStatus(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (*v1.CronJob, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CronJob, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.CronJobList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CronJob, err error)\n\tApply(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error)\n\tApplyStatus(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error)\n\tCronJobExpansion\n}\n\n// cronJobs implements CronJobInterface\ntype cronJobs struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newCronJobs returns a CronJobs\nfunc newCronJobs(c *BatchV1Client, namespace string) *cronJobs {\n\treturn &cronJobs{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any.\nfunc (c *cronJobs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CronJob, err error) {\n\tresult = &v1.CronJob{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CronJobs that match those selectors.\nfunc (c *cronJobs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CronJobList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.CronJobList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cronJobs.\nfunc (c *cronJobs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cronJob and creates it.  Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *cronJobs) Create(ctx context.Context, cronJob *v1.CronJob, opts metav1.CreateOptions) (result *v1.CronJob, err error) {\n\tresult = &v1.CronJob{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *cronJobs) Update(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (result *v1.CronJob, err error) {\n\tresult = &v1.CronJob{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(cronJob.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *cronJobs) UpdateStatus(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (result *v1.CronJob, err error) {\n\tresult = &v1.CronJob{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(cronJob.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cronJob and deletes it. Returns an error if one occurs.\nfunc (c *cronJobs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cronJobs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cronJob.\nfunc (c *cronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CronJob, err error) {\n\tresult = &v1.CronJob{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob.\nfunc (c *cronJobs) Apply(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tresult = &v1.CronJob{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *cronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.CronJob{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeBatchV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeBatchV1) CronJobs(namespace string) v1.CronJobInterface {\n\treturn &FakeCronJobs{c, namespace}\n}\n\nfunc (c *FakeBatchV1) Jobs(namespace string) v1.JobInterface {\n\treturn &FakeJobs{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeBatchV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCronJobs implements CronJobInterface\ntype FakeCronJobs struct {\n\tFake *FakeBatchV1\n\tns   string\n}\n\nvar cronjobsResource = v1.SchemeGroupVersion.WithResource(\"cronjobs\")\n\nvar cronjobsKind = v1.SchemeGroupVersion.WithKind(\"CronJob\")\n\n// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any.\nfunc (c *FakeCronJobs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(cronjobsResource, c.ns, name), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// List takes label and field selectors, and returns the list of CronJobs that match those selectors.\nfunc (c *FakeCronJobs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CronJobList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(cronjobsResource, cronjobsKind, c.ns, opts), &v1.CronJobList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.CronJobList{ListMeta: obj.(*v1.CronJobList).ListMeta}\n\tfor _, item := range obj.(*v1.CronJobList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cronJobs.\nfunc (c *FakeCronJobs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(cronjobsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a cronJob and creates it.  Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *FakeCronJobs) Create(ctx context.Context, cronJob *v1.CronJob, opts metav1.CreateOptions) (result *v1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(cronjobsResource, c.ns, cronJob), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *FakeCronJobs) Update(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (result *v1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(cronjobsResource, c.ns, cronJob), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeCronJobs) UpdateStatus(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (*v1.CronJob, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(cronjobsResource, \"status\", c.ns, cronJob), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// Delete takes name of the cronJob and deletes it. Returns an error if one occurs.\nfunc (c *FakeCronJobs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(cronjobsResource, c.ns, name, opts), &v1.CronJob{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCronJobs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(cronjobsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.CronJobList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cronJob.\nfunc (c *FakeCronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob.\nfunc (c *FakeCronJobs) Apply(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeCronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CronJob), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeJobs implements JobInterface\ntype FakeJobs struct {\n\tFake *FakeBatchV1\n\tns   string\n}\n\nvar jobsResource = v1.SchemeGroupVersion.WithResource(\"jobs\")\n\nvar jobsKind = v1.SchemeGroupVersion.WithKind(\"Job\")\n\n// Get takes name of the job, and returns the corresponding job object, and an error if there is any.\nfunc (c *FakeJobs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Job, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(jobsResource, c.ns, name), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// List takes label and field selectors, and returns the list of Jobs that match those selectors.\nfunc (c *FakeJobs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.JobList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(jobsResource, jobsKind, c.ns, opts), &v1.JobList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.JobList{ListMeta: obj.(*v1.JobList).ListMeta}\n\tfor _, item := range obj.(*v1.JobList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested jobs.\nfunc (c *FakeJobs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(jobsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a job and creates it.  Returns the server's representation of the job, and an error, if there is any.\nfunc (c *FakeJobs) Create(ctx context.Context, job *v1.Job, opts metav1.CreateOptions) (result *v1.Job, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(jobsResource, c.ns, job), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// Update takes the representation of a job and updates it. Returns the server's representation of the job, and an error, if there is any.\nfunc (c *FakeJobs) Update(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (result *v1.Job, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(jobsResource, c.ns, job), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeJobs) UpdateStatus(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (*v1.Job, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(jobsResource, \"status\", c.ns, job), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// Delete takes name of the job and deletes it. Returns an error if one occurs.\nfunc (c *FakeJobs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(jobsResource, c.ns, name, opts), &v1.Job{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeJobs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(jobsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.JobList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched job.\nfunc (c *FakeJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Job, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, name, pt, data, subresources...), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied job.\nfunc (c *FakeJobs) Apply(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) {\n\tif job == nil {\n\t\treturn nil, fmt.Errorf(\"job provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(job)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := job.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"job.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeJobs) ApplyStatus(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) {\n\tif job == nil {\n\t\treturn nil, fmt.Errorf(\"job provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(job)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := job.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"job.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.Job{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Job), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CronJobExpansion interface{}\n\ntype JobExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// JobsGetter has a method to return a JobInterface.\n// A group's client should implement this interface.\ntype JobsGetter interface {\n\tJobs(namespace string) JobInterface\n}\n\n// JobInterface has methods to work with Job resources.\ntype JobInterface interface {\n\tCreate(ctx context.Context, job *v1.Job, opts metav1.CreateOptions) (*v1.Job, error)\n\tUpdate(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (*v1.Job, error)\n\tUpdateStatus(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (*v1.Job, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Job, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.JobList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Job, err error)\n\tApply(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error)\n\tApplyStatus(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error)\n\tJobExpansion\n}\n\n// jobs implements JobInterface\ntype jobs struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newJobs returns a Jobs\nfunc newJobs(c *BatchV1Client, namespace string) *jobs {\n\treturn &jobs{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the job, and returns the corresponding job object, and an error if there is any.\nfunc (c *jobs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Job, err error) {\n\tresult = &v1.Job{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Jobs that match those selectors.\nfunc (c *jobs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.JobList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.JobList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested jobs.\nfunc (c *jobs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a job and creates it.  Returns the server's representation of the job, and an error, if there is any.\nfunc (c *jobs) Create(ctx context.Context, job *v1.Job, opts metav1.CreateOptions) (result *v1.Job, err error) {\n\tresult = &v1.Job{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(job).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a job and updates it. Returns the server's representation of the job, and an error, if there is any.\nfunc (c *jobs) Update(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (result *v1.Job, err error) {\n\tresult = &v1.Job{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(job.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(job).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *jobs) UpdateStatus(ctx context.Context, job *v1.Job, opts metav1.UpdateOptions) (result *v1.Job, err error) {\n\tresult = &v1.Job{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(job.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(job).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the job and deletes it. Returns an error if one occurs.\nfunc (c *jobs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *jobs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched job.\nfunc (c *jobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Job, err error) {\n\tresult = &v1.Job{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied job.\nfunc (c *jobs) Apply(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) {\n\tif job == nil {\n\t\treturn nil, fmt.Errorf(\"job provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(job)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := job.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"job.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Job{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *jobs) ApplyStatus(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) {\n\tif job == nil {\n\t\treturn nil, fmt.Errorf(\"job provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(job)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := job.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"job.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Job{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"jobs\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/batch/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype BatchV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCronJobsGetter\n}\n\n// BatchV1beta1Client is used to interact with features provided by the batch group.\ntype BatchV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *BatchV1beta1Client) CronJobs(namespace string) CronJobInterface {\n\treturn newCronJobs(c, namespace)\n}\n\n// NewForConfig creates a new BatchV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*BatchV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new BatchV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*BatchV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &BatchV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new BatchV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *BatchV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new BatchV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *BatchV1beta1Client {\n\treturn &BatchV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *BatchV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1beta1 \"k8s.io/client-go/applyconfigurations/batch/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CronJobsGetter has a method to return a CronJobInterface.\n// A group's client should implement this interface.\ntype CronJobsGetter interface {\n\tCronJobs(namespace string) CronJobInterface\n}\n\n// CronJobInterface has methods to work with CronJob resources.\ntype CronJobInterface interface {\n\tCreate(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.CreateOptions) (*v1beta1.CronJob, error)\n\tUpdate(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (*v1beta1.CronJob, error)\n\tUpdateStatus(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (*v1beta1.CronJob, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CronJob, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.CronJobList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CronJob, err error)\n\tApply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error)\n\tApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error)\n\tCronJobExpansion\n}\n\n// cronJobs implements CronJobInterface\ntype cronJobs struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newCronJobs returns a CronJobs\nfunc newCronJobs(c *BatchV1beta1Client, namespace string) *cronJobs {\n\treturn &cronJobs{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any.\nfunc (c *cronJobs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CronJob, err error) {\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CronJobs that match those selectors.\nfunc (c *cronJobs) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CronJobList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.CronJobList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cronJobs.\nfunc (c *cronJobs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cronJob and creates it.  Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *cronJobs) Create(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.CreateOptions) (result *v1beta1.CronJob, err error) {\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *cronJobs) Update(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (result *v1beta1.CronJob, err error) {\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(cronJob.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *cronJobs) UpdateStatus(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (result *v1beta1.CronJob, err error) {\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(cronJob.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cronJob).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cronJob and deletes it. Returns an error if one occurs.\nfunc (c *cronJobs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cronJobs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cronJob.\nfunc (c *cronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CronJob, err error) {\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob.\nfunc (c *cronJobs) Apply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *cronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.CronJob{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"cronjobs\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeBatchV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeBatchV1beta1) CronJobs(namespace string) v1beta1.CronJobInterface {\n\treturn &FakeCronJobs{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeBatchV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tbatchv1beta1 \"k8s.io/client-go/applyconfigurations/batch/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCronJobs implements CronJobInterface\ntype FakeCronJobs struct {\n\tFake *FakeBatchV1beta1\n\tns   string\n}\n\nvar cronjobsResource = v1beta1.SchemeGroupVersion.WithResource(\"cronjobs\")\n\nvar cronjobsKind = v1beta1.SchemeGroupVersion.WithKind(\"CronJob\")\n\n// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any.\nfunc (c *FakeCronJobs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(cronjobsResource, c.ns, name), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// List takes label and field selectors, and returns the list of CronJobs that match those selectors.\nfunc (c *FakeCronJobs) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CronJobList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(cronjobsResource, cronjobsKind, c.ns, opts), &v1beta1.CronJobList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.CronJobList{ListMeta: obj.(*v1beta1.CronJobList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.CronJobList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cronJobs.\nfunc (c *FakeCronJobs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(cronjobsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a cronJob and creates it.  Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *FakeCronJobs) Create(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.CreateOptions) (result *v1beta1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(cronjobsResource, c.ns, cronJob), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any.\nfunc (c *FakeCronJobs) Update(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (result *v1beta1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(cronjobsResource, c.ns, cronJob), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeCronJobs) UpdateStatus(ctx context.Context, cronJob *v1beta1.CronJob, opts v1.UpdateOptions) (*v1beta1.CronJob, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(cronjobsResource, \"status\", c.ns, cronJob), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// Delete takes name of the cronJob and deletes it. Returns an error if one occurs.\nfunc (c *FakeCronJobs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(cronjobsResource, c.ns, name, opts), &v1beta1.CronJob{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCronJobs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(cronjobsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.CronJobList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cronJob.\nfunc (c *FakeCronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CronJob, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob.\nfunc (c *FakeCronJobs) Apply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeCronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) {\n\tif cronJob == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cronJob)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cronJob.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cronJob.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.CronJob{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CronJob), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype CronJobExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/certificates/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1Interface interface {\n\tRESTClient() rest.Interface\n\tCertificateSigningRequestsGetter\n}\n\n// CertificatesV1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1Client) CertificateSigningRequests() CertificateSigningRequestInterface {\n\treturn newCertificateSigningRequests(c)\n}\n\n// NewForConfig creates a new CertificatesV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1Client {\n\treturn &CertificatesV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1 \"k8s.io/client-go/applyconfigurations/certificates/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CertificateSigningRequestsGetter has a method to return a CertificateSigningRequestInterface.\n// A group's client should implement this interface.\ntype CertificateSigningRequestsGetter interface {\n\tCertificateSigningRequests() CertificateSigningRequestInterface\n}\n\n// CertificateSigningRequestInterface has methods to work with CertificateSigningRequest resources.\ntype CertificateSigningRequestInterface interface {\n\tCreate(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.CreateOptions) (*v1.CertificateSigningRequest, error)\n\tUpdate(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (*v1.CertificateSigningRequest, error)\n\tUpdateStatus(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (*v1.CertificateSigningRequest, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CertificateSigningRequest, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.CertificateSigningRequestList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CertificateSigningRequest, err error)\n\tApply(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error)\n\tApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error)\n\tUpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (*v1.CertificateSigningRequest, error)\n\n\tCertificateSigningRequestExpansion\n}\n\n// certificateSigningRequests implements CertificateSigningRequestInterface\ntype certificateSigningRequests struct {\n\tclient rest.Interface\n}\n\n// newCertificateSigningRequests returns a CertificateSigningRequests\nfunc newCertificateSigningRequests(c *CertificatesV1Client) *certificateSigningRequests {\n\treturn &certificateSigningRequests{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the certificateSigningRequest, and returns the corresponding certificateSigningRequest object, and an error if there is any.\nfunc (c *certificateSigningRequests) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CertificateSigningRequests that match those selectors.\nfunc (c *certificateSigningRequests) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CertificateSigningRequestList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.CertificateSigningRequestList{}\n\terr = c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested certificateSigningRequests.\nfunc (c *certificateSigningRequests) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a certificateSigningRequest and creates it.  Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) Create(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.CreateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Post().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) Update(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *certificateSigningRequests) UpdateStatus(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the certificateSigningRequest and deletes it. Returns an error if one occurs.\nfunc (c *certificateSigningRequests) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *certificateSigningRequests) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched certificateSigningRequest.\nfunc (c *certificateSigningRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest.\nfunc (c *certificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *certificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateApproval takes the top resource name and the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tresult = &v1.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequestName).\n\t\tSubResource(\"approval\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1) CertificateSigningRequests() v1.CertificateSigningRequestInterface {\n\treturn &FakeCertificateSigningRequests{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1 \"k8s.io/client-go/applyconfigurations/certificates/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCertificateSigningRequests implements CertificateSigningRequestInterface\ntype FakeCertificateSigningRequests struct {\n\tFake *FakeCertificatesV1\n}\n\nvar certificatesigningrequestsResource = v1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\")\n\nvar certificatesigningrequestsKind = v1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\")\n\n// Get takes name of the certificateSigningRequest, and returns the corresponding certificateSigningRequest object, and an error if there is any.\nfunc (c *FakeCertificateSigningRequests) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(certificatesigningrequestsResource, name), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// List takes label and field selectors, and returns the list of CertificateSigningRequests that match those selectors.\nfunc (c *FakeCertificateSigningRequests) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CertificateSigningRequestList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(certificatesigningrequestsResource, certificatesigningrequestsKind, opts), &v1.CertificateSigningRequestList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.CertificateSigningRequestList{ListMeta: obj.(*v1.CertificateSigningRequestList).ListMeta}\n\tfor _, item := range obj.(*v1.CertificateSigningRequestList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested certificateSigningRequests.\nfunc (c *FakeCertificateSigningRequests) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(certificatesigningrequestsResource, opts))\n}\n\n// Create takes the representation of a certificateSigningRequest and creates it.  Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *FakeCertificateSigningRequests) Create(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.CreateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(certificatesigningrequestsResource, certificateSigningRequest), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// Update takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *FakeCertificateSigningRequests) Update(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(certificatesigningrequestsResource, certificateSigningRequest), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeCertificateSigningRequests) UpdateStatus(ctx context.Context, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (*v1.CertificateSigningRequest, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(certificatesigningrequestsResource, \"status\", certificateSigningRequest), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// Delete takes name of the certificateSigningRequest and deletes it. Returns an error if one occurs.\nfunc (c *FakeCertificateSigningRequests) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(certificatesigningrequestsResource, name, opts), &v1.CertificateSigningRequest{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCertificateSigningRequests) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(certificatesigningrequestsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.CertificateSigningRequestList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched certificateSigningRequest.\nfunc (c *FakeCertificateSigningRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, name, pt, data, subresources...), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest.\nfunc (c *FakeCertificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeCertificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data, \"status\"), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n\n// UpdateApproval takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *FakeCertificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(certificatesigningrequestsResource, \"approval\", certificateSigningRequest), &v1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CertificateSigningRequestExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterTrustBundlesGetter\n}\n\n// CertificatesV1alpha1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1alpha1Client) ClusterTrustBundles() ClusterTrustBundleInterface {\n\treturn newClusterTrustBundles(c)\n}\n\n// NewForConfig creates a new CertificatesV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1alpha1Client {\n\treturn &CertificatesV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/applyconfigurations/certificates/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterTrustBundlesGetter has a method to return a ClusterTrustBundleInterface.\n// A group's client should implement this interface.\ntype ClusterTrustBundlesGetter interface {\n\tClusterTrustBundles() ClusterTrustBundleInterface\n}\n\n// ClusterTrustBundleInterface has methods to work with ClusterTrustBundle resources.\ntype ClusterTrustBundleInterface interface {\n\tCreate(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.CreateOptions) (*v1alpha1.ClusterTrustBundle, error)\n\tUpdate(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.UpdateOptions) (*v1alpha1.ClusterTrustBundle, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterTrustBundle, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterTrustBundleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterTrustBundle, err error)\n\tApply(ctx context.Context, clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterTrustBundle, err error)\n\tClusterTrustBundleExpansion\n}\n\n// clusterTrustBundles implements ClusterTrustBundleInterface\ntype clusterTrustBundles struct {\n\tclient rest.Interface\n}\n\n// newClusterTrustBundles returns a ClusterTrustBundles\nfunc newClusterTrustBundles(c *CertificatesV1alpha1Client) *clusterTrustBundles {\n\treturn &clusterTrustBundles{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterTrustBundle, and returns the corresponding clusterTrustBundle object, and an error if there is any.\nfunc (c *clusterTrustBundles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tresult = &v1alpha1.ClusterTrustBundle{}\n\terr = c.client.Get().\n\t\tResource(\"clustertrustbundles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterTrustBundles that match those selectors.\nfunc (c *clusterTrustBundles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterTrustBundleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ClusterTrustBundleList{}\n\terr = c.client.Get().\n\t\tResource(\"clustertrustbundles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterTrustBundles.\nfunc (c *clusterTrustBundles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clustertrustbundles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterTrustBundle and creates it.  Returns the server's representation of the clusterTrustBundle, and an error, if there is any.\nfunc (c *clusterTrustBundles) Create(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.CreateOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tresult = &v1alpha1.ClusterTrustBundle{}\n\terr = c.client.Post().\n\t\tResource(\"clustertrustbundles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterTrustBundle).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterTrustBundle and updates it. Returns the server's representation of the clusterTrustBundle, and an error, if there is any.\nfunc (c *clusterTrustBundles) Update(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.UpdateOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tresult = &v1alpha1.ClusterTrustBundle{}\n\terr = c.client.Put().\n\t\tResource(\"clustertrustbundles\").\n\t\tName(clusterTrustBundle.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterTrustBundle).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterTrustBundle and deletes it. Returns an error if one occurs.\nfunc (c *clusterTrustBundles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clustertrustbundles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterTrustBundles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clustertrustbundles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterTrustBundle.\nfunc (c *clusterTrustBundles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tresult = &v1alpha1.ClusterTrustBundle{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clustertrustbundles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterTrustBundle.\nfunc (c *clusterTrustBundles) Apply(ctx context.Context, clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tif clusterTrustBundle == nil {\n\t\treturn nil, fmt.Errorf(\"clusterTrustBundle provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterTrustBundle)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterTrustBundle.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterTrustBundle.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ClusterTrustBundle{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clustertrustbundles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1alpha1) ClusterTrustBundles() v1alpha1.ClusterTrustBundleInterface {\n\treturn &FakeClusterTrustBundles{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/fake_clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/applyconfigurations/certificates/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterTrustBundles implements ClusterTrustBundleInterface\ntype FakeClusterTrustBundles struct {\n\tFake *FakeCertificatesV1alpha1\n}\n\nvar clustertrustbundlesResource = v1alpha1.SchemeGroupVersion.WithResource(\"clustertrustbundles\")\n\nvar clustertrustbundlesKind = v1alpha1.SchemeGroupVersion.WithKind(\"ClusterTrustBundle\")\n\n// Get takes name of the clusterTrustBundle, and returns the corresponding clusterTrustBundle object, and an error if there is any.\nfunc (c *FakeClusterTrustBundles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clustertrustbundlesResource, name), &v1alpha1.ClusterTrustBundle{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterTrustBundle), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterTrustBundles that match those selectors.\nfunc (c *FakeClusterTrustBundles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterTrustBundleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clustertrustbundlesResource, clustertrustbundlesKind, opts), &v1alpha1.ClusterTrustBundleList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ClusterTrustBundleList{ListMeta: obj.(*v1alpha1.ClusterTrustBundleList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ClusterTrustBundleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterTrustBundles.\nfunc (c *FakeClusterTrustBundles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clustertrustbundlesResource, opts))\n}\n\n// Create takes the representation of a clusterTrustBundle and creates it.  Returns the server's representation of the clusterTrustBundle, and an error, if there is any.\nfunc (c *FakeClusterTrustBundles) Create(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.CreateOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clustertrustbundlesResource, clusterTrustBundle), &v1alpha1.ClusterTrustBundle{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterTrustBundle), err\n}\n\n// Update takes the representation of a clusterTrustBundle and updates it. Returns the server's representation of the clusterTrustBundle, and an error, if there is any.\nfunc (c *FakeClusterTrustBundles) Update(ctx context.Context, clusterTrustBundle *v1alpha1.ClusterTrustBundle, opts v1.UpdateOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clustertrustbundlesResource, clusterTrustBundle), &v1alpha1.ClusterTrustBundle{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterTrustBundle), err\n}\n\n// Delete takes name of the clusterTrustBundle and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterTrustBundles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clustertrustbundlesResource, name, opts), &v1alpha1.ClusterTrustBundle{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterTrustBundles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clustertrustbundlesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ClusterTrustBundleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterTrustBundle.\nfunc (c *FakeClusterTrustBundles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clustertrustbundlesResource, name, pt, data, subresources...), &v1alpha1.ClusterTrustBundle{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterTrustBundle), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterTrustBundle.\nfunc (c *FakeClusterTrustBundles) Apply(ctx context.Context, clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterTrustBundle, err error) {\n\tif clusterTrustBundle == nil {\n\t\treturn nil, fmt.Errorf(\"clusterTrustBundle provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterTrustBundle)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterTrustBundle.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterTrustBundle.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clustertrustbundlesResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterTrustBundle{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterTrustBundle), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ClusterTrustBundleExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCertificateSigningRequestsGetter\n}\n\n// CertificatesV1beta1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1beta1Client) CertificateSigningRequests() CertificateSigningRequestInterface {\n\treturn newCertificateSigningRequests(c)\n}\n\n// NewForConfig creates a new CertificatesV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1beta1Client {\n\treturn &CertificatesV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1beta1 \"k8s.io/client-go/applyconfigurations/certificates/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CertificateSigningRequestsGetter has a method to return a CertificateSigningRequestInterface.\n// A group's client should implement this interface.\ntype CertificateSigningRequestsGetter interface {\n\tCertificateSigningRequests() CertificateSigningRequestInterface\n}\n\n// CertificateSigningRequestInterface has methods to work with CertificateSigningRequest resources.\ntype CertificateSigningRequestInterface interface {\n\tCreate(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.CreateOptions) (*v1beta1.CertificateSigningRequest, error)\n\tUpdate(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (*v1beta1.CertificateSigningRequest, error)\n\tUpdateStatus(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (*v1beta1.CertificateSigningRequest, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CertificateSigningRequest, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.CertificateSigningRequestList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CertificateSigningRequest, err error)\n\tApply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error)\n\tApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error)\n\tCertificateSigningRequestExpansion\n}\n\n// certificateSigningRequests implements CertificateSigningRequestInterface\ntype certificateSigningRequests struct {\n\tclient rest.Interface\n}\n\n// newCertificateSigningRequests returns a CertificateSigningRequests\nfunc newCertificateSigningRequests(c *CertificatesV1beta1Client) *certificateSigningRequests {\n\treturn &certificateSigningRequests{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the certificateSigningRequest, and returns the corresponding certificateSigningRequest object, and an error if there is any.\nfunc (c *certificateSigningRequests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CertificateSigningRequests that match those selectors.\nfunc (c *certificateSigningRequests) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CertificateSigningRequestList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.CertificateSigningRequestList{}\n\terr = c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested certificateSigningRequests.\nfunc (c *certificateSigningRequests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a certificateSigningRequest and creates it.  Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) Create(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.CreateOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Post().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) Update(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *certificateSigningRequests) UpdateStatus(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the certificateSigningRequest and deletes it. Returns an error if one occurs.\nfunc (c *certificateSigningRequests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *certificateSigningRequests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"certificatesigningrequests\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched certificateSigningRequest.\nfunc (c *certificateSigningRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CertificateSigningRequest, err error) {\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest.\nfunc (c *certificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *certificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.CertificateSigningRequest{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tcertificates \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\ntype CertificateSigningRequestExpansion interface {\n\tUpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error)\n}\n\nfunc (c *certificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error) {\n\tresult = &certificates.CertificateSigningRequest{}\n\terr = c.client.Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tSubResource(\"approval\").\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1beta1) CertificateSigningRequests() v1beta1.CertificateSigningRequestInterface {\n\treturn &FakeCertificateSigningRequests{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcertificatesv1beta1 \"k8s.io/client-go/applyconfigurations/certificates/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCertificateSigningRequests implements CertificateSigningRequestInterface\ntype FakeCertificateSigningRequests struct {\n\tFake *FakeCertificatesV1beta1\n}\n\nvar certificatesigningrequestsResource = v1beta1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\")\n\nvar certificatesigningrequestsKind = v1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\")\n\n// Get takes name of the certificateSigningRequest, and returns the corresponding certificateSigningRequest object, and an error if there is any.\nfunc (c *FakeCertificateSigningRequests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(certificatesigningrequestsResource, name), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// List takes label and field selectors, and returns the list of CertificateSigningRequests that match those selectors.\nfunc (c *FakeCertificateSigningRequests) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CertificateSigningRequestList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(certificatesigningrequestsResource, certificatesigningrequestsKind, opts), &v1beta1.CertificateSigningRequestList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.CertificateSigningRequestList{ListMeta: obj.(*v1beta1.CertificateSigningRequestList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.CertificateSigningRequestList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested certificateSigningRequests.\nfunc (c *FakeCertificateSigningRequests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(certificatesigningrequestsResource, opts))\n}\n\n// Create takes the representation of a certificateSigningRequest and creates it.  Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *FakeCertificateSigningRequests) Create(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.CreateOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(certificatesigningrequestsResource, certificateSigningRequest), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// Update takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *FakeCertificateSigningRequests) Update(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(certificatesigningrequestsResource, certificateSigningRequest), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeCertificateSigningRequests) UpdateStatus(ctx context.Context, certificateSigningRequest *v1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (*v1beta1.CertificateSigningRequest, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(certificatesigningrequestsResource, \"status\", certificateSigningRequest), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// Delete takes name of the certificateSigningRequest and deletes it. Returns an error if one occurs.\nfunc (c *FakeCertificateSigningRequests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(certificatesigningrequestsResource, name, opts), &v1beta1.CertificateSigningRequest{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCertificateSigningRequests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(certificatesigningrequestsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.CertificateSigningRequestList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched certificateSigningRequest.\nfunc (c *FakeCertificateSigningRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, name, pt, data, subresources...), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest.\nfunc (c *FakeCertificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeCertificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) {\n\tif certificateSigningRequest == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(certificateSigningRequest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := certificateSigningRequest.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"certificateSigningRequest.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CertificateSigningRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tcertificates \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeCertificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(core.NewRootUpdateSubresourceAction(certificatesigningrequestsResource, \"approval\", certificateSigningRequest), &certificates.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*certificates.CertificateSigningRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/coordination/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoordinationV1Interface interface {\n\tRESTClient() rest.Interface\n\tLeasesGetter\n}\n\n// CoordinationV1Client is used to interact with features provided by the coordination.k8s.io group.\ntype CoordinationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoordinationV1Client) Leases(namespace string) LeaseInterface {\n\treturn newLeases(c, namespace)\n}\n\n// NewForConfig creates a new CoordinationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoordinationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoordinationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoordinationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoordinationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoordinationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoordinationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoordinationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoordinationV1Client {\n\treturn &CoordinationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoordinationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoordinationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoordinationV1) Leases(namespace string) v1.LeaseInterface {\n\treturn &FakeLeases{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoordinationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcoordinationv1 \"k8s.io/client-go/applyconfigurations/coordination/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeLeases implements LeaseInterface\ntype FakeLeases struct {\n\tFake *FakeCoordinationV1\n\tns   string\n}\n\nvar leasesResource = v1.SchemeGroupVersion.WithResource(\"leases\")\n\nvar leasesKind = v1.SchemeGroupVersion.WithKind(\"Lease\")\n\n// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any.\nfunc (c *FakeLeases) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(leasesResource, c.ns, name), &v1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Lease), err\n}\n\n// List takes label and field selectors, and returns the list of Leases that match those selectors.\nfunc (c *FakeLeases) List(ctx context.Context, opts metav1.ListOptions) (result *v1.LeaseList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(leasesResource, leasesKind, c.ns, opts), &v1.LeaseList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.LeaseList{ListMeta: obj.(*v1.LeaseList).ListMeta}\n\tfor _, item := range obj.(*v1.LeaseList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested leases.\nfunc (c *FakeLeases) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(leasesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a lease and creates it.  Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *FakeLeases) Create(ctx context.Context, lease *v1.Lease, opts metav1.CreateOptions) (result *v1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(leasesResource, c.ns, lease), &v1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Lease), err\n}\n\n// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *FakeLeases) Update(ctx context.Context, lease *v1.Lease, opts metav1.UpdateOptions) (result *v1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(leasesResource, c.ns, lease), &v1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Lease), err\n}\n\n// Delete takes name of the lease and deletes it. Returns an error if one occurs.\nfunc (c *FakeLeases) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(leasesResource, c.ns, name, opts), &v1.Lease{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeLeases) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(leasesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.LeaseList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched lease.\nfunc (c *FakeLeases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, name, pt, data, subresources...), &v1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Lease), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied lease.\nfunc (c *FakeLeases) Apply(ctx context.Context, lease *coordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Lease, err error) {\n\tif lease == nil {\n\t\treturn nil, fmt.Errorf(\"lease provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(lease)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := lease.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"lease.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, *name, types.ApplyPatchType, data), &v1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Lease), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype LeaseExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcoordinationv1 \"k8s.io/client-go/applyconfigurations/coordination/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// LeasesGetter has a method to return a LeaseInterface.\n// A group's client should implement this interface.\ntype LeasesGetter interface {\n\tLeases(namespace string) LeaseInterface\n}\n\n// LeaseInterface has methods to work with Lease resources.\ntype LeaseInterface interface {\n\tCreate(ctx context.Context, lease *v1.Lease, opts metav1.CreateOptions) (*v1.Lease, error)\n\tUpdate(ctx context.Context, lease *v1.Lease, opts metav1.UpdateOptions) (*v1.Lease, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Lease, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.LeaseList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Lease, err error)\n\tApply(ctx context.Context, lease *coordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Lease, err error)\n\tLeaseExpansion\n}\n\n// leases implements LeaseInterface\ntype leases struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newLeases returns a Leases\nfunc newLeases(c *CoordinationV1Client, namespace string) *leases {\n\treturn &leases{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any.\nfunc (c *leases) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Lease, err error) {\n\tresult = &v1.Lease{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Leases that match those selectors.\nfunc (c *leases) List(ctx context.Context, opts metav1.ListOptions) (result *v1.LeaseList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.LeaseList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested leases.\nfunc (c *leases) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a lease and creates it.  Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *leases) Create(ctx context.Context, lease *v1.Lease, opts metav1.CreateOptions) (result *v1.Lease, err error) {\n\tresult = &v1.Lease{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(lease).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *leases) Update(ctx context.Context, lease *v1.Lease, opts metav1.UpdateOptions) (result *v1.Lease, err error) {\n\tresult = &v1.Lease{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(lease.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(lease).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the lease and deletes it. Returns an error if one occurs.\nfunc (c *leases) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *leases) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched lease.\nfunc (c *leases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Lease, err error) {\n\tresult = &v1.Lease{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied lease.\nfunc (c *leases) Apply(ctx context.Context, lease *coordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Lease, err error) {\n\tif lease == nil {\n\t\treturn nil, fmt.Errorf(\"lease provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(lease)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := lease.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"lease.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Lease{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoordinationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tLeasesGetter\n}\n\n// CoordinationV1beta1Client is used to interact with features provided by the coordination.k8s.io group.\ntype CoordinationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoordinationV1beta1Client) Leases(namespace string) LeaseInterface {\n\treturn newLeases(c, namespace)\n}\n\n// NewForConfig creates a new CoordinationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoordinationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoordinationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoordinationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoordinationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoordinationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoordinationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoordinationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoordinationV1beta1Client {\n\treturn &CoordinationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoordinationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoordinationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoordinationV1beta1) Leases(namespace string) v1beta1.LeaseInterface {\n\treturn &FakeLeases{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoordinationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcoordinationv1beta1 \"k8s.io/client-go/applyconfigurations/coordination/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeLeases implements LeaseInterface\ntype FakeLeases struct {\n\tFake *FakeCoordinationV1beta1\n\tns   string\n}\n\nvar leasesResource = v1beta1.SchemeGroupVersion.WithResource(\"leases\")\n\nvar leasesKind = v1beta1.SchemeGroupVersion.WithKind(\"Lease\")\n\n// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any.\nfunc (c *FakeLeases) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(leasesResource, c.ns, name), &v1beta1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Lease), err\n}\n\n// List takes label and field selectors, and returns the list of Leases that match those selectors.\nfunc (c *FakeLeases) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.LeaseList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(leasesResource, leasesKind, c.ns, opts), &v1beta1.LeaseList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.LeaseList{ListMeta: obj.(*v1beta1.LeaseList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.LeaseList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested leases.\nfunc (c *FakeLeases) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(leasesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a lease and creates it.  Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *FakeLeases) Create(ctx context.Context, lease *v1beta1.Lease, opts v1.CreateOptions) (result *v1beta1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(leasesResource, c.ns, lease), &v1beta1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Lease), err\n}\n\n// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *FakeLeases) Update(ctx context.Context, lease *v1beta1.Lease, opts v1.UpdateOptions) (result *v1beta1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(leasesResource, c.ns, lease), &v1beta1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Lease), err\n}\n\n// Delete takes name of the lease and deletes it. Returns an error if one occurs.\nfunc (c *FakeLeases) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(leasesResource, c.ns, name, opts), &v1beta1.Lease{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeLeases) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(leasesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.LeaseList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched lease.\nfunc (c *FakeLeases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Lease, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, name, pt, data, subresources...), &v1beta1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Lease), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied lease.\nfunc (c *FakeLeases) Apply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error) {\n\tif lease == nil {\n\t\treturn nil, fmt.Errorf(\"lease provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(lease)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := lease.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"lease.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Lease{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Lease), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype LeaseExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcoordinationv1beta1 \"k8s.io/client-go/applyconfigurations/coordination/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// LeasesGetter has a method to return a LeaseInterface.\n// A group's client should implement this interface.\ntype LeasesGetter interface {\n\tLeases(namespace string) LeaseInterface\n}\n\n// LeaseInterface has methods to work with Lease resources.\ntype LeaseInterface interface {\n\tCreate(ctx context.Context, lease *v1beta1.Lease, opts v1.CreateOptions) (*v1beta1.Lease, error)\n\tUpdate(ctx context.Context, lease *v1beta1.Lease, opts v1.UpdateOptions) (*v1beta1.Lease, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Lease, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.LeaseList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Lease, err error)\n\tApply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error)\n\tLeaseExpansion\n}\n\n// leases implements LeaseInterface\ntype leases struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newLeases returns a Leases\nfunc newLeases(c *CoordinationV1beta1Client, namespace string) *leases {\n\treturn &leases{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any.\nfunc (c *leases) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Lease, err error) {\n\tresult = &v1beta1.Lease{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Leases that match those selectors.\nfunc (c *leases) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.LeaseList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.LeaseList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested leases.\nfunc (c *leases) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a lease and creates it.  Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *leases) Create(ctx context.Context, lease *v1beta1.Lease, opts v1.CreateOptions) (result *v1beta1.Lease, err error) {\n\tresult = &v1beta1.Lease{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(lease).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any.\nfunc (c *leases) Update(ctx context.Context, lease *v1beta1.Lease, opts v1.UpdateOptions) (result *v1beta1.Lease, err error) {\n\tresult = &v1beta1.Lease{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(lease.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(lease).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the lease and deletes it. Returns an error if one occurs.\nfunc (c *leases) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *leases) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched lease.\nfunc (c *leases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Lease, err error) {\n\tresult = &v1beta1.Lease{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied lease.\nfunc (c *leases) Apply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error) {\n\tif lease == nil {\n\t\treturn nil, fmt.Errorf(\"lease provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(lease)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := lease.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"lease.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Lease{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"leases\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ComponentStatusesGetter has a method to return a ComponentStatusInterface.\n// A group's client should implement this interface.\ntype ComponentStatusesGetter interface {\n\tComponentStatuses() ComponentStatusInterface\n}\n\n// ComponentStatusInterface has methods to work with ComponentStatus resources.\ntype ComponentStatusInterface interface {\n\tCreate(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.CreateOptions) (*v1.ComponentStatus, error)\n\tUpdate(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.UpdateOptions) (*v1.ComponentStatus, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ComponentStatus, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ComponentStatusList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ComponentStatus, err error)\n\tApply(ctx context.Context, componentStatus *corev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ComponentStatus, err error)\n\tComponentStatusExpansion\n}\n\n// componentStatuses implements ComponentStatusInterface\ntype componentStatuses struct {\n\tclient rest.Interface\n}\n\n// newComponentStatuses returns a ComponentStatuses\nfunc newComponentStatuses(c *CoreV1Client) *componentStatuses {\n\treturn &componentStatuses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any.\nfunc (c *componentStatuses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ComponentStatus, err error) {\n\tresult = &v1.ComponentStatus{}\n\terr = c.client.Get().\n\t\tResource(\"componentstatuses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors.\nfunc (c *componentStatuses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ComponentStatusList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ComponentStatusList{}\n\terr = c.client.Get().\n\t\tResource(\"componentstatuses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested componentStatuses.\nfunc (c *componentStatuses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"componentstatuses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a componentStatus and creates it.  Returns the server's representation of the componentStatus, and an error, if there is any.\nfunc (c *componentStatuses) Create(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.CreateOptions) (result *v1.ComponentStatus, err error) {\n\tresult = &v1.ComponentStatus{}\n\terr = c.client.Post().\n\t\tResource(\"componentstatuses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(componentStatus).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a componentStatus and updates it. Returns the server's representation of the componentStatus, and an error, if there is any.\nfunc (c *componentStatuses) Update(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.UpdateOptions) (result *v1.ComponentStatus, err error) {\n\tresult = &v1.ComponentStatus{}\n\terr = c.client.Put().\n\t\tResource(\"componentstatuses\").\n\t\tName(componentStatus.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(componentStatus).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the componentStatus and deletes it. Returns an error if one occurs.\nfunc (c *componentStatuses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"componentstatuses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *componentStatuses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"componentstatuses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched componentStatus.\nfunc (c *componentStatuses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ComponentStatus, err error) {\n\tresult = &v1.ComponentStatus{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"componentstatuses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied componentStatus.\nfunc (c *componentStatuses) Apply(ctx context.Context, componentStatus *corev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ComponentStatus, err error) {\n\tif componentStatus == nil {\n\t\treturn nil, fmt.Errorf(\"componentStatus provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(componentStatus)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := componentStatus.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"componentStatus.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ComponentStatus{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"componentstatuses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ConfigMapsGetter has a method to return a ConfigMapInterface.\n// A group's client should implement this interface.\ntype ConfigMapsGetter interface {\n\tConfigMaps(namespace string) ConfigMapInterface\n}\n\n// ConfigMapInterface has methods to work with ConfigMap resources.\ntype ConfigMapInterface interface {\n\tCreate(ctx context.Context, configMap *v1.ConfigMap, opts metav1.CreateOptions) (*v1.ConfigMap, error)\n\tUpdate(ctx context.Context, configMap *v1.ConfigMap, opts metav1.UpdateOptions) (*v1.ConfigMap, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ConfigMap, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ConfigMapList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ConfigMap, err error)\n\tApply(ctx context.Context, configMap *corev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ConfigMap, err error)\n\tConfigMapExpansion\n}\n\n// configMaps implements ConfigMapInterface\ntype configMaps struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newConfigMaps returns a ConfigMaps\nfunc newConfigMaps(c *CoreV1Client, namespace string) *configMaps {\n\treturn &configMaps{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any.\nfunc (c *configMaps) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ConfigMap, err error) {\n\tresult = &v1.ConfigMap{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ConfigMaps that match those selectors.\nfunc (c *configMaps) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ConfigMapList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ConfigMapList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested configMaps.\nfunc (c *configMaps) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a configMap and creates it.  Returns the server's representation of the configMap, and an error, if there is any.\nfunc (c *configMaps) Create(ctx context.Context, configMap *v1.ConfigMap, opts metav1.CreateOptions) (result *v1.ConfigMap, err error) {\n\tresult = &v1.ConfigMap{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(configMap).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any.\nfunc (c *configMaps) Update(ctx context.Context, configMap *v1.ConfigMap, opts metav1.UpdateOptions) (result *v1.ConfigMap, err error) {\n\tresult = &v1.ConfigMap{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tName(configMap.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(configMap).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the configMap and deletes it. Returns an error if one occurs.\nfunc (c *configMaps) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *configMaps) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched configMap.\nfunc (c *configMaps) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ConfigMap, err error) {\n\tresult = &v1.ConfigMap{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied configMap.\nfunc (c *configMaps) Apply(ctx context.Context, configMap *corev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ConfigMap, err error) {\n\tif configMap == nil {\n\t\treturn nil, fmt.Errorf(\"configMap provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(configMap)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := configMap.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"configMap.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ConfigMap{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"configmaps\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoreV1Interface interface {\n\tRESTClient() rest.Interface\n\tComponentStatusesGetter\n\tConfigMapsGetter\n\tEndpointsGetter\n\tEventsGetter\n\tLimitRangesGetter\n\tNamespacesGetter\n\tNodesGetter\n\tPersistentVolumesGetter\n\tPersistentVolumeClaimsGetter\n\tPodsGetter\n\tPodTemplatesGetter\n\tReplicationControllersGetter\n\tResourceQuotasGetter\n\tSecretsGetter\n\tServicesGetter\n\tServiceAccountsGetter\n}\n\n// CoreV1Client is used to interact with features provided by the  group.\ntype CoreV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoreV1Client) ComponentStatuses() ComponentStatusInterface {\n\treturn newComponentStatuses(c)\n}\n\nfunc (c *CoreV1Client) ConfigMaps(namespace string) ConfigMapInterface {\n\treturn newConfigMaps(c, namespace)\n}\n\nfunc (c *CoreV1Client) Endpoints(namespace string) EndpointsInterface {\n\treturn newEndpoints(c, namespace)\n}\n\nfunc (c *CoreV1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\nfunc (c *CoreV1Client) LimitRanges(namespace string) LimitRangeInterface {\n\treturn newLimitRanges(c, namespace)\n}\n\nfunc (c *CoreV1Client) Namespaces() NamespaceInterface {\n\treturn newNamespaces(c)\n}\n\nfunc (c *CoreV1Client) Nodes() NodeInterface {\n\treturn newNodes(c)\n}\n\nfunc (c *CoreV1Client) PersistentVolumes() PersistentVolumeInterface {\n\treturn newPersistentVolumes(c)\n}\n\nfunc (c *CoreV1Client) PersistentVolumeClaims(namespace string) PersistentVolumeClaimInterface {\n\treturn newPersistentVolumeClaims(c, namespace)\n}\n\nfunc (c *CoreV1Client) Pods(namespace string) PodInterface {\n\treturn newPods(c, namespace)\n}\n\nfunc (c *CoreV1Client) PodTemplates(namespace string) PodTemplateInterface {\n\treturn newPodTemplates(c, namespace)\n}\n\nfunc (c *CoreV1Client) ReplicationControllers(namespace string) ReplicationControllerInterface {\n\treturn newReplicationControllers(c, namespace)\n}\n\nfunc (c *CoreV1Client) ResourceQuotas(namespace string) ResourceQuotaInterface {\n\treturn newResourceQuotas(c, namespace)\n}\n\nfunc (c *CoreV1Client) Secrets(namespace string) SecretInterface {\n\treturn newSecrets(c, namespace)\n}\n\nfunc (c *CoreV1Client) Services(namespace string) ServiceInterface {\n\treturn newServices(c, namespace)\n}\n\nfunc (c *CoreV1Client) ServiceAccounts(namespace string) ServiceAccountInterface {\n\treturn newServiceAccounts(c, namespace)\n}\n\n// NewForConfig creates a new CoreV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoreV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoreV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoreV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoreV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoreV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoreV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoreV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoreV1Client {\n\treturn &CoreV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/api\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoreV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EndpointsGetter has a method to return a EndpointsInterface.\n// A group's client should implement this interface.\ntype EndpointsGetter interface {\n\tEndpoints(namespace string) EndpointsInterface\n}\n\n// EndpointsInterface has methods to work with Endpoints resources.\ntype EndpointsInterface interface {\n\tCreate(ctx context.Context, endpoints *v1.Endpoints, opts metav1.CreateOptions) (*v1.Endpoints, error)\n\tUpdate(ctx context.Context, endpoints *v1.Endpoints, opts metav1.UpdateOptions) (*v1.Endpoints, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Endpoints, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.EndpointsList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Endpoints, err error)\n\tApply(ctx context.Context, endpoints *corev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Endpoints, err error)\n\tEndpointsExpansion\n}\n\n// endpoints implements EndpointsInterface\ntype endpoints struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEndpoints returns a Endpoints\nfunc newEndpoints(c *CoreV1Client, namespace string) *endpoints {\n\treturn &endpoints{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any.\nfunc (c *endpoints) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Endpoints, err error) {\n\tresult = &v1.Endpoints{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Endpoints that match those selectors.\nfunc (c *endpoints) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EndpointsList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.EndpointsList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested endpoints.\nfunc (c *endpoints) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a endpoints and creates it.  Returns the server's representation of the endpoints, and an error, if there is any.\nfunc (c *endpoints) Create(ctx context.Context, endpoints *v1.Endpoints, opts metav1.CreateOptions) (result *v1.Endpoints, err error) {\n\tresult = &v1.Endpoints{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpoints).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a endpoints and updates it. Returns the server's representation of the endpoints, and an error, if there is any.\nfunc (c *endpoints) Update(ctx context.Context, endpoints *v1.Endpoints, opts metav1.UpdateOptions) (result *v1.Endpoints, err error) {\n\tresult = &v1.Endpoints{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tName(endpoints.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpoints).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the endpoints and deletes it. Returns an error if one occurs.\nfunc (c *endpoints) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *endpoints) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched endpoints.\nfunc (c *endpoints) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Endpoints, err error) {\n\tresult = &v1.Endpoints{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpoints.\nfunc (c *endpoints) Apply(ctx context.Context, endpoints *corev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Endpoints, err error) {\n\tif endpoints == nil {\n\t\treturn nil, fmt.Errorf(\"endpoints provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(endpoints)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpoints.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpoints.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Endpoints{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpoints\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (*v1.Event, error)\n\tUpdate(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (*v1.Event, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Event, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.EventList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error)\n\tApply(ctx context.Context, event *corev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEvents returns a Events\nfunc newEvents(c *CoreV1Client, namespace string) *events {\n\treturn &events{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *events) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *events) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EventList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.EventList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *events) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Create(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Update(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *events) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *events) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *events) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *events) Apply(ctx context.Context, event *corev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Event{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/event_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tref \"k8s.io/client-go/tools/reference\"\n)\n\n// The EventExpansion interface allows manually adding extra methods to the EventInterface.\ntype EventExpansion interface {\n\t// CreateWithEventNamespace is the same as a Create, except that it sends the request to the event.Namespace.\n\tCreateWithEventNamespace(event *v1.Event) (*v1.Event, error)\n\t// UpdateWithEventNamespace is the same as a Update, except that it sends the request to the event.Namespace.\n\tUpdateWithEventNamespace(event *v1.Event) (*v1.Event, error)\n\t// PatchWithEventNamespace is the same as a Patch, except that it sends the request to the event.Namespace.\n\tPatchWithEventNamespace(event *v1.Event, data []byte) (*v1.Event, error)\n\t// Search finds events about the specified object\n\tSearch(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error)\n\t// Returns the appropriate field selector based on the API version being used to communicate with the server.\n\t// The returned field selector can be used with List and Watch to filter desired events.\n\tGetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector\n}\n\n// CreateWithEventNamespace makes a new event. Returns the copy of the event the server returns,\n// or an error. The namespace to create the event within is deduced from the\n// event; it must either match this event client's namespace, or this event\n// client must have been created with the \"\" namespace.\nfunc (e *events) CreateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tif e.ns != \"\" && event.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't create an event with namespace '%v' in namespace '%v'\", event.Namespace, e.ns)\n\t}\n\tresult := &v1.Event{}\n\terr := e.client.Post().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// UpdateWithEventNamespace modifies an existing event. It returns the copy of the event that the server returns,\n// or an error. The namespace and key to update the event within is deduced from the event. The\n// namespace must either match this event client's namespace, or this event client must have been\n// created with the \"\" namespace. Update also requires the ResourceVersion to be set in the event\n// object.\nfunc (e *events) UpdateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tif e.ns != \"\" && event.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't update an event with namespace '%v' in namespace '%v'\", event.Namespace, e.ns)\n\t}\n\tresult := &v1.Event{}\n\terr := e.client.Put().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// PatchWithEventNamespace modifies an existing event. It returns the copy of\n// the event that the server returns, or an error. The namespace and name of the\n// target event is deduced from the incompleteEvent. The namespace must either\n// match this event client's namespace, or this event client must have been\n// created with the \"\" namespace.\nfunc (e *events) PatchWithEventNamespace(incompleteEvent *v1.Event, data []byte) (*v1.Event, error) {\n\tif e.ns != \"\" && incompleteEvent.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't patch an event with namespace '%v' in namespace '%v'\", incompleteEvent.Namespace, e.ns)\n\t}\n\tresult := &v1.Event{}\n\terr := e.client.Patch(types.StrategicMergePatchType).\n\t\tNamespaceIfScoped(incompleteEvent.Namespace, len(incompleteEvent.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(incompleteEvent.Name).\n\t\tBody(data).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Search finds events about the specified object. The namespace of the\n// object must match this event's client namespace unless the event client\n// was made with the \"\" namespace.\nfunc (e *events) Search(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error) {\n\tref, err := ref.GetReference(scheme, objOrRef)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(e.ns) > 0 && ref.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"won't be able to find any events of namespace '%v' in namespace '%v'\", ref.Namespace, e.ns)\n\t}\n\tstringRefKind := string(ref.Kind)\n\tvar refKind *string\n\tif len(stringRefKind) > 0 {\n\t\trefKind = &stringRefKind\n\t}\n\tstringRefUID := string(ref.UID)\n\tvar refUID *string\n\tif len(stringRefUID) > 0 {\n\t\trefUID = &stringRefUID\n\t}\n\tfieldSelector := e.GetFieldSelector(&ref.Name, &ref.Namespace, refKind, refUID)\n\treturn e.List(context.TODO(), metav1.ListOptions{FieldSelector: fieldSelector.String()})\n}\n\n// Returns the appropriate field selector based on the API version being used to communicate with the server.\n// The returned field selector can be used with List and Watch to filter desired events.\nfunc (e *events) GetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector {\n\tfield := fields.Set{}\n\tif involvedObjectName != nil {\n\t\tfield[\"involvedObject.name\"] = *involvedObjectName\n\t}\n\tif involvedObjectNamespace != nil {\n\t\tfield[\"involvedObject.namespace\"] = *involvedObjectNamespace\n\t}\n\tif involvedObjectKind != nil {\n\t\tfield[\"involvedObject.kind\"] = *involvedObjectKind\n\t}\n\tif involvedObjectUID != nil {\n\t\tfield[\"involvedObject.uid\"] = *involvedObjectUID\n\t}\n\treturn field.AsSelector()\n}\n\n// Returns the appropriate field label to use for name of the involved object as per the given API version.\n// DEPRECATED: please use \"involvedObject.name\" inline.\nfunc GetInvolvedObjectNameFieldLabel(version string) string {\n\treturn \"involvedObject.name\"\n}\n\n// TODO: This is a temporary arrangement and will be removed once all clients are moved to use the clientset.\ntype EventSinkImpl struct {\n\tInterface EventInterface\n}\n\nfunc (e *EventSinkImpl) Create(event *v1.Event) (*v1.Event, error) {\n\treturn e.Interface.CreateWithEventNamespace(event)\n}\n\nfunc (e *EventSinkImpl) Update(event *v1.Event) (*v1.Event, error) {\n\treturn e.Interface.UpdateWithEventNamespace(event)\n}\n\nfunc (e *EventSinkImpl) Patch(event *v1.Event, data []byte) (*v1.Event, error) {\n\treturn e.Interface.PatchWithEventNamespace(event, data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeComponentStatuses implements ComponentStatusInterface\ntype FakeComponentStatuses struct {\n\tFake *FakeCoreV1\n}\n\nvar componentstatusesResource = v1.SchemeGroupVersion.WithResource(\"componentstatuses\")\n\nvar componentstatusesKind = v1.SchemeGroupVersion.WithKind(\"ComponentStatus\")\n\n// Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any.\nfunc (c *FakeComponentStatuses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ComponentStatus, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(componentstatusesResource, name), &v1.ComponentStatus{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ComponentStatus), err\n}\n\n// List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors.\nfunc (c *FakeComponentStatuses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ComponentStatusList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(componentstatusesResource, componentstatusesKind, opts), &v1.ComponentStatusList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ComponentStatusList{ListMeta: obj.(*v1.ComponentStatusList).ListMeta}\n\tfor _, item := range obj.(*v1.ComponentStatusList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested componentStatuses.\nfunc (c *FakeComponentStatuses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(componentstatusesResource, opts))\n}\n\n// Create takes the representation of a componentStatus and creates it.  Returns the server's representation of the componentStatus, and an error, if there is any.\nfunc (c *FakeComponentStatuses) Create(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.CreateOptions) (result *v1.ComponentStatus, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(componentstatusesResource, componentStatus), &v1.ComponentStatus{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ComponentStatus), err\n}\n\n// Update takes the representation of a componentStatus and updates it. Returns the server's representation of the componentStatus, and an error, if there is any.\nfunc (c *FakeComponentStatuses) Update(ctx context.Context, componentStatus *v1.ComponentStatus, opts metav1.UpdateOptions) (result *v1.ComponentStatus, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(componentstatusesResource, componentStatus), &v1.ComponentStatus{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ComponentStatus), err\n}\n\n// Delete takes name of the componentStatus and deletes it. Returns an error if one occurs.\nfunc (c *FakeComponentStatuses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(componentstatusesResource, name, opts), &v1.ComponentStatus{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeComponentStatuses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(componentstatusesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ComponentStatusList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched componentStatus.\nfunc (c *FakeComponentStatuses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ComponentStatus, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, name, pt, data, subresources...), &v1.ComponentStatus{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ComponentStatus), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied componentStatus.\nfunc (c *FakeComponentStatuses) Apply(ctx context.Context, componentStatus *corev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ComponentStatus, err error) {\n\tif componentStatus == nil {\n\t\treturn nil, fmt.Errorf(\"componentStatus provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(componentStatus)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := componentStatus.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"componentStatus.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, *name, types.ApplyPatchType, data), &v1.ComponentStatus{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ComponentStatus), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeConfigMaps implements ConfigMapInterface\ntype FakeConfigMaps struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar configmapsResource = v1.SchemeGroupVersion.WithResource(\"configmaps\")\n\nvar configmapsKind = v1.SchemeGroupVersion.WithKind(\"ConfigMap\")\n\n// Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any.\nfunc (c *FakeConfigMaps) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ConfigMap, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(configmapsResource, c.ns, name), &v1.ConfigMap{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ConfigMap), err\n}\n\n// List takes label and field selectors, and returns the list of ConfigMaps that match those selectors.\nfunc (c *FakeConfigMaps) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ConfigMapList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &v1.ConfigMapList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ConfigMapList{ListMeta: obj.(*v1.ConfigMapList).ListMeta}\n\tfor _, item := range obj.(*v1.ConfigMapList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested configMaps.\nfunc (c *FakeConfigMaps) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(configmapsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a configMap and creates it.  Returns the server's representation of the configMap, and an error, if there is any.\nfunc (c *FakeConfigMaps) Create(ctx context.Context, configMap *v1.ConfigMap, opts metav1.CreateOptions) (result *v1.ConfigMap, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &v1.ConfigMap{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ConfigMap), err\n}\n\n// Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any.\nfunc (c *FakeConfigMaps) Update(ctx context.Context, configMap *v1.ConfigMap, opts metav1.UpdateOptions) (result *v1.ConfigMap, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &v1.ConfigMap{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ConfigMap), err\n}\n\n// Delete takes name of the configMap and deletes it. Returns an error if one occurs.\nfunc (c *FakeConfigMaps) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(configmapsResource, c.ns, name, opts), &v1.ConfigMap{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeConfigMaps) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(configmapsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ConfigMapList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched configMap.\nfunc (c *FakeConfigMaps) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ConfigMap, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, pt, data, subresources...), &v1.ConfigMap{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ConfigMap), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied configMap.\nfunc (c *FakeConfigMaps) Apply(ctx context.Context, configMap *corev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ConfigMap, err error) {\n\tif configMap == nil {\n\t\treturn nil, fmt.Errorf(\"configMap provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(configMap)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := configMap.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"configMap.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, *name, types.ApplyPatchType, data), &v1.ConfigMap{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ConfigMap), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoreV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoreV1) ComponentStatuses() v1.ComponentStatusInterface {\n\treturn &FakeComponentStatuses{c}\n}\n\nfunc (c *FakeCoreV1) ConfigMaps(namespace string) v1.ConfigMapInterface {\n\treturn &FakeConfigMaps{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Endpoints(namespace string) v1.EndpointsInterface {\n\treturn &FakeEndpoints{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Events(namespace string) v1.EventInterface {\n\treturn &FakeEvents{c, namespace}\n}\n\nfunc (c *FakeCoreV1) LimitRanges(namespace string) v1.LimitRangeInterface {\n\treturn &FakeLimitRanges{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Namespaces() v1.NamespaceInterface {\n\treturn &FakeNamespaces{c}\n}\n\nfunc (c *FakeCoreV1) Nodes() v1.NodeInterface {\n\treturn &FakeNodes{c}\n}\n\nfunc (c *FakeCoreV1) PersistentVolumes() v1.PersistentVolumeInterface {\n\treturn &FakePersistentVolumes{c}\n}\n\nfunc (c *FakeCoreV1) PersistentVolumeClaims(namespace string) v1.PersistentVolumeClaimInterface {\n\treturn &FakePersistentVolumeClaims{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Pods(namespace string) v1.PodInterface {\n\treturn &FakePods{c, namespace}\n}\n\nfunc (c *FakeCoreV1) PodTemplates(namespace string) v1.PodTemplateInterface {\n\treturn &FakePodTemplates{c, namespace}\n}\n\nfunc (c *FakeCoreV1) ReplicationControllers(namespace string) v1.ReplicationControllerInterface {\n\treturn &FakeReplicationControllers{c, namespace}\n}\n\nfunc (c *FakeCoreV1) ResourceQuotas(namespace string) v1.ResourceQuotaInterface {\n\treturn &FakeResourceQuotas{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Secrets(namespace string) v1.SecretInterface {\n\treturn &FakeSecrets{c, namespace}\n}\n\nfunc (c *FakeCoreV1) Services(namespace string) v1.ServiceInterface {\n\treturn &FakeServices{c, namespace}\n}\n\nfunc (c *FakeCoreV1) ServiceAccounts(namespace string) v1.ServiceAccountInterface {\n\treturn &FakeServiceAccounts{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoreV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEndpoints implements EndpointsInterface\ntype FakeEndpoints struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar endpointsResource = v1.SchemeGroupVersion.WithResource(\"endpoints\")\n\nvar endpointsKind = v1.SchemeGroupVersion.WithKind(\"Endpoints\")\n\n// Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any.\nfunc (c *FakeEndpoints) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Endpoints, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(endpointsResource, c.ns, name), &v1.Endpoints{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Endpoints), err\n}\n\n// List takes label and field selectors, and returns the list of Endpoints that match those selectors.\nfunc (c *FakeEndpoints) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EndpointsList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(endpointsResource, endpointsKind, c.ns, opts), &v1.EndpointsList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.EndpointsList{ListMeta: obj.(*v1.EndpointsList).ListMeta}\n\tfor _, item := range obj.(*v1.EndpointsList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested endpoints.\nfunc (c *FakeEndpoints) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(endpointsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a endpoints and creates it.  Returns the server's representation of the endpoints, and an error, if there is any.\nfunc (c *FakeEndpoints) Create(ctx context.Context, endpoints *v1.Endpoints, opts metav1.CreateOptions) (result *v1.Endpoints, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(endpointsResource, c.ns, endpoints), &v1.Endpoints{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Endpoints), err\n}\n\n// Update takes the representation of a endpoints and updates it. Returns the server's representation of the endpoints, and an error, if there is any.\nfunc (c *FakeEndpoints) Update(ctx context.Context, endpoints *v1.Endpoints, opts metav1.UpdateOptions) (result *v1.Endpoints, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(endpointsResource, c.ns, endpoints), &v1.Endpoints{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Endpoints), err\n}\n\n// Delete takes name of the endpoints and deletes it. Returns an error if one occurs.\nfunc (c *FakeEndpoints) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(endpointsResource, c.ns, name, opts), &v1.Endpoints{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEndpoints) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(endpointsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.EndpointsList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched endpoints.\nfunc (c *FakeEndpoints) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Endpoints, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, name, pt, data, subresources...), &v1.Endpoints{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Endpoints), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpoints.\nfunc (c *FakeEndpoints) Apply(ctx context.Context, endpoints *corev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Endpoints, err error) {\n\tif endpoints == nil {\n\t\treturn nil, fmt.Errorf(\"endpoints provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(endpoints)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpoints.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpoints.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Endpoints{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Endpoints), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEvents implements EventInterface\ntype FakeEvents struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar eventsResource = v1.SchemeGroupVersion.WithResource(\"events\")\n\nvar eventsKind = v1.SchemeGroupVersion.WithKind(\"Event\")\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *FakeEvents) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(eventsResource, c.ns, name), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *FakeEvents) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EventList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &v1.EventList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.EventList{ListMeta: obj.(*v1.EventList).ListMeta}\n\tfor _, item := range obj.(*v1.EventList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *FakeEvents) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(eventsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Create(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(eventsResource, c.ns, event), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Update(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(eventsResource, c.ns, event), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *FakeEvents) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(eventsResource, c.ns, name, opts), &v1.Event{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEvents) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.EventList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, pt, data, subresources...), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *FakeEvents) Apply(ctx context.Context, event *corev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeEvents) CreateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tvar action core.CreateActionImpl\n\tif c.ns != \"\" {\n\t\taction = core.NewCreateAction(eventsResource, c.ns, event)\n\t} else {\n\t\taction = core.NewCreateAction(eventsResource, event.GetNamespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// Update replaces an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *FakeEvents) UpdateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tvar action core.UpdateActionImpl\n\tif c.ns != \"\" {\n\t\taction = core.NewUpdateAction(eventsResource, c.ns, event)\n\t} else {\n\t\taction = core.NewUpdateAction(eventsResource, event.GetNamespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// PatchWithEventNamespace patches an existing event. Returns the copy of the event the server returns, or an error.\n// TODO: Should take a PatchType as an argument probably.\nfunc (c *FakeEvents) PatchWithEventNamespace(event *v1.Event, data []byte) (*v1.Event, error) {\n\t// TODO: Should be configurable to support additional patch strategies.\n\tpt := types.StrategicMergePatchType\n\tvar action core.PatchActionImpl\n\tif c.ns != \"\" {\n\t\taction = core.NewPatchAction(eventsResource, c.ns, event.Name, pt, data)\n\t} else {\n\t\taction = core.NewPatchAction(eventsResource, event.GetNamespace(), event.Name, pt, data)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// Search returns a list of events matching the specified object.\nfunc (c *FakeEvents) Search(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error) {\n\tvar action core.ListActionImpl\n\tif c.ns != \"\" {\n\t\taction = core.NewListAction(eventsResource, eventsKind, c.ns, metav1.ListOptions{})\n\t} else {\n\t\taction = core.NewListAction(eventsResource, eventsKind, v1.NamespaceDefault, metav1.ListOptions{})\n\t}\n\tobj, err := c.Fake.Invokes(action, &v1.EventList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.EventList), err\n}\n\nfunc (c *FakeEvents) GetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector {\n\taction := core.GenericActionImpl{}\n\taction.Verb = \"get-field-selector\"\n\taction.Resource = eventsResource\n\n\tc.Fake.Invokes(action, nil)\n\treturn fields.Everything()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeLimitRanges implements LimitRangeInterface\ntype FakeLimitRanges struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar limitrangesResource = v1.SchemeGroupVersion.WithResource(\"limitranges\")\n\nvar limitrangesKind = v1.SchemeGroupVersion.WithKind(\"LimitRange\")\n\n// Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any.\nfunc (c *FakeLimitRanges) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.LimitRange, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(limitrangesResource, c.ns, name), &v1.LimitRange{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LimitRange), err\n}\n\n// List takes label and field selectors, and returns the list of LimitRanges that match those selectors.\nfunc (c *FakeLimitRanges) List(ctx context.Context, opts metav1.ListOptions) (result *v1.LimitRangeList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(limitrangesResource, limitrangesKind, c.ns, opts), &v1.LimitRangeList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.LimitRangeList{ListMeta: obj.(*v1.LimitRangeList).ListMeta}\n\tfor _, item := range obj.(*v1.LimitRangeList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested limitRanges.\nfunc (c *FakeLimitRanges) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(limitrangesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a limitRange and creates it.  Returns the server's representation of the limitRange, and an error, if there is any.\nfunc (c *FakeLimitRanges) Create(ctx context.Context, limitRange *v1.LimitRange, opts metav1.CreateOptions) (result *v1.LimitRange, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(limitrangesResource, c.ns, limitRange), &v1.LimitRange{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LimitRange), err\n}\n\n// Update takes the representation of a limitRange and updates it. Returns the server's representation of the limitRange, and an error, if there is any.\nfunc (c *FakeLimitRanges) Update(ctx context.Context, limitRange *v1.LimitRange, opts metav1.UpdateOptions) (result *v1.LimitRange, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(limitrangesResource, c.ns, limitRange), &v1.LimitRange{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LimitRange), err\n}\n\n// Delete takes name of the limitRange and deletes it. Returns an error if one occurs.\nfunc (c *FakeLimitRanges) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(limitrangesResource, c.ns, name, opts), &v1.LimitRange{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeLimitRanges) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(limitrangesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.LimitRangeList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched limitRange.\nfunc (c *FakeLimitRanges) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.LimitRange, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, name, pt, data, subresources...), &v1.LimitRange{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LimitRange), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied limitRange.\nfunc (c *FakeLimitRanges) Apply(ctx context.Context, limitRange *corev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.LimitRange, err error) {\n\tif limitRange == nil {\n\t\treturn nil, fmt.Errorf(\"limitRange provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(limitRange)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := limitRange.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"limitRange.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, *name, types.ApplyPatchType, data), &v1.LimitRange{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.LimitRange), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeNamespaces implements NamespaceInterface\ntype FakeNamespaces struct {\n\tFake *FakeCoreV1\n}\n\nvar namespacesResource = v1.SchemeGroupVersion.WithResource(\"namespaces\")\n\nvar namespacesKind = v1.SchemeGroupVersion.WithKind(\"Namespace\")\n\n// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any.\nfunc (c *FakeNamespaces) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Namespace, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(namespacesResource, name), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// List takes label and field selectors, and returns the list of Namespaces that match those selectors.\nfunc (c *FakeNamespaces) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NamespaceList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &v1.NamespaceList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.NamespaceList{ListMeta: obj.(*v1.NamespaceList).ListMeta}\n\tfor _, item := range obj.(*v1.NamespaceList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested namespaces.\nfunc (c *FakeNamespaces) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(namespacesResource, opts))\n}\n\n// Create takes the representation of a namespace and creates it.  Returns the server's representation of the namespace, and an error, if there is any.\nfunc (c *FakeNamespaces) Create(ctx context.Context, namespace *v1.Namespace, opts metav1.CreateOptions) (result *v1.Namespace, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(namespacesResource, namespace), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any.\nfunc (c *FakeNamespaces) Update(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (result *v1.Namespace, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(namespacesResource, namespace), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeNamespaces) UpdateStatus(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(namespacesResource, \"status\", namespace), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// Delete takes name of the namespace and deletes it. Returns an error if one occurs.\nfunc (c *FakeNamespaces) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(namespacesResource, name, opts), &v1.Namespace{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched namespace.\nfunc (c *FakeNamespaces) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Namespace, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, pt, data, subresources...), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied namespace.\nfunc (c *FakeNamespaces) Apply(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) {\n\tif namespace == nil {\n\t\treturn nil, fmt.Errorf(\"namespace provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(namespace)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := namespace.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"namespace.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(namespacesResource, *name, types.ApplyPatchType, data), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeNamespaces) ApplyStatus(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) {\n\tif namespace == nil {\n\t\treturn nil, fmt.Errorf(\"namespace provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(namespace)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := namespace.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"namespace.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(namespacesResource, *name, types.ApplyPatchType, data, \"status\"), &v1.Namespace{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Namespace), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeNamespaces) Finalize(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error) {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = namespacesResource\n\taction.Subresource = \"finalize\"\n\taction.Object = namespace\n\n\tobj, err := c.Fake.Invokes(action, namespace)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Namespace), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeNodes implements NodeInterface\ntype FakeNodes struct {\n\tFake *FakeCoreV1\n}\n\nvar nodesResource = v1.SchemeGroupVersion.WithResource(\"nodes\")\n\nvar nodesKind = v1.SchemeGroupVersion.WithKind(\"Node\")\n\n// Get takes name of the node, and returns the corresponding node object, and an error if there is any.\nfunc (c *FakeNodes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Node, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(nodesResource, name), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// List takes label and field selectors, and returns the list of Nodes that match those selectors.\nfunc (c *FakeNodes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NodeList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(nodesResource, nodesKind, opts), &v1.NodeList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.NodeList{ListMeta: obj.(*v1.NodeList).ListMeta}\n\tfor _, item := range obj.(*v1.NodeList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested nodes.\nfunc (c *FakeNodes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(nodesResource, opts))\n}\n\n// Create takes the representation of a node and creates it.  Returns the server's representation of the node, and an error, if there is any.\nfunc (c *FakeNodes) Create(ctx context.Context, node *v1.Node, opts metav1.CreateOptions) (result *v1.Node, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(nodesResource, node), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// Update takes the representation of a node and updates it. Returns the server's representation of the node, and an error, if there is any.\nfunc (c *FakeNodes) Update(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (result *v1.Node, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(nodesResource, node), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeNodes) UpdateStatus(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (*v1.Node, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(nodesResource, \"status\", node), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// Delete takes name of the node and deletes it. Returns an error if one occurs.\nfunc (c *FakeNodes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(nodesResource, name, opts), &v1.Node{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeNodes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(nodesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.NodeList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched node.\nfunc (c *FakeNodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Node, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(nodesResource, name, pt, data, subresources...), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied node.\nfunc (c *FakeNodes) Apply(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) {\n\tif node == nil {\n\t\treturn nil, fmt.Errorf(\"node provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := node.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"node.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(nodesResource, *name, types.ApplyPatchType, data), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeNodes) ApplyStatus(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) {\n\tif node == nil {\n\t\treturn nil, fmt.Errorf(\"node provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := node.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"node.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(nodesResource, *name, types.ApplyPatchType, data, \"status\"), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Node), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\n// TODO: Should take a PatchType as an argument probably.\nfunc (c *FakeNodes) PatchStatus(_ context.Context, nodeName string, data []byte) (*v1.Node, error) {\n\t// TODO: Should be configurable to support additional patch strategies.\n\tpt := types.StrategicMergePatchType\n\tobj, err := c.Fake.Invokes(\n\t\tcore.NewRootPatchSubresourceAction(nodesResource, nodeName, pt, data, \"status\"), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Node), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePersistentVolumes implements PersistentVolumeInterface\ntype FakePersistentVolumes struct {\n\tFake *FakeCoreV1\n}\n\nvar persistentvolumesResource = v1.SchemeGroupVersion.WithResource(\"persistentvolumes\")\n\nvar persistentvolumesKind = v1.SchemeGroupVersion.WithKind(\"PersistentVolume\")\n\n// Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any.\nfunc (c *FakePersistentVolumes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PersistentVolume, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(persistentvolumesResource, name), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors.\nfunc (c *FakePersistentVolumes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PersistentVolumeList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(persistentvolumesResource, persistentvolumesKind, opts), &v1.PersistentVolumeList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PersistentVolumeList{ListMeta: obj.(*v1.PersistentVolumeList).ListMeta}\n\tfor _, item := range obj.(*v1.PersistentVolumeList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested persistentVolumes.\nfunc (c *FakePersistentVolumes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(persistentvolumesResource, opts))\n}\n\n// Create takes the representation of a persistentVolume and creates it.  Returns the server's representation of the persistentVolume, and an error, if there is any.\nfunc (c *FakePersistentVolumes) Create(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.CreateOptions) (result *v1.PersistentVolume, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(persistentvolumesResource, persistentVolume), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// Update takes the representation of a persistentVolume and updates it. Returns the server's representation of the persistentVolume, and an error, if there is any.\nfunc (c *FakePersistentVolumes) Update(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (result *v1.PersistentVolume, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(persistentvolumesResource, persistentVolume), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePersistentVolumes) UpdateStatus(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (*v1.PersistentVolume, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(persistentvolumesResource, \"status\", persistentVolume), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// Delete takes name of the persistentVolume and deletes it. Returns an error if one occurs.\nfunc (c *FakePersistentVolumes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(persistentvolumesResource, name, opts), &v1.PersistentVolume{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePersistentVolumes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(persistentvolumesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PersistentVolumeList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched persistentVolume.\nfunc (c *FakePersistentVolumes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolume, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, name, pt, data, subresources...), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolume.\nfunc (c *FakePersistentVolumes) Apply(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) {\n\tif persistentVolume == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(persistentVolume)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolume.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, *name, types.ApplyPatchType, data), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePersistentVolumes) ApplyStatus(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) {\n\tif persistentVolume == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(persistentVolume)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolume.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, *name, types.ApplyPatchType, data, \"status\"), &v1.PersistentVolume{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolume), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePersistentVolumeClaims implements PersistentVolumeClaimInterface\ntype FakePersistentVolumeClaims struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar persistentvolumeclaimsResource = v1.SchemeGroupVersion.WithResource(\"persistentvolumeclaims\")\n\nvar persistentvolumeclaimsKind = v1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaim\")\n\n// Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any.\nfunc (c *FakePersistentVolumeClaims) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(persistentvolumeclaimsResource, c.ns, name), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors.\nfunc (c *FakePersistentVolumeClaims) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PersistentVolumeClaimList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(persistentvolumeclaimsResource, persistentvolumeclaimsKind, c.ns, opts), &v1.PersistentVolumeClaimList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PersistentVolumeClaimList{ListMeta: obj.(*v1.PersistentVolumeClaimList).ListMeta}\n\tfor _, item := range obj.(*v1.PersistentVolumeClaimList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested persistentVolumeClaims.\nfunc (c *FakePersistentVolumeClaims) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(persistentvolumeclaimsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a persistentVolumeClaim and creates it.  Returns the server's representation of the persistentVolumeClaim, and an error, if there is any.\nfunc (c *FakePersistentVolumeClaims) Create(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.CreateOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// Update takes the representation of a persistentVolumeClaim and updates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any.\nfunc (c *FakePersistentVolumeClaims) Update(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePersistentVolumeClaims) UpdateStatus(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (*v1.PersistentVolumeClaim, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(persistentvolumeclaimsResource, \"status\", c.ns, persistentVolumeClaim), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// Delete takes name of the persistentVolumeClaim and deletes it. Returns an error if one occurs.\nfunc (c *FakePersistentVolumeClaims) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(persistentvolumeclaimsResource, c.ns, name, opts), &v1.PersistentVolumeClaim{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePersistentVolumeClaims) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(persistentvolumeclaimsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PersistentVolumeClaimList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched persistentVolumeClaim.\nfunc (c *FakePersistentVolumeClaims) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolumeClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, name, pt, data, subresources...), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolumeClaim.\nfunc (c *FakePersistentVolumeClaims) Apply(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tif persistentVolumeClaim == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(persistentVolumeClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolumeClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, *name, types.ApplyPatchType, data), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePersistentVolumeClaims) ApplyStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tif persistentVolumeClaim == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(persistentVolumeClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolumeClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.PersistentVolumeClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PersistentVolumeClaim), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePods implements PodInterface\ntype FakePods struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar podsResource = v1.SchemeGroupVersion.WithResource(\"pods\")\n\nvar podsKind = v1.SchemeGroupVersion.WithKind(\"Pod\")\n\n// Get takes name of the pod, and returns the corresponding pod object, and an error if there is any.\nfunc (c *FakePods) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Pod, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(podsResource, c.ns, name), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// List takes label and field selectors, and returns the list of Pods that match those selectors.\nfunc (c *FakePods) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(podsResource, podsKind, c.ns, opts), &v1.PodList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PodList{ListMeta: obj.(*v1.PodList).ListMeta}\n\tfor _, item := range obj.(*v1.PodList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested pods.\nfunc (c *FakePods) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(podsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a pod and creates it.  Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *FakePods) Create(ctx context.Context, pod *v1.Pod, opts metav1.CreateOptions) (result *v1.Pod, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(podsResource, c.ns, pod), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// Update takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *FakePods) Update(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(podsResource, c.ns, pod), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePods) UpdateStatus(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (*v1.Pod, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(podsResource, \"status\", c.ns, pod), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// Delete takes name of the pod and deletes it. Returns an error if one occurs.\nfunc (c *FakePods) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(podsResource, c.ns, name, opts), &v1.Pod{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePods) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(podsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PodList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched pod.\nfunc (c *FakePods) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Pod, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podsResource, c.ns, name, pt, data, subresources...), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied pod.\nfunc (c *FakePods) Apply(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) {\n\tif pod == nil {\n\t\treturn nil, fmt.Errorf(\"pod provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(pod)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := pod.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"pod.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePods) ApplyStatus(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) {\n\tif pod == nil {\n\t\treturn nil, fmt.Errorf(\"pod provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(pod)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := pod.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"pod.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// UpdateEphemeralContainers takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *FakePods) UpdateEphemeralContainers(ctx context.Context, podName string, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(podsResource, \"ephemeralcontainers\", c.ns, pod), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trestclient \"k8s.io/client-go/rest\"\n\tfakerest \"k8s.io/client-go/rest/fake\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakePods) Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = binding.Namespace\n\taction.Resource = podsResource\n\taction.Subresource = \"binding\"\n\taction.Object = binding\n\n\t_, err := c.Fake.Invokes(action, binding)\n\treturn err\n}\n\nfunc (c *FakePods) GetBinding(name string) (result *v1.Binding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(core.NewGetSubresourceAction(podsResource, c.ns, \"binding\", name), &v1.Binding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Binding), err\n}\n\nfunc (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request {\n\taction := core.GenericActionImpl{}\n\taction.Verb = \"get\"\n\taction.Namespace = c.ns\n\taction.Resource = podsResource\n\taction.Subresource = \"log\"\n\taction.Value = opts\n\n\t_, _ = c.Fake.Invokes(action, &v1.Pod{})\n\tfakeClient := &fakerest.RESTClient{\n\t\tClient: fakerest.CreateHTTPClient(func(request *http.Request) (*http.Response, error) {\n\t\t\tresp := &http.Response{\n\t\t\t\tStatusCode: http.StatusOK,\n\t\t\t\tBody:       io.NopCloser(strings.NewReader(\"fake logs\")),\n\t\t\t}\n\t\t\treturn resp, nil\n\t\t}),\n\t\tNegotiatedSerializer: scheme.Codecs.WithoutConversion(),\n\t\tGroupVersion:         podsKind.GroupVersion(),\n\t\tVersionedAPIPath:     fmt.Sprintf(\"/api/v1/namespaces/%s/pods/%s/log\", c.ns, name),\n\t}\n\treturn fakeClient.Request()\n}\n\nfunc (c *FakePods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.EvictV1beta1(ctx, eviction)\n}\n\nfunc (c *FakePods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.ns\n\taction.Resource = podsResource\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n\nfunc (c *FakePods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.ns\n\taction.Resource = podsResource\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n\nfunc (c *FakePods) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\treturn c.Fake.InvokesProxy(core.NewProxyGetAction(podsResource, c.ns, scheme, name, port, path, params))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePodTemplates implements PodTemplateInterface\ntype FakePodTemplates struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar podtemplatesResource = v1.SchemeGroupVersion.WithResource(\"podtemplates\")\n\nvar podtemplatesKind = v1.SchemeGroupVersion.WithKind(\"PodTemplate\")\n\n// Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any.\nfunc (c *FakePodTemplates) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PodTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(podtemplatesResource, c.ns, name), &v1.PodTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodTemplate), err\n}\n\n// List takes label and field selectors, and returns the list of PodTemplates that match those selectors.\nfunc (c *FakePodTemplates) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodTemplateList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(podtemplatesResource, podtemplatesKind, c.ns, opts), &v1.PodTemplateList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PodTemplateList{ListMeta: obj.(*v1.PodTemplateList).ListMeta}\n\tfor _, item := range obj.(*v1.PodTemplateList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested podTemplates.\nfunc (c *FakePodTemplates) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(podtemplatesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a podTemplate and creates it.  Returns the server's representation of the podTemplate, and an error, if there is any.\nfunc (c *FakePodTemplates) Create(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.CreateOptions) (result *v1.PodTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(podtemplatesResource, c.ns, podTemplate), &v1.PodTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodTemplate), err\n}\n\n// Update takes the representation of a podTemplate and updates it. Returns the server's representation of the podTemplate, and an error, if there is any.\nfunc (c *FakePodTemplates) Update(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.UpdateOptions) (result *v1.PodTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(podtemplatesResource, c.ns, podTemplate), &v1.PodTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodTemplate), err\n}\n\n// Delete takes name of the podTemplate and deletes it. Returns an error if one occurs.\nfunc (c *FakePodTemplates) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(podtemplatesResource, c.ns, name, opts), &v1.PodTemplate{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePodTemplates) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(podtemplatesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PodTemplateList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched podTemplate.\nfunc (c *FakePodTemplates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, name, pt, data, subresources...), &v1.PodTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodTemplate), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podTemplate.\nfunc (c *FakePodTemplates) Apply(ctx context.Context, podTemplate *corev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodTemplate, err error) {\n\tif podTemplate == nil {\n\t\treturn nil, fmt.Errorf(\"podTemplate provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podTemplate)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podTemplate.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podTemplate.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, *name, types.ApplyPatchType, data), &v1.PodTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodTemplate), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeReplicationControllers implements ReplicationControllerInterface\ntype FakeReplicationControllers struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar replicationcontrollersResource = v1.SchemeGroupVersion.WithResource(\"replicationcontrollers\")\n\nvar replicationcontrollersKind = v1.SchemeGroupVersion.WithKind(\"ReplicationController\")\n\n// Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any.\nfunc (c *FakeReplicationControllers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ReplicationController, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(replicationcontrollersResource, c.ns, name), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors.\nfunc (c *FakeReplicationControllers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ReplicationControllerList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(replicationcontrollersResource, replicationcontrollersKind, c.ns, opts), &v1.ReplicationControllerList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ReplicationControllerList{ListMeta: obj.(*v1.ReplicationControllerList).ListMeta}\n\tfor _, item := range obj.(*v1.ReplicationControllerList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested replicationControllers.\nfunc (c *FakeReplicationControllers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(replicationcontrollersResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a replicationController and creates it.  Returns the server's representation of the replicationController, and an error, if there is any.\nfunc (c *FakeReplicationControllers) Create(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.CreateOptions) (result *v1.ReplicationController, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(replicationcontrollersResource, c.ns, replicationController), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// Update takes the representation of a replicationController and updates it. Returns the server's representation of the replicationController, and an error, if there is any.\nfunc (c *FakeReplicationControllers) Update(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (result *v1.ReplicationController, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(replicationcontrollersResource, c.ns, replicationController), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeReplicationControllers) UpdateStatus(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (*v1.ReplicationController, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, \"status\", c.ns, replicationController), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// Delete takes name of the replicationController and deletes it. Returns an error if one occurs.\nfunc (c *FakeReplicationControllers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(replicationcontrollersResource, c.ns, name, opts), &v1.ReplicationController{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeReplicationControllers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(replicationcontrollersResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ReplicationControllerList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched replicationController.\nfunc (c *FakeReplicationControllers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicationController, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, name, pt, data, subresources...), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicationController.\nfunc (c *FakeReplicationControllers) Apply(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) {\n\tif replicationController == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicationController)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicationController.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, *name, types.ApplyPatchType, data), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeReplicationControllers) ApplyStatus(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) {\n\tif replicationController == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicationController)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicationController.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.ReplicationController{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ReplicationController), err\n}\n\n// GetScale takes name of the replicationController, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeReplicationControllers) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(replicationcontrollersResource, c.ns, \"scale\", replicationControllerName), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeReplicationControllers) UpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, \"scale\", c.ns, scale), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeResourceQuotas implements ResourceQuotaInterface\ntype FakeResourceQuotas struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar resourcequotasResource = v1.SchemeGroupVersion.WithResource(\"resourcequotas\")\n\nvar resourcequotasKind = v1.SchemeGroupVersion.WithKind(\"ResourceQuota\")\n\n// Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any.\nfunc (c *FakeResourceQuotas) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ResourceQuota, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors.\nfunc (c *FakeResourceQuotas) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ResourceQuotaList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &v1.ResourceQuotaList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ResourceQuotaList{ListMeta: obj.(*v1.ResourceQuotaList).ListMeta}\n\tfor _, item := range obj.(*v1.ResourceQuotaList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested resourceQuotas.\nfunc (c *FakeResourceQuotas) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(resourcequotasResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a resourceQuota and creates it.  Returns the server's representation of the resourceQuota, and an error, if there is any.\nfunc (c *FakeResourceQuotas) Create(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.CreateOptions) (result *v1.ResourceQuota, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any.\nfunc (c *FakeResourceQuotas) Update(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (result *v1.ResourceQuota, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeResourceQuotas) UpdateStatus(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (*v1.ResourceQuota, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(resourcequotasResource, \"status\", c.ns, resourceQuota), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs.\nfunc (c *FakeResourceQuotas) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(resourcequotasResource, c.ns, name, opts), &v1.ResourceQuota{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeResourceQuotas) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(resourcequotasResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ResourceQuotaList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched resourceQuota.\nfunc (c *FakeResourceQuotas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ResourceQuota, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, pt, data, subresources...), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceQuota.\nfunc (c *FakeResourceQuotas) Apply(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) {\n\tif resourceQuota == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceQuota)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceQuota.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, *name, types.ApplyPatchType, data), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeResourceQuotas) ApplyStatus(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) {\n\tif resourceQuota == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceQuota)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceQuota.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.ResourceQuota{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ResourceQuota), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeSecrets implements SecretInterface\ntype FakeSecrets struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar secretsResource = v1.SchemeGroupVersion.WithResource(\"secrets\")\n\nvar secretsKind = v1.SchemeGroupVersion.WithKind(\"Secret\")\n\n// Get takes name of the secret, and returns the corresponding secret object, and an error if there is any.\nfunc (c *FakeSecrets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Secret, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(secretsResource, c.ns, name), &v1.Secret{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Secret), err\n}\n\n// List takes label and field selectors, and returns the list of Secrets that match those selectors.\nfunc (c *FakeSecrets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.SecretList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &v1.SecretList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.SecretList{ListMeta: obj.(*v1.SecretList).ListMeta}\n\tfor _, item := range obj.(*v1.SecretList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested secrets.\nfunc (c *FakeSecrets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(secretsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a secret and creates it.  Returns the server's representation of the secret, and an error, if there is any.\nfunc (c *FakeSecrets) Create(ctx context.Context, secret *v1.Secret, opts metav1.CreateOptions) (result *v1.Secret, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(secretsResource, c.ns, secret), &v1.Secret{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Secret), err\n}\n\n// Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any.\nfunc (c *FakeSecrets) Update(ctx context.Context, secret *v1.Secret, opts metav1.UpdateOptions) (result *v1.Secret, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &v1.Secret{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Secret), err\n}\n\n// Delete takes name of the secret and deletes it. Returns an error if one occurs.\nfunc (c *FakeSecrets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(secretsResource, c.ns, name, opts), &v1.Secret{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeSecrets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(secretsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.SecretList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched secret.\nfunc (c *FakeSecrets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Secret, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, pt, data, subresources...), &v1.Secret{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Secret), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied secret.\nfunc (c *FakeSecrets) Apply(ctx context.Context, secret *corev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Secret, err error) {\n\tif secret == nil {\n\t\treturn nil, fmt.Errorf(\"secret provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(secret)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := secret.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"secret.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Secret{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Secret), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeServices implements ServiceInterface\ntype FakeServices struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar servicesResource = v1.SchemeGroupVersion.WithResource(\"services\")\n\nvar servicesKind = v1.SchemeGroupVersion.WithKind(\"Service\")\n\n// Get takes name of the service, and returns the corresponding service object, and an error if there is any.\nfunc (c *FakeServices) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Service, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(servicesResource, c.ns, name), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// List takes label and field selectors, and returns the list of Services that match those selectors.\nfunc (c *FakeServices) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ServiceList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &v1.ServiceList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ServiceList{ListMeta: obj.(*v1.ServiceList).ListMeta}\n\tfor _, item := range obj.(*v1.ServiceList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested services.\nfunc (c *FakeServices) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(servicesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a service and creates it.  Returns the server's representation of the service, and an error, if there is any.\nfunc (c *FakeServices) Create(ctx context.Context, service *v1.Service, opts metav1.CreateOptions) (result *v1.Service, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(servicesResource, c.ns, service), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any.\nfunc (c *FakeServices) Update(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (result *v1.Service, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(servicesResource, c.ns, service), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeServices) UpdateStatus(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (*v1.Service, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(servicesResource, \"status\", c.ns, service), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// Delete takes name of the service and deletes it. Returns an error if one occurs.\nfunc (c *FakeServices) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(servicesResource, c.ns, name, opts), &v1.Service{})\n\n\treturn err\n}\n\n// Patch applies the patch and returns the patched service.\nfunc (c *FakeServices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Service, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, pt, data, subresources...), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied service.\nfunc (c *FakeServices) Apply(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) {\n\tif service == nil {\n\t\treturn nil, fmt.Errorf(\"service provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(service)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := service.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"service.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, *name, types.ApplyPatchType, data), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeServices) ApplyStatus(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) {\n\tif service == nil {\n\t\treturn nil, fmt.Errorf(\"service provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(service)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := service.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"service.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.Service{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Service), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\trestclient \"k8s.io/client-go/rest\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeServices) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\treturn c.Fake.InvokesProxy(core.NewProxyGetAction(servicesResource, c.ns, scheme, name, port, path, params))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeServiceAccounts implements ServiceAccountInterface\ntype FakeServiceAccounts struct {\n\tFake *FakeCoreV1\n\tns   string\n}\n\nvar serviceaccountsResource = v1.SchemeGroupVersion.WithResource(\"serviceaccounts\")\n\nvar serviceaccountsKind = v1.SchemeGroupVersion.WithKind(\"ServiceAccount\")\n\n// Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any.\nfunc (c *FakeServiceAccounts) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ServiceAccount, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(serviceaccountsResource, c.ns, name), &v1.ServiceAccount{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ServiceAccount), err\n}\n\n// List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors.\nfunc (c *FakeServiceAccounts) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ServiceAccountList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(serviceaccountsResource, serviceaccountsKind, c.ns, opts), &v1.ServiceAccountList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ServiceAccountList{ListMeta: obj.(*v1.ServiceAccountList).ListMeta}\n\tfor _, item := range obj.(*v1.ServiceAccountList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested serviceAccounts.\nfunc (c *FakeServiceAccounts) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(serviceaccountsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a serviceAccount and creates it.  Returns the server's representation of the serviceAccount, and an error, if there is any.\nfunc (c *FakeServiceAccounts) Create(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.CreateOptions) (result *v1.ServiceAccount, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(serviceaccountsResource, c.ns, serviceAccount), &v1.ServiceAccount{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ServiceAccount), err\n}\n\n// Update takes the representation of a serviceAccount and updates it. Returns the server's representation of the serviceAccount, and an error, if there is any.\nfunc (c *FakeServiceAccounts) Update(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.UpdateOptions) (result *v1.ServiceAccount, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(serviceaccountsResource, c.ns, serviceAccount), &v1.ServiceAccount{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ServiceAccount), err\n}\n\n// Delete takes name of the serviceAccount and deletes it. Returns an error if one occurs.\nfunc (c *FakeServiceAccounts) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(serviceaccountsResource, c.ns, name, opts), &v1.ServiceAccount{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeServiceAccounts) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(serviceaccountsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ServiceAccountList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched serviceAccount.\nfunc (c *FakeServiceAccounts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ServiceAccount, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, name, pt, data, subresources...), &v1.ServiceAccount{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ServiceAccount), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied serviceAccount.\nfunc (c *FakeServiceAccounts) Apply(ctx context.Context, serviceAccount *corev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ServiceAccount, err error) {\n\tif serviceAccount == nil {\n\t\treturn nil, fmt.Errorf(\"serviceAccount provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(serviceAccount)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := serviceAccount.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"serviceAccount.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, *name, types.ApplyPatchType, data), &v1.ServiceAccount{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ServiceAccount), err\n}\n\n// CreateToken takes the representation of a tokenRequest and creates it.  Returns the server's representation of the tokenRequest, and an error, if there is any.\nfunc (c *FakeServiceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (result *authenticationv1.TokenRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateSubresourceAction(serviceaccountsResource, serviceAccountName, \"token\", c.ns, tokenRequest), &authenticationv1.TokenRequest{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*authenticationv1.TokenRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ComponentStatusExpansion interface{}\n\ntype ConfigMapExpansion interface{}\n\ntype EndpointsExpansion interface{}\n\ntype LimitRangeExpansion interface{}\n\ntype PersistentVolumeExpansion interface{}\n\ntype PersistentVolumeClaimExpansion interface{}\n\ntype PodTemplateExpansion interface{}\n\ntype ReplicationControllerExpansion interface{}\n\ntype ResourceQuotaExpansion interface{}\n\ntype SecretExpansion interface{}\n\ntype ServiceAccountExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// LimitRangesGetter has a method to return a LimitRangeInterface.\n// A group's client should implement this interface.\ntype LimitRangesGetter interface {\n\tLimitRanges(namespace string) LimitRangeInterface\n}\n\n// LimitRangeInterface has methods to work with LimitRange resources.\ntype LimitRangeInterface interface {\n\tCreate(ctx context.Context, limitRange *v1.LimitRange, opts metav1.CreateOptions) (*v1.LimitRange, error)\n\tUpdate(ctx context.Context, limitRange *v1.LimitRange, opts metav1.UpdateOptions) (*v1.LimitRange, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.LimitRange, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.LimitRangeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.LimitRange, err error)\n\tApply(ctx context.Context, limitRange *corev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.LimitRange, err error)\n\tLimitRangeExpansion\n}\n\n// limitRanges implements LimitRangeInterface\ntype limitRanges struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newLimitRanges returns a LimitRanges\nfunc newLimitRanges(c *CoreV1Client, namespace string) *limitRanges {\n\treturn &limitRanges{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any.\nfunc (c *limitRanges) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.LimitRange, err error) {\n\tresult = &v1.LimitRange{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of LimitRanges that match those selectors.\nfunc (c *limitRanges) List(ctx context.Context, opts metav1.ListOptions) (result *v1.LimitRangeList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.LimitRangeList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested limitRanges.\nfunc (c *limitRanges) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a limitRange and creates it.  Returns the server's representation of the limitRange, and an error, if there is any.\nfunc (c *limitRanges) Create(ctx context.Context, limitRange *v1.LimitRange, opts metav1.CreateOptions) (result *v1.LimitRange, err error) {\n\tresult = &v1.LimitRange{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(limitRange).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a limitRange and updates it. Returns the server's representation of the limitRange, and an error, if there is any.\nfunc (c *limitRanges) Update(ctx context.Context, limitRange *v1.LimitRange, opts metav1.UpdateOptions) (result *v1.LimitRange, err error) {\n\tresult = &v1.LimitRange{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tName(limitRange.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(limitRange).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the limitRange and deletes it. Returns an error if one occurs.\nfunc (c *limitRanges) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *limitRanges) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched limitRange.\nfunc (c *limitRanges) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.LimitRange, err error) {\n\tresult = &v1.LimitRange{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied limitRange.\nfunc (c *limitRanges) Apply(ctx context.Context, limitRange *corev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.LimitRange, err error) {\n\tif limitRange == nil {\n\t\treturn nil, fmt.Errorf(\"limitRange provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(limitRange)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := limitRange.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"limitRange.Name must be provided to Apply\")\n\t}\n\tresult = &v1.LimitRange{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"limitranges\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// NamespacesGetter has a method to return a NamespaceInterface.\n// A group's client should implement this interface.\ntype NamespacesGetter interface {\n\tNamespaces() NamespaceInterface\n}\n\n// NamespaceInterface has methods to work with Namespace resources.\ntype NamespaceInterface interface {\n\tCreate(ctx context.Context, namespace *v1.Namespace, opts metav1.CreateOptions) (*v1.Namespace, error)\n\tUpdate(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error)\n\tUpdateStatus(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Namespace, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.NamespaceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Namespace, err error)\n\tApply(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error)\n\tApplyStatus(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error)\n\tNamespaceExpansion\n}\n\n// namespaces implements NamespaceInterface\ntype namespaces struct {\n\tclient rest.Interface\n}\n\n// newNamespaces returns a Namespaces\nfunc newNamespaces(c *CoreV1Client) *namespaces {\n\treturn &namespaces{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any.\nfunc (c *namespaces) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Get().\n\t\tResource(\"namespaces\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Namespaces that match those selectors.\nfunc (c *namespaces) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NamespaceList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.NamespaceList{}\n\terr = c.client.Get().\n\t\tResource(\"namespaces\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested namespaces.\nfunc (c *namespaces) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"namespaces\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a namespace and creates it.  Returns the server's representation of the namespace, and an error, if there is any.\nfunc (c *namespaces) Create(ctx context.Context, namespace *v1.Namespace, opts metav1.CreateOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Post().\n\t\tResource(\"namespaces\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(namespace).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any.\nfunc (c *namespaces) Update(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Put().\n\t\tResource(\"namespaces\").\n\t\tName(namespace.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(namespace).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *namespaces) UpdateStatus(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Put().\n\t\tResource(\"namespaces\").\n\t\tName(namespace.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(namespace).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the namespace and deletes it. Returns an error if one occurs.\nfunc (c *namespaces) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"namespaces\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched namespace.\nfunc (c *namespaces) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"namespaces\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied namespace.\nfunc (c *namespaces) Apply(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) {\n\tif namespace == nil {\n\t\treturn nil, fmt.Errorf(\"namespace provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(namespace)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := namespace.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"namespace.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Namespace{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"namespaces\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *namespaces) ApplyStatus(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) {\n\tif namespace == nil {\n\t\treturn nil, fmt.Errorf(\"namespace provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(namespace)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := namespace.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"namespace.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Namespace{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"namespaces\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface.\ntype NamespaceExpansion interface {\n\tFinalize(ctx context.Context, item *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error)\n}\n\n// Finalize takes the representation of a namespace to update.  Returns the server's representation of the namespace, and an error, if it occurs.\nfunc (c *namespaces) Finalize(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.client.Put().Resource(\"namespaces\").Name(namespace.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"finalize\").Body(namespace).Do(ctx).Into(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// NodesGetter has a method to return a NodeInterface.\n// A group's client should implement this interface.\ntype NodesGetter interface {\n\tNodes() NodeInterface\n}\n\n// NodeInterface has methods to work with Node resources.\ntype NodeInterface interface {\n\tCreate(ctx context.Context, node *v1.Node, opts metav1.CreateOptions) (*v1.Node, error)\n\tUpdate(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (*v1.Node, error)\n\tUpdateStatus(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (*v1.Node, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Node, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.NodeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Node, err error)\n\tApply(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error)\n\tApplyStatus(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error)\n\tNodeExpansion\n}\n\n// nodes implements NodeInterface\ntype nodes struct {\n\tclient rest.Interface\n}\n\n// newNodes returns a Nodes\nfunc newNodes(c *CoreV1Client) *nodes {\n\treturn &nodes{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the node, and returns the corresponding node object, and an error if there is any.\nfunc (c *nodes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Node, err error) {\n\tresult = &v1.Node{}\n\terr = c.client.Get().\n\t\tResource(\"nodes\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Nodes that match those selectors.\nfunc (c *nodes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NodeList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.NodeList{}\n\terr = c.client.Get().\n\t\tResource(\"nodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested nodes.\nfunc (c *nodes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"nodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a node and creates it.  Returns the server's representation of the node, and an error, if there is any.\nfunc (c *nodes) Create(ctx context.Context, node *v1.Node, opts metav1.CreateOptions) (result *v1.Node, err error) {\n\tresult = &v1.Node{}\n\terr = c.client.Post().\n\t\tResource(\"nodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(node).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a node and updates it. Returns the server's representation of the node, and an error, if there is any.\nfunc (c *nodes) Update(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (result *v1.Node, err error) {\n\tresult = &v1.Node{}\n\terr = c.client.Put().\n\t\tResource(\"nodes\").\n\t\tName(node.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(node).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *nodes) UpdateStatus(ctx context.Context, node *v1.Node, opts metav1.UpdateOptions) (result *v1.Node, err error) {\n\tresult = &v1.Node{}\n\terr = c.client.Put().\n\t\tResource(\"nodes\").\n\t\tName(node.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(node).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the node and deletes it. Returns an error if one occurs.\nfunc (c *nodes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"nodes\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *nodes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"nodes\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched node.\nfunc (c *nodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Node, err error) {\n\tresult = &v1.Node{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"nodes\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied node.\nfunc (c *nodes) Apply(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) {\n\tif node == nil {\n\t\treturn nil, fmt.Errorf(\"node provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := node.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"node.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Node{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"nodes\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *nodes) ApplyStatus(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) {\n\tif node == nil {\n\t\treturn nil, fmt.Errorf(\"node provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := node.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"node.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Node{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"nodes\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/node_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// The NodeExpansion interface allows manually adding extra methods to the NodeInterface.\ntype NodeExpansion interface {\n\t// PatchStatus modifies the status of an existing node. It returns the copy\n\t// of the node that the server returns, or an error.\n\tPatchStatus(ctx context.Context, nodeName string, data []byte) (*v1.Node, error)\n}\n\n// PatchStatus modifies the status of an existing node. It returns the copy of\n// the node that the server returns, or an error.\nfunc (c *nodes) PatchStatus(ctx context.Context, nodeName string, data []byte) (*v1.Node, error) {\n\tresult := &v1.Node{}\n\terr := c.client.Patch(types.StrategicMergePatchType).\n\t\tResource(\"nodes\").\n\t\tName(nodeName).\n\t\tSubResource(\"status\").\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PersistentVolumesGetter has a method to return a PersistentVolumeInterface.\n// A group's client should implement this interface.\ntype PersistentVolumesGetter interface {\n\tPersistentVolumes() PersistentVolumeInterface\n}\n\n// PersistentVolumeInterface has methods to work with PersistentVolume resources.\ntype PersistentVolumeInterface interface {\n\tCreate(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.CreateOptions) (*v1.PersistentVolume, error)\n\tUpdate(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (*v1.PersistentVolume, error)\n\tUpdateStatus(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (*v1.PersistentVolume, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PersistentVolume, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PersistentVolumeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolume, err error)\n\tApply(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error)\n\tApplyStatus(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error)\n\tPersistentVolumeExpansion\n}\n\n// persistentVolumes implements PersistentVolumeInterface\ntype persistentVolumes struct {\n\tclient rest.Interface\n}\n\n// newPersistentVolumes returns a PersistentVolumes\nfunc newPersistentVolumes(c *CoreV1Client) *persistentVolumes {\n\treturn &persistentVolumes{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any.\nfunc (c *persistentVolumes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PersistentVolume, err error) {\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Get().\n\t\tResource(\"persistentvolumes\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors.\nfunc (c *persistentVolumes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PersistentVolumeList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PersistentVolumeList{}\n\terr = c.client.Get().\n\t\tResource(\"persistentvolumes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested persistentVolumes.\nfunc (c *persistentVolumes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"persistentvolumes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a persistentVolume and creates it.  Returns the server's representation of the persistentVolume, and an error, if there is any.\nfunc (c *persistentVolumes) Create(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.CreateOptions) (result *v1.PersistentVolume, err error) {\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Post().\n\t\tResource(\"persistentvolumes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolume).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a persistentVolume and updates it. Returns the server's representation of the persistentVolume, and an error, if there is any.\nfunc (c *persistentVolumes) Update(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (result *v1.PersistentVolume, err error) {\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Put().\n\t\tResource(\"persistentvolumes\").\n\t\tName(persistentVolume.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolume).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *persistentVolumes) UpdateStatus(ctx context.Context, persistentVolume *v1.PersistentVolume, opts metav1.UpdateOptions) (result *v1.PersistentVolume, err error) {\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Put().\n\t\tResource(\"persistentvolumes\").\n\t\tName(persistentVolume.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolume).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the persistentVolume and deletes it. Returns an error if one occurs.\nfunc (c *persistentVolumes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"persistentvolumes\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *persistentVolumes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"persistentvolumes\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched persistentVolume.\nfunc (c *persistentVolumes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolume, err error) {\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"persistentvolumes\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolume.\nfunc (c *persistentVolumes) Apply(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) {\n\tif persistentVolume == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(persistentVolume)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolume.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume.Name must be provided to Apply\")\n\t}\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"persistentvolumes\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *persistentVolumes) ApplyStatus(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) {\n\tif persistentVolume == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(persistentVolume)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := persistentVolume.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolume.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.PersistentVolume{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"persistentvolumes\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PersistentVolumeClaimsGetter has a method to return a PersistentVolumeClaimInterface.\n// A group's client should implement this interface.\ntype PersistentVolumeClaimsGetter interface {\n\tPersistentVolumeClaims(namespace string) PersistentVolumeClaimInterface\n}\n\n// PersistentVolumeClaimInterface has methods to work with PersistentVolumeClaim resources.\ntype PersistentVolumeClaimInterface interface {\n\tCreate(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.CreateOptions) (*v1.PersistentVolumeClaim, error)\n\tUpdate(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (*v1.PersistentVolumeClaim, error)\n\tUpdateStatus(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (*v1.PersistentVolumeClaim, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PersistentVolumeClaim, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PersistentVolumeClaimList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolumeClaim, err error)\n\tApply(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error)\n\tApplyStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error)\n\tPersistentVolumeClaimExpansion\n}\n\n// persistentVolumeClaims implements PersistentVolumeClaimInterface\ntype persistentVolumeClaims struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPersistentVolumeClaims returns a PersistentVolumeClaims\nfunc newPersistentVolumeClaims(c *CoreV1Client, namespace string) *persistentVolumeClaims {\n\treturn &persistentVolumeClaims{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any.\nfunc (c *persistentVolumeClaims) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors.\nfunc (c *persistentVolumeClaims) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PersistentVolumeClaimList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PersistentVolumeClaimList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested persistentVolumeClaims.\nfunc (c *persistentVolumeClaims) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a persistentVolumeClaim and creates it.  Returns the server's representation of the persistentVolumeClaim, and an error, if there is any.\nfunc (c *persistentVolumeClaims) Create(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.CreateOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolumeClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a persistentVolumeClaim and updates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any.\nfunc (c *persistentVolumeClaims) Update(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(persistentVolumeClaim.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolumeClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *persistentVolumeClaims) UpdateStatus(ctx context.Context, persistentVolumeClaim *v1.PersistentVolumeClaim, opts metav1.UpdateOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(persistentVolumeClaim.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(persistentVolumeClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the persistentVolumeClaim and deletes it. Returns an error if one occurs.\nfunc (c *persistentVolumeClaims) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *persistentVolumeClaims) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched persistentVolumeClaim.\nfunc (c *persistentVolumeClaims) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolumeClaim, err error) {\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolumeClaim.\nfunc (c *persistentVolumeClaims) Apply(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tif persistentVolumeClaim == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(persistentVolumeClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := persistentVolumeClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim.Name must be provided to Apply\")\n\t}\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *persistentVolumeClaims) ApplyStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) {\n\tif persistentVolumeClaim == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(persistentVolumeClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := persistentVolumeClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"persistentVolumeClaim.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.PersistentVolumeClaim{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"persistentvolumeclaims\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodsGetter has a method to return a PodInterface.\n// A group's client should implement this interface.\ntype PodsGetter interface {\n\tPods(namespace string) PodInterface\n}\n\n// PodInterface has methods to work with Pod resources.\ntype PodInterface interface {\n\tCreate(ctx context.Context, pod *v1.Pod, opts metav1.CreateOptions) (*v1.Pod, error)\n\tUpdate(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (*v1.Pod, error)\n\tUpdateStatus(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (*v1.Pod, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Pod, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PodList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Pod, err error)\n\tApply(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error)\n\tApplyStatus(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error)\n\tUpdateEphemeralContainers(ctx context.Context, podName string, pod *v1.Pod, opts metav1.UpdateOptions) (*v1.Pod, error)\n\n\tPodExpansion\n}\n\n// pods implements PodInterface\ntype pods struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPods returns a Pods\nfunc newPods(c *CoreV1Client, namespace string) *pods {\n\treturn &pods{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the pod, and returns the corresponding pod object, and an error if there is any.\nfunc (c *pods) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Pods that match those selectors.\nfunc (c *pods) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PodList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested pods.\nfunc (c *pods) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a pod and creates it.  Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *pods) Create(ctx context.Context, pod *v1.Pod, opts metav1.CreateOptions) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *pods) Update(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(pod.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *pods) UpdateStatus(ctx context.Context, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(pod.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the pod and deletes it. Returns an error if one occurs.\nfunc (c *pods) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *pods) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched pod.\nfunc (c *pods) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied pod.\nfunc (c *pods) Apply(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) {\n\tif pod == nil {\n\t\treturn nil, fmt.Errorf(\"pod provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(pod)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := pod.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"pod.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Pod{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *pods) ApplyStatus(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) {\n\tif pod == nil {\n\t\treturn nil, fmt.Errorf(\"pod provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(pod)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := pod.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"pod.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Pod{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateEphemeralContainers takes the top resource name and the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *pods) UpdateEphemeralContainers(ctx context.Context, podName string, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\tresult = &v1.Pod{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tName(podName).\n\t\tSubResource(\"ephemeralcontainers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// The PodExpansion interface allows manually adding extra methods to the PodInterface.\ntype PodExpansion interface {\n\tBind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error\n\t// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n\t// Equivalent to calling EvictV1beta1.\n\t// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().\n\tEvict(ctx context.Context, eviction *policyv1beta1.Eviction) error\n\t// EvictV1 submits a policy/v1 Eviction request to the pod's eviction subresource.\n\t// Supported in 1.22+.\n\tEvictV1(ctx context.Context, eviction *policyv1.Eviction) error\n\t// EvictV1beta1 submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n\t// Supported in 1.22+.\n\tEvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error\n\tGetLogs(name string, opts *v1.PodLogOptions) *restclient.Request\n\tProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper\n}\n\n// Bind applies the provided binding to the named pod in the current namespace (binding.Namespace is ignored).\nfunc (c *pods) Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error {\n\treturn c.client.Post().Namespace(c.ns).Resource(\"pods\").Name(binding.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"binding\").Body(binding).Do(ctx).Error()\n}\n\n// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n// Equivalent to calling EvictV1beta1.\n// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().\nfunc (c *pods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.client.Post().Namespace(c.ns).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\nfunc (c *pods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.client.Post().Namespace(c.ns).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\nfunc (c *pods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {\n\treturn c.client.Post().Namespace(c.ns).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\n// Get constructs a request for getting the logs for a pod\nfunc (c *pods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request {\n\treturn c.client.Get().Namespace(c.ns).Name(name).Resource(\"pods\").SubResource(\"log\").VersionedParams(opts, scheme.ParameterCodec)\n}\n\n// ProxyGet returns a response of the pod by calling it through the proxy.\nfunc (c *pods) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\trequest := c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"pods\").\n\t\tSubResource(\"proxy\").\n\t\tName(net.JoinSchemeNamePort(scheme, name, port)).\n\t\tSuffix(path)\n\tfor k, v := range params {\n\t\trequest = request.Param(k, v)\n\t}\n\treturn request\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodTemplatesGetter has a method to return a PodTemplateInterface.\n// A group's client should implement this interface.\ntype PodTemplatesGetter interface {\n\tPodTemplates(namespace string) PodTemplateInterface\n}\n\n// PodTemplateInterface has methods to work with PodTemplate resources.\ntype PodTemplateInterface interface {\n\tCreate(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.CreateOptions) (*v1.PodTemplate, error)\n\tUpdate(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.UpdateOptions) (*v1.PodTemplate, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PodTemplate, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PodTemplateList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodTemplate, err error)\n\tApply(ctx context.Context, podTemplate *corev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodTemplate, err error)\n\tPodTemplateExpansion\n}\n\n// podTemplates implements PodTemplateInterface\ntype podTemplates struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPodTemplates returns a PodTemplates\nfunc newPodTemplates(c *CoreV1Client, namespace string) *podTemplates {\n\treturn &podTemplates{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any.\nfunc (c *podTemplates) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PodTemplate, err error) {\n\tresult = &v1.PodTemplate{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PodTemplates that match those selectors.\nfunc (c *podTemplates) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodTemplateList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PodTemplateList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested podTemplates.\nfunc (c *podTemplates) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a podTemplate and creates it.  Returns the server's representation of the podTemplate, and an error, if there is any.\nfunc (c *podTemplates) Create(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.CreateOptions) (result *v1.PodTemplate, err error) {\n\tresult = &v1.PodTemplate{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podTemplate).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a podTemplate and updates it. Returns the server's representation of the podTemplate, and an error, if there is any.\nfunc (c *podTemplates) Update(ctx context.Context, podTemplate *v1.PodTemplate, opts metav1.UpdateOptions) (result *v1.PodTemplate, err error) {\n\tresult = &v1.PodTemplate{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tName(podTemplate.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podTemplate).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the podTemplate and deletes it. Returns an error if one occurs.\nfunc (c *podTemplates) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *podTemplates) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched podTemplate.\nfunc (c *podTemplates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodTemplate, err error) {\n\tresult = &v1.PodTemplate{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podTemplate.\nfunc (c *podTemplates) Apply(ctx context.Context, podTemplate *corev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodTemplate, err error) {\n\tif podTemplate == nil {\n\t\treturn nil, fmt.Errorf(\"podTemplate provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podTemplate)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podTemplate.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podTemplate.Name must be provided to Apply\")\n\t}\n\tresult = &v1.PodTemplate{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"podtemplates\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ReplicationControllersGetter has a method to return a ReplicationControllerInterface.\n// A group's client should implement this interface.\ntype ReplicationControllersGetter interface {\n\tReplicationControllers(namespace string) ReplicationControllerInterface\n}\n\n// ReplicationControllerInterface has methods to work with ReplicationController resources.\ntype ReplicationControllerInterface interface {\n\tCreate(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.CreateOptions) (*v1.ReplicationController, error)\n\tUpdate(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (*v1.ReplicationController, error)\n\tUpdateStatus(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (*v1.ReplicationController, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ReplicationController, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ReplicationControllerList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicationController, err error)\n\tApply(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error)\n\tApplyStatus(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error)\n\tGetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\n\tReplicationControllerExpansion\n}\n\n// replicationControllers implements ReplicationControllerInterface\ntype replicationControllers struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newReplicationControllers returns a ReplicationControllers\nfunc newReplicationControllers(c *CoreV1Client, namespace string) *replicationControllers {\n\treturn &replicationControllers{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any.\nfunc (c *replicationControllers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ReplicationController, err error) {\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors.\nfunc (c *replicationControllers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ReplicationControllerList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ReplicationControllerList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested replicationControllers.\nfunc (c *replicationControllers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a replicationController and creates it.  Returns the server's representation of the replicationController, and an error, if there is any.\nfunc (c *replicationControllers) Create(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.CreateOptions) (result *v1.ReplicationController, err error) {\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicationController).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a replicationController and updates it. Returns the server's representation of the replicationController, and an error, if there is any.\nfunc (c *replicationControllers) Update(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (result *v1.ReplicationController, err error) {\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationController.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicationController).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *replicationControllers) UpdateStatus(ctx context.Context, replicationController *v1.ReplicationController, opts metav1.UpdateOptions) (result *v1.ReplicationController, err error) {\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationController.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicationController).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the replicationController and deletes it. Returns an error if one occurs.\nfunc (c *replicationControllers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *replicationControllers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched replicationController.\nfunc (c *replicationControllers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicationController, err error) {\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicationController.\nfunc (c *replicationControllers) Apply(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) {\n\tif replicationController == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicationController)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicationController.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *replicationControllers) ApplyStatus(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) {\n\tif replicationController == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicationController)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := replicationController.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicationController.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.ReplicationController{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the replicationController, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *replicationControllers) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationControllerName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicationControllers) UpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationControllerName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ResourceQuotasGetter has a method to return a ResourceQuotaInterface.\n// A group's client should implement this interface.\ntype ResourceQuotasGetter interface {\n\tResourceQuotas(namespace string) ResourceQuotaInterface\n}\n\n// ResourceQuotaInterface has methods to work with ResourceQuota resources.\ntype ResourceQuotaInterface interface {\n\tCreate(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.CreateOptions) (*v1.ResourceQuota, error)\n\tUpdate(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (*v1.ResourceQuota, error)\n\tUpdateStatus(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (*v1.ResourceQuota, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ResourceQuota, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ResourceQuotaList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ResourceQuota, err error)\n\tApply(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error)\n\tApplyStatus(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error)\n\tResourceQuotaExpansion\n}\n\n// resourceQuotas implements ResourceQuotaInterface\ntype resourceQuotas struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newResourceQuotas returns a ResourceQuotas\nfunc newResourceQuotas(c *CoreV1Client, namespace string) *resourceQuotas {\n\treturn &resourceQuotas{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any.\nfunc (c *resourceQuotas) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ResourceQuota, err error) {\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors.\nfunc (c *resourceQuotas) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ResourceQuotaList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ResourceQuotaList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested resourceQuotas.\nfunc (c *resourceQuotas) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a resourceQuota and creates it.  Returns the server's representation of the resourceQuota, and an error, if there is any.\nfunc (c *resourceQuotas) Create(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.CreateOptions) (result *v1.ResourceQuota, err error) {\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceQuota).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any.\nfunc (c *resourceQuotas) Update(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (result *v1.ResourceQuota, err error) {\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(resourceQuota.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceQuota).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *resourceQuotas) UpdateStatus(ctx context.Context, resourceQuota *v1.ResourceQuota, opts metav1.UpdateOptions) (result *v1.ResourceQuota, err error) {\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(resourceQuota.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceQuota).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs.\nfunc (c *resourceQuotas) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *resourceQuotas) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched resourceQuota.\nfunc (c *resourceQuotas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ResourceQuota, err error) {\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceQuota.\nfunc (c *resourceQuotas) Apply(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) {\n\tif resourceQuota == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceQuota)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceQuota.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *resourceQuotas) ApplyStatus(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) {\n\tif resourceQuota == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceQuota)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := resourceQuota.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceQuota.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.ResourceQuota{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourcequotas\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// SecretsGetter has a method to return a SecretInterface.\n// A group's client should implement this interface.\ntype SecretsGetter interface {\n\tSecrets(namespace string) SecretInterface\n}\n\n// SecretInterface has methods to work with Secret resources.\ntype SecretInterface interface {\n\tCreate(ctx context.Context, secret *v1.Secret, opts metav1.CreateOptions) (*v1.Secret, error)\n\tUpdate(ctx context.Context, secret *v1.Secret, opts metav1.UpdateOptions) (*v1.Secret, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Secret, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.SecretList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Secret, err error)\n\tApply(ctx context.Context, secret *corev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Secret, err error)\n\tSecretExpansion\n}\n\n// secrets implements SecretInterface\ntype secrets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newSecrets returns a Secrets\nfunc newSecrets(c *CoreV1Client, namespace string) *secrets {\n\treturn &secrets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the secret, and returns the corresponding secret object, and an error if there is any.\nfunc (c *secrets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Secret, err error) {\n\tresult = &v1.Secret{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Secrets that match those selectors.\nfunc (c *secrets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.SecretList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.SecretList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested secrets.\nfunc (c *secrets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a secret and creates it.  Returns the server's representation of the secret, and an error, if there is any.\nfunc (c *secrets) Create(ctx context.Context, secret *v1.Secret, opts metav1.CreateOptions) (result *v1.Secret, err error) {\n\tresult = &v1.Secret{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(secret).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any.\nfunc (c *secrets) Update(ctx context.Context, secret *v1.Secret, opts metav1.UpdateOptions) (result *v1.Secret, err error) {\n\tresult = &v1.Secret{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tName(secret.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(secret).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the secret and deletes it. Returns an error if one occurs.\nfunc (c *secrets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *secrets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched secret.\nfunc (c *secrets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Secret, err error) {\n\tresult = &v1.Secret{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied secret.\nfunc (c *secrets) Apply(ctx context.Context, secret *corev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Secret, err error) {\n\tif secret == nil {\n\t\treturn nil, fmt.Errorf(\"secret provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(secret)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := secret.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"secret.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Secret{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"secrets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ServicesGetter has a method to return a ServiceInterface.\n// A group's client should implement this interface.\ntype ServicesGetter interface {\n\tServices(namespace string) ServiceInterface\n}\n\n// ServiceInterface has methods to work with Service resources.\ntype ServiceInterface interface {\n\tCreate(ctx context.Context, service *v1.Service, opts metav1.CreateOptions) (*v1.Service, error)\n\tUpdate(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (*v1.Service, error)\n\tUpdateStatus(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (*v1.Service, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Service, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ServiceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Service, err error)\n\tApply(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error)\n\tApplyStatus(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error)\n\tServiceExpansion\n}\n\n// services implements ServiceInterface\ntype services struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newServices returns a Services\nfunc newServices(c *CoreV1Client, namespace string) *services {\n\treturn &services{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the service, and returns the corresponding service object, and an error if there is any.\nfunc (c *services) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Service, err error) {\n\tresult = &v1.Service{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Services that match those selectors.\nfunc (c *services) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ServiceList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ServiceList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested services.\nfunc (c *services) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a service and creates it.  Returns the server's representation of the service, and an error, if there is any.\nfunc (c *services) Create(ctx context.Context, service *v1.Service, opts metav1.CreateOptions) (result *v1.Service, err error) {\n\tresult = &v1.Service{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(service).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any.\nfunc (c *services) Update(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (result *v1.Service, err error) {\n\tresult = &v1.Service{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(service.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(service).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *services) UpdateStatus(ctx context.Context, service *v1.Service, opts metav1.UpdateOptions) (result *v1.Service, err error) {\n\tresult = &v1.Service{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(service.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(service).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the service and deletes it. Returns an error if one occurs.\nfunc (c *services) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched service.\nfunc (c *services) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Service, err error) {\n\tresult = &v1.Service{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied service.\nfunc (c *services) Apply(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) {\n\tif service == nil {\n\t\treturn nil, fmt.Errorf(\"service provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(service)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := service.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"service.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Service{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *services) ApplyStatus(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) {\n\tif service == nil {\n\t\treturn nil, fmt.Errorf(\"service provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(service)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := service.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"service.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Service{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/service_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// The ServiceExpansion interface allows manually adding extra methods to the ServiceInterface.\ntype ServiceExpansion interface {\n\tProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper\n}\n\n// ProxyGet returns a response of the service by calling it through the proxy.\nfunc (c *services) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\trequest := c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"services\").\n\t\tSubResource(\"proxy\").\n\t\tName(net.JoinSchemeNamePort(scheme, name, port)).\n\t\tSuffix(path)\n\tfor k, v := range params {\n\t\trequest = request.Param(k, v)\n\t}\n\treturn request\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ServiceAccountsGetter has a method to return a ServiceAccountInterface.\n// A group's client should implement this interface.\ntype ServiceAccountsGetter interface {\n\tServiceAccounts(namespace string) ServiceAccountInterface\n}\n\n// ServiceAccountInterface has methods to work with ServiceAccount resources.\ntype ServiceAccountInterface interface {\n\tCreate(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.CreateOptions) (*v1.ServiceAccount, error)\n\tUpdate(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.UpdateOptions) (*v1.ServiceAccount, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ServiceAccount, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ServiceAccountList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ServiceAccount, err error)\n\tApply(ctx context.Context, serviceAccount *corev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ServiceAccount, err error)\n\tCreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (*authenticationv1.TokenRequest, error)\n\n\tServiceAccountExpansion\n}\n\n// serviceAccounts implements ServiceAccountInterface\ntype serviceAccounts struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newServiceAccounts returns a ServiceAccounts\nfunc newServiceAccounts(c *CoreV1Client, namespace string) *serviceAccounts {\n\treturn &serviceAccounts{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any.\nfunc (c *serviceAccounts) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ServiceAccount, err error) {\n\tresult = &v1.ServiceAccount{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors.\nfunc (c *serviceAccounts) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ServiceAccountList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ServiceAccountList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested serviceAccounts.\nfunc (c *serviceAccounts) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a serviceAccount and creates it.  Returns the server's representation of the serviceAccount, and an error, if there is any.\nfunc (c *serviceAccounts) Create(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.CreateOptions) (result *v1.ServiceAccount, err error) {\n\tresult = &v1.ServiceAccount{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(serviceAccount).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a serviceAccount and updates it. Returns the server's representation of the serviceAccount, and an error, if there is any.\nfunc (c *serviceAccounts) Update(ctx context.Context, serviceAccount *v1.ServiceAccount, opts metav1.UpdateOptions) (result *v1.ServiceAccount, err error) {\n\tresult = &v1.ServiceAccount{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(serviceAccount.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(serviceAccount).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the serviceAccount and deletes it. Returns an error if one occurs.\nfunc (c *serviceAccounts) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *serviceAccounts) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched serviceAccount.\nfunc (c *serviceAccounts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ServiceAccount, err error) {\n\tresult = &v1.ServiceAccount{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied serviceAccount.\nfunc (c *serviceAccounts) Apply(ctx context.Context, serviceAccount *corev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ServiceAccount, err error) {\n\tif serviceAccount == nil {\n\t\treturn nil, fmt.Errorf(\"serviceAccount provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(serviceAccount)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := serviceAccount.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"serviceAccount.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ServiceAccount{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// CreateToken takes the representation of a tokenRequest and creates it.  Returns the server's representation of the tokenRequest, and an error, if there is any.\nfunc (c *serviceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (result *authenticationv1.TokenRequest, err error) {\n\tresult = &authenticationv1.TokenRequest{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"serviceaccounts\").\n\t\tName(serviceAccountName).\n\t\tSubResource(\"token\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(tokenRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/discovery/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype DiscoveryV1Interface interface {\n\tRESTClient() rest.Interface\n\tEndpointSlicesGetter\n}\n\n// DiscoveryV1Client is used to interact with features provided by the discovery.k8s.io group.\ntype DiscoveryV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *DiscoveryV1Client) EndpointSlices(namespace string) EndpointSliceInterface {\n\treturn newEndpointSlices(c, namespace)\n}\n\n// NewForConfig creates a new DiscoveryV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*DiscoveryV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new DiscoveryV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*DiscoveryV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DiscoveryV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new DiscoveryV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *DiscoveryV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new DiscoveryV1Client for the given RESTClient.\nfunc New(c rest.Interface) *DiscoveryV1Client {\n\treturn &DiscoveryV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *DiscoveryV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/discovery/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tdiscoveryv1 \"k8s.io/client-go/applyconfigurations/discovery/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EndpointSlicesGetter has a method to return a EndpointSliceInterface.\n// A group's client should implement this interface.\ntype EndpointSlicesGetter interface {\n\tEndpointSlices(namespace string) EndpointSliceInterface\n}\n\n// EndpointSliceInterface has methods to work with EndpointSlice resources.\ntype EndpointSliceInterface interface {\n\tCreate(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.CreateOptions) (*v1.EndpointSlice, error)\n\tUpdate(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.UpdateOptions) (*v1.EndpointSlice, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.EndpointSlice, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.EndpointSliceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EndpointSlice, err error)\n\tApply(ctx context.Context, endpointSlice *discoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.EndpointSlice, err error)\n\tEndpointSliceExpansion\n}\n\n// endpointSlices implements EndpointSliceInterface\ntype endpointSlices struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEndpointSlices returns a EndpointSlices\nfunc newEndpointSlices(c *DiscoveryV1Client, namespace string) *endpointSlices {\n\treturn &endpointSlices{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any.\nfunc (c *endpointSlices) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.EndpointSlice, err error) {\n\tresult = &v1.EndpointSlice{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors.\nfunc (c *endpointSlices) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EndpointSliceList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.EndpointSliceList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested endpointSlices.\nfunc (c *endpointSlices) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a endpointSlice and creates it.  Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *endpointSlices) Create(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.CreateOptions) (result *v1.EndpointSlice, err error) {\n\tresult = &v1.EndpointSlice{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpointSlice).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *endpointSlices) Update(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.UpdateOptions) (result *v1.EndpointSlice, err error) {\n\tresult = &v1.EndpointSlice{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(endpointSlice.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpointSlice).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs.\nfunc (c *endpointSlices) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *endpointSlices) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched endpointSlice.\nfunc (c *endpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EndpointSlice, err error) {\n\tresult = &v1.EndpointSlice{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice.\nfunc (c *endpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.EndpointSlice, err error) {\n\tif endpointSlice == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(endpointSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpointSlice.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice.Name must be provided to Apply\")\n\t}\n\tresult = &v1.EndpointSlice{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeDiscoveryV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeDiscoveryV1) EndpointSlices(namespace string) v1.EndpointSliceInterface {\n\treturn &FakeEndpointSlices{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeDiscoveryV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/discovery/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tdiscoveryv1 \"k8s.io/client-go/applyconfigurations/discovery/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEndpointSlices implements EndpointSliceInterface\ntype FakeEndpointSlices struct {\n\tFake *FakeDiscoveryV1\n\tns   string\n}\n\nvar endpointslicesResource = v1.SchemeGroupVersion.WithResource(\"endpointslices\")\n\nvar endpointslicesKind = v1.SchemeGroupVersion.WithKind(\"EndpointSlice\")\n\n// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any.\nfunc (c *FakeEndpointSlices) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(endpointslicesResource, c.ns, name), &v1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.EndpointSlice), err\n}\n\n// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors.\nfunc (c *FakeEndpointSlices) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EndpointSliceList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(endpointslicesResource, endpointslicesKind, c.ns, opts), &v1.EndpointSliceList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.EndpointSliceList{ListMeta: obj.(*v1.EndpointSliceList).ListMeta}\n\tfor _, item := range obj.(*v1.EndpointSliceList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested endpointSlices.\nfunc (c *FakeEndpointSlices) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(endpointslicesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a endpointSlice and creates it.  Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *FakeEndpointSlices) Create(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.CreateOptions) (result *v1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(endpointslicesResource, c.ns, endpointSlice), &v1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.EndpointSlice), err\n}\n\n// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *FakeEndpointSlices) Update(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.UpdateOptions) (result *v1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(endpointslicesResource, c.ns, endpointSlice), &v1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.EndpointSlice), err\n}\n\n// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs.\nfunc (c *FakeEndpointSlices) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(endpointslicesResource, c.ns, name, opts), &v1.EndpointSlice{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEndpointSlices) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(endpointslicesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.EndpointSliceList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched endpointSlice.\nfunc (c *FakeEndpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, name, pt, data, subresources...), &v1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.EndpointSlice), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice.\nfunc (c *FakeEndpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.EndpointSlice, err error) {\n\tif endpointSlice == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(endpointSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpointSlice.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, *name, types.ApplyPatchType, data), &v1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.EndpointSlice), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype EndpointSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype DiscoveryV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEndpointSlicesGetter\n}\n\n// DiscoveryV1beta1Client is used to interact with features provided by the discovery.k8s.io group.\ntype DiscoveryV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *DiscoveryV1beta1Client) EndpointSlices(namespace string) EndpointSliceInterface {\n\treturn newEndpointSlices(c, namespace)\n}\n\n// NewForConfig creates a new DiscoveryV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*DiscoveryV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new DiscoveryV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*DiscoveryV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DiscoveryV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new DiscoveryV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *DiscoveryV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new DiscoveryV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *DiscoveryV1beta1Client {\n\treturn &DiscoveryV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *DiscoveryV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/applyconfigurations/discovery/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EndpointSlicesGetter has a method to return a EndpointSliceInterface.\n// A group's client should implement this interface.\ntype EndpointSlicesGetter interface {\n\tEndpointSlices(namespace string) EndpointSliceInterface\n}\n\n// EndpointSliceInterface has methods to work with EndpointSlice resources.\ntype EndpointSliceInterface interface {\n\tCreate(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.CreateOptions) (*v1beta1.EndpointSlice, error)\n\tUpdate(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.UpdateOptions) (*v1beta1.EndpointSlice, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.EndpointSlice, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.EndpointSliceList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EndpointSlice, err error)\n\tApply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error)\n\tEndpointSliceExpansion\n}\n\n// endpointSlices implements EndpointSliceInterface\ntype endpointSlices struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEndpointSlices returns a EndpointSlices\nfunc newEndpointSlices(c *DiscoveryV1beta1Client, namespace string) *endpointSlices {\n\treturn &endpointSlices{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any.\nfunc (c *endpointSlices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EndpointSlice, err error) {\n\tresult = &v1beta1.EndpointSlice{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors.\nfunc (c *endpointSlices) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EndpointSliceList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.EndpointSliceList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested endpointSlices.\nfunc (c *endpointSlices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a endpointSlice and creates it.  Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *endpointSlices) Create(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.CreateOptions) (result *v1beta1.EndpointSlice, err error) {\n\tresult = &v1beta1.EndpointSlice{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpointSlice).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *endpointSlices) Update(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.UpdateOptions) (result *v1beta1.EndpointSlice, err error) {\n\tresult = &v1beta1.EndpointSlice{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(endpointSlice.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(endpointSlice).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs.\nfunc (c *endpointSlices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *endpointSlices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched endpointSlice.\nfunc (c *endpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EndpointSlice, err error) {\n\tresult = &v1beta1.EndpointSlice{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice.\nfunc (c *endpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error) {\n\tif endpointSlice == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(endpointSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpointSlice.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.EndpointSlice{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"endpointslices\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeDiscoveryV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeDiscoveryV1beta1) EndpointSlices(namespace string) v1beta1.EndpointSliceInterface {\n\treturn &FakeEndpointSlices{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeDiscoveryV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/applyconfigurations/discovery/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEndpointSlices implements EndpointSliceInterface\ntype FakeEndpointSlices struct {\n\tFake *FakeDiscoveryV1beta1\n\tns   string\n}\n\nvar endpointslicesResource = v1beta1.SchemeGroupVersion.WithResource(\"endpointslices\")\n\nvar endpointslicesKind = v1beta1.SchemeGroupVersion.WithKind(\"EndpointSlice\")\n\n// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any.\nfunc (c *FakeEndpointSlices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(endpointslicesResource, c.ns, name), &v1beta1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.EndpointSlice), err\n}\n\n// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors.\nfunc (c *FakeEndpointSlices) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EndpointSliceList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(endpointslicesResource, endpointslicesKind, c.ns, opts), &v1beta1.EndpointSliceList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.EndpointSliceList{ListMeta: obj.(*v1beta1.EndpointSliceList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.EndpointSliceList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested endpointSlices.\nfunc (c *FakeEndpointSlices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(endpointslicesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a endpointSlice and creates it.  Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *FakeEndpointSlices) Create(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.CreateOptions) (result *v1beta1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(endpointslicesResource, c.ns, endpointSlice), &v1beta1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.EndpointSlice), err\n}\n\n// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any.\nfunc (c *FakeEndpointSlices) Update(ctx context.Context, endpointSlice *v1beta1.EndpointSlice, opts v1.UpdateOptions) (result *v1beta1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(endpointslicesResource, c.ns, endpointSlice), &v1beta1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.EndpointSlice), err\n}\n\n// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs.\nfunc (c *FakeEndpointSlices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(endpointslicesResource, c.ns, name, opts), &v1beta1.EndpointSlice{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEndpointSlices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(endpointslicesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.EndpointSliceList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched endpointSlice.\nfunc (c *FakeEndpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EndpointSlice, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, name, pt, data, subresources...), &v1beta1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.EndpointSlice), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice.\nfunc (c *FakeEndpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error) {\n\tif endpointSlice == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(endpointSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := endpointSlice.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"endpointSlice.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.EndpointSlice{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.EndpointSlice), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype EndpointSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/events/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\teventsv1 \"k8s.io/client-go/applyconfigurations/events/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (*v1.Event, error)\n\tUpdate(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (*v1.Event, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Event, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.EventList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error)\n\tApply(ctx context.Context, event *eventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEvents returns a Events\nfunc newEvents(c *EventsV1Client, namespace string) *events {\n\treturn &events{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *events) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *events) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EventList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.EventList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *events) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Create(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Update(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *events) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *events) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *events) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) {\n\tresult = &v1.Event{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *events) Apply(ctx context.Context, event *eventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Event{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/events/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype EventsV1Interface interface {\n\tRESTClient() rest.Interface\n\tEventsGetter\n}\n\n// EventsV1Client is used to interact with features provided by the events.k8s.io group.\ntype EventsV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *EventsV1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\n// NewForConfig creates a new EventsV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*EventsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new EventsV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*EventsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &EventsV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new EventsV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *EventsV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new EventsV1Client for the given RESTClient.\nfunc New(c rest.Interface) *EventsV1Client {\n\treturn &EventsV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *EventsV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/events/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\teventsv1 \"k8s.io/client-go/applyconfigurations/events/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEvents implements EventInterface\ntype FakeEvents struct {\n\tFake *FakeEventsV1\n\tns   string\n}\n\nvar eventsResource = v1.SchemeGroupVersion.WithResource(\"events\")\n\nvar eventsKind = v1.SchemeGroupVersion.WithKind(\"Event\")\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *FakeEvents) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(eventsResource, c.ns, name), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *FakeEvents) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EventList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &v1.EventList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.EventList{ListMeta: obj.(*v1.EventList).ListMeta}\n\tfor _, item := range obj.(*v1.EventList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *FakeEvents) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(eventsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Create(ctx context.Context, event *v1.Event, opts metav1.CreateOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(eventsResource, c.ns, event), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Update(ctx context.Context, event *v1.Event, opts metav1.UpdateOptions) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(eventsResource, c.ns, event), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *FakeEvents) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(eventsResource, c.ns, name, opts), &v1.Event{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEvents) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.EventList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, pt, data, subresources...), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *FakeEvents) Apply(ctx context.Context, event *eventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &v1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Event), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeEventsV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeEventsV1) Events(namespace string) v1.EventInterface {\n\treturn &FakeEvents{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeEventsV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype EventExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\teventsv1beta1 \"k8s.io/client-go/applyconfigurations/events/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *v1beta1.Event, opts v1.CreateOptions) (*v1beta1.Event, error)\n\tUpdate(ctx context.Context, event *v1beta1.Event, opts v1.UpdateOptions) (*v1beta1.Event, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Event, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.EventList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Event, err error)\n\tApply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEvents returns a Events\nfunc newEvents(c *EventsV1beta1Client, namespace string) *events {\n\treturn &events{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *events) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Event, err error) {\n\tresult = &v1beta1.Event{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *events) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EventList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.EventList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *events) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Create(ctx context.Context, event *v1beta1.Event, opts v1.CreateOptions) (result *v1beta1.Event, err error) {\n\tresult = &v1beta1.Event{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *events) Update(ctx context.Context, event *v1beta1.Event, opts v1.UpdateOptions) (result *v1beta1.Event, err error) {\n\tresult = &v1beta1.Event{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(event).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *events) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *events) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *events) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Event, err error) {\n\tresult = &v1beta1.Event{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *events) Apply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Event{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"events\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event_expansion.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"k8s.io/api/events/v1beta1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// The EventExpansion interface allows manually adding extra methods to the EventInterface.\n// TODO: Add querying functions to the event expansion\ntype EventExpansion interface {\n\t// CreateWithEventNamespace is the same as a Create\n\t// except that it sends the request to the event.Namespace.\n\tCreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error)\n\t// UpdateWithEventNamespace is the same as a Update\n\t// except that it sends the request to the event.Namespace.\n\tUpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error)\n\t// PatchWithEventNamespace is the same as a Patch\n\t// except that it sends the request to the event.Namespace.\n\tPatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error)\n}\n\n// CreateWithEventNamespace makes a new event.\n// Returns the copy of the event the server returns, or an error.\n// The namespace to create the event within is deduced from the event.\n// it must either match this event client's namespace, or this event client must\n// have been created with the \"\" namespace.\nfunc (e *events) CreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\tif e.ns != \"\" && event.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't create an event with namespace '%v' in namespace '%v'\", event.Namespace, e.ns)\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.client.Post().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// UpdateWithEventNamespace modifies an existing event.\n// It returns the copy of the event that the server returns, or an error.\n// The namespace and key to update the event within is deduced from the event.\n// The namespace must either match this event client's namespace, or this event client must have been\n// created with the \"\" namespace.\n// Update also requires the ResourceVersion to be set in the event object.\nfunc (e *events) UpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\tif e.ns != \"\" && event.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't update an event with namespace '%v' in namespace '%v'\", event.Namespace, e.ns)\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.client.Put().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// PatchWithEventNamespace modifies an existing event.\n// It returns the copy of the event that the server returns, or an error.\n// The namespace and name of the target event is deduced from the event.\n// The namespace must either match this event client's namespace, or this event client must\n// have been created with the \"\" namespace.\nfunc (e *events) PatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error) {\n\tif e.ns != \"\" && event.Namespace != e.ns {\n\t\treturn nil, fmt.Errorf(\"can't patch an event with namespace '%v' in namespace '%v'\", event.Namespace, e.ns)\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.client.Patch(types.StrategicMergePatchType).\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(data).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype EventsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEventsGetter\n}\n\n// EventsV1beta1Client is used to interact with features provided by the events.k8s.io group.\ntype EventsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *EventsV1beta1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\n// NewForConfig creates a new EventsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*EventsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new EventsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*EventsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &EventsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new EventsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *EventsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new EventsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *EventsV1beta1Client {\n\treturn &EventsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *EventsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\teventsv1beta1 \"k8s.io/client-go/applyconfigurations/events/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeEvents implements EventInterface\ntype FakeEvents struct {\n\tFake *FakeEventsV1beta1\n\tns   string\n}\n\nvar eventsResource = v1beta1.SchemeGroupVersion.WithResource(\"events\")\n\nvar eventsKind = v1beta1.SchemeGroupVersion.WithKind(\"Event\")\n\n// Get takes name of the event, and returns the corresponding event object, and an error if there is any.\nfunc (c *FakeEvents) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(eventsResource, c.ns, name), &v1beta1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Event), err\n}\n\n// List takes label and field selectors, and returns the list of Events that match those selectors.\nfunc (c *FakeEvents) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EventList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &v1beta1.EventList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.EventList{ListMeta: obj.(*v1beta1.EventList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.EventList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested events.\nfunc (c *FakeEvents) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(eventsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a event and creates it.  Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Create(ctx context.Context, event *v1beta1.Event, opts v1.CreateOptions) (result *v1beta1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(eventsResource, c.ns, event), &v1beta1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Event), err\n}\n\n// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any.\nfunc (c *FakeEvents) Update(ctx context.Context, event *v1beta1.Event, opts v1.UpdateOptions) (result *v1beta1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(eventsResource, c.ns, event), &v1beta1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Event), err\n}\n\n// Delete takes name of the event and deletes it. Returns an error if one occurs.\nfunc (c *FakeEvents) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(eventsResource, c.ns, name, opts), &v1beta1.Event{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeEvents) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.EventList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched event.\nfunc (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Event, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, pt, data, subresources...), &v1beta1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Event), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied event.\nfunc (c *FakeEvents) Apply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error) {\n\tif event == nil {\n\t\treturn nil, fmt.Errorf(\"event provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := event.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"event.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Event{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Event), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event_expansion.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\n// CreateWithEventNamespace creats a new event. Returns the copy of the event the server returns, or an error.\nfunc (c *FakeEvents) CreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\taction := core.NewRootCreateAction(eventsResource, event)\n\tif c.ns != \"\" {\n\t\taction = core.NewCreateAction(eventsResource, c.ns, event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n\n// UpdateWithEventNamespace replaces an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *FakeEvents) UpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\taction := core.NewRootUpdateAction(eventsResource, event)\n\tif c.ns != \"\" {\n\t\taction = core.NewUpdateAction(eventsResource, c.ns, event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n\n// PatchWithEventNamespace patches an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *FakeEvents) PatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error) {\n\tpt := types.StrategicMergePatchType\n\taction := core.NewRootPatchAction(eventsResource, event.Name, pt, data)\n\tif c.ns != \"\" {\n\t\taction = core.NewPatchAction(eventsResource, c.ns, event.Name, pt, data)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeEventsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeEventsV1beta1) Events(namespace string) v1beta1.EventInterface {\n\treturn &FakeEvents{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeEventsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.CreateOptions) (*v1beta1.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (*v1beta1.DaemonSet, error)\n\tUpdateStatus(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (*v1beta1.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.DaemonSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.DaemonSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error)\n\tApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *ExtensionsV1beta1Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *daemonSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.DaemonSet, err error) {\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *daemonSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DaemonSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.DaemonSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *daemonSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Create(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.CreateOptions) (result *v1beta1.DaemonSet, err error) {\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *daemonSets) Update(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (result *v1beta1.DaemonSet, err error) {\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *daemonSets) UpdateStatus(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (result *v1beta1.DaemonSet, err error) {\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(daemonSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(daemonSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *daemonSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *daemonSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.DaemonSet, err error) {\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *daemonSets) Apply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.DaemonSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"daemonsets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (*v1beta1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error)\n\tUpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error)\n\tApply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error)\n\tApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error)\n\tGetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (*v1beta1.Scale, error)\n\tUpdateScale(ctx context.Context, deploymentName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (*v1beta1.Scale, error)\n\tApplyScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (*v1beta1.Scale, error)\n\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *ExtensionsV1beta1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *deployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *deployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.DeploymentList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *deployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Create(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *deployments) Update(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *deployments) UpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deployment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(deployment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *deployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *deployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) {\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *deployments) Apply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *deployments) ApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.Deployment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the deployment, and returns the corresponding v1beta1.Scale object, and an error if there is any.\nfunc (c *deployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *deployments) UpdateScale(ctx context.Context, deploymentName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *deployments) ApplyScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\t\"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// The DeploymentExpansion interface allows manually adding extra methods to the DeploymentInterface.\ntype DeploymentExpansion interface {\n\tRollback(context.Context, *v1beta1.DeploymentRollback, metav1.CreateOptions) error\n}\n\n// Rollback applied the provided DeploymentRollback to the named deployment in the current namespace.\nfunc (c *deployments) Rollback(ctx context.Context, deploymentRollback *v1beta1.DeploymentRollback, opts metav1.CreateOptions) error {\n\treturn c.client.Post().Namespace(c.ns).Resource(\"deployments\").Name(deploymentRollback.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"rollback\").Body(deploymentRollback).Do(ctx).Error()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype ExtensionsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tIngressesGetter\n\tNetworkPoliciesGetter\n\tReplicaSetsGetter\n}\n\n// ExtensionsV1beta1Client is used to interact with features provided by the extensions group.\ntype ExtensionsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *ExtensionsV1beta1Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) NetworkPolicies(namespace string) NetworkPolicyInterface {\n\treturn newNetworkPolicies(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\n// NewForConfig creates a new ExtensionsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*ExtensionsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new ExtensionsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*ExtensionsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ExtensionsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new ExtensionsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *ExtensionsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new ExtensionsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *ExtensionsV1beta1Client {\n\treturn &ExtensionsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *ExtensionsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDaemonSets implements DaemonSetInterface\ntype FakeDaemonSets struct {\n\tFake *FakeExtensionsV1beta1\n\tns   string\n}\n\nvar daemonsetsResource = v1beta1.SchemeGroupVersion.WithResource(\"daemonsets\")\n\nvar daemonsetsKind = v1beta1.SchemeGroupVersion.WithKind(\"DaemonSet\")\n\n// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any.\nfunc (c *FakeDaemonSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// List takes label and field selectors, and returns the list of DaemonSets that match those selectors.\nfunc (c *FakeDaemonSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DaemonSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &v1beta1.DaemonSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.DaemonSetList{ListMeta: obj.(*v1beta1.DaemonSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.DaemonSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested daemonSets.\nfunc (c *FakeDaemonSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(daemonsetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a daemonSet and creates it.  Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Create(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.CreateOptions) (result *v1beta1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any.\nfunc (c *FakeDaemonSets) Update(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (result *v1beta1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDaemonSets) UpdateStatus(ctx context.Context, daemonSet *v1beta1.DaemonSet, opts v1.UpdateOptions) (*v1beta1.DaemonSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(daemonsetsResource, \"status\", c.ns, daemonSet), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeDaemonSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(daemonsetsResource, c.ns, name, opts), &v1beta1.DaemonSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDaemonSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(daemonsetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.DaemonSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched daemonSet.\nfunc (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.DaemonSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet.\nfunc (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) {\n\tif daemonSet == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(daemonSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := daemonSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"daemonSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.DaemonSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.DaemonSet), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeDeployments implements DeploymentInterface\ntype FakeDeployments struct {\n\tFake *FakeExtensionsV1beta1\n\tns   string\n}\n\nvar deploymentsResource = v1beta1.SchemeGroupVersion.WithResource(\"deployments\")\n\nvar deploymentsKind = v1beta1.SchemeGroupVersion.WithKind(\"Deployment\")\n\n// Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any.\nfunc (c *FakeDeployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(deploymentsResource, c.ns, name), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// List takes label and field selectors, and returns the list of Deployments that match those selectors.\nfunc (c *FakeDeployments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &v1beta1.DeploymentList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.DeploymentList{ListMeta: obj.(*v1beta1.DeploymentList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.DeploymentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested deployments.\nfunc (c *FakeDeployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(deploymentsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a deployment and creates it.  Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Create(ctx context.Context, deployment *v1beta1.Deployment, opts v1.CreateOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any.\nfunc (c *FakeDeployments) Update(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeDeployments) UpdateStatus(ctx context.Context, deployment *v1beta1.Deployment, opts v1.UpdateOptions) (*v1beta1.Deployment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"status\", c.ns, deployment), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Delete takes name of the deployment and deletes it. Returns an error if one occurs.\nfunc (c *FakeDeployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(deploymentsResource, c.ns, name, opts), &v1beta1.Deployment{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeDeployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.DeploymentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched deployment.\nfunc (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied deployment.\nfunc (c *FakeDeployments) Apply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) {\n\tif deployment == nil {\n\t\treturn nil, fmt.Errorf(\"deployment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(deployment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := deployment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"deployment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.Deployment{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Deployment), err\n}\n\n// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeDeployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, \"scale\", deploymentName), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeDeployments) UpdateScale(ctx context.Context, deploymentName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(deploymentsResource, \"scale\", c.ns, scale), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeDeployments) ApplyScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, deploymentName, types.ApplyPatchType, data, \"status\"), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\t\"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeDeployments) Rollback(ctx context.Context, deploymentRollback *v1beta1.DeploymentRollback, opts metav1.CreateOptions) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = deploymentsResource\n\taction.Subresource = \"rollback\"\n\taction.Object = deploymentRollback\n\n\t_, err := c.Fake.Invokes(action, deploymentRollback)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeExtensionsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeExtensionsV1beta1) DaemonSets(namespace string) v1beta1.DaemonSetInterface {\n\treturn &FakeDaemonSets{c, namespace}\n}\n\nfunc (c *FakeExtensionsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterface {\n\treturn &FakeDeployments{c, namespace}\n}\n\nfunc (c *FakeExtensionsV1beta1) Ingresses(namespace string) v1beta1.IngressInterface {\n\treturn &FakeIngresses{c, namespace}\n}\n\nfunc (c *FakeExtensionsV1beta1) NetworkPolicies(namespace string) v1beta1.NetworkPolicyInterface {\n\treturn &FakeNetworkPolicies{c, namespace}\n}\n\nfunc (c *FakeExtensionsV1beta1) ReplicaSets(namespace string) v1beta1.ReplicaSetInterface {\n\treturn &FakeReplicaSets{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeExtensionsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIngresses implements IngressInterface\ntype FakeIngresses struct {\n\tFake *FakeExtensionsV1beta1\n\tns   string\n}\n\nvar ingressesResource = v1beta1.SchemeGroupVersion.WithResource(\"ingresses\")\n\nvar ingressesKind = v1beta1.SchemeGroupVersion.WithKind(\"Ingress\")\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *FakeIngresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(ingressesResource, c.ns, name), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *FakeIngresses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(ingressesResource, ingressesKind, c.ns, opts), &v1beta1.IngressList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.IngressList{ListMeta: obj.(*v1beta1.IngressList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.IngressList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *FakeIngresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(ingressesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Create(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Update(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeIngresses) UpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(ingressesResource, \"status\", c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *FakeIngresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(ingressesResource, c.ns, name, opts), &v1beta1.Ingress{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIngresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(ingressesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.IngressList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, pt, data, subresources...), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *FakeIngresses) Apply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeNetworkPolicies implements NetworkPolicyInterface\ntype FakeNetworkPolicies struct {\n\tFake *FakeExtensionsV1beta1\n\tns   string\n}\n\nvar networkpoliciesResource = v1beta1.SchemeGroupVersion.WithResource(\"networkpolicies\")\n\nvar networkpoliciesKind = v1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicy\")\n\n// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any.\nfunc (c *FakeNetworkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(networkpoliciesResource, c.ns, name), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors.\nfunc (c *FakeNetworkPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.NetworkPolicyList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(networkpoliciesResource, networkpoliciesKind, c.ns, opts), &v1beta1.NetworkPolicyList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.NetworkPolicyList{ListMeta: obj.(*v1beta1.NetworkPolicyList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.NetworkPolicyList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested networkPolicies.\nfunc (c *FakeNetworkPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(networkpoliciesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a networkPolicy and creates it.  Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *FakeNetworkPolicies) Create(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.CreateOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(networkpoliciesResource, c.ns, networkPolicy), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *FakeNetworkPolicies) Update(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(networkpoliciesResource, c.ns, networkPolicy), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeNetworkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(networkpoliciesResource, \"status\", c.ns, networkPolicy), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.\nfunc (c *FakeNetworkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(networkpoliciesResource, c.ns, name, opts), &v1beta1.NetworkPolicy{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeNetworkPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(networkpoliciesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.NetworkPolicyList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched networkPolicy.\nfunc (c *FakeNetworkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, name, pt, data, subresources...), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy.\nfunc (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeNetworkPolicies) ApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.NetworkPolicy), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeReplicaSets implements ReplicaSetInterface\ntype FakeReplicaSets struct {\n\tFake *FakeExtensionsV1beta1\n\tns   string\n}\n\nvar replicasetsResource = v1beta1.SchemeGroupVersion.WithResource(\"replicasets\")\n\nvar replicasetsKind = v1beta1.SchemeGroupVersion.WithKind(\"ReplicaSet\")\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *FakeReplicaSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(replicasetsResource, c.ns, name), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *FakeReplicaSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ReplicaSetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &v1beta1.ReplicaSetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.ReplicaSetList{ListMeta: obj.(*v1beta1.ReplicaSetList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.ReplicaSetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *FakeReplicaSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(replicasetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Create(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.CreateOptions) (result *v1beta1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *FakeReplicaSets) Update(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (result *v1beta1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeReplicaSets) UpdateStatus(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (*v1beta1.ReplicaSet, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicasetsResource, \"status\", c.ns, replicaSet), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *FakeReplicaSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(replicasetsResource, c.ns, name, opts), &v1beta1.ReplicaSet{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeReplicaSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(replicasetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.ReplicaSetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ReplicaSet, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.ReplicaSet{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ReplicaSet), err\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *FakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, \"scale\", replicaSetName), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *FakeReplicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(replicasetsResource, \"scale\", c.ns, scale), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *FakeReplicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, replicaSetName, types.ApplyPatchType, data, \"status\"), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype DaemonSetExpansion interface{}\n\ntype IngressExpansion interface{}\n\ntype NetworkPolicyExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (*v1beta1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error)\n\tUpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Ingress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error)\n\tApply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error)\n\tApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *ExtensionsV1beta1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *ingresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *ingresses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.IngressList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *ingresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Create(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Update(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *ingresses) UpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *ingresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *ingresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *ingresses) Apply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *ingresses) ApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// NetworkPoliciesGetter has a method to return a NetworkPolicyInterface.\n// A group's client should implement this interface.\ntype NetworkPoliciesGetter interface {\n\tNetworkPolicies(namespace string) NetworkPolicyInterface\n}\n\n// NetworkPolicyInterface has methods to work with NetworkPolicy resources.\ntype NetworkPolicyInterface interface {\n\tCreate(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.CreateOptions) (*v1beta1.NetworkPolicy, error)\n\tUpdate(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error)\n\tUpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.NetworkPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.NetworkPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.NetworkPolicy, err error)\n\tApply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error)\n\tApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error)\n\tNetworkPolicyExpansion\n}\n\n// networkPolicies implements NetworkPolicyInterface\ntype networkPolicies struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newNetworkPolicies returns a NetworkPolicies\nfunc newNetworkPolicies(c *ExtensionsV1beta1Client, namespace string) *networkPolicies {\n\treturn &networkPolicies{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any.\nfunc (c *networkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors.\nfunc (c *networkPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.NetworkPolicyList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.NetworkPolicyList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested networkPolicies.\nfunc (c *networkPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a networkPolicy and creates it.  Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *networkPolicies) Create(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.CreateOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *networkPolicies) Update(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(networkPolicy.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *networkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(networkPolicy.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.\nfunc (c *networkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *networkPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched networkPolicy.\nfunc (c *networkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.NetworkPolicy, err error) {\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy.\nfunc (c *networkPolicies) Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *networkPolicies) ApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.NetworkPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.CreateOptions) (*v1beta1.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (*v1beta1.ReplicaSet, error)\n\tUpdateStatus(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (*v1beta1.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.ReplicaSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error)\n\tApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error)\n\tGetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (*v1beta1.Scale, error)\n\tUpdateScale(ctx context.Context, replicaSetName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (*v1beta1.Scale, error)\n\tApplyScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (*v1beta1.Scale, error)\n\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *ExtensionsV1beta1Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any.\nfunc (c *replicaSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ReplicaSet, err error) {\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ReplicaSets that match those selectors.\nfunc (c *replicaSets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ReplicaSetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.ReplicaSetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested replicaSets.\nfunc (c *replicaSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a replicaSet and creates it.  Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Create(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.CreateOptions) (result *v1beta1.ReplicaSet, err error) {\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any.\nfunc (c *replicaSets) Update(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (result *v1beta1.ReplicaSet, err error) {\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *replicaSets) UpdateStatus(ctx context.Context, replicaSet *v1beta1.ReplicaSet, opts v1.UpdateOptions) (result *v1beta1.ReplicaSet, err error) {\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSet.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(replicaSet).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the replicaSet and deletes it. Returns an error if one occurs.\nfunc (c *replicaSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *replicaSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched replicaSet.\nfunc (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ReplicaSet, err error) {\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet.\nfunc (c *replicaSets) Apply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) {\n\tif replicaSet == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(replicaSet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := replicaSet.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"replicaSet.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.ReplicaSet{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding v1beta1.Scale object, and an error if there is any.\nfunc (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *replicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &v1beta1.Scale{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1alpha1) FlowSchemas() v1alpha1.FlowSchemaInterface {\n\treturn &FakeFlowSchemas{c}\n}\n\nfunc (c *FakeFlowcontrolV1alpha1) PriorityLevelConfigurations() v1alpha1.PriorityLevelConfigurationInterface {\n\treturn &FakePriorityLevelConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeFlowSchemas implements FlowSchemaInterface\ntype FakeFlowSchemas struct {\n\tFake *FakeFlowcontrolV1alpha1\n}\n\nvar flowschemasResource = v1alpha1.SchemeGroupVersion.WithResource(\"flowschemas\")\n\nvar flowschemasKind = v1alpha1.SchemeGroupVersion.WithKind(\"FlowSchema\")\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *FakeFlowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(flowschemasResource, name), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *FakeFlowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.FlowSchemaList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(flowschemasResource, flowschemasKind, opts), &v1alpha1.FlowSchemaList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.FlowSchemaList{ListMeta: obj.(*v1alpha1.FlowSchemaList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.FlowSchemaList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *FakeFlowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(flowschemasResource, opts))\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Create(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.CreateOptions) (result *v1alpha1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(flowschemasResource, flowSchema), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Update(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (result *v1alpha1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(flowschemasResource, flowSchema), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeFlowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (*v1alpha1.FlowSchema, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(flowschemasResource, \"status\", flowSchema), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *FakeFlowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(flowschemasResource, name, opts), &v1alpha1.FlowSchema{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeFlowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(flowschemasResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.FlowSchemaList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, name, pt, data, subresources...), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, \"status\"), &v1alpha1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.FlowSchema), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype FakePriorityLevelConfigurations struct {\n\tFake *FakeFlowcontrolV1alpha1\n}\n\nvar prioritylevelconfigurationsResource = v1alpha1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\")\n\nvar prioritylevelconfigurationsKind = v1alpha1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\")\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *FakePriorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(prioritylevelconfigurationsResource, name), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *FakePriorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.PriorityLevelConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(prioritylevelconfigurationsResource, prioritylevelconfigurationsKind, opts), &v1alpha1.PriorityLevelConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.PriorityLevelConfigurationList{ListMeta: obj.(*v1alpha1.PriorityLevelConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.PriorityLevelConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *FakePriorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(prioritylevelconfigurationsResource, opts))\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePriorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1alpha1.PriorityLevelConfiguration, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(prioritylevelconfigurationsResource, \"status\", priorityLevelConfiguration), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(prioritylevelconfigurationsResource, name, opts), &v1alpha1.PriorityLevelConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(prioritylevelconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.PriorityLevelConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, name, pt, data, subresources...), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, \"status\"), &v1alpha1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityLevelConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1alpha1Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1alpha1Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1alpha1Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1alpha1Client {\n\treturn &FlowcontrolV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.CreateOptions) (*v1alpha1.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (*v1alpha1.FlowSchema, error)\n\tUpdateStatus(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (*v1alpha1.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error)\n\tApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\tclient rest.Interface\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1alpha1Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *flowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.FlowSchema, err error) {\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *flowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.FlowSchemaList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.FlowSchemaList{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *flowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Create(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.CreateOptions) (result *v1alpha1.FlowSchema, err error) {\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Post().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Update(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (result *v1alpha1.FlowSchema, err error) {\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *flowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1alpha1.FlowSchema, opts v1.UpdateOptions) (result *v1alpha1.FlowSchema, err error) {\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *flowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *flowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FlowSchema, err error) {\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha1.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/flowcontrol/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1alpha1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.CreateOptions) (*v1alpha1.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1alpha1.PriorityLevelConfiguration, error)\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1alpha1.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error)\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\tclient rest.Interface\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1alpha1Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *priorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *priorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.PriorityLevelConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.PriorityLevelConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *priorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *priorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1alpha1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *priorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta1) FlowSchemas() v1beta1.FlowSchemaInterface {\n\treturn &FakeFlowSchemas{c}\n}\n\nfunc (c *FakeFlowcontrolV1beta1) PriorityLevelConfigurations() v1beta1.PriorityLevelConfigurationInterface {\n\treturn &FakePriorityLevelConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeFlowSchemas implements FlowSchemaInterface\ntype FakeFlowSchemas struct {\n\tFake *FakeFlowcontrolV1beta1\n}\n\nvar flowschemasResource = v1beta1.SchemeGroupVersion.WithResource(\"flowschemas\")\n\nvar flowschemasKind = v1beta1.SchemeGroupVersion.WithKind(\"FlowSchema\")\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *FakeFlowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(flowschemasResource, name), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *FakeFlowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.FlowSchemaList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(flowschemasResource, flowschemasKind, opts), &v1beta1.FlowSchemaList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.FlowSchemaList{ListMeta: obj.(*v1beta1.FlowSchemaList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.FlowSchemaList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *FakeFlowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(flowschemasResource, opts))\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Create(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.CreateOptions) (result *v1beta1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(flowschemasResource, flowSchema), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Update(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (result *v1beta1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(flowschemasResource, flowSchema), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeFlowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (*v1beta1.FlowSchema, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(flowschemasResource, \"status\", flowSchema), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *FakeFlowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(flowschemasResource, name, opts), &v1beta1.FlowSchema{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeFlowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(flowschemasResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.FlowSchemaList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, name, pt, data, subresources...), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.FlowSchema), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype FakePriorityLevelConfigurations struct {\n\tFake *FakeFlowcontrolV1beta1\n}\n\nvar prioritylevelconfigurationsResource = v1beta1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\")\n\nvar prioritylevelconfigurationsKind = v1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\")\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *FakePriorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(prioritylevelconfigurationsResource, name), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *FakePriorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PriorityLevelConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(prioritylevelconfigurationsResource, prioritylevelconfigurationsKind, opts), &v1beta1.PriorityLevelConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.PriorityLevelConfigurationList{ListMeta: obj.(*v1beta1.PriorityLevelConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.PriorityLevelConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *FakePriorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(prioritylevelconfigurationsResource, opts))\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePriorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta1.PriorityLevelConfiguration, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(prioritylevelconfigurationsResource, \"status\", priorityLevelConfiguration), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(prioritylevelconfigurationsResource, name, opts), &v1beta1.PriorityLevelConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(prioritylevelconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.PriorityLevelConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, name, pt, data, subresources...), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityLevelConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta1Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta1Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta1Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta1Client {\n\treturn &FlowcontrolV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.CreateOptions) (*v1beta1.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (*v1beta1.FlowSchema, error)\n\tUpdateStatus(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (*v1beta1.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error)\n\tApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\tclient rest.Interface\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta1Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *flowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.FlowSchema, err error) {\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *flowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.FlowSchemaList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.FlowSchemaList{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *flowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Create(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.CreateOptions) (result *v1beta1.FlowSchema, err error) {\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Post().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Update(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (result *v1beta1.FlowSchema, err error) {\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *flowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta1.FlowSchema, opts v1.UpdateOptions) (result *v1beta1.FlowSchema, err error) {\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *flowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *flowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.FlowSchema, err error) {\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.CreateOptions) (*v1beta1.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta1.PriorityLevelConfiguration, error)\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta1.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error)\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\tclient rest.Interface\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta1Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *priorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *priorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PriorityLevelConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.PriorityLevelConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *priorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *priorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *priorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta2) FlowSchemas() v1beta2.FlowSchemaInterface {\n\treturn &FakeFlowSchemas{c}\n}\n\nfunc (c *FakeFlowcontrolV1beta2) PriorityLevelConfigurations() v1beta2.PriorityLevelConfigurationInterface {\n\treturn &FakePriorityLevelConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeFlowSchemas implements FlowSchemaInterface\ntype FakeFlowSchemas struct {\n\tFake *FakeFlowcontrolV1beta2\n}\n\nvar flowschemasResource = v1beta2.SchemeGroupVersion.WithResource(\"flowschemas\")\n\nvar flowschemasKind = v1beta2.SchemeGroupVersion.WithKind(\"FlowSchema\")\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *FakeFlowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(flowschemasResource, name), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *FakeFlowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.FlowSchemaList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(flowschemasResource, flowschemasKind, opts), &v1beta2.FlowSchemaList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.FlowSchemaList{ListMeta: obj.(*v1beta2.FlowSchemaList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.FlowSchemaList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *FakeFlowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(flowschemasResource, opts))\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Create(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.CreateOptions) (result *v1beta2.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(flowschemasResource, flowSchema), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Update(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (result *v1beta2.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(flowschemasResource, flowSchema), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeFlowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (*v1beta2.FlowSchema, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(flowschemasResource, \"status\", flowSchema), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *FakeFlowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(flowschemasResource, name, opts), &v1beta2.FlowSchema{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeFlowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(flowschemasResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.FlowSchemaList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, name, pt, data, subresources...), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.FlowSchema), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype FakePriorityLevelConfigurations struct {\n\tFake *FakeFlowcontrolV1beta2\n}\n\nvar prioritylevelconfigurationsResource = v1beta2.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\")\n\nvar prioritylevelconfigurationsKind = v1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\")\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *FakePriorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(prioritylevelconfigurationsResource, name), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *FakePriorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.PriorityLevelConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(prioritylevelconfigurationsResource, prioritylevelconfigurationsKind, opts), &v1beta2.PriorityLevelConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta2.PriorityLevelConfigurationList{ListMeta: obj.(*v1beta2.PriorityLevelConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1beta2.PriorityLevelConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *FakePriorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(prioritylevelconfigurationsResource, opts))\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePriorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta2.PriorityLevelConfiguration, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(prioritylevelconfigurationsResource, \"status\", priorityLevelConfiguration), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(prioritylevelconfigurationsResource, name, opts), &v1beta2.PriorityLevelConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(prioritylevelconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta2.PriorityLevelConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, name, pt, data, subresources...), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta2.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta2.PriorityLevelConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"net/http\"\n\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta2Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta2Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta2Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta2Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta2Client {\n\treturn &FlowcontrolV1beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.CreateOptions) (*v1beta2.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (*v1beta2.FlowSchema, error)\n\tUpdateStatus(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (*v1beta2.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error)\n\tApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\tclient rest.Interface\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta2Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *flowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.FlowSchema, err error) {\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *flowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.FlowSchemaList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.FlowSchemaList{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *flowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Create(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.CreateOptions) (result *v1beta2.FlowSchema, err error) {\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Post().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Update(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (result *v1beta2.FlowSchema, err error) {\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *flowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta2.FlowSchema, opts v1.UpdateOptions) (result *v1beta2.FlowSchema, err error) {\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *flowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *flowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.FlowSchema, err error) {\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.CreateOptions) (*v1beta2.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta2.PriorityLevelConfiguration, error)\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta2.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta2.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error)\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\tclient rest.Interface\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta2Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *priorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *priorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.PriorityLevelConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta2.PriorityLevelConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *priorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *priorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *priorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta2.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta3\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta3 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta3) FlowSchemas() v1beta3.FlowSchemaInterface {\n\treturn &FakeFlowSchemas{c}\n}\n\nfunc (c *FakeFlowcontrolV1beta3) PriorityLevelConfigurations() v1beta3.PriorityLevelConfigurationInterface {\n\treturn &FakePriorityLevelConfigurations{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta3) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeFlowSchemas implements FlowSchemaInterface\ntype FakeFlowSchemas struct {\n\tFake *FakeFlowcontrolV1beta3\n}\n\nvar flowschemasResource = v1beta3.SchemeGroupVersion.WithResource(\"flowschemas\")\n\nvar flowschemasKind = v1beta3.SchemeGroupVersion.WithKind(\"FlowSchema\")\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *FakeFlowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta3.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(flowschemasResource, name), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *FakeFlowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta3.FlowSchemaList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(flowschemasResource, flowschemasKind, opts), &v1beta3.FlowSchemaList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta3.FlowSchemaList{ListMeta: obj.(*v1beta3.FlowSchemaList).ListMeta}\n\tfor _, item := range obj.(*v1beta3.FlowSchemaList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *FakeFlowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(flowschemasResource, opts))\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Create(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.CreateOptions) (result *v1beta3.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(flowschemasResource, flowSchema), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *FakeFlowSchemas) Update(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (result *v1beta3.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(flowschemasResource, flowSchema), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeFlowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (*v1beta3.FlowSchema, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(flowschemasResource, \"status\", flowSchema), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *FakeFlowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(flowschemasResource, name, opts), &v1beta3.FlowSchema{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeFlowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(flowschemasResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta3.FlowSchemaList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.FlowSchema, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, name, pt, data, subresources...), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta3.FlowSchema{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.FlowSchema), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype FakePriorityLevelConfigurations struct {\n\tFake *FakeFlowcontrolV1beta3\n}\n\nvar prioritylevelconfigurationsResource = v1beta3.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\")\n\nvar prioritylevelconfigurationsKind = v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\")\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *FakePriorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(prioritylevelconfigurationsResource, name), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *FakePriorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta3.PriorityLevelConfigurationList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(prioritylevelconfigurationsResource, prioritylevelconfigurationsKind, opts), &v1beta3.PriorityLevelConfigurationList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta3.PriorityLevelConfigurationList{ListMeta: obj.(*v1beta3.PriorityLevelConfigurationList).ListMeta}\n\tfor _, item := range obj.(*v1beta3.PriorityLevelConfigurationList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *FakePriorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(prioritylevelconfigurationsResource, opts))\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *FakePriorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(prioritylevelconfigurationsResource, priorityLevelConfiguration), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePriorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta3.PriorityLevelConfiguration, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(prioritylevelconfigurationsResource, \"status\", priorityLevelConfiguration), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(prioritylevelconfigurationsResource, name, opts), &v1beta3.PriorityLevelConfiguration{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(prioritylevelconfigurationsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta3.PriorityLevelConfigurationList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, name, pt, data, subresources...), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta3.PriorityLevelConfiguration{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta3.PriorityLevelConfiguration), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\t\"net/http\"\n\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta3Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta3Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta3Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta3Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta3Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta3Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta3Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta3Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta3Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta3Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta3Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta3Client {\n\treturn &FlowcontrolV1beta3Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta3.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta3Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.CreateOptions) (*v1beta3.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (*v1beta3.FlowSchema, error)\n\tUpdateStatus(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (*v1beta3.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta3.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta3.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error)\n\tApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\tclient rest.Interface\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta3Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the flowSchema, and returns the corresponding flowSchema object, and an error if there is any.\nfunc (c *flowSchemas) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta3.FlowSchema, err error) {\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of FlowSchemas that match those selectors.\nfunc (c *flowSchemas) List(ctx context.Context, opts v1.ListOptions) (result *v1beta3.FlowSchemaList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta3.FlowSchemaList{}\n\terr = c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested flowSchemas.\nfunc (c *flowSchemas) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a flowSchema and creates it.  Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Create(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.CreateOptions) (result *v1beta3.FlowSchema, err error) {\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Post().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a flowSchema and updates it. Returns the server's representation of the flowSchema, and an error, if there is any.\nfunc (c *flowSchemas) Update(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (result *v1beta3.FlowSchema, err error) {\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *flowSchemas) UpdateStatus(ctx context.Context, flowSchema *v1beta3.FlowSchema, opts v1.UpdateOptions) (result *v1beta3.FlowSchema, err error) {\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Put().\n\t\tResource(\"flowschemas\").\n\t\tName(flowSchema.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(flowSchema).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the flowSchema and deletes it. Returns an error if one occurs.\nfunc (c *flowSchemas) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *flowSchemas) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"flowschemas\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched flowSchema.\nfunc (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.FlowSchema, err error) {\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"flowschemas\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema.\nfunc (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.FlowSchema, err error) {\n\tif flowSchema == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(flowSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := flowSchema.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"flowSchema.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta3.FlowSchema{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"flowschemas\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.CreateOptions) (*v1beta3.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta3.PriorityLevelConfiguration, error)\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (*v1beta3.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta3.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta3.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error)\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\tclient rest.Interface\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta3Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityLevelConfiguration, and returns the corresponding priorityLevelConfiguration object, and an error if there is any.\nfunc (c *priorityLevelConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityLevelConfigurations that match those selectors.\nfunc (c *priorityLevelConfigurations) List(ctx context.Context, opts v1.ListOptions) (result *v1beta3.PriorityLevelConfigurationList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta3.PriorityLevelConfigurationList{}\n\terr = c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityLevelConfigurations.\nfunc (c *priorityLevelConfigurations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityLevelConfiguration and creates it.  Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Create(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.CreateOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Post().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityLevelConfiguration and updates it. Returns the server's representation of the priorityLevelConfiguration, and an error, if there is any.\nfunc (c *priorityLevelConfigurations) Update(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *priorityLevelConfigurations) UpdateStatus(ctx context.Context, priorityLevelConfiguration *v1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Put().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(priorityLevelConfiguration.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityLevelConfiguration).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityLevelConfiguration and deletes it. Returns an error if one occurs.\nfunc (c *priorityLevelConfigurations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityLevelConfigurations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration.\nfunc (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta3.PriorityLevelConfiguration, err error) {\n\tif priorityLevelConfiguration == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityLevelConfiguration)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := priorityLevelConfiguration.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityLevelConfiguration.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta3.PriorityLevelConfiguration{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"prioritylevelconfigurations\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIngresses implements IngressInterface\ntype FakeIngresses struct {\n\tFake *FakeNetworkingV1\n\tns   string\n}\n\nvar ingressesResource = v1.SchemeGroupVersion.WithResource(\"ingresses\")\n\nvar ingressesKind = v1.SchemeGroupVersion.WithKind(\"Ingress\")\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *FakeIngresses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(ingressesResource, c.ns, name), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *FakeIngresses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IngressList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(ingressesResource, ingressesKind, c.ns, opts), &v1.IngressList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.IngressList{ListMeta: obj.(*v1.IngressList).ListMeta}\n\tfor _, item := range obj.(*v1.IngressList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *FakeIngresses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(ingressesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Create(ctx context.Context, ingress *v1.Ingress, opts metav1.CreateOptions) (result *v1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(ingressesResource, c.ns, ingress), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Update(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (result *v1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(ingressesResource, c.ns, ingress), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeIngresses) UpdateStatus(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (*v1.Ingress, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(ingressesResource, \"status\", c.ns, ingress), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *FakeIngresses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(ingressesResource, c.ns, name, opts), &v1.Ingress{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIngresses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(ingressesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.IngressList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, pt, data, subresources...), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *FakeIngresses) Apply(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Ingress), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIngressClasses implements IngressClassInterface\ntype FakeIngressClasses struct {\n\tFake *FakeNetworkingV1\n}\n\nvar ingressclassesResource = v1.SchemeGroupVersion.WithResource(\"ingressclasses\")\n\nvar ingressclassesKind = v1.SchemeGroupVersion.WithKind(\"IngressClass\")\n\n// Get takes name of the ingressClass, and returns the corresponding ingressClass object, and an error if there is any.\nfunc (c *FakeIngressClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(ingressclassesResource, name), &v1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.IngressClass), err\n}\n\n// List takes label and field selectors, and returns the list of IngressClasses that match those selectors.\nfunc (c *FakeIngressClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IngressClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(ingressclassesResource, ingressclassesKind, opts), &v1.IngressClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.IngressClassList{ListMeta: obj.(*v1.IngressClassList).ListMeta}\n\tfor _, item := range obj.(*v1.IngressClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested ingressClasses.\nfunc (c *FakeIngressClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(ingressclassesResource, opts))\n}\n\n// Create takes the representation of a ingressClass and creates it.  Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *FakeIngressClasses) Create(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.CreateOptions) (result *v1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(ingressclassesResource, ingressClass), &v1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.IngressClass), err\n}\n\n// Update takes the representation of a ingressClass and updates it. Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *FakeIngressClasses) Update(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.UpdateOptions) (result *v1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(ingressclassesResource, ingressClass), &v1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.IngressClass), err\n}\n\n// Delete takes name of the ingressClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeIngressClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(ingressclassesResource, name, opts), &v1.IngressClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIngressClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(ingressclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.IngressClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched ingressClass.\nfunc (c *FakeIngressClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, name, pt, data, subresources...), &v1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.IngressClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass.\nfunc (c *FakeIngressClasses) Apply(ctx context.Context, ingressClass *networkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IngressClass, err error) {\n\tif ingressClass == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingressClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingressClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, *name, types.ApplyPatchType, data), &v1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.IngressClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1) Ingresses(namespace string) v1.IngressInterface {\n\treturn &FakeIngresses{c, namespace}\n}\n\nfunc (c *FakeNetworkingV1) IngressClasses() v1.IngressClassInterface {\n\treturn &FakeIngressClasses{c}\n}\n\nfunc (c *FakeNetworkingV1) NetworkPolicies(namespace string) v1.NetworkPolicyInterface {\n\treturn &FakeNetworkPolicies{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeNetworkPolicies implements NetworkPolicyInterface\ntype FakeNetworkPolicies struct {\n\tFake *FakeNetworkingV1\n\tns   string\n}\n\nvar networkpoliciesResource = v1.SchemeGroupVersion.WithResource(\"networkpolicies\")\n\nvar networkpoliciesKind = v1.SchemeGroupVersion.WithKind(\"NetworkPolicy\")\n\n// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any.\nfunc (c *FakeNetworkPolicies) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(networkpoliciesResource, c.ns, name), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors.\nfunc (c *FakeNetworkPolicies) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NetworkPolicyList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(networkpoliciesResource, networkpoliciesKind, c.ns, opts), &v1.NetworkPolicyList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.NetworkPolicyList{ListMeta: obj.(*v1.NetworkPolicyList).ListMeta}\n\tfor _, item := range obj.(*v1.NetworkPolicyList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested networkPolicies.\nfunc (c *FakeNetworkPolicies) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(networkpoliciesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a networkPolicy and creates it.  Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *FakeNetworkPolicies) Create(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.CreateOptions) (result *v1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(networkpoliciesResource, c.ns, networkPolicy), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *FakeNetworkPolicies) Update(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (result *v1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(networkpoliciesResource, c.ns, networkPolicy), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeNetworkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (*v1.NetworkPolicy, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(networkpoliciesResource, \"status\", c.ns, networkPolicy), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.\nfunc (c *FakeNetworkPolicies) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(networkpoliciesResource, c.ns, name, opts), &v1.NetworkPolicy{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeNetworkPolicies) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(networkpoliciesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.NetworkPolicyList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched networkPolicy.\nfunc (c *FakeNetworkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetworkPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, name, pt, data, subresources...), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy.\nfunc (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeNetworkPolicies) ApplyStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.NetworkPolicy{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.NetworkPolicy), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype IngressExpansion interface{}\n\ntype IngressClassExpansion interface{}\n\ntype NetworkPolicyExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *v1.Ingress, opts metav1.CreateOptions) (*v1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (*v1.Ingress, error)\n\tUpdateStatus(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (*v1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Ingress, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.IngressList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error)\n\tApply(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error)\n\tApplyStatus(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *NetworkingV1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *ingresses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Ingress, err error) {\n\tresult = &v1.Ingress{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *ingresses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IngressList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.IngressList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *ingresses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Create(ctx context.Context, ingress *v1.Ingress, opts metav1.CreateOptions) (result *v1.Ingress, err error) {\n\tresult = &v1.Ingress{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Update(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (result *v1.Ingress, err error) {\n\tresult = &v1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *ingresses) UpdateStatus(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (result *v1.Ingress, err error) {\n\tresult = &v1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *ingresses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *ingresses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error) {\n\tresult = &v1.Ingress{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *ingresses) Apply(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *ingresses) ApplyStatus(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IngressClassesGetter has a method to return a IngressClassInterface.\n// A group's client should implement this interface.\ntype IngressClassesGetter interface {\n\tIngressClasses() IngressClassInterface\n}\n\n// IngressClassInterface has methods to work with IngressClass resources.\ntype IngressClassInterface interface {\n\tCreate(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.CreateOptions) (*v1.IngressClass, error)\n\tUpdate(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.UpdateOptions) (*v1.IngressClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.IngressClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.IngressClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IngressClass, err error)\n\tApply(ctx context.Context, ingressClass *networkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IngressClass, err error)\n\tIngressClassExpansion\n}\n\n// ingressClasses implements IngressClassInterface\ntype ingressClasses struct {\n\tclient rest.Interface\n}\n\n// newIngressClasses returns a IngressClasses\nfunc newIngressClasses(c *NetworkingV1Client) *ingressClasses {\n\treturn &ingressClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the ingressClass, and returns the corresponding ingressClass object, and an error if there is any.\nfunc (c *ingressClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.IngressClass, err error) {\n\tresult = &v1.IngressClass{}\n\terr = c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of IngressClasses that match those selectors.\nfunc (c *ingressClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IngressClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.IngressClassList{}\n\terr = c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested ingressClasses.\nfunc (c *ingressClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a ingressClass and creates it.  Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *ingressClasses) Create(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.CreateOptions) (result *v1.IngressClass, err error) {\n\tresult = &v1.IngressClass{}\n\terr = c.client.Post().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingressClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a ingressClass and updates it. Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *ingressClasses) Update(ctx context.Context, ingressClass *v1.IngressClass, opts metav1.UpdateOptions) (result *v1.IngressClass, err error) {\n\tresult = &v1.IngressClass{}\n\terr = c.client.Put().\n\t\tResource(\"ingressclasses\").\n\t\tName(ingressClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingressClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the ingressClass and deletes it. Returns an error if one occurs.\nfunc (c *ingressClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *ingressClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched ingressClass.\nfunc (c *ingressClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IngressClass, err error) {\n\tresult = &v1.IngressClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass.\nfunc (c *ingressClasses) Apply(ctx context.Context, ingressClass *networkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IngressClass, err error) {\n\tif ingressClass == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingressClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingressClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1.IngressClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"ingressclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1Interface interface {\n\tRESTClient() rest.Interface\n\tIngressesGetter\n\tIngressClassesGetter\n\tNetworkPoliciesGetter\n}\n\n// NetworkingV1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *NetworkingV1Client) IngressClasses() IngressClassInterface {\n\treturn newIngressClasses(c)\n}\n\nfunc (c *NetworkingV1Client) NetworkPolicies(namespace string) NetworkPolicyInterface {\n\treturn newNetworkPolicies(c, namespace)\n}\n\n// NewForConfig creates a new NetworkingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1Client {\n\treturn &NetworkingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// NetworkPoliciesGetter has a method to return a NetworkPolicyInterface.\n// A group's client should implement this interface.\ntype NetworkPoliciesGetter interface {\n\tNetworkPolicies(namespace string) NetworkPolicyInterface\n}\n\n// NetworkPolicyInterface has methods to work with NetworkPolicy resources.\ntype NetworkPolicyInterface interface {\n\tCreate(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.CreateOptions) (*v1.NetworkPolicy, error)\n\tUpdate(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (*v1.NetworkPolicy, error)\n\tUpdateStatus(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (*v1.NetworkPolicy, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.NetworkPolicy, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.NetworkPolicyList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetworkPolicy, err error)\n\tApply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error)\n\tApplyStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error)\n\tNetworkPolicyExpansion\n}\n\n// networkPolicies implements NetworkPolicyInterface\ntype networkPolicies struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newNetworkPolicies returns a NetworkPolicies\nfunc newNetworkPolicies(c *NetworkingV1Client, namespace string) *networkPolicies {\n\treturn &networkPolicies{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any.\nfunc (c *networkPolicies) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.NetworkPolicy, err error) {\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors.\nfunc (c *networkPolicies) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NetworkPolicyList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.NetworkPolicyList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested networkPolicies.\nfunc (c *networkPolicies) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a networkPolicy and creates it.  Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *networkPolicies) Create(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.CreateOptions) (result *v1.NetworkPolicy, err error) {\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any.\nfunc (c *networkPolicies) Update(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (result *v1.NetworkPolicy, err error) {\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(networkPolicy.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *networkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (result *v1.NetworkPolicy, err error) {\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(networkPolicy.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(networkPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.\nfunc (c *networkPolicies) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *networkPolicies) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched networkPolicy.\nfunc (c *networkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetworkPolicy, err error) {\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy.\nfunc (c *networkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *networkPolicies) ApplyStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) {\n\tif networkPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(networkPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := networkPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"networkPolicy.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.NetworkPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"networkpolicies\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterCIDRsGetter has a method to return a ClusterCIDRInterface.\n// A group's client should implement this interface.\ntype ClusterCIDRsGetter interface {\n\tClusterCIDRs() ClusterCIDRInterface\n}\n\n// ClusterCIDRInterface has methods to work with ClusterCIDR resources.\ntype ClusterCIDRInterface interface {\n\tCreate(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.CreateOptions) (*v1alpha1.ClusterCIDR, error)\n\tUpdate(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.UpdateOptions) (*v1alpha1.ClusterCIDR, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterCIDR, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterCIDRList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDR, err error)\n\tApply(ctx context.Context, clusterCIDR *networkingv1alpha1.ClusterCIDRApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDR, err error)\n\tClusterCIDRExpansion\n}\n\n// clusterCIDRs implements ClusterCIDRInterface\ntype clusterCIDRs struct {\n\tclient rest.Interface\n}\n\n// newClusterCIDRs returns a ClusterCIDRs\nfunc newClusterCIDRs(c *NetworkingV1alpha1Client) *clusterCIDRs {\n\treturn &clusterCIDRs{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterCIDR, and returns the corresponding clusterCIDR object, and an error if there is any.\nfunc (c *clusterCIDRs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tresult = &v1alpha1.ClusterCIDR{}\n\terr = c.client.Get().\n\t\tResource(\"clustercidrs\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterCIDRs that match those selectors.\nfunc (c *clusterCIDRs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterCIDRList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ClusterCIDRList{}\n\terr = c.client.Get().\n\t\tResource(\"clustercidrs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterCIDRs.\nfunc (c *clusterCIDRs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clustercidrs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterCIDR and creates it.  Returns the server's representation of the clusterCIDR, and an error, if there is any.\nfunc (c *clusterCIDRs) Create(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.CreateOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tresult = &v1alpha1.ClusterCIDR{}\n\terr = c.client.Post().\n\t\tResource(\"clustercidrs\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterCIDR).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterCIDR and updates it. Returns the server's representation of the clusterCIDR, and an error, if there is any.\nfunc (c *clusterCIDRs) Update(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.UpdateOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tresult = &v1alpha1.ClusterCIDR{}\n\terr = c.client.Put().\n\t\tResource(\"clustercidrs\").\n\t\tName(clusterCIDR.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterCIDR).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterCIDR and deletes it. Returns an error if one occurs.\nfunc (c *clusterCIDRs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clustercidrs\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterCIDRs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clustercidrs\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterCIDR.\nfunc (c *clusterCIDRs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDR, err error) {\n\tresult = &v1alpha1.ClusterCIDR{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clustercidrs\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterCIDR.\nfunc (c *clusterCIDRs) Apply(ctx context.Context, clusterCIDR *networkingv1alpha1.ClusterCIDRApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tif clusterCIDR == nil {\n\t\treturn nil, fmt.Errorf(\"clusterCIDR provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterCIDR)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterCIDR.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterCIDR.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ClusterCIDR{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clustercidrs\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterCIDRs implements ClusterCIDRInterface\ntype FakeClusterCIDRs struct {\n\tFake *FakeNetworkingV1alpha1\n}\n\nvar clustercidrsResource = v1alpha1.SchemeGroupVersion.WithResource(\"clustercidrs\")\n\nvar clustercidrsKind = v1alpha1.SchemeGroupVersion.WithKind(\"ClusterCIDR\")\n\n// Get takes name of the clusterCIDR, and returns the corresponding clusterCIDR object, and an error if there is any.\nfunc (c *FakeClusterCIDRs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clustercidrsResource, name), &v1alpha1.ClusterCIDR{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterCIDR), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterCIDRs that match those selectors.\nfunc (c *FakeClusterCIDRs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterCIDRList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clustercidrsResource, clustercidrsKind, opts), &v1alpha1.ClusterCIDRList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ClusterCIDRList{ListMeta: obj.(*v1alpha1.ClusterCIDRList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ClusterCIDRList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterCIDRs.\nfunc (c *FakeClusterCIDRs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clustercidrsResource, opts))\n}\n\n// Create takes the representation of a clusterCIDR and creates it.  Returns the server's representation of the clusterCIDR, and an error, if there is any.\nfunc (c *FakeClusterCIDRs) Create(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.CreateOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clustercidrsResource, clusterCIDR), &v1alpha1.ClusterCIDR{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterCIDR), err\n}\n\n// Update takes the representation of a clusterCIDR and updates it. Returns the server's representation of the clusterCIDR, and an error, if there is any.\nfunc (c *FakeClusterCIDRs) Update(ctx context.Context, clusterCIDR *v1alpha1.ClusterCIDR, opts v1.UpdateOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clustercidrsResource, clusterCIDR), &v1alpha1.ClusterCIDR{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterCIDR), err\n}\n\n// Delete takes name of the clusterCIDR and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterCIDRs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clustercidrsResource, name, opts), &v1alpha1.ClusterCIDR{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterCIDRs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clustercidrsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ClusterCIDRList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterCIDR.\nfunc (c *FakeClusterCIDRs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDR, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clustercidrsResource, name, pt, data, subresources...), &v1alpha1.ClusterCIDR{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterCIDR), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterCIDR.\nfunc (c *FakeClusterCIDRs) Apply(ctx context.Context, clusterCIDR *networkingv1alpha1.ClusterCIDRApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDR, err error) {\n\tif clusterCIDR == nil {\n\t\treturn nil, fmt.Errorf(\"clusterCIDR provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterCIDR)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterCIDR.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterCIDR.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clustercidrsResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterCIDR{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterCIDR), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIPAddresses implements IPAddressInterface\ntype FakeIPAddresses struct {\n\tFake *FakeNetworkingV1alpha1\n}\n\nvar ipaddressesResource = v1alpha1.SchemeGroupVersion.WithResource(\"ipaddresses\")\n\nvar ipaddressesKind = v1alpha1.SchemeGroupVersion.WithKind(\"IPAddress\")\n\n// Get takes name of the iPAddress, and returns the corresponding iPAddress object, and an error if there is any.\nfunc (c *FakeIPAddresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IPAddress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(ipaddressesResource, name), &v1alpha1.IPAddress{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.IPAddress), err\n}\n\n// List takes label and field selectors, and returns the list of IPAddresses that match those selectors.\nfunc (c *FakeIPAddresses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IPAddressList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(ipaddressesResource, ipaddressesKind, opts), &v1alpha1.IPAddressList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.IPAddressList{ListMeta: obj.(*v1alpha1.IPAddressList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.IPAddressList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested iPAddresses.\nfunc (c *FakeIPAddresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(ipaddressesResource, opts))\n}\n\n// Create takes the representation of a iPAddress and creates it.  Returns the server's representation of the iPAddress, and an error, if there is any.\nfunc (c *FakeIPAddresses) Create(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.CreateOptions) (result *v1alpha1.IPAddress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(ipaddressesResource, iPAddress), &v1alpha1.IPAddress{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.IPAddress), err\n}\n\n// Update takes the representation of a iPAddress and updates it. Returns the server's representation of the iPAddress, and an error, if there is any.\nfunc (c *FakeIPAddresses) Update(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.UpdateOptions) (result *v1alpha1.IPAddress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(ipaddressesResource, iPAddress), &v1alpha1.IPAddress{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.IPAddress), err\n}\n\n// Delete takes name of the iPAddress and deletes it. Returns an error if one occurs.\nfunc (c *FakeIPAddresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(ipaddressesResource, name, opts), &v1alpha1.IPAddress{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIPAddresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(ipaddressesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.IPAddressList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched iPAddress.\nfunc (c *FakeIPAddresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IPAddress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ipaddressesResource, name, pt, data, subresources...), &v1alpha1.IPAddress{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.IPAddress), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied iPAddress.\nfunc (c *FakeIPAddresses) Apply(ctx context.Context, iPAddress *networkingv1alpha1.IPAddressApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.IPAddress, err error) {\n\tif iPAddress == nil {\n\t\treturn nil, fmt.Errorf(\"iPAddress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(iPAddress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := iPAddress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"iPAddress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ipaddressesResource, *name, types.ApplyPatchType, data), &v1alpha1.IPAddress{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.IPAddress), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1alpha1) ClusterCIDRs() v1alpha1.ClusterCIDRInterface {\n\treturn &FakeClusterCIDRs{c}\n}\n\nfunc (c *FakeNetworkingV1alpha1) IPAddresses() v1alpha1.IPAddressInterface {\n\treturn &FakeIPAddresses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ClusterCIDRExpansion interface{}\n\ntype IPAddressExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IPAddressesGetter has a method to return a IPAddressInterface.\n// A group's client should implement this interface.\ntype IPAddressesGetter interface {\n\tIPAddresses() IPAddressInterface\n}\n\n// IPAddressInterface has methods to work with IPAddress resources.\ntype IPAddressInterface interface {\n\tCreate(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.CreateOptions) (*v1alpha1.IPAddress, error)\n\tUpdate(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.UpdateOptions) (*v1alpha1.IPAddress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.IPAddress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.IPAddressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IPAddress, err error)\n\tApply(ctx context.Context, iPAddress *networkingv1alpha1.IPAddressApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.IPAddress, err error)\n\tIPAddressExpansion\n}\n\n// iPAddresses implements IPAddressInterface\ntype iPAddresses struct {\n\tclient rest.Interface\n}\n\n// newIPAddresses returns a IPAddresses\nfunc newIPAddresses(c *NetworkingV1alpha1Client) *iPAddresses {\n\treturn &iPAddresses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the iPAddress, and returns the corresponding iPAddress object, and an error if there is any.\nfunc (c *iPAddresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IPAddress, err error) {\n\tresult = &v1alpha1.IPAddress{}\n\terr = c.client.Get().\n\t\tResource(\"ipaddresses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of IPAddresses that match those selectors.\nfunc (c *iPAddresses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IPAddressList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.IPAddressList{}\n\terr = c.client.Get().\n\t\tResource(\"ipaddresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested iPAddresses.\nfunc (c *iPAddresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"ipaddresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a iPAddress and creates it.  Returns the server's representation of the iPAddress, and an error, if there is any.\nfunc (c *iPAddresses) Create(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.CreateOptions) (result *v1alpha1.IPAddress, err error) {\n\tresult = &v1alpha1.IPAddress{}\n\terr = c.client.Post().\n\t\tResource(\"ipaddresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(iPAddress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a iPAddress and updates it. Returns the server's representation of the iPAddress, and an error, if there is any.\nfunc (c *iPAddresses) Update(ctx context.Context, iPAddress *v1alpha1.IPAddress, opts v1.UpdateOptions) (result *v1alpha1.IPAddress, err error) {\n\tresult = &v1alpha1.IPAddress{}\n\terr = c.client.Put().\n\t\tResource(\"ipaddresses\").\n\t\tName(iPAddress.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(iPAddress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the iPAddress and deletes it. Returns an error if one occurs.\nfunc (c *iPAddresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"ipaddresses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *iPAddresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"ipaddresses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched iPAddress.\nfunc (c *iPAddresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IPAddress, err error) {\n\tresult = &v1alpha1.IPAddress{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"ipaddresses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied iPAddress.\nfunc (c *iPAddresses) Apply(ctx context.Context, iPAddress *networkingv1alpha1.IPAddressApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.IPAddress, err error) {\n\tif iPAddress == nil {\n\t\treturn nil, fmt.Errorf(\"iPAddress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(iPAddress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := iPAddress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"iPAddress.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.IPAddress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"ipaddresses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterCIDRsGetter\n\tIPAddressesGetter\n}\n\n// NetworkingV1alpha1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1alpha1Client) ClusterCIDRs() ClusterCIDRInterface {\n\treturn newClusterCIDRs(c)\n}\n\nfunc (c *NetworkingV1alpha1Client) IPAddresses() IPAddressInterface {\n\treturn newIPAddresses(c)\n}\n\n// NewForConfig creates a new NetworkingV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1alpha1Client {\n\treturn &NetworkingV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIngresses implements IngressInterface\ntype FakeIngresses struct {\n\tFake *FakeNetworkingV1beta1\n\tns   string\n}\n\nvar ingressesResource = v1beta1.SchemeGroupVersion.WithResource(\"ingresses\")\n\nvar ingressesKind = v1beta1.SchemeGroupVersion.WithKind(\"Ingress\")\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *FakeIngresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(ingressesResource, c.ns, name), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *FakeIngresses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(ingressesResource, ingressesKind, c.ns, opts), &v1beta1.IngressList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.IngressList{ListMeta: obj.(*v1beta1.IngressList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.IngressList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *FakeIngresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(ingressesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Create(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *FakeIngresses) Update(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeIngresses) UpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(ingressesResource, \"status\", c.ns, ingress), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *FakeIngresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(ingressesResource, c.ns, name, opts), &v1beta1.Ingress{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIngresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(ingressesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.IngressList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, pt, data, subresources...), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *FakeIngresses) Apply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.Ingress{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Ingress), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeIngressClasses implements IngressClassInterface\ntype FakeIngressClasses struct {\n\tFake *FakeNetworkingV1beta1\n}\n\nvar ingressclassesResource = v1beta1.SchemeGroupVersion.WithResource(\"ingressclasses\")\n\nvar ingressclassesKind = v1beta1.SchemeGroupVersion.WithKind(\"IngressClass\")\n\n// Get takes name of the ingressClass, and returns the corresponding ingressClass object, and an error if there is any.\nfunc (c *FakeIngressClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(ingressclassesResource, name), &v1beta1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.IngressClass), err\n}\n\n// List takes label and field selectors, and returns the list of IngressClasses that match those selectors.\nfunc (c *FakeIngressClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(ingressclassesResource, ingressclassesKind, opts), &v1beta1.IngressClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.IngressClassList{ListMeta: obj.(*v1beta1.IngressClassList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.IngressClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested ingressClasses.\nfunc (c *FakeIngressClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(ingressclassesResource, opts))\n}\n\n// Create takes the representation of a ingressClass and creates it.  Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *FakeIngressClasses) Create(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.CreateOptions) (result *v1beta1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(ingressclassesResource, ingressClass), &v1beta1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.IngressClass), err\n}\n\n// Update takes the representation of a ingressClass and updates it. Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *FakeIngressClasses) Update(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.UpdateOptions) (result *v1beta1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(ingressclassesResource, ingressClass), &v1beta1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.IngressClass), err\n}\n\n// Delete takes name of the ingressClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeIngressClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(ingressclassesResource, name, opts), &v1beta1.IngressClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeIngressClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(ingressclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.IngressClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched ingressClass.\nfunc (c *FakeIngressClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.IngressClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, name, pt, data, subresources...), &v1beta1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.IngressClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass.\nfunc (c *FakeIngressClasses) Apply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error) {\n\tif ingressClass == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(ingressClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingressClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, *name, types.ApplyPatchType, data), &v1beta1.IngressClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.IngressClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1beta1) Ingresses(namespace string) v1beta1.IngressInterface {\n\treturn &FakeIngresses{c, namespace}\n}\n\nfunc (c *FakeNetworkingV1beta1) IngressClasses() v1beta1.IngressClassInterface {\n\treturn &FakeIngressClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype IngressExpansion interface{}\n\ntype IngressClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (*v1beta1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error)\n\tUpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (*v1beta1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Ingress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error)\n\tApply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error)\n\tApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *NetworkingV1beta1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any.\nfunc (c *ingresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Ingresses that match those selectors.\nfunc (c *ingresses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.IngressList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested ingresses.\nfunc (c *ingresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a ingress and creates it.  Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Create(ctx context.Context, ingress *v1beta1.Ingress, opts v1.CreateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any.\nfunc (c *ingresses) Update(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *ingresses) UpdateStatus(ctx context.Context, ingress *v1beta1.Ingress, opts v1.UpdateOptions) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(ingress.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingress).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the ingress and deletes it. Returns an error if one occurs.\nfunc (c *ingresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *ingresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched ingress.\nfunc (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) {\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingress.\nfunc (c *ingresses) Apply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *ingresses) ApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) {\n\tif ingress == nil {\n\t\treturn nil, fmt.Errorf(\"ingress provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := ingress.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingress.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.Ingress{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"ingresses\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// IngressClassesGetter has a method to return a IngressClassInterface.\n// A group's client should implement this interface.\ntype IngressClassesGetter interface {\n\tIngressClasses() IngressClassInterface\n}\n\n// IngressClassInterface has methods to work with IngressClass resources.\ntype IngressClassInterface interface {\n\tCreate(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.CreateOptions) (*v1beta1.IngressClass, error)\n\tUpdate(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.UpdateOptions) (*v1beta1.IngressClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.IngressClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.IngressClass, err error)\n\tApply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error)\n\tIngressClassExpansion\n}\n\n// ingressClasses implements IngressClassInterface\ntype ingressClasses struct {\n\tclient rest.Interface\n}\n\n// newIngressClasses returns a IngressClasses\nfunc newIngressClasses(c *NetworkingV1beta1Client) *ingressClasses {\n\treturn &ingressClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the ingressClass, and returns the corresponding ingressClass object, and an error if there is any.\nfunc (c *ingressClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.IngressClass, err error) {\n\tresult = &v1beta1.IngressClass{}\n\terr = c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of IngressClasses that match those selectors.\nfunc (c *ingressClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.IngressClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.IngressClassList{}\n\terr = c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested ingressClasses.\nfunc (c *ingressClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a ingressClass and creates it.  Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *ingressClasses) Create(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.CreateOptions) (result *v1beta1.IngressClass, err error) {\n\tresult = &v1beta1.IngressClass{}\n\terr = c.client.Post().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingressClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a ingressClass and updates it. Returns the server's representation of the ingressClass, and an error, if there is any.\nfunc (c *ingressClasses) Update(ctx context.Context, ingressClass *v1beta1.IngressClass, opts v1.UpdateOptions) (result *v1beta1.IngressClass, err error) {\n\tresult = &v1beta1.IngressClass{}\n\terr = c.client.Put().\n\t\tResource(\"ingressclasses\").\n\t\tName(ingressClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(ingressClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the ingressClass and deletes it. Returns an error if one occurs.\nfunc (c *ingressClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *ingressClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"ingressclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched ingressClass.\nfunc (c *ingressClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.IngressClass, err error) {\n\tresult = &v1beta1.IngressClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"ingressclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass.\nfunc (c *ingressClasses) Apply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error) {\n\tif ingressClass == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(ingressClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := ingressClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"ingressClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.IngressClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"ingressclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tIngressesGetter\n\tIngressClassesGetter\n}\n\n// NetworkingV1beta1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1beta1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *NetworkingV1beta1Client) IngressClasses() IngressClassInterface {\n\treturn newIngressClasses(c)\n}\n\n// NewForConfig creates a new NetworkingV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1beta1Client {\n\treturn &NetworkingV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1) RuntimeClasses() v1.RuntimeClassInterface {\n\treturn &FakeRuntimeClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/node/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1 \"k8s.io/client-go/applyconfigurations/node/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRuntimeClasses implements RuntimeClassInterface\ntype FakeRuntimeClasses struct {\n\tFake *FakeNodeV1\n}\n\nvar runtimeclassesResource = v1.SchemeGroupVersion.WithResource(\"runtimeclasses\")\n\nvar runtimeclassesKind = v1.SchemeGroupVersion.WithKind(\"RuntimeClass\")\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *FakeRuntimeClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(runtimeclassesResource, name), &v1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RuntimeClass), err\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *FakeRuntimeClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RuntimeClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(runtimeclassesResource, runtimeclassesKind, opts), &v1.RuntimeClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.RuntimeClassList{ListMeta: obj.(*v1.RuntimeClassList).ListMeta}\n\tfor _, item := range obj.(*v1.RuntimeClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *FakeRuntimeClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(runtimeclassesResource, opts))\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Create(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.CreateOptions) (result *v1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(runtimeclassesResource, runtimeClass), &v1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RuntimeClass), err\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Update(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.UpdateOptions) (result *v1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(runtimeclassesResource, runtimeClass), &v1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RuntimeClass), err\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeRuntimeClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(runtimeclassesResource, name, opts), &v1.RuntimeClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRuntimeClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(runtimeclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.RuntimeClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, name, pt, data, subresources...), &v1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RuntimeClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *nodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &v1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RuntimeClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/node/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1Client {\n\treturn &NodeV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/node/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1 \"k8s.io/client-go/applyconfigurations/node/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.CreateOptions) (*v1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.UpdateOptions) (*v1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.RuntimeClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *nodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\tclient rest.Interface\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *runtimeClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RuntimeClass, err error) {\n\tresult = &v1.RuntimeClass{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *runtimeClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RuntimeClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.RuntimeClassList{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *runtimeClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Create(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.CreateOptions) (result *v1.RuntimeClass, err error) {\n\tresult = &v1.RuntimeClass{}\n\terr = c.client.Post().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Update(ctx context.Context, runtimeClass *v1.RuntimeClass, opts metav1.UpdateOptions) (result *v1.RuntimeClass, err error) {\n\tresult = &v1.RuntimeClass{}\n\terr = c.client.Put().\n\t\tResource(\"runtimeclasses\").\n\t\tName(runtimeClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *runtimeClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *runtimeClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RuntimeClass, err error) {\n\tresult = &v1.RuntimeClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1.RuntimeClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"runtimeclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1alpha1) RuntimeClasses() v1alpha1.RuntimeClassInterface {\n\treturn &FakeRuntimeClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1alpha1 \"k8s.io/client-go/applyconfigurations/node/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRuntimeClasses implements RuntimeClassInterface\ntype FakeRuntimeClasses struct {\n\tFake *FakeNodeV1alpha1\n}\n\nvar runtimeclassesResource = v1alpha1.SchemeGroupVersion.WithResource(\"runtimeclasses\")\n\nvar runtimeclassesKind = v1alpha1.SchemeGroupVersion.WithKind(\"RuntimeClass\")\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *FakeRuntimeClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(runtimeclassesResource, name), &v1alpha1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RuntimeClass), err\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *FakeRuntimeClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RuntimeClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(runtimeclassesResource, runtimeclassesKind, opts), &v1alpha1.RuntimeClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.RuntimeClassList{ListMeta: obj.(*v1alpha1.RuntimeClassList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.RuntimeClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *FakeRuntimeClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(runtimeclassesResource, opts))\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Create(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.CreateOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(runtimeclassesResource, runtimeClass), &v1alpha1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RuntimeClass), err\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Update(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.UpdateOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(runtimeclassesResource, runtimeClass), &v1alpha1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RuntimeClass), err\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeRuntimeClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(runtimeclassesResource, name, opts), &v1alpha1.RuntimeClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRuntimeClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(runtimeclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.RuntimeClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, name, pt, data, subresources...), &v1alpha1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RuntimeClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &v1alpha1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RuntimeClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/node/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1alpha1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1alpha1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1alpha1Client {\n\treturn &NodeV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1alpha1 \"k8s.io/client-go/applyconfigurations/node/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.CreateOptions) (*v1alpha1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.UpdateOptions) (*v1alpha1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.RuntimeClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\tclient rest.Interface\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1alpha1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *runtimeClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tresult = &v1alpha1.RuntimeClass{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *runtimeClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RuntimeClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.RuntimeClassList{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *runtimeClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Create(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.CreateOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tresult = &v1alpha1.RuntimeClass{}\n\terr = c.client.Post().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Update(ctx context.Context, runtimeClass *v1alpha1.RuntimeClass, opts v1.UpdateOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tresult = &v1alpha1.RuntimeClass{}\n\terr = c.client.Put().\n\t\tResource(\"runtimeclasses\").\n\t\tName(runtimeClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *runtimeClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *runtimeClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RuntimeClass, err error) {\n\tresult = &v1alpha1.RuntimeClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.RuntimeClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"runtimeclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1beta1) RuntimeClasses() v1beta1.RuntimeClassInterface {\n\treturn &FakeRuntimeClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/node/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1beta1 \"k8s.io/client-go/applyconfigurations/node/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRuntimeClasses implements RuntimeClassInterface\ntype FakeRuntimeClasses struct {\n\tFake *FakeNodeV1beta1\n}\n\nvar runtimeclassesResource = v1beta1.SchemeGroupVersion.WithResource(\"runtimeclasses\")\n\nvar runtimeclassesKind = v1beta1.SchemeGroupVersion.WithKind(\"RuntimeClass\")\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *FakeRuntimeClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(runtimeclassesResource, name), &v1beta1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RuntimeClass), err\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *FakeRuntimeClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RuntimeClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(runtimeclassesResource, runtimeclassesKind, opts), &v1beta1.RuntimeClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.RuntimeClassList{ListMeta: obj.(*v1beta1.RuntimeClassList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.RuntimeClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *FakeRuntimeClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(runtimeclassesResource, opts))\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Create(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.CreateOptions) (result *v1beta1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(runtimeclassesResource, runtimeClass), &v1beta1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RuntimeClass), err\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *FakeRuntimeClasses) Update(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.UpdateOptions) (result *v1beta1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(runtimeclassesResource, runtimeClass), &v1beta1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RuntimeClass), err\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeRuntimeClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(runtimeclassesResource, name, opts), &v1beta1.RuntimeClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRuntimeClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(runtimeclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.RuntimeClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RuntimeClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, name, pt, data, subresources...), &v1beta1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RuntimeClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &v1beta1.RuntimeClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RuntimeClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/node/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1beta1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1beta1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1beta1Client {\n\treturn &NodeV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/node/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tnodev1beta1 \"k8s.io/client-go/applyconfigurations/node/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.CreateOptions) (*v1beta1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.UpdateOptions) (*v1beta1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.RuntimeClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\tclient rest.Interface\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1beta1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the runtimeClass, and returns the corresponding runtimeClass object, and an error if there is any.\nfunc (c *runtimeClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.RuntimeClass, err error) {\n\tresult = &v1beta1.RuntimeClass{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RuntimeClasses that match those selectors.\nfunc (c *runtimeClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RuntimeClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.RuntimeClassList{}\n\terr = c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested runtimeClasses.\nfunc (c *runtimeClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a runtimeClass and creates it.  Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Create(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.CreateOptions) (result *v1beta1.RuntimeClass, err error) {\n\tresult = &v1beta1.RuntimeClass{}\n\terr = c.client.Post().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a runtimeClass and updates it. Returns the server's representation of the runtimeClass, and an error, if there is any.\nfunc (c *runtimeClasses) Update(ctx context.Context, runtimeClass *v1beta1.RuntimeClass, opts v1.UpdateOptions) (result *v1beta1.RuntimeClass, err error) {\n\tresult = &v1beta1.RuntimeClass{}\n\terr = c.client.Put().\n\t\tResource(\"runtimeclasses\").\n\t\tName(runtimeClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(runtimeClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the runtimeClass and deletes it. Returns an error if one occurs.\nfunc (c *runtimeClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *runtimeClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"runtimeclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched runtimeClass.\nfunc (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RuntimeClass, err error) {\n\tresult = &v1beta1.RuntimeClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"runtimeclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass.\nfunc (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error) {\n\tif runtimeClass == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(runtimeClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := runtimeClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"runtimeClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.RuntimeClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"runtimeclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EvictionsGetter has a method to return a EvictionInterface.\n// A group's client should implement this interface.\ntype EvictionsGetter interface {\n\tEvictions(namespace string) EvictionInterface\n}\n\n// EvictionInterface has methods to work with Eviction resources.\ntype EvictionInterface interface {\n\tEvictionExpansion\n}\n\n// evictions implements EvictionInterface\ntype evictions struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEvictions returns a Evictions\nfunc newEvictions(c *PolicyV1Client, namespace string) *evictions {\n\treturn &evictions{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/eviction_expansion.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1\"\n)\n\n// The EvictionExpansion interface allows manually adding extra methods to the ScaleInterface.\ntype EvictionExpansion interface {\n\tEvict(ctx context.Context, eviction *policy.Eviction) error\n}\n\nfunc (c *evictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\treturn c.client.Post().\n\t\tAbsPath(\"/api/v1\").\n\t\tNamespace(eviction.Namespace).\n\t\tResource(\"pods\").\n\t\tName(eviction.Name).\n\t\tSubResource(\"eviction\").\n\t\tBody(eviction).\n\t\tDo(ctx).\n\t\tError()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\n// FakeEvictions implements EvictionInterface\ntype FakeEvictions struct {\n\tFake *FakePolicyV1\n\tns   string\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_eviction_expansion.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeEvictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.ns\n\taction.Resource = schema.GroupVersionResource{Group: \"\", Version: \"v1\", Resource: \"pods\"}\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1 \"k8s.io/client-go/applyconfigurations/policy/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePodDisruptionBudgets implements PodDisruptionBudgetInterface\ntype FakePodDisruptionBudgets struct {\n\tFake *FakePolicyV1\n\tns   string\n}\n\nvar poddisruptionbudgetsResource = v1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\")\n\nvar poddisruptionbudgetsKind = v1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\")\n\n// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any.\nfunc (c *FakePodDisruptionBudgets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(poddisruptionbudgetsResource, c.ns, name), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors.\nfunc (c *FakePodDisruptionBudgets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodDisruptionBudgetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(poddisruptionbudgetsResource, poddisruptionbudgetsKind, c.ns, opts), &v1.PodDisruptionBudgetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PodDisruptionBudgetList{ListMeta: obj.(*v1.PodDisruptionBudgetList).ListMeta}\n\tfor _, item := range obj.(*v1.PodDisruptionBudgetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested podDisruptionBudgets.\nfunc (c *FakePodDisruptionBudgets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(poddisruptionbudgetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a podDisruptionBudget and creates it.  Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *FakePodDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.CreateOptions) (result *v1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *FakePodDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (result *v1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePodDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (*v1.PodDisruptionBudget, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(poddisruptionbudgetsResource, \"status\", c.ns, podDisruptionBudget), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs.\nfunc (c *FakePodDisruptionBudgets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(poddisruptionbudgetsResource, c.ns, name, opts), &v1.PodDisruptionBudget{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePodDisruptionBudgets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(poddisruptionbudgetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PodDisruptionBudgetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched podDisruptionBudget.\nfunc (c *FakePodDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, name, pt, data, subresources...), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget.\nfunc (c *FakePodDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePodDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PodDisruptionBudget), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakePolicyV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakePolicyV1) Evictions(namespace string) v1.EvictionInterface {\n\treturn &FakeEvictions{c, namespace}\n}\n\nfunc (c *FakePolicyV1) PodDisruptionBudgets(namespace string) v1.PodDisruptionBudgetInterface {\n\treturn &FakePodDisruptionBudgets{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakePolicyV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype PodDisruptionBudgetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1 \"k8s.io/client-go/applyconfigurations/policy/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodDisruptionBudgetsGetter has a method to return a PodDisruptionBudgetInterface.\n// A group's client should implement this interface.\ntype PodDisruptionBudgetsGetter interface {\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface\n}\n\n// PodDisruptionBudgetInterface has methods to work with PodDisruptionBudget resources.\ntype PodDisruptionBudgetInterface interface {\n\tCreate(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.CreateOptions) (*v1.PodDisruptionBudget, error)\n\tUpdate(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (*v1.PodDisruptionBudget, error)\n\tUpdateStatus(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (*v1.PodDisruptionBudget, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PodDisruptionBudget, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PodDisruptionBudgetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodDisruptionBudget, err error)\n\tApply(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error)\n\tApplyStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error)\n\tPodDisruptionBudgetExpansion\n}\n\n// podDisruptionBudgets implements PodDisruptionBudgetInterface\ntype podDisruptionBudgets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPodDisruptionBudgets returns a PodDisruptionBudgets\nfunc newPodDisruptionBudgets(c *PolicyV1Client, namespace string) *podDisruptionBudgets {\n\treturn &podDisruptionBudgets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any.\nfunc (c *podDisruptionBudgets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PodDisruptionBudget, err error) {\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors.\nfunc (c *podDisruptionBudgets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodDisruptionBudgetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PodDisruptionBudgetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested podDisruptionBudgets.\nfunc (c *podDisruptionBudgets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a podDisruptionBudget and creates it.  Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *podDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.CreateOptions) (result *v1.PodDisruptionBudget, err error) {\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *podDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (result *v1.PodDisruptionBudget, err error) {\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(podDisruptionBudget.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *podDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (result *v1.PodDisruptionBudget, err error) {\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(podDisruptionBudget.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs.\nfunc (c *podDisruptionBudgets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *podDisruptionBudgets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched podDisruptionBudget.\nfunc (c *podDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodDisruptionBudget, err error) {\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget.\nfunc (c *podDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *podDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.PodDisruptionBudget{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/policy/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype PolicyV1Interface interface {\n\tRESTClient() rest.Interface\n\tEvictionsGetter\n\tPodDisruptionBudgetsGetter\n}\n\n// PolicyV1Client is used to interact with features provided by the policy group.\ntype PolicyV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *PolicyV1Client) Evictions(namespace string) EvictionInterface {\n\treturn newEvictions(c, namespace)\n}\n\nfunc (c *PolicyV1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {\n\treturn newPodDisruptionBudgets(c, namespace)\n}\n\n// NewForConfig creates a new PolicyV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*PolicyV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new PolicyV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*PolicyV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &PolicyV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new PolicyV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *PolicyV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new PolicyV1Client for the given RESTClient.\nfunc New(c rest.Interface) *PolicyV1Client {\n\treturn &PolicyV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *PolicyV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trest \"k8s.io/client-go/rest\"\n)\n\n// EvictionsGetter has a method to return a EvictionInterface.\n// A group's client should implement this interface.\ntype EvictionsGetter interface {\n\tEvictions(namespace string) EvictionInterface\n}\n\n// EvictionInterface has methods to work with Eviction resources.\ntype EvictionInterface interface {\n\tEvictionExpansion\n}\n\n// evictions implements EvictionInterface\ntype evictions struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newEvictions returns a Evictions\nfunc newEvictions(c *PolicyV1beta1Client, namespace string) *evictions {\n\treturn &evictions{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1beta1\"\n)\n\n// The EvictionExpansion interface allows manually adding extra methods to the ScaleInterface.\ntype EvictionExpansion interface {\n\tEvict(ctx context.Context, eviction *policy.Eviction) error\n}\n\nfunc (c *evictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\treturn c.client.Post().\n\t\tAbsPath(\"/api/v1\").\n\t\tNamespace(eviction.Namespace).\n\t\tResource(\"pods\").\n\t\tName(eviction.Name).\n\t\tSubResource(\"eviction\").\n\t\tBody(eviction).\n\t\tDo(ctx).\n\t\tError()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\n// FakeEvictions implements EvictionInterface\ntype FakeEvictions struct {\n\tFake *FakePolicyV1beta1\n\tns   string\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1beta1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *FakeEvictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.ns\n\taction.Resource = schema.GroupVersionResource{Group: \"\", Version: \"v1\", Resource: \"pods\"}\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePodDisruptionBudgets implements PodDisruptionBudgetInterface\ntype FakePodDisruptionBudgets struct {\n\tFake *FakePolicyV1beta1\n\tns   string\n}\n\nvar poddisruptionbudgetsResource = v1beta1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\")\n\nvar poddisruptionbudgetsKind = v1beta1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\")\n\n// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any.\nfunc (c *FakePodDisruptionBudgets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(poddisruptionbudgetsResource, c.ns, name), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors.\nfunc (c *FakePodDisruptionBudgets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PodDisruptionBudgetList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(poddisruptionbudgetsResource, poddisruptionbudgetsKind, c.ns, opts), &v1beta1.PodDisruptionBudgetList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.PodDisruptionBudgetList{ListMeta: obj.(*v1beta1.PodDisruptionBudgetList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.PodDisruptionBudgetList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested podDisruptionBudgets.\nfunc (c *FakePodDisruptionBudgets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(poddisruptionbudgetsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a podDisruptionBudget and creates it.  Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *FakePodDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.CreateOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *FakePodDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePodDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (*v1beta1.PodDisruptionBudget, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(poddisruptionbudgetsResource, \"status\", c.ns, podDisruptionBudget), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs.\nfunc (c *FakePodDisruptionBudgets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(poddisruptionbudgetsResource, c.ns, name, opts), &v1beta1.PodDisruptionBudget{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePodDisruptionBudgets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(poddisruptionbudgetsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.PodDisruptionBudgetList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched podDisruptionBudget.\nfunc (c *FakePodDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodDisruptionBudget, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, name, pt, data, subresources...), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget.\nfunc (c *FakePodDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePodDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.PodDisruptionBudget{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodDisruptionBudget), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePodSecurityPolicies implements PodSecurityPolicyInterface\ntype FakePodSecurityPolicies struct {\n\tFake *FakePolicyV1beta1\n}\n\nvar podsecuritypoliciesResource = v1beta1.SchemeGroupVersion.WithResource(\"podsecuritypolicies\")\n\nvar podsecuritypoliciesKind = v1beta1.SchemeGroupVersion.WithKind(\"PodSecurityPolicy\")\n\n// Get takes name of the podSecurityPolicy, and returns the corresponding podSecurityPolicy object, and an error if there is any.\nfunc (c *FakePodSecurityPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(podsecuritypoliciesResource, name), &v1beta1.PodSecurityPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodSecurityPolicy), err\n}\n\n// List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors.\nfunc (c *FakePodSecurityPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(podsecuritypoliciesResource, podsecuritypoliciesKind, opts), &v1beta1.PodSecurityPolicyList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.PodSecurityPolicyList{ListMeta: obj.(*v1beta1.PodSecurityPolicyList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.PodSecurityPolicyList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested podSecurityPolicies.\nfunc (c *FakePodSecurityPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(podsecuritypoliciesResource, opts))\n}\n\n// Create takes the representation of a podSecurityPolicy and creates it.  Returns the server's representation of the podSecurityPolicy, and an error, if there is any.\nfunc (c *FakePodSecurityPolicies) Create(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.CreateOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(podsecuritypoliciesResource, podSecurityPolicy), &v1beta1.PodSecurityPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodSecurityPolicy), err\n}\n\n// Update takes the representation of a podSecurityPolicy and updates it. Returns the server's representation of the podSecurityPolicy, and an error, if there is any.\nfunc (c *FakePodSecurityPolicies) Update(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.UpdateOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(podsecuritypoliciesResource, podSecurityPolicy), &v1beta1.PodSecurityPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodSecurityPolicy), err\n}\n\n// Delete takes name of the podSecurityPolicy and deletes it. Returns an error if one occurs.\nfunc (c *FakePodSecurityPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(podsecuritypoliciesResource, name, opts), &v1beta1.PodSecurityPolicy{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePodSecurityPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(podsecuritypoliciesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.PodSecurityPolicyList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched podSecurityPolicy.\nfunc (c *FakePodSecurityPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, name, pt, data, subresources...), &v1beta1.PodSecurityPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodSecurityPolicy), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy.\nfunc (c *FakePodSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tif podSecurityPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"podSecurityPolicy provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podSecurityPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podSecurityPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSecurityPolicy.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, *name, types.ApplyPatchType, data), &v1beta1.PodSecurityPolicy{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PodSecurityPolicy), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakePolicyV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakePolicyV1beta1) Evictions(namespace string) v1beta1.EvictionInterface {\n\treturn &FakeEvictions{c, namespace}\n}\n\nfunc (c *FakePolicyV1beta1) PodDisruptionBudgets(namespace string) v1beta1.PodDisruptionBudgetInterface {\n\treturn &FakePodDisruptionBudgets{c, namespace}\n}\n\nfunc (c *FakePolicyV1beta1) PodSecurityPolicies() v1beta1.PodSecurityPolicyInterface {\n\treturn &FakePodSecurityPolicies{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakePolicyV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype PodDisruptionBudgetExpansion interface{}\n\ntype PodSecurityPolicyExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodDisruptionBudgetsGetter has a method to return a PodDisruptionBudgetInterface.\n// A group's client should implement this interface.\ntype PodDisruptionBudgetsGetter interface {\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface\n}\n\n// PodDisruptionBudgetInterface has methods to work with PodDisruptionBudget resources.\ntype PodDisruptionBudgetInterface interface {\n\tCreate(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.CreateOptions) (*v1beta1.PodDisruptionBudget, error)\n\tUpdate(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (*v1beta1.PodDisruptionBudget, error)\n\tUpdateStatus(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (*v1beta1.PodDisruptionBudget, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.PodDisruptionBudget, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.PodDisruptionBudgetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodDisruptionBudget, err error)\n\tApply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error)\n\tApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error)\n\tPodDisruptionBudgetExpansion\n}\n\n// podDisruptionBudgets implements PodDisruptionBudgetInterface\ntype podDisruptionBudgets struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPodDisruptionBudgets returns a PodDisruptionBudgets\nfunc newPodDisruptionBudgets(c *PolicyV1beta1Client, namespace string) *podDisruptionBudgets {\n\treturn &podDisruptionBudgets{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any.\nfunc (c *podDisruptionBudgets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors.\nfunc (c *podDisruptionBudgets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PodDisruptionBudgetList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.PodDisruptionBudgetList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested podDisruptionBudgets.\nfunc (c *podDisruptionBudgets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a podDisruptionBudget and creates it.  Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *podDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.CreateOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any.\nfunc (c *podDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(podDisruptionBudget.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *podDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *v1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(podDisruptionBudget.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podDisruptionBudget).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs.\nfunc (c *podDisruptionBudgets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *podDisruptionBudgets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched podDisruptionBudget.\nfunc (c *podDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodDisruptionBudget, err error) {\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget.\nfunc (c *podDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *podDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) {\n\tif podDisruptionBudget == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podDisruptionBudget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := podDisruptionBudget.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podDisruptionBudget.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.PodDisruptionBudget{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"poddisruptionbudgets\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tpolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodSecurityPoliciesGetter has a method to return a PodSecurityPolicyInterface.\n// A group's client should implement this interface.\ntype PodSecurityPoliciesGetter interface {\n\tPodSecurityPolicies() PodSecurityPolicyInterface\n}\n\n// PodSecurityPolicyInterface has methods to work with PodSecurityPolicy resources.\ntype PodSecurityPolicyInterface interface {\n\tCreate(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.CreateOptions) (*v1beta1.PodSecurityPolicy, error)\n\tUpdate(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.UpdateOptions) (*v1beta1.PodSecurityPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.PodSecurityPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.PodSecurityPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error)\n\tApply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error)\n\tPodSecurityPolicyExpansion\n}\n\n// podSecurityPolicies implements PodSecurityPolicyInterface\ntype podSecurityPolicies struct {\n\tclient rest.Interface\n}\n\n// newPodSecurityPolicies returns a PodSecurityPolicies\nfunc newPodSecurityPolicies(c *PolicyV1beta1Client) *podSecurityPolicies {\n\treturn &podSecurityPolicies{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the podSecurityPolicy, and returns the corresponding podSecurityPolicy object, and an error if there is any.\nfunc (c *podSecurityPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tresult = &v1beta1.PodSecurityPolicy{}\n\terr = c.client.Get().\n\t\tResource(\"podsecuritypolicies\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors.\nfunc (c *podSecurityPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.PodSecurityPolicyList{}\n\terr = c.client.Get().\n\t\tResource(\"podsecuritypolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested podSecurityPolicies.\nfunc (c *podSecurityPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"podsecuritypolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a podSecurityPolicy and creates it.  Returns the server's representation of the podSecurityPolicy, and an error, if there is any.\nfunc (c *podSecurityPolicies) Create(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.CreateOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tresult = &v1beta1.PodSecurityPolicy{}\n\terr = c.client.Post().\n\t\tResource(\"podsecuritypolicies\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podSecurityPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a podSecurityPolicy and updates it. Returns the server's representation of the podSecurityPolicy, and an error, if there is any.\nfunc (c *podSecurityPolicies) Update(ctx context.Context, podSecurityPolicy *v1beta1.PodSecurityPolicy, opts v1.UpdateOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tresult = &v1beta1.PodSecurityPolicy{}\n\terr = c.client.Put().\n\t\tResource(\"podsecuritypolicies\").\n\t\tName(podSecurityPolicy.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podSecurityPolicy).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the podSecurityPolicy and deletes it. Returns an error if one occurs.\nfunc (c *podSecurityPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"podsecuritypolicies\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *podSecurityPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"podsecuritypolicies\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched podSecurityPolicy.\nfunc (c *podSecurityPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) {\n\tresult = &v1beta1.PodSecurityPolicy{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"podsecuritypolicies\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy.\nfunc (c *podSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) {\n\tif podSecurityPolicy == nil {\n\t\treturn nil, fmt.Errorf(\"podSecurityPolicy provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podSecurityPolicy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podSecurityPolicy.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSecurityPolicy.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.PodSecurityPolicy{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"podsecuritypolicies\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype PolicyV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEvictionsGetter\n\tPodDisruptionBudgetsGetter\n\tPodSecurityPoliciesGetter\n}\n\n// PolicyV1beta1Client is used to interact with features provided by the policy group.\ntype PolicyV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *PolicyV1beta1Client) Evictions(namespace string) EvictionInterface {\n\treturn newEvictions(c, namespace)\n}\n\nfunc (c *PolicyV1beta1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {\n\treturn newPodDisruptionBudgets(c, namespace)\n}\n\nfunc (c *PolicyV1beta1Client) PodSecurityPolicies() PodSecurityPolicyInterface {\n\treturn newPodSecurityPolicies(c)\n}\n\n// NewForConfig creates a new PolicyV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*PolicyV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new PolicyV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*PolicyV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &PolicyV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new PolicyV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *PolicyV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new PolicyV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *PolicyV1beta1Client {\n\treturn &PolicyV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *PolicyV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.CreateOptions) (*v1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.UpdateOptions) (*v1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterRole, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *rbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\tclient rest.Interface\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *clusterRoles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRole, err error) {\n\tresult = &v1.ClusterRole{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *clusterRoles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ClusterRoleList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *clusterRoles) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Create(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.CreateOptions) (result *v1.ClusterRole, err error) {\n\tresult = &v1.ClusterRole{}\n\terr = c.client.Post().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Update(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.UpdateOptions) (result *v1.ClusterRole, err error) {\n\tresult = &v1.ClusterRole{}\n\terr = c.client.Put().\n\t\tResource(\"clusterroles\").\n\t\tName(clusterRole.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error) {\n\tresult = &v1.ClusterRole{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ClusterRole{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterroles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.CreateOptions) (*v1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.UpdateOptions) (*v1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\tclient rest.Interface\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *clusterRoleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRoleBinding, err error) {\n\tresult = &v1.ClusterRoleBinding{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *clusterRoleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.ClusterRoleBindingList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *clusterRoleBindings) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.CreateOptions) (result *v1.ClusterRoleBinding, err error) {\n\tresult = &v1.ClusterRoleBinding{}\n\terr = c.client.Post().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.UpdateOptions) (result *v1.ClusterRoleBinding, err error) {\n\tresult = &v1.ClusterRoleBinding{}\n\terr = c.client.Put().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(clusterRoleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error) {\n\tresult = &v1.ClusterRoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1.ClusterRoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoles implements ClusterRoleInterface\ntype FakeClusterRoles struct {\n\tFake *FakeRbacV1\n}\n\nvar clusterrolesResource = v1.SchemeGroupVersion.WithResource(\"clusterroles\")\n\nvar clusterrolesKind = v1.SchemeGroupVersion.WithKind(\"ClusterRole\")\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *FakeClusterRoles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolesResource, name), &v1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRole), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *FakeClusterRoles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &v1.ClusterRoleList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ClusterRoleList{ListMeta: obj.(*v1.ClusterRoleList).ListMeta}\n\tfor _, item := range obj.(*v1.ClusterRoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *FakeClusterRoles) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolesResource, opts))\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Create(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.CreateOptions) (result *v1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &v1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRole), err\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Update(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.UpdateOptions) (result *v1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &v1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRole), err\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolesResource, name, opts), &v1.ClusterRole{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ClusterRoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &v1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRole), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *rbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &v1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRole), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype FakeClusterRoleBindings struct {\n\tFake *FakeRbacV1\n}\n\nvar clusterrolebindingsResource = v1.SchemeGroupVersion.WithResource(\"clusterrolebindings\")\n\nvar clusterrolebindingsKind = v1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\")\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *FakeClusterRoleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &v1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *FakeClusterRoleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &v1.ClusterRoleBindingList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.ClusterRoleBindingList{ListMeta: obj.(*v1.ClusterRoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1.ClusterRoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *FakeClusterRoleBindings) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolebindingsResource, opts))\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.CreateOptions) (result *v1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &v1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRoleBinding), err\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.UpdateOptions) (result *v1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &v1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRoleBinding), err\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolebindingsResource, name, opts), &v1.ClusterRoleBinding{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.ClusterRoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &v1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &v1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.ClusterRoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1) ClusterRoles() v1.ClusterRoleInterface {\n\treturn &FakeClusterRoles{c}\n}\n\nfunc (c *FakeRbacV1) ClusterRoleBindings() v1.ClusterRoleBindingInterface {\n\treturn &FakeClusterRoleBindings{c}\n}\n\nfunc (c *FakeRbacV1) Roles(namespace string) v1.RoleInterface {\n\treturn &FakeRoles{c, namespace}\n}\n\nfunc (c *FakeRbacV1) RoleBindings(namespace string) v1.RoleBindingInterface {\n\treturn &FakeRoleBindings{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoles implements RoleInterface\ntype FakeRoles struct {\n\tFake *FakeRbacV1\n\tns   string\n}\n\nvar rolesResource = v1.SchemeGroupVersion.WithResource(\"roles\")\n\nvar rolesKind = v1.SchemeGroupVersion.WithKind(\"Role\")\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *FakeRoles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolesResource, c.ns, name), &v1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Role), err\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *FakeRoles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &v1.RoleList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.RoleList{ListMeta: obj.(*v1.RoleList).ListMeta}\n\tfor _, item := range obj.(*v1.RoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *FakeRoles) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Create(ctx context.Context, role *v1.Role, opts metav1.CreateOptions) (result *v1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolesResource, c.ns, role), &v1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Role), err\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Update(ctx context.Context, role *v1.Role, opts metav1.UpdateOptions) (result *v1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolesResource, c.ns, role), &v1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Role), err\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolesResource, c.ns, name, opts), &v1.Role{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.RoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &v1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Role), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *FakeRoles) Apply(ctx context.Context, role *rbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &v1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Role), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoleBindings implements RoleBindingInterface\ntype FakeRoleBindings struct {\n\tFake *FakeRbacV1\n\tns   string\n}\n\nvar rolebindingsResource = v1.SchemeGroupVersion.WithResource(\"rolebindings\")\n\nvar rolebindingsKind = v1.SchemeGroupVersion.WithKind(\"RoleBinding\")\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *FakeRoleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &v1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *FakeRoleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &v1.RoleBindingList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.RoleBindingList{ListMeta: obj.(*v1.RoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1.RoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *FakeRoleBindings) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolebindingsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Create(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.CreateOptions) (result *v1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &v1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RoleBinding), err\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Update(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.UpdateOptions) (result *v1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &v1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RoleBinding), err\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolebindingsResource, c.ns, name, opts), &v1.RoleBinding{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.RoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &v1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *rbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.RoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1Client {\n\treturn &RbacV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *v1.Role, opts metav1.CreateOptions) (*v1.Role, error)\n\tUpdate(ctx context.Context, role *v1.Role, opts metav1.UpdateOptions) (*v1.Role, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Role, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.RoleList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error)\n\tApply(ctx context.Context, role *rbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1Client, namespace string) *roles {\n\treturn &roles{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *roles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Role, err error) {\n\tresult = &v1.Role{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *roles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.RoleList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *roles) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Create(ctx context.Context, role *v1.Role, opts metav1.CreateOptions) (result *v1.Role, err error) {\n\tresult = &v1.Role{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Update(ctx context.Context, role *v1.Role, opts metav1.UpdateOptions) (result *v1.Role, err error) {\n\tresult = &v1.Role{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(role.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *roles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error) {\n\tresult = &v1.Role{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *roles) Apply(ctx context.Context, role *rbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tresult = &v1.Role{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.CreateOptions) (*v1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.UpdateOptions) (*v1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.RoleBinding, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *rbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *roleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RoleBinding, err error) {\n\tresult = &v1.RoleBinding{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *roleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.RoleBindingList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *roleBindings) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Create(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.CreateOptions) (result *v1.RoleBinding, err error) {\n\tresult = &v1.RoleBinding{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Update(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.UpdateOptions) (result *v1.RoleBinding, err error) {\n\tresult = &v1.RoleBinding{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(roleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *roleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error) {\n\tresult = &v1.RoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1.RoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.CreateOptions) (*v1alpha1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.UpdateOptions) (*v1alpha1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterRole, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\tclient rest.Interface\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1alpha1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *clusterRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterRole, err error) {\n\tresult = &v1alpha1.ClusterRole{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *clusterRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterRoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ClusterRoleList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *clusterRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Create(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.CreateOptions) (result *v1alpha1.ClusterRole, err error) {\n\tresult = &v1alpha1.ClusterRole{}\n\terr = c.client.Post().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Update(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.UpdateOptions) (result *v1alpha1.ClusterRole, err error) {\n\tresult = &v1alpha1.ClusterRole{}\n\terr = c.client.Put().\n\t\tResource(\"clusterroles\").\n\t\tName(clusterRole.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRole, err error) {\n\tresult = &v1alpha1.ClusterRole{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ClusterRole{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterroles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.CreateOptions) (*v1alpha1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.UpdateOptions) (*v1alpha1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\tclient rest.Interface\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1alpha1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *clusterRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tresult = &v1alpha1.ClusterRoleBinding{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *clusterRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterRoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.ClusterRoleBindingList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *clusterRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.CreateOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tresult = &v1alpha1.ClusterRoleBinding{}\n\terr = c.client.Post().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.UpdateOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tresult = &v1alpha1.ClusterRoleBinding{}\n\terr = c.client.Put().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(clusterRoleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tresult = &v1alpha1.ClusterRoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.ClusterRoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoles implements ClusterRoleInterface\ntype FakeClusterRoles struct {\n\tFake *FakeRbacV1alpha1\n}\n\nvar clusterrolesResource = v1alpha1.SchemeGroupVersion.WithResource(\"clusterroles\")\n\nvar clusterrolesKind = v1alpha1.SchemeGroupVersion.WithKind(\"ClusterRole\")\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *FakeClusterRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolesResource, name), &v1alpha1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRole), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *FakeClusterRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterRoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &v1alpha1.ClusterRoleList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ClusterRoleList{ListMeta: obj.(*v1alpha1.ClusterRoleList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ClusterRoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *FakeClusterRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolesResource, opts))\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Create(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.CreateOptions) (result *v1alpha1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &v1alpha1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRole), err\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Update(ctx context.Context, clusterRole *v1alpha1.ClusterRole, opts v1.UpdateOptions) (result *v1alpha1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &v1alpha1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRole), err\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolesResource, name, opts), &v1alpha1.ClusterRole{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ClusterRoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &v1alpha1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRole), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRole), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype FakeClusterRoleBindings struct {\n\tFake *FakeRbacV1alpha1\n}\n\nvar clusterrolebindingsResource = v1alpha1.SchemeGroupVersion.WithResource(\"clusterrolebindings\")\n\nvar clusterrolebindingsKind = v1alpha1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\")\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *FakeClusterRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &v1alpha1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *FakeClusterRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterRoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &v1alpha1.ClusterRoleBindingList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.ClusterRoleBindingList{ListMeta: obj.(*v1alpha1.ClusterRoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.ClusterRoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *FakeClusterRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolebindingsResource, opts))\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.CreateOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &v1alpha1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRoleBinding), err\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1alpha1.ClusterRoleBinding, opts v1.UpdateOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &v1alpha1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRoleBinding), err\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolebindingsResource, name, opts), &v1alpha1.ClusterRoleBinding{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.ClusterRoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &v1alpha1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.ClusterRoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1alpha1) ClusterRoles() v1alpha1.ClusterRoleInterface {\n\treturn &FakeClusterRoles{c}\n}\n\nfunc (c *FakeRbacV1alpha1) ClusterRoleBindings() v1alpha1.ClusterRoleBindingInterface {\n\treturn &FakeClusterRoleBindings{c}\n}\n\nfunc (c *FakeRbacV1alpha1) Roles(namespace string) v1alpha1.RoleInterface {\n\treturn &FakeRoles{c, namespace}\n}\n\nfunc (c *FakeRbacV1alpha1) RoleBindings(namespace string) v1alpha1.RoleBindingInterface {\n\treturn &FakeRoleBindings{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoles implements RoleInterface\ntype FakeRoles struct {\n\tFake *FakeRbacV1alpha1\n\tns   string\n}\n\nvar rolesResource = v1alpha1.SchemeGroupVersion.WithResource(\"roles\")\n\nvar rolesKind = v1alpha1.SchemeGroupVersion.WithKind(\"Role\")\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *FakeRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolesResource, c.ns, name), &v1alpha1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.Role), err\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *FakeRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &v1alpha1.RoleList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.RoleList{ListMeta: obj.(*v1alpha1.RoleList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.RoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *FakeRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Create(ctx context.Context, role *v1alpha1.Role, opts v1.CreateOptions) (result *v1alpha1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolesResource, c.ns, role), &v1alpha1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.Role), err\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Update(ctx context.Context, role *v1alpha1.Role, opts v1.UpdateOptions) (result *v1alpha1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolesResource, c.ns, role), &v1alpha1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.Role), err\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolesResource, c.ns, name, opts), &v1alpha1.Role{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.RoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &v1alpha1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.Role), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *FakeRoles) Apply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.Role), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoleBindings implements RoleBindingInterface\ntype FakeRoleBindings struct {\n\tFake *FakeRbacV1alpha1\n\tns   string\n}\n\nvar rolebindingsResource = v1alpha1.SchemeGroupVersion.WithResource(\"rolebindings\")\n\nvar rolebindingsKind = v1alpha1.SchemeGroupVersion.WithKind(\"RoleBinding\")\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *FakeRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &v1alpha1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *FakeRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &v1alpha1.RoleBindingList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.RoleBindingList{ListMeta: obj.(*v1alpha1.RoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.RoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *FakeRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolebindingsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Create(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.CreateOptions) (result *v1alpha1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &v1alpha1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RoleBinding), err\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Update(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.UpdateOptions) (result *v1alpha1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &v1alpha1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RoleBinding), err\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolebindingsResource, c.ns, name, opts), &v1alpha1.RoleBinding{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.RoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &v1alpha1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.RoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1alpha1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1alpha1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1alpha1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1alpha1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1alpha1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1alpha1Client {\n\treturn &RbacV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *v1alpha1.Role, opts v1.CreateOptions) (*v1alpha1.Role, error)\n\tUpdate(ctx context.Context, role *v1alpha1.Role, opts v1.UpdateOptions) (*v1alpha1.Role, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.Role, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Role, err error)\n\tApply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1alpha1Client, namespace string) *roles {\n\treturn &roles{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *roles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Role, err error) {\n\tresult = &v1alpha1.Role{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *roles) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.RoleList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *roles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Create(ctx context.Context, role *v1alpha1.Role, opts v1.CreateOptions) (result *v1alpha1.Role, err error) {\n\tresult = &v1alpha1.Role{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Update(ctx context.Context, role *v1alpha1.Role, opts v1.UpdateOptions) (result *v1alpha1.Role, err error) {\n\tresult = &v1alpha1.Role{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(role.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *roles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Role, err error) {\n\tresult = &v1alpha1.Role{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *roles) Apply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.Role{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.CreateOptions) (*v1alpha1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.UpdateOptions) (*v1alpha1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.RoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1alpha1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *roleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.RoleBinding, err error) {\n\tresult = &v1alpha1.RoleBinding{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *roleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.RoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.RoleBindingList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *roleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Create(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.CreateOptions) (result *v1alpha1.RoleBinding, err error) {\n\tresult = &v1alpha1.RoleBinding{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Update(ctx context.Context, roleBinding *v1alpha1.RoleBinding, opts v1.UpdateOptions) (result *v1alpha1.RoleBinding, err error) {\n\tresult = &v1alpha1.RoleBinding{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(roleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *roleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RoleBinding, err error) {\n\tresult = &v1alpha1.RoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.RoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.CreateOptions) (*v1beta1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.UpdateOptions) (*v1beta1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.ClusterRole, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\tclient rest.Interface\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1beta1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *clusterRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ClusterRole, err error) {\n\tresult = &v1beta1.ClusterRole{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *clusterRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ClusterRoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.ClusterRoleList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *clusterRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Create(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.CreateOptions) (result *v1beta1.ClusterRole, err error) {\n\tresult = &v1beta1.ClusterRole{}\n\terr = c.client.Post().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *clusterRoles) Update(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.UpdateOptions) (result *v1beta1.ClusterRole, err error) {\n\tresult = &v1beta1.ClusterRole{}\n\terr = c.client.Put().\n\t\tResource(\"clusterroles\").\n\t\tName(clusterRole.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRole).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterroles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRole, err error) {\n\tresult = &v1beta1.ClusterRole{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterroles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.ClusterRole{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterroles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.CreateOptions) (*v1beta1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.UpdateOptions) (*v1beta1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\tclient rest.Interface\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1beta1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *clusterRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tresult = &v1beta1.ClusterRoleBinding{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *clusterRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ClusterRoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.ClusterRoleBindingList{}\n\terr = c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *clusterRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.CreateOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tresult = &v1beta1.ClusterRoleBinding{}\n\terr = c.client.Post().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *clusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.UpdateOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tresult = &v1beta1.ClusterRoleBinding{}\n\terr = c.client.Put().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(clusterRoleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(clusterRoleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *clusterRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *clusterRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"clusterrolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRoleBinding, err error) {\n\tresult = &v1beta1.ClusterRoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.ClusterRoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"clusterrolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoles implements ClusterRoleInterface\ntype FakeClusterRoles struct {\n\tFake *FakeRbacV1beta1\n}\n\nvar clusterrolesResource = v1beta1.SchemeGroupVersion.WithResource(\"clusterroles\")\n\nvar clusterrolesKind = v1beta1.SchemeGroupVersion.WithKind(\"ClusterRole\")\n\n// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any.\nfunc (c *FakeClusterRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolesResource, name), &v1beta1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRole), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors.\nfunc (c *FakeClusterRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ClusterRoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &v1beta1.ClusterRoleList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.ClusterRoleList{ListMeta: obj.(*v1beta1.ClusterRoleList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.ClusterRoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoles.\nfunc (c *FakeClusterRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolesResource, opts))\n}\n\n// Create takes the representation of a clusterRole and creates it.  Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Create(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.CreateOptions) (result *v1beta1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &v1beta1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRole), err\n}\n\n// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any.\nfunc (c *FakeClusterRoles) Update(ctx context.Context, clusterRole *v1beta1.ClusterRole, opts v1.UpdateOptions) (result *v1beta1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &v1beta1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRole), err\n}\n\n// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolesResource, name, opts), &v1beta1.ClusterRole{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.ClusterRoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRole.\nfunc (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRole, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &v1beta1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRole), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole.\nfunc (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error) {\n\tif clusterRole == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRole.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRole.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &v1beta1.ClusterRole{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRole), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype FakeClusterRoleBindings struct {\n\tFake *FakeRbacV1beta1\n}\n\nvar clusterrolebindingsResource = v1beta1.SchemeGroupVersion.WithResource(\"clusterrolebindings\")\n\nvar clusterrolebindingsKind = v1beta1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\")\n\n// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any.\nfunc (c *FakeClusterRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &v1beta1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors.\nfunc (c *FakeClusterRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.ClusterRoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &v1beta1.ClusterRoleBindingList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.ClusterRoleBindingList{ListMeta: obj.(*v1beta1.ClusterRoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.ClusterRoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested clusterRoleBindings.\nfunc (c *FakeClusterRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(clusterrolebindingsResource, opts))\n}\n\n// Create takes the representation of a clusterRoleBinding and creates it.  Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.CreateOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &v1beta1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRoleBinding), err\n}\n\n// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any.\nfunc (c *FakeClusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1beta1.ClusterRoleBinding, opts v1.UpdateOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &v1beta1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRoleBinding), err\n}\n\n// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeClusterRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(clusterrolebindingsResource, name, opts), &v1beta1.ClusterRoleBinding{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeClusterRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.ClusterRoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &v1beta1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding.\nfunc (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error) {\n\tif clusterRoleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(clusterRoleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := clusterRoleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"clusterRoleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &v1beta1.ClusterRoleBinding{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.ClusterRoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1beta1) ClusterRoles() v1beta1.ClusterRoleInterface {\n\treturn &FakeClusterRoles{c}\n}\n\nfunc (c *FakeRbacV1beta1) ClusterRoleBindings() v1beta1.ClusterRoleBindingInterface {\n\treturn &FakeClusterRoleBindings{c}\n}\n\nfunc (c *FakeRbacV1beta1) Roles(namespace string) v1beta1.RoleInterface {\n\treturn &FakeRoles{c, namespace}\n}\n\nfunc (c *FakeRbacV1beta1) RoleBindings(namespace string) v1beta1.RoleBindingInterface {\n\treturn &FakeRoleBindings{c, namespace}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoles implements RoleInterface\ntype FakeRoles struct {\n\tFake *FakeRbacV1beta1\n\tns   string\n}\n\nvar rolesResource = v1beta1.SchemeGroupVersion.WithResource(\"roles\")\n\nvar rolesKind = v1beta1.SchemeGroupVersion.WithKind(\"Role\")\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *FakeRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolesResource, c.ns, name), &v1beta1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Role), err\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *FakeRoles) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RoleList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &v1beta1.RoleList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.RoleList{ListMeta: obj.(*v1beta1.RoleList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.RoleList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *FakeRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Create(ctx context.Context, role *v1beta1.Role, opts v1.CreateOptions) (result *v1beta1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolesResource, c.ns, role), &v1beta1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Role), err\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *FakeRoles) Update(ctx context.Context, role *v1beta1.Role, opts v1.UpdateOptions) (result *v1beta1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolesResource, c.ns, role), &v1beta1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Role), err\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolesResource, c.ns, name, opts), &v1beta1.Role{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.RoleList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Role, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &v1beta1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Role), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *FakeRoles) Apply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Role{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.Role), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeRoleBindings implements RoleBindingInterface\ntype FakeRoleBindings struct {\n\tFake *FakeRbacV1beta1\n\tns   string\n}\n\nvar rolebindingsResource = v1beta1.SchemeGroupVersion.WithResource(\"rolebindings\")\n\nvar rolebindingsKind = v1beta1.SchemeGroupVersion.WithKind(\"RoleBinding\")\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *FakeRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &v1beta1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RoleBinding), err\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *FakeRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RoleBindingList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &v1beta1.RoleBindingList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.RoleBindingList{ListMeta: obj.(*v1beta1.RoleBindingList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.RoleBindingList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *FakeRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(rolebindingsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Create(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.CreateOptions) (result *v1beta1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &v1beta1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RoleBinding), err\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *FakeRoleBindings) Update(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.UpdateOptions) (result *v1beta1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &v1beta1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RoleBinding), err\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *FakeRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(rolebindingsResource, c.ns, name, opts), &v1beta1.RoleBinding{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.RoleBindingList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RoleBinding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &v1beta1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RoleBinding), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.RoleBinding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.RoleBinding), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1beta1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1beta1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1beta1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1beta1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1beta1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1beta1Client {\n\treturn &RbacV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *v1beta1.Role, opts v1.CreateOptions) (*v1beta1.Role, error)\n\tUpdate(ctx context.Context, role *v1beta1.Role, opts v1.UpdateOptions) (*v1beta1.Role, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.Role, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.RoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Role, err error)\n\tApply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1beta1Client, namespace string) *roles {\n\treturn &roles{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the role, and returns the corresponding role object, and an error if there is any.\nfunc (c *roles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.Role, err error) {\n\tresult = &v1beta1.Role{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of Roles that match those selectors.\nfunc (c *roles) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RoleList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.RoleList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roles.\nfunc (c *roles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a role and creates it.  Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Create(ctx context.Context, role *v1beta1.Role, opts v1.CreateOptions) (result *v1beta1.Role, err error) {\n\tresult = &v1beta1.Role{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any.\nfunc (c *roles) Update(ctx context.Context, role *v1beta1.Role, opts v1.UpdateOptions) (result *v1beta1.Role, err error) {\n\tresult = &v1beta1.Role{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(role.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(role).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the role and deletes it. Returns an error if one occurs.\nfunc (c *roles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched role.\nfunc (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Role, err error) {\n\tresult = &v1beta1.Role{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied role.\nfunc (c *roles) Apply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error) {\n\tif role == nil {\n\t\treturn nil, fmt.Errorf(\"role provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(role)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := role.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"role.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.Role{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"roles\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.CreateOptions) (*v1beta1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.UpdateOptions) (*v1beta1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.RoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1beta1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any.\nfunc (c *roleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.RoleBinding, err error) {\n\tresult = &v1beta1.RoleBinding{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of RoleBindings that match those selectors.\nfunc (c *roleBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.RoleBindingList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.RoleBindingList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested roleBindings.\nfunc (c *roleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a roleBinding and creates it.  Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Create(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.CreateOptions) (result *v1beta1.RoleBinding, err error) {\n\tresult = &v1beta1.RoleBinding{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any.\nfunc (c *roleBindings) Update(ctx context.Context, roleBinding *v1beta1.RoleBinding, opts v1.UpdateOptions) (result *v1beta1.RoleBinding, err error) {\n\tresult = &v1beta1.RoleBinding{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(roleBinding.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(roleBinding).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs.\nfunc (c *roleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *roleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched roleBinding.\nfunc (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RoleBinding, err error) {\n\tresult = &v1beta1.RoleBinding{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding.\nfunc (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error) {\n\tif roleBinding == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(roleBinding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := roleBinding.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"roleBinding.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.RoleBinding{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"rolebindings\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_podschedulingcontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePodSchedulingContexts implements PodSchedulingContextInterface\ntype FakePodSchedulingContexts struct {\n\tFake *FakeResourceV1alpha2\n\tns   string\n}\n\nvar podschedulingcontextsResource = v1alpha2.SchemeGroupVersion.WithResource(\"podschedulingcontexts\")\n\nvar podschedulingcontextsKind = v1alpha2.SchemeGroupVersion.WithKind(\"PodSchedulingContext\")\n\n// Get takes name of the podSchedulingContext, and returns the corresponding podSchedulingContext object, and an error if there is any.\nfunc (c *FakePodSchedulingContexts) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(podschedulingcontextsResource, c.ns, name), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// List takes label and field selectors, and returns the list of PodSchedulingContexts that match those selectors.\nfunc (c *FakePodSchedulingContexts) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.PodSchedulingContextList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(podschedulingcontextsResource, podschedulingcontextsKind, c.ns, opts), &v1alpha2.PodSchedulingContextList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha2.PodSchedulingContextList{ListMeta: obj.(*v1alpha2.PodSchedulingContextList).ListMeta}\n\tfor _, item := range obj.(*v1alpha2.PodSchedulingContextList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested podSchedulingContexts.\nfunc (c *FakePodSchedulingContexts) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(podschedulingcontextsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a podSchedulingContext and creates it.  Returns the server's representation of the podSchedulingContext, and an error, if there is any.\nfunc (c *FakePodSchedulingContexts) Create(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.CreateOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(podschedulingcontextsResource, c.ns, podSchedulingContext), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// Update takes the representation of a podSchedulingContext and updates it. Returns the server's representation of the podSchedulingContext, and an error, if there is any.\nfunc (c *FakePodSchedulingContexts) Update(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(podschedulingcontextsResource, c.ns, podSchedulingContext), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakePodSchedulingContexts) UpdateStatus(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (*v1alpha2.PodSchedulingContext, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(podschedulingcontextsResource, \"status\", c.ns, podSchedulingContext), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// Delete takes name of the podSchedulingContext and deletes it. Returns an error if one occurs.\nfunc (c *FakePodSchedulingContexts) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(podschedulingcontextsResource, c.ns, name, opts), &v1alpha2.PodSchedulingContext{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePodSchedulingContexts) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(podschedulingcontextsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha2.PodSchedulingContextList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched podSchedulingContext.\nfunc (c *FakePodSchedulingContexts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.PodSchedulingContext, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podschedulingcontextsResource, c.ns, name, pt, data, subresources...), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podSchedulingContext.\nfunc (c *FakePodSchedulingContexts) Apply(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tif podSchedulingContext == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podSchedulingContext)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podSchedulingContext.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podschedulingcontextsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakePodSchedulingContexts) ApplyStatus(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tif podSchedulingContext == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(podSchedulingContext)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podSchedulingContext.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(podschedulingcontextsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1alpha2.PodSchedulingContext{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.PodSchedulingContext), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha2 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeResourceV1alpha2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeResourceV1alpha2) PodSchedulingContexts(namespace string) v1alpha2.PodSchedulingContextInterface {\n\treturn &FakePodSchedulingContexts{c, namespace}\n}\n\nfunc (c *FakeResourceV1alpha2) ResourceClaims(namespace string) v1alpha2.ResourceClaimInterface {\n\treturn &FakeResourceClaims{c, namespace}\n}\n\nfunc (c *FakeResourceV1alpha2) ResourceClaimTemplates(namespace string) v1alpha2.ResourceClaimTemplateInterface {\n\treturn &FakeResourceClaimTemplates{c, namespace}\n}\n\nfunc (c *FakeResourceV1alpha2) ResourceClasses() v1alpha2.ResourceClassInterface {\n\treturn &FakeResourceClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeResourceV1alpha2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeResourceClaims implements ResourceClaimInterface\ntype FakeResourceClaims struct {\n\tFake *FakeResourceV1alpha2\n\tns   string\n}\n\nvar resourceclaimsResource = v1alpha2.SchemeGroupVersion.WithResource(\"resourceclaims\")\n\nvar resourceclaimsKind = v1alpha2.SchemeGroupVersion.WithKind(\"ResourceClaim\")\n\n// Get takes name of the resourceClaim, and returns the corresponding resourceClaim object, and an error if there is any.\nfunc (c *FakeResourceClaims) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(resourceclaimsResource, c.ns, name), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// List takes label and field selectors, and returns the list of ResourceClaims that match those selectors.\nfunc (c *FakeResourceClaims) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClaimList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(resourceclaimsResource, resourceclaimsKind, c.ns, opts), &v1alpha2.ResourceClaimList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha2.ResourceClaimList{ListMeta: obj.(*v1alpha2.ResourceClaimList).ListMeta}\n\tfor _, item := range obj.(*v1alpha2.ResourceClaimList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClaims.\nfunc (c *FakeResourceClaims) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(resourceclaimsResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a resourceClaim and creates it.  Returns the server's representation of the resourceClaim, and an error, if there is any.\nfunc (c *FakeResourceClaims) Create(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.CreateOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(resourceclaimsResource, c.ns, resourceClaim), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// Update takes the representation of a resourceClaim and updates it. Returns the server's representation of the resourceClaim, and an error, if there is any.\nfunc (c *FakeResourceClaims) Update(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(resourceclaimsResource, c.ns, resourceClaim), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeResourceClaims) UpdateStatus(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (*v1alpha2.ResourceClaim, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceAction(resourceclaimsResource, \"status\", c.ns, resourceClaim), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// Delete takes name of the resourceClaim and deletes it. Returns an error if one occurs.\nfunc (c *FakeResourceClaims) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(resourceclaimsResource, c.ns, name, opts), &v1alpha2.ResourceClaim{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeResourceClaims) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(resourceclaimsResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha2.ResourceClaimList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched resourceClaim.\nfunc (c *FakeResourceClaims) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaim, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourceclaimsResource, c.ns, name, pt, data, subresources...), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClaim.\nfunc (c *FakeResourceClaims) Apply(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tif resourceClaim == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourceclaimsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeResourceClaims) ApplyStatus(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tif resourceClaim == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourceclaimsResource, c.ns, *name, types.ApplyPatchType, data, \"status\"), &v1alpha2.ResourceClaim{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaim), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeResourceClaimTemplates implements ResourceClaimTemplateInterface\ntype FakeResourceClaimTemplates struct {\n\tFake *FakeResourceV1alpha2\n\tns   string\n}\n\nvar resourceclaimtemplatesResource = v1alpha2.SchemeGroupVersion.WithResource(\"resourceclaimtemplates\")\n\nvar resourceclaimtemplatesKind = v1alpha2.SchemeGroupVersion.WithKind(\"ResourceClaimTemplate\")\n\n// Get takes name of the resourceClaimTemplate, and returns the corresponding resourceClaimTemplate object, and an error if there is any.\nfunc (c *FakeResourceClaimTemplates) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(resourceclaimtemplatesResource, c.ns, name), &v1alpha2.ResourceClaimTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaimTemplate), err\n}\n\n// List takes label and field selectors, and returns the list of ResourceClaimTemplates that match those selectors.\nfunc (c *FakeResourceClaimTemplates) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClaimTemplateList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(resourceclaimtemplatesResource, resourceclaimtemplatesKind, c.ns, opts), &v1alpha2.ResourceClaimTemplateList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha2.ResourceClaimTemplateList{ListMeta: obj.(*v1alpha2.ResourceClaimTemplateList).ListMeta}\n\tfor _, item := range obj.(*v1alpha2.ResourceClaimTemplateList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClaimTemplates.\nfunc (c *FakeResourceClaimTemplates) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(resourceclaimtemplatesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a resourceClaimTemplate and creates it.  Returns the server's representation of the resourceClaimTemplate, and an error, if there is any.\nfunc (c *FakeResourceClaimTemplates) Create(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.CreateOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(resourceclaimtemplatesResource, c.ns, resourceClaimTemplate), &v1alpha2.ResourceClaimTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaimTemplate), err\n}\n\n// Update takes the representation of a resourceClaimTemplate and updates it. Returns the server's representation of the resourceClaimTemplate, and an error, if there is any.\nfunc (c *FakeResourceClaimTemplates) Update(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.UpdateOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(resourceclaimtemplatesResource, c.ns, resourceClaimTemplate), &v1alpha2.ResourceClaimTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaimTemplate), err\n}\n\n// Delete takes name of the resourceClaimTemplate and deletes it. Returns an error if one occurs.\nfunc (c *FakeResourceClaimTemplates) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(resourceclaimtemplatesResource, c.ns, name, opts), &v1alpha2.ResourceClaimTemplate{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeResourceClaimTemplates) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(resourceclaimtemplatesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha2.ResourceClaimTemplateList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched resourceClaimTemplate.\nfunc (c *FakeResourceClaimTemplates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourceclaimtemplatesResource, c.ns, name, pt, data, subresources...), &v1alpha2.ResourceClaimTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaimTemplate), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClaimTemplate.\nfunc (c *FakeResourceClaimTemplates) Apply(ctx context.Context, resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplateApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tif resourceClaimTemplate == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaimTemplate provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceClaimTemplate)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClaimTemplate.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaimTemplate.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(resourceclaimtemplatesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha2.ResourceClaimTemplate{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClaimTemplate), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeResourceClasses implements ResourceClassInterface\ntype FakeResourceClasses struct {\n\tFake *FakeResourceV1alpha2\n}\n\nvar resourceclassesResource = v1alpha2.SchemeGroupVersion.WithResource(\"resourceclasses\")\n\nvar resourceclassesKind = v1alpha2.SchemeGroupVersion.WithKind(\"ResourceClass\")\n\n// Get takes name of the resourceClass, and returns the corresponding resourceClass object, and an error if there is any.\nfunc (c *FakeResourceClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(resourceclassesResource, name), &v1alpha2.ResourceClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClass), err\n}\n\n// List takes label and field selectors, and returns the list of ResourceClasses that match those selectors.\nfunc (c *FakeResourceClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(resourceclassesResource, resourceclassesKind, opts), &v1alpha2.ResourceClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha2.ResourceClassList{ListMeta: obj.(*v1alpha2.ResourceClassList).ListMeta}\n\tfor _, item := range obj.(*v1alpha2.ResourceClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClasses.\nfunc (c *FakeResourceClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(resourceclassesResource, opts))\n}\n\n// Create takes the representation of a resourceClass and creates it.  Returns the server's representation of the resourceClass, and an error, if there is any.\nfunc (c *FakeResourceClasses) Create(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.CreateOptions) (result *v1alpha2.ResourceClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(resourceclassesResource, resourceClass), &v1alpha2.ResourceClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClass), err\n}\n\n// Update takes the representation of a resourceClass and updates it. Returns the server's representation of the resourceClass, and an error, if there is any.\nfunc (c *FakeResourceClasses) Update(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.UpdateOptions) (result *v1alpha2.ResourceClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(resourceclassesResource, resourceClass), &v1alpha2.ResourceClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClass), err\n}\n\n// Delete takes name of the resourceClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeResourceClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(resourceclassesResource, name, opts), &v1alpha2.ResourceClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeResourceClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(resourceclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha2.ResourceClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched resourceClass.\nfunc (c *FakeResourceClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(resourceclassesResource, name, pt, data, subresources...), &v1alpha2.ResourceClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClass.\nfunc (c *FakeResourceClasses) Apply(ctx context.Context, resourceClass *resourcev1alpha2.ResourceClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClass, err error) {\n\tif resourceClass == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(resourceClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(resourceclassesResource, *name, types.ApplyPatchType, data), &v1alpha2.ResourceClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha2.ResourceClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\ntype PodSchedulingContextExpansion interface{}\n\ntype ResourceClaimExpansion interface{}\n\ntype ResourceClaimTemplateExpansion interface{}\n\ntype ResourceClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/podschedulingcontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PodSchedulingContextsGetter has a method to return a PodSchedulingContextInterface.\n// A group's client should implement this interface.\ntype PodSchedulingContextsGetter interface {\n\tPodSchedulingContexts(namespace string) PodSchedulingContextInterface\n}\n\n// PodSchedulingContextInterface has methods to work with PodSchedulingContext resources.\ntype PodSchedulingContextInterface interface {\n\tCreate(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.CreateOptions) (*v1alpha2.PodSchedulingContext, error)\n\tUpdate(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (*v1alpha2.PodSchedulingContext, error)\n\tUpdateStatus(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (*v1alpha2.PodSchedulingContext, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha2.PodSchedulingContext, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha2.PodSchedulingContextList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.PodSchedulingContext, err error)\n\tApply(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error)\n\tApplyStatus(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error)\n\tPodSchedulingContextExpansion\n}\n\n// podSchedulingContexts implements PodSchedulingContextInterface\ntype podSchedulingContexts struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newPodSchedulingContexts returns a PodSchedulingContexts\nfunc newPodSchedulingContexts(c *ResourceV1alpha2Client, namespace string) *podSchedulingContexts {\n\treturn &podSchedulingContexts{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the podSchedulingContext, and returns the corresponding podSchedulingContext object, and an error if there is any.\nfunc (c *podSchedulingContexts) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PodSchedulingContexts that match those selectors.\nfunc (c *podSchedulingContexts) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.PodSchedulingContextList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha2.PodSchedulingContextList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested podSchedulingContexts.\nfunc (c *podSchedulingContexts) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a podSchedulingContext and creates it.  Returns the server's representation of the podSchedulingContext, and an error, if there is any.\nfunc (c *podSchedulingContexts) Create(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.CreateOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podSchedulingContext).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a podSchedulingContext and updates it. Returns the server's representation of the podSchedulingContext, and an error, if there is any.\nfunc (c *podSchedulingContexts) Update(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(podSchedulingContext.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podSchedulingContext).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *podSchedulingContexts) UpdateStatus(ctx context.Context, podSchedulingContext *v1alpha2.PodSchedulingContext, opts v1.UpdateOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(podSchedulingContext.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(podSchedulingContext).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the podSchedulingContext and deletes it. Returns an error if one occurs.\nfunc (c *podSchedulingContexts) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *podSchedulingContexts) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched podSchedulingContext.\nfunc (c *podSchedulingContexts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.PodSchedulingContext, err error) {\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied podSchedulingContext.\nfunc (c *podSchedulingContexts) Apply(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tif podSchedulingContext == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podSchedulingContext)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := podSchedulingContext.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *podSchedulingContexts) ApplyStatus(ctx context.Context, podSchedulingContext *resourcev1alpha2.PodSchedulingContextApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.PodSchedulingContext, err error) {\n\tif podSchedulingContext == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(podSchedulingContext)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := podSchedulingContext.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"podSchedulingContext.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha2.PodSchedulingContext{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"podschedulingcontexts\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\t\"net/http\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype ResourceV1alpha2Interface interface {\n\tRESTClient() rest.Interface\n\tPodSchedulingContextsGetter\n\tResourceClaimsGetter\n\tResourceClaimTemplatesGetter\n\tResourceClassesGetter\n}\n\n// ResourceV1alpha2Client is used to interact with features provided by the resource.k8s.io group.\ntype ResourceV1alpha2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *ResourceV1alpha2Client) PodSchedulingContexts(namespace string) PodSchedulingContextInterface {\n\treturn newPodSchedulingContexts(c, namespace)\n}\n\nfunc (c *ResourceV1alpha2Client) ResourceClaims(namespace string) ResourceClaimInterface {\n\treturn newResourceClaims(c, namespace)\n}\n\nfunc (c *ResourceV1alpha2Client) ResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface {\n\treturn newResourceClaimTemplates(c, namespace)\n}\n\nfunc (c *ResourceV1alpha2Client) ResourceClasses() ResourceClassInterface {\n\treturn newResourceClasses(c)\n}\n\n// NewForConfig creates a new ResourceV1alpha2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*ResourceV1alpha2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new ResourceV1alpha2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*ResourceV1alpha2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ResourceV1alpha2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new ResourceV1alpha2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *ResourceV1alpha2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new ResourceV1alpha2Client for the given RESTClient.\nfunc New(c rest.Interface) *ResourceV1alpha2Client {\n\treturn &ResourceV1alpha2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *ResourceV1alpha2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ResourceClaimsGetter has a method to return a ResourceClaimInterface.\n// A group's client should implement this interface.\ntype ResourceClaimsGetter interface {\n\tResourceClaims(namespace string) ResourceClaimInterface\n}\n\n// ResourceClaimInterface has methods to work with ResourceClaim resources.\ntype ResourceClaimInterface interface {\n\tCreate(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.CreateOptions) (*v1alpha2.ResourceClaim, error)\n\tUpdate(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (*v1alpha2.ResourceClaim, error)\n\tUpdateStatus(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (*v1alpha2.ResourceClaim, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha2.ResourceClaim, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha2.ResourceClaimList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaim, err error)\n\tApply(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error)\n\tApplyStatus(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error)\n\tResourceClaimExpansion\n}\n\n// resourceClaims implements ResourceClaimInterface\ntype resourceClaims struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newResourceClaims returns a ResourceClaims\nfunc newResourceClaims(c *ResourceV1alpha2Client, namespace string) *resourceClaims {\n\treturn &resourceClaims{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the resourceClaim, and returns the corresponding resourceClaim object, and an error if there is any.\nfunc (c *resourceClaims) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ResourceClaims that match those selectors.\nfunc (c *resourceClaims) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClaimList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha2.ResourceClaimList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClaims.\nfunc (c *resourceClaims) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a resourceClaim and creates it.  Returns the server's representation of the resourceClaim, and an error, if there is any.\nfunc (c *resourceClaims) Create(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.CreateOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a resourceClaim and updates it. Returns the server's representation of the resourceClaim, and an error, if there is any.\nfunc (c *resourceClaims) Update(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(resourceClaim.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *resourceClaims) UpdateStatus(ctx context.Context, resourceClaim *v1alpha2.ResourceClaim, opts v1.UpdateOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(resourceClaim.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClaim).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the resourceClaim and deletes it. Returns an error if one occurs.\nfunc (c *resourceClaims) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *resourceClaims) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched resourceClaim.\nfunc (c *resourceClaims) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaim, err error) {\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClaim.\nfunc (c *resourceClaims) Apply(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tif resourceClaim == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *resourceClaims) ApplyStatus(ctx context.Context, resourceClaim *resourcev1alpha2.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaim, err error) {\n\tif resourceClaim == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceClaim)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := resourceClaim.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaim.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha2.ResourceClaim{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaims\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ResourceClaimTemplatesGetter has a method to return a ResourceClaimTemplateInterface.\n// A group's client should implement this interface.\ntype ResourceClaimTemplatesGetter interface {\n\tResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface\n}\n\n// ResourceClaimTemplateInterface has methods to work with ResourceClaimTemplate resources.\ntype ResourceClaimTemplateInterface interface {\n\tCreate(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.CreateOptions) (*v1alpha2.ResourceClaimTemplate, error)\n\tUpdate(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.UpdateOptions) (*v1alpha2.ResourceClaimTemplate, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha2.ResourceClaimTemplate, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha2.ResourceClaimTemplateList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaimTemplate, err error)\n\tApply(ctx context.Context, resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplateApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaimTemplate, err error)\n\tResourceClaimTemplateExpansion\n}\n\n// resourceClaimTemplates implements ResourceClaimTemplateInterface\ntype resourceClaimTemplates struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newResourceClaimTemplates returns a ResourceClaimTemplates\nfunc newResourceClaimTemplates(c *ResourceV1alpha2Client, namespace string) *resourceClaimTemplates {\n\treturn &resourceClaimTemplates{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the resourceClaimTemplate, and returns the corresponding resourceClaimTemplate object, and an error if there is any.\nfunc (c *resourceClaimTemplates) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tresult = &v1alpha2.ResourceClaimTemplate{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ResourceClaimTemplates that match those selectors.\nfunc (c *resourceClaimTemplates) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClaimTemplateList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha2.ResourceClaimTemplateList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClaimTemplates.\nfunc (c *resourceClaimTemplates) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a resourceClaimTemplate and creates it.  Returns the server's representation of the resourceClaimTemplate, and an error, if there is any.\nfunc (c *resourceClaimTemplates) Create(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.CreateOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tresult = &v1alpha2.ResourceClaimTemplate{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClaimTemplate).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a resourceClaimTemplate and updates it. Returns the server's representation of the resourceClaimTemplate, and an error, if there is any.\nfunc (c *resourceClaimTemplates) Update(ctx context.Context, resourceClaimTemplate *v1alpha2.ResourceClaimTemplate, opts v1.UpdateOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tresult = &v1alpha2.ResourceClaimTemplate{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tName(resourceClaimTemplate.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClaimTemplate).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the resourceClaimTemplate and deletes it. Returns an error if one occurs.\nfunc (c *resourceClaimTemplates) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *resourceClaimTemplates) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched resourceClaimTemplate.\nfunc (c *resourceClaimTemplates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tresult = &v1alpha2.ResourceClaimTemplate{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClaimTemplate.\nfunc (c *resourceClaimTemplates) Apply(ctx context.Context, resourceClaimTemplate *resourcev1alpha2.ResourceClaimTemplateApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClaimTemplate, err error) {\n\tif resourceClaimTemplate == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaimTemplate provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceClaimTemplate)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClaimTemplate.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClaimTemplate.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha2.ResourceClaimTemplate{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"resourceclaimtemplates\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha2 \"k8s.io/api/resource/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tresourcev1alpha2 \"k8s.io/client-go/applyconfigurations/resource/v1alpha2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// ResourceClassesGetter has a method to return a ResourceClassInterface.\n// A group's client should implement this interface.\ntype ResourceClassesGetter interface {\n\tResourceClasses() ResourceClassInterface\n}\n\n// ResourceClassInterface has methods to work with ResourceClass resources.\ntype ResourceClassInterface interface {\n\tCreate(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.CreateOptions) (*v1alpha2.ResourceClass, error)\n\tUpdate(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.UpdateOptions) (*v1alpha2.ResourceClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha2.ResourceClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha2.ResourceClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClass, err error)\n\tApply(ctx context.Context, resourceClass *resourcev1alpha2.ResourceClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClass, err error)\n\tResourceClassExpansion\n}\n\n// resourceClasses implements ResourceClassInterface\ntype resourceClasses struct {\n\tclient rest.Interface\n}\n\n// newResourceClasses returns a ResourceClasses\nfunc newResourceClasses(c *ResourceV1alpha2Client) *resourceClasses {\n\treturn &resourceClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the resourceClass, and returns the corresponding resourceClass object, and an error if there is any.\nfunc (c *resourceClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.ResourceClass, err error) {\n\tresult = &v1alpha2.ResourceClass{}\n\terr = c.client.Get().\n\t\tResource(\"resourceclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of ResourceClasses that match those selectors.\nfunc (c *resourceClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.ResourceClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha2.ResourceClassList{}\n\terr = c.client.Get().\n\t\tResource(\"resourceclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested resourceClasses.\nfunc (c *resourceClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"resourceclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a resourceClass and creates it.  Returns the server's representation of the resourceClass, and an error, if there is any.\nfunc (c *resourceClasses) Create(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.CreateOptions) (result *v1alpha2.ResourceClass, err error) {\n\tresult = &v1alpha2.ResourceClass{}\n\terr = c.client.Post().\n\t\tResource(\"resourceclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a resourceClass and updates it. Returns the server's representation of the resourceClass, and an error, if there is any.\nfunc (c *resourceClasses) Update(ctx context.Context, resourceClass *v1alpha2.ResourceClass, opts v1.UpdateOptions) (result *v1alpha2.ResourceClass, err error) {\n\tresult = &v1alpha2.ResourceClass{}\n\terr = c.client.Put().\n\t\tResource(\"resourceclasses\").\n\t\tName(resourceClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(resourceClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the resourceClass and deletes it. Returns an error if one occurs.\nfunc (c *resourceClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"resourceclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *resourceClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"resourceclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched resourceClass.\nfunc (c *resourceClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.ResourceClass, err error) {\n\tresult = &v1alpha2.ResourceClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"resourceclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resourceClass.\nfunc (c *resourceClasses) Apply(ctx context.Context, resourceClass *resourcev1alpha2.ResourceClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha2.ResourceClass, err error) {\n\tif resourceClass == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(resourceClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := resourceClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"resourceClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha2.ResourceClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"resourceclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/scheduling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1 \"k8s.io/client-go/applyconfigurations/scheduling/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityClasses implements PriorityClassInterface\ntype FakePriorityClasses struct {\n\tFake *FakeSchedulingV1\n}\n\nvar priorityclassesResource = v1.SchemeGroupVersion.WithResource(\"priorityclasses\")\n\nvar priorityclassesKind = v1.SchemeGroupVersion.WithKind(\"PriorityClass\")\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *FakePriorityClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(priorityclassesResource, name), &v1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PriorityClass), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *FakePriorityClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PriorityClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(priorityclassesResource, priorityclassesKind, opts), &v1.PriorityClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.PriorityClassList{ListMeta: obj.(*v1.PriorityClassList).ListMeta}\n\tfor _, item := range obj.(*v1.PriorityClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *FakePriorityClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(priorityclassesResource, opts))\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Create(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.CreateOptions) (result *v1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(priorityclassesResource, priorityClass), &v1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PriorityClass), err\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Update(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.UpdateOptions) (result *v1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(priorityclassesResource, priorityClass), &v1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PriorityClass), err\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(priorityclassesResource, name, opts), &v1.PriorityClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(priorityclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.PriorityClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, pt, data, subresources...), &v1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PriorityClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &v1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.PriorityClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1) PriorityClasses() v1.PriorityClassInterface {\n\treturn &FakePriorityClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/scheduling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1 \"k8s.io/client-go/applyconfigurations/scheduling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.CreateOptions) (*v1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.UpdateOptions) (*v1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PriorityClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *schedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\tclient rest.Interface\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *priorityClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PriorityClass, err error) {\n\tresult = &v1.PriorityClass{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *priorityClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PriorityClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.PriorityClassList{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *priorityClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Create(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.CreateOptions) (result *v1.PriorityClass, err error) {\n\tresult = &v1.PriorityClass{}\n\terr = c.client.Post().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Update(ctx context.Context, priorityClass *v1.PriorityClass, opts metav1.UpdateOptions) (result *v1.PriorityClass, err error) {\n\tresult = &v1.PriorityClass{}\n\terr = c.client.Put().\n\t\tResource(\"priorityclasses\").\n\t\tName(priorityClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *priorityClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *priorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PriorityClass, err error) {\n\tresult = &v1.PriorityClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1.PriorityClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"priorityclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/scheduling/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1Client {\n\treturn &SchedulingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1alpha1 \"k8s.io/client-go/applyconfigurations/scheduling/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityClasses implements PriorityClassInterface\ntype FakePriorityClasses struct {\n\tFake *FakeSchedulingV1alpha1\n}\n\nvar priorityclassesResource = v1alpha1.SchemeGroupVersion.WithResource(\"priorityclasses\")\n\nvar priorityclassesKind = v1alpha1.SchemeGroupVersion.WithKind(\"PriorityClass\")\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *FakePriorityClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(priorityclassesResource, name), &v1alpha1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityClass), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *FakePriorityClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.PriorityClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(priorityclassesResource, priorityclassesKind, opts), &v1alpha1.PriorityClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.PriorityClassList{ListMeta: obj.(*v1alpha1.PriorityClassList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.PriorityClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *FakePriorityClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(priorityclassesResource, opts))\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Create(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.CreateOptions) (result *v1alpha1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(priorityclassesResource, priorityClass), &v1alpha1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityClass), err\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Update(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.UpdateOptions) (result *v1alpha1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(priorityclassesResource, priorityClass), &v1alpha1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityClass), err\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(priorityclassesResource, name, opts), &v1alpha1.PriorityClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(priorityclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.PriorityClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, pt, data, subresources...), &v1alpha1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &v1alpha1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.PriorityClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1alpha1) PriorityClasses() v1alpha1.PriorityClassInterface {\n\treturn &FakePriorityClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1alpha1 \"k8s.io/client-go/applyconfigurations/scheduling/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.CreateOptions) (*v1alpha1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.UpdateOptions) (*v1alpha1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.PriorityClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\tclient rest.Interface\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1alpha1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *priorityClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.PriorityClass, err error) {\n\tresult = &v1alpha1.PriorityClass{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *priorityClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.PriorityClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.PriorityClassList{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *priorityClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Create(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.CreateOptions) (result *v1alpha1.PriorityClass, err error) {\n\tresult = &v1alpha1.PriorityClass{}\n\terr = c.client.Post().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Update(ctx context.Context, priorityClass *v1alpha1.PriorityClass, opts v1.UpdateOptions) (result *v1alpha1.PriorityClass, err error) {\n\tresult = &v1alpha1.PriorityClass{}\n\terr = c.client.Put().\n\t\tResource(\"priorityclasses\").\n\t\tName(priorityClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *priorityClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *priorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityClass, err error) {\n\tresult = &v1alpha1.PriorityClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.PriorityClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"priorityclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1alpha1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1alpha1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1alpha1Client {\n\treturn &SchedulingV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1beta1 \"k8s.io/client-go/applyconfigurations/scheduling/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakePriorityClasses implements PriorityClassInterface\ntype FakePriorityClasses struct {\n\tFake *FakeSchedulingV1beta1\n}\n\nvar priorityclassesResource = v1beta1.SchemeGroupVersion.WithResource(\"priorityclasses\")\n\nvar priorityclassesKind = v1beta1.SchemeGroupVersion.WithKind(\"PriorityClass\")\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *FakePriorityClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(priorityclassesResource, name), &v1beta1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityClass), err\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *FakePriorityClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PriorityClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(priorityclassesResource, priorityclassesKind, opts), &v1beta1.PriorityClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.PriorityClassList{ListMeta: obj.(*v1beta1.PriorityClassList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.PriorityClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *FakePriorityClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(priorityclassesResource, opts))\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Create(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.CreateOptions) (result *v1beta1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(priorityclassesResource, priorityClass), &v1beta1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityClass), err\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *FakePriorityClasses) Update(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.UpdateOptions) (result *v1beta1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(priorityclassesResource, priorityClass), &v1beta1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityClass), err\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *FakePriorityClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(priorityclassesResource, name, opts), &v1beta1.PriorityClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakePriorityClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(priorityclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.PriorityClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, pt, data, subresources...), &v1beta1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &v1beta1.PriorityClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.PriorityClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1beta1) PriorityClasses() v1beta1.PriorityClassInterface {\n\treturn &FakePriorityClasses{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tschedulingv1beta1 \"k8s.io/client-go/applyconfigurations/scheduling/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.CreateOptions) (*v1beta1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.UpdateOptions) (*v1beta1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.PriorityClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\tclient rest.Interface\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1beta1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any.\nfunc (c *priorityClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.PriorityClass, err error) {\n\tresult = &v1beta1.PriorityClass{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors.\nfunc (c *priorityClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.PriorityClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.PriorityClassList{}\n\terr = c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested priorityClasses.\nfunc (c *priorityClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a priorityClass and creates it.  Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Create(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.CreateOptions) (result *v1beta1.PriorityClass, err error) {\n\tresult = &v1beta1.PriorityClass{}\n\terr = c.client.Post().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any.\nfunc (c *priorityClasses) Update(ctx context.Context, priorityClass *v1beta1.PriorityClass, opts v1.UpdateOptions) (result *v1beta1.PriorityClass, err error) {\n\tresult = &v1beta1.PriorityClass{}\n\terr = c.client.Put().\n\t\tResource(\"priorityclasses\").\n\t\tName(priorityClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(priorityClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs.\nfunc (c *priorityClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *priorityClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"priorityclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched priorityClass.\nfunc (c *priorityClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityClass, err error) {\n\tresult = &v1beta1.PriorityClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"priorityclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass.\nfunc (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error) {\n\tif priorityClass == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(priorityClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := priorityClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"priorityClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.PriorityClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"priorityclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1beta1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1beta1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1beta1Client {\n\treturn &SchedulingV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSIDriversGetter has a method to return a CSIDriverInterface.\n// A group's client should implement this interface.\ntype CSIDriversGetter interface {\n\tCSIDrivers() CSIDriverInterface\n}\n\n// CSIDriverInterface has methods to work with CSIDriver resources.\ntype CSIDriverInterface interface {\n\tCreate(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.CreateOptions) (*v1.CSIDriver, error)\n\tUpdate(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.UpdateOptions) (*v1.CSIDriver, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CSIDriver, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.CSIDriverList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIDriver, err error)\n\tApply(ctx context.Context, cSIDriver *storagev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIDriver, err error)\n\tCSIDriverExpansion\n}\n\n// cSIDrivers implements CSIDriverInterface\ntype cSIDrivers struct {\n\tclient rest.Interface\n}\n\n// newCSIDrivers returns a CSIDrivers\nfunc newCSIDrivers(c *StorageV1Client) *cSIDrivers {\n\treturn &cSIDrivers{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the cSIDriver, and returns the corresponding cSIDriver object, and an error if there is any.\nfunc (c *cSIDrivers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSIDriver, err error) {\n\tresult = &v1.CSIDriver{}\n\terr = c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSIDrivers that match those selectors.\nfunc (c *cSIDrivers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSIDriverList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.CSIDriverList{}\n\terr = c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSIDrivers.\nfunc (c *cSIDrivers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSIDriver and creates it.  Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *cSIDrivers) Create(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.CreateOptions) (result *v1.CSIDriver, err error) {\n\tresult = &v1.CSIDriver{}\n\terr = c.client.Post().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIDriver).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSIDriver and updates it. Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *cSIDrivers) Update(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.UpdateOptions) (result *v1.CSIDriver, err error) {\n\tresult = &v1.CSIDriver{}\n\terr = c.client.Put().\n\t\tResource(\"csidrivers\").\n\t\tName(cSIDriver.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIDriver).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSIDriver and deletes it. Returns an error if one occurs.\nfunc (c *cSIDrivers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSIDrivers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSIDriver.\nfunc (c *cSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIDriver, err error) {\n\tresult = &v1.CSIDriver{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver.\nfunc (c *cSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIDriver, err error) {\n\tif cSIDriver == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSIDriver)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIDriver.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver.Name must be provided to Apply\")\n\t}\n\tresult = &v1.CSIDriver{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"csidrivers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSINodesGetter has a method to return a CSINodeInterface.\n// A group's client should implement this interface.\ntype CSINodesGetter interface {\n\tCSINodes() CSINodeInterface\n}\n\n// CSINodeInterface has methods to work with CSINode resources.\ntype CSINodeInterface interface {\n\tCreate(ctx context.Context, cSINode *v1.CSINode, opts metav1.CreateOptions) (*v1.CSINode, error)\n\tUpdate(ctx context.Context, cSINode *v1.CSINode, opts metav1.UpdateOptions) (*v1.CSINode, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CSINode, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.CSINodeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSINode, err error)\n\tApply(ctx context.Context, cSINode *storagev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSINode, err error)\n\tCSINodeExpansion\n}\n\n// cSINodes implements CSINodeInterface\ntype cSINodes struct {\n\tclient rest.Interface\n}\n\n// newCSINodes returns a CSINodes\nfunc newCSINodes(c *StorageV1Client) *cSINodes {\n\treturn &cSINodes{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the cSINode, and returns the corresponding cSINode object, and an error if there is any.\nfunc (c *cSINodes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSINode, err error) {\n\tresult = &v1.CSINode{}\n\terr = c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSINodes that match those selectors.\nfunc (c *cSINodes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSINodeList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.CSINodeList{}\n\terr = c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSINodes.\nfunc (c *cSINodes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSINode and creates it.  Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *cSINodes) Create(ctx context.Context, cSINode *v1.CSINode, opts metav1.CreateOptions) (result *v1.CSINode, err error) {\n\tresult = &v1.CSINode{}\n\terr = c.client.Post().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSINode).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSINode and updates it. Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *cSINodes) Update(ctx context.Context, cSINode *v1.CSINode, opts metav1.UpdateOptions) (result *v1.CSINode, err error) {\n\tresult = &v1.CSINode{}\n\terr = c.client.Put().\n\t\tResource(\"csinodes\").\n\t\tName(cSINode.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSINode).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSINode and deletes it. Returns an error if one occurs.\nfunc (c *cSINodes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSINodes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSINode.\nfunc (c *cSINodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSINode, err error) {\n\tresult = &v1.CSINode{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode.\nfunc (c *cSINodes) Apply(ctx context.Context, cSINode *storagev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSINode, err error) {\n\tif cSINode == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSINode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSINode.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode.Name must be provided to Apply\")\n\t}\n\tresult = &v1.CSINode{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"csinodes\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.CreateOptions) (*v1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.UpdateOptions) (*v1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *storagev1.CSIStorageCapacityApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *cSIStorageCapacities) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSIStorageCapacity, err error) {\n\tresult = &v1.CSIStorageCapacity{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *cSIStorageCapacities) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSIStorageCapacityList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.CSIStorageCapacityList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *cSIStorageCapacities) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.CreateOptions) (result *v1.CSIStorageCapacity, err error) {\n\tresult = &v1.CSIStorageCapacity{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.UpdateOptions) (result *v1.CSIStorageCapacity, err error) {\n\tresult = &v1.CSIStorageCapacity{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(cSIStorageCapacity.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *cSIStorageCapacities) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSIStorageCapacities) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIStorageCapacity, err error) {\n\tresult = &v1.CSIStorageCapacity{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1.CSIStorageCapacityApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tresult = &v1.CSIStorageCapacity{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSIDrivers implements CSIDriverInterface\ntype FakeCSIDrivers struct {\n\tFake *FakeStorageV1\n}\n\nvar csidriversResource = v1.SchemeGroupVersion.WithResource(\"csidrivers\")\n\nvar csidriversKind = v1.SchemeGroupVersion.WithKind(\"CSIDriver\")\n\n// Get takes name of the cSIDriver, and returns the corresponding cSIDriver object, and an error if there is any.\nfunc (c *FakeCSIDrivers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(csidriversResource, name), &v1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIDriver), err\n}\n\n// List takes label and field selectors, and returns the list of CSIDrivers that match those selectors.\nfunc (c *FakeCSIDrivers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSIDriverList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(csidriversResource, csidriversKind, opts), &v1.CSIDriverList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.CSIDriverList{ListMeta: obj.(*v1.CSIDriverList).ListMeta}\n\tfor _, item := range obj.(*v1.CSIDriverList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSIDrivers.\nfunc (c *FakeCSIDrivers) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(csidriversResource, opts))\n}\n\n// Create takes the representation of a cSIDriver and creates it.  Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *FakeCSIDrivers) Create(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.CreateOptions) (result *v1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(csidriversResource, cSIDriver), &v1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIDriver), err\n}\n\n// Update takes the representation of a cSIDriver and updates it. Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *FakeCSIDrivers) Update(ctx context.Context, cSIDriver *v1.CSIDriver, opts metav1.UpdateOptions) (result *v1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(csidriversResource, cSIDriver), &v1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIDriver), err\n}\n\n// Delete takes name of the cSIDriver and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSIDrivers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(csidriversResource, name, opts), &v1.CSIDriver{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSIDrivers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(csidriversResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.CSIDriverList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSIDriver.\nfunc (c *FakeCSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csidriversResource, name, pt, data, subresources...), &v1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIDriver), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver.\nfunc (c *FakeCSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIDriver, err error) {\n\tif cSIDriver == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSIDriver)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIDriver.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csidriversResource, *name, types.ApplyPatchType, data), &v1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIDriver), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSINodes implements CSINodeInterface\ntype FakeCSINodes struct {\n\tFake *FakeStorageV1\n}\n\nvar csinodesResource = v1.SchemeGroupVersion.WithResource(\"csinodes\")\n\nvar csinodesKind = v1.SchemeGroupVersion.WithKind(\"CSINode\")\n\n// Get takes name of the cSINode, and returns the corresponding cSINode object, and an error if there is any.\nfunc (c *FakeCSINodes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(csinodesResource, name), &v1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSINode), err\n}\n\n// List takes label and field selectors, and returns the list of CSINodes that match those selectors.\nfunc (c *FakeCSINodes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSINodeList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(csinodesResource, csinodesKind, opts), &v1.CSINodeList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.CSINodeList{ListMeta: obj.(*v1.CSINodeList).ListMeta}\n\tfor _, item := range obj.(*v1.CSINodeList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSINodes.\nfunc (c *FakeCSINodes) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(csinodesResource, opts))\n}\n\n// Create takes the representation of a cSINode and creates it.  Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *FakeCSINodes) Create(ctx context.Context, cSINode *v1.CSINode, opts metav1.CreateOptions) (result *v1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(csinodesResource, cSINode), &v1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSINode), err\n}\n\n// Update takes the representation of a cSINode and updates it. Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *FakeCSINodes) Update(ctx context.Context, cSINode *v1.CSINode, opts metav1.UpdateOptions) (result *v1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(csinodesResource, cSINode), &v1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSINode), err\n}\n\n// Delete takes name of the cSINode and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSINodes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(csinodesResource, name, opts), &v1.CSINode{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSINodes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(csinodesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.CSINodeList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSINode.\nfunc (c *FakeCSINodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csinodesResource, name, pt, data, subresources...), &v1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSINode), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode.\nfunc (c *FakeCSINodes) Apply(ctx context.Context, cSINode *storagev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSINode, err error) {\n\tif cSINode == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSINode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSINode.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csinodesResource, *name, types.ApplyPatchType, data), &v1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSINode), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype FakeCSIStorageCapacities struct {\n\tFake *FakeStorageV1\n\tns   string\n}\n\nvar csistoragecapacitiesResource = v1.SchemeGroupVersion.WithResource(\"csistoragecapacities\")\n\nvar csistoragecapacitiesKind = v1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\")\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *FakeCSIStorageCapacities) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(csistoragecapacitiesResource, c.ns, name), &v1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIStorageCapacity), err\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *FakeCSIStorageCapacities) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CSIStorageCapacityList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(csistoragecapacitiesResource, csistoragecapacitiesKind, c.ns, opts), &v1.CSIStorageCapacityList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.CSIStorageCapacityList{ListMeta: obj.(*v1.CSIStorageCapacityList).ListMeta}\n\tfor _, item := range obj.(*v1.CSIStorageCapacityList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *FakeCSIStorageCapacities) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(csistoragecapacitiesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.CreateOptions) (result *v1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIStorageCapacity), err\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1.CSIStorageCapacity, opts metav1.UpdateOptions) (result *v1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIStorageCapacity), err\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSIStorageCapacities) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(csistoragecapacitiesResource, c.ns, name, opts), &v1.CSIStorageCapacity{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSIStorageCapacities) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(csistoragecapacitiesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.CSIStorageCapacityList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, name, pt, data, subresources...), &v1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIStorageCapacity), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1.CSIStorageCapacityApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, *name, types.ApplyPatchType, data), &v1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.CSIStorageCapacity), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1) CSIDrivers() v1.CSIDriverInterface {\n\treturn &FakeCSIDrivers{c}\n}\n\nfunc (c *FakeStorageV1) CSINodes() v1.CSINodeInterface {\n\treturn &FakeCSINodes{c}\n}\n\nfunc (c *FakeStorageV1) CSIStorageCapacities(namespace string) v1.CSIStorageCapacityInterface {\n\treturn &FakeCSIStorageCapacities{c, namespace}\n}\n\nfunc (c *FakeStorageV1) StorageClasses() v1.StorageClassInterface {\n\treturn &FakeStorageClasses{c}\n}\n\nfunc (c *FakeStorageV1) VolumeAttachments() v1.VolumeAttachmentInterface {\n\treturn &FakeVolumeAttachments{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStorageClasses implements StorageClassInterface\ntype FakeStorageClasses struct {\n\tFake *FakeStorageV1\n}\n\nvar storageclassesResource = v1.SchemeGroupVersion.WithResource(\"storageclasses\")\n\nvar storageclassesKind = v1.SchemeGroupVersion.WithKind(\"StorageClass\")\n\n// Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any.\nfunc (c *FakeStorageClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(storageclassesResource, name), &v1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StorageClass), err\n}\n\n// List takes label and field selectors, and returns the list of StorageClasses that match those selectors.\nfunc (c *FakeStorageClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.StorageClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(storageclassesResource, storageclassesKind, opts), &v1.StorageClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.StorageClassList{ListMeta: obj.(*v1.StorageClassList).ListMeta}\n\tfor _, item := range obj.(*v1.StorageClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested storageClasses.\nfunc (c *FakeStorageClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(storageclassesResource, opts))\n}\n\n// Create takes the representation of a storageClass and creates it.  Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *FakeStorageClasses) Create(ctx context.Context, storageClass *v1.StorageClass, opts metav1.CreateOptions) (result *v1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(storageclassesResource, storageClass), &v1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StorageClass), err\n}\n\n// Update takes the representation of a storageClass and updates it. Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *FakeStorageClasses) Update(ctx context.Context, storageClass *v1.StorageClass, opts metav1.UpdateOptions) (result *v1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(storageclassesResource, storageClass), &v1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StorageClass), err\n}\n\n// Delete takes name of the storageClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeStorageClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(storageclassesResource, name, opts), &v1.StorageClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStorageClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(storageclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.StorageClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched storageClass.\nfunc (c *FakeStorageClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, pt, data, subresources...), &v1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StorageClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass.\nfunc (c *FakeStorageClasses) Apply(ctx context.Context, storageClass *storagev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StorageClass, err error) {\n\tif storageClass == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(storageClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageclassesResource, *name, types.ApplyPatchType, data), &v1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.StorageClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeVolumeAttachments implements VolumeAttachmentInterface\ntype FakeVolumeAttachments struct {\n\tFake *FakeStorageV1\n}\n\nvar volumeattachmentsResource = v1.SchemeGroupVersion.WithResource(\"volumeattachments\")\n\nvar volumeattachmentsKind = v1.SchemeGroupVersion.WithKind(\"VolumeAttachment\")\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *FakeVolumeAttachments) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(volumeattachmentsResource, name), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *FakeVolumeAttachments) List(ctx context.Context, opts metav1.ListOptions) (result *v1.VolumeAttachmentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &v1.VolumeAttachmentList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1.VolumeAttachmentList{ListMeta: obj.(*v1.VolumeAttachmentList).ListMeta}\n\tfor _, item := range obj.(*v1.VolumeAttachmentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *FakeVolumeAttachments) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts))\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Create(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.CreateOptions) (result *v1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Update(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (result *v1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeVolumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (*v1.VolumeAttachment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, \"status\", volumeAttachment), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *FakeVolumeAttachments) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(volumeattachmentsResource, name, opts), &v1.VolumeAttachment{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeVolumeAttachments) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1.VolumeAttachmentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, \"status\"), &v1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.VolumeAttachment), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CSIDriverExpansion interface{}\n\ntype CSINodeExpansion interface{}\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype StorageClassExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIDriversGetter\n\tCSINodesGetter\n\tCSIStorageCapacitiesGetter\n\tStorageClassesGetter\n\tVolumeAttachmentsGetter\n}\n\n// StorageV1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1Client) CSIDrivers() CSIDriverInterface {\n\treturn newCSIDrivers(c)\n}\n\nfunc (c *StorageV1Client) CSINodes() CSINodeInterface {\n\treturn newCSINodes(c)\n}\n\nfunc (c *StorageV1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1Client) StorageClasses() StorageClassInterface {\n\treturn newStorageClasses(c)\n}\n\nfunc (c *StorageV1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\n// NewForConfig creates a new StorageV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1Client {\n\treturn &StorageV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StorageClassesGetter has a method to return a StorageClassInterface.\n// A group's client should implement this interface.\ntype StorageClassesGetter interface {\n\tStorageClasses() StorageClassInterface\n}\n\n// StorageClassInterface has methods to work with StorageClass resources.\ntype StorageClassInterface interface {\n\tCreate(ctx context.Context, storageClass *v1.StorageClass, opts metav1.CreateOptions) (*v1.StorageClass, error)\n\tUpdate(ctx context.Context, storageClass *v1.StorageClass, opts metav1.UpdateOptions) (*v1.StorageClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.StorageClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.StorageClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StorageClass, err error)\n\tApply(ctx context.Context, storageClass *storagev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StorageClass, err error)\n\tStorageClassExpansion\n}\n\n// storageClasses implements StorageClassInterface\ntype storageClasses struct {\n\tclient rest.Interface\n}\n\n// newStorageClasses returns a StorageClasses\nfunc newStorageClasses(c *StorageV1Client) *storageClasses {\n\treturn &storageClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any.\nfunc (c *storageClasses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.StorageClass, err error) {\n\tresult = &v1.StorageClass{}\n\terr = c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StorageClasses that match those selectors.\nfunc (c *storageClasses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.StorageClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.StorageClassList{}\n\terr = c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested storageClasses.\nfunc (c *storageClasses) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a storageClass and creates it.  Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *storageClasses) Create(ctx context.Context, storageClass *v1.StorageClass, opts metav1.CreateOptions) (result *v1.StorageClass, err error) {\n\tresult = &v1.StorageClass{}\n\terr = c.client.Post().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a storageClass and updates it. Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *storageClasses) Update(ctx context.Context, storageClass *v1.StorageClass, opts metav1.UpdateOptions) (result *v1.StorageClass, err error) {\n\tresult = &v1.StorageClass{}\n\terr = c.client.Put().\n\t\tResource(\"storageclasses\").\n\t\tName(storageClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the storageClass and deletes it. Returns an error if one occurs.\nfunc (c *storageClasses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *storageClasses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched storageClass.\nfunc (c *storageClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StorageClass, err error) {\n\tresult = &v1.StorageClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass.\nfunc (c *storageClasses) Apply(ctx context.Context, storageClass *storagev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StorageClass, err error) {\n\tif storageClass == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(storageClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1.StorageClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"storageclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.CreateOptions) (*v1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (*v1.VolumeAttachment, error)\n\tUpdateStatus(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (*v1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VolumeAttachment, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*v1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error)\n\tApplyStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\tclient rest.Interface\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *volumeAttachments) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.VolumeAttachment, err error) {\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *volumeAttachments) List(ctx context.Context, opts metav1.ListOptions) (result *v1.VolumeAttachmentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1.VolumeAttachmentList{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *volumeAttachments) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Create(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.CreateOptions) (result *v1.VolumeAttachment, err error) {\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Post().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Update(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (result *v1.VolumeAttachment, err error) {\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *volumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1.VolumeAttachment, opts metav1.UpdateOptions) (result *v1.VolumeAttachment, err error) {\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *volumeAttachments) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *volumeAttachments) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VolumeAttachment, err error) {\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (*v1alpha1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (*v1alpha1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1alpha1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *cSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tresult = &v1alpha1.CSIStorageCapacity{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *cSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.CSIStorageCapacityList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.CSIStorageCapacityList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *cSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tresult = &v1alpha1.CSIStorageCapacity{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tresult = &v1alpha1.CSIStorageCapacity{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(cSIStorageCapacity.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *cSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tresult = &v1alpha1.CSIStorageCapacity{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.CSIStorageCapacity{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype FakeCSIStorageCapacities struct {\n\tFake *FakeStorageV1alpha1\n\tns   string\n}\n\nvar csistoragecapacitiesResource = v1alpha1.SchemeGroupVersion.WithResource(\"csistoragecapacities\")\n\nvar csistoragecapacitiesKind = v1alpha1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\")\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *FakeCSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(csistoragecapacitiesResource, c.ns, name), &v1alpha1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.CSIStorageCapacity), err\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *FakeCSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.CSIStorageCapacityList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(csistoragecapacitiesResource, csistoragecapacitiesKind, c.ns, opts), &v1alpha1.CSIStorageCapacityList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.CSIStorageCapacityList{ListMeta: obj.(*v1alpha1.CSIStorageCapacityList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.CSIStorageCapacityList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *FakeCSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(csistoragecapacitiesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1alpha1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.CSIStorageCapacity), err\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1alpha1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.CSIStorageCapacity), err\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(csistoragecapacitiesResource, c.ns, name, opts), &v1alpha1.CSIStorageCapacity{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(csistoragecapacitiesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.CSIStorageCapacityList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, name, pt, data, subresources...), &v1alpha1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.CSIStorageCapacity), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.CSIStorageCapacity), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1alpha1) CSIStorageCapacities(namespace string) v1alpha1.CSIStorageCapacityInterface {\n\treturn &FakeCSIStorageCapacities{c, namespace}\n}\n\nfunc (c *FakeStorageV1alpha1) VolumeAttachments() v1alpha1.VolumeAttachmentInterface {\n\treturn &FakeVolumeAttachments{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeVolumeAttachments implements VolumeAttachmentInterface\ntype FakeVolumeAttachments struct {\n\tFake *FakeStorageV1alpha1\n}\n\nvar volumeattachmentsResource = v1alpha1.SchemeGroupVersion.WithResource(\"volumeattachments\")\n\nvar volumeattachmentsKind = v1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachment\")\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *FakeVolumeAttachments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(volumeattachmentsResource, name), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *FakeVolumeAttachments) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.VolumeAttachmentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &v1alpha1.VolumeAttachmentList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1alpha1.VolumeAttachmentList{ListMeta: obj.(*v1alpha1.VolumeAttachmentList).ListMeta}\n\tfor _, item := range obj.(*v1alpha1.VolumeAttachmentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *FakeVolumeAttachments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts))\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Create(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.CreateOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Update(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeVolumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (*v1alpha1.VolumeAttachment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, \"status\", volumeAttachment), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *FakeVolumeAttachments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(volumeattachmentsResource, name, opts), &v1alpha1.VolumeAttachment{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeVolumeAttachments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1alpha1.VolumeAttachmentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, \"status\"), &v1alpha1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1alpha1.VolumeAttachment), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"net/http\"\n\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIStorageCapacitiesGetter\n\tVolumeAttachmentsGetter\n}\n\n// StorageV1alpha1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1alpha1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1alpha1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\n// NewForConfig creates a new StorageV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1alpha1Client {\n\treturn &StorageV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.CreateOptions) (*v1alpha1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (*v1alpha1.VolumeAttachment, error)\n\tUpdateStatus(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (*v1alpha1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.VolumeAttachment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1alpha1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error)\n\tApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\tclient rest.Interface\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1alpha1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *volumeAttachments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *volumeAttachments) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.VolumeAttachmentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1alpha1.VolumeAttachmentList{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *volumeAttachments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Create(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.CreateOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Post().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Update(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *volumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1alpha1.VolumeAttachment, opts v1.UpdateOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *volumeAttachments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *volumeAttachments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) {\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1alpha1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSIDriversGetter has a method to return a CSIDriverInterface.\n// A group's client should implement this interface.\ntype CSIDriversGetter interface {\n\tCSIDrivers() CSIDriverInterface\n}\n\n// CSIDriverInterface has methods to work with CSIDriver resources.\ntype CSIDriverInterface interface {\n\tCreate(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.CreateOptions) (*v1beta1.CSIDriver, error)\n\tUpdate(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.UpdateOptions) (*v1beta1.CSIDriver, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CSIDriver, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSIDriverList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIDriver, err error)\n\tApply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error)\n\tCSIDriverExpansion\n}\n\n// cSIDrivers implements CSIDriverInterface\ntype cSIDrivers struct {\n\tclient rest.Interface\n}\n\n// newCSIDrivers returns a CSIDrivers\nfunc newCSIDrivers(c *StorageV1beta1Client) *cSIDrivers {\n\treturn &cSIDrivers{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the cSIDriver, and returns the corresponding cSIDriver object, and an error if there is any.\nfunc (c *cSIDrivers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIDriver, err error) {\n\tresult = &v1beta1.CSIDriver{}\n\terr = c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSIDrivers that match those selectors.\nfunc (c *cSIDrivers) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIDriverList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.CSIDriverList{}\n\terr = c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSIDrivers.\nfunc (c *cSIDrivers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSIDriver and creates it.  Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *cSIDrivers) Create(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.CreateOptions) (result *v1beta1.CSIDriver, err error) {\n\tresult = &v1beta1.CSIDriver{}\n\terr = c.client.Post().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIDriver).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSIDriver and updates it. Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *cSIDrivers) Update(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.UpdateOptions) (result *v1beta1.CSIDriver, err error) {\n\tresult = &v1beta1.CSIDriver{}\n\terr = c.client.Put().\n\t\tResource(\"csidrivers\").\n\t\tName(cSIDriver.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIDriver).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSIDriver and deletes it. Returns an error if one occurs.\nfunc (c *cSIDrivers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSIDrivers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"csidrivers\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSIDriver.\nfunc (c *cSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIDriver, err error) {\n\tresult = &v1beta1.CSIDriver{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"csidrivers\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver.\nfunc (c *cSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error) {\n\tif cSIDriver == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSIDriver)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIDriver.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.CSIDriver{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"csidrivers\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSINodesGetter has a method to return a CSINodeInterface.\n// A group's client should implement this interface.\ntype CSINodesGetter interface {\n\tCSINodes() CSINodeInterface\n}\n\n// CSINodeInterface has methods to work with CSINode resources.\ntype CSINodeInterface interface {\n\tCreate(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.CreateOptions) (*v1beta1.CSINode, error)\n\tUpdate(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.UpdateOptions) (*v1beta1.CSINode, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CSINode, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSINodeList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSINode, err error)\n\tApply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error)\n\tCSINodeExpansion\n}\n\n// cSINodes implements CSINodeInterface\ntype cSINodes struct {\n\tclient rest.Interface\n}\n\n// newCSINodes returns a CSINodes\nfunc newCSINodes(c *StorageV1beta1Client) *cSINodes {\n\treturn &cSINodes{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the cSINode, and returns the corresponding cSINode object, and an error if there is any.\nfunc (c *cSINodes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSINode, err error) {\n\tresult = &v1beta1.CSINode{}\n\terr = c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSINodes that match those selectors.\nfunc (c *cSINodes) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSINodeList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.CSINodeList{}\n\terr = c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSINodes.\nfunc (c *cSINodes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSINode and creates it.  Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *cSINodes) Create(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.CreateOptions) (result *v1beta1.CSINode, err error) {\n\tresult = &v1beta1.CSINode{}\n\terr = c.client.Post().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSINode).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSINode and updates it. Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *cSINodes) Update(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.UpdateOptions) (result *v1beta1.CSINode, err error) {\n\tresult = &v1beta1.CSINode{}\n\terr = c.client.Put().\n\t\tResource(\"csinodes\").\n\t\tName(cSINode.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSINode).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSINode and deletes it. Returns an error if one occurs.\nfunc (c *cSINodes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSINodes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"csinodes\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSINode.\nfunc (c *cSINodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSINode, err error) {\n\tresult = &v1beta1.CSINode{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"csinodes\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode.\nfunc (c *cSINodes) Apply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error) {\n\tif cSINode == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSINode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSINode.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.CSINode{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"csinodes\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (*v1beta1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (*v1beta1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\tclient rest.Interface\n\tns     string\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1beta1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tclient: c.RESTClient(),\n\t\tns:     namespace,\n\t}\n}\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *cSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tresult = &v1beta1.CSIStorageCapacity{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *cSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIStorageCapacityList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.CSIStorageCapacityList{}\n\terr = c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *cSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tresult = &v1beta1.CSIStorageCapacity{}\n\terr = c.client.Post().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *cSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tresult = &v1beta1.CSIStorageCapacity{}\n\terr = c.client.Put().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(cSIStorageCapacity.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(cSIStorageCapacity).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *cSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *cSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error) {\n\tresult = &v1beta1.CSIStorageCapacity{}\n\terr = c.client.Patch(pt).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *cSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.CSIStorageCapacity{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tNamespace(c.ns).\n\t\tResource(\"csistoragecapacities\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSIDrivers implements CSIDriverInterface\ntype FakeCSIDrivers struct {\n\tFake *FakeStorageV1beta1\n}\n\nvar csidriversResource = v1beta1.SchemeGroupVersion.WithResource(\"csidrivers\")\n\nvar csidriversKind = v1beta1.SchemeGroupVersion.WithKind(\"CSIDriver\")\n\n// Get takes name of the cSIDriver, and returns the corresponding cSIDriver object, and an error if there is any.\nfunc (c *FakeCSIDrivers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(csidriversResource, name), &v1beta1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIDriver), err\n}\n\n// List takes label and field selectors, and returns the list of CSIDrivers that match those selectors.\nfunc (c *FakeCSIDrivers) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIDriverList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(csidriversResource, csidriversKind, opts), &v1beta1.CSIDriverList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.CSIDriverList{ListMeta: obj.(*v1beta1.CSIDriverList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.CSIDriverList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSIDrivers.\nfunc (c *FakeCSIDrivers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(csidriversResource, opts))\n}\n\n// Create takes the representation of a cSIDriver and creates it.  Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *FakeCSIDrivers) Create(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.CreateOptions) (result *v1beta1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(csidriversResource, cSIDriver), &v1beta1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIDriver), err\n}\n\n// Update takes the representation of a cSIDriver and updates it. Returns the server's representation of the cSIDriver, and an error, if there is any.\nfunc (c *FakeCSIDrivers) Update(ctx context.Context, cSIDriver *v1beta1.CSIDriver, opts v1.UpdateOptions) (result *v1beta1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(csidriversResource, cSIDriver), &v1beta1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIDriver), err\n}\n\n// Delete takes name of the cSIDriver and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSIDrivers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(csidriversResource, name, opts), &v1beta1.CSIDriver{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSIDrivers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(csidriversResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.CSIDriverList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSIDriver.\nfunc (c *FakeCSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIDriver, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csidriversResource, name, pt, data, subresources...), &v1beta1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIDriver), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver.\nfunc (c *FakeCSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error) {\n\tif cSIDriver == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSIDriver)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIDriver.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIDriver.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csidriversResource, *name, types.ApplyPatchType, data), &v1beta1.CSIDriver{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIDriver), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSINodes implements CSINodeInterface\ntype FakeCSINodes struct {\n\tFake *FakeStorageV1beta1\n}\n\nvar csinodesResource = v1beta1.SchemeGroupVersion.WithResource(\"csinodes\")\n\nvar csinodesKind = v1beta1.SchemeGroupVersion.WithKind(\"CSINode\")\n\n// Get takes name of the cSINode, and returns the corresponding cSINode object, and an error if there is any.\nfunc (c *FakeCSINodes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(csinodesResource, name), &v1beta1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSINode), err\n}\n\n// List takes label and field selectors, and returns the list of CSINodes that match those selectors.\nfunc (c *FakeCSINodes) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSINodeList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(csinodesResource, csinodesKind, opts), &v1beta1.CSINodeList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.CSINodeList{ListMeta: obj.(*v1beta1.CSINodeList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.CSINodeList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSINodes.\nfunc (c *FakeCSINodes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(csinodesResource, opts))\n}\n\n// Create takes the representation of a cSINode and creates it.  Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *FakeCSINodes) Create(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.CreateOptions) (result *v1beta1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(csinodesResource, cSINode), &v1beta1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSINode), err\n}\n\n// Update takes the representation of a cSINode and updates it. Returns the server's representation of the cSINode, and an error, if there is any.\nfunc (c *FakeCSINodes) Update(ctx context.Context, cSINode *v1beta1.CSINode, opts v1.UpdateOptions) (result *v1beta1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(csinodesResource, cSINode), &v1beta1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSINode), err\n}\n\n// Delete takes name of the cSINode and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSINodes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(csinodesResource, name, opts), &v1beta1.CSINode{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSINodes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(csinodesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.CSINodeList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSINode.\nfunc (c *FakeCSINodes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSINode, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csinodesResource, name, pt, data, subresources...), &v1beta1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSINode), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode.\nfunc (c *FakeCSINodes) Apply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error) {\n\tif cSINode == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSINode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSINode.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSINode.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(csinodesResource, *name, types.ApplyPatchType, data), &v1beta1.CSINode{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSINode), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype FakeCSIStorageCapacities struct {\n\tFake *FakeStorageV1beta1\n\tns   string\n}\n\nvar csistoragecapacitiesResource = v1beta1.SchemeGroupVersion.WithResource(\"csistoragecapacities\")\n\nvar csistoragecapacitiesKind = v1beta1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\")\n\n// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.\nfunc (c *FakeCSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetAction(csistoragecapacitiesResource, c.ns, name), &v1beta1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIStorageCapacity), err\n}\n\n// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.\nfunc (c *FakeCSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIStorageCapacityList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewListAction(csistoragecapacitiesResource, csistoragecapacitiesKind, c.ns, opts), &v1beta1.CSIStorageCapacityList{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.CSIStorageCapacityList{ListMeta: obj.(*v1beta1.CSIStorageCapacityList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.CSIStorageCapacityList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.\nfunc (c *FakeCSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchAction(csistoragecapacitiesResource, c.ns, opts))\n\n}\n\n// Create takes the representation of a cSIStorageCapacity and creates it.  Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1beta1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIStorageCapacity), err\n}\n\n// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.\nfunc (c *FakeCSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1beta1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIStorageCapacity), err\n}\n\n// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.\nfunc (c *FakeCSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(csistoragecapacitiesResource, c.ns, name, opts), &v1beta1.CSIStorageCapacity{})\n\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeCSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewDeleteCollectionAction(csistoragecapacitiesResource, c.ns, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.CSIStorageCapacityList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, name, pt, data, subresources...), &v1beta1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIStorageCapacity), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity.\nfunc (c *FakeCSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error) {\n\tif cSIStorageCapacity == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(cSIStorageCapacity)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := cSIStorageCapacity.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"cSIStorageCapacity.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.CSIStorageCapacity{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.CSIStorageCapacity), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1beta1) CSIDrivers() v1beta1.CSIDriverInterface {\n\treturn &FakeCSIDrivers{c}\n}\n\nfunc (c *FakeStorageV1beta1) CSINodes() v1beta1.CSINodeInterface {\n\treturn &FakeCSINodes{c}\n}\n\nfunc (c *FakeStorageV1beta1) CSIStorageCapacities(namespace string) v1beta1.CSIStorageCapacityInterface {\n\treturn &FakeCSIStorageCapacities{c, namespace}\n}\n\nfunc (c *FakeStorageV1beta1) StorageClasses() v1beta1.StorageClassInterface {\n\treturn &FakeStorageClasses{c}\n}\n\nfunc (c *FakeStorageV1beta1) VolumeAttachments() v1beta1.VolumeAttachmentInterface {\n\treturn &FakeVolumeAttachments{c}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeStorageClasses implements StorageClassInterface\ntype FakeStorageClasses struct {\n\tFake *FakeStorageV1beta1\n}\n\nvar storageclassesResource = v1beta1.SchemeGroupVersion.WithResource(\"storageclasses\")\n\nvar storageclassesKind = v1beta1.SchemeGroupVersion.WithKind(\"StorageClass\")\n\n// Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any.\nfunc (c *FakeStorageClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(storageclassesResource, name), &v1beta1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StorageClass), err\n}\n\n// List takes label and field selectors, and returns the list of StorageClasses that match those selectors.\nfunc (c *FakeStorageClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.StorageClassList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(storageclassesResource, storageclassesKind, opts), &v1beta1.StorageClassList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.StorageClassList{ListMeta: obj.(*v1beta1.StorageClassList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.StorageClassList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested storageClasses.\nfunc (c *FakeStorageClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(storageclassesResource, opts))\n}\n\n// Create takes the representation of a storageClass and creates it.  Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *FakeStorageClasses) Create(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.CreateOptions) (result *v1beta1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(storageclassesResource, storageClass), &v1beta1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StorageClass), err\n}\n\n// Update takes the representation of a storageClass and updates it. Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *FakeStorageClasses) Update(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.UpdateOptions) (result *v1beta1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(storageclassesResource, storageClass), &v1beta1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StorageClass), err\n}\n\n// Delete takes name of the storageClass and deletes it. Returns an error if one occurs.\nfunc (c *FakeStorageClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(storageclassesResource, name, opts), &v1beta1.StorageClass{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeStorageClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(storageclassesResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.StorageClassList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched storageClass.\nfunc (c *FakeStorageClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StorageClass, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, pt, data, subresources...), &v1beta1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StorageClass), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass.\nfunc (c *FakeStorageClasses) Apply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error) {\n\tif storageClass == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(storageClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(storageclassesResource, *name, types.ApplyPatchType, data), &v1beta1.StorageClass{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.StorageClass), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeVolumeAttachments implements VolumeAttachmentInterface\ntype FakeVolumeAttachments struct {\n\tFake *FakeStorageV1beta1\n}\n\nvar volumeattachmentsResource = v1beta1.SchemeGroupVersion.WithResource(\"volumeattachments\")\n\nvar volumeattachmentsKind = v1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachment\")\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *FakeVolumeAttachments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootGetAction(volumeattachmentsResource, name), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *FakeVolumeAttachments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.VolumeAttachmentList, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &v1beta1.VolumeAttachmentList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\tlabel = labels.Everything()\n\t}\n\tlist := &v1beta1.VolumeAttachmentList{ListMeta: obj.(*v1beta1.VolumeAttachmentList).ListMeta}\n\tfor _, item := range obj.(*v1beta1.VolumeAttachmentList).Items {\n\t\tif label.Matches(labels.Set(item.Labels)) {\n\t\t\tlist.Items = append(list.Items, item)\n\t\t}\n\t}\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *FakeVolumeAttachments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts))\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Create(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.CreateOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *FakeVolumeAttachments) Update(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *FakeVolumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (*v1beta1.VolumeAttachment, error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, \"status\", volumeAttachment), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *FakeVolumeAttachments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewRootDeleteActionWithOptions(volumeattachmentsResource, name, opts), &v1beta1.VolumeAttachment{})\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *FakeVolumeAttachments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\taction := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOpts)\n\n\t_, err := c.Fake.Invokes(action, &v1beta1.VolumeAttachmentList{})\n\treturn err\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.VolumeAttachment, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, \"status\"), &v1beta1.VolumeAttachment{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1beta1.VolumeAttachment), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype CSIDriverExpansion interface{}\n\ntype CSINodeExpansion interface{}\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype StorageClassExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"net/http\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIDriversGetter\n\tCSINodesGetter\n\tCSIStorageCapacitiesGetter\n\tStorageClassesGetter\n\tVolumeAttachmentsGetter\n}\n\n// StorageV1beta1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1beta1Client) CSIDrivers() CSIDriverInterface {\n\treturn newCSIDrivers(c)\n}\n\nfunc (c *StorageV1beta1Client) CSINodes() CSINodeInterface {\n\treturn newCSINodes(c)\n}\n\nfunc (c *StorageV1beta1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1beta1Client) StorageClasses() StorageClassInterface {\n\treturn newStorageClasses(c)\n}\n\nfunc (c *StorageV1beta1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\n// NewForConfig creates a new StorageV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1beta1Client {\n\treturn &StorageV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := v1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = scheme.Codecs.WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// StorageClassesGetter has a method to return a StorageClassInterface.\n// A group's client should implement this interface.\ntype StorageClassesGetter interface {\n\tStorageClasses() StorageClassInterface\n}\n\n// StorageClassInterface has methods to work with StorageClass resources.\ntype StorageClassInterface interface {\n\tCreate(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.CreateOptions) (*v1beta1.StorageClass, error)\n\tUpdate(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.UpdateOptions) (*v1beta1.StorageClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.StorageClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.StorageClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StorageClass, err error)\n\tApply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error)\n\tStorageClassExpansion\n}\n\n// storageClasses implements StorageClassInterface\ntype storageClasses struct {\n\tclient rest.Interface\n}\n\n// newStorageClasses returns a StorageClasses\nfunc newStorageClasses(c *StorageV1beta1Client) *storageClasses {\n\treturn &storageClasses{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any.\nfunc (c *storageClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.StorageClass, err error) {\n\tresult = &v1beta1.StorageClass{}\n\terr = c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of StorageClasses that match those selectors.\nfunc (c *storageClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.StorageClassList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.StorageClassList{}\n\terr = c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested storageClasses.\nfunc (c *storageClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a storageClass and creates it.  Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *storageClasses) Create(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.CreateOptions) (result *v1beta1.StorageClass, err error) {\n\tresult = &v1beta1.StorageClass{}\n\terr = c.client.Post().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a storageClass and updates it. Returns the server's representation of the storageClass, and an error, if there is any.\nfunc (c *storageClasses) Update(ctx context.Context, storageClass *v1beta1.StorageClass, opts v1.UpdateOptions) (result *v1beta1.StorageClass, err error) {\n\tresult = &v1beta1.StorageClass{}\n\terr = c.client.Put().\n\t\tResource(\"storageclasses\").\n\t\tName(storageClass.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(storageClass).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the storageClass and deletes it. Returns an error if one occurs.\nfunc (c *storageClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *storageClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"storageclasses\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched storageClass.\nfunc (c *storageClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StorageClass, err error) {\n\tresult = &v1beta1.StorageClass{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"storageclasses\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass.\nfunc (c *storageClasses) Apply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error) {\n\tif storageClass == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(storageClass)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := storageClass.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"storageClass.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.StorageClass{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"storageclasses\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.CreateOptions) (*v1beta1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (*v1beta1.VolumeAttachment, error)\n\tUpdateStatus(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (*v1beta1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.VolumeAttachment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*v1beta1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error)\n\tApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\tclient rest.Interface\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1beta1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tclient: c.RESTClient(),\n\t}\n}\n\n// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any.\nfunc (c *volumeAttachments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors.\nfunc (c *volumeAttachments) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.VolumeAttachmentList, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = &v1beta1.VolumeAttachmentList{}\n\terr = c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested volumeAttachments.\nfunc (c *volumeAttachments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a volumeAttachment and creates it.  Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Create(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.CreateOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Post().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any.\nfunc (c *volumeAttachments) Update(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\nfunc (c *volumeAttachments) UpdateStatus(ctx context.Context, volumeAttachment *v1beta1.VolumeAttachment, opts v1.UpdateOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Put().\n\t\tResource(\"volumeattachments\").\n\t\tName(volumeAttachment.Name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(volumeAttachment).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs.\nfunc (c *volumeAttachments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (c *volumeAttachments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn c.client.Delete().\n\t\tResource(\"volumeattachments\").\n\t\tVersionedParams(&listOpts, scheme.ParameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched volumeAttachment.\nfunc (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.VolumeAttachment, err error) {\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Patch(pt).\n\t\tResource(\"volumeattachments\").\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment.\nfunc (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyStatus was generated because the type contains a Status member.\n// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\nfunc (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) {\n\tif volumeAttachment == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tdata, err := json.Marshal(volumeAttachment)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname := volumeAttachment.Name\n\tif name == nil {\n\t\treturn nil, fmt.Errorf(\"volumeAttachment.Name must be provided to Apply\")\n\t}\n\n\tresult = &v1beta1.VolumeAttachment{}\n\terr = c.client.Patch(types.ApplyPatchType).\n\t\tResource(\"volumeattachments\").\n\t\tName(*name).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/client.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"k8s.io/client-go/rest\"\n\t\"k8s.io/kube-openapi/pkg/handler3\"\n)\n\ntype Client interface {\n\tPaths() (map[string]GroupVersion, error)\n}\n\ntype client struct {\n\t// URL includes the `hash` query param to take advantage of cache busting\n\trestClient rest.Interface\n}\n\nfunc NewClient(restClient rest.Interface) Client {\n\treturn &client{\n\t\trestClient: restClient,\n\t}\n}\n\nfunc (c *client) Paths() (map[string]GroupVersion, error) {\n\tdata, err := c.restClient.Get().\n\t\tAbsPath(\"/openapi/v3\").\n\t\tDo(context.TODO()).\n\t\tRaw()\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiscoMap := &handler3.OpenAPIV3Discovery{}\n\terr = json.Unmarshal(data, discoMap)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Create GroupVersions for each element of the result\n\tresult := map[string]GroupVersion{}\n\tfor k, v := range discoMap.Paths {\n\t\t// If the server returned a URL rooted at /openapi/v3, preserve any additional client-side prefix.\n\t\t// If the server returned a URL not rooted at /openapi/v3, treat it as an actual server-relative URL.\n\t\t// See https://github.com/kubernetes/kubernetes/issues/117463 for details\n\t\tuseClientPrefix := strings.HasPrefix(v.ServerRelativeURL, \"/openapi/v3\")\n\t\tresult[k] = newGroupVersion(c, v, useClientPrefix)\n\t}\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/groupversion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"k8s.io/kube-openapi/pkg/handler3\"\n)\n\nconst ContentTypeOpenAPIV3PB = \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf\"\n\ntype GroupVersion interface {\n\tSchema(contentType string) ([]byte, error)\n}\n\ntype groupversion struct {\n\tclient          *client\n\titem            handler3.OpenAPIV3DiscoveryGroupVersion\n\tuseClientPrefix bool\n}\n\nfunc newGroupVersion(client *client, item handler3.OpenAPIV3DiscoveryGroupVersion, useClientPrefix bool) *groupversion {\n\treturn &groupversion{client: client, item: item, useClientPrefix: useClientPrefix}\n}\n\nfunc (g *groupversion) Schema(contentType string) ([]byte, error) {\n\tif !g.useClientPrefix {\n\t\treturn g.client.restClient.Get().\n\t\t\tRequestURI(g.item.ServerRelativeURL).\n\t\t\tSetHeader(\"Accept\", contentType).\n\t\t\tDo(context.TODO()).\n\t\t\tRaw()\n\t}\n\n\tlocator, err := url.Parse(g.item.ServerRelativeURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpath := g.client.restClient.Get().\n\t\tAbsPath(locator.Path).\n\t\tSetHeader(\"Accept\", contentType)\n\n\t// Other than root endpoints(openapiv3/apis), resources have hash query parameter to support etags.\n\t// However, absPath does not support handling query parameters internally,\n\t// so that hash query parameter is added manually\n\tfor k, value := range locator.Query() {\n\t\tfor _, v := range value {\n\t\t\tpath.Param(k, v)\n\t\t}\n\t}\n\n\treturn path.Do(context.TODO()).Raw()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\n# approval on api packages bubbles to api-approvers\nreviewers:\n  - sig-auth-authenticators-approvers\n  - sig-auth-authenticators-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +groupName=client.authentication.k8s.io\n\npackage clientauthentication // import \"k8s.io/client-go/pkg/apis/clientauthentication\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/install/install.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package install installs the experimental API group, making it available as\n// an option to all of the API encoding/decoding machinery.\npackage install\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n)\n\n// Install registers the API group and adds types to a scheme\nfunc Install(scheme *runtime.Scheme) {\n\tutilruntime.Must(clientauthentication.AddToScheme(scheme))\n\tutilruntime.Must(v1.AddToScheme(scheme))\n\tutilruntime.Must(v1beta1.AddToScheme(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clientauthentication\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clientauthentication\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta\n\n\t// Spec holds information passed to the plugin by the transport. This contains\n\t// request and runtime specific information, such as if the session is interactive.\n\tSpec ExecCredentialSpec\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Interactive is true when the transport detects the command is being called from an\n\t// interactive prompt, i.e., when stdin has been passed to this exec plugin.\n\t// +optional\n\tInteractive bool\n\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time\n\t// Token is a bearer token used by the client for request authentication.\n\t// +optional\n\tToken string `datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificate.\n\t// +optional\n\tClientCertificateData string\n\t// PEM-encoded client TLS private key.\n\t// +optional\n\tClientKeyData string `datapolicy:\"secret-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.Object\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=client.authentication.k8s.io\n\npackage v1 // import \"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\nfunc init() {\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tlocalSchemeBuilder.Register(addKnownTypes)\n}\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Spec holds information passed to the plugin by the transport.\n\tSpec ExecCredentialSpec `json:\"spec,omitempty\"`\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus `json:\"status,omitempty\"`\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster `json:\"cluster,omitempty\"`\n\n\t// Interactive declares whether stdin has been passed to this exec plugin.\n\tInteractive bool `json:\"interactive\"`\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\n//\n// Token and ClientKeyData are sensitive fields. This data should only be\n// transmitted in-memory between client and exec plugin process. Exec plugin\n// itself should at least be protected via file permissions.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time `json:\"expirationTimestamp,omitempty\"`\n\t// Token is a bearer token used by the client for request authentication.\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificates (including intermediates, if any).\n\tClientCertificateData string `json:\"clientCertificateData,omitempty\"`\n\t// PEM-encoded private key for the above certificate.\n\tClientKeyData string `json:\"clientKeyData,omitempty\" datapolicy:\"security-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.RawExtension `json:\"config,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tunsafe \"unsafe\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tclientauthentication \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*clientauthentication.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Cluster_To_clientauthentication_Cluster(a.(*Cluster), b.(*clientauthentication.Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_Cluster_To_v1_Cluster(a.(*clientauthentication.Cluster), b.(*Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredential_To_v1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_v1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_v1_Cluster_To_clientauthentication_Cluster is an autogenerated conversion function.\nfunc Convert_v1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\treturn autoConvert_v1_Cluster_To_clientauthentication_Cluster(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_Cluster_To_v1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_Cluster_To_v1_Cluster is an autogenerated conversion function.\nfunc Convert_clientauthentication_Cluster_To_v1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_Cluster_To_v1_Cluster(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\tif err := Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_v1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function.\nfunc Convert_v1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredential_To_v1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\tif err := Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredential_To_v1_ExecCredential is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredential_To_v1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredential_To_v1_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(clientauthentication.Cluster)\n\t\tif err := Convert_v1_Cluster_To_clientauthentication_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\tout.Interactive = in.Interactive\n\treturn nil\n}\n\n// Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\tout.Interactive = in.Interactive\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\tif err := Convert_clientauthentication_Cluster_To_v1_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*metav1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*metav1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Config.DeepCopyInto(&out.Config)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=client.authentication.k8s.io\n\npackage v1beta1 // import \"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\nfunc init() {\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tlocalSchemeBuilder.Register(addKnownTypes)\n}\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Spec holds information passed to the plugin by the transport.\n\tSpec ExecCredentialSpec `json:\"spec,omitempty\"`\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus `json:\"status,omitempty\"`\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster `json:\"cluster,omitempty\"`\n\n\t// Interactive declares whether stdin has been passed to this exec plugin.\n\tInteractive bool `json:\"interactive\"`\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\n//\n// Token and ClientKeyData are sensitive fields. This data should only be\n// transmitted in-memory between client and exec plugin process. Exec plugin\n// itself should at least be protected via file permissions.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time `json:\"expirationTimestamp,omitempty\"`\n\t// Token is a bearer token used by the client for request authentication.\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificates (including intermediates, if any).\n\tClientCertificateData string `json:\"clientCertificateData,omitempty\"`\n\t// PEM-encoded private key for the above certificate.\n\tClientKeyData string `json:\"clientKeyData,omitempty\" datapolicy:\"security-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.RawExtension `json:\"config,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tunsafe \"unsafe\"\n\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tclientauthentication \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*clientauthentication.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_Cluster_To_clientauthentication_Cluster(a.(*Cluster), b.(*clientauthentication.Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_Cluster_To_v1beta1_Cluster(a.(*clientauthentication.Cluster), b.(*Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_v1beta1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_v1beta1_Cluster_To_clientauthentication_Cluster is an autogenerated conversion function.\nfunc Convert_v1beta1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_Cluster_To_clientauthentication_Cluster(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_Cluster_To_v1beta1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_Cluster_To_v1beta1_Cluster is an autogenerated conversion function.\nfunc Convert_clientauthentication_Cluster_To_v1beta1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_Cluster_To_v1beta1_Cluster(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\tif err := Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\tif err := Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(clientauthentication.Cluster)\n\t\tif err := Convert_v1beta1_Cluster_To_clientauthentication_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\tout.Interactive = in.Interactive\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\tout.Interactive = in.Interactive\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\tif err := Convert_clientauthentication_Cluster_To_v1beta1_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Config.DeepCopyInto(&out.Config)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage clientauthentication\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tout.Config = in.Config.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/base.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\n// Base version information.\n//\n// This is the fallback data used when version information from git is not\n// provided via go ldflags. It provides an approximation of the Kubernetes\n// version for ad-hoc builds (e.g. `go build`) that cannot get the version\n// information from git.\n//\n// If you are looking at these fields in the git tree, they look\n// strange. They are modified on the fly by the build process. The\n// in-tree values are dummy values used for \"git archive\", which also\n// works for GitHub tar downloads.\n//\n// When releasing a new Kubernetes version, this file is updated by\n// build/mark_new_version.sh to reflect the new version, and then a\n// git annotated tag (using format vX.Y where X == Major version and Y\n// == Minor version) is created to point to the commit that updates\n// pkg/version/base.go\nvar (\n\t// TODO: Deprecate gitMajor and gitMinor, use only gitVersion\n\t// instead. First step in deprecation, keep the fields but make\n\t// them irrelevant. (Next we'll take it out, which may muck with\n\t// scripts consuming the kubectl version output - but most of\n\t// these should be looking at gitVersion already anyways.)\n\tgitMajor string = \"\" // major version, always numeric\n\tgitMinor string = \"\" // minor version, numeric possibly followed by \"+\"\n\n\t// semantic version, derived by build scripts (see\n\t// https://github.com/kubernetes/sig-release/blob/master/release-engineering/versioning.md#kubernetes-release-versioning\n\t// https://kubernetes.io/releases/version-skew-policy/\n\t// for a detailed discussion of this field)\n\t//\n\t// TODO: This field is still called \"gitVersion\" for legacy\n\t// reasons. For prerelease versions, the build metadata on the\n\t// semantic version is a git hash, but the version itself is no\n\t// longer the direct output of \"git describe\", but a slight\n\t// translation to be semver compliant.\n\n\t// NOTE: The $Format strings are replaced during 'git archive' thanks to the\n\t// companion .gitattributes file containing 'export-subst' in this same\n\t// directory.  See also https://git-scm.com/docs/gitattributes\n\tgitVersion   string = \"v0.0.0-master+$Format:%H$\"\n\tgitCommit    string = \"$Format:%H$\" // sha1 from git, output of $(git rev-parse HEAD)\n\tgitTreeState string = \"\"            // state of git tree, either \"clean\" or \"dirty\"\n\n\tbuildDate string = \"1970-01-01T00:00:00Z\" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')\n)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\n// Package version supplies version information collected at build time to\n// kubernetes components.\npackage version // import \"k8s.io/client-go/pkg/version\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/version.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\n\tapimachineryversion \"k8s.io/apimachinery/pkg/version\"\n)\n\n// Get returns the overall codebase version. It's for detecting\n// what code a binary was built from.\nfunc Get() apimachineryversion.Info {\n\t// These variables typically come from -ldflags settings and in\n\t// their absence fallback to the settings in pkg/version/base.go\n\treturn apimachineryversion.Info{\n\t\tMajor:        gitMajor,\n\t\tMinor:        gitMinor,\n\t\tGitVersion:   gitVersion,\n\t\tGitCommit:    gitCommit,\n\t\tGitTreeState: gitTreeState,\n\t\tBuildDate:    buildDate,\n\t\tGoVersion:    runtime.Version(),\n\t\tCompiler:     runtime.Compiler,\n\t\tPlatform:     fmt.Sprintf(\"%s/%s\", runtime.GOOS, runtime.GOARCH),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage exec\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/exec\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"golang.org/x/term\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/install\"\n\tclientauthenticationv1 \"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n\tclientauthenticationv1beta1 \"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n\t\"k8s.io/client-go/tools/clientcmd/api\"\n\t\"k8s.io/client-go/tools/metrics\"\n\t\"k8s.io/client-go/transport\"\n\t\"k8s.io/client-go/util/connrotation\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n)\n\nconst execInfoEnv = \"KUBERNETES_EXEC_INFO\"\nconst installHintVerboseHelp = `\n\nIt looks like you are trying to use a client-go credential plugin that is not installed.\n\nTo learn more about this feature, consult the documentation available at:\n      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins`\n\nvar scheme = runtime.NewScheme()\nvar codecs = serializer.NewCodecFactory(scheme)\n\nfunc init() {\n\tinstall.Install(scheme)\n}\n\nvar (\n\t// Since transports can be constantly re-initialized by programs like kubectl,\n\t// keep a cache of initialized authenticators keyed by a hash of their config.\n\tglobalCache = newCache()\n\t// The list of API versions we accept.\n\tapiVersions = map[string]schema.GroupVersion{\n\t\tclientauthenticationv1beta1.SchemeGroupVersion.String(): clientauthenticationv1beta1.SchemeGroupVersion,\n\t\tclientauthenticationv1.SchemeGroupVersion.String():      clientauthenticationv1.SchemeGroupVersion,\n\t}\n)\n\nfunc newCache() *cache {\n\treturn &cache{m: make(map[string]*Authenticator)}\n}\n\nvar spewConfig = &spew.ConfigState{DisableMethods: true, Indent: \" \"}\n\nfunc cacheKey(conf *api.ExecConfig, cluster *clientauthentication.Cluster) string {\n\tkey := struct {\n\t\tconf    *api.ExecConfig\n\t\tcluster *clientauthentication.Cluster\n\t}{\n\t\tconf:    conf,\n\t\tcluster: cluster,\n\t}\n\treturn spewConfig.Sprint(key)\n}\n\ntype cache struct {\n\tmu sync.Mutex\n\tm  map[string]*Authenticator\n}\n\nfunc (c *cache) get(s string) (*Authenticator, bool) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\ta, ok := c.m[s]\n\treturn a, ok\n}\n\n// put inserts an authenticator into the cache. If an authenticator is already\n// associated with the key, the first one is returned instead.\nfunc (c *cache) put(s string, a *Authenticator) *Authenticator {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\texisting, ok := c.m[s]\n\tif ok {\n\t\treturn existing\n\t}\n\tc.m[s] = a\n\treturn a\n}\n\n// sometimes rate limits how often a function f() is called. Specifically, Do()\n// will run the provided function f() up to threshold times every interval\n// duration.\ntype sometimes struct {\n\tthreshold int\n\tinterval  time.Duration\n\n\tclock clock.Clock\n\tmu    sync.Mutex\n\n\tcount  int       // times we have called f() in this window\n\twindow time.Time // beginning of current window of length interval\n}\n\nfunc (s *sometimes) Do(f func()) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tnow := s.clock.Now()\n\tif s.window.IsZero() {\n\t\ts.window = now\n\t}\n\n\t// If we are no longer in our saved time window, then we get to reset our run\n\t// count back to 0 and start increasing towards the threshold again.\n\tif inWindow := now.Sub(s.window) < s.interval; !inWindow {\n\t\ts.window = now\n\t\ts.count = 0\n\t}\n\n\t// If we have not run the function more than threshold times in this current\n\t// time window, we get to run it now!\n\tif underThreshold := s.count < s.threshold; underThreshold {\n\t\ts.count++\n\t\tf()\n\t}\n}\n\n// GetAuthenticator returns an exec-based plugin for providing client credentials.\nfunc GetAuthenticator(config *api.ExecConfig, cluster *clientauthentication.Cluster) (*Authenticator, error) {\n\treturn newAuthenticator(globalCache, term.IsTerminal, config, cluster)\n}\n\nfunc newAuthenticator(c *cache, isTerminalFunc func(int) bool, config *api.ExecConfig, cluster *clientauthentication.Cluster) (*Authenticator, error) {\n\tkey := cacheKey(config, cluster)\n\tif a, ok := c.get(key); ok {\n\t\treturn a, nil\n\t}\n\n\tgv, ok := apiVersions[config.APIVersion]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"exec plugin: invalid apiVersion %q\", config.APIVersion)\n\t}\n\n\tconnTracker := connrotation.NewConnectionTracker()\n\tdefaultDialer := connrotation.NewDialerWithTracker(\n\t\t(&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext,\n\t\tconnTracker,\n\t)\n\n\ta := &Authenticator{\n\t\tcmd:                config.Command,\n\t\targs:               config.Args,\n\t\tgroup:              gv,\n\t\tcluster:            cluster,\n\t\tprovideClusterInfo: config.ProvideClusterInfo,\n\n\t\tinstallHint: config.InstallHint,\n\t\tsometimes: &sometimes{\n\t\t\tthreshold: 10,\n\t\t\tinterval:  time.Hour,\n\t\t\tclock:     clock.RealClock{},\n\t\t},\n\n\t\tstdin:           os.Stdin,\n\t\tstderr:          os.Stderr,\n\t\tinteractiveFunc: func() (bool, error) { return isInteractive(isTerminalFunc, config) },\n\t\tnow:             time.Now,\n\t\tenviron:         os.Environ,\n\n\t\tconnTracker: connTracker,\n\t}\n\n\tfor _, env := range config.Env {\n\t\ta.env = append(a.env, env.Name+\"=\"+env.Value)\n\t}\n\n\t// these functions are made comparable and stored in the cache so that repeated clientset\n\t// construction with the same rest.Config results in a single TLS cache and Authenticator\n\ta.getCert = &transport.GetCertHolder{GetCert: a.cert}\n\ta.dial = &transport.DialHolder{Dial: defaultDialer.DialContext}\n\n\treturn c.put(key, a), nil\n}\n\nfunc isInteractive(isTerminalFunc func(int) bool, config *api.ExecConfig) (bool, error) {\n\tvar shouldBeInteractive bool\n\tswitch config.InteractiveMode {\n\tcase api.NeverExecInteractiveMode:\n\t\tshouldBeInteractive = false\n\tcase api.IfAvailableExecInteractiveMode:\n\t\tshouldBeInteractive = !config.StdinUnavailable && isTerminalFunc(int(os.Stdin.Fd()))\n\tcase api.AlwaysExecInteractiveMode:\n\t\tif !isTerminalFunc(int(os.Stdin.Fd())) {\n\t\t\treturn false, errors.New(\"standard input is not a terminal\")\n\t\t}\n\t\tif config.StdinUnavailable {\n\t\t\tsuffix := \"\"\n\t\t\tif len(config.StdinUnavailableMessage) > 0 {\n\t\t\t\t// only print extra \": <message>\" if the user actually specified a message\n\t\t\t\tsuffix = fmt.Sprintf(\": %s\", config.StdinUnavailableMessage)\n\t\t\t}\n\t\t\treturn false, fmt.Errorf(\"standard input is unavailable%s\", suffix)\n\t\t}\n\t\tshouldBeInteractive = true\n\tdefault:\n\t\treturn false, fmt.Errorf(\"unknown interactiveMode: %q\", config.InteractiveMode)\n\t}\n\n\treturn shouldBeInteractive, nil\n}\n\n// Authenticator is a client credential provider that rotates credentials by executing a plugin.\n// The plugin input and output are defined by the API group client.authentication.k8s.io.\ntype Authenticator struct {\n\t// Set by the config\n\tcmd                string\n\targs               []string\n\tgroup              schema.GroupVersion\n\tenv                []string\n\tcluster            *clientauthentication.Cluster\n\tprovideClusterInfo bool\n\n\t// Used to avoid log spew by rate limiting install hint printing. We didn't do\n\t// this by interval based rate limiting alone since that way may have prevented\n\t// the install hint from showing up for kubectl users.\n\tsometimes   *sometimes\n\tinstallHint string\n\n\t// Stubbable for testing\n\tstdin           io.Reader\n\tstderr          io.Writer\n\tinteractiveFunc func() (bool, error)\n\tnow             func() time.Time\n\tenviron         func() []string\n\n\t// connTracker tracks all connections opened that we need to close when rotating a client certificate\n\tconnTracker *connrotation.ConnectionTracker\n\n\t// Cached results.\n\t//\n\t// The mutex also guards calling the plugin. Since the plugin could be\n\t// interactive we want to make sure it's only called once.\n\tmu          sync.Mutex\n\tcachedCreds *credentials\n\texp         time.Time\n\n\t// getCert makes Authenticator.cert comparable to support TLS config caching\n\tgetCert *transport.GetCertHolder\n\t// dial is used for clients which do not specify a custom dialer\n\t// it is comparable to support TLS config caching\n\tdial *transport.DialHolder\n}\n\ntype credentials struct {\n\ttoken string           `datapolicy:\"token\"`\n\tcert  *tls.Certificate `datapolicy:\"secret-key\"`\n}\n\n// UpdateTransportConfig updates the transport.Config to use credentials\n// returned by the plugin.\nfunc (a *Authenticator) UpdateTransportConfig(c *transport.Config) error {\n\t// If a bearer token is present in the request - avoid the GetCert callback when\n\t// setting up the transport, as that triggers the exec action if the server is\n\t// also configured to allow client certificates for authentication. For requests\n\t// like \"kubectl get --token (token) pods\" we should assume the intention is to\n\t// use the provided token for authentication. The same can be said for when the\n\t// user specifies basic auth or cert auth.\n\tif c.HasTokenAuth() || c.HasBasicAuth() || c.HasCertAuth() {\n\t\treturn nil\n\t}\n\n\tc.Wrap(func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &roundTripper{a, rt}\n\t})\n\n\tif c.HasCertCallback() {\n\t\treturn errors.New(\"can't add TLS certificate callback: transport.Config.TLS.GetCert already set\")\n\t}\n\tc.TLS.GetCertHolder = a.getCert // comparable for TLS config caching\n\n\tif c.DialHolder != nil {\n\t\tif c.DialHolder.Dial == nil {\n\t\t\treturn errors.New(\"invalid transport.Config.DialHolder: wrapped Dial function is nil\")\n\t\t}\n\n\t\t// if c has a custom dialer, we have to wrap it\n\t\t// TLS config caching is not supported for this config\n\t\td := connrotation.NewDialerWithTracker(c.DialHolder.Dial, a.connTracker)\n\t\tc.DialHolder = &transport.DialHolder{Dial: d.DialContext}\n\t} else {\n\t\tc.DialHolder = a.dial // comparable for TLS config caching\n\t}\n\n\treturn nil\n}\n\nvar _ utilnet.RoundTripperWrapper = &roundTripper{}\n\ntype roundTripper struct {\n\ta    *Authenticator\n\tbase http.RoundTripper\n}\n\nfunc (r *roundTripper) WrappedRoundTripper() http.RoundTripper {\n\treturn r.base\n}\n\nfunc (r *roundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// If a user has already set credentials, use that. This makes commands like\n\t// \"kubectl get --token (token) pods\" work.\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\treturn r.base.RoundTrip(req)\n\t}\n\n\tcreds, err := r.a.getCreds()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting credentials: %v\", err)\n\t}\n\tif creds.token != \"\" {\n\t\treq.Header.Set(\"Authorization\", \"Bearer \"+creds.token)\n\t}\n\n\tres, err := r.base.RoundTrip(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif res.StatusCode == http.StatusUnauthorized {\n\t\tif err := r.a.maybeRefreshCreds(creds); err != nil {\n\t\t\tklog.Errorf(\"refreshing credentials: %v\", err)\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (a *Authenticator) credsExpired() bool {\n\tif a.exp.IsZero() {\n\t\treturn false\n\t}\n\treturn a.now().After(a.exp)\n}\n\nfunc (a *Authenticator) cert() (*tls.Certificate, error) {\n\tcreds, err := a.getCreds()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn creds.cert, nil\n}\n\nfunc (a *Authenticator) getCreds() (*credentials, error) {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\n\tif a.cachedCreds != nil && !a.credsExpired() {\n\t\treturn a.cachedCreds, nil\n\t}\n\n\tif err := a.refreshCredsLocked(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn a.cachedCreds, nil\n}\n\n// maybeRefreshCreds executes the plugin to force a rotation of the\n// credentials, unless they were rotated already.\nfunc (a *Authenticator) maybeRefreshCreds(creds *credentials) error {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\n\t// Since we're not making a new pointer to a.cachedCreds in getCreds, no\n\t// need to do deep comparison.\n\tif creds != a.cachedCreds {\n\t\t// Credentials already rotated.\n\t\treturn nil\n\t}\n\n\treturn a.refreshCredsLocked()\n}\n\n// refreshCredsLocked executes the plugin and reads the credentials from\n// stdout. It must be called while holding the Authenticator's mutex.\nfunc (a *Authenticator) refreshCredsLocked() error {\n\tinteractive, err := a.interactiveFunc()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"exec plugin cannot support interactive mode: %w\", err)\n\t}\n\n\tcred := &clientauthentication.ExecCredential{\n\t\tSpec: clientauthentication.ExecCredentialSpec{\n\t\t\tInteractive: interactive,\n\t\t},\n\t}\n\tif a.provideClusterInfo {\n\t\tcred.Spec.Cluster = a.cluster\n\t}\n\n\tenv := append(a.environ(), a.env...)\n\tdata, err := runtime.Encode(codecs.LegacyCodec(a.group), cred)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"encode ExecCredentials: %v\", err)\n\t}\n\tenv = append(env, fmt.Sprintf(\"%s=%s\", execInfoEnv, data))\n\n\tstdout := &bytes.Buffer{}\n\tcmd := exec.Command(a.cmd, a.args...)\n\tcmd.Env = env\n\tcmd.Stderr = a.stderr\n\tcmd.Stdout = stdout\n\tif interactive {\n\t\tcmd.Stdin = a.stdin\n\t}\n\n\terr = cmd.Run()\n\tincrementCallsMetric(err)\n\tif err != nil {\n\t\treturn a.wrapCmdRunErrorLocked(err)\n\t}\n\n\t_, gvk, err := codecs.UniversalDecoder(a.group).Decode(stdout.Bytes(), nil, cred)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"decoding stdout: %v\", err)\n\t}\n\tif gvk.Group != a.group.Group || gvk.Version != a.group.Version {\n\t\treturn fmt.Errorf(\"exec plugin is configured to use API version %s, plugin returned version %s\",\n\t\t\ta.group, schema.GroupVersion{Group: gvk.Group, Version: gvk.Version})\n\t}\n\n\tif cred.Status == nil {\n\t\treturn fmt.Errorf(\"exec plugin didn't return a status field\")\n\t}\n\tif cred.Status.Token == \"\" && cred.Status.ClientCertificateData == \"\" && cred.Status.ClientKeyData == \"\" {\n\t\treturn fmt.Errorf(\"exec plugin didn't return a token or cert/key pair\")\n\t}\n\tif (cred.Status.ClientCertificateData == \"\") != (cred.Status.ClientKeyData == \"\") {\n\t\treturn fmt.Errorf(\"exec plugin returned only certificate or key, not both\")\n\t}\n\n\tif cred.Status.ExpirationTimestamp != nil {\n\t\ta.exp = cred.Status.ExpirationTimestamp.Time\n\t} else {\n\t\ta.exp = time.Time{}\n\t}\n\n\tnewCreds := &credentials{\n\t\ttoken: cred.Status.Token,\n\t}\n\tif cred.Status.ClientKeyData != \"\" && cred.Status.ClientCertificateData != \"\" {\n\t\tcert, err := tls.X509KeyPair([]byte(cred.Status.ClientCertificateData), []byte(cred.Status.ClientKeyData))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed parsing client key/certificate: %v\", err)\n\t\t}\n\n\t\t// Leaf is initialized to be nil:\n\t\t//  https://golang.org/pkg/crypto/tls/#X509KeyPair\n\t\t// Leaf certificate is the first certificate:\n\t\t//  https://golang.org/pkg/crypto/tls/#Certificate\n\t\t// Populating leaf is useful for quickly accessing the underlying x509\n\t\t// certificate values.\n\t\tcert.Leaf, err = x509.ParseCertificate(cert.Certificate[0])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed parsing client leaf certificate: %v\", err)\n\t\t}\n\t\tnewCreds.cert = &cert\n\t}\n\n\toldCreds := a.cachedCreds\n\ta.cachedCreds = newCreds\n\t// Only close all connections when TLS cert rotates. Token rotation doesn't\n\t// need the extra noise.\n\tif oldCreds != nil && !reflect.DeepEqual(oldCreds.cert, a.cachedCreds.cert) {\n\t\t// Can be nil if the exec auth plugin only returned token auth.\n\t\tif oldCreds.cert != nil && oldCreds.cert.Leaf != nil {\n\t\t\tmetrics.ClientCertRotationAge.Observe(time.Since(oldCreds.cert.Leaf.NotBefore))\n\t\t}\n\t\ta.connTracker.CloseAll()\n\t}\n\n\texpiry := time.Time{}\n\tif a.cachedCreds.cert != nil && a.cachedCreds.cert.Leaf != nil {\n\t\texpiry = a.cachedCreds.cert.Leaf.NotAfter\n\t}\n\texpirationMetrics.set(a, expiry)\n\treturn nil\n}\n\n// wrapCmdRunErrorLocked pulls out the code to construct a helpful error message\n// for when the exec plugin's binary fails to Run().\n//\n// It must be called while holding the Authenticator's mutex.\nfunc (a *Authenticator) wrapCmdRunErrorLocked(err error) error {\n\tswitch err.(type) {\n\tcase *exec.Error: // Binary does not exist (see exec.Error).\n\t\tbuilder := strings.Builder{}\n\t\tfmt.Fprintf(&builder, \"exec: executable %s not found\", a.cmd)\n\n\t\ta.sometimes.Do(func() {\n\t\t\tfmt.Fprint(&builder, installHintVerboseHelp)\n\t\t\tif a.installHint != \"\" {\n\t\t\t\tfmt.Fprintf(&builder, \"\\n\\n%s\", a.installHint)\n\t\t\t}\n\t\t})\n\n\t\treturn errors.New(builder.String())\n\n\tcase *exec.ExitError: // Binary execution failed (see exec.Cmd.Run()).\n\t\te := err.(*exec.ExitError)\n\t\treturn fmt.Errorf(\n\t\t\t\"exec: executable %s failed with exit code %d\",\n\t\t\ta.cmd,\n\t\t\te.ProcessState.ExitCode(),\n\t\t)\n\n\tdefault:\n\t\treturn fmt.Errorf(\"exec: %v\", err)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage exec\n\nimport (\n\t\"errors\"\n\t\"io/fs\"\n\t\"os/exec\"\n\t\"reflect\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/client-go/tools/metrics\"\n)\n\n// The following constants shadow the special values used in the prometheus metrics implementation.\nconst (\n\t// noError indicates that the plugin process was successfully started and exited with an exit\n\t// code of 0.\n\tnoError = \"no_error\"\n\t// pluginExecutionError indicates that the plugin process was successfully started and then\n\t// it returned a non-zero exit code.\n\tpluginExecutionError = \"plugin_execution_error\"\n\t// pluginNotFoundError indicates that we could not find the exec plugin.\n\tpluginNotFoundError = \"plugin_not_found_error\"\n\t// clientInternalError indicates that we attempted to start the plugin process, but failed\n\t// for some reason.\n\tclientInternalError = \"client_internal_error\"\n\n\t// successExitCode represents an exec plugin invocation that was successful.\n\tsuccessExitCode = 0\n\t// failureExitCode represents an exec plugin invocation that was not successful. This code is\n\t// used in some failure modes (e.g., plugin not found, client internal error) so that someone\n\t// can more easily monitor all unsuccessful invocations.\n\tfailureExitCode = 1\n)\n\ntype certificateExpirationTracker struct {\n\tmu        sync.RWMutex\n\tm         map[*Authenticator]time.Time\n\tmetricSet func(*time.Time)\n}\n\nvar expirationMetrics = &certificateExpirationTracker{\n\tm: map[*Authenticator]time.Time{},\n\tmetricSet: func(e *time.Time) {\n\t\tmetrics.ClientCertExpiry.Set(e)\n\t},\n}\n\n// set stores the given expiration time and updates the updates the certificate\n// expiry metric to the earliest expiration time.\nfunc (c *certificateExpirationTracker) set(a *Authenticator, t time.Time) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tc.m[a] = t\n\n\tearliest := time.Time{}\n\tfor _, t := range c.m {\n\t\tif t.IsZero() {\n\t\t\tcontinue\n\t\t}\n\t\tif earliest.IsZero() || earliest.After(t) {\n\t\t\tearliest = t\n\t\t}\n\t}\n\tif earliest.IsZero() {\n\t\tc.metricSet(nil)\n\t} else {\n\t\tc.metricSet(&earliest)\n\t}\n}\n\n// incrementCallsMetric increments a global metrics counter for the number of calls to an exec\n// plugin, partitioned by exit code. The provided err should be the return value from\n// exec.Cmd.Run().\nfunc incrementCallsMetric(err error) {\n\texecExitError := &exec.ExitError{}\n\texecError := &exec.Error{}\n\tpathError := &fs.PathError{}\n\tswitch {\n\tcase err == nil: // Binary execution succeeded.\n\t\tmetrics.ExecPluginCalls.Increment(successExitCode, noError)\n\n\tcase errors.As(err, &execExitError): // Binary execution failed (see \"os/exec\".Cmd.Run()).\n\t\tmetrics.ExecPluginCalls.Increment(execExitError.ExitCode(), pluginExecutionError)\n\n\tcase errors.As(err, &execError), errors.As(err, &pathError): // Binary does not exist (see exec.Error, fs.PathError).\n\t\tmetrics.ExecPluginCalls.Increment(failureExitCode, pluginNotFoundError)\n\n\tdefault: // We don't know about this error type.\n\t\tklog.V(2).InfoS(\"unexpected exec plugin return error type\", \"type\", reflect.TypeOf(err).String(), \"err\", err)\n\t\tmetrics.ExecPluginCalls.Increment(failureExitCode, clientInternalError)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - caesarxuchao\n  - wojtek-t\n  - deads2k\n  - liggitt\n  - sttts\n  - luxas\n  - dims\n  - cjcullen\n  - lojies\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/client.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n)\n\nconst (\n\t// Environment variables: Note that the duration should be long enough that the backoff\n\t// persists for some reasonable time (i.e. 120 seconds).  The typical base might be \"1\".\n\tenvBackoffBase     = \"KUBE_CLIENT_BACKOFF_BASE\"\n\tenvBackoffDuration = \"KUBE_CLIENT_BACKOFF_DURATION\"\n)\n\n// Interface captures the set of operations for generically interacting with Kubernetes REST apis.\ntype Interface interface {\n\tGetRateLimiter() flowcontrol.RateLimiter\n\tVerb(verb string) *Request\n\tPost() *Request\n\tPut() *Request\n\tPatch(pt types.PatchType) *Request\n\tGet() *Request\n\tDelete() *Request\n\tAPIVersion() schema.GroupVersion\n}\n\n// ClientContentConfig controls how RESTClient communicates with the server.\n//\n// TODO: ContentConfig will be updated to accept a Negotiator instead of a\n// NegotiatedSerializer and NegotiatedSerializer will be removed.\ntype ClientContentConfig struct {\n\t// AcceptContentTypes specifies the types the client will accept and is optional.\n\t// If not set, ContentType will be used to define the Accept header\n\tAcceptContentTypes string\n\t// ContentType specifies the wire format used to communicate with the server.\n\t// This value will be set as the Accept header on requests made to the server if\n\t// AcceptContentTypes is not set, and as the default content type on any object\n\t// sent to the server. If not set, \"application/json\" is used.\n\tContentType string\n\t// GroupVersion is the API version to talk to. Must be provided when initializing\n\t// a RESTClient directly. When initializing a Client, will be set with the default\n\t// code version. This is used as the default group version for VersionedParams.\n\tGroupVersion schema.GroupVersion\n\t// Negotiator is used for obtaining encoders and decoders for multiple\n\t// supported media types.\n\tNegotiator runtime.ClientNegotiator\n}\n\n// RESTClient imposes common Kubernetes API conventions on a set of resource paths.\n// The baseURL is expected to point to an HTTP or HTTPS path that is the parent\n// of one or more resources.  The server should return a decodable API resource\n// object, or an api.Status object which contains information about the reason for\n// any failure.\n//\n// Most consumers should use client.New() to get a Kubernetes API client.\ntype RESTClient struct {\n\t// base is the root URL for all invocations of the client\n\tbase *url.URL\n\t// versionedAPIPath is a path segment connecting the base URL to the resource root\n\tversionedAPIPath string\n\n\t// content describes how a RESTClient encodes and decodes responses.\n\tcontent ClientContentConfig\n\n\t// creates BackoffManager that is passed to requests.\n\tcreateBackoffMgr func() BackoffManager\n\n\t// rateLimiter is shared among all requests created by this client unless specifically\n\t// overridden.\n\trateLimiter flowcontrol.RateLimiter\n\n\t// warningHandler is shared among all requests created by this client.\n\t// If not set, defaultWarningHandler is used.\n\twarningHandler WarningHandler\n\n\t// Set specific behavior of the client.  If not set http.DefaultClient will be used.\n\tClient *http.Client\n}\n\n// NewRESTClient creates a new RESTClient. This client performs generic REST functions\n// such as Get, Put, Post, and Delete on specified paths.\nfunc NewRESTClient(baseURL *url.URL, versionedAPIPath string, config ClientContentConfig, rateLimiter flowcontrol.RateLimiter, client *http.Client) (*RESTClient, error) {\n\tif len(config.ContentType) == 0 {\n\t\tconfig.ContentType = \"application/json\"\n\t}\n\n\tbase := *baseURL\n\tif !strings.HasSuffix(base.Path, \"/\") {\n\t\tbase.Path += \"/\"\n\t}\n\tbase.RawQuery = \"\"\n\tbase.Fragment = \"\"\n\n\treturn &RESTClient{\n\t\tbase:             &base,\n\t\tversionedAPIPath: versionedAPIPath,\n\t\tcontent:          config,\n\t\tcreateBackoffMgr: readExpBackoffConfig,\n\t\trateLimiter:      rateLimiter,\n\n\t\tClient: client,\n\t}, nil\n}\n\n// GetRateLimiter returns rate limiter for a given client, or nil if it's called on a nil client\nfunc (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.rateLimiter\n}\n\n// readExpBackoffConfig handles the internal logic of determining what the\n// backoff policy is.  By default if no information is available, NoBackoff.\n// TODO Generalize this see #17727 .\nfunc readExpBackoffConfig() BackoffManager {\n\tbackoffBase := os.Getenv(envBackoffBase)\n\tbackoffDuration := os.Getenv(envBackoffDuration)\n\n\tbackoffBaseInt, errBase := strconv.ParseInt(backoffBase, 10, 64)\n\tbackoffDurationInt, errDuration := strconv.ParseInt(backoffDuration, 10, 64)\n\tif errBase != nil || errDuration != nil {\n\t\treturn &NoBackoff{}\n\t}\n\treturn &URLBackoff{\n\t\tBackoff: flowcontrol.NewBackOff(\n\t\t\ttime.Duration(backoffBaseInt)*time.Second,\n\t\t\ttime.Duration(backoffDurationInt)*time.Second)}\n}\n\n// Verb begins a request with a verb (GET, POST, PUT, DELETE).\n//\n// Example usage of RESTClient's request building interface:\n// c, err := NewRESTClient(...)\n// if err != nil { ... }\n// resp, err := c.Verb(\"GET\").\n//\n//\tPath(\"pods\").\n//\tSelectorParam(\"labels\", \"area=staging\").\n//\tTimeout(10*time.Second).\n//\tDo()\n//\n// if err != nil { ... }\n// list, ok := resp.(*api.PodList)\nfunc (c *RESTClient) Verb(verb string) *Request {\n\treturn NewRequest(c).Verb(verb)\n}\n\n// Post begins a POST request. Short for c.Verb(\"POST\").\nfunc (c *RESTClient) Post() *Request {\n\treturn c.Verb(\"POST\")\n}\n\n// Put begins a PUT request. Short for c.Verb(\"PUT\").\nfunc (c *RESTClient) Put() *Request {\n\treturn c.Verb(\"PUT\")\n}\n\n// Patch begins a PATCH request. Short for c.Verb(\"Patch\").\nfunc (c *RESTClient) Patch(pt types.PatchType) *Request {\n\treturn c.Verb(\"PATCH\").SetHeader(\"Content-Type\", string(pt))\n}\n\n// Get begins a GET request. Short for c.Verb(\"GET\").\nfunc (c *RESTClient) Get() *Request {\n\treturn c.Verb(\"GET\")\n}\n\n// Delete begins a DELETE request. Short for c.Verb(\"DELETE\").\nfunc (c *RESTClient) Delete() *Request {\n\treturn c.Verb(\"DELETE\")\n}\n\n// APIVersion returns the APIVersion this RESTClient is expected to use.\nfunc (c *RESTClient) APIVersion() schema.GroupVersion {\n\treturn c.content.GroupVersion\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/config.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path/filepath\"\n\tgruntime \"runtime\"\n\t\"strings\"\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/client-go/pkg/version\"\n\tclientcmdapi \"k8s.io/client-go/tools/clientcmd/api\"\n\t\"k8s.io/client-go/transport\"\n\tcertutil \"k8s.io/client-go/util/cert\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst (\n\tDefaultQPS   float32 = 5.0\n\tDefaultBurst int     = 10\n)\n\nvar ErrNotInCluster = errors.New(\"unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined\")\n\n// Config holds the common attributes that can be passed to a Kubernetes client on\n// initialization.\ntype Config struct {\n\t// Host must be a host string, a host:port pair, or a URL to the base of the apiserver.\n\t// If a URL is given then the (optional) Path of that URL represents a prefix that must\n\t// be appended to all request URIs used to access the apiserver. This allows a frontend\n\t// proxy to easily relocate all of the apiserver endpoints.\n\tHost string\n\t// APIPath is a sub-path that points to an API root.\n\tAPIPath string\n\n\t// ContentConfig contains settings that affect how objects are transformed when\n\t// sent to the server.\n\tContentConfig\n\n\t// Server requires Basic authentication\n\tUsername string\n\tPassword string `datapolicy:\"password\"`\n\n\t// Server requires Bearer authentication. This client will not attempt to use\n\t// refresh tokens for an OAuth2 flow.\n\t// TODO: demonstrate an OAuth2 compatible client.\n\tBearerToken string `datapolicy:\"token\"`\n\n\t// Path to a file containing a BearerToken.\n\t// If set, the contents are periodically read.\n\t// The last successfully read value takes precedence over BearerToken.\n\tBearerTokenFile string\n\n\t// Impersonate is the configuration that RESTClient will use for impersonation.\n\tImpersonate ImpersonationConfig\n\n\t// Server requires plugin-specified authentication.\n\tAuthProvider *clientcmdapi.AuthProviderConfig\n\n\t// Callback to persist config for AuthProvider.\n\tAuthConfigPersister AuthProviderConfigPersister\n\n\t// Exec-based authentication provider.\n\tExecProvider *clientcmdapi.ExecConfig\n\n\t// TLSClientConfig contains settings to enable transport layer security\n\tTLSClientConfig\n\n\t// UserAgent is an optional field that specifies the caller of this request.\n\tUserAgent string\n\n\t// DisableCompression bypasses automatic GZip compression requests to the\n\t// server.\n\tDisableCompression bool\n\n\t// Transport may be used for custom HTTP behavior. This attribute may not\n\t// be specified with the TLS client certificate options. Use WrapTransport\n\t// to provide additional per-server middleware behavior.\n\tTransport http.RoundTripper\n\t// WrapTransport will be invoked for custom HTTP behavior after the underlying\n\t// transport is initialized (either the transport created from TLSClientConfig,\n\t// Transport, or http.DefaultTransport). The config may layer other RoundTrippers\n\t// on top of the returned RoundTripper.\n\t//\n\t// A future release will change this field to an array. Use config.Wrap()\n\t// instead of setting this value directly.\n\tWrapTransport transport.WrapperFunc\n\n\t// QPS indicates the maximum QPS to the master from this client.\n\t// If it's zero, the created RESTClient will use DefaultQPS: 5\n\tQPS float32\n\n\t// Maximum burst for throttle.\n\t// If it's zero, the created RESTClient will use DefaultBurst: 10.\n\tBurst int\n\n\t// Rate limiter for limiting connections to the master from this client. If present overwrites QPS/Burst\n\tRateLimiter flowcontrol.RateLimiter\n\n\t// WarningHandler handles warnings in server responses.\n\t// If not set, the default warning handler is used.\n\t// See documentation for SetDefaultWarningHandler() for details.\n\tWarningHandler WarningHandler\n\n\t// The maximum length of time to wait before giving up on a server request. A value of zero means no timeout.\n\tTimeout time.Duration\n\n\t// Dial specifies the dial function for creating unencrypted TCP connections.\n\tDial func(ctx context.Context, network, address string) (net.Conn, error)\n\n\t// Proxy is the proxy func to be used for all requests made by this\n\t// transport. If Proxy is nil, http.ProxyFromEnvironment is used. If Proxy\n\t// returns a nil *URL, no proxy is used.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints.\n\tProxy func(*http.Request) (*url.URL, error)\n\n\t// Version forces a specific version to be used (if registered)\n\t// Do we need this?\n\t// Version string\n}\n\nvar _ fmt.Stringer = new(Config)\nvar _ fmt.GoStringer = new(Config)\n\ntype sanitizedConfig *Config\n\ntype sanitizedAuthConfigPersister struct{ AuthProviderConfigPersister }\n\nfunc (sanitizedAuthConfigPersister) GoString() string {\n\treturn \"rest.AuthProviderConfigPersister(--- REDACTED ---)\"\n}\nfunc (sanitizedAuthConfigPersister) String() string {\n\treturn \"rest.AuthProviderConfigPersister(--- REDACTED ---)\"\n}\n\ntype sanitizedObject struct{ runtime.Object }\n\nfunc (sanitizedObject) GoString() string {\n\treturn \"runtime.Object(--- REDACTED ---)\"\n}\nfunc (sanitizedObject) String() string {\n\treturn \"runtime.Object(--- REDACTED ---)\"\n}\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of Config\n// to prevent accidental leaking via logs.\nfunc (c *Config) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of Config to\n// prevent accidental leaking via logs.\nfunc (c *Config) String() string {\n\tif c == nil {\n\t\treturn \"<nil>\"\n\t}\n\tcc := sanitizedConfig(CopyConfig(c))\n\t// Explicitly mark non-empty credential fields as redacted.\n\tif cc.Password != \"\" {\n\t\tcc.Password = \"--- REDACTED ---\"\n\t}\n\tif cc.BearerToken != \"\" {\n\t\tcc.BearerToken = \"--- REDACTED ---\"\n\t}\n\tif cc.AuthConfigPersister != nil {\n\t\tcc.AuthConfigPersister = sanitizedAuthConfigPersister{cc.AuthConfigPersister}\n\t}\n\tif cc.ExecProvider != nil && cc.ExecProvider.Config != nil {\n\t\tcc.ExecProvider.Config = sanitizedObject{Object: cc.ExecProvider.Config}\n\t}\n\treturn fmt.Sprintf(\"%#v\", cc)\n}\n\n// ImpersonationConfig has all the available impersonation options\ntype ImpersonationConfig struct {\n\t// UserName is the username to impersonate on each request.\n\tUserName string\n\t// UID is a unique value that identifies the user.\n\tUID string\n\t// Groups are the groups to impersonate on each request.\n\tGroups []string\n\t// Extra is a free-form field which can be used to link some authentication information\n\t// to authorization information.  This field allows you to impersonate it.\n\tExtra map[string][]string\n}\n\n// +k8s:deepcopy-gen=true\n// TLSClientConfig contains settings to enable transport layer security\ntype TLSClientConfig struct {\n\t// Server should be accessed without verifying the TLS certificate. For testing only.\n\tInsecure bool\n\t// ServerName is passed to the server for SNI and is used in the client to check server\n\t// certificates against. If ServerName is empty, the hostname used to contact the\n\t// server is used.\n\tServerName string\n\n\t// Server requires TLS client certificate authentication\n\tCertFile string\n\t// Server requires TLS client certificate authentication\n\tKeyFile string\n\t// Trusted root certificates for server\n\tCAFile string\n\n\t// CertData holds PEM-encoded bytes (typically read from a client certificate file).\n\t// CertData takes precedence over CertFile\n\tCertData []byte\n\t// KeyData holds PEM-encoded bytes (typically read from a client certificate key file).\n\t// KeyData takes precedence over KeyFile\n\tKeyData []byte `datapolicy:\"security-key\"`\n\t// CAData holds PEM-encoded bytes (typically read from a root certificates bundle).\n\t// CAData takes precedence over CAFile\n\tCAData []byte\n\n\t// NextProtos is a list of supported application level protocols, in order of preference.\n\t// Used to populate tls.Config.NextProtos.\n\t// To indicate to the server http/1.1 is preferred over http/2, set to [\"http/1.1\", \"h2\"] (though the server is free to ignore that preference).\n\t// To use only http/1.1, set to [\"http/1.1\"].\n\tNextProtos []string\n}\n\nvar _ fmt.Stringer = TLSClientConfig{}\nvar _ fmt.GoStringer = TLSClientConfig{}\n\ntype sanitizedTLSClientConfig TLSClientConfig\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// TLSClientConfig to prevent accidental leaking via logs.\nfunc (c TLSClientConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of\n// TLSClientConfig to prevent accidental leaking via logs.\nfunc (c TLSClientConfig) String() string {\n\tcc := sanitizedTLSClientConfig{\n\t\tInsecure:   c.Insecure,\n\t\tServerName: c.ServerName,\n\t\tCertFile:   c.CertFile,\n\t\tKeyFile:    c.KeyFile,\n\t\tCAFile:     c.CAFile,\n\t\tCertData:   c.CertData,\n\t\tKeyData:    c.KeyData,\n\t\tCAData:     c.CAData,\n\t\tNextProtos: c.NextProtos,\n\t}\n\t// Explicitly mark non-empty credential fields as redacted.\n\tif len(cc.CertData) != 0 {\n\t\tcc.CertData = []byte(\"--- TRUNCATED ---\")\n\t}\n\tif len(cc.KeyData) != 0 {\n\t\tcc.KeyData = []byte(\"--- REDACTED ---\")\n\t}\n\treturn fmt.Sprintf(\"%#v\", cc)\n}\n\ntype ContentConfig struct {\n\t// AcceptContentTypes specifies the types the client will accept and is optional.\n\t// If not set, ContentType will be used to define the Accept header\n\tAcceptContentTypes string\n\t// ContentType specifies the wire format used to communicate with the server.\n\t// This value will be set as the Accept header on requests made to the server, and\n\t// as the default content type on any object sent to the server. If not set,\n\t// \"application/json\" is used.\n\tContentType string\n\t// GroupVersion is the API version to talk to. Must be provided when initializing\n\t// a RESTClient directly. When initializing a Client, will be set with the default\n\t// code version.\n\tGroupVersion *schema.GroupVersion\n\t// NegotiatedSerializer is used for obtaining encoders and decoders for multiple\n\t// supported media types.\n\t//\n\t// TODO: NegotiatedSerializer will be phased out as internal clients are removed\n\t//   from Kubernetes.\n\tNegotiatedSerializer runtime.NegotiatedSerializer\n}\n\n// RESTClientFor returns a RESTClient that satisfies the requested attributes on a client Config\n// object. Note that a RESTClient may require fields that are optional when initializing a Client.\n// A RESTClient created by this method is generic - it expects to operate on an API that follows\n// the Kubernetes conventions, but may not be the Kubernetes API.\n// RESTClientFor is equivalent to calling RESTClientForConfigAndClient(config, httpClient),\n// where httpClient was generated with HTTPClientFor(config).\nfunc RESTClientFor(config *Config) (*RESTClient, error) {\n\tif config.GroupVersion == nil {\n\t\treturn nil, fmt.Errorf(\"GroupVersion is required when initializing a RESTClient\")\n\t}\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\t// Validate config.Host before constructing the transport/client so we can fail fast.\n\t// ServerURL will be obtained later in RESTClientForConfigAndClient()\n\t_, _, err := defaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient, err := HTTPClientFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn RESTClientForConfigAndClient(config, httpClient)\n}\n\n// RESTClientForConfigAndClient returns a RESTClient that satisfies the requested attributes on a\n// client Config object.\n// Unlike RESTClientFor, RESTClientForConfigAndClient allows to pass an http.Client that is shared\n// between all the API Groups and Versions.\n// Note that the http client takes precedence over the transport values configured.\n// The http client defaults to the `http.DefaultClient` if nil.\nfunc RESTClientForConfigAndClient(config *Config, httpClient *http.Client) (*RESTClient, error) {\n\tif config.GroupVersion == nil {\n\t\treturn nil, fmt.Errorf(\"GroupVersion is required when initializing a RESTClient\")\n\t}\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\tbaseURL, versionedAPIPath, err := defaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trateLimiter := config.RateLimiter\n\tif rateLimiter == nil {\n\t\tqps := config.QPS\n\t\tif config.QPS == 0.0 {\n\t\t\tqps = DefaultQPS\n\t\t}\n\t\tburst := config.Burst\n\t\tif config.Burst == 0 {\n\t\t\tburst = DefaultBurst\n\t\t}\n\t\tif qps > 0 {\n\t\t\trateLimiter = flowcontrol.NewTokenBucketRateLimiter(qps, burst)\n\t\t}\n\t}\n\n\tvar gv schema.GroupVersion\n\tif config.GroupVersion != nil {\n\t\tgv = *config.GroupVersion\n\t}\n\tclientContent := ClientContentConfig{\n\t\tAcceptContentTypes: config.AcceptContentTypes,\n\t\tContentType:        config.ContentType,\n\t\tGroupVersion:       gv,\n\t\tNegotiator:         runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),\n\t}\n\n\trestClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)\n\tif err == nil && config.WarningHandler != nil {\n\t\trestClient.warningHandler = config.WarningHandler\n\t}\n\treturn restClient, err\n}\n\n// UnversionedRESTClientFor is the same as RESTClientFor, except that it allows\n// the config.Version to be empty.\nfunc UnversionedRESTClientFor(config *Config) (*RESTClient, error) {\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\t// Validate config.Host before constructing the transport/client so we can fail fast.\n\t// ServerURL will be obtained later in UnversionedRESTClientForConfigAndClient()\n\t_, _, err := defaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient, err := HTTPClientFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn UnversionedRESTClientForConfigAndClient(config, httpClient)\n}\n\n// UnversionedRESTClientForConfigAndClient is the same as RESTClientForConfigAndClient,\n// except that it allows the config.Version to be empty.\nfunc UnversionedRESTClientForConfigAndClient(config *Config, httpClient *http.Client) (*RESTClient, error) {\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\tbaseURL, versionedAPIPath, err := defaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trateLimiter := config.RateLimiter\n\tif rateLimiter == nil {\n\t\tqps := config.QPS\n\t\tif config.QPS == 0.0 {\n\t\t\tqps = DefaultQPS\n\t\t}\n\t\tburst := config.Burst\n\t\tif config.Burst == 0 {\n\t\t\tburst = DefaultBurst\n\t\t}\n\t\tif qps > 0 {\n\t\t\trateLimiter = flowcontrol.NewTokenBucketRateLimiter(qps, burst)\n\t\t}\n\t}\n\n\tgv := metav1.SchemeGroupVersion\n\tif config.GroupVersion != nil {\n\t\tgv = *config.GroupVersion\n\t}\n\tclientContent := ClientContentConfig{\n\t\tAcceptContentTypes: config.AcceptContentTypes,\n\t\tContentType:        config.ContentType,\n\t\tGroupVersion:       gv,\n\t\tNegotiator:         runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),\n\t}\n\n\trestClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)\n\tif err == nil && config.WarningHandler != nil {\n\t\trestClient.warningHandler = config.WarningHandler\n\t}\n\treturn restClient, err\n}\n\n// SetKubernetesDefaults sets default values on the provided client config for accessing the\n// Kubernetes API or returns an error if any of the defaults are impossible or invalid.\nfunc SetKubernetesDefaults(config *Config) error {\n\tif len(config.UserAgent) == 0 {\n\t\tconfig.UserAgent = DefaultKubernetesUserAgent()\n\t}\n\treturn nil\n}\n\n// adjustCommit returns sufficient significant figures of the commit's git hash.\nfunc adjustCommit(c string) string {\n\tif len(c) == 0 {\n\t\treturn \"unknown\"\n\t}\n\tif len(c) > 7 {\n\t\treturn c[:7]\n\t}\n\treturn c\n}\n\n// adjustVersion strips \"alpha\", \"beta\", etc. from version in form\n// major.minor.patch-[alpha|beta|etc].\nfunc adjustVersion(v string) string {\n\tif len(v) == 0 {\n\t\treturn \"unknown\"\n\t}\n\tseg := strings.SplitN(v, \"-\", 2)\n\treturn seg[0]\n}\n\n// adjustCommand returns the last component of the\n// OS-specific command path for use in User-Agent.\nfunc adjustCommand(p string) string {\n\t// Unlikely, but better than returning \"\".\n\tif len(p) == 0 {\n\t\treturn \"unknown\"\n\t}\n\treturn filepath.Base(p)\n}\n\n// buildUserAgent builds a User-Agent string from given args.\nfunc buildUserAgent(command, version, os, arch, commit string) string {\n\treturn fmt.Sprintf(\n\t\t\"%s/%s (%s/%s) kubernetes/%s\", command, version, os, arch, commit)\n}\n\n// DefaultKubernetesUserAgent returns a User-Agent string built from static global vars.\nfunc DefaultKubernetesUserAgent() string {\n\treturn buildUserAgent(\n\t\tadjustCommand(os.Args[0]),\n\t\tadjustVersion(version.Get().GitVersion),\n\t\tgruntime.GOOS,\n\t\tgruntime.GOARCH,\n\t\tadjustCommit(version.Get().GitCommit))\n}\n\n// InClusterConfig returns a config object which uses the service account\n// kubernetes gives to pods. It's intended for clients that expect to be\n// running inside a pod running on kubernetes. It will return ErrNotInCluster\n// if called from a process not running in a kubernetes environment.\nfunc InClusterConfig() (*Config, error) {\n\tconst (\n\t\ttokenFile  = \"/var/run/secrets/kubernetes.io/serviceaccount/token\"\n\t\trootCAFile = \"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt\"\n\t)\n\thost, port := os.Getenv(\"KUBERNETES_SERVICE_HOST\"), os.Getenv(\"KUBERNETES_SERVICE_PORT\")\n\tif len(host) == 0 || len(port) == 0 {\n\t\treturn nil, ErrNotInCluster\n\t}\n\n\ttoken, err := os.ReadFile(tokenFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttlsClientConfig := TLSClientConfig{}\n\n\tif _, err := certutil.NewPool(rootCAFile); err != nil {\n\t\tklog.Errorf(\"Expected to load root CA config from %s, but got err: %v\", rootCAFile, err)\n\t} else {\n\t\ttlsClientConfig.CAFile = rootCAFile\n\t}\n\n\treturn &Config{\n\t\t// TODO: switch to using cluster DNS.\n\t\tHost:            \"https://\" + net.JoinHostPort(host, port),\n\t\tTLSClientConfig: tlsClientConfig,\n\t\tBearerToken:     string(token),\n\t\tBearerTokenFile: tokenFile,\n\t}, nil\n}\n\n// IsConfigTransportTLS returns true if and only if the provided\n// config will result in a protected connection to the server when it\n// is passed to restclient.RESTClientFor().  Use to determine when to\n// send credentials over the wire.\n//\n// Note: the Insecure flag is ignored when testing for this value, so MITM attacks are\n// still possible.\nfunc IsConfigTransportTLS(config Config) bool {\n\tbaseURL, _, err := defaultServerUrlFor(&config)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn baseURL.Scheme == \"https\"\n}\n\n// LoadTLSFiles copies the data from the CertFile, KeyFile, and CAFile fields into the CertData,\n// KeyData, and CAFile fields, or returns an error. If no error is returned, all three fields are\n// either populated or were empty to start.\nfunc LoadTLSFiles(c *Config) error {\n\tvar err error\n\tc.CAData, err = dataFromSliceOrFile(c.CAData, c.CAFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.CertData, err = dataFromSliceOrFile(c.CertData, c.CertFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.KeyData, err = dataFromSliceOrFile(c.KeyData, c.KeyFile)\n\treturn err\n}\n\n// dataFromSliceOrFile returns data from the slice (if non-empty), or from the file,\n// or an error if an error occurred reading the file\nfunc dataFromSliceOrFile(data []byte, file string) ([]byte, error) {\n\tif len(data) > 0 {\n\t\treturn data, nil\n\t}\n\tif len(file) > 0 {\n\t\tfileData, err := os.ReadFile(file)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\treturn fileData, nil\n\t}\n\treturn nil, nil\n}\n\nfunc AddUserAgent(config *Config, userAgent string) *Config {\n\tfullUserAgent := DefaultKubernetesUserAgent() + \"/\" + userAgent\n\tconfig.UserAgent = fullUserAgent\n\treturn config\n}\n\n// AnonymousClientConfig returns a copy of the given config with all user credentials (cert/key, bearer token, and username/password) and custom transports (WrapTransport, Transport) removed\nfunc AnonymousClientConfig(config *Config) *Config {\n\t// copy only known safe fields\n\treturn &Config{\n\t\tHost:          config.Host,\n\t\tAPIPath:       config.APIPath,\n\t\tContentConfig: config.ContentConfig,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   config.Insecure,\n\t\t\tServerName: config.ServerName,\n\t\t\tCAFile:     config.TLSClientConfig.CAFile,\n\t\t\tCAData:     config.TLSClientConfig.CAData,\n\t\t\tNextProtos: config.TLSClientConfig.NextProtos,\n\t\t},\n\t\tRateLimiter:        config.RateLimiter,\n\t\tWarningHandler:     config.WarningHandler,\n\t\tUserAgent:          config.UserAgent,\n\t\tDisableCompression: config.DisableCompression,\n\t\tQPS:                config.QPS,\n\t\tBurst:              config.Burst,\n\t\tTimeout:            config.Timeout,\n\t\tDial:               config.Dial,\n\t\tProxy:              config.Proxy,\n\t}\n}\n\n// CopyConfig returns a copy of the given config\nfunc CopyConfig(config *Config) *Config {\n\tc := &Config{\n\t\tHost:            config.Host,\n\t\tAPIPath:         config.APIPath,\n\t\tContentConfig:   config.ContentConfig,\n\t\tUsername:        config.Username,\n\t\tPassword:        config.Password,\n\t\tBearerToken:     config.BearerToken,\n\t\tBearerTokenFile: config.BearerTokenFile,\n\t\tImpersonate: ImpersonationConfig{\n\t\t\tUserName: config.Impersonate.UserName,\n\t\t\tUID:      config.Impersonate.UID,\n\t\t\tGroups:   config.Impersonate.Groups,\n\t\t\tExtra:    config.Impersonate.Extra,\n\t\t},\n\t\tAuthProvider:        config.AuthProvider,\n\t\tAuthConfigPersister: config.AuthConfigPersister,\n\t\tExecProvider:        config.ExecProvider,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   config.TLSClientConfig.Insecure,\n\t\t\tServerName: config.TLSClientConfig.ServerName,\n\t\t\tCertFile:   config.TLSClientConfig.CertFile,\n\t\t\tKeyFile:    config.TLSClientConfig.KeyFile,\n\t\t\tCAFile:     config.TLSClientConfig.CAFile,\n\t\t\tCertData:   config.TLSClientConfig.CertData,\n\t\t\tKeyData:    config.TLSClientConfig.KeyData,\n\t\t\tCAData:     config.TLSClientConfig.CAData,\n\t\t\tNextProtos: config.TLSClientConfig.NextProtos,\n\t\t},\n\t\tUserAgent:          config.UserAgent,\n\t\tDisableCompression: config.DisableCompression,\n\t\tTransport:          config.Transport,\n\t\tWrapTransport:      config.WrapTransport,\n\t\tQPS:                config.QPS,\n\t\tBurst:              config.Burst,\n\t\tRateLimiter:        config.RateLimiter,\n\t\tWarningHandler:     config.WarningHandler,\n\t\tTimeout:            config.Timeout,\n\t\tDial:               config.Dial,\n\t\tProxy:              config.Proxy,\n\t}\n\tif config.ExecProvider != nil && config.ExecProvider.Config != nil {\n\t\tc.ExecProvider.Config = config.ExecProvider.Config.DeepCopyObject()\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/exec.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\n\tclientauthenticationapi \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\n// This file contains Config logic related to exec credential plugins.\n\n// ConfigToExecCluster creates a clientauthenticationapi.Cluster with the corresponding fields from\n// the provided Config.\nfunc ConfigToExecCluster(config *Config) (*clientauthenticationapi.Cluster, error) {\n\tcaData, err := dataFromSliceOrFile(config.CAData, config.CAFile)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to load CA bundle for execProvider: %v\", err)\n\t}\n\n\tvar proxyURL string\n\tif config.Proxy != nil {\n\t\treq, err := http.NewRequest(\"\", config.Host, nil)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create proxy URL request for execProvider: %w\", err)\n\t\t}\n\t\turl, err := config.Proxy(req)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get proxy URL for execProvider: %w\", err)\n\t\t}\n\t\tif url != nil {\n\t\t\tproxyURL = url.String()\n\t\t}\n\t}\n\n\treturn &clientauthenticationapi.Cluster{\n\t\tServer:                   config.Host,\n\t\tTLSServerName:            config.ServerName,\n\t\tInsecureSkipTLSVerify:    config.Insecure,\n\t\tCertificateAuthorityData: caData,\n\t\tProxyURL:                 proxyURL,\n\t\tDisableCompression:       config.DisableCompression,\n\t\tConfig:                   config.ExecProvider.Config,\n\t}, nil\n}\n\n// ExecClusterToConfig creates a Config with the corresponding fields from the provided\n// clientauthenticationapi.Cluster. The returned Config will be anonymous (i.e., it will not have\n// any authentication-related fields set).\nfunc ExecClusterToConfig(cluster *clientauthenticationapi.Cluster) (*Config, error) {\n\tvar proxy func(*http.Request) (*url.URL, error)\n\tif cluster.ProxyURL != \"\" {\n\t\tproxyURL, err := url.Parse(cluster.ProxyURL)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"cannot parse proxy URL: %w\", err)\n\t\t}\n\t\tproxy = http.ProxyURL(proxyURL)\n\t}\n\n\treturn &Config{\n\t\tHost: cluster.Server,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   cluster.InsecureSkipTLSVerify,\n\t\t\tServerName: cluster.TLSServerName,\n\t\t\tCAData:     cluster.CertificateAuthorityData,\n\t\t},\n\t\tProxy:              proxy,\n\t\tDisableCompression: cluster.DisableCompression,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/fake/fake.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This is made a separate package and should only be imported by tests, because\n// it imports testapi\npackage fake\n\nimport (\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\trestclient \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n)\n\n// CreateHTTPClient creates an http.Client that will invoke the provided roundTripper func\n// when a request is made.\nfunc CreateHTTPClient(roundTripper func(*http.Request) (*http.Response, error)) *http.Client {\n\treturn &http.Client{\n\t\tTransport: roundTripperFunc(roundTripper),\n\t}\n}\n\ntype roundTripperFunc func(*http.Request) (*http.Response, error)\n\nfunc (f roundTripperFunc) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn f(req)\n}\n\n// RESTClient provides a fake RESTClient interface. It is used to mock network\n// interactions via a rest.Request, or to make them via the provided Client to\n// a specific server.\ntype RESTClient struct {\n\tNegotiatedSerializer runtime.NegotiatedSerializer\n\tGroupVersion         schema.GroupVersion\n\tVersionedAPIPath     string\n\n\t// Err is returned when any request would be made to the server. If Err is set,\n\t// Req will not be recorded, Resp will not be returned, and Client will not be\n\t// invoked.\n\tErr error\n\t// Req is set to the last request that was executed (had the methods Do/DoRaw) invoked.\n\tReq *http.Request\n\t// If Client is specified, the client will be invoked instead of returning Resp if\n\t// Err is not set.\n\tClient *http.Client\n\t// Resp is returned to the caller after Req is recorded, unless Err or Client are set.\n\tResp *http.Response\n}\n\nfunc (c *RESTClient) Get() *restclient.Request {\n\treturn c.Verb(\"GET\")\n}\n\nfunc (c *RESTClient) Put() *restclient.Request {\n\treturn c.Verb(\"PUT\")\n}\n\nfunc (c *RESTClient) Patch(pt types.PatchType) *restclient.Request {\n\treturn c.Verb(\"PATCH\").SetHeader(\"Content-Type\", string(pt))\n}\n\nfunc (c *RESTClient) Post() *restclient.Request {\n\treturn c.Verb(\"POST\")\n}\n\nfunc (c *RESTClient) Delete() *restclient.Request {\n\treturn c.Verb(\"DELETE\")\n}\n\nfunc (c *RESTClient) Verb(verb string) *restclient.Request {\n\treturn c.Request().Verb(verb)\n}\n\nfunc (c *RESTClient) APIVersion() schema.GroupVersion {\n\treturn c.GroupVersion\n}\n\nfunc (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter {\n\treturn nil\n}\n\nfunc (c *RESTClient) Request() *restclient.Request {\n\tconfig := restclient.ClientContentConfig{\n\t\tContentType:  runtime.ContentTypeJSON,\n\t\tGroupVersion: c.GroupVersion,\n\t\tNegotiator:   runtime.NewClientNegotiator(c.NegotiatedSerializer, c.GroupVersion),\n\t}\n\treturn restclient.NewRequestWithClient(&url.URL{Scheme: \"https\", Host: \"localhost\"}, c.VersionedAPIPath, config, CreateHTTPClient(c.do))\n}\n\n// do is invoked when a Request() created by this client is executed.\nfunc (c *RESTClient) do(req *http.Request) (*http.Response, error) {\n\tif c.Err != nil {\n\t\treturn nil, c.Err\n\t}\n\tc.Req = req\n\tif c.Client != nil {\n\t\treturn c.Client.Do(req)\n\t}\n\treturn c.Resp, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/plugin.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\tclientcmdapi \"k8s.io/client-go/tools/clientcmd/api\"\n)\n\ntype AuthProvider interface {\n\t// WrapTransport allows the plugin to create a modified RoundTripper that\n\t// attaches authorization headers (or other info) to requests.\n\tWrapTransport(http.RoundTripper) http.RoundTripper\n\t// Login allows the plugin to initialize its configuration. It must not\n\t// require direct user interaction.\n\tLogin() error\n}\n\n// Factory generates an AuthProvider plugin.\n//\n//\tclusterAddress is the address of the current cluster.\n//\tconfig is the initial configuration for this plugin.\n//\tpersister allows the plugin to save updated configuration.\ntype Factory func(clusterAddress string, config map[string]string, persister AuthProviderConfigPersister) (AuthProvider, error)\n\n// AuthProviderConfigPersister allows a plugin to persist configuration info\n// for just itself.\ntype AuthProviderConfigPersister interface {\n\tPersist(map[string]string) error\n}\n\ntype noopPersister struct{}\n\nfunc (n *noopPersister) Persist(_ map[string]string) error {\n\t// no operation persister\n\treturn nil\n}\n\n// All registered auth provider plugins.\nvar pluginsLock sync.Mutex\nvar plugins = make(map[string]Factory)\n\nfunc RegisterAuthProviderPlugin(name string, plugin Factory) error {\n\tpluginsLock.Lock()\n\tdefer pluginsLock.Unlock()\n\tif _, found := plugins[name]; found {\n\t\treturn fmt.Errorf(\"auth Provider Plugin %q was registered twice\", name)\n\t}\n\tklog.V(4).Infof(\"Registered Auth Provider Plugin %q\", name)\n\tplugins[name] = plugin\n\treturn nil\n}\n\nfunc GetAuthProvider(clusterAddress string, apc *clientcmdapi.AuthProviderConfig, persister AuthProviderConfigPersister) (AuthProvider, error) {\n\tpluginsLock.Lock()\n\tdefer pluginsLock.Unlock()\n\tp, ok := plugins[apc.Name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"no Auth Provider found for name %q\", apc.Name)\n\t}\n\tif persister == nil {\n\t\tpersister = &noopPersister{}\n\t}\n\treturn p(clusterAddress, apc.Config, persister)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/request.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http2\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclientwatch \"k8s.io/client-go/rest/watch\"\n\t\"k8s.io/client-go/tools/metrics\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t// longThrottleLatency defines threshold for logging requests. All requests being\n\t// throttled (via the provided rateLimiter) for more than longThrottleLatency will\n\t// be logged.\n\tlongThrottleLatency = 50 * time.Millisecond\n\n\t// extraLongThrottleLatency defines the threshold for logging requests at log level 2.\n\textraLongThrottleLatency = 1 * time.Second\n)\n\n// HTTPClient is an interface for testing a request object.\ntype HTTPClient interface {\n\tDo(req *http.Request) (*http.Response, error)\n}\n\n// ResponseWrapper is an interface for getting a response.\n// The response may be either accessed as a raw data (the whole output is put into memory) or as a stream.\ntype ResponseWrapper interface {\n\tDoRaw(context.Context) ([]byte, error)\n\tStream(context.Context) (io.ReadCloser, error)\n}\n\n// RequestConstructionError is returned when there's an error assembling a request.\ntype RequestConstructionError struct {\n\tErr error\n}\n\n// Error returns a textual description of 'r'.\nfunc (r *RequestConstructionError) Error() string {\n\treturn fmt.Sprintf(\"request construction error: '%v'\", r.Err)\n}\n\nvar noBackoff = &NoBackoff{}\n\ntype requestRetryFunc func(maxRetries int) WithRetry\n\nfunc defaultRequestRetryFn(maxRetries int) WithRetry {\n\treturn &withRetry{maxRetries: maxRetries}\n}\n\n// Request allows for building up a request to a server in a chained fashion.\n// Any errors are stored until the end of your call, so you only have to\n// check once.\ntype Request struct {\n\tc *RESTClient\n\n\twarningHandler WarningHandler\n\n\trateLimiter flowcontrol.RateLimiter\n\tbackoff     BackoffManager\n\ttimeout     time.Duration\n\tmaxRetries  int\n\n\t// generic components accessible via method setters\n\tverb       string\n\tpathPrefix string\n\tsubpath    string\n\tparams     url.Values\n\theaders    http.Header\n\n\t// structural elements of the request that are part of the Kubernetes API conventions\n\tnamespace    string\n\tnamespaceSet bool\n\tresource     string\n\tresourceName string\n\tsubresource  string\n\n\t// output\n\terr error\n\n\t// only one of body / bodyBytes may be set. requests using body are not retriable.\n\tbody      io.Reader\n\tbodyBytes []byte\n\n\tretryFn requestRetryFunc\n}\n\n// NewRequest creates a new request helper object for accessing runtime.Objects on a server.\nfunc NewRequest(c *RESTClient) *Request {\n\tvar backoff BackoffManager\n\tif c.createBackoffMgr != nil {\n\t\tbackoff = c.createBackoffMgr()\n\t}\n\tif backoff == nil {\n\t\tbackoff = noBackoff\n\t}\n\n\tvar pathPrefix string\n\tif c.base != nil {\n\t\tpathPrefix = path.Join(\"/\", c.base.Path, c.versionedAPIPath)\n\t} else {\n\t\tpathPrefix = path.Join(\"/\", c.versionedAPIPath)\n\t}\n\n\tvar timeout time.Duration\n\tif c.Client != nil {\n\t\ttimeout = c.Client.Timeout\n\t}\n\n\tr := &Request{\n\t\tc:              c,\n\t\trateLimiter:    c.rateLimiter,\n\t\tbackoff:        backoff,\n\t\ttimeout:        timeout,\n\t\tpathPrefix:     pathPrefix,\n\t\tmaxRetries:     10,\n\t\tretryFn:        defaultRequestRetryFn,\n\t\twarningHandler: c.warningHandler,\n\t}\n\n\tswitch {\n\tcase len(c.content.AcceptContentTypes) > 0:\n\t\tr.SetHeader(\"Accept\", c.content.AcceptContentTypes)\n\tcase len(c.content.ContentType) > 0:\n\t\tr.SetHeader(\"Accept\", c.content.ContentType+\", */*\")\n\t}\n\treturn r\n}\n\n// NewRequestWithClient creates a Request with an embedded RESTClient for use in test scenarios.\nfunc NewRequestWithClient(base *url.URL, versionedAPIPath string, content ClientContentConfig, client *http.Client) *Request {\n\treturn NewRequest(&RESTClient{\n\t\tbase:             base,\n\t\tversionedAPIPath: versionedAPIPath,\n\t\tcontent:          content,\n\t\tClient:           client,\n\t})\n}\n\n// Verb sets the verb this request will use.\nfunc (r *Request) Verb(verb string) *Request {\n\tr.verb = verb\n\treturn r\n}\n\n// Prefix adds segments to the relative beginning to the request path. These\n// items will be placed before the optional Namespace, Resource, or Name sections.\n// Setting AbsPath will clear any previously set Prefix segments\nfunc (r *Request) Prefix(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.pathPrefix = path.Join(r.pathPrefix, path.Join(segments...))\n\treturn r\n}\n\n// Suffix appends segments to the end of the path. These items will be placed after the prefix and optional\n// Namespace, Resource, or Name sections.\nfunc (r *Request) Suffix(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.subpath = path.Join(r.subpath, path.Join(segments...))\n\treturn r\n}\n\n// Resource sets the resource to access (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Resource(resource string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif len(r.resource) != 0 {\n\t\tr.err = fmt.Errorf(\"resource already set to %q, cannot change to %q\", r.resource, resource)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(resource); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid resource %q: %v\", resource, msgs)\n\t\treturn r\n\t}\n\tr.resource = resource\n\treturn r\n}\n\n// BackOff sets the request's backoff manager to the one specified,\n// or defaults to the stub implementation if nil is provided\nfunc (r *Request) BackOff(manager BackoffManager) *Request {\n\tif manager == nil {\n\t\tr.backoff = &NoBackoff{}\n\t\treturn r\n\t}\n\n\tr.backoff = manager\n\treturn r\n}\n\n// WarningHandler sets the handler this client uses when warning headers are encountered.\n// If set to nil, this client will use the default warning handler (see SetDefaultWarningHandler).\nfunc (r *Request) WarningHandler(handler WarningHandler) *Request {\n\tr.warningHandler = handler\n\treturn r\n}\n\n// Throttle receives a rate-limiter and sets or replaces an existing request limiter\nfunc (r *Request) Throttle(limiter flowcontrol.RateLimiter) *Request {\n\tr.rateLimiter = limiter\n\treturn r\n}\n\n// SubResource sets a sub-resource path which can be multiple segments after the resource\n// name but before the suffix.\nfunc (r *Request) SubResource(subresources ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tsubresource := path.Join(subresources...)\n\tif len(r.subresource) != 0 {\n\t\tr.err = fmt.Errorf(\"subresource already set to %q, cannot change to %q\", r.subresource, subresource)\n\t\treturn r\n\t}\n\tfor _, s := range subresources {\n\t\tif msgs := IsValidPathSegmentName(s); len(msgs) != 0 {\n\t\t\tr.err = fmt.Errorf(\"invalid subresource %q: %v\", s, msgs)\n\t\t\treturn r\n\t\t}\n\t}\n\tr.subresource = subresource\n\treturn r\n}\n\n// Name sets the name of a resource to access (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Name(resourceName string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif len(resourceName) == 0 {\n\t\tr.err = fmt.Errorf(\"resource name may not be empty\")\n\t\treturn r\n\t}\n\tif len(r.resourceName) != 0 {\n\t\tr.err = fmt.Errorf(\"resource name already set to %q, cannot change to %q\", r.resourceName, resourceName)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(resourceName); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid resource name %q: %v\", resourceName, msgs)\n\t\treturn r\n\t}\n\tr.resourceName = resourceName\n\treturn r\n}\n\n// Namespace applies the namespace scope to a request (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Namespace(namespace string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif r.namespaceSet {\n\t\tr.err = fmt.Errorf(\"namespace already set to %q, cannot change to %q\", r.namespace, namespace)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(namespace); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid namespace %q: %v\", namespace, msgs)\n\t\treturn r\n\t}\n\tr.namespaceSet = true\n\tr.namespace = namespace\n\treturn r\n}\n\n// NamespaceIfScoped is a convenience function to set a namespace if scoped is true\nfunc (r *Request) NamespaceIfScoped(namespace string, scoped bool) *Request {\n\tif scoped {\n\t\treturn r.Namespace(namespace)\n\t}\n\treturn r\n}\n\n// AbsPath overwrites an existing path with the segments provided. Trailing slashes are preserved\n// when a single segment is passed.\nfunc (r *Request) AbsPath(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.pathPrefix = path.Join(r.c.base.Path, path.Join(segments...))\n\tif len(segments) == 1 && (len(r.c.base.Path) > 1 || len(segments[0]) > 1) && strings.HasSuffix(segments[0], \"/\") {\n\t\t// preserve any trailing slashes for legacy behavior\n\t\tr.pathPrefix += \"/\"\n\t}\n\treturn r\n}\n\n// RequestURI overwrites existing path and parameters with the value of the provided server relative\n// URI.\nfunc (r *Request) RequestURI(uri string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tlocator, err := url.Parse(uri)\n\tif err != nil {\n\t\tr.err = err\n\t\treturn r\n\t}\n\tr.pathPrefix = locator.Path\n\tif len(locator.Query()) > 0 {\n\t\tif r.params == nil {\n\t\t\tr.params = make(url.Values)\n\t\t}\n\t\tfor k, v := range locator.Query() {\n\t\t\tr.params[k] = v\n\t\t}\n\t}\n\treturn r\n}\n\n// Param creates a query parameter with the given string value.\nfunc (r *Request) Param(paramName, s string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\treturn r.setParam(paramName, s)\n}\n\n// VersionedParams will take the provided object, serialize it to a map[string][]string using the\n// implicit RESTClient API version and the default parameter codec, and then add those as parameters\n// to the request. Use this to provide versioned query parameters from client libraries.\n// VersionedParams will not write query parameters that have omitempty set and are empty. If a\n// parameter has already been set it is appended to (Params and VersionedParams are additive).\nfunc (r *Request) VersionedParams(obj runtime.Object, codec runtime.ParameterCodec) *Request {\n\treturn r.SpecificallyVersionedParams(obj, codec, r.c.content.GroupVersion)\n}\n\nfunc (r *Request) SpecificallyVersionedParams(obj runtime.Object, codec runtime.ParameterCodec, version schema.GroupVersion) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tparams, err := codec.EncodeParameters(obj, version)\n\tif err != nil {\n\t\tr.err = err\n\t\treturn r\n\t}\n\tfor k, v := range params {\n\t\tif r.params == nil {\n\t\t\tr.params = make(url.Values)\n\t\t}\n\t\tr.params[k] = append(r.params[k], v...)\n\t}\n\treturn r\n}\n\nfunc (r *Request) setParam(paramName, value string) *Request {\n\tif r.params == nil {\n\t\tr.params = make(url.Values)\n\t}\n\tr.params[paramName] = append(r.params[paramName], value)\n\treturn r\n}\n\nfunc (r *Request) SetHeader(key string, values ...string) *Request {\n\tif r.headers == nil {\n\t\tr.headers = http.Header{}\n\t}\n\tr.headers.Del(key)\n\tfor _, value := range values {\n\t\tr.headers.Add(key, value)\n\t}\n\treturn r\n}\n\n// Timeout makes the request use the given duration as an overall timeout for the\n// request. Additionally, if set passes the value as \"timeout\" parameter in URL.\nfunc (r *Request) Timeout(d time.Duration) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.timeout = d\n\treturn r\n}\n\n// MaxRetries makes the request use the given integer as a ceiling of retrying upon receiving\n// \"Retry-After\" headers and 429 status-code in the response. The default is 10 unless this\n// function is specifically called with a different value.\n// A zero maxRetries prevent it from doing retires and return an error immediately.\nfunc (r *Request) MaxRetries(maxRetries int) *Request {\n\tif maxRetries < 0 {\n\t\tmaxRetries = 0\n\t}\n\tr.maxRetries = maxRetries\n\treturn r\n}\n\n// Body makes the request use obj as the body. Optional.\n// If obj is a string, try to read a file of that name.\n// If obj is a []byte, send it directly.\n// If obj is an io.Reader, use it directly.\n// If obj is a runtime.Object, marshal it correctly, and set Content-Type header.\n// If obj is a runtime.Object and nil, do nothing.\n// Otherwise, set an error.\nfunc (r *Request) Body(obj interface{}) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tswitch t := obj.(type) {\n\tcase string:\n\t\tdata, err := os.ReadFile(t)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tglogBody(\"Request Body\", data)\n\t\tr.body = nil\n\t\tr.bodyBytes = data\n\tcase []byte:\n\t\tglogBody(\"Request Body\", t)\n\t\tr.body = nil\n\t\tr.bodyBytes = t\n\tcase io.Reader:\n\t\tr.body = t\n\t\tr.bodyBytes = nil\n\tcase runtime.Object:\n\t\t// callers may pass typed interface pointers, therefore we must check nil with reflection\n\t\tif reflect.ValueOf(t).IsNil() {\n\t\t\treturn r\n\t\t}\n\t\tencoder, err := r.c.content.Negotiator.Encoder(r.c.content.ContentType, nil)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tdata, err := runtime.Encode(encoder, t)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tglogBody(\"Request Body\", data)\n\t\tr.body = nil\n\t\tr.bodyBytes = data\n\t\tr.SetHeader(\"Content-Type\", r.c.content.ContentType)\n\tdefault:\n\t\tr.err = fmt.Errorf(\"unknown type used for body: %+v\", obj)\n\t}\n\treturn r\n}\n\n// Error returns any error encountered constructing the request, if any.\nfunc (r *Request) Error() error {\n\treturn r.err\n}\n\n// URL returns the current working URL. Check the result of Error() to ensure\n// that the returned URL is valid.\nfunc (r *Request) URL() *url.URL {\n\tp := r.pathPrefix\n\tif r.namespaceSet && len(r.namespace) > 0 {\n\t\tp = path.Join(p, \"namespaces\", r.namespace)\n\t}\n\tif len(r.resource) != 0 {\n\t\tp = path.Join(p, strings.ToLower(r.resource))\n\t}\n\t// Join trims trailing slashes, so preserve r.pathPrefix's trailing slash for backwards compatibility if nothing was changed\n\tif len(r.resourceName) != 0 || len(r.subpath) != 0 || len(r.subresource) != 0 {\n\t\tp = path.Join(p, r.resourceName, r.subresource, r.subpath)\n\t}\n\n\tfinalURL := &url.URL{}\n\tif r.c.base != nil {\n\t\t*finalURL = *r.c.base\n\t}\n\tfinalURL.Path = p\n\n\tquery := url.Values{}\n\tfor key, values := range r.params {\n\t\tfor _, value := range values {\n\t\t\tquery.Add(key, value)\n\t\t}\n\t}\n\n\t// timeout is handled specially here.\n\tif r.timeout != 0 {\n\t\tquery.Set(\"timeout\", r.timeout.String())\n\t}\n\tfinalURL.RawQuery = query.Encode()\n\treturn finalURL\n}\n\n// finalURLTemplate is similar to URL(), but will make all specific parameter values equal\n// - instead of name or namespace, \"{name}\" and \"{namespace}\" will be used, and all query\n// parameters will be reset. This creates a copy of the url so as not to change the\n// underlying object.\nfunc (r Request) finalURLTemplate() url.URL {\n\tnewParams := url.Values{}\n\tv := []string{\"{value}\"}\n\tfor k := range r.params {\n\t\tnewParams[k] = v\n\t}\n\tr.params = newParams\n\tu := r.URL()\n\tif u == nil {\n\t\treturn url.URL{}\n\t}\n\n\tsegments := strings.Split(u.Path, \"/\")\n\tgroupIndex := 0\n\tindex := 0\n\ttrimmedBasePath := \"\"\n\tif r.c.base != nil && strings.Contains(u.Path, r.c.base.Path) {\n\t\tp := strings.TrimPrefix(u.Path, r.c.base.Path)\n\t\tif !strings.HasPrefix(p, \"/\") {\n\t\t\tp = \"/\" + p\n\t\t}\n\t\t// store the base path that we have trimmed so we can append it\n\t\t// before returning the URL\n\t\ttrimmedBasePath = r.c.base.Path\n\t\tsegments = strings.Split(p, \"/\")\n\t\tgroupIndex = 1\n\t}\n\tif len(segments) <= 2 {\n\t\treturn *u\n\t}\n\n\tconst CoreGroupPrefix = \"api\"\n\tconst NamedGroupPrefix = \"apis\"\n\tisCoreGroup := segments[groupIndex] == CoreGroupPrefix\n\tisNamedGroup := segments[groupIndex] == NamedGroupPrefix\n\tif isCoreGroup {\n\t\t// checking the case of core group with /api/v1/... format\n\t\tindex = groupIndex + 2\n\t} else if isNamedGroup {\n\t\t// checking the case of named group with /apis/apps/v1/... format\n\t\tindex = groupIndex + 3\n\t} else {\n\t\t// this should not happen that the only two possibilities are /api... and /apis..., just want to put an\n\t\t// outlet here in case more API groups are added in future if ever possible:\n\t\t// https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-groups\n\t\t// if a wrong API groups name is encountered, return the {prefix} for url.Path\n\t\tu.Path = \"/{prefix}\"\n\t\tu.RawQuery = \"\"\n\t\treturn *u\n\t}\n\t// switch segLength := len(segments) - index; segLength {\n\tswitch {\n\t// case len(segments) - index == 1:\n\t// resource (with no name) do nothing\n\tcase len(segments)-index == 2:\n\t\t// /$RESOURCE/$NAME: replace $NAME with {name}\n\t\tsegments[index+1] = \"{name}\"\n\tcase len(segments)-index == 3:\n\t\tif segments[index+2] == \"finalize\" || segments[index+2] == \"status\" {\n\t\t\t// /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name}\n\t\t\tsegments[index+1] = \"{name}\"\n\t\t} else {\n\t\t\t// /namespace/$NAMESPACE/$RESOURCE: replace $NAMESPACE with {namespace}\n\t\t\tsegments[index+1] = \"{namespace}\"\n\t\t}\n\tcase len(segments)-index >= 4:\n\t\tsegments[index+1] = \"{namespace}\"\n\t\t// /namespace/$NAMESPACE/$RESOURCE/$NAME: replace $NAMESPACE with {namespace},  $NAME with {name}\n\t\tif segments[index+3] != \"finalize\" && segments[index+3] != \"status\" {\n\t\t\t// /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name}\n\t\t\tsegments[index+3] = \"{name}\"\n\t\t}\n\t}\n\tu.Path = path.Join(trimmedBasePath, path.Join(segments...))\n\treturn *u\n}\n\nfunc (r *Request) tryThrottleWithInfo(ctx context.Context, retryInfo string) error {\n\tif r.rateLimiter == nil {\n\t\treturn nil\n\t}\n\n\tnow := time.Now()\n\n\terr := r.rateLimiter.Wait(ctx)\n\tif err != nil {\n\t\terr = fmt.Errorf(\"client rate limiter Wait returned an error: %w\", err)\n\t}\n\tlatency := time.Since(now)\n\n\tvar message string\n\tswitch {\n\tcase len(retryInfo) > 0:\n\t\tmessage = fmt.Sprintf(\"Waited for %v, %s - request: %s:%s\", latency, retryInfo, r.verb, r.URL().String())\n\tdefault:\n\t\tmessage = fmt.Sprintf(\"Waited for %v due to client-side throttling, not priority and fairness, request: %s:%s\", latency, r.verb, r.URL().String())\n\t}\n\n\tif latency > longThrottleLatency {\n\t\tklog.V(3).Info(message)\n\t}\n\tif latency > extraLongThrottleLatency {\n\t\t// If the rate limiter latency is very high, the log message should be printed at a higher log level,\n\t\t// but we use a throttled logger to prevent spamming.\n\t\tglobalThrottledLogger.Infof(\"%s\", message)\n\t}\n\tmetrics.RateLimiterLatency.Observe(ctx, r.verb, r.finalURLTemplate(), latency)\n\n\treturn err\n}\n\nfunc (r *Request) tryThrottle(ctx context.Context) error {\n\treturn r.tryThrottleWithInfo(ctx, \"\")\n}\n\ntype throttleSettings struct {\n\tlogLevel       klog.Level\n\tminLogInterval time.Duration\n\n\tlastLogTime time.Time\n\tlock        sync.RWMutex\n}\n\ntype throttledLogger struct {\n\tclock    clock.PassiveClock\n\tsettings []*throttleSettings\n}\n\nvar globalThrottledLogger = &throttledLogger{\n\tclock: clock.RealClock{},\n\tsettings: []*throttleSettings{\n\t\t{\n\t\t\tlogLevel:       2,\n\t\t\tminLogInterval: 1 * time.Second,\n\t\t}, {\n\t\t\tlogLevel:       0,\n\t\t\tminLogInterval: 10 * time.Second,\n\t\t},\n\t},\n}\n\nfunc (b *throttledLogger) attemptToLog() (klog.Level, bool) {\n\tfor _, setting := range b.settings {\n\t\tif bool(klog.V(setting.logLevel).Enabled()) {\n\t\t\t// Return early without write locking if possible.\n\t\t\tif func() bool {\n\t\t\t\tsetting.lock.RLock()\n\t\t\t\tdefer setting.lock.RUnlock()\n\t\t\t\treturn b.clock.Since(setting.lastLogTime) >= setting.minLogInterval\n\t\t\t}() {\n\t\t\t\tsetting.lock.Lock()\n\t\t\t\tdefer setting.lock.Unlock()\n\t\t\t\tif b.clock.Since(setting.lastLogTime) >= setting.minLogInterval {\n\t\t\t\t\tsetting.lastLogTime = b.clock.Now()\n\t\t\t\t\treturn setting.logLevel, true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1, false\n\t\t}\n\t}\n\treturn -1, false\n}\n\n// Infof will write a log message at each logLevel specified by the receiver's throttleSettings\n// as long as it hasn't written a log message more recently than minLogInterval.\nfunc (b *throttledLogger) Infof(message string, args ...interface{}) {\n\tif logLevel, ok := b.attemptToLog(); ok {\n\t\tklog.V(logLevel).Infof(message, args...)\n\t}\n}\n\n// Watch attempts to begin watching the requested location.\n// Returns a watch.Interface, or an error.\nfunc (r *Request) Watch(ctx context.Context) (watch.Interface, error) {\n\t// We specifically don't want to rate limit watches, so we\n\t// don't use r.rateLimiter here.\n\tif r.err != nil {\n\t\treturn nil, r.err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\tisErrRetryableFunc := func(request *http.Request, err error) bool {\n\t\t// The watch stream mechanism handles many common partial data errors, so closed\n\t\t// connections can be retried in many cases.\n\t\tif net.IsProbableEOF(err) || net.IsTimeout(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tretry := r.retryFn(r.maxRetries)\n\turl := r.URL().String()\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn nil, retry.WrapPreviousError(err)\n\t\t}\n\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresp, err := client.Do(req)\n\t\tretry.After(ctx, r, resp, err)\n\t\tif err == nil && resp.StatusCode == http.StatusOK {\n\t\t\treturn r.newStreamWatcher(resp)\n\t\t}\n\n\t\tdone, transformErr := func() (bool, error) {\n\t\t\tdefer readAndCloseResponseBody(resp)\n\n\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) {\n\t\t\t\treturn false, nil\n\t\t\t}\n\n\t\t\tif resp == nil {\n\t\t\t\t// the server must have sent us an error in 'err'\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t\tif result := r.transformResponse(resp, req); result.err != nil {\n\t\t\t\treturn true, result.err\n\t\t\t}\n\t\t\treturn true, fmt.Errorf(\"for request %s, got status: %v\", url, resp.StatusCode)\n\t\t}()\n\t\tif done {\n\t\t\tif isErrRetryableFunc(req, err) {\n\t\t\t\treturn watch.NewEmptyWatch(), nil\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// if the server sent us an HTTP Response object,\n\t\t\t\t// we need to return the error object from that.\n\t\t\t\terr = transformErr\n\t\t\t}\n\t\t\treturn nil, retry.WrapPreviousError(err)\n\t\t}\n\t}\n}\n\nfunc (r *Request) newStreamWatcher(resp *http.Response) (watch.Interface, error) {\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tmediaType, params, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\tklog.V(4).Infof(\"Unexpected content type from the server: %q: %v\", contentType, err)\n\t}\n\tobjectDecoder, streamingSerializer, framer, err := r.c.content.Negotiator.StreamDecoder(mediaType, params)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thandleWarnings(resp.Header, r.warningHandler)\n\n\tframeReader := framer.NewFrameReader(resp.Body)\n\twatchEventDecoder := streaming.NewDecoder(frameReader, streamingSerializer)\n\n\treturn watch.NewStreamWatcher(\n\t\trestclientwatch.NewDecoder(watchEventDecoder, objectDecoder),\n\t\t// use 500 to indicate that the cause of the error is unknown - other error codes\n\t\t// are more specific to HTTP interactions, and set a reason\n\t\terrors.NewClientErrorReporter(http.StatusInternalServerError, r.verb, \"ClientWatchDecoding\"),\n\t), nil\n}\n\n// updateRequestResultMetric increments the RequestResult metric counter,\n// it should be called with the (response, err) tuple from the final\n// reply from the server.\nfunc updateRequestResultMetric(ctx context.Context, req *Request, resp *http.Response, err error) {\n\tcode, host := sanitize(req, resp, err)\n\tmetrics.RequestResult.Increment(ctx, code, req.verb, host)\n}\n\n// updateRequestRetryMetric increments the RequestRetry metric counter,\n// it should be called with the (response, err) tuple for each retry\n// except for the final attempt.\nfunc updateRequestRetryMetric(ctx context.Context, req *Request, resp *http.Response, err error) {\n\tcode, host := sanitize(req, resp, err)\n\tmetrics.RequestRetry.IncrementRetry(ctx, code, req.verb, host)\n}\n\nfunc sanitize(req *Request, resp *http.Response, err error) (string, string) {\n\thost := \"none\"\n\tif req.c.base != nil {\n\t\thost = req.c.base.Host\n\t}\n\n\t// Errors can be arbitrary strings. Unbound label cardinality is not suitable for a metric\n\t// system so we just report them as `<error>`.\n\tcode := \"<error>\"\n\tif resp != nil {\n\t\tcode = strconv.Itoa(resp.StatusCode)\n\t}\n\n\treturn code, host\n}\n\n// Stream formats and executes the request, and offers streaming of the response.\n// Returns io.ReadCloser which could be used for streaming of the response, or an error\n// Any non-2xx http status code causes an error.  If we get a non-2xx code, we try to convert the body into an APIStatus object.\n// If we can, we return that as an error.  Otherwise, we create an error that lists the http status and the content of the response.\nfunc (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) {\n\tif r.err != nil {\n\t\treturn nil, r.err\n\t}\n\n\tif err := r.tryThrottle(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\tretry := r.retryFn(r.maxRetries)\n\turl := r.URL().String()\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresp, err := client.Do(req)\n\t\tretry.After(ctx, r, resp, err)\n\t\tif err != nil {\n\t\t\t// we only retry on an HTTP response with 'Retry-After' header\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch {\n\t\tcase (resp.StatusCode >= 200) && (resp.StatusCode < 300):\n\t\t\thandleWarnings(resp.Header, r.warningHandler)\n\t\t\treturn resp.Body, nil\n\n\t\tdefault:\n\t\t\tdone, transformErr := func() (bool, error) {\n\t\t\t\tdefer resp.Body.Close()\n\n\t\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, neverRetryError) {\n\t\t\t\t\treturn false, nil\n\t\t\t\t}\n\t\t\t\tresult := r.transformResponse(resp, req)\n\t\t\t\tif err := result.Error(); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t\treturn true, fmt.Errorf(\"%d while accessing %v: %s\", result.statusCode, url, string(result.body))\n\t\t\t}()\n\t\t\tif done {\n\t\t\t\treturn nil, transformErr\n\t\t\t}\n\t\t}\n\t}\n}\n\n// requestPreflightCheck looks for common programmer errors on Request.\n//\n// We tackle here two programmer mistakes. The first one is to try to create\n// something(POST) using an empty string as namespace with namespaceSet as\n// true. If namespaceSet is true then namespace should also be defined. The\n// second mistake is, when under the same circumstances, the programmer tries\n// to GET, PUT or DELETE a named resource(resourceName != \"\"), again, if\n// namespaceSet is true then namespace must not be empty.\nfunc (r *Request) requestPreflightCheck() error {\n\tif !r.namespaceSet {\n\t\treturn nil\n\t}\n\tif len(r.namespace) > 0 {\n\t\treturn nil\n\t}\n\n\tswitch r.verb {\n\tcase \"POST\":\n\t\treturn fmt.Errorf(\"an empty namespace may not be set during creation\")\n\tcase \"GET\", \"PUT\", \"DELETE\":\n\t\tif len(r.resourceName) > 0 {\n\t\t\treturn fmt.Errorf(\"an empty namespace may not be set when a resource name is provided\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Request) newHTTPRequest(ctx context.Context) (*http.Request, error) {\n\tvar body io.Reader\n\tswitch {\n\tcase r.body != nil && r.bodyBytes != nil:\n\t\treturn nil, fmt.Errorf(\"cannot set both body and bodyBytes\")\n\tcase r.body != nil:\n\t\tbody = r.body\n\tcase r.bodyBytes != nil:\n\t\t// Create a new reader specifically for this request.\n\t\t// Giving each request a dedicated reader allows retries to avoid races resetting the request body.\n\t\tbody = bytes.NewReader(r.bodyBytes)\n\t}\n\n\turl := r.URL().String()\n\treq, err := http.NewRequest(r.verb, url, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq = req.WithContext(ctx)\n\treq.Header = r.headers\n\treturn req, nil\n}\n\n// request connects to the server and invokes the provided function when a server response is\n// received. It handles retry behavior and up front validation of requests. It will invoke\n// fn at most once. It will return an error if a problem occurred prior to connecting to the\n// server - the provided function is responsible for handling server errors.\nfunc (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Response)) error {\n\t// Metrics for total request latency\n\tstart := time.Now()\n\tdefer func() {\n\t\tmetrics.RequestLatency.Observe(ctx, r.verb, r.finalURLTemplate(), time.Since(start))\n\t}()\n\n\tif r.err != nil {\n\t\tklog.V(4).Infof(\"Error in request: %v\", r.err)\n\t\treturn r.err\n\t}\n\n\tif err := r.requestPreflightCheck(); err != nil {\n\t\treturn err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\t// Throttle the first try before setting up the timeout configured on the\n\t// client. We don't want a throttled client to return timeouts to callers\n\t// before it makes a single request.\n\tif err := r.tryThrottle(ctx); err != nil {\n\t\treturn err\n\t}\n\n\tif r.timeout > 0 {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithTimeout(ctx, r.timeout)\n\t\tdefer cancel()\n\t}\n\n\tisErrRetryableFunc := func(req *http.Request, err error) bool {\n\t\t// \"Connection reset by peer\" or \"apiserver is shutting down\" are usually a transient errors.\n\t\t// Thus in case of \"GET\" operations, we simply retry it.\n\t\t// We are not automatically retrying \"write\" operations, as they are not idempotent.\n\t\tif req.Method != \"GET\" {\n\t\t\treturn false\n\t\t}\n\t\t// For connection errors and apiserver shutdown errors retry.\n\t\tif net.IsConnectionReset(err) || net.IsProbableEOF(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\t// Right now we make about ten retry attempts if we get a Retry-After response.\n\tretry := r.retryFn(r.maxRetries)\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn retry.WrapPreviousError(err)\n\t\t}\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp, err := client.Do(req)\n\t\t// The value -1 or a value of 0 with a non-nil Body indicates that the length is unknown.\n\t\t// https://pkg.go.dev/net/http#Request\n\t\tif req.ContentLength >= 0 && !(req.Body != nil && req.ContentLength == 0) {\n\t\t\tmetrics.RequestSize.Observe(ctx, r.verb, r.URL().Host, float64(req.ContentLength))\n\t\t}\n\t\tretry.After(ctx, r, resp, err)\n\n\t\tdone := func() bool {\n\t\t\tdefer readAndCloseResponseBody(resp)\n\n\t\t\t// if the server returns an error in err, the response will be nil.\n\t\t\tf := func(req *http.Request, resp *http.Response) {\n\t\t\t\tif resp == nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tfn(req, resp)\n\t\t\t}\n\n\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tf(req, resp)\n\t\t\treturn true\n\t\t}()\n\t\tif done {\n\t\t\treturn retry.WrapPreviousError(err)\n\t\t}\n\t}\n}\n\n// Do formats and executes the request. Returns a Result object for easy response\n// processing.\n//\n// Error type:\n//   - If the server responds with a status: *errors.StatusError or *errors.UnexpectedObjectError\n//   - http.Client.Do errors are returned directly.\nfunc (r *Request) Do(ctx context.Context) Result {\n\tvar result Result\n\terr := r.request(ctx, func(req *http.Request, resp *http.Response) {\n\t\tresult = r.transformResponse(resp, req)\n\t})\n\tif err != nil {\n\t\treturn Result{err: err}\n\t}\n\tif result.err == nil || len(result.body) > 0 {\n\t\tmetrics.ResponseSize.Observe(ctx, r.verb, r.URL().Host, float64(len(result.body)))\n\t}\n\treturn result\n}\n\n// DoRaw executes the request but does not process the response body.\nfunc (r *Request) DoRaw(ctx context.Context) ([]byte, error) {\n\tvar result Result\n\terr := r.request(ctx, func(req *http.Request, resp *http.Response) {\n\t\tresult.body, result.err = io.ReadAll(resp.Body)\n\t\tglogBody(\"Response Body\", result.body)\n\t\tif resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent {\n\t\t\tresult.err = r.transformUnstructuredResponseError(resp, req, result.body)\n\t\t}\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif result.err == nil || len(result.body) > 0 {\n\t\tmetrics.ResponseSize.Observe(ctx, r.verb, r.URL().Host, float64(len(result.body)))\n\t}\n\treturn result.body, result.err\n}\n\n// transformResponse converts an API response into a structured API object\nfunc (r *Request) transformResponse(resp *http.Response, req *http.Request) Result {\n\tvar body []byte\n\tif resp.Body != nil {\n\t\tdata, err := io.ReadAll(resp.Body)\n\t\tswitch err.(type) {\n\t\tcase nil:\n\t\t\tbody = data\n\t\tcase http2.StreamError:\n\t\t\t// This is trying to catch the scenario that the server may close the connection when sending the\n\t\t\t// response body. This can be caused by server timeout due to a slow network connection.\n\t\t\t// TODO: Add test for this. Steps may be:\n\t\t\t// 1. client-go (or kubectl) sends a GET request.\n\t\t\t// 2. Apiserver sends back the headers and then part of the body\n\t\t\t// 3. Apiserver closes connection.\n\t\t\t// 4. client-go should catch this and return an error.\n\t\t\tklog.V(2).Infof(\"Stream error %#v when reading response body, may be caused by closed connection.\", err)\n\t\t\tstreamErr := fmt.Errorf(\"stream error when reading response body, may be caused by closed connection. Please retry. Original error: %w\", err)\n\t\t\treturn Result{\n\t\t\t\terr: streamErr,\n\t\t\t}\n\t\tdefault:\n\t\t\tklog.Errorf(\"Unexpected error when reading response body: %v\", err)\n\t\t\tunexpectedErr := fmt.Errorf(\"unexpected error when reading response body. Please retry. Original error: %w\", err)\n\t\t\treturn Result{\n\t\t\t\terr: unexpectedErr,\n\t\t\t}\n\t\t}\n\t}\n\n\tglogBody(\"Response Body\", body)\n\n\t// verify the content type is accurate\n\tvar decoder runtime.Decoder\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tif len(contentType) == 0 {\n\t\tcontentType = r.c.content.ContentType\n\t}\n\tif len(contentType) > 0 {\n\t\tvar err error\n\t\tmediaType, params, err := mime.ParseMediaType(contentType)\n\t\tif err != nil {\n\t\t\treturn Result{err: errors.NewInternalError(err)}\n\t\t}\n\t\tdecoder, err = r.c.content.Negotiator.Decoder(mediaType, params)\n\t\tif err != nil {\n\t\t\t// if we fail to negotiate a decoder, treat this as an unstructured error\n\t\t\tswitch {\n\t\t\tcase resp.StatusCode == http.StatusSwitchingProtocols:\n\t\t\t\t// no-op, we've been upgraded\n\t\t\tcase resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent:\n\t\t\t\treturn Result{err: r.transformUnstructuredResponseError(resp, req, body)}\n\t\t\t}\n\t\t\treturn Result{\n\t\t\t\tbody:        body,\n\t\t\t\tcontentType: contentType,\n\t\t\t\tstatusCode:  resp.StatusCode,\n\t\t\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch {\n\tcase resp.StatusCode == http.StatusSwitchingProtocols:\n\t\t// no-op, we've been upgraded\n\tcase resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent:\n\t\t// calculate an unstructured error from the response which the Result object may use if the caller\n\t\t// did not return a structured error.\n\t\tretryAfter, _ := retryAfterSeconds(resp)\n\t\terr := r.newUnstructuredResponseError(body, isTextResponse(resp), resp.StatusCode, req.Method, retryAfter)\n\t\treturn Result{\n\t\t\tbody:        body,\n\t\t\tcontentType: contentType,\n\t\t\tstatusCode:  resp.StatusCode,\n\t\t\tdecoder:     decoder,\n\t\t\terr:         err,\n\t\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t\t}\n\t}\n\n\treturn Result{\n\t\tbody:        body,\n\t\tcontentType: contentType,\n\t\tstatusCode:  resp.StatusCode,\n\t\tdecoder:     decoder,\n\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t}\n}\n\n// truncateBody decides if the body should be truncated, based on the glog Verbosity.\nfunc truncateBody(body string) string {\n\tmax := 0\n\tswitch {\n\tcase bool(klog.V(10).Enabled()):\n\t\treturn body\n\tcase bool(klog.V(9).Enabled()):\n\t\tmax = 10240\n\tcase bool(klog.V(8).Enabled()):\n\t\tmax = 1024\n\t}\n\n\tif len(body) <= max {\n\t\treturn body\n\t}\n\n\treturn body[:max] + fmt.Sprintf(\" [truncated %d chars]\", len(body)-max)\n}\n\n// glogBody logs a body output that could be either JSON or protobuf. It explicitly guards against\n// allocating a new string for the body output unless necessary. Uses a simple heuristic to determine\n// whether the body is printable.\nfunc glogBody(prefix string, body []byte) {\n\tif klogV := klog.V(8); klogV.Enabled() {\n\t\tif bytes.IndexFunc(body, func(r rune) bool {\n\t\t\treturn r < 0x0a\n\t\t}) != -1 {\n\t\t\tklogV.Infof(\"%s:\\n%s\", prefix, truncateBody(hex.Dump(body)))\n\t\t} else {\n\t\t\tklogV.Infof(\"%s: %s\", prefix, truncateBody(string(body)))\n\t\t}\n\t}\n}\n\n// maxUnstructuredResponseTextBytes is an upper bound on how much output to include in the unstructured error.\nconst maxUnstructuredResponseTextBytes = 2048\n\n// transformUnstructuredResponseError handles an error from the server that is not in a structured form.\n// It is expected to transform any response that is not recognizable as a clear server sent error from the\n// K8S API using the information provided with the request. In practice, HTTP proxies and client libraries\n// introduce a level of uncertainty to the responses returned by servers that in common use result in\n// unexpected responses. The rough structure is:\n//\n// 1. Assume the server sends you something sane - JSON + well defined error objects + proper codes\n//   - this is the happy path\n//   - when you get this output, trust what the server sends\n//     2. Guard against empty fields / bodies in received JSON and attempt to cull sufficient info from them to\n//     generate a reasonable facsimile of the original failure.\n//   - Be sure to use a distinct error type or flag that allows a client to distinguish between this and error 1 above\n//     3. Handle true disconnect failures / completely malformed data by moving up to a more generic client error\n//     4. Distinguish between various connection failures like SSL certificates, timeouts, proxy errors, unexpected\n//     initial contact, the presence of mismatched body contents from posted content types\n//   - Give these a separate distinct error type and capture as much as possible of the original message\n//\n// TODO: introduce transformation of generic http.Client.Do() errors that separates 4.\nfunc (r *Request) transformUnstructuredResponseError(resp *http.Response, req *http.Request, body []byte) error {\n\tif body == nil && resp.Body != nil {\n\t\tif data, err := io.ReadAll(&io.LimitedReader{R: resp.Body, N: maxUnstructuredResponseTextBytes}); err == nil {\n\t\t\tbody = data\n\t\t}\n\t}\n\tretryAfter, _ := retryAfterSeconds(resp)\n\treturn r.newUnstructuredResponseError(body, isTextResponse(resp), resp.StatusCode, req.Method, retryAfter)\n}\n\n// newUnstructuredResponseError instantiates the appropriate generic error for the provided input. It also logs the body.\nfunc (r *Request) newUnstructuredResponseError(body []byte, isTextResponse bool, statusCode int, method string, retryAfter int) error {\n\t// cap the amount of output we create\n\tif len(body) > maxUnstructuredResponseTextBytes {\n\t\tbody = body[:maxUnstructuredResponseTextBytes]\n\t}\n\n\tmessage := \"unknown\"\n\tif isTextResponse {\n\t\tmessage = strings.TrimSpace(string(body))\n\t}\n\tvar groupResource schema.GroupResource\n\tif len(r.resource) > 0 {\n\t\tgroupResource.Group = r.c.content.GroupVersion.Group\n\t\tgroupResource.Resource = r.resource\n\t}\n\treturn errors.NewGenericServerResponse(\n\t\tstatusCode,\n\t\tmethod,\n\t\tgroupResource,\n\t\tr.resourceName,\n\t\tmessage,\n\t\tretryAfter,\n\t\ttrue,\n\t)\n}\n\n// isTextResponse returns true if the response appears to be a textual media type.\nfunc isTextResponse(resp *http.Response) bool {\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tif len(contentType) == 0 {\n\t\treturn true\n\t}\n\tmedia, _, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(media, \"text/\")\n}\n\n// retryAfterSeconds returns the value of the Retry-After header and true, or 0 and false if\n// the header was missing or not a valid number.\nfunc retryAfterSeconds(resp *http.Response) (int, bool) {\n\tif h := resp.Header.Get(\"Retry-After\"); len(h) > 0 {\n\t\tif i, err := strconv.Atoi(h); err == nil {\n\t\t\treturn i, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Result contains the result of calling Request.Do().\ntype Result struct {\n\tbody        []byte\n\twarnings    []net.WarningHeader\n\tcontentType string\n\terr         error\n\tstatusCode  int\n\n\tdecoder runtime.Decoder\n}\n\n// Raw returns the raw result.\nfunc (r Result) Raw() ([]byte, error) {\n\treturn r.body, r.err\n}\n\n// Get returns the result as an object, which means it passes through the decoder.\n// If the returned object is of type Status and has .Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\nfunc (r Result) Get() (runtime.Object, error) {\n\tif r.err != nil {\n\t\t// Check whether the result has a Status object in the body and prefer that.\n\t\treturn nil, r.Error()\n\t}\n\tif r.decoder == nil {\n\t\treturn nil, fmt.Errorf(\"serializer for %s doesn't exist\", r.contentType)\n\t}\n\n\t// decode, but if the result is Status return that as an error instead.\n\tout, _, err := r.decoder.Decode(r.body, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// any status besides StatusSuccess is considered an error.\n\t\tif t.Status != metav1.StatusSuccess {\n\t\t\treturn nil, errors.FromObject(t)\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// StatusCode returns the HTTP status code of the request. (Only valid if no\n// error was returned.)\nfunc (r Result) StatusCode(statusCode *int) Result {\n\t*statusCode = r.statusCode\n\treturn r\n}\n\n// ContentType returns the \"Content-Type\" response header into the passed\n// string, returning the Result for possible chaining. (Only valid if no\n// error code was returned.)\nfunc (r Result) ContentType(contentType *string) Result {\n\t*contentType = r.contentType\n\treturn r\n}\n\n// Into stores the result into obj, if possible. If obj is nil it is ignored.\n// If the returned object is of type Status and has .Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\nfunc (r Result) Into(obj runtime.Object) error {\n\tif r.err != nil {\n\t\t// Check whether the result has a Status object in the body and prefer that.\n\t\treturn r.Error()\n\t}\n\tif r.decoder == nil {\n\t\treturn fmt.Errorf(\"serializer for %s doesn't exist\", r.contentType)\n\t}\n\tif len(r.body) == 0 {\n\t\treturn fmt.Errorf(\"0-length response with status code: %d and content type: %s\",\n\t\t\tr.statusCode, r.contentType)\n\t}\n\n\tout, _, err := r.decoder.Decode(r.body, nil, obj)\n\tif err != nil || out == obj {\n\t\treturn err\n\t}\n\t// if a different object is returned, see if it is Status and avoid double decoding\n\t// the object.\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// any status besides StatusSuccess is considered an error.\n\t\tif t.Status != metav1.StatusSuccess {\n\t\t\treturn errors.FromObject(t)\n\t\t}\n\t}\n\treturn nil\n}\n\n// WasCreated updates the provided bool pointer to whether the server returned\n// 201 created or a different response.\nfunc (r Result) WasCreated(wasCreated *bool) Result {\n\t*wasCreated = r.statusCode == http.StatusCreated\n\treturn r\n}\n\n// Error returns the error executing the request, nil if no error occurred.\n// If the returned object is of type Status and has Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\n// See the Request.Do() comment for what errors you might get.\nfunc (r Result) Error() error {\n\t// if we have received an unexpected server error, and we have a body and decoder, we can try to extract\n\t// a Status object.\n\tif r.err == nil || !errors.IsUnexpectedServerError(r.err) || len(r.body) == 0 || r.decoder == nil {\n\t\treturn r.err\n\t}\n\n\t// attempt to convert the body into a Status object\n\t// to be backwards compatible with old servers that do not return a version, default to \"v1\"\n\tout, _, err := r.decoder.Decode(r.body, &schema.GroupVersionKind{Version: \"v1\"}, nil)\n\tif err != nil {\n\t\tklog.V(5).Infof(\"body was not decodable (unable to check for Status): %v\", err)\n\t\treturn r.err\n\t}\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// because we default the kind, we *must* check for StatusFailure\n\t\tif t.Status == metav1.StatusFailure {\n\t\t\treturn errors.FromObject(t)\n\t\t}\n\t}\n\treturn r.err\n}\n\n// Warnings returns any warning headers received in the response\nfunc (r Result) Warnings() []net.WarningHeader {\n\treturn r.warnings\n}\n\n// NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)\nvar NameMayNotBe = []string{\".\", \"..\"}\n\n// NameMayNotContain specifies substrings that cannot be used in names specified as path segments (like the REST API or etcd store)\nvar NameMayNotContain = []string{\"/\", \"%\"}\n\n// IsValidPathSegmentName validates the name can be safely encoded as a path segment\nfunc IsValidPathSegmentName(name string) []string {\n\tfor _, illegalName := range NameMayNotBe {\n\t\tif name == illegalName {\n\t\t\treturn []string{fmt.Sprintf(`may not be '%s'`, illegalName)}\n\t\t}\n\t}\n\n\tvar errors []string\n\tfor _, illegalContent := range NameMayNotContain {\n\t\tif strings.Contains(name, illegalContent) {\n\t\t\terrors = append(errors, fmt.Sprintf(`may not contain '%s'`, illegalContent))\n\t\t}\n\t}\n\n\treturn errors\n}\n\n// IsValidPathSegmentPrefix validates the name can be used as a prefix for a name which will be encoded as a path segment\n// It does not check for exact matches with disallowed names, since an arbitrary suffix might make the name valid\nfunc IsValidPathSegmentPrefix(name string) []string {\n\tvar errors []string\n\tfor _, illegalContent := range NameMayNotContain {\n\t\tif strings.Contains(name, illegalContent) {\n\t\t\terrors = append(errors, fmt.Sprintf(`may not contain '%s'`, illegalContent))\n\t\t}\n\t}\n\n\treturn errors\n}\n\n// ValidatePathSegmentName validates the name can be safely encoded as a path segment\nfunc ValidatePathSegmentName(name string, prefix bool) []string {\n\tif prefix {\n\t\treturn IsValidPathSegmentPrefix(name)\n\t}\n\treturn IsValidPathSegmentName(name)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/transport.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"net/http\"\n\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/plugin/pkg/client/auth/exec\"\n\t\"k8s.io/client-go/transport\"\n)\n\n// HTTPClientFor returns an http.Client that will provide the authentication\n// or transport level security defined by the provided Config. Will return the\n// default http.DefaultClient if no special case behavior is needed.\nfunc HTTPClientFor(config *Config) (*http.Client, error) {\n\ttransport, err := TransportFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar httpClient *http.Client\n\tif transport != http.DefaultTransport || config.Timeout > 0 {\n\t\thttpClient = &http.Client{\n\t\t\tTransport: transport,\n\t\t\tTimeout:   config.Timeout,\n\t\t}\n\t} else {\n\t\thttpClient = http.DefaultClient\n\t}\n\n\treturn httpClient, nil\n}\n\n// TLSConfigFor returns a tls.Config that will provide the transport level security defined\n// by the provided Config. Will return nil if no transport level security is requested.\nfunc TLSConfigFor(config *Config) (*tls.Config, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.TLSConfigFor(cfg)\n}\n\n// TransportFor returns an http.RoundTripper that will provide the authentication\n// or transport level security defined by the provided Config. Will return the\n// default http.DefaultTransport if no special case behavior is needed.\nfunc TransportFor(config *Config) (http.RoundTripper, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.New(cfg)\n}\n\n// HTTPWrappersForConfig wraps a round tripper with any relevant layered behavior from the\n// config. Exposed to allow more clients that need HTTP-like behavior but then must hijack\n// the underlying connection (like WebSocket or HTTP2 clients). Pure HTTP clients should use\n// the higher level TransportFor or RESTClientFor methods.\nfunc HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTripper, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.HTTPWrappersForConfig(cfg, rt)\n}\n\n// TransportConfig converts a client config to an appropriate transport config.\nfunc (c *Config) TransportConfig() (*transport.Config, error) {\n\tconf := &transport.Config{\n\t\tUserAgent:          c.UserAgent,\n\t\tTransport:          c.Transport,\n\t\tWrapTransport:      c.WrapTransport,\n\t\tDisableCompression: c.DisableCompression,\n\t\tTLS: transport.TLSConfig{\n\t\t\tInsecure:   c.Insecure,\n\t\t\tServerName: c.ServerName,\n\t\t\tCAFile:     c.CAFile,\n\t\t\tCAData:     c.CAData,\n\t\t\tCertFile:   c.CertFile,\n\t\t\tCertData:   c.CertData,\n\t\t\tKeyFile:    c.KeyFile,\n\t\t\tKeyData:    c.KeyData,\n\t\t\tNextProtos: c.NextProtos,\n\t\t},\n\t\tUsername:        c.Username,\n\t\tPassword:        c.Password,\n\t\tBearerToken:     c.BearerToken,\n\t\tBearerTokenFile: c.BearerTokenFile,\n\t\tImpersonate: transport.ImpersonationConfig{\n\t\t\tUserName: c.Impersonate.UserName,\n\t\t\tUID:      c.Impersonate.UID,\n\t\t\tGroups:   c.Impersonate.Groups,\n\t\t\tExtra:    c.Impersonate.Extra,\n\t\t},\n\t\tProxy: c.Proxy,\n\t}\n\n\tif c.Dial != nil {\n\t\tconf.DialHolder = &transport.DialHolder{Dial: c.Dial}\n\t}\n\n\tif c.ExecProvider != nil && c.AuthProvider != nil {\n\t\treturn nil, errors.New(\"execProvider and authProvider cannot be used in combination\")\n\t}\n\n\tif c.ExecProvider != nil {\n\t\tvar cluster *clientauthentication.Cluster\n\t\tif c.ExecProvider.ProvideClusterInfo {\n\t\t\tvar err error\n\t\t\tcluster, err = ConfigToExecCluster(c)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tprovider, err := exec.GetAuthenticator(c.ExecProvider, cluster)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := provider.UpdateTransportConfig(conf); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif c.AuthProvider != nil {\n\t\tprovider, err := GetAuthProvider(c.Host, c.AuthProvider, c.AuthConfigPersister)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconf.Wrap(provider.WrapTransport)\n\t}\n\treturn conf, nil\n}\n\n// Wrap adds a transport middleware function that will give the caller\n// an opportunity to wrap the underlying http.RoundTripper prior to the\n// first API call being made. The provided function is invoked after any\n// existing transport wrappers are invoked.\nfunc (c *Config) Wrap(fn transport.WrapperFunc) {\n\tc.WrapTransport = transport.Wrappers(c.WrapTransport, fn)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/url_utils.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"path\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// DefaultServerURL converts a host, host:port, or URL string to the default base server API path\n// to use with a Client at a given API version following the standard conventions for a\n// Kubernetes API.\nfunc DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, defaultTLS bool) (*url.URL, string, error) {\n\tif host == \"\" {\n\t\treturn nil, \"\", fmt.Errorf(\"host must be a URL or a host:port pair\")\n\t}\n\tbase := host\n\thostURL, err := url.Parse(base)\n\tif err != nil || hostURL.Scheme == \"\" || hostURL.Host == \"\" {\n\t\tscheme := \"http://\"\n\t\tif defaultTLS {\n\t\t\tscheme = \"https://\"\n\t\t}\n\t\thostURL, err = url.Parse(scheme + base)\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\tif hostURL.Path != \"\" && hostURL.Path != \"/\" {\n\t\t\treturn nil, \"\", fmt.Errorf(\"host must be a URL or a host:port pair: %q\", base)\n\t\t}\n\t}\n\n\t// hostURL.Path is optional; a non-empty Path is treated as a prefix that is to be applied to\n\t// all URIs used to access the host. this is useful when there's a proxy in front of the\n\t// apiserver that has relocated the apiserver endpoints, forwarding all requests from, for\n\t// example, /a/b/c to the apiserver. in this case the Path should be /a/b/c.\n\t//\n\t// if running without a frontend proxy (that changes the location of the apiserver), then\n\t// hostURL.Path should be blank.\n\t//\n\t// versionedAPIPath, a path relative to baseURL.Path, points to a versioned API base\n\tversionedAPIPath := DefaultVersionedAPIPath(apiPath, groupVersion)\n\n\treturn hostURL, versionedAPIPath, nil\n}\n\n// DefaultVersionedAPIPathFor constructs the default path for the given group version, assuming the given\n// API path, following the standard conventions of the Kubernetes API.\nfunc DefaultVersionedAPIPath(apiPath string, groupVersion schema.GroupVersion) string {\n\tversionedAPIPath := path.Join(\"/\", apiPath)\n\n\t// Add the version to the end of the path\n\tif len(groupVersion.Group) > 0 {\n\t\tversionedAPIPath = path.Join(versionedAPIPath, groupVersion.Group, groupVersion.Version)\n\n\t} else {\n\t\tversionedAPIPath = path.Join(versionedAPIPath, groupVersion.Version)\n\t}\n\n\treturn versionedAPIPath\n}\n\n// defaultServerUrlFor is shared between IsConfigTransportTLS and RESTClientFor. It\n// requires Host and Version to be set prior to being called.\nfunc defaultServerUrlFor(config *Config) (*url.URL, string, error) {\n\t// TODO: move the default to secure when the apiserver supports TLS by default\n\t// config.Insecure is taken to mean \"I want HTTPS but don't bother checking the certs against a CA.\"\n\thasCA := len(config.CAFile) != 0 || len(config.CAData) != 0\n\thasCert := len(config.CertFile) != 0 || len(config.CertData) != 0\n\tdefaultTLS := hasCA || hasCert || config.Insecure\n\thost := config.Host\n\tif host == \"\" {\n\t\thost = \"localhost\"\n\t}\n\n\tif config.GroupVersion != nil {\n\t\treturn DefaultServerURL(host, config.APIPath, *config.GroupVersion, defaultTLS)\n\t}\n\treturn DefaultServerURL(host, config.APIPath, schema.GroupVersion{}, defaultTLS)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/urlbackoff.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"net/url\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n)\n\n// Set of resp. Codes that we backoff for.\n// In general these should be errors that indicate a server is overloaded.\n// These shouldn't be configured by any user, we set them based on conventions\n// described in\nvar serverIsOverloadedSet = sets.NewInt(429)\nvar maxResponseCode = 499\n\ntype BackoffManager interface {\n\tUpdateBackoff(actualUrl *url.URL, err error, responseCode int)\n\tCalculateBackoff(actualUrl *url.URL) time.Duration\n\tSleep(d time.Duration)\n}\n\n// URLBackoff struct implements the semantics on top of Backoff which\n// we need for URL specific exponential backoff.\ntype URLBackoff struct {\n\t// Uses backoff as underlying implementation.\n\tBackoff *flowcontrol.Backoff\n}\n\n// NoBackoff is a stub implementation, can be used for mocking or else as a default.\ntype NoBackoff struct {\n}\n\nfunc (n *NoBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode int) {\n\t// do nothing.\n}\n\nfunc (n *NoBackoff) CalculateBackoff(actualUrl *url.URL) time.Duration {\n\treturn 0 * time.Second\n}\n\nfunc (n *NoBackoff) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Disable makes the backoff trivial, i.e., sets it to zero.  This might be used\n// by tests which want to run 1000s of mock requests without slowing down.\nfunc (b *URLBackoff) Disable() {\n\tklog.V(4).Infof(\"Disabling backoff strategy\")\n\tb.Backoff = flowcontrol.NewBackOff(0*time.Second, 0*time.Second)\n}\n\n// baseUrlKey returns the key which urls will be mapped to.\n// For example, 127.0.0.1:8080/api/v2/abcde -> 127.0.0.1:8080.\nfunc (b *URLBackoff) baseUrlKey(rawurl *url.URL) string {\n\t// Simple implementation for now, just the host.\n\t// We may backoff specific paths (i.e. \"pods\") differentially\n\t// in the future.\n\thost, err := url.Parse(rawurl.String())\n\tif err != nil {\n\t\tklog.V(4).Infof(\"Error extracting url: %v\", rawurl)\n\t\tpanic(\"bad url!\")\n\t}\n\treturn host.Host\n}\n\n// UpdateBackoff updates backoff metadata\nfunc (b *URLBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode int) {\n\t// range for retry counts that we store is [0,13]\n\tif responseCode > maxResponseCode || serverIsOverloadedSet.Has(responseCode) {\n\t\tb.Backoff.Next(b.baseUrlKey(actualUrl), b.Backoff.Clock.Now())\n\t\treturn\n\t} else if responseCode >= 300 || err != nil {\n\t\tklog.V(4).Infof(\"Client is returning errors: code %v, error %v\", responseCode, err)\n\t}\n\n\t//If we got this far, there is no backoff required for this URL anymore.\n\tb.Backoff.Reset(b.baseUrlKey(actualUrl))\n}\n\n// CalculateBackoff takes a url and back's off exponentially,\n// based on its knowledge of existing failures.\nfunc (b *URLBackoff) CalculateBackoff(actualUrl *url.URL) time.Duration {\n\treturn b.Backoff.Get(b.baseUrlKey(actualUrl))\n}\n\nfunc (b *URLBackoff) Sleep(d time.Duration) {\n\tb.Backoff.Clock.Sleep(d)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/warnings.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/util/net\"\n)\n\n// WarningHandler is an interface for handling warning headers\ntype WarningHandler interface {\n\t// HandleWarningHeader is called with the warn code, agent, and text when a warning header is countered.\n\tHandleWarningHeader(code int, agent string, text string)\n}\n\nvar (\n\tdefaultWarningHandler     WarningHandler = WarningLogger{}\n\tdefaultWarningHandlerLock sync.RWMutex\n)\n\n// SetDefaultWarningHandler sets the default handler clients use when warning headers are encountered.\n// By default, warnings are logged. Several built-in implementations are provided:\n//   - NoWarnings suppresses warnings.\n//   - WarningLogger logs warnings.\n//   - NewWarningWriter() outputs warnings to the provided writer.\nfunc SetDefaultWarningHandler(l WarningHandler) {\n\tdefaultWarningHandlerLock.Lock()\n\tdefer defaultWarningHandlerLock.Unlock()\n\tdefaultWarningHandler = l\n}\nfunc getDefaultWarningHandler() WarningHandler {\n\tdefaultWarningHandlerLock.RLock()\n\tdefer defaultWarningHandlerLock.RUnlock()\n\tl := defaultWarningHandler\n\treturn l\n}\n\n// NoWarnings is an implementation of WarningHandler that suppresses warnings.\ntype NoWarnings struct{}\n\nfunc (NoWarnings) HandleWarningHeader(code int, agent string, message string) {}\n\n// WarningLogger is an implementation of WarningHandler that logs code 299 warnings\ntype WarningLogger struct{}\n\nfunc (WarningLogger) HandleWarningHeader(code int, agent string, message string) {\n\tif code != 299 || len(message) == 0 {\n\t\treturn\n\t}\n\tklog.Warning(message)\n}\n\ntype warningWriter struct {\n\t// out is the writer to output warnings to\n\tout io.Writer\n\t// opts contains options controlling warning output\n\topts WarningWriterOptions\n\t// writtenLock guards written and writtenCount\n\twrittenLock  sync.Mutex\n\twrittenCount int\n\twritten      map[string]struct{}\n}\n\n// WarningWriterOptions controls the behavior of a WarningHandler constructed using NewWarningWriter()\ntype WarningWriterOptions struct {\n\t// Deduplicate indicates a given warning message should only be written once.\n\t// Setting this to true in a long-running process handling many warnings can result in increased memory use.\n\tDeduplicate bool\n\t// Color indicates that warning output can include ANSI color codes\n\tColor bool\n}\n\n// NewWarningWriter returns an implementation of WarningHandler that outputs code 299 warnings to the specified writer.\nfunc NewWarningWriter(out io.Writer, opts WarningWriterOptions) *warningWriter {\n\th := &warningWriter{out: out, opts: opts}\n\tif opts.Deduplicate {\n\t\th.written = map[string]struct{}{}\n\t}\n\treturn h\n}\n\nconst (\n\tyellowColor = \"\\u001b[33;1m\"\n\tresetColor  = \"\\u001b[0m\"\n)\n\n// HandleWarningHeader prints warnings with code=299 to the configured writer.\nfunc (w *warningWriter) HandleWarningHeader(code int, agent string, message string) {\n\tif code != 299 || len(message) == 0 {\n\t\treturn\n\t}\n\n\tw.writtenLock.Lock()\n\tdefer w.writtenLock.Unlock()\n\n\tif w.opts.Deduplicate {\n\t\tif _, alreadyWritten := w.written[message]; alreadyWritten {\n\t\t\treturn\n\t\t}\n\t\tw.written[message] = struct{}{}\n\t}\n\tw.writtenCount++\n\n\tif w.opts.Color {\n\t\tfmt.Fprintf(w.out, \"%sWarning:%s %s\\n\", yellowColor, resetColor, message)\n\t} else {\n\t\tfmt.Fprintf(w.out, \"Warning: %s\\n\", message)\n\t}\n}\n\nfunc (w *warningWriter) WarningCount() int {\n\tw.writtenLock.Lock()\n\tdefer w.writtenLock.Unlock()\n\treturn w.writtenCount\n}\n\nfunc handleWarnings(headers http.Header, handler WarningHandler) []net.WarningHeader {\n\tif handler == nil {\n\t\thandler = getDefaultWarningHandler()\n\t}\n\n\twarnings, _ := net.ParseWarningHeaders(headers[\"Warning\"])\n\tfor _, warning := range warnings {\n\t\thandler.HandleWarningHeader(warning.Code, warning.Agent, warning.Text)\n\t}\n\treturn warnings\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/watch/decoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage versioned\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Decoder implements the watch.Decoder interface for io.ReadClosers that\n// have contents which consist of a series of watchEvent objects encoded\n// with the given streaming decoder. The internal objects will be then\n// decoded by the embedded decoder.\ntype Decoder struct {\n\tdecoder         streaming.Decoder\n\tembeddedDecoder runtime.Decoder\n}\n\n// NewDecoder creates an Decoder for the given writer and codec.\nfunc NewDecoder(decoder streaming.Decoder, embeddedDecoder runtime.Decoder) *Decoder {\n\treturn &Decoder{\n\t\tdecoder:         decoder,\n\t\tembeddedDecoder: embeddedDecoder,\n\t}\n}\n\n// Decode blocks until it can return the next object in the reader. Returns an error\n// if the reader is closed or an object can't be decoded.\nfunc (d *Decoder) Decode() (watch.EventType, runtime.Object, error) {\n\tvar got metav1.WatchEvent\n\tres, _, err := d.decoder.Decode(nil, &got)\n\tif err != nil {\n\t\treturn \"\", nil, err\n\t}\n\tif res != &got {\n\t\treturn \"\", nil, fmt.Errorf(\"unable to decode to metav1.Event\")\n\t}\n\tswitch got.Type {\n\tcase string(watch.Added), string(watch.Modified), string(watch.Deleted), string(watch.Error), string(watch.Bookmark):\n\tdefault:\n\t\treturn \"\", nil, fmt.Errorf(\"got invalid watch event type: %v\", got.Type)\n\t}\n\n\tobj, err := runtime.Decode(d.embeddedDecoder, got.Object.Raw)\n\tif err != nil {\n\t\treturn \"\", nil, fmt.Errorf(\"unable to decode watch event: %v\", err)\n\t}\n\treturn watch.EventType(got.Type), obj, nil\n}\n\n// Close closes the underlying r.\nfunc (d *Decoder) Close() {\n\td.decoder.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/watch/encoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage versioned\n\nimport (\n\t\"encoding/json\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Encoder serializes watch.Events into io.Writer. The internal objects\n// are encoded using embedded encoder, and the outer Event is serialized\n// using encoder.\n// TODO: this type is only used by tests\ntype Encoder struct {\n\tencoder         streaming.Encoder\n\tembeddedEncoder runtime.Encoder\n}\n\nfunc NewEncoder(encoder streaming.Encoder, embeddedEncoder runtime.Encoder) *Encoder {\n\treturn &Encoder{\n\t\tencoder:         encoder,\n\t\tembeddedEncoder: embeddedEncoder,\n\t}\n}\n\n// Encode writes an event to the writer. Returns an error\n// if the writer is closed or an object can't be encoded.\nfunc (e *Encoder) Encode(event *watch.Event) error {\n\tdata, err := runtime.Encode(e.embeddedEncoder, event.Object)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// FIXME: get rid of json.RawMessage.\n\treturn e.encoder.Encode(&metav1.WatchEvent{\n\t\tType:   string(event.Type),\n\t\tObject: runtime.RawExtension{Raw: json.RawMessage(data)},\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/with_retry.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// IsRetryableErrorFunc allows the client to provide its own function\n// that determines whether the specified err from the server is retryable.\n//\n// request: the original request sent to the server\n// err: the server sent this error to us\n//\n// The function returns true if the error is retryable and the request\n// can be retried, otherwise it returns false.\n// We have four mode of communications - 'Stream', 'Watch', 'Do' and 'DoRaw', this\n// function allows us to customize the retryability aspect of each.\ntype IsRetryableErrorFunc func(request *http.Request, err error) bool\n\nfunc (r IsRetryableErrorFunc) IsErrorRetryable(request *http.Request, err error) bool {\n\treturn r(request, err)\n}\n\nvar neverRetryError = IsRetryableErrorFunc(func(_ *http.Request, _ error) bool {\n\treturn false\n})\n\n// WithRetry allows the client to retry a request up to a certain number of times\n// Note that WithRetry is not safe for concurrent use by multiple\n// goroutines without additional locking or coordination.\ntype WithRetry interface {\n\t// IsNextRetry advances the retry counter appropriately\n\t// and returns true if the request should be retried,\n\t// otherwise it returns false, if:\n\t//  - we have already reached the maximum retry threshold.\n\t//  - the error does not fall into the retryable category.\n\t//  - the server has not sent us a 429, or 5xx status code and the\n\t//    'Retry-After' response header is not set with a value.\n\t//  - we need to seek to the beginning of the request body before we\n\t//    initiate the next retry, the function should log an error and\n\t//    return false if it fails to do so.\n\t//\n\t// restReq: the associated rest.Request\n\t// httpReq: the HTTP Request sent to the server\n\t// resp: the response sent from the server, it is set if err is nil\n\t// err: the server sent this error to us, if err is set then resp is nil.\n\t// f: a IsRetryableErrorFunc function provided by the client that determines\n\t//    if the err sent by the server is retryable.\n\tIsNextRetry(ctx context.Context, restReq *Request, httpReq *http.Request, resp *http.Response, err error, f IsRetryableErrorFunc) bool\n\n\t// Before should be invoked prior to each attempt, including\n\t// the first one. If an error is returned, the request should\n\t// be aborted immediately.\n\t//\n\t// Before may also be additionally responsible for preparing\n\t// the request for the next retry, namely in terms of resetting\n\t// the request body in case it has been read.\n\tBefore(ctx context.Context, r *Request) error\n\n\t// After should be invoked immediately after an attempt is made.\n\tAfter(ctx context.Context, r *Request, resp *http.Response, err error)\n\n\t// WrapPreviousError wraps the error from any previous attempt into\n\t// the final error specified in 'finalErr', so the user has more\n\t// context why the request failed.\n\t// For example, if a request times out after multiple retries then\n\t// we see a generic context.Canceled or context.DeadlineExceeded\n\t// error which is not very useful in debugging. This function can\n\t// wrap any error from previous attempt(s) to provide more context to\n\t// the user. The error returned in 'err' must satisfy the\n\t// following conditions:\n\t//  a: errors.Unwrap(err) = errors.Unwrap(finalErr) if finalErr\n\t//     implements Unwrap\n\t//  b: errors.Unwrap(err) = finalErr if finalErr does not\n\t//     implements Unwrap\n\t//  c: errors.Is(err, otherErr) = errors.Is(finalErr, otherErr)\n\tWrapPreviousError(finalErr error) (err error)\n}\n\n// RetryAfter holds information associated with the next retry.\ntype RetryAfter struct {\n\t// Wait is the duration the server has asked us to wait before\n\t// the next retry is initiated.\n\t// This is the value of the 'Retry-After' response header in seconds.\n\tWait time.Duration\n\n\t// Attempt is the Nth attempt after which we have received a retryable\n\t// error or a 'Retry-After' response header from the server.\n\tAttempt int\n\n\t// Reason describes why we are retrying the request\n\tReason string\n}\n\ntype withRetry struct {\n\tmaxRetries int\n\tattempts   int\n\n\t// retry after parameters that pertain to the attempt that is to\n\t// be made soon, so as to enable 'Before' and 'After' to refer\n\t// to the retry parameters.\n\t//  - for the first attempt, it will always be nil\n\t//  - for consecutive attempts, it is non nil and holds the\n\t//    retry after parameters for the next attempt to be made.\n\tretryAfter *RetryAfter\n\n\t// we keep track of two most recent errors, if the most\n\t// recent attempt is labeled as 'N' then:\n\t//  - currentErr represents the error returned by attempt N, it\n\t//    can be nil if attempt N did not return an error.\n\t//  - previousErr represents an error from an attempt 'M' which\n\t//    precedes attempt 'N' (N - M >= 1), it is non nil only when:\n\t//      - for a sequence of attempt(s) 1..n (n>1), there\n\t//        is an attempt k (k<n) that returned an error.\n\tpreviousErr, currentErr error\n}\n\nfunc (r *withRetry) trackPreviousError(err error) {\n\t// keep track of two most recent errors\n\tif r.currentErr != nil {\n\t\tr.previousErr = r.currentErr\n\t}\n\tr.currentErr = err\n}\n\nfunc (r *withRetry) IsNextRetry(ctx context.Context, restReq *Request, httpReq *http.Request, resp *http.Response, err error, f IsRetryableErrorFunc) bool {\n\tdefer r.trackPreviousError(err)\n\n\tif httpReq == nil || (resp == nil && err == nil) {\n\t\t// bad input, we do nothing.\n\t\treturn false\n\t}\n\n\tif restReq.body != nil {\n\t\t// we have an opaque reader, we can't safely reset it\n\t\treturn false\n\t}\n\n\tr.attempts++\n\tr.retryAfter = &RetryAfter{Attempt: r.attempts}\n\tif r.attempts > r.maxRetries {\n\t\treturn false\n\t}\n\n\t// if the server returned an error, it takes precedence over the http response.\n\tvar errIsRetryable bool\n\tif f != nil && err != nil && f.IsErrorRetryable(httpReq, err) {\n\t\terrIsRetryable = true\n\t\t// we have a retryable error, for which we will create an\n\t\t// artificial \"Retry-After\" response.\n\t\tresp = retryAfterResponse()\n\t}\n\tif err != nil && !errIsRetryable {\n\t\treturn false\n\t}\n\n\t// if we are here, we have either a or b:\n\t//  a: we have a retryable error, for which we already\n\t//     have an artificial \"Retry-After\" response.\n\t//  b: we have a response from the server for which we\n\t//     need to check if it is retryable\n\tseconds, wait := checkWait(resp)\n\tif !wait {\n\t\treturn false\n\t}\n\n\tr.retryAfter.Wait = time.Duration(seconds) * time.Second\n\tr.retryAfter.Reason = getRetryReason(r.attempts, seconds, resp, err)\n\n\treturn true\n}\n\nfunc (r *withRetry) Before(ctx context.Context, request *Request) error {\n\t// If the request context is already canceled there\n\t// is no need to retry.\n\tif ctx.Err() != nil {\n\t\tr.trackPreviousError(ctx.Err())\n\t\treturn ctx.Err()\n\t}\n\n\turl := request.URL()\n\t// r.retryAfter represents the retry after parameters calculated\n\t// from the (response, err) tuple from the last attempt, so 'Before'\n\t// can apply these retry after parameters prior to the next attempt.\n\t// 'r.retryAfter == nil' indicates that this is the very first attempt.\n\tif r.retryAfter == nil {\n\t\t// we do a backoff sleep before the first attempt is made,\n\t\t// (preserving current behavior).\n\t\tif request.backoff != nil {\n\t\t\trequest.backoff.Sleep(request.backoff.CalculateBackoff(url))\n\t\t}\n\t\treturn nil\n\t}\n\n\t// if we are here, we have made attempt(s) at least once before.\n\tif request.backoff != nil {\n\t\tdelay := request.backoff.CalculateBackoff(url)\n\t\tif r.retryAfter.Wait > delay {\n\t\t\tdelay = r.retryAfter.Wait\n\t\t}\n\t\trequest.backoff.Sleep(delay)\n\t}\n\n\t// We are retrying the request that we already send to\n\t// apiserver at least once before. This request should\n\t// also be throttled with the client-internal rate limiter.\n\tif err := request.tryThrottleWithInfo(ctx, r.retryAfter.Reason); err != nil {\n\t\tr.trackPreviousError(ctx.Err())\n\t\treturn err\n\t}\n\n\tklog.V(4).Infof(\"Got a Retry-After %s response for attempt %d to %v\", r.retryAfter.Wait, r.retryAfter.Attempt, request.URL().String())\n\treturn nil\n}\n\nfunc (r *withRetry) After(ctx context.Context, request *Request, resp *http.Response, err error) {\n\t// 'After' is invoked immediately after an attempt is made, let's label\n\t// the attempt we have just made as attempt 'N'.\n\t// the current value of r.retryAfter represents the retry after\n\t// parameters calculated from the (response, err) tuple from\n\t// attempt N-1, so r.retryAfter is outdated and should not be\n\t// referred to here.\n\tisRetry := r.retryAfter != nil\n\tr.retryAfter = nil\n\n\t// the client finishes a single request after N attempts (1..N)\n\t//  - all attempts (1..N) are counted to the rest_client_requests_total\n\t//    metric (current behavior).\n\t//  - every attempt after the first (2..N) are counted to the\n\t//    rest_client_request_retries_total metric.\n\tupdateRequestResultMetric(ctx, request, resp, err)\n\tif isRetry {\n\t\t// this is attempt 2 or later\n\t\tupdateRequestRetryMetric(ctx, request, resp, err)\n\t}\n\n\tif request.c.base != nil {\n\t\tif err != nil {\n\t\t\trequest.backoff.UpdateBackoff(request.URL(), err, 0)\n\t\t} else {\n\t\t\trequest.backoff.UpdateBackoff(request.URL(), err, resp.StatusCode)\n\t\t}\n\t}\n}\n\nfunc (r *withRetry) WrapPreviousError(currentErr error) error {\n\tif currentErr == nil || r.previousErr == nil {\n\t\treturn currentErr\n\t}\n\n\t// if both previous and current error objects represent the error,\n\t// then there is no need to wrap the previous error.\n\tif currentErr.Error() == r.previousErr.Error() {\n\t\treturn currentErr\n\t}\n\n\tpreviousErr := r.previousErr\n\t// net/http wraps the underlying error with an url.Error, if the\n\t// previous err object is an instance of url.Error, then we can\n\t// unwrap it to get to the inner error object, this is so we can\n\t// avoid error message like:\n\t//  Error: Get \"http://foo.bar/api/v1\": context deadline exceeded - error \\\n\t//  from a previous attempt: Error: Get \"http://foo.bar/api/v1\": EOF\n\tif urlErr, ok := r.previousErr.(*url.Error); ok && urlErr != nil {\n\t\tif urlErr.Unwrap() != nil {\n\t\t\tpreviousErr = urlErr.Unwrap()\n\t\t}\n\t}\n\n\treturn &wrapPreviousError{\n\t\tcurrentErr:    currentErr,\n\t\tpreviousError: previousErr,\n\t}\n}\n\ntype wrapPreviousError struct {\n\tcurrentErr, previousError error\n}\n\nfunc (w *wrapPreviousError) Unwrap() error { return w.currentErr }\nfunc (w *wrapPreviousError) Error() string {\n\treturn fmt.Sprintf(\"%s - error from a previous attempt: %s\", w.currentErr.Error(), w.previousError.Error())\n}\n\n// checkWait returns true along with a number of seconds if\n// the server instructed us to wait before retrying.\nfunc checkWait(resp *http.Response) (int, bool) {\n\tswitch r := resp.StatusCode; {\n\t// any 500 error code and 429 can trigger a wait\n\tcase r == http.StatusTooManyRequests, r >= 500:\n\tdefault:\n\t\treturn 0, false\n\t}\n\ti, ok := retryAfterSeconds(resp)\n\treturn i, ok\n}\n\nfunc getRetryReason(retries, seconds int, resp *http.Response, err error) string {\n\t// priority and fairness sets the UID of the FlowSchema\n\t// associated with a request in the following response Header.\n\tconst responseHeaderMatchedFlowSchemaUID = \"X-Kubernetes-PF-FlowSchema-UID\"\n\n\tmessage := fmt.Sprintf(\"retries: %d, retry-after: %ds\", retries, seconds)\n\n\tswitch {\n\tcase resp.StatusCode == http.StatusTooManyRequests:\n\t\t// it is server-side throttling from priority and fairness\n\t\tflowSchemaUID := resp.Header.Get(responseHeaderMatchedFlowSchemaUID)\n\t\treturn fmt.Sprintf(\"%s - retry-reason: due to server-side throttling, FlowSchema UID: %q\", message, flowSchemaUID)\n\tcase err != nil:\n\t\t// it's a retryable error\n\t\treturn fmt.Sprintf(\"%s - retry-reason: due to retryable error, error: %v\", message, err)\n\tdefault:\n\t\treturn fmt.Sprintf(\"%s - retry-reason: %d\", message, resp.StatusCode)\n\t}\n}\n\nfunc readAndCloseResponseBody(resp *http.Response) {\n\tif resp == nil {\n\t\treturn\n\t}\n\n\t// Ensure the response body is fully read and closed\n\t// before we reconnect, so that we reuse the same TCP\n\t// connection.\n\tconst maxBodySlurpSize = 2 << 10\n\tdefer resp.Body.Close()\n\n\tif resp.ContentLength <= maxBodySlurpSize {\n\t\tio.Copy(io.Discard, &io.LimitedReader{R: resp.Body, N: maxBodySlurpSize})\n\t}\n}\n\nfunc retryAfterResponse() *http.Response {\n\treturn retryAfterResponseWithDelay(\"1\")\n}\n\nfunc retryAfterResponseWithDelay(delay string) *http.Response {\n\treturn retryAfterResponseWithCodeAndDelay(http.StatusInternalServerError, delay)\n}\n\nfunc retryAfterResponseWithCodeAndDelay(code int, delay string) *http.Response {\n\treturn &http.Response{\n\t\tStatusCode: code,\n\t\tHeader:     http.Header{\"Retry-After\": []string{delay}},\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage rest\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) {\n\t*out = *in\n\tif in.CertData != nil {\n\t\tin, out := &in.CertData, &out.CertData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.KeyData != nil {\n\t\tin, out := &in.KeyData, &out.KeyData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.CAData != nil {\n\t\tin, out := &in.CAData, &out.CAData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NextProtos != nil {\n\t\tin, out := &in.NextProtos, &out.NextProtos\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSClientConfig.\nfunc (in *TLSClientConfig) DeepCopy() *TLSClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TLSClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/actions.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\nfunc NewRootGetAction(resource schema.GroupVersionResource, name string) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewGetAction(resource schema.GroupVersionResource, namespace, name string) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewGetSubresourceAction(resource schema.GroupVersionResource, namespace, subresource, name string) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewRootGetSubresourceAction(resource schema.GroupVersionResource, subresource, name string) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewRootListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts interface{}) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, namespace string, opts interface{}) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\taction.Namespace = namespace\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewRootCreateAction(resource schema.GroupVersionResource, object runtime.Object) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewCreateAction(resource schema.GroupVersionResource, namespace string, object runtime.Object) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewRootCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, object runtime.Object) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource, namespace string, object runtime.Object) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewRootUpdateAction(resource schema.GroupVersionResource, object runtime.Object) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewUpdateAction(resource schema.GroupVersionResource, namespace string, object runtime.Object) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewRootPatchAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\n\treturn action\n}\n\nfunc NewPatchAction(resource schema.GroupVersionResource, namespace string, name string, pt types.PatchType, patch []byte) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\n\treturn action\n}\n\nfunc NewRootPatchSubresourceAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Subresource = path.Join(subresources...)\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\n\treturn action\n}\n\nfunc NewPatchSubresourceAction(resource schema.GroupVersionResource, namespace, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Subresource = path.Join(subresources...)\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\n\treturn action\n}\n\nfunc NewRootUpdateSubresourceAction(resource schema.GroupVersionResource, subresource string, object runtime.Object) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Object = object\n\n\treturn action\n}\nfunc NewUpdateSubresourceAction(resource schema.GroupVersionResource, subresource string, namespace string, object runtime.Object) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Object = object\n\n\treturn action\n}\n\nfunc NewRootDeleteAction(resource schema.GroupVersionResource, name string) DeleteActionImpl {\n\treturn NewRootDeleteActionWithOptions(resource, name, metav1.DeleteOptions{})\n}\n\nfunc NewRootDeleteActionWithOptions(resource schema.GroupVersionResource, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewRootDeleteSubresourceAction(resource schema.GroupVersionResource, subresource string, name string) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewDeleteAction(resource schema.GroupVersionResource, namespace, name string) DeleteActionImpl {\n\treturn NewDeleteActionWithOptions(resource, namespace, name, metav1.DeleteOptions{})\n}\n\nfunc NewDeleteActionWithOptions(resource schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewDeleteSubresourceAction(resource schema.GroupVersionResource, subresource, namespace, name string) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Name = name\n\n\treturn action\n}\n\nfunc NewRootDeleteCollectionAction(resource schema.GroupVersionResource, opts interface{}) DeleteCollectionActionImpl {\n\taction := DeleteCollectionActionImpl{}\n\taction.Verb = \"delete-collection\"\n\taction.Resource = resource\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewDeleteCollectionAction(resource schema.GroupVersionResource, namespace string, opts interface{}) DeleteCollectionActionImpl {\n\taction := DeleteCollectionActionImpl{}\n\taction.Verb = \"delete-collection\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewRootWatchAction(resource schema.GroupVersionResource, opts interface{}) WatchActionImpl {\n\taction := WatchActionImpl{}\n\taction.Verb = \"watch\"\n\taction.Resource = resource\n\tlabelSelector, fieldSelector, resourceVersion := ExtractFromListOptions(opts)\n\taction.WatchRestrictions = WatchRestrictions{labelSelector, fieldSelector, resourceVersion}\n\n\treturn action\n}\n\nfunc ExtractFromListOptions(opts interface{}) (labelSelector labels.Selector, fieldSelector fields.Selector, resourceVersion string) {\n\tvar err error\n\tswitch t := opts.(type) {\n\tcase metav1.ListOptions:\n\t\tlabelSelector, err = labels.Parse(t.LabelSelector)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"invalid selector %q: %v\", t.LabelSelector, err))\n\t\t}\n\t\tfieldSelector, err = fields.ParseSelector(t.FieldSelector)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"invalid selector %q: %v\", t.FieldSelector, err))\n\t\t}\n\t\tresourceVersion = t.ResourceVersion\n\tdefault:\n\t\tpanic(fmt.Errorf(\"expect a ListOptions %T\", opts))\n\t}\n\tif labelSelector == nil {\n\t\tlabelSelector = labels.Everything()\n\t}\n\tif fieldSelector == nil {\n\t\tfieldSelector = fields.Everything()\n\t}\n\treturn labelSelector, fieldSelector, resourceVersion\n}\n\nfunc NewWatchAction(resource schema.GroupVersionResource, namespace string, opts interface{}) WatchActionImpl {\n\taction := WatchActionImpl{}\n\taction.Verb = \"watch\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\tlabelSelector, fieldSelector, resourceVersion := ExtractFromListOptions(opts)\n\taction.WatchRestrictions = WatchRestrictions{labelSelector, fieldSelector, resourceVersion}\n\n\treturn action\n}\n\nfunc NewProxyGetAction(resource schema.GroupVersionResource, namespace, scheme, name, port, path string, params map[string]string) ProxyGetActionImpl {\n\taction := ProxyGetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Scheme = scheme\n\taction.Name = name\n\taction.Port = port\n\taction.Path = path\n\taction.Params = params\n\treturn action\n}\n\ntype ListRestrictions struct {\n\tLabels labels.Selector\n\tFields fields.Selector\n}\ntype WatchRestrictions struct {\n\tLabels          labels.Selector\n\tFields          fields.Selector\n\tResourceVersion string\n}\n\ntype Action interface {\n\tGetNamespace() string\n\tGetVerb() string\n\tGetResource() schema.GroupVersionResource\n\tGetSubresource() string\n\tMatches(verb, resource string) bool\n\n\t// DeepCopy is used to copy an action to avoid any risk of accidental mutation.  Most people never need to call this\n\t// because the invocation logic deep copies before calls to storage and reactors.\n\tDeepCopy() Action\n}\n\ntype GenericAction interface {\n\tAction\n\tGetValue() interface{}\n}\n\ntype GetAction interface {\n\tAction\n\tGetName() string\n}\n\ntype ListAction interface {\n\tAction\n\tGetListRestrictions() ListRestrictions\n}\n\ntype CreateAction interface {\n\tAction\n\tGetObject() runtime.Object\n}\n\ntype UpdateAction interface {\n\tAction\n\tGetObject() runtime.Object\n}\n\ntype DeleteAction interface {\n\tAction\n\tGetName() string\n\tGetDeleteOptions() metav1.DeleteOptions\n}\n\ntype DeleteCollectionAction interface {\n\tAction\n\tGetListRestrictions() ListRestrictions\n}\n\ntype PatchAction interface {\n\tAction\n\tGetName() string\n\tGetPatchType() types.PatchType\n\tGetPatch() []byte\n}\n\ntype WatchAction interface {\n\tAction\n\tGetWatchRestrictions() WatchRestrictions\n}\n\ntype ProxyGetAction interface {\n\tAction\n\tGetScheme() string\n\tGetName() string\n\tGetPort() string\n\tGetPath() string\n\tGetParams() map[string]string\n}\n\ntype ActionImpl struct {\n\tNamespace   string\n\tVerb        string\n\tResource    schema.GroupVersionResource\n\tSubresource string\n}\n\nfunc (a ActionImpl) GetNamespace() string {\n\treturn a.Namespace\n}\nfunc (a ActionImpl) GetVerb() string {\n\treturn a.Verb\n}\nfunc (a ActionImpl) GetResource() schema.GroupVersionResource {\n\treturn a.Resource\n}\nfunc (a ActionImpl) GetSubresource() string {\n\treturn a.Subresource\n}\nfunc (a ActionImpl) Matches(verb, resource string) bool {\n\t// Stay backwards compatible.\n\tif !strings.Contains(resource, \"/\") {\n\t\treturn strings.EqualFold(verb, a.Verb) &&\n\t\t\tstrings.EqualFold(resource, a.Resource.Resource)\n\t}\n\n\tparts := strings.SplitN(resource, \"/\", 2)\n\ttopresource, subresource := parts[0], parts[1]\n\n\treturn strings.EqualFold(verb, a.Verb) &&\n\t\tstrings.EqualFold(topresource, a.Resource.Resource) &&\n\t\tstrings.EqualFold(subresource, a.Subresource)\n}\nfunc (a ActionImpl) DeepCopy() Action {\n\tret := a\n\treturn ret\n}\n\ntype GenericActionImpl struct {\n\tActionImpl\n\tValue interface{}\n}\n\nfunc (a GenericActionImpl) GetValue() interface{} {\n\treturn a.Value\n}\n\nfunc (a GenericActionImpl) DeepCopy() Action {\n\treturn GenericActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\t// TODO this is wrong, but no worse than before\n\t\tValue: a.Value,\n\t}\n}\n\ntype GetActionImpl struct {\n\tActionImpl\n\tName string\n}\n\nfunc (a GetActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a GetActionImpl) DeepCopy() Action {\n\treturn GetActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:       a.Name,\n\t}\n}\n\ntype ListActionImpl struct {\n\tActionImpl\n\tKind             schema.GroupVersionKind\n\tName             string\n\tListRestrictions ListRestrictions\n}\n\nfunc (a ListActionImpl) GetKind() schema.GroupVersionKind {\n\treturn a.Kind\n}\n\nfunc (a ListActionImpl) GetListRestrictions() ListRestrictions {\n\treturn a.ListRestrictions\n}\n\nfunc (a ListActionImpl) DeepCopy() Action {\n\treturn ListActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tKind:       a.Kind,\n\t\tName:       a.Name,\n\t\tListRestrictions: ListRestrictions{\n\t\t\tLabels: a.ListRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields: a.ListRestrictions.Fields.DeepCopySelector(),\n\t\t},\n\t}\n}\n\ntype CreateActionImpl struct {\n\tActionImpl\n\tName   string\n\tObject runtime.Object\n}\n\nfunc (a CreateActionImpl) GetObject() runtime.Object {\n\treturn a.Object\n}\n\nfunc (a CreateActionImpl) DeepCopy() Action {\n\treturn CreateActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:       a.Name,\n\t\tObject:     a.Object.DeepCopyObject(),\n\t}\n}\n\ntype UpdateActionImpl struct {\n\tActionImpl\n\tObject runtime.Object\n}\n\nfunc (a UpdateActionImpl) GetObject() runtime.Object {\n\treturn a.Object\n}\n\nfunc (a UpdateActionImpl) DeepCopy() Action {\n\treturn UpdateActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tObject:     a.Object.DeepCopyObject(),\n\t}\n}\n\ntype PatchActionImpl struct {\n\tActionImpl\n\tName      string\n\tPatchType types.PatchType\n\tPatch     []byte\n}\n\nfunc (a PatchActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a PatchActionImpl) GetPatch() []byte {\n\treturn a.Patch\n}\n\nfunc (a PatchActionImpl) GetPatchType() types.PatchType {\n\treturn a.PatchType\n}\n\nfunc (a PatchActionImpl) DeepCopy() Action {\n\tpatch := make([]byte, len(a.Patch))\n\tcopy(patch, a.Patch)\n\treturn PatchActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:       a.Name,\n\t\tPatchType:  a.PatchType,\n\t\tPatch:      patch,\n\t}\n}\n\ntype DeleteActionImpl struct {\n\tActionImpl\n\tName          string\n\tDeleteOptions metav1.DeleteOptions\n}\n\nfunc (a DeleteActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a DeleteActionImpl) GetDeleteOptions() metav1.DeleteOptions {\n\treturn a.DeleteOptions\n}\n\nfunc (a DeleteActionImpl) DeepCopy() Action {\n\treturn DeleteActionImpl{\n\t\tActionImpl:    a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:          a.Name,\n\t\tDeleteOptions: *a.DeleteOptions.DeepCopy(),\n\t}\n}\n\ntype DeleteCollectionActionImpl struct {\n\tActionImpl\n\tListRestrictions ListRestrictions\n}\n\nfunc (a DeleteCollectionActionImpl) GetListRestrictions() ListRestrictions {\n\treturn a.ListRestrictions\n}\n\nfunc (a DeleteCollectionActionImpl) DeepCopy() Action {\n\treturn DeleteCollectionActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tListRestrictions: ListRestrictions{\n\t\t\tLabels: a.ListRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields: a.ListRestrictions.Fields.DeepCopySelector(),\n\t\t},\n\t}\n}\n\ntype WatchActionImpl struct {\n\tActionImpl\n\tWatchRestrictions WatchRestrictions\n}\n\nfunc (a WatchActionImpl) GetWatchRestrictions() WatchRestrictions {\n\treturn a.WatchRestrictions\n}\n\nfunc (a WatchActionImpl) DeepCopy() Action {\n\treturn WatchActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tWatchRestrictions: WatchRestrictions{\n\t\t\tLabels:          a.WatchRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields:          a.WatchRestrictions.Fields.DeepCopySelector(),\n\t\t\tResourceVersion: a.WatchRestrictions.ResourceVersion,\n\t\t},\n\t}\n}\n\ntype ProxyGetActionImpl struct {\n\tActionImpl\n\tScheme string\n\tName   string\n\tPort   string\n\tPath   string\n\tParams map[string]string\n}\n\nfunc (a ProxyGetActionImpl) GetScheme() string {\n\treturn a.Scheme\n}\n\nfunc (a ProxyGetActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a ProxyGetActionImpl) GetPort() string {\n\treturn a.Port\n}\n\nfunc (a ProxyGetActionImpl) GetPath() string {\n\treturn a.Path\n}\n\nfunc (a ProxyGetActionImpl) GetParams() map[string]string {\n\treturn a.Params\n}\n\nfunc (a ProxyGetActionImpl) DeepCopy() Action {\n\tparams := map[string]string{}\n\tfor k, v := range a.Params {\n\t\tparams[k] = v\n\t}\n\treturn ProxyGetActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tScheme:     a.Scheme,\n\t\tName:       a.Name,\n\t\tPort:       a.Port,\n\t\tPath:       a.Path,\n\t\tParams:     params,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/fake.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// Fake implements client.Interface. Meant to be embedded into a struct to get\n// a default implementation. This makes faking out just the method you want to\n// test easier.\ntype Fake struct {\n\tsync.RWMutex\n\tactions []Action // these may be castable to other types, but \"Action\" is the minimum\n\n\t// ReactionChain is the list of reactors that will be attempted for every\n\t// request in the order they are tried.\n\tReactionChain []Reactor\n\t// WatchReactionChain is the list of watch reactors that will be attempted\n\t// for every request in the order they are tried.\n\tWatchReactionChain []WatchReactor\n\t// ProxyReactionChain is the list of proxy reactors that will be attempted\n\t// for every request in the order they are tried.\n\tProxyReactionChain []ProxyReactor\n\n\tResources []*metav1.APIResourceList\n}\n\n// Reactor is an interface to allow the composition of reaction functions.\ntype Reactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles the action and returns results.  It may choose to\n\t// delegate by indicated handled=false.\n\tReact(action Action) (handled bool, ret runtime.Object, err error)\n}\n\n// WatchReactor is an interface to allow the composition of watch functions.\ntype WatchReactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles a watch action and returns results.  It may choose to\n\t// delegate by indicating handled=false.\n\tReact(action Action) (handled bool, ret watch.Interface, err error)\n}\n\n// ProxyReactor is an interface to allow the composition of proxy get\n// functions.\ntype ProxyReactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles a watch action and returns results.  It may choose to\n\t// delegate by indicating handled=false.\n\tReact(action Action) (handled bool, ret restclient.ResponseWrapper, err error)\n}\n\n// ReactionFunc is a function that returns an object or error for a given\n// Action.  If \"handled\" is false, then the test client will ignore the\n// results and continue to the next ReactionFunc.  A ReactionFunc can describe\n// reactions on subresources by testing the result of the action's\n// GetSubresource() method.\ntype ReactionFunc func(action Action) (handled bool, ret runtime.Object, err error)\n\n// WatchReactionFunc is a function that returns a watch interface.  If\n// \"handled\" is false, then the test client will ignore the results and\n// continue to the next ReactionFunc.\ntype WatchReactionFunc func(action Action) (handled bool, ret watch.Interface, err error)\n\n// ProxyReactionFunc is a function that returns a ResponseWrapper interface\n// for a given Action.  If \"handled\" is false, then the test client will\n// ignore the results and continue to the next ProxyReactionFunc.\ntype ProxyReactionFunc func(action Action) (handled bool, ret restclient.ResponseWrapper, err error)\n\n// AddReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddReactor(verb, resource string, reaction ReactionFunc) {\n\tc.ReactionChain = append(c.ReactionChain, &SimpleReactor{verb, resource, reaction})\n}\n\n// PrependReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependReactor(verb, resource string, reaction ReactionFunc) {\n\tc.ReactionChain = append([]Reactor{&SimpleReactor{verb, resource, reaction}}, c.ReactionChain...)\n}\n\n// AddWatchReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddWatchReactor(resource string, reaction WatchReactionFunc) {\n\tc.Lock()\n\tdefer c.Unlock()\n\tc.WatchReactionChain = append(c.WatchReactionChain, &SimpleWatchReactor{resource, reaction})\n}\n\n// PrependWatchReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependWatchReactor(resource string, reaction WatchReactionFunc) {\n\tc.Lock()\n\tdefer c.Unlock()\n\tc.WatchReactionChain = append([]WatchReactor{&SimpleWatchReactor{resource, reaction}}, c.WatchReactionChain...)\n}\n\n// AddProxyReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddProxyReactor(resource string, reaction ProxyReactionFunc) {\n\tc.ProxyReactionChain = append(c.ProxyReactionChain, &SimpleProxyReactor{resource, reaction})\n}\n\n// PrependProxyReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependProxyReactor(resource string, reaction ProxyReactionFunc) {\n\tc.ProxyReactionChain = append([]ProxyReactor{&SimpleProxyReactor{resource, reaction}}, c.ProxyReactionChain...)\n}\n\n// Invokes records the provided Action and then invokes the ReactionFunc that\n// handles the action if one exists. defaultReturnObj is expected to be of the\n// same type a normal call would return.\nfunc (c *Fake) Invokes(action Action, defaultReturnObj runtime.Object) (runtime.Object, error) {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.ReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret, err\n\t}\n\n\treturn defaultReturnObj, nil\n}\n\n// InvokesWatch records the provided Action and then invokes the ReactionFunc\n// that handles the action if one exists.\nfunc (c *Fake) InvokesWatch(action Action) (watch.Interface, error) {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.WatchReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret, err\n\t}\n\n\treturn nil, fmt.Errorf(\"unhandled watch: %#v\", action)\n}\n\n// InvokesProxy records the provided Action and then invokes the ReactionFunc\n// that handles the action if one exists.\nfunc (c *Fake) InvokesProxy(action Action) restclient.ResponseWrapper {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.ProxyReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled || err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret\n\t}\n\n\treturn nil\n}\n\n// ClearActions clears the history of actions called on the fake client.\nfunc (c *Fake) ClearActions() {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tc.actions = make([]Action, 0)\n}\n\n// Actions returns a chronologically ordered slice fake actions called on the\n// fake client.\nfunc (c *Fake) Actions() []Action {\n\tc.RLock()\n\tdefer c.RUnlock()\n\tfa := make([]Action, len(c.actions))\n\tcopy(fa, c.actions)\n\treturn fa\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/fixture.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/apimachinery/pkg/util/strategicpatch\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// ObjectTracker keeps track of objects. It is intended to be used to\n// fake calls to a server by returning objects based on their kind,\n// namespace and name.\ntype ObjectTracker interface {\n\t// Add adds an object to the tracker. If object being added\n\t// is a list, its items are added separately.\n\tAdd(obj runtime.Object) error\n\n\t// Get retrieves the object by its kind, namespace and name.\n\tGet(gvr schema.GroupVersionResource, ns, name string) (runtime.Object, error)\n\n\t// Create adds an object to the tracker in the specified namespace.\n\tCreate(gvr schema.GroupVersionResource, obj runtime.Object, ns string) error\n\n\t// Update updates an existing object in the tracker in the specified namespace.\n\tUpdate(gvr schema.GroupVersionResource, obj runtime.Object, ns string) error\n\n\t// List retrieves all objects of a given kind in the given\n\t// namespace. Only non-List kinds are accepted.\n\tList(gvr schema.GroupVersionResource, gvk schema.GroupVersionKind, ns string) (runtime.Object, error)\n\n\t// Delete deletes an existing object from the tracker. If object\n\t// didn't exist in the tracker prior to deletion, Delete returns\n\t// no error.\n\tDelete(gvr schema.GroupVersionResource, ns, name string) error\n\n\t// Watch watches objects from the tracker. Watch returns a channel\n\t// which will push added / modified / deleted object.\n\tWatch(gvr schema.GroupVersionResource, ns string) (watch.Interface, error)\n}\n\n// ObjectScheme abstracts the implementation of common operations on objects.\ntype ObjectScheme interface {\n\truntime.ObjectCreater\n\truntime.ObjectTyper\n}\n\n// ObjectReaction returns a ReactionFunc that applies core.Action to\n// the given tracker.\nfunc ObjectReaction(tracker ObjectTracker) ReactionFunc {\n\treturn func(action Action) (bool, runtime.Object, error) {\n\t\tns := action.GetNamespace()\n\t\tgvr := action.GetResource()\n\t\t// Here and below we need to switch on implementation types,\n\t\t// not on interfaces, as some interfaces are identical\n\t\t// (e.g. UpdateAction and CreateAction), so if we use them,\n\t\t// updates and creates end up matching the same case branch.\n\t\tswitch action := action.(type) {\n\n\t\tcase ListActionImpl:\n\t\t\tobj, err := tracker.List(gvr, action.GetKind(), ns)\n\t\t\treturn true, obj, err\n\n\t\tcase GetActionImpl:\n\t\t\tobj, err := tracker.Get(gvr, ns, action.GetName())\n\t\t\treturn true, obj, err\n\n\t\tcase CreateActionImpl:\n\t\t\tobjMeta, err := meta.Accessor(action.GetObject())\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\t\t\tif action.GetSubresource() == \"\" {\n\t\t\t\terr = tracker.Create(gvr, action.GetObject(), ns)\n\t\t\t} else {\n\t\t\t\toldObj, getOldObjErr := tracker.Get(gvr, ns, objMeta.GetName())\n\t\t\t\tif getOldObjErr != nil {\n\t\t\t\t\treturn true, nil, getOldObjErr\n\t\t\t\t}\n\t\t\t\t// Check whether the existing historical object type is the same as the current operation object type that needs to be updated, and if it is the same, perform the update operation.\n\t\t\t\tif reflect.TypeOf(oldObj) == reflect.TypeOf(action.GetObject()) {\n\t\t\t\t\t// TODO: Currently we're handling subresource creation as an update\n\t\t\t\t\t// on the enclosing resource. This works for some subresources but\n\t\t\t\t\t// might not be generic enough.\n\t\t\t\t\terr = tracker.Update(gvr, action.GetObject(), ns)\n\t\t\t\t} else {\n\t\t\t\t\t// If the historical object type is different from the current object type, need to make sure we return the object submitted,don't persist the submitted object in the tracker.\n\t\t\t\t\treturn true, action.GetObject(), nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\t\t\tobj, err := tracker.Get(gvr, ns, objMeta.GetName())\n\t\t\treturn true, obj, err\n\n\t\tcase UpdateActionImpl:\n\t\t\tobjMeta, err := meta.Accessor(action.GetObject())\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\t\t\terr = tracker.Update(gvr, action.GetObject(), ns)\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\t\t\tobj, err := tracker.Get(gvr, ns, objMeta.GetName())\n\t\t\treturn true, obj, err\n\n\t\tcase DeleteActionImpl:\n\t\t\terr := tracker.Delete(gvr, ns, action.GetName())\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\t\t\treturn true, nil, nil\n\n\t\tcase PatchActionImpl:\n\t\t\tobj, err := tracker.Get(gvr, ns, action.GetName())\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\n\t\t\told, err := json.Marshal(obj)\n\t\t\tif err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\n\t\t\t// reset the object in preparation to unmarshal, since unmarshal does not guarantee that fields\n\t\t\t// in obj that are removed by patch are cleared\n\t\t\tvalue := reflect.ValueOf(obj)\n\t\t\tvalue.Elem().Set(reflect.New(value.Type().Elem()).Elem())\n\n\t\t\tswitch action.GetPatchType() {\n\t\t\tcase types.JSONPatchType:\n\t\t\t\tpatch, err := jsonpatch.DecodePatch(action.GetPatch())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\t\t\t\tmodified, err := patch.Apply(old)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\n\t\t\t\tif err = json.Unmarshal(modified, obj); err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\t\t\tcase types.MergePatchType:\n\t\t\t\tmodified, err := jsonpatch.MergePatch(old, action.GetPatch())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\n\t\t\t\tif err := json.Unmarshal(modified, obj); err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\t\t\tcase types.StrategicMergePatchType, types.ApplyPatchType:\n\t\t\t\tmergedByte, err := strategicpatch.StrategicMergePatch(old, action.GetPatch(), obj)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\t\t\t\tif err = json.Unmarshal(mergedByte, obj); err != nil {\n\t\t\t\t\treturn true, nil, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn true, nil, fmt.Errorf(\"PatchType is not supported\")\n\t\t\t}\n\n\t\t\tif err = tracker.Update(gvr, obj, ns); err != nil {\n\t\t\t\treturn true, nil, err\n\t\t\t}\n\n\t\t\treturn true, obj, nil\n\n\t\tdefault:\n\t\t\treturn false, nil, fmt.Errorf(\"no reaction implemented for %s\", action)\n\t\t}\n\t}\n}\n\ntype tracker struct {\n\tscheme  ObjectScheme\n\tdecoder runtime.Decoder\n\tlock    sync.RWMutex\n\tobjects map[schema.GroupVersionResource]map[types.NamespacedName]runtime.Object\n\t// The value type of watchers is a map of which the key is either a namespace or\n\t// all/non namespace aka \"\" and its value is list of fake watchers.\n\t// Manipulations on resources will broadcast the notification events into the\n\t// watchers' channel. Note that too many unhandled events (currently 100,\n\t// see apimachinery/pkg/watch.DefaultChanSize) will cause a panic.\n\twatchers map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher\n}\n\nvar _ ObjectTracker = &tracker{}\n\n// NewObjectTracker returns an ObjectTracker that can be used to keep track\n// of objects for the fake clientset. Mostly useful for unit tests.\nfunc NewObjectTracker(scheme ObjectScheme, decoder runtime.Decoder) ObjectTracker {\n\treturn &tracker{\n\t\tscheme:   scheme,\n\t\tdecoder:  decoder,\n\t\tobjects:  make(map[schema.GroupVersionResource]map[types.NamespacedName]runtime.Object),\n\t\twatchers: make(map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher),\n\t}\n}\n\nfunc (t *tracker) List(gvr schema.GroupVersionResource, gvk schema.GroupVersionKind, ns string) (runtime.Object, error) {\n\t// Heuristic for list kind: original kind + List suffix. Might\n\t// not always be true but this tracker has a pretty limited\n\t// understanding of the actual API model.\n\tlistGVK := gvk\n\tlistGVK.Kind = listGVK.Kind + \"List\"\n\t// GVK does have the concept of \"internal version\". The scheme recognizes\n\t// the runtime.APIVersionInternal, but not the empty string.\n\tif listGVK.Version == \"\" {\n\t\tlistGVK.Version = runtime.APIVersionInternal\n\t}\n\n\tlist, err := t.scheme.New(listGVK)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !meta.IsListType(list) {\n\t\treturn nil, fmt.Errorf(\"%q is not a list type\", listGVK.Kind)\n\t}\n\n\tt.lock.RLock()\n\tdefer t.lock.RUnlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn list, nil\n\t}\n\n\tmatchingObjs, err := filterByNamespace(objs, ns)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := meta.SetList(list, matchingObjs); err != nil {\n\t\treturn nil, err\n\t}\n\treturn list.DeepCopyObject(), nil\n}\n\nfunc (t *tracker) Watch(gvr schema.GroupVersionResource, ns string) (watch.Interface, error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tfakewatcher := watch.NewRaceFreeFake()\n\n\tif _, exists := t.watchers[gvr]; !exists {\n\t\tt.watchers[gvr] = make(map[string][]*watch.RaceFreeFakeWatcher)\n\t}\n\tt.watchers[gvr][ns] = append(t.watchers[gvr][ns], fakewatcher)\n\treturn fakewatcher, nil\n}\n\nfunc (t *tracker) Get(gvr schema.GroupVersionResource, ns, name string) (runtime.Object, error) {\n\terrNotFound := errors.NewNotFound(gvr.GroupResource(), name)\n\n\tt.lock.RLock()\n\tdefer t.lock.RUnlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn nil, errNotFound\n\t}\n\n\tmatchingObj, ok := objs[types.NamespacedName{Namespace: ns, Name: name}]\n\tif !ok {\n\t\treturn nil, errNotFound\n\t}\n\n\t// Only one object should match in the tracker if it works\n\t// correctly, as Add/Update methods enforce kind/namespace/name\n\t// uniqueness.\n\tobj := matchingObj.DeepCopyObject()\n\tif status, ok := obj.(*metav1.Status); ok {\n\t\tif status.Status != metav1.StatusSuccess {\n\t\t\treturn nil, &errors.StatusError{ErrStatus: *status}\n\t\t}\n\t}\n\n\treturn obj, nil\n}\n\nfunc (t *tracker) Add(obj runtime.Object) error {\n\tif meta.IsListType(obj) {\n\t\treturn t.addList(obj, false)\n\t}\n\tobjMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvks, _, err := t.scheme.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif partial, ok := obj.(*metav1.PartialObjectMetadata); ok && len(partial.TypeMeta.APIVersion) > 0 {\n\t\tgvks = []schema.GroupVersionKind{partial.TypeMeta.GroupVersionKind()}\n\t}\n\n\tif len(gvks) == 0 {\n\t\treturn fmt.Errorf(\"no registered kinds for %v\", obj)\n\t}\n\tfor _, gvk := range gvks {\n\t\t// NOTE: UnsafeGuessKindToResource is a heuristic and default match. The\n\t\t// actual registration in apiserver can specify arbitrary route for a\n\t\t// gvk. If a test uses such objects, it cannot preset the tracker with\n\t\t// objects via Add(). Instead, it should trigger the Create() function\n\t\t// of the tracker, where an arbitrary gvr can be specified.\n\t\tgvr, _ := meta.UnsafeGuessKindToResource(gvk)\n\t\t// Resource doesn't have the concept of \"__internal\" version, just set it to \"\".\n\t\tif gvr.Version == runtime.APIVersionInternal {\n\t\t\tgvr.Version = \"\"\n\t\t}\n\n\t\terr := t.add(gvr, obj, objMeta.GetNamespace(), false)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *tracker) Create(gvr schema.GroupVersionResource, obj runtime.Object, ns string) error {\n\treturn t.add(gvr, obj, ns, false)\n}\n\nfunc (t *tracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns string) error {\n\treturn t.add(gvr, obj, ns, true)\n}\n\nfunc (t *tracker) getWatches(gvr schema.GroupVersionResource, ns string) []*watch.RaceFreeFakeWatcher {\n\twatches := []*watch.RaceFreeFakeWatcher{}\n\tif t.watchers[gvr] != nil {\n\t\tif w := t.watchers[gvr][ns]; w != nil {\n\t\t\twatches = append(watches, w...)\n\t\t}\n\t\tif ns != metav1.NamespaceAll {\n\t\t\tif w := t.watchers[gvr][metav1.NamespaceAll]; w != nil {\n\t\t\t\twatches = append(watches, w...)\n\t\t\t}\n\t\t}\n\t}\n\treturn watches\n}\n\nfunc (t *tracker) add(gvr schema.GroupVersionResource, obj runtime.Object, ns string, replaceExisting bool) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tgr := gvr.GroupResource()\n\n\t// To avoid the object from being accidentally modified by caller\n\t// after it's been added to the tracker, we always store the deep\n\t// copy.\n\tobj = obj.DeepCopyObject()\n\n\tnewMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Propagate namespace to the new object if hasn't already been set.\n\tif len(newMeta.GetNamespace()) == 0 {\n\t\tnewMeta.SetNamespace(ns)\n\t}\n\n\tif ns != newMeta.GetNamespace() {\n\t\tmsg := fmt.Sprintf(\"request namespace does not match object namespace, request: %q object: %q\", ns, newMeta.GetNamespace())\n\t\treturn errors.NewBadRequest(msg)\n\t}\n\n\t_, ok := t.objects[gvr]\n\tif !ok {\n\t\tt.objects[gvr] = make(map[types.NamespacedName]runtime.Object)\n\t}\n\n\tnamespacedName := types.NamespacedName{Namespace: newMeta.GetNamespace(), Name: newMeta.GetName()}\n\tif _, ok = t.objects[gvr][namespacedName]; ok {\n\t\tif replaceExisting {\n\t\t\tfor _, w := range t.getWatches(gvr, ns) {\n\t\t\t\t// To avoid the object from being accidentally modified by watcher\n\t\t\t\tw.Modify(obj.DeepCopyObject())\n\t\t\t}\n\t\t\tt.objects[gvr][namespacedName] = obj\n\t\t\treturn nil\n\t\t}\n\t\treturn errors.NewAlreadyExists(gr, newMeta.GetName())\n\t}\n\n\tif replaceExisting {\n\t\t// Tried to update but no matching object was found.\n\t\treturn errors.NewNotFound(gr, newMeta.GetName())\n\t}\n\n\tt.objects[gvr][namespacedName] = obj\n\n\tfor _, w := range t.getWatches(gvr, ns) {\n\t\t// To avoid the object from being accidentally modified by watcher\n\t\tw.Add(obj.DeepCopyObject())\n\t}\n\n\treturn nil\n}\n\nfunc (t *tracker) addList(obj runtime.Object, replaceExisting bool) error {\n\tlist, err := meta.ExtractList(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\terrs := runtime.DecodeList(list, t.decoder)\n\tif len(errs) > 0 {\n\t\treturn errs[0]\n\t}\n\tfor _, obj := range list {\n\t\tif err := t.Add(obj); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *tracker) Delete(gvr schema.GroupVersionResource, ns, name string) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn errors.NewNotFound(gvr.GroupResource(), name)\n\t}\n\n\tnamespacedName := types.NamespacedName{Namespace: ns, Name: name}\n\tobj, ok := objs[namespacedName]\n\tif !ok {\n\t\treturn errors.NewNotFound(gvr.GroupResource(), name)\n\t}\n\n\tdelete(objs, namespacedName)\n\tfor _, w := range t.getWatches(gvr, ns) {\n\t\tw.Delete(obj.DeepCopyObject())\n\t}\n\treturn nil\n}\n\n// filterByNamespace returns all objects in the collection that\n// match provided namespace. Empty namespace matches\n// non-namespaced objects.\nfunc filterByNamespace(objs map[types.NamespacedName]runtime.Object, ns string) ([]runtime.Object, error) {\n\tvar res []runtime.Object\n\n\tfor _, obj := range objs {\n\t\tacc, err := meta.Accessor(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif ns != \"\" && acc.GetNamespace() != ns {\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, obj)\n\t}\n\n\t// Sort res to get deterministic order.\n\tsort.Slice(res, func(i, j int) bool {\n\t\tacc1, _ := meta.Accessor(res[i])\n\t\tacc2, _ := meta.Accessor(res[j])\n\t\tif acc1.GetNamespace() != acc2.GetNamespace() {\n\t\t\treturn acc1.GetNamespace() < acc2.GetNamespace()\n\t\t}\n\t\treturn acc1.GetName() < acc2.GetName()\n\t})\n\treturn res, nil\n}\n\nfunc DefaultWatchReactor(watchInterface watch.Interface, err error) WatchReactionFunc {\n\treturn func(action Action) (bool, watch.Interface, error) {\n\t\treturn true, watchInterface, err\n\t}\n}\n\n// SimpleReactor is a Reactor.  Each reaction function is attached to a given verb,resource tuple.  \"*\" in either field matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions\ntype SimpleReactor struct {\n\tVerb     string\n\tResource string\n\n\tReaction ReactionFunc\n}\n\nfunc (r *SimpleReactor) Handles(action Action) bool {\n\tverbCovers := r.Verb == \"*\" || r.Verb == action.GetVerb()\n\tif !verbCovers {\n\t\treturn false\n\t}\n\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleReactor) React(action Action) (bool, runtime.Object, error) {\n\treturn r.Reaction(action)\n}\n\n// SimpleWatchReactor is a WatchReactor.  Each reaction function is attached to a given resource.  \"*\" matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions\ntype SimpleWatchReactor struct {\n\tResource string\n\n\tReaction WatchReactionFunc\n}\n\nfunc (r *SimpleWatchReactor) Handles(action Action) bool {\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleWatchReactor) React(action Action) (bool, watch.Interface, error) {\n\treturn r.Reaction(action)\n}\n\n// SimpleProxyReactor is a ProxyReactor.  Each reaction function is attached to a given resource.  \"*\" matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions.\ntype SimpleProxyReactor struct {\n\tResource string\n\n\tReaction ProxyReactionFunc\n}\n\nfunc (r *SimpleProxyReactor) Handles(action Action) bool {\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleProxyReactor) React(action Action) (bool, restclient.ResponseWrapper, error) {\n\treturn r.Reaction(action)\n}\n\nfunc resourceCovers(resource string, action Action) bool {\n\tif resource == \"*\" {\n\t\treturn true\n\t}\n\n\tif resource == action.GetResource().Resource {\n\t\treturn true\n\t}\n\n\tif index := strings.Index(resource, \"/\"); index != -1 &&\n\t\tresource[:index] == action.GetResource().Resource &&\n\t\tresource[index+1:] == action.GetSubresource() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/interface.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\ntype FakeClient interface {\n\t// Tracker gives access to the ObjectTracker internal to the fake client.\n\tTracker() ObjectTracker\n\n\t// AddReactor appends a reactor to the end of the chain.\n\tAddReactor(verb, resource string, reaction ReactionFunc)\n\n\t// PrependReactor adds a reactor to the beginning of the chain.\n\tPrependReactor(verb, resource string, reaction ReactionFunc)\n\n\t// AddWatchReactor appends a reactor to the end of the chain.\n\tAddWatchReactor(resource string, reaction WatchReactionFunc)\n\n\t// PrependWatchReactor adds a reactor to the beginning of the chain.\n\tPrependWatchReactor(resource string, reaction WatchReactionFunc)\n\n\t// AddProxyReactor appends a reactor to the end of the chain.\n\tAddProxyReactor(resource string, reaction ProxyReactionFunc)\n\n\t// PrependProxyReactor adds a reactor to the beginning of the chain.\n\tPrependProxyReactor(resource string, reaction ProxyReactionFunc)\n\n\t// Invokes records the provided Action and then invokes the ReactionFunc that\n\t// handles the action if one exists. defaultReturnObj is expected to be of the\n\t// same type a normal call would return.\n\tInvokes(action Action, defaultReturnObj runtime.Object) (runtime.Object, error)\n\n\t// InvokesWatch records the provided Action and then invokes the ReactionFunc\n\t// that handles the action if one exists.\n\tInvokesWatch(action Action) (watch.Interface, error)\n\n\t// InvokesProxy records the provided Action and then invokes the ReactionFunc\n\t// that handles the action if one exists.\n\tInvokesProxy(action Action) restclient.ResponseWrapper\n\n\t// ClearActions clears the history of actions called on the fake client.\n\tClearActions()\n\n\t// Actions returns a chronologically ordered slice fake actions called on the\n\t// fake client.\n\tActions() []Action\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n\npackage api\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"strings\"\n)\n\nfunc init() {\n\tsDec, _ := base64.StdEncoding.DecodeString(\"REDACTED+\")\n\tredactedBytes = []byte(string(sDec))\n\tsDec, _ = base64.StdEncoding.DecodeString(\"DATA+OMITTED\")\n\tdataOmittedBytes = []byte(string(sDec))\n}\n\n// IsConfigEmpty returns true if the config is empty.\nfunc IsConfigEmpty(config *Config) bool {\n\treturn len(config.AuthInfos) == 0 && len(config.Clusters) == 0 && len(config.Contexts) == 0 &&\n\t\tlen(config.CurrentContext) == 0 &&\n\t\tlen(config.Preferences.Extensions) == 0 && !config.Preferences.Colors &&\n\t\tlen(config.Extensions) == 0\n}\n\n// MinifyConfig read the current context and uses that to keep only the relevant pieces of config\n// This is useful for making secrets based on kubeconfig files\nfunc MinifyConfig(config *Config) error {\n\tif len(config.CurrentContext) == 0 {\n\t\treturn errors.New(\"current-context must exist in order to minify\")\n\t}\n\n\tcurrContext, exists := config.Contexts[config.CurrentContext]\n\tif !exists {\n\t\treturn fmt.Errorf(\"cannot locate context %v\", config.CurrentContext)\n\t}\n\n\tnewContexts := map[string]*Context{}\n\tnewContexts[config.CurrentContext] = currContext\n\n\tnewClusters := map[string]*Cluster{}\n\tif len(currContext.Cluster) > 0 {\n\t\tif _, exists := config.Clusters[currContext.Cluster]; !exists {\n\t\t\treturn fmt.Errorf(\"cannot locate cluster %v\", currContext.Cluster)\n\t\t}\n\n\t\tnewClusters[currContext.Cluster] = config.Clusters[currContext.Cluster]\n\t}\n\n\tnewAuthInfos := map[string]*AuthInfo{}\n\tif len(currContext.AuthInfo) > 0 {\n\t\tif _, exists := config.AuthInfos[currContext.AuthInfo]; !exists {\n\t\t\treturn fmt.Errorf(\"cannot locate user %v\", currContext.AuthInfo)\n\t\t}\n\n\t\tnewAuthInfos[currContext.AuthInfo] = config.AuthInfos[currContext.AuthInfo]\n\t}\n\n\tconfig.AuthInfos = newAuthInfos\n\tconfig.Clusters = newClusters\n\tconfig.Contexts = newContexts\n\n\treturn nil\n}\n\nvar (\n\tdataOmittedBytes []byte\n\tredactedBytes    []byte\n)\n\n// ShortenConfig redacts raw data entries from the config object for a human-readable view.\nfunc ShortenConfig(config *Config) {\n\t// trick json encoder into printing a human-readable string in the raw data\n\t// by base64 decoding what we want to print. Relies on implementation of\n\t// http://golang.org/pkg/encoding/json/#Marshal using base64 to encode []byte\n\tfor key, authInfo := range config.AuthInfos {\n\t\tif len(authInfo.ClientKeyData) > 0 {\n\t\t\tauthInfo.ClientKeyData = dataOmittedBytes\n\t\t}\n\t\tif len(authInfo.ClientCertificateData) > 0 {\n\t\t\tauthInfo.ClientCertificateData = dataOmittedBytes\n\t\t}\n\t\tif len(authInfo.Token) > 0 {\n\t\t\tauthInfo.Token = \"REDACTED\"\n\t\t}\n\t\tconfig.AuthInfos[key] = authInfo\n\t}\n\tfor key, cluster := range config.Clusters {\n\t\tif len(cluster.CertificateAuthorityData) > 0 {\n\t\t\tcluster.CertificateAuthorityData = dataOmittedBytes\n\t\t}\n\t\tconfig.Clusters[key] = cluster\n\t}\n}\n\n// FlattenConfig changes the config object into a self-contained config (useful for making secrets)\nfunc FlattenConfig(config *Config) error {\n\tfor key, authInfo := range config.AuthInfos {\n\t\tbaseDir, err := MakeAbs(path.Dir(authInfo.LocationOfOrigin), \"\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := FlattenContent(&authInfo.ClientCertificate, &authInfo.ClientCertificateData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := FlattenContent(&authInfo.ClientKey, &authInfo.ClientKeyData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tconfig.AuthInfos[key] = authInfo\n\t}\n\tfor key, cluster := range config.Clusters {\n\t\tbaseDir, err := MakeAbs(path.Dir(cluster.LocationOfOrigin), \"\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := FlattenContent(&cluster.CertificateAuthority, &cluster.CertificateAuthorityData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tconfig.Clusters[key] = cluster\n\t}\n\n\treturn nil\n}\n\nfunc FlattenContent(path *string, contents *[]byte, baseDir string) error {\n\tif len(*path) != 0 {\n\t\tif len(*contents) > 0 {\n\t\t\treturn errors.New(\"cannot have values for both path and contents\")\n\t\t}\n\n\t\tvar err error\n\t\tabsPath := ResolvePath(*path, baseDir)\n\t\t*contents, err = os.ReadFile(absPath)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t*path = \"\"\n\t}\n\n\treturn nil\n}\n\n// ResolvePath returns the path as an absolute paths, relative to the given base directory\nfunc ResolvePath(path string, base string) string {\n\t// Don't resolve empty paths\n\tif len(path) > 0 {\n\t\t// Don't resolve absolute paths\n\t\tif !filepath.IsAbs(path) {\n\t\t\treturn filepath.Join(base, path)\n\t\t}\n\t}\n\n\treturn path\n}\n\nfunc MakeAbs(path, base string) (string, error) {\n\tif filepath.IsAbs(path) {\n\t\treturn path, nil\n\t}\n\tif len(base) == 0 {\n\t\tcwd, err := os.Getwd()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbase = cwd\n\t}\n\treturn filepath.Join(base, path), nil\n}\n\n// RedactSecrets replaces any sensitive values with REDACTED\nfunc RedactSecrets(config *Config) error {\n\treturn redactSecrets(reflect.ValueOf(config), false)\n}\n\nfunc redactSecrets(curr reflect.Value, redact bool) error {\n\tredactedBytes = []byte(\"REDACTED\")\n\tif !curr.IsValid() {\n\t\treturn nil\n\t}\n\n\tactualCurrValue := curr\n\tif curr.Kind() == reflect.Ptr {\n\t\tactualCurrValue = curr.Elem()\n\t}\n\n\tswitch actualCurrValue.Kind() {\n\tcase reflect.Map:\n\t\tfor _, v := range actualCurrValue.MapKeys() {\n\t\t\terr := redactSecrets(actualCurrValue.MapIndex(v), false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.String:\n\t\tif redact {\n\t\t\tif !actualCurrValue.IsZero() {\n\t\t\t\tactualCurrValue.SetString(\"REDACTED\")\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Slice:\n\t\tif actualCurrValue.Type() == reflect.TypeOf([]byte{}) && redact {\n\t\t\tif !actualCurrValue.IsNil() {\n\t\t\t\tactualCurrValue.SetBytes(redactedBytes)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\tfor i := 0; i < actualCurrValue.Len(); i++ {\n\t\t\terr := redactSecrets(actualCurrValue.Index(i), false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Struct:\n\t\tfor fieldIndex := 0; fieldIndex < actualCurrValue.NumField(); fieldIndex++ {\n\t\t\tcurrFieldValue := actualCurrValue.Field(fieldIndex)\n\t\t\tcurrFieldType := actualCurrValue.Type().Field(fieldIndex)\n\t\t\tcurrYamlTag := currFieldType.Tag.Get(\"datapolicy\")\n\t\t\tcurrFieldTypeYamlName := strings.Split(currYamlTag, \",\")[0]\n\t\t\tif currFieldTypeYamlName != \"\" {\n\t\t\t\terr := redactSecrets(currFieldValue, true)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := redactSecrets(currFieldValue, false)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/register.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// SchemeGroupVersion is group version used to register these objects\n// TODO this should be in the \"kubeconfig\" group\nvar SchemeGroupVersion = schema.GroupVersion{Group: \"\", Version: runtime.APIVersionInternal}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Config{},\n\t)\n\treturn nil\n}\n\nfunc (obj *Config) GetObjectKind() schema.ObjectKind { return obj }\nfunc (obj *Config) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\nfunc (obj *Config) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// Where possible, json tags match the cli argument names.\n// Top level config objects and all values required for proper functioning are not \"omitempty\".  Any truly optional piece of config is allowed to be omitted.\n\n// Config holds the information needed to build connect to remote kubernetes clusters as a given user\n// IMPORTANT if you add fields to this struct, please update IsConfigEmpty()\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype Config struct {\n\t// Legacy field from pkg/api/types.go TypeMeta.\n\t// TODO(jlowdermilk): remove this after eliminating downstream dependencies.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tKind string `json:\"kind,omitempty\"`\n\t// Legacy field from pkg/api/types.go TypeMeta.\n\t// TODO(jlowdermilk): remove this after eliminating downstream dependencies.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\t// Preferences holds general information to be use for cli interactions\n\tPreferences Preferences `json:\"preferences\"`\n\t// Clusters is a map of referencable names to cluster configs\n\tClusters map[string]*Cluster `json:\"clusters\"`\n\t// AuthInfos is a map of referencable names to user configs\n\tAuthInfos map[string]*AuthInfo `json:\"users\"`\n\t// Contexts is a map of referencable names to context configs\n\tContexts map[string]*Context `json:\"contexts\"`\n\t// CurrentContext is the name of the context that you would like to use by default\n\tCurrentContext string `json:\"current-context\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// IMPORTANT if you add fields to this struct, please update IsConfigEmpty()\ntype Preferences struct {\n\t// +optional\n\tColors bool `json:\"colors,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// Cluster contains information about how to communicate with a kubernetes cluster\ntype Cluster struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is used to check server certificate. If TLSServerName is empty, the hostname used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate. This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CertificateAuthority is the path to a cert file for the certificate authority.\n\t// +optional\n\tCertificateAuthority string `json:\"certificate-authority,omitempty\"`\n\t// CertificateAuthorityData contains PEM-encoded certificate authority certificates. Overrides CertificateAuthority\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests made by this\n\t// client. URLs with \"http\", \"https\", and \"socks5\" schemes are supported.  If\n\t// this configuration is not provided or the empty string, the client\n\t// attempts to construct a proxy configuration from http_proxy and\n\t// https_proxy environment variables. If these environment variables are not\n\t// set, the client does not attempt to proxy requests.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints (exec,\n\t// attach, port forward).\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// AuthInfo contains information that describes identity information.  This is use to tell the kubernetes cluster who you are.\ntype AuthInfo struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string\n\t// ClientCertificate is the path to a client cert file for TLS.\n\t// +optional\n\tClientCertificate string `json:\"client-certificate,omitempty\"`\n\t// ClientCertificateData contains PEM-encoded data from a client cert file for TLS. Overrides ClientCertificate\n\t// +optional\n\tClientCertificateData []byte `json:\"client-certificate-data,omitempty\"`\n\t// ClientKey is the path to a client key file for TLS.\n\t// +optional\n\tClientKey string `json:\"client-key,omitempty\"`\n\t// ClientKeyData contains PEM-encoded data from a client key file for TLS. Overrides ClientKey\n\t// +optional\n\tClientKeyData []byte `json:\"client-key-data,omitempty\" datapolicy:\"security-key\"`\n\t// Token is the bearer token for authentication to the kubernetes cluster.\n\t// +optional\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// TokenFile is a pointer to a file that contains a bearer token (as described above).  If both Token and TokenFile are present, Token takes precedence.\n\t// +optional\n\tTokenFile string `json:\"tokenFile,omitempty\"`\n\t// Impersonate is the username to act-as.\n\t// +optional\n\tImpersonate string `json:\"act-as,omitempty\"`\n\t// ImpersonateUID is the uid to impersonate.\n\t// +optional\n\tImpersonateUID string `json:\"act-as-uid,omitempty\"`\n\t// ImpersonateGroups is the groups to impersonate.\n\t// +optional\n\tImpersonateGroups []string `json:\"act-as-groups,omitempty\"`\n\t// ImpersonateUserExtra contains additional information for impersonated user.\n\t// +optional\n\tImpersonateUserExtra map[string][]string `json:\"act-as-user-extra,omitempty\"`\n\t// Username is the username for basic authentication to the kubernetes cluster.\n\t// +optional\n\tUsername string `json:\"username,omitempty\"`\n\t// Password is the password for basic authentication to the kubernetes cluster.\n\t// +optional\n\tPassword string `json:\"password,omitempty\" datapolicy:\"password\"`\n\t// AuthProvider specifies a custom authentication plugin for the kubernetes cluster.\n\t// +optional\n\tAuthProvider *AuthProviderConfig `json:\"auth-provider,omitempty\"`\n\t// Exec specifies a custom exec-based authentication plugin for the kubernetes cluster.\n\t// +optional\n\tExec *ExecConfig `json:\"exec,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// Context is a tuple of references to a cluster (how do I communicate with a kubernetes cluster), a user (how do I identify myself), and a namespace (what subset of resources do I want to work with)\ntype Context struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string\n\t// Cluster is the name of the cluster for this context\n\tCluster string `json:\"cluster\"`\n\t// AuthInfo is the name of the authInfo for this context\n\tAuthInfo string `json:\"user\"`\n\t// Namespace is the default namespace to use on unspecified requests\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// AuthProviderConfig holds the configuration for a specified auth provider.\ntype AuthProviderConfig struct {\n\tName string `json:\"name\"`\n\t// +optional\n\tConfig map[string]string `json:\"config,omitempty\"`\n}\n\nvar _ fmt.Stringer = new(AuthProviderConfig)\nvar _ fmt.GoStringer = new(AuthProviderConfig)\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// AuthProviderConfig to prevent accidental leaking via logs.\nfunc (c AuthProviderConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of\n// AuthProviderConfig to prevent accidental leaking via logs.\nfunc (c AuthProviderConfig) String() string {\n\tcfg := \"<nil>\"\n\tif c.Config != nil {\n\t\tcfg = \"--- REDACTED ---\"\n\t}\n\treturn fmt.Sprintf(\"api.AuthProviderConfig{Name: %q, Config: map[string]string{%s}}\", c.Name, cfg)\n}\n\n// ExecConfig specifies a command to provide client credentials. The command is exec'd\n// and outputs structured stdout holding credentials.\n//\n// See the client.authentication.k8s.io API group for specifications of the exact input\n// and output format\ntype ExecConfig struct {\n\t// Command to execute.\n\tCommand string `json:\"command\"`\n\t// Arguments to pass to the command when executing it.\n\t// +optional\n\tArgs []string `json:\"args\"`\n\t// Env defines additional environment variables to expose to the process. These\n\t// are unioned with the host's environment, as well as variables client-go uses\n\t// to pass argument to the plugin.\n\t// +optional\n\tEnv []ExecEnvVar `json:\"env\"`\n\n\t// Preferred input version of the ExecInfo. The returned ExecCredentials MUST use\n\t// the same encoding version as the input.\n\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\n\t// This text is shown to the user when the executable doesn't seem to be\n\t// present. For example, `brew install foo-cli` might be a good InstallHint for\n\t// foo-cli on Mac OS systems.\n\tInstallHint string `json:\"installHint,omitempty\"`\n\n\t// ProvideClusterInfo determines whether or not to provide cluster information,\n\t// which could potentially contain very large CA data, to this exec plugin as a\n\t// part of the KUBERNETES_EXEC_INFO environment variable. By default, it is set\n\t// to false. Package k8s.io/client-go/tools/auth/exec provides helper methods for\n\t// reading this environment variable.\n\tProvideClusterInfo bool `json:\"provideClusterInfo\"`\n\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's extensions[exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +k8s:conversion-gen=false\n\tConfig runtime.Object\n\n\t// InteractiveMode determines this plugin's relationship with standard input. Valid\n\t// values are \"Never\" (this exec plugin never uses standard input), \"IfAvailable\" (this\n\t// exec plugin wants to use standard input if it is available), or \"Always\" (this exec\n\t// plugin requires standard input to function). See ExecInteractiveMode values for more\n\t// details.\n\t//\n\t// If APIVersion is client.authentication.k8s.io/v1alpha1 or\n\t// client.authentication.k8s.io/v1beta1, then this field is optional and defaults\n\t// to \"IfAvailable\" when unset. Otherwise, this field is required.\n\t// +optional\n\tInteractiveMode ExecInteractiveMode\n\n\t// StdinUnavailable indicates whether the exec authenticator can pass standard\n\t// input through to this exec plugin. For example, a higher level entity might be using\n\t// standard input for something else and therefore it would not be safe for the exec\n\t// plugin to use standard input. This is kept here in order to keep all of the exec configuration\n\t// together, but it is never serialized.\n\t// +k8s:conversion-gen=false\n\tStdinUnavailable bool\n\n\t// StdinUnavailableMessage is an optional message to be displayed when the exec authenticator\n\t// cannot successfully run this exec plugin because it needs to use standard input and\n\t// StdinUnavailable is true. For example, a process that is already using standard input to\n\t// read user instructions might set this to \"used by my-program to read user instructions\".\n\t// +k8s:conversion-gen=false\n\tStdinUnavailableMessage string\n}\n\nvar _ fmt.Stringer = new(ExecConfig)\nvar _ fmt.GoStringer = new(ExecConfig)\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// ExecConfig to prevent accidental leaking via logs.\nfunc (c ExecConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of ExecConfig\n// to prevent accidental leaking via logs.\nfunc (c ExecConfig) String() string {\n\tvar args []string\n\tif len(c.Args) > 0 {\n\t\targs = []string{\"--- REDACTED ---\"}\n\t}\n\tenv := \"[]ExecEnvVar(nil)\"\n\tif len(c.Env) > 0 {\n\t\tenv = \"[]ExecEnvVar{--- REDACTED ---}\"\n\t}\n\tconfig := \"runtime.Object(nil)\"\n\tif c.Config != nil {\n\t\tconfig = \"runtime.Object(--- REDACTED ---)\"\n\t}\n\treturn fmt.Sprintf(\"api.ExecConfig{Command: %q, Args: %#v, Env: %s, APIVersion: %q, ProvideClusterInfo: %t, Config: %s, StdinUnavailable: %t}\", c.Command, args, env, c.APIVersion, c.ProvideClusterInfo, config, c.StdinUnavailable)\n}\n\n// ExecEnvVar is used for setting environment variables when executing an exec-based\n// credential plugin.\ntype ExecEnvVar struct {\n\tName  string `json:\"name\"`\n\tValue string `json:\"value\"`\n}\n\n// ExecInteractiveMode is a string that describes an exec plugin's relationship with standard input.\ntype ExecInteractiveMode string\n\nconst (\n\t// NeverExecInteractiveMode declares that this exec plugin never needs to use standard\n\t// input, and therefore the exec plugin will be run regardless of whether standard input is\n\t// available for user input.\n\tNeverExecInteractiveMode ExecInteractiveMode = \"Never\"\n\t// IfAvailableExecInteractiveMode declares that this exec plugin would like to use standard input\n\t// if it is available, but can still operate if standard input is not available. Therefore, the\n\t// exec plugin will be run regardless of whether stdin is available for user input. If standard\n\t// input is available for user input, then it will be provided to this exec plugin.\n\tIfAvailableExecInteractiveMode ExecInteractiveMode = \"IfAvailable\"\n\t// AlwaysExecInteractiveMode declares that this exec plugin requires standard input in order to\n\t// run, and therefore the exec plugin will only be run if standard input is available for user\n\t// input. If standard input is not available for user input, then the exec plugin will not be run\n\t// and an error will be returned by the exec plugin runner.\n\tAlwaysExecInteractiveMode ExecInteractiveMode = \"Always\"\n)\n\n// NewConfig is a convenience function that returns a new Config object with non-nil maps\nfunc NewConfig() *Config {\n\treturn &Config{\n\t\tPreferences: *NewPreferences(),\n\t\tClusters:    make(map[string]*Cluster),\n\t\tAuthInfos:   make(map[string]*AuthInfo),\n\t\tContexts:    make(map[string]*Context),\n\t\tExtensions:  make(map[string]runtime.Object),\n\t}\n}\n\n// NewContext is a convenience function that returns a new Context\n// object with non-nil maps\nfunc NewContext() *Context {\n\treturn &Context{Extensions: make(map[string]runtime.Object)}\n}\n\n// NewCluster is a convenience function that returns a new Cluster\n// object with non-nil maps\nfunc NewCluster() *Cluster {\n\treturn &Cluster{Extensions: make(map[string]runtime.Object)}\n}\n\n// NewAuthInfo is a convenience function that returns a new AuthInfo\n// object with non-nil maps\nfunc NewAuthInfo() *AuthInfo {\n\treturn &AuthInfo{\n\t\tExtensions:           make(map[string]runtime.Object),\n\t\tImpersonateUserExtra: make(map[string][]string),\n\t}\n}\n\n// NewPreferences is a convenience function that returns a new\n// Preferences object with non-nil maps\nfunc NewPreferences() *Preferences {\n\treturn &Preferences{Extensions: make(map[string]runtime.Object)}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage api\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuthInfo) DeepCopyInto(out *AuthInfo) {\n\t*out = *in\n\tif in.ClientCertificateData != nil {\n\t\tin, out := &in.ClientCertificateData, &out.ClientCertificateData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ClientKeyData != nil {\n\t\tin, out := &in.ClientKeyData, &out.ClientKeyData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImpersonateGroups != nil {\n\t\tin, out := &in.ImpersonateGroups, &out.ImpersonateGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImpersonateUserExtra != nil {\n\t\tin, out := &in.ImpersonateUserExtra, &out.ImpersonateUserExtra\n\t\t*out = make(map[string][]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]string, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.AuthProvider != nil {\n\t\tin, out := &in.AuthProvider, &out.AuthProvider\n\t\t*out = new(AuthProviderConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthInfo.\nfunc (in *AuthInfo) DeepCopy() *AuthInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuthInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuthProviderConfig) DeepCopyInto(out *AuthProviderConfig) {\n\t*out = *in\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthProviderConfig.\nfunc (in *AuthProviderConfig) DeepCopy() *AuthProviderConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuthProviderConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Config) DeepCopyInto(out *Config) {\n\t*out = *in\n\tin.Preferences.DeepCopyInto(&out.Preferences)\n\tif in.Clusters != nil {\n\t\tin, out := &in.Clusters, &out.Clusters\n\t\t*out = make(map[string]*Cluster, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *Cluster\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(Cluster)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.AuthInfos != nil {\n\t\tin, out := &in.AuthInfos, &out.AuthInfos\n\t\t*out = make(map[string]*AuthInfo, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *AuthInfo\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(AuthInfo)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.Contexts != nil {\n\t\tin, out := &in.Contexts, &out.Contexts\n\t\t*out = make(map[string]*Context, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *Context\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(Context)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.\nfunc (in *Config) DeepCopy() *Config {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Config)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Config) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Context) DeepCopyInto(out *Context) {\n\t*out = *in\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Context.\nfunc (in *Context) DeepCopy() *Context {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Context)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecConfig) DeepCopyInto(out *ExecConfig) {\n\t*out = *in\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]ExecEnvVar, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tout.Config = in.Config.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecConfig.\nfunc (in *ExecConfig) DeepCopy() *ExecConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecEnvVar) DeepCopyInto(out *ExecEnvVar) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecEnvVar.\nfunc (in *ExecEnvVar) DeepCopy() *ExecEnvVar {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecEnvVar)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preferences) DeepCopyInto(out *Preferences) {\n\t*out = *in\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preferences.\nfunc (in *Preferences) DeepCopy() *Preferences {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preferences)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/metrics/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - wojtek-t\n  - jayunit100\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/metrics/metrics.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package metrics provides abstractions for registering which metrics\n// to record.\npackage metrics\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar registerMetrics sync.Once\n\n// DurationMetric is a measurement of some amount of time.\ntype DurationMetric interface {\n\tObserve(duration time.Duration)\n}\n\n// ExpiryMetric sets some time of expiry. If nil, assume not relevant.\ntype ExpiryMetric interface {\n\tSet(expiry *time.Time)\n}\n\n// LatencyMetric observes client latency partitioned by verb and url.\ntype LatencyMetric interface {\n\tObserve(ctx context.Context, verb string, u url.URL, latency time.Duration)\n}\n\n// SizeMetric observes client response size partitioned by verb and host.\ntype SizeMetric interface {\n\tObserve(ctx context.Context, verb string, host string, size float64)\n}\n\n// ResultMetric counts response codes partitioned by method and host.\ntype ResultMetric interface {\n\tIncrement(ctx context.Context, code string, method string, host string)\n}\n\n// CallsMetric counts calls that take place for a specific exec plugin.\ntype CallsMetric interface {\n\t// Increment increments a counter per exitCode and callStatus.\n\tIncrement(exitCode int, callStatus string)\n}\n\n// RetryMetric counts the number of retries sent to the server\n// partitioned by code, method, and host.\ntype RetryMetric interface {\n\tIncrementRetry(ctx context.Context, code string, method string, host string)\n}\n\nvar (\n\t// ClientCertExpiry is the expiry time of a client certificate\n\tClientCertExpiry ExpiryMetric = noopExpiry{}\n\t// ClientCertRotationAge is the age of a certificate that has just been rotated.\n\tClientCertRotationAge DurationMetric = noopDuration{}\n\t// RequestLatency is the latency metric that rest clients will update.\n\tRequestLatency LatencyMetric = noopLatency{}\n\t// RequestSize is the request size metric that rest clients will update.\n\tRequestSize SizeMetric = noopSize{}\n\t// ResponseSize is the response size metric that rest clients will update.\n\tResponseSize SizeMetric = noopSize{}\n\t// RateLimiterLatency is the client side rate limiter latency metric.\n\tRateLimiterLatency LatencyMetric = noopLatency{}\n\t// RequestResult is the result metric that rest clients will update.\n\tRequestResult ResultMetric = noopResult{}\n\t// ExecPluginCalls is the number of calls made to an exec plugin, partitioned by\n\t// exit code and call status.\n\tExecPluginCalls CallsMetric = noopCalls{}\n\t// RequestRetry is the retry metric that tracks the number of\n\t// retries sent to the server.\n\tRequestRetry RetryMetric = noopRetry{}\n)\n\n// RegisterOpts contains all the metrics to register. Metrics may be nil.\ntype RegisterOpts struct {\n\tClientCertExpiry      ExpiryMetric\n\tClientCertRotationAge DurationMetric\n\tRequestLatency        LatencyMetric\n\tRequestSize           SizeMetric\n\tResponseSize          SizeMetric\n\tRateLimiterLatency    LatencyMetric\n\tRequestResult         ResultMetric\n\tExecPluginCalls       CallsMetric\n\tRequestRetry          RetryMetric\n}\n\n// Register registers metrics for the rest client to use. This can\n// only be called once.\nfunc Register(opts RegisterOpts) {\n\tregisterMetrics.Do(func() {\n\t\tif opts.ClientCertExpiry != nil {\n\t\t\tClientCertExpiry = opts.ClientCertExpiry\n\t\t}\n\t\tif opts.ClientCertRotationAge != nil {\n\t\t\tClientCertRotationAge = opts.ClientCertRotationAge\n\t\t}\n\t\tif opts.RequestLatency != nil {\n\t\t\tRequestLatency = opts.RequestLatency\n\t\t}\n\t\tif opts.RequestSize != nil {\n\t\t\tRequestSize = opts.RequestSize\n\t\t}\n\t\tif opts.ResponseSize != nil {\n\t\t\tResponseSize = opts.ResponseSize\n\t\t}\n\t\tif opts.RateLimiterLatency != nil {\n\t\t\tRateLimiterLatency = opts.RateLimiterLatency\n\t\t}\n\t\tif opts.RequestResult != nil {\n\t\t\tRequestResult = opts.RequestResult\n\t\t}\n\t\tif opts.ExecPluginCalls != nil {\n\t\t\tExecPluginCalls = opts.ExecPluginCalls\n\t\t}\n\t\tif opts.RequestRetry != nil {\n\t\t\tRequestRetry = opts.RequestRetry\n\t\t}\n\t})\n}\n\ntype noopDuration struct{}\n\nfunc (noopDuration) Observe(time.Duration) {}\n\ntype noopExpiry struct{}\n\nfunc (noopExpiry) Set(*time.Time) {}\n\ntype noopLatency struct{}\n\nfunc (noopLatency) Observe(context.Context, string, url.URL, time.Duration) {}\n\ntype noopSize struct{}\n\nfunc (noopSize) Observe(context.Context, string, string, float64) {}\n\ntype noopResult struct{}\n\nfunc (noopResult) Increment(context.Context, string, string, string) {}\n\ntype noopCalls struct{}\n\nfunc (noopCalls) Increment(int, string) {}\n\ntype noopRetry struct{}\n\nfunc (noopRetry) IncrementRetry(context.Context, string, string, string) {}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - sig-instrumentation-reviewers\napprovers:\n  - sig-instrumentation-approvers\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package record has all client logic for recording and reporting\n// \"k8s.io/api/core/v1\".Event events.\npackage record // import \"k8s.io/client-go/tools/record\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/event.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage record\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/tools/record/util\"\n\tref \"k8s.io/client-go/tools/reference\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n)\n\nconst maxTriesPerEvent = 12\n\nvar defaultSleepDuration = 10 * time.Second\n\nconst maxQueuedEvents = 1000\n\n// EventSink knows how to store events (client.Client implements it.)\n// EventSink must respect the namespace that will be embedded in 'event'.\n// It is assumed that EventSink will return the same sorts of errors as\n// pkg/client's REST client.\ntype EventSink interface {\n\tCreate(event *v1.Event) (*v1.Event, error)\n\tUpdate(event *v1.Event) (*v1.Event, error)\n\tPatch(oldEvent *v1.Event, data []byte) (*v1.Event, error)\n}\n\n// CorrelatorOptions allows you to change the default of the EventSourceObjectSpamFilter\n// and EventAggregator in EventCorrelator\ntype CorrelatorOptions struct {\n\t// The lru cache size used for both EventSourceObjectSpamFilter and the EventAggregator\n\t// If not specified (zero value), the default specified in events_cache.go will be picked\n\t// This means that the LRUCacheSize has to be greater than 0.\n\tLRUCacheSize int\n\t// The burst size used by the token bucket rate filtering in EventSourceObjectSpamFilter\n\t// If not specified (zero value), the default specified in events_cache.go will be picked\n\t// This means that the BurstSize has to be greater than 0.\n\tBurstSize int\n\t// The fill rate of the token bucket in queries per second in EventSourceObjectSpamFilter\n\t// If not specified (zero value), the default specified in events_cache.go will be picked\n\t// This means that the QPS has to be greater than 0.\n\tQPS float32\n\t// The func used by the EventAggregator to group event keys for aggregation\n\t// If not specified (zero value), EventAggregatorByReasonFunc will be used\n\tKeyFunc EventAggregatorKeyFunc\n\t// The func used by the EventAggregator to produced aggregated message\n\t// If not specified (zero value), EventAggregatorByReasonMessageFunc will be used\n\tMessageFunc EventAggregatorMessageFunc\n\t// The number of events in an interval before aggregation happens by the EventAggregator\n\t// If not specified (zero value), the default specified in events_cache.go will be picked\n\t// This means that the MaxEvents has to be greater than 0\n\tMaxEvents int\n\t// The amount of time in seconds that must transpire since the last occurrence of a similar event before it is considered new by the EventAggregator\n\t// If not specified (zero value), the default specified in events_cache.go will be picked\n\t// This means that the MaxIntervalInSeconds has to be greater than 0\n\tMaxIntervalInSeconds int\n\t// The clock used by the EventAggregator to allow for testing\n\t// If not specified (zero value), clock.RealClock{} will be used\n\tClock clock.PassiveClock\n\t// The func used by EventFilterFunc, which returns a key for given event, based on which filtering will take place\n\t// If not specified (zero value), getSpamKey will be used\n\tSpamKeyFunc EventSpamKeyFunc\n}\n\n// EventRecorder knows how to record events on behalf of an EventSource.\ntype EventRecorder interface {\n\t// Event constructs an event from the given information and puts it in the queue for sending.\n\t// 'object' is the object this event is about. Event will make a reference-- or you may also\n\t// pass a reference to the object directly.\n\t// 'eventtype' of this event, and can be one of Normal, Warning. New types could be added in future\n\t// 'reason' is the reason this event is generated. 'reason' should be short and unique; it\n\t// should be in UpperCamelCase format (starting with a capital letter). \"reason\" will be used\n\t// to automate handling of events, so imagine people writing switch statements to handle them.\n\t// You want to make that easy.\n\t// 'message' is intended to be human readable.\n\t//\n\t// The resulting event will be created in the same namespace as the reference object.\n\tEvent(object runtime.Object, eventtype, reason, message string)\n\n\t// Eventf is just like Event, but with Sprintf for the message field.\n\tEventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{})\n\n\t// AnnotatedEventf is just like eventf, but with annotations attached\n\tAnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{})\n}\n\n// EventBroadcaster knows how to receive events and send them to any EventSink, watcher, or log.\ntype EventBroadcaster interface {\n\t// StartEventWatcher starts sending events received from this EventBroadcaster to the given\n\t// event handler function. The return value can be ignored or used to stop recording, if\n\t// desired.\n\tStartEventWatcher(eventHandler func(*v1.Event)) watch.Interface\n\n\t// StartRecordingToSink starts sending events received from this EventBroadcaster to the given\n\t// sink. The return value can be ignored or used to stop recording, if desired.\n\tStartRecordingToSink(sink EventSink) watch.Interface\n\n\t// StartLogging starts sending events received from this EventBroadcaster to the given logging\n\t// function. The return value can be ignored or used to stop recording, if desired.\n\tStartLogging(logf func(format string, args ...interface{})) watch.Interface\n\n\t// StartStructuredLogging starts sending events received from this EventBroadcaster to the structured\n\t// logging function. The return value can be ignored or used to stop recording, if desired.\n\tStartStructuredLogging(verbosity klog.Level) watch.Interface\n\n\t// NewRecorder returns an EventRecorder that can be used to send events to this EventBroadcaster\n\t// with the event source set to the given event source.\n\tNewRecorder(scheme *runtime.Scheme, source v1.EventSource) EventRecorder\n\n\t// Shutdown shuts down the broadcaster. Once the broadcaster is shut\n\t// down, it will only try to record an event in a sink once before\n\t// giving up on it with an error message.\n\tShutdown()\n}\n\n// EventRecorderAdapter is a wrapper around a \"k8s.io/client-go/tools/record\".EventRecorder\n// implementing the new \"k8s.io/client-go/tools/events\".EventRecorder interface.\ntype EventRecorderAdapter struct {\n\trecorder EventRecorder\n}\n\n// NewEventRecorderAdapter returns an adapter implementing the new\n// \"k8s.io/client-go/tools/events\".EventRecorder interface.\nfunc NewEventRecorderAdapter(recorder EventRecorder) *EventRecorderAdapter {\n\treturn &EventRecorderAdapter{\n\t\trecorder: recorder,\n\t}\n}\n\n// Eventf is a wrapper around v1 Eventf\nfunc (a *EventRecorderAdapter) Eventf(regarding, _ runtime.Object, eventtype, reason, action, note string, args ...interface{}) {\n\ta.recorder.Eventf(regarding, eventtype, reason, note, args...)\n}\n\n// Creates a new event broadcaster.\nfunc NewBroadcaster() EventBroadcaster {\n\treturn newEventBroadcaster(watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), defaultSleepDuration)\n}\n\nfunc NewBroadcasterForTests(sleepDuration time.Duration) EventBroadcaster {\n\treturn newEventBroadcaster(watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), sleepDuration)\n}\n\nfunc NewBroadcasterWithCorrelatorOptions(options CorrelatorOptions) EventBroadcaster {\n\teventBroadcaster := newEventBroadcaster(watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), defaultSleepDuration)\n\teventBroadcaster.options = options\n\treturn eventBroadcaster\n}\n\nfunc newEventBroadcaster(broadcaster *watch.Broadcaster, sleepDuration time.Duration) *eventBroadcasterImpl {\n\teventBroadcaster := &eventBroadcasterImpl{\n\t\tBroadcaster:   broadcaster,\n\t\tsleepDuration: sleepDuration,\n\t}\n\teventBroadcaster.cancelationCtx, eventBroadcaster.cancel = context.WithCancel(context.Background())\n\treturn eventBroadcaster\n}\n\ntype eventBroadcasterImpl struct {\n\t*watch.Broadcaster\n\tsleepDuration  time.Duration\n\toptions        CorrelatorOptions\n\tcancelationCtx context.Context\n\tcancel         func()\n}\n\n// StartRecordingToSink starts sending events received from the specified eventBroadcaster to the given sink.\n// The return value can be ignored or used to stop recording, if desired.\n// TODO: make me an object with parameterizable queue length and retry interval\nfunc (e *eventBroadcasterImpl) StartRecordingToSink(sink EventSink) watch.Interface {\n\teventCorrelator := NewEventCorrelatorWithOptions(e.options)\n\treturn e.StartEventWatcher(\n\t\tfunc(event *v1.Event) {\n\t\t\te.recordToSink(sink, event, eventCorrelator)\n\t\t})\n}\n\nfunc (e *eventBroadcasterImpl) Shutdown() {\n\te.Broadcaster.Shutdown()\n\te.cancel()\n}\n\nfunc (e *eventBroadcasterImpl) recordToSink(sink EventSink, event *v1.Event, eventCorrelator *EventCorrelator) {\n\t// Make a copy before modification, because there could be multiple listeners.\n\t// Events are safe to copy like this.\n\teventCopy := *event\n\tevent = &eventCopy\n\tresult, err := eventCorrelator.EventCorrelate(event)\n\tif err != nil {\n\t\tutilruntime.HandleError(err)\n\t}\n\tif result.Skip {\n\t\treturn\n\t}\n\ttries := 0\n\tfor {\n\t\tif recordEvent(sink, result.Event, result.Patch, result.Event.Count > 1, eventCorrelator) {\n\t\t\tbreak\n\t\t}\n\t\ttries++\n\t\tif tries >= maxTriesPerEvent {\n\t\t\tklog.Errorf(\"Unable to write event '%#v' (retry limit exceeded!)\", event)\n\t\t\tbreak\n\t\t}\n\n\t\t// Randomize the first sleep so that various clients won't all be\n\t\t// synced up if the master goes down.\n\t\tdelay := e.sleepDuration\n\t\tif tries == 1 {\n\t\t\tdelay = time.Duration(float64(delay) * rand.Float64())\n\t\t}\n\t\tselect {\n\t\tcase <-e.cancelationCtx.Done():\n\t\t\tklog.Errorf(\"Unable to write event '%#v' (broadcaster is shut down)\", event)\n\t\t\treturn\n\t\tcase <-time.After(delay):\n\t\t}\n\t}\n}\n\n// recordEvent attempts to write event to a sink. It returns true if the event\n// was successfully recorded or discarded, false if it should be retried.\n// If updateExistingEvent is false, it creates a new event, otherwise it updates\n// existing event.\nfunc recordEvent(sink EventSink, event *v1.Event, patch []byte, updateExistingEvent bool, eventCorrelator *EventCorrelator) bool {\n\tvar newEvent *v1.Event\n\tvar err error\n\tif updateExistingEvent {\n\t\tnewEvent, err = sink.Patch(event, patch)\n\t}\n\t// Update can fail because the event may have been removed and it no longer exists.\n\tif !updateExistingEvent || (updateExistingEvent && util.IsKeyNotFoundError(err)) {\n\t\t// Making sure that ResourceVersion is empty on creation\n\t\tevent.ResourceVersion = \"\"\n\t\tnewEvent, err = sink.Create(event)\n\t}\n\tif err == nil {\n\t\t// we need to update our event correlator with the server returned state to handle name/resourceversion\n\t\teventCorrelator.UpdateState(newEvent)\n\t\treturn true\n\t}\n\n\t// If we can't contact the server, then hold everything while we keep trying.\n\t// Otherwise, something about the event is malformed and we should abandon it.\n\tswitch err.(type) {\n\tcase *restclient.RequestConstructionError:\n\t\t// We will construct the request the same next time, so don't keep trying.\n\t\tklog.Errorf(\"Unable to construct event '%#v': '%v' (will not retry!)\", event, err)\n\t\treturn true\n\tcase *errors.StatusError:\n\t\tif errors.IsAlreadyExists(err) {\n\t\t\tklog.V(5).Infof(\"Server rejected event '%#v': '%v' (will not retry!)\", event, err)\n\t\t} else {\n\t\t\tklog.Errorf(\"Server rejected event '%#v': '%v' (will not retry!)\", event, err)\n\t\t}\n\t\treturn true\n\tcase *errors.UnexpectedObjectError:\n\t\t// We don't expect this; it implies the server's response didn't match a\n\t\t// known pattern. Go ahead and retry.\n\tdefault:\n\t\t// This case includes actual http transport errors. Go ahead and retry.\n\t}\n\tklog.Errorf(\"Unable to write event: '%#v': '%v'(may retry after sleeping)\", event, err)\n\treturn false\n}\n\n// StartLogging starts sending events received from this EventBroadcaster to the given logging function.\n// The return value can be ignored or used to stop recording, if desired.\nfunc (e *eventBroadcasterImpl) StartLogging(logf func(format string, args ...interface{})) watch.Interface {\n\treturn e.StartEventWatcher(\n\t\tfunc(e *v1.Event) {\n\t\t\tlogf(\"Event(%#v): type: '%v' reason: '%v' %v\", e.InvolvedObject, e.Type, e.Reason, e.Message)\n\t\t})\n}\n\n// StartStructuredLogging starts sending events received from this EventBroadcaster to the structured logging function.\n// The return value can be ignored or used to stop recording, if desired.\nfunc (e *eventBroadcasterImpl) StartStructuredLogging(verbosity klog.Level) watch.Interface {\n\treturn e.StartEventWatcher(\n\t\tfunc(e *v1.Event) {\n\t\t\tklog.V(verbosity).InfoS(\"Event occurred\", \"object\", klog.KRef(e.InvolvedObject.Namespace, e.InvolvedObject.Name), \"fieldPath\", e.InvolvedObject.FieldPath, \"kind\", e.InvolvedObject.Kind, \"apiVersion\", e.InvolvedObject.APIVersion, \"type\", e.Type, \"reason\", e.Reason, \"message\", e.Message)\n\t\t})\n}\n\n// StartEventWatcher starts sending events received from this EventBroadcaster to the given event handler function.\n// The return value can be ignored or used to stop recording, if desired.\nfunc (e *eventBroadcasterImpl) StartEventWatcher(eventHandler func(*v1.Event)) watch.Interface {\n\twatcher, err := e.Watch()\n\tif err != nil {\n\t\tklog.Errorf(\"Unable start event watcher: '%v' (will not retry!)\", err)\n\t}\n\tgo func() {\n\t\tdefer utilruntime.HandleCrash()\n\t\tfor watchEvent := range watcher.ResultChan() {\n\t\t\tevent, ok := watchEvent.Object.(*v1.Event)\n\t\t\tif !ok {\n\t\t\t\t// This is all local, so there's no reason this should\n\t\t\t\t// ever happen.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\teventHandler(event)\n\t\t}\n\t}()\n\treturn watcher\n}\n\n// NewRecorder returns an EventRecorder that records events with the given event source.\nfunc (e *eventBroadcasterImpl) NewRecorder(scheme *runtime.Scheme, source v1.EventSource) EventRecorder {\n\treturn &recorderImpl{scheme, source, e.Broadcaster, clock.RealClock{}}\n}\n\ntype recorderImpl struct {\n\tscheme *runtime.Scheme\n\tsource v1.EventSource\n\t*watch.Broadcaster\n\tclock clock.PassiveClock\n}\n\nfunc (recorder *recorderImpl) generateEvent(object runtime.Object, annotations map[string]string, eventtype, reason, message string) {\n\tref, err := ref.GetReference(recorder.scheme, object)\n\tif err != nil {\n\t\tklog.Errorf(\"Could not construct reference to: '%#v' due to: '%v'. Will not report event: '%v' '%v' '%v'\", object, err, eventtype, reason, message)\n\t\treturn\n\t}\n\n\tif !util.ValidateEventType(eventtype) {\n\t\tklog.Errorf(\"Unsupported event type: '%v'\", eventtype)\n\t\treturn\n\t}\n\n\tevent := recorder.makeEvent(ref, annotations, eventtype, reason, message)\n\tevent.Source = recorder.source\n\n\t// NOTE: events should be a non-blocking operation, but we also need to not\n\t// put this in a goroutine, otherwise we'll race to write to a closed channel\n\t// when we go to shut down this broadcaster.  Just drop events if we get overloaded,\n\t// and log an error if that happens (we've configured the broadcaster to drop\n\t// outgoing events anyway).\n\tsent, err := recorder.ActionOrDrop(watch.Added, event)\n\tif err != nil {\n\t\tklog.Errorf(\"unable to record event: %v (will not retry!)\", err)\n\t\treturn\n\t}\n\tif !sent {\n\t\tklog.Errorf(\"unable to record event: too many queued events, dropped event %#v\", event)\n\t}\n}\n\nfunc (recorder *recorderImpl) Event(object runtime.Object, eventtype, reason, message string) {\n\trecorder.generateEvent(object, nil, eventtype, reason, message)\n}\n\nfunc (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {\n\trecorder.Event(object, eventtype, reason, fmt.Sprintf(messageFmt, args...))\n}\n\nfunc (recorder *recorderImpl) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {\n\trecorder.generateEvent(object, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))\n}\n\nfunc (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map[string]string, eventtype, reason, message string) *v1.Event {\n\tt := metav1.Time{Time: recorder.clock.Now()}\n\tnamespace := ref.Namespace\n\tif namespace == \"\" {\n\t\tnamespace = metav1.NamespaceDefault\n\t}\n\treturn &v1.Event{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName:        fmt.Sprintf(\"%v.%x\", ref.Name, t.UnixNano()),\n\t\t\tNamespace:   namespace,\n\t\t\tAnnotations: annotations,\n\t\t},\n\t\tInvolvedObject: *ref,\n\t\tReason:         reason,\n\t\tMessage:        message,\n\t\tFirstTimestamp: t,\n\t\tLastTimestamp:  t,\n\t\tCount:          1,\n\t\tType:           eventtype,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/events_cache.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage record\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/groupcache/lru\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/strategicpatch\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/utils/clock\"\n)\n\nconst (\n\tmaxLruCacheEntries = 4096\n\n\t// if we see the same event that varies only by message\n\t// more than 10 times in a 10 minute period, aggregate the event\n\tdefaultAggregateMaxEvents         = 10\n\tdefaultAggregateIntervalInSeconds = 600\n\n\t// by default, allow a source to send 25 events about an object\n\t// but control the refill rate to 1 new event every 5 minutes\n\t// this helps control the long-tail of events for things that are always\n\t// unhealthy\n\tdefaultSpamBurst = 25\n\tdefaultSpamQPS   = 1. / 300.\n)\n\n// getEventKey builds unique event key based on source, involvedObject, reason, message\nfunc getEventKey(event *v1.Event) string {\n\treturn strings.Join([]string{\n\t\tevent.Source.Component,\n\t\tevent.Source.Host,\n\t\tevent.InvolvedObject.Kind,\n\t\tevent.InvolvedObject.Namespace,\n\t\tevent.InvolvedObject.Name,\n\t\tevent.InvolvedObject.FieldPath,\n\t\tstring(event.InvolvedObject.UID),\n\t\tevent.InvolvedObject.APIVersion,\n\t\tevent.Type,\n\t\tevent.Reason,\n\t\tevent.Message,\n\t},\n\t\t\"\")\n}\n\n// getSpamKey builds unique event key based on source, involvedObject\nfunc getSpamKey(event *v1.Event) string {\n\treturn strings.Join([]string{\n\t\tevent.Source.Component,\n\t\tevent.Source.Host,\n\t\tevent.InvolvedObject.Kind,\n\t\tevent.InvolvedObject.Namespace,\n\t\tevent.InvolvedObject.Name,\n\t\tstring(event.InvolvedObject.UID),\n\t\tevent.InvolvedObject.APIVersion,\n\t},\n\t\t\"\")\n}\n\n// EventSpamKeyFunc is a function that returns unique key based on provided event\ntype EventSpamKeyFunc func(event *v1.Event) string\n\n// EventFilterFunc is a function that returns true if the event should be skipped\ntype EventFilterFunc func(event *v1.Event) bool\n\n// EventSourceObjectSpamFilter is responsible for throttling\n// the amount of events a source and object can produce.\ntype EventSourceObjectSpamFilter struct {\n\tsync.RWMutex\n\n\t// the cache that manages last synced state\n\tcache *lru.Cache\n\n\t// burst is the amount of events we allow per source + object\n\tburst int\n\n\t// qps is the refill rate of the token bucket in queries per second\n\tqps float32\n\n\t// clock is used to allow for testing over a time interval\n\tclock clock.PassiveClock\n\n\t// spamKeyFunc is a func used to create a key based on an event, which is later used to filter spam events.\n\tspamKeyFunc EventSpamKeyFunc\n}\n\n// NewEventSourceObjectSpamFilter allows burst events from a source about an object with the specified qps refill.\nfunc NewEventSourceObjectSpamFilter(lruCacheSize, burst int, qps float32, clock clock.PassiveClock, spamKeyFunc EventSpamKeyFunc) *EventSourceObjectSpamFilter {\n\treturn &EventSourceObjectSpamFilter{\n\t\tcache:       lru.New(lruCacheSize),\n\t\tburst:       burst,\n\t\tqps:         qps,\n\t\tclock:       clock,\n\t\tspamKeyFunc: spamKeyFunc,\n\t}\n}\n\n// spamRecord holds data used to perform spam filtering decisions.\ntype spamRecord struct {\n\t// rateLimiter controls the rate of events about this object\n\trateLimiter flowcontrol.PassiveRateLimiter\n}\n\n// Filter controls that a given source+object are not exceeding the allowed rate.\nfunc (f *EventSourceObjectSpamFilter) Filter(event *v1.Event) bool {\n\tvar record spamRecord\n\n\t// controls our cached information about this event\n\teventKey := f.spamKeyFunc(event)\n\n\t// do we have a record of similar events in our cache?\n\tf.Lock()\n\tdefer f.Unlock()\n\tvalue, found := f.cache.Get(eventKey)\n\tif found {\n\t\trecord = value.(spamRecord)\n\t}\n\n\t// verify we have a rate limiter for this record\n\tif record.rateLimiter == nil {\n\t\trecord.rateLimiter = flowcontrol.NewTokenBucketPassiveRateLimiterWithClock(f.qps, f.burst, f.clock)\n\t}\n\n\t// ensure we have available rate\n\tfilter := !record.rateLimiter.TryAccept()\n\n\t// update the cache\n\tf.cache.Add(eventKey, record)\n\n\treturn filter\n}\n\n// EventAggregatorKeyFunc is responsible for grouping events for aggregation\n// It returns a tuple of the following:\n// aggregateKey - key the identifies the aggregate group to bucket this event\n// localKey - key that makes this event in the local group\ntype EventAggregatorKeyFunc func(event *v1.Event) (aggregateKey string, localKey string)\n\n// EventAggregatorByReasonFunc aggregates events by exact match on event.Source, event.InvolvedObject, event.Type,\n// event.Reason, event.ReportingController and event.ReportingInstance\nfunc EventAggregatorByReasonFunc(event *v1.Event) (string, string) {\n\treturn strings.Join([]string{\n\t\tevent.Source.Component,\n\t\tevent.Source.Host,\n\t\tevent.InvolvedObject.Kind,\n\t\tevent.InvolvedObject.Namespace,\n\t\tevent.InvolvedObject.Name,\n\t\tstring(event.InvolvedObject.UID),\n\t\tevent.InvolvedObject.APIVersion,\n\t\tevent.Type,\n\t\tevent.Reason,\n\t\tevent.ReportingController,\n\t\tevent.ReportingInstance,\n\t},\n\t\t\"\"), event.Message\n}\n\n// EventAggregatorMessageFunc is responsible for producing an aggregation message\ntype EventAggregatorMessageFunc func(event *v1.Event) string\n\n// EventAggregatorByReasonMessageFunc returns an aggregate message by prefixing the incoming message\nfunc EventAggregatorByReasonMessageFunc(event *v1.Event) string {\n\treturn \"(combined from similar events): \" + event.Message\n}\n\n// EventAggregator identifies similar events and aggregates them into a single event\ntype EventAggregator struct {\n\tsync.RWMutex\n\n\t// The cache that manages aggregation state\n\tcache *lru.Cache\n\n\t// The function that groups events for aggregation\n\tkeyFunc EventAggregatorKeyFunc\n\n\t// The function that generates a message for an aggregate event\n\tmessageFunc EventAggregatorMessageFunc\n\n\t// The maximum number of events in the specified interval before aggregation occurs\n\tmaxEvents uint\n\n\t// The amount of time in seconds that must transpire since the last occurrence of a similar event before it's considered new\n\tmaxIntervalInSeconds uint\n\n\t// clock is used to allow for testing over a time interval\n\tclock clock.PassiveClock\n}\n\n// NewEventAggregator returns a new instance of an EventAggregator\nfunc NewEventAggregator(lruCacheSize int, keyFunc EventAggregatorKeyFunc, messageFunc EventAggregatorMessageFunc,\n\tmaxEvents int, maxIntervalInSeconds int, clock clock.PassiveClock) *EventAggregator {\n\treturn &EventAggregator{\n\t\tcache:                lru.New(lruCacheSize),\n\t\tkeyFunc:              keyFunc,\n\t\tmessageFunc:          messageFunc,\n\t\tmaxEvents:            uint(maxEvents),\n\t\tmaxIntervalInSeconds: uint(maxIntervalInSeconds),\n\t\tclock:                clock,\n\t}\n}\n\n// aggregateRecord holds data used to perform aggregation decisions\ntype aggregateRecord struct {\n\t// we track the number of unique local keys we have seen in the aggregate set to know when to actually aggregate\n\t// if the size of this set exceeds the max, we know we need to aggregate\n\tlocalKeys sets.String\n\t// The last time at which the aggregate was recorded\n\tlastTimestamp metav1.Time\n}\n\n// EventAggregate checks if a similar event has been seen according to the\n// aggregation configuration (max events, max interval, etc) and returns:\n//\n//   - The (potentially modified) event that should be created\n//   - The cache key for the event, for correlation purposes. This will be set to\n//     the full key for normal events, and to the result of\n//     EventAggregatorMessageFunc for aggregate events.\nfunc (e *EventAggregator) EventAggregate(newEvent *v1.Event) (*v1.Event, string) {\n\tnow := metav1.NewTime(e.clock.Now())\n\tvar record aggregateRecord\n\t// eventKey is the full cache key for this event\n\teventKey := getEventKey(newEvent)\n\t// aggregateKey is for the aggregate event, if one is needed.\n\taggregateKey, localKey := e.keyFunc(newEvent)\n\n\t// Do we have a record of similar events in our cache?\n\te.Lock()\n\tdefer e.Unlock()\n\tvalue, found := e.cache.Get(aggregateKey)\n\tif found {\n\t\trecord = value.(aggregateRecord)\n\t}\n\n\t// Is the previous record too old? If so, make a fresh one. Note: if we didn't\n\t// find a similar record, its lastTimestamp will be the zero value, so we\n\t// create a new one in that case.\n\tmaxInterval := time.Duration(e.maxIntervalInSeconds) * time.Second\n\tinterval := now.Time.Sub(record.lastTimestamp.Time)\n\tif interval > maxInterval {\n\t\trecord = aggregateRecord{localKeys: sets.NewString()}\n\t}\n\n\t// Write the new event into the aggregation record and put it on the cache\n\trecord.localKeys.Insert(localKey)\n\trecord.lastTimestamp = now\n\te.cache.Add(aggregateKey, record)\n\n\t// If we are not yet over the threshold for unique events, don't correlate them\n\tif uint(record.localKeys.Len()) < e.maxEvents {\n\t\treturn newEvent, eventKey\n\t}\n\n\t// do not grow our local key set any larger than max\n\trecord.localKeys.PopAny()\n\n\t// create a new aggregate event, and return the aggregateKey as the cache key\n\t// (so that it can be overwritten.)\n\teventCopy := &v1.Event{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName:      fmt.Sprintf(\"%v.%x\", newEvent.InvolvedObject.Name, now.UnixNano()),\n\t\t\tNamespace: newEvent.Namespace,\n\t\t},\n\t\tCount:          1,\n\t\tFirstTimestamp: now,\n\t\tInvolvedObject: newEvent.InvolvedObject,\n\t\tLastTimestamp:  now,\n\t\tMessage:        e.messageFunc(newEvent),\n\t\tType:           newEvent.Type,\n\t\tReason:         newEvent.Reason,\n\t\tSource:         newEvent.Source,\n\t}\n\treturn eventCopy, aggregateKey\n}\n\n// eventLog records data about when an event was observed\ntype eventLog struct {\n\t// The number of times the event has occurred since first occurrence.\n\tcount uint\n\n\t// The time at which the event was first recorded.\n\tfirstTimestamp metav1.Time\n\n\t// The unique name of the first occurrence of this event\n\tname string\n\n\t// Resource version returned from previous interaction with server\n\tresourceVersion string\n}\n\n// eventLogger logs occurrences of an event\ntype eventLogger struct {\n\tsync.RWMutex\n\tcache *lru.Cache\n\tclock clock.PassiveClock\n}\n\n// newEventLogger observes events and counts their frequencies\nfunc newEventLogger(lruCacheEntries int, clock clock.PassiveClock) *eventLogger {\n\treturn &eventLogger{cache: lru.New(lruCacheEntries), clock: clock}\n}\n\n// eventObserve records an event, or updates an existing one if key is a cache hit\nfunc (e *eventLogger) eventObserve(newEvent *v1.Event, key string) (*v1.Event, []byte, error) {\n\tvar (\n\t\tpatch []byte\n\t\terr   error\n\t)\n\teventCopy := *newEvent\n\tevent := &eventCopy\n\n\te.Lock()\n\tdefer e.Unlock()\n\n\t// Check if there is an existing event we should update\n\tlastObservation := e.lastEventObservationFromCache(key)\n\n\t// If we found a result, prepare a patch\n\tif lastObservation.count > 0 {\n\t\t// update the event based on the last observation so patch will work as desired\n\t\tevent.Name = lastObservation.name\n\t\tevent.ResourceVersion = lastObservation.resourceVersion\n\t\tevent.FirstTimestamp = lastObservation.firstTimestamp\n\t\tevent.Count = int32(lastObservation.count) + 1\n\n\t\teventCopy2 := *event\n\t\teventCopy2.Count = 0\n\t\teventCopy2.LastTimestamp = metav1.NewTime(time.Unix(0, 0))\n\t\teventCopy2.Message = \"\"\n\n\t\tnewData, _ := json.Marshal(event)\n\t\toldData, _ := json.Marshal(eventCopy2)\n\t\tpatch, err = strategicpatch.CreateTwoWayMergePatch(oldData, newData, event)\n\t}\n\n\t// record our new observation\n\te.cache.Add(\n\t\tkey,\n\t\teventLog{\n\t\t\tcount:           uint(event.Count),\n\t\t\tfirstTimestamp:  event.FirstTimestamp,\n\t\t\tname:            event.Name,\n\t\t\tresourceVersion: event.ResourceVersion,\n\t\t},\n\t)\n\treturn event, patch, err\n}\n\n// updateState updates its internal tracking information based on latest server state\nfunc (e *eventLogger) updateState(event *v1.Event) {\n\tkey := getEventKey(event)\n\te.Lock()\n\tdefer e.Unlock()\n\t// record our new observation\n\te.cache.Add(\n\t\tkey,\n\t\teventLog{\n\t\t\tcount:           uint(event.Count),\n\t\t\tfirstTimestamp:  event.FirstTimestamp,\n\t\t\tname:            event.Name,\n\t\t\tresourceVersion: event.ResourceVersion,\n\t\t},\n\t)\n}\n\n// lastEventObservationFromCache returns the event from the cache, reads must be protected via external lock\nfunc (e *eventLogger) lastEventObservationFromCache(key string) eventLog {\n\tvalue, ok := e.cache.Get(key)\n\tif ok {\n\t\tobservationValue, ok := value.(eventLog)\n\t\tif ok {\n\t\t\treturn observationValue\n\t\t}\n\t}\n\treturn eventLog{}\n}\n\n// EventCorrelator processes all incoming events and performs analysis to avoid overwhelming the system.  It can filter all\n// incoming events to see if the event should be filtered from further processing.  It can aggregate similar events that occur\n// frequently to protect the system from spamming events that are difficult for users to distinguish.  It performs de-duplication\n// to ensure events that are observed multiple times are compacted into a single event with increasing counts.\ntype EventCorrelator struct {\n\t// the function to filter the event\n\tfilterFunc EventFilterFunc\n\t// the object that performs event aggregation\n\taggregator *EventAggregator\n\t// the object that observes events as they come through\n\tlogger *eventLogger\n}\n\n// EventCorrelateResult is the result of a Correlate\ntype EventCorrelateResult struct {\n\t// the event after correlation\n\tEvent *v1.Event\n\t// if provided, perform a strategic patch when updating the record on the server\n\tPatch []byte\n\t// if true, do no further processing of the event\n\tSkip bool\n}\n\n// NewEventCorrelator returns an EventCorrelator configured with default values.\n//\n// The EventCorrelator is responsible for event filtering, aggregating, and counting\n// prior to interacting with the API server to record the event.\n//\n// The default behavior is as follows:\n//   - Aggregation is performed if a similar event is recorded 10 times\n//     in a 10 minute rolling interval.  A similar event is an event that varies only by\n//     the Event.Message field.  Rather than recording the precise event, aggregation\n//     will create a new event whose message reports that it has combined events with\n//     the same reason.\n//   - Events are incrementally counted if the exact same event is encountered multiple\n//     times.\n//   - A source may burst 25 events about an object, but has a refill rate budget\n//     per object of 1 event every 5 minutes to control long-tail of spam.\nfunc NewEventCorrelator(clock clock.PassiveClock) *EventCorrelator {\n\tcacheSize := maxLruCacheEntries\n\tspamFilter := NewEventSourceObjectSpamFilter(cacheSize, defaultSpamBurst, defaultSpamQPS, clock, getSpamKey)\n\treturn &EventCorrelator{\n\t\tfilterFunc: spamFilter.Filter,\n\t\taggregator: NewEventAggregator(\n\t\t\tcacheSize,\n\t\t\tEventAggregatorByReasonFunc,\n\t\t\tEventAggregatorByReasonMessageFunc,\n\t\t\tdefaultAggregateMaxEvents,\n\t\t\tdefaultAggregateIntervalInSeconds,\n\t\t\tclock),\n\n\t\tlogger: newEventLogger(cacheSize, clock),\n\t}\n}\n\nfunc NewEventCorrelatorWithOptions(options CorrelatorOptions) *EventCorrelator {\n\toptionsWithDefaults := populateDefaults(options)\n\tspamFilter := NewEventSourceObjectSpamFilter(\n\t\toptionsWithDefaults.LRUCacheSize,\n\t\toptionsWithDefaults.BurstSize,\n\t\toptionsWithDefaults.QPS,\n\t\toptionsWithDefaults.Clock,\n\t\toptionsWithDefaults.SpamKeyFunc)\n\treturn &EventCorrelator{\n\t\tfilterFunc: spamFilter.Filter,\n\t\taggregator: NewEventAggregator(\n\t\t\toptionsWithDefaults.LRUCacheSize,\n\t\t\toptionsWithDefaults.KeyFunc,\n\t\t\toptionsWithDefaults.MessageFunc,\n\t\t\toptionsWithDefaults.MaxEvents,\n\t\t\toptionsWithDefaults.MaxIntervalInSeconds,\n\t\t\toptionsWithDefaults.Clock),\n\t\tlogger: newEventLogger(optionsWithDefaults.LRUCacheSize, optionsWithDefaults.Clock),\n\t}\n}\n\n// populateDefaults populates the zero value options with defaults\nfunc populateDefaults(options CorrelatorOptions) CorrelatorOptions {\n\tif options.LRUCacheSize == 0 {\n\t\toptions.LRUCacheSize = maxLruCacheEntries\n\t}\n\tif options.BurstSize == 0 {\n\t\toptions.BurstSize = defaultSpamBurst\n\t}\n\tif options.QPS == 0 {\n\t\toptions.QPS = defaultSpamQPS\n\t}\n\tif options.KeyFunc == nil {\n\t\toptions.KeyFunc = EventAggregatorByReasonFunc\n\t}\n\tif options.MessageFunc == nil {\n\t\toptions.MessageFunc = EventAggregatorByReasonMessageFunc\n\t}\n\tif options.MaxEvents == 0 {\n\t\toptions.MaxEvents = defaultAggregateMaxEvents\n\t}\n\tif options.MaxIntervalInSeconds == 0 {\n\t\toptions.MaxIntervalInSeconds = defaultAggregateIntervalInSeconds\n\t}\n\tif options.Clock == nil {\n\t\toptions.Clock = clock.RealClock{}\n\t}\n\tif options.SpamKeyFunc == nil {\n\t\toptions.SpamKeyFunc = getSpamKey\n\t}\n\treturn options\n}\n\n// EventCorrelate filters, aggregates, counts, and de-duplicates all incoming events\nfunc (c *EventCorrelator) EventCorrelate(newEvent *v1.Event) (*EventCorrelateResult, error) {\n\tif newEvent == nil {\n\t\treturn nil, fmt.Errorf(\"event is nil\")\n\t}\n\taggregateEvent, ckey := c.aggregator.EventAggregate(newEvent)\n\tobservedEvent, patch, err := c.logger.eventObserve(aggregateEvent, ckey)\n\tif c.filterFunc(observedEvent) {\n\t\treturn &EventCorrelateResult{Skip: true}, nil\n\t}\n\treturn &EventCorrelateResult{Event: observedEvent, Patch: patch}, err\n}\n\n// UpdateState based on the latest observed state from server\nfunc (c *EventCorrelator) UpdateState(event *v1.Event) {\n\tc.logger.updateState(event)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/fake.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage record\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// FakeRecorder is used as a fake during tests. It is thread safe. It is usable\n// when created manually and not by NewFakeRecorder, however all events may be\n// thrown away in this case.\ntype FakeRecorder struct {\n\tEvents chan string\n\n\tIncludeObject bool\n}\n\nfunc objectString(object runtime.Object, includeObject bool) string {\n\tif !includeObject {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\" involvedObject{kind=%s,apiVersion=%s}\",\n\t\tobject.GetObjectKind().GroupVersionKind().Kind,\n\t\tobject.GetObjectKind().GroupVersionKind().GroupVersion(),\n\t)\n}\n\nfunc annotationsString(annotations map[string]string) string {\n\tif len(annotations) == 0 {\n\t\treturn \"\"\n\t} else {\n\t\treturn \" \" + fmt.Sprint(annotations)\n\t}\n}\n\nfunc (f *FakeRecorder) writeEvent(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {\n\tif f.Events != nil {\n\t\tf.Events <- fmt.Sprintf(eventtype+\" \"+reason+\" \"+messageFmt, args...) +\n\t\t\tobjectString(object, f.IncludeObject) + annotationsString(annotations)\n\t}\n}\n\nfunc (f *FakeRecorder) Event(object runtime.Object, eventtype, reason, message string) {\n\tf.writeEvent(object, nil, eventtype, reason, \"%s\", message)\n}\n\nfunc (f *FakeRecorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {\n\tf.writeEvent(object, nil, eventtype, reason, messageFmt, args...)\n}\n\nfunc (f *FakeRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {\n\tf.writeEvent(object, annotations, eventtype, reason, messageFmt, args...)\n}\n\n// NewFakeRecorder creates new fake event recorder with event channel with\n// buffer of given size.\nfunc NewFakeRecorder(bufferSize int) *FakeRecorder {\n\treturn &FakeRecorder{\n\t\tEvents: make(chan string, bufferSize),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/record/util/util.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\nimport (\n\t\"net/http\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n)\n\n// ValidateEventType checks that eventtype is an expected type of event\nfunc ValidateEventType(eventtype string) bool {\n\tswitch eventtype {\n\tcase v1.EventTypeNormal, v1.EventTypeWarning:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsKeyNotFoundError is utility function that checks if an error is not found error\nfunc IsKeyNotFoundError(err error) bool {\n\tstatusErr, _ := err.(*errors.StatusError)\n\n\treturn statusErr != nil && statusErr.Status().Code == http.StatusNotFound\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/reference/ref.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage reference\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar (\n\t// Errors that could be returned by GetReference.\n\tErrNilObject = errors.New(\"can't reference a nil object\")\n)\n\n// GetReference returns an ObjectReference which refers to the given\n// object, or an error if the object doesn't follow the conventions\n// that would allow this.\n// TODO: should take a meta.Interface see https://issue.k8s.io/7127\nfunc GetReference(scheme *runtime.Scheme, obj runtime.Object) (*v1.ObjectReference, error) {\n\tif obj == nil {\n\t\treturn nil, ErrNilObject\n\t}\n\tif ref, ok := obj.(*v1.ObjectReference); ok {\n\t\t// Don't make a reference to a reference.\n\t\treturn ref, nil\n\t}\n\n\t// An object that implements only List has enough metadata to build a reference\n\tvar listMeta metav1.Common\n\tobjectMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tlistMeta, err = meta.CommonAccessor(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tlistMeta = objectMeta\n\t}\n\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\n\t// If object meta doesn't contain data about kind and/or version,\n\t// we are falling back to scheme.\n\t//\n\t// TODO: This doesn't work for CRDs, which are not registered in scheme.\n\tif gvk.Empty() {\n\t\tgvks, _, err := scheme.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif len(gvks) == 0 || gvks[0].Empty() {\n\t\t\treturn nil, fmt.Errorf(\"unexpected gvks registered for object %T: %v\", obj, gvks)\n\t\t}\n\t\t// TODO: The same object can be registered for multiple group versions\n\t\t// (although in practise this doesn't seem to be used).\n\t\t// In such case, the version set may not be correct.\n\t\tgvk = gvks[0]\n\t}\n\n\tkind := gvk.Kind\n\tversion := gvk.GroupVersion().String()\n\n\t// only has list metadata\n\tif objectMeta == nil {\n\t\treturn &v1.ObjectReference{\n\t\t\tKind:            kind,\n\t\t\tAPIVersion:      version,\n\t\t\tResourceVersion: listMeta.GetResourceVersion(),\n\t\t}, nil\n\t}\n\n\treturn &v1.ObjectReference{\n\t\tKind:            kind,\n\t\tAPIVersion:      version,\n\t\tName:            objectMeta.GetName(),\n\t\tNamespace:       objectMeta.GetNamespace(),\n\t\tUID:             objectMeta.GetUID(),\n\t\tResourceVersion: objectMeta.GetResourceVersion(),\n\t}, nil\n}\n\n// GetPartialReference is exactly like GetReference, but allows you to set the FieldPath.\nfunc GetPartialReference(scheme *runtime.Scheme, obj runtime.Object, fieldPath string) (*v1.ObjectReference, error) {\n\tref, err := GetReference(scheme, obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tref.FieldPath = fieldPath\n\treturn ref, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - liggitt\n  - caesarxuchao\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cache.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n)\n\n// TlsTransportCache caches TLS http.RoundTrippers different configurations. The\n// same RoundTripper will be returned for configs with identical TLS options If\n// the config has no custom TLS options, http.DefaultTransport is returned.\ntype tlsTransportCache struct {\n\tmu         sync.Mutex\n\ttransports map[tlsCacheKey]*http.Transport\n}\n\n// DialerStopCh is stop channel that is passed down to dynamic cert dialer.\n// It's exposed as variable for testing purposes to avoid testing for goroutine\n// leakages.\nvar DialerStopCh = wait.NeverStop\n\nconst idleConnsPerHost = 25\n\nvar tlsCache = &tlsTransportCache{transports: make(map[tlsCacheKey]*http.Transport)}\n\ntype tlsCacheKey struct {\n\tinsecure           bool\n\tcaData             string\n\tcertData           string\n\tkeyData            string `datapolicy:\"security-key\"`\n\tcertFile           string\n\tkeyFile            string\n\tserverName         string\n\tnextProtos         string\n\tdisableCompression bool\n\t// these functions are wrapped to allow them to be used as map keys\n\tgetCert *GetCertHolder\n\tdial    *DialHolder\n}\n\nfunc (t tlsCacheKey) String() string {\n\tkeyText := \"<none>\"\n\tif len(t.keyData) > 0 {\n\t\tkeyText = \"<redacted>\"\n\t}\n\treturn fmt.Sprintf(\"insecure:%v, caData:%#v, certData:%#v, keyData:%s, serverName:%s, disableCompression:%t, getCert:%p, dial:%p\",\n\t\tt.insecure, t.caData, t.certData, keyText, t.serverName, t.disableCompression, t.getCert, t.dial)\n}\n\nfunc (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) {\n\tkey, canCache, err := tlsConfigKey(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif canCache {\n\t\t// Ensure we only create a single transport for the given TLS options\n\t\tc.mu.Lock()\n\t\tdefer c.mu.Unlock()\n\n\t\t// See if we already have a custom transport for this config\n\t\tif t, ok := c.transports[key]; ok {\n\t\t\treturn t, nil\n\t\t}\n\t}\n\n\t// Get the TLS options for this client config\n\ttlsConfig, err := TLSConfigFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// The options didn't require a custom TLS config\n\tif tlsConfig == nil && config.DialHolder == nil && config.Proxy == nil {\n\t\treturn http.DefaultTransport, nil\n\t}\n\n\tvar dial func(ctx context.Context, network, address string) (net.Conn, error)\n\tif config.DialHolder != nil {\n\t\tdial = config.DialHolder.Dial\n\t} else {\n\t\tdial = (&net.Dialer{\n\t\t\tTimeout:   30 * time.Second,\n\t\t\tKeepAlive: 30 * time.Second,\n\t\t}).DialContext\n\t}\n\n\t// If we use are reloading files, we need to handle certificate rotation properly\n\t// TODO(jackkleeman): We can also add rotation here when config.HasCertCallback() is true\n\tif config.TLS.ReloadTLSFiles && tlsConfig != nil && tlsConfig.GetClientCertificate != nil {\n\t\tdynamicCertDialer := certRotatingDialer(tlsConfig.GetClientCertificate, dial)\n\t\ttlsConfig.GetClientCertificate = dynamicCertDialer.GetClientCertificate\n\t\tdial = dynamicCertDialer.connDialer.DialContext\n\t\tgo dynamicCertDialer.Run(DialerStopCh)\n\t}\n\n\tproxy := http.ProxyFromEnvironment\n\tif config.Proxy != nil {\n\t\tproxy = config.Proxy\n\t}\n\n\ttransport := utilnet.SetTransportDefaults(&http.Transport{\n\t\tProxy:               proxy,\n\t\tTLSHandshakeTimeout: 10 * time.Second,\n\t\tTLSClientConfig:     tlsConfig,\n\t\tMaxIdleConnsPerHost: idleConnsPerHost,\n\t\tDialContext:         dial,\n\t\tDisableCompression:  config.DisableCompression,\n\t})\n\n\tif canCache {\n\t\t// Cache a single transport for these options\n\t\tc.transports[key] = transport\n\t}\n\n\treturn transport, nil\n}\n\n// tlsConfigKey returns a unique key for tls.Config objects returned from TLSConfigFor\nfunc tlsConfigKey(c *Config) (tlsCacheKey, bool, error) {\n\t// Make sure ca/key/cert content is loaded\n\tif err := loadTLSFiles(c); err != nil {\n\t\treturn tlsCacheKey{}, false, err\n\t}\n\n\tif c.Proxy != nil {\n\t\t// cannot determine equality for functions\n\t\treturn tlsCacheKey{}, false, nil\n\t}\n\n\tk := tlsCacheKey{\n\t\tinsecure:           c.TLS.Insecure,\n\t\tcaData:             string(c.TLS.CAData),\n\t\tserverName:         c.TLS.ServerName,\n\t\tnextProtos:         strings.Join(c.TLS.NextProtos, \",\"),\n\t\tdisableCompression: c.DisableCompression,\n\t\tgetCert:            c.TLS.GetCertHolder,\n\t\tdial:               c.DialHolder,\n\t}\n\n\tif c.TLS.ReloadTLSFiles {\n\t\tk.certFile = c.TLS.CertFile\n\t\tk.keyFile = c.TLS.KeyFile\n\t} else {\n\t\tk.certData = string(c.TLS.CertData)\n\t\tk.keyData = string(c.TLS.KeyData)\n\t}\n\n\treturn k, true, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cache_go118.go",
    "content": "//go:build go1.18\n\n/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\n// assert at compile time that tlsCacheKey is comparable in a way that will never panic at runtime.\nvar _ = isComparable[tlsCacheKey]\n\nfunc isComparable[T comparable]() {}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cert_rotation.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/client-go/util/connrotation\"\n\t\"k8s.io/client-go/util/workqueue\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst workItemKey = \"key\"\n\n// CertCallbackRefreshDuration is exposed so that integration tests can crank up the reload speed.\nvar CertCallbackRefreshDuration = 5 * time.Minute\n\ntype reloadFunc func(*tls.CertificateRequestInfo) (*tls.Certificate, error)\n\ntype dynamicClientCert struct {\n\tclientCert *tls.Certificate\n\tcertMtx    sync.RWMutex\n\n\treload     reloadFunc\n\tconnDialer *connrotation.Dialer\n\n\t// queue only ever has one item, but it has nice error handling backoff/retry semantics\n\tqueue workqueue.RateLimitingInterface\n}\n\nfunc certRotatingDialer(reload reloadFunc, dial utilnet.DialFunc) *dynamicClientCert {\n\td := &dynamicClientCert{\n\t\treload:     reload,\n\t\tconnDialer: connrotation.NewDialer(connrotation.DialFunc(dial)),\n\t\tqueue:      workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), \"DynamicClientCertificate\"),\n\t}\n\n\treturn d\n}\n\n// loadClientCert calls the callback and rotates connections if needed\nfunc (c *dynamicClientCert) loadClientCert() (*tls.Certificate, error) {\n\tcert, err := c.reload(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// check to see if we have a change. If the values are the same, do nothing.\n\tc.certMtx.RLock()\n\thaveCert := c.clientCert != nil\n\tif certsEqual(c.clientCert, cert) {\n\t\tc.certMtx.RUnlock()\n\t\treturn c.clientCert, nil\n\t}\n\tc.certMtx.RUnlock()\n\n\tc.certMtx.Lock()\n\tc.clientCert = cert\n\tc.certMtx.Unlock()\n\n\t// The first certificate requested is not a rotation that is worth closing connections for\n\tif !haveCert {\n\t\treturn cert, nil\n\t}\n\n\tklog.V(1).Infof(\"certificate rotation detected, shutting down client connections to start using new credentials\")\n\tc.connDialer.CloseAll()\n\n\treturn cert, nil\n}\n\n// certsEqual compares tls Certificates, ignoring the Leaf which may get filled in dynamically\nfunc certsEqual(left, right *tls.Certificate) bool {\n\tif left == nil || right == nil {\n\t\treturn left == right\n\t}\n\n\tif !byteMatrixEqual(left.Certificate, right.Certificate) {\n\t\treturn false\n\t}\n\n\tif !reflect.DeepEqual(left.PrivateKey, right.PrivateKey) {\n\t\treturn false\n\t}\n\n\tif !byteMatrixEqual(left.SignedCertificateTimestamps, right.SignedCertificateTimestamps) {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(left.OCSPStaple, right.OCSPStaple) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc byteMatrixEqual(left, right [][]byte) bool {\n\tif len(left) != len(right) {\n\t\treturn false\n\t}\n\n\tfor i := range left {\n\t\tif !bytes.Equal(left[i], right[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// run starts the controller and blocks until stopCh is closed.\nfunc (c *dynamicClientCert) Run(stopCh <-chan struct{}) {\n\tdefer utilruntime.HandleCrash()\n\tdefer c.queue.ShutDown()\n\n\tklog.V(3).Infof(\"Starting client certificate rotation controller\")\n\tdefer klog.V(3).Infof(\"Shutting down client certificate rotation controller\")\n\n\tgo wait.Until(c.runWorker, time.Second, stopCh)\n\n\tgo wait.PollImmediateUntil(CertCallbackRefreshDuration, func() (bool, error) {\n\t\tc.queue.Add(workItemKey)\n\t\treturn false, nil\n\t}, stopCh)\n\n\t<-stopCh\n}\n\nfunc (c *dynamicClientCert) runWorker() {\n\tfor c.processNextWorkItem() {\n\t}\n}\n\nfunc (c *dynamicClientCert) processNextWorkItem() bool {\n\tdsKey, quit := c.queue.Get()\n\tif quit {\n\t\treturn false\n\t}\n\tdefer c.queue.Done(dsKey)\n\n\t_, err := c.loadClientCert()\n\tif err == nil {\n\t\tc.queue.Forget(dsKey)\n\t\treturn true\n\t}\n\n\tutilruntime.HandleError(fmt.Errorf(\"%v failed with : %v\", dsKey, err))\n\tc.queue.AddRateLimited(dsKey)\n\n\treturn true\n}\n\nfunc (c *dynamicClientCert) GetClientCertificate(*tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\treturn c.loadClientCert()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/config.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n)\n\n// Config holds various options for establishing a transport.\ntype Config struct {\n\t// UserAgent is an optional field that specifies the caller of this\n\t// request.\n\tUserAgent string\n\n\t// The base TLS configuration for this transport.\n\tTLS TLSConfig\n\n\t// Username and password for basic authentication\n\tUsername string\n\tPassword string `datapolicy:\"password\"`\n\n\t// Bearer token for authentication\n\tBearerToken string `datapolicy:\"token\"`\n\n\t// Path to a file containing a BearerToken.\n\t// If set, the contents are periodically read.\n\t// The last successfully read value takes precedence over BearerToken.\n\tBearerTokenFile string\n\n\t// Impersonate is the config that this Config will impersonate using\n\tImpersonate ImpersonationConfig\n\n\t// DisableCompression bypasses automatic GZip compression requests to the\n\t// server.\n\tDisableCompression bool\n\n\t// Transport may be used for custom HTTP behavior. This attribute may\n\t// not be specified with the TLS client certificate options. Use\n\t// WrapTransport for most client level operations.\n\tTransport http.RoundTripper\n\n\t// WrapTransport will be invoked for custom HTTP behavior after the\n\t// underlying transport is initialized (either the transport created\n\t// from TLSClientConfig, Transport, or http.DefaultTransport). The\n\t// config may layer other RoundTrippers on top of the returned\n\t// RoundTripper.\n\t//\n\t// A future release will change this field to an array. Use config.Wrap()\n\t// instead of setting this value directly.\n\tWrapTransport WrapperFunc\n\n\t// DialHolder specifies the dial function for creating unencrypted TCP connections.\n\t// This struct indirection is used to make transport configs cacheable.\n\tDialHolder *DialHolder\n\n\t// Proxy is the proxy func to be used for all requests made by this\n\t// transport. If Proxy is nil, http.ProxyFromEnvironment is used. If Proxy\n\t// returns a nil *URL, no proxy is used.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints.\n\tProxy func(*http.Request) (*url.URL, error)\n}\n\n// DialHolder is used to make the wrapped function comparable so that it can be used as a map key.\ntype DialHolder struct {\n\tDial func(ctx context.Context, network, address string) (net.Conn, error)\n}\n\n// ImpersonationConfig has all the available impersonation options\ntype ImpersonationConfig struct {\n\t// UserName matches user.Info.GetName()\n\tUserName string\n\t// UID matches user.Info.GetUID()\n\tUID string\n\t// Groups matches user.Info.GetGroups()\n\tGroups []string\n\t// Extra matches user.Info.GetExtra()\n\tExtra map[string][]string\n}\n\n// HasCA returns whether the configuration has a certificate authority or not.\nfunc (c *Config) HasCA() bool {\n\treturn len(c.TLS.CAData) > 0 || len(c.TLS.CAFile) > 0\n}\n\n// HasBasicAuth returns whether the configuration has basic authentication or not.\nfunc (c *Config) HasBasicAuth() bool {\n\treturn len(c.Username) != 0\n}\n\n// HasTokenAuth returns whether the configuration has token authentication or not.\nfunc (c *Config) HasTokenAuth() bool {\n\treturn len(c.BearerToken) != 0 || len(c.BearerTokenFile) != 0\n}\n\n// HasCertAuth returns whether the configuration has certificate authentication or not.\nfunc (c *Config) HasCertAuth() bool {\n\treturn (len(c.TLS.CertData) != 0 || len(c.TLS.CertFile) != 0) && (len(c.TLS.KeyData) != 0 || len(c.TLS.KeyFile) != 0)\n}\n\n// HasCertCallback returns whether the configuration has certificate callback or not.\nfunc (c *Config) HasCertCallback() bool {\n\treturn c.TLS.GetCertHolder != nil\n}\n\n// Wrap adds a transport middleware function that will give the caller\n// an opportunity to wrap the underlying http.RoundTripper prior to the\n// first API call being made. The provided function is invoked after any\n// existing transport wrappers are invoked.\nfunc (c *Config) Wrap(fn WrapperFunc) {\n\tc.WrapTransport = Wrappers(c.WrapTransport, fn)\n}\n\n// TLSConfig holds the information needed to set up a TLS transport.\ntype TLSConfig struct {\n\tCAFile         string // Path of the PEM-encoded server trusted root certificates.\n\tCertFile       string // Path of the PEM-encoded client certificate.\n\tKeyFile        string // Path of the PEM-encoded client key.\n\tReloadTLSFiles bool   // Set to indicate that the original config provided files, and that they should be reloaded\n\n\tInsecure   bool   // Server should be accessed without verifying the certificate. For testing only.\n\tServerName string // Override for the server name passed to the server for SNI and used to verify certificates.\n\n\tCAData   []byte // Bytes of the PEM-encoded server trusted root certificates. Supercedes CAFile.\n\tCertData []byte // Bytes of the PEM-encoded client certificate. Supercedes CertFile.\n\tKeyData  []byte // Bytes of the PEM-encoded client key. Supercedes KeyFile.\n\n\t// NextProtos is a list of supported application level protocols, in order of preference.\n\t// Used to populate tls.Config.NextProtos.\n\t// To indicate to the server http/1.1 is preferred over http/2, set to [\"http/1.1\", \"h2\"] (though the server is free to ignore that preference).\n\t// To use only http/1.1, set to [\"http/1.1\"].\n\tNextProtos []string\n\n\t// Callback that returns a TLS client certificate. CertData, CertFile, KeyData and KeyFile supercede this field.\n\t// This struct indirection is used to make transport configs cacheable.\n\tGetCertHolder *GetCertHolder\n}\n\n// GetCertHolder is used to make the wrapped function comparable so that it can be used as a map key.\ntype GetCertHolder struct {\n\tGetCert func() (*tls.Certificate, error)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/round_trippers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// HTTPWrappersForConfig wraps a round tripper with any relevant layered\n// behavior from the config. Exposed to allow more clients that need HTTP-like\n// behavior but then must hijack the underlying connection (like WebSocket or\n// HTTP2 clients). Pure HTTP clients should use the RoundTripper returned from\n// New.\nfunc HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTripper, error) {\n\tif config.WrapTransport != nil {\n\t\trt = config.WrapTransport(rt)\n\t}\n\n\trt = DebugWrappers(rt)\n\n\t// Set authentication wrappers\n\tswitch {\n\tcase config.HasBasicAuth() && config.HasTokenAuth():\n\t\treturn nil, fmt.Errorf(\"username/password or bearer token may be set, but not both\")\n\tcase config.HasTokenAuth():\n\t\tvar err error\n\t\trt, err = NewBearerAuthWithRefreshRoundTripper(config.BearerToken, config.BearerTokenFile, rt)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tcase config.HasBasicAuth():\n\t\trt = NewBasicAuthRoundTripper(config.Username, config.Password, rt)\n\t}\n\tif len(config.UserAgent) > 0 {\n\t\trt = NewUserAgentRoundTripper(config.UserAgent, rt)\n\t}\n\tif len(config.Impersonate.UserName) > 0 ||\n\t\tlen(config.Impersonate.UID) > 0 ||\n\t\tlen(config.Impersonate.Groups) > 0 ||\n\t\tlen(config.Impersonate.Extra) > 0 {\n\t\trt = NewImpersonatingRoundTripper(config.Impersonate, rt)\n\t}\n\treturn rt, nil\n}\n\n// DebugWrappers wraps a round tripper and logs based on the current log level.\nfunc DebugWrappers(rt http.RoundTripper) http.RoundTripper {\n\tswitch {\n\tcase bool(klog.V(9).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugCurlCommand, DebugURLTiming, DebugDetailedTiming, DebugResponseHeaders)\n\tcase bool(klog.V(8).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus, DebugResponseHeaders)\n\tcase bool(klog.V(7).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus)\n\tcase bool(klog.V(6).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugURLTiming)\n\t}\n\n\treturn rt\n}\n\ntype authProxyRoundTripper struct {\n\tusername string\n\tgroups   []string\n\textra    map[string][]string\n\n\trt http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &authProxyRoundTripper{}\n\n// NewAuthProxyRoundTripper provides a roundtripper which will add auth proxy fields to requests for\n// authentication terminating proxy cases\n// assuming you pull the user from the context:\n// username is the user.Info.GetName() of the user\n// groups is the user.Info.GetGroups() of the user\n// extra is the user.Info.GetExtra() of the user\n// extra can contain any additional information that the authenticator\n// thought was interesting, for example authorization scopes.\n// In order to faithfully round-trip through an impersonation flow, these keys\n// MUST be lowercase.\nfunc NewAuthProxyRoundTripper(username string, groups []string, extra map[string][]string, rt http.RoundTripper) http.RoundTripper {\n\treturn &authProxyRoundTripper{\n\t\tusername: username,\n\t\tgroups:   groups,\n\t\textra:    extra,\n\t\trt:       rt,\n\t}\n}\n\nfunc (rt *authProxyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\treq = utilnet.CloneRequest(req)\n\tSetAuthProxyHeaders(req, rt.username, rt.groups, rt.extra)\n\n\treturn rt.rt.RoundTrip(req)\n}\n\n// SetAuthProxyHeaders stomps the auth proxy header fields.  It mutates its argument.\nfunc SetAuthProxyHeaders(req *http.Request, username string, groups []string, extra map[string][]string) {\n\treq.Header.Del(\"X-Remote-User\")\n\treq.Header.Del(\"X-Remote-Group\")\n\tfor key := range req.Header {\n\t\tif strings.HasPrefix(strings.ToLower(key), strings.ToLower(\"X-Remote-Extra-\")) {\n\t\t\treq.Header.Del(key)\n\t\t}\n\t}\n\n\treq.Header.Set(\"X-Remote-User\", username)\n\tfor _, group := range groups {\n\t\treq.Header.Add(\"X-Remote-Group\", group)\n\t}\n\tfor key, values := range extra {\n\t\tfor _, value := range values {\n\t\t\treq.Header.Add(\"X-Remote-Extra-\"+headerKeyEscape(key), value)\n\t\t}\n\t}\n}\n\nfunc (rt *authProxyRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *authProxyRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\ntype userAgentRoundTripper struct {\n\tagent string\n\trt    http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &userAgentRoundTripper{}\n\n// NewUserAgentRoundTripper will add User-Agent header to a request unless it has already been set.\nfunc NewUserAgentRoundTripper(agent string, rt http.RoundTripper) http.RoundTripper {\n\treturn &userAgentRoundTripper{agent, rt}\n}\n\nfunc (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"User-Agent\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.Header.Set(\"User-Agent\", rt.agent)\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *userAgentRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *userAgentRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\ntype basicAuthRoundTripper struct {\n\tusername string\n\tpassword string `datapolicy:\"password\"`\n\trt       http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &basicAuthRoundTripper{}\n\n// NewBasicAuthRoundTripper will apply a BASIC auth authorization header to a\n// request unless it has already been set.\nfunc NewBasicAuthRoundTripper(username, password string, rt http.RoundTripper) http.RoundTripper {\n\treturn &basicAuthRoundTripper{username, password, rt}\n}\n\nfunc (rt *basicAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"Authorization\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.SetBasicAuth(rt.username, rt.password)\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *basicAuthRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *basicAuthRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\n// These correspond to the headers used in pkg/apis/authentication.  We don't want the package dependency,\n// but you must not change the values.\nconst (\n\t// ImpersonateUserHeader is used to impersonate a particular user during an API server request\n\tImpersonateUserHeader = \"Impersonate-User\"\n\n\t// ImpersonateUIDHeader is used to impersonate a particular UID during an API server request\n\tImpersonateUIDHeader = \"Impersonate-Uid\"\n\n\t// ImpersonateGroupHeader is used to impersonate a particular group during an API server request.\n\t// It can be repeated multiplied times for multiple groups.\n\tImpersonateGroupHeader = \"Impersonate-Group\"\n\n\t// ImpersonateUserExtraHeaderPrefix is a prefix for a header used to impersonate an entry in the\n\t// extra map[string][]string for user.Info.  The key for the `extra` map is suffix.\n\t// The same key can be repeated multiple times to have multiple elements in the slice under a single key.\n\t// For instance:\n\t// Impersonate-Extra-Foo: one\n\t// Impersonate-Extra-Foo: two\n\t// results in extra[\"Foo\"] = []string{\"one\", \"two\"}\n\tImpersonateUserExtraHeaderPrefix = \"Impersonate-Extra-\"\n)\n\ntype impersonatingRoundTripper struct {\n\timpersonate ImpersonationConfig\n\tdelegate    http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &impersonatingRoundTripper{}\n\n// NewImpersonatingRoundTripper will add an Act-As header to a request unless it has already been set.\nfunc NewImpersonatingRoundTripper(impersonate ImpersonationConfig, delegate http.RoundTripper) http.RoundTripper {\n\treturn &impersonatingRoundTripper{impersonate, delegate}\n}\n\nfunc (rt *impersonatingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// use the user header as marker for the rest.\n\tif len(req.Header.Get(ImpersonateUserHeader)) != 0 {\n\t\treturn rt.delegate.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.Header.Set(ImpersonateUserHeader, rt.impersonate.UserName)\n\tif rt.impersonate.UID != \"\" {\n\t\treq.Header.Set(ImpersonateUIDHeader, rt.impersonate.UID)\n\t}\n\tfor _, group := range rt.impersonate.Groups {\n\t\treq.Header.Add(ImpersonateGroupHeader, group)\n\t}\n\tfor k, vv := range rt.impersonate.Extra {\n\t\tfor _, v := range vv {\n\t\t\treq.Header.Add(ImpersonateUserExtraHeaderPrefix+headerKeyEscape(k), v)\n\t\t}\n\t}\n\n\treturn rt.delegate.RoundTrip(req)\n}\n\nfunc (rt *impersonatingRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *impersonatingRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.delegate }\n\ntype bearerAuthRoundTripper struct {\n\tbearer string\n\tsource oauth2.TokenSource\n\trt     http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &bearerAuthRoundTripper{}\n\n// NewBearerAuthRoundTripper adds the provided bearer token to a request\n// unless the authorization header has already been set.\nfunc NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper {\n\treturn &bearerAuthRoundTripper{bearer, nil, rt}\n}\n\n// NewBearerAuthWithRefreshRoundTripper adds the provided bearer token to a request\n// unless the authorization header has already been set.\n// If tokenFile is non-empty, it is periodically read,\n// and the last successfully read content is used as the bearer token.\n// If tokenFile is non-empty and bearer is empty, the tokenFile is read\n// immediately to populate the initial bearer token.\nfunc NewBearerAuthWithRefreshRoundTripper(bearer string, tokenFile string, rt http.RoundTripper) (http.RoundTripper, error) {\n\tif len(tokenFile) == 0 {\n\t\treturn &bearerAuthRoundTripper{bearer, nil, rt}, nil\n\t}\n\tsource := NewCachedFileTokenSource(tokenFile)\n\tif len(bearer) == 0 {\n\t\ttoken, err := source.Token()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbearer = token.AccessToken\n\t}\n\treturn &bearerAuthRoundTripper{bearer, source, rt}, nil\n}\n\nfunc (rt *bearerAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"Authorization\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\n\treq = utilnet.CloneRequest(req)\n\ttoken := rt.bearer\n\tif rt.source != nil {\n\t\tif refreshedToken, err := rt.source.Token(); err == nil {\n\t\t\ttoken = refreshedToken.AccessToken\n\t\t}\n\t}\n\treq.Header.Set(\"Authorization\", fmt.Sprintf(\"Bearer %s\", token))\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *bearerAuthRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *bearerAuthRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\n// requestInfo keeps track of information about a request/response combination\ntype requestInfo struct {\n\tRequestHeaders http.Header `datapolicy:\"token\"`\n\tRequestVerb    string\n\tRequestURL     string\n\n\tResponseStatus  string\n\tResponseHeaders http.Header\n\tResponseErr     error\n\n\tmuTrace          sync.Mutex // Protect trace fields\n\tDNSLookup        time.Duration\n\tDialing          time.Duration\n\tGetConnection    time.Duration\n\tTLSHandshake     time.Duration\n\tServerProcessing time.Duration\n\tConnectionReused bool\n\n\tDuration time.Duration\n}\n\n// newRequestInfo creates a new RequestInfo based on an http request\nfunc newRequestInfo(req *http.Request) *requestInfo {\n\treturn &requestInfo{\n\t\tRequestURL:     req.URL.String(),\n\t\tRequestVerb:    req.Method,\n\t\tRequestHeaders: req.Header,\n\t}\n}\n\n// complete adds information about the response to the requestInfo\nfunc (r *requestInfo) complete(response *http.Response, err error) {\n\tif err != nil {\n\t\tr.ResponseErr = err\n\t\treturn\n\t}\n\tr.ResponseStatus = response.Status\n\tr.ResponseHeaders = response.Header\n}\n\n// toCurl returns a string that can be run as a command in a terminal (minus the body)\nfunc (r *requestInfo) toCurl() string {\n\theaders := \"\"\n\tfor key, values := range r.RequestHeaders {\n\t\tfor _, value := range values {\n\t\t\tvalue = maskValue(key, value)\n\t\t\theaders += fmt.Sprintf(` -H %q`, fmt.Sprintf(\"%s: %s\", key, value))\n\t\t}\n\t}\n\n\treturn fmt.Sprintf(\"curl -v -X%s %s '%s'\", r.RequestVerb, headers, r.RequestURL)\n}\n\n// debuggingRoundTripper will display information about the requests passing\n// through it based on what is configured\ntype debuggingRoundTripper struct {\n\tdelegatedRoundTripper http.RoundTripper\n\tlevels                map[DebugLevel]bool\n}\n\nvar _ utilnet.RoundTripperWrapper = &debuggingRoundTripper{}\n\n// DebugLevel is used to enable debugging of certain\n// HTTP requests and responses fields via the debuggingRoundTripper.\ntype DebugLevel int\n\nconst (\n\t// DebugJustURL will add to the debug output HTTP requests method and url.\n\tDebugJustURL DebugLevel = iota\n\t// DebugURLTiming will add to the debug output the duration of HTTP requests.\n\tDebugURLTiming\n\t// DebugCurlCommand will add to the debug output the curl command equivalent to the\n\t// HTTP request.\n\tDebugCurlCommand\n\t// DebugRequestHeaders will add to the debug output the HTTP requests headers.\n\tDebugRequestHeaders\n\t// DebugResponseStatus will add to the debug output the HTTP response status.\n\tDebugResponseStatus\n\t// DebugResponseHeaders will add to the debug output the HTTP response headers.\n\tDebugResponseHeaders\n\t// DebugDetailedTiming will add to the debug output the duration of the HTTP requests events.\n\tDebugDetailedTiming\n)\n\n// NewDebuggingRoundTripper allows to display in the logs output debug information\n// on the API requests performed by the client.\nfunc NewDebuggingRoundTripper(rt http.RoundTripper, levels ...DebugLevel) http.RoundTripper {\n\tdrt := &debuggingRoundTripper{\n\t\tdelegatedRoundTripper: rt,\n\t\tlevels:                make(map[DebugLevel]bool, len(levels)),\n\t}\n\tfor _, v := range levels {\n\t\tdrt.levels[v] = true\n\t}\n\treturn drt\n}\n\nfunc (rt *debuggingRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nvar knownAuthTypes = map[string]bool{\n\t\"bearer\":    true,\n\t\"basic\":     true,\n\t\"negotiate\": true,\n}\n\n// maskValue masks credential content from authorization headers\n// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization\nfunc maskValue(key string, value string) string {\n\tif !strings.EqualFold(key, \"Authorization\") {\n\t\treturn value\n\t}\n\tif len(value) == 0 {\n\t\treturn \"\"\n\t}\n\tvar authType string\n\tif i := strings.Index(value, \" \"); i > 0 {\n\t\tauthType = value[0:i]\n\t} else {\n\t\tauthType = value\n\t}\n\tif !knownAuthTypes[strings.ToLower(authType)] {\n\t\treturn \"<masked>\"\n\t}\n\tif len(value) > len(authType)+1 {\n\t\tvalue = authType + \" <masked>\"\n\t} else {\n\t\tvalue = authType\n\t}\n\treturn value\n}\n\nfunc (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\treqInfo := newRequestInfo(req)\n\n\tif rt.levels[DebugJustURL] {\n\t\tklog.Infof(\"%s %s\", reqInfo.RequestVerb, reqInfo.RequestURL)\n\t}\n\tif rt.levels[DebugCurlCommand] {\n\t\tklog.Infof(\"%s\", reqInfo.toCurl())\n\t}\n\tif rt.levels[DebugRequestHeaders] {\n\t\tklog.Info(\"Request Headers:\")\n\t\tfor key, values := range reqInfo.RequestHeaders {\n\t\t\tfor _, value := range values {\n\t\t\t\tvalue = maskValue(key, value)\n\t\t\t\tklog.Infof(\"    %s: %s\", key, value)\n\t\t\t}\n\t\t}\n\t}\n\n\tstartTime := time.Now()\n\n\tif rt.levels[DebugDetailedTiming] {\n\t\tvar getConn, dnsStart, dialStart, tlsStart, serverStart time.Time\n\t\tvar host string\n\t\ttrace := &httptrace.ClientTrace{\n\t\t\t// DNS\n\t\t\tDNSStart: func(info httptrace.DNSStartInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tdnsStart = time.Now()\n\t\t\t\thost = info.Host\n\t\t\t},\n\t\t\tDNSDone: func(info httptrace.DNSDoneInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.DNSLookup = time.Since(dnsStart)\n\t\t\t\tklog.Infof(\"HTTP Trace: DNS Lookup for %s resolved to %v\", host, info.Addrs)\n\t\t\t},\n\t\t\t// Dial\n\t\t\tConnectStart: func(network, addr string) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tdialStart = time.Now()\n\t\t\t},\n\t\t\tConnectDone: func(network, addr string, err error) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.Dialing = time.Since(dialStart)\n\t\t\t\tif err != nil {\n\t\t\t\t\tklog.Infof(\"HTTP Trace: Dial to %s:%s failed: %v\", network, addr, err)\n\t\t\t\t} else {\n\t\t\t\t\tklog.Infof(\"HTTP Trace: Dial to %s:%s succeed\", network, addr)\n\t\t\t\t}\n\t\t\t},\n\t\t\t// TLS\n\t\t\tTLSHandshakeStart: func() {\n\t\t\t\ttlsStart = time.Now()\n\t\t\t},\n\t\t\tTLSHandshakeDone: func(_ tls.ConnectionState, _ error) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.TLSHandshake = time.Since(tlsStart)\n\t\t\t},\n\t\t\t// Connection (it can be DNS + Dial or just the time to get one from the connection pool)\n\t\t\tGetConn: func(hostPort string) {\n\t\t\t\tgetConn = time.Now()\n\t\t\t},\n\t\t\tGotConn: func(info httptrace.GotConnInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.GetConnection = time.Since(getConn)\n\t\t\t\treqInfo.ConnectionReused = info.Reused\n\t\t\t},\n\t\t\t// Server Processing (time since we wrote the request until first byte is received)\n\t\t\tWroteRequest: func(info httptrace.WroteRequestInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tserverStart = time.Now()\n\t\t\t},\n\t\t\tGotFirstResponseByte: func() {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.ServerProcessing = time.Since(serverStart)\n\t\t\t},\n\t\t}\n\t\treq = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))\n\t}\n\n\tresponse, err := rt.delegatedRoundTripper.RoundTrip(req)\n\treqInfo.Duration = time.Since(startTime)\n\n\treqInfo.complete(response, err)\n\n\tif rt.levels[DebugURLTiming] {\n\t\tklog.Infof(\"%s %s %s in %d milliseconds\", reqInfo.RequestVerb, reqInfo.RequestURL, reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t}\n\tif rt.levels[DebugDetailedTiming] {\n\t\tstats := \"\"\n\t\tif !reqInfo.ConnectionReused {\n\t\t\tstats += fmt.Sprintf(`DNSLookup %d ms Dial %d ms TLSHandshake %d ms`,\n\t\t\t\treqInfo.DNSLookup.Nanoseconds()/int64(time.Millisecond),\n\t\t\t\treqInfo.Dialing.Nanoseconds()/int64(time.Millisecond),\n\t\t\t\treqInfo.TLSHandshake.Nanoseconds()/int64(time.Millisecond),\n\t\t\t)\n\t\t} else {\n\t\t\tstats += fmt.Sprintf(`GetConnection %d ms`, reqInfo.GetConnection.Nanoseconds()/int64(time.Millisecond))\n\t\t}\n\t\tif reqInfo.ServerProcessing != 0 {\n\t\t\tstats += fmt.Sprintf(` ServerProcessing %d ms`, reqInfo.ServerProcessing.Nanoseconds()/int64(time.Millisecond))\n\t\t}\n\t\tstats += fmt.Sprintf(` Duration %d ms`, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t\tklog.Infof(\"HTTP Statistics: %s\", stats)\n\t}\n\n\tif rt.levels[DebugResponseStatus] {\n\t\tklog.Infof(\"Response Status: %s in %d milliseconds\", reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t}\n\tif rt.levels[DebugResponseHeaders] {\n\t\tklog.Info(\"Response Headers:\")\n\t\tfor key, values := range reqInfo.ResponseHeaders {\n\t\t\tfor _, value := range values {\n\t\t\t\tklog.Infof(\"    %s: %s\", key, value)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn response, err\n}\n\nfunc (rt *debuggingRoundTripper) WrappedRoundTripper() http.RoundTripper {\n\treturn rt.delegatedRoundTripper\n}\n\nfunc legalHeaderByte(b byte) bool {\n\treturn int(b) < len(legalHeaderKeyBytes) && legalHeaderKeyBytes[b]\n}\n\nfunc shouldEscape(b byte) bool {\n\t// url.PathUnescape() returns an error if any '%' is not followed by two\n\t// hexadecimal digits, so we'll intentionally encode it.\n\treturn !legalHeaderByte(b) || b == '%'\n}\n\nfunc headerKeyEscape(key string) string {\n\tbuf := strings.Builder{}\n\tfor i := 0; i < len(key); i++ {\n\t\tb := key[i]\n\t\tif shouldEscape(b) {\n\t\t\t// %-encode bytes that should be escaped:\n\t\t\t// https://tools.ietf.org/html/rfc3986#section-2.1\n\t\t\tfmt.Fprintf(&buf, \"%%%02X\", b)\n\t\t\tcontinue\n\t\t}\n\t\tbuf.WriteByte(b)\n\t}\n\treturn buf.String()\n}\n\n// legalHeaderKeyBytes was copied from net/http/lex.go's isTokenTable.\n// See https://httpwg.github.io/specs/rfc7230.html#rule.token.separators\nvar legalHeaderKeyBytes = [127]bool{\n\t'%':  true,\n\t'!':  true,\n\t'#':  true,\n\t'$':  true,\n\t'&':  true,\n\t'\\'': true,\n\t'*':  true,\n\t'+':  true,\n\t'-':  true,\n\t'.':  true,\n\t'0':  true,\n\t'1':  true,\n\t'2':  true,\n\t'3':  true,\n\t'4':  true,\n\t'5':  true,\n\t'6':  true,\n\t'7':  true,\n\t'8':  true,\n\t'9':  true,\n\t'A':  true,\n\t'B':  true,\n\t'C':  true,\n\t'D':  true,\n\t'E':  true,\n\t'F':  true,\n\t'G':  true,\n\t'H':  true,\n\t'I':  true,\n\t'J':  true,\n\t'K':  true,\n\t'L':  true,\n\t'M':  true,\n\t'N':  true,\n\t'O':  true,\n\t'P':  true,\n\t'Q':  true,\n\t'R':  true,\n\t'S':  true,\n\t'T':  true,\n\t'U':  true,\n\t'W':  true,\n\t'V':  true,\n\t'X':  true,\n\t'Y':  true,\n\t'Z':  true,\n\t'^':  true,\n\t'_':  true,\n\t'`':  true,\n\t'a':  true,\n\t'b':  true,\n\t'c':  true,\n\t'd':  true,\n\t'e':  true,\n\t'f':  true,\n\t'g':  true,\n\t'h':  true,\n\t'i':  true,\n\t'j':  true,\n\t'k':  true,\n\t'l':  true,\n\t'm':  true,\n\t'n':  true,\n\t'o':  true,\n\t'p':  true,\n\t'q':  true,\n\t'r':  true,\n\t's':  true,\n\t't':  true,\n\t'u':  true,\n\t'v':  true,\n\t'w':  true,\n\t'x':  true,\n\t'y':  true,\n\t'z':  true,\n\t'|':  true,\n\t'~':  true,\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/token_source.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// TokenSourceWrapTransport returns a WrapTransport that injects bearer tokens\n// authentication from an oauth2.TokenSource.\nfunc TokenSourceWrapTransport(ts oauth2.TokenSource) func(http.RoundTripper) http.RoundTripper {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &tokenSourceTransport{\n\t\t\tbase: rt,\n\t\t\tort: &oauth2.Transport{\n\t\t\t\tSource: ts,\n\t\t\t\tBase:   rt,\n\t\t\t},\n\t\t}\n\t}\n}\n\ntype ResettableTokenSource interface {\n\toauth2.TokenSource\n\tResetTokenOlderThan(time.Time)\n}\n\n// ResettableTokenSourceWrapTransport returns a WrapTransport that injects bearer tokens\n// authentication from an ResettableTokenSource.\nfunc ResettableTokenSourceWrapTransport(ts ResettableTokenSource) func(http.RoundTripper) http.RoundTripper {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &tokenSourceTransport{\n\t\t\tbase: rt,\n\t\t\tort: &oauth2.Transport{\n\t\t\t\tSource: ts,\n\t\t\t\tBase:   rt,\n\t\t\t},\n\t\t\tsrc: ts,\n\t\t}\n\t}\n}\n\n// NewCachedFileTokenSource returns a resettable token source which reads a\n// token from a file at a specified path and periodically reloads it.\nfunc NewCachedFileTokenSource(path string) *cachingTokenSource {\n\treturn &cachingTokenSource{\n\t\tnow:    time.Now,\n\t\tleeway: 10 * time.Second,\n\t\tbase: &fileTokenSource{\n\t\t\tpath: path,\n\t\t\t// This period was picked because it is half of the duration between when the kubelet\n\t\t\t// refreshes a projected service account token and when the original token expires.\n\t\t\t// Default token lifetime is 10 minutes, and the kubelet starts refreshing at 80% of lifetime.\n\t\t\t// This should induce re-reading at a frequency that works with the token volume source.\n\t\t\tperiod: time.Minute,\n\t\t},\n\t}\n}\n\n// NewCachedTokenSource returns resettable token source with caching. It reads\n// a token from a designed TokenSource if not in cache or expired.\nfunc NewCachedTokenSource(ts oauth2.TokenSource) *cachingTokenSource {\n\treturn &cachingTokenSource{\n\t\tnow:  time.Now,\n\t\tbase: ts,\n\t}\n}\n\ntype tokenSourceTransport struct {\n\tbase http.RoundTripper\n\tort  http.RoundTripper\n\tsrc  ResettableTokenSource\n}\n\nvar _ utilnet.RoundTripperWrapper = &tokenSourceTransport{}\n\nfunc (tst *tokenSourceTransport) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// This is to allow --token to override other bearer token providers.\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\treturn tst.base.RoundTrip(req)\n\t}\n\t// record time before RoundTrip to make sure newly acquired Unauthorized\n\t// token would not be reset. Another request from user is required to reset\n\t// and proceed.\n\tstart := time.Now()\n\tresp, err := tst.ort.RoundTrip(req)\n\tif err == nil && resp != nil && resp.StatusCode == 401 && tst.src != nil {\n\t\ttst.src.ResetTokenOlderThan(start)\n\t}\n\treturn resp, err\n}\n\nfunc (tst *tokenSourceTransport) CancelRequest(req *http.Request) {\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\ttryCancelRequest(tst.base, req)\n\t\treturn\n\t}\n\ttryCancelRequest(tst.ort, req)\n}\n\nfunc (tst *tokenSourceTransport) WrappedRoundTripper() http.RoundTripper { return tst.base }\n\ntype fileTokenSource struct {\n\tpath   string\n\tperiod time.Duration\n}\n\nvar _ = oauth2.TokenSource(&fileTokenSource{})\n\nfunc (ts *fileTokenSource) Token() (*oauth2.Token, error) {\n\ttokb, err := os.ReadFile(ts.path)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read token file %q: %v\", ts.path, err)\n\t}\n\ttok := strings.TrimSpace(string(tokb))\n\tif len(tok) == 0 {\n\t\treturn nil, fmt.Errorf(\"read empty token from file %q\", ts.path)\n\t}\n\n\treturn &oauth2.Token{\n\t\tAccessToken: tok,\n\t\tExpiry:      time.Now().Add(ts.period),\n\t}, nil\n}\n\ntype cachingTokenSource struct {\n\tbase   oauth2.TokenSource\n\tleeway time.Duration\n\n\tsync.RWMutex\n\ttok *oauth2.Token\n\tt   time.Time\n\n\t// for testing\n\tnow func() time.Time\n}\n\nfunc (ts *cachingTokenSource) Token() (*oauth2.Token, error) {\n\tnow := ts.now()\n\t// fast path\n\tts.RLock()\n\ttok := ts.tok\n\tts.RUnlock()\n\n\tif tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {\n\t\treturn tok, nil\n\t}\n\n\t// slow path\n\tts.Lock()\n\tdefer ts.Unlock()\n\tif tok := ts.tok; tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {\n\t\treturn tok, nil\n\t}\n\n\ttok, err := ts.base.Token()\n\tif err != nil {\n\t\tif ts.tok == nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tklog.Errorf(\"Unable to rotate token: %v\", err)\n\t\treturn ts.tok, nil\n\t}\n\n\tts.t = ts.now()\n\tts.tok = tok\n\treturn tok, nil\n}\n\nfunc (ts *cachingTokenSource) ResetTokenOlderThan(t time.Time) {\n\tts.Lock()\n\tdefer ts.Unlock()\n\tif ts.t.Before(t) {\n\t\tts.tok = nil\n\t\tts.t = time.Time{}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/transport.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// New returns an http.RoundTripper that will provide the authentication\n// or transport level security defined by the provided Config.\nfunc New(config *Config) (http.RoundTripper, error) {\n\t// Set transport level security\n\tif config.Transport != nil && (config.HasCA() || config.HasCertAuth() || config.HasCertCallback() || config.TLS.Insecure) {\n\t\treturn nil, fmt.Errorf(\"using a custom transport with TLS certificate options or the insecure flag is not allowed\")\n\t}\n\n\tif !isValidHolders(config) {\n\t\treturn nil, fmt.Errorf(\"misconfigured holder for dialer or cert callback\")\n\t}\n\n\tvar (\n\t\trt  http.RoundTripper\n\t\terr error\n\t)\n\n\tif config.Transport != nil {\n\t\trt = config.Transport\n\t} else {\n\t\trt, err = tlsCache.get(config)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn HTTPWrappersForConfig(config, rt)\n}\n\nfunc isValidHolders(config *Config) bool {\n\tif config.TLS.GetCertHolder != nil && config.TLS.GetCertHolder.GetCert == nil {\n\t\treturn false\n\t}\n\n\tif config.DialHolder != nil && config.DialHolder.Dial == nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// TLSConfigFor returns a tls.Config that will provide the transport level security defined\n// by the provided Config. Will return nil if no transport level security is requested.\nfunc TLSConfigFor(c *Config) (*tls.Config, error) {\n\tif !(c.HasCA() || c.HasCertAuth() || c.HasCertCallback() || c.TLS.Insecure || len(c.TLS.ServerName) > 0 || len(c.TLS.NextProtos) > 0) {\n\t\treturn nil, nil\n\t}\n\tif c.HasCA() && c.TLS.Insecure {\n\t\treturn nil, fmt.Errorf(\"specifying a root certificates file with the insecure flag is not allowed\")\n\t}\n\tif err := loadTLSFiles(c); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttlsConfig := &tls.Config{\n\t\t// Can't use SSLv3 because of POODLE and BEAST\n\t\t// Can't use TLSv1.0 because of POODLE and BEAST using CBC cipher\n\t\t// Can't use TLSv1.1 because of RC4 cipher usage\n\t\tMinVersion:         tls.VersionTLS12,\n\t\tInsecureSkipVerify: c.TLS.Insecure,\n\t\tServerName:         c.TLS.ServerName,\n\t\tNextProtos:         c.TLS.NextProtos,\n\t}\n\n\tif c.HasCA() {\n\t\trootCAs, err := rootCertPool(c.TLS.CAData)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"unable to load root certificates: %w\", err)\n\t\t}\n\t\ttlsConfig.RootCAs = rootCAs\n\t}\n\n\tvar staticCert *tls.Certificate\n\t// Treat cert as static if either key or cert was data, not a file\n\tif c.HasCertAuth() && !c.TLS.ReloadTLSFiles {\n\t\t// If key/cert were provided, verify them before setting up\n\t\t// tlsConfig.GetClientCertificate.\n\t\tcert, err := tls.X509KeyPair(c.TLS.CertData, c.TLS.KeyData)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstaticCert = &cert\n\t}\n\n\tvar dynamicCertLoader func() (*tls.Certificate, error)\n\tif c.TLS.ReloadTLSFiles {\n\t\tdynamicCertLoader = cachingCertificateLoader(c.TLS.CertFile, c.TLS.KeyFile)\n\t}\n\n\tif c.HasCertAuth() || c.HasCertCallback() {\n\t\ttlsConfig.GetClientCertificate = func(*tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\t\t\t// Note: static key/cert data always take precedence over cert\n\t\t\t// callback.\n\t\t\tif staticCert != nil {\n\t\t\t\treturn staticCert, nil\n\t\t\t}\n\t\t\t// key/cert files lead to ReloadTLSFiles being set - takes precedence over cert callback\n\t\t\tif dynamicCertLoader != nil {\n\t\t\t\treturn dynamicCertLoader()\n\t\t\t}\n\t\t\tif c.HasCertCallback() {\n\t\t\t\tcert, err := c.TLS.GetCertHolder.GetCert()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\t// GetCert may return empty value, meaning no cert.\n\t\t\t\tif cert != nil {\n\t\t\t\t\treturn cert, nil\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Both c.TLS.CertData/KeyData were unset and GetCert didn't return\n\t\t\t// anything. Return an empty tls.Certificate, no client cert will\n\t\t\t// be sent to the server.\n\t\t\treturn &tls.Certificate{}, nil\n\t\t}\n\t}\n\n\treturn tlsConfig, nil\n}\n\n// loadTLSFiles copies the data from the CertFile, KeyFile, and CAFile fields into the CertData,\n// KeyData, and CAFile fields, or returns an error. If no error is returned, all three fields are\n// either populated or were empty to start.\nfunc loadTLSFiles(c *Config) error {\n\tvar err error\n\tc.TLS.CAData, err = dataFromSliceOrFile(c.TLS.CAData, c.TLS.CAFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check that we are purely loading from files\n\tif len(c.TLS.CertFile) > 0 && len(c.TLS.CertData) == 0 && len(c.TLS.KeyFile) > 0 && len(c.TLS.KeyData) == 0 {\n\t\tc.TLS.ReloadTLSFiles = true\n\t}\n\n\tc.TLS.CertData, err = dataFromSliceOrFile(c.TLS.CertData, c.TLS.CertFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.TLS.KeyData, err = dataFromSliceOrFile(c.TLS.KeyData, c.TLS.KeyFile)\n\treturn err\n}\n\n// dataFromSliceOrFile returns data from the slice (if non-empty), or from the file,\n// or an error if an error occurred reading the file\nfunc dataFromSliceOrFile(data []byte, file string) ([]byte, error) {\n\tif len(data) > 0 {\n\t\treturn data, nil\n\t}\n\tif len(file) > 0 {\n\t\tfileData, err := os.ReadFile(file)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\treturn fileData, nil\n\t}\n\treturn nil, nil\n}\n\n// rootCertPool returns nil if caData is empty.  When passed along, this will mean \"use system CAs\".\n// When caData is not empty, it will be the ONLY information used in the CertPool.\nfunc rootCertPool(caData []byte) (*x509.CertPool, error) {\n\t// What we really want is a copy of x509.systemRootsPool, but that isn't exposed.  It's difficult to build (see the go\n\t// code for a look at the platform specific insanity), so we'll use the fact that RootCAs == nil gives us the system values\n\t// It doesn't allow trusting either/or, but hopefully that won't be an issue\n\tif len(caData) == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// if we have caData, use it\n\tcertPool := x509.NewCertPool()\n\tif ok := certPool.AppendCertsFromPEM(caData); !ok {\n\t\treturn nil, createErrorParsingCAData(caData)\n\t}\n\treturn certPool, nil\n}\n\n// createErrorParsingCAData ALWAYS returns an error.  We call it because know we failed to AppendCertsFromPEM\n// but we don't know the specific error because that API is just true/false\nfunc createErrorParsingCAData(pemCerts []byte) error {\n\tfor len(pemCerts) > 0 {\n\t\tvar block *pem.Block\n\t\tblock, pemCerts = pem.Decode(pemCerts)\n\t\tif block == nil {\n\t\t\treturn fmt.Errorf(\"unable to parse bytes as PEM block\")\n\t\t}\n\n\t\tif block.Type != \"CERTIFICATE\" || len(block.Headers) != 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, err := x509.ParseCertificate(block.Bytes); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse certificate: %w\", err)\n\t\t}\n\t}\n\treturn fmt.Errorf(\"no valid certificate authority data seen\")\n}\n\n// WrapperFunc wraps an http.RoundTripper when a new transport\n// is created for a client, allowing per connection behavior\n// to be injected.\ntype WrapperFunc func(rt http.RoundTripper) http.RoundTripper\n\n// Wrappers accepts any number of wrappers and returns a wrapper\n// function that is the equivalent of calling each of them in order. Nil\n// values are ignored, which makes this function convenient for incrementally\n// wrapping a function.\nfunc Wrappers(fns ...WrapperFunc) WrapperFunc {\n\tif len(fns) == 0 {\n\t\treturn nil\n\t}\n\t// optimize the common case of wrapping a possibly nil transport wrapper\n\t// with an additional wrapper\n\tif len(fns) == 2 && fns[0] == nil {\n\t\treturn fns[1]\n\t}\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\tbase := rt\n\t\tfor _, fn := range fns {\n\t\t\tif fn != nil {\n\t\t\t\tbase = fn(base)\n\t\t\t}\n\t\t}\n\t\treturn base\n\t}\n}\n\n// ContextCanceller prevents new requests after the provided context is finished.\n// err is returned when the context is closed, allowing the caller to provide a context\n// appropriate error.\nfunc ContextCanceller(ctx context.Context, err error) WrapperFunc {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &contextCanceller{\n\t\t\tctx: ctx,\n\t\t\trt:  rt,\n\t\t\terr: err,\n\t\t}\n\t}\n}\n\ntype contextCanceller struct {\n\tctx context.Context\n\trt  http.RoundTripper\n\terr error\n}\n\nfunc (b *contextCanceller) RoundTrip(req *http.Request) (*http.Response, error) {\n\tselect {\n\tcase <-b.ctx.Done():\n\t\treturn nil, b.err\n\tdefault:\n\t\treturn b.rt.RoundTrip(req)\n\t}\n}\n\nfunc tryCancelRequest(rt http.RoundTripper, req *http.Request) {\n\ttype canceler interface {\n\t\tCancelRequest(*http.Request)\n\t}\n\tswitch rt := rt.(type) {\n\tcase canceler:\n\t\trt.CancelRequest(req)\n\tcase utilnet.RoundTripperWrapper:\n\t\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n\tdefault:\n\t\tklog.Warningf(\"Unable to cancel request for %T\", rt)\n\t}\n}\n\ntype certificateCacheEntry struct {\n\tcert  *tls.Certificate\n\terr   error\n\tbirth time.Time\n}\n\n// isStale returns true when this cache entry is too old to be usable\nfunc (c *certificateCacheEntry) isStale() bool {\n\treturn time.Since(c.birth) > time.Second\n}\n\nfunc newCertificateCacheEntry(certFile, keyFile string) certificateCacheEntry {\n\tcert, err := tls.LoadX509KeyPair(certFile, keyFile)\n\treturn certificateCacheEntry{cert: &cert, err: err, birth: time.Now()}\n}\n\n// cachingCertificateLoader ensures that we don't hammer the filesystem when opening many connections\n// the underlying cert files are read at most once every second\nfunc cachingCertificateLoader(certFile, keyFile string) func() (*tls.Certificate, error) {\n\tcurrent := newCertificateCacheEntry(certFile, keyFile)\n\tvar currentMtx sync.RWMutex\n\n\treturn func() (*tls.Certificate, error) {\n\t\tcurrentMtx.RLock()\n\t\tif current.isStale() {\n\t\t\tcurrentMtx.RUnlock()\n\n\t\t\tcurrentMtx.Lock()\n\t\t\tdefer currentMtx.Unlock()\n\n\t\t\tif current.isStale() {\n\t\t\t\tcurrent = newCertificateCacheEntry(certFile, keyFile)\n\t\t\t}\n\t\t} else {\n\t\t\tdefer currentMtx.RUnlock()\n\t\t}\n\n\t\treturn current.cert, current.err\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - sig-auth-certificates-approvers\nreviewers:\n  - sig-auth-certificates-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/cert.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"bytes\"\n\t\"crypto\"\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"crypto/x509/pkix\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"math/big\"\n\t\"net\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/client-go/util/keyutil\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\nconst duration365d = time.Hour * 24 * 365\n\n// Config contains the basic fields required for creating a certificate\ntype Config struct {\n\tCommonName   string\n\tOrganization []string\n\tAltNames     AltNames\n\tUsages       []x509.ExtKeyUsage\n}\n\n// AltNames contains the domain names and IP addresses that will be added\n// to the API Server's x509 certificate SubAltNames field. The values will\n// be passed directly to the x509.Certificate object.\ntype AltNames struct {\n\tDNSNames []string\n\tIPs      []net.IP\n}\n\n// NewSelfSignedCACert creates a CA certificate\nfunc NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, error) {\n\tnow := time.Now()\n\ttmpl := x509.Certificate{\n\t\tSerialNumber: new(big.Int).SetInt64(0),\n\t\tSubject: pkix.Name{\n\t\t\tCommonName:   cfg.CommonName,\n\t\t\tOrganization: cfg.Organization,\n\t\t},\n\t\tDNSNames:              []string{cfg.CommonName},\n\t\tNotBefore:             now.UTC(),\n\t\tNotAfter:              now.Add(duration365d * 10).UTC(),\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,\n\t\tBasicConstraintsValid: true,\n\t\tIsCA:                  true,\n\t}\n\n\tcertDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &tmpl, &tmpl, key.Public(), key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn x509.ParseCertificate(certDERBytes)\n}\n\n// GenerateSelfSignedCertKey creates a self-signed certificate and key for the given host.\n// Host may be an IP or a DNS name\n// You may also specify additional subject alt names (either ip or dns names) for the certificate.\nfunc GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS []string) ([]byte, []byte, error) {\n\treturn GenerateSelfSignedCertKeyWithFixtures(host, alternateIPs, alternateDNS, \"\")\n}\n\n// GenerateSelfSignedCertKeyWithFixtures creates a self-signed certificate and key for the given host.\n// Host may be an IP or a DNS name. You may also specify additional subject alt names (either ip or dns names)\n// for the certificate.\n//\n// If fixtureDirectory is non-empty, it is a directory path which can contain pre-generated certs. The format is:\n// <host>_<ip>-<ip>_<alternateDNS>-<alternateDNS>.crt\n// <host>_<ip>-<ip>_<alternateDNS>-<alternateDNS>.key\n// Certs/keys not existing in that directory are created.\nfunc GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, alternateDNS []string, fixtureDirectory string) ([]byte, []byte, error) {\n\tvalidFrom := time.Now().Add(-time.Hour) // valid an hour earlier to avoid flakes due to clock skew\n\tmaxAge := time.Hour * 24 * 365          // one year self-signed certs\n\n\tbaseName := fmt.Sprintf(\"%s_%s_%s\", host, strings.Join(ipsToStrings(alternateIPs), \"-\"), strings.Join(alternateDNS, \"-\"))\n\tcertFixturePath := filepath.Join(fixtureDirectory, baseName+\".crt\")\n\tkeyFixturePath := filepath.Join(fixtureDirectory, baseName+\".key\")\n\tif len(fixtureDirectory) > 0 {\n\t\tcert, err := os.ReadFile(certFixturePath)\n\t\tif err == nil {\n\t\t\tkey, err := os.ReadFile(keyFixturePath)\n\t\t\tif err == nil {\n\t\t\t\treturn cert, key, nil\n\t\t\t}\n\t\t\treturn nil, nil, fmt.Errorf(\"cert %s can be read, but key %s cannot: %v\", certFixturePath, keyFixturePath, err)\n\t\t}\n\t\tmaxAge = 100 * time.Hour * 24 * 365 // 100 years fixtures\n\t}\n\n\tcaKey, err := rsa.GenerateKey(cryptorand.Reader, 2048)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tcaTemplate := x509.Certificate{\n\t\tSerialNumber: big.NewInt(1),\n\t\tSubject: pkix.Name{\n\t\t\tCommonName: fmt.Sprintf(\"%s-ca@%d\", host, time.Now().Unix()),\n\t\t},\n\t\tNotBefore: validFrom,\n\t\tNotAfter:  validFrom.Add(maxAge),\n\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,\n\t\tBasicConstraintsValid: true,\n\t\tIsCA:                  true,\n\t}\n\n\tcaDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &caTemplate, &caTemplate, &caKey.PublicKey, caKey)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tcaCertificate, err := x509.ParseCertificate(caDERBytes)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tpriv, err := rsa.GenerateKey(cryptorand.Reader, 2048)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\ttemplate := x509.Certificate{\n\t\tSerialNumber: big.NewInt(2),\n\t\tSubject: pkix.Name{\n\t\t\tCommonName: fmt.Sprintf(\"%s@%d\", host, time.Now().Unix()),\n\t\t},\n\t\tNotBefore: validFrom,\n\t\tNotAfter:  validFrom.Add(maxAge),\n\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,\n\t\tExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},\n\t\tBasicConstraintsValid: true,\n\t}\n\n\tif ip := netutils.ParseIPSloppy(host); ip != nil {\n\t\ttemplate.IPAddresses = append(template.IPAddresses, ip)\n\t} else {\n\t\ttemplate.DNSNames = append(template.DNSNames, host)\n\t}\n\n\ttemplate.IPAddresses = append(template.IPAddresses, alternateIPs...)\n\ttemplate.DNSNames = append(template.DNSNames, alternateDNS...)\n\n\tderBytes, err := x509.CreateCertificate(cryptorand.Reader, &template, caCertificate, &priv.PublicKey, caKey)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// Generate cert, followed by ca\n\tcertBuffer := bytes.Buffer{}\n\tif err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: derBytes}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\tif err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: caDERBytes}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// Generate key\n\tkeyBuffer := bytes.Buffer{}\n\tif err := pem.Encode(&keyBuffer, &pem.Block{Type: keyutil.RSAPrivateKeyBlockType, Bytes: x509.MarshalPKCS1PrivateKey(priv)}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif len(fixtureDirectory) > 0 {\n\t\tif err := os.WriteFile(certFixturePath, certBuffer.Bytes(), 0644); err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to write cert fixture to %s: %v\", certFixturePath, err)\n\t\t}\n\t\tif err := os.WriteFile(keyFixturePath, keyBuffer.Bytes(), 0600); err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to write key fixture to %s: %v\", certFixturePath, err)\n\t\t}\n\t}\n\n\treturn certBuffer.Bytes(), keyBuffer.Bytes(), nil\n}\n\nfunc ipsToStrings(ips []net.IP) []string {\n\tss := make([]string, 0, len(ips))\n\tfor _, ip := range ips {\n\t\tss = append(ss, ip.String())\n\t}\n\treturn ss\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/csr.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"crypto/x509/pkix\"\n\t\"encoding/pem\"\n\t\"net\"\n)\n\n// MakeCSR generates a PEM-encoded CSR using the supplied private key, subject, and SANs.\n// All key types that are implemented via crypto.Signer are supported (This includes *rsa.PrivateKey and *ecdsa.PrivateKey.)\nfunc MakeCSR(privateKey interface{}, subject *pkix.Name, dnsSANs []string, ipSANs []net.IP) (csr []byte, err error) {\n\ttemplate := &x509.CertificateRequest{\n\t\tSubject:     *subject,\n\t\tDNSNames:    dnsSANs,\n\t\tIPAddresses: ipSANs,\n\t}\n\n\treturn MakeCSRFromTemplate(privateKey, template)\n}\n\n// MakeCSRFromTemplate generates a PEM-encoded CSR using the supplied private\n// key and certificate request as a template. All key types that are\n// implemented via crypto.Signer are supported (This includes *rsa.PrivateKey\n// and *ecdsa.PrivateKey.)\nfunc MakeCSRFromTemplate(privateKey interface{}, template *x509.CertificateRequest) ([]byte, error) {\n\tt := *template\n\tt.SignatureAlgorithm = sigType(privateKey)\n\n\tcsrDER, err := x509.CreateCertificateRequest(cryptorand.Reader, &t, privateKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcsrPemBlock := &pem.Block{\n\t\tType:  CertificateRequestBlockType,\n\t\tBytes: csrDER,\n\t}\n\n\treturn pem.EncodeToMemory(csrPemBlock), nil\n}\n\nfunc sigType(privateKey interface{}) x509.SignatureAlgorithm {\n\t// Customize the signature for RSA keys, depending on the key size\n\tif privateKey, ok := privateKey.(*rsa.PrivateKey); ok {\n\t\tkeySize := privateKey.N.BitLen()\n\t\tswitch {\n\t\tcase keySize >= 4096:\n\t\t\treturn x509.SHA512WithRSA\n\t\tcase keySize >= 3072:\n\t\t\treturn x509.SHA384WithRSA\n\t\tdefault:\n\t\t\treturn x509.SHA256WithRSA\n\t\t}\n\t}\n\treturn x509.UnknownSignatureAlgorithm\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/io.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"crypto/x509\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\n// CanReadCertAndKey returns true if the certificate and key files already exists,\n// otherwise returns false. If lost one of cert and key, returns error.\nfunc CanReadCertAndKey(certPath, keyPath string) (bool, error) {\n\tcertReadable := canReadFile(certPath)\n\tkeyReadable := canReadFile(keyPath)\n\n\tif certReadable == false && keyReadable == false {\n\t\treturn false, nil\n\t}\n\n\tif certReadable == false {\n\t\treturn false, fmt.Errorf(\"error reading %s, certificate and key must be supplied as a pair\", certPath)\n\t}\n\n\tif keyReadable == false {\n\t\treturn false, fmt.Errorf(\"error reading %s, certificate and key must be supplied as a pair\", keyPath)\n\t}\n\n\treturn true, nil\n}\n\n// If the file represented by path exists and\n// readable, returns true otherwise returns false.\nfunc canReadFile(path string) bool {\n\tf, err := os.Open(path)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tdefer f.Close()\n\n\treturn true\n}\n\n// WriteCert writes the pem-encoded certificate data to certPath.\n// The certificate file will be created with file mode 0644.\n// If the certificate file already exists, it will be overwritten.\n// The parent directory of the certPath will be created as needed with file mode 0755.\nfunc WriteCert(certPath string, data []byte) error {\n\tif err := os.MkdirAll(filepath.Dir(certPath), os.FileMode(0755)); err != nil {\n\t\treturn err\n\t}\n\treturn os.WriteFile(certPath, data, os.FileMode(0644))\n}\n\n// NewPool returns an x509.CertPool containing the certificates in the given PEM-encoded file.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc NewPool(filename string) (*x509.CertPool, error) {\n\tpemBlock, err := os.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpool, err := NewPoolFromBytes(pemBlock)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating pool from %s: %s\", filename, err)\n\t}\n\treturn pool, nil\n}\n\n// NewPoolFromBytes returns an x509.CertPool containing the certificates in the given PEM-encoded bytes.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc NewPoolFromBytes(pemBlock []byte) (*x509.CertPool, error) {\n\tcerts, err := ParseCertsPEM(pemBlock)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpool := x509.NewCertPool()\n\tfor _, cert := range certs {\n\t\tpool.AddCert(cert)\n\t}\n\treturn pool, nil\n}\n\n// CertsFromFile returns the x509.Certificates contained in the given PEM-encoded file.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc CertsFromFile(file string) ([]*x509.Certificate, error) {\n\tpemBlock, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcerts, err := ParseCertsPEM(pemBlock)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading %s: %s\", file, err)\n\t}\n\treturn certs, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/pem.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"bytes\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n)\n\nconst (\n\t// CertificateBlockType is a possible value for pem.Block.Type.\n\tCertificateBlockType = \"CERTIFICATE\"\n\t// CertificateRequestBlockType is a possible value for pem.Block.Type.\n\tCertificateRequestBlockType = \"CERTIFICATE REQUEST\"\n)\n\n// ParseCertsPEM returns the x509.Certificates contained in the given PEM-encoded byte array\n// Returns an error if a certificate could not be parsed, or if the data does not contain any certificates\nfunc ParseCertsPEM(pemCerts []byte) ([]*x509.Certificate, error) {\n\tok := false\n\tcerts := []*x509.Certificate{}\n\tfor len(pemCerts) > 0 {\n\t\tvar block *pem.Block\n\t\tblock, pemCerts = pem.Decode(pemCerts)\n\t\tif block == nil {\n\t\t\tbreak\n\t\t}\n\t\t// Only use PEM \"CERTIFICATE\" blocks without extra headers\n\t\tif block.Type != CertificateBlockType || len(block.Headers) != 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tcert, err := x509.ParseCertificate(block.Bytes)\n\t\tif err != nil {\n\t\t\treturn certs, err\n\t\t}\n\n\t\tcerts = append(certs, cert)\n\t\tok = true\n\t}\n\n\tif !ok {\n\t\treturn certs, errors.New(\"data does not contain any valid RSA or ECDSA certificates\")\n\t}\n\treturn certs, nil\n}\n\n// EncodeCertificates returns the PEM-encoded byte array that represents by the specified certs.\nfunc EncodeCertificates(certs ...*x509.Certificate) ([]byte, error) {\n\tb := bytes.Buffer{}\n\tfor _, cert := range certs {\n\t\tif err := pem.Encode(&b, &pem.Block{Type: CertificateBlockType, Bytes: cert.Raw}); err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t}\n\treturn b.Bytes(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/server_inspection.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n// GetClientCANames gets the CA names for client certs that a server accepts.  This is useful when inspecting the\n// state of particular servers.  apiHost is \"host:port\"\nfunc GetClientCANames(apiHost string) ([]string, error) {\n\t// when we run this the second time, we know which one we are expecting\n\tacceptableCAs := []string{}\n\ttlsConfig := &tls.Config{\n\t\tInsecureSkipVerify: true, // this is insecure to always get to the GetClientCertificate\n\t\tGetClientCertificate: func(hello *tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\t\t\tacceptableCAs = []string{}\n\t\t\tfor _, curr := range hello.AcceptableCAs {\n\t\t\t\tacceptableCAs = append(acceptableCAs, string(curr))\n\t\t\t}\n\t\t\treturn &tls.Certificate{}, nil\n\t\t},\n\t}\n\n\tconn, err := tls.Dial(\"tcp\", apiHost, tlsConfig)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := conn.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn acceptableCAs, nil\n}\n\n// GetClientCANamesForURL is GetClientCANames against a URL string like we use in kubeconfigs\nfunc GetClientCANamesForURL(kubeConfigURL string) ([]string, error) {\n\tapiserverURL, err := url.Parse(kubeConfigURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn GetClientCANames(apiserverURL.Host)\n}\n\n// GetServingCertificates returns the x509 certs used by a server as certificates and pem encoded bytes.\n// The serverName is optional for specifying a different name to get SNI certificates.  apiHost is \"host:port\"\nfunc GetServingCertificates(apiHost, serverName string) ([]*x509.Certificate, [][]byte, error) {\n\ttlsConfig := &tls.Config{\n\t\tInsecureSkipVerify: true, // this is insecure so that we always get connected\n\t}\n\t// if a name is specified for SNI, set it.\n\tif len(serverName) > 0 {\n\t\ttlsConfig.ServerName = serverName\n\t}\n\n\tconn, err := tls.Dial(\"tcp\", apiHost, tlsConfig)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tif err = conn.Close(); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to close connection : %v\", err)\n\t}\n\n\tpeerCerts := conn.ConnectionState().PeerCertificates\n\tpeerCertBytes := [][]byte{}\n\tfor _, a := range peerCerts {\n\t\tactualCert, err := EncodeCertificates(a)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tpeerCertBytes = append(peerCertBytes, []byte(strings.TrimSpace(string(actualCert))))\n\t}\n\n\treturn peerCerts, peerCertBytes, err\n}\n\n// GetServingCertificatesForURL is GetServingCertificates against a URL string like we use in kubeconfigs\nfunc GetServingCertificatesForURL(kubeConfigURL, serverName string) ([]*x509.Certificate, [][]byte, error) {\n\tapiserverURL, err := url.Parse(kubeConfigURL)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\treturn GetServingCertificates(apiserverURL.Host, serverName)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/connrotation/connrotation.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package connrotation implements a connection dialer that tracks and can close\n// all created connections.\n//\n// This is used for credential rotation of long-lived connections, when there's\n// no way to re-authenticate on a live connection.\npackage connrotation\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"sync\"\n)\n\n// DialFunc is a shorthand for signature of net.DialContext.\ntype DialFunc func(ctx context.Context, network, address string) (net.Conn, error)\n\n// Dialer opens connections through Dial and tracks them.\ntype Dialer struct {\n\tdial DialFunc\n\t*ConnectionTracker\n}\n\n// NewDialer creates a new Dialer instance.\n// Equivalent to NewDialerWithTracker(dial, nil).\nfunc NewDialer(dial DialFunc) *Dialer {\n\treturn NewDialerWithTracker(dial, nil)\n}\n\n// NewDialerWithTracker creates a new Dialer instance.\n//\n// If dial is not nil, it will be used to create new underlying connections.\n// Otherwise net.DialContext is used.\n// If tracker is not nil, it will be used to track new underlying connections.\n// Otherwise NewConnectionTracker() is used.\nfunc NewDialerWithTracker(dial DialFunc, tracker *ConnectionTracker) *Dialer {\n\tif tracker == nil {\n\t\ttracker = NewConnectionTracker()\n\t}\n\treturn &Dialer{\n\t\tdial:              dial,\n\t\tConnectionTracker: tracker,\n\t}\n}\n\n// ConnectionTracker keeps track of opened connections\ntype ConnectionTracker struct {\n\tmu    sync.Mutex\n\tconns map[*closableConn]struct{}\n}\n\n// NewConnectionTracker returns a connection tracker for use with NewDialerWithTracker\nfunc NewConnectionTracker() *ConnectionTracker {\n\treturn &ConnectionTracker{\n\t\tconns: make(map[*closableConn]struct{}),\n\t}\n}\n\n// CloseAll forcibly closes all tracked connections.\n//\n// Note: new connections may get created before CloseAll returns.\nfunc (c *ConnectionTracker) CloseAll() {\n\tc.mu.Lock()\n\tconns := c.conns\n\tc.conns = make(map[*closableConn]struct{})\n\tc.mu.Unlock()\n\n\tfor conn := range conns {\n\t\tconn.Close()\n\t}\n}\n\n// Track adds the connection to the list of tracked connections,\n// and returns a wrapped copy of the connection that stops tracking the connection\n// when it is closed.\nfunc (c *ConnectionTracker) Track(conn net.Conn) net.Conn {\n\tclosable := &closableConn{Conn: conn}\n\n\t// When the connection is closed, remove it from the map. This will\n\t// be no-op if the connection isn't in the map, e.g. if CloseAll()\n\t// is called.\n\tclosable.onClose = func() {\n\t\tc.mu.Lock()\n\t\tdelete(c.conns, closable)\n\t\tc.mu.Unlock()\n\t}\n\n\t// Start tracking the connection\n\tc.mu.Lock()\n\tc.conns[closable] = struct{}{}\n\tc.mu.Unlock()\n\n\treturn closable\n}\n\n// Dial creates a new tracked connection.\nfunc (d *Dialer) Dial(network, address string) (net.Conn, error) {\n\treturn d.DialContext(context.Background(), network, address)\n}\n\n// DialContext creates a new tracked connection.\nfunc (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {\n\tconn, err := d.dial(ctx, network, address)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn d.ConnectionTracker.Track(conn), nil\n}\n\ntype closableConn struct {\n\tonClose func()\n\tnet.Conn\n}\n\nfunc (c *closableConn) Close() error {\n\tgo c.onClose()\n\treturn c.Conn.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/flowcontrol/backoff.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flowcontrol\n\nimport (\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n\ttestingclock \"k8s.io/utils/clock/testing\"\n\t\"k8s.io/utils/integer\"\n)\n\ntype backoffEntry struct {\n\tbackoff    time.Duration\n\tlastUpdate time.Time\n}\n\ntype Backoff struct {\n\tsync.RWMutex\n\tClock           clock.Clock\n\tdefaultDuration time.Duration\n\tmaxDuration     time.Duration\n\tperItemBackoff  map[string]*backoffEntry\n\trand            *rand.Rand\n\n\t// maxJitterFactor adds jitter to the exponentially backed off delay.\n\t// if maxJitterFactor is zero, no jitter is added to the delay in\n\t// order to maintain current behavior.\n\tmaxJitterFactor float64\n}\n\nfunc NewFakeBackOff(initial, max time.Duration, tc *testingclock.FakeClock) *Backoff {\n\treturn newBackoff(tc, initial, max, 0.0)\n}\n\nfunc NewBackOff(initial, max time.Duration) *Backoff {\n\treturn NewBackOffWithJitter(initial, max, 0.0)\n}\n\nfunc NewFakeBackOffWithJitter(initial, max time.Duration, tc *testingclock.FakeClock, maxJitterFactor float64) *Backoff {\n\treturn newBackoff(tc, initial, max, maxJitterFactor)\n}\n\nfunc NewBackOffWithJitter(initial, max time.Duration, maxJitterFactor float64) *Backoff {\n\tclock := clock.RealClock{}\n\treturn newBackoff(clock, initial, max, maxJitterFactor)\n}\n\nfunc newBackoff(clock clock.Clock, initial, max time.Duration, maxJitterFactor float64) *Backoff {\n\tvar random *rand.Rand\n\tif maxJitterFactor > 0 {\n\t\trandom = rand.New(rand.NewSource(clock.Now().UnixNano()))\n\t}\n\treturn &Backoff{\n\t\tperItemBackoff:  map[string]*backoffEntry{},\n\t\tClock:           clock,\n\t\tdefaultDuration: initial,\n\t\tmaxDuration:     max,\n\t\tmaxJitterFactor: maxJitterFactor,\n\t\trand:            random,\n\t}\n}\n\n// Get the current backoff Duration\nfunc (p *Backoff) Get(id string) time.Duration {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tvar delay time.Duration\n\tentry, ok := p.perItemBackoff[id]\n\tif ok {\n\t\tdelay = entry.backoff\n\t}\n\treturn delay\n}\n\n// move backoff to the next mark, capping at maxDuration\nfunc (p *Backoff) Next(id string, eventTime time.Time) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok || hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\tentry = p.initEntryUnsafe(id)\n\t\tentry.backoff += p.jitter(entry.backoff)\n\t} else {\n\t\tdelay := entry.backoff * 2       // exponential\n\t\tdelay += p.jitter(entry.backoff) // add some jitter to the delay\n\t\tentry.backoff = time.Duration(integer.Int64Min(int64(delay), int64(p.maxDuration)))\n\t}\n\tentry.lastUpdate = p.Clock.Now()\n}\n\n// Reset forces clearing of all backoff data for a given key.\nfunc (p *Backoff) Reset(id string) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tdelete(p.perItemBackoff, id)\n}\n\n// Returns True if the elapsed time since eventTime is smaller than the current backoff window\nfunc (p *Backoff) IsInBackOffSince(id string, eventTime time.Time) bool {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok {\n\t\treturn false\n\t}\n\tif hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\treturn false\n\t}\n\treturn p.Clock.Since(eventTime) < entry.backoff\n}\n\n// Returns True if time since lastupdate is less than the current backoff window.\nfunc (p *Backoff) IsInBackOffSinceUpdate(id string, eventTime time.Time) bool {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok {\n\t\treturn false\n\t}\n\tif hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\treturn false\n\t}\n\treturn eventTime.Sub(entry.lastUpdate) < entry.backoff\n}\n\n// Garbage collect records that have aged past maxDuration. Backoff users are expected\n// to invoke this periodically.\nfunc (p *Backoff) GC() {\n\tp.Lock()\n\tdefer p.Unlock()\n\tnow := p.Clock.Now()\n\tfor id, entry := range p.perItemBackoff {\n\t\tif now.Sub(entry.lastUpdate) > p.maxDuration*2 {\n\t\t\t// GC when entry has not been updated for 2*maxDuration\n\t\t\tdelete(p.perItemBackoff, id)\n\t\t}\n\t}\n}\n\nfunc (p *Backoff) DeleteEntry(id string) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tdelete(p.perItemBackoff, id)\n}\n\n// Take a lock on *Backoff, before calling initEntryUnsafe\nfunc (p *Backoff) initEntryUnsafe(id string) *backoffEntry {\n\tentry := &backoffEntry{backoff: p.defaultDuration}\n\tp.perItemBackoff[id] = entry\n\treturn entry\n}\n\nfunc (p *Backoff) jitter(delay time.Duration) time.Duration {\n\tif p.rand == nil {\n\t\treturn 0\n\t}\n\n\treturn time.Duration(p.rand.Float64() * p.maxJitterFactor * float64(delay))\n}\n\n// After 2*maxDuration we restart the backoff factor to the beginning\nfunc hasExpired(eventTime time.Time, lastUpdate time.Time, maxDuration time.Duration) bool {\n\treturn eventTime.Sub(lastUpdate) > maxDuration*2 // consider stable if it's ok for twice the maxDuration\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/flowcontrol/throttle.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flowcontrol\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/time/rate\"\n\t\"k8s.io/utils/clock\"\n)\n\ntype PassiveRateLimiter interface {\n\t// TryAccept returns true if a token is taken immediately. Otherwise,\n\t// it returns false.\n\tTryAccept() bool\n\t// Stop stops the rate limiter, subsequent calls to CanAccept will return false\n\tStop()\n\t// QPS returns QPS of this rate limiter\n\tQPS() float32\n}\n\ntype RateLimiter interface {\n\tPassiveRateLimiter\n\t// Accept returns once a token becomes available.\n\tAccept()\n\t// Wait returns nil if a token is taken before the Context is done.\n\tWait(ctx context.Context) error\n}\n\ntype tokenBucketPassiveRateLimiter struct {\n\tlimiter *rate.Limiter\n\tqps     float32\n\tclock   clock.PassiveClock\n}\n\ntype tokenBucketRateLimiter struct {\n\ttokenBucketPassiveRateLimiter\n\tclock Clock\n}\n\n// NewTokenBucketRateLimiter creates a rate limiter which implements a token bucket approach.\n// The rate limiter allows bursts of up to 'burst' to exceed the QPS, while still maintaining a\n// smoothed qps rate of 'qps'.\n// The bucket is initially filled with 'burst' tokens, and refills at a rate of 'qps'.\n// The maximum number of tokens in the bucket is capped at 'burst'.\nfunc NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithClock(limiter, clock.RealClock{}, qps)\n}\n\n// NewTokenBucketPassiveRateLimiter is similar to NewTokenBucketRateLimiter except that it returns\n// a PassiveRateLimiter which does not have Accept() and Wait() methods.\nfunc NewTokenBucketPassiveRateLimiter(qps float32, burst int) PassiveRateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithPassiveClock(limiter, clock.RealClock{}, qps)\n}\n\n// An injectable, mockable clock interface.\ntype Clock interface {\n\tclock.PassiveClock\n\tSleep(time.Duration)\n}\n\nvar _ Clock = (*clock.RealClock)(nil)\n\n// NewTokenBucketRateLimiterWithClock is identical to NewTokenBucketRateLimiter\n// but allows an injectable clock, for testing.\nfunc NewTokenBucketRateLimiterWithClock(qps float32, burst int, c Clock) RateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithClock(limiter, c, qps)\n}\n\n// NewTokenBucketPassiveRateLimiterWithClock is similar to NewTokenBucketRateLimiterWithClock\n// except that it returns a PassiveRateLimiter which does not have Accept() and Wait() methods\n// and uses a PassiveClock.\nfunc NewTokenBucketPassiveRateLimiterWithClock(qps float32, burst int, c clock.PassiveClock) PassiveRateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithPassiveClock(limiter, c, qps)\n}\n\nfunc newTokenBucketRateLimiterWithClock(limiter *rate.Limiter, c Clock, qps float32) *tokenBucketRateLimiter {\n\treturn &tokenBucketRateLimiter{\n\t\ttokenBucketPassiveRateLimiter: *newTokenBucketRateLimiterWithPassiveClock(limiter, c, qps),\n\t\tclock:                         c,\n\t}\n}\n\nfunc newTokenBucketRateLimiterWithPassiveClock(limiter *rate.Limiter, c clock.PassiveClock, qps float32) *tokenBucketPassiveRateLimiter {\n\treturn &tokenBucketPassiveRateLimiter{\n\t\tlimiter: limiter,\n\t\tqps:     qps,\n\t\tclock:   c,\n\t}\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) Stop() {\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) QPS() float32 {\n\treturn tbprl.qps\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) TryAccept() bool {\n\treturn tbprl.limiter.AllowN(tbprl.clock.Now(), 1)\n}\n\n// Accept will block until a token becomes available\nfunc (tbrl *tokenBucketRateLimiter) Accept() {\n\tnow := tbrl.clock.Now()\n\ttbrl.clock.Sleep(tbrl.limiter.ReserveN(now, 1).DelayFrom(now))\n}\n\nfunc (tbrl *tokenBucketRateLimiter) Wait(ctx context.Context) error {\n\treturn tbrl.limiter.Wait(ctx)\n}\n\ntype fakeAlwaysRateLimiter struct{}\n\nfunc NewFakeAlwaysRateLimiter() RateLimiter {\n\treturn &fakeAlwaysRateLimiter{}\n}\n\nfunc (t *fakeAlwaysRateLimiter) TryAccept() bool {\n\treturn true\n}\n\nfunc (t *fakeAlwaysRateLimiter) Stop() {}\n\nfunc (t *fakeAlwaysRateLimiter) Accept() {}\n\nfunc (t *fakeAlwaysRateLimiter) QPS() float32 {\n\treturn 1\n}\n\nfunc (t *fakeAlwaysRateLimiter) Wait(ctx context.Context) error {\n\treturn nil\n}\n\ntype fakeNeverRateLimiter struct {\n\twg sync.WaitGroup\n}\n\nfunc NewFakeNeverRateLimiter() RateLimiter {\n\trl := fakeNeverRateLimiter{}\n\trl.wg.Add(1)\n\treturn &rl\n}\n\nfunc (t *fakeNeverRateLimiter) TryAccept() bool {\n\treturn false\n}\n\nfunc (t *fakeNeverRateLimiter) Stop() {\n\tt.wg.Done()\n}\n\nfunc (t *fakeNeverRateLimiter) Accept() {\n\tt.wg.Wait()\n}\n\nfunc (t *fakeNeverRateLimiter) QPS() float32 {\n\treturn 1\n}\n\nfunc (t *fakeNeverRateLimiter) Wait(ctx context.Context) error {\n\treturn errors.New(\"can not be accept\")\n}\n\nvar (\n\t_ RateLimiter = (*tokenBucketRateLimiter)(nil)\n\t_ RateLimiter = (*fakeAlwaysRateLimiter)(nil)\n\t_ RateLimiter = (*fakeNeverRateLimiter)(nil)\n)\n\nvar _ PassiveRateLimiter = (*tokenBucketPassiveRateLimiter)(nil)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/keyutil/OWNERS",
    "content": "approvers:\n  - sig-auth-certificates-approvers\nreviewers:\n  - sig-auth-certificates-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/keyutil/key.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package keyutil contains utilities for managing public/private key pairs.\npackage keyutil\n\nimport (\n\t\"crypto\"\n\t\"crypto/ecdsa\"\n\t\"crypto/elliptic\"\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\nconst (\n\t// ECPrivateKeyBlockType is a possible value for pem.Block.Type.\n\tECPrivateKeyBlockType = \"EC PRIVATE KEY\"\n\t// RSAPrivateKeyBlockType is a possible value for pem.Block.Type.\n\tRSAPrivateKeyBlockType = \"RSA PRIVATE KEY\"\n\t// PrivateKeyBlockType is a possible value for pem.Block.Type.\n\tPrivateKeyBlockType = \"PRIVATE KEY\"\n\t// PublicKeyBlockType is a possible value for pem.Block.Type.\n\tPublicKeyBlockType = \"PUBLIC KEY\"\n)\n\n// MakeEllipticPrivateKeyPEM creates an ECDSA private key\nfunc MakeEllipticPrivateKeyPEM() ([]byte, error) {\n\tprivateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tderBytes, err := x509.MarshalECPrivateKey(privateKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprivateKeyPemBlock := &pem.Block{\n\t\tType:  ECPrivateKeyBlockType,\n\t\tBytes: derBytes,\n\t}\n\treturn pem.EncodeToMemory(privateKeyPemBlock), nil\n}\n\n// WriteKey writes the pem-encoded key data to keyPath.\n// The key file will be created with file mode 0600.\n// If the key file already exists, it will be overwritten.\n// The parent directory of the keyPath will be created as needed with file mode 0755.\nfunc WriteKey(keyPath string, data []byte) error {\n\tif err := os.MkdirAll(filepath.Dir(keyPath), os.FileMode(0755)); err != nil {\n\t\treturn err\n\t}\n\treturn os.WriteFile(keyPath, data, os.FileMode(0600))\n}\n\n// LoadOrGenerateKeyFile looks for a key in the file at the given path. If it\n// can't find one, it will generate a new key and store it there.\nfunc LoadOrGenerateKeyFile(keyPath string) (data []byte, wasGenerated bool, err error) {\n\tloadedData, err := os.ReadFile(keyPath)\n\t// Call verifyKeyData to ensure the file wasn't empty/corrupt.\n\tif err == nil && verifyKeyData(loadedData) {\n\t\treturn loadedData, false, err\n\t}\n\tif !os.IsNotExist(err) {\n\t\treturn nil, false, fmt.Errorf(\"error loading key from %s: %v\", keyPath, err)\n\t}\n\n\tgeneratedData, err := MakeEllipticPrivateKeyPEM()\n\tif err != nil {\n\t\treturn nil, false, fmt.Errorf(\"error generating key: %v\", err)\n\t}\n\tif err := WriteKey(keyPath, generatedData); err != nil {\n\t\treturn nil, false, fmt.Errorf(\"error writing key to %s: %v\", keyPath, err)\n\t}\n\treturn generatedData, true, nil\n}\n\n// MarshalPrivateKeyToPEM converts a known private key type of RSA or ECDSA to\n// a PEM encoded block or returns an error.\nfunc MarshalPrivateKeyToPEM(privateKey crypto.PrivateKey) ([]byte, error) {\n\tswitch t := privateKey.(type) {\n\tcase *ecdsa.PrivateKey:\n\t\tderBytes, err := x509.MarshalECPrivateKey(t)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tblock := &pem.Block{\n\t\t\tType:  ECPrivateKeyBlockType,\n\t\t\tBytes: derBytes,\n\t\t}\n\t\treturn pem.EncodeToMemory(block), nil\n\tcase *rsa.PrivateKey:\n\t\tblock := &pem.Block{\n\t\t\tType:  RSAPrivateKeyBlockType,\n\t\t\tBytes: x509.MarshalPKCS1PrivateKey(t),\n\t\t}\n\t\treturn pem.EncodeToMemory(block), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"private key is not a recognized type: %T\", privateKey)\n\t}\n}\n\n// PrivateKeyFromFile returns the private key in rsa.PrivateKey or ecdsa.PrivateKey format from a given PEM-encoded file.\n// Returns an error if the file could not be read or if the private key could not be parsed.\nfunc PrivateKeyFromFile(file string) (interface{}, error) {\n\tdata, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tkey, err := ParsePrivateKeyPEM(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading private key file %s: %v\", file, err)\n\t}\n\treturn key, nil\n}\n\n// PublicKeysFromFile returns the public keys in rsa.PublicKey or ecdsa.PublicKey format from a given PEM-encoded file.\n// Reads public keys from both public and private key files.\nfunc PublicKeysFromFile(file string) ([]interface{}, error) {\n\tdata, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tkeys, err := ParsePublicKeysPEM(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading public key file %s: %v\", file, err)\n\t}\n\treturn keys, nil\n}\n\n// verifyKeyData returns true if the provided data appears to be a valid private key.\nfunc verifyKeyData(data []byte) bool {\n\tif len(data) == 0 {\n\t\treturn false\n\t}\n\t_, err := ParsePrivateKeyPEM(data)\n\treturn err == nil\n}\n\n// ParsePrivateKeyPEM returns a private key parsed from a PEM block in the supplied data.\n// Recognizes PEM blocks for \"EC PRIVATE KEY\", \"RSA PRIVATE KEY\", or \"PRIVATE KEY\"\nfunc ParsePrivateKeyPEM(keyData []byte) (interface{}, error) {\n\tvar privateKeyPemBlock *pem.Block\n\tfor {\n\t\tprivateKeyPemBlock, keyData = pem.Decode(keyData)\n\t\tif privateKeyPemBlock == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch privateKeyPemBlock.Type {\n\t\tcase ECPrivateKeyBlockType:\n\t\t\t// ECDSA Private Key in ASN.1 format\n\t\t\tif key, err := x509.ParseECPrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\tcase RSAPrivateKeyBlockType:\n\t\t\t// RSA Private Key in PKCS#1 format\n\t\t\tif key, err := x509.ParsePKCS1PrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\tcase PrivateKeyBlockType:\n\t\t\t// RSA or ECDSA Private Key in unencrypted PKCS#8 format\n\t\t\tif key, err := x509.ParsePKCS8PrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\t}\n\n\t\t// tolerate non-key PEM blocks for compatibility with things like \"EC PARAMETERS\" blocks\n\t\t// originally, only the first PEM block was parsed and expected to be a key block\n\t}\n\n\t// we read all the PEM blocks and didn't recognize one\n\treturn nil, fmt.Errorf(\"data does not contain a valid RSA or ECDSA private key\")\n}\n\n// ParsePublicKeysPEM is a helper function for reading an array of rsa.PublicKey or ecdsa.PublicKey from a PEM-encoded byte array.\n// Reads public keys from both public and private key files.\nfunc ParsePublicKeysPEM(keyData []byte) ([]interface{}, error) {\n\tvar block *pem.Block\n\tkeys := []interface{}{}\n\tfor {\n\t\t// read the next block\n\t\tblock, keyData = pem.Decode(keyData)\n\t\tif block == nil {\n\t\t\tbreak\n\t\t}\n\n\t\t// test block against parsing functions\n\t\tif privateKey, err := parseRSAPrivateKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, &privateKey.PublicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif publicKey, err := parseRSAPublicKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, publicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif privateKey, err := parseECPrivateKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, &privateKey.PublicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif publicKey, err := parseECPublicKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, publicKey)\n\t\t\tcontinue\n\t\t}\n\n\t\t// tolerate non-key PEM blocks for backwards compatibility\n\t\t// originally, only the first PEM block was parsed and expected to be a key block\n\t}\n\n\tif len(keys) == 0 {\n\t\treturn nil, fmt.Errorf(\"data does not contain any valid RSA or ECDSA public keys\")\n\t}\n\treturn keys, nil\n}\n\n// parseRSAPublicKey parses a single RSA public key from the provided data\nfunc parseRSAPublicKey(data []byte) (*rsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(data); err != nil {\n\t\tif cert, err := x509.ParseCertificate(data); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an RSA Public Key\n\tvar pubKey *rsa.PublicKey\n\tvar ok bool\n\tif pubKey, ok = parsedKey.(*rsa.PublicKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid RSA Public Key\")\n\t}\n\n\treturn pubKey, nil\n}\n\n// parseRSAPrivateKey parses a single RSA private key from the provided data\nfunc parseRSAPrivateKey(data []byte) (*rsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKCS1PrivateKey(data); err != nil {\n\t\tif parsedKey, err = x509.ParsePKCS8PrivateKey(data); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an RSA Private Key\n\tvar privKey *rsa.PrivateKey\n\tvar ok bool\n\tif privKey, ok = parsedKey.(*rsa.PrivateKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid RSA Private Key\")\n\t}\n\n\treturn privKey, nil\n}\n\n// parseECPublicKey parses a single ECDSA public key from the provided data\nfunc parseECPublicKey(data []byte) (*ecdsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(data); err != nil {\n\t\tif cert, err := x509.ParseCertificate(data); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an ECDSA Public Key\n\tvar pubKey *ecdsa.PublicKey\n\tvar ok bool\n\tif pubKey, ok = parsedKey.(*ecdsa.PublicKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid ECDSA Public Key\")\n\t}\n\n\treturn pubKey, nil\n}\n\n// parseECPrivateKey parses a single ECDSA private key from the provided data\nfunc parseECPrivateKey(data []byte) (*ecdsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParseECPrivateKey(data); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Test if parsed key is an ECDSA Private Key\n\tvar privKey *ecdsa.PrivateKey\n\tvar ok bool\n\tif privKey, ok = parsedKey.(*ecdsa.PrivateKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid ECDSA Private Key\")\n\t}\n\n\treturn privKey, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/default_rate_limiters.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/time/rate\"\n)\n\ntype RateLimiter interface {\n\t// When gets an item and gets to decide how long that item should wait\n\tWhen(item interface{}) time.Duration\n\t// Forget indicates that an item is finished being retried.  Doesn't matter whether it's for failing\n\t// or for success, we'll stop tracking it\n\tForget(item interface{})\n\t// NumRequeues returns back how many failures the item has had\n\tNumRequeues(item interface{}) int\n}\n\n// DefaultControllerRateLimiter is a no-arg constructor for a default rate limiter for a workqueue.  It has\n// both overall and per-item rate limiting.  The overall is a token bucket and the per-item is exponential\nfunc DefaultControllerRateLimiter() RateLimiter {\n\treturn NewMaxOfRateLimiter(\n\t\tNewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second),\n\t\t// 10 qps, 100 bucket size.  This is only for retry speed and its only the overall factor (not per item)\n\t\t&BucketRateLimiter{Limiter: rate.NewLimiter(rate.Limit(10), 100)},\n\t)\n}\n\n// BucketRateLimiter adapts a standard bucket to the workqueue ratelimiter API\ntype BucketRateLimiter struct {\n\t*rate.Limiter\n}\n\nvar _ RateLimiter = &BucketRateLimiter{}\n\nfunc (r *BucketRateLimiter) When(item interface{}) time.Duration {\n\treturn r.Limiter.Reserve().Delay()\n}\n\nfunc (r *BucketRateLimiter) NumRequeues(item interface{}) int {\n\treturn 0\n}\n\nfunc (r *BucketRateLimiter) Forget(item interface{}) {\n}\n\n// ItemExponentialFailureRateLimiter does a simple baseDelay*2^<num-failures> limit\n// dealing with max failures and expiration are up to the caller\ntype ItemExponentialFailureRateLimiter struct {\n\tfailuresLock sync.Mutex\n\tfailures     map[interface{}]int\n\n\tbaseDelay time.Duration\n\tmaxDelay  time.Duration\n}\n\nvar _ RateLimiter = &ItemExponentialFailureRateLimiter{}\n\nfunc NewItemExponentialFailureRateLimiter(baseDelay time.Duration, maxDelay time.Duration) RateLimiter {\n\treturn &ItemExponentialFailureRateLimiter{\n\t\tfailures:  map[interface{}]int{},\n\t\tbaseDelay: baseDelay,\n\t\tmaxDelay:  maxDelay,\n\t}\n}\n\nfunc DefaultItemBasedRateLimiter() RateLimiter {\n\treturn NewItemExponentialFailureRateLimiter(time.Millisecond, 1000*time.Second)\n}\n\nfunc (r *ItemExponentialFailureRateLimiter) When(item interface{}) time.Duration {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\texp := r.failures[item]\n\tr.failures[item] = r.failures[item] + 1\n\n\t// The backoff is capped such that 'calculated' value never overflows.\n\tbackoff := float64(r.baseDelay.Nanoseconds()) * math.Pow(2, float64(exp))\n\tif backoff > math.MaxInt64 {\n\t\treturn r.maxDelay\n\t}\n\n\tcalculated := time.Duration(backoff)\n\tif calculated > r.maxDelay {\n\t\treturn r.maxDelay\n\t}\n\n\treturn calculated\n}\n\nfunc (r *ItemExponentialFailureRateLimiter) NumRequeues(item interface{}) int {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\treturn r.failures[item]\n}\n\nfunc (r *ItemExponentialFailureRateLimiter) Forget(item interface{}) {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tdelete(r.failures, item)\n}\n\n// ItemFastSlowRateLimiter does a quick retry for a certain number of attempts, then a slow retry after that\ntype ItemFastSlowRateLimiter struct {\n\tfailuresLock sync.Mutex\n\tfailures     map[interface{}]int\n\n\tmaxFastAttempts int\n\tfastDelay       time.Duration\n\tslowDelay       time.Duration\n}\n\nvar _ RateLimiter = &ItemFastSlowRateLimiter{}\n\nfunc NewItemFastSlowRateLimiter(fastDelay, slowDelay time.Duration, maxFastAttempts int) RateLimiter {\n\treturn &ItemFastSlowRateLimiter{\n\t\tfailures:        map[interface{}]int{},\n\t\tfastDelay:       fastDelay,\n\t\tslowDelay:       slowDelay,\n\t\tmaxFastAttempts: maxFastAttempts,\n\t}\n}\n\nfunc (r *ItemFastSlowRateLimiter) When(item interface{}) time.Duration {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tr.failures[item] = r.failures[item] + 1\n\n\tif r.failures[item] <= r.maxFastAttempts {\n\t\treturn r.fastDelay\n\t}\n\n\treturn r.slowDelay\n}\n\nfunc (r *ItemFastSlowRateLimiter) NumRequeues(item interface{}) int {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\treturn r.failures[item]\n}\n\nfunc (r *ItemFastSlowRateLimiter) Forget(item interface{}) {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tdelete(r.failures, item)\n}\n\n// MaxOfRateLimiter calls every RateLimiter and returns the worst case response\n// When used with a token bucket limiter, the burst could be apparently exceeded in cases where particular items\n// were separately delayed a longer time.\ntype MaxOfRateLimiter struct {\n\tlimiters []RateLimiter\n}\n\nfunc (r *MaxOfRateLimiter) When(item interface{}) time.Duration {\n\tret := time.Duration(0)\n\tfor _, limiter := range r.limiters {\n\t\tcurr := limiter.When(item)\n\t\tif curr > ret {\n\t\t\tret = curr\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc NewMaxOfRateLimiter(limiters ...RateLimiter) RateLimiter {\n\treturn &MaxOfRateLimiter{limiters: limiters}\n}\n\nfunc (r *MaxOfRateLimiter) NumRequeues(item interface{}) int {\n\tret := 0\n\tfor _, limiter := range r.limiters {\n\t\tcurr := limiter.NumRequeues(item)\n\t\tif curr > ret {\n\t\t\tret = curr\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (r *MaxOfRateLimiter) Forget(item interface{}) {\n\tfor _, limiter := range r.limiters {\n\t\tlimiter.Forget(item)\n\t}\n}\n\n// WithMaxWaitRateLimiter have maxDelay which avoids waiting too long\ntype WithMaxWaitRateLimiter struct {\n\tlimiter  RateLimiter\n\tmaxDelay time.Duration\n}\n\nfunc NewWithMaxWaitRateLimiter(limiter RateLimiter, maxDelay time.Duration) RateLimiter {\n\treturn &WithMaxWaitRateLimiter{limiter: limiter, maxDelay: maxDelay}\n}\n\nfunc (w WithMaxWaitRateLimiter) When(item interface{}) time.Duration {\n\tdelay := w.limiter.When(item)\n\tif delay > w.maxDelay {\n\t\treturn w.maxDelay\n\t}\n\n\treturn delay\n}\n\nfunc (w WithMaxWaitRateLimiter) Forget(item interface{}) {\n\tw.limiter.Forget(item)\n}\n\nfunc (w WithMaxWaitRateLimiter) NumRequeues(item interface{}) int {\n\treturn w.limiter.NumRequeues(item)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/delaying_queue.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"container/heap\"\n\t\"sync\"\n\t\"time\"\n\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/utils/clock\"\n)\n\n// DelayingInterface is an Interface that can Add an item at a later time. This makes it easier to\n// requeue items after failures without ending up in a hot-loop.\ntype DelayingInterface interface {\n\tInterface\n\t// AddAfter adds an item to the workqueue after the indicated duration has passed\n\tAddAfter(item interface{}, duration time.Duration)\n}\n\n// DelayingQueueConfig specifies optional configurations to customize a DelayingInterface.\ntype DelayingQueueConfig struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock optionally allows injecting a real or fake clock for testing purposes.\n\tClock clock.WithTicker\n\n\t// Queue optionally allows injecting custom queue Interface instead of the default one.\n\tQueue Interface\n}\n\n// NewDelayingQueue constructs a new workqueue with delayed queuing ability.\n// NewDelayingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewDelayingQueueWithConfig instead and specify a name.\nfunc NewDelayingQueue() DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{})\n}\n\n// NewDelayingQueueWithConfig constructs a new workqueue with options to\n// customize different properties.\nfunc NewDelayingQueueWithConfig(config DelayingQueueConfig) DelayingInterface {\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\tif config.Queue == nil {\n\t\tconfig.Queue = NewWithConfig(QueueConfig{\n\t\t\tName:            config.Name,\n\t\t\tMetricsProvider: config.MetricsProvider,\n\t\t\tClock:           config.Clock,\n\t\t})\n\t}\n\n\treturn newDelayingQueue(config.Clock, config.Queue, config.Name, config.MetricsProvider)\n}\n\n// NewDelayingQueueWithCustomQueue constructs a new workqueue with ability to\n// inject custom queue Interface instead of the default one\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewDelayingQueueWithCustomQueue(q Interface, name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{\n\t\tName:  name,\n\t\tQueue: q,\n\t})\n}\n\n// NewNamedDelayingQueue constructs a new named workqueue with delayed queuing ability.\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewNamedDelayingQueue(name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{Name: name})\n}\n\n// NewDelayingQueueWithCustomClock constructs a new named workqueue\n// with ability to inject real or fake clock for testing purposes.\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewDelayingQueueWithCustomClock(clock clock.WithTicker, name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{\n\t\tName:  name,\n\t\tClock: clock,\n\t})\n}\n\nfunc newDelayingQueue(clock clock.WithTicker, q Interface, name string, provider MetricsProvider) *delayingType {\n\tret := &delayingType{\n\t\tInterface:       q,\n\t\tclock:           clock,\n\t\theartbeat:       clock.NewTicker(maxWait),\n\t\tstopCh:          make(chan struct{}),\n\t\twaitingForAddCh: make(chan *waitFor, 1000),\n\t\tmetrics:         newRetryMetrics(name, provider),\n\t}\n\n\tgo ret.waitingLoop()\n\treturn ret\n}\n\n// delayingType wraps an Interface and provides delayed re-enquing\ntype delayingType struct {\n\tInterface\n\n\t// clock tracks time for delayed firing\n\tclock clock.Clock\n\n\t// stopCh lets us signal a shutdown to the waiting loop\n\tstopCh chan struct{}\n\t// stopOnce guarantees we only signal shutdown a single time\n\tstopOnce sync.Once\n\n\t// heartbeat ensures we wait no more than maxWait before firing\n\theartbeat clock.Ticker\n\n\t// waitingForAddCh is a buffered channel that feeds waitingForAdd\n\twaitingForAddCh chan *waitFor\n\n\t// metrics counts the number of retries\n\tmetrics retryMetrics\n}\n\n// waitFor holds the data to add and the time it should be added\ntype waitFor struct {\n\tdata    t\n\treadyAt time.Time\n\t// index in the priority queue (heap)\n\tindex int\n}\n\n// waitForPriorityQueue implements a priority queue for waitFor items.\n//\n// waitForPriorityQueue implements heap.Interface. The item occurring next in\n// time (i.e., the item with the smallest readyAt) is at the root (index 0).\n// Peek returns this minimum item at index 0. Pop returns the minimum item after\n// it has been removed from the queue and placed at index Len()-1 by\n// container/heap. Push adds an item at index Len(), and container/heap\n// percolates it into the correct location.\ntype waitForPriorityQueue []*waitFor\n\nfunc (pq waitForPriorityQueue) Len() int {\n\treturn len(pq)\n}\nfunc (pq waitForPriorityQueue) Less(i, j int) bool {\n\treturn pq[i].readyAt.Before(pq[j].readyAt)\n}\nfunc (pq waitForPriorityQueue) Swap(i, j int) {\n\tpq[i], pq[j] = pq[j], pq[i]\n\tpq[i].index = i\n\tpq[j].index = j\n}\n\n// Push adds an item to the queue. Push should not be called directly; instead,\n// use `heap.Push`.\nfunc (pq *waitForPriorityQueue) Push(x interface{}) {\n\tn := len(*pq)\n\titem := x.(*waitFor)\n\titem.index = n\n\t*pq = append(*pq, item)\n}\n\n// Pop removes an item from the queue. Pop should not be called directly;\n// instead, use `heap.Pop`.\nfunc (pq *waitForPriorityQueue) Pop() interface{} {\n\tn := len(*pq)\n\titem := (*pq)[n-1]\n\titem.index = -1\n\t*pq = (*pq)[0:(n - 1)]\n\treturn item\n}\n\n// Peek returns the item at the beginning of the queue, without removing the\n// item or otherwise mutating the queue. It is safe to call directly.\nfunc (pq waitForPriorityQueue) Peek() interface{} {\n\treturn pq[0]\n}\n\n// ShutDown stops the queue. After the queue drains, the returned shutdown bool\n// on Get() will be true. This method may be invoked more than once.\nfunc (q *delayingType) ShutDown() {\n\tq.stopOnce.Do(func() {\n\t\tq.Interface.ShutDown()\n\t\tclose(q.stopCh)\n\t\tq.heartbeat.Stop()\n\t})\n}\n\n// AddAfter adds the given item to the work queue after the given delay\nfunc (q *delayingType) AddAfter(item interface{}, duration time.Duration) {\n\t// don't add if we're already shutting down\n\tif q.ShuttingDown() {\n\t\treturn\n\t}\n\n\tq.metrics.retry()\n\n\t// immediately add things with no delay\n\tif duration <= 0 {\n\t\tq.Add(item)\n\t\treturn\n\t}\n\n\tselect {\n\tcase <-q.stopCh:\n\t\t// unblock if ShutDown() is called\n\tcase q.waitingForAddCh <- &waitFor{data: item, readyAt: q.clock.Now().Add(duration)}:\n\t}\n}\n\n// maxWait keeps a max bound on the wait time. It's just insurance against weird things happening.\n// Checking the queue every 10 seconds isn't expensive and we know that we'll never end up with an\n// expired item sitting for more than 10 seconds.\nconst maxWait = 10 * time.Second\n\n// waitingLoop runs until the workqueue is shutdown and keeps a check on the list of items to be added.\nfunc (q *delayingType) waitingLoop() {\n\tdefer utilruntime.HandleCrash()\n\n\t// Make a placeholder channel to use when there are no items in our list\n\tnever := make(<-chan time.Time)\n\n\t// Make a timer that expires when the item at the head of the waiting queue is ready\n\tvar nextReadyAtTimer clock.Timer\n\n\twaitingForQueue := &waitForPriorityQueue{}\n\theap.Init(waitingForQueue)\n\n\twaitingEntryByData := map[t]*waitFor{}\n\n\tfor {\n\t\tif q.Interface.ShuttingDown() {\n\t\t\treturn\n\t\t}\n\n\t\tnow := q.clock.Now()\n\n\t\t// Add ready entries\n\t\tfor waitingForQueue.Len() > 0 {\n\t\t\tentry := waitingForQueue.Peek().(*waitFor)\n\t\t\tif entry.readyAt.After(now) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tentry = heap.Pop(waitingForQueue).(*waitFor)\n\t\t\tq.Add(entry.data)\n\t\t\tdelete(waitingEntryByData, entry.data)\n\t\t}\n\n\t\t// Set up a wait for the first item's readyAt (if one exists)\n\t\tnextReadyAt := never\n\t\tif waitingForQueue.Len() > 0 {\n\t\t\tif nextReadyAtTimer != nil {\n\t\t\t\tnextReadyAtTimer.Stop()\n\t\t\t}\n\t\t\tentry := waitingForQueue.Peek().(*waitFor)\n\t\t\tnextReadyAtTimer = q.clock.NewTimer(entry.readyAt.Sub(now))\n\t\t\tnextReadyAt = nextReadyAtTimer.C()\n\t\t}\n\n\t\tselect {\n\t\tcase <-q.stopCh:\n\t\t\treturn\n\n\t\tcase <-q.heartbeat.C():\n\t\t\t// continue the loop, which will add ready items\n\n\t\tcase <-nextReadyAt:\n\t\t\t// continue the loop, which will add ready items\n\n\t\tcase waitEntry := <-q.waitingForAddCh:\n\t\t\tif waitEntry.readyAt.After(q.clock.Now()) {\n\t\t\t\tinsert(waitingForQueue, waitingEntryByData, waitEntry)\n\t\t\t} else {\n\t\t\t\tq.Add(waitEntry.data)\n\t\t\t}\n\n\t\t\tdrained := false\n\t\t\tfor !drained {\n\t\t\t\tselect {\n\t\t\t\tcase waitEntry := <-q.waitingForAddCh:\n\t\t\t\t\tif waitEntry.readyAt.After(q.clock.Now()) {\n\t\t\t\t\t\tinsert(waitingForQueue, waitingEntryByData, waitEntry)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tq.Add(waitEntry.data)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdrained = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// insert adds the entry to the priority queue, or updates the readyAt if it already exists in the queue\nfunc insert(q *waitForPriorityQueue, knownEntries map[t]*waitFor, entry *waitFor) {\n\t// if the entry already exists, update the time only if it would cause the item to be queued sooner\n\texisting, exists := knownEntries[entry.data]\n\tif exists {\n\t\tif existing.readyAt.After(entry.readyAt) {\n\t\t\texisting.readyAt = entry.readyAt\n\t\t\theap.Fix(q, existing.index)\n\t\t}\n\n\t\treturn\n\t}\n\n\theap.Push(q, entry)\n\tknownEntries[entry.data] = entry\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package workqueue provides a simple queue that supports the following\n// features:\n//   - Fair: items processed in the order in which they are added.\n//   - Stingy: a single item will not be processed multiple times concurrently,\n//     and if an item is added multiple times before it can be processed, it\n//     will only be processed once.\n//   - Multiple consumers and producers. In particular, it is allowed for an\n//     item to be reenqueued while it is being processed.\n//   - Shutdown notifications.\npackage workqueue // import \"k8s.io/client-go/util/workqueue\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/metrics.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// This file provides abstractions for setting the provider (e.g., prometheus)\n// of metrics.\n\ntype queueMetrics interface {\n\tadd(item t)\n\tget(item t)\n\tdone(item t)\n\tupdateUnfinishedWork()\n}\n\n// GaugeMetric represents a single numerical value that can arbitrarily go up\n// and down.\ntype GaugeMetric interface {\n\tInc()\n\tDec()\n}\n\n// SettableGaugeMetric represents a single numerical value that can arbitrarily go up\n// and down. (Separate from GaugeMetric to preserve backwards compatibility.)\ntype SettableGaugeMetric interface {\n\tSet(float64)\n}\n\n// CounterMetric represents a single numerical value that only ever\n// goes up.\ntype CounterMetric interface {\n\tInc()\n}\n\n// SummaryMetric captures individual observations.\ntype SummaryMetric interface {\n\tObserve(float64)\n}\n\n// HistogramMetric counts individual observations.\ntype HistogramMetric interface {\n\tObserve(float64)\n}\n\ntype noopMetric struct{}\n\nfunc (noopMetric) Inc()            {}\nfunc (noopMetric) Dec()            {}\nfunc (noopMetric) Set(float64)     {}\nfunc (noopMetric) Observe(float64) {}\n\n// defaultQueueMetrics expects the caller to lock before setting any metrics.\ntype defaultQueueMetrics struct {\n\tclock clock.Clock\n\n\t// current depth of a workqueue\n\tdepth GaugeMetric\n\t// total number of adds handled by a workqueue\n\tadds CounterMetric\n\t// how long an item stays in a workqueue\n\tlatency HistogramMetric\n\t// how long processing an item from a workqueue takes\n\tworkDuration         HistogramMetric\n\taddTimes             map[t]time.Time\n\tprocessingStartTimes map[t]time.Time\n\n\t// how long have current threads been working?\n\tunfinishedWorkSeconds   SettableGaugeMetric\n\tlongestRunningProcessor SettableGaugeMetric\n}\n\nfunc (m *defaultQueueMetrics) add(item t) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.adds.Inc()\n\tm.depth.Inc()\n\tif _, exists := m.addTimes[item]; !exists {\n\t\tm.addTimes[item] = m.clock.Now()\n\t}\n}\n\nfunc (m *defaultQueueMetrics) get(item t) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.depth.Dec()\n\tm.processingStartTimes[item] = m.clock.Now()\n\tif startTime, exists := m.addTimes[item]; exists {\n\t\tm.latency.Observe(m.sinceInSeconds(startTime))\n\t\tdelete(m.addTimes, item)\n\t}\n}\n\nfunc (m *defaultQueueMetrics) done(item t) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tif startTime, exists := m.processingStartTimes[item]; exists {\n\t\tm.workDuration.Observe(m.sinceInSeconds(startTime))\n\t\tdelete(m.processingStartTimes, item)\n\t}\n}\n\nfunc (m *defaultQueueMetrics) updateUnfinishedWork() {\n\t// Note that a summary metric would be better for this, but prometheus\n\t// doesn't seem to have non-hacky ways to reset the summary metrics.\n\tvar total float64\n\tvar oldest float64\n\tfor _, t := range m.processingStartTimes {\n\t\tage := m.sinceInSeconds(t)\n\t\ttotal += age\n\t\tif age > oldest {\n\t\t\toldest = age\n\t\t}\n\t}\n\tm.unfinishedWorkSeconds.Set(total)\n\tm.longestRunningProcessor.Set(oldest)\n}\n\ntype noMetrics struct{}\n\nfunc (noMetrics) add(item t)            {}\nfunc (noMetrics) get(item t)            {}\nfunc (noMetrics) done(item t)           {}\nfunc (noMetrics) updateUnfinishedWork() {}\n\n// Gets the time since the specified start in seconds.\nfunc (m *defaultQueueMetrics) sinceInSeconds(start time.Time) float64 {\n\treturn m.clock.Since(start).Seconds()\n}\n\ntype retryMetrics interface {\n\tretry()\n}\n\ntype defaultRetryMetrics struct {\n\tretries CounterMetric\n}\n\nfunc (m *defaultRetryMetrics) retry() {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.retries.Inc()\n}\n\n// MetricsProvider generates various metrics used by the queue.\ntype MetricsProvider interface {\n\tNewDepthMetric(name string) GaugeMetric\n\tNewAddsMetric(name string) CounterMetric\n\tNewLatencyMetric(name string) HistogramMetric\n\tNewWorkDurationMetric(name string) HistogramMetric\n\tNewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric\n\tNewLongestRunningProcessorSecondsMetric(name string) SettableGaugeMetric\n\tNewRetriesMetric(name string) CounterMetric\n}\n\ntype noopMetricsProvider struct{}\n\nfunc (_ noopMetricsProvider) NewDepthMetric(name string) GaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewAddsMetric(name string) CounterMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewLatencyMetric(name string) HistogramMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewWorkDurationMetric(name string) HistogramMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewLongestRunningProcessorSecondsMetric(name string) SettableGaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewRetriesMetric(name string) CounterMetric {\n\treturn noopMetric{}\n}\n\nvar globalMetricsFactory = queueMetricsFactory{\n\tmetricsProvider: noopMetricsProvider{},\n}\n\ntype queueMetricsFactory struct {\n\tmetricsProvider MetricsProvider\n\n\tonlyOnce sync.Once\n}\n\nfunc (f *queueMetricsFactory) setProvider(mp MetricsProvider) {\n\tf.onlyOnce.Do(func() {\n\t\tf.metricsProvider = mp\n\t})\n}\n\nfunc (f *queueMetricsFactory) newQueueMetrics(name string, clock clock.Clock) queueMetrics {\n\tmp := f.metricsProvider\n\tif len(name) == 0 || mp == (noopMetricsProvider{}) {\n\t\treturn noMetrics{}\n\t}\n\treturn &defaultQueueMetrics{\n\t\tclock:                   clock,\n\t\tdepth:                   mp.NewDepthMetric(name),\n\t\tadds:                    mp.NewAddsMetric(name),\n\t\tlatency:                 mp.NewLatencyMetric(name),\n\t\tworkDuration:            mp.NewWorkDurationMetric(name),\n\t\tunfinishedWorkSeconds:   mp.NewUnfinishedWorkSecondsMetric(name),\n\t\tlongestRunningProcessor: mp.NewLongestRunningProcessorSecondsMetric(name),\n\t\taddTimes:                map[t]time.Time{},\n\t\tprocessingStartTimes:    map[t]time.Time{},\n\t}\n}\n\nfunc newRetryMetrics(name string, provider MetricsProvider) retryMetrics {\n\tvar ret *defaultRetryMetrics\n\tif len(name) == 0 {\n\t\treturn ret\n\t}\n\n\tif provider == nil {\n\t\tprovider = globalMetricsFactory.metricsProvider\n\t}\n\n\treturn &defaultRetryMetrics{\n\t\tretries: provider.NewRetriesMetric(name),\n\t}\n}\n\n// SetProvider sets the metrics provider for all subsequently created work\n// queues. Only the first call has an effect.\nfunc SetProvider(metricsProvider MetricsProvider) {\n\tglobalMetricsFactory.setProvider(metricsProvider)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/parallelizer.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\ntype DoWorkPieceFunc func(piece int)\n\ntype options struct {\n\tchunkSize int\n}\n\ntype Options func(*options)\n\n// WithChunkSize allows to set chunks of work items to the workers, rather than\n// processing one by one.\n// It is recommended to use this option if the number of pieces significantly\n// higher than the number of workers and the work done for each item is small.\nfunc WithChunkSize(c int) func(*options) {\n\treturn func(o *options) {\n\t\to.chunkSize = c\n\t}\n}\n\n// ParallelizeUntil is a framework that allows for parallelizing N\n// independent pieces of work until done or the context is canceled.\nfunc ParallelizeUntil(ctx context.Context, workers, pieces int, doWorkPiece DoWorkPieceFunc, opts ...Options) {\n\tif pieces == 0 {\n\t\treturn\n\t}\n\to := options{}\n\tfor _, opt := range opts {\n\t\topt(&o)\n\t}\n\tchunkSize := o.chunkSize\n\tif chunkSize < 1 {\n\t\tchunkSize = 1\n\t}\n\n\tchunks := ceilDiv(pieces, chunkSize)\n\ttoProcess := make(chan int, chunks)\n\tfor i := 0; i < chunks; i++ {\n\t\ttoProcess <- i\n\t}\n\tclose(toProcess)\n\n\tvar stop <-chan struct{}\n\tif ctx != nil {\n\t\tstop = ctx.Done()\n\t}\n\tif chunks < workers {\n\t\tworkers = chunks\n\t}\n\twg := sync.WaitGroup{}\n\twg.Add(workers)\n\tfor i := 0; i < workers; i++ {\n\t\tgo func() {\n\t\t\tdefer utilruntime.HandleCrash()\n\t\t\tdefer wg.Done()\n\t\t\tfor chunk := range toProcess {\n\t\t\t\tstart := chunk * chunkSize\n\t\t\t\tend := start + chunkSize\n\t\t\t\tif end > pieces {\n\t\t\t\t\tend = pieces\n\t\t\t\t}\n\t\t\t\tfor p := start; p < end; p++ {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-stop:\n\t\t\t\t\t\treturn\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tdoWorkPiece(p)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\twg.Wait()\n}\n\nfunc ceilDiv(a, b int) int {\n\treturn (a + b - 1) / b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/queue.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\ntype Interface interface {\n\tAdd(item interface{})\n\tLen() int\n\tGet() (item interface{}, shutdown bool)\n\tDone(item interface{})\n\tShutDown()\n\tShutDownWithDrain()\n\tShuttingDown() bool\n}\n\n// QueueConfig specifies optional configurations to customize an Interface.\ntype QueueConfig struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock ability to inject real or fake clock for testing purposes.\n\tClock clock.WithTicker\n}\n\n// New constructs a new work queue (see the package comment).\nfunc New() *Type {\n\treturn NewWithConfig(QueueConfig{\n\t\tName: \"\",\n\t})\n}\n\n// NewWithConfig constructs a new workqueue with ability to\n// customize different properties.\nfunc NewWithConfig(config QueueConfig) *Type {\n\treturn newQueueWithConfig(config, defaultUnfinishedWorkUpdatePeriod)\n}\n\n// NewNamed creates a new named queue.\n// Deprecated: Use NewWithConfig instead.\nfunc NewNamed(name string) *Type {\n\treturn NewWithConfig(QueueConfig{\n\t\tName: name,\n\t})\n}\n\n// newQueueWithConfig constructs a new named workqueue\n// with the ability to customize different properties for testing purposes\nfunc newQueueWithConfig(config QueueConfig, updatePeriod time.Duration) *Type {\n\tvar metricsFactory *queueMetricsFactory\n\tif config.MetricsProvider != nil {\n\t\tmetricsFactory = &queueMetricsFactory{\n\t\t\tmetricsProvider: config.MetricsProvider,\n\t\t}\n\t} else {\n\t\tmetricsFactory = &globalMetricsFactory\n\t}\n\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\treturn newQueue(\n\t\tconfig.Clock,\n\t\tmetricsFactory.newQueueMetrics(config.Name, config.Clock),\n\t\tupdatePeriod,\n\t)\n}\n\nfunc newQueue(c clock.WithTicker, metrics queueMetrics, updatePeriod time.Duration) *Type {\n\tt := &Type{\n\t\tclock:                      c,\n\t\tdirty:                      set{},\n\t\tprocessing:                 set{},\n\t\tcond:                       sync.NewCond(&sync.Mutex{}),\n\t\tmetrics:                    metrics,\n\t\tunfinishedWorkUpdatePeriod: updatePeriod,\n\t}\n\n\t// Don't start the goroutine for a type of noMetrics so we don't consume\n\t// resources unnecessarily\n\tif _, ok := metrics.(noMetrics); !ok {\n\t\tgo t.updateUnfinishedWorkLoop()\n\t}\n\n\treturn t\n}\n\nconst defaultUnfinishedWorkUpdatePeriod = 500 * time.Millisecond\n\n// Type is a work queue (see the package comment).\ntype Type struct {\n\t// queue defines the order in which we will work on items. Every\n\t// element of queue should be in the dirty set and not in the\n\t// processing set.\n\tqueue []t\n\n\t// dirty defines all of the items that need to be processed.\n\tdirty set\n\n\t// Things that are currently being processed are in the processing set.\n\t// These things may be simultaneously in the dirty set. When we finish\n\t// processing something and remove it from this set, we'll check if\n\t// it's in the dirty set, and if so, add it to the queue.\n\tprocessing set\n\n\tcond *sync.Cond\n\n\tshuttingDown bool\n\tdrain        bool\n\n\tmetrics queueMetrics\n\n\tunfinishedWorkUpdatePeriod time.Duration\n\tclock                      clock.WithTicker\n}\n\ntype empty struct{}\ntype t interface{}\ntype set map[t]empty\n\nfunc (s set) has(item t) bool {\n\t_, exists := s[item]\n\treturn exists\n}\n\nfunc (s set) insert(item t) {\n\ts[item] = empty{}\n}\n\nfunc (s set) delete(item t) {\n\tdelete(s, item)\n}\n\nfunc (s set) len() int {\n\treturn len(s)\n}\n\n// Add marks item as needing processing.\nfunc (q *Type) Add(item interface{}) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tif q.shuttingDown {\n\t\treturn\n\t}\n\tif q.dirty.has(item) {\n\t\treturn\n\t}\n\n\tq.metrics.add(item)\n\n\tq.dirty.insert(item)\n\tif q.processing.has(item) {\n\t\treturn\n\t}\n\n\tq.queue = append(q.queue, item)\n\tq.cond.Signal()\n}\n\n// Len returns the current queue length, for informational purposes only. You\n// shouldn't e.g. gate a call to Add() or Get() on Len() being a particular\n// value, that can't be synchronized properly.\nfunc (q *Type) Len() int {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\treturn len(q.queue)\n}\n\n// Get blocks until it can return an item to be processed. If shutdown = true,\n// the caller should end their goroutine. You must call Done with item when you\n// have finished processing it.\nfunc (q *Type) Get() (item interface{}, shutdown bool) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tfor len(q.queue) == 0 && !q.shuttingDown {\n\t\tq.cond.Wait()\n\t}\n\tif len(q.queue) == 0 {\n\t\t// We must be shutting down.\n\t\treturn nil, true\n\t}\n\n\titem = q.queue[0]\n\t// The underlying array still exists and reference this object, so the object will not be garbage collected.\n\tq.queue[0] = nil\n\tq.queue = q.queue[1:]\n\n\tq.metrics.get(item)\n\n\tq.processing.insert(item)\n\tq.dirty.delete(item)\n\n\treturn item, false\n}\n\n// Done marks item as done processing, and if it has been marked as dirty again\n// while it was being processed, it will be re-added to the queue for\n// re-processing.\nfunc (q *Type) Done(item interface{}) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\tq.metrics.done(item)\n\n\tq.processing.delete(item)\n\tif q.dirty.has(item) {\n\t\tq.queue = append(q.queue, item)\n\t\tq.cond.Signal()\n\t} else if q.processing.len() == 0 {\n\t\tq.cond.Signal()\n\t}\n}\n\n// ShutDown will cause q to ignore all new items added to it and\n// immediately instruct the worker goroutines to exit.\nfunc (q *Type) ShutDown() {\n\tq.setDrain(false)\n\tq.shutdown()\n}\n\n// ShutDownWithDrain will cause q to ignore all new items added to it. As soon\n// as the worker goroutines have \"drained\", i.e: finished processing and called\n// Done on all existing items in the queue; they will be instructed to exit and\n// ShutDownWithDrain will return. Hence: a strict requirement for using this is;\n// your workers must ensure that Done is called on all items in the queue once\n// the shut down has been initiated, if that is not the case: this will block\n// indefinitely. It is, however, safe to call ShutDown after having called\n// ShutDownWithDrain, as to force the queue shut down to terminate immediately\n// without waiting for the drainage.\nfunc (q *Type) ShutDownWithDrain() {\n\tq.setDrain(true)\n\tq.shutdown()\n\tfor q.isProcessing() && q.shouldDrain() {\n\t\tq.waitForProcessing()\n\t}\n}\n\n// isProcessing indicates if there are still items on the work queue being\n// processed. It's used to drain the work queue on an eventual shutdown.\nfunc (q *Type) isProcessing() bool {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\treturn q.processing.len() != 0\n}\n\n// waitForProcessing waits for the worker goroutines to finish processing items\n// and call Done on them.\nfunc (q *Type) waitForProcessing() {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\t// Ensure that we do not wait on a queue which is already empty, as that\n\t// could result in waiting for Done to be called on items in an empty queue\n\t// which has already been shut down, which will result in waiting\n\t// indefinitely.\n\tif q.processing.len() == 0 {\n\t\treturn\n\t}\n\tq.cond.Wait()\n}\n\nfunc (q *Type) setDrain(shouldDrain bool) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tq.drain = shouldDrain\n}\n\nfunc (q *Type) shouldDrain() bool {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\treturn q.drain\n}\n\nfunc (q *Type) shutdown() {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tq.shuttingDown = true\n\tq.cond.Broadcast()\n}\n\nfunc (q *Type) ShuttingDown() bool {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\treturn q.shuttingDown\n}\n\nfunc (q *Type) updateUnfinishedWorkLoop() {\n\tt := q.clock.NewTicker(q.unfinishedWorkUpdatePeriod)\n\tdefer t.Stop()\n\tfor range t.C() {\n\t\tif !func() bool {\n\t\t\tq.cond.L.Lock()\n\t\t\tdefer q.cond.L.Unlock()\n\t\t\tif !q.shuttingDown {\n\t\t\t\tq.metrics.updateUnfinishedWork()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\n\t\t}() {\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/rate_limiting_queue.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport \"k8s.io/utils/clock\"\n\n// RateLimitingInterface is an interface that rate limits items being added to the queue.\ntype RateLimitingInterface interface {\n\tDelayingInterface\n\n\t// AddRateLimited adds an item to the workqueue after the rate limiter says it's ok\n\tAddRateLimited(item interface{})\n\n\t// Forget indicates that an item is finished being retried.  Doesn't matter whether it's for perm failing\n\t// or for success, we'll stop the rate limiter from tracking it.  This only clears the `rateLimiter`, you\n\t// still have to call `Done` on the queue.\n\tForget(item interface{})\n\n\t// NumRequeues returns back how many times the item was requeued\n\tNumRequeues(item interface{}) int\n}\n\n// RateLimitingQueueConfig specifies optional configurations to customize a RateLimitingInterface.\n\ntype RateLimitingQueueConfig struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock optionally allows injecting a real or fake clock for testing purposes.\n\tClock clock.WithTicker\n\n\t// DelayingQueue optionally allows injecting custom delaying queue DelayingInterface instead of the default one.\n\tDelayingQueue DelayingInterface\n}\n\n// NewRateLimitingQueue constructs a new workqueue with rateLimited queuing ability\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\n// NewRateLimitingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewRateLimitingQueueWithConfig instead and specify a name.\nfunc NewRateLimitingQueue(rateLimiter RateLimiter) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{})\n}\n\n// NewRateLimitingQueueWithConfig constructs a new workqueue with rateLimited queuing ability\n// with options to customize different properties.\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\nfunc NewRateLimitingQueueWithConfig(rateLimiter RateLimiter, config RateLimitingQueueConfig) RateLimitingInterface {\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\tif config.DelayingQueue == nil {\n\t\tconfig.DelayingQueue = NewDelayingQueueWithConfig(DelayingQueueConfig{\n\t\t\tName:            config.Name,\n\t\t\tMetricsProvider: config.MetricsProvider,\n\t\t\tClock:           config.Clock,\n\t\t})\n\t}\n\n\treturn &rateLimitingType{\n\t\tDelayingInterface: config.DelayingQueue,\n\t\trateLimiter:       rateLimiter,\n\t}\n}\n\n// NewNamedRateLimitingQueue constructs a new named workqueue with rateLimited queuing ability.\n// Deprecated: Use NewRateLimitingQueueWithConfig instead.\nfunc NewNamedRateLimitingQueue(rateLimiter RateLimiter, name string) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{\n\t\tName: name,\n\t})\n}\n\n// NewRateLimitingQueueWithDelayingInterface constructs a new named workqueue with rateLimited queuing ability\n// with the option to inject a custom delaying queue instead of the default one.\n// Deprecated: Use NewRateLimitingQueueWithConfig instead.\nfunc NewRateLimitingQueueWithDelayingInterface(di DelayingInterface, rateLimiter RateLimiter) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{\n\t\tDelayingQueue: di,\n\t})\n}\n\n// rateLimitingType wraps an Interface and provides rateLimited re-enquing\ntype rateLimitingType struct {\n\tDelayingInterface\n\n\trateLimiter RateLimiter\n}\n\n// AddRateLimited AddAfter's the item based on the time when the rate limiter says it's ok\nfunc (q *rateLimitingType) AddRateLimited(item interface{}) {\n\tq.DelayingInterface.AddAfter(item, q.rateLimiter.When(item))\n}\n\nfunc (q *rateLimitingType) NumRequeues(item interface{}) int {\n\treturn q.rateLimiter.NumRequeues(item)\n}\n\nfunc (q *rateLimitingType) Forget(item interface{}) {\n\tq.rateLimiter.Forget(item)\n}\n"
  },
  {
    "path": "vendor/k8s.io/cri-api/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: api.proto\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\t_ \"github.com/gogo/protobuf/gogoproto\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tgrpc \"google.golang.org/grpc\"\n\tcodes \"google.golang.org/grpc/codes\"\n\tstatus \"google.golang.org/grpc/status\"\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\ntype Protocol int32\n\nconst (\n\tProtocol_TCP  Protocol = 0\n\tProtocol_UDP  Protocol = 1\n\tProtocol_SCTP Protocol = 2\n)\n\nvar Protocol_name = map[int32]string{\n\t0: \"TCP\",\n\t1: \"UDP\",\n\t2: \"SCTP\",\n}\n\nvar Protocol_value = map[string]int32{\n\t\"TCP\":  0,\n\t\"UDP\":  1,\n\t\"SCTP\": 2,\n}\n\nfunc (x Protocol) String() string {\n\treturn proto.EnumName(Protocol_name, int32(x))\n}\n\nfunc (Protocol) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{0}\n}\n\ntype MountPropagation int32\n\nconst (\n\t// No mount propagation (\"private\" in Linux terminology).\n\tMountPropagation_PROPAGATION_PRIVATE MountPropagation = 0\n\t// Mounts get propagated from the host to the container (\"rslave\" in Linux).\n\tMountPropagation_PROPAGATION_HOST_TO_CONTAINER MountPropagation = 1\n\t// Mounts get propagated from the host to the container and from the\n\t// container to the host (\"rshared\" in Linux).\n\tMountPropagation_PROPAGATION_BIDIRECTIONAL MountPropagation = 2\n)\n\nvar MountPropagation_name = map[int32]string{\n\t0: \"PROPAGATION_PRIVATE\",\n\t1: \"PROPAGATION_HOST_TO_CONTAINER\",\n\t2: \"PROPAGATION_BIDIRECTIONAL\",\n}\n\nvar MountPropagation_value = map[string]int32{\n\t\"PROPAGATION_PRIVATE\":           0,\n\t\"PROPAGATION_HOST_TO_CONTAINER\": 1,\n\t\"PROPAGATION_BIDIRECTIONAL\":     2,\n}\n\nfunc (x MountPropagation) String() string {\n\treturn proto.EnumName(MountPropagation_name, int32(x))\n}\n\nfunc (MountPropagation) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{1}\n}\n\n// A NamespaceMode describes the intended namespace configuration for each\n// of the namespaces (Network, PID, IPC) in NamespaceOption. Runtimes should\n// map these modes as appropriate for the technology underlying the runtime.\ntype NamespaceMode int32\n\nconst (\n\t// A POD namespace is common to all containers in a pod.\n\t// For example, a container with a PID namespace of POD expects to view\n\t// all of the processes in all of the containers in the pod.\n\tNamespaceMode_POD NamespaceMode = 0\n\t// A CONTAINER namespace is restricted to a single container.\n\t// For example, a container with a PID namespace of CONTAINER expects to\n\t// view only the processes in that container.\n\tNamespaceMode_CONTAINER NamespaceMode = 1\n\t// A NODE namespace is the namespace of the Kubernetes node.\n\t// For example, a container with a PID namespace of NODE expects to view\n\t// all of the processes on the host running the kubelet.\n\tNamespaceMode_NODE NamespaceMode = 2\n\t// TARGET targets the namespace of another container. When this is specified,\n\t// a target_id must be specified in NamespaceOption and refer to a container\n\t// previously created with NamespaceMode CONTAINER. This containers namespace\n\t// will be made to match that of container target_id.\n\t// For example, a container with a PID namespace of TARGET expects to view\n\t// all of the processes that container target_id can view.\n\tNamespaceMode_TARGET NamespaceMode = 3\n)\n\nvar NamespaceMode_name = map[int32]string{\n\t0: \"POD\",\n\t1: \"CONTAINER\",\n\t2: \"NODE\",\n\t3: \"TARGET\",\n}\n\nvar NamespaceMode_value = map[string]int32{\n\t\"POD\":       0,\n\t\"CONTAINER\": 1,\n\t\"NODE\":      2,\n\t\"TARGET\":    3,\n}\n\nfunc (x NamespaceMode) String() string {\n\treturn proto.EnumName(NamespaceMode_name, int32(x))\n}\n\nfunc (NamespaceMode) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{2}\n}\n\ntype PodSandboxState int32\n\nconst (\n\tPodSandboxState_SANDBOX_READY    PodSandboxState = 0\n\tPodSandboxState_SANDBOX_NOTREADY PodSandboxState = 1\n)\n\nvar PodSandboxState_name = map[int32]string{\n\t0: \"SANDBOX_READY\",\n\t1: \"SANDBOX_NOTREADY\",\n}\n\nvar PodSandboxState_value = map[string]int32{\n\t\"SANDBOX_READY\":    0,\n\t\"SANDBOX_NOTREADY\": 1,\n}\n\nfunc (x PodSandboxState) String() string {\n\treturn proto.EnumName(PodSandboxState_name, int32(x))\n}\n\nfunc (PodSandboxState) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{3}\n}\n\ntype ContainerState int32\n\nconst (\n\tContainerState_CONTAINER_CREATED ContainerState = 0\n\tContainerState_CONTAINER_RUNNING ContainerState = 1\n\tContainerState_CONTAINER_EXITED  ContainerState = 2\n\tContainerState_CONTAINER_UNKNOWN ContainerState = 3\n)\n\nvar ContainerState_name = map[int32]string{\n\t0: \"CONTAINER_CREATED\",\n\t1: \"CONTAINER_RUNNING\",\n\t2: \"CONTAINER_EXITED\",\n\t3: \"CONTAINER_UNKNOWN\",\n}\n\nvar ContainerState_value = map[string]int32{\n\t\"CONTAINER_CREATED\": 0,\n\t\"CONTAINER_RUNNING\": 1,\n\t\"CONTAINER_EXITED\":  2,\n\t\"CONTAINER_UNKNOWN\": 3,\n}\n\nfunc (x ContainerState) String() string {\n\treturn proto.EnumName(ContainerState_name, int32(x))\n}\n\nfunc (ContainerState) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{4}\n}\n\ntype ContainerEventType int32\n\nconst (\n\t// Container created\n\tContainerEventType_CONTAINER_CREATED_EVENT ContainerEventType = 0\n\t// Container started\n\tContainerEventType_CONTAINER_STARTED_EVENT ContainerEventType = 1\n\t// Container stopped\n\tContainerEventType_CONTAINER_STOPPED_EVENT ContainerEventType = 2\n\t// Container deleted\n\tContainerEventType_CONTAINER_DELETED_EVENT ContainerEventType = 3\n)\n\nvar ContainerEventType_name = map[int32]string{\n\t0: \"CONTAINER_CREATED_EVENT\",\n\t1: \"CONTAINER_STARTED_EVENT\",\n\t2: \"CONTAINER_STOPPED_EVENT\",\n\t3: \"CONTAINER_DELETED_EVENT\",\n}\n\nvar ContainerEventType_value = map[string]int32{\n\t\"CONTAINER_CREATED_EVENT\": 0,\n\t\"CONTAINER_STARTED_EVENT\": 1,\n\t\"CONTAINER_STOPPED_EVENT\": 2,\n\t\"CONTAINER_DELETED_EVENT\": 3,\n}\n\nfunc (x ContainerEventType) String() string {\n\treturn proto.EnumName(ContainerEventType_name, int32(x))\n}\n\nfunc (ContainerEventType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{5}\n}\n\n// Available profile types.\ntype SecurityProfile_ProfileType int32\n\nconst (\n\t// The container runtime default profile should be used.\n\tSecurityProfile_RuntimeDefault SecurityProfile_ProfileType = 0\n\t// Disable the feature for the sandbox or the container.\n\tSecurityProfile_Unconfined SecurityProfile_ProfileType = 1\n\t// A pre-defined profile on the node should be used.\n\tSecurityProfile_Localhost SecurityProfile_ProfileType = 2\n)\n\nvar SecurityProfile_ProfileType_name = map[int32]string{\n\t0: \"RuntimeDefault\",\n\t1: \"Unconfined\",\n\t2: \"Localhost\",\n}\n\nvar SecurityProfile_ProfileType_value = map[string]int32{\n\t\"RuntimeDefault\": 0,\n\t\"Unconfined\":     1,\n\t\"Localhost\":      2,\n}\n\nfunc (x SecurityProfile_ProfileType) String() string {\n\treturn proto.EnumName(SecurityProfile_ProfileType_name, int32(x))\n}\n\nfunc (SecurityProfile_ProfileType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{10, 0}\n}\n\ntype VersionRequest struct {\n\t// Version of the kubelet runtime API.\n\tVersion              string   `protobuf:\"bytes,1,opt,name=version,proto3\" json:\"version,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *VersionRequest) Reset()      { *m = VersionRequest{} }\nfunc (*VersionRequest) ProtoMessage() {}\nfunc (*VersionRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{0}\n}\nfunc (m *VersionRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_VersionRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *VersionRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VersionRequest.Merge(m, src)\n}\nfunc (m *VersionRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VersionRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_VersionRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VersionRequest proto.InternalMessageInfo\n\nfunc (m *VersionRequest) GetVersion() string {\n\tif m != nil {\n\t\treturn m.Version\n\t}\n\treturn \"\"\n}\n\ntype VersionResponse struct {\n\t// Version of the kubelet runtime API.\n\tVersion string `protobuf:\"bytes,1,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// Name of the container runtime.\n\tRuntimeName string `protobuf:\"bytes,2,opt,name=runtime_name,json=runtimeName,proto3\" json:\"runtime_name,omitempty\"`\n\t// Version of the container runtime. The string must be\n\t// semver-compatible.\n\tRuntimeVersion string `protobuf:\"bytes,3,opt,name=runtime_version,json=runtimeVersion,proto3\" json:\"runtime_version,omitempty\"`\n\t// API version of the container runtime. The string must be\n\t// semver-compatible.\n\tRuntimeApiVersion    string   `protobuf:\"bytes,4,opt,name=runtime_api_version,json=runtimeApiVersion,proto3\" json:\"runtime_api_version,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *VersionResponse) Reset()      { *m = VersionResponse{} }\nfunc (*VersionResponse) ProtoMessage() {}\nfunc (*VersionResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{1}\n}\nfunc (m *VersionResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_VersionResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *VersionResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VersionResponse.Merge(m, src)\n}\nfunc (m *VersionResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VersionResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_VersionResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VersionResponse proto.InternalMessageInfo\n\nfunc (m *VersionResponse) GetVersion() string {\n\tif m != nil {\n\t\treturn m.Version\n\t}\n\treturn \"\"\n}\n\nfunc (m *VersionResponse) GetRuntimeName() string {\n\tif m != nil {\n\t\treturn m.RuntimeName\n\t}\n\treturn \"\"\n}\n\nfunc (m *VersionResponse) GetRuntimeVersion() string {\n\tif m != nil {\n\t\treturn m.RuntimeVersion\n\t}\n\treturn \"\"\n}\n\nfunc (m *VersionResponse) GetRuntimeApiVersion() string {\n\tif m != nil {\n\t\treturn m.RuntimeApiVersion\n\t}\n\treturn \"\"\n}\n\n// DNSConfig specifies the DNS servers and search domains of a sandbox.\ntype DNSConfig struct {\n\t// List of DNS servers of the cluster.\n\tServers []string `protobuf:\"bytes,1,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\t// List of DNS search domains of the cluster.\n\tSearches []string `protobuf:\"bytes,2,rep,name=searches,proto3\" json:\"searches,omitempty\"`\n\t// List of DNS options. See https://linux.die.net/man/5/resolv.conf\n\t// for all available options.\n\tOptions              []string `protobuf:\"bytes,3,rep,name=options,proto3\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *DNSConfig) Reset()      { *m = DNSConfig{} }\nfunc (*DNSConfig) ProtoMessage() {}\nfunc (*DNSConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{2}\n}\nfunc (m *DNSConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DNSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_DNSConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *DNSConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DNSConfig.Merge(m, src)\n}\nfunc (m *DNSConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DNSConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_DNSConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DNSConfig proto.InternalMessageInfo\n\nfunc (m *DNSConfig) GetServers() []string {\n\tif m != nil {\n\t\treturn m.Servers\n\t}\n\treturn nil\n}\n\nfunc (m *DNSConfig) GetSearches() []string {\n\tif m != nil {\n\t\treturn m.Searches\n\t}\n\treturn nil\n}\n\nfunc (m *DNSConfig) GetOptions() []string {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// PortMapping specifies the port mapping configurations of a sandbox.\ntype PortMapping struct {\n\t// Protocol of the port mapping.\n\tProtocol Protocol `protobuf:\"varint,1,opt,name=protocol,proto3,enum=runtime.v1.Protocol\" json:\"protocol,omitempty\"`\n\t// Port number within the container. Default: 0 (not specified).\n\tContainerPort int32 `protobuf:\"varint,2,opt,name=container_port,json=containerPort,proto3\" json:\"container_port,omitempty\"`\n\t// Port number on the host. Default: 0 (not specified).\n\tHostPort int32 `protobuf:\"varint,3,opt,name=host_port,json=hostPort,proto3\" json:\"host_port,omitempty\"`\n\t// Host IP.\n\tHostIp               string   `protobuf:\"bytes,4,opt,name=host_ip,json=hostIp,proto3\" json:\"host_ip,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PortMapping) Reset()      { *m = PortMapping{} }\nfunc (*PortMapping) ProtoMessage() {}\nfunc (*PortMapping) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{3}\n}\nfunc (m *PortMapping) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PortMapping.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PortMapping) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortMapping.Merge(m, src)\n}\nfunc (m *PortMapping) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortMapping) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortMapping.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortMapping proto.InternalMessageInfo\n\nfunc (m *PortMapping) GetProtocol() Protocol {\n\tif m != nil {\n\t\treturn m.Protocol\n\t}\n\treturn Protocol_TCP\n}\n\nfunc (m *PortMapping) GetContainerPort() int32 {\n\tif m != nil {\n\t\treturn m.ContainerPort\n\t}\n\treturn 0\n}\n\nfunc (m *PortMapping) GetHostPort() int32 {\n\tif m != nil {\n\t\treturn m.HostPort\n\t}\n\treturn 0\n}\n\nfunc (m *PortMapping) GetHostIp() string {\n\tif m != nil {\n\t\treturn m.HostIp\n\t}\n\treturn \"\"\n}\n\n// Mount specifies a host volume to mount into a container.\ntype Mount struct {\n\t// Path of the mount within the container.\n\tContainerPath string `protobuf:\"bytes,1,opt,name=container_path,json=containerPath,proto3\" json:\"container_path,omitempty\"`\n\t// Path of the mount on the host. If the hostPath doesn't exist, then runtimes\n\t// should report error. If the hostpath is a symbolic link, runtimes should\n\t// follow the symlink and mount the real destination to container.\n\tHostPath string `protobuf:\"bytes,2,opt,name=host_path,json=hostPath,proto3\" json:\"host_path,omitempty\"`\n\t// If set, the mount is read-only.\n\tReadonly bool `protobuf:\"varint,3,opt,name=readonly,proto3\" json:\"readonly,omitempty\"`\n\t// If set, the mount needs SELinux relabeling.\n\tSelinuxRelabel bool `protobuf:\"varint,4,opt,name=selinux_relabel,json=selinuxRelabel,proto3\" json:\"selinux_relabel,omitempty\"`\n\t// Requested propagation mode.\n\tPropagation          MountPropagation `protobuf:\"varint,5,opt,name=propagation,proto3,enum=runtime.v1.MountPropagation\" json:\"propagation,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}         `json:\"-\"`\n\tXXX_sizecache        int32            `json:\"-\"`\n}\n\nfunc (m *Mount) Reset()      { *m = Mount{} }\nfunc (*Mount) ProtoMessage() {}\nfunc (*Mount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{4}\n}\nfunc (m *Mount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Mount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Mount.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Mount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Mount.Merge(m, src)\n}\nfunc (m *Mount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Mount) XXX_DiscardUnknown() {\n\txxx_messageInfo_Mount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Mount proto.InternalMessageInfo\n\nfunc (m *Mount) GetContainerPath() string {\n\tif m != nil {\n\t\treturn m.ContainerPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Mount) GetHostPath() string {\n\tif m != nil {\n\t\treturn m.HostPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Mount) GetReadonly() bool {\n\tif m != nil {\n\t\treturn m.Readonly\n\t}\n\treturn false\n}\n\nfunc (m *Mount) GetSelinuxRelabel() bool {\n\tif m != nil {\n\t\treturn m.SelinuxRelabel\n\t}\n\treturn false\n}\n\nfunc (m *Mount) GetPropagation() MountPropagation {\n\tif m != nil {\n\t\treturn m.Propagation\n\t}\n\treturn MountPropagation_PROPAGATION_PRIVATE\n}\n\n// IDMapping describes host to container ID mappings for a pod sandbox.\ntype IDMapping struct {\n\t// HostId is the id on the host.\n\tHostId uint32 `protobuf:\"varint,1,opt,name=host_id,json=hostId,proto3\" json:\"host_id,omitempty\"`\n\t// ContainerId is the id in the container.\n\tContainerId uint32 `protobuf:\"varint,2,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Length is the size of the range to map.\n\tLength               uint32   `protobuf:\"varint,3,opt,name=length,proto3\" json:\"length,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *IDMapping) Reset()      { *m = IDMapping{} }\nfunc (*IDMapping) ProtoMessage() {}\nfunc (*IDMapping) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{5}\n}\nfunc (m *IDMapping) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IDMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_IDMapping.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *IDMapping) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IDMapping.Merge(m, src)\n}\nfunc (m *IDMapping) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IDMapping) XXX_DiscardUnknown() {\n\txxx_messageInfo_IDMapping.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IDMapping proto.InternalMessageInfo\n\nfunc (m *IDMapping) GetHostId() uint32 {\n\tif m != nil {\n\t\treturn m.HostId\n\t}\n\treturn 0\n}\n\nfunc (m *IDMapping) GetContainerId() uint32 {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn 0\n}\n\nfunc (m *IDMapping) GetLength() uint32 {\n\tif m != nil {\n\t\treturn m.Length\n\t}\n\treturn 0\n}\n\n// UserNamespace describes the intended user namespace configuration for a pod sandbox.\ntype UserNamespace struct {\n\t// Mode is the NamespaceMode for this UserNamespace.\n\t// Note: NamespaceMode for UserNamespace currently supports only POD and NODE, not CONTAINER OR TARGET.\n\tMode NamespaceMode `protobuf:\"varint,1,opt,name=mode,proto3,enum=runtime.v1.NamespaceMode\" json:\"mode,omitempty\"`\n\t// Uids specifies the UID mappings for the user namespace.\n\tUids []*IDMapping `protobuf:\"bytes,2,rep,name=uids,proto3\" json:\"uids,omitempty\"`\n\t// Gids specifies the GID mappings for the user namespace.\n\tGids                 []*IDMapping `protobuf:\"bytes,3,rep,name=gids,proto3\" json:\"gids,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *UserNamespace) Reset()      { *m = UserNamespace{} }\nfunc (*UserNamespace) ProtoMessage() {}\nfunc (*UserNamespace) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{6}\n}\nfunc (m *UserNamespace) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UserNamespace.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UserNamespace) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserNamespace.Merge(m, src)\n}\nfunc (m *UserNamespace) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserNamespace) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserNamespace.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserNamespace proto.InternalMessageInfo\n\nfunc (m *UserNamespace) GetMode() NamespaceMode {\n\tif m != nil {\n\t\treturn m.Mode\n\t}\n\treturn NamespaceMode_POD\n}\n\nfunc (m *UserNamespace) GetUids() []*IDMapping {\n\tif m != nil {\n\t\treturn m.Uids\n\t}\n\treturn nil\n}\n\nfunc (m *UserNamespace) GetGids() []*IDMapping {\n\tif m != nil {\n\t\treturn m.Gids\n\t}\n\treturn nil\n}\n\n// NamespaceOption provides options for Linux namespaces.\ntype NamespaceOption struct {\n\t// Network namespace for this container/sandbox.\n\t// Note: There is currently no way to set CONTAINER scoped network in the Kubernetes API.\n\t// Namespaces currently set by the kubelet: POD, NODE\n\tNetwork NamespaceMode `protobuf:\"varint,1,opt,name=network,proto3,enum=runtime.v1.NamespaceMode\" json:\"network,omitempty\"`\n\t// PID namespace for this container/sandbox.\n\t// Note: The CRI default is POD, but the v1.PodSpec default is CONTAINER.\n\t// The kubelet's runtime manager will set this to CONTAINER explicitly for v1 pods.\n\t// Namespaces currently set by the kubelet: POD, CONTAINER, NODE, TARGET\n\tPid NamespaceMode `protobuf:\"varint,2,opt,name=pid,proto3,enum=runtime.v1.NamespaceMode\" json:\"pid,omitempty\"`\n\t// IPC namespace for this container/sandbox.\n\t// Note: There is currently no way to set CONTAINER scoped IPC in the Kubernetes API.\n\t// Namespaces currently set by the kubelet: POD, NODE\n\tIpc NamespaceMode `protobuf:\"varint,3,opt,name=ipc,proto3,enum=runtime.v1.NamespaceMode\" json:\"ipc,omitempty\"`\n\t// Target Container ID for NamespaceMode of TARGET. This container must have been\n\t// previously created in the same pod. It is not possible to specify different targets\n\t// for each namespace.\n\tTargetId string `protobuf:\"bytes,4,opt,name=target_id,json=targetId,proto3\" json:\"target_id,omitempty\"`\n\t// UsernsOptions for this pod sandbox.\n\t// The Kubelet picks the user namespace configuration to use for the pod sandbox.  The mappings\n\t// are specified as part of the UserNamespace struct.  If the struct is nil, then the POD mode\n\t// must be assumed.  This is done for backward compatibility with older Kubelet versions that\n\t// do not set a user namespace.\n\tUsernsOptions        *UserNamespace `protobuf:\"bytes,5,opt,name=userns_options,json=usernsOptions,proto3\" json:\"userns_options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}       `json:\"-\"`\n\tXXX_sizecache        int32          `json:\"-\"`\n}\n\nfunc (m *NamespaceOption) Reset()      { *m = NamespaceOption{} }\nfunc (*NamespaceOption) ProtoMessage() {}\nfunc (*NamespaceOption) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{7}\n}\nfunc (m *NamespaceOption) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NamespaceOption.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NamespaceOption) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceOption.Merge(m, src)\n}\nfunc (m *NamespaceOption) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceOption) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceOption.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceOption proto.InternalMessageInfo\n\nfunc (m *NamespaceOption) GetNetwork() NamespaceMode {\n\tif m != nil {\n\t\treturn m.Network\n\t}\n\treturn NamespaceMode_POD\n}\n\nfunc (m *NamespaceOption) GetPid() NamespaceMode {\n\tif m != nil {\n\t\treturn m.Pid\n\t}\n\treturn NamespaceMode_POD\n}\n\nfunc (m *NamespaceOption) GetIpc() NamespaceMode {\n\tif m != nil {\n\t\treturn m.Ipc\n\t}\n\treturn NamespaceMode_POD\n}\n\nfunc (m *NamespaceOption) GetTargetId() string {\n\tif m != nil {\n\t\treturn m.TargetId\n\t}\n\treturn \"\"\n}\n\nfunc (m *NamespaceOption) GetUsernsOptions() *UserNamespace {\n\tif m != nil {\n\t\treturn m.UsernsOptions\n\t}\n\treturn nil\n}\n\n// Int64Value is the wrapper of int64.\ntype Int64Value struct {\n\t// The value.\n\tValue                int64    `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *Int64Value) Reset()      { *m = Int64Value{} }\nfunc (*Int64Value) ProtoMessage() {}\nfunc (*Int64Value) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{8}\n}\nfunc (m *Int64Value) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Int64Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Int64Value.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Int64Value) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Int64Value.Merge(m, src)\n}\nfunc (m *Int64Value) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Int64Value) XXX_DiscardUnknown() {\n\txxx_messageInfo_Int64Value.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Int64Value proto.InternalMessageInfo\n\nfunc (m *Int64Value) GetValue() int64 {\n\tif m != nil {\n\t\treturn m.Value\n\t}\n\treturn 0\n}\n\n// LinuxSandboxSecurityContext holds linux security configuration that will be\n// applied to a sandbox. Note that:\n//  1. It does not apply to containers in the pods.\n//  2. It may not be applicable to a PodSandbox which does not contain any running\n//     process.\ntype LinuxSandboxSecurityContext struct {\n\t// Configurations for the sandbox's namespaces.\n\t// This will be used only if the PodSandbox uses namespace for isolation.\n\tNamespaceOptions *NamespaceOption `protobuf:\"bytes,1,opt,name=namespace_options,json=namespaceOptions,proto3\" json:\"namespace_options,omitempty\"`\n\t// Optional SELinux context to be applied.\n\tSelinuxOptions *SELinuxOption `protobuf:\"bytes,2,opt,name=selinux_options,json=selinuxOptions,proto3\" json:\"selinux_options,omitempty\"`\n\t// UID to run sandbox processes as, when applicable.\n\tRunAsUser *Int64Value `protobuf:\"bytes,3,opt,name=run_as_user,json=runAsUser,proto3\" json:\"run_as_user,omitempty\"`\n\t// GID to run sandbox processes as, when applicable. run_as_group should only\n\t// be specified when run_as_user is specified; otherwise, the runtime MUST error.\n\tRunAsGroup *Int64Value `protobuf:\"bytes,8,opt,name=run_as_group,json=runAsGroup,proto3\" json:\"run_as_group,omitempty\"`\n\t// If set, the root filesystem of the sandbox is read-only.\n\tReadonlyRootfs bool `protobuf:\"varint,4,opt,name=readonly_rootfs,json=readonlyRootfs,proto3\" json:\"readonly_rootfs,omitempty\"`\n\t// List of groups applied to the first process run in the sandbox, in\n\t// addition to the sandbox's primary GID.\n\tSupplementalGroups []int64 `protobuf:\"varint,5,rep,packed,name=supplemental_groups,json=supplementalGroups,proto3\" json:\"supplemental_groups,omitempty\"`\n\t// Indicates whether the sandbox will be asked to run a privileged\n\t// container. If a privileged container is to be executed within it, this\n\t// MUST be true.\n\t// This allows a sandbox to take additional security precautions if no\n\t// privileged containers are expected to be run.\n\tPrivileged bool `protobuf:\"varint,6,opt,name=privileged,proto3\" json:\"privileged,omitempty\"`\n\t// Seccomp profile for the sandbox.\n\tSeccomp *SecurityProfile `protobuf:\"bytes,9,opt,name=seccomp,proto3\" json:\"seccomp,omitempty\"`\n\t// AppArmor profile for the sandbox.\n\tApparmor *SecurityProfile `protobuf:\"bytes,10,opt,name=apparmor,proto3\" json:\"apparmor,omitempty\"`\n\t// Seccomp profile for the sandbox, candidate values are:\n\t//   - runtime/default: the default profile for the container runtime\n\t//   - unconfined: unconfined profile, ie, no seccomp sandboxing\n\t//   - localhost/<full-path-to-profile>: the profile installed on the node.\n\t//     <full-path-to-profile> is the full path of the profile.\n\t//\n\t// Default: \"\", which is identical with unconfined.\n\tSeccompProfilePath   string   `protobuf:\"bytes,7,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3\" json:\"seccomp_profile_path,omitempty\"` // Deprecated: Do not use.\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *LinuxSandboxSecurityContext) Reset()      { *m = LinuxSandboxSecurityContext{} }\nfunc (*LinuxSandboxSecurityContext) ProtoMessage() {}\nfunc (*LinuxSandboxSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{9}\n}\nfunc (m *LinuxSandboxSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxSandboxSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxSandboxSecurityContext.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxSandboxSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxSandboxSecurityContext.Merge(m, src)\n}\nfunc (m *LinuxSandboxSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxSandboxSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxSandboxSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxSandboxSecurityContext proto.InternalMessageInfo\n\nfunc (m *LinuxSandboxSecurityContext) GetNamespaceOptions() *NamespaceOption {\n\tif m != nil {\n\t\treturn m.NamespaceOptions\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetSelinuxOptions() *SELinuxOption {\n\tif m != nil {\n\t\treturn m.SelinuxOptions\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetRunAsUser() *Int64Value {\n\tif m != nil {\n\t\treturn m.RunAsUser\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetRunAsGroup() *Int64Value {\n\tif m != nil {\n\t\treturn m.RunAsGroup\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetReadonlyRootfs() bool {\n\tif m != nil {\n\t\treturn m.ReadonlyRootfs\n\t}\n\treturn false\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetSupplementalGroups() []int64 {\n\tif m != nil {\n\t\treturn m.SupplementalGroups\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetPrivileged() bool {\n\tif m != nil {\n\t\treturn m.Privileged\n\t}\n\treturn false\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetSeccomp() *SecurityProfile {\n\tif m != nil {\n\t\treturn m.Seccomp\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) GetApparmor() *SecurityProfile {\n\tif m != nil {\n\t\treturn m.Apparmor\n\t}\n\treturn nil\n}\n\n// Deprecated: Do not use.\nfunc (m *LinuxSandboxSecurityContext) GetSeccompProfilePath() string {\n\tif m != nil {\n\t\treturn m.SeccompProfilePath\n\t}\n\treturn \"\"\n}\n\n// A security profile which can be used for sandboxes and containers.\ntype SecurityProfile struct {\n\t// Indicator which `ProfileType` should be applied.\n\tProfileType SecurityProfile_ProfileType `protobuf:\"varint,1,opt,name=profile_type,json=profileType,proto3,enum=runtime.v1.SecurityProfile_ProfileType\" json:\"profile_type,omitempty\"`\n\t// Indicates that a pre-defined profile on the node should be used.\n\t// Must only be set if `ProfileType` is `Localhost`.\n\t// For seccomp, it must be an absolute path to the seccomp profile.\n\t// For AppArmor, this field is the AppArmor `<profile name>/`\n\tLocalhostRef         string   `protobuf:\"bytes,2,opt,name=localhost_ref,json=localhostRef,proto3\" json:\"localhost_ref,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *SecurityProfile) Reset()      { *m = SecurityProfile{} }\nfunc (*SecurityProfile) ProtoMessage() {}\nfunc (*SecurityProfile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{10}\n}\nfunc (m *SecurityProfile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecurityProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_SecurityProfile.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *SecurityProfile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecurityProfile.Merge(m, src)\n}\nfunc (m *SecurityProfile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecurityProfile) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecurityProfile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecurityProfile proto.InternalMessageInfo\n\nfunc (m *SecurityProfile) GetProfileType() SecurityProfile_ProfileType {\n\tif m != nil {\n\t\treturn m.ProfileType\n\t}\n\treturn SecurityProfile_RuntimeDefault\n}\n\nfunc (m *SecurityProfile) GetLocalhostRef() string {\n\tif m != nil {\n\t\treturn m.LocalhostRef\n\t}\n\treturn \"\"\n}\n\n// LinuxPodSandboxConfig holds platform-specific configurations for Linux\n// host platforms and Linux-based containers.\ntype LinuxPodSandboxConfig struct {\n\t// Parent cgroup of the PodSandbox.\n\t// The cgroupfs style syntax will be used, but the container runtime can\n\t// convert it to systemd semantics if needed.\n\tCgroupParent string `protobuf:\"bytes,1,opt,name=cgroup_parent,json=cgroupParent,proto3\" json:\"cgroup_parent,omitempty\"`\n\t// LinuxSandboxSecurityContext holds sandbox security attributes.\n\tSecurityContext *LinuxSandboxSecurityContext `protobuf:\"bytes,2,opt,name=security_context,json=securityContext,proto3\" json:\"security_context,omitempty\"`\n\t// Sysctls holds linux sysctls config for the sandbox.\n\tSysctls map[string]string `protobuf:\"bytes,3,rep,name=sysctls,proto3\" json:\"sysctls,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Optional overhead represents the overheads associated with this sandbox\n\tOverhead *LinuxContainerResources `protobuf:\"bytes,4,opt,name=overhead,proto3\" json:\"overhead,omitempty\"`\n\t// Optional resources represents the sum of container resources for this sandbox\n\tResources            *LinuxContainerResources `protobuf:\"bytes,5,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                 `json:\"-\"`\n\tXXX_sizecache        int32                    `json:\"-\"`\n}\n\nfunc (m *LinuxPodSandboxConfig) Reset()      { *m = LinuxPodSandboxConfig{} }\nfunc (*LinuxPodSandboxConfig) ProtoMessage() {}\nfunc (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{11}\n}\nfunc (m *LinuxPodSandboxConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxPodSandboxConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxPodSandboxConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxPodSandboxConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxPodSandboxConfig.Merge(m, src)\n}\nfunc (m *LinuxPodSandboxConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxPodSandboxConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxPodSandboxConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxPodSandboxConfig proto.InternalMessageInfo\n\nfunc (m *LinuxPodSandboxConfig) GetCgroupParent() string {\n\tif m != nil {\n\t\treturn m.CgroupParent\n\t}\n\treturn \"\"\n}\n\nfunc (m *LinuxPodSandboxConfig) GetSecurityContext() *LinuxSandboxSecurityContext {\n\tif m != nil {\n\t\treturn m.SecurityContext\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxConfig) GetSysctls() map[string]string {\n\tif m != nil {\n\t\treturn m.Sysctls\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxConfig) GetOverhead() *LinuxContainerResources {\n\tif m != nil {\n\t\treturn m.Overhead\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxConfig) GetResources() *LinuxContainerResources {\n\tif m != nil {\n\t\treturn m.Resources\n\t}\n\treturn nil\n}\n\n// PodSandboxMetadata holds all necessary information for building the sandbox name.\n// The container runtime is encouraged to expose the metadata associated with the\n// PodSandbox in its user interface for better user experience. For example,\n// the runtime can construct a unique PodSandboxName based on the metadata.\ntype PodSandboxMetadata struct {\n\t// Pod name of the sandbox. Same as the pod name in the Pod ObjectMeta.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Pod UID of the sandbox. Same as the pod UID in the Pod ObjectMeta.\n\tUid string `protobuf:\"bytes,2,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\t// Pod namespace of the sandbox. Same as the pod namespace in the Pod ObjectMeta.\n\tNamespace string `protobuf:\"bytes,3,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\t// Attempt number of creating the sandbox. Default: 0.\n\tAttempt              uint32   `protobuf:\"varint,4,opt,name=attempt,proto3\" json:\"attempt,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandboxMetadata) Reset()      { *m = PodSandboxMetadata{} }\nfunc (*PodSandboxMetadata) ProtoMessage() {}\nfunc (*PodSandboxMetadata) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{12}\n}\nfunc (m *PodSandboxMetadata) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxMetadata.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxMetadata) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxMetadata.Merge(m, src)\n}\nfunc (m *PodSandboxMetadata) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxMetadata) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxMetadata.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxMetadata proto.InternalMessageInfo\n\nfunc (m *PodSandboxMetadata) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxMetadata) GetUid() string {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxMetadata) GetNamespace() string {\n\tif m != nil {\n\t\treturn m.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxMetadata) GetAttempt() uint32 {\n\tif m != nil {\n\t\treturn m.Attempt\n\t}\n\treturn 0\n}\n\n// PodSandboxConfig holds all the required and optional fields for creating a\n// sandbox.\ntype PodSandboxConfig struct {\n\t// Metadata of the sandbox. This information will uniquely identify the\n\t// sandbox, and the runtime should leverage this to ensure correct\n\t// operation. The runtime may also use this information to improve UX, such\n\t// as by constructing a readable name.\n\tMetadata *PodSandboxMetadata `protobuf:\"bytes,1,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Hostname of the sandbox. Hostname could only be empty when the pod\n\t// network namespace is NODE.\n\tHostname string `protobuf:\"bytes,2,opt,name=hostname,proto3\" json:\"hostname,omitempty\"`\n\t// Path to the directory on the host in which container log files are\n\t// stored.\n\t// By default the log of a container going into the LogDirectory will be\n\t// hooked up to STDOUT and STDERR. However, the LogDirectory may contain\n\t// binary log files with structured logging data from the individual\n\t// containers. For example, the files might be newline separated JSON\n\t// structured logs, systemd-journald journal files, gRPC trace files, etc.\n\t// E.g.,\n\t//\n\t//\tPodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/`\n\t//\tContainerConfig.LogPath = `containerName/Instance#.log`\n\tLogDirectory string `protobuf:\"bytes,3,opt,name=log_directory,json=logDirectory,proto3\" json:\"log_directory,omitempty\"`\n\t// DNS config for the sandbox.\n\tDnsConfig *DNSConfig `protobuf:\"bytes,4,opt,name=dns_config,json=dnsConfig,proto3\" json:\"dns_config,omitempty\"`\n\t// Port mappings for the sandbox.\n\tPortMappings []*PortMapping `protobuf:\"bytes,5,rep,name=port_mappings,json=portMappings,proto3\" json:\"port_mappings,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,6,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map that may be set by the kubelet to store and\n\t// retrieve arbitrary metadata. This will include any annotations set on a\n\t// pod through the Kubernetes API.\n\t//\n\t// Annotations MUST NOT be altered by the runtime; the annotations stored\n\t// here MUST be returned in the PodSandboxStatus associated with the pod\n\t// this PodSandboxConfig creates.\n\t//\n\t// In general, in order to preserve a well-defined interface between the\n\t// kubelet and the container runtime, annotations SHOULD NOT influence\n\t// runtime behaviour.\n\t//\n\t// Annotations can also be useful for runtime authors to experiment with\n\t// new features that are opaque to the Kubernetes APIs (both user-facing\n\t// and the CRI). Whenever possible, however, runtime authors SHOULD\n\t// consider proposing new typed fields for any new features instead.\n\tAnnotations map[string]string `protobuf:\"bytes,7,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Optional configurations specific to Linux hosts.\n\tLinux *LinuxPodSandboxConfig `protobuf:\"bytes,8,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Optional configurations specific to Windows hosts.\n\tWindows              *WindowsPodSandboxConfig `protobuf:\"bytes,9,opt,name=windows,proto3\" json:\"windows,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                 `json:\"-\"`\n\tXXX_sizecache        int32                    `json:\"-\"`\n}\n\nfunc (m *PodSandboxConfig) Reset()      { *m = PodSandboxConfig{} }\nfunc (*PodSandboxConfig) ProtoMessage() {}\nfunc (*PodSandboxConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{13}\n}\nfunc (m *PodSandboxConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxConfig.Merge(m, src)\n}\nfunc (m *PodSandboxConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxConfig proto.InternalMessageInfo\n\nfunc (m *PodSandboxConfig) GetMetadata() *PodSandboxMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetHostname() string {\n\tif m != nil {\n\t\treturn m.Hostname\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxConfig) GetLogDirectory() string {\n\tif m != nil {\n\t\treturn m.LogDirectory\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxConfig) GetDnsConfig() *DNSConfig {\n\tif m != nil {\n\t\treturn m.DnsConfig\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetPortMappings() []*PortMapping {\n\tif m != nil {\n\t\treturn m.PortMappings\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetLinux() *LinuxPodSandboxConfig {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxConfig) GetWindows() *WindowsPodSandboxConfig {\n\tif m != nil {\n\t\treturn m.Windows\n\t}\n\treturn nil\n}\n\ntype RunPodSandboxRequest struct {\n\t// Configuration for creating a PodSandbox.\n\tConfig *PodSandboxConfig `protobuf:\"bytes,1,opt,name=config,proto3\" json:\"config,omitempty\"`\n\t// Named runtime configuration to use for this PodSandbox.\n\t// If the runtime handler is unknown, this request should be rejected.  An\n\t// empty string should select the default handler, equivalent to the\n\t// behavior before this feature was added.\n\t// See https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n\tRuntimeHandler       string   `protobuf:\"bytes,2,opt,name=runtime_handler,json=runtimeHandler,proto3\" json:\"runtime_handler,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RunPodSandboxRequest) Reset()      { *m = RunPodSandboxRequest{} }\nfunc (*RunPodSandboxRequest) ProtoMessage() {}\nfunc (*RunPodSandboxRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{14}\n}\nfunc (m *RunPodSandboxRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RunPodSandboxRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RunPodSandboxRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RunPodSandboxRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RunPodSandboxRequest.Merge(m, src)\n}\nfunc (m *RunPodSandboxRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RunPodSandboxRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_RunPodSandboxRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RunPodSandboxRequest proto.InternalMessageInfo\n\nfunc (m *RunPodSandboxRequest) GetConfig() *PodSandboxConfig {\n\tif m != nil {\n\t\treturn m.Config\n\t}\n\treturn nil\n}\n\nfunc (m *RunPodSandboxRequest) GetRuntimeHandler() string {\n\tif m != nil {\n\t\treturn m.RuntimeHandler\n\t}\n\treturn \"\"\n}\n\ntype RunPodSandboxResponse struct {\n\t// ID of the PodSandbox to run.\n\tPodSandboxId         string   `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RunPodSandboxResponse) Reset()      { *m = RunPodSandboxResponse{} }\nfunc (*RunPodSandboxResponse) ProtoMessage() {}\nfunc (*RunPodSandboxResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{15}\n}\nfunc (m *RunPodSandboxResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RunPodSandboxResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RunPodSandboxResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RunPodSandboxResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RunPodSandboxResponse.Merge(m, src)\n}\nfunc (m *RunPodSandboxResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RunPodSandboxResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_RunPodSandboxResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RunPodSandboxResponse proto.InternalMessageInfo\n\nfunc (m *RunPodSandboxResponse) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\ntype StopPodSandboxRequest struct {\n\t// ID of the PodSandbox to stop.\n\tPodSandboxId         string   `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StopPodSandboxRequest) Reset()      { *m = StopPodSandboxRequest{} }\nfunc (*StopPodSandboxRequest) ProtoMessage() {}\nfunc (*StopPodSandboxRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{16}\n}\nfunc (m *StopPodSandboxRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StopPodSandboxRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StopPodSandboxRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StopPodSandboxRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StopPodSandboxRequest.Merge(m, src)\n}\nfunc (m *StopPodSandboxRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StopPodSandboxRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_StopPodSandboxRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StopPodSandboxRequest proto.InternalMessageInfo\n\nfunc (m *StopPodSandboxRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\ntype StopPodSandboxResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StopPodSandboxResponse) Reset()      { *m = StopPodSandboxResponse{} }\nfunc (*StopPodSandboxResponse) ProtoMessage() {}\nfunc (*StopPodSandboxResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{17}\n}\nfunc (m *StopPodSandboxResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StopPodSandboxResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StopPodSandboxResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StopPodSandboxResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StopPodSandboxResponse.Merge(m, src)\n}\nfunc (m *StopPodSandboxResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StopPodSandboxResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_StopPodSandboxResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StopPodSandboxResponse proto.InternalMessageInfo\n\ntype RemovePodSandboxRequest struct {\n\t// ID of the PodSandbox to remove.\n\tPodSandboxId         string   `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RemovePodSandboxRequest) Reset()      { *m = RemovePodSandboxRequest{} }\nfunc (*RemovePodSandboxRequest) ProtoMessage() {}\nfunc (*RemovePodSandboxRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{18}\n}\nfunc (m *RemovePodSandboxRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemovePodSandboxRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemovePodSandboxRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemovePodSandboxRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemovePodSandboxRequest.Merge(m, src)\n}\nfunc (m *RemovePodSandboxRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemovePodSandboxRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemovePodSandboxRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemovePodSandboxRequest proto.InternalMessageInfo\n\nfunc (m *RemovePodSandboxRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\ntype RemovePodSandboxResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RemovePodSandboxResponse) Reset()      { *m = RemovePodSandboxResponse{} }\nfunc (*RemovePodSandboxResponse) ProtoMessage() {}\nfunc (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{19}\n}\nfunc (m *RemovePodSandboxResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemovePodSandboxResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemovePodSandboxResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemovePodSandboxResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemovePodSandboxResponse.Merge(m, src)\n}\nfunc (m *RemovePodSandboxResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemovePodSandboxResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemovePodSandboxResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemovePodSandboxResponse proto.InternalMessageInfo\n\ntype PodSandboxStatusRequest struct {\n\t// ID of the PodSandbox for which to retrieve status.\n\tPodSandboxId string `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// Verbose indicates whether to return extra information about the pod sandbox.\n\tVerbose              bool     `protobuf:\"varint,2,opt,name=verbose,proto3\" json:\"verbose,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatusRequest) Reset()      { *m = PodSandboxStatusRequest{} }\nfunc (*PodSandboxStatusRequest) ProtoMessage() {}\nfunc (*PodSandboxStatusRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{20}\n}\nfunc (m *PodSandboxStatusRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatusRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatusRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatusRequest.Merge(m, src)\n}\nfunc (m *PodSandboxStatusRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatusRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatusRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatusRequest proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatusRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxStatusRequest) GetVerbose() bool {\n\tif m != nil {\n\t\treturn m.Verbose\n\t}\n\treturn false\n}\n\n// PodIP represents an ip of a Pod\ntype PodIP struct {\n\t// an ip is a string representation of an IPv4 or an IPv6\n\tIp                   string   `protobuf:\"bytes,1,opt,name=ip,proto3\" json:\"ip,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodIP) Reset()      { *m = PodIP{} }\nfunc (*PodIP) ProtoMessage() {}\nfunc (*PodIP) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{21}\n}\nfunc (m *PodIP) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodIP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodIP.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodIP) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodIP.Merge(m, src)\n}\nfunc (m *PodIP) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodIP) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodIP.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodIP proto.InternalMessageInfo\n\nfunc (m *PodIP) GetIp() string {\n\tif m != nil {\n\t\treturn m.Ip\n\t}\n\treturn \"\"\n}\n\n// PodSandboxNetworkStatus is the status of the network for a PodSandbox.\n// Currently ignored for pods sharing the host networking namespace.\ntype PodSandboxNetworkStatus struct {\n\t// IP address of the PodSandbox.\n\tIp string `protobuf:\"bytes,1,opt,name=ip,proto3\" json:\"ip,omitempty\"`\n\t// list of additional ips (not inclusive of PodSandboxNetworkStatus.Ip) of the PodSandBoxNetworkStatus\n\tAdditionalIps        []*PodIP `protobuf:\"bytes,2,rep,name=additional_ips,json=additionalIps,proto3\" json:\"additional_ips,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandboxNetworkStatus) Reset()      { *m = PodSandboxNetworkStatus{} }\nfunc (*PodSandboxNetworkStatus) ProtoMessage() {}\nfunc (*PodSandboxNetworkStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{22}\n}\nfunc (m *PodSandboxNetworkStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxNetworkStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxNetworkStatus.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxNetworkStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxNetworkStatus.Merge(m, src)\n}\nfunc (m *PodSandboxNetworkStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxNetworkStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxNetworkStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxNetworkStatus proto.InternalMessageInfo\n\nfunc (m *PodSandboxNetworkStatus) GetIp() string {\n\tif m != nil {\n\t\treturn m.Ip\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxNetworkStatus) GetAdditionalIps() []*PodIP {\n\tif m != nil {\n\t\treturn m.AdditionalIps\n\t}\n\treturn nil\n}\n\n// Namespace contains paths to the namespaces.\ntype Namespace struct {\n\t// Namespace options for Linux namespaces.\n\tOptions              *NamespaceOption `protobuf:\"bytes,2,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}         `json:\"-\"`\n\tXXX_sizecache        int32            `json:\"-\"`\n}\n\nfunc (m *Namespace) Reset()      { *m = Namespace{} }\nfunc (*Namespace) ProtoMessage() {}\nfunc (*Namespace) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{23}\n}\nfunc (m *Namespace) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Namespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Namespace.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Namespace) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Namespace.Merge(m, src)\n}\nfunc (m *Namespace) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Namespace) XXX_DiscardUnknown() {\n\txxx_messageInfo_Namespace.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Namespace proto.InternalMessageInfo\n\nfunc (m *Namespace) GetOptions() *NamespaceOption {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\n// LinuxSandboxStatus contains status specific to Linux sandboxes.\ntype LinuxPodSandboxStatus struct {\n\t// Paths to the sandbox's namespaces.\n\tNamespaces           *Namespace `protobuf:\"bytes,1,opt,name=namespaces,proto3\" json:\"namespaces,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}   `json:\"-\"`\n\tXXX_sizecache        int32      `json:\"-\"`\n}\n\nfunc (m *LinuxPodSandboxStatus) Reset()      { *m = LinuxPodSandboxStatus{} }\nfunc (*LinuxPodSandboxStatus) ProtoMessage() {}\nfunc (*LinuxPodSandboxStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{24}\n}\nfunc (m *LinuxPodSandboxStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxPodSandboxStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxPodSandboxStatus.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxPodSandboxStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxPodSandboxStatus.Merge(m, src)\n}\nfunc (m *LinuxPodSandboxStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxPodSandboxStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxPodSandboxStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxPodSandboxStatus proto.InternalMessageInfo\n\nfunc (m *LinuxPodSandboxStatus) GetNamespaces() *Namespace {\n\tif m != nil {\n\t\treturn m.Namespaces\n\t}\n\treturn nil\n}\n\n// PodSandboxStatus contains the status of the PodSandbox.\ntype PodSandboxStatus struct {\n\t// ID of the sandbox.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Metadata of the sandbox.\n\tMetadata *PodSandboxMetadata `protobuf:\"bytes,2,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// State of the sandbox.\n\tState PodSandboxState `protobuf:\"varint,3,opt,name=state,proto3,enum=runtime.v1.PodSandboxState\" json:\"state,omitempty\"`\n\t// Creation timestamp of the sandbox in nanoseconds. Must be > 0.\n\tCreatedAt int64 `protobuf:\"varint,4,opt,name=created_at,json=createdAt,proto3\" json:\"created_at,omitempty\"`\n\t// Network contains network status if network is handled by the runtime.\n\tNetwork *PodSandboxNetworkStatus `protobuf:\"bytes,5,opt,name=network,proto3\" json:\"network,omitempty\"`\n\t// Linux-specific status to a pod sandbox.\n\tLinux *LinuxPodSandboxStatus `protobuf:\"bytes,6,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Labels are key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,7,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding PodSandboxConfig used to\n\t// instantiate the pod sandbox this status represents.\n\tAnnotations map[string]string `protobuf:\"bytes,8,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// runtime configuration used for this PodSandbox.\n\tRuntimeHandler       string   `protobuf:\"bytes,9,opt,name=runtime_handler,json=runtimeHandler,proto3\" json:\"runtime_handler,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatus) Reset()      { *m = PodSandboxStatus{} }\nfunc (*PodSandboxStatus) ProtoMessage() {}\nfunc (*PodSandboxStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{25}\n}\nfunc (m *PodSandboxStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatus.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatus.Merge(m, src)\n}\nfunc (m *PodSandboxStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatus proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatus) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxStatus) GetMetadata() *PodSandboxMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatus) GetState() PodSandboxState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn PodSandboxState_SANDBOX_READY\n}\n\nfunc (m *PodSandboxStatus) GetCreatedAt() int64 {\n\tif m != nil {\n\t\treturn m.CreatedAt\n\t}\n\treturn 0\n}\n\nfunc (m *PodSandboxStatus) GetNetwork() *PodSandboxNetworkStatus {\n\tif m != nil {\n\t\treturn m.Network\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatus) GetLinux() *LinuxPodSandboxStatus {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatus) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatus) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatus) GetRuntimeHandler() string {\n\tif m != nil {\n\t\treturn m.RuntimeHandler\n\t}\n\treturn \"\"\n}\n\ntype PodSandboxStatusResponse struct {\n\t// Status of the PodSandbox.\n\tStatus *PodSandboxStatus `protobuf:\"bytes,1,opt,name=status,proto3\" json:\"status,omitempty\"`\n\t// Info is extra information of the PodSandbox. The key could be arbitrary string, and\n\t// value should be in json format. The information could include anything useful for\n\t// debug, e.g. network namespace for linux container based container runtime.\n\t// It should only be returned non-empty when Verbose is true.\n\tInfo                 map[string]string `protobuf:\"bytes,2,rep,name=info,proto3\" json:\"info,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatusResponse) Reset()      { *m = PodSandboxStatusResponse{} }\nfunc (*PodSandboxStatusResponse) ProtoMessage() {}\nfunc (*PodSandboxStatusResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{26}\n}\nfunc (m *PodSandboxStatusResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatusResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatusResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatusResponse.Merge(m, src)\n}\nfunc (m *PodSandboxStatusResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatusResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatusResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatusResponse proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus {\n\tif m != nil {\n\t\treturn m.Status\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStatusResponse) GetInfo() map[string]string {\n\tif m != nil {\n\t\treturn m.Info\n\t}\n\treturn nil\n}\n\n// PodSandboxStateValue is the wrapper of PodSandboxState.\ntype PodSandboxStateValue struct {\n\t// State of the sandbox.\n\tState                PodSandboxState `protobuf:\"varint,1,opt,name=state,proto3,enum=runtime.v1.PodSandboxState\" json:\"state,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}        `json:\"-\"`\n\tXXX_sizecache        int32           `json:\"-\"`\n}\n\nfunc (m *PodSandboxStateValue) Reset()      { *m = PodSandboxStateValue{} }\nfunc (*PodSandboxStateValue) ProtoMessage() {}\nfunc (*PodSandboxStateValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{27}\n}\nfunc (m *PodSandboxStateValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStateValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStateValue.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStateValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStateValue.Merge(m, src)\n}\nfunc (m *PodSandboxStateValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStateValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStateValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStateValue proto.InternalMessageInfo\n\nfunc (m *PodSandboxStateValue) GetState() PodSandboxState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn PodSandboxState_SANDBOX_READY\n}\n\n// PodSandboxFilter is used to filter a list of PodSandboxes.\n// All those fields are combined with 'AND'\ntype PodSandboxFilter struct {\n\t// ID of the sandbox.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// State of the sandbox.\n\tState *PodSandboxStateValue `protobuf:\"bytes,2,opt,name=state,proto3\" json:\"state,omitempty\"`\n\t// LabelSelector to select matches.\n\t// Only api.MatchLabels is supported for now and the requirements\n\t// are ANDed. MatchExpressions is not supported yet.\n\tLabelSelector        map[string]string `protobuf:\"bytes,3,rep,name=label_selector,json=labelSelector,proto3\" json:\"label_selector,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *PodSandboxFilter) Reset()      { *m = PodSandboxFilter{} }\nfunc (*PodSandboxFilter) ProtoMessage() {}\nfunc (*PodSandboxFilter) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{28}\n}\nfunc (m *PodSandboxFilter) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxFilter.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxFilter) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxFilter.Merge(m, src)\n}\nfunc (m *PodSandboxFilter) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxFilter) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxFilter.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxFilter proto.InternalMessageInfo\n\nfunc (m *PodSandboxFilter) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxFilter) GetState() *PodSandboxStateValue {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxFilter) GetLabelSelector() map[string]string {\n\tif m != nil {\n\t\treturn m.LabelSelector\n\t}\n\treturn nil\n}\n\ntype ListPodSandboxRequest struct {\n\t// PodSandboxFilter to filter a list of PodSandboxes.\n\tFilter               *PodSandboxFilter `protobuf:\"bytes,1,opt,name=filter,proto3\" json:\"filter,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ListPodSandboxRequest) Reset()      { *m = ListPodSandboxRequest{} }\nfunc (*ListPodSandboxRequest) ProtoMessage() {}\nfunc (*ListPodSandboxRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{29}\n}\nfunc (m *ListPodSandboxRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodSandboxRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodSandboxRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodSandboxRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodSandboxRequest.Merge(m, src)\n}\nfunc (m *ListPodSandboxRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodSandboxRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodSandboxRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodSandboxRequest proto.InternalMessageInfo\n\nfunc (m *ListPodSandboxRequest) GetFilter() *PodSandboxFilter {\n\tif m != nil {\n\t\treturn m.Filter\n\t}\n\treturn nil\n}\n\n// PodSandbox contains minimal information about a sandbox.\ntype PodSandbox struct {\n\t// ID of the PodSandbox.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Metadata of the PodSandbox.\n\tMetadata *PodSandboxMetadata `protobuf:\"bytes,2,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// State of the PodSandbox.\n\tState PodSandboxState `protobuf:\"varint,3,opt,name=state,proto3,enum=runtime.v1.PodSandboxState\" json:\"state,omitempty\"`\n\t// Creation timestamps of the PodSandbox in nanoseconds. Must be > 0.\n\tCreatedAt int64 `protobuf:\"varint,4,opt,name=created_at,json=createdAt,proto3\" json:\"created_at,omitempty\"`\n\t// Labels of the PodSandbox.\n\tLabels map[string]string `protobuf:\"bytes,5,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding PodSandboxConfig used to\n\t// instantiate this PodSandbox.\n\tAnnotations map[string]string `protobuf:\"bytes,6,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// runtime configuration used for this PodSandbox.\n\tRuntimeHandler       string   `protobuf:\"bytes,7,opt,name=runtime_handler,json=runtimeHandler,proto3\" json:\"runtime_handler,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandbox) Reset()      { *m = PodSandbox{} }\nfunc (*PodSandbox) ProtoMessage() {}\nfunc (*PodSandbox) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{30}\n}\nfunc (m *PodSandbox) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandbox) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandbox.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandbox) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandbox.Merge(m, src)\n}\nfunc (m *PodSandbox) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandbox) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandbox.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandbox proto.InternalMessageInfo\n\nfunc (m *PodSandbox) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandbox) GetMetadata() *PodSandboxMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandbox) GetState() PodSandboxState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn PodSandboxState_SANDBOX_READY\n}\n\nfunc (m *PodSandbox) GetCreatedAt() int64 {\n\tif m != nil {\n\t\treturn m.CreatedAt\n\t}\n\treturn 0\n}\n\nfunc (m *PodSandbox) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandbox) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandbox) GetRuntimeHandler() string {\n\tif m != nil {\n\t\treturn m.RuntimeHandler\n\t}\n\treturn \"\"\n}\n\ntype ListPodSandboxResponse struct {\n\t// List of PodSandboxes.\n\tItems                []*PodSandbox `protobuf:\"bytes,1,rep,name=items,proto3\" json:\"items,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}      `json:\"-\"`\n\tXXX_sizecache        int32         `json:\"-\"`\n}\n\nfunc (m *ListPodSandboxResponse) Reset()      { *m = ListPodSandboxResponse{} }\nfunc (*ListPodSandboxResponse) ProtoMessage() {}\nfunc (*ListPodSandboxResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{31}\n}\nfunc (m *ListPodSandboxResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodSandboxResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodSandboxResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodSandboxResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodSandboxResponse.Merge(m, src)\n}\nfunc (m *ListPodSandboxResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodSandboxResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodSandboxResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodSandboxResponse proto.InternalMessageInfo\n\nfunc (m *ListPodSandboxResponse) GetItems() []*PodSandbox {\n\tif m != nil {\n\t\treturn m.Items\n\t}\n\treturn nil\n}\n\ntype PodSandboxStatsRequest struct {\n\t// ID of the pod sandbox for which to retrieve stats.\n\tPodSandboxId         string   `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatsRequest) Reset()      { *m = PodSandboxStatsRequest{} }\nfunc (*PodSandboxStatsRequest) ProtoMessage() {}\nfunc (*PodSandboxStatsRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{32}\n}\nfunc (m *PodSandboxStatsRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatsRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatsRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatsRequest.Merge(m, src)\n}\nfunc (m *PodSandboxStatsRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatsRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatsRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatsRequest proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatsRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\ntype PodSandboxStatsResponse struct {\n\tStats                *PodSandboxStats `protobuf:\"bytes,1,opt,name=stats,proto3\" json:\"stats,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}         `json:\"-\"`\n\tXXX_sizecache        int32            `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatsResponse) Reset()      { *m = PodSandboxStatsResponse{} }\nfunc (*PodSandboxStatsResponse) ProtoMessage() {}\nfunc (*PodSandboxStatsResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{33}\n}\nfunc (m *PodSandboxStatsResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatsResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatsResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatsResponse.Merge(m, src)\n}\nfunc (m *PodSandboxStatsResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatsResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatsResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatsResponse proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatsResponse) GetStats() *PodSandboxStats {\n\tif m != nil {\n\t\treturn m.Stats\n\t}\n\treturn nil\n}\n\n// PodSandboxStatsFilter is used to filter the list of pod sandboxes to retrieve stats for.\n// All those fields are combined with 'AND'.\ntype PodSandboxStatsFilter struct {\n\t// ID of the pod sandbox.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// LabelSelector to select matches.\n\t// Only api.MatchLabels is supported for now and the requirements\n\t// are ANDed. MatchExpressions is not supported yet.\n\tLabelSelector        map[string]string `protobuf:\"bytes,2,rep,name=label_selector,json=labelSelector,proto3\" json:\"label_selector,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *PodSandboxStatsFilter) Reset()      { *m = PodSandboxStatsFilter{} }\nfunc (*PodSandboxStatsFilter) ProtoMessage() {}\nfunc (*PodSandboxStatsFilter) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{34}\n}\nfunc (m *PodSandboxStatsFilter) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStatsFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStatsFilter.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStatsFilter) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStatsFilter.Merge(m, src)\n}\nfunc (m *PodSandboxStatsFilter) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStatsFilter) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStatsFilter.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStatsFilter proto.InternalMessageInfo\n\nfunc (m *PodSandboxStatsFilter) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxStatsFilter) GetLabelSelector() map[string]string {\n\tif m != nil {\n\t\treturn m.LabelSelector\n\t}\n\treturn nil\n}\n\ntype ListPodSandboxStatsRequest struct {\n\t// Filter for the list request.\n\tFilter               *PodSandboxStatsFilter `protobuf:\"bytes,1,opt,name=filter,proto3\" json:\"filter,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}               `json:\"-\"`\n\tXXX_sizecache        int32                  `json:\"-\"`\n}\n\nfunc (m *ListPodSandboxStatsRequest) Reset()      { *m = ListPodSandboxStatsRequest{} }\nfunc (*ListPodSandboxStatsRequest) ProtoMessage() {}\nfunc (*ListPodSandboxStatsRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{35}\n}\nfunc (m *ListPodSandboxStatsRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodSandboxStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodSandboxStatsRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodSandboxStatsRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodSandboxStatsRequest.Merge(m, src)\n}\nfunc (m *ListPodSandboxStatsRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodSandboxStatsRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodSandboxStatsRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodSandboxStatsRequest proto.InternalMessageInfo\n\nfunc (m *ListPodSandboxStatsRequest) GetFilter() *PodSandboxStatsFilter {\n\tif m != nil {\n\t\treturn m.Filter\n\t}\n\treturn nil\n}\n\ntype ListPodSandboxStatsResponse struct {\n\t// Stats of the pod sandbox.\n\tStats                []*PodSandboxStats `protobuf:\"bytes,1,rep,name=stats,proto3\" json:\"stats,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}           `json:\"-\"`\n\tXXX_sizecache        int32              `json:\"-\"`\n}\n\nfunc (m *ListPodSandboxStatsResponse) Reset()      { *m = ListPodSandboxStatsResponse{} }\nfunc (*ListPodSandboxStatsResponse) ProtoMessage() {}\nfunc (*ListPodSandboxStatsResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{36}\n}\nfunc (m *ListPodSandboxStatsResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodSandboxStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodSandboxStatsResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodSandboxStatsResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodSandboxStatsResponse.Merge(m, src)\n}\nfunc (m *ListPodSandboxStatsResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodSandboxStatsResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodSandboxStatsResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodSandboxStatsResponse proto.InternalMessageInfo\n\nfunc (m *ListPodSandboxStatsResponse) GetStats() []*PodSandboxStats {\n\tif m != nil {\n\t\treturn m.Stats\n\t}\n\treturn nil\n}\n\n// PodSandboxAttributes provides basic information of the pod sandbox.\ntype PodSandboxAttributes struct {\n\t// ID of the pod sandbox.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Metadata of the pod sandbox.\n\tMetadata *PodSandboxMetadata `protobuf:\"bytes,2,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,3,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding PodSandboxStatus used to\n\t// instantiate the PodSandbox this status represents.\n\tAnnotations          map[string]string `protobuf:\"bytes,4,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *PodSandboxAttributes) Reset()      { *m = PodSandboxAttributes{} }\nfunc (*PodSandboxAttributes) ProtoMessage() {}\nfunc (*PodSandboxAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{37}\n}\nfunc (m *PodSandboxAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxAttributes.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxAttributes.Merge(m, src)\n}\nfunc (m *PodSandboxAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxAttributes proto.InternalMessageInfo\n\nfunc (m *PodSandboxAttributes) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodSandboxAttributes) GetMetadata() *PodSandboxMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxAttributes) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxAttributes) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\n// PodSandboxStats provides the resource usage statistics for a pod.\n// The linux or windows field will be populated depending on the platform.\ntype PodSandboxStats struct {\n\t// Information of the pod.\n\tAttributes *PodSandboxAttributes `protobuf:\"bytes,1,opt,name=attributes,proto3\" json:\"attributes,omitempty\"`\n\t// Stats from linux.\n\tLinux *LinuxPodSandboxStats `protobuf:\"bytes,2,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Stats from windows.\n\tWindows              *WindowsPodSandboxStats `protobuf:\"bytes,3,opt,name=windows,proto3\" json:\"windows,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                `json:\"-\"`\n\tXXX_sizecache        int32                   `json:\"-\"`\n}\n\nfunc (m *PodSandboxStats) Reset()      { *m = PodSandboxStats{} }\nfunc (*PodSandboxStats) ProtoMessage() {}\nfunc (*PodSandboxStats) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{38}\n}\nfunc (m *PodSandboxStats) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSandboxStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodSandboxStats.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodSandboxStats) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSandboxStats.Merge(m, src)\n}\nfunc (m *PodSandboxStats) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSandboxStats) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSandboxStats.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSandboxStats proto.InternalMessageInfo\n\nfunc (m *PodSandboxStats) GetAttributes() *PodSandboxAttributes {\n\tif m != nil {\n\t\treturn m.Attributes\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStats) GetLinux() *LinuxPodSandboxStats {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *PodSandboxStats) GetWindows() *WindowsPodSandboxStats {\n\tif m != nil {\n\t\treturn m.Windows\n\t}\n\treturn nil\n}\n\n// LinuxPodSandboxStats provides the resource usage statistics for a pod sandbox on linux.\ntype LinuxPodSandboxStats struct {\n\t// CPU usage gathered for the pod sandbox.\n\tCpu *CpuUsage `protobuf:\"bytes,1,opt,name=cpu,proto3\" json:\"cpu,omitempty\"`\n\t// Memory usage gathered for the pod sandbox.\n\tMemory *MemoryUsage `protobuf:\"bytes,2,opt,name=memory,proto3\" json:\"memory,omitempty\"`\n\t// Network usage gathered for the pod sandbox\n\tNetwork *NetworkUsage `protobuf:\"bytes,3,opt,name=network,proto3\" json:\"network,omitempty\"`\n\t// Stats pertaining to processes in the pod sandbox.\n\tProcess *ProcessUsage `protobuf:\"bytes,4,opt,name=process,proto3\" json:\"process,omitempty\"`\n\t// Stats of containers in the measured pod sandbox.\n\tContainers           []*ContainerStats `protobuf:\"bytes,5,rep,name=containers,proto3\" json:\"containers,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *LinuxPodSandboxStats) Reset()      { *m = LinuxPodSandboxStats{} }\nfunc (*LinuxPodSandboxStats) ProtoMessage() {}\nfunc (*LinuxPodSandboxStats) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{39}\n}\nfunc (m *LinuxPodSandboxStats) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxPodSandboxStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxPodSandboxStats.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxPodSandboxStats) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxPodSandboxStats.Merge(m, src)\n}\nfunc (m *LinuxPodSandboxStats) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxPodSandboxStats) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxPodSandboxStats.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxPodSandboxStats proto.InternalMessageInfo\n\nfunc (m *LinuxPodSandboxStats) GetCpu() *CpuUsage {\n\tif m != nil {\n\t\treturn m.Cpu\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxStats) GetMemory() *MemoryUsage {\n\tif m != nil {\n\t\treturn m.Memory\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxStats) GetNetwork() *NetworkUsage {\n\tif m != nil {\n\t\treturn m.Network\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxStats) GetProcess() *ProcessUsage {\n\tif m != nil {\n\t\treturn m.Process\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxPodSandboxStats) GetContainers() []*ContainerStats {\n\tif m != nil {\n\t\treturn m.Containers\n\t}\n\treturn nil\n}\n\n// WindowsPodSandboxStats provides the resource usage statistics for a pod sandbox on windows\ntype WindowsPodSandboxStats struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *WindowsPodSandboxStats) Reset()      { *m = WindowsPodSandboxStats{} }\nfunc (*WindowsPodSandboxStats) ProtoMessage() {}\nfunc (*WindowsPodSandboxStats) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{40}\n}\nfunc (m *WindowsPodSandboxStats) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsPodSandboxStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsPodSandboxStats.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsPodSandboxStats) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsPodSandboxStats.Merge(m, src)\n}\nfunc (m *WindowsPodSandboxStats) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsPodSandboxStats) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsPodSandboxStats.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsPodSandboxStats proto.InternalMessageInfo\n\n// NetworkUsage contains data about network resources.\ntype NetworkUsage struct {\n\t// The time at which these stats were updated.\n\tTimestamp int64 `protobuf:\"varint,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// Stats for the default network interface.\n\tDefaultInterface *NetworkInterfaceUsage `protobuf:\"bytes,2,opt,name=default_interface,json=defaultInterface,proto3\" json:\"default_interface,omitempty\"`\n\t// Stats for all found network interfaces, excluding the default.\n\tInterfaces           []*NetworkInterfaceUsage `protobuf:\"bytes,3,rep,name=interfaces,proto3\" json:\"interfaces,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                 `json:\"-\"`\n\tXXX_sizecache        int32                    `json:\"-\"`\n}\n\nfunc (m *NetworkUsage) Reset()      { *m = NetworkUsage{} }\nfunc (*NetworkUsage) ProtoMessage() {}\nfunc (*NetworkUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{41}\n}\nfunc (m *NetworkUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NetworkUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NetworkUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkUsage.Merge(m, src)\n}\nfunc (m *NetworkUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkUsage proto.InternalMessageInfo\n\nfunc (m *NetworkUsage) GetTimestamp() int64 {\n\tif m != nil {\n\t\treturn m.Timestamp\n\t}\n\treturn 0\n}\n\nfunc (m *NetworkUsage) GetDefaultInterface() *NetworkInterfaceUsage {\n\tif m != nil {\n\t\treturn m.DefaultInterface\n\t}\n\treturn nil\n}\n\nfunc (m *NetworkUsage) GetInterfaces() []*NetworkInterfaceUsage {\n\tif m != nil {\n\t\treturn m.Interfaces\n\t}\n\treturn nil\n}\n\n// NetworkInterfaceUsage contains resource value data about a network interface.\ntype NetworkInterfaceUsage struct {\n\t// The name of the network interface.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Cumulative count of bytes received.\n\tRxBytes *UInt64Value `protobuf:\"bytes,2,opt,name=rx_bytes,json=rxBytes,proto3\" json:\"rx_bytes,omitempty\"`\n\t// Cumulative count of receive errors encountered.\n\tRxErrors *UInt64Value `protobuf:\"bytes,3,opt,name=rx_errors,json=rxErrors,proto3\" json:\"rx_errors,omitempty\"`\n\t// Cumulative count of bytes transmitted.\n\tTxBytes *UInt64Value `protobuf:\"bytes,4,opt,name=tx_bytes,json=txBytes,proto3\" json:\"tx_bytes,omitempty\"`\n\t// Cumulative count of transmit errors encountered.\n\tTxErrors             *UInt64Value `protobuf:\"bytes,5,opt,name=tx_errors,json=txErrors,proto3\" json:\"tx_errors,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *NetworkInterfaceUsage) Reset()      { *m = NetworkInterfaceUsage{} }\nfunc (*NetworkInterfaceUsage) ProtoMessage() {}\nfunc (*NetworkInterfaceUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{42}\n}\nfunc (m *NetworkInterfaceUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkInterfaceUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NetworkInterfaceUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NetworkInterfaceUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkInterfaceUsage.Merge(m, src)\n}\nfunc (m *NetworkInterfaceUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkInterfaceUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkInterfaceUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkInterfaceUsage proto.InternalMessageInfo\n\nfunc (m *NetworkInterfaceUsage) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *NetworkInterfaceUsage) GetRxBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.RxBytes\n\t}\n\treturn nil\n}\n\nfunc (m *NetworkInterfaceUsage) GetRxErrors() *UInt64Value {\n\tif m != nil {\n\t\treturn m.RxErrors\n\t}\n\treturn nil\n}\n\nfunc (m *NetworkInterfaceUsage) GetTxBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.TxBytes\n\t}\n\treturn nil\n}\n\nfunc (m *NetworkInterfaceUsage) GetTxErrors() *UInt64Value {\n\tif m != nil {\n\t\treturn m.TxErrors\n\t}\n\treturn nil\n}\n\n// ProcessUsage are stats pertaining to processes.\ntype ProcessUsage struct {\n\t// The time at which these stats were updated.\n\tTimestamp int64 `protobuf:\"varint,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// Number of processes.\n\tProcessCount         *UInt64Value `protobuf:\"bytes,2,opt,name=process_count,json=processCount,proto3\" json:\"process_count,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *ProcessUsage) Reset()      { *m = ProcessUsage{} }\nfunc (*ProcessUsage) ProtoMessage() {}\nfunc (*ProcessUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{43}\n}\nfunc (m *ProcessUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ProcessUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ProcessUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ProcessUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ProcessUsage.Merge(m, src)\n}\nfunc (m *ProcessUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ProcessUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_ProcessUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ProcessUsage proto.InternalMessageInfo\n\nfunc (m *ProcessUsage) GetTimestamp() int64 {\n\tif m != nil {\n\t\treturn m.Timestamp\n\t}\n\treturn 0\n}\n\nfunc (m *ProcessUsage) GetProcessCount() *UInt64Value {\n\tif m != nil {\n\t\treturn m.ProcessCount\n\t}\n\treturn nil\n}\n\n// ImageSpec is an internal representation of an image.\ntype ImageSpec struct {\n\t// Container's Image field (e.g. imageID or imageDigest).\n\tImage string `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// ImageSpec Annotations can be used to help the runtime target specific\n\t// images in multi-arch images.\n\tAnnotations          map[string]string `protobuf:\"bytes,2,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ImageSpec) Reset()      { *m = ImageSpec{} }\nfunc (*ImageSpec) ProtoMessage() {}\nfunc (*ImageSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{44}\n}\nfunc (m *ImageSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageSpec.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageSpec.Merge(m, src)\n}\nfunc (m *ImageSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageSpec proto.InternalMessageInfo\n\nfunc (m *ImageSpec) GetImage() string {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn \"\"\n}\n\nfunc (m *ImageSpec) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\ntype KeyValue struct {\n\tKey                  string   `protobuf:\"bytes,1,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tValue                string   `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *KeyValue) Reset()      { *m = KeyValue{} }\nfunc (*KeyValue) ProtoMessage() {}\nfunc (*KeyValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{45}\n}\nfunc (m *KeyValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_KeyValue.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *KeyValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_KeyValue.Merge(m, src)\n}\nfunc (m *KeyValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *KeyValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_KeyValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_KeyValue proto.InternalMessageInfo\n\nfunc (m *KeyValue) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *KeyValue) GetValue() string {\n\tif m != nil {\n\t\treturn m.Value\n\t}\n\treturn \"\"\n}\n\n// LinuxContainerResources specifies Linux specific configuration for\n// resources.\ntype LinuxContainerResources struct {\n\t// CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified).\n\tCpuPeriod int64 `protobuf:\"varint,1,opt,name=cpu_period,json=cpuPeriod,proto3\" json:\"cpu_period,omitempty\"`\n\t// CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified).\n\tCpuQuota int64 `protobuf:\"varint,2,opt,name=cpu_quota,json=cpuQuota,proto3\" json:\"cpu_quota,omitempty\"`\n\t// CPU shares (relative weight vs. other containers). Default: 0 (not specified).\n\tCpuShares int64 `protobuf:\"varint,3,opt,name=cpu_shares,json=cpuShares,proto3\" json:\"cpu_shares,omitempty\"`\n\t// Memory limit in bytes. Default: 0 (not specified).\n\tMemoryLimitInBytes int64 `protobuf:\"varint,4,opt,name=memory_limit_in_bytes,json=memoryLimitInBytes,proto3\" json:\"memory_limit_in_bytes,omitempty\"`\n\t// OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified).\n\tOomScoreAdj int64 `protobuf:\"varint,5,opt,name=oom_score_adj,json=oomScoreAdj,proto3\" json:\"oom_score_adj,omitempty\"`\n\t// CpusetCpus constrains the allowed set of logical CPUs. Default: \"\" (not specified).\n\tCpusetCpus string `protobuf:\"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3\" json:\"cpuset_cpus,omitempty\"`\n\t// CpusetMems constrains the allowed set of memory nodes. Default: \"\" (not specified).\n\tCpusetMems string `protobuf:\"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3\" json:\"cpuset_mems,omitempty\"`\n\t// List of HugepageLimits to limit the HugeTLB usage of container per page size. Default: nil (not specified).\n\tHugepageLimits []*HugepageLimit `protobuf:\"bytes,8,rep,name=hugepage_limits,json=hugepageLimits,proto3\" json:\"hugepage_limits,omitempty\"`\n\t// Unified resources for cgroup v2. Default: nil (not specified).\n\t// Each key/value in the map refers to the cgroup v2.\n\t// e.g. \"memory.max\": \"6937202688\" or \"io.weight\": \"default 100\".\n\tUnified map[string]string `protobuf:\"bytes,9,rep,name=unified,proto3\" json:\"unified,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Memory swap limit in bytes. Default 0 (not specified).\n\tMemorySwapLimitInBytes int64    `protobuf:\"varint,10,opt,name=memory_swap_limit_in_bytes,json=memorySwapLimitInBytes,proto3\" json:\"memory_swap_limit_in_bytes,omitempty\"`\n\tXXX_NoUnkeyedLiteral   struct{} `json:\"-\"`\n\tXXX_sizecache          int32    `json:\"-\"`\n}\n\nfunc (m *LinuxContainerResources) Reset()      { *m = LinuxContainerResources{} }\nfunc (*LinuxContainerResources) ProtoMessage() {}\nfunc (*LinuxContainerResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{46}\n}\nfunc (m *LinuxContainerResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxContainerResources.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxContainerResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxContainerResources.Merge(m, src)\n}\nfunc (m *LinuxContainerResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxContainerResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxContainerResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxContainerResources proto.InternalMessageInfo\n\nfunc (m *LinuxContainerResources) GetCpuPeriod() int64 {\n\tif m != nil {\n\t\treturn m.CpuPeriod\n\t}\n\treturn 0\n}\n\nfunc (m *LinuxContainerResources) GetCpuQuota() int64 {\n\tif m != nil {\n\t\treturn m.CpuQuota\n\t}\n\treturn 0\n}\n\nfunc (m *LinuxContainerResources) GetCpuShares() int64 {\n\tif m != nil {\n\t\treturn m.CpuShares\n\t}\n\treturn 0\n}\n\nfunc (m *LinuxContainerResources) GetMemoryLimitInBytes() int64 {\n\tif m != nil {\n\t\treturn m.MemoryLimitInBytes\n\t}\n\treturn 0\n}\n\nfunc (m *LinuxContainerResources) GetOomScoreAdj() int64 {\n\tif m != nil {\n\t\treturn m.OomScoreAdj\n\t}\n\treturn 0\n}\n\nfunc (m *LinuxContainerResources) GetCpusetCpus() string {\n\tif m != nil {\n\t\treturn m.CpusetCpus\n\t}\n\treturn \"\"\n}\n\nfunc (m *LinuxContainerResources) GetCpusetMems() string {\n\tif m != nil {\n\t\treturn m.CpusetMems\n\t}\n\treturn \"\"\n}\n\nfunc (m *LinuxContainerResources) GetHugepageLimits() []*HugepageLimit {\n\tif m != nil {\n\t\treturn m.HugepageLimits\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerResources) GetUnified() map[string]string {\n\tif m != nil {\n\t\treturn m.Unified\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerResources) GetMemorySwapLimitInBytes() int64 {\n\tif m != nil {\n\t\treturn m.MemorySwapLimitInBytes\n\t}\n\treturn 0\n}\n\n// HugepageLimit corresponds to the file`hugetlb.<hugepagesize>.limit_in_byte` in container level cgroup.\n// For example, `PageSize=1GB`, `Limit=1073741824` means setting `1073741824` bytes to hugetlb.1GB.limit_in_bytes.\ntype HugepageLimit struct {\n\t// The value of PageSize has the format <size><unit-prefix>B (2MB, 1GB),\n\t// and must match the <hugepagesize> of the corresponding control file found in `hugetlb.<hugepagesize>.limit_in_bytes`.\n\t// The values of <unit-prefix> are intended to be parsed using base 1024(\"1KB\" = 1024, \"1MB\" = 1048576, etc).\n\tPageSize string `protobuf:\"bytes,1,opt,name=page_size,json=pageSize,proto3\" json:\"page_size,omitempty\"`\n\t// limit in bytes of hugepagesize HugeTLB usage.\n\tLimit                uint64   `protobuf:\"varint,2,opt,name=limit,proto3\" json:\"limit,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *HugepageLimit) Reset()      { *m = HugepageLimit{} }\nfunc (*HugepageLimit) ProtoMessage() {}\nfunc (*HugepageLimit) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{47}\n}\nfunc (m *HugepageLimit) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HugepageLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_HugepageLimit.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *HugepageLimit) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HugepageLimit.Merge(m, src)\n}\nfunc (m *HugepageLimit) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HugepageLimit) XXX_DiscardUnknown() {\n\txxx_messageInfo_HugepageLimit.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HugepageLimit proto.InternalMessageInfo\n\nfunc (m *HugepageLimit) GetPageSize() string {\n\tif m != nil {\n\t\treturn m.PageSize\n\t}\n\treturn \"\"\n}\n\nfunc (m *HugepageLimit) GetLimit() uint64 {\n\tif m != nil {\n\t\treturn m.Limit\n\t}\n\treturn 0\n}\n\n// SELinuxOption are the labels to be applied to the container.\ntype SELinuxOption struct {\n\tUser                 string   `protobuf:\"bytes,1,opt,name=user,proto3\" json:\"user,omitempty\"`\n\tRole                 string   `protobuf:\"bytes,2,opt,name=role,proto3\" json:\"role,omitempty\"`\n\tType                 string   `protobuf:\"bytes,3,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tLevel                string   `protobuf:\"bytes,4,opt,name=level,proto3\" json:\"level,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *SELinuxOption) Reset()      { *m = SELinuxOption{} }\nfunc (*SELinuxOption) ProtoMessage() {}\nfunc (*SELinuxOption) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{48}\n}\nfunc (m *SELinuxOption) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SELinuxOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_SELinuxOption.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *SELinuxOption) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SELinuxOption.Merge(m, src)\n}\nfunc (m *SELinuxOption) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SELinuxOption) XXX_DiscardUnknown() {\n\txxx_messageInfo_SELinuxOption.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SELinuxOption proto.InternalMessageInfo\n\nfunc (m *SELinuxOption) GetUser() string {\n\tif m != nil {\n\t\treturn m.User\n\t}\n\treturn \"\"\n}\n\nfunc (m *SELinuxOption) GetRole() string {\n\tif m != nil {\n\t\treturn m.Role\n\t}\n\treturn \"\"\n}\n\nfunc (m *SELinuxOption) GetType() string {\n\tif m != nil {\n\t\treturn m.Type\n\t}\n\treturn \"\"\n}\n\nfunc (m *SELinuxOption) GetLevel() string {\n\tif m != nil {\n\t\treturn m.Level\n\t}\n\treturn \"\"\n}\n\n// Capability contains the container capabilities to add or drop\n// Dropping a capability will drop it from all sets.\n// If a capability is added to only the add_capabilities list then it gets added to permitted,\n// inheritable, effective and bounding sets, i.e. all sets except the ambient set.\n// If a capability is added to only the add_ambient_capabilities list then it gets added to all sets, i.e permitted\n// inheritable, effective, bounding and ambient sets.\n// If a capability is added to add_capabilities and add_ambient_capabilities lists then it gets added to all sets, i.e.\n// permitted, inheritable, effective, bounding and ambient sets.\ntype Capability struct {\n\t// List of capabilities to add.\n\tAddCapabilities []string `protobuf:\"bytes,1,rep,name=add_capabilities,json=addCapabilities,proto3\" json:\"add_capabilities,omitempty\"`\n\t// List of capabilities to drop.\n\tDropCapabilities []string `protobuf:\"bytes,2,rep,name=drop_capabilities,json=dropCapabilities,proto3\" json:\"drop_capabilities,omitempty\"`\n\t// List of ambient capabilities to add.\n\tAddAmbientCapabilities []string `protobuf:\"bytes,3,rep,name=add_ambient_capabilities,json=addAmbientCapabilities,proto3\" json:\"add_ambient_capabilities,omitempty\"`\n\tXXX_NoUnkeyedLiteral   struct{} `json:\"-\"`\n\tXXX_sizecache          int32    `json:\"-\"`\n}\n\nfunc (m *Capability) Reset()      { *m = Capability{} }\nfunc (*Capability) ProtoMessage() {}\nfunc (*Capability) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{49}\n}\nfunc (m *Capability) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Capability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Capability.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Capability) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Capability.Merge(m, src)\n}\nfunc (m *Capability) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Capability) XXX_DiscardUnknown() {\n\txxx_messageInfo_Capability.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Capability proto.InternalMessageInfo\n\nfunc (m *Capability) GetAddCapabilities() []string {\n\tif m != nil {\n\t\treturn m.AddCapabilities\n\t}\n\treturn nil\n}\n\nfunc (m *Capability) GetDropCapabilities() []string {\n\tif m != nil {\n\t\treturn m.DropCapabilities\n\t}\n\treturn nil\n}\n\nfunc (m *Capability) GetAddAmbientCapabilities() []string {\n\tif m != nil {\n\t\treturn m.AddAmbientCapabilities\n\t}\n\treturn nil\n}\n\n// LinuxContainerSecurityContext holds linux security configuration that will be applied to a container.\ntype LinuxContainerSecurityContext struct {\n\t// Capabilities to add or drop.\n\tCapabilities *Capability `protobuf:\"bytes,1,opt,name=capabilities,proto3\" json:\"capabilities,omitempty\"`\n\t// If set, run container in privileged mode.\n\t// Privileged mode is incompatible with the following options. If\n\t// privileged is set, the following features MAY have no effect:\n\t// 1. capabilities\n\t// 2. selinux_options\n\t// 4. seccomp\n\t// 5. apparmor\n\t//\n\t// Privileged mode implies the following specific options are applied:\n\t// 1. All capabilities are added.\n\t// 2. Sensitive paths, such as kernel module paths within sysfs, are not masked.\n\t// 3. Any sysfs and procfs mounts are mounted RW.\n\t// 4. AppArmor confinement is not applied.\n\t// 5. Seccomp restrictions are not applied.\n\t// 6. The device cgroup does not restrict access to any devices.\n\t// 7. All devices from the host's /dev are available within the container.\n\t// 8. SELinux restrictions are not applied (e.g. label=disabled).\n\tPrivileged bool `protobuf:\"varint,2,opt,name=privileged,proto3\" json:\"privileged,omitempty\"`\n\t// Configurations for the container's namespaces.\n\t// Only used if the container uses namespace for isolation.\n\tNamespaceOptions *NamespaceOption `protobuf:\"bytes,3,opt,name=namespace_options,json=namespaceOptions,proto3\" json:\"namespace_options,omitempty\"`\n\t// SELinux context to be optionally applied.\n\tSelinuxOptions *SELinuxOption `protobuf:\"bytes,4,opt,name=selinux_options,json=selinuxOptions,proto3\" json:\"selinux_options,omitempty\"`\n\t// UID to run the container process as. Only one of run_as_user and\n\t// run_as_username can be specified at a time.\n\tRunAsUser *Int64Value `protobuf:\"bytes,5,opt,name=run_as_user,json=runAsUser,proto3\" json:\"run_as_user,omitempty\"`\n\t// GID to run the container process as. run_as_group should only be specified\n\t// when run_as_user or run_as_username is specified; otherwise, the runtime\n\t// MUST error.\n\tRunAsGroup *Int64Value `protobuf:\"bytes,12,opt,name=run_as_group,json=runAsGroup,proto3\" json:\"run_as_group,omitempty\"`\n\t// User name to run the container process as. If specified, the user MUST\n\t// exist in the container image (i.e. in the /etc/passwd inside the image),\n\t// and be resolved there by the runtime; otherwise, the runtime MUST error.\n\tRunAsUsername string `protobuf:\"bytes,6,opt,name=run_as_username,json=runAsUsername,proto3\" json:\"run_as_username,omitempty\"`\n\t// If set, the root filesystem of the container is read-only.\n\tReadonlyRootfs bool `protobuf:\"varint,7,opt,name=readonly_rootfs,json=readonlyRootfs,proto3\" json:\"readonly_rootfs,omitempty\"`\n\t// List of groups applied to the first process run in the container, in\n\t// addition to the container's primary GID.\n\tSupplementalGroups []int64 `protobuf:\"varint,8,rep,packed,name=supplemental_groups,json=supplementalGroups,proto3\" json:\"supplemental_groups,omitempty\"`\n\t// no_new_privs defines if the flag for no_new_privs should be set on the\n\t// container.\n\tNoNewPrivs bool `protobuf:\"varint,11,opt,name=no_new_privs,json=noNewPrivs,proto3\" json:\"no_new_privs,omitempty\"`\n\t// masked_paths is a slice of paths that should be masked by the container\n\t// runtime, this can be passed directly to the OCI spec.\n\tMaskedPaths []string `protobuf:\"bytes,13,rep,name=masked_paths,json=maskedPaths,proto3\" json:\"masked_paths,omitempty\"`\n\t// readonly_paths is a slice of paths that should be set as readonly by the\n\t// container runtime, this can be passed directly to the OCI spec.\n\tReadonlyPaths []string `protobuf:\"bytes,14,rep,name=readonly_paths,json=readonlyPaths,proto3\" json:\"readonly_paths,omitempty\"`\n\t// Seccomp profile for the container.\n\tSeccomp *SecurityProfile `protobuf:\"bytes,15,opt,name=seccomp,proto3\" json:\"seccomp,omitempty\"`\n\t// AppArmor profile for the container.\n\tApparmor *SecurityProfile `protobuf:\"bytes,16,opt,name=apparmor,proto3\" json:\"apparmor,omitempty\"`\n\t// AppArmor profile for the container, candidate values are:\n\t//   - runtime/default: equivalent to not specifying a profile.\n\t//   - unconfined: no profiles are loaded\n\t//   - localhost/<profile_name>: profile loaded on the node\n\t//     (localhost) by name. The possible profile names are detailed at\n\t//     https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference\n\tApparmorProfile string `protobuf:\"bytes,9,opt,name=apparmor_profile,json=apparmorProfile,proto3\" json:\"apparmor_profile,omitempty\"` // Deprecated: Do not use.\n\t// Seccomp profile for the container, candidate values are:\n\t//   - runtime/default: the default profile for the container runtime\n\t//   - unconfined: unconfined profile, ie, no seccomp sandboxing\n\t//   - localhost/<full-path-to-profile>: the profile installed on the node.\n\t//     <full-path-to-profile> is the full path of the profile.\n\t//\n\t// Default: \"\", which is identical with unconfined.\n\tSeccompProfilePath   string   `protobuf:\"bytes,10,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3\" json:\"seccomp_profile_path,omitempty\"` // Deprecated: Do not use.\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *LinuxContainerSecurityContext) Reset()      { *m = LinuxContainerSecurityContext{} }\nfunc (*LinuxContainerSecurityContext) ProtoMessage() {}\nfunc (*LinuxContainerSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{50}\n}\nfunc (m *LinuxContainerSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxContainerSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxContainerSecurityContext.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxContainerSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxContainerSecurityContext.Merge(m, src)\n}\nfunc (m *LinuxContainerSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxContainerSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxContainerSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxContainerSecurityContext proto.InternalMessageInfo\n\nfunc (m *LinuxContainerSecurityContext) GetCapabilities() *Capability {\n\tif m != nil {\n\t\treturn m.Capabilities\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetPrivileged() bool {\n\tif m != nil {\n\t\treturn m.Privileged\n\t}\n\treturn false\n}\n\nfunc (m *LinuxContainerSecurityContext) GetNamespaceOptions() *NamespaceOption {\n\tif m != nil {\n\t\treturn m.NamespaceOptions\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetSelinuxOptions() *SELinuxOption {\n\tif m != nil {\n\t\treturn m.SelinuxOptions\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetRunAsUser() *Int64Value {\n\tif m != nil {\n\t\treturn m.RunAsUser\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetRunAsGroup() *Int64Value {\n\tif m != nil {\n\t\treturn m.RunAsGroup\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetRunAsUsername() string {\n\tif m != nil {\n\t\treturn m.RunAsUsername\n\t}\n\treturn \"\"\n}\n\nfunc (m *LinuxContainerSecurityContext) GetReadonlyRootfs() bool {\n\tif m != nil {\n\t\treturn m.ReadonlyRootfs\n\t}\n\treturn false\n}\n\nfunc (m *LinuxContainerSecurityContext) GetSupplementalGroups() []int64 {\n\tif m != nil {\n\t\treturn m.SupplementalGroups\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetNoNewPrivs() bool {\n\tif m != nil {\n\t\treturn m.NoNewPrivs\n\t}\n\treturn false\n}\n\nfunc (m *LinuxContainerSecurityContext) GetMaskedPaths() []string {\n\tif m != nil {\n\t\treturn m.MaskedPaths\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetReadonlyPaths() []string {\n\tif m != nil {\n\t\treturn m.ReadonlyPaths\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetSeccomp() *SecurityProfile {\n\tif m != nil {\n\t\treturn m.Seccomp\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerSecurityContext) GetApparmor() *SecurityProfile {\n\tif m != nil {\n\t\treturn m.Apparmor\n\t}\n\treturn nil\n}\n\n// Deprecated: Do not use.\nfunc (m *LinuxContainerSecurityContext) GetApparmorProfile() string {\n\tif m != nil {\n\t\treturn m.ApparmorProfile\n\t}\n\treturn \"\"\n}\n\n// Deprecated: Do not use.\nfunc (m *LinuxContainerSecurityContext) GetSeccompProfilePath() string {\n\tif m != nil {\n\t\treturn m.SeccompProfilePath\n\t}\n\treturn \"\"\n}\n\n// LinuxContainerConfig contains platform-specific configuration for\n// Linux-based containers.\ntype LinuxContainerConfig struct {\n\t// Resources specification for the container.\n\tResources *LinuxContainerResources `protobuf:\"bytes,1,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\t// LinuxContainerSecurityContext configuration for the container.\n\tSecurityContext      *LinuxContainerSecurityContext `protobuf:\"bytes,2,opt,name=security_context,json=securityContext,proto3\" json:\"security_context,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                       `json:\"-\"`\n\tXXX_sizecache        int32                          `json:\"-\"`\n}\n\nfunc (m *LinuxContainerConfig) Reset()      { *m = LinuxContainerConfig{} }\nfunc (*LinuxContainerConfig) ProtoMessage() {}\nfunc (*LinuxContainerConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{51}\n}\nfunc (m *LinuxContainerConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxContainerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LinuxContainerConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LinuxContainerConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxContainerConfig.Merge(m, src)\n}\nfunc (m *LinuxContainerConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxContainerConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxContainerConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxContainerConfig proto.InternalMessageInfo\n\nfunc (m *LinuxContainerConfig) GetResources() *LinuxContainerResources {\n\tif m != nil {\n\t\treturn m.Resources\n\t}\n\treturn nil\n}\n\nfunc (m *LinuxContainerConfig) GetSecurityContext() *LinuxContainerSecurityContext {\n\tif m != nil {\n\t\treturn m.SecurityContext\n\t}\n\treturn nil\n}\n\n// WindowsSandboxSecurityContext holds platform-specific configurations that will be\n// applied to a sandbox.\n// These settings will only apply to the sandbox container.\ntype WindowsSandboxSecurityContext struct {\n\t// User name to run the container process as. If specified, the user MUST\n\t// exist in the container image and be resolved there by the runtime;\n\t// otherwise, the runtime MUST return error.\n\tRunAsUsername string `protobuf:\"bytes,1,opt,name=run_as_username,json=runAsUsername,proto3\" json:\"run_as_username,omitempty\"`\n\t// The contents of the GMSA credential spec to use to run this container.\n\tCredentialSpec string `protobuf:\"bytes,2,opt,name=credential_spec,json=credentialSpec,proto3\" json:\"credential_spec,omitempty\"`\n\t// Indicates whether the container requested to run as a HostProcess container.\n\tHostProcess          bool     `protobuf:\"varint,3,opt,name=host_process,json=hostProcess,proto3\" json:\"host_process,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *WindowsSandboxSecurityContext) Reset()      { *m = WindowsSandboxSecurityContext{} }\nfunc (*WindowsSandboxSecurityContext) ProtoMessage() {}\nfunc (*WindowsSandboxSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{52}\n}\nfunc (m *WindowsSandboxSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsSandboxSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsSandboxSecurityContext.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsSandboxSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsSandboxSecurityContext.Merge(m, src)\n}\nfunc (m *WindowsSandboxSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsSandboxSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsSandboxSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsSandboxSecurityContext proto.InternalMessageInfo\n\nfunc (m *WindowsSandboxSecurityContext) GetRunAsUsername() string {\n\tif m != nil {\n\t\treturn m.RunAsUsername\n\t}\n\treturn \"\"\n}\n\nfunc (m *WindowsSandboxSecurityContext) GetCredentialSpec() string {\n\tif m != nil {\n\t\treturn m.CredentialSpec\n\t}\n\treturn \"\"\n}\n\nfunc (m *WindowsSandboxSecurityContext) GetHostProcess() bool {\n\tif m != nil {\n\t\treturn m.HostProcess\n\t}\n\treturn false\n}\n\n// WindowsPodSandboxConfig holds platform-specific configurations for Windows\n// host platforms and Windows-based containers.\ntype WindowsPodSandboxConfig struct {\n\t// WindowsSandboxSecurityContext holds sandbox security attributes.\n\tSecurityContext      *WindowsSandboxSecurityContext `protobuf:\"bytes,1,opt,name=security_context,json=securityContext,proto3\" json:\"security_context,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                       `json:\"-\"`\n\tXXX_sizecache        int32                          `json:\"-\"`\n}\n\nfunc (m *WindowsPodSandboxConfig) Reset()      { *m = WindowsPodSandboxConfig{} }\nfunc (*WindowsPodSandboxConfig) ProtoMessage() {}\nfunc (*WindowsPodSandboxConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{53}\n}\nfunc (m *WindowsPodSandboxConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsPodSandboxConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsPodSandboxConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsPodSandboxConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsPodSandboxConfig.Merge(m, src)\n}\nfunc (m *WindowsPodSandboxConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsPodSandboxConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsPodSandboxConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsPodSandboxConfig proto.InternalMessageInfo\n\nfunc (m *WindowsPodSandboxConfig) GetSecurityContext() *WindowsSandboxSecurityContext {\n\tif m != nil {\n\t\treturn m.SecurityContext\n\t}\n\treturn nil\n}\n\n// WindowsContainerSecurityContext holds windows security configuration that will be applied to a container.\ntype WindowsContainerSecurityContext struct {\n\t// User name to run the container process as. If specified, the user MUST\n\t// exist in the container image and be resolved there by the runtime;\n\t// otherwise, the runtime MUST return error.\n\tRunAsUsername string `protobuf:\"bytes,1,opt,name=run_as_username,json=runAsUsername,proto3\" json:\"run_as_username,omitempty\"`\n\t// The contents of the GMSA credential spec to use to run this container.\n\tCredentialSpec string `protobuf:\"bytes,2,opt,name=credential_spec,json=credentialSpec,proto3\" json:\"credential_spec,omitempty\"`\n\t// Indicates whether a container is to be run as a HostProcess container.\n\tHostProcess          bool     `protobuf:\"varint,3,opt,name=host_process,json=hostProcess,proto3\" json:\"host_process,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *WindowsContainerSecurityContext) Reset()      { *m = WindowsContainerSecurityContext{} }\nfunc (*WindowsContainerSecurityContext) ProtoMessage() {}\nfunc (*WindowsContainerSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{54}\n}\nfunc (m *WindowsContainerSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsContainerSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsContainerSecurityContext.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsContainerSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsContainerSecurityContext.Merge(m, src)\n}\nfunc (m *WindowsContainerSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsContainerSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsContainerSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsContainerSecurityContext proto.InternalMessageInfo\n\nfunc (m *WindowsContainerSecurityContext) GetRunAsUsername() string {\n\tif m != nil {\n\t\treturn m.RunAsUsername\n\t}\n\treturn \"\"\n}\n\nfunc (m *WindowsContainerSecurityContext) GetCredentialSpec() string {\n\tif m != nil {\n\t\treturn m.CredentialSpec\n\t}\n\treturn \"\"\n}\n\nfunc (m *WindowsContainerSecurityContext) GetHostProcess() bool {\n\tif m != nil {\n\t\treturn m.HostProcess\n\t}\n\treturn false\n}\n\n// WindowsContainerConfig contains platform-specific configuration for\n// Windows-based containers.\ntype WindowsContainerConfig struct {\n\t// Resources specification for the container.\n\tResources *WindowsContainerResources `protobuf:\"bytes,1,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\t// WindowsContainerSecurityContext configuration for the container.\n\tSecurityContext      *WindowsContainerSecurityContext `protobuf:\"bytes,2,opt,name=security_context,json=securityContext,proto3\" json:\"security_context,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                         `json:\"-\"`\n\tXXX_sizecache        int32                            `json:\"-\"`\n}\n\nfunc (m *WindowsContainerConfig) Reset()      { *m = WindowsContainerConfig{} }\nfunc (*WindowsContainerConfig) ProtoMessage() {}\nfunc (*WindowsContainerConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{55}\n}\nfunc (m *WindowsContainerConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsContainerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsContainerConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsContainerConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsContainerConfig.Merge(m, src)\n}\nfunc (m *WindowsContainerConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsContainerConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsContainerConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsContainerConfig proto.InternalMessageInfo\n\nfunc (m *WindowsContainerConfig) GetResources() *WindowsContainerResources {\n\tif m != nil {\n\t\treturn m.Resources\n\t}\n\treturn nil\n}\n\nfunc (m *WindowsContainerConfig) GetSecurityContext() *WindowsContainerSecurityContext {\n\tif m != nil {\n\t\treturn m.SecurityContext\n\t}\n\treturn nil\n}\n\n// WindowsContainerResources specifies Windows specific configuration for\n// resources.\ntype WindowsContainerResources struct {\n\t// CPU shares (relative weight vs. other containers). Default: 0 (not specified).\n\tCpuShares int64 `protobuf:\"varint,1,opt,name=cpu_shares,json=cpuShares,proto3\" json:\"cpu_shares,omitempty\"`\n\t// Number of CPUs available to the container. Default: 0 (not specified).\n\tCpuCount int64 `protobuf:\"varint,2,opt,name=cpu_count,json=cpuCount,proto3\" json:\"cpu_count,omitempty\"`\n\t// Specifies the portion of processor cycles that this container can use as a percentage times 100.\n\tCpuMaximum int64 `protobuf:\"varint,3,opt,name=cpu_maximum,json=cpuMaximum,proto3\" json:\"cpu_maximum,omitempty\"`\n\t// Memory limit in bytes. Default: 0 (not specified).\n\tMemoryLimitInBytes int64 `protobuf:\"varint,4,opt,name=memory_limit_in_bytes,json=memoryLimitInBytes,proto3\" json:\"memory_limit_in_bytes,omitempty\"`\n\t// Specifies the size of the rootfs / scratch space in bytes to be configured for this container. Default: 0 (not specified).\n\tRootfsSizeInBytes    int64    `protobuf:\"varint,5,opt,name=rootfs_size_in_bytes,json=rootfsSizeInBytes,proto3\" json:\"rootfs_size_in_bytes,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *WindowsContainerResources) Reset()      { *m = WindowsContainerResources{} }\nfunc (*WindowsContainerResources) ProtoMessage() {}\nfunc (*WindowsContainerResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{56}\n}\nfunc (m *WindowsContainerResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_WindowsContainerResources.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *WindowsContainerResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsContainerResources.Merge(m, src)\n}\nfunc (m *WindowsContainerResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsContainerResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsContainerResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsContainerResources proto.InternalMessageInfo\n\nfunc (m *WindowsContainerResources) GetCpuShares() int64 {\n\tif m != nil {\n\t\treturn m.CpuShares\n\t}\n\treturn 0\n}\n\nfunc (m *WindowsContainerResources) GetCpuCount() int64 {\n\tif m != nil {\n\t\treturn m.CpuCount\n\t}\n\treturn 0\n}\n\nfunc (m *WindowsContainerResources) GetCpuMaximum() int64 {\n\tif m != nil {\n\t\treturn m.CpuMaximum\n\t}\n\treturn 0\n}\n\nfunc (m *WindowsContainerResources) GetMemoryLimitInBytes() int64 {\n\tif m != nil {\n\t\treturn m.MemoryLimitInBytes\n\t}\n\treturn 0\n}\n\nfunc (m *WindowsContainerResources) GetRootfsSizeInBytes() int64 {\n\tif m != nil {\n\t\treturn m.RootfsSizeInBytes\n\t}\n\treturn 0\n}\n\n// ContainerMetadata holds all necessary information for building the container\n// name. The container runtime is encouraged to expose the metadata in its user\n// interface for better user experience. E.g., runtime can construct a unique\n// container name based on the metadata. Note that (name, attempt) is unique\n// within a sandbox for the entire lifetime of the sandbox.\ntype ContainerMetadata struct {\n\t// Name of the container. Same as the container name in the PodSpec.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Attempt number of creating the container. Default: 0.\n\tAttempt              uint32   `protobuf:\"varint,2,opt,name=attempt,proto3\" json:\"attempt,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerMetadata) Reset()      { *m = ContainerMetadata{} }\nfunc (*ContainerMetadata) ProtoMessage() {}\nfunc (*ContainerMetadata) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{57}\n}\nfunc (m *ContainerMetadata) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerMetadata.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerMetadata) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerMetadata.Merge(m, src)\n}\nfunc (m *ContainerMetadata) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerMetadata) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerMetadata.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerMetadata proto.InternalMessageInfo\n\nfunc (m *ContainerMetadata) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerMetadata) GetAttempt() uint32 {\n\tif m != nil {\n\t\treturn m.Attempt\n\t}\n\treturn 0\n}\n\n// Device specifies a host device to mount into a container.\ntype Device struct {\n\t// Path of the device within the container.\n\tContainerPath string `protobuf:\"bytes,1,opt,name=container_path,json=containerPath,proto3\" json:\"container_path,omitempty\"`\n\t// Path of the device on the host.\n\tHostPath string `protobuf:\"bytes,2,opt,name=host_path,json=hostPath,proto3\" json:\"host_path,omitempty\"`\n\t// Cgroups permissions of the device, candidates are one or more of\n\t// * r - allows container to read from the specified device.\n\t// * w - allows container to write to the specified device.\n\t// * m - allows container to create device files that do not yet exist.\n\tPermissions          string   `protobuf:\"bytes,3,opt,name=permissions,proto3\" json:\"permissions,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *Device) Reset()      { *m = Device{} }\nfunc (*Device) ProtoMessage() {}\nfunc (*Device) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{58}\n}\nfunc (m *Device) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Device.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Device) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Device.Merge(m, src)\n}\nfunc (m *Device) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Device) XXX_DiscardUnknown() {\n\txxx_messageInfo_Device.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Device proto.InternalMessageInfo\n\nfunc (m *Device) GetContainerPath() string {\n\tif m != nil {\n\t\treturn m.ContainerPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Device) GetHostPath() string {\n\tif m != nil {\n\t\treturn m.HostPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Device) GetPermissions() string {\n\tif m != nil {\n\t\treturn m.Permissions\n\t}\n\treturn \"\"\n}\n\n// ContainerConfig holds all the required and optional fields for creating a\n// container.\ntype ContainerConfig struct {\n\t// Metadata of the container. This information will uniquely identify the\n\t// container, and the runtime should leverage this to ensure correct\n\t// operation. The runtime may also use this information to improve UX, such\n\t// as by constructing a readable name.\n\tMetadata *ContainerMetadata `protobuf:\"bytes,1,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Image to use.\n\tImage *ImageSpec `protobuf:\"bytes,2,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Command to execute (i.e., entrypoint for docker)\n\tCommand []string `protobuf:\"bytes,3,rep,name=command,proto3\" json:\"command,omitempty\"`\n\t// Args for the Command (i.e., command for docker)\n\tArgs []string `protobuf:\"bytes,4,rep,name=args,proto3\" json:\"args,omitempty\"`\n\t// Current working directory of the command.\n\tWorkingDir string `protobuf:\"bytes,5,opt,name=working_dir,json=workingDir,proto3\" json:\"working_dir,omitempty\"`\n\t// List of environment variable to set in the container.\n\tEnvs []*KeyValue `protobuf:\"bytes,6,rep,name=envs,proto3\" json:\"envs,omitempty\"`\n\t// Mounts for the container.\n\tMounts []*Mount `protobuf:\"bytes,7,rep,name=mounts,proto3\" json:\"mounts,omitempty\"`\n\t// Devices for the container.\n\tDevices []*Device `protobuf:\"bytes,8,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\t// Label keys are of the form:\n\t//\n\t//\tlabel-key ::= prefixed-name | name\n\t//\tprefixed-name ::= prefix '/' name\n\t//\tprefix ::= DNS_SUBDOMAIN\n\t//\tname ::= DNS_LABEL\n\tLabels map[string]string `protobuf:\"bytes,9,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map that may be used by the kubelet to store and\n\t// retrieve arbitrary metadata.\n\t//\n\t// Annotations MUST NOT be altered by the runtime; the annotations stored\n\t// here MUST be returned in the ContainerStatus associated with the container\n\t// this ContainerConfig creates.\n\t//\n\t// In general, in order to preserve a well-defined interface between the\n\t// kubelet and the container runtime, annotations SHOULD NOT influence\n\t// runtime behaviour.\n\tAnnotations map[string]string `protobuf:\"bytes,10,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Path relative to PodSandboxConfig.LogDirectory for container to store\n\t// the log (STDOUT and STDERR) on the host.\n\t// E.g.,\n\t//\n\t//\tPodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/`\n\t//\tContainerConfig.LogPath = `containerName/Instance#.log`\n\t//\n\t// WARNING: Log management and how kubelet should interface with the\n\t// container logs are under active discussion in\n\t// https://issues.k8s.io/24677. There *may* be future change of direction\n\t// for logging as the discussion carries on.\n\tLogPath string `protobuf:\"bytes,11,opt,name=log_path,json=logPath,proto3\" json:\"log_path,omitempty\"`\n\t// Variables for interactive containers, these have very specialized\n\t// use-cases (e.g. debugging).\n\tStdin     bool `protobuf:\"varint,12,opt,name=stdin,proto3\" json:\"stdin,omitempty\"`\n\tStdinOnce bool `protobuf:\"varint,13,opt,name=stdin_once,json=stdinOnce,proto3\" json:\"stdin_once,omitempty\"`\n\tTty       bool `protobuf:\"varint,14,opt,name=tty,proto3\" json:\"tty,omitempty\"`\n\t// Configuration specific to Linux containers.\n\tLinux *LinuxContainerConfig `protobuf:\"bytes,15,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Configuration specific to Windows containers.\n\tWindows              *WindowsContainerConfig `protobuf:\"bytes,16,opt,name=windows,proto3\" json:\"windows,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                `json:\"-\"`\n\tXXX_sizecache        int32                   `json:\"-\"`\n}\n\nfunc (m *ContainerConfig) Reset()      { *m = ContainerConfig{} }\nfunc (*ContainerConfig) ProtoMessage() {}\nfunc (*ContainerConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{59}\n}\nfunc (m *ContainerConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerConfig.Merge(m, src)\n}\nfunc (m *ContainerConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerConfig proto.InternalMessageInfo\n\nfunc (m *ContainerConfig) GetMetadata() *ContainerMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetCommand() []string {\n\tif m != nil {\n\t\treturn m.Command\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetArgs() []string {\n\tif m != nil {\n\t\treturn m.Args\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetWorkingDir() string {\n\tif m != nil {\n\t\treturn m.WorkingDir\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerConfig) GetEnvs() []*KeyValue {\n\tif m != nil {\n\t\treturn m.Envs\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetMounts() []*Mount {\n\tif m != nil {\n\t\treturn m.Mounts\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetDevices() []*Device {\n\tif m != nil {\n\t\treturn m.Devices\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetLogPath() string {\n\tif m != nil {\n\t\treturn m.LogPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerConfig) GetStdin() bool {\n\tif m != nil {\n\t\treturn m.Stdin\n\t}\n\treturn false\n}\n\nfunc (m *ContainerConfig) GetStdinOnce() bool {\n\tif m != nil {\n\t\treturn m.StdinOnce\n\t}\n\treturn false\n}\n\nfunc (m *ContainerConfig) GetTty() bool {\n\tif m != nil {\n\t\treturn m.Tty\n\t}\n\treturn false\n}\n\nfunc (m *ContainerConfig) GetLinux() *LinuxContainerConfig {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerConfig) GetWindows() *WindowsContainerConfig {\n\tif m != nil {\n\t\treturn m.Windows\n\t}\n\treturn nil\n}\n\ntype CreateContainerRequest struct {\n\t// ID of the PodSandbox in which the container should be created.\n\tPodSandboxId string `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// Config of the container.\n\tConfig *ContainerConfig `protobuf:\"bytes,2,opt,name=config,proto3\" json:\"config,omitempty\"`\n\t// Config of the PodSandbox. This is the same config that was passed\n\t// to RunPodSandboxRequest to create the PodSandbox. It is passed again\n\t// here just for easy reference. The PodSandboxConfig is immutable and\n\t// remains the same throughout the lifetime of the pod.\n\tSandboxConfig        *PodSandboxConfig `protobuf:\"bytes,3,opt,name=sandbox_config,json=sandboxConfig,proto3\" json:\"sandbox_config,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *CreateContainerRequest) Reset()      { *m = CreateContainerRequest{} }\nfunc (*CreateContainerRequest) ProtoMessage() {}\nfunc (*CreateContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{60}\n}\nfunc (m *CreateContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CreateContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_CreateContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *CreateContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CreateContainerRequest.Merge(m, src)\n}\nfunc (m *CreateContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CreateContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CreateContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CreateContainerRequest proto.InternalMessageInfo\n\nfunc (m *CreateContainerRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *CreateContainerRequest) GetConfig() *ContainerConfig {\n\tif m != nil {\n\t\treturn m.Config\n\t}\n\treturn nil\n}\n\nfunc (m *CreateContainerRequest) GetSandboxConfig() *PodSandboxConfig {\n\tif m != nil {\n\t\treturn m.SandboxConfig\n\t}\n\treturn nil\n}\n\ntype CreateContainerResponse struct {\n\t// ID of the created container.\n\tContainerId          string   `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *CreateContainerResponse) Reset()      { *m = CreateContainerResponse{} }\nfunc (*CreateContainerResponse) ProtoMessage() {}\nfunc (*CreateContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{61}\n}\nfunc (m *CreateContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CreateContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_CreateContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *CreateContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CreateContainerResponse.Merge(m, src)\n}\nfunc (m *CreateContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CreateContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_CreateContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CreateContainerResponse proto.InternalMessageInfo\n\nfunc (m *CreateContainerResponse) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\ntype StartContainerRequest struct {\n\t// ID of the container to start.\n\tContainerId          string   `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StartContainerRequest) Reset()      { *m = StartContainerRequest{} }\nfunc (*StartContainerRequest) ProtoMessage() {}\nfunc (*StartContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{62}\n}\nfunc (m *StartContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StartContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StartContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StartContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StartContainerRequest.Merge(m, src)\n}\nfunc (m *StartContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StartContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_StartContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StartContainerRequest proto.InternalMessageInfo\n\nfunc (m *StartContainerRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\ntype StartContainerResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StartContainerResponse) Reset()      { *m = StartContainerResponse{} }\nfunc (*StartContainerResponse) ProtoMessage() {}\nfunc (*StartContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{63}\n}\nfunc (m *StartContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StartContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StartContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StartContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StartContainerResponse.Merge(m, src)\n}\nfunc (m *StartContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StartContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_StartContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StartContainerResponse proto.InternalMessageInfo\n\ntype StopContainerRequest struct {\n\t// ID of the container to stop.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Timeout in seconds to wait for the container to stop before forcibly\n\t// terminating it. Default: 0 (forcibly terminate the container immediately)\n\tTimeout              int64    `protobuf:\"varint,2,opt,name=timeout,proto3\" json:\"timeout,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StopContainerRequest) Reset()      { *m = StopContainerRequest{} }\nfunc (*StopContainerRequest) ProtoMessage() {}\nfunc (*StopContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{64}\n}\nfunc (m *StopContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StopContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StopContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StopContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StopContainerRequest.Merge(m, src)\n}\nfunc (m *StopContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StopContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_StopContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StopContainerRequest proto.InternalMessageInfo\n\nfunc (m *StopContainerRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *StopContainerRequest) GetTimeout() int64 {\n\tif m != nil {\n\t\treturn m.Timeout\n\t}\n\treturn 0\n}\n\ntype StopContainerResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StopContainerResponse) Reset()      { *m = StopContainerResponse{} }\nfunc (*StopContainerResponse) ProtoMessage() {}\nfunc (*StopContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{65}\n}\nfunc (m *StopContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StopContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StopContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StopContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StopContainerResponse.Merge(m, src)\n}\nfunc (m *StopContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StopContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_StopContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StopContainerResponse proto.InternalMessageInfo\n\ntype RemoveContainerRequest struct {\n\t// ID of the container to remove.\n\tContainerId          string   `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RemoveContainerRequest) Reset()      { *m = RemoveContainerRequest{} }\nfunc (*RemoveContainerRequest) ProtoMessage() {}\nfunc (*RemoveContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{66}\n}\nfunc (m *RemoveContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemoveContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemoveContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemoveContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemoveContainerRequest.Merge(m, src)\n}\nfunc (m *RemoveContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemoveContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemoveContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemoveContainerRequest proto.InternalMessageInfo\n\nfunc (m *RemoveContainerRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\ntype RemoveContainerResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RemoveContainerResponse) Reset()      { *m = RemoveContainerResponse{} }\nfunc (*RemoveContainerResponse) ProtoMessage() {}\nfunc (*RemoveContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{67}\n}\nfunc (m *RemoveContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemoveContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemoveContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemoveContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemoveContainerResponse.Merge(m, src)\n}\nfunc (m *RemoveContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemoveContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemoveContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemoveContainerResponse proto.InternalMessageInfo\n\n// ContainerStateValue is the wrapper of ContainerState.\ntype ContainerStateValue struct {\n\t// State of the container.\n\tState                ContainerState `protobuf:\"varint,1,opt,name=state,proto3,enum=runtime.v1.ContainerState\" json:\"state,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}       `json:\"-\"`\n\tXXX_sizecache        int32          `json:\"-\"`\n}\n\nfunc (m *ContainerStateValue) Reset()      { *m = ContainerStateValue{} }\nfunc (*ContainerStateValue) ProtoMessage() {}\nfunc (*ContainerStateValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{68}\n}\nfunc (m *ContainerStateValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStateValue.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStateValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateValue.Merge(m, src)\n}\nfunc (m *ContainerStateValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateValue proto.InternalMessageInfo\n\nfunc (m *ContainerStateValue) GetState() ContainerState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn ContainerState_CONTAINER_CREATED\n}\n\n// ContainerFilter is used to filter containers.\n// All those fields are combined with 'AND'\ntype ContainerFilter struct {\n\t// ID of the container.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// State of the container.\n\tState *ContainerStateValue `protobuf:\"bytes,2,opt,name=state,proto3\" json:\"state,omitempty\"`\n\t// ID of the PodSandbox.\n\tPodSandboxId string `protobuf:\"bytes,3,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// LabelSelector to select matches.\n\t// Only api.MatchLabels is supported for now and the requirements\n\t// are ANDed. MatchExpressions is not supported yet.\n\tLabelSelector        map[string]string `protobuf:\"bytes,4,rep,name=label_selector,json=labelSelector,proto3\" json:\"label_selector,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ContainerFilter) Reset()      { *m = ContainerFilter{} }\nfunc (*ContainerFilter) ProtoMessage() {}\nfunc (*ContainerFilter) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{69}\n}\nfunc (m *ContainerFilter) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerFilter.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerFilter) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerFilter.Merge(m, src)\n}\nfunc (m *ContainerFilter) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerFilter) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerFilter.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerFilter proto.InternalMessageInfo\n\nfunc (m *ContainerFilter) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerFilter) GetState() *ContainerStateValue {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerFilter) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerFilter) GetLabelSelector() map[string]string {\n\tif m != nil {\n\t\treturn m.LabelSelector\n\t}\n\treturn nil\n}\n\ntype ListContainersRequest struct {\n\tFilter               *ContainerFilter `protobuf:\"bytes,1,opt,name=filter,proto3\" json:\"filter,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}         `json:\"-\"`\n\tXXX_sizecache        int32            `json:\"-\"`\n}\n\nfunc (m *ListContainersRequest) Reset()      { *m = ListContainersRequest{} }\nfunc (*ListContainersRequest) ProtoMessage() {}\nfunc (*ListContainersRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{70}\n}\nfunc (m *ListContainersRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListContainersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListContainersRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListContainersRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListContainersRequest.Merge(m, src)\n}\nfunc (m *ListContainersRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListContainersRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListContainersRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListContainersRequest proto.InternalMessageInfo\n\nfunc (m *ListContainersRequest) GetFilter() *ContainerFilter {\n\tif m != nil {\n\t\treturn m.Filter\n\t}\n\treturn nil\n}\n\n// Container provides the runtime information for a container, such as ID, hash,\n// state of the container.\ntype Container struct {\n\t// ID of the container, used by the container runtime to identify\n\t// a container.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// ID of the sandbox to which this container belongs.\n\tPodSandboxId string `protobuf:\"bytes,2,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// Metadata of the container.\n\tMetadata *ContainerMetadata `protobuf:\"bytes,3,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Spec of the image.\n\tImage *ImageSpec `protobuf:\"bytes,4,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Reference to the image in use. For most runtimes, this should be an\n\t// image ID.\n\tImageRef string `protobuf:\"bytes,5,opt,name=image_ref,json=imageRef,proto3\" json:\"image_ref,omitempty\"`\n\t// State of the container.\n\tState ContainerState `protobuf:\"varint,6,opt,name=state,proto3,enum=runtime.v1.ContainerState\" json:\"state,omitempty\"`\n\t// Creation time of the container in nanoseconds.\n\tCreatedAt int64 `protobuf:\"varint,7,opt,name=created_at,json=createdAt,proto3\" json:\"created_at,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,8,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding ContainerConfig used to\n\t// instantiate this Container.\n\tAnnotations          map[string]string `protobuf:\"bytes,9,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *Container) Reset()      { *m = Container{} }\nfunc (*Container) ProtoMessage() {}\nfunc (*Container) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{71}\n}\nfunc (m *Container) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Container) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Container.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Container) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Container.Merge(m, src)\n}\nfunc (m *Container) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Container) XXX_DiscardUnknown() {\n\txxx_messageInfo_Container.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Container proto.InternalMessageInfo\n\nfunc (m *Container) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *Container) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *Container) GetMetadata() *ContainerMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *Container) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *Container) GetImageRef() string {\n\tif m != nil {\n\t\treturn m.ImageRef\n\t}\n\treturn \"\"\n}\n\nfunc (m *Container) GetState() ContainerState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn ContainerState_CONTAINER_CREATED\n}\n\nfunc (m *Container) GetCreatedAt() int64 {\n\tif m != nil {\n\t\treturn m.CreatedAt\n\t}\n\treturn 0\n}\n\nfunc (m *Container) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *Container) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\ntype ListContainersResponse struct {\n\t// List of containers.\n\tContainers           []*Container `protobuf:\"bytes,1,rep,name=containers,proto3\" json:\"containers,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *ListContainersResponse) Reset()      { *m = ListContainersResponse{} }\nfunc (*ListContainersResponse) ProtoMessage() {}\nfunc (*ListContainersResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{72}\n}\nfunc (m *ListContainersResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListContainersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListContainersResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListContainersResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListContainersResponse.Merge(m, src)\n}\nfunc (m *ListContainersResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListContainersResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListContainersResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListContainersResponse proto.InternalMessageInfo\n\nfunc (m *ListContainersResponse) GetContainers() []*Container {\n\tif m != nil {\n\t\treturn m.Containers\n\t}\n\treturn nil\n}\n\ntype ContainerStatusRequest struct {\n\t// ID of the container for which to retrieve status.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Verbose indicates whether to return extra information about the container.\n\tVerbose              bool     `protobuf:\"varint,2,opt,name=verbose,proto3\" json:\"verbose,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerStatusRequest) Reset()      { *m = ContainerStatusRequest{} }\nfunc (*ContainerStatusRequest) ProtoMessage() {}\nfunc (*ContainerStatusRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{73}\n}\nfunc (m *ContainerStatusRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatusRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatusRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatusRequest.Merge(m, src)\n}\nfunc (m *ContainerStatusRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatusRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatusRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatusRequest proto.InternalMessageInfo\n\nfunc (m *ContainerStatusRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatusRequest) GetVerbose() bool {\n\tif m != nil {\n\t\treturn m.Verbose\n\t}\n\treturn false\n}\n\n// ContainerStatus represents the status of a container.\ntype ContainerStatus struct {\n\t// ID of the container.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Metadata of the container.\n\tMetadata *ContainerMetadata `protobuf:\"bytes,2,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Status of the container.\n\tState ContainerState `protobuf:\"varint,3,opt,name=state,proto3,enum=runtime.v1.ContainerState\" json:\"state,omitempty\"`\n\t// Creation time of the container in nanoseconds.\n\tCreatedAt int64 `protobuf:\"varint,4,opt,name=created_at,json=createdAt,proto3\" json:\"created_at,omitempty\"`\n\t// Start time of the container in nanoseconds. Default: 0 (not specified).\n\tStartedAt int64 `protobuf:\"varint,5,opt,name=started_at,json=startedAt,proto3\" json:\"started_at,omitempty\"`\n\t// Finish time of the container in nanoseconds. Default: 0 (not specified).\n\tFinishedAt int64 `protobuf:\"varint,6,opt,name=finished_at,json=finishedAt,proto3\" json:\"finished_at,omitempty\"`\n\t// Exit code of the container. Only required when finished_at != 0. Default: 0.\n\tExitCode int32 `protobuf:\"varint,7,opt,name=exit_code,json=exitCode,proto3\" json:\"exit_code,omitempty\"`\n\t// Spec of the image.\n\tImage *ImageSpec `protobuf:\"bytes,8,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Reference to the image in use. For most runtimes, this should be an\n\t// image ID\n\tImageRef string `protobuf:\"bytes,9,opt,name=image_ref,json=imageRef,proto3\" json:\"image_ref,omitempty\"`\n\t// Brief CamelCase string explaining why container is in its current state.\n\tReason string `protobuf:\"bytes,10,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n\t// Human-readable message indicating details about why container is in its\n\t// current state.\n\tMessage string `protobuf:\"bytes,11,opt,name=message,proto3\" json:\"message,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,12,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding ContainerConfig used to\n\t// instantiate the Container this status represents.\n\tAnnotations map[string]string `protobuf:\"bytes,13,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Mounts for the container.\n\tMounts []*Mount `protobuf:\"bytes,14,rep,name=mounts,proto3\" json:\"mounts,omitempty\"`\n\t// Log path of container.\n\tLogPath string `protobuf:\"bytes,15,opt,name=log_path,json=logPath,proto3\" json:\"log_path,omitempty\"`\n\t// Resource limits configuration of the container.\n\tResources            *ContainerResources `protobuf:\"bytes,16,opt,name=resources,proto3\" json:\"resources,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}            `json:\"-\"`\n\tXXX_sizecache        int32               `json:\"-\"`\n}\n\nfunc (m *ContainerStatus) Reset()      { *m = ContainerStatus{} }\nfunc (*ContainerStatus) ProtoMessage() {}\nfunc (*ContainerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{74}\n}\nfunc (m *ContainerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatus.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatus.Merge(m, src)\n}\nfunc (m *ContainerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatus proto.InternalMessageInfo\n\nfunc (m *ContainerStatus) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatus) GetMetadata() *ContainerMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatus) GetState() ContainerState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn ContainerState_CONTAINER_CREATED\n}\n\nfunc (m *ContainerStatus) GetCreatedAt() int64 {\n\tif m != nil {\n\t\treturn m.CreatedAt\n\t}\n\treturn 0\n}\n\nfunc (m *ContainerStatus) GetStartedAt() int64 {\n\tif m != nil {\n\t\treturn m.StartedAt\n\t}\n\treturn 0\n}\n\nfunc (m *ContainerStatus) GetFinishedAt() int64 {\n\tif m != nil {\n\t\treturn m.FinishedAt\n\t}\n\treturn 0\n}\n\nfunc (m *ContainerStatus) GetExitCode() int32 {\n\tif m != nil {\n\t\treturn m.ExitCode\n\t}\n\treturn 0\n}\n\nfunc (m *ContainerStatus) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatus) GetImageRef() string {\n\tif m != nil {\n\t\treturn m.ImageRef\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatus) GetReason() string {\n\tif m != nil {\n\t\treturn m.Reason\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatus) GetMessage() string {\n\tif m != nil {\n\t\treturn m.Message\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatus) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatus) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatus) GetMounts() []*Mount {\n\tif m != nil {\n\t\treturn m.Mounts\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatus) GetLogPath() string {\n\tif m != nil {\n\t\treturn m.LogPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatus) GetResources() *ContainerResources {\n\tif m != nil {\n\t\treturn m.Resources\n\t}\n\treturn nil\n}\n\ntype ContainerStatusResponse struct {\n\t// Status of the container.\n\tStatus *ContainerStatus `protobuf:\"bytes,1,opt,name=status,proto3\" json:\"status,omitempty\"`\n\t// Info is extra information of the Container. The key could be arbitrary string, and\n\t// value should be in json format. The information could include anything useful for\n\t// debug, e.g. pid for linux container based container runtime.\n\t// It should only be returned non-empty when Verbose is true.\n\tInfo                 map[string]string `protobuf:\"bytes,2,rep,name=info,proto3\" json:\"info,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ContainerStatusResponse) Reset()      { *m = ContainerStatusResponse{} }\nfunc (*ContainerStatusResponse) ProtoMessage() {}\nfunc (*ContainerStatusResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{75}\n}\nfunc (m *ContainerStatusResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatusResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatusResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatusResponse.Merge(m, src)\n}\nfunc (m *ContainerStatusResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatusResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatusResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatusResponse proto.InternalMessageInfo\n\nfunc (m *ContainerStatusResponse) GetStatus() *ContainerStatus {\n\tif m != nil {\n\t\treturn m.Status\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStatusResponse) GetInfo() map[string]string {\n\tif m != nil {\n\t\treturn m.Info\n\t}\n\treturn nil\n}\n\n// ContainerResources holds resource limits configuration for a container.\ntype ContainerResources struct {\n\t// Resource limits configuration specific to Linux container.\n\tLinux *LinuxContainerResources `protobuf:\"bytes,1,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Resource limits configuration specific to Windows container.\n\tWindows              *WindowsContainerResources `protobuf:\"bytes,2,opt,name=windows,proto3\" json:\"windows,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                   `json:\"-\"`\n\tXXX_sizecache        int32                      `json:\"-\"`\n}\n\nfunc (m *ContainerResources) Reset()      { *m = ContainerResources{} }\nfunc (*ContainerResources) ProtoMessage() {}\nfunc (*ContainerResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{76}\n}\nfunc (m *ContainerResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerResources.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResources.Merge(m, src)\n}\nfunc (m *ContainerResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResources proto.InternalMessageInfo\n\nfunc (m *ContainerResources) GetLinux() *LinuxContainerResources {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerResources) GetWindows() *WindowsContainerResources {\n\tif m != nil {\n\t\treturn m.Windows\n\t}\n\treturn nil\n}\n\ntype UpdateContainerResourcesRequest struct {\n\t// ID of the container to update.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Resource configuration specific to Linux containers.\n\tLinux *LinuxContainerResources `protobuf:\"bytes,2,opt,name=linux,proto3\" json:\"linux,omitempty\"`\n\t// Resource configuration specific to Windows containers.\n\tWindows *WindowsContainerResources `protobuf:\"bytes,3,opt,name=windows,proto3\" json:\"windows,omitempty\"`\n\t// Unstructured key-value map holding arbitrary additional information for\n\t// container resources updating. This can be used for specifying experimental\n\t// resources to update or other options to use when updating the container.\n\tAnnotations          map[string]string `protobuf:\"bytes,4,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *UpdateContainerResourcesRequest) Reset()      { *m = UpdateContainerResourcesRequest{} }\nfunc (*UpdateContainerResourcesRequest) ProtoMessage() {}\nfunc (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{77}\n}\nfunc (m *UpdateContainerResourcesRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateContainerResourcesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UpdateContainerResourcesRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UpdateContainerResourcesRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateContainerResourcesRequest.Merge(m, src)\n}\nfunc (m *UpdateContainerResourcesRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateContainerResourcesRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateContainerResourcesRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateContainerResourcesRequest proto.InternalMessageInfo\n\nfunc (m *UpdateContainerResourcesRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *UpdateContainerResourcesRequest) GetLinux() *LinuxContainerResources {\n\tif m != nil {\n\t\treturn m.Linux\n\t}\n\treturn nil\n}\n\nfunc (m *UpdateContainerResourcesRequest) GetWindows() *WindowsContainerResources {\n\tif m != nil {\n\t\treturn m.Windows\n\t}\n\treturn nil\n}\n\nfunc (m *UpdateContainerResourcesRequest) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\ntype UpdateContainerResourcesResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *UpdateContainerResourcesResponse) Reset()      { *m = UpdateContainerResourcesResponse{} }\nfunc (*UpdateContainerResourcesResponse) ProtoMessage() {}\nfunc (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{78}\n}\nfunc (m *UpdateContainerResourcesResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateContainerResourcesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UpdateContainerResourcesResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UpdateContainerResourcesResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateContainerResourcesResponse.Merge(m, src)\n}\nfunc (m *UpdateContainerResourcesResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateContainerResourcesResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateContainerResourcesResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateContainerResourcesResponse proto.InternalMessageInfo\n\ntype ExecSyncRequest struct {\n\t// ID of the container.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Command to execute.\n\tCmd []string `protobuf:\"bytes,2,rep,name=cmd,proto3\" json:\"cmd,omitempty\"`\n\t// Timeout in seconds to stop the command. Default: 0 (run forever).\n\tTimeout              int64    `protobuf:\"varint,3,opt,name=timeout,proto3\" json:\"timeout,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ExecSyncRequest) Reset()      { *m = ExecSyncRequest{} }\nfunc (*ExecSyncRequest) ProtoMessage() {}\nfunc (*ExecSyncRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{79}\n}\nfunc (m *ExecSyncRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecSyncRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ExecSyncRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ExecSyncRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecSyncRequest.Merge(m, src)\n}\nfunc (m *ExecSyncRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecSyncRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecSyncRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecSyncRequest proto.InternalMessageInfo\n\nfunc (m *ExecSyncRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ExecSyncRequest) GetCmd() []string {\n\tif m != nil {\n\t\treturn m.Cmd\n\t}\n\treturn nil\n}\n\nfunc (m *ExecSyncRequest) GetTimeout() int64 {\n\tif m != nil {\n\t\treturn m.Timeout\n\t}\n\treturn 0\n}\n\ntype ExecSyncResponse struct {\n\t// Captured command stdout output.\n\tStdout []byte `protobuf:\"bytes,1,opt,name=stdout,proto3\" json:\"stdout,omitempty\"`\n\t// Captured command stderr output.\n\tStderr []byte `protobuf:\"bytes,2,opt,name=stderr,proto3\" json:\"stderr,omitempty\"`\n\t// Exit code the command finished with. Default: 0 (success).\n\tExitCode             int32    `protobuf:\"varint,3,opt,name=exit_code,json=exitCode,proto3\" json:\"exit_code,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ExecSyncResponse) Reset()      { *m = ExecSyncResponse{} }\nfunc (*ExecSyncResponse) ProtoMessage() {}\nfunc (*ExecSyncResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{80}\n}\nfunc (m *ExecSyncResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecSyncResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ExecSyncResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ExecSyncResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecSyncResponse.Merge(m, src)\n}\nfunc (m *ExecSyncResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecSyncResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecSyncResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecSyncResponse proto.InternalMessageInfo\n\nfunc (m *ExecSyncResponse) GetStdout() []byte {\n\tif m != nil {\n\t\treturn m.Stdout\n\t}\n\treturn nil\n}\n\nfunc (m *ExecSyncResponse) GetStderr() []byte {\n\tif m != nil {\n\t\treturn m.Stderr\n\t}\n\treturn nil\n}\n\nfunc (m *ExecSyncResponse) GetExitCode() int32 {\n\tif m != nil {\n\t\treturn m.ExitCode\n\t}\n\treturn 0\n}\n\ntype ExecRequest struct {\n\t// ID of the container in which to execute the command.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Command to execute.\n\tCmd []string `protobuf:\"bytes,2,rep,name=cmd,proto3\" json:\"cmd,omitempty\"`\n\t// Whether to exec the command in a TTY.\n\tTty bool `protobuf:\"varint,3,opt,name=tty,proto3\" json:\"tty,omitempty\"`\n\t// Whether to stream stdin.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\tStdin bool `protobuf:\"varint,4,opt,name=stdin,proto3\" json:\"stdin,omitempty\"`\n\t// Whether to stream stdout.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\tStdout bool `protobuf:\"varint,5,opt,name=stdout,proto3\" json:\"stdout,omitempty\"`\n\t// Whether to stream stderr.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\t// If `tty` is true, `stderr` MUST be false. Multiplexing is not supported\n\t// in this case. The output of stdout and stderr will be combined to a\n\t// single stream.\n\tStderr               bool     `protobuf:\"varint,6,opt,name=stderr,proto3\" json:\"stderr,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ExecRequest) Reset()      { *m = ExecRequest{} }\nfunc (*ExecRequest) ProtoMessage() {}\nfunc (*ExecRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{81}\n}\nfunc (m *ExecRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ExecRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ExecRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecRequest.Merge(m, src)\n}\nfunc (m *ExecRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecRequest proto.InternalMessageInfo\n\nfunc (m *ExecRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ExecRequest) GetCmd() []string {\n\tif m != nil {\n\t\treturn m.Cmd\n\t}\n\treturn nil\n}\n\nfunc (m *ExecRequest) GetTty() bool {\n\tif m != nil {\n\t\treturn m.Tty\n\t}\n\treturn false\n}\n\nfunc (m *ExecRequest) GetStdin() bool {\n\tif m != nil {\n\t\treturn m.Stdin\n\t}\n\treturn false\n}\n\nfunc (m *ExecRequest) GetStdout() bool {\n\tif m != nil {\n\t\treturn m.Stdout\n\t}\n\treturn false\n}\n\nfunc (m *ExecRequest) GetStderr() bool {\n\tif m != nil {\n\t\treturn m.Stderr\n\t}\n\treturn false\n}\n\ntype ExecResponse struct {\n\t// Fully qualified URL of the exec streaming server.\n\tUrl                  string   `protobuf:\"bytes,1,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ExecResponse) Reset()      { *m = ExecResponse{} }\nfunc (*ExecResponse) ProtoMessage() {}\nfunc (*ExecResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{82}\n}\nfunc (m *ExecResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ExecResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ExecResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecResponse.Merge(m, src)\n}\nfunc (m *ExecResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecResponse proto.InternalMessageInfo\n\nfunc (m *ExecResponse) GetUrl() string {\n\tif m != nil {\n\t\treturn m.Url\n\t}\n\treturn \"\"\n}\n\ntype AttachRequest struct {\n\t// ID of the container to which to attach.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Whether to stream stdin.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\tStdin bool `protobuf:\"varint,2,opt,name=stdin,proto3\" json:\"stdin,omitempty\"`\n\t// Whether the process being attached is running in a TTY.\n\t// This must match the TTY setting in the ContainerConfig.\n\tTty bool `protobuf:\"varint,3,opt,name=tty,proto3\" json:\"tty,omitempty\"`\n\t// Whether to stream stdout.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\tStdout bool `protobuf:\"varint,4,opt,name=stdout,proto3\" json:\"stdout,omitempty\"`\n\t// Whether to stream stderr.\n\t// One of `stdin`, `stdout`, and `stderr` MUST be true.\n\t// If `tty` is true, `stderr` MUST be false. Multiplexing is not supported\n\t// in this case. The output of stdout and stderr will be combined to a\n\t// single stream.\n\tStderr               bool     `protobuf:\"varint,5,opt,name=stderr,proto3\" json:\"stderr,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *AttachRequest) Reset()      { *m = AttachRequest{} }\nfunc (*AttachRequest) ProtoMessage() {}\nfunc (*AttachRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{83}\n}\nfunc (m *AttachRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AttachRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AttachRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AttachRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AttachRequest.Merge(m, src)\n}\nfunc (m *AttachRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AttachRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_AttachRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AttachRequest proto.InternalMessageInfo\n\nfunc (m *AttachRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *AttachRequest) GetStdin() bool {\n\tif m != nil {\n\t\treturn m.Stdin\n\t}\n\treturn false\n}\n\nfunc (m *AttachRequest) GetTty() bool {\n\tif m != nil {\n\t\treturn m.Tty\n\t}\n\treturn false\n}\n\nfunc (m *AttachRequest) GetStdout() bool {\n\tif m != nil {\n\t\treturn m.Stdout\n\t}\n\treturn false\n}\n\nfunc (m *AttachRequest) GetStderr() bool {\n\tif m != nil {\n\t\treturn m.Stderr\n\t}\n\treturn false\n}\n\ntype AttachResponse struct {\n\t// Fully qualified URL of the attach streaming server.\n\tUrl                  string   `protobuf:\"bytes,1,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *AttachResponse) Reset()      { *m = AttachResponse{} }\nfunc (*AttachResponse) ProtoMessage() {}\nfunc (*AttachResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{84}\n}\nfunc (m *AttachResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AttachResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AttachResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AttachResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AttachResponse.Merge(m, src)\n}\nfunc (m *AttachResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AttachResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_AttachResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AttachResponse proto.InternalMessageInfo\n\nfunc (m *AttachResponse) GetUrl() string {\n\tif m != nil {\n\t\treturn m.Url\n\t}\n\treturn \"\"\n}\n\ntype PortForwardRequest struct {\n\t// ID of the container to which to forward the port.\n\tPodSandboxId string `protobuf:\"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// Port to forward.\n\tPort                 []int32  `protobuf:\"varint,2,rep,packed,name=port,proto3\" json:\"port,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PortForwardRequest) Reset()      { *m = PortForwardRequest{} }\nfunc (*PortForwardRequest) ProtoMessage() {}\nfunc (*PortForwardRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{85}\n}\nfunc (m *PortForwardRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortForwardRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PortForwardRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PortForwardRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortForwardRequest.Merge(m, src)\n}\nfunc (m *PortForwardRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortForwardRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortForwardRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortForwardRequest proto.InternalMessageInfo\n\nfunc (m *PortForwardRequest) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *PortForwardRequest) GetPort() []int32 {\n\tif m != nil {\n\t\treturn m.Port\n\t}\n\treturn nil\n}\n\ntype PortForwardResponse struct {\n\t// Fully qualified URL of the port-forward streaming server.\n\tUrl                  string   `protobuf:\"bytes,1,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PortForwardResponse) Reset()      { *m = PortForwardResponse{} }\nfunc (*PortForwardResponse) ProtoMessage() {}\nfunc (*PortForwardResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{86}\n}\nfunc (m *PortForwardResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortForwardResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PortForwardResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PortForwardResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortForwardResponse.Merge(m, src)\n}\nfunc (m *PortForwardResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortForwardResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortForwardResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortForwardResponse proto.InternalMessageInfo\n\nfunc (m *PortForwardResponse) GetUrl() string {\n\tif m != nil {\n\t\treturn m.Url\n\t}\n\treturn \"\"\n}\n\ntype ImageFilter struct {\n\t// Spec of the image.\n\tImage                *ImageSpec `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}   `json:\"-\"`\n\tXXX_sizecache        int32      `json:\"-\"`\n}\n\nfunc (m *ImageFilter) Reset()      { *m = ImageFilter{} }\nfunc (*ImageFilter) ProtoMessage() {}\nfunc (*ImageFilter) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{87}\n}\nfunc (m *ImageFilter) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageFilter.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageFilter) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageFilter.Merge(m, src)\n}\nfunc (m *ImageFilter) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageFilter) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageFilter.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageFilter proto.InternalMessageInfo\n\nfunc (m *ImageFilter) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\ntype ListImagesRequest struct {\n\t// Filter to list images.\n\tFilter               *ImageFilter `protobuf:\"bytes,1,opt,name=filter,proto3\" json:\"filter,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *ListImagesRequest) Reset()      { *m = ListImagesRequest{} }\nfunc (*ListImagesRequest) ProtoMessage() {}\nfunc (*ListImagesRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{88}\n}\nfunc (m *ListImagesRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListImagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListImagesRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListImagesRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListImagesRequest.Merge(m, src)\n}\nfunc (m *ListImagesRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListImagesRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListImagesRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListImagesRequest proto.InternalMessageInfo\n\nfunc (m *ListImagesRequest) GetFilter() *ImageFilter {\n\tif m != nil {\n\t\treturn m.Filter\n\t}\n\treturn nil\n}\n\n// Basic information about a container image.\ntype Image struct {\n\t// ID of the image.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Other names by which this image is known.\n\tRepoTags []string `protobuf:\"bytes,2,rep,name=repo_tags,json=repoTags,proto3\" json:\"repo_tags,omitempty\"`\n\t// Digests by which this image is known.\n\tRepoDigests []string `protobuf:\"bytes,3,rep,name=repo_digests,json=repoDigests,proto3\" json:\"repo_digests,omitempty\"`\n\t// Size of the image in bytes. Must be > 0.\n\tSize_ uint64 `protobuf:\"varint,4,opt,name=size,proto3\" json:\"size,omitempty\"`\n\t// UID that will run the command(s). This is used as a default if no user is\n\t// specified when creating the container. UID and the following user name\n\t// are mutually exclusive.\n\tUid *Int64Value `protobuf:\"bytes,5,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\t// User name that will run the command(s). This is used if UID is not set\n\t// and no user is specified when creating container.\n\tUsername string `protobuf:\"bytes,6,opt,name=username,proto3\" json:\"username,omitempty\"`\n\t// ImageSpec for image which includes annotations\n\tSpec *ImageSpec `protobuf:\"bytes,7,opt,name=spec,proto3\" json:\"spec,omitempty\"`\n\t// Recommendation on whether this image should be exempt from garbage collection.\n\t// It must only be treated as a recommendation -- the client can still request that the image be deleted,\n\t// and the runtime must oblige.\n\tPinned               bool     `protobuf:\"varint,8,opt,name=pinned,proto3\" json:\"pinned,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *Image) Reset()      { *m = Image{} }\nfunc (*Image) ProtoMessage() {}\nfunc (*Image) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{89}\n}\nfunc (m *Image) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Image.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Image) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Image.Merge(m, src)\n}\nfunc (m *Image) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Image) XXX_DiscardUnknown() {\n\txxx_messageInfo_Image.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Image proto.InternalMessageInfo\n\nfunc (m *Image) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *Image) GetRepoTags() []string {\n\tif m != nil {\n\t\treturn m.RepoTags\n\t}\n\treturn nil\n}\n\nfunc (m *Image) GetRepoDigests() []string {\n\tif m != nil {\n\t\treturn m.RepoDigests\n\t}\n\treturn nil\n}\n\nfunc (m *Image) GetSize_() uint64 {\n\tif m != nil {\n\t\treturn m.Size_\n\t}\n\treturn 0\n}\n\nfunc (m *Image) GetUid() *Int64Value {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn nil\n}\n\nfunc (m *Image) GetUsername() string {\n\tif m != nil {\n\t\treturn m.Username\n\t}\n\treturn \"\"\n}\n\nfunc (m *Image) GetSpec() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Spec\n\t}\n\treturn nil\n}\n\nfunc (m *Image) GetPinned() bool {\n\tif m != nil {\n\t\treturn m.Pinned\n\t}\n\treturn false\n}\n\ntype ListImagesResponse struct {\n\t// List of images.\n\tImages               []*Image `protobuf:\"bytes,1,rep,name=images,proto3\" json:\"images,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ListImagesResponse) Reset()      { *m = ListImagesResponse{} }\nfunc (*ListImagesResponse) ProtoMessage() {}\nfunc (*ListImagesResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{90}\n}\nfunc (m *ListImagesResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListImagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListImagesResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListImagesResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListImagesResponse.Merge(m, src)\n}\nfunc (m *ListImagesResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListImagesResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListImagesResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListImagesResponse proto.InternalMessageInfo\n\nfunc (m *ListImagesResponse) GetImages() []*Image {\n\tif m != nil {\n\t\treturn m.Images\n\t}\n\treturn nil\n}\n\ntype ImageStatusRequest struct {\n\t// Spec of the image.\n\tImage *ImageSpec `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Verbose indicates whether to return extra information about the image.\n\tVerbose              bool     `protobuf:\"varint,2,opt,name=verbose,proto3\" json:\"verbose,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ImageStatusRequest) Reset()      { *m = ImageStatusRequest{} }\nfunc (*ImageStatusRequest) ProtoMessage() {}\nfunc (*ImageStatusRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{91}\n}\nfunc (m *ImageStatusRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageStatusRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageStatusRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageStatusRequest.Merge(m, src)\n}\nfunc (m *ImageStatusRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageStatusRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageStatusRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageStatusRequest proto.InternalMessageInfo\n\nfunc (m *ImageStatusRequest) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *ImageStatusRequest) GetVerbose() bool {\n\tif m != nil {\n\t\treturn m.Verbose\n\t}\n\treturn false\n}\n\ntype ImageStatusResponse struct {\n\t// Status of the image.\n\tImage *Image `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Info is extra information of the Image. The key could be arbitrary string, and\n\t// value should be in json format. The information could include anything useful\n\t// for debug, e.g. image config for oci image based container runtime.\n\t// It should only be returned non-empty when Verbose is true.\n\tInfo                 map[string]string `protobuf:\"bytes,2,rep,name=info,proto3\" json:\"info,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ImageStatusResponse) Reset()      { *m = ImageStatusResponse{} }\nfunc (*ImageStatusResponse) ProtoMessage() {}\nfunc (*ImageStatusResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{92}\n}\nfunc (m *ImageStatusResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageStatusResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageStatusResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageStatusResponse.Merge(m, src)\n}\nfunc (m *ImageStatusResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageStatusResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageStatusResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageStatusResponse proto.InternalMessageInfo\n\nfunc (m *ImageStatusResponse) GetImage() *Image {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *ImageStatusResponse) GetInfo() map[string]string {\n\tif m != nil {\n\t\treturn m.Info\n\t}\n\treturn nil\n}\n\n// AuthConfig contains authorization information for connecting to a registry.\ntype AuthConfig struct {\n\tUsername      string `protobuf:\"bytes,1,opt,name=username,proto3\" json:\"username,omitempty\"`\n\tPassword      string `protobuf:\"bytes,2,opt,name=password,proto3\" json:\"password,omitempty\"`\n\tAuth          string `protobuf:\"bytes,3,opt,name=auth,proto3\" json:\"auth,omitempty\"`\n\tServerAddress string `protobuf:\"bytes,4,opt,name=server_address,json=serverAddress,proto3\" json:\"server_address,omitempty\"`\n\t// IdentityToken is used to authenticate the user and get\n\t// an access token for the registry.\n\tIdentityToken string `protobuf:\"bytes,5,opt,name=identity_token,json=identityToken,proto3\" json:\"identity_token,omitempty\"`\n\t// RegistryToken is a bearer token to be sent to a registry\n\tRegistryToken        string   `protobuf:\"bytes,6,opt,name=registry_token,json=registryToken,proto3\" json:\"registry_token,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *AuthConfig) Reset()      { *m = AuthConfig{} }\nfunc (*AuthConfig) ProtoMessage() {}\nfunc (*AuthConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{93}\n}\nfunc (m *AuthConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AuthConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AuthConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AuthConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AuthConfig.Merge(m, src)\n}\nfunc (m *AuthConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AuthConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_AuthConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AuthConfig proto.InternalMessageInfo\n\nfunc (m *AuthConfig) GetUsername() string {\n\tif m != nil {\n\t\treturn m.Username\n\t}\n\treturn \"\"\n}\n\nfunc (m *AuthConfig) GetPassword() string {\n\tif m != nil {\n\t\treturn m.Password\n\t}\n\treturn \"\"\n}\n\nfunc (m *AuthConfig) GetAuth() string {\n\tif m != nil {\n\t\treturn m.Auth\n\t}\n\treturn \"\"\n}\n\nfunc (m *AuthConfig) GetServerAddress() string {\n\tif m != nil {\n\t\treturn m.ServerAddress\n\t}\n\treturn \"\"\n}\n\nfunc (m *AuthConfig) GetIdentityToken() string {\n\tif m != nil {\n\t\treturn m.IdentityToken\n\t}\n\treturn \"\"\n}\n\nfunc (m *AuthConfig) GetRegistryToken() string {\n\tif m != nil {\n\t\treturn m.RegistryToken\n\t}\n\treturn \"\"\n}\n\ntype PullImageRequest struct {\n\t// Spec of the image.\n\tImage *ImageSpec `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\t// Authentication configuration for pulling the image.\n\tAuth *AuthConfig `protobuf:\"bytes,2,opt,name=auth,proto3\" json:\"auth,omitempty\"`\n\t// Config of the PodSandbox, which is used to pull image in PodSandbox context.\n\tSandboxConfig        *PodSandboxConfig `protobuf:\"bytes,3,opt,name=sandbox_config,json=sandboxConfig,proto3\" json:\"sandbox_config,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *PullImageRequest) Reset()      { *m = PullImageRequest{} }\nfunc (*PullImageRequest) ProtoMessage() {}\nfunc (*PullImageRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{94}\n}\nfunc (m *PullImageRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PullImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PullImageRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PullImageRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PullImageRequest.Merge(m, src)\n}\nfunc (m *PullImageRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PullImageRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PullImageRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PullImageRequest proto.InternalMessageInfo\n\nfunc (m *PullImageRequest) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\nfunc (m *PullImageRequest) GetAuth() *AuthConfig {\n\tif m != nil {\n\t\treturn m.Auth\n\t}\n\treturn nil\n}\n\nfunc (m *PullImageRequest) GetSandboxConfig() *PodSandboxConfig {\n\tif m != nil {\n\t\treturn m.SandboxConfig\n\t}\n\treturn nil\n}\n\ntype PullImageResponse struct {\n\t// Reference to the image in use. For most runtimes, this should be an\n\t// image ID or digest.\n\tImageRef             string   `protobuf:\"bytes,1,opt,name=image_ref,json=imageRef,proto3\" json:\"image_ref,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PullImageResponse) Reset()      { *m = PullImageResponse{} }\nfunc (*PullImageResponse) ProtoMessage() {}\nfunc (*PullImageResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{95}\n}\nfunc (m *PullImageResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PullImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PullImageResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PullImageResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PullImageResponse.Merge(m, src)\n}\nfunc (m *PullImageResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PullImageResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PullImageResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PullImageResponse proto.InternalMessageInfo\n\nfunc (m *PullImageResponse) GetImageRef() string {\n\tif m != nil {\n\t\treturn m.ImageRef\n\t}\n\treturn \"\"\n}\n\ntype RemoveImageRequest struct {\n\t// Spec of the image to remove.\n\tImage                *ImageSpec `protobuf:\"bytes,1,opt,name=image,proto3\" json:\"image,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}   `json:\"-\"`\n\tXXX_sizecache        int32      `json:\"-\"`\n}\n\nfunc (m *RemoveImageRequest) Reset()      { *m = RemoveImageRequest{} }\nfunc (*RemoveImageRequest) ProtoMessage() {}\nfunc (*RemoveImageRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{96}\n}\nfunc (m *RemoveImageRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemoveImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemoveImageRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemoveImageRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemoveImageRequest.Merge(m, src)\n}\nfunc (m *RemoveImageRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemoveImageRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemoveImageRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemoveImageRequest proto.InternalMessageInfo\n\nfunc (m *RemoveImageRequest) GetImage() *ImageSpec {\n\tif m != nil {\n\t\treturn m.Image\n\t}\n\treturn nil\n}\n\ntype RemoveImageResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RemoveImageResponse) Reset()      { *m = RemoveImageResponse{} }\nfunc (*RemoveImageResponse) ProtoMessage() {}\nfunc (*RemoveImageResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{97}\n}\nfunc (m *RemoveImageResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemoveImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemoveImageResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemoveImageResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemoveImageResponse.Merge(m, src)\n}\nfunc (m *RemoveImageResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemoveImageResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemoveImageResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemoveImageResponse proto.InternalMessageInfo\n\ntype NetworkConfig struct {\n\t// CIDR to use for pod IP addresses. If the CIDR is empty, runtimes\n\t// should omit it.\n\tPodCidr              string   `protobuf:\"bytes,1,opt,name=pod_cidr,json=podCidr,proto3\" json:\"pod_cidr,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *NetworkConfig) Reset()      { *m = NetworkConfig{} }\nfunc (*NetworkConfig) ProtoMessage() {}\nfunc (*NetworkConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{98}\n}\nfunc (m *NetworkConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NetworkConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NetworkConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkConfig.Merge(m, src)\n}\nfunc (m *NetworkConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkConfig proto.InternalMessageInfo\n\nfunc (m *NetworkConfig) GetPodCidr() string {\n\tif m != nil {\n\t\treturn m.PodCidr\n\t}\n\treturn \"\"\n}\n\ntype RuntimeConfig struct {\n\tNetworkConfig        *NetworkConfig `protobuf:\"bytes,1,opt,name=network_config,json=networkConfig,proto3\" json:\"network_config,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}       `json:\"-\"`\n\tXXX_sizecache        int32          `json:\"-\"`\n}\n\nfunc (m *RuntimeConfig) Reset()      { *m = RuntimeConfig{} }\nfunc (*RuntimeConfig) ProtoMessage() {}\nfunc (*RuntimeConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{99}\n}\nfunc (m *RuntimeConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RuntimeConfig.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RuntimeConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeConfig.Merge(m, src)\n}\nfunc (m *RuntimeConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeConfig proto.InternalMessageInfo\n\nfunc (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig {\n\tif m != nil {\n\t\treturn m.NetworkConfig\n\t}\n\treturn nil\n}\n\ntype UpdateRuntimeConfigRequest struct {\n\tRuntimeConfig        *RuntimeConfig `protobuf:\"bytes,1,opt,name=runtime_config,json=runtimeConfig,proto3\" json:\"runtime_config,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}       `json:\"-\"`\n\tXXX_sizecache        int32          `json:\"-\"`\n}\n\nfunc (m *UpdateRuntimeConfigRequest) Reset()      { *m = UpdateRuntimeConfigRequest{} }\nfunc (*UpdateRuntimeConfigRequest) ProtoMessage() {}\nfunc (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{100}\n}\nfunc (m *UpdateRuntimeConfigRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateRuntimeConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UpdateRuntimeConfigRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UpdateRuntimeConfigRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateRuntimeConfigRequest.Merge(m, src)\n}\nfunc (m *UpdateRuntimeConfigRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateRuntimeConfigRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateRuntimeConfigRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateRuntimeConfigRequest proto.InternalMessageInfo\n\nfunc (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig {\n\tif m != nil {\n\t\treturn m.RuntimeConfig\n\t}\n\treturn nil\n}\n\ntype UpdateRuntimeConfigResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *UpdateRuntimeConfigResponse) Reset()      { *m = UpdateRuntimeConfigResponse{} }\nfunc (*UpdateRuntimeConfigResponse) ProtoMessage() {}\nfunc (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{101}\n}\nfunc (m *UpdateRuntimeConfigResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateRuntimeConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UpdateRuntimeConfigResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UpdateRuntimeConfigResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateRuntimeConfigResponse.Merge(m, src)\n}\nfunc (m *UpdateRuntimeConfigResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateRuntimeConfigResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateRuntimeConfigResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateRuntimeConfigResponse proto.InternalMessageInfo\n\n// RuntimeCondition contains condition information for the runtime.\n// There are 2 kinds of runtime conditions:\n// 1. Required conditions: Conditions are required for kubelet to work\n// properly. If any required condition is unmet, the node will be not ready.\n// The required conditions include:\n//   - RuntimeReady: RuntimeReady means the runtime is up and ready to accept\n//     basic containers e.g. container only needs host network.\n//   - NetworkReady: NetworkReady means the runtime network is up and ready to\n//     accept containers which require container network.\n//\n// 2. Optional conditions: Conditions are informative to the user, but kubelet\n// will not rely on. Since condition type is an arbitrary string, all conditions\n// not required are optional. These conditions will be exposed to users to help\n// them understand the status of the system.\ntype RuntimeCondition struct {\n\t// Type of runtime condition.\n\tType string `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\t// Status of the condition, one of true/false. Default: false.\n\tStatus bool `protobuf:\"varint,2,opt,name=status,proto3\" json:\"status,omitempty\"`\n\t// Brief CamelCase string containing reason for the condition's last transition.\n\tReason string `protobuf:\"bytes,3,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n\t// Human-readable message indicating details about last transition.\n\tMessage              string   `protobuf:\"bytes,4,opt,name=message,proto3\" json:\"message,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *RuntimeCondition) Reset()      { *m = RuntimeCondition{} }\nfunc (*RuntimeCondition) ProtoMessage() {}\nfunc (*RuntimeCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{102}\n}\nfunc (m *RuntimeCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RuntimeCondition.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RuntimeCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeCondition.Merge(m, src)\n}\nfunc (m *RuntimeCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeCondition proto.InternalMessageInfo\n\nfunc (m *RuntimeCondition) GetType() string {\n\tif m != nil {\n\t\treturn m.Type\n\t}\n\treturn \"\"\n}\n\nfunc (m *RuntimeCondition) GetStatus() bool {\n\tif m != nil {\n\t\treturn m.Status\n\t}\n\treturn false\n}\n\nfunc (m *RuntimeCondition) GetReason() string {\n\tif m != nil {\n\t\treturn m.Reason\n\t}\n\treturn \"\"\n}\n\nfunc (m *RuntimeCondition) GetMessage() string {\n\tif m != nil {\n\t\treturn m.Message\n\t}\n\treturn \"\"\n}\n\n// RuntimeStatus is information about the current status of the runtime.\ntype RuntimeStatus struct {\n\t// List of current observed runtime conditions.\n\tConditions           []*RuntimeCondition `protobuf:\"bytes,1,rep,name=conditions,proto3\" json:\"conditions,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}            `json:\"-\"`\n\tXXX_sizecache        int32               `json:\"-\"`\n}\n\nfunc (m *RuntimeStatus) Reset()      { *m = RuntimeStatus{} }\nfunc (*RuntimeStatus) ProtoMessage() {}\nfunc (*RuntimeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{103}\n}\nfunc (m *RuntimeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RuntimeStatus.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RuntimeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeStatus.Merge(m, src)\n}\nfunc (m *RuntimeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeStatus proto.InternalMessageInfo\n\nfunc (m *RuntimeStatus) GetConditions() []*RuntimeCondition {\n\tif m != nil {\n\t\treturn m.Conditions\n\t}\n\treturn nil\n}\n\ntype StatusRequest struct {\n\t// Verbose indicates whether to return extra information about the runtime.\n\tVerbose              bool     `protobuf:\"varint,1,opt,name=verbose,proto3\" json:\"verbose,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *StatusRequest) Reset()      { *m = StatusRequest{} }\nfunc (*StatusRequest) ProtoMessage() {}\nfunc (*StatusRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{104}\n}\nfunc (m *StatusRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StatusRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StatusRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusRequest.Merge(m, src)\n}\nfunc (m *StatusRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusRequest proto.InternalMessageInfo\n\nfunc (m *StatusRequest) GetVerbose() bool {\n\tif m != nil {\n\t\treturn m.Verbose\n\t}\n\treturn false\n}\n\ntype StatusResponse struct {\n\t// Status of the Runtime.\n\tStatus *RuntimeStatus `protobuf:\"bytes,1,opt,name=status,proto3\" json:\"status,omitempty\"`\n\t// Info is extra information of the Runtime. The key could be arbitrary string, and\n\t// value should be in json format. The information could include anything useful for\n\t// debug, e.g. plugins used by the container runtime.\n\t// It should only be returned non-empty when Verbose is true.\n\tInfo                 map[string]string `protobuf:\"bytes,2,rep,name=info,proto3\" json:\"info,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *StatusResponse) Reset()      { *m = StatusResponse{} }\nfunc (*StatusResponse) ProtoMessage() {}\nfunc (*StatusResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{105}\n}\nfunc (m *StatusResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_StatusResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *StatusResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusResponse.Merge(m, src)\n}\nfunc (m *StatusResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusResponse proto.InternalMessageInfo\n\nfunc (m *StatusResponse) GetStatus() *RuntimeStatus {\n\tif m != nil {\n\t\treturn m.Status\n\t}\n\treturn nil\n}\n\nfunc (m *StatusResponse) GetInfo() map[string]string {\n\tif m != nil {\n\t\treturn m.Info\n\t}\n\treturn nil\n}\n\ntype ImageFsInfoRequest struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ImageFsInfoRequest) Reset()      { *m = ImageFsInfoRequest{} }\nfunc (*ImageFsInfoRequest) ProtoMessage() {}\nfunc (*ImageFsInfoRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{106}\n}\nfunc (m *ImageFsInfoRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageFsInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageFsInfoRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageFsInfoRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageFsInfoRequest.Merge(m, src)\n}\nfunc (m *ImageFsInfoRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageFsInfoRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageFsInfoRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageFsInfoRequest proto.InternalMessageInfo\n\n// UInt64Value is the wrapper of uint64.\ntype UInt64Value struct {\n\t// The value.\n\tValue                uint64   `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *UInt64Value) Reset()      { *m = UInt64Value{} }\nfunc (*UInt64Value) ProtoMessage() {}\nfunc (*UInt64Value) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{107}\n}\nfunc (m *UInt64Value) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UInt64Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UInt64Value.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UInt64Value) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UInt64Value.Merge(m, src)\n}\nfunc (m *UInt64Value) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UInt64Value) XXX_DiscardUnknown() {\n\txxx_messageInfo_UInt64Value.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UInt64Value proto.InternalMessageInfo\n\nfunc (m *UInt64Value) GetValue() uint64 {\n\tif m != nil {\n\t\treturn m.Value\n\t}\n\treturn 0\n}\n\n// FilesystemIdentifier uniquely identify the filesystem.\ntype FilesystemIdentifier struct {\n\t// Mountpoint of a filesystem.\n\tMountpoint           string   `protobuf:\"bytes,1,opt,name=mountpoint,proto3\" json:\"mountpoint,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *FilesystemIdentifier) Reset()      { *m = FilesystemIdentifier{} }\nfunc (*FilesystemIdentifier) ProtoMessage() {}\nfunc (*FilesystemIdentifier) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{108}\n}\nfunc (m *FilesystemIdentifier) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FilesystemIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_FilesystemIdentifier.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *FilesystemIdentifier) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FilesystemIdentifier.Merge(m, src)\n}\nfunc (m *FilesystemIdentifier) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FilesystemIdentifier) XXX_DiscardUnknown() {\n\txxx_messageInfo_FilesystemIdentifier.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FilesystemIdentifier proto.InternalMessageInfo\n\nfunc (m *FilesystemIdentifier) GetMountpoint() string {\n\tif m != nil {\n\t\treturn m.Mountpoint\n\t}\n\treturn \"\"\n}\n\n// FilesystemUsage provides the filesystem usage information.\ntype FilesystemUsage struct {\n\t// Timestamp in nanoseconds at which the information were collected. Must be > 0.\n\tTimestamp int64 `protobuf:\"varint,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// The unique identifier of the filesystem.\n\tFsId *FilesystemIdentifier `protobuf:\"bytes,2,opt,name=fs_id,json=fsId,proto3\" json:\"fs_id,omitempty\"`\n\t// UsedBytes represents the bytes used for images on the filesystem.\n\t// This may differ from the total bytes used on the filesystem and may not\n\t// equal CapacityBytes - AvailableBytes.\n\tUsedBytes *UInt64Value `protobuf:\"bytes,3,opt,name=used_bytes,json=usedBytes,proto3\" json:\"used_bytes,omitempty\"`\n\t// InodesUsed represents the inodes used by the images.\n\t// This may not equal InodesCapacity - InodesAvailable because the underlying\n\t// filesystem may also be used for purposes other than storing images.\n\tInodesUsed           *UInt64Value `protobuf:\"bytes,4,opt,name=inodes_used,json=inodesUsed,proto3\" json:\"inodes_used,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *FilesystemUsage) Reset()      { *m = FilesystemUsage{} }\nfunc (*FilesystemUsage) ProtoMessage() {}\nfunc (*FilesystemUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{109}\n}\nfunc (m *FilesystemUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FilesystemUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_FilesystemUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *FilesystemUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FilesystemUsage.Merge(m, src)\n}\nfunc (m *FilesystemUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FilesystemUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_FilesystemUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FilesystemUsage proto.InternalMessageInfo\n\nfunc (m *FilesystemUsage) GetTimestamp() int64 {\n\tif m != nil {\n\t\treturn m.Timestamp\n\t}\n\treturn 0\n}\n\nfunc (m *FilesystemUsage) GetFsId() *FilesystemIdentifier {\n\tif m != nil {\n\t\treturn m.FsId\n\t}\n\treturn nil\n}\n\nfunc (m *FilesystemUsage) GetUsedBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.UsedBytes\n\t}\n\treturn nil\n}\n\nfunc (m *FilesystemUsage) GetInodesUsed() *UInt64Value {\n\tif m != nil {\n\t\treturn m.InodesUsed\n\t}\n\treturn nil\n}\n\ntype ImageFsInfoResponse struct {\n\t// Information of image filesystem(s).\n\tImageFilesystems     []*FilesystemUsage `protobuf:\"bytes,1,rep,name=image_filesystems,json=imageFilesystems,proto3\" json:\"image_filesystems,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}           `json:\"-\"`\n\tXXX_sizecache        int32              `json:\"-\"`\n}\n\nfunc (m *ImageFsInfoResponse) Reset()      { *m = ImageFsInfoResponse{} }\nfunc (*ImageFsInfoResponse) ProtoMessage() {}\nfunc (*ImageFsInfoResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{110}\n}\nfunc (m *ImageFsInfoResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageFsInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ImageFsInfoResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ImageFsInfoResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageFsInfoResponse.Merge(m, src)\n}\nfunc (m *ImageFsInfoResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageFsInfoResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageFsInfoResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageFsInfoResponse proto.InternalMessageInfo\n\nfunc (m *ImageFsInfoResponse) GetImageFilesystems() []*FilesystemUsage {\n\tif m != nil {\n\t\treturn m.ImageFilesystems\n\t}\n\treturn nil\n}\n\ntype ContainerStatsRequest struct {\n\t// ID of the container for which to retrieve stats.\n\tContainerId          string   `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerStatsRequest) Reset()      { *m = ContainerStatsRequest{} }\nfunc (*ContainerStatsRequest) ProtoMessage() {}\nfunc (*ContainerStatsRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{111}\n}\nfunc (m *ContainerStatsRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatsRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatsRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatsRequest.Merge(m, src)\n}\nfunc (m *ContainerStatsRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatsRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatsRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatsRequest proto.InternalMessageInfo\n\nfunc (m *ContainerStatsRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\ntype ContainerStatsResponse struct {\n\t// Stats of the container.\n\tStats                *ContainerStats `protobuf:\"bytes,1,opt,name=stats,proto3\" json:\"stats,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}        `json:\"-\"`\n\tXXX_sizecache        int32           `json:\"-\"`\n}\n\nfunc (m *ContainerStatsResponse) Reset()      { *m = ContainerStatsResponse{} }\nfunc (*ContainerStatsResponse) ProtoMessage() {}\nfunc (*ContainerStatsResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{112}\n}\nfunc (m *ContainerStatsResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatsResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatsResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatsResponse.Merge(m, src)\n}\nfunc (m *ContainerStatsResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatsResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatsResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatsResponse proto.InternalMessageInfo\n\nfunc (m *ContainerStatsResponse) GetStats() *ContainerStats {\n\tif m != nil {\n\t\treturn m.Stats\n\t}\n\treturn nil\n}\n\ntype ListContainerStatsRequest struct {\n\t// Filter for the list request.\n\tFilter               *ContainerStatsFilter `protobuf:\"bytes,1,opt,name=filter,proto3\" json:\"filter,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}              `json:\"-\"`\n\tXXX_sizecache        int32                 `json:\"-\"`\n}\n\nfunc (m *ListContainerStatsRequest) Reset()      { *m = ListContainerStatsRequest{} }\nfunc (*ListContainerStatsRequest) ProtoMessage() {}\nfunc (*ListContainerStatsRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{113}\n}\nfunc (m *ListContainerStatsRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListContainerStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListContainerStatsRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListContainerStatsRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListContainerStatsRequest.Merge(m, src)\n}\nfunc (m *ListContainerStatsRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListContainerStatsRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListContainerStatsRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListContainerStatsRequest proto.InternalMessageInfo\n\nfunc (m *ListContainerStatsRequest) GetFilter() *ContainerStatsFilter {\n\tif m != nil {\n\t\treturn m.Filter\n\t}\n\treturn nil\n}\n\n// ContainerStatsFilter is used to filter containers.\n// All those fields are combined with 'AND'\ntype ContainerStatsFilter struct {\n\t// ID of the container.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// ID of the PodSandbox.\n\tPodSandboxId string `protobuf:\"bytes,2,opt,name=pod_sandbox_id,json=podSandboxId,proto3\" json:\"pod_sandbox_id,omitempty\"`\n\t// LabelSelector to select matches.\n\t// Only api.MatchLabels is supported for now and the requirements\n\t// are ANDed. MatchExpressions is not supported yet.\n\tLabelSelector        map[string]string `protobuf:\"bytes,3,rep,name=label_selector,json=labelSelector,proto3\" json:\"label_selector,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ContainerStatsFilter) Reset()      { *m = ContainerStatsFilter{} }\nfunc (*ContainerStatsFilter) ProtoMessage() {}\nfunc (*ContainerStatsFilter) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{114}\n}\nfunc (m *ContainerStatsFilter) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatsFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStatsFilter.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStatsFilter) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatsFilter.Merge(m, src)\n}\nfunc (m *ContainerStatsFilter) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatsFilter) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatsFilter.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatsFilter proto.InternalMessageInfo\n\nfunc (m *ContainerStatsFilter) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatsFilter) GetPodSandboxId() string {\n\tif m != nil {\n\t\treturn m.PodSandboxId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerStatsFilter) GetLabelSelector() map[string]string {\n\tif m != nil {\n\t\treturn m.LabelSelector\n\t}\n\treturn nil\n}\n\ntype ListContainerStatsResponse struct {\n\t// Stats of the container.\n\tStats                []*ContainerStats `protobuf:\"bytes,1,rep,name=stats,proto3\" json:\"stats,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ListContainerStatsResponse) Reset()      { *m = ListContainerStatsResponse{} }\nfunc (*ListContainerStatsResponse) ProtoMessage() {}\nfunc (*ListContainerStatsResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{115}\n}\nfunc (m *ListContainerStatsResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListContainerStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListContainerStatsResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListContainerStatsResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListContainerStatsResponse.Merge(m, src)\n}\nfunc (m *ListContainerStatsResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListContainerStatsResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListContainerStatsResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListContainerStatsResponse proto.InternalMessageInfo\n\nfunc (m *ListContainerStatsResponse) GetStats() []*ContainerStats {\n\tif m != nil {\n\t\treturn m.Stats\n\t}\n\treturn nil\n}\n\n// ContainerAttributes provides basic information of the container.\ntype ContainerAttributes struct {\n\t// ID of the container.\n\tId string `protobuf:\"bytes,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\t// Metadata of the container.\n\tMetadata *ContainerMetadata `protobuf:\"bytes,2,opt,name=metadata,proto3\" json:\"metadata,omitempty\"`\n\t// Key-value pairs that may be used to scope and select individual resources.\n\tLabels map[string]string `protobuf:\"bytes,3,rep,name=labels,proto3\" json:\"labels,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Unstructured key-value map holding arbitrary metadata.\n\t// Annotations MUST NOT be altered by the runtime; the value of this field\n\t// MUST be identical to that of the corresponding ContainerConfig used to\n\t// instantiate the Container this status represents.\n\tAnnotations          map[string]string `protobuf:\"bytes,4,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ContainerAttributes) Reset()      { *m = ContainerAttributes{} }\nfunc (*ContainerAttributes) ProtoMessage() {}\nfunc (*ContainerAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{116}\n}\nfunc (m *ContainerAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerAttributes.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerAttributes.Merge(m, src)\n}\nfunc (m *ContainerAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerAttributes proto.InternalMessageInfo\n\nfunc (m *ContainerAttributes) GetId() string {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerAttributes) GetMetadata() *ContainerMetadata {\n\tif m != nil {\n\t\treturn m.Metadata\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerAttributes) GetLabels() map[string]string {\n\tif m != nil {\n\t\treturn m.Labels\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerAttributes) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\n// ContainerStats provides the resource usage statistics for a container.\ntype ContainerStats struct {\n\t// Information of the container.\n\tAttributes *ContainerAttributes `protobuf:\"bytes,1,opt,name=attributes,proto3\" json:\"attributes,omitempty\"`\n\t// CPU usage gathered from the container.\n\tCpu *CpuUsage `protobuf:\"bytes,2,opt,name=cpu,proto3\" json:\"cpu,omitempty\"`\n\t// Memory usage gathered from the container.\n\tMemory *MemoryUsage `protobuf:\"bytes,3,opt,name=memory,proto3\" json:\"memory,omitempty\"`\n\t// Usage of the writable layer.\n\tWritableLayer        *FilesystemUsage `protobuf:\"bytes,4,opt,name=writable_layer,json=writableLayer,proto3\" json:\"writable_layer,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}         `json:\"-\"`\n\tXXX_sizecache        int32            `json:\"-\"`\n}\n\nfunc (m *ContainerStats) Reset()      { *m = ContainerStats{} }\nfunc (*ContainerStats) ProtoMessage() {}\nfunc (*ContainerStats) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{117}\n}\nfunc (m *ContainerStats) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerStats.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerStats) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStats.Merge(m, src)\n}\nfunc (m *ContainerStats) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStats) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStats.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStats proto.InternalMessageInfo\n\nfunc (m *ContainerStats) GetAttributes() *ContainerAttributes {\n\tif m != nil {\n\t\treturn m.Attributes\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStats) GetCpu() *CpuUsage {\n\tif m != nil {\n\t\treturn m.Cpu\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStats) GetMemory() *MemoryUsage {\n\tif m != nil {\n\t\treturn m.Memory\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerStats) GetWritableLayer() *FilesystemUsage {\n\tif m != nil {\n\t\treturn m.WritableLayer\n\t}\n\treturn nil\n}\n\n// CpuUsage provides the CPU usage information.\ntype CpuUsage struct {\n\t// Timestamp in nanoseconds at which the information were collected. Must be > 0.\n\tTimestamp int64 `protobuf:\"varint,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// Cumulative CPU usage (sum across all cores) since object creation.\n\tUsageCoreNanoSeconds *UInt64Value `protobuf:\"bytes,2,opt,name=usage_core_nano_seconds,json=usageCoreNanoSeconds,proto3\" json:\"usage_core_nano_seconds,omitempty\"`\n\t// Total CPU usage (sum of all cores) averaged over the sample window.\n\t// The \"core\" unit can be interpreted as CPU core-nanoseconds per second.\n\tUsageNanoCores       *UInt64Value `protobuf:\"bytes,3,opt,name=usage_nano_cores,json=usageNanoCores,proto3\" json:\"usage_nano_cores,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *CpuUsage) Reset()      { *m = CpuUsage{} }\nfunc (*CpuUsage) ProtoMessage() {}\nfunc (*CpuUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{118}\n}\nfunc (m *CpuUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CpuUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_CpuUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *CpuUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CpuUsage.Merge(m, src)\n}\nfunc (m *CpuUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CpuUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_CpuUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CpuUsage proto.InternalMessageInfo\n\nfunc (m *CpuUsage) GetTimestamp() int64 {\n\tif m != nil {\n\t\treturn m.Timestamp\n\t}\n\treturn 0\n}\n\nfunc (m *CpuUsage) GetUsageCoreNanoSeconds() *UInt64Value {\n\tif m != nil {\n\t\treturn m.UsageCoreNanoSeconds\n\t}\n\treturn nil\n}\n\nfunc (m *CpuUsage) GetUsageNanoCores() *UInt64Value {\n\tif m != nil {\n\t\treturn m.UsageNanoCores\n\t}\n\treturn nil\n}\n\n// MemoryUsage provides the memory usage information.\ntype MemoryUsage struct {\n\t// Timestamp in nanoseconds at which the information were collected. Must be > 0.\n\tTimestamp int64 `protobuf:\"varint,1,opt,name=timestamp,proto3\" json:\"timestamp,omitempty\"`\n\t// The amount of working set memory in bytes.\n\tWorkingSetBytes *UInt64Value `protobuf:\"bytes,2,opt,name=working_set_bytes,json=workingSetBytes,proto3\" json:\"working_set_bytes,omitempty\"`\n\t// Available memory for use. This is defined as the memory limit - workingSetBytes.\n\tAvailableBytes *UInt64Value `protobuf:\"bytes,3,opt,name=available_bytes,json=availableBytes,proto3\" json:\"available_bytes,omitempty\"`\n\t// Total memory in use. This includes all memory regardless of when it was accessed.\n\tUsageBytes *UInt64Value `protobuf:\"bytes,4,opt,name=usage_bytes,json=usageBytes,proto3\" json:\"usage_bytes,omitempty\"`\n\t// The amount of anonymous and swap cache memory (includes transparent hugepages).\n\tRssBytes *UInt64Value `protobuf:\"bytes,5,opt,name=rss_bytes,json=rssBytes,proto3\" json:\"rss_bytes,omitempty\"`\n\t// Cumulative number of minor page faults.\n\tPageFaults *UInt64Value `protobuf:\"bytes,6,opt,name=page_faults,json=pageFaults,proto3\" json:\"page_faults,omitempty\"`\n\t// Cumulative number of major page faults.\n\tMajorPageFaults      *UInt64Value `protobuf:\"bytes,7,opt,name=major_page_faults,json=majorPageFaults,proto3\" json:\"major_page_faults,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}     `json:\"-\"`\n\tXXX_sizecache        int32        `json:\"-\"`\n}\n\nfunc (m *MemoryUsage) Reset()      { *m = MemoryUsage{} }\nfunc (*MemoryUsage) ProtoMessage() {}\nfunc (*MemoryUsage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{119}\n}\nfunc (m *MemoryUsage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MemoryUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_MemoryUsage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *MemoryUsage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MemoryUsage.Merge(m, src)\n}\nfunc (m *MemoryUsage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MemoryUsage) XXX_DiscardUnknown() {\n\txxx_messageInfo_MemoryUsage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MemoryUsage proto.InternalMessageInfo\n\nfunc (m *MemoryUsage) GetTimestamp() int64 {\n\tif m != nil {\n\t\treturn m.Timestamp\n\t}\n\treturn 0\n}\n\nfunc (m *MemoryUsage) GetWorkingSetBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.WorkingSetBytes\n\t}\n\treturn nil\n}\n\nfunc (m *MemoryUsage) GetAvailableBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.AvailableBytes\n\t}\n\treturn nil\n}\n\nfunc (m *MemoryUsage) GetUsageBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.UsageBytes\n\t}\n\treturn nil\n}\n\nfunc (m *MemoryUsage) GetRssBytes() *UInt64Value {\n\tif m != nil {\n\t\treturn m.RssBytes\n\t}\n\treturn nil\n}\n\nfunc (m *MemoryUsage) GetPageFaults() *UInt64Value {\n\tif m != nil {\n\t\treturn m.PageFaults\n\t}\n\treturn nil\n}\n\nfunc (m *MemoryUsage) GetMajorPageFaults() *UInt64Value {\n\tif m != nil {\n\t\treturn m.MajorPageFaults\n\t}\n\treturn nil\n}\n\ntype ReopenContainerLogRequest struct {\n\t// ID of the container for which to reopen the log.\n\tContainerId          string   `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ReopenContainerLogRequest) Reset()      { *m = ReopenContainerLogRequest{} }\nfunc (*ReopenContainerLogRequest) ProtoMessage() {}\nfunc (*ReopenContainerLogRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{120}\n}\nfunc (m *ReopenContainerLogRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReopenContainerLogRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ReopenContainerLogRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ReopenContainerLogRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReopenContainerLogRequest.Merge(m, src)\n}\nfunc (m *ReopenContainerLogRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReopenContainerLogRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReopenContainerLogRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReopenContainerLogRequest proto.InternalMessageInfo\n\nfunc (m *ReopenContainerLogRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\ntype ReopenContainerLogResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ReopenContainerLogResponse) Reset()      { *m = ReopenContainerLogResponse{} }\nfunc (*ReopenContainerLogResponse) ProtoMessage() {}\nfunc (*ReopenContainerLogResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{121}\n}\nfunc (m *ReopenContainerLogResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReopenContainerLogResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ReopenContainerLogResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ReopenContainerLogResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReopenContainerLogResponse.Merge(m, src)\n}\nfunc (m *ReopenContainerLogResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReopenContainerLogResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReopenContainerLogResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReopenContainerLogResponse proto.InternalMessageInfo\n\ntype CheckpointContainerRequest struct {\n\t// ID of the container to be checkpointed.\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Location of the checkpoint archive used for export\n\tLocation string `protobuf:\"bytes,2,opt,name=location,proto3\" json:\"location,omitempty\"`\n\t// Timeout in seconds for the checkpoint to complete.\n\t// Timeout of zero means to use the CRI default.\n\t// Timeout > 0 means to use the user specified timeout.\n\tTimeout              int64    `protobuf:\"varint,3,opt,name=timeout,proto3\" json:\"timeout,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *CheckpointContainerRequest) Reset()      { *m = CheckpointContainerRequest{} }\nfunc (*CheckpointContainerRequest) ProtoMessage() {}\nfunc (*CheckpointContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{122}\n}\nfunc (m *CheckpointContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CheckpointContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_CheckpointContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *CheckpointContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CheckpointContainerRequest.Merge(m, src)\n}\nfunc (m *CheckpointContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CheckpointContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CheckpointContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CheckpointContainerRequest proto.InternalMessageInfo\n\nfunc (m *CheckpointContainerRequest) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *CheckpointContainerRequest) GetLocation() string {\n\tif m != nil {\n\t\treturn m.Location\n\t}\n\treturn \"\"\n}\n\nfunc (m *CheckpointContainerRequest) GetTimeout() int64 {\n\tif m != nil {\n\t\treturn m.Timeout\n\t}\n\treturn 0\n}\n\ntype CheckpointContainerResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *CheckpointContainerResponse) Reset()      { *m = CheckpointContainerResponse{} }\nfunc (*CheckpointContainerResponse) ProtoMessage() {}\nfunc (*CheckpointContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{123}\n}\nfunc (m *CheckpointContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CheckpointContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_CheckpointContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *CheckpointContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CheckpointContainerResponse.Merge(m, src)\n}\nfunc (m *CheckpointContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CheckpointContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_CheckpointContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CheckpointContainerResponse proto.InternalMessageInfo\n\ntype GetEventsRequest struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *GetEventsRequest) Reset()      { *m = GetEventsRequest{} }\nfunc (*GetEventsRequest) ProtoMessage() {}\nfunc (*GetEventsRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{124}\n}\nfunc (m *GetEventsRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GetEventsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_GetEventsRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *GetEventsRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GetEventsRequest.Merge(m, src)\n}\nfunc (m *GetEventsRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GetEventsRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_GetEventsRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GetEventsRequest proto.InternalMessageInfo\n\ntype ContainerEventResponse struct {\n\t// ID of the container\n\tContainerId string `protobuf:\"bytes,1,opt,name=container_id,json=containerId,proto3\" json:\"container_id,omitempty\"`\n\t// Type of the container event\n\tContainerEventType ContainerEventType `protobuf:\"varint,2,opt,name=container_event_type,json=containerEventType,proto3,enum=runtime.v1.ContainerEventType\" json:\"container_event_type,omitempty\"`\n\t// Creation timestamp of this event\n\tCreatedAt int64 `protobuf:\"varint,3,opt,name=created_at,json=createdAt,proto3\" json:\"created_at,omitempty\"`\n\t// ID of the sandbox container\n\tPodSandboxMetadata   *PodSandboxMetadata `protobuf:\"bytes,4,opt,name=pod_sandbox_metadata,json=podSandboxMetadata,proto3\" json:\"pod_sandbox_metadata,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}            `json:\"-\"`\n\tXXX_sizecache        int32               `json:\"-\"`\n}\n\nfunc (m *ContainerEventResponse) Reset()      { *m = ContainerEventResponse{} }\nfunc (*ContainerEventResponse) ProtoMessage() {}\nfunc (*ContainerEventResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{125}\n}\nfunc (m *ContainerEventResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerEventResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerEventResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerEventResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerEventResponse.Merge(m, src)\n}\nfunc (m *ContainerEventResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerEventResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerEventResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerEventResponse proto.InternalMessageInfo\n\nfunc (m *ContainerEventResponse) GetContainerId() string {\n\tif m != nil {\n\t\treturn m.ContainerId\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerEventResponse) GetContainerEventType() ContainerEventType {\n\tif m != nil {\n\t\treturn m.ContainerEventType\n\t}\n\treturn ContainerEventType_CONTAINER_CREATED_EVENT\n}\n\nfunc (m *ContainerEventResponse) GetCreatedAt() int64 {\n\tif m != nil {\n\t\treturn m.CreatedAt\n\t}\n\treturn 0\n}\n\nfunc (m *ContainerEventResponse) GetPodSandboxMetadata() *PodSandboxMetadata {\n\tif m != nil {\n\t\treturn m.PodSandboxMetadata\n\t}\n\treturn nil\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"runtime.v1.Protocol\", Protocol_name, Protocol_value)\n\tproto.RegisterEnum(\"runtime.v1.MountPropagation\", MountPropagation_name, MountPropagation_value)\n\tproto.RegisterEnum(\"runtime.v1.NamespaceMode\", NamespaceMode_name, NamespaceMode_value)\n\tproto.RegisterEnum(\"runtime.v1.PodSandboxState\", PodSandboxState_name, PodSandboxState_value)\n\tproto.RegisterEnum(\"runtime.v1.ContainerState\", ContainerState_name, ContainerState_value)\n\tproto.RegisterEnum(\"runtime.v1.ContainerEventType\", ContainerEventType_name, ContainerEventType_value)\n\tproto.RegisterEnum(\"runtime.v1.SecurityProfile_ProfileType\", SecurityProfile_ProfileType_name, SecurityProfile_ProfileType_value)\n\tproto.RegisterType((*VersionRequest)(nil), \"runtime.v1.VersionRequest\")\n\tproto.RegisterType((*VersionResponse)(nil), \"runtime.v1.VersionResponse\")\n\tproto.RegisterType((*DNSConfig)(nil), \"runtime.v1.DNSConfig\")\n\tproto.RegisterType((*PortMapping)(nil), \"runtime.v1.PortMapping\")\n\tproto.RegisterType((*Mount)(nil), \"runtime.v1.Mount\")\n\tproto.RegisterType((*IDMapping)(nil), \"runtime.v1.IDMapping\")\n\tproto.RegisterType((*UserNamespace)(nil), \"runtime.v1.UserNamespace\")\n\tproto.RegisterType((*NamespaceOption)(nil), \"runtime.v1.NamespaceOption\")\n\tproto.RegisterType((*Int64Value)(nil), \"runtime.v1.Int64Value\")\n\tproto.RegisterType((*LinuxSandboxSecurityContext)(nil), \"runtime.v1.LinuxSandboxSecurityContext\")\n\tproto.RegisterType((*SecurityProfile)(nil), \"runtime.v1.SecurityProfile\")\n\tproto.RegisterType((*LinuxPodSandboxConfig)(nil), \"runtime.v1.LinuxPodSandboxConfig\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.LinuxPodSandboxConfig.SysctlsEntry\")\n\tproto.RegisterType((*PodSandboxMetadata)(nil), \"runtime.v1.PodSandboxMetadata\")\n\tproto.RegisterType((*PodSandboxConfig)(nil), \"runtime.v1.PodSandboxConfig\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxConfig.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxConfig.LabelsEntry\")\n\tproto.RegisterType((*RunPodSandboxRequest)(nil), \"runtime.v1.RunPodSandboxRequest\")\n\tproto.RegisterType((*RunPodSandboxResponse)(nil), \"runtime.v1.RunPodSandboxResponse\")\n\tproto.RegisterType((*StopPodSandboxRequest)(nil), \"runtime.v1.StopPodSandboxRequest\")\n\tproto.RegisterType((*StopPodSandboxResponse)(nil), \"runtime.v1.StopPodSandboxResponse\")\n\tproto.RegisterType((*RemovePodSandboxRequest)(nil), \"runtime.v1.RemovePodSandboxRequest\")\n\tproto.RegisterType((*RemovePodSandboxResponse)(nil), \"runtime.v1.RemovePodSandboxResponse\")\n\tproto.RegisterType((*PodSandboxStatusRequest)(nil), \"runtime.v1.PodSandboxStatusRequest\")\n\tproto.RegisterType((*PodIP)(nil), \"runtime.v1.PodIP\")\n\tproto.RegisterType((*PodSandboxNetworkStatus)(nil), \"runtime.v1.PodSandboxNetworkStatus\")\n\tproto.RegisterType((*Namespace)(nil), \"runtime.v1.Namespace\")\n\tproto.RegisterType((*LinuxPodSandboxStatus)(nil), \"runtime.v1.LinuxPodSandboxStatus\")\n\tproto.RegisterType((*PodSandboxStatus)(nil), \"runtime.v1.PodSandboxStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxStatus.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxStatus.LabelsEntry\")\n\tproto.RegisterType((*PodSandboxStatusResponse)(nil), \"runtime.v1.PodSandboxStatusResponse\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxStatusResponse.InfoEntry\")\n\tproto.RegisterType((*PodSandboxStateValue)(nil), \"runtime.v1.PodSandboxStateValue\")\n\tproto.RegisterType((*PodSandboxFilter)(nil), \"runtime.v1.PodSandboxFilter\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxFilter.LabelSelectorEntry\")\n\tproto.RegisterType((*ListPodSandboxRequest)(nil), \"runtime.v1.ListPodSandboxRequest\")\n\tproto.RegisterType((*PodSandbox)(nil), \"runtime.v1.PodSandbox\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandbox.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandbox.LabelsEntry\")\n\tproto.RegisterType((*ListPodSandboxResponse)(nil), \"runtime.v1.ListPodSandboxResponse\")\n\tproto.RegisterType((*PodSandboxStatsRequest)(nil), \"runtime.v1.PodSandboxStatsRequest\")\n\tproto.RegisterType((*PodSandboxStatsResponse)(nil), \"runtime.v1.PodSandboxStatsResponse\")\n\tproto.RegisterType((*PodSandboxStatsFilter)(nil), \"runtime.v1.PodSandboxStatsFilter\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxStatsFilter.LabelSelectorEntry\")\n\tproto.RegisterType((*ListPodSandboxStatsRequest)(nil), \"runtime.v1.ListPodSandboxStatsRequest\")\n\tproto.RegisterType((*ListPodSandboxStatsResponse)(nil), \"runtime.v1.ListPodSandboxStatsResponse\")\n\tproto.RegisterType((*PodSandboxAttributes)(nil), \"runtime.v1.PodSandboxAttributes\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxAttributes.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.PodSandboxAttributes.LabelsEntry\")\n\tproto.RegisterType((*PodSandboxStats)(nil), \"runtime.v1.PodSandboxStats\")\n\tproto.RegisterType((*LinuxPodSandboxStats)(nil), \"runtime.v1.LinuxPodSandboxStats\")\n\tproto.RegisterType((*WindowsPodSandboxStats)(nil), \"runtime.v1.WindowsPodSandboxStats\")\n\tproto.RegisterType((*NetworkUsage)(nil), \"runtime.v1.NetworkUsage\")\n\tproto.RegisterType((*NetworkInterfaceUsage)(nil), \"runtime.v1.NetworkInterfaceUsage\")\n\tproto.RegisterType((*ProcessUsage)(nil), \"runtime.v1.ProcessUsage\")\n\tproto.RegisterType((*ImageSpec)(nil), \"runtime.v1.ImageSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ImageSpec.AnnotationsEntry\")\n\tproto.RegisterType((*KeyValue)(nil), \"runtime.v1.KeyValue\")\n\tproto.RegisterType((*LinuxContainerResources)(nil), \"runtime.v1.LinuxContainerResources\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.LinuxContainerResources.UnifiedEntry\")\n\tproto.RegisterType((*HugepageLimit)(nil), \"runtime.v1.HugepageLimit\")\n\tproto.RegisterType((*SELinuxOption)(nil), \"runtime.v1.SELinuxOption\")\n\tproto.RegisterType((*Capability)(nil), \"runtime.v1.Capability\")\n\tproto.RegisterType((*LinuxContainerSecurityContext)(nil), \"runtime.v1.LinuxContainerSecurityContext\")\n\tproto.RegisterType((*LinuxContainerConfig)(nil), \"runtime.v1.LinuxContainerConfig\")\n\tproto.RegisterType((*WindowsSandboxSecurityContext)(nil), \"runtime.v1.WindowsSandboxSecurityContext\")\n\tproto.RegisterType((*WindowsPodSandboxConfig)(nil), \"runtime.v1.WindowsPodSandboxConfig\")\n\tproto.RegisterType((*WindowsContainerSecurityContext)(nil), \"runtime.v1.WindowsContainerSecurityContext\")\n\tproto.RegisterType((*WindowsContainerConfig)(nil), \"runtime.v1.WindowsContainerConfig\")\n\tproto.RegisterType((*WindowsContainerResources)(nil), \"runtime.v1.WindowsContainerResources\")\n\tproto.RegisterType((*ContainerMetadata)(nil), \"runtime.v1.ContainerMetadata\")\n\tproto.RegisterType((*Device)(nil), \"runtime.v1.Device\")\n\tproto.RegisterType((*ContainerConfig)(nil), \"runtime.v1.ContainerConfig\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerConfig.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerConfig.LabelsEntry\")\n\tproto.RegisterType((*CreateContainerRequest)(nil), \"runtime.v1.CreateContainerRequest\")\n\tproto.RegisterType((*CreateContainerResponse)(nil), \"runtime.v1.CreateContainerResponse\")\n\tproto.RegisterType((*StartContainerRequest)(nil), \"runtime.v1.StartContainerRequest\")\n\tproto.RegisterType((*StartContainerResponse)(nil), \"runtime.v1.StartContainerResponse\")\n\tproto.RegisterType((*StopContainerRequest)(nil), \"runtime.v1.StopContainerRequest\")\n\tproto.RegisterType((*StopContainerResponse)(nil), \"runtime.v1.StopContainerResponse\")\n\tproto.RegisterType((*RemoveContainerRequest)(nil), \"runtime.v1.RemoveContainerRequest\")\n\tproto.RegisterType((*RemoveContainerResponse)(nil), \"runtime.v1.RemoveContainerResponse\")\n\tproto.RegisterType((*ContainerStateValue)(nil), \"runtime.v1.ContainerStateValue\")\n\tproto.RegisterType((*ContainerFilter)(nil), \"runtime.v1.ContainerFilter\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerFilter.LabelSelectorEntry\")\n\tproto.RegisterType((*ListContainersRequest)(nil), \"runtime.v1.ListContainersRequest\")\n\tproto.RegisterType((*Container)(nil), \"runtime.v1.Container\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.Container.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.Container.LabelsEntry\")\n\tproto.RegisterType((*ListContainersResponse)(nil), \"runtime.v1.ListContainersResponse\")\n\tproto.RegisterType((*ContainerStatusRequest)(nil), \"runtime.v1.ContainerStatusRequest\")\n\tproto.RegisterType((*ContainerStatus)(nil), \"runtime.v1.ContainerStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerStatus.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerStatus.LabelsEntry\")\n\tproto.RegisterType((*ContainerStatusResponse)(nil), \"runtime.v1.ContainerStatusResponse\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerStatusResponse.InfoEntry\")\n\tproto.RegisterType((*ContainerResources)(nil), \"runtime.v1.ContainerResources\")\n\tproto.RegisterType((*UpdateContainerResourcesRequest)(nil), \"runtime.v1.UpdateContainerResourcesRequest\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.UpdateContainerResourcesRequest.AnnotationsEntry\")\n\tproto.RegisterType((*UpdateContainerResourcesResponse)(nil), \"runtime.v1.UpdateContainerResourcesResponse\")\n\tproto.RegisterType((*ExecSyncRequest)(nil), \"runtime.v1.ExecSyncRequest\")\n\tproto.RegisterType((*ExecSyncResponse)(nil), \"runtime.v1.ExecSyncResponse\")\n\tproto.RegisterType((*ExecRequest)(nil), \"runtime.v1.ExecRequest\")\n\tproto.RegisterType((*ExecResponse)(nil), \"runtime.v1.ExecResponse\")\n\tproto.RegisterType((*AttachRequest)(nil), \"runtime.v1.AttachRequest\")\n\tproto.RegisterType((*AttachResponse)(nil), \"runtime.v1.AttachResponse\")\n\tproto.RegisterType((*PortForwardRequest)(nil), \"runtime.v1.PortForwardRequest\")\n\tproto.RegisterType((*PortForwardResponse)(nil), \"runtime.v1.PortForwardResponse\")\n\tproto.RegisterType((*ImageFilter)(nil), \"runtime.v1.ImageFilter\")\n\tproto.RegisterType((*ListImagesRequest)(nil), \"runtime.v1.ListImagesRequest\")\n\tproto.RegisterType((*Image)(nil), \"runtime.v1.Image\")\n\tproto.RegisterType((*ListImagesResponse)(nil), \"runtime.v1.ListImagesResponse\")\n\tproto.RegisterType((*ImageStatusRequest)(nil), \"runtime.v1.ImageStatusRequest\")\n\tproto.RegisterType((*ImageStatusResponse)(nil), \"runtime.v1.ImageStatusResponse\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ImageStatusResponse.InfoEntry\")\n\tproto.RegisterType((*AuthConfig)(nil), \"runtime.v1.AuthConfig\")\n\tproto.RegisterType((*PullImageRequest)(nil), \"runtime.v1.PullImageRequest\")\n\tproto.RegisterType((*PullImageResponse)(nil), \"runtime.v1.PullImageResponse\")\n\tproto.RegisterType((*RemoveImageRequest)(nil), \"runtime.v1.RemoveImageRequest\")\n\tproto.RegisterType((*RemoveImageResponse)(nil), \"runtime.v1.RemoveImageResponse\")\n\tproto.RegisterType((*NetworkConfig)(nil), \"runtime.v1.NetworkConfig\")\n\tproto.RegisterType((*RuntimeConfig)(nil), \"runtime.v1.RuntimeConfig\")\n\tproto.RegisterType((*UpdateRuntimeConfigRequest)(nil), \"runtime.v1.UpdateRuntimeConfigRequest\")\n\tproto.RegisterType((*UpdateRuntimeConfigResponse)(nil), \"runtime.v1.UpdateRuntimeConfigResponse\")\n\tproto.RegisterType((*RuntimeCondition)(nil), \"runtime.v1.RuntimeCondition\")\n\tproto.RegisterType((*RuntimeStatus)(nil), \"runtime.v1.RuntimeStatus\")\n\tproto.RegisterType((*StatusRequest)(nil), \"runtime.v1.StatusRequest\")\n\tproto.RegisterType((*StatusResponse)(nil), \"runtime.v1.StatusResponse\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.StatusResponse.InfoEntry\")\n\tproto.RegisterType((*ImageFsInfoRequest)(nil), \"runtime.v1.ImageFsInfoRequest\")\n\tproto.RegisterType((*UInt64Value)(nil), \"runtime.v1.UInt64Value\")\n\tproto.RegisterType((*FilesystemIdentifier)(nil), \"runtime.v1.FilesystemIdentifier\")\n\tproto.RegisterType((*FilesystemUsage)(nil), \"runtime.v1.FilesystemUsage\")\n\tproto.RegisterType((*ImageFsInfoResponse)(nil), \"runtime.v1.ImageFsInfoResponse\")\n\tproto.RegisterType((*ContainerStatsRequest)(nil), \"runtime.v1.ContainerStatsRequest\")\n\tproto.RegisterType((*ContainerStatsResponse)(nil), \"runtime.v1.ContainerStatsResponse\")\n\tproto.RegisterType((*ListContainerStatsRequest)(nil), \"runtime.v1.ListContainerStatsRequest\")\n\tproto.RegisterType((*ContainerStatsFilter)(nil), \"runtime.v1.ContainerStatsFilter\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerStatsFilter.LabelSelectorEntry\")\n\tproto.RegisterType((*ListContainerStatsResponse)(nil), \"runtime.v1.ListContainerStatsResponse\")\n\tproto.RegisterType((*ContainerAttributes)(nil), \"runtime.v1.ContainerAttributes\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerAttributes.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"runtime.v1.ContainerAttributes.LabelsEntry\")\n\tproto.RegisterType((*ContainerStats)(nil), \"runtime.v1.ContainerStats\")\n\tproto.RegisterType((*CpuUsage)(nil), \"runtime.v1.CpuUsage\")\n\tproto.RegisterType((*MemoryUsage)(nil), \"runtime.v1.MemoryUsage\")\n\tproto.RegisterType((*ReopenContainerLogRequest)(nil), \"runtime.v1.ReopenContainerLogRequest\")\n\tproto.RegisterType((*ReopenContainerLogResponse)(nil), \"runtime.v1.ReopenContainerLogResponse\")\n\tproto.RegisterType((*CheckpointContainerRequest)(nil), \"runtime.v1.CheckpointContainerRequest\")\n\tproto.RegisterType((*CheckpointContainerResponse)(nil), \"runtime.v1.CheckpointContainerResponse\")\n\tproto.RegisterType((*GetEventsRequest)(nil), \"runtime.v1.GetEventsRequest\")\n\tproto.RegisterType((*ContainerEventResponse)(nil), \"runtime.v1.ContainerEventResponse\")\n}\n\nfunc init() { proto.RegisterFile(\"api.proto\", fileDescriptor_00212fb1f9d3bf1c) }\n\nvar fileDescriptor_00212fb1f9d3bf1c = []byte{\n\t// 5988 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x4d, 0x70, 0x1b, 0xc9,\n\t0x75, 0x30, 0x07, 0x00, 0x49, 0xe0, 0x81, 0x00, 0xc1, 0x16, 0x45, 0x42, 0xa0, 0xa4, 0x95, 0x46,\n\t0xde, 0x1f, 0x49, 0xbb, 0x94, 0x56, 0xab, 0x5d, 0x4b, 0xb2, 0x76, 0x57, 0x10, 0xc9, 0xd5, 0x72,\n\t0x2d, 0x91, 0xf0, 0x80, 0x94, 0xff, 0xbe, 0xf2, 0x7c, 0x23, 0x4c, 0x13, 0x9c, 0x15, 0x30, 0x33,\n\t0x9e, 0x19, 0x48, 0xa2, 0x4f, 0xdf, 0xf1, 0x4b, 0x4e, 0xae, 0x72, 0x1c, 0x57, 0xb9, 0x52, 0x49,\n\t0xe5, 0x94, 0x43, 0x0e, 0xce, 0x25, 0xa9, 0x54, 0xa5, 0x92, 0x5c, 0x52, 0x2e, 0x27, 0x55, 0xae,\n\t0xf2, 0x25, 0x55, 0x3e, 0xa4, 0x2a, 0xf6, 0xe6, 0x96, 0x43, 0x4e, 0x3e, 0xe4, 0x14, 0xa7, 0xfa,\n\t0x6f, 0x66, 0x7a, 0x66, 0x30, 0x00, 0xb9, 0x6b, 0xef, 0x9e, 0x80, 0x79, 0xfd, 0xde, 0xeb, 0xd7,\n\t0xaf, 0x5f, 0xbf, 0x7e, 0xdd, 0xef, 0xcd, 0x40, 0xc5, 0x70, 0xad, 0x75, 0xd7, 0x73, 0x02, 0x07,\n\t0x81, 0x37, 0xb2, 0x03, 0x6b, 0x88, 0xd7, 0x9f, 0xbd, 0xd9, 0x7a, 0xa3, 0x6f, 0x05, 0x87, 0xa3,\n\t0x27, 0xeb, 0x3d, 0x67, 0x78, 0xad, 0xef, 0xf4, 0x9d, 0x6b, 0x14, 0xe5, 0xc9, 0xe8, 0x80, 0x3e,\n\t0xd1, 0x07, 0xfa, 0x8f, 0x91, 0xaa, 0x57, 0xa0, 0xfe, 0x18, 0x7b, 0xbe, 0xe5, 0xd8, 0x1a, 0xfe,\n\t0xee, 0x08, 0xfb, 0x01, 0x6a, 0xc2, 0xfc, 0x33, 0x06, 0x69, 0x2a, 0x17, 0x94, 0xd7, 0x2a, 0x9a,\n\t0x78, 0x54, 0xff, 0x42, 0x81, 0xc5, 0x10, 0xd9, 0x77, 0x1d, 0xdb, 0xc7, 0xe3, 0xb1, 0xd1, 0x45,\n\t0x58, 0xe0, 0x62, 0xe9, 0xb6, 0x31, 0xc4, 0xcd, 0x02, 0x6d, 0xae, 0x72, 0xd8, 0x8e, 0x31, 0xc4,\n\t0xe8, 0x55, 0x58, 0x14, 0x28, 0x82, 0x49, 0x91, 0x62, 0xd5, 0x39, 0x98, 0xf7, 0x86, 0xd6, 0xe1,\n\t0x94, 0x40, 0x34, 0x5c, 0x2b, 0x44, 0x2e, 0x51, 0xe4, 0x25, 0xde, 0xd4, 0x76, 0x2d, 0x8e, 0xaf,\n\t0x7e, 0x1b, 0x2a, 0x9b, 0x3b, 0xdd, 0x0d, 0xc7, 0x3e, 0xb0, 0xfa, 0x44, 0x44, 0x1f, 0x7b, 0x84,\n\t0xa6, 0xa9, 0x5c, 0x28, 0x12, 0x11, 0xf9, 0x23, 0x6a, 0x41, 0xd9, 0xc7, 0x86, 0xd7, 0x3b, 0xc4,\n\t0x7e, 0xb3, 0x40, 0x9b, 0xc2, 0x67, 0x42, 0xe5, 0xb8, 0x81, 0xe5, 0xd8, 0x7e, 0xb3, 0xc8, 0xa8,\n\t0xf8, 0xa3, 0xfa, 0x27, 0x0a, 0x54, 0x3b, 0x8e, 0x17, 0x3c, 0x32, 0x5c, 0xd7, 0xb2, 0xfb, 0xe8,\n\t0x3a, 0x94, 0xa9, 0x2e, 0x7b, 0xce, 0x80, 0xea, 0xa0, 0x7e, 0x63, 0x79, 0x3d, 0x9a, 0x90, 0xf5,\n\t0x0e, 0x6f, 0xd3, 0x42, 0x2c, 0xf4, 0x32, 0xd4, 0x7b, 0x8e, 0x1d, 0x18, 0x96, 0x8d, 0x3d, 0xdd,\n\t0x75, 0xbc, 0x80, 0x2a, 0x67, 0x56, 0xab, 0x85, 0x50, 0xc2, 0x1f, 0xad, 0x41, 0xe5, 0xd0, 0xf1,\n\t0x03, 0x86, 0x51, 0xa4, 0x18, 0x65, 0x02, 0xa0, 0x8d, 0xab, 0x30, 0x4f, 0x1b, 0x2d, 0x97, 0xab,\n\t0x61, 0x8e, 0x3c, 0x6e, 0xbb, 0xea, 0x2f, 0x14, 0x98, 0x7d, 0xe4, 0x8c, 0xec, 0x20, 0xd1, 0x8d,\n\t0x11, 0x1c, 0xf2, 0x29, 0x8a, 0x75, 0x63, 0x04, 0x87, 0x51, 0x37, 0x04, 0x83, 0xcd, 0x12, 0xeb,\n\t0x86, 0x34, 0xb6, 0xa0, 0xec, 0x61, 0xc3, 0x74, 0xec, 0xc1, 0x11, 0x15, 0xa1, 0xac, 0x85, 0xcf,\n\t0x64, 0xfa, 0x7c, 0x3c, 0xb0, 0xec, 0xd1, 0x0b, 0xdd, 0xc3, 0x03, 0xe3, 0x09, 0x1e, 0x50, 0x51,\n\t0xca, 0x5a, 0x9d, 0x83, 0x35, 0x06, 0x45, 0xef, 0x41, 0xd5, 0xf5, 0x1c, 0xd7, 0xe8, 0x1b, 0x44,\n\t0x83, 0xcd, 0x59, 0xaa, 0xa4, 0xb3, 0x71, 0x25, 0x51, 0x81, 0x3b, 0x11, 0x8e, 0x16, 0x27, 0x50,\n\t0x75, 0xa8, 0x6c, 0x6f, 0x0a, 0x75, 0x87, 0x03, 0x37, 0xe9, 0x70, 0x6a, 0x7c, 0xe0, 0x26, 0x31,\n\t0xb8, 0x68, 0xb8, 0x96, 0x49, 0x87, 0x52, 0xd3, 0xaa, 0x21, 0x6c, 0xdb, 0x44, 0x2b, 0x30, 0x37,\n\t0xc0, 0x76, 0x3f, 0x38, 0xa4, 0x63, 0xa9, 0x69, 0xfc, 0x49, 0xfd, 0x23, 0x05, 0x6a, 0xfb, 0x3e,\n\t0xf6, 0x88, 0x55, 0xfa, 0xae, 0xd1, 0xc3, 0xe8, 0x0d, 0x28, 0x0d, 0x1d, 0x13, 0xf3, 0x09, 0x3d,\n\t0x13, 0x97, 0x35, 0x44, 0x7a, 0xe4, 0x98, 0x58, 0xa3, 0x68, 0xe8, 0x32, 0x94, 0x46, 0x96, 0xc9,\n\t0xac, 0xa8, 0x7a, 0xe3, 0x74, 0x1c, 0x3d, 0x94, 0x5c, 0xa3, 0x28, 0x04, 0xb5, 0x4f, 0x50, 0x8b,\n\t0xb9, 0xa8, 0x04, 0x45, 0xfd, 0xad, 0x02, 0x8b, 0x61, 0x6f, 0xbb, 0xd4, 0xfc, 0xd0, 0x5b, 0x30,\n\t0x6f, 0xe3, 0xe0, 0xb9, 0xe3, 0x3d, 0x9d, 0x2c, 0x9b, 0xc0, 0x44, 0x57, 0xa1, 0xe8, 0x72, 0x8d,\n\t0xe4, 0x12, 0x10, 0x2c, 0x82, 0x6c, 0xb9, 0x3d, 0xaa, 0xa1, 0x7c, 0x64, 0xcb, 0xed, 0x11, 0xe3,\n\t0x09, 0x0c, 0xaf, 0x8f, 0xe9, 0x7c, 0x30, 0x43, 0x2c, 0x33, 0xc0, 0xb6, 0x89, 0xee, 0x41, 0x7d,\n\t0xe4, 0x63, 0xcf, 0xf6, 0x75, 0xb1, 0x94, 0xc8, 0xd4, 0x57, 0x65, 0xa6, 0x92, 0xde, 0xb5, 0x1a,\n\t0x23, 0xd8, 0xe5, 0x6b, 0x4d, 0x05, 0xd8, 0xb6, 0x83, 0x77, 0x6e, 0x3e, 0x36, 0x06, 0x23, 0x8c,\n\t0x96, 0x61, 0xf6, 0x19, 0xf9, 0x43, 0x47, 0x5e, 0xd4, 0xd8, 0x83, 0xfa, 0xf7, 0x25, 0x58, 0x7b,\n\t0x48, 0xcc, 0xad, 0x6b, 0xd8, 0xe6, 0x13, 0xe7, 0x45, 0x17, 0xf7, 0x46, 0x9e, 0x15, 0x1c, 0x6d,\n\t0x38, 0x76, 0x80, 0x5f, 0x04, 0xe8, 0x43, 0x58, 0xb2, 0x05, 0xff, 0x50, 0x10, 0x85, 0x0a, 0xb2,\n\t0x96, 0x39, 0x3a, 0xd6, 0xb9, 0xd6, 0xb0, 0x65, 0x80, 0x8f, 0xee, 0x47, 0x06, 0x2f, 0xf8, 0x14,\n\t0xd2, 0x03, 0xea, 0x6e, 0x51, 0x69, 0x38, 0x17, 0xb1, 0x16, 0x04, 0x8f, 0x77, 0x80, 0xb8, 0x40,\n\t0xdd, 0xf0, 0x75, 0x32, 0x52, 0xaa, 0xe5, 0xea, 0x8d, 0x15, 0xc9, 0x0a, 0xc2, 0x01, 0x6b, 0x15,\n\t0x6f, 0x64, 0xb7, 0x7d, 0xa2, 0x21, 0x74, 0x8b, 0xba, 0x53, 0x42, 0xd7, 0xf7, 0x9c, 0x91, 0xdb,\n\t0x2c, 0xe7, 0x12, 0x02, 0x25, 0x7c, 0x40, 0x30, 0xa9, 0x97, 0xe5, 0x4b, 0x56, 0xf7, 0x1c, 0x27,\n\t0x38, 0xf0, 0xc5, 0x32, 0x15, 0x60, 0x8d, 0x42, 0xd1, 0x35, 0x38, 0xe5, 0x8f, 0x5c, 0x77, 0x80,\n\t0x87, 0xd8, 0x0e, 0x8c, 0x01, 0xeb, 0x88, 0xcc, 0x59, 0xf1, 0xb5, 0xa2, 0x86, 0xe2, 0x4d, 0x94,\n\t0xb1, 0x8f, 0xce, 0x03, 0xb8, 0x9e, 0xf5, 0xcc, 0x1a, 0xe0, 0x3e, 0x36, 0x9b, 0x73, 0x94, 0x69,\n\t0x0c, 0x82, 0xde, 0x26, 0x9e, 0xb7, 0xd7, 0x73, 0x86, 0x6e, 0xb3, 0x92, 0xd6, 0xb7, 0x98, 0xa7,\n\t0x8e, 0xe7, 0x1c, 0x58, 0x03, 0xac, 0x09, 0x5c, 0xf4, 0x65, 0x28, 0x1b, 0xae, 0x6b, 0x78, 0x43,\n\t0xc7, 0x6b, 0xc2, 0x64, 0xba, 0x10, 0x19, 0xdd, 0x84, 0x65, 0xce, 0x43, 0x77, 0x59, 0x23, 0x73,\n\t0x6a, 0xf3, 0xc4, 0x2e, 0xef, 0x17, 0x9a, 0x8a, 0x86, 0x78, 0x3b, 0xa7, 0x25, 0x2e, 0x4e, 0xfd,\n\t0x27, 0x05, 0x16, 0x13, 0x3c, 0xd1, 0x47, 0xb0, 0x20, 0x38, 0x04, 0x47, 0xae, 0x70, 0x03, 0xaf,\n\t0xe6, 0x88, 0xb1, 0xce, 0x7f, 0xf7, 0x8e, 0x5c, 0x4c, 0xbd, 0x97, 0x78, 0x40, 0x97, 0xa0, 0x36,\n\t0x70, 0x7a, 0xc6, 0x80, 0x7a, 0x2d, 0x0f, 0x1f, 0x70, 0x1f, 0xbb, 0x10, 0x02, 0x35, 0x7c, 0xa0,\n\t0xde, 0x83, 0x6a, 0x8c, 0x01, 0x42, 0x50, 0xd7, 0x58, 0x57, 0x9b, 0xf8, 0xc0, 0x18, 0x0d, 0x82,\n\t0xc6, 0x0c, 0xaa, 0x03, 0xec, 0xdb, 0x3d, 0xb2, 0xa7, 0xd9, 0xd8, 0x6c, 0x28, 0xa8, 0x06, 0x95,\n\t0x87, 0x82, 0x45, 0xa3, 0xa0, 0xfe, 0xb8, 0x08, 0xa7, 0xa9, 0xe1, 0x75, 0x1c, 0x93, 0xaf, 0x04,\n\t0xbe, 0x01, 0x5e, 0x82, 0x5a, 0x8f, 0xce, 0xa5, 0xee, 0x1a, 0x1e, 0xb6, 0x03, 0xbe, 0x0d, 0x2c,\n\t0x30, 0x60, 0x87, 0xc2, 0x90, 0x06, 0x0d, 0x9f, 0x8f, 0x48, 0xef, 0xb1, 0x95, 0xc3, 0x8d, 0x5b,\n\t0x1a, 0x75, 0xce, 0x42, 0xd3, 0x16, 0xfd, 0xd4, 0xca, 0x9b, 0xf7, 0x8f, 0xfc, 0x5e, 0x30, 0x10,\n\t0xde, 0x6e, 0x3d, 0xc5, 0x2a, 0x29, 0xec, 0x7a, 0x97, 0x11, 0x6c, 0xd9, 0x81, 0x77, 0xa4, 0x09,\n\t0x72, 0xf4, 0x3e, 0x94, 0x9d, 0x67, 0xd8, 0x3b, 0xc4, 0x06, 0xf3, 0x32, 0xd5, 0x1b, 0x97, 0x52,\n\t0xac, 0x36, 0x84, 0xa3, 0xd7, 0xb0, 0xef, 0x8c, 0xbc, 0x1e, 0xf6, 0xb5, 0x90, 0x08, 0xb5, 0xa1,\n\t0xe2, 0x09, 0x30, 0xf7, 0x42, 0x53, 0x71, 0x88, 0xa8, 0x5a, 0x77, 0x60, 0x21, 0x2e, 0x1c, 0x6a,\n\t0x40, 0xf1, 0x29, 0x3e, 0xe2, 0xca, 0x24, 0x7f, 0x23, 0xff, 0xc4, 0x66, 0x98, 0x3d, 0xdc, 0x29,\n\t0xdc, 0x52, 0x54, 0x0f, 0x50, 0x34, 0xd2, 0x47, 0x38, 0x30, 0x4c, 0x23, 0x30, 0x10, 0x82, 0x12,\n\t0x0d, 0x8d, 0x18, 0x0b, 0xfa, 0x9f, 0x70, 0x1d, 0x71, 0x57, 0x5d, 0xd1, 0xc8, 0x5f, 0x74, 0x16,\n\t0x2a, 0xa1, 0x27, 0xe2, 0xf1, 0x51, 0x04, 0x20, 0x71, 0x8a, 0x11, 0x04, 0x78, 0xe8, 0x06, 0x54,\n\t0x31, 0x35, 0x4d, 0x3c, 0xaa, 0x7f, 0x30, 0x0b, 0x8d, 0x94, 0x2d, 0xdc, 0x81, 0xf2, 0x90, 0x77,\n\t0xcf, 0x7d, 0xe0, 0x79, 0x29, 0x58, 0x49, 0x09, 0xa9, 0x85, 0xf8, 0x24, 0x16, 0x20, 0xb6, 0x16,\n\t0x8b, 0xe6, 0xc2, 0x67, 0x66, 0xe4, 0x7d, 0xdd, 0xb4, 0x3c, 0xdc, 0x0b, 0x1c, 0xef, 0x88, 0x0b,\n\t0xba, 0x30, 0x70, 0xfa, 0x9b, 0x02, 0x86, 0x6e, 0x02, 0x98, 0xb6, 0xaf, 0x53, 0x1b, 0xee, 0xf3,\n\t0x79, 0x94, 0x36, 0xc0, 0x30, 0x68, 0xd3, 0x2a, 0xa6, 0xed, 0x73, 0x91, 0xef, 0x42, 0x8d, 0x44,\n\t0x40, 0xfa, 0x90, 0xed, 0x8d, 0xcc, 0x21, 0x55, 0x6f, 0xac, 0xca, 0x72, 0x87, 0xf1, 0x98, 0xb6,\n\t0xe0, 0x46, 0x0f, 0x3e, 0xba, 0x07, 0x73, 0x34, 0x08, 0xf1, 0x9b, 0x73, 0x94, 0xec, 0xb5, 0xec,\n\t0xe1, 0x72, 0xeb, 0x7b, 0x48, 0x51, 0x99, 0xf1, 0x71, 0x3a, 0xb4, 0x0b, 0x55, 0xc3, 0xb6, 0x9d,\n\t0xc0, 0x60, 0x1e, 0x7f, 0x9e, 0xb2, 0x79, 0x23, 0x97, 0x4d, 0x3b, 0xc2, 0x67, 0xbc, 0xe2, 0x1c,\n\t0xd0, 0x97, 0x61, 0x96, 0x6e, 0x09, 0xdc, 0x87, 0x5f, 0x9c, 0xb8, 0x28, 0x34, 0x86, 0x8f, 0xde,\n\t0x85, 0xf9, 0xe7, 0x96, 0x6d, 0x3a, 0xcf, 0x7d, 0xee, 0x4f, 0x25, 0x13, 0xfe, 0x3a, 0x6b, 0x4a,\n\t0x11, 0x0b, 0x9a, 0xd6, 0x6d, 0xa8, 0xc6, 0xc6, 0x77, 0x1c, 0xfb, 0x6d, 0xbd, 0x07, 0x8d, 0xe4,\n\t0x98, 0x8e, 0x65, 0xff, 0x23, 0x58, 0xd6, 0x46, 0x76, 0x24, 0x9a, 0x38, 0x6c, 0xdc, 0x84, 0x39,\n\t0x6e, 0x0d, 0xcc, 0x18, 0xcf, 0xe6, 0xa9, 0x55, 0xe3, 0xb8, 0xf1, 0x73, 0xc3, 0xa1, 0x61, 0x9b,\n\t0x03, 0xec, 0xf1, 0x1e, 0xc5, 0xb9, 0xe1, 0x43, 0x06, 0x55, 0xdf, 0x85, 0xd3, 0x89, 0x6e, 0xf9,\n\t0xb1, 0xe5, 0x4b, 0x50, 0x77, 0x1d, 0x53, 0xf7, 0x19, 0x58, 0xc4, 0x92, 0x15, 0x62, 0x3b, 0x02,\n\t0x77, 0xdb, 0x24, 0xe4, 0xdd, 0xc0, 0x71, 0xd3, 0x62, 0x4f, 0x47, 0xde, 0x84, 0x95, 0x24, 0x39,\n\t0xeb, 0x5e, 0x7d, 0x1f, 0x56, 0x35, 0x3c, 0x74, 0x9e, 0xe1, 0x93, 0xb2, 0x6e, 0x41, 0x33, 0xcd,\n\t0x80, 0x33, 0xff, 0x26, 0xac, 0x46, 0xd0, 0x6e, 0x60, 0x04, 0x23, 0xff, 0x58, 0xcc, 0xf9, 0x99,\n\t0xee, 0x89, 0xe3, 0xb3, 0x89, 0x2c, 0x6b, 0xe2, 0x51, 0x5d, 0x85, 0xd9, 0x8e, 0x63, 0x6e, 0x77,\n\t0x50, 0x1d, 0x0a, 0x96, 0xcb, 0x89, 0x0b, 0x96, 0xab, 0xf6, 0xe2, 0x7d, 0xee, 0xb0, 0xa8, 0x93,\n\t0x75, 0x9d, 0x44, 0x45, 0xb7, 0xa0, 0x6e, 0x98, 0xa6, 0x45, 0x0c, 0xc9, 0x18, 0xe8, 0x96, 0x2b,\n\t0x82, 0xe6, 0xa5, 0xc4, 0xd4, 0x6f, 0x77, 0xb4, 0x5a, 0x84, 0xb8, 0xed, 0xfa, 0xea, 0x7d, 0xa8,\n\t0x44, 0x01, 0xfa, 0xdb, 0xd1, 0xf9, 0xac, 0x30, 0x39, 0x96, 0x0b, 0x0f, 0x6f, 0x3b, 0xa9, 0x4d,\n\t0x92, 0x8b, 0xf9, 0x36, 0x40, 0xe8, 0x54, 0x45, 0x78, 0x78, 0x3a, 0x93, 0xa5, 0x16, 0x43, 0x54,\n\t0xff, 0xbd, 0x14, 0x77, 0xb2, 0xb1, 0x21, 0x9b, 0xe1, 0x90, 0x4d, 0xc9, 0xe9, 0x16, 0x8e, 0xe9,\n\t0x74, 0xdf, 0x84, 0x59, 0x3f, 0x30, 0x02, 0xcc, 0xe3, 0xf1, 0xb5, 0x6c, 0x42, 0xd2, 0x31, 0xd6,\n\t0x18, 0x26, 0x3a, 0x07, 0xd0, 0xf3, 0xb0, 0x11, 0x60, 0x53, 0x37, 0xd8, 0xae, 0x50, 0xd4, 0x2a,\n\t0x1c, 0xd2, 0x0e, 0x88, 0x17, 0x11, 0x27, 0x88, 0x8c, 0x8d, 0x70, 0xcc, 0x34, 0x46, 0x67, 0x89,\n\t0xd0, 0x7b, 0xcd, 0x4d, 0xf4, 0x5e, 0x9c, 0x94, 0x7b, 0xaf, 0xc8, 0x13, 0xcf, 0xe7, 0x79, 0x62,\n\t0x46, 0x34, 0x8d, 0x27, 0x2e, 0xe7, 0x79, 0x62, 0xce, 0x26, 0xdf, 0x13, 0x67, 0x38, 0x92, 0x4a,\n\t0x96, 0x23, 0xf9, 0x3c, 0x5d, 0xe7, 0xcf, 0x15, 0x68, 0xa6, 0xd7, 0x33, 0xf7, 0x63, 0x37, 0x61,\n\t0xce, 0xa7, 0x90, 0x7c, 0xff, 0xc9, 0xa9, 0x38, 0x2e, 0xba, 0x0f, 0x25, 0xcb, 0x3e, 0x70, 0xf8,\n\t0xc2, 0x5b, 0xcf, 0xa5, 0xe1, 0x3d, 0xad, 0x6f, 0xdb, 0x07, 0x0e, 0xd3, 0x20, 0xa5, 0x6d, 0x7d,\n\t0x19, 0x2a, 0x21, 0xe8, 0x58, 0xe3, 0xd9, 0x86, 0xe5, 0x84, 0xdd, 0xb2, 0xc3, 0x5d, 0x68, 0xe8,\n\t0xca, 0xb4, 0x86, 0xae, 0xfe, 0x46, 0x89, 0x2f, 0xbe, 0x0f, 0xac, 0x41, 0x80, 0xbd, 0xd4, 0xe2,\n\t0x7b, 0x47, 0xf0, 0x65, 0x2b, 0xef, 0x42, 0x0e, 0x5f, 0x76, 0x76, 0xe2, 0xab, 0xe8, 0x31, 0xd4,\n\t0xa9, 0xd9, 0xe9, 0x3e, 0x1e, 0xd0, 0xf8, 0x85, 0xc7, 0xb0, 0xd7, 0xb2, 0x19, 0xb0, 0xde, 0x99,\n\t0xd9, 0x76, 0x39, 0x05, 0xd3, 0x57, 0x6d, 0x10, 0x87, 0xb5, 0xee, 0x01, 0x4a, 0x23, 0x1d, 0x4b,\n\t0x83, 0x8f, 0x88, 0x0f, 0xf3, 0x83, 0xcc, 0xdd, 0xf4, 0x80, 0x8a, 0x91, 0x6f, 0x0d, 0x4c, 0x54,\n\t0x8d, 0xe3, 0xaa, 0xff, 0x5a, 0x04, 0x88, 0x1a, 0xbf, 0xe0, 0xce, 0xeb, 0x4e, 0xe8, 0x44, 0x58,\n\t0x14, 0xa8, 0x66, 0xb3, 0xcc, 0x74, 0x1f, 0xdb, 0xb2, 0xfb, 0x60, 0xf1, 0xe0, 0xab, 0x63, 0x18,\n\t0x1c, 0xdb, 0x71, 0xcc, 0x7f, 0xd1, 0x1c, 0xc7, 0x07, 0xb0, 0x92, 0x34, 0x13, 0xee, 0x35, 0x5e,\n\t0x87, 0x59, 0x2b, 0xc0, 0x43, 0x76, 0x1f, 0x9a, 0xb8, 0x44, 0x88, 0xa1, 0x33, 0x24, 0xf5, 0x3d,\n\t0x58, 0x91, 0xe7, 0xea, 0x78, 0xe1, 0x84, 0xfa, 0x30, 0x19, 0x8f, 0x44, 0xee, 0x8b, 0xdb, 0x47,\n\t0xe6, 0x75, 0x4c, 0x92, 0x86, 0x61, 0xaa, 0x3f, 0x55, 0xe0, 0x74, 0xa2, 0x69, 0xcc, 0xc2, 0xff,\n\t0x76, 0x6a, 0x01, 0x33, 0x7f, 0x77, 0x33, 0xa7, 0x97, 0xdf, 0xe3, 0x2a, 0xfe, 0x3a, 0xb4, 0xe4,\n\t0xe9, 0x91, 0x54, 0x7b, 0x3b, 0xb1, 0x94, 0x2f, 0x4e, 0x14, 0x3a, 0x5c, 0xcf, 0x1d, 0x58, 0xcb,\n\t0x64, 0x9c, 0xd6, 0x79, 0x71, 0x4a, 0x9d, 0xff, 0x77, 0x21, 0xee, 0xb3, 0xdb, 0x41, 0xe0, 0x59,\n\t0x4f, 0x46, 0x01, 0xfe, 0x6c, 0x03, 0x9d, 0xcd, 0x70, 0x65, 0x33, 0x3f, 0xfb, 0x7a, 0x36, 0x65,\n\t0xd4, 0x7b, 0xe6, 0x1a, 0xef, 0xca, 0x6b, 0xbc, 0x44, 0x59, 0xbd, 0x39, 0x91, 0x55, 0xee, 0x6a,\n\t0xff, 0x3c, 0x17, 0xf1, 0x3f, 0x2b, 0xb0, 0x98, 0x98, 0x15, 0x74, 0x0f, 0xc0, 0x08, 0x45, 0xe7,\n\t0xf6, 0x71, 0x61, 0xd2, 0x10, 0xb5, 0x18, 0x0d, 0xd9, 0x13, 0x59, 0x0c, 0x97, 0xb1, 0x27, 0x66,\n\t0xc4, 0x70, 0x61, 0x08, 0x77, 0x37, 0x3a, 0x80, 0xb2, 0x8b, 0x4b, 0x35, 0xf7, 0x00, 0xca, 0x68,\n\t0x05, 0x89, 0xfa, 0x83, 0x02, 0x2c, 0x67, 0x71, 0x47, 0xaf, 0x40, 0xb1, 0xe7, 0x8e, 0xf8, 0x48,\n\t0xa4, 0xe4, 0xc9, 0x86, 0x3b, 0xda, 0xf7, 0x8d, 0x3e, 0xd6, 0x08, 0x02, 0xba, 0x06, 0x73, 0x43,\n\t0x3c, 0x74, 0xbc, 0x23, 0x2e, 0xb7, 0x74, 0x05, 0xf0, 0x88, 0xb6, 0x30, 0x6c, 0x8e, 0x86, 0x6e,\n\t0x44, 0xa1, 0x2e, 0x93, 0xb7, 0x29, 0x45, 0xf4, 0xac, 0x89, 0x91, 0x84, 0xf1, 0xed, 0x0d, 0x98,\n\t0x77, 0x3d, 0xa7, 0x87, 0x7d, 0x9f, 0xdf, 0x50, 0x34, 0x13, 0xd9, 0x1c, 0xd2, 0xc4, 0x69, 0x38,\n\t0x22, 0xba, 0x03, 0x10, 0xa6, 0x19, 0xc4, 0xce, 0xd4, 0x92, 0xc6, 0x21, 0x5a, 0x99, 0x4a, 0x62,\n\t0xd8, 0xe4, 0x94, 0x98, 0xad, 0x38, 0xf5, 0x1f, 0x15, 0x58, 0x88, 0xcb, 0x88, 0xce, 0x42, 0x85,\n\t0x30, 0xf4, 0x03, 0x63, 0xe8, 0xf2, 0x3b, 0xf0, 0x08, 0x80, 0x76, 0x60, 0xc9, 0x64, 0x97, 0x85,\n\t0xba, 0x65, 0x07, 0xd8, 0x3b, 0x30, 0x7a, 0x22, 0xe8, 0xb9, 0x98, 0x31, 0xec, 0x6d, 0x81, 0xc3,\n\t0xc6, 0xd2, 0xe0, 0xb4, 0x21, 0x18, 0xb5, 0x01, 0x42, 0x3e, 0x62, 0x51, 0x4e, 0xc1, 0x28, 0x46,\n\t0xa4, 0xfe, 0x56, 0x81, 0xd3, 0x99, 0x58, 0x99, 0x57, 0x5f, 0x37, 0xa0, 0xec, 0xbd, 0xd0, 0x9f,\n\t0x1c, 0x05, 0xd8, 0xcf, 0x9a, 0xe0, 0xfd, 0xd8, 0xfd, 0xf6, 0xbc, 0xf7, 0xe2, 0x3e, 0xc1, 0x43,\n\t0x37, 0xa1, 0xe2, 0xbd, 0xd0, 0xb1, 0xe7, 0x39, 0x9e, 0xb0, 0xc9, 0xb1, 0x44, 0x65, 0xef, 0xc5,\n\t0x16, 0x45, 0x24, 0x3d, 0x05, 0xa2, 0xa7, 0xd2, 0x84, 0x9e, 0x82, 0xa8, 0xa7, 0x20, 0xec, 0x69,\n\t0x76, 0x42, 0x4f, 0x01, 0xef, 0x49, 0xfd, 0x18, 0x16, 0xe2, 0x26, 0x33, 0x61, 0x0a, 0xef, 0x42,\n\t0x8d, 0x9b, 0x94, 0xde, 0x73, 0x46, 0x76, 0x30, 0x49, 0x0d, 0x0b, 0x1c, 0x7b, 0x83, 0x20, 0xab,\n\t0x7f, 0xa9, 0x40, 0x65, 0x7b, 0x68, 0xf4, 0x71, 0xd7, 0xc5, 0x3d, 0xe2, 0x53, 0x2c, 0xf2, 0xc0,\n\t0x55, 0xcc, 0x1e, 0xd0, 0x87, 0xb2, 0x7f, 0x64, 0x3b, 0xe2, 0x2b, 0x52, 0x16, 0x41, 0x70, 0x98,\n\t0xe0, 0x14, 0x3f, 0xad, 0x67, 0xbb, 0x01, 0xe5, 0xaf, 0xe2, 0x23, 0x16, 0xfb, 0x4f, 0x49, 0xa7,\n\t0xfe, 0xb0, 0x04, 0xab, 0x63, 0x6e, 0x6a, 0x69, 0xe0, 0xe8, 0x8e, 0x74, 0x17, 0x7b, 0x96, 0x63,\n\t0x0a, 0xd5, 0xf6, 0xdc, 0x51, 0x87, 0x02, 0xd0, 0x1a, 0x90, 0x07, 0xfd, 0xbb, 0x23, 0x87, 0xef,\n\t0x4d, 0x45, 0xad, 0xdc, 0x73, 0x47, 0x5f, 0x23, 0xcf, 0x82, 0xd6, 0x3f, 0x34, 0x3c, 0xcc, 0xcc,\n\t0x88, 0xd1, 0x76, 0x29, 0x00, 0xbd, 0x09, 0xa7, 0x99, 0x43, 0xd1, 0x07, 0xd6, 0xd0, 0x22, 0xcb,\n\t0x2b, 0x66, 0x3b, 0x45, 0x0d, 0xb1, 0xc6, 0x87, 0xa4, 0x6d, 0xdb, 0x66, 0xd6, 0xa2, 0x42, 0xcd,\n\t0x71, 0x86, 0xba, 0xdf, 0x73, 0x3c, 0xac, 0x1b, 0xe6, 0xc7, 0xd4, 0x62, 0x8a, 0x5a, 0xd5, 0x71,\n\t0x86, 0x5d, 0x02, 0x6b, 0x9b, 0x1f, 0xa3, 0x97, 0xa0, 0xda, 0x73, 0x47, 0x3e, 0x0e, 0x74, 0xf2,\n\t0x43, 0xcf, 0xd3, 0x15, 0x0d, 0x18, 0x68, 0xc3, 0x1d, 0xf9, 0x31, 0x84, 0x21, 0x89, 0xd6, 0xe6,\n\t0xe3, 0x08, 0x8f, 0xf0, 0x90, 0x26, 0xa4, 0x0e, 0x47, 0x7d, 0xec, 0x1a, 0x7d, 0xcc, 0x44, 0x13,\n\t0x87, 0x62, 0x29, 0x21, 0xf5, 0x21, 0x47, 0xa1, 0x02, 0x6a, 0xf5, 0xc3, 0xf8, 0xa3, 0x8f, 0x3e,\n\t0x82, 0xf9, 0x91, 0x6d, 0x1d, 0x58, 0xd8, 0x6c, 0x56, 0x28, 0xed, 0xf5, 0x29, 0xee, 0xc5, 0xd7,\n\t0xf7, 0x19, 0x09, 0xbf, 0xa6, 0xe7, 0x0c, 0xd0, 0x1d, 0x68, 0x71, 0x45, 0xf9, 0xcf, 0x0d, 0x37,\n\t0xa9, 0x2d, 0xa0, 0x2a, 0x58, 0x61, 0x18, 0xdd, 0xe7, 0x86, 0x1b, 0xd7, 0x58, 0xeb, 0x0e, 0x2c,\n\t0xc4, 0x99, 0x1e, 0xcb, 0x96, 0xee, 0x43, 0x4d, 0x1a, 0x24, 0x99, 0x6d, 0xaa, 0x14, 0xdf, 0xfa,\n\t0x9e, 0x58, 0x00, 0x65, 0x02, 0xe8, 0x5a, 0xdf, 0xa3, 0x69, 0x44, 0x2a, 0x19, 0xe5, 0x53, 0xd2,\n\t0xd8, 0x83, 0x6a, 0x40, 0x4d, 0xca, 0xdc, 0x11, 0x17, 0x45, 0x53, 0x74, 0xdc, 0x45, 0x91, 0xff,\n\t0x04, 0xe6, 0x39, 0x03, 0x21, 0x01, 0xfd, 0x4f, 0x60, 0x34, 0x47, 0xc4, 0x6e, 0xbc, 0xe9, 0x7f,\n\t0xda, 0x05, 0x7e, 0xc6, 0x13, 0xe2, 0x15, 0x8d, 0x3d, 0xa8, 0x7f, 0xaa, 0x00, 0x6c, 0x18, 0xae,\n\t0xf1, 0xc4, 0x1a, 0x58, 0xc1, 0x11, 0xba, 0x0c, 0x0d, 0xc3, 0x34, 0xf5, 0x9e, 0x80, 0x58, 0x58,\n\t0x54, 0x28, 0x2c, 0x1a, 0xa6, 0xb9, 0x11, 0x03, 0xa3, 0xab, 0xb0, 0x64, 0x7a, 0x8e, 0x2b, 0xe3,\n\t0xb2, 0x92, 0x85, 0x06, 0x69, 0x90, 0x90, 0x6f, 0x41, 0x93, 0xf0, 0x35, 0x86, 0x4f, 0x2c, 0x6c,\n\t0x07, 0x32, 0x0d, 0xab, 0x65, 0x58, 0x31, 0x4c, 0xb3, 0xcd, 0x9a, 0xe3, 0x94, 0xea, 0x3f, 0xcc,\n\t0xc1, 0x39, 0x79, 0xc6, 0x93, 0xc9, 0xd4, 0x3b, 0xb0, 0x90, 0x90, 0x37, 0x95, 0x86, 0x8c, 0x46,\n\t0xa8, 0x49, 0xb8, 0x89, 0x74, 0x61, 0x21, 0x95, 0x2e, 0xcc, 0x4c, 0xd4, 0x16, 0x3f, 0xa3, 0x44,\n\t0x6d, 0xe9, 0x53, 0x26, 0x6a, 0x67, 0x4f, 0x9a, 0xa8, 0x5d, 0x98, 0x3a, 0x51, 0xfb, 0x0a, 0x3d,\n\t0x54, 0x8a, 0x1e, 0xe9, 0xf6, 0xc8, 0x7c, 0x42, 0x2d, 0xe4, 0x6e, 0x8b, 0xb2, 0x99, 0x44, 0x42,\n\t0x77, 0xfe, 0x38, 0x09, 0xdd, 0xf2, 0xd8, 0x84, 0xee, 0x05, 0x58, 0xb0, 0x1d, 0xdd, 0xc6, 0xcf,\n\t0x75, 0x32, 0x2d, 0x7e, 0xb3, 0xca, 0xe6, 0xc8, 0x76, 0x76, 0xf0, 0xf3, 0x0e, 0x81, 0xa0, 0x8b,\n\t0xb0, 0x30, 0x34, 0xfc, 0xa7, 0xd8, 0xa4, 0x99, 0x55, 0xbf, 0x59, 0xa3, 0xf6, 0x54, 0x65, 0xb0,\n\t0x0e, 0x01, 0xa1, 0x97, 0x21, 0x94, 0x83, 0x23, 0xd5, 0x29, 0x52, 0x4d, 0x40, 0x19, 0x5a, 0x2c,\n\t0x39, 0xbc, 0x78, 0xc2, 0xe4, 0x70, 0xe3, 0x38, 0xc9, 0xe1, 0x37, 0xa0, 0x21, 0xfe, 0x8b, 0xec,\n\t0x30, 0xbb, 0xec, 0xa3, 0x89, 0xe1, 0x45, 0xd1, 0x26, 0x32, 0xc0, 0xe3, 0x72, 0xc9, 0x90, 0x9b,\n\t0x4b, 0xfe, 0x89, 0xc2, 0x43, 0xdc, 0x70, 0x01, 0xf1, 0x24, 0x96, 0x94, 0x7f, 0x54, 0x4e, 0x92,\n\t0x7f, 0x44, 0x7b, 0x63, 0x33, 0xb4, 0x97, 0xc7, 0x73, 0x9a, 0x94, 0xa3, 0x55, 0x7f, 0xa0, 0xc0,\n\t0x39, 0x1e, 0x7f, 0x8e, 0xa9, 0x9f, 0xc8, 0x30, 0x4b, 0x65, 0x8c, 0x59, 0xf6, 0x3c, 0x6c, 0x62,\n\t0x3b, 0xb0, 0x8c, 0x81, 0xee, 0xbb, 0xb8, 0x27, 0xb2, 0x32, 0x11, 0x98, 0x46, 0x26, 0x17, 0x61,\n\t0x81, 0x15, 0x1c, 0xf1, 0x30, 0x9b, 0xd5, 0x15, 0x55, 0x69, 0xcd, 0x11, 0x03, 0xa9, 0x0e, 0xac,\n\t0x8e, 0x49, 0x67, 0x65, 0xaa, 0x41, 0x49, 0xab, 0x21, 0x77, 0x4c, 0x69, 0x35, 0xfc, 0x50, 0x81,\n\t0x97, 0x38, 0xc9, 0x58, 0xdf, 0xf7, 0x79, 0x28, 0xe2, 0xaf, 0x95, 0xf0, 0x78, 0x90, 0x34, 0xa9,\n\t0x8d, 0xb4, 0x49, 0xbd, 0x9c, 0xa1, 0x81, 0x7c, 0xa3, 0x7a, 0x3c, 0xd6, 0xa8, 0xae, 0xe6, 0xf1,\n\t0x9a, 0xa8, 0xcf, 0x7f, 0x53, 0xe0, 0xcc, 0x58, 0x01, 0x12, 0xf1, 0x96, 0x92, 0x8c, 0xb7, 0x78,\n\t0xac, 0x16, 0x85, 0xc0, 0x2c, 0x56, 0xa3, 0x51, 0x2e, 0x0f, 0x8a, 0xf4, 0xa1, 0xf1, 0xc2, 0x1a,\n\t0x8e, 0x86, 0x3c, 0x58, 0x23, 0xec, 0x1e, 0x31, 0xc8, 0x49, 0xa2, 0xb5, 0x6b, 0xb0, 0xcc, 0x1c,\n\t0x29, 0x0d, 0x18, 0x22, 0x0a, 0x16, 0xb4, 0x2d, 0xb1, 0x36, 0x12, 0x3b, 0x70, 0x02, 0xb5, 0x0d,\n\t0x4b, 0xe1, 0xb0, 0x72, 0xd3, 0xf9, 0xb1, 0xf4, 0x7c, 0x41, 0x4e, 0xcf, 0xdb, 0x30, 0xb7, 0x89,\n\t0x9f, 0x59, 0x3d, 0xfc, 0x99, 0xd4, 0xe9, 0x5d, 0x80, 0xaa, 0x8b, 0xbd, 0xa1, 0xe5, 0xfb, 0xe1,\n\t0xae, 0x59, 0xd1, 0xe2, 0x20, 0xf5, 0x27, 0x73, 0xb0, 0x98, 0x34, 0xa1, 0xdb, 0xa9, 0x6a, 0x80,\n\t0x73, 0x99, 0xa7, 0xd6, 0x8c, 0xeb, 0x9a, 0xab, 0xe2, 0x78, 0x51, 0x48, 0xa7, 0xca, 0xc2, 0x23,\n\t0x84, 0x38, 0x75, 0x34, 0x61, 0xbe, 0xe7, 0x0c, 0x87, 0x86, 0x6d, 0x8a, 0x62, 0x4a, 0xfe, 0x48,\n\t0x74, 0x66, 0x78, 0x7d, 0x76, 0x51, 0x53, 0xd1, 0xe8, 0x7f, 0x32, 0xc3, 0xe4, 0xc4, 0x68, 0xd9,\n\t0xb4, 0x9e, 0x80, 0x4e, 0x42, 0x45, 0x03, 0x0e, 0xda, 0xb4, 0x3c, 0xf4, 0x1a, 0x94, 0xb0, 0xfd,\n\t0x4c, 0xdc, 0xe0, 0x4a, 0x17, 0x06, 0xe2, 0x48, 0xa1, 0x51, 0x0c, 0x74, 0x19, 0xe6, 0x86, 0xc4,\n\t0x6a, 0x44, 0xce, 0x69, 0x29, 0x55, 0x74, 0xa8, 0x71, 0x04, 0xf4, 0x3a, 0xcc, 0x9b, 0x74, 0x3e,\n\t0x44, 0x0c, 0x8d, 0xa4, 0xca, 0x04, 0xda, 0xa4, 0x09, 0x14, 0xf4, 0x7e, 0x78, 0x5b, 0x55, 0x49,\n\t0x5f, 0x23, 0x27, 0xd4, 0x9c, 0x79, 0x51, 0xb5, 0x23, 0x1f, 0xc4, 0x20, 0x7d, 0xe7, 0x95, 0xe4,\n\t0x92, 0x7f, 0x23, 0x7d, 0x06, 0xca, 0x03, 0xa7, 0xcf, 0x8c, 0xa3, 0xca, 0x2a, 0x71, 0x07, 0x4e,\n\t0x9f, 0xda, 0xc6, 0x32, 0xcc, 0xfa, 0x81, 0x69, 0xd9, 0x34, 0x14, 0x29, 0x6b, 0xec, 0x81, 0xac,\n\t0x41, 0xfa, 0x47, 0x77, 0xec, 0x1e, 0x6e, 0xd6, 0x68, 0x53, 0x85, 0x42, 0x76, 0xed, 0x1e, 0x3d,\n\t0x92, 0x05, 0xc1, 0x51, 0xb3, 0x4e, 0xe1, 0xe4, 0x6f, 0x74, 0x69, 0xb4, 0x38, 0xe6, 0xd2, 0x28,\n\t0x21, 0x70, 0xc6, 0xa5, 0x51, 0x63, 0xec, 0xa5, 0x51, 0x92, 0xf6, 0x8b, 0x50, 0xb4, 0xf0, 0xb7,\n\t0x0a, 0xac, 0x6c, 0xd0, 0xcc, 0x43, 0xcc, 0x85, 0x1d, 0x27, 0x91, 0xfe, 0x56, 0x58, 0xdd, 0x90,\n\t0x91, 0xa2, 0x4e, 0x8e, 0x58, 0x14, 0x37, 0x6c, 0x40, 0x5d, 0xb0, 0xe5, 0xc4, 0xc5, 0x29, 0x4a,\n\t0x23, 0x6a, 0x7e, 0xfc, 0x51, 0xbd, 0x0b, 0xab, 0x29, 0xc9, 0xf9, 0xfd, 0x6f, 0xb2, 0x4c, 0x96,\n\t0x09, 0x1e, 0x2f, 0x93, 0x55, 0xef, 0xc0, 0xe9, 0x6e, 0x60, 0x78, 0x41, 0x6a, 0xd8, 0x53, 0xd0,\n\t0xd2, 0xa2, 0x07, 0x99, 0x96, 0xd7, 0x25, 0x74, 0x61, 0xb9, 0x1b, 0x38, 0xee, 0x09, 0x98, 0x12,\n\t0xff, 0x41, 0x46, 0xee, 0x8c, 0xc4, 0x76, 0x20, 0x1e, 0xd5, 0x55, 0x56, 0xa2, 0x91, 0xee, 0xed,\n\t0x2b, 0xb0, 0xc2, 0x2a, 0x24, 0x4e, 0x32, 0x88, 0x33, 0xa2, 0x3e, 0x23, 0xcd, 0xf7, 0x01, 0x9c,\n\t0x92, 0x2e, 0xf3, 0x78, 0xf6, 0xf2, 0xba, 0x9c, 0xbd, 0x1c, 0x7f, 0xf9, 0x17, 0x26, 0x2f, 0x7f,\n\t0x54, 0x88, 0xf9, 0xe3, 0x31, 0x29, 0x8c, 0xb7, 0xe5, 0xdc, 0xe5, 0x4b, 0xe3, 0xb9, 0x4a, 0xa9,\n\t0xcb, 0xb4, 0x75, 0x16, 0x33, 0xac, 0x73, 0x3f, 0x95, 0x1f, 0x29, 0xa5, 0xf3, 0xc1, 0x09, 0x09,\n\t0x7f, 0x2f, 0x99, 0x91, 0x87, 0x2c, 0xbf, 0x19, 0x76, 0x1d, 0x26, 0x45, 0xde, 0x4a, 0x24, 0x45,\n\t0xd6, 0x72, 0x24, 0x0d, 0xd3, 0x21, 0x3f, 0x2a, 0x41, 0x25, 0x6c, 0x4b, 0x69, 0x38, 0xad, 0xaa,\n\t0x42, 0x86, 0xaa, 0xe2, 0xfb, 0x64, 0xf1, 0x84, 0xfb, 0x64, 0x69, 0x8a, 0x7d, 0x72, 0x0d, 0x2a,\n\t0xf4, 0x0f, 0x2d, 0x13, 0x65, 0xfb, 0x5e, 0x99, 0x02, 0x34, 0x7c, 0x10, 0x99, 0xd8, 0xdc, 0x94,\n\t0x26, 0x96, 0xc8, 0xa5, 0xce, 0x27, 0x73, 0xa9, 0xb7, 0xc3, 0x3d, 0xac, 0x9c, 0xbe, 0xdc, 0x0d,\n\t0x39, 0x66, 0xee, 0x5e, 0x89, 0x6b, 0xc4, 0x4a, 0xfa, 0x1a, 0x31, 0xa2, 0xff, 0xc2, 0xe6, 0x56,\n\t0x76, 0x59, 0x82, 0x34, 0x6e, 0x67, 0xdc, 0x47, 0xbe, 0x2d, 0xdd, 0xe7, 0x2b, 0xe9, 0x4a, 0xfd,\n\t0xc8, 0x2f, 0xc4, 0xaf, 0xf2, 0xf7, 0x61, 0x45, 0x9a, 0x88, 0xa8, 0xf0, 0x6a, 0x3a, 0x1f, 0x37,\n\t0xa6, 0xea, 0xea, 0x8f, 0xe3, 0x91, 0xdb, 0x98, 0x12, 0xa3, 0xdb, 0xa9, 0xcc, 0xdb, 0xd4, 0x16,\n\t0x7a, 0x5d, 0x4e, 0xd2, 0x1f, 0xdb, 0xae, 0x52, 0x39, 0x7a, 0x1a, 0x59, 0x18, 0x1e, 0x6f, 0x66,\n\t0x31, 0x74, 0x85, 0x43, 0xda, 0x34, 0x80, 0x3f, 0xb0, 0x6c, 0xcb, 0x3f, 0x64, 0xed, 0x73, 0x2c,\n\t0x80, 0x17, 0xa0, 0x36, 0xbd, 0xbc, 0xc3, 0x2f, 0xac, 0x40, 0xef, 0x39, 0x26, 0xa6, 0x56, 0x3b,\n\t0xab, 0x95, 0x09, 0x60, 0xc3, 0x31, 0x71, 0xb4, 0x9e, 0xca, 0xc7, 0x5d, 0x4f, 0x95, 0xc4, 0x7a,\n\t0x5a, 0x81, 0x39, 0x0f, 0x1b, 0xbe, 0x63, 0xb3, 0x33, 0xbd, 0xc6, 0x9f, 0xc8, 0x44, 0x0c, 0xb1,\n\t0xef, 0x93, 0x3e, 0x78, 0x20, 0xc5, 0x1f, 0x63, 0x41, 0xdf, 0x42, 0x4e, 0xd0, 0x97, 0x53, 0xc0,\n\t0x94, 0x08, 0xfa, 0x6a, 0x39, 0x41, 0xdf, 0x54, 0xf5, 0x4b, 0x51, 0x78, 0x5b, 0x9f, 0x14, 0xde,\n\t0xc6, 0xe3, 0xc3, 0x45, 0x39, 0x3e, 0xbc, 0x1b, 0x3f, 0x48, 0x36, 0xd2, 0x69, 0xdb, 0xfc, 0xb2,\n\t0xe8, 0xcf, 0x71, 0x01, 0xff, 0x8b, 0x02, 0xab, 0xa9, 0x05, 0xc7, 0x97, 0xf0, 0x5b, 0x89, 0xca,\n\t0xa8, 0xb5, 0x1c, 0x2d, 0x87, 0x85, 0x51, 0x6d, 0xa9, 0x30, 0xea, 0x8d, 0x3c, 0x92, 0xcf, 0xbc,\n\t0x2e, 0xea, 0xfb, 0x0a, 0xa0, 0x8c, 0xa3, 0xf2, 0x6d, 0x11, 0x75, 0x1f, 0xe3, 0xd2, 0x88, 0x07,\n\t0xde, 0xef, 0x47, 0x81, 0x77, 0xe1, 0x38, 0xd7, 0x03, 0x61, 0xc2, 0xf6, 0x57, 0x05, 0x78, 0x69,\n\t0xdf, 0x35, 0x13, 0x61, 0x24, 0xc7, 0x9a, 0xde, 0xb3, 0xdd, 0x96, 0xb3, 0xcd, 0x27, 0x1c, 0x42,\n\t0xf1, 0x24, 0x43, 0x40, 0xdf, 0xc9, 0xaa, 0x07, 0xb8, 0x2b, 0xe5, 0xd3, 0xf2, 0x07, 0xf8, 0x3b,\n\t0xce, 0x82, 0xa9, 0x70, 0x61, 0xbc, 0x00, 0x3c, 0xe4, 0xfc, 0xbf, 0xb0, 0xb8, 0xf5, 0x02, 0xf7,\n\t0xba, 0x47, 0x76, 0xef, 0x18, 0x5a, 0x6f, 0x40, 0xb1, 0x37, 0x34, 0x79, 0x92, 0x80, 0xfc, 0x8d,\n\t0x47, 0xd1, 0x45, 0x39, 0x8a, 0xd6, 0xa1, 0x11, 0xf5, 0xc0, 0x17, 0xd0, 0x0a, 0x59, 0x40, 0x26,\n\t0x41, 0x26, 0xcc, 0x17, 0x34, 0xfe, 0xc4, 0xe1, 0xd8, 0x63, 0x35, 0xd7, 0x0c, 0x8e, 0x3d, 0x4f,\n\t0xf6, 0xda, 0x45, 0xd9, 0x6b, 0xab, 0x3f, 0x56, 0xa0, 0x4a, 0x7a, 0xf8, 0x54, 0xf2, 0xf3, 0x23,\n\t0x69, 0x31, 0x3a, 0x92, 0x86, 0x27, 0xdb, 0x52, 0xfc, 0x64, 0x1b, 0x49, 0x3e, 0x4b, 0xc1, 0x69,\n\t0xc9, 0xe7, 0x42, 0x38, 0xf6, 0x3c, 0xf5, 0x02, 0x2c, 0x30, 0xd9, 0xf8, 0xc8, 0x1b, 0x50, 0x1c,\n\t0x79, 0x03, 0x31, 0x7f, 0x23, 0x6f, 0xa0, 0xfe, 0xa1, 0x02, 0xb5, 0x76, 0x10, 0x18, 0xbd, 0xc3,\n\t0x63, 0x0c, 0x20, 0x14, 0xae, 0x10, 0x17, 0x2e, 0x3d, 0x88, 0x48, 0xdc, 0xd2, 0x18, 0x71, 0x67,\n\t0x25, 0x71, 0x55, 0xa8, 0x0b, 0x59, 0xc6, 0x0a, 0xbc, 0x03, 0xa8, 0xe3, 0x78, 0xc1, 0x07, 0x8e,\n\t0xf7, 0xdc, 0xf0, 0xcc, 0xe3, 0x9d, 0x5a, 0x11, 0x94, 0xf8, 0x3b, 0xa9, 0xc5, 0xd7, 0x66, 0x35,\n\t0xfa, 0x5f, 0x7d, 0x15, 0x4e, 0x49, 0xfc, 0xc6, 0x76, 0x7c, 0x07, 0xaa, 0x74, 0x17, 0xe6, 0x07,\n\t0x9a, 0xab, 0xf1, 0x24, 0xf4, 0x84, 0xdd, 0x5a, 0xdd, 0x84, 0x25, 0x12, 0x8f, 0x51, 0x78, 0xe8,\n\t0x5f, 0xae, 0x25, 0x62, 0xfe, 0xd5, 0x14, 0x8b, 0x44, 0xbc, 0xff, 0x1b, 0x05, 0x66, 0x29, 0x3c,\n\t0x15, 0x23, 0xad, 0x91, 0x7d, 0xce, 0x75, 0xf4, 0xc0, 0xe8, 0x87, 0xef, 0xfb, 0x12, 0xc0, 0x9e,\n\t0xd1, 0xa7, 0x89, 0x0d, 0xda, 0x68, 0x5a, 0x7d, 0xec, 0x07, 0x22, 0x51, 0x56, 0x25, 0xb0, 0x4d,\n\t0x06, 0x22, 0x8a, 0xa1, 0xf9, 0xc4, 0x12, 0x4d, 0x1b, 0xd2, 0xff, 0xe8, 0x35, 0xf6, 0xba, 0x4e,\n\t0x7e, 0x76, 0x88, 0xbe, 0xc6, 0xd3, 0x82, 0x72, 0x22, 0xad, 0x13, 0x3e, 0xa3, 0xcb, 0x50, 0xa2,\n\t0xd7, 0xc4, 0xf3, 0x79, 0x5a, 0xa2, 0x28, 0xc4, 0x2a, 0x5c, 0xcb, 0xb6, 0xb1, 0x49, 0x03, 0xa0,\n\t0xb2, 0xc6, 0x9f, 0xd4, 0xf7, 0x01, 0xc5, 0x95, 0xc7, 0x27, 0xe8, 0x32, 0xcc, 0x51, 0xdd, 0x8a,\n\t0x20, 0x76, 0x29, 0xc5, 0x5a, 0xe3, 0x08, 0xea, 0xb7, 0x01, 0xb1, 0xbe, 0xa4, 0xc0, 0xf5, 0x38,\n\t0x13, 0x98, 0x13, 0xc2, 0xfe, 0x8d, 0x02, 0xa7, 0x24, 0xee, 0x5c, 0xbe, 0x57, 0x65, 0xf6, 0x19,\n\t0xe2, 0x71, 0xd6, 0xef, 0x4a, 0x3b, 0xf3, 0xe5, 0xb4, 0x18, 0xbf, 0xa3, 0x5d, 0xf9, 0xe7, 0x0a,\n\t0x40, 0x7b, 0x14, 0x1c, 0xf2, 0x0b, 0xd3, 0xf8, 0x24, 0x2a, 0x89, 0x49, 0x6c, 0x41, 0xd9, 0x35,\n\t0x7c, 0xff, 0xb9, 0xe3, 0x89, 0x43, 0x64, 0xf8, 0x4c, 0xaf, 0x39, 0x47, 0xfc, 0xb5, 0xe3, 0x8a,\n\t0x46, 0xff, 0xa3, 0x97, 0xa1, 0xce, 0x5e, 0x44, 0xd7, 0x0d, 0xd3, 0xf4, 0x44, 0xbd, 0x51, 0x45,\n\t0xab, 0x31, 0x68, 0x9b, 0x01, 0x09, 0x9a, 0x45, 0x93, 0x06, 0xc1, 0x91, 0x1e, 0x38, 0x4f, 0xb1,\n\t0xcd, 0x0f, 0x86, 0x35, 0x01, 0xdd, 0x23, 0x40, 0x96, 0x75, 0xeb, 0x5b, 0x7e, 0xe0, 0x09, 0x34,\n\t0x91, 0x3b, 0xe4, 0x50, 0x8a, 0xa6, 0xfe, 0x95, 0x02, 0x8d, 0xce, 0x68, 0x30, 0x60, 0xca, 0x3d,\n\t0xc9, 0x24, 0x5f, 0xe1, 0x43, 0x29, 0xa4, 0x4d, 0x3e, 0x52, 0x14, 0x1f, 0xe2, 0x67, 0x72, 0x97,\n\t0x75, 0x1d, 0x96, 0x62, 0x12, 0x73, 0xc3, 0x91, 0x22, 0x7b, 0x45, 0x8e, 0xec, 0xd5, 0x36, 0x20,\n\t0x76, 0x7d, 0x73, 0xe2, 0x51, 0xaa, 0xa7, 0xe1, 0x94, 0xc4, 0x82, 0x6f, 0xc5, 0x57, 0xa0, 0xc6,\n\t0xeb, 0x99, 0xb8, 0x41, 0x9c, 0x81, 0x32, 0x71, 0xa9, 0x3d, 0xcb, 0x14, 0x85, 0x02, 0xf3, 0xae,\n\t0x63, 0x6e, 0x58, 0xa6, 0xa7, 0x7e, 0x0d, 0x6a, 0xfc, 0x1d, 0x4e, 0x8e, 0x7b, 0x0f, 0xea, 0xbc,\n\t0xc8, 0x4c, 0x97, 0x5e, 0x7a, 0x3a, 0x93, 0x51, 0x54, 0x25, 0x54, 0x61, 0xc7, 0x1f, 0xd5, 0xef,\n\t0x40, 0x8b, 0x45, 0x0b, 0x12, 0x63, 0x31, 0xc0, 0x7b, 0x20, 0xaa, 0x8f, 0x73, 0xf8, 0xcb, 0x94,\n\t0x35, 0x2f, 0xfe, 0xa8, 0x9e, 0x83, 0xb5, 0x4c, 0xfe, 0x7c, 0xf4, 0x2e, 0x34, 0xa2, 0x06, 0xf6,\n\t0x66, 0x4e, 0x58, 0xfd, 0xa0, 0xc4, 0xaa, 0x1f, 0x56, 0xc2, 0xd8, 0xbb, 0x20, 0x76, 0x2e, 0x1a,\n\t0x5e, 0x47, 0x27, 0xae, 0xe2, 0xb8, 0x13, 0x57, 0x49, 0x3a, 0x71, 0xa9, 0x8f, 0x42, 0x1d, 0xf2,\n\t0x73, 0xef, 0x5d, 0x7a, 0x32, 0x67, 0x7d, 0x0b, 0xa7, 0x76, 0x36, 0x7b, 0x7c, 0x0c, 0x49, 0x8b,\n\t0xe1, 0xab, 0x97, 0xa1, 0x26, 0xbb, 0xb7, 0x98, 0xc7, 0x52, 0x52, 0x1e, 0xab, 0x9e, 0x70, 0x56,\n\t0x6f, 0x26, 0x8e, 0x14, 0x59, 0x7a, 0x4d, 0x1c, 0x28, 0x6e, 0x49, 0x6e, 0xeb, 0x4b, 0x52, 0xa6,\n\t0xfa, 0x77, 0xe4, 0xb1, 0x96, 0xb9, 0x1f, 0xff, 0xc0, 0x27, 0xf4, 0x7c, 0xa0, 0xea, 0x25, 0xa8,\n\t0xee, 0x8f, 0x7b, 0x93, 0xbe, 0x24, 0xca, 0xab, 0xde, 0x81, 0xe5, 0x0f, 0xac, 0x01, 0xf6, 0x8f,\n\t0xfc, 0x00, 0x0f, 0xb7, 0xa9, 0x7b, 0x39, 0xb0, 0xb0, 0x87, 0xce, 0x03, 0xd0, 0x53, 0xa4, 0xeb,\n\t0x58, 0xe1, 0xdb, 0xc3, 0x31, 0x88, 0xfa, 0x4b, 0x05, 0x16, 0x23, 0xc2, 0x69, 0x0a, 0xdd, 0xde,\n\t0x86, 0xd9, 0x03, 0x5f, 0xdc, 0xb6, 0x25, 0x72, 0x09, 0x59, 0x22, 0x68, 0xa5, 0x03, 0x7f, 0xdb,\n\t0x44, 0xef, 0x00, 0x8c, 0x7c, 0x6c, 0xf2, 0xec, 0xdc, 0x84, 0x72, 0xbf, 0x0a, 0x41, 0x65, 0xf9,\n\t0xbd, 0x5b, 0x50, 0xb5, 0x6c, 0xc7, 0xc4, 0x34, 0x73, 0x6b, 0x4e, 0x2a, 0xf9, 0x03, 0x86, 0xbb,\n\t0xef, 0x63, 0x53, 0xd5, 0xf9, 0xbe, 0x25, 0xb4, 0xc9, 0x4d, 0xe1, 0x43, 0x58, 0x62, 0xee, 0xe7,\n\t0x20, 0x14, 0x36, 0xb3, 0xa0, 0x3a, 0xa1, 0x15, 0xad, 0x61, 0xf1, 0x88, 0x45, 0x10, 0xa9, 0x77,\n\t0xe0, 0x74, 0xa2, 0x38, 0x74, 0xfa, 0x6b, 0xea, 0x8f, 0x12, 0xf7, 0x4d, 0x91, 0xa9, 0x5e, 0x97,\n\t0x0b, 0xeb, 0xf3, 0x6a, 0x51, 0x79, 0x8d, 0xf7, 0x3e, 0x9c, 0x91, 0x2e, 0xc3, 0x24, 0x59, 0x6e,\n\t0x25, 0x82, 0xb0, 0x0b, 0xe3, 0xf9, 0x25, 0xa2, 0xb1, 0xff, 0x54, 0x60, 0x39, 0x0b, 0xe1, 0x84,\n\t0x17, 0xb1, 0xdf, 0x1a, 0xf3, 0x52, 0xce, 0x5b, 0x93, 0x04, 0xfa, 0xbd, 0x5c, 0x5c, 0xef, 0xb0,\n\t0x92, 0xfe, 0xc9, 0x73, 0x52, 0x9c, 0x6e, 0x4e, 0x7e, 0x53, 0x88, 0x25, 0x1b, 0x72, 0xca, 0xee,\n\t0x3f, 0xc5, 0xe5, 0xdf, 0x46, 0xa2, 0xea, 0xfe, 0x6a, 0x26, 0xe1, 0x84, 0xa2, 0x7b, 0x2d, 0xeb,\n\t0x90, 0x7d, 0x7d, 0x12, 0xa7, 0x2f, 0xec, 0xbd, 0xf0, 0x7f, 0x29, 0x50, 0x97, 0x27, 0x04, 0xbd,\n\t0x9f, 0x51, 0x72, 0xff, 0xd2, 0x84, 0x01, 0x4a, 0x15, 0xf7, 0xbc, 0xc4, 0xbd, 0x30, 0x7d, 0x89,\n\t0x7b, 0x71, 0xba, 0x12, 0xf7, 0xfb, 0x50, 0x7f, 0xee, 0x59, 0x81, 0xf1, 0x64, 0x80, 0xf5, 0x81,\n\t0x71, 0x84, 0x3d, 0xee, 0xdd, 0x72, 0xdd, 0x50, 0x4d, 0x90, 0x3c, 0x24, 0x14, 0xea, 0xdf, 0x29,\n\t0x50, 0x16, 0x62, 0x4c, 0x2c, 0x32, 0x5f, 0x1d, 0x11, 0x34, 0x9d, 0x16, 0xb6, 0xda, 0x86, 0xed,\n\t0xe8, 0x3e, 0x26, 0x3b, 0xec, 0xc4, 0x92, 0xed, 0x65, 0x4a, 0xb7, 0xe1, 0x78, 0x78, 0xc7, 0xb0,\n\t0x9d, 0x2e, 0x23, 0x42, 0x6d, 0x68, 0x30, 0x7e, 0x94, 0x15, 0x61, 0x3a, 0xd1, 0xaf, 0xd7, 0x29,\n\t0x01, 0x61, 0x42, 0x98, 0xf9, 0xea, 0x9f, 0x17, 0xa1, 0x1a, 0xd3, 0xcc, 0x84, 0x01, 0x6c, 0xc0,\n\t0x92, 0x28, 0x2e, 0xf0, 0x71, 0x30, 0x5d, 0xb5, 0xf9, 0x22, 0xa7, 0xe8, 0xe2, 0x80, 0xed, 0x27,\n\t0xf7, 0x60, 0xd1, 0x78, 0x66, 0x58, 0x03, 0xaa, 0xf5, 0xa9, 0x36, 0xa3, 0x7a, 0x88, 0x1f, 0xee,\n\t0x48, 0x6c, 0xdc, 0x53, 0x15, 0xa1, 0x03, 0xc5, 0x8d, 0x2a, 0xde, 0x7d, 0x3f, 0x56, 0xa0, 0x92,\n\t0x5b, 0xf1, 0xee, 0xfb, 0x61, 0x7f, 0xb4, 0x20, 0x96, 0xd6, 0xf8, 0xfb, 0xfc, 0xdd, 0xdd, 0xf1,\n\t0xfd, 0x11, 0xdc, 0x0f, 0x28, 0x2a, 0x51, 0xd8, 0xd0, 0xf8, 0xd8, 0xf1, 0xf4, 0x38, 0xfd, 0xfc,\n\t0x04, 0x85, 0x51, 0x8a, 0x4e, 0xc8, 0x44, 0x7d, 0x0f, 0xce, 0x68, 0xd8, 0x71, 0xb1, 0x1d, 0xae,\n\t0x93, 0x87, 0x4e, 0xff, 0x18, 0x3b, 0xdd, 0x59, 0x68, 0x65, 0xd1, 0xf3, 0xb8, 0x74, 0x04, 0xad,\n\t0x8d, 0x43, 0xdc, 0x7b, 0x4a, 0xa3, 0x91, 0x93, 0xe4, 0x97, 0x5b, 0x50, 0x1e, 0x38, 0x3d, 0xf6,\n\t0x75, 0x2a, 0x7e, 0x74, 0x13, 0xcf, 0x39, 0xb7, 0x66, 0xe7, 0x60, 0x2d, 0xb3, 0x5b, 0x2e, 0x15,\n\t0x82, 0xc6, 0x03, 0x1c, 0x6c, 0x3d, 0xc3, 0x76, 0xb8, 0x91, 0xaa, 0xff, 0xa3, 0xc4, 0xb6, 0x6c,\n\t0xda, 0x74, 0x8c, 0xbc, 0x3c, 0xea, 0xc0, 0x72, 0x84, 0x82, 0x09, 0x35, 0xfb, 0x3a, 0x0d, 0xfb,\n\t0xae, 0x53, 0xf6, 0x9d, 0x3d, 0xed, 0x84, 0x7e, 0x94, 0x06, 0xf5, 0x52, 0xb0, 0x44, 0x26, 0xa7,\n\t0x98, 0xcc, 0xe4, 0x74, 0x60, 0x39, 0xbe, 0x29, 0x87, 0x9b, 0x4c, 0x69, 0xaa, 0x77, 0xbb, 0x90,\n\t0x9b, 0x82, 0x5d, 0x79, 0x05, 0xca, 0xe2, 0x83, 0x68, 0x68, 0x1e, 0x8a, 0x7b, 0x1b, 0x9d, 0xc6,\n\t0x0c, 0xf9, 0xb3, 0xbf, 0xd9, 0x69, 0x28, 0xa8, 0x0c, 0xa5, 0xee, 0xc6, 0x5e, 0xa7, 0x51, 0xb8,\n\t0x32, 0x84, 0x46, 0xf2, 0x9b, 0x60, 0x68, 0x15, 0x4e, 0x75, 0xb4, 0xdd, 0x4e, 0xfb, 0x41, 0x7b,\n\t0x6f, 0x7b, 0x77, 0x47, 0xef, 0x68, 0xdb, 0x8f, 0xdb, 0x7b, 0x5b, 0x8d, 0x19, 0x74, 0x11, 0xce,\n\t0xc5, 0x1b, 0x3e, 0xdc, 0xed, 0xee, 0xe9, 0x7b, 0xbb, 0xfa, 0xc6, 0xee, 0xce, 0x5e, 0x7b, 0x7b,\n\t0x67, 0x4b, 0x6b, 0x28, 0xe8, 0x1c, 0x9c, 0x89, 0xa3, 0xdc, 0xdf, 0xde, 0xdc, 0xd6, 0xb6, 0x36,\n\t0xc8, 0xff, 0xf6, 0xc3, 0x46, 0xe1, 0xca, 0xbb, 0x50, 0x93, 0x3e, 0x6e, 0x45, 0x44, 0xea, 0xec,\n\t0x6e, 0x36, 0x66, 0x50, 0x0d, 0x2a, 0x71, 0x3e, 0x65, 0x28, 0xed, 0xec, 0x6e, 0x6e, 0x35, 0x0a,\n\t0x08, 0x60, 0x6e, 0xaf, 0xad, 0x3d, 0xd8, 0xda, 0x6b, 0x14, 0xaf, 0xdc, 0x49, 0xbe, 0xa4, 0x85,\n\t0xd1, 0x12, 0xd4, 0xba, 0xed, 0x9d, 0xcd, 0xfb, 0xbb, 0xdf, 0xd0, 0xb5, 0xad, 0xf6, 0xe6, 0x37,\n\t0x1b, 0x33, 0x68, 0x19, 0x1a, 0x02, 0xb4, 0xb3, 0xbb, 0xc7, 0xa0, 0xca, 0x95, 0xa7, 0x89, 0xcd,\n\t0x06, 0xa3, 0xd3, 0xb0, 0x14, 0x76, 0xa9, 0x6f, 0x68, 0x5b, 0xed, 0xbd, 0x2d, 0x22, 0x89, 0x04,\n\t0xd6, 0xf6, 0x77, 0x76, 0xb6, 0x77, 0x1e, 0x34, 0x14, 0xc2, 0x35, 0x02, 0x6f, 0x7d, 0x63, 0x9b,\n\t0x20, 0x17, 0x64, 0xe4, 0xfd, 0x9d, 0xaf, 0xee, 0xec, 0x7e, 0x7d, 0xa7, 0x51, 0xbc, 0xf2, 0xff,\n\t0xe3, 0x49, 0x86, 0xc8, 0x0c, 0xd6, 0x60, 0x35, 0xd5, 0xa3, 0xbe, 0xf5, 0x78, 0x6b, 0x67, 0xaf,\n\t0x31, 0x23, 0x37, 0x76, 0xf7, 0xda, 0x5a, 0xd4, 0xa8, 0x24, 0x1b, 0x77, 0x3b, 0x9d, 0xb0, 0xb1,\n\t0x20, 0x37, 0x6e, 0x6e, 0x3d, 0xdc, 0x8a, 0x28, 0x8b, 0x37, 0x7e, 0x1a, 0x7d, 0xe3, 0xa8, 0x8b,\n\t0x3d, 0x5a, 0x08, 0xb7, 0x09, 0xf3, 0xe2, 0x8b, 0x7f, 0x52, 0x74, 0x24, 0x7f, 0xa1, 0xb0, 0xb5,\n\t0x96, 0xd9, 0xc6, 0x57, 0xdd, 0x0c, 0x7a, 0x4c, 0xcf, 0x8c, 0xb1, 0x37, 0x9a, 0x2f, 0x24, 0xce,\n\t0x69, 0xa9, 0x17, 0xa7, 0x5b, 0x17, 0x73, 0x30, 0x42, 0xbe, 0xdf, 0x24, 0x07, 0xc2, 0xf8, 0xe7,\n\t0x3c, 0xd0, 0x45, 0xf9, 0x3c, 0x97, 0xf1, 0xa5, 0x90, 0x96, 0x9a, 0x87, 0x12, 0xb2, 0xd6, 0xa1,\n\t0x91, 0xfc, 0x9c, 0x07, 0x92, 0xd2, 0x24, 0x63, 0xbe, 0x16, 0xd2, 0xfa, 0x52, 0x3e, 0x52, 0xbc,\n\t0x83, 0xd4, 0x57, 0x2a, 0x2e, 0xe5, 0xbf, 0xf7, 0x9f, 0xd1, 0xc1, 0xb8, 0x8f, 0x03, 0x30, 0xe5,\n\t0xc8, 0x2f, 0x9d, 0xa2, 0xc4, 0x87, 0x21, 0x32, 0xde, 0x57, 0x97, 0x95, 0x93, 0xfd, 0xae, 0xb2,\n\t0x3a, 0x83, 0xfe, 0x0f, 0x2c, 0x26, 0x6a, 0x99, 0x90, 0x44, 0x98, 0x5d, 0xa2, 0xd5, 0xba, 0x94,\n\t0x8b, 0x23, 0xcf, 0x6a, 0xbc, 0x5e, 0x29, 0x39, 0xab, 0x19, 0x75, 0x50, 0xc9, 0x59, 0xcd, 0x2c,\n\t0x77, 0xa2, 0x86, 0x28, 0xd5, 0x26, 0xc9, 0x86, 0x98, 0x55, 0x0b, 0xd5, 0xba, 0x98, 0x83, 0x11,\n\t0x57, 0x48, 0xa2, 0x3a, 0x49, 0x56, 0x48, 0x76, 0xdd, 0x53, 0xeb, 0x52, 0x2e, 0x4e, 0x72, 0x26,\n\t0xa3, 0xaa, 0x88, 0xf4, 0x4c, 0xa6, 0x2a, 0x73, 0xd2, 0x33, 0x99, 0x2e, 0xaa, 0xe0, 0x33, 0x99,\n\t0xa8, 0x63, 0x50, 0x73, 0x73, 0xac, 0x59, 0x33, 0x99, 0x9d, 0x87, 0x55, 0x67, 0xd0, 0x73, 0x68,\n\t0x8e, 0x4b, 0xa5, 0xa1, 0xab, 0xc7, 0xc8, 0xf8, 0xb5, 0x5e, 0x9f, 0x0e, 0x39, 0xec, 0x18, 0x03,\n\t0x4a, 0x07, 0x27, 0xe8, 0x65, 0x59, 0xdd, 0x63, 0x82, 0x9f, 0xd6, 0x2b, 0x93, 0xd0, 0xc2, 0x6e,\n\t0x1e, 0x40, 0x59, 0x24, 0xe9, 0x90, 0xe4, 0x02, 0x13, 0xc9, 0xc1, 0xd6, 0xd9, 0xec, 0xc6, 0x90,\n\t0xd1, 0x57, 0xa0, 0x44, 0xa0, 0x68, 0x35, 0x89, 0x27, 0x18, 0x34, 0xd3, 0x0d, 0x21, 0x71, 0x1b,\n\t0xe6, 0x58, 0xf6, 0x09, 0x49, 0xd7, 0x5f, 0x52, 0x76, 0xac, 0xd5, 0xca, 0x6a, 0x0a, 0x59, 0x74,\n\t0xd8, 0xf7, 0x53, 0x79, 0x32, 0x09, 0x9d, 0x4f, 0x7e, 0xc8, 0x4b, 0xce, 0x5a, 0xb5, 0x5e, 0x1a,\n\t0xdb, 0x1e, 0xb7, 0xd9, 0xc4, 0x81, 0xed, 0x62, 0xce, 0xe9, 0x3a, 0xcb, 0x66, 0xb3, 0xcf, 0xec,\n\t0x6c, 0x72, 0xd3, 0x67, 0x7a, 0x79, 0x72, 0xc7, 0xde, 0x9b, 0xc8, 0x93, 0x3b, 0xfe, 0x6a, 0x80,\n\t0x2d, 0x8d, 0xe4, 0x5b, 0xd1, 0x6a, 0xde, 0x9b, 0xf9, 0x59, 0x4b, 0x63, 0xcc, 0x1b, 0xff, 0xea,\n\t0x0c, 0x3a, 0x84, 0x53, 0x19, 0x9f, 0x04, 0x40, 0xaf, 0x8c, 0xf7, 0xbf, 0x52, 0x2f, 0xaf, 0x4e,\n\t0xc4, 0x8b, 0xf7, 0x94, 0x71, 0x83, 0x2c, 0xf7, 0x34, 0xfe, 0x0a, 0x5b, 0xee, 0x29, 0xef, 0x2a,\n\t0x9a, 0x1a, 0x22, 0xf7, 0x21, 0x67, 0xb2, 0xae, 0x55, 0x33, 0x0c, 0x31, 0xe5, 0x31, 0x0e, 0xe1,\n\t0x54, 0x46, 0x00, 0x2f, 0x0b, 0x3b, 0xfe, 0x60, 0x21, 0x0b, 0x9b, 0x77, 0x12, 0x98, 0x41, 0xdf,\n\t0x02, 0xf4, 0x00, 0x07, 0x72, 0xe4, 0xe5, 0x23, 0x69, 0xa1, 0x26, 0xcf, 0x0a, 0x63, 0xec, 0x53,\n\t0x3a, 0x34, 0xa8, 0x33, 0xd7, 0x95, 0x1b, 0x7f, 0x56, 0x84, 0x05, 0x96, 0xbf, 0xe0, 0x61, 0xd4,\n\t0x23, 0x80, 0x28, 0x15, 0x88, 0xce, 0x25, 0x27, 0x4f, 0xca, 0xaf, 0xb6, 0xce, 0x8f, 0x6b, 0x8e,\n\t0x2f, 0xd7, 0x58, 0x8a, 0x4d, 0x5e, 0xae, 0xe9, 0x8c, 0xa1, 0xbc, 0x5c, 0x33, 0x72, 0x73, 0xea,\n\t0x0c, 0xfa, 0x08, 0x2a, 0x61, 0x46, 0x47, 0x56, 0x42, 0x32, 0x35, 0xd5, 0x3a, 0x37, 0xa6, 0x35,\n\t0x2e, 0x5d, 0x2c, 0x51, 0x23, 0x4b, 0x97, 0x4e, 0x02, 0xc9, 0xd2, 0x65, 0x65, 0x78, 0xa2, 0xf1,\n\t0xb2, 0x2b, 0xdf, 0x8c, 0xf1, 0x4a, 0x37, 0xeb, 0x19, 0xe3, 0x95, 0xef, 0x8a, 0xd5, 0x99, 0xfb,\n\t0xf7, 0x7e, 0xf6, 0xeb, 0xf3, 0xca, 0x2f, 0x7f, 0x7d, 0x7e, 0xe6, 0xff, 0x7d, 0x72, 0x5e, 0xf9,\n\t0xd9, 0x27, 0xe7, 0x95, 0x5f, 0x7c, 0x72, 0x5e, 0xf9, 0xd5, 0x27, 0xe7, 0x95, 0xef, 0xff, 0xc7,\n\t0xf9, 0x99, 0x6f, 0xa9, 0x4f, 0x6f, 0xf9, 0xeb, 0x96, 0x73, 0xad, 0xe7, 0x59, 0x6f, 0x18, 0xae,\n\t0x75, 0xcd, 0x7d, 0xda, 0xbf, 0x66, 0xb8, 0x96, 0x7f, 0x8d, 0xf3, 0xbd, 0xf6, 0xec, 0xcd, 0x27,\n\t0x73, 0xf4, 0xdb, 0xd1, 0x6f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x94, 0xf5, 0x05, 0x82,\n\t0xf5, 0x5b, 0x00, 0x00,\n}\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ context.Context\nvar _ grpc.ClientConn\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the grpc package it is being compiled against.\nconst _ = grpc.SupportPackageIsVersion4\n\n// RuntimeServiceClient is the client API for RuntimeService service.\n//\n// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.\ntype RuntimeServiceClient interface {\n\t// Version returns the runtime name, runtime version, and runtime API version.\n\tVersion(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error)\n\t// RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure\n\t// the sandbox is in the ready state on success.\n\tRunPodSandbox(ctx context.Context, in *RunPodSandboxRequest, opts ...grpc.CallOption) (*RunPodSandboxResponse, error)\n\t// StopPodSandbox stops any running process that is part of the sandbox and\n\t// reclaims network resources (e.g., IP addresses) allocated to the sandbox.\n\t// If there are any running containers in the sandbox, they must be forcibly\n\t// terminated.\n\t// This call is idempotent, and must not return an error if all relevant\n\t// resources have already been reclaimed. kubelet will call StopPodSandbox\n\t// at least once before calling RemovePodSandbox. It will also attempt to\n\t// reclaim resources eagerly, as soon as a sandbox is not needed. Hence,\n\t// multiple StopPodSandbox calls are expected.\n\tStopPodSandbox(ctx context.Context, in *StopPodSandboxRequest, opts ...grpc.CallOption) (*StopPodSandboxResponse, error)\n\t// RemovePodSandbox removes the sandbox. If there are any running containers\n\t// in the sandbox, they must be forcibly terminated and removed.\n\t// This call is idempotent, and must not return an error if the sandbox has\n\t// already been removed.\n\tRemovePodSandbox(ctx context.Context, in *RemovePodSandboxRequest, opts ...grpc.CallOption) (*RemovePodSandboxResponse, error)\n\t// PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not\n\t// present, returns an error.\n\tPodSandboxStatus(ctx context.Context, in *PodSandboxStatusRequest, opts ...grpc.CallOption) (*PodSandboxStatusResponse, error)\n\t// ListPodSandbox returns a list of PodSandboxes.\n\tListPodSandbox(ctx context.Context, in *ListPodSandboxRequest, opts ...grpc.CallOption) (*ListPodSandboxResponse, error)\n\t// CreateContainer creates a new container in specified PodSandbox\n\tCreateContainer(ctx context.Context, in *CreateContainerRequest, opts ...grpc.CallOption) (*CreateContainerResponse, error)\n\t// StartContainer starts the container.\n\tStartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error)\n\t// StopContainer stops a running container with a grace period (i.e., timeout).\n\t// This call is idempotent, and must not return an error if the container has\n\t// already been stopped.\n\t// The runtime must forcibly kill the container after the grace period is\n\t// reached.\n\tStopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error)\n\t// RemoveContainer removes the container. If the container is running, the\n\t// container must be forcibly removed.\n\t// This call is idempotent, and must not return an error if the container has\n\t// already been removed.\n\tRemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error)\n\t// ListContainers lists all containers by filters.\n\tListContainers(ctx context.Context, in *ListContainersRequest, opts ...grpc.CallOption) (*ListContainersResponse, error)\n\t// ContainerStatus returns status of the container. If the container is not\n\t// present, returns an error.\n\tContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error)\n\t// UpdateContainerResources updates ContainerConfig of the container synchronously.\n\t// If runtime fails to transactionally update the requested resources, an error is returned.\n\tUpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error)\n\t// ReopenContainerLog asks runtime to reopen the stdout/stderr log file\n\t// for the container. This is often called after the log file has been\n\t// rotated. If the container is not running, container runtime can choose\n\t// to either create a new log file and return nil, or return an error.\n\t// Once it returns error, new container log file MUST NOT be created.\n\tReopenContainerLog(ctx context.Context, in *ReopenContainerLogRequest, opts ...grpc.CallOption) (*ReopenContainerLogResponse, error)\n\t// ExecSync runs a command in a container synchronously.\n\tExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error)\n\t// Exec prepares a streaming endpoint to execute a command in the container.\n\tExec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (*ExecResponse, error)\n\t// Attach prepares a streaming endpoint to attach to a running container.\n\tAttach(ctx context.Context, in *AttachRequest, opts ...grpc.CallOption) (*AttachResponse, error)\n\t// PortForward prepares a streaming endpoint to forward ports from a PodSandbox.\n\tPortForward(ctx context.Context, in *PortForwardRequest, opts ...grpc.CallOption) (*PortForwardResponse, error)\n\t// ContainerStats returns stats of the container. If the container does not\n\t// exist, the call returns an error.\n\tContainerStats(ctx context.Context, in *ContainerStatsRequest, opts ...grpc.CallOption) (*ContainerStatsResponse, error)\n\t// ListContainerStats returns stats of all running containers.\n\tListContainerStats(ctx context.Context, in *ListContainerStatsRequest, opts ...grpc.CallOption) (*ListContainerStatsResponse, error)\n\t// PodSandboxStats returns stats of the pod sandbox. If the pod sandbox does not\n\t// exist, the call returns an error.\n\tPodSandboxStats(ctx context.Context, in *PodSandboxStatsRequest, opts ...grpc.CallOption) (*PodSandboxStatsResponse, error)\n\t// ListPodSandboxStats returns stats of the pod sandboxes matching a filter.\n\tListPodSandboxStats(ctx context.Context, in *ListPodSandboxStatsRequest, opts ...grpc.CallOption) (*ListPodSandboxStatsResponse, error)\n\t// UpdateRuntimeConfig updates the runtime configuration based on the given request.\n\tUpdateRuntimeConfig(ctx context.Context, in *UpdateRuntimeConfigRequest, opts ...grpc.CallOption) (*UpdateRuntimeConfigResponse, error)\n\t// Status returns the status of the runtime.\n\tStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error)\n\t// CheckpointContainer checkpoints a container\n\tCheckpointContainer(ctx context.Context, in *CheckpointContainerRequest, opts ...grpc.CallOption) (*CheckpointContainerResponse, error)\n\t// GetContainerEvents gets container events from the CRI runtime\n\tGetContainerEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (RuntimeService_GetContainerEventsClient, error)\n}\n\ntype runtimeServiceClient struct {\n\tcc *grpc.ClientConn\n}\n\nfunc NewRuntimeServiceClient(cc *grpc.ClientConn) RuntimeServiceClient {\n\treturn &runtimeServiceClient{cc}\n}\n\nfunc (c *runtimeServiceClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) {\n\tout := new(VersionResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/Version\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) RunPodSandbox(ctx context.Context, in *RunPodSandboxRequest, opts ...grpc.CallOption) (*RunPodSandboxResponse, error) {\n\tout := new(RunPodSandboxResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/RunPodSandbox\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) StopPodSandbox(ctx context.Context, in *StopPodSandboxRequest, opts ...grpc.CallOption) (*StopPodSandboxResponse, error) {\n\tout := new(StopPodSandboxResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/StopPodSandbox\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) RemovePodSandbox(ctx context.Context, in *RemovePodSandboxRequest, opts ...grpc.CallOption) (*RemovePodSandboxResponse, error) {\n\tout := new(RemovePodSandboxResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/RemovePodSandbox\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) PodSandboxStatus(ctx context.Context, in *PodSandboxStatusRequest, opts ...grpc.CallOption) (*PodSandboxStatusResponse, error) {\n\tout := new(PodSandboxStatusResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/PodSandboxStatus\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ListPodSandbox(ctx context.Context, in *ListPodSandboxRequest, opts ...grpc.CallOption) (*ListPodSandboxResponse, error) {\n\tout := new(ListPodSandboxResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ListPodSandbox\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) CreateContainer(ctx context.Context, in *CreateContainerRequest, opts ...grpc.CallOption) (*CreateContainerResponse, error) {\n\tout := new(CreateContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/CreateContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) StartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error) {\n\tout := new(StartContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/StartContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) StopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error) {\n\tout := new(StopContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/StopContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) RemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error) {\n\tout := new(RemoveContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/RemoveContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ListContainers(ctx context.Context, in *ListContainersRequest, opts ...grpc.CallOption) (*ListContainersResponse, error) {\n\tout := new(ListContainersResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ListContainers\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) {\n\tout := new(ContainerStatusResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ContainerStatus\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) {\n\tout := new(UpdateContainerResourcesResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/UpdateContainerResources\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ReopenContainerLog(ctx context.Context, in *ReopenContainerLogRequest, opts ...grpc.CallOption) (*ReopenContainerLogResponse, error) {\n\tout := new(ReopenContainerLogResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ReopenContainerLog\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) {\n\tout := new(ExecSyncResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ExecSync\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) Exec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (*ExecResponse, error) {\n\tout := new(ExecResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/Exec\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) Attach(ctx context.Context, in *AttachRequest, opts ...grpc.CallOption) (*AttachResponse, error) {\n\tout := new(AttachResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/Attach\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) PortForward(ctx context.Context, in *PortForwardRequest, opts ...grpc.CallOption) (*PortForwardResponse, error) {\n\tout := new(PortForwardResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/PortForward\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ContainerStats(ctx context.Context, in *ContainerStatsRequest, opts ...grpc.CallOption) (*ContainerStatsResponse, error) {\n\tout := new(ContainerStatsResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ContainerStats\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ListContainerStats(ctx context.Context, in *ListContainerStatsRequest, opts ...grpc.CallOption) (*ListContainerStatsResponse, error) {\n\tout := new(ListContainerStatsResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ListContainerStats\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) PodSandboxStats(ctx context.Context, in *PodSandboxStatsRequest, opts ...grpc.CallOption) (*PodSandboxStatsResponse, error) {\n\tout := new(PodSandboxStatsResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/PodSandboxStats\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) ListPodSandboxStats(ctx context.Context, in *ListPodSandboxStatsRequest, opts ...grpc.CallOption) (*ListPodSandboxStatsResponse, error) {\n\tout := new(ListPodSandboxStatsResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/ListPodSandboxStats\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) UpdateRuntimeConfig(ctx context.Context, in *UpdateRuntimeConfigRequest, opts ...grpc.CallOption) (*UpdateRuntimeConfigResponse, error) {\n\tout := new(UpdateRuntimeConfigResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/UpdateRuntimeConfig\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) {\n\tout := new(StatusResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/Status\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) CheckpointContainer(ctx context.Context, in *CheckpointContainerRequest, opts ...grpc.CallOption) (*CheckpointContainerResponse, error) {\n\tout := new(CheckpointContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.RuntimeService/CheckpointContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *runtimeServiceClient) GetContainerEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (RuntimeService_GetContainerEventsClient, error) {\n\tstream, err := c.cc.NewStream(ctx, &_RuntimeService_serviceDesc.Streams[0], \"/runtime.v1.RuntimeService/GetContainerEvents\", opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tx := &runtimeServiceGetContainerEventsClient{stream}\n\tif err := x.ClientStream.SendMsg(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := x.ClientStream.CloseSend(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn x, nil\n}\n\ntype RuntimeService_GetContainerEventsClient interface {\n\tRecv() (*ContainerEventResponse, error)\n\tgrpc.ClientStream\n}\n\ntype runtimeServiceGetContainerEventsClient struct {\n\tgrpc.ClientStream\n}\n\nfunc (x *runtimeServiceGetContainerEventsClient) Recv() (*ContainerEventResponse, error) {\n\tm := new(ContainerEventResponse)\n\tif err := x.ClientStream.RecvMsg(m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn m, nil\n}\n\n// RuntimeServiceServer is the server API for RuntimeService service.\ntype RuntimeServiceServer interface {\n\t// Version returns the runtime name, runtime version, and runtime API version.\n\tVersion(context.Context, *VersionRequest) (*VersionResponse, error)\n\t// RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure\n\t// the sandbox is in the ready state on success.\n\tRunPodSandbox(context.Context, *RunPodSandboxRequest) (*RunPodSandboxResponse, error)\n\t// StopPodSandbox stops any running process that is part of the sandbox and\n\t// reclaims network resources (e.g., IP addresses) allocated to the sandbox.\n\t// If there are any running containers in the sandbox, they must be forcibly\n\t// terminated.\n\t// This call is idempotent, and must not return an error if all relevant\n\t// resources have already been reclaimed. kubelet will call StopPodSandbox\n\t// at least once before calling RemovePodSandbox. It will also attempt to\n\t// reclaim resources eagerly, as soon as a sandbox is not needed. Hence,\n\t// multiple StopPodSandbox calls are expected.\n\tStopPodSandbox(context.Context, *StopPodSandboxRequest) (*StopPodSandboxResponse, error)\n\t// RemovePodSandbox removes the sandbox. If there are any running containers\n\t// in the sandbox, they must be forcibly terminated and removed.\n\t// This call is idempotent, and must not return an error if the sandbox has\n\t// already been removed.\n\tRemovePodSandbox(context.Context, *RemovePodSandboxRequest) (*RemovePodSandboxResponse, error)\n\t// PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not\n\t// present, returns an error.\n\tPodSandboxStatus(context.Context, *PodSandboxStatusRequest) (*PodSandboxStatusResponse, error)\n\t// ListPodSandbox returns a list of PodSandboxes.\n\tListPodSandbox(context.Context, *ListPodSandboxRequest) (*ListPodSandboxResponse, error)\n\t// CreateContainer creates a new container in specified PodSandbox\n\tCreateContainer(context.Context, *CreateContainerRequest) (*CreateContainerResponse, error)\n\t// StartContainer starts the container.\n\tStartContainer(context.Context, *StartContainerRequest) (*StartContainerResponse, error)\n\t// StopContainer stops a running container with a grace period (i.e., timeout).\n\t// This call is idempotent, and must not return an error if the container has\n\t// already been stopped.\n\t// The runtime must forcibly kill the container after the grace period is\n\t// reached.\n\tStopContainer(context.Context, *StopContainerRequest) (*StopContainerResponse, error)\n\t// RemoveContainer removes the container. If the container is running, the\n\t// container must be forcibly removed.\n\t// This call is idempotent, and must not return an error if the container has\n\t// already been removed.\n\tRemoveContainer(context.Context, *RemoveContainerRequest) (*RemoveContainerResponse, error)\n\t// ListContainers lists all containers by filters.\n\tListContainers(context.Context, *ListContainersRequest) (*ListContainersResponse, error)\n\t// ContainerStatus returns status of the container. If the container is not\n\t// present, returns an error.\n\tContainerStatus(context.Context, *ContainerStatusRequest) (*ContainerStatusResponse, error)\n\t// UpdateContainerResources updates ContainerConfig of the container synchronously.\n\t// If runtime fails to transactionally update the requested resources, an error is returned.\n\tUpdateContainerResources(context.Context, *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error)\n\t// ReopenContainerLog asks runtime to reopen the stdout/stderr log file\n\t// for the container. This is often called after the log file has been\n\t// rotated. If the container is not running, container runtime can choose\n\t// to either create a new log file and return nil, or return an error.\n\t// Once it returns error, new container log file MUST NOT be created.\n\tReopenContainerLog(context.Context, *ReopenContainerLogRequest) (*ReopenContainerLogResponse, error)\n\t// ExecSync runs a command in a container synchronously.\n\tExecSync(context.Context, *ExecSyncRequest) (*ExecSyncResponse, error)\n\t// Exec prepares a streaming endpoint to execute a command in the container.\n\tExec(context.Context, *ExecRequest) (*ExecResponse, error)\n\t// Attach prepares a streaming endpoint to attach to a running container.\n\tAttach(context.Context, *AttachRequest) (*AttachResponse, error)\n\t// PortForward prepares a streaming endpoint to forward ports from a PodSandbox.\n\tPortForward(context.Context, *PortForwardRequest) (*PortForwardResponse, error)\n\t// ContainerStats returns stats of the container. If the container does not\n\t// exist, the call returns an error.\n\tContainerStats(context.Context, *ContainerStatsRequest) (*ContainerStatsResponse, error)\n\t// ListContainerStats returns stats of all running containers.\n\tListContainerStats(context.Context, *ListContainerStatsRequest) (*ListContainerStatsResponse, error)\n\t// PodSandboxStats returns stats of the pod sandbox. If the pod sandbox does not\n\t// exist, the call returns an error.\n\tPodSandboxStats(context.Context, *PodSandboxStatsRequest) (*PodSandboxStatsResponse, error)\n\t// ListPodSandboxStats returns stats of the pod sandboxes matching a filter.\n\tListPodSandboxStats(context.Context, *ListPodSandboxStatsRequest) (*ListPodSandboxStatsResponse, error)\n\t// UpdateRuntimeConfig updates the runtime configuration based on the given request.\n\tUpdateRuntimeConfig(context.Context, *UpdateRuntimeConfigRequest) (*UpdateRuntimeConfigResponse, error)\n\t// Status returns the status of the runtime.\n\tStatus(context.Context, *StatusRequest) (*StatusResponse, error)\n\t// CheckpointContainer checkpoints a container\n\tCheckpointContainer(context.Context, *CheckpointContainerRequest) (*CheckpointContainerResponse, error)\n\t// GetContainerEvents gets container events from the CRI runtime\n\tGetContainerEvents(*GetEventsRequest, RuntimeService_GetContainerEventsServer) error\n}\n\n// UnimplementedRuntimeServiceServer can be embedded to have forward compatible implementations.\ntype UnimplementedRuntimeServiceServer struct {\n}\n\nfunc (*UnimplementedRuntimeServiceServer) Version(ctx context.Context, req *VersionRequest) (*VersionResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Version not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) RunPodSandbox(ctx context.Context, req *RunPodSandboxRequest) (*RunPodSandboxResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method RunPodSandbox not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) StopPodSandbox(ctx context.Context, req *StopPodSandboxRequest) (*StopPodSandboxResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method StopPodSandbox not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) RemovePodSandbox(ctx context.Context, req *RemovePodSandboxRequest) (*RemovePodSandboxResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method RemovePodSandbox not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) PodSandboxStatus(ctx context.Context, req *PodSandboxStatusRequest) (*PodSandboxStatusResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method PodSandboxStatus not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ListPodSandbox(ctx context.Context, req *ListPodSandboxRequest) (*ListPodSandboxResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ListPodSandbox not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) CreateContainer(ctx context.Context, req *CreateContainerRequest) (*CreateContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method CreateContainer not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) StartContainer(ctx context.Context, req *StartContainerRequest) (*StartContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method StartContainer not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) StopContainer(ctx context.Context, req *StopContainerRequest) (*StopContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method StopContainer not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) RemoveContainer(ctx context.Context, req *RemoveContainerRequest) (*RemoveContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method RemoveContainer not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ListContainers(ctx context.Context, req *ListContainersRequest) (*ListContainersResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ListContainers not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ContainerStatus(ctx context.Context, req *ContainerStatusRequest) (*ContainerStatusResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ContainerStatus not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) UpdateContainerResources(ctx context.Context, req *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method UpdateContainerResources not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ReopenContainerLog(ctx context.Context, req *ReopenContainerLogRequest) (*ReopenContainerLogResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ReopenContainerLog not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ExecSync(ctx context.Context, req *ExecSyncRequest) (*ExecSyncResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ExecSync not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) Exec(ctx context.Context, req *ExecRequest) (*ExecResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Exec not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) Attach(ctx context.Context, req *AttachRequest) (*AttachResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Attach not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) PortForward(ctx context.Context, req *PortForwardRequest) (*PortForwardResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method PortForward not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ContainerStats(ctx context.Context, req *ContainerStatsRequest) (*ContainerStatsResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ContainerStats not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ListContainerStats(ctx context.Context, req *ListContainerStatsRequest) (*ListContainerStatsResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ListContainerStats not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) PodSandboxStats(ctx context.Context, req *PodSandboxStatsRequest) (*PodSandboxStatsResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method PodSandboxStats not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) ListPodSandboxStats(ctx context.Context, req *ListPodSandboxStatsRequest) (*ListPodSandboxStatsResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ListPodSandboxStats not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) UpdateRuntimeConfig(ctx context.Context, req *UpdateRuntimeConfigRequest) (*UpdateRuntimeConfigResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method UpdateRuntimeConfig not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) Status(ctx context.Context, req *StatusRequest) (*StatusResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Status not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) CheckpointContainer(ctx context.Context, req *CheckpointContainerRequest) (*CheckpointContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method CheckpointContainer not implemented\")\n}\nfunc (*UnimplementedRuntimeServiceServer) GetContainerEvents(req *GetEventsRequest, srv RuntimeService_GetContainerEventsServer) error {\n\treturn status.Errorf(codes.Unimplemented, \"method GetContainerEvents not implemented\")\n}\n\nfunc RegisterRuntimeServiceServer(s *grpc.Server, srv RuntimeServiceServer) {\n\ts.RegisterService(&_RuntimeService_serviceDesc, srv)\n}\n\nfunc _RuntimeService_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(VersionRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).Version(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/Version\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).Version(ctx, req.(*VersionRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_RunPodSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(RunPodSandboxRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).RunPodSandbox(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/RunPodSandbox\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).RunPodSandbox(ctx, req.(*RunPodSandboxRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_StopPodSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(StopPodSandboxRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).StopPodSandbox(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/StopPodSandbox\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).StopPodSandbox(ctx, req.(*StopPodSandboxRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_RemovePodSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(RemovePodSandboxRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).RemovePodSandbox(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/RemovePodSandbox\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).RemovePodSandbox(ctx, req.(*RemovePodSandboxRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_PodSandboxStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PodSandboxStatusRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).PodSandboxStatus(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/PodSandboxStatus\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).PodSandboxStatus(ctx, req.(*PodSandboxStatusRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ListPodSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListPodSandboxRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ListPodSandbox(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ListPodSandbox\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ListPodSandbox(ctx, req.(*ListPodSandboxRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_CreateContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(CreateContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).CreateContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/CreateContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).CreateContainer(ctx, req.(*CreateContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_StartContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(StartContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).StartContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/StartContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).StartContainer(ctx, req.(*StartContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_StopContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(StopContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).StopContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/StopContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).StopContainer(ctx, req.(*StopContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_RemoveContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(RemoveContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).RemoveContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/RemoveContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).RemoveContainer(ctx, req.(*RemoveContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ListContainers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListContainersRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ListContainers(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ListContainers\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ListContainers(ctx, req.(*ListContainersRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ContainerStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ContainerStatusRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ContainerStatus(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ContainerStatus\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ContainerStatus(ctx, req.(*ContainerStatusRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_UpdateContainerResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(UpdateContainerResourcesRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).UpdateContainerResources(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/UpdateContainerResources\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).UpdateContainerResources(ctx, req.(*UpdateContainerResourcesRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ReopenContainerLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ReopenContainerLogRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ReopenContainerLog(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ReopenContainerLog\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ReopenContainerLog(ctx, req.(*ReopenContainerLogRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ExecSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ExecSyncRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ExecSync(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ExecSync\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ExecSync(ctx, req.(*ExecSyncRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_Exec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ExecRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).Exec(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/Exec\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).Exec(ctx, req.(*ExecRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_Attach_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(AttachRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).Attach(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/Attach\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).Attach(ctx, req.(*AttachRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_PortForward_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PortForwardRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).PortForward(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/PortForward\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).PortForward(ctx, req.(*PortForwardRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ContainerStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ContainerStatsRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ContainerStats(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ContainerStats\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ContainerStats(ctx, req.(*ContainerStatsRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ListContainerStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListContainerStatsRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ListContainerStats(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ListContainerStats\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ListContainerStats(ctx, req.(*ListContainerStatsRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_PodSandboxStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PodSandboxStatsRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).PodSandboxStats(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/PodSandboxStats\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).PodSandboxStats(ctx, req.(*PodSandboxStatsRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_ListPodSandboxStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListPodSandboxStatsRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).ListPodSandboxStats(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/ListPodSandboxStats\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).ListPodSandboxStats(ctx, req.(*ListPodSandboxStatsRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_UpdateRuntimeConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(UpdateRuntimeConfigRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).UpdateRuntimeConfig(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/UpdateRuntimeConfig\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).UpdateRuntimeConfig(ctx, req.(*UpdateRuntimeConfigRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(StatusRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).Status(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/Status\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).Status(ctx, req.(*StatusRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_CheckpointContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(CheckpointContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RuntimeServiceServer).CheckpointContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.RuntimeService/CheckpointContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RuntimeServiceServer).CheckpointContainer(ctx, req.(*CheckpointContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _RuntimeService_GetContainerEvents_Handler(srv interface{}, stream grpc.ServerStream) error {\n\tm := new(GetEventsRequest)\n\tif err := stream.RecvMsg(m); err != nil {\n\t\treturn err\n\t}\n\treturn srv.(RuntimeServiceServer).GetContainerEvents(m, &runtimeServiceGetContainerEventsServer{stream})\n}\n\ntype RuntimeService_GetContainerEventsServer interface {\n\tSend(*ContainerEventResponse) error\n\tgrpc.ServerStream\n}\n\ntype runtimeServiceGetContainerEventsServer struct {\n\tgrpc.ServerStream\n}\n\nfunc (x *runtimeServiceGetContainerEventsServer) Send(m *ContainerEventResponse) error {\n\treturn x.ServerStream.SendMsg(m)\n}\n\nvar _RuntimeService_serviceDesc = grpc.ServiceDesc{\n\tServiceName: \"runtime.v1.RuntimeService\",\n\tHandlerType: (*RuntimeServiceServer)(nil),\n\tMethods: []grpc.MethodDesc{\n\t\t{\n\t\t\tMethodName: \"Version\",\n\t\t\tHandler:    _RuntimeService_Version_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"RunPodSandbox\",\n\t\t\tHandler:    _RuntimeService_RunPodSandbox_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"StopPodSandbox\",\n\t\t\tHandler:    _RuntimeService_StopPodSandbox_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"RemovePodSandbox\",\n\t\t\tHandler:    _RuntimeService_RemovePodSandbox_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"PodSandboxStatus\",\n\t\t\tHandler:    _RuntimeService_PodSandboxStatus_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ListPodSandbox\",\n\t\t\tHandler:    _RuntimeService_ListPodSandbox_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"CreateContainer\",\n\t\t\tHandler:    _RuntimeService_CreateContainer_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"StartContainer\",\n\t\t\tHandler:    _RuntimeService_StartContainer_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"StopContainer\",\n\t\t\tHandler:    _RuntimeService_StopContainer_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"RemoveContainer\",\n\t\t\tHandler:    _RuntimeService_RemoveContainer_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ListContainers\",\n\t\t\tHandler:    _RuntimeService_ListContainers_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ContainerStatus\",\n\t\t\tHandler:    _RuntimeService_ContainerStatus_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"UpdateContainerResources\",\n\t\t\tHandler:    _RuntimeService_UpdateContainerResources_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ReopenContainerLog\",\n\t\t\tHandler:    _RuntimeService_ReopenContainerLog_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ExecSync\",\n\t\t\tHandler:    _RuntimeService_ExecSync_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"Exec\",\n\t\t\tHandler:    _RuntimeService_Exec_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"Attach\",\n\t\t\tHandler:    _RuntimeService_Attach_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"PortForward\",\n\t\t\tHandler:    _RuntimeService_PortForward_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ContainerStats\",\n\t\t\tHandler:    _RuntimeService_ContainerStats_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ListContainerStats\",\n\t\t\tHandler:    _RuntimeService_ListContainerStats_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"PodSandboxStats\",\n\t\t\tHandler:    _RuntimeService_PodSandboxStats_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ListPodSandboxStats\",\n\t\t\tHandler:    _RuntimeService_ListPodSandboxStats_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"UpdateRuntimeConfig\",\n\t\t\tHandler:    _RuntimeService_UpdateRuntimeConfig_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"Status\",\n\t\t\tHandler:    _RuntimeService_Status_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"CheckpointContainer\",\n\t\t\tHandler:    _RuntimeService_CheckpointContainer_Handler,\n\t\t},\n\t},\n\tStreams: []grpc.StreamDesc{\n\t\t{\n\t\t\tStreamName:    \"GetContainerEvents\",\n\t\t\tHandler:       _RuntimeService_GetContainerEvents_Handler,\n\t\t\tServerStreams: true,\n\t\t},\n\t},\n\tMetadata: \"api.proto\",\n}\n\n// ImageServiceClient is the client API for ImageService service.\n//\n// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.\ntype ImageServiceClient interface {\n\t// ListImages lists existing images.\n\tListImages(ctx context.Context, in *ListImagesRequest, opts ...grpc.CallOption) (*ListImagesResponse, error)\n\t// ImageStatus returns the status of the image. If the image is not\n\t// present, returns a response with ImageStatusResponse.Image set to\n\t// nil.\n\tImageStatus(ctx context.Context, in *ImageStatusRequest, opts ...grpc.CallOption) (*ImageStatusResponse, error)\n\t// PullImage pulls an image with authentication config.\n\tPullImage(ctx context.Context, in *PullImageRequest, opts ...grpc.CallOption) (*PullImageResponse, error)\n\t// RemoveImage removes the image.\n\t// This call is idempotent, and must not return an error if the image has\n\t// already been removed.\n\tRemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error)\n\t// ImageFSInfo returns information of the filesystem that is used to store images.\n\tImageFsInfo(ctx context.Context, in *ImageFsInfoRequest, opts ...grpc.CallOption) (*ImageFsInfoResponse, error)\n}\n\ntype imageServiceClient struct {\n\tcc *grpc.ClientConn\n}\n\nfunc NewImageServiceClient(cc *grpc.ClientConn) ImageServiceClient {\n\treturn &imageServiceClient{cc}\n}\n\nfunc (c *imageServiceClient) ListImages(ctx context.Context, in *ListImagesRequest, opts ...grpc.CallOption) (*ListImagesResponse, error) {\n\tout := new(ListImagesResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.ImageService/ListImages\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *imageServiceClient) ImageStatus(ctx context.Context, in *ImageStatusRequest, opts ...grpc.CallOption) (*ImageStatusResponse, error) {\n\tout := new(ImageStatusResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.ImageService/ImageStatus\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *imageServiceClient) PullImage(ctx context.Context, in *PullImageRequest, opts ...grpc.CallOption) (*PullImageResponse, error) {\n\tout := new(PullImageResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.ImageService/PullImage\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *imageServiceClient) RemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error) {\n\tout := new(RemoveImageResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.ImageService/RemoveImage\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *imageServiceClient) ImageFsInfo(ctx context.Context, in *ImageFsInfoRequest, opts ...grpc.CallOption) (*ImageFsInfoResponse, error) {\n\tout := new(ImageFsInfoResponse)\n\terr := c.cc.Invoke(ctx, \"/runtime.v1.ImageService/ImageFsInfo\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\n// ImageServiceServer is the server API for ImageService service.\ntype ImageServiceServer interface {\n\t// ListImages lists existing images.\n\tListImages(context.Context, *ListImagesRequest) (*ListImagesResponse, error)\n\t// ImageStatus returns the status of the image. If the image is not\n\t// present, returns a response with ImageStatusResponse.Image set to\n\t// nil.\n\tImageStatus(context.Context, *ImageStatusRequest) (*ImageStatusResponse, error)\n\t// PullImage pulls an image with authentication config.\n\tPullImage(context.Context, *PullImageRequest) (*PullImageResponse, error)\n\t// RemoveImage removes the image.\n\t// This call is idempotent, and must not return an error if the image has\n\t// already been removed.\n\tRemoveImage(context.Context, *RemoveImageRequest) (*RemoveImageResponse, error)\n\t// ImageFSInfo returns information of the filesystem that is used to store images.\n\tImageFsInfo(context.Context, *ImageFsInfoRequest) (*ImageFsInfoResponse, error)\n}\n\n// UnimplementedImageServiceServer can be embedded to have forward compatible implementations.\ntype UnimplementedImageServiceServer struct {\n}\n\nfunc (*UnimplementedImageServiceServer) ListImages(ctx context.Context, req *ListImagesRequest) (*ListImagesResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ListImages not implemented\")\n}\nfunc (*UnimplementedImageServiceServer) ImageStatus(ctx context.Context, req *ImageStatusRequest) (*ImageStatusResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ImageStatus not implemented\")\n}\nfunc (*UnimplementedImageServiceServer) PullImage(ctx context.Context, req *PullImageRequest) (*PullImageResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method PullImage not implemented\")\n}\nfunc (*UnimplementedImageServiceServer) RemoveImage(ctx context.Context, req *RemoveImageRequest) (*RemoveImageResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method RemoveImage not implemented\")\n}\nfunc (*UnimplementedImageServiceServer) ImageFsInfo(ctx context.Context, req *ImageFsInfoRequest) (*ImageFsInfoResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method ImageFsInfo not implemented\")\n}\n\nfunc RegisterImageServiceServer(s *grpc.Server, srv ImageServiceServer) {\n\ts.RegisterService(&_ImageService_serviceDesc, srv)\n}\n\nfunc _ImageService_ListImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListImagesRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(ImageServiceServer).ListImages(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.ImageService/ListImages\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(ImageServiceServer).ListImages(ctx, req.(*ListImagesRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _ImageService_ImageStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ImageStatusRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(ImageServiceServer).ImageStatus(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.ImageService/ImageStatus\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(ImageServiceServer).ImageStatus(ctx, req.(*ImageStatusRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _ImageService_PullImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PullImageRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(ImageServiceServer).PullImage(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.ImageService/PullImage\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(ImageServiceServer).PullImage(ctx, req.(*PullImageRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _ImageService_RemoveImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(RemoveImageRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(ImageServiceServer).RemoveImage(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.ImageService/RemoveImage\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(ImageServiceServer).RemoveImage(ctx, req.(*RemoveImageRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _ImageService_ImageFsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ImageFsInfoRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(ImageServiceServer).ImageFsInfo(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/runtime.v1.ImageService/ImageFsInfo\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(ImageServiceServer).ImageFsInfo(ctx, req.(*ImageFsInfoRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nvar _ImageService_serviceDesc = grpc.ServiceDesc{\n\tServiceName: \"runtime.v1.ImageService\",\n\tHandlerType: (*ImageServiceServer)(nil),\n\tMethods: []grpc.MethodDesc{\n\t\t{\n\t\t\tMethodName: \"ListImages\",\n\t\t\tHandler:    _ImageService_ListImages_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ImageStatus\",\n\t\t\tHandler:    _ImageService_ImageStatus_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"PullImage\",\n\t\t\tHandler:    _ImageService_PullImage_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"RemoveImage\",\n\t\t\tHandler:    _ImageService_RemoveImage_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"ImageFsInfo\",\n\t\t\tHandler:    _ImageService_ImageFsInfo_Handler,\n\t\t},\n\t},\n\tStreams:  []grpc.StreamDesc{},\n\tMetadata: \"api.proto\",\n}\n\nfunc (m *VersionRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VersionRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VersionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Version) > 0 {\n\t\ti -= len(m.Version)\n\t\tcopy(dAtA[i:], m.Version)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Version)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VersionResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VersionResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VersionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RuntimeApiVersion) > 0 {\n\t\ti -= len(m.RuntimeApiVersion)\n\t\tcopy(dAtA[i:], m.RuntimeApiVersion)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeApiVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.RuntimeVersion) > 0 {\n\t\ti -= len(m.RuntimeVersion)\n\t\tcopy(dAtA[i:], m.RuntimeVersion)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.RuntimeName) > 0 {\n\t\ti -= len(m.RuntimeName)\n\t\tcopy(dAtA[i:], m.RuntimeName)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeName)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Version) > 0 {\n\t\ti -= len(m.Version)\n\t\tcopy(dAtA[i:], m.Version)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Version)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DNSConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DNSConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DNSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tfor iNdEx := len(m.Options) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Options[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Options[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Options[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor iNdEx := len(m.Searches) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Searches[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Searches[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Searches[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Servers) > 0 {\n\t\tfor iNdEx := len(m.Servers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Servers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Servers[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Servers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortMapping) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortMapping) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortMapping) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.HostIp) > 0 {\n\t\ti -= len(m.HostIp)\n\t\tcopy(dAtA[i:], m.HostIp)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.HostIp)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.HostPort != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.HostPort))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.ContainerPort != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ContainerPort))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Protocol != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Protocol))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Mount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Mount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Mount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Propagation != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Propagation))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.SelinuxRelabel {\n\t\ti--\n\t\tif m.SelinuxRelabel {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Readonly {\n\t\ti--\n\t\tif m.Readonly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.HostPath) > 0 {\n\t\ti -= len(m.HostPath)\n\t\tcopy(dAtA[i:], m.HostPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.HostPath)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerPath) > 0 {\n\t\ti -= len(m.ContainerPath)\n\t\tcopy(dAtA[i:], m.ContainerPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerPath)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IDMapping) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IDMapping) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IDMapping) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Length != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Length))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.ContainerId != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ContainerId))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.HostId != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.HostId))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserNamespace) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserNamespace) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Gids) > 0 {\n\t\tfor iNdEx := len(m.Gids) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Gids[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Uids) > 0 {\n\t\tfor iNdEx := len(m.Uids) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Uids[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Mode != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Mode))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceOption) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceOption) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UsernsOptions != nil {\n\t\t{\n\t\t\tsize, err := m.UsernsOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.TargetId) > 0 {\n\t\ti -= len(m.TargetId)\n\t\tcopy(dAtA[i:], m.TargetId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.TargetId)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Ipc != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Ipc))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Pid != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Pid))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Network != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Network))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Int64Value) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Int64Value) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Int64Value) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Value != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Value))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxSandboxSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxSandboxSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Apparmor != nil {\n\t\t{\n\t\t\tsize, err := m.Apparmor.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.Seccomp != nil {\n\t\t{\n\t\t\tsize, err := m.Seccomp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.RunAsGroup != nil {\n\t\t{\n\t\t\tsize, err := m.RunAsGroup.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.SeccompProfilePath) > 0 {\n\t\ti -= len(m.SeccompProfilePath)\n\t\tcopy(dAtA[i:], m.SeccompProfilePath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.SeccompProfilePath)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.Privileged {\n\t\ti--\n\t\tif m.Privileged {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tdAtA6 := make([]byte, len(m.SupplementalGroups)*10)\n\t\tvar j5 int\n\t\tfor _, num1 := range m.SupplementalGroups {\n\t\t\tnum := uint64(num1)\n\t\t\tfor num >= 1<<7 {\n\t\t\t\tdAtA6[j5] = uint8(uint64(num)&0x7f | 0x80)\n\t\t\t\tnum >>= 7\n\t\t\t\tj5++\n\t\t\t}\n\t\t\tdAtA6[j5] = uint8(num)\n\t\t\tj5++\n\t\t}\n\t\ti -= j5\n\t\tcopy(dAtA[i:], dAtA6[:j5])\n\t\ti = encodeVarintApi(dAtA, i, uint64(j5))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.ReadonlyRootfs {\n\t\ti--\n\t\tif m.ReadonlyRootfs {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.RunAsUser != nil {\n\t\t{\n\t\t\tsize, err := m.RunAsUser.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.SelinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SelinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NamespaceOptions != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecurityProfile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecurityProfile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecurityProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.LocalhostRef) > 0 {\n\t\ti -= len(m.LocalhostRef)\n\t\tcopy(dAtA[i:], m.LocalhostRef)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.LocalhostRef)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ProfileType != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ProfileType))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxPodSandboxConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxPodSandboxConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxPodSandboxConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor k := range m.Sysctls {\n\t\t\tv := m.Sysctls[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.CgroupParent) > 0 {\n\t\ti -= len(m.CgroupParent)\n\t\tcopy(dAtA[i:], m.CgroupParent)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.CgroupParent)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxMetadata) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxMetadata) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Attempt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Attempt))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.Namespace) > 0 {\n\t\ti -= len(m.Namespace)\n\t\tcopy(dAtA[i:], m.Namespace)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Uid) > 0 {\n\t\ti -= len(m.Uid)\n\t\tcopy(dAtA[i:], m.Uid)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Uid)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Name) > 0 {\n\t\ti -= len(m.Name)\n\t\tcopy(dAtA[i:], m.Name)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Windows != nil {\n\t\t{\n\t\t\tsize, err := m.Windows.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.PortMappings) > 0 {\n\t\tfor iNdEx := len(m.PortMappings) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PortMappings[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.DnsConfig != nil {\n\t\t{\n\t\t\tsize, err := m.DnsConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.LogDirectory) > 0 {\n\t\ti -= len(m.LogDirectory)\n\t\tcopy(dAtA[i:], m.LogDirectory)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.LogDirectory)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Hostname) > 0 {\n\t\ti -= len(m.Hostname)\n\t\tcopy(dAtA[i:], m.Hostname)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Hostname)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RunPodSandboxRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RunPodSandboxRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RunPodSandboxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RuntimeHandler) > 0 {\n\t\ti -= len(m.RuntimeHandler)\n\t\tcopy(dAtA[i:], m.RuntimeHandler)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeHandler)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Config != nil {\n\t\t{\n\t\t\tsize, err := m.Config.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RunPodSandboxResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RunPodSandboxResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RunPodSandboxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StopPodSandboxRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StopPodSandboxRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StopPodSandboxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StopPodSandboxResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StopPodSandboxResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StopPodSandboxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemovePodSandboxRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemovePodSandboxRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemovePodSandboxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemovePodSandboxResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemovePodSandboxResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemovePodSandboxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatusRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatusRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Verbose {\n\t\ti--\n\t\tif m.Verbose {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodIP) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodIP) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodIP) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ip) > 0 {\n\t\ti -= len(m.Ip)\n\t\tcopy(dAtA[i:], m.Ip)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Ip)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxNetworkStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxNetworkStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxNetworkStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AdditionalIps) > 0 {\n\t\tfor iNdEx := len(m.AdditionalIps) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AdditionalIps[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ip) > 0 {\n\t\ti -= len(m.Ip)\n\t\tcopy(dAtA[i:], m.Ip)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Ip)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Namespace) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Namespace) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Options != nil {\n\t\t{\n\t\t\tsize, err := m.Options.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxPodSandboxStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxPodSandboxStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxPodSandboxStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespaces != nil {\n\t\t{\n\t\t\tsize, err := m.Namespaces.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RuntimeHandler) > 0 {\n\t\ti -= len(m.RuntimeHandler)\n\t\tcopy(dAtA[i:], m.RuntimeHandler)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeHandler)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.Network != nil {\n\t\t{\n\t\t\tsize, err := m.Network.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.CreatedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CreatedAt))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatusResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatusResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Info) > 0 {\n\t\tfor k := range m.Info {\n\t\t\tv := m.Info[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Status != nil {\n\t\t{\n\t\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStateValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStateValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStateValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxFilter) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxFilter) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k := range m.LabelSelector {\n\t\t\tv := m.LabelSelector[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.State != nil {\n\t\t{\n\t\t\tsize, err := m.State.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListPodSandboxRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodSandboxRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodSandboxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\t{\n\t\t\tsize, err := m.Filter.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandbox) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandbox) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandbox) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RuntimeHandler) > 0 {\n\t\ti -= len(m.RuntimeHandler)\n\t\tcopy(dAtA[i:], m.RuntimeHandler)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RuntimeHandler)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.CreatedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CreatedAt))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListPodSandboxResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodSandboxResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodSandboxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatsRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatsRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatsResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatsResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stats != nil {\n\t\t{\n\t\t\tsize, err := m.Stats.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStatsFilter) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStatsFilter) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStatsFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k := range m.LabelSelector {\n\t\t\tv := m.LabelSelector[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListPodSandboxStatsRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodSandboxStatsRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodSandboxStatsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\t{\n\t\t\tsize, err := m.Filter.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListPodSandboxStatsResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodSandboxStatsResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodSandboxStatsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Stats) > 0 {\n\t\tfor iNdEx := len(m.Stats) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Stats[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSandboxStats) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSandboxStats) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSandboxStats) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Windows != nil {\n\t\t{\n\t\t\tsize, err := m.Windows.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Attributes != nil {\n\t\t{\n\t\t\tsize, err := m.Attributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxPodSandboxStats) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxPodSandboxStats) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxPodSandboxStats) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.Process != nil {\n\t\t{\n\t\t\tsize, err := m.Process.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Network != nil {\n\t\t{\n\t\t\tsize, err := m.Network.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Memory != nil {\n\t\t{\n\t\t\tsize, err := m.Memory.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Cpu != nil {\n\t\t{\n\t\t\tsize, err := m.Cpu.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsPodSandboxStats) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsPodSandboxStats) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsPodSandboxStats) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Interfaces) > 0 {\n\t\tfor iNdEx := len(m.Interfaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Interfaces[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.DefaultInterface != nil {\n\t\t{\n\t\t\tsize, err := m.DefaultInterface.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Timestamp != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timestamp))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkInterfaceUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkInterfaceUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkInterfaceUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TxErrors != nil {\n\t\t{\n\t\t\tsize, err := m.TxErrors.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.TxBytes != nil {\n\t\t{\n\t\t\tsize, err := m.TxBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.RxErrors != nil {\n\t\t{\n\t\t\tsize, err := m.RxErrors.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.RxBytes != nil {\n\t\t{\n\t\t\tsize, err := m.RxBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Name) > 0 {\n\t\ti -= len(m.Name)\n\t\tcopy(dAtA[i:], m.Name)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ProcessUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ProcessUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ProcessUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProcessCount != nil {\n\t\t{\n\t\t\tsize, err := m.ProcessCount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Timestamp != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timestamp))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Image) > 0 {\n\t\ti -= len(m.Image)\n\t\tcopy(dAtA[i:], m.Image)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Image)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *KeyValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *KeyValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *KeyValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Value) > 0 {\n\t\ti -= len(m.Value)\n\t\tcopy(dAtA[i:], m.Value)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Value)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Key) > 0 {\n\t\ti -= len(m.Key)\n\t\tcopy(dAtA[i:], m.Key)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Key)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxContainerResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxContainerResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MemorySwapLimitInBytes != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.MemorySwapLimitInBytes))\n\t\ti--\n\t\tdAtA[i] = 0x50\n\t}\n\tif len(m.Unified) > 0 {\n\t\tfor k := range m.Unified {\n\t\t\tv := m.Unified[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\tif len(m.HugepageLimits) > 0 {\n\t\tfor iNdEx := len(m.HugepageLimits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HugepageLimits[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.CpusetMems) > 0 {\n\t\ti -= len(m.CpusetMems)\n\t\tcopy(dAtA[i:], m.CpusetMems)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.CpusetMems)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.CpusetCpus) > 0 {\n\t\ti -= len(m.CpusetCpus)\n\t\tcopy(dAtA[i:], m.CpusetCpus)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.CpusetCpus)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.OomScoreAdj != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.OomScoreAdj))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.MemoryLimitInBytes != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.MemoryLimitInBytes))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.CpuShares != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuShares))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.CpuQuota != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuQuota))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.CpuPeriod != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuPeriod))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HugepageLimit) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HugepageLimit) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HugepageLimit) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Limit != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Limit))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.PageSize) > 0 {\n\t\ti -= len(m.PageSize)\n\t\tcopy(dAtA[i:], m.PageSize)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PageSize)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SELinuxOption) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SELinuxOption) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SELinuxOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Level) > 0 {\n\t\ti -= len(m.Level)\n\t\tcopy(dAtA[i:], m.Level)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Level)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Type) > 0 {\n\t\ti -= len(m.Type)\n\t\tcopy(dAtA[i:], m.Type)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Type)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Role) > 0 {\n\t\ti -= len(m.Role)\n\t\tcopy(dAtA[i:], m.Role)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Role)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.User) > 0 {\n\t\ti -= len(m.User)\n\t\tcopy(dAtA[i:], m.User)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.User)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Capability) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Capability) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Capability) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AddAmbientCapabilities) > 0 {\n\t\tfor iNdEx := len(m.AddAmbientCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AddAmbientCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AddAmbientCapabilities[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.AddAmbientCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.DropCapabilities) > 0 {\n\t\tfor iNdEx := len(m.DropCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DropCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DropCapabilities[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.DropCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.AddCapabilities) > 0 {\n\t\tfor iNdEx := len(m.AddCapabilities) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AddCapabilities[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AddCapabilities[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.AddCapabilities[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxContainerSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxContainerSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Apparmor != nil {\n\t\t{\n\t\t\tsize, err := m.Apparmor.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Seccomp != nil {\n\t\t{\n\t\t\tsize, err := m.Seccomp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif len(m.ReadonlyPaths) > 0 {\n\t\tfor iNdEx := len(m.ReadonlyPaths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ReadonlyPaths[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ReadonlyPaths[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ReadonlyPaths[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x72\n\t\t}\n\t}\n\tif len(m.MaskedPaths) > 0 {\n\t\tfor iNdEx := len(m.MaskedPaths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MaskedPaths[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MaskedPaths[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.MaskedPaths[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif m.RunAsGroup != nil {\n\t\t{\n\t\t\tsize, err := m.RunAsGroup.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.NoNewPrivs {\n\t\ti--\n\t\tif m.NoNewPrivs {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x58\n\t}\n\tif len(m.SeccompProfilePath) > 0 {\n\t\ti -= len(m.SeccompProfilePath)\n\t\tcopy(dAtA[i:], m.SeccompProfilePath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.SeccompProfilePath)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.ApparmorProfile) > 0 {\n\t\ti -= len(m.ApparmorProfile)\n\t\tcopy(dAtA[i:], m.ApparmorProfile)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ApparmorProfile)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tdAtA47 := make([]byte, len(m.SupplementalGroups)*10)\n\t\tvar j46 int\n\t\tfor _, num1 := range m.SupplementalGroups {\n\t\t\tnum := uint64(num1)\n\t\t\tfor num >= 1<<7 {\n\t\t\t\tdAtA47[j46] = uint8(uint64(num)&0x7f | 0x80)\n\t\t\t\tnum >>= 7\n\t\t\t\tj46++\n\t\t\t}\n\t\t\tdAtA47[j46] = uint8(num)\n\t\t\tj46++\n\t\t}\n\t\ti -= j46\n\t\tcopy(dAtA[i:], dAtA47[:j46])\n\t\ti = encodeVarintApi(dAtA, i, uint64(j46))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.ReadonlyRootfs {\n\t\ti--\n\t\tif m.ReadonlyRootfs {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif len(m.RunAsUsername) > 0 {\n\t\ti -= len(m.RunAsUsername)\n\t\tcopy(dAtA[i:], m.RunAsUsername)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RunAsUsername)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.RunAsUser != nil {\n\t\t{\n\t\t\tsize, err := m.RunAsUser.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.SelinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SelinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.NamespaceOptions != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Privileged {\n\t\ti--\n\t\tif m.Privileged {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Capabilities != nil {\n\t\t{\n\t\t\tsize, err := m.Capabilities.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxContainerConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxContainerConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxContainerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsSandboxSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsSandboxSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsSandboxSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HostProcess {\n\t\ti--\n\t\tif m.HostProcess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.CredentialSpec) > 0 {\n\t\ti -= len(m.CredentialSpec)\n\t\tcopy(dAtA[i:], m.CredentialSpec)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.CredentialSpec)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.RunAsUsername) > 0 {\n\t\ti -= len(m.RunAsUsername)\n\t\tcopy(dAtA[i:], m.RunAsUsername)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RunAsUsername)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsPodSandboxConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsPodSandboxConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsPodSandboxConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsContainerSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsContainerSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HostProcess {\n\t\ti--\n\t\tif m.HostProcess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.CredentialSpec) > 0 {\n\t\ti -= len(m.CredentialSpec)\n\t\tcopy(dAtA[i:], m.CredentialSpec)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.CredentialSpec)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.RunAsUsername) > 0 {\n\t\ti -= len(m.RunAsUsername)\n\t\tcopy(dAtA[i:], m.RunAsUsername)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RunAsUsername)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsContainerConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsContainerConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsContainerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsContainerResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsContainerResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RootfsSizeInBytes != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.RootfsSizeInBytes))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.MemoryLimitInBytes != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.MemoryLimitInBytes))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.CpuMaximum != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuMaximum))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.CpuCount != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuCount))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.CpuShares != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CpuShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerMetadata) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerMetadata) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Attempt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Attempt))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Name) > 0 {\n\t\ti -= len(m.Name)\n\t\tcopy(dAtA[i:], m.Name)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Device) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Device) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Device) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Permissions) > 0 {\n\t\ti -= len(m.Permissions)\n\t\tcopy(dAtA[i:], m.Permissions)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Permissions)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.HostPath) > 0 {\n\t\ti -= len(m.HostPath)\n\t\tcopy(dAtA[i:], m.HostPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.HostPath)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerPath) > 0 {\n\t\ti -= len(m.ContainerPath)\n\t\tcopy(dAtA[i:], m.ContainerPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerPath)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Windows != nil {\n\t\t{\n\t\t\tsize, err := m.Windows.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.Tty {\n\t\ti--\n\t\tif m.Tty {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x70\n\t}\n\tif m.StdinOnce {\n\t\ti--\n\t\tif m.StdinOnce {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x68\n\t}\n\tif m.Stdin {\n\t\ti--\n\t\tif m.Stdin {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x60\n\t}\n\tif len(m.LogPath) > 0 {\n\t\ti -= len(m.LogPath)\n\t\tcopy(dAtA[i:], m.LogPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.LogPath)))\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor iNdEx := len(m.Mounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Mounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Envs) > 0 {\n\t\tfor iNdEx := len(m.Envs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Envs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.WorkingDir) > 0 {\n\t\ti -= len(m.WorkingDir)\n\t\tcopy(dAtA[i:], m.WorkingDir)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.WorkingDir)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Args[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Args[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Args[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CreateContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CreateContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SandboxConfig != nil {\n\t\t{\n\t\t\tsize, err := m.SandboxConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Config != nil {\n\t\t{\n\t\t\tsize, err := m.Config.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CreateContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CreateContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StartContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StartContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StartContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StartContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StartContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StartContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StopContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StopContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StopContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Timeout != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timeout))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StopContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StopContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StopContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemoveContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemoveContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemoveContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemoveContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerFilter) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerFilter) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k := range m.LabelSelector {\n\t\t\tv := m.LabelSelector[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.State != nil {\n\t\t{\n\t\t\tsize, err := m.State.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListContainersRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListContainersRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListContainersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\t{\n\t\t\tsize, err := m.Filter.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Container) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Container) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Container) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.CreatedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CreatedAt))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.ImageRef) > 0 {\n\t\ti -= len(m.ImageRef)\n\t\tcopy(dAtA[i:], m.ImageRef)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ImageRef)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListContainersResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListContainersResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListContainersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatusRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatusRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Verbose {\n\t\ti--\n\t\tif m.Verbose {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif len(m.LogPath) > 0 {\n\t\ti -= len(m.LogPath)\n\t\tcopy(dAtA[i:], m.LogPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.LogPath)))\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor iNdEx := len(m.Mounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Mounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x72\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif len(m.Message) > 0 {\n\t\ti -= len(m.Message)\n\t\tcopy(dAtA[i:], m.Message)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Message)))\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.Reason) > 0 {\n\t\ti -= len(m.Reason)\n\t\tcopy(dAtA[i:], m.Reason)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.ImageRef) > 0 {\n\t\ti -= len(m.ImageRef)\n\t\tcopy(dAtA[i:], m.ImageRef)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ImageRef)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.ExitCode != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ExitCode))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.FinishedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.FinishedAt))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.StartedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.StartedAt))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.CreatedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CreatedAt))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.State != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.State))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatusResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatusResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Info) > 0 {\n\t\tfor k := range m.Info {\n\t\t\tv := m.Info[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Status != nil {\n\t\t{\n\t\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Windows != nil {\n\t\t{\n\t\t\tsize, err := m.Windows.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateContainerResourcesRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateContainerResourcesRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateContainerResourcesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.Windows != nil {\n\t\t{\n\t\t\tsize, err := m.Windows.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateContainerResourcesResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateContainerResourcesResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateContainerResourcesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecSyncRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecSyncRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecSyncRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Timeout != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timeout))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Cmd) > 0 {\n\t\tfor iNdEx := len(m.Cmd) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Cmd[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Cmd[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Cmd[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecSyncResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecSyncResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecSyncResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExitCode != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ExitCode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Stderr) > 0 {\n\t\ti -= len(m.Stderr)\n\t\tcopy(dAtA[i:], m.Stderr)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Stderr)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Stdout) > 0 {\n\t\ti -= len(m.Stdout)\n\t\tcopy(dAtA[i:], m.Stdout)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Stdout)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stderr {\n\t\ti--\n\t\tif m.Stderr {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.Stdout {\n\t\ti--\n\t\tif m.Stdout {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.Stdin {\n\t\ti--\n\t\tif m.Stdin {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Tty {\n\t\ti--\n\t\tif m.Tty {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Cmd) > 0 {\n\t\tfor iNdEx := len(m.Cmd) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Cmd[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Cmd[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Cmd[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Url) > 0 {\n\t\ti -= len(m.Url)\n\t\tcopy(dAtA[i:], m.Url)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Url)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AttachRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AttachRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AttachRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stderr {\n\t\ti--\n\t\tif m.Stderr {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.Stdout {\n\t\ti--\n\t\tif m.Stdout {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Tty {\n\t\ti--\n\t\tif m.Tty {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Stdin {\n\t\ti--\n\t\tif m.Stdin {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AttachResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AttachResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AttachResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Url) > 0 {\n\t\ti -= len(m.Url)\n\t\tcopy(dAtA[i:], m.Url)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Url)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortForwardRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortForwardRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortForwardRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Port) > 0 {\n\t\tdAtA76 := make([]byte, len(m.Port)*10)\n\t\tvar j75 int\n\t\tfor _, num1 := range m.Port {\n\t\t\tnum := uint64(num1)\n\t\t\tfor num >= 1<<7 {\n\t\t\t\tdAtA76[j75] = uint8(uint64(num)&0x7f | 0x80)\n\t\t\t\tnum >>= 7\n\t\t\t\tj75++\n\t\t\t}\n\t\t\tdAtA76[j75] = uint8(num)\n\t\t\tj75++\n\t\t}\n\t\ti -= j75\n\t\tcopy(dAtA[i:], dAtA76[:j75])\n\t\ti = encodeVarintApi(dAtA, i, uint64(j75))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortForwardResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortForwardResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortForwardResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Url) > 0 {\n\t\ti -= len(m.Url)\n\t\tcopy(dAtA[i:], m.Url)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Url)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageFilter) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageFilter) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListImagesRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListImagesRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListImagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\t{\n\t\t\tsize, err := m.Filter.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Image) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Image) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Image) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Pinned {\n\t\ti--\n\t\tif m.Pinned {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.Spec != nil {\n\t\t{\n\t\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.Username) > 0 {\n\t\ti -= len(m.Username)\n\t\tcopy(dAtA[i:], m.Username)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Username)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.Uid != nil {\n\t\t{\n\t\t\tsize, err := m.Uid.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Size_ != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Size_))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.RepoDigests) > 0 {\n\t\tfor iNdEx := len(m.RepoDigests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.RepoDigests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.RepoDigests[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RepoDigests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.RepoTags) > 0 {\n\t\tfor iNdEx := len(m.RepoTags) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.RepoTags[iNdEx])\n\t\t\tcopy(dAtA[i:], m.RepoTags[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RepoTags[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListImagesResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListImagesResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListImagesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Images) > 0 {\n\t\tfor iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageStatusRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageStatusRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Verbose {\n\t\ti--\n\t\tif m.Verbose {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageStatusResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageStatusResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Info) > 0 {\n\t\tfor k := range m.Info {\n\t\t\tv := m.Info[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AuthConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AuthConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AuthConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RegistryToken) > 0 {\n\t\ti -= len(m.RegistryToken)\n\t\tcopy(dAtA[i:], m.RegistryToken)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.RegistryToken)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.IdentityToken) > 0 {\n\t\ti -= len(m.IdentityToken)\n\t\tcopy(dAtA[i:], m.IdentityToken)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.IdentityToken)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.ServerAddress) > 0 {\n\t\ti -= len(m.ServerAddress)\n\t\tcopy(dAtA[i:], m.ServerAddress)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ServerAddress)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Auth) > 0 {\n\t\ti -= len(m.Auth)\n\t\tcopy(dAtA[i:], m.Auth)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Auth)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Password) > 0 {\n\t\ti -= len(m.Password)\n\t\tcopy(dAtA[i:], m.Password)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Password)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Username) > 0 {\n\t\ti -= len(m.Username)\n\t\tcopy(dAtA[i:], m.Username)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Username)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PullImageRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PullImageRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PullImageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SandboxConfig != nil {\n\t\t{\n\t\t\tsize, err := m.SandboxConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Auth != nil {\n\t\t{\n\t\t\tsize, err := m.Auth.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PullImageResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PullImageResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PullImageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ImageRef) > 0 {\n\t\ti -= len(m.ImageRef)\n\t\tcopy(dAtA[i:], m.ImageRef)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ImageRef)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemoveImageRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveImageRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemoveImageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RemoveImageResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveImageResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RemoveImageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodCidr) > 0 {\n\t\ti -= len(m.PodCidr)\n\t\tcopy(dAtA[i:], m.PodCidr)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodCidr)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NetworkConfig != nil {\n\t\t{\n\t\t\tsize, err := m.NetworkConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateRuntimeConfigRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateRuntimeConfigRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateRuntimeConfigRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RuntimeConfig != nil {\n\t\t{\n\t\t\tsize, err := m.RuntimeConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateRuntimeConfigResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateRuntimeConfigResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateRuntimeConfigResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Message) > 0 {\n\t\ti -= len(m.Message)\n\t\tcopy(dAtA[i:], m.Message)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Message)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Reason) > 0 {\n\t\ti -= len(m.Reason)\n\t\tcopy(dAtA[i:], m.Reason)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Status {\n\t\ti--\n\t\tif m.Status {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Type) > 0 {\n\t\ti -= len(m.Type)\n\t\tcopy(dAtA[i:], m.Type)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Type)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Verbose {\n\t\ti--\n\t\tif m.Verbose {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Info) > 0 {\n\t\tfor k := range m.Info {\n\t\t\tv := m.Info[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Status != nil {\n\t\t{\n\t\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageFsInfoRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageFsInfoRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageFsInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UInt64Value) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UInt64Value) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UInt64Value) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Value != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Value))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FilesystemIdentifier) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FilesystemIdentifier) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FilesystemIdentifier) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Mountpoint) > 0 {\n\t\ti -= len(m.Mountpoint)\n\t\tcopy(dAtA[i:], m.Mountpoint)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Mountpoint)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FilesystemUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FilesystemUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FilesystemUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InodesUsed != nil {\n\t\t{\n\t\t\tsize, err := m.InodesUsed.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.UsedBytes != nil {\n\t\t{\n\t\t\tsize, err := m.UsedBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.FsId != nil {\n\t\t{\n\t\t\tsize, err := m.FsId.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Timestamp != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timestamp))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageFsInfoResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageFsInfoResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageFsInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ImageFilesystems) > 0 {\n\t\tfor iNdEx := len(m.ImageFilesystems) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ImageFilesystems[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatsRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatsRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatsResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatsResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stats != nil {\n\t\t{\n\t\t\tsize, err := m.Stats.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListContainerStatsRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListContainerStatsRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListContainerStatsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\t{\n\t\t\tsize, err := m.Filter.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatsFilter) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatsFilter) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatsFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k := range m.LabelSelector {\n\t\t\tv := m.LabelSelector[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.PodSandboxId) > 0 {\n\t\ti -= len(m.PodSandboxId)\n\t\tcopy(dAtA[i:], m.PodSandboxId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListContainerStatsResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListContainerStatsResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListContainerStatsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Stats) > 0 {\n\t\tfor iNdEx := len(m.Stats) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Stats[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k := range m.Labels {\n\t\t\tv := m.Labels[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.Metadata != nil {\n\t\t{\n\t\t\tsize, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Id) > 0 {\n\t\ti -= len(m.Id)\n\t\tcopy(dAtA[i:], m.Id)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Id)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStats) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStats) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStats) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.WritableLayer != nil {\n\t\t{\n\t\t\tsize, err := m.WritableLayer.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Memory != nil {\n\t\t{\n\t\t\tsize, err := m.Memory.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Cpu != nil {\n\t\t{\n\t\t\tsize, err := m.Cpu.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Attributes != nil {\n\t\t{\n\t\t\tsize, err := m.Attributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CpuUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CpuUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CpuUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UsageNanoCores != nil {\n\t\t{\n\t\t\tsize, err := m.UsageNanoCores.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.UsageCoreNanoSeconds != nil {\n\t\t{\n\t\t\tsize, err := m.UsageCoreNanoSeconds.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Timestamp != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timestamp))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MemoryUsage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MemoryUsage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MemoryUsage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MajorPageFaults != nil {\n\t\t{\n\t\t\tsize, err := m.MajorPageFaults.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.PageFaults != nil {\n\t\t{\n\t\t\tsize, err := m.PageFaults.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.RssBytes != nil {\n\t\t{\n\t\t\tsize, err := m.RssBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.UsageBytes != nil {\n\t\t{\n\t\t\tsize, err := m.UsageBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AvailableBytes != nil {\n\t\t{\n\t\t\tsize, err := m.AvailableBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.WorkingSetBytes != nil {\n\t\t{\n\t\t\tsize, err := m.WorkingSetBytes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Timestamp != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timestamp))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReopenContainerLogRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReopenContainerLogRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReopenContainerLogRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReopenContainerLogResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReopenContainerLogResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReopenContainerLogResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CheckpointContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CheckpointContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CheckpointContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Timeout != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.Timeout))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Location) > 0 {\n\t\ti -= len(m.Location)\n\t\tcopy(dAtA[i:], m.Location)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Location)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CheckpointContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CheckpointContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CheckpointContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GetEventsRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetEventsRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GetEventsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerEventResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerEventResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerEventResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodSandboxMetadata != nil {\n\t\t{\n\t\t\tsize, err := m.PodSandboxMetadata.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.CreatedAt != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.CreatedAt))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.ContainerEventType != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ContainerEventType))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.ContainerId) > 0 {\n\t\ti -= len(m.ContainerId)\n\t\tcopy(dAtA[i:], m.ContainerId)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintApi(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovApi(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *VersionRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VersionResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RuntimeName)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RuntimeVersion)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RuntimeApiVersion)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DNSConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Servers) > 0 {\n\t\tfor _, s := range m.Servers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor _, s := range m.Searches {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Options) > 0 {\n\t\tfor _, s := range m.Options {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PortMapping) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Protocol != 0 {\n\t\tn += 1 + sovApi(uint64(m.Protocol))\n\t}\n\tif m.ContainerPort != 0 {\n\t\tn += 1 + sovApi(uint64(m.ContainerPort))\n\t}\n\tif m.HostPort != 0 {\n\t\tn += 1 + sovApi(uint64(m.HostPort))\n\t}\n\tl = len(m.HostIp)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Mount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.HostPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Readonly {\n\t\tn += 2\n\t}\n\tif m.SelinuxRelabel {\n\t\tn += 2\n\t}\n\tif m.Propagation != 0 {\n\t\tn += 1 + sovApi(uint64(m.Propagation))\n\t}\n\treturn n\n}\n\nfunc (m *IDMapping) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HostId != 0 {\n\t\tn += 1 + sovApi(uint64(m.HostId))\n\t}\n\tif m.ContainerId != 0 {\n\t\tn += 1 + sovApi(uint64(m.ContainerId))\n\t}\n\tif m.Length != 0 {\n\t\tn += 1 + sovApi(uint64(m.Length))\n\t}\n\treturn n\n}\n\nfunc (m *UserNamespace) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Mode != 0 {\n\t\tn += 1 + sovApi(uint64(m.Mode))\n\t}\n\tif len(m.Uids) > 0 {\n\t\tfor _, e := range m.Uids {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Gids) > 0 {\n\t\tfor _, e := range m.Gids {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamespaceOption) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Network != 0 {\n\t\tn += 1 + sovApi(uint64(m.Network))\n\t}\n\tif m.Pid != 0 {\n\t\tn += 1 + sovApi(uint64(m.Pid))\n\t}\n\tif m.Ipc != 0 {\n\t\tn += 1 + sovApi(uint64(m.Ipc))\n\t}\n\tl = len(m.TargetId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.UsernsOptions != nil {\n\t\tl = m.UsernsOptions.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Int64Value) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != 0 {\n\t\tn += 1 + sovApi(uint64(m.Value))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxSandboxSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NamespaceOptions != nil {\n\t\tl = m.NamespaceOptions.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SelinuxOptions != nil {\n\t\tl = m.SelinuxOptions.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tl = m.RunAsUser.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.ReadonlyRootfs {\n\t\tn += 2\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tl = 0\n\t\tfor _, e := range m.SupplementalGroups {\n\t\t\tl += sovApi(uint64(e))\n\t\t}\n\t\tn += 1 + sovApi(uint64(l)) + l\n\t}\n\tif m.Privileged {\n\t\tn += 2\n\t}\n\tl = len(m.SeccompProfilePath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RunAsGroup != nil {\n\t\tl = m.RunAsGroup.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Seccomp != nil {\n\t\tl = m.Seccomp.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Apparmor != nil {\n\t\tl = m.Apparmor.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SecurityProfile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ProfileType != 0 {\n\t\tn += 1 + sovApi(uint64(m.ProfileType))\n\t}\n\tl = len(m.LocalhostRef)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxPodSandboxConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.CgroupParent)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor k, v := range m.Sysctls {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxMetadata) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Uid)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Namespace)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Attempt != 0 {\n\t\tn += 1 + sovApi(uint64(m.Attempt))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Hostname)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.LogDirectory)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.DnsConfig != nil {\n\t\tl = m.DnsConfig.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.PortMappings) > 0 {\n\t\tfor _, e := range m.PortMappings {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Windows != nil {\n\t\tl = m.Windows.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RunPodSandboxRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Config != nil {\n\t\tl = m.Config.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RuntimeHandler)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RunPodSandboxResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StopPodSandboxRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StopPodSandboxResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *RemovePodSandboxRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RemovePodSandboxResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *PodSandboxStatusRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Verbose {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *PodIP) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Ip)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxNetworkStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Ip)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.AdditionalIps) > 0 {\n\t\tfor _, e := range m.AdditionalIps {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Namespace) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Options != nil {\n\t\tl = m.Options.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxPodSandboxStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Namespaces != nil {\n\t\tl = m.Namespaces.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\tif m.CreatedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.CreatedAt))\n\t}\n\tif m.Network != nil {\n\t\tl = m.Network.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.RuntimeHandler)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStatusResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Status != nil {\n\t\tl = m.Status.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Info) > 0 {\n\t\tfor k, v := range m.Info {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStateValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxFilter) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != nil {\n\t\tl = m.State.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k, v := range m.LabelSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListPodSandboxRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\tl = m.Filter.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandbox) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\tif m.CreatedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.CreatedAt))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.RuntimeHandler)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ListPodSandboxResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStatsRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStatsResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Stats != nil {\n\t\tl = m.Stats.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStatsFilter) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k, v := range m.LabelSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListPodSandboxStatsRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\tl = m.Filter.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ListPodSandboxStatsResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Stats) > 0 {\n\t\tfor _, e := range m.Stats {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodSandboxStats) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Attributes != nil {\n\t\tl = m.Attributes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Windows != nil {\n\t\tl = m.Windows.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxPodSandboxStats) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Cpu != nil {\n\t\tl = m.Cpu.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Memory != nil {\n\t\tl = m.Memory.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Network != nil {\n\t\tl = m.Network.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Process != nil {\n\t\tl = m.Process.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *WindowsPodSandboxStats) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *NetworkUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Timestamp != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timestamp))\n\t}\n\tif m.DefaultInterface != nil {\n\t\tl = m.DefaultInterface.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Interfaces) > 0 {\n\t\tfor _, e := range m.Interfaces {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkInterfaceUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RxBytes != nil {\n\t\tl = m.RxBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RxErrors != nil {\n\t\tl = m.RxErrors.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.TxBytes != nil {\n\t\tl = m.TxBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.TxErrors != nil {\n\t\tl = m.TxErrors.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ProcessUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Timestamp != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timestamp))\n\t}\n\tif m.ProcessCount != nil {\n\t\tl = m.ProcessCount.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ImageSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Image)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *KeyValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Value)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxContainerResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.CpuPeriod != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuPeriod))\n\t}\n\tif m.CpuQuota != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuQuota))\n\t}\n\tif m.CpuShares != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuShares))\n\t}\n\tif m.MemoryLimitInBytes != 0 {\n\t\tn += 1 + sovApi(uint64(m.MemoryLimitInBytes))\n\t}\n\tif m.OomScoreAdj != 0 {\n\t\tn += 1 + sovApi(uint64(m.OomScoreAdj))\n\t}\n\tl = len(m.CpusetCpus)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.CpusetMems)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.HugepageLimits) > 0 {\n\t\tfor _, e := range m.HugepageLimits {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Unified) > 0 {\n\t\tfor k, v := range m.Unified {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.MemorySwapLimitInBytes != 0 {\n\t\tn += 1 + sovApi(uint64(m.MemorySwapLimitInBytes))\n\t}\n\treturn n\n}\n\nfunc (m *HugepageLimit) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PageSize)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Limit != 0 {\n\t\tn += 1 + sovApi(uint64(m.Limit))\n\t}\n\treturn n\n}\n\nfunc (m *SELinuxOption) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.User)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Role)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Type)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Level)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Capability) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.AddCapabilities) > 0 {\n\t\tfor _, s := range m.AddCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.DropCapabilities) > 0 {\n\t\tfor _, s := range m.DropCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.AddAmbientCapabilities) > 0 {\n\t\tfor _, s := range m.AddAmbientCapabilities {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LinuxContainerSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Capabilities != nil {\n\t\tl = m.Capabilities.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Privileged {\n\t\tn += 2\n\t}\n\tif m.NamespaceOptions != nil {\n\t\tl = m.NamespaceOptions.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SelinuxOptions != nil {\n\t\tl = m.SelinuxOptions.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tl = m.RunAsUser.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RunAsUsername)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.ReadonlyRootfs {\n\t\tn += 2\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tl = 0\n\t\tfor _, e := range m.SupplementalGroups {\n\t\t\tl += sovApi(uint64(e))\n\t\t}\n\t\tn += 1 + sovApi(uint64(l)) + l\n\t}\n\tl = len(m.ApparmorProfile)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.SeccompProfilePath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.NoNewPrivs {\n\t\tn += 2\n\t}\n\tif m.RunAsGroup != nil {\n\t\tl = m.RunAsGroup.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.MaskedPaths) > 0 {\n\t\tfor _, s := range m.MaskedPaths {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.ReadonlyPaths) > 0 {\n\t\tfor _, s := range m.ReadonlyPaths {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif m.Seccomp != nil {\n\t\tl = m.Seccomp.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Apparmor != nil {\n\t\tl = m.Apparmor.Size()\n\t\tn += 2 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LinuxContainerConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *WindowsSandboxSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RunAsUsername)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.CredentialSpec)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.HostProcess {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *WindowsPodSandboxConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *WindowsContainerSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RunAsUsername)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.CredentialSpec)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.HostProcess {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *WindowsContainerConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *WindowsContainerResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.CpuShares != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuShares))\n\t}\n\tif m.CpuCount != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuCount))\n\t}\n\tif m.CpuMaximum != 0 {\n\t\tn += 1 + sovApi(uint64(m.CpuMaximum))\n\t}\n\tif m.MemoryLimitInBytes != 0 {\n\t\tn += 1 + sovApi(uint64(m.MemoryLimitInBytes))\n\t}\n\tif m.RootfsSizeInBytes != 0 {\n\t\tn += 1 + sovApi(uint64(m.RootfsSizeInBytes))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerMetadata) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Attempt != 0 {\n\t\tn += 1 + sovApi(uint64(m.Attempt))\n\t}\n\treturn n\n}\n\nfunc (m *Device) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.HostPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Permissions)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor _, s := range m.Args {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tl = len(m.WorkingDir)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Envs) > 0 {\n\t\tfor _, e := range m.Envs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor _, e := range m.Mounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.LogPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Stdin {\n\t\tn += 2\n\t}\n\tif m.StdinOnce {\n\t\tn += 2\n\t}\n\tif m.Tty {\n\t\tn += 2\n\t}\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Windows != nil {\n\t\tl = m.Windows.Size()\n\t\tn += 2 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CreateContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Config != nil {\n\t\tl = m.Config.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SandboxConfig != nil {\n\t\tl = m.SandboxConfig.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CreateContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StartContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StartContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *StopContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Timeout != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timeout))\n\t}\n\treturn n\n}\n\nfunc (m *StopContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *RemoveContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RemoveContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ContainerStateValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerFilter) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != nil {\n\t\tl = m.State.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k, v := range m.LabelSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListContainersRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\tl = m.Filter.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Container) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.ImageRef)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\tif m.CreatedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.CreatedAt))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListContainersResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatusRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Verbose {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovApi(uint64(m.State))\n\t}\n\tif m.CreatedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.CreatedAt))\n\t}\n\tif m.StartedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.StartedAt))\n\t}\n\tif m.FinishedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.FinishedAt))\n\t}\n\tif m.ExitCode != 0 {\n\t\tn += 1 + sovApi(uint64(m.ExitCode))\n\t}\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.ImageRef)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Reason)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Message)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor _, e := range m.Mounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tl = len(m.LogPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 2 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatusResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Status != nil {\n\t\tl = m.Status.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Info) > 0 {\n\t\tfor k, v := range m.Info {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Windows != nil {\n\t\tl = m.Windows.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UpdateContainerResourcesRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Windows != nil {\n\t\tl = m.Windows.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UpdateContainerResourcesResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ExecSyncRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Cmd) > 0 {\n\t\tfor _, s := range m.Cmd {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif m.Timeout != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timeout))\n\t}\n\treturn n\n}\n\nfunc (m *ExecSyncResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Stdout)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Stderr)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.ExitCode != 0 {\n\t\tn += 1 + sovApi(uint64(m.ExitCode))\n\t}\n\treturn n\n}\n\nfunc (m *ExecRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Cmd) > 0 {\n\t\tfor _, s := range m.Cmd {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif m.Tty {\n\t\tn += 2\n\t}\n\tif m.Stdin {\n\t\tn += 2\n\t}\n\tif m.Stdout {\n\t\tn += 2\n\t}\n\tif m.Stderr {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ExecResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Url)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AttachRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Stdin {\n\t\tn += 2\n\t}\n\tif m.Tty {\n\t\tn += 2\n\t}\n\tif m.Stdout {\n\t\tn += 2\n\t}\n\tif m.Stderr {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *AttachResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Url)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PortForwardRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Port) > 0 {\n\t\tl = 0\n\t\tfor _, e := range m.Port {\n\t\t\tl += sovApi(uint64(e))\n\t\t}\n\t\tn += 1 + sovApi(uint64(l)) + l\n\t}\n\treturn n\n}\n\nfunc (m *PortForwardResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Url)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ImageFilter) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ListImagesRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\tl = m.Filter.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Image) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.RepoTags) > 0 {\n\t\tfor _, s := range m.RepoTags {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.RepoDigests) > 0 {\n\t\tfor _, s := range m.RepoDigests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif m.Size_ != 0 {\n\t\tn += 1 + sovApi(uint64(m.Size_))\n\t}\n\tif m.Uid != nil {\n\t\tl = m.Uid.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Username)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Spec != nil {\n\t\tl = m.Spec.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Pinned {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ListImagesResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Images) > 0 {\n\t\tfor _, e := range m.Images {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ImageStatusRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Verbose {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ImageStatusResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Info) > 0 {\n\t\tfor k, v := range m.Info {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AuthConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Username)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Password)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Auth)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.ServerAddress)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.IdentityToken)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.RegistryToken)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PullImageRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Auth != nil {\n\t\tl = m.Auth.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.SandboxConfig != nil {\n\t\tl = m.SandboxConfig.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PullImageResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ImageRef)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RemoveImageRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RemoveImageResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *NetworkConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodCidr)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NetworkConfig != nil {\n\t\tl = m.NetworkConfig.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UpdateRuntimeConfigRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.RuntimeConfig != nil {\n\t\tl = m.RuntimeConfig.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UpdateRuntimeConfigResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *RuntimeCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Status {\n\t\tn += 2\n\t}\n\tl = len(m.Reason)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Message)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatusRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Verbose {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *StatusResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Status != nil {\n\t\tl = m.Status.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Info) > 0 {\n\t\tfor k, v := range m.Info {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ImageFsInfoRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *UInt64Value) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != 0 {\n\t\tn += 1 + sovApi(uint64(m.Value))\n\t}\n\treturn n\n}\n\nfunc (m *FilesystemIdentifier) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Mountpoint)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *FilesystemUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Timestamp != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timestamp))\n\t}\n\tif m.FsId != nil {\n\t\tl = m.FsId.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.UsedBytes != nil {\n\t\tl = m.UsedBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.InodesUsed != nil {\n\t\tl = m.InodesUsed.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ImageFsInfoResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ImageFilesystems) > 0 {\n\t\tfor _, e := range m.ImageFilesystems {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatsRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatsResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Stats != nil {\n\t\tl = m.Stats.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ListContainerStatsRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Filter != nil {\n\t\tl = m.Filter.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStatsFilter) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.PodSandboxId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.LabelSelector) > 0 {\n\t\tfor k, v := range m.LabelSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListContainerStatsResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Stats) > 0 {\n\t\tfor _, e := range m.Stats {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Id)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Metadata != nil {\n\t\tl = m.Metadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStats) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Attributes != nil {\n\t\tl = m.Attributes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Cpu != nil {\n\t\tl = m.Cpu.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Memory != nil {\n\t\tl = m.Memory.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.WritableLayer != nil {\n\t\tl = m.WritableLayer.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CpuUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Timestamp != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timestamp))\n\t}\n\tif m.UsageCoreNanoSeconds != nil {\n\t\tl = m.UsageCoreNanoSeconds.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.UsageNanoCores != nil {\n\t\tl = m.UsageNanoCores.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MemoryUsage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Timestamp != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timestamp))\n\t}\n\tif m.WorkingSetBytes != nil {\n\t\tl = m.WorkingSetBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.AvailableBytes != nil {\n\t\tl = m.AvailableBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.UsageBytes != nil {\n\t\tl = m.UsageBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.RssBytes != nil {\n\t\tl = m.RssBytes.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.PageFaults != nil {\n\t\tl = m.PageFaults.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.MajorPageFaults != nil {\n\t\tl = m.MajorPageFaults.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReopenContainerLogRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReopenContainerLogResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *CheckpointContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Location)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Timeout != 0 {\n\t\tn += 1 + sovApi(uint64(m.Timeout))\n\t}\n\treturn n\n}\n\nfunc (m *CheckpointContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *GetEventsRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ContainerEventResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerId)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.ContainerEventType != 0 {\n\t\tn += 1 + sovApi(uint64(m.ContainerEventType))\n\t}\n\tif m.CreatedAt != 0 {\n\t\tn += 1 + sovApi(uint64(m.CreatedAt))\n\t}\n\tif m.PodSandboxMetadata != nil {\n\t\tl = m.PodSandboxMetadata.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovApi(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozApi(x uint64) (n int) {\n\treturn sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *VersionRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VersionRequest{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VersionResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VersionResponse{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`RuntimeName:` + fmt.Sprintf(\"%v\", this.RuntimeName) + `,`,\n\t\t`RuntimeVersion:` + fmt.Sprintf(\"%v\", this.RuntimeVersion) + `,`,\n\t\t`RuntimeApiVersion:` + fmt.Sprintf(\"%v\", this.RuntimeApiVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DNSConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DNSConfig{`,\n\t\t`Servers:` + fmt.Sprintf(\"%v\", this.Servers) + `,`,\n\t\t`Searches:` + fmt.Sprintf(\"%v\", this.Searches) + `,`,\n\t\t`Options:` + fmt.Sprintf(\"%v\", this.Options) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortMapping) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortMapping{`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`ContainerPort:` + fmt.Sprintf(\"%v\", this.ContainerPort) + `,`,\n\t\t`HostPort:` + fmt.Sprintf(\"%v\", this.HostPort) + `,`,\n\t\t`HostIp:` + fmt.Sprintf(\"%v\", this.HostIp) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Mount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Mount{`,\n\t\t`ContainerPath:` + fmt.Sprintf(\"%v\", this.ContainerPath) + `,`,\n\t\t`HostPath:` + fmt.Sprintf(\"%v\", this.HostPath) + `,`,\n\t\t`Readonly:` + fmt.Sprintf(\"%v\", this.Readonly) + `,`,\n\t\t`SelinuxRelabel:` + fmt.Sprintf(\"%v\", this.SelinuxRelabel) + `,`,\n\t\t`Propagation:` + fmt.Sprintf(\"%v\", this.Propagation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IDMapping) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IDMapping{`,\n\t\t`HostId:` + fmt.Sprintf(\"%v\", this.HostId) + `,`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Length:` + fmt.Sprintf(\"%v\", this.Length) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserNamespace) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForUids := \"[]*IDMapping{\"\n\tfor _, f := range this.Uids {\n\t\trepeatedStringForUids += strings.Replace(f.String(), \"IDMapping\", \"IDMapping\", 1) + \",\"\n\t}\n\trepeatedStringForUids += \"}\"\n\trepeatedStringForGids := \"[]*IDMapping{\"\n\tfor _, f := range this.Gids {\n\t\trepeatedStringForGids += strings.Replace(f.String(), \"IDMapping\", \"IDMapping\", 1) + \",\"\n\t}\n\trepeatedStringForGids += \"}\"\n\ts := strings.Join([]string{`&UserNamespace{`,\n\t\t`Mode:` + fmt.Sprintf(\"%v\", this.Mode) + `,`,\n\t\t`Uids:` + repeatedStringForUids + `,`,\n\t\t`Gids:` + repeatedStringForGids + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceOption) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamespaceOption{`,\n\t\t`Network:` + fmt.Sprintf(\"%v\", this.Network) + `,`,\n\t\t`Pid:` + fmt.Sprintf(\"%v\", this.Pid) + `,`,\n\t\t`Ipc:` + fmt.Sprintf(\"%v\", this.Ipc) + `,`,\n\t\t`TargetId:` + fmt.Sprintf(\"%v\", this.TargetId) + `,`,\n\t\t`UsernsOptions:` + strings.Replace(this.UsernsOptions.String(), \"UserNamespace\", \"UserNamespace\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Int64Value) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Int64Value{`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxSandboxSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LinuxSandboxSecurityContext{`,\n\t\t`NamespaceOptions:` + strings.Replace(this.NamespaceOptions.String(), \"NamespaceOption\", \"NamespaceOption\", 1) + `,`,\n\t\t`SelinuxOptions:` + strings.Replace(this.SelinuxOptions.String(), \"SELinuxOption\", \"SELinuxOption\", 1) + `,`,\n\t\t`RunAsUser:` + strings.Replace(this.RunAsUser.String(), \"Int64Value\", \"Int64Value\", 1) + `,`,\n\t\t`ReadonlyRootfs:` + fmt.Sprintf(\"%v\", this.ReadonlyRootfs) + `,`,\n\t\t`SupplementalGroups:` + fmt.Sprintf(\"%v\", this.SupplementalGroups) + `,`,\n\t\t`Privileged:` + fmt.Sprintf(\"%v\", this.Privileged) + `,`,\n\t\t`SeccompProfilePath:` + fmt.Sprintf(\"%v\", this.SeccompProfilePath) + `,`,\n\t\t`RunAsGroup:` + strings.Replace(this.RunAsGroup.String(), \"Int64Value\", \"Int64Value\", 1) + `,`,\n\t\t`Seccomp:` + strings.Replace(this.Seccomp.String(), \"SecurityProfile\", \"SecurityProfile\", 1) + `,`,\n\t\t`Apparmor:` + strings.Replace(this.Apparmor.String(), \"SecurityProfile\", \"SecurityProfile\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecurityProfile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecurityProfile{`,\n\t\t`ProfileType:` + fmt.Sprintf(\"%v\", this.ProfileType) + `,`,\n\t\t`LocalhostRef:` + fmt.Sprintf(\"%v\", this.LocalhostRef) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxPodSandboxConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSysctls := make([]string, 0, len(this.Sysctls))\n\tfor k := range this.Sysctls {\n\t\tkeysForSysctls = append(keysForSysctls, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSysctls)\n\tmapStringForSysctls := \"map[string]string{\"\n\tfor _, k := range keysForSysctls {\n\t\tmapStringForSysctls += fmt.Sprintf(\"%v: %v,\", k, this.Sysctls[k])\n\t}\n\tmapStringForSysctls += \"}\"\n\ts := strings.Join([]string{`&LinuxPodSandboxConfig{`,\n\t\t`CgroupParent:` + fmt.Sprintf(\"%v\", this.CgroupParent) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"LinuxSandboxSecurityContext\", \"LinuxSandboxSecurityContext\", 1) + `,`,\n\t\t`Sysctls:` + mapStringForSysctls + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"LinuxContainerResources\", \"LinuxContainerResources\", 1) + `,`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"LinuxContainerResources\", \"LinuxContainerResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxMetadata) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxMetadata{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Attempt:` + fmt.Sprintf(\"%v\", this.Attempt) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPortMappings := \"[]*PortMapping{\"\n\tfor _, f := range this.PortMappings {\n\t\trepeatedStringForPortMappings += strings.Replace(f.String(), \"PortMapping\", \"PortMapping\", 1) + \",\"\n\t}\n\trepeatedStringForPortMappings += \"}\"\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&PodSandboxConfig{`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"PodSandboxMetadata\", \"PodSandboxMetadata\", 1) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`LogDirectory:` + fmt.Sprintf(\"%v\", this.LogDirectory) + `,`,\n\t\t`DnsConfig:` + strings.Replace(this.DnsConfig.String(), \"DNSConfig\", \"DNSConfig\", 1) + `,`,\n\t\t`PortMappings:` + repeatedStringForPortMappings + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxPodSandboxConfig\", \"LinuxPodSandboxConfig\", 1) + `,`,\n\t\t`Windows:` + strings.Replace(this.Windows.String(), \"WindowsPodSandboxConfig\", \"WindowsPodSandboxConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RunPodSandboxRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RunPodSandboxRequest{`,\n\t\t`Config:` + strings.Replace(this.Config.String(), \"PodSandboxConfig\", \"PodSandboxConfig\", 1) + `,`,\n\t\t`RuntimeHandler:` + fmt.Sprintf(\"%v\", this.RuntimeHandler) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RunPodSandboxResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RunPodSandboxResponse{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StopPodSandboxRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StopPodSandboxRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StopPodSandboxResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StopPodSandboxResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemovePodSandboxRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemovePodSandboxRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemovePodSandboxResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemovePodSandboxResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatusRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxStatusRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`Verbose:` + fmt.Sprintf(\"%v\", this.Verbose) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodIP) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodIP{`,\n\t\t`Ip:` + fmt.Sprintf(\"%v\", this.Ip) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxNetworkStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAdditionalIps := \"[]*PodIP{\"\n\tfor _, f := range this.AdditionalIps {\n\t\trepeatedStringForAdditionalIps += strings.Replace(f.String(), \"PodIP\", \"PodIP\", 1) + \",\"\n\t}\n\trepeatedStringForAdditionalIps += \"}\"\n\ts := strings.Join([]string{`&PodSandboxNetworkStatus{`,\n\t\t`Ip:` + fmt.Sprintf(\"%v\", this.Ip) + `,`,\n\t\t`AdditionalIps:` + repeatedStringForAdditionalIps + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Namespace) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Namespace{`,\n\t\t`Options:` + strings.Replace(this.Options.String(), \"NamespaceOption\", \"NamespaceOption\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxPodSandboxStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LinuxPodSandboxStatus{`,\n\t\t`Namespaces:` + strings.Replace(this.Namespaces.String(), \"Namespace\", \"Namespace\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&PodSandboxStatus{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"PodSandboxMetadata\", \"PodSandboxMetadata\", 1) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`CreatedAt:` + fmt.Sprintf(\"%v\", this.CreatedAt) + `,`,\n\t\t`Network:` + strings.Replace(this.Network.String(), \"PodSandboxNetworkStatus\", \"PodSandboxNetworkStatus\", 1) + `,`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxPodSandboxStatus\", \"LinuxPodSandboxStatus\", 1) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`RuntimeHandler:` + fmt.Sprintf(\"%v\", this.RuntimeHandler) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatusResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForInfo := make([]string, 0, len(this.Info))\n\tfor k := range this.Info {\n\t\tkeysForInfo = append(keysForInfo, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForInfo)\n\tmapStringForInfo := \"map[string]string{\"\n\tfor _, k := range keysForInfo {\n\t\tmapStringForInfo += fmt.Sprintf(\"%v: %v,\", k, this.Info[k])\n\t}\n\tmapStringForInfo += \"}\"\n\ts := strings.Join([]string{`&PodSandboxStatusResponse{`,\n\t\t`Status:` + strings.Replace(this.Status.String(), \"PodSandboxStatus\", \"PodSandboxStatus\", 1) + `,`,\n\t\t`Info:` + mapStringForInfo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStateValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxStateValue{`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxFilter) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabelSelector := make([]string, 0, len(this.LabelSelector))\n\tfor k := range this.LabelSelector {\n\t\tkeysForLabelSelector = append(keysForLabelSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabelSelector)\n\tmapStringForLabelSelector := \"map[string]string{\"\n\tfor _, k := range keysForLabelSelector {\n\t\tmapStringForLabelSelector += fmt.Sprintf(\"%v: %v,\", k, this.LabelSelector[k])\n\t}\n\tmapStringForLabelSelector += \"}\"\n\ts := strings.Join([]string{`&PodSandboxFilter{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`State:` + strings.Replace(this.State.String(), \"PodSandboxStateValue\", \"PodSandboxStateValue\", 1) + `,`,\n\t\t`LabelSelector:` + mapStringForLabelSelector + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListPodSandboxRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListPodSandboxRequest{`,\n\t\t`Filter:` + strings.Replace(this.Filter.String(), \"PodSandboxFilter\", \"PodSandboxFilter\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandbox) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&PodSandbox{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"PodSandboxMetadata\", \"PodSandboxMetadata\", 1) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`CreatedAt:` + fmt.Sprintf(\"%v\", this.CreatedAt) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`RuntimeHandler:` + fmt.Sprintf(\"%v\", this.RuntimeHandler) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListPodSandboxResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]*PodSandbox{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(f.String(), \"PodSandbox\", \"PodSandbox\", 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ListPodSandboxResponse{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatsRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxStatsRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatsResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxStatsResponse{`,\n\t\t`Stats:` + strings.Replace(this.Stats.String(), \"PodSandboxStats\", \"PodSandboxStats\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStatsFilter) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabelSelector := make([]string, 0, len(this.LabelSelector))\n\tfor k := range this.LabelSelector {\n\t\tkeysForLabelSelector = append(keysForLabelSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabelSelector)\n\tmapStringForLabelSelector := \"map[string]string{\"\n\tfor _, k := range keysForLabelSelector {\n\t\tmapStringForLabelSelector += fmt.Sprintf(\"%v: %v,\", k, this.LabelSelector[k])\n\t}\n\tmapStringForLabelSelector += \"}\"\n\ts := strings.Join([]string{`&PodSandboxStatsFilter{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`LabelSelector:` + mapStringForLabelSelector + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListPodSandboxStatsRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListPodSandboxStatsRequest{`,\n\t\t`Filter:` + strings.Replace(this.Filter.String(), \"PodSandboxStatsFilter\", \"PodSandboxStatsFilter\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListPodSandboxStatsResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForStats := \"[]*PodSandboxStats{\"\n\tfor _, f := range this.Stats {\n\t\trepeatedStringForStats += strings.Replace(f.String(), \"PodSandboxStats\", \"PodSandboxStats\", 1) + \",\"\n\t}\n\trepeatedStringForStats += \"}\"\n\ts := strings.Join([]string{`&ListPodSandboxStatsResponse{`,\n\t\t`Stats:` + repeatedStringForStats + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&PodSandboxAttributes{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"PodSandboxMetadata\", \"PodSandboxMetadata\", 1) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSandboxStats) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSandboxStats{`,\n\t\t`Attributes:` + strings.Replace(this.Attributes.String(), \"PodSandboxAttributes\", \"PodSandboxAttributes\", 1) + `,`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxPodSandboxStats\", \"LinuxPodSandboxStats\", 1) + `,`,\n\t\t`Windows:` + strings.Replace(this.Windows.String(), \"WindowsPodSandboxStats\", \"WindowsPodSandboxStats\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxPodSandboxStats) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainers := \"[]*ContainerStats{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(f.String(), \"ContainerStats\", \"ContainerStats\", 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\ts := strings.Join([]string{`&LinuxPodSandboxStats{`,\n\t\t`Cpu:` + strings.Replace(this.Cpu.String(), \"CpuUsage\", \"CpuUsage\", 1) + `,`,\n\t\t`Memory:` + strings.Replace(this.Memory.String(), \"MemoryUsage\", \"MemoryUsage\", 1) + `,`,\n\t\t`Network:` + strings.Replace(this.Network.String(), \"NetworkUsage\", \"NetworkUsage\", 1) + `,`,\n\t\t`Process:` + strings.Replace(this.Process.String(), \"ProcessUsage\", \"ProcessUsage\", 1) + `,`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsPodSandboxStats) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsPodSandboxStats{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForInterfaces := \"[]*NetworkInterfaceUsage{\"\n\tfor _, f := range this.Interfaces {\n\t\trepeatedStringForInterfaces += strings.Replace(f.String(), \"NetworkInterfaceUsage\", \"NetworkInterfaceUsage\", 1) + \",\"\n\t}\n\trepeatedStringForInterfaces += \"}\"\n\ts := strings.Join([]string{`&NetworkUsage{`,\n\t\t`Timestamp:` + fmt.Sprintf(\"%v\", this.Timestamp) + `,`,\n\t\t`DefaultInterface:` + strings.Replace(this.DefaultInterface.String(), \"NetworkInterfaceUsage\", \"NetworkInterfaceUsage\", 1) + `,`,\n\t\t`Interfaces:` + repeatedStringForInterfaces + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkInterfaceUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkInterfaceUsage{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`RxBytes:` + strings.Replace(this.RxBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`RxErrors:` + strings.Replace(this.RxErrors.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`TxBytes:` + strings.Replace(this.TxBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`TxErrors:` + strings.Replace(this.TxErrors.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ProcessUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ProcessUsage{`,\n\t\t`Timestamp:` + fmt.Sprintf(\"%v\", this.Timestamp) + `,`,\n\t\t`ProcessCount:` + strings.Replace(this.ProcessCount.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ImageSpec{`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *KeyValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&KeyValue{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxContainerResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForHugepageLimits := \"[]*HugepageLimit{\"\n\tfor _, f := range this.HugepageLimits {\n\t\trepeatedStringForHugepageLimits += strings.Replace(f.String(), \"HugepageLimit\", \"HugepageLimit\", 1) + \",\"\n\t}\n\trepeatedStringForHugepageLimits += \"}\"\n\tkeysForUnified := make([]string, 0, len(this.Unified))\n\tfor k := range this.Unified {\n\t\tkeysForUnified = append(keysForUnified, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUnified)\n\tmapStringForUnified := \"map[string]string{\"\n\tfor _, k := range keysForUnified {\n\t\tmapStringForUnified += fmt.Sprintf(\"%v: %v,\", k, this.Unified[k])\n\t}\n\tmapStringForUnified += \"}\"\n\ts := strings.Join([]string{`&LinuxContainerResources{`,\n\t\t`CpuPeriod:` + fmt.Sprintf(\"%v\", this.CpuPeriod) + `,`,\n\t\t`CpuQuota:` + fmt.Sprintf(\"%v\", this.CpuQuota) + `,`,\n\t\t`CpuShares:` + fmt.Sprintf(\"%v\", this.CpuShares) + `,`,\n\t\t`MemoryLimitInBytes:` + fmt.Sprintf(\"%v\", this.MemoryLimitInBytes) + `,`,\n\t\t`OomScoreAdj:` + fmt.Sprintf(\"%v\", this.OomScoreAdj) + `,`,\n\t\t`CpusetCpus:` + fmt.Sprintf(\"%v\", this.CpusetCpus) + `,`,\n\t\t`CpusetMems:` + fmt.Sprintf(\"%v\", this.CpusetMems) + `,`,\n\t\t`HugepageLimits:` + repeatedStringForHugepageLimits + `,`,\n\t\t`Unified:` + mapStringForUnified + `,`,\n\t\t`MemorySwapLimitInBytes:` + fmt.Sprintf(\"%v\", this.MemorySwapLimitInBytes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HugepageLimit) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HugepageLimit{`,\n\t\t`PageSize:` + fmt.Sprintf(\"%v\", this.PageSize) + `,`,\n\t\t`Limit:` + fmt.Sprintf(\"%v\", this.Limit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SELinuxOption) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SELinuxOption{`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Role:` + fmt.Sprintf(\"%v\", this.Role) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Level:` + fmt.Sprintf(\"%v\", this.Level) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Capability) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Capability{`,\n\t\t`AddCapabilities:` + fmt.Sprintf(\"%v\", this.AddCapabilities) + `,`,\n\t\t`DropCapabilities:` + fmt.Sprintf(\"%v\", this.DropCapabilities) + `,`,\n\t\t`AddAmbientCapabilities:` + fmt.Sprintf(\"%v\", this.AddAmbientCapabilities) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxContainerSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LinuxContainerSecurityContext{`,\n\t\t`Capabilities:` + strings.Replace(this.Capabilities.String(), \"Capability\", \"Capability\", 1) + `,`,\n\t\t`Privileged:` + fmt.Sprintf(\"%v\", this.Privileged) + `,`,\n\t\t`NamespaceOptions:` + strings.Replace(this.NamespaceOptions.String(), \"NamespaceOption\", \"NamespaceOption\", 1) + `,`,\n\t\t`SelinuxOptions:` + strings.Replace(this.SelinuxOptions.String(), \"SELinuxOption\", \"SELinuxOption\", 1) + `,`,\n\t\t`RunAsUser:` + strings.Replace(this.RunAsUser.String(), \"Int64Value\", \"Int64Value\", 1) + `,`,\n\t\t`RunAsUsername:` + fmt.Sprintf(\"%v\", this.RunAsUsername) + `,`,\n\t\t`ReadonlyRootfs:` + fmt.Sprintf(\"%v\", this.ReadonlyRootfs) + `,`,\n\t\t`SupplementalGroups:` + fmt.Sprintf(\"%v\", this.SupplementalGroups) + `,`,\n\t\t`ApparmorProfile:` + fmt.Sprintf(\"%v\", this.ApparmorProfile) + `,`,\n\t\t`SeccompProfilePath:` + fmt.Sprintf(\"%v\", this.SeccompProfilePath) + `,`,\n\t\t`NoNewPrivs:` + fmt.Sprintf(\"%v\", this.NoNewPrivs) + `,`,\n\t\t`RunAsGroup:` + strings.Replace(this.RunAsGroup.String(), \"Int64Value\", \"Int64Value\", 1) + `,`,\n\t\t`MaskedPaths:` + fmt.Sprintf(\"%v\", this.MaskedPaths) + `,`,\n\t\t`ReadonlyPaths:` + fmt.Sprintf(\"%v\", this.ReadonlyPaths) + `,`,\n\t\t`Seccomp:` + strings.Replace(this.Seccomp.String(), \"SecurityProfile\", \"SecurityProfile\", 1) + `,`,\n\t\t`Apparmor:` + strings.Replace(this.Apparmor.String(), \"SecurityProfile\", \"SecurityProfile\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxContainerConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LinuxContainerConfig{`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"LinuxContainerResources\", \"LinuxContainerResources\", 1) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"LinuxContainerSecurityContext\", \"LinuxContainerSecurityContext\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsSandboxSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsSandboxSecurityContext{`,\n\t\t`RunAsUsername:` + fmt.Sprintf(\"%v\", this.RunAsUsername) + `,`,\n\t\t`CredentialSpec:` + fmt.Sprintf(\"%v\", this.CredentialSpec) + `,`,\n\t\t`HostProcess:` + fmt.Sprintf(\"%v\", this.HostProcess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsPodSandboxConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsPodSandboxConfig{`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"WindowsSandboxSecurityContext\", \"WindowsSandboxSecurityContext\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsContainerSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsContainerSecurityContext{`,\n\t\t`RunAsUsername:` + fmt.Sprintf(\"%v\", this.RunAsUsername) + `,`,\n\t\t`CredentialSpec:` + fmt.Sprintf(\"%v\", this.CredentialSpec) + `,`,\n\t\t`HostProcess:` + fmt.Sprintf(\"%v\", this.HostProcess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsContainerConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsContainerConfig{`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"WindowsContainerResources\", \"WindowsContainerResources\", 1) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"WindowsContainerSecurityContext\", \"WindowsContainerSecurityContext\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsContainerResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsContainerResources{`,\n\t\t`CpuShares:` + fmt.Sprintf(\"%v\", this.CpuShares) + `,`,\n\t\t`CpuCount:` + fmt.Sprintf(\"%v\", this.CpuCount) + `,`,\n\t\t`CpuMaximum:` + fmt.Sprintf(\"%v\", this.CpuMaximum) + `,`,\n\t\t`MemoryLimitInBytes:` + fmt.Sprintf(\"%v\", this.MemoryLimitInBytes) + `,`,\n\t\t`RootfsSizeInBytes:` + fmt.Sprintf(\"%v\", this.RootfsSizeInBytes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerMetadata) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerMetadata{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Attempt:` + fmt.Sprintf(\"%v\", this.Attempt) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Device) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Device{`,\n\t\t`ContainerPath:` + fmt.Sprintf(\"%v\", this.ContainerPath) + `,`,\n\t\t`HostPath:` + fmt.Sprintf(\"%v\", this.HostPath) + `,`,\n\t\t`Permissions:` + fmt.Sprintf(\"%v\", this.Permissions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForEnvs := \"[]*KeyValue{\"\n\tfor _, f := range this.Envs {\n\t\trepeatedStringForEnvs += strings.Replace(f.String(), \"KeyValue\", \"KeyValue\", 1) + \",\"\n\t}\n\trepeatedStringForEnvs += \"}\"\n\trepeatedStringForMounts := \"[]*Mount{\"\n\tfor _, f := range this.Mounts {\n\t\trepeatedStringForMounts += strings.Replace(f.String(), \"Mount\", \"Mount\", 1) + \",\"\n\t}\n\trepeatedStringForMounts += \"}\"\n\trepeatedStringForDevices := \"[]*Device{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(f.String(), \"Device\", \"Device\", 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ContainerConfig{`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"ContainerMetadata\", \"ContainerMetadata\", 1) + `,`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`WorkingDir:` + fmt.Sprintf(\"%v\", this.WorkingDir) + `,`,\n\t\t`Envs:` + repeatedStringForEnvs + `,`,\n\t\t`Mounts:` + repeatedStringForMounts + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`LogPath:` + fmt.Sprintf(\"%v\", this.LogPath) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`StdinOnce:` + fmt.Sprintf(\"%v\", this.StdinOnce) + `,`,\n\t\t`Tty:` + fmt.Sprintf(\"%v\", this.Tty) + `,`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxContainerConfig\", \"LinuxContainerConfig\", 1) + `,`,\n\t\t`Windows:` + strings.Replace(this.Windows.String(), \"WindowsContainerConfig\", \"WindowsContainerConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateContainerRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`Config:` + strings.Replace(this.Config.String(), \"ContainerConfig\", \"ContainerConfig\", 1) + `,`,\n\t\t`SandboxConfig:` + strings.Replace(this.SandboxConfig.String(), \"PodSandboxConfig\", \"PodSandboxConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateContainerResponse{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StartContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StartContainerRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StartContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StartContainerResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StopContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StopContainerRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Timeout:` + fmt.Sprintf(\"%v\", this.Timeout) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StopContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StopContainerResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveContainerRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveContainerResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateValue{`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerFilter) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabelSelector := make([]string, 0, len(this.LabelSelector))\n\tfor k := range this.LabelSelector {\n\t\tkeysForLabelSelector = append(keysForLabelSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabelSelector)\n\tmapStringForLabelSelector := \"map[string]string{\"\n\tfor _, k := range keysForLabelSelector {\n\t\tmapStringForLabelSelector += fmt.Sprintf(\"%v: %v,\", k, this.LabelSelector[k])\n\t}\n\tmapStringForLabelSelector += \"}\"\n\ts := strings.Join([]string{`&ContainerFilter{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`State:` + strings.Replace(this.State.String(), \"ContainerStateValue\", \"ContainerStateValue\", 1) + `,`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`LabelSelector:` + mapStringForLabelSelector + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListContainersRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListContainersRequest{`,\n\t\t`Filter:` + strings.Replace(this.Filter.String(), \"ContainerFilter\", \"ContainerFilter\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Container) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&Container{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"ContainerMetadata\", \"ContainerMetadata\", 1) + `,`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`ImageRef:` + fmt.Sprintf(\"%v\", this.ImageRef) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`CreatedAt:` + fmt.Sprintf(\"%v\", this.CreatedAt) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListContainersResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainers := \"[]*Container{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(f.String(), \"Container\", \"Container\", 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\ts := strings.Join([]string{`&ListContainersResponse{`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatusRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStatusRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Verbose:` + fmt.Sprintf(\"%v\", this.Verbose) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMounts := \"[]*Mount{\"\n\tfor _, f := range this.Mounts {\n\t\trepeatedStringForMounts += strings.Replace(f.String(), \"Mount\", \"Mount\", 1) + \",\"\n\t}\n\trepeatedStringForMounts += \"}\"\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ContainerStatus{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"ContainerMetadata\", \"ContainerMetadata\", 1) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`CreatedAt:` + fmt.Sprintf(\"%v\", this.CreatedAt) + `,`,\n\t\t`StartedAt:` + fmt.Sprintf(\"%v\", this.StartedAt) + `,`,\n\t\t`FinishedAt:` + fmt.Sprintf(\"%v\", this.FinishedAt) + `,`,\n\t\t`ExitCode:` + fmt.Sprintf(\"%v\", this.ExitCode) + `,`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`ImageRef:` + fmt.Sprintf(\"%v\", this.ImageRef) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`Mounts:` + repeatedStringForMounts + `,`,\n\t\t`LogPath:` + fmt.Sprintf(\"%v\", this.LogPath) + `,`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"ContainerResources\", \"ContainerResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatusResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForInfo := make([]string, 0, len(this.Info))\n\tfor k := range this.Info {\n\t\tkeysForInfo = append(keysForInfo, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForInfo)\n\tmapStringForInfo := \"map[string]string{\"\n\tfor _, k := range keysForInfo {\n\t\tmapStringForInfo += fmt.Sprintf(\"%v: %v,\", k, this.Info[k])\n\t}\n\tmapStringForInfo += \"}\"\n\ts := strings.Join([]string{`&ContainerStatusResponse{`,\n\t\t`Status:` + strings.Replace(this.Status.String(), \"ContainerStatus\", \"ContainerStatus\", 1) + `,`,\n\t\t`Info:` + mapStringForInfo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResources{`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxContainerResources\", \"LinuxContainerResources\", 1) + `,`,\n\t\t`Windows:` + strings.Replace(this.Windows.String(), \"WindowsContainerResources\", \"WindowsContainerResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateContainerResourcesRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&UpdateContainerResourcesRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxContainerResources\", \"LinuxContainerResources\", 1) + `,`,\n\t\t`Windows:` + strings.Replace(this.Windows.String(), \"WindowsContainerResources\", \"WindowsContainerResources\", 1) + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateContainerResourcesResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UpdateContainerResourcesResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecSyncRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecSyncRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Cmd:` + fmt.Sprintf(\"%v\", this.Cmd) + `,`,\n\t\t`Timeout:` + fmt.Sprintf(\"%v\", this.Timeout) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecSyncResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecSyncResponse{`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`ExitCode:` + fmt.Sprintf(\"%v\", this.ExitCode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Cmd:` + fmt.Sprintf(\"%v\", this.Cmd) + `,`,\n\t\t`Tty:` + fmt.Sprintf(\"%v\", this.Tty) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecResponse{`,\n\t\t`Url:` + fmt.Sprintf(\"%v\", this.Url) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AttachRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AttachRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Tty:` + fmt.Sprintf(\"%v\", this.Tty) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AttachResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AttachResponse{`,\n\t\t`Url:` + fmt.Sprintf(\"%v\", this.Url) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortForwardRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortForwardRequest{`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortForwardResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortForwardResponse{`,\n\t\t`Url:` + fmt.Sprintf(\"%v\", this.Url) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageFilter) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageFilter{`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListImagesRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListImagesRequest{`,\n\t\t`Filter:` + strings.Replace(this.Filter.String(), \"ImageFilter\", \"ImageFilter\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Image) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Image{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`RepoTags:` + fmt.Sprintf(\"%v\", this.RepoTags) + `,`,\n\t\t`RepoDigests:` + fmt.Sprintf(\"%v\", this.RepoDigests) + `,`,\n\t\t`Size_:` + fmt.Sprintf(\"%v\", this.Size_) + `,`,\n\t\t`Uid:` + strings.Replace(this.Uid.String(), \"Int64Value\", \"Int64Value\", 1) + `,`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`Spec:` + strings.Replace(this.Spec.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`Pinned:` + fmt.Sprintf(\"%v\", this.Pinned) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListImagesResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForImages := \"[]*Image{\"\n\tfor _, f := range this.Images {\n\t\trepeatedStringForImages += strings.Replace(f.String(), \"Image\", \"Image\", 1) + \",\"\n\t}\n\trepeatedStringForImages += \"}\"\n\ts := strings.Join([]string{`&ListImagesResponse{`,\n\t\t`Images:` + repeatedStringForImages + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageStatusRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageStatusRequest{`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`Verbose:` + fmt.Sprintf(\"%v\", this.Verbose) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageStatusResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForInfo := make([]string, 0, len(this.Info))\n\tfor k := range this.Info {\n\t\tkeysForInfo = append(keysForInfo, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForInfo)\n\tmapStringForInfo := \"map[string]string{\"\n\tfor _, k := range keysForInfo {\n\t\tmapStringForInfo += fmt.Sprintf(\"%v: %v,\", k, this.Info[k])\n\t}\n\tmapStringForInfo += \"}\"\n\ts := strings.Join([]string{`&ImageStatusResponse{`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"Image\", \"Image\", 1) + `,`,\n\t\t`Info:` + mapStringForInfo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AuthConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AuthConfig{`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`Password:` + fmt.Sprintf(\"%v\", this.Password) + `,`,\n\t\t`Auth:` + fmt.Sprintf(\"%v\", this.Auth) + `,`,\n\t\t`ServerAddress:` + fmt.Sprintf(\"%v\", this.ServerAddress) + `,`,\n\t\t`IdentityToken:` + fmt.Sprintf(\"%v\", this.IdentityToken) + `,`,\n\t\t`RegistryToken:` + fmt.Sprintf(\"%v\", this.RegistryToken) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PullImageRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PullImageRequest{`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`Auth:` + strings.Replace(this.Auth.String(), \"AuthConfig\", \"AuthConfig\", 1) + `,`,\n\t\t`SandboxConfig:` + strings.Replace(this.SandboxConfig.String(), \"PodSandboxConfig\", \"PodSandboxConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PullImageResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PullImageResponse{`,\n\t\t`ImageRef:` + fmt.Sprintf(\"%v\", this.ImageRef) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveImageRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveImageRequest{`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageSpec\", \"ImageSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveImageResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveImageResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkConfig{`,\n\t\t`PodCidr:` + fmt.Sprintf(\"%v\", this.PodCidr) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeConfig{`,\n\t\t`NetworkConfig:` + strings.Replace(this.NetworkConfig.String(), \"NetworkConfig\", \"NetworkConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateRuntimeConfigRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UpdateRuntimeConfigRequest{`,\n\t\t`RuntimeConfig:` + strings.Replace(this.RuntimeConfig.String(), \"RuntimeConfig\", \"RuntimeConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateRuntimeConfigResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UpdateRuntimeConfigResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]*RuntimeCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(f.String(), \"RuntimeCondition\", \"RuntimeCondition\", 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&RuntimeStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatusRequest{`,\n\t\t`Verbose:` + fmt.Sprintf(\"%v\", this.Verbose) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForInfo := make([]string, 0, len(this.Info))\n\tfor k := range this.Info {\n\t\tkeysForInfo = append(keysForInfo, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForInfo)\n\tmapStringForInfo := \"map[string]string{\"\n\tfor _, k := range keysForInfo {\n\t\tmapStringForInfo += fmt.Sprintf(\"%v: %v,\", k, this.Info[k])\n\t}\n\tmapStringForInfo += \"}\"\n\ts := strings.Join([]string{`&StatusResponse{`,\n\t\t`Status:` + strings.Replace(this.Status.String(), \"RuntimeStatus\", \"RuntimeStatus\", 1) + `,`,\n\t\t`Info:` + mapStringForInfo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageFsInfoRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageFsInfoRequest{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UInt64Value) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UInt64Value{`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FilesystemIdentifier) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FilesystemIdentifier{`,\n\t\t`Mountpoint:` + fmt.Sprintf(\"%v\", this.Mountpoint) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FilesystemUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FilesystemUsage{`,\n\t\t`Timestamp:` + fmt.Sprintf(\"%v\", this.Timestamp) + `,`,\n\t\t`FsId:` + strings.Replace(this.FsId.String(), \"FilesystemIdentifier\", \"FilesystemIdentifier\", 1) + `,`,\n\t\t`UsedBytes:` + strings.Replace(this.UsedBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`InodesUsed:` + strings.Replace(this.InodesUsed.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageFsInfoResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForImageFilesystems := \"[]*FilesystemUsage{\"\n\tfor _, f := range this.ImageFilesystems {\n\t\trepeatedStringForImageFilesystems += strings.Replace(f.String(), \"FilesystemUsage\", \"FilesystemUsage\", 1) + \",\"\n\t}\n\trepeatedStringForImageFilesystems += \"}\"\n\ts := strings.Join([]string{`&ImageFsInfoResponse{`,\n\t\t`ImageFilesystems:` + repeatedStringForImageFilesystems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatsRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStatsRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatsResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStatsResponse{`,\n\t\t`Stats:` + strings.Replace(this.Stats.String(), \"ContainerStats\", \"ContainerStats\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListContainerStatsRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListContainerStatsRequest{`,\n\t\t`Filter:` + strings.Replace(this.Filter.String(), \"ContainerStatsFilter\", \"ContainerStatsFilter\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatsFilter) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabelSelector := make([]string, 0, len(this.LabelSelector))\n\tfor k := range this.LabelSelector {\n\t\tkeysForLabelSelector = append(keysForLabelSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabelSelector)\n\tmapStringForLabelSelector := \"map[string]string{\"\n\tfor _, k := range keysForLabelSelector {\n\t\tmapStringForLabelSelector += fmt.Sprintf(\"%v: %v,\", k, this.LabelSelector[k])\n\t}\n\tmapStringForLabelSelector += \"}\"\n\ts := strings.Join([]string{`&ContainerStatsFilter{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`PodSandboxId:` + fmt.Sprintf(\"%v\", this.PodSandboxId) + `,`,\n\t\t`LabelSelector:` + mapStringForLabelSelector + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListContainerStatsResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForStats := \"[]*ContainerStats{\"\n\tfor _, f := range this.Stats {\n\t\trepeatedStringForStats += strings.Replace(f.String(), \"ContainerStats\", \"ContainerStats\", 1) + \",\"\n\t}\n\trepeatedStringForStats += \"}\"\n\ts := strings.Join([]string{`&ListContainerStatsResponse{`,\n\t\t`Stats:` + repeatedStringForStats + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ContainerAttributes{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Metadata:` + strings.Replace(this.Metadata.String(), \"ContainerMetadata\", \"ContainerMetadata\", 1) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStats) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStats{`,\n\t\t`Attributes:` + strings.Replace(this.Attributes.String(), \"ContainerAttributes\", \"ContainerAttributes\", 1) + `,`,\n\t\t`Cpu:` + strings.Replace(this.Cpu.String(), \"CpuUsage\", \"CpuUsage\", 1) + `,`,\n\t\t`Memory:` + strings.Replace(this.Memory.String(), \"MemoryUsage\", \"MemoryUsage\", 1) + `,`,\n\t\t`WritableLayer:` + strings.Replace(this.WritableLayer.String(), \"FilesystemUsage\", \"FilesystemUsage\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CpuUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CpuUsage{`,\n\t\t`Timestamp:` + fmt.Sprintf(\"%v\", this.Timestamp) + `,`,\n\t\t`UsageCoreNanoSeconds:` + strings.Replace(this.UsageCoreNanoSeconds.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`UsageNanoCores:` + strings.Replace(this.UsageNanoCores.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MemoryUsage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MemoryUsage{`,\n\t\t`Timestamp:` + fmt.Sprintf(\"%v\", this.Timestamp) + `,`,\n\t\t`WorkingSetBytes:` + strings.Replace(this.WorkingSetBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`AvailableBytes:` + strings.Replace(this.AvailableBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`UsageBytes:` + strings.Replace(this.UsageBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`RssBytes:` + strings.Replace(this.RssBytes.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`PageFaults:` + strings.Replace(this.PageFaults.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`MajorPageFaults:` + strings.Replace(this.MajorPageFaults.String(), \"UInt64Value\", \"UInt64Value\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReopenContainerLogRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReopenContainerLogRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReopenContainerLogResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReopenContainerLogResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CheckpointContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CheckpointContainerRequest{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`Location:` + fmt.Sprintf(\"%v\", this.Location) + `,`,\n\t\t`Timeout:` + fmt.Sprintf(\"%v\", this.Timeout) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CheckpointContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CheckpointContainerResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetEventsRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetEventsRequest{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerEventResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerEventResponse{`,\n\t\t`ContainerId:` + fmt.Sprintf(\"%v\", this.ContainerId) + `,`,\n\t\t`ContainerEventType:` + fmt.Sprintf(\"%v\", this.ContainerEventType) + `,`,\n\t\t`CreatedAt:` + fmt.Sprintf(\"%v\", this.CreatedAt) + `,`,\n\t\t`PodSandboxMetadata:` + strings.Replace(this.PodSandboxMetadata.String(), \"PodSandboxMetadata\", \"PodSandboxMetadata\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringApi(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *VersionRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VersionRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VersionRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VersionResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VersionResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VersionResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeApiVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeApiVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DNSConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DNSConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DNSConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Servers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Servers = append(m.Servers, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Searches\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Searches = append(m.Searches, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Options = append(m.Options, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortMapping) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortMapping: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortMapping: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tm.Protocol = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Protocol |= Protocol(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPort\", wireType)\n\t\t\t}\n\t\t\tm.ContainerPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ContainerPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPort\", wireType)\n\t\t\t}\n\t\t\tm.HostPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HostPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIp\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIp = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Mount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Mount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Mount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Readonly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Readonly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelinuxRelabel\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SelinuxRelabel = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Propagation\", wireType)\n\t\t\t}\n\t\t\tm.Propagation = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Propagation |= MountPropagation(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IDMapping) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IDMapping: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IDMapping: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostId\", wireType)\n\t\t\t}\n\t\t\tm.HostId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HostId |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tm.ContainerId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ContainerId |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Length\", wireType)\n\t\t\t}\n\t\t\tm.Length = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Length |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserNamespace) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserNamespace: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserNamespace: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mode\", wireType)\n\t\t\t}\n\t\t\tm.Mode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Mode |= NamespaceMode(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uids\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Uids = append(m.Uids, &IDMapping{})\n\t\t\tif err := m.Uids[len(m.Uids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gids\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Gids = append(m.Gids, &IDMapping{})\n\t\t\tif err := m.Gids[len(m.Gids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceOption) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceOption: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceOption: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Network\", wireType)\n\t\t\t}\n\t\t\tm.Network = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Network |= NamespaceMode(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pid\", wireType)\n\t\t\t}\n\t\t\tm.Pid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Pid |= NamespaceMode(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ipc\", wireType)\n\t\t\t}\n\t\t\tm.Ipc = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Ipc |= NamespaceMode(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UsernsOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UsernsOptions == nil {\n\t\t\t\tm.UsernsOptions = &UserNamespace{}\n\t\t\t}\n\t\t\tif err := m.UsernsOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Int64Value) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Int64Value: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Int64Value: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxSandboxSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxSandboxSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxSandboxSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceOptions == nil {\n\t\t\t\tm.NamespaceOptions = &NamespaceOption{}\n\t\t\t}\n\t\t\tif err := m.NamespaceOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SelinuxOptions == nil {\n\t\t\t\tm.SelinuxOptions = &SELinuxOption{}\n\t\t\t}\n\t\t\tif err := m.SelinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RunAsUser == nil {\n\t\t\t\tm.RunAsUser = &Int64Value{}\n\t\t\t}\n\t\t\tif err := m.RunAsUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadonlyRootfs\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadonlyRootfs = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.SupplementalGroups) == 0 {\n\t\t\t\t\tm.SupplementalGroups = make([]int64, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Privileged\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Privileged = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfilePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SeccompProfilePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RunAsGroup == nil {\n\t\t\t\tm.RunAsGroup = &Int64Value{}\n\t\t\t}\n\t\t\tif err := m.RunAsGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Seccomp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Seccomp == nil {\n\t\t\t\tm.Seccomp = &SecurityProfile{}\n\t\t\t}\n\t\t\tif err := m.Seccomp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Apparmor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Apparmor == nil {\n\t\t\t\tm.Apparmor = &SecurityProfile{}\n\t\t\t}\n\t\t\tif err := m.Apparmor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecurityProfile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityProfile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityProfile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProfileType\", wireType)\n\t\t\t}\n\t\t\tm.ProfileType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ProfileType |= SecurityProfile_ProfileType(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalhostRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LocalhostRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxPodSandboxConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CgroupParent\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CgroupParent = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &LinuxSandboxSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sysctls\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sysctls == nil {\n\t\t\t\tm.Sysctls = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Sysctls[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &LinuxContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &LinuxContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxMetadata) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxMetadata: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxMetadata: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Uid = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attempt\", wireType)\n\t\t\t}\n\t\t\tm.Attempt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Attempt |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &PodSandboxMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LogDirectory\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LogDirectory = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DnsConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DnsConfig == nil {\n\t\t\t\tm.DnsConfig = &DNSConfig{}\n\t\t\t}\n\t\t\tif err := m.DnsConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PortMappings\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PortMappings = append(m.PortMappings, &PortMapping{})\n\t\t\tif err := m.PortMappings[len(m.PortMappings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxPodSandboxConfig{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Windows\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Windows == nil {\n\t\t\t\tm.Windows = &WindowsPodSandboxConfig{}\n\t\t\t}\n\t\t\tif err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RunPodSandboxRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RunPodSandboxRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RunPodSandboxRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Config == nil {\n\t\t\t\tm.Config = &PodSandboxConfig{}\n\t\t\t}\n\t\t\tif err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RunPodSandboxResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RunPodSandboxResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RunPodSandboxResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StopPodSandboxRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StopPodSandboxRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StopPodSandboxRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StopPodSandboxResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StopPodSandboxResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StopPodSandboxResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemovePodSandboxRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemovePodSandboxRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemovePodSandboxRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemovePodSandboxResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemovePodSandboxResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemovePodSandboxResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatusRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatusRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatusRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbose\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Verbose = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodIP) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ip\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ip = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxNetworkStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxNetworkStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxNetworkStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ip\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ip = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdditionalIps\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdditionalIps = append(m.AdditionalIps, &PodIP{})\n\t\t\tif err := m.AdditionalIps[len(m.AdditionalIps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Namespace) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = &NamespaceOption{}\n\t\t\t}\n\t\t\tif err := m.Options.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxPodSandboxStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Namespaces == nil {\n\t\t\t\tm.Namespaces = &Namespace{}\n\t\t\t}\n\t\t\tif err := m.Namespaces.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &PodSandboxMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= PodSandboxState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreatedAt\", wireType)\n\t\t\t}\n\t\t\tm.CreatedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CreatedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Network\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Network == nil {\n\t\t\t\tm.Network = &PodSandboxNetworkStatus{}\n\t\t\t}\n\t\t\tif err := m.Network.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxPodSandboxStatus{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatusResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatusResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatusResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Status == nil {\n\t\t\t\tm.Status = &PodSandboxStatus{}\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Info\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Info == nil {\n\t\t\t\tm.Info = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Info[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStateValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStateValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStateValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= PodSandboxState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxFilter) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxFilter: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxFilter: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.State == nil {\n\t\t\t\tm.State = &PodSandboxStateValue{}\n\t\t\t}\n\t\t\tif err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LabelSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListPodSandboxRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Filter\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Filter == nil {\n\t\t\t\tm.Filter = &PodSandboxFilter{}\n\t\t\t}\n\t\t\tif err := m.Filter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandbox) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandbox: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandbox: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &PodSandboxMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= PodSandboxState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreatedAt\", wireType)\n\t\t\t}\n\t\t\tm.CreatedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CreatedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListPodSandboxResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, &PodSandbox{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatsRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatsResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stats\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Stats == nil {\n\t\t\t\tm.Stats = &PodSandboxStats{}\n\t\t\t}\n\t\t\tif err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStatsFilter) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsFilter: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStatsFilter: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LabelSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListPodSandboxStatsRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxStatsRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxStatsRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Filter\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Filter == nil {\n\t\t\t\tm.Filter = &PodSandboxStatsFilter{}\n\t\t\t}\n\t\t\tif err := m.Filter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListPodSandboxStatsResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxStatsResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodSandboxStatsResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stats\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Stats = append(m.Stats, &PodSandboxStats{})\n\t\t\tif err := m.Stats[len(m.Stats)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &PodSandboxMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSandboxStats) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStats: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSandboxStats: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Attributes == nil {\n\t\t\t\tm.Attributes = &PodSandboxAttributes{}\n\t\t\t}\n\t\t\tif err := m.Attributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxPodSandboxStats{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Windows\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Windows == nil {\n\t\t\t\tm.Windows = &WindowsPodSandboxStats{}\n\t\t\t}\n\t\t\tif err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxPodSandboxStats) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxStats: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxPodSandboxStats: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cpu\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cpu == nil {\n\t\t\t\tm.Cpu = &CpuUsage{}\n\t\t\t}\n\t\t\tif err := m.Cpu.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Memory\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Memory == nil {\n\t\t\t\tm.Memory = &MemoryUsage{}\n\t\t\t}\n\t\t\tif err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Network\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Network == nil {\n\t\t\t\tm.Network = &NetworkUsage{}\n\t\t\t}\n\t\t\tif err := m.Network.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Process\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Process == nil {\n\t\t\t\tm.Process = &ProcessUsage{}\n\t\t\t}\n\t\t\tif err := m.Process.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, &ContainerStats{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsPodSandboxStats) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsPodSandboxStats: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsPodSandboxStats: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamp\", wireType)\n\t\t\t}\n\t\t\tm.Timestamp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timestamp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultInterface\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DefaultInterface == nil {\n\t\t\t\tm.DefaultInterface = &NetworkInterfaceUsage{}\n\t\t\t}\n\t\t\tif err := m.DefaultInterface.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Interfaces\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Interfaces = append(m.Interfaces, &NetworkInterfaceUsage{})\n\t\t\tif err := m.Interfaces[len(m.Interfaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkInterfaceUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkInterfaceUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkInterfaceUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RxBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RxBytes == nil {\n\t\t\t\tm.RxBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.RxBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RxErrors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RxErrors == nil {\n\t\t\t\tm.RxErrors = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.RxErrors.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TxBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TxBytes == nil {\n\t\t\t\tm.TxBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.TxBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TxErrors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TxErrors == nil {\n\t\t\t\tm.TxErrors = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.TxErrors.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ProcessUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ProcessUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ProcessUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamp\", wireType)\n\t\t\t}\n\t\t\tm.Timestamp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timestamp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProcessCount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ProcessCount == nil {\n\t\t\t\tm.ProcessCount = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.ProcessCount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *KeyValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: KeyValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: KeyValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxContainerResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuPeriod\", wireType)\n\t\t\t}\n\t\t\tm.CpuPeriod = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuPeriod |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuQuota\", wireType)\n\t\t\t}\n\t\t\tm.CpuQuota = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuQuota |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuShares\", wireType)\n\t\t\t}\n\t\t\tm.CpuShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuShares |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MemoryLimitInBytes\", wireType)\n\t\t\t}\n\t\t\tm.MemoryLimitInBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MemoryLimitInBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OomScoreAdj\", wireType)\n\t\t\t}\n\t\t\tm.OomScoreAdj = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.OomScoreAdj |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpusetCpus\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CpusetCpus = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpusetMems\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CpusetMems = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HugepageLimits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HugepageLimits = append(m.HugepageLimits, &HugepageLimit{})\n\t\t\tif err := m.HugepageLimits[len(m.HugepageLimits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Unified\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Unified == nil {\n\t\t\t\tm.Unified = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Unified[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MemorySwapLimitInBytes\", wireType)\n\t\t\t}\n\t\t\tm.MemorySwapLimitInBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MemorySwapLimitInBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HugepageLimit) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HugepageLimit: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HugepageLimit: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PageSize\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PageSize = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limit\", wireType)\n\t\t\t}\n\t\t\tm.Limit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Limit |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SELinuxOption) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOption: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOption: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Role\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Role = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Level\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Level = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Capability) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Capability: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Capability: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddCapabilities = append(m.AddCapabilities, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DropCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DropCapabilities = append(m.DropCapabilities, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddAmbientCapabilities\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddAmbientCapabilities = append(m.AddAmbientCapabilities, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxContainerSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capabilities\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capabilities == nil {\n\t\t\t\tm.Capabilities = &Capability{}\n\t\t\t}\n\t\t\tif err := m.Capabilities.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Privileged\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Privileged = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceOptions == nil {\n\t\t\t\tm.NamespaceOptions = &NamespaceOption{}\n\t\t\t}\n\t\t\tif err := m.NamespaceOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SelinuxOptions == nil {\n\t\t\t\tm.SelinuxOptions = &SELinuxOption{}\n\t\t\t}\n\t\t\tif err := m.SelinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RunAsUser == nil {\n\t\t\t\tm.RunAsUser = &Int64Value{}\n\t\t\t}\n\t\t\tif err := m.RunAsUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUsername\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RunAsUsername = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadonlyRootfs\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadonlyRootfs = bool(v != 0)\n\t\tcase 8:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.SupplementalGroups) == 0 {\n\t\t\t\t\tm.SupplementalGroups = make([]int64, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ApparmorProfile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ApparmorProfile = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfilePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SeccompProfilePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NoNewPrivs\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NoNewPrivs = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RunAsGroup == nil {\n\t\t\t\tm.RunAsGroup = &Int64Value{}\n\t\t\t}\n\t\t\tif err := m.RunAsGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaskedPaths\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MaskedPaths = append(m.MaskedPaths, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadonlyPaths\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReadonlyPaths = append(m.ReadonlyPaths, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Seccomp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Seccomp == nil {\n\t\t\t\tm.Seccomp = &SecurityProfile{}\n\t\t\t}\n\t\t\tif err := m.Seccomp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Apparmor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Apparmor == nil {\n\t\t\t\tm.Apparmor = &SecurityProfile{}\n\t\t\t}\n\t\t\tif err := m.Apparmor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxContainerConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &LinuxContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &LinuxContainerSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsSandboxSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSandboxSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSandboxSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUsername\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RunAsUsername = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CredentialSpec\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CredentialSpec = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostProcess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostProcess = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsPodSandboxConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsPodSandboxConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsPodSandboxConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &WindowsSandboxSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsContainerSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUsername\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RunAsUsername = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CredentialSpec\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CredentialSpec = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostProcess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostProcess = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsContainerConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &WindowsContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &WindowsContainerSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsContainerResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsContainerResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuShares\", wireType)\n\t\t\t}\n\t\t\tm.CpuShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuShares |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuCount\", wireType)\n\t\t\t}\n\t\t\tm.CpuCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuCount |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CpuMaximum\", wireType)\n\t\t\t}\n\t\t\tm.CpuMaximum = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CpuMaximum |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MemoryLimitInBytes\", wireType)\n\t\t\t}\n\t\t\tm.MemoryLimitInBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MemoryLimitInBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RootfsSizeInBytes\", wireType)\n\t\t\t}\n\t\t\tm.RootfsSizeInBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.RootfsSizeInBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerMetadata) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerMetadata: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerMetadata: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attempt\", wireType)\n\t\t\t}\n\t\t\tm.Attempt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Attempt |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Device) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Device: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Device: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Permissions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Permissions = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &ContainerMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingDir\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WorkingDir = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Envs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Envs = append(m.Envs, &KeyValue{})\n\t\t\tif err := m.Envs[len(m.Envs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Mounts = append(m.Mounts, &Mount{})\n\t\t\tif err := m.Mounts[len(m.Mounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, &Device{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LogPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LogPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StdinOnce\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StdinOnce = bool(v != 0)\n\t\tcase 14:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tty\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Tty = bool(v != 0)\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxContainerConfig{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Windows\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Windows == nil {\n\t\t\t\tm.Windows = &WindowsContainerConfig{}\n\t\t\t}\n\t\t\tif err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Config == nil {\n\t\t\t\tm.Config = &ContainerConfig{}\n\t\t\t}\n\t\t\tif err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SandboxConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SandboxConfig == nil {\n\t\t\t\tm.SandboxConfig = &PodSandboxConfig{}\n\t\t\t}\n\t\t\tif err := m.SandboxConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StartContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StartContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StartContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StartContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StartContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StartContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StopContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StopContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StopContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timeout\", wireType)\n\t\t\t}\n\t\t\tm.Timeout = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timeout |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StopContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StopContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StopContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= ContainerState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerFilter) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerFilter: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerFilter: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.State == nil {\n\t\t\t\tm.State = &ContainerStateValue{}\n\t\t\t}\n\t\t\tif err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LabelSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListContainersRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainersRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainersRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Filter\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Filter == nil {\n\t\t\t\tm.Filter = &ContainerFilter{}\n\t\t\t}\n\t\t\tif err := m.Filter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Container) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Container: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Container: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &ContainerMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= ContainerState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreatedAt\", wireType)\n\t\t\t}\n\t\t\tm.CreatedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CreatedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListContainersResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainersResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainersResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, &Container{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatusRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatusRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatusRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbose\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Verbose = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &ContainerMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= ContainerState(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreatedAt\", wireType)\n\t\t\t}\n\t\t\tm.CreatedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CreatedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartedAt\", wireType)\n\t\t\t}\n\t\t\tm.StartedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StartedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FinishedAt\", wireType)\n\t\t\t}\n\t\t\tm.FinishedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FinishedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExitCode\", wireType)\n\t\t\t}\n\t\t\tm.ExitCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExitCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Mounts = append(m.Mounts, &Mount{})\n\t\t\tif err := m.Mounts[len(m.Mounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LogPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LogPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &ContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatusResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatusResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Status == nil {\n\t\t\t\tm.Status = &ContainerStatus{}\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Info\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Info == nil {\n\t\t\t\tm.Info = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Info[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Windows\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Windows == nil {\n\t\t\t\tm.Windows = &WindowsContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateContainerResourcesRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateContainerResourcesRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Windows\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Windows == nil {\n\t\t\t\tm.Windows = &WindowsContainerResources{}\n\t\t\t}\n\t\t\tif err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateContainerResourcesResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateContainerResourcesResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateContainerResourcesResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecSyncRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecSyncRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecSyncRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cmd\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Cmd = append(m.Cmd, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timeout\", wireType)\n\t\t\t}\n\t\t\tm.Timeout = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timeout |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecSyncResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecSyncResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecSyncResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Stdout = append(m.Stdout[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Stdout == nil {\n\t\t\t\tm.Stdout = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Stderr = append(m.Stderr[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Stderr == nil {\n\t\t\t\tm.Stderr = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExitCode\", wireType)\n\t\t\t}\n\t\t\tm.ExitCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExitCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cmd\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Cmd = append(m.Cmd, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tty\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Tty = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Url\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Url = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AttachRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AttachRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AttachRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tty\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Tty = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AttachResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AttachResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AttachResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Url\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Url = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortForwardRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortForwardRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortForwardRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Port = append(m.Port, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.Port) == 0 {\n\t\t\t\t\tm.Port = make([]int32, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Port = append(m.Port, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortForwardResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortForwardResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortForwardResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Url\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Url = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageFilter) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFilter: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFilter: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListImagesRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListImagesRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListImagesRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Filter\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Filter == nil {\n\t\t\t\tm.Filter = &ImageFilter{}\n\t\t\t}\n\t\t\tif err := m.Filter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Image) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Image: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Image: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RepoTags\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RepoTags = append(m.RepoTags, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RepoDigests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RepoDigests = append(m.RepoDigests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Size_\", wireType)\n\t\t\t}\n\t\t\tm.Size_ = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Size_ |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Uid == nil {\n\t\t\t\tm.Uid = &Int64Value{}\n\t\t\t}\n\t\t\tif err := m.Uid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Spec == nil {\n\t\t\t\tm.Spec = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pinned\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Pinned = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListImagesResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListImagesResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListImagesResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Images\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Images = append(m.Images, &Image{})\n\t\t\tif err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageStatusRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageStatusRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageStatusRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbose\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Verbose = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageStatusResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageStatusResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageStatusResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &Image{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Info\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Info == nil {\n\t\t\t\tm.Info = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Info[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AuthConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AuthConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AuthConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Password\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Password = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Auth\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Auth = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddress\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddress = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IdentityToken\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IdentityToken = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RegistryToken\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RegistryToken = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PullImageRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PullImageRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PullImageRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Auth\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Auth == nil {\n\t\t\t\tm.Auth = &AuthConfig{}\n\t\t\t}\n\t\t\tif err := m.Auth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SandboxConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SandboxConfig == nil {\n\t\t\t\tm.SandboxConfig = &PodSandboxConfig{}\n\t\t\t}\n\t\t\tif err := m.SandboxConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PullImageResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PullImageResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PullImageResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveImageRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveImageRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveImageRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageSpec{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveImageResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveImageResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveImageResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodCidr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodCidr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NetworkConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NetworkConfig == nil {\n\t\t\t\tm.NetworkConfig = &NetworkConfig{}\n\t\t\t}\n\t\t\tif err := m.NetworkConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateRuntimeConfigRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateRuntimeConfigRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateRuntimeConfigRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RuntimeConfig == nil {\n\t\t\t\tm.RuntimeConfig = &RuntimeConfig{}\n\t\t\t}\n\t\t\tif err := m.RuntimeConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateRuntimeConfigResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateRuntimeConfigResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateRuntimeConfigResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Status = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, &RuntimeCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbose\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Verbose = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Status == nil {\n\t\t\t\tm.Status = &RuntimeStatus{}\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Info\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Info == nil {\n\t\t\t\tm.Info = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Info[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageFsInfoRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFsInfoRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFsInfoRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UInt64Value) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UInt64Value: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UInt64Value: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FilesystemIdentifier) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FilesystemIdentifier: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FilesystemIdentifier: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mountpoint\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Mountpoint = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FilesystemUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FilesystemUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FilesystemUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamp\", wireType)\n\t\t\t}\n\t\t\tm.Timestamp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timestamp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FsId\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FsId == nil {\n\t\t\t\tm.FsId = &FilesystemIdentifier{}\n\t\t\t}\n\t\t\tif err := m.FsId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UsedBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UsedBytes == nil {\n\t\t\t\tm.UsedBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.UsedBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InodesUsed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InodesUsed == nil {\n\t\t\t\tm.InodesUsed = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.InodesUsed.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageFsInfoResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFsInfoResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageFsInfoResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageFilesystems\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageFilesystems = append(m.ImageFilesystems, &FilesystemUsage{})\n\t\t\tif err := m.ImageFilesystems[len(m.ImageFilesystems)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatsRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatsResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stats\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Stats == nil {\n\t\t\t\tm.Stats = &ContainerStats{}\n\t\t\t}\n\t\t\tif err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListContainerStatsRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainerStatsRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainerStatsRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Filter\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Filter == nil {\n\t\t\t\tm.Filter = &ContainerStatsFilter{}\n\t\t\t}\n\t\t\tif err := m.Filter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatsFilter) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsFilter: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatsFilter: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodSandboxId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LabelSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListContainerStatsResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainerStatsResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListContainerStatsResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stats\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Stats = append(m.Stats, &ContainerStats{})\n\t\t\tif err := m.Stats[len(m.Stats)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Id = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Metadata == nil {\n\t\t\t\tm.Metadata = &ContainerMetadata{}\n\t\t\t}\n\t\t\tif err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStats) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStats: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStats: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Attributes == nil {\n\t\t\t\tm.Attributes = &ContainerAttributes{}\n\t\t\t}\n\t\t\tif err := m.Attributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cpu\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cpu == nil {\n\t\t\t\tm.Cpu = &CpuUsage{}\n\t\t\t}\n\t\t\tif err := m.Cpu.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Memory\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Memory == nil {\n\t\t\t\tm.Memory = &MemoryUsage{}\n\t\t\t}\n\t\t\tif err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WritableLayer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WritableLayer == nil {\n\t\t\t\tm.WritableLayer = &FilesystemUsage{}\n\t\t\t}\n\t\t\tif err := m.WritableLayer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CpuUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CpuUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CpuUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamp\", wireType)\n\t\t\t}\n\t\t\tm.Timestamp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timestamp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UsageCoreNanoSeconds\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UsageCoreNanoSeconds == nil {\n\t\t\t\tm.UsageCoreNanoSeconds = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.UsageCoreNanoSeconds.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UsageNanoCores\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UsageNanoCores == nil {\n\t\t\t\tm.UsageNanoCores = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.UsageNanoCores.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MemoryUsage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MemoryUsage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MemoryUsage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamp\", wireType)\n\t\t\t}\n\t\t\tm.Timestamp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timestamp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingSetBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WorkingSetBytes == nil {\n\t\t\t\tm.WorkingSetBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.WorkingSetBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AvailableBytes == nil {\n\t\t\t\tm.AvailableBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.AvailableBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UsageBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UsageBytes == nil {\n\t\t\t\tm.UsageBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.UsageBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RssBytes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RssBytes == nil {\n\t\t\t\tm.RssBytes = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.RssBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PageFaults\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PageFaults == nil {\n\t\t\t\tm.PageFaults = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.PageFaults.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MajorPageFaults\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MajorPageFaults == nil {\n\t\t\t\tm.MajorPageFaults = &UInt64Value{}\n\t\t\t}\n\t\t\tif err := m.MajorPageFaults.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReopenContainerLogRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReopenContainerLogRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReopenContainerLogRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReopenContainerLogResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReopenContainerLogResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReopenContainerLogResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CheckpointContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CheckpointContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CheckpointContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Location\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Location = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timeout\", wireType)\n\t\t\t}\n\t\t\tm.Timeout = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Timeout |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CheckpointContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CheckpointContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CheckpointContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetEventsRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetEventsRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetEventsRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerEventResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerEventResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerEventResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerEventType\", wireType)\n\t\t\t}\n\t\t\tm.ContainerEventType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ContainerEventType |= ContainerEventType(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreatedAt\", wireType)\n\t\t\t}\n\t\t\tm.CreatedAt = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CreatedAt |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSandboxMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodSandboxMetadata == nil {\n\t\t\t\tm.PodSandboxMetadata = &PodSandboxMetadata{}\n\t\t\t}\n\t\t\tif err := m.PodSandboxMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipApi(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthApi\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupApi\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthApi\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthApi        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowApi          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupApi = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// To regenerate api.pb.go run hack/update-generated-runtime.sh\nsyntax = \"proto3\";\n\npackage runtime.v1;\noption go_package = \"k8s.io/cri-api/pkg/apis/runtime/v1\";\n\nimport \"github.com/gogo/protobuf/gogoproto/gogo.proto\";\n\noption (gogoproto.goproto_stringer_all) = false;\noption (gogoproto.stringer_all) =  true;\noption (gogoproto.goproto_getters_all) = true;\noption (gogoproto.marshaler_all) = true;\noption (gogoproto.sizer_all) = true;\noption (gogoproto.unmarshaler_all) = true;\noption (gogoproto.goproto_unrecognized_all) = false;\n\n// Runtime service defines the public APIs for remote container runtimes\nservice RuntimeService {\n    // Version returns the runtime name, runtime version, and runtime API version.\n    rpc Version(VersionRequest) returns (VersionResponse) {}\n\n    // RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure\n    // the sandbox is in the ready state on success.\n    rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {}\n    // StopPodSandbox stops any running process that is part of the sandbox and\n    // reclaims network resources (e.g., IP addresses) allocated to the sandbox.\n    // If there are any running containers in the sandbox, they must be forcibly\n    // terminated.\n    // This call is idempotent, and must not return an error if all relevant\n    // resources have already been reclaimed. kubelet will call StopPodSandbox\n    // at least once before calling RemovePodSandbox. It will also attempt to\n    // reclaim resources eagerly, as soon as a sandbox is not needed. Hence,\n    // multiple StopPodSandbox calls are expected.\n    rpc StopPodSandbox(StopPodSandboxRequest) returns (StopPodSandboxResponse) {}\n    // RemovePodSandbox removes the sandbox. If there are any running containers\n    // in the sandbox, they must be forcibly terminated and removed.\n    // This call is idempotent, and must not return an error if the sandbox has\n    // already been removed.\n    rpc RemovePodSandbox(RemovePodSandboxRequest) returns (RemovePodSandboxResponse) {}\n    // PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not\n    // present, returns an error.\n    rpc PodSandboxStatus(PodSandboxStatusRequest) returns (PodSandboxStatusResponse) {}\n    // ListPodSandbox returns a list of PodSandboxes.\n    rpc ListPodSandbox(ListPodSandboxRequest) returns (ListPodSandboxResponse) {}\n\n    // CreateContainer creates a new container in specified PodSandbox\n    rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {}\n    // StartContainer starts the container.\n    rpc StartContainer(StartContainerRequest) returns (StartContainerResponse) {}\n    // StopContainer stops a running container with a grace period (i.e., timeout).\n    // This call is idempotent, and must not return an error if the container has\n    // already been stopped.\n    // The runtime must forcibly kill the container after the grace period is\n    // reached.\n    rpc StopContainer(StopContainerRequest) returns (StopContainerResponse) {}\n    // RemoveContainer removes the container. If the container is running, the\n    // container must be forcibly removed.\n    // This call is idempotent, and must not return an error if the container has\n    // already been removed.\n    rpc RemoveContainer(RemoveContainerRequest) returns (RemoveContainerResponse) {}\n    // ListContainers lists all containers by filters.\n    rpc ListContainers(ListContainersRequest) returns (ListContainersResponse) {}\n    // ContainerStatus returns status of the container. If the container is not\n    // present, returns an error.\n    rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {}\n    // UpdateContainerResources updates ContainerConfig of the container synchronously.\n    // If runtime fails to transactionally update the requested resources, an error is returned.\n    rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {}\n    // ReopenContainerLog asks runtime to reopen the stdout/stderr log file\n    // for the container. This is often called after the log file has been\n    // rotated. If the container is not running, container runtime can choose\n    // to either create a new log file and return nil, or return an error.\n    // Once it returns error, new container log file MUST NOT be created.\n    rpc ReopenContainerLog(ReopenContainerLogRequest) returns (ReopenContainerLogResponse) {}\n\n    // ExecSync runs a command in a container synchronously.\n    rpc ExecSync(ExecSyncRequest) returns (ExecSyncResponse) {}\n    // Exec prepares a streaming endpoint to execute a command in the container.\n    rpc Exec(ExecRequest) returns (ExecResponse) {}\n    // Attach prepares a streaming endpoint to attach to a running container.\n    rpc Attach(AttachRequest) returns (AttachResponse) {}\n    // PortForward prepares a streaming endpoint to forward ports from a PodSandbox.\n    rpc PortForward(PortForwardRequest) returns (PortForwardResponse) {}\n\n    // ContainerStats returns stats of the container. If the container does not\n    // exist, the call returns an error.\n    rpc ContainerStats(ContainerStatsRequest) returns (ContainerStatsResponse) {}\n    // ListContainerStats returns stats of all running containers.\n    rpc ListContainerStats(ListContainerStatsRequest) returns (ListContainerStatsResponse) {}\n\n    // PodSandboxStats returns stats of the pod sandbox. If the pod sandbox does not\n    // exist, the call returns an error.\n    rpc PodSandboxStats(PodSandboxStatsRequest) returns (PodSandboxStatsResponse) {}\n    // ListPodSandboxStats returns stats of the pod sandboxes matching a filter.\n    rpc ListPodSandboxStats(ListPodSandboxStatsRequest) returns (ListPodSandboxStatsResponse) {}\n\n    // UpdateRuntimeConfig updates the runtime configuration based on the given request.\n    rpc UpdateRuntimeConfig(UpdateRuntimeConfigRequest) returns (UpdateRuntimeConfigResponse) {}\n\n    // Status returns the status of the runtime.\n    rpc Status(StatusRequest) returns (StatusResponse) {}\n\n    // CheckpointContainer checkpoints a container\n    rpc CheckpointContainer(CheckpointContainerRequest) returns (CheckpointContainerResponse) {}\n\n    // GetContainerEvents gets container events from the CRI runtime\n    rpc  GetContainerEvents(GetEventsRequest) returns (stream ContainerEventResponse) {}\n\n}\n\n// ImageService defines the public APIs for managing images.\nservice ImageService {\n    // ListImages lists existing images.\n    rpc ListImages(ListImagesRequest) returns (ListImagesResponse) {}\n    // ImageStatus returns the status of the image. If the image is not\n    // present, returns a response with ImageStatusResponse.Image set to\n    // nil.\n    rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {}\n    // PullImage pulls an image with authentication config.\n    rpc PullImage(PullImageRequest) returns (PullImageResponse) {}\n    // RemoveImage removes the image.\n    // This call is idempotent, and must not return an error if the image has\n    // already been removed.\n    rpc RemoveImage(RemoveImageRequest) returns (RemoveImageResponse) {}\n    // ImageFSInfo returns information of the filesystem that is used to store images.\n    rpc ImageFsInfo(ImageFsInfoRequest) returns (ImageFsInfoResponse) {}\n}\n\nmessage VersionRequest {\n    // Version of the kubelet runtime API.\n    string version = 1;\n}\n\nmessage VersionResponse {\n    // Version of the kubelet runtime API.\n    string version = 1;\n    // Name of the container runtime.\n    string runtime_name = 2;\n    // Version of the container runtime. The string must be\n    // semver-compatible.\n    string runtime_version = 3;\n    // API version of the container runtime. The string must be\n    // semver-compatible.\n    string runtime_api_version = 4;\n}\n\n// DNSConfig specifies the DNS servers and search domains of a sandbox.\nmessage DNSConfig {\n    // List of DNS servers of the cluster.\n    repeated string servers = 1;\n    // List of DNS search domains of the cluster.\n    repeated string searches = 2;\n    // List of DNS options. See https://linux.die.net/man/5/resolv.conf\n    // for all available options.\n    repeated string options = 3;\n}\n\nenum Protocol {\n    TCP = 0;\n    UDP = 1;\n    SCTP = 2;\n}\n\n// PortMapping specifies the port mapping configurations of a sandbox.\nmessage PortMapping {\n    // Protocol of the port mapping.\n    Protocol protocol = 1;\n    // Port number within the container. Default: 0 (not specified).\n    int32 container_port = 2;\n    // Port number on the host. Default: 0 (not specified).\n    int32 host_port = 3;\n    // Host IP.\n    string host_ip = 4;\n}\n\nenum MountPropagation {\n    // No mount propagation (\"private\" in Linux terminology).\n    PROPAGATION_PRIVATE = 0;\n    // Mounts get propagated from the host to the container (\"rslave\" in Linux).\n    PROPAGATION_HOST_TO_CONTAINER = 1;\n    // Mounts get propagated from the host to the container and from the\n    // container to the host (\"rshared\" in Linux).\n    PROPAGATION_BIDIRECTIONAL = 2;\n}\n\n// Mount specifies a host volume to mount into a container.\nmessage Mount {\n    // Path of the mount within the container.\n    string container_path = 1;\n    // Path of the mount on the host. If the hostPath doesn't exist, then runtimes\n    // should report error. If the hostpath is a symbolic link, runtimes should\n    // follow the symlink and mount the real destination to container.\n    string host_path = 2;\n    // If set, the mount is read-only.\n    bool readonly = 3;\n    // If set, the mount needs SELinux relabeling.\n    bool selinux_relabel = 4;\n    // Requested propagation mode.\n    MountPropagation propagation = 5;\n}\n\n// IDMapping describes host to container ID mappings for a pod sandbox.\nmessage IDMapping {\n    // HostId is the id on the host.\n    uint32 host_id = 1;\n    // ContainerId is the id in the container.\n    uint32 container_id = 2;\n    // Length is the size of the range to map.\n    uint32 length = 3;\n}\n\n// A NamespaceMode describes the intended namespace configuration for each\n// of the namespaces (Network, PID, IPC) in NamespaceOption. Runtimes should\n// map these modes as appropriate for the technology underlying the runtime.\nenum NamespaceMode {\n    // A POD namespace is common to all containers in a pod.\n    // For example, a container with a PID namespace of POD expects to view\n    // all of the processes in all of the containers in the pod.\n    POD       = 0;\n    // A CONTAINER namespace is restricted to a single container.\n    // For example, a container with a PID namespace of CONTAINER expects to\n    // view only the processes in that container.\n    CONTAINER = 1;\n    // A NODE namespace is the namespace of the Kubernetes node.\n    // For example, a container with a PID namespace of NODE expects to view\n    // all of the processes on the host running the kubelet.\n    NODE      = 2;\n    // TARGET targets the namespace of another container. When this is specified,\n    // a target_id must be specified in NamespaceOption and refer to a container\n    // previously created with NamespaceMode CONTAINER. This containers namespace\n    // will be made to match that of container target_id.\n    // For example, a container with a PID namespace of TARGET expects to view\n    // all of the processes that container target_id can view.\n    TARGET    = 3;\n}\n\n// UserNamespace describes the intended user namespace configuration for a pod sandbox.\nmessage UserNamespace {\n    // Mode is the NamespaceMode for this UserNamespace.\n    // Note: NamespaceMode for UserNamespace currently supports only POD and NODE, not CONTAINER OR TARGET.\n    NamespaceMode mode = 1;\n\n    // Uids specifies the UID mappings for the user namespace.\n    repeated IDMapping uids = 2;\n\n    // Gids specifies the GID mappings for the user namespace.\n    repeated IDMapping gids = 3;\n}\n\n// NamespaceOption provides options for Linux namespaces.\nmessage NamespaceOption {\n    // Network namespace for this container/sandbox.\n    // Note: There is currently no way to set CONTAINER scoped network in the Kubernetes API.\n    // Namespaces currently set by the kubelet: POD, NODE\n    NamespaceMode network = 1;\n    // PID namespace for this container/sandbox.\n    // Note: The CRI default is POD, but the v1.PodSpec default is CONTAINER.\n    // The kubelet's runtime manager will set this to CONTAINER explicitly for v1 pods.\n    // Namespaces currently set by the kubelet: POD, CONTAINER, NODE, TARGET\n    NamespaceMode pid = 2;\n    // IPC namespace for this container/sandbox.\n    // Note: There is currently no way to set CONTAINER scoped IPC in the Kubernetes API.\n    // Namespaces currently set by the kubelet: POD, NODE\n    NamespaceMode ipc = 3;\n    // Target Container ID for NamespaceMode of TARGET. This container must have been\n    // previously created in the same pod. It is not possible to specify different targets\n    // for each namespace.\n    string target_id = 4;\n    // UsernsOptions for this pod sandbox.\n    // The Kubelet picks the user namespace configuration to use for the pod sandbox.  The mappings\n    // are specified as part of the UserNamespace struct.  If the struct is nil, then the POD mode\n    // must be assumed.  This is done for backward compatibility with older Kubelet versions that\n    // do not set a user namespace.\n    UserNamespace userns_options = 5;\n}\n\n// Int64Value is the wrapper of int64.\nmessage Int64Value {\n    // The value.\n    int64 value = 1;\n}\n\n// LinuxSandboxSecurityContext holds linux security configuration that will be\n// applied to a sandbox. Note that:\n// 1) It does not apply to containers in the pods.\n// 2) It may not be applicable to a PodSandbox which does not contain any running\n//    process.\nmessage LinuxSandboxSecurityContext {\n    // Configurations for the sandbox's namespaces.\n    // This will be used only if the PodSandbox uses namespace for isolation.\n    NamespaceOption namespace_options = 1;\n    // Optional SELinux context to be applied.\n    SELinuxOption selinux_options = 2;\n    // UID to run sandbox processes as, when applicable.\n    Int64Value run_as_user = 3;\n    // GID to run sandbox processes as, when applicable. run_as_group should only\n    // be specified when run_as_user is specified; otherwise, the runtime MUST error.\n    Int64Value run_as_group = 8;\n    // If set, the root filesystem of the sandbox is read-only.\n    bool readonly_rootfs = 4;\n    // List of groups applied to the first process run in the sandbox, in\n    // addition to the sandbox's primary GID.\n    repeated int64 supplemental_groups = 5;\n    // Indicates whether the sandbox will be asked to run a privileged\n    // container. If a privileged container is to be executed within it, this\n    // MUST be true.\n    // This allows a sandbox to take additional security precautions if no\n    // privileged containers are expected to be run.\n    bool privileged = 6;\n    // Seccomp profile for the sandbox.\n    SecurityProfile seccomp = 9;\n    // AppArmor profile for the sandbox.\n    SecurityProfile apparmor = 10;\n    // Seccomp profile for the sandbox, candidate values are:\n    // * runtime/default: the default profile for the container runtime\n    // * unconfined: unconfined profile, ie, no seccomp sandboxing\n    // * localhost/<full-path-to-profile>: the profile installed on the node.\n    //   <full-path-to-profile> is the full path of the profile.\n    // Default: \"\", which is identical with unconfined.\n    string seccomp_profile_path = 7 [deprecated=true];\n}\n\n// A security profile which can be used for sandboxes and containers.\nmessage SecurityProfile {\n    // Available profile types.\n    enum ProfileType {\n        // The container runtime default profile should be used.\n        RuntimeDefault = 0;\n        // Disable the feature for the sandbox or the container.\n        Unconfined = 1;\n        // A pre-defined profile on the node should be used.\n        Localhost = 2;\n    }\n    // Indicator which `ProfileType` should be applied.\n    ProfileType profile_type = 1;\n    // Indicates that a pre-defined profile on the node should be used.\n    // Must only be set if `ProfileType` is `Localhost`.\n    // For seccomp, it must be an absolute path to the seccomp profile.\n    // For AppArmor, this field is the AppArmor `<profile name>/`\n    string localhost_ref = 2;\n}\n\n// LinuxPodSandboxConfig holds platform-specific configurations for Linux\n// host platforms and Linux-based containers.\nmessage LinuxPodSandboxConfig {\n    // Parent cgroup of the PodSandbox.\n    // The cgroupfs style syntax will be used, but the container runtime can\n    // convert it to systemd semantics if needed.\n    string cgroup_parent = 1;\n    // LinuxSandboxSecurityContext holds sandbox security attributes.\n    LinuxSandboxSecurityContext security_context = 2;\n    // Sysctls holds linux sysctls config for the sandbox.\n    map<string, string> sysctls = 3;\n    // Optional overhead represents the overheads associated with this sandbox\n    LinuxContainerResources overhead = 4;\n    // Optional resources represents the sum of container resources for this sandbox\n    LinuxContainerResources resources = 5;\n}\n\n// PodSandboxMetadata holds all necessary information for building the sandbox name.\n// The container runtime is encouraged to expose the metadata associated with the\n// PodSandbox in its user interface for better user experience. For example,\n// the runtime can construct a unique PodSandboxName based on the metadata.\nmessage PodSandboxMetadata {\n    // Pod name of the sandbox. Same as the pod name in the Pod ObjectMeta.\n    string name = 1;\n    // Pod UID of the sandbox. Same as the pod UID in the Pod ObjectMeta.\n    string uid = 2;\n    // Pod namespace of the sandbox. Same as the pod namespace in the Pod ObjectMeta.\n    string namespace = 3;\n    // Attempt number of creating the sandbox. Default: 0.\n    uint32 attempt = 4;\n}\n\n// PodSandboxConfig holds all the required and optional fields for creating a\n// sandbox.\nmessage PodSandboxConfig {\n    // Metadata of the sandbox. This information will uniquely identify the\n    // sandbox, and the runtime should leverage this to ensure correct\n    // operation. The runtime may also use this information to improve UX, such\n    // as by constructing a readable name.\n    PodSandboxMetadata metadata = 1;\n    // Hostname of the sandbox. Hostname could only be empty when the pod\n    // network namespace is NODE.\n    string hostname = 2;\n    // Path to the directory on the host in which container log files are\n    // stored.\n    // By default the log of a container going into the LogDirectory will be\n    // hooked up to STDOUT and STDERR. However, the LogDirectory may contain\n    // binary log files with structured logging data from the individual\n    // containers. For example, the files might be newline separated JSON\n    // structured logs, systemd-journald journal files, gRPC trace files, etc.\n    // E.g.,\n    //     PodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/`\n    //     ContainerConfig.LogPath = `containerName/Instance#.log`\n    string log_directory = 3;\n    // DNS config for the sandbox.\n    DNSConfig dns_config = 4;\n    // Port mappings for the sandbox.\n    repeated PortMapping port_mappings = 5;\n    // Key-value pairs that may be used to scope and select individual resources.\n    map<string, string> labels = 6;\n    // Unstructured key-value map that may be set by the kubelet to store and\n    // retrieve arbitrary metadata. This will include any annotations set on a\n    // pod through the Kubernetes API.\n    //\n    // Annotations MUST NOT be altered by the runtime; the annotations stored\n    // here MUST be returned in the PodSandboxStatus associated with the pod\n    // this PodSandboxConfig creates.\n    //\n    // In general, in order to preserve a well-defined interface between the\n    // kubelet and the container runtime, annotations SHOULD NOT influence\n    // runtime behaviour.\n    //\n    // Annotations can also be useful for runtime authors to experiment with\n    // new features that are opaque to the Kubernetes APIs (both user-facing\n    // and the CRI). Whenever possible, however, runtime authors SHOULD\n    // consider proposing new typed fields for any new features instead.\n    map<string, string> annotations = 7;\n    // Optional configurations specific to Linux hosts.\n    LinuxPodSandboxConfig linux = 8;\n    // Optional configurations specific to Windows hosts.\n    WindowsPodSandboxConfig windows = 9;\n}\n\nmessage RunPodSandboxRequest {\n    // Configuration for creating a PodSandbox.\n    PodSandboxConfig config = 1;\n    // Named runtime configuration to use for this PodSandbox.\n    // If the runtime handler is unknown, this request should be rejected.  An\n    // empty string should select the default handler, equivalent to the\n    // behavior before this feature was added.\n    // See https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n    string runtime_handler = 2;\n}\n\nmessage RunPodSandboxResponse {\n    // ID of the PodSandbox to run.\n    string pod_sandbox_id = 1;\n}\n\nmessage StopPodSandboxRequest {\n    // ID of the PodSandbox to stop.\n    string pod_sandbox_id = 1;\n}\n\nmessage StopPodSandboxResponse {}\n\nmessage RemovePodSandboxRequest {\n    // ID of the PodSandbox to remove.\n    string pod_sandbox_id = 1;\n}\n\nmessage RemovePodSandboxResponse {}\n\nmessage PodSandboxStatusRequest {\n    // ID of the PodSandbox for which to retrieve status.\n    string pod_sandbox_id = 1;\n    // Verbose indicates whether to return extra information about the pod sandbox.\n    bool verbose = 2;\n}\n\n// PodIP represents an ip of a Pod\nmessage PodIP{\n    // an ip is a string representation of an IPv4 or an IPv6\n    string ip = 1;\n}\n// PodSandboxNetworkStatus is the status of the network for a PodSandbox.\n// Currently ignored for pods sharing the host networking namespace.\nmessage PodSandboxNetworkStatus {\n    // IP address of the PodSandbox.\n    string ip = 1;\n    // list of additional ips (not inclusive of PodSandboxNetworkStatus.Ip) of the PodSandBoxNetworkStatus\n    repeated PodIP additional_ips  = 2;\n}\n\n// Namespace contains paths to the namespaces.\nmessage Namespace {\n    // Namespace options for Linux namespaces.\n    NamespaceOption options = 2;\n}\n\n// LinuxSandboxStatus contains status specific to Linux sandboxes.\nmessage LinuxPodSandboxStatus {\n    // Paths to the sandbox's namespaces.\n    Namespace namespaces = 1;\n}\n\nenum PodSandboxState {\n    SANDBOX_READY    = 0;\n    SANDBOX_NOTREADY = 1;\n}\n\n// PodSandboxStatus contains the status of the PodSandbox.\nmessage PodSandboxStatus {\n    // ID of the sandbox.\n    string id = 1;\n    // Metadata of the sandbox.\n    PodSandboxMetadata metadata = 2;\n    // State of the sandbox.\n    PodSandboxState state = 3;\n    // Creation timestamp of the sandbox in nanoseconds. Must be > 0.\n    int64 created_at = 4;\n    // Network contains network status if network is handled by the runtime.\n    PodSandboxNetworkStatus network = 5;\n    // Linux-specific status to a pod sandbox.\n    LinuxPodSandboxStatus linux = 6;\n    // Labels are key-value pairs that may be used to scope and select individual resources.\n    map<string, string> labels = 7;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding PodSandboxConfig used to\n    // instantiate the pod sandbox this status represents.\n    map<string, string> annotations = 8;\n    // runtime configuration used for this PodSandbox.\n    string runtime_handler = 9;\n}\n\nmessage PodSandboxStatusResponse {\n    // Status of the PodSandbox.\n    PodSandboxStatus status = 1;\n    // Info is extra information of the PodSandbox. The key could be arbitrary string, and\n    // value should be in json format. The information could include anything useful for\n    // debug, e.g. network namespace for linux container based container runtime.\n    // It should only be returned non-empty when Verbose is true.\n    map<string, string> info = 2;\n}\n\n// PodSandboxStateValue is the wrapper of PodSandboxState.\nmessage PodSandboxStateValue {\n    // State of the sandbox.\n    PodSandboxState state = 1;\n}\n\n// PodSandboxFilter is used to filter a list of PodSandboxes.\n// All those fields are combined with 'AND'\nmessage PodSandboxFilter {\n    // ID of the sandbox.\n    string id = 1;\n    // State of the sandbox.\n    PodSandboxStateValue state = 2;\n    // LabelSelector to select matches.\n    // Only api.MatchLabels is supported for now and the requirements\n    // are ANDed. MatchExpressions is not supported yet.\n    map<string, string> label_selector = 3;\n}\n\nmessage ListPodSandboxRequest {\n    // PodSandboxFilter to filter a list of PodSandboxes.\n    PodSandboxFilter filter = 1;\n}\n\n\n// PodSandbox contains minimal information about a sandbox.\nmessage PodSandbox {\n    // ID of the PodSandbox.\n    string id = 1;\n    // Metadata of the PodSandbox.\n    PodSandboxMetadata metadata = 2;\n    // State of the PodSandbox.\n    PodSandboxState state = 3;\n    // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0.\n    int64 created_at = 4;\n    // Labels of the PodSandbox.\n    map<string, string> labels = 5;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding PodSandboxConfig used to\n    // instantiate this PodSandbox.\n    map<string, string> annotations = 6;\n    // runtime configuration used for this PodSandbox.\n    string runtime_handler = 7;\n}\n\nmessage ListPodSandboxResponse {\n    // List of PodSandboxes.\n    repeated PodSandbox items = 1;\n}\n\nmessage PodSandboxStatsRequest {\n    // ID of the pod sandbox for which to retrieve stats.\n    string pod_sandbox_id = 1;\n}\n\nmessage PodSandboxStatsResponse {\n    PodSandboxStats stats = 1;\n}\n\n// PodSandboxStatsFilter is used to filter the list of pod sandboxes to retrieve stats for.\n// All those fields are combined with 'AND'.\nmessage PodSandboxStatsFilter {\n    // ID of the pod sandbox.\n    string id = 1;\n    // LabelSelector to select matches.\n    // Only api.MatchLabels is supported for now and the requirements\n    // are ANDed. MatchExpressions is not supported yet.\n    map<string, string> label_selector = 2;\n}\n\nmessage ListPodSandboxStatsRequest {\n    // Filter for the list request.\n    PodSandboxStatsFilter filter = 1;\n}\n\nmessage ListPodSandboxStatsResponse {\n    // Stats of the pod sandbox.\n    repeated PodSandboxStats stats = 1;\n}\n\n// PodSandboxAttributes provides basic information of the pod sandbox.\nmessage PodSandboxAttributes {\n    // ID of the pod sandbox.\n    string id = 1;\n    // Metadata of the pod sandbox.\n    PodSandboxMetadata metadata = 2;\n    // Key-value pairs that may be used to scope and select individual resources.\n    map<string,string> labels = 3;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding PodSandboxStatus used to\n    // instantiate the PodSandbox this status represents.\n    map<string,string> annotations = 4;\n}\n\n// PodSandboxStats provides the resource usage statistics for a pod.\n// The linux or windows field will be populated depending on the platform.\nmessage PodSandboxStats {\n    // Information of the pod.\n    PodSandboxAttributes attributes = 1;\n    // Stats from linux.\n    LinuxPodSandboxStats linux = 2;\n    // Stats from windows.\n    WindowsPodSandboxStats windows = 3;\n}\n\n// LinuxPodSandboxStats provides the resource usage statistics for a pod sandbox on linux.\nmessage LinuxPodSandboxStats {\n    // CPU usage gathered for the pod sandbox.\n    CpuUsage cpu = 1;\n    // Memory usage gathered for the pod sandbox.\n    MemoryUsage memory = 2;\n    // Network usage gathered for the pod sandbox\n    NetworkUsage network = 3;\n    // Stats pertaining to processes in the pod sandbox.\n    ProcessUsage process = 4;\n    // Stats of containers in the measured pod sandbox.\n    repeated ContainerStats containers = 5;\n}\n\n// WindowsPodSandboxStats provides the resource usage statistics for a pod sandbox on windows\nmessage WindowsPodSandboxStats {\n    // TODO: Add stats relevant to windows.\n}\n\n// NetworkUsage contains data about network resources.\nmessage NetworkUsage {\n    // The time at which these stats were updated.\n    int64 timestamp = 1;\n    // Stats for the default network interface.\n    NetworkInterfaceUsage default_interface = 2;\n    // Stats for all found network interfaces, excluding the default.\n    repeated NetworkInterfaceUsage interfaces = 3;\n}\n\n// NetworkInterfaceUsage contains resource value data about a network interface.\nmessage NetworkInterfaceUsage {\n    // The name of the network interface.\n    string name = 1;\n    // Cumulative count of bytes received.\n    UInt64Value rx_bytes = 2;\n    // Cumulative count of receive errors encountered.\n    UInt64Value rx_errors = 3;\n    // Cumulative count of bytes transmitted.\n    UInt64Value tx_bytes = 4;\n    // Cumulative count of transmit errors encountered.\n    UInt64Value tx_errors = 5;\n}\n\n// ProcessUsage are stats pertaining to processes.\nmessage ProcessUsage {\n    // The time at which these stats were updated.\n    int64 timestamp = 1;\n    // Number of processes.\n    UInt64Value process_count = 2;\n}\n\n// ImageSpec is an internal representation of an image.\nmessage ImageSpec {\n    // Container's Image field (e.g. imageID or imageDigest).\n    string image = 1;\n    // Unstructured key-value map holding arbitrary metadata.\n    // ImageSpec Annotations can be used to help the runtime target specific\n    // images in multi-arch images.\n    map<string, string> annotations = 2;\n}\n\nmessage KeyValue {\n    string key = 1;\n    string value = 2;\n}\n\n// LinuxContainerResources specifies Linux specific configuration for\n// resources.\nmessage LinuxContainerResources {\n    // CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified).\n    int64 cpu_period = 1;\n    // CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified).\n    int64 cpu_quota = 2;\n    // CPU shares (relative weight vs. other containers). Default: 0 (not specified).\n    int64 cpu_shares = 3;\n    // Memory limit in bytes. Default: 0 (not specified).\n    int64 memory_limit_in_bytes = 4;\n    // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified).\n    int64 oom_score_adj = 5;\n    // CpusetCpus constrains the allowed set of logical CPUs. Default: \"\" (not specified).\n    string cpuset_cpus = 6;\n    // CpusetMems constrains the allowed set of memory nodes. Default: \"\" (not specified).\n    string cpuset_mems = 7;\n    // List of HugepageLimits to limit the HugeTLB usage of container per page size. Default: nil (not specified).\n    repeated HugepageLimit hugepage_limits = 8;\n    // Unified resources for cgroup v2. Default: nil (not specified).\n    // Each key/value in the map refers to the cgroup v2.\n    // e.g. \"memory.max\": \"6937202688\" or \"io.weight\": \"default 100\".\n    map<string, string> unified = 9;\n    // Memory swap limit in bytes. Default 0 (not specified).\n    int64 memory_swap_limit_in_bytes = 10;\n}\n\n// HugepageLimit corresponds to the file`hugetlb.<hugepagesize>.limit_in_byte` in container level cgroup.\n// For example, `PageSize=1GB`, `Limit=1073741824` means setting `1073741824` bytes to hugetlb.1GB.limit_in_bytes.\nmessage HugepageLimit {\n    // The value of PageSize has the format <size><unit-prefix>B (2MB, 1GB),\n    // and must match the <hugepagesize> of the corresponding control file found in `hugetlb.<hugepagesize>.limit_in_bytes`.\n    // The values of <unit-prefix> are intended to be parsed using base 1024(\"1KB\" = 1024, \"1MB\" = 1048576, etc).\n    string page_size = 1;\n    // limit in bytes of hugepagesize HugeTLB usage.\n    uint64 limit = 2;\n}\n\n// SELinuxOption are the labels to be applied to the container.\nmessage SELinuxOption {\n    string user = 1;\n    string role = 2;\n    string type = 3;\n    string level = 4;\n}\n\n// Capability contains the container capabilities to add or drop\n// Dropping a capability will drop it from all sets.\n// If a capability is added to only the add_capabilities list then it gets added to permitted,\n// inheritable, effective and bounding sets, i.e. all sets except the ambient set.\n// If a capability is added to only the add_ambient_capabilities list then it gets added to all sets, i.e permitted\n// inheritable, effective, bounding and ambient sets.\n// If a capability is added to add_capabilities and add_ambient_capabilities lists then it gets added to all sets, i.e.\n// permitted, inheritable, effective, bounding and ambient sets.\nmessage Capability {\n    // List of capabilities to add.\n    repeated string add_capabilities = 1;\n    // List of capabilities to drop.\n    repeated string drop_capabilities = 2;\n    // List of ambient capabilities to add.\n    repeated string add_ambient_capabilities = 3;\n}\n\n// LinuxContainerSecurityContext holds linux security configuration that will be applied to a container.\nmessage LinuxContainerSecurityContext {\n    // Capabilities to add or drop.\n    Capability capabilities = 1;\n    // If set, run container in privileged mode.\n    // Privileged mode is incompatible with the following options. If\n    // privileged is set, the following features MAY have no effect:\n    // 1. capabilities\n    // 2. selinux_options\n    // 4. seccomp\n    // 5. apparmor\n    //\n    // Privileged mode implies the following specific options are applied:\n    // 1. All capabilities are added.\n    // 2. Sensitive paths, such as kernel module paths within sysfs, are not masked.\n    // 3. Any sysfs and procfs mounts are mounted RW.\n    // 4. AppArmor confinement is not applied.\n    // 5. Seccomp restrictions are not applied.\n    // 6. The device cgroup does not restrict access to any devices.\n    // 7. All devices from the host's /dev are available within the container.\n    // 8. SELinux restrictions are not applied (e.g. label=disabled).\n    bool privileged = 2;\n    // Configurations for the container's namespaces.\n    // Only used if the container uses namespace for isolation.\n    NamespaceOption namespace_options = 3;\n    // SELinux context to be optionally applied.\n    SELinuxOption selinux_options = 4;\n    // UID to run the container process as. Only one of run_as_user and\n    // run_as_username can be specified at a time.\n    Int64Value run_as_user = 5;\n    // GID to run the container process as. run_as_group should only be specified\n    // when run_as_user or run_as_username is specified; otherwise, the runtime\n    // MUST error.\n    Int64Value run_as_group = 12;\n    // User name to run the container process as. If specified, the user MUST\n    // exist in the container image (i.e. in the /etc/passwd inside the image),\n    // and be resolved there by the runtime; otherwise, the runtime MUST error.\n    string run_as_username = 6;\n    // If set, the root filesystem of the container is read-only.\n    bool readonly_rootfs = 7;\n    // List of groups applied to the first process run in the container, in\n    // addition to the container's primary GID.\n    repeated int64 supplemental_groups = 8;\n    // no_new_privs defines if the flag for no_new_privs should be set on the\n    // container.\n    bool no_new_privs = 11;\n    // masked_paths is a slice of paths that should be masked by the container\n    // runtime, this can be passed directly to the OCI spec.\n    repeated string masked_paths = 13;\n    // readonly_paths is a slice of paths that should be set as readonly by the\n    // container runtime, this can be passed directly to the OCI spec.\n    repeated string readonly_paths = 14;\n    // Seccomp profile for the container.\n    SecurityProfile seccomp = 15;\n    // AppArmor profile for the container.\n    SecurityProfile apparmor = 16;\n    // AppArmor profile for the container, candidate values are:\n    // * runtime/default: equivalent to not specifying a profile.\n    // * unconfined: no profiles are loaded\n    // * localhost/<profile_name>: profile loaded on the node\n    //    (localhost) by name. The possible profile names are detailed at\n    //    https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference\n    string apparmor_profile = 9 [deprecated=true];\n    // Seccomp profile for the container, candidate values are:\n    // * runtime/default: the default profile for the container runtime\n    // * unconfined: unconfined profile, ie, no seccomp sandboxing\n    // * localhost/<full-path-to-profile>: the profile installed on the node.\n    //   <full-path-to-profile> is the full path of the profile.\n    // Default: \"\", which is identical with unconfined.\n    string seccomp_profile_path = 10 [deprecated=true];\n}\n\n// LinuxContainerConfig contains platform-specific configuration for\n// Linux-based containers.\nmessage LinuxContainerConfig {\n    // Resources specification for the container.\n    LinuxContainerResources resources = 1;\n    // LinuxContainerSecurityContext configuration for the container.\n    LinuxContainerSecurityContext security_context = 2;\n}\n\n// WindowsSandboxSecurityContext holds platform-specific configurations that will be\n// applied to a sandbox.\n// These settings will only apply to the sandbox container.\nmessage WindowsSandboxSecurityContext {\n    // User name to run the container process as. If specified, the user MUST\n    // exist in the container image and be resolved there by the runtime;\n    // otherwise, the runtime MUST return error.\n    string run_as_username = 1;\n\n    // The contents of the GMSA credential spec to use to run this container.\n    string credential_spec = 2;\n\n    // Indicates whether the container requested to run as a HostProcess container.\n    bool host_process = 3;\n}\n\n// WindowsPodSandboxConfig holds platform-specific configurations for Windows\n// host platforms and Windows-based containers.\nmessage WindowsPodSandboxConfig {\n    // WindowsSandboxSecurityContext holds sandbox security attributes.\n    WindowsSandboxSecurityContext security_context = 1;\n}\n\n// WindowsContainerSecurityContext holds windows security configuration that will be applied to a container.\nmessage WindowsContainerSecurityContext {\n    // User name to run the container process as. If specified, the user MUST\n    // exist in the container image and be resolved there by the runtime;\n    // otherwise, the runtime MUST return error.\n    string run_as_username = 1;\n\n    // The contents of the GMSA credential spec to use to run this container.\n    string credential_spec = 2;\n\n    // Indicates whether a container is to be run as a HostProcess container.\n    bool host_process = 3;\n}\n\n// WindowsContainerConfig contains platform-specific configuration for\n// Windows-based containers.\nmessage WindowsContainerConfig {\n    // Resources specification for the container.\n    WindowsContainerResources resources = 1;\n    // WindowsContainerSecurityContext configuration for the container.\n    WindowsContainerSecurityContext security_context = 2;\n}\n\n// WindowsContainerResources specifies Windows specific configuration for\n// resources.\nmessage WindowsContainerResources {\n    // CPU shares (relative weight vs. other containers). Default: 0 (not specified).\n    int64 cpu_shares = 1;\n    // Number of CPUs available to the container. Default: 0 (not specified).\n    int64 cpu_count = 2;\n    // Specifies the portion of processor cycles that this container can use as a percentage times 100.\n    int64 cpu_maximum = 3;\n    // Memory limit in bytes. Default: 0 (not specified).\n    int64 memory_limit_in_bytes = 4;\n    // Specifies the size of the rootfs / scratch space in bytes to be configured for this container. Default: 0 (not specified).\n    int64 rootfs_size_in_bytes = 5;\n}\n\n// ContainerMetadata holds all necessary information for building the container\n// name. The container runtime is encouraged to expose the metadata in its user\n// interface for better user experience. E.g., runtime can construct a unique\n// container name based on the metadata. Note that (name, attempt) is unique\n// within a sandbox for the entire lifetime of the sandbox.\nmessage ContainerMetadata {\n    // Name of the container. Same as the container name in the PodSpec.\n    string name = 1;\n    // Attempt number of creating the container. Default: 0.\n    uint32 attempt = 2;\n}\n\n// Device specifies a host device to mount into a container.\nmessage Device {\n    // Path of the device within the container.\n    string container_path = 1;\n    // Path of the device on the host.\n    string host_path = 2;\n    // Cgroups permissions of the device, candidates are one or more of\n    // * r - allows container to read from the specified device.\n    // * w - allows container to write to the specified device.\n    // * m - allows container to create device files that do not yet exist.\n    string permissions = 3;\n}\n\n// ContainerConfig holds all the required and optional fields for creating a\n// container.\nmessage ContainerConfig {\n    // Metadata of the container. This information will uniquely identify the\n    // container, and the runtime should leverage this to ensure correct\n    // operation. The runtime may also use this information to improve UX, such\n    // as by constructing a readable name.\n    ContainerMetadata metadata = 1 ;\n    // Image to use.\n    ImageSpec image = 2;\n    // Command to execute (i.e., entrypoint for docker)\n    repeated string command = 3;\n    // Args for the Command (i.e., command for docker)\n    repeated string args = 4;\n    // Current working directory of the command.\n    string working_dir = 5;\n    // List of environment variable to set in the container.\n    repeated KeyValue envs = 6;\n    // Mounts for the container.\n    repeated Mount mounts = 7;\n    // Devices for the container.\n    repeated Device devices = 8;\n    // Key-value pairs that may be used to scope and select individual resources.\n    // Label keys are of the form:\n    //     label-key ::= prefixed-name | name\n    //     prefixed-name ::= prefix '/' name\n    //     prefix ::= DNS_SUBDOMAIN\n    //     name ::= DNS_LABEL\n    map<string, string> labels = 9;\n    // Unstructured key-value map that may be used by the kubelet to store and\n    // retrieve arbitrary metadata.\n    //\n    // Annotations MUST NOT be altered by the runtime; the annotations stored\n    // here MUST be returned in the ContainerStatus associated with the container\n    // this ContainerConfig creates.\n    //\n    // In general, in order to preserve a well-defined interface between the\n    // kubelet and the container runtime, annotations SHOULD NOT influence\n    // runtime behaviour.\n    map<string, string> annotations = 10;\n    // Path relative to PodSandboxConfig.LogDirectory for container to store\n    // the log (STDOUT and STDERR) on the host.\n    // E.g.,\n    //     PodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/`\n    //     ContainerConfig.LogPath = `containerName/Instance#.log`\n    //\n    // WARNING: Log management and how kubelet should interface with the\n    // container logs are under active discussion in\n    // https://issues.k8s.io/24677. There *may* be future change of direction\n    // for logging as the discussion carries on.\n    string log_path = 11;\n\n    // Variables for interactive containers, these have very specialized\n    // use-cases (e.g. debugging).\n    bool stdin = 12;\n    bool stdin_once = 13;\n    bool tty = 14;\n\n    // Configuration specific to Linux containers.\n    LinuxContainerConfig linux = 15;\n    // Configuration specific to Windows containers.\n    WindowsContainerConfig windows = 16;\n}\n\nmessage CreateContainerRequest {\n    // ID of the PodSandbox in which the container should be created.\n    string pod_sandbox_id = 1;\n    // Config of the container.\n    ContainerConfig config = 2;\n    // Config of the PodSandbox. This is the same config that was passed\n    // to RunPodSandboxRequest to create the PodSandbox. It is passed again\n    // here just for easy reference. The PodSandboxConfig is immutable and\n    // remains the same throughout the lifetime of the pod.\n    PodSandboxConfig sandbox_config = 3;\n}\n\nmessage CreateContainerResponse {\n    // ID of the created container.\n    string container_id = 1;\n}\n\nmessage StartContainerRequest {\n    // ID of the container to start.\n    string container_id = 1;\n}\n\nmessage StartContainerResponse {}\n\nmessage StopContainerRequest {\n    // ID of the container to stop.\n    string container_id = 1;\n    // Timeout in seconds to wait for the container to stop before forcibly\n    // terminating it. Default: 0 (forcibly terminate the container immediately)\n    int64 timeout = 2;\n}\n\nmessage StopContainerResponse {}\n\nmessage RemoveContainerRequest {\n    // ID of the container to remove.\n    string container_id = 1;\n}\n\nmessage RemoveContainerResponse {}\n\nenum ContainerState {\n    CONTAINER_CREATED = 0;\n    CONTAINER_RUNNING = 1;\n    CONTAINER_EXITED  = 2;\n    CONTAINER_UNKNOWN = 3;\n}\n\n// ContainerStateValue is the wrapper of ContainerState.\nmessage ContainerStateValue {\n    // State of the container.\n    ContainerState state = 1;\n}\n\n// ContainerFilter is used to filter containers.\n// All those fields are combined with 'AND'\nmessage ContainerFilter {\n    // ID of the container.\n    string id = 1;\n    // State of the container.\n    ContainerStateValue state = 2;\n    // ID of the PodSandbox.\n    string pod_sandbox_id = 3;\n    // LabelSelector to select matches.\n    // Only api.MatchLabels is supported for now and the requirements\n    // are ANDed. MatchExpressions is not supported yet.\n    map<string, string> label_selector = 4;\n}\n\nmessage ListContainersRequest {\n    ContainerFilter filter = 1;\n}\n\n// Container provides the runtime information for a container, such as ID, hash,\n// state of the container.\nmessage Container {\n    // ID of the container, used by the container runtime to identify\n    // a container.\n    string id = 1;\n    // ID of the sandbox to which this container belongs.\n    string pod_sandbox_id = 2;\n    // Metadata of the container.\n    ContainerMetadata metadata = 3;\n    // Spec of the image.\n    ImageSpec image = 4;\n    // Reference to the image in use. For most runtimes, this should be an\n    // image ID.\n    string image_ref = 5;\n    // State of the container.\n    ContainerState state = 6;\n    // Creation time of the container in nanoseconds.\n    int64 created_at = 7;\n    // Key-value pairs that may be used to scope and select individual resources.\n    map<string, string> labels = 8;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding ContainerConfig used to\n    // instantiate this Container.\n    map<string, string> annotations = 9;\n}\n\nmessage ListContainersResponse {\n    // List of containers.\n    repeated Container containers = 1;\n}\n\nmessage ContainerStatusRequest {\n    // ID of the container for which to retrieve status.\n    string container_id = 1;\n    // Verbose indicates whether to return extra information about the container.\n    bool verbose = 2;\n}\n\n// ContainerStatus represents the status of a container.\nmessage ContainerStatus {\n    // ID of the container.\n    string id = 1;\n    // Metadata of the container.\n    ContainerMetadata metadata = 2;\n    // Status of the container.\n    ContainerState state = 3;\n    // Creation time of the container in nanoseconds.\n    int64 created_at = 4;\n    // Start time of the container in nanoseconds. Default: 0 (not specified).\n    int64 started_at = 5;\n    // Finish time of the container in nanoseconds. Default: 0 (not specified).\n    int64 finished_at = 6;\n    // Exit code of the container. Only required when finished_at != 0. Default: 0.\n    int32 exit_code = 7;\n    // Spec of the image.\n    ImageSpec image = 8;\n    // Reference to the image in use. For most runtimes, this should be an\n    // image ID\n    string image_ref = 9;\n    // Brief CamelCase string explaining why container is in its current state.\n    string reason = 10;\n    // Human-readable message indicating details about why container is in its\n    // current state.\n    string message = 11;\n    // Key-value pairs that may be used to scope and select individual resources.\n    map<string,string> labels = 12;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding ContainerConfig used to\n    // instantiate the Container this status represents.\n    map<string,string> annotations = 13;\n    // Mounts for the container.\n    repeated Mount mounts = 14;\n    // Log path of container.\n    string log_path = 15;\n    // Resource limits configuration of the container.\n    ContainerResources resources = 16;\n}\n\nmessage ContainerStatusResponse {\n    // Status of the container.\n    ContainerStatus status = 1;\n    // Info is extra information of the Container. The key could be arbitrary string, and\n    // value should be in json format. The information could include anything useful for\n    // debug, e.g. pid for linux container based container runtime.\n    // It should only be returned non-empty when Verbose is true.\n    map<string, string> info = 2;\n}\n\n// ContainerResources holds resource limits configuration for a container.\nmessage ContainerResources {\n    // Resource limits configuration specific to Linux container.\n    LinuxContainerResources linux = 1;\n    // Resource limits configuration specific to Windows container.\n    WindowsContainerResources windows = 2;\n}\n\nmessage UpdateContainerResourcesRequest {\n    // ID of the container to update.\n    string container_id = 1;\n    // Resource configuration specific to Linux containers.\n    LinuxContainerResources linux = 2;\n    // Resource configuration specific to Windows containers.\n    WindowsContainerResources windows = 3;\n    // Unstructured key-value map holding arbitrary additional information for\n    // container resources updating. This can be used for specifying experimental\n    // resources to update or other options to use when updating the container.\n    map<string, string> annotations = 4;\n}\n\nmessage UpdateContainerResourcesResponse {}\n\nmessage ExecSyncRequest {\n    // ID of the container.\n    string container_id = 1;\n    // Command to execute.\n    repeated string cmd = 2;\n    // Timeout in seconds to stop the command. Default: 0 (run forever).\n    int64 timeout = 3;\n}\n\nmessage ExecSyncResponse {\n    // Captured command stdout output.\n    bytes stdout = 1;\n    // Captured command stderr output.\n    bytes stderr = 2;\n    // Exit code the command finished with. Default: 0 (success).\n    int32 exit_code = 3;\n}\n\nmessage ExecRequest {\n    // ID of the container in which to execute the command.\n    string container_id = 1;\n    // Command to execute.\n    repeated string cmd = 2;\n    // Whether to exec the command in a TTY.\n    bool tty = 3;\n    // Whether to stream stdin.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    bool stdin = 4;\n    // Whether to stream stdout.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    bool stdout = 5;\n    // Whether to stream stderr.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported\n    // in this case. The output of stdout and stderr will be combined to a\n    // single stream.\n    bool stderr = 6;\n}\n\nmessage ExecResponse {\n    // Fully qualified URL of the exec streaming server.\n    string url = 1;\n}\n\nmessage AttachRequest {\n    // ID of the container to which to attach.\n    string container_id = 1;\n    // Whether to stream stdin.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    bool stdin = 2;\n    // Whether the process being attached is running in a TTY.\n    // This must match the TTY setting in the ContainerConfig.\n    bool tty = 3;\n    // Whether to stream stdout.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    bool stdout = 4;\n    // Whether to stream stderr.\n    // One of `stdin`, `stdout`, and `stderr` MUST be true.\n    // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported\n    // in this case. The output of stdout and stderr will be combined to a\n    // single stream.\n    bool stderr = 5;\n}\n\nmessage AttachResponse {\n    // Fully qualified URL of the attach streaming server.\n    string url = 1;\n}\n\nmessage PortForwardRequest {\n    // ID of the container to which to forward the port.\n    string pod_sandbox_id = 1;\n    // Port to forward.\n    repeated int32 port = 2;\n}\n\nmessage PortForwardResponse {\n    // Fully qualified URL of the port-forward streaming server.\n    string url = 1;\n}\n\nmessage ImageFilter {\n    // Spec of the image.\n    ImageSpec image = 1;\n}\n\nmessage ListImagesRequest {\n    // Filter to list images.\n    ImageFilter filter = 1;\n}\n\n// Basic information about a container image.\nmessage Image {\n    // ID of the image.\n    string id = 1;\n    // Other names by which this image is known.\n    repeated string repo_tags = 2;\n    // Digests by which this image is known.\n    repeated string repo_digests = 3;\n    // Size of the image in bytes. Must be > 0.\n    uint64 size = 4;\n    // UID that will run the command(s). This is used as a default if no user is\n    // specified when creating the container. UID and the following user name\n    // are mutually exclusive.\n    Int64Value uid = 5;\n    // User name that will run the command(s). This is used if UID is not set\n    // and no user is specified when creating container.\n    string username = 6;\n    // ImageSpec for image which includes annotations\n    ImageSpec spec = 7;\n    // Recommendation on whether this image should be exempt from garbage collection.\n    // It must only be treated as a recommendation -- the client can still request that the image be deleted,\n    // and the runtime must oblige.\n    bool pinned = 8;\n}\n\nmessage ListImagesResponse {\n    // List of images.\n    repeated Image images = 1;\n}\n\nmessage ImageStatusRequest {\n    // Spec of the image.\n    ImageSpec image = 1;\n    // Verbose indicates whether to return extra information about the image.\n    bool verbose = 2;\n}\n\nmessage ImageStatusResponse {\n    // Status of the image.\n    Image image = 1;\n    // Info is extra information of the Image. The key could be arbitrary string, and\n    // value should be in json format. The information could include anything useful\n    // for debug, e.g. image config for oci image based container runtime.\n    // It should only be returned non-empty when Verbose is true.\n    map<string, string> info = 2;\n}\n\n// AuthConfig contains authorization information for connecting to a registry.\nmessage AuthConfig {\n    string username = 1;\n    string password = 2;\n    string auth = 3;\n    string server_address = 4;\n    // IdentityToken is used to authenticate the user and get\n    // an access token for the registry.\n    string identity_token = 5;\n    // RegistryToken is a bearer token to be sent to a registry\n    string registry_token = 6;\n}\n\nmessage PullImageRequest {\n    // Spec of the image.\n    ImageSpec image = 1;\n    // Authentication configuration for pulling the image.\n    AuthConfig auth = 2;\n    // Config of the PodSandbox, which is used to pull image in PodSandbox context.\n    PodSandboxConfig sandbox_config = 3;\n}\n\nmessage PullImageResponse {\n    // Reference to the image in use. For most runtimes, this should be an\n    // image ID or digest.\n    string image_ref = 1;\n}\n\nmessage RemoveImageRequest {\n    // Spec of the image to remove.\n    ImageSpec image = 1;\n}\n\nmessage RemoveImageResponse {}\n\nmessage NetworkConfig {\n    // CIDR to use for pod IP addresses. If the CIDR is empty, runtimes\n    // should omit it.\n    string pod_cidr = 1;\n}\n\nmessage RuntimeConfig {\n    NetworkConfig network_config = 1;\n}\n\nmessage UpdateRuntimeConfigRequest {\n    RuntimeConfig runtime_config = 1;\n}\n\nmessage UpdateRuntimeConfigResponse {}\n\n// RuntimeCondition contains condition information for the runtime.\n// There are 2 kinds of runtime conditions:\n// 1. Required conditions: Conditions are required for kubelet to work\n// properly. If any required condition is unmet, the node will be not ready.\n// The required conditions include:\n//   * RuntimeReady: RuntimeReady means the runtime is up and ready to accept\n//   basic containers e.g. container only needs host network.\n//   * NetworkReady: NetworkReady means the runtime network is up and ready to\n//   accept containers which require container network.\n// 2. Optional conditions: Conditions are informative to the user, but kubelet\n// will not rely on. Since condition type is an arbitrary string, all conditions\n// not required are optional. These conditions will be exposed to users to help\n// them understand the status of the system.\nmessage RuntimeCondition {\n    // Type of runtime condition.\n    string type = 1;\n    // Status of the condition, one of true/false. Default: false.\n    bool status = 2;\n    // Brief CamelCase string containing reason for the condition's last transition.\n    string reason = 3;\n    // Human-readable message indicating details about last transition.\n    string message = 4;\n}\n\n// RuntimeStatus is information about the current status of the runtime.\nmessage RuntimeStatus {\n    // List of current observed runtime conditions.\n    repeated RuntimeCondition conditions = 1;\n}\n\nmessage StatusRequest {\n    // Verbose indicates whether to return extra information about the runtime.\n    bool verbose = 1;\n}\n\nmessage StatusResponse {\n    // Status of the Runtime.\n    RuntimeStatus status = 1;\n    // Info is extra information of the Runtime. The key could be arbitrary string, and\n    // value should be in json format. The information could include anything useful for\n    // debug, e.g. plugins used by the container runtime.\n    // It should only be returned non-empty when Verbose is true.\n    map<string, string> info = 2;\n}\n\nmessage ImageFsInfoRequest {}\n\n// UInt64Value is the wrapper of uint64.\nmessage UInt64Value {\n    // The value.\n    uint64 value = 1;\n}\n\n// FilesystemIdentifier uniquely identify the filesystem.\nmessage FilesystemIdentifier{\n    // Mountpoint of a filesystem.\n    string mountpoint = 1;\n}\n\n// FilesystemUsage provides the filesystem usage information.\nmessage FilesystemUsage {\n    // Timestamp in nanoseconds at which the information were collected. Must be > 0.\n    int64 timestamp = 1;\n    // The unique identifier of the filesystem.\n    FilesystemIdentifier fs_id = 2;\n    // UsedBytes represents the bytes used for images on the filesystem.\n    // This may differ from the total bytes used on the filesystem and may not\n    // equal CapacityBytes - AvailableBytes.\n    UInt64Value used_bytes = 3;\n    // InodesUsed represents the inodes used by the images.\n    // This may not equal InodesCapacity - InodesAvailable because the underlying\n    // filesystem may also be used for purposes other than storing images.\n    UInt64Value inodes_used = 4;\n}\n\nmessage ImageFsInfoResponse {\n    // Information of image filesystem(s).\n    repeated FilesystemUsage image_filesystems = 1;\n}\n\nmessage ContainerStatsRequest{\n    // ID of the container for which to retrieve stats.\n    string container_id = 1;\n}\n\nmessage ContainerStatsResponse {\n    // Stats of the container.\n    ContainerStats stats = 1;\n}\n\nmessage ListContainerStatsRequest{\n    // Filter for the list request.\n    ContainerStatsFilter filter = 1;\n}\n\n// ContainerStatsFilter is used to filter containers.\n// All those fields are combined with 'AND'\nmessage ContainerStatsFilter {\n    // ID of the container.\n    string id = 1;\n    // ID of the PodSandbox.\n    string pod_sandbox_id = 2;\n    // LabelSelector to select matches.\n    // Only api.MatchLabels is supported for now and the requirements\n    // are ANDed. MatchExpressions is not supported yet.\n    map<string, string> label_selector = 3;\n}\n\nmessage ListContainerStatsResponse {\n    // Stats of the container.\n    repeated ContainerStats stats = 1;\n}\n\n// ContainerAttributes provides basic information of the container.\nmessage ContainerAttributes {\n    // ID of the container.\n    string id = 1;\n    // Metadata of the container.\n    ContainerMetadata metadata = 2;\n    // Key-value pairs that may be used to scope and select individual resources.\n    map<string,string> labels = 3;\n    // Unstructured key-value map holding arbitrary metadata.\n    // Annotations MUST NOT be altered by the runtime; the value of this field\n    // MUST be identical to that of the corresponding ContainerConfig used to\n    // instantiate the Container this status represents.\n    map<string,string> annotations = 4;\n}\n\n// ContainerStats provides the resource usage statistics for a container.\nmessage ContainerStats {\n    // Information of the container.\n    ContainerAttributes attributes = 1;\n    // CPU usage gathered from the container.\n    CpuUsage cpu = 2;\n    // Memory usage gathered from the container.\n    MemoryUsage memory = 3;\n    // Usage of the writable layer.\n    FilesystemUsage writable_layer = 4;\n}\n\n// CpuUsage provides the CPU usage information.\nmessage CpuUsage {\n    // Timestamp in nanoseconds at which the information were collected. Must be > 0.\n    int64 timestamp = 1;\n    // Cumulative CPU usage (sum across all cores) since object creation.\n    UInt64Value usage_core_nano_seconds = 2;\n    // Total CPU usage (sum of all cores) averaged over the sample window.\n    // The \"core\" unit can be interpreted as CPU core-nanoseconds per second.\n    UInt64Value usage_nano_cores = 3;\n}\n\n// MemoryUsage provides the memory usage information.\nmessage MemoryUsage {\n    // Timestamp in nanoseconds at which the information were collected. Must be > 0.\n    int64 timestamp = 1;\n    // The amount of working set memory in bytes.\n    UInt64Value working_set_bytes = 2;\n    // Available memory for use. This is defined as the memory limit - workingSetBytes.\n    UInt64Value available_bytes = 3;\n    // Total memory in use. This includes all memory regardless of when it was accessed.\n    UInt64Value usage_bytes = 4;\n    // The amount of anonymous and swap cache memory (includes transparent hugepages).\n    UInt64Value rss_bytes = 5;\n    // Cumulative number of minor page faults.\n    UInt64Value page_faults = 6;\n    // Cumulative number of major page faults.\n    UInt64Value major_page_faults = 7;\n}\n\nmessage ReopenContainerLogRequest {\n    // ID of the container for which to reopen the log.\n    string container_id = 1;\n}\n\nmessage ReopenContainerLogResponse{\n}\n\nmessage CheckpointContainerRequest {\n    // ID of the container to be checkpointed.\n    string container_id = 1;\n    // Location of the checkpoint archive used for export\n    string location = 2;\n    // Timeout in seconds for the checkpoint to complete.\n    // Timeout of zero means to use the CRI default.\n    // Timeout > 0 means to use the user specified timeout.\n    int64 timeout = 3;\n}\n\nmessage CheckpointContainerResponse {}\n\nmessage GetEventsRequest {}\n\nmessage ContainerEventResponse {\n    // ID of the container\n    string container_id = 1;\n\n    // Type of the container event\n    ContainerEventType container_event_type = 2;\n\n    // Creation timestamp of this event\n    int64 created_at = 3;\n\n    // ID of the sandbox container\n    PodSandboxMetadata pod_sandbox_metadata = 4;\n}\n\nenum ContainerEventType {\n    // Container created\n    CONTAINER_CREATED_EVENT = 0;\n\n    // Container started\n    CONTAINER_STARTED_EVENT = 1;\n\n    // Container stopped\n    CONTAINER_STOPPED_EVENT = 2;\n\n    // Container deleted\n    CONTAINER_DELETED_EVENT = 3;\n}\n"
  },
  {
    "path": "vendor/k8s.io/cri-api/pkg/apis/runtime/v1/constants.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains all constants defined in CRI.\n\n// Required runtime condition type.\nconst (\n\t// RuntimeReady means the runtime is up and ready to accept basic containers.\n\tRuntimeReady = \"RuntimeReady\"\n\t// NetworkReady means the runtime network is up and ready to accept containers which require network.\n\tNetworkReady = \"NetworkReady\"\n)\n\n// LogStreamType is the type of the stream in CRI container log.\ntype LogStreamType string\n\nconst (\n\t// Stdout is the stream type for stdout.\n\tStdout LogStreamType = \"stdout\"\n\t// Stderr is the stream type for stderr.\n\tStderr LogStreamType = \"stderr\"\n)\n\n// LogTag is the tag of a log line in CRI container log.\n// Currently defined log tags:\n// * First tag: Partial/Full - P/F.\n// The field in the container log format can be extended to include multiple\n// tags by using a delimiter, but changes should be rare. If it becomes clear\n// that better extensibility is desired, a more extensible format (e.g., json)\n// should be adopted as a replacement and/or addition.\ntype LogTag string\n\nconst (\n\t// LogTagPartial means the line is part of multiple lines.\n\tLogTagPartial LogTag = \"P\"\n\t// LogTagFull means the line is a single full line or the end of multiple lines.\n\tLogTagFull LogTag = \"F\"\n\t// LogTagDelimiter is the delimiter for different log tags.\n\tLogTagDelimiter = \":\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/.gitignore",
    "content": "# OSX leaves these everywhere on SMB shares\n._*\n\n# OSX trash\n.DS_Store\n\n# Eclipse files\n.classpath\n.project\n.settings/**\n\n# Files generated by JetBrains IDEs, e.g. IntelliJ IDEA\n.idea/\n*.iml\n\n# Vscode files\n.vscode\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n## Contact Information\n\n- [Slack](https://kubernetes.slack.com/messages/sig-architecture)\n- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\nreviewers:\n  - harshanarayana\n  - pohly\napprovers:\n  - dims\n  - thockin\n  - serathius\nemeritus_approvers:\n  - brancz\n  - justinsb\n  - lavalamp\n  - piosz\n  - tallclair\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/README.md",
    "content": "klog\n====\n\nklog is a permanent fork of https://github.com/golang/glog.\n\n## Why was klog created?\n\nThe decision to create klog was one that wasn't made lightly, but it was necessary due to some\ndrawbacks that are present in [glog](https://github.com/golang/glog). Ultimately, the fork was created due to glog not being under active development; this can be seen in the glog README:\n\n> The code in this repo [...] is not itself under development\n\nThis makes us unable to solve many use cases without a fork. The factors that contributed to needing feature development are listed below:\n\n * `glog` [presents a lot \"gotchas\"](https://github.com/kubernetes/kubernetes/issues/61006) and introduces challenges in containerized environments, all of which aren't well documented.\n * `glog` doesn't provide an easy way to test logs, which detracts from the stability of software using it\n * A long term goal is to implement a logging interface that allows us to add context, change output format, etc.\n \nHistorical context is available here:\n\n * https://github.com/kubernetes/kubernetes/issues/61006\n * https://github.com/kubernetes/kubernetes/issues/70264\n * https://groups.google.com/forum/#!msg/kubernetes-sig-architecture/wCWiWf3Juzs/hXRVBH90CgAJ\n * https://groups.google.com/forum/#!msg/kubernetes-dev/7vnijOMhLS0/1oRiNtigBgAJ\n\n## Release versioning\n\nSemantic versioning is used in this repository. It contains several Go modules\nwith different levels of stability:\n- `k8s.io/klog/v2` - stable API, `vX.Y.Z` tags\n- `examples` - no stable API, no tags, no intention to ever stabilize\n\nExempt from the API stability guarantee are items (packages, functions, etc.)\nwhich are marked explicitly as `EXPERIMENTAL` in their docs comment. Those\nmay still change in incompatible ways or get removed entirely. This can only\nbe used for code that is used in tests to avoid situations where non-test\ncode from two different Kubernetes dependencies depends on incompatible\nreleases of klog because an experimental API was changed.\n\n----\n\nHow to use klog\n===============\n- Replace imports for `\"github.com/golang/glog\"` with `\"k8s.io/klog/v2\"`\n- Use `klog.InitFlags(nil)` explicitly for initializing global flags as we no longer use `init()` method to register the flags\n- You can now use `log_file` instead of `log_dir` for logging to a single file (See `examples/log_file/usage_log_file.go`)\n- If you want to redirect everything logged using klog somewhere else (say syslog!), you can use `klog.SetOutput()` method and supply a `io.Writer`. (See `examples/set_output/usage_set_output.go`)\n- For more logging conventions (See [Logging Conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md))\n- See our documentation on [pkg.go.dev/k8s.io](https://pkg.go.dev/k8s.io/klog).\n\n**NOTE**: please use the newer go versions that support semantic import versioning in modules, ideally go 1.11.4 or greater.\n\n### Coexisting with klog/v2\n\nSee [this example](examples/coexist_klog_v1_and_v2/) to see how to coexist with both klog/v1 and klog/v2.\n\n### Coexisting with glog\nThis package can be used side by side with glog. [This example](examples/coexist_glog/coexist_glog.go) shows how to initialize and synchronize flags from the global `flag.CommandLine` FlagSet. In addition, the example makes use of stderr as combined output by setting `alsologtostderr` (or `logtostderr`) to `true`.\n\n## Community, discussion, contribution, and support\n\nLearn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).\n\nYou can reach the maintainers of this project at:\n\n- [Slack](https://kubernetes.slack.com/messages/klog)\n- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n\n----\n\nglog\n====\n\nLeveled execution logs for Go.\n\nThis is an efficient pure Go implementation of leveled logs in the\nmanner of the open source C++ package\n\thttps://github.com/google/glog\n\nBy binding methods to booleans it is possible to use the log package\nwithout paying the expense of evaluating the arguments to the log.\nThrough the -vmodule flag, the package also provides fine-grained\ncontrol over logging at the file level.\n\nThe comment from glog.go introduces the ideas:\n\n\tPackage glog implements logging analogous to the Google-internal\n\tC++ INFO/ERROR/V setup.  It provides functions Info, Warning,\n\tError, Fatal, plus formatting variants such as Infof. It\n\talso provides V-style logging controlled by the -v and\n\t-vmodule=file=2 flags.\n\n\tBasic examples:\n\n\t\tglog.Info(\"Prepare to repel boarders\")\n\n\t\tglog.Fatalf(\"Initialization failed: %s\", err)\n\n\tSee the documentation of the V function for an explanation\n\tof these examples:\n\n\t\tif glog.V(2) {\n\t\t\tglog.Info(\"Starting transaction...\")\n\t\t}\n\n\t\tglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n\n\nThe repository contains an open source version of the log package\nused inside Google. The master copy of the source lives inside\nGoogle, not here. The code in this repo is for export only and is not itself\nunder development. Feature requests will be ignored.\n\nSend bug reports to golang-nuts@googlegroups.com.\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/RELEASE.md",
    "content": "# Release Process\n\nThe `klog` is released on an as-needed basis. The process is as follows:\n\n1. An issue is proposing a new release with a changelog since the last release\n1. All [OWNERS](OWNERS) must LGTM this release\n1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`\n1. The release issue is closed\n1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/SECURITY.md",
    "content": "# Security Policy\n\n## Security Announcements\n\nJoin the [kubernetes-security-announce] group for security and vulnerability announcements.\n\nYou can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].\n\n## Reporting a Vulnerability\n\nInstructions for reporting a vulnerability can be found on the\n[Kubernetes Security and Disclosure Information] page.\n\n## Supported Versions\n\nInformation about supported Kubernetes versions can be found on the\n[Kubernetes version and version skew support policy] page on the Kubernetes website.\n\n[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce\n[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50\n[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions\n[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Committee to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ndims\nthockin\njustinsb\ntallclair\npiosz\nbrancz\nDirectXMan12\nlavalamp\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/contextual.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"context\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// This file provides the implementation of\n// https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-logging\n//\n// SetLogger and ClearLogger were originally added to klog.go and got moved\n// here. Contextual logging adds a way to retrieve a Logger for direct logging\n// without the logging calls in klog.go.\n//\n// The global variables are expected to be modified only during sequential\n// parts of a program (init, serial tests) and therefore are not protected by\n// mutex locking.\n\nvar (\n\t// klogLogger is used as fallback for logging through the normal klog code\n\t// when no Logger is set.\n\tklogLogger logr.Logger = logr.New(&klogger{})\n)\n\n// SetLogger sets a Logger implementation that will be used as backing\n// implementation of the traditional klog log calls. klog will do its own\n// verbosity checks before calling logger.V().Info. logger.Error is always\n// called, regardless of the klog verbosity settings.\n//\n// If set, all log lines will be suppressed from the regular output, and\n// redirected to the logr implementation.\n// Use as:\n//\n//\t...\n//\tklog.SetLogger(zapr.NewLogger(zapLog))\n//\n// To remove a backing logr implemention, use ClearLogger. Setting an\n// empty logger with SetLogger(logr.Logger{}) does not work.\n//\n// Modifying the logger is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc SetLogger(logger logr.Logger) {\n\tSetLoggerWithOptions(logger)\n}\n\n// SetLoggerWithOptions is a more flexible version of SetLogger. Without\n// additional options, it behaves exactly like SetLogger. By passing\n// ContextualLogger(true) as option, it can be used to set a logger that then\n// will also get called directly by applications which retrieve it via\n// FromContext, Background, or TODO.\n//\n// Supporting direct calls is recommended because it avoids the overhead of\n// routing log entries through klogr into klog and then into the actual Logger\n// backend.\nfunc SetLoggerWithOptions(logger logr.Logger, opts ...LoggerOption) {\n\tlogging.loggerOptions = loggerOptions{}\n\tfor _, opt := range opts {\n\t\topt(&logging.loggerOptions)\n\t}\n\tlogging.logger = &logWriter{\n\t\tLogger:          logger,\n\t\twriteKlogBuffer: logging.loggerOptions.writeKlogBuffer,\n\t}\n}\n\n// ContextualLogger determines whether the logger passed to\n// SetLoggerWithOptions may also get called directly. Such a logger cannot rely\n// on verbosity checking in klog.\nfunc ContextualLogger(enabled bool) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.contextualLogger = enabled\n\t}\n}\n\n// FlushLogger provides a callback for flushing data buffered by the logger.\nfunc FlushLogger(flush func()) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.flush = flush\n\t}\n}\n\n// WriteKlogBuffer sets a callback that will be invoked by klog to write output\n// produced by non-structured log calls like Infof.\n//\n// The buffer will contain exactly the same data that klog normally would write\n// into its own output stream(s). In particular this includes the header, if\n// klog is configured to write one. The callback then can divert that data into\n// its own output streams. The buffer may or may not end in a line break.\n//\n// Without such a callback, klog will call the logger's Info or Error method\n// with just the message string (i.e. no header).\nfunc WriteKlogBuffer(write func([]byte)) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.writeKlogBuffer = write\n\t}\n}\n\n// LoggerOption implements the functional parameter paradigm for\n// SetLoggerWithOptions.\ntype LoggerOption func(o *loggerOptions)\n\ntype loggerOptions struct {\n\tcontextualLogger bool\n\tflush            func()\n\twriteKlogBuffer  func([]byte)\n}\n\n// logWriter combines a logger (always set) with a write callback (optional).\ntype logWriter struct {\n\tLogger\n\twriteKlogBuffer func([]byte)\n}\n\n// ClearLogger removes a backing Logger implementation if one was set earlier\n// with SetLogger.\n//\n// Modifying the logger is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc ClearLogger() {\n\tlogging.logger = nil\n\tlogging.loggerOptions = loggerOptions{}\n}\n\n// EnableContextualLogging controls whether contextual logging is enabled.\n// By default it is enabled. When disabled, FromContext avoids looking up\n// the logger in the context and always returns the global logger.\n// LoggerWithValues, LoggerWithName, and NewContext become no-ops\n// and return their input logger respectively context. This may be useful\n// to avoid the additional overhead for contextual logging.\n//\n// This must be called during initialization before goroutines are started.\nfunc EnableContextualLogging(enabled bool) {\n\tlogging.contextualLoggingEnabled = enabled\n}\n\n// FromContext retrieves a logger set by the caller or, if not set,\n// falls back to the program's global logger (a Logger instance or klog\n// itself).\nfunc FromContext(ctx context.Context) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\tif logger, err := logr.FromContext(ctx); err == nil {\n\t\t\treturn logger\n\t\t}\n\t}\n\n\treturn Background()\n}\n\n// TODO can be used as a last resort by code that has no means of\n// receiving a logger from its caller. FromContext or an explicit logger\n// parameter should be used instead.\nfunc TODO() Logger {\n\treturn Background()\n}\n\n// Background retrieves the fallback logger. It should not be called before\n// that logger was initialized by the program and not by code that should\n// better receive a logger via its parameters. TODO can be used as a temporary\n// solution for such code.\nfunc Background() Logger {\n\tif logging.loggerOptions.contextualLogger {\n\t\t// Is non-nil because logging.loggerOptions.contextualLogger is\n\t\t// only true if a logger was set.\n\t\treturn logging.logger.Logger\n\t}\n\n\treturn klogLogger\n}\n\n// LoggerWithValues returns logger.WithValues(...kv) when\n// contextual logging is enabled, otherwise the logger.\nfunc LoggerWithValues(logger Logger, kv ...interface{}) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logger.WithValues(kv...)\n\t}\n\treturn logger\n}\n\n// LoggerWithName returns logger.WithName(name) when contextual logging is\n// enabled, otherwise the logger.\nfunc LoggerWithName(logger Logger, name string) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logger.WithName(name)\n\t}\n\treturn logger\n}\n\n// NewContext returns logr.NewContext(ctx, logger) when\n// contextual logging is enabled, otherwise ctx.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logr.NewContext(ctx, logger)\n\t}\n\treturn ctx\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/exit.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage klog\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n)\n\nvar (\n\n\t// ExitFlushTimeout is the timeout that klog has traditionally used during\n\t// calls like Fatal or Exit when flushing log data right before exiting.\n\t// Applications that replace those calls and do not have some specific\n\t// requirements like \"exit immediately\" can use this value as parameter\n\t// for FlushAndExit.\n\t//\n\t// Can be set for testing purpose or to change the application's\n\t// default.\n\tExitFlushTimeout = 10 * time.Second\n\n\t// OsExit is the function called by FlushAndExit to terminate the program.\n\t//\n\t// Can be set for testing purpose or to change the application's\n\t// default behavior. Note that the function should not simply return\n\t// because callers of functions like Fatal will not expect that.\n\tOsExit = os.Exit\n)\n\n// FlushAndExit flushes log data for a certain amount of time and then calls\n// os.Exit. Combined with some logging call it provides a replacement for\n// traditional calls like Fatal or Exit.\nfunc FlushAndExit(flushTimeout time.Duration, exitCode int) {\n\ttimeoutFlush(flushTimeout)\n\tOsExit(exitCode)\n}\n\n// timeoutFlush calls Flush and returns when it completes or after timeout\n// elapses, whichever happens first.  This is needed because the hooks invoked\n// by Flush may deadlock when klog.Fatal is called from a hook that holds\n// a lock. Flushing also might take too long.\nfunc timeoutFlush(timeout time.Duration) {\n\tdone := make(chan bool, 1)\n\tgo func() {\n\t\tFlush() // calls logging.lockAndFlushAll()\n\t\tdone <- true\n\t}()\n\tselect {\n\tcase <-done:\n\tcase <-time.After(timeout):\n\t\tfmt.Fprintln(os.Stderr, \"klog: Flush took longer than\", timeout)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/imports.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"github.com/go-logr/logr\"\n)\n\n// The reason for providing these aliases is to allow code to work with logr\n// without directly importing it.\n\n// Logger in this package is exactly the same as logr.Logger.\ntype Logger = logr.Logger\n\n// LogSink in this package is exactly the same as logr.LogSink.\ntype LogSink = logr.LogSink\n\n// Runtimeinfo in this package is exactly the same as logr.RuntimeInfo.\ntype RuntimeInfo = logr.RuntimeInfo\n\nvar (\n\t// New is an alias for logr.New.\n\tNew = logr.New\n)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/buffer/buffer.go",
    "content": "// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package buffer provides a cache for byte.Buffer instances that can be reused\n// to avoid frequent allocation and deallocation. It also has utility code\n// for log header formatting that use these buffers.\npackage buffer\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2/internal/severity\"\n)\n\nvar (\n\t// Pid is inserted into log headers. Can be overridden for tests.\n\tPid = os.Getpid()\n)\n\n// Buffer holds a single byte.Buffer for reuse. The zero value is ready for\n// use. It also provides some helper methods for output formatting.\ntype Buffer struct {\n\tbytes.Buffer\n\tTmp  [64]byte // temporary byte array for creating headers.\n\tnext *Buffer\n}\n\nvar buffers = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn new(Buffer)\n\t},\n}\n\n// GetBuffer returns a new, ready-to-use buffer.\nfunc GetBuffer() *Buffer {\n\tb := buffers.Get().(*Buffer)\n\tb.Reset()\n\treturn b\n}\n\n// PutBuffer returns a buffer to the free list.\nfunc PutBuffer(b *Buffer) {\n\tif b.Len() >= 256 {\n\t\t// Let big buffers die a natural death, without relying on\n\t\t// sync.Pool behavior. The documentation implies that items may\n\t\t// get deallocated while stored there (\"If the Pool holds the\n\t\t// only reference when this [= be removed automatically]\n\t\t// happens, the item might be deallocated.\"), but\n\t\t// https://github.com/golang/go/issues/23199 leans more towards\n\t\t// having such a size limit.\n\t\treturn\n\t}\n\n\tbuffers.Put(b)\n}\n\n// Some custom tiny helper functions to print the log header efficiently.\n\nconst digits = \"0123456789\"\n\n// twoDigits formats a zero-prefixed two-digit integer at buf.Tmp[i].\nfunc (buf *Buffer) twoDigits(i, d int) {\n\tbuf.Tmp[i+1] = digits[d%10]\n\td /= 10\n\tbuf.Tmp[i] = digits[d%10]\n}\n\n// nDigits formats an n-digit integer at buf.Tmp[i],\n// padding with pad on the left.\n// It assumes d >= 0.\nfunc (buf *Buffer) nDigits(n, i, d int, pad byte) {\n\tj := n - 1\n\tfor ; j >= 0 && d > 0; j-- {\n\t\tbuf.Tmp[i+j] = digits[d%10]\n\t\td /= 10\n\t}\n\tfor ; j >= 0; j-- {\n\t\tbuf.Tmp[i+j] = pad\n\t}\n}\n\n// someDigits formats a zero-prefixed variable-width integer at buf.Tmp[i].\nfunc (buf *Buffer) someDigits(i, d int) int {\n\t// Print into the top, then copy down. We know there's space for at least\n\t// a 10-digit number.\n\tj := len(buf.Tmp)\n\tfor {\n\t\tj--\n\t\tbuf.Tmp[j] = digits[d%10]\n\t\td /= 10\n\t\tif d == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn copy(buf.Tmp[i:], buf.Tmp[j:])\n}\n\n// FormatHeader formats a log header using the provided file name and line number\n// and writes it into the buffer.\nfunc (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time) {\n\tif line < 0 {\n\t\tline = 0 // not a real line number, but acceptable to someDigits\n\t}\n\tif s > severity.FatalLog {\n\t\ts = severity.InfoLog // for safety.\n\t}\n\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\t_, month, day := now.Date()\n\thour, minute, second := now.Clock()\n\t// Lmmdd hh:mm:ss.uuuuuu threadid file:line]\n\tbuf.Tmp[0] = severity.Char[s]\n\tbuf.twoDigits(1, int(month))\n\tbuf.twoDigits(3, day)\n\tbuf.Tmp[5] = ' '\n\tbuf.twoDigits(6, hour)\n\tbuf.Tmp[8] = ':'\n\tbuf.twoDigits(9, minute)\n\tbuf.Tmp[11] = ':'\n\tbuf.twoDigits(12, second)\n\tbuf.Tmp[14] = '.'\n\tbuf.nDigits(6, 15, now.Nanosecond()/1000, '0')\n\tbuf.Tmp[21] = ' '\n\tbuf.nDigits(7, 22, Pid, ' ') // TODO: should be TID\n\tbuf.Tmp[29] = ' '\n\tbuf.Write(buf.Tmp[:30])\n\tbuf.WriteString(file)\n\tbuf.Tmp[0] = ':'\n\tn := buf.someDigits(1, line)\n\tbuf.Tmp[n+1] = ']'\n\tbuf.Tmp[n+2] = ' '\n\tbuf.Write(buf.Tmp[:n+3])\n}\n\n// SprintHeader formats a log header and returns a string. This is a simpler\n// version of FormatHeader for use in ktesting.\nfunc (buf *Buffer) SprintHeader(s severity.Severity, now time.Time) string {\n\tif s > severity.FatalLog {\n\t\ts = severity.InfoLog // for safety.\n\t}\n\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\t_, month, day := now.Date()\n\thour, minute, second := now.Clock()\n\t// Lmmdd hh:mm:ss.uuuuuu threadid file:line]\n\tbuf.Tmp[0] = severity.Char[s]\n\tbuf.twoDigits(1, int(month))\n\tbuf.twoDigits(3, day)\n\tbuf.Tmp[5] = ' '\n\tbuf.twoDigits(6, hour)\n\tbuf.Tmp[8] = ':'\n\tbuf.twoDigits(9, minute)\n\tbuf.Tmp[11] = ':'\n\tbuf.twoDigits(12, second)\n\tbuf.Tmp[14] = '.'\n\tbuf.nDigits(6, 15, now.Nanosecond()/1000, '0')\n\tbuf.Tmp[21] = ']'\n\treturn string(buf.Tmp[:22])\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/clock/README.md",
    "content": "# Clock\n\nThis package provides an interface for time-based operations.  It allows\nmocking time for testing.\n\nThis is a copy of k8s.io/utils/clock. We have to copy it to avoid a circular\ndependency (k8s.io/klog -> k8s.io/utils -> k8s.io/klog).\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/clock/clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clock\n\nimport \"time\"\n\n// PassiveClock allows for injecting fake or real clocks into code\n// that needs to read the current time but does not support scheduling\n// activity in the future.\ntype PassiveClock interface {\n\tNow() time.Time\n\tSince(time.Time) time.Duration\n}\n\n// Clock allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype Clock interface {\n\tPassiveClock\n\t// After returns the channel of a new Timer.\n\t// This method does not allow to free/GC the backing timer before it fires. Use\n\t// NewTimer instead.\n\tAfter(d time.Duration) <-chan time.Time\n\t// NewTimer returns a new Timer.\n\tNewTimer(d time.Duration) Timer\n\t// Sleep sleeps for the provided duration d.\n\t// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\n\tSleep(d time.Duration)\n\t// Tick returns the channel of a new Ticker.\n\t// This method does not allow to free/GC the backing ticker. Use\n\t// NewTicker from WithTicker instead.\n\tTick(d time.Duration) <-chan time.Time\n}\n\n// WithTicker allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype WithTicker interface {\n\tClock\n\t// NewTicker returns a new Ticker.\n\tNewTicker(time.Duration) Ticker\n}\n\n// WithDelayedExecution allows for injecting fake or real clocks into\n// code that needs to make use of AfterFunc functionality.\ntype WithDelayedExecution interface {\n\tClock\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// WithTickerAndDelayedExecution allows for injecting fake or real clocks\n// into code that needs Ticker and AfterFunc functionality\ntype WithTickerAndDelayedExecution interface {\n\tWithTicker\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// Ticker defines the Ticker interface.\ntype Ticker interface {\n\tC() <-chan time.Time\n\tStop()\n}\n\nvar _ = WithTicker(RealClock{})\n\n// RealClock really calls time.Now()\ntype RealClock struct{}\n\n// Now returns the current time.\nfunc (RealClock) Now() time.Time {\n\treturn time.Now()\n}\n\n// Since returns time since the specified timestamp.\nfunc (RealClock) Since(ts time.Time) time.Duration {\n\treturn time.Since(ts)\n}\n\n// After is the same as time.After(d).\n// This method does not allow to free/GC the backing timer before it fires. Use\n// NewTimer instead.\nfunc (RealClock) After(d time.Duration) <-chan time.Time {\n\treturn time.After(d)\n}\n\n// NewTimer is the same as time.NewTimer(d)\nfunc (RealClock) NewTimer(d time.Duration) Timer {\n\treturn &realTimer{\n\t\ttimer: time.NewTimer(d),\n\t}\n}\n\n// AfterFunc is the same as time.AfterFunc(d, f).\nfunc (RealClock) AfterFunc(d time.Duration, f func()) Timer {\n\treturn &realTimer{\n\t\ttimer: time.AfterFunc(d, f),\n\t}\n}\n\n// Tick is the same as time.Tick(d)\n// This method does not allow to free/GC the backing ticker. Use\n// NewTicker instead.\nfunc (RealClock) Tick(d time.Duration) <-chan time.Time {\n\treturn time.Tick(d)\n}\n\n// NewTicker returns a new Ticker.\nfunc (RealClock) NewTicker(d time.Duration) Ticker {\n\treturn &realTicker{\n\t\tticker: time.NewTicker(d),\n\t}\n}\n\n// Sleep is the same as time.Sleep(d)\n// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\nfunc (RealClock) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Timer allows for injecting fake or real timers into code that\n// needs to do arbitrary things based on time.\ntype Timer interface {\n\tC() <-chan time.Time\n\tStop() bool\n\tReset(d time.Duration) bool\n}\n\nvar _ = Timer(&realTimer{})\n\n// realTimer is backed by an actual time.Timer.\ntype realTimer struct {\n\ttimer *time.Timer\n}\n\n// C returns the underlying timer's channel.\nfunc (r *realTimer) C() <-chan time.Time {\n\treturn r.timer.C\n}\n\n// Stop calls Stop() on the underlying timer.\nfunc (r *realTimer) Stop() bool {\n\treturn r.timer.Stop()\n}\n\n// Reset calls Reset() on the underlying timer.\nfunc (r *realTimer) Reset(d time.Duration) bool {\n\treturn r.timer.Reset(d)\n}\n\ntype realTicker struct {\n\tticker *time.Ticker\n}\n\nfunc (r *realTicker) C() <-chan time.Time {\n\treturn r.ticker.C\n}\n\nfunc (r *realTicker) Stop() {\n\tr.ticker.Stop()\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/dbg/dbg.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package dbg provides some helper code for call traces.\npackage dbg\n\nimport (\n\t\"runtime\"\n)\n\n// Stacks is a wrapper for runtime.Stack that attempts to recover the data for\n// all goroutines or the calling one.\nfunc Stacks(all bool) []byte {\n\t// We don't know how big the traces are, so grow a few times if they don't fit. Start large, though.\n\tn := 10000\n\tif all {\n\t\tn = 100000\n\t}\n\tvar trace []byte\n\tfor i := 0; i < 5; i++ {\n\t\ttrace = make([]byte, n)\n\t\tnbytes := runtime.Stack(trace, all)\n\t\tif nbytes < len(trace) {\n\t\t\treturn trace[:nbytes]\n\t\t}\n\t\tn *= 2\n\t}\n\treturn trace\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serialize\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-logr/logr\"\n)\n\ntype textWriter interface {\n\tWriteText(*bytes.Buffer)\n}\n\n// WithValues implements LogSink.WithValues. The old key/value pairs are\n// assumed to be well-formed, the new ones are checked and padded if\n// necessary. It returns a new slice.\nfunc WithValues(oldKV, newKV []interface{}) []interface{} {\n\tif len(newKV) == 0 {\n\t\treturn oldKV\n\t}\n\tnewLen := len(oldKV) + len(newKV)\n\thasMissingValue := newLen%2 != 0\n\tif hasMissingValue {\n\t\tnewLen++\n\t}\n\t// The new LogSink must have its own slice.\n\tkv := make([]interface{}, 0, newLen)\n\tkv = append(kv, oldKV...)\n\tkv = append(kv, newKV...)\n\tif hasMissingValue {\n\t\tkv = append(kv, missingValue)\n\t}\n\treturn kv\n}\n\n// MergeKVs deduplicates elements provided in two key/value slices.\n//\n// Keys in each slice are expected to be unique, so duplicates can only occur\n// when the first and second slice contain the same key. When that happens, the\n// key/value pair from the second slice is used. The first slice must be well-formed\n// (= even key/value pairs). The second one may have a missing value, in which\n// case the special \"missing value\" is added to the result.\nfunc MergeKVs(first, second []interface{}) []interface{} {\n\tmaxLength := len(first) + (len(second)+1)/2*2\n\tif maxLength == 0 {\n\t\t// Nothing to do at all.\n\t\treturn nil\n\t}\n\n\tif len(first) == 0 && len(second)%2 == 0 {\n\t\t// Nothing to be overridden, second slice is well-formed\n\t\t// and can be used directly.\n\t\treturn second\n\t}\n\n\t// Determine which keys are in the second slice so that we can skip\n\t// them when iterating over the first one. The code intentionally\n\t// favors performance over completeness: we assume that keys are string\n\t// constants and thus compare equal when the string values are equal. A\n\t// string constant being overridden by, for example, a fmt.Stringer is\n\t// not handled.\n\toverrides := map[interface{}]bool{}\n\tfor i := 0; i < len(second); i += 2 {\n\t\toverrides[second[i]] = true\n\t}\n\tmerged := make([]interface{}, 0, maxLength)\n\tfor i := 0; i+1 < len(first); i += 2 {\n\t\tkey := first[i]\n\t\tif overrides[key] {\n\t\t\tcontinue\n\t\t}\n\t\tmerged = append(merged, key, first[i+1])\n\t}\n\tmerged = append(merged, second...)\n\tif len(merged)%2 != 0 {\n\t\tmerged = append(merged, missingValue)\n\t}\n\treturn merged\n}\n\ntype Formatter struct {\n\tAnyToStringHook AnyToStringFunc\n}\n\ntype AnyToStringFunc func(v interface{}) string\n\n// MergeKVsInto is a variant of MergeKVs which directly formats the key/value\n// pairs into a buffer.\nfunc (f Formatter) MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {\n\tif len(first) == 0 && len(second) == 0 {\n\t\t// Nothing to do at all.\n\t\treturn\n\t}\n\n\tif len(first) == 0 && len(second)%2 == 0 {\n\t\t// Nothing to be overridden, second slice is well-formed\n\t\t// and can be used directly.\n\t\tfor i := 0; i < len(second); i += 2 {\n\t\t\tf.KVFormat(b, second[i], second[i+1])\n\t\t}\n\t\treturn\n\t}\n\n\t// Determine which keys are in the second slice so that we can skip\n\t// them when iterating over the first one. The code intentionally\n\t// favors performance over completeness: we assume that keys are string\n\t// constants and thus compare equal when the string values are equal. A\n\t// string constant being overridden by, for example, a fmt.Stringer is\n\t// not handled.\n\toverrides := map[interface{}]bool{}\n\tfor i := 0; i < len(second); i += 2 {\n\t\toverrides[second[i]] = true\n\t}\n\tfor i := 0; i < len(first); i += 2 {\n\t\tkey := first[i]\n\t\tif overrides[key] {\n\t\t\tcontinue\n\t\t}\n\t\tf.KVFormat(b, key, first[i+1])\n\t}\n\t// Round down.\n\tl := len(second)\n\tl = l / 2 * 2\n\tfor i := 1; i < l; i += 2 {\n\t\tf.KVFormat(b, second[i-1], second[i])\n\t}\n\tif len(second)%2 == 1 {\n\t\tf.KVFormat(b, second[len(second)-1], missingValue)\n\t}\n}\n\nfunc MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {\n\tFormatter{}.MergeAndFormatKVs(b, first, second)\n}\n\nconst missingValue = \"(MISSING)\"\n\n// KVListFormat serializes all key/value pairs into the provided buffer.\n// A space gets inserted before the first pair and between each pair.\nfunc (f Formatter) KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {\n\tfor i := 0; i < len(keysAndValues); i += 2 {\n\t\tvar v interface{}\n\t\tk := keysAndValues[i]\n\t\tif i+1 < len(keysAndValues) {\n\t\t\tv = keysAndValues[i+1]\n\t\t} else {\n\t\t\tv = missingValue\n\t\t}\n\t\tf.KVFormat(b, k, v)\n\t}\n}\n\nfunc KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {\n\tFormatter{}.KVListFormat(b, keysAndValues...)\n}\n\n// KVFormat serializes one key/value pair into the provided buffer.\n// A space gets inserted before the pair.\nfunc (f Formatter) KVFormat(b *bytes.Buffer, k, v interface{}) {\n\tb.WriteByte(' ')\n\t// Keys are assumed to be well-formed according to\n\t// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments\n\t// for the sake of performance. Keys with spaces,\n\t// special characters, etc. will break parsing.\n\tif sK, ok := k.(string); ok {\n\t\t// Avoid one allocation when the key is a string, which\n\t\t// normally it should be.\n\t\tb.WriteString(sK)\n\t} else {\n\t\tb.WriteString(fmt.Sprintf(\"%s\", k))\n\t}\n\n\t// The type checks are sorted so that more frequently used ones\n\t// come first because that is then faster in the common\n\t// cases. In Kubernetes, ObjectRef (a Stringer) is more common\n\t// than plain strings\n\t// (https://github.com/kubernetes/kubernetes/pull/106594#issuecomment-975526235).\n\tswitch v := v.(type) {\n\tcase textWriter:\n\t\twriteTextWriterValue(b, v)\n\tcase fmt.Stringer:\n\t\twriteStringValue(b, true, StringerToString(v))\n\tcase string:\n\t\twriteStringValue(b, true, v)\n\tcase error:\n\t\twriteStringValue(b, true, ErrorToString(v))\n\tcase logr.Marshaler:\n\t\tvalue := MarshalerToValue(v)\n\t\t// A marshaler that returns a string is useful for\n\t\t// delayed formatting of complex values. We treat this\n\t\t// case like a normal string. This is useful for\n\t\t// multi-line support.\n\t\t//\n\t\t// We could do this by recursively formatting a value,\n\t\t// but that comes with the risk of infinite recursion\n\t\t// if a marshaler returns itself. Instead we call it\n\t\t// only once and rely on it returning the intended\n\t\t// value directly.\n\t\tswitch value := value.(type) {\n\t\tcase string:\n\t\t\twriteStringValue(b, true, value)\n\t\tdefault:\n\t\t\twriteStringValue(b, false, f.AnyToString(value))\n\t\t}\n\tcase []byte:\n\t\t// In https://github.com/kubernetes/klog/pull/237 it was decided\n\t\t// to format byte slices with \"%+q\". The advantages of that are:\n\t\t// - readable output if the bytes happen to be printable\n\t\t// - non-printable bytes get represented as unicode escape\n\t\t//   sequences (\\uxxxx)\n\t\t//\n\t\t// The downsides are that we cannot use the faster\n\t\t// strconv.Quote here and that multi-line output is not\n\t\t// supported. If developers know that a byte array is\n\t\t// printable and they want multi-line output, they can\n\t\t// convert the value to string before logging it.\n\t\tb.WriteByte('=')\n\t\tb.WriteString(fmt.Sprintf(\"%+q\", v))\n\tdefault:\n\t\twriteStringValue(b, false, f.AnyToString(v))\n\t}\n}\n\nfunc KVFormat(b *bytes.Buffer, k, v interface{}) {\n\tFormatter{}.KVFormat(b, k, v)\n}\n\n// AnyToString is the historic fallback formatter.\nfunc (f Formatter) AnyToString(v interface{}) string {\n\tif f.AnyToStringHook != nil {\n\t\treturn f.AnyToStringHook(v)\n\t}\n\treturn fmt.Sprintf(\"%+v\", v)\n}\n\n// StringerToString converts a Stringer to a string,\n// handling panics if they occur.\nfunc StringerToString(s fmt.Stringer) (ret string) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = s.String()\n\treturn\n}\n\n// MarshalerToValue invokes a marshaler and catches\n// panics.\nfunc MarshalerToValue(m logr.Marshaler) (ret interface{}) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = m.MarshalLog()\n\treturn\n}\n\n// ErrorToString converts an error to a string,\n// handling panics if they occur.\nfunc ErrorToString(err error) (ret string) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = err.Error()\n\treturn\n}\n\nfunc writeTextWriterValue(b *bytes.Buffer, v textWriter) {\n\tb.WriteRune('=')\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tfmt.Fprintf(b, `\"<panic: %s>\"`, err)\n\t\t}\n\t}()\n\tv.WriteText(b)\n}\n\nfunc writeStringValue(b *bytes.Buffer, quote bool, v string) {\n\tdata := []byte(v)\n\tindex := bytes.IndexByte(data, '\\n')\n\tif index == -1 {\n\t\tb.WriteByte('=')\n\t\tif quote {\n\t\t\t// Simple string, quote quotation marks and non-printable characters.\n\t\t\tb.WriteString(strconv.Quote(v))\n\t\t\treturn\n\t\t}\n\t\t// Non-string with no line breaks.\n\t\tb.WriteString(v)\n\t\treturn\n\t}\n\n\t// Complex multi-line string, show as-is with indention like this:\n\t// I... \"hello world\" key=<\n\t// <tab>line 1\n\t// <tab>line 2\n\t//  >\n\t//\n\t// Tabs indent the lines of the value while the end of string delimiter\n\t// is indented with a space. That has two purposes:\n\t// - visual difference between the two for a human reader because indention\n\t//   will be different\n\t// - no ambiguity when some value line starts with the end delimiter\n\t//\n\t// One downside is that the output cannot distinguish between strings that\n\t// end with a line break and those that don't because the end delimiter\n\t// will always be on the next line.\n\tb.WriteString(\"=<\\n\")\n\tfor index != -1 {\n\t\tb.WriteByte('\\t')\n\t\tb.Write(data[0 : index+1])\n\t\tdata = data[index+1:]\n\t\tindex = bytes.IndexByte(data, '\\n')\n\t}\n\tif len(data) == 0 {\n\t\t// String ended with line break, don't add another.\n\t\tb.WriteString(\" >\")\n\t} else {\n\t\t// No line break at end of last line, write rest of string and\n\t\t// add one.\n\t\tb.WriteByte('\\t')\n\t\tb.Write(data)\n\t\tb.WriteString(\"\\n >\")\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/severity/severity.go",
    "content": "// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package severity provides definitions for klog severity (info, warning, ...)\npackage severity\n\nimport (\n\t\"strings\"\n)\n\n// severity identifies the sort of log: info, warning etc. The binding to flag.Value\n// is handled in klog.go\ntype Severity int32 // sync/atomic int32\n\n// These constants identify the log levels in order of increasing severity.\n// A message written to a high-severity log file is also written to each\n// lower-severity log file.\nconst (\n\tInfoLog Severity = iota\n\tWarningLog\n\tErrorLog\n\tFatalLog\n\tNumSeverity = 4\n)\n\n// Char contains one shortcut letter per severity level.\nconst Char = \"IWEF\"\n\n// Name contains one name per severity level.\nvar Name = []string{\n\tInfoLog:    \"INFO\",\n\tWarningLog: \"WARNING\",\n\tErrorLog:   \"ERROR\",\n\tFatalLog:   \"FATAL\",\n}\n\n// ByName looks up a severity level by name.\nfunc ByName(s string) (Severity, bool) {\n\ts = strings.ToUpper(s)\n\tfor i, name := range Name {\n\t\tif name == s {\n\t\t\treturn Severity(i), true\n\t\t}\n\t}\n\treturn 0, false\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/k8s_references.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// ObjectRef references a kubernetes object\ntype ObjectRef struct {\n\tName      string `json:\"name\"`\n\tNamespace string `json:\"namespace,omitempty\"`\n}\n\nfunc (ref ObjectRef) String() string {\n\tif ref.Namespace != \"\" {\n\t\tvar builder strings.Builder\n\t\tbuilder.Grow(len(ref.Namespace) + len(ref.Name) + 1)\n\t\tbuilder.WriteString(ref.Namespace)\n\t\tbuilder.WriteRune('/')\n\t\tbuilder.WriteString(ref.Name)\n\t\treturn builder.String()\n\t}\n\treturn ref.Name\n}\n\nfunc (ref ObjectRef) WriteText(out *bytes.Buffer) {\n\tout.WriteRune('\"')\n\tref.writeUnquoted(out)\n\tout.WriteRune('\"')\n}\n\nfunc (ref ObjectRef) writeUnquoted(out *bytes.Buffer) {\n\tif ref.Namespace != \"\" {\n\t\tout.WriteString(ref.Namespace)\n\t\tout.WriteRune('/')\n\t}\n\tout.WriteString(ref.Name)\n}\n\n// MarshalLog ensures that loggers with support for structured output will log\n// as a struct by removing the String method via a custom type.\nfunc (ref ObjectRef) MarshalLog() interface{} {\n\ttype or ObjectRef\n\treturn or(ref)\n}\n\nvar _ logr.Marshaler = ObjectRef{}\n\n// KMetadata is a subset of the kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface\n// this interface may expand in the future, but will always be a subset of the\n// kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface\ntype KMetadata interface {\n\tGetName() string\n\tGetNamespace() string\n}\n\n// KObj returns ObjectRef from ObjectMeta\nfunc KObj(obj KMetadata) ObjectRef {\n\tif obj == nil {\n\t\treturn ObjectRef{}\n\t}\n\tif val := reflect.ValueOf(obj); val.Kind() == reflect.Ptr && val.IsNil() {\n\t\treturn ObjectRef{}\n\t}\n\n\treturn ObjectRef{\n\t\tName:      obj.GetName(),\n\t\tNamespace: obj.GetNamespace(),\n\t}\n}\n\n// KRef returns ObjectRef from name and namespace\nfunc KRef(namespace, name string) ObjectRef {\n\treturn ObjectRef{\n\t\tName:      name,\n\t\tNamespace: namespace,\n\t}\n}\n\n// KObjs returns slice of ObjectRef from an slice of ObjectMeta\n//\n// DEPRECATED: Use KObjSlice instead, it has better performance.\nfunc KObjs(arg interface{}) []ObjectRef {\n\ts := reflect.ValueOf(arg)\n\tif s.Kind() != reflect.Slice {\n\t\treturn nil\n\t}\n\tobjectRefs := make([]ObjectRef, 0, s.Len())\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif v, ok := s.Index(i).Interface().(KMetadata); ok {\n\t\t\tobjectRefs = append(objectRefs, KObj(v))\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn objectRefs\n}\n\n// KObjSlice takes a slice of objects that implement the KMetadata interface\n// and returns an object that gets logged as a slice of ObjectRef values or a\n// string containing those values, depending on whether the logger prefers text\n// output or structured output.\n//\n// An error string is logged when KObjSlice is not passed a suitable slice.\n//\n// Processing of the argument is delayed until the value actually gets logged,\n// in contrast to KObjs where that overhead is incurred regardless of whether\n// the result is needed.\nfunc KObjSlice(arg interface{}) interface{} {\n\treturn kobjSlice{arg: arg}\n}\n\ntype kobjSlice struct {\n\targ interface{}\n}\n\nvar _ fmt.Stringer = kobjSlice{}\nvar _ logr.Marshaler = kobjSlice{}\n\nfunc (ks kobjSlice) String() string {\n\tobjectRefs, errStr := ks.process()\n\tif errStr != \"\" {\n\t\treturn errStr\n\t}\n\treturn fmt.Sprintf(\"%v\", objectRefs)\n}\n\nfunc (ks kobjSlice) MarshalLog() interface{} {\n\tobjectRefs, errStr := ks.process()\n\tif errStr != \"\" {\n\t\treturn errStr\n\t}\n\treturn objectRefs\n}\n\nfunc (ks kobjSlice) process() (objs []interface{}, err string) {\n\ts := reflect.ValueOf(ks.arg)\n\tswitch s.Kind() {\n\tcase reflect.Invalid:\n\t\t// nil parameter, print as nil.\n\t\treturn nil, \"\"\n\tcase reflect.Slice:\n\t\t// Okay, handle below.\n\tdefault:\n\t\treturn nil, fmt.Sprintf(\"<KObjSlice needs a slice, got type %T>\", ks.arg)\n\t}\n\tobjectRefs := make([]interface{}, 0, s.Len())\n\tfor i := 0; i < s.Len(); i++ {\n\t\titem := s.Index(i).Interface()\n\t\tif item == nil {\n\t\t\tobjectRefs = append(objectRefs, nil)\n\t\t} else if v, ok := item.(KMetadata); ok {\n\t\t\tobjectRefs = append(objectRefs, KObj(v))\n\t\t} else {\n\t\t\treturn nil, fmt.Sprintf(\"<KObjSlice needs a slice of values implementing KMetadata, got type %T>\", item)\n\t\t}\n\t}\n\treturn objectRefs, \"\"\n}\n\nvar nilToken = []byte(\"<nil>\")\n\nfunc (ks kobjSlice) WriteText(out *bytes.Buffer) {\n\ts := reflect.ValueOf(ks.arg)\n\tswitch s.Kind() {\n\tcase reflect.Invalid:\n\t\t// nil parameter, print as empty slice.\n\t\tout.WriteString(\"[]\")\n\t\treturn\n\tcase reflect.Slice:\n\t\t// Okay, handle below.\n\tdefault:\n\t\tfmt.Fprintf(out, `\"<KObjSlice needs a slice, got type %T>\"`, ks.arg)\n\t\treturn\n\t}\n\tout.Write([]byte{'['})\n\tdefer out.Write([]byte{']'})\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif i > 0 {\n\t\t\tout.Write([]byte{' '})\n\t\t}\n\t\titem := s.Index(i).Interface()\n\t\tif item == nil {\n\t\t\tout.Write(nilToken)\n\t\t} else if v, ok := item.(KMetadata); ok {\n\t\t\tKObj(v).writeUnquoted(out)\n\t\t} else {\n\t\t\tfmt.Fprintf(out, \"<KObjSlice needs a slice of values implementing KMetadata, got type %T>\", item)\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package klog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.\n// It provides functions Info, Warning, Error, Fatal, plus formatting variants such as\n// Infof. It also provides V-style logging controlled by the -v and -vmodule=file=2 flags.\n//\n// Basic examples:\n//\n//\tklog.Info(\"Prepare to repel boarders\")\n//\n//\tklog.Fatalf(\"Initialization failed: %s\", err)\n//\n// See the documentation for the V function for an explanation of these examples:\n//\n//\tif klog.V(2) {\n//\t\tklog.Info(\"Starting transaction...\")\n//\t}\n//\n//\tklog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n//\n// Log output is buffered and written periodically using Flush. Programs\n// should call Flush before exiting to guarantee all log output is written.\n//\n// By default, all log statements write to standard error.\n// This package provides several flags that modify this behavior.\n// As a result, flag.Parse must be called before any logging is done.\n//\n//\t\t-logtostderr=true\n//\t\t\tLogs are written to standard error instead of to files.\n//\t             This shortcuts most of the usual output routing:\n//\t             -alsologtostderr, -stderrthreshold and -log_dir have no\n//\t             effect and output redirection at runtime with SetOutput is\n//\t             ignored.\n//\t\t-alsologtostderr=false\n//\t\t\tLogs are written to standard error as well as to files.\n//\t\t-stderrthreshold=ERROR\n//\t\t\tLog events at or above this severity are logged to standard\n//\t\t\terror as well as to files.\n//\t\t-log_dir=\"\"\n//\t\t\tLog files will be written to this directory instead of the\n//\t\t\tdefault temporary directory.\n//\n//\t\tOther flags provide aids to debugging.\n//\n//\t\t-log_backtrace_at=\"\"\n//\t\t\tWhen set to a file and line number holding a logging statement,\n//\t\t\tsuch as\n//\t\t\t\t-log_backtrace_at=gopherflakes.go:234\n//\t\t\ta stack trace will be written to the Info log whenever execution\n//\t\t\thits that statement. (Unlike with -vmodule, the \".go\" must be\n//\t\t\tpresent.)\n//\t\t-v=0\n//\t\t\tEnable V-leveled logging at the specified level.\n//\t\t-vmodule=\"\"\n//\t\t\tThe syntax of the argument is a comma-separated list of pattern=N,\n//\t\t\twhere pattern is a literal file name (minus the \".go\" suffix) or\n//\t\t\t\"glob\" pattern and N is a V level. For instance,\n//\t\t\t\t-vmodule=gopher*=3\n//\t\t\tsets the V level to 3 in all Go files whose names begin \"gopher\".\npackage klog\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\tstdLog \"log\"\n\t\"math\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2/internal/buffer\"\n\t\"k8s.io/klog/v2/internal/clock\"\n\t\"k8s.io/klog/v2/internal/dbg\"\n\t\"k8s.io/klog/v2/internal/serialize\"\n\t\"k8s.io/klog/v2/internal/severity\"\n)\n\n// severityValue identifies the sort of log: info, warning etc. It also implements\n// the flag.Value interface. The -stderrthreshold flag is of type severity and\n// should be modified only through the flag.Value interface. The values match\n// the corresponding constants in C++.\ntype severityValue struct {\n\tseverity.Severity\n}\n\n// get returns the value of the severity.\nfunc (s *severityValue) get() severity.Severity {\n\treturn severity.Severity(atomic.LoadInt32((*int32)(&s.Severity)))\n}\n\n// set sets the value of the severity.\nfunc (s *severityValue) set(val severity.Severity) {\n\tatomic.StoreInt32((*int32)(&s.Severity), int32(val))\n}\n\n// String is part of the flag.Value interface.\nfunc (s *severityValue) String() string {\n\treturn strconv.FormatInt(int64(s.Severity), 10)\n}\n\n// Get is part of the flag.Getter interface.\nfunc (s *severityValue) Get() interface{} {\n\treturn s.Severity\n}\n\n// Set is part of the flag.Value interface.\nfunc (s *severityValue) Set(value string) error {\n\tvar threshold severity.Severity\n\t// Is it a known name?\n\tif v, ok := severity.ByName(value); ok {\n\t\tthreshold = v\n\t} else {\n\t\tv, err := strconv.ParseInt(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthreshold = severity.Severity(v)\n\t}\n\tlogging.stderrThreshold.set(threshold)\n\treturn nil\n}\n\n// OutputStats tracks the number of output lines and bytes written.\ntype OutputStats struct {\n\tlines int64\n\tbytes int64\n}\n\n// Lines returns the number of lines written.\nfunc (s *OutputStats) Lines() int64 {\n\treturn atomic.LoadInt64(&s.lines)\n}\n\n// Bytes returns the number of bytes written.\nfunc (s *OutputStats) Bytes() int64 {\n\treturn atomic.LoadInt64(&s.bytes)\n}\n\n// Stats tracks the number of lines of output and number of bytes\n// per severity level. Values must be read with atomic.LoadInt64.\nvar Stats struct {\n\tInfo, Warning, Error OutputStats\n}\n\nvar severityStats = [severity.NumSeverity]*OutputStats{\n\tseverity.InfoLog:    &Stats.Info,\n\tseverity.WarningLog: &Stats.Warning,\n\tseverity.ErrorLog:   &Stats.Error,\n}\n\n// Level is exported because it appears in the arguments to V and is\n// the type of the v flag, which can be set programmatically.\n// It's a distinct type because we want to discriminate it from logType.\n// Variables of type level are only changed under logging.mu.\n// The -v flag is read only with atomic ops, so the state of the logging\n// module is consistent.\n\n// Level is treated as a sync/atomic int32.\n\n// Level specifies a level of verbosity for V logs. *Level implements\n// flag.Value; the -v flag is of type Level and should be modified\n// only through the flag.Value interface.\ntype Level int32\n\n// get returns the value of the Level.\nfunc (l *Level) get() Level {\n\treturn Level(atomic.LoadInt32((*int32)(l)))\n}\n\n// set sets the value of the Level.\nfunc (l *Level) set(val Level) {\n\tatomic.StoreInt32((*int32)(l), int32(val))\n}\n\n// String is part of the flag.Value interface.\nfunc (l *Level) String() string {\n\treturn strconv.FormatInt(int64(*l), 10)\n}\n\n// Get is part of the flag.Getter interface.\nfunc (l *Level) Get() interface{} {\n\treturn *l\n}\n\n// Set is part of the flag.Value interface.\nfunc (l *Level) Set(value string) error {\n\tv, err := strconv.ParseInt(value, 10, 32)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tlogging.setVState(Level(v), logging.vmodule.filter, false)\n\treturn nil\n}\n\n// moduleSpec represents the setting of the -vmodule flag.\ntype moduleSpec struct {\n\tfilter []modulePat\n}\n\n// modulePat contains a filter for the -vmodule flag.\n// It holds a verbosity level and a file pattern to match.\ntype modulePat struct {\n\tpattern string\n\tliteral bool // The pattern is a literal string\n\tlevel   Level\n}\n\n// match reports whether the file matches the pattern. It uses a string\n// comparison if the pattern contains no metacharacters.\nfunc (m *modulePat) match(file string) bool {\n\tif m.literal {\n\t\treturn file == m.pattern\n\t}\n\tmatch, _ := filepath.Match(m.pattern, file)\n\treturn match\n}\n\nfunc (m *moduleSpec) String() string {\n\t// Lock because the type is not atomic. TODO: clean this up.\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn m.serialize()\n}\n\nfunc (m *moduleSpec) serialize() string {\n\tvar b bytes.Buffer\n\tfor i, f := range m.filter {\n\t\tif i > 0 {\n\t\t\tb.WriteRune(',')\n\t\t}\n\t\tfmt.Fprintf(&b, \"%s=%d\", f.pattern, f.level)\n\t}\n\treturn b.String()\n}\n\n// Get is part of the (Go 1.2)  flag.Getter interface. It always returns nil for this flag type since the\n// struct is not exported.\nfunc (m *moduleSpec) Get() interface{} {\n\treturn nil\n}\n\nvar errVmoduleSyntax = errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\n// Set will sets module value\n// Syntax: -vmodule=recordio=2,file=1,gfs*=3\nfunc (m *moduleSpec) Set(value string) error {\n\tfilter, err := parseModuleSpec(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tlogging.setVState(logging.verbosity, filter, true)\n\treturn nil\n}\n\nfunc parseModuleSpec(value string) ([]modulePat, error) {\n\tvar filter []modulePat\n\tfor _, pat := range strings.Split(value, \",\") {\n\t\tif len(pat) == 0 {\n\t\t\t// Empty strings such as from a trailing comma can be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tpatLev := strings.Split(pat, \"=\")\n\t\tif len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {\n\t\t\treturn nil, errVmoduleSyntax\n\t\t}\n\t\tpattern := patLev[0]\n\t\tv, err := strconv.ParseInt(patLev[1], 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\t\t}\n\t\tif v < 0 {\n\t\t\treturn nil, errors.New(\"negative value for vmodule level\")\n\t\t}\n\t\tif v == 0 {\n\t\t\tcontinue // Ignore. It's harmless but no point in paying the overhead.\n\t\t}\n\t\t// TODO: check syntax of filter?\n\t\tfilter = append(filter, modulePat{pattern, isLiteral(pattern), Level(v)})\n\t}\n\treturn filter, nil\n}\n\n// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters\n// that require filepath.Match to be called to match the pattern.\nfunc isLiteral(pattern string) bool {\n\treturn !strings.ContainsAny(pattern, `\\*?[]`)\n}\n\n// traceLocation represents the setting of the -log_backtrace_at flag.\ntype traceLocation struct {\n\tfile string\n\tline int\n}\n\n// isSet reports whether the trace location has been specified.\n// logging.mu is held.\nfunc (t *traceLocation) isSet() bool {\n\treturn t.line > 0\n}\n\n// match reports whether the specified file and line matches the trace location.\n// The argument file name is the full path, not the basename specified in the flag.\n// logging.mu is held.\nfunc (t *traceLocation) match(file string, line int) bool {\n\tif t.line != line {\n\t\treturn false\n\t}\n\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\tfile = file[i+1:]\n\t}\n\treturn t.file == file\n}\n\nfunc (t *traceLocation) String() string {\n\t// Lock because the type is not atomic. TODO: clean this up.\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn fmt.Sprintf(\"%s:%d\", t.file, t.line)\n}\n\n// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the\n// struct is not exported\nfunc (t *traceLocation) Get() interface{} {\n\treturn nil\n}\n\nvar errTraceSyntax = errors.New(\"syntax error: expect file.go:234\")\n\n// Set will sets backtrace value\n// Syntax: -log_backtrace_at=gopherflakes.go:234\n// Note that unlike vmodule the file extension is included here.\nfunc (t *traceLocation) Set(value string) error {\n\tif value == \"\" {\n\t\t// Unset.\n\t\tlogging.mu.Lock()\n\t\tdefer logging.mu.Unlock()\n\t\tt.line = 0\n\t\tt.file = \"\"\n\t\treturn nil\n\t}\n\tfields := strings.Split(value, \":\")\n\tif len(fields) != 2 {\n\t\treturn errTraceSyntax\n\t}\n\tfile, line := fields[0], fields[1]\n\tif !strings.Contains(file, \".\") {\n\t\treturn errTraceSyntax\n\t}\n\tv, err := strconv.Atoi(line)\n\tif err != nil {\n\t\treturn errTraceSyntax\n\t}\n\tif v <= 0 {\n\t\treturn errors.New(\"negative or zero value for level\")\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tt.line = v\n\tt.file = file\n\treturn nil\n}\n\n// flushSyncWriter is the interface satisfied by logging destinations.\ntype flushSyncWriter interface {\n\tFlush() error\n\tSync() error\n\tio.Writer\n}\n\nvar logging loggingT\nvar commandLine flag.FlagSet\n\n// init sets up the defaults and creates command line flags.\nfunc init() {\n\tcommandLine.StringVar(&logging.logDir, \"log_dir\", \"\", \"If non-empty, write log files in this directory (no effect when -logtostderr=true)\")\n\tcommandLine.StringVar(&logging.logFile, \"log_file\", \"\", \"If non-empty, use this log file (no effect when -logtostderr=true)\")\n\tcommandLine.Uint64Var(&logging.logFileMaxSizeMB, \"log_file_max_size\", 1800,\n\t\t\"Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. \"+\n\t\t\t\"If the value is 0, the maximum file size is unlimited.\")\n\tcommandLine.BoolVar(&logging.toStderr, \"logtostderr\", true, \"log to standard error instead of files\")\n\tcommandLine.BoolVar(&logging.alsoToStderr, \"alsologtostderr\", false, \"log to standard error as well as files (no effect when -logtostderr=true)\")\n\tlogging.setVState(0, nil, false)\n\tcommandLine.Var(&logging.verbosity, \"v\", \"number for the log level verbosity\")\n\tcommandLine.BoolVar(&logging.addDirHeader, \"add_dir_header\", false, \"If true, adds the file directory to the header of the log messages\")\n\tcommandLine.BoolVar(&logging.skipHeaders, \"skip_headers\", false, \"If true, avoid header prefixes in the log messages\")\n\tcommandLine.BoolVar(&logging.oneOutput, \"one_output\", false, \"If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)\")\n\tcommandLine.BoolVar(&logging.skipLogHeaders, \"skip_log_headers\", false, \"If true, avoid headers when opening log files (no effect when -logtostderr=true)\")\n\tlogging.stderrThreshold = severityValue{\n\t\tSeverity: severity.ErrorLog, // Default stderrThreshold is ERROR.\n\t}\n\tcommandLine.Var(&logging.stderrThreshold, \"stderrthreshold\", \"logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=false)\")\n\tcommandLine.Var(&logging.vmodule, \"vmodule\", \"comma-separated list of pattern=N settings for file-filtered logging\")\n\tcommandLine.Var(&logging.traceLocation, \"log_backtrace_at\", \"when logging hits line file:N, emit a stack trace\")\n\n\tlogging.settings.contextualLoggingEnabled = true\n\tlogging.flushD = newFlushDaemon(logging.lockAndFlushAll, nil)\n}\n\n// InitFlags is for explicitly initializing the flags.\n// It may get called repeatedly for different flagsets, but not\n// twice for the same one. May get called concurrently\n// to other goroutines using klog. However, only some flags\n// may get set concurrently (see implementation).\nfunc InitFlags(flagset *flag.FlagSet) {\n\tif flagset == nil {\n\t\tflagset = flag.CommandLine\n\t}\n\n\tcommandLine.VisitAll(func(f *flag.Flag) {\n\t\tflagset.Var(f.Value, f.Name, f.Usage)\n\t})\n}\n\n// Flush flushes all pending log I/O.\nfunc Flush() {\n\tlogging.lockAndFlushAll()\n}\n\n// settings collects global settings.\ntype settings struct {\n\t// contextualLoggingEnabled controls whether contextual logging is\n\t// active. Disabling it may have some small performance benefit.\n\tcontextualLoggingEnabled bool\n\n\t// logger is the global Logger chosen by users of klog, nil if\n\t// none is available.\n\tlogger *logWriter\n\n\t// loggerOptions contains the options that were supplied for\n\t// globalLogger.\n\tloggerOptions loggerOptions\n\n\t// Boolean flags. Not handled atomically because the flag.Value interface\n\t// does not let us avoid the =true, and that shorthand is necessary for\n\t// compatibility. TODO: does this matter enough to fix? Seems unlikely.\n\ttoStderr     bool // The -logtostderr flag.\n\talsoToStderr bool // The -alsologtostderr flag.\n\n\t// Level flag. Handled atomically.\n\tstderrThreshold severityValue // The -stderrthreshold flag.\n\n\t// Access to all of the following fields must be protected via a mutex.\n\n\t// file holds writer for each of the log types.\n\tfile [severity.NumSeverity]flushSyncWriter\n\t// flushInterval is the interval for periodic flushing. If zero,\n\t// the global default will be used.\n\tflushInterval time.Duration\n\n\t// filterLength stores the length of the vmodule filter chain. If greater\n\t// than zero, it means vmodule is enabled. It may be read safely\n\t// using sync.LoadInt32, but is only modified under mu.\n\tfilterLength int32\n\t// traceLocation is the state of the -log_backtrace_at flag.\n\ttraceLocation traceLocation\n\t// These flags are modified only under lock, although verbosity may be fetched\n\t// safely using atomic.LoadInt32.\n\tvmodule   moduleSpec // The state of the -vmodule flag.\n\tverbosity Level      // V logging level, the value of the -v flag/\n\n\t// If non-empty, overrides the choice of directory in which to write logs.\n\t// See createLogDirs for the full list of possible destinations.\n\tlogDir string\n\n\t// If non-empty, specifies the path of the file to write logs. mutually exclusive\n\t// with the log_dir option.\n\tlogFile string\n\n\t// When logFile is specified, this limiter makes sure the logFile won't exceeds a certain size. When exceeds, the\n\t// logFile will be cleaned up. If this value is 0, no size limitation will be applied to logFile.\n\tlogFileMaxSizeMB uint64\n\n\t// If true, do not add the prefix headers, useful when used with SetOutput\n\tskipHeaders bool\n\n\t// If true, do not add the headers to log files\n\tskipLogHeaders bool\n\n\t// If true, add the file directory to the header\n\taddDirHeader bool\n\n\t// If true, messages will not be propagated to lower severity log levels\n\toneOutput bool\n\n\t// If set, all output will be filtered through the filter.\n\tfilter LogFilter\n}\n\n// deepCopy creates a copy that doesn't share anything with the original\n// instance.\nfunc (s settings) deepCopy() settings {\n\t// vmodule is a slice and would be shared, so we have copy it.\n\tfilter := make([]modulePat, len(s.vmodule.filter))\n\tfor i := range s.vmodule.filter {\n\t\tfilter[i] = s.vmodule.filter[i]\n\t}\n\ts.vmodule.filter = filter\n\n\tif s.logger != nil {\n\t\tlogger := *s.logger\n\t\ts.logger = &logger\n\t}\n\n\treturn s\n}\n\n// loggingT collects all the global state of the logging setup.\ntype loggingT struct {\n\tsettings\n\n\t// flushD holds a flushDaemon that frequently flushes log file buffers.\n\t// Uses its own mutex.\n\tflushD *flushDaemon\n\n\t// mu protects the remaining elements of this structure and the fields\n\t// in settingsT which need a mutex lock.\n\tmu sync.Mutex\n\n\t// pcs is used in V to avoid an allocation when computing the caller's PC.\n\tpcs [1]uintptr\n\t// vmap is a cache of the V Level for each V() call site, identified by PC.\n\t// It is wiped whenever the vmodule flag changes state.\n\tvmap map[uintptr]Level\n}\n\n// setVState sets a consistent state for V logging.\n// l.mu is held.\nfunc (l *loggingT) setVState(verbosity Level, filter []modulePat, setFilter bool) {\n\t// Turn verbosity off so V will not fire while we are in transition.\n\tl.verbosity.set(0)\n\t// Ditto for filter length.\n\tatomic.StoreInt32(&l.filterLength, 0)\n\n\t// Set the new filters and wipe the pc->Level map if the filter has changed.\n\tif setFilter {\n\t\tl.vmodule.filter = filter\n\t\tl.vmap = make(map[uintptr]Level)\n\t}\n\n\t// Things are consistent now, so enable filtering and verbosity.\n\t// They are enabled in order opposite to that in V.\n\tatomic.StoreInt32(&l.filterLength, int32(len(filter)))\n\tl.verbosity.set(verbosity)\n}\n\nvar timeNow = time.Now // Stubbed out for testing.\n\n// CaptureState gathers information about all current klog settings.\n// The result can be used to restore those settings.\nfunc CaptureState() State {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn &state{\n\t\tsettings:      logging.settings.deepCopy(),\n\t\tflushDRunning: logging.flushD.isRunning(),\n\t\tmaxSize:       MaxSize,\n\t}\n}\n\n// State stores a snapshot of klog settings. It gets created with CaptureState\n// and can be used to restore the entire state. Modifying individual settings\n// is supported via the command line flags.\ntype State interface {\n\t// Restore restore the entire state. It may get called more than once.\n\tRestore()\n}\n\ntype state struct {\n\tsettings\n\n\tflushDRunning bool\n\tmaxSize       uint64\n}\n\nfunc (s *state) Restore() {\n\t// This needs to be done before mutex locking.\n\tif s.flushDRunning && !logging.flushD.isRunning() {\n\t\t// This is not quite accurate: StartFlushDaemon might\n\t\t// have been called with some different interval.\n\t\tinterval := s.flushInterval\n\t\tif interval == 0 {\n\t\t\tinterval = flushInterval\n\t\t}\n\t\tlogging.flushD.run(interval)\n\t} else if !s.flushDRunning && logging.flushD.isRunning() {\n\t\tlogging.flushD.stop()\n\t}\n\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\n\tlogging.settings = s.settings\n\tlogging.setVState(s.verbosity, s.vmodule.filter, true)\n\tMaxSize = s.maxSize\n}\n\n/*\nheader formats a log header as defined by the C++ implementation.\nIt returns a buffer containing the formatted header and the user's file and line number.\nThe depth specifies how many stack frames above lives the source line to be identified in the log message.\n\nLog lines have this form:\n\n\tLmmdd hh:mm:ss.uuuuuu threadid file:line] msg...\n\nwhere the fields are defined as follows:\n\n\tL                A single character, representing the log level (eg 'I' for INFO)\n\tmm               The month (zero padded; ie May is '05')\n\tdd               The day (zero padded)\n\thh:mm:ss.uuuuuu  Time in hours, minutes and fractional seconds\n\tthreadid         The space-padded thread ID as returned by GetTID()\n\tfile             The file name\n\tline             The line number\n\tmsg              The user-supplied message\n*/\nfunc (l *loggingT) header(s severity.Severity, depth int) (*buffer.Buffer, string, int) {\n\t_, file, line, ok := runtime.Caller(3 + depth)\n\tif !ok {\n\t\tfile = \"???\"\n\t\tline = 1\n\t} else {\n\t\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\t\tpath := file\n\t\t\tfile = path[slash+1:]\n\t\t\tif l.addDirHeader {\n\t\t\t\tif dirsep := strings.LastIndex(path[:slash], \"/\"); dirsep >= 0 {\n\t\t\t\t\tfile = path[dirsep+1:]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn l.formatHeader(s, file, line), file, line\n}\n\n// formatHeader formats a log header using the provided file name and line number.\nfunc (l *loggingT) formatHeader(s severity.Severity, file string, line int) *buffer.Buffer {\n\tbuf := buffer.GetBuffer()\n\tif l.skipHeaders {\n\t\treturn buf\n\t}\n\tnow := timeNow()\n\tbuf.FormatHeader(s, file, line, now)\n\treturn buf\n}\n\nfunc (l *loggingT) println(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {\n\tl.printlnDepth(s, logger, filter, 1, args...)\n}\n\nfunc (l *loggingT) printlnDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {\n\tbuf, file, line := l.header(s, depth)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprintln(buf, args...)\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\nfunc (l *loggingT) print(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {\n\tl.printDepth(s, logger, filter, 1, args...)\n}\n\nfunc (l *loggingT) printDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {\n\tbuf, file, line := l.header(s, depth)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprint(buf, args...)\n\tif buf.Len() == 0 || buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\nfunc (l *loggingT) printf(s severity.Severity, logger *logWriter, filter LogFilter, format string, args ...interface{}) {\n\tl.printfDepth(s, logger, filter, 1, format, args...)\n}\n\nfunc (l *loggingT) printfDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, format string, args ...interface{}) {\n\tbuf, file, line := l.header(s, depth)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\tformat, args = filter.FilterF(format, args)\n\t}\n\tfmt.Fprintf(buf, format, args...)\n\tif buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\n// printWithFileLine behaves like print but uses the provided file and line number.  If\n// alsoLogToStderr is true, the log message always appears on standard error; it\n// will also appear in the log file unless --logtostderr is set.\nfunc (l *loggingT) printWithFileLine(s severity.Severity, logger *logWriter, filter LogFilter, file string, line int, alsoToStderr bool, args ...interface{}) {\n\tbuf := l.formatHeader(s, file, line)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprint(buf, args...)\n\tif buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, 2 /* depth */, file, line, alsoToStderr)\n}\n\n// if loggr is specified, will call loggr.Error, otherwise output with logging module.\nfunc (l *loggingT) errorS(err error, logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {\n\tif filter != nil {\n\t\tmsg, keysAndValues = filter.FilterS(msg, keysAndValues)\n\t}\n\tif logger != nil {\n\t\tlogger.WithCallDepth(depth+2).Error(err, msg, keysAndValues...)\n\t\treturn\n\t}\n\tl.printS(err, severity.ErrorLog, depth+1, msg, keysAndValues...)\n}\n\n// if loggr is specified, will call loggr.Info, otherwise output with logging module.\nfunc (l *loggingT) infoS(logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {\n\tif filter != nil {\n\t\tmsg, keysAndValues = filter.FilterS(msg, keysAndValues)\n\t}\n\tif logger != nil {\n\t\tlogger.WithCallDepth(depth+2).Info(msg, keysAndValues...)\n\t\treturn\n\t}\n\tl.printS(nil, severity.InfoLog, depth+1, msg, keysAndValues...)\n}\n\n// printS is called from infoS and errorS if loggr is not specified.\n// set log severity by s\nfunc (l *loggingT) printS(err error, s severity.Severity, depth int, msg string, keysAndValues ...interface{}) {\n\t// Only create a new buffer if we don't have one cached.\n\tb := buffer.GetBuffer()\n\t// The message is always quoted, even if it contains line breaks.\n\t// If developers want multi-line output, they should use a small, fixed\n\t// message and put the multi-line output into a value.\n\tb.WriteString(strconv.Quote(msg))\n\tif err != nil {\n\t\tserialize.KVListFormat(&b.Buffer, \"err\", err)\n\t}\n\tserialize.KVListFormat(&b.Buffer, keysAndValues...)\n\tl.printDepth(s, logging.logger, nil, depth+1, &b.Buffer)\n\t// Make the buffer available for reuse.\n\tbuffer.PutBuffer(b)\n}\n\n// redirectBuffer is used to set an alternate destination for the logs\ntype redirectBuffer struct {\n\tw io.Writer\n}\n\nfunc (rb *redirectBuffer) Sync() error {\n\treturn nil\n}\n\nfunc (rb *redirectBuffer) Flush() error {\n\treturn nil\n}\n\nfunc (rb *redirectBuffer) Write(bytes []byte) (n int, err error) {\n\treturn rb.w.Write(bytes)\n}\n\n// SetOutput sets the output destination for all severities\nfunc SetOutput(w io.Writer) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tfor s := severity.FatalLog; s >= severity.InfoLog; s-- {\n\t\trb := &redirectBuffer{\n\t\t\tw: w,\n\t\t}\n\t\tlogging.file[s] = rb\n\t}\n}\n\n// SetOutputBySeverity sets the output destination for specific severity\nfunc SetOutputBySeverity(name string, w io.Writer) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tsev, ok := severity.ByName(name)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"SetOutputBySeverity(%q): unrecognized severity name\", name))\n\t}\n\trb := &redirectBuffer{\n\t\tw: w,\n\t}\n\tlogging.file[sev] = rb\n}\n\n// LogToStderr sets whether to log exclusively to stderr, bypassing outputs\nfunc LogToStderr(stderr bool) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\n\tlogging.toStderr = stderr\n}\n\n// output writes the data to the log files and releases the buffer.\nfunc (l *loggingT) output(s severity.Severity, logger *logWriter, buf *buffer.Buffer, depth int, file string, line int, alsoToStderr bool) {\n\tvar isLocked = true\n\tl.mu.Lock()\n\tdefer func() {\n\t\tif isLocked {\n\t\t\t// Unlock before returning in case that it wasn't done already.\n\t\t\tl.mu.Unlock()\n\t\t}\n\t}()\n\n\tif l.traceLocation.isSet() {\n\t\tif l.traceLocation.match(file, line) {\n\t\t\tbuf.Write(dbg.Stacks(false))\n\t\t}\n\t}\n\tdata := buf.Bytes()\n\tif logger != nil {\n\t\tif logger.writeKlogBuffer != nil {\n\t\t\tlogger.writeKlogBuffer(data)\n\t\t} else {\n\t\t\t// TODO: set 'severity' and caller information as structured log info\n\t\t\t// keysAndValues := []interface{}{\"severity\", severityName[s], \"file\", file, \"line\", line}\n\t\t\tif s == severity.ErrorLog {\n\t\t\t\tlogger.WithCallDepth(depth+3).Error(nil, string(data))\n\t\t\t} else {\n\t\t\t\tlogger.WithCallDepth(depth + 3).Info(string(data))\n\t\t\t}\n\t\t}\n\t} else if l.toStderr {\n\t\tos.Stderr.Write(data)\n\t} else {\n\t\tif alsoToStderr || l.alsoToStderr || s >= l.stderrThreshold.get() {\n\t\t\tos.Stderr.Write(data)\n\t\t}\n\n\t\tif logging.logFile != \"\" {\n\t\t\t// Since we are using a single log file, all of the items in l.file array\n\t\t\t// will point to the same file, so just use one of them to write data.\n\t\t\tif l.file[severity.InfoLog] == nil {\n\t\t\t\tif err := l.createFiles(severity.InfoLog); err != nil {\n\t\t\t\t\tos.Stderr.Write(data) // Make sure the message appears somewhere.\n\t\t\t\t\tl.exit(err)\n\t\t\t\t}\n\t\t\t}\n\t\t\tl.file[severity.InfoLog].Write(data)\n\t\t} else {\n\t\t\tif l.file[s] == nil {\n\t\t\t\tif err := l.createFiles(s); err != nil {\n\t\t\t\t\tos.Stderr.Write(data) // Make sure the message appears somewhere.\n\t\t\t\t\tl.exit(err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif l.oneOutput {\n\t\t\t\tl.file[s].Write(data)\n\t\t\t} else {\n\t\t\t\tswitch s {\n\t\t\t\tcase severity.FatalLog:\n\t\t\t\t\tl.file[severity.FatalLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.ErrorLog:\n\t\t\t\t\tl.file[severity.ErrorLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.WarningLog:\n\t\t\t\t\tl.file[severity.WarningLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.InfoLog:\n\t\t\t\t\tl.file[severity.InfoLog].Write(data)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif s == severity.FatalLog {\n\t\t// If we got here via Exit rather than Fatal, print no stacks.\n\t\tif atomic.LoadUint32(&fatalNoStacks) > 0 {\n\t\t\tl.mu.Unlock()\n\t\t\tisLocked = false\n\t\t\ttimeoutFlush(ExitFlushTimeout)\n\t\t\tOsExit(1)\n\t\t}\n\t\t// Dump all goroutine stacks before exiting.\n\t\t// First, make sure we see the trace for the current goroutine on standard error.\n\t\t// If -logtostderr has been specified, the loop below will do that anyway\n\t\t// as the first stack in the full dump.\n\t\tif !l.toStderr {\n\t\t\tos.Stderr.Write(dbg.Stacks(false))\n\t\t}\n\n\t\t// Write the stack trace for all goroutines to the files.\n\t\ttrace := dbg.Stacks(true)\n\t\tlogExitFunc = func(error) {} // If we get a write error, we'll still exit below.\n\t\tfor log := severity.FatalLog; log >= severity.InfoLog; log-- {\n\t\t\tif f := l.file[log]; f != nil { // Can be nil if -logtostderr is set.\n\t\t\t\tf.Write(trace)\n\t\t\t}\n\t\t}\n\t\tl.mu.Unlock()\n\t\tisLocked = false\n\t\ttimeoutFlush(ExitFlushTimeout)\n\t\tOsExit(255) // C++ uses -1, which is silly because it's anded with 255 anyway.\n\t}\n\tbuffer.PutBuffer(buf)\n\n\tif stats := severityStats[s]; stats != nil {\n\t\tatomic.AddInt64(&stats.lines, 1)\n\t\tatomic.AddInt64(&stats.bytes, int64(len(data)))\n\t}\n}\n\n// logExitFunc provides a simple mechanism to override the default behavior\n// of exiting on error. Used in testing and to guarantee we reach a required exit\n// for fatal logs. Instead, exit could be a function rather than a method but that\n// would make its use clumsier.\nvar logExitFunc func(error)\n\n// exit is called if there is trouble creating or writing log files.\n// It flushes the logs and exits the program; there's no point in hanging around.\n// l.mu is held.\nfunc (l *loggingT) exit(err error) {\n\tfmt.Fprintf(os.Stderr, \"log: exiting because of error: %s\\n\", err)\n\t// If logExitFunc is set, we do that instead of exiting.\n\tif logExitFunc != nil {\n\t\tlogExitFunc(err)\n\t\treturn\n\t}\n\tl.flushAll()\n\tOsExit(2)\n}\n\n// syncBuffer joins a bufio.Writer to its underlying file, providing access to the\n// file's Sync method and providing a wrapper for the Write method that provides log\n// file rotation. There are conflicting methods, so the file cannot be embedded.\n// l.mu is held for all its methods.\ntype syncBuffer struct {\n\tlogger *loggingT\n\t*bufio.Writer\n\tfile     *os.File\n\tsev      severity.Severity\n\tnbytes   uint64 // The number of bytes written to this file\n\tmaxbytes uint64 // The max number of bytes this syncBuffer.file can hold before cleaning up.\n}\n\nfunc (sb *syncBuffer) Sync() error {\n\treturn sb.file.Sync()\n}\n\n// CalculateMaxSize returns the real max size in bytes after considering the default max size and the flag options.\nfunc CalculateMaxSize() uint64 {\n\tif logging.logFile != \"\" {\n\t\tif logging.logFileMaxSizeMB == 0 {\n\t\t\t// If logFileMaxSizeMB is zero, we don't have limitations on the log size.\n\t\t\treturn math.MaxUint64\n\t\t}\n\t\t// Flag logFileMaxSizeMB is in MB for user convenience.\n\t\treturn logging.logFileMaxSizeMB * 1024 * 1024\n\t}\n\t// If \"log_file\" flag is not specified, the target file (sb.file) will be cleaned up when reaches a fixed size.\n\treturn MaxSize\n}\n\nfunc (sb *syncBuffer) Write(p []byte) (n int, err error) {\n\tif sb.nbytes+uint64(len(p)) >= sb.maxbytes {\n\t\tif err := sb.rotateFile(time.Now(), false); err != nil {\n\t\t\tsb.logger.exit(err)\n\t\t}\n\t}\n\tn, err = sb.Writer.Write(p)\n\tsb.nbytes += uint64(n)\n\tif err != nil {\n\t\tsb.logger.exit(err)\n\t}\n\treturn\n}\n\n// rotateFile closes the syncBuffer's file and starts a new one.\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc (sb *syncBuffer) rotateFile(now time.Time, startup bool) error {\n\tif sb.file != nil {\n\t\tsb.Flush()\n\t\tsb.file.Close()\n\t}\n\tvar err error\n\tsb.file, _, err = create(severity.Name[sb.sev], now, startup)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif startup {\n\t\tfileInfo, err := sb.file.Stat()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"file stat could not get fileinfo: %v\", err)\n\t\t}\n\t\t// init file size\n\t\tsb.nbytes = uint64(fileInfo.Size())\n\t} else {\n\t\tsb.nbytes = 0\n\t}\n\tsb.Writer = bufio.NewWriterSize(sb.file, bufferSize)\n\n\tif sb.logger.skipLogHeaders {\n\t\treturn nil\n\t}\n\n\t// Write header.\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"Log file created at: %s\\n\", now.Format(\"2006/01/02 15:04:05\"))\n\tfmt.Fprintf(&buf, \"Running on machine: %s\\n\", host)\n\tfmt.Fprintf(&buf, \"Binary: Built with %s %s for %s/%s\\n\", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)\n\tfmt.Fprintf(&buf, \"Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\\n\")\n\tn, err := sb.file.Write(buf.Bytes())\n\tsb.nbytes += uint64(n)\n\treturn err\n}\n\n// bufferSize sizes the buffer associated with each log file. It's large\n// so that log records can accumulate without the logging thread blocking\n// on disk I/O. The flushDaemon will block instead.\nconst bufferSize = 256 * 1024\n\n// createFiles creates all the log files for severity from sev down to infoLog.\n// l.mu is held.\nfunc (l *loggingT) createFiles(sev severity.Severity) error {\n\tinterval := l.flushInterval\n\tif interval == 0 {\n\t\tinterval = flushInterval\n\t}\n\tl.flushD.run(interval)\n\tnow := time.Now()\n\t// Files are created in decreasing severity order, so as soon as we find one\n\t// has already been created, we can stop.\n\tfor s := sev; s >= severity.InfoLog && l.file[s] == nil; s-- {\n\t\tsb := &syncBuffer{\n\t\t\tlogger:   l,\n\t\t\tsev:      s,\n\t\t\tmaxbytes: CalculateMaxSize(),\n\t\t}\n\t\tif err := sb.rotateFile(now, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl.file[s] = sb\n\t}\n\treturn nil\n}\n\nconst flushInterval = 5 * time.Second\n\n// flushDaemon periodically flushes the log file buffers.\ntype flushDaemon struct {\n\tmu       sync.Mutex\n\tclock    clock.WithTicker\n\tflush    func()\n\tstopC    chan struct{}\n\tstopDone chan struct{}\n}\n\n// newFlushDaemon returns a new flushDaemon. If the passed clock is nil, a\n// clock.RealClock is used.\nfunc newFlushDaemon(flush func(), tickClock clock.WithTicker) *flushDaemon {\n\tif tickClock == nil {\n\t\ttickClock = clock.RealClock{}\n\t}\n\treturn &flushDaemon{\n\t\tflush: flush,\n\t\tclock: tickClock,\n\t}\n}\n\n// run starts a goroutine that periodically calls the daemons flush function.\n// Calling run on an already running daemon will have no effect.\nfunc (f *flushDaemon) run(interval time.Duration) {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tif f.stopC != nil { // daemon already running\n\t\treturn\n\t}\n\n\tf.stopC = make(chan struct{}, 1)\n\tf.stopDone = make(chan struct{}, 1)\n\n\tticker := f.clock.NewTicker(interval)\n\tgo func() {\n\t\tdefer ticker.Stop()\n\t\tdefer func() { f.stopDone <- struct{}{} }()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ticker.C():\n\t\t\t\tf.flush()\n\t\t\tcase <-f.stopC:\n\t\t\t\tf.flush()\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// stop stops the running flushDaemon and waits until the daemon has shut down.\n// Calling stop on a daemon that isn't running will have no effect.\nfunc (f *flushDaemon) stop() {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tif f.stopC == nil { // daemon not running\n\t\treturn\n\t}\n\n\tf.stopC <- struct{}{}\n\t<-f.stopDone\n\n\tf.stopC = nil\n\tf.stopDone = nil\n}\n\n// isRunning returns true if the flush daemon is running.\nfunc (f *flushDaemon) isRunning() bool {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\treturn f.stopC != nil\n}\n\n// StopFlushDaemon stops the flush daemon, if running, and flushes once.\n// This prevents klog from leaking goroutines on shutdown. After stopping\n// the daemon, you can still manually flush buffers again by calling Flush().\nfunc StopFlushDaemon() {\n\tlogging.flushD.stop()\n}\n\n// StartFlushDaemon ensures that the flush daemon runs with the given delay\n// between flush calls. If it is already running, it gets restarted.\nfunc StartFlushDaemon(interval time.Duration) {\n\tStopFlushDaemon()\n\tlogging.flushD.run(interval)\n}\n\n// lockAndFlushAll is like flushAll but locks l.mu first.\nfunc (l *loggingT) lockAndFlushAll() {\n\tl.mu.Lock()\n\tl.flushAll()\n\tl.mu.Unlock()\n}\n\n// flushAll flushes all the logs and attempts to \"sync\" their data to disk.\n// l.mu is held.\nfunc (l *loggingT) flushAll() {\n\t// Flush from fatal down, in case there's trouble flushing.\n\tfor s := severity.FatalLog; s >= severity.InfoLog; s-- {\n\t\tfile := l.file[s]\n\t\tif file != nil {\n\t\t\tfile.Flush() // ignore error\n\t\t\tfile.Sync()  // ignore error\n\t\t}\n\t}\n\tif logging.loggerOptions.flush != nil {\n\t\tlogging.loggerOptions.flush()\n\t}\n}\n\n// CopyStandardLogTo arranges for messages written to the Go \"log\" package's\n// default logs to also appear in the Google logs for the named and lower\n// severities.  Subsequent changes to the standard log's default output location\n// or format may break this behavior.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\".  If the name is not\n// recognized, CopyStandardLogTo panics.\nfunc CopyStandardLogTo(name string) {\n\tsev, ok := severity.ByName(name)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"log.CopyStandardLogTo(%q): unrecognized severity name\", name))\n\t}\n\t// Set a log format that captures the user's file and line:\n\t//   d.go:23: message\n\tstdLog.SetFlags(stdLog.Lshortfile)\n\tstdLog.SetOutput(logBridge(sev))\n}\n\n// logBridge provides the Write method that enables CopyStandardLogTo to connect\n// Go's standard logs to the logs provided by this package.\ntype logBridge severity.Severity\n\n// Write parses the standard logging line and passes its components to the\n// logger for severity(lb).\nfunc (lb logBridge) Write(b []byte) (n int, err error) {\n\tvar (\n\t\tfile = \"???\"\n\t\tline = 1\n\t\ttext string\n\t)\n\t// Split \"d.go:23: message\" into \"d.go\", \"23\", and \"message\".\n\tif parts := bytes.SplitN(b, []byte{':'}, 3); len(parts) != 3 || len(parts[0]) < 1 || len(parts[2]) < 1 {\n\t\ttext = fmt.Sprintf(\"bad log format: %s\", b)\n\t} else {\n\t\tfile = string(parts[0])\n\t\ttext = string(parts[2][1:]) // skip leading space\n\t\tline, err = strconv.Atoi(string(parts[1]))\n\t\tif err != nil {\n\t\t\ttext = fmt.Sprintf(\"bad line number: %s\", b)\n\t\t\tline = 1\n\t\t}\n\t}\n\t// printWithFileLine with alsoToStderr=true, so standard log messages\n\t// always appear on standard error.\n\tlogging.printWithFileLine(severity.Severity(lb), logging.logger, logging.filter, file, line, true, text)\n\treturn len(b), nil\n}\n\n// setV computes and remembers the V level for a given PC\n// when vmodule is enabled.\n// File pattern matching takes the basename of the file, stripped\n// of its .go suffix, and uses filepath.Match, which is a little more\n// general than the *? matching used in C++.\n// l.mu is held.\nfunc (l *loggingT) setV(pc uintptr) Level {\n\tfn := runtime.FuncForPC(pc)\n\tfile, _ := fn.FileLine(pc)\n\t// The file is something like /a/b/c/d.go. We want just the d.\n\tif strings.HasSuffix(file, \".go\") {\n\t\tfile = file[:len(file)-3]\n\t}\n\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\tfile = file[slash+1:]\n\t}\n\tfor _, filter := range l.vmodule.filter {\n\t\tif filter.match(file) {\n\t\t\tl.vmap[pc] = filter.level\n\t\t\treturn filter.level\n\t\t}\n\t}\n\tl.vmap[pc] = 0\n\treturn 0\n}\n\n// Verbose is a boolean type that implements Infof (like Printf) etc.\n// See the documentation of V for more information.\ntype Verbose struct {\n\tenabled bool\n\tlogger  *logWriter\n}\n\nfunc newVerbose(level Level, b bool) Verbose {\n\tif logging.logger == nil {\n\t\treturn Verbose{b, nil}\n\t}\n\tv := logging.logger.V(int(level))\n\treturn Verbose{b, &logWriter{Logger: v, writeKlogBuffer: logging.loggerOptions.writeKlogBuffer}}\n}\n\n// V reports whether verbosity at the call site is at least the requested level.\n// The returned value is a struct of type Verbose, which implements Info, Infoln\n// and Infof. These methods will write to the Info log if called.\n// Thus, one may write either\n//\n//\tif klog.V(2).Enabled() { klog.Info(\"log this\") }\n//\n// or\n//\n//\tklog.V(2).Info(\"log this\")\n//\n// The second form is shorter but the first is cheaper if logging is off because it does\n// not evaluate its arguments.\n//\n// Whether an individual call to V generates a log record depends on the setting of\n// the -v and -vmodule flags; both are off by default. The V call will log if its level\n// is less than or equal to the value of the -v flag, or alternatively if its level is\n// less than or equal to the value of the -vmodule pattern matching the source file\n// containing the call.\nfunc V(level Level) Verbose {\n\treturn VDepth(1, level)\n}\n\n// VDepth is a variant of V that accepts a number of stack frames that will be\n// skipped when checking the -vmodule patterns. VDepth(0) is equivalent to\n// V().\nfunc VDepth(depth int, level Level) Verbose {\n\t// This function tries hard to be cheap unless there's work to do.\n\t// The fast path is two atomic loads and compares.\n\n\t// Here is a cheap but safe test to see if V logging is enabled globally.\n\tif logging.verbosity.get() >= level {\n\t\treturn newVerbose(level, true)\n\t}\n\n\t// It's off globally but vmodule may still be set.\n\t// Here is another cheap but safe test to see if vmodule is enabled.\n\tif atomic.LoadInt32(&logging.filterLength) > 0 {\n\t\t// Now we need a proper lock to use the logging structure. The pcs field\n\t\t// is shared so we must lock before accessing it. This is fairly expensive,\n\t\t// but if V logging is enabled we're slow anyway.\n\t\tlogging.mu.Lock()\n\t\tdefer logging.mu.Unlock()\n\t\tif runtime.Callers(2+depth, logging.pcs[:]) == 0 {\n\t\t\treturn newVerbose(level, false)\n\t\t}\n\t\t// runtime.Callers returns \"return PCs\", but we want\n\t\t// to look up the symbolic information for the call,\n\t\t// so subtract 1 from the PC. runtime.CallersFrames\n\t\t// would be cleaner, but allocates.\n\t\tpc := logging.pcs[0] - 1\n\t\tv, ok := logging.vmap[pc]\n\t\tif !ok {\n\t\t\tv = logging.setV(pc)\n\t\t}\n\t\treturn newVerbose(level, v >= level)\n\t}\n\treturn newVerbose(level, false)\n}\n\n// Enabled will return true if this log level is enabled, guarded by the value\n// of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Enabled() bool {\n\treturn v.enabled\n}\n\n// Info is equivalent to the global Info function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Info(args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.print(severity.InfoLog, v.logger, logging.filter, args...)\n\t}\n}\n\n// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepth(depth int, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)\n\t}\n}\n\n// Infoln is equivalent to the global Infoln function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infoln(args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.println(severity.InfoLog, v.logger, logging.filter, args...)\n\t}\n}\n\n// InfolnDepth is equivalent to the global InfolnDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfolnDepth(depth int, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printlnDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)\n\t}\n}\n\n// Infof is equivalent to the global Infof function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infof(format string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printf(severity.InfoLog, v.logger, logging.filter, format, args...)\n\t}\n}\n\n// InfofDepth is equivalent to the global InfofDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfofDepth(depth int, format string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printfDepth(severity.InfoLog, v.logger, logging.filter, depth, format, args...)\n\t}\n}\n\n// InfoS is equivalent to the global InfoS function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoS(msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.infoS(v.logger, logging.filter, 0, msg, keysAndValues...)\n\t}\n}\n\n// InfoSDepth acts as InfoS but uses depth to determine which call frame to log.\n// InfoSDepth(0, \"msg\") is the same as InfoS(\"msg\").\nfunc InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {\n\tlogging.infoS(logging.logger, logging.filter, depth, msg, keysAndValues...)\n}\n\n// InfoSDepth is equivalent to the global InfoSDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.infoS(v.logger, logging.filter, depth, msg, keysAndValues...)\n\t}\n}\n\n// Deprecated: Use ErrorS instead.\nfunc (v Verbose) Error(err error, msg string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.errorS(err, v.logger, logging.filter, 0, msg, args...)\n\t}\n}\n\n// ErrorS is equivalent to the global Error function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.errorS(err, v.logger, logging.filter, 0, msg, keysAndValues...)\n\t}\n}\n\n// Info logs to the INFO log.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Info(args ...interface{}) {\n\tlogging.print(severity.InfoLog, logging.logger, logging.filter, args...)\n}\n\n// InfoDepth acts as Info but uses depth to determine which call frame to log.\n// InfoDepth(0, \"msg\") is the same as Info(\"msg\").\nfunc InfoDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Infoln logs to the INFO log.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Infoln(args ...interface{}) {\n\tlogging.println(severity.InfoLog, logging.logger, logging.filter, args...)\n}\n\n// InfolnDepth acts as Infoln but uses depth to determine which call frame to log.\n// InfolnDepth(0, \"msg\") is the same as Infoln(\"msg\").\nfunc InfolnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Infof logs to the INFO log.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Infof(format string, args ...interface{}) {\n\tlogging.printf(severity.InfoLog, logging.logger, logging.filter, format, args...)\n}\n\n// InfofDepth acts as Infof but uses depth to determine which call frame to log.\n// InfofDepth(0, \"msg\", args...) is the same as Infof(\"msg\", args...).\nfunc InfofDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.InfoLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// InfoS structured logs to the INFO log.\n// The msg argument used to add constant description to the log line.\n// The key/value pairs would be join by \"=\" ; a newline is always appended.\n//\n// Basic examples:\n// >> klog.InfoS(\"Pod status updated\", \"pod\", \"kubedns\", \"status\", \"ready\")\n// output:\n// >> I1025 00:15:15.525108       1 controller_utils.go:116] \"Pod status updated\" pod=\"kubedns\" status=\"ready\"\nfunc InfoS(msg string, keysAndValues ...interface{}) {\n\tlogging.infoS(logging.logger, logging.filter, 0, msg, keysAndValues...)\n}\n\n// Warning logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Warning(args ...interface{}) {\n\tlogging.print(severity.WarningLog, logging.logger, logging.filter, args...)\n}\n\n// WarningDepth acts as Warning but uses depth to determine which call frame to log.\n// WarningDepth(0, \"msg\") is the same as Warning(\"msg\").\nfunc WarningDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Warningln logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Warningln(args ...interface{}) {\n\tlogging.println(severity.WarningLog, logging.logger, logging.filter, args...)\n}\n\n// WarninglnDepth acts as Warningln but uses depth to determine which call frame to log.\n// WarninglnDepth(0, \"msg\") is the same as Warningln(\"msg\").\nfunc WarninglnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Warningf logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Warningf(format string, args ...interface{}) {\n\tlogging.printf(severity.WarningLog, logging.logger, logging.filter, format, args...)\n}\n\n// WarningfDepth acts as Warningf but uses depth to determine which call frame to log.\n// WarningfDepth(0, \"msg\", args...) is the same as Warningf(\"msg\", args...).\nfunc WarningfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.WarningLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// Error logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Error(args ...interface{}) {\n\tlogging.print(severity.ErrorLog, logging.logger, logging.filter, args...)\n}\n\n// ErrorDepth acts as Error but uses depth to determine which call frame to log.\n// ErrorDepth(0, \"msg\") is the same as Error(\"msg\").\nfunc ErrorDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Errorln logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Errorln(args ...interface{}) {\n\tlogging.println(severity.ErrorLog, logging.logger, logging.filter, args...)\n}\n\n// ErrorlnDepth acts as Errorln but uses depth to determine which call frame to log.\n// ErrorlnDepth(0, \"msg\") is the same as Errorln(\"msg\").\nfunc ErrorlnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Errorf logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Errorf(format string, args ...interface{}) {\n\tlogging.printf(severity.ErrorLog, logging.logger, logging.filter, format, args...)\n}\n\n// ErrorfDepth acts as Errorf but uses depth to determine which call frame to log.\n// ErrorfDepth(0, \"msg\", args...) is the same as Errorf(\"msg\", args...).\nfunc ErrorfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.ErrorLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// ErrorS structured logs to the ERROR, WARNING, and INFO logs.\n// the err argument used as \"err\" field of log line.\n// The msg argument used to add constant description to the log line.\n// The key/value pairs would be join by \"=\" ; a newline is always appended.\n//\n// Basic examples:\n// >> klog.ErrorS(err, \"Failed to update pod status\")\n// output:\n// >> E1025 00:15:15.525108       1 controller_utils.go:114] \"Failed to update pod status\" err=\"timeout\"\nfunc ErrorS(err error, msg string, keysAndValues ...interface{}) {\n\tlogging.errorS(err, logging.logger, logging.filter, 0, msg, keysAndValues...)\n}\n\n// ErrorSDepth acts as ErrorS but uses depth to determine which call frame to log.\n// ErrorSDepth(0, \"msg\") is the same as ErrorS(\"msg\").\nfunc ErrorSDepth(depth int, err error, msg string, keysAndValues ...interface{}) {\n\tlogging.errorS(err, logging.logger, logging.filter, depth, msg, keysAndValues...)\n}\n\n// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,\n// prints stack trace(s), then calls OsExit(255).\n//\n// Stderr only receives a dump of the current goroutine's stack trace. Log files,\n// if there are any, receive a dump of the stack traces in all goroutines.\n//\n// Callers who want more control over handling of fatal events may instead use a\n// combination of different functions:\n//   - some info or error logging function, optionally with a stack trace\n//     value generated by github.com/go-logr/lib/dbg.Backtrace\n//   - Flush to flush pending log data\n//   - panic, os.Exit or returning to the caller with an error\n//\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Fatal(args ...interface{}) {\n\tlogging.print(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// FatalDepth acts as Fatal but uses depth to determine which call frame to log.\n// FatalDepth(0, \"msg\") is the same as Fatal(\"msg\").\nfunc FatalDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls OsExit(255).\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Fatalln(args ...interface{}) {\n\tlogging.println(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// FatallnDepth acts as Fatalln but uses depth to determine which call frame to log.\n// FatallnDepth(0, \"msg\") is the same as Fatalln(\"msg\").\nfunc FatallnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls OsExit(255).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Fatalf(format string, args ...interface{}) {\n\tlogging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...)\n}\n\n// FatalfDepth acts as Fatalf but uses depth to determine which call frame to log.\n// FatalfDepth(0, \"msg\", args...) is the same as Fatalf(\"msg\", args...).\nfunc FatalfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// fatalNoStacks is non-zero if we are to exit without dumping goroutine stacks.\n// It allows Exit and relatives to use the Fatal logs.\nvar fatalNoStacks uint32\n\n// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Exit(args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.print(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// ExitDepth acts as Exit but uses depth to determine which call frame to log.\n// ExitDepth(0, \"msg\") is the same as Exit(\"msg\").\nfunc ExitDepth(depth int, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\nfunc Exitln(args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.println(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// ExitlnDepth acts as Exitln but uses depth to determine which call frame to log.\n// ExitlnDepth(0, \"msg\") is the same as Exitln(\"msg\").\nfunc ExitlnDepth(depth int, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Exitf(format string, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...)\n}\n\n// ExitfDepth acts as Exitf but uses depth to determine which call frame to log.\n// ExitfDepth(0, \"msg\", args...) is the same as Exitf(\"msg\", args...).\nfunc ExitfDepth(depth int, format string, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// LogFilter is a collection of functions that can filter all logging calls,\n// e.g. for sanitization of arguments and prevent accidental leaking of secrets.\ntype LogFilter interface {\n\tFilter(args []interface{}) []interface{}\n\tFilterF(format string, args []interface{}) (string, []interface{})\n\tFilterS(msg string, keysAndValues []interface{}) (string, []interface{})\n}\n\n// SetLogFilter installs a filter that is used for all log calls.\n//\n// Modifying the filter is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc SetLogFilter(filter LogFilter) {\n\tlogging.filter = filter\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// File I/O for logs.\n\npackage klog\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// MaxSize is the maximum size of a log file in bytes.\nvar MaxSize uint64 = 1024 * 1024 * 1800\n\n// logDirs lists the candidate directories for new log files.\nvar logDirs []string\n\nfunc createLogDirs() {\n\tif logging.logDir != \"\" {\n\t\tlogDirs = append(logDirs, logging.logDir)\n\t}\n\tlogDirs = append(logDirs, os.TempDir())\n}\n\nvar (\n\tpid          = os.Getpid()\n\tprogram      = filepath.Base(os.Args[0])\n\thost         = \"unknownhost\"\n\tuserName     = \"unknownuser\"\n\tuserNameOnce sync.Once\n)\n\nfunc init() {\n\tif h, err := os.Hostname(); err == nil {\n\t\thost = shortHostname(h)\n\t}\n}\n\n// shortHostname returns its argument, truncating at the first period.\n// For instance, given \"www.google.com\" it returns \"www\".\nfunc shortHostname(hostname string) string {\n\tif i := strings.Index(hostname, \".\"); i >= 0 {\n\t\treturn hostname[:i]\n\t}\n\treturn hostname\n}\n\n// logName returns a new log file name containing tag, with start time t, and\n// the name for the symlink for tag.\nfunc logName(tag string, t time.Time) (name, link string) {\n\tname = fmt.Sprintf(\"%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d\",\n\t\tprogram,\n\t\thost,\n\t\tgetUserName(),\n\t\ttag,\n\t\tt.Year(),\n\t\tt.Month(),\n\t\tt.Day(),\n\t\tt.Hour(),\n\t\tt.Minute(),\n\t\tt.Second(),\n\t\tpid)\n\treturn name, program + \".\" + tag\n}\n\nvar onceLogDirs sync.Once\n\n// create creates a new log file and returns the file and its filename, which\n// contains tag (\"INFO\", \"FATAL\", etc.) and t.  If the file is created\n// successfully, create also attempts to update the symlink for that tag, ignoring\n// errors.\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc create(tag string, t time.Time, startup bool) (f *os.File, filename string, err error) {\n\tif logging.logFile != \"\" {\n\t\tf, err := openOrCreate(logging.logFile, startup)\n\t\tif err == nil {\n\t\t\treturn f, logging.logFile, nil\n\t\t}\n\t\treturn nil, \"\", fmt.Errorf(\"log: unable to create log: %v\", err)\n\t}\n\tonceLogDirs.Do(createLogDirs)\n\tif len(logDirs) == 0 {\n\t\treturn nil, \"\", errors.New(\"log: no log dirs\")\n\t}\n\tname, link := logName(tag, t)\n\tvar lastErr error\n\tfor _, dir := range logDirs {\n\t\tfname := filepath.Join(dir, name)\n\t\tf, err := openOrCreate(fname, startup)\n\t\tif err == nil {\n\t\t\tsymlink := filepath.Join(dir, link)\n\t\t\tos.Remove(symlink)        // ignore err\n\t\t\tos.Symlink(name, symlink) // ignore err\n\t\t\treturn f, fname, nil\n\t\t}\n\t\tlastErr = err\n\t}\n\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", lastErr)\n}\n\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc openOrCreate(name string, startup bool) (*os.File, error) {\n\tif startup {\n\t\tf, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)\n\t\treturn f, err\n\t}\n\tf, err := os.Create(name)\n\treturn f, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file_others.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage klog\n\nimport (\n\t\"os/user\"\n)\n\nfunc getUserName() string {\n\tuserNameOnce.Do(func() {\n\t\tcurrent, err := user.Current()\n\t\tif err == nil {\n\t\t\tuserName = current.Username\n\t\t}\n\t})\n\n\treturn userName\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file_windows.go",
    "content": "//go:build windows\n// +build windows\n\npackage klog\n\nimport (\n\t\"os\"\n\t\"strings\"\n)\n\nfunc getUserName() string {\n\tuserNameOnce.Do(func() {\n\t\t// On Windows, the Go 'user' package requires netapi32.dll.\n\t\t// This affects Windows Nano Server:\n\t\t//   https://github.com/golang/go/issues/21867\n\t\t// Fallback to using environment variables.\n\t\tu := os.Getenv(\"USERNAME\")\n\t\tif len(u) == 0 {\n\t\t\treturn\n\t\t}\n\t\t// Sanitize the USERNAME since it may contain filepath separators.\n\t\tu = strings.Replace(u, `\\`, \"_\", -1)\n\n\t\t// user.Current().Username normally produces something like 'USERDOMAIN\\USERNAME'\n\t\td := os.Getenv(\"USERDOMAIN\")\n\t\tif len(d) != 0 {\n\t\t\tuserName = d + \"_\" + u\n\t\t} else {\n\t\t\tuserName = u\n\t\t}\n\t})\n\n\treturn userName\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klogr.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"github.com/go-logr/logr\"\n\n\t\"k8s.io/klog/v2/internal/serialize\"\n)\n\n// NewKlogr returns a logger that is functionally identical to\n// klogr.NewWithOptions(klogr.FormatKlog), i.e. it passes through to klog. The\n// difference is that it uses a simpler implementation.\nfunc NewKlogr() Logger {\n\treturn New(&klogger{})\n}\n\n// klogger is a subset of klogr/klogr.go. It had to be copied to break an\n// import cycle (klogr wants to use klog, and klog wants to use klogr).\ntype klogger struct {\n\tlevel     int\n\tcallDepth int\n\tprefix    string\n\tvalues    []interface{}\n}\n\nfunc (l *klogger) Init(info logr.RuntimeInfo) {\n\tl.callDepth += info.CallDepth\n}\n\nfunc (l *klogger) Info(level int, msg string, kvList ...interface{}) {\n\tmerged := serialize.MergeKVs(l.values, kvList)\n\tif l.prefix != \"\" {\n\t\tmsg = l.prefix + \": \" + msg\n\t}\n\t// Skip this function.\n\tVDepth(l.callDepth+1, Level(level)).InfoSDepth(l.callDepth+1, msg, merged...)\n}\n\nfunc (l *klogger) Enabled(level int) bool {\n\t// Skip this function and logr.Logger.Info where Enabled is called.\n\treturn VDepth(l.callDepth+2, Level(level)).Enabled()\n}\n\nfunc (l *klogger) Error(err error, msg string, kvList ...interface{}) {\n\tmerged := serialize.MergeKVs(l.values, kvList)\n\tif l.prefix != \"\" {\n\t\tmsg = l.prefix + \": \" + msg\n\t}\n\tErrorSDepth(l.callDepth+1, err, msg, merged...)\n}\n\n// WithName returns a new logr.Logger with the specified name appended.  klogr\n// uses '/' characters to separate name elements.  Callers should not pass '/'\n// in the provided name string, but this library does not actually enforce that.\nfunc (l klogger) WithName(name string) logr.LogSink {\n\tif len(l.prefix) > 0 {\n\t\tl.prefix = l.prefix + \"/\"\n\t}\n\tl.prefix += name\n\treturn &l\n}\n\nfunc (l klogger) WithValues(kvList ...interface{}) logr.LogSink {\n\tl.values = serialize.WithValues(l.values, kvList)\n\treturn &l\n}\n\nfunc (l klogger) WithCallDepth(depth int) logr.LogSink {\n\tl.callDepth += depth\n\treturn &l\n}\n\nvar _ logr.LogSink = &klogger{}\nvar _ logr.CallDepthLogSink = &klogger{}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/builder3/util/util.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/schemamutation\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// wrapRefs wraps OpenAPI V3 Schema refs that contain sibling elements.\n// AllOf is used to wrap the Ref to prevent references from having sibling elements\n// Please see https://github.com/kubernetes/kubernetes/issues/106387#issuecomment-967640388\nfunc WrapRefs(schema *spec.Schema) *spec.Schema {\n\twalker := schemamutation.Walker{\n\t\tSchemaCallback: func(schema *spec.Schema) *spec.Schema {\n\t\t\torig := schema\n\t\t\tclone := func() {\n\t\t\t\tif orig == schema {\n\t\t\t\t\tschema = new(spec.Schema)\n\t\t\t\t\t*schema = *orig\n\t\t\t\t}\n\t\t\t}\n\t\t\tif schema.Ref.String() != \"\" && !reflect.DeepEqual(*schema, spec.Schema{SchemaProps: spec.SchemaProps{Ref: schema.Ref}}) {\n\t\t\t\tclone()\n\t\t\t\trefSchema := new(spec.Schema)\n\t\t\t\trefSchema.Ref = schema.Ref\n\t\t\t\tschema.Ref = spec.Ref{}\n\t\t\t\tschema.AllOf = []spec.Schema{*refSchema}\n\t\t\t}\n\t\t\treturn schema\n\t\t},\n\t\tRefCallback: schemamutation.RefCallbackNoop,\n\t}\n\treturn walker.WalkSchema(schema)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/cached/cache.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package cache provides a cache mechanism based on etags to lazily\n// build, and/or cache results from expensive operation such that those\n// operations are not repeated unnecessarily. The operations can be\n// created as a tree, and replaced dynamically as needed.\n//\n// # Dependencies and types of caches\n//\n// This package uses a source/transform/sink model of caches to build\n// the dependency tree, and can be used as follows:\n//   - [NewSource]: A source cache that recomputes the content every time.\n//   - [NewStaticSource]: A source cache that always produces the\n//     same content, it is only called once.\n//   - [NewTransformer]: A cache that transforms data from one format to\n//     another. It's only refreshed when the source changes.\n//   - [NewMerger]: A cache that aggregates multiple caches into one.\n//     It's only refreshed when the source changes.\n//   - [Replaceable]: A cache adapter that can be atomically\n//     replaced with a new one, and saves the previous results in case an\n//     error pops-up.\n//\n// # Atomicity\n//\n// Most of the operations are not atomic/thread-safe, except for\n// [Replaceable.Replace] which can be performed while the objects\n// are being read.\n//\n// # Etags\n//\n// Etags in this library is a cache version identifier. It doesn't\n// necessarily strictly match to the semantics of http `etags`, but are\n// somewhat inspired from it and function with the same principles.\n// Hashing the content is a good way to guarantee that your function is\n// never going to be called spuriously. In Kubernetes world, this could\n// be a `resourceVersion`, this can be an actual etag, a hash, a UUID\n// (if the cache always changes), or even a made-up string when the\n// content of the cache never changes.\npackage cached\n\nimport (\n\t\"fmt\"\n\t\"sync/atomic\"\n)\n\n// Result is the content returned from a call to a cache. It can either\n// be created with [NewResultOK] if the call was a success, or\n// [NewResultErr] if the call resulted in an error.\ntype Result[T any] struct {\n\tData T\n\tEtag string\n\tErr  error\n}\n\n// NewResultOK creates a new [Result] for a successful operation.\nfunc NewResultOK[T any](data T, etag string) Result[T] {\n\treturn Result[T]{\n\t\tData: data,\n\t\tEtag: etag,\n\t}\n}\n\n// NewResultErr creates a new [Result] when an error has happened.\nfunc NewResultErr[T any](err error) Result[T] {\n\treturn Result[T]{\n\t\tErr: err,\n\t}\n}\n\n// Result can be treated as a [Data] if necessary.\nfunc (r Result[T]) Get() Result[T] {\n\treturn r\n}\n\n// Data is a cache that performs an action whose result data will be\n// cached. It also returns an \"etag\" identifier to version the cache, so\n// that the caller can know if they have the most recent version of the\n// cache (and can decide to cache some operation based on that).\n//\n// The [NewMerger] and [NewTransformer] automatically handle\n// that for you by checking if the etag is updated before calling the\n// merging or transforming function.\ntype Data[T any] interface {\n\t// Returns the cached data, as well as an \"etag\" to identify the\n\t// version of the cache, or an error if something happened.\n\tGet() Result[T]\n}\n\n// T is the source type, V is the destination type.\ntype merger[K comparable, T, V any] struct {\n\tmergeFn      func(map[K]Result[T]) Result[V]\n\tcaches       map[K]Data[T]\n\tcacheResults map[K]Result[T]\n\tresult       Result[V]\n}\n\n// NewMerger creates a new merge cache, a cache that merges the result\n// of other caches. The function only gets called if any of the\n// dependency has changed.\n//\n// If any of the dependency returned an error before, or any of the\n// dependency returned an error this time, or if the mergeFn failed\n// before, then the function is reran.\n//\n// The caches and results are mapped by K so that associated data can be\n// retrieved. The map of dependencies can not be modified after\n// creation, and a new merger should be created (and probably replaced\n// using a [Replaceable]).\n//\n// Note that this assumes there is no \"partial\" merge, the merge\n// function will remerge all the dependencies together everytime. Since\n// the list of dependencies is constant, there is no way to save some\n// partial merge information either.\nfunc NewMerger[K comparable, T, V any](mergeFn func(results map[K]Result[T]) Result[V], caches map[K]Data[T]) Data[V] {\n\treturn &merger[K, T, V]{\n\t\tmergeFn: mergeFn,\n\t\tcaches:  caches,\n\t}\n}\n\nfunc (c *merger[K, T, V]) prepareResults() map[K]Result[T] {\n\tcacheResults := make(map[K]Result[T], len(c.caches))\n\tfor key, cache := range c.caches {\n\t\tcacheResults[key] = cache.Get()\n\t}\n\treturn cacheResults\n}\n\n// Rerun if:\n//   - The last run resulted in an error\n//   - Any of the dependency previously returned an error\n//   - Any of the dependency just returned an error\n//   - Any of the dependency's etag changed\nfunc (c *merger[K, T, V]) needsRunning(results map[K]Result[T]) bool {\n\tif c.cacheResults == nil {\n\t\treturn true\n\t}\n\tif c.result.Err != nil {\n\t\treturn true\n\t}\n\tif len(results) != len(c.cacheResults) {\n\t\tpanic(fmt.Errorf(\"invalid number of results: %v (expected %v)\", len(results), len(c.cacheResults)))\n\t}\n\tfor key, oldResult := range c.cacheResults {\n\t\tnewResult, ok := results[key]\n\t\tif !ok {\n\t\t\tpanic(fmt.Errorf(\"unknown cache entry: %v\", key))\n\t\t}\n\n\t\tif newResult.Etag != oldResult.Etag || newResult.Err != nil || oldResult.Err != nil {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c *merger[K, T, V]) Get() Result[V] {\n\tcacheResults := c.prepareResults()\n\tif c.needsRunning(cacheResults) {\n\t\tc.cacheResults = cacheResults\n\t\tc.result = c.mergeFn(c.cacheResults)\n\t}\n\treturn c.result\n}\n\ntype transformerCacheKeyType struct{}\n\n// NewTransformer creates a new cache that transforms the result of\n// another cache. The transformFn will only be called if the source\n// cache has updated the output, otherwise, the cached result will be\n// returned.\n//\n// If the dependency returned an error before, or it returns an error\n// this time, or if the transformerFn failed before, the function is\n// reran.\nfunc NewTransformer[T, V any](transformerFn func(Result[T]) Result[V], source Data[T]) Data[V] {\n\treturn NewMerger(func(caches map[transformerCacheKeyType]Result[T]) Result[V] {\n\t\tcache, ok := caches[transformerCacheKeyType{}]\n\t\tif len(caches) != 1 || !ok {\n\t\t\tpanic(fmt.Errorf(\"invalid cache for transformer cache: %v\", caches))\n\t\t}\n\t\treturn transformerFn(cache)\n\t}, map[transformerCacheKeyType]Data[T]{\n\t\t{}: source,\n\t})\n}\n\n// NewSource creates a new cache that generates some data. This\n// will always be called since we don't know the origin of the data and\n// if it needs to be updated or not.\nfunc NewSource[T any](sourceFn func() Result[T]) Data[T] {\n\tc := source[T](sourceFn)\n\treturn &c\n}\n\ntype source[T any] func() Result[T]\n\nfunc (c *source[T]) Get() Result[T] {\n\treturn (*c)()\n}\n\n// NewStaticSource creates a new cache that always generates the\n// same data. This will only be called once (lazily).\nfunc NewStaticSource[T any](staticFn func() Result[T]) Data[T] {\n\treturn &static[T]{\n\t\tfn: staticFn,\n\t}\n}\n\ntype static[T any] struct {\n\tfn     func() Result[T]\n\tresult *Result[T]\n}\n\nfunc (c *static[T]) Get() Result[T] {\n\tif c.result == nil {\n\t\tresult := c.fn()\n\t\tc.result = &result\n\t}\n\treturn *c.result\n}\n\n// Replaceable is a cache that carries the result even when the\n// cache is replaced. The cache can be replaced atomically (without any\n// lock held). This is the type that should typically be stored in\n// structs.\ntype Replaceable[T any] struct {\n\tcache  atomic.Pointer[Data[T]]\n\tresult *Result[T]\n}\n\n// Get retrieves the data from the underlying source. [Replaceable]\n// implements the [Data] interface itself. This is a pass-through\n// that calls the most recent underlying cache. If the cache fails but\n// previously had returned a success, that success will be returned\n// instead. If the cache fails but we never returned a success, that\n// failure is returned.\nfunc (c *Replaceable[T]) Get() Result[T] {\n\tresult := (*c.cache.Load()).Get()\n\tif result.Err != nil && c.result != nil && c.result.Err == nil {\n\t\treturn *c.result\n\t}\n\tc.result = &result\n\treturn *c.result\n}\n\n// Replace changes the cache in a thread-safe way.\nfunc (c *Replaceable[T]) Replace(cache Data[T]) {\n\tc.cache.Swap(&cache)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/common.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage common\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\n\t\"k8s.io/kube-openapi/pkg/openapiconv\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\t// TODO: Make this configurable.\n\tExtensionPrefix   = \"x-kubernetes-\"\n\tExtensionV2Schema = ExtensionPrefix + \"v2-schema\"\n)\n\n// OpenAPIDefinition describes single type. Normally these definitions are auto-generated using gen-openapi.\ntype OpenAPIDefinition struct {\n\tSchema       spec.Schema\n\tDependencies []string\n}\n\ntype ReferenceCallback func(path string) spec.Ref\n\n// GetOpenAPIDefinitions is collection of all definitions.\ntype GetOpenAPIDefinitions func(ReferenceCallback) map[string]OpenAPIDefinition\n\n// OpenAPIDefinitionGetter gets openAPI definitions for a given type. If a type implements this interface,\n// the definition returned by it will be used, otherwise the auto-generated definitions will be used. See\n// GetOpenAPITypeFormat for more information about trade-offs of using this interface or GetOpenAPITypeFormat method when\n// possible.\ntype OpenAPIDefinitionGetter interface {\n\tOpenAPIDefinition() *OpenAPIDefinition\n}\n\ntype OpenAPIV3DefinitionGetter interface {\n\tOpenAPIV3Definition() *OpenAPIDefinition\n}\n\ntype PathHandler interface {\n\tHandle(path string, handler http.Handler)\n}\n\ntype PathHandlerByGroupVersion interface {\n\tHandle(path string, handler http.Handler)\n\tHandlePrefix(path string, handler http.Handler)\n}\n\n// Config is set of configuration for openAPI spec generation.\ntype Config struct {\n\t// List of supported protocols such as https, http, etc.\n\tProtocolList []string\n\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec.Response\n\n\t// ResponseDefinitions will be added to \"responses\" under the top-level swagger object. This is an object\n\t// that holds responses definitions that can be used across operations. This property does not define\n\t// global responses for all operations. For more info please refer:\n\t//     https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#fixed-fields\n\tResponseDefinitions map[string]spec.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]spec.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// PostProcessSpec runs after the spec is ready to serve. It allows a final modification to the spec before serving.\n\tPostProcessSpec func(*spec.Swagger) (*spec.Swagger, error)\n\n\t// SecurityDefinitions is list of all security definitions for OpenAPI service. If this is not nil, the user of config\n\t// is responsible to provide DefaultSecurity and (maybe) add unauthorized response to CommonResponses.\n\tSecurityDefinitions *spec.SecurityDefinitions\n\n\t// DefaultSecurity for all operations. This will pass as spec.SwaggerProps.Security to OpenAPI.\n\t// For most cases, this will be list of acceptable definitions in SecurityDefinitions.\n\tDefaultSecurity []map[string][]string\n}\n\n// OpenAPIV3Config is set of configuration for OpenAPI V3 spec generation.\ntype OpenAPIV3Config struct {\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec3.Response\n\n\t// ResponseDefinitions will be added to responses component. This is an object\n\t// that holds responses that can be used across operations.\n\tResponseDefinitions map[string]*spec3.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]*spec3.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\t// One of GetDefinitions or Definitions must be defined to generate a spec.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// SecuritySchemes is list of all security schemes for OpenAPI service.\n\tSecuritySchemes spec3.SecuritySchemes\n\n\t// DefaultSecurity for all operations.\n\tDefaultSecurity []map[string][]string\n}\n\n// ConvertConfigToV3 converts a Config object to an OpenAPIV3Config object\nfunc ConvertConfigToV3(config *Config) *OpenAPIV3Config {\n\tif config == nil {\n\t\treturn nil\n\t}\n\n\tv3Config := &OpenAPIV3Config{\n\t\tInfo:                           config.Info,\n\t\tIgnorePrefixes:                 config.IgnorePrefixes,\n\t\tGetDefinitions:                 config.GetDefinitions,\n\t\tGetOperationIDAndTags:          config.GetOperationIDAndTags,\n\t\tGetOperationIDAndTagsFromRoute: config.GetOperationIDAndTagsFromRoute,\n\t\tGetDefinitionName:              config.GetDefinitionName,\n\t\tDefinitions:                    config.Definitions,\n\t\tSecuritySchemes:                make(spec3.SecuritySchemes),\n\t\tDefaultSecurity:                config.DefaultSecurity,\n\t\tDefaultResponse:                openapiconv.ConvertResponse(config.DefaultResponse, []string{\"application/json\"}),\n\n\t\tCommonResponses:     make(map[int]*spec3.Response),\n\t\tResponseDefinitions: make(map[string]*spec3.Response),\n\t}\n\n\tif config.SecurityDefinitions != nil {\n\t\tfor s, securityScheme := range *config.SecurityDefinitions {\n\t\t\tv3Config.SecuritySchemes[s] = openapiconv.ConvertSecurityScheme(securityScheme)\n\t\t}\n\t}\n\tfor k, commonResponse := range config.CommonResponses {\n\t\tv3Config.CommonResponses[k] = openapiconv.ConvertResponse(&commonResponse, []string{\"application/json\"})\n\t}\n\n\tfor k, responseDefinition := range config.ResponseDefinitions {\n\t\tv3Config.ResponseDefinitions[k] = openapiconv.ConvertResponse(&responseDefinition, []string{\"application/json\"})\n\t}\n\treturn v3Config\n}\n\ntype typeInfo struct {\n\tname   string\n\tformat string\n\tzero   interface{}\n}\n\nvar schemaTypeFormatMap = map[string]typeInfo{\n\t\"uint\":        {\"integer\", \"int32\", 0.},\n\t\"uint8\":       {\"integer\", \"byte\", 0.},\n\t\"uint16\":      {\"integer\", \"int32\", 0.},\n\t\"uint32\":      {\"integer\", \"int64\", 0.},\n\t\"uint64\":      {\"integer\", \"int64\", 0.},\n\t\"int\":         {\"integer\", \"int32\", 0.},\n\t\"int8\":        {\"integer\", \"byte\", 0.},\n\t\"int16\":       {\"integer\", \"int32\", 0.},\n\t\"int32\":       {\"integer\", \"int32\", 0.},\n\t\"int64\":       {\"integer\", \"int64\", 0.},\n\t\"byte\":        {\"integer\", \"byte\", 0},\n\t\"float64\":     {\"number\", \"double\", 0.},\n\t\"float32\":     {\"number\", \"float\", 0.},\n\t\"bool\":        {\"boolean\", \"\", false},\n\t\"time.Time\":   {\"string\", \"date-time\", \"\"},\n\t\"string\":      {\"string\", \"\", \"\"},\n\t\"integer\":     {\"integer\", \"\", 0.},\n\t\"number\":      {\"number\", \"\", 0.},\n\t\"boolean\":     {\"boolean\", \"\", false},\n\t\"[]byte\":      {\"string\", \"byte\", \"\"}, // base64 encoded characters\n\t\"interface{}\": {\"object\", \"\", interface{}(nil)},\n}\n\n// This function is a reference for converting go (or any custom type) to a simple open API type,format pair. There are\n// two ways to customize spec for a type. If you add it here, a type will be converted to a simple type and the type\n// comment (the comment that is added before type definition) will be lost. The spec will still have the property\n// comment. The second way is to implement OpenAPIDefinitionGetter interface. That function can customize the spec (so\n// the spec does not need to be simple type,format) or can even return a simple type,format (e.g. IntOrString). For simple\n// type formats, the benefit of adding OpenAPIDefinitionGetter interface is to keep both type and property documentation.\n// Example:\n//\n//\ttype Sample struct {\n//\t     ...\n//\t     // port of the server\n//\t     port IntOrString\n//\t     ...\n//\t}\n//\n// // IntOrString documentation...\n// type IntOrString { ... }\n//\n// Adding IntOrString to this function:\n//\n//\t\"port\" : {\n//\t          format:      \"string\",\n//\t          type:        \"int-or-string\",\n//\t          Description: \"port of the server\"\n//\t}\n//\n// Implement OpenAPIDefinitionGetter for IntOrString:\n//\n//\t\"port\" : {\n//\t          $Ref:    \"#/definitions/IntOrString\"\n//\t          Description: \"port of the server\"\n//\t}\n//\n// ...\n// definitions:\n//\n//\t{\n//\t          \"IntOrString\": {\n//\t                    format:      \"string\",\n//\t                    type:        \"int-or-string\",\n//\t                    Description: \"IntOrString documentation...\"    // new\n//\t          }\n//\t}\nfunc OpenAPITypeFormat(typeName string) (string, string) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn \"\", \"\"\n\t}\n\treturn mapped.name, mapped.format\n}\n\n// Returns the zero-value for the given type along with true if the type\n// could be found.\nfunc OpenAPIZeroValue(typeName string) (interface{}, bool) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn mapped.zero, true\n}\n\nfunc EscapeJsonPointer(p string) string {\n\t// Escaping reference name using rfc6901\n\tp = strings.Replace(p, \"~\", \"~0\", -1)\n\tp = strings.Replace(p, \"/\", \"~1\", -1)\n\treturn p\n}\n\nfunc EmbedOpenAPIDefinitionIntoV2Extension(main OpenAPIDefinition, embedded OpenAPIDefinition) OpenAPIDefinition {\n\tif main.Schema.Extensions == nil {\n\t\tmain.Schema.Extensions = make(map[string]interface{})\n\t}\n\tmain.Schema.Extensions[ExtensionV2Schema] = embedded.Schema\n\treturn main\n}\n\n// GenerateOpenAPIV3OneOfSchema generate the set of schemas that MUST be assigned to SchemaProps.OneOf\nfunc GenerateOpenAPIV3OneOfSchema(types []string) (oneOf []spec.Schema) {\n\tfor _, t := range types {\n\t\toneOf = append(oneOf, spec.Schema{SchemaProps: spec.SchemaProps{Type: []string{t}}})\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// package common holds shared code and types between open API code\n// generator and spec generator.\npackage common\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/interfaces.go",
    "content": "package common\n\n// RouteContainer is the entrypoint for a service, which may contain multiple\n// routes under a common path with a common set of path parameters.\ntype RouteContainer interface {\n\t// RootPath is the path that all contained routes are nested under.\n\tRootPath() string\n\t// PathParameters are common parameters defined in the root path.\n\tPathParameters() []Parameter\n\t// Routes are all routes exposed under the root path.\n\tRoutes() []Route\n}\n\n// Route is a logical endpoint of a service.\ntype Route interface {\n\t// Method defines the HTTP Method.\n\tMethod() string\n\t// Path defines the route's endpoint.\n\tPath() string\n\t// OperationName defines a machine-readable ID for the route.\n\tOperationName() string\n\t// Parameters defines the list of accepted parameters.\n\tParameters() []Parameter\n\t// Description is a human-readable route description.\n\tDescription() string\n\t// Consumes defines the consumed content-types.\n\tConsumes() []string\n\t// Produces defines the produced content-types.\n\tProduces() []string\n\t// Metadata allows adding extensions to the generated spec.\n\tMetadata() map[string]interface{}\n\t// RequestPayloadSample defines an example request payload. Can return nil.\n\tRequestPayloadSample() interface{}\n\t// ResponsePayloadSample defines an example response payload. Can return nil.\n\tResponsePayloadSample() interface{}\n\t// StatusCodeResponses defines a mapping of HTTP Status Codes to the specific response(s).\n\t// Multiple responses with the same HTTP Status Code are acceptable.\n\tStatusCodeResponses() []StatusCodeResponse\n}\n\n// StatusCodeResponse is an explicit response type with an HTTP Status Code.\ntype StatusCodeResponse interface {\n\t// Code defines the HTTP Status Code.\n\tCode() int\n\t// Message returns the human-readable message.\n\tMessage() string\n\t// Model defines an example payload for this response.\n\tModel() interface{}\n}\n\n// Parameter is a Route parameter.\ntype Parameter interface {\n\t// Name defines the unique-per-route identifier.\n\tName() string\n\t// Description is the human-readable description of the param.\n\tDescription() string\n\t// Required defines if this parameter must be provided.\n\tRequired() bool\n\t// Kind defines the type of the parameter itself.\n\tKind() ParameterKind\n\t// DataType defines the type of data the parameter carries.\n\tDataType() string\n\t// AllowMultiple defines if more than one value can be supplied for the parameter.\n\tAllowMultiple() bool\n}\n\n// ParameterKind is an enum of route parameter types.\ntype ParameterKind int\n\nconst (\n\t// PathParameterKind indicates the request parameter type is \"path\".\n\tPathParameterKind = ParameterKind(iota)\n\n\t// QueryParameterKind indicates the request parameter type is \"query\".\n\tQueryParameterKind\n\n\t// BodyParameterKind indicates the request parameter type is \"body\".\n\tBodyParameterKind\n\n\t// HeaderParameterKind indicates the request parameter type is \"header\".\n\tHeaderParameterKind\n\n\t// FormParameterKind indicates the request parameter type is \"form\".\n\tFormParameterKind\n\n\t// UnknownParameterKind indicates the request parameter type has not been specified.\n\tUnknownParameterKind\n)\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/handler3/handler.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler3\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha512\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/protobuf/proto\"\n\topenapi_v3 \"github.com/google/gnostic/openapiv3\"\n\t\"github.com/google/uuid\"\n\t\"github.com/munnerz/goautoneg\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/pkg/cached\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nconst (\n\tsubTypeProtobufDeprecated = \"com.github.proto-openapi.spec.v3@v1.0+protobuf\"\n\tsubTypeProtobuf           = \"com.github.proto-openapi.spec.v3.v1.0+protobuf\"\n\tsubTypeJSON               = \"json\"\n)\n\n// OpenAPIV3Discovery is the format of the Discovery document for OpenAPI V3\n// It maps Discovery paths to their corresponding URLs with a hash parameter included\ntype OpenAPIV3Discovery struct {\n\tPaths map[string]OpenAPIV3DiscoveryGroupVersion `json:\"paths\"`\n}\n\n// OpenAPIV3DiscoveryGroupVersion includes information about a group version and URL\n// for accessing the OpenAPI. The URL includes a hash parameter to support client side caching\ntype OpenAPIV3DiscoveryGroupVersion struct {\n\t// Path is an absolute path of an OpenAPI V3 document in the form of /openapi/v3/apis/apps/v1?hash=014fbff9a07c\n\tServerRelativeURL string `json:\"serverRelativeURL\"`\n}\n\nfunc ToV3ProtoBinary(json []byte) ([]byte, error) {\n\tdocument, err := openapi_v3.ParseDocument(json)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.Marshal(document)\n}\n\ntype timedSpec struct {\n\tspec         []byte\n\tlastModified time.Time\n}\n\n// This type is protected by the lock on OpenAPIService.\ntype openAPIV3Group struct {\n\tspecCache cached.Replaceable[*spec3.OpenAPI]\n\tpbCache   cached.Data[timedSpec]\n\tjsonCache cached.Data[timedSpec]\n}\n\nfunc newOpenAPIV3Group() *openAPIV3Group {\n\to := &openAPIV3Group{}\n\to.jsonCache = cached.NewTransformer[*spec3.OpenAPI](func(result cached.Result[*spec3.OpenAPI]) cached.Result[timedSpec] {\n\t\tif result.Err != nil {\n\t\t\treturn cached.NewResultErr[timedSpec](result.Err)\n\t\t}\n\t\tjson, err := json.Marshal(result.Data)\n\t\tif err != nil {\n\t\t\treturn cached.NewResultErr[timedSpec](err)\n\t\t}\n\t\treturn cached.NewResultOK(timedSpec{spec: json, lastModified: time.Now()}, computeETag(json))\n\t}, &o.specCache)\n\to.pbCache = cached.NewTransformer(func(result cached.Result[timedSpec]) cached.Result[timedSpec] {\n\t\tif result.Err != nil {\n\t\t\treturn cached.NewResultErr[timedSpec](result.Err)\n\t\t}\n\t\tproto, err := ToV3ProtoBinary(result.Data.spec)\n\t\tif err != nil {\n\t\t\treturn cached.NewResultErr[timedSpec](err)\n\t\t}\n\t\treturn cached.NewResultOK(timedSpec{spec: proto, lastModified: result.Data.lastModified}, result.Etag)\n\t}, o.jsonCache)\n\treturn o\n}\n\nfunc (o *openAPIV3Group) UpdateSpec(openapi cached.Data[*spec3.OpenAPI]) {\n\to.specCache.Replace(openapi)\n}\n\n// OpenAPIService is the service responsible for serving OpenAPI spec. It has\n// the ability to safely change the spec while serving it.\ntype OpenAPIService struct {\n\t// Mutex protects the schema map.\n\tmutex    sync.Mutex\n\tv3Schema map[string]*openAPIV3Group\n\n\tdiscoveryCache cached.Replaceable[timedSpec]\n}\n\nfunc computeETag(data []byte) string {\n\tif data == nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%X\", sha512.Sum512(data))\n}\n\nfunc constructServerRelativeURL(gvString, etag string) string {\n\tu := url.URL{Path: path.Join(\"/openapi/v3\", gvString)}\n\tquery := url.Values{}\n\tquery.Set(\"hash\", etag)\n\tu.RawQuery = query.Encode()\n\treturn u.String()\n}\n\n// NewOpenAPIService builds an OpenAPIService starting with the given spec.\nfunc NewOpenAPIService() *OpenAPIService {\n\to := &OpenAPIService{}\n\to.v3Schema = make(map[string]*openAPIV3Group)\n\t// We're not locked because we haven't shared the structure yet.\n\to.discoveryCache.Replace(o.buildDiscoveryCacheLocked())\n\treturn o\n}\n\nfunc (o *OpenAPIService) buildDiscoveryCacheLocked() cached.Data[timedSpec] {\n\tcaches := make(map[string]cached.Data[timedSpec], len(o.v3Schema))\n\tfor gvName, group := range o.v3Schema {\n\t\tcaches[gvName] = group.jsonCache\n\t}\n\treturn cached.NewMerger(func(results map[string]cached.Result[timedSpec]) cached.Result[timedSpec] {\n\t\tdiscovery := &OpenAPIV3Discovery{Paths: make(map[string]OpenAPIV3DiscoveryGroupVersion)}\n\t\tfor gvName, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn cached.NewResultErr[timedSpec](result.Err)\n\t\t\t}\n\t\t\tdiscovery.Paths[gvName] = OpenAPIV3DiscoveryGroupVersion{\n\t\t\t\tServerRelativeURL: constructServerRelativeURL(gvName, result.Etag),\n\t\t\t}\n\t\t}\n\t\tj, err := json.Marshal(discovery)\n\t\tif err != nil {\n\t\t\treturn cached.NewResultErr[timedSpec](err)\n\t\t}\n\t\treturn cached.NewResultOK(timedSpec{spec: j, lastModified: time.Now()}, computeETag(j))\n\t}, caches)\n}\n\nfunc (o *OpenAPIService) getSingleGroupBytes(getType string, group string) ([]byte, string, time.Time, error) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tv, ok := o.v3Schema[group]\n\tif !ok {\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Cannot find CRD group %s\", group)\n\t}\n\tresult := cached.Result[timedSpec]{}\n\tswitch getType {\n\tcase subTypeJSON:\n\t\tresult = v.jsonCache.Get()\n\tcase subTypeProtobuf, subTypeProtobufDeprecated:\n\t\tresult = v.pbCache.Get()\n\tdefault:\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Invalid accept clause %s\", getType)\n\t}\n\treturn result.Data.spec, result.Etag, result.Data.lastModified, result.Err\n}\n\n// UpdateGroupVersionLazy adds or updates an existing group with the new cached.\nfunc (o *OpenAPIService) UpdateGroupVersionLazy(group string, openapi cached.Data[*spec3.OpenAPI]) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tif _, ok := o.v3Schema[group]; !ok {\n\t\to.v3Schema[group] = newOpenAPIV3Group()\n\t\t// Since there is a new item, we need to re-build the cache map.\n\t\to.discoveryCache.Replace(o.buildDiscoveryCacheLocked())\n\t}\n\to.v3Schema[group].UpdateSpec(openapi)\n}\n\nfunc (o *OpenAPIService) UpdateGroupVersion(group string, openapi *spec3.OpenAPI) {\n\to.UpdateGroupVersionLazy(group, cached.NewResultOK(openapi, uuid.New().String()))\n}\n\nfunc (o *OpenAPIService) DeleteGroupVersion(group string) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tdelete(o.v3Schema, group)\n\t// Rebuild the merge cache map since the items have changed.\n\to.discoveryCache.Replace(o.buildDiscoveryCacheLocked())\n}\n\nfunc (o *OpenAPIService) HandleDiscovery(w http.ResponseWriter, r *http.Request) {\n\tresult := o.discoveryCache.Get()\n\tif result.Err != nil {\n\t\tklog.Errorf(\"Error serving discovery: %s\", result.Err)\n\t\tw.WriteHeader(http.StatusInternalServerError)\n\t\treturn\n\t}\n\tw.Header().Set(\"Etag\", strconv.Quote(result.Etag))\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\thttp.ServeContent(w, r, \"/openapi/v3\", result.Data.lastModified, bytes.NewReader(result.Data.spec))\n}\n\nfunc (o *OpenAPIService) HandleGroupVersion(w http.ResponseWriter, r *http.Request) {\n\turl := strings.SplitAfterN(r.URL.Path, \"/\", 4)\n\tgroup := url[3]\n\n\tdecipherableFormats := r.Header.Get(\"Accept\")\n\tif decipherableFormats == \"\" {\n\t\tdecipherableFormats = \"*/*\"\n\t}\n\tclauses := goautoneg.ParseAccept(decipherableFormats)\n\tw.Header().Add(\"Vary\", \"Accept\")\n\n\tif len(clauses) == 0 {\n\t\treturn\n\t}\n\n\taccepted := []struct {\n\t\tType                string\n\t\tSubType             string\n\t\tReturnedContentType string\n\t}{\n\t\t{\"application\", subTypeJSON, \"application/\" + subTypeJSON},\n\t\t{\"application\", subTypeProtobuf, \"application/\" + subTypeProtobuf},\n\t\t{\"application\", subTypeProtobufDeprecated, \"application/\" + subTypeProtobuf},\n\t}\n\n\tfor _, clause := range clauses {\n\t\tfor _, accepts := range accepted {\n\t\t\tif clause.Type != accepts.Type && clause.Type != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif clause.SubType != accepts.SubType && clause.SubType != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdata, etag, lastModified, err := o.getSingleGroupBytes(accepts.SubType, group)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Set Content-Type header in the reponse\n\t\t\tw.Header().Set(\"Content-Type\", accepts.ReturnedContentType)\n\n\t\t\t// ETag must be enclosed in double quotes: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag\n\t\t\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\n\t\t\tif hash := r.URL.Query().Get(\"hash\"); hash != \"\" {\n\t\t\t\tif hash != etag {\n\t\t\t\t\tu := constructServerRelativeURL(group, etag)\n\t\t\t\t\thttp.Redirect(w, r, u, 301)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// The Vary header is required because the Accept header can\n\t\t\t\t// change the contents returned. This prevents clients from caching\n\t\t\t\t// protobuf as JSON and vice versa.\n\t\t\t\tw.Header().Set(\"Vary\", \"Accept\")\n\n\t\t\t\t// Only set these headers when a hash is given.\n\t\t\t\tw.Header().Set(\"Cache-Control\", \"public, immutable\")\n\t\t\t\t// Set the Expires directive to the maximum value of one year from the request,\n\t\t\t\t// effectively indicating that the cache never expires.\n\t\t\t\tw.Header().Set(\"Expires\", time.Now().AddDate(1, 0, 0).Format(time.RFC1123))\n\t\t\t}\n\t\t\thttp.ServeContent(w, r, \"\", lastModified, bytes.NewReader(data))\n\t\t\treturn\n\t\t}\n\t}\n\tw.WriteHeader(406)\n\treturn\n}\n\nfunc (o *OpenAPIService) RegisterOpenAPIV3VersionedService(servePath string, handler common.PathHandlerByGroupVersion) error {\n\thandler.Handle(servePath, http.HandlerFunc(o.HandleDiscovery))\n\thandler.HandlePrefix(servePath+\"/\", http.HandlerFunc(o.HandleGroupVersion))\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/flags.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\n// Used by tests to selectively disable experimental JSON unmarshaler\nvar UseOptimizedJSONUnmarshaling bool = true\nvar UseOptimizedJSONUnmarshalingV3 bool = true\n\n// Used by tests to selectively disable experimental JSON marshaler\nvar UseOptimizedJSONMarshaling bool = true\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/serialization.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// DeterministicMarshal calls the jsonv2 library with the deterministic\n// flag in order to have stable marshaling.\nfunc DeterministicMarshal(in any) ([]byte, error) {\n\treturn jsonv2.MarshalOptions{Deterministic: true}.Marshal(jsonv2.EncodeOptions{}, in)\n}\n\n// JSONRefFromMap populates a json reference object if the map v contains a $ref key.\nfunc JSONRefFromMap(jsonRef *jsonreference.Ref, v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$ref\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tref, err := jsonreference.New(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*jsonRef = ref\n\t\t}\n\t}\n\treturn nil\n}\n\n// SanitizeExtensions sanitizes the input map such that non extension\n// keys (non x-*, X-*) keys are dropped from the map. Returns the new\n// modified map, or nil if the map is now empty.\nfunc SanitizeExtensions(e map[string]interface{}) map[string]interface{} {\n\tfor k := range e {\n\t\tif !IsExtensionKey(k) {\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\tif len(e) == 0 {\n\t\te = nil\n\t}\n\treturn e\n}\n\n// IsExtensionKey returns true if the input string is of format x-* or X-*\nfunc IsExtensionKey(k string) bool {\n\treturn len(k) > 1 && (k[0] == 'x' || k[0] == 'X') && k[1] == '-'\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at https://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at https://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/LICENSE",
    "content": "Copyright (c) 2020 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/README.md",
    "content": "# JSON Serialization (v2)\n\n[![GoDev](https://img.shields.io/static/v1?label=godev&message=reference&color=00add8)](https://pkg.go.dev/github.com/go-json-experiment/json)\n[![Build Status](https://github.com/go-json-experiment/json/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/go-json-experiment/json/actions)\n\nThis module hosts an experimental implementation of v2 `encoding/json`.\nThe API is unstable and breaking changes will regularly be made.\nDo not depend on this in publicly available modules.\n\n## Goals and objectives\n\n* **Mostly backwards compatible:** If possible, v2 should aim to be _mostly_\ncompatible with v1 in terms of both API and default behavior to ease migration.\nFor example, the `Marshal` and `Unmarshal` functions are the most widely used\ndeclarations in the v1 package. It seems sensible for equivalent functionality\nin v2 to be named the same and have the same signature.\nBehaviorally, we should aim for 95% to 99% backwards compatibility.\nWe do not aim for 100% compatibility since we want the freedom to break\ncertain behaviors that are now considered to have been a mistake.\nWe may provide options that can bring the v2 implementation to 100% compatibility,\nbut it will not be the default.\n\n* **More flexible:** There is a\n[long list of feature requests](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+encoding%2Fjson+in%3Atitle).\nWe should aim to provide the most flexible features that addresses most usages.\nWe do not want to over fit the v2 API to handle every possible use case.\nIdeally, the features provided should be orthogonal in nature such that\nany combination of features results in as few surprising edge cases as possible.\n\n* **More performant:** JSON serialization is widely used and any bit of extra\nperformance gains will be greatly appreciated. Some rarely used behaviors of v1\nmay be dropped in favor of better performance. For example,\ndespite `Encoder` and `Decoder` operating on an `io.Writer` and `io.Reader`,\nthey do not operate in a truly streaming manner,\nleading to a loss in performance. The v2 implementation should aim to be truly\nstreaming by default (see [#33714](https://golang.org/issue/33714)).\n\n* **Easy to use (hard to misuse):** The v2 API should aim to make\nthe common case easy and the less common case at least possible.\nThe API should avoid behavior that goes contrary to user expectation,\nwhich may result in subtle bugs (see [#36225](https://golang.org/issue/36225)).\n\n* **v1 and v2 maintainability:** Since the v1 implementation must stay forever,\nit would be beneficial if v1 could be implemented under the hood with v2,\nallowing for less maintenance burden in the future. This probably implies that\nbehavioral changes in v2 relative to v1 need to be exposed as options.\n\n* **Avoid unsafe:** Standard library packages generally avoid the use of\npackage `unsafe` even if it could provide a performance boost.\nWe aim to preserve this property.\n\n## Expectations\n\nWhile this module aims to possibly be the v2 implementation of `encoding/json`,\nthere is no guarantee that this outcome will occur. As with any major change\nto the Go standard library, this will eventually go through the\n[Go proposal process](https://github.com/golang/proposal#readme).\nAt the present moment, this is still in the design and experimentation phase\nand is not ready for a formal proposal.\n\nThere are several possible outcomes from this experiment:\n1. We determine that a v2 `encoding/json` would not provide sufficient benefit\nover the existing v1 `encoding/json` package. Thus, we abandon this effort.\n2. We propose a v2 `encoding/json` design, but it is rejected in favor of some\nother design that is considered superior.\n3. We propose a v2 `encoding/json` design, but rather than adding an entirely\nnew v2 `encoding/json` package, we decide to merge its functionality into\nthe existing v1 `encoding/json` package.\n4. We propose a v2 `encoding/json` design and it is accepted, resulting in\nits addition to the standard library.\n5. Some other unforeseen outcome (among the infinite number of possibilities).\n\n## Development\n\nThis module is primarily developed by\n[@dsnet](https://github.com/dsnet),\n[@mvdan](https://github.com/mvdan), and\n[@johanbrandhorst](https://github.com/johanbrandhorst)\nwith feedback provided by\n[@rogpeppe](https://github.com/rogpeppe),\n[@ChrisHines](https://github.com/ChrisHines), and\n[@rsc](https://github.com/rsc).\n\nDiscussion about semantics occur semi-regularly, where a\n[record of past meetings can be found here](https://docs.google.com/document/d/1rovrOTd-wTawGMPPlPuKhwXaYBg9VszTXR9AQQL5LfI/edit?usp=sharing).\n\n## Design overview\n\nThis package aims to provide a clean separation between syntax and semantics.\nSyntax deals with the structural representation of JSON (as specified in\n[RFC 4627](https://tools.ietf.org/html/rfc4627),\n[RFC 7159](https://tools.ietf.org/html/rfc7159),\n[RFC 7493](https://tools.ietf.org/html/rfc7493),\n[RFC 8259](https://tools.ietf.org/html/rfc8259), and\n[RFC 8785](https://tools.ietf.org/html/rfc8785)).\nSemantics deals with the meaning of syntactic data as usable application data.\n\nThe `Encoder` and `Decoder` types are streaming tokenizers concerned with the\npacking or parsing of JSON data. They operate on `Token` and `RawValue` types\nwhich represent the common data structures that are representable in JSON.\n`Encoder` and `Decoder` do not aim to provide any interpretation of the data.\n\nFunctions like `Marshal`, `MarshalFull`, `MarshalNext`, `Unmarshal`,\n`UnmarshalFull`, and `UnmarshalNext` provide semantic meaning by correlating\nany arbitrary Go type with some JSON representation of that type (as stored in\ndata types like `[]byte`, `io.Writer`, `io.Reader`, `Encoder`, or `Decoder`).\n\n![API overview](api.png)\n\nThis diagram provides a high-level overview of the v2 `json` package.\nPurple blocks represent types, while blue blocks represent functions or methods.\nThe arrows and their direction represent the approximate flow of data.\nThe bottom half of the diagram contains functionality that is only concerned\nwith syntax, while the upper half contains functionality that assigns\nsemantic meaning to syntactic data handled by the bottom half.\n\nIn contrast to v1 `encoding/json`, options are represented as separate types\nrather than being setter methods on the `Encoder` or `Decoder` types.\n\n## Behavior changes\n\nThe v2 `json` package changes the default behavior of `Marshal` and `Unmarshal`\nrelative to the v1 `json` package to be more sensible.\nSome of these behavior changes have options and workarounds to opt into\nbehavior similar to what v1 provided.\n\nThis table shows an overview of the changes:\n\n| v1 | v2 | Details |\n| -- | -- | ------- |\n| JSON object members are unmarshaled into a Go struct using a **case-insensitive name match**. | JSON object members are unmarshaled into a Go struct using a **case-sensitive name match**. | [CaseSensitivity](/diff_test.go#:~:text=TestCaseSensitivity) |\n| When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value is an empty Go value**, which is defined as false, 0, a nil pointer, a nil interface value, and any empty array, slice, map, or string. | When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value would encode as an empty JSON value**, which is defined as a JSON null, or an empty JSON string, object, or array. | [OmitEmptyOption](/diff_test.go#:~:text=TestOmitEmptyOption) |\n| The `string` option **does affect** Go bools. | The `string` option **does not affect** Go bools. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **does not recursively affect** sub-values of the Go field value. | The `string` option **does recursively affect** sub-values of the Go field value. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **sometimes accepts** a JSON null escaped within a JSON string. | The `string` option **never accepts** a JSON null escaped within a JSON string. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| A nil Go slice is marshaled as a **JSON null**. | A nil Go slice is marshaled as an **empty JSON array**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A nil Go map is marshaled as a **JSON null**. | A nil Go map is marshaled as an **empty JSON object**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A Go array may be unmarshaled from a **JSON array of any length**. | A Go array must be unmarshaled from a **JSON array of the same length**. | [Arrays](/diff_test.go#:~:text=Arrays) |\n| A Go byte array is represented as a **JSON array of JSON numbers**. | A Go byte array is represented as a **Base64-encoded JSON string**. | [ByteArrays](/diff_test.go#:~:text=TestByteArrays) |\n| `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **inconsistently called**. | `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **consistently called**. | [PointerReceiver](/diff_test.go#:~:text=TestPointerReceiver) |\n| A Go map is marshaled in a **deterministic order**. | A Go map is marshaled in a **non-deterministic order**. | [MapDeterminism](/diff_test.go#:~:text=TestMapDeterminism) |\n| JSON strings are encoded **with HTML-specific characters being escaped**. | JSON strings are encoded **without any characters being escaped** (unless necessary). | [EscapeHTML](/diff_test.go#:~:text=TestEscapeHTML) |\n| When marshaling, invalid UTF-8 within a Go string **are silently replaced**. | When marshaling, invalid UTF-8 within a Go string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When unmarshaling, invalid UTF-8 within a JSON string **are silently replaced**. | When unmarshaling, invalid UTF-8 within a JSON string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When marshaling, **an error does not occur** if the output JSON value contains objects with duplicate names. | When marshaling, **an error does occur** if the output JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| When unmarshaling, **an error does not occur** if the input JSON value contains objects with duplicate names. | When unmarshaling, **an error does occur** if the input JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| Unmarshaling a JSON null into a non-empty Go value **inconsistently clears the value or does nothing**. | Unmarshaling a JSON null into a non-empty Go value **always clears the value**. | [MergeNull](/diff_test.go#:~:text=TestMergeNull) |\n| Unmarshaling a JSON value into a non-empty Go value **follows inconsistent and bizarre behavior**. | Unmarshaling a JSON value into a non-empty Go value **always merges if the input is an object, and otherwise replaces**.  | [MergeComposite](/diff_test.go#:~:text=TestMergeComposite) |\n| A `time.Duration` is represented as a **JSON number containing the decimal number of nanoseconds**. | A `time.Duration` is represented as a **JSON string containing the formatted duration (e.g., \"1h2m3.456s\")**. | [TimeDurations](/diff_test.go#:~:text=TestTimeDurations) |\n| Unmarshaling a JSON number into a Go float beyond its representation **results in an error**. | Unmarshaling a JSON number into a Go float beyond its representation **uses the closest representable value (e.g., ±`math.MaxFloat`)**. | [MaxFloats](/diff_test.go#:~:text=TestMaxFloats) |\n| A Go struct with only unexported fields **can be serialized**. | A Go struct with only unexported fields **cannot be serialized**. | [EmptyStructs](/diff_test.go#:~:text=TestEmptyStructs) |\n| A Go struct that embeds an unexported struct type **can sometimes be serialized**. | A Go struct that embeds an unexported struct type **cannot be serialized**. | [EmbedUnexported](/diff_test.go#:~:text=TestEmbedUnexported) |\n\nSee [diff_test.go](/diff_test.go) for details about every change.\n\n## Performance\n\nOne of the goals of the v2 module is to be more performant than v1.\n\nEach of the charts below show the performance across\nseveral different JSON implementations:\n\n* `JSONv1` is `encoding/json` at `v1.18.2`\n* `JSONv2` is `github.com/go-json-experiment/json` at `v0.0.0-20220524042235-dd8be80fc4a7`\n* `JSONIterator` is `github.com/json-iterator/go` at `v1.1.12`\n* `SegmentJSON` is `github.com/segmentio/encoding/json` at `v0.3.5`\n* `GoJSON` is `github.com/goccy/go-json` at `v0.9.7`\n* `SonicJSON` is `github.com/bytedance/sonic` at `v1.3.0`\n\nBenchmarks were run across various datasets:\n\n* `CanadaGeometry` is a GeoJSON (RFC 7946) representation of Canada.\n  It contains many JSON arrays of arrays of two-element arrays of numbers.\n* `CITMCatalog` contains many JSON objects using numeric names.\n* `SyntheaFHIR` is sample JSON data from the healthcare industry.\n  It contains many nested JSON objects with mostly string values,\n  where the set of unique string values is relatively small.\n* `TwitterStatus` is the JSON response from the Twitter API.\n  It contains a mix of all different JSON kinds, where string values\n  are a mix of both single-byte ASCII and multi-byte Unicode.\n* `GolangSource` is a simple tree representing the Go source code.\n  It contains many nested JSON objects, each with the same schema.\n* `StringUnicode` contains many strings with multi-byte Unicode runes.\n\nAll of the implementations other than `JSONv1` and `JSONv2` make\nextensive use of `unsafe`. As such, we expect those to generally be faster,\nbut at the cost of memory and type safety. `SonicJSON` goes a step even further\nand uses just-in-time compilation to generate machine code specialized\nfor the Go type being marshaled or unmarshaled.\nAlso, `SonicJSON` does not validate JSON strings for valid UTF-8,\nand so gains a notable performance boost on datasets with multi-byte Unicode.\nBenchmarks are performed based on the default marshal and unmarshal behavior\nof each package. Note that `JSONv2` aims to be safe and correct by default,\nwhich may not be the most performant strategy.\n\n`JSONv2` has several semantic changes relative to `JSONv1` that\nimpacts performance:\n\n1.  When marshaling, `JSONv2` no longer sorts the keys of a Go map.\n    This will improve performance.\n2.  When marshaling or unmarshaling, `JSONv2` always checks\n    to make sure JSON object names are unique.\n    This will hurt performance, but is more correct.\n3.  When marshaling or unmarshaling, `JSONv2` always\n    shallow copies the underlying value for a Go interface and\n    shallow copies the key and value for entries in a Go map.\n    This is done to keep the value as addressable so that `JSONv2` can\n    call methods and functions that operate on a pointer receiver.\n    This will hurt performance, but is more correct.\n\nAll of the charts are unit-less since the values are normalized\nrelative to `JSONv1`, which is why `JSONv1` always has a value of 1.\nA lower value is better (i.e., runs faster).\n\nBenchmarks were performed on an AMD Ryzen 9 5900X.\n\nThe code for the benchmarks is located at\nhttps://github.com/go-json-experiment/jsonbench.\n\n### Marshal Performance\n\n#### Concrete types\n\n![Benchmark Marshal Concrete](benchmark-marshal-concrete.png)\n\n* This compares marshal performance when serializing\n  [from concrete types](/testdata_test.go).\n* The `JSONv1` implementation is close to optimal (without the use of `unsafe`).\n* Relative to `JSONv1`, `JSONv2` is generally as fast or slightly faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.3x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.8x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 2.0x slower.\n* Relative to `SonicJSON`, `JSONv2` is about 1.8x to 3.2x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, marshaling from concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Marshal Interface](benchmark-marshal-interface.png)\n\n* This compares marshal performance when serializing from\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.5x to 4.2x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 2.4x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.2x to 1.8x faster.\n* Relative to `GoJSON`, `JSONv2` is about 1.1x to 2.5x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv2` is faster than the alternatives.\n  One advantange is because it does not sort the keys for a `map[string]any`,\n  while alternatives (except `SonicJSON` and `JSONIterator`) do sort the keys.\n\n#### RawValue types\n\n![Benchmark Marshal Rawvalue](benchmark-marshal-rawvalue.png)\n\n* This compares performance when marshaling from a `json.RawValue`.\n  This mostly exercises the underlying encoder and\n  hides the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 3.5x to 7.8x faster.\n* `JSONIterator` is blazingly fast because\n  [it does not validate whether the raw value is valid](https://go.dev/play/p/bun9IXQCKRe)\n  and simply copies it to the output.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5x to 2.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 2.2x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x faster.\n* Aside from `JSONIterator`, `JSONv2` is generally the fastest.\n\n### Unmarshal Performance\n\n#### Concrete types\n\n![Benchmark Unmarshal Concrete](benchmark-unmarshal-concrete.png)\n\n* This compares unmarshal performance when deserializing\n  [into concrete types](/testdata_test.go).\n* Relative to `JSONv1`, `JSONv2` is about 1.8x to 5.7x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 1.6x slower.\n* Relative to `SegmentJSON`, `JSONv2` is up to 2.5x slower.\n* Relative to `GoJSON`, `JSONv2` is about 1.4x to 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 4.0x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, unmarshaling into concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Unmarshal Interface](benchmark-unmarshal-interface.png)\n\n* This compares unmarshal performance when deserializing into\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.tx to 4.3x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.5x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5 to 3.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 1.3x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* Aside from `SonicJSON`, `JSONv2` is generally just as fast\n  or faster than all the alternatives.\n\n#### RawValue types\n\n![Benchmark Unmarshal Rawvalue](benchmark-unmarshal-rawvalue.png)\n\n* This compares performance when unmarshaling into a `json.RawValue`.\n  This mostly exercises the underlying decoder and\n  hides away most of the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 8.3x to 17.0x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 2.0x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.6x faster or 1.7x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 1.9x faster or 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 2.0x faster\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv1` takes a\n  [lexical scanning approach](https://talks.golang.org/2011/lex.slide#1),\n  which performs a virtual function call for every byte of input.\n  In contrast, `JSONv2` makes heavy use of iterative and linear parsing logic\n  (with extra complexity to resume parsing when encountering segmented buffers).\n* `JSONv2` is comparable to the alternatives that use `unsafe`.\n  Generally it is faster, but sometimes it is slower.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// MarshalOptions configures how Go data is serialized as JSON data.\n// The zero value is equivalent to the default marshal settings.\ntype MarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Marshalers is a list of type-specific marshalers to use.\n\tMarshalers *Marshalers\n\n\t// StringifyNumbers specifies that numeric Go types should be serialized\n\t// as a JSON string containing the equivalent JSON number value.\n\t//\n\t// According to RFC 8259, section 6, a JSON implementation may choose to\n\t// limit the representation of a JSON number to an IEEE 754 binary64 value.\n\t// This may cause decoders to lose precision for int64 and uint64 types.\n\t// Escaping JSON numbers as a JSON string preserves the exact precision.\n\tStringifyNumbers bool\n\n\t// DiscardUnknownMembers specifies that marshaling should ignore any\n\t// JSON object members stored in Go struct fields dedicated to storing\n\t// unknown JSON object members.\n\tDiscardUnknownMembers bool\n\n\t// Deterministic specifies that the same input value will be serialized\n\t// as the exact same output bytes. Different processes of\n\t// the same program will serialize equal values to the same bytes,\n\t// but different versions of the same program are not guaranteed\n\t// to produce the exact same sequence of bytes.\n\tDeterministic bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Marshal serializes a Go value as a []byte with default options.\n// It is a thin wrapper over MarshalOptions.Marshal.\nfunc Marshal(in any) (out []byte, err error) {\n\treturn MarshalOptions{}.Marshal(EncodeOptions{}, in)\n}\n\n// MarshalFull serializes a Go value into an io.Writer with default options.\n// It is a thin wrapper over MarshalOptions.MarshalFull.\nfunc MarshalFull(out io.Writer, in any) error {\n\treturn MarshalOptions{}.MarshalFull(EncodeOptions{}, out, in)\n}\n\n// Marshal serializes a Go value as a []byte according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) Marshal(eo EncodeOptions, in any) (out []byte, err error) {\n\tenc := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr = mo.MarshalNext(enc, in)\n\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\treturn append([]byte(nil), enc.buf...), err\n}\n\n// MarshalFull serializes a Go value into an io.Writer according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) MarshalFull(eo EncodeOptions, out io.Writer, in any) error {\n\tenc := getStreamingEncoder(out, eo)\n\tdefer putStreamingEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr := mo.MarshalNext(enc, in)\n\treturn err\n}\n\n// MarshalNext encodes a Go value as the next JSON value according to\n// the provided marshal options.\n//\n// Type-specific marshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when encoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// MarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called. For performance,\n// it is recommended that MarshalNext be passed a non-nil pointer to the value.\n//\n// The input value is encoded as JSON according the following rules:\n//\n//   - If any type-specific functions in MarshalOptions.Marshalers match\n//     the value type, then those functions are called to encode the value.\n//     If all applicable functions return SkipFunc,\n//     then the value is encoded according to subsequent rules.\n//\n//   - If the value type implements MarshalerV2,\n//     then the MarshalNextJSON method is called to encode the value.\n//\n//   - If the value type implements MarshalerV1,\n//     then the MarshalJSON method is called to encode the value.\n//\n//   - If the value type implements encoding.TextMarshaler,\n//     then the MarshalText method is called to encode the value and\n//     subsequently encode its result as a JSON string.\n//\n//   - Otherwise, the value is encoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is encoded as a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is encoded as a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is encoded as a JSON string containing\n//     the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the bytes value is encoded as a JSON array\n//     where each byte is recursively JSON-encoded as each JSON array element.\n//\n//   - A Go integer is encoded as a JSON number without fractions or exponents.\n//     If MarshalOptions.StringifyNumbers is specified, then the JSON number is\n//     encoded within a JSON string. It does not support any custom format\n//     flags.\n//\n//   - A Go float is encoded as a JSON number.\n//     If MarshalOptions.StringifyNumbers is specified,\n//     then the JSON number is encoded within a JSON string.\n//     If the format is \"nonfinite\", then NaN, +Inf, and -Inf are encoded as\n//     the JSON strings \"NaN\", \"Infinity\", and \"-Infinity\", respectively.\n//     Otherwise, the presence of non-finite numbers results in a SemanticError.\n//\n//   - A Go map is encoded as a JSON object, where each Go map key and value\n//     is recursively encoded as a name and value pair in the JSON object.\n//     The Go map key must encode as a JSON string, otherwise this results\n//     in a SemanticError. When encoding keys, MarshalOptions.StringifyNumbers\n//     is automatically applied so that numeric keys encode as JSON strings.\n//     The Go map is traversed in a non-deterministic order.\n//     For deterministic encoding, consider using RawValue.Canonicalize.\n//     If the format is \"emitnull\", then a nil map is encoded as a JSON null.\n//     Otherwise by default, a nil map is encoded as an empty JSON object.\n//\n//   - A Go struct is encoded as a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is encoded as a JSON array, where each Go slice element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     If the format is \"emitnull\", then a nil slice is encoded as a JSON null.\n//     Otherwise by default, a nil slice is encoded as an empty JSON array.\n//\n//   - A Go array is encoded as a JSON array, where each Go array element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     The JSON array length is always identical to the Go array length.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     Format flags are forwarded to the encoding of the underlying value.\n//\n//   - A Go interface is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     It does not support any custom format flags.\n//\n//   - A Go time.Time is encoded as a JSON string containing the timestamp\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared\n//     in the time package (e.g., RFC1123), then that format is used.\n//     Otherwise, the format is used as-is with time.Time.Format if non-empty.\n//\n//   - A Go time.Duration is encoded as a JSON string containing the duration\n//     formatted according to time.Duration.String.\n//     If the format is \"nanos\", it is encoded as a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// JSON cannot represent cyclic data structures and\n// MarshalNext does not handle them.\n// Passing cyclic structures will result in an error.\nfunc (mo MarshalOptions) MarshalNext(out *Encoder, in any) error {\n\tv := reflect.ValueOf(in)\n\tif !v.IsValid() || (v.Kind() == reflect.Pointer && v.IsNil()) {\n\t\treturn out.WriteToken(Null)\n\t}\n\t// Shallow copy non-pointer values to obtain an addressable value.\n\t// It is beneficial to performance to always pass pointers to avoid this.\n\tif v.Kind() != reflect.Pointer {\n\t\tv2 := reflect.New(v.Type())\n\t\tv2.Elem().Set(v)\n\t\tv = v2\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the marshal function for this type.\n\tmarshal := lookupArshaler(t).marshal\n\tif mo.Marshalers != nil {\n\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t)\n\t}\n\tif err := marshal(mo, out, va); err != nil {\n\t\tif !out.options.AllowDuplicateNames {\n\t\t\tout.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// UnmarshalOptions configures how JSON data is deserialized as Go data.\n// The zero value is equivalent to the default unmarshal settings.\ntype UnmarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Unmarshalers is a list of type-specific unmarshalers to use.\n\tUnmarshalers *Unmarshalers\n\n\t// StringifyNumbers specifies that numeric Go types can be deserialized\n\t// from either a JSON number or a JSON string containing a JSON number\n\t// without any surrounding whitespace.\n\tStringifyNumbers bool\n\n\t// RejectUnknownMembers specifies that unknown members should be rejected\n\t// when unmarshaling a JSON object, regardless of whether there is a field\n\t// to store unknown members.\n\tRejectUnknownMembers bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Unmarshal deserializes a Go value from a []byte with default options.\n// It is a thin wrapper over UnmarshalOptions.Unmarshal.\nfunc Unmarshal(in []byte, out any) error {\n\treturn UnmarshalOptions{}.Unmarshal(DecodeOptions{}, in, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader with default options.\n// It is a thin wrapper over UnmarshalOptions.UnmarshalFull.\nfunc UnmarshalFull(in io.Reader, out any) error {\n\treturn UnmarshalOptions{}.UnmarshalFull(DecodeOptions{}, in, out)\n}\n\n// Unmarshal deserializes a Go value from a []byte according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) Unmarshal(do DecodeOptions, in []byte, out any) error {\n\tdec := getBufferedDecoder(in, do)\n\tdefer putBufferedDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// It consumes the entirety of io.Reader until io.EOF is encountered.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) UnmarshalFull(do DecodeOptions, in io.Reader, out any) error {\n\tdec := getStreamingDecoder(in, do)\n\tdefer putStreamingDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\nfunc (uo UnmarshalOptions) unmarshalFull(in *Decoder, out any) error {\n\tswitch err := uo.UnmarshalNext(in, out); err {\n\tcase nil:\n\t\treturn in.checkEOF()\n\tcase io.EOF:\n\t\treturn io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// UnmarshalNext decodes the next JSON value into a Go value according to\n// the provided unmarshal options. The output must be a non-nil pointer.\n//\n// Type-specific unmarshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when decoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// UnmarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called.\n//\n// The input is decoded into the output according the following rules:\n//\n//   - If any type-specific functions in UnmarshalOptions.Unmarshalers match\n//     the value type, then those functions are called to decode the JSON\n//     value. If all applicable functions return SkipFunc,\n//     then the input is decoded according to subsequent rules.\n//\n//   - If the value type implements UnmarshalerV2,\n//     then the UnmarshalNextJSON method is called to decode the JSON value.\n//\n//   - If the value type implements UnmarshalerV1,\n//     then the UnmarshalJSON method is called to decode the JSON value.\n//\n//   - If the value type implements encoding.TextUnmarshaler,\n//     then the input is decoded as a JSON string and\n//     the UnmarshalText method is called with the decoded string value.\n//     This fails with a SemanticError if the input is not a JSON string.\n//\n//   - Otherwise, the JSON value is decoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n// A JSON null may be decoded into every supported Go value where\n// it is equivalent to storing the zero value of the Go value.\n// If the input JSON kind is not handled by the current Go value type,\n// then this fails with a SemanticError. Unless otherwise specified,\n// the decoded value replaces any pre-existing value.\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is decoded from a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is decoded from a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is decoded from a JSON string\n//     containing the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the Go slice or array is decoded from a\n//     JSON array where each JSON element is recursively decoded for each byte.\n//     When decoding into a non-nil []byte, the slice length is reset to zero\n//     and the decoded input is appended to it.\n//     When decoding into a [N]byte, the input must decode to exactly N bytes,\n//     otherwise it fails with a SemanticError.\n//\n//   - A Go integer is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     It fails with a SemanticError if the JSON number\n//     has a fractional or exponent component.\n//     It also fails if it overflows the representation of the Go integer type.\n//     It does not support any custom format flags.\n//\n//   - A Go float is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     The JSON number is parsed as the closest representable Go float value.\n//     If the format is \"nonfinite\", then the JSON strings\n//     \"NaN\", \"Infinity\", and \"-Infinity\" are decoded as NaN, +Inf, and -Inf.\n//     Otherwise, the presence of such strings results in a SemanticError.\n//\n//   - A Go map is decoded from a JSON object,\n//     where each JSON object name and value pair is recursively decoded\n//     as the Go map key and value. When decoding keys,\n//     UnmarshalOptions.StringifyNumbers is automatically applied so that\n//     numeric keys can decode from JSON strings. Maps are not cleared.\n//     If the Go map is nil, then a new map is allocated to decode into.\n//     If the decoded key matches an existing Go map entry, the entry value\n//     is reused by decoding the JSON object value into it.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go struct is decoded from a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is decoded from a JSON array, where each JSON element\n//     is recursively decoded and appended to the Go slice.\n//     Before appending into a Go slice, a new slice is allocated if it is nil,\n//     otherwise the slice length is reset to zero.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go array is decoded from a JSON array, where each JSON array element\n//     is recursively decoded as each corresponding Go array element.\n//     Each Go array element is zeroed before decoding into it.\n//     It fails with a SemanticError if the JSON array does not contain\n//     the exact same number of elements as the Go array.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil pointer.\n//     Otherwise, it allocates a new underlying value if the pointer is nil,\n//     and recursively JSON decodes into the underlying value.\n//     Format flags are forwarded to the decoding of the underlying type.\n//\n//   - A Go interface is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil interface value.\n//     Otherwise, a nil interface value of an empty interface type is initialized\n//     with a zero Go bool, string, float64, map[string]any, or []any if the\n//     input is a JSON boolean, string, number, object, or array, respectively.\n//     If the interface value is still nil, then this fails with a SemanticError\n//     since decoding could not determine an appropriate Go type to decode into.\n//     For example, unmarshaling into a nil io.Reader fails since\n//     there is no concrete type to populate the interface value with.\n//     Otherwise an underlying value exists and it recursively decodes\n//     the JSON input into it. It does not support any custom format flags.\n//\n//   - A Go time.Time is decoded from a JSON string containing the time\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared in\n//     the time package (e.g., RFC1123), then that format is used for parsing.\n//     Otherwise, the format is used as-is with time.Time.Parse if non-empty.\n//\n//   - A Go time.Duration is decoded from a JSON string by\n//     passing the decoded string to time.ParseDuration.\n//     If the format is \"nanos\", it is instead decoded from a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// In general, unmarshaling follows merge semantics (similar to RFC 7396)\n// where the decoded Go value replaces the destination value\n// for any JSON kind other than an object.\n// For JSON objects, the input object is merged into the destination value\n// where matching object members recursively apply merge semantics.\nfunc (uo UnmarshalOptions) UnmarshalNext(in *Decoder, out any) error {\n\tv := reflect.ValueOf(out)\n\tif !v.IsValid() || v.Kind() != reflect.Pointer || v.IsNil() {\n\t\tvar t reflect.Type\n\t\tif v.IsValid() {\n\t\t\tt = v.Type()\n\t\t\tif t.Kind() == reflect.Pointer {\n\t\t\t\tt = t.Elem()\n\t\t\t}\n\t\t}\n\t\terr := errors.New(\"value must be passed as a non-nil pointer reference\")\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the unmarshal function for this type.\n\tunmarshal := lookupArshaler(t).unmarshal\n\tif uo.Unmarshalers != nil {\n\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t)\n\t}\n\tif err := unmarshal(uo, in, va); err != nil {\n\t\tif !in.options.AllowDuplicateNames {\n\t\t\tin.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// addressableValue is a reflect.Value that is guaranteed to be addressable\n// such that calling the Addr and Set methods do not panic.\n//\n// There is no compile magic that enforces this property,\n// but rather the need to construct this type makes it easier to examine each\n// construction site to ensure that this property is upheld.\ntype addressableValue struct{ reflect.Value }\n\n// newAddressableValue constructs a new addressable value of type t.\nfunc newAddressableValue(t reflect.Type) addressableValue {\n\treturn addressableValue{reflect.New(t).Elem()}\n}\n\n// All marshal and unmarshal behavior is implemented using these signatures.\ntype (\n\tmarshaler   = func(MarshalOptions, *Encoder, addressableValue) error\n\tunmarshaler = func(UnmarshalOptions, *Decoder, addressableValue) error\n)\n\ntype arshaler struct {\n\tmarshal    marshaler\n\tunmarshal  unmarshaler\n\tnonDefault bool\n}\n\nvar lookupArshalerCache sync.Map // map[reflect.Type]*arshaler\n\nfunc lookupArshaler(t reflect.Type) *arshaler {\n\tif v, ok := lookupArshalerCache.Load(t); ok {\n\t\treturn v.(*arshaler)\n\t}\n\n\tfncs := makeDefaultArshaler(t)\n\tfncs = makeMethodArshaler(fncs, t)\n\tfncs = makeTimeArshaler(fncs, t)\n\n\t// Use the last stored so that duplicate arshalers can be garbage collected.\n\tv, _ := lookupArshalerCache.LoadOrStore(t, fncs)\n\treturn v.(*arshaler)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_any.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"reflect\"\n\n// This files contains an optimized marshal and unmarshal implementation\n// for the any type. This type is often used when the Go program has\n// no knowledge of the JSON schema. This is a common enough occurrence\n// to justify the complexity of adding logic for this.\n\nfunc marshalValueAny(mo MarshalOptions, enc *Encoder, val any) error {\n\tswitch val := val.(type) {\n\tcase nil:\n\t\treturn enc.WriteToken(Null)\n\tcase bool:\n\t\treturn enc.WriteToken(Bool(val))\n\tcase string:\n\t\treturn enc.WriteToken(String(val))\n\tcase float64:\n\t\treturn enc.WriteToken(Float(val))\n\tcase map[string]any:\n\t\treturn marshalObjectAny(mo, enc, val)\n\tcase []any:\n\t\treturn marshalArrayAny(mo, enc, val)\n\tdefault:\n\t\tv := newAddressableValue(reflect.TypeOf(val))\n\t\tv.Set(reflect.ValueOf(val))\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n}\n\nfunc unmarshalValueAny(uo UnmarshalOptions, dec *Decoder) (any, error) {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\treturn unmarshalObjectAny(uo, dec)\n\tcase '[':\n\t\treturn unmarshalArrayAny(uo, dec)\n\tdefault:\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch val.Kind() {\n\t\tcase 'n':\n\t\t\treturn nil, nil\n\t\tcase 'f':\n\t\t\treturn false, nil\n\t\tcase 't':\n\t\t\treturn true, nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\treturn dec.stringCache.make(val), nil\n\t\tcase '0':\n\t\t\tfv, _ := parseFloat(val, 64) // ignore error since readValue guarantees val is valid\n\t\t\treturn fv, nil\n\t\tdefault:\n\t\t\tpanic(\"BUG: invalid kind: \" + k.String())\n\t\t}\n\t}\n}\n\nfunc marshalObjectAny(mo MarshalOptions, enc *Encoder, obj map[string]any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(obj)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty map without any preceding whitespace.\n\tif len(obj) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\treturn err\n\t}\n\t// A Go map guarantees that each entry has a unique key\n\t// The only possibility of duplicates is due to invalid UTF-8.\n\tif !enc.options.AllowInvalidUTF8 {\n\t\tenc.tokens.last.disableNamespace()\n\t}\n\tif !mo.Deterministic || len(obj) <= 1 {\n\t\tfor name, val := range obj {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnames := getStrings(len(obj))\n\t\tvar i int\n\t\tfor name := range obj {\n\t\t\t(*names)[i] = name\n\t\t\ti++\n\t\t}\n\t\tnames.Sort()\n\t\tfor _, name := range *names {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, obj[name]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tputStrings(names)\n\t}\n\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalObjectAny(uo UnmarshalOptions, dec *Decoder) (map[string]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '{':\n\t\tobj := make(map[string]any)\n\t\t// A Go map guarantees that each entry has a unique key\n\t\t// The only possibility of duplicates is due to invalid UTF-8.\n\t\tif !dec.options.AllowInvalidUTF8 {\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t\tname := tok.String()\n\n\t\t\t// Manually check for duplicate names.\n\t\t\tif _, ok := obj[name]; ok {\n\t\t\t\tname := dec.previousBuffer()\n\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\treturn obj, err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t}\n\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tobj[name] = val\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn obj, err\n\t\t}\n\t\treturn obj, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: mapStringAnyType}\n}\n\nfunc marshalArrayAny(mo MarshalOptions, enc *Encoder, arr []any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(arr)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\tif len(arr) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\treturn err\n\t}\n\tfor _, val := range arr {\n\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalArrayAny(uo UnmarshalOptions, dec *Decoder) ([]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '[':\n\t\tarr := []any{}\n\t\tfor dec.PeekKind() != ']' {\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tarr = append(arr, val)\n\t\t\tif err != nil {\n\t\t\t\treturn arr, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn arr, err\n\t\t}\n\t\treturn arr, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: sliceAnyType}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_default.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding/base32\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// optimizeCommon specifies whether to use optimizations targeted for certain\n// common patterns, rather than using the slower, but more general logic.\n// All tests should pass regardless of whether this is true or not.\nconst optimizeCommon = true\n\nvar (\n\t// Most natural Go type that correspond with each JSON type.\n\tanyType          = reflect.TypeOf((*any)(nil)).Elem()            // JSON value\n\tboolType         = reflect.TypeOf((*bool)(nil)).Elem()           // JSON bool\n\tstringType       = reflect.TypeOf((*string)(nil)).Elem()         // JSON string\n\tfloat64Type      = reflect.TypeOf((*float64)(nil)).Elem()        // JSON number\n\tmapStringAnyType = reflect.TypeOf((*map[string]any)(nil)).Elem() // JSON object\n\tsliceAnyType     = reflect.TypeOf((*[]any)(nil)).Elem()          // JSON array\n\n\tbytesType       = reflect.TypeOf((*[]byte)(nil)).Elem()\n\temptyStructType = reflect.TypeOf((*struct{})(nil)).Elem()\n)\n\nconst startDetectingCyclesAfter = 1000\n\ntype seenPointers map[typedPointer]struct{}\n\ntype typedPointer struct {\n\ttyp reflect.Type\n\tptr any // always stores unsafe.Pointer, but avoids depending on unsafe\n}\n\n// visit visits pointer p of type t, reporting an error if seen before.\n// If successfully visited, then the caller must eventually call leave.\nfunc (m *seenPointers) visit(v reflect.Value) error {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tif _, ok := (*m)[p]; ok {\n\t\treturn &SemanticError{action: \"marshal\", GoType: p.typ, Err: errors.New(\"encountered a cycle\")}\n\t}\n\tif *m == nil {\n\t\t*m = make(map[typedPointer]struct{})\n\t}\n\t(*m)[p] = struct{}{}\n\treturn nil\n}\nfunc (m *seenPointers) leave(v reflect.Value) {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tdelete(*m, p)\n}\n\nfunc makeDefaultArshaler(t reflect.Type) *arshaler {\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn makeBoolArshaler(t)\n\tcase reflect.String:\n\t\treturn makeStringArshaler(t)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn makeIntArshaler(t)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn makeUintArshaler(t)\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn makeFloatArshaler(t)\n\tcase reflect.Map:\n\t\treturn makeMapArshaler(t)\n\tcase reflect.Struct:\n\t\treturn makeStructArshaler(t)\n\tcase reflect.Slice:\n\t\tfncs := makeSliceArshaler(t)\n\t\tif t.AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Array:\n\t\tfncs := makeArrayArshaler(t)\n\t\tif reflect.SliceOf(t.Elem()).AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Pointer:\n\t\treturn makePointerArshaler(t)\n\tcase reflect.Interface:\n\t\treturn makeInterfaceArshaler(t)\n\tdefault:\n\t\treturn makeInvalidArshaler(t)\n\t}\n}\n\nfunc makeBoolArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace.\n\t\tif optimizeCommon && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, 't')\n\t\t\tif va.Bool() {\n\t\t\t\tenc.buf = append(enc.buf, \"true\"...)\n\t\t\t} else {\n\t\t\t\tenc.buf = append(enc.buf, \"false\"...)\n\t\t\t}\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.WriteToken(Bool(va.Bool()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetBool(false)\n\t\t\treturn nil\n\t\tcase 't', 'f':\n\t\t\tva.SetBool(tok.Bool())\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeStringArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\treturn enc.WriteToken(String(va.String()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetString(\"\")\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\tstr := dec.stringCache.make(val)\n\t\t\tva.SetString(str)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nvar (\n\tencodeBase16        = func(dst, src []byte) { hex.Encode(dst, src) }\n\tencodeBase32        = base32.StdEncoding.Encode\n\tencodeBase32Hex     = base32.HexEncoding.Encode\n\tencodeBase64        = base64.StdEncoding.Encode\n\tencodeBase64URL     = base64.URLEncoding.Encode\n\tencodedLenBase16    = hex.EncodedLen\n\tencodedLenBase32    = base32.StdEncoding.EncodedLen\n\tencodedLenBase32Hex = base32.HexEncoding.EncodedLen\n\tencodedLenBase64    = base64.StdEncoding.EncodedLen\n\tencodedLenBase64URL = base64.URLEncoding.EncodedLen\n\tdecodeBase16        = hex.Decode\n\tdecodeBase32        = base32.StdEncoding.Decode\n\tdecodeBase32Hex     = base32.HexEncoding.Decode\n\tdecodeBase64        = base64.StdEncoding.Decode\n\tdecodeBase64URL     = base64.URLEncoding.Decode\n\tdecodedLenBase16    = hex.DecodedLen\n\tdecodedLenBase32    = base32.StdEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase32Hex = base32.HexEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase64    = base64.StdEncoding.WithPadding(base64.NoPadding).DecodedLen\n\tdecodedLenBase64URL = base64.URLEncoding.WithPadding(base64.NoPadding).DecodedLen\n)\n\nfunc makeBytesArshaler(t reflect.Type, fncs *arshaler) *arshaler {\n\t// NOTE: This handles both []byte and [N]byte.\n\tmarshalDefault := fncs.marshal\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tencode, encodedLen := encodeBase64, encodedLenBase64\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tswitch mo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tencode, encodedLen = encodeBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tencode, encodedLen = encodeBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tencode, encodedLen = encodeBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tencode, encodedLen = encodeBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tencode, encodedLen = encodeBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tmo.format = \"\"\n\t\t\t\treturn marshalDefault(mo, enc, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\t\tval := enc.UnusedBuffer()\n\t\tb := va.Bytes()\n\t\tn := len(`\"`) + encodedLen(len(b)) + len(`\"`)\n\t\tif cap(val) < n {\n\t\t\tval = make([]byte, n)\n\t\t} else {\n\t\t\tval = val[:n]\n\t\t}\n\t\tval[0] = '\"'\n\t\tencode(val[len(`\"`):len(val)-len(`\"`)], b)\n\t\tval[len(val)-1] = '\"'\n\t\treturn enc.WriteValue(val)\n\t}\n\tunmarshalDefault := fncs.unmarshal\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tdecode, decodedLen, encodedLen := decodeBase64, decodedLenBase64, encodedLenBase64\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tswitch uo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64, decodedLenBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64URL, decodedLenBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32, decodedLenBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32Hex, decodedLenBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase16, decodedLenBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tuo.format = \"\"\n\t\t\t\treturn unmarshalDefault(uo, dec, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\n\t\t\t// For base64 and base32, decodedLen computes the maximum output size\n\t\t\t// when given the original input size. To compute the exact size,\n\t\t\t// adjust the input size by excluding trailing padding characters.\n\t\t\t// This is unnecessary for base16, but also harmless.\n\t\t\tn := len(val)\n\t\t\tfor n > 0 && val[n-1] == '=' {\n\t\t\t\tn--\n\t\t\t}\n\t\t\tn = decodedLen(n)\n\t\t\tb := va.Bytes()\n\t\t\tif va.Kind() == reflect.Array {\n\t\t\t\tif n != len(b) {\n\t\t\t\t\terr := fmt.Errorf(\"decoded base64 length of %d mismatches array length of %d\", n, len(b))\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif b == nil || cap(b) < n {\n\t\t\t\t\tb = make([]byte, n)\n\t\t\t\t} else {\n\t\t\t\t\tb = b[:n]\n\t\t\t\t}\n\t\t\t}\n\t\t\tn2, err := decode(b, val)\n\t\t\tif err == nil && len(val) != encodedLen(n2) {\n\t\t\t\t// TODO(https://go.dev/issue/53845): RFC 4648, section 3.3,\n\t\t\t\t// specifies that non-alphabet characters must be rejected.\n\t\t\t\t// Unfortunately, the \"base32\" and \"base64\" packages allow\n\t\t\t\t// '\\r' and '\\n' characters by default.\n\t\t\t\terr = errors.New(\"illegal data at input byte \" + strconv.Itoa(bytes.IndexAny(val, \"\\r\\n\")))\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif va.Kind() == reflect.Slice {\n\t\t\t\tva.SetBytes(b)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn fncs\n}\n\nfunc makeIntArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendInt(enc.buf, va.Int(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(uint64(va.Int()))\n\t\treturn enc.writeNumber(x, rawIntNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetInt(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tvar negOffset int\n\t\t\tneg := val[0] == '-'\n\t\t\tif neg {\n\t\t\t\tnegOffset = 1\n\t\t\t}\n\t\t\tn, ok := parseDecUint(val[negOffset:])\n\t\t\tmaxInt := uint64(1) << (bits - 1)\n\t\t\toverflow := (neg && n > maxInt) || (!neg && n > maxInt-1)\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif neg {\n\t\t\t\tva.SetInt(int64(-n))\n\t\t\t} else {\n\t\t\t\tva.SetInt(int64(+n))\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeUintArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendUint(enc.buf, va.Uint(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(va.Uint())\n\t\treturn enc.writeNumber(x, rawUintNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetUint(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tn, ok := parseDecUint(val)\n\t\t\tmaxUint := uint64(1) << bits\n\t\t\toverflow := n > maxUint-1\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tva.SetUint(n)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeFloatArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\tfv := va.Float()\n\t\tif math.IsNaN(fv) || math.IsInf(fv, 0) {\n\t\t\tif !allowNonFinite {\n\t\t\t\terr := fmt.Errorf(\"invalid value: %v\", fv)\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn enc.WriteToken(Float(fv))\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = appendNumber(enc.buf, fv, bits)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.writeNumber(fv, bits, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetFloat(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif allowNonFinite {\n\t\t\t\tswitch string(val) {\n\t\t\t\tcase \"NaN\":\n\t\t\t\t\tva.SetFloat(math.NaN())\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(+1))\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"-Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(-1))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif n, err := consumeNumber(val); n != len(val) || err != nil {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as JSON number: %w\", val, strconv.ErrSyntax)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\t// NOTE: Floating-point parsing is by nature a lossy operation.\n\t\t\t// We never report an overflow condition since we can always\n\t\t\t// round the input to the closest representable finite value.\n\t\t\t// For extremely large numbers, the closest value is ±MaxFloat.\n\t\t\tfv, _ := parseFloat(val, bits)\n\t\t\tva.SetFloat(fv)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeMapArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// when handling map keys with a unique representation.\n\n\t// NOTE: Values retrieved from a map are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the map afterwards.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tkeyFncs *arshaler\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tkeyFncs = lookupArshaler(t.Key())\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty map without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif n > 0 {\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tmko := mo\n\t\t\tmko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tmarshalKey := keyFncs.marshal\n\t\t\tmarshalVal := valFncs.marshal\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshalKey, ok = mo.Marshalers.lookup(marshalKey, t.Key())\n\t\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// A Go map guarantees that each entry has a unique key.\n\t\t\t// As such, disable the expensive duplicate name check if we know\n\t\t\t// that every Go key will serialize as a unique JSON string.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), enc.options.AllowInvalidUTF8) {\n\t\t\t\tenc.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\tswitch {\n\t\t\tcase !mo.Deterministic || n <= 1:\n\t\t\t\tfor iter := va.Value.MapRange(); iter.Next(); {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tv.SetIterValue(iter)\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase !nonDefaultKey && t.Key().Kind() == reflect.String:\n\t\t\t\tnames := getStrings(n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\t(*names)[i] = k.String()\n\t\t\t\t}\n\t\t\t\tnames.Sort()\n\t\t\t\tfor _, name := range *names {\n\t\t\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tk.SetString(name)\n\t\t\t\t\tv.Set(va.MapIndex(k.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tputStrings(names)\n\t\t\tdefault:\n\t\t\t\ttype member struct {\n\t\t\t\t\tname string // unquoted name\n\t\t\t\t\tkey  addressableValue\n\t\t\t\t}\n\t\t\t\tmembers := make([]member, n)\n\t\t\t\tkeys := reflect.MakeSlice(reflect.SliceOf(t.Key()), n, n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\t// Marshal the member name.\n\t\t\t\t\tk := addressableValue{keys.Index(i)} // indexed slice element is always addressable\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tname := enc.unwriteOnlyObjectMemberName()\n\t\t\t\t\tmembers[i] = member{name, k}\n\t\t\t\t}\n\t\t\t\t// TODO: If AllowDuplicateNames is enabled, then sort according\n\t\t\t\t// to reflect.Value as well if the names are equal.\n\t\t\t\t// See internal/fmtsort.\n\t\t\t\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\t\t\t\tsort.Slice(members, func(i, j int) bool {\n\t\t\t\t\treturn lessUTF16(members[i].name, members[j].name)\n\t\t\t\t})\n\t\t\t\tfor _, member := range members {\n\t\t\t\t\tif err := enc.WriteToken(String(member.name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tv.Set(va.MapIndex(member.key.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif va.IsNil() {\n\t\t\t\tva.Set(reflect.MakeMap(t))\n\t\t\t}\n\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tuko := uo\n\t\t\tuko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tunmarshalKey := keyFncs.unmarshal\n\t\t\tunmarshalVal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tunmarshalKey, ok = uo.Unmarshalers.lookup(unmarshalKey, t.Key())\n\t\t\t\tunmarshalVal, _ = uo.Unmarshalers.lookup(unmarshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// Manually check for duplicate entries by virtue of whether the\n\t\t\t// unmarshaled key already exists in the destination Go map.\n\t\t\t// Consequently, syntactically different names (e.g., \"0\" and \"-0\")\n\t\t\t// will be rejected as duplicates since they semantically refer\n\t\t\t// to the same Go value. This is an unusual interaction\n\t\t\t// between syntax and semantics, but is more correct.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), dec.options.AllowInvalidUTF8) {\n\t\t\t\tdec.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\t// In the rare case where the map is not already empty,\n\t\t\t// then we need to manually track which keys we already saw\n\t\t\t// since existing presence alone is insufficient to indicate\n\t\t\t// whether the input had a duplicate name.\n\t\t\tvar seen reflect.Value\n\t\t\tif !dec.options.AllowDuplicateNames && va.Len() > 0 {\n\t\t\t\tseen = reflect.MakeMap(reflect.MapOf(k.Type(), emptyStructType))\n\t\t\t}\n\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\tk.Set(reflect.Zero(t.Key()))\n\t\t\t\tif err := unmarshalKey(uko, dec, k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif k.Kind() == reflect.Interface && !k.IsNil() && !k.Elem().Type().Comparable() {\n\t\t\t\t\terr := fmt.Errorf(\"invalid incomparable key type %v\", k.Elem().Type())\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\tif v2 := va.MapIndex(k.Value); v2.IsValid() {\n\t\t\t\t\tif !dec.options.AllowDuplicateNames && (!seen.IsValid() || seen.MapIndex(k.Value).IsValid()) {\n\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\tname := dec.previousBuffer()\n\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t\t\t}\n\t\t\t\t\tv.Set(v2)\n\t\t\t\t} else {\n\t\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\t}\n\t\t\t\terr := unmarshalVal(uo, dec, v)\n\t\t\t\tva.SetMapIndex(k.Value, v.Value)\n\t\t\t\tif seen.IsValid() {\n\t\t\t\t\tseen.SetMapIndex(k.Value, reflect.Zero(emptyStructType))\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\n// mapKeyWithUniqueRepresentation reports whether all possible values of k\n// marshal to a different JSON value, and whether all possible JSON values\n// that can unmarshal into k unmarshal to different Go values.\n// In other words, the representation must be a bijective.\nfunc mapKeyWithUniqueRepresentation(k reflect.Kind, allowInvalidUTF8 bool) bool {\n\tswitch k {\n\tcase reflect.Bool,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn true\n\tcase reflect.String:\n\t\t// For strings, we have to be careful since names with invalid UTF-8\n\t\t// maybe unescape to the same Go string value.\n\t\treturn !allowInvalidUTF8\n\tdefault:\n\t\t// Floating-point kinds are not listed above since NaNs\n\t\t// can appear multiple times and all serialize as \"NaN\".\n\t\treturn false\n\t}\n}\n\nfunc makeStructArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// and does the tracking locally with an efficient bit-set based on which\n\t// Go struct fields were seen.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tfields  structFields\n\t\terrInit *SemanticError\n\t)\n\tinit := func() {\n\t\tfields, errInit = makeStructFields(t)\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif errInit != nil {\n\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\terr.action = \"marshal\"\n\t\t\treturn &err\n\t\t}\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar seenIdxs uintSet\n\t\tprevIdx := -1\n\t\tenc.tokens.last.disableNamespace() // we manually ensure unique names below\n\t\tfor i := range fields.flattened {\n\t\t\tf := &fields.flattened[i]\n\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\tif len(f.index) > 1 {\n\t\t\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\t\t\tif !v.IsValid() {\n\t\t\t\t\tcontinue // implies a nil inlined field\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// OmitZero skips the field if the Go value is zero,\n\t\t\t// which we can determine up front without calling the marshaler.\n\t\t\tif f.omitzero && ((f.isZero == nil && v.IsZero()) || (f.isZero != nil && f.isZero(v))) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmarshal := f.fncs.marshal\n\t\t\tnonDefault := f.fncs.nonDefault\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshal, ok = mo.Marshalers.lookup(marshal, f.typ)\n\t\t\t\tnonDefault = nonDefault || ok\n\t\t\t}\n\n\t\t\t// OmitEmpty skips the field if the marshaled JSON value is empty,\n\t\t\t// which we can know up front if there are no custom marshalers,\n\t\t\t// otherwise we must marshal the value and unwrite it if empty.\n\t\t\tif f.omitempty && !nonDefault && f.isEmpty != nil && f.isEmpty(v) {\n\t\t\t\tcontinue // fast path for omitempty\n\t\t\t}\n\n\t\t\t// Write the object member name.\n\t\t\t//\n\t\t\t// The logic below is semantically equivalent to:\n\t\t\t//\tenc.WriteToken(String(f.name))\n\t\t\t// but specialized and simplified because:\n\t\t\t//\t1. The Encoder must be expecting an object name.\n\t\t\t//\t2. The object namespace is guaranteed to be disabled.\n\t\t\t//\t3. The object name is guaranteed to be valid and pre-escaped.\n\t\t\t//\t4. There is no need to flush the buffer (for unwrite purposes).\n\t\t\t//\t5. There is no possibility of an error occurring.\n\t\t\tif optimizeCommon {\n\t\t\t\t// Append any delimiters or optional whitespace.\n\t\t\t\tif enc.tokens.last.length() > 0 {\n\t\t\t\t\tenc.buf = append(enc.buf, ',')\n\t\t\t\t}\n\t\t\t\tif enc.options.multiline {\n\t\t\t\t\tenc.buf = enc.appendIndent(enc.buf, enc.tokens.needIndent('\"'))\n\t\t\t\t}\n\n\t\t\t\t// Append the token to the output and to the state machine.\n\t\t\t\tn0 := len(enc.buf) // offset before calling appendString\n\t\t\t\tif enc.options.EscapeRune == nil {\n\t\t\t\t\tenc.buf = append(enc.buf, f.quotedName...)\n\t\t\t\t} else {\n\t\t\t\t\tenc.buf, _ = appendString(enc.buf, f.name, false, enc.options.EscapeRune)\n\t\t\t\t}\n\t\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\t\tenc.names.replaceLastQuotedOffset(n0)\n\t\t\t\t}\n\t\t\t\tenc.tokens.last.increment()\n\t\t\t} else {\n\t\t\t\tif err := enc.WriteToken(String(f.name)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Write the object member value.\n\t\t\tmo2 := mo\n\t\t\tif f.string {\n\t\t\t\tmo2.StringifyNumbers = true\n\t\t\t}\n\t\t\tif f.format != \"\" {\n\t\t\t\tmo2.formatDepth = enc.tokens.depth()\n\t\t\t\tmo2.format = f.format\n\t\t\t}\n\t\t\tif err := marshal(mo2, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Try unwriting the member if empty (slow path for omitempty).\n\t\t\tif f.omitempty {\n\t\t\t\tvar prevName *string\n\t\t\t\tif prevIdx >= 0 {\n\t\t\t\t\tprevName = &fields.flattened[prevIdx].name\n\t\t\t\t}\n\t\t\t\tif enc.unwriteEmptyObjectMember(prevName) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remember the previous written object member.\n\t\t\t// The set of seen fields only needs to be updated to detect\n\t\t\t// duplicate names with those from the inlined fallback.\n\t\t\tif !enc.options.AllowDuplicateNames && fields.inlinedFallback != nil {\n\t\t\t\tseenIdxs.insert(uint(f.id))\n\t\t\t}\n\t\t\tprevIdx = f.id\n\t\t}\n\t\tif fields.inlinedFallback != nil && !(mo.DiscardUnknownMembers && fields.inlinedFallback.unknown) {\n\t\t\tvar insertUnquotedName func([]byte) bool\n\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\tinsertUnquotedName = func(name []byte) bool {\n\t\t\t\t\t// Check that the name from inlined fallback does not match\n\t\t\t\t\t// one of the previously marshaled names from known fields.\n\t\t\t\t\tif foldedFields := fields.byFoldedName[string(foldName(name))]; len(foldedFields) > 0 {\n\t\t\t\t\t\tif f := fields.byActualName[string(name)]; f != nil {\n\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, f := range foldedFields {\n\t\t\t\t\t\t\tif f.nocase {\n\t\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check that the name does not match any other name\n\t\t\t\t\t// previously marshaled from the inlined fallback.\n\t\t\t\t\treturn enc.namespaces.last().insertUnquoted(name)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := marshalInlinedFallbackAll(mo, enc, va, fields.inlinedFallback, insertUnquotedName); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif errInit != nil {\n\t\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\t\terr.action = \"unmarshal\"\n\t\t\t\treturn &err\n\t\t\t}\n\t\t\tvar seenIdxs uintSet\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\t// Process the object member name.\n\t\t\t\tvar flags valueFlags\n\t\t\t\tval, err := dec.readValue(&flags)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tf := fields.byActualName[string(name)]\n\t\t\t\tif f == nil {\n\t\t\t\t\tfor _, f2 := range fields.byFoldedName[string(foldName(name))] {\n\t\t\t\t\t\tif f2.nocase {\n\t\t\t\t\t\t\tf = f2\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif f == nil {\n\t\t\t\t\t\tif uo.RejectUnknownMembers && (fields.inlinedFallback == nil || fields.inlinedFallback.unknown) {\n\t\t\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: fmt.Errorf(\"unknown name %s\", val)}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif !dec.options.AllowDuplicateNames && !dec.namespaces.last().insertUnquoted(name) {\n\t\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif fields.inlinedFallback == nil {\n\t\t\t\t\t\t\t// Skip unknown value since we have no place to store it.\n\t\t\t\t\t\t\tif err := dec.SkipValue(); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Marshal into value capable of storing arbitrary object members.\n\t\t\t\t\t\t\tif err := unmarshalInlinedFallbackNext(uo, dec, va, fields.inlinedFallback, val, name); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !dec.options.AllowDuplicateNames && !seenIdxs.insert(uint(f.id)) {\n\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t}\n\n\t\t\t\t// Process the object member value.\n\t\t\t\tunmarshal := f.fncs.unmarshal\n\t\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, f.typ)\n\t\t\t\t}\n\t\t\t\tuo2 := uo\n\t\t\t\tif f.string {\n\t\t\t\t\tuo2.StringifyNumbers = true\n\t\t\t\t}\n\t\t\t\tif f.format != \"\" {\n\t\t\t\t\tuo2.formatDepth = dec.tokens.depth()\n\t\t\t\t\tuo2.format = f.format\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\t\tif len(f.index) > 1 {\n\t\t\t\t\tv = v.fieldByIndex(f.index[1:], true)\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo2, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc (va addressableValue) fieldByIndex(index []int, mayAlloc bool) addressableValue {\n\tfor _, i := range index {\n\t\tva = va.indirect(mayAlloc)\n\t\tif !va.IsValid() {\n\t\t\treturn va\n\t\t}\n\t\tva = addressableValue{va.Field(i)} // addressable if struct value is addressable\n\t}\n\treturn va\n}\n\nfunc (va addressableValue) indirect(mayAlloc bool) addressableValue {\n\tif va.Kind() == reflect.Pointer {\n\t\tif va.IsNil() {\n\t\t\tif !mayAlloc {\n\t\t\t\treturn addressableValue{}\n\t\t\t}\n\t\t\tva.Set(reflect.New(va.Type().Elem()))\n\t\t}\n\t\tva = addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t}\n\treturn va\n}\n\nfunc makeSliceArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\temptySlice := reflect.MakeSlice(t, 0, 0)\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tmustZero := true // we do not know the cleanliness of unused capacity\n\t\t\tcap := va.Cap()\n\t\t\tif cap > 0 {\n\t\t\t\tva.SetLen(cap)\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i == cap {\n\t\t\t\t\t// TODO(https://go.dev/issue/48000): Use reflect.Value.Append.\n\t\t\t\t\tva.Set(reflect.Append(va.Value, reflect.Zero(t.Elem())))\n\t\t\t\t\tcap = va.Cap()\n\t\t\t\t\tva.SetLen(cap)\n\t\t\t\t\tmustZero = false // append guarantees that unused capacity is zero-initialized\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\t\ti++\n\t\t\t\tif mustZero {\n\t\t\t\t\tv.Set(reflect.Zero(t.Elem()))\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\tva.SetLen(i)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif i == 0 {\n\t\t\t\tva.Set(emptySlice)\n\t\t\t} else {\n\t\t\t\tva.SetLen(i)\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeArrayArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tn := t.Len()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i >= n {\n\t\t\t\t\terr := errors.New(\"too many array elements\")\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif i < n {\n\t\t\t\terr := errors.New(\"too few array elements\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makePointerArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\t// NOTE: MarshalOptions.format is forwarded to underlying marshal.\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tonce.Do(init)\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t// NOTE: UnmarshalOptions.format is forwarded to underlying unmarshal.\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tonce.Do(init)\n\t\tunmarshal := valFncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t}\n\t\tif va.IsNil() {\n\t\t\tva.Set(reflect.New(t.Elem()))\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn unmarshal(uo, dec, v)\n\t}\n\treturn &fncs\n}\n\nfunc makeInterfaceArshaler(t reflect.Type) *arshaler {\n\t// NOTE: Values retrieved from an interface are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the interface afterwards.\n\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tv := newAddressableValue(va.Elem().Type())\n\t\tv.Set(va.Elem())\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\t// Optimize for the any type if there are no special options.\n\t\tif optimizeCommon && t == anyType && !mo.StringifyNumbers && mo.format == \"\" && (mo.Marshalers == nil || !mo.Marshalers.fromAny) {\n\t\t\treturn marshalValueAny(mo, enc, va.Elem().Interface())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tvar v addressableValue\n\t\tif va.IsNil() {\n\t\t\t// Optimize for the any type if there are no special options.\n\t\t\t// We do not care about stringified numbers since JSON strings\n\t\t\t// are always unmarshaled into an any value as Go strings.\n\t\t\t// Duplicate name check must be enforced since unmarshalValueAny\n\t\t\t// does not implement merge semantics.\n\t\t\tif optimizeCommon && t == anyType && uo.format == \"\" && (uo.Unmarshalers == nil || !uo.Unmarshalers.fromAny) && !dec.options.AllowDuplicateNames {\n\t\t\t\tv, err := unmarshalValueAny(uo, dec)\n\t\t\t\t// We must check for nil interface values up front.\n\t\t\t\t// See https://go.dev/issue/52310.\n\t\t\t\tif v != nil {\n\t\t\t\t\tva.Set(reflect.ValueOf(v))\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tk := dec.PeekKind()\n\t\t\tif !isAnyType(t) {\n\t\t\t\terr := errors.New(\"cannot derive concrete type for non-empty interface\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tswitch k {\n\t\t\tcase 'f', 't':\n\t\t\t\tv = newAddressableValue(boolType)\n\t\t\tcase '\"':\n\t\t\t\tv = newAddressableValue(stringType)\n\t\t\tcase '0':\n\t\t\t\tv = newAddressableValue(float64Type)\n\t\t\tcase '{':\n\t\t\t\tv = newAddressableValue(mapStringAnyType)\n\t\t\tcase '[':\n\t\t\t\tv = newAddressableValue(sliceAnyType)\n\t\t\tdefault:\n\t\t\t\t// If k is invalid (e.g., due to an I/O or syntax error), then\n\t\t\t\t// that will be cached by PeekKind and returned by ReadValue.\n\t\t\t\t// If k is '}' or ']', then ReadValue must error since\n\t\t\t\t// those are invalid kinds at the start of a JSON value.\n\t\t\t\t_, err := dec.ReadValue()\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Shallow copy the existing value to keep it addressable.\n\t\t\t// Any mutations at the top-level of the value will be observable\n\t\t\t// since we always store this value back into the interface value.\n\t\t\tv = newAddressableValue(va.Elem().Type())\n\t\t\tv.Set(va.Elem())\n\t\t}\n\t\tunmarshal := lookupArshaler(v.Type()).unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, v.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, v)\n\t\tva.Set(v.Value)\n\t\treturn err\n\t}\n\treturn &fncs\n}\n\n// isAnyType reports wether t is equivalent to the any interface type.\nfunc isAnyType(t reflect.Type) bool {\n\t// This is forward compatible if the Go language permits type sets within\n\t// ordinary interfaces where an interface with zero methods does not\n\t// necessarily mean it can hold every possible Go type.\n\t// See https://go.dev/issue/45346.\n\treturn t == anyType || anyType.Implements(t)\n}\n\nfunc makeInvalidArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"marshal\", GoType: t}\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc newInvalidFormatError(action string, t reflect.Type, format string) error {\n\terr := fmt.Errorf(\"invalid format flag: %q\", format)\n\treturn &SemanticError{action: action, GoType: t, Err: err}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_funcs.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// SkipFunc may be returned by MarshalFuncV2 and UnmarshalFuncV2 functions.\n//\n// Any function that returns SkipFunc must not cause observable side effects\n// on the provided Encoder or Decoder. For example, it is permissible to call\n// Decoder.PeekKind, but not permissible to call Decoder.ReadToken or\n// Encoder.WriteToken since such methods mutate the state.\nconst SkipFunc = jsonError(\"skip function\")\n\n// Marshalers is a list of functions that may override the marshal behavior\n// of specific types. Populate MarshalOptions.Marshalers to use it.\n// A nil *Marshalers is equivalent to an empty list.\ntype Marshalers = typedMarshalers\n\n// NewMarshalers constructs a flattened list of marshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default marshaling behavior is used.\n//\n// For example:\n//\n//\tm1 := NewMarshalers(f1, f2)\n//\tm2 := NewMarshalers(f0, m1, f3)     // equivalent to m3\n//\tm3 := NewMarshalers(f0, f1, f2, f3) // equivalent to m2\nfunc NewMarshalers(ms ...*Marshalers) *Marshalers {\n\treturn newMarshalers(ms...)\n}\n\n// Unmarshalers is a list of functions that may override the unmarshal behavior\n// of specific types. Populate UnmarshalOptions.Unmarshalers to use it.\n// A nil *Unmarshalers is equivalent to an empty list.\ntype Unmarshalers = typedUnmarshalers\n\n// NewUnmarshalers constructs a flattened list of unmarshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default unmarshaling behavior is used.\n//\n// For example:\n//\n//\tu1 := NewUnmarshalers(f1, f2)\n//\tu2 := NewUnmarshalers(f0, u1, f3)     // equivalent to u3\n//\tu3 := NewUnmarshalers(f0, f1, f2, f3) // equivalent to u2\nfunc NewUnmarshalers(us ...*Unmarshalers) *Unmarshalers {\n\treturn newUnmarshalers(us...)\n}\n\ntype typedMarshalers = typedArshalers[MarshalOptions, Encoder]\ntype typedUnmarshalers = typedArshalers[UnmarshalOptions, Decoder]\ntype typedArshalers[Options, Coder any] struct {\n\tnonComparable\n\n\tfncVals  []typedArshaler[Options, Coder]\n\tfncCache sync.Map // map[reflect.Type]arshaler\n\n\t// fromAny reports whether any of Go types used to represent arbitrary JSON\n\t// (i.e., any, bool, string, float64, map[string]any, or []any) matches\n\t// any of the provided type-specific arshalers.\n\t//\n\t// This bit of information is needed in arshal_default.go to determine\n\t// whether to use the specialized logic in arshal_any.go to handle\n\t// the any interface type. The logic in arshal_any.go does not support\n\t// type-specific arshal functions, so we must avoid using that logic\n\t// if this is true.\n\tfromAny bool\n}\ntype typedMarshaler = typedArshaler[MarshalOptions, Encoder]\ntype typedUnmarshaler = typedArshaler[UnmarshalOptions, Decoder]\ntype typedArshaler[Options, Coder any] struct {\n\ttyp     reflect.Type\n\tfnc     func(Options, *Coder, addressableValue) error\n\tmaySkip bool\n}\n\nfunc newMarshalers(ms ...*Marshalers) *Marshalers       { return newTypedArshalers(ms...) }\nfunc newUnmarshalers(us ...*Unmarshalers) *Unmarshalers { return newTypedArshalers(us...) }\nfunc newTypedArshalers[Options, Coder any](as ...*typedArshalers[Options, Coder]) *typedArshalers[Options, Coder] {\n\tvar a typedArshalers[Options, Coder]\n\tfor _, a2 := range as {\n\t\tif a2 != nil {\n\t\t\ta.fncVals = append(a.fncVals, a2.fncVals...)\n\t\t\ta.fromAny = a.fromAny || a2.fromAny\n\t\t}\n\t}\n\tif len(a.fncVals) == 0 {\n\t\treturn nil\n\t}\n\treturn &a\n}\n\nfunc (a *typedArshalers[Options, Coder]) lookup(fnc func(Options, *Coder, addressableValue) error, t reflect.Type) (func(Options, *Coder, addressableValue) error, bool) {\n\tif a == nil {\n\t\treturn fnc, false\n\t}\n\tif v, ok := a.fncCache.Load(t); ok {\n\t\tif v == nil {\n\t\t\treturn fnc, false\n\t\t}\n\t\treturn v.(func(Options, *Coder, addressableValue) error), true\n\t}\n\n\t// Collect a list of arshalers that can be called for this type.\n\t// This list may be longer than 1 since some arshalers can be skipped.\n\tvar fncs []func(Options, *Coder, addressableValue) error\n\tfor _, fncVal := range a.fncVals {\n\t\tif !castableTo(t, fncVal.typ) {\n\t\t\tcontinue\n\t\t}\n\t\tfncs = append(fncs, fncVal.fnc)\n\t\tif !fncVal.maySkip {\n\t\t\tbreak // subsequent arshalers will never be called\n\t\t}\n\t}\n\n\tif len(fncs) == 0 {\n\t\ta.fncCache.Store(t, nil) // nil to indicate that no funcs found\n\t\treturn fnc, false\n\t}\n\n\t// Construct an arshaler that may call every applicable arshaler.\n\tfncDefault := fnc\n\tfnc = func(o Options, c *Coder, v addressableValue) error {\n\t\tfor _, fnc := range fncs {\n\t\t\tif err := fnc(o, c, v); err != SkipFunc {\n\t\t\t\treturn err // may be nil or non-nil\n\t\t\t}\n\t\t}\n\t\treturn fncDefault(o, c, v)\n\t}\n\n\t// Use the first stored so duplicate work can be garbage collected.\n\tv, _ := a.fncCache.LoadOrStore(t, fnc)\n\treturn v.(func(Options, *Coder, addressableValue) error), true\n}\n\n// MarshalFuncV1 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value.\n// The value of T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc MarshalFuncV1[T any](fn func(T) ([]byte, error)) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tval, err := fn(va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal function of type func(T) ([]byte, error)\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// MarshalFuncV2 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value by calling write methods\n// on the provided encoder. It may return SkipFunc such that marshaling can\n// move on to the next marshal function. However, no mutable method calls may\n// be called on the encoder if SkipFunc is returned.\n// The pointer to Encoder and the value of T must not be retained\n// outside the function call.\nfunc MarshalFuncV2[T any](fn func(MarshalOptions, *Encoder, T) error) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := fn(mo, enc, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not write any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV1 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value.\n// The input []byte must not be mutated.\n// The input []byte and value T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc UnmarshalFuncV1[T any](fn func([]byte, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\terr = fn(val, va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal function of type func([]byte, T) error\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV2 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value by calling read methods\n// on the provided decoder. It may return SkipFunc such that unmarshaling can\n// move on to the next unmarshal function. However, no mutable method calls may\n// be called on the decoder if SkipFunc is returned.\n// The pointer to Decoder and the value of T must not be retained\n// outside the function call.\nfunc UnmarshalFuncV2[T any](fn func(UnmarshalOptions, *Decoder, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := fn(uo, dec, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not read any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// assertCastableTo asserts that \"to\" is a valid type to be casted to.\n// These are the Go types that type-specific arshalers may operate upon.\n//\n// Let AllTypes be the universal set of all possible Go types.\n// This function generally asserts that:\n//\n//\tlen([from for from in AllTypes if castableTo(from, to)]) > 0\n//\n// otherwise it panics.\n//\n// As a special-case if marshal is false, then we forbid any non-pointer or\n// non-interface type since it is almost always a bug trying to unmarshal\n// into something where the end-user caller did not pass in an addressable value\n// since they will not observe the mutations.\nfunc assertCastableTo(to reflect.Type, marshal bool) {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn\n\tcase reflect.Pointer:\n\t\t// Only allow unnamed pointers to be consistent with the fact that\n\t\t// taking the address of a value produces an unnamed pointer type.\n\t\tif to.Name() == \"\" {\n\t\t\treturn\n\t\t}\n\tdefault:\n\t\t// Technically, non-pointer types are permissible for unmarshal.\n\t\t// However, they are often a bug since the receiver would be immutable.\n\t\t// Thus, only allow them for marshaling.\n\t\tif marshal {\n\t\t\treturn\n\t\t}\n\t}\n\tif marshal {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type, an unnamed pointer type, or a non-pointer type\", to))\n\t} else {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type or an unnamed pointer type\", to))\n\t}\n}\n\n// castableTo checks whether values of type \"from\" can be casted to type \"to\".\n// Nil pointer or interface \"from\" values are never considered castable.\n//\n// This function must be kept in sync with addressableValue.castTo.\nfunc castableTo(from, to reflect.Type) bool {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\t// TODO: This breaks when ordinary interfaces can have type sets\n\t\t// since interfaces now exist where only the value form of a type (T)\n\t\t// implements the interface, but not the pointer variant (*T).\n\t\t// See https://go.dev/issue/45346.\n\t\treturn reflect.PointerTo(from).Implements(to)\n\tcase reflect.Pointer:\n\t\t// Common case for unmarshaling.\n\t\t// From must be a concrete or interface type.\n\t\treturn reflect.PointerTo(from) == to\n\tdefault:\n\t\t// Common case for marshaling.\n\t\t// From must be a concrete type.\n\t\treturn from == to\n\t}\n}\n\n// castTo casts va to the specified type.\n// If the type is an interface, then the underlying type will always\n// be a non-nil pointer to a concrete type.\n//\n// Requirement: castableTo(va.Type(), to) must hold.\nfunc (va addressableValue) castTo(to reflect.Type) reflect.Value {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn va.Addr().Convert(to)\n\tcase reflect.Pointer:\n\t\treturn va.Addr()\n\tdefault:\n\t\treturn va.Value\n\t}\n}\n\n// castableToFromAny reports whether \"to\" can be casted to from any\n// of the dynamic types used to represent arbitrary JSON.\nfunc castableToFromAny(to reflect.Type) bool {\n\tfor _, from := range []reflect.Type{anyType, boolType, stringType, float64Type, mapStringAnyType, sliceAnyType} {\n\t\tif castableTo(from, to) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc wrapSkipFunc(err error, what string) error {\n\tif err == SkipFunc {\n\t\treturn errors.New(what + \" cannot be skipped\")\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_inlined.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// This package supports \"inlining\" a Go struct field, where the contents\n// of the serialized field (which must be a JSON object) are treated as if\n// they are part of the parent Go struct (which represents a JSON object).\n//\n// Generally, inlined fields are of a Go struct type, where the fields of the\n// nested struct are virtually hoisted up to the parent struct using rules\n// similar to how Go embedding works (but operating within the JSON namespace).\n//\n// However, inlined fields may also be of a Go map type with a string key\n// or a RawValue. Such inlined fields are called \"fallback\" fields since they\n// represent any arbitrary JSON object member. Explicitly named fields take\n// precedence over the inlined fallback. Only one inlined fallback is allowed.\n\nvar rawValueType = reflect.TypeOf((*RawValue)(nil)).Elem()\n\n// marshalInlinedFallbackAll marshals all the members in an inlined fallback.\nfunc marshalInlinedFallbackAll(mo MarshalOptions, enc *Encoder, va addressableValue, f *structField, insertUnquotedName func([]byte) bool) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\tif !v.IsValid() {\n\t\t\treturn nil // implies a nil inlined field\n\t\t}\n\t}\n\tv = v.indirect(false)\n\tif !v.IsValid() {\n\t\treturn nil\n\t}\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Interface().(RawValue)\n\t\tif len(b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\treturn nil\n\t\t}\n\n\t\tdec := getBufferedDecoder(b, DecodeOptions{AllowDuplicateNames: true, AllowInvalidUTF8: true})\n\t\tdefer putBufferedDecoder(dec)\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif tok.Kind() != '{' {\n\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: tok.Kind(), GoType: rawValueType, Err: err}\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\t// Parse the JSON object name.\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Parse the JSON object value.\n\t\t\tval, err = dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif err := dec.checkEOF(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\treturn nil\n\t} else {\n\t\tm := v // must be a map[string]V\n\t\tn := m.Len()\n\t\tif n == 0 {\n\t\t\treturn nil\n\t\t}\n\t\tmk := newAddressableValue(stringType)\n\t\tmv := newAddressableValue(m.Type().Elem())\n\t\tmarshalKey := func(mk addressableValue) error {\n\t\t\tb, err := appendString(enc.UnusedBuffer(), mk.String(), !enc.options.AllowInvalidUTF8, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tisVerbatim := bytes.IndexByte(b, '\\\\') < 0\n\t\t\t\tname := unescapeStringMayCopy(b, isVerbatim)\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tmarshalVal := f.fncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, mv.Type())\n\t\t}\n\t\tif !mo.Deterministic || n <= 1 {\n\t\t\tfor iter := m.MapRange(); iter.Next(); {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tmv.Set(iter.Value())\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnames := getStrings(n)\n\t\t\tfor i, iter := 0, m.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\t(*names)[i] = mk.String()\n\t\t\t}\n\t\t\tnames.Sort()\n\t\t\tfor _, name := range *names {\n\t\t\t\tmk.SetString(name)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// TODO(https://go.dev/issue/57061): Use mv.SetMapIndexOf.\n\t\t\t\tmv.Set(m.MapIndex(mk.Value))\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tputStrings(names)\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// unmarshalInlinedFallbackNext unmarshals only the next member in an inlined fallback.\nfunc unmarshalInlinedFallbackNext(uo UnmarshalOptions, dec *Decoder, va addressableValue, f *structField, quotedName, unquotedName []byte) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], true)\n\t}\n\tv = v.indirect(true)\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Addr().Interface().(*RawValue)\n\t\tif len(*b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\t*b = append(*b, '{')\n\t\t} else {\n\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\tif hasSuffixByte(*b, '}') {\n\t\t\t\t// TODO: When merging into an object for the first time,\n\t\t\t\t// should we verify that it is valid?\n\t\t\t\t*b = trimSuffixByte(*b, '}')\n\t\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\t\tif !hasSuffixByte(*b, ',') && !hasSuffixByte(*b, '{') {\n\t\t\t\t\t*b = append(*b, ',')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t}\n\t\t*b = append(*b, quotedName...)\n\t\t*b = append(*b, ':')\n\t\trawValue, err := dec.ReadValue()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*b = append(*b, rawValue...)\n\t\t*b = append(*b, '}')\n\t\treturn nil\n\t} else {\n\t\tname := string(unquotedName) // TODO: Intern this?\n\n\t\tm := v // must be a map[string]V\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(m.Type()))\n\t\t}\n\t\tmk := reflect.ValueOf(name)\n\t\tmv := newAddressableValue(v.Type().Elem()) // TODO: Cache across calls?\n\t\tif v2 := m.MapIndex(mk); v2.IsValid() {\n\t\t\tmv.Set(v2)\n\t\t}\n\n\t\tunmarshal := f.fncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, mv.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, mv)\n\t\tm.SetMapIndex(mk, mv.Value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_methods.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// Interfaces for custom serialization.\nvar (\n\tjsonMarshalerV1Type   = reflect.TypeOf((*MarshalerV1)(nil)).Elem()\n\tjsonMarshalerV2Type   = reflect.TypeOf((*MarshalerV2)(nil)).Elem()\n\tjsonUnmarshalerV1Type = reflect.TypeOf((*UnmarshalerV1)(nil)).Elem()\n\tjsonUnmarshalerV2Type = reflect.TypeOf((*UnmarshalerV2)(nil)).Elem()\n\ttextMarshalerType     = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\ttextUnmarshalerType   = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n)\n\n// MarshalerV1 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 unless the implementation\n// is trying to avoid a hard dependency on the \"jsontext\" package.\n//\n// It is recommended that implementations return a buffer that is safe\n// for the caller to retain and potentially mutate.\ntype MarshalerV1 interface {\n\tMarshalJSON() ([]byte, error)\n}\n\n// MarshalerV2 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 instead of MarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both MarshalerV1 and MarshalerV2,\n// then MarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default marshal options.\n//\n// The implementation must write only one JSON value to the Encoder and\n// must not retain the pointer to Encoder.\ntype MarshalerV2 interface {\n\tMarshalNextJSON(MarshalOptions, *Encoder) error\n\n\t// TODO: Should users call the MarshalOptions.MarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\n// UnmarshalerV1 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 unless\n// the implementation is trying to avoid a hard dependency on this package.\n//\n// The input can be assumed to be a valid encoding of a JSON value\n// if called from unmarshal functionality in this package.\n// UnmarshalJSON must copy the JSON data if it is retained after returning.\n// It is recommended that UnmarshalJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain or mutate the input []byte.\ntype UnmarshalerV1 interface {\n\tUnmarshalJSON([]byte) error\n}\n\n// UnmarshalerV2 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 instead of UnmarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both UnmarshalerV1 and UnmarshalerV2,\n// then UnmarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default unmarshal options.\n//\n// The implementation must read only one JSON value from the Decoder.\n// It is recommended that UnmarshalNextJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain the pointer to Decoder.\ntype UnmarshalerV2 interface {\n\tUnmarshalNextJSON(UnmarshalOptions, *Decoder) error\n\n\t// TODO: Should users call the UnmarshalOptions.UnmarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\nfunc makeMethodArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Avoid injecting method arshaler on the pointer or interface version\n\t// to avoid ever calling the method on a nil pointer or interface receiver.\n\t// Let it be injected on the value receiver (which is always addressable).\n\tif t.Kind() == reflect.Pointer || t.Kind() == reflect.Interface {\n\t\treturn fncs\n\t}\n\n\t// Handle custom marshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType); which {\n\tcase jsonMarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(MarshalerV2).MarshalNextJSON(mo, enc)\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonMarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(MarshalerV1)\n\t\t\tval, err := marshaler.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textMarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextMarshaler)\n\t\t\ts, err := marshaler.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tval := enc.UnusedBuffer()\n\t\t\tval, err = appendString(val, string(s), true, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping syntactic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Handle custom unmarshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType); which {\n\tcase jsonUnmarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(UnmarshalerV2).UnmarshalNextJSON(uo, dec)\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonUnmarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(UnmarshalerV1)\n\t\t\tif err := unmarshaler.UnmarshalJSON(val); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textUnmarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tif val.Kind() != '\"' {\n\t\t\t\terr = errors.New(\"JSON value must be string type\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\ts := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextUnmarshaler)\n\t\t\tif err := unmarshaler.UnmarshalText(s); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fncs\n}\n\n// implementsWhich is like t.Implements(ifaceType) for a list of interfaces,\n// but checks whether either t or reflect.PointerTo(t) implements the interface.\n// It returns the first interface type that matches and whether a value of t\n// needs to be addressed first before it implements the interface.\nfunc implementsWhich(t reflect.Type, ifaceTypes ...reflect.Type) (which reflect.Type, needAddr bool) {\n\tfor _, ifaceType := range ifaceTypes {\n\t\tswitch {\n\t\tcase t.Implements(ifaceType):\n\t\t\treturn ifaceType, false\n\t\tcase reflect.PointerTo(t).Implements(ifaceType):\n\t\t\treturn ifaceType, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// addrWhen returns va.Addr if addr is specified, otherwise it returns itself.\nfunc (va addressableValue) addrWhen(addr bool) reflect.Value {\n\tif addr {\n\t\treturn va.Addr()\n\t}\n\treturn va.Value\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_time.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\ttimeDurationType = reflect.TypeOf((*time.Duration)(nil)).Elem()\n\ttimeTimeType     = reflect.TypeOf((*time.Time)(nil)).Elem()\n)\n\nfunc makeTimeArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Ideally, time types would implement MarshalerV2 and UnmarshalerV2,\n\t// but that would incur a dependency on package json from package time.\n\t// Given how widely used time is, it is more acceptable that we incur a\n\t// dependency on time from json.\n\t//\n\t// Injecting the arshaling functionality like this will not be identical\n\t// to actually declaring methods on the time types since embedding of the\n\t// time types will not be able to forward this functionality.\n\tswitch t {\n\tcase timeDurationType:\n\t\tfncs.nonDefault = true\n\t\tmarshalNanos := fncs.marshal\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tif mo.format == \"nanos\" {\n\t\t\t\t\tmo.format = \"\"\n\t\t\t\t\treturn marshalNanos(mo, enc, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttd := va.Interface().(time.Duration)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, td.String()...) // never contains special characters\n\t\t\tb = append(b, '\"')\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tunmarshalNanos := fncs.unmarshal\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\t// TODO: Should there be a flag that specifies that we can unmarshal\n\t\t\t// from either form since there would be no ambiguity?\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tif uo.format == \"nanos\" {\n\t\t\t\t\tuo.format = \"\"\n\t\t\t\t\treturn unmarshalNanos(uo, dec, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttd := va.Addr().Interface().(*time.Duration)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch k := val.Kind(); k {\n\t\t\tcase 'n':\n\t\t\t\t*td = time.Duration(0)\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttd2, err := time.ParseDuration(string(val))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*td = td2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\tcase timeTimeType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339Nano\n\t\t\tisRFC3339 := true\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(mo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttt := va.Interface().(time.Time)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = tt.AppendFormat(b, format)\n\t\t\tb = append(b, '\"')\n\t\t\tif isRFC3339 {\n\t\t\t\t// Not all Go timestamps can be represented as valid RFC 3339.\n\t\t\t\t// Explicitly check for these edge cases.\n\t\t\t\t// See https://go.dev/issue/4556 and https://go.dev/issue/54580.\n\t\t\t\tvar err error\n\t\t\t\tswitch b := b[len(`\"`) : len(b)-len(`\"`)]; {\n\t\t\t\tcase b[len(\"9999\")] != '-': // year must be exactly 4 digits wide\n\t\t\t\t\terr = errors.New(\"year outside of range [0,9999]\")\n\t\t\t\tcase b[len(b)-1] != 'Z':\n\t\t\t\t\tc := b[len(b)-len(\"Z07:00\")]\n\t\t\t\t\tif ('0' <= c && c <= '9') || parseDec2(b[len(b)-len(\"07:00\"):]) >= 24 {\n\t\t\t\t\t\terr = errors.New(\"timezone hour outside of range [0,23]\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\treturn enc.WriteValue(b) // RFC 3339 never needs JSON escaping\n\t\t\t}\n\t\t\t// The format may contain special characters that need escaping.\n\t\t\t// Verify that the result is a valid JSON string (common case),\n\t\t\t// otherwise escape the string correctly (slower case).\n\t\t\tif consumeSimpleString(b) != len(b) {\n\t\t\t\tb, _ = appendString(nil, string(b[len(`\"`):len(b)-len(`\"`)]), true, nil)\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339\n\t\t\tisRFC3339 := true\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(uo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttt := va.Addr().Interface().(*time.Time)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tk := val.Kind()\n\t\t\tswitch k {\n\t\t\tcase 'n':\n\t\t\t\t*tt = time.Time{}\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttt2, err := time.Parse(format, string(val))\n\t\t\t\tif isRFC3339 && err == nil {\n\t\t\t\t\t// TODO(https://go.dev/issue/54580): RFC 3339 specifies\n\t\t\t\t\t// the exact grammar of a valid timestamp. However,\n\t\t\t\t\t// the parsing functionality in \"time\" is too loose and\n\t\t\t\t\t// incorrectly accepts invalid timestamps as valid.\n\t\t\t\t\t// Remove these manual checks when \"time\" checks it for us.\n\t\t\t\t\tnewParseError := func(layout, value, layoutElem, valueElem, message string) error {\n\t\t\t\t\t\treturn &time.ParseError{Layout: layout, Value: value, LayoutElem: layoutElem, ValueElem: valueElem, Message: message}\n\t\t\t\t\t}\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase val[len(\"2006-01-02T\")+1] == ':': // hour must be two digits\n\t\t\t\t\t\terr = newParseError(format, string(val), \"15\", string(val[len(\"2006-01-02T\"):][:1]), \"\")\n\t\t\t\t\tcase val[len(\"2006-01-02T15:04:05\")] == ',': // sub-second separator must be a period\n\t\t\t\t\t\terr = newParseError(format, string(val), \".\", \",\", \"\")\n\t\t\t\t\tcase val[len(val)-1] != 'Z':\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"07:00\"):]) >= 24: // timezone hour must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone hour out of range\")\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"00\"):]) >= 60: // timezone minute must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone minute out of range\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*tt = tt2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\t}\n\treturn fncs\n}\n\nfunc checkTimeFormat(format string) (string, bool, error) {\n\t// We assume that an exported constant in the time package will\n\t// always start with an uppercase ASCII letter.\n\tif len(format) > 0 && 'A' <= format[0] && format[0] <= 'Z' {\n\t\tswitch format {\n\t\tcase \"ANSIC\":\n\t\t\treturn time.ANSIC, false, nil\n\t\tcase \"UnixDate\":\n\t\t\treturn time.UnixDate, false, nil\n\t\tcase \"RubyDate\":\n\t\t\treturn time.RubyDate, false, nil\n\t\tcase \"RFC822\":\n\t\t\treturn time.RFC822, false, nil\n\t\tcase \"RFC822Z\":\n\t\t\treturn time.RFC822Z, false, nil\n\t\tcase \"RFC850\":\n\t\t\treturn time.RFC850, false, nil\n\t\tcase \"RFC1123\":\n\t\t\treturn time.RFC1123, false, nil\n\t\tcase \"RFC1123Z\":\n\t\t\treturn time.RFC1123Z, false, nil\n\t\tcase \"RFC3339\":\n\t\t\treturn time.RFC3339, true, nil\n\t\tcase \"RFC3339Nano\":\n\t\t\treturn time.RFC3339Nano, true, nil\n\t\tcase \"Kitchen\":\n\t\t\treturn time.Kitchen, false, nil\n\t\tcase \"Stamp\":\n\t\t\treturn time.Stamp, false, nil\n\t\tcase \"StampMilli\":\n\t\t\treturn time.StampMilli, false, nil\n\t\tcase \"StampMicro\":\n\t\t\treturn time.StampMicro, false, nil\n\t\tcase \"StampNano\":\n\t\t\treturn time.StampNano, false, nil\n\t\tdefault:\n\t\t\t// Reject any format that is an exported Go identifier in case\n\t\t\t// new format constants are added to the time package.\n\t\t\tif strings.TrimFunc(format, isLetterOrDigit) == \"\" {\n\t\t\t\treturn \"\", false, fmt.Errorf(\"undefined format layout: %v\", format)\n\t\t\t}\n\t\t}\n\t}\n\treturn format, false, nil\n}\n\n// parseDec2 parses b as an unsigned, base-10, 2-digit number.\n// It panics if len(b) < 2. The result is undefined if digits are not base-10.\nfunc parseDec2(b []byte) byte {\n\treturn 10*(b[0]-'0') + (b[1] - '0')\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/decode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: The logic for decoding is complicated by the fact that reading from\n// an io.Reader into a temporary buffer means that the buffer may contain a\n// truncated portion of some valid input, requiring the need to fetch more data.\n//\n// This file is structured in the following way:\n//\n//   - consumeXXX functions parse an exact JSON token from a []byte.\n//     If the buffer appears truncated, then it returns io.ErrUnexpectedEOF.\n//     The consumeSimpleXXX functions are so named because they only handle\n//     a subset of the grammar for the JSON token being parsed.\n//     They do not handle the full grammar to keep these functions inlineable.\n//\n//   - Decoder.consumeXXX methods parse the next JSON token from Decoder.buf,\n//     automatically fetching more input if necessary. These methods take\n//     a position relative to the start of Decoder.buf as an argument and\n//     return the end of the consumed JSON token as a position,\n//     also relative to the start of Decoder.buf.\n//\n//   - In the event of an I/O errors or state machine violations,\n//     the implementation avoids mutating the state of Decoder\n//     (aside from the book-keeping needed to implement Decoder.fetch).\n//     For this reason, only Decoder.ReadToken and Decoder.ReadValue are\n//     responsible for updated Decoder.prevStart and Decoder.prevEnd.\n//\n//   - For performance, much of the implementation uses the pattern of calling\n//     the inlineable consumeXXX functions first, and if more work is necessary,\n//     then it calls the slower Decoder.consumeXXX methods.\n//     TODO: Revisit this pattern if the Go compiler provides finer control\n//     over exactly which calls are inlined or not.\n\n// DecodeOptions configures how JSON decoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype DecodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// computational and performance benefits, but breaks compliance with\n\t// RFC 7493, section 2.3. The input will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the decoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n}\n\n// Decoder is a streaming decoder for raw JSON tokens and values.\n// It is used to read a stream of top-level JSON values,\n// each separated by optional whitespace characters.\n//\n// ReadToken and ReadValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be parsed with the following calls (ignoring errors for brevity):\n//\n//\td.ReadToken() // {\n//\td.ReadToken() // \"name\"\n//\td.ReadToken() // \"value\"\n//\td.ReadValue() // \"array\"\n//\td.ReadToken() // [\n//\td.ReadToken() // null\n//\td.ReadToken() // false\n//\td.ReadValue() // true\n//\td.ReadToken() // 3.14159\n//\td.ReadToken() // ]\n//\td.ReadValue() // \"object\"\n//\td.ReadValue() // {\"k\":\"v\"}\n//\td.ReadToken() // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call ReadToken to obtain a\n// string token for object names.\ntype Decoder struct {\n\tstate\n\tdecodeBuffer\n\toptions DecodeOptions\n\n\tstringCache *stringCache // only used when unmarshaling\n}\n\n// decodeBuffer is a buffer split into 4 segments:\n//\n//   - buf[0:prevEnd]         // already read portion of the buffer\n//   - buf[prevStart:prevEnd] // previously read value\n//   - buf[prevEnd:len(buf)]  // unread portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\n//\n// Invariants:\n//\n//\t0 ≤ prevStart ≤ prevEnd ≤ len(buf) ≤ cap(buf)\ntype decodeBuffer struct {\n\tpeekPos int   // non-zero if valid offset into buf for start of next token\n\tpeekErr error // implies peekPos is -1\n\n\tbuf       []byte // may alias rd if it is a bytes.Buffer\n\tprevStart int\n\tprevEnd   int\n\n\t// baseOffset is added to prevStart and prevEnd to obtain\n\t// the absolute offset relative to the start of io.Reader stream.\n\tbaseOffset int64\n\n\trd io.Reader\n}\n\n// NewDecoder constructs a new streaming decoder reading from r.\n//\n// If r is a bytes.Buffer, then the decoder parses directly from the buffer\n// without first copying the contents to an intermediate buffer.\n// Additional writes to the buffer must not occur while the decoder is in use.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn DecodeOptions{}.NewDecoder(r)\n}\n\n// NewDecoder constructs a new streaming decoder reading from r\n// configured with the provided options.\nfunc (o DecodeOptions) NewDecoder(r io.Reader) *Decoder {\n\td := new(Decoder)\n\to.ResetDecoder(d, r)\n\treturn d\n}\n\n// ResetDecoder resets a decoder such that it is reading afresh from r and\n// configured with the provided options.\nfunc (o DecodeOptions) ResetDecoder(d *Decoder, r io.Reader) {\n\tif d == nil {\n\t\tpanic(\"json: invalid nil Decoder\")\n\t}\n\tif r == nil {\n\t\tpanic(\"json: invalid nil io.Reader\")\n\t}\n\td.reset(nil, r, o)\n}\n\nfunc (d *Decoder) reset(b []byte, r io.Reader, o DecodeOptions) {\n\td.state.reset()\n\td.decodeBuffer = decodeBuffer{buf: b, rd: r}\n\td.options = o\n}\n\n// Reset resets a decoder such that it is reading afresh from r but\n// keep any pre-existing decoder options.\nfunc (d *Decoder) Reset(r io.Reader) {\n\td.options.ResetDecoder(d, r)\n}\n\nvar errBufferWriteAfterNext = errors.New(\"invalid bytes.Buffer.Write call after calling bytes.Buffer.Next\")\n\n// fetch reads at least 1 byte from the underlying io.Reader.\n// It returns io.ErrUnexpectedEOF if zero bytes were read and io.EOF was seen.\nfunc (d *Decoder) fetch() error {\n\tif d.rd == nil {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\n\t// Inform objectNameStack that we are about to fetch new buffer content.\n\td.names.copyQuotedBuffer(d.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := d.rd.(*bytes.Buffer); ok {\n\t\tswitch {\n\t\tcase bb.Len() == 0:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase len(d.buf) == 0:\n\t\t\td.buf = bb.Next(bb.Len()) // \"read\" all data in the buffer\n\t\t\treturn nil\n\t\tdefault:\n\t\t\t// This only occurs if a partially filled bytes.Buffer was provided\n\t\t\t// and more data is written to it while Decoder is reading from it.\n\t\t\t// This practice will lead to data corruption since future writes\n\t\t\t// may overwrite the contents of the current buffer.\n\t\t\t//\n\t\t\t// The user is trying to use a bytes.Buffer as a pipe,\n\t\t\t// but a bytes.Buffer is poor implementation of a pipe,\n\t\t\t// the purpose-built io.Pipe should be used instead.\n\t\t\treturn &ioError{action: \"read\", err: errBufferWriteAfterNext}\n\t\t}\n\t}\n\n\t// Allocate initial buffer if empty.\n\tif cap(d.buf) == 0 {\n\t\td.buf = make([]byte, 0, 64)\n\t}\n\n\t// Check whether to grow the buffer.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(d.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(d.buf)) < d.previousOffsetEnd()/growthRateFactor\n\t// If prevStart==0, then fetch was called in order to fetch more data\n\t// to finish consuming a large JSON value contiguously.\n\t// Grow if less than 25% of the remaining capacity is available.\n\t// Note that this may cause the input buffer to exceed maxBufferSize.\n\tgrow = grow || (d.prevStart == 0 && len(d.buf) >= 3*cap(d.buf)/4)\n\n\tif grow {\n\t\t// Allocate a new buffer and copy the contents of the old buffer over.\n\t\t// TODO: Provide a hard limit on the maximum internal buffer size?\n\t\tbuf := make([]byte, 0, cap(d.buf)*growthSizeFactor)\n\t\td.buf = append(buf, d.buf[d.prevStart:]...)\n\t} else {\n\t\t// Move unread portion of the data to the front.\n\t\tn := copy(d.buf[:cap(d.buf)], d.buf[d.prevStart:])\n\t\td.buf = d.buf[:n]\n\t}\n\td.baseOffset += int64(d.prevStart)\n\td.prevEnd -= d.prevStart\n\td.prevStart = 0\n\n\t// Read more data into the internal buffer.\n\tfor {\n\t\tn, err := d.rd.Read(d.buf[len(d.buf):cap(d.buf)])\n\t\tswitch {\n\t\tcase n > 0:\n\t\t\td.buf = d.buf[:len(d.buf)+n]\n\t\t\treturn nil // ignore errors if any bytes are read\n\t\tcase err == io.EOF:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase err != nil:\n\t\t\treturn &ioError{action: \"read\", err: err}\n\t\tdefault:\n\t\t\tcontinue // Read returned (0, nil)\n\t\t}\n\t}\n}\n\nconst invalidateBufferByte = '#' // invalid starting character for JSON grammar\n\n// invalidatePreviousRead invalidates buffers returned by Peek and Read calls\n// so that the first byte is an invalid character.\n// This Hyrum-proofs the API against faulty application code that assumes\n// values returned by ReadValue remain valid past subsequent Read calls.\nfunc (d *decodeBuffer) invalidatePreviousRead() {\n\t// Avoid mutating the buffer if d.rd is nil which implies that d.buf\n\t// is provided by the user code and may not expect mutations.\n\tisBytesBuffer := func(r io.Reader) bool {\n\t\t_, ok := r.(*bytes.Buffer)\n\t\treturn ok\n\t}\n\tif d.rd != nil && !isBytesBuffer(d.rd) && d.prevStart < d.prevEnd && uint(d.prevStart) < uint(len(d.buf)) {\n\t\td.buf[d.prevStart] = invalidateBufferByte\n\t\td.prevStart = d.prevEnd\n\t}\n}\n\n// needMore reports whether there are no more unread bytes.\nfunc (d *decodeBuffer) needMore(pos int) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn pos == len(d.buf)\n}\n\n// injectSyntacticErrorWithPosition wraps a SyntacticError with the position,\n// otherwise it returns the error as is.\n// It takes a position relative to the start of the start of d.buf.\nfunc (d *decodeBuffer) injectSyntacticErrorWithPosition(err error, pos int) error {\n\tif serr, ok := err.(*SyntacticError); ok {\n\t\treturn serr.withOffset(d.baseOffset + int64(pos))\n\t}\n\treturn err\n}\n\nfunc (d *decodeBuffer) previousOffsetStart() int64 { return d.baseOffset + int64(d.prevStart) }\nfunc (d *decodeBuffer) previousOffsetEnd() int64   { return d.baseOffset + int64(d.prevEnd) }\nfunc (d *decodeBuffer) previousBuffer() []byte     { return d.buf[d.prevStart:d.prevEnd] }\nfunc (d *decodeBuffer) unreadBuffer() []byte       { return d.buf[d.prevEnd:len(d.buf)] }\n\n// PeekKind retrieves the next token kind, but does not advance the read offset.\n// It returns 0 if there are no more tokens.\nfunc (d *Decoder) PeekKind() Kind {\n\t// Check whether we have a cached peek result.\n\tif d.peekPos > 0 {\n\t\treturn Kind(d.buf[d.peekPos]).normalize()\n\t}\n\n\tvar err error\n\td.invalidatePreviousRead()\n\tpos := d.prevEnd\n\n\t// Consume leading whitespace.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t}\n\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\treturn invalidKind\n\t\t}\n\t}\n\n\t// Consume colon or comma.\n\tvar delim byte\n\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\tdelim = c\n\t\tpos += 1\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\t\treturn invalidKind\n\t\t\t}\n\t\t}\n\t}\n\tnext := Kind(d.buf[pos]).normalize()\n\tif d.tokens.needDelim(next) != delim {\n\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\terr = d.tokens.checkDelim(delim, next)\n\t\terr = d.injectSyntacticErrorWithPosition(err, pos)\n\t\td.peekPos, d.peekErr = -1, err\n\t\treturn invalidKind\n\t}\n\n\t// This may set peekPos to zero, which is indistinguishable from\n\t// the uninitialized state. While a small hit to performance, it is correct\n\t// since ReadValue and ReadToken will disregard the cached result and\n\t// recompute the next kind.\n\td.peekPos, d.peekErr = pos, nil\n\treturn next\n}\n\n// SkipValue is semantically equivalent to calling ReadValue and discarding\n// the result except that memory is not wasted trying to hold the entire result.\nfunc (d *Decoder) SkipValue() error {\n\tswitch d.PeekKind() {\n\tcase '{', '[':\n\t\t// For JSON objects and arrays, keep skipping all tokens\n\t\t// until the depth matches the starting depth.\n\t\tdepth := d.tokens.depth()\n\t\tfor {\n\t\t\tif _, err := d.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif depth >= d.tokens.depth() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// Trying to skip a value when the next token is a '}' or ']'\n\t\t// will result in an error being returned here.\n\t\tif _, err := d.ReadValue(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ReadToken reads the next Token, advancing the read offset.\n// The returned token is only valid until the next Peek, Read, or Skip call.\n// It returns io.EOF if there are no more tokens.\nfunc (d *Decoder) ReadToken() (Token, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn Token{}, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn Token{}, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn Token{}, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next token.\n\tvar n int\n\tswitch next {\n\tcase 'n':\n\t\tif consumeNull(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"null\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"null\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"null\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn Null, nil\n\n\tcase 'f':\n\t\tif consumeFalse(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"false\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"false\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"false\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn False, nil\n\n\tcase 't':\n\t\tif consumeTrue(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"true\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"true\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"true\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn True, nil\n\n\tcase '\"':\n\t\tvar flags valueFlags // TODO: Preserve this in Token?\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\treturn Token{}, errInvalidNamespace\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err = d.tokens.appendString(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '0':\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeNumber(pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif err = d.tokens.appendNumber(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of number\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.push()\n\t\t\td.namespaces.push()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectStart, nil\n\n\tcase '}':\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.pop()\n\t\t\td.namespaces.pop()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectEnd, nil\n\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayStart, nil\n\n\tcase ']':\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayEnd, nil\n\n\tdefault:\n\t\terr = newInvalidCharacterError(d.buf[pos:], \"at start of token\")\n\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n}\n\ntype valueFlags uint\n\nconst (\n\t_ valueFlags = (1 << iota) / 2 // powers of two starting with zero\n\n\tstringNonVerbatim  // string cannot be naively treated as valid UTF-8\n\tstringNonCanonical // string not formatted according to RFC 8785, section 3.2.2.2.\n\t// TODO: Track whether a number is a non-integer?\n)\n\nfunc (f *valueFlags) set(f2 valueFlags) { *f |= f2 }\nfunc (f valueFlags) isVerbatim() bool   { return f&stringNonVerbatim == 0 }\nfunc (f valueFlags) isCanonical() bool  { return f&stringNonCanonical == 0 }\n\n// ReadValue returns the next raw JSON value, advancing the read offset.\n// The value is stripped of any leading or trailing whitespace.\n// The returned value is only valid until the next Peek, Read, or Skip call and\n// may not be mutated while the Decoder remains in use.\n// If the decoder is currently at the end token for an object or array,\n// then it reports a SyntacticError and the internal state remains unchanged.\n// It returns io.EOF if there are no more values.\nfunc (d *Decoder) ReadValue() (RawValue, error) {\n\tvar flags valueFlags\n\treturn d.readValue(&flags)\n}\nfunc (d *Decoder) readValue(flags *valueFlags) (RawValue, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn nil, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next value.\n\toldAbsPos := d.baseOffset + int64(pos)\n\tpos, err = d.consumeValue(flags, pos)\n\tnewAbsPos := d.baseOffset + int64(pos)\n\tn := int(newAbsPos - oldAbsPos)\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n\tswitch next {\n\tcase 'n', 't', 'f':\n\t\terr = d.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = d.tokens.appendString()\n\tcase '0':\n\t\terr = d.tokens.appendNumber()\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of value\n\t}\n\td.prevEnd = pos\n\td.prevStart = pos - n\n\treturn d.buf[pos-n : pos : pos], nil\n}\n\n// checkEOF verifies that the input has no more data.\nfunc (d *Decoder) checkEOF() error {\n\tswitch pos, err := d.consumeWhitespace(d.prevEnd); err {\n\tcase nil:\n\t\treturn newInvalidCharacterError(d.buf[pos:], \"after top-level value\")\n\tcase io.ErrUnexpectedEOF:\n\t\treturn nil\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// consumeWhitespace consumes all whitespace starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the last whitespace.\n// If it returns nil, there is guaranteed to at least be one unread byte.\n//\n// The following pattern is common in this implementation:\n//\n//\tpos += consumeWhitespace(d.buf[pos:])\n//\tif d.needMore(pos) {\n//\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n//\t\t\treturn ...\n//\t\t}\n//\t}\n//\n// It is difficult to simplify this without sacrificing performance since\n// consumeWhitespace must be inlined. The body of the if statement is\n// executed only in rare situations where we need to fetch more data.\n// Since fetching may return an error, we also need to check the error.\nfunc (d *Decoder) consumeWhitespace(pos int) (newPos int, err error) {\n\tfor {\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos, nil\n\t}\n}\n\n// consumeValue consumes a single JSON value starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the value.\nfunc (d *Decoder) consumeValue(flags *valueFlags, pos int) (newPos int, err error) {\n\tfor {\n\t\tvar n int\n\t\tvar err error\n\t\tswitch next := Kind(d.buf[pos]).normalize(); next {\n\t\tcase 'n':\n\t\t\tif n = consumeNull(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"null\")\n\t\t\t}\n\t\tcase 'f':\n\t\t\tif n = consumeFalse(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"false\")\n\t\t\t}\n\t\tcase 't':\n\t\t\tif n = consumeTrue(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"true\")\n\t\t\t}\n\t\tcase '\"':\n\t\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\t\treturn d.consumeString(flags, pos)\n\t\t\t}\n\t\tcase '0':\n\t\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t\t// we need to make sure that the next byte is not part of a number.\n\t\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\t\treturn d.consumeNumber(pos)\n\t\t\t}\n\t\tcase '{':\n\t\t\treturn d.consumeObject(flags, pos)\n\t\tcase '[':\n\t\t\treturn d.consumeArray(flags, pos)\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"at start of value\")\n\t\t}\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeLiteral consumes a single JSON literal starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the literal.\nfunc (d *Decoder) consumeLiteral(pos int, lit string) (newPos int, err error) {\n\tfor {\n\t\tn, err := consumeLiteral(d.buf[pos:], lit)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeString consumes a single JSON string starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the string.\nfunc (d *Decoder) consumeString(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tfor {\n\t\tn, err = consumeStringResumable(flags, d.buf[pos:], n, !d.options.AllowInvalidUTF8)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeNumber consumes a single JSON number starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the number.\nfunc (d *Decoder) consumeNumber(pos int) (newPos int, err error) {\n\tvar n int\n\tvar state consumeNumberState\n\tfor {\n\t\tn, state, err = consumeNumberResumable(d.buf[pos:], n, state)\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif err == io.ErrUnexpectedEOF || d.needMore(pos+n) {\n\t\t\tmayTerminate := err == nil\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\tif mayTerminate && err == io.ErrUnexpectedEOF {\n\t\t\t\t\treturn pos + n, nil\n\t\t\t\t}\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeObject consumes a single JSON object starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the object.\nfunc (d *Decoder) consumeObject(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tvar names *objectNamespace\n\tif !d.options.AllowDuplicateNames {\n\t\td.namespaces.push()\n\t\tdefer d.namespaces.pop()\n\t\tnames = d.namespaces.last()\n\t}\n\n\t// Handle before start.\n\tif d.buf[pos] != '{' {\n\t\tpanic(\"BUG: consumeObject must be called with a buffer that starts with '{'\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == '}' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tvar flags2 valueFlags\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags2, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tflags.set(flags2)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && !names.insertQuoted(d.buf[pos-n:pos], flags2.isVerbatim()) {\n\t\t\treturn pos - n, &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t}\n\n\t\t// Handle after name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tif d.buf[pos] != ':' {\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object name (expecting ':')\")\n\t\t}\n\t\tpos++\n\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// consumeArray consumes a single JSON array starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the array.\nfunc (d *Decoder) consumeArray(flags *valueFlags, pos int) (newPos int, err error) {\n\t// Handle before start.\n\tif d.buf[pos] != '[' {\n\t\tpanic(\"BUG: consumeArray must be called with a buffer that starts with '['\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == ']' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// InputOffset returns the current input byte offset. It gives the location\n// of the next byte immediately after the most recently returned token or value.\n// The number of bytes actually read from the underlying io.Reader may be more\n// than this offset due to internal buffering effects.\nfunc (d *Decoder) InputOffset() int64 {\n\treturn d.previousOffsetEnd()\n}\n\n// UnreadBuffer returns the data remaining in the unread buffer,\n// which may contain zero or more bytes.\n// The returned buffer must not be mutated while Decoder continues to be used.\n// The buffer contents are valid until the next Peek, Read, or Skip call.\nfunc (d *Decoder) UnreadBuffer() []byte {\n\treturn d.unreadBuffer()\n}\n\n// StackDepth returns the depth of the state machine for read JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (d *Decoder) StackDepth() int {\n\t// NOTE: Keep in sync with Encoder.StackDepth.\n\treturn d.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (d *Decoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Encoder.StackIndex.\n\tswitch s := d.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently read value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (d *Decoder) StackPointer() string {\n\td.names.copyQuotedBuffer(d.buf)\n\treturn string(d.appendStackPointer(nil))\n}\n\n// consumeWhitespace consumes leading JSON whitespace per RFC 7159, section 2.\nfunc consumeWhitespace(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tfor len(b) > n && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn++\n\t}\n\treturn n\n}\n\n// consumeNull consumes the next JSON null literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeNull(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"null\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeFalse consumes the next JSON false literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeFalse(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"false\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeTrue consumes the next JSON true literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeTrue(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"true\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeLiteral consumes the next JSON literal per RFC 7159, section 3.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeLiteral(b []byte, lit string) (n int, err error) {\n\tfor i := 0; i < len(b) && i < len(lit); i++ {\n\t\tif b[i] != lit[i] {\n\t\t\treturn i, newInvalidCharacterError(b[i:], \"within literal \"+lit+\" (expecting \"+strconv.QuoteRune(rune(lit[i]))+\")\")\n\t\t}\n\t}\n\tif len(b) < len(lit) {\n\t\treturn len(b), io.ErrUnexpectedEOF\n\t}\n\treturn len(lit), nil\n}\n\n// consumeSimpleString consumes the next JSON string per RFC 7159, section 7\n// but is limited to the grammar for an ASCII string without escape sequences.\n// It returns 0 if it is invalid or more complicated than a simple string,\n// in which case consumeString should be called.\nfunc consumeSimpleString(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[0] == '\"' {\n\t\tn++\n\t\tfor len(b) > n && (' ' <= b[n] && b[n] != '\\\\' && b[n] != '\"' && b[n] < utf8.RuneSelf) {\n\t\t\tn++\n\t\t}\n\t\tif len(b) > n && b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\n// consumeString consumes the next JSON string per RFC 7159, section 7.\n// If validateUTF8 is false, then this allows the presence of invalid UTF-8\n// characters within the string itself.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeString(flags *valueFlags, b []byte, validateUTF8 bool) (n int, err error) {\n\treturn consumeStringResumable(flags, b, 0, validateUTF8)\n}\n\n// consumeStringResumable is identical to consumeString but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeStringResumable(flags *valueFlags, b []byte, resumeOffset int, validateUTF8 bool) (n int, err error) {\n\t// Consume the leading double quote.\n\tswitch {\n\tcase resumeOffset > 0:\n\t\tn = resumeOffset // already handled the leading quote\n\tcase uint(len(b)) == 0:\n\t\treturn n, io.ErrUnexpectedEOF\n\tcase b[0] == '\"':\n\t\tn++\n\tdefault:\n\t\treturn n, newInvalidCharacterError(b[n:], `at start of string (expecting '\"')`)\n\t}\n\n\t// Consume every character in the string.\n\tfor uint(len(b)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(b)) > uint(n) && noEscape(b[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(b)) <= uint(n) {\n\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n, nil\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(b[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tflags.set(stringNonVerbatim)\n\t\t\tresumeOffset = n\n\t\t\tif uint(len(b)) < uint(n+2) {\n\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := b[n+1]; r {\n\t\t\tcase '/':\n\t\t\t\t// Forward slash is the only character with 3 representations.\n\t\t\t\t// Per RFC 8785, section 3.2.2.2., this must not be escaped.\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tn += 2\n\t\t\tcase '\"', '\\\\', 'b', 'f', 'n', 'r', 't':\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t}\n\t\t\t\t// Only certain control characters can use the \\uFFFF notation\n\t\t\t\t// for canonical formatting (per RFC 8785, section 3.2.2.2.).\n\t\t\t\tswitch v1 {\n\t\t\t\t// \\uFFFF notation not permitted for these characters.\n\t\t\t\tcase '\\b', '\\f', '\\n', '\\r', '\\t':\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tdefault:\n\t\t\t\t\t// \\uFFFF notation only permitted for control characters.\n\t\t\t\t\tif v1 >= ' ' {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// \\uFFFF notation must be lower case.\n\t\t\t\t\t\tfor _, c := range b[n+2 : n+6] {\n\t\t\t\t\t\t\tif 'A' <= c && c <= 'F' {\n\t\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\tif validateUTF8 && utf16.IsSurrogate(rune(v1)) {\n\t\t\t\t\tif uint(len(b)) >= uint(n+2) && (b[n] != '\\\\' || b[n+1] != 'u') {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid unpaired surrogate half within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv2, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif utf16.DecodeRune(rune(v1), rune(v2)) == utf8.RuneError {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid surrogate pair in string\"}\n\t\t\t\t\t}\n\t\t\t\t\tn += 6\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+2])) + \" within string\"}\n\t\t\t}\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\tif !utf8.FullRune(b[n:]) {\n\t\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn n, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tn++\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\treturn n, newInvalidCharacterError(b[n:], \"within string (expecting non-control character)\")\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(b[n:]))\n\t\t}\n\t}\n\treturn n, io.ErrUnexpectedEOF\n}\n\n// hasEscapeSequencePrefix reports whether b is possibly\n// the truncated prefix of a \\uFFFF escape sequence.\nfunc hasEscapeSequencePrefix(b []byte) bool {\n\tfor i, c := range b {\n\t\tswitch {\n\t\tcase i == 0 && c != '\\\\':\n\t\t\treturn false\n\t\tcase i == 1 && c != 'u':\n\t\t\treturn false\n\t\tcase i >= 2 && i < 6 && !('0' <= c && c <= '9') && !('a' <= c && c <= 'f') && !('A' <= c && c <= 'F'):\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// unescapeString appends the unescaped form of a JSON string in src to dst.\n// Any invalid UTF-8 within the string will be replaced with utf8.RuneError.\n// The input must be an entire JSON string with no surrounding whitespace.\nfunc unescapeString(dst, src []byte) (v []byte, ok bool) {\n\t// Consume leading double quote.\n\tif uint(len(src)) == 0 || src[0] != '\"' {\n\t\treturn dst, false\n\t}\n\ti, n := 1, 1\n\n\t// Consume every character until completion.\n\tfor uint(len(src)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(src)) > uint(n) && noEscape(src[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(src)) <= uint(n) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif src[n] == '\"' {\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tn++\n\t\t\treturn dst, len(src) == n\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(src[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif r < ' ' {\n\t\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\t\t}\n\n\t\t\t// Handle escape sequence.\n\t\t\tif uint(len(src)) < uint(n+2) {\n\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t}\n\t\t\tswitch r := src[n+1]; r {\n\t\t\tcase '\"', '\\\\', '/':\n\t\t\t\tdst = append(dst, r)\n\t\t\t\tn += 2\n\t\t\tcase 'b':\n\t\t\t\tdst = append(dst, '\\b')\n\t\t\t\tn += 2\n\t\t\tcase 'f':\n\t\t\t\tdst = append(dst, '\\f')\n\t\t\t\tn += 2\n\t\t\tcase 'n':\n\t\t\t\tdst = append(dst, '\\n')\n\t\t\t\tn += 2\n\t\t\tcase 'r':\n\t\t\t\tdst = append(dst, '\\r')\n\t\t\t\tn += 2\n\t\t\tcase 't':\n\t\t\t\tdst = append(dst, '\\t')\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(src)) < uint(n+6) {\n\t\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(src[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\t// Check whether this is a surrogate half.\n\t\t\t\tr := rune(v1)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tr = utf8.RuneError // assume failure unless the following succeeds\n\t\t\t\t\tif uint(len(src)) >= uint(n+6) && src[n+0] == '\\\\' && src[n+1] == 'u' {\n\t\t\t\t\t\tif v2, ok := parseHexUint16(src[n+2 : n+6]); ok {\n\t\t\t\t\t\t\tif r = utf16.DecodeRune(rune(v1), rune(v2)); r != utf8.RuneError {\n\t\t\t\t\t\t\t\tn += 6\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdst = utf8.AppendRune(dst, r)\n\t\t\tdefault:\n\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t}\n\t\t\ti = n\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\t// NOTE: An unescaped string may be longer than the escaped string\n\t\t\t// because invalid UTF-8 bytes are being replaced.\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = append(dst, \"\\uFFFD\"...)\n\t\t\tn += rn\n\t\t\ti = n\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(src[n:]))\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\treturn dst, false // truncated input\n}\n\n// unescapeStringMayCopy returns the unescaped form of b.\n// If there are no escaped characters, the output is simply a subslice of\n// the input with the surrounding quotes removed.\n// Otherwise, a new buffer is allocated for the output.\nfunc unescapeStringMayCopy(b []byte, isVerbatim bool) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif isVerbatim {\n\t\treturn b[len(`\"`) : len(b)-len(`\"`)]\n\t}\n\tb, _ = unescapeString(make([]byte, 0, len(b)), b)\n\treturn b\n}\n\n// consumeSimpleNumber consumes the next JSON number per RFC 7159, section 6\n// but is limited to the grammar for a positive integer.\n// It returns 0 if it is invalid or more complicated than a simple integer,\n// in which case consumeNumber should be called.\nfunc consumeSimpleNumber(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 {\n\t\tif b[0] == '0' {\n\t\t\tn++\n\t\t} else if '1' <= b[0] && b[0] <= '9' {\n\t\t\tn++\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t} else {\n\t\t\treturn 0\n\t\t}\n\t\tif len(b) == n || !(b[n] == '.' || b[n] == 'e' || b[n] == 'E') {\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\ntype consumeNumberState uint\n\nconst (\n\tconsumeNumberInit consumeNumberState = iota\n\tbeforeIntegerDigits\n\twithinIntegerDigits\n\tbeforeFractionalDigits\n\twithinFractionalDigits\n\tbeforeExponentDigits\n\twithinExponentDigits\n)\n\n// consumeNumber consumes the next JSON number per RFC 7159, section 6.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\n//\n// Note that JSON numbers are not self-terminating.\n// If the entire input is consumed, then the caller needs to consider whether\n// there may be subsequent unread data that may still be part of this number.\nfunc consumeNumber(b []byte) (n int, err error) {\n\tn, _, err = consumeNumberResumable(b, 0, consumeNumberInit)\n\treturn n, err\n}\n\n// consumeNumberResumable is identical to consumeNumber but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeNumberResumable(b []byte, resumeOffset int, state consumeNumberState) (n int, _ consumeNumberState, err error) {\n\t// Jump to the right state when resuming from a partial consumption.\n\tn = resumeOffset\n\tif state > consumeNumberInit {\n\t\tswitch state {\n\t\tcase withinIntegerDigits, withinFractionalDigits, withinExponentDigits:\n\t\t\t// Consume leading digits.\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t\tif len(b) == n {\n\t\t\t\treturn n, state, nil // still within the same state\n\t\t\t}\n\t\t\tstate++ // switches \"withinX\" to \"beforeY\" where Y is the state after X\n\t\t}\n\t\tswitch state {\n\t\tcase beforeIntegerDigits:\n\t\t\tgoto beforeInteger\n\t\tcase beforeFractionalDigits:\n\t\t\tgoto beforeFractional\n\t\tcase beforeExponentDigits:\n\t\t\tgoto beforeExponent\n\t\tdefault:\n\t\t\treturn n, state, nil\n\t\t}\n\t}\n\n\t// Consume required integer component (with optional minus sign).\nbeforeInteger:\n\tresumeOffset = n\n\tif len(b) > 0 && b[0] == '-' {\n\t\tn++\n\t}\n\tswitch {\n\tcase len(b) == n:\n\t\treturn resumeOffset, beforeIntegerDigits, io.ErrUnexpectedEOF\n\tcase b[n] == '0':\n\t\tn++\n\t\tstate = beforeFractionalDigits\n\tcase '1' <= b[n] && b[n] <= '9':\n\t\tn++\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinIntegerDigits\n\tdefault:\n\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t}\n\n\t// Consume optional fractional component.\nbeforeFractional:\n\tif len(b) > n && b[n] == '.' {\n\t\tresumeOffset = n\n\t\tn++\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeFractionalDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinFractionalDigits\n\t}\n\n\t// Consume optional exponent component.\nbeforeExponent:\n\tif len(b) > n && (b[n] == 'e' || b[n] == 'E') {\n\t\tresumeOffset = n\n\t\tn++\n\t\tif len(b) > n && (b[n] == '-' || b[n] == '+') {\n\t\t\tn++\n\t\t}\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeExponentDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinExponentDigits\n\t}\n\n\treturn n, state, nil\n}\n\n// parseHexUint16 is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-16.\n// See https://go.dev/issue/42429.\nfunc parseHexUint16(b []byte) (v uint16, ok bool) {\n\tif len(b) != 4 {\n\t\treturn 0, false\n\t}\n\tfor _, c := range b[:4] {\n\t\tswitch {\n\t\tcase '0' <= c && c <= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' <= c && c <= 'f':\n\t\t\tc = 10 + c - 'a'\n\t\tcase 'A' <= c && c <= 'F':\n\t\t\tc = 10 + c - 'A'\n\t\tdefault:\n\t\t\treturn 0, false\n\t\t}\n\t\tv = v*16 + uint16(c)\n\t}\n\treturn v, true\n}\n\n// parseDecUint is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-10.\n// If the number is syntactically valid but overflows uint64,\n// then it returns (math.MaxUint64, false).\n// See https://go.dev/issue/42429.\nfunc parseDecUint(b []byte) (v uint64, ok bool) {\n\t// Overflow logic is based on strconv/atoi.go:138-149 from Go1.15, where:\n\t//   - cutoff is equal to math.MaxUint64/10+1, and\n\t//   - the n1 > maxVal check is unnecessary\n\t//     since maxVal is equivalent to math.MaxUint64.\n\tvar n int\n\tvar overflow bool\n\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\toverflow = overflow || v >= math.MaxUint64/10+1\n\t\tv *= 10\n\n\t\tv1 := v + uint64(b[n]-'0')\n\t\toverflow = overflow || v1 < v\n\t\tv = v1\n\n\t\tn++\n\t}\n\tif n == 0 || len(b) != n {\n\t\treturn 0, false\n\t}\n\tif overflow {\n\t\treturn math.MaxUint64, false\n\t}\n\treturn v, true\n}\n\n// parseFloat parses a floating point number according to the Go float grammar.\n// Note that the JSON number grammar is a strict subset.\n//\n// If the number overflows the finite representation of a float,\n// then we return MaxFloat since any finite value will always be infinitely\n// more accurate at representing another finite value than an infinite value.\nfunc parseFloat(b []byte, bits int) (v float64, ok bool) {\n\t// Fast path for exact integer numbers which fit in the\n\t// 24-bit or 53-bit significand of a float32 or float64.\n\tvar negLen int // either 0 or 1\n\tif len(b) > 0 && b[0] == '-' {\n\t\tnegLen = 1\n\t}\n\tu, ok := parseDecUint(b[negLen:])\n\tif ok && ((bits == 32 && u <= 1<<24) || (bits == 64 && u <= 1<<53)) {\n\t\treturn math.Copysign(float64(u), float64(-1*negLen)), true\n\t}\n\n\t// Note that the []byte->string conversion unfortunately allocates.\n\t// See https://go.dev/issue/42429 for more information.\n\tfv, err := strconv.ParseFloat(string(b), bits)\n\tif math.IsInf(fv, 0) {\n\t\tswitch {\n\t\tcase bits == 32 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat64, true\n\t\tcase bits == 32 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat64, true\n\t\t}\n\t}\n\treturn fv, err == nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/doc.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json implements serialization of JSON\n// as specified in RFC 4627, RFC 7159, RFC 7493, RFC 8259, and RFC 8785.\n// JSON is a simple data interchange format that can represent\n// primitive data types such as booleans, strings, and numbers,\n// in addition to structured data types such as objects and arrays.\n//\n// # Terminology\n//\n// This package uses the terms \"encode\" and \"decode\" for syntactic functionality\n// that is concerned with processing JSON based on its grammar, and\n// uses the terms \"marshal\" and \"unmarshal\" for semantic functionality\n// that determines the meaning of JSON values as Go values and vice-versa.\n// It aims to provide a clear distinction between functionality that\n// is purely concerned with encoding versus that of marshaling.\n// For example, one can directly encode a stream of JSON tokens without\n// needing to marshal a concrete Go value representing them.\n// Similarly, one can decode a stream of JSON tokens without\n// needing to unmarshal them into a concrete Go value.\n//\n// This package uses JSON terminology when discussing JSON, which may differ\n// from related concepts in Go or elsewhere in computing literature.\n//\n//   - A JSON \"object\" refers to an unordered collection of name/value members.\n//   - A JSON \"array\" refers to an ordered sequence of elements.\n//   - A JSON \"value\" refers to either a literal (i.e., null, false, or true),\n//     string, number, object, or array.\n//\n// See RFC 8259 for more information.\n//\n// # Specifications\n//\n// Relevant specifications include RFC 4627, RFC 7159, RFC 7493, RFC 8259,\n// and RFC 8785. Each RFC is generally a stricter subset of another RFC.\n// In increasing order of strictness:\n//\n//   - RFC 4627 and RFC 7159 do not require (but recommend) the use of UTF-8\n//     and also do not require (but recommend) that object names be unique.\n//   - RFC 8259 requires the use of UTF-8,\n//     but does not require (but recommends) that object names be unique.\n//   - RFC 7493 requires the use of UTF-8\n//     and also requires that object names be unique.\n//   - RFC 8785 defines a canonical representation. It requires the use of UTF-8\n//     and also requires that object names be unique and in a specific ordering.\n//     It specifies exactly how strings and numbers must be formatted.\n//\n// The primary difference between RFC 4627 and RFC 7159 is that the former\n// restricted top-level values to only JSON objects and arrays, while\n// RFC 7159 and subsequent RFCs permit top-level values to additionally be\n// JSON nulls, booleans, strings, or numbers.\n//\n// By default, this package operates on RFC 7493, but can be configured\n// to operate according to the other RFC specifications.\n// RFC 7493 is a stricter subset of RFC 8259 and fully compliant with it.\n// In particular, it makes specific choices about behavior that RFC 8259\n// leaves as undefined in order to ensure greater interoperability.\n//\n// # JSON Representation of Go structs\n//\n// A Go struct is naturally represented as a JSON object,\n// where each Go struct field corresponds with a JSON object member.\n// When marshaling, all Go struct fields are recursively encoded in depth-first\n// order as JSON object members except those that are ignored or omitted.\n// When unmarshaling, JSON object members are recursively decoded\n// into the corresponding Go struct fields.\n// Object members that do not match any struct fields,\n// also known as “unknown members”, are ignored by default or rejected\n// if UnmarshalOptions.RejectUnknownMembers is specified.\n//\n// The representation of each struct field can be customized in the\n// \"json\" struct field tag, where the tag is a comma separated list of options.\n// As a special case, if the entire tag is `json:\"-\"`,\n// then the field is ignored with regard to its JSON representation.\n//\n// The first option is the JSON object name override for the Go struct field.\n// If the name is not specified, then the Go struct field name\n// is used as the JSON object name. JSON names containing commas or quotes,\n// or names identical to \"\" or \"-\", can be specified using\n// a single-quoted string literal, where the syntax is identical to\n// the Go grammar for a double-quoted string literal,\n// but instead uses single quotes as the delimiters.\n// By default, unmarshaling uses case-sensitive matching to identify\n// the Go struct field associated with a JSON object name.\n//\n// After the name, the following tag options are supported:\n//\n//   - omitzero: When marshaling, the \"omitzero\" option specifies that\n//     the struct field should be omitted if the field value is zero\n//     as determined by the \"IsZero() bool\" method if present,\n//     otherwise based on whether the field is the zero Go value.\n//     This option has no effect when unmarshaling.\n//\n//   - omitempty: When marshaling, the \"omitempty\" option specifies that\n//     the struct field should be omitted if the field value would have been\n//     encoded as a JSON null, empty string, empty object, or empty array.\n//     This option has no effect when unmarshaling.\n//\n//   - string: The \"string\" option specifies that\n//     MarshalOptions.StringifyNumbers and UnmarshalOptions.StringifyNumbers\n//     be set when marshaling or unmarshaling a struct field value.\n//     This causes numeric types to be encoded as a JSON number\n//     within a JSON string, and to be decoded from either a JSON number or\n//     a JSON string containing a JSON number.\n//     This extra level of encoding is often necessary since\n//     many JSON parsers cannot precisely represent 64-bit integers.\n//\n//   - nocase: When unmarshaling, the \"nocase\" option specifies that\n//     if the JSON object name does not exactly match the JSON name\n//     for any of the struct fields, then it attempts to match the struct field\n//     using a case-insensitive match that also ignores dashes and underscores.\n//     If multiple fields match, the first declared field in breadth-first order\n//     takes precedence. This option has no effect when marshaling.\n//\n//   - inline: The \"inline\" option specifies that\n//     the JSON representable content of this field type is to be promoted\n//     as if they were specified in the parent struct.\n//     It is the JSON equivalent of Go struct embedding.\n//     A Go embedded field is implicitly inlined unless an explicit JSON name\n//     is specified. The inlined field must be a Go struct\n//     (that does not implement any JSON methods), RawValue, map[string]T,\n//     or an unnamed pointer to such types. When marshaling,\n//     inlined fields from a pointer type are omitted if it is nil.\n//     Inlined fields of type RawValue and map[string]T are called\n//     “inlined fallbacks” as they can represent all possible\n//     JSON object members not directly handled by the parent struct.\n//     Only one inlined fallback field may be specified in a struct,\n//     while many non-fallback fields may be specified. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - unknown: The \"unknown\" option is a specialized variant\n//     of the inlined fallback to indicate that this Go struct field\n//     contains any number of unknown JSON object members. The field type\n//     must be a RawValue, map[string]T, or an unnamed pointer to such types.\n//     If MarshalOptions.DiscardUnknownMembers is specified when marshaling,\n//     the contents of this field are ignored.\n//     If UnmarshalOptions.RejectUnknownMembers is specified when unmarshaling,\n//     any unknown object members are rejected regardless of whether\n//     an inlined fallback with the \"unknown\" option exists. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - format: The \"format\" option specifies a format flag\n//     used to specialize the formatting of the field value.\n//     The option is a key-value pair specified as \"format:value\" where\n//     the value must be either a literal consisting of letters and numbers\n//     (e.g., \"format:RFC3339\") or a single-quoted string literal\n//     (e.g., \"format:'2006-01-02'\"). The interpretation of the format flag\n//     is determined by the struct field type.\n//\n// The \"omitzero\" and \"omitempty\" options are mostly semantically identical.\n// The former is defined in terms of the Go type system,\n// while the latter in terms of the JSON type system.\n// Consequently they behave differently in some circumstances.\n// For example, only a nil slice or map is omitted under \"omitzero\", while\n// an empty slice or map is omitted under \"omitempty\" regardless of nilness.\n// The \"omitzero\" option is useful for types with a well-defined zero value\n// (e.g., netip.Addr) or have an IsZero method (e.g., time.Time).\n//\n// Every Go struct corresponds to a list of JSON representable fields\n// which is constructed by performing a breadth-first search over\n// all struct fields (excluding unexported or ignored fields),\n// where the search recursively descends into inlined structs.\n// The set of non-inlined fields in a struct must have unique JSON names.\n// If multiple fields all have the same JSON name, then the one\n// at shallowest depth takes precedence and the other fields at deeper depths\n// are excluded from the list of JSON representable fields.\n// If multiple fields at the shallowest depth have the same JSON name,\n// then all of those fields are excluded from the list. This is analogous to\n// Go visibility rules for struct field selection with embedded struct types.\n//\n// Marshaling or unmarshaling a non-empty struct\n// without any JSON representable fields results in a SemanticError.\n// Unexported fields must not have any `json` tags except for `json:\"-\"`.\npackage json\n\n// requireKeyedLiterals can be embedded in a struct to require keyed literals.\ntype requireKeyedLiterals struct{}\n\n// nonComparable can be embedded in a struct to prevent comparability.\ntype nonComparable [0]func()\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/encode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// EncodeOptions configures how JSON encoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype EncodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// multiline specifies whether the encoder should emit multiline output.\n\tmultiline bool\n\n\t// omitTopLevelNewline specifies whether to omit the newline\n\t// that is appended after every top-level JSON value when streaming.\n\tomitTopLevelNewline bool\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// performance benefits, but breaks compliance with RFC 7493, section 2.3.\n\t// The output will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the encoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n\n\t// preserveRawStrings specifies that WriteToken and WriteValue should not\n\t// reformat any JSON string, but keep the formatting verbatim.\n\tpreserveRawStrings bool\n\n\t// canonicalizeNumbers specifies that WriteToken and WriteValue should\n\t// reformat any JSON numbers according to RFC 8785, section 3.2.2.3.\n\tcanonicalizeNumbers bool\n\n\t// EscapeRune reports whether the provided character should be escaped\n\t// as a hexadecimal Unicode codepoint (e.g., \\ufffd).\n\t// If nil, the shortest and simplest encoding will be used,\n\t// which is also the formatting specified by RFC 8785, section 3.2.2.2.\n\tEscapeRune func(rune) bool\n\n\t// Indent (if non-empty) specifies that the encoder should emit multiline\n\t// output where each element in a JSON object or array begins on a new,\n\t// indented line beginning with the indent prefix followed by one or more\n\t// copies of indent according to the indentation nesting.\n\t// It may only be composed of space or tab characters.\n\tIndent string\n\n\t// IndentPrefix is prepended to each line within a JSON object or array.\n\t// The purpose of the indent prefix is to encode data that can more easily\n\t// be embedded inside other formatted JSON data.\n\t// It may only be composed of space or tab characters.\n\t// It is ignored if Indent is empty.\n\tIndentPrefix string\n}\n\n// Encoder is a streaming encoder from raw JSON tokens and values.\n// It is used to write a stream of top-level JSON values,\n// each terminated with a newline character.\n//\n// WriteToken and WriteValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be composed with the following calls (ignoring errors for brevity):\n//\n//\te.WriteToken(ObjectStart)           // {\n//\te.WriteToken(String(\"name\"))        // \"name\"\n//\te.WriteToken(String(\"value\"))       // \"value\"\n//\te.WriteValue(RawValue(`\"array\"`))   // \"array\"\n//\te.WriteToken(ArrayStart)            // [\n//\te.WriteToken(Null)                  // null\n//\te.WriteToken(False)                 // false\n//\te.WriteValue(RawValue(\"true\"))      // true\n//\te.WriteToken(Float(3.14159))        // 3.14159\n//\te.WriteToken(ArrayEnd)              // ]\n//\te.WriteValue(RawValue(`\"object\"`))  // \"object\"\n//\te.WriteValue(RawValue(`{\"k\":\"v\"}`)) // {\"k\":\"v\"}\n//\te.WriteToken(ObjectEnd)             // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call WriteToken with a string\n// for object names.\ntype Encoder struct {\n\tstate\n\tencodeBuffer\n\toptions EncodeOptions\n\n\tseenPointers seenPointers // only used when marshaling\n}\n\n// encodeBuffer is a buffer split into 2 segments:\n//\n//   - buf[0:len(buf)]        // written (but unflushed) portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\ntype encodeBuffer struct {\n\tbuf []byte // may alias wr if it is a bytes.Buffer\n\n\t// baseOffset is added to len(buf) to obtain the absolute offset\n\t// relative to the start of io.Writer stream.\n\tbaseOffset int64\n\n\twr io.Writer\n\n\t// maxValue is the approximate maximum RawValue size passed to WriteValue.\n\tmaxValue int\n\t// unusedCache is the buffer returned by the UnusedBuffer method.\n\tunusedCache []byte\n\t// bufStats is statistics about buffer utilization.\n\t// It is only used with pooled encoders in pools.go.\n\tbufStats bufferStatistics\n}\n\n// NewEncoder constructs a new streaming encoder writing to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn EncodeOptions{}.NewEncoder(w)\n}\n\n// NewEncoder constructs a new streaming encoder writing to w\n// configured with the provided options.\n// It flushes the internal buffer when the buffer is sufficiently full or\n// when a top-level value has been written.\n//\n// If w is a bytes.Buffer, then the encoder appends directly into the buffer\n// without copying the contents from an intermediate buffer.\nfunc (o EncodeOptions) NewEncoder(w io.Writer) *Encoder {\n\te := new(Encoder)\n\to.ResetEncoder(e, w)\n\treturn e\n}\n\n// ResetEncoder resets an encoder such that it is writing afresh to w and\n// configured with the provided options.\nfunc (o EncodeOptions) ResetEncoder(e *Encoder, w io.Writer) {\n\tif e == nil {\n\t\tpanic(\"json: invalid nil Encoder\")\n\t}\n\tif w == nil {\n\t\tpanic(\"json: invalid nil io.Writer\")\n\t}\n\te.reset(nil, w, o)\n}\n\nfunc (e *Encoder) reset(b []byte, w io.Writer, o EncodeOptions) {\n\tif len(o.Indent) > 0 {\n\t\to.multiline = true\n\t\tif s := trimLeftSpaceTab(o.IndentPrefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(o.Indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t}\n\te.state.reset()\n\te.encodeBuffer = encodeBuffer{buf: b, wr: w, bufStats: e.bufStats}\n\te.options = o\n\tif bb, ok := w.(*bytes.Buffer); ok && bb != nil {\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t}\n}\n\n// Reset resets an encoder such that it is writing afresh to w but\n// keeps any pre-existing encoder options.\nfunc (e *Encoder) Reset(w io.Writer) {\n\te.options.ResetEncoder(e, w)\n}\n\n// needFlush determines whether to flush at this point.\nfunc (e *Encoder) needFlush() bool {\n\t// NOTE: This function is carefully written to be inlineable.\n\n\t// Avoid flushing if e.wr is nil since there is no underlying writer.\n\t// Flush if less than 25% of the capacity remains.\n\t// Flushing at some constant fraction ensures that the buffer stops growing\n\t// so long as the largest Token or Value fits within that unused capacity.\n\treturn e.wr != nil && (e.tokens.depth() == 1 || len(e.buf) > 3*cap(e.buf)/4)\n}\n\n// flush flushes the buffer to the underlying io.Writer.\n// It may append a trailing newline after the top-level value.\nfunc (e *Encoder) flush() error {\n\tif e.wr == nil || e.avoidFlush() {\n\t\treturn nil\n\t}\n\n\t// In streaming mode, always emit a newline after the top-level value.\n\tif e.tokens.depth() == 1 && !e.options.omitTopLevelNewline {\n\t\te.buf = append(e.buf, '\\n')\n\t}\n\n\t// Inform objectNameStack that we are about to flush the buffer content.\n\te.names.copyQuotedBuffer(e.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := e.wr.(*bytes.Buffer); ok {\n\t\t// If e.buf already aliases the internal buffer of bb,\n\t\t// then the Write call simply increments the internal offset,\n\t\t// otherwise Write operates as expected.\n\t\t// See https://go.dev/issue/42986.\n\t\tn, _ := bb.Write(e.buf) // never fails unless bb is nil\n\t\te.baseOffset += int64(n)\n\n\t\t// If the internal buffer of bytes.Buffer is too small,\n\t\t// append operations elsewhere in the Encoder may grow the buffer.\n\t\t// This would be semantically correct, but hurts performance.\n\t\t// As such, ensure 25% of the current length is always available\n\t\t// to reduce the probability that other appends must allocate.\n\t\tif avail := bb.Cap() - bb.Len(); avail < bb.Len()/4 {\n\t\t\tbb.Grow(avail + 1)\n\t\t}\n\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t\treturn nil\n\t}\n\n\t// Flush the internal buffer to the underlying io.Writer.\n\tn, err := e.wr.Write(e.buf)\n\te.baseOffset += int64(n)\n\tif err != nil {\n\t\t// In the event of an error, preserve the unflushed portion.\n\t\t// Thus, write errors aren't fatal so long as the io.Writer\n\t\t// maintains consistent state after errors.\n\t\tif n > 0 {\n\t\t\te.buf = e.buf[:copy(e.buf, e.buf[n:])]\n\t\t}\n\t\treturn &ioError{action: \"write\", err: err}\n\t}\n\te.buf = e.buf[:0]\n\n\t// Check whether to grow the buffer.\n\t// Note that cap(e.buf) may already exceed maxBufferSize since\n\t// an append elsewhere already grew it to store a large token.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(e.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(e.buf)) < e.previousOffsetEnd()/growthRateFactor\n\tif grow {\n\t\te.buf = make([]byte, 0, cap(e.buf)*growthSizeFactor)\n\t}\n\n\treturn nil\n}\n\nfunc (e *encodeBuffer) previousOffsetEnd() int64 { return e.baseOffset + int64(len(e.buf)) }\nfunc (e *encodeBuffer) unflushedBuffer() []byte  { return e.buf }\n\n// avoidFlush indicates whether to avoid flushing to ensure there is always\n// enough in the buffer to unwrite the last object member if it were empty.\nfunc (e *Encoder) avoidFlush() bool {\n\tswitch {\n\tcase e.tokens.last.length() == 0:\n\t\t// Never flush after ObjectStart or ArrayStart since we don't know yet\n\t\t// if the object or array will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectValue():\n\t\t// Never flush before the object value since we don't know yet\n\t\t// if the object value will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectName() && len(e.buf) >= 2:\n\t\t// Never flush after the object value if it does turn out to be empty.\n\t\tswitch string(e.buf[len(e.buf)-2:]) {\n\t\tcase `ll`, `\"\"`, `{}`, `[]`: // last two bytes of every empty value\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// unwriteEmptyObjectMember unwrites the last object member if it is empty\n// and reports whether it performed an unwrite operation.\nfunc (e *Encoder) unwriteEmptyObjectMember(prevName *string) bool {\n\tif last := e.tokens.last; !last.isObject() || !last.needObjectName() || last.length() == 0 {\n\t\tpanic(\"BUG: must be called on an object after writing a value\")\n\t}\n\n\t// The flushing logic is modified to never flush a trailing empty value.\n\t// The encoder never writes trailing whitespace eagerly.\n\tb := e.unflushedBuffer()\n\n\t// Detect whether the last value was empty.\n\tvar n int\n\tif len(b) >= 3 {\n\t\tswitch string(b[len(b)-2:]) {\n\t\tcase \"ll\": // last two bytes of `null`\n\t\t\tn = len(`null`)\n\t\tcase `\"\"`:\n\t\t\t// It is possible for a non-empty string to have `\"\"` as a suffix\n\t\t\t// if the second to the last quote was escaped.\n\t\t\tif b[len(b)-3] == '\\\\' {\n\t\t\t\treturn false // e.g., `\"\\\"\"` is not empty\n\t\t\t}\n\t\t\tn = len(`\"\"`)\n\t\tcase `{}`:\n\t\t\tn = len(`{}`)\n\t\tcase `[]`:\n\t\t\tn = len(`[]`)\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn false\n\t}\n\n\t// Unwrite the value, whitespace, colon, name, whitespace, and comma.\n\tb = b[:len(b)-n]\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ':')\n\tb = trimSuffixString(b)\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ',')\n\te.buf = b // store back truncated unflushed buffer\n\n\t// Undo state changes.\n\te.tokens.last.decrement() // for object member value\n\te.tokens.last.decrement() // for object member name\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t\tif prevName != nil {\n\t\t\te.names.copyQuotedBuffer(e.buf) // required by objectNameStack.replaceLastUnquotedName\n\t\t\te.names.replaceLastUnquotedName(*prevName)\n\t\t}\n\t}\n\treturn true\n}\n\n// unwriteOnlyObjectMemberName unwrites the only object member name\n// and returns the unquoted name.\nfunc (e *Encoder) unwriteOnlyObjectMemberName() string {\n\tif last := e.tokens.last; !last.isObject() || last.length() != 1 {\n\t\tpanic(\"BUG: must be called on an object after writing first name\")\n\t}\n\n\t// Unwrite the name and whitespace.\n\tb := trimSuffixString(e.buf)\n\tisVerbatim := bytes.IndexByte(e.buf[len(b):], '\\\\') < 0\n\tname := string(unescapeStringMayCopy(e.buf[len(b):], isVerbatim))\n\te.buf = trimSuffixWhitespace(b)\n\n\t// Undo state changes.\n\te.tokens.last.decrement()\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t}\n\treturn name\n}\n\nfunc trimSuffixWhitespace(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tn := len(b) - 1\n\tfor n >= 0 && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn--\n\t}\n\treturn b[:n+1]\n}\n\nfunc trimSuffixString(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\tfor len(b) >= 2 && !(b[len(b)-1] == '\"' && b[len(b)-2] != '\\\\') {\n\t\tb = b[:len(b)-1] // trim all characters except an unescaped quote\n\t}\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\treturn b\n}\n\nfunc hasSuffixByte(b []byte, c byte) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn len(b) > 0 && b[len(b)-1] == c\n}\n\nfunc trimSuffixByte(b []byte, c byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == c {\n\t\treturn b[:len(b)-1]\n\t}\n\treturn b\n}\n\n// WriteToken writes the next token and advances the internal write offset.\n//\n// The provided token kind must be consistent with the JSON grammar.\n// For example, it is an error to provide a number when the encoder\n// is expecting an object name (which is always a string), or\n// to provide an end object delimiter when the encoder is finishing an array.\n// If the provided token is invalid, then it reports a SyntacticError and\n// the internal state remains unchanged.\nfunc (e *Encoder) WriteToken(t Token) error {\n\tk := t.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the token to the output and to the state machine.\n\tvar err error\n\tswitch k {\n\tcase 'n':\n\t\tb = append(b, \"null\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 'f':\n\t\tb = append(b, \"false\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 't':\n\t\tb = append(b, \"true\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tn0 := len(b) // offset before calling t.appendString\n\t\tif b, err = t.appendString(b, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\tif b, err = t.appendNumber(b, e.options.canonicalizeNumbers); err != nil {\n\t\t\tbreak\n\t\t}\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tb = append(b, '{')\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.push()\n\t\t\te.namespaces.push()\n\t\t}\n\tcase '}':\n\t\tb = append(b, '}')\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.pop()\n\t\t\te.namespaces.pop()\n\t\t}\n\tcase '[':\n\t\tb = append(b, '[')\n\t\terr = e.tokens.pushArray()\n\tcase ']':\n\t\tb = append(b, ']')\n\t\terr = e.tokens.popArray()\n\tdefault:\n\t\treturn &SyntacticError{str: \"invalid json.Token\"}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\nconst (\n\trawIntNumber  = -1\n\trawUintNumber = -2\n)\n\n// writeNumber is specialized version of WriteToken, but optimized for numbers.\n// As a special-case, if bits is -1 or -2, it will treat v as\n// the raw-encoded bits of an int64 or uint64, respectively.\n// It is only called from arshal_default.go.\nfunc (e *Encoder) writeNumber(v float64, bits int, quote bool) error {\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, '0')\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, '0')\n\t}\n\n\tif quote {\n\t\t// Append the value to the output.\n\t\tn0 := len(b) // offset before appending the number\n\t\tb = append(b, '\"')\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tb = append(b, '\"')\n\n\t\t// Escape the string if necessary.\n\t\tif e.options.EscapeRune != nil {\n\t\t\tb2 := append(e.unusedCache, b[n0+len(`\"`):len(b)-len(`\"`)]...)\n\t\t\tb, _ = appendString(b[:n0], string(b2), false, e.options.EscapeRune)\n\t\t\te.unusedCache = b2[:0]\n\t\t}\n\n\t\t// Update the state machine.\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\treturn errInvalidNamespace\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err := e.tokens.appendString(); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tif err := e.tokens.appendNumber(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// WriteValue writes the next raw value and advances the internal write offset.\n// The Encoder does not simply copy the provided value verbatim, but\n// parses it to ensure that it is syntactically valid and reformats it\n// according to how the Encoder is configured to format whitespace and strings.\n//\n// The provided value kind must be consistent with the JSON grammar\n// (see examples on Encoder.WriteToken). If the provided value is invalid,\n// then it reports a SyntacticError and the internal state remains unchanged.\nfunc (e *Encoder) WriteValue(v RawValue) error {\n\te.maxValue |= len(v) // bitwise OR is a fast approximation of max\n\n\tk := v.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the value the output.\n\tvar err error\n\tv = v[consumeWhitespace(v):]\n\tn0 := len(b) // offset before calling e.reformatValue\n\tb, v, err = e.reformatValue(b, v, e.tokens.depth())\n\tif err != nil {\n\t\treturn err\n\t}\n\tv = v[consumeWhitespace(v):]\n\tif len(v) > 0 {\n\t\treturn newInvalidCharacterError(v[0:], \"after top-level value\")\n\t}\n\n\t// Append the kind to the state machine.\n\tswitch k {\n\tcase 'n', 'f', 't':\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = e.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// appendWhitespace appends whitespace that immediately precedes the next token.\nfunc (e *Encoder) appendWhitespace(b []byte, next Kind) []byte {\n\tif e.tokens.needDelim(next) == ':' {\n\t\treturn append(b, ' ')\n\t} else {\n\t\treturn e.appendIndent(b, e.tokens.needIndent(next))\n\t}\n}\n\n// appendIndent appends the appropriate number of indentation characters\n// for the current nested level, n.\nfunc (e *Encoder) appendIndent(b []byte, n int) []byte {\n\tif n == 0 {\n\t\treturn b\n\t}\n\tb = append(b, '\\n')\n\tb = append(b, e.options.IndentPrefix...)\n\tfor ; n > 1; n-- {\n\t\tb = append(b, e.options.Indent...)\n\t}\n\treturn b\n}\n\n// reformatValue parses a JSON value from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatValue(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// TODO: Should this update valueFlags as input?\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tvar n int\n\tvar err error\n\tswitch k := Kind(src[0]).normalize(); k {\n\tcase 'n':\n\t\tif n = consumeNull(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"null\")\n\t\t}\n\tcase 'f':\n\t\tif n = consumeFalse(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"false\")\n\t\t}\n\tcase 't':\n\t\tif n = consumeTrue(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"true\")\n\t\t}\n\tcase '\"':\n\t\tif n := consumeSimpleString(src); n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\tcase '0':\n\t\tif n := consumeSimpleNumber(src); n > 0 && !e.options.canonicalizeNumbers {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple numbers verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatNumber(dst, src, e.options.canonicalizeNumbers)\n\tcase '{':\n\t\treturn e.reformatObject(dst, src, depth)\n\tcase '[':\n\t\treturn e.reformatArray(dst, src, depth)\n\tdefault:\n\t\treturn dst, src, newInvalidCharacterError(src, \"at start of value\")\n\t}\n\tif err != nil {\n\t\treturn dst, src, err\n\t}\n\tdst, src = append(dst, src[:n]...), src[n:]\n\treturn dst, src, nil\n}\n\n// reformatObject parses a JSON object from the start of src and\n// appends it to the end of src, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatObject(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append object start.\n\tif src[0] != '{' {\n\t\tpanic(\"BUG: reformatObject must be called with a buffer that starts with '{'\")\n\t}\n\tdst, src = append(dst, '{'), src[1:]\n\n\t// Append (possible) object end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == '}' {\n\t\tdst, src = append(dst, '}'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tvar names *objectNamespace\n\tif !e.options.AllowDuplicateNames {\n\t\te.namespaces.push()\n\t\tdefer e.namespaces.pop()\n\t\tnames = e.namespaces.last()\n\t}\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append object name.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tn0 := len(dst) // offset before calling reformatString\n\t\tn := consumeSimpleString(src)\n\t\tif n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t} else {\n\t\t\tdst, src, err = reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && !names.insertQuoted(dst[n0:], false) {\n\t\t\treturn dst, src, &SyntacticError{str: \"duplicate name \" + string(dst[n0:]) + \" in object\"}\n\t\t}\n\n\t\t// Append colon.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tif src[0] != ':' {\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object name (expecting ':')\")\n\t\t}\n\t\tdst, src = append(dst, ':'), src[1:]\n\t\tif e.options.multiline {\n\t\t\tdst = append(dst, ' ')\n\t\t}\n\n\t\t// Append object value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or object end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, '}'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// reformatArray parses a JSON array from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatArray(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append array start.\n\tif src[0] != '[' {\n\t\tpanic(\"BUG: reformatArray must be called with a buffer that starts with '['\")\n\t}\n\tdst, src = append(dst, '['), src[1:]\n\n\t// Append (possible) array end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == ']' {\n\t\tdst, src = append(dst, ']'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append array value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or array end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, ']'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// OutputOffset returns the current output byte offset. It gives the location\n// of the next byte immediately after the most recently written token or value.\n// The number of bytes actually written to the underlying io.Writer may be less\n// than this offset due to internal buffering effects.\nfunc (e *Encoder) OutputOffset() int64 {\n\treturn e.previousOffsetEnd()\n}\n\n// UnusedBuffer returns a zero-length buffer with a possible non-zero capacity.\n// This buffer is intended to be used to populate a RawValue\n// being passed to an immediately succeeding WriteValue call.\n//\n// Example usage:\n//\n//\tb := d.UnusedBuffer()\n//\tb = append(b, '\"')\n//\tb = appendString(b, v) // append the string formatting of v\n//\tb = append(b, '\"')\n//\t... := d.WriteValue(b)\n//\n// It is the user's responsibility to ensure that the value is valid JSON.\nfunc (e *Encoder) UnusedBuffer() []byte {\n\t// NOTE: We don't return e.buf[len(e.buf):cap(e.buf)] since WriteValue would\n\t// need to take special care to avoid mangling the data while reformatting.\n\t// WriteValue can't easily identify whether the input RawValue aliases e.buf\n\t// without using unsafe.Pointer. Thus, we just return a different buffer.\n\t// Should this ever alias e.buf, we need to consider how it operates with\n\t// the specialized performance optimization for bytes.Buffer.\n\tn := 1 << bits.Len(uint(e.maxValue|63)) // fast approximation for max length\n\tif cap(e.unusedCache) < n {\n\t\te.unusedCache = make([]byte, 0, n)\n\t}\n\treturn e.unusedCache\n}\n\n// StackDepth returns the depth of the state machine for written JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (e *Encoder) StackDepth() int {\n\t// NOTE: Keep in sync with Decoder.StackDepth.\n\treturn e.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (e *Encoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Decoder.StackIndex.\n\tswitch s := e.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently written value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (e *Encoder) StackPointer() string {\n\te.names.copyQuotedBuffer(e.buf)\n\treturn string(e.appendStackPointer(nil))\n}\n\n// appendString appends src to dst as a JSON string per RFC 7159, section 7.\n//\n// If validateUTF8 is specified, this rejects input that contains invalid UTF-8\n// otherwise invalid bytes are replaced with the Unicode replacement character.\n// If escapeRune is provided, it specifies which runes to escape using\n// hexadecimal sequences. If nil, the shortest representable form is used,\n// which is also the canonical form for strings (RFC 8785, section 3.2.2.2).\n//\n// Note that this API allows full control over the formatting of strings\n// except for whether a forward solidus '/' may be formatted as '\\/' and\n// the casing of hexadecimal Unicode escape sequences.\nfunc appendString(dst []byte, src string, validateUTF8 bool, escapeRune func(rune) bool) ([]byte, error) {\n\tappendEscapedASCII := func(dst []byte, c byte) []byte {\n\t\tswitch c {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', c)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, \"\\\\b\"...)\n\t\tcase '\\f':\n\t\t\tdst = append(dst, \"\\\\f\"...)\n\t\tcase '\\n':\n\t\t\tdst = append(dst, \"\\\\n\"...)\n\t\tcase '\\r':\n\t\t\tdst = append(dst, \"\\\\r\"...)\n\t\tcase '\\t':\n\t\t\tdst = append(dst, \"\\\\t\"...)\n\t\tdefault:\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(c))\n\t\t}\n\t\treturn dst\n\t}\n\tappendEscapedUnicode := func(dst []byte, r rune) []byte {\n\t\tif r1, r2 := utf16.EncodeRune(r); r1 != '\\ufffd' && r2 != '\\ufffd' {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r1))\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r2))\n\t\t} else {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r))\n\t\t}\n\t\treturn dst\n\t}\n\n\t// Optimize for when escapeRune is nil.\n\tif escapeRune == nil {\n\t\tvar i, n int\n\t\tdst = append(dst, '\"')\n\t\tfor uint(len(src)) > uint(n) {\n\t\t\t// Handle single-byte ASCII.\n\t\t\tif c := src[n]; c < utf8.RuneSelf {\n\t\t\t\tn++\n\t\t\t\tif c < ' ' || c == '\"' || c == '\\\\' {\n\t\t\t\t\tdst = append(dst, src[i:n-1]...)\n\t\t\t\t\tdst = appendEscapedASCII(dst, c)\n\t\t\t\t\ti = n\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Handle multi-byte Unicode.\n\t\t\t_, rn := utf8.DecodeRuneInString(src[n:])\n\t\t\tn += rn\n\t\t\tif rn == 1 { // must be utf8.RuneError since we already checked for single-byte ASCII\n\t\t\t\tdst = append(dst, src[i:n-rn]...)\n\t\t\t\tif validateUTF8 {\n\t\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t\t}\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t\ti = n\n\t\t\t}\n\t\t}\n\t\tdst = append(dst, src[i:n]...)\n\t\tdst = append(dst, '\"')\n\t\treturn dst, nil\n\t}\n\n\t// Slower implementation for when escapeRune is non-nil.\n\tvar i, n int\n\tdst = append(dst, '\"')\n\tfor uint(len(src)) > uint(n) {\n\t\tswitch r, rn := utf8.DecodeRuneInString(src[n:]); {\n\t\tcase r == utf8.RuneError && rn == 1:\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tif escapeRune('\\ufffd') {\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t} else {\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t}\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase escapeRune(r):\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedUnicode(dst, r)\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase r < ' ' || r == '\"' || r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedASCII(dst, byte(r))\n\t\t\tn += rn\n\t\t\ti = n\n\t\tdefault:\n\t\t\tn += rn\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\tdst = append(dst, '\"')\n\treturn dst, nil\n}\n\n// reformatString consumes a JSON string from src and appends it to dst,\n// reformatting it if necessary for the given escapeRune parameter.\n// It returns the appended output and the remainder of the input.\nfunc reformatString(dst, src []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, []byte, error) {\n\t// TODO: Should this update valueFlags as input?\n\tvar flags valueFlags\n\tn, err := consumeString(&flags, src, validateUTF8)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif preserveRaw || (escapeRune == nil && flags.isCanonical()) {\n\t\tdst = append(dst, src[:n]...) // copy the string verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// TODO: Implement a direct, raw-to-raw reformat for strings.\n\t// If the escapeRune option would have resulted in no changes to the output,\n\t// it would be faster to simply append src to dst without going through\n\t// an intermediary representation in a separate buffer.\n\tb, _ := unescapeString(make([]byte, 0, n), src[:n])\n\tdst, _ = appendString(dst, string(b), validateUTF8, escapeRune)\n\treturn dst, src[n:], nil\n}\n\n// appendNumber appends src to dst as a JSON number per RFC 7159, section 6.\n// It formats numbers similar to the ES6 number-to-string conversion.\n// See https://go.dev/issue/14135.\n//\n// The output is identical to ECMA-262, 6th edition, section 7.1.12.1 and with\n// RFC 8785, section 3.2.2.3 for 64-bit floating-point numbers except for -0,\n// which is formatted as -0 instead of just 0.\n//\n// For 32-bit floating-point numbers,\n// the output is a 32-bit equivalent of the algorithm.\n// Note that ECMA-262 specifies no algorithm for 32-bit numbers.\nfunc appendNumber(dst []byte, src float64, bits int) []byte {\n\tif bits == 32 {\n\t\tsrc = float64(float32(src))\n\t}\n\n\tabs := math.Abs(src)\n\tfmt := byte('f')\n\tif abs != 0 {\n\t\tif bits == 64 && (float64(abs) < 1e-6 || float64(abs) >= 1e21) ||\n\t\t\tbits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tdst = strconv.AppendFloat(dst, src, fmt, -1, bits)\n\tif fmt == 'e' {\n\t\t// Clean up e-09 to e-9.\n\t\tn := len(dst)\n\t\tif n >= 4 && dst[n-4] == 'e' && dst[n-3] == '-' && dst[n-2] == '0' {\n\t\t\tdst[n-2] = dst[n-1]\n\t\t\tdst = dst[:n-1]\n\t\t}\n\t}\n\treturn dst\n}\n\n// reformatNumber consumes a JSON string from src and appends it to dst,\n// canonicalizing it if specified.\n// It returns the appended output and the remainder of the input.\nfunc reformatNumber(dst, src []byte, canonicalize bool) ([]byte, []byte, error) {\n\tn, err := consumeNumber(src)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif !canonicalize {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// Canonicalize the number per RFC 8785, section 3.2.2.3.\n\t// As an optimization, we can copy integer numbers below 2⁵³ verbatim.\n\tconst maxExactIntegerDigits = 16 // len(strconv.AppendUint(nil, 1<<53, 10))\n\tif n < maxExactIntegerDigits && consumeSimpleNumber(src[:n]) == n {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\tfv, _ := strconv.ParseFloat(string(src[:n]), 64)\n\tswitch {\n\tcase fv == 0:\n\t\tfv = 0 // normalize negative zero as just zero\n\tcase math.IsInf(fv, +1):\n\t\tfv = +math.MaxFloat64\n\tcase math.IsInf(fv, -1):\n\t\tfv = -math.MaxFloat64\n\t}\n\treturn appendNumber(dst, fv, 64), src[n:], nil\n}\n\n// appendHexUint16 appends src to dst as a 4-byte hexadecimal number.\nfunc appendHexUint16(dst []byte, src uint16) []byte {\n\tdst = append(dst, \"0000\"[1+(bits.Len16(src)-1)/4:]...)\n\tdst = strconv.AppendUint(dst, uint64(src), 16)\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/errors.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\nconst errorPrefix = \"json: \"\n\n// Error matches errors returned by this package according to errors.Is.\nconst Error = jsonError(\"json error\")\n\ntype jsonError string\n\nfunc (e jsonError) Error() string {\n\treturn string(e)\n}\nfunc (e jsonError) Is(target error) bool {\n\treturn e == target || target == Error\n}\n\ntype ioError struct {\n\taction string // either \"read\" or \"write\"\n\terr    error\n}\n\nfunc (e *ioError) Error() string {\n\treturn errorPrefix + e.action + \" error: \" + e.err.Error()\n}\nfunc (e *ioError) Unwrap() error {\n\treturn e.err\n}\nfunc (e *ioError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.err, target)\n}\n\n// SemanticError describes an error determining the meaning\n// of JSON data as Go data or vice-versa.\n//\n// The contents of this error as produced by this package may change over time.\ntype SemanticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\taction string // either \"marshal\" or \"unmarshal\"\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\t// JSONPointer indicates that an error occurred within this JSON value\n\t// as indicated using the JSON Pointer notation (see RFC 6901).\n\tJSONPointer string\n\n\t// JSONKind is the JSON kind that could not be handled.\n\tJSONKind Kind // may be zero if unknown\n\t// GoType is the Go type that could not be handled.\n\tGoType reflect.Type // may be nil if unknown\n\n\t// Err is the underlying error.\n\tErr error // may be nil\n}\n\nfunc (e *SemanticError) Error() string {\n\tvar sb strings.Builder\n\tsb.WriteString(errorPrefix)\n\n\t// Hyrum-proof the error message by deliberately switching between\n\t// two equivalent renderings of the same error message.\n\t// The randomization is tied to the Hyrum-proofing already applied\n\t// on map iteration in Go.\n\tfor phrase := range map[string]struct{}{\"cannot\": {}, \"unable to\": {}} {\n\t\tsb.WriteString(phrase)\n\t\tbreak // use whichever phrase we get in the first iteration\n\t}\n\n\t// Format action.\n\tvar preposition string\n\tswitch e.action {\n\tcase \"marshal\":\n\t\tsb.WriteString(\" marshal\")\n\t\tpreposition = \" from\"\n\tcase \"unmarshal\":\n\t\tsb.WriteString(\" unmarshal\")\n\t\tpreposition = \" into\"\n\tdefault:\n\t\tsb.WriteString(\" handle\")\n\t\tpreposition = \" with\"\n\t}\n\n\t// Format JSON kind.\n\tvar omitPreposition bool\n\tswitch e.JSONKind {\n\tcase 'n':\n\t\tsb.WriteString(\" JSON null\")\n\tcase 'f', 't':\n\t\tsb.WriteString(\" JSON boolean\")\n\tcase '\"':\n\t\tsb.WriteString(\" JSON string\")\n\tcase '0':\n\t\tsb.WriteString(\" JSON number\")\n\tcase '{', '}':\n\t\tsb.WriteString(\" JSON object\")\n\tcase '[', ']':\n\t\tsb.WriteString(\" JSON array\")\n\tdefault:\n\t\tomitPreposition = true\n\t}\n\n\t// Format Go type.\n\tif e.GoType != nil {\n\t\tif !omitPreposition {\n\t\t\tsb.WriteString(preposition)\n\t\t}\n\t\tsb.WriteString(\" Go value of type \")\n\t\tsb.WriteString(e.GoType.String())\n\t}\n\n\t// Format where.\n\tswitch {\n\tcase e.JSONPointer != \"\":\n\t\tsb.WriteString(\" within JSON value at \")\n\t\tsb.WriteString(strconv.Quote(e.JSONPointer))\n\tcase e.ByteOffset > 0:\n\t\tsb.WriteString(\" after byte offset \")\n\t\tsb.WriteString(strconv.FormatInt(e.ByteOffset, 10))\n\t}\n\n\t// Format underlying error.\n\tif e.Err != nil {\n\t\tsb.WriteString(\": \")\n\t\tsb.WriteString(e.Err.Error())\n\t}\n\n\treturn sb.String()\n}\nfunc (e *SemanticError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.Err, target)\n}\nfunc (e *SemanticError) Unwrap() error {\n\treturn e.Err\n}\n\n// SyntacticError is a description of a syntactic error that occurred when\n// encoding or decoding JSON according to the grammar.\n//\n// The contents of this error as produced by this package may change over time.\ntype SyntacticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\tstr        string\n}\n\nfunc (e *SyntacticError) Error() string {\n\treturn errorPrefix + e.str\n}\nfunc (e *SyntacticError) Is(target error) bool {\n\treturn e == target || target == Error\n}\nfunc (e *SyntacticError) withOffset(pos int64) error {\n\treturn &SyntacticError{ByteOffset: pos, str: e.str}\n}\n\nfunc newInvalidCharacterError(prefix []byte, where string) *SyntacticError {\n\twhat := quoteRune(prefix)\n\treturn &SyntacticError{str: \"invalid character \" + what + \" \" + where}\n}\n\nfunc quoteRune(b []byte) string {\n\tr, n := utf8.DecodeRune(b)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn `'\\x` + strconv.FormatUint(uint64(b[0]), 16) + `'`\n\t}\n\treturn strconv.QuoteRune(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/fields.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nvar errIgnoredField = errors.New(\"ignored field\")\n\ntype isZeroer interface {\n\tIsZero() bool\n}\n\nvar isZeroerType = reflect.TypeOf((*isZeroer)(nil)).Elem()\n\ntype structFields struct {\n\tflattened       []structField // listed in depth-first ordering\n\tbyActualName    map[string]*structField\n\tbyFoldedName    map[string][]*structField\n\tinlinedFallback *structField\n}\n\ntype structField struct {\n\tid      int   // unique numeric ID in breadth-first ordering\n\tindex   []int // index into a struct according to reflect.Type.FieldByIndex\n\ttyp     reflect.Type\n\tfncs    *arshaler\n\tisZero  func(addressableValue) bool\n\tisEmpty func(addressableValue) bool\n\tfieldOptions\n}\n\nfunc makeStructFields(root reflect.Type) (structFields, *SemanticError) {\n\tvar fs structFields\n\tfs.byActualName = make(map[string]*structField, root.NumField())\n\tfs.byFoldedName = make(map[string][]*structField, root.NumField())\n\n\t// ambiguous is a sentinel value to indicate that at least two fields\n\t// at the same depth have the same name, and thus cancel each other out.\n\t// This follows the same rules as selecting a field on embedded structs\n\t// where the shallowest field takes precedence. If more than one field\n\t// exists at the shallowest depth, then the selection is illegal.\n\t// See https://go.dev/ref/spec#Selectors.\n\tambiguous := new(structField)\n\n\t// Setup a queue for a breath-first search.\n\tvar queueIndex int\n\ttype queueEntry struct {\n\t\ttyp           reflect.Type\n\t\tindex         []int\n\t\tvisitChildren bool // whether to recursively visit inlined field in this struct\n\t}\n\tqueue := []queueEntry{{root, nil, true}}\n\tseen := map[reflect.Type]bool{root: true}\n\n\t// Perform a breadth-first search over all reachable fields.\n\t// This ensures that len(f.index) will be monotonically increasing.\n\tfor queueIndex < len(queue) {\n\t\tqe := queue[queueIndex]\n\t\tqueueIndex++\n\n\t\tt := qe.typ\n\t\tinlinedFallbackIndex := -1         // index of last inlined fallback field in current struct\n\t\tnamesIndex := make(map[string]int) // index of each field with a given JSON object name in current struct\n\t\tvar hasAnyJSONTag bool             // whether any Go struct field has a `json` tag\n\t\tvar hasAnyJSONField bool           // whether any JSON serializable fields exist in current struct\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tsf := t.Field(i)\n\t\t\t_, hasTag := sf.Tag.Lookup(\"json\")\n\t\t\thasAnyJSONTag = hasAnyJSONTag || hasTag\n\t\t\toptions, err := parseFieldOptions(sf)\n\t\t\tif err != nil {\n\t\t\t\tif err == errIgnoredField {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t}\n\t\t\thasAnyJSONField = true\n\t\t\tf := structField{\n\t\t\t\t// Allocate a new slice (len=N+1) to hold both\n\t\t\t\t// the parent index (len=N) and the current index (len=1).\n\t\t\t\t// Do this to avoid clobbering the memory of the parent index.\n\t\t\t\tindex:        append(append(make([]int, 0, len(qe.index)+1), qe.index...), i),\n\t\t\t\ttyp:          sf.Type,\n\t\t\t\tfieldOptions: options,\n\t\t\t}\n\t\t\tif sf.Anonymous && !f.hasName {\n\t\t\t\tf.inline = true // implied by use of Go embedding without an explicit name\n\t\t\t}\n\t\t\tif f.inline || f.unknown {\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// zero or more JSON object members.\n\n\t\t\t\tif f.inline && f.unknown {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have both `inline` and `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tswitch f.fieldOptions {\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, inline: true}:\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, unknown: true}:\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have any options other than `inline` or `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Unwrap one level of pointer indirection similar to how Go\n\t\t\t\t// only allows embedding either T or *T, but not **T.\n\t\t\t\ttf := f.typ\n\t\t\t\tif tf.Kind() == reflect.Pointer && tf.Name() == \"\" {\n\t\t\t\t\ttf = tf.Elem()\n\t\t\t\t}\n\t\t\t\t// Reject any types with custom serialization otherwise\n\t\t\t\t// it becomes impossible to know what sub-fields to inline.\n\t\t\t\tif which, _ := implementsWhich(tf,\n\t\t\t\t\tjsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType,\n\t\t\t\t\tjsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType,\n\t\t\t\t); which != nil && tf != rawValueType {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must not implement JSON marshal or unmarshal methods\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// a finite number of JSON object members backed by a Go struct.\n\t\t\t\tif tf.Kind() == reflect.Struct {\n\t\t\t\t\tif f.unknown {\n\t\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s with `unknown` tag must be a Go map of string key or a json.RawValue\", sf.Name, tf)\n\t\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t\t}\n\t\t\t\t\tif qe.visitChildren {\n\t\t\t\t\t\tqueue = append(queue, queueEntry{tf, f.index, !seen[tf]})\n\t\t\t\t\t}\n\t\t\t\t\tseen[tf] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from any number of\n\t\t\t\t// JSON object members back by a Go map or RawValue.\n\t\t\t\tswitch {\n\t\t\t\tcase tf == rawValueType:\n\t\t\t\t\tf.fncs = nil // specially handled in arshal_inlined.go\n\t\t\t\tcase tf.Kind() == reflect.Map && tf.Key() == stringType:\n\t\t\t\t\tf.fncs = lookupArshaler(tf.Elem())\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must be a Go struct, Go map of string key, or json.RawValue\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Reject multiple inlined fallback fields within the same struct.\n\t\t\t\tif inlinedFallbackIndex >= 0 {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct fields %s and %s cannot both be a Go map or json.RawValue\", t.Field(inlinedFallbackIndex).Name, sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tinlinedFallbackIndex = i\n\n\t\t\t\t// Multiple inlined fallback fields across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif fs.inlinedFallback == nil {\n\t\t\t\t\tfs.inlinedFallback = &f // store first occurrence at lowest depth\n\t\t\t\t} else if len(fs.inlinedFallback.index) == len(f.index) {\n\t\t\t\t\tfs.inlinedFallback = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle normal Go struct field that serializes to/from\n\t\t\t\t// a single JSON object member.\n\n\t\t\t\t// Provide a function that uses a type's IsZero method.\n\t\t\t\tswitch {\n\t\t\t\tcase sf.Type.Kind() == reflect.Interface && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on a nil interface or\n\t\t\t\t\t\t// non-nil interface with nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || (va.Elem().Kind() == reflect.Pointer && va.Elem().IsNil()) || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Kind() == reflect.Pointer && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Interface().(isZeroer).IsZero() }\n\t\t\t\tcase reflect.PointerTo(sf.Type).Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Addr().Interface().(isZeroer).IsZero() }\n\t\t\t\t}\n\n\t\t\t\t// Provide a function that can determine whether the value would\n\t\t\t\t// serialize as an empty JSON value.\n\t\t\t\tswitch sf.Type.Kind() {\n\t\t\t\tcase reflect.String, reflect.Map, reflect.Array, reflect.Slice:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.Len() == 0 }\n\t\t\t\tcase reflect.Pointer, reflect.Interface:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.IsNil() }\n\t\t\t\t}\n\n\t\t\t\tf.id = len(fs.flattened)\n\t\t\t\tf.fncs = lookupArshaler(sf.Type)\n\t\t\t\tfs.flattened = append(fs.flattened, f)\n\n\t\t\t\t// Reject user-specified names with invalid UTF-8.\n\t\t\t\tif !utf8.ValidString(f.name) {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s has JSON object name %q with invalid UTF-8\", sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t// Reject multiple fields with same name within the same struct.\n\t\t\t\tif j, ok := namesIndex[f.name]; ok {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct fields %s and %s conflict over JSON object name %q\", t.Field(j).Name, sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tnamesIndex[f.name] = i\n\n\t\t\t\t// Multiple fields of the same name across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif f2 := fs.byActualName[f.name]; f2 == nil {\n\t\t\t\t\tfs.byActualName[f.name] = &fs.flattened[len(fs.flattened)-1] // store first occurrence at lowest depth\n\t\t\t\t} else if len(f2.index) == len(f.index) {\n\t\t\t\t\tfs.byActualName[f.name] = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// NOTE: New users to the json package are occasionally surprised that\n\t\t// unexported fields are ignored. This occurs by necessity due to our\n\t\t// inability to directly introspect such fields with Go reflection\n\t\t// without the use of unsafe.\n\t\t//\n\t\t// To reduce friction here, refuse to serialize any Go struct that\n\t\t// has no JSON serializable fields, has at least one Go struct field,\n\t\t// and does not have any `json` tags present. For example,\n\t\t// errors returned by errors.New would fail to serialize.\n\t\tisEmptyStruct := t.NumField() == 0\n\t\tif !isEmptyStruct && !hasAnyJSONTag && !hasAnyJSONField {\n\t\t\terr := errors.New(\"Go struct has no exported fields\")\n\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t}\n\t}\n\n\t// Remove all fields that are duplicates.\n\t// This may move elements forward to fill the holes from removed fields.\n\tvar n int\n\tfor _, f := range fs.flattened {\n\t\tswitch f2 := fs.byActualName[f.name]; {\n\t\tcase f2 == ambiguous:\n\t\t\tdelete(fs.byActualName, f.name)\n\t\tcase f2 == nil:\n\t\t\tcontinue // may be nil due to previous delete\n\t\t// TODO(https://go.dev/issue/45955): Use slices.Equal.\n\t\tcase reflect.DeepEqual(f.index, f2.index):\n\t\t\tf.id = n\n\t\t\tfs.flattened[n] = f\n\t\t\tfs.byActualName[f.name] = &fs.flattened[n] // fix pointer to new location\n\t\t\tn++\n\t\t}\n\t}\n\tfs.flattened = fs.flattened[:n]\n\tif fs.inlinedFallback == ambiguous {\n\t\tfs.inlinedFallback = nil\n\t}\n\tif len(fs.flattened) != len(fs.byActualName) {\n\t\tpanic(fmt.Sprintf(\"BUG: flattened list of fields mismatches fields mapped by name: %d != %d\", len(fs.flattened), len(fs.byActualName)))\n\t}\n\n\t// Sort the fields according to a depth-first ordering.\n\t// This operation will cause pointers in byActualName to become incorrect,\n\t// which we will correct in another loop shortly thereafter.\n\tsort.Slice(fs.flattened, func(i, j int) bool {\n\t\tsi := fs.flattened[i].index\n\t\tsj := fs.flattened[j].index\n\t\tfor len(si) > 0 && len(sj) > 0 {\n\t\t\tswitch {\n\t\t\tcase si[0] < sj[0]:\n\t\t\t\treturn true\n\t\t\tcase si[0] > sj[0]:\n\t\t\t\treturn false\n\t\t\tdefault:\n\t\t\t\tsi = si[1:]\n\t\t\t\tsj = sj[1:]\n\t\t\t}\n\t\t}\n\t\treturn len(si) < len(sj)\n\t})\n\n\t// Recompute the mapping of fields in the byActualName map.\n\t// Pre-fold all names so that we can lookup folded names quickly.\n\tfor i, f := range fs.flattened {\n\t\tfoldedName := string(foldName([]byte(f.name)))\n\t\tfs.byActualName[f.name] = &fs.flattened[i]\n\t\tfs.byFoldedName[foldedName] = append(fs.byFoldedName[foldedName], &fs.flattened[i])\n\t}\n\tfor foldedName, fields := range fs.byFoldedName {\n\t\tif len(fields) > 1 {\n\t\t\t// The precedence order for conflicting nocase names\n\t\t\t// is by breadth-first order, rather than depth-first order.\n\t\t\tsort.Slice(fields, func(i, j int) bool {\n\t\t\t\treturn fields[i].id < fields[j].id\n\t\t\t})\n\t\t\tfs.byFoldedName[foldedName] = fields\n\t\t}\n\t}\n\n\treturn fs, nil\n}\n\ntype fieldOptions struct {\n\tname       string\n\tquotedName string // quoted name per RFC 8785, section 3.2.2.2.\n\thasName    bool\n\tnocase     bool\n\tinline     bool\n\tunknown    bool\n\tomitzero   bool\n\tomitempty  bool\n\tstring     bool\n\tformat     string\n}\n\n// parseFieldOptions parses the `json` tag in a Go struct field as\n// a structured set of options configuring parameters such as\n// the JSON member name and other features.\n// As a special case, it returns errIgnoredField if the field is ignored.\nfunc parseFieldOptions(sf reflect.StructField) (out fieldOptions, err error) {\n\ttag, hasTag := sf.Tag.Lookup(\"json\")\n\n\t// Check whether this field is explicitly ignored.\n\tif tag == \"-\" {\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Check whether this field is unexported.\n\tif !sf.IsExported() {\n\t\t// In contrast to v1, v2 no longer forwards exported fields from\n\t\t// embedded fields of unexported types since Go reflection does not\n\t\t// allow the same set of operations that are available in normal cases\n\t\t// of purely exported fields.\n\t\t// See https://go.dev/issue/21357 and https://go.dev/issue/24153.\n\t\tif sf.Anonymous {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"embedded Go struct field %s of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\", sf.Type.Name())\n\t\t}\n\t\t// Tag options specified on an unexported field suggests user error.\n\t\tif hasTag {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"unexported Go struct field %s cannot have non-ignored `json:%q` tag\", sf.Name, tag)\n\t\t}\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Determine the JSON member name for this Go field. A user-specified name\n\t// may be provided as either an identifier or a single-quoted string.\n\t// The single-quoted string allows arbitrary characters in the name.\n\t// See https://go.dev/issue/2718 and https://go.dev/issue/3546.\n\tout.name = sf.Name // always starts with an uppercase character\n\tif len(tag) > 0 && !strings.HasPrefix(tag, \",\") {\n\t\t// For better compatibility with v1, accept almost any unescaped name.\n\t\tn := len(tag) - len(strings.TrimLeftFunc(tag, func(r rune) bool {\n\t\t\treturn !strings.ContainsRune(\",\\\\'\\\"`\", r) // reserve comma, backslash, and quotes\n\t\t}))\n\t\topt := tag[:n]\n\t\tif n == 0 {\n\t\t\t// Allow a single quoted string for arbitrary names.\n\t\t\topt, n, err = consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t\t}\n\t\t}\n\t\tout.hasName = true\n\t\tout.name = opt\n\t\ttag = tag[n:]\n\t}\n\tb, _ := appendString(nil, out.name, false, nil)\n\tout.quotedName = string(b)\n\n\t// Handle any additional tag options (if any).\n\tvar wasFormat bool\n\tseenOpts := make(map[string]bool)\n\tfor len(tag) > 0 {\n\t\t// Consume comma delimiter.\n\t\tif tag[0] != ',' {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid character %q before next option (expecting ',')\", sf.Name, tag[0])\n\t\t}\n\t\ttag = tag[len(\",\"):]\n\t\tif len(tag) == 0 {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid trailing ',' character\", sf.Name)\n\t\t}\n\n\t\t// Consume and process the tag option.\n\t\topt, n, err := consumeTagOption(tag)\n\t\tif err != nil {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t}\n\t\trawOpt := tag[:n]\n\t\ttag = tag[n:]\n\t\tswitch {\n\t\tcase wasFormat:\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has `format` tag option that was not specified last\", sf.Name)\n\t\tcase strings.HasPrefix(rawOpt, \"'\") && strings.TrimFunc(opt, isLetterOrDigit) == \"\":\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has unnecessarily quoted appearance of `%s` tag option; specify `%s` instead\", sf.Name, rawOpt, opt)\n\t\t}\n\t\tswitch opt {\n\t\tcase \"nocase\":\n\t\t\tout.nocase = true\n\t\tcase \"inline\":\n\t\t\tout.inline = true\n\t\tcase \"unknown\":\n\t\t\tout.unknown = true\n\t\tcase \"omitzero\":\n\t\t\tout.omitzero = true\n\t\tcase \"omitempty\":\n\t\t\tout.omitempty = true\n\t\tcase \"string\":\n\t\t\tout.string = true\n\t\tcase \"format\":\n\t\t\tif !strings.HasPrefix(tag, \":\") {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s is missing value for `format` tag option\", sf.Name)\n\t\t\t}\n\t\t\ttag = tag[len(\":\"):]\n\t\t\topt, n, err := consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed value for `format` tag option: %v\", sf.Name, err)\n\t\t\t}\n\t\t\ttag = tag[n:]\n\t\t\tout.format = opt\n\t\t\twasFormat = true\n\t\tdefault:\n\t\t\t// Reject keys that resemble one of the supported options.\n\t\t\t// This catches invalid mutants such as \"omitEmpty\" or \"omit_empty\".\n\t\t\tnormOpt := strings.ReplaceAll(strings.ToLower(opt), \"_\", \"\")\n\t\t\tswitch normOpt {\n\t\t\tcase \"nocase\", \"inline\", \"unknown\", \"omitzero\", \"omitempty\", \"string\", \"format\":\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has invalid appearance of `%s` tag option; specify `%s` instead\", sf.Name, opt, normOpt)\n\t\t\t}\n\n\t\t\t// NOTE: Everything else is ignored. This does not mean it is\n\t\t\t// forward compatible to insert arbitrary tag options since\n\t\t\t// a future version of this package may understand that tag.\n\t\t}\n\n\t\t// Reject duplicates.\n\t\tif seenOpts[opt] {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has duplicate appearance of `%s` tag option\", sf.Name, rawOpt)\n\t\t}\n\t\tseenOpts[opt] = true\n\t}\n\treturn out, nil\n}\n\nfunc consumeTagOption(in string) (string, int, error) {\n\tswitch r, _ := utf8.DecodeRuneInString(in); {\n\t// Option as a Go identifier.\n\tcase r == '_' || unicode.IsLetter(r):\n\t\tn := len(in) - len(strings.TrimLeftFunc(in, isLetterOrDigit))\n\t\treturn in[:n], n, nil\n\t// Option as a single-quoted string.\n\tcase r == '\\'':\n\t\t// The grammar is nearly identical to a double-quoted Go string literal,\n\t\t// but uses single quotes as the terminators. The reason for a custom\n\t\t// grammar is because both backtick and double quotes cannot be used\n\t\t// verbatim in a struct tag.\n\t\t//\n\t\t// Convert a single-quoted string to a double-quote string and rely on\n\t\t// strconv.Unquote to handle the rest.\n\t\tvar inEscape bool\n\t\tb := []byte{'\"'}\n\t\tn := len(`'`)\n\t\tfor len(in) > n {\n\t\t\tr, rn := utf8.DecodeRuneInString(in[n:])\n\t\t\tswitch {\n\t\t\tcase inEscape:\n\t\t\t\tif r == '\\'' {\n\t\t\t\t\tb = b[:len(b)-1] // remove escape character: `\\'` => `'`\n\t\t\t\t}\n\t\t\t\tinEscape = false\n\t\t\tcase r == '\\\\':\n\t\t\t\tinEscape = true\n\t\t\tcase r == '\"':\n\t\t\t\tb = append(b, '\\\\') // insert escape character: `\"` => `\\\"`\n\t\t\tcase r == '\\'':\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tn += len(`'`)\n\t\t\t\tout, err := strconv.Unquote(string(b))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", 0, fmt.Errorf(\"invalid single-quoted string: %s\", in[:n])\n\t\t\t\t}\n\t\t\t\treturn out, n, nil\n\t\t\t}\n\t\t\tb = append(b, in[n:][:rn]...)\n\t\t\tn += rn\n\t\t}\n\t\tif n > 10 {\n\t\t\tn = 10 // limit the amount of context printed in the error\n\t\t}\n\t\treturn \"\", 0, fmt.Errorf(\"single-quoted string not terminated: %s...\", in[:n])\n\tcase len(in) == 0:\n\t\treturn \"\", 0, io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn \"\", 0, fmt.Errorf(\"invalid character %q at start of option (expecting Unicode letter or single quote)\", r)\n\t}\n}\n\nfunc isLetterOrDigit(r rune) bool {\n\treturn r == '_' || unicode.IsLetter(r) || unicode.IsNumber(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/fold.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// foldName returns a folded string such that foldName(x) == foldName(y)\n// is similar to strings.EqualFold(x, y), but ignores underscore and dashes.\n// This allows foldName to match common naming conventions.\nfunc foldName(in []byte) []byte {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\tvar arr [32]byte // large enough for most JSON names\n\treturn appendFoldedName(arr[:0], in)\n}\nfunc appendFoldedName(out, in []byte) []byte {\n\tfor i := 0; i < len(in); {\n\t\t// Handle single-byte ASCII.\n\t\tif c := in[i]; c < utf8.RuneSelf {\n\t\t\tif c != '_' && c != '-' {\n\t\t\t\tif 'a' <= c && c <= 'z' {\n\t\t\t\t\tc -= 'a' - 'A'\n\t\t\t\t}\n\t\t\t\tout = append(out, c)\n\t\t\t}\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// Handle multi-byte Unicode.\n\t\tr, n := utf8.DecodeRune(in[i:])\n\t\tout = utf8.AppendRune(out, foldRune(r))\n\t\ti += n\n\t}\n\treturn out\n}\n\n// foldRune is a variation on unicode.SimpleFold that returns the same rune\n// for all runes in the same fold set.\n//\n// Invariant:\n//\n//\tfoldRune(x) == foldRune(y) ⇔ strings.EqualFold(string(x), string(y))\nfunc foldRune(r rune) rune {\n\tfor {\n\t\tr2 := unicode.SimpleFold(r)\n\t\tif r2 <= r {\n\t\t\treturn r2 // smallest character in the fold set\n\t\t}\n\t\tr = r2\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/intern.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding/binary\"\n\t\"math/bits\"\n)\n\n// stringCache is a cache for strings converted from a []byte.\ntype stringCache [256]string // 256*unsafe.Sizeof(string(\"\")) => 4KiB\n\n// make returns the string form of b.\n// It returns a pre-allocated string from c if present, otherwise\n// it allocates a new string, inserts it into the cache, and returns it.\nfunc (c *stringCache) make(b []byte) string {\n\tconst (\n\t\tminCachedLen = 2   // single byte strings are already interned by the runtime\n\t\tmaxCachedLen = 256 // large enough for UUIDs, IPv6 addresses, SHA-256 checksums, etc.\n\t)\n\tif c == nil || len(b) < minCachedLen || len(b) > maxCachedLen {\n\t\treturn string(b)\n\t}\n\n\t// Compute a hash from the fixed-width prefix and suffix of the string.\n\t// This ensures hashing a string is a constant time operation.\n\tvar h uint32\n\tswitch {\n\tcase len(b) >= 8:\n\t\tlo := binary.LittleEndian.Uint64(b[:8])\n\t\thi := binary.LittleEndian.Uint64(b[len(b)-8:])\n\t\th = hash64(uint32(lo), uint32(lo>>32)) ^ hash64(uint32(hi), uint32(hi>>32))\n\tcase len(b) >= 4:\n\t\tlo := binary.LittleEndian.Uint32(b[:4])\n\t\thi := binary.LittleEndian.Uint32(b[len(b)-4:])\n\t\th = hash64(lo, hi)\n\tcase len(b) >= 2:\n\t\tlo := binary.LittleEndian.Uint16(b[:2])\n\t\thi := binary.LittleEndian.Uint16(b[len(b)-2:])\n\t\th = hash64(uint32(lo), uint32(hi))\n\t}\n\n\t// Check the cache for the string.\n\ti := h % uint32(len(*c))\n\tif s := (*c)[i]; s == string(b) {\n\t\treturn s\n\t}\n\ts := string(b)\n\t(*c)[i] = s\n\treturn s\n}\n\n// hash64 returns the hash of two uint32s as a single uint32.\nfunc hash64(lo, hi uint32) uint32 {\n\t// If avalanche=true, this is identical to XXH32 hash on a 8B string:\n\t//\tvar b [8]byte\n\t//\tbinary.LittleEndian.PutUint32(b[:4], lo)\n\t//\tbinary.LittleEndian.PutUint32(b[4:], hi)\n\t//\treturn xxhash.Sum32(b[:])\n\tconst (\n\t\tprime1 = 0x9e3779b1\n\t\tprime2 = 0x85ebca77\n\t\tprime3 = 0xc2b2ae3d\n\t\tprime4 = 0x27d4eb2f\n\t\tprime5 = 0x165667b1\n\t)\n\th := prime5 + uint32(8)\n\th += lo * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\th += hi * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\t// Skip final mix (avalanche) step of XXH32 for performance reasons.\n\t// Empirical testing shows that the improvements in unbiased distribution\n\t// does not outweigh the extra cost in computational complexity.\n\tconst avalanche = false\n\tif avalanche {\n\t\th ^= h >> 15\n\t\th *= prime2\n\t\th ^= h >> 13\n\t\th *= prime3\n\t\th ^= h >> 16\n\t}\n\treturn h\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/pools.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math/bits\"\n\t\"sort\"\n\t\"sync\"\n)\n\n// TODO(https://go.dev/issue/47657): Use sync.PoolOf.\n\nvar (\n\t// This owns the internal buffer since there is no io.Writer to output to.\n\t// Since the buffer can get arbitrarily large in normal usage,\n\t// there is statistical tracking logic to determine whether to recycle\n\t// the internal buffer or not based on a history of utilization.\n\tbufferedEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON before flushing it to the underlying io.Writer.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n)\n\n// bufferStatistics is statistics to track buffer utilization.\n// It is used to determine whether to recycle a buffer or not\n// to avoid https://go.dev/issue/23199.\ntype bufferStatistics struct {\n\tstrikes int // number of times the buffer was under-utilized\n\tprevLen int // length of previous buffer\n}\n\nfunc getBufferedEncoder(o EncodeOptions) *Encoder {\n\te := bufferedEncoderPool.Get().(*Encoder)\n\tif e.buf == nil {\n\t\t// Round up to nearest 2ⁿ to make best use of malloc size classes.\n\t\t// See runtime/sizeclasses.go on Go1.15.\n\t\t// Logical OR with 63 to ensure 64 as the minimum buffer size.\n\t\tn := 1 << bits.Len(uint(e.bufStats.prevLen|63))\n\t\te.buf = make([]byte, 0, n)\n\t}\n\te.reset(e.buf[:0], nil, o)\n\treturn e\n}\nfunc putBufferedEncoder(e *Encoder) {\n\t// Recycle large buffers only if sufficiently utilized.\n\t// If a buffer is under-utilized enough times sequentially,\n\t// then it is discarded, ensuring that a single large buffer\n\t// won't be kept alive by a continuous stream of small usages.\n\t//\n\t// The worst case utilization is computed as:\n\t//\tMIN_UTILIZATION_THRESHOLD / (1 + MAX_NUM_STRIKES)\n\t//\n\t// For the constants chosen below, this is (25%)/(1+4) ⇒ 5%.\n\t// This may seem low, but it ensures a lower bound on\n\t// the absolute worst-case utilization. Without this check,\n\t// this would be theoretically 0%, which is infinitely worse.\n\t//\n\t// See https://go.dev/issue/27735.\n\tswitch {\n\tcase cap(e.buf) <= 4<<10: // always recycle buffers smaller than 4KiB\n\t\te.bufStats.strikes = 0\n\tcase cap(e.buf)/4 <= len(e.buf): // at least 25% utilization\n\t\te.bufStats.strikes = 0\n\tcase e.bufStats.strikes < 4: // at most 4 strikes\n\t\te.bufStats.strikes++\n\tdefault: // discard the buffer; too large and too often under-utilized\n\t\te.bufStats.strikes = 0\n\t\te.bufStats.prevLen = len(e.buf) // heuristic for size to allocate next time\n\t\te.buf = nil\n\t}\n\tbufferedEncoderPool.Put(e)\n}\n\nfunc getStreamingEncoder(w io.Writer, o EncodeOptions) *Encoder {\n\tif _, ok := w.(*bytes.Buffer); ok {\n\t\te := bytesBufferEncoderPool.Get().(*Encoder)\n\t\te.reset(nil, w, o) // buffer taken from bytes.Buffer\n\t\treturn e\n\t} else {\n\t\te := streamingEncoderPool.Get().(*Encoder)\n\t\te.reset(e.buf[:0], w, o) // preserve existing buffer\n\t\treturn e\n\t}\n}\nfunc putStreamingEncoder(e *Encoder) {\n\tif _, ok := e.wr.(*bytes.Buffer); ok {\n\t\tbytesBufferEncoderPool.Put(e)\n\t} else {\n\t\tif cap(e.buf) > 64<<10 {\n\t\t\te.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingEncoderPool.Put(e)\n\t}\n}\n\nvar (\n\t// This does not own the internal buffer since it is externally provided.\n\tbufferedDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON fetched from the underlying io.Reader.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferDecoderPool = bufferedDecoderPool\n)\n\nfunc getBufferedDecoder(b []byte, o DecodeOptions) *Decoder {\n\td := bufferedDecoderPool.Get().(*Decoder)\n\td.reset(b, nil, o)\n\treturn d\n}\nfunc putBufferedDecoder(d *Decoder) {\n\tbufferedDecoderPool.Put(d)\n}\n\nfunc getStreamingDecoder(r io.Reader, o DecodeOptions) *Decoder {\n\tif _, ok := r.(*bytes.Buffer); ok {\n\t\td := bytesBufferDecoderPool.Get().(*Decoder)\n\t\td.reset(nil, r, o) // buffer taken from bytes.Buffer\n\t\treturn d\n\t} else {\n\t\td := streamingDecoderPool.Get().(*Decoder)\n\t\td.reset(d.buf[:0], r, o) // preserve existing buffer\n\t\treturn d\n\t}\n}\nfunc putStreamingDecoder(d *Decoder) {\n\tif _, ok := d.rd.(*bytes.Buffer); ok {\n\t\tbytesBufferDecoderPool.Put(d)\n\t} else {\n\t\tif cap(d.buf) > 64<<10 {\n\t\t\td.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingDecoderPool.Put(d)\n\t}\n}\n\nvar stringsPools = &sync.Pool{New: func() any { return new(stringSlice) }}\n\ntype stringSlice []string\n\n// getStrings returns a non-nil pointer to a slice with length n.\nfunc getStrings(n int) *stringSlice {\n\ts := stringsPools.Get().(*stringSlice)\n\tif cap(*s) < n {\n\t\t*s = make([]string, n)\n\t}\n\t*s = (*s)[:n]\n\treturn s\n}\n\nfunc putStrings(s *stringSlice) {\n\tif cap(*s) > 1<<10 {\n\t\t*s = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tstringsPools.Put(s)\n}\n\n// Sort sorts the string slice according to RFC 8785, section 3.2.3.\nfunc (ss *stringSlice) Sort() {\n\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\tsort.Sort(ss)\n}\n\nfunc (ss *stringSlice) Len() int           { return len(*ss) }\nfunc (ss *stringSlice) Less(i, j int) bool { return lessUTF16((*ss)[i], (*ss)[j]) }\nfunc (ss *stringSlice) Swap(i, j int)      { (*ss)[i], (*ss)[j] = (*ss)[j], (*ss)[i] }\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/state.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\nvar (\n\terrMissingName   = &SyntacticError{str: \"missing string for object name\"}\n\terrMissingColon  = &SyntacticError{str: \"missing character ':' after object name\"}\n\terrMissingValue  = &SyntacticError{str: \"missing value after object name\"}\n\terrMissingComma  = &SyntacticError{str: \"missing character ',' after object or array value\"}\n\terrMismatchDelim = &SyntacticError{str: \"mismatching structural token for object or array\"}\n)\n\nconst errInvalidNamespace = jsonError(\"object namespace is in an invalid state\")\n\ntype state struct {\n\t// tokens validates whether the next token kind is valid.\n\ttokens stateMachine\n\n\t// names is a stack of object names.\n\t// Not used if AllowDuplicateNames is true.\n\tnames objectNameStack\n\n\t// namespaces is a stack of object namespaces.\n\t// For performance reasons, Encoder or Decoder may not update this\n\t// if Marshal or Unmarshal is able to track names in a more efficient way.\n\t// See makeMapArshaler and makeStructArshaler.\n\t// Not used if AllowDuplicateNames is true.\n\tnamespaces objectNamespaceStack\n}\n\nfunc (s *state) reset() {\n\ts.tokens.reset()\n\ts.names.reset()\n\ts.namespaces.reset()\n}\n\n// appendStackPointer appends a JSON Pointer (RFC 6901) to the current value.\n// The returned pointer is only accurate if s.names is populated,\n// otherwise it uses the numeric index as the object member name.\n//\n// Invariant: Must call s.names.copyQuotedBuffer beforehand.\nfunc (s state) appendStackPointer(b []byte) []byte {\n\tvar objectDepth int\n\tfor i := 1; i < s.tokens.depth(); i++ {\n\t\te := s.tokens.index(i)\n\t\tif e.length() == 0 {\n\t\t\tbreak // empty object or array\n\t\t}\n\t\tb = append(b, '/')\n\t\tswitch {\n\t\tcase e.isObject():\n\t\t\tif objectDepth < s.names.length() {\n\t\t\t\tfor _, c := range s.names.getUnquoted(objectDepth) {\n\t\t\t\t\t// Per RFC 6901, section 3, escape '~' and '/' characters.\n\t\t\t\t\tswitch c {\n\t\t\t\t\tcase '~':\n\t\t\t\t\t\tb = append(b, \"~0\"...)\n\t\t\t\t\tcase '/':\n\t\t\t\t\t\tb = append(b, \"~1\"...)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tb = append(b, c)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Since the names stack is unpopulated, the name is unknown.\n\t\t\t\t// As a best-effort replacement, use the numeric member index.\n\t\t\t\t// While inaccurate, it produces a syntactically valid pointer.\n\t\t\t\tb = strconv.AppendUint(b, uint64((e.length()-1)/2), 10)\n\t\t\t}\n\t\t\tobjectDepth++\n\t\tcase e.isArray():\n\t\t\tb = strconv.AppendUint(b, uint64(e.length()-1), 10)\n\t\t}\n\t}\n\treturn b\n}\n\n// stateMachine is a push-down automaton that validates whether\n// a sequence of tokens is valid or not according to the JSON grammar.\n// It is useful for both encoding and decoding.\n//\n// It is a stack where each entry represents a nested JSON object or array.\n// The stack has a minimum depth of 1 where the first level is a\n// virtual JSON array to handle a stream of top-level JSON values.\n// The top-level virtual JSON array is special in that it doesn't require commas\n// between each JSON value.\n//\n// For performance, most methods are carefully written to be inlineable.\n// The zero value is a valid state machine ready for use.\ntype stateMachine struct {\n\tstack []stateEntry\n\tlast  stateEntry\n}\n\n// reset resets the state machine.\n// The machine always starts with a minimum depth of 1.\nfunc (m *stateMachine) reset() {\n\tm.stack = m.stack[:0]\n\tif cap(m.stack) > 1<<10 {\n\t\tm.stack = nil\n\t}\n\tm.last = stateTypeArray\n}\n\n// depth is the current nested depth of JSON objects and arrays.\n// It is one-indexed (i.e., top-level values have a depth of 1).\nfunc (m stateMachine) depth() int {\n\treturn len(m.stack) + 1\n}\n\n// index returns a reference to the ith entry.\n// It is only valid until the next push method call.\nfunc (m *stateMachine) index(i int) *stateEntry {\n\tif i == len(m.stack) {\n\t\treturn &m.last\n\t}\n\treturn &m.stack[i]\n}\n\n// depthLength reports the current nested depth and\n// the length of the last JSON object or array.\nfunc (m stateMachine) depthLength() (int, int) {\n\treturn m.depth(), m.last.length()\n}\n\n// appendLiteral appends a JSON literal as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendLiteral() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendString appends a JSON string as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendString() error {\n\tswitch {\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendNumber appends a JSON number as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendNumber() error {\n\treturn m.appendLiteral()\n}\n\n// pushObject appends a JSON start object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushObject() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeObject\n\t\treturn nil\n\t}\n}\n\n// popObject appends a JSON end object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popObject() error {\n\tswitch {\n\tcase !m.last.isObject():\n\t\treturn errMismatchDelim\n\tcase m.last.needObjectValue():\n\t\treturn errMissingValue\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// pushArray appends a JSON start array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushArray() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeArray\n\t\treturn nil\n\t}\n}\n\n// popArray appends a JSON end array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popArray() error {\n\tswitch {\n\tcase !m.last.isArray() || len(m.stack) == 0: // forbid popping top-level virtual JSON array\n\t\treturn errMismatchDelim\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// needIndent reports whether indent whitespace should be injected.\n// A zero value means that no whitespace should be injected.\n// A positive value means '\\n', indentPrefix, and (n-1) copies of indentBody\n// should be appended to the output immediately before the next token.\nfunc (m stateMachine) needIndent(next Kind) (n int) {\n\twillEnd := next == '}' || next == ']'\n\tswitch {\n\tcase m.depth() == 1:\n\t\treturn 0 // top-level values are never indented\n\tcase m.last.length() == 0 && willEnd:\n\t\treturn 0 // an empty object or array is never indented\n\tcase m.last.length() == 0 || m.last.needImplicitComma(next):\n\t\treturn m.depth()\n\tcase willEnd:\n\t\treturn m.depth() - 1\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// mayAppendDelim appends a colon or comma that may precede the next token.\nfunc (m stateMachine) mayAppendDelim(b []byte, next Kind) []byte {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn append(b, ':')\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn append(b, ',')\n\tdefault:\n\t\treturn b\n\t}\n}\n\n// needDelim reports whether a colon or comma token should be implicitly emitted\n// before the next token of the specified kind.\n// A zero value means no delimiter should be emitted.\nfunc (m stateMachine) needDelim(next Kind) (delim byte) {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn ':'\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn ','\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// checkDelim reports whether the specified delimiter should be there given\n// the kind of the next token that appears immediately afterwards.\nfunc (m stateMachine) checkDelim(delim byte, next Kind) error {\n\tswitch needDelim := m.needDelim(next); {\n\tcase needDelim == delim:\n\t\treturn nil\n\tcase needDelim == ':':\n\t\treturn errMissingColon\n\tcase needDelim == ',':\n\t\treturn errMissingComma\n\tdefault:\n\t\treturn newInvalidCharacterError([]byte{delim}, \"before next token\")\n\t}\n}\n\n// invalidateDisabledNamespaces marks all disabled namespaces as invalid.\n//\n// For efficiency, Marshal and Unmarshal may disable namespaces since there are\n// more efficient ways to track duplicate names. However, if an error occurs,\n// the namespaces in Encoder or Decoder will be left in an inconsistent state.\n// Mark the namespaces as invalid so that future method calls on\n// Encoder or Decoder will return an error.\nfunc (m *stateMachine) invalidateDisabledNamespaces() {\n\tfor i := 0; i < m.depth(); i++ {\n\t\te := m.index(i)\n\t\tif !e.isActiveNamespace() {\n\t\t\te.invalidateNamespace()\n\t\t}\n\t}\n}\n\n// stateEntry encodes several artifacts within a single unsigned integer:\n//   - whether this represents a JSON object or array,\n//   - whether this object should check for duplicate names, and\n//   - how many elements are in this JSON object or array.\ntype stateEntry uint64\n\nconst (\n\t// The type mask (1 bit) records whether this is a JSON object or array.\n\tstateTypeMask   stateEntry = 0x8000_0000_0000_0000\n\tstateTypeObject stateEntry = 0x8000_0000_0000_0000\n\tstateTypeArray  stateEntry = 0x0000_0000_0000_0000\n\n\t// The name check mask (2 bit) records whether to update\n\t// the namespaces for the current JSON object and\n\t// whether the namespace is valid.\n\tstateNamespaceMask    stateEntry = 0x6000_0000_0000_0000\n\tstateDisableNamespace stateEntry = 0x4000_0000_0000_0000\n\tstateInvalidNamespace stateEntry = 0x2000_0000_0000_0000\n\n\t// The count mask (61 bits) records the number of elements.\n\tstateCountMask    stateEntry = 0x1fff_ffff_ffff_ffff\n\tstateCountLSBMask stateEntry = 0x0000_0000_0000_0001\n\tstateCountOdd     stateEntry = 0x0000_0000_0000_0001\n\tstateCountEven    stateEntry = 0x0000_0000_0000_0000\n)\n\n// length reports the number of elements in the JSON object or array.\n// Each name and value in an object entry is treated as a separate element.\nfunc (e stateEntry) length() int {\n\treturn int(e & stateCountMask)\n}\n\n// isObject reports whether this is a JSON object.\nfunc (e stateEntry) isObject() bool {\n\treturn e&stateTypeMask == stateTypeObject\n}\n\n// isArray reports whether this is a JSON array.\nfunc (e stateEntry) isArray() bool {\n\treturn e&stateTypeMask == stateTypeArray\n}\n\n// needObjectName reports whether the next token must be a JSON string,\n// which is necessary for JSON object names.\nfunc (e stateEntry) needObjectName() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountEven\n}\n\n// needImplicitColon reports whether an colon should occur next,\n// which always occurs after JSON object names.\nfunc (e stateEntry) needImplicitColon() bool {\n\treturn e.needObjectValue()\n}\n\n// needObjectValue reports whether the next token must be a JSON value,\n// which is necessary after every JSON object name.\nfunc (e stateEntry) needObjectValue() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountOdd\n}\n\n// needImplicitComma reports whether an comma should occur next,\n// which always occurs after a value in a JSON object or array\n// before the next value (or name).\nfunc (e stateEntry) needImplicitComma(next Kind) bool {\n\treturn !e.needObjectValue() && e.length() > 0 && next != '}' && next != ']'\n}\n\n// increment increments the number of elements for the current object or array.\n// This assumes that overflow won't practically be an issue since\n// 1<<bits.OnesCount(stateCountMask) is sufficiently large.\nfunc (e *stateEntry) increment() {\n\t(*e)++\n}\n\n// decrement decrements the number of elements for the current object or array.\n// It is the callers responsibility to ensure that e.length > 0.\nfunc (e *stateEntry) decrement() {\n\t(*e)--\n}\n\n// disableNamespace disables the JSON object namespace such that the\n// Encoder or Decoder no longer updates the namespace.\nfunc (e *stateEntry) disableNamespace() {\n\t*e |= stateDisableNamespace\n}\n\n// isActiveNamespace reports whether the JSON object namespace is actively\n// being updated and used for duplicate name checks.\nfunc (e stateEntry) isActiveNamespace() bool {\n\treturn e&(stateDisableNamespace) == 0\n}\n\n// invalidateNamespace marks the JSON object namespace as being invalid.\nfunc (e *stateEntry) invalidateNamespace() {\n\t*e |= stateInvalidNamespace\n}\n\n// isValidNamespace reports whether the JSON object namespace is valid.\nfunc (e stateEntry) isValidNamespace() bool {\n\treturn e&(stateInvalidNamespace) == 0\n}\n\n// objectNameStack is a stack of names when descending into a JSON object.\n// In contrast to objectNamespaceStack, this only has to remember a single name\n// per JSON object.\n//\n// This data structure may contain offsets to encodeBuffer or decodeBuffer.\n// It violates clean abstraction of layers, but is significantly more efficient.\n// This ensures that popping and pushing in the common case is a trivial\n// push/pop of an offset integer.\n//\n// The zero value is an empty names stack ready for use.\ntype objectNameStack struct {\n\t// offsets is a stack of offsets for each name.\n\t// A non-negative offset is the ending offset into the local names buffer.\n\t// A negative offset is the bit-wise inverse of a starting offset into\n\t// a remote buffer (e.g., encodeBuffer or decodeBuffer).\n\t// A math.MinInt offset at the end implies that the last object is empty.\n\t// Invariant: Positive offsets always occur before negative offsets.\n\toffsets []int\n\t// unquotedNames is a back-to-back concatenation of names.\n\tunquotedNames []byte\n}\n\nfunc (ns *objectNameStack) reset() {\n\tns.offsets = ns.offsets[:0]\n\tns.unquotedNames = ns.unquotedNames[:0]\n\tif cap(ns.offsets) > 1<<6 {\n\t\tns.offsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.unquotedNames) > 1<<10 {\n\t\tns.unquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\nfunc (ns *objectNameStack) length() int {\n\treturn len(ns.offsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\n// It returns an empty string if the last object is empty.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) getUnquoted(i int) []byte {\n\tns.ensureCopiedBuffer()\n\tif i == 0 {\n\t\treturn ns.unquotedNames[:ns.offsets[0]]\n\t} else {\n\t\treturn ns.unquotedNames[ns.offsets[i-1]:ns.offsets[i-0]]\n\t}\n}\n\n// invalidOffset indicates that the last JSON object currently has no name.\nconst invalidOffset = math.MinInt\n\n// push descends into a nested JSON object.\nfunc (ns *objectNameStack) push() {\n\tns.offsets = append(ns.offsets, invalidOffset)\n}\n\n// replaceLastQuotedOffset replaces the last name with the starting offset\n// to the quoted name in some remote buffer. All offsets provided must be\n// relative to the same buffer until copyQuotedBuffer is called.\nfunc (ns *objectNameStack) replaceLastQuotedOffset(i int) {\n\t// Use bit-wise inversion instead of naive multiplication by -1 to avoid\n\t// ambiguity regarding zero (which is a valid offset into the names field).\n\t// Bit-wise inversion is mathematically equivalent to -i-1,\n\t// such that 0 becomes -1, 1 becomes -2, and so forth.\n\t// This ensures that remote offsets are always negative.\n\tns.offsets[len(ns.offsets)-1] = ^i\n}\n\n// replaceLastUnquotedName replaces the last name with the provided name.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) replaceLastUnquotedName(s string) {\n\tns.ensureCopiedBuffer()\n\tvar startOffset int\n\tif len(ns.offsets) > 1 {\n\t\tstartOffset = ns.offsets[len(ns.offsets)-2]\n\t}\n\tns.unquotedNames = append(ns.unquotedNames[:startOffset], s...)\n\tns.offsets[len(ns.offsets)-1] = len(ns.unquotedNames)\n}\n\n// clearLast removes any name in the last JSON object.\n// It is semantically equivalent to ns.push followed by ns.pop.\nfunc (ns *objectNameStack) clearLast() {\n\tns.offsets[len(ns.offsets)-1] = invalidOffset\n}\n\n// pop ascends out of a nested JSON object.\nfunc (ns *objectNameStack) pop() {\n\tns.offsets = ns.offsets[:len(ns.offsets)-1]\n}\n\n// copyQuotedBuffer copies names from the remote buffer into the local names\n// buffer so that there are no more offset references into the remote buffer.\n// This allows the remote buffer to change contents without affecting\n// the names that this data structure is trying to remember.\nfunc (ns *objectNameStack) copyQuotedBuffer(b []byte) {\n\t// Find the first negative offset.\n\tvar i int\n\tfor i = len(ns.offsets) - 1; i >= 0 && ns.offsets[i] < 0; i-- {\n\t\tcontinue\n\t}\n\n\t// Copy each name from the remote buffer into the local buffer.\n\tfor i = i + 1; i < len(ns.offsets); i++ {\n\t\tif i == len(ns.offsets)-1 && ns.offsets[i] == invalidOffset {\n\t\t\tif i == 0 {\n\t\t\t\tns.offsets[i] = 0\n\t\t\t} else {\n\t\t\t\tns.offsets[i] = ns.offsets[i-1]\n\t\t\t}\n\t\t\tbreak // last JSON object had a push without any names\n\t\t}\n\n\t\t// As a form of Hyrum proofing, we write an invalid character into the\n\t\t// buffer to make misuse of Decoder.ReadToken more obvious.\n\t\t// We need to undo that mutation here.\n\t\tquotedName := b[^ns.offsets[i]:]\n\t\tif quotedName[0] == invalidateBufferByte {\n\t\t\tquotedName[0] = '\"'\n\t\t}\n\n\t\t// Append the unquoted name to the local buffer.\n\t\tvar startOffset int\n\t\tif i > 0 {\n\t\t\tstartOffset = ns.offsets[i-1]\n\t\t}\n\t\tif n := consumeSimpleString(quotedName); n > 0 {\n\t\t\tns.unquotedNames = append(ns.unquotedNames[:startOffset], quotedName[len(`\"`):n-len(`\"`)]...)\n\t\t} else {\n\t\t\tns.unquotedNames, _ = unescapeString(ns.unquotedNames[:startOffset], quotedName)\n\t\t}\n\t\tns.offsets[i] = len(ns.unquotedNames)\n\t}\n}\n\nfunc (ns *objectNameStack) ensureCopiedBuffer() {\n\tif len(ns.offsets) > 0 && ns.offsets[len(ns.offsets)-1] < 0 {\n\t\tpanic(\"BUG: copyQuotedBuffer not called beforehand\")\n\t}\n}\n\n// objectNamespaceStack is a stack of object namespaces.\n// This data structure assists in detecting duplicate names.\ntype objectNamespaceStack []objectNamespace\n\n// reset resets the object namespace stack.\nfunc (nss *objectNamespaceStack) reset() {\n\tif cap(*nss) > 1<<10 {\n\t\t*nss = nil\n\t}\n\t*nss = (*nss)[:0]\n}\n\n// push starts a new namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) push() {\n\tif cap(*nss) > len(*nss) {\n\t\t*nss = (*nss)[:len(*nss)+1]\n\t\tnss.last().reset()\n\t} else {\n\t\t*nss = append(*nss, objectNamespace{})\n\t}\n}\n\n// last returns a pointer to the last JSON object namespace.\nfunc (nss objectNamespaceStack) last() *objectNamespace {\n\treturn &nss[len(nss)-1]\n}\n\n// pop terminates the namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) pop() {\n\t*nss = (*nss)[:len(*nss)-1]\n}\n\n// objectNamespace is the namespace for a JSON object.\n// In contrast to objectNameStack, this needs to remember a all names\n// per JSON object.\n//\n// The zero value is an empty namespace ready for use.\ntype objectNamespace struct {\n\t// It relies on a linear search over all the names before switching\n\t// to use a Go map for direct lookup.\n\n\t// endOffsets is a list of offsets to the end of each name in buffers.\n\t// The length of offsets is the number of names in the namespace.\n\tendOffsets []uint\n\t// allUnquotedNames is a back-to-back concatenation of every name in the namespace.\n\tallUnquotedNames []byte\n\t// mapNames is a Go map containing every name in the namespace.\n\t// Only valid if non-nil.\n\tmapNames map[string]struct{}\n}\n\n// reset resets the namespace to be empty.\nfunc (ns *objectNamespace) reset() {\n\tns.endOffsets = ns.endOffsets[:0]\n\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\tns.mapNames = nil\n\tif cap(ns.endOffsets) > 1<<6 {\n\t\tns.endOffsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.allUnquotedNames) > 1<<10 {\n\t\tns.allUnquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\n// length reports the number of names in the namespace.\nfunc (ns *objectNamespace) length() int {\n\treturn len(ns.endOffsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\nfunc (ns *objectNamespace) getUnquoted(i int) []byte {\n\tif i == 0 {\n\t\treturn ns.allUnquotedNames[:ns.endOffsets[0]]\n\t} else {\n\t\treturn ns.allUnquotedNames[ns.endOffsets[i-1]:ns.endOffsets[i-0]]\n\t}\n}\n\n// lastUnquoted retrieves the last name in the namespace.\nfunc (ns *objectNamespace) lastUnquoted() []byte {\n\treturn ns.getUnquoted(ns.length() - 1)\n}\n\n// insertQuoted inserts a name and reports whether it was inserted,\n// which only occurs if name is not already in the namespace.\n// The provided name must be a valid JSON string.\nfunc (ns *objectNamespace) insertQuoted(name []byte, isVerbatim bool) bool {\n\tif isVerbatim {\n\t\tname = name[len(`\"`) : len(name)-len(`\"`)]\n\t}\n\treturn ns.insert(name, !isVerbatim)\n}\nfunc (ns *objectNamespace) insertUnquoted(name []byte) bool {\n\treturn ns.insert(name, false)\n}\nfunc (ns *objectNamespace) insert(name []byte, quoted bool) bool {\n\tvar allNames []byte\n\tif quoted {\n\t\tallNames, _ = unescapeString(ns.allUnquotedNames, name)\n\t} else {\n\t\tallNames = append(ns.allUnquotedNames, name...)\n\t}\n\tname = allNames[len(ns.allUnquotedNames):]\n\n\t// Switch to a map if the buffer is too large for linear search.\n\t// This does not add the current name to the map.\n\tif ns.mapNames == nil && (ns.length() > 64 || len(ns.allUnquotedNames) > 1024) {\n\t\tns.mapNames = make(map[string]struct{})\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tname := ns.allUnquotedNames[startOffset:endOffset]\n\t\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t\t\tstartOffset = endOffset\n\t\t}\n\t}\n\n\tif ns.mapNames == nil {\n\t\t// Perform linear search over the buffer to find matching names.\n\t\t// It provides O(n) lookup, but does not require any allocations.\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tif string(ns.allUnquotedNames[startOffset:endOffset]) == string(name) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tstartOffset = endOffset\n\t\t}\n\t} else {\n\t\t// Use the map if it is populated.\n\t\t// It provides O(1) lookup, but requires a string allocation per name.\n\t\tif _, ok := ns.mapNames[string(name)]; ok {\n\t\t\treturn false\n\t\t}\n\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t}\n\n\tns.allUnquotedNames = allNames\n\tns.endOffsets = append(ns.endOffsets, uint(len(ns.allUnquotedNames)))\n\treturn true\n}\n\n// removeLast removes the last name in the namespace.\nfunc (ns *objectNamespace) removeLast() {\n\tif ns.mapNames != nil {\n\t\tdelete(ns.mapNames, string(ns.lastUnquoted()))\n\t}\n\tif ns.length()-1 == 0 {\n\t\tns.endOffsets = ns.endOffsets[:0]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\t} else {\n\t\tns.endOffsets = ns.endOffsets[:ns.length()-1]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:ns.endOffsets[ns.length()-1]]\n\t}\n}\n\ntype uintSet64 uint64\n\nfunc (s uintSet64) has(i uint) bool { return s&(1<<i) > 0 }\nfunc (s *uintSet64) set(i uint)     { *s |= 1 << i }\n\n// uintSet is a set of unsigned integers.\n// It is optimized for most integers being close to zero.\ntype uintSet struct {\n\tlo uintSet64\n\thi []uintSet64\n}\n\n// has reports whether i is in the set.\nfunc (s *uintSet) has(i uint) bool {\n\tif i < 64 {\n\t\treturn s.lo.has(i)\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\treturn iHi < len(s.hi) && s.hi[iHi].has(iLo)\n\t}\n}\n\n// insert inserts i into the set and reports whether it was the first insertion.\nfunc (s *uintSet) insert(i uint) bool {\n\t// TODO: Make this inlineable at least for the lower 64-bit case.\n\tif i < 64 {\n\t\thas := s.lo.has(i)\n\t\ts.lo.set(i)\n\t\treturn !has\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\tif iHi >= len(s.hi) {\n\t\t\ts.hi = append(s.hi, make([]uintSet64, iHi+1-len(s.hi))...)\n\t\t\ts.hi = s.hi[:cap(s.hi)]\n\t\t}\n\t\thas := s.hi[iHi].has(iLo)\n\t\ts.hi[iHi].set(iLo)\n\t\treturn !has\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/token.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\n// NOTE: Token is analogous to v1 json.Token.\n\nconst (\n\tmaxInt64  = math.MaxInt64\n\tminInt64  = math.MinInt64\n\tmaxUint64 = math.MaxUint64\n\tminUint64 = 0 // for consistency and readability purposes\n\n\tinvalidTokenPanic = \"invalid json.Token; it has been voided by a subsequent json.Decoder call\"\n)\n\n// Token represents a lexical JSON token, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - a start or end delimiter for a JSON object (i.e., { or } )\n//   - a start or end delimiter for a JSON array (i.e., [ or ] )\n//\n// A Token cannot represent entire array or object values, while a RawValue can.\n// There is no Token to represent commas and colons since\n// these structural tokens can be inferred from the surrounding context.\ntype Token struct {\n\tnonComparable\n\n\t// Tokens can exist in either a \"raw\" or an \"exact\" form.\n\t// Tokens produced by the Decoder are in the \"raw\" form.\n\t// Tokens returned by constructors are usually in the \"exact\" form.\n\t// The Encoder accepts Tokens in either the \"raw\" or \"exact\" form.\n\t//\n\t// The following chart shows the possible values for each Token type:\n\t//\t╔═════════════════╦════════════╤════════════╤════════════╗\n\t//\t║ Token type      ║ raw field  │ str field  │ num field  ║\n\t//\t╠═════════════════╬════════════╪════════════╪════════════╣\n\t//\t║ null   (raw)    ║ \"null\"     │ \"\"         │ 0          ║\n\t//\t║ false  (raw)    ║ \"false\"    │ \"\"         │ 0          ║\n\t//\t║ true   (raw)    ║ \"true\"     │ \"\"         │ 0          ║\n\t//\t║ string (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ string (string) ║ nil        │ non-empty  │ 0          ║\n\t//\t║ number (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ number (float)  ║ nil        │ \"f\"        │ non-zero   ║\n\t//\t║ number (int64)  ║ nil        │ \"i\"        │ non-zero   ║\n\t//\t║ number (uint64) ║ nil        │ \"u\"        │ non-zero   ║\n\t//\t║ object (delim)  ║ \"{\" or \"}\" │ \"\"         │ 0          ║\n\t//\t║ array  (delim)  ║ \"[\" or \"]\" │ \"\"         │ 0          ║\n\t//\t╚═════════════════╩════════════╧════════════╧════════════╝\n\t//\n\t// Notes:\n\t//   - For tokens stored in \"raw\" form, the num field contains the\n\t//     absolute offset determined by raw.previousOffsetStart().\n\t//     The buffer itself is stored in raw.previousBuffer().\n\t//   - JSON literals and structural characters are always in the \"raw\" form.\n\t//   - JSON strings and numbers can be in either \"raw\" or \"exact\" forms.\n\t//   - The exact zero value of JSON strings and numbers in the \"exact\" forms\n\t//     have ambiguous representation. Thus, they are always represented\n\t//     in the \"raw\" form.\n\n\t// raw contains a reference to the raw decode buffer.\n\t// If non-nil, then its value takes precedence over str and num.\n\t// It is only valid if num == raw.previousOffsetStart().\n\traw *decodeBuffer\n\n\t// str is the unescaped JSON string if num is zero.\n\t// Otherwise, it is \"f\", \"i\", or \"u\" if num should be interpreted\n\t// as a float64, int64, or uint64, respectively.\n\tstr string\n\n\t// num is a float64, int64, or uint64 stored as a uint64 value.\n\t// It is non-zero for any JSON number in the \"exact\" form.\n\tnum uint64\n}\n\n// TODO: Does representing 1-byte delimiters as *decodeBuffer cause performance issues?\n\nvar (\n\tNull  Token = rawToken(\"null\")\n\tFalse Token = rawToken(\"false\")\n\tTrue  Token = rawToken(\"true\")\n\n\tObjectStart Token = rawToken(\"{\")\n\tObjectEnd   Token = rawToken(\"}\")\n\tArrayStart  Token = rawToken(\"[\")\n\tArrayEnd    Token = rawToken(\"]\")\n\n\tzeroString Token = rawToken(`\"\"`)\n\tzeroNumber Token = rawToken(`0`)\n\n\tnanString  Token = String(\"NaN\")\n\tpinfString Token = String(\"Infinity\")\n\tninfString Token = String(\"-Infinity\")\n)\n\nfunc rawToken(s string) Token {\n\treturn Token{raw: &decodeBuffer{buf: []byte(s), prevStart: 0, prevEnd: len(s)}}\n}\n\n// Bool constructs a Token representing a JSON boolean.\nfunc Bool(b bool) Token {\n\tif b {\n\t\treturn True\n\t}\n\treturn False\n}\n\n// String constructs a Token representing a JSON string.\n// The provided string should contain valid UTF-8, otherwise invalid characters\n// may be mangled as the Unicode replacement character.\nfunc String(s string) Token {\n\tif len(s) == 0 {\n\t\treturn zeroString\n\t}\n\treturn Token{str: s}\n}\n\n// Float constructs a Token representing a JSON number.\n// The values NaN, +Inf, and -Inf will be represented\n// as a JSON string with the values \"NaN\", \"Infinity\", and \"-Infinity\".\nfunc Float(n float64) Token {\n\tswitch {\n\tcase math.Float64bits(n) == 0:\n\t\treturn zeroNumber\n\tcase math.IsNaN(n):\n\t\treturn nanString\n\tcase math.IsInf(n, +1):\n\t\treturn pinfString\n\tcase math.IsInf(n, -1):\n\t\treturn ninfString\n\t}\n\treturn Token{str: \"f\", num: math.Float64bits(n)}\n}\n\n// Int constructs a Token representing a JSON number from an int64.\nfunc Int(n int64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"i\", num: uint64(n)}\n}\n\n// Uint constructs a Token representing a JSON number from a uint64.\nfunc Uint(n uint64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"u\", num: uint64(n)}\n}\n\n// Clone makes a copy of the Token such that its value remains valid\n// even after a subsequent Decoder.Read call.\nfunc (t Token) Clone() Token {\n\t// TODO: Allow caller to avoid any allocations?\n\tif raw := t.raw; raw != nil {\n\t\t// Avoid copying globals.\n\t\tif t.raw.prevStart == 0 {\n\t\t\tswitch t.raw {\n\t\t\tcase Null.raw:\n\t\t\t\treturn Null\n\t\t\tcase False.raw:\n\t\t\t\treturn False\n\t\t\tcase True.raw:\n\t\t\t\treturn True\n\t\t\tcase ObjectStart.raw:\n\t\t\t\treturn ObjectStart\n\t\t\tcase ObjectEnd.raw:\n\t\t\t\treturn ObjectEnd\n\t\t\tcase ArrayStart.raw:\n\t\t\t\treturn ArrayStart\n\t\t\tcase ArrayEnd.raw:\n\t\t\t\treturn ArrayEnd\n\t\t\t}\n\t\t}\n\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\t\tbuf := append([]byte(nil), raw.previousBuffer()...)\n\t\treturn Token{raw: &decodeBuffer{buf: buf, prevStart: 0, prevEnd: len(buf)}}\n\t}\n\treturn t\n}\n\n// Bool returns the value for a JSON boolean.\n// It panics if the token kind is not a JSON boolean.\nfunc (t Token) Bool() bool {\n\tswitch t.raw {\n\tcase True.raw:\n\t\treturn true\n\tcase False.raw:\n\t\treturn false\n\tdefault:\n\t\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n\t}\n}\n\n// appendString appends a JSON string to dst and returns it.\n// It panics if t is not a JSON string.\nfunc (t Token) appendString(dst []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw string value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]) == '\"' {\n\t\t\tif escapeRune == nil && consumeSimpleString(buf) == len(buf) {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatString(dst, buf, validateUTF8, preserveRaw, escapeRune)\n\t\t\treturn dst, err\n\t\t}\n\t} else if len(t.str) != 0 && t.num == 0 {\n\t\t// Handle exact string value.\n\t\treturn appendString(dst, t.str, validateUTF8, escapeRune)\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// String returns the unescaped string value for a JSON string.\n// For other JSON kinds, this returns the raw JSON representation.\nfunc (t Token) String() string {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// This avoids an allocation for the string(b) conversion\n\t// if the caller does not use the string in an escaping manner.\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\ts, b := t.string()\n\tif len(b) > 0 {\n\t\treturn string(b)\n\t}\n\treturn s\n}\nfunc (t Token) string() (string, []byte) {\n\tif raw := t.raw; raw != nil {\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif buf[0] == '\"' {\n\t\t\t// TODO: Preserve valueFlags in Token?\n\t\t\tisVerbatim := consumeSimpleString(buf) == len(buf)\n\t\t\treturn \"\", unescapeStringMayCopy(buf, isVerbatim)\n\t\t}\n\t\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\t\treturn \"\", buf\n\t}\n\tif len(t.str) != 0 && t.num == 0 {\n\t\treturn t.str, nil\n\t}\n\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\tif t.num > 0 {\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn string(appendNumber(nil, math.Float64frombits(t.num), 64)), nil\n\t\tcase 'i':\n\t\t\treturn strconv.FormatInt(int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.FormatUint(uint64(t.num), 10), nil\n\t\t}\n\t}\n\treturn \"<invalid json.Token>\", nil\n}\n\n// appendNumber appends a JSON number to dst and returns it.\n// It panics if t is not a JSON number.\nfunc (t Token) appendNumber(dst []byte, canonicalize bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tif !canonicalize {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatNumber(dst, buf, canonicalize)\n\t\t\treturn dst, err\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn appendNumber(dst, math.Float64frombits(t.num), 64), nil\n\t\tcase 'i':\n\t\t\treturn strconv.AppendInt(dst, int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.AppendUint(dst, uint64(t.num), 10), nil\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Float returns the floating-point value for a JSON number.\n// It returns a NaN, +Inf, or -Inf value for any JSON string\n// with the values \"NaN\", \"Infinity\", or \"-Infinity\".\n// It panics for all other cases.\nfunc (t Token) Float() float64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tfv, _ := parseFloat(buf, 64)\n\t\t\treturn fv\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn math.Float64frombits(t.num)\n\t\tcase 'i':\n\t\t\treturn float64(int64(t.num))\n\t\tcase 'u':\n\t\t\treturn float64(uint64(t.num))\n\t\t}\n\t}\n\n\t// Handle string values with \"NaN\", \"Infinity\", or \"-Infinity\".\n\tif t.Kind() == '\"' {\n\t\tswitch t.String() {\n\t\tcase \"NaN\":\n\t\t\treturn math.NaN()\n\t\tcase \"Infinity\":\n\t\t\treturn math.Inf(+1)\n\t\tcase \"-Infinity\":\n\t\t\treturn math.Inf(-1)\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Int returns the signed integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an int64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Int() int64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif numAbs, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\tif numAbs > -minInt64 {\n\t\t\t\t\treturn minInt64\n\t\t\t\t}\n\t\t\t\treturn -1 * int64(numAbs)\n\t\t\t} else {\n\t\t\t\tif numAbs > +maxInt64 {\n\t\t\t\t\treturn maxInt64\n\t\t\t\t}\n\t\t\t\treturn +1 * int64(numAbs)\n\t\t\t}\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'i':\n\t\t\treturn int64(t.num)\n\t\tcase 'u':\n\t\t\tif t.num > maxInt64 {\n\t\t\t\treturn maxInt64\n\t\t\t}\n\t\t\treturn int64(t.num)\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxInt64:\n\t\t\treturn maxInt64\n\t\tcase fv <= minInt64:\n\t\t\treturn minInt64\n\t\tdefault:\n\t\t\treturn int64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Uint returns the unsigned integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an uint64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Uint() uint64 {\n\t// NOTE: This accessor returns 0 for any negative JSON number,\n\t// which might be surprising, but is at least consistent with the behavior\n\t// of saturating out-of-bounds numbers to the closest representable number.\n\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif num, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn num\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'u':\n\t\t\treturn t.num\n\t\tcase 'i':\n\t\t\tif int64(t.num) < minUint64 {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn uint64(int64(t.num))\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxUint64:\n\t\t\treturn maxUint64\n\t\tcase fv <= minUint64:\n\t\t\treturn minUint64\n\t\tdefault:\n\t\t\treturn uint64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\tswitch {\n\tcase t.raw != nil:\n\t\traw := t.raw\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\treturn Kind(t.raw.buf[raw.prevStart]).normalize()\n\tcase t.num != 0:\n\t\treturn '0'\n\tcase len(t.str) != 0:\n\t\treturn '\"'\n\tdefault:\n\t\treturn invalidKind\n\t}\n}\n\n// Kind represents each possible JSON token kind with a single byte,\n// which is conveniently the first byte of that kind's grammar\n// with the restriction that numbers always be represented with '0':\n//\n//   - 'n': null\n//   - 'f': false\n//   - 't': true\n//   - '\"': string\n//   - '0': number\n//   - '{': object start\n//   - '}': object end\n//   - '[': array start\n//   - ']': array end\n//\n// An invalid kind is usually represented using 0,\n// but may be non-zero due to invalid JSON data.\ntype Kind byte\n\nconst invalidKind Kind = 0\n\n// String prints the kind in a humanly readable fashion.\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase 'n':\n\t\treturn \"null\"\n\tcase 'f':\n\t\treturn \"false\"\n\tcase 't':\n\t\treturn \"true\"\n\tcase '\"':\n\t\treturn \"string\"\n\tcase '0':\n\t\treturn \"number\"\n\tcase '{':\n\t\treturn \"{\"\n\tcase '}':\n\t\treturn \"}\"\n\tcase '[':\n\t\treturn \"[\"\n\tcase ']':\n\t\treturn \"]\"\n\tdefault:\n\t\treturn \"<invalid json.Kind: \" + quoteRune([]byte{byte(k)}) + \">\"\n\t}\n}\n\n// normalize coalesces all possible starting characters of a number as just '0'.\nfunc (k Kind) normalize() Kind {\n\tif k == '-' || ('0' <= k && k <= '9') {\n\t\treturn '0'\n\t}\n\treturn k\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/value.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"sort\"\n\t\"sync\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: RawValue is analogous to v1 json.RawMessage.\n\n// RawValue represents a single raw JSON value, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - an entire JSON object (e.g., {\"fizz\":\"buzz\"} )\n//   - an entire JSON array (e.g., [1,2,3] )\n//\n// RawValue can represent entire array or object values, while Token cannot.\n// RawValue may contain leading and/or trailing whitespace.\ntype RawValue []byte\n\n// Clone returns a copy of v.\nfunc (v RawValue) Clone() RawValue {\n\tif v == nil {\n\t\treturn nil\n\t}\n\treturn append(RawValue{}, v...)\n}\n\n// String returns the string formatting of v.\nfunc (v RawValue) String() string {\n\tif v == nil {\n\t\treturn \"null\"\n\t}\n\treturn string(v)\n}\n\n// IsValid reports whether the raw JSON value is syntactically valid\n// according to RFC 7493.\n//\n// It verifies whether the input is properly encoded as UTF-8,\n// that escape sequences within strings decode to valid Unicode codepoints, and\n// that all names in each object are unique.\n// It does not verify whether numbers are representable within the limits\n// of any common numeric type (e.g., float64, int64, or uint64).\nfunc (v RawValue) IsValid() bool {\n\td := getBufferedDecoder(v, DecodeOptions{})\n\tdefer putBufferedDecoder(d)\n\t_, errVal := d.ReadValue()\n\t_, errEOF := d.ReadToken()\n\treturn errVal == nil && errEOF == io.EOF\n}\n\n// Compact removes all whitespace from the raw JSON value.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already compacted, then the buffer is not mutated.\nfunc (v *RawValue) Compact() error {\n\treturn v.reformat(false, false, \"\", \"\")\n}\n\n// Indent reformats the whitespace in the raw JSON value so that each element\n// in a JSON object or array begins on a new, indented line beginning with\n// prefix followed by one or more copies of indent according to the nesting.\n// The value does not begin with the prefix nor any indention,\n// to make it easier to embed inside other formatted JSON data.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already indented properly, then the buffer is not mutated.\nfunc (v *RawValue) Indent(prefix, indent string) error {\n\treturn v.reformat(false, true, prefix, indent)\n}\n\n// Canonicalize canonicalizes the raw JSON value according to the\n// JSON Canonicalization Scheme (JCS) as defined by RFC 8785\n// where it produces a stable representation of a JSON value.\n//\n// The output stability is dependent on the stability of the application data\n// (see RFC 8785, Appendix E). It cannot produce stable output from\n// fundamentally unstable input. For example, if the JSON value\n// contains ephemeral data (e.g., a frequently changing timestamp),\n// then the value is still unstable regardless of whether this is called.\n//\n// Note that JCS treats all JSON numbers as IEEE 754 double precision numbers.\n// Any numbers with precision beyond what is representable by that form\n// will lose their precision when canonicalized. For example, integer values\n// beyond ±2⁵³ will lose their precision. It is recommended that\n// int64 and uint64 data types be represented as a JSON string.\n//\n// It is guaranteed to succeed if the input is valid.\n// If the value is already canonicalized, then the buffer is not mutated.\nfunc (v *RawValue) Canonicalize() error {\n\treturn v.reformat(true, false, \"\", \"\")\n}\n\n// TODO: Instead of implementing the v1 Marshaler/Unmarshaler,\n// consider implementing the v2 versions instead.\n\n// MarshalJSON returns v as the JSON encoding of v.\n// It returns the stored value as the raw JSON output without any validation.\n// If v is nil, then this returns a JSON null.\nfunc (v RawValue) MarshalJSON() ([]byte, error) {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.MarshalJSON.\n\tif v == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn v, nil\n}\n\n// UnmarshalJSON sets v as the JSON encoding of b.\n// It stores a copy of the provided raw JSON input without any validation.\nfunc (v *RawValue) UnmarshalJSON(b []byte) error {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.UnmarshalJSON.\n\tif v == nil {\n\t\treturn errors.New(\"json.RawValue: UnmarshalJSON on nil pointer\")\n\t}\n\t*v = append((*v)[:0], b...)\n\treturn nil\n}\n\n// Kind returns the starting token kind.\n// For a valid value, this will never include '}' or ']'.\nfunc (v RawValue) Kind() Kind {\n\tif v := v[consumeWhitespace(v):]; len(v) > 0 {\n\t\treturn Kind(v[0]).normalize()\n\t}\n\treturn invalidKind\n}\n\nfunc (v *RawValue) reformat(canonical, multiline bool, prefix, indent string) error {\n\tvar eo EncodeOptions\n\tif canonical {\n\t\teo.AllowInvalidUTF8 = false    // per RFC 8785, section 3.2.4\n\t\teo.AllowDuplicateNames = false // per RFC 8785, section 3.1\n\t\teo.canonicalizeNumbers = true  // per RFC 8785, section 3.2.2.3\n\t\teo.EscapeRune = nil            // per RFC 8785, section 3.2.2.2\n\t\teo.multiline = false           // per RFC 8785, section 3.2.1\n\t} else {\n\t\tif s := trimLeftSpaceTab(prefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t\teo.AllowInvalidUTF8 = true\n\t\teo.AllowDuplicateNames = true\n\t\teo.preserveRawStrings = true\n\t\teo.multiline = multiline // in case indent is empty\n\t\teo.IndentPrefix = prefix\n\t\teo.Indent = indent\n\t}\n\teo.omitTopLevelNewline = true\n\n\t// Write the entire value to reformat all tokens and whitespace.\n\te := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(e)\n\tif err := e.WriteValue(*v); err != nil {\n\t\treturn err\n\t}\n\n\t// For canonical output, we may need to reorder object members.\n\tif canonical {\n\t\t// Obtain a buffered encoder just to use its internal buffer as\n\t\t// a scratch buffer in reorderObjects for reordering object members.\n\t\te2 := getBufferedEncoder(EncodeOptions{})\n\t\tdefer putBufferedEncoder(e2)\n\n\t\t// Disable redundant checks performed earlier during encoding.\n\t\td := getBufferedDecoder(e.buf, DecodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true})\n\t\tdefer putBufferedDecoder(d)\n\t\treorderObjects(d, &e2.buf) // per RFC 8785, section 3.2.3\n\t}\n\n\t// Store the result back into the value if different.\n\tif !bytes.Equal(*v, e.buf) {\n\t\t*v = append((*v)[:0], e.buf...)\n\t}\n\treturn nil\n}\n\nfunc trimLeftSpaceTab(s string) string {\n\tfor i, r := range s {\n\t\tswitch r {\n\t\tcase ' ', '\\t':\n\t\tdefault:\n\t\t\treturn s[i:]\n\t\t}\n\t}\n\treturn \"\"\n}\n\ntype memberName struct {\n\t// name is the unescaped name.\n\tname []byte\n\t// before and after are byte offsets into Decoder.buf that represents\n\t// the entire name/value pair. It may contain leading commas.\n\tbefore, after int64\n}\n\nvar memberNamePool = sync.Pool{New: func() any { return new(memberNames) }}\n\nfunc getMemberNames() *memberNames {\n\tns := memberNamePool.Get().(*memberNames)\n\t*ns = (*ns)[:0]\n\treturn ns\n}\nfunc putMemberNames(ns *memberNames) {\n\tif cap(*ns) < 1<<10 {\n\t\tfor i := range *ns {\n\t\t\t(*ns)[i] = memberName{} // avoid pinning name\n\t\t}\n\t\tmemberNamePool.Put(ns)\n\t}\n}\n\ntype memberNames []memberName\n\nfunc (m *memberNames) Len() int           { return len(*m) }\nfunc (m *memberNames) Less(i, j int) bool { return lessUTF16((*m)[i].name, (*m)[j].name) }\nfunc (m *memberNames) Swap(i, j int)      { (*m)[i], (*m)[j] = (*m)[j], (*m)[i] }\n\n// reorderObjects recursively reorders all object members in place\n// according to the ordering specified in RFC 8785, section 3.2.3.\n//\n// Pre-conditions:\n//   - The value is valid (i.e., no decoder errors should ever occur).\n//   - The value is compact (i.e., no whitespace is present).\n//   - Initial call is provided a Decoder reading from the start of v.\n//\n// Post-conditions:\n//   - Exactly one JSON value is read from the Decoder.\n//   - All fully-parsed JSON objects are reordered by directly moving\n//     the members in the value buffer.\n//\n// The runtime is approximately O(n·log(n)) + O(m·log(m)),\n// where n is len(v) and m is the total number of object members.\nfunc reorderObjects(d *Decoder, scratch *[]byte) {\n\tswitch tok, _ := d.ReadToken(); tok.Kind() {\n\tcase '{':\n\t\t// Iterate and collect the name and offsets for every object member.\n\t\tmembers := getMemberNames()\n\t\tdefer putMemberNames(members)\n\t\tvar prevName []byte\n\t\tisSorted := true\n\n\t\tbeforeBody := d.InputOffset() // offset after '{'\n\t\tfor d.PeekKind() != '}' {\n\t\t\tbeforeName := d.InputOffset()\n\t\t\tvar flags valueFlags\n\t\t\tname, _ := d.readValue(&flags)\n\t\t\tname = unescapeStringMayCopy(name, flags.isVerbatim())\n\t\t\treorderObjects(d, scratch)\n\t\t\tafterValue := d.InputOffset()\n\n\t\t\tif isSorted && len(*members) > 0 {\n\t\t\t\tisSorted = lessUTF16(prevName, []byte(name))\n\t\t\t}\n\t\t\t*members = append(*members, memberName{name, beforeName, afterValue})\n\t\t\tprevName = name\n\t\t}\n\t\tafterBody := d.InputOffset() // offset before '}'\n\t\td.ReadToken()\n\n\t\t// Sort the members; return early if it's already sorted.\n\t\tif isSorted {\n\t\t\treturn\n\t\t}\n\t\t// TODO(https://go.dev/issue/47619): Use slices.Sort.\n\t\tsort.Sort(members)\n\n\t\t// Append the reordered members to a new buffer,\n\t\t// then copy the reordered members back over the original members.\n\t\t// Avoid swapping in place since each member may be a different size\n\t\t// where moving a member over a smaller member may corrupt the data\n\t\t// for subsequent members before they have been moved.\n\t\t//\n\t\t// The following invariant must hold:\n\t\t//\tsum([m.after-m.before for m in members]) == afterBody-beforeBody\n\t\tsorted := (*scratch)[:0]\n\t\tfor i, member := range *members {\n\t\t\tif d.buf[member.before] == ',' {\n\t\t\t\tmember.before++ // trim leading comma\n\t\t\t}\n\t\t\tsorted = append(sorted, d.buf[member.before:member.after]...)\n\t\t\tif i < len(*members)-1 {\n\t\t\t\tsorted = append(sorted, ',') // append trailing comma\n\t\t\t}\n\t\t}\n\t\tif int(afterBody-beforeBody) != len(sorted) {\n\t\t\tpanic(\"BUG: length invariant violated\")\n\t\t}\n\t\tcopy(d.buf[beforeBody:afterBody], sorted)\n\n\t\t// Update scratch buffer to the largest amount ever used.\n\t\tif len(sorted) > len(*scratch) {\n\t\t\t*scratch = sorted\n\t\t}\n\tcase '[':\n\t\tfor d.PeekKind() != ']' {\n\t\t\treorderObjects(d, scratch)\n\t\t}\n\t\td.ReadToken()\n\t}\n}\n\n// lessUTF16 reports whether x is lexicographically less than y according\n// to the UTF-16 codepoints of the UTF-8 encoded input strings.\n// This implements the ordering specified in RFC 8785, section 3.2.3.\n// The inputs must be valid UTF-8, otherwise this may panic.\nfunc lessUTF16[Bytes []byte | string](x, y Bytes) bool {\n\t// NOTE: This is an optimized, allocation-free implementation\n\t// of lessUTF16Simple in fuzz_test.go. FuzzLessUTF16 verifies that the\n\t// two implementations agree on the result of comparing any two strings.\n\n\tisUTF16Self := func(r rune) bool {\n\t\treturn ('\\u0000' <= r && r <= '\\uD7FF') || ('\\uE000' <= r && r <= '\\uFFFF')\n\t}\n\n\tvar invalidUTF8 bool\n\tx0, y0 := x, y\n\tfor {\n\t\tif len(x) == 0 || len(y) == 0 {\n\t\t\tif len(x) == len(y) && invalidUTF8 {\n\t\t\t\treturn string(x0) < string(y0)\n\t\t\t}\n\t\t\treturn len(x) < len(y)\n\t\t}\n\n\t\t// ASCII fast-path.\n\t\tif x[0] < utf8.RuneSelf || y[0] < utf8.RuneSelf {\n\t\t\tif x[0] != y[0] {\n\t\t\t\treturn x[0] < y[0]\n\t\t\t}\n\t\t\tx, y = x[1:], y[1:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Decode next pair of runes as UTF-8.\n\t\t// TODO(https://go.dev/issue/56948): Use a generic implementation\n\t\t// of utf8.DecodeRune, or rely on a compiler optimization to statically\n\t\t// hide the cost of a type switch (https://go.dev/issue/57072).\n\t\tvar rx, ry rune\n\t\tvar nx, ny int\n\t\tswitch any(x).(type) {\n\t\tcase string:\n\t\t\trx, nx = utf8.DecodeRuneInString(string(x))\n\t\t\try, ny = utf8.DecodeRuneInString(string(y))\n\t\tcase []byte:\n\t\t\trx, nx = utf8.DecodeRune([]byte(x))\n\t\t\try, ny = utf8.DecodeRune([]byte(y))\n\t\t}\n\n\t\tselfx := isUTF16Self(rx)\n\t\tselfy := isUTF16Self(ry)\n\t\tswitch {\n\t\t// The x rune is a single UTF-16 codepoint, while\n\t\t// the y rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfx && !selfy:\n\t\t\try, _ = utf16.EncodeRune(ry)\n\t\t// The y rune is a single UTF-16 codepoint, while\n\t\t// the x rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfy && !selfx:\n\t\t\trx, _ = utf16.EncodeRune(rx)\n\t\t}\n\t\tif rx != ry {\n\t\t\treturn rx < ry\n\t\t}\n\t\tinvalidUTF8 = invalidUTF8 || (rx == utf8.RuneError && nx == 1) || (ry == utf8.RuneError && ny == 1)\n\t\tx, y = x[nx:], y[ny:]\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/openapiconv/convert.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapiconv\n\nimport (\n\t\"strings\"\n\n\tklog \"k8s.io/klog/v2\"\n\tbuilderutil \"k8s.io/kube-openapi/pkg/builder3/util\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nvar OpenAPIV2DefPrefix = \"#/definitions/\"\nvar OpenAPIV3DefPrefix = \"#/components/schemas/\"\n\n// ConvertV2ToV3 converts an OpenAPI V2 object into V3.\n// Certain references may be shared between the V2 and V3 objects in the conversion.\nfunc ConvertV2ToV3(v2Spec *spec.Swagger) *spec3.OpenAPI {\n\tv3Spec := &spec3.OpenAPI{\n\t\tVersion:      \"3.0.0\",\n\t\tInfo:         v2Spec.Info,\n\t\tExternalDocs: ConvertExternalDocumentation(v2Spec.ExternalDocs),\n\t\tPaths:        ConvertPaths(v2Spec.Paths),\n\t\tComponents:   ConvertComponents(v2Spec.SecurityDefinitions, v2Spec.Definitions, v2Spec.Responses, v2Spec.Produces),\n\t}\n\n\treturn v3Spec\n}\n\nfunc ConvertExternalDocumentation(v2ED *spec.ExternalDocumentation) *spec3.ExternalDocumentation {\n\tif v2ED == nil {\n\t\treturn nil\n\t}\n\treturn &spec3.ExternalDocumentation{\n\t\tExternalDocumentationProps: spec3.ExternalDocumentationProps{\n\t\t\tDescription: v2ED.Description,\n\t\t\tURL:         v2ED.URL,\n\t\t},\n\t}\n}\n\nfunc ConvertComponents(v2SecurityDefinitions spec.SecurityDefinitions, v2Definitions spec.Definitions, v2Responses map[string]spec.Response, produces []string) *spec3.Components {\n\tcomponents := &spec3.Components{}\n\n\tif v2Definitions != nil {\n\t\tcomponents.Schemas = make(map[string]*spec.Schema)\n\t}\n\tfor s, schema := range v2Definitions {\n\t\tcomponents.Schemas[s] = ConvertSchema(&schema)\n\t}\n\tif v2SecurityDefinitions != nil {\n\t\tcomponents.SecuritySchemes = make(spec3.SecuritySchemes)\n\t}\n\tfor s, securityScheme := range v2SecurityDefinitions {\n\t\tcomponents.SecuritySchemes[s] = ConvertSecurityScheme(securityScheme)\n\t}\n\tif v2Responses != nil {\n\t\tcomponents.Responses = make(map[string]*spec3.Response)\n\t}\n\tfor r, response := range v2Responses {\n\t\tcomponents.Responses[r] = ConvertResponse(&response, produces)\n\t}\n\n\treturn components\n}\n\nfunc ConvertSchema(v2Schema *spec.Schema) *spec.Schema {\n\tif v2Schema == nil {\n\t\treturn nil\n\t}\n\tv3Schema := spec.Schema{\n\t\tVendorExtensible:   v2Schema.VendorExtensible,\n\t\tSchemaProps:        v2Schema.SchemaProps,\n\t\tSwaggerSchemaProps: v2Schema.SwaggerSchemaProps,\n\t\tExtraProps:         v2Schema.ExtraProps,\n\t}\n\n\tif refString := v2Schema.Ref.String(); refString != \"\" {\n\t\tif idx := strings.Index(refString, OpenAPIV2DefPrefix); idx != -1 {\n\t\t\tv3Schema.Ref = spec.MustCreateRef(OpenAPIV3DefPrefix + refString[idx+len(OpenAPIV2DefPrefix):])\n\t\t} else {\n\t\t\tklog.Errorf(\"Error: Swagger V2 Ref %s does not contain #/definitions\\n\", refString)\n\t\t}\n\t}\n\n\tif v2Schema.Properties != nil {\n\t\tv3Schema.Properties = make(map[string]spec.Schema)\n\t\tfor key, property := range v2Schema.Properties {\n\t\t\tv3Schema.Properties[key] = *ConvertSchema(&property)\n\t\t}\n\t}\n\tif v2Schema.Items != nil {\n\t\tv3Schema.Items = &spec.SchemaOrArray{\n\t\t\tSchema:  ConvertSchema(v2Schema.Items.Schema),\n\t\t\tSchemas: ConvertSchemaList(v2Schema.Items.Schemas),\n\t\t}\n\t}\n\n\tif v2Schema.AdditionalProperties != nil {\n\t\tv3Schema.AdditionalProperties = &spec.SchemaOrBool{\n\t\t\tSchema: ConvertSchema(v2Schema.AdditionalProperties.Schema),\n\t\t\tAllows: v2Schema.AdditionalProperties.Allows,\n\t\t}\n\t}\n\tif v2Schema.AdditionalItems != nil {\n\t\tv3Schema.AdditionalItems = &spec.SchemaOrBool{\n\t\t\tSchema: ConvertSchema(v2Schema.AdditionalItems.Schema),\n\t\t\tAllows: v2Schema.AdditionalItems.Allows,\n\t\t}\n\t}\n\n\treturn builderutil.WrapRefs(&v3Schema)\n}\n\nfunc ConvertSchemaList(v2SchemaList []spec.Schema) []spec.Schema {\n\tif v2SchemaList == nil {\n\t\treturn nil\n\t}\n\tv3SchemaList := []spec.Schema{}\n\tfor _, s := range v2SchemaList {\n\t\tv3SchemaList = append(v3SchemaList, *ConvertSchema(&s))\n\t}\n\treturn v3SchemaList\n}\n\nfunc ConvertSecurityScheme(v2securityScheme *spec.SecurityScheme) *spec3.SecurityScheme {\n\tif v2securityScheme == nil {\n\t\treturn nil\n\t}\n\tsecurityScheme := &spec3.SecurityScheme{\n\t\tVendorExtensible: v2securityScheme.VendorExtensible,\n\t\tSecuritySchemeProps: spec3.SecuritySchemeProps{\n\t\t\tDescription: v2securityScheme.Description,\n\t\t\tType:        v2securityScheme.Type,\n\t\t\tName:        v2securityScheme.Name,\n\t\t\tIn:          v2securityScheme.In,\n\t\t},\n\t}\n\n\tif v2securityScheme.Flow != \"\" {\n\t\tsecurityScheme.Flows = make(map[string]*spec3.OAuthFlow)\n\t\tsecurityScheme.Flows[v2securityScheme.Flow] = &spec3.OAuthFlow{\n\t\t\tOAuthFlowProps: spec3.OAuthFlowProps{\n\t\t\t\tAuthorizationUrl: v2securityScheme.AuthorizationURL,\n\t\t\t\tTokenUrl:         v2securityScheme.TokenURL,\n\t\t\t\tScopes:           v2securityScheme.Scopes,\n\t\t\t},\n\t\t}\n\t}\n\treturn securityScheme\n}\n\nfunc ConvertPaths(v2Paths *spec.Paths) *spec3.Paths {\n\tif v2Paths == nil {\n\t\treturn nil\n\t}\n\tpaths := &spec3.Paths{\n\t\tVendorExtensible: v2Paths.VendorExtensible,\n\t}\n\n\tif v2Paths.Paths != nil {\n\t\tpaths.Paths = make(map[string]*spec3.Path)\n\t}\n\tfor k, v := range v2Paths.Paths {\n\t\tpaths.Paths[k] = ConvertPathItem(v)\n\t}\n\treturn paths\n}\n\nfunc ConvertPathItem(v2pathItem spec.PathItem) *spec3.Path {\n\tpath := &spec3.Path{\n\t\tRefable: v2pathItem.Refable,\n\t\tPathProps: spec3.PathProps{\n\t\t\tGet:     ConvertOperation(v2pathItem.Get),\n\t\t\tPut:     ConvertOperation(v2pathItem.Put),\n\t\t\tPost:    ConvertOperation(v2pathItem.Post),\n\t\t\tDelete:  ConvertOperation(v2pathItem.Delete),\n\t\t\tOptions: ConvertOperation(v2pathItem.Options),\n\t\t\tHead:    ConvertOperation(v2pathItem.Head),\n\t\t\tPatch:   ConvertOperation(v2pathItem.Patch),\n\t\t},\n\t\tVendorExtensible: v2pathItem.VendorExtensible,\n\t}\n\tfor _, param := range v2pathItem.Parameters {\n\t\tpath.Parameters = append(path.Parameters, ConvertParameter(param))\n\t}\n\treturn path\n}\n\nfunc ConvertOperation(v2Operation *spec.Operation) *spec3.Operation {\n\tif v2Operation == nil {\n\t\treturn nil\n\t}\n\toperation := &spec3.Operation{\n\t\tVendorExtensible: v2Operation.VendorExtensible,\n\t\tOperationProps: spec3.OperationProps{\n\t\t\tDescription:  v2Operation.Description,\n\t\t\tExternalDocs: ConvertExternalDocumentation(v2Operation.OperationProps.ExternalDocs),\n\t\t\tTags:         v2Operation.Tags,\n\t\t\tSummary:      v2Operation.Summary,\n\t\t\tDeprecated:   v2Operation.Deprecated,\n\t\t\tOperationId:  v2Operation.ID,\n\t\t},\n\t}\n\n\tfor _, param := range v2Operation.Parameters {\n\t\tif param.ParamProps.Name == \"body\" && param.ParamProps.Schema != nil {\n\t\t\toperation.OperationProps.RequestBody = &spec3.RequestBody{\n\t\t\t\tRequestBodyProps: spec3.RequestBodyProps{},\n\t\t\t}\n\t\t\tif v2Operation.Consumes != nil {\n\t\t\t\toperation.RequestBody.Content = make(map[string]*spec3.MediaType)\n\t\t\t}\n\t\t\tfor _, consumer := range v2Operation.Consumes {\n\t\t\t\toperation.RequestBody.Content[consumer] = &spec3.MediaType{\n\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\tSchema: ConvertSchema(param.ParamProps.Schema),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\toperation.Parameters = append(operation.Parameters, ConvertParameter(param))\n\t\t}\n\t}\n\n\toperation.Responses = &spec3.Responses{ResponsesProps: spec3.ResponsesProps{\n\t\tDefault: ConvertResponse(v2Operation.Responses.Default, v2Operation.Produces),\n\t},\n\t\tVendorExtensible: v2Operation.Responses.VendorExtensible,\n\t}\n\n\tif v2Operation.Responses.StatusCodeResponses != nil {\n\t\toperation.Responses.StatusCodeResponses = make(map[int]*spec3.Response)\n\t}\n\tfor k, v := range v2Operation.Responses.StatusCodeResponses {\n\t\toperation.Responses.StatusCodeResponses[k] = ConvertResponse(&v, v2Operation.Produces)\n\t}\n\treturn operation\n}\n\nfunc ConvertResponse(v2Response *spec.Response, produces []string) *spec3.Response {\n\tif v2Response == nil {\n\t\treturn nil\n\t}\n\tresponse := &spec3.Response{\n\t\tRefable:          ConvertRefableResponse(v2Response.Refable),\n\t\tVendorExtensible: v2Response.VendorExtensible,\n\t\tResponseProps: spec3.ResponseProps{\n\t\t\tDescription: v2Response.Description,\n\t\t},\n\t}\n\n\tif v2Response.Schema != nil {\n\t\tif produces != nil {\n\t\t\tresponse.Content = make(map[string]*spec3.MediaType)\n\t\t}\n\t\tfor _, producer := range produces {\n\t\t\tresponse.ResponseProps.Content[producer] = &spec3.MediaType{\n\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\tSchema: ConvertSchema(v2Response.Schema),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\treturn response\n}\n\nfunc ConvertParameter(v2Param spec.Parameter) *spec3.Parameter {\n\tparam := &spec3.Parameter{\n\t\tRefable:          ConvertRefableParameter(v2Param.Refable),\n\t\tVendorExtensible: v2Param.VendorExtensible,\n\t\tParameterProps: spec3.ParameterProps{\n\t\t\tName:            v2Param.Name,\n\t\t\tDescription:     v2Param.Description,\n\t\t\tIn:              v2Param.In,\n\t\t\tRequired:        v2Param.Required,\n\t\t\tSchema:          ConvertSchema(v2Param.Schema),\n\t\t\tAllowEmptyValue: v2Param.AllowEmptyValue,\n\t\t},\n\t}\n\t// Convert SimpleSchema into Schema\n\tif param.Schema == nil {\n\t\tparam.Schema = &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:        []string{v2Param.Type},\n\t\t\t\tFormat:      v2Param.Format,\n\t\t\t\tUniqueItems: v2Param.UniqueItems,\n\t\t\t},\n\t\t}\n\t}\n\n\treturn param\n}\n\nfunc ConvertRefableParameter(refable spec.Refable) spec.Refable {\n\tif refable.Ref.String() != \"\" {\n\t\treturn spec.Refable{Ref: spec.MustCreateRef(strings.Replace(refable.Ref.String(), \"#/parameters/\", \"#/components/parameters/\", 1))}\n\t}\n\treturn refable\n}\n\nfunc ConvertRefableResponse(refable spec.Refable) spec.Refable {\n\tif refable.Ref.String() != \"\" {\n\t\treturn spec.Refable{Ref: spec.MustCreateRef(strings.Replace(refable.Ref.String(), \"#/responses/\", \"#/components/responses/\", 1))}\n\t}\n\treturn refable\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/openapi.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// ToSchemaFromOpenAPI converts a directory of OpenAPI schemas to an smd Schema.\n//   - models: a map from definition name to OpenAPI V3 structural schema for each definition.\n//     Key in map is used to resolve references in the schema.\n//   - preserveUnknownFields: flag indicating whether unknown fields in all schemas should be preserved.\n//   - returns: nil and an error if there is a parse error, or if schema does not satisfy a\n//     required structural schema invariant for conversion. If no error, returns\n//     a new smd schema.\n//\n// Schema should be validated as structural before using with this function, or\n// there may be information lost.\nfunc ToSchemaFromOpenAPI(models map[string]*spec.Schema, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\n\tfor name, spec := range models {\n\t\t// Skip/Ignore top-level references\n\t\tif len(spec.Ref.String()) > 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar a schema.Atom\n\n\t\t// Hard-coded schemas for now as proto_models implementation functions.\n\t\t// https://github.com/kubernetes/kube-openapi/issues/364\n\t\tif name == quantityResource {\n\t\t\ta = schema.Atom{\n\t\t\t\tScalar: untypedDef.Atom.Scalar,\n\t\t\t}\n\t\t} else if name == rawExtensionResource {\n\t\t\ta = untypedDef.Atom\n\t\t} else {\n\t\t\tc2 := c.push(name, &a)\n\t\t\tc2.visitSpec(spec)\n\t\t\tc.pop(c2)\n\t\t}\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) visitSpec(m *spec.Schema) {\n\t// Check if this schema opts its descendants into preserve-unknown-fields\n\tif p, ok := m.Extensions[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tc.preserveUnknownFields = true\n\t}\n\ta := c.top()\n\t*a = c.parseSchema(m)\n}\n\nfunc (c *convert) parseSchema(m *spec.Schema) schema.Atom {\n\t// k8s-generated OpenAPI specs have historically used only one value for\n\t// type and starting with OpenAPIV3 it is only allowed to be\n\t// a single string.\n\ttyp := \"\"\n\tif len(m.Type) > 0 {\n\t\ttyp = m.Type[0]\n\t}\n\n\t// Structural Schemas produced by kubernetes follow very specific rules which\n\t// we can use to infer the SMD type:\n\tswitch typ {\n\tcase \"\":\n\t\t// According to Swagger docs:\n\t\t// https://swagger.io/docs/specification/data-models/data-types/#any\n\t\t//\n\t\t// If no type is specified, it is equivalent to accepting any type.\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t\tList:   c.parseList(m),\n\t\t\tMap:    c.parseObject(m),\n\t\t}\n\n\tcase \"object\":\n\t\treturn schema.Atom{\n\t\t\tMap: c.parseObject(m),\n\t\t}\n\tcase \"array\":\n\t\treturn schema.Atom{\n\t\t\tList: c.parseList(m),\n\t\t}\n\tcase \"integer\", \"boolean\", \"number\", \"string\":\n\t\treturn convertPrimitive(typ, m.Format)\n\tdefault:\n\t\tc.reportError(\"unrecognized type: '%v'\", typ)\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t}\n\t}\n}\n\nfunc (c *convert) makeOpenAPIRef(specSchema *spec.Schema) schema.TypeRef {\n\trefString := specSchema.Ref.String()\n\n\t// Special-case handling for $ref stored inside a single-element allOf\n\tif len(refString) == 0 && len(specSchema.AllOf) == 1 && len(specSchema.AllOf[0].Ref.String()) > 0 {\n\t\trefString = specSchema.AllOf[0].Ref.String()\n\t}\n\n\tif _, n := path.Split(refString); len(n) > 0 {\n\t\t//!TODO: Refactor the field ElementRelationship override\n\t\t// we can generate the types with overrides ahead of time rather than\n\t\t// requiring the hacky runtime support\n\t\t// (could just create a normalized key struct containing all customizations\n\t\t// \tto deduplicate)\n\t\tmapRelationship, err := getMapElementRelationship(specSchema.Extensions)\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\tif len(mapRelationship) > 0 {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType:           &n,\n\t\t\t\tElementRelationship: &mapRelationship,\n\t\t\t}\n\t\t}\n\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &n,\n\t\t}\n\n\t}\n\tvar inlined schema.Atom\n\n\t// compute the type inline\n\tc2 := c.push(\"inlined in \"+c.currentName, &inlined)\n\tc2.preserveUnknownFields = c.preserveUnknownFields\n\tc2.visitSpec(specSchema)\n\tc.pop(c2)\n\n\treturn schema.TypeRef{\n\t\tInlined: inlined,\n\t}\n}\n\nfunc (c *convert) parseObject(s *spec.Schema) *schema.Map {\n\tvar fields []schema.StructField\n\tfor name, member := range s.Properties {\n\t\tfields = append(fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    c.makeOpenAPIRef(&member),\n\t\t\tDefault: member.Default,\n\t\t})\n\t}\n\n\t// AdditionalProperties informs the schema of any \"unknown\" keys\n\t// Unknown keys are enforced by the ElementType field.\n\telementType := func() schema.TypeRef {\n\t\tif s.AdditionalProperties == nil {\n\t\t\t// According to openAPI spec, an object without properties and without\n\t\t\t// additionalProperties is assumed to be a free-form object.\n\t\t\tif c.preserveUnknownFields || len(s.Properties) == 0 {\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If properties are specified, do not implicitly allow unknown\n\t\t\t// fields\n\t\t\treturn schema.TypeRef{}\n\t\t} else if s.AdditionalProperties.Schema != nil {\n\t\t\t// Unknown fields use the referred schema\n\t\t\treturn c.makeOpenAPIRef(s.AdditionalProperties.Schema)\n\n\t\t} else if s.AdditionalProperties.Allows {\n\t\t\t// A boolean instead of a schema was provided. Deduce the\n\t\t\t// type from the value provided at runtime.\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t}\n\t\t} else {\n\t\t\t// Additional Properties are explicitly disallowed by the user.\n\t\t\t// Ensure element type is empty.\n\t\t\treturn schema.TypeRef{}\n\t\t}\n\t}()\n\n\trelationship, err := getMapElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\treturn &schema.Map{\n\t\tFields:              fields,\n\t\tElementRelationship: relationship,\n\t\tElementType:         elementType,\n\t}\n}\n\nfunc (c *convert) parseList(s *spec.Schema) *schema.List {\n\trelationship, mapKeys, err := getListElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\telementType := func() schema.TypeRef {\n\t\tif s.Items != nil {\n\t\t\tif s.Items.Schema == nil || s.Items.Len() != 1 {\n\t\t\t\tc.reportError(\"structural schema arrays must have exactly one member subtype\")\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsubSchema := s.Items.Schema\n\t\t\tif subSchema == nil {\n\t\t\t\tsubSchema = &s.Items.Schemas[0]\n\t\t\t}\n\t\t\treturn c.makeOpenAPIRef(subSchema)\n\t\t} else if len(s.Type) > 0 && len(s.Type[0]) > 0 {\n\t\t\tc.reportError(\"`items` must be specified on arrays\")\n\t\t}\n\n\t\t// A list with no items specified is treated as \"untyped\".\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &untypedName,\n\t\t}\n\n\t}()\n\n\treturn &schema.List{\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t\tElementType:         elementType,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/proto_models.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// ToSchema converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2).\nfunc ToSchema(models proto.Models) (*schema.Schema, error) {\n\treturn ToSchemaWithPreserveUnknownFields(models, false)\n}\n\n// ToSchemaWithPreserveUnknownFields converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2), it will preserve unknown fields if specified.\nfunc ToSchemaWithPreserveUnknownFields(models proto.Models, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\tfor _, name := range models.ListModels() {\n\t\tmodel := models.LookupModel(name)\n\n\t\tvar a schema.Atom\n\t\tc2 := c.push(name, &a)\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) makeRef(model proto.Schema, preserveUnknownFields bool) schema.TypeRef {\n\tvar tr schema.TypeRef\n\tif r, ok := model.(*proto.Ref); ok {\n\t\tif r.Reference() == \"io.k8s.apimachinery.pkg.runtime.RawExtension\" {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t}\n\t\t}\n\t\t// reference a named type\n\t\t_, n := path.Split(r.Reference())\n\t\ttr.NamedType = &n\n\n\t\tmapRelationship, err := getMapElementRelationship(model.GetExtensions())\n\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\t// empty string means unset.\n\t\tif len(mapRelationship) > 0 {\n\t\t\ttr.ElementRelationship = &mapRelationship\n\t\t}\n\t} else {\n\t\t// compute the type inline\n\t\tc2 := c.push(\"inlined in \"+c.currentName, &tr.Inlined)\n\t\tc2.preserveUnknownFields = preserveUnknownFields\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tif tr == (schema.TypeRef{}) {\n\t\t\t// emit warning?\n\t\t\ttr.NamedType = &untypedName\n\t\t}\n\t}\n\treturn tr\n}\n\nfunc (c *convert) VisitKind(k *proto.Kind) {\n\tpreserveUnknownFields := c.preserveUnknownFields\n\tif p, ok := k.GetExtensions()[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tpreserveUnknownFields = true\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{}\n\tfor _, name := range k.FieldOrder {\n\t\tmember := k.Fields[name]\n\t\ttr := c.makeRef(member, preserveUnknownFields)\n\t\ta.Map.Fields = append(a.Map.Fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    tr,\n\t\t\tDefault: member.GetDefault(),\n\t\t})\n\t}\n\n\tunions, err := makeUnions(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t\treturn\n\t}\n\t// TODO: We should check that the fields and discriminator\n\t// specified in the union are actual fields in the struct.\n\ta.Map.Unions = unions\n\n\tif preserveUnknownFields {\n\t\ta.Map.ElementType = schema.TypeRef{\n\t\t\tNamedType: &deducedName,\n\t\t}\n\t}\n\n\ta.Map.ElementRelationship, err = getMapElementRelationship(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n}\n\nfunc (c *convert) VisitArray(a *proto.Array) {\n\trelationship, mapKeys, err := getListElementRelationship(a.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\tatom := c.top()\n\tatom.List = &schema.List{\n\t\tElementType:         c.makeRef(a.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t}\n}\n\nfunc (c *convert) VisitMap(m *proto.Map) {\n\trelationship, err := getMapElementRelationship(m.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{\n\t\tElementType:         c.makeRef(m.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t}\n}\n\nfunc (c *convert) VisitPrimitive(p *proto.Primitive) {\n\ta := c.top()\n\tif c.currentName == quantityResource {\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t} else {\n\t\t*a = convertPrimitive(p.Type, p.Format)\n\t}\n}\n\nfunc (c *convert) VisitArbitrary(a *proto.Arbitrary) {\n\t*c.top() = deducedDef.Atom\n}\n\nfunc (c *convert) VisitReference(proto.Reference) {\n\t// Do nothing, we handle references specially\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\nconst (\n\tquantityResource     = \"io.k8s.apimachinery.pkg.api.resource.Quantity\"\n\trawExtensionResource = \"io.k8s.apimachinery.pkg.runtime.RawExtension\"\n)\n\ntype convert struct {\n\tpreserveUnknownFields bool\n\toutput                *schema.Schema\n\n\tcurrentName   string\n\tcurrent       *schema.Atom\n\terrorMessages []string\n}\n\nfunc (c *convert) push(name string, a *schema.Atom) *convert {\n\treturn &convert{\n\t\tpreserveUnknownFields: c.preserveUnknownFields,\n\t\toutput:                c.output,\n\t\tcurrentName:           name,\n\t\tcurrent:               a,\n\t}\n}\n\nfunc (c *convert) top() *schema.Atom { return c.current }\n\nfunc (c *convert) pop(c2 *convert) {\n\tc.errorMessages = append(c.errorMessages, c2.errorMessages...)\n}\n\nfunc (c *convert) reportError(format string, args ...interface{}) {\n\tc.errorMessages = append(c.errorMessages,\n\t\tc.currentName+\": \"+fmt.Sprintf(format, args...),\n\t)\n}\n\nfunc (c *convert) insertTypeDef(name string, atom schema.Atom) {\n\tdef := schema.TypeDef{\n\t\tName: name,\n\t\tAtom: atom,\n\t}\n\tif def.Atom == (schema.Atom{}) {\n\t\t// This could happen if there were a top-level reference.\n\t\treturn\n\t}\n\tc.output.Types = append(c.output.Types, def)\n}\n\nfunc (c *convert) addCommonTypes() {\n\tc.output.Types = append(c.output.Types, untypedDef)\n\tc.output.Types = append(c.output.Types, deducedDef)\n}\n\nvar untypedName string = \"__untyped_atomic_\"\n\nvar untypedDef schema.TypeDef = schema.TypeDef{\n\tName: untypedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t},\n}\n\nvar deducedName string = \"__untyped_deduced_\"\n\nvar deducedDef schema.TypeDef = schema.TypeDef{\n\tName: deducedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Separable,\n\t\t},\n\t},\n}\n\nfunc makeUnions(extensions map[string]interface{}) ([]schema.Union, error) {\n\tschemaUnions := []schema.Union{}\n\tif iunions, ok := extensions[\"x-kubernetes-unions\"]; ok {\n\t\tunions, ok := iunions.([]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" should be a list, got %#v`, unions)\n\t\t}\n\t\tfor _, iunion := range unions {\n\t\t\tunion, ok := iunion.(map[interface{}]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" items should be a map of string to unions, got %#v`, iunion)\n\t\t\t}\n\t\t\tunionMap := map[string]interface{}{}\n\t\t\tfor k, v := range union {\n\t\t\t\tkey, ok := k.(string)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" has non-string key: %#v`, k)\n\t\t\t\t}\n\t\t\t\tunionMap[key] = v\n\t\t\t}\n\t\t\tschemaUnion, err := makeUnion(unionMap)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tschemaUnions = append(schemaUnions, schemaUnion)\n\t\t}\n\t}\n\n\t// Make sure we have no overlap between unions\n\tfs := map[string]struct{}{}\n\tfor _, u := range schemaUnions {\n\t\tif u.Discriminator != nil {\n\t\t\tif _, ok := fs[*u.Discriminator]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", *u.Discriminator)\n\t\t\t}\n\t\t\tfs[*u.Discriminator] = struct{}{}\n\t\t}\n\t\tfor _, f := range u.Fields {\n\t\t\tif _, ok := fs[f.FieldName]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", f.FieldName)\n\t\t\t}\n\t\t\tfs[f.FieldName] = struct{}{}\n\t\t}\n\t}\n\n\treturn schemaUnions, nil\n}\n\nfunc makeUnion(extensions map[string]interface{}) (schema.Union, error) {\n\tunion := schema.Union{\n\t\tFields: []schema.UnionField{},\n\t}\n\n\tif idiscriminator, ok := extensions[\"discriminator\"]; ok {\n\t\tdiscriminator, ok := idiscriminator.(string)\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"discriminator\" must be a string, got: %#v`, idiscriminator)\n\t\t}\n\t\tunion.Discriminator = &discriminator\n\t}\n\n\tif ifields, ok := extensions[\"fields-to-discriminateBy\"]; ok {\n\t\tfields, ok := ifields.(map[interface{}]interface{})\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\" must be a map[string]string, got: %#v`, ifields)\n\t\t}\n\t\t// Needs sorted keys by field.\n\t\tkeys := []string{}\n\t\tfor ifield := range fields {\n\t\t\tfield, ok := ifield.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\": field must be a string, got: %#v`, ifield)\n\t\t\t}\n\t\t\tkeys = append(keys, field)\n\n\t\t}\n\t\tsort.Strings(keys)\n\t\treverseMap := map[string]struct{}{}\n\t\tfor _, field := range keys {\n\t\t\tvalue := fields[field]\n\t\t\tdiscriminated, ok := value.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\"/%v: value must be a string, got: %#v`, field, value)\n\t\t\t}\n\t\t\tunion.Fields = append(union.Fields, schema.UnionField{\n\t\t\t\tFieldName:          field,\n\t\t\t\tDiscriminatorValue: discriminated,\n\t\t\t})\n\n\t\t\t// Check that we don't have the same discriminateBy multiple times.\n\t\t\tif _, ok := reverseMap[discriminated]; ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(\"Multiple fields have the same discriminated name: %v\", discriminated)\n\t\t\t}\n\t\t\treverseMap[discriminated] = struct{}{}\n\t\t}\n\t}\n\n\tif union.Discriminator != nil && len(union.Fields) == 0 {\n\t\treturn schema.Union{}, fmt.Errorf(\"discriminator set to %v, but no fields in union\", *union.Discriminator)\n\t}\n\treturn union, nil\n}\n\nfunc toStringSlice(o interface{}) (out []string, ok bool) {\n\tswitch t := o.(type) {\n\tcase []interface{}:\n\t\tfor _, v := range t {\n\t\t\tswitch vt := v.(type) {\n\t\t\tcase string:\n\t\t\t\tout = append(out, vt)\n\t\t\t}\n\t\t}\n\t\treturn out, true\n\tcase []string:\n\t\treturn t, true\n\t}\n\treturn nil, false\n}\n\nfunc ptr(s schema.Scalar) *schema.Scalar { return &s }\n\n// Basic conversion functions to convert OpenAPI schema definitions to\n// SMD Schema atoms\nfunc convertPrimitive(typ string, format string) (a schema.Atom) {\n\tswitch typ {\n\tcase \"integer\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"number\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"string\":\n\t\tswitch format {\n\t\tcase \"\":\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"byte\":\n\t\t\t// byte really means []byte and is encoded as a string.\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"int-or-string\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tcase \"date-time\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tdefault:\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\t}\n\tcase \"boolean\":\n\t\ta.Scalar = ptr(schema.Boolean)\n\tdefault:\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t}\n\n\treturn a\n}\n\nfunc getListElementRelationship(ext map[string]any) (schema.ElementRelationship, []string, error) {\n\tif val, ok := ext[\"x-kubernetes-list-type\"]; ok {\n\t\tswitch val {\n\t\tcase \"atomic\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tcase \"set\":\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"map\":\n\t\t\tkeys, ok := ext[\"x-kubernetes-list-map-keys\"]\n\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"missing map keys\")\n\t\t\t}\n\n\t\t\tkeyNames, ok := toStringSlice(keys)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted map keys: %#v\", keys)\n\t\t\t}\n\n\t\t\treturn schema.Associative, keyNames, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown list type %v\", val)\n\t\t}\n\t} else if val, ok := ext[\"x-kubernetes-patch-strategy\"]; ok {\n\t\tswitch val {\n\t\tcase \"merge\", \"merge,retainKeys\":\n\t\t\tif key, ok := ext[\"x-kubernetes-patch-merge-key\"]; ok {\n\t\t\t\tkeyName, ok := key.(string)\n\n\t\t\t\tif !ok {\n\t\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted merge key: %#v\", key)\n\t\t\t\t}\n\n\t\t\t\treturn schema.Associative, []string{keyName}, nil\n\t\t\t}\n\t\t\t// It's not an error for x-kubernetes-patch-merge-key to be absent,\n\t\t\t// it means it's a set\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"retainKeys\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown patch strategy %v\", val)\n\t\t}\n\t}\n\n\t// Treat as atomic by default\n\treturn schema.Atomic, nil, nil\n}\n\n// Returns map element relationship if specified, or empty string if unspecified\nfunc getMapElementRelationship(ext map[string]any) (schema.ElementRelationship, error) {\n\tval, ok := ext[\"x-kubernetes-map-type\"]\n\tif !ok {\n\t\t// unset Map element relationship\n\t\treturn \"\", nil\n\t}\n\n\tswitch val {\n\tcase \"atomic\":\n\t\treturn schema.Atomic, nil\n\tcase \"granular\":\n\t\treturn schema.Separable, nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown map type %v\", val)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemamutation/walker.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemamutation\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Walker runs callback functions on all references of an OpenAPI spec,\n// replacing the values when visiting corresponding types.\ntype Walker struct {\n\t// SchemaCallback will be called on each schema, taking the original schema,\n\t// and before any other callbacks of the Walker.\n\t// If the schema needs to be mutated, DO NOT mutate it in-place,\n\t// always create a copy, mutate, and return it.\n\tSchemaCallback func(schema *spec.Schema) *spec.Schema\n\n\t// RefCallback will be called on each ref.\n\t// If the ref needs to be mutated, DO NOT mutate it in-place,\n\t// always create a copy, mutate, and return it.\n\tRefCallback func(ref *spec.Ref) *spec.Ref\n}\n\ntype SchemaCallbackFunc func(schema *spec.Schema) *spec.Schema\ntype RefCallbackFunc func(ref *spec.Ref) *spec.Ref\n\nvar SchemaCallBackNoop SchemaCallbackFunc = func(schema *spec.Schema) *spec.Schema {\n\treturn schema\n}\nvar RefCallbackNoop RefCallbackFunc = func(ref *spec.Ref) *spec.Ref {\n\treturn ref\n}\n\n// ReplaceReferences rewrites the references without mutating the input.\n// The output might share data with the input.\nfunc ReplaceReferences(walkRef func(ref *spec.Ref) *spec.Ref, sp *spec.Swagger) *spec.Swagger {\n\twalker := &Walker{RefCallback: walkRef, SchemaCallback: SchemaCallBackNoop}\n\treturn walker.WalkRoot(sp)\n}\n\nfunc (w *Walker) WalkSchema(schema *spec.Schema) *spec.Schema {\n\tif schema == nil {\n\t\treturn nil\n\t}\n\n\torig := schema\n\tclone := func() {\n\t\tif orig == schema {\n\t\t\tschema = &spec.Schema{}\n\t\t\t*schema = *orig\n\t\t}\n\t}\n\n\t// Always run callback on the whole schema first\n\t// so that SchemaCallback can take the original schema as input.\n\tschema = w.SchemaCallback(schema)\n\n\tif r := w.RefCallback(&schema.Ref); r != &schema.Ref {\n\t\tclone()\n\t\tschema.Ref = *r\n\t}\n\n\tdefinitionsCloned := false\n\tfor k, v := range schema.Definitions {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Definitions = make(spec.Definitions, len(orig.Definitions))\n\t\t\t\tfor k2, v2 := range orig.Definitions {\n\t\t\t\t\tschema.Definitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Definitions[k] = *s\n\t\t}\n\t}\n\n\tpropertiesCloned := false\n\tfor k, v := range schema.Properties {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !propertiesCloned {\n\t\t\t\tpropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Properties = make(map[string]spec.Schema, len(orig.Properties))\n\t\t\t\tfor k2, v2 := range orig.Properties {\n\t\t\t\t\tschema.Properties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Properties[k] = *s\n\t\t}\n\t}\n\n\tpatternPropertiesCloned := false\n\tfor k, v := range schema.PatternProperties {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !patternPropertiesCloned {\n\t\t\t\tpatternPropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.PatternProperties = make(map[string]spec.Schema, len(orig.PatternProperties))\n\t\t\t\tfor k2, v2 := range orig.PatternProperties {\n\t\t\t\t\tschema.PatternProperties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.PatternProperties[k] = *s\n\t\t}\n\t}\n\n\tallOfCloned := false\n\tfor i := range schema.AllOf {\n\t\tif s := w.WalkSchema(&schema.AllOf[i]); s != &schema.AllOf[i] {\n\t\t\tif !allOfCloned {\n\t\t\t\tallOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AllOf = make([]spec.Schema, len(orig.AllOf))\n\t\t\t\tcopy(schema.AllOf, orig.AllOf)\n\t\t\t}\n\t\t\tschema.AllOf[i] = *s\n\t\t}\n\t}\n\n\tanyOfCloned := false\n\tfor i := range schema.AnyOf {\n\t\tif s := w.WalkSchema(&schema.AnyOf[i]); s != &schema.AnyOf[i] {\n\t\t\tif !anyOfCloned {\n\t\t\t\tanyOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AnyOf = make([]spec.Schema, len(orig.AnyOf))\n\t\t\t\tcopy(schema.AnyOf, orig.AnyOf)\n\t\t\t}\n\t\t\tschema.AnyOf[i] = *s\n\t\t}\n\t}\n\n\toneOfCloned := false\n\tfor i := range schema.OneOf {\n\t\tif s := w.WalkSchema(&schema.OneOf[i]); s != &schema.OneOf[i] {\n\t\t\tif !oneOfCloned {\n\t\t\t\toneOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.OneOf = make([]spec.Schema, len(orig.OneOf))\n\t\t\t\tcopy(schema.OneOf, orig.OneOf)\n\t\t\t}\n\t\t\tschema.OneOf[i] = *s\n\t\t}\n\t}\n\n\tif schema.Not != nil {\n\t\tif s := w.WalkSchema(schema.Not); s != schema.Not {\n\t\t\tclone()\n\t\t\tschema.Not = s\n\t\t}\n\t}\n\n\tif schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {\n\t\tif s := w.WalkSchema(schema.AdditionalProperties.Schema); s != schema.AdditionalProperties.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalProperties = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalProperties.Allows}\n\t\t}\n\t}\n\n\tif schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {\n\t\tif s := w.WalkSchema(schema.AdditionalItems.Schema); s != schema.AdditionalItems.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalItems = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalItems.Allows}\n\t\t}\n\t}\n\n\tif schema.Items != nil {\n\t\tif schema.Items.Schema != nil {\n\t\t\tif s := w.WalkSchema(schema.Items.Schema); s != schema.Items.Schema {\n\t\t\t\tclone()\n\t\t\t\tschema.Items = &spec.SchemaOrArray{Schema: s}\n\t\t\t}\n\t\t} else {\n\t\t\titemsCloned := false\n\t\t\tfor i := range schema.Items.Schemas {\n\t\t\t\tif s := w.WalkSchema(&schema.Items.Schemas[i]); s != &schema.Items.Schemas[i] {\n\t\t\t\t\tif !itemsCloned {\n\t\t\t\t\t\tclone()\n\t\t\t\t\t\tschema.Items = &spec.SchemaOrArray{\n\t\t\t\t\t\t\tSchemas: make([]spec.Schema, len(orig.Items.Schemas)),\n\t\t\t\t\t\t}\n\t\t\t\t\t\titemsCloned = true\n\t\t\t\t\t\tcopy(schema.Items.Schemas, orig.Items.Schemas)\n\t\t\t\t\t}\n\t\t\t\t\tschema.Items.Schemas[i] = *s\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn schema\n}\n\nfunc (w *Walker) walkParameter(param *spec.Parameter) *spec.Parameter {\n\tif param == nil {\n\t\treturn nil\n\t}\n\n\torig := param\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tparam = &spec.Parameter{}\n\t\t\t*param = *orig\n\t\t}\n\t}\n\n\tif r := w.RefCallback(&param.Ref); r != &param.Ref {\n\t\tclone()\n\t\tparam.Ref = *r\n\t}\n\tif s := w.WalkSchema(param.Schema); s != param.Schema {\n\t\tclone()\n\t\tparam.Schema = s\n\t}\n\tif param.Items != nil {\n\t\tif r := w.RefCallback(&param.Items.Ref); r != &param.Items.Ref {\n\t\t\tparam.Items.Ref = *r\n\t\t}\n\t}\n\n\treturn param\n}\n\nfunc (w *Walker) walkParameters(params []spec.Parameter) ([]spec.Parameter, bool) {\n\tif params == nil {\n\t\treturn nil, false\n\t}\n\n\torig := params\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tparams = make([]spec.Parameter, len(params))\n\t\t\tcopy(params, orig)\n\t\t}\n\t}\n\n\tfor i := range params {\n\t\tif s := w.walkParameter(&params[i]); s != &params[i] {\n\t\t\tclone()\n\t\t\tparams[i] = *s\n\t\t}\n\t}\n\n\treturn params, cloned\n}\n\nfunc (w *Walker) walkResponse(resp *spec.Response) *spec.Response {\n\tif resp == nil {\n\t\treturn nil\n\t}\n\n\torig := resp\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tresp = &spec.Response{}\n\t\t\t*resp = *orig\n\t\t}\n\t}\n\n\tif r := w.RefCallback(&resp.Ref); r != &resp.Ref {\n\t\tclone()\n\t\tresp.Ref = *r\n\t}\n\tif s := w.WalkSchema(resp.Schema); s != resp.Schema {\n\t\tclone()\n\t\tresp.Schema = s\n\t}\n\n\treturn resp\n}\n\nfunc (w *Walker) walkResponses(resps *spec.Responses) *spec.Responses {\n\tif resps == nil {\n\t\treturn nil\n\t}\n\n\torig := resps\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tresps = &spec.Responses{}\n\t\t\t*resps = *orig\n\t\t}\n\t}\n\n\tif r := w.walkResponse(resps.ResponsesProps.Default); r != resps.ResponsesProps.Default {\n\t\tclone()\n\t\tresps.Default = r\n\t}\n\n\tresponsesCloned := false\n\tfor k, v := range resps.ResponsesProps.StatusCodeResponses {\n\t\tif r := w.walkResponse(&v); r != &v {\n\t\t\tif !responsesCloned {\n\t\t\t\tresponsesCloned = true\n\t\t\t\tclone()\n\t\t\t\tresps.ResponsesProps.StatusCodeResponses = make(map[int]spec.Response, len(orig.StatusCodeResponses))\n\t\t\t\tfor k2, v2 := range orig.StatusCodeResponses {\n\t\t\t\t\tresps.ResponsesProps.StatusCodeResponses[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tresps.ResponsesProps.StatusCodeResponses[k] = *r\n\t\t}\n\t}\n\n\treturn resps\n}\n\nfunc (w *Walker) walkOperation(op *spec.Operation) *spec.Operation {\n\tif op == nil {\n\t\treturn nil\n\t}\n\n\torig := op\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\top = &spec.Operation{}\n\t\t\t*op = *orig\n\t\t}\n\t}\n\n\tparametersCloned := false\n\tfor i := range op.Parameters {\n\t\tif s := w.walkParameter(&op.Parameters[i]); s != &op.Parameters[i] {\n\t\t\tif !parametersCloned {\n\t\t\t\tparametersCloned = true\n\t\t\t\tclone()\n\t\t\t\top.Parameters = make([]spec.Parameter, len(orig.Parameters))\n\t\t\t\tcopy(op.Parameters, orig.Parameters)\n\t\t\t}\n\t\t\top.Parameters[i] = *s\n\t\t}\n\t}\n\n\tif r := w.walkResponses(op.Responses); r != op.Responses {\n\t\tclone()\n\t\top.Responses = r\n\t}\n\n\treturn op\n}\n\nfunc (w *Walker) walkPathItem(pathItem *spec.PathItem) *spec.PathItem {\n\tif pathItem == nil {\n\t\treturn nil\n\t}\n\n\torig := pathItem\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tpathItem = &spec.PathItem{}\n\t\t\t*pathItem = *orig\n\t\t}\n\t}\n\n\tif p, changed := w.walkParameters(pathItem.Parameters); changed {\n\t\tclone()\n\t\tpathItem.Parameters = p\n\t}\n\tif op := w.walkOperation(pathItem.Get); op != pathItem.Get {\n\t\tclone()\n\t\tpathItem.Get = op\n\t}\n\tif op := w.walkOperation(pathItem.Head); op != pathItem.Head {\n\t\tclone()\n\t\tpathItem.Head = op\n\t}\n\tif op := w.walkOperation(pathItem.Delete); op != pathItem.Delete {\n\t\tclone()\n\t\tpathItem.Delete = op\n\t}\n\tif op := w.walkOperation(pathItem.Options); op != pathItem.Options {\n\t\tclone()\n\t\tpathItem.Options = op\n\t}\n\tif op := w.walkOperation(pathItem.Patch); op != pathItem.Patch {\n\t\tclone()\n\t\tpathItem.Patch = op\n\t}\n\tif op := w.walkOperation(pathItem.Post); op != pathItem.Post {\n\t\tclone()\n\t\tpathItem.Post = op\n\t}\n\tif op := w.walkOperation(pathItem.Put); op != pathItem.Put {\n\t\tclone()\n\t\tpathItem.Put = op\n\t}\n\n\treturn pathItem\n}\n\nfunc (w *Walker) walkPaths(paths *spec.Paths) *spec.Paths {\n\tif paths == nil {\n\t\treturn nil\n\t}\n\n\torig := paths\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tpaths = &spec.Paths{}\n\t\t\t*paths = *orig\n\t\t}\n\t}\n\n\tpathsCloned := false\n\tfor k, v := range paths.Paths {\n\t\tif p := w.walkPathItem(&v); p != &v {\n\t\t\tif !pathsCloned {\n\t\t\t\tpathsCloned = true\n\t\t\t\tclone()\n\t\t\t\tpaths.Paths = make(map[string]spec.PathItem, len(orig.Paths))\n\t\t\t\tfor k2, v2 := range orig.Paths {\n\t\t\t\t\tpaths.Paths[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tpaths.Paths[k] = *p\n\t\t}\n\t}\n\n\treturn paths\n}\n\nfunc (w *Walker) WalkRoot(swagger *spec.Swagger) *spec.Swagger {\n\tif swagger == nil {\n\t\treturn nil\n\t}\n\n\torig := swagger\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tswagger = &spec.Swagger{}\n\t\t\t*swagger = *orig\n\t\t}\n\t}\n\n\tparametersCloned := false\n\tfor k, v := range swagger.Parameters {\n\t\tif p := w.walkParameter(&v); p != &v {\n\t\t\tif !parametersCloned {\n\t\t\t\tparametersCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Parameters = make(map[string]spec.Parameter, len(orig.Parameters))\n\t\t\t\tfor k2, v2 := range orig.Parameters {\n\t\t\t\t\tswagger.Parameters[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Parameters[k] = *p\n\t\t}\n\t}\n\n\tresponsesCloned := false\n\tfor k, v := range swagger.Responses {\n\t\tif r := w.walkResponse(&v); r != &v {\n\t\t\tif !responsesCloned {\n\t\t\t\tresponsesCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Responses = make(map[string]spec.Response, len(orig.Responses))\n\t\t\t\tfor k2, v2 := range orig.Responses {\n\t\t\t\t\tswagger.Responses[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Responses[k] = *r\n\t\t}\n\t}\n\n\tdefinitionsCloned := false\n\tfor k, v := range swagger.Definitions {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Definitions = make(spec.Definitions, len(orig.Definitions))\n\t\t\t\tfor k2, v2 := range orig.Definitions {\n\t\t\t\t\tswagger.Definitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Definitions[k] = *s\n\t\t}\n\t}\n\n\tif swagger.Paths != nil {\n\t\tif p := w.walkPaths(swagger.Paths); p != swagger.Paths {\n\t\t\tclone()\n\t\t\tswagger.Paths = p\n\t\t}\n\t}\n\n\treturn swagger\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/component.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport \"k8s.io/kube-openapi/pkg/validation/spec\"\n\n// Components holds a set of reusable objects for different aspects of the OAS.\n// All objects defined within the components object will have no effect on the API\n// unless they are explicitly referenced from properties outside the components object.\n//\n// more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\ntype Components struct {\n\t// Schemas holds reusable Schema Objects\n\tSchemas map[string]*spec.Schema `json:\"schemas,omitempty\"`\n\t// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\n\tSecuritySchemes SecuritySchemes `json:\"securitySchemes,omitempty\"`\n\t// Responses holds reusable Responses Objects\n\tResponses map[string]*Response `json:\"responses,omitempty\"`\n\t// Parameters holds reusable Parameters Objects\n\tParameters map[string]*Parameter `json:\"parameters,omitempty\"`\n\t// Example holds reusable Example objects\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// RequestBodies holds reusable Request Body objects\n\tRequestBodies map[string]*RequestBody `json:\"requestBodies,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// all fields are defined at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\n}\n\n// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecuritySchemes map[string]*SecurityScheme\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/encoding.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Encoding struct {\n\tEncodingProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Encoding as JSON\nfunc (e *Encoding) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(e.EncodingProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *Encoding) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.EncodingProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Encoding) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tEncodingProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.EncodingProps = x.EncodingProps\n\treturn nil\n}\n\ntype EncodingProps struct {\n\t// Content Type for encoding a specific property\n\tContentType string `json:\"contentType,omitempty\"`\n\t// A map allowing additional information to be provided as headers\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Describes how a specific property value will be serialized depending on its type\n\tStyle string `json:\"style,omitempty\"`\n\t// When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/example.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Example https://swagger.io/specification/#example-object\n\ntype Example struct {\n\tspec.Refable\n\tExampleProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (e *Example) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(e.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.ExampleProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (e *Example) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.ExampleProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Example) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExampleProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&e.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExampleProps = x.ExampleProps\n\n\treturn nil\n}\n\ntype ExampleProps struct {\n\t// Summary holds a short description of the example\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a long description of the example\n\tDescription string `json:\"description,omitempty\"`\n\t// Embedded literal example.\n\tValue interface{} `json:\"value,omitempty\"`\n\t// A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents.\n\tExternalValue string `json:\"externalValue,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/external_documentation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype ExternalDocumentation struct {\n\tExternalDocumentationProps\n\tspec.VendorExtensible\n}\n\ntype ExternalDocumentationProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (e *ExternalDocumentation) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(e.ExternalDocumentationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *ExternalDocumentation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.ExternalDocumentationProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *ExternalDocumentation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExternalDocumentationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExternalDocumentationProps = x.ExternalDocumentationProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/fuzz.go",
    "content": "package spec3\n\nimport (\n\t\"math/rand\"\n\t\"strings\"\n\n\tfuzz \"github.com/google/gofuzz\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// refChance is the chance that a particular component will use a $ref\n// instead of fuzzed. Expressed as a fraction 1/n, currently there is\n// a 1/3 chance that a ref will be used.\nconst refChance = 3\n\nconst alphaNumChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\nfunc randAlphanumString() string {\n\tarr := make([]string, rand.Intn(10)+5)\n\tfor i := 0; i < len(arr); i++ {\n\t\tarr[i] = string(alphaNumChars[rand.Intn(len(alphaNumChars))])\n\t}\n\treturn strings.Join(arr, \"\")\n}\n\nvar OpenAPIV3FuzzFuncs []interface{} = []interface{}{\n\tfunc(s *string, c fuzz.Continue) {\n\t\t// All OpenAPI V3 map keys must follow the corresponding\n\t\t// regex. Note that this restricts the range for all other\n\t\t// string values as well.\n\t\tstr := randAlphanumString()\n\t\t*s = str\n\t},\n\tfunc(o *OpenAPI, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(o)\n\t\to.Version = \"3.0.0\"\n\t},\n\tfunc(r *interface{}, c fuzz.Continue) {\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t*r = nil\n\t\tcase 1:\n\t\t\tn := c.RandString() + \"x\"\n\t\t\t*r = n\n\t\tcase 2:\n\t\t\tn := c.Float64()\n\t\t\t*r = n\n\t\t}\n\t},\n\tfunc(v **spec.Info, c fuzz.Continue) {\n\t\t// Info is never nil\n\t\t*v = &spec.Info{}\n\t\tc.FuzzNoCustom(*v)\n\t\t(*v).Title = c.RandString() + \"x\"\n\t},\n\tfunc(v *Paths, c fuzz.Continue) {\n\t\tc.Fuzz(&v.VendorExtensible)\n\t\tnum := c.Intn(5)\n\t\tif num > 0 {\n\t\t\tv.Paths = make(map[string]*Path)\n\t\t}\n\t\tfor i := 0; i < num; i++ {\n\t\t\tval := Path{}\n\t\t\tc.Fuzz(&val)\n\t\t\tv.Paths[\"/\"+c.RandString()] = &val\n\t\t}\n\t},\n\tfunc(v *SecurityScheme, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tswitch c.Intn(4) {\n\t\tcase 0:\n\t\t\tv.Type = \"apiKey\"\n\t\t\tv.Name = c.RandString() + \"x\"\n\t\t\tswitch c.Intn(3) {\n\t\t\tcase 0:\n\t\t\t\tv.In = \"query\"\n\t\t\tcase 1:\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 2:\n\t\t\t\tv.In = \"cookie\"\n\t\t\t}\n\t\tcase 1:\n\t\t\tv.Type = \"http\"\n\t\tcase 2:\n\t\t\tv.Type = \"oauth2\"\n\t\t\tv.Flows = make(map[string]*OAuthFlow)\n\t\t\tflow := OAuthFlow{}\n\t\t\tflow.AuthorizationUrl = c.RandString() + \"x\"\n\t\t\tv.Flows[\"implicit\"] = &flow\n\t\t\tflow.Scopes = make(map[string]string)\n\t\t\tflow.Scopes[\"foo\"] = \"bar\"\n\t\tcase 3:\n\t\t\tv.Type = \"openIdConnect\"\n\t\t\tv.OpenIdConnectUrl = \"https://\" + c.RandString()\n\t\t}\n\t\tv.Scheme = \"basic\"\n\t},\n\tfunc(v *spec.Ref, c fuzz.Continue) {\n\t\tswitch c.Intn(7) {\n\t\tcase 0:\n\t\t\t*v = spec.MustCreateRef(\"#/components/schemas/\" + randAlphanumString())\n\t\tcase 1:\n\t\t\t*v = spec.MustCreateRef(\"#/components/responses/\" + randAlphanumString())\n\t\tcase 2:\n\t\t\t*v = spec.MustCreateRef(\"#/components/headers/\" + randAlphanumString())\n\t\tcase 3:\n\t\t\t*v = spec.MustCreateRef(\"#/components/securitySchemes/\" + randAlphanumString())\n\t\tcase 5:\n\t\t\t*v = spec.MustCreateRef(\"#/components/parameters/\" + randAlphanumString())\n\t\tcase 6:\n\t\t\t*v = spec.MustCreateRef(\"#/components/requestBodies/\" + randAlphanumString())\n\t\t}\n\t},\n\tfunc(v *Parameter, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.ParameterProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t// Header param\n\t\t\tv.In = \"query\"\n\t\tcase 1:\n\t\t\tv.In = \"header\"\n\t\tcase 2:\n\t\t\tv.In = \"cookie\"\n\t\t}\n\t},\n\tfunc(v *RequestBody, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.RequestBodyProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *Header, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.HeaderProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *ResponsesProps, c fuzz.Continue) {\n\t\tc.Fuzz(&v.Default)\n\t\tn := c.Intn(5)\n\t\tfor i := 0; i < n; i++ {\n\t\t\tr2 := Response{}\n\t\t\tc.Fuzz(&r2)\n\t\t\t// HTTP Status code in 100-599 Range\n\t\t\tcode := c.Intn(500) + 100\n\t\t\tv.StatusCodeResponses = make(map[int]*Response)\n\t\t\tv.StatusCodeResponses[code] = &r2\n\t\t}\n\t},\n\tfunc(v *Response, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.ResponseProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *spec.Extensions, c fuzz.Continue) {\n\t\tnumChildren := c.Intn(5)\n\t\tfor i := 0; i < numChildren; i++ {\n\t\t\tif *v == nil {\n\t\t\t\t*v = spec.Extensions{}\n\t\t\t}\n\t\t\t(*v)[\"x-\"+c.RandString()] = c.RandString()\n\t\t}\n\t},\n\tfunc(v *spec.ExternalDocumentation, c fuzz.Continue) {\n\t\tc.Fuzz(&v.Description)\n\t\tv.URL = \"https://\" + randAlphanumString()\n\t},\n\tfunc(v *spec.SchemaURL, c fuzz.Continue) {\n\t\t*v = spec.SchemaURL(\"https://\" + randAlphanumString())\n\t},\n\tfunc(v *spec.SchemaOrBool, c fuzz.Continue) {\n\t\t*v = spec.SchemaOrBool{}\n\n\t\tif c.RandBool() {\n\t\t\tv.Allows = c.RandBool()\n\t\t} else {\n\t\t\tv.Schema = &spec.Schema{}\n\t\t\tv.Allows = true\n\t\t\tc.Fuzz(&v.Schema)\n\t\t}\n\t},\n\tfunc(v *spec.SchemaOrArray, c fuzz.Continue) {\n\t\t*v = spec.SchemaOrArray{}\n\t\tif c.RandBool() {\n\t\t\tschema := spec.Schema{}\n\t\t\tc.Fuzz(&schema)\n\t\t\tv.Schema = &schema\n\t\t} else {\n\t\t\tv.Schemas = []spec.Schema{}\n\t\t\tnumChildren := c.Intn(5)\n\t\t\tfor i := 0; i < numChildren; i++ {\n\t\t\t\tschema := spec.Schema{}\n\t\t\t\tc.Fuzz(&schema)\n\t\t\t\tv.Schemas = append(v.Schemas, schema)\n\t\t\t}\n\n\t\t}\n\n\t},\n\tfunc(v *spec.SchemaOrStringArray, c fuzz.Continue) {\n\t\tif c.RandBool() {\n\t\t\t*v = spec.SchemaOrStringArray{}\n\t\t\tif c.RandBool() {\n\t\t\t\tc.Fuzz(&v.Property)\n\t\t\t} else {\n\t\t\t\tc.Fuzz(&v.Schema)\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *spec.Schema, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Ref)\n\t\t\treturn\n\t\t}\n\t\tif c.RandBool() {\n\t\t\t// file schema\n\t\t\tc.Fuzz(&v.Default)\n\t\t\tc.Fuzz(&v.Description)\n\t\t\tc.Fuzz(&v.Example)\n\t\t\tc.Fuzz(&v.ExternalDocs)\n\n\t\t\tc.Fuzz(&v.Format)\n\t\t\tc.Fuzz(&v.ReadOnly)\n\t\t\tc.Fuzz(&v.Required)\n\t\t\tc.Fuzz(&v.Title)\n\t\t\tv.Type = spec.StringOrArray{\"file\"}\n\n\t\t} else {\n\t\t\t// normal schema\n\t\t\tc.Fuzz(&v.SchemaProps)\n\t\t\tc.Fuzz(&v.SwaggerSchemaProps)\n\t\t\tc.Fuzz(&v.VendorExtensible)\n\t\t\tc.Fuzz(&v.ExtraProps)\n\t\t}\n\n\t},\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/header.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Header a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around HeaderProps to make it referable and extensible\ntype Header struct {\n\tspec.Refable\n\tHeaderProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Header as JSON\nfunc (h *Header) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(h.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\tif err := json.Unmarshal(data, &h.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.HeaderProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tHeaderProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&h.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\treturn nil\n}\n\n// HeaderProps a struct that describes a header object\ntype HeaderProps struct {\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the header\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the header\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/media_type.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// MediaType a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\n//\n// Note that this struct is actually a thin wrapper around MediaTypeProps to make it referable and extensible\ntype MediaType struct {\n\tMediaTypeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode MediaType as JSON\nfunc (m *MediaType) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(m.MediaTypeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(m.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (m *MediaType) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, m)\n\t}\n\tif err := json.Unmarshal(data, &m.MediaTypeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &m.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (m *MediaType) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tMediaTypeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tm.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tm.MediaTypeProps = x.MediaTypeProps\n\n\treturn nil\n}\n\n// MediaTypeProps a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\ntype MediaTypeProps struct {\n\t// Schema holds the schema defining the type used for the media type\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Example of the media type\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the media type. Each example object should match the media type and specific schema if present\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded\n\tEncoding map[string]*Encoding `json:\"encoding,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/operation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Operation describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\n//\n// Note that this struct is actually a thin wrapper around OperationProps to make it referable and extensible\ntype Operation struct {\n\tOperationProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Operation as JSON\nfunc (o *Operation) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tOperationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = x.OperationProps\n\treturn nil\n}\n\n// OperationProps describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\ntype OperationProps struct {\n\t// Tags holds a list of tags for API documentation control\n\tTags []string `json:\"tags,omitempty\"`\n\t// Summary holds a short summary of what the operation does\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a verbose explanation of the operation behavior\n\tDescription string `json:\"description,omitempty\"`\n\t// ExternalDocs holds additional external documentation for this operation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\t// OperationId holds a unique string used to identify the operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n\t// RequestBody holds the request body applicable for this operation\n\tRequestBody *RequestBody `json:\"requestBody,omitempty\"`\n\t// Responses holds the list of possible responses as they are returned from executing this operation\n\tResponses *Responses `json:\"responses,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// SecurityRequirement holds a declaration of which security mechanisms can be used for this operation\n\tSecurityRequirement []map[string][]string `json:\"security,omitempty\"`\n\t// Servers contains an alternative server array to service this operation\n\tServers []*Server `json:\"servers,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/parameter.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Parameter a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around ParameterProps to make it referable and extensible\ntype Parameter struct {\n\tspec.Refable\n\tParameterProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Parameter as JSON\nfunc (p *Parameter) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.ParameterProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.ParameterProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tParameterProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParameterProps = x.ParameterProps\n\treturn nil\n}\n\n// ParameterProps a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\ntype ParameterProps struct {\n\t// Name holds the name of the parameter\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the parameter\n\tIn string `json:\"in,omitempty\"`\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the parameter's potential value\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the parameter's potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/path.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Paths describes the available paths and operations for the API, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathsObject\ntype Paths struct {\n\tPaths map[string]*Path\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Paths as JSON\nfunc (p *Paths) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(p.Paths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t}\n\t\t\tvar pi *Path\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*p = Paths{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi := Path{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = &pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Path describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\n//\n// Note that this struct is actually a thin wrapper around PathProps to make it referable and extensible\ntype Path struct {\n\tspec.Refable\n\tPathProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Path as JSON\nfunc (p *Path) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.PathProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Path) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.PathProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (p *Path) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tPathProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathProps = x.PathProps\n\n\treturn nil\n}\n\n// PathProps describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\ntype PathProps struct {\n\t// Summary holds a summary for all operations in this path\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a description for all operations in this path\n\tDescription string `json:\"description,omitempty\"`\n\t// Get defines GET operation\n\tGet *Operation `json:\"get,omitempty\"`\n\t// Put defines PUT operation\n\tPut *Operation `json:\"put,omitempty\"`\n\t// Post defines POST operation\n\tPost *Operation `json:\"post,omitempty\"`\n\t// Delete defines DELETE operation\n\tDelete *Operation `json:\"delete,omitempty\"`\n\t// Options defines OPTIONS operation\n\tOptions *Operation `json:\"options,omitempty\"`\n\t// Head defines HEAD operation\n\tHead *Operation `json:\"head,omitempty\"`\n\t// Patch defines PATCH operation\n\tPatch *Operation `json:\"patch,omitempty\"`\n\t// Trace defines TRACE operation\n\tTrace *Operation `json:\"trace,omitempty\"`\n\t// Servers is an alternative server array to service all operations in this path\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/request_body.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// RequestBody describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\n//\n// Note that this struct is actually a thin wrapper around RequestBodyProps to make it referable and extensible\ntype RequestBody struct {\n\tspec.Refable\n\tRequestBodyProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (r *RequestBody) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.RequestBodyProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *RequestBody) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.RequestBodyProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// RequestBodyProps describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\ntype RequestBodyProps struct {\n\t// Description holds a brief description of the request body\n\tDescription string `json:\"description,omitempty\"`\n\t// Content is the content of the request body. The key is a media type or media type range and the value describes it\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Required determines if the request body is required in the request\n\tRequired bool `json:\"required,omitempty\"`\n}\n\nfunc (r *RequestBody) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tRequestBodyProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.RequestBodyProps = x.RequestBodyProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/response.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Responses holds the list of possible responses as they are returned from executing this operation\n//\n// Note that this struct is actually a thin wrapper around ResponsesProps to make it referable and extensible\ntype Responses struct {\n\tResponsesProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (r *Responses) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// ResponsesProps holds the list of possible responses as they are returned from executing this operation\ntype ResponsesProps struct {\n\t// Default holds the documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses\n\tDefault *Response `json:\"-\"`\n\t// StatusCodeResponses holds a map of any HTTP status code to the response definition\n\tStatusCodeResponses map[int]*Response `json:\"-\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode ResponsesProps as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]*Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = &value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*r = Responses{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp := Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tr.ResponsesProps.Default = &resp\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp := Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = &resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Response describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\n//\n// Note that this struct is actually a thin wrapper around ResponseProps to make it referable and extensible\ntype Response struct {\n\tspec.Refable\n\tResponseProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Response as JSON\nfunc (r *Response) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tResponseProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\treturn nil\n}\n\n// ResponseProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype ResponseProps struct {\n\t// Description holds a short description of the response\n\tDescription string `json:\"description,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Content holds a map containing descriptions of potential response payloads\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n}\n\n// Link represents a possible design-time link for a response, more at https://swagger.io/specification/#link-object\ntype Link struct {\n\tspec.Refable\n\tLinkProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Link as JSON\nfunc (r *Link) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.LinkProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *Link) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.LinkProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (l *Link) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tLinkProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&l.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tl.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tl.LinkProps = x.LinkProps\n\treturn nil\n}\n\n// LinkProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype LinkProps struct {\n\t// OperationId is the name of an existing, resolvable OAS operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters is a map representing parameters to pass to an operation as specified with operationId or identified via operationRef\n\tParameters map[string]interface{} `json:\"parameters,omitempty\"`\n\t// Description holds a description of the link\n\tDescription string `json:\"description,omitempty\"`\n\t// RequestBody is a literal value or expresion to use as a request body when calling the target operation\n\tRequestBody interface{} `json:\"requestBody,omitempty\"`\n\t// Server holds a server object used by the target operation\n\tServer *Server `json:\"server,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/security_scheme.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// SecurityScheme defines reusable Security Scheme Object, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecurityScheme struct {\n\tspec.Refable\n\tSecuritySchemeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode SecurityScheme as JSON\nfunc (s *SecurityScheme) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(s.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.Refable)\n}\n\n// SecuritySchemeProps defines a security scheme that can be used by the operations\ntype SecuritySchemeProps struct {\n\t// Type of the security scheme\n\tType string `json:\"type,omitempty\"`\n\t// Description holds a short description for security scheme\n\tDescription string `json:\"description,omitempty\"`\n\t// Name holds the name of the header, query or cookie parameter to be used\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the API key\n\tIn string `json:\"in,omitempty\"`\n\t// Scheme holds the name of the HTTP Authorization scheme to be used in the Authorization header\n\tScheme string `json:\"scheme,omitempty\"`\n\t// BearerFormat holds a hint to the client to identify how the bearer token is formatted\n\tBearerFormat string `json:\"bearerFormat,omitempty\"`\n\t// Flows contains configuration information for the flow types supported.\n\tFlows map[string]*OAuthFlow `json:\"flows,omitempty\"`\n\t// OpenIdConnectUrl holds an url to discover OAuth2 configuration values from\n\tOpenIdConnectUrl string `json:\"openIdConnectUrl,omitempty\"`\n}\n\n// OAuthFlow contains configuration information for the flow types supported.\ntype OAuthFlow struct {\n\tOAuthFlowProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode OAuthFlow as JSON\nfunc (o *OAuthFlow) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(o.OAuthFlowProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *OAuthFlow) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &o.OAuthFlowProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\n// OAuthFlowProps holds configuration details for a supported OAuth Flow\ntype OAuthFlowProps struct {\n\t// AuthorizationUrl hold the authorization URL to be used for this flow\n\tAuthorizationUrl string `json:\"authorizationUrl,omitempty\"`\n\t// TokenUrl holds the token URL to be used for this flow\n\tTokenUrl string `json:\"tokenUrl,omitempty\"`\n\t// RefreshUrl holds the URL to be used for obtaining refresh tokens\n\tRefreshUrl string `json:\"refreshUrl,omitempty\"`\n\t// Scopes holds the available scopes for the OAuth2 security scheme\n\tScopes map[string]string `json:\"scopes,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/server.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Server struct {\n\tServerProps\n\tspec.VendorExtensible\n}\n\ntype ServerProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n\t// Variables contains a map between a variable name and its value. The value is used for substitution in the server's URL templeate\n\tVariables map[string]*ServerVariable `json:\"variables,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *Server) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.ServerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *Server) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tif err := json.Unmarshal(data, &s.ServerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *Server) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerProps = x.ServerProps\n\n\treturn nil\n}\n\ntype ServerVariable struct {\n\tServerVariableProps\n\tspec.VendorExtensible\n}\n\ntype ServerVariableProps struct {\n\t// Enum is an enumeration of string values to be used if the substitution options are from a limited set\n\tEnum []string `json:\"enum,omitempty\"`\n\t// Default is the default value to use for substitution, which SHALL be sent if an alternate value is not supplied\n\tDefault string `json:\"default\"`\n\t// Description is a description for the server variable\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *ServerVariable) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.ServerVariableProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *ServerVariable) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tif err := json.Unmarshal(data, &s.ServerVariableProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *ServerVariable) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerVariableProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerVariableProps = x.ServerVariableProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/spec.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// OpenAPI is an object that describes an API and conforms to the OpenAPI Specification.\ntype OpenAPI struct {\n\t// Version represents the semantic version number of the OpenAPI Specification that this document uses\n\tVersion string `json:\"openapi\"`\n\t// Info provides metadata about the API\n\tInfo *spec.Info `json:\"info\"`\n\t// Paths holds the available target and operations for the API\n\tPaths *Paths `json:\"paths,omitempty\"`\n\t// Servers is an array of Server objects which provide connectivity information to a target server\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Components hold various schemas for the specification\n\tComponents *Components `json:\"components,omitempty\"`\n\t// ExternalDocs holds additional external documentation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\nfunc (o *OpenAPI) UnmarshalJSON(data []byte) error {\n\ttype OpenAPIWithNoFunctions OpenAPI\n\tp := (*OpenAPIWithNoFunctions)(o)\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, &p)\n\t}\n\treturn json.Unmarshal(data, &p)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/OWNERS",
    "content": "approvers:\n- apelisse\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package proto is a collection of libraries for parsing and indexing the type definitions.\n// The openapi spec contains the object model definitions and extensions metadata.\npackage proto\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/document.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\topenapi_v2 \"github.com/google/gnostic/openapiv2\"\n\t\"gopkg.in/yaml.v2\"\n)\n\nfunc newSchemaError(path *Path, format string, a ...interface{}) error {\n\terr := fmt.Sprintf(format, a...)\n\tif path.Len() == 0 {\n\t\treturn fmt.Errorf(\"SchemaError: %v\", err)\n\t}\n\treturn fmt.Errorf(\"SchemaError(%v): %v\", path, err)\n}\n\n// VendorExtensionToMap converts openapi VendorExtension to a map.\nfunc VendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n\n// Definitions is an implementation of `Models`. It looks for\n// models in an openapi Schema.\ntype Definitions struct {\n\tmodels map[string]Schema\n}\n\nvar _ Models = &Definitions{}\n\n// NewOpenAPIData creates a new `Models` out of the openapi document.\nfunc NewOpenAPIData(doc *openapi_v2.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tschema, err := definitions.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t}\n\n\treturn &definitions, nil\n}\n\n// We believe the schema is a reference, verify that and returns a new\n// Schema\nfunc (d *Definitions) parseReference(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\t// TODO(wrong): a schema with a $ref can have properties. We can ignore them (would be incomplete), but we cannot return an error.\n\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\treturn nil, newSchemaError(path, \"unallowed embedded type definition\")\n\t}\n\t// TODO(wrong): a schema with a $ref can have a type. We can ignore it (would be incomplete), but we cannot return an error.\n\tif len(s.GetType().GetValue()) > 0 {\n\t\treturn nil, newSchemaError(path, \"definition reference can't have a type\")\n\t}\n\n\t// TODO(wrong): $refs outside of the definitions are completely valid. We can ignore them (would be incomplete), but we cannot return an error.\n\tif !strings.HasPrefix(s.GetXRef(), \"#/definitions/\") {\n\t\treturn nil, newSchemaError(path, \"unallowed reference to non-definition %q\", s.GetXRef())\n\t}\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/definitions/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{\n\t\tBaseSchema:  base,\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc parseDefault(def *openapi_v2.Any) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := yaml.Unmarshal([]byte(def.Yaml), &i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseBaseSchema(s *openapi_v2.Schema, path *Path) (BaseSchema, error) {\n\tdef, err := parseDefault(s.GetDefault())\n\tif err != nil {\n\t\treturn BaseSchema{}, err\n\t}\n\treturn BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  VendorExtensionToMap(s.GetVendorExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseMap(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\t// TODO(incomplete): this misses the boolean case as AdditionalProperties is a bool+schema sum type.\n\tif s.GetAdditionalProperties().GetSchema() == nil {\n\t\tbase, err := d.parseBaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: base,\n\t\t}\n\t} else {\n\t\tvar err error\n\t\tsub, err = d.ParseSchema(s.GetAdditionalProperties().GetSchema(), path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parsePrimitive(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tvar t string\n\tif len(s.GetType().GetValue()) > 1 {\n\t\treturn nil, newSchemaError(path, \"primitive can't have more than 1 type\")\n\t}\n\tif len(s.GetType().GetValue()) == 1 {\n\t\tt = s.GetType().GetValue()[0]\n\t}\n\tswitch t {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\t// TODO(wrong): this misses \"null\". Would skip the null case (would be incomplete), but we cannot return an error.\n\tdefault:\n\t\treturn nil, newSchemaError(path, \"Unknown primitive type: %q\", t)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Primitive{\n\t\tBaseSchema: base,\n\t\tType:       t,\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseArray(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 1 {\n\t\treturn nil, newSchemaError(path, \"array should have exactly one type\")\n\t}\n\tif s.GetType().GetValue()[0] != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t}\n\tif len(s.GetItems().GetSchema()) != 1 {\n\t\t// TODO(wrong): Items can have multiple elements. We can ignore Items then (would be incomplete), but we cannot return an error.\n\t\t// TODO(wrong): \"type: array\" witohut any items at all is completely valid.\n\t\treturn nil, newSchemaError(path, \"array should have exactly one sub-item\")\n\t}\n\tsub, err := d.ParseSchema(s.GetItems().GetSchema()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parseKind(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tif s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Kind{\n\t\tBaseSchema:     base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseArbitrary(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: base,\n\t}, nil\n}\n\n// ParseSchema creates a walkable Schema from an openapi schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchema(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif s.GetXRef() != \"\" {\n\t\t// TODO(incomplete): ignoring the rest of s is wrong. As long as there are no conflict, everything from s must be considered\n\t\t// Reference: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#path-item-object\n\t\treturn d.parseReference(s, path)\n\t}\n\tobjectTypes := s.GetType().GetValue()\n\tswitch len(objectTypes) {\n\tcase 0:\n\t\t// in the OpenAPI schema served by older k8s versions, object definitions created from structs did not include\n\t\t// the type:object property (they only included the \"properties\" property), so we need to handle this case\n\t\t// TODO: validate that we ever published empty, non-nil properties. JSON roundtripping nils them.\n\t\tif s.GetProperties() != nil {\n\t\t\t// TODO(wrong): when verifying a non-object later against this, it will be rejected as invalid type.\n\t\t\t// TODO(CRD validation schema publishing): we have to filter properties (empty or not) if type=object is not given\n\t\t\treturn d.parseKind(s, path)\n\t\t} else {\n\t\t\t// Definition has no type and no properties. Treat it as an arbitrary value\n\t\t\t// TODO(incomplete): what if it has additionalProperties=false or patternProperties?\n\t\t\t// ANSWER: parseArbitrary is less strict than it has to be with patternProperties (which is ignored). So this is correct (of course not complete).\n\t\t\treturn d.parseArbitrary(s, path)\n\t\t}\n\tcase 1:\n\t\tt := objectTypes[0]\n\t\tswitch t {\n\t\tcase object:\n\t\t\tif s.GetProperties() != nil {\n\t\t\t\treturn d.parseKind(s, path)\n\t\t\t} else {\n\t\t\t\treturn d.parseMap(s, path)\n\t\t\t}\n\t\tcase array:\n\t\t\treturn d.parseArray(s, path)\n\t\t}\n\t\treturn d.parsePrimitive(s, path)\n\tdefault:\n\t\t// the OpenAPI generator never generates (nor it ever did in the past) OpenAPI type definitions with multiple types\n\t\t// TODO(wrong): this is rejecting a completely valid OpenAPI spec\n\t\t// TODO(CRD validation schema publishing): filter these out\n\t\treturn nil, newSchemaError(path, \"definitions with multiple types aren't supported\")\n\t}\n}\n\n// LookupModel is public through the interface of Models. It\n// returns a visitable schema from the given model name.\nfunc (d *Definitions) LookupModel(model string) Schema {\n\treturn d.models[model]\n}\n\nfunc (d *Definitions) ListModels() []string {\n\tmodels := []string{}\n\n\tfor model := range d.models {\n\t\tmodels = append(models, model)\n\t}\n\n\tsort.Strings(models)\n\treturn models\n}\n\ntype Ref struct {\n\tBaseSchema\n\n\treference   string\n\tdefinitions *Definitions\n}\n\nvar _ Reference = &Ref{}\n\nfunc (r *Ref) Reference() string {\n\treturn r.reference\n}\n\nfunc (r *Ref) SubSchema() Schema {\n\treturn r.definitions.models[r.reference]\n}\n\nfunc (r *Ref) Accept(v SchemaVisitor) {\n\tv.VisitReference(r)\n}\n\nfunc (r *Ref) GetName() string {\n\treturn fmt.Sprintf(\"Reference to %q\", r.reference)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/document_v3.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\topenapi_v3 \"github.com/google/gnostic/openapiv3\"\n\t\"gopkg.in/yaml.v3\"\n)\n\n// Temporary parse implementation to be used until gnostic->kube-openapi conversion\n// is possible.\nfunc NewOpenAPIV3Data(doc *openapi_v3.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\tschemas := doc.GetComponents().GetSchemas()\n\tif schemas == nil {\n\t\treturn &definitions, nil\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tval := namedSchema.GetValue()\n\n\t\tif val == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif schema, err := definitions.ParseV3SchemaOrReference(namedSchema.GetValue(), &path); err != nil {\n\t\t\treturn nil, err\n\t\t} else if schema != nil {\n\t\t\t// Schema may be nil if we hit incompleteness in the conversion,\n\t\t\t// but not a fatal error\n\t\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t\t}\n\t}\n\n\treturn &definitions, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaReference(s *openapi_v3.Reference, path *Path) (Schema, error) {\n\tbase := &BaseSchema{\n\t\tDescription: s.Description,\n\t}\n\n\tif !strings.HasPrefix(s.GetXRef(), \"#/components/schemas\") {\n\t\t// Only resolve references to components/schemas. We may add support\n\t\t// later for other in-spec paths, but otherwise treat unrecognized\n\t\t// refs as arbitrary/unknown values.\n\t\treturn &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}, nil\n\t}\n\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/components/schemas/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\n\treturn &Ref{\n\t\tBaseSchema: BaseSchema{\n\t\t\tDescription: s.Description,\n\t\t},\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaOrReference(s *openapi_v3.SchemaOrReference, path *Path) (Schema, error) {\n\tvar schema Schema\n\tvar err error\n\n\tswitch v := s.GetOneof().(type) {\n\tcase *openapi_v3.SchemaOrReference_Reference:\n\t\t// Any references stored in #!/components/... are bound to refer\n\t\t// to external documents. This API does not support such a\n\t\t// feature.\n\t\t//\n\t\t// In the weird case that this is a reference to a schema that is\n\t\t// not external, we attempt to parse anyway\n\t\tschema, err = d.ParseV3SchemaReference(v.Reference, path)\n\tcase *openapi_v3.SchemaOrReference_Schema:\n\t\tschema, err = d.ParseSchemaV3(v.Schema, path)\n\tdefault:\n\t\tpanic(\"unexpected type\")\n\t}\n\n\treturn schema, err\n}\n\n// ParseSchema creates a walkable Schema from an openapi v3 schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchemaV3(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase object:\n\t\tfor _, extension := range s.GetSpecificationExtension() {\n\t\t\tif extension.Name == \"x-kubernetes-group-version-kind\" {\n\t\t\t\t// Objects with x-kubernetes-group-version-kind are always top\n\t\t\t\t// level types.\n\t\t\t\treturn d.parseV3Kind(s, path)\n\t\t\t}\n\t\t}\n\n\t\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\t\treturn d.parseV3Kind(s, path)\n\t\t}\n\t\treturn d.parseV3Map(s, path)\n\tcase array:\n\t\treturn d.parseV3Array(s, path)\n\tcase String, Number, Integer, Boolean:\n\t\treturn d.parseV3Primitive(s, path)\n\tdefault:\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n}\n\nfunc (d *Definitions) parseV3Kind(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t} else if s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseV3SchemaOrReference(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Kind{\n\t\tBaseSchema:     *base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Arbitrary(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: *base,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Primitive(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\tdefault:\n\t\t// Unsupported primitive type. Treat as arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Primitive{\n\t\tBaseSchema: *base,\n\t\tType:       s.GetType(),\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Array(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t} else if len(s.GetItems().GetSchemaOrReference()) != 1 {\n\t\t// This array can have multiple types in it (or no types at all)\n\t\t// This is not supported by this conversion.\n\t\t// Just return an arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tsub, err := d.ParseV3SchemaOrReference(s.GetItems().GetSchemaOrReference()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseV3Map(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\n\tswitch p := s.GetAdditionalProperties().GetOneof().(type) {\n\tcase *openapi_v3.AdditionalPropertiesItem_Boolean:\n\t\t// What does this boolean even mean?\n\t\tbase, err := d.parseV3BaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}\n\tcase *openapi_v3.AdditionalPropertiesItem_SchemaOrReference:\n\t\tif schema, err := d.ParseV3SchemaOrReference(p.SchemaOrReference, path); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\tsub = schema\n\t\t}\n\tcase nil:\n\t\t// no subtype?\n\t\tsub = &Arbitrary{}\n\tdefault:\n\t\tpanic(\"unrecognized type \" + reflect.TypeOf(p).Name())\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc parseV3Interface(def *yaml.Node) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := def.Decode(&i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseV3BaseSchema(s *openapi_v3.Schema, path *Path) (*BaseSchema, error) {\n\tif s == nil {\n\t\treturn nil, fmt.Errorf(\"cannot initialize BaseSchema from nil\")\n\t}\n\n\tdef, err := parseV3Interface(s.GetDefault().ToRawInfo())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  SpecificationExtensionToMap(s.GetSpecificationExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\nfunc SpecificationExtensionToMap(e []*openapi_v3.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Defines openapi types.\nconst (\n\tInteger = \"integer\"\n\tNumber  = \"number\"\n\tString  = \"string\"\n\tBoolean = \"boolean\"\n\n\t// These types are private as they should never leak, and are\n\t// represented by actual structs.\n\tarray  = \"array\"\n\tobject = \"object\"\n)\n\n// Models interface describe a model provider. They can give you the\n// schema for a specific model.\ntype Models interface {\n\tLookupModel(string) Schema\n\tListModels() []string\n}\n\n// SchemaVisitor is an interface that you need to implement if you want\n// to \"visit\" an openapi schema. A dispatch on the Schema type will call\n// the appropriate function based on its actual type:\n// - Array is a list of one and only one given subtype\n// - Map is a map of string to one and only one given subtype\n// - Primitive can be string, integer, number and boolean.\n// - Kind is an object with specific fields mapping to specific types.\n// - Reference is a link to another definition.\ntype SchemaVisitor interface {\n\tVisitArray(*Array)\n\tVisitMap(*Map)\n\tVisitPrimitive(*Primitive)\n\tVisitKind(*Kind)\n\tVisitReference(Reference)\n}\n\n// SchemaVisitorArbitrary is an additional visitor interface which handles\n// arbitrary types. For backwards compatibility, it's a separate interface\n// which is checked for at runtime.\ntype SchemaVisitorArbitrary interface {\n\tSchemaVisitor\n\tVisitArbitrary(*Arbitrary)\n}\n\n// Schema is the base definition of an openapi type.\ntype Schema interface {\n\t// Giving a visitor here will let you visit the actual type.\n\tAccept(SchemaVisitor)\n\n\t// Pretty print the name of the type.\n\tGetName() string\n\t// Describes how to access this field.\n\tGetPath() *Path\n\t// Describes the field.\n\tGetDescription() string\n\t// Default for that schema.\n\tGetDefault() interface{}\n\t// Returns type extensions.\n\tGetExtensions() map[string]interface{}\n}\n\n// Path helps us keep track of type paths\ntype Path struct {\n\tparent *Path\n\tkey    string\n}\n\nfunc NewPath(key string) Path {\n\treturn Path{key: key}\n}\n\nfunc (p *Path) Get() []string {\n\tif p == nil {\n\t\treturn []string{}\n\t}\n\tif p.key == \"\" {\n\t\treturn p.parent.Get()\n\t}\n\treturn append(p.parent.Get(), p.key)\n}\n\nfunc (p *Path) Len() int {\n\treturn len(p.Get())\n}\n\nfunc (p *Path) String() string {\n\treturn strings.Join(p.Get(), \"\")\n}\n\n// ArrayPath appends an array index and creates a new path\nfunc (p *Path) ArrayPath(i int) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\"[%d]\", i),\n\t}\n}\n\n// FieldPath appends a field name and creates a new path\nfunc (p *Path) FieldPath(field string) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\".%s\", field),\n\t}\n}\n\n// BaseSchema holds data used by each types of schema.\ntype BaseSchema struct {\n\tDescription string\n\tExtensions  map[string]interface{}\n\tDefault     interface{}\n\n\tPath Path\n}\n\nfunc (b *BaseSchema) GetDescription() string {\n\treturn b.Description\n}\n\nfunc (b *BaseSchema) GetExtensions() map[string]interface{} {\n\treturn b.Extensions\n}\n\nfunc (b *BaseSchema) GetDefault() interface{} {\n\treturn b.Default\n}\n\nfunc (b *BaseSchema) GetPath() *Path {\n\treturn &b.Path\n}\n\n// Array must have all its element of the same `SubType`.\ntype Array struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Array{}\n\nfunc (a *Array) Accept(v SchemaVisitor) {\n\tv.VisitArray(a)\n}\n\nfunc (a *Array) GetName() string {\n\treturn fmt.Sprintf(\"Array of %s\", a.SubType.GetName())\n}\n\n// Kind is a complex object. It can have multiple different\n// subtypes for each field, as defined in the `Fields` field. Mandatory\n// fields are listed in `RequiredFields`. The key of the object is\n// always of type `string`.\ntype Kind struct {\n\tBaseSchema\n\n\t// Lists names of required fields.\n\tRequiredFields []string\n\t// Maps field names to types.\n\tFields map[string]Schema\n\t// FieldOrder reports the canonical order for the fields.\n\tFieldOrder []string\n}\n\nvar _ Schema = &Kind{}\n\nfunc (k *Kind) Accept(v SchemaVisitor) {\n\tv.VisitKind(k)\n}\n\nfunc (k *Kind) GetName() string {\n\tproperties := []string{}\n\tfor key := range k.Fields {\n\t\tproperties = append(properties, key)\n\t}\n\treturn fmt.Sprintf(\"Kind(%v)\", properties)\n}\n\n// IsRequired returns true if `field` is a required field for this type.\nfunc (k *Kind) IsRequired(field string) bool {\n\tfor _, f := range k.RequiredFields {\n\t\tif f == field {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Keys returns a alphabetically sorted list of keys.\nfunc (k *Kind) Keys() []string {\n\tkeys := make([]string, 0)\n\tfor key := range k.Fields {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// Map is an object who values must all be of the same `SubType`.\n// The key of the object is always of type `string`.\ntype Map struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Map{}\n\nfunc (m *Map) Accept(v SchemaVisitor) {\n\tv.VisitMap(m)\n}\n\nfunc (m *Map) GetName() string {\n\treturn fmt.Sprintf(\"Map of %s\", m.SubType.GetName())\n}\n\n// Primitive is a literal. There can be multiple types of primitives,\n// and this subtype can be visited through the `subType` field.\ntype Primitive struct {\n\tBaseSchema\n\n\t// Type of a primitive must be one of: integer, number, string, boolean.\n\tType   string\n\tFormat string\n}\n\nvar _ Schema = &Primitive{}\n\nfunc (p *Primitive) Accept(v SchemaVisitor) {\n\tv.VisitPrimitive(p)\n}\n\nfunc (p *Primitive) GetName() string {\n\tif p.Format == \"\" {\n\t\treturn p.Type\n\t}\n\treturn fmt.Sprintf(\"%s (%s)\", p.Type, p.Format)\n}\n\n// Arbitrary is a value of any type (primitive, object or array)\ntype Arbitrary struct {\n\tBaseSchema\n}\n\nvar _ Schema = &Arbitrary{}\n\nfunc (a *Arbitrary) Accept(v SchemaVisitor) {\n\tif visitor, ok := v.(SchemaVisitorArbitrary); ok {\n\t\tvisitor.VisitArbitrary(a)\n\t}\n}\n\nfunc (a *Arbitrary) GetName() string {\n\treturn \"Arbitrary value (primitive, object or array)\"\n}\n\n// Reference implementation depends on the type of document.\ntype Reference interface {\n\tSchema\n\n\tReference() string\n\tSubSchema() Schema\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/contact_info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ContactInfo contact information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#contactObject\ntype ContactInfo struct {\n\tName  string `json:\"name,omitempty\"`\n\tURL   string `json:\"url,omitempty\"`\n\tEmail string `json:\"email,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/external_docs.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ExternalDocumentation allows referencing an external resource for\n// extended documentation.\n//\n// For more information: http://goo.gl/8us55a#externalDocumentationObject\ntype ExternalDocumentation struct {\n\tDescription string `json:\"description,omitempty\"`\n\tURL         string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/fuzz.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\t\"github.com/google/go-cmp/cmp\"\n\tfuzz \"github.com/google/gofuzz\"\n)\n\nvar SwaggerFuzzFuncs []interface{} = []interface{}{\n\tfunc(v *Responses, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(v)\n\t\tif v.Default != nil {\n\t\t\t// Check if we hit maxDepth and left an incomplete value\n\t\t\tif v.Default.Description == \"\" {\n\t\t\t\tv.Default = nil\n\t\t\t\tv.StatusCodeResponses = nil\n\t\t\t}\n\t\t}\n\n\t\t// conversion has no way to discern empty statusCodeResponses from\n\t\t// nil, since \"default\" is always included in the map.\n\t\t// So avoid empty responses list\n\t\tif len(v.StatusCodeResponses) == 0 {\n\t\t\tv.StatusCodeResponses = nil\n\t\t}\n\t},\n\tfunc(v *Operation, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(v)\n\n\t\tif v != nil {\n\t\t\t// force non-nil\n\t\t\tv.Responses = &Responses{}\n\t\t\tc.Fuzz(v.Responses)\n\n\t\t\tv.Schemes = nil\n\t\t\tif c.RandBool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"http\")\n\t\t\t}\n\n\t\t\tif c.RandBool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"https\")\n\t\t\t}\n\n\t\t\tif c.RandBool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"ws\")\n\t\t\t}\n\n\t\t\tif c.RandBool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"wss\")\n\t\t\t}\n\n\t\t\t// Gnostic unconditionally makes security values non-null\n\t\t\t// So do not fuzz null values into the array.\n\t\t\tfor i, val := range v.Security {\n\t\t\t\tif val == nil {\n\t\t\t\t\tv.Security[i] = make(map[string][]string)\n\t\t\t\t}\n\n\t\t\t\tfor k, v := range val {\n\t\t\t\t\tif v == nil {\n\t\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v map[int]Response, c fuzz.Continue) {\n\t\tn := 0\n\t\tc.Fuzz(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\t// Prevent negative numbers\n\t\tnum := c.Intn(4)\n\t\tfor i := 0; i < num+2; i++ {\n\t\t\tval := Response{}\n\t\t\tc.Fuzz(&val)\n\n\t\t\tval.Description = c.RandString() + \"x\"\n\t\t\tv[100*(i+1)+c.Intn(100)] = val\n\t\t}\n\t},\n\tfunc(v map[string]PathItem, c fuzz.Continue) {\n\t\tn := 0\n\t\tc.Fuzz(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\tnum := c.Intn(5)\n\t\tfor i := 0; i < num+2; i++ {\n\t\t\tval := PathItem{}\n\t\t\tc.Fuzz(&val)\n\n\t\t\t// Ref params are only allowed in certain locations, so\n\t\t\t// possibly add a few to PathItems\n\t\t\tnumRefsToAdd := c.Intn(5)\n\t\t\tfor i := 0; i < numRefsToAdd; i++ {\n\t\t\t\ttheRef := Parameter{}\n\t\t\t\tc.Fuzz(&theRef.Refable)\n\n\t\t\t\tval.Parameters = append(val.Parameters, theRef)\n\t\t\t}\n\n\t\t\tv[\"/\"+c.RandString()] = val\n\t\t}\n\t},\n\tfunc(v *SchemaOrArray, c fuzz.Continue) {\n\t\t*v = SchemaOrArray{}\n\t\t// gnostic parser just doesn't support more\n\t\t// than one Schema here\n\t\tv.Schema = &Schema{}\n\t\tc.Fuzz(&v.Schema)\n\n\t},\n\tfunc(v *SchemaOrBool, c fuzz.Continue) {\n\t\t*v = SchemaOrBool{}\n\n\t\tif c.RandBool() {\n\t\t\tv.Allows = c.RandBool()\n\t\t} else {\n\t\t\tv.Schema = &Schema{}\n\t\t\tv.Allows = true\n\t\t\tc.Fuzz(&v.Schema)\n\t\t}\n\t},\n\tfunc(v map[string]Response, c fuzz.Continue) {\n\t\tn := 0\n\t\tc.Fuzz(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\t// Response definitions are not allowed to\n\t\t// be refs\n\t\tfor i := 0; i < c.Intn(5)+1; i++ {\n\t\t\tresp := &Response{}\n\n\t\t\tc.Fuzz(resp)\n\t\t\tresp.Ref = Ref{}\n\t\t\tresp.Description = c.RandString() + \"x\"\n\n\t\t\t// Response refs are not vendor extensible by gnostic\n\t\t\tresp.VendorExtensible.Extensions = nil\n\t\t\tv[c.RandString()+\"x\"] = *resp\n\t\t}\n\t},\n\tfunc(v *Header, c fuzz.Continue) {\n\t\tif v != nil {\n\t\t\tc.FuzzNoCustom(v)\n\n\t\t\t// descendant Items of Header may not be refs\n\t\t\tcur := v.Items\n\t\t\tfor cur != nil {\n\t\t\t\tcur.Ref = Ref{}\n\t\t\t\tcur = cur.Items\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *Ref, c fuzz.Continue) {\n\t\t*v = Ref{}\n\t\tv.Ref, _ = jsonreference.New(\"http://asd.com/\" + c.RandString())\n\t},\n\tfunc(v *Response, c fuzz.Continue) {\n\t\t*v = Response{}\n\t\tif c.RandBool() {\n\t\t\tv.Ref = Ref{}\n\t\t\tv.Ref.Ref, _ = jsonreference.New(\"http://asd.com/\" + c.RandString())\n\t\t} else {\n\t\t\tc.Fuzz(&v.VendorExtensible)\n\t\t\tc.Fuzz(&v.Schema)\n\t\t\tc.Fuzz(&v.ResponseProps)\n\n\t\t\tv.Headers = nil\n\t\t\tv.Ref = Ref{}\n\n\t\t\tn := 0\n\t\t\tc.Fuzz(&n)\n\t\t\tif n != 0 {\n\t\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t\t// end up with empty elements\n\t\t\t\tnum := c.Intn(4)\n\t\t\t\tfor i := 0; i < num; i++ {\n\t\t\t\t\tif v.Headers == nil {\n\t\t\t\t\t\tv.Headers = make(map[string]Header)\n\t\t\t\t\t}\n\t\t\t\t\thdr := Header{}\n\t\t\t\t\tc.Fuzz(&hdr)\n\t\t\t\t\tif hdr.Type == \"\" {\n\t\t\t\t\t\t// hit maxDepth, just abort trying to make haders\n\t\t\t\t\t\tv.Headers = nil\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tv.Headers[c.RandString()+\"x\"] = hdr\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv.Headers = nil\n\t\t\t}\n\t\t}\n\n\t\tv.Description = c.RandString() + \"x\"\n\n\t\t// Gnostic parses empty as nil, so to keep avoid putting empty\n\t\tif len(v.Headers) == 0 {\n\t\t\tv.Headers = nil\n\t\t}\n\t},\n\tfunc(v **Info, c fuzz.Continue) {\n\t\t// Info is never nil\n\t\t*v = &Info{}\n\t\tc.FuzzNoCustom(*v)\n\n\t\t(*v).Title = c.RandString() + \"x\"\n\t},\n\tfunc(v *Extensions, c fuzz.Continue) {\n\t\t// gnostic parser only picks up x- vendor extensions\n\t\tnumChildren := c.Intn(5)\n\t\tfor i := 0; i < numChildren; i++ {\n\t\t\tif *v == nil {\n\t\t\t\t*v = Extensions{}\n\t\t\t}\n\t\t\t(*v)[\"x-\"+c.RandString()] = c.RandString()\n\t\t}\n\t},\n\tfunc(v *Swagger, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(v)\n\n\t\tif v.Paths == nil {\n\t\t\t// Force paths non-nil since it does not have omitempty in json tag.\n\t\t\t// This means a perfect roundtrip (via json) is impossible,\n\t\t\t// since we can't tell the difference between empty/unspecified paths\n\t\t\tv.Paths = &Paths{}\n\t\t\tc.Fuzz(v.Paths)\n\t\t}\n\n\t\tv.Swagger = \"2.0\"\n\n\t\t// Gnostic support serializing ID at all\n\t\t// unavoidable data loss\n\t\tv.ID = \"\"\n\n\t\tv.Schemes = nil\n\t\tif c.RandUint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"http\")\n\t\t}\n\n\t\tif c.RandUint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"https\")\n\t\t}\n\n\t\tif c.RandUint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"ws\")\n\t\t}\n\n\t\tif c.RandUint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"wss\")\n\t\t}\n\n\t\t// Gnostic unconditionally makes security values non-null\n\t\t// So do not fuzz null values into the array.\n\t\tfor i, val := range v.Security {\n\t\t\tif val == nil {\n\t\t\t\tv.Security[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *SecurityScheme, c fuzz.Continue) {\n\t\tv.Description = c.RandString() + \"x\"\n\t\tc.Fuzz(&v.VendorExtensible)\n\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\tv.Type = \"basic\"\n\t\tcase 1:\n\t\t\tv.Type = \"apiKey\"\n\t\t\tswitch c.Intn(2) {\n\t\t\tcase 0:\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 1:\n\t\t\t\tv.In = \"query\"\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\t\t\tv.Name = \"x\" + c.RandString()\n\t\tcase 2:\n\t\t\tv.Type = \"oauth2\"\n\n\t\t\tswitch c.Intn(4) {\n\t\t\tcase 0:\n\t\t\t\tv.Flow = \"accessCode\"\n\t\t\t\tv.TokenURL = \"https://\" + c.RandString()\n\t\t\t\tv.AuthorizationURL = \"https://\" + c.RandString()\n\t\t\tcase 1:\n\t\t\t\tv.Flow = \"application\"\n\t\t\t\tv.TokenURL = \"https://\" + c.RandString()\n\t\t\tcase 2:\n\t\t\t\tv.Flow = \"implicit\"\n\t\t\t\tv.AuthorizationURL = \"https://\" + c.RandString()\n\t\t\tcase 3:\n\t\t\t\tv.Flow = \"password\"\n\t\t\t\tv.TokenURL = \"https://\" + c.RandString()\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\t\t\tc.Fuzz(&v.Scopes)\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\t},\n\tfunc(v *interface{}, c fuzz.Continue) {\n\t\t*v = c.RandString() + \"x\"\n\t},\n\tfunc(v *string, c fuzz.Continue) {\n\t\t*v = c.RandString() + \"x\"\n\t},\n\tfunc(v *ExternalDocumentation, c fuzz.Continue) {\n\t\tv.Description = c.RandString() + \"x\"\n\t\tv.URL = c.RandString() + \"x\"\n\t},\n\tfunc(v *SimpleSchema, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(v)\n\n\t\tswitch c.Intn(5) {\n\t\tcase 0:\n\t\t\tv.Type = \"string\"\n\t\tcase 1:\n\t\t\tv.Type = \"number\"\n\t\tcase 2:\n\t\t\tv.Type = \"boolean\"\n\t\tcase 3:\n\t\t\tv.Type = \"integer\"\n\t\tcase 4:\n\t\t\tv.Type = \"array\"\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\n\t\tswitch c.Intn(5) {\n\t\tcase 0:\n\t\t\tv.CollectionFormat = \"csv\"\n\t\tcase 1:\n\t\t\tv.CollectionFormat = \"ssv\"\n\t\tcase 2:\n\t\t\tv.CollectionFormat = \"tsv\"\n\t\tcase 3:\n\t\t\tv.CollectionFormat = \"pipes\"\n\t\tcase 4:\n\t\t\tv.CollectionFormat = \"\"\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\n\t\t// None of the types which include SimpleSchema in our definitions\n\t\t// actually support \"example\" in the official spec\n\t\tv.Example = nil\n\n\t\t// unsupported by openapi\n\t\tv.Nullable = false\n\t},\n\tfunc(v *int64, c fuzz.Continue) {\n\t\tc.Fuzz(v)\n\n\t\t// Gnostic does not differentiate between 0 and non-specified\n\t\t// so avoid using 0 for fuzzer\n\t\tif *v == 0 {\n\t\t\t*v = 1\n\t\t}\n\t},\n\tfunc(v *float64, c fuzz.Continue) {\n\t\tc.Fuzz(v)\n\n\t\t// Gnostic does not differentiate between 0 and non-specified\n\t\t// so avoid using 0 for fuzzer\n\t\tif *v == 0.0 {\n\t\t\t*v = 1.0\n\t\t}\n\t},\n\tfunc(v *Parameter, c fuzz.Continue) {\n\t\tif v == nil {\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.VendorExtensible)\n\t\tif c.RandBool() {\n\t\t\t// body param\n\t\t\tv.Description = c.RandString() + \"x\"\n\t\t\tv.Name = c.RandString() + \"x\"\n\t\t\tv.In = \"body\"\n\t\t\tc.Fuzz(&v.Description)\n\t\t\tc.Fuzz(&v.Required)\n\n\t\t\tv.Schema = &Schema{}\n\t\t\tc.Fuzz(&v.Schema)\n\n\t\t} else {\n\t\t\tc.Fuzz(&v.SimpleSchema)\n\t\t\tc.Fuzz(&v.CommonValidations)\n\t\t\tv.AllowEmptyValue = false\n\t\t\tv.Description = c.RandString() + \"x\"\n\t\t\tv.Name = c.RandString() + \"x\"\n\n\t\t\tswitch c.Intn(4) {\n\t\t\tcase 0:\n\t\t\t\t// Header param\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 1:\n\t\t\t\t// Form data param\n\t\t\t\tv.In = \"formData\"\n\t\t\t\tv.AllowEmptyValue = c.RandBool()\n\t\t\tcase 2:\n\t\t\t\t// Query param\n\t\t\t\tv.In = \"query\"\n\t\t\t\tv.AllowEmptyValue = c.RandBool()\n\t\t\tcase 3:\n\t\t\t\t// Path param\n\t\t\t\tv.In = \"path\"\n\t\t\t\tv.Required = true\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\n\t\t\t// descendant Items of Parameter may not be refs\n\t\t\tcur := v.Items\n\t\t\tfor cur != nil {\n\t\t\t\tcur.Ref = Ref{}\n\t\t\t\tcur = cur.Items\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *Schema, c fuzz.Continue) {\n\t\tif c.RandBool() {\n\t\t\t// file schema\n\t\t\tc.Fuzz(&v.Default)\n\t\t\tc.Fuzz(&v.Description)\n\t\t\tc.Fuzz(&v.Example)\n\t\t\tc.Fuzz(&v.ExternalDocs)\n\n\t\t\tc.Fuzz(&v.Format)\n\t\t\tc.Fuzz(&v.ReadOnly)\n\t\t\tc.Fuzz(&v.Required)\n\t\t\tc.Fuzz(&v.Title)\n\t\t\tv.Type = StringOrArray{\"file\"}\n\n\t\t} else {\n\t\t\t// normal schema\n\t\t\tc.Fuzz(&v.SchemaProps)\n\t\t\tc.Fuzz(&v.SwaggerSchemaProps)\n\t\t\tc.Fuzz(&v.VendorExtensible)\n\t\t\t// c.Fuzz(&v.ExtraProps)\n\t\t\t// ExtraProps will not roundtrip - gnostic throws out\n\t\t\t// unrecognized keys\n\t\t}\n\n\t\t// Not supported by official openapi v2 spec\n\t\t// and stripped by k8s apiserver\n\t\tv.ID = \"\"\n\t\tv.AnyOf = nil\n\t\tv.OneOf = nil\n\t\tv.Not = nil\n\t\tv.Nullable = false\n\t\tv.AdditionalItems = nil\n\t\tv.Schema = \"\"\n\t\tv.PatternProperties = nil\n\t\tv.Definitions = nil\n\t\tv.Dependencies = nil\n\t},\n}\n\nvar SwaggerDiffOptions = []cmp.Option{\n\t// cmp.Diff panics on Ref since jsonreference.Ref uses unexported fields\n\tcmp.Comparer(func(a Ref, b Ref) bool {\n\t\treturn a.String() == b.String()\n\t}),\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/gnostic.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\topenapi_v2 \"github.com/google/gnostic/openapiv2\"\n)\n\n// Interfaces\ntype GnosticCommonValidations interface {\n\tGetMaximum() float64\n\tGetExclusiveMaximum() bool\n\tGetMinimum() float64\n\tGetExclusiveMinimum() bool\n\tGetMaxLength() int64\n\tGetMinLength() int64\n\tGetPattern() string\n\tGetMaxItems() int64\n\tGetMinItems() int64\n\tGetUniqueItems() bool\n\tGetMultipleOf() float64\n\tGetEnum() []*openapi_v2.Any\n}\n\nfunc (k *CommonValidations) FromGnostic(g GnosticCommonValidations) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tmax := g.GetMaximum()\n\tif max != 0 {\n\t\tk.Maximum = &max\n\t}\n\n\tk.ExclusiveMaximum = g.GetExclusiveMaximum()\n\n\tmin := g.GetMinimum()\n\tif min != 0 {\n\t\tk.Minimum = &min\n\t}\n\n\tk.ExclusiveMinimum = g.GetExclusiveMinimum()\n\n\tmaxLen := g.GetMaxLength()\n\tif maxLen != 0 {\n\t\tk.MaxLength = &maxLen\n\t}\n\n\tminLen := g.GetMinLength()\n\tif minLen != 0 {\n\t\tk.MinLength = &minLen\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tmaxItems := g.GetMaxItems()\n\tif maxItems != 0 {\n\t\tk.MaxItems = &maxItems\n\t}\n\n\tminItems := g.GetMinItems()\n\tif minItems != 0 {\n\t\tk.MinItems = &minItems\n\t}\n\n\tk.UniqueItems = g.GetUniqueItems()\n\n\tmultOf := g.GetMultipleOf()\n\tif multOf != 0 {\n\t\tk.MultipleOf = &multOf\n\t}\n\n\tenums := g.GetEnum()\n\n\tif enums != nil {\n\t\tk.Enum = make([]interface{}, len(enums))\n\t\tfor i, v := range enums {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar convert interface{}\n\t\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\tk.Enum[i] = convert\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype GnosticSimpleSchema interface {\n\tGetType() string\n\tGetFormat() string\n\tGetItems() *openapi_v2.PrimitivesItems\n\tGetCollectionFormat() string\n\tGetDefault() *openapi_v2.Any\n}\n\nfunc (k *SimpleSchema) FromGnostic(g GnosticSimpleSchema) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tk.Type = g.GetType()\n\tk.Format = g.GetFormat()\n\tk.CollectionFormat = g.GetCollectionFormat()\n\n\titems := g.GetItems()\n\tif items != nil {\n\t\tk.Items = &Items{}\n\t\tif err := k.Items.FromGnostic(items); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tdef := g.GetDefault()\n\tif def != nil {\n\t\tvar convert interface{}\n\t\tif err := def.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Default = convert\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *Items) FromGnostic(g *openapi_v2.PrimitivesItems) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *VendorExtensible) FromGnostic(g []*openapi_v2.NamedAny) error {\n\tif len(g) == 0 {\n\t\treturn nil\n\t}\n\n\tk.Extensions = make(Extensions, len(g))\n\tfor _, v := range g {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif v.Value == nil {\n\t\t\tk.Extensions[v.Name] = nil\n\t\t\tcontinue\n\t\t}\n\n\t\tvar iface interface{}\n\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Extensions[v.Name] = iface\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (k *Refable) FromGnostic(g string) error {\n\treturn k.Ref.FromGnostic(g)\n}\n\nfunc (k *Ref) FromGnostic(g string) error {\n\tif g == \"\" {\n\t\treturn nil\n\t}\n\n\tref, err := jsonreference.New(g)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*k = Ref{\n\t\tRef: ref,\n\t}\n\n\treturn nil\n}\n\n// Converts a gnostic v2 Document to a kube-openapi Swagger Document\n//\n// Caveats:\n//\n// - gnostic v2 documents treats zero as unspecified for numerical fields of\n// CommonValidations fields such as Maximum, Minimum, MaximumItems, etc.\n// There will always be data loss if one of the values of these fields is set to zero.\n//\n// Returns:\n//\n// - `ok`: `false` if a value was present in the gnostic document which cannot be\n// roundtripped into kube-openapi types. In these instances, `ok` is set to\n// `false` and the value is skipped.\n//\n// - `err`: an unexpected error occurred in the conversion from the gnostic type\n// to kube-openapi type.\nfunc (k *Swagger) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.SwaggerProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *SwaggerProps) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\t// openapi_v2.Document does not support \"ID\" field, so it will not be\n\t// included\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Swagger = g.Swagger\n\n\tif g.Info != nil {\n\t\tk.Info = &Info{}\n\t\tif nok, err := k.Info.FromGnostic(g.Info); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Host = g.Host\n\tk.BasePath = g.BasePath\n\n\tif g.Paths != nil {\n\t\tk.Paths = &Paths{}\n\t\tif nok, err := k.Paths.FromGnostic(g.Paths); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Definitions != nil {\n\t\tk.Definitions = make(Definitions, len(g.Definitions.AdditionalProperties))\n\t\tfor _, v := range g.Definitions.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconverted := Schema{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Definitions[v.Name] = converted\n\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make(\n\t\t\tmap[string]Parameter,\n\t\t\tlen(g.Parameters.AdditionalProperties))\n\t\tfor _, v := range g.Parameters.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Parameter{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Parameters[v.Name] = p\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = make(\n\t\t\tmap[string]Response,\n\t\t\tlen(g.Responses.AdditionalProperties))\n\n\t\tfor _, v := range g.Responses.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Response{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Responses[v.Name] = p\n\t\t}\n\t}\n\n\tif g.SecurityDefinitions != nil {\n\t\tk.SecurityDefinitions = make(SecurityDefinitions)\n\t\tif err := k.SecurityDefinitions.FromGnostic(g.SecurityDefinitions); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Tags != nil {\n\t\tk.Tags = make([]Tag, len(g.Tags))\n\t\tfor i, v := range g.Tags {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Tags[i].FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Info\n\nfunc (k *Info) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.InfoProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *InfoProps) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Title = g.Title\n\tk.TermsOfService = g.TermsOfService\n\n\tif g.Contact != nil {\n\t\tk.Contact = &ContactInfo{}\n\n\t\tif nok, err := k.Contact.FromGnostic(g.Contact); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.License != nil {\n\t\tk.License = &License{}\n\t\tif nok, err := k.License.FromGnostic(g.License); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Version = g.Version\n\treturn ok, nil\n}\n\nfunc (k *License) FromGnostic(g *openapi_v2.License) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\n\t// License does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ContactInfo) FromGnostic(g *openapi_v2.Contact) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\tk.Email = g.Email\n\n\t// ContactInfo does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Paths\n\nfunc (k *Paths) FromGnostic(g *openapi_v2.Paths) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif g.Path != nil {\n\t\tk.Paths = make(map[string]PathItem, len(g.Path))\n\t\tfor _, v := range g.Path {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := PathItem{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Paths[v.Name] = converted\n\t\t}\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItem) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif nok, err := k.PathItemProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.Refable.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItemProps) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif g.Get != nil {\n\t\tk.Get = &Operation{}\n\t\tif nok, err := k.Get.FromGnostic(g.Get); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Put != nil {\n\t\tk.Put = &Operation{}\n\t\tif nok, err := k.Put.FromGnostic(g.Put); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Post != nil {\n\t\tk.Post = &Operation{}\n\t\tif nok, err := k.Post.FromGnostic(g.Post); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Delete != nil {\n\t\tk.Delete = &Operation{}\n\t\tif nok, err := k.Delete.FromGnostic(g.Delete); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Options != nil {\n\t\tk.Options = &Operation{}\n\t\tif nok, err := k.Options.FromGnostic(g.Options); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Head != nil {\n\t\tk.Head = &Operation{}\n\t\tif nok, err := k.Head.FromGnostic(g.Head); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Patch != nil {\n\t\tk.Patch = &Operation{}\n\t\tif nok, err := k.Patch.FromGnostic(g.Patch); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Operation) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.OperationProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *OperationProps) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Tags = g.Tags\n\tk.Summary = g.Summary\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.ID = g.OperationId\n\tk.Deprecated = g.Deprecated\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = &Responses{}\n\t\tif nok, err := k.Responses.FromGnostic(g.Responses); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Responses\n\nfunc (k *Responses) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponsesProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponsesProps) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t} else if g.ResponseCode == nil {\n\t\treturn ok, nil\n\t}\n\n\tok = true\n\tfor _, v := range g.ResponseCode {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif v.Name == \"default\" {\n\t\t\tk.Default = &Response{}\n\t\t\tif nok, err := k.Default.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t} else if nk, err := strconv.Atoi(v.Name); err != nil {\n\t\t\t// This should actually never fail, unless gnostic struct was\n\t\t\t// manually/purposefully tampered with at runtime.\n\t\t\t// Gnostic's ParseDocument validates that all StatusCodeResponses\n\t\t\t// \tkeys adhere to the following regex ^([0-9]{3})$|^(default)$\n\t\t\tok = false\n\t\t} else {\n\t\t\tif k.StatusCodeResponses == nil {\n\t\t\t\tk.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\n\t\t\tres := Response{}\n\t\t\tif nok, err := res.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.StatusCodeResponses[nk] = res\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\t// Refable case handled in FromGnosticResponseValue\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponseProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnosticResponseValue(g *openapi_v2.ResponseValue) (ok bool, err error) {\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetResponse()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponseProps) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\n\tif g.Schema != nil {\n\t\tk.Schema = &Schema{}\n\t\tif nok, err := k.Schema.FromGnosticSchemaItem(g.Schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Headers != nil {\n\t\tk.Headers = make(map[string]Header, len(g.Headers.AdditionalProperties))\n\t\tfor _, v := range g.Headers.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := Header{}\n\t\t\tif err := converted.FromGnostic(v.GetValue()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tk.Headers[v.Name] = converted\n\t\t}\n\t}\n\n\tif g.Examples != nil {\n\t\tk.Examples = make(map[string]interface{}, len(g.Examples.AdditionalProperties))\n\t\tfor _, v := range g.Examples.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if v.Value == nil {\n\t\t\t\tk.Examples[v.Name] = nil\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar iface interface{}\n\t\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else {\n\t\t\t\tk.Examples[v.Name] = iface\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Header\n\nfunc (k *Header) FromGnostic(g *openapi_v2.Header) (err error) {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.HeaderProps.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *HeaderProps) FromGnostic(g *openapi_v2.Header) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\t// All other fields of openapi_v2.Header are handled by\n\t// the embeded fields, commonvalidations, etc.\n\tk.Description = g.Description\n\treturn nil\n}\n\n// Parameters\n\nfunc (k *Parameter) FromGnostic(g *openapi_v2.Parameter) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.Parameter_BodyParameter:\n\t\tif nok, err := k.ParamProps.FromGnostic(p.BodyParameter); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\n\t\tif err := k.VendorExtensible.FromGnostic(p.BodyParameter.GetVendorExtension()); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\treturn ok, nil\n\tcase *openapi_v2.Parameter_NonBodyParameter:\n\t\tswitch nb := g.GetNonBodyParameter().Oneof.(type) {\n\t\tcase *openapi_v2.NonBodyParameter_HeaderParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.HeaderParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_FormDataParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.FormDataParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_QueryParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.QueryParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_PathParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.PathParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tdefault:\n\t\t\treturn false, errors.New(\"unrecognized nonbody type for Parameter\")\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for Parameter\")\n\t}\n}\n\ntype GnosticCommonParamProps interface {\n\tGetName() string\n\tGetRequired() bool\n\tGetIn() string\n\tGetDescription() string\n}\n\ntype GnosticCommonParamPropsBodyParameter interface {\n\tGetSchema() *openapi_v2.Schema\n}\n\ntype GnosticCommonParamPropsFormData interface {\n\tGetAllowEmptyValue() bool\n}\n\nfunc (k *ParamProps) FromGnostic(g GnosticCommonParamProps) (ok bool, err error) {\n\tok = true\n\tk.Description = g.GetDescription()\n\tk.In = g.GetIn()\n\tk.Name = g.GetName()\n\tk.Required = g.GetRequired()\n\n\tif formDataParameter, success := g.(GnosticCommonParamPropsFormData); success {\n\t\tk.AllowEmptyValue = formDataParameter.GetAllowEmptyValue()\n\t}\n\n\tif bodyParameter, success := g.(GnosticCommonParamPropsBodyParameter); success {\n\t\tif bodyParameter.GetSchema() != nil {\n\t\t\tk.Schema = &Schema{}\n\t\t\tif nok, err := k.Schema.FromGnostic(bodyParameter.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// PB types use a different structure than we do for \"refable\". For PB, there is\n// a wrappign oneof type that could be a ref or the type\nfunc (k *Parameter) FromGnosticParametersItem(g *openapi_v2.ParametersItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetParameter()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Schema\n\nfunc (k *Schema) FromGnostic(g *openapi_v2.Schema) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\t// SwaggerSchemaProps\n\tk.Discriminator = g.Discriminator\n\tk.ReadOnly = g.ReadOnly\n\tk.Description = g.Description\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Example != nil {\n\t\tif err := g.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// SchemaProps\n\tif err := k.Ref.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\tk.Type = g.Type.GetValue()\n\tk.Format = g.GetFormat()\n\tk.Title = g.GetTitle()\n\n\t// These below fields are not available in gnostic types, so will never\n\t// be populated. This means roundtrips which make use of these\n\t//\t(non-official, kube-only) fields will lose information.\n\t//\n\t// Schema.ID is not available in official spec\n\t// Schema.$schema\n\t// Schema.Nullable - in openapiv3, not v2\n\t// Schema.AnyOf - in openapiv3, not v2\n\t// Schema.OneOf - in openapiv3, not v2\n\t// Schema.Not - in openapiv3, not v2\n\t// Schema.PatternProperties - in openapiv3, not v2\n\t// Schema.Dependencies - in openapiv3, not v2\n\t// Schema.AdditionalItems\n\t// Schema.Definitions - not part of spec\n\t// Schema.ExtraProps - gnostic parser rejects any keys it does not recognize\n\n\tif g.GetDefault() != nil {\n\t\tif err := g.GetDefault().ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// These conditionals (!= 0) follow gnostic's logic for ToRawInfo\n\t// The keys in gnostic source are only included if nonzero.\n\n\tif g.Maximum != 0.0 {\n\t\tk.Maximum = &g.Maximum\n\t}\n\n\tif g.Minimum != 0.0 {\n\t\tk.Minimum = &g.Minimum\n\t}\n\n\tk.ExclusiveMaximum = g.ExclusiveMaximum\n\tk.ExclusiveMinimum = g.ExclusiveMinimum\n\n\tif g.MaxLength != 0 {\n\t\tk.MaxLength = &g.MaxLength\n\t}\n\n\tif g.MinLength != 0 {\n\t\tk.MinLength = &g.MinLength\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tif g.MaxItems != 0 {\n\t\tk.MaxItems = &g.MaxItems\n\t}\n\n\tif g.MinItems != 0 {\n\t\tk.MinItems = &g.MinItems\n\t}\n\tk.UniqueItems = g.UniqueItems\n\n\tif g.MultipleOf != 0 {\n\t\tk.MultipleOf = &g.MultipleOf\n\t}\n\n\tfor _, v := range g.GetEnum() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar convert interface{}\n\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tk.Enum = append(k.Enum, convert)\n\t}\n\n\tif g.MaxProperties != 0 {\n\t\tk.MaxProperties = &g.MaxProperties\n\t}\n\n\tif g.MinProperties != 0 {\n\t\tk.MinProperties = &g.MinProperties\n\t}\n\n\tk.Required = g.Required\n\n\tif g.GetItems() != nil {\n\t\tk.Items = &SchemaOrArray{}\n\t\tfor _, v := range g.Items.GetSchema() {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tschema := Schema{}\n\t\t\tif nok, err := schema.FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Items.Schemas = append(k.Items.Schemas, schema)\n\t\t}\n\n\t\tif len(k.Items.Schemas) == 1 {\n\t\t\tk.Items.Schema = &k.Items.Schemas[0]\n\t\t\tk.Items.Schemas = nil\n\t\t}\n\t}\n\n\tfor i, v := range g.GetAllOf() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tk.AllOf = append(k.AllOf, Schema{})\n\t\tif nok, err := k.AllOf[i].FromGnostic(v); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Properties != nil {\n\t\tk.Properties = make(map[string]Schema)\n\t\tfor _, namedSchema := range g.Properties.AdditionalProperties {\n\t\t\tif namedSchema == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tval := &Schema{}\n\t\t\tif nok, err := val.FromGnostic(namedSchema.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Properties[namedSchema.Name] = *val\n\t\t}\n\t}\n\n\tif g.AdditionalProperties != nil {\n\t\tk.AdditionalProperties = &SchemaOrBool{}\n\t\tif g.AdditionalProperties.GetSchema() == nil {\n\t\t\tk.AdditionalProperties.Allows = g.AdditionalProperties.GetBoolean()\n\t\t} else {\n\t\t\tk.AdditionalProperties.Schema = &Schema{}\n\t\t\tk.AdditionalProperties.Allows = true\n\n\t\t\tif nok, err := k.AdditionalProperties.Schema.FromGnostic(g.AdditionalProperties.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Schema) FromGnosticSchemaItem(g *openapi_v2.SchemaItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.SchemaItem_FileSchema:\n\t\tfileSchema := p.FileSchema\n\n\t\tif err := k.VendorExtensible.FromGnostic(fileSchema.VendorExtension); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\tk.Format = fileSchema.Format\n\t\tk.Title = fileSchema.Title\n\t\tk.Description = fileSchema.Description\n\t\tk.Required = fileSchema.Required\n\t\tk.Type = []string{fileSchema.Type}\n\t\tk.ReadOnly = fileSchema.ReadOnly\n\n\t\tif fileSchema.ExternalDocs != nil {\n\t\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\t\tif nok, err := k.ExternalDocs.FromGnostic(fileSchema.ExternalDocs); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Example != nil {\n\t\t\tif err := fileSchema.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Default != nil {\n\t\t\tif err := fileSchema.Default.ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\tcase *openapi_v2.SchemaItem_Schema:\n\t\tschema := p.Schema\n\n\t\tif nok, err := k.FromGnostic(schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for SchemaItem\")\n\t}\n\n\treturn ok, nil\n}\n\n// SecurityDefinitions\n\nfunc (k SecurityDefinitions) FromGnostic(g *openapi_v2.SecurityDefinitions) error {\n\tfor _, v := range g.GetAdditionalProperties() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsecScheme := &SecurityScheme{}\n\t\tif err := secScheme.FromGnostic(v.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk[v.Name] = secScheme\n\t}\n\n\treturn nil\n}\n\ntype GnosticCommonSecurityDefinition interface {\n\tGetType() string\n\tGetDescription() string\n}\n\nfunc (k *SecuritySchemeProps) FromGnostic(g GnosticCommonSecurityDefinition) error {\n\tk.Type = g.GetType()\n\tk.Description = g.GetDescription()\n\n\tif hasName, success := g.(interface{ GetName() string }); success {\n\t\tk.Name = hasName.GetName()\n\t}\n\n\tif hasIn, success := g.(interface{ GetIn() string }); success {\n\t\tk.In = hasIn.GetIn()\n\t}\n\n\tif hasFlow, success := g.(interface{ GetFlow() string }); success {\n\t\tk.Flow = hasFlow.GetFlow()\n\t}\n\n\tif hasAuthURL, success := g.(interface{ GetAuthorizationUrl() string }); success {\n\t\tk.AuthorizationURL = hasAuthURL.GetAuthorizationUrl()\n\t}\n\n\tif hasTokenURL, success := g.(interface{ GetTokenUrl() string }); success {\n\t\tk.TokenURL = hasTokenURL.GetTokenUrl()\n\t}\n\n\tif hasScopes, success := g.(interface {\n\t\tGetScopes() *openapi_v2.Oauth2Scopes\n\t}); success {\n\t\tscopes := hasScopes.GetScopes()\n\t\tif scopes != nil {\n\t\t\tk.Scopes = make(map[string]string, len(scopes.AdditionalProperties))\n\t\t\tfor _, v := range scopes.AdditionalProperties {\n\t\t\t\tif v == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tk.Scopes[v.Name] = v.Value\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *SecurityScheme) FromGnostic(g *openapi_v2.SecurityDefinitionsItem) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tswitch s := g.Oneof.(type) {\n\tcase *openapi_v2.SecurityDefinitionsItem_ApiKeySecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.ApiKeySecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.ApiKeySecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_BasicAuthenticationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.BasicAuthenticationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.BasicAuthenticationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2AccessCodeSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2AccessCodeSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2AccessCodeSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ApplicationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ApplicationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ApplicationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ImplicitSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ImplicitSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ImplicitSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2PasswordSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2PasswordSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2PasswordSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn errors.New(\"unrecognized SecurityDefinitionsItem\")\n\t}\n}\n\n// Tag\n\nfunc (k *Tag) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif nok, err := k.TagProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *TagProps) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.Name = g.Name\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// ExternalDocumentation\n\nfunc (k *ExternalDocumentation) FromGnostic(g *openapi_v2.ExternalDocs) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.URL = g.Url\n\n\t// data loss! g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/header.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonArray = \"array\"\n)\n\n// HeaderProps describes a response header\ntype HeaderProps struct {\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tHeaderProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (h Header) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(h)\n\t}\n\tb1, err := json.Marshal(h.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4), nil\n}\n\nfunc (h Header) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(h.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(h.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(h.Extensions)\n\tx.HeaderProps = h.HeaderProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals this header from JSON\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\n\tif err := json.Unmarshal(data, &h.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &h.HeaderProps)\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\th.CommonValidations = x.CommonValidations\n\th.SimpleSchema = x.SimpleSchema\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Extensions vendor specific extensions\ntype Extensions map[string]interface{}\n\n// Add adds a value to these extensions\nfunc (e Extensions) Add(key string, value interface{}) {\n\trealKey := strings.ToLower(key)\n\te[realKey] = value\n}\n\n// GetString gets a string value from the extensions\nfunc (e Extensions) GetString(key string) (string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(string)\n\t\treturn str, ok\n\t}\n\treturn \"\", false\n}\n\n// GetBool gets a string value from the extensions\nfunc (e Extensions) GetBool(key string) (bool, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(bool)\n\t\treturn str, ok\n\t}\n\treturn false, false\n}\n\n// GetStringSlice gets a string value from the extensions\nfunc (e Extensions) GetStringSlice(key string) ([]string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tarr, isSlice := v.([]interface{})\n\t\tif !isSlice {\n\t\t\treturn nil, false\n\t\t}\n\t\tvar strs []string\n\t\tfor _, iface := range arr {\n\t\t\tstr, isString := iface.(string)\n\t\t\tif !isString {\n\t\t\t\treturn nil, false\n\t\t\t}\n\t\t\tstrs = append(strs, str)\n\t\t}\n\t\treturn strs, ok\n\t}\n\treturn nil, false\n}\n\n// GetObject gets the object value from the extensions.\n// out must be a json serializable type; the json go struct\n// tags of out are used to populate it.\nfunc (e Extensions) GetObject(key string, out interface{}) error {\n\t// This json serialization/deserialization could be replaced with\n\t// an approach using reflection if the optimization becomes justified.\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tb, err := json.Marshal(v)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = json.Unmarshal(b, out)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e Extensions) sanitizeWithExtra() (extra map[string]any) {\n\tfor k, v := range e {\n\t\tif !internal.IsExtensionKey(k) {\n\t\t\tif extra == nil {\n\t\t\t\textra = make(map[string]any)\n\t\t\t}\n\t\t\textra[k] = v\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\treturn extra\n}\n\n// VendorExtensible composition block.\ntype VendorExtensible struct {\n\tExtensions Extensions\n}\n\n// AddExtension adds an extension to this extensible object\nfunc (v *VendorExtensible) AddExtension(key string, value interface{}) {\n\tif value == nil {\n\t\treturn\n\t}\n\tif v.Extensions == nil {\n\t\tv.Extensions = make(map[string]interface{})\n\t}\n\tv.Extensions.Add(key, value)\n}\n\n// MarshalJSON marshals the extensions to json\nfunc (v VendorExtensible) MarshalJSON() ([]byte, error) {\n\ttoser := make(map[string]interface{})\n\tfor k, v := range v.Extensions {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\ttoser[k] = v\n\t\t}\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON for this extensible object\nfunc (v *VendorExtensible) UnmarshalJSON(data []byte) error {\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif v.Extensions == nil {\n\t\t\t\tv.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tv.Extensions[k] = vv\n\t\t}\n\t}\n\treturn nil\n}\n\n// InfoProps the properties for an info definition\ntype InfoProps struct {\n\tDescription    string       `json:\"description,omitempty\"`\n\tTitle          string       `json:\"title,omitempty\"`\n\tTermsOfService string       `json:\"termsOfService,omitempty\"`\n\tContact        *ContactInfo `json:\"contact,omitempty\"`\n\tLicense        *License     `json:\"license,omitempty\"`\n\tVersion        string       `json:\"version,omitempty\"`\n}\n\n// Info object provides metadata about the API.\n// The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.\n//\n// For more information: http://goo.gl/8us55a#infoObject\ntype Info struct {\n\tVendorExtensible\n\tInfoProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (i Info) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.InfoProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (i Info) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tx.Extensions = i.Extensions\n\tx.InfoProps = i.InfoProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (i *Info) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tif err := json.Unmarshal(data, &i.InfoProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &i.VendorExtensible)\n}\n\nfunc (i *Info) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ti.InfoProps = x.InfoProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/items.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonRef = \"$ref\"\n)\n\n// SimpleSchema describe swagger simple schemas for parameters and headers\ntype SimpleSchema struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitempty\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitempty\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype simpleSchemaOmitZero struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitzero\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitzero\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// CommonValidations describe common JSON-schema validations\ntype CommonValidations struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitempty\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype commonValidationsOmitZero struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitzero\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Items a limited subset of JSON-Schema's items object.\n// It is used by parameter definitions that are not located in \"body\".\n//\n// For more information: http://goo.gl/8us55a#items-object\ntype Items struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (i *Items) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tvar validations CommonValidations\n\tif err := json.Unmarshal(data, &validations); err != nil {\n\t\treturn err\n\t}\n\tvar ref Refable\n\tif err := json.Unmarshal(data, &ref); err != nil {\n\t\treturn err\n\t}\n\tvar simpleSchema SimpleSchema\n\tif err := json.Unmarshal(data, &simpleSchema); err != nil {\n\t\treturn err\n\t}\n\tvar vendorExtensible VendorExtensible\n\tif err := json.Unmarshal(data, &vendorExtensible); err != nil {\n\t\treturn err\n\t}\n\ti.Refable = ref\n\ti.CommonValidations = validations\n\ti.SimpleSchema = simpleSchema\n\ti.VendorExtensible = vendorExtensible\n\treturn nil\n}\n\nfunc (i *Items) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := i.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\ti.CommonValidations = x.CommonValidations\n\ti.SimpleSchema = x.SimpleSchema\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (i Items) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(i.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b4, b3, b1, b2), nil\n}\n\nfunc (i Items) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(i.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(i.SimpleSchema)\n\tx.Ref = i.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(i.Extensions)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/license.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// License information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#licenseObject\ntype License struct {\n\tName string `json:\"name,omitempty\"`\n\tURL  string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/operation.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// OperationProps describes an operation\n//\n// NOTES:\n// - schemes, when present must be from [http, https, ws, wss]: see validate\n// - Security is handled as a special case: see MarshalJSON function\ntype OperationProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype operationPropsOmitZero struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty,omitzero\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitzero\"`\n}\n\n// MarshalJSON takes care of serializing operation properties to JSON\n//\n// We use a custom marhaller here to handle a special cases related to\n// the Security field. We need to preserve zero length slice\n// while omitting the field when the value is nil/unset.\nfunc (op OperationProps) MarshalJSON() ([]byte, error) {\n\ttype Alias OperationProps\n\tif op.Security == nil {\n\t\treturn json.Marshal(&struct {\n\t\t\tSecurity []map[string][]string `json:\"security,omitempty\"`\n\t\t\t*Alias\n\t\t}{\n\t\t\tSecurity: op.Security,\n\t\t\tAlias:    (*Alias)(&op),\n\t\t})\n\t}\n\treturn json.Marshal(&struct {\n\t\tSecurity []map[string][]string `json:\"security\"`\n\t\t*Alias\n\t}{\n\t\tSecurity: op.Security,\n\t\tAlias:    (*Alias)(&op),\n\t})\n}\n\n// Operation describes a single API operation on a path.\n//\n// For more information: http://goo.gl/8us55a#operationObject\ntype Operation struct {\n\tVendorExtensible\n\tOperationProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttype OperationPropsNoMethods OperationProps // strip MarshalJSON method\n\tvar x struct {\n\t\tExtensions\n\t\tOperationPropsNoMethods\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = OperationProps(x.OperationPropsNoMethods)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (o Operation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (o Operation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tOperationProps operationPropsOmitZero `json:\",inline\"`\n\t}\n\tx.Extensions = internal.SanitizeExtensions(o.Extensions)\n\tx.OperationProps = operationPropsOmitZero(o.OperationProps)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/parameter.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ParamProps describes the specific attributes of an operation parameter\n//\n// NOTE:\n// - Schema is defined when \"in\" == \"body\": see validate\n// - AllowEmptyValue is allowed where \"in\" == \"query\" || \"formData\"\ntype ParamProps struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitempty\"`\n\tSchema          *Schema `json:\"schema,omitempty\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype paramPropsOmitZero struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitzero\"`\n\tSchema          *Schema `json:\"schema,omitzero\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitzero\"`\n}\n\n// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).\n//\n// There are five possible parameter types.\n// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part\n//\n//\tof the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,\n//\tthe path parameter is `itemId`.\n//\n// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.\n// * Header - Custom headers that are expected as part of the request.\n// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be\n//\n//\t_one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for\n//\tdocumentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist\n//\ttogether for the same operation.\n//\n// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or\n//\n//\t`multipart/form-data` are used as the content type of the request (in Swagger's definition,\n//\tthe [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used\n//\tto send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be\n//\tdeclared together with a body parameter for the same operation. Form parameters have a different format based on\n//\tthe content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).\n//\t* `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.\n//\tFor example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple\n//\tparameters that are being transferred.\n//\t* `multipart/form-data` - each parameter takes a section in the payload with an internal header.\n//\tFor example, for the header `Content-Disposition: form-data; name=\"submit-name\"` the name of the parameter is\n//\t`submit-name`. This type of form parameters is more commonly used for file transfers.\n//\n// For more information: http://goo.gl/8us55a#parameterObject\ntype Parameter struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tParamProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.ParamProps)\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tParamProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.CommonValidations = x.CommonValidations\n\tp.SimpleSchema = x.SimpleSchema\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParamProps = x.ParamProps\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Parameter) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.ParamProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b3, b1, b2, b4, b5), nil\n}\n\nfunc (p Parameter) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tParamProps        paramPropsOmitZero        `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(p.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(p.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.ParamProps = paramPropsOmitZero(p.ParamProps)\n\tx.Ref = p.Refable.Ref.String()\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/path_item.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// PathItemProps the path item specific properties\ntype PathItemProps struct {\n\tGet        *Operation  `json:\"get,omitempty\"`\n\tPut        *Operation  `json:\"put,omitempty\"`\n\tPost       *Operation  `json:\"post,omitempty\"`\n\tDelete     *Operation  `json:\"delete,omitempty\"`\n\tOptions    *Operation  `json:\"options,omitempty\"`\n\tHead       *Operation  `json:\"head,omitempty\"`\n\tPatch      *Operation  `json:\"patch,omitempty\"`\n\tParameters []Parameter `json:\"parameters,omitempty\"`\n}\n\n// PathItem describes the operations available on a single path.\n// A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n// The path itself is still exposed to the documentation viewer but they will\n// not know which operations and parameters are available.\n//\n// For more information: http://goo.gl/8us55a#pathItemObject\ntype PathItem struct {\n\tRefable\n\tVendorExtensible\n\tPathItemProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *PathItem) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.PathItemProps)\n}\n\nfunc (p *PathItem) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathItemProps = x.PathItemProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p PathItem) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.PathItemProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b3, b4, b5)\n\treturn concated, nil\n}\n\nfunc (p PathItem) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.PathItemProps = p.PathItemProps\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/paths.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Paths holds the relative paths to the individual endpoints.\n// The path is appended to the [`basePath`](http://goo.gl/8us55a#swaggerBasePath) in order\n// to construct the full URL.\n// The Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n//\n// For more information: http://goo.gl/8us55a#pathsObject\ntype Paths struct {\n\tVendorExtensible\n\tPaths map[string]PathItem `json:\"-\"` // custom serializer to flatten this, each entry must start with \"/\"\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t}\n\t\t\tvar pi PathItem\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar pi PathItem\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi = PathItem{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Paths) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]PathItem)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (p Paths) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tm := make(map[string]any, len(p.Extensions)+len(p.Paths))\n\tfor k, v := range p.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\treturn opts.MarshalNext(enc, m)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/ref.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n)\n\n// Refable is a struct for things that accept a $ref property\ntype Refable struct {\n\tRef Ref\n}\n\n// MarshalJSON marshals the ref to json\nfunc (r Refable) MarshalJSON() ([]byte, error) {\n\treturn r.Ref.MarshalJSON()\n}\n\n// UnmarshalJSON unmarshalss the ref from json\nfunc (r *Refable) UnmarshalJSON(d []byte) error {\n\treturn json.Unmarshal(d, &r.Ref)\n}\n\n// Ref represents a json reference that is potentially resolved\ntype Ref struct {\n\tjsonreference.Ref\n}\n\n// RemoteURI gets the remote uri part of the ref\nfunc (r *Ref) RemoteURI() string {\n\tif r.String() == \"\" {\n\t\treturn r.String()\n\t}\n\n\tu := *r.GetURL()\n\tu.Fragment = \"\"\n\treturn u.String()\n}\n\n// IsValidURI returns true when the url the ref points to can be found\nfunc (r *Ref) IsValidURI(basepaths ...string) bool {\n\tif r.String() == \"\" {\n\t\treturn true\n\t}\n\n\tv := r.RemoteURI()\n\tif v == \"\" {\n\t\treturn true\n\t}\n\n\tif r.HasFullURL {\n\t\trr, err := http.Get(v)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\treturn rr.StatusCode/100 == 2\n\t}\n\n\tif !(r.HasFileScheme || r.HasFullFilePath || r.HasURLPathOnly) {\n\t\treturn false\n\t}\n\n\t// check for local file\n\tpth := v\n\tif r.HasURLPathOnly {\n\t\tbase := \".\"\n\t\tif len(basepaths) > 0 {\n\t\t\tbase = filepath.Dir(filepath.Join(basepaths...))\n\t\t}\n\t\tp, e := filepath.Abs(filepath.ToSlash(filepath.Join(base, pth)))\n\t\tif e != nil {\n\t\t\treturn false\n\t\t}\n\t\tpth = p\n\t}\n\n\tfi, err := os.Stat(filepath.ToSlash(pth))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn !fi.IsDir()\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tref, err := r.Ref.Inherits(child.Ref)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{Ref: *ref}, nil\n}\n\n// NewRef creates a new instance of a ref object\n// returns an error when the reference uri is an invalid uri\nfunc NewRef(refURI string) (Ref, error) {\n\tref, err := jsonreference.New(refURI)\n\tif err != nil {\n\t\treturn Ref{}, err\n\t}\n\treturn Ref{Ref: ref}, nil\n}\n\n// MustCreateRef creates a ref object but panics when refURI is invalid.\n// Use the NewRef method for a version that returns an error.\nfunc MustCreateRef(refURI string) Ref {\n\treturn Ref{Ref: jsonreference.MustCreateRef(refURI)}\n}\n\n// MarshalJSON marshals this ref into a JSON object\nfunc (r Ref) MarshalJSON() ([]byte, error) {\n\tstr := r.String()\n\tif str == \"\" {\n\t\tif r.IsRoot() {\n\t\t\treturn []byte(`{\"$ref\":\"\"}`), nil\n\t\t}\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$ref\": str}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshals this ref from a JSON object\nfunc (r *Ref) UnmarshalJSON(d []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(d, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *Ref) fromMap(v map[string]interface{}) error {\n\treturn internal.JSONRefFromMap(&r.Ref, v)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/response.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ResponseProps properties specific to a response\ntype ResponseProps struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitempty\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype responsePropsOmitZero struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitzero\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Response describes a single response from an API Operation.\n//\n// For more information: http://goo.gl/8us55a#responseObject\ntype Response struct {\n\tRefable\n\tResponseProps\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tResponseProps\n\t\tExtensions\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := r.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Response) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r Response) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tResponseProps responsePropsOmitZero `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.ResponseProps = responsePropsOmitZero(r.ResponseProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// NewResponse creates a new response instance\nfunc NewResponse() *Response {\n\treturn new(Response)\n}\n\n// ResponseRef creates a response as a json reference\nfunc ResponseRef(url string) *Response {\n\tresp := NewResponse()\n\tresp.Ref = MustCreateRef(url)\n\treturn resp\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/responses.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Responses is a container for the expected responses of an operation.\n// The container maps a HTTP response code to the expected response.\n// It is not expected from the documentation to necessarily cover all possible HTTP response codes,\n// since they may not be known in advance. However, it is expected from the documentation to cover\n// a successful operation response and any known errors.\n//\n// The `default` can be used a default response object for all HTTP codes that are not covered\n// individually by the specification.\n//\n// The `Responses Object` MUST contain at least one response code, and it SHOULD be the response\n// for a successful operation call.\n//\n// For more information: http://goo.gl/8us55a#responsesObject\ntype Responses struct {\n\tVendorExtensible\n\tResponsesProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\tif reflect.DeepEqual(ResponsesProps{}, r.ResponsesProps) {\n\t\tr.ResponsesProps = ResponsesProps{}\n\t}\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Responses) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (r Responses) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tDefault *Response `json:\"default,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(r.Extensions)+len(r.StatusCodeResponses))\n\tfor k, v := range r.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\tx.ArbitraryKeys[strconv.Itoa(k)] = v\n\t}\n\tx.Default = r.Default\n\treturn opts.MarshalNext(enc, x)\n}\n\n// ResponsesProps describes all responses for an operation.\n// It tells what is the default response and maps all responses with a\n// HTTP status code.\ntype ResponsesProps struct {\n\tDefault             *Response\n\tStatusCodeResponses map[int]Response\n}\n\n// MarshalJSON marshals responses as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = *r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar resp Response\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp = Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\trespCopy := resp\n\t\t\t\tr.ResponsesProps.Default = &respCopy\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp = Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// BooleanProperty creates a boolean property\nfunc BooleanProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"boolean\"}}}\n}\n\n// BoolProperty creates a boolean property\nfunc BoolProperty() *Schema { return BooleanProperty() }\n\n// StringProperty creates a string property\nfunc StringProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// CharProperty creates a string property\nfunc CharProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// Float64Property creates a float64/double property\nfunc Float64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"double\"}}\n}\n\n// Float32Property creates a float32/float property\nfunc Float32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"float\"}}\n}\n\n// Int8Property creates an int8 property\nfunc Int8Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int8\"}}\n}\n\n// Int16Property creates an int16 property\nfunc Int16Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int16\"}}\n}\n\n// Int32Property creates an int32 property\nfunc Int32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int32\"}}\n}\n\n// Int64Property creates an int64 property\nfunc Int64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}}\n}\n\n// StrFmtProperty creates a property for the named string format\nfunc StrFmtProperty(format string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: format}}\n}\n\n// DateProperty creates a date property\nfunc DateProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date\"}}\n}\n\n// DateTimeProperty creates a date time property\nfunc DateTimeProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date-time\"}}\n}\n\n// MapProperty creates a map property\nfunc MapProperty(property *Schema) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"object\"},\n\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}\n}\n\n// RefProperty creates a ref property\nfunc RefProperty(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// RefSchema creates a ref property\nfunc RefSchema(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// ArrayProperty creates an array property\nfunc ArrayProperty(items *Schema) *Schema {\n\tif items == nil {\n\t\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"array\"}}}\n\t}\n\treturn &Schema{SchemaProps: SchemaProps{Items: &SchemaOrArray{Schema: items}, Type: []string{\"array\"}}}\n}\n\n// ComposedSchema creates a schema with allOf\nfunc ComposedSchema(schemas ...Schema) *Schema {\n\ts := new(Schema)\n\ts.AllOf = schemas\n\treturn s\n}\n\n// SchemaURL represents a schema url\ntype SchemaURL string\n\n// MarshalJSON marshal this to JSON\nfunc (r SchemaURL) MarshalJSON() ([]byte, error) {\n\tif r == \"\" {\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$schema\": string(r)}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshal this from JSON\nfunc (r *SchemaURL) UnmarshalJSON(data []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(data, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *SchemaURL) fromMap(v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$schema\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tu, err := url.Parse(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t*r = SchemaURL(u.String())\n\t\t}\n\t}\n\treturn nil\n}\n\n// SchemaProps describes a JSON schema (draft 4)\ntype SchemaProps struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitempty\"`\n\tNullable             bool              `json:\"nullable,omitempty\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitempty\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitempty\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitempty\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitempty\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitempty\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitempty\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype schemaPropsOmitZero struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitzero\"`\n\tNullable             bool              `json:\"nullable,omitzero\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitzero\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitzero\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitzero\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitzero\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitzero\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitzero\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)\ntype SwaggerSchemaProps struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitempty\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype swaggerSchemaPropsOmitZero struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitzero\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Schema the schema object allows the definition of input and output data types.\n// These types can be objects, but also primitives and arrays.\n// This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/)\n// and uses a predefined subset of it.\n// On top of this subset, there are extensions provided by this specification to allow for more complete documentation.\n//\n// For more information: http://goo.gl/8us55a#schemaObject\ntype Schema struct {\n\tVendorExtensible\n\tSchemaProps\n\tSwaggerSchemaProps\n\tExtraProps map[string]interface{} `json:\"-\"`\n}\n\n// WithID sets the id for this schema, allows for chaining\nfunc (s *Schema) WithID(id string) *Schema {\n\ts.ID = id\n\treturn s\n}\n\n// WithTitle sets the title for this schema, allows for chaining\nfunc (s *Schema) WithTitle(title string) *Schema {\n\ts.Title = title\n\treturn s\n}\n\n// WithDescription sets the description for this schema, allows for chaining\nfunc (s *Schema) WithDescription(description string) *Schema {\n\ts.Description = description\n\treturn s\n}\n\n// WithProperties sets the properties for this schema\nfunc (s *Schema) WithProperties(schemas map[string]Schema) *Schema {\n\ts.Properties = schemas\n\treturn s\n}\n\n// SetProperty sets a property on this schema\nfunc (s *Schema) SetProperty(name string, schema Schema) *Schema {\n\tif s.Properties == nil {\n\t\ts.Properties = make(map[string]Schema)\n\t}\n\ts.Properties[name] = schema\n\treturn s\n}\n\n// WithAllOf sets the all of property\nfunc (s *Schema) WithAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = schemas\n\treturn s\n}\n\n// WithMaxProperties sets the max number of properties an object can have\nfunc (s *Schema) WithMaxProperties(max int64) *Schema {\n\ts.MaxProperties = &max\n\treturn s\n}\n\n// WithMinProperties sets the min number of properties an object must have\nfunc (s *Schema) WithMinProperties(min int64) *Schema {\n\ts.MinProperties = &min\n\treturn s\n}\n\n// Typed sets the type of this schema for a single value item\nfunc (s *Schema) Typed(tpe, format string) *Schema {\n\ts.Type = []string{tpe}\n\ts.Format = format\n\treturn s\n}\n\n// AddType adds a type with potential format to the types for this schema\nfunc (s *Schema) AddType(tpe, format string) *Schema {\n\ts.Type = append(s.Type, tpe)\n\tif format != \"\" {\n\t\ts.Format = format\n\t}\n\treturn s\n}\n\n// AsNullable flags this schema as nullable.\nfunc (s *Schema) AsNullable() *Schema {\n\ts.Nullable = true\n\treturn s\n}\n\n// CollectionOf a fluent builder method for an array parameter\nfunc (s *Schema) CollectionOf(items Schema) *Schema {\n\ts.Type = []string{jsonArray}\n\ts.Items = &SchemaOrArray{Schema: &items}\n\treturn s\n}\n\n// WithDefault sets the default value on this parameter\nfunc (s *Schema) WithDefault(defaultValue interface{}) *Schema {\n\ts.Default = defaultValue\n\treturn s\n}\n\n// WithRequired flags this parameter as required\nfunc (s *Schema) WithRequired(items ...string) *Schema {\n\ts.Required = items\n\treturn s\n}\n\n// AddRequired  adds field names to the required properties array\nfunc (s *Schema) AddRequired(items ...string) *Schema {\n\ts.Required = append(s.Required, items...)\n\treturn s\n}\n\n// WithMaxLength sets a max length value\nfunc (s *Schema) WithMaxLength(max int64) *Schema {\n\ts.MaxLength = &max\n\treturn s\n}\n\n// WithMinLength sets a min length value\nfunc (s *Schema) WithMinLength(min int64) *Schema {\n\ts.MinLength = &min\n\treturn s\n}\n\n// WithPattern sets a pattern value\nfunc (s *Schema) WithPattern(pattern string) *Schema {\n\ts.Pattern = pattern\n\treturn s\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (s *Schema) WithMultipleOf(number float64) *Schema {\n\ts.MultipleOf = &number\n\treturn s\n}\n\n// WithMaximum sets a maximum number value\nfunc (s *Schema) WithMaximum(max float64, exclusive bool) *Schema {\n\ts.Maximum = &max\n\ts.ExclusiveMaximum = exclusive\n\treturn s\n}\n\n// WithMinimum sets a minimum number value\nfunc (s *Schema) WithMinimum(min float64, exclusive bool) *Schema {\n\ts.Minimum = &min\n\ts.ExclusiveMinimum = exclusive\n\treturn s\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (s *Schema) WithEnum(values ...interface{}) *Schema {\n\ts.Enum = append([]interface{}{}, values...)\n\treturn s\n}\n\n// WithMaxItems sets the max items\nfunc (s *Schema) WithMaxItems(size int64) *Schema {\n\ts.MaxItems = &size\n\treturn s\n}\n\n// WithMinItems sets the min items\nfunc (s *Schema) WithMinItems(size int64) *Schema {\n\ts.MinItems = &size\n\treturn s\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (s *Schema) UniqueValues() *Schema {\n\ts.UniqueItems = true\n\treturn s\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (s *Schema) AllowDuplicates() *Schema {\n\ts.UniqueItems = false\n\treturn s\n}\n\n// AddToAllOf adds a schema to the allOf property\nfunc (s *Schema) AddToAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = append(s.AllOf, schemas...)\n\treturn s\n}\n\n// WithDiscriminator sets the name of the discriminator field\nfunc (s *Schema) WithDiscriminator(discriminator string) *Schema {\n\ts.Discriminator = discriminator\n\treturn s\n}\n\n// AsReadOnly flags this schema as readonly\nfunc (s *Schema) AsReadOnly() *Schema {\n\ts.ReadOnly = true\n\treturn s\n}\n\n// AsWritable flags this schema as writeable (not read-only)\nfunc (s *Schema) AsWritable() *Schema {\n\ts.ReadOnly = false\n\treturn s\n}\n\n// WithExample sets the example for this schema\nfunc (s *Schema) WithExample(example interface{}) *Schema {\n\ts.Example = example\n\treturn s\n}\n\n// WithExternalDocs sets/removes the external docs for/from this schema.\n// When you pass empty strings as params the external documents will be removed.\n// When you pass non-empty string as one value then those values will be used on the external docs object.\n// So when you pass a non-empty description, you should also pass the url and vice versa.\nfunc (s *Schema) WithExternalDocs(description, url string) *Schema {\n\tif description == \"\" && url == \"\" {\n\t\ts.ExternalDocs = nil\n\t\treturn s\n\t}\n\n\tif s.ExternalDocs == nil {\n\t\ts.ExternalDocs = &ExternalDocumentation{}\n\t}\n\ts.ExternalDocs.Description = description\n\ts.ExternalDocs.URL = url\n\treturn s\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s Schema) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema props %v\", err)\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"vendor props %v\", err)\n\t}\n\tb3, err := s.Ref.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ref prop %v\", err)\n\t}\n\tb4, err := s.Schema.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema prop %v\", err)\n\t}\n\tb5, err := json.Marshal(s.SwaggerSchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"common validations %v\", err)\n\t}\n\tvar b6 []byte\n\tif s.ExtraProps != nil {\n\t\tjj, err := json.Marshal(s.ExtraProps)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"extra props %v\", err)\n\t\t}\n\t\tb6 = jj\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4, b5, b6), nil\n}\n\nfunc (s Schema) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tSchemaProps        schemaPropsOmitZero        `json:\",inline\"`\n\t\tSwaggerSchemaProps swaggerSchemaPropsOmitZero `json:\",inline\"`\n\t\tSchema             string                     `json:\"$schema,omitempty\"`\n\t\tRef                string                     `json:\"$ref,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(s.Extensions)+len(s.ExtraProps))\n\tfor k, v := range s.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range s.ExtraProps {\n\t\tx.ArbitraryKeys[k] = v\n\t}\n\tx.SchemaProps = schemaPropsOmitZero(s.SchemaProps)\n\tx.SwaggerSchemaProps = swaggerSchemaPropsOmitZero(s.SwaggerSchemaProps)\n\tx.Ref = s.Ref.String()\n\tx.Schema = string(s.Schema)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *Schema) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tprops := struct {\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}{}\n\tif err := json.Unmarshal(data, &props); err != nil {\n\t\treturn err\n\t}\n\n\tsch := Schema{\n\t\tSchemaProps:        props.SchemaProps,\n\t\tSwaggerSchemaProps: props.SwaggerSchemaProps,\n\t}\n\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\n\t_ = sch.Ref.fromMap(d)\n\t_ = sch.Schema.fromMap(d)\n\n\tdelete(d, \"$ref\")\n\tdelete(d, \"$schema\")\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(d, pn)\n\t}\n\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif sch.Extensions == nil {\n\t\t\t\tsch.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tsch.Extensions[k] = vv\n\t\t\tcontinue\n\t\t}\n\t\tif sch.ExtraProps == nil {\n\t\t\tsch.ExtraProps = map[string]interface{}{}\n\t\t}\n\t\tsch.ExtraProps[k] = vv\n\t}\n\n\t*s = sch\n\n\treturn nil\n}\n\nfunc (s *Schema) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Schema.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tdelete(x.Extensions, \"$ref\")\n\tdelete(x.Extensions, \"$schema\")\n\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(x.Extensions, pn)\n\t}\n\tif len(x.Extensions) == 0 {\n\t\tx.Extensions = nil\n\t}\n\n\ts.ExtraProps = x.Extensions.sanitizeWithExtra()\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SchemaProps = x.SchemaProps\n\ts.SwaggerSchemaProps = x.SwaggerSchemaProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/security_scheme.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section\ntype SecuritySchemeProps struct {\n\tDescription      string            `json:\"description,omitempty\"`\n\tType             string            `json:\"type\"`\n\tName             string            `json:\"name,omitempty\"`             // api key\n\tIn               string            `json:\"in,omitempty\"`               // api key\n\tFlow             string            `json:\"flow,omitempty\"`             // oauth2\n\tAuthorizationURL string            `json:\"authorizationUrl,omitempty\"` // oauth2\n\tTokenURL         string            `json:\"tokenUrl,omitempty\"`         // oauth2\n\tScopes           map[string]string `json:\"scopes,omitempty\"`           // oauth2\n}\n\n// SecurityScheme allows the definition of a security scheme that can be used by the operations.\n// Supported schemes are basic authentication, an API key (either as a header or as a query parameter)\n// and OAuth2's common flows (implicit, password, application and access code).\n//\n// For more information: http://goo.gl/8us55a#securitySchemeObject\ntype SecurityScheme struct {\n\tVendorExtensible\n\tSecuritySchemeProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s SecurityScheme) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s SecurityScheme) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SecuritySchemeProps = s.SecuritySchemeProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.VendorExtensible)\n}\n\nfunc (s *SecurityScheme) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SecuritySchemeProps = x.SecuritySchemeProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/swagger.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Swagger this is the root document object for the API specification.\n// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)\n// together into one document.\n//\n// For more information: http://goo.gl/8us55a#swagger-object-\ntype Swagger struct {\n\tVendorExtensible\n\tSwaggerProps\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SwaggerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SwaggerProps = s.SwaggerProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals a swagger spec from json\nfunc (s *Swagger) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tvar sw Swagger\n\tif err := json.Unmarshal(data, &sw.SwaggerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &sw.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\t*s = sw\n\treturn nil\n}\n\nfunc (s *Swagger) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\t// Note: If you're willing to make breaking changes, it is possible to\n\t// optimize this and other usages of this pattern:\n\t// https://github.com/kubernetes/kube-openapi/pull/319#discussion_r983165948\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SwaggerProps = x.SwaggerProps\n\treturn nil\n}\n\n// SwaggerProps captures the top-level properties of an Api specification\n//\n// NOTE: validation rules\n// - the scheme, when present must be from [http, https, ws, wss]\n// - BasePath must start with a leading \"/\"\n// - Paths is required\ntype SwaggerProps struct {\n\tID                  string                 `json:\"id,omitempty\"`\n\tConsumes            []string               `json:\"consumes,omitempty\"`\n\tProduces            []string               `json:\"produces,omitempty\"`\n\tSchemes             []string               `json:\"schemes,omitempty\"`\n\tSwagger             string                 `json:\"swagger,omitempty\"`\n\tInfo                *Info                  `json:\"info,omitempty\"`\n\tHost                string                 `json:\"host,omitempty\"`\n\tBasePath            string                 `json:\"basePath,omitempty\"`\n\tPaths               *Paths                 `json:\"paths\"`\n\tDefinitions         Definitions            `json:\"definitions,omitempty\"`\n\tParameters          map[string]Parameter   `json:\"parameters,omitempty\"`\n\tResponses           map[string]Response    `json:\"responses,omitempty\"`\n\tSecurityDefinitions SecurityDefinitions    `json:\"securityDefinitions,omitempty\"`\n\tSecurity            []map[string][]string  `json:\"security,omitempty\"`\n\tTags                []Tag                  `json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Dependencies represent a dependencies property\ntype Dependencies map[string]SchemaOrStringArray\n\n// SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property\ntype SchemaOrBool struct {\n\tAllows bool\n\tSchema *Schema\n}\n\nvar jsTrue = []byte(\"true\")\nvar jsFalse = []byte(\"false\")\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn jsFalse, nil\n\t}\n\treturn jsTrue, nil\n}\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn enc.WriteToken(jsonv2.False)\n\t}\n\treturn enc.WriteToken(jsonv2.True)\n}\n\n// UnmarshalJSON converts this bool or schema object from a JSON structure\nfunc (s *SchemaOrBool) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrBool\n\tif len(data) > 0 && data[0] == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t\tnw.Allows = true\n\t} else {\n\t\tjson.Unmarshal(data, &nw.Allows)\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrBool) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\terr := opts.UnmarshalNext(dec, &s.Schema)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts.Allows = true\n\t\treturn nil\n\tcase 't', 'f':\n\t\terr := opts.UnmarshalNext(dec, &s.Allows)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected object or bool, not '%v'\", k.String())\n\t}\n}\n\n// SchemaOrStringArray represents a schema or a string array\ntype SchemaOrStringArray struct {\n\tSchema   *Schema\n\tProperty []string\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif len(s.Property) > 0 {\n\t\treturn json.Marshal(s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\treturn []byte(\"null\"), nil\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif len(s.Property) > 0 {\n\t\treturn opts.MarshalNext(enc, s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\treturn enc.WriteToken(jsonv2.Null)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrStringArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tvar nw SchemaOrStringArray\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Property); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrStringArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Property)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n\n// Definitions contains the models explicitly defined in this spec\n// An object to hold data types that can be consumed and produced by operations.\n// These data types can be primitives, arrays or models.\n//\n// For more information: http://goo.gl/8us55a#definitionsObject\ntype Definitions map[string]Schema\n\n// SecurityDefinitions a declaration of the security schemes available to be used in the specification.\n// This does not enforce the security schemes on the operations and only serves to provide\n// the relevant details for each scheme.\n//\n// For more information: http://goo.gl/8us55a#securityDefinitionsObject\ntype SecurityDefinitions map[string]*SecurityScheme\n\n// StringOrArray represents a value that can either be a string\n// or an array of strings. Mainly here for serialization purposes\ntype StringOrArray []string\n\n// Contains returns true when the value is contained in the slice\nfunc (s StringOrArray) Contains(value string) bool {\n\tfor _, str := range s {\n\t\tif str == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string\nfunc (s *StringOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\n\tif first == '[' {\n\t\tvar parsed []string\n\t\tif err := json.Unmarshal(data, &parsed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*s = StringOrArray(parsed)\n\t\treturn nil\n\t}\n\n\tvar single interface{}\n\tif err := json.Unmarshal(data, &single); err != nil {\n\t\treturn err\n\t}\n\tif single == nil {\n\t\treturn nil\n\t}\n\tswitch v := single.(type) {\n\tcase string:\n\t\t*s = StringOrArray([]string{v})\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"only string or array is allowed, not %T\", single)\n\t}\n}\n\nfunc (s *StringOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '[':\n\t\t*s = StringOrArray{}\n\t\treturn opts.UnmarshalNext(dec, (*[]string)(s))\n\tcase '\"':\n\t\t*s = StringOrArray{\"\"}\n\t\treturn opts.UnmarshalNext(dec, &(*s)[0])\n\tcase 'n':\n\t\t// Throw out null token\n\t\t_, _ = dec.ReadToken()\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected string or array, not '%v'\", k.String())\n\t}\n}\n\n// MarshalJSON converts this string or array to a JSON array or JSON string\nfunc (s StringOrArray) MarshalJSON() ([]byte, error) {\n\tif len(s) == 1 {\n\t\treturn json.Marshal([]string(s)[0])\n\t}\n\treturn json.Marshal([]string(s))\n}\n\n// SchemaOrArray represents a value that can either be a Schema\n// or an array of Schema. Mainly here for serialization purposes\ntype SchemaOrArray struct {\n\tSchema  *Schema\n\tSchemas []Schema\n}\n\n// Len returns the number of schemas in this property\nfunc (s SchemaOrArray) Len() int {\n\tif s.Schema != nil {\n\t\treturn 1\n\t}\n\treturn len(s.Schemas)\n}\n\n// ContainsType returns true when one of the schemas is of the specified type\nfunc (s *SchemaOrArray) ContainsType(name string) bool {\n\tif s.Schema != nil {\n\t\treturn s.Schema.Type != nil && s.Schema.Type.Contains(name)\n\t}\n\treturn false\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schemas != nil {\n\t\treturn json.Marshal(s.Schemas)\n\t}\n\treturn json.Marshal(s.Schema)\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schemas != nil {\n\t\treturn opts.MarshalNext(enc, s.Schemas)\n\t}\n\treturn opts.MarshalNext(enc, s.Schema)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrArray\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Schemas); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Schemas)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/tag.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// TagProps describe a tag entry in the top level tags section of a swagger spec\ntype TagProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tName         string                 `json:\"name,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Tag allows adding meta data to a single tag that is used by the\n// [Operation Object](http://goo.gl/8us55a#operationObject).\n// It is not mandatory to have a Tag Object per tag used there.\n//\n// For more information: http://goo.gl/8us55a#tagObject\ntype Tag struct {\n\tVendorExtensible\n\tTagProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (t Tag) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(t)\n\t}\n\tb1, err := json.Marshal(t.TagProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(t.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (t Tag) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(t.Extensions)\n\tx.TagProps = t.TagProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (t *Tag) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, t)\n\t}\n\n\tif err := json.Unmarshal(data, &t.TagProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &t.VendorExtensible)\n}\n\nfunc (t *Tag) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tt.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tt.TagProps = x.TagProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: api.proto\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\t_ \"github.com/gogo/protobuf/gogoproto\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tgrpc \"google.golang.org/grpc\"\n\tcodes \"google.golang.org/grpc/codes\"\n\tstatus \"google.golang.org/grpc/status\"\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\ntype DevicePluginOptions struct {\n\t// Indicates if PreStartContainer call is required before each container start\n\tPreStartRequired bool `protobuf:\"varint,1,opt,name=pre_start_required,json=preStartRequired,proto3\" json:\"pre_start_required,omitempty\"`\n\t// Indicates if GetPreferredAllocation is implemented and available for calling\n\tGetPreferredAllocationAvailable bool     `protobuf:\"varint,2,opt,name=get_preferred_allocation_available,json=getPreferredAllocationAvailable,proto3\" json:\"get_preferred_allocation_available,omitempty\"`\n\tXXX_NoUnkeyedLiteral            struct{} `json:\"-\"`\n\tXXX_sizecache                   int32    `json:\"-\"`\n}\n\nfunc (m *DevicePluginOptions) Reset()      { *m = DevicePluginOptions{} }\nfunc (*DevicePluginOptions) ProtoMessage() {}\nfunc (*DevicePluginOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{0}\n}\nfunc (m *DevicePluginOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DevicePluginOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_DevicePluginOptions.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *DevicePluginOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DevicePluginOptions.Merge(m, src)\n}\nfunc (m *DevicePluginOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DevicePluginOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_DevicePluginOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DevicePluginOptions proto.InternalMessageInfo\n\nfunc (m *DevicePluginOptions) GetPreStartRequired() bool {\n\tif m != nil {\n\t\treturn m.PreStartRequired\n\t}\n\treturn false\n}\n\nfunc (m *DevicePluginOptions) GetGetPreferredAllocationAvailable() bool {\n\tif m != nil {\n\t\treturn m.GetPreferredAllocationAvailable\n\t}\n\treturn false\n}\n\ntype RegisterRequest struct {\n\t// Version of the API the Device Plugin was built against\n\tVersion string `protobuf:\"bytes,1,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// Name of the unix socket the device plugin is listening on\n\t// PATH = path.Join(DevicePluginPath, endpoint)\n\tEndpoint string `protobuf:\"bytes,2,opt,name=endpoint,proto3\" json:\"endpoint,omitempty\"`\n\t// Schedulable resource name. As of now it's expected to be a DNS Label\n\tResourceName string `protobuf:\"bytes,3,opt,name=resource_name,json=resourceName,proto3\" json:\"resource_name,omitempty\"`\n\t// Options to be communicated with Device Manager\n\tOptions              *DevicePluginOptions `protobuf:\"bytes,4,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}             `json:\"-\"`\n\tXXX_sizecache        int32                `json:\"-\"`\n}\n\nfunc (m *RegisterRequest) Reset()      { *m = RegisterRequest{} }\nfunc (*RegisterRequest) ProtoMessage() {}\nfunc (*RegisterRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{1}\n}\nfunc (m *RegisterRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RegisterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RegisterRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RegisterRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RegisterRequest.Merge(m, src)\n}\nfunc (m *RegisterRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RegisterRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_RegisterRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RegisterRequest proto.InternalMessageInfo\n\nfunc (m *RegisterRequest) GetVersion() string {\n\tif m != nil {\n\t\treturn m.Version\n\t}\n\treturn \"\"\n}\n\nfunc (m *RegisterRequest) GetEndpoint() string {\n\tif m != nil {\n\t\treturn m.Endpoint\n\t}\n\treturn \"\"\n}\n\nfunc (m *RegisterRequest) GetResourceName() string {\n\tif m != nil {\n\t\treturn m.ResourceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *RegisterRequest) GetOptions() *DevicePluginOptions {\n\tif m != nil {\n\t\treturn m.Options\n\t}\n\treturn nil\n}\n\ntype Empty struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *Empty) Reset()      { *m = Empty{} }\nfunc (*Empty) ProtoMessage() {}\nfunc (*Empty) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{2}\n}\nfunc (m *Empty) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Empty.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Empty) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Empty.Merge(m, src)\n}\nfunc (m *Empty) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Empty) XXX_DiscardUnknown() {\n\txxx_messageInfo_Empty.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Empty proto.InternalMessageInfo\n\n// ListAndWatch returns a stream of List of Devices\n// Whenever a Device state change or a Device disappears, ListAndWatch\n// returns the new list\ntype ListAndWatchResponse struct {\n\tDevices              []*Device `protobuf:\"bytes,1,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}  `json:\"-\"`\n\tXXX_sizecache        int32     `json:\"-\"`\n}\n\nfunc (m *ListAndWatchResponse) Reset()      { *m = ListAndWatchResponse{} }\nfunc (*ListAndWatchResponse) ProtoMessage() {}\nfunc (*ListAndWatchResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{3}\n}\nfunc (m *ListAndWatchResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListAndWatchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListAndWatchResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListAndWatchResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListAndWatchResponse.Merge(m, src)\n}\nfunc (m *ListAndWatchResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListAndWatchResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListAndWatchResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListAndWatchResponse proto.InternalMessageInfo\n\nfunc (m *ListAndWatchResponse) GetDevices() []*Device {\n\tif m != nil {\n\t\treturn m.Devices\n\t}\n\treturn nil\n}\n\ntype TopologyInfo struct {\n\tNodes                []*NUMANode `protobuf:\"bytes,1,rep,name=nodes,proto3\" json:\"nodes,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}    `json:\"-\"`\n\tXXX_sizecache        int32       `json:\"-\"`\n}\n\nfunc (m *TopologyInfo) Reset()      { *m = TopologyInfo{} }\nfunc (*TopologyInfo) ProtoMessage() {}\nfunc (*TopologyInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{4}\n}\nfunc (m *TopologyInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologyInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_TopologyInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *TopologyInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologyInfo.Merge(m, src)\n}\nfunc (m *TopologyInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologyInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologyInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologyInfo proto.InternalMessageInfo\n\nfunc (m *TopologyInfo) GetNodes() []*NUMANode {\n\tif m != nil {\n\t\treturn m.Nodes\n\t}\n\treturn nil\n}\n\ntype NUMANode struct {\n\tID                   int64    `protobuf:\"varint,1,opt,name=ID,proto3\" json:\"ID,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *NUMANode) Reset()      { *m = NUMANode{} }\nfunc (*NUMANode) ProtoMessage() {}\nfunc (*NUMANode) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{5}\n}\nfunc (m *NUMANode) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NUMANode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NUMANode.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NUMANode) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NUMANode.Merge(m, src)\n}\nfunc (m *NUMANode) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NUMANode) XXX_DiscardUnknown() {\n\txxx_messageInfo_NUMANode.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NUMANode proto.InternalMessageInfo\n\nfunc (m *NUMANode) GetID() int64 {\n\tif m != nil {\n\t\treturn m.ID\n\t}\n\treturn 0\n}\n\n// E.g:\n//\n//\tstruct Device {\n//\t   ID: \"GPU-fef8089b-4820-abfc-e83e-94318197576e\",\n//\t   Health: \"Healthy\",\n//\t   Topology:\n//\t     Node:\n//\t       ID: 1\n//\t}\ntype Device struct {\n\t// A unique ID assigned by the device plugin used\n\t// to identify devices during the communication\n\t// Max length of this field is 63 characters\n\tID string `protobuf:\"bytes,1,opt,name=ID,proto3\" json:\"ID,omitempty\"`\n\t// Health of the device, can be healthy or unhealthy, see constants.go\n\tHealth string `protobuf:\"bytes,2,opt,name=health,proto3\" json:\"health,omitempty\"`\n\t// Topology for device\n\tTopology             *TopologyInfo `protobuf:\"bytes,3,opt,name=topology,proto3\" json:\"topology,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}      `json:\"-\"`\n\tXXX_sizecache        int32         `json:\"-\"`\n}\n\nfunc (m *Device) Reset()      { *m = Device{} }\nfunc (*Device) ProtoMessage() {}\nfunc (*Device) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{6}\n}\nfunc (m *Device) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Device.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Device) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Device.Merge(m, src)\n}\nfunc (m *Device) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Device) XXX_DiscardUnknown() {\n\txxx_messageInfo_Device.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Device proto.InternalMessageInfo\n\nfunc (m *Device) GetID() string {\n\tif m != nil {\n\t\treturn m.ID\n\t}\n\treturn \"\"\n}\n\nfunc (m *Device) GetHealth() string {\n\tif m != nil {\n\t\treturn m.Health\n\t}\n\treturn \"\"\n}\n\nfunc (m *Device) GetTopology() *TopologyInfo {\n\tif m != nil {\n\t\treturn m.Topology\n\t}\n\treturn nil\n}\n\n//   - PreStartContainer is expected to be called before each container start if indicated by plugin during registration phase.\n//   - PreStartContainer allows kubelet to pass reinitialized devices to containers.\n//   - PreStartContainer allows Device Plugin to run device specific operations on\n//     the Devices requested\ntype PreStartContainerRequest struct {\n\tDevicesIDs           []string `protobuf:\"bytes,1,rep,name=devices_ids,json=devicesIds,proto3\" json:\"devices_ids,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PreStartContainerRequest) Reset()      { *m = PreStartContainerRequest{} }\nfunc (*PreStartContainerRequest) ProtoMessage() {}\nfunc (*PreStartContainerRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{7}\n}\nfunc (m *PreStartContainerRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreStartContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PreStartContainerRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PreStartContainerRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreStartContainerRequest.Merge(m, src)\n}\nfunc (m *PreStartContainerRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreStartContainerRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreStartContainerRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreStartContainerRequest proto.InternalMessageInfo\n\nfunc (m *PreStartContainerRequest) GetDevicesIDs() []string {\n\tif m != nil {\n\t\treturn m.DevicesIDs\n\t}\n\treturn nil\n}\n\n// PreStartContainerResponse will be send by plugin in response to PreStartContainerRequest\ntype PreStartContainerResponse struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *PreStartContainerResponse) Reset()      { *m = PreStartContainerResponse{} }\nfunc (*PreStartContainerResponse) ProtoMessage() {}\nfunc (*PreStartContainerResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{8}\n}\nfunc (m *PreStartContainerResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreStartContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PreStartContainerResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PreStartContainerResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreStartContainerResponse.Merge(m, src)\n}\nfunc (m *PreStartContainerResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreStartContainerResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreStartContainerResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreStartContainerResponse proto.InternalMessageInfo\n\n// PreferredAllocationRequest is passed via a call to GetPreferredAllocation()\n// at pod admission time. The device plugin should take the list of\n// `available_deviceIDs` and calculate a preferred allocation of size\n// 'allocation_size' from them, making sure to include the set of devices\n// listed in 'must_include_deviceIDs'.\ntype PreferredAllocationRequest struct {\n\tContainerRequests    []*ContainerPreferredAllocationRequest `protobuf:\"bytes,1,rep,name=container_requests,json=containerRequests,proto3\" json:\"container_requests,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                               `json:\"-\"`\n\tXXX_sizecache        int32                                  `json:\"-\"`\n}\n\nfunc (m *PreferredAllocationRequest) Reset()      { *m = PreferredAllocationRequest{} }\nfunc (*PreferredAllocationRequest) ProtoMessage() {}\nfunc (*PreferredAllocationRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{9}\n}\nfunc (m *PreferredAllocationRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferredAllocationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PreferredAllocationRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PreferredAllocationRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferredAllocationRequest.Merge(m, src)\n}\nfunc (m *PreferredAllocationRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferredAllocationRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferredAllocationRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferredAllocationRequest proto.InternalMessageInfo\n\nfunc (m *PreferredAllocationRequest) GetContainerRequests() []*ContainerPreferredAllocationRequest {\n\tif m != nil {\n\t\treturn m.ContainerRequests\n\t}\n\treturn nil\n}\n\ntype ContainerPreferredAllocationRequest struct {\n\t// List of available deviceIDs from which to choose a preferred allocation\n\tAvailableDeviceIDs []string `protobuf:\"bytes,1,rep,name=available_deviceIDs,json=availableDeviceIDs,proto3\" json:\"available_deviceIDs,omitempty\"`\n\t// List of deviceIDs that must be included in the preferred allocation\n\tMustIncludeDeviceIDs []string `protobuf:\"bytes,2,rep,name=must_include_deviceIDs,json=mustIncludeDeviceIDs,proto3\" json:\"must_include_deviceIDs,omitempty\"`\n\t// Number of devices to include in the preferred allocation\n\tAllocationSize       int32    `protobuf:\"varint,3,opt,name=allocation_size,json=allocationSize,proto3\" json:\"allocation_size,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerPreferredAllocationRequest) Reset()      { *m = ContainerPreferredAllocationRequest{} }\nfunc (*ContainerPreferredAllocationRequest) ProtoMessage() {}\nfunc (*ContainerPreferredAllocationRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{10}\n}\nfunc (m *ContainerPreferredAllocationRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerPreferredAllocationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerPreferredAllocationRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerPreferredAllocationRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerPreferredAllocationRequest.Merge(m, src)\n}\nfunc (m *ContainerPreferredAllocationRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerPreferredAllocationRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerPreferredAllocationRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerPreferredAllocationRequest proto.InternalMessageInfo\n\nfunc (m *ContainerPreferredAllocationRequest) GetAvailableDeviceIDs() []string {\n\tif m != nil {\n\t\treturn m.AvailableDeviceIDs\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerPreferredAllocationRequest) GetMustIncludeDeviceIDs() []string {\n\tif m != nil {\n\t\treturn m.MustIncludeDeviceIDs\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerPreferredAllocationRequest) GetAllocationSize() int32 {\n\tif m != nil {\n\t\treturn m.AllocationSize\n\t}\n\treturn 0\n}\n\n// PreferredAllocationResponse returns a preferred allocation,\n// resulting from a PreferredAllocationRequest.\ntype PreferredAllocationResponse struct {\n\tContainerResponses   []*ContainerPreferredAllocationResponse `protobuf:\"bytes,1,rep,name=container_responses,json=containerResponses,proto3\" json:\"container_responses,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                                `json:\"-\"`\n\tXXX_sizecache        int32                                   `json:\"-\"`\n}\n\nfunc (m *PreferredAllocationResponse) Reset()      { *m = PreferredAllocationResponse{} }\nfunc (*PreferredAllocationResponse) ProtoMessage() {}\nfunc (*PreferredAllocationResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{11}\n}\nfunc (m *PreferredAllocationResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferredAllocationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PreferredAllocationResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PreferredAllocationResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferredAllocationResponse.Merge(m, src)\n}\nfunc (m *PreferredAllocationResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferredAllocationResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferredAllocationResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferredAllocationResponse proto.InternalMessageInfo\n\nfunc (m *PreferredAllocationResponse) GetContainerResponses() []*ContainerPreferredAllocationResponse {\n\tif m != nil {\n\t\treturn m.ContainerResponses\n\t}\n\treturn nil\n}\n\ntype ContainerPreferredAllocationResponse struct {\n\tDeviceIDs            []string `protobuf:\"bytes,1,rep,name=deviceIDs,proto3\" json:\"deviceIDs,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerPreferredAllocationResponse) Reset()      { *m = ContainerPreferredAllocationResponse{} }\nfunc (*ContainerPreferredAllocationResponse) ProtoMessage() {}\nfunc (*ContainerPreferredAllocationResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{12}\n}\nfunc (m *ContainerPreferredAllocationResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerPreferredAllocationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerPreferredAllocationResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerPreferredAllocationResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerPreferredAllocationResponse.Merge(m, src)\n}\nfunc (m *ContainerPreferredAllocationResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerPreferredAllocationResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerPreferredAllocationResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerPreferredAllocationResponse proto.InternalMessageInfo\n\nfunc (m *ContainerPreferredAllocationResponse) GetDeviceIDs() []string {\n\tif m != nil {\n\t\treturn m.DeviceIDs\n\t}\n\treturn nil\n}\n\n//   - Allocate is expected to be called during pod creation since allocation\n//     failures for any container would result in pod startup failure.\n//   - Allocate allows kubelet to exposes additional artifacts in a pod's\n//     environment as directed by the plugin.\n//   - Allocate allows Device Plugin to run device specific operations on\n//     the Devices requested\ntype AllocateRequest struct {\n\tContainerRequests    []*ContainerAllocateRequest `protobuf:\"bytes,1,rep,name=container_requests,json=containerRequests,proto3\" json:\"container_requests,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                    `json:\"-\"`\n\tXXX_sizecache        int32                       `json:\"-\"`\n}\n\nfunc (m *AllocateRequest) Reset()      { *m = AllocateRequest{} }\nfunc (*AllocateRequest) ProtoMessage() {}\nfunc (*AllocateRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{13}\n}\nfunc (m *AllocateRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AllocateRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AllocateRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocateRequest.Merge(m, src)\n}\nfunc (m *AllocateRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocateRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocateRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocateRequest proto.InternalMessageInfo\n\nfunc (m *AllocateRequest) GetContainerRequests() []*ContainerAllocateRequest {\n\tif m != nil {\n\t\treturn m.ContainerRequests\n\t}\n\treturn nil\n}\n\ntype ContainerAllocateRequest struct {\n\tDevicesIDs           []string `protobuf:\"bytes,1,rep,name=devices_ids,json=devicesIds,proto3\" json:\"devices_ids,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerAllocateRequest) Reset()      { *m = ContainerAllocateRequest{} }\nfunc (*ContainerAllocateRequest) ProtoMessage() {}\nfunc (*ContainerAllocateRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{14}\n}\nfunc (m *ContainerAllocateRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerAllocateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerAllocateRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerAllocateRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerAllocateRequest.Merge(m, src)\n}\nfunc (m *ContainerAllocateRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerAllocateRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerAllocateRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerAllocateRequest proto.InternalMessageInfo\n\nfunc (m *ContainerAllocateRequest) GetDevicesIDs() []string {\n\tif m != nil {\n\t\treturn m.DevicesIDs\n\t}\n\treturn nil\n}\n\n// AllocateResponse includes the artifacts that needs to be injected into\n// a container for accessing 'deviceIDs' that were mentioned as part of\n// 'AllocateRequest'.\n// Failure Handling:\n// if Kubelet sends an allocation request for dev1 and dev2.\n// Allocation on dev1 succeeds but allocation on dev2 fails.\n// The Device plugin should send a ListAndWatch update and fail the\n// Allocation request\ntype AllocateResponse struct {\n\tContainerResponses   []*ContainerAllocateResponse `protobuf:\"bytes,1,rep,name=container_responses,json=containerResponses,proto3\" json:\"container_responses,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}                     `json:\"-\"`\n\tXXX_sizecache        int32                        `json:\"-\"`\n}\n\nfunc (m *AllocateResponse) Reset()      { *m = AllocateResponse{} }\nfunc (*AllocateResponse) ProtoMessage() {}\nfunc (*AllocateResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{15}\n}\nfunc (m *AllocateResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AllocateResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AllocateResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocateResponse.Merge(m, src)\n}\nfunc (m *AllocateResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocateResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocateResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocateResponse proto.InternalMessageInfo\n\nfunc (m *AllocateResponse) GetContainerResponses() []*ContainerAllocateResponse {\n\tif m != nil {\n\t\treturn m.ContainerResponses\n\t}\n\treturn nil\n}\n\ntype ContainerAllocateResponse struct {\n\t// List of environment variable to be set in the container to access one of more devices.\n\tEnvs map[string]string `protobuf:\"bytes,1,rep,name=envs,proto3\" json:\"envs,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// Mounts for the container.\n\tMounts []*Mount `protobuf:\"bytes,2,rep,name=mounts,proto3\" json:\"mounts,omitempty\"`\n\t// Devices for the container.\n\tDevices []*DeviceSpec `protobuf:\"bytes,3,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\t// Container annotations to pass to the container runtime\n\tAnnotations          map[string]string `protobuf:\"bytes,4,rep,name=annotations,proto3\" json:\"annotations,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tXXX_NoUnkeyedLiteral struct{}          `json:\"-\"`\n\tXXX_sizecache        int32             `json:\"-\"`\n}\n\nfunc (m *ContainerAllocateResponse) Reset()      { *m = ContainerAllocateResponse{} }\nfunc (*ContainerAllocateResponse) ProtoMessage() {}\nfunc (*ContainerAllocateResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{16}\n}\nfunc (m *ContainerAllocateResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerAllocateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerAllocateResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerAllocateResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerAllocateResponse.Merge(m, src)\n}\nfunc (m *ContainerAllocateResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerAllocateResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerAllocateResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerAllocateResponse proto.InternalMessageInfo\n\nfunc (m *ContainerAllocateResponse) GetEnvs() map[string]string {\n\tif m != nil {\n\t\treturn m.Envs\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerAllocateResponse) GetMounts() []*Mount {\n\tif m != nil {\n\t\treturn m.Mounts\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerAllocateResponse) GetDevices() []*DeviceSpec {\n\tif m != nil {\n\t\treturn m.Devices\n\t}\n\treturn nil\n}\n\nfunc (m *ContainerAllocateResponse) GetAnnotations() map[string]string {\n\tif m != nil {\n\t\treturn m.Annotations\n\t}\n\treturn nil\n}\n\n// Mount specifies a host volume to mount into a container.\n// where device library or tools are installed on host and container\ntype Mount struct {\n\t// Path of the mount within the container.\n\tContainerPath string `protobuf:\"bytes,1,opt,name=container_path,json=containerPath,proto3\" json:\"container_path,omitempty\"`\n\t// Path of the mount on the host.\n\tHostPath string `protobuf:\"bytes,2,opt,name=host_path,json=hostPath,proto3\" json:\"host_path,omitempty\"`\n\t// If set, the mount is read-only.\n\tReadOnly             bool     `protobuf:\"varint,3,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *Mount) Reset()      { *m = Mount{} }\nfunc (*Mount) ProtoMessage() {}\nfunc (*Mount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{17}\n}\nfunc (m *Mount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Mount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Mount.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Mount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Mount.Merge(m, src)\n}\nfunc (m *Mount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Mount) XXX_DiscardUnknown() {\n\txxx_messageInfo_Mount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Mount proto.InternalMessageInfo\n\nfunc (m *Mount) GetContainerPath() string {\n\tif m != nil {\n\t\treturn m.ContainerPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Mount) GetHostPath() string {\n\tif m != nil {\n\t\treturn m.HostPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *Mount) GetReadOnly() bool {\n\tif m != nil {\n\t\treturn m.ReadOnly\n\t}\n\treturn false\n}\n\n// DeviceSpec specifies a host device to mount into a container.\ntype DeviceSpec struct {\n\t// Path of the device within the container.\n\tContainerPath string `protobuf:\"bytes,1,opt,name=container_path,json=containerPath,proto3\" json:\"container_path,omitempty\"`\n\t// Path of the device on the host.\n\tHostPath string `protobuf:\"bytes,2,opt,name=host_path,json=hostPath,proto3\" json:\"host_path,omitempty\"`\n\t// Cgroups permissions of the device, candidates are one or more of\n\t// * r - allows container to read from the specified device.\n\t// * w - allows container to write to the specified device.\n\t// * m - allows container to create device files that do not yet exist.\n\tPermissions          string   `protobuf:\"bytes,3,opt,name=permissions,proto3\" json:\"permissions,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *DeviceSpec) Reset()      { *m = DeviceSpec{} }\nfunc (*DeviceSpec) ProtoMessage() {}\nfunc (*DeviceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{18}\n}\nfunc (m *DeviceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_DeviceSpec.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *DeviceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceSpec.Merge(m, src)\n}\nfunc (m *DeviceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceSpec proto.InternalMessageInfo\n\nfunc (m *DeviceSpec) GetContainerPath() string {\n\tif m != nil {\n\t\treturn m.ContainerPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *DeviceSpec) GetHostPath() string {\n\tif m != nil {\n\t\treturn m.HostPath\n\t}\n\treturn \"\"\n}\n\nfunc (m *DeviceSpec) GetPermissions() string {\n\tif m != nil {\n\t\treturn m.Permissions\n\t}\n\treturn \"\"\n}\n\nfunc init() {\n\tproto.RegisterType((*DevicePluginOptions)(nil), \"v1beta1.DevicePluginOptions\")\n\tproto.RegisterType((*RegisterRequest)(nil), \"v1beta1.RegisterRequest\")\n\tproto.RegisterType((*Empty)(nil), \"v1beta1.Empty\")\n\tproto.RegisterType((*ListAndWatchResponse)(nil), \"v1beta1.ListAndWatchResponse\")\n\tproto.RegisterType((*TopologyInfo)(nil), \"v1beta1.TopologyInfo\")\n\tproto.RegisterType((*NUMANode)(nil), \"v1beta1.NUMANode\")\n\tproto.RegisterType((*Device)(nil), \"v1beta1.Device\")\n\tproto.RegisterType((*PreStartContainerRequest)(nil), \"v1beta1.PreStartContainerRequest\")\n\tproto.RegisterType((*PreStartContainerResponse)(nil), \"v1beta1.PreStartContainerResponse\")\n\tproto.RegisterType((*PreferredAllocationRequest)(nil), \"v1beta1.PreferredAllocationRequest\")\n\tproto.RegisterType((*ContainerPreferredAllocationRequest)(nil), \"v1beta1.ContainerPreferredAllocationRequest\")\n\tproto.RegisterType((*PreferredAllocationResponse)(nil), \"v1beta1.PreferredAllocationResponse\")\n\tproto.RegisterType((*ContainerPreferredAllocationResponse)(nil), \"v1beta1.ContainerPreferredAllocationResponse\")\n\tproto.RegisterType((*AllocateRequest)(nil), \"v1beta1.AllocateRequest\")\n\tproto.RegisterType((*ContainerAllocateRequest)(nil), \"v1beta1.ContainerAllocateRequest\")\n\tproto.RegisterType((*AllocateResponse)(nil), \"v1beta1.AllocateResponse\")\n\tproto.RegisterType((*ContainerAllocateResponse)(nil), \"v1beta1.ContainerAllocateResponse\")\n\tproto.RegisterMapType((map[string]string)(nil), \"v1beta1.ContainerAllocateResponse.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"v1beta1.ContainerAllocateResponse.EnvsEntry\")\n\tproto.RegisterType((*Mount)(nil), \"v1beta1.Mount\")\n\tproto.RegisterType((*DeviceSpec)(nil), \"v1beta1.DeviceSpec\")\n}\n\nfunc init() { proto.RegisterFile(\"api.proto\", fileDescriptor_00212fb1f9d3bf1c) }\n\nvar fileDescriptor_00212fb1f9d3bf1c = []byte{\n\t// 1044 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0x1b, 0x45,\n\t0x14, 0xce, 0xc6, 0x4d, 0x62, 0x1f, 0xa7, 0xf9, 0x99, 0x84, 0xc8, 0xd9, 0x14, 0x37, 0x9d, 0x14,\n\t0x1a, 0xa4, 0xc4, 0x26, 0x2e, 0x6a, 0x2b, 0x2e, 0x10, 0x2e, 0x0e, 0x60, 0x42, 0xd3, 0x68, 0x43,\n\t0x85, 0x04, 0x08, 0x6b, 0xbc, 0x3b, 0xb1, 0x57, 0x59, 0xcf, 0x2c, 0x3b, 0x63, 0x4b, 0xae, 0x84,\n\t0xc4, 0x05, 0x0f, 0xd0, 0x77, 0x80, 0x57, 0xe0, 0x1d, 0x7a, 0xc9, 0x25, 0x57, 0x88, 0x9a, 0x17,\n\t0x41, 0x9e, 0xd9, 0x3f, 0x6d, 0x36, 0x56, 0x2a, 0x71, 0xe7, 0x39, 0xe7, 0x7c, 0xe7, 0xe7, 0x3b,\n\t0x67, 0xcf, 0x31, 0x94, 0x88, 0xef, 0xd6, 0xfc, 0x80, 0x4b, 0x8e, 0x96, 0x46, 0x47, 0x5d, 0x2a,\n\t0xc9, 0x91, 0x79, 0xd8, 0x73, 0x65, 0x7f, 0xd8, 0xad, 0xd9, 0x7c, 0x50, 0xef, 0xf1, 0x1e, 0xaf,\n\t0x2b, 0x7d, 0x77, 0x78, 0xa1, 0x5e, 0xea, 0xa1, 0x7e, 0x69, 0x1c, 0x7e, 0x65, 0xc0, 0x46, 0x8b,\n\t0x8e, 0x5c, 0x9b, 0x9e, 0x79, 0xc3, 0x9e, 0xcb, 0x9e, 0xfb, 0xd2, 0xe5, 0x4c, 0xa0, 0x03, 0x40,\n\t0x7e, 0x40, 0x3b, 0x42, 0x92, 0x40, 0x76, 0x02, 0xfa, 0xd3, 0xd0, 0x0d, 0xa8, 0x53, 0x31, 0x76,\n\t0x8d, 0xfd, 0xa2, 0xb5, 0xe6, 0x07, 0xf4, 0x7c, 0xaa, 0xb0, 0x42, 0x39, 0x3a, 0x01, 0xdc, 0xa3,\n\t0xb2, 0xe3, 0x07, 0xf4, 0x82, 0x06, 0x01, 0x75, 0x3a, 0xc4, 0xf3, 0xb8, 0x4d, 0xa6, 0xae, 0x3a,\n\t0x64, 0x44, 0x5c, 0x8f, 0x74, 0x3d, 0x5a, 0x99, 0x57, 0xe8, 0xbb, 0x3d, 0x2a, 0xcf, 0x22, 0xc3,\n\t0x66, 0x6c, 0xd7, 0x8c, 0xcc, 0xf0, 0xef, 0x06, 0xac, 0x5a, 0xb4, 0xe7, 0x0a, 0x49, 0x83, 0x69,\n\t0x04, 0x2a, 0x24, 0xaa, 0xc0, 0xd2, 0x88, 0x06, 0xc2, 0xe5, 0x4c, 0xe5, 0x50, 0xb2, 0xa2, 0x27,\n\t0x32, 0xa1, 0x48, 0x99, 0xe3, 0x73, 0x97, 0x49, 0x15, 0xa0, 0x64, 0xc5, 0x6f, 0xb4, 0x07, 0xb7,\n\t0x03, 0x2a, 0xf8, 0x30, 0xb0, 0x69, 0x87, 0x91, 0x01, 0xad, 0x14, 0x94, 0xc1, 0x72, 0x24, 0x3c,\n\t0x25, 0x03, 0x8a, 0x1e, 0xc1, 0x12, 0xd7, 0x45, 0x57, 0x6e, 0xed, 0x1a, 0xfb, 0xe5, 0xc6, 0x9d,\n\t0x5a, 0xc8, 0x65, 0x2d, 0x87, 0x18, 0x2b, 0x32, 0xc6, 0x4b, 0xb0, 0x70, 0x3c, 0xf0, 0xe5, 0x18,\n\t0x37, 0x61, 0xf3, 0x6b, 0x57, 0xc8, 0x26, 0x73, 0xbe, 0x25, 0xd2, 0xee, 0x5b, 0x54, 0xf8, 0x9c,\n\t0x09, 0x8a, 0x3e, 0x80, 0x25, 0x47, 0x39, 0x10, 0x15, 0x63, 0xb7, 0xb0, 0x5f, 0x6e, 0xac, 0x66,\n\t0x1c, 0x5b, 0x91, 0x1e, 0x3f, 0x86, 0xe5, 0x6f, 0xb8, 0xcf, 0x3d, 0xde, 0x1b, 0xb7, 0xd9, 0x05,\n\t0x47, 0x0f, 0x60, 0x81, 0x71, 0x27, 0x06, 0xae, 0xc7, 0xc0, 0xd3, 0x17, 0xcf, 0x9a, 0xa7, 0xdc,\n\t0xa1, 0x96, 0xd6, 0x63, 0x13, 0x8a, 0x91, 0x08, 0xad, 0xc0, 0x7c, 0xbb, 0xa5, 0xe8, 0x29, 0x58,\n\t0xf3, 0xed, 0x16, 0xb6, 0x61, 0x51, 0xc7, 0x49, 0x69, 0x4a, 0x53, 0x0d, 0xda, 0x82, 0xc5, 0x3e,\n\t0x25, 0x9e, 0xec, 0x87, 0x8c, 0x85, 0x2f, 0x74, 0x04, 0x45, 0x19, 0xa6, 0xa1, 0xa8, 0x2a, 0x37,\n\t0xde, 0x89, 0x23, 0xa7, 0xf3, 0xb3, 0x62, 0x33, 0x7c, 0x02, 0x95, 0xb3, 0x70, 0x1a, 0x3e, 0xe3,\n\t0x4c, 0x12, 0x97, 0x25, 0x4d, 0xab, 0x43, 0x39, 0x2c, 0xb0, 0xe3, 0x3a, 0xba, 0x96, 0xd2, 0xd3,\n\t0x95, 0xc9, 0xdf, 0x77, 0x41, 0xe7, 0x25, 0xda, 0x2d, 0x61, 0x41, 0x68, 0xd2, 0x76, 0x04, 0xde,\n\t0x81, 0xed, 0x1c, 0x67, 0x9a, 0x4e, 0x3c, 0x06, 0x33, 0x67, 0x6c, 0xa2, 0x58, 0xdf, 0x03, 0xb2,\n\t0x23, 0x88, 0x9a, 0x57, 0x2a, 0x64, 0x44, 0xdf, 0x41, 0x5c, 0x44, 0xec, 0xf5, 0x7a, 0x4f, 0xd6,\n\t0xba, 0x9d, 0xa9, 0x43, 0xe0, 0x3f, 0x0c, 0xd8, 0xbb, 0x01, 0x14, 0xd5, 0x61, 0x23, 0x9e, 0xf6,\n\t0x8e, 0xae, 0xab, 0xdd, 0x0a, 0x0b, 0xb7, 0x50, 0xac, 0x6a, 0x45, 0x1a, 0xf4, 0x11, 0x6c, 0x0d,\n\t0x86, 0x42, 0x76, 0x5c, 0x66, 0x7b, 0x43, 0x27, 0x8d, 0x99, 0x57, 0x98, 0xcd, 0xa9, 0xb6, 0xad,\n\t0x95, 0x09, 0xea, 0x01, 0xac, 0xa6, 0xbe, 0x2f, 0xe1, 0xbe, 0xd4, 0x83, 0xbd, 0x60, 0xad, 0x24,\n\t0xe2, 0x73, 0xf7, 0x25, 0xc5, 0x3f, 0xc3, 0x4e, 0x6e, 0xb6, 0xe1, 0x80, 0xfe, 0x08, 0x1b, 0x69,\n\t0xce, 0xb4, 0x34, 0x22, 0xed, 0xf0, 0x86, 0xa4, 0x69, 0x94, 0x85, 0xec, 0x6c, 0xc3, 0x04, 0x6e,\n\t0xc1, 0xfd, 0x9b, 0x60, 0xd1, 0x1d, 0x28, 0x65, 0xc9, 0x4a, 0x04, 0xd8, 0x86, 0xd5, 0x10, 0x43,\n\t0x23, 0x9e, 0xcf, 0x66, 0x34, 0xfb, 0xde, 0xd5, 0xbc, 0x33, 0xf0, 0xbc, 0x0e, 0x9f, 0x40, 0xe5,\n\t0x3a, 0xf3, 0xb7, 0x1f, 0xe3, 0x1e, 0xac, 0x25, 0x3e, 0xc2, 0x1a, 0xcf, 0x67, 0x71, 0x8d, 0x67,\n\t0xe5, 0x3c, 0x83, 0xe0, 0x5f, 0x0b, 0xb0, 0x7d, 0x2d, 0x02, 0x7d, 0x0a, 0xb7, 0x28, 0x1b, 0xcd,\n\t0xf8, 0x08, 0xb2, 0x88, 0xda, 0x31, 0x1b, 0x89, 0x63, 0x26, 0x83, 0xb1, 0xa5, 0x90, 0xe8, 0x7d,\n\t0x58, 0x1c, 0xf0, 0x21, 0x93, 0x7a, 0x1c, 0xcb, 0x8d, 0x95, 0xd8, 0xc7, 0xb3, 0xa9, 0xd8, 0x0a,\n\t0xb5, 0xe8, 0x30, 0xd9, 0x74, 0x05, 0x65, 0xb8, 0x91, 0xd9, 0x74, 0xe7, 0x3e, 0xb5, 0xe3, 0x6d,\n\t0x87, 0x5e, 0x40, 0x99, 0x30, 0xc6, 0x25, 0x89, 0xb6, 0xee, 0x14, 0xf2, 0xf0, 0x06, 0xf9, 0x35,\n\t0x13, 0x94, 0x4e, 0x33, 0xed, 0xc7, 0x7c, 0x0c, 0xa5, 0xb8, 0x00, 0xb4, 0x06, 0x85, 0x4b, 0x3a,\n\t0x0e, 0x77, 0xde, 0xf4, 0x27, 0xda, 0x84, 0x85, 0x11, 0xf1, 0x86, 0x34, 0xdc, 0x79, 0xfa, 0xf1,\n\t0xf1, 0xfc, 0x13, 0xc3, 0xfc, 0x04, 0xd6, 0xb2, 0x9e, 0xdf, 0x06, 0x8f, 0xfb, 0xb0, 0xa0, 0xf8,\n\t0x40, 0xef, 0xc1, 0x4a, 0xd2, 0x64, 0x9f, 0xc8, 0x7e, 0x88, 0xbf, 0x1d, 0x4b, 0xcf, 0x88, 0xec,\n\t0xa3, 0x1d, 0x28, 0xf5, 0xb9, 0x90, 0xda, 0x22, 0xbc, 0x59, 0x53, 0x41, 0xa4, 0x0c, 0x28, 0x71,\n\t0x3a, 0x9c, 0x79, 0x7a, 0x09, 0x17, 0xad, 0xe2, 0x54, 0xf0, 0x9c, 0x79, 0x63, 0x1c, 0x00, 0x24,\n\t0x84, 0xfe, 0x2f, 0xe1, 0x76, 0xa1, 0xec, 0xd3, 0x60, 0xe0, 0x0a, 0xa1, 0x7a, 0xa1, 0x0f, 0x64,\n\t0x5a, 0xd4, 0xf8, 0x1c, 0x96, 0xf5, 0x35, 0x0e, 0x14, 0x3f, 0xe8, 0x11, 0x14, 0xa3, 0xeb, 0x8c,\n\t0x2a, 0x71, 0xd3, 0x32, 0x07, 0xdb, 0x4c, 0x46, 0x45, 0x1f, 0xc9, 0xb9, 0xc6, 0x6f, 0x05, 0x58,\n\t0x4e, 0x1f, 0x54, 0xf4, 0x25, 0x6c, 0x7d, 0x41, 0x65, 0xde, 0x9f, 0x8f, 0x0c, 0xd8, 0x9c, 0x79,\n\t0x91, 0xf1, 0x1c, 0x6a, 0xc2, 0x72, 0xfa, 0x02, 0x5f, 0xc1, 0xbf, 0x1b, 0xbf, 0xf3, 0x0e, 0x35,\n\t0x9e, 0xfb, 0xd0, 0x40, 0x54, 0x25, 0x93, 0xb3, 0xa5, 0xd0, 0x5e, 0x0c, 0xbe, 0x7e, 0xf3, 0x9b,\n\t0xf7, 0x67, 0x1b, 0x45, 0x81, 0x50, 0x13, 0x8a, 0xd1, 0x54, 0xa7, 0xc8, 0xcb, 0x6c, 0x1c, 0x73,\n\t0x3b, 0x47, 0x13, 0xbb, 0xf8, 0x01, 0xd6, 0xaf, 0x1c, 0x49, 0x74, 0x2f, 0x1d, 0x3f, 0xf7, 0x1a,\n\t0x9b, 0x78, 0x96, 0x49, 0xe4, 0xfd, 0xe9, 0x57, 0xaf, 0xdf, 0x54, 0x8d, 0xbf, 0xde, 0x54, 0xe7,\n\t0x7e, 0x99, 0x54, 0x8d, 0xd7, 0x93, 0xaa, 0xf1, 0xe7, 0xa4, 0x6a, 0xfc, 0x33, 0xa9, 0x1a, 0xaf,\n\t0xfe, 0xad, 0xce, 0x7d, 0x77, 0x70, 0xf9, 0x44, 0xd4, 0x5c, 0x5e, 0xbf, 0x1c, 0x76, 0xa9, 0x47,\n\t0x65, 0xdd, 0xbf, 0xec, 0xd5, 0x89, 0xef, 0x8a, 0xba, 0xfe, 0xb4, 0x7d, 0xd5, 0x97, 0x7a, 0x18,\n\t0xa7, 0xbb, 0xa8, 0xfe, 0x62, 0x3e, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xe2, 0xf2, 0x09, 0x79,\n\t0xa7, 0x0a, 0x00, 0x00,\n}\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ context.Context\nvar _ grpc.ClientConn\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the grpc package it is being compiled against.\nconst _ = grpc.SupportPackageIsVersion4\n\n// RegistrationClient is the client API for Registration service.\n//\n// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.\ntype RegistrationClient interface {\n\tRegister(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*Empty, error)\n}\n\ntype registrationClient struct {\n\tcc *grpc.ClientConn\n}\n\nfunc NewRegistrationClient(cc *grpc.ClientConn) RegistrationClient {\n\treturn &registrationClient{cc}\n}\n\nfunc (c *registrationClient) Register(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*Empty, error) {\n\tout := new(Empty)\n\terr := c.cc.Invoke(ctx, \"/v1beta1.Registration/Register\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\n// RegistrationServer is the server API for Registration service.\ntype RegistrationServer interface {\n\tRegister(context.Context, *RegisterRequest) (*Empty, error)\n}\n\n// UnimplementedRegistrationServer can be embedded to have forward compatible implementations.\ntype UnimplementedRegistrationServer struct {\n}\n\nfunc (*UnimplementedRegistrationServer) Register(ctx context.Context, req *RegisterRequest) (*Empty, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Register not implemented\")\n}\n\nfunc RegisterRegistrationServer(s *grpc.Server, srv RegistrationServer) {\n\ts.RegisterService(&_Registration_serviceDesc, srv)\n}\n\nfunc _Registration_Register_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(RegisterRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(RegistrationServer).Register(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1beta1.Registration/Register\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(RegistrationServer).Register(ctx, req.(*RegisterRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nvar _Registration_serviceDesc = grpc.ServiceDesc{\n\tServiceName: \"v1beta1.Registration\",\n\tHandlerType: (*RegistrationServer)(nil),\n\tMethods: []grpc.MethodDesc{\n\t\t{\n\t\t\tMethodName: \"Register\",\n\t\t\tHandler:    _Registration_Register_Handler,\n\t\t},\n\t},\n\tStreams:  []grpc.StreamDesc{},\n\tMetadata: \"api.proto\",\n}\n\n// DevicePluginClient is the client API for DevicePlugin service.\n//\n// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.\ntype DevicePluginClient interface {\n\t// GetDevicePluginOptions returns options to be communicated with Device\n\t// Manager\n\tGetDevicePluginOptions(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DevicePluginOptions, error)\n\t// ListAndWatch returns a stream of List of Devices\n\t// Whenever a Device state change or a Device disappears, ListAndWatch\n\t// returns the new list\n\tListAndWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (DevicePlugin_ListAndWatchClient, error)\n\t// GetPreferredAllocation returns a preferred set of devices to allocate\n\t// from a list of available ones. The resulting preferred allocation is not\n\t// guaranteed to be the allocation ultimately performed by the\n\t// devicemanager. It is only designed to help the devicemanager make a more\n\t// informed allocation decision when possible.\n\tGetPreferredAllocation(ctx context.Context, in *PreferredAllocationRequest, opts ...grpc.CallOption) (*PreferredAllocationResponse, error)\n\t// Allocate is called during container creation so that the Device\n\t// Plugin can run device specific operations and instruct Kubelet\n\t// of the steps to make the Device available in the container\n\tAllocate(ctx context.Context, in *AllocateRequest, opts ...grpc.CallOption) (*AllocateResponse, error)\n\t// PreStartContainer is called, if indicated by Device Plugin during registeration phase,\n\t// before each container start. Device plugin can run device specific operations\n\t// such as resetting the device before making devices available to the container\n\tPreStartContainer(ctx context.Context, in *PreStartContainerRequest, opts ...grpc.CallOption) (*PreStartContainerResponse, error)\n}\n\ntype devicePluginClient struct {\n\tcc *grpc.ClientConn\n}\n\nfunc NewDevicePluginClient(cc *grpc.ClientConn) DevicePluginClient {\n\treturn &devicePluginClient{cc}\n}\n\nfunc (c *devicePluginClient) GetDevicePluginOptions(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DevicePluginOptions, error) {\n\tout := new(DevicePluginOptions)\n\terr := c.cc.Invoke(ctx, \"/v1beta1.DevicePlugin/GetDevicePluginOptions\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *devicePluginClient) ListAndWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (DevicePlugin_ListAndWatchClient, error) {\n\tstream, err := c.cc.NewStream(ctx, &_DevicePlugin_serviceDesc.Streams[0], \"/v1beta1.DevicePlugin/ListAndWatch\", opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tx := &devicePluginListAndWatchClient{stream}\n\tif err := x.ClientStream.SendMsg(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := x.ClientStream.CloseSend(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn x, nil\n}\n\ntype DevicePlugin_ListAndWatchClient interface {\n\tRecv() (*ListAndWatchResponse, error)\n\tgrpc.ClientStream\n}\n\ntype devicePluginListAndWatchClient struct {\n\tgrpc.ClientStream\n}\n\nfunc (x *devicePluginListAndWatchClient) Recv() (*ListAndWatchResponse, error) {\n\tm := new(ListAndWatchResponse)\n\tif err := x.ClientStream.RecvMsg(m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn m, nil\n}\n\nfunc (c *devicePluginClient) GetPreferredAllocation(ctx context.Context, in *PreferredAllocationRequest, opts ...grpc.CallOption) (*PreferredAllocationResponse, error) {\n\tout := new(PreferredAllocationResponse)\n\terr := c.cc.Invoke(ctx, \"/v1beta1.DevicePlugin/GetPreferredAllocation\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *devicePluginClient) Allocate(ctx context.Context, in *AllocateRequest, opts ...grpc.CallOption) (*AllocateResponse, error) {\n\tout := new(AllocateResponse)\n\terr := c.cc.Invoke(ctx, \"/v1beta1.DevicePlugin/Allocate\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\nfunc (c *devicePluginClient) PreStartContainer(ctx context.Context, in *PreStartContainerRequest, opts ...grpc.CallOption) (*PreStartContainerResponse, error) {\n\tout := new(PreStartContainerResponse)\n\terr := c.cc.Invoke(ctx, \"/v1beta1.DevicePlugin/PreStartContainer\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\n// DevicePluginServer is the server API for DevicePlugin service.\ntype DevicePluginServer interface {\n\t// GetDevicePluginOptions returns options to be communicated with Device\n\t// Manager\n\tGetDevicePluginOptions(context.Context, *Empty) (*DevicePluginOptions, error)\n\t// ListAndWatch returns a stream of List of Devices\n\t// Whenever a Device state change or a Device disappears, ListAndWatch\n\t// returns the new list\n\tListAndWatch(*Empty, DevicePlugin_ListAndWatchServer) error\n\t// GetPreferredAllocation returns a preferred set of devices to allocate\n\t// from a list of available ones. The resulting preferred allocation is not\n\t// guaranteed to be the allocation ultimately performed by the\n\t// devicemanager. It is only designed to help the devicemanager make a more\n\t// informed allocation decision when possible.\n\tGetPreferredAllocation(context.Context, *PreferredAllocationRequest) (*PreferredAllocationResponse, error)\n\t// Allocate is called during container creation so that the Device\n\t// Plugin can run device specific operations and instruct Kubelet\n\t// of the steps to make the Device available in the container\n\tAllocate(context.Context, *AllocateRequest) (*AllocateResponse, error)\n\t// PreStartContainer is called, if indicated by Device Plugin during registeration phase,\n\t// before each container start. Device plugin can run device specific operations\n\t// such as resetting the device before making devices available to the container\n\tPreStartContainer(context.Context, *PreStartContainerRequest) (*PreStartContainerResponse, error)\n}\n\n// UnimplementedDevicePluginServer can be embedded to have forward compatible implementations.\ntype UnimplementedDevicePluginServer struct {\n}\n\nfunc (*UnimplementedDevicePluginServer) GetDevicePluginOptions(ctx context.Context, req *Empty) (*DevicePluginOptions, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method GetDevicePluginOptions not implemented\")\n}\nfunc (*UnimplementedDevicePluginServer) ListAndWatch(req *Empty, srv DevicePlugin_ListAndWatchServer) error {\n\treturn status.Errorf(codes.Unimplemented, \"method ListAndWatch not implemented\")\n}\nfunc (*UnimplementedDevicePluginServer) GetPreferredAllocation(ctx context.Context, req *PreferredAllocationRequest) (*PreferredAllocationResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method GetPreferredAllocation not implemented\")\n}\nfunc (*UnimplementedDevicePluginServer) Allocate(ctx context.Context, req *AllocateRequest) (*AllocateResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method Allocate not implemented\")\n}\nfunc (*UnimplementedDevicePluginServer) PreStartContainer(ctx context.Context, req *PreStartContainerRequest) (*PreStartContainerResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method PreStartContainer not implemented\")\n}\n\nfunc RegisterDevicePluginServer(s *grpc.Server, srv DevicePluginServer) {\n\ts.RegisterService(&_DevicePlugin_serviceDesc, srv)\n}\n\nfunc _DevicePlugin_GetDevicePluginOptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(Empty)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(DevicePluginServer).GetDevicePluginOptions(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1beta1.DevicePlugin/GetDevicePluginOptions\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(DevicePluginServer).GetDevicePluginOptions(ctx, req.(*Empty))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _DevicePlugin_ListAndWatch_Handler(srv interface{}, stream grpc.ServerStream) error {\n\tm := new(Empty)\n\tif err := stream.RecvMsg(m); err != nil {\n\t\treturn err\n\t}\n\treturn srv.(DevicePluginServer).ListAndWatch(m, &devicePluginListAndWatchServer{stream})\n}\n\ntype DevicePlugin_ListAndWatchServer interface {\n\tSend(*ListAndWatchResponse) error\n\tgrpc.ServerStream\n}\n\ntype devicePluginListAndWatchServer struct {\n\tgrpc.ServerStream\n}\n\nfunc (x *devicePluginListAndWatchServer) Send(m *ListAndWatchResponse) error {\n\treturn x.ServerStream.SendMsg(m)\n}\n\nfunc _DevicePlugin_GetPreferredAllocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PreferredAllocationRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(DevicePluginServer).GetPreferredAllocation(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1beta1.DevicePlugin/GetPreferredAllocation\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(DevicePluginServer).GetPreferredAllocation(ctx, req.(*PreferredAllocationRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _DevicePlugin_Allocate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(AllocateRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(DevicePluginServer).Allocate(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1beta1.DevicePlugin/Allocate\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(DevicePluginServer).Allocate(ctx, req.(*AllocateRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nfunc _DevicePlugin_PreStartContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(PreStartContainerRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(DevicePluginServer).PreStartContainer(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1beta1.DevicePlugin/PreStartContainer\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(DevicePluginServer).PreStartContainer(ctx, req.(*PreStartContainerRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nvar _DevicePlugin_serviceDesc = grpc.ServiceDesc{\n\tServiceName: \"v1beta1.DevicePlugin\",\n\tHandlerType: (*DevicePluginServer)(nil),\n\tMethods: []grpc.MethodDesc{\n\t\t{\n\t\t\tMethodName: \"GetDevicePluginOptions\",\n\t\t\tHandler:    _DevicePlugin_GetDevicePluginOptions_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"GetPreferredAllocation\",\n\t\t\tHandler:    _DevicePlugin_GetPreferredAllocation_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"Allocate\",\n\t\t\tHandler:    _DevicePlugin_Allocate_Handler,\n\t\t},\n\t\t{\n\t\t\tMethodName: \"PreStartContainer\",\n\t\t\tHandler:    _DevicePlugin_PreStartContainer_Handler,\n\t\t},\n\t},\n\tStreams: []grpc.StreamDesc{\n\t\t{\n\t\t\tStreamName:    \"ListAndWatch\",\n\t\t\tHandler:       _DevicePlugin_ListAndWatch_Handler,\n\t\t\tServerStreams: true,\n\t\t},\n\t},\n\tMetadata: \"api.proto\",\n}\n\nfunc (m *DevicePluginOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DevicePluginOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DevicePluginOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.GetPreferredAllocationAvailable {\n\t\ti--\n\t\tif m.GetPreferredAllocationAvailable {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.PreStartRequired {\n\t\ti--\n\t\tif m.PreStartRequired {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RegisterRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RegisterRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RegisterRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Options != nil {\n\t\t{\n\t\t\tsize, err := m.Options.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.ResourceName) > 0 {\n\t\ti -= len(m.ResourceName)\n\t\tcopy(dAtA[i:], m.ResourceName)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ResourceName)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Endpoint) > 0 {\n\t\ti -= len(m.Endpoint)\n\t\tcopy(dAtA[i:], m.Endpoint)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Endpoint)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Version) > 0 {\n\t\ti -= len(m.Version)\n\t\tcopy(dAtA[i:], m.Version)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Version)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Empty) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Empty) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Empty) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListAndWatchResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListAndWatchResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListAndWatchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologyInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologyInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologyInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Nodes) > 0 {\n\t\tfor iNdEx := len(m.Nodes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Nodes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NUMANode) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NUMANode) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NUMANode) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ID != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.ID))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Device) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Device) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Device) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Topology != nil {\n\t\t{\n\t\t\tsize, err := m.Topology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Health) > 0 {\n\t\ti -= len(m.Health)\n\t\tcopy(dAtA[i:], m.Health)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Health)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ID) > 0 {\n\t\ti -= len(m.ID)\n\t\tcopy(dAtA[i:], m.ID)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ID)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreStartContainerRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreStartContainerRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreStartContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DevicesIDs) > 0 {\n\t\tfor iNdEx := len(m.DevicesIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DevicesIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DevicesIDs[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.DevicesIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreStartContainerResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreStartContainerResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreStartContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferredAllocationRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferredAllocationRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferredAllocationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerRequests) > 0 {\n\t\tfor iNdEx := len(m.ContainerRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerPreferredAllocationRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerPreferredAllocationRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerPreferredAllocationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AllocationSize != 0 {\n\t\ti = encodeVarintApi(dAtA, i, uint64(m.AllocationSize))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.MustIncludeDeviceIDs) > 0 {\n\t\tfor iNdEx := len(m.MustIncludeDeviceIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MustIncludeDeviceIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MustIncludeDeviceIDs[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.MustIncludeDeviceIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.AvailableDeviceIDs) > 0 {\n\t\tfor iNdEx := len(m.AvailableDeviceIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AvailableDeviceIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AvailableDeviceIDs[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.AvailableDeviceIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferredAllocationResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferredAllocationResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferredAllocationResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerResponses) > 0 {\n\t\tfor iNdEx := len(m.ContainerResponses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerResponses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerPreferredAllocationResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerPreferredAllocationResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerPreferredAllocationResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DeviceIDs) > 0 {\n\t\tfor iNdEx := len(m.DeviceIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DeviceIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DeviceIDs[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.DeviceIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllocateRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocateRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerRequests) > 0 {\n\t\tfor iNdEx := len(m.ContainerRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerAllocateRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerAllocateRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerAllocateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DevicesIDs) > 0 {\n\t\tfor iNdEx := len(m.DevicesIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DevicesIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DevicesIDs[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.DevicesIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllocateResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocateResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ContainerResponses) > 0 {\n\t\tfor iNdEx := len(m.ContainerResponses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerResponses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerAllocateResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerAllocateResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerAllocateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Annotations) > 0 {\n\t\tfor k := range m.Annotations {\n\t\t\tv := m.Annotations[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor iNdEx := len(m.Mounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Mounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Envs) > 0 {\n\t\tfor k := range m.Envs {\n\t\t\tv := m.Envs[k]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(k)\n\t\t\tcopy(dAtA[i:], k)\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(k)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Mount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Mount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Mount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ReadOnly {\n\t\ti--\n\t\tif m.ReadOnly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.HostPath) > 0 {\n\t\ti -= len(m.HostPath)\n\t\tcopy(dAtA[i:], m.HostPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.HostPath)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerPath) > 0 {\n\t\ti -= len(m.ContainerPath)\n\t\tcopy(dAtA[i:], m.ContainerPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerPath)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Permissions) > 0 {\n\t\ti -= len(m.Permissions)\n\t\tcopy(dAtA[i:], m.Permissions)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Permissions)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.HostPath) > 0 {\n\t\ti -= len(m.HostPath)\n\t\tcopy(dAtA[i:], m.HostPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.HostPath)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.ContainerPath) > 0 {\n\t\ti -= len(m.ContainerPath)\n\t\tcopy(dAtA[i:], m.ContainerPath)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ContainerPath)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintApi(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovApi(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *DevicePluginOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PreStartRequired {\n\t\tn += 2\n\t}\n\tif m.GetPreferredAllocationAvailable {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *RegisterRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Endpoint)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.ResourceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Options != nil {\n\t\tl = m.Options.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Empty) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ListAndWatchResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TopologyInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Nodes) > 0 {\n\t\tfor _, e := range m.Nodes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NUMANode) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ID != 0 {\n\t\tn += 1 + sovApi(uint64(m.ID))\n\t}\n\treturn n\n}\n\nfunc (m *Device) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ID)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Health)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.Topology != nil {\n\t\tl = m.Topology.Size()\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PreStartContainerRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DevicesIDs) > 0 {\n\t\tfor _, s := range m.DevicesIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PreStartContainerResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *PreferredAllocationRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ContainerRequests) > 0 {\n\t\tfor _, e := range m.ContainerRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerPreferredAllocationRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.AvailableDeviceIDs) > 0 {\n\t\tfor _, s := range m.AvailableDeviceIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.MustIncludeDeviceIDs) > 0 {\n\t\tfor _, s := range m.MustIncludeDeviceIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif m.AllocationSize != 0 {\n\t\tn += 1 + sovApi(uint64(m.AllocationSize))\n\t}\n\treturn n\n}\n\nfunc (m *PreferredAllocationResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ContainerResponses) > 0 {\n\t\tfor _, e := range m.ContainerResponses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerPreferredAllocationResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DeviceIDs) > 0 {\n\t\tfor _, s := range m.DeviceIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AllocateRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ContainerRequests) > 0 {\n\t\tfor _, e := range m.ContainerRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerAllocateRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DevicesIDs) > 0 {\n\t\tfor _, s := range m.DevicesIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AllocateResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ContainerResponses) > 0 {\n\t\tfor _, e := range m.ContainerResponses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerAllocateResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Envs) > 0 {\n\t\tfor k, v := range m.Envs {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Mounts) > 0 {\n\t\tfor _, e := range m.Mounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovApi(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Mount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.HostPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif m.ReadOnly {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *DeviceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.HostPath)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Permissions)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovApi(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozApi(x uint64) (n int) {\n\treturn sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *DevicePluginOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DevicePluginOptions{`,\n\t\t`PreStartRequired:` + fmt.Sprintf(\"%v\", this.PreStartRequired) + `,`,\n\t\t`GetPreferredAllocationAvailable:` + fmt.Sprintf(\"%v\", this.GetPreferredAllocationAvailable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RegisterRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RegisterRequest{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Endpoint:` + fmt.Sprintf(\"%v\", this.Endpoint) + `,`,\n\t\t`ResourceName:` + fmt.Sprintf(\"%v\", this.ResourceName) + `,`,\n\t\t`Options:` + strings.Replace(this.Options.String(), \"DevicePluginOptions\", \"DevicePluginOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Empty) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Empty{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListAndWatchResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDevices := \"[]*Device{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(f.String(), \"Device\", \"Device\", 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ListAndWatchResponse{`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologyInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForNodes := \"[]*NUMANode{\"\n\tfor _, f := range this.Nodes {\n\t\trepeatedStringForNodes += strings.Replace(f.String(), \"NUMANode\", \"NUMANode\", 1) + \",\"\n\t}\n\trepeatedStringForNodes += \"}\"\n\ts := strings.Join([]string{`&TopologyInfo{`,\n\t\t`Nodes:` + repeatedStringForNodes + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NUMANode) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NUMANode{`,\n\t\t`ID:` + fmt.Sprintf(\"%v\", this.ID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Device) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Device{`,\n\t\t`ID:` + fmt.Sprintf(\"%v\", this.ID) + `,`,\n\t\t`Health:` + fmt.Sprintf(\"%v\", this.Health) + `,`,\n\t\t`Topology:` + strings.Replace(this.Topology.String(), \"TopologyInfo\", \"TopologyInfo\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreStartContainerRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreStartContainerRequest{`,\n\t\t`DevicesIDs:` + fmt.Sprintf(\"%v\", this.DevicesIDs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreStartContainerResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreStartContainerResponse{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferredAllocationRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainerRequests := \"[]*ContainerPreferredAllocationRequest{\"\n\tfor _, f := range this.ContainerRequests {\n\t\trepeatedStringForContainerRequests += strings.Replace(f.String(), \"ContainerPreferredAllocationRequest\", \"ContainerPreferredAllocationRequest\", 1) + \",\"\n\t}\n\trepeatedStringForContainerRequests += \"}\"\n\ts := strings.Join([]string{`&PreferredAllocationRequest{`,\n\t\t`ContainerRequests:` + repeatedStringForContainerRequests + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerPreferredAllocationRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerPreferredAllocationRequest{`,\n\t\t`AvailableDeviceIDs:` + fmt.Sprintf(\"%v\", this.AvailableDeviceIDs) + `,`,\n\t\t`MustIncludeDeviceIDs:` + fmt.Sprintf(\"%v\", this.MustIncludeDeviceIDs) + `,`,\n\t\t`AllocationSize:` + fmt.Sprintf(\"%v\", this.AllocationSize) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferredAllocationResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainerResponses := \"[]*ContainerPreferredAllocationResponse{\"\n\tfor _, f := range this.ContainerResponses {\n\t\trepeatedStringForContainerResponses += strings.Replace(f.String(), \"ContainerPreferredAllocationResponse\", \"ContainerPreferredAllocationResponse\", 1) + \",\"\n\t}\n\trepeatedStringForContainerResponses += \"}\"\n\ts := strings.Join([]string{`&PreferredAllocationResponse{`,\n\t\t`ContainerResponses:` + repeatedStringForContainerResponses + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerPreferredAllocationResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerPreferredAllocationResponse{`,\n\t\t`DeviceIDs:` + fmt.Sprintf(\"%v\", this.DeviceIDs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllocateRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainerRequests := \"[]*ContainerAllocateRequest{\"\n\tfor _, f := range this.ContainerRequests {\n\t\trepeatedStringForContainerRequests += strings.Replace(f.String(), \"ContainerAllocateRequest\", \"ContainerAllocateRequest\", 1) + \",\"\n\t}\n\trepeatedStringForContainerRequests += \"}\"\n\ts := strings.Join([]string{`&AllocateRequest{`,\n\t\t`ContainerRequests:` + repeatedStringForContainerRequests + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerAllocateRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerAllocateRequest{`,\n\t\t`DevicesIDs:` + fmt.Sprintf(\"%v\", this.DevicesIDs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllocateResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainerResponses := \"[]*ContainerAllocateResponse{\"\n\tfor _, f := range this.ContainerResponses {\n\t\trepeatedStringForContainerResponses += strings.Replace(f.String(), \"ContainerAllocateResponse\", \"ContainerAllocateResponse\", 1) + \",\"\n\t}\n\trepeatedStringForContainerResponses += \"}\"\n\ts := strings.Join([]string{`&AllocateResponse{`,\n\t\t`ContainerResponses:` + repeatedStringForContainerResponses + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerAllocateResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMounts := \"[]*Mount{\"\n\tfor _, f := range this.Mounts {\n\t\trepeatedStringForMounts += strings.Replace(f.String(), \"Mount\", \"Mount\", 1) + \",\"\n\t}\n\trepeatedStringForMounts += \"}\"\n\trepeatedStringForDevices := \"[]*DeviceSpec{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(f.String(), \"DeviceSpec\", \"DeviceSpec\", 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\tkeysForEnvs := make([]string, 0, len(this.Envs))\n\tfor k := range this.Envs {\n\t\tkeysForEnvs = append(keysForEnvs, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForEnvs)\n\tmapStringForEnvs := \"map[string]string{\"\n\tfor _, k := range keysForEnvs {\n\t\tmapStringForEnvs += fmt.Sprintf(\"%v: %v,\", k, this.Envs[k])\n\t}\n\tmapStringForEnvs += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ContainerAllocateResponse{`,\n\t\t`Envs:` + mapStringForEnvs + `,`,\n\t\t`Mounts:` + repeatedStringForMounts + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Mount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Mount{`,\n\t\t`ContainerPath:` + fmt.Sprintf(\"%v\", this.ContainerPath) + `,`,\n\t\t`HostPath:` + fmt.Sprintf(\"%v\", this.HostPath) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceSpec{`,\n\t\t`ContainerPath:` + fmt.Sprintf(\"%v\", this.ContainerPath) + `,`,\n\t\t`HostPath:` + fmt.Sprintf(\"%v\", this.HostPath) + `,`,\n\t\t`Permissions:` + fmt.Sprintf(\"%v\", this.Permissions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringApi(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *DevicePluginOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DevicePluginOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DevicePluginOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreStartRequired\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PreStartRequired = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GetPreferredAllocationAvailable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GetPreferredAllocationAvailable = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RegisterRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RegisterRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RegisterRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Endpoint\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Endpoint = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = &DevicePluginOptions{}\n\t\t\t}\n\t\t\tif err := m.Options.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Empty) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Empty: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Empty: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListAndWatchResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListAndWatchResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListAndWatchResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, &Device{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologyInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologyInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologyInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nodes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Nodes = append(m.Nodes, &NUMANode{})\n\t\t\tif err := m.Nodes[len(m.Nodes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NUMANode) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NUMANode: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NUMANode: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ID\", wireType)\n\t\t\t}\n\t\t\tm.ID = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ID |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Device) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Device: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Device: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Health\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Health = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Topology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Topology == nil {\n\t\t\t\tm.Topology = &TopologyInfo{}\n\t\t\t}\n\t\t\tif err := m.Topology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreStartContainerRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreStartContainerRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreStartContainerRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicesIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicesIDs = append(m.DevicesIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreStartContainerResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreStartContainerResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreStartContainerResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferredAllocationRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredAllocationRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredAllocationRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerRequests = append(m.ContainerRequests, &ContainerPreferredAllocationRequest{})\n\t\t\tif err := m.ContainerRequests[len(m.ContainerRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerPreferredAllocationRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPreferredAllocationRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPreferredAllocationRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableDeviceIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AvailableDeviceIDs = append(m.AvailableDeviceIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MustIncludeDeviceIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MustIncludeDeviceIDs = append(m.MustIncludeDeviceIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocationSize\", wireType)\n\t\t\t}\n\t\t\tm.AllocationSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AllocationSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferredAllocationResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredAllocationResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredAllocationResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResponses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerResponses = append(m.ContainerResponses, &ContainerPreferredAllocationResponse{})\n\t\t\tif err := m.ContainerResponses[len(m.ContainerResponses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerPreferredAllocationResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPreferredAllocationResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPreferredAllocationResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeviceIDs = append(m.DeviceIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllocateRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocateRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocateRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerRequests = append(m.ContainerRequests, &ContainerAllocateRequest{})\n\t\t\tif err := m.ContainerRequests[len(m.ContainerRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerAllocateRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAllocateRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAllocateRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicesIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicesIDs = append(m.DevicesIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllocateResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocateResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocateResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResponses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerResponses = append(m.ContainerResponses, &ContainerAllocateResponse{})\n\t\t\tif err := m.ContainerResponses[len(m.ContainerResponses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerAllocateResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAllocateResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerAllocateResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Envs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Envs == nil {\n\t\t\t\tm.Envs = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Envs[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Mounts = append(m.Mounts, &Mount{})\n\t\t\tif err := m.Mounts[len(m.Mounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, &DeviceSpec{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Mount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Mount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Mount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Permissions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Permissions = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipApi(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthApi\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupApi\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthApi\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthApi        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowApi          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupApi = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.proto",
    "content": "// To regenerate api.pb.go run `hack/update-codegen.sh protobindings`\nsyntax = \"proto3\";\n\npackage v1beta1;\noption go_package = \"k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\";\n\nimport \"github.com/gogo/protobuf/gogoproto/gogo.proto\";\n\noption (gogoproto.goproto_stringer_all) = false;\noption (gogoproto.stringer_all) =  true;\noption (gogoproto.goproto_getters_all) = true;\noption (gogoproto.marshaler_all) = true;\noption (gogoproto.sizer_all) = true;\noption (gogoproto.unmarshaler_all) = true;\noption (gogoproto.goproto_unrecognized_all) = false;\n\n\n// Registration is the service advertised by the Kubelet\n// Only when Kubelet answers with a success code to a Register Request\n// may Device Plugins start their service\n// Registration may fail when device plugin version is not supported by\n// Kubelet or the registered resourceName is already taken by another\n// active device plugin. Device plugin is expected to terminate upon registration failure\nservice Registration {\n\trpc Register(RegisterRequest) returns (Empty) {}\n}\n\nmessage DevicePluginOptions {\n\t// Indicates if PreStartContainer call is required before each container start\n\tbool pre_start_required = 1;\n\t// Indicates if GetPreferredAllocation is implemented and available for calling\n\tbool get_preferred_allocation_available = 2;\n}\n\nmessage RegisterRequest {\n\t// Version of the API the Device Plugin was built against\n\tstring version = 1;\n\t// Name of the unix socket the device plugin is listening on\n\t// PATH = path.Join(DevicePluginPath, endpoint)\n\tstring endpoint = 2;\n\t// Schedulable resource name. As of now it's expected to be a DNS Label\n\tstring resource_name = 3;\n\t// Options to be communicated with Device Manager\n\tDevicePluginOptions options = 4;\n}\n\nmessage Empty {\n}\n\n// DevicePlugin is the service advertised by Device Plugins\nservice DevicePlugin {\n\t// GetDevicePluginOptions returns options to be communicated with Device\n\t// Manager\n\trpc GetDevicePluginOptions(Empty) returns (DevicePluginOptions) {}\n\n\t// ListAndWatch returns a stream of List of Devices\n\t// Whenever a Device state change or a Device disappears, ListAndWatch\n\t// returns the new list\n\trpc ListAndWatch(Empty) returns (stream ListAndWatchResponse) {}\n\n\t// GetPreferredAllocation returns a preferred set of devices to allocate\n\t// from a list of available ones. The resulting preferred allocation is not\n\t// guaranteed to be the allocation ultimately performed by the\n\t// devicemanager. It is only designed to help the devicemanager make a more\n\t// informed allocation decision when possible.\n\trpc GetPreferredAllocation(PreferredAllocationRequest) returns (PreferredAllocationResponse) {}\n\n\t// Allocate is called during container creation so that the Device\n\t// Plugin can run device specific operations and instruct Kubelet\n\t// of the steps to make the Device available in the container\n\trpc Allocate(AllocateRequest) returns (AllocateResponse) {}\n\n\t// PreStartContainer is called, if indicated by Device Plugin during registeration phase,\n\t// before each container start. Device plugin can run device specific operations\n\t// such as resetting the device before making devices available to the container\n\trpc PreStartContainer(PreStartContainerRequest) returns (PreStartContainerResponse) {}\n}\n\n// ListAndWatch returns a stream of List of Devices\n// Whenever a Device state change or a Device disappears, ListAndWatch\n// returns the new list\nmessage ListAndWatchResponse {\n\trepeated Device devices = 1;\n}\n\nmessage TopologyInfo {\n\trepeated NUMANode nodes = 1;\n}\n\nmessage NUMANode {\n\tint64 ID = 1;\n}\n\n/* E.g:\n* struct Device {\n*    ID: \"GPU-fef8089b-4820-abfc-e83e-94318197576e\",\n*    Health: \"Healthy\",\n*    Topology:\n*      Node:\n*        ID: 1\n*} */\nmessage Device {\n\t// A unique ID assigned by the device plugin used\n\t// to identify devices during the communication\n\t// Max length of this field is 63 characters\n\tstring ID = 1;\n\t// Health of the device, can be healthy or unhealthy, see constants.go\n\tstring health = 2;\n\t// Topology for device\n\tTopologyInfo topology = 3;\n}\n\n// - PreStartContainer is expected to be called before each container start if indicated by plugin during registration phase.\n// - PreStartContainer allows kubelet to pass reinitialized devices to containers.\n// - PreStartContainer allows Device Plugin to run device specific operations on\n//   the Devices requested\nmessage PreStartContainerRequest {\n\trepeated string devices_ids = 1 [(gogoproto.customname) = \"DevicesIDs\"];\n}\n\n// PreStartContainerResponse will be send by plugin in response to PreStartContainerRequest\nmessage PreStartContainerResponse {\n}\n\n// PreferredAllocationRequest is passed via a call to GetPreferredAllocation()\n// at pod admission time. The device plugin should take the list of\n// `available_deviceIDs` and calculate a preferred allocation of size\n// 'allocation_size' from them, making sure to include the set of devices\n// listed in 'must_include_deviceIDs'.\nmessage PreferredAllocationRequest {\n\trepeated ContainerPreferredAllocationRequest container_requests = 1;\n}\n\nmessage ContainerPreferredAllocationRequest {\n\t// List of available deviceIDs from which to choose a preferred allocation\n\trepeated string available_deviceIDs = 1;\n\t// List of deviceIDs that must be included in the preferred allocation\n\trepeated string must_include_deviceIDs = 2;\n\t// Number of devices to include in the preferred allocation\n\tint32 allocation_size = 3;\n}\n\n// PreferredAllocationResponse returns a preferred allocation,\n// resulting from a PreferredAllocationRequest.\nmessage PreferredAllocationResponse {\n\trepeated ContainerPreferredAllocationResponse container_responses = 1;\n}\n\nmessage ContainerPreferredAllocationResponse {\n\trepeated string deviceIDs = 1;\n}\n\n// - Allocate is expected to be called during pod creation since allocation\n//   failures for any container would result in pod startup failure.\n// - Allocate allows kubelet to exposes additional artifacts in a pod's\n//   environment as directed by the plugin.\n// - Allocate allows Device Plugin to run device specific operations on\n//   the Devices requested\nmessage AllocateRequest {\n\trepeated ContainerAllocateRequest container_requests = 1;\n}\n\nmessage ContainerAllocateRequest {\n\trepeated string devices_ids = 1 [(gogoproto.customname) = \"DevicesIDs\"];\n}\n\n// AllocateResponse includes the artifacts that needs to be injected into\n// a container for accessing 'deviceIDs' that were mentioned as part of\n// 'AllocateRequest'.\n// Failure Handling:\n// if Kubelet sends an allocation request for dev1 and dev2.\n// Allocation on dev1 succeeds but allocation on dev2 fails.\n// The Device plugin should send a ListAndWatch update and fail the\n// Allocation request\nmessage AllocateResponse {\n\trepeated ContainerAllocateResponse container_responses = 1;\n}\n\nmessage ContainerAllocateResponse {\n  \t// List of environment variable to be set in the container to access one of more devices.\n\tmap<string, string> envs = 1;\n\t// Mounts for the container.\n\trepeated Mount mounts = 2;\n\t// Devices for the container.\n\trepeated DeviceSpec devices = 3;\n\t// Container annotations to pass to the container runtime\n\tmap<string, string> annotations = 4;\n}\n\n// Mount specifies a host volume to mount into a container.\n// where device library or tools are installed on host and container\nmessage Mount {\n\t// Path of the mount within the container.\n\tstring container_path = 1;\n\t// Path of the mount on the host.\n\tstring host_path = 2;\n\t// If set, the mount is read-only.\n\tbool read_only = 3;\n}\n\n// DeviceSpec specifies a host device to mount into a container.\nmessage DeviceSpec {\n\t// Path of the device within the container.\n\tstring container_path = 1;\n\t// Path of the device on the host.\n\tstring host_path = 2;\n\t// Cgroups permissions of the device, candidates are one or more of\n\t// * r - allows container to read from the specified device.\n\t// * w - allows container to write to the specified device.\n\t// * m - allows container to create device files that do not yet exist.\n\tstring permissions = 3;\n}\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/constants.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\t// Healthy means that the device is healthy\n\tHealthy = \"Healthy\"\n\t// Unhealthy means that the device is unhealthy\n\tUnhealthy = \"Unhealthy\"\n\n\t// Version means current version of the API supported by kubelet\n\tVersion = \"v1beta1\"\n\t// DevicePluginPath is the folder the Device Plugin is expecting sockets to be on\n\t// Only privileged pods have access to this path\n\t// Note: Placeholder until we find a \"standard path\"\n\tDevicePluginPath = \"/var/lib/kubelet/device-plugins/\"\n\t// KubeletSocket is the path of the Kubelet registry socket\n\tKubeletSocket = DevicePluginPath + \"kubelet.sock\"\n\n\t// DevicePluginPathWindows Avoid failed to run Kubelet: bad socketPath,\n\t// must be an absolute path: /var/lib/kubelet/device-plugins/kubelet.sock\n\t// https://github.com/kubernetes/kubernetes/issues/93262\n\t// https://github.com/kubernetes/kubernetes/pull/93285#discussion_r458140701\n\tDevicePluginPathWindows = \"\\\\var\\\\lib\\\\kubelet\\\\device-plugins\\\\\"\n\t// KubeletSocketWindows is the path of the Kubelet registry socket on windows\n\tKubeletSocketWindows = DevicePluginPathWindows + \"kubelet.sock\"\n\n\t// KubeletPreStartContainerRPCTimeoutInSecs is the timeout duration in secs for PreStartContainer RPC\n\t// Timeout duration in secs for PreStartContainer RPC\n\tKubeletPreStartContainerRPCTimeoutInSecs = 30\n)\n\n// SupportedVersions provides a list of supported version\nvar SupportedVersions = [...]string{\"v1beta1\"}\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/pkg/apis/podresources/v1alpha1/api.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: api.proto\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\t_ \"github.com/gogo/protobuf/gogoproto\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgrpc \"google.golang.org/grpc\"\n\tcodes \"google.golang.org/grpc/codes\"\n\tstatus \"google.golang.org/grpc/status\"\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\n// ListPodResourcesRequest is the request made to the PodResourcesLister service\ntype ListPodResourcesRequest struct {\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ListPodResourcesRequest) Reset()      { *m = ListPodResourcesRequest{} }\nfunc (*ListPodResourcesRequest) ProtoMessage() {}\nfunc (*ListPodResourcesRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{0}\n}\nfunc (m *ListPodResourcesRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodResourcesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodResourcesRequest.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodResourcesRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodResourcesRequest.Merge(m, src)\n}\nfunc (m *ListPodResourcesRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodResourcesRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodResourcesRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodResourcesRequest proto.InternalMessageInfo\n\n// ListPodResourcesResponse is the response returned by List function\ntype ListPodResourcesResponse struct {\n\tPodResources         []*PodResources `protobuf:\"bytes,1,rep,name=pod_resources,json=podResources,proto3\" json:\"pod_resources,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}        `json:\"-\"`\n\tXXX_sizecache        int32           `json:\"-\"`\n}\n\nfunc (m *ListPodResourcesResponse) Reset()      { *m = ListPodResourcesResponse{} }\nfunc (*ListPodResourcesResponse) ProtoMessage() {}\nfunc (*ListPodResourcesResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{1}\n}\nfunc (m *ListPodResourcesResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListPodResourcesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ListPodResourcesResponse.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ListPodResourcesResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListPodResourcesResponse.Merge(m, src)\n}\nfunc (m *ListPodResourcesResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListPodResourcesResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListPodResourcesResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListPodResourcesResponse proto.InternalMessageInfo\n\nfunc (m *ListPodResourcesResponse) GetPodResources() []*PodResources {\n\tif m != nil {\n\t\treturn m.PodResources\n\t}\n\treturn nil\n}\n\n// PodResources contains information about the node resources assigned to a pod\ntype PodResources struct {\n\tName                 string                `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tNamespace            string                `protobuf:\"bytes,2,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tContainers           []*ContainerResources `protobuf:\"bytes,3,rep,name=containers,proto3\" json:\"containers,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}              `json:\"-\"`\n\tXXX_sizecache        int32                 `json:\"-\"`\n}\n\nfunc (m *PodResources) Reset()      { *m = PodResources{} }\nfunc (*PodResources) ProtoMessage() {}\nfunc (*PodResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{2}\n}\nfunc (m *PodResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PodResources.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PodResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodResources.Merge(m, src)\n}\nfunc (m *PodResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodResources proto.InternalMessageInfo\n\nfunc (m *PodResources) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodResources) GetNamespace() string {\n\tif m != nil {\n\t\treturn m.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (m *PodResources) GetContainers() []*ContainerResources {\n\tif m != nil {\n\t\treturn m.Containers\n\t}\n\treturn nil\n}\n\n// ContainerResources contains information about the resources assigned to a container\ntype ContainerResources struct {\n\tName                 string              `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tDevices              []*ContainerDevices `protobuf:\"bytes,2,rep,name=devices,proto3\" json:\"devices,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{}            `json:\"-\"`\n\tXXX_sizecache        int32               `json:\"-\"`\n}\n\nfunc (m *ContainerResources) Reset()      { *m = ContainerResources{} }\nfunc (*ContainerResources) ProtoMessage() {}\nfunc (*ContainerResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{3}\n}\nfunc (m *ContainerResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerResources.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResources.Merge(m, src)\n}\nfunc (m *ContainerResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResources proto.InternalMessageInfo\n\nfunc (m *ContainerResources) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerResources) GetDevices() []*ContainerDevices {\n\tif m != nil {\n\t\treturn m.Devices\n\t}\n\treturn nil\n}\n\n// ContainerDevices contains information about the devices assigned to a container\ntype ContainerDevices struct {\n\tResourceName         string   `protobuf:\"bytes,1,opt,name=resource_name,json=resourceName,proto3\" json:\"resource_name,omitempty\"`\n\tDeviceIds            []string `protobuf:\"bytes,2,rep,name=device_ids,json=deviceIds,proto3\" json:\"device_ids,omitempty\"`\n\tXXX_NoUnkeyedLiteral struct{} `json:\"-\"`\n\tXXX_sizecache        int32    `json:\"-\"`\n}\n\nfunc (m *ContainerDevices) Reset()      { *m = ContainerDevices{} }\nfunc (*ContainerDevices) ProtoMessage() {}\nfunc (*ContainerDevices) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_00212fb1f9d3bf1c, []int{4}\n}\nfunc (m *ContainerDevices) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerDevices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_ContainerDevices.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalToSizedBuffer(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *ContainerDevices) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerDevices.Merge(m, src)\n}\nfunc (m *ContainerDevices) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerDevices) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerDevices.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerDevices proto.InternalMessageInfo\n\nfunc (m *ContainerDevices) GetResourceName() string {\n\tif m != nil {\n\t\treturn m.ResourceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *ContainerDevices) GetDeviceIds() []string {\n\tif m != nil {\n\t\treturn m.DeviceIds\n\t}\n\treturn nil\n}\n\nfunc init() {\n\tproto.RegisterType((*ListPodResourcesRequest)(nil), \"v1alpha1.ListPodResourcesRequest\")\n\tproto.RegisterType((*ListPodResourcesResponse)(nil), \"v1alpha1.ListPodResourcesResponse\")\n\tproto.RegisterType((*PodResources)(nil), \"v1alpha1.PodResources\")\n\tproto.RegisterType((*ContainerResources)(nil), \"v1alpha1.ContainerResources\")\n\tproto.RegisterType((*ContainerDevices)(nil), \"v1alpha1.ContainerDevices\")\n}\n\nfunc init() { proto.RegisterFile(\"api.proto\", fileDescriptor_00212fb1f9d3bf1c) }\n\nvar fileDescriptor_00212fb1f9d3bf1c = []byte{\n\t// 377 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x3f, 0x4f, 0xf3, 0x30,\n\t0x10, 0xc6, 0xeb, 0xb6, 0x7a, 0xdf, 0x37, 0xf7, 0xb6, 0x12, 0xf2, 0x00, 0xa1, 0x2a, 0x51, 0x09,\n\t0x4b, 0x97, 0x26, 0x6a, 0x61, 0x40, 0x82, 0x09, 0x58, 0x10, 0x08, 0x50, 0x06, 0x90, 0x18, 0xa8,\n\t0xf2, 0xc7, 0xa4, 0x56, 0xdb, 0xd8, 0xc4, 0x49, 0x47, 0xc4, 0x47, 0xe0, 0x63, 0x75, 0x64, 0x64,\n\t0xa4, 0xe1, 0x8b, 0xa0, 0x38, 0x0a, 0x09, 0xb4, 0x30, 0xe5, 0xee, 0x9e, 0xc7, 0xf9, 0x9d, 0x7d,\n\t0x07, 0x8a, 0xcd, 0xa9, 0xc1, 0x43, 0x16, 0x31, 0xfc, 0x6f, 0xd6, 0xb7, 0x27, 0x7c, 0x64, 0xf7,\n\t0x5b, 0x3d, 0x9f, 0x46, 0xa3, 0xd8, 0x31, 0x5c, 0x36, 0x35, 0x7d, 0xe6, 0x33, 0x53, 0x1a, 0x9c,\n\t0xf8, 0x5e, 0x66, 0x32, 0x91, 0x51, 0x76, 0x50, 0xdf, 0x84, 0x8d, 0x73, 0x2a, 0xa2, 0x2b, 0xe6,\n\t0x59, 0x44, 0xb0, 0x38, 0x74, 0x89, 0xb0, 0xc8, 0x43, 0x4c, 0x44, 0xa4, 0xdf, 0x80, 0xba, 0x2c,\n\t0x09, 0xce, 0x02, 0x41, 0xf0, 0x01, 0x34, 0x39, 0xf3, 0x86, 0x61, 0x2e, 0xa8, 0xa8, 0x53, 0xeb,\n\t0xfe, 0x1f, 0xac, 0x1b, 0x79, 0x1f, 0xc6, 0x97, 0x63, 0x0d, 0x5e, 0xca, 0xf4, 0x47, 0x68, 0x94,\n\t0x55, 0x8c, 0xa1, 0x1e, 0xd8, 0x53, 0xa2, 0xa2, 0x0e, 0xea, 0x2a, 0x96, 0x8c, 0x71, 0x1b, 0x94,\n\t0xf4, 0x2b, 0xb8, 0xed, 0x12, 0xb5, 0x2a, 0x85, 0xa2, 0x80, 0x0f, 0x01, 0x5c, 0x16, 0x44, 0x36,\n\t0x0d, 0x48, 0x28, 0xd4, 0x9a, 0x64, 0xb7, 0x0b, 0xf6, 0x71, 0xae, 0x15, 0x1d, 0x94, 0xfc, 0xfa,\n\t0x1d, 0xe0, 0x65, 0xc7, 0xca, 0x2e, 0xf6, 0xe0, 0xaf, 0x47, 0x66, 0x34, 0xbd, 0x60, 0x55, 0x42,\n\t0x5a, 0x2b, 0x20, 0x27, 0x99, 0xc3, 0xca, 0xad, 0xfa, 0x35, 0xac, 0x7d, 0x17, 0xf1, 0x0e, 0x34,\n\t0xf3, 0xc7, 0x1a, 0x96, 0x30, 0x8d, 0xbc, 0x78, 0x91, 0xe2, 0xb6, 0x00, 0xb2, 0x7f, 0x0c, 0xa9,\n\t0x97, 0x11, 0x15, 0x4b, 0xc9, 0x2a, 0xa7, 0x9e, 0x18, 0x10, 0xc0, 0xe5, 0x77, 0x4b, 0x87, 0x43,\n\t0x42, 0x7c, 0x09, 0xf5, 0x34, 0xc2, 0xdb, 0x45, 0x6b, 0x3f, 0x4c, 0xb4, 0xa5, 0xff, 0x66, 0xc9,\n\t0x26, 0xab, 0x57, 0x8e, 0xce, 0xe6, 0x0b, 0x0d, 0xbd, 0x2e, 0xb4, 0xca, 0x53, 0xa2, 0xa1, 0x79,\n\t0xa2, 0xa1, 0x97, 0x44, 0x43, 0x6f, 0x89, 0x86, 0x9e, 0xdf, 0xb5, 0xca, 0x6d, 0x6f, 0xbc, 0x2f,\n\t0x0c, 0xca, 0xcc, 0x71, 0xec, 0x90, 0x09, 0x89, 0x4c, 0x3e, 0xf6, 0x4d, 0x9b, 0x53, 0x61, 0x72,\n\t0xe6, 0x7d, 0xae, 0x83, 0x99, 0x73, 0x9c, 0x3f, 0x72, 0xcd, 0x76, 0x3f, 0x02, 0x00, 0x00, 0xff,\n\t0xff, 0xa5, 0xe5, 0x34, 0x76, 0xac, 0x02, 0x00, 0x00,\n}\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ context.Context\nvar _ grpc.ClientConn\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the grpc package it is being compiled against.\nconst _ = grpc.SupportPackageIsVersion4\n\n// PodResourcesListerClient is the client API for PodResourcesLister service.\n//\n// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.\ntype PodResourcesListerClient interface {\n\tList(ctx context.Context, in *ListPodResourcesRequest, opts ...grpc.CallOption) (*ListPodResourcesResponse, error)\n}\n\ntype podResourcesListerClient struct {\n\tcc *grpc.ClientConn\n}\n\nfunc NewPodResourcesListerClient(cc *grpc.ClientConn) PodResourcesListerClient {\n\treturn &podResourcesListerClient{cc}\n}\n\nfunc (c *podResourcesListerClient) List(ctx context.Context, in *ListPodResourcesRequest, opts ...grpc.CallOption) (*ListPodResourcesResponse, error) {\n\tout := new(ListPodResourcesResponse)\n\terr := c.cc.Invoke(ctx, \"/v1alpha1.PodResourcesLister/List\", in, out, opts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn out, nil\n}\n\n// PodResourcesListerServer is the server API for PodResourcesLister service.\ntype PodResourcesListerServer interface {\n\tList(context.Context, *ListPodResourcesRequest) (*ListPodResourcesResponse, error)\n}\n\n// UnimplementedPodResourcesListerServer can be embedded to have forward compatible implementations.\ntype UnimplementedPodResourcesListerServer struct {\n}\n\nfunc (*UnimplementedPodResourcesListerServer) List(ctx context.Context, req *ListPodResourcesRequest) (*ListPodResourcesResponse, error) {\n\treturn nil, status.Errorf(codes.Unimplemented, \"method List not implemented\")\n}\n\nfunc RegisterPodResourcesListerServer(s *grpc.Server, srv PodResourcesListerServer) {\n\ts.RegisterService(&_PodResourcesLister_serviceDesc, srv)\n}\n\nfunc _PodResourcesLister_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n\tin := new(ListPodResourcesRequest)\n\tif err := dec(in); err != nil {\n\t\treturn nil, err\n\t}\n\tif interceptor == nil {\n\t\treturn srv.(PodResourcesListerServer).List(ctx, in)\n\t}\n\tinfo := &grpc.UnaryServerInfo{\n\t\tServer:     srv,\n\t\tFullMethod: \"/v1alpha1.PodResourcesLister/List\",\n\t}\n\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n\t\treturn srv.(PodResourcesListerServer).List(ctx, req.(*ListPodResourcesRequest))\n\t}\n\treturn interceptor(ctx, in, info, handler)\n}\n\nvar _PodResourcesLister_serviceDesc = grpc.ServiceDesc{\n\tServiceName: \"v1alpha1.PodResourcesLister\",\n\tHandlerType: (*PodResourcesListerServer)(nil),\n\tMethods: []grpc.MethodDesc{\n\t\t{\n\t\t\tMethodName: \"List\",\n\t\t\tHandler:    _PodResourcesLister_List_Handler,\n\t\t},\n\t},\n\tStreams:  []grpc.StreamDesc{},\n\tMetadata: \"api.proto\",\n}\n\nfunc (m *ListPodResourcesRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodResourcesRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodResourcesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListPodResourcesResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListPodResourcesResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListPodResourcesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodResources) > 0 {\n\t\tfor iNdEx := len(m.PodResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PodResources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Namespace) > 0 {\n\t\ti -= len(m.Namespace)\n\t\tcopy(dAtA[i:], m.Namespace)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Name) > 0 {\n\t\ti -= len(m.Name)\n\t\tcopy(dAtA[i:], m.Name)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintApi(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Name) > 0 {\n\t\ti -= len(m.Name)\n\t\tcopy(dAtA[i:], m.Name)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerDevices) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerDevices) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerDevices) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.DeviceIds) > 0 {\n\t\tfor iNdEx := len(m.DeviceIds) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DeviceIds[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DeviceIds[iNdEx])\n\t\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.DeviceIds[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ResourceName) > 0 {\n\t\ti -= len(m.ResourceName)\n\t\tcopy(dAtA[i:], m.ResourceName)\n\t\ti = encodeVarintApi(dAtA, i, uint64(len(m.ResourceName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintApi(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovApi(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ListPodResourcesRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ListPodResourcesResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodResources) > 0 {\n\t\tfor _, e := range m.PodResources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tl = len(m.Namespace)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerDevices) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovApi(uint64(l))\n\t}\n\tif len(m.DeviceIds) > 0 {\n\t\tfor _, s := range m.DeviceIds {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovApi(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovApi(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozApi(x uint64) (n int) {\n\treturn sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ListPodResourcesRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListPodResourcesRequest{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListPodResourcesResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPodResources := \"[]*PodResources{\"\n\tfor _, f := range this.PodResources {\n\t\trepeatedStringForPodResources += strings.Replace(f.String(), \"PodResources\", \"PodResources\", 1) + \",\"\n\t}\n\trepeatedStringForPodResources += \"}\"\n\ts := strings.Join([]string{`&ListPodResourcesResponse{`,\n\t\t`PodResources:` + repeatedStringForPodResources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainers := \"[]*ContainerResources{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(f.String(), \"ContainerResources\", \"ContainerResources\", 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\ts := strings.Join([]string{`&PodResources{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDevices := \"[]*ContainerDevices{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(f.String(), \"ContainerDevices\", \"ContainerDevices\", 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ContainerResources{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerDevices) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerDevices{`,\n\t\t`ResourceName:` + fmt.Sprintf(\"%v\", this.ResourceName) + `,`,\n\t\t`DeviceIds:` + fmt.Sprintf(\"%v\", this.DeviceIds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringApi(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ListPodResourcesRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodResourcesRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodResourcesRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListPodResourcesResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodResourcesResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListPodResourcesResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodResources = append(m.PodResources, &PodResources{})\n\t\t\tif err := m.PodResources[len(m.PodResources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, &ContainerResources{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, &ContainerDevices{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerDevices) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerDevices: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerDevices: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceIds\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeviceIds = append(m.DeviceIds, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipApi(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthApi\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipApi(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowApi\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthApi\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupApi\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthApi\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthApi        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowApi          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupApi = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/kubelet/pkg/apis/podresources/v1alpha1/api.proto",
    "content": "// To regenerate api.pb.go run `hack/update-codegen.sh protobindings`\nsyntax = \"proto3\";\n\npackage v1alpha1;\noption go_package = \"k8s.io/kubelet/pkg/apis/podresources/v1alpha1\";\n\nimport \"github.com/gogo/protobuf/gogoproto/gogo.proto\";\n\noption (gogoproto.goproto_stringer_all) = false;\noption (gogoproto.stringer_all) =  true;\noption (gogoproto.goproto_getters_all) = true;\noption (gogoproto.marshaler_all) = true;\noption (gogoproto.sizer_all) = true;\noption (gogoproto.unmarshaler_all) = true;\noption (gogoproto.goproto_unrecognized_all) = false;\n\n\n// PodResourcesLister is a service provided by the kubelet that provides information about the\n// node resources consumed by pods and containers on the node\nservice PodResourcesLister {\n    rpc List(ListPodResourcesRequest) returns (ListPodResourcesResponse) {}\n}\n\n// ListPodResourcesRequest is the request made to the PodResourcesLister service\nmessage ListPodResourcesRequest {}\n\n// ListPodResourcesResponse is the response returned by List function\nmessage ListPodResourcesResponse {\n    repeated PodResources pod_resources = 1;\n}\n\n// PodResources contains information about the node resources assigned to a pod\nmessage PodResources {\n    string name = 1;\n    string namespace = 2;\n    repeated ContainerResources containers = 3;\n}\n\n// ContainerResources contains information about the resources assigned to a container\nmessage ContainerResources {\n    string name = 1;\n    repeated ContainerDevices devices = 2;\n}\n\n// ContainerDevices contains information about the devices assigned to a container\nmessage ContainerDevices {\n    string resource_name = 1;\n    repeated string device_ids = 2;\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/README.md",
    "content": "# Clock\n\nThis package provides an interface for time-based operations.  It allows\nmocking time for testing.\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clock\n\nimport \"time\"\n\n// PassiveClock allows for injecting fake or real clocks into code\n// that needs to read the current time but does not support scheduling\n// activity in the future.\ntype PassiveClock interface {\n\tNow() time.Time\n\tSince(time.Time) time.Duration\n}\n\n// Clock allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype Clock interface {\n\tPassiveClock\n\t// After returns the channel of a new Timer.\n\t// This method does not allow to free/GC the backing timer before it fires. Use\n\t// NewTimer instead.\n\tAfter(d time.Duration) <-chan time.Time\n\t// NewTimer returns a new Timer.\n\tNewTimer(d time.Duration) Timer\n\t// Sleep sleeps for the provided duration d.\n\t// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\n\tSleep(d time.Duration)\n\t// Tick returns the channel of a new Ticker.\n\t// This method does not allow to free/GC the backing ticker. Use\n\t// NewTicker from WithTicker instead.\n\tTick(d time.Duration) <-chan time.Time\n}\n\n// WithTicker allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype WithTicker interface {\n\tClock\n\t// NewTicker returns a new Ticker.\n\tNewTicker(time.Duration) Ticker\n}\n\n// WithDelayedExecution allows for injecting fake or real clocks into\n// code that needs to make use of AfterFunc functionality.\ntype WithDelayedExecution interface {\n\tClock\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// WithTickerAndDelayedExecution allows for injecting fake or real clocks\n// into code that needs Ticker and AfterFunc functionality\ntype WithTickerAndDelayedExecution interface {\n\tWithTicker\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// Ticker defines the Ticker interface.\ntype Ticker interface {\n\tC() <-chan time.Time\n\tStop()\n}\n\nvar _ = WithTicker(RealClock{})\n\n// RealClock really calls time.Now()\ntype RealClock struct{}\n\n// Now returns the current time.\nfunc (RealClock) Now() time.Time {\n\treturn time.Now()\n}\n\n// Since returns time since the specified timestamp.\nfunc (RealClock) Since(ts time.Time) time.Duration {\n\treturn time.Since(ts)\n}\n\n// After is the same as time.After(d).\n// This method does not allow to free/GC the backing timer before it fires. Use\n// NewTimer instead.\nfunc (RealClock) After(d time.Duration) <-chan time.Time {\n\treturn time.After(d)\n}\n\n// NewTimer is the same as time.NewTimer(d)\nfunc (RealClock) NewTimer(d time.Duration) Timer {\n\treturn &realTimer{\n\t\ttimer: time.NewTimer(d),\n\t}\n}\n\n// AfterFunc is the same as time.AfterFunc(d, f).\nfunc (RealClock) AfterFunc(d time.Duration, f func()) Timer {\n\treturn &realTimer{\n\t\ttimer: time.AfterFunc(d, f),\n\t}\n}\n\n// Tick is the same as time.Tick(d)\n// This method does not allow to free/GC the backing ticker. Use\n// NewTicker instead.\nfunc (RealClock) Tick(d time.Duration) <-chan time.Time {\n\treturn time.Tick(d)\n}\n\n// NewTicker returns a new Ticker.\nfunc (RealClock) NewTicker(d time.Duration) Ticker {\n\treturn &realTicker{\n\t\tticker: time.NewTicker(d),\n\t}\n}\n\n// Sleep is the same as time.Sleep(d)\n// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\nfunc (RealClock) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Timer allows for injecting fake or real timers into code that\n// needs to do arbitrary things based on time.\ntype Timer interface {\n\tC() <-chan time.Time\n\tStop() bool\n\tReset(d time.Duration) bool\n}\n\nvar _ = Timer(&realTimer{})\n\n// realTimer is backed by an actual time.Timer.\ntype realTimer struct {\n\ttimer *time.Timer\n}\n\n// C returns the underlying timer's channel.\nfunc (r *realTimer) C() <-chan time.Time {\n\treturn r.timer.C\n}\n\n// Stop calls Stop() on the underlying timer.\nfunc (r *realTimer) Stop() bool {\n\treturn r.timer.Stop()\n}\n\n// Reset calls Reset() on the underlying timer.\nfunc (r *realTimer) Reset(d time.Duration) bool {\n\treturn r.timer.Reset(d)\n}\n\ntype realTicker struct {\n\tticker *time.Ticker\n}\n\nfunc (r *realTicker) C() <-chan time.Time {\n\treturn r.ticker.C\n}\n\nfunc (r *realTicker) Stop() {\n\tr.ticker.Stop()\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/testing/fake_clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t_ = clock.PassiveClock(&FakePassiveClock{})\n\t_ = clock.WithTicker(&FakeClock{})\n\t_ = clock.Clock(&IntervalClock{})\n)\n\n// FakePassiveClock implements PassiveClock, but returns an arbitrary time.\ntype FakePassiveClock struct {\n\tlock sync.RWMutex\n\ttime time.Time\n}\n\n// FakeClock implements clock.Clock, but returns an arbitrary time.\ntype FakeClock struct {\n\tFakePassiveClock\n\n\t// waiters are waiting for the fake time to pass their specified time\n\twaiters []*fakeClockWaiter\n}\n\ntype fakeClockWaiter struct {\n\ttargetTime    time.Time\n\tstepInterval  time.Duration\n\tskipIfBlocked bool\n\tdestChan      chan time.Time\n\tfired         bool\n\tafterFunc     func()\n}\n\n// NewFakePassiveClock returns a new FakePassiveClock.\nfunc NewFakePassiveClock(t time.Time) *FakePassiveClock {\n\treturn &FakePassiveClock{\n\t\ttime: t,\n\t}\n}\n\n// NewFakeClock constructs a fake clock set to the provided time.\nfunc NewFakeClock(t time.Time) *FakeClock {\n\treturn &FakeClock{\n\t\tFakePassiveClock: *NewFakePassiveClock(t),\n\t}\n}\n\n// Now returns f's time.\nfunc (f *FakePassiveClock) Now() time.Time {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn f.time\n}\n\n// Since returns time since the time in f.\nfunc (f *FakePassiveClock) Since(ts time.Time) time.Duration {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn f.time.Sub(ts)\n}\n\n// SetTime sets the time on the FakePassiveClock.\nfunc (f *FakePassiveClock) SetTime(t time.Time) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.time = t\n}\n\n// After is the fake version of time.After(d).\nfunc (f *FakeClock) After(d time.Duration) <-chan time.Time {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime: stopTime,\n\t\tdestChan:   ch,\n\t})\n\treturn ch\n}\n\n// NewTimer constructs a fake timer, akin to time.NewTimer(d).\nfunc (f *FakeClock) NewTimer(d time.Duration) clock.Timer {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\ttimer := &fakeTimer{\n\t\tfakeClock: f,\n\t\twaiter: fakeClockWaiter{\n\t\t\ttargetTime: stopTime,\n\t\t\tdestChan:   ch,\n\t\t},\n\t}\n\tf.waiters = append(f.waiters, &timer.waiter)\n\treturn timer\n}\n\n// AfterFunc is the Fake version of time.AfterFunc(d, cb).\nfunc (f *FakeClock) AfterFunc(d time.Duration, cb func()) clock.Timer {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\n\ttimer := &fakeTimer{\n\t\tfakeClock: f,\n\t\twaiter: fakeClockWaiter{\n\t\t\ttargetTime: stopTime,\n\t\t\tdestChan:   ch,\n\t\t\tafterFunc:  cb,\n\t\t},\n\t}\n\tf.waiters = append(f.waiters, &timer.waiter)\n\treturn timer\n}\n\n// Tick constructs a fake ticker, akin to time.Tick\nfunc (f *FakeClock) Tick(d time.Duration) <-chan time.Time {\n\tif d <= 0 {\n\t\treturn nil\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\ttickTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // hold one tick\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime:    tickTime,\n\t\tstepInterval:  d,\n\t\tskipIfBlocked: true,\n\t\tdestChan:      ch,\n\t})\n\n\treturn ch\n}\n\n// NewTicker returns a new Ticker.\nfunc (f *FakeClock) NewTicker(d time.Duration) clock.Ticker {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\ttickTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // hold one tick\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime:    tickTime,\n\t\tstepInterval:  d,\n\t\tskipIfBlocked: true,\n\t\tdestChan:      ch,\n\t})\n\n\treturn &fakeTicker{\n\t\tc: ch,\n\t}\n}\n\n// Step moves the clock by Duration and notifies anyone that's called After,\n// Tick, or NewTimer.\nfunc (f *FakeClock) Step(d time.Duration) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.setTimeLocked(f.time.Add(d))\n}\n\n// SetTime sets the time.\nfunc (f *FakeClock) SetTime(t time.Time) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.setTimeLocked(t)\n}\n\n// Actually changes the time and checks any waiters. f must be write-locked.\nfunc (f *FakeClock) setTimeLocked(t time.Time) {\n\tf.time = t\n\tnewWaiters := make([]*fakeClockWaiter, 0, len(f.waiters))\n\tfor i := range f.waiters {\n\t\tw := f.waiters[i]\n\t\tif !w.targetTime.After(t) {\n\t\t\tif w.skipIfBlocked {\n\t\t\t\tselect {\n\t\t\t\tcase w.destChan <- t:\n\t\t\t\t\tw.fired = true\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tw.destChan <- t\n\t\t\t\tw.fired = true\n\t\t\t}\n\n\t\t\tif w.afterFunc != nil {\n\t\t\t\tw.afterFunc()\n\t\t\t}\n\n\t\t\tif w.stepInterval > 0 {\n\t\t\t\tfor !w.targetTime.After(t) {\n\t\t\t\t\tw.targetTime = w.targetTime.Add(w.stepInterval)\n\t\t\t\t}\n\t\t\t\tnewWaiters = append(newWaiters, w)\n\t\t\t}\n\n\t\t} else {\n\t\t\tnewWaiters = append(newWaiters, f.waiters[i])\n\t\t}\n\t}\n\tf.waiters = newWaiters\n}\n\n// HasWaiters returns true if After or AfterFunc has been called on f but not yet satisfied (so you can\n// write race-free tests).\nfunc (f *FakeClock) HasWaiters() bool {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn len(f.waiters) > 0\n}\n\n// Sleep is akin to time.Sleep\nfunc (f *FakeClock) Sleep(d time.Duration) {\n\tf.Step(d)\n}\n\n// IntervalClock implements clock.PassiveClock, but each invocation of Now steps the clock forward the specified duration.\n// IntervalClock technically implements the other methods of clock.Clock, but each implementation is just a panic.\n//\n// Deprecated: See SimpleIntervalClock for an alternative that only has the methods of PassiveClock.\ntype IntervalClock struct {\n\tTime     time.Time\n\tDuration time.Duration\n}\n\n// Now returns i's time.\nfunc (i *IntervalClock) Now() time.Time {\n\ti.Time = i.Time.Add(i.Duration)\n\treturn i.Time\n}\n\n// Since returns time since the time in i.\nfunc (i *IntervalClock) Since(ts time.Time) time.Duration {\n\treturn i.Time.Sub(ts)\n}\n\n// After is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) After(d time.Duration) <-chan time.Time {\n\tpanic(\"IntervalClock doesn't implement After\")\n}\n\n// NewTimer is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) NewTimer(d time.Duration) clock.Timer {\n\tpanic(\"IntervalClock doesn't implement NewTimer\")\n}\n\n// AfterFunc is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) AfterFunc(d time.Duration, f func()) clock.Timer {\n\tpanic(\"IntervalClock doesn't implement AfterFunc\")\n}\n\n// Tick is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) Tick(d time.Duration) <-chan time.Time {\n\tpanic(\"IntervalClock doesn't implement Tick\")\n}\n\n// NewTicker has no implementation yet and is omitted.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) NewTicker(d time.Duration) clock.Ticker {\n\tpanic(\"IntervalClock doesn't implement NewTicker\")\n}\n\n// Sleep is unimplemented, will panic.\nfunc (*IntervalClock) Sleep(d time.Duration) {\n\tpanic(\"IntervalClock doesn't implement Sleep\")\n}\n\nvar _ = clock.Timer(&fakeTimer{})\n\n// fakeTimer implements clock.Timer based on a FakeClock.\ntype fakeTimer struct {\n\tfakeClock *FakeClock\n\twaiter    fakeClockWaiter\n}\n\n// C returns the channel that notifies when this timer has fired.\nfunc (f *fakeTimer) C() <-chan time.Time {\n\treturn f.waiter.destChan\n}\n\n// Stop stops the timer and returns true if the timer has not yet fired, or false otherwise.\nfunc (f *fakeTimer) Stop() bool {\n\tf.fakeClock.lock.Lock()\n\tdefer f.fakeClock.lock.Unlock()\n\n\tnewWaiters := make([]*fakeClockWaiter, 0, len(f.fakeClock.waiters))\n\tfor i := range f.fakeClock.waiters {\n\t\tw := f.fakeClock.waiters[i]\n\t\tif w != &f.waiter {\n\t\t\tnewWaiters = append(newWaiters, w)\n\t\t}\n\t}\n\n\tf.fakeClock.waiters = newWaiters\n\n\treturn !f.waiter.fired\n}\n\n// Reset resets the timer to the fake clock's \"now\" + d. It returns true if the timer has not yet\n// fired, or false otherwise.\nfunc (f *fakeTimer) Reset(d time.Duration) bool {\n\tf.fakeClock.lock.Lock()\n\tdefer f.fakeClock.lock.Unlock()\n\n\tactive := !f.waiter.fired\n\n\tf.waiter.fired = false\n\tf.waiter.targetTime = f.fakeClock.time.Add(d)\n\n\tvar isWaiting bool\n\tfor i := range f.fakeClock.waiters {\n\t\tw := f.fakeClock.waiters[i]\n\t\tif w == &f.waiter {\n\t\t\tisWaiting = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !isWaiting {\n\t\tf.fakeClock.waiters = append(f.fakeClock.waiters, &f.waiter)\n\t}\n\n\treturn active\n}\n\ntype fakeTicker struct {\n\tc <-chan time.Time\n}\n\nfunc (t *fakeTicker) C() <-chan time.Time {\n\treturn t.c\n}\n\nfunc (t *fakeTicker) Stop() {\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/testing/simple_interval_clock.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t_ = clock.PassiveClock(&SimpleIntervalClock{})\n)\n\n// SimpleIntervalClock implements clock.PassiveClock, but each invocation of Now steps the clock forward the specified duration\ntype SimpleIntervalClock struct {\n\tTime     time.Time\n\tDuration time.Duration\n}\n\n// Now returns i's time.\nfunc (i *SimpleIntervalClock) Now() time.Time {\n\ti.Time = i.Time.Add(i.Duration)\n\treturn i.Time\n}\n\n// Since returns time since the time in i.\nfunc (i *SimpleIntervalClock) Since(ts time.Time) time.Duration {\n\treturn i.Time.Sub(ts)\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/integer/integer.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage integer\n\n// IntMax returns the maximum of the params\nfunc IntMax(a, b int) int {\n\tif b > a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// IntMin returns the minimum of the params\nfunc IntMin(a, b int) int {\n\tif b < a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Int32Max returns the maximum of the params\nfunc Int32Max(a, b int32) int32 {\n\tif b > a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Int32Min returns the minimum of the params\nfunc Int32Min(a, b int32) int32 {\n\tif b < a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Int64Max returns the maximum of the params\nfunc Int64Max(a, b int64) int64 {\n\tif b > a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Int64Min returns the minimum of the params\nfunc Int64Min(a, b int64) int64 {\n\tif b < a {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// RoundToInt32 rounds floats into integer numbers.\nfunc RoundToInt32(a float64) int32 {\n\tif a < 0 {\n\t\treturn int32(a - 0.5)\n\t}\n\treturn int32(a + 0.5)\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/LICENSE",
    "content": "Copyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/net/ip.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// IP address manipulations\n//\n// IPv4 addresses are 4 bytes; IPv6 addresses are 16 bytes.\n// An IPv4 address can be converted to an IPv6 address by\n// adding a canonical prefix (10 zeros, 2 0xFFs).\n// This library accepts either size of byte slice but always\n// returns 16-byte addresses.\n\npackage net\n\n///////////////////////////////////////////////////////////////////////////////\n// NOTE: This file was forked because we need to maintain backwards-compatible\n// IP parsing logic, which was changed in a correct but incompatible way in\n// go-1.17.\n//\n// See https://issue.k8s.io/100895\n///////////////////////////////////////////////////////////////////////////////\n\nimport (\n\tstdnet \"net\"\n)\n\n//\n// Lean on the standard net lib as much as possible.\n//\n\ntype IP = stdnet.IP\ntype IPNet = stdnet.IPNet\ntype ParseError = stdnet.ParseError\n\nconst IPv4len = stdnet.IPv4len\nconst IPv6len = stdnet.IPv6len\n\nvar CIDRMask = stdnet.CIDRMask\nvar IPv4 = stdnet.IPv4\n\n// Parse IPv4 address (d.d.d.d).\nfunc parseIPv4(s string) IP {\n\tvar p [IPv4len]byte\n\tfor i := 0; i < IPv4len; i++ {\n\t\tif len(s) == 0 {\n\t\t\t// Missing octets.\n\t\t\treturn nil\n\t\t}\n\t\tif i > 0 {\n\t\t\tif s[0] != '.' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ts = s[1:]\n\t\t}\n\t\tn, c, ok := dtoi(s)\n\t\tif !ok || n > 0xFF {\n\t\t\treturn nil\n\t\t}\n\t\t//\n\t\t// NOTE: This correct check was added for go-1.17, but is a\n\t\t// backwards-incompatible change for kubernetes users, who might have\n\t\t// stored data which uses these leading zeroes already.\n\t\t//\n\t\t// See https://issue.k8s.io/100895\n\t\t//\n\t\t//if c > 1 && s[0] == '0' {\n\t\t//\t// Reject non-zero components with leading zeroes.\n\t\t//\treturn nil\n\t\t//}\n\t\ts = s[c:]\n\t\tp[i] = byte(n)\n\t}\n\tif len(s) != 0 {\n\t\treturn nil\n\t}\n\treturn IPv4(p[0], p[1], p[2], p[3])\n}\n\n// parseIPv6 parses s as a literal IPv6 address described in RFC 4291\n// and RFC 5952.\nfunc parseIPv6(s string) (ip IP) {\n\tip = make(IP, IPv6len)\n\tellipsis := -1 // position of ellipsis in ip\n\n\t// Might have leading ellipsis\n\tif len(s) >= 2 && s[0] == ':' && s[1] == ':' {\n\t\tellipsis = 0\n\t\ts = s[2:]\n\t\t// Might be only ellipsis\n\t\tif len(s) == 0 {\n\t\t\treturn ip\n\t\t}\n\t}\n\n\t// Loop, parsing hex numbers followed by colon.\n\ti := 0\n\tfor i < IPv6len {\n\t\t// Hex number.\n\t\tn, c, ok := xtoi(s)\n\t\tif !ok || n > 0xFFFF {\n\t\t\treturn nil\n\t\t}\n\n\t\t// If followed by dot, might be in trailing IPv4.\n\t\tif c < len(s) && s[c] == '.' {\n\t\t\tif ellipsis < 0 && i != IPv6len-IPv4len {\n\t\t\t\t// Not the right place.\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif i+IPv4len > IPv6len {\n\t\t\t\t// Not enough room.\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tip4 := parseIPv4(s)\n\t\t\tif ip4 == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tip[i] = ip4[12]\n\t\t\tip[i+1] = ip4[13]\n\t\t\tip[i+2] = ip4[14]\n\t\t\tip[i+3] = ip4[15]\n\t\t\ts = \"\"\n\t\t\ti += IPv4len\n\t\t\tbreak\n\t\t}\n\n\t\t// Save this 16-bit chunk.\n\t\tip[i] = byte(n >> 8)\n\t\tip[i+1] = byte(n)\n\t\ti += 2\n\n\t\t// Stop at end of string.\n\t\ts = s[c:]\n\t\tif len(s) == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// Otherwise must be followed by colon and more.\n\t\tif s[0] != ':' || len(s) == 1 {\n\t\t\treturn nil\n\t\t}\n\t\ts = s[1:]\n\n\t\t// Look for ellipsis.\n\t\tif s[0] == ':' {\n\t\t\tif ellipsis >= 0 { // already have one\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tellipsis = i\n\t\t\ts = s[1:]\n\t\t\tif len(s) == 0 { // can be at end\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Must have used entire string.\n\tif len(s) != 0 {\n\t\treturn nil\n\t}\n\n\t// If didn't parse enough, expand ellipsis.\n\tif i < IPv6len {\n\t\tif ellipsis < 0 {\n\t\t\treturn nil\n\t\t}\n\t\tn := IPv6len - i\n\t\tfor j := i - 1; j >= ellipsis; j-- {\n\t\t\tip[j+n] = ip[j]\n\t\t}\n\t\tfor j := ellipsis + n - 1; j >= ellipsis; j-- {\n\t\t\tip[j] = 0\n\t\t}\n\t} else if ellipsis >= 0 {\n\t\t// Ellipsis must represent at least one 0 group.\n\t\treturn nil\n\t}\n\treturn ip\n}\n\n// ParseIP parses s as an IP address, returning the result.\n// The string s can be in IPv4 dotted decimal (\"192.0.2.1\"), IPv6\n// (\"2001:db8::68\"), or IPv4-mapped IPv6 (\"::ffff:192.0.2.1\") form.\n// If s is not a valid textual representation of an IP address,\n// ParseIP returns nil.\nfunc ParseIP(s string) IP {\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '.':\n\t\t\treturn parseIPv4(s)\n\t\tcase ':':\n\t\t\treturn parseIPv6(s)\n\t\t}\n\t}\n\treturn nil\n}\n\n// ParseCIDR parses s as a CIDR notation IP address and prefix length,\n// like \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in\n// RFC 4632 and RFC 4291.\n//\n// It returns the IP address and the network implied by the IP and\n// prefix length.\n// For example, ParseCIDR(\"192.0.2.1/24\") returns the IP address\n// 192.0.2.1 and the network 192.0.2.0/24.\nfunc ParseCIDR(s string) (IP, *IPNet, error) {\n\ti := indexByteString(s, '/')\n\tif i < 0 {\n\t\treturn nil, nil, &ParseError{Type: \"CIDR address\", Text: s}\n\t}\n\taddr, mask := s[:i], s[i+1:]\n\tiplen := IPv4len\n\tip := parseIPv4(addr)\n\tif ip == nil {\n\t\tiplen = IPv6len\n\t\tip = parseIPv6(addr)\n\t}\n\tn, i, ok := dtoi(mask)\n\tif ip == nil || !ok || i != len(mask) || n < 0 || n > 8*iplen {\n\t\treturn nil, nil, &ParseError{Type: \"CIDR address\", Text: s}\n\t}\n\tm := CIDRMask(n, 8*iplen)\n\treturn ip, &IPNet{IP: ip.Mask(m), Mask: m}, nil\n}\n\n// This is copied from go/src/internal/bytealg, which includes versions\n// optimized for various platforms.  Those optimizations are elided here so we\n// don't have to maintain them.\nfunc indexByteString(s string, c byte) int {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] == c {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/net/parse.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Simple file i/o and string manipulation, to avoid\n// depending on strconv and bufio and strings.\n\npackage net\n\n///////////////////////////////////////////////////////////////////////////////\n// NOTE: This file was forked because it is used by other code that needed to\n// be forked, not because it is used on its own.\n///////////////////////////////////////////////////////////////////////////////\n\n// Bigger than we need, not too big to worry about overflow\nconst big = 0xFFFFFF\n\n// Decimal to integer.\n// Returns number, characters consumed, success.\nfunc dtoi(s string) (n int, i int, ok bool) {\n\tn = 0\n\tfor i = 0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {\n\t\tn = n*10 + int(s[i]-'0')\n\t\tif n >= big {\n\t\t\treturn big, i, false\n\t\t}\n\t}\n\tif i == 0 {\n\t\treturn 0, 0, false\n\t}\n\treturn n, i, true\n}\n\n// Hexadecimal to integer.\n// Returns number, characters consumed, success.\nfunc xtoi(s string) (n int, i int, ok bool) {\n\tn = 0\n\tfor i = 0; i < len(s); i++ {\n\t\tif '0' <= s[i] && s[i] <= '9' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i] - '0')\n\t\t} else if 'a' <= s[i] && s[i] <= 'f' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i]-'a') + 10\n\t\t} else if 'A' <= s[i] && s[i] <= 'F' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i]-'A') + 10\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t\tif n >= big {\n\t\t\treturn 0, i, false\n\t\t}\n\t}\n\tif i == 0 {\n\t\treturn 0, i, false\n\t}\n\treturn n, i, true\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/ipfamily.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n)\n\n// IPFamily refers to a specific family if not empty, i.e. \"4\" or \"6\".\ntype IPFamily string\n\n// Constants for valid IPFamilys:\nconst (\n\tIPFamilyUnknown IPFamily = \"\"\n\n\tIPv4 IPFamily = \"4\"\n\tIPv6 IPFamily = \"6\"\n)\n\n// IsDualStackIPs returns true if:\n// - all elements of ips are valid\n// - at least one IP from each family (v4 and v6) is present\nfunc IsDualStackIPs(ips []net.IP) (bool, error) {\n\tv4Found := false\n\tv6Found := false\n\tfor i, ip := range ips {\n\t\tswitch IPFamilyOf(ip) {\n\t\tcase IPv4:\n\t\t\tv4Found = true\n\t\tcase IPv6:\n\t\t\tv6Found = true\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"invalid IP[%d]: %v\", i, ip)\n\t\t}\n\t}\n\n\treturn (v4Found && v6Found), nil\n}\n\n// IsDualStackIPStrings returns true if:\n// - all elements of ips can be parsed as IPs\n// - at least one IP from each family (v4 and v6) is present\nfunc IsDualStackIPStrings(ips []string) (bool, error) {\n\tparsedIPs := make([]net.IP, 0, len(ips))\n\tfor i, ip := range ips {\n\t\tparsedIP := ParseIPSloppy(ip)\n\t\tif parsedIP == nil {\n\t\t\treturn false, fmt.Errorf(\"invalid IP[%d]: %v\", i, ip)\n\t\t}\n\t\tparsedIPs = append(parsedIPs, parsedIP)\n\t}\n\treturn IsDualStackIPs(parsedIPs)\n}\n\n// IsDualStackCIDRs returns true if:\n// - all elements of cidrs are non-nil\n// - at least one CIDR from each family (v4 and v6) is present\nfunc IsDualStackCIDRs(cidrs []*net.IPNet) (bool, error) {\n\tv4Found := false\n\tv6Found := false\n\tfor i, cidr := range cidrs {\n\t\tswitch IPFamilyOfCIDR(cidr) {\n\t\tcase IPv4:\n\t\t\tv4Found = true\n\t\tcase IPv6:\n\t\t\tv6Found = true\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"invalid CIDR[%d]: %v\", i, cidr)\n\t\t}\n\t}\n\n\treturn (v4Found && v6Found), nil\n}\n\n// IsDualStackCIDRStrings returns if\n// - all elements of cidrs can be parsed as CIDRs\n// - at least one CIDR from each family (v4 and v6) is present\nfunc IsDualStackCIDRStrings(cidrs []string) (bool, error) {\n\tparsedCIDRs, err := ParseCIDRs(cidrs)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn IsDualStackCIDRs(parsedCIDRs)\n}\n\n// IPFamilyOf returns the IP family of ip, or IPFamilyUnknown if it is invalid.\nfunc IPFamilyOf(ip net.IP) IPFamily {\n\tswitch {\n\tcase ip.To4() != nil:\n\t\treturn IPv4\n\tcase ip.To16() != nil:\n\t\treturn IPv6\n\tdefault:\n\t\treturn IPFamilyUnknown\n\t}\n}\n\n// IPFamilyOfString returns the IP family of ip, or IPFamilyUnknown if ip cannot\n// be parsed as an IP.\nfunc IPFamilyOfString(ip string) IPFamily {\n\treturn IPFamilyOf(ParseIPSloppy(ip))\n}\n\n// IPFamilyOfCIDR returns the IP family of cidr.\nfunc IPFamilyOfCIDR(cidr *net.IPNet) IPFamily {\n\tif cidr == nil {\n\t\treturn IPFamilyUnknown\n\t}\n\treturn IPFamilyOf(cidr.IP)\n}\n\n// IPFamilyOfCIDRString returns the IP family of cidr.\nfunc IPFamilyOfCIDRString(cidr string) IPFamily {\n\tip, _, _ := ParseCIDRSloppy(cidr)\n\treturn IPFamilyOf(ip)\n}\n\n// IsIPv6 returns true if netIP is IPv6 (and false if it is IPv4, nil, or invalid).\nfunc IsIPv6(netIP net.IP) bool {\n\treturn IPFamilyOf(netIP) == IPv6\n}\n\n// IsIPv6String returns true if ip contains a single IPv6 address and nothing else. It\n// returns false if ip is an empty string, an IPv4 address, or anything else that is not a\n// single IPv6 address.\nfunc IsIPv6String(ip string) bool {\n\treturn IPFamilyOfString(ip) == IPv6\n}\n\n// IsIPv6CIDR returns true if a cidr is a valid IPv6 CIDR. It returns false if cidr is\n// nil or an IPv4 CIDR. Its behavior is not defined if cidr is invalid.\nfunc IsIPv6CIDR(cidr *net.IPNet) bool {\n\treturn IPFamilyOfCIDR(cidr) == IPv6\n}\n\n// IsIPv6CIDRString returns true if cidr contains a single IPv6 CIDR and nothing else. It\n// returns false if cidr is an empty string, an IPv4 CIDR, or anything else that is not a\n// single valid IPv6 CIDR.\nfunc IsIPv6CIDRString(cidr string) bool {\n\treturn IPFamilyOfCIDRString(cidr) == IPv6\n}\n\n// IsIPv4 returns true if netIP is IPv4 (and false if it is IPv6, nil, or invalid).\nfunc IsIPv4(netIP net.IP) bool {\n\treturn IPFamilyOf(netIP) == IPv4\n}\n\n// IsIPv4String returns true if ip contains a single IPv4 address and nothing else. It\n// returns false if ip is an empty string, an IPv6 address, or anything else that is not a\n// single IPv4 address.\nfunc IsIPv4String(ip string) bool {\n\treturn IPFamilyOfString(ip) == IPv4\n}\n\n// IsIPv4CIDR returns true if cidr is a valid IPv4 CIDR. It returns false if cidr is nil\n// or an IPv6 CIDR. Its behavior is not defined if cidr is invalid.\nfunc IsIPv4CIDR(cidr *net.IPNet) bool {\n\treturn IPFamilyOfCIDR(cidr) == IPv4\n}\n\n// IsIPv4CIDRString returns true if cidr contains a single IPv4 CIDR and nothing else. It\n// returns false if cidr is an empty string, an IPv6 CIDR, or anything else that is not a\n// single valid IPv4 CIDR.\nfunc IsIPv4CIDRString(cidr string) bool {\n\treturn IPFamilyOfCIDRString(cidr) == IPv4\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/ipnet.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNetSet maps string to net.IPNet.\ntype IPNetSet map[string]*net.IPNet\n\n// ParseIPNets parses string slice to IPNetSet.\nfunc ParseIPNets(specs ...string) (IPNetSet, error) {\n\tipnetset := make(IPNetSet)\n\tfor _, spec := range specs {\n\t\tspec = strings.TrimSpace(spec)\n\t\t_, ipnet, err := ParseCIDRSloppy(spec)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tk := ipnet.String() // In case of normalization\n\t\tipnetset[k] = ipnet\n\t}\n\treturn ipnetset, nil\n}\n\n// Insert adds items to the set.\nfunc (s IPNetSet) Insert(items ...*net.IPNet) {\n\tfor _, item := range items {\n\t\ts[item.String()] = item\n\t}\n}\n\n// Delete removes all items from the set.\nfunc (s IPNetSet) Delete(items ...*net.IPNet) {\n\tfor _, item := range items {\n\t\tdelete(s, item.String())\n\t}\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s IPNetSet) Has(item *net.IPNet) bool {\n\t_, contained := s[item.String()]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s IPNetSet) HasAll(items ...*net.IPNet) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Difference returns a set of objects that are not in s2\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s IPNetSet) Difference(s2 IPNetSet) IPNetSet {\n\tresult := make(IPNetSet)\n\tfor k, i := range s {\n\t\t_, found := s2[k]\n\t\tif found {\n\t\t\tcontinue\n\t\t}\n\t\tresult[k] = i\n\t}\n\treturn result\n}\n\n// StringSlice returns a []string with the String representation of each element in the set.\n// Order is undefined.\nfunc (s IPNetSet) StringSlice() []string {\n\ta := make([]string, 0, len(s))\n\tfor k := range s {\n\t\ta = append(a, k)\n\t}\n\treturn a\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s IPNetSet) IsSuperset(s2 IPNetSet) bool {\n\tfor k := range s2 {\n\t\t_, found := s[k]\n\t\tif !found {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s IPNetSet) Equal(s2 IPNetSet) bool {\n\treturn len(s) == len(s2) && s.IsSuperset(s2)\n}\n\n// Len returns the size of the set.\nfunc (s IPNetSet) Len() int {\n\treturn len(s)\n}\n\n// IPSet maps string to net.IP\ntype IPSet map[string]net.IP\n\n// ParseIPSet parses string slice to IPSet\nfunc ParseIPSet(items ...string) (IPSet, error) {\n\tipset := make(IPSet)\n\tfor _, item := range items {\n\t\tip := ParseIPSloppy(strings.TrimSpace(item))\n\t\tif ip == nil {\n\t\t\treturn nil, fmt.Errorf(\"error parsing IP %q\", item)\n\t\t}\n\n\t\tipset[ip.String()] = ip\n\t}\n\n\treturn ipset, nil\n}\n\n// Insert adds items to the set.\nfunc (s IPSet) Insert(items ...net.IP) {\n\tfor _, item := range items {\n\t\ts[item.String()] = item\n\t}\n}\n\n// Delete removes all items from the set.\nfunc (s IPSet) Delete(items ...net.IP) {\n\tfor _, item := range items {\n\t\tdelete(s, item.String())\n\t}\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s IPSet) Has(item net.IP) bool {\n\t_, contained := s[item.String()]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s IPSet) HasAll(items ...net.IP) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Difference returns a set of objects that are not in s2\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s IPSet) Difference(s2 IPSet) IPSet {\n\tresult := make(IPSet)\n\tfor k, i := range s {\n\t\t_, found := s2[k]\n\t\tif found {\n\t\t\tcontinue\n\t\t}\n\t\tresult[k] = i\n\t}\n\treturn result\n}\n\n// StringSlice returns a []string with the String representation of each element in the set.\n// Order is undefined.\nfunc (s IPSet) StringSlice() []string {\n\ta := make([]string, 0, len(s))\n\tfor k := range s {\n\t\ta = append(a, k)\n\t}\n\treturn a\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s IPSet) IsSuperset(s2 IPSet) bool {\n\tfor k := range s2 {\n\t\t_, found := s[k]\n\t\tif !found {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s IPSet) Equal(s2 IPSet) bool {\n\treturn len(s) == len(s2) && s.IsSuperset(s2)\n}\n\n// Len returns the size of the set.\nfunc (s IPSet) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/net.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/big\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// ParseCIDRs parses a list of cidrs and return error if any is invalid.\n// order is maintained\nfunc ParseCIDRs(cidrsString []string) ([]*net.IPNet, error) {\n\tcidrs := make([]*net.IPNet, 0, len(cidrsString))\n\tfor i, cidrString := range cidrsString {\n\t\t_, cidr, err := ParseCIDRSloppy(cidrString)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid CIDR[%d]: %v (%v)\", i, cidr, err)\n\t\t}\n\t\tcidrs = append(cidrs, cidr)\n\t}\n\treturn cidrs, nil\n}\n\n// ParsePort parses a string representing an IP port.  If the string is not a\n// valid port number, this returns an error.\nfunc ParsePort(port string, allowZero bool) (int, error) {\n\tportInt, err := strconv.ParseUint(port, 10, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif portInt == 0 && !allowZero {\n\t\treturn 0, errors.New(\"0 is not a valid port number\")\n\t}\n\treturn int(portInt), nil\n}\n\n// BigForIP creates a big.Int based on the provided net.IP\nfunc BigForIP(ip net.IP) *big.Int {\n\t// NOTE: Convert to 16-byte representation so we can\n\t// handle v4 and v6 values the same way.\n\treturn big.NewInt(0).SetBytes(ip.To16())\n}\n\n// AddIPOffset adds the provided integer offset to a base big.Int representing a net.IP\n// NOTE: If you started with a v4 address and overflow it, you get a v6 result.\nfunc AddIPOffset(base *big.Int, offset int) net.IP {\n\tr := big.NewInt(0).Add(base, big.NewInt(int64(offset))).Bytes()\n\tr = append(make([]byte, 16), r...)\n\treturn net.IP(r[len(r)-16:])\n}\n\n// RangeSize returns the size of a range in valid addresses.\n// returns the size of the subnet (or math.MaxInt64 if the range size would overflow int64)\nfunc RangeSize(subnet *net.IPNet) int64 {\n\tones, bits := subnet.Mask.Size()\n\tif bits == 32 && (bits-ones) >= 31 || bits == 128 && (bits-ones) >= 127 {\n\t\treturn 0\n\t}\n\t// this checks that we are not overflowing an int64\n\tif bits-ones >= 63 {\n\t\treturn math.MaxInt64\n\t}\n\treturn int64(1) << uint(bits-ones)\n}\n\n// GetIndexedIP returns a net.IP that is subnet.IP + index in the contiguous IP space.\nfunc GetIndexedIP(subnet *net.IPNet, index int) (net.IP, error) {\n\tip := AddIPOffset(BigForIP(subnet.IP), index)\n\tif !subnet.Contains(ip) {\n\t\treturn nil, fmt.Errorf(\"can't generate IP with index %d from subnet. subnet too small. subnet: %q\", index, subnet)\n\t}\n\treturn ip, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/parse.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\tforkednet \"k8s.io/utils/internal/third_party/forked/golang/net\"\n)\n\n// ParseIPSloppy is identical to Go's standard net.ParseIP, except that it allows\n// leading '0' characters on numbers.  Go used to allow this and then changed\n// the behavior in 1.17.  We're choosing to keep it for compat with potential\n// stored values.\nvar ParseIPSloppy = forkednet.ParseIP\n\n// ParseCIDRSloppy is identical to Go's standard net.ParseCIDR, except that it allows\n// leading '0' characters on numbers.  Go used to allow this and then changed\n// the behavior in 1.17.  We're choosing to keep it for compat with potential\n// stored values.\nvar ParseCIDRSloppy = forkednet.ParseCIDR\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/port.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Protocol is a network protocol support by LocalPort.\ntype Protocol string\n\n// Constants for valid protocols:\nconst (\n\tTCP Protocol = \"TCP\"\n\tUDP Protocol = \"UDP\"\n)\n\n// LocalPort represents an IP address and port pair along with a protocol\n// and potentially a specific IP family.\n// A LocalPort can be opened and subsequently closed.\ntype LocalPort struct {\n\t// Description is an arbitrary string.\n\tDescription string\n\t// IP is the IP address part of a given local port.\n\t// If this string is empty, the port binds to all local IP addresses.\n\tIP string\n\t// If IPFamily is not empty, the port binds only to addresses of this\n\t// family.\n\t// IF empty along with IP, bind to local addresses of any family.\n\tIPFamily IPFamily\n\t// Port is the port number.\n\t// A value of 0 causes a port to be automatically chosen.\n\tPort int\n\t// Protocol is the protocol, e.g. TCP\n\tProtocol Protocol\n}\n\n// NewLocalPort returns a LocalPort instance and ensures IPFamily and IP are\n// consistent and that the given protocol is valid.\nfunc NewLocalPort(desc, ip string, ipFamily IPFamily, port int, protocol Protocol) (*LocalPort, error) {\n\tif protocol != TCP && protocol != UDP {\n\t\treturn nil, fmt.Errorf(\"Unsupported protocol %s\", protocol)\n\t}\n\tif ipFamily != IPFamilyUnknown && ipFamily != IPv4 && ipFamily != IPv6 {\n\t\treturn nil, fmt.Errorf(\"Invalid IP family %s\", ipFamily)\n\t}\n\tif ip != \"\" {\n\t\tparsedIP := ParseIPSloppy(ip)\n\t\tif parsedIP == nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid ip address %s\", ip)\n\t\t}\n\t\tif ipFamily != IPFamilyUnknown {\n\t\t\tif IPFamily(parsedIP) != ipFamily {\n\t\t\t\treturn nil, fmt.Errorf(\"ip address and family mismatch %s, %s\", ip, ipFamily)\n\t\t\t}\n\t\t}\n\t}\n\treturn &LocalPort{Description: desc, IP: ip, IPFamily: ipFamily, Port: port, Protocol: protocol}, nil\n}\n\nfunc (lp *LocalPort) String() string {\n\tipPort := net.JoinHostPort(lp.IP, strconv.Itoa(lp.Port))\n\treturn fmt.Sprintf(\"%q (%s/%s%s)\", lp.Description, ipPort, strings.ToLower(string(lp.Protocol)), lp.IPFamily)\n}\n\n// Closeable closes an opened LocalPort.\ntype Closeable interface {\n\tClose() error\n}\n\n// PortOpener can open a LocalPort and allows later closing it.\ntype PortOpener interface {\n\tOpenLocalPort(lp *LocalPort) (Closeable, error)\n}\n\ntype listenPortOpener struct{}\n\n// ListenPortOpener opens ports by calling bind() and listen().\nvar ListenPortOpener listenPortOpener\n\n// OpenLocalPort holds the given local port open.\nfunc (l *listenPortOpener) OpenLocalPort(lp *LocalPort) (Closeable, error) {\n\treturn openLocalPort(lp)\n}\n\nfunc openLocalPort(lp *LocalPort) (Closeable, error) {\n\tvar socket Closeable\n\thostPort := net.JoinHostPort(lp.IP, strconv.Itoa(lp.Port))\n\tswitch lp.Protocol {\n\tcase TCP:\n\t\tnetwork := \"tcp\" + string(lp.IPFamily)\n\t\tlistener, err := net.Listen(network, hostPort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsocket = listener\n\tcase UDP:\n\t\tnetwork := \"udp\" + string(lp.IPFamily)\n\t\taddr, err := net.ResolveUDPAddr(network, hostPort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconn, err := net.ListenUDP(network, addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsocket = conn\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown protocol %q\", lp.Protocol)\n\t}\n\treturn socket, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/strings/slices/slices.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package slices defines various functions useful with slices of string type.\n// The goal is to be as close as possible to\n// https://github.com/golang/go/issues/45955. Ideal would be if we can just\n// replace \"stringslices\" if the \"slices\" package becomes standard.\npackage slices\n\n// Equal reports whether two slices are equal: the same length and all\n// elements equal. If the lengths are different, Equal returns false.\n// Otherwise, the elements are compared in index order, and the\n// comparison stops at the first unequal pair.\nfunc Equal(s1, s2 []string) bool {\n\tif len(s1) != len(s2) {\n\t\treturn false\n\t}\n\tfor i, n := range s1 {\n\t\tif n != s2[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Filter appends to d each element e of s for which keep(e) returns true.\n// It returns the modified d. d may be s[:0], in which case the kept\n// elements will be stored in the same slice.\n// if the slices overlap in some other way, the results are unspecified.\n// To create a new slice with the filtered results, pass nil for d.\nfunc Filter(d, s []string, keep func(string) bool) []string {\n\tfor _, n := range s {\n\t\tif keep(n) {\n\t\t\td = append(d, n)\n\t\t}\n\t}\n\treturn d\n}\n\n// Contains reports whether v is present in s.\nfunc Contains(s []string, v string) bool {\n\treturn Index(s, v) >= 0\n}\n\n// Index returns the index of the first occurrence of v in s, or -1 if\n// not present.\nfunc Index(s []string, v string) int {\n\t// \"Contains\" may be replaced with \"Index(s, v) >= 0\":\n\t// https://github.com/golang/go/issues/45955#issuecomment-873377947\n\tfor i, n := range s {\n\t\tif n == v {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// Functions below are not in https://github.com/golang/go/issues/45955\n\n// Clone returns a new clone of s.\nfunc Clone(s []string) []string {\n\t// https://github.com/go101/go101/wiki/There-is-not-a-perfect-way-to-clone-slices-in-Go\n\tif s == nil {\n\t\treturn nil\n\t}\n\tc := make([]string, len(s))\n\tcopy(c, s)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/modules.txt",
    "content": "# cloud.google.com/go/compute/metadata v0.9.0\n## explicit; go 1.24.0\ncloud.google.com/go/compute/metadata\n# github.com/NVIDIA/go-nvml v0.12.0-2\n## explicit; go 1.15\ngithub.com/NVIDIA/go-nvml/pkg/dl\ngithub.com/NVIDIA/go-nvml/pkg/nvml\n# github.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48\n## explicit; go 1.14\ngithub.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml\n# github.com/beorn7/perks v1.0.1\n## explicit; go 1.11\ngithub.com/beorn7/perks/quantile\n# github.com/cespare/xxhash/v2 v2.3.0\n## explicit; go 1.11\ngithub.com/cespare/xxhash/v2\n# github.com/containerd/nri v0.5.0\n## explicit; go 1.19\ngithub.com/containerd/nri/pkg/api\ngithub.com/containerd/nri/pkg/log\ngithub.com/containerd/nri/pkg/net\ngithub.com/containerd/nri/pkg/net/multiplex\ngithub.com/containerd/nri/pkg/stub\n# github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3\n## explicit; go 1.13\ngithub.com/containerd/ttrpc\n# github.com/davecgh/go-spew v1.1.1\n## explicit\ngithub.com/davecgh/go-spew/spew\n# github.com/emicklei/go-restful/v3 v3.9.0\n## explicit; go 1.13\ngithub.com/emicklei/go-restful/v3\ngithub.com/emicklei/go-restful/v3/log\n# github.com/evanphx/json-patch v4.12.0+incompatible\n## explicit\ngithub.com/evanphx/json-patch\n# github.com/fsnotify/fsnotify v1.7.0\n## explicit; go 1.17\ngithub.com/fsnotify/fsnotify\n# github.com/go-logr/logr v1.4.3\n## explicit; go 1.18\ngithub.com/go-logr/logr\n# github.com/go-openapi/jsonpointer v0.19.6\n## explicit; go 1.13\ngithub.com/go-openapi/jsonpointer\n# github.com/go-openapi/jsonreference v0.20.1\n## explicit; go 1.13\ngithub.com/go-openapi/jsonreference\ngithub.com/go-openapi/jsonreference/internal\n# github.com/go-openapi/swag v0.22.3\n## explicit; go 1.18\ngithub.com/go-openapi/swag\n# github.com/gogo/protobuf v1.3.2\n## explicit; go 1.15\ngithub.com/gogo/protobuf/gogoproto\ngithub.com/gogo/protobuf/proto\ngithub.com/gogo/protobuf/protoc-gen-gogo/descriptor\ngithub.com/gogo/protobuf/sortkeys\n# github.com/golang/glog v1.2.5\n## explicit; go 1.19\ngithub.com/golang/glog\ngithub.com/golang/glog/internal/logsink\ngithub.com/golang/glog/internal/stackdump\n# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da\n## explicit\ngithub.com/golang/groupcache/lru\n# github.com/golang/protobuf v1.5.4\n## explicit; go 1.17\ngithub.com/golang/protobuf/proto\ngithub.com/golang/protobuf/ptypes\ngithub.com/golang/protobuf/ptypes/any\ngithub.com/golang/protobuf/ptypes/duration\ngithub.com/golang/protobuf/ptypes/timestamp\n# github.com/google/gnostic v0.5.7-v3refs\n## explicit; go 1.12\ngithub.com/google/gnostic/compiler\ngithub.com/google/gnostic/extensions\ngithub.com/google/gnostic/jsonschema\ngithub.com/google/gnostic/openapiv2\ngithub.com/google/gnostic/openapiv3\n# github.com/google/go-cmp v0.7.0\n## explicit; go 1.21\ngithub.com/google/go-cmp/cmp\ngithub.com/google/go-cmp/cmp/internal/diff\ngithub.com/google/go-cmp/cmp/internal/flags\ngithub.com/google/go-cmp/cmp/internal/function\ngithub.com/google/go-cmp/cmp/internal/value\n# github.com/google/gofuzz v1.1.0\n## explicit; go 1.12\ngithub.com/google/gofuzz\n# github.com/google/uuid v1.6.0\n## explicit\ngithub.com/google/uuid\n# github.com/josharian/intern v1.0.0\n## explicit; go 1.5\ngithub.com/josharian/intern\n# github.com/json-iterator/go v1.1.12\n## explicit; go 1.12\ngithub.com/json-iterator/go\n# github.com/mailru/easyjson v0.7.7\n## explicit; go 1.12\ngithub.com/mailru/easyjson/buffer\ngithub.com/mailru/easyjson/jlexer\ngithub.com/mailru/easyjson/jwriter\n# github.com/matttproud/golang_protobuf_extensions v1.0.4\n## explicit; go 1.9\ngithub.com/matttproud/golang_protobuf_extensions/pbutil\n# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd\n## explicit\ngithub.com/modern-go/concurrent\n# github.com/modern-go/reflect2 v1.0.2\n## explicit; go 1.12\ngithub.com/modern-go/reflect2\n# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822\n## explicit\ngithub.com/munnerz/goautoneg\n# github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb\n## explicit\ngithub.com/opencontainers/runtime-spec/specs-go\n# github.com/pkg/errors v0.9.1\n## explicit\ngithub.com/pkg/errors\n# github.com/pmezard/go-difflib v1.0.0\n## explicit\ngithub.com/pmezard/go-difflib/difflib\n# github.com/prometheus/client_golang v1.16.0\n## explicit; go 1.17\ngithub.com/prometheus/client_golang/prometheus\ngithub.com/prometheus/client_golang/prometheus/internal\ngithub.com/prometheus/client_golang/prometheus/promauto\ngithub.com/prometheus/client_golang/prometheus/promhttp\ngithub.com/prometheus/client_golang/prometheus/testutil\ngithub.com/prometheus/client_golang/prometheus/testutil/promlint\n# github.com/prometheus/client_model v0.4.0\n## explicit; go 1.18\ngithub.com/prometheus/client_model/go\n# github.com/prometheus/common v0.44.0\n## explicit; go 1.18\ngithub.com/prometheus/common/expfmt\ngithub.com/prometheus/common/internal/bitbucket.org/ww/goautoneg\ngithub.com/prometheus/common/model\n# github.com/prometheus/procfs v0.10.1\n## explicit; go 1.19\ngithub.com/prometheus/procfs\ngithub.com/prometheus/procfs/internal/fs\ngithub.com/prometheus/procfs/internal/util\n# github.com/sirupsen/logrus v1.8.3\n## explicit; go 1.13\ngithub.com/sirupsen/logrus\n# github.com/stretchr/testify v1.8.4\n## explicit; go 1.20\ngithub.com/stretchr/testify/assert\n# golang.org/x/net v0.48.0\n## explicit; go 1.24.0\ngolang.org/x/net/context\ngolang.org/x/net/http/httpguts\ngolang.org/x/net/http2\ngolang.org/x/net/http2/hpack\ngolang.org/x/net/idna\ngolang.org/x/net/internal/httpcommon\ngolang.org/x/net/internal/timeseries\ngolang.org/x/net/trace\n# golang.org/x/oauth2 v0.34.0\n## explicit; go 1.24.0\ngolang.org/x/oauth2\ngolang.org/x/oauth2/internal\n# golang.org/x/sys v0.39.0\n## explicit; go 1.24.0\ngolang.org/x/sys/plan9\ngolang.org/x/sys/unix\ngolang.org/x/sys/windows\ngolang.org/x/sys/windows/registry\n# golang.org/x/term v0.38.0\n## explicit; go 1.24.0\ngolang.org/x/term\n# golang.org/x/text v0.32.0\n## explicit; go 1.24.0\ngolang.org/x/text/secure/bidirule\ngolang.org/x/text/transform\ngolang.org/x/text/unicode/bidi\ngolang.org/x/text/unicode/norm\n# golang.org/x/time v0.0.0-20220210224613-90d013bbcef8\n## explicit\ngolang.org/x/time/rate\n# google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217\n## explicit; go 1.24.0\ngoogle.golang.org/genproto/googleapis/rpc/status\n# google.golang.org/grpc v1.79.3\n## explicit; go 1.24.0\ngoogle.golang.org/grpc\ngoogle.golang.org/grpc/attributes\ngoogle.golang.org/grpc/backoff\ngoogle.golang.org/grpc/balancer\ngoogle.golang.org/grpc/balancer/base\ngoogle.golang.org/grpc/balancer/endpointsharding\ngoogle.golang.org/grpc/balancer/grpclb/state\ngoogle.golang.org/grpc/balancer/pickfirst\ngoogle.golang.org/grpc/balancer/pickfirst/internal\ngoogle.golang.org/grpc/balancer/roundrobin\ngoogle.golang.org/grpc/binarylog/grpc_binarylog_v1\ngoogle.golang.org/grpc/channelz\ngoogle.golang.org/grpc/codes\ngoogle.golang.org/grpc/connectivity\ngoogle.golang.org/grpc/credentials\ngoogle.golang.org/grpc/credentials/insecure\ngoogle.golang.org/grpc/encoding\ngoogle.golang.org/grpc/encoding/internal\ngoogle.golang.org/grpc/encoding/proto\ngoogle.golang.org/grpc/experimental/stats\ngoogle.golang.org/grpc/grpclog\ngoogle.golang.org/grpc/grpclog/internal\ngoogle.golang.org/grpc/internal\ngoogle.golang.org/grpc/internal/backoff\ngoogle.golang.org/grpc/internal/balancer/gracefulswitch\ngoogle.golang.org/grpc/internal/balancer/weight\ngoogle.golang.org/grpc/internal/balancerload\ngoogle.golang.org/grpc/internal/binarylog\ngoogle.golang.org/grpc/internal/buffer\ngoogle.golang.org/grpc/internal/channelz\ngoogle.golang.org/grpc/internal/credentials\ngoogle.golang.org/grpc/internal/envconfig\ngoogle.golang.org/grpc/internal/grpclog\ngoogle.golang.org/grpc/internal/grpcsync\ngoogle.golang.org/grpc/internal/grpcutil\ngoogle.golang.org/grpc/internal/idle\ngoogle.golang.org/grpc/internal/metadata\ngoogle.golang.org/grpc/internal/pretty\ngoogle.golang.org/grpc/internal/proxyattributes\ngoogle.golang.org/grpc/internal/resolver\ngoogle.golang.org/grpc/internal/resolver/delegatingresolver\ngoogle.golang.org/grpc/internal/resolver/dns\ngoogle.golang.org/grpc/internal/resolver/dns/internal\ngoogle.golang.org/grpc/internal/resolver/passthrough\ngoogle.golang.org/grpc/internal/resolver/unix\ngoogle.golang.org/grpc/internal/serviceconfig\ngoogle.golang.org/grpc/internal/stats\ngoogle.golang.org/grpc/internal/status\ngoogle.golang.org/grpc/internal/syscall\ngoogle.golang.org/grpc/internal/transport\ngoogle.golang.org/grpc/internal/transport/networktype\ngoogle.golang.org/grpc/keepalive\ngoogle.golang.org/grpc/mem\ngoogle.golang.org/grpc/metadata\ngoogle.golang.org/grpc/peer\ngoogle.golang.org/grpc/resolver\ngoogle.golang.org/grpc/resolver/dns\ngoogle.golang.org/grpc/serviceconfig\ngoogle.golang.org/grpc/stats\ngoogle.golang.org/grpc/status\ngoogle.golang.org/grpc/tap\n# google.golang.org/protobuf v1.36.10\n## explicit; go 1.23\ngoogle.golang.org/protobuf/encoding/protojson\ngoogle.golang.org/protobuf/encoding/prototext\ngoogle.golang.org/protobuf/encoding/protowire\ngoogle.golang.org/protobuf/internal/descfmt\ngoogle.golang.org/protobuf/internal/descopts\ngoogle.golang.org/protobuf/internal/detrand\ngoogle.golang.org/protobuf/internal/editiondefaults\ngoogle.golang.org/protobuf/internal/editionssupport\ngoogle.golang.org/protobuf/internal/encoding/defval\ngoogle.golang.org/protobuf/internal/encoding/json\ngoogle.golang.org/protobuf/internal/encoding/messageset\ngoogle.golang.org/protobuf/internal/encoding/tag\ngoogle.golang.org/protobuf/internal/encoding/text\ngoogle.golang.org/protobuf/internal/errors\ngoogle.golang.org/protobuf/internal/filedesc\ngoogle.golang.org/protobuf/internal/filetype\ngoogle.golang.org/protobuf/internal/flags\ngoogle.golang.org/protobuf/internal/genid\ngoogle.golang.org/protobuf/internal/impl\ngoogle.golang.org/protobuf/internal/order\ngoogle.golang.org/protobuf/internal/pragma\ngoogle.golang.org/protobuf/internal/protolazy\ngoogle.golang.org/protobuf/internal/set\ngoogle.golang.org/protobuf/internal/strs\ngoogle.golang.org/protobuf/internal/version\ngoogle.golang.org/protobuf/proto\ngoogle.golang.org/protobuf/protoadapt\ngoogle.golang.org/protobuf/reflect/protodesc\ngoogle.golang.org/protobuf/reflect/protoreflect\ngoogle.golang.org/protobuf/reflect/protoregistry\ngoogle.golang.org/protobuf/runtime/protoiface\ngoogle.golang.org/protobuf/runtime/protoimpl\ngoogle.golang.org/protobuf/types/descriptorpb\ngoogle.golang.org/protobuf/types/gofeaturespb\ngoogle.golang.org/protobuf/types/known/anypb\ngoogle.golang.org/protobuf/types/known/durationpb\ngoogle.golang.org/protobuf/types/known/timestamppb\n# gopkg.in/inf.v0 v0.9.1\n## explicit\ngopkg.in/inf.v0\n# gopkg.in/yaml.v2 v2.4.0\n## explicit; go 1.15\ngopkg.in/yaml.v2\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n# k8s.io/api v0.27.2\n## explicit; go 1.20\nk8s.io/api/admissionregistration/v1\nk8s.io/api/admissionregistration/v1alpha1\nk8s.io/api/admissionregistration/v1beta1\nk8s.io/api/apidiscovery/v2beta1\nk8s.io/api/apiserverinternal/v1alpha1\nk8s.io/api/apps/v1\nk8s.io/api/apps/v1beta1\nk8s.io/api/apps/v1beta2\nk8s.io/api/authentication/v1\nk8s.io/api/authentication/v1alpha1\nk8s.io/api/authentication/v1beta1\nk8s.io/api/authorization/v1\nk8s.io/api/authorization/v1beta1\nk8s.io/api/autoscaling/v1\nk8s.io/api/autoscaling/v2\nk8s.io/api/autoscaling/v2beta1\nk8s.io/api/autoscaling/v2beta2\nk8s.io/api/batch/v1\nk8s.io/api/batch/v1beta1\nk8s.io/api/certificates/v1\nk8s.io/api/certificates/v1alpha1\nk8s.io/api/certificates/v1beta1\nk8s.io/api/coordination/v1\nk8s.io/api/coordination/v1beta1\nk8s.io/api/core/v1\nk8s.io/api/discovery/v1\nk8s.io/api/discovery/v1beta1\nk8s.io/api/events/v1\nk8s.io/api/events/v1beta1\nk8s.io/api/extensions/v1beta1\nk8s.io/api/flowcontrol/v1alpha1\nk8s.io/api/flowcontrol/v1beta1\nk8s.io/api/flowcontrol/v1beta2\nk8s.io/api/flowcontrol/v1beta3\nk8s.io/api/networking/v1\nk8s.io/api/networking/v1alpha1\nk8s.io/api/networking/v1beta1\nk8s.io/api/node/v1\nk8s.io/api/node/v1alpha1\nk8s.io/api/node/v1beta1\nk8s.io/api/policy/v1\nk8s.io/api/policy/v1beta1\nk8s.io/api/rbac/v1\nk8s.io/api/rbac/v1alpha1\nk8s.io/api/rbac/v1beta1\nk8s.io/api/resource/v1alpha2\nk8s.io/api/scheduling/v1\nk8s.io/api/scheduling/v1alpha1\nk8s.io/api/scheduling/v1beta1\nk8s.io/api/storage/v1\nk8s.io/api/storage/v1alpha1\nk8s.io/api/storage/v1beta1\n# k8s.io/apimachinery v0.27.2\n## explicit; go 1.20\nk8s.io/apimachinery/pkg/api/equality\nk8s.io/apimachinery/pkg/api/errors\nk8s.io/apimachinery/pkg/api/meta\nk8s.io/apimachinery/pkg/api/resource\nk8s.io/apimachinery/pkg/api/validation\nk8s.io/apimachinery/pkg/apis/meta/v1\nk8s.io/apimachinery/pkg/apis/meta/v1/unstructured\nk8s.io/apimachinery/pkg/apis/meta/v1/validation\nk8s.io/apimachinery/pkg/conversion\nk8s.io/apimachinery/pkg/conversion/queryparams\nk8s.io/apimachinery/pkg/fields\nk8s.io/apimachinery/pkg/labels\nk8s.io/apimachinery/pkg/runtime\nk8s.io/apimachinery/pkg/runtime/schema\nk8s.io/apimachinery/pkg/runtime/serializer\nk8s.io/apimachinery/pkg/runtime/serializer/json\nk8s.io/apimachinery/pkg/runtime/serializer/protobuf\nk8s.io/apimachinery/pkg/runtime/serializer/recognizer\nk8s.io/apimachinery/pkg/runtime/serializer/streaming\nk8s.io/apimachinery/pkg/runtime/serializer/versioning\nk8s.io/apimachinery/pkg/selection\nk8s.io/apimachinery/pkg/types\nk8s.io/apimachinery/pkg/util/errors\nk8s.io/apimachinery/pkg/util/framer\nk8s.io/apimachinery/pkg/util/intstr\nk8s.io/apimachinery/pkg/util/json\nk8s.io/apimachinery/pkg/util/managedfields\nk8s.io/apimachinery/pkg/util/managedfields/internal\nk8s.io/apimachinery/pkg/util/mergepatch\nk8s.io/apimachinery/pkg/util/naming\nk8s.io/apimachinery/pkg/util/net\nk8s.io/apimachinery/pkg/util/runtime\nk8s.io/apimachinery/pkg/util/sets\nk8s.io/apimachinery/pkg/util/strategicpatch\nk8s.io/apimachinery/pkg/util/validation\nk8s.io/apimachinery/pkg/util/validation/field\nk8s.io/apimachinery/pkg/util/wait\nk8s.io/apimachinery/pkg/util/yaml\nk8s.io/apimachinery/pkg/version\nk8s.io/apimachinery/pkg/watch\nk8s.io/apimachinery/third_party/forked/golang/json\nk8s.io/apimachinery/third_party/forked/golang/reflect\n# k8s.io/client-go v0.27.2\n## explicit; go 1.20\nk8s.io/client-go/applyconfigurations/admissionregistration/v1\nk8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\nk8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\nk8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\nk8s.io/client-go/applyconfigurations/apps/v1\nk8s.io/client-go/applyconfigurations/apps/v1beta1\nk8s.io/client-go/applyconfigurations/apps/v1beta2\nk8s.io/client-go/applyconfigurations/autoscaling/v1\nk8s.io/client-go/applyconfigurations/autoscaling/v2\nk8s.io/client-go/applyconfigurations/autoscaling/v2beta1\nk8s.io/client-go/applyconfigurations/autoscaling/v2beta2\nk8s.io/client-go/applyconfigurations/batch/v1\nk8s.io/client-go/applyconfigurations/batch/v1beta1\nk8s.io/client-go/applyconfigurations/certificates/v1\nk8s.io/client-go/applyconfigurations/certificates/v1alpha1\nk8s.io/client-go/applyconfigurations/certificates/v1beta1\nk8s.io/client-go/applyconfigurations/coordination/v1\nk8s.io/client-go/applyconfigurations/coordination/v1beta1\nk8s.io/client-go/applyconfigurations/core/v1\nk8s.io/client-go/applyconfigurations/discovery/v1\nk8s.io/client-go/applyconfigurations/discovery/v1beta1\nk8s.io/client-go/applyconfigurations/events/v1\nk8s.io/client-go/applyconfigurations/events/v1beta1\nk8s.io/client-go/applyconfigurations/extensions/v1beta1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\nk8s.io/client-go/applyconfigurations/internal\nk8s.io/client-go/applyconfigurations/meta/v1\nk8s.io/client-go/applyconfigurations/networking/v1\nk8s.io/client-go/applyconfigurations/networking/v1alpha1\nk8s.io/client-go/applyconfigurations/networking/v1beta1\nk8s.io/client-go/applyconfigurations/node/v1\nk8s.io/client-go/applyconfigurations/node/v1alpha1\nk8s.io/client-go/applyconfigurations/node/v1beta1\nk8s.io/client-go/applyconfigurations/policy/v1\nk8s.io/client-go/applyconfigurations/policy/v1beta1\nk8s.io/client-go/applyconfigurations/rbac/v1\nk8s.io/client-go/applyconfigurations/rbac/v1alpha1\nk8s.io/client-go/applyconfigurations/rbac/v1beta1\nk8s.io/client-go/applyconfigurations/resource/v1alpha2\nk8s.io/client-go/applyconfigurations/scheduling/v1\nk8s.io/client-go/applyconfigurations/scheduling/v1alpha1\nk8s.io/client-go/applyconfigurations/scheduling/v1beta1\nk8s.io/client-go/applyconfigurations/storage/v1\nk8s.io/client-go/applyconfigurations/storage/v1alpha1\nk8s.io/client-go/applyconfigurations/storage/v1beta1\nk8s.io/client-go/discovery\nk8s.io/client-go/discovery/fake\nk8s.io/client-go/kubernetes\nk8s.io/client-go/kubernetes/fake\nk8s.io/client-go/kubernetes/scheme\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\nk8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1\nk8s.io/client-go/kubernetes/typed/apps/v1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1beta1\nk8s.io/client-go/kubernetes/typed/apps/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1beta2\nk8s.io/client-go/kubernetes/typed/apps/v1beta2/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1\nk8s.io/client-go/kubernetes/typed/authentication/v1/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1alpha1\nk8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1beta1\nk8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/authorization/v1\nk8s.io/client-go/kubernetes/typed/authorization/v1/fake\nk8s.io/client-go/kubernetes/typed/authorization/v1beta1\nk8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v1\nk8s.io/client-go/kubernetes/typed/autoscaling/v1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2\nk8s.io/client-go/kubernetes/typed/autoscaling/v2/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake\nk8s.io/client-go/kubernetes/typed/batch/v1\nk8s.io/client-go/kubernetes/typed/batch/v1/fake\nk8s.io/client-go/kubernetes/typed/batch/v1beta1\nk8s.io/client-go/kubernetes/typed/batch/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1\nk8s.io/client-go/kubernetes/typed/certificates/v1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1alpha1\nk8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1beta1\nk8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/coordination/v1\nk8s.io/client-go/kubernetes/typed/coordination/v1/fake\nk8s.io/client-go/kubernetes/typed/coordination/v1beta1\nk8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/core/v1\nk8s.io/client-go/kubernetes/typed/core/v1/fake\nk8s.io/client-go/kubernetes/typed/discovery/v1\nk8s.io/client-go/kubernetes/typed/discovery/v1/fake\nk8s.io/client-go/kubernetes/typed/discovery/v1beta1\nk8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/events/v1\nk8s.io/client-go/kubernetes/typed/events/v1/fake\nk8s.io/client-go/kubernetes/typed/events/v1beta1\nk8s.io/client-go/kubernetes/typed/events/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/extensions/v1beta1\nk8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake\nk8s.io/client-go/kubernetes/typed/networking/v1\nk8s.io/client-go/kubernetes/typed/networking/v1/fake\nk8s.io/client-go/kubernetes/typed/networking/v1alpha1\nk8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/networking/v1beta1\nk8s.io/client-go/kubernetes/typed/networking/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/node/v1\nk8s.io/client-go/kubernetes/typed/node/v1/fake\nk8s.io/client-go/kubernetes/typed/node/v1alpha1\nk8s.io/client-go/kubernetes/typed/node/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/node/v1beta1\nk8s.io/client-go/kubernetes/typed/node/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/policy/v1\nk8s.io/client-go/kubernetes/typed/policy/v1/fake\nk8s.io/client-go/kubernetes/typed/policy/v1beta1\nk8s.io/client-go/kubernetes/typed/policy/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1\nk8s.io/client-go/kubernetes/typed/rbac/v1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1alpha1\nk8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1beta1\nk8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/resource/v1alpha2\nk8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1\nk8s.io/client-go/kubernetes/typed/scheduling/v1/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\nk8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1beta1\nk8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1\nk8s.io/client-go/kubernetes/typed/storage/v1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1alpha1\nk8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1beta1\nk8s.io/client-go/kubernetes/typed/storage/v1beta1/fake\nk8s.io/client-go/openapi\nk8s.io/client-go/pkg/apis/clientauthentication\nk8s.io/client-go/pkg/apis/clientauthentication/install\nk8s.io/client-go/pkg/apis/clientauthentication/v1\nk8s.io/client-go/pkg/apis/clientauthentication/v1beta1\nk8s.io/client-go/pkg/version\nk8s.io/client-go/plugin/pkg/client/auth/exec\nk8s.io/client-go/rest\nk8s.io/client-go/rest/fake\nk8s.io/client-go/rest/watch\nk8s.io/client-go/testing\nk8s.io/client-go/tools/clientcmd/api\nk8s.io/client-go/tools/metrics\nk8s.io/client-go/tools/record\nk8s.io/client-go/tools/record/util\nk8s.io/client-go/tools/reference\nk8s.io/client-go/transport\nk8s.io/client-go/util/cert\nk8s.io/client-go/util/connrotation\nk8s.io/client-go/util/flowcontrol\nk8s.io/client-go/util/keyutil\nk8s.io/client-go/util/workqueue\n# k8s.io/cri-api v0.25.3\n## explicit; go 1.19\nk8s.io/cri-api/pkg/apis/runtime/v1\n# k8s.io/klog/v2 v2.90.1\n## explicit; go 1.13\nk8s.io/klog/v2\nk8s.io/klog/v2/internal/buffer\nk8s.io/klog/v2/internal/clock\nk8s.io/klog/v2/internal/dbg\nk8s.io/klog/v2/internal/serialize\nk8s.io/klog/v2/internal/severity\n# k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f\n## explicit; go 1.19\nk8s.io/kube-openapi/pkg/builder3/util\nk8s.io/kube-openapi/pkg/cached\nk8s.io/kube-openapi/pkg/common\nk8s.io/kube-openapi/pkg/handler3\nk8s.io/kube-openapi/pkg/internal\nk8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\nk8s.io/kube-openapi/pkg/openapiconv\nk8s.io/kube-openapi/pkg/schemaconv\nk8s.io/kube-openapi/pkg/schemamutation\nk8s.io/kube-openapi/pkg/spec3\nk8s.io/kube-openapi/pkg/util/proto\nk8s.io/kube-openapi/pkg/validation/spec\n# k8s.io/kubelet v0.27.2\n## explicit; go 1.20\nk8s.io/kubelet/pkg/apis/deviceplugin/v1beta1\nk8s.io/kubelet/pkg/apis/podresources/v1alpha1\n# k8s.io/utils v0.0.0-20230209194617-a36077c30491\n## explicit; go 1.18\nk8s.io/utils/clock\nk8s.io/utils/clock/testing\nk8s.io/utils/integer\nk8s.io/utils/internal/third_party/forked/golang/net\nk8s.io/utils/net\nk8s.io/utils/strings/slices\n# sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd\n## explicit; go 1.18\nsigs.k8s.io/json\nsigs.k8s.io/json/internal/golang/encoding/json\n# sigs.k8s.io/structured-merge-diff/v4 v4.2.3\n## explicit; go 1.13\nsigs.k8s.io/structured-merge-diff/v4/fieldpath\nsigs.k8s.io/structured-merge-diff/v4/merge\nsigs.k8s.io/structured-merge-diff/v4/schema\nsigs.k8s.io/structured-merge-diff/v4/typed\nsigs.k8s.io/structured-merge-diff/v4/value\n# sigs.k8s.io/yaml v1.3.0\n## explicit; go 1.12\nsigs.k8s.io/yaml\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://git.k8s.io/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Criteria for adding code here\n\nThis library adapts the stdlib `encoding/json` decoder to be compatible with \nKubernetes JSON decoding, and is not expected to actively add new features.\n\nIt may be updated with changes from the stdlib `encoding/json` decoder.\n\nAny code that is added must:\n* Have full unit test and benchmark coverage\n* Be backward compatible with the existing exposed go API\n* Have zero external dependencies\n* Preserve existing benchmark performance\n* Preserve compatibility with existing decoding behavior of `UnmarshalCaseSensitivePreserveInts()` or `UnmarshalStrict()`\n* Avoid use of `unsafe`\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n<!---\nIf your repo has certain guidelines for contribution, put them here ahead of the general k8s resources\n-->\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](https://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](https://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers\n\n## Community, discussion, contribution, and support\n\nYou can reach the maintainers of this project via the \n[sig-api-machinery mailing list / channels](https://github.com/kubernetes/community/tree/master/sig-api-machinery#contact).\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/LICENSE",
    "content": "Files other than internal/golang/* licensed under:\n\n\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n\n------------------\n\ninternal/golang/* files licensed under:\n\n\nCopyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/Makefile",
    "content": ".PHONY: default build test benchmark fmt vet\n\ndefault: build\n\nbuild:\n\tgo build ./...\n\ntest:\n\tgo test sigs.k8s.io/json/...\n\nbenchmark:\n\tgo test sigs.k8s.io/json -bench . -benchmem\n\nfmt:\n\tgo mod tidy\n\tgofmt -s -w *.go\n\nvet:\n\tgo vet sigs.k8s.io/json\n\n\t@echo \"checking for external dependencies\"\n\t@deps=$$(go mod graph); \\\n\tif [ -n \"$${deps}\" ]; then \\\n\t\techo \"only stdlib dependencies allowed, found:\"; \\\n\t\techo \"$${deps}\"; \\\n\t\texit 1; \\\n\tfi\n\n\t@echo \"checking for unsafe use\"\n\t@unsafe=$$(go list -f '{{.ImportPath}} depends on {{.Imports}}' sigs.k8s.io/json/... | grep unsafe || true); \\\n\tif [ -n \"$${unsafe}\" ]; then \\\n\t\techo \"no dependencies on unsafe allowed, found:\"; \\\n\t\techo \"$${unsafe}\"; \\\n\t\texit 1; \\\n\tfi\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - deads2k\n  - lavalamp\n  - liggitt\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/README.md",
    "content": "# sigs.k8s.io/json\n\n[![Go Reference](https://pkg.go.dev/badge/sigs.k8s.io/json.svg)](https://pkg.go.dev/sigs.k8s.io/json)\n\n## Introduction\n\nThis library is a subproject of [sig-api-machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery#json).\nIt provides case-sensitive, integer-preserving JSON unmarshaling functions based on `encoding/json` `Unmarshal()`.\n\n## Compatibility\n\nThe `UnmarshalCaseSensitivePreserveInts()` function behaves like `encoding/json#Unmarshal()` with the following differences:\n\n- JSON object keys are treated case-sensitively.\n  Object keys must exactly match json tag names (for tagged struct fields)\n  or struct field names (for untagged struct fields).\n- JSON integers are unmarshaled into `interface{}` fields as an `int64` instead of a \n  `float64` when possible, falling back to `float64` on any parse or overflow error.\n- Syntax errors do not return an `encoding/json` `*SyntaxError` error.\n  Instead, they return an error which can be passed to `SyntaxErrorOffset()` to obtain an offset.\n\n## Additional capabilities\n\nThe `UnmarshalStrict()` function decodes identically to `UnmarshalCaseSensitivePreserveInts()`,\nand also returns non-fatal strict errors encountered while decoding:\n\n- Duplicate fields encountered\n- Unknown fields encountered\n\n### Community, discussion, contribution, and support\n\nYou can reach the maintainers of this project via the \n[sig-api-machinery mailing list / channels](https://github.com/kubernetes/community/tree/master/sig-api-machinery#contact).\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n\n[owners]: https://git.k8s.io/community/contributors/guide/owners.md\n[Creative Commons 4.0]: https://git.k8s.io/website/LICENSE\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/SECURITY.md",
    "content": "# Security Policy\n\n## Security Announcements\n\nJoin the [kubernetes-security-announce] group for security and vulnerability announcements.\n\nYou can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].\n\n## Reporting a Vulnerability\n\nInstructions for reporting a vulnerability can be found on the\n[Kubernetes Security and Disclosure Information] page.\n\n## Supported Versions\n\nInformation about supported Kubernetes versions can be found on the\n[Kubernetes version and version skew support policy] page on the Kubernetes website.\n\n[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce\n[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50\n[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions\n[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Committee to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ndeads2k\nlavalamp\nliggitt\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json // import \"sigs.k8s.io/json\"\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/decode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Represents JSON data structure using native Go types: booleans, floats,\n// strings, arrays, and maps.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// Unmarshal parses the JSON-encoded data and stores the result\n// in the value pointed to by v. If v is nil or not a pointer,\n// Unmarshal returns an InvalidUnmarshalError.\n//\n// Unmarshal uses the inverse of the encodings that\n// Marshal uses, allocating maps, slices, and pointers as necessary,\n// with the following additional rules:\n//\n// To unmarshal JSON into a pointer, Unmarshal first handles the case of\n// the JSON being the JSON literal null. In that case, Unmarshal sets\n// the pointer to nil. Otherwise, Unmarshal unmarshals the JSON into\n// the value pointed at by the pointer. If the pointer is nil, Unmarshal\n// allocates a new value for it to point to.\n//\n// To unmarshal JSON into a value implementing the Unmarshaler interface,\n// Unmarshal calls that value's UnmarshalJSON method, including\n// when the input is a JSON null.\n// Otherwise, if the value implements encoding.TextUnmarshaler\n// and the input is a JSON quoted string, Unmarshal calls that value's\n// UnmarshalText method with the unquoted form of the string.\n//\n// To unmarshal JSON into a struct, Unmarshal matches incoming object\n// keys to the keys used by Marshal (either the struct field name or its tag),\n// preferring an exact match but also accepting a case-insensitive match. By\n// default, object keys which don't have a corresponding struct field are\n// ignored (see Decoder.DisallowUnknownFields for an alternative).\n//\n// To unmarshal JSON into an interface value,\n// Unmarshal stores one of these in the interface value:\n//\n//\tbool, for JSON booleans\n//\tfloat64, for JSON numbers\n//\tstring, for JSON strings\n//\t[]interface{}, for JSON arrays\n//\tmap[string]interface{}, for JSON objects\n//\tnil for JSON null\n//\n// To unmarshal a JSON array into a slice, Unmarshal resets the slice length\n// to zero and then appends each element to the slice.\n// As a special case, to unmarshal an empty JSON array into a slice,\n// Unmarshal replaces the slice with a new empty slice.\n//\n// To unmarshal a JSON array into a Go array, Unmarshal decodes\n// JSON array elements into corresponding Go array elements.\n// If the Go array is smaller than the JSON array,\n// the additional JSON array elements are discarded.\n// If the JSON array is smaller than the Go array,\n// the additional Go array elements are set to zero values.\n//\n// To unmarshal a JSON object into a map, Unmarshal first establishes a map to\n// use. If the map is nil, Unmarshal allocates a new map. Otherwise Unmarshal\n// reuses the existing map, keeping existing entries. Unmarshal then stores\n// key-value pairs from the JSON object into the map. The map's key type must\n// either be any string type, an integer, implement json.Unmarshaler, or\n// implement encoding.TextUnmarshaler.\n//\n// If the JSON-encoded data contain a syntax error, Unmarshal returns a SyntaxError.\n//\n// If a JSON value is not appropriate for a given target type,\n// or if a JSON number overflows the target type, Unmarshal\n// skips that field and completes the unmarshaling as best it can.\n// If no more serious errors are encountered, Unmarshal returns\n// an UnmarshalTypeError describing the earliest such error. In any\n// case, it's not guaranteed that all the remaining fields following\n// the problematic one will be unmarshaled into the target object.\n//\n// The JSON null value unmarshals into an interface, map, pointer, or slice\n// by setting that Go value to nil. Because null is often used in JSON to mean\n// “not present,” unmarshaling a JSON null into any other Go type has no effect\n// on the value and produces no error.\n//\n// When unmarshaling quoted strings, invalid UTF-8 or\n// invalid UTF-16 surrogate pairs are not treated as an error.\n// Instead, they are replaced by the Unicode replacement\n// character U+FFFD.\nfunc Unmarshal(data []byte, v any, opts ...UnmarshalOpt) error {\n\t// Check for well-formedness.\n\t// Avoids filling out half a data structure\n\t// before discovering a JSON syntax error.\n\tvar d decodeState\n\n\tfor _, opt := range opts {\n\t\topt(&d)\n\t}\n\n\terr := checkValid(data, &d.scan)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\td.init(data)\n\treturn d.unmarshal(v)\n}\n\n// Unmarshaler is the interface implemented by types\n// that can unmarshal a JSON description of themselves.\n// The input can be assumed to be a valid encoding of\n// a JSON value. UnmarshalJSON must copy the JSON data\n// if it wishes to retain the data after returning.\n//\n// By convention, to approximate the behavior of Unmarshal itself,\n// Unmarshalers implement UnmarshalJSON([]byte(\"null\")) as a no-op.\ntype Unmarshaler interface {\n\tUnmarshalJSON([]byte) error\n}\n\n/*\n// An UnmarshalTypeError describes a JSON value that was\n// not appropriate for a value of a specific Go type.\ntype UnmarshalTypeError struct {\n\tValue  string       // description of JSON value - \"bool\", \"array\", \"number -5\"\n\tType   reflect.Type // type of Go value it could not be assigned to\n\tOffset int64        // error occurred after reading Offset bytes\n\tStruct string       // name of the struct type containing the field\n\tField  string       // the full path from root node to the field\n}\n\nfunc (e *UnmarshalTypeError) Error() string {\n\tif e.Struct != \"\" || e.Field != \"\" {\n\t\treturn \"json: cannot unmarshal \" + e.Value + \" into Go struct field \" + e.Struct + \".\" + e.Field + \" of type \" + e.Type.String()\n\t}\n\treturn \"json: cannot unmarshal \" + e.Value + \" into Go value of type \" + e.Type.String()\n}\n\n// An UnmarshalFieldError describes a JSON object key that\n// led to an unexported (and therefore unwritable) struct field.\n//\n// Deprecated: No longer used; kept for compatibility.\ntype UnmarshalFieldError struct {\n\tKey   string\n\tType  reflect.Type\n\tField reflect.StructField\n}\n\nfunc (e *UnmarshalFieldError) Error() string {\n\treturn \"json: cannot unmarshal object key \" + strconv.Quote(e.Key) + \" into unexported field \" + e.Field.Name + \" of type \" + e.Type.String()\n}\n\n// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal.\n// (The argument to Unmarshal must be a non-nil pointer.)\ntype InvalidUnmarshalError struct {\n\tType reflect.Type\n}\n\nfunc (e *InvalidUnmarshalError) Error() string {\n\tif e.Type == nil {\n\t\treturn \"json: Unmarshal(nil)\"\n\t}\n\n\tif e.Type.Kind() != reflect.Pointer {\n\t\treturn \"json: Unmarshal(non-pointer \" + e.Type.String() + \")\"\n\t}\n\treturn \"json: Unmarshal(nil \" + e.Type.String() + \")\"\n}\n*/\n\nfunc (d *decodeState) unmarshal(v any) error {\n\trv := reflect.ValueOf(v)\n\tif rv.Kind() != reflect.Pointer || rv.IsNil() {\n\t\treturn &InvalidUnmarshalError{reflect.TypeOf(v)}\n\t}\n\n\td.scan.reset()\n\td.scanWhile(scanSkipSpace)\n\t// We decode rv not rv.Elem because the Unmarshaler interface\n\t// test must be applied at the top level of the value.\n\terr := d.value(rv)\n\tif err != nil {\n\t\treturn d.addErrorContext(err)\n\t}\n\tif d.savedError != nil {\n\t\treturn d.savedError\n\t}\n\tif len(d.savedStrictErrors) > 0 {\n\t\treturn &UnmarshalStrictError{Errors: d.savedStrictErrors}\n\t}\n\treturn nil\n}\n\n/*\n// A Number represents a JSON number literal.\ntype Number string\n\n// String returns the literal text of the number.\nfunc (n Number) String() string { return string(n) }\n\n// Float64 returns the number as a float64.\nfunc (n Number) Float64() (float64, error) {\n\treturn strconv.ParseFloat(string(n), 64)\n}\n\n// Int64 returns the number as an int64.\nfunc (n Number) Int64() (int64, error) {\n\treturn strconv.ParseInt(string(n), 10, 64)\n}\n*/\n\n// An errorContext provides context for type errors during decoding.\ntype errorContext struct {\n\tStruct     reflect.Type\n\tFieldStack []string\n}\n\n// decodeState represents the state while decoding a JSON value.\ntype decodeState struct {\n\tdata                  []byte\n\toff                   int // next read offset in data\n\topcode                int // last read result\n\tscan                  scanner\n\terrorContext          *errorContext\n\tsavedError            error\n\tuseNumber             bool\n\tdisallowUnknownFields bool\n\n\tsavedStrictErrors []error\n\tseenStrictErrors  map[strictError]struct{}\n\tstrictFieldStack  []string\n\n\tcaseSensitive bool\n\n\tpreserveInts bool\n\n\tdisallowDuplicateFields bool\n}\n\n// readIndex returns the position of the last byte read.\nfunc (d *decodeState) readIndex() int {\n\treturn d.off - 1\n}\n\n// phasePanicMsg is used as a panic message when we end up with something that\n// shouldn't happen. It can indicate a bug in the JSON decoder, or that\n// something is editing the data slice while the decoder executes.\nconst phasePanicMsg = \"JSON decoder out of sync - data changing underfoot?\"\n\nfunc (d *decodeState) init(data []byte) *decodeState {\n\td.data = data\n\td.off = 0\n\td.savedError = nil\n\tif d.errorContext != nil {\n\t\td.errorContext.Struct = nil\n\t\t// Reuse the allocated space for the FieldStack slice.\n\t\td.errorContext.FieldStack = d.errorContext.FieldStack[:0]\n\t}\n\t// Reuse the allocated space for the strict FieldStack slice.\n\td.strictFieldStack = d.strictFieldStack[:0]\n\treturn d\n}\n\n// saveError saves the first err it is called with,\n// for reporting at the end of the unmarshal.\nfunc (d *decodeState) saveError(err error) {\n\tif d.savedError == nil {\n\t\td.savedError = d.addErrorContext(err)\n\t}\n}\n\n// addErrorContext returns a new error enhanced with information from d.errorContext\nfunc (d *decodeState) addErrorContext(err error) error {\n\tif d.errorContext != nil && (d.errorContext.Struct != nil || len(d.errorContext.FieldStack) > 0) {\n\t\tswitch err := err.(type) {\n\t\tcase *UnmarshalTypeError:\n\t\t\terr.Struct = d.errorContext.Struct.Name()\n\t\t\terr.Field = strings.Join(d.errorContext.FieldStack, \".\")\n\t\t}\n\t}\n\treturn err\n}\n\n// skip scans to the end of what was started.\nfunc (d *decodeState) skip() {\n\ts, data, i := &d.scan, d.data, d.off\n\tdepth := len(s.parseState)\n\tfor {\n\t\top := s.step(s, data[i])\n\t\ti++\n\t\tif len(s.parseState) < depth {\n\t\t\td.off = i\n\t\t\td.opcode = op\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// scanNext processes the byte at d.data[d.off].\nfunc (d *decodeState) scanNext() {\n\tif d.off < len(d.data) {\n\t\td.opcode = d.scan.step(&d.scan, d.data[d.off])\n\t\td.off++\n\t} else {\n\t\td.opcode = d.scan.eof()\n\t\td.off = len(d.data) + 1 // mark processed EOF with len+1\n\t}\n}\n\n// scanWhile processes bytes in d.data[d.off:] until it\n// receives a scan code not equal to op.\nfunc (d *decodeState) scanWhile(op int) {\n\ts, data, i := &d.scan, d.data, d.off\n\tfor i < len(data) {\n\t\tnewOp := s.step(s, data[i])\n\t\ti++\n\t\tif newOp != op {\n\t\t\td.opcode = newOp\n\t\t\td.off = i\n\t\t\treturn\n\t\t}\n\t}\n\n\td.off = len(data) + 1 // mark processed EOF with len+1\n\td.opcode = d.scan.eof()\n}\n\n// rescanLiteral is similar to scanWhile(scanContinue), but it specialises the\n// common case where we're decoding a literal. The decoder scans the input\n// twice, once for syntax errors and to check the length of the value, and the\n// second to perform the decoding.\n//\n// Only in the second step do we use decodeState to tokenize literals, so we\n// know there aren't any syntax errors. We can take advantage of that knowledge,\n// and scan a literal's bytes much more quickly.\nfunc (d *decodeState) rescanLiteral() {\n\tdata, i := d.data, d.off\nSwitch:\n\tswitch data[i-1] {\n\tcase '\"': // string\n\t\tfor ; i < len(data); i++ {\n\t\t\tswitch data[i] {\n\t\t\tcase '\\\\':\n\t\t\t\ti++ // escaped char\n\t\t\tcase '\"':\n\t\t\t\ti++ // tokenize the closing quote too\n\t\t\t\tbreak Switch\n\t\t\t}\n\t\t}\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-': // number\n\t\tfor ; i < len(data); i++ {\n\t\t\tswitch data[i] {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t\t\t\t'.', 'e', 'E', '+', '-':\n\t\t\tdefault:\n\t\t\t\tbreak Switch\n\t\t\t}\n\t\t}\n\tcase 't': // true\n\t\ti += len(\"rue\")\n\tcase 'f': // false\n\t\ti += len(\"alse\")\n\tcase 'n': // null\n\t\ti += len(\"ull\")\n\t}\n\tif i < len(data) {\n\t\td.opcode = stateEndValue(&d.scan, data[i])\n\t} else {\n\t\td.opcode = scanEnd\n\t}\n\td.off = i + 1\n}\n\n// value consumes a JSON value from d.data[d.off-1:], decoding into v, and\n// reads the following byte ahead. If v is invalid, the value is discarded.\n// The first byte of the value has been read already.\nfunc (d *decodeState) value(v reflect.Value) error {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\n\tcase scanBeginArray:\n\t\tif v.IsValid() {\n\t\t\tif err := d.array(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\td.skip()\n\t\t}\n\t\td.scanNext()\n\n\tcase scanBeginObject:\n\t\tif v.IsValid() {\n\t\t\tif err := d.object(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\td.skip()\n\t\t}\n\t\td.scanNext()\n\n\tcase scanBeginLiteral:\n\t\t// All bytes inside literal return scanContinue op code.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\n\t\tif v.IsValid() {\n\t\t\tif err := d.literalStore(d.data[start:d.readIndex()], v, false); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\ntype unquotedValue struct{}\n\n// valueQuoted is like value but decodes a\n// quoted string literal or literal null into an interface value.\n// If it finds anything other than a quoted string literal or null,\n// valueQuoted returns unquotedValue{}.\nfunc (d *decodeState) valueQuoted() any {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\n\tcase scanBeginArray, scanBeginObject:\n\t\td.skip()\n\t\td.scanNext()\n\n\tcase scanBeginLiteral:\n\t\tv := d.literalInterface()\n\t\tswitch v.(type) {\n\t\tcase nil, string:\n\t\t\treturn v\n\t\t}\n\t}\n\treturn unquotedValue{}\n}\n\n// indirect walks down v allocating pointers as needed,\n// until it gets to a non-pointer.\n// If it encounters an Unmarshaler, indirect stops and returns that.\n// If decodingNull is true, indirect stops at the first settable pointer so it\n// can be set to nil.\nfunc indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {\n\t// Issue #24153 indicates that it is generally not a guaranteed property\n\t// that you may round-trip a reflect.Value by calling Value.Addr().Elem()\n\t// and expect the value to still be settable for values derived from\n\t// unexported embedded struct fields.\n\t//\n\t// The logic below effectively does this when it first addresses the value\n\t// (to satisfy possible pointer methods) and continues to dereference\n\t// subsequent pointers as necessary.\n\t//\n\t// After the first round-trip, we set v back to the original value to\n\t// preserve the original RW flags contained in reflect.Value.\n\tv0 := v\n\thaveAddr := false\n\n\t// If v is a named type and is addressable,\n\t// start with its address, so that if the type has pointer methods,\n\t// we find them.\n\tif v.Kind() != reflect.Pointer && v.Type().Name() != \"\" && v.CanAddr() {\n\t\thaveAddr = true\n\t\tv = v.Addr()\n\t}\n\tfor {\n\t\t// Load value from interface, but only if the result will be\n\t\t// usefully addressable.\n\t\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\t\te := v.Elem()\n\t\t\tif e.Kind() == reflect.Pointer && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Pointer) {\n\t\t\t\thaveAddr = false\n\t\t\t\tv = e\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif v.Kind() != reflect.Pointer {\n\t\t\tbreak\n\t\t}\n\n\t\tif decodingNull && v.CanSet() {\n\t\t\tbreak\n\t\t}\n\n\t\t// Prevent infinite loop if v is an interface pointing to its own address:\n\t\t//     var v interface{}\n\t\t//     v = &v\n\t\tif v.Elem().Kind() == reflect.Interface && v.Elem().Elem() == v {\n\t\t\tv = v.Elem()\n\t\t\tbreak\n\t\t}\n\t\tif v.IsNil() {\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\t\tif v.Type().NumMethod() > 0 && v.CanInterface() {\n\t\t\tif u, ok := v.Interface().(Unmarshaler); ok {\n\t\t\t\treturn u, nil, reflect.Value{}\n\t\t\t}\n\t\t\tif !decodingNull {\n\t\t\t\tif u, ok := v.Interface().(encoding.TextUnmarshaler); ok {\n\t\t\t\t\treturn nil, u, reflect.Value{}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif haveAddr {\n\t\t\tv = v0 // restore original value after round-trip Value.Addr().Elem()\n\t\t\thaveAddr = false\n\t\t} else {\n\t\t\tv = v.Elem()\n\t\t}\n\t}\n\treturn nil, nil, v\n}\n\n// array consumes an array from d.data[d.off-1:], decoding into v.\n// The first byte of the array ('[') has been read already.\nfunc (d *decodeState) array(v reflect.Value) error {\n\t// Check for unmarshaler.\n\tu, ut, pv := indirect(v, false)\n\tif u != nil {\n\t\tstart := d.readIndex()\n\t\td.skip()\n\t\treturn u.UnmarshalJSON(d.data[start:d.off])\n\t}\n\tif ut != nil {\n\t\td.saveError(&UnmarshalTypeError{Value: \"array\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\tv = pv\n\n\t// Check type of target.\n\tswitch v.Kind() {\n\tcase reflect.Interface:\n\t\tif v.NumMethod() == 0 {\n\t\t\t// Decoding into nil interface? Switch to non-reflect code.\n\t\t\tai := d.arrayInterface()\n\t\t\tv.Set(reflect.ValueOf(ai))\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise it's invalid.\n\t\tfallthrough\n\tdefault:\n\t\td.saveError(&UnmarshalTypeError{Value: \"array\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\tcase reflect.Array, reflect.Slice:\n\t\tbreak\n\t}\n\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\ti := 0\n\tfor {\n\t\t// Look ahead for ] - can only happen on first iteration.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\n\t\t// Get element of array, growing if necessary.\n\t\tif v.Kind() == reflect.Slice {\n\t\t\t// Grow slice if necessary\n\t\t\tif i >= v.Cap() {\n\t\t\t\tnewcap := v.Cap() + v.Cap()/2\n\t\t\t\tif newcap < 4 {\n\t\t\t\t\tnewcap = 4\n\t\t\t\t}\n\t\t\t\tnewv := reflect.MakeSlice(v.Type(), v.Len(), newcap)\n\t\t\t\treflect.Copy(newv, v)\n\t\t\t\tv.Set(newv)\n\t\t\t}\n\t\t\tif i >= v.Len() {\n\t\t\t\tv.SetLen(i + 1)\n\t\t\t}\n\t\t}\n\n\t\td.appendStrictFieldStackIndex(i)\n\t\tif i < v.Len() {\n\t\t\t// Decode into element.\n\t\t\tif err := d.value(v.Index(i)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Ran out of fixed array: skip.\n\t\t\tif err := d.value(reflect.Value{}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t\ti++\n\n\t\t// Next token must be , or ].\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanArrayValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\n\tif i < v.Len() {\n\t\tif v.Kind() == reflect.Array {\n\t\t\t// Array. Zero the rest.\n\t\t\tz := reflect.Zero(v.Type().Elem())\n\t\t\tfor ; i < v.Len(); i++ {\n\t\t\t\tv.Index(i).Set(z)\n\t\t\t}\n\t\t} else {\n\t\t\tv.SetLen(i)\n\t\t}\n\t}\n\tif i == 0 && v.Kind() == reflect.Slice {\n\t\tv.Set(reflect.MakeSlice(v.Type(), 0, 0))\n\t}\n\treturn nil\n}\n\nvar nullLiteral = []byte(\"null\")\nvar textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n\n// object consumes an object from d.data[d.off-1:], decoding into v.\n// The first byte ('{') of the object has been read already.\nfunc (d *decodeState) object(v reflect.Value) error {\n\t// Check for unmarshaler.\n\tu, ut, pv := indirect(v, false)\n\tif u != nil {\n\t\tstart := d.readIndex()\n\t\td.skip()\n\t\treturn u.UnmarshalJSON(d.data[start:d.off])\n\t}\n\tif ut != nil {\n\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\tv = pv\n\tt := v.Type()\n\n\t// Decoding into nil interface? Switch to non-reflect code.\n\tif v.Kind() == reflect.Interface && v.NumMethod() == 0 {\n\t\toi := d.objectInterface()\n\t\tv.Set(reflect.ValueOf(oi))\n\t\treturn nil\n\t}\n\n\tvar fields structFields\n\tvar checkDuplicateField func(fieldNameIndex int, fieldName string)\n\n\t// Check type of target:\n\t//   struct or\n\t//   map[T1]T2 where T1 is string, an integer type,\n\t//             or an encoding.TextUnmarshaler\n\tswitch v.Kind() {\n\tcase reflect.Map:\n\t\t// Map key must either have string kind, have an integer kind,\n\t\t// or be an encoding.TextUnmarshaler.\n\t\tswitch t.Key().Kind() {\n\t\tcase reflect.String,\n\t\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tdefault:\n\t\t\tif !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: t, Offset: int64(d.off)})\n\t\t\t\td.skip()\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tif v.IsNil() {\n\t\t\tv.Set(reflect.MakeMap(t))\n\t\t}\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tvar seenKeys map[string]struct{}\n\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\tif seenKeys == nil {\n\t\t\t\t\tseenKeys = map[string]struct{}{}\n\t\t\t\t}\n\t\t\t\tif _, seen := seenKeys[fieldName]; seen {\n\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t} else {\n\t\t\t\t\tseenKeys[fieldName] = struct{}{}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\tcase reflect.Struct:\n\t\tfields = cachedTypeFields(t)\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tif len(fields.list) <= 64 {\n\t\t\t\t// bitset by field index for structs with <= 64 fields\n\t\t\t\tvar seenKeys uint64\n\t\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\t\tif seenKeys&(1<<fieldNameIndex) != 0 {\n\t\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tseenKeys = seenKeys | (1 << fieldNameIndex)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// list of seen field indices for structs with greater than 64 fields\n\t\t\t\tvar seenIndexes []bool\n\t\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\t\tif seenIndexes == nil {\n\t\t\t\t\t\tseenIndexes = make([]bool, len(fields.list))\n\t\t\t\t\t}\n\t\t\t\t\tif seenIndexes[fieldNameIndex] {\n\t\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tseenIndexes[fieldNameIndex] = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// ok\n\tdefault:\n\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: t, Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\n\tvar mapElem reflect.Value\n\tvar origErrorContext errorContext\n\tif d.errorContext != nil {\n\t\torigErrorContext = *d.errorContext\n\t}\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\n\tfor {\n\t\t// Read opening \" of string key or closing }.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndObject {\n\t\t\t// closing } - can only happen on first iteration.\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanBeginLiteral {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read key.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\t\titem := d.data[start:d.readIndex()]\n\t\tkey, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Figure out field corresponding to key.\n\t\tvar subv reflect.Value\n\t\tdestring := false // whether the value is wrapped in a string to be decoded first\n\n\t\tif v.Kind() == reflect.Map {\n\t\t\telemType := t.Elem()\n\t\t\tif !mapElem.IsValid() {\n\t\t\t\tmapElem = reflect.New(elemType).Elem()\n\t\t\t} else {\n\t\t\t\tmapElem.Set(reflect.Zero(elemType))\n\t\t\t}\n\t\t\tsubv = mapElem\n\t\t\tif checkDuplicateField != nil {\n\t\t\t\tcheckDuplicateField(0, string(key))\n\t\t\t}\n\t\t\td.appendStrictFieldStackKey(string(key))\n\t\t} else {\n\t\t\tvar f *field\n\t\t\tif i, ok := fields.nameIndex[string(key)]; ok {\n\t\t\t\t// Found an exact name match.\n\t\t\t\tf = &fields.list[i]\n\t\t\t\tif checkDuplicateField != nil {\n\t\t\t\t\tcheckDuplicateField(i, f.name)\n\t\t\t\t}\n\t\t\t} else if !d.caseSensitive {\n\t\t\t\t// Fall back to the expensive case-insensitive\n\t\t\t\t// linear search.\n\t\t\t\tfor i := range fields.list {\n\t\t\t\t\tff := &fields.list[i]\n\t\t\t\t\tif ff.equalFold(ff.nameBytes, key) {\n\t\t\t\t\t\tf = ff\n\t\t\t\t\t\tif checkDuplicateField != nil {\n\t\t\t\t\t\t\tcheckDuplicateField(i, f.name)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f != nil {\n\t\t\t\tsubv = v\n\t\t\t\tdestring = f.quoted\n\t\t\t\tfor _, i := range f.index {\n\t\t\t\t\tif subv.Kind() == reflect.Pointer {\n\t\t\t\t\t\tif subv.IsNil() {\n\t\t\t\t\t\t\t// If a struct embeds a pointer to an unexported type,\n\t\t\t\t\t\t\t// it is not possible to set a newly allocated value\n\t\t\t\t\t\t\t// since the field is unexported.\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// See https://golang.org/issue/21357\n\t\t\t\t\t\t\tif !subv.CanSet() {\n\t\t\t\t\t\t\t\td.saveError(fmt.Errorf(\"json: cannot set embedded pointer to unexported struct: %v\", subv.Type().Elem()))\n\t\t\t\t\t\t\t\t// Invalidate subv to ensure d.value(subv) skips over\n\t\t\t\t\t\t\t\t// the JSON value without assigning it to subv.\n\t\t\t\t\t\t\t\tsubv = reflect.Value{}\n\t\t\t\t\t\t\t\tdestring = false\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsubv.Set(reflect.New(subv.Type().Elem()))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsubv = subv.Elem()\n\t\t\t\t\t}\n\t\t\t\t\tsubv = subv.Field(i)\n\t\t\t\t}\n\t\t\t\tif d.errorContext == nil {\n\t\t\t\t\td.errorContext = new(errorContext)\n\t\t\t\t}\n\t\t\t\td.errorContext.FieldStack = append(d.errorContext.FieldStack, f.name)\n\t\t\t\td.errorContext.Struct = t\n\t\t\t\td.appendStrictFieldStackKey(f.name)\n\t\t\t} else if d.disallowUnknownFields {\n\t\t\t\td.saveStrictError(d.newFieldError(unknownStrictErrType, string(key)))\n\t\t\t}\n\t\t}\n\n\t\t// Read : before value.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode != scanObjectKey {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\td.scanWhile(scanSkipSpace)\n\n\t\tif destring {\n\t\t\tswitch qv := d.valueQuoted().(type) {\n\t\t\tcase nil:\n\t\t\t\tif err := d.literalStore(nullLiteral, subv, false); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tcase string:\n\t\t\t\tif err := d.literalStore([]byte(qv), subv, true); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v\", subv.Type()))\n\t\t\t}\n\t\t} else {\n\t\t\tif err := d.value(subv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\t// Write value back to map;\n\t\t// if using struct, subv points into struct already.\n\t\tif v.Kind() == reflect.Map {\n\t\t\tkt := t.Key()\n\t\t\tvar kv reflect.Value\n\t\t\tswitch {\n\t\t\tcase reflect.PointerTo(kt).Implements(textUnmarshalerType):\n\t\t\t\tkv = reflect.New(kt)\n\t\t\t\tif err := d.literalStore(item, kv, true); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkv = kv.Elem()\n\t\t\tcase kt.Kind() == reflect.String:\n\t\t\t\tkv = reflect.ValueOf(key).Convert(kt)\n\t\t\tdefault:\n\t\t\t\tswitch kt.Kind() {\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\t\ts := string(key)\n\t\t\t\t\tn, err := strconv.ParseInt(s, 10, 64)\n\t\t\t\t\tif err != nil || reflect.Zero(kt).OverflowInt(n) {\n\t\t\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: kt, Offset: int64(start + 1)})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tkv = reflect.ValueOf(n).Convert(kt)\n\t\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\t\ts := string(key)\n\t\t\t\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\t\t\t\tif err != nil || reflect.Zero(kt).OverflowUint(n) {\n\t\t\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: kt, Offset: int64(start + 1)})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tkv = reflect.ValueOf(n).Convert(kt)\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"json: Unexpected key type\") // should never occur\n\t\t\t\t}\n\t\t\t}\n\t\t\tif kv.IsValid() {\n\t\t\t\tv.SetMapIndex(kv, subv)\n\t\t\t}\n\t\t}\n\n\t\t// Next token must be , or }.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.errorContext != nil {\n\t\t\t// Reset errorContext to its original state.\n\t\t\t// Keep the same underlying array for FieldStack, to reuse the\n\t\t\t// space and avoid unnecessary allocs.\n\t\t\td.errorContext.FieldStack = d.errorContext.FieldStack[:len(origErrorContext.FieldStack)]\n\t\t\td.errorContext.Struct = origErrorContext.Struct\n\t\t}\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t\tif d.opcode == scanEndObject {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanObjectValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts the number literal s to a float64 or a Number\n// depending on the setting of d.useNumber.\nfunc (d *decodeState) convertNumber(s string) (any, error) {\n\tif d.useNumber {\n\t\treturn Number(s), nil\n\t}\n\n\t// if the string contains no floating point, return it as an int64 if it decodes successfully and does not overflow.\n\t// otherwise, fall back to float64 behavior.\n\tif d.preserveInts && !strings.Contains(s, \".\") {\n\t\tif i, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn i, nil\n\t\t}\n\t}\n\n\tf, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\treturn nil, &UnmarshalTypeError{Value: \"number \" + s, Type: reflect.TypeOf(0.0), Offset: int64(d.off)}\n\t}\n\treturn f, nil\n}\n\nvar numberType = reflect.TypeOf(Number(\"\"))\n\n// literalStore decodes a literal stored in item into v.\n//\n// fromQuoted indicates whether this literal came from unwrapping a\n// string from the \",string\" struct tag option. this is used only to\n// produce more helpful error messages.\nfunc (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) error {\n\t// Check for unmarshaler.\n\tif len(item) == 0 {\n\t\t//Empty string given\n\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\treturn nil\n\t}\n\tisNull := item[0] == 'n' // null\n\tu, ut, pv := indirect(v, isNull)\n\tif u != nil {\n\t\treturn u.UnmarshalJSON(item)\n\t}\n\tif ut != nil {\n\t\tif item[0] != '\"' {\n\t\t\tif fromQuoted {\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tval := \"number\"\n\t\t\tswitch item[0] {\n\t\t\tcase 'n':\n\t\t\t\tval = \"null\"\n\t\t\tcase 't', 'f':\n\t\t\t\tval = \"bool\"\n\t\t\t}\n\t\t\td.saveError(&UnmarshalTypeError{Value: val, Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\treturn nil\n\t\t}\n\t\ts, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\treturn ut.UnmarshalText(s)\n\t}\n\n\tv = pv\n\n\tswitch c := item[0]; c {\n\tcase 'n': // null\n\t\t// The main parser checks that only true and false can reach here,\n\t\t// but if this was a quoted string input, it could be anything.\n\t\tif fromQuoted && string(item) != \"null\" {\n\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\tbreak\n\t\t}\n\t\tswitch v.Kind() {\n\t\tcase reflect.Interface, reflect.Pointer, reflect.Map, reflect.Slice:\n\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t// otherwise, ignore null for primitives/string\n\t\t}\n\tcase 't', 'f': // true, false\n\t\tvalue := item[0] == 't'\n\t\t// The main parser checks that only true and false can reach here,\n\t\t// but if this was a quoted string input, it could be anything.\n\t\tif fromQuoted && string(item) != \"true\" && string(item) != \"false\" {\n\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\tbreak\n\t\t}\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\tif fromQuoted {\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"bool\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\tcase reflect.Bool:\n\t\t\tv.SetBool(value)\n\t\tcase reflect.Interface:\n\t\t\tif v.NumMethod() == 0 {\n\t\t\t\tv.Set(reflect.ValueOf(value))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"bool\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\t}\n\n\tcase '\"': // string\n\t\ts, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\tcase reflect.Slice:\n\t\t\tif v.Type().Elem().Kind() != reflect.Uint8 {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb := make([]byte, base64.StdEncoding.DecodedLen(len(s)))\n\t\t\tn, err := base64.StdEncoding.Decode(b, s)\n\t\t\tif err != nil {\n\t\t\t\td.saveError(err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetBytes(b[:n])\n\t\tcase reflect.String:\n\t\t\tif v.Type() == numberType && !isValidNumber(string(s)) {\n\t\t\t\treturn fmt.Errorf(\"json: invalid number literal, trying to unmarshal %q into Number\", item)\n\t\t\t}\n\t\t\tv.SetString(string(s))\n\t\tcase reflect.Interface:\n\t\t\tif v.NumMethod() == 0 {\n\t\t\t\tv.Set(reflect.ValueOf(string(s)))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\t}\n\n\tdefault: // number\n\t\tif c != '-' && (c < '0' || c > '9') {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\ts := string(item)\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\tif v.Kind() == reflect.String && v.Type() == numberType {\n\t\t\t\t// s must be a valid number, because it's\n\t\t\t\t// already been tokenized.\n\t\t\t\tv.SetString(s)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\td.saveError(&UnmarshalTypeError{Value: \"number\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\tcase reflect.Interface:\n\t\t\tn, err := d.convertNumber(s)\n\t\t\tif err != nil {\n\t\t\t\td.saveError(err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif v.NumMethod() != 0 {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.Set(reflect.ValueOf(n))\n\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\tn, err := strconv.ParseInt(s, 10, 64)\n\t\t\tif err != nil || v.OverflowInt(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetInt(n)\n\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\t\tif err != nil || v.OverflowUint(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetUint(n)\n\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tn, err := strconv.ParseFloat(s, v.Type().Bits())\n\t\t\tif err != nil || v.OverflowFloat(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetFloat(n)\n\t\t}\n\t}\n\treturn nil\n}\n\n// The xxxInterface routines build up a value to be stored\n// in an empty interface. They are not strictly necessary,\n// but they avoid the weight of reflection in this common case.\n\n// valueInterface is like value but returns interface{}\nfunc (d *decodeState) valueInterface() (val any) {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\tcase scanBeginArray:\n\t\tval = d.arrayInterface()\n\t\td.scanNext()\n\tcase scanBeginObject:\n\t\tval = d.objectInterface()\n\t\td.scanNext()\n\tcase scanBeginLiteral:\n\t\tval = d.literalInterface()\n\t}\n\treturn\n}\n\n// arrayInterface is like array but returns []interface{}.\nfunc (d *decodeState) arrayInterface() []any {\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\tvar v = make([]any, 0)\n\tfor {\n\t\t// Look ahead for ] - can only happen on first iteration.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\n\t\td.appendStrictFieldStackIndex(len(v))\n\t\tv = append(v, d.valueInterface())\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\n\t\t// Next token must be , or ].\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanArrayValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn v\n}\n\n// objectInterface is like object but returns map[string]interface{}.\nfunc (d *decodeState) objectInterface() map[string]any {\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\tm := make(map[string]any)\n\tfor {\n\t\t// Read opening \" of string key or closing }.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndObject {\n\t\t\t// closing } - can only happen on first iteration.\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanBeginLiteral {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read string key.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\t\titem := d.data[start:d.readIndex()]\n\t\tkey, ok := unquote(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read : before value.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode != scanObjectKey {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\td.scanWhile(scanSkipSpace)\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tif _, exists := m[key]; exists {\n\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, key))\n\t\t\t}\n\t\t}\n\n\t\t// Read value.\n\t\td.appendStrictFieldStackKey(key)\n\t\tm[key] = d.valueInterface()\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\n\t\t// Next token must be , or }.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndObject {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanObjectValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn m\n}\n\n// literalInterface consumes and returns a literal from d.data[d.off-1:] and\n// it reads the following byte ahead. The first byte of the literal has been\n// read already (that's how the caller knows it's a literal).\nfunc (d *decodeState) literalInterface() any {\n\t// All bytes inside literal return scanContinue op code.\n\tstart := d.readIndex()\n\td.rescanLiteral()\n\n\titem := d.data[start:d.readIndex()]\n\n\tswitch c := item[0]; c {\n\tcase 'n': // null\n\t\treturn nil\n\n\tcase 't', 'f': // true, false\n\t\treturn c == 't'\n\n\tcase '\"': // string\n\t\ts, ok := unquote(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\treturn s\n\n\tdefault: // number\n\t\tif c != '-' && (c < '0' || c > '9') {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\tn, err := d.convertNumber(string(item))\n\t\tif err != nil {\n\t\t\td.saveError(err)\n\t\t}\n\t\treturn n\n\t}\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) < 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar r rune\n\tfor _, c := range s[2:6] {\n\t\tswitch {\n\t\tcase '0' <= c && c <= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' <= c && c <= 'f':\n\t\t\tc = c - 'a' + 10\n\t\tcase 'A' <= c && c <= 'F':\n\t\t\tc = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\t\tr = r*16 + rune(c)\n\t}\n\treturn r\n}\n\n// unquote converts a quoted JSON string literal s into an actual string t.\n// The rules are different than for Go, so cannot use strconv.Unquote.\nfunc unquote(s []byte) (t string, ok bool) {\n\ts, ok = unquoteBytes(s)\n\tt = string(s)\n\treturn\n}\n\nfunc unquoteBytes(s []byte) (t []byte, ok bool) {\n\tif len(s) < 2 || s[0] != '\"' || s[len(s)-1] != '\"' {\n\t\treturn\n\t}\n\ts = s[1 : len(s)-1]\n\n\t// Check for unusual characters. If there are none,\n\t// then no unquoting is needed, so return a slice of the\n\t// original bytes.\n\tr := 0\n\tfor r < len(s) {\n\t\tc := s[r]\n\t\tif c == '\\\\' || c == '\"' || c < ' ' {\n\t\t\tbreak\n\t\t}\n\t\tif c < utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError && size == 1 {\n\t\t\tbreak\n\t\t}\n\t\tr += size\n\t}\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tb := make([]byte, len(s)+2*utf8.UTFMax)\n\tw := copy(b, s[0:r])\n\tfor r < len(s) {\n\t\t// Out of room? Can only happen if s is full of\n\t\t// malformed UTF-8 and we're replacing each\n\t\t// byte with RuneError.\n\t\tif w >= len(b)-2*utf8.UTFMax {\n\t\t\tnb := make([]byte, (len(b)+utf8.UTFMax)*2)\n\t\t\tcopy(nb, b[0:w])\n\t\t\tb = nb\n\t\t}\n\t\tswitch c := s[r]; {\n\t\tcase c == '\\\\':\n\t\t\tr++\n\t\t\tif r >= len(s) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch s[r] {\n\t\t\tdefault:\n\t\t\t\treturn\n\t\t\tcase '\"', '\\\\', '/', '\\'':\n\t\t\t\tb[w] = s[r]\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'b':\n\t\t\t\tb[w] = '\\b'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'f':\n\t\t\t\tb[w] = '\\f'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'n':\n\t\t\t\tb[w] = '\\n'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'r':\n\t\t\t\tb[w] = '\\r'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 't':\n\t\t\t\tb[w] = '\\t'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'u':\n\t\t\t\tr--\n\t\t\t\trr := getu4(s[r:])\n\t\t\t\tif rr < 0 {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tr += 6\n\t\t\t\tif utf16.IsSurrogate(rr) {\n\t\t\t\t\trr1 := getu4(s[r:])\n\t\t\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {\n\t\t\t\t\t\t// A valid pair; consume.\n\t\t\t\t\t\tr += 6\n\t\t\t\t\t\tw += utf8.EncodeRune(b[w:], dec)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// Invalid surrogate; fall back to replacement rune.\n\t\t\t\t\trr = unicode.ReplacementChar\n\t\t\t\t}\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t}\n\n\t\t// Quote, control characters are invalid.\n\t\tcase c == '\"', c < ' ':\n\t\t\treturn\n\n\t\t// ASCII\n\t\tcase c < utf8.RuneSelf:\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\n\t\t// Coerce to well-formed UTF-8.\n\t\tdefault:\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\treturn b[0:w], true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/encode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json implements encoding and decoding of JSON as defined in\n// RFC 7159. The mapping between JSON and Go values is described\n// in the documentation for the Marshal and Unmarshal functions.\n//\n// See \"JSON and Go\" for an introduction to this package:\n// https://golang.org/doc/articles/json_and_go.html\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// Marshal returns the JSON encoding of v.\n//\n// Marshal traverses the value v recursively.\n// If an encountered value implements the Marshaler interface\n// and is not a nil pointer, Marshal calls its MarshalJSON method\n// to produce JSON. If no MarshalJSON method is present but the\n// value implements encoding.TextMarshaler instead, Marshal calls\n// its MarshalText method and encodes the result as a JSON string.\n// The nil pointer exception is not strictly necessary\n// but mimics a similar, necessary exception in the behavior of\n// UnmarshalJSON.\n//\n// Otherwise, Marshal uses the following type-dependent default encodings:\n//\n// Boolean values encode as JSON booleans.\n//\n// Floating point, integer, and Number values encode as JSON numbers.\n//\n// String values encode as JSON strings coerced to valid UTF-8,\n// replacing invalid bytes with the Unicode replacement rune.\n// So that the JSON will be safe to embed inside HTML <script> tags,\n// the string is encoded using HTMLEscape,\n// which replaces \"<\", \">\", \"&\", U+2028, and U+2029 are escaped\n// to \"\\u003c\",\"\\u003e\", \"\\u0026\", \"\\u2028\", and \"\\u2029\".\n// This replacement can be disabled when using an Encoder,\n// by calling SetEscapeHTML(false).\n//\n// Array and slice values encode as JSON arrays, except that\n// []byte encodes as a base64-encoded string, and a nil slice\n// encodes as the null JSON value.\n//\n// Struct values encode as JSON objects.\n// Each exported struct field becomes a member of the object, using the\n// field name as the object key, unless the field is omitted for one of the\n// reasons given below.\n//\n// The encoding of each struct field can be customized by the format string\n// stored under the \"json\" key in the struct field's tag.\n// The format string gives the name of the field, possibly followed by a\n// comma-separated list of options. The name may be empty in order to\n// specify options without overriding the default field name.\n//\n// The \"omitempty\" option specifies that the field should be omitted\n// from the encoding if the field has an empty value, defined as\n// false, 0, a nil pointer, a nil interface value, and any empty array,\n// slice, map, or string.\n//\n// As a special case, if the field tag is \"-\", the field is always omitted.\n// Note that a field with name \"-\" can still be generated using the tag \"-,\".\n//\n// Examples of struct field tags and their meanings:\n//\n//\t// Field appears in JSON as key \"myName\".\n//\tField int `json:\"myName\"`\n//\n//\t// Field appears in JSON as key \"myName\" and\n//\t// the field is omitted from the object if its value is empty,\n//\t// as defined above.\n//\tField int `json:\"myName,omitempty\"`\n//\n//\t// Field appears in JSON as key \"Field\" (the default), but\n//\t// the field is skipped if empty.\n//\t// Note the leading comma.\n//\tField int `json:\",omitempty\"`\n//\n//\t// Field is ignored by this package.\n//\tField int `json:\"-\"`\n//\n//\t// Field appears in JSON as key \"-\".\n//\tField int `json:\"-,\"`\n//\n// The \"string\" option signals that a field is stored as JSON inside a\n// JSON-encoded string. It applies only to fields of string, floating point,\n// integer, or boolean types. This extra level of encoding is sometimes used\n// when communicating with JavaScript programs:\n//\n//\tInt64String int64 `json:\",string\"`\n//\n// The key name will be used if it's a non-empty string consisting of\n// only Unicode letters, digits, and ASCII punctuation except quotation\n// marks, backslash, and comma.\n//\n// Anonymous struct fields are usually marshaled as if their inner exported fields\n// were fields in the outer struct, subject to the usual Go visibility rules amended\n// as described in the next paragraph.\n// An anonymous struct field with a name given in its JSON tag is treated as\n// having that name, rather than being anonymous.\n// An anonymous struct field of interface type is treated the same as having\n// that type as its name, rather than being anonymous.\n//\n// The Go visibility rules for struct fields are amended for JSON when\n// deciding which field to marshal or unmarshal. If there are\n// multiple fields at the same level, and that level is the least\n// nested (and would therefore be the nesting level selected by the\n// usual Go rules), the following extra rules apply:\n//\n// 1) Of those fields, if any are JSON-tagged, only tagged fields are considered,\n// even if there are multiple untagged fields that would otherwise conflict.\n//\n// 2) If there is exactly one field (tagged or not according to the first rule), that is selected.\n//\n// 3) Otherwise there are multiple fields, and all are ignored; no error occurs.\n//\n// Handling of anonymous struct fields is new in Go 1.1.\n// Prior to Go 1.1, anonymous struct fields were ignored. To force ignoring of\n// an anonymous struct field in both current and earlier versions, give the field\n// a JSON tag of \"-\".\n//\n// Map values encode as JSON objects. The map's key type must either be a\n// string, an integer type, or implement encoding.TextMarshaler. The map keys\n// are sorted and used as JSON object keys by applying the following rules,\n// subject to the UTF-8 coercion described for string values above:\n//   - keys of any string type are used directly\n//   - encoding.TextMarshalers are marshaled\n//   - integer keys are converted to strings\n//\n// Pointer values encode as the value pointed to.\n// A nil pointer encodes as the null JSON value.\n//\n// Interface values encode as the value contained in the interface.\n// A nil interface value encodes as the null JSON value.\n//\n// Channel, complex, and function values cannot be encoded in JSON.\n// Attempting to encode such a value causes Marshal to return\n// an UnsupportedTypeError.\n//\n// JSON cannot represent cyclic data structures and Marshal does not\n// handle them. Passing cyclic structures to Marshal will result in\n// an error.\nfunc Marshal(v any) ([]byte, error) {\n\te := newEncodeState()\n\n\terr := e.marshal(v, encOpts{escapeHTML: true})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbuf := append([]byte(nil), e.Bytes()...)\n\n\tencodeStatePool.Put(e)\n\n\treturn buf, nil\n}\n\n// MarshalIndent is like Marshal but applies Indent to format the output.\n// Each JSON element in the output will begin on a new line beginning with prefix\n// followed by one or more copies of indent according to the indentation nesting.\nfunc MarshalIndent(v any, prefix, indent string) ([]byte, error) {\n\tb, err := Marshal(v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar buf bytes.Buffer\n\terr = Indent(&buf, b, prefix, indent)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf.Bytes(), nil\n}\n\n// HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029\n// characters inside string literals changed to \\u003c, \\u003e, \\u0026, \\u2028, \\u2029\n// so that the JSON will be safe to embed inside HTML <script> tags.\n// For historical reasons, web browsers don't honor standard HTML\n// escaping within <script> tags, so an alternative JSON encoding must\n// be used.\nfunc HTMLEscape(dst *bytes.Buffer, src []byte) {\n\t// The characters can only appear in string literals,\n\t// so just scan the string one byte at a time.\n\tstart := 0\n\tfor i, c := range src {\n\t\tif c == '<' || c == '>' || c == '&' {\n\t\t\tif start < i {\n\t\t\t\tdst.Write(src[start:i])\n\t\t\t}\n\t\t\tdst.WriteString(`\\u00`)\n\t\t\tdst.WriteByte(hex[c>>4])\n\t\t\tdst.WriteByte(hex[c&0xF])\n\t\t\tstart = i + 1\n\t\t}\n\t\t// Convert U+2028 and U+2029 (E2 80 A8 and E2 80 A9).\n\t\tif c == 0xE2 && i+2 < len(src) && src[i+1] == 0x80 && src[i+2]&^1 == 0xA8 {\n\t\t\tif start < i {\n\t\t\t\tdst.Write(src[start:i])\n\t\t\t}\n\t\t\tdst.WriteString(`\\u202`)\n\t\t\tdst.WriteByte(hex[src[i+2]&0xF])\n\t\t\tstart = i + 3\n\t\t}\n\t}\n\tif start < len(src) {\n\t\tdst.Write(src[start:])\n\t}\n}\n\n// Marshaler is the interface implemented by types that\n// can marshal themselves into valid JSON.\ntype Marshaler interface {\n\tMarshalJSON() ([]byte, error)\n}\n\n// An UnsupportedTypeError is returned by Marshal when attempting\n// to encode an unsupported value type.\ntype UnsupportedTypeError struct {\n\tType reflect.Type\n}\n\nfunc (e *UnsupportedTypeError) Error() string {\n\treturn \"json: unsupported type: \" + e.Type.String()\n}\n\n// An UnsupportedValueError is returned by Marshal when attempting\n// to encode an unsupported value.\ntype UnsupportedValueError struct {\n\tValue reflect.Value\n\tStr   string\n}\n\nfunc (e *UnsupportedValueError) Error() string {\n\treturn \"json: unsupported value: \" + e.Str\n}\n\n// Before Go 1.2, an InvalidUTF8Error was returned by Marshal when\n// attempting to encode a string value with invalid UTF-8 sequences.\n// As of Go 1.2, Marshal instead coerces the string to valid UTF-8 by\n// replacing invalid bytes with the Unicode replacement rune U+FFFD.\n//\n// Deprecated: No longer used; kept for compatibility.\ntype InvalidUTF8Error struct {\n\tS string // the whole string value that caused the error\n}\n\nfunc (e *InvalidUTF8Error) Error() string {\n\treturn \"json: invalid UTF-8 in string: \" + strconv.Quote(e.S)\n}\n\n// A MarshalerError represents an error from calling a MarshalJSON or MarshalText method.\ntype MarshalerError struct {\n\tType       reflect.Type\n\tErr        error\n\tsourceFunc string\n}\n\nfunc (e *MarshalerError) Error() string {\n\tsrcFunc := e.sourceFunc\n\tif srcFunc == \"\" {\n\t\tsrcFunc = \"MarshalJSON\"\n\t}\n\treturn \"json: error calling \" + srcFunc +\n\t\t\" for type \" + e.Type.String() +\n\t\t\": \" + e.Err.Error()\n}\n\n// Unwrap returns the underlying error.\nfunc (e *MarshalerError) Unwrap() error { return e.Err }\n\nvar hex = \"0123456789abcdef\"\n\n// An encodeState encodes JSON into a bytes.Buffer.\ntype encodeState struct {\n\tbytes.Buffer // accumulated output\n\tscratch      [64]byte\n\n\t// Keep track of what pointers we've seen in the current recursive call\n\t// path, to avoid cycles that could lead to a stack overflow. Only do\n\t// the relatively expensive map operations if ptrLevel is larger than\n\t// startDetectingCyclesAfter, so that we skip the work if we're within a\n\t// reasonable amount of nested pointers deep.\n\tptrLevel uint\n\tptrSeen  map[any]struct{}\n}\n\nconst startDetectingCyclesAfter = 1000\n\nvar encodeStatePool sync.Pool\n\nfunc newEncodeState() *encodeState {\n\tif v := encodeStatePool.Get(); v != nil {\n\t\te := v.(*encodeState)\n\t\te.Reset()\n\t\tif len(e.ptrSeen) > 0 {\n\t\t\tpanic(\"ptrEncoder.encode should have emptied ptrSeen via defers\")\n\t\t}\n\t\te.ptrLevel = 0\n\t\treturn e\n\t}\n\treturn &encodeState{ptrSeen: make(map[any]struct{})}\n}\n\n// jsonError is an error wrapper type for internal use only.\n// Panics with errors are wrapped in jsonError so that the top-level recover\n// can distinguish intentional panics from this package.\ntype jsonError struct{ error }\n\nfunc (e *encodeState) marshal(v any, opts encOpts) (err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif je, ok := r.(jsonError); ok {\n\t\t\t\terr = je.error\n\t\t\t} else {\n\t\t\t\tpanic(r)\n\t\t\t}\n\t\t}\n\t}()\n\te.reflectValue(reflect.ValueOf(v), opts)\n\treturn nil\n}\n\n// error aborts the encoding by panicking with err wrapped in jsonError.\nfunc (e *encodeState) error(err error) {\n\tpanic(jsonError{err})\n}\n\nfunc isEmptyValue(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Pointer:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc (e *encodeState) reflectValue(v reflect.Value, opts encOpts) {\n\tvalueEncoder(v)(e, v, opts)\n}\n\ntype encOpts struct {\n\t// quoted causes primitive fields to be encoded inside JSON strings.\n\tquoted bool\n\t// escapeHTML causes '<', '>', and '&' to be escaped in JSON strings.\n\tescapeHTML bool\n}\n\ntype encoderFunc func(e *encodeState, v reflect.Value, opts encOpts)\n\nvar encoderCache sync.Map // map[reflect.Type]encoderFunc\n\nfunc valueEncoder(v reflect.Value) encoderFunc {\n\tif !v.IsValid() {\n\t\treturn invalidValueEncoder\n\t}\n\treturn typeEncoder(v.Type())\n}\n\nfunc typeEncoder(t reflect.Type) encoderFunc {\n\tif fi, ok := encoderCache.Load(t); ok {\n\t\treturn fi.(encoderFunc)\n\t}\n\n\t// To deal with recursive types, populate the map with an\n\t// indirect func before we build it. This type waits on the\n\t// real func (f) to be ready and then calls it. This indirect\n\t// func is only used for recursive types.\n\tvar (\n\t\twg sync.WaitGroup\n\t\tf  encoderFunc\n\t)\n\twg.Add(1)\n\tfi, loaded := encoderCache.LoadOrStore(t, encoderFunc(func(e *encodeState, v reflect.Value, opts encOpts) {\n\t\twg.Wait()\n\t\tf(e, v, opts)\n\t}))\n\tif loaded {\n\t\treturn fi.(encoderFunc)\n\t}\n\n\t// Compute the real encoder and replace the indirect func with it.\n\tf = newTypeEncoder(t, true)\n\twg.Done()\n\tencoderCache.Store(t, f)\n\treturn f\n}\n\nvar (\n\tmarshalerType     = reflect.TypeOf((*Marshaler)(nil)).Elem()\n\ttextMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n)\n\n// newTypeEncoder constructs an encoderFunc for a type.\n// The returned encoder only checks CanAddr when allowAddr is true.\nfunc newTypeEncoder(t reflect.Type, allowAddr bool) encoderFunc {\n\t// If we have a non-pointer value whose type implements\n\t// Marshaler with a value receiver, then we're better off taking\n\t// the address of the value - otherwise we end up with an\n\t// allocation as we cast the value to an interface.\n\tif t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(marshalerType) {\n\t\treturn newCondAddrEncoder(addrMarshalerEncoder, newTypeEncoder(t, false))\n\t}\n\tif t.Implements(marshalerType) {\n\t\treturn marshalerEncoder\n\t}\n\tif t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(textMarshalerType) {\n\t\treturn newCondAddrEncoder(addrTextMarshalerEncoder, newTypeEncoder(t, false))\n\t}\n\tif t.Implements(textMarshalerType) {\n\t\treturn textMarshalerEncoder\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn boolEncoder\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn intEncoder\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn uintEncoder\n\tcase reflect.Float32:\n\t\treturn float32Encoder\n\tcase reflect.Float64:\n\t\treturn float64Encoder\n\tcase reflect.String:\n\t\treturn stringEncoder\n\tcase reflect.Interface:\n\t\treturn interfaceEncoder\n\tcase reflect.Struct:\n\t\treturn newStructEncoder(t)\n\tcase reflect.Map:\n\t\treturn newMapEncoder(t)\n\tcase reflect.Slice:\n\t\treturn newSliceEncoder(t)\n\tcase reflect.Array:\n\t\treturn newArrayEncoder(t)\n\tcase reflect.Pointer:\n\t\treturn newPtrEncoder(t)\n\tdefault:\n\t\treturn unsupportedTypeEncoder\n\t}\n}\n\nfunc invalidValueEncoder(e *encodeState, v reflect.Value, _ encOpts) {\n\te.WriteString(\"null\")\n}\n\nfunc marshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Kind() == reflect.Pointer && v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm, ok := v.Interface().(Marshaler)\n\tif !ok {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tb, err := m.MarshalJSON()\n\tif err == nil {\n\t\t// copy JSON into buffer, checking validity.\n\t\terr = compact(&e.Buffer, b, opts.escapeHTML)\n\t}\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalJSON\"})\n\t}\n}\n\nfunc addrMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tva := v.Addr()\n\tif va.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm := va.Interface().(Marshaler)\n\tb, err := m.MarshalJSON()\n\tif err == nil {\n\t\t// copy JSON into buffer, checking validity.\n\t\terr = compact(&e.Buffer, b, opts.escapeHTML)\n\t}\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalJSON\"})\n\t}\n}\n\nfunc textMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Kind() == reflect.Pointer && v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm, ok := v.Interface().(encoding.TextMarshaler)\n\tif !ok {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tb, err := m.MarshalText()\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalText\"})\n\t}\n\te.stringBytes(b, opts.escapeHTML)\n}\n\nfunc addrTextMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tva := v.Addr()\n\tif va.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm := va.Interface().(encoding.TextMarshaler)\n\tb, err := m.MarshalText()\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalText\"})\n\t}\n\te.stringBytes(b, opts.escapeHTML)\n}\n\nfunc boolEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n\tif v.Bool() {\n\t\te.WriteString(\"true\")\n\t} else {\n\t\te.WriteString(\"false\")\n\t}\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n}\n\nfunc intEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tb := strconv.AppendInt(e.scratch[:0], v.Int(), 10)\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n\te.Write(b)\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n}\n\nfunc uintEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tb := strconv.AppendUint(e.scratch[:0], v.Uint(), 10)\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n\te.Write(b)\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n}\n\ntype floatEncoder int // number of bits\n\nfunc (bits floatEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tf := v.Float()\n\tif math.IsInf(f, 0) || math.IsNaN(f) {\n\t\te.error(&UnsupportedValueError{v, strconv.FormatFloat(f, 'g', -1, int(bits))})\n\t}\n\n\t// Convert as if by ES6 number to string conversion.\n\t// This matches most other JSON generators.\n\t// See golang.org/issue/6384 and golang.org/issue/14135.\n\t// Like fmt %g, but the exponent cutoffs are different\n\t// and exponents themselves are not padded to two digits.\n\tb := e.scratch[:0]\n\tabs := math.Abs(f)\n\tfmt := byte('f')\n\t// Note: Must use float32 comparisons for underlying float32 value to get precise cutoffs right.\n\tif abs != 0 {\n\t\tif bits == 64 && (abs < 1e-6 || abs >= 1e21) || bits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tb = strconv.AppendFloat(b, f, fmt, -1, int(bits))\n\tif fmt == 'e' {\n\t\t// clean up e-09 to e-9\n\t\tn := len(b)\n\t\tif n >= 4 && b[n-4] == 'e' && b[n-3] == '-' && b[n-2] == '0' {\n\t\t\tb[n-2] = b[n-1]\n\t\t\tb = b[:n-1]\n\t\t}\n\t}\n\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n\te.Write(b)\n\tif opts.quoted {\n\t\te.WriteByte('\"')\n\t}\n}\n\nvar (\n\tfloat32Encoder = (floatEncoder(32)).encode\n\tfloat64Encoder = (floatEncoder(64)).encode\n)\n\nfunc stringEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Type() == numberType {\n\t\tnumStr := v.String()\n\t\t// In Go1.5 the empty string encodes to \"0\", while this is not a valid number literal\n\t\t// we keep compatibility so check validity after this.\n\t\tif numStr == \"\" {\n\t\t\tnumStr = \"0\" // Number's zero-val\n\t\t}\n\t\tif !isValidNumber(numStr) {\n\t\t\te.error(fmt.Errorf(\"json: invalid number literal %q\", numStr))\n\t\t}\n\t\tif opts.quoted {\n\t\t\te.WriteByte('\"')\n\t\t}\n\t\te.WriteString(numStr)\n\t\tif opts.quoted {\n\t\t\te.WriteByte('\"')\n\t\t}\n\t\treturn\n\t}\n\tif opts.quoted {\n\t\te2 := newEncodeState()\n\t\t// Since we encode the string twice, we only need to escape HTML\n\t\t// the first time.\n\t\te2.string(v.String(), opts.escapeHTML)\n\t\te.stringBytes(e2.Bytes(), false)\n\t\tencodeStatePool.Put(e2)\n\t} else {\n\t\te.string(v.String(), opts.escapeHTML)\n\t}\n}\n\n// isValidNumber reports whether s is a valid JSON number literal.\nfunc isValidNumber(s string) bool {\n\t// This function implements the JSON numbers grammar.\n\t// See https://tools.ietf.org/html/rfc7159#section-6\n\t// and https://www.json.org/img/number.png\n\n\tif s == \"\" {\n\t\treturn false\n\t}\n\n\t// Optional -\n\tif s[0] == '-' {\n\t\ts = s[1:]\n\t\tif s == \"\" {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Digits\n\tswitch {\n\tdefault:\n\t\treturn false\n\n\tcase s[0] == '0':\n\t\ts = s[1:]\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\ts = s[1:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// . followed by 1 or more digits.\n\tif len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' {\n\t\ts = s[2:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// e or E followed by an optional - or + and\n\t// 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\ts = s[1:]\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tif s == \"\" {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// Make sure we are at the end.\n\treturn s == \"\"\n}\n\nfunc interfaceEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\te.reflectValue(v.Elem(), opts)\n}\n\nfunc unsupportedTypeEncoder(e *encodeState, v reflect.Value, _ encOpts) {\n\te.error(&UnsupportedTypeError{v.Type()})\n}\n\ntype structEncoder struct {\n\tfields structFields\n}\n\ntype structFields struct {\n\tlist      []field\n\tnameIndex map[string]int\n}\n\nfunc (se structEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tnext := byte('{')\nFieldLoop:\n\tfor i := range se.fields.list {\n\t\tf := &se.fields.list[i]\n\n\t\t// Find the nested struct field by following f.index.\n\t\tfv := v\n\t\tfor _, i := range f.index {\n\t\t\tif fv.Kind() == reflect.Pointer {\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\tcontinue FieldLoop\n\t\t\t\t}\n\t\t\t\tfv = fv.Elem()\n\t\t\t}\n\t\t\tfv = fv.Field(i)\n\t\t}\n\n\t\tif f.omitEmpty && isEmptyValue(fv) {\n\t\t\tcontinue\n\t\t}\n\t\te.WriteByte(next)\n\t\tnext = ','\n\t\tif opts.escapeHTML {\n\t\t\te.WriteString(f.nameEscHTML)\n\t\t} else {\n\t\t\te.WriteString(f.nameNonEsc)\n\t\t}\n\t\topts.quoted = f.quoted\n\t\tf.encoder(e, fv, opts)\n\t}\n\tif next == '{' {\n\t\te.WriteString(\"{}\")\n\t} else {\n\t\te.WriteByte('}')\n\t}\n}\n\nfunc newStructEncoder(t reflect.Type) encoderFunc {\n\tse := structEncoder{fields: cachedTypeFields(t)}\n\treturn se.encode\n}\n\ntype mapEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (me mapEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\tptr := v.UnsafePointer()\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\te.WriteByte('{')\n\n\t// Extract and sort the keys.\n\tsv := make([]reflectWithString, v.Len())\n\tmi := v.MapRange()\n\tfor i := 0; mi.Next(); i++ {\n\t\tsv[i].k = mi.Key()\n\t\tsv[i].v = mi.Value()\n\t\tif err := sv[i].resolve(); err != nil {\n\t\t\te.error(fmt.Errorf(\"json: encoding error for type %q: %q\", v.Type().String(), err.Error()))\n\t\t}\n\t}\n\tsort.Slice(sv, func(i, j int) bool { return sv[i].ks < sv[j].ks })\n\n\tfor i, kv := range sv {\n\t\tif i > 0 {\n\t\t\te.WriteByte(',')\n\t\t}\n\t\te.string(kv.ks, opts.escapeHTML)\n\t\te.WriteByte(':')\n\t\tme.elemEnc(e, kv.v, opts)\n\t}\n\te.WriteByte('}')\n\te.ptrLevel--\n}\n\nfunc newMapEncoder(t reflect.Type) encoderFunc {\n\tswitch t.Key().Kind() {\n\tcase reflect.String,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\tdefault:\n\t\tif !t.Key().Implements(textMarshalerType) {\n\t\t\treturn unsupportedTypeEncoder\n\t\t}\n\t}\n\tme := mapEncoder{typeEncoder(t.Elem())}\n\treturn me.encode\n}\n\nfunc encodeByteSlice(e *encodeState, v reflect.Value, _ encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\ts := v.Bytes()\n\te.WriteByte('\"')\n\tencodedLen := base64.StdEncoding.EncodedLen(len(s))\n\tif encodedLen <= len(e.scratch) {\n\t\t// If the encoded bytes fit in e.scratch, avoid an extra\n\t\t// allocation and use the cheaper Encoding.Encode.\n\t\tdst := e.scratch[:encodedLen]\n\t\tbase64.StdEncoding.Encode(dst, s)\n\t\te.Write(dst)\n\t} else if encodedLen <= 1024 {\n\t\t// The encoded bytes are short enough to allocate for, and\n\t\t// Encoding.Encode is still cheaper.\n\t\tdst := make([]byte, encodedLen)\n\t\tbase64.StdEncoding.Encode(dst, s)\n\t\te.Write(dst)\n\t} else {\n\t\t// The encoded bytes are too long to cheaply allocate, and\n\t\t// Encoding.Encode is no longer noticeably cheaper.\n\t\tenc := base64.NewEncoder(base64.StdEncoding, e)\n\t\tenc.Write(s)\n\t\tenc.Close()\n\t}\n\te.WriteByte('\"')\n}\n\n// sliceEncoder just wraps an arrayEncoder, checking to make sure the value isn't nil.\ntype sliceEncoder struct {\n\tarrayEnc encoderFunc\n}\n\nfunc (se sliceEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\t// Here we use a struct to memorize the pointer to the first element of the slice\n\t\t// and its length.\n\t\tptr := struct {\n\t\t\tptr interface{} // always an unsafe.Pointer, but avoids a dependency on package unsafe\n\t\t\tlen int\n\t\t}{v.UnsafePointer(), v.Len()}\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\tse.arrayEnc(e, v, opts)\n\te.ptrLevel--\n}\n\nfunc newSliceEncoder(t reflect.Type) encoderFunc {\n\t// Byte slices get special treatment; arrays don't.\n\tif t.Elem().Kind() == reflect.Uint8 {\n\t\tp := reflect.PointerTo(t.Elem())\n\t\tif !p.Implements(marshalerType) && !p.Implements(textMarshalerType) {\n\t\t\treturn encodeByteSlice\n\t\t}\n\t}\n\tenc := sliceEncoder{newArrayEncoder(t)}\n\treturn enc.encode\n}\n\ntype arrayEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (ae arrayEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\te.WriteByte('[')\n\tn := v.Len()\n\tfor i := 0; i < n; i++ {\n\t\tif i > 0 {\n\t\t\te.WriteByte(',')\n\t\t}\n\t\tae.elemEnc(e, v.Index(i), opts)\n\t}\n\te.WriteByte(']')\n}\n\nfunc newArrayEncoder(t reflect.Type) encoderFunc {\n\tenc := arrayEncoder{typeEncoder(t.Elem())}\n\treturn enc.encode\n}\n\ntype ptrEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (pe ptrEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\tptr := v.Interface()\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\tpe.elemEnc(e, v.Elem(), opts)\n\te.ptrLevel--\n}\n\nfunc newPtrEncoder(t reflect.Type) encoderFunc {\n\tenc := ptrEncoder{typeEncoder(t.Elem())}\n\treturn enc.encode\n}\n\ntype condAddrEncoder struct {\n\tcanAddrEnc, elseEnc encoderFunc\n}\n\nfunc (ce condAddrEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.CanAddr() {\n\t\tce.canAddrEnc(e, v, opts)\n\t} else {\n\t\tce.elseEnc(e, v, opts)\n\t}\n}\n\n// newCondAddrEncoder returns an encoder that checks whether its value\n// CanAddr and delegates to canAddrEnc if so, else to elseEnc.\nfunc newCondAddrEncoder(canAddrEnc, elseEnc encoderFunc) encoderFunc {\n\tenc := condAddrEncoder{canAddrEnc: canAddrEnc, elseEnc: elseEnc}\n\treturn enc.encode\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:;<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tcase !unicode.IsLetter(c) && !unicode.IsDigit(c):\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc typeByIndex(t reflect.Type, index []int) reflect.Type {\n\tfor _, i := range index {\n\t\tif t.Kind() == reflect.Pointer {\n\t\t\tt = t.Elem()\n\t\t}\n\t\tt = t.Field(i).Type\n\t}\n\treturn t\n}\n\ntype reflectWithString struct {\n\tk  reflect.Value\n\tv  reflect.Value\n\tks string\n}\n\nfunc (w *reflectWithString) resolve() error {\n\tif w.k.Kind() == reflect.String {\n\t\tw.ks = w.k.String()\n\t\treturn nil\n\t}\n\tif tm, ok := w.k.Interface().(encoding.TextMarshaler); ok {\n\t\tif w.k.Kind() == reflect.Pointer && w.k.IsNil() {\n\t\t\treturn nil\n\t\t}\n\t\tbuf, err := tm.MarshalText()\n\t\tw.ks = string(buf)\n\t\treturn err\n\t}\n\tswitch w.k.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tw.ks = strconv.FormatInt(w.k.Int(), 10)\n\t\treturn nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tw.ks = strconv.FormatUint(w.k.Uint(), 10)\n\t\treturn nil\n\t}\n\tpanic(\"unexpected map key type\")\n}\n\n// NOTE: keep in sync with stringBytes below.\nfunc (e *encodeState) string(s string, escapeHTML bool) {\n\te.WriteByte('\"')\n\tstart := 0\n\tfor i := 0; i < len(s); {\n\t\tif b := s[i]; b < utf8.RuneSelf {\n\t\t\tif htmlSafeSet[b] || (!escapeHTML && safeSet[b]) {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif start < i {\n\t\t\t\te.WriteString(s[start:i])\n\t\t\t}\n\t\t\te.WriteByte('\\\\')\n\t\t\tswitch b {\n\t\t\tcase '\\\\', '\"':\n\t\t\t\te.WriteByte(b)\n\t\t\tcase '\\n':\n\t\t\t\te.WriteByte('n')\n\t\t\tcase '\\r':\n\t\t\t\te.WriteByte('r')\n\t\t\tcase '\\t':\n\t\t\t\te.WriteByte('t')\n\t\t\tdefault:\n\t\t\t\t// This encodes bytes < 0x20 except for \\t, \\n and \\r.\n\t\t\t\t// If escapeHTML is set, it also escapes <, >, and &\n\t\t\t\t// because they can lead to security holes when\n\t\t\t\t// user-controlled strings are rendered into JSON\n\t\t\t\t// and served to some browsers.\n\t\t\t\te.WriteString(`u00`)\n\t\t\t\te.WriteByte(hex[b>>4])\n\t\t\t\te.WriteByte(hex[b&0xF])\n\t\t\t}\n\t\t\ti++\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\tc, size := utf8.DecodeRuneInString(s[i:])\n\t\tif c == utf8.RuneError && size == 1 {\n\t\t\tif start < i {\n\t\t\t\te.WriteString(s[start:i])\n\t\t\t}\n\t\t\te.WriteString(`\\ufffd`)\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\t// U+2028 is LINE SEPARATOR.\n\t\t// U+2029 is PARAGRAPH SEPARATOR.\n\t\t// They are both technically valid characters in JSON strings,\n\t\t// but don't work in JSONP, which has to be evaluated as JavaScript,\n\t\t// and can lead to security holes there. It is valid JSON to\n\t\t// escape them, so we do so unconditionally.\n\t\t// See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion.\n\t\tif c == '\\u2028' || c == '\\u2029' {\n\t\t\tif start < i {\n\t\t\t\te.WriteString(s[start:i])\n\t\t\t}\n\t\t\te.WriteString(`\\u202`)\n\t\t\te.WriteByte(hex[c&0xF])\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\ti += size\n\t}\n\tif start < len(s) {\n\t\te.WriteString(s[start:])\n\t}\n\te.WriteByte('\"')\n}\n\n// NOTE: keep in sync with string above.\nfunc (e *encodeState) stringBytes(s []byte, escapeHTML bool) {\n\te.WriteByte('\"')\n\tstart := 0\n\tfor i := 0; i < len(s); {\n\t\tif b := s[i]; b < utf8.RuneSelf {\n\t\t\tif htmlSafeSet[b] || (!escapeHTML && safeSet[b]) {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif start < i {\n\t\t\t\te.Write(s[start:i])\n\t\t\t}\n\t\t\te.WriteByte('\\\\')\n\t\t\tswitch b {\n\t\t\tcase '\\\\', '\"':\n\t\t\t\te.WriteByte(b)\n\t\t\tcase '\\n':\n\t\t\t\te.WriteByte('n')\n\t\t\tcase '\\r':\n\t\t\t\te.WriteByte('r')\n\t\t\tcase '\\t':\n\t\t\t\te.WriteByte('t')\n\t\t\tdefault:\n\t\t\t\t// This encodes bytes < 0x20 except for \\t, \\n and \\r.\n\t\t\t\t// If escapeHTML is set, it also escapes <, >, and &\n\t\t\t\t// because they can lead to security holes when\n\t\t\t\t// user-controlled strings are rendered into JSON\n\t\t\t\t// and served to some browsers.\n\t\t\t\te.WriteString(`u00`)\n\t\t\t\te.WriteByte(hex[b>>4])\n\t\t\t\te.WriteByte(hex[b&0xF])\n\t\t\t}\n\t\t\ti++\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\tc, size := utf8.DecodeRune(s[i:])\n\t\tif c == utf8.RuneError && size == 1 {\n\t\t\tif start < i {\n\t\t\t\te.Write(s[start:i])\n\t\t\t}\n\t\t\te.WriteString(`\\ufffd`)\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\t// U+2028 is LINE SEPARATOR.\n\t\t// U+2029 is PARAGRAPH SEPARATOR.\n\t\t// They are both technically valid characters in JSON strings,\n\t\t// but don't work in JSONP, which has to be evaluated as JavaScript,\n\t\t// and can lead to security holes there. It is valid JSON to\n\t\t// escape them, so we do so unconditionally.\n\t\t// See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion.\n\t\tif c == '\\u2028' || c == '\\u2029' {\n\t\t\tif start < i {\n\t\t\t\te.Write(s[start:i])\n\t\t\t}\n\t\t\te.WriteString(`\\u202`)\n\t\t\te.WriteByte(hex[c&0xF])\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\ti += size\n\t}\n\tif start < len(s) {\n\t\te.Write(s[start:])\n\t}\n\te.WriteByte('\"')\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte                 // []byte(name)\n\tequalFold func(s, t []byte) bool // bytes.EqualFold or equivalent\n\n\tnameNonEsc  string // `\"` + name + `\":`\n\tnameEscHTML string // `\"` + HTMLEscape(name) + `\":`\n\n\ttag       bool\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n\n\tencoder encoderFunc\n}\n\n// byIndex sorts field by index sequence.\ntype byIndex []field\n\nfunc (x byIndex) Len() int { return len(x) }\n\nfunc (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byIndex) Less(i, j int) bool {\n\tfor k, xik := range x[i].index {\n\t\tif k >= len(x[j].index) {\n\t\t\treturn false\n\t\t}\n\t\tif xik != x[j].index[k] {\n\t\t\treturn xik < x[j].index[k]\n\t\t}\n\t}\n\treturn len(x[i].index) < len(x[j].index)\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) structFields {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tvar count, nextCount map[reflect.Type]int\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\t// Buffer to run HTMLEscape on field names.\n\tvar nameEscBuf bytes.Buffer\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.Anonymous {\n\t\t\t\t\tt := sf.Type\n\t\t\t\t\tif t.Kind() == reflect.Pointer {\n\t\t\t\t\t\tt = t.Elem()\n\t\t\t\t\t}\n\t\t\t\t\tif !sf.IsExported() && t.Kind() != reflect.Struct {\n\t\t\t\t\t\t// Ignore embedded fields of unexported non-struct types.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t// Do not ignore embedded fields of unexported struct types\n\t\t\t\t\t// since they may have exported fields.\n\t\t\t\t} else if !sf.IsExported() {\n\t\t\t\t\t// Ignore unexported non-embedded fields.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Pointer {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Only strings, floats, integers, and booleans can be quoted.\n\t\t\t\tquoted := false\n\t\t\t\tif opts.Contains(\"string\") {\n\t\t\t\t\tswitch ft.Kind() {\n\t\t\t\t\tcase reflect.Bool,\n\t\t\t\t\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\t\t\t\t\treflect.Float32, reflect.Float64,\n\t\t\t\t\t\treflect.String:\n\t\t\t\t\t\tquoted = true\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfield := field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    quoted,\n\t\t\t\t\t}\n\t\t\t\t\tfield.nameBytes = []byte(field.name)\n\t\t\t\t\tfield.equalFold = foldFunc(field.nameBytes)\n\n\t\t\t\t\t// Build nameEscHTML and nameNonEsc ahead of time.\n\t\t\t\t\tnameEscBuf.Reset()\n\t\t\t\t\tnameEscBuf.WriteString(`\"`)\n\t\t\t\t\tHTMLEscape(&nameEscBuf, field.nameBytes)\n\t\t\t\t\tnameEscBuf.WriteString(`\":`)\n\t\t\t\t\tfield.nameEscHTML = nameEscBuf.String()\n\t\t\t\t\tfield.nameNonEsc = `\"` + field.name + `\":`\n\n\t\t\t\t\tfields = append(fields, field)\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 or 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, field{name: ft.Name(), index: index, typ: ft})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Slice(fields, func(i, j int) bool {\n\t\tx := fields\n\t\t// sort field by name, breaking ties with depth, then\n\t\t// breaking ties with \"name came from json tag\", then\n\t\t// breaking ties with index sequence.\n\t\tif x[i].name != x[j].name {\n\t\t\treturn x[i].name < x[j].name\n\t\t}\n\t\tif len(x[i].index) != len(x[j].index) {\n\t\t\treturn len(x[i].index) < len(x[j].index)\n\t\t}\n\t\tif x[i].tag != x[j].tag {\n\t\t\treturn x[i].tag\n\t\t}\n\t\treturn byIndex(x).Less(i, j)\n\t})\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tsort.Sort(byIndex(fields))\n\n\tfor i := range fields {\n\t\tf := &fields[i]\n\t\tf.encoder = typeEncoder(typeByIndex(t, f.index))\n\t}\n\tnameIndex := make(map[string]int, len(fields))\n\tfor i, field := range fields {\n\t\tnameIndex[field.name] = i\n\t}\n\treturn structFields{fields, nameIndex}\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order, then by presence of tag.\n\t// That means that the first field is the dominant one. We need only check\n\t// for error cases: two fields at top level, either both tagged or neither tagged.\n\tif len(fields) > 1 && len(fields[0].index) == len(fields[1].index) && fields[0].tag == fields[1].tag {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache sync.Map // map[reflect.Type]structFields\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) structFields {\n\tif f, ok := fieldCache.Load(t); ok {\n\t\treturn f.(structFields)\n\t}\n\tf, _ := fieldCache.LoadOrStore(t, typeFields(t))\n\treturn f.(structFields)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/fold.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\tcaseMask     = ^byte(0x20) // Mask to ignore case in ASCII.\n\tkelvin       = '\\u212a'\n\tsmallLongEss = '\\u017f'\n)\n\n// foldFunc returns one of four different case folding equivalence\n// functions, from most general (and slow) to fastest:\n//\n// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8\n// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')\n// 3) asciiEqualFold, no special, but includes non-letters (including _)\n// 4) simpleLetterEqualFold, no specials, no non-letters.\n//\n// The letters S and K are special because they map to 3 runes, not just 2:\n//   - S maps to s and to U+017F 'ſ' Latin small letter long s\n//   - k maps to K and to U+212A 'K' Kelvin sign\n//\n// See https://play.golang.org/p/tTxjOc0OGo\n//\n// The returned function is specialized for matching against s and\n// should only be given s. It's not curried for performance reasons.\nfunc foldFunc(s []byte) func(s, t []byte) bool {\n\tnonLetter := false\n\tspecial := false // special letter\n\tfor _, b := range s {\n\t\tif b >= utf8.RuneSelf {\n\t\t\treturn bytes.EqualFold\n\t\t}\n\t\tupper := b & caseMask\n\t\tif upper < 'A' || upper > 'Z' {\n\t\t\tnonLetter = true\n\t\t} else if upper == 'K' || upper == 'S' {\n\t\t\t// See above for why these letters are special.\n\t\t\tspecial = true\n\t\t}\n\t}\n\tif special {\n\t\treturn equalFoldRight\n\t}\n\tif nonLetter {\n\t\treturn asciiEqualFold\n\t}\n\treturn simpleLetterEqualFold\n}\n\n// equalFoldRight is a specialization of bytes.EqualFold when s is\n// known to be all ASCII (including punctuation), but contains an 's',\n// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.\n// See comments on foldFunc.\nfunc equalFoldRight(s, t []byte) bool {\n\tfor _, sb := range s {\n\t\tif len(t) == 0 {\n\t\t\treturn false\n\t\t}\n\t\ttb := t[0]\n\t\tif tb < utf8.RuneSelf {\n\t\t\tif sb != tb {\n\t\t\t\tsbUpper := sb & caseMask\n\t\t\t\tif 'A' <= sbUpper && sbUpper <= 'Z' {\n\t\t\t\t\tif sbUpper != tb&caseMask {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tt = t[1:]\n\t\t\tcontinue\n\t\t}\n\t\t// sb is ASCII and t is not. t must be either kelvin\n\t\t// sign or long s; sb must be s, S, k, or K.\n\t\ttr, size := utf8.DecodeRune(t)\n\t\tswitch sb {\n\t\tcase 's', 'S':\n\t\t\tif tr != smallLongEss {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase 'k', 'K':\n\t\t\tif tr != kelvin {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t\tt = t[size:]\n\n\t}\n\tif len(t) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// asciiEqualFold is a specialization of bytes.EqualFold for use when\n// s is all ASCII (but may contain non-letters) and contains no\n// special-folding letters.\n// See comments on foldFunc.\nfunc asciiEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, sb := range s {\n\t\ttb := t[i]\n\t\tif sb == tb {\n\t\t\tcontinue\n\t\t}\n\t\tif ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {\n\t\t\tif sb&caseMask != tb&caseMask {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// simpleLetterEqualFold is a specialization of bytes.EqualFold for\n// use when s is all ASCII letters (no underscores, etc) and also\n// doesn't contain 'k', 'K', 's', or 'S'.\n// See comments on foldFunc.\nfunc simpleLetterEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, b := range s {\n\t\tif b&caseMask != t[i]&caseMask {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/fuzz.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gofuzz\n\npackage json\n\nimport (\n\t\"fmt\"\n)\n\nfunc Fuzz(data []byte) (score int) {\n\tfor _, ctor := range []func() any{\n\t\tfunc() any { return new(any) },\n\t\tfunc() any { return new(map[string]any) },\n\t\tfunc() any { return new([]any) },\n\t} {\n\t\tv := ctor()\n\t\terr := Unmarshal(data, v)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tscore = 1\n\n\t\tm, err := Marshal(v)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"v=%#v\\n\", v)\n\t\t\tpanic(err)\n\t\t}\n\n\t\tu := ctor()\n\t\terr = Unmarshal(m, u)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"v=%#v\\n\", v)\n\t\t\tfmt.Printf(\"m=%s\\n\", m)\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/indent.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n)\n\n// Compact appends to dst the JSON-encoded src with\n// insignificant space characters elided.\nfunc Compact(dst *bytes.Buffer, src []byte) error {\n\treturn compact(dst, src, false)\n}\n\nfunc compact(dst *bytes.Buffer, src []byte, escape bool) error {\n\torigLen := dst.Len()\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\tstart := 0\n\tfor i, c := range src {\n\t\tif escape && (c == '<' || c == '>' || c == '&') {\n\t\t\tif start < i {\n\t\t\t\tdst.Write(src[start:i])\n\t\t\t}\n\t\t\tdst.WriteString(`\\u00`)\n\t\t\tdst.WriteByte(hex[c>>4])\n\t\t\tdst.WriteByte(hex[c&0xF])\n\t\t\tstart = i + 1\n\t\t}\n\t\t// Convert U+2028 and U+2029 (E2 80 A8 and E2 80 A9).\n\t\tif escape && c == 0xE2 && i+2 < len(src) && src[i+1] == 0x80 && src[i+2]&^1 == 0xA8 {\n\t\t\tif start < i {\n\t\t\t\tdst.Write(src[start:i])\n\t\t\t}\n\t\t\tdst.WriteString(`\\u202`)\n\t\t\tdst.WriteByte(hex[src[i+2]&0xF])\n\t\t\tstart = i + 3\n\t\t}\n\t\tv := scan.step(scan, c)\n\t\tif v >= scanSkipSpace {\n\t\t\tif v == scanError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif start < i {\n\t\t\t\tdst.Write(src[start:i])\n\t\t\t}\n\t\t\tstart = i + 1\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\tdst.Truncate(origLen)\n\t\treturn scan.err\n\t}\n\tif start < len(src) {\n\t\tdst.Write(src[start:])\n\t}\n\treturn nil\n}\n\nfunc newline(dst *bytes.Buffer, prefix, indent string, depth int) {\n\tdst.WriteByte('\\n')\n\tdst.WriteString(prefix)\n\tfor i := 0; i < depth; i++ {\n\t\tdst.WriteString(indent)\n\t}\n}\n\n// Indent appends to dst an indented form of the JSON-encoded src.\n// Each element in a JSON object or array begins on a new,\n// indented line beginning with prefix followed by one or more\n// copies of indent according to the indentation nesting.\n// The data appended to dst does not begin with the prefix nor\n// any indentation, to make it easier to embed inside other formatted JSON data.\n// Although leading space characters (space, tab, carriage return, newline)\n// at the beginning of src are dropped, trailing space characters\n// at the end of src are preserved and copied to dst.\n// For example, if src has no trailing spaces, neither will dst;\n// if src ends in a trailing newline, so will dst.\nfunc Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error {\n\torigLen := dst.Len()\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\tneedIndent := false\n\tdepth := 0\n\tfor _, c := range src {\n\t\tscan.bytes++\n\t\tv := scan.step(scan, c)\n\t\tif v == scanSkipSpace {\n\t\t\tcontinue\n\t\t}\n\t\tif v == scanError {\n\t\t\tbreak\n\t\t}\n\t\tif needIndent && v != scanEndObject && v != scanEndArray {\n\t\t\tneedIndent = false\n\t\t\tdepth++\n\t\t\tnewline(dst, prefix, indent, depth)\n\t\t}\n\n\t\t// Emit semantically uninteresting bytes\n\t\t// (in particular, punctuation in strings) unmodified.\n\t\tif v == scanContinue {\n\t\t\tdst.WriteByte(c)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Add spacing around real punctuation.\n\t\tswitch c {\n\t\tcase '{', '[':\n\t\t\t// delay indent so that empty object and array are formatted as {} and [].\n\t\t\tneedIndent = true\n\t\t\tdst.WriteByte(c)\n\n\t\tcase ',':\n\t\t\tdst.WriteByte(c)\n\t\t\tnewline(dst, prefix, indent, depth)\n\n\t\tcase ':':\n\t\t\tdst.WriteByte(c)\n\t\t\tdst.WriteByte(' ')\n\n\t\tcase '}', ']':\n\t\t\tif needIndent {\n\t\t\t\t// suppress indent in empty object/array\n\t\t\t\tneedIndent = false\n\t\t\t} else {\n\t\t\t\tdepth--\n\t\t\t\tnewline(dst, prefix, indent, depth)\n\t\t\t}\n\t\t\tdst.WriteByte(c)\n\n\t\tdefault:\n\t\t\tdst.WriteByte(c)\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\tdst.Truncate(origLen)\n\t\treturn scan.err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/kubernetes_patch.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\tgojson \"encoding/json\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Type-alias error and data types returned from decoding\n\ntype UnmarshalTypeError = gojson.UnmarshalTypeError\ntype UnmarshalFieldError = gojson.UnmarshalFieldError\ntype InvalidUnmarshalError = gojson.InvalidUnmarshalError\ntype Number = gojson.Number\ntype RawMessage = gojson.RawMessage\ntype Token = gojson.Token\ntype Delim = gojson.Delim\n\ntype UnmarshalOpt func(*decodeState)\n\nfunc UseNumber(d *decodeState) {\n\td.useNumber = true\n}\nfunc DisallowUnknownFields(d *decodeState) {\n\td.disallowUnknownFields = true\n}\n\n// CaseSensitive requires json keys to exactly match specified json tags (for tagged struct fields)\n// or struct field names (for untagged struct fields), or be treated as an unknown field.\nfunc CaseSensitive(d *decodeState) {\n\td.caseSensitive = true\n}\nfunc (d *Decoder) CaseSensitive() {\n\td.d.caseSensitive = true\n}\n\n// PreserveInts decodes numbers as int64 when decoding to untyped fields,\n// if the JSON data does not contain a \".\" character, parses as an integer successfully,\n// and does not overflow int64. Otherwise, it falls back to default float64 decoding behavior.\n//\n// If UseNumber is also set, it takes precedence over PreserveInts.\nfunc PreserveInts(d *decodeState) {\n\td.preserveInts = true\n}\nfunc (d *Decoder) PreserveInts() {\n\td.d.preserveInts = true\n}\n\n// DisallowDuplicateFields treats duplicate fields encountered while decoding as an error.\nfunc DisallowDuplicateFields(d *decodeState) {\n\td.disallowDuplicateFields = true\n}\nfunc (d *Decoder) DisallowDuplicateFields() {\n\td.d.disallowDuplicateFields = true\n}\n\nfunc (d *decodeState) newFieldError(errType strictErrType, field string) *strictError {\n\tif len(d.strictFieldStack) > 0 {\n\t\treturn &strictError{\n\t\t\tErrType: errType,\n\t\t\tPath:    strings.Join(d.strictFieldStack, \"\") + \".\" + field,\n\t\t}\n\t} else {\n\t\treturn &strictError{\n\t\t\tErrType: errType,\n\t\t\tPath:    field,\n\t\t}\n\t}\n}\n\n// saveStrictError saves a strict decoding error,\n// for reporting at the end of the unmarshal if no other errors occurred.\nfunc (d *decodeState) saveStrictError(err *strictError) {\n\t// prevent excessive numbers of accumulated errors\n\tif len(d.savedStrictErrors) >= 100 {\n\t\treturn\n\t}\n\t// dedupe accumulated strict errors\n\tif d.seenStrictErrors == nil {\n\t\td.seenStrictErrors = map[strictError]struct{}{}\n\t}\n\tif _, seen := d.seenStrictErrors[*err]; seen {\n\t\treturn\n\t}\n\n\t// accumulate the error\n\td.seenStrictErrors[*err] = struct{}{}\n\td.savedStrictErrors = append(d.savedStrictErrors, err)\n}\n\nfunc (d *decodeState) appendStrictFieldStackKey(key string) {\n\tif !d.disallowDuplicateFields && !d.disallowUnknownFields {\n\t\treturn\n\t}\n\tif len(d.strictFieldStack) > 0 {\n\t\td.strictFieldStack = append(d.strictFieldStack, \".\", key)\n\t} else {\n\t\td.strictFieldStack = append(d.strictFieldStack, key)\n\t}\n}\n\nfunc (d *decodeState) appendStrictFieldStackIndex(i int) {\n\tif !d.disallowDuplicateFields && !d.disallowUnknownFields {\n\t\treturn\n\t}\n\td.strictFieldStack = append(d.strictFieldStack, \"[\", strconv.Itoa(i), \"]\")\n}\n\ntype strictErrType string\n\nconst (\n\tunknownStrictErrType   strictErrType = \"unknown field\"\n\tduplicateStrictErrType strictErrType = \"duplicate field\"\n)\n\n// strictError is a strict decoding error\n// It has an ErrType (either unknown or duplicate)\n// and a path to the erroneous field\ntype strictError struct {\n\tErrType strictErrType\n\tPath    string\n}\n\nfunc (e *strictError) Error() string {\n\treturn string(e.ErrType) + \" \" + strconv.Quote(e.Path)\n}\n\nfunc (e *strictError) FieldPath() string {\n\treturn e.Path\n}\n\nfunc (e *strictError) SetFieldPath(path string) {\n\te.Path = path\n}\n\n// UnmarshalStrictError holds errors resulting from use of strict disallow___ decoder directives.\n// If this is returned from Unmarshal(), it means the decoding was successful in all other respects.\ntype UnmarshalStrictError struct {\n\tErrors []error\n}\n\nfunc (e *UnmarshalStrictError) Error() string {\n\tvar b strings.Builder\n\tb.WriteString(\"json: \")\n\tfor i, err := range e.Errors {\n\t\tif i > 0 {\n\t\t\tb.WriteString(\", \")\n\t\t}\n\t\tb.WriteString(err.Error())\n\t}\n\treturn b.String()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/scanner.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\n// JSON value parser state machine.\n// Just about at the limit of what is reasonable to write by hand.\n// Some parts are a bit tedious, but overall it nicely factors out the\n// otherwise common code from the multiple scanning functions\n// in this package (Compact, Indent, checkValid, etc).\n//\n// This file starts with two simple examples using the scanner\n// before diving into the scanner itself.\n\nimport (\n\t\"strconv\"\n\t\"sync\"\n)\n\n// Valid reports whether data is a valid JSON encoding.\nfunc Valid(data []byte) bool {\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\treturn checkValid(data, scan) == nil\n}\n\n// checkValid verifies that data is valid JSON-encoded data.\n// scan is passed in for use by checkValid to avoid an allocation.\n// checkValid returns nil or a SyntaxError.\nfunc checkValid(data []byte, scan *scanner) error {\n\tscan.reset()\n\tfor _, c := range data {\n\t\tscan.bytes++\n\t\tif scan.step(scan, c) == scanError {\n\t\t\treturn scan.err\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\treturn scan.err\n\t}\n\treturn nil\n}\n\n// A SyntaxError is a description of a JSON syntax error.\n// Unmarshal will return a SyntaxError if the JSON can't be parsed.\ntype SyntaxError struct {\n\tmsg    string // description of error\n\tOffset int64  // error occurred after reading Offset bytes\n}\n\nfunc (e *SyntaxError) Error() string { return e.msg }\n\n// A scanner is a JSON scanning state machine.\n// Callers call scan.reset and then pass bytes in one at a time\n// by calling scan.step(&scan, c) for each byte.\n// The return value, referred to as an opcode, tells the\n// caller about significant parsing events like beginning\n// and ending literals, objects, and arrays, so that the\n// caller can follow along if it wishes.\n// The return value scanEnd indicates that a single top-level\n// JSON value has been completed, *before* the byte that\n// just got passed in.  (The indication must be delayed in order\n// to recognize the end of numbers: is 123 a whole value or\n// the beginning of 12345e+6?).\ntype scanner struct {\n\t// The step is a func to be called to execute the next transition.\n\t// Also tried using an integer constant and a single func\n\t// with a switch, but using the func directly was 10% faster\n\t// on a 64-bit Mac Mini, and it's nicer to read.\n\tstep func(*scanner, byte) int\n\n\t// Reached end of top-level value.\n\tendTop bool\n\n\t// Stack of what we're in the middle of - array values, object keys, object values.\n\tparseState []int\n\n\t// Error that happened, if any.\n\terr error\n\n\t// total bytes consumed, updated by decoder.Decode (and deliberately\n\t// not set to zero by scan.reset)\n\tbytes int64\n}\n\nvar scannerPool = sync.Pool{\n\tNew: func() any {\n\t\treturn &scanner{}\n\t},\n}\n\nfunc newScanner() *scanner {\n\tscan := scannerPool.Get().(*scanner)\n\t// scan.reset by design doesn't set bytes to zero\n\tscan.bytes = 0\n\tscan.reset()\n\treturn scan\n}\n\nfunc freeScanner(scan *scanner) {\n\t// Avoid hanging on to too much memory in extreme cases.\n\tif len(scan.parseState) > 1024 {\n\t\tscan.parseState = nil\n\t}\n\tscannerPool.Put(scan)\n}\n\n// These values are returned by the state transition functions\n// assigned to scanner.state and the method scanner.eof.\n// They give details about the current state of the scan that\n// callers might be interested to know about.\n// It is okay to ignore the return value of any particular\n// call to scanner.state: if one call returns scanError,\n// every subsequent call will return scanError too.\nconst (\n\t// Continue.\n\tscanContinue     = iota // uninteresting byte\n\tscanBeginLiteral        // end implied by next result != scanContinue\n\tscanBeginObject         // begin object\n\tscanObjectKey           // just finished object key (string)\n\tscanObjectValue         // just finished non-last object value\n\tscanEndObject           // end object (implies scanObjectValue if possible)\n\tscanBeginArray          // begin array\n\tscanArrayValue          // just finished array value\n\tscanEndArray            // end array (implies scanArrayValue if possible)\n\tscanSkipSpace           // space byte; can skip; known to be last \"continue\" result\n\n\t// Stop.\n\tscanEnd   // top-level value ended *before* this byte; known to be first \"stop\" result\n\tscanError // hit an error, scanner.err.\n)\n\n// These values are stored in the parseState stack.\n// They give the current state of a composite value\n// being scanned. If the parser is inside a nested value\n// the parseState describes the nested state, outermost at entry 0.\nconst (\n\tparseObjectKey   = iota // parsing object key (before colon)\n\tparseObjectValue        // parsing object value (after colon)\n\tparseArrayValue         // parsing array value\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// reset prepares the scanner for use.\n// It must be called before calling s.step.\nfunc (s *scanner) reset() {\n\ts.step = stateBeginValue\n\ts.parseState = s.parseState[0:0]\n\ts.err = nil\n\ts.endTop = false\n}\n\n// eof tells the scanner that the end of input has been reached.\n// It returns a scan status just as s.step does.\nfunc (s *scanner) eof() int {\n\tif s.err != nil {\n\t\treturn scanError\n\t}\n\tif s.endTop {\n\t\treturn scanEnd\n\t}\n\ts.step(s, ' ')\n\tif s.endTop {\n\t\treturn scanEnd\n\t}\n\tif s.err == nil {\n\t\ts.err = &SyntaxError{\"unexpected end of JSON input\", s.bytes}\n\t}\n\treturn scanError\n}\n\n// pushParseState pushes a new parse state p onto the parse stack.\n// an error state is returned if maxNestingDepth was exceeded, otherwise successState is returned.\nfunc (s *scanner) pushParseState(c byte, newParseState int, successState int) int {\n\ts.parseState = append(s.parseState, newParseState)\n\tif len(s.parseState) <= maxNestingDepth {\n\t\treturn successState\n\t}\n\treturn s.error(c, \"exceeded max depth\")\n}\n\n// popParseState pops a parse state (already obtained) off the stack\n// and updates s.step accordingly.\nfunc (s *scanner) popParseState() {\n\tn := len(s.parseState) - 1\n\ts.parseState = s.parseState[0:n]\n\tif n == 0 {\n\t\ts.step = stateEndTop\n\t\ts.endTop = true\n\t} else {\n\t\ts.step = stateEndValue\n\t}\n}\n\nfunc isSpace(c byte) bool {\n\treturn c <= ' ' && (c == ' ' || c == '\\t' || c == '\\r' || c == '\\n')\n}\n\n// stateBeginValueOrEmpty is the state after reading `[`.\nfunc stateBeginValueOrEmpty(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == ']' {\n\t\treturn stateEndValue(s, c)\n\t}\n\treturn stateBeginValue(s, c)\n}\n\n// stateBeginValue is the state at the beginning of the input.\nfunc stateBeginValue(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tswitch c {\n\tcase '{':\n\t\ts.step = stateBeginStringOrEmpty\n\t\treturn s.pushParseState(c, parseObjectKey, scanBeginObject)\n\tcase '[':\n\t\ts.step = stateBeginValueOrEmpty\n\t\treturn s.pushParseState(c, parseArrayValue, scanBeginArray)\n\tcase '\"':\n\t\ts.step = stateInString\n\t\treturn scanBeginLiteral\n\tcase '-':\n\t\ts.step = stateNeg\n\t\treturn scanBeginLiteral\n\tcase '0': // beginning of 0.123\n\t\ts.step = state0\n\t\treturn scanBeginLiteral\n\tcase 't': // beginning of true\n\t\ts.step = stateT\n\t\treturn scanBeginLiteral\n\tcase 'f': // beginning of false\n\t\ts.step = stateF\n\t\treturn scanBeginLiteral\n\tcase 'n': // beginning of null\n\t\ts.step = stateN\n\t\treturn scanBeginLiteral\n\t}\n\tif '1' <= c && c <= '9' { // beginning of 1234.5\n\t\ts.step = state1\n\t\treturn scanBeginLiteral\n\t}\n\treturn s.error(c, \"looking for beginning of value\")\n}\n\n// stateBeginStringOrEmpty is the state after reading `{`.\nfunc stateBeginStringOrEmpty(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == '}' {\n\t\tn := len(s.parseState)\n\t\ts.parseState[n-1] = parseObjectValue\n\t\treturn stateEndValue(s, c)\n\t}\n\treturn stateBeginString(s, c)\n}\n\n// stateBeginString is the state after reading `{\"key\": value,`.\nfunc stateBeginString(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == '\"' {\n\t\ts.step = stateInString\n\t\treturn scanBeginLiteral\n\t}\n\treturn s.error(c, \"looking for beginning of object key string\")\n}\n\n// stateEndValue is the state after completing a value,\n// such as after reading `{}` or `true` or `[\"x\"`.\nfunc stateEndValue(s *scanner, c byte) int {\n\tn := len(s.parseState)\n\tif n == 0 {\n\t\t// Completed top-level before the current byte.\n\t\ts.step = stateEndTop\n\t\ts.endTop = true\n\t\treturn stateEndTop(s, c)\n\t}\n\tif isSpace(c) {\n\t\ts.step = stateEndValue\n\t\treturn scanSkipSpace\n\t}\n\tps := s.parseState[n-1]\n\tswitch ps {\n\tcase parseObjectKey:\n\t\tif c == ':' {\n\t\t\ts.parseState[n-1] = parseObjectValue\n\t\t\ts.step = stateBeginValue\n\t\t\treturn scanObjectKey\n\t\t}\n\t\treturn s.error(c, \"after object key\")\n\tcase parseObjectValue:\n\t\tif c == ',' {\n\t\t\ts.parseState[n-1] = parseObjectKey\n\t\t\ts.step = stateBeginString\n\t\t\treturn scanObjectValue\n\t\t}\n\t\tif c == '}' {\n\t\t\ts.popParseState()\n\t\t\treturn scanEndObject\n\t\t}\n\t\treturn s.error(c, \"after object key:value pair\")\n\tcase parseArrayValue:\n\t\tif c == ',' {\n\t\t\ts.step = stateBeginValue\n\t\t\treturn scanArrayValue\n\t\t}\n\t\tif c == ']' {\n\t\t\ts.popParseState()\n\t\t\treturn scanEndArray\n\t\t}\n\t\treturn s.error(c, \"after array element\")\n\t}\n\treturn s.error(c, \"\")\n}\n\n// stateEndTop is the state after finishing the top-level value,\n// such as after reading `{}` or `[1,2,3]`.\n// Only space characters should be seen now.\nfunc stateEndTop(s *scanner, c byte) int {\n\tif !isSpace(c) {\n\t\t// Complain about non-space byte on next call.\n\t\ts.error(c, \"after top-level value\")\n\t}\n\treturn scanEnd\n}\n\n// stateInString is the state after reading `\"`.\nfunc stateInString(s *scanner, c byte) int {\n\tif c == '\"' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\tif c == '\\\\' {\n\t\ts.step = stateInStringEsc\n\t\treturn scanContinue\n\t}\n\tif c < 0x20 {\n\t\treturn s.error(c, \"in string literal\")\n\t}\n\treturn scanContinue\n}\n\n// stateInStringEsc is the state after reading `\"\\` during a quoted string.\nfunc stateInStringEsc(s *scanner, c byte) int {\n\tswitch c {\n\tcase 'b', 'f', 'n', 'r', 't', '\\\\', '/', '\"':\n\t\ts.step = stateInString\n\t\treturn scanContinue\n\tcase 'u':\n\t\ts.step = stateInStringEscU\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in string escape code\")\n}\n\n// stateInStringEscU is the state after reading `\"\\u` during a quoted string.\nfunc stateInStringEscU(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU1\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU1 is the state after reading `\"\\u1` during a quoted string.\nfunc stateInStringEscU1(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU12\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU12 is the state after reading `\"\\u12` during a quoted string.\nfunc stateInStringEscU12(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU123\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU123 is the state after reading `\"\\u123` during a quoted string.\nfunc stateInStringEscU123(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInString\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateNeg is the state after reading `-` during a number.\nfunc stateNeg(s *scanner, c byte) int {\n\tif c == '0' {\n\t\ts.step = state0\n\t\treturn scanContinue\n\t}\n\tif '1' <= c && c <= '9' {\n\t\ts.step = state1\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in numeric literal\")\n}\n\n// state1 is the state after reading a non-zero integer during a number,\n// such as after reading `1` or `100` but not `0`.\nfunc state1(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = state1\n\t\treturn scanContinue\n\t}\n\treturn state0(s, c)\n}\n\n// state0 is the state after reading `0` during a number.\nfunc state0(s *scanner, c byte) int {\n\tif c == '.' {\n\t\ts.step = stateDot\n\t\treturn scanContinue\n\t}\n\tif c == 'e' || c == 'E' {\n\t\ts.step = stateE\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateDot is the state after reading the integer and decimal point in a number,\n// such as after reading `1.`.\nfunc stateDot(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = stateDot0\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"after decimal point in numeric literal\")\n}\n\n// stateDot0 is the state after reading the integer, decimal point, and subsequent\n// digits of a number, such as after reading `3.14`.\nfunc stateDot0(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\treturn scanContinue\n\t}\n\tif c == 'e' || c == 'E' {\n\t\ts.step = stateE\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateE is the state after reading the mantissa and e in a number,\n// such as after reading `314e` or `0.314e`.\nfunc stateE(s *scanner, c byte) int {\n\tif c == '+' || c == '-' {\n\t\ts.step = stateESign\n\t\treturn scanContinue\n\t}\n\treturn stateESign(s, c)\n}\n\n// stateESign is the state after reading the mantissa, e, and sign in a number,\n// such as after reading `314e-` or `0.314e+`.\nfunc stateESign(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = stateE0\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in exponent of numeric literal\")\n}\n\n// stateE0 is the state after reading the mantissa, e, optional sign,\n// and at least one digit of the exponent in a number,\n// such as after reading `314e-2` or `0.314e+1` or `3.14e0`.\nfunc stateE0(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateT is the state after reading `t`.\nfunc stateT(s *scanner, c byte) int {\n\tif c == 'r' {\n\t\ts.step = stateTr\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'r')\")\n}\n\n// stateTr is the state after reading `tr`.\nfunc stateTr(s *scanner, c byte) int {\n\tif c == 'u' {\n\t\ts.step = stateTru\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'u')\")\n}\n\n// stateTru is the state after reading `tru`.\nfunc stateTru(s *scanner, c byte) int {\n\tif c == 'e' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'e')\")\n}\n\n// stateF is the state after reading `f`.\nfunc stateF(s *scanner, c byte) int {\n\tif c == 'a' {\n\t\ts.step = stateFa\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'a')\")\n}\n\n// stateFa is the state after reading `fa`.\nfunc stateFa(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateFal\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'l')\")\n}\n\n// stateFal is the state after reading `fal`.\nfunc stateFal(s *scanner, c byte) int {\n\tif c == 's' {\n\t\ts.step = stateFals\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 's')\")\n}\n\n// stateFals is the state after reading `fals`.\nfunc stateFals(s *scanner, c byte) int {\n\tif c == 'e' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'e')\")\n}\n\n// stateN is the state after reading `n`.\nfunc stateN(s *scanner, c byte) int {\n\tif c == 'u' {\n\t\ts.step = stateNu\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'u')\")\n}\n\n// stateNu is the state after reading `nu`.\nfunc stateNu(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateNul\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'l')\")\n}\n\n// stateNul is the state after reading `nul`.\nfunc stateNul(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'l')\")\n}\n\n// stateError is the state after reaching a syntax error,\n// such as after reading `[1}` or `5.1.2`.\nfunc stateError(s *scanner, c byte) int {\n\treturn scanError\n}\n\n// error records an error and switches to the error state.\nfunc (s *scanner) error(c byte, context string) int {\n\ts.step = stateError\n\ts.err = &SyntaxError{\"invalid character \" + quoteChar(c) + \" \" + context, s.bytes}\n\treturn scanError\n}\n\n// quoteChar formats c as a quoted character literal\nfunc quoteChar(c byte) string {\n\t// special cases - different from quoted strings\n\tif c == '\\'' {\n\t\treturn `'\\''`\n\t}\n\tif c == '\"' {\n\t\treturn `'\"'`\n\t}\n\n\t// use quoted string with different quotation marks\n\ts := strconv.Quote(string(c))\n\treturn \"'\" + s[1:len(s)-1] + \"'\"\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/stream.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n)\n\n// A Decoder reads and decodes JSON values from an input stream.\ntype Decoder struct {\n\tr       io.Reader\n\tbuf     []byte\n\td       decodeState\n\tscanp   int   // start of unread data in buf\n\tscanned int64 // amount of data already scanned\n\tscan    scanner\n\terr     error\n\n\ttokenState int\n\ttokenStack []int\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may\n// read data from r beyond the JSON values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{r: r}\n}\n\n// UseNumber causes the Decoder to unmarshal a number into an interface{} as a\n// Number instead of as a float64.\nfunc (dec *Decoder) UseNumber() { dec.d.useNumber = true }\n\n// DisallowUnknownFields causes the Decoder to return an error when the destination\n// is a struct and the input contains object keys which do not match any\n// non-ignored, exported fields in the destination.\nfunc (dec *Decoder) DisallowUnknownFields() { dec.d.disallowUnknownFields = true }\n\n// Decode reads the next JSON-encoded value from its\n// input and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about\n// the conversion of JSON into a Go value.\nfunc (dec *Decoder) Decode(v any) error {\n\tif dec.err != nil {\n\t\treturn dec.err\n\t}\n\n\tif err := dec.tokenPrepareForDecode(); err != nil {\n\t\treturn err\n\t}\n\n\tif !dec.tokenValueAllowed() {\n\t\treturn &SyntaxError{msg: \"not at beginning of value\", Offset: dec.InputOffset()}\n\t}\n\n\t// Read whole value into buffer.\n\tn, err := dec.readValue()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdec.d.init(dec.buf[dec.scanp : dec.scanp+n])\n\tdec.scanp += n\n\n\t// Don't save err from unmarshal into dec.err:\n\t// the connection is still usable since we read a complete JSON\n\t// object from it before the error happened.\n\terr = dec.d.unmarshal(v)\n\n\t// fixup token streaming state\n\tdec.tokenValueEnd()\n\n\treturn err\n}\n\n// Buffered returns a reader of the data remaining in the Decoder's\n// buffer. The reader is valid until the next call to Decode.\nfunc (dec *Decoder) Buffered() io.Reader {\n\treturn bytes.NewReader(dec.buf[dec.scanp:])\n}\n\n// readValue reads a JSON value into dec.buf.\n// It returns the length of the encoding.\nfunc (dec *Decoder) readValue() (int, error) {\n\tdec.scan.reset()\n\n\tscanp := dec.scanp\n\tvar err error\nInput:\n\t// help the compiler see that scanp is never negative, so it can remove\n\t// some bounds checks below.\n\tfor scanp >= 0 {\n\n\t\t// Look in the buffer for a new value.\n\t\tfor ; scanp < len(dec.buf); scanp++ {\n\t\t\tc := dec.buf[scanp]\n\t\t\tdec.scan.bytes++\n\t\t\tswitch dec.scan.step(&dec.scan, c) {\n\t\t\tcase scanEnd:\n\t\t\t\t// scanEnd is delayed one byte so we decrement\n\t\t\t\t// the scanner bytes count by 1 to ensure that\n\t\t\t\t// this value is correct in the next call of Decode.\n\t\t\t\tdec.scan.bytes--\n\t\t\t\tbreak Input\n\t\t\tcase scanEndObject, scanEndArray:\n\t\t\t\t// scanEnd is delayed one byte.\n\t\t\t\t// We might block trying to get that byte from src,\n\t\t\t\t// so instead invent a space byte.\n\t\t\t\tif stateEndValue(&dec.scan, ' ') == scanEnd {\n\t\t\t\t\tscanp++\n\t\t\t\t\tbreak Input\n\t\t\t\t}\n\t\t\tcase scanError:\n\t\t\t\tdec.err = dec.scan.err\n\t\t\t\treturn 0, dec.scan.err\n\t\t\t}\n\t\t}\n\n\t\t// Did the last read have an error?\n\t\t// Delayed until now to allow buffer scan.\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tif dec.scan.step(&dec.scan, ' ') == scanEnd {\n\t\t\t\t\tbreak Input\n\t\t\t\t}\n\t\t\t\tif nonSpace(dec.buf) {\n\t\t\t\t\terr = io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t}\n\t\t\tdec.err = err\n\t\t\treturn 0, err\n\t\t}\n\n\t\tn := scanp - dec.scanp\n\t\terr = dec.refill()\n\t\tscanp = dec.scanp + n\n\t}\n\treturn scanp - dec.scanp, nil\n}\n\nfunc (dec *Decoder) refill() error {\n\t// Make room to read more into the buffer.\n\t// First slide down data already consumed.\n\tif dec.scanp > 0 {\n\t\tdec.scanned += int64(dec.scanp)\n\t\tn := copy(dec.buf, dec.buf[dec.scanp:])\n\t\tdec.buf = dec.buf[:n]\n\t\tdec.scanp = 0\n\t}\n\n\t// Grow buffer if not large enough.\n\tconst minRead = 512\n\tif cap(dec.buf)-len(dec.buf) < minRead {\n\t\tnewBuf := make([]byte, len(dec.buf), 2*cap(dec.buf)+minRead)\n\t\tcopy(newBuf, dec.buf)\n\t\tdec.buf = newBuf\n\t}\n\n\t// Read. Delay error for next iteration (after scan).\n\tn, err := dec.r.Read(dec.buf[len(dec.buf):cap(dec.buf)])\n\tdec.buf = dec.buf[0 : len(dec.buf)+n]\n\n\treturn err\n}\n\nfunc nonSpace(b []byte) bool {\n\tfor _, c := range b {\n\t\tif !isSpace(c) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// An Encoder writes JSON values to an output stream.\ntype Encoder struct {\n\tw          io.Writer\n\terr        error\n\tescapeHTML bool\n\n\tindentBuf    *bytes.Buffer\n\tindentPrefix string\n\tindentValue  string\n}\n\n// NewEncoder returns a new encoder that writes to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{w: w, escapeHTML: true}\n}\n\n// Encode writes the JSON encoding of v to the stream,\n// followed by a newline character.\n//\n// See the documentation for Marshal for details about the\n// conversion of Go values to JSON.\nfunc (enc *Encoder) Encode(v any) error {\n\tif enc.err != nil {\n\t\treturn enc.err\n\t}\n\te := newEncodeState()\n\terr := e.marshal(v, encOpts{escapeHTML: enc.escapeHTML})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Terminate each value with a newline.\n\t// This makes the output look a little nicer\n\t// when debugging, and some kind of space\n\t// is required if the encoded value was a number,\n\t// so that the reader knows there aren't more\n\t// digits coming.\n\te.WriteByte('\\n')\n\n\tb := e.Bytes()\n\tif enc.indentPrefix != \"\" || enc.indentValue != \"\" {\n\t\tif enc.indentBuf == nil {\n\t\t\tenc.indentBuf = new(bytes.Buffer)\n\t\t}\n\t\tenc.indentBuf.Reset()\n\t\terr = Indent(enc.indentBuf, b, enc.indentPrefix, enc.indentValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb = enc.indentBuf.Bytes()\n\t}\n\tif _, err = enc.w.Write(b); err != nil {\n\t\tenc.err = err\n\t}\n\tencodeStatePool.Put(e)\n\treturn err\n}\n\n// SetIndent instructs the encoder to format each subsequent encoded\n// value as if indented by the package-level function Indent(dst, src, prefix, indent).\n// Calling SetIndent(\"\", \"\") disables indentation.\nfunc (enc *Encoder) SetIndent(prefix, indent string) {\n\tenc.indentPrefix = prefix\n\tenc.indentValue = indent\n}\n\n// SetEscapeHTML specifies whether problematic HTML characters\n// should be escaped inside JSON quoted strings.\n// The default behavior is to escape &, <, and > to \\u0026, \\u003c, and \\u003e\n// to avoid certain safety problems that can arise when embedding JSON in HTML.\n//\n// In non-HTML settings where the escaping interferes with the readability\n// of the output, SetEscapeHTML(false) disables this behavior.\nfunc (enc *Encoder) SetEscapeHTML(on bool) {\n\tenc.escapeHTML = on\n}\n\n/*\n// RawMessage is a raw encoded JSON value.\n// It implements Marshaler and Unmarshaler and can\n// be used to delay JSON decoding or precompute a JSON encoding.\ntype RawMessage []byte\n\n// MarshalJSON returns m as the JSON encoding of m.\nfunc (m RawMessage) MarshalJSON() ([]byte, error) {\n\tif m == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn m, nil\n}\n\n// UnmarshalJSON sets *m to a copy of data.\nfunc (m *RawMessage) UnmarshalJSON(data []byte) error {\n\tif m == nil {\n\t\treturn errors.New(\"json.RawMessage: UnmarshalJSON on nil pointer\")\n\t}\n\t*m = append((*m)[0:0], data...)\n\treturn nil\n}\n*/\n\nvar _ Marshaler = (*RawMessage)(nil)\nvar _ Unmarshaler = (*RawMessage)(nil)\n\n/*\n// A Token holds a value of one of these types:\n//\n//\tDelim, for the four JSON delimiters [ ] { }\n//\tbool, for JSON booleans\n//\tfloat64, for JSON numbers\n//\tNumber, for JSON numbers\n//\tstring, for JSON string literals\n//\tnil, for JSON null\ntype Token any\n*/\n\nconst (\n\ttokenTopValue = iota\n\ttokenArrayStart\n\ttokenArrayValue\n\ttokenArrayComma\n\ttokenObjectStart\n\ttokenObjectKey\n\ttokenObjectColon\n\ttokenObjectValue\n\ttokenObjectComma\n)\n\n// advance tokenstate from a separator state to a value state\nfunc (dec *Decoder) tokenPrepareForDecode() error {\n\t// Note: Not calling peek before switch, to avoid\n\t// putting peek into the standard Decode path.\n\t// peek is only called when using the Token API.\n\tswitch dec.tokenState {\n\tcase tokenArrayComma:\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c != ',' {\n\t\t\treturn &SyntaxError{\"expected comma after array element\", dec.InputOffset()}\n\t\t}\n\t\tdec.scanp++\n\t\tdec.tokenState = tokenArrayValue\n\tcase tokenObjectColon:\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c != ':' {\n\t\t\treturn &SyntaxError{\"expected colon after object key\", dec.InputOffset()}\n\t\t}\n\t\tdec.scanp++\n\t\tdec.tokenState = tokenObjectValue\n\t}\n\treturn nil\n}\n\nfunc (dec *Decoder) tokenValueAllowed() bool {\n\tswitch dec.tokenState {\n\tcase tokenTopValue, tokenArrayStart, tokenArrayValue, tokenObjectValue:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (dec *Decoder) tokenValueEnd() {\n\tswitch dec.tokenState {\n\tcase tokenArrayStart, tokenArrayValue:\n\t\tdec.tokenState = tokenArrayComma\n\tcase tokenObjectValue:\n\t\tdec.tokenState = tokenObjectComma\n\t}\n}\n\n/*\n// A Delim is a JSON array or object delimiter, one of [ ] { or }.\ntype Delim rune\n\nfunc (d Delim) String() string {\n\treturn string(d)\n}\n*/\n\n// Token returns the next JSON token in the input stream.\n// At the end of the input stream, Token returns nil, io.EOF.\n//\n// Token guarantees that the delimiters [ ] { } it returns are\n// properly nested and matched: if Token encounters an unexpected\n// delimiter in the input, it will return an error.\n//\n// The input stream consists of basic JSON values—bool, string,\n// number, and null—along with delimiters [ ] { } of type Delim\n// to mark the start and end of arrays and objects.\n// Commas and colons are elided.\nfunc (dec *Decoder) Token() (Token, error) {\n\tfor {\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch c {\n\t\tcase '[':\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenStack = append(dec.tokenStack, dec.tokenState)\n\t\t\tdec.tokenState = tokenArrayStart\n\t\t\treturn Delim('['), nil\n\n\t\tcase ']':\n\t\t\tif dec.tokenState != tokenArrayStart && dec.tokenState != tokenArrayComma {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = dec.tokenStack[len(dec.tokenStack)-1]\n\t\t\tdec.tokenStack = dec.tokenStack[:len(dec.tokenStack)-1]\n\t\t\tdec.tokenValueEnd()\n\t\t\treturn Delim(']'), nil\n\n\t\tcase '{':\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenStack = append(dec.tokenStack, dec.tokenState)\n\t\t\tdec.tokenState = tokenObjectStart\n\t\t\treturn Delim('{'), nil\n\n\t\tcase '}':\n\t\t\tif dec.tokenState != tokenObjectStart && dec.tokenState != tokenObjectComma {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = dec.tokenStack[len(dec.tokenStack)-1]\n\t\t\tdec.tokenStack = dec.tokenStack[:len(dec.tokenStack)-1]\n\t\t\tdec.tokenValueEnd()\n\t\t\treturn Delim('}'), nil\n\n\t\tcase ':':\n\t\t\tif dec.tokenState != tokenObjectColon {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = tokenObjectValue\n\t\t\tcontinue\n\n\t\tcase ',':\n\t\t\tif dec.tokenState == tokenArrayComma {\n\t\t\t\tdec.scanp++\n\t\t\t\tdec.tokenState = tokenArrayValue\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif dec.tokenState == tokenObjectComma {\n\t\t\t\tdec.scanp++\n\t\t\t\tdec.tokenState = tokenObjectKey\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn dec.tokenError(c)\n\n\t\tcase '\"':\n\t\t\tif dec.tokenState == tokenObjectStart || dec.tokenState == tokenObjectKey {\n\t\t\t\tvar x string\n\t\t\t\told := dec.tokenState\n\t\t\t\tdec.tokenState = tokenTopValue\n\t\t\t\terr := dec.Decode(&x)\n\t\t\t\tdec.tokenState = old\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tdec.tokenState = tokenObjectColon\n\t\t\t\treturn x, nil\n\t\t\t}\n\t\t\tfallthrough\n\n\t\tdefault:\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tvar x any\n\t\t\tif err := dec.Decode(&x); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn x, nil\n\t\t}\n\t}\n}\n\nfunc (dec *Decoder) tokenError(c byte) (Token, error) {\n\tvar context string\n\tswitch dec.tokenState {\n\tcase tokenTopValue:\n\t\tcontext = \" looking for beginning of value\"\n\tcase tokenArrayStart, tokenArrayValue, tokenObjectValue:\n\t\tcontext = \" looking for beginning of value\"\n\tcase tokenArrayComma:\n\t\tcontext = \" after array element\"\n\tcase tokenObjectKey:\n\t\tcontext = \" looking for beginning of object key string\"\n\tcase tokenObjectColon:\n\t\tcontext = \" after object key\"\n\tcase tokenObjectComma:\n\t\tcontext = \" after object key:value pair\"\n\t}\n\treturn nil, &SyntaxError{\"invalid character \" + quoteChar(c) + context, dec.InputOffset()}\n}\n\n// More reports whether there is another element in the\n// current array or object being parsed.\nfunc (dec *Decoder) More() bool {\n\tc, err := dec.peek()\n\treturn err == nil && c != ']' && c != '}'\n}\n\nfunc (dec *Decoder) peek() (byte, error) {\n\tvar err error\n\tfor {\n\t\tfor i := dec.scanp; i < len(dec.buf); i++ {\n\t\t\tc := dec.buf[i]\n\t\t\tif isSpace(c) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdec.scanp = i\n\t\t\treturn c, nil\n\t\t}\n\t\t// buffer has been scanned, now report any error\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\terr = dec.refill()\n\t}\n}\n\n// InputOffset returns the input stream byte offset of the current decoder position.\n// The offset gives the location of the end of the most recently returned token\n// and the beginning of the next token.\nfunc (dec *Decoder) InputOffset() int64 {\n\treturn dec.scanned + int64(dec.scanp)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/tables.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"unicode/utf8\"\n\n// safeSet holds the value true if the ASCII character with the given array\n// position can be represented inside a JSON string without any further\n// escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), and the backslash character (\"\\\").\nvar safeSet = [utf8.RuneSelf]bool{\n\t' ':      true,\n\t'!':      true,\n\t'\"':      false,\n\t'#':      true,\n\t'$':      true,\n\t'%':      true,\n\t'&':      true,\n\t'\\'':     true,\n\t'(':      true,\n\t')':      true,\n\t'*':      true,\n\t'+':      true,\n\t',':      true,\n\t'-':      true,\n\t'.':      true,\n\t'/':      true,\n\t'0':      true,\n\t'1':      true,\n\t'2':      true,\n\t'3':      true,\n\t'4':      true,\n\t'5':      true,\n\t'6':      true,\n\t'7':      true,\n\t'8':      true,\n\t'9':      true,\n\t':':      true,\n\t';':      true,\n\t'<':      true,\n\t'=':      true,\n\t'>':      true,\n\t'?':      true,\n\t'@':      true,\n\t'A':      true,\n\t'B':      true,\n\t'C':      true,\n\t'D':      true,\n\t'E':      true,\n\t'F':      true,\n\t'G':      true,\n\t'H':      true,\n\t'I':      true,\n\t'J':      true,\n\t'K':      true,\n\t'L':      true,\n\t'M':      true,\n\t'N':      true,\n\t'O':      true,\n\t'P':      true,\n\t'Q':      true,\n\t'R':      true,\n\t'S':      true,\n\t'T':      true,\n\t'U':      true,\n\t'V':      true,\n\t'W':      true,\n\t'X':      true,\n\t'Y':      true,\n\t'Z':      true,\n\t'[':      true,\n\t'\\\\':     false,\n\t']':      true,\n\t'^':      true,\n\t'_':      true,\n\t'`':      true,\n\t'a':      true,\n\t'b':      true,\n\t'c':      true,\n\t'd':      true,\n\t'e':      true,\n\t'f':      true,\n\t'g':      true,\n\t'h':      true,\n\t'i':      true,\n\t'j':      true,\n\t'k':      true,\n\t'l':      true,\n\t'm':      true,\n\t'n':      true,\n\t'o':      true,\n\t'p':      true,\n\t'q':      true,\n\t'r':      true,\n\t's':      true,\n\t't':      true,\n\t'u':      true,\n\t'v':      true,\n\t'w':      true,\n\t'x':      true,\n\t'y':      true,\n\t'z':      true,\n\t'{':      true,\n\t'|':      true,\n\t'}':      true,\n\t'~':      true,\n\t'\\u007f': true,\n}\n\n// htmlSafeSet holds the value true if the ASCII character with the given\n// array position can be safely represented inside a JSON string, embedded\n// inside of HTML <script> tags, without any additional escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), the backslash character (\"\\\"), HTML opening and closing\n// tags (\"<\" and \">\"), and the ampersand (\"&\").\nvar htmlSafeSet = [utf8.RuneSelf]bool{\n\t' ':      true,\n\t'!':      true,\n\t'\"':      false,\n\t'#':      true,\n\t'$':      true,\n\t'%':      true,\n\t'&':      false,\n\t'\\'':     true,\n\t'(':      true,\n\t')':      true,\n\t'*':      true,\n\t'+':      true,\n\t',':      true,\n\t'-':      true,\n\t'.':      true,\n\t'/':      true,\n\t'0':      true,\n\t'1':      true,\n\t'2':      true,\n\t'3':      true,\n\t'4':      true,\n\t'5':      true,\n\t'6':      true,\n\t'7':      true,\n\t'8':      true,\n\t'9':      true,\n\t':':      true,\n\t';':      true,\n\t'<':      false,\n\t'=':      true,\n\t'>':      false,\n\t'?':      true,\n\t'@':      true,\n\t'A':      true,\n\t'B':      true,\n\t'C':      true,\n\t'D':      true,\n\t'E':      true,\n\t'F':      true,\n\t'G':      true,\n\t'H':      true,\n\t'I':      true,\n\t'J':      true,\n\t'K':      true,\n\t'L':      true,\n\t'M':      true,\n\t'N':      true,\n\t'O':      true,\n\t'P':      true,\n\t'Q':      true,\n\t'R':      true,\n\t'S':      true,\n\t'T':      true,\n\t'U':      true,\n\t'V':      true,\n\t'W':      true,\n\t'X':      true,\n\t'Y':      true,\n\t'Z':      true,\n\t'[':      true,\n\t'\\\\':     false,\n\t']':      true,\n\t'^':      true,\n\t'_':      true,\n\t'`':      true,\n\t'a':      true,\n\t'b':      true,\n\t'c':      true,\n\t'd':      true,\n\t'e':      true,\n\t'f':      true,\n\t'g':      true,\n\t'h':      true,\n\t'i':      true,\n\t'j':      true,\n\t'k':      true,\n\t'l':      true,\n\t'm':      true,\n\t'n':      true,\n\t'o':      true,\n\t'p':      true,\n\t'q':      true,\n\t'r':      true,\n\t's':      true,\n\t't':      true,\n\t'u':      true,\n\t'v':      true,\n\t'w':      true,\n\t'x':      true,\n\t'y':      true,\n\t'z':      true,\n\t'{':      true,\n\t'|':      true,\n\t'}':      true,\n\t'~':      true,\n\t'\\u007f': true,\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/tags.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"strings\"\n)\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\ttag, opt, _ := strings.Cut(tag, \",\")\n\treturn tag, tagOptions(opt)\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar name string\n\t\tname, s, _ = strings.Cut(s, \",\")\n\t\tif name == optionName {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/json.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\tgojson \"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\tinternaljson \"sigs.k8s.io/json/internal/golang/encoding/json\"\n)\n\n// Decoder describes the decoding API exposed by `encoding/json#Decoder`\ntype Decoder interface {\n\tDecode(v interface{}) error\n\tBuffered() io.Reader\n\tToken() (gojson.Token, error)\n\tMore() bool\n\tInputOffset() int64\n}\n\n// NewDecoderCaseSensitivePreserveInts returns a decoder that matches the behavior of encoding/json#NewDecoder, with the following changes:\n//   - When unmarshaling into a struct, JSON keys must case-sensitively match `json` tag names (for tagged struct fields)\n//     or struct field names (for untagged struct fields), or they are treated as unknown fields and discarded.\n//   - When unmarshaling a number into an interface value, it is unmarshaled as an int64 if\n//     the JSON data does not contain a \".\" character and parses as an integer successfully and\n//     does not overflow int64. Otherwise, the number is unmarshaled as a float64.\n//   - If a syntax error is returned, it will not be of type encoding/json#SyntaxError,\n//     but will be recognizeable by this package's IsSyntaxError() function.\nfunc NewDecoderCaseSensitivePreserveInts(r io.Reader) Decoder {\n\td := internaljson.NewDecoder(r)\n\td.CaseSensitive()\n\td.PreserveInts()\n\treturn d\n}\n\n// UnmarshalCaseSensitivePreserveInts parses the JSON-encoded data and stores the result in the value pointed to by v.\n//\n// UnmarshalCaseSensitivePreserveInts matches the behavior of encoding/json#Unmarshal, with the following changes:\n//   - When unmarshaling into a struct, JSON keys must case-sensitively match `json` tag names (for tagged struct fields)\n//     or struct field names (for untagged struct fields), or they are treated as unknown fields and discarded.\n//   - When unmarshaling a number into an interface value, it is unmarshaled as an int64 if\n//     the JSON data does not contain a \".\" character and parses as an integer successfully and\n//     does not overflow int64. Otherwise, the number is unmarshaled as a float64.\n//   - If a syntax error is returned, it will not be of type encoding/json#SyntaxError,\n//     but will be recognizeable by this package's IsSyntaxError() function.\nfunc UnmarshalCaseSensitivePreserveInts(data []byte, v interface{}) error {\n\treturn internaljson.Unmarshal(\n\t\tdata,\n\t\tv,\n\t\tinternaljson.CaseSensitive,\n\t\tinternaljson.PreserveInts,\n\t)\n}\n\ntype StrictOption int\n\nconst (\n\t// DisallowDuplicateFields returns strict errors if data contains duplicate fields\n\tDisallowDuplicateFields StrictOption = 1\n\n\t// DisallowUnknownFields returns strict errors if data contains unknown fields when decoding into typed structs\n\tDisallowUnknownFields StrictOption = 2\n)\n\n// UnmarshalStrict parses the JSON-encoded data and stores the result in the value pointed to by v.\n// Unmarshaling is performed identically to UnmarshalCaseSensitivePreserveInts(), returning an error on failure.\n//\n// If parsing succeeds, additional strict checks as selected by `strictOptions` are performed\n// and a list of the strict failures (if any) are returned. If no `strictOptions` are selected,\n// all supported strict checks are performed.\n//\n// Strict errors returned will implement the FieldError interface for the specific erroneous fields.\n//\n// Currently supported strict checks are:\n// - DisallowDuplicateFields: ensure the data contains no duplicate fields\n// - DisallowUnknownFields: ensure the data contains no unknown fields (when decoding into typed structs)\n//\n// Additional strict checks may be added in the future.\n//\n// Note that the strict checks do not change what is stored in v.\n// For example, if duplicate fields are present, they will be parsed and stored in v,\n// and errors about the duplicate fields will be returned in the strict error list.\nfunc UnmarshalStrict(data []byte, v interface{}, strictOptions ...StrictOption) (strictErrors []error, err error) {\n\tif len(strictOptions) == 0 {\n\t\terr = internaljson.Unmarshal(data, v,\n\t\t\t// options matching UnmarshalCaseSensitivePreserveInts\n\t\t\tinternaljson.CaseSensitive,\n\t\t\tinternaljson.PreserveInts,\n\t\t\t// all strict options\n\t\t\tinternaljson.DisallowDuplicateFields,\n\t\t\tinternaljson.DisallowUnknownFields,\n\t\t)\n\t} else {\n\t\topts := make([]internaljson.UnmarshalOpt, 0, 2+len(strictOptions))\n\t\t// options matching UnmarshalCaseSensitivePreserveInts\n\t\topts = append(opts, internaljson.CaseSensitive, internaljson.PreserveInts)\n\t\tfor _, strictOpt := range strictOptions {\n\t\t\tswitch strictOpt {\n\t\t\tcase DisallowDuplicateFields:\n\t\t\t\topts = append(opts, internaljson.DisallowDuplicateFields)\n\t\t\tcase DisallowUnknownFields:\n\t\t\t\topts = append(opts, internaljson.DisallowUnknownFields)\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unknown strict option %d\", strictOpt)\n\t\t\t}\n\t\t}\n\t\terr = internaljson.Unmarshal(data, v, opts...)\n\t}\n\n\tif strictErr, ok := err.(*internaljson.UnmarshalStrictError); ok {\n\t\treturn strictErr.Errors, nil\n\t}\n\treturn nil, err\n}\n\n// SyntaxErrorOffset returns if the specified error is a syntax error produced by encoding/json or this package.\nfunc SyntaxErrorOffset(err error) (isSyntaxError bool, offset int64) {\n\tswitch err := err.(type) {\n\tcase *gojson.SyntaxError:\n\t\treturn true, err.Offset\n\tcase *internaljson.SyntaxError:\n\t\treturn true, err.Offset\n\tdefault:\n\t\treturn false, 0\n\t}\n}\n\n// FieldError is an error that provides access to the path of the erroneous field\ntype FieldError interface {\n\terror\n\t// FieldPath provides the full path of the erroneous field within the json object.\n\tFieldPath() string\n\t// SetFieldPath updates the path of the erroneous field output in the error message.\n\tSetFieldPath(path string)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fieldpath defines a way for referencing path elements (e.g., an\n// index in an array, or a key in a map). It provides types for arranging these\n// into paths for referencing nested fields, and for grouping those into sets,\n// for referencing multiple nested fields.\npackage fieldpath\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/element.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// PathElement describes how to select a child field given a containing object.\ntype PathElement struct {\n\t// Exactly one of the following fields should be non-nil.\n\n\t// FieldName selects a single field from a map (reminder: this is also\n\t// how structs are represented). The containing object must be a map.\n\tFieldName *string\n\n\t// Key selects the list element which has fields matching those given.\n\t// The containing object must be an associative list with map typed\n\t// elements. They are sorted alphabetically.\n\tKey *value.FieldList\n\n\t// Value selects the list element with the given value. The containing\n\t// object must be an associative list with a primitive typed element\n\t// (i.e., a set).\n\tValue *value.Value\n\n\t// Index selects a list element by its index number. The containing\n\t// object must be an atomic list.\n\tIndex *int\n}\n\n// Less provides an order for path elements.\nfunc (e PathElement) Less(rhs PathElement) bool {\n\treturn e.Compare(rhs) < 0\n}\n\n// Compare provides an order for path elements.\nfunc (e PathElement) Compare(rhs PathElement) int {\n\tif e.FieldName != nil {\n\t\tif rhs.FieldName == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn strings.Compare(*e.FieldName, *rhs.FieldName)\n\t} else if rhs.FieldName != nil {\n\t\treturn 1\n\t}\n\n\tif e.Key != nil {\n\t\tif rhs.Key == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn e.Key.Compare(*rhs.Key)\n\t} else if rhs.Key != nil {\n\t\treturn 1\n\t}\n\n\tif e.Value != nil {\n\t\tif rhs.Value == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn value.Compare(*e.Value, *rhs.Value)\n\t} else if rhs.Value != nil {\n\t\treturn 1\n\t}\n\n\tif e.Index != nil {\n\t\tif rhs.Index == nil {\n\t\t\treturn -1\n\t\t}\n\t\tif *e.Index < *rhs.Index {\n\t\t\treturn -1\n\t\t} else if *e.Index == *rhs.Index {\n\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t} else if rhs.Index != nil {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// Equals returns true if both path elements are equal.\nfunc (e PathElement) Equals(rhs PathElement) bool {\n\tif e.FieldName != nil {\n\t\tif rhs.FieldName == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn *e.FieldName == *rhs.FieldName\n\t} else if rhs.FieldName != nil {\n\t\treturn false\n\t}\n\tif e.Key != nil {\n\t\tif rhs.Key == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn e.Key.Equals(*rhs.Key)\n\t} else if rhs.Key != nil {\n\t\treturn false\n\t}\n\tif e.Value != nil {\n\t\tif rhs.Value == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn value.Equals(*e.Value, *rhs.Value)\n\t} else if rhs.Value != nil {\n\t\treturn false\n\t}\n\tif e.Index != nil {\n\t\tif rhs.Index == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn *e.Index == *rhs.Index\n\t} else if rhs.Index != nil {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// String presents the path element as a human-readable string.\nfunc (e PathElement) String() string {\n\tswitch {\n\tcase e.FieldName != nil:\n\t\treturn \".\" + *e.FieldName\n\tcase e.Key != nil:\n\t\tstrs := make([]string, len(*e.Key))\n\t\tfor i, k := range *e.Key {\n\t\t\tstrs[i] = fmt.Sprintf(\"%v=%v\", k.Name, value.ToString(k.Value))\n\t\t}\n\t\t// Keys are supposed to be sorted.\n\t\treturn \"[\" + strings.Join(strs, \",\") + \"]\"\n\tcase e.Value != nil:\n\t\treturn fmt.Sprintf(\"[=%v]\", value.ToString(*e.Value))\n\tcase e.Index != nil:\n\t\treturn fmt.Sprintf(\"[%v]\", *e.Index)\n\tdefault:\n\t\treturn \"{{invalid path element}}\"\n\t}\n}\n\n// KeyByFields is a helper function which constructs a key for an associative\n// list type. `nameValues` must have an even number of entries, alternating\n// names (type must be string) with values (type must be value.Value). If these\n// conditions are not met, KeyByFields will panic--it's intended for static\n// construction and shouldn't have user-produced values passed to it.\nfunc KeyByFields(nameValues ...interface{}) *value.FieldList {\n\tif len(nameValues)%2 != 0 {\n\t\tpanic(\"must have a value for every name\")\n\t}\n\tout := value.FieldList{}\n\tfor i := 0; i < len(nameValues)-1; i += 2 {\n\t\tout = append(out, value.Field{Name: nameValues[i].(string), Value: value.NewValueInterface(nameValues[i+1])})\n\t}\n\tout.Sort()\n\treturn &out\n}\n\n// PathElementSet is a set of path elements.\n// TODO: serialize as a list.\ntype PathElementSet struct {\n\tmembers sortedPathElements\n}\n\nfunc MakePathElementSet(size int) PathElementSet {\n\treturn PathElementSet{\n\t\tmembers: make(sortedPathElements, 0, size),\n\t}\n}\n\ntype sortedPathElements []PathElement\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (spe sortedPathElements) Len() int           { return len(spe) }\nfunc (spe sortedPathElements) Less(i, j int) bool { return spe[i].Less(spe[j]) }\nfunc (spe sortedPathElements) Swap(i, j int)      { spe[i], spe[j] = spe[j], spe[i] }\n\n// Insert adds pe to the set.\nfunc (s *PathElementSet) Insert(pe PathElement) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, pe)\n\t\treturn\n\t}\n\tif s.members[loc].Equals(pe) {\n\t\treturn\n\t}\n\ts.members = append(s.members, PathElement{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = pe\n}\n\n// Union returns a set containing elements that appear in either s or s2.\nfunc (s *PathElementSet) Union(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tout.members = append(out.members, s2.members[j])\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\tif j < len(s2.members) {\n\t\tout.members = append(out.members, s2.members[j:]...)\n\t}\n\treturn out\n}\n\n// Intersection returns a set containing elements which appear in both s and s2.\nfunc (s *PathElementSet) Intersection(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\tout.members = append(out.members, s.members[i])\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\treturn out\n}\n\n// Difference returns a set containing elements which appear in s but not in s2.\nfunc (s *PathElementSet) Difference(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\treturn out\n}\n\n// Size retuns the number of elements in the set.\nfunc (s *PathElementSet) Size() int { return len(s.members) }\n\n// Has returns true if pe is a member of the set.\nfunc (s *PathElementSet) Has(pe PathElement) bool {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn false\n\t}\n\tif s.members[loc].Equals(pe) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Equals returns true if s and s2 have exactly the same members.\nfunc (s *PathElementSet) Equals(s2 *PathElementSet) bool {\n\tif len(s.members) != len(s2.members) {\n\t\treturn false\n\t}\n\tfor k := range s.members {\n\t\tif !s.members[k].Equals(s2.members[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Iterate calls f for each PathElement in the set. The order is deterministic.\nfunc (s *PathElementSet) Iterate(f func(PathElement)) {\n\tfor _, pe := range s.members {\n\t\tf(pe)\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/fromvalue.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// SetFromValue creates a set containing every leaf field mentioned in v.\nfunc SetFromValue(v value.Value) *Set {\n\ts := NewSet()\n\n\tw := objectWalker{\n\t\tpath:      Path{},\n\t\tvalue:     v,\n\t\tallocator: value.NewFreelistAllocator(),\n\t\tdo:        func(p Path) { s.Insert(p) },\n\t}\n\n\tw.walk()\n\treturn s\n}\n\ntype objectWalker struct {\n\tpath      Path\n\tvalue     value.Value\n\tallocator value.Allocator\n\n\tdo func(Path)\n}\n\nfunc (w *objectWalker) walk() {\n\tswitch {\n\tcase w.value.IsNull():\n\tcase w.value.IsFloat():\n\tcase w.value.IsInt():\n\tcase w.value.IsString():\n\tcase w.value.IsBool():\n\t\t// All leaf fields handled the same way (after the switch\n\t\t// statement).\n\n\t// Descend\n\tcase w.value.IsList():\n\t\t// If the list were atomic, we'd break here, but we don't have\n\t\t// a schema, so we can't tell.\n\t\tl := w.value.AsListUsing(w.allocator)\n\t\tdefer w.allocator.Free(l)\n\t\titer := l.RangeUsing(w.allocator)\n\t\tdefer w.allocator.Free(iter)\n\t\tfor iter.Next() {\n\t\t\ti, value := iter.Item()\n\t\t\tw2 := *w\n\t\t\tw2.path = append(w.path, w.GuessBestListPathElement(i, value))\n\t\t\tw2.value = value\n\t\t\tw2.walk()\n\t\t}\n\t\treturn\n\tcase w.value.IsMap():\n\t\t// If the map/struct were atomic, we'd break here, but we don't\n\t\t// have a schema, so we can't tell.\n\n\t\tm := w.value.AsMapUsing(w.allocator)\n\t\tdefer w.allocator.Free(m)\n\t\tm.IterateUsing(w.allocator, func(k string, val value.Value) bool {\n\t\t\tw2 := *w\n\t\t\tw2.path = append(w.path, PathElement{FieldName: &k})\n\t\t\tw2.value = val\n\t\t\tw2.walk()\n\t\t\treturn true\n\t\t})\n\t\treturn\n\t}\n\n\t// Leaf fields get added to the set.\n\tif len(w.path) > 0 {\n\t\tw.do(w.path)\n\t}\n}\n\n// AssociativeListCandidateFieldNames lists the field names which are\n// considered keys if found in a list element.\nvar AssociativeListCandidateFieldNames = []string{\n\t\"key\",\n\t\"id\",\n\t\"name\",\n}\n\n// GuessBestListPathElement guesses whether item is an associative list\n// element, which should be referenced by key(s), or if it is not and therefore\n// referencing by index is acceptable. Currently this is done by checking\n// whether item has any of the fields listed in\n// AssociativeListCandidateFieldNames which have scalar values.\nfunc (w *objectWalker) GuessBestListPathElement(index int, item value.Value) PathElement {\n\tif !item.IsMap() {\n\t\t// Non map items could be parts of sets or regular \"atomic\"\n\t\t// lists. We won't try to guess whether something should be a\n\t\t// set or not.\n\t\treturn PathElement{Index: &index}\n\t}\n\n\tm := item.AsMapUsing(w.allocator)\n\tdefer w.allocator.Free(m)\n\tvar keys value.FieldList\n\tfor _, name := range AssociativeListCandidateFieldNames {\n\t\tf, ok := m.Get(name)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\t// only accept primitive/scalar types as keys.\n\t\tif f.IsNull() || f.IsMap() || f.IsList() {\n\t\t\tcontinue\n\t\t}\n\t\tkeys = append(keys, value.Field{Name: name, Value: f})\n\t}\n\tif len(keys) > 0 {\n\t\tkeys.Sort()\n\t\treturn PathElement{Key: &keys}\n\t}\n\treturn PathElement{Index: &index}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/managers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// APIVersion describes the version of an object or of a fieldset.\ntype APIVersion string\n\ntype VersionedSet interface {\n\tSet() *Set\n\tAPIVersion() APIVersion\n\tApplied() bool\n}\n\n// VersionedSet associates a version to a set.\ntype versionedSet struct {\n\tset        *Set\n\tapiVersion APIVersion\n\tapplied    bool\n}\n\nfunc NewVersionedSet(set *Set, apiVersion APIVersion, applied bool) VersionedSet {\n\treturn versionedSet{\n\t\tset:        set,\n\t\tapiVersion: apiVersion,\n\t\tapplied:    applied,\n\t}\n}\n\nfunc (v versionedSet) Set() *Set {\n\treturn v.set\n}\n\nfunc (v versionedSet) APIVersion() APIVersion {\n\treturn v.apiVersion\n}\n\nfunc (v versionedSet) Applied() bool {\n\treturn v.applied\n}\n\n// ManagedFields is a map from manager to VersionedSet (what they own in\n// what version).\ntype ManagedFields map[string]VersionedSet\n\n// Equals returns true if the two managedfields are the same, false\n// otherwise.\nfunc (lhs ManagedFields) Equals(rhs ManagedFields) bool {\n\tif len(lhs) != len(rhs) {\n\t\treturn false\n\t}\n\n\tfor manager, left := range lhs {\n\t\tright, ok := rhs[manager]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif left.APIVersion() != right.APIVersion() || left.Applied() != right.Applied() {\n\t\t\treturn false\n\t\t}\n\t\tif !left.Set().Equals(right.Set()) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy the list, this is mostly a shallow copy.\nfunc (lhs ManagedFields) Copy() ManagedFields {\n\tcopy := ManagedFields{}\n\tfor manager, set := range lhs {\n\t\tcopy[manager] = set\n\t}\n\treturn copy\n}\n\n// Difference returns a symmetric difference between two Managers. If a\n// given user's entry has version X in lhs and version Y in rhs, then\n// the return value for that user will be from rhs. If the difference for\n// a user is an empty set, that user will not be inserted in the map.\nfunc (lhs ManagedFields) Difference(rhs ManagedFields) ManagedFields {\n\tdiff := ManagedFields{}\n\n\tfor manager, left := range lhs {\n\t\tright, ok := rhs[manager]\n\t\tif !ok {\n\t\t\tif !left.Set().Empty() {\n\t\t\t\tdiff[manager] = left\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// If we have sets in both but their version\n\t\t// differs, we don't even diff and keep the\n\t\t// entire thing.\n\t\tif left.APIVersion() != right.APIVersion() {\n\t\t\tdiff[manager] = right\n\t\t\tcontinue\n\t\t}\n\n\t\tnewSet := left.Set().Difference(right.Set()).Union(right.Set().Difference(left.Set()))\n\t\tif !newSet.Empty() {\n\t\t\tdiff[manager] = NewVersionedSet(newSet, right.APIVersion(), false)\n\t\t}\n\t}\n\n\tfor manager, set := range rhs {\n\t\tif _, ok := lhs[manager]; ok {\n\t\t\t// Already done\n\t\t\tcontinue\n\t\t}\n\t\tif !set.Set().Empty() {\n\t\t\tdiff[manager] = set\n\t\t}\n\t}\n\n\treturn diff\n}\n\nfunc (lhs ManagedFields) String() string {\n\ts := strings.Builder{}\n\tfor k, v := range lhs {\n\t\tfmt.Fprintf(&s, \"%s:\\n\", k)\n\t\tfmt.Fprintf(&s, \"- Applied: %v\\n\", v.Applied())\n\t\tfmt.Fprintf(&s, \"- APIVersion: %v\\n\", v.APIVersion())\n\t\tfmt.Fprintf(&s, \"- Set: %v\\n\", v.Set())\n\t}\n\treturn s.String()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/path.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// Path describes how to select a potentially deeply-nested child field given a\n// containing object.\ntype Path []PathElement\n\nfunc (fp Path) String() string {\n\tstrs := make([]string, len(fp))\n\tfor i := range fp {\n\t\tstrs[i] = fp[i].String()\n\t}\n\treturn strings.Join(strs, \"\")\n}\n\n// Equals returns true if the two paths are equivalent.\nfunc (fp Path) Equals(fp2 Path) bool {\n\tif len(fp) != len(fp2) {\n\t\treturn false\n\t}\n\tfor i := range fp {\n\t\tif !fp[i].Equals(fp2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Less provides a lexical order for Paths.\nfunc (fp Path) Compare(rhs Path) int {\n\ti := 0\n\tfor {\n\t\tif i >= len(fp) && i >= len(rhs) {\n\t\t\t// Paths are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif i >= len(fp) {\n\t\t\t// LHS is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif i >= len(rhs) {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\tif c := fp[i].Compare(rhs[i]); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t\ti++\n\t}\n}\n\nfunc (fp Path) Copy() Path {\n\tnew := make(Path, len(fp))\n\tcopy(new, fp)\n\treturn new\n}\n\n// MakePath constructs a Path. The parts may be PathElements, ints, strings.\nfunc MakePath(parts ...interface{}) (Path, error) {\n\tvar fp Path\n\tfor _, p := range parts {\n\t\tswitch t := p.(type) {\n\t\tcase PathElement:\n\t\t\tfp = append(fp, t)\n\t\tcase int:\n\t\t\t// TODO: Understand schema and object and convert this to the\n\t\t\t// FieldSpecifier below if appropriate.\n\t\t\tfp = append(fp, PathElement{Index: &t})\n\t\tcase string:\n\t\t\tfp = append(fp, PathElement{FieldName: &t})\n\t\tcase *value.FieldList:\n\t\t\tif len(*t) == 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"associative list key type path elements must have at least one key (got zero)\")\n\t\t\t}\n\t\t\tfp = append(fp, PathElement{Key: t})\n\t\tcase value.Value:\n\t\t\t// TODO: understand schema and verify that this is a set type\n\t\t\t// TODO: make a copy of t\n\t\t\tfp = append(fp, PathElement{Value: &t})\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"unable to make %#v into a path element\", p)\n\t\t}\n\t}\n\treturn fp, nil\n}\n\n// MakePathOrDie panics if parts can't be turned into a path. Good for things\n// that are known at complie time.\nfunc MakePathOrDie(parts ...interface{}) Path {\n\tfp, err := MakePath(parts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn fp\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/pathelementmap.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"sort\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// PathElementValueMap is a map from PathElement to value.Value.\n//\n// TODO(apelisse): We have multiple very similar implementation of this\n// for PathElementSet and SetNodeMap, so we could probably share the\n// code.\ntype PathElementValueMap struct {\n\tmembers sortedPathElementValues\n}\n\nfunc MakePathElementValueMap(size int) PathElementValueMap {\n\treturn PathElementValueMap{\n\t\tmembers: make(sortedPathElementValues, 0, size),\n\t}\n}\n\ntype pathElementValue struct {\n\tPathElement PathElement\n\tValue       value.Value\n}\n\ntype sortedPathElementValues []pathElementValue\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (spev sortedPathElementValues) Len() int { return len(spev) }\nfunc (spev sortedPathElementValues) Less(i, j int) bool {\n\treturn spev[i].PathElement.Less(spev[j].PathElement)\n}\nfunc (spev sortedPathElementValues) Swap(i, j int) { spev[i], spev[j] = spev[j], spev[i] }\n\n// Insert adds the pathelement and associated value in the map.\nfunc (s *PathElementValueMap) Insert(pe PathElement, v value.Value) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].PathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, pathElementValue{pe, v})\n\t\treturn\n\t}\n\tif s.members[loc].PathElement.Equals(pe) {\n\t\treturn\n\t}\n\ts.members = append(s.members, pathElementValue{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = pathElementValue{pe, v}\n}\n\n// Get retrieves the value associated with the given PathElement from the map.\n// (nil, false) is returned if there is no such PathElement.\nfunc (s *PathElementValueMap) Get(pe PathElement) (value.Value, bool) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].PathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn nil, false\n\t}\n\tif s.members[loc].PathElement.Equals(pe) {\n\t\treturn s.members[loc].Value, true\n\t}\n\treturn nil, false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/serialize-pe.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar ErrUnknownPathElementType = errors.New(\"unknown path element type\")\n\nconst (\n\t// Field indicates that the content of this path element is a field's name\n\tpeField = \"f\"\n\n\t// Value indicates that the content of this path element is a field's value\n\tpeValue = \"v\"\n\n\t// Index indicates that the content of this path element is an index in an array\n\tpeIndex = \"i\"\n\n\t// Key indicates that the content of this path element is a key value map\n\tpeKey = \"k\"\n\n\t// Separator separates the type of a path element from the contents\n\tpeSeparator = \":\"\n)\n\nvar (\n\tpeFieldSepBytes = []byte(peField + peSeparator)\n\tpeValueSepBytes = []byte(peValue + peSeparator)\n\tpeIndexSepBytes = []byte(peIndex + peSeparator)\n\tpeKeySepBytes   = []byte(peKey + peSeparator)\n\tpeSepBytes      = []byte(peSeparator)\n)\n\n// DeserializePathElement parses a serialized path element\nfunc DeserializePathElement(s string) (PathElement, error) {\n\tb := []byte(s)\n\tif len(b) < 2 {\n\t\treturn PathElement{}, errors.New(\"key must be 2 characters long:\")\n\t}\n\ttypeSep, b := b[:2], b[2:]\n\tif typeSep[1] != peSepBytes[0] {\n\t\treturn PathElement{}, fmt.Errorf(\"missing colon: %v\", s)\n\t}\n\tswitch typeSep[0] {\n\tcase peFieldSepBytes[0]:\n\t\t// Slice s rather than convert b, to save on\n\t\t// allocations.\n\t\tstr := s[2:]\n\t\treturn PathElement{\n\t\t\tFieldName: &str,\n\t\t}, nil\n\tcase peValueSepBytes[0]:\n\t\titer := readPool.BorrowIterator(b)\n\t\tdefer readPool.ReturnIterator(iter)\n\t\tv, err := value.ReadJSONIter(iter)\n\t\tif err != nil {\n\t\t\treturn PathElement{}, err\n\t\t}\n\t\treturn PathElement{Value: &v}, nil\n\tcase peKeySepBytes[0]:\n\t\titer := readPool.BorrowIterator(b)\n\t\tdefer readPool.ReturnIterator(iter)\n\t\tfields := value.FieldList{}\n\n\t\titer.ReadObjectCB(func(iter *jsoniter.Iterator, key string) bool {\n\t\t\tv, err := value.ReadJSONIter(iter)\n\t\t\tif err != nil {\n\t\t\t\titer.Error = err\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tfields = append(fields, value.Field{Name: key, Value: v})\n\t\t\treturn true\n\t\t})\n\t\tfields.Sort()\n\t\treturn PathElement{Key: &fields}, iter.Error\n\tcase peIndexSepBytes[0]:\n\t\ti, err := strconv.Atoi(s[2:])\n\t\tif err != nil {\n\t\t\treturn PathElement{}, err\n\t\t}\n\t\treturn PathElement{\n\t\t\tIndex: &i,\n\t\t}, nil\n\tdefault:\n\t\treturn PathElement{}, ErrUnknownPathElementType\n\t}\n}\n\nvar (\n\treadPool  = jsoniter.NewIterator(jsoniter.ConfigCompatibleWithStandardLibrary).Pool()\n\twritePool = jsoniter.NewStream(jsoniter.ConfigCompatibleWithStandardLibrary, nil, 1024).Pool()\n)\n\n// SerializePathElement serializes a path element\nfunc SerializePathElement(pe PathElement) (string, error) {\n\tbuf := strings.Builder{}\n\terr := serializePathElementToWriter(&buf, pe)\n\treturn buf.String(), err\n}\n\nfunc serializePathElementToWriter(w io.Writer, pe PathElement) error {\n\tstream := writePool.BorrowStream(w)\n\tdefer writePool.ReturnStream(stream)\n\tswitch {\n\tcase pe.FieldName != nil:\n\t\tif _, err := stream.Write(peFieldSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteRaw(*pe.FieldName)\n\tcase pe.Key != nil:\n\t\tif _, err := stream.Write(peKeySepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectStart()\n\n\t\tfor i, field := range *pe.Key {\n\t\t\tif i > 0 {\n\t\t\t\tstream.WriteMore()\n\t\t\t}\n\t\t\tstream.WriteObjectField(field.Name)\n\t\t\tvalue.WriteJSONStream(field.Value, stream)\n\t\t}\n\t\tstream.WriteObjectEnd()\n\tcase pe.Value != nil:\n\t\tif _, err := stream.Write(peValueSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalue.WriteJSONStream(*pe.Value, stream)\n\tcase pe.Index != nil:\n\t\tif _, err := stream.Write(peIndexSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteInt(*pe.Index)\n\tdefault:\n\t\treturn errors.New(\"invalid PathElement\")\n\t}\n\tb := stream.Buffer()\n\terr := stream.Flush()\n\t// Help jsoniter manage its buffers--without this, the next\n\t// use of the stream is likely to require an allocation. Look\n\t// at the jsoniter stream code to understand why. They were probably\n\t// optimizing for folks using the buffer directly.\n\tstream.SetBuffer(b[:0])\n\treturn err\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/serialize.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"unsafe\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n)\n\nfunc (s *Set) ToJSON() ([]byte, error) {\n\tbuf := bytes.Buffer{}\n\terr := s.ToJSONStream(&buf)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf.Bytes(), nil\n}\n\nfunc (s *Set) ToJSONStream(w io.Writer) error {\n\tstream := writePool.BorrowStream(w)\n\tdefer writePool.ReturnStream(stream)\n\n\tvar r reusableBuilder\n\n\tstream.WriteObjectStart()\n\terr := s.emitContentsV1(false, stream, &r)\n\tif err != nil {\n\t\treturn err\n\t}\n\tstream.WriteObjectEnd()\n\treturn stream.Flush()\n}\n\nfunc manageMemory(stream *jsoniter.Stream) error {\n\t// Help jsoniter manage its buffers--without this, it does a bunch of\n\t// alloctaions that are not necessary. They were probably optimizing\n\t// for folks using the buffer directly.\n\tb := stream.Buffer()\n\tif len(b) > 4096 || cap(b)-len(b) < 2048 {\n\t\tif err := stream.Flush(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.SetBuffer(b[:0])\n\t}\n\treturn nil\n}\n\ntype reusableBuilder struct {\n\tbytes.Buffer\n}\n\nfunc (r *reusableBuilder) unsafeString() string {\n\tb := r.Bytes()\n\treturn *(*string)(unsafe.Pointer(&b))\n}\n\nfunc (r *reusableBuilder) reset() *bytes.Buffer {\n\tr.Reset()\n\treturn &r.Buffer\n}\n\nfunc (s *Set) emitContentsV1(includeSelf bool, stream *jsoniter.Stream, r *reusableBuilder) error {\n\tmi, ci := 0, 0\n\tfirst := true\n\tpreWrite := func() {\n\t\tif first {\n\t\t\tfirst = false\n\t\t\treturn\n\t\t}\n\t\tstream.WriteMore()\n\t}\n\n\tif includeSelf && !(len(s.Members.members) == 0 && len(s.Children.members) == 0) {\n\t\tpreWrite()\n\t\tstream.WriteObjectField(\".\")\n\t\tstream.WriteEmptyObject()\n\t}\n\n\tfor mi < len(s.Members.members) && ci < len(s.Children.members) {\n\t\tmpe := s.Members.members[mi]\n\t\tcpe := s.Children.members[ci].pathElement\n\n\t\tif c := mpe.Compare(cpe); c < 0 {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), mpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteEmptyObject()\n\t\t\tmi++\n\t\t} else if c > 0 {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteObjectStart()\n\t\t\tif err := s.Children.members[ci].set.emitContentsV1(false, stream, r); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectEnd()\n\t\t\tci++\n\t\t} else {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteObjectStart()\n\t\t\tif err := s.Children.members[ci].set.emitContentsV1(true, stream, r); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectEnd()\n\t\t\tmi++\n\t\t\tci++\n\t\t}\n\t}\n\n\tfor mi < len(s.Members.members) {\n\t\tmpe := s.Members.members[mi]\n\n\t\tpreWrite()\n\t\tif err := serializePathElementToWriter(r.reset(), mpe); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectField(r.unsafeString())\n\t\tstream.WriteEmptyObject()\n\t\tmi++\n\t}\n\n\tfor ci < len(s.Children.members) {\n\t\tcpe := s.Children.members[ci].pathElement\n\n\t\tpreWrite()\n\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectField(r.unsafeString())\n\t\tstream.WriteObjectStart()\n\t\tif err := s.Children.members[ci].set.emitContentsV1(false, stream, r); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectEnd()\n\t\tci++\n\t}\n\n\treturn manageMemory(stream)\n}\n\n// FromJSON clears s and reads a JSON formatted set structure.\nfunc (s *Set) FromJSON(r io.Reader) error {\n\t// The iterator pool is completely useless for memory management, grrr.\n\titer := jsoniter.Parse(jsoniter.ConfigCompatibleWithStandardLibrary, r, 4096)\n\n\tfound, _ := readIterV1(iter)\n\tif found == nil {\n\t\t*s = Set{}\n\t} else {\n\t\t*s = *found\n\t}\n\treturn iter.Error\n}\n\n// returns true if this subtree is also (or only) a member of parent; s is nil\n// if there are no further children.\nfunc readIterV1(iter *jsoniter.Iterator) (children *Set, isMember bool) {\n\titer.ReadMapCB(func(iter *jsoniter.Iterator, key string) bool {\n\t\tif key == \".\" {\n\t\t\tisMember = true\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t}\n\t\tpe, err := DeserializePathElement(key)\n\t\tif err == ErrUnknownPathElementType {\n\t\t\t// Ignore these-- a future version maybe knows what\n\t\t\t// they are. We drop these completely rather than try\n\t\t\t// to preserve things we don't understand.\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t} else if err != nil {\n\t\t\titer.ReportError(\"parsing key as path element\", err.Error())\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t}\n\t\tgrandchildren, childIsMember := readIterV1(iter)\n\t\tif childIsMember {\n\t\t\tif children == nil {\n\t\t\t\tchildren = &Set{}\n\t\t\t}\n\t\t\tm := &children.Members.members\n\t\t\t// Since we expect that most of the time these will have been\n\t\t\t// serialized in the right order, we just verify that and append.\n\t\t\tappendOK := len(*m) == 0 || (*m)[len(*m)-1].Less(pe)\n\t\t\tif appendOK {\n\t\t\t\t*m = append(*m, pe)\n\t\t\t} else {\n\t\t\t\tchildren.Members.Insert(pe)\n\t\t\t}\n\t\t}\n\t\tif grandchildren != nil {\n\t\t\tif children == nil {\n\t\t\t\tchildren = &Set{}\n\t\t\t}\n\t\t\t// Since we expect that most of the time these will have been\n\t\t\t// serialized in the right order, we just verify that and append.\n\t\t\tm := &children.Children.members\n\t\t\tappendOK := len(*m) == 0 || (*m)[len(*m)-1].pathElement.Less(pe)\n\t\t\tif appendOK {\n\t\t\t\t*m = append(*m, setNode{pe, grandchildren})\n\t\t\t} else {\n\t\t\t\t*children.Children.Descend(pe) = *grandchildren\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\tif children == nil {\n\t\tisMember = true\n\t}\n\n\treturn children, isMember\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// Set identifies a set of fields.\ntype Set struct {\n\t// Members lists fields that are part of the set.\n\t// TODO: will be serialized as a list of path elements.\n\tMembers PathElementSet\n\n\t// Children lists child fields which themselves have children that are\n\t// members of the set. Appearance in this list does not imply membership.\n\t// Note: this is a tree, not an arbitrary graph.\n\tChildren SetNodeMap\n}\n\n// NewSet makes a set from a list of paths.\nfunc NewSet(paths ...Path) *Set {\n\ts := &Set{}\n\tfor _, p := range paths {\n\t\ts.Insert(p)\n\t}\n\treturn s\n}\n\n// Insert adds the field identified by `p` to the set. Important: parent fields\n// are NOT added to the set; if that is desired, they must be added separately.\nfunc (s *Set) Insert(p Path) {\n\tif len(p) == 0 {\n\t\t// Zero-length path identifies the entire object; we don't\n\t\t// track top-level ownership.\n\t\treturn\n\t}\n\tfor {\n\t\tif len(p) == 1 {\n\t\t\ts.Members.Insert(p[0])\n\t\t\treturn\n\t\t}\n\t\ts = s.Children.Descend(p[0])\n\t\tp = p[1:]\n\t}\n}\n\n// Union returns a Set containing elements which appear in either s or s2.\nfunc (s *Set) Union(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Union(&s2.Members),\n\t\tChildren: *s.Children.Union(&s2.Children),\n\t}\n}\n\n// Intersection returns a Set containing leaf elements which appear in both s\n// and s2. Intersection can be constructed from Union and Difference operations\n// (example in the tests) but it's much faster to do it in one pass.\nfunc (s *Set) Intersection(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Intersection(&s2.Members),\n\t\tChildren: *s.Children.Intersection(&s2.Children),\n\t}\n}\n\n// Difference returns a Set containing elements which:\n// * appear in s\n// * do not appear in s2\n//\n// In other words, for leaf fields, this acts like a regular set difference\n// operation. When non leaf fields are compared with leaf fields (\"parents\"\n// which contain \"children\"), the effect is:\n// * parent - child = parent\n// * child - parent = {empty set}\nfunc (s *Set) Difference(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Difference(&s2.Members),\n\t\tChildren: *s.Children.Difference(s2),\n\t}\n}\n\n// RecursiveDifference returns a Set containing elements which:\n// * appear in s\n// * do not appear in s2\n//\n// Compared to a regular difference,\n// this removes every field **and its children** from s that is contained in s2.\n//\n// For example, with s containing `a.b.c` and s2 containing `a.b`,\n// a RecursiveDifference will result in `a`, as the entire node `a.b` gets removed.\nfunc (s *Set) RecursiveDifference(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Difference(&s2.Members),\n\t\tChildren: *s.Children.RecursiveDifference(s2),\n\t}\n}\n\n// EnsureNamedFieldsAreMembers returns a Set that contains all the\n// fields in s, as well as all the named fields that are typically not\n// included. For example, a set made of \"a.b.c\" will end-up also owning\n// \"a\" if it's a named fields but not \"a.b\" if it's a map.\nfunc (s *Set) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *Set {\n\tmembers := PathElementSet{\n\t\tmembers: make(sortedPathElements, 0, s.Members.Size()+len(s.Children.members)),\n\t}\n\tatom, _ := sc.Resolve(tr)\n\tmembers.members = append(members.members, s.Members.members...)\n\tfor _, node := range s.Children.members {\n\t\t// Only insert named fields.\n\t\tif node.pathElement.FieldName != nil && atom.Map != nil {\n\t\t\tif _, has := atom.Map.FindField(*node.pathElement.FieldName); has {\n\t\t\t\tmembers.Insert(node.pathElement)\n\t\t\t}\n\t\t}\n\t}\n\treturn &Set{\n\t\tMembers:  members,\n\t\tChildren: *s.Children.EnsureNamedFieldsAreMembers(sc, tr),\n\t}\n}\n\n// Size returns the number of members of the set.\nfunc (s *Set) Size() int {\n\treturn s.Members.Size() + s.Children.Size()\n}\n\n// Empty returns true if there are no members of the set. It is a separate\n// function from Size since it's common to check whether size > 0, and\n// potentially much faster to return as soon as a single element is found.\nfunc (s *Set) Empty() bool {\n\tif s.Members.Size() > 0 {\n\t\treturn false\n\t}\n\treturn s.Children.Empty()\n}\n\n// Has returns true if the field referenced by `p` is a member of the set.\nfunc (s *Set) Has(p Path) bool {\n\tif len(p) == 0 {\n\t\t// No one owns \"the entire object\"\n\t\treturn false\n\t}\n\tfor {\n\t\tif len(p) == 1 {\n\t\t\treturn s.Members.Has(p[0])\n\t\t}\n\t\tvar ok bool\n\t\ts, ok = s.Children.Get(p[0])\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tp = p[1:]\n\t}\n}\n\n// Equals returns true if s and s2 have exactly the same members.\nfunc (s *Set) Equals(s2 *Set) bool {\n\treturn s.Members.Equals(&s2.Members) && s.Children.Equals(&s2.Children)\n}\n\n// String returns the set one element per line.\nfunc (s *Set) String() string {\n\telements := []string{}\n\ts.Iterate(func(p Path) {\n\t\telements = append(elements, p.String())\n\t})\n\treturn strings.Join(elements, \"\\n\")\n}\n\n// Iterate calls f once for each field that is a member of the set (preorder\n// DFS). The path passed to f will be reused so make a copy if you wish to keep\n// it.\nfunc (s *Set) Iterate(f func(Path)) {\n\ts.iteratePrefix(Path{}, f)\n}\n\nfunc (s *Set) iteratePrefix(prefix Path, f func(Path)) {\n\ts.Members.Iterate(func(pe PathElement) { f(append(prefix, pe)) })\n\ts.Children.iteratePrefix(prefix, f)\n}\n\n// WithPrefix returns the subset of paths which begin with the given prefix,\n// with the prefix not included.\nfunc (s *Set) WithPrefix(pe PathElement) *Set {\n\tsubset, ok := s.Children.Get(pe)\n\tif !ok {\n\t\treturn NewSet()\n\t}\n\treturn subset\n}\n\n// Leaves returns a set containing only the leaf paths\n// of a set.\nfunc (s *Set) Leaves() *Set {\n\tleaves := PathElementSet{}\n\tim := 0\n\tic := 0\n\n\t// any members that are not also children are leaves\nouter:\n\tfor im < len(s.Members.members) {\n\t\tmember := s.Members.members[im]\n\n\t\tfor ic < len(s.Children.members) {\n\t\t\td := member.Compare(s.Children.members[ic].pathElement)\n\t\t\tif d == 0 {\n\t\t\t\tic++\n\t\t\t\tim++\n\t\t\t\tcontinue outer\n\t\t\t} else if d < 0 {\n\t\t\t\tbreak\n\t\t\t} else /* if d > 0 */ {\n\t\t\t\tic++\n\t\t\t}\n\t\t}\n\t\tleaves.members = append(leaves.members, member)\n\t\tim++\n\t}\n\n\treturn &Set{\n\t\tMembers:  leaves,\n\t\tChildren: *s.Children.Leaves(),\n\t}\n}\n\n// setNode is a pair of PathElement / Set, for the purpose of expressing\n// nested set membership.\ntype setNode struct {\n\tpathElement PathElement\n\tset         *Set\n}\n\n// SetNodeMap is a map of PathElement to subset.\ntype SetNodeMap struct {\n\tmembers sortedSetNode\n}\n\ntype sortedSetNode []setNode\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (s sortedSetNode) Len() int           { return len(s) }\nfunc (s sortedSetNode) Less(i, j int) bool { return s[i].pathElement.Less(s[j].pathElement) }\nfunc (s sortedSetNode) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// Descend adds pe to the set if necessary, returning the associated subset.\nfunc (s *SetNodeMap) Descend(pe PathElement) *Set {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].pathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, setNode{pathElement: pe, set: &Set{}})\n\t\treturn s.members[loc].set\n\t}\n\tif s.members[loc].pathElement.Equals(pe) {\n\t\treturn s.members[loc].set\n\t}\n\ts.members = append(s.members, setNode{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = setNode{pathElement: pe, set: &Set{}}\n\treturn s.members[loc].set\n}\n\n// Size returns the sum of the number of members of all subsets.\nfunc (s *SetNodeMap) Size() int {\n\tcount := 0\n\tfor _, v := range s.members {\n\t\tcount += v.set.Size()\n\t}\n\treturn count\n}\n\n// Empty returns false if there's at least one member in some child set.\nfunc (s *SetNodeMap) Empty() bool {\n\tfor _, n := range s.members {\n\t\tif !n.set.Empty() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Get returns (the associated set, true) or (nil, false) if there is none.\nfunc (s *SetNodeMap) Get(pe PathElement) (*Set, bool) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].pathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn nil, false\n\t}\n\tif s.members[loc].pathElement.Equals(pe) {\n\t\treturn s.members[loc].set, true\n\t}\n\treturn nil, false\n}\n\n// Equals returns true if s and s2 have the same structure (same nested\n// child sets).\nfunc (s *SetNodeMap) Equals(s2 *SetNodeMap) bool {\n\tif len(s.members) != len(s2.members) {\n\t\treturn false\n\t}\n\tfor i := range s.members {\n\t\tif !s.members[i].pathElement.Equals(s2.members[i].pathElement) {\n\t\t\treturn false\n\t\t}\n\t\tif !s.members[i].set.Equals(s2.members[i].set) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Union returns a SetNodeMap with members that appear in either s or s2.\nfunc (s *SetNodeMap) Union(s2 *SetNodeMap) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].pathElement.Less(s2.members[j].pathElement) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set.Union(s2.members[j].set)})\n\t\t\t\ti++\n\t\t\t} else {\n\t\t\t\tout.members = append(out.members, s2.members[j])\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\tif j < len(s2.members) {\n\t\tout.members = append(out.members, s2.members[j:]...)\n\t}\n\treturn out\n}\n\n// Intersection returns a SetNodeMap with members that appear in both s and s2.\nfunc (s *SetNodeMap) Intersection(s2 *SetNodeMap) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].pathElement.Less(s2.members[j].pathElement) {\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tres := s.members[i].set.Intersection(s2.members[j].set)\n\t\t\t\tif !res.Empty() {\n\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: res})\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\treturn out\n}\n\n// Difference returns a SetNodeMap with members that appear in s but not in s2.\nfunc (s *SetNodeMap) Difference(s2 *Set) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.Children.members) {\n\t\tif s.members[i].pathElement.Less(s2.Children.members[j].pathElement) {\n\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set})\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.Children.members[j].pathElement.Less(s.members[i].pathElement) {\n\n\t\t\t\tdiff := s.members[i].set.Difference(s2.Children.members[j].set)\n\t\t\t\t// We aren't permitted to add nodes with no elements.\n\t\t\t\tif !diff.Empty() {\n\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: diff})\n\t\t\t\t}\n\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\treturn out\n}\n\n// RecursiveDifference returns a SetNodeMap with members that appear in s but not in s2.\n//\n// Compared to a regular difference,\n// this removes every field **and its children** from s that is contained in s2.\n//\n// For example, with s containing `a.b.c` and s2 containing `a.b`,\n// a RecursiveDifference will result in `a`, as the entire node `a.b` gets removed.\nfunc (s *SetNodeMap) RecursiveDifference(s2 *Set) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.Children.members) {\n\t\tif s.members[i].pathElement.Less(s2.Children.members[j].pathElement) {\n\t\t\tif !s2.Members.Has(s.members[i].pathElement) {\n\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set})\n\t\t\t}\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.Children.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tif !s2.Members.Has(s.members[i].pathElement) {\n\t\t\t\t\tdiff := s.members[i].set.RecursiveDifference(s2.Children.members[j].set)\n\t\t\t\t\tif !diff.Empty() {\n\t\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: diff})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tfor _, c := range s.members[i:] {\n\t\t\tif !s2.Members.Has(c.pathElement) {\n\t\t\t\tout.members = append(out.members, c)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out\n}\n\n// EnsureNamedFieldsAreMembers returns a set that contains all the named fields along with the leaves.\nfunc (s *SetNodeMap) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *SetNodeMap {\n\tout := make(sortedSetNode, 0, s.Size())\n\tatom, _ := sc.Resolve(tr)\n\tfor _, member := range s.members {\n\t\ttr := schema.TypeRef{}\n\t\tif member.pathElement.FieldName != nil && atom.Map != nil {\n\t\t\ttr = atom.Map.ElementType\n\t\t\tif sf, ok := atom.Map.FindField(*member.pathElement.FieldName); ok {\n\t\t\t\ttr = sf.Type\n\t\t\t}\n\t\t} else if member.pathElement.Key != nil && atom.List != nil {\n\t\t\ttr = atom.List.ElementType\n\t\t}\n\t\tout = append(out, setNode{\n\t\t\tpathElement: member.pathElement,\n\t\t\tset:         member.set.EnsureNamedFieldsAreMembers(sc, tr),\n\t\t})\n\t}\n\n\treturn &SetNodeMap{\n\t\tmembers: out,\n\t}\n}\n\n// Iterate calls f for each PathElement in the set.\nfunc (s *SetNodeMap) Iterate(f func(PathElement)) {\n\tfor _, n := range s.members {\n\t\tf(n.pathElement)\n\t}\n}\n\nfunc (s *SetNodeMap) iteratePrefix(prefix Path, f func(Path)) {\n\tfor _, n := range s.members {\n\t\tpe := n.pathElement\n\t\tn.set.iteratePrefix(append(prefix, pe), f)\n\t}\n}\n\n// Leaves returns a SetNodeMap containing\n// only setNodes with leaf PathElements.\nfunc (s *SetNodeMap) Leaves() *SetNodeMap {\n\tout := &SetNodeMap{}\n\tout.members = make(sortedSetNode, len(s.members))\n\tfor i, n := range s.members {\n\t\tout.members[i] = setNode{\n\t\t\tpathElement: n.pathElement,\n\t\t\tset:         n.set.Leaves(),\n\t\t}\n\t}\n\treturn out\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/merge/conflict.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage merge\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// Conflict is a conflict on a specific field with the current manager of\n// that field. It does implement the error interface so that it can be\n// used as an error.\ntype Conflict struct {\n\tManager string\n\tPath    fieldpath.Path\n}\n\n// Conflict is an error.\nvar _ error = Conflict{}\n\n// Error formats the conflict as an error.\nfunc (c Conflict) Error() string {\n\treturn fmt.Sprintf(\"conflict with %q: %v\", c.Manager, c.Path)\n}\n\n// Equals returns true if c == c2\nfunc (c Conflict) Equals(c2 Conflict) bool {\n\tif c.Manager != c2.Manager {\n\t\treturn false\n\t}\n\treturn c.Path.Equals(c2.Path)\n}\n\n// Conflicts accumulates multiple conflicts and aggregates them by managers.\ntype Conflicts []Conflict\n\nvar _ error = Conflicts{}\n\n// Error prints the list of conflicts, grouped by sorted managers.\nfunc (conflicts Conflicts) Error() string {\n\tif len(conflicts) == 1 {\n\t\treturn conflicts[0].Error()\n\t}\n\n\tm := map[string][]fieldpath.Path{}\n\tfor _, conflict := range conflicts {\n\t\tm[conflict.Manager] = append(m[conflict.Manager], conflict.Path)\n\t}\n\n\tmanagers := []string{}\n\tfor manager := range m {\n\t\tmanagers = append(managers, manager)\n\t}\n\n\t// Print conflicts by sorted managers.\n\tsort.Strings(managers)\n\n\tmessages := []string{}\n\tfor _, manager := range managers {\n\t\tmessages = append(messages, fmt.Sprintf(\"conflicts with %q:\", manager))\n\t\tfor _, path := range m[manager] {\n\t\t\tmessages = append(messages, fmt.Sprintf(\"- %v\", path))\n\t\t}\n\t}\n\treturn strings.Join(messages, \"\\n\")\n}\n\n// Equals returns true if the lists of conflicts are the same.\nfunc (c Conflicts) Equals(c2 Conflicts) bool {\n\tif len(c) != len(c2) {\n\t\treturn false\n\t}\n\tfor i := range c {\n\t\tif !c[i].Equals(c2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ToSet aggregates conflicts for all managers into a single Set.\nfunc (c Conflicts) ToSet() *fieldpath.Set {\n\tset := fieldpath.NewSet()\n\tfor _, conflict := range []Conflict(c) {\n\t\tset.Insert(conflict.Path)\n\t}\n\treturn set\n}\n\n// ConflictsFromManagers creates a list of conflicts given Managers sets.\nfunc ConflictsFromManagers(sets fieldpath.ManagedFields) Conflicts {\n\tconflicts := []Conflict{}\n\n\tfor manager, set := range sets {\n\t\tset.Set().Iterate(func(p fieldpath.Path) {\n\t\t\tconflicts = append(conflicts, Conflict{\n\t\t\t\tManager: manager,\n\t\t\t\tPath:    p,\n\t\t\t})\n\t\t})\n\t}\n\n\treturn conflicts\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage merge\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// Converter is an interface to the conversion logic. The converter\n// needs to be able to convert objects from one version to another.\ntype Converter interface {\n\tConvert(object *typed.TypedValue, version fieldpath.APIVersion) (*typed.TypedValue, error)\n\tIsMissingVersionError(error) bool\n}\n\n// Updater is the object used to compute updated FieldSets and also\n// merge the object on Apply.\ntype Updater struct {\n\tConverter     Converter\n\tIgnoredFields map[fieldpath.APIVersion]*fieldpath.Set\n\n\tenableUnions bool\n}\n\n// EnableUnionFeature turns on union handling. It is disabled by default until the\n// feature is complete.\nfunc (s *Updater) EnableUnionFeature() {\n\ts.enableUnions = true\n}\n\nfunc (s *Updater) update(oldObject, newObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, workflow string, force bool) (fieldpath.ManagedFields, *typed.Comparison, error) {\n\tconflicts := fieldpath.ManagedFields{}\n\tremoved := fieldpath.ManagedFields{}\n\tcompare, err := oldObject.Compare(newObject)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to compare objects: %v\", err)\n\t}\n\n\tversions := map[fieldpath.APIVersion]*typed.Comparison{\n\t\tversion: compare.ExcludeFields(s.IgnoredFields[version]),\n\t}\n\n\tfor manager, managerSet := range managers {\n\t\tif manager == workflow {\n\t\t\tcontinue\n\t\t}\n\t\tcompare, ok := versions[managerSet.APIVersion()]\n\t\tif !ok {\n\t\t\tvar err error\n\t\t\tversionedOldObject, err := s.Converter.Convert(oldObject, managerSet.APIVersion())\n\t\t\tif err != nil {\n\t\t\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\t\t\tdelete(managers, manager)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to convert old object: %v\", err)\n\t\t\t}\n\t\t\tversionedNewObject, err := s.Converter.Convert(newObject, managerSet.APIVersion())\n\t\t\tif err != nil {\n\t\t\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\t\t\tdelete(managers, manager)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object: %v\", err)\n\t\t\t}\n\t\t\tcompare, err = versionedOldObject.Compare(versionedNewObject)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to compare objects: %v\", err)\n\t\t\t}\n\t\t\tversions[managerSet.APIVersion()] = compare.ExcludeFields(s.IgnoredFields[managerSet.APIVersion()])\n\t\t}\n\n\t\tconflictSet := managerSet.Set().Intersection(compare.Modified.Union(compare.Added))\n\t\tif !conflictSet.Empty() {\n\t\t\tconflicts[manager] = fieldpath.NewVersionedSet(conflictSet, managerSet.APIVersion(), false)\n\t\t}\n\n\t\tif !compare.Removed.Empty() {\n\t\t\tremoved[manager] = fieldpath.NewVersionedSet(compare.Removed, managerSet.APIVersion(), false)\n\t\t}\n\t}\n\n\tif !force && len(conflicts) != 0 {\n\t\treturn nil, nil, ConflictsFromManagers(conflicts)\n\t}\n\n\tfor manager, conflictSet := range conflicts {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(managers[manager].Set().Difference(conflictSet.Set()), managers[manager].APIVersion(), managers[manager].Applied())\n\t}\n\n\tfor manager, removedSet := range removed {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(managers[manager].Set().Difference(removedSet.Set()), managers[manager].APIVersion(), managers[manager].Applied())\n\t}\n\n\tfor manager := range managers {\n\t\tif managers[manager].Set().Empty() {\n\t\t\tdelete(managers, manager)\n\t\t}\n\t}\n\n\treturn managers, compare, nil\n}\n\n// Update is the method you should call once you've merged your final\n// object on CREATE/UPDATE/PATCH verbs. newObject must be the object\n// that you intend to persist (after applying the patch if this is for a\n// PATCH call), and liveObject must be the original object (empty if\n// this is a CREATE call).\nfunc (s *Updater) Update(liveObject, newObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, manager string) (*typed.TypedValue, fieldpath.ManagedFields, error) {\n\tvar err error\n\tmanagers, err = s.reconcileManagedFieldsWithSchemaChanges(liveObject, managers)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif s.enableUnions {\n\t\tnewObject, err = liveObject.NormalizeUnions(newObject)\n\t\tif err != nil {\n\t\t\treturn nil, fieldpath.ManagedFields{}, err\n\t\t}\n\t}\n\tmanagers, compare, err := s.update(liveObject, newObject, version, managers, manager, true)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif _, ok := managers[manager]; !ok {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(fieldpath.NewSet(), version, false)\n\t}\n\n\tignored := s.IgnoredFields[version]\n\tif ignored == nil {\n\t\tignored = fieldpath.NewSet()\n\t}\n\tmanagers[manager] = fieldpath.NewVersionedSet(\n\t\tmanagers[manager].Set().Union(compare.Modified).Union(compare.Added).Difference(compare.Removed).RecursiveDifference(ignored),\n\t\tversion,\n\t\tfalse,\n\t)\n\tif managers[manager].Set().Empty() {\n\t\tdelete(managers, manager)\n\t}\n\treturn newObject, managers, nil\n}\n\n// Apply should be called when Apply is run, given the current object as\n// well as the configuration that is applied. This will merge the object\n// and return it. If the object hasn't changed, nil is returned (the\n// managers can still have changed though).\nfunc (s *Updater) Apply(liveObject, configObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, manager string, force bool) (*typed.TypedValue, fieldpath.ManagedFields, error) {\n\tvar err error\n\tmanagers, err = s.reconcileManagedFieldsWithSchemaChanges(liveObject, managers)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif s.enableUnions {\n\t\tconfigObject, err = configObject.NormalizeUnionsApply(configObject)\n\t\tif err != nil {\n\t\t\treturn nil, fieldpath.ManagedFields{}, err\n\t\t}\n\t}\n\tnewObject, err := liveObject.Merge(configObject)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to merge config: %v\", err)\n\t}\n\tif s.enableUnions {\n\t\tnewObject, err = configObject.NormalizeUnionsApply(newObject)\n\t\tif err != nil {\n\t\t\treturn nil, fieldpath.ManagedFields{}, err\n\t\t}\n\t}\n\tlastSet := managers[manager]\n\tset, err := configObject.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to get field set: %v\", err)\n\t}\n\n\tignored := s.IgnoredFields[version]\n\tif ignored != nil {\n\t\tset = set.RecursiveDifference(ignored)\n\t\t// TODO: is this correct. If we don't remove from lastSet pruning might remove the fields?\n\t\tif lastSet != nil {\n\t\t\tlastSet.Set().RecursiveDifference(ignored)\n\t\t}\n\t}\n\tmanagers[manager] = fieldpath.NewVersionedSet(set, version, true)\n\tnewObject, err = s.prune(newObject, managers, manager, lastSet)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to prune fields: %v\", err)\n\t}\n\tmanagers, compare, err := s.update(liveObject, newObject, version, managers, manager, force)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif compare.IsSame() {\n\t\tnewObject = nil\n\t}\n\treturn newObject, managers, nil\n}\n\n// prune will remove a field, list or map item, iff:\n// * applyingManager applied it last time\n// * applyingManager didn't apply it this time\n// * no other applier claims to manage it\nfunc (s *Updater) prune(merged *typed.TypedValue, managers fieldpath.ManagedFields, applyingManager string, lastSet fieldpath.VersionedSet) (*typed.TypedValue, error) {\n\tif lastSet == nil || lastSet.Set().Empty() {\n\t\treturn merged, nil\n\t}\n\tconvertedMerged, err := s.Converter.Convert(merged, lastSet.APIVersion())\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"failed to convert merged object to last applied version: %v\", err)\n\t}\n\n\tsc, tr := convertedMerged.Schema(), convertedMerged.TypeRef()\n\tpruned := convertedMerged.RemoveItems(lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr))\n\tpruned, err = s.addBackOwnedItems(convertedMerged, pruned, managers, applyingManager)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed add back owned items: %v\", err)\n\t}\n\tpruned, err = s.addBackDanglingItems(convertedMerged, pruned, lastSet)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed add back dangling items: %v\", err)\n\t}\n\treturn s.Converter.Convert(pruned, managers[applyingManager].APIVersion())\n}\n\n// addBackOwnedItems adds back any fields, list and map items that were removed by prune,\n// but other appliers or updaters (or the current applier's new config) claim to own.\nfunc (s *Updater) addBackOwnedItems(merged, pruned *typed.TypedValue, managedFields fieldpath.ManagedFields, applyingManager string) (*typed.TypedValue, error) {\n\tvar err error\n\tmanagedAtVersion := map[fieldpath.APIVersion]*fieldpath.Set{}\n\tfor _, managerSet := range managedFields {\n\t\tif _, ok := managedAtVersion[managerSet.APIVersion()]; !ok {\n\t\t\tmanagedAtVersion[managerSet.APIVersion()] = fieldpath.NewSet()\n\t\t}\n\t\tmanagedAtVersion[managerSet.APIVersion()] = managedAtVersion[managerSet.APIVersion()].Union(managerSet.Set())\n\t}\n\t// Add back owned items at pruned version first to avoid conversion failure\n\t// caused by pruned fields which are required for conversion.\n\tprunedVersion := fieldpath.APIVersion(*pruned.TypeRef().NamedType)\n\tif managed, ok := managedAtVersion[prunedVersion]; ok {\n\t\tmerged, pruned, err = s.addBackOwnedItemsForVersion(merged, pruned, prunedVersion, managed)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdelete(managedAtVersion, prunedVersion)\n\t}\n\tfor version, managed := range managedAtVersion {\n\t\tmerged, pruned, err = s.addBackOwnedItemsForVersion(merged, pruned, version, managed)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn pruned, nil\n}\n\n// addBackOwnedItemsForVersion adds back any fields, list and map items that were removed by prune with specific managed field path at a version.\n// It is an extracted sub-function from addBackOwnedItems for code reuse.\nfunc (s *Updater) addBackOwnedItemsForVersion(merged, pruned *typed.TypedValue, version fieldpath.APIVersion, managed *fieldpath.Set) (*typed.TypedValue, *typed.TypedValue, error) {\n\tvar err error\n\tmerged, err = s.Converter.Convert(merged, version)\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, pruned, nil\n\t\t}\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert merged object at version %v: %v\", version, err)\n\t}\n\tpruned, err = s.Converter.Convert(pruned, version)\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, pruned, nil\n\t\t}\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert pruned object at version %v: %v\", version, err)\n\t}\n\tmergedSet, err := merged.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create field set from merged object at version %v: %v\", version, err)\n\t}\n\tprunedSet, err := pruned.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create field set from pruned object at version %v: %v\", version, err)\n\t}\n\tsc, tr := merged.Schema(), merged.TypeRef()\n\tpruned = merged.RemoveItems(mergedSet.EnsureNamedFieldsAreMembers(sc, tr).Difference(prunedSet.EnsureNamedFieldsAreMembers(sc, tr).Union(managed.EnsureNamedFieldsAreMembers(sc, tr))))\n\treturn merged, pruned, nil\n}\n\n// addBackDanglingItems makes sure that the fields list and map items removed by prune were\n// previously owned by the currently applying manager. This will add back fields list and map items\n// that are unowned or that are owned by Updaters and shouldn't be removed.\nfunc (s *Updater) addBackDanglingItems(merged, pruned *typed.TypedValue, lastSet fieldpath.VersionedSet) (*typed.TypedValue, error) {\n\tconvertedPruned, err := s.Converter.Convert(pruned, lastSet.APIVersion())\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"failed to convert pruned object to last applied version: %v\", err)\n\t}\n\tprunedSet, err := convertedPruned.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field set from pruned object in last applied version: %v\", err)\n\t}\n\tmergedSet, err := merged.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field set from merged object in last applied version: %v\", err)\n\t}\n\tsc, tr := merged.Schema(), merged.TypeRef()\n\tprunedSet = prunedSet.EnsureNamedFieldsAreMembers(sc, tr)\n\tmergedSet = mergedSet.EnsureNamedFieldsAreMembers(sc, tr)\n\tlast := lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr)\n\treturn merged.RemoveItems(mergedSet.Difference(prunedSet).Intersection(last)), nil\n}\n\n// reconcileManagedFieldsWithSchemaChanges reconciles the managed fields with any changes to the\n// object's schema since the managed fields were written.\n//\n// Supports:\n// - changing types from atomic to granular\n// - changing types from granular to atomic\nfunc (s *Updater) reconcileManagedFieldsWithSchemaChanges(liveObject *typed.TypedValue, managers fieldpath.ManagedFields) (fieldpath.ManagedFields, error) {\n\tresult := fieldpath.ManagedFields{}\n\tfor manager, versionedSet := range managers {\n\t\ttv, err := s.Converter.Convert(liveObject, versionedSet.APIVersion())\n\t\tif s.Converter.IsMissingVersionError(err) { // okay to skip, obsolete versions will be deleted automatically anyway\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treconciled, err := typed.ReconcileFieldSetWithSchema(versionedSet.Set(), tv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif reconciled != nil {\n\t\t\tresult[manager] = fieldpath.NewVersionedSet(reconciled, versionedSet.APIVersion(), versionedSet.Applied())\n\t\t} else {\n\t\t\tresult[manager] = versionedSet\n\t\t}\n\t}\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package schema defines a targeted schema language which allows one to\n// represent all the schema information necessary to perform \"structured\"\n// merges and diffs.\n//\n// Due to the targeted nature of the data model, the schema language can fit in\n// just a few hundred lines of go code, making it much more understandable and\n// concise than e.g. OpenAPI.\n//\n// This schema was derived by observing the API objects used by Kubernetes, and\n// formalizing a model which allows certain operations (\"apply\") to be more\n// well defined. It is currently missing one feature: one-of (\"unions\").\npackage schema\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/elements.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport (\n\t\"sync\"\n)\n\n// Schema is a list of named types.\n//\n// Schema types are indexed in a map before the first search so this type\n// should be considered immutable.\ntype Schema struct {\n\tTypes []TypeDef `yaml:\"types,omitempty\"`\n\n\tonce sync.Once\n\tm    map[string]TypeDef\n\n\tlock sync.Mutex\n\t// Cached results of resolving type references to atoms. Only stores\n\t// type references which require fields of Atom to be overriden.\n\tresolvedTypes map[TypeRef]Atom\n}\n\n// A TypeSpecifier references a particular type in a schema.\ntype TypeSpecifier struct {\n\tType   TypeRef `yaml:\"type,omitempty\"`\n\tSchema Schema  `yaml:\"schema,omitempty\"`\n}\n\n// TypeDef represents a named type in a schema.\ntype TypeDef struct {\n\t// Top level types should be named. Every type must have a unique name.\n\tName string `yaml:\"name,omitempty\"`\n\n\tAtom `yaml:\"atom,omitempty,inline\"`\n}\n\n// TypeRef either refers to a named type or declares an inlined type.\ntype TypeRef struct {\n\t// Either the name or one member of Atom should be set.\n\tNamedType *string `yaml:\"namedType,omitempty\"`\n\tInlined   Atom    `yaml:\",inline,omitempty\"`\n\n\t// If this reference refers to a map-type or list-type, this field overrides\n\t// the `ElementRelationship` of the referred type when resolved.\n\t// If this field is nil, then it has no effect.\n\t// See `Map` and `List` for more information about `ElementRelationship`\n\tElementRelationship *ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n}\n\n// Atom represents the smallest possible pieces of the type system.\n// Each set field in the Atom represents a possible type for the object.\n// If none of the fields are set, any object will fail validation against the atom.\ntype Atom struct {\n\t*Scalar `yaml:\"scalar,omitempty\"`\n\t*List   `yaml:\"list,omitempty\"`\n\t*Map    `yaml:\"map,omitempty\"`\n}\n\n// Scalar (AKA \"primitive\") represents a type which has a single value which is\n// either numeric, string, or boolean.\n//\n// TODO: split numeric into float/int? Something even more fine-grained?\ntype Scalar string\n\nconst (\n\tNumeric = Scalar(\"numeric\")\n\tString  = Scalar(\"string\")\n\tBoolean = Scalar(\"boolean\")\n)\n\n// ElementRelationship is an enum of the different possible relationships\n// between the elements of container types (maps, lists).\ntype ElementRelationship string\n\nconst (\n\t// Associative only applies to lists (see the documentation there).\n\tAssociative = ElementRelationship(\"associative\")\n\t// Atomic makes container types (lists, maps) behave\n\t// as scalars / leaf fields\n\tAtomic = ElementRelationship(\"atomic\")\n\t// Separable means the items of the container type have no particular\n\t// relationship (default behavior for maps).\n\tSeparable = ElementRelationship(\"separable\")\n)\n\n// Map is a key-value pair. Its default semantics are the same as an\n// associative list, but:\n//   - It is serialized differently:\n//     map:  {\"k\": {\"value\": \"v\"}}\n//     list: [{\"key\": \"k\", \"value\": \"v\"}]\n//   - Keys must be string typed.\n//   - Keys can't have multiple components.\n//\n// Optionally, maps may be atomic (for example, imagine representing an RGB\n// color value--it doesn't make sense to have different actors own the R and G\n// values).\n//\n// Maps may also represent a type which is composed of a number of different fields.\n// Each field has a name and a type.\n//\n// Fields are indexed in a map before the first search so this type\n// should be considered immutable.\ntype Map struct {\n\t// Each struct field appears exactly once in this list. The order in\n\t// this list defines the canonical field ordering.\n\tFields []StructField `yaml:\"fields,omitempty\"`\n\n\t// A Union is a grouping of fields with special rules. It may refer to\n\t// one or more fields in the above list. A given field from the above\n\t// list may be referenced in exactly 0 or 1 places in the below list.\n\t// One can have multiple unions in the same struct, but the fields can't\n\t// overlap between unions.\n\tUnions []Union `yaml:\"unions,omitempty\"`\n\n\t// ElementType is the type of the structs's unknown fields.\n\tElementType TypeRef `yaml:\"elementType,omitempty\"`\n\n\t// ElementRelationship states the relationship between the map's items.\n\t// * `separable` (or unset) implies that each element is 100% independent.\n\t// * `atomic` implies that all elements depend on each other, and this\n\t//   is effectively a scalar / leaf field; it doesn't make sense for\n\t//   separate actors to set the elements. Example: an RGB color struct;\n\t//   it would never make sense to \"own\" only one component of the\n\t//   color.\n\t// The default behavior for maps is `separable`; it's permitted to\n\t// leave this unset to get the default behavior.\n\tElementRelationship ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n\n\tonce sync.Once\n\tm    map[string]StructField\n}\n\n// FindField is a convenience function that returns the referenced StructField,\n// if it exists, or (nil, false) if it doesn't.\nfunc (m *Map) FindField(name string) (StructField, bool) {\n\tm.once.Do(func() {\n\t\tm.m = make(map[string]StructField, len(m.Fields))\n\t\tfor _, field := range m.Fields {\n\t\t\tm.m[field.Name] = field\n\t\t}\n\t})\n\tsf, ok := m.m[name]\n\treturn sf, ok\n}\n\n// CopyInto this instance of Map into the other\n// If other is nil this method does nothing.\n// If other is already initialized, overwrites it with this instance\n// Warning: Not thread safe\nfunc (m *Map) CopyInto(dst *Map) {\n\tif dst == nil {\n\t\treturn\n\t}\n\n\t// Map type is considered immutable so sharing references\n\tdst.Fields = m.Fields\n\tdst.ElementType = m.ElementType\n\tdst.Unions = m.Unions\n\tdst.ElementRelationship = m.ElementRelationship\n\n\tif m.m != nil {\n\t\t// If cache is non-nil then the once token had been consumed.\n\t\t// Must reset token and use it again to ensure same semantics.\n\t\tdst.once = sync.Once{}\n\t\tdst.once.Do(func() {\n\t\t\tdst.m = m.m\n\t\t})\n\t}\n}\n\n// UnionFields are mapping between the fields that are part of the union and\n// their discriminated value. The discriminated value has to be set, and\n// should not conflict with other discriminated value in the list.\ntype UnionField struct {\n\t// FieldName is the name of the field that is part of the union. This\n\t// is the serialized form of the field.\n\tFieldName string `yaml:\"fieldName\"`\n\t// Discriminatorvalue is the value of the discriminator to\n\t// select that field. If the union doesn't have a discriminator,\n\t// this field is ignored.\n\tDiscriminatorValue string `yaml:\"discriminatorValue\"`\n}\n\n// Union, or oneof, means that only one of multiple fields of a structure can be\n// set at a time. Setting the discriminator helps clearing oher fields:\n// - If discriminator changed to non-nil, and a new field has been added\n// that doesn't match, an error is returned,\n// - If discriminator hasn't changed and two fields or more are set, an\n// error is returned,\n// - If discriminator changed to non-nil, all other fields but the\n// discriminated one will be cleared,\n// - Otherwise, If only one field is left, update discriminator to that value.\ntype Union struct {\n\t// Discriminator, if present, is the name of the field that\n\t// discriminates fields in the union. The mapping between the value of\n\t// the discriminator and the field is done by using the Fields list\n\t// below.\n\tDiscriminator *string `yaml:\"discriminator,omitempty\"`\n\n\t// DeduceInvalidDiscriminator indicates if the discriminator\n\t// should be updated automatically based on the fields set. This\n\t// typically defaults to false since we don't want to deduce by\n\t// default (the behavior exists to maintain compatibility on\n\t// existing types and shouldn't be used for new types).\n\tDeduceInvalidDiscriminator bool `yaml:\"deduceInvalidDiscriminator,omitempty\"`\n\n\t// This is the list of fields that belong to this union. All the\n\t// fields present in here have to be part of the parent\n\t// structure. Discriminator (if oneOf has one), is NOT included in\n\t// this list. The value for field is how we map the name of the field\n\t// to actual value for discriminator.\n\tFields []UnionField `yaml:\"fields,omitempty\"`\n}\n\n// StructField pairs a field name with a field type.\ntype StructField struct {\n\t// Name is the field name.\n\tName string `yaml:\"name,omitempty\"`\n\t// Type is the field type.\n\tType TypeRef `yaml:\"type,omitempty\"`\n\t// Default value for the field, nil if not present.\n\tDefault interface{} `yaml:\"default,omitempty\"`\n}\n\n// List represents a type which contains a zero or more elements, all of the\n// same subtype. Lists may be either associative: each element is more or less\n// independent and could be managed by separate entities in the system; or\n// atomic, where the elements are heavily dependent on each other: it is not\n// sensible to change one element without considering the ramifications on all\n// the other elements.\ntype List struct {\n\t// ElementType is the type of the list's elements.\n\tElementType TypeRef `yaml:\"elementType,omitempty\"`\n\n\t// ElementRelationship states the relationship between the list's elements\n\t// and must have one of these values:\n\t// * `atomic`: the list is treated as a single entity, like a scalar.\n\t// * `associative`:\n\t//   - If the list element is a scalar, the list is treated as a set.\n\t//   - If the list element is a map, the list is treated as a map.\n\t// There is no default for this value for lists; all schemas must\n\t// explicitly state the element relationship for all lists.\n\tElementRelationship ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n\n\t// Iff ElementRelationship is `associative`, and the element type is\n\t// map, then Keys must have non-zero length, and it lists the fields\n\t// of the element's map type which are to be used as the keys of the\n\t// list.\n\t//\n\t// TODO: change this to \"non-atomic struct\" above and make the code reflect this.\n\t//\n\t// Each key must refer to a single field name (no nesting, not JSONPath).\n\tKeys []string `yaml:\"keys,omitempty\"`\n}\n\n// FindNamedType is a convenience function that returns the referenced TypeDef,\n// if it exists, or (nil, false) if it doesn't.\nfunc (s *Schema) FindNamedType(name string) (TypeDef, bool) {\n\ts.once.Do(func() {\n\t\ts.m = make(map[string]TypeDef, len(s.Types))\n\t\tfor _, t := range s.Types {\n\t\t\ts.m[t.Name] = t\n\t\t}\n\t})\n\tt, ok := s.m[name]\n\treturn t, ok\n}\n\nfunc (s *Schema) resolveNoOverrides(tr TypeRef) (Atom, bool) {\n\tresult := Atom{}\n\n\tif tr.NamedType != nil {\n\t\tt, ok := s.FindNamedType(*tr.NamedType)\n\t\tif !ok {\n\t\t\treturn Atom{}, false\n\t\t}\n\n\t\tresult = t.Atom\n\t} else {\n\t\tresult = tr.Inlined\n\t}\n\n\treturn result, true\n}\n\n// Resolve is a convenience function which returns the atom referenced, whether\n// it is inline or named. Returns (Atom{}, false) if the type can't be resolved.\n//\n// This allows callers to not care about the difference between a (possibly\n// inlined) reference and a definition.\nfunc (s *Schema) Resolve(tr TypeRef) (Atom, bool) {\n\t// If this is a plain reference with no overrides, just return the type\n\tif tr.ElementRelationship == nil {\n\t\treturn s.resolveNoOverrides(tr)\n\t}\n\n\ts.lock.Lock()\n\tdefer s.lock.Unlock()\n\n\tif s.resolvedTypes == nil {\n\t\ts.resolvedTypes = make(map[TypeRef]Atom)\n\t}\n\n\tvar result Atom\n\tvar exists bool\n\n\t// Return cached result if available\n\t// If not, calculate result and cache it\n\tif result, exists = s.resolvedTypes[tr]; !exists {\n\t\tif result, exists = s.resolveNoOverrides(tr); exists {\n\t\t\t// Allow field-level electives to override the referred type's modifiers\n\t\t\tswitch {\n\t\t\tcase result.Map != nil:\n\t\t\t\tmapCopy := Map{}\n\t\t\t\tresult.Map.CopyInto(&mapCopy)\n\t\t\t\tmapCopy.ElementRelationship = *tr.ElementRelationship\n\t\t\t\tresult.Map = &mapCopy\n\t\t\tcase result.List != nil:\n\t\t\t\tlistCopy := *result.List\n\t\t\t\tlistCopy.ElementRelationship = *tr.ElementRelationship\n\t\t\t\tresult.List = &listCopy\n\t\t\tcase result.Scalar != nil:\n\t\t\t\treturn Atom{}, false\n\t\t\tdefault:\n\t\t\t\treturn Atom{}, false\n\t\t\t}\n\t\t} else {\n\t\t\treturn Atom{}, false\n\t\t}\n\n\t\t// Save result. If it is nil, that is also recorded as not existing.\n\t\ts.resolvedTypes[tr] = result\n\t}\n\n\treturn result, true\n}\n\n// Clones this instance of Schema into the other\n// If other is nil this method does nothing.\n// If other is already initialized, overwrites it with this instance\n// Warning: Not thread safe\nfunc (s *Schema) CopyInto(dst *Schema) {\n\tif dst == nil {\n\t\treturn\n\t}\n\n\t// Schema type is considered immutable so sharing references\n\tdst.Types = s.Types\n\n\tif s.m != nil {\n\t\t// If cache is non-nil then the once token had been consumed.\n\t\t// Must reset token and use it again to ensure same semantics.\n\t\tdst.once = sync.Once{}\n\t\tdst.once.Do(func() {\n\t\t\tdst.m = s.m\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/equals.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport \"reflect\"\n\n// Equals returns true iff the two Schemas are equal.\nfunc (a *Schema) Equals(b *Schema) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\n\tif len(a.Types) != len(b.Types) {\n\t\treturn false\n\t}\n\tfor i := range a.Types {\n\t\tif !a.Types[i].Equals(&b.Types[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two TypeRefs are equal.\n//\n// Note that two typerefs that have an equivalent type but where one is\n// inlined and the other is named, are not considered equal.\nfunc (a *TypeRef) Equals(b *TypeRef) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.NamedType == nil) != (b.NamedType == nil) {\n\t\treturn false\n\t}\n\tif a.NamedType != nil {\n\t\tif *a.NamedType != *b.NamedType {\n\t\t\treturn false\n\t\t}\n\t\t//return true\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\treturn a.Inlined.Equals(&b.Inlined)\n}\n\n// Equals returns true iff the two TypeDefs are equal.\nfunc (a *TypeDef) Equals(b *TypeDef) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.Name != b.Name {\n\t\treturn false\n\t}\n\treturn a.Atom.Equals(&b.Atom)\n}\n\n// Equals returns true iff the two Atoms are equal.\nfunc (a *Atom) Equals(b *Atom) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.Scalar == nil) != (b.Scalar == nil) {\n\t\treturn false\n\t}\n\tif (a.List == nil) != (b.List == nil) {\n\t\treturn false\n\t}\n\tif (a.Map == nil) != (b.Map == nil) {\n\t\treturn false\n\t}\n\tswitch {\n\tcase a.Scalar != nil:\n\t\treturn *a.Scalar == *b.Scalar\n\tcase a.List != nil:\n\t\treturn a.List.Equals(b.List)\n\tcase a.Map != nil:\n\t\treturn a.Map.Equals(b.Map)\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two Maps are equal.\nfunc (a *Map) Equals(b *Map) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif !a.ElementType.Equals(&b.ElementType) {\n\t\treturn false\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\tif len(a.Fields) != len(b.Fields) {\n\t\treturn false\n\t}\n\tfor i := range a.Fields {\n\t\tif !a.Fields[i].Equals(&b.Fields[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(a.Unions) != len(b.Unions) {\n\t\treturn false\n\t}\n\tfor i := range a.Unions {\n\t\tif !a.Unions[i].Equals(&b.Unions[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two Unions are equal.\nfunc (a *Union) Equals(b *Union) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.Discriminator == nil) != (b.Discriminator == nil) {\n\t\treturn false\n\t}\n\tif a.Discriminator != nil {\n\t\tif *a.Discriminator != *b.Discriminator {\n\t\t\treturn false\n\t\t}\n\t}\n\tif a.DeduceInvalidDiscriminator != b.DeduceInvalidDiscriminator {\n\t\treturn false\n\t}\n\tif len(a.Fields) != len(b.Fields) {\n\t\treturn false\n\t}\n\tfor i := range a.Fields {\n\t\tif !a.Fields[i].Equals(&b.Fields[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two UnionFields are equal.\nfunc (a *UnionField) Equals(b *UnionField) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.FieldName != b.FieldName {\n\t\treturn false\n\t}\n\tif a.DiscriminatorValue != b.DiscriminatorValue {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two StructFields are equal.\nfunc (a *StructField) Equals(b *StructField) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.Name != b.Name {\n\t\treturn false\n\t}\n\tif !reflect.DeepEqual(a.Default, b.Default) {\n\t\treturn false\n\t}\n\treturn a.Type.Equals(&b.Type)\n}\n\n// Equals returns true iff the two Lists are equal.\nfunc (a *List) Equals(b *List) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif !a.ElementType.Equals(&b.ElementType) {\n\t\treturn false\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\tif len(a.Keys) != len(b.Keys) {\n\t\treturn false\n\t}\n\tfor i := range a.Keys {\n\t\tif a.Keys[i] != b.Keys[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/schemaschema.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\n// SchemaSchemaYAML is a schema against which you can validate other schemas.\n// It will validate itself. It can be unmarshalled into a Schema type.\nvar SchemaSchemaYAML = `types:\n- name: schema\n  map:\n    fields:\n      - name: types\n        type:\n          list:\n            elementRelationship: associative\n            elementType:\n              namedType: typeDef\n            keys:\n            - name\n- name: typeDef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: scalar\n      type:\n        scalar: string\n    - name: map\n      type:\n        namedType: map\n    - name: list\n      type:\n        namedType: list\n    - name: untyped\n      type:\n        namedType: untyped\n- name: typeRef\n  map:\n    fields:\n    - name: namedType\n      type:\n        scalar: string\n    - name: scalar\n      type:\n        scalar: string\n    - name: map\n      type:\n        namedType: map\n    - name: list\n      type:\n        namedType: list\n    - name: untyped\n      type:\n        namedType: untyped\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: scalar\n  scalar: string\n- name: map\n  map:\n    fields:\n    - name: fields\n      type:\n        list:\n          elementType:\n            namedType: structField\n          elementRelationship: associative\n          keys: [ \"name\" ]\n    - name: unions\n      type:\n        list:\n          elementType:\n            namedType: union\n          elementRelationship: atomic\n    - name: elementType\n      type:\n        namedType: typeRef\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: unionField\n  map:\n    fields:\n    - name: fieldName\n      type:\n        scalar: string\n    - name: discriminatorValue\n      type:\n        scalar: string\n- name: union\n  map:\n    fields:\n    - name: discriminator\n      type:\n        scalar: string\n    - name: deduceInvalidDiscriminator\n      type:\n        scalar: bool\n    - name: fields\n      type:\n        list:\n          elementRelationship: associative\n          elementType:\n            namedType: unionField\n          keys:\n          - fieldName\n- name: structField\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: type\n      type:\n        namedType: typeRef\n    - name: default\n      type:\n        namedType: __untyped_atomic_\n- name: list\n  map:\n    fields:\n    - name: elementType\n      type:\n        namedType: typeRef\n    - name: elementRelationship\n      type:\n        scalar: string\n    - name: keys\n      type:\n        list:\n          elementType:\n            scalar: string\n- name: untyped\n  map:\n    fields:\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n`\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package typed contains logic for operating on values with given schemas.\npackage typed\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/helpers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// ValidationError reports an error about a particular field\ntype ValidationError struct {\n\tPath         string\n\tErrorMessage string\n}\n\n// Error returns a human readable error message.\nfunc (ve ValidationError) Error() string {\n\tif len(ve.Path) == 0 {\n\t\treturn ve.ErrorMessage\n\t}\n\treturn fmt.Sprintf(\"%s: %v\", ve.Path, ve.ErrorMessage)\n}\n\n// ValidationErrors accumulates multiple validation error messages.\ntype ValidationErrors []ValidationError\n\n// Error returns a human readable error message reporting each error in the\n// list.\nfunc (errs ValidationErrors) Error() string {\n\tif len(errs) == 1 {\n\t\treturn errs[0].Error()\n\t}\n\tmessages := []string{\"errors:\"}\n\tfor _, e := range errs {\n\t\tmessages = append(messages, \"  \"+e.Error())\n\t}\n\treturn strings.Join(messages, \"\\n\")\n}\n\n// Set the given path to all the validation errors.\nfunc (errs ValidationErrors) WithPath(p string) ValidationErrors {\n\tfor i := range errs {\n\t\terrs[i].Path = p\n\t}\n\treturn errs\n}\n\n// WithPrefix prefixes all errors path with the given pathelement. This\n// is useful when unwinding the stack on errors.\nfunc (errs ValidationErrors) WithPrefix(prefix string) ValidationErrors {\n\tfor i := range errs {\n\t\terrs[i].Path = prefix + errs[i].Path\n\t}\n\treturn errs\n}\n\n// WithLazyPrefix prefixes all errors path with the given pathelement.\n// This is useful when unwinding the stack on errors. Prefix is\n// computed lazily only if there is an error.\nfunc (errs ValidationErrors) WithLazyPrefix(fn func() string) ValidationErrors {\n\tif len(errs) == 0 {\n\t\treturn errs\n\t}\n\tprefix := \"\"\n\tif fn != nil {\n\t\tprefix = fn()\n\t}\n\tfor i := range errs {\n\t\terrs[i].Path = prefix + errs[i].Path\n\t}\n\treturn errs\n}\n\nfunc errorf(format string, args ...interface{}) ValidationErrors {\n\treturn ValidationErrors{{\n\t\tErrorMessage: fmt.Sprintf(format, args...),\n\t}}\n}\n\ntype atomHandler interface {\n\tdoScalar(*schema.Scalar) ValidationErrors\n\tdoList(*schema.List) ValidationErrors\n\tdoMap(*schema.Map) ValidationErrors\n}\n\nfunc resolveSchema(s *schema.Schema, tr schema.TypeRef, v value.Value, ah atomHandler) ValidationErrors {\n\ta, ok := s.Resolve(tr)\n\tif !ok {\n\t\ttypeName := \"inlined type\"\n\t\tif tr.NamedType != nil {\n\t\t\ttypeName = *tr.NamedType\n\t\t}\n\t\treturn errorf(\"schema error: no type found matching: %v\", typeName)\n\t}\n\n\ta = deduceAtom(a, v)\n\treturn handleAtom(a, tr, ah)\n}\n\n// deduceAtom determines which of the possible types in atom 'atom' applies to value 'val'.\n// If val is of a type allowed by atom, return a copy of atom with all other types set to nil.\n// if val is nil, or is not of a type allowed by atom, just return the original atom,\n// and validation will fail at a later stage. (with a more useful error)\nfunc deduceAtom(atom schema.Atom, val value.Value) schema.Atom {\n\tswitch {\n\tcase val == nil:\n\tcase val.IsFloat(), val.IsInt(), val.IsString(), val.IsBool():\n\t\tif atom.Scalar != nil {\n\t\t\treturn schema.Atom{Scalar: atom.Scalar}\n\t\t}\n\tcase val.IsList():\n\t\tif atom.List != nil {\n\t\t\treturn schema.Atom{List: atom.List}\n\t\t}\n\tcase val.IsMap():\n\t\tif atom.Map != nil {\n\t\t\treturn schema.Atom{Map: atom.Map}\n\t\t}\n\t}\n\treturn atom\n}\n\nfunc handleAtom(a schema.Atom, tr schema.TypeRef, ah atomHandler) ValidationErrors {\n\tswitch {\n\tcase a.Map != nil:\n\t\treturn ah.doMap(a.Map)\n\tcase a.Scalar != nil:\n\t\treturn ah.doScalar(a.Scalar)\n\tcase a.List != nil:\n\t\treturn ah.doList(a.List)\n\t}\n\n\tname := \"inlined\"\n\tif tr.NamedType != nil {\n\t\tname = \"named type: \" + *tr.NamedType\n\t}\n\n\treturn errorf(\"schema error: invalid atom: %v\", name)\n}\n\n// Returns the list, or an error. Reminder: nil is a valid list and might be returned.\nfunc listValue(a value.Allocator, val value.Value) (value.List, error) {\n\tif val.IsNull() {\n\t\t// Null is a valid list.\n\t\treturn nil, nil\n\t}\n\tif !val.IsList() {\n\t\treturn nil, fmt.Errorf(\"expected list, got %v\", val)\n\t}\n\treturn val.AsListUsing(a), nil\n}\n\n// Returns the map, or an error. Reminder: nil is a valid map and might be returned.\nfunc mapValue(a value.Allocator, val value.Value) (value.Map, error) {\n\tif val == nil {\n\t\treturn nil, fmt.Errorf(\"expected map, got nil\")\n\t}\n\tif val.IsNull() {\n\t\t// Null is a valid map.\n\t\treturn nil, nil\n\t}\n\tif !val.IsMap() {\n\t\treturn nil, fmt.Errorf(\"expected map, got %v\", val)\n\t}\n\treturn val.AsMapUsing(a), nil\n}\n\nfunc getAssociativeKeyDefault(s *schema.Schema, list *schema.List, fieldName string) (interface{}, error) {\n\tatom, ok := s.Resolve(list.ElementType)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid elementType for list\")\n\t}\n\tif atom.Map == nil {\n\t\treturn nil, errors.New(\"associative list may not have non-map types\")\n\t}\n\t// If the field is not found, we can assume there is no default.\n\tfield, _ := atom.Map.FindField(fieldName)\n\treturn field.Default, nil\n}\n\nfunc keyedAssociativeListItemToPathElement(a value.Allocator, s *schema.Schema, list *schema.List, index int, child value.Value) (fieldpath.PathElement, error) {\n\tpe := fieldpath.PathElement{}\n\tif child.IsNull() {\n\t\t// null entries are illegal.\n\t\treturn pe, errors.New(\"associative list with keys may not have a null element\")\n\t}\n\tif !child.IsMap() {\n\t\treturn pe, errors.New(\"associative list with keys may not have non-map elements\")\n\t}\n\tkeyMap := value.FieldList{}\n\tm := child.AsMapUsing(a)\n\tdefer a.Free(m)\n\tfor _, fieldName := range list.Keys {\n\t\tif val, ok := m.Get(fieldName); ok {\n\t\t\tkeyMap = append(keyMap, value.Field{Name: fieldName, Value: val})\n\t\t} else if def, err := getAssociativeKeyDefault(s, list, fieldName); err != nil {\n\t\t\treturn pe, fmt.Errorf(\"couldn't find default value for %v: %v\", fieldName, err)\n\t\t} else if def != nil {\n\t\t\tkeyMap = append(keyMap, value.Field{Name: fieldName, Value: value.NewValueInterface(def)})\n\t\t} else {\n\t\t\treturn pe, fmt.Errorf(\"associative list with keys has an element that omits key field %q (and doesn't have default value)\", fieldName)\n\t\t}\n\t}\n\tkeyMap.Sort()\n\tpe.Key = &keyMap\n\treturn pe, nil\n}\n\nfunc setItemToPathElement(list *schema.List, index int, child value.Value) (fieldpath.PathElement, error) {\n\tpe := fieldpath.PathElement{}\n\tswitch {\n\tcase child.IsMap():\n\t\t// TODO: atomic maps should be acceptable.\n\t\treturn pe, errors.New(\"associative list without keys has an element that's a map type\")\n\tcase child.IsList():\n\t\t// Should we support a set of lists? For the moment\n\t\t// let's say we don't.\n\t\t// TODO: atomic lists should be acceptable.\n\t\treturn pe, errors.New(\"not supported: associative list with lists as elements\")\n\tcase child.IsNull():\n\t\treturn pe, errors.New(\"associative list without keys has an element that's an explicit null\")\n\tdefault:\n\t\t// We are a set type.\n\t\tpe.Value = &child\n\t\treturn pe, nil\n\t}\n}\n\nfunc listItemToPathElement(a value.Allocator, s *schema.Schema, list *schema.List, index int, child value.Value) (fieldpath.PathElement, error) {\n\tif list.ElementRelationship == schema.Associative {\n\t\tif len(list.Keys) > 0 {\n\t\t\treturn keyedAssociativeListItemToPathElement(a, s, list, index, child)\n\t\t}\n\n\t\t// If there's no keys, then we must be a set of primitives.\n\t\treturn setItemToPathElement(list, index, child)\n\t}\n\n\t// Use the index as a key for atomic lists.\n\treturn fieldpath.PathElement{Index: &index}, nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/merge.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\ntype mergingWalker struct {\n\tlhs     value.Value\n\trhs     value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\t// Current path that we are merging\n\tpath fieldpath.Path\n\n\t// How to merge. Called after schema validation for all leaf fields.\n\trule mergeRule\n\n\t// If set, called after non-leaf items have been merged. (`out` is\n\t// probably already set.)\n\tpostItemHook mergeRule\n\n\t// output of the merge operation (nil if none)\n\tout *interface{}\n\n\t// internal housekeeping--don't set when constructing.\n\tinLeaf bool // Set to true if we're in a \"big leaf\"--atomic map/list\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*mergingWalker\n\n\tallocator value.Allocator\n}\n\n// merge rules examine w.lhs and w.rhs (up to one of which may be nil) and\n// optionally set w.out. If lhs and rhs are both set, they will be of\n// comparable type.\ntype mergeRule func(w *mergingWalker)\n\nvar (\n\truleKeepRHS = mergeRule(func(w *mergingWalker) {\n\t\tif w.rhs != nil {\n\t\t\tv := w.rhs.Unstructured()\n\t\t\tw.out = &v\n\t\t} else if w.lhs != nil {\n\t\t\tv := w.lhs.Unstructured()\n\t\t\tw.out = &v\n\t\t}\n\t})\n)\n\n// merge sets w.out.\nfunc (w *mergingWalker) merge(prefixFn func() string) (errs ValidationErrors) {\n\tif w.lhs == nil && w.rhs == nil {\n\t\t// check this condidition here instead of everywhere below.\n\t\treturn errorf(\"at least one of lhs and rhs must be provided\")\n\t}\n\ta, ok := w.schema.Resolve(w.typeRef)\n\tif !ok {\n\t\treturn errorf(\"schema error: no type found matching: %v\", *w.typeRef.NamedType)\n\t}\n\n\talhs := deduceAtom(a, w.lhs)\n\tarhs := deduceAtom(a, w.rhs)\n\n\t// deduceAtom does not fix the type for nil values\n\t// nil is a wildcard and will accept whatever form the other operand takes\n\tif w.rhs == nil {\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, w)...)\n\t} else if w.lhs == nil || alhs.Equals(&arhs) {\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t} else {\n\t\tw2 := *w\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, &w2)...)\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t}\n\n\tif !w.inLeaf && w.postItemHook != nil {\n\t\tw.postItemHook(w)\n\t}\n\treturn errs.WithLazyPrefix(prefixFn)\n}\n\n// doLeaf should be called on leaves before descending into children, if there\n// will be a descent. It modifies w.inLeaf.\nfunc (w *mergingWalker) doLeaf() {\n\tif w.inLeaf {\n\t\t// We're in a \"big leaf\", an atomic map or list. Ignore\n\t\t// subsequent leaves.\n\t\treturn\n\t}\n\tw.inLeaf = true\n\n\t// We don't recurse into leaf fields for merging.\n\tw.rule(w)\n}\n\nfunc (w *mergingWalker) doScalar(t *schema.Scalar) (errs ValidationErrors) {\n\terrs = append(errs, validateScalar(t, w.lhs, \"lhs: \")...)\n\terrs = append(errs, validateScalar(t, w.rhs, \"rhs: \")...)\n\tif len(errs) > 0 {\n\t\treturn errs\n\t}\n\n\t// All scalars are leaf fields.\n\tw.doLeaf()\n\n\treturn nil\n}\n\nfunc (w *mergingWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *mergingWalker {\n\tif w.spareWalkers == nil {\n\t\t// first descent.\n\t\tw.spareWalkers = &[]*mergingWalker{}\n\t}\n\tvar w2 *mergingWalker\n\tif n := len(*w.spareWalkers); n > 0 {\n\t\tw2, *w.spareWalkers = (*w.spareWalkers)[n-1], (*w.spareWalkers)[:n-1]\n\t} else {\n\t\tw2 = &mergingWalker{}\n\t}\n\t*w2 = *w\n\tw2.typeRef = tr\n\tw2.path = append(w2.path, pe)\n\tw2.lhs = nil\n\tw2.rhs = nil\n\tw2.out = nil\n\treturn w2\n}\n\nfunc (w *mergingWalker) finishDescent(w2 *mergingWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\tw.path = w2.path[:len(w2.path)-1]\n\t*w.spareWalkers = append(*w.spareWalkers, w2)\n}\n\nfunc (w *mergingWalker) derefMap(prefix string, v value.Value) (value.Map, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tm, err := mapValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn m, nil\n}\n\nfunc (w *mergingWalker) visitListItems(t *schema.List, lhs, rhs value.List) (errs ValidationErrors) {\n\trLen := 0\n\tif rhs != nil {\n\t\trLen = rhs.Length()\n\t}\n\tlLen := 0\n\tif lhs != nil {\n\t\tlLen = lhs.Length()\n\t}\n\toutLen := lLen\n\tif outLen < rLen {\n\t\toutLen = rLen\n\t}\n\tout := make([]interface{}, 0, outLen)\n\n\trhsOrder, observedRHS, rhsErrs := w.indexListPathElements(t, rhs)\n\terrs = append(errs, rhsErrs...)\n\tlhsOrder, observedLHS, lhsErrs := w.indexListPathElements(t, lhs)\n\terrs = append(errs, lhsErrs...)\n\n\tsharedOrder := make([]*fieldpath.PathElement, 0, rLen)\n\tfor i := range rhsOrder {\n\t\tpe := &rhsOrder[i]\n\t\tif _, ok := observedLHS.Get(*pe); ok {\n\t\t\tsharedOrder = append(sharedOrder, pe)\n\t\t}\n\t}\n\n\tvar nextShared *fieldpath.PathElement\n\tif len(sharedOrder) > 0 {\n\t\tnextShared = sharedOrder[0]\n\t\tsharedOrder = sharedOrder[1:]\n\t}\n\n\tlLen, rLen = len(lhsOrder), len(rhsOrder)\n\tfor lI, rI := 0, 0; lI < lLen || rI < rLen; {\n\t\tif lI < lLen && rI < rLen {\n\t\t\tpe := lhsOrder[lI]\n\t\t\tif pe.Equals(rhsOrder[rI]) {\n\t\t\t\t// merge LHS & RHS items\n\t\t\t\tlChild, _ := observedLHS.Get(pe)\n\t\t\t\trChild, _ := observedRHS.Get(pe)\n\t\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, rChild)\n\t\t\t\terrs = append(errs, errs...)\n\t\t\t\tif mergeOut != nil {\n\t\t\t\t\tout = append(out, *mergeOut)\n\t\t\t\t}\n\t\t\t\tlI++\n\t\t\t\trI++\n\n\t\t\t\tnextShared = nil\n\t\t\t\tif len(sharedOrder) > 0 {\n\t\t\t\t\tnextShared = sharedOrder[0]\n\t\t\t\t\tsharedOrder = sharedOrder[1:]\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif _, ok := observedRHS.Get(pe); ok && nextShared != nil && !nextShared.Equals(lhsOrder[lI]) {\n\t\t\t\t// shared item, but not the one we want in this round\n\t\t\t\tlI++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif lI < lLen {\n\t\t\tpe := lhsOrder[lI]\n\t\t\tif _, ok := observedRHS.Get(pe); !ok {\n\t\t\t\t// take LHS item\n\t\t\t\tlChild, _ := observedLHS.Get(pe)\n\t\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, nil)\n\t\t\t\terrs = append(errs, errs...)\n\t\t\t\tif mergeOut != nil {\n\t\t\t\t\tout = append(out, *mergeOut)\n\t\t\t\t}\n\t\t\t\tlI++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif rI < rLen {\n\t\t\t// Take the RHS item, merge with matching LHS item if possible\n\t\t\tpe := rhsOrder[rI]\n\t\t\tlChild, _ := observedLHS.Get(pe) // may be nil\n\t\t\trChild, _ := observedRHS.Get(pe)\n\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, rChild)\n\t\t\terrs = append(errs, errs...)\n\t\t\tif mergeOut != nil {\n\t\t\t\tout = append(out, *mergeOut)\n\t\t\t}\n\t\t\trI++\n\t\t\t// Advance nextShared, if we are merging nextShared.\n\t\t\tif nextShared != nil && nextShared.Equals(pe) {\n\t\t\t\tnextShared = nil\n\t\t\t\tif len(sharedOrder) > 0 {\n\t\t\t\t\tnextShared = sharedOrder[0]\n\t\t\t\t\tsharedOrder = sharedOrder[1:]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(out) > 0 {\n\t\ti := interface{}(out)\n\t\tw.out = &i\n\t}\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) indexListPathElements(t *schema.List, list value.List) ([]fieldpath.PathElement, fieldpath.PathElementValueMap, ValidationErrors) {\n\tvar errs ValidationErrors\n\tlength := 0\n\tif list != nil {\n\t\tlength = list.Length()\n\t}\n\tobserved := fieldpath.MakePathElementValueMap(length)\n\tpes := make([]fieldpath.PathElement, 0, length)\n\tfor i := 0; i < length; i++ {\n\t\tchild := list.At(i)\n\t\tpe, err := listItemToPathElement(w.allocator, w.schema, t, i, child)\n\t\tif err != nil {\n\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t// If we can't construct the path element, we can't\n\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t// this element.\n\t\t\tcontinue\n\t\t}\n\t\tif _, found := observed.Get(pe); found {\n\t\t\terrs = append(errs, errorf(\"duplicate entries for key %v\", pe.String())...)\n\t\t\tcontinue\n\t\t}\n\t\tobserved.Insert(pe, child)\n\t\tpes = append(pes, pe)\n\t}\n\treturn pes, observed, errs\n}\n\nfunc (w *mergingWalker) mergeListItem(t *schema.List, pe fieldpath.PathElement, lChild, rChild value.Value) (out *interface{}, errs ValidationErrors) {\n\tw2 := w.prepareDescent(pe, t.ElementType)\n\tw2.lhs = lChild\n\tw2.rhs = rChild\n\terrs = append(errs, w2.merge(pe.String)...)\n\tif w2.out != nil {\n\t\tout = w2.out\n\t}\n\tw.finishDescent(w2)\n\treturn\n}\n\nfunc (w *mergingWalker) derefList(prefix string, v value.Value) (value.List, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tl, err := listValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn l, nil\n}\n\nfunc (w *mergingWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlhs, _ := w.derefList(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefList(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Length() == 0) && (rhs == nil || rhs.Length() == 0)\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = w.visitListItems(t, lhs, rhs)\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) visitMapItem(t *schema.Map, out map[string]interface{}, key string, lhs, rhs value.Value) (errs ValidationErrors) {\n\tfieldType := t.ElementType\n\tif sf, ok := t.FindField(key); ok {\n\t\tfieldType = sf.Type\n\t}\n\tpe := fieldpath.PathElement{FieldName: &key}\n\tw2 := w.prepareDescent(pe, fieldType)\n\tw2.lhs = lhs\n\tw2.rhs = rhs\n\terrs = append(errs, w2.merge(pe.String)...)\n\tif w2.out != nil {\n\t\tout[key] = *w2.out\n\t}\n\tw.finishDescent(w2)\n\treturn errs\n}\n\nfunc (w *mergingWalker) visitMapItems(t *schema.Map, lhs, rhs value.Map) (errs ValidationErrors) {\n\tout := map[string]interface{}{}\n\n\tvalue.MapZipUsing(w.allocator, lhs, rhs, value.Unordered, func(key string, lhsValue, rhsValue value.Value) bool {\n\t\terrs = append(errs, w.visitMapItem(t, out, key, lhsValue, rhsValue)...)\n\t\treturn true\n\t})\n\tif len(out) > 0 {\n\t\ti := interface{}(out)\n\t\tw.out = &i\n\t}\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tlhs, _ := w.derefMap(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefMap(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Empty()) && (rhs == nil || rhs.Empty())\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = append(errs, w.visitMapItems(t, lhs, rhs)...)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/parser.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\n\tyaml \"gopkg.in/yaml.v2\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// YAMLObject is an object encoded in YAML.\ntype YAMLObject string\n\n// Parser implements YAMLParser and allows introspecting the schema.\ntype Parser struct {\n\tSchema schema.Schema\n}\n\n// create builds an unvalidated parser.\nfunc create(s YAMLObject) (*Parser, error) {\n\tp := Parser{}\n\terr := yaml.Unmarshal([]byte(s), &p.Schema)\n\treturn &p, err\n}\n\nfunc createOrDie(schema YAMLObject) *Parser {\n\tp, err := create(schema)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"failed to create parser: %v\", err))\n\t}\n\treturn p\n}\n\nvar ssParser = createOrDie(YAMLObject(schema.SchemaSchemaYAML))\n\n// NewParser will build a YAMLParser from a schema. The schema is validated.\nfunc NewParser(schema YAMLObject) (*Parser, error) {\n\t_, err := ssParser.Type(\"schema\").FromYAML(schema)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to validate schema: %v\", err)\n\t}\n\tp, err := create(schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p, nil\n}\n\n// TypeNames returns a list of types this parser understands.\nfunc (p *Parser) TypeNames() (names []string) {\n\tfor _, td := range p.Schema.Types {\n\t\tnames = append(names, td.Name)\n\t}\n\treturn names\n}\n\n// Type returns a helper which can produce objects of the given type. Any\n// errors are deferred until a further function is called.\nfunc (p *Parser) Type(name string) ParseableType {\n\treturn ParseableType{\n\t\tSchema:  &p.Schema,\n\t\tTypeRef: schema.TypeRef{NamedType: &name},\n\t}\n}\n\n// ParseableType allows for easy production of typed objects.\ntype ParseableType struct {\n\tTypeRef schema.TypeRef\n\tSchema  *schema.Schema\n}\n\n// IsValid return true if p's schema and typename are valid.\nfunc (p ParseableType) IsValid() bool {\n\t_, ok := p.Schema.Resolve(p.TypeRef)\n\treturn ok\n}\n\n// FromYAML parses a yaml string into an object with the current schema\n// and the type \"typename\" or an error if validation fails.\nfunc (p ParseableType) FromYAML(object YAMLObject) (*TypedValue, error) {\n\tvar v interface{}\n\terr := yaml.Unmarshal([]byte(object), &v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn AsTyped(value.NewValueInterface(v), p.Schema, p.TypeRef)\n}\n\n// FromUnstructured converts a go \"interface{}\" type, typically an\n// unstructured object in Kubernetes world, to a TypedValue. It returns an\n// error if the resulting object fails schema validation.\n// The provided interface{} must be one of: map[string]interface{},\n// map[interface{}]interface{}, []interface{}, int types, float types,\n// string or boolean. Nested interface{} must also be one of these types.\nfunc (p ParseableType) FromUnstructured(in interface{}) (*TypedValue, error) {\n\treturn AsTyped(value.NewValueInterface(in), p.Schema, p.TypeRef)\n}\n\n// FromStructured converts a go \"interface{}\" type, typically an structured object in\n// Kubernetes, to a TypedValue. It will return an error if the resulting object fails\n// schema validation. The provided \"interface{}\" value must be a pointer so that the\n// value can be modified via reflection. The provided \"interface{}\" may contain structs\n// and types that are converted to Values by the jsonMarshaler interface.\nfunc (p ParseableType) FromStructured(in interface{}) (*TypedValue, error) {\n\tv, err := value.NewValueReflect(in)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating struct value reflector: %v\", err)\n\t}\n\treturn AsTyped(v, p.Schema, p.TypeRef)\n}\n\n// DeducedParseableType is a ParseableType that deduces the type from\n// the content of the object.\nvar DeducedParseableType ParseableType = createOrDie(YAMLObject(`types:\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n`)).Type(\"__untyped_deduced_\")\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/reconcile_schema.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\nvar fmPool = sync.Pool{\n\tNew: func() interface{} { return &reconcileWithSchemaWalker{} },\n}\n\nfunc (v *reconcileWithSchemaWalker) finished() {\n\tv.fieldSet = nil\n\tv.schema = nil\n\tv.value = nil\n\tv.typeRef = schema.TypeRef{}\n\tv.path = nil\n\tv.toRemove = nil\n\tv.toAdd = nil\n\tfmPool.Put(v)\n}\n\ntype reconcileWithSchemaWalker struct {\n\tvalue  *TypedValue    // root of the live object\n\tschema *schema.Schema // root of the live schema\n\n\t// state of node being visited by walker\n\tfieldSet *fieldpath.Set\n\ttypeRef  schema.TypeRef\n\tpath     fieldpath.Path\n\tisAtomic bool\n\n\t// the accumulated diff to perform to apply reconciliation\n\ttoRemove *fieldpath.Set // paths to remove recursively\n\ttoAdd    *fieldpath.Set // paths to add after any removals\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*reconcileWithSchemaWalker\n}\n\nfunc (v *reconcileWithSchemaWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *reconcileWithSchemaWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*reconcileWithSchemaWalker{}\n\t}\n\tvar v2 *reconcileWithSchemaWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &reconcileWithSchemaWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\tv2.path = append(v.path, pe)\n\tv2.value = v.value\n\treturn v2\n}\n\nfunc (v *reconcileWithSchemaWalker) finishDescent(v2 *reconcileWithSchemaWalker) {\n\tv2.fieldSet = nil\n\tv2.schema = nil\n\tv2.value = nil\n\tv2.typeRef = schema.TypeRef{}\n\tif cap(v2.path) < 20 { // recycle slices that do not have unexpectedly high capacity\n\t\tv2.path = v2.path[:0]\n\t} else {\n\t\tv2.path = nil\n\t}\n\n\t// merge any accumulated changes into parent walker\n\tif v2.toRemove != nil {\n\t\tif v.toRemove == nil {\n\t\t\tv.toRemove = v2.toRemove\n\t\t} else {\n\t\t\tv.toRemove = v.toRemove.Union(v2.toRemove)\n\t\t}\n\t}\n\tif v2.toAdd != nil {\n\t\tif v.toAdd == nil {\n\t\t\tv.toAdd = v2.toAdd\n\t\t} else {\n\t\t\tv.toAdd = v.toAdd.Union(v2.toAdd)\n\t\t}\n\t}\n\tv2.toRemove = nil\n\tv2.toAdd = nil\n\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\n// ReconcileFieldSetWithSchema reconciles the a field set with any changes to the\n// object's schema since the field set was written. Returns the reconciled field set, or nil of\n// no changes were made to the field set.\n//\n// Supports:\n// - changing types from atomic to granular\n// - changing types from granular to atomic\nfunc ReconcileFieldSetWithSchema(fieldset *fieldpath.Set, tv *TypedValue) (*fieldpath.Set, error) {\n\tv := fmPool.Get().(*reconcileWithSchemaWalker)\n\tv.fieldSet = fieldset\n\tv.value = tv\n\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\n\tdefer v.finished()\n\terrs := v.reconcile()\n\n\tif len(errs) > 0 {\n\t\treturn nil, fmt.Errorf(\"errors reconciling field set with schema: %s\", errs.Error())\n\t}\n\n\t// If there are any accumulated changes, apply them\n\tif v.toAdd != nil || v.toRemove != nil {\n\t\tout := v.fieldSet\n\t\tif v.toRemove != nil {\n\t\t\tout = out.RecursiveDifference(v.toRemove)\n\t\t}\n\t\tif v.toAdd != nil {\n\t\t\tout = out.Union(v.toAdd)\n\t\t}\n\t\treturn out, nil\n\t}\n\treturn nil, nil\n}\n\nfunc (v *reconcileWithSchemaWalker) reconcile() (errs ValidationErrors) {\n\ta, ok := v.schema.Resolve(v.typeRef)\n\tif !ok {\n\t\terrs = append(errs, errorf(\"could not resolve %v\", v.typeRef)...)\n\t\treturn\n\t}\n\treturn handleAtom(a, v.typeRef, v)\n}\n\nfunc (v *reconcileWithSchemaWalker) doScalar(_ *schema.Scalar) (errs ValidationErrors) {\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) visitListItems(t *schema.List, element *fieldpath.Set) (errs ValidationErrors) {\n\thandleElement := func(pe fieldpath.PathElement, isMember bool) {\n\t\tvar hasChildren bool\n\t\tv2 := v.prepareDescent(pe, t.ElementType)\n\t\tv2.fieldSet, hasChildren = element.Children.Get(pe)\n\t\tv2.isAtomic = isMember && !hasChildren\n\t\terrs = append(errs, v2.reconcile()...)\n\t\tv.finishDescent(v2)\n\t}\n\telement.Children.Iterate(func(pe fieldpath.PathElement) {\n\t\tif element.Members.Has(pe) {\n\t\t\treturn\n\t\t}\n\t\thandleElement(pe, false)\n\t})\n\telement.Members.Iterate(func(pe fieldpath.PathElement) {\n\t\thandleElement(pe, true)\n\t})\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) doList(t *schema.List) (errs ValidationErrors) {\n\t// reconcile lists changed from granular to atomic.\n\t// Note that migrations from atomic to granular are not recommended and will\n\t// be treated as if they were always granular.\n\t//\n\t// In this case, the manager that owned the previously atomic field (and all subfields),\n\t// will now own just the top-level field and none of the subfields.\n\tif !v.isAtomic && t.ElementRelationship == schema.Atomic {\n\t\tv.toRemove = fieldpath.NewSet(v.path) // remove all root and all children fields\n\t\tv.toAdd = fieldpath.NewSet(v.path)    // add the root of the atomic\n\t\treturn errs\n\t}\n\tif v.fieldSet != nil {\n\t\terrs = v.visitListItems(t, v.fieldSet)\n\t}\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) visitMapItems(t *schema.Map, element *fieldpath.Set) (errs ValidationErrors) {\n\thandleElement := func(pe fieldpath.PathElement, isMember bool) {\n\t\tvar hasChildren bool\n\t\tif tr, ok := typeRefAtPath(t, pe); ok { // ignore fields not in the schema\n\t\t\tv2 := v.prepareDescent(pe, tr)\n\t\t\tv2.fieldSet, hasChildren = element.Children.Get(pe)\n\t\t\tv2.isAtomic = isMember && !hasChildren\n\t\t\terrs = append(errs, v2.reconcile()...)\n\t\t\tv.finishDescent(v2)\n\t\t}\n\t}\n\telement.Children.Iterate(func(pe fieldpath.PathElement) {\n\t\tif element.Members.Has(pe) {\n\t\t\treturn\n\t\t}\n\t\thandleElement(pe, false)\n\t})\n\telement.Members.Iterate(func(pe fieldpath.PathElement) {\n\t\thandleElement(pe, true)\n\t})\n\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\t// We don't currently reconcile deduced types (unstructured CRDs) or maps that contain only unknown\n\t// fields since deduced types do not yet support atomic or granular tags.\n\tif isUntypedDeducedMap(t) {\n\t\treturn errs\n\t}\n\n\t// reconcile maps and structs changed from granular to atomic.\n\t// Note that migrations from atomic to granular are not recommended and will\n\t// be treated as if they were always granular.\n\t//\n\t// In this case the manager that owned the previously atomic field (and all subfields),\n\t// will now own just the top-level field and none of the subfields.\n\tif !v.isAtomic && t.ElementRelationship == schema.Atomic {\n\t\tif v.fieldSet != nil && v.fieldSet.Size() > 0 {\n\t\t\tv.toRemove = fieldpath.NewSet(v.path) // remove all root and all children fields\n\t\t\tv.toAdd = fieldpath.NewSet(v.path)    // add the root of the atomic\n\t\t}\n\t\treturn errs\n\t}\n\tif v.fieldSet != nil {\n\t\terrs = v.visitMapItems(t, v.fieldSet)\n\t}\n\treturn errs\n}\n\nfunc fieldSetAtPath(node *fieldpath.Set, path fieldpath.Path) (*fieldpath.Set, bool) {\n\tok := true\n\tfor _, pe := range path {\n\t\tif node, ok = node.Children.Get(pe); !ok {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn node, ok\n}\n\nfunc descendToPath(node *fieldpath.Set, path fieldpath.Path) *fieldpath.Set {\n\tfor _, pe := range path {\n\t\tnode = node.Children.Descend(pe)\n\t}\n\treturn node\n}\n\nfunc typeRefAtPath(t *schema.Map, pe fieldpath.PathElement) (schema.TypeRef, bool) {\n\ttr := t.ElementType\n\tif pe.FieldName != nil {\n\t\tif sf, ok := t.FindField(*pe.FieldName); ok {\n\t\t\ttr = sf.Type\n\t\t}\n\t}\n\treturn tr, tr != schema.TypeRef{}\n}\n\n// isUntypedDeducedMap returns true if m has no fields defined, but allows untyped elements.\n// This is equivalent to a openAPI object that has x-kubernetes-preserve-unknown-fields=true\n// but does not have any properties defined on the object.\nfunc isUntypedDeducedMap(m *schema.Map) bool {\n\treturn isUntypedDeducedRef(m.ElementType) && m.Fields == nil\n}\n\nfunc isUntypedDeducedRef(t schema.TypeRef) bool {\n\tif t.NamedType != nil {\n\t\treturn *t.NamedType == \"__untyped_deduced_\"\n\t}\n\tatom := t.Inlined\n\treturn atom.Scalar != nil && *atom.Scalar == \"untyped\"\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\ntype removingWalker struct {\n\tvalue         value.Value\n\tout           interface{}\n\tschema        *schema.Schema\n\ttoRemove      *fieldpath.Set\n\tallocator     value.Allocator\n\tshouldExtract bool\n}\n\n// removeItemsWithSchema will walk the given value and look for items from the toRemove set.\n// Depending on whether shouldExtract is set true or false, it will return a modified version\n// of the input value with either:\n// 1. only the items in the toRemove set (when shouldExtract is true) or\n// 2. the items from the toRemove set removed from the value (when shouldExtract is false).\nfunc removeItemsWithSchema(val value.Value, toRemove *fieldpath.Set, schema *schema.Schema, typeRef schema.TypeRef, shouldExtract bool) value.Value {\n\tw := &removingWalker{\n\t\tvalue:         val,\n\t\tschema:        schema,\n\t\ttoRemove:      toRemove,\n\t\tallocator:     value.NewFreelistAllocator(),\n\t\tshouldExtract: shouldExtract,\n\t}\n\tresolveSchema(schema, typeRef, val, w)\n\treturn value.NewValueInterface(w.out)\n}\n\nfunc (w *removingWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tw.out = w.value.Unstructured()\n\treturn nil\n}\n\nfunc (w *removingWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tif !w.value.IsList() {\n\t\treturn nil\n\t}\n\tl := w.value.AsListUsing(w.allocator)\n\tdefer w.allocator.Free(l)\n\t// If list is null or empty just return\n\tif l == nil || l.Length() == 0 {\n\t\treturn nil\n\t}\n\n\t// atomic lists should return everything in the case of extract\n\t// and nothing in the case of remove (!w.shouldExtract)\n\tif t.ElementRelationship == schema.Atomic {\n\t\tif w.shouldExtract {\n\t\t\tw.out = w.value.Unstructured()\n\t\t}\n\t\treturn nil\n\t}\n\n\tvar newItems []interface{}\n\titer := l.RangeUsing(w.allocator)\n\tdefer w.allocator.Free(iter)\n\tfor iter.Next() {\n\t\ti, item := iter.Item()\n\t\t// Ignore error because we have already validated this list\n\t\tpe, _ := listItemToPathElement(w.allocator, w.schema, t, i, item)\n\t\tpath, _ := fieldpath.MakePath(pe)\n\t\t// save items on the path when we shouldExtract\n\t\t// but ignore them when we are removing (i.e. !w.shouldExtract)\n\t\tif w.toRemove.Has(path) {\n\t\t\tif w.shouldExtract {\n\t\t\t\tnewItems = append(newItems, removeItemsWithSchema(item, w.toRemove, w.schema, t.ElementType, w.shouldExtract).Unstructured())\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif subset := w.toRemove.WithPrefix(pe); !subset.Empty() {\n\t\t\titem = removeItemsWithSchema(item, subset, w.schema, t.ElementType, w.shouldExtract)\n\t\t} else {\n\t\t\t// don't save items not on the path when we shouldExtract.\n\t\t\tif w.shouldExtract {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tnewItems = append(newItems, item.Unstructured())\n\t}\n\tif len(newItems) > 0 {\n\t\tw.out = newItems\n\t}\n\treturn nil\n}\n\nfunc (w *removingWalker) doMap(t *schema.Map) ValidationErrors {\n\tif !w.value.IsMap() {\n\t\treturn nil\n\t}\n\tm := w.value.AsMapUsing(w.allocator)\n\tif m != nil {\n\t\tdefer w.allocator.Free(m)\n\t}\n\t// If map is null or empty just return\n\tif m == nil || m.Empty() {\n\t\treturn nil\n\t}\n\n\t// atomic maps should return everything in the case of extract\n\t// and nothing in the case of remove (!w.shouldExtract)\n\tif t.ElementRelationship == schema.Atomic {\n\t\tif w.shouldExtract {\n\t\t\tw.out = w.value.Unstructured()\n\t\t}\n\t\treturn nil\n\t}\n\n\tfieldTypes := map[string]schema.TypeRef{}\n\tfor _, structField := range t.Fields {\n\t\tfieldTypes[structField.Name] = structField.Type\n\t}\n\n\tnewMap := map[string]interface{}{}\n\tm.Iterate(func(k string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &k}\n\t\tpath, _ := fieldpath.MakePath(pe)\n\t\tfieldType := t.ElementType\n\t\tif ft, ok := fieldTypes[k]; ok {\n\t\t\tfieldType = ft\n\t\t}\n\t\t// save values on the path when we shouldExtract\n\t\t// but ignore them when we are removing (i.e. !w.shouldExtract)\n\t\tif w.toRemove.Has(path) {\n\t\t\tif w.shouldExtract {\n\t\t\t\tnewMap[k] = removeItemsWithSchema(val, w.toRemove, w.schema, fieldType, w.shouldExtract).Unstructured()\n\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif subset := w.toRemove.WithPrefix(pe); !subset.Empty() {\n\t\t\tval = removeItemsWithSchema(val, subset, w.schema, fieldType, w.shouldExtract)\n\t\t} else {\n\t\t\t// don't save values not on the path when we shouldExtract.\n\t\t\tif w.shouldExtract {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tnewMap[k] = val.Unstructured()\n\t\treturn true\n\t})\n\tif len(newMap) > 0 {\n\t\tw.out = newMap\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar tPool = sync.Pool{\n\tNew: func() interface{} { return &toFieldSetWalker{} },\n}\n\nfunc (tv TypedValue) toFieldSetWalker() *toFieldSetWalker {\n\tv := tPool.Get().(*toFieldSetWalker)\n\tv.value = tv.value\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\tv.set = &fieldpath.Set{}\n\tv.allocator = value.NewFreelistAllocator()\n\treturn v\n}\n\nfunc (v *toFieldSetWalker) finished() {\n\tv.schema = nil\n\tv.typeRef = schema.TypeRef{}\n\tv.path = nil\n\tv.set = nil\n\ttPool.Put(v)\n}\n\ntype toFieldSetWalker struct {\n\tvalue   value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\tset  *fieldpath.Set\n\tpath fieldpath.Path\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*toFieldSetWalker\n\tallocator    value.Allocator\n}\n\nfunc (v *toFieldSetWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *toFieldSetWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*toFieldSetWalker{}\n\t}\n\tvar v2 *toFieldSetWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &toFieldSetWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\tv2.path = append(v2.path, pe)\n\treturn v2\n}\n\nfunc (v *toFieldSetWalker) finishDescent(v2 *toFieldSetWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\tv.path = v2.path[:len(v2.path)-1]\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\nfunc (v *toFieldSetWalker) toFieldSet() ValidationErrors {\n\treturn resolveSchema(v.schema, v.typeRef, v.value, v)\n}\n\nfunc (v *toFieldSetWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tv.set.Insert(v.path)\n\n\treturn nil\n}\n\nfunc (v *toFieldSetWalker) visitListItems(t *schema.List, list value.List) (errs ValidationErrors) {\n\tfor i := 0; i < list.Length(); i++ {\n\t\tchild := list.At(i)\n\t\tpe, _ := listItemToPathElement(v.allocator, v.schema, t, i, child)\n\t\tv2 := v.prepareDescent(pe, t.ElementType)\n\t\tv2.value = child\n\t\terrs = append(errs, v2.toFieldSet()...)\n\n\t\tv2.set.Insert(v2.path)\n\t\tv.finishDescent(v2)\n\t}\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlist, _ := listValue(v.allocator, v.value)\n\tif list != nil {\n\t\tdefer v.allocator.Free(list)\n\t}\n\tif t.ElementRelationship == schema.Atomic {\n\t\tv.set.Insert(v.path)\n\t\treturn nil\n\t}\n\n\tif list == nil {\n\t\treturn nil\n\t}\n\n\terrs = v.visitListItems(t, list)\n\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) visitMapItems(t *schema.Map, m value.Map) (errs ValidationErrors) {\n\tm.Iterate(func(key string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &key}\n\n\t\ttr := t.ElementType\n\t\tif sf, ok := t.FindField(key); ok {\n\t\t\ttr = sf.Type\n\t\t}\n\t\tv2 := v.prepareDescent(pe, tr)\n\t\tv2.value = val\n\t\terrs = append(errs, v2.toFieldSet()...)\n\t\tif val.IsNull() || (val.IsMap() && val.AsMap().Length() == 0) {\n\t\t\tv2.set.Insert(v2.path)\n\t\t} else if _, ok := t.FindField(key); !ok {\n\t\t\tv2.set.Insert(v2.path)\n\t\t}\n\t\tv.finishDescent(v2)\n\t\treturn true\n\t})\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tm, _ := mapValue(v.allocator, v.value)\n\tif m != nil {\n\t\tdefer v.allocator.Free(m)\n\t}\n\tif t.ElementRelationship == schema.Atomic {\n\t\tv.set.Insert(v.path)\n\t\treturn nil\n\t}\n\n\tif m == nil {\n\t\treturn nil\n\t}\n\n\terrs = v.visitMapItems(t, m)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// AsTyped accepts a value and a type and returns a TypedValue. 'v' must have\n// type 'typeName' in the schema. An error is returned if the v doesn't conform\n// to the schema.\nfunc AsTyped(v value.Value, s *schema.Schema, typeRef schema.TypeRef) (*TypedValue, error) {\n\ttv := &TypedValue{\n\t\tvalue:   v,\n\t\ttypeRef: typeRef,\n\t\tschema:  s,\n\t}\n\tif err := tv.Validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn tv, nil\n}\n\n// AsTypeUnvalidated is just like AsTyped, but doesn't validate that the type\n// conforms to the schema, for cases where that has already been checked or\n// where you're going to call a method that validates as a side-effect (like\n// ToFieldSet).\nfunc AsTypedUnvalidated(v value.Value, s *schema.Schema, typeRef schema.TypeRef) *TypedValue {\n\ttv := &TypedValue{\n\t\tvalue:   v,\n\t\ttypeRef: typeRef,\n\t\tschema:  s,\n\t}\n\treturn tv\n}\n\n// TypedValue is a value of some specific type.\ntype TypedValue struct {\n\tvalue   value.Value\n\ttypeRef schema.TypeRef\n\tschema  *schema.Schema\n}\n\n// TypeRef is the type of the value.\nfunc (tv TypedValue) TypeRef() schema.TypeRef {\n\treturn tv.typeRef\n}\n\n// AsValue removes the type from the TypedValue and only keeps the value.\nfunc (tv TypedValue) AsValue() value.Value {\n\treturn tv.value\n}\n\n// Schema gets the schema from the TypedValue.\nfunc (tv TypedValue) Schema() *schema.Schema {\n\treturn tv.schema\n}\n\n// Validate returns an error with a list of every spec violation.\nfunc (tv TypedValue) Validate() error {\n\tw := tv.walker()\n\tdefer w.finished()\n\tif errs := w.validate(nil); len(errs) != 0 {\n\t\treturn errs\n\t}\n\treturn nil\n}\n\n// ToFieldSet creates a set containing every leaf field and item mentioned, or\n// validation errors, if any were encountered.\nfunc (tv TypedValue) ToFieldSet() (*fieldpath.Set, error) {\n\tw := tv.toFieldSetWalker()\n\tdefer w.finished()\n\tif errs := w.toFieldSet(); len(errs) != 0 {\n\t\treturn nil, errs\n\t}\n\treturn w.set, nil\n}\n\n// Merge returns the result of merging tv and pso (\"partially specified\n// object\") together. Of note:\n//   - No fields can be removed by this operation.\n//   - If both tv and pso specify a given leaf field, the result will keep pso's\n//     value.\n//   - Container typed elements will have their items ordered:\n//     1. like tv, if pso doesn't change anything in the container\n//     2. like pso, if pso does change something in the container.\n//\n// tv and pso must both be of the same type (their Schema and TypeRef must\n// match), or an error will be returned. Validation errors will be returned if\n// the objects don't conform to the schema.\nfunc (tv TypedValue) Merge(pso *TypedValue) (*TypedValue, error) {\n\treturn merge(&tv, pso, ruleKeepRHS, nil)\n}\n\n// Compare compares the two objects. See the comments on the `Comparison`\n// struct for details on the return value.\n//\n// tv and rhs must both be of the same type (their Schema and TypeRef must\n// match), or an error will be returned. Validation errors will be returned if\n// the objects don't conform to the schema.\nfunc (tv TypedValue) Compare(rhs *TypedValue) (c *Comparison, err error) {\n\tc = &Comparison{\n\t\tRemoved:  fieldpath.NewSet(),\n\t\tModified: fieldpath.NewSet(),\n\t\tAdded:    fieldpath.NewSet(),\n\t}\n\t_, err = merge(&tv, rhs, func(w *mergingWalker) {\n\t\tif w.lhs == nil {\n\t\t\tc.Added.Insert(w.path)\n\t\t} else if w.rhs == nil {\n\t\t\tc.Removed.Insert(w.path)\n\t\t} else if !value.Equals(w.rhs, w.lhs) {\n\t\t\t// TODO: Equality is not sufficient for this.\n\t\t\t// Need to implement equality check on the value type.\n\t\t\tc.Modified.Insert(w.path)\n\t\t}\n\t}, func(w *mergingWalker) {\n\t\tif w.lhs == nil {\n\t\t\tc.Added.Insert(w.path)\n\t\t} else if w.rhs == nil {\n\t\t\tc.Removed.Insert(w.path)\n\t\t}\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn c, nil\n}\n\n// RemoveItems removes each provided list or map item from the value.\nfunc (tv TypedValue) RemoveItems(items *fieldpath.Set) *TypedValue {\n\ttv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, false)\n\treturn &tv\n}\n\n// ExtractItems returns a value with only the provided list or map items extracted from the value.\nfunc (tv TypedValue) ExtractItems(items *fieldpath.Set) *TypedValue {\n\ttv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, true)\n\treturn &tv\n}\n\n// NormalizeUnions takes the new object and normalizes the union:\n// - If discriminator changed to non-nil, and a new field has been added\n// that doesn't match, an error is returned,\n// - If discriminator hasn't changed and two fields or more are set, an\n// error is returned,\n// - If discriminator changed to non-nil, all other fields but the\n// discriminated one will be cleared,\n// - Otherwise, If only one field is left, update discriminator to that value.\n//\n// Please note: union behavior isn't finalized yet and this is still experimental.\nfunc (tv TypedValue) NormalizeUnions(new *TypedValue) (*TypedValue, error) {\n\tvar errs ValidationErrors\n\tvar normalizeFn = func(w *mergingWalker) {\n\t\tif w.rhs != nil {\n\t\t\tv := w.rhs.Unstructured()\n\t\t\tw.out = &v\n\t\t}\n\t\tif err := normalizeUnions(w); err != nil {\n\t\t\terrs = append(errs, errorf(err.Error())...)\n\t\t}\n\t}\n\tout, mergeErrs := merge(&tv, new, func(w *mergingWalker) {}, normalizeFn)\n\tif mergeErrs != nil {\n\t\terrs = append(errs, mergeErrs.(ValidationErrors)...)\n\t}\n\tif len(errs) > 0 {\n\t\treturn nil, errs\n\t}\n\treturn out, nil\n}\n\n// NormalizeUnionsApply specifically normalize unions on apply. It\n// validates that the applied union is correct (there should be no\n// ambiguity there), and clear the fields according to the sent intent.\n//\n// Please note: union behavior isn't finalized yet and this is still experimental.\nfunc (tv TypedValue) NormalizeUnionsApply(new *TypedValue) (*TypedValue, error) {\n\tvar errs ValidationErrors\n\tvar normalizeFn = func(w *mergingWalker) {\n\t\tif w.rhs != nil {\n\t\t\tv := w.rhs.Unstructured()\n\t\t\tw.out = &v\n\t\t}\n\t\tif err := normalizeUnionsApply(w); err != nil {\n\t\t\terrs = append(errs, errorf(err.Error())...)\n\t\t}\n\t}\n\tout, mergeErrs := merge(&tv, new, func(w *mergingWalker) {}, normalizeFn)\n\tif mergeErrs != nil {\n\t\terrs = append(errs, mergeErrs.(ValidationErrors)...)\n\t}\n\tif len(errs) > 0 {\n\t\treturn nil, errs\n\t}\n\treturn out, nil\n}\n\nfunc (tv TypedValue) Empty() *TypedValue {\n\ttv.value = value.NewValueInterface(nil)\n\treturn &tv\n}\n\nvar mwPool = sync.Pool{\n\tNew: func() interface{} { return &mergingWalker{} },\n}\n\nfunc merge(lhs, rhs *TypedValue, rule, postRule mergeRule) (*TypedValue, error) {\n\tif lhs.schema != rhs.schema {\n\t\treturn nil, errorf(\"expected objects with types from the same schema\")\n\t}\n\tif !lhs.typeRef.Equals(&rhs.typeRef) {\n\t\treturn nil, errorf(\"expected objects of the same type, but got %v and %v\", lhs.typeRef, rhs.typeRef)\n\t}\n\n\tmw := mwPool.Get().(*mergingWalker)\n\tdefer func() {\n\t\tmw.lhs = nil\n\t\tmw.rhs = nil\n\t\tmw.schema = nil\n\t\tmw.typeRef = schema.TypeRef{}\n\t\tmw.rule = nil\n\t\tmw.postItemHook = nil\n\t\tmw.out = nil\n\t\tmw.inLeaf = false\n\n\t\tmwPool.Put(mw)\n\t}()\n\n\tmw.lhs = lhs.value\n\tmw.rhs = rhs.value\n\tmw.schema = lhs.schema\n\tmw.typeRef = lhs.typeRef\n\tmw.rule = rule\n\tmw.postItemHook = postRule\n\tif mw.allocator == nil {\n\t\tmw.allocator = value.NewFreelistAllocator()\n\t}\n\n\terrs := mw.merge(nil)\n\tif len(errs) > 0 {\n\t\treturn nil, errs\n\t}\n\n\tout := &TypedValue{\n\t\tschema:  lhs.schema,\n\t\ttypeRef: lhs.typeRef,\n\t}\n\tif mw.out != nil {\n\t\tout.value = value.NewValueInterface(*mw.out)\n\t}\n\treturn out, nil\n}\n\n// Comparison is the return value of a TypedValue.Compare() operation.\n//\n// No field will appear in more than one of the three fieldsets. If all of the\n// fieldsets are empty, then the objects must have been equal.\ntype Comparison struct {\n\t// Removed contains any fields removed by rhs (the right-hand-side\n\t// object in the comparison).\n\tRemoved *fieldpath.Set\n\t// Modified contains fields present in both objects but different.\n\tModified *fieldpath.Set\n\t// Added contains any fields added by rhs.\n\tAdded *fieldpath.Set\n}\n\n// IsSame returns true if the comparison returned no changes (the two\n// compared objects are similar).\nfunc (c *Comparison) IsSame() bool {\n\treturn c.Removed.Empty() && c.Modified.Empty() && c.Added.Empty()\n}\n\n// String returns a human readable version of the comparison.\nfunc (c *Comparison) String() string {\n\tbld := strings.Builder{}\n\tif !c.Modified.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Modified Fields:\\n%v\\n\", c.Modified))\n\t}\n\tif !c.Added.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Added Fields:\\n%v\\n\", c.Added))\n\t}\n\tif !c.Removed.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Removed Fields:\\n%v\\n\", c.Removed))\n\t}\n\treturn bld.String()\n}\n\n// ExcludeFields fields from the compare recursively removes the fields\n// from the entire comparison\nfunc (c *Comparison) ExcludeFields(fields *fieldpath.Set) *Comparison {\n\tif fields == nil || fields.Empty() {\n\t\treturn c\n\t}\n\tc.Removed = c.Removed.RecursiveDifference(fields)\n\tc.Modified = c.Modified.RecursiveDifference(fields)\n\tc.Added = c.Added.RecursiveDifference(fields)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/union.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nfunc normalizeUnions(w *mergingWalker) error {\n\tatom, found := w.schema.Resolve(w.typeRef)\n\tif !found {\n\t\tpanic(fmt.Sprintf(\"Unable to resolve schema in normalize union: %v/%v\", w.schema, w.typeRef))\n\t}\n\t// Unions can only be in structures, and the struct must not have been removed\n\tif atom.Map == nil || w.out == nil {\n\t\treturn nil\n\t}\n\n\tvar old value.Map\n\tif w.lhs != nil && !w.lhs.IsNull() {\n\t\told = w.lhs.AsMap()\n\t}\n\tfor _, union := range atom.Map.Unions {\n\t\tif err := newUnion(&union).Normalize(old, w.rhs.AsMap(), value.NewValueInterface(*w.out).AsMap()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc normalizeUnionsApply(w *mergingWalker) error {\n\tatom, found := w.schema.Resolve(w.typeRef)\n\tif !found {\n\t\tpanic(fmt.Sprintf(\"Unable to resolve schema in normalize union: %v/%v\", w.schema, w.typeRef))\n\t}\n\t// Unions can only be in structures, and the struct must not have been removed\n\tif atom.Map == nil || w.out == nil {\n\t\treturn nil\n\t}\n\n\tvar old value.Map\n\tif w.lhs != nil && !w.lhs.IsNull() {\n\t\told = w.lhs.AsMap()\n\t}\n\n\tfor _, union := range atom.Map.Unions {\n\t\tout := value.NewValueInterface(*w.out)\n\t\tif err := newUnion(&union).NormalizeApply(old, w.rhs.AsMap(), out.AsMap()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*w.out = out.Unstructured()\n\t}\n\treturn nil\n}\n\ntype discriminated string\ntype field string\n\ntype discriminatedNames struct {\n\tf2d map[field]discriminated\n\td2f map[discriminated]field\n}\n\nfunc newDiscriminatedName(f2d map[field]discriminated) discriminatedNames {\n\td2f := map[discriminated]field{}\n\tfor key, value := range f2d {\n\t\td2f[value] = key\n\t}\n\treturn discriminatedNames{\n\t\tf2d: f2d,\n\t\td2f: d2f,\n\t}\n}\n\nfunc (dn discriminatedNames) toField(d discriminated) field {\n\tif f, ok := dn.d2f[d]; ok {\n\t\treturn f\n\t}\n\treturn field(d)\n}\n\nfunc (dn discriminatedNames) toDiscriminated(f field) discriminated {\n\tif d, ok := dn.f2d[f]; ok {\n\t\treturn d\n\t}\n\treturn discriminated(f)\n}\n\ntype discriminator struct {\n\tname string\n}\n\nfunc (d *discriminator) Set(m value.Map, v discriminated) {\n\tif d == nil {\n\t\treturn\n\t}\n\tm.Set(d.name, value.NewValueInterface(string(v)))\n}\n\nfunc (d *discriminator) Get(m value.Map) discriminated {\n\tif d == nil || m == nil {\n\t\treturn \"\"\n\t}\n\tval, ok := m.Get(d.name)\n\tif !ok {\n\t\treturn \"\"\n\t}\n\tif !val.IsString() {\n\t\treturn \"\"\n\t}\n\treturn discriminated(val.AsString())\n}\n\ntype fieldsSet map[field]struct{}\n\n// newFieldsSet returns a map of the fields that are part of the union and are set\n// in the given map.\nfunc newFieldsSet(m value.Map, fields []field) fieldsSet {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tset := fieldsSet{}\n\tfor _, f := range fields {\n\t\tif subField, ok := m.Get(string(f)); ok && !subField.IsNull() {\n\t\t\tset.Add(f)\n\t\t}\n\t}\n\treturn set\n}\n\nfunc (fs fieldsSet) Add(f field) {\n\tif fs == nil {\n\t\tfs = map[field]struct{}{}\n\t}\n\tfs[f] = struct{}{}\n}\n\nfunc (fs fieldsSet) One() *field {\n\tfor f := range fs {\n\t\treturn &f\n\t}\n\treturn nil\n}\n\nfunc (fs fieldsSet) Has(f field) bool {\n\t_, ok := fs[f]\n\treturn ok\n}\n\nfunc (fs fieldsSet) List() []field {\n\tfields := []field{}\n\tfor f := range fs {\n\t\tfields = append(fields, f)\n\t}\n\treturn fields\n}\n\nfunc (fs fieldsSet) Difference(o fieldsSet) fieldsSet {\n\tn := fieldsSet{}\n\tfor f := range fs {\n\t\tif !o.Has(f) {\n\t\t\tn.Add(f)\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (fs fieldsSet) String() string {\n\ts := []string{}\n\tfor k := range fs {\n\t\ts = append(s, string(k))\n\t}\n\treturn strings.Join(s, \", \")\n}\n\ntype union struct {\n\tdeduceInvalidDiscriminator bool\n\td                          *discriminator\n\tdn                         discriminatedNames\n\tf                          []field\n}\n\nfunc newUnion(su *schema.Union) *union {\n\tu := &union{}\n\tif su.Discriminator != nil {\n\t\tu.d = &discriminator{name: *su.Discriminator}\n\t}\n\tf2d := map[field]discriminated{}\n\tfor _, f := range su.Fields {\n\t\tu.f = append(u.f, field(f.FieldName))\n\t\tf2d[field(f.FieldName)] = discriminated(f.DiscriminatorValue)\n\t}\n\tu.dn = newDiscriminatedName(f2d)\n\tu.deduceInvalidDiscriminator = su.DeduceInvalidDiscriminator\n\treturn u\n}\n\n// clear removes all the fields in map that are part of the union, but\n// the one we decided to keep.\nfunc (u *union) clear(m value.Map, f field) {\n\tfor _, fieldName := range u.f {\n\t\tif field(fieldName) != f {\n\t\t\tm.Delete(string(fieldName))\n\t\t}\n\t}\n}\n\nfunc (u *union) Normalize(old, new, out value.Map) error {\n\tos := newFieldsSet(old, u.f)\n\tns := newFieldsSet(new, u.f)\n\tdiff := ns.Difference(os)\n\n\tif u.d.Get(old) != u.d.Get(new) && u.d.Get(new) != \"\" {\n\t\tif len(diff) == 1 && u.d.Get(new) != u.dn.toDiscriminated(*diff.One()) {\n\t\t\treturn fmt.Errorf(\"discriminator (%v) and field changed (%v) don't match\", u.d.Get(new), diff.One())\n\t\t}\n\t\tif len(diff) > 1 {\n\t\t\treturn fmt.Errorf(\"multiple new fields added: %v\", diff)\n\t\t}\n\t\tu.clear(out, u.dn.toField(u.d.Get(new)))\n\t\treturn nil\n\t}\n\n\tif len(ns) > 1 {\n\t\treturn fmt.Errorf(\"multiple fields set without discriminator change: %v\", ns)\n\t}\n\n\t// Set discriminiator if it needs to be deduced.\n\tif u.deduceInvalidDiscriminator && len(ns) == 1 {\n\t\tu.d.Set(out, u.dn.toDiscriminated(*ns.One()))\n\t}\n\n\treturn nil\n}\n\nfunc (u *union) NormalizeApply(applied, merged, out value.Map) error {\n\tas := newFieldsSet(applied, u.f)\n\tif len(as) > 1 {\n\t\treturn fmt.Errorf(\"more than one field of union applied: %v\", as)\n\t}\n\tif len(as) == 0 {\n\t\t// None is set, just leave.\n\t\treturn nil\n\t}\n\t// We have exactly one, discriminiator must match if set\n\tif u.d.Get(applied) != \"\" && u.d.Get(applied) != u.dn.toDiscriminated(*as.One()) {\n\t\treturn fmt.Errorf(\"applied discriminator (%v) doesn't match applied field (%v)\", u.d.Get(applied), *as.One())\n\t}\n\n\t// Update discriminiator if needed\n\tif u.deduceInvalidDiscriminator {\n\t\tu.d.Set(out, u.dn.toDiscriminated(*as.One()))\n\t}\n\t// Clear others fields.\n\tu.clear(out, *as.One())\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar vPool = sync.Pool{\n\tNew: func() interface{} { return &validatingObjectWalker{} },\n}\n\nfunc (tv TypedValue) walker() *validatingObjectWalker {\n\tv := vPool.Get().(*validatingObjectWalker)\n\tv.value = tv.value\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\tif v.allocator == nil {\n\t\tv.allocator = value.NewFreelistAllocator()\n\t}\n\treturn v\n}\n\nfunc (v *validatingObjectWalker) finished() {\n\tv.schema = nil\n\tv.typeRef = schema.TypeRef{}\n\tvPool.Put(v)\n}\n\ntype validatingObjectWalker struct {\n\tvalue   value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*validatingObjectWalker\n\tallocator    value.Allocator\n}\n\nfunc (v *validatingObjectWalker) prepareDescent(tr schema.TypeRef) *validatingObjectWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*validatingObjectWalker{}\n\t}\n\tvar v2 *validatingObjectWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &validatingObjectWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\treturn v2\n}\n\nfunc (v *validatingObjectWalker) finishDescent(v2 *validatingObjectWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\nfunc (v *validatingObjectWalker) validate(prefixFn func() string) ValidationErrors {\n\treturn resolveSchema(v.schema, v.typeRef, v.value, v).WithLazyPrefix(prefixFn)\n}\n\nfunc validateScalar(t *schema.Scalar, v value.Value, prefix string) (errs ValidationErrors) {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif v.IsNull() {\n\t\treturn nil\n\t}\n\tswitch *t {\n\tcase schema.Numeric:\n\t\tif !v.IsFloat() && !v.IsInt() {\n\t\t\t// TODO: should the schema separate int and float?\n\t\t\treturn errorf(\"%vexpected numeric (int or float), got %T\", prefix, v.Unstructured())\n\t\t}\n\tcase schema.String:\n\t\tif !v.IsString() {\n\t\t\treturn errorf(\"%vexpected string, got %#v\", prefix, v)\n\t\t}\n\tcase schema.Boolean:\n\t\tif !v.IsBool() {\n\t\t\treturn errorf(\"%vexpected boolean, got %v\", prefix, v)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (v *validatingObjectWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tif errs := validateScalar(t, v.value, \"\"); len(errs) > 0 {\n\t\treturn errs\n\t}\n\treturn nil\n}\n\nfunc (v *validatingObjectWalker) visitListItems(t *schema.List, list value.List) (errs ValidationErrors) {\n\tobservedKeys := fieldpath.MakePathElementSet(list.Length())\n\tfor i := 0; i < list.Length(); i++ {\n\t\tchild := list.AtUsing(v.allocator, i)\n\t\tdefer v.allocator.Free(child)\n\t\tvar pe fieldpath.PathElement\n\t\tif t.ElementRelationship != schema.Associative {\n\t\t\tpe.Index = &i\n\t\t} else {\n\t\t\tvar err error\n\t\t\tpe, err = listItemToPathElement(v.allocator, v.schema, t, i, child)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t\t// If we can't construct the path element, we can't\n\t\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t\t// this element.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif observedKeys.Has(pe) {\n\t\t\t\terrs = append(errs, errorf(\"duplicate entries for key %v\", pe.String())...)\n\t\t\t}\n\t\t\tobservedKeys.Insert(pe)\n\t\t}\n\t\tv2 := v.prepareDescent(t.ElementType)\n\t\tv2.value = child\n\t\terrs = append(errs, v2.validate(pe.String)...)\n\t\tv.finishDescent(v2)\n\t}\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlist, err := listValue(v.allocator, v.value)\n\tif err != nil {\n\t\treturn errorf(err.Error())\n\t}\n\n\tif list == nil {\n\t\treturn nil\n\t}\n\n\tdefer v.allocator.Free(list)\n\terrs = v.visitListItems(t, list)\n\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) visitMapItems(t *schema.Map, m value.Map) (errs ValidationErrors) {\n\tm.IterateUsing(v.allocator, func(key string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &key}\n\t\ttr := t.ElementType\n\t\tif sf, ok := t.FindField(key); ok {\n\t\t\ttr = sf.Type\n\t\t} else if (t.ElementType == schema.TypeRef{}) {\n\t\t\terrs = append(errs, errorf(\"field not declared in schema\").WithPrefix(pe.String())...)\n\t\t\treturn false\n\t\t}\n\t\tv2 := v.prepareDescent(tr)\n\t\tv2.value = val\n\t\t// Giving pe.String as a parameter actually increases the allocations.\n\t\terrs = append(errs, v2.validate(func() string { return pe.String() })...)\n\t\tv.finishDescent(v2)\n\t\treturn true\n\t})\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tm, err := mapValue(v.allocator, v.value)\n\tif err != nil {\n\t\treturn errorf(err.Error())\n\t}\n\tif m == nil {\n\t\treturn nil\n\t}\n\tdefer v.allocator.Free(m)\n\terrs = v.visitMapItems(t, m)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/allocator.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// Allocator provides a value object allocation strategy.\n// Value objects can be allocated by passing an allocator to the \"Using\"\n// receiver functions on the value interfaces, e.g. Map.ZipUsing(allocator, ...).\n// Value objects returned from \"Using\" functions should be given back to the allocator\n// once longer needed by calling Allocator.Free(Value).\ntype Allocator interface {\n\t// Free gives the allocator back any value objects returned by the \"Using\"\n\t// receiver functions on the value interfaces.\n\t// interface{} may be any of: Value, Map, List or Range.\n\tFree(interface{})\n\n\t// The unexported functions are for \"Using\" receiver functions of the value types\n\t// to request what they need from the allocator.\n\tallocValueUnstructured() *valueUnstructured\n\tallocListUnstructuredRange() *listUnstructuredRange\n\tallocValueReflect() *valueReflect\n\tallocMapReflect() *mapReflect\n\tallocStructReflect() *structReflect\n\tallocListReflect() *listReflect\n\tallocListReflectRange() *listReflectRange\n}\n\n// HeapAllocator simply allocates objects to the heap. It is the default\n// allocator used receiver functions on the value interfaces that do not accept\n// an allocator and should be used whenever allocating objects that will not\n// be given back to an allocator by calling Allocator.Free(Value).\nvar HeapAllocator = &heapAllocator{}\n\ntype heapAllocator struct{}\n\nfunc (p *heapAllocator) allocValueUnstructured() *valueUnstructured {\n\treturn &valueUnstructured{}\n}\n\nfunc (p *heapAllocator) allocListUnstructuredRange() *listUnstructuredRange {\n\treturn &listUnstructuredRange{vv: &valueUnstructured{}}\n}\n\nfunc (p *heapAllocator) allocValueReflect() *valueReflect {\n\treturn &valueReflect{}\n}\n\nfunc (p *heapAllocator) allocStructReflect() *structReflect {\n\treturn &structReflect{}\n}\n\nfunc (p *heapAllocator) allocMapReflect() *mapReflect {\n\treturn &mapReflect{}\n}\n\nfunc (p *heapAllocator) allocListReflect() *listReflect {\n\treturn &listReflect{}\n}\n\nfunc (p *heapAllocator) allocListReflectRange() *listReflectRange {\n\treturn &listReflectRange{vr: &valueReflect{}}\n}\n\nfunc (p *heapAllocator) Free(_ interface{}) {}\n\n// NewFreelistAllocator creates freelist based allocator.\n// This allocator provides fast allocation and freeing of short lived value objects.\n//\n// The freelists are bounded in size by freelistMaxSize. If more than this amount of value objects is\n// allocated at once, the excess will be returned to the heap for garbage collection when freed.\n//\n// This allocator is unsafe and must not be accessed concurrently by goroutines.\n//\n// This allocator works well for traversal of value data trees. Typical usage is to acquire\n// a freelist at the beginning of the traversal and use it through out\n// for all temporary value access.\nfunc NewFreelistAllocator() Allocator {\n\treturn &freelistAllocator{\n\t\tvalueUnstructured: &freelist{new: func() interface{} {\n\t\t\treturn &valueUnstructured{}\n\t\t}},\n\t\tlistUnstructuredRange: &freelist{new: func() interface{} {\n\t\t\treturn &listUnstructuredRange{vv: &valueUnstructured{}}\n\t\t}},\n\t\tvalueReflect: &freelist{new: func() interface{} {\n\t\t\treturn &valueReflect{}\n\t\t}},\n\t\tmapReflect: &freelist{new: func() interface{} {\n\t\t\treturn &mapReflect{}\n\t\t}},\n\t\tstructReflect: &freelist{new: func() interface{} {\n\t\t\treturn &structReflect{}\n\t\t}},\n\t\tlistReflect: &freelist{new: func() interface{} {\n\t\t\treturn &listReflect{}\n\t\t}},\n\t\tlistReflectRange: &freelist{new: func() interface{} {\n\t\t\treturn &listReflectRange{vr: &valueReflect{}}\n\t\t}},\n\t}\n}\n\n// Bound memory usage of freelists. This prevents the processing of very large lists from leaking memory.\n// This limit is large enough for endpoints objects containing 1000 IP address entries. Freed objects\n// that don't fit into the freelist are orphaned on the heap to be garbage collected.\nconst freelistMaxSize = 1000\n\ntype freelistAllocator struct {\n\tvalueUnstructured     *freelist\n\tlistUnstructuredRange *freelist\n\tvalueReflect          *freelist\n\tmapReflect            *freelist\n\tstructReflect         *freelist\n\tlistReflect           *freelist\n\tlistReflectRange      *freelist\n}\n\ntype freelist struct {\n\tlist []interface{}\n\tnew  func() interface{}\n}\n\nfunc (f *freelist) allocate() interface{} {\n\tvar w2 interface{}\n\tif n := len(f.list); n > 0 {\n\t\tw2, f.list = f.list[n-1], f.list[:n-1]\n\t} else {\n\t\tw2 = f.new()\n\t}\n\treturn w2\n}\n\nfunc (f *freelist) free(v interface{}) {\n\tif len(f.list) < freelistMaxSize {\n\t\tf.list = append(f.list, v)\n\t}\n}\n\nfunc (w *freelistAllocator) Free(value interface{}) {\n\tswitch v := value.(type) {\n\tcase *valueUnstructured:\n\t\tv.Value = nil // don't hold references to unstructured objects\n\t\tw.valueUnstructured.free(v)\n\tcase *listUnstructuredRange:\n\t\tv.vv.Value = nil // don't hold references to unstructured objects\n\t\tw.listUnstructuredRange.free(v)\n\tcase *valueReflect:\n\t\tv.ParentMapKey = nil\n\t\tv.ParentMap = nil\n\t\tw.valueReflect.free(v)\n\tcase *mapReflect:\n\t\tw.mapReflect.free(v)\n\tcase *structReflect:\n\t\tw.structReflect.free(v)\n\tcase *listReflect:\n\t\tw.listReflect.free(v)\n\tcase *listReflectRange:\n\t\tv.vr.ParentMapKey = nil\n\t\tv.vr.ParentMap = nil\n\t\tw.listReflectRange.free(v)\n\t}\n}\n\nfunc (w *freelistAllocator) allocValueUnstructured() *valueUnstructured {\n\treturn w.valueUnstructured.allocate().(*valueUnstructured)\n}\n\nfunc (w *freelistAllocator) allocListUnstructuredRange() *listUnstructuredRange {\n\treturn w.listUnstructuredRange.allocate().(*listUnstructuredRange)\n}\n\nfunc (w *freelistAllocator) allocValueReflect() *valueReflect {\n\treturn w.valueReflect.allocate().(*valueReflect)\n}\n\nfunc (w *freelistAllocator) allocStructReflect() *structReflect {\n\treturn w.structReflect.allocate().(*structReflect)\n}\n\nfunc (w *freelistAllocator) allocMapReflect() *mapReflect {\n\treturn w.mapReflect.allocate().(*mapReflect)\n}\n\nfunc (w *freelistAllocator) allocListReflect() *listReflect {\n\treturn w.listReflect.allocate().(*listReflect)\n}\n\nfunc (w *freelistAllocator) allocListReflectRange() *listReflectRange {\n\treturn w.listReflectRange.allocate().(*listReflectRange)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package value defines types for an in-memory representation of yaml or json\n// objects, organized for convenient comparison with a schema (as defined by\n// the sibling schema package). Functions for reading and writing the objects\n// are also provided.\npackage value\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/fields.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\n// Field is an individual key-value pair.\ntype Field struct {\n\tName  string\n\tValue Value\n}\n\n// FieldList is a list of key-value pairs. Each field is expected to\n// have a different name.\ntype FieldList []Field\n\n// Sort sorts the field list by Name.\nfunc (f FieldList) Sort() {\n\tif len(f) < 2 {\n\t\treturn\n\t}\n\tif len(f) == 2 {\n\t\tif f[1].Name < f[0].Name {\n\t\t\tf[0], f[1] = f[1], f[0]\n\t\t}\n\t\treturn\n\t}\n\tsort.SliceStable(f, func(i, j int) bool {\n\t\treturn f[i].Name < f[j].Name\n\t})\n}\n\n// Less compares two lists lexically.\nfunc (f FieldList) Less(rhs FieldList) bool {\n\treturn f.Compare(rhs) == -1\n}\n\n// Compare compares two lists lexically. The result will be 0 if f==rhs, -1\n// if f < rhs, and +1 if f > rhs.\nfunc (f FieldList) Compare(rhs FieldList) int {\n\ti := 0\n\tfor {\n\t\tif i >= len(f) && i >= len(rhs) {\n\t\t\t// Maps are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif i >= len(f) {\n\t\t\t// F is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif i >= len(rhs) {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\tif c := strings.Compare(f[i].Name, rhs[i].Name); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\tif c := Compare(f[i].Value, rhs[i].Value); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t\ti++\n\t}\n}\n\n// Equals returns true if the two fieldslist are equals, false otherwise.\nfunc (f FieldList) Equals(rhs FieldList) bool {\n\tif len(f) != len(rhs) {\n\t\treturn false\n\t}\n\tfor i := range f {\n\t\tif f[i].Name != rhs[i].Name {\n\t\t\treturn false\n\t\t}\n\t\tif !Equals(f[i].Value, rhs[i].Value) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/jsontagutil.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// TODO: This implements the same functionality as https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/runtime/converter.go#L236\n// but is based on the highly efficient approach from https://golang.org/src/encoding/json/encode.go\n\nfunc lookupJsonTags(f reflect.StructField) (name string, omit bool, inline bool, omitempty bool) {\n\ttag := f.Tag.Get(\"json\")\n\tif tag == \"-\" {\n\t\treturn \"\", true, false, false\n\t}\n\tname, opts := parseTag(tag)\n\tif name == \"\" {\n\t\tname = f.Name\n\t}\n\treturn name, false, opts.Contains(\"inline\"), opts.Contains(\"omitempty\")\n}\n\nfunc isZero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Chan, reflect.Func:\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\t}\n\treturn false\n}\n\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/list.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// List represents a list object.\ntype List interface {\n\t// Length returns how many items can be found in the map.\n\tLength() int\n\t// At returns the item at the given position in the map. It will\n\t// panic if the index is out of range.\n\tAt(int) Value\n\t// AtUsing uses the provided allocator and returns the item at the given\n\t// position in the map. It will panic if the index is out of range.\n\t// The returned Value should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tAtUsing(Allocator, int) Value\n\t// Range returns a ListRange for iterating over the items in the list.\n\tRange() ListRange\n\t// RangeUsing uses the provided allocator and returns a ListRange for\n\t// iterating over the items in the list.\n\t// The returned Range should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tRangeUsing(Allocator) ListRange\n\t// Equals compares the two lists, and return true if they are the same, false otherwise.\n\t// Implementations can use ListEquals as a general implementation for this methods.\n\tEquals(List) bool\n\t// EqualsUsing uses the provided allocator and compares the two lists, and return true if\n\t// they are the same, false otherwise. Implementations can use ListEqualsUsing as a general\n\t// implementation for this methods.\n\tEqualsUsing(Allocator, List) bool\n}\n\n// ListRange represents a single iteration across the items of a list.\ntype ListRange interface {\n\t// Next increments to the next item in the range, if there is one, and returns true, or returns false if there are no more items.\n\tNext() bool\n\t// Item returns the index and value of the current item in the range. or panics if there is no current item.\n\t// For efficiency, Item may reuse the values returned by previous Item calls. Callers should be careful avoid holding\n\t// pointers to the value returned by Item() that escape the iteration loop since they become invalid once either\n\t// Item() or Allocator.Free() is called.\n\tItem() (index int, value Value)\n}\n\nvar EmptyRange = &emptyRange{}\n\ntype emptyRange struct{}\n\nfunc (_ *emptyRange) Next() bool {\n\treturn false\n}\n\nfunc (_ *emptyRange) Item() (index int, value Value) {\n\tpanic(\"Item called on empty ListRange\")\n}\n\n// ListEquals compares two lists lexically.\n// WARN: This is a naive implementation, calling lhs.Equals(rhs) is typically the most efficient.\nfunc ListEquals(lhs, rhs List) bool {\n\treturn ListEqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// ListEqualsUsing uses the provided allocator and compares two lists lexically.\n// WARN: This is a naive implementation, calling lhs.EqualsUsing(allocator, rhs) is typically the most efficient.\nfunc ListEqualsUsing(a Allocator, lhs, rhs List) bool {\n\tif lhs.Length() != rhs.Length() {\n\t\treturn false\n\t}\n\n\tlhsRange := lhs.RangeUsing(a)\n\tdefer a.Free(lhsRange)\n\trhsRange := rhs.RangeUsing(a)\n\tdefer a.Free(rhsRange)\n\n\tfor lhsRange.Next() && rhsRange.Next() {\n\t\t_, lv := lhsRange.Item()\n\t\t_, rv := rhsRange.Item()\n\t\tif !EqualsUsing(a, lv, rv) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ListLess compares two lists lexically.\nfunc ListLess(lhs, rhs List) bool {\n\treturn ListCompare(lhs, rhs) == -1\n}\n\n// ListCompare compares two lists lexically. The result will be 0 if l==rhs, -1\n// if l < rhs, and +1 if l > rhs.\nfunc ListCompare(lhs, rhs List) int {\n\treturn ListCompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// ListCompareUsing uses the provided allocator and compares two lists lexically. The result will be 0 if l==rhs, -1\n// if l < rhs, and +1 if l > rhs.\nfunc ListCompareUsing(a Allocator, lhs, rhs List) int {\n\tlhsRange := lhs.RangeUsing(a)\n\tdefer a.Free(lhsRange)\n\trhsRange := rhs.RangeUsing(a)\n\tdefer a.Free(rhsRange)\n\n\tfor {\n\t\tlhsOk := lhsRange.Next()\n\t\trhsOk := rhsRange.Next()\n\t\tif !lhsOk && !rhsOk {\n\t\t\t// Lists are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif !lhsOk {\n\t\t\t// LHS is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif !rhsOk {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\t_, lv := lhsRange.Item()\n\t\t_, rv := rhsRange.Item()\n\t\tif c := CompareUsing(a, lv, rv); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/listreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"reflect\"\n)\n\ntype listReflect struct {\n\tValue reflect.Value\n}\n\nfunc (r listReflect) Length() int {\n\tval := r.Value\n\treturn val.Len()\n}\n\nfunc (r listReflect) At(i int) Value {\n\tval := r.Value\n\treturn mustWrapValueReflect(val.Index(i), nil, nil)\n}\n\nfunc (r listReflect) AtUsing(a Allocator, i int) Value {\n\tval := r.Value\n\treturn a.allocValueReflect().mustReuse(val.Index(i), nil, nil, nil)\n}\n\nfunc (r listReflect) Unstructured() interface{} {\n\tl := r.Length()\n\tresult := make([]interface{}, l)\n\tfor i := 0; i < l; i++ {\n\t\tresult[i] = r.At(i).Unstructured()\n\t}\n\treturn result\n}\n\nfunc (r listReflect) Range() ListRange {\n\treturn r.RangeUsing(HeapAllocator)\n}\n\nfunc (r listReflect) RangeUsing(a Allocator) ListRange {\n\tlength := r.Value.Len()\n\tif length == 0 {\n\t\treturn EmptyRange\n\t}\n\trr := a.allocListReflectRange()\n\trr.list = r.Value\n\trr.i = -1\n\trr.entry = TypeReflectEntryOf(r.Value.Type().Elem())\n\treturn rr\n}\n\nfunc (r listReflect) Equals(other List) bool {\n\treturn r.EqualsUsing(HeapAllocator, other)\n}\nfunc (r listReflect) EqualsUsing(a Allocator, other List) bool {\n\tif otherReflectList, ok := other.(*listReflect); ok {\n\t\treturn reflect.DeepEqual(r.Value.Interface(), otherReflectList.Value.Interface())\n\t}\n\treturn ListEqualsUsing(a, &r, other)\n}\n\ntype listReflectRange struct {\n\tlist  reflect.Value\n\tvr    *valueReflect\n\ti     int\n\tentry *TypeReflectCacheEntry\n}\n\nfunc (r *listReflectRange) Next() bool {\n\tr.i += 1\n\treturn r.i < r.list.Len()\n}\n\nfunc (r *listReflectRange) Item() (index int, value Value) {\n\tif r.i < 0 {\n\t\tpanic(\"Item() called before first calling Next()\")\n\t}\n\tif r.i >= r.list.Len() {\n\t\tpanic(\"Item() called on ListRange with no more items\")\n\t}\n\tv := r.list.Index(r.i)\n\treturn r.i, r.vr.mustReuse(v, r.entry, nil, nil)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/listunstructured.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\ntype listUnstructured []interface{}\n\nfunc (l listUnstructured) Length() int {\n\treturn len(l)\n}\n\nfunc (l listUnstructured) At(i int) Value {\n\treturn NewValueInterface(l[i])\n}\n\nfunc (l listUnstructured) AtUsing(a Allocator, i int) Value {\n\treturn a.allocValueUnstructured().reuse(l[i])\n}\n\nfunc (l listUnstructured) Equals(other List) bool {\n\treturn l.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (l listUnstructured) EqualsUsing(a Allocator, other List) bool {\n\treturn ListEqualsUsing(a, &l, other)\n}\n\nfunc (l listUnstructured) Range() ListRange {\n\treturn l.RangeUsing(HeapAllocator)\n}\n\nfunc (l listUnstructured) RangeUsing(a Allocator) ListRange {\n\tif len(l) == 0 {\n\t\treturn EmptyRange\n\t}\n\tr := a.allocListUnstructuredRange()\n\tr.list = l\n\tr.i = -1\n\treturn r\n}\n\ntype listUnstructuredRange struct {\n\tlist listUnstructured\n\tvv   *valueUnstructured\n\ti    int\n}\n\nfunc (r *listUnstructuredRange) Next() bool {\n\tr.i += 1\n\treturn r.i < len(r.list)\n}\n\nfunc (r *listUnstructuredRange) Item() (index int, value Value) {\n\tif r.i < 0 {\n\t\tpanic(\"Item() called before first calling Next()\")\n\t}\n\tif r.i >= len(r.list) {\n\t\tpanic(\"Item() called on ListRange with no more items\")\n\t}\n\treturn r.i, r.vv.reuse(r.list[r.i])\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/map.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"sort\"\n)\n\n// Map represents a Map or go structure.\ntype Map interface {\n\t// Set changes or set the value of the given key.\n\tSet(key string, val Value)\n\t// Get returns the value for the given key, if present, or (nil, false) otherwise.\n\tGet(key string) (Value, bool)\n\t// GetUsing uses the provided allocator and returns the value for the given key,\n\t// if present, or (nil, false) otherwise.\n\t// The returned Value should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tGetUsing(a Allocator, key string) (Value, bool)\n\t// Has returns true if the key is present, or false otherwise.\n\tHas(key string) bool\n\t// Delete removes the key from the map.\n\tDelete(key string)\n\t// Equals compares the two maps, and return true if they are the same, false otherwise.\n\t// Implementations can use MapEquals as a general implementation for this methods.\n\tEquals(other Map) bool\n\t// EqualsUsing uses the provided allocator and compares the two maps, and return true if\n\t// they are the same, false otherwise. Implementations can use MapEqualsUsing as a general\n\t// implementation for this methods.\n\tEqualsUsing(a Allocator, other Map) bool\n\t// Iterate runs the given function for each key/value in the\n\t// map. Returning false in the closure prematurely stops the\n\t// iteration.\n\tIterate(func(key string, value Value) bool) bool\n\t// IterateUsing uses the provided allocator and runs the given function for each key/value\n\t// in the map. Returning false in the closure prematurely stops the iteration.\n\tIterateUsing(Allocator, func(key string, value Value) bool) bool\n\t// Length returns the number of items in the map.\n\tLength() int\n\t// Empty returns true if the map is empty.\n\tEmpty() bool\n\t// Zip iterates over the entries of two maps together. If both maps contain a value for a given key, fn is called\n\t// with the values from both maps, otherwise it is called with the value of the map that contains the key and nil\n\t// for the map that does not contain the key. Returning false in the closure prematurely stops the iteration.\n\tZip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool\n\t// ZipUsing uses the provided allocator and iterates over the entries of two maps together. If both maps\n\t// contain a value for a given key, fn is called with the values from both maps, otherwise it is called with\n\t// the value of the map that contains the key and nil for the map that does not contain the key. Returning\n\t// false in the closure prematurely stops the iteration.\n\tZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool\n}\n\n// MapTraverseOrder defines the map traversal ordering available.\ntype MapTraverseOrder int\n\nconst (\n\t// Unordered indicates that the map traversal has no ordering requirement.\n\tUnordered = iota\n\t// LexicalKeyOrder indicates that the map traversal is ordered by key, lexically.\n\tLexicalKeyOrder\n)\n\n// MapZip iterates over the entries of two maps together. If both maps contain a value for a given key, fn is called\n// with the values from both maps, otherwise it is called with the value of the map that contains the key and nil\n// for the other map. Returning false in the closure prematurely stops the iteration.\nfunc MapZip(lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn MapZipUsing(HeapAllocator, lhs, rhs, order, fn)\n}\n\n// MapZipUsing uses the provided allocator and iterates over the entries of two maps together. If both maps\n// contain a value for a given key, fn is called with the values from both maps, otherwise it is called with\n// the value of the map that contains the key and nil for the other map. Returning false in the closure\n// prematurely stops the iteration.\nfunc MapZipUsing(a Allocator, lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif lhs != nil {\n\t\treturn lhs.ZipUsing(a, rhs, order, fn)\n\t}\n\tif rhs != nil {\n\t\treturn rhs.ZipUsing(a, lhs, order, func(key string, rhs, lhs Value) bool { // arg positions of lhs and rhs deliberately swapped\n\t\t\treturn fn(key, lhs, rhs)\n\t\t})\n\t}\n\treturn true\n}\n\n// defaultMapZip provides a default implementation of Zip for implementations that do not need to provide\n// their own optimized implementation.\nfunc defaultMapZip(a Allocator, lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tswitch order {\n\tcase Unordered:\n\t\treturn unorderedMapZip(a, lhs, rhs, fn)\n\tcase LexicalKeyOrder:\n\t\treturn lexicalKeyOrderedMapZip(a, lhs, rhs, fn)\n\tdefault:\n\t\tpanic(\"Unsupported map order\")\n\t}\n}\n\nfunc unorderedMapZip(a Allocator, lhs, rhs Map, fn func(key string, lhs, rhs Value) bool) bool {\n\tif (lhs == nil || lhs.Empty()) && (rhs == nil || rhs.Empty()) {\n\t\treturn true\n\t}\n\n\tif lhs != nil {\n\t\tok := lhs.IterateUsing(a, func(key string, lhsValue Value) bool {\n\t\t\tvar rhsValue Value\n\t\t\tif rhs != nil {\n\t\t\t\tif item, ok := rhs.GetUsing(a, key); ok {\n\t\t\t\t\trhsValue = item\n\t\t\t\t\tdefer a.Free(rhsValue)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn fn(key, lhsValue, rhsValue)\n\t\t})\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\tif rhs != nil {\n\t\treturn rhs.IterateUsing(a, func(key string, rhsValue Value) bool {\n\t\t\tif lhs == nil || !lhs.Has(key) {\n\t\t\t\treturn fn(key, nil, rhsValue)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\treturn true\n}\n\nfunc lexicalKeyOrderedMapZip(a Allocator, lhs, rhs Map, fn func(key string, lhs, rhs Value) bool) bool {\n\tvar lhsLength, rhsLength int\n\tvar orderedLength int // rough estimate of length of union of map keys\n\tif lhs != nil {\n\t\tlhsLength = lhs.Length()\n\t\torderedLength = lhsLength\n\t}\n\tif rhs != nil {\n\t\trhsLength = rhs.Length()\n\t\tif rhsLength > orderedLength {\n\t\t\torderedLength = rhsLength\n\t\t}\n\t}\n\tif lhsLength == 0 && rhsLength == 0 {\n\t\treturn true\n\t}\n\n\tordered := make([]string, 0, orderedLength)\n\tif lhs != nil {\n\t\tlhs.IterateUsing(a, func(key string, _ Value) bool {\n\t\t\tordered = append(ordered, key)\n\t\t\treturn true\n\t\t})\n\t}\n\tif rhs != nil {\n\t\trhs.IterateUsing(a, func(key string, _ Value) bool {\n\t\t\tif lhs == nil || !lhs.Has(key) {\n\t\t\t\tordered = append(ordered, key)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\tsort.Strings(ordered)\n\tfor _, key := range ordered {\n\t\tvar litem, ritem Value\n\t\tif lhs != nil {\n\t\t\tlitem, _ = lhs.GetUsing(a, key)\n\t\t}\n\t\tif rhs != nil {\n\t\t\tritem, _ = rhs.GetUsing(a, key)\n\t\t}\n\t\tok := fn(key, litem, ritem)\n\t\tif litem != nil {\n\t\t\ta.Free(litem)\n\t\t}\n\t\tif ritem != nil {\n\t\t\ta.Free(ritem)\n\t\t}\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// MapLess compares two maps lexically.\nfunc MapLess(lhs, rhs Map) bool {\n\treturn MapCompare(lhs, rhs) == -1\n}\n\n// MapCompare compares two maps lexically.\nfunc MapCompare(lhs, rhs Map) int {\n\treturn MapCompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// MapCompareUsing uses the provided allocator and compares two maps lexically.\nfunc MapCompareUsing(a Allocator, lhs, rhs Map) int {\n\tc := 0\n\tvar llength, rlength int\n\tif lhs != nil {\n\t\tllength = lhs.Length()\n\t}\n\tif rhs != nil {\n\t\trlength = rhs.Length()\n\t}\n\tif llength == 0 && rlength == 0 {\n\t\treturn 0\n\t}\n\ti := 0\n\tMapZipUsing(a, lhs, rhs, LexicalKeyOrder, func(key string, lhs, rhs Value) bool {\n\t\tswitch {\n\t\tcase i == llength:\n\t\t\tc = -1\n\t\tcase i == rlength:\n\t\t\tc = 1\n\t\tcase lhs == nil:\n\t\t\tc = 1\n\t\tcase rhs == nil:\n\t\t\tc = -1\n\t\tdefault:\n\t\t\tc = CompareUsing(a, lhs, rhs)\n\t\t}\n\t\ti++\n\t\treturn c == 0\n\t})\n\treturn c\n}\n\n// MapEquals returns true if lhs == rhs, false otherwise. This function\n// acts on generic types and should not be used by callers, but can help\n// implement Map.Equals.\n// WARN: This is a naive implementation, calling lhs.Equals(rhs) is typically the most efficient.\nfunc MapEquals(lhs, rhs Map) bool {\n\treturn MapEqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// MapEqualsUsing uses the provided allocator and returns true if lhs == rhs,\n// false otherwise. This function acts on generic types and should not be used\n// by callers, but can help implement Map.Equals.\n// WARN: This is a naive implementation, calling lhs.EqualsUsing(allocator, rhs) is typically the most efficient.\nfunc MapEqualsUsing(a Allocator, lhs, rhs Map) bool {\n\tif lhs == nil && rhs == nil {\n\t\treturn true\n\t}\n\tif lhs == nil || rhs == nil {\n\t\treturn false\n\t}\n\tif lhs.Length() != rhs.Length() {\n\t\treturn false\n\t}\n\treturn MapZipUsing(a, lhs, rhs, Unordered, func(key string, lhs, rhs Value) bool {\n\t\tif lhs == nil || rhs == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn EqualsUsing(a, lhs, rhs)\n\t})\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/mapreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"reflect\"\n)\n\ntype mapReflect struct {\n\tvalueReflect\n}\n\nfunc (r mapReflect) Length() int {\n\tval := r.Value\n\treturn val.Len()\n}\n\nfunc (r mapReflect) Empty() bool {\n\tval := r.Value\n\treturn val.Len() == 0\n}\n\nfunc (r mapReflect) Get(key string) (Value, bool) {\n\treturn r.GetUsing(HeapAllocator, key)\n}\n\nfunc (r mapReflect) GetUsing(a Allocator, key string) (Value, bool) {\n\tk, v, ok := r.get(key)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn a.allocValueReflect().mustReuse(v, nil, &r.Value, &k), true\n}\n\nfunc (r mapReflect) get(k string) (key, value reflect.Value, ok bool) {\n\tmapKey := r.toMapKey(k)\n\tval := r.Value.MapIndex(mapKey)\n\treturn mapKey, val, val.IsValid() && val != reflect.Value{}\n}\n\nfunc (r mapReflect) Has(key string) bool {\n\tvar val reflect.Value\n\tval = r.Value.MapIndex(r.toMapKey(key))\n\tif !val.IsValid() {\n\t\treturn false\n\t}\n\treturn val != reflect.Value{}\n}\n\nfunc (r mapReflect) Set(key string, val Value) {\n\tr.Value.SetMapIndex(r.toMapKey(key), reflect.ValueOf(val.Unstructured()))\n}\n\nfunc (r mapReflect) Delete(key string) {\n\tval := r.Value\n\tval.SetMapIndex(r.toMapKey(key), reflect.Value{})\n}\n\n// TODO: Do we need to support types that implement json.Marshaler and are used as string keys?\nfunc (r mapReflect) toMapKey(key string) reflect.Value {\n\tval := r.Value\n\treturn reflect.ValueOf(key).Convert(val.Type().Key())\n}\n\nfunc (r mapReflect) Iterate(fn func(string, Value) bool) bool {\n\treturn r.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (r mapReflect) IterateUsing(a Allocator, fn func(string, Value) bool) bool {\n\tif r.Value.Len() == 0 {\n\t\treturn true\n\t}\n\tv := a.allocValueReflect()\n\tdefer a.Free(v)\n\treturn eachMapEntry(r.Value, func(e *TypeReflectCacheEntry, key reflect.Value, value reflect.Value) bool {\n\t\treturn fn(key.String(), v.mustReuse(value, e, &r.Value, &key))\n\t})\n}\n\nfunc eachMapEntry(val reflect.Value, fn func(*TypeReflectCacheEntry, reflect.Value, reflect.Value) bool) bool {\n\titer := val.MapRange()\n\tentry := TypeReflectEntryOf(val.Type().Elem())\n\tfor iter.Next() {\n\t\tnext := iter.Value()\n\t\tif !next.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif !fn(entry, iter.Key(), next) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (r mapReflect) Unstructured() interface{} {\n\tresult := make(map[string]interface{}, r.Length())\n\tr.Iterate(func(s string, value Value) bool {\n\t\tresult[s] = value.Unstructured()\n\t\treturn true\n\t})\n\treturn result\n}\n\nfunc (r mapReflect) Equals(m Map) bool {\n\treturn r.EqualsUsing(HeapAllocator, m)\n}\n\nfunc (r mapReflect) EqualsUsing(a Allocator, m Map) bool {\n\tlhsLength := r.Length()\n\trhsLength := m.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvr := a.allocValueReflect()\n\tdefer a.Free(vr)\n\tentry := TypeReflectEntryOf(r.Value.Type().Elem())\n\treturn m.Iterate(func(key string, value Value) bool {\n\t\t_, lhsVal, ok := r.get(key)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn Equals(vr.mustReuse(lhsVal, entry, nil, nil), value)\n\t})\n}\n\nfunc (r mapReflect) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn r.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (r mapReflect) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif otherMapReflect, ok := other.(*mapReflect); ok && order == Unordered {\n\t\treturn r.unorderedReflectZip(a, otherMapReflect, fn)\n\t}\n\treturn defaultMapZip(a, &r, other, order, fn)\n}\n\n// unorderedReflectZip provides an optimized unordered zip for mapReflect types.\nfunc (r mapReflect) unorderedReflectZip(a Allocator, other *mapReflect, fn func(key string, lhs, rhs Value) bool) bool {\n\tif r.Empty() && (other == nil || other.Empty()) {\n\t\treturn true\n\t}\n\n\tlhs := r.Value\n\tlhsEntry := TypeReflectEntryOf(lhs.Type().Elem())\n\n\t// map lookup via reflection is expensive enough that it is better to keep track of visited keys\n\tvisited := map[string]struct{}{}\n\n\tvlhs, vrhs := a.allocValueReflect(), a.allocValueReflect()\n\tdefer a.Free(vlhs)\n\tdefer a.Free(vrhs)\n\n\tif other != nil {\n\t\trhs := other.Value\n\t\trhsEntry := TypeReflectEntryOf(rhs.Type().Elem())\n\t\titer := rhs.MapRange()\n\n\t\tfor iter.Next() {\n\t\t\tkey := iter.Key()\n\t\t\tkeyString := key.String()\n\t\t\tnext := iter.Value()\n\t\t\tif !next.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\trhsVal := vrhs.mustReuse(next, rhsEntry, &rhs, &key)\n\t\t\tvisited[keyString] = struct{}{}\n\t\t\tvar lhsVal Value\n\t\t\tif _, v, ok := r.get(keyString); ok {\n\t\t\t\tlhsVal = vlhs.mustReuse(v, lhsEntry, &lhs, &key)\n\t\t\t}\n\t\t\tif !fn(keyString, lhsVal, rhsVal) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\titer := lhs.MapRange()\n\tfor iter.Next() {\n\t\tkey := iter.Key()\n\t\tif _, ok := visited[key.String()]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tnext := iter.Value()\n\t\tif !next.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif !fn(key.String(), vlhs.mustReuse(next, lhsEntry, &lhs, &key), nil) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/mapunstructured.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\ntype mapUnstructuredInterface map[interface{}]interface{}\n\nfunc (m mapUnstructuredInterface) Set(key string, val Value) {\n\tm[key] = val.Unstructured()\n}\n\nfunc (m mapUnstructuredInterface) Get(key string) (Value, bool) {\n\treturn m.GetUsing(HeapAllocator, key)\n}\n\nfunc (m mapUnstructuredInterface) GetUsing(a Allocator, key string) (Value, bool) {\n\tif v, ok := m[key]; !ok {\n\t\treturn nil, false\n\t} else {\n\t\treturn a.allocValueUnstructured().reuse(v), true\n\t}\n}\n\nfunc (m mapUnstructuredInterface) Has(key string) bool {\n\t_, ok := m[key]\n\treturn ok\n}\n\nfunc (m mapUnstructuredInterface) Delete(key string) {\n\tdelete(m, key)\n}\n\nfunc (m mapUnstructuredInterface) Iterate(fn func(key string, value Value) bool) bool {\n\treturn m.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (m mapUnstructuredInterface) IterateUsing(a Allocator, fn func(key string, value Value) bool) bool {\n\tif len(m) == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\tfor k, v := range m {\n\t\tif ks, ok := k.(string); !ok {\n\t\t\tcontinue\n\t\t} else {\n\t\t\tif !fn(ks, vv.reuse(v)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (m mapUnstructuredInterface) Length() int {\n\treturn len(m)\n}\n\nfunc (m mapUnstructuredInterface) Empty() bool {\n\treturn len(m) == 0\n}\n\nfunc (m mapUnstructuredInterface) Equals(other Map) bool {\n\treturn m.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (m mapUnstructuredInterface) EqualsUsing(a Allocator, other Map) bool {\n\tlhsLength := m.Length()\n\trhsLength := other.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\treturn other.Iterate(func(key string, value Value) bool {\n\t\tlhsVal, ok := m[key]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn Equals(vv.reuse(lhsVal), value)\n\t})\n}\n\nfunc (m mapUnstructuredInterface) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn m.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (m mapUnstructuredInterface) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn defaultMapZip(a, m, other, order, fn)\n}\n\ntype mapUnstructuredString map[string]interface{}\n\nfunc (m mapUnstructuredString) Set(key string, val Value) {\n\tm[key] = val.Unstructured()\n}\n\nfunc (m mapUnstructuredString) Get(key string) (Value, bool) {\n\treturn m.GetUsing(HeapAllocator, key)\n}\nfunc (m mapUnstructuredString) GetUsing(a Allocator, key string) (Value, bool) {\n\tif v, ok := m[key]; !ok {\n\t\treturn nil, false\n\t} else {\n\t\treturn a.allocValueUnstructured().reuse(v), true\n\t}\n}\n\nfunc (m mapUnstructuredString) Has(key string) bool {\n\t_, ok := m[key]\n\treturn ok\n}\n\nfunc (m mapUnstructuredString) Delete(key string) {\n\tdelete(m, key)\n}\n\nfunc (m mapUnstructuredString) Iterate(fn func(key string, value Value) bool) bool {\n\treturn m.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (m mapUnstructuredString) IterateUsing(a Allocator, fn func(key string, value Value) bool) bool {\n\tif len(m) == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\tfor k, v := range m {\n\t\tif !fn(k, vv.reuse(v)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (m mapUnstructuredString) Length() int {\n\treturn len(m)\n}\n\nfunc (m mapUnstructuredString) Equals(other Map) bool {\n\treturn m.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (m mapUnstructuredString) EqualsUsing(a Allocator, other Map) bool {\n\tlhsLength := m.Length()\n\trhsLength := other.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\treturn other.Iterate(func(key string, value Value) bool {\n\t\tlhsVal, ok := m[key]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn Equals(vv.reuse(lhsVal), value)\n\t})\n}\n\nfunc (m mapUnstructuredString) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn m.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (m mapUnstructuredString) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn defaultMapZip(a, m, other, order, fn)\n}\n\nfunc (m mapUnstructuredString) Empty() bool {\n\treturn len(m) == 0\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// UnstructuredConverter defines how a type can be converted directly to unstructured.\n// Types that implement json.Marshaler may also optionally implement this interface to provide a more\n// direct and more efficient conversion. All types that choose to implement this interface must still\n// implement this same conversion via json.Marshaler.\ntype UnstructuredConverter interface {\n\tjson.Marshaler // require that json.Marshaler is implemented\n\n\t// ToUnstructured returns the unstructured representation.\n\tToUnstructured() interface{}\n}\n\n// TypeReflectCacheEntry keeps data gathered using reflection about how a type is converted to/from unstructured.\ntype TypeReflectCacheEntry struct {\n\tisJsonMarshaler        bool\n\tptrIsJsonMarshaler     bool\n\tisJsonUnmarshaler      bool\n\tptrIsJsonUnmarshaler   bool\n\tisStringConvertable    bool\n\tptrIsStringConvertable bool\n\n\tstructFields        map[string]*FieldCacheEntry\n\torderedStructFields []*FieldCacheEntry\n}\n\n// FieldCacheEntry keeps data gathered using reflection about how the field of a struct is converted to/from\n// unstructured.\ntype FieldCacheEntry struct {\n\t// JsonName returns the name of the field according to the json tags on the struct field.\n\tJsonName string\n\t// isOmitEmpty is true if the field has the json 'omitempty' tag.\n\tisOmitEmpty bool\n\t// fieldPath is a list of field indices (see FieldByIndex) to lookup the value of\n\t// a field in a reflect.Value struct. The field indices in the list form a path used\n\t// to traverse through intermediary 'inline' fields.\n\tfieldPath [][]int\n\n\tfieldType reflect.Type\n\tTypeEntry *TypeReflectCacheEntry\n}\n\nfunc (f *FieldCacheEntry) CanOmit(fieldVal reflect.Value) bool {\n\treturn f.isOmitEmpty && (safeIsNil(fieldVal) || isZero(fieldVal))\n}\n\n// GetFrom returns the field identified by this FieldCacheEntry from the provided struct.\nfunc (f *FieldCacheEntry) GetFrom(structVal reflect.Value) reflect.Value {\n\t// field might be nested within 'inline' structs\n\tfor _, elem := range f.fieldPath {\n\t\tstructVal = dereference(structVal).FieldByIndex(elem)\n\t}\n\treturn structVal\n}\n\nvar marshalerType = reflect.TypeOf(new(json.Marshaler)).Elem()\nvar unmarshalerType = reflect.TypeOf(new(json.Unmarshaler)).Elem()\nvar unstructuredConvertableType = reflect.TypeOf(new(UnstructuredConverter)).Elem()\nvar defaultReflectCache = newReflectCache()\n\n// TypeReflectEntryOf returns the TypeReflectCacheEntry of the provided reflect.Type.\nfunc TypeReflectEntryOf(t reflect.Type) *TypeReflectCacheEntry {\n\tcm := defaultReflectCache.get()\n\tif record, ok := cm[t]; ok {\n\t\treturn record\n\t}\n\tupdates := reflectCacheMap{}\n\tresult := typeReflectEntryOf(cm, t, updates)\n\tif len(updates) > 0 {\n\t\tdefaultReflectCache.update(updates)\n\t}\n\treturn result\n}\n\n// TypeReflectEntryOf returns all updates needed to add provided reflect.Type, and the types its fields transitively\n// depend on, to the cache.\nfunc typeReflectEntryOf(cm reflectCacheMap, t reflect.Type, updates reflectCacheMap) *TypeReflectCacheEntry {\n\tif record, ok := cm[t]; ok {\n\t\treturn record\n\t}\n\tif record, ok := updates[t]; ok {\n\t\treturn record\n\t}\n\ttypeEntry := &TypeReflectCacheEntry{\n\t\tisJsonMarshaler:        t.Implements(marshalerType),\n\t\tptrIsJsonMarshaler:     reflect.PtrTo(t).Implements(marshalerType),\n\t\tisJsonUnmarshaler:      reflect.PtrTo(t).Implements(unmarshalerType),\n\t\tisStringConvertable:    t.Implements(unstructuredConvertableType),\n\t\tptrIsStringConvertable: reflect.PtrTo(t).Implements(unstructuredConvertableType),\n\t}\n\tif t.Kind() == reflect.Struct {\n\t\tfieldEntries := map[string]*FieldCacheEntry{}\n\t\tbuildStructCacheEntry(t, fieldEntries, nil)\n\t\ttypeEntry.structFields = fieldEntries\n\t\tsortedByJsonName := make([]*FieldCacheEntry, len(fieldEntries))\n\t\ti := 0\n\t\tfor _, entry := range fieldEntries {\n\t\t\tsortedByJsonName[i] = entry\n\t\t\ti++\n\t\t}\n\t\tsort.Slice(sortedByJsonName, func(i, j int) bool {\n\t\t\treturn sortedByJsonName[i].JsonName < sortedByJsonName[j].JsonName\n\t\t})\n\t\ttypeEntry.orderedStructFields = sortedByJsonName\n\t}\n\n\t// cyclic type references are allowed, so we must add the typeEntry to the updates map before resolving\n\t// the field.typeEntry references, or creating them if they are not already in the cache\n\tupdates[t] = typeEntry\n\n\tfor _, field := range typeEntry.structFields {\n\t\tif field.TypeEntry == nil {\n\t\t\tfield.TypeEntry = typeReflectEntryOf(cm, field.fieldType, updates)\n\t\t}\n\t}\n\treturn typeEntry\n}\n\nfunc buildStructCacheEntry(t reflect.Type, infos map[string]*FieldCacheEntry, fieldPath [][]int) {\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tfield := t.Field(i)\n\t\tjsonName, omit, isInline, isOmitempty := lookupJsonTags(field)\n\t\tif omit {\n\t\t\tcontinue\n\t\t}\n\t\tif isInline {\n\t\t\te := field.Type\n\t\t\tif field.Type.Kind() == reflect.Ptr {\n\t\t\t\te = field.Type.Elem()\n\t\t\t}\n\t\t\tbuildStructCacheEntry(e, infos, append(fieldPath, field.Index))\n\t\t\tcontinue\n\t\t}\n\t\tinfo := &FieldCacheEntry{JsonName: jsonName, isOmitEmpty: isOmitempty, fieldPath: append(fieldPath, field.Index), fieldType: field.Type}\n\t\tinfos[jsonName] = info\n\t}\n}\n\n// Fields returns a map of JSON field name to FieldCacheEntry for structs, or nil for non-structs.\nfunc (e TypeReflectCacheEntry) Fields() map[string]*FieldCacheEntry {\n\treturn e.structFields\n}\n\n// Fields returns a map of JSON field name to FieldCacheEntry for structs, or nil for non-structs.\nfunc (e TypeReflectCacheEntry) OrderedFields() []*FieldCacheEntry {\n\treturn e.orderedStructFields\n}\n\n// CanConvertToUnstructured returns true if this TypeReflectCacheEntry can convert values of its type to unstructured.\nfunc (e TypeReflectCacheEntry) CanConvertToUnstructured() bool {\n\treturn e.isJsonMarshaler || e.ptrIsJsonMarshaler || e.isStringConvertable || e.ptrIsStringConvertable\n}\n\n// ToUnstructured converts the provided value to unstructured and returns it.\nfunc (e TypeReflectCacheEntry) ToUnstructured(sv reflect.Value) (interface{}, error) {\n\t// This is based on https://github.com/kubernetes/kubernetes/blob/82c9e5c814eb7acc6cc0a090c057294d0667ad66/staging/src/k8s.io/apimachinery/pkg/runtime/converter.go#L505\n\t// and is intended to replace it.\n\n\t// Check if the object has a custom string converter and use it if available, since it is much more efficient\n\t// than round tripping through json.\n\tif converter, ok := e.getUnstructuredConverter(sv); ok {\n\t\treturn converter.ToUnstructured(), nil\n\t}\n\t// Check if the object has a custom JSON marshaller/unmarshaller.\n\tif marshaler, ok := e.getJsonMarshaler(sv); ok {\n\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t// We're done - we don't need to store anything.\n\t\t\treturn nil, nil\n\t\t}\n\n\t\tdata, err := marshaler.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch {\n\t\tcase len(data) == 0:\n\t\t\treturn nil, fmt.Errorf(\"error decoding from json: empty value\")\n\n\t\tcase bytes.Equal(data, nullBytes):\n\t\t\t// We're done - we don't need to store anything.\n\t\t\treturn nil, nil\n\n\t\tcase bytes.Equal(data, trueBytes):\n\t\t\treturn true, nil\n\n\t\tcase bytes.Equal(data, falseBytes):\n\t\t\treturn false, nil\n\n\t\tcase data[0] == '\"':\n\t\t\tvar result string\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding string from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tcase data[0] == '{':\n\t\t\tresult := make(map[string]interface{})\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding object from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tcase data[0] == '[':\n\t\t\tresult := make([]interface{}, 0)\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding array from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tdefault:\n\t\t\tvar (\n\t\t\t\tresultInt   int64\n\t\t\t\tresultFloat float64\n\t\t\t\terr         error\n\t\t\t)\n\t\t\tif err = unmarshal(data, &resultInt); err == nil {\n\t\t\t\treturn resultInt, nil\n\t\t\t} else if err = unmarshal(data, &resultFloat); err == nil {\n\t\t\t\treturn resultFloat, nil\n\t\t\t} else {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding number from json: %v\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"provided type cannot be converted: %v\", sv.Type())\n}\n\n// CanConvertFromUnstructured returns true if this TypeReflectCacheEntry can convert objects of the type from unstructured.\nfunc (e TypeReflectCacheEntry) CanConvertFromUnstructured() bool {\n\treturn e.isJsonUnmarshaler\n}\n\n// FromUnstructured converts the provided source value from unstructured into the provided destination value.\nfunc (e TypeReflectCacheEntry) FromUnstructured(sv, dv reflect.Value) error {\n\t// TODO: this could be made much more efficient using direct conversions like\n\t// UnstructuredConverter.ToUnstructured provides.\n\tst := dv.Type()\n\tdata, err := json.Marshal(sv.Interface())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error encoding %s to json: %v\", st.String(), err)\n\t}\n\tif unmarshaler, ok := e.getJsonUnmarshaler(dv); ok {\n\t\treturn unmarshaler.UnmarshalJSON(data)\n\t}\n\treturn fmt.Errorf(\"unable to unmarshal %v into %v\", sv.Type(), dv.Type())\n}\n\nvar (\n\tnullBytes  = []byte(\"null\")\n\ttrueBytes  = []byte(\"true\")\n\tfalseBytes = []byte(\"false\")\n)\n\nfunc (e TypeReflectCacheEntry) getJsonMarshaler(v reflect.Value) (json.Marshaler, bool) {\n\tif e.isJsonMarshaler {\n\t\treturn v.Interface().(json.Marshaler), true\n\t}\n\tif e.ptrIsJsonMarshaler {\n\t\t// Check pointer receivers if v is not a pointer\n\t\tif v.Kind() != reflect.Ptr && v.CanAddr() {\n\t\t\tv = v.Addr()\n\t\t\treturn v.Interface().(json.Marshaler), true\n\t\t}\n\t}\n\treturn nil, false\n}\n\nfunc (e TypeReflectCacheEntry) getJsonUnmarshaler(v reflect.Value) (json.Unmarshaler, bool) {\n\tif !e.isJsonUnmarshaler {\n\t\treturn nil, false\n\t}\n\treturn v.Addr().Interface().(json.Unmarshaler), true\n}\n\nfunc (e TypeReflectCacheEntry) getUnstructuredConverter(v reflect.Value) (UnstructuredConverter, bool) {\n\tif e.isStringConvertable {\n\t\treturn v.Interface().(UnstructuredConverter), true\n\t}\n\tif e.ptrIsStringConvertable {\n\t\t// Check pointer receivers if v is not a pointer\n\t\tif v.CanAddr() {\n\t\t\tv = v.Addr()\n\t\t\treturn v.Interface().(UnstructuredConverter), true\n\t\t}\n\t}\n\treturn nil, false\n}\n\ntype typeReflectCache struct {\n\t// use an atomic and copy-on-write since there are a fixed (typically very small) number of structs compiled into any\n\t// go program using this cache\n\tvalue atomic.Value\n\t// mu is held by writers when performing load/modify/store operations on the cache, readers do not need to hold a\n\t// read-lock since the atomic value is always read-only\n\tmu sync.Mutex\n}\n\nfunc newReflectCache() *typeReflectCache {\n\tcache := &typeReflectCache{}\n\tcache.value.Store(make(reflectCacheMap))\n\treturn cache\n}\n\ntype reflectCacheMap map[reflect.Type]*TypeReflectCacheEntry\n\n// get returns the reflectCacheMap.\nfunc (c *typeReflectCache) get() reflectCacheMap {\n\treturn c.value.Load().(reflectCacheMap)\n}\n\n// update merges the provided updates into the cache.\nfunc (c *typeReflectCache) update(updates reflectCacheMap) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tcurrentCacheMap := c.value.Load().(reflectCacheMap)\n\n\thasNewEntries := false\n\tfor t := range updates {\n\t\tif _, ok := currentCacheMap[t]; !ok {\n\t\t\thasNewEntries = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !hasNewEntries {\n\t\t// Bail if the updates have been set while waiting for lock acquisition.\n\t\t// This is safe since setting entries is idempotent.\n\t\treturn\n\t}\n\n\tnewCacheMap := make(reflectCacheMap, len(currentCacheMap)+len(updates))\n\tfor k, v := range currentCacheMap {\n\t\tnewCacheMap[k] = v\n\t}\n\tfor t, update := range updates {\n\t\tnewCacheMap[t] = update\n\t}\n\tc.value.Store(newCacheMap)\n}\n\n// Below json Unmarshal is fromk8s.io/apimachinery/pkg/util/json\n// to handle number conversions as expected by Kubernetes\n\n// limit recursive depth to prevent stack overflow errors\nconst maxDepth = 10000\n\n// unmarshal unmarshals the given data\n// If v is a *map[string]interface{}, numbers are converted to int64 or float64\nfunc unmarshal(data []byte, v interface{}) error {\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\t// Build a decoder from the given data\n\t\tdecoder := json.NewDecoder(bytes.NewBuffer(data))\n\t\t// Preserve numbers, rather than casting to float64 automatically\n\t\tdecoder.UseNumber()\n\t\t// Run the decode\n\t\tif err := decoder.Decode(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If the decode succeeds, post-process the map to convert json.Number objects to int64 or float64\n\t\treturn convertMapNumbers(*v, 0)\n\n\tcase *[]interface{}:\n\t\t// Build a decoder from the given data\n\t\tdecoder := json.NewDecoder(bytes.NewBuffer(data))\n\t\t// Preserve numbers, rather than casting to float64 automatically\n\t\tdecoder.UseNumber()\n\t\t// Run the decode\n\t\tif err := decoder.Decode(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If the decode succeeds, post-process the map to convert json.Number objects to int64 or float64\n\t\treturn convertSliceNumbers(*v, 0)\n\n\tdefault:\n\t\treturn json.Unmarshal(data, v)\n\t}\n}\n\n// convertMapNumbers traverses the map, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc convertMapNumbers(m map[string]interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor k, v := range m {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\tm[k], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = convertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = convertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc convertSliceNumbers(s []interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor i, v := range s {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\ts[i], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = convertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = convertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts a json.Number to an int64 or float64, or returns an error\nfunc convertNumber(n json.Number) (interface{}, error) {\n\t// Attempt to convert to an int64 first\n\tif i, err := n.Int64(); err == nil {\n\t\treturn i, nil\n\t}\n\t// Return a float64 (default json.Decode() behavior)\n\t// An overflow will return an error\n\treturn n.Float64()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/scalar.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// Compare compares floats. The result will be 0 if lhs==rhs, -1 if f <\n// rhs, and +1 if f > rhs.\nfunc FloatCompare(lhs, rhs float64) int {\n\tif lhs > rhs {\n\t\treturn 1\n\t} else if lhs < rhs {\n\t\treturn -1\n\t}\n\treturn 0\n}\n\n// IntCompare compares integers. The result will be 0 if i==rhs, -1 if i <\n// rhs, and +1 if i > rhs.\nfunc IntCompare(lhs, rhs int64) int {\n\tif lhs > rhs {\n\t\treturn 1\n\t} else if lhs < rhs {\n\t\treturn -1\n\t}\n\treturn 0\n}\n\n// Compare compares booleans. The result will be 0 if b==rhs, -1 if b <\n// rhs, and +1 if b > rhs.\nfunc BoolCompare(lhs, rhs bool) int {\n\tif lhs == rhs {\n\t\treturn 0\n\t} else if lhs == false {\n\t\treturn -1\n\t}\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/structreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\ntype structReflect struct {\n\tvalueReflect\n}\n\nfunc (r structReflect) Length() int {\n\ti := 0\n\teachStructField(r.Value, func(_ *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\ti++\n\t\treturn true\n\t})\n\treturn i\n}\n\nfunc (r structReflect) Empty() bool {\n\treturn eachStructField(r.Value, func(_ *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\treturn false // exit early if the struct is non-empty\n\t})\n}\n\nfunc (r structReflect) Get(key string) (Value, bool) {\n\treturn r.GetUsing(HeapAllocator, key)\n}\n\nfunc (r structReflect) GetUsing(a Allocator, key string) (Value, bool) {\n\tif val, ok := r.findJsonNameField(key); ok {\n\t\treturn a.allocValueReflect().mustReuse(val, nil, nil, nil), true\n\t}\n\treturn nil, false\n}\n\nfunc (r structReflect) Has(key string) bool {\n\t_, ok := r.findJsonNameField(key)\n\treturn ok\n}\n\nfunc (r structReflect) Set(key string, val Value) {\n\tfieldEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[key]\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"key %s may not be set on struct %T: field does not exist\", key, r.Value.Interface()))\n\t}\n\toldVal := fieldEntry.GetFrom(r.Value)\n\tnewVal := reflect.ValueOf(val.Unstructured())\n\tr.update(fieldEntry, key, oldVal, newVal)\n}\n\nfunc (r structReflect) Delete(key string) {\n\tfieldEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[key]\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"key %s may not be deleted on struct %T: field does not exist\", key, r.Value.Interface()))\n\t}\n\toldVal := fieldEntry.GetFrom(r.Value)\n\tif oldVal.Kind() != reflect.Ptr && !fieldEntry.isOmitEmpty {\n\t\tpanic(fmt.Sprintf(\"key %s may not be deleted on struct: %T: value is neither a pointer nor an omitempty field\", key, r.Value.Interface()))\n\t}\n\tr.update(fieldEntry, key, oldVal, reflect.Zero(oldVal.Type()))\n}\n\nfunc (r structReflect) update(fieldEntry *FieldCacheEntry, key string, oldVal, newVal reflect.Value) {\n\tif oldVal.CanSet() {\n\t\toldVal.Set(newVal)\n\t\treturn\n\t}\n\n\t// map items are not addressable, so if a struct is contained in a map, the only way to modify it is\n\t// to write a replacement fieldEntry into the map.\n\tif r.ParentMap != nil {\n\t\tif r.ParentMapKey == nil {\n\t\t\tpanic(\"ParentMapKey must not be nil if ParentMap is not nil\")\n\t\t}\n\t\treplacement := reflect.New(r.Value.Type()).Elem()\n\t\tfieldEntry.GetFrom(replacement).Set(newVal)\n\t\tr.ParentMap.SetMapIndex(*r.ParentMapKey, replacement)\n\t\treturn\n\t}\n\n\t// This should never happen since NewValueReflect ensures that the root object reflected on is a pointer and map\n\t// item replacement is handled above.\n\tpanic(fmt.Sprintf(\"key %s may not be modified on struct: %T: struct is not settable\", key, r.Value.Interface()))\n}\n\nfunc (r structReflect) Iterate(fn func(string, Value) bool) bool {\n\treturn r.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (r structReflect) IterateUsing(a Allocator, fn func(string, Value) bool) bool {\n\tvr := a.allocValueReflect()\n\tdefer a.Free(vr)\n\treturn eachStructField(r.Value, func(e *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\treturn fn(s, vr.mustReuse(value, e, nil, nil))\n\t})\n}\n\nfunc eachStructField(structVal reflect.Value, fn func(*TypeReflectCacheEntry, string, reflect.Value) bool) bool {\n\tfor _, fieldCacheEntry := range TypeReflectEntryOf(structVal.Type()).OrderedFields() {\n\t\tfieldVal := fieldCacheEntry.GetFrom(structVal)\n\t\tif fieldCacheEntry.CanOmit(fieldVal) {\n\t\t\t// omit it\n\t\t\tcontinue\n\t\t}\n\t\tok := fn(fieldCacheEntry.TypeEntry, fieldCacheEntry.JsonName, fieldVal)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (r structReflect) Unstructured() interface{} {\n\t// Use number of struct fields as a cheap way to rough estimate map size\n\tresult := make(map[string]interface{}, r.Value.NumField())\n\tr.Iterate(func(s string, value Value) bool {\n\t\tresult[s] = value.Unstructured()\n\t\treturn true\n\t})\n\treturn result\n}\n\nfunc (r structReflect) Equals(m Map) bool {\n\treturn r.EqualsUsing(HeapAllocator, m)\n}\n\nfunc (r structReflect) EqualsUsing(a Allocator, m Map) bool {\n\t// MapEquals uses zip and is fairly efficient for structReflect\n\treturn MapEqualsUsing(a, &r, m)\n}\n\nfunc (r structReflect) findJsonNameFieldAndNotEmpty(jsonName string) (reflect.Value, bool) {\n\tstructCacheEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[jsonName]\n\tif !ok {\n\t\treturn reflect.Value{}, false\n\t}\n\tfieldVal := structCacheEntry.GetFrom(r.Value)\n\treturn fieldVal, !structCacheEntry.CanOmit(fieldVal)\n}\n\nfunc (r structReflect) findJsonNameField(jsonName string) (val reflect.Value, ok bool) {\n\tstructCacheEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[jsonName]\n\tif !ok {\n\t\treturn reflect.Value{}, false\n\t}\n\tfieldVal := structCacheEntry.GetFrom(r.Value)\n\treturn fieldVal, !structCacheEntry.CanOmit(fieldVal)\n}\n\nfunc (r structReflect) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn r.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (r structReflect) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif otherStruct, ok := other.(*structReflect); ok && r.Value.Type() == otherStruct.Value.Type() {\n\t\tlhsvr, rhsvr := a.allocValueReflect(), a.allocValueReflect()\n\t\tdefer a.Free(lhsvr)\n\t\tdefer a.Free(rhsvr)\n\t\treturn r.structZip(otherStruct, lhsvr, rhsvr, fn)\n\t}\n\treturn defaultMapZip(a, &r, other, order, fn)\n}\n\n// structZip provides an optimized zip for structReflect types. The zip is always lexical key ordered since there is\n// no additional cost to ordering the zip for structured types.\nfunc (r structReflect) structZip(other *structReflect, lhsvr, rhsvr *valueReflect, fn func(key string, lhs, rhs Value) bool) bool {\n\tlhsVal := r.Value\n\trhsVal := other.Value\n\n\tfor _, fieldCacheEntry := range TypeReflectEntryOf(lhsVal.Type()).OrderedFields() {\n\t\tlhsFieldVal := fieldCacheEntry.GetFrom(lhsVal)\n\t\trhsFieldVal := fieldCacheEntry.GetFrom(rhsVal)\n\t\tlhsOmit := fieldCacheEntry.CanOmit(lhsFieldVal)\n\t\trhsOmit := fieldCacheEntry.CanOmit(rhsFieldVal)\n\t\tif lhsOmit && rhsOmit {\n\t\t\tcontinue\n\t\t}\n\t\tvar lhsVal, rhsVal Value\n\t\tif !lhsOmit {\n\t\t\tlhsVal = lhsvr.mustReuse(lhsFieldVal, fieldCacheEntry.TypeEntry, nil, nil)\n\t\t}\n\t\tif !rhsOmit {\n\t\t\trhsVal = rhsvr.mustReuse(rhsFieldVal, fieldCacheEntry.TypeEntry, nil, nil)\n\t\t}\n\t\tif !fn(fieldCacheEntry.JsonName, lhsVal, rhsVal) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/value.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n\t\"gopkg.in/yaml.v2\"\n)\n\nvar (\n\treadPool  = jsoniter.NewIterator(jsoniter.ConfigCompatibleWithStandardLibrary).Pool()\n\twritePool = jsoniter.NewStream(jsoniter.ConfigCompatibleWithStandardLibrary, nil, 1024).Pool()\n)\n\n// A Value corresponds to an 'atom' in the schema. It should return true\n// for at least one of the IsXXX methods below, or the value is\n// considered \"invalid\"\ntype Value interface {\n\t// IsMap returns true if the Value is a Map, false otherwise.\n\tIsMap() bool\n\t// IsList returns true if the Value is a List, false otherwise.\n\tIsList() bool\n\t// IsBool returns true if the Value is a bool, false otherwise.\n\tIsBool() bool\n\t// IsInt returns true if the Value is a int64, false otherwise.\n\tIsInt() bool\n\t// IsFloat returns true if the Value is a float64, false\n\t// otherwise.\n\tIsFloat() bool\n\t// IsString returns true if the Value is a string, false\n\t// otherwise.\n\tIsString() bool\n\t// IsMap returns true if the Value is null, false otherwise.\n\tIsNull() bool\n\n\t// AsMap converts the Value into a Map (or panic if the type\n\t// doesn't allow it).\n\tAsMap() Map\n\t// AsMapUsing uses the provided allocator and converts the Value\n\t// into a Map (or panic if the type doesn't allow it).\n\tAsMapUsing(Allocator) Map\n\t// AsList converts the Value into a List (or panic if the type\n\t// doesn't allow it).\n\tAsList() List\n\t// AsListUsing uses the provided allocator and converts the Value\n\t// into a List (or panic if the type doesn't allow it).\n\tAsListUsing(Allocator) List\n\t// AsBool converts the Value into a bool (or panic if the type\n\t// doesn't allow it).\n\tAsBool() bool\n\t// AsInt converts the Value into an int64 (or panic if the type\n\t// doesn't allow it).\n\tAsInt() int64\n\t// AsFloat converts the Value into a float64 (or panic if the type\n\t// doesn't allow it).\n\tAsFloat() float64\n\t// AsString converts the Value into a string (or panic if the type\n\t// doesn't allow it).\n\tAsString() string\n\n\t// Unstructured converts the Value into an Unstructured interface{}.\n\tUnstructured() interface{}\n}\n\n// FromJSON is a helper function for reading a JSON document.\nfunc FromJSON(input []byte) (Value, error) {\n\treturn FromJSONFast(input)\n}\n\n// FromJSONFast is a helper function for reading a JSON document.\nfunc FromJSONFast(input []byte) (Value, error) {\n\titer := readPool.BorrowIterator(input)\n\tdefer readPool.ReturnIterator(iter)\n\treturn ReadJSONIter(iter)\n}\n\n// ToJSON is a helper function for producing a JSon document.\nfunc ToJSON(v Value) ([]byte, error) {\n\tbuf := bytes.Buffer{}\n\tstream := writePool.BorrowStream(&buf)\n\tdefer writePool.ReturnStream(stream)\n\tWriteJSONStream(v, stream)\n\tb := stream.Buffer()\n\terr := stream.Flush()\n\t// Help jsoniter manage its buffers--without this, the next\n\t// use of the stream is likely to require an allocation. Look\n\t// at the jsoniter stream code to understand why. They were probably\n\t// optimizing for folks using the buffer directly.\n\tstream.SetBuffer(b[:0])\n\treturn buf.Bytes(), err\n}\n\n// ReadJSONIter reads a Value from a JSON iterator.\nfunc ReadJSONIter(iter *jsoniter.Iterator) (Value, error) {\n\tv := iter.Read()\n\tif iter.Error != nil && iter.Error != io.EOF {\n\t\treturn nil, iter.Error\n\t}\n\treturn NewValueInterface(v), nil\n}\n\n// WriteJSONStream writes a value into a JSON stream.\nfunc WriteJSONStream(v Value, stream *jsoniter.Stream) {\n\tstream.WriteVal(v.Unstructured())\n}\n\n// ToYAML marshals a value as YAML.\nfunc ToYAML(v Value) ([]byte, error) {\n\treturn yaml.Marshal(v.Unstructured())\n}\n\n// Equals returns true iff the two values are equal.\nfunc Equals(lhs, rhs Value) bool {\n\treturn EqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// EqualsUsing uses the provided allocator and returns true iff the two values are equal.\nfunc EqualsUsing(a Allocator, lhs, rhs Value) bool {\n\tif lhs.IsFloat() || rhs.IsFloat() {\n\t\tvar lf float64\n\t\tif lhs.IsFloat() {\n\t\t\tlf = lhs.AsFloat()\n\t\t} else if lhs.IsInt() {\n\t\t\tlf = float64(lhs.AsInt())\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t\tvar rf float64\n\t\tif rhs.IsFloat() {\n\t\t\trf = rhs.AsFloat()\n\t\t} else if rhs.IsInt() {\n\t\t\trf = float64(rhs.AsInt())\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t\treturn lf == rf\n\t}\n\tif lhs.IsInt() {\n\t\tif rhs.IsInt() {\n\t\t\treturn lhs.AsInt() == rhs.AsInt()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsInt() {\n\t\treturn false\n\t}\n\tif lhs.IsString() {\n\t\tif rhs.IsString() {\n\t\t\treturn lhs.AsString() == rhs.AsString()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsString() {\n\t\treturn false\n\t}\n\tif lhs.IsBool() {\n\t\tif rhs.IsBool() {\n\t\t\treturn lhs.AsBool() == rhs.AsBool()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsBool() {\n\t\treturn false\n\t}\n\tif lhs.IsList() {\n\t\tif rhs.IsList() {\n\t\t\tlhsList := lhs.AsListUsing(a)\n\t\t\tdefer a.Free(lhsList)\n\t\t\trhsList := rhs.AsListUsing(a)\n\t\t\tdefer a.Free(rhsList)\n\t\t\treturn lhsList.EqualsUsing(a, rhsList)\n\t\t}\n\t\treturn false\n\t} else if rhs.IsList() {\n\t\treturn false\n\t}\n\tif lhs.IsMap() {\n\t\tif rhs.IsMap() {\n\t\t\tlhsList := lhs.AsMapUsing(a)\n\t\t\tdefer a.Free(lhsList)\n\t\t\trhsList := rhs.AsMapUsing(a)\n\t\t\tdefer a.Free(rhsList)\n\t\t\treturn lhsList.EqualsUsing(a, rhsList)\n\t\t}\n\t\treturn false\n\t} else if rhs.IsMap() {\n\t\treturn false\n\t}\n\tif lhs.IsNull() {\n\t\tif rhs.IsNull() {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if rhs.IsNull() {\n\t\treturn false\n\t}\n\t// No field is set, on either objects.\n\treturn true\n}\n\n// ToString returns a human-readable representation of the value.\nfunc ToString(v Value) string {\n\tif v.IsNull() {\n\t\treturn \"null\"\n\t}\n\tswitch {\n\tcase v.IsFloat():\n\t\treturn fmt.Sprintf(\"%v\", v.AsFloat())\n\tcase v.IsInt():\n\t\treturn fmt.Sprintf(\"%v\", v.AsInt())\n\tcase v.IsString():\n\t\treturn fmt.Sprintf(\"%q\", v.AsString())\n\tcase v.IsBool():\n\t\treturn fmt.Sprintf(\"%v\", v.AsBool())\n\tcase v.IsList():\n\t\tstrs := []string{}\n\t\tlist := v.AsList()\n\t\tfor i := 0; i < list.Length(); i++ {\n\t\t\tstrs = append(strs, ToString(list.At(i)))\n\t\t}\n\t\treturn \"[\" + strings.Join(strs, \",\") + \"]\"\n\tcase v.IsMap():\n\t\tstrs := []string{}\n\t\tv.AsMap().Iterate(func(k string, v Value) bool {\n\t\t\tstrs = append(strs, fmt.Sprintf(\"%v=%v\", k, ToString(v)))\n\t\t\treturn true\n\t\t})\n\t\treturn strings.Join(strs, \"\")\n\t}\n\t// No field is set, on either objects.\n\treturn \"{{undefined}}\"\n}\n\n// Less provides a total ordering for Value (so that they can be sorted, even\n// if they are of different types).\nfunc Less(lhs, rhs Value) bool {\n\treturn Compare(lhs, rhs) == -1\n}\n\n// Compare provides a total ordering for Value (so that they can be\n// sorted, even if they are of different types). The result will be 0 if\n// v==rhs, -1 if v < rhs, and +1 if v > rhs.\nfunc Compare(lhs, rhs Value) int {\n\treturn CompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// CompareUsing uses the provided allocator and provides a total\n// ordering for Value (so that they can be sorted, even if they\n// are of different types). The result will be 0 if v==rhs, -1\n// if v < rhs, and +1 if v > rhs.\nfunc CompareUsing(a Allocator, lhs, rhs Value) int {\n\tif lhs.IsFloat() {\n\t\tif !rhs.IsFloat() {\n\t\t\t// Extra: compare floats and ints numerically.\n\t\t\tif rhs.IsInt() {\n\t\t\t\treturn FloatCompare(lhs.AsFloat(), float64(rhs.AsInt()))\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t\treturn FloatCompare(lhs.AsFloat(), rhs.AsFloat())\n\t} else if rhs.IsFloat() {\n\t\t// Extra: compare floats and ints numerically.\n\t\tif lhs.IsInt() {\n\t\t\treturn FloatCompare(float64(lhs.AsInt()), rhs.AsFloat())\n\t\t}\n\t\treturn 1\n\t}\n\n\tif lhs.IsInt() {\n\t\tif !rhs.IsInt() {\n\t\t\treturn -1\n\t\t}\n\t\treturn IntCompare(lhs.AsInt(), rhs.AsInt())\n\t} else if rhs.IsInt() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsString() {\n\t\tif !rhs.IsString() {\n\t\t\treturn -1\n\t\t}\n\t\treturn strings.Compare(lhs.AsString(), rhs.AsString())\n\t} else if rhs.IsString() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsBool() {\n\t\tif !rhs.IsBool() {\n\t\t\treturn -1\n\t\t}\n\t\treturn BoolCompare(lhs.AsBool(), rhs.AsBool())\n\t} else if rhs.IsBool() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsList() {\n\t\tif !rhs.IsList() {\n\t\t\treturn -1\n\t\t}\n\t\tlhsList := lhs.AsListUsing(a)\n\t\tdefer a.Free(lhsList)\n\t\trhsList := rhs.AsListUsing(a)\n\t\tdefer a.Free(rhsList)\n\t\treturn ListCompareUsing(a, lhsList, rhsList)\n\t} else if rhs.IsList() {\n\t\treturn 1\n\t}\n\tif lhs.IsMap() {\n\t\tif !rhs.IsMap() {\n\t\t\treturn -1\n\t\t}\n\t\tlhsMap := lhs.AsMapUsing(a)\n\t\tdefer a.Free(lhsMap)\n\t\trhsMap := rhs.AsMapUsing(a)\n\t\tdefer a.Free(rhsMap)\n\t\treturn MapCompareUsing(a, lhsMap, rhsMap)\n\t} else if rhs.IsMap() {\n\t\treturn 1\n\t}\n\tif lhs.IsNull() {\n\t\tif !rhs.IsNull() {\n\t\t\treturn -1\n\t\t}\n\t\treturn 0\n\t} else if rhs.IsNull() {\n\t\treturn 1\n\t}\n\n\t// Invalid Value-- nothing is set.\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/valuereflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// NewValueReflect creates a Value backed by an \"interface{}\" type,\n// typically an structured object in Kubernetes world that is uses reflection to expose.\n// The provided \"interface{}\" value must be a pointer so that the value can be modified via reflection.\n// The provided \"interface{}\" may contain structs and types that are converted to Values\n// by the jsonMarshaler interface.\nfunc NewValueReflect(value interface{}) (Value, error) {\n\tif value == nil {\n\t\treturn NewValueInterface(nil), nil\n\t}\n\tv := reflect.ValueOf(value)\n\tif v.Kind() != reflect.Ptr {\n\t\t// The root value to reflect on must be a pointer so that map.Set() and map.Delete() operations are possible.\n\t\treturn nil, fmt.Errorf(\"value provided to NewValueReflect must be a pointer\")\n\t}\n\treturn wrapValueReflect(v, nil, nil)\n}\n\n// wrapValueReflect wraps the provide reflect.Value as a value. If parent in the data tree is a map, parentMap\n// and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc wrapValueReflect(value reflect.Value, parentMap, parentMapKey *reflect.Value) (Value, error) {\n\tval := HeapAllocator.allocValueReflect()\n\treturn val.reuse(value, nil, parentMap, parentMapKey)\n}\n\n// wrapValueReflect wraps the provide reflect.Value as a value, and panics if there is an error. If parent in the data\n// tree is a map, parentMap and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc mustWrapValueReflect(value reflect.Value, parentMap, parentMapKey *reflect.Value) Value {\n\tv, err := wrapValueReflect(value, parentMap, parentMapKey)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn v\n}\n\n// the value interface doesn't care about the type for value.IsNull, so we can use a constant\nvar nilType = reflect.TypeOf(&struct{}{})\n\n// reuse replaces the value of the valueReflect. If parent in the data tree is a map, parentMap and parentMapKey\n// must be provided so that the returned value may be set and deleted.\nfunc (r *valueReflect) reuse(value reflect.Value, cacheEntry *TypeReflectCacheEntry, parentMap, parentMapKey *reflect.Value) (Value, error) {\n\tif cacheEntry == nil {\n\t\tcacheEntry = TypeReflectEntryOf(value.Type())\n\t}\n\tif cacheEntry.CanConvertToUnstructured() {\n\t\tu, err := cacheEntry.ToUnstructured(value)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif u == nil {\n\t\t\tvalue = reflect.Zero(nilType)\n\t\t} else {\n\t\t\tvalue = reflect.ValueOf(u)\n\t\t}\n\t}\n\tr.Value = dereference(value)\n\tr.ParentMap = parentMap\n\tr.ParentMapKey = parentMapKey\n\tr.kind = kind(r.Value)\n\treturn r, nil\n}\n\n// mustReuse replaces the value of the valueReflect and panics if there is an error. If parent in the data tree is a\n// map, parentMap and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc (r *valueReflect) mustReuse(value reflect.Value, cacheEntry *TypeReflectCacheEntry, parentMap, parentMapKey *reflect.Value) Value {\n\tv, err := r.reuse(value, cacheEntry, parentMap, parentMapKey)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn v\n}\n\nfunc dereference(val reflect.Value) reflect.Value {\n\tkind := val.Kind()\n\tif (kind == reflect.Interface || kind == reflect.Ptr) && !safeIsNil(val) {\n\t\treturn val.Elem()\n\t}\n\treturn val\n}\n\ntype valueReflect struct {\n\tParentMap    *reflect.Value\n\tParentMapKey *reflect.Value\n\tValue        reflect.Value\n\tkind         reflectType\n}\n\nfunc (r valueReflect) IsMap() bool {\n\treturn r.kind == mapType || r.kind == structMapType\n}\n\nfunc (r valueReflect) IsList() bool {\n\treturn r.kind == listType\n}\n\nfunc (r valueReflect) IsBool() bool {\n\treturn r.kind == boolType\n}\n\nfunc (r valueReflect) IsInt() bool {\n\treturn r.kind == intType || r.kind == uintType\n}\n\nfunc (r valueReflect) IsFloat() bool {\n\treturn r.kind == floatType\n}\n\nfunc (r valueReflect) IsString() bool {\n\treturn r.kind == stringType || r.kind == byteStringType\n}\n\nfunc (r valueReflect) IsNull() bool {\n\treturn r.kind == nullType\n}\n\ntype reflectType = int\n\nconst (\n\tmapType = iota\n\tstructMapType\n\tlistType\n\tintType\n\tuintType\n\tfloatType\n\tstringType\n\tbyteStringType\n\tboolType\n\tnullType\n)\n\nfunc kind(v reflect.Value) reflectType {\n\ttyp := v.Type()\n\trk := typ.Kind()\n\tswitch rk {\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\treturn mapType\n\tcase reflect.Struct:\n\t\treturn structMapType\n\tcase reflect.Int, reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8:\n\t\treturn intType\n\tcase reflect.Uint, reflect.Uint32, reflect.Uint16, reflect.Uint8:\n\t\t// Uint64 deliberately excluded, see valueUnstructured.Int.\n\t\treturn uintType\n\tcase reflect.Float64, reflect.Float32:\n\t\treturn floatType\n\tcase reflect.String:\n\t\treturn stringType\n\tcase reflect.Bool:\n\t\treturn boolType\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\telemKind := typ.Elem().Kind()\n\t\tif elemKind == reflect.Uint8 {\n\t\t\treturn byteStringType\n\t\t}\n\t\treturn listType\n\tcase reflect.Chan, reflect.Func, reflect.Ptr, reflect.UnsafePointer, reflect.Interface:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\t}\n}\n\n// TODO find a cleaner way to avoid panics from reflect.IsNil()\nfunc safeIsNil(v reflect.Value) bool {\n\tk := v.Kind()\n\tswitch k {\n\tcase reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc (r valueReflect) AsMap() Map {\n\treturn r.AsMapUsing(HeapAllocator)\n}\n\nfunc (r valueReflect) AsMapUsing(a Allocator) Map {\n\tswitch r.kind {\n\tcase structMapType:\n\t\tv := a.allocStructReflect()\n\t\tv.valueReflect = r\n\t\treturn v\n\tcase mapType:\n\t\tv := a.allocMapReflect()\n\t\tv.valueReflect = r\n\t\treturn v\n\tdefault:\n\t\tpanic(\"value is not a map or struct\")\n\t}\n}\n\nfunc (r valueReflect) AsList() List {\n\treturn r.AsListUsing(HeapAllocator)\n}\n\nfunc (r valueReflect) AsListUsing(a Allocator) List {\n\tif r.IsList() {\n\t\tv := a.allocListReflect()\n\t\tv.Value = r.Value\n\t\treturn v\n\t}\n\tpanic(\"value is not a list\")\n}\n\nfunc (r valueReflect) AsBool() bool {\n\tif r.IsBool() {\n\t\treturn r.Value.Bool()\n\t}\n\tpanic(\"value is not a bool\")\n}\n\nfunc (r valueReflect) AsInt() int64 {\n\tif r.kind == intType {\n\t\treturn r.Value.Int()\n\t}\n\tif r.kind == uintType {\n\t\treturn int64(r.Value.Uint())\n\t}\n\n\tpanic(\"value is not an int\")\n}\n\nfunc (r valueReflect) AsFloat() float64 {\n\tif r.IsFloat() {\n\t\treturn r.Value.Float()\n\t}\n\tpanic(\"value is not a float\")\n}\n\nfunc (r valueReflect) AsString() string {\n\tswitch r.kind {\n\tcase stringType:\n\t\treturn r.Value.String()\n\tcase byteStringType:\n\t\treturn base64.StdEncoding.EncodeToString(r.Value.Bytes())\n\t}\n\tpanic(\"value is not a string\")\n}\n\nfunc (r valueReflect) Unstructured() interface{} {\n\tval := r.Value\n\tswitch {\n\tcase r.IsNull():\n\t\treturn nil\n\tcase val.Kind() == reflect.Struct:\n\t\treturn structReflect{r}.Unstructured()\n\tcase val.Kind() == reflect.Map:\n\t\treturn mapReflect{valueReflect: r}.Unstructured()\n\tcase r.IsList():\n\t\treturn listReflect{r.Value}.Unstructured()\n\tcase r.IsString():\n\t\treturn r.AsString()\n\tcase r.IsInt():\n\t\treturn r.AsInt()\n\tcase r.IsBool():\n\t\treturn r.AsBool()\n\tcase r.IsFloat():\n\t\treturn r.AsFloat()\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"value of type %s is not a supported by value reflector\", val.Type()))\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/valueunstructured.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n)\n\n// NewValueInterface creates a Value backed by an \"interface{}\" type,\n// typically an unstructured object in Kubernetes world.\n// interface{} must be one of: map[string]interface{}, map[interface{}]interface{}, []interface{}, int types, float types,\n// string or boolean. Nested interface{} must also be one of these types.\nfunc NewValueInterface(v interface{}) Value {\n\treturn Value(HeapAllocator.allocValueUnstructured().reuse(v))\n}\n\ntype valueUnstructured struct {\n\tValue interface{}\n}\n\n// reuse replaces the value of the valueUnstructured.\nfunc (vi *valueUnstructured) reuse(value interface{}) Value {\n\tvi.Value = value\n\treturn vi\n}\n\nfunc (v valueUnstructured) IsMap() bool {\n\tif _, ok := v.Value.(map[string]interface{}); ok {\n\t\treturn true\n\t}\n\tif _, ok := v.Value.(map[interface{}]interface{}); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsMap() Map {\n\treturn v.AsMapUsing(HeapAllocator)\n}\n\nfunc (v valueUnstructured) AsMapUsing(_ Allocator) Map {\n\tif v.Value == nil {\n\t\tpanic(\"invalid nil\")\n\t}\n\tswitch t := v.Value.(type) {\n\tcase map[string]interface{}:\n\t\treturn mapUnstructuredString(t)\n\tcase map[interface{}]interface{}:\n\t\treturn mapUnstructuredInterface(t)\n\t}\n\tpanic(fmt.Errorf(\"not a map: %#v\", v))\n}\n\nfunc (v valueUnstructured) IsList() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.([]interface{})\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsList() List {\n\treturn v.AsListUsing(HeapAllocator)\n}\n\nfunc (v valueUnstructured) AsListUsing(_ Allocator) List {\n\treturn listUnstructured(v.Value.([]interface{}))\n}\n\nfunc (v valueUnstructured) IsFloat() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t} else if _, ok := v.Value.(float64); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(float32); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsFloat() float64 {\n\tif f, ok := v.Value.(float32); ok {\n\t\treturn float64(f)\n\t}\n\treturn v.Value.(float64)\n}\n\nfunc (v valueUnstructured) IsInt() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t} else if _, ok := v.Value.(int); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int8); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int16); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int32); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int64); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint8); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint16); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint32); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsInt() int64 {\n\tif i, ok := v.Value.(int); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int8); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int16); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int32); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint8); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint16); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint32); ok {\n\t\treturn int64(i)\n\t}\n\treturn v.Value.(int64)\n}\n\nfunc (v valueUnstructured) IsString() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.(string)\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsString() string {\n\treturn v.Value.(string)\n}\n\nfunc (v valueUnstructured) IsBool() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.(bool)\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsBool() bool {\n\treturn v.Value.(bool)\n}\n\nfunc (v valueUnstructured) IsNull() bool {\n\treturn v.Value == nil\n}\n\nfunc (v valueUnstructured) Unstructured() interface{} {\n\treturn v.Value\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/.gitignore",
    "content": "# OSX leaves these everywhere on SMB shares\n._*\n\n# Eclipse files\n.classpath\n.project\n.settings/**\n\n# Idea files\n.idea/**\n.idea/\n\n# Emacs save files\n*~\n\n# Vim-related files\n[._]*.s[a-w][a-z]\n[._]s[a-w][a-z]\n*.un~\nSession.vim\n.netrwhist\n\n# Go test binaries\n*.test\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/.travis.yml",
    "content": "language: go\narch: arm64\ndist: focal\ngo: 1.15.x\nscript:\n  - diff -u <(echo -n) <(gofmt -d *.go)\n  - diff -u <(echo -n) <(golint $(go list -e ./...) | grep -v YAMLToJSON)\n  - GO111MODULE=on go vet .\n  - GO111MODULE=on go test -v -race ./...\n  - git diff --exit-code\ninstall:\n  - GO111MODULE=off go get golang.org/x/lint/golint\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n<!---\nIf your repo has certain guidelines for contribution, put them here ahead of the general k8s resources\n-->\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n<!---\nCustom Information - if you're copying this template for the first time you can add custom content here, for example:\n\n## Contact Information\n\n- [Slack channel](https://kubernetes.slack.com/messages/kubernetes-users) - Replace `kubernetes-users` with your slack channel string, this will send users directly to your channel. \n- [Mailing list](URL)\n\n-->\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Sam Ghods\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n- dims\n- lavalamp\n- smarterclayton\n- deads2k\n- sttts\n- liggitt\n- caesarxuchao\nreviewers:\n- dims\n- thockin\n- lavalamp\n- smarterclayton\n- wojtek-t\n- deads2k\n- derekwaynecarr\n- caesarxuchao\n- mikedanese\n- liggitt\n- gmarek\n- sttts\n- ncdc\n- tallclair\nlabels:\n- sig/api-machinery\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/README.md",
    "content": "# YAML marshaling and unmarshaling support for Go\n\n[![Build Status](https://travis-ci.org/kubernetes-sigs/yaml.svg)](https://travis-ci.org/kubernetes-sigs/yaml)\n\nkubernetes-sigs/yaml is a permanent fork of [ghodss/yaml](https://github.com/ghodss/yaml).\n\n## Introduction\n\nA wrapper around [go-yaml](https://github.com/go-yaml/yaml) designed to enable a better way of handling YAML when marshaling to and from structs.\n\nIn short, this library first converts YAML to JSON using go-yaml and then uses `json.Marshal` and `json.Unmarshal` to convert to or from the struct. This means that it effectively reuses the JSON struct tags as well as the custom JSON methods `MarshalJSON` and `UnmarshalJSON` unlike go-yaml. For a detailed overview of the rationale behind this method, [see this blog post](http://web.archive.org/web/20190603050330/http://ghodss.com/2014/the-right-way-to-handle-yaml-in-golang/).\n\n## Compatibility\n\nThis package uses [go-yaml](https://github.com/go-yaml/yaml) and therefore supports [everything go-yaml supports](https://github.com/go-yaml/yaml#compatibility).\n\n## Caveats\n\n**Caveat #1:** When using `yaml.Marshal` and `yaml.Unmarshal`, binary data should NOT be preceded with the `!!binary` YAML tag. If you do, go-yaml will convert the binary data from base64 to native binary data, which is not compatible with JSON. You can still use binary in your YAML files though - just store them without the `!!binary` tag and decode the base64 in your code (e.g. in the custom JSON methods `MarshalJSON` and `UnmarshalJSON`). This also has the benefit that your YAML and your JSON binary data will be decoded exactly the same way. As an example:\n\n```\nBAD:\n\texampleKey: !!binary gIGC\n\nGOOD:\n\texampleKey: gIGC\n... and decode the base64 data in your code.\n```\n\n**Caveat #2:** When using `YAMLToJSON` directly, maps with keys that are maps will result in an error since this is not supported by JSON. This error will occur in `Unmarshal` as well since you can't unmarshal map keys anyways since struct fields can't be keys.\n\n## Installation and usage\n\nTo install, run:\n\n```\n$ go get sigs.k8s.io/yaml\n```\n\nAnd import using:\n\n```\nimport \"sigs.k8s.io/yaml\"\n```\n\nUsage is very similar to the JSON library:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\ntype Person struct {\n\tName string `json:\"name\"` // Affects YAML field names too.\n\tAge  int    `json:\"age\"`\n}\n\nfunc main() {\n\t// Marshal a Person struct to YAML.\n\tp := Person{\"John\", 30}\n\ty, err := yaml.Marshal(p)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(y))\n\t/* Output:\n\tage: 30\n\tname: John\n\t*/\n\n\t// Unmarshal the YAML back into a Person struct.\n\tvar p2 Person\n\terr = yaml.Unmarshal(y, &p2)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(p2)\n\t/* Output:\n\t{John 30}\n\t*/\n}\n```\n\n`yaml.YAMLToJSON` and `yaml.JSONToYAML` methods are also available:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\nfunc main() {\n\tj := []byte(`{\"name\": \"John\", \"age\": 30}`)\n\ty, err := yaml.JSONToYAML(j)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(y))\n\t/* Output:\n\tage: 30\n\tname: John\n\t*/\n\tj2, err := yaml.YAMLToJSON(y)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(j2))\n\t/* Output:\n\t{\"age\":30,\"name\":\"John\"}\n\t*/\n}\n```\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/RELEASE.md",
    "content": "# Release Process\n\nThe `yaml` Project is released on an as-needed basis. The process is as follows:\n\n1. An issue is proposing a new release with a changelog since the last release\n1. All [OWNERS](OWNERS) must LGTM this release\n1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`\n1. The release issue is closed\n1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Team to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ncjcullen\njessfraz\nliggitt\nphilips\ntallclair\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/fields.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// indirect walks down v allocating pointers as needed,\n// until it gets to a non-pointer.\n// if it encounters an Unmarshaler, indirect stops and returns that.\n// if decodingNull is true, indirect stops at the last pointer so it can be set to nil.\nfunc indirect(v reflect.Value, decodingNull bool) (json.Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {\n\t// If v is a named type and is addressable,\n\t// start with its address, so that if the type has pointer methods,\n\t// we find them.\n\tif v.Kind() != reflect.Ptr && v.Type().Name() != \"\" && v.CanAddr() {\n\t\tv = v.Addr()\n\t}\n\tfor {\n\t\t// Load value from interface, but only if the result will be\n\t\t// usefully addressable.\n\t\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\t\te := v.Elem()\n\t\t\tif e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) {\n\t\t\t\tv = e\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif v.Kind() != reflect.Ptr {\n\t\t\tbreak\n\t\t}\n\n\t\tif v.Elem().Kind() != reflect.Ptr && decodingNull && v.CanSet() {\n\t\t\tbreak\n\t\t}\n\t\tif v.IsNil() {\n\t\t\tif v.CanSet() {\n\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t} else {\n\t\t\t\tv = reflect.New(v.Type().Elem())\n\t\t\t}\n\t\t}\n\t\tif v.Type().NumMethod() > 0 {\n\t\t\tif u, ok := v.Interface().(json.Unmarshaler); ok {\n\t\t\t\treturn u, nil, reflect.Value{}\n\t\t\t}\n\t\t\tif u, ok := v.Interface().(encoding.TextUnmarshaler); ok {\n\t\t\t\treturn nil, u, reflect.Value{}\n\t\t\t}\n\t\t}\n\t\tv = v.Elem()\n\t}\n\treturn nil, nil, v\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte                 // []byte(name)\n\tequalFold func(s, t []byte) bool // bytes.EqualFold or equivalent\n\n\ttag       bool\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n}\n\nfunc fillField(f field) field {\n\tf.nameBytes = []byte(f.name)\n\tf.equalFold = foldFunc(f.nameBytes)\n\treturn f\n}\n\n// byName sorts field by name, breaking ties with depth,\n// then breaking ties with \"name came from json tag\", then\n// breaking ties with index sequence.\ntype byName []field\n\nfunc (x byName) Len() int { return len(x) }\n\nfunc (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byName) Less(i, j int) bool {\n\tif x[i].name != x[j].name {\n\t\treturn x[i].name < x[j].name\n\t}\n\tif len(x[i].index) != len(x[j].index) {\n\t\treturn len(x[i].index) < len(x[j].index)\n\t}\n\tif x[i].tag != x[j].tag {\n\t\treturn x[i].tag\n\t}\n\treturn byIndex(x).Less(i, j)\n}\n\n// byIndex sorts field by index sequence.\ntype byIndex []field\n\nfunc (x byIndex) Len() int { return len(x) }\n\nfunc (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byIndex) Less(i, j int) bool {\n\tfor k, xik := range x[i].index {\n\t\tif k >= len(x[j].index) {\n\t\t\treturn false\n\t\t}\n\t\tif xik != x[j].index[k] {\n\t\t\treturn xik < x[j].index[k]\n\t\t}\n\t}\n\treturn len(x[i].index) < len(x[j].index)\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) []field {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tcount := map[reflect.Type]int{}\n\tnextCount := map[reflect.Type]int{}\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.PkgPath != \"\" { // unexported\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Ptr {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfields = append(fields, fillField(field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    opts.Contains(\"string\"),\n\t\t\t\t\t}))\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 or 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, fillField(field{name: ft.Name(), index: index, typ: ft}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Sort(byName(fields))\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tsort.Sort(byIndex(fields))\n\n\treturn fields\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order. The winner\n\t// must therefore be one with the shortest index length. Drop all\n\t// longer entries, which is easy: just truncate the slice.\n\tlength := len(fields[0].index)\n\ttagged := -1 // Index of first tagged field.\n\tfor i, f := range fields {\n\t\tif len(f.index) > length {\n\t\t\tfields = fields[:i]\n\t\t\tbreak\n\t\t}\n\t\tif f.tag {\n\t\t\tif tagged >= 0 {\n\t\t\t\t// Multiple tagged fields at the same level: conflict.\n\t\t\t\t// Return no field.\n\t\t\t\treturn field{}, false\n\t\t\t}\n\t\t\ttagged = i\n\t\t}\n\t}\n\tif tagged >= 0 {\n\t\treturn fields[tagged], true\n\t}\n\t// All remaining fields have the same length. If there's more than one,\n\t// we have a conflict (two fields named \"X\" at the same level) and we\n\t// return no field.\n\tif len(fields) > 1 {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache struct {\n\tsync.RWMutex\n\tm map[reflect.Type][]field\n}\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) []field {\n\tfieldCache.RLock()\n\tf := fieldCache.m[t]\n\tfieldCache.RUnlock()\n\tif f != nil {\n\t\treturn f\n\t}\n\n\t// Compute fields without lock.\n\t// Might duplicate effort but won't hold other computations back.\n\tf = typeFields(t)\n\tif f == nil {\n\t\tf = []field{}\n\t}\n\n\tfieldCache.Lock()\n\tif fieldCache.m == nil {\n\t\tfieldCache.m = map[reflect.Type][]field{}\n\t}\n\tfieldCache.m[t] = f\n\tfieldCache.Unlock()\n\treturn f\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tdefault:\n\t\t\tif !unicode.IsLetter(c) && !unicode.IsDigit(c) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nconst (\n\tcaseMask     = ^byte(0x20) // Mask to ignore case in ASCII.\n\tkelvin       = '\\u212a'\n\tsmallLongEss = '\\u017f'\n)\n\n// foldFunc returns one of four different case folding equivalence\n// functions, from most general (and slow) to fastest:\n//\n// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8\n// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')\n// 3) asciiEqualFold, no special, but includes non-letters (including _)\n// 4) simpleLetterEqualFold, no specials, no non-letters.\n//\n// The letters S and K are special because they map to 3 runes, not just 2:\n//  * S maps to s and to U+017F 'ſ' Latin small letter long s\n//  * k maps to K and to U+212A 'K' Kelvin sign\n// See http://play.golang.org/p/tTxjOc0OGo\n//\n// The returned function is specialized for matching against s and\n// should only be given s. It's not curried for performance reasons.\nfunc foldFunc(s []byte) func(s, t []byte) bool {\n\tnonLetter := false\n\tspecial := false // special letter\n\tfor _, b := range s {\n\t\tif b >= utf8.RuneSelf {\n\t\t\treturn bytes.EqualFold\n\t\t}\n\t\tupper := b & caseMask\n\t\tif upper < 'A' || upper > 'Z' {\n\t\t\tnonLetter = true\n\t\t} else if upper == 'K' || upper == 'S' {\n\t\t\t// See above for why these letters are special.\n\t\t\tspecial = true\n\t\t}\n\t}\n\tif special {\n\t\treturn equalFoldRight\n\t}\n\tif nonLetter {\n\t\treturn asciiEqualFold\n\t}\n\treturn simpleLetterEqualFold\n}\n\n// equalFoldRight is a specialization of bytes.EqualFold when s is\n// known to be all ASCII (including punctuation), but contains an 's',\n// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.\n// See comments on foldFunc.\nfunc equalFoldRight(s, t []byte) bool {\n\tfor _, sb := range s {\n\t\tif len(t) == 0 {\n\t\t\treturn false\n\t\t}\n\t\ttb := t[0]\n\t\tif tb < utf8.RuneSelf {\n\t\t\tif sb != tb {\n\t\t\t\tsbUpper := sb & caseMask\n\t\t\t\tif 'A' <= sbUpper && sbUpper <= 'Z' {\n\t\t\t\t\tif sbUpper != tb&caseMask {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tt = t[1:]\n\t\t\tcontinue\n\t\t}\n\t\t// sb is ASCII and t is not. t must be either kelvin\n\t\t// sign or long s; sb must be s, S, k, or K.\n\t\ttr, size := utf8.DecodeRune(t)\n\t\tswitch sb {\n\t\tcase 's', 'S':\n\t\t\tif tr != smallLongEss {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase 'k', 'K':\n\t\t\tif tr != kelvin {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t\tt = t[size:]\n\n\t}\n\tif len(t) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// asciiEqualFold is a specialization of bytes.EqualFold for use when\n// s is all ASCII (but may contain non-letters) and contains no\n// special-folding letters.\n// See comments on foldFunc.\nfunc asciiEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, sb := range s {\n\t\ttb := t[i]\n\t\tif sb == tb {\n\t\t\tcontinue\n\t\t}\n\t\tif ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {\n\t\t\tif sb&caseMask != tb&caseMask {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// simpleLetterEqualFold is a specialization of bytes.EqualFold for\n// use when s is all ASCII letters (no underscores, etc) and also\n// doesn't contain 'k', 'K', 's', or 'S'.\n// See comments on foldFunc.\nfunc simpleLetterEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, b := range s {\n\t\tif b&caseMask != t[i]&caseMask {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/yaml.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"gopkg.in/yaml.v2\"\n)\n\n// Marshal marshals the object into JSON then converts JSON to YAML and returns the\n// YAML.\nfunc Marshal(o interface{}) ([]byte, error) {\n\tj, err := json.Marshal(o)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error marshaling into JSON: %v\", err)\n\t}\n\n\ty, err := JSONToYAML(j)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error converting JSON to YAML: %v\", err)\n\t}\n\n\treturn y, nil\n}\n\n// JSONOpt is a decoding option for decoding from JSON format.\ntype JSONOpt func(*json.Decoder) *json.Decoder\n\n// Unmarshal converts YAML to JSON then uses JSON to unmarshal into an object,\n// optionally configuring the behavior of the JSON unmarshal.\nfunc Unmarshal(y []byte, o interface{}, opts ...JSONOpt) error {\n\treturn yamlUnmarshal(y, o, false, opts...)\n}\n\n// UnmarshalStrict strictly converts YAML to JSON then uses JSON to unmarshal\n// into an object, optionally configuring the behavior of the JSON unmarshal.\nfunc UnmarshalStrict(y []byte, o interface{}, opts ...JSONOpt) error {\n\treturn yamlUnmarshal(y, o, true, append(opts, DisallowUnknownFields)...)\n}\n\n// yamlUnmarshal unmarshals the given YAML byte stream into the given interface,\n// optionally performing the unmarshalling strictly\nfunc yamlUnmarshal(y []byte, o interface{}, strict bool, opts ...JSONOpt) error {\n\tvo := reflect.ValueOf(o)\n\tunmarshalFn := yaml.Unmarshal\n\tif strict {\n\t\tunmarshalFn = yaml.UnmarshalStrict\n\t}\n\tj, err := yamlToJSON(y, &vo, unmarshalFn)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error converting YAML to JSON: %v\", err)\n\t}\n\n\terr = jsonUnmarshal(bytes.NewReader(j), o, opts...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error unmarshaling JSON: %v\", err)\n\t}\n\n\treturn nil\n}\n\n// jsonUnmarshal unmarshals the JSON byte stream from the given reader into the\n// object, optionally applying decoder options prior to decoding.  We are not\n// using json.Unmarshal directly as we want the chance to pass in non-default\n// options.\nfunc jsonUnmarshal(r io.Reader, o interface{}, opts ...JSONOpt) error {\n\td := json.NewDecoder(r)\n\tfor _, opt := range opts {\n\t\td = opt(d)\n\t}\n\tif err := d.Decode(&o); err != nil {\n\t\treturn fmt.Errorf(\"while decoding JSON: %v\", err)\n\t}\n\treturn nil\n}\n\n// JSONToYAML Converts JSON to YAML.\nfunc JSONToYAML(j []byte) ([]byte, error) {\n\t// Convert the JSON to an object.\n\tvar jsonObj interface{}\n\t// We are using yaml.Unmarshal here (instead of json.Unmarshal) because the\n\t// Go JSON library doesn't try to pick the right number type (int, float,\n\t// etc.) when unmarshalling to interface{}, it just picks float64\n\t// universally. go-yaml does go through the effort of picking the right\n\t// number type, so we can preserve number type throughout this process.\n\terr := yaml.Unmarshal(j, &jsonObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Marshal this object into YAML.\n\treturn yaml.Marshal(jsonObj)\n}\n\n// YAMLToJSON converts YAML to JSON. Since JSON is a subset of YAML,\n// passing JSON through this method should be a no-op.\n//\n// Things YAML can do that are not supported by JSON:\n// * In YAML you can have binary and null keys in your maps. These are invalid\n//   in JSON. (int and float keys are converted to strings.)\n// * Binary data in YAML with the !!binary tag is not supported. If you want to\n//   use binary data with this library, encode the data as base64 as usual but do\n//   not use the !!binary tag in your YAML. This will ensure the original base64\n//   encoded data makes it all the way through to the JSON.\n//\n// For strict decoding of YAML, use YAMLToJSONStrict.\nfunc YAMLToJSON(y []byte) ([]byte, error) {\n\treturn yamlToJSON(y, nil, yaml.Unmarshal)\n}\n\n// YAMLToJSONStrict is like YAMLToJSON but enables strict YAML decoding,\n// returning an error on any duplicate field names.\nfunc YAMLToJSONStrict(y []byte) ([]byte, error) {\n\treturn yamlToJSON(y, nil, yaml.UnmarshalStrict)\n}\n\nfunc yamlToJSON(y []byte, jsonTarget *reflect.Value, yamlUnmarshal func([]byte, interface{}) error) ([]byte, error) {\n\t// Convert the YAML to an object.\n\tvar yamlObj interface{}\n\terr := yamlUnmarshal(y, &yamlObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// YAML objects are not completely compatible with JSON objects (e.g. you\n\t// can have non-string keys in YAML). So, convert the YAML-compatible object\n\t// to a JSON-compatible object, failing with an error if irrecoverable\n\t// incompatibilties happen along the way.\n\tjsonObj, err := convertToJSONableObject(yamlObj, jsonTarget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Convert this object to JSON and return the data.\n\treturn json.Marshal(jsonObj)\n}\n\nfunc convertToJSONableObject(yamlObj interface{}, jsonTarget *reflect.Value) (interface{}, error) {\n\tvar err error\n\n\t// Resolve jsonTarget to a concrete value (i.e. not a pointer or an\n\t// interface). We pass decodingNull as false because we're not actually\n\t// decoding into the value, we're just checking if the ultimate target is a\n\t// string.\n\tif jsonTarget != nil {\n\t\tju, tu, pv := indirect(*jsonTarget, false)\n\t\t// We have a JSON or Text Umarshaler at this level, so we can't be trying\n\t\t// to decode into a string.\n\t\tif ju != nil || tu != nil {\n\t\t\tjsonTarget = nil\n\t\t} else {\n\t\t\tjsonTarget = &pv\n\t\t}\n\t}\n\n\t// If yamlObj is a number or a boolean, check if jsonTarget is a string -\n\t// if so, coerce.  Else return normal.\n\t// If yamlObj is a map or array, find the field that each key is\n\t// unmarshaling to, and when you recurse pass the reflect.Value for that\n\t// field back into this function.\n\tswitch typedYAMLObj := yamlObj.(type) {\n\tcase map[interface{}]interface{}:\n\t\t// JSON does not support arbitrary keys in a map, so we must convert\n\t\t// these keys to strings.\n\t\t//\n\t\t// From my reading of go-yaml v2 (specifically the resolve function),\n\t\t// keys can only have the types string, int, int64, float64, binary\n\t\t// (unsupported), or null (unsupported).\n\t\tstrMap := make(map[string]interface{})\n\t\tfor k, v := range typedYAMLObj {\n\t\t\t// Resolve the key to a string first.\n\t\t\tvar keyString string\n\t\t\tswitch typedKey := k.(type) {\n\t\t\tcase string:\n\t\t\t\tkeyString = typedKey\n\t\t\tcase int:\n\t\t\t\tkeyString = strconv.Itoa(typedKey)\n\t\t\tcase int64:\n\t\t\t\t// go-yaml will only return an int64 as a key if the system\n\t\t\t\t// architecture is 32-bit and the key's value is between 32-bit\n\t\t\t\t// and 64-bit. Otherwise the key type will simply be int.\n\t\t\t\tkeyString = strconv.FormatInt(typedKey, 10)\n\t\t\tcase float64:\n\t\t\t\t// Stolen from go-yaml to use the same conversion to string as\n\t\t\t\t// the go-yaml library uses to convert float to string when\n\t\t\t\t// Marshaling.\n\t\t\t\ts := strconv.FormatFloat(typedKey, 'g', -1, 32)\n\t\t\t\tswitch s {\n\t\t\t\tcase \"+Inf\":\n\t\t\t\t\ts = \".inf\"\n\t\t\t\tcase \"-Inf\":\n\t\t\t\t\ts = \"-.inf\"\n\t\t\t\tcase \"NaN\":\n\t\t\t\t\ts = \".nan\"\n\t\t\t\t}\n\t\t\t\tkeyString = s\n\t\t\tcase bool:\n\t\t\t\tif typedKey {\n\t\t\t\t\tkeyString = \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tkeyString = \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"Unsupported map key of type: %s, key: %+#v, value: %+#v\",\n\t\t\t\t\treflect.TypeOf(k), k, v)\n\t\t\t}\n\n\t\t\t// jsonTarget should be a struct or a map. If it's a struct, find\n\t\t\t// the field it's going to map to and pass its reflect.Value. If\n\t\t\t// it's a map, find the element type of the map and pass the\n\t\t\t// reflect.Value created from that type. If it's neither, just pass\n\t\t\t// nil - JSON conversion will error for us if it's a real issue.\n\t\t\tif jsonTarget != nil {\n\t\t\t\tt := *jsonTarget\n\t\t\t\tif t.Kind() == reflect.Struct {\n\t\t\t\t\tkeyBytes := []byte(keyString)\n\t\t\t\t\t// Find the field that the JSON library would use.\n\t\t\t\t\tvar f *field\n\t\t\t\t\tfields := cachedTypeFields(t.Type())\n\t\t\t\t\tfor i := range fields {\n\t\t\t\t\t\tff := &fields[i]\n\t\t\t\t\t\tif bytes.Equal(ff.nameBytes, keyBytes) {\n\t\t\t\t\t\t\tf = ff\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Do case-insensitive comparison.\n\t\t\t\t\t\tif f == nil && ff.equalFold(ff.nameBytes, keyBytes) {\n\t\t\t\t\t\t\tf = ff\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif f != nil {\n\t\t\t\t\t\t// Find the reflect.Value of the most preferential\n\t\t\t\t\t\t// struct field.\n\t\t\t\t\t\tjtf := t.Field(f.index[0])\n\t\t\t\t\t\tstrMap[keyString], err = convertToJSONableObject(v, &jtf)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t} else if t.Kind() == reflect.Map {\n\t\t\t\t\t// Create a zero value of the map's element type to use as\n\t\t\t\t\t// the JSON target.\n\t\t\t\t\tjtv := reflect.Zero(t.Type().Elem())\n\t\t\t\t\tstrMap[keyString], err = convertToJSONableObject(v, &jtv)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tstrMap[keyString], err = convertToJSONableObject(v, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn strMap, nil\n\tcase []interface{}:\n\t\t// We need to recurse into arrays in case there are any\n\t\t// map[interface{}]interface{}'s inside and to convert any\n\t\t// numbers to strings.\n\n\t\t// If jsonTarget is a slice (which it really should be), find the\n\t\t// thing it's going to map to. If it's not a slice, just pass nil\n\t\t// - JSON conversion will error for us if it's a real issue.\n\t\tvar jsonSliceElemValue *reflect.Value\n\t\tif jsonTarget != nil {\n\t\t\tt := *jsonTarget\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\t// By default slices point to nil, but we need a reflect.Value\n\t\t\t\t// pointing to a value of the slice type, so we create one here.\n\t\t\t\tev := reflect.Indirect(reflect.New(t.Type().Elem()))\n\t\t\t\tjsonSliceElemValue = &ev\n\t\t\t}\n\t\t}\n\n\t\t// Make and use a new array.\n\t\tarr := make([]interface{}, len(typedYAMLObj))\n\t\tfor i, v := range typedYAMLObj {\n\t\t\tarr[i], err = convertToJSONableObject(v, jsonSliceElemValue)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn arr, nil\n\tdefault:\n\t\t// If the target type is a string and the YAML type is a number,\n\t\t// convert the YAML type to a string.\n\t\tif jsonTarget != nil && (*jsonTarget).Kind() == reflect.String {\n\t\t\t// Based on my reading of go-yaml, it may return int, int64,\n\t\t\t// float64, or uint64.\n\t\t\tvar s string\n\t\t\tswitch typedVal := typedYAMLObj.(type) {\n\t\t\tcase int:\n\t\t\t\ts = strconv.FormatInt(int64(typedVal), 10)\n\t\t\tcase int64:\n\t\t\t\ts = strconv.FormatInt(typedVal, 10)\n\t\t\tcase float64:\n\t\t\t\ts = strconv.FormatFloat(typedVal, 'g', -1, 32)\n\t\t\tcase uint64:\n\t\t\t\ts = strconv.FormatUint(typedVal, 10)\n\t\t\tcase bool:\n\t\t\t\tif typedVal {\n\t\t\t\t\ts = \"true\"\n\t\t\t\t} else {\n\t\t\t\t\ts = \"false\"\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(s) > 0 {\n\t\t\t\tyamlObj = interface{}(s)\n\t\t\t}\n\t\t}\n\t\treturn yamlObj, nil\n\t}\n}\n\n// JSONObjectToYAMLObject converts an in-memory JSON object into a YAML in-memory MapSlice,\n// without going through a byte representation. A nil or empty map[string]interface{} input is\n// converted to an empty map, i.e. yaml.MapSlice(nil).\n//\n// interface{} slices stay interface{} slices. map[string]interface{} becomes yaml.MapSlice.\n//\n// int64 and float64 are down casted following the logic of github.com/go-yaml/yaml:\n// - float64s are down-casted as far as possible without data-loss to int, int64, uint64.\n// - int64s are down-casted to int if possible without data-loss.\n//\n// Big int/int64/uint64 do not lose precision as in the json-yaml roundtripping case.\n//\n// string, bool and any other types are unchanged.\nfunc JSONObjectToYAMLObject(j map[string]interface{}) yaml.MapSlice {\n\tif len(j) == 0 {\n\t\treturn nil\n\t}\n\tret := make(yaml.MapSlice, 0, len(j))\n\tfor k, v := range j {\n\t\tret = append(ret, yaml.MapItem{Key: k, Value: jsonToYAMLValue(v)})\n\t}\n\treturn ret\n}\n\nfunc jsonToYAMLValue(j interface{}) interface{} {\n\tswitch j := j.(type) {\n\tcase map[string]interface{}:\n\t\tif j == nil {\n\t\t\treturn interface{}(nil)\n\t\t}\n\t\treturn JSONObjectToYAMLObject(j)\n\tcase []interface{}:\n\t\tif j == nil {\n\t\t\treturn interface{}(nil)\n\t\t}\n\t\tret := make([]interface{}, len(j))\n\t\tfor i := range j {\n\t\t\tret[i] = jsonToYAMLValue(j[i])\n\t\t}\n\t\treturn ret\n\tcase float64:\n\t\t// replicate the logic in https://github.com/go-yaml/yaml/blob/51d6538a90f86fe93ac480b35f37b2be17fef232/resolve.go#L151\n\t\tif i64 := int64(j); j == float64(i64) {\n\t\t\tif i := int(i64); i64 == int64(i) {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\treturn i64\n\t\t}\n\t\tif ui64 := uint64(j); j == float64(ui64) {\n\t\t\treturn ui64\n\t\t}\n\t\treturn j\n\tcase int64:\n\t\tif i := int(j); j == int64(i) {\n\t\t\treturn i\n\t\t}\n\t\treturn j\n\t}\n\treturn j\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/yaml_go110.go",
    "content": "// This file contains changes that are only compatible with go 1.10 and onwards.\n\n// +build go1.10\n\npackage yaml\n\nimport \"encoding/json\"\n\n// DisallowUnknownFields configures the JSON decoder to error out if unknown\n// fields come along, instead of dropping them by default.\nfunc DisallowUnknownFields(d *json.Decoder) *json.Decoder {\n\td.DisallowUnknownFields()\n\treturn d\n}\n"
  }
]